PyQt-x11-gpl-4.11.4/0000755000076500000240000000000012536324427013754 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/__init__.py0000644000076500000240000000147212536324420016062 0ustar philstaff00000000000000# Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. PyQt-x11-gpl-4.11.4/ChangeLog0000644000076500000240000176654012536324420015542 0ustar philstaff000000000000002015-06-11 Phil Thompson * .hgtags: Added tag 4.11.4 for changeset ee2652e4e85d [60b1f4e054a1] [tip] <4.11-maint> * NEWS: Released as v4.11.4. [ee2652e4e85d] [4.11.4] <4.11-maint> * installers/pyqt4-check.py: Updated the PyQt4 check script now that we have an extra image format with Qt5. [84067dacdda4] <4.11-maint> * installers/PyQt4-Qt5-gpl.nsi: Removed the accessibility plugins from the Qt5 installer. [a801041eb3d2] <4.11-maint> * PyQt4.msp: Fixed a bug compiling against Qt5. [f16b9eb9fa23] <4.11-maint> * installers/PyQt4-Qt5-gpl.nsi: Updated the default Qt5 version in the Windows installer. [a356a91783bd] <4.11-maint> * Makefile, pyqtdoc/renderer.py: Updated the references to Digia in the docs. [c09964de7d12] <4.11-maint> 2015-06-07 Phil Thompson * pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qobjectcreator.py: Make sure all generedt imports are sorted and therefore repeatable. [deec3fd32e3e] <4.11-maint> 2015-06-02 Phil Thompson * NEWS: Updated the NEWS file. [7efb81d3b2a8] <4.11-maint> 2015-05-27 Phil Thompson * PyQt4.msp: Completed the support for Qt v4.8.7. [3e34b5bd2b24] <4.11-maint> * PyQt4.msp: Completed the initial scan of Qt v4.8.7. [dbba8c672c8e] <4.11-maint> 2015-05-26 Phil Thompson * Makefile, doc/pyqtdoc/PyQt4.xfm, installers/PyQt4-Qt4-gpl.nsi: Updated the doc generator and installers for Qt v4.8.7. [7b384a4a516c] <4.11-maint> 2015-05-23 Phil Thompson * lib/configure-ng.py, sphinx/installation.rst: Added the --no-python-dbus option to configure-ng.py. [d742e2d89b38] <4.11-maint> 2015-05-18 Phil Thompson * pyuic/uic/driver.py, pyuic/uic/objcreator.py, pyuic/uic/port_v2/load_plugin.py, pyuic/uic/port_v3/load_plugin.py, pyuic/uic/uiparser.py: Fixed deprecation warnings in pyuic. [3b26fc624104] <4.11-maint> 2015-05-08 Phil Thompson * Makefile: Fixed a typo in the previous change. [ffef79bd4f57] <4.11-maint> * Makefile: Fix the path to SIP for OS/X. [80d29568fd52] <4.11-maint> 2015-05-06 Phil Thompson * pyuic/uic/Compiler/qobjectcreator.py: Fixed a typo in the previous fix. [c089b32daca1] <4.11-maint> * pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/icon_cache.py, pyuic/uic/objcreator.py: Fixed the handling of themed icons by uic.loadUi(). [debb218e6fe0] <4.11-maint> 2015-04-04 Phil Thompson * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed pyuic's handling of default margins. [00a3c8d2587d] <4.11-maint> * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed pyuic's handling of the default spacing. [d39116ae0f76] <4.11-maint> 2015-04-03 Phil Thompson * pylupdate/main.cpp: pylupdate now saves locations as relative to the .ts file. [1496e92367f5] <4.11-maint> 2015-04-01 Phil Thompson * PyQt4.msp: Added QWIDGETSIZE_MAX to QtGui. [6f6f7460ca3d] <4.11-maint> 2015-03-25 Phil Thompson * sphinx/static/classic.css, sphinx/static/default.css: Fixed the stylesheet. [4cbee1709ebd] <4.11-maint> 2015-03-11 Phil Thompson * sphinx/conf.py: Updated for sphinx v1.3. [265be2eab2fa] <4.11-maint> * pyuic/uic/uiparser.py: pyuic now handles empty zorder elements. [5cab57dce7c4] <4.11-maint> * lib/configure-ng.py: Added nostrup to the generated .pro file. [0c2869fa5480] <4.11-maint> 2015-03-01 Phil Thompson * pyuic/uic/uiparser.py: pyuic will now ignore spacer items when setting the z-order. [8313084030e1] <4.11-maint> 2015-02-14 Phil Thompson * Makefile: Default to sip4. [83d48b092f7c] <4.11-maint> * Makefile, lib/configure-ng.py: Installing into a virtual env should now work. [40a7e6667c0d] <4.11-maint> 2015-02-08 Phil Thompson * lib/configure-ng.py: Improved the implementation of the executable search. [7649dd4c2e64] <4.11-maint> * Makefile, lib/configure-ng.py: Use sip5 in preference to sip4. [70ec41ae0377] <4.11-maint> 2015-02-06 Phil Thompson * PyQt4.msp: Added some missing QEvent.Type enum values. [5d830e9012ae] <4.11-maint> * PyQt4.msp: Fixed all pseudo-ctors that take a QVariant argument. [5c941d8fb16b] <4.11-maint> 2015-02-01 Phil Thompson * lib/configure-ng.py: configure-ng.py will now ignore old moc generated C++ files. [e270102197b1] <4.11-maint> 2015-01-31 Phil Thompson * lib/configure-ng.py, sphinx/installation.rst: Added the --license-dir command line option to configure-ng.py. [3860cd760eba] <4.11-maint> 2015-01-30 Phil Thompson * lib/configure-ng.py: configure-ng.py will now handle a blank licensee. [58cba0e39f74] <4.11-maint> * qpy/QtCore/qpycore_misc.cpp: Converting argv now uses the current locale codec rather than Latin-1. [263fa1a7c3d8] <4.11-maint> * pyuic/uic/uiparser.py: pyuic now supports the z-order of widgets. [e1fb81fca18d] <4.11-maint> * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Improved the fix for handling frame shadows of lines. [e03f99623150] <4.11-maint> 2015-01-29 Phil Thompson * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed pyuic's handling of the frame shadow of lines. [d651c0094e96] <4.11-maint> * pyrcc/rcc.cpp, pyuic/uic/__init__.py: Removed the timestamp from the header generated by pyrcc. [f67a1a3ba439] <4.11-maint> * pyuic/uic/__init__.py: Removed the timestamp from the header generated by pyuic. [4a18f77c9854] <4.11-maint> 2015-01-23 Phil Thompson * qpy/QtCore/qpycore_qstring.cpp: Fixed a regression converting a QString with a surrogate pair as the last character. [0842394703a2] <4.11-maint> 2015-01-14 Phil Thompson * qpy/QtCore/qpycore_types.cpp: Fixed the previous fix. [db40514060bd] <4.11-maint> 2015-01-12 Phil Thompson * qpy/QtCore/qpycore_types.cpp: Ensure any exception is cleared after introspecting QObject class attributes. [2dadd297b329] <4.11-maint> 2015-01-02 Phil Thompson * lib/LICENSE.commercial.short, lib/LICENSE.gpl, lib/LICENSE.gpl.short, lib/LICENSE.internal: Updated the copyright notices. [80132fdfb984] <4.11-maint> * lib/configure-ng.py, sphinx/build_system.rst, sphinx/introduction.rst: Documentation updates anticipating the change from snapshots to previews. [5637bd1c4c2a] <4.11-maint> 2014-12-22 Phil Thompson * sphinx/introduction.rst: Updated the docs regardig the commercial license. [66379812fa5f] <4.11-maint> * lib/configure-ng.py, lib/configure.py: Fixed the configure scripts for the changes to the names of the license files. [89c8027184c6] <4.11-maint> * build.py, installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi, lib/GPL_EXCEPTION.TXT, lib/GPL_EXCEPTION_ADDENDUM.TXT, lib/LICENSE.GPL2, lib/LICENSE.GPL3, lib/LICENSE.commercial.short, lib/LICENSE.gpl, lib/LICENSE.gpl.short, lib/OPENSOURCE-NOTICE.TXT: Aligned the GPL licensing with Qt. [436412d027d3] <4.11-maint> 2014-12-21 Phil Thompson * lib/LICENSE.commercial: Updated the commercial license to v4.0. [9a31c427f796] <4.11-maint> 2014-12-16 Phil Thompson * qpy/QtCore/qpycore_qstring.cpp: Fixed the QString to Unicode conversion to not assume that a QString has a trailing null QChar. [feec4cda951e] <4.11-maint> 2014-11-29 Phil Thompson * installers/PyQt4-Qt5-gpl.nsi: Updated the version of Qt5 used in the installer. [0853c2ed18f9] <4.11-maint> * PyQt4.msp: Fixed an incorrect transfer annotation on a QCompleter ctor. [d038e5a3a89c] <4.11-maint> 2014-11-27 Phil Thompson * PyQt4.msp: Fixed the return values of the addWidget() and insertWidget() methods of QStackedLayout. [ab9fd6324d7c] <4.11-maint> 2014-11-16 Phil Thompson * build.py: A source package now contains a full ChangeLog. [6325cd14b33b] <4.11-maint> 2014-11-10 Phil Thompson * installers/PyQt4-Qt5-gpl.nsi: Remove redundant code from the Qt5 installer. [59ae4401905b] <4.11-maint> 2014-11-09 Phil Thompson * .hgtags: Added tag 4.11.3 for changeset 1514e4c6f4aa [e6ecc132de7b] <4.11-maint> * NEWS: Released as v4.11.3. [1514e4c6f4aa] [4.11.3] <4.11-maint> 2014-11-05 Phil Thompson * build.py, pyqtdoc/xform.py: Fixed a unicode handling problem in the document generator. [535f80ae9242] <4.11-maint> 2014-10-24 Phil Thompson * lib/configure-ng.py: Fixed a regression in configure-ng.py related to the DBus Python module. [adb94530c076] <4.11-maint> 2014-10-23 Phil Thompson * PyQt4.msp: Fixed the previous fix (shouldn't program after only one cup of tea). [b33b409e24f7] <4.11-maint> * PyQt4.msp: Reduced the delay in the input hook for Windows. [c952f8b545d9] <4.11-maint> 2014-10-22 Phil Thompson * lib/configure-ng.py: Always check for the Python dbus module. [d8a3e969c515] <4.11-maint> * lib/configure-ng.py: Run qmake once, recursively. [c1c46f99c0ef] <4.11-maint> * lib/configure-ng.py: Renamed the .pro files for pyrcc4 and pylupdate4. [0fb4cc78de68] <4.11-maint> * designer/designer.pro-in, designer/python.pro-in, lib/configure- ng.py, lib/configure.py: Renamed the .pro file for the designer plugin. [cfa775fb92a5] <4.11-maint> 2014-10-15 Phil Thompson * PyQt4.msp: Removed the redundant __unicode__ methods as they break with Python v2.6 and earlier. [43b79301ca04] <4.11-maint> 2014-10-10 Phil Thompson * lib/configure-ng.py: Handle OS/X with --enable-shared as well as --enable-framework. [5cfd02044003] <4.11-maint> 2014-10-03 Phil Thompson * PyQt4.msp: Updated the project file to the latest format. [61cdc8feb321] <4.11-maint> 2014-10-01 Phil Thompson * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Fixed QNetworkAccessManager.createRequest() so that it aborts rather than crashes when None is returned or there is an ungandled Python exception. [27135af9a809] <4.11-maint> * designer/python.pro-in: Fixed a typo in the .pro file for the Designer plugin. [c78795d1a1e9] <4.11-maint> 2014-09-23 Phil Thompson * installers/PyQt4-Qt4-gpl.nsi: The Qt4 installer now uses relative paths in the qt.conf files. [fae7bb3b67eb] <4.11-maint> * installers/PyQt4-Qt5-gpl.nsi: Updates to the Qt5 installer for Qt v5.3.2 and the updated version of ICU. [dda6a6544218] <4.11-maint> 2014-09-22 Phil Thompson * lib/configure-ng.py: Fix building against Qt v5.3.2. [02988583236e] <4.11-maint> 2014-09-16 Phil Thompson * lib/configure-ng.py: Fixed a configure-ng.py regression when introspecting for a static Python library. [a33079682483] <4.11-maint> 2014-09-11 Phil Thompson * .hgtags: Added tag 4.11.2 for changeset f8b8b95963ad [dbfd711f07a0] <4.11-maint> * NEWS: Released as v4.11.2. [f8b8b95963ad] [4.11.2] <4.11-maint> 2014-09-10 Phil Thompson * pyuic/uic/uiparser.py: Fixed a typo in the most recent pyuic changes. [219e73ee7a65] <4.11-maint> * lib/configure-ng.py, lib/configure.py: Improved a configure.py error message. [d64eb76a9459] <4.11-maint> 2014-09-09 Phil Thompson * designer/pluginloader.cpp, designer/python.pro-in, lib/configure- ng.py: Reverted the behaviour of the designer plugin so that it explicitly loads the Python interpreter library. [ff6fa1363cbc] <4.11-maint> 2014-09-04 Phil Thompson * NEWS: Updated the NEWS file. [e6a7b908d5a9] <4.11-maint> 2014-09-03 Phil Thompson * pyuic/uic/uiparser.py: Fixed a pyuic bug handling the alignment of box layouts. [2beddcfc99fd] <4.11-maint> 2014-09-02 Phil Thompson * PyQt4.msp: Fixed the handling of Python exceptions in QWebPage.extension(). [7d19343b836a] <4.11-maint> 2014-08-25 Phil Thompson * lib/configure-ng.py: Avoid a qmake warning by embedding the SIP flags earlier. Fix the license check when using a configuration file. [84b2dc214e8d] <4.11-maint> 2014-08-14 Phil Thompson * sphinx/new_style_signals_slots.rst: Tightened up the docs regarding pyqtSignal(). [3d5d058df79e] <4.11-maint> * installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi: Updated the installers to include qmake and mkspecs which are needed by lrelease when it is given a .pro file. [b0319b7959e1] <4.11-maint> 2014-07-31 Phil Thompson * PyQt4.msp: Fixed QAbstractPrintDialog.PrintDialogOption.None for Python v3. [bb8ff2f38c2f] <4.11-maint> 2014-07-22 Phil Thompson * installers/BuildGPL.txt: Updated the internal docs for installing MSVC2010. [2c3f3d227e9b] <4.11-maint> 2014-07-20 Phil Thompson * PyQt4.msp: Added a missing /TransferThis/ to the QItemSelectionModel single arg ctor. [b9f5b3ced004] <4.11-maint> 2014-07-12 Phil Thompson * PyQt4.msp: Make sure widgets always have an owner even if the layout isn't in a widget. [c0c550858ebb] <4.11-maint> * PyQt4.msp: Ownership fixes for QLayout.addChildWidget(). [b581455d5a6e] <4.11-maint> * PyQt4.msp: Ensure that the ownership of widgets in a layout are always correct. [3cb30662bcce] <4.11-maint> * lib/configure-ng.py: Fixed a regression in the handling of the qmake spec when building against the OS/X binary installer. [5e48b7444a5a] <4.11-maint> 2014-07-10 Phil Thompson * designer/python.pro-in, lib/configure-ng.py: Fixes to work around QTBUG-39300. [ebd39a944b7e] <4.11-maint> * PyQt4.msp, lib/SubclassCode/QtNetwork.versions: Fixed building against Qt5 without SSL support. [ddffde17eedb] <4.11-maint> 2014-07-03 Phil Thompson * .hgtags: Added tag 4.11.1 for changeset 1f578533deca [b6804609f1d8] <4.11-maint> * NEWS: Released as v4.11.1. [1f578533deca] [4.11.1] <4.11-maint> * sphinx/deploy_commercial.rst, sphinx/installation.rst: Updated the docs to refer to pyqtdeploy rather than VendorID. [df4d2be05820] <4.11-maint> 2014-07-01 Phil Thompson * installers/BuildGPL.txt: Updates to the installer docs. [1715f910b979] <4.11-maint> 2014-06-27 Phil Thompson * installers/PyQt4-Qt5-gpl.nsi: Updated the Qt5 installer for Qt v5.3.1. [6ff5c1ddabc1] <4.11-maint> 2014-06-17 Phil Thompson * pyuic/uic/uiparser.py: Fixed a pyuic regression in the handling of implicit QTableWidget dimensions. [e1e46b3cad30] <4.11-maint> 2014-06-16 Phil Thompson * lib/configure-ng.py, sphinx/installation.rst: Removed the --consolidate argument to configure-ng.py as it never worked and pyqtdeploy is the way forward. [1b6513d3741f] <4.11-maint> * lib/configure-ng.py: Fixed the handling of QtAssistant in configure-ng.py. [daa4b3e27144] <4.11-maint> 2014-06-14 Phil Thompson * lib/configure-ng.py: Make sure -fno-exceptions is used on darwin. [c5448342f24f] <4.11-maint> * lib/configure-ng.py: Try to make sure -spec isn't passed unless it is really needed. [aef9d9b38af4] <4.11-maint> * lib/configure-ng.py: Fixed the handling of the qmake spec for darwin. [c16920986ec4] <4.11-maint> 2014-06-08 Phil Thompson * lib/configure-ng.py, lib/configure.py: Fixed configure.py etc to not create blank lines in the output of the test program that determines the detail of the Qt installation. [123dfb701c3e] <4.11-maint> 2014-06-03 Phil Thompson * lib/configure-ng.py: Fixes for Python v2.6. [e4bc318a116e] <4.11-maint> 2014-06-02 Phil Thompson * lib/configure-ng.py: Fixed the previous fix. [b771f7a0ebb3] <4.11-maint> * lib/configure-ng.py: Fixed the handling of the default qmake spec so that the Linux linker version scripts get generated and exceptions are disabled. [b0a5108c2096] <4.11-maint> * lib/configure-ng.py: Fixed the linker version scripts created for Linux. [2577924b19fe] <4.11-maint> 2014-06-01 Phil Thompson * pylupdate/fetchtr.cpp, pylupdate/main.cpp: Added the -tr-function, -trUtf8-function and -translate-function command line options to pylupdate4. [b42b9f1407d3] <4.11-maint> * lib/configure.py: Fixed building against Qt5 with configure.py. [78a0e95230b2] <4.11-maint> 2014-05-30 Phil Thompson * qpy/QtCore/qpycore_qvariant_value.cpp: Improved the previous fix to handle API v1 properly. [9d5a6843b580] <4.11-maint> * qpy/QtCore/qpycore_qvariant_value.cpp: Fixed the QSettings.value() handling of an invalid value when a requested type is specified. [c1880812fbe5] <4.11-maint> * qpy/QtCore/qpycore_qvariant_value.cpp: Fixed QSettings.value() so that a desired type of QStringList works on Linux. [ce82a2c7b6a1] <4.11-maint> * qpy/QtCore/qpycore.pro, qpy/QtDBus/qpydbus.pro, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDesigner/qpydesigner.pro, qpy/QtGui/qpygui.pro, qpy/QtOpenGL/qpyopengl.pro: Fixed a build regression with configure.py. [e8700c99e8da] <4.11-maint> 2014-05-29 Phil Thompson * Makefile, installers/PyQt4-Qt5-gpl.nsi: Fixed the Qt versions in the installers. Updated the cross-compile target version. [328d88582f7e] 2014-05-26 Phil Thompson * .hgtags: Added tag 4.11 for changeset 7928d1870f9a [d9397191fa8d] * NEWS: Released as v4.11. [7928d1870f9a] [4.11] 2014-05-25 Phil Thompson * lib/configure-ng.py: Fixed a build regression on Windows. [7a93baf0ff6a] * sphinx/conf.py: Fixed the documentation copyright notice. [77c0d3bb5ad5] 2014-05-23 Phil Thompson * Makefile: Added the Android build target. [6fe3d7dcabbf] 2014-05-16 Phil Thompson * Makefile, PyQt4.msp: Cross-compilation to the iPhone simulator now works. [17a2b6634edf] * Makefile, PyQt4.msp, lib/configure-ng.py, lib/configure.py, qpy/QtGui/opengl_types.sip, qpy/QtOpenGL/opengl_types.sip: Fixes for compiling for the iPhone simulator and Qt5. [eda0aeeae88c] * lib/configure-ng.py: Make sure the -B flag doesn't appear in PYQT_CONFIGURATION. [c67cf4b88dfa] * lib/configure-ng.py: Fixed the handling of the print range bug feature. [036835e0e029] * lib/configure-ng.py, sphinx/installation.rst: Renamed qt_disabled_features to pyqt_disabled_features. [0bc633e3b347] * lib/configure-ng.py: Make use of SIP v4.16's handling of timelines to avoid having to work out the exact tag to use. [6de7f589d502] * PyQt4.msp: Make sure all historical versions of Qt have been defined. [6b8264db0319] 2014-05-14 Phil Thompson * lib/configure-ng.py: Don't create the QScintilla .api file if it isn't going to be installed. [965252bb4098] * lib/configure-ng.py, sphinx/installation.rst: Adjustments to the license handling because there is no way to discover the licensee when cross-compiling. [d3d4aa6f0304] 2014-05-12 Phil Thompson * PyQt4.msp: Fixed for building against Qt v5.3.0-rc1. [573fd2ef7168] * Makefile, sphinx/installation.rst: Documented the new configure-ng.py options. [8dd378ee81db] * qpy/QtDeclarative/qpydeclarativelistproperty.cpp: Fixed a warning message with Python v3.4. [39d8695ce964] * build.py, configurations/rpi_py3.cfg: Removed the configurations directory. [1d76f23f1903] * Makefile, designer/pluginloader.cpp, designer/python.pro-in, lib /configure-ng.py: Backported the --target-py-version, --sysroot and --no-tools options to configure-ng.py from PyQt5. The Designer plugin no longer tries to load the Python library. [9422a8f8046a] 2014-04-30 Phil Thompson * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Qt::UniqueConnection is a flag. [6e141d7b9925] * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Disable the Qt::UniqueConnection support for Qt prior to v4.6. [dd6f8946e151] 2014-04-29 Phil Thompson * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Implement support for Qt::UniqueConnection when connecting to Python slots. [d6f34d97c659] 2014-04-28 Phil Thompson * lib/configure-ng.py, lib/configure.py: Fixed the handling of deprecated methods when building against QT v5. [1d247094537d] * PyQt4.msp: Added the missing %MethodCode for QDialog.exec() when building against Qt v5. [927678eb5cf2] 2014-04-26 Phil Thompson * lib/configure.py: Handle the unsupported directory of Qt's qmake specs. [1d1919d42630] * lib/configure-ng.py, lib/configure.py: Fixed the configure scripts for Qt v4.8.6. [efc3f9901b5c] * Makefile, NEWS, doc/pyqtdoc/PyQt4.xfm, installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi: Infrastructure updates for Qt v4.8.6. Updated the NEWS file. [e7c47fae898a] * Merged the v4.8.6 update into the trunk. [a2372f20bce1] * PyQt4.msp: Updated the project for Qt v4.8.6. [bc2d84b884ba] <4.10-maint> 2014-04-22 Phil Thompson * sphinx/incompatibilities.rst, sphinx/new_style_signals_slots.rst: Documented the no_receiver_check issues. [8f4cebfc25d1] * lib/configure-ng.py, lib/configure.py: SIP v4.16 is now required. [a48d3b1c0de2] 2014-04-21 Phil Thompson * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Another trivial docstring fix. [d01106d533c4] * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Fixed the connect() docstring. [e861e90cd5d7] * qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_pyqtsignal.cpp: Implemented the 'no_receiver_check' argument to connect(). By default checks are now made. [732656fcb8a4] 2014-04-20 Phil Thompson * Qt5-TODO.txt, installers/pyqt-check.py, installers/pyqt-config.bat, installers/qsci-config.bat, installers/sip-config.bat, lib/SubclassCode/QtGuiQt4.versions, qpy/QtCore/qpycore.pro, qpy/QtDBus/qpydbus.pro, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDesigner/qpydesigner.pro, qpy/QtGui/qpygui.pro, qpy/QtOpenGL/qpyopengl.pro: Merged the v4.10 maintenance branch into the trunk. [961f0c8bfdea] * lib/configure-ng.py: Fixed a progress message. [42b109ae4bc7] <4.10-maint> * lib/configure-ng.py: The modules generated for a static build now have a _s suffix. [fd7839c69c1f] <4.10-maint> 2014-04-19 Phil Thompson * lib/configure-ng.py: Fixed a build regression from the PyQt5 changes. [640d56ee0ac1] <4.10-maint> 2014-04-15 Phil Thompson * Makefile, qpy/QtCore/qpycore_qstring.cpp: Fixed a bug in the conversion of QStrings with surrogate pairs. [850f2d2c1d2b] <4.10-maint> * Makefile, lib/configure-ng.py: Make sure the SIP include directory is searched before the Python include directory if they are different. [d8bc69ec55c3] <4.10-maint> 2014-04-12 Phil Thompson * Makefile, lib/configure-ng.py, qpy/QtCore/qpycore.pro, qpy/QtDBus/qpydbus.pro, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDesigner/qpydesigner.pro, qpy/QtGui/qpygui.pro, qpy/QtOpenGL/qpyopengl.pro: Backported the changes from PyQt5 so that the qpy support code is not built as separate static libraries. [f2a49d947d12] <4.10-maint> 2014-04-06 Phil Thompson * pyuic/uic/uiparser.py: Fixed pyuic handling of non-exclusive button groups. [ff915a78616f] <4.10-maint> 2014-03-29 Phil Thompson * pyuic/uic/uiparser.py: Fixed pyuic's handling of connecting to QButtonGroups. [53faf7a0264a] <4.10-maint> 2014-03-26 Phil Thompson * PyQt4.msp, lib/configure-ng.py, lib/configure.py, qpy/QtCore/qpycore.pro: Fixed all the 'deprecated before' to be 0x050000. [1bfabeb2b945] <4.10-maint> 2014-03-23 Phil Thompson * installers/PyQt4-Qt5-gpl.nsi: Fixed the installer for building against Qt v5.2.0. [ea6388aba0f3] <4.10-maint> 2014-03-21 Phil Thompson * PyQt4.msp: Added a missing /KeepReference/ to QThreadPool::globalInstance(). Added /ReleaseGIL/ to start() and tryStart() for documentation reasons. Removed /NewThread/ from QRunnable::run(). [65266e342a03] <4.10-maint> * PyQt4.msp, lib/configure-ng.py, lib/configure.py, sphinx/deploy_commercial.rst, sphinx/installation.rst: VendorID is Python v2 specific. [86780d605572] <4.10-maint> 2014-03-14 Phil Thompson * .hgtags: Added tag 4.10.4 for changeset 6726592a58da [c3753e3cba7b] <4.10-maint> * NEWS: Released as v4.10.4. [6726592a58da] [4.10.4] <4.10-maint> 2014-03-12 Phil Thompson * pyqtdoc/renderer.py: Removed old Nokia references in the class documentation. [a4cce1fd573c] <4.10-maint> 2014-03-09 Phil Thompson * lib/LICENSE.commercial: Updates to the commercial license. [c501e53f3456] <4.10-maint> 2014-03-05 Phil Thompson * NEWS: Updated the NEWS file. [bfe6e40923a4] <4.10-maint> 2014-03-04 Phil Thompson * pylupdate/fetchtr.cpp: Backed out fb98d48c977b (pylupdate support for nested classes) because it breaks a common use case. [bdca24701400] <4.10-maint> 2014-02-22 Phil Thompson * lib/LICENSE.commercial: Updated the commercial license. [08b90128d7a3] <4.10-maint> * PyQt4.msp, qpy/QtCore/qpycore_pyqtboundsignal.cpp: Added the signal hack #3. [8fd12a854829] <4.10-maint> 2014-02-21 Phil Thompson * qpy/QtCore/qpycore_chimera_storage.cpp: Fixed the handling of results of JavaScript functions in QML. [6c0638222852] <4.10-maint> * lib/configure-ng.py: Fix remaining misleading error messages about qmake on Windows. [dbe24380bcd7] <4.10-maint> * lib/configure-ng.py: Fixed the pyuic4 wrapper for Python v3.4 on OS/X. [7940d69f67af] <4.10-maint> 2014-02-20 Phil Thompson * PyQt4.msp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_sip_helpers.cpp, sphinx/qt_v5.rst: Fixes for Qt5 signals with optional arguments. [e9d065a69fe1] <4.10-maint> 2014-02-18 Phil Thompson * PyQt4.msp, QAxContainer/qaxbase.sip, QAxContainer/qaxobject.sip, QAxContainer/qaxwidget.sip, lib/configure-ng.py, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp: Changes needed by the SIP v11.0 internal API. [cbd0eb550a22] <4.10-maint> 2014-02-15 Phil Thompson * examples/demos/qtdemo/qtdemo_rc2.py, examples/demos/qtdemo/qtdemo_rc3.py, examples/demos/qtdemo/xml/examples.xml, examples/webkit/webftpclient.py: Added the port of the webftpclient example from Moritz Warning. [e26679855f40] <4.10-maint> 2014-02-10 Phil Thompson * lib/configure-ng.py: Allow for the possiblilty that the -query flag was added to qmake sometime during the Qt v4 release rather than at the start. [ae7c36a8ce82] <4.10-maint> * lib/configure.py: configure.py now uses the correct Qt library dependencies when doing the module checks. [7359d88dd717] <4.10-maint> 2014-02-09 Phil Thompson * Makefile: Removed a testing artifact. [44a4c91b4230] <4.10-maint> * lib/configure-ng.py: Backed out the change to set the install names as it is Qt5 specific. [aab307e07f7b] <4.10-maint> * Makefile, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtmethodproxy.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_types.cpp: Suppress warning messages about tp_finalize. [449975dad707] <4.10-maint> * lib/LICENSE.GPL2, lib/LICENSE.GPL3, lib/LICENSE.commercial.short, lib/LICENSE.gpl.short, lib/LICENSE.internal: Updated the copyright notices. [029d37a91550] <4.10-maint> * lib/configure-ng.py: The extension modules now have the correct install name on OS/X. [aad4627f18b7] <4.10-maint> * pylupdate/fetchtr.cpp: Fixes for the handling of nested classes in pylupdate from Matteo Bertini. [fb98d48c977b] <4.10-maint> 2014-02-05 Phil Thompson * examples/widgets/tetrix.py: Fixes to the tetrix.py example from Mike Taverne. [700742f90f4b] <4.10-maint> 2014-02-03 Phil Thompson * Makefile, qpy/QtCore/qpycore_qstring.cpp: Fixed the QString to Python conversion for Python v3.3 and later as I hadn't realised that the KIND is interpreted very strictly. [539cf1d7306d] <4.10-maint> 2014-01-17 Phil Thompson * lib/configure.py: The --use-arch argument to configure.py can now be specified more than once. [578e568cc881] <4.10-maint> 2014-01-04 Phil Thompson * qpy/QtCore/qpycore_qstring.cpp: Fixed the PEP 393 conversion from QString to Python unicode objects so that it properly handles surrogates. Also made the common case where the text is Latin-1 faster and the final object smaller. [595c1453ae29] <4.10-maint> * PyQt4.msp: The PyQt_Printer and PyQT_PrintDialog features are now respected when building against Qt v5. [99f8a4ee2d14] <4.10-maint> 2013-12-20 Phil Thompson * PyQt4.msp: Fixed bugs in the error handling of the QMultiMap mapped types in QSslCertificate. [f28b04f7b22d] <4.10-maint> 2013-11-17 Phil Thompson * examples/mainwindows/recentfiles.py, examples/widgets/stylesheet/stylesheeteditor.py: A couple of examples fixes. [e52357d82574] <4.10-maint> * examples/demos/declarative/samegame/SamegameCore/samegame.js, examples/demos/declarative/samegame/highscores/score_data.xml, examples/demos/declarative/samegame/highscores/score_style.xsl, examples/demos/declarative/samegame/highscores/scores.php, examples/sql/connection.py: Fixed the permissions on some example files. [97e2b498e1d2] <4.10-maint> 2013-11-16 Phil Thompson * Makefile: Fixes to the build system for Linux. [b7f7b023b0e7] <4.10-maint> 2013-11-15 Phil Thompson * pyrcc/main.cpp: pyrcc4 uses the local encoding for the name of the .qrc file. [7e4c494ac6a4] <4.10-maint> 2013-11-11 Phil Thompson * examples/demos/qtdemo/scanitem.py, examples/demos/textedit/textedit.py, examples/designer/plugins/widgets/datetimeedit.py, examples/graphicsview/diagramscene/diagramscene.py, examples/itemviews/chart/chart.py, examples/itemviews/pixelator/pixelator.py, examples/widgets/tetrix.py: Various fixes to the examples from Dmitry Shachnev. [315a27c0f0a7] <4.10-maint> 2013-10-12 Phil Thompson * lib/configure-ng.py: Fixed the handling of VendorID in configure-ng.py. [f62fabcefe39] <4.10-maint> 2013-10-03 Phil Thompson * qpy/QtCore/qpycore_pyqtconfigure.cpp: Fixed an incorrect (for Python2) format character. [f24cac93a1b0] <4.10-maint> 2013-09-28 Phil Thompson * qpy/QtCore/qpycore_pyqtsignal.cpp: Improve the text of the exception raised when the type of a C++ signal argument couldn't be parsed. [507d15ce70b8] <4.10-maint> 2013-09-08 Phil Thompson * pylupdate/fetchtr.cpp: Added support for the different line endings to pylupdate based on a patch from Florent Rougon. [4615fa986d0c] <4.10-maint> * lib/configure-ng.py: Do a better job of detecting when the user is trying to use Qt3. Do a better job of detecting when the use doesn't have write permissions. [ca90872e3409] <4.10-maint> 2013-09-07 Phil Thompson * examples/opengl/2dpainting.py, examples/opengl/grabber.py, examples/opengl/hellogl.py, examples/opengl/overpainting.py, examples/opengl/textures/textures.py: Fixed the OpenGL examples for Python3. [10f815377ace] <4.10-maint> 2013-09-01 Phil Thompson * pylupdate/fetchtr.cpp: pylupdate now handles backslash at the end of a line within a quoted string. [f32540dbcf98] <4.10-maint> 2013-08-26 Phil Thompson * PyQt4.msp: Fixed build errors in third-party modules that use --public-not- protected. [62e7a4b7a2eb] <4.10-maint> 2013-08-23 Phil Thompson * lib/configure.py: Fixed the MULTIARCH support in configure.py. [05cf2e0947c2] <4.10-maint> 2013-08-22 Phil Thompson * lib/configure-ng.py, lib/configure.py: Added MULTIARCH support to configure.py and configure-ng.py. [1ece6fbc7ae1] <4.10-maint> 2013-08-21 Phil Thompson * .hgtags: Added tag 4.10.3 for changeset f4bb7434878e [76d1f2da3492] <4.10-maint> * NEWS: Released as v4.10.3. [f4bb7434878e] [4.10.3] <4.10-maint> 2013-08-19 Phil Thompson * installers/BuildGPL.txt, installers/PyQt4-Qt5-gpl.nsi, installers/qt4-config.bat, installers/qt5-config.bat: Updated the Windows build documentation and scripts. [b909e0d46deb] <4.10-maint> * NEWS: Updated the NEWS file. [ce44513297ff] <4.10-maint> * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Resolved all the qreal/double confusions. [605664c75dfd] <4.10-maint> * lib/configure-ng.py: Fixed an error message bug in configure-ng.py. [a51bfcb5660a] <4.10-maint> 2013-08-16 Phil Thompson * PyQt4.msp: Fixed the error detection in the QList convertors based on Matt Newell's patch. [46e226c787d4] <4.10-maint> 2013-08-10 Phil Thompson * lib/configure-ng.py: Fixed the handling of the Designer plugin installation directory. [e0e54a5ec774] <4.10-maint> * lib/configure-ng.py: Made sure the qmake version is checked before any other output. [157d07cb2306] <4.10-maint> 2013-07-28 Phil Thompson * PyQt4.msp: Fixed QWidget.x11Info() and QWidget.x11PictureHandle() for Qt5. [1822d54bd3a4] <4.10-maint> * pyuic/uic/uiparser.py: Grid alignments can now be a set of or-ed values. [f593c09fdaf9] <4.10-maint> 2013-07-26 Phil Thompson * pyuic/uic/uiparser.py: Added support for the alignment of grid items in pyuic. [3ea3fe511f2b] <4.10-maint> 2013-07-23 Phil Thompson * PyQt4.msp: Fixed an incorrect declaration. [65be699d04ee] <4.10-maint> * PyQt4.msp: Fixed QTextBlock.setUserData() and QSyntaxHighlighter.setCurrentBlockUserData() so that an explicit reference to the owning document doesn't need to be kept. [e5df94f5e2e3] <4.10-maint> 2013-07-07 Phil Thompson * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Backed out changeset eb0d879b6560, the correct fix is to SIP. [05a01eef7a2e] <4.10-maint> * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Worked around a incompatibility with QProcess in Qt v5.1. [eb0d879b6560] <4.10-maint> 2013-07-06 Phil Thompson * lib/configure-ng.py: Improved the error message when configure-ng.py detects an incorrect Qt version. [6c409d355b1f] <4.10-maint> 2013-07-05 Phil Thompson * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/PyQt4-Qt4-gpl.nsi: Updated for Qt v4.8.5. [27b0052cd892] <4.10-maint> 2013-07-01 Phil Thompson * PyQt4.msp: Updated the project file to v6. [15d06998490a] <4.10-maint> 2013-06-30 Phil Thompson * PyQt4.msp, lib/configure-ng.py, lib/configure.py, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_pyqtconfigure.cpp, qpy/QtCore/qpycore_qobject_helpers.h: Changed the handling of QObject ctor keyword arguments so that it doesn't break cooperative multi-inheritance. SIP v4.15 is now required. [6bd5b16970bd] <4.10-maint> 2013-06-28 Phil Thompson * lib/configure-ng.py: Make sure the --spec value passed to configure-ng.py is always used. [3cf1c8d23252] <4.10-maint> 2013-06-25 Phil Thompson * lib/configure-ng.py: Make the pyuic5 wrapper executable before running qmake so that the permissions don't get stripped when installing on Linux. [ef55432a0194] <4.10-maint> 2013-06-21 Phil Thompson * PyQt4.msp, lib/SubclassCode/QtGui.versions, lib/SubclassCode/QtGuiQt4.versions, lib/SubclassCode/QtOpenGL.versions, lib/configure-ng.py, lib/configure.py: Disabling deprecated features when building against Qt5 now covers the deprecated modules, OpenGL classes and QColor methods. [35d3f3943fed] <4.10-maint> 2013-06-16 Phil Thompson * .hgtags: Added tag 4.10.2 for changeset 5cabcb832d5b [a870fd9b136e] <4.10-maint> * NEWS: Released as v4.10.2. [5cabcb832d5b] [4.10.2] <4.10-maint> * examples/demos/qtdemo/menumanager.py: Fixed the qtdemo.py fix for Qt5. [4f230733e847] <4.10-maint> * examples/designer/plugins/plugins.py: Fixed the plugins.py example so that it doesn't have to be run from the directory containing the script. [a7f0600b6897] <4.10-maint> * examples/demos/qtdemo/menumanager.py, sphinx/introduction.rst: Work around the problem of qtdemo.py crashing on exit when built against Qt5. [d06e79a117d7] <4.10-maint> 2013-06-12 Phil Thompson * installers/BuildGPL.txt, lib/configure-ng.py: Minor tweak to configure-ng.py. [11b3001947c9] <4.10-maint> * lib/configure-ng.py: Fixes for configure-ng.py to handle debug builds on Windows. [62aa127979cc] <4.10-maint> * installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi: Updates to the installers to handle conflicts with PyQt5. [ea1ae190589a] <4.10-maint> 2013-06-08 Phil Thompson * PyQt4.msp: QSyntaxHighlighter.setCurrentBlockUserData() now keeps a reference to the document. [3bab4bbdf026] <4.10-maint> 2013-06-07 Phil Thompson * PyQt4.msp: Updated the project format to v4. [c2c370eedd20] <4.10-maint> 2013-05-14 Phil Thompson * PyQt4.msp: Removed a wrong /Transfer/ annotation from QWebFrame.addToJavaScriptWindowObject(). [a8a14dd99d1e] <4.10-maint> 2013-05-05 Phil Thompson * PyQt4.msp: Several fixes for properly tracking QPropertyAnimation instances. Several fixes for handling the parenting of transitions. [74ade0e1faf2] <4.10-maint> * installers/BuildGPL.txt, installers/pyqt-check.py, installers/pyqt- config.bat, installers/pyqt4-check.py, installers/pyqt4-config.bat, installers/qsci-config.bat, installers/qsci-pyqt4-config.bat, installers/sip-config.bat, installers/sip-pyqt4-config.bat: Updated the install docs and configuration scripts so there are no clashes with PyQt5. [7d01af970f11] <4.10-maint> * build.py: Changed the format of the name of a snapshot to match other packages. [e923fc91a70b] <4.10-maint> 2013-05-04 Phil Thompson * designer/python.pro-in, installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi: Renamed the Python Qt Designer plugin so that it is distinguished between the PyQt5 version. [6f54723ef2ba] <4.10-maint> 2013-05-01 Phil Thompson * PyQt4.msp: Ignore methods introduced in Qt5 that have QLatin1String arguments. [8a31588c88b1] <4.10-maint> 2013-04-29 Phil Thompson * PyQt4.msp: Added a missing /Transfer/ from QStandardItemModel.invisibleRootItem(). [7358a55baa40] <4.10-maint> * qpy/QtDesigner/qpydesigner.pro: Fixed the deprecated qmake usage for the QtDesigner support library. [628506da8237] <4.10-maint> * installers/BuildGPL.txt: Updated the installer instructions now that we won't be making changes for new versions of Qt5. [18e909495d85] <4.10-maint> * PyQt4.msp: Removed Qt v5.0.1 from the projetc file. [0370c87cf74a] <4.10-maint> 2013-04-28 Phil Thompson * PyQt4.msp: qabstractnativeeventfilter.h doesn't need parsing. [a8b5f8a64044] <4.10-maint> 2013-04-27 Phil Thompson * PyQt4.msp: Added the historical Qt_4_1_0 version tag. [b8c14d94f81c] <4.10-maint> 2013-04-25 Phil Thompson * installers/PyQt4-Qt5-gpl.nsi: Updated the Qt5 installer to include the qminimal.dll platform plugin. [ffcf323516fc] <4.10-maint> 2013-04-23 Phil Thompson * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Connections to partial slots of objects in a different thread are now handled correctly. [d9c6e01fe9ce] <4.10-maint> * lib/configure-ng.py: Directories are now ignored when searching for qmake and sip. [688f8850e093] <4.10-maint> * Makefile, lib/configure-ng.py: Checking for modules is now tolerant of qmake failing to create a makefile which can happen with an unsupported Qt5 module. [bf24a762c5be] <4.10-maint> 2013-04-22 Phil Thompson * Qt5-TODO.txt: Removed the PyQt5 TODO list. [e93e243169f6] <4.10-maint> * sphinx/conf.py: Fixed the documentation copyright notice. [84fce71da84f] <4.10-maint> * lib/README: Fixed a typo in the README file. [b95a86307d59] <4.10-maint> * lib/configure-ng.py, lib/configure.py: The --no-deprecated flag is now completely ignored unless building against Qt5. [e81cef303b62] <4.10-maint> * lib/configure-ng.py: Remove an old debug message from configure-ng.py. [ac3e914d79b6] <4.10-maint> * lib/configure-ng.py: Fixed the handling of --no-deprecated in configure-ng.py. [315764c91c43] <4.10-maint> 2013-04-21 Phil Thompson * installers/PyQt4-Qt5-gpl.nsi: Fixed the installer for Qt v5.0.2. [c598177d8b85] <4.10-maint> * .hgtags: Added tag 4.10.1 for changeset c3dbc7e06f67 [1fee7f006e5f] <4.10-maint> * NEWS: Released as v4.10.1. [c3dbc7e06f67] [4.10.1] <4.10-maint> 2013-04-19 Phil Thompson * PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_pyqtpyobject.cpp: Added pyqtSetPickleProtocol() and pyqtPickleProtocol(). [66f4c96140c6] <4.10-maint> 2013-04-14 Phil Thompson * installers/BuildGPL.txt, pyuic/uic/Compiler/compiler.py, pyuic/uic/Loader/loader.py, pyuic/uic/__init__.py, pyuic/uic/driver.py, pyuic/uic/pyuic.py, pyuic/uic/uiparser.py, sphinx/designer.rst: Added the --resource-suffix option to pyuoc4. Added the resource_suffix optional argument to compileUi(), loadUi() and loadUiType(). [7710ca89491b] <4.10-maint> * installers/BuildGPL.txt, lib/configure.py: Allow QtDesigner to be built when universal binaries are found. [f6a02739d96d] <4.10-maint> 2013-04-13 Phil Thompson * installers/PyQt4-Qt5-gpl.nsi: Updated the installers for Qt v5.0.2. [07c1da3f0909] <4.10-maint> 2013-04-10 Phil Thompson * sphinx/new_style_signals_slots.rst: Slightly clarified the use of normalised and non-normalised C++ types when specifying signal arguments to select particular new- style signals. [227b3c0affb4] <4.10-maint> 2013-04-09 Phil Thompson * QAxContainer/qaxbase.sip: Fixed QAxBase.dynamicCall(). [351cafd3a145] <4.10-maint> * lib/configure-ng.py: Fixed configure-ng.py not installing some things when doing an out- of-tree build. [34824cff2035] <4.10-maint> * installers/pyqt-config.bat: Fixed a bug with the new PyQt configuration .bat file. [f4b809d031c0] <4.10-maint> * PyQt4.msp: The behaviour of qInstallMsgHandler() with Qt5 is now the same as with Qt4. [2969a081764f] <4.10-maint> * pylupdate/fetchtr.cpp: Updated pylupdate to handle the _translate() function generated by the current pyuic. [a26e86c66d34] <4.10-maint> * PyQt4.msp: Removed a call to QString::toAscii() when building against Qt5. [df002d853d40] <4.10-maint> * lib/README, lib/configure-ng.py, sphinx/build_system.rst, sphinx/installation.rst: Documented configure-ng.py. [68edd29cb7c8] <4.10-maint> 2013-04-08 Phil Thompson * installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi, installers/pyqt-config.bat: Updated the installers for the configure-ng.py based build. [46229b0d689d] <4.10-maint> * lib/configure-ng.py: configure-ng.py will now build against Qt5 on Windows. [75686fce4a00] <4.10-maint> * lib/configure-ng.py: configure-ng.py fixes for building QAxContainer with Qt5. [3cb65cd4ba03] <4.10-maint> * installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi, installers/pyqt-config.bat: Update the installers for configure-ng.py. This means we no longer include pyqtconfig.py, sipconfig.py etc. [78c211f3ab97] <4.10-maint> 2013-04-07 Phil Thompson * installers/pyqt-config.bat, lib/configure-ng.py: Basic Windows fixes for configure-ng.py. [a8db83af435d] <4.10-maint> 2013-04-06 Phil Thompson * lib/configure-ng.py: Fixed configure-ng.py for out-of-tree builds of the dbus module. [07de71ff25d8] <4.10-maint> * lib/configure-ng.py: configure-ng.py now makes the pyuic4 wrapper executable after it runs qmake so that the Makefile doesn't try and strip it. [28a40cef99ba] <4.10-maint> * lib/configure-ng.py: Fixed configure-ng.py for the dbus module. [ae6c85684222] <4.10-maint> * Makefile, lib/configure-ng.py: configure-ng.py now supports consolidated builds. [0cf4cbf0d0d5] <4.10-maint> 2013-03-30 Phil Thompson * lib/configure-ng.py: configure-ng.py now fully supports out-of-tree builds. [3eeadbfc8ff6] <4.10-maint> * lib/configure-ng.py: configure-ng.py now generates Makefiles for out-of-tree builds. [dc6440d4bc25] <4.10-maint> 2013-03-29 Phil Thompson * PyQt4.msp: Fixed QCoreApplication.translate() and QObject.tr() for Qt5. [3ade65901e3e] <4.10-maint> * PyQt4.msp, examples/ipc/localfortuneclient.py, examples/ipc/localfortuneserver.py: Fixed QLocalServer.listen() for Qt5 and Python2. [dc07164d313e] <4.10-maint> 2013-03-27 Phil Thompson * Makefile, lib/configure-ng.py, lib/configure.py, sphinx/build_system.rst: Support the Qt5 split between architecture dependent and independent data directories. Some tidying up of configure-ng.py. [3395e34bdcd0] <4.10-maint> 2013-03-20 Phil Thompson * Makefile, lib/configure-ng.py: Fixed building against Qt5. [19c32f448665] <4.10-maint> * lib/configure.py, qpy/QtCore/qpycore.pro, qpy/QtDBus/qpydbus.pro, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDesigner/qpydesigner.pro, qpy/QtGui/qpygui.pro, qpy/QtOpenGL/qpyopengl.pro: The debug versions of the qpy libraries no longer have different names. [0765201cd762] <4.10-maint> * Makefile: Switched the internal build system to configure-ng.py. [9668612bd06a] <4.10-maint> * examples/activeqt/webbrowser/mainwindow.ui, examples/activeqt/webbrowser/mainwindow_rc2.py, examples/activeqt/webbrowser/mainwindow_rc3.py, examples/activeqt/webbrowser/ui_mainwindow.py, examples/activeqt/webbrowser/webbrowser.py, examples/animation/animatedtiles/animatedtiles.py, examples/animation/animatedtiles/animatedtiles_rc2.py, examples/animation/animatedtiles/animatedtiles_rc3.py, examples/animation/appchooser/appchooser.py, examples/animation/appchooser/appchooser_rc2.py, examples/animation/appchooser/appchooser_rc3.py, examples/animation/easing/easing.py, examples/animation/easing/easing_rc2.py, examples/animation/easing/easing_rc3.py, examples/animation/states/states.py, examples/animation/states/states_rc2.py, examples/animation/states/states_rc3.py, examples/animation/stickman/stickman.py, examples/animation/stickman/stickman_rc2.py, examples/animation/stickman/stickman_rc3.py, examples/declarative/modelviews/objectlistmodel/objectlistmodel.py, e xamples/declarative/modelviews/objectlistmodel/objectlistmodel_rc2.p y, examples/declarative/modelviews/objectlistmodel/objectlistmodel_r c3.py, examples/demos/embeddeddialogs/embeddeddialogs.py, examples/demos/embeddeddialogs/embeddeddialogs_rc2.py, examples/demos/embeddeddialogs/embeddeddialogs_rc3.py, examples/demos/qtdemo/qtdemo.py, examples/demos/qtdemo/qtdemo_rc2.py, examples/demos/qtdemo/qtdemo_rc3.py, examples/demos/spreadsheet/spreadsheet.py, examples/demos/spreadsheet/spreadsheet_rc2.py, examples/demos/spreadsheet/spreadsheet_rc3.py, examples/demos/textedit/textedit.py, examples/demos/textedit/textedit_rc2.py, examples/demos/textedit/textedit_rc3.py, examples/desktop/systray/systray.py, examples/desktop/systray/systray_rc2.py, examples/desktop/systray/systray_rc3.py, examples/dialogs/classwizard/classwizard.py, examples/dialogs/classwizard/classwizard_rc2.py, examples/dialogs/classwizard/classwizard_rc3.py, examples/dialogs/configdialog/configdialog.py, examples/dialogs/configdialog/configdialog_rc2.py, examples/dialogs/configdialog/configdialog_rc3.py, examples/draganddrop/delayedencoding/delayedencoding.py, examples/draganddrop/delayedencoding/delayedencoding_rc2.py, examples/draganddrop/delayedencoding/delayedencoding_rc3.py, examples/draganddrop/draggableicons/draggableicons.py, examples/draganddrop/draggableicons/draggableicons_rc2.py, examples/draganddrop/draggableicons/draggableicons_rc3.py, examples/draganddrop/draggabletext/draggabletext.py, examples/draganddrop/draggabletext/draggabletext_rc2.py, examples/draganddrop/draggabletext/draggabletext_rc3.py, examples/draganddrop/fridgemagnets/fridgemagnets.py, examples/draganddrop/fridgemagnets/fridgemagnets_rc2.py, examples/draganddrop/fridgemagnets/fridgemagnets_rc3.py, examples/draganddrop/puzzle/puzzle.py, examples/draganddrop/puzzle/puzzle_rc2.py, examples/draganddrop/puzzle/puzzle_rc3.py, examples/graphicsview/collidingmice/collidingmice.py, examples/graphicsview/collidingmice/mice_rc2.py, examples/graphicsview/collidingmice/mice_rc3.py, examples/graphicsview/diagramscene/diagramscene.py, examples/graphicsview/diagramscene/diagramscene_rc2.py, examples/graphicsview/diagramscene/diagramscene_rc3.py, examples/graphicsview/dragdroprobot/dragdroprobot.py, examples/graphicsview/dragdroprobot/dragdroprobot_rc2.py, examples/graphicsview/dragdroprobot/dragdroprobot_rc3.py, examples/graphicsview/padnavigator/padnavigator.py, examples/graphicsview/padnavigator/padnavigator_rc2.py, examples/graphicsview/padnavigator/padnavigator_rc3.py, examples/itemviews/chart/chart.py, examples/itemviews/chart/chart_rc2.py, examples/itemviews/chart/chart_rc3.py, examples/itemviews/editabletreemodel/editabletreemodel.py, examples/itemviews/editabletreemodel/editabletreemodel_rc2.py, examples/itemviews/editabletreemodel/editabletreemodel_rc3.py, examples/itemviews/editabletreemodel/mainwindow.ui, examples/itemviews/editabletreemodel/ui_mainwindow.py, examples/itemviews/pixelator/pixelator.py, examples/itemviews/pixelator/pixelator_rc2.py, examples/itemviews/pixelator/pixelator_rc3.py, examples/itemviews/puzzle/puzzle.py, examples/itemviews/puzzle/puzzle_rc2.py, examples/itemviews/puzzle/puzzle_rc3.py, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/itemviews/simpletreemodel/simpletreemodel_rc2.py, examples/itemviews/simpletreemodel/simpletreemodel_rc3.py, examples/mainwindows/application/application.py, examples/mainwindows/application/application_rc2.py, examples/mainwindows/application/application_rc3.py, examples/mainwindows/dockwidgets/dockwidgets.py, examples/mainwindows/dockwidgets/dockwidgets_rc2.py, examples/mainwindows/dockwidgets/dockwidgets_rc3.py, examples/mainwindows/mdi/mdi.py, examples/mainwindows/mdi/mdi_rc2.py, examples/mainwindows/mdi/mdi_rc3.py, examples/mainwindows/sdi/sdi.py, examples/mainwindows/sdi/sdi_rc2.py, examples/mainwindows/sdi/sdi_rc3.py, examples/network/ftp/ftp.py, examples/network/ftp/ftp_rc2.py, examples/network/ftp/ftp_rc3.py, examples/opengl/textures/textures.py, examples/opengl/textures/textures_rc2.py, examples/opengl/textures/textures_rc3.py, examples/painting/basicdrawing/basicdrawing.py, examples/painting/basicdrawing/basicdrawing_rc2.py, examples/painting/basicdrawing/basicdrawing_rc3.py, examples/painting/svgviewer/svgviewer.py, examples/painting/svgviewer/svgviewer_rc2.py, examples/painting/svgviewer/svgviewer_rc3.py, examples/tools/customcompleter/customcompleter.py, examples/tools/customcompleter/customcompleter_rc2.py, examples/tools/customcompleter/customcompleter_rc3.py, examples/tools/i18n/i18n.py, examples/tools/i18n/i18n_rc2.py, examples/tools/i18n/i18n_rc3.py, examples/webkit/fancybrowser/fancybrowser.py, examples/webkit/fancybrowser/jquery_rc2.py, examples/webkit/fancybrowser/jquery_rc3.py, examples/webkit/formextractor/formextractor.py, examples/webkit/formextractor/formextractor_rc2.py, examples/webkit/formextractor/formextractor_rc3.py, examples/widgets/stylesheet/stylesheet.py, examples/widgets/stylesheet/stylesheet_rc2.py, examples/widgets/stylesheet/stylesheet_rc3.py, examples/widgets/tooltips/tooltips.py, examples/widgets/tooltips/tooltips_rc2.py, examples/widgets/tooltips/tooltips_rc3.py, examples/xmlpatterns/schema/schema.py, examples/xmlpatterns/schema/schema_rc2.py, examples/xmlpatterns/schema/schema_rc3.py, lib/configure-ng.py, lib/configure.py: The examples now have pre-built resource files rather than build them as part of the installation process. [04b69c56db3c] <4.10-maint> 2013-03-19 Phil Thompson * lib/configure-ng.py: configure-ng.py now handles the running of pyrcc4 against the examples. [7b8a544a91d2] <4.10-maint> * designer/python.pro-in, lib/configure-ng.py: configure-ng.py now handles the Qt Designer plugin. [a2748606c696] <4.10-maint> * lib/configure-ng.py, qpy/QtCore/qpycore.pro, qpy/QtDBus/qpydbus.pro, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDesigner/qpydesigner.pro, qpy/QtGui/qpygui.pro, qpy/QtOpenGL/qpyopengl.pro: configure-ng.py now handles pylupdate4 and pyrcc4. The qpy .pro files now have warnings enabled. [3c6866322dd7] <4.10-maint> * lib/configure-ng.py: configure-ng.py now handles pyuic4 and the uic module. [c9d7cea4f216] <4.10-maint> * lib/configure-ng.py: configure-ng.py now builds the dbus support module. [d9a6523db0e2] <4.10-maint> 2013-03-18 Phil Thompson * lib/configure-ng.py: configure-ng.py now handles elementtree. [c9fde076b375] <4.10-maint> * lib/configure-ng.py: configure-ng.py now builds the composite module and installs the .api file. [3dcde0bdd933] <4.10-maint> * lib/configure-ng.py: configure-ng.py now installs __init__.py. [26424a57fa80] <4.10-maint> * lib/configure-ng.py: configure-ng.py now builds all the regular modules. [4889761ed269] <4.10-maint> * lib/configure-ng.py: Removed the universal binary support from configure-ng.py as it is not supported by Qt5. [f0b0ab2ec55e] <4.10-maint> * lib/configure-ng.py: configure-ng.py now builds the QtOpenGL module. [e2c1700899c2] <4.10-maint> 2013-03-17 Phil Thompson * lib/configure-ng.py: configure-ng.py will now build the QtCore module. [eb987247618f] <4.10-maint> 2013-03-15 Phil Thompson * build.py: Non-Windows source packages now include the QAxContainer .sip files and non-X11 source packages now include the DBus .sip files. [4e349e5cd326] <4.10-maint> * PyQt4.msp: Fixed QSyntaxHighlighter::setCurrentBlockUserData() when the protected/public hack is disabled (ie. on Windows). [fb3d89c82296] <4.10-maint> 2013-03-13 Phil Thompson * lib/configure-ng.py: configure-ng.py now generates C++ code and associated .pro files. [ba2fe994bb0b] <4.10-maint> 2013-03-12 Phil Thompson * lib/configure-ng.py: configure-ng.py now gathers all the needed configuration information. [aea7dd82f704] <4.10-maint> * lib/configure-ng.py: Further work on configure-ng.py. The QtGui module is now detected. [6be9310b84a0] <4.10-maint> 2013-03-11 Phil Thompson * PyQt4.msp: Fixed QTextBlockUserData ownership issues when calling QSyntaxHighlighter.setCurrentBlockUserData() and QTextBlock.setUserData(). [1723f580e589] <4.10-maint> 2013-03-08 Phil Thompson * installers/PyQt4-Qt4-gpl.nsi: Added the qtaccessiblewidgets4.dll to the Qt4 Windows installers. [5859d9c1e93e] <4.10-maint> * installers/PyQt4-Qt5-gpl.nsi: Fixed dumb typos in the previous fix. [7db2892db623] <4.10-maint> * installers/PyQt4-Qt5-gpl.nsi: Added the accessible plugins to the Qt5 Windows installer. [7776cf6cd6e1] <4.10-maint> * installers/PyQt4-Qt5-gpl.nsi: Added the missing icudt49.dll to the Qt5 based Windows installer. [cb2a8fc0b5c5] <4.10-maint> * lib/configure-ng.py: More work on configure-ng.py. [bbff01cad1e8] <4.10-maint> 2013-03-07 Phil Thompson * lib/configure-ng.py: More work on configure-ng.py. [e8468e2f8a71] <4.10-maint> 2013-03-06 Phil Thompson * lib/configure-ng.py: More work on configure-ng.py. [5bbdfbba080e] <4.10-maint> 2013-03-05 Phil Thompson * lib/configure-ng.py: configure-ng.py now runs the -h flag without sipconfig.py. [6158a83b247d] <4.10-maint> * PyQt4.msp: Added a missing /Transfer/ to QTreeWidget.invisibleRootItem(). [85635bd2f453] <4.10-maint> 2013-03-04 Phil Thompson * installers/qsci-config.bat: Fixed the QScintilla configuration .bat file. [90522b46ebd0] <4.10-maint> 2013-03-01 Phil Thompson * .hgtags: Added tag 4.10 for changeset 88c1f8ec7a38 [b7f9ddeeb391] * NEWS: Released as v4.10. [88c1f8ec7a38] [4.10] 2013-02-09 Phil Thompson * qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h: Fixed a regression in the error handling of defining Qt signals so that QSignalMapper doesn't raise unncessary exceptions when QWidget has not been imported. [857940cc7ac7] 2013-02-06 Phil Thompson * installers/BuildGPL.txt, installers/qsci-config.bat: Added qsci-config.bat for QScintilla's new configure.py. [3a23595fcebe] * NEWS, Qt5-TODO.txt, lib/configure-ng.py, lib/configure.py, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_post_init.cpp.in, sphinx/build_system.rst: Added support for QtCore.PYQT_CONFIGURATION. [edc6504c58df] 2013-02-05 Phil Thompson * installers/BuildGPL.txt, installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi, installers/qt5-config.bat: Fixed the qt5-config.bat script. Updated the installer scripts so that the installer number is only added for subsequent versions. [00f1b86f7175] 2013-02-04 Phil Thompson * installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi: Renamed the Windows installers so that the PyQt version is more obvious. [a2557682038f] 2013-02-03 Phil Thompson * installers/PyQt4-Qt5-gpl.nsi, installers/pyqt-check.py: Fixed the Qt5 installer to include everything that is needed. Updated pyqt-check.py for Qt5. [49b20a53f7aa] * PyQt4.msp: Use the Qt5 implementation of WId. [46b7ee6f4ed4] 2013-02-02 Phil Thompson * qpy/QtCore/qwineventnotifier.sip: Add Qt scope to the use of HANDLE. [9432c415dc0f] * PyQt4.msp: Added QAbstractNativeEventFilter. [0cc9fb348ffe] * PyQt4.msp, qpy/QtCore/qwineventnotifier.sip: Added QWinEventNotifier. Added registerEventNotifier() and unregisterEventNotifier() to QAbstractEventDispatcher. Added installNativeEventFilter() and removeNativeEventFilter() to QAbstractEventDispatcher and QCoreApplication. [ae75a5c2a626] * PyQt4.msp, QAxContainer/qaxobject.sip, QAxContainer/qaxwidget.sip, lib/configure.py: Updated QAxObject and QAxWidget for Qt5. Fixed the missing HWND for Qt5. Fixed the QAxContainer build. [2fedf4fef4f4] * PyQt4.msp: Use Q_OS_WIN rather than Q_OS_WIN32. [74cbe4e74ebf] * lib/configure.py: Fixed a decoding problem with Python3 in configure.py. [b0fde58ea807] * PyQt4.msp: Updates for Qt5/Windows. [86bd7c35936f] 2013-02-01 Phil Thompson * installers/BuildGPL.txt, installers/PyQt4-Qt5-gpl.nsi, installers/qt5-config.bat: More installer and doc changes for Qt5. [d7878427bb5b] * installers/BuildGPL.txt: Updated the installer docs to cover building Qt5. [4eb0efcf0898] * PyQt4.msp, installers/BuildGPL.txt, installers/PyQt4-Qt5-gpl.nsi, installers/qt5-config.bat: Updated for Qt v5.0.1. [ce700ab0ea24] 2013-01-31 Phil Thompson * build.py, installers/BuildGPL.txt, installers/PyQt-gpl.nsi, installers/PyQt4-Qt4-gpl.nsi, installers/PyQt4-Qt5-gpl.nsi, installers/qt-config.bat, installers/qt4-config.bat, installers/qt5-config.bat: Various changes to the GPL installer scripts and build notes in preparation for support for Qt5. Added accessibility support to the Qt4 build. [c4d8c8b03b7c] 2013-01-25 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h: Fixed a bug with the handling of QVariant with Qt5. [51857d721e64] * sphinx/designer.rst: Fixed a couple of bugs in the Designer example code. [9c8593de34e0] 2013-01-18 Phil Thompson * PyQt4.msp: Restored the /Transfer/ annotations to the menuBar() and statusBar() methods of QMainWindow. The root cause of the original problem was a SIP bug. [f0118624625e] 2013-01-15 Phil Thompson * lib/configure-ng.py, lib/configure.py: Change the build system to not detect QtDBus prior to Qt v4.7 which was the version that was current when we added support for it. [e143a1307289] 2013-01-11 Phil Thompson * PyQt4.msp: Fixed the super-type of QGestureRecognizer. [4c2c40a76893] * lib/LICENSE.GPL2, lib/LICENSE.GPL3, lib/LICENSE.commercial.short, lib/LICENSE.gpl.short, lib/LICENSE.internal: Updated the copyright notices. [d9476fe9bbc9] 2013-01-08 Phil Thompson * PyQt4.msp: Fixed the handling of qintptr and quintptr for Qt5. [c21a07c6072f] * PyQt4.msp: Fixed QWebPage.extension() so that Python reimplementations are passed specific sub-classes for the option and output arguments. [6ab77c4c30f8] 2013-01-02 Phil Thompson * Makefile, PyQt4.msp, installers/BuildGPL.txt: Fixed build problems on OS/X when concatanation isn't specified. [d637d1e32894] 2012-12-29 Phil Thompson * PyQt4.msp: Fixed some C that should have been C++. [44a9d919fa47] * lib/configure.py: Build system fixes for Qt5 under Linux. [0aebdbbfdd68] 2012-12-21 Phil Thompson * PyQt4.msp: Fixed /Transfer/ annotations on menuBar() and statusBar() of QMainWindow. [87332d15cad2] 2012-12-20 Phil Thompson * Makefile, NEWS, PyQt4.msp, installers/BuildGPL.txt: Updated for Qt v5.0.0. [07fe7a82297e] 2012-12-19 Phil Thompson * examples/declarative/toys/dynamicscene/qml/Button.qml, examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml, examples/declarative/toys/dynamicscene/qml/PaletteItem.qml, examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml, examples/declarative/toys/dynamicscene/qml/Sun.qml, examples/declarative/toys/dynamicscene/qml/itemCreation.js, examples/declarative/ui-components/scrollbar/pics/niagara_falls.jpg, lib/SubclassCode/QtGui.versions, pyuic/uic/Compiler/proxy_type.py, sphinx/qsettings.rst, sphinx/qvariant.rst: Merged the 4.9 maintenance branch into the trunk. [ca339b33f10b] * PyQt4.msp, examples/demos/declarative/minehunt/MinehuntCore/Explosion.qml, examples/demos/declarative/minehunt/MinehuntCore/Tile.qml, examples/demos/declarative/minehunt/minehunt.qml, examples/demos/declarative/samegame/SamegameCore/BoomBlock.qml, examples/demos/declarative/samegame/SamegameCore/Button.qml, examples/demos/declarative/samegame/SamegameCore/Dialog.qml, examples/demos/declarative/samegame/samegame.qml, lib/configure- ng.py, lib/configure.py: Updated QtDeclarative for Qt5. [f7ae313dfdc7] <4.9-maint> * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Updated QtOpenGL for Qt5. [72770743d492] <4.9-maint> * designer/python.pro-in: Fixed a deprecation warning in the building of the Designer plugin. [ae1c4161714d] <4.9-maint> * designer/pluginloader.h: Fixed the Designer plugin to use the standard interface name. [c3d59eebade4] <4.9-maint> 2012-12-18 Phil Thompson * PyQt4.msp, designer/pluginloader.cpp, designer/pluginloader.h, lib /configure-ng.py, lib/configure.py: Updated QtDesigner for Qt5. [a47575efdf77] <4.9-maint> * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Ported QtDBus to Qt5. [cfb5521d717f] <4.9-maint> * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Updated QtMultimedia for Qt5. [b780fe4c40e9] <4.9-maint> * PyQt4.msp: Marked the deprecated methods of QtTest and QtScript. [876f5c906c90] <4.9-maint> * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Updated QtTest for Qt5. SIP v4.14.3 is now required. [3185a9d983b4] <4.9-maint> * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Updated QtScript and QtScriptTools for Qt5. [2e496514c121] <4.9-maint> * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Updated phonon for Qt5. [495ac7cfa29b] <4.9-maint> * PyQt4.msp, lib/configure.py: Fixed the building of QtXmlPatterns against Qt5. [8bc66fe29cae] <4.9-maint> * PyQt4.msp: Resolved the outstanding TODO items for Qt5. [90b11eaa3d96] <4.9-maint> * Makefile, NEWS, PyQt4.msp: Updates for Qt v5-rc2. [f7c203b8e767] <4.9-maint> 2012-12-08 Phil Thompson * .hgtags: Added tag 4.9.6 for changeset d7a19a62cbca [31c0e434a23f] <4.9-maint> * NEWS: Released as v4.9.6. [d7a19a62cbca] [4.9.6] <4.9-maint> 2012-12-07 Phil Thompson * PyQt4.msp, pylupdate/translator.h: Completed the updates for Qt v5-rc1. [9565ce63ec2f] <4.9-maint> * Makefile, NEWS, PyQt4.msp: Updated QtGui for Qt v5-rc1. [dfa23c96bc85] <4.9-maint> * PyQt4.msp: Initial scan of QtCore for Qt v5-rc1. [fac4c57bb9b7] <4.9-maint> 2012-12-06 Phil Thompson * QAxContainer/qaxbase.sip: Fixed an earlier fix to QAxBase. [bd5c2fe465d2] <4.9-maint> * installers/BuildGPL.txt: Updated the installer documentation. [9e327901d828] <4.9-maint> * installers/sip-config.bat: Fixed the SIP configuration script so that it doesn't hardcode the platform. [96906c4a2084] <4.9-maint> 2012-12-05 Phil Thompson * installers/BuildGPL.txt, installers/mysql-config.bat, installers /psql-config.bat: Added configuration scripts for MySQL and PostgreSQL drivers. [53733ff6df76] <4.9-maint> 2012-12-03 Phil Thompson * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Updated for Qt v4.8.4. [cb5b89b8e9cd] <4.9-maint> * examples/declarative/modelviews/objectlistmodel/view.qml, examples/declarative/toys/clocks/clocks.qml, examples/declarative/toys/clocks/content/Clock.qml, examples/declarative/toys/clocks/content/QuitButton.qml, examples/declarative/toys/clocks/content/quit.png, examples/declarative/toys/corkboards/Day.qml, examples/declarative/toys/corkboards/corkboards.qml, examples/declarative/toys/dynamicscene/Button.qml, examples/declarative/toys/dynamicscene/GenericSceneItem.qml, examples/declarative/toys/dynamicscene/PaletteItem.qml, examples/declarative/toys/dynamicscene/PerspectiveItem.qml, examples/declarative/toys/dynamicscene/Sun.qml, examples/declarative/toys/dynamicscene/dynamicscene.qml, examples/declarative/toys/dynamicscene/itemCreation.js, examples/declarative/toys/dynamicscene/qml/Button.qml, examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml, examples/declarative/toys/dynamicscene/qml/PaletteItem.qml, examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml, examples/declarative/toys/dynamicscene/qml/Sun.qml, examples/declarative/toys/dynamicscene/qml/itemCreation.js, examples/declarative/toys/tic-tac-toe/content/Button.qml, examples/declarative/toys/tic-tac-toe/content/TicTac.qml, examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml, examples/declarative/toys/tvtennis/tvtennis.qml, examples/declarative/ui-components/dialcontrol/content/Dial.qml, examples/declarative/ui- components/dialcontrol/content/QuitButton.qml, examples/declarative /ui-components/dialcontrol/content/quit.png, examples/declarative /ui-components/dialcontrol/dialcontrol.qml, examples/declarative/ui- components/flipable/content/Card.qml, examples/declarative/ui- components/flipable/flipable.qml, examples/declarative/ui- components/progressbar/content/ProgressBar.qml, examples/declarative /ui-components/progressbar/main.qml, examples/declarative/ui- components/scrollbar/ScrollBar.qml, examples/declarative/ui- components/scrollbar/main.qml, examples/declarative/ui- components/scrollbar/niagara_falls.jpg, examples/declarative/ui- components/scrollbar/pics/niagara_falls.jpg, examples/declarative /ui-components/searchbox/SearchBox.qml, examples/declarative/ui- components/searchbox/main.qml, examples/declarative/ui- components/slideswitch/content/Switch.qml, examples/declarative/ui- components/slideswitch/slideswitch.qml, examples/declarative/ui- components/spinner/content/Spinner.qml, examples/declarative/ui- components/spinner/main.qml, examples/declarative/ui- components/tabwidget/TabWidget.qml, examples/declarative/ui- components/tabwidget/main.qml, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/qmlShell.qml: Updated the QML examples from Qt v4.8.4 to eliminate the warning messages about the instances of "import Qt 4.7". [4f18b5233a2f] <4.9-maint> * doc/pyqtdoc/PyQt4.xfm, installers/PyQt-gpl.nsi: Build system changes for Qt v4.8.4. [d767725c5fce] <4.9-maint> * lib/configure-ng.py: More changes to the new configuration script. [173a88275e58] <4.9-maint> 2012-11-22 Phil Thompson * pyuic/uic/uiparser.py: Fixed a pyuic bug when a layout is given an explicit margin. [eb3707b921b4] <4.9-maint> 2012-11-20 Phil Thompson * QAxContainer/qaxbase.sip: Fixed QAxBase so that dynamicCall() and querySubObject() update the list of arguments on return. [be9a242a82c1] <4.9-maint> 2012-11-19 Phil Thompson * PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_qstring.cpp: Fixed a couple of regressions building against Qt4. [613edeb8564c] <4.9-maint> * Makefile, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py, sphinx/build_system.rst, sphinx/dbus.rst, sphinx/deploy_commercial.rst, sphinx/designer.rst, sphinx/gotchas.rst, sphinx/i18n.rst, sphinx/incompatibilities.rst, sphinx/incompatible_apis.rst, sphinx/index.rst, sphinx/installation.rst, sphinx/introduction.rst, sphinx/keyword_arguments.rst, sphinx/new_style_signals_slots.rst, sphinx/old_style_signals_slots.rst, sphinx/pickle.rst, sphinx/pyqt_qsettings.rst, sphinx/pyqt_qvariant.rst, sphinx/python_shell.rst, sphinx/python_v3.rst, sphinx/qml.rst, sphinx/qt_properties.rst, sphinx/qt_v5.rst, sphinx/resources.rst: Documentation tidy-ups (anticipating PyQt5). [21fb0e222468] <4.9-maint> * PyQt4.msp: Reverted the recent encoding changes as it is better to be compatible and (possibly) wrong. [09a19d1af4e9] <4.9-maint> * Makefile, PyQt4.msp: Fix for building without deprecated features. [96959c366acc] <4.9-maint> * PyQt4.msp, examples/demos/qtdemo/demoitem.py, lib/configure-ng.py, lib/configure.py, pylupdate/main.cpp, pylupdate/metatranslator.cpp, qpy/QtCore/qpycore.pro: Fixed pylupdate for Qt5-beta2. Fixed qtdemo.py for Qt5-beta2. All the modules that currently support Qt5 now support beta2. [fc697a4c0315] <4.9-maint> * PyQt4.msp: The QtNetwork modules now supports Qt5-beta2. [cf9782978014] <4.9-maint> 2012-11-17 Phil Thompson * Makefile, PyQt4.msp: The deprecated Qt4 features are now restored to QtGui. [021687bb7145] <4.9-maint> * PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_qstring.cpp: The deprecated Qt4 features are now restored to QtCore. [0aafceb02811] <4.9-maint> * Makefile, PyQt4.msp, lib/configure-ng.py, lib/configure.py, sphinx/installation.rst: Added the --no-deprecated option to configure.py. Added the stubs for re-introducing support for features deprecated in Qt5. [5a9c144d7316] <4.9-maint> 2012-11-16 Phil Thompson * Makefile, PyQt4.msp: QtCore now supports Qt5-beta2. [eb5d1f3ffd0b] <4.9-maint> 2012-11-15 Phil Thompson * Makefile, PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_qstring.cpp: QtCore now supports Qt5-beta2. [4cc2c28be058] <4.9-maint> 2012-11-14 Phil Thompson * PyQt4.msp, lib/configure-ng.py, lib/configure.py: Initial Qt5-beta2 changes related to QtWebKit being renamed to QtWebKitWidgets. [852f57b7ee58] <4.9-maint> 2012-11-13 Phil Thompson * Makefile, lib/configure-ng.py: More configure-ng.py work. [4d74d3bd6314] <4.9-maint> * lib/configure.py: Restored configure.py to before the cross-compilation support changes. All related work will now be done in configure-ng.py. [c9a8fbc44cbf] <4.9-maint> * Makefile, build.py, configurations/rpi_py3.cfg, lib/configure-ng.py, lib/configure.py, lib/rpi.cfg: More fixes for cross-compilation. Preparations for the new build system. [17e5ca332fbd] <4.9-maint> * PyQt4.msp: Fixed QVariantAnimation for Qt5. [b35d046175cf] <4.9-maint> 2012-11-12 Phil Thompson * Makefile, lib/configure.py, lib/rpi.cfg: More support for cross-compilation. [80730f7cf317] <4.9-maint> * Makefile, lib/configure.py, lib/rpi.cfg: Added the start of support for cross-compilation. [562ec95d2fc2] <4.9-maint> * lib/configure.py: Removed support for the mega-windows build from configure.py. [ec8bd962cdb8] <4.9-maint> 2012-11-11 Phil Thompson * PyQt4.msp, lib/configure.py: Fixed a build problem against OS/X non-Cocoa Qt v4.8 and later. [fe4e7f1c9f51] <4.9-maint> 2012-11-10 Phil Thompson * PyQt4.msp, Qt5-TODO.txt: Added the missing constBits() and constScanLine() methods to QImage. [5d8f2d809b23] <4.9-maint> 2012-11-04 Phil Thompson * sphinx/gotchas.rst: Clarified the docs regarding sip.voidptr and memoryview. [a76fd13f54f9] <4.9-maint> 2012-10-28 Phil Thompson * lib/configure.py: Fixed the build to handle the Python config include directory being different to the regular Python include directory. [1b4b26628739] <4.9-maint> 2012-10-08 Phil Thompson * Makefile, PyQt4.msp, lib/SubclassCode/QtGui.versions, lib/SubclassCode/QtGuiQt4.versions, lib/SubclassCode/mksccode.py: Implemented QScreen for Qt5. [95094339d25b] <4.9-maint> 2012-10-07 Phil Thompson * Makefile, PyQt4.msp: A QPoint can now be specified whenever a QPointF is expected. [f7b4fc5c2e79] <4.9-maint> * PyQt4.msp, lib/QMetaObjectFormats.txt, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_qobject_getattr.cpp: Backed out the signal handling changes that support choosing an overload based on the number of arguments to emit(). The approach is just wrong and doesn't work. Fixed the signature of QAbstractItemModel.dataChanged() for Qt5 to properly fix the above problem. [047e78e233a7] <4.9-maint> * qpy/QtCore/qpycore_chimera.cpp: Fixed a problem parsing QWidget based types with Qt5 caused by it registering QWidget* as a user type. [54a73237d721] <4.9-maint> 2012-10-05 Phil Thompson * Makefile, PyQt4.msp: Fixed the implementation of QUrl.FormattingOptions for Qt5. [c637c0fc6f5f] <4.9-maint> * Makefile, PyQt4.msp: Implemented QLCDNumber.setNumDigits() for Qt5 so that Designer4 .ui files are usable with Qt5. [477415fb7ce9] <4.9-maint> * qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_qobject_getattr.cpp, qpy/QtCore/qpycore_sip_helpers.cpp, qpy/QtCore/qpycore_types.cpp: Refactored signal support again to resolve a regression in the handling of overloaded signals. [6b4c37e45948] <4.9-maint> 2012-10-03 Phil Thompson * Makefile, PyQt4.msp: Fixed some ownership issues with QScriptEngine and QScriptEngineAgent. [dfed2357a8bc] <4.9-maint> * lib/configure.py: SIP v4.14.1 is now required. [5b1cd8e6e75f] <4.9-maint> * PyQt4.msp: Added the missing (but undocumented) locale and widget members to QStyleOptionViewItem for Qt5. [2c65850e632b] <4.9-maint> * qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_qobject_getattr.cpp: When emitting a signal that supports optional arguments the unbound signal used is the one that matches the number of supplied arguments rather than the one that the bound signal is bound to. [a2f79ec1be76] <4.9-maint> * qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_qobject_getattr.cpp, qpy/QtCore/qpycore_sip_helpers.cpp, qpy/QtCore/qpycore_sip_helpers.h, qpy/QtCore/qpycore_types.cpp: Refactored the implementation of signals prior to improving the support for calling signals with optional arguments. The docstring for a bound signal now only includes the docstring of specific unbound signal overload. [224e6247d454] <4.9-maint> 2012-09-30 Phil Thompson * PyQt4.msp: Fixed QTreeWidget.indexOfTopLevelItem() for all versions of Qt. [a2bc9d615aaa] <4.9-maint> * PyQt4.msp: Fixed the docstrings for all Qt5 implementations of dataChanged(). [c0840943eec2] <4.9-maint> * PyQt4.msp: Added Qt4 compatibility references to the Qt5 support for the QStyleOption classes. [7337a500c76b] <4.9-maint> * Makefile, PyQt4.msp: Fixed QApplication.palette() for Qt5. [aff5dab10b01] <4.9-maint> 2012-09-29 Phil Thompson * .hgtags: Added tag 4.9.5 for changeset 1bc4bbde25e0 [118d2f4a3630] <4.9-maint> * NEWS: Released as v4.9.5. [1bc4bbde25e0] [4.9.5] <4.9-maint> 2012-09-28 Phil Thompson * NEWS, examples/demos/qtdemo/xml/examples.xml, examples/tools/customcompleter/customcompleter.py, examples/tools/customcompleter/customcompleter.qrc, examples/tools/customcompleter/resources/wordlist.txt: Added the customcompleter.py example. [2a300de91e6e] <4.9-maint> 2012-09-27 Phil Thompson * installers/BuildGPL.txt: Further Windows installer documentation changes. [9eb6aac99275] <4.9-maint> * installers/BuildGPL.txt, installers/PyQt-gpl.nsi: Further Windows installer documentation updates. Updated the link to the Qt homepage in the installer. [8e3e4da458eb] <4.9-maint> * installers/BuildGPL.txt, installers/PyQt-gpl.nsi: Updated the internal build instructions for MSVC 2010 x64. Updated the location of the Qt docs in the Windows installer. [2a1d269451c1] <4.9-maint> 2012-09-25 Phil Thompson * lib/configure.py: Another Qt5-beta1 fix for building pyrcc4. [1453d84fc481] <4.9-maint> * PyQt4.msp, lib/configure.py: Various fixes for building against Qt5-beta1 on Linux. [8f28f5418b79] <4.9-maint> * installers/BuildGPL.txt, installers/PyQt-gpl.nsi: Some internal documentation updates for MSVC 2010. [2cb63a4afc90] <4.9-maint> 2012-09-24 Phil Thompson * lib/configure.py: Fixed configure.py for the LGPL version of Qt5-beta1. [3e881fe8af84] <4.9-maint> 2012-09-19 Phil Thompson * PyQt4.msp: Added the missing QPointF operator*(qreal, QPointF). [b007d37329a0] <4.9-maint> 2012-09-16 Phil Thompson * Makefile, NEWS, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, lib/configure.py: Added support for Qt v4.8.3. [e8962761d9f7] <4.9-maint> 2012-09-15 Phil Thompson * qpy/QtCore/qpycore_qstring.cpp: Fixed a bug in the PEP393 conversion from UCS1 Unicode to QString. [85c7c0c9c6e4] <4.9-maint> * Makefile, PyQt4.msp, lib/QMetaObjectFormats.txt: Fixed the QString comparison operators for Qt5. All tests now pass with Qt v5-beta1. [78042a30d382] <4.9-maint> * qpy/QtCore/qpycore_pyqtproxy.cpp: Further PyQtProxy fixes for Qt5. [6ce9c674f3fc] <4.9-maint> * qpy/QtCore/qpycore_pyqtproxy.cpp: Fixed PyQtProxy so that signals are added to the meta-object before slots. [fdc83015bec5] <4.9-maint> * Makefile, lib/QMetaObjectFormats.txt, test/tests/metaobject/test_pyqtproperty.py, test/tests/metaobject/test_pyqtsignature.py, test/tests/metaobject/test_pyqtslot.py: Various test fixes for Qt v5-beta1. [9040599e8ccb] <4.9-maint> * qpy/QtCore/qpycore_types.cpp: Fixed property types for Qt5 QObject sub-classes, although the behaviour is now slightly different than for Qt4. [c32ca16478ff] <4.9-maint> * qpy/QtCore/qpycore_types.cpp: Fixed the initial readable and writeable states of properties for Qt5. [1d19cf3405bc] <4.9-maint> 2012-09-14 Phil Thompson * Makefile, test/tests/metaobject/test_qvariantmap.py: Fixed a unit test bug for Python3. [fb7b53ddf9e4] <4.9-maint> * pyrcc/rcc.cpp: Fixed pyrcc4 for Qt v5-beta1. [ff7f9f6536d8] <4.9-maint> * PyQt4.msp, lib/configure.py: QtXml now builds against Qt v5-beta1. [906ce7cb7530] <4.9-maint> * PyQt4.msp, lib/configure.py: QtWebKit now builds against Qt v5-beta1. [7c50f6b22ae2] <4.9-maint> * Makefile, PyQt4.msp, lib/configure.py, qpy/QtCore/qpycore_pyqtproxy.cpp: QtSql now builds against Qt v5-beta1. [fe7a09fe433a] <4.9-maint> * Makefile, PyQt4.msp, lib/SubclassCode/QtNetwork.versions, lib/configure.py, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h: SIP v4.14 is now required. QtNetwork now builds against Qt v5-beta1. [a5223e4c201c] <4.9-maint> * PyQt4.msp, lib/configure.py: QtSvg now builds against Qt v5-beta1. [8d4eef4f8542] <4.9-maint> * PyQt4.msp, lib/configure.py: QtHelp will now build against Qt v5-beta1. [e6586ddf2149] <4.9-maint> 2012-09-11 Phil Thompson * PyQt4.msp: Updated the QtGui sub-class convertor code for Qt v5-beta1. [4609dca587a0] <4.9-maint> * PyQt4.msp, lib/SubclassCode/QtGui.versions: The QtCore and QtGui modules now build against Qt v5-beta1. [5840ebfdf3eb] <4.9-maint> * PyQt4.msp: Updated QtWidgets from Qt v5-beta1 [404305cda772] <4.9-maint> * PyQt4.msp: Updated QtPrintSupport for Qt v5-beta1. [4a9d653d3c31] <4.9-maint> * Makefile, PyQt4.msp: Updated QtGui for Qt v5-beta1 (but not QtWidgets and QtPrintSupport). [8d08462ea831] <4.9-maint> 2012-09-10 Phil Thompson * PyQt4.msp: QtCore now builds against Qt v5-beta1. [d0cccb4295cb] <4.9-maint> 2012-09-07 Phil Thompson * PyQt4.msp: Fixed connectNotify() and disconnectNotify() for Qt5. [304317205ef4] <4.9-maint> 2012-09-06 Phil Thompson * lib/configure.py: Fixed the build system for Qt5-beta1. [1b0ce0f34919] <4.9-maint> * Makefile, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_qmetaobjectbuilder.h, qpy/QtCore/qpycore_qobject_getattr.cpp, qpy/QtCore/qpycore_sip_helpers.cpp, qpy/QtCore/qpycore_types.cpp: Fixed PyQtProxy for Qt5. The QtCore support library now compiles against Qt5-beta1. [6711bb28821e] <4.9-maint> 2012-09-04 Phil Thompson * lib/QMetaObjectFormats.txt, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_qmetaobjectbuilder.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Added initial support for QMetaObject revision 7. [3ad1e0f2a0f2] <4.9-maint> * Qt5-TODO.txt, lib/QMetaObjectFormats.txt, qpy/QtCore/qpycore_types.cpp: Finshed properly documenting the revision 6 QMetaObject format. [7ca304ff209a] <4.9-maint> 2012-09-03 Phil Thompson * Makefile, lib/QMetaObjectFormats.txt: Added the start of the QMetaObject format document. [7b99c5b5bfbd] <4.9-maint> * Makefile, PyQt4.msp, lib/configure.py, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_qabstracteventdispatcher.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Initial update to QtCore for Qt v5-beta1. [5fb2aa4067a8] <4.9-maint> 2012-08-15 Phil Thompson * PyQt4.msp: Removed all calls to (the now deprecated) sipTransferBreak(). [6373b573b392] <4.9-maint> 2012-08-11 Phil Thompson * pyrcc/rcc.cpp: The timestamp in the comments of the output of pyrcc4 is now converted to UTF8 rather than Latin1. [cdc766160e37] <4.9-maint> 2012-08-10 Phil Thompson * PyQt4.msp: Implemented __str__ and __unicode__ for QChar. [ed00d7318b30] <4.9-maint> * sphinx/dbus.rst, sphinx/introduction.rst: Updated the DBus documentation. [cab6a052e0ee] <4.9-maint> 2012-07-13 Phil Thompson * pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/objcreator.py: Fixed a regression in pyuic's handling of custom widgets. [29b668ada14c] <4.9-maint> 2012-07-10 Phil Thompson * sphinx/index.rst, sphinx/pyqt_qsettings.rst, sphinx/pyqt_qvariant.rst, sphinx/qsettings.rst, sphinx/qvariant.rst: Fixed a problem with the QVariant and QSettings sections of the reference documentation which caused them to be overwritten. [fd0f3da9d79c] <4.9-maint> 2012-06-26 Phil Thompson * .hgtags: Added tag 4.9.4 for changeset 271d455ceabe [e046fc58565c] <4.9-maint> * NEWS: Released as v4.9.4. [271d455ceabe] [4.9.4] <4.9-maint> * lib/configure.py: Backed out the Debian configure changes as they break non-Linux platforms. Fixed the issue in a different way. [3db36ce9d937] <4.9-maint> 2012-06-24 Phil Thompson * .hgtags: Added tag 4.9.3 for changeset be3bdb13b8a3 [bb841cf1a1ca] <4.9-maint> * NEWS: Released as v4.9.3. [be3bdb13b8a3] [4.9.3] <4.9-maint> * PyQt4.msp: Fixed QByteArray.__getitem__ so that it does bounds checking. [9569093a74f1] <4.9-maint> 2012-06-23 Phil Thompson * lib/configure.py: Fixed a regression in the setting of the qmake spec name on OS/X. [b756550aebdd] <4.9-maint> 2012-06-22 Phil Thompson * lib/configure.py: Applied patches from Debian for when the ld --no-add-needed flag is set. [d0d1c4101e69] <4.9-maint> 2012-06-20 Phil Thompson * .hgtags: Added tag 4.9.2 for changeset 0ee020cfad4a [5ad2ca9b8b6e] <4.9-maint> * NEWS: Released as v4.9.2. [0ee020cfad4a] [4.9.2] <4.9-maint> * installers/BuildGPL.txt: Updated the Windows installer instructions for the latest QScintilla. [587b72276b04] <4.9-maint> * build.py: Updated the Qt version that the docs are built for. [49c50c0b18d5] <4.9-maint> 2012-06-19 Phil Thompson * Makefile, NEWS, qpy/QtCore/qpycore_qstring.cpp: Worked around the broken XCode v4 LLVM compiler. [9271e14ab3fc] <4.9-maint> 2012-06-04 Phil Thompson * installers/BuildGPL.txt: Updated the GPL installer build instructions for Qt v4.8.2. [93480e10d581] <4.9-maint> * installers/PyQt-gpl.nsi: Updated the Windows installer for Qt v4.8.2. [c6c6c070e1c5] <4.9-maint> * PyQt4.msp: Added the convert to sub-class code for the Qt5 QtGui module. [ffd34aa3572e] <4.9-maint> * lib/SubclassCode/mksccode.py: Ported the mksccode.py script to Python3. [2591ae27b2a7] <4.9-maint> 2012-06-03 Phil Thompson * PyQt4.msp: Fixed the build warning messages against Qt5. [d49ae8bd9152] <4.9-maint> * PyQt4.msp: The QtGui module now runs under Qt5. [9a03334b44cd] <4.9-maint> * PyQt4.msp, lib/SubclassCode/QtGui.versions: Fixes so that the QtGui modules now builds under Qt5. [7f375c5ed8cd] <4.9-maint> * Makefile, PyQt4.msp: Fixes so that the Qt5 .sip files are generated. [c4be684963f3] <4.9-maint> * PyQt4.msp, lib/configure.py: Completed the Qt5 QtWidgets support. [f2ea8574532e] <4.9-maint> 2012-06-02 Phil Thompson * PyQt4.msp: More work on the Qt4 QtWidgets support. [f3d8967f652c] <4.9-maint> * PyQt4.msp: More work on the Qt4 QtWidgets support. [8db15a78b54e] <4.9-maint> * PyQt4.msp: Completed the Qt5 QtPrintSupport support. [ac114552a6cd] <4.9-maint> * PyQt4.msp: Completed the Qt5 QtGui support. [90700afedbb0] <4.9-maint> 2012-06-01 Phil Thompson * Makefile, PyQt4.msp: Work on Qt5 support for QtGui. [3d5981f350cb] <4.9-maint> * Makefile, PyQt4.msp, lib/configure.py: Completed the Qt5 support for QtCore. [e5c1d5dc3bc7] <4.9-maint> * Makefile, PyQt4.msp, Qt5-TODO.txt: Completed the Qt5 QtCore parsing. [1b91bc133be5] <4.9-maint> 2012-05-30 Phil Thompson * PyQt4.msp: More Qt5 QtCore work. [219fc4249132] <4.9-maint> 2012-05-29 Phil Thompson * PyQt4.msp: More Qt5 QtCore work. [bfdb1e35efed] <4.9-maint> * PyQt4.msp: Updated QtCore for about a third of Qt5. [9ce04bb2cdaf] <4.9-maint> * PyQt4.msp: Scanned the QtCore directory for Qt5. [318f8b63a60f] <4.9-maint> 2012-05-28 Phil Thompson * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: Updated for Qt v4.8.2. [441c080de828] <4.9-maint> 2012-05-25 Phil Thompson * PyQt4.msp, installers/BuildGPL.txt: Updated the metasip project file to v2. [90a33f169ed0] <4.9-maint> 2012-05-16 Phil Thompson * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Fixed the exception raised when emitting a signal defined in a mixin class. [fa0ccc58c397] <4.9-maint> * sphinx/new_style_signals_slots.rst: Documented the need to use new-style disconnects for connections made new style. [618013835d1b] <4.9-maint> 2012-04-26 Phil Thompson * PyQt4.msp: Made sure all operators defined in the QSsl namespace are only enabled if Qt has been built with OpenSSL support. [57236e12b4e2] <4.9-maint> * sphinx/new_style_signals_slots.rst: Updated the docs to include pyqtBoundSignal.signal. [8c104981eac8] <4.9-maint> * NEWS, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp: Exposed the pyqtBoundSignal type object. Added the signal attribute to pyqtBoundSignal. [3bcd95f8b338] <4.9-maint> * NEWS, qpy/QtCore/qpynullvariant.sip, sphinx/incompatibilities.rst: Implemented QPyNullVariant.__bool__() to always return False thereby mimicing the behaviour of None. [35a14a51d331] <4.9-maint> 2012-04-17 Phil Thompson * qpy/QtCore/qpycore_pyqtproxy.cpp: Refactored PyQtProxy so that an instance is only deleted when the slot has finished executing and when there are no pending queued signals (even after all signals have been disconnected). [b656a91810b6] <4.9-maint> 2012-04-16 Phil Thompson * pyuic/uic/Loader/loader.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/__init__.py, sphinx/designer.rst: Added the package argument to uic.loadUi() which is required to specify the base package for any relative imports of custom widgets. [f03a8a04d68d] <4.9-maint> 2012-04-14 Phil Thompson * dbus/dbus.cpp, dbus/helper.h: Fixed the dbus.mainloop.qt module when a connection is unexpectedly broken. [7a93395c2cec] <4.9-maint> * pyuic/uic/Loader/qobjectcreator.py: Improved a pyuic exception when dynamically loading a .ui file that tried to import a custom widget from a non-existent module. [ec219159004e] <4.9-maint> * Makefile: Switched the Makefile back to building all modules. [7ed34b68bdbe] <4.9-maint> * Makefile, qpy/QtCore/qpycore_pyqtboundsignal.cpp: Replaced the Q_ASSERT with an exception when trying to emit a signal that was not defined in the main (left hand) super-class branch. This situation can arise for C when it inherits from A and B and both A and B inherit from QObject. [61207962459d] <4.9-maint> * lib/SubclassCode/QtGui.versions: Updated the QtGui sub-class code for Qt5. [a04767e0aebb] <4.9-maint> * PyQt4.msp: Initial QtGui changes for Qt5. [1c7a59ad8b1f] <4.9-maint> 2012-04-05 Phil Thompson * Makefile, PyQt4.msp: QtCore now builds against Qt5. [ed1e8b9e9c65] <4.9-maint> * Makefile, PyQt4.msp, lib/configure.py, qpy/QtCore/qpycore_sip_helpers.cpp: Most of QtCore will now build against Qt5. [1f3d558c9e6a] <4.9-maint> 2012-04-04 Phil Thompson * Makefile, lib/configure.py: configure.py changes for Qt v5. [28484a7e6d7f] <4.9-maint> * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-gpl.nsi: Updated the metasip project for Qt v4.8.1. [060c249a0d11] <4.9-maint> 2012-04-03 Phil Thompson * PyQt4.msp: qRegisterDraggedTypes() was added to Qt v4.5, not v4.2. [ee1d90e822b1] <4.9-maint> 2012-04-02 Phil Thompson * lib/configure.py: Fixed a configure.py bug on OS/X when the Designer plugin cannot be built. [ede0bc2d4b72] <4.9-maint> 2012-03-29 Phil Thompson * qpy/QtCore/qpycore_qobject_helpers.cpp: Raise an exception (to avoid a seg fault) when accessing staticMetaObject before the type is fully complete. [68f3058fbc4c] <4.9-maint> 2012-03-23 Phil Thompson * qpy/QtDBus/qpydbuspendingreply.sip, qpy/QtDBus/qpydbusreply.sip: Fixed a build problem with QtDBus and versions of Qt prior to v4.7. [7df26c475ead] <4.9-maint> 2012-03-20 Phil Thompson * pyuic/uic/Compiler/proxy_metaclass.py, pyuic/uic/Compiler/proxy_type.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/icon_cache.py, pyuic/uic/objcreator.py, pyuic/uic/port_v2/proxy_base.py, pyuic/uic/port_v3/proxy_base.py: Added support for themed icons to pyuic. [72848d9b3dbe] <4.9-maint> 2012-03-19 Phil Thompson * lib/LICENSE.GPL2, lib/LICENSE.GPL3, lib/LICENSE.commercial.short, lib/LICENSE.gpl.short, lib/LICENSE.internal, pyqtdoc/renderer.py: Updated the year on various copyright statements. [4f809ce4996d] <4.9-maint> * qpy/QtDeclarative/qpydeclarative_chimera_helpers.cpp: An empty list is never considered as an empty QList. [b85b470e0068] <4.9-maint> 2012-03-09 Phil Thompson * lib/configure.py: Fixed the building of the Designer plugin on OS/X where the version of the Python framework is not Current. [b99fb4a42763] <4.9-maint> * designer/pluginloader.cpp, qpy/QtCore/qpycore_qstring.cpp: Unicode updates for Python v3.3. [ecbd491fecf7] <4.9-maint> * lib/configure.py: Fixed the previous fix. [8494fbc574b6] <4.9-maint> * lib/configure.py: Updated the handling of sys.platform for Python v3.3. [87233a0582d6] <4.9-maint> 2012-02-19 Phil Thompson * PyQt4.msp: Renamed QFtp.Command.None to QFtp.Command.None_. [2b3d99e784b3] <4.9-maint> * examples/demos/qtdemo/xml/examples.xml, examples/demos/spreadsheet/images/interview.png, examples/demos/spreadsheet/printview.py, examples/demos/spreadsheet/spreadsheet.py, examples/demos/spreadsheet/spreadsheet.qrc, examples/demos/spreadsheet/spreadsheetdelegate.py, examples/demos/spreadsheet/spreadsheetitem.py, examples/demos/spreadsheet/util.py: Added the Spreadsheet example from Hans-Peter Jansen. [43b0b35e9a06] <4.9-maint> 2012-02-10 Phil Thompson * .hgtags: Added tag 4.9.1 for changeset f293b05df72f [81387c2d1828] <4.9-maint> * NEWS: Updated the NEWS file. Released as v4.9.1. [f293b05df72f] [4.9.1] <4.9-maint> 2012-02-09 Phil Thompson * PyQt4.msp: Added the missing QPixmap.HBitmapFormat.Alpha. [309fffc3b4af] <4.9-maint> 2012-01-29 Phil Thompson * dbus/dbus.cpp: Fixed the previous dbus change for Python v3. [83ed847d0273] <4.9-maint> 2012-01-27 Phil Thompson * PyQt4.msp: Fixed QPainterPathStroker.setDashPattern() so that it uses qreal rather than double. [0f6a0ac446f2] <4.9-maint> * dbus/dbus.cpp, lib/configure.py: Initial support for the Python v3 version of the standard DBus Python bindings. [8012ed2db538] <4.9-maint> 2012-01-26 Phil Thompson * PyQt4.msp: No longer track QGraphicsScene instances as they must outlive QGraphicsScene instances and the (newer) /KeepReference/ annotation will ensure that. [fa66c1118a9c] <4.9-maint> * pyuic/uic/icon_cache.py: Fixed a pyuic bug where it fails to handle an empty iconset. [8565ecd48610] <4.9-maint> 2012-01-05 Phil Thompson * PyQt4.msp: QPainter can now be used as a context manager. [602cb9ca8a0c] <4.9-maint> 2012-01-04 Phil Thompson * PyQt4.msp: Fixed the annotation on QGestureRecognizer::create(). [567bf81de1e5] <4.9-maint> * PyQt4.msp: qRegisterDraggedTypes() is OS/X specific. [f957ca49dea7] <4.9-maint> * designer/pluginloader.cpp: The Designer plugin loader now imports PyQt4.QtDesigner after the first plugin to allow the plugin to change the API version. (Thanks to Fabian Knittel.) Plugins are now loaded in alphabetical order. [3fb14926126d] <4.9-maint> * PyQt4.msp: Removed all definitions of the internal doItemsLayout(). [8a8ba843c589] <4.9-maint> 2011-12-29 Phil Thompson * lib/configure.py: Try and build QtDBus on Windows as well, just in case this gets properly supported one day. [3264a745e75b] <4.9-maint> 2011-12-27 Phil Thompson * PyQt4.msp: Added support for QMacPasteboardMime. [82b7a4fceccf] <4.9-maint> 2011-12-22 Phil Thompson * .hgtags: Added tag 4.9 for changeset f8a6c3596673 [11a8b148350e] * NEWS: Released as v4.9. [f8a6c3596673] [4.9] 2011-12-19 Phil Thompson * PyQt4.msp: Fixed %PickleCode for QByteArray for Python v3. [189b39e6b6c3] 2011-12-18 Phil Thompson * PyQt4.msp, installers/BuildGPL.txt, installers/PyQt-gpl.nsi, installers/pyqt-check.py, qpy/QtCore/qpycore_chimera.cpp, qpy/QtOpenGL/qpyopengl_uniform_value_array.cpp: Various fixes for building the GPL version on Windows with Python v2.5. [b00ee70180ed] 2011-12-17 Phil Thompson * NEWS, PyQt4.msp: Completed the support for QPainter.drawPixmapFragments(). [1cac12f7b6d3] * PyQt4.msp: Updated for Qt v4.8.0. [e3e889747995] 2011-12-10 Phil Thompson * pyuic/uic/uiparser.py: pyuic4 now makes sure that a module implementing a resource file is only imported once. [86ab82ddf2a6] * pyuic/uic/Compiler/qtproxies.py: Fixed a regression in the handling of translated strings by pyuic4. [34ab56e97c27] 2011-12-05 Phil Thompson * PyQt4.msp: Added a QDBusArgument ctor that does an implicit add(). QDBusArgument now handles QStringList explicitly so that it can be used with QString v2 API. [aea28dc027e5] 2011-12-04 Phil Thompson * doc/pyqtdoc/qdbusargument.html#details: Updated the documentation for QDBusArgument. [512e7813ed74] * PyQt4.msp: Renamed QDBusArgument.write() to add(). [a1d5330f0b16] 2011-12-03 Phil Thompson * PyQt4.msp: Fixed problems building QtDBus when not using concatanation. [65564eb2fcf4] 2011-12-02 Phil Thompson * PyQt4.msp: Changed QDBusArgument.write() to use a QMetaType.Type to specify the integer sub-type to be consistent with beginArray() and beginMap(). [a9d455da47d1] * PyQt4.msp: Implemented QDBusArgument.write(). [ce07595ee6d3] * qpy/QtDBus/qpydbus_chimera_helpers.cpp: DBus dicts are now demarshalled to Python dicts. [7651d4278945] * qpy/QtDBus/qpydbus_chimera_helpers.cpp: QDBusObjectPath, QDBusSignal and QDBusVariant instances are now demarshalled automatically. DBus structures are now demarshalled to tuples. [28ca12b5e1ca] 2011-11-30 Phil Thompson * qpy/QtDBus/qpydbus_chimera_helpers.cpp: Added support for demarshalling DBus basic types, variants and arrays. [ee8b9c7eb565] * qpy/QtDBus/qpydbus.pro, qpy/QtDBus/qpydbus_chimera_helpers.cpp: Fixed build problems with the internal QtDBus support library. [63fbff430ec2] * PyQt4.msp: Added the missing cornerWidget() and setCornerWidget() methods to QMenuBar. [89d8df1a429b] * PyQt4.msp, qpy/QtDBus/qpydbus.pro, qpy/QtDBus/qpydbus_api.h, qpy/QtDBus/qpydbus_chimera_helpers.cpp, qpy/QtDBus/qpydbus_chimera_helpers.h, qpy/QtDBus/qpydbus_post_init.cpp, qpy/QtDeclarative/qpydeclarative_chimera_helpers.h: Added the QDBusObjectPath, QDBusSignature and QDBusVariant classes. Added the QDBusArgument class with stubs for the marshalling methods. Added the stubs for automatically demarshalling a QDBusArgument. [92eed912c78c] 2011-11-29 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_init.cpp, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDeclarative/qpydeclarative_chimera_helpers.cpp, qpy/QtDeclarative/qpydeclarative_chimera_helpers.h, qpy/QtDeclarative/qpydeclarative_post_init.cpp: Implemented an internal API for extending the QVariant to/from PyObject conversions in sub-modules. Refactored QtDeclarative to use the new API. [8b83a180ea1a] * PyQt4.msp: Fixed the QtDBus module header file version numbers. [0af46bb95018] * sphinx/incompatibilities.rst: Fixed a couple of documentation typos. [fe3c6efbb8bf] * PyQt4.msp: Changes required for the const fix in the latest SIP. [7d46ebfee711] 2011-11-28 Phil Thompson * PyQt4.msp, lib/SubclassCode/QtGui.versions, lib/SubclassCode/mksccode.py: The sub-class convertor code generator now handles platform specific classes. Fixed the QtGui QObject sub-class convertor code. [e824094192b0] * lib/configure.py: Support for sys.platform being 'linux3'. [b589cda444dd] 2011-11-24 Phil Thompson * Makefile, qpy/QtCore/qpycore_pyqtconfigure.cpp: Properly fixed pyqtConfigure() for QVariant properties. [e8284ed41e49] * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_pyqtconfigure.cpp: Backed out changeset 1554 as it breaks (eg.) QAction's shortcut property. [9219004556d5] 2011-11-23 Phil Thompson * Makefile, lib/configure.py: Fixed the problem building a debug version on OS/X. The main Makefile is now portable between OS/X and Linux build environments. [3d2da74db8a9] 2011-11-22 Phil Thompson * PyQt4.msp: Added some missing declarations of private reimplementations of virtuals. [5af94bf8cca7] 2011-11-19 Phil Thompson * examples/dbus/remotecontrolledcar/car/car.py, examples/dbus/remotecontrolledcar/controller/controller.py: Tweaks to the remotecontrolledcar example. [43be96e17a4d] 2011-11-18 Phil Thompson * NEWS, examples/dbus/chat/chat.py, examples/dbus/remotecontrolledcar/car/car.py, examples/dbus/remotecontrolledcar/controller/controller.py, examples/dbus/remotecontrolledcar/controller/controller.ui, examples/dbus/remotecontrolledcar/controller/ui_controller.py: Added the remotecontrolledcar DBus example. [256a44f5cdb7] * Makefile, NEWS, doc/pyqtdoc/qtdbus.html#details, pyqtdoc/renderer.py, sphinx/dbus.rst, sphinx/introduction.rst: Added the QtDBus documentation. [34ac6f55d0fd] * build.py, lib/pyqtconfig.py.in, sphinx/build_system.rst: Added the QtDBusModuleMakefile to the build system. [1cd50b3c3073] 2011-11-17 Phil Thompson * qpy/QtOpenGL/qpyopengl_attribute_array.cpp, qpy/QtOpenGL/qpyopengl_uniform_value_array.cpp: Fixes for building under Python v3. [f8c4558189c4] * Makefile, PyQt4.msp: Added the sub-class convertor code for the QtDBus module. [4af996c32961] * PyQt4.msp: Implemented QDBusServiceWatcher and QDBusUnixFileDescriptor. [459332778d9c] * qpy/QtDBus/qpydbusreply.cpp, qpy/QtDBus/qpydbusreply.h, qpy/QtDBus/qpydbusreply.sip: Completed the implementation of QDBusReply. [a6850b1261df] * qpy/QtDBus/qpydbus.pro, qpy/QtDBus/qpydbuspendingreply.cpp, qpy/QtDBus/qpydbuspendingreply.h, qpy/QtDBus/qpydbuspendingreply.sip: Added QtDBusPendingReply. [7814c130f69c] 2011-11-16 Phil Thompson * Makefile, PyQt4.msp, qpy/QtDBus/qpydbusreply.cpp, qpy/QtDBus/qpydbusreply.h, qpy/QtDBus/qpydbusreply.sip: QDBusReply.value() now supports an optional 'type' argument (similar to QSettings.value()). [b77423c56396] * Makefile, PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_qsettings_value.cpp, qpy/QtCore/qpycore_qvariant_value.cpp, qpy/QtCore/qpycore_shared.h: Refactored the support for QSettings.value() so that the approach can be reused elsewhere. [07c138268dd2] 2011-11-15 Phil Thompson * examples/dbus/pingpong/ping.py, examples/dbus/pingpong/pong.py, qpy/QtDBus/qpydbusreply.cpp, qpy/QtDBus/qpydbusreply.h: QDBusReply instances can now be created from QDBusMessage instances. Added the pingpong DBus example. [2574ef349195] * Makefile, PyQt4.msp, lib/configure.py, qpy/QtDBus/qpydbusreply.sip: Completed the implementation of QDBusConnectionInterface. [d29e9c53bb99] * PyQt4.msp: Completed the implementation of QDBusAbstractInterface. [3817a84d1f7d] * Makefile, PyQt4.msp: Completed the support for QDBusConnection. [7cba9e4ecb49] 2011-11-10 Phil Thompson * Makefile, PyQt4.msp: Implemented the remaining easy parts of QDBusConnectionInterface. [09bea80c6d27] * Makefile, PyQt4.msp: Implemented the remaining easy parts of QDBusConnection. [256e813d7aa8] * PyQt4.msp, examples/dbus/chat/chat.py, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_shared.h: Added QDBusConnection.connect() overload used by the chat.py example. [81c86552f260] 2011-11-09 Phil Thompson * qpy/QtCore/qpycore_classinfo.cpp, qpy/QtCore/qpycore_classinfo.h: Added the missing Q_CLASSINFO implementation files to hg. [d327351899e9] * PyQt4.msp, examples/dbus/chat/chat.py: Completed the implementation of the chat.py example (though not yet using the same connection sytax as the C++ version). [d2b521de47a8] * PyQt4.msp, examples/dbus/chat/chat.py: Ported a bit more of the chat.py example. [29f1055846b0] * PyQt4.msp, examples/dbus/chat/chat.py, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_types.cpp: Completed the implementation of QtCore.Q_CLASSINFO(). [3229fd6d4c92] * PyQt4.msp, examples/dbus/chat/chat.py: Added the Q_CLASSINFO() stub. [2efabc06a7d8] 2011-11-08 Phil Thompson * Makefile, examples/dbus/chat/chat.py, examples/dbus/chat/chatmainwindow.ui, examples/dbus/chat/chatsetnickname.ui, examples/dbus/chat/ui_chatmainwindow.py, examples/dbus/chat/ui_chatsetnickname.py: Added the start of the chat.py DBus example. [d9bfe569854a] * Makefile, qpy/QtDBus/qpydbusreply.cpp, qpy/QtDBus/qpydbusreply.h, qpy/QtDBus/qpydbusreply.sip: Fixed the GIL for QPyDBusReply. Added the copy ctor for QPyDBusReply. [7e4361f52744] * qpy/QtOpenGL/qpyopengl_attribute_array.cpp: Backed out the change to the QGLShaderProgram.setAttributeArray() helper as it introduces a bug (in Python v2.6 and earlier) whereas the original was correct. [0bf9f9872be5] 2011-11-07 Phil Thompson * PyQt4.msp, examples/dbus/listnames.py, lib/configure.py, qpy/QtDBus/qpydbus.pro, qpy/QtDBus/qpydbusreply.cpp, qpy/QtDBus/qpydbusreply.h, qpy/QtDBus/qpydbusreply.sip: Implemented enough of the QtDBus module to support the listnames.py example. [cf69468dba00] 2011-11-05 Phil Thompson * PyQt4.msp: Completed to QtGui updates for Qt v4.8.0rc1. [ed449d9adff7] * PyQt4.msp: Updated the sub-class convertor code for QObject in QtGui. [e7a4f9f75ad8] * PyQt4.msp, lib/SubclassCode/QtGui.versions: Updated the first half of QtGui for Qt v4.8.0rc1. [0cadf9149173] 2011-11-04 Phil Thompson * PyQt4.msp, qpy/QtOpenGL/qpyopengl_api.h, qpy/QtOpenGL/qpyopengl_uniform_value_array.cpp: Completed the implementation of QGLShaderProgram.setUniformValueArray(). [e1b10bc36bf1] 2011-11-03 Phil Thompson * qpy/QtOpenGL/qpyopengl.pro, qpy/QtOpenGL/qpyopengl_api.h, qpy/QtOpenGL/qpyopengl_attribute_array.cpp, qpy/QtOpenGL/qpyopengl_uniform_value_array.cpp: Added the helper for QGLShader.setUniformValueArray(). [fb7bb12b65c7] * PyQt4.msp: Completed the QtCore support for Qt v4.8.0rc1. [f28f97fec2ba] 2011-11-01 Phil Thompson * PyQt4.msp: Updated the first half of QtCore for Qt v4.8.0rc1. [452ae420dd46] * PyQt4.msp, lib/SubclassCode/QtNetwork.versions: Updated QtNetwork for Qt v4.8.0rc1 (except for one TODO). [deb6d08bb8bc] * PyQt4.msp, lib/configure.py, qpy/QtOpenGL/opengl_types.sip: Reverted the support for QGLFunctions in Qt v4.8.0rc1 as it isn't sophisticated enough to replace PyOpenGL. [934f5555ce16] 2011-10-31 Phil Thompson * PyQt4.msp, lib/configure.py, qpy/QtOpenGL/opengl_types.sip: A first cut through the QtOpenGL changes for Qt v4.8.0rc1. [4e4a7415a211] * PyQt4.msp: Updated QtWebKit for Qt v4.8.0rc1 (except for a couple of things whose status may change before the final release). [7ca83083a01e] * PyQt4.msp: Updated QtHelp for Qt v4.8.0rc1. [60026a1e47b2] * PyQt4.msp: Updated QtTest for Qt v4.8.0rc1. [084c25ccf2fc] * PyQt4.msp: Updated QtSql for Qt v4.8.0rc1. [c150249bb91f] * PyQt4.msp: Dealt with all the new .h files in Qt v4.8.0rc1. [eb6134f7a7f4] * PyQt4.msp: Scanned the header directories of Qt v4.8.0rc1. [22d519818725] 2011-10-30 Phil Thompson * build.py: metasip is now called msip. [119dee8b2525] * .hgtags, Makefile, NEWS, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, lib/configure.py, qpy/QtOpenGL/qpyopengl_attribute_array.cpp: Fixes to build against Qt v4.8.0 (for OS/X at least). Updated the build system for Qt v4.8.0. [b29fc7106cb9] 2011-10-29 Phil Thompson * doc/pyqt4ref.txt, lib/LICENSE-MERGED-GPL2-GPL3, lib/mksccode.py, pyuic/LICENSE, test/sigslots/double_disable.py, test/sigslots/form4.ui, test/sigslots/sample-main.py, test/sigslots /sample-thread.py, test/sigslots/signalsignal.py, test/sigslots/sigsig2.py, test/sigslots/slottypes.py, test/sigslots/timer_leak.py, test/test_StandardKey.py, test/test_findChildren.py, test/test_gc_thread.py, test/test_pickle.py, test/test_postEvent.py, test/test_virtual_operators.py, test/tests/pyuic/test_loadUiType.py, test/tests/pyuic/ui/simple.ui: Merged the v4.8 branch into the trunk. [ffc1822f6ff7] 2011-10-24 Phil Thompson * .hgtags: Added tag 4.8.6 for changeset 18d40472293e [35f6bb2812bd] <4.8-maint> * Makefile, NEWS: Released as v4.8.6. [18d40472293e] [4.8.6] <4.8-maint> 2011-10-10 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_pyqtconfigure.cpp: Fixed the setting of properties using keyword arguments when the type of the property is QVariant. [67a20677a936] <4.8-maint> 2011-10-07 Phil Thompson * PyQt4.msp: Fixed the QLayoutItem sub-class convertor code. [29f302970b82] <4.8-maint> 2011-10-06 Phil Thompson * NEWS: Updated the NEWS file. [03226caad3fb] <4.8-maint> * PyQt4.msp: QAbstractFileEngine.beginEntryList() was added to Qt v4.3. [94dc8f29ac57] <4.8-maint> 2011-09-13 Phil Thompson * Makefile, qpy/QtCore/qpycore_pyqtproxy.cpp: Made sure that PyQtProxy instances are always deleted in the correct thread. [4726879563e5] <4.8-maint> 2011-09-02 Phil Thompson * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-gpl.nsi: Updated for Qt v4.7.4. [501237dfc183] <4.8-maint> * qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_qobject_helpers.cpp: The result from QObject::sender() will now not be qobject_cast() to a short-circuit signal unless short-circuit signals are actually in use. [b6792225f0b7] <4.8-maint> * qpy/QtCore/qpycore_qsettings_value.cpp: When QSettings.value() reads an invalid QVariant (eg. after writing an empty list) then it will call the type keyword argument (if given) to create an instance of the requested type (eg. an empty list). [325ee738d2ae] <4.8-maint> 2011-08-30 Phil Thompson * PyQt4.msp: Made sure that QObject::sender() is never called with the GIL. [2867ad3ae2e0] <4.8-maint> 2011-08-25 Phil Thompson * PyQt4.msp: Fixed a memory leak in QObject.findChild(). [e6842fdef3f9] <4.8-maint> * lib/configure.py: The qtdirs.cpp program generated by configure.py now creates a QCoreApplication instance so that any qt.conf file is taken into account. [60212b09b4c4] <4.8-maint> 2011-08-02 Phil Thompson * .hgtags: Added tag 4.8.5 for changeset 4eca6e428cc6 [8411290f16ee] <4.8-maint> * NEWS: Released as v4.8.5. [4eca6e428cc6] [4.8.5] <4.8-maint> 2011-07-29 Phil Thompson * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py: pyuic now sets the cursor for the viewport of a scroll area rather than the scroll area itself. [cb6f8462472d] <4.8-maint> * pyuic/uic/properties.py: pyuic now handles cursor shapes properly when passed to setProperty(). [254546c3721e] <4.8-maint> * pyuic/uic/Compiler/qtproxies.py: pyuic no longer encodes the name of a property when calling setProperty(). [2f929d6f4732] <4.8-maint> * examples/activeqt/webbrowser/webbrowser.py: Fixed a syntax error in the webbrowser.py example. [5a33bfe6f7ac] <4.8-maint> * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py, test/tests/pyuic/QWidget/Widget05.ui: pyuic fixes for QTreeWidgetItem. [fee63a088396] <4.8-maint> * pyuic/uic/properties.py: pyuic now sets font properties in the same order as uic (just in case it makes a difference). [ad519dee0410] <4.8-maint> 2011-07-28 Phil Thompson * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py, test/tests/pyuic/QWidget/Widget04.ui: Similar pyuic fixes for QListWidget. [7f3ac1d91b9b] <4.8-maint> * pyuic/uic/properties.py, pyuic/uic/uiparser.py, test/tests/pyuic/QWidget/Widget03.ui, test/tests/pyuic/test_pyuic.py: Fixed a couple of bugs in the QTableWidget fixes. Added the QTableWidget test case. [4f5bab56b4ae] <4.8-maint> * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py: pyuic now supports all QTableWidgetItem properties. [8a223d455098] <4.8-maint> * pyuic/uic/uiparser.py: pyuic no longer sets calculated row and column counts for QTableWidget if they have been set explicitly. [97814780c8fe] <4.8-maint> * pyuic/uic/properties.py: pyuic now handles the kerning and style strategy of fonts. [66a52b54b333] <4.8-maint> * Makefile, NEWS, PyQt4.msp: Added support for Q_IPV6ADDR. [457cb1b0d7e6] <4.8-maint> 2011-06-24 Phil Thompson * Makefile, pylupdate/fetchtr.cpp: Fixed pylupdate4 so that it handles (by ignoring) the standard Python string literal prefixes. [a9b83eac34c4] <4.8-maint> 2011-06-13 Phil Thompson * Makefile, build.py: Fixed the internal build system for MacOS as the development platform. [7598c7a759f6] <4.8-maint> 2011-06-07 Phil Thompson * Makefile, PyQt4.msp: Fixed the pre- and post-hooks for all exec() methods for Python v3. [d01847f40748] <4.8-maint> 2011-06-06 Phil Thompson * installers/pyqt-check.py: Added checks for image formats to pyqt-check.py. [b863a334ea62] <4.8-maint> 2011-06-04 Phil Thompson * qpy/QtCore/qpycore_pyqtpyobject.cpp: Third thoughts about the printing of the traceback on the pickling failure. [b5deb25a693d] <4.8-maint> * qpy/QtCore/qpycore_pyqtpyobject.cpp: Backed out changeset 45ce710ff4ee It's not clear how common the circumstances are that the changeset fixes, so back it out in case it is very common (and benign). [a06b73188df9] <4.8-maint> * qpy/QtCore/qpycore_pyqtpyobject.cpp: Print a traceback if the pickling of a PyQt_PyObject fails. [45ce710ff4ee] <4.8-maint> 2011-06-03 Phil Thompson * pyuic/uic/Compiler/qtproxies.py: pyuic fixes for all QDialog sub-classes that define enums. [8c5ccf68cc32] <4.8-maint> 2011-05-24 Phil Thompson * PyQt4.msp: Added the missing QAbstractFileEngine.beginEntryList(). Added the (now required) /Supertype/ annotation to QAbstractFileEngineIterator. [c10f1319b2cc] <4.8-maint> 2011-05-16 Phil Thompson * build.py, doc/pyqtdoc/PyQt4.xfm, installers/BuildGPL.txt, installers /PyQt-gpl.nsi: Updated the build instructions for the latest MySQL version and to include the compiler installation and configuration. Updated the documentation and installer for Qt v4.7.3. Automatically generate the merged GPL license for the installer. [4bd2045a6bc8] <4.8-maint> 2011-05-15 Phil Thompson * pyqtdoc/xform.py: Fixed the documentation builder so that it will run under Python v2.6. [581427363f63] <4.8-maint> 2011-05-13 Phil Thompson * build.py, lib/LICENSE-MERGED-GPL2-GPL3, lib/LICENSE.gpl.short: Removed some out of date links from the license information. Removed a redundant license file. [288c330edfb1] <4.8-maint> 2011-05-11 Phil Thompson * PyQt4.msp: Removed an incorrect /Transfer/ from QAbstractSpinBox.lineEdit(). [d2944e0c5f07] <4.8-maint> 2011-05-10 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp, test/tests/classes/test_QVariant.py: Fixed a bug converting from a QVariant containing a UInt with the high bit set on systems where sizeof (int) == sizeof (long). [4b711e1aa672] <4.8-maint> * pyuic/uic/objcreator.py: pyuic now opens plugins using universal newlines. [529530a7a12e] <4.8-maint> * Makefile, PyQt4.msp: Updated for Qt v4.7.3. [0bda5008e28c] <4.8-maint> 2011-05-01 Phil Thompson * .hgtags: Added tag 4.8.4 for changeset 029a580e7fd0 [1ffa469394c5] <4.8-maint> * NEWS: Released as v4.8.4. [029a580e7fd0] [4.8.4] <4.8-maint> * doc/pyqtdoc/qtsql.html#details, doc/pyqtdoc/qtxml.html#details, pyqtdoc/xform.py: Backed out the changes to the summary documentation now we that we have a better understanding of the problem. Fixed the documentation generator so that it doesn't choke on HTML entities that are mapped to non-ASCII strings. [94bccd75f0cc] <4.8-maint> * pyqtdoc/xform.py: Fixed a problem with the documentation generator caused by a change in the Qt docs HTML structure. [623214152b29] <4.8-maint> 2011-04-30 Phil Thompson * NEWS: Updated the NEWS file. [091c062de20b] <4.8-maint> * doc/pyqtdoc/qtsql.html#details, doc/pyqtdoc/qtxml.html#details: Fixed the summary documentation as the version of Python included with the latest Ubuntu seems to have problems xmlcharrefreplace. [96ddd757d5cf] <4.8-maint> * sphinx/installation.rst: Fixed a documentation typo. [4ed62a7e29d4] <4.8-maint> 2011-04-26 Phil Thompson * pylupdate/metatranslator.h, pylupdate/translator.h: Further fixes for when the Qt namespace macros aren't defined. [69c456457274] <4.8-maint> 2011-04-25 Phil Thompson * Makefile, installers/PyQt-gpl.nsi, installers/pyqt-check.py, installers/pyqt-config.bat, installers/sip-config.bat: The Windows installers no longer use a bin directory. All the .exe, .bat and .dll files are placed in the PyQt4 directory alongside the .pyd files. This means the correct DLLs will be found even if alternatives have been installed in the standard Windows directories, [1a684f18251f] <4.8-maint> 2011-04-22 Phil Thompson * PyQt4.msp: QObject.findChild() and QObject.findChildren() now support a tuple of types as the first argument (cf. isinstance()). [22ca0308bb05] <4.8-maint> * Makefile, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_namespace.h, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtmethodproxy.h, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_qobject_helpers.h, qpy/QtCore/qpycore_shared.h, qpy/QtCore/qpycore_sip_helpers.h: Change the handling of QT_BEGIN_NAMESPACE etc. as it isn't defined in early versions of Qt v4. [62e5e3e440f0] <4.8-maint> 2011-04-19 Phil Thompson * PyQt4.msp: Fixed a wrong #include in handwritten code for QHash. [d68034dc738f] <4.8-maint> 2011-04-18 Phil Thompson * Makefile, PyQt4.msp: Fixed QTreeWidget.setItemWidget() and QTreeWidget.removeItemWidget() so that they behave in the same way as the corresponding QListWidget and QTableWidget methods. [b96c9204daca] <4.8-maint> 2011-04-14 Phil Thompson * PyQt4.msp: Removed QTouchEventSequence as it's API makes it impossible to use. [a7888a3a52e8] <4.8-maint> 2011-04-13 Phil Thompson * PyQt4.msp: Added the missing QTest.touchEvent(). [412ee013f951] <4.8-maint> 2011-04-12 Phil Thompson * qpy/QtOpenGL/qpyopengl_api.h, qpy/QtOpenGL/qpyopengl_attribute_array.cpp: Fixed the setAttributeArray() support for versions of Qt prior to v4.6. [3e01f41da96d] <4.8-maint> 2011-04-10 Phil Thompson * NEWS: Updated the NEWS file. [fcc9a5e7012b] <4.8-maint> * Makefile, examples/opengl/textures/textures.py: More simplifications to the textures.py example. [1234bc91622d] <4.8-maint> * qpy/QtOpenGL/qpyopengl_attribute_array.cpp: Completed the support for setAttributeArray() by eliminating the memory leak. [64ebd63e6d29] <4.8-maint> 2011-04-09 Phil Thompson * examples/opengl/textures/textures.py: Efficiency improvements to the textures.py example. [3d327c604b80] <4.8-maint> * qpy/QtOpenGL/qpyopengl_attribute_array.cpp: Added initial support (with memory leaks) for setAttributeArray(). [ad428a5f7198] <4.8-maint> * examples/opengl/textures/textures.py: Updated the textures.py example so that it used setAttributeArray(). [93b8010e7712] <4.8-maint> * Makefile, PyQt4.msp, qpy/QtOpenGL/qpyopengl_api.h, qpy/QtOpenGL/qpyopengl_attribute_array.cpp: Updated the setAttributeArray() support stubs. [d244799d2efe] <4.8-maint> * PyQt4.msp, lib/configure.py, qpy/QtOpenGL/qpyopengl.pro, qpy/QtOpenGL/qpyopengl_api.h, qpy/QtOpenGL/qpyopengl_attribute_array.cpp: Added the stubs for supporting QGLShaderProgram.setAttributeArray(). [328bdc539a66] <4.8-maint> 2011-03-29 Phil Thompson * Makefile, NEWS: Updated the NEWS file. [8641ecc135b3] <4.8-maint> 2011-03-28 Phil Thompson * lib/configure.py: A couple of cleanups to configure.py. [8bf81a18fd40] <4.8-maint> * PyQt4.msp: Tracked objects now explicitly untrack themselves rather than wait for Qt to detect when the C++ object has been destroyed. This works around a (not well understood) problem in threaded applications. [2aed3a4a9e4d] <4.8-maint> * PyQt4.msp: Make sure the GIL is released when cleaning up any tracked objects. [13344c3e829f] <4.8-maint> 2011-03-26 Phil Thompson * Makefile, PyQt4.msp: Fixed the QList and QSet mapped types that have TYPE * arguments so that TYPE can be const. [0390c07b8d21] <4.8-maint> * PyQt4.msp: Set the version number of the QtCore module to 1. [13f0d229b2bc] <4.8-maint> 2011-03-20 Phil Thompson * lib/configure.py: Fixed a bug when building a debug version on Windows when there is no release version of Qt installed. [6643385d640e] <4.8-maint> 2011-03-19 Phil Thompson * qpy/QtCore/qpycore_qsettings_value.cpp: Release the GIL when calling QSettings::value() to avoid a possible deadlock. [0095ea59ff7c] <4.8-maint> * PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_qabstracteventdispatcher.cpp: Added limited support for the setEventFilter() and filterEvent() methods of QAbstractEventDispatcher. [55f10f91528f] <4.8-maint> 2011-03-18 Phil Thompson * PyQt4.msp, lib/configure.py: Used the new /KeepReference/ function annotation in QtDeclarative so that the common view.engine().rootContext().setContextObject(...) pattern works as far as keeping the right references alive is concerned. [48a0ac66e283] <4.8-maint> * PyQt4.msp: Added a missing /KeepReference/ to QDeclarativeContext::setContextProperty(). [93f6ee4c108d] <4.8-maint> * PyQt4.msp: Fixed QResource.data() so that it handles embedded '\0' bytes. [8e1289c53929] <4.8-maint> * pyrcc/rcc.h: pyrcc will now compress by default to match the current behaviour of rcc. [b3661b647e21] <4.8-maint> 2011-03-17 Phil Thompson * PyQt4.msp, lib/SubclassCode/QtGui.versions, lib/SubclassCode/mksccode.py, lib/mksccode.py: Added the QCommonStyle class as it will never be in a plugin. The mksccode.py utility now takes a file containing version information. [a7197c7d0b68] <4.8-maint> 2011-03-13 Phil Thompson * lib/configure.py: Prevented a potential exception in configure.py on Linux when Python is built as a static library. [e9b7f3421862] <4.8-maint> 2011-03-03 Phil Thompson * pylupdate/merge.cpp, pylupdate/metatranslator.cpp, pylupdate/metatranslator.h: Applied a pylupdate patch from Giuseppe Corbelli that adds source language support. [549adf8a3ff7] <4.8-maint> 2011-03-01 Phil Thompson * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-gpl.nsi, lib/configure.py: Added support for Qt v4.7.2. [1c4f4bfe9a83] <4.8-maint> 2011-02-23 Phil Thompson * lib/configure.py: configure.py will now look in the LIBDIR directory for the Python shared library as well as exec_prefix/lib. [e8c290c7fcb7] <4.8-maint> 2011-02-22 Phil Thompson * sphinx/new_style_signals_slots.rst: Updated the docs for overloaded signals describing potential problems when inadvertantly creating signals with the same C++ signature. [17e24ab57cf9] <4.8-maint> * contrib/pymodeltest/modeltest.py: More modeltest.py fixes. [792bcb59ffc1] <4.8-maint> 2011-02-21 Phil Thompson * contrib/pymodeltest/modeltest.py: Updates to modeltest.py from Andreas Pakulat. [69b59e029c55] <4.8-maint> * Makefile, installers/PyQt-gpl.nsi: Python v3.2 is now the default. [585b966615ad] <4.8-maint> 2011-01-29 Phil Thompson * .hgignore, Makefile, pyuic/uic/uiparser.py, test/tests/pyuic/QWidget/Widget02.ui: Fixed a bug dynamically loading .ui files containing a button box. [278054fd857c] <4.8-maint> 2011-01-24 Phil Thompson * sphinx/new_style_signals_slots.rst: Documented the fact that new-style connect() and disconnect() can raise an exception. [31c67a41aaf8] <4.8-maint> * NEWS, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Loader/qobjectcreator.py: Removed the conversion of widget names in a plugin to a set as it breaks __import__(). (Python v2.6 only?) [063b15785a32] <4.8-maint> * doc/pyqtdoc/PyQt4.xfm: Fixed a broken link in the class documentation to the main reference guide. [0f6c844c6597] <4.8-maint> 2011-01-23 Phil Thompson * .hgtags: Added tag 4.8.3 for changeset bf299afd00df [d2a923040ed1] <4.8-maint> * NEWS: Released as v4.8.3. [bf299afd00df] [4.8.3] <4.8-maint> * installers/PyQt-gpl.nsi: Updated the Windows installer for the revised documentation. [1ffe9742db5f] <4.8-maint> * Makefile, NEWS, PyQt4.msp: Fixed the QWizard.registerField() implementation so that it compiles when protected is not public. [01f2ca7146a3] <4.8-maint> 2011-01-21 Phil Thompson * NEWS, PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_shared.h: QWizardPage.registerField() can now take an unbound or bound signal as its 'changedSignal' argument. [4b6c9bc41eeb] <4.8-maint> * lib/configure.py: Slightly improved the abiflags support. [c1be10c35550] <4.8-maint> 2011-01-20 Phil Thompson * lib/configure.py: Fixed the build of the Designer plugin for Python v3.2. [d49a73b31f81] <4.8-maint> * Makefile, qpy/QtCore/qpycore_qpynullvariant.cpp: Eliminated a signed/unsigned comparison warning message. [7487e3ef4fcd] <4.8-maint> * PyQt4.msp: Removed the /Factory/ annotation from QMainWindow.createPopupMenu() because Qt gives the menu a parent and so doesn't really transfer ownership to the caller. [072544d080b3] <4.8-maint> 2011-01-15 Phil Thompson * sphinx/conf.py, sphinx/static/logo_tn.ico: Added a favicon to Sphinx. [fbc8b1362812] <4.8-maint> * sphinx/conf.py, sphinx/static/default.css, sphinx/static/logo.png: Added a new Sphinx stylesheet. [87067636cd34] <4.8-maint> 2011-01-14 Phil Thompson * qpy/QtCore/qpycore_qsettings_value.cpp: Fixed a bad function return type. [454d07a16153] <4.8-maint> * NEWS, doc/pyqtdoc/qpynullvariant#details, sphinx/incompatibilities.rst, sphinx/incompatible_apis.rst, sphinx/index.rst, sphinx/python_v3.rst: Updated the documentation and the NEWS file. [7a845a3f49e6] <4.8-maint> 2011-01-13 Phil Thompson * pyuic/uic/Compiler/qtproxies.py, test/tests/pyuic/QToolBox/ToolBox01.ui: Fixed untranslatable tab names of QTabWidget and QToolBox in pyuic. [fe1609e59f2f] <4.8-maint> * Makefile, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py, test/tests/pyuic/QToolBox/ToolBox00.ui: Added support for the tabSpacing pseudo-property of QToolBox to pyuic. [41d2b8cf4c08] <4.8-maint> * PyQt4.msp: Fixed __repr__ for all classes that have an isNull() method. [2cba2c51e2bf] <4.8-maint> * Makefile, PyQt4.msp: Added the missing QVariant.Type values from the v2 API. [76e234e40188] <4.8-maint> * PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_qpynullvariant.cpp, qpy/QtCore/qpycore_qpynullvariant.h: Completed the implementation of QPyNullVariant. [571010ef6ec1] <4.8-maint> 2011-01-11 Phil Thompson * Makefile, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_qpynullvariant.cpp, qpy/QtCore/qpynullvariant.sip: Implemented the QPyNullVariant class. [e124d3feac67] <4.8-maint> 2011-01-07 Phil Thompson * sphinx/index.rst, sphinx/qsettings.rst: Documented the QSettings.value() changes. [073f68f71e37] <4.8-maint> * sphinx/installation.rst: Fixed a broken documentation reference. [6a1a95079795] <4.8-maint> * Makefile, build.py, lib/LICENSE-MERGED-GPL2-GPL3, lib/LICENSE.GPL2, lib/LICENSE.GPL3, lib/LICENSE.commercial.short, lib/LICENSE.gpl.short, lib/LICENSE.internal, pyqtdoc/renderer.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/misc.py, pyuic/uic/Compiler/proxy_type.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/loader.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/__init__.py, pyuic/uic/exceptions.py, pyuic/uic/objcreator.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py, pyuic/uic/widget- plugins/qtwebkit.py, sphinx/conf.py: Updated the copyright notices. [5c9b75f65471] <4.8-maint> * PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_qsettings_value.cpp: QSettings.value() now takes an optional type argument that specifies the type of object that should be returned. [cf99437e51d9] <4.8-maint> 2011-01-06 Phil Thompson * qpy/QtCore/qpycore_qobject_getattr.cpp: Fixed a further build problem with Qt v4.4 and earlier. [96ac52f70525] <4.8-maint> 2011-01-04 Phil Thompson * qpy/QtCore/qpycore_pyqtmethodproxy.cpp: The new __getattr__ support should now build against with Qt v4.4 and earlier. [f24d690e72b9] <4.8-maint> 2011-01-03 Phil Thompson * sphinx/installation.rst: Updated the MacOS installation notes. [3726d3d59a6e] <4.8-maint> * lib/configure.py, sphinx/installation.rst: The build system now uses the deployment target information provided by the current SIP snapshot. [61841fd707f2] <4.8-maint> 2010-12-31 Phil Thompson * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py: pyuic now respects the disambiguation string when calling QApplication.translate(). [77dd137e13a9] <4.8-maint> * examples/demos/qtdemo/mainwindow.py, examples/demos/qtdemo/menumanager.py: Fixes for qtdemo.py from Hans-Peter Jansen. [67a20e22aff7] <4.8-maint> * PyQt4.msp: Added a couple of missing non-X11 method reimplementations. [144f5a9d966e] <4.8-maint> * sphinx/qml.rst: Documented the behavior of QDeclarativeItem to act as a transparent proxy for functions and signals defined using QML. [d4ee4c2f7285] <4.8-maint> * Makefile, build.py, doc/pyqt4ref.txt, pyqtdoc/renderer.py, sphinx/introduction.rst: Tidied up the build system for the SPhinx documentation. [410a780b044b] <4.8-maint> * sphinx/build_system.rst, sphinx/dbus.rst, sphinx/deploy_commercial.rst, sphinx/gotchas.rst, sphinx/i18n.rst, sphinx/incompatibilities.rst, sphinx/index.rst, sphinx/qt_properties.rst, sphinx/resources.rst: Completed the port of the reference guide to Sphinx. [3a73fd5c2847] <4.8-maint> 2010-12-30 Phil Thompson * build.py, sphinx/buffer_interface.rst, sphinx/conf.py, sphinx/designer.rst, sphinx/incompatibilities.rst, sphinx/incompatible_apis.rst, sphinx/index.rst, sphinx/installation.rst, sphinx/introduction.rst, sphinx/keyword_arguments.rst, sphinx/new_style_signals_slots.rst, sphinx/old_style_signals_slots.rst, sphinx/pickle.rst, sphinx/python_shell.rst, sphinx/qml.rst, sphinx/qt_properties.rst, sphinx/qvariant.rst, sphinx/webkit.rst: Started porting the reference guide to Sphinx. [1dc0063a49b6] <4.8-maint> * Makefile, qpy/QtCore/qpycore_pyqtmethodproxy.cpp: Completed the __getattr__ implementation. [dfe6ca21235b] <4.8-maint> 2010-12-29 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_pyqtmethodproxy.cpp, qpy/QtCore/qpycore_pyqtmethodproxy.h, qpy/QtCore/qpycore_qobject_getattr.cpp: The __getattr__ support now handles methods (but not yet their return values). [ac61342d2816] <4.8-maint> * Makefile, PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtmethodproxy.cpp, qpy/QtCore/qpycore_pyqtmethodproxy.h, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_qobject_getattr.cpp, qpy/QtCore/qpycore_types.cpp: Implemented QObject.__getattr__() to implement support for signals and (so far only stubs for) methods that are not explicitly wrapped (e.g. for QDeclarativeItem's role as a JavaScript proxy). [b460c075461f] <4.8-maint> 2010-12-28 Phil Thompson * pyuic/uic/Compiler/qtproxies.py, test/tests/pyuic/QWidget/Widget01.ui: Taught pyuic about QPainter so that its enums are recognised. [1d2c3e10879e] <4.8-maint> * examples/dialogs/standarddialogs.py: Fixed a string formatting bug in the standarddialogs.py example. [220eb9d8c8d9] <4.8-maint> 2010-12-26 Phil Thompson * pyuic/uic/uiparser.py: Fixed a regression in pyuic's handling of QStackedWidget. [b5e6f8eed455] <4.8-maint> 2010-12-24 Phil Thompson * pyuic/LICENSE, pyuic/uic/Compiler/__init__.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/misc.py, pyuic/uic/Compiler/proxy_type.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/__init__.py, pyuic/uic/Loader/loader.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/__init__.py, pyuic/uic/driver.py, pyuic/uic/exceptions.py, pyuic/uic/icon_cache.py, pyuic/uic/objcreator.py, pyuic/uic/port_v2/__init__.py, pyuic/uic/port_v2/as_string.py, pyuic/uic/port_v2/ascii_upper.py, pyuic/uic/port_v2/invoke.py, pyuic/uic/port_v2/load_plugin.py, pyuic/uic/port_v2/proxy_base.py, pyuic/uic/port_v2/string_io.py, pyuic/uic/port_v3/__init__.py, pyuic/uic/port_v3/as_string.py, pyuic/uic/port_v3/ascii_upper.py, pyuic/uic/port_v3/invoke.py, pyuic/uic/port_v3/load_plugin.py, pyuic/uic/port_v3/proxy_base.py, pyuic/uic/port_v3/string_io.py, pyuic/uic/properties.py, pyuic/uic/pyuic.py, pyuic/uic/uiparser.py, pyuic/uic/widget-plugins/phonon.py, pyuic/uic/widget- plugins/qaxcontainer.py, pyuic/uic/widget-plugins/qscintilla.py, pyuic/uic/widget-plugins/qtdeclarative.py, pyuic/uic/widget- plugins/qtwebkit.py: Moved the uic licensing information to the individual files. [deda35789ce1] <4.8-maint> 2010-12-23 Phil Thompson * .hgtags: Added tag 4.8.2 for changeset 06dce3d0db11 [059e04df1537] <4.8-maint> * NEWS: Released as v4.8.2. [06dce3d0db11] [4.8.2] <4.8-maint> 2010-12-21 Phil Thompson * pyuic/uic/uiparser.py: Fixed a pyuic bug with the margins of a layout widget. [c9917543b4f6] <4.8-maint> 2010-12-20 Phil Thompson * qpy/QtCore/qpycore_types.cpp: Disabled the code that detects when Qt generated QObjects get deleted as it cannot be reliably implemented. [459d6551edc6] <4.8-maint> * PyQt4.msp: Moved the mapped type for QList from PyQtMobility. [6f6c1880fae1] <4.8-maint> * PyQt4.msp: Added the missing #include of qset.h to the QSet mapped type. [4652b6d5bf76] <4.8-maint> * PyQt4.msp: Added the QSet mapped type for PyQtMobility. Made all mapped types with enum's as template arguments behave the same as a function argument. [a330e5597d05] <4.8-maint> 2010-12-19 Phil Thompson * qpy/QtCore/qpycore_types.cpp: The guard for Qt generated QObjects now uses QWeakPointer if ti is available. [bd68a9bb55f5] <4.8-maint> 2010-12-16 Phil Thompson * PyQt4.msp: Added implementations of QSet for PyQtMobility. [51e6bf6173b3] <4.8-maint> 2010-12-11 Phil Thompson * PyQt4.msp: Fixes for the changed PySlice_GetIndicesEx() signature in Python v3.2b1. [0c0f53c0fa42] <4.8-maint> * lib/configure.py, pylupdate/fetchtr.cpp, pylupdate/metatranslator.cpp, pylupdate/translator.cpp: Removed the dependency on QtGui from pylupdate4. [4ec01aa8b9bd] <4.8-maint> 2010-12-09 Phil Thompson * NEWS, contrib/lang/Makefile, contrib/lang/lang.py, contrib/lang/lang.qrc, contrib/lang/lang/cs_cs.qm, contrib/lang/lang/cs_cs.ts, contrib/lang/lang/da_da.qm, contrib/lang/lang/da_da.ts, contrib/lang/lang/de_ch.qm, contrib/lang/lang/de_ch.ts, contrib/lang/lang/de_de.qm, contrib/lang/lang/de_de.ts, contrib/lang/lang/en_gb.qm, contrib/lang/lang/en_gb.ts, contrib/lang/lang/en_us.qm, contrib/lang/lang/en_us.ts, contrib/lang/lang/es_es.qm, contrib/lang/lang/es_es.ts, contrib/lang/lang/et_et.qm, contrib/lang/lang/et_et.ts, contrib/lang/lang/fi_fi.qm, contrib/lang/lang/fi_fi.ts, contrib/lang/lang/fr_ca.qm, contrib/lang/lang/fr_ca.ts, contrib/lang/lang/fr_fr.qm, contrib/lang/lang/fr_fr.ts, contrib/lang/lang/hu_hu.qm, contrib/lang/lang/hu_hu.ts, contrib/lang/lang/it_it.qm, contrib/lang/lang/it_it.ts, contrib/lang/lang/nl_nl.qm, contrib/lang/lang/nl_nl.ts, contrib/lang/lang/no_no.qm, contrib/lang/lang/no_no.ts, contrib/lang/lang/pl_pl.qm, contrib/lang/lang/pl_pl.ts, contrib/lang/lang/pt_pt.qm, contrib/lang/lang/pt_pt.ts, contrib/lang/lang/sv_sv.qm, contrib/lang/lang/sv_sv.ts, contrib/lang/lang/tr_tr.qm, contrib/lang/lang/tr_tr.ts, contrib/lang/mainwindow.ui: Added the lang example from Hans-Peter Jansen to the contrib directory. [c0b24dfbb871] <4.8-maint> 2010-12-07 Phil Thompson * QAxContainer/QAxContainermod.sip: Eliminated deprecation warnings from the QAxContainer module. [8b918f4306e1] <4.8-maint> * lib/configure.py: Make sure all generated #line preprocessor directives have absolute file names. [1d96576cc2a1] <4.8-maint> * PyQt4.msp, lib/configure.py: configure.py now automatically converts SIP v4 license files to the v5 syntax. [46bf1618d8ef] <4.8-maint> * PyQt4.msp, lib/configure.py: Enabled SIP warning messages. Eliminated all deprecation warnings (except those related to %License). [acb54da3f0e3] <4.8-maint> 2010-12-06 Phil Thompson * pyuic/uic/Loader/loader.py: Fixed the last fix. [e73d5045bea5] <4.8-maint> * pyuic/uic/Loader/loader.py: Fixed a pyuic regression when loadUi() is called to load from a file-like object. [1de813aa574c] <4.8-maint> 2010-12-03 Phil Thompson * NEWS, examples/demos/qtdemo/xml/examples.xml, examples/widgets/stylesheet/images/checkbox_checked.png, examples/widgets/stylesheet/images/checkbox_checked_hover.png, examples/widgets/stylesheet/images/checkbox_checked_pressed.png, examples/widgets/stylesheet/images/checkbox_unchecked.png, examples/widgets/stylesheet/images/checkbox_unchecked_hover.png, examples/widgets/stylesheet/images/checkbox_unchecked_pressed.png, examples/widgets/stylesheet/images/down_arrow.png, examples/widgets/stylesheet/images/down_arrow_disabled.png, examples/widgets/stylesheet/images/frame.png, examples/widgets/stylesheet/images/pagefold.png, examples/widgets/stylesheet/images/pushbutton.png, examples/widgets/stylesheet/images/pushbutton_hover.png, examples/widgets/stylesheet/images/pushbutton_pressed.png, examples/widgets/stylesheet/images/radiobutton_checked.png, examples/widgets/stylesheet/images/radiobutton_checked_hover.png, examples/widgets/stylesheet/images/radiobutton_checked_pressed.png, examples/widgets/stylesheet/images/radiobutton_unchecked.png, examples/widgets/stylesheet/images/radiobutton_unchecked_hover.png, e xamples/widgets/stylesheet/images/radiobutton_unchecked_pressed.png, examples/widgets/stylesheet/images/sizegrip.png, examples/widgets/stylesheet/images/spindown.png, examples/widgets/stylesheet/images/spindown_hover.png, examples/widgets/stylesheet/images/spindown_off.png, examples/widgets/stylesheet/images/spindown_pressed.png, examples/widgets/stylesheet/images/spinup.png, examples/widgets/stylesheet/images/spinup_hover.png, examples/widgets/stylesheet/images/spinup_off.png, examples/widgets/stylesheet/images/spinup_pressed.png, examples/widgets/stylesheet/images/up_arrow.png, examples/widgets/stylesheet/images/up_arrow_disabled.png, examples/widgets/stylesheet/mainwindow.ui, examples/widgets/stylesheet/qss/coffee.qss, examples/widgets/stylesheet/qss/default.qss, examples/widgets/stylesheet/qss/pagefold.qss, examples/widgets/stylesheet/stylesheet.py, examples/widgets/stylesheet/stylesheet.qrc, examples/widgets/stylesheet/stylesheeteditor.py, examples/widgets/stylesheet/stylesheeteditor.ui, examples/widgets/stylesheet/ui_mainwindow.py, examples/widgets/stylesheet/ui_stylesheeteditor.py: Added the stylesheet.py example from Hans-Peter Jansen. [24a6ba5f4f0f] <4.8-maint> * NEWS, examples/demos/qtdemo/xml/examples.xml, examples/widgets/calendarwidget.py: Added the calendarwidget.py example from Hans-Peter Jansen. [e47f67951eb3] <4.8-maint> * examples/itemviews/basicsortfiltermodel.py: Improvements to the basicsortfiltermodel.py example from Hans-Peter Jansen. [5b42b2d93d5d] <4.8-maint> * PyQt4.msp: The naming convention of functions import via SIP is now to prefix with the originating module. [6ff375daa94d] <4.8-maint> * qpy/QtCore/qpycore_chimera.cpp: If there is no registered Qt type for an object then check to see if any of its super-classes is registered. [4dddaa7e9c07] <4.8-maint> 2010-11-30 Phil Thompson * qpy/QtCore/qpycore_pyqtconfigure.cpp: Slight tidy up of the unknown property/signal fix. [12b5613b230c] <4.8-maint> * lib/configure.py: The keyword_arguments %Module argument is now used instead of SIP's -k command line option so that argument names can now be restored to the .sip files (and, therefore, to the documentation). SIP v4.12 is now required. [e0d2da5e1f0a] <4.8-maint> * qpy/QtCore/qpycore_pyqtconfigure.cpp: Fixed the exception when an invalid property or signal is specified when there is a following valid one. [ad1331aa93a6] <4.8-maint> 2010-11-29 Phil Thompson * NEWS, examples/demos/qtdemo/xml/examples.xml, examples/demos/textedit/example.html, examples/demos/textedit/images/logo.png, examples/demos/textedit/images/logo32.png, examples/demos/textedit/images/mac/editcopy.png, examples/demos/textedit/images/mac/editcut.png, examples/demos/textedit/images/mac/editpaste.png, examples/demos/textedit/images/mac/editredo.png, examples/demos/textedit/images/mac/editundo.png, examples/demos/textedit/images/mac/exportpdf.png, examples/demos/textedit/images/mac/filenew.png, examples/demos/textedit/images/mac/fileopen.png, examples/demos/textedit/images/mac/fileprint.png, examples/demos/textedit/images/mac/filesave.png, examples/demos/textedit/images/mac/textbold.png, examples/demos/textedit/images/mac/textcenter.png, examples/demos/textedit/images/mac/textitalic.png, examples/demos/textedit/images/mac/textjustify.png, examples/demos/textedit/images/mac/textleft.png, examples/demos/textedit/images/mac/textright.png, examples/demos/textedit/images/mac/textunder.png, examples/demos/textedit/images/mac/zoomin.png, examples/demos/textedit/images/mac/zoomout.png, examples/demos/textedit/images/win/editcopy.png, examples/demos/textedit/images/win/editcut.png, examples/demos/textedit/images/win/editpaste.png, examples/demos/textedit/images/win/editredo.png, examples/demos/textedit/images/win/editundo.png, examples/demos/textedit/images/win/exportpdf.png, examples/demos/textedit/images/win/filenew.png, examples/demos/textedit/images/win/fileopen.png, examples/demos/textedit/images/win/fileprint.png, examples/demos/textedit/images/win/filesave.png, examples/demos/textedit/images/win/textbold.png, examples/demos/textedit/images/win/textcenter.png, examples/demos/textedit/images/win/textitalic.png, examples/demos/textedit/images/win/textjustify.png, examples/demos/textedit/images/win/textleft.png, examples/demos/textedit/images/win/textright.png, examples/demos/textedit/images/win/textunder.png, examples/demos/textedit/images/win/zoomin.png, examples/demos/textedit/images/win/zoomout.png, examples/demos/textedit/textedit.py, examples/demos/textedit/textedit.qrc: Added the textedit.py demonstration from Hans-Peter Jansen. [9203df681a76] <4.8-maint> * examples/widgets/scribble.py: Fixes to the scribble.py example from Hans-Peter Jansen. [09a05a14953d] <4.8-maint> * examples/demos/qtdemo/xml/examples.xml, examples/webkit/domtraversal/domtraversal.py, examples/webkit/domtraversal/ui_window.py, examples/webkit/domtraversal/window.ui, examples/webkit/fancybrowser/fancybrowser.py, examples/webkit/fancybrowser/jquery.min.js, examples/webkit/fancybrowser/jquery.qrc, examples/webkit/framecapture.py, examples/webkit/googlechat/form.ui, examples/webkit/googlechat/googlechat.py, examples/webkit/googlechat/ui_form.py, examples/webkit/previewer/previewer.py, examples/webkit/previewer/previewer.ui, examples/webkit/previewer/ui_previewer.py, examples/webkit/simpleselector/simpleselector.py, examples/webkit/simpleselector/ui_window.py, examples/webkit/simpleselector/window.ui: Added the rest of the WebKit examples from Hans-Peter Jansen. [3a14437e3cba] <4.8-maint> * contrib/pymodeltest/modeltest.py: Updates to modeltest.py from Wolfgang Rohdewald. [91376492d40d] <4.8-maint> * pyuic/uic/driver.py: For Python3 pyuic writes to stdout using UTF-8 no matter what the default encoding is. This means that redirecting stdout to a file will be identical to using the -o command line flag. [ce324d50196a] <4.8-maint> 2010-11-28 Phil Thompson * NEWS, examples/demos/qtdemo/xml/examples.xml, examples/webkit/formextractor/form.html, examples/webkit/formextractor/formextractor.py, examples/webkit/formextractor/formextractor.qrc, examples/webkit/formextractor/formextractor.ui, examples/webkit/formextractor/ui_formextractor.py: Added the formextractor.py example from Hans-Peter Jansen. [f509333f6b01] <4.8-maint> * NEWS, examples/demos/qtdemo/xml/examples.xml, examples/itemviews/combowidgetmapper.py, examples/itemviews/customsortfiltermodel.py, examples/itemviews/simplewidgetmapper.py: Added the combowidgetmapper.py, customsortfiltermodel.py and simplewidgetmapper.py examples from Hans-Peter Jansen. [241fbaf4620d] <4.8-maint> 2010-11-26 Phil Thompson * examples/demos/qtdemo/xml/examples.xml, examples/itemviews/coloreditorfactory.py, examples/itemviews/dirview.py, examples/itemviews/fetchmore.py: Added the coloreditorfactory.py example from Hans-Peter Jansen. [a935ffc263c2] <4.8-maint> * qpy/QtCore/qpycore_qobject_helpers.cpp: Fixed the support for QMetaProperty::read(). [4e3c8ff6ae9c] <4.8-maint> 2010-11-24 Phil Thompson * examples/mainwindows/mdi/mdi.py: Updated the mdi.py example to match the current Qt version. [f7c66cd92585] <4.8-maint> 2010-11-22 Phil Thompson * PyQt4.msp: Removed the %MethodCode from QDockWidget.setTitleBarWidget() as it is both unnecessary and wrong. [f2b28c685066] <4.8-maint> 2010-11-20 Phil Thompson * qpy/QtCore/qpycore_chimera_storage.cpp: Fixed a bug when a QVariant is an argument to a pyqtSignal. [a1275c515e24] <4.8-maint> * installers/BuildGPL.txt, installers/PyQt-gpl.nsi: Updated the Windows installer and documentation for 64 bit builds. [aa3dcb00f544] <4.8-maint> 2010-11-15 Phil Thompson * doc/pyqt4ref.txt, lib/configure.py: Added the --no-timestamp option to configure.py. [bb053c0310a3] <4.8-maint> 2010-11-13 Phil Thompson * installers/PyQt-gpl.nsi: Minor updates to the Windows installer. [5e83add65bb1] <4.8-maint> 2010-11-10 Phil Thompson * installers/PyQt-gpl.nsi: Updated the Windows installer for Qt v4.7.1. [634f8a2612bf] <4.8-maint> * lib/configure.py: Fixed a configure.py bug affecting pyuic4 when build away from the source directory. [4eef69e3e38a] <4.8-maint> 2010-11-09 Phil Thompson * Makefile, PyQt4.msp, build.py, doc/pyqtdoc/PyQt4.xfm, lib/configure.py: Added support for Qt v4.7.1. [49d5dd5db875] <4.8-maint> 2010-11-08 Phil Thompson * qpy/QtCore/qpycore_pyqtsignal.cpp: Fixed a regression in QSignalMapper when the QtGui module has not been imported (and therefore provided an implementation of QWidget). [7aed7c4a1455] <4.8-maint> 2010-11-04 Phil Thompson * PyQt4.msp: Fixed a warning message for Python v2.4 and earlier. [c2f0a1e8a5fc] <4.8-maint> * examples/demos/qtdemo/xml/examples.xml, examples/ipc/README, examples/ipc/localfortuneclient.py, examples/ipc/localfortuneserver.py, examples/ipc/sharedmemory/dialog.py, examples/ipc/sharedmemory/dialog.ui, examples/ipc/sharedmemory/image.png, examples/ipc/sharedmemory/qt.png, examples/ipc/sharedmemory/sharedmemory.py: Added the IPC examples from Hans-Peter Jansen. [eab60beec052] <4.8-maint> * pyuic/uic/uiparser.py: Fixed a pyuic regression in the handling of QFormLayout. [a3d943052dfa] <4.8-maint> 2010-10-29 Phil Thompson * .hgtags: Added tag 4.8.1 for changeset 78dec14b3a43 [cab48c709c18] <4.8-maint> * NEWS: Released as v4.8.1. [78dec14b3a43] [4.8.1] <4.8-maint> 2010-10-25 Phil Thompson * lib/configure.py: configure.py will now add the g++ -mstackrealign flag when using MinGW and Qt v4.7 and later. This fixes SSE related crashes where Qt expects 16 byte aligned stacks but the standard Python Windows installers are 4 byte aligned. Thanks to David Hess for working this out. [285d517097ec] <4.8-maint> 2010-10-24 Phil Thompson * PyQt4.msp, designer/pluginloader.h, pylupdate/metatranslator.h, pylupdate/translator.h, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_qobject_helpers.h, qpy/QtCore/qpycore_sip_helpers.h: Added QT_BEGIN_NAMESPACE and QT_END_NAMESPACE support. [5dcb936cbd10] <4.8-maint> 2010-10-23 Phil Thompson * pyqtdoc/renderer.py, pyqtdoc/xform.py: Fixed the documentation for the new structure of the Qt v4.7 documentation. [620cc57dc977] <4.8-maint> * test/sigslots/double_disable.py, test/sigslots/form4.ui, test/sigslots/sample-main.py, test/sigslots/sample-thread.py, test/sigslots/signalsignal.py, test/sigslots/sigsig2.py, test/sigslots/slottypes.py, test/sigslots/timer_leak.py, test/test_StandardKey.py, test/test_findChildren.py, test/test_gc_thread.py, test/test_pickle.py, test/test_postEvent.py, test/test_virtual_operators.py, test/tests/misc/test_pickle.py: Integrated the ad-hoc unit tests with the main test suite. [73b271c92e4d] <4.8-maint> * test/runtests.py, test/tests/pyuic/QMainWindow/MainWindow00.ui, test/tests/pyuic/QWidget/Widget00.ui, test/tests/pyuic/test_loadUiType.py, test/tests/pyuic/test_pyuic.py, test/tests/pyuic/ui/simple.ui: Refactored the pyuic unit tests so that they are easier to add to. [6ea6e7e88408] <4.8-maint> * installers/BuildGPL.txt, installers/pyqt-config.bat, installers/sip- config.bat: Improvements to the Windows installer build scripts and instructions. [847788b138e0] <4.8-maint> * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed a pyuic regression that breaks when Designer doesn't explicitly specify the Qt:: scope for enums (eg. when positioning toolbars). [365854e30a67] <4.8-maint> 2010-10-22 Phil Thompson * .hgtags: Added tag 4.8 for changeset 977563ee7cc6 [9c7ee98c452a] * NEWS: Released as v4.8. [977563ee7cc6] [4.8] * examples/activeqt/webbrowser/webbrowser.py, examples/animation/animatedtiles/animatedtiles.py, examples/animation/appchooser/appchooser.py, examples/animation/easing/easing.py, examples/animation/moveblocks.py, examples/animation/states/states.py, examples/animation/stickman/stickman.py, examples/declarative/modelviews/objectlistmodel/objectlistmodel.py, examples/demos/declarative/minehunt/minehunt.py, examples/demos/embedded/lightmaps.py, examples/demos/embeddeddialogs/embeddeddialogs.py, examples/demos/qtdemo/colors.py, examples/demos/qtdemo/demoitem.py, examples/demos/qtdemo/demoitemanimation.py, examples/demos/qtdemo/demoscene.py, examples/demos/qtdemo/demotextitem.py, examples/demos/qtdemo/dockitem.py, examples/demos/qtdemo/examplecontent.py, examples/demos/qtdemo/guide.py, examples/demos/qtdemo/guidecircle.py, examples/demos/qtdemo/guideline.py, examples/demos/qtdemo/headingitem.py, examples/demos/qtdemo/imageitem.py, examples/demos/qtdemo/itemcircleanimation.py, examples/demos/qtdemo/letteritem.py, examples/demos/qtdemo/mainwindow.py, examples/demos/qtdemo/menucontent.py, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/qtdemo.py, examples/demos/qtdemo/scanitem.py, examples/demos/qtdemo/score.py, examples/demos/qtdemo/textbutton.py, examples/designer/calculatorform/calculatorform.py, examples/designer/plugins/plugins.py, examples/designer/plugins/widgets/analogclock.py, examples/designer/plugins/widgets/pydemo.py, examples/desktop/screenshot.py, examples/desktop/systray/systray.py, examples/dialogs/classwizard/classwizard.py, examples/dialogs/configdialog/configdialog.py, examples/dialogs/extension.py, examples/dialogs/findfiles.py, examples/dialogs/standarddialogs.py, examples/dialogs/tabdialog.py, examples/dialogs/trivialwizard.py, examples/draganddrop/delayedencoding/delayedencoding.py, examples/draganddrop/draggableicons/draggableicons.py, examples/draganddrop/draggabletext/draggabletext.py, examples/draganddrop/dropsite.py, examples/draganddrop/fridgemagnets/fridgemagnets.py, examples/draganddrop/puzzle/puzzle.py, examples/effects/lighting.py, examples/graphicsview/anchorlayout.py, examples/graphicsview/collidingmice/collidingmice.py, examples/graphicsview/diagramscene/diagramscene.py, examples/graphicsview/dragdroprobot/dragdroprobot.py, examples/graphicsview/elasticnodes.py, examples/graphicsview/padnavigator/padnavigator.py, examples/itemviews/basicsortfiltermodel.py, examples/itemviews/chart/chart.py, examples/itemviews/dirview.py, examples/itemviews/editabletreemodel/editabletreemodel.py, examples/itemviews/fetchmore.py, examples/itemviews/pixelator/pixelator.py, examples/itemviews/puzzle/puzzle.py, examples/itemviews/simpledommodel.py, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/itemviews/spinboxdelegate.py, examples/itemviews/stardelegate.py, examples/layouts/basiclayouts.py, examples/layouts/borderlayout.py, examples/layouts/flowlayout.py, examples/mainwindows/application/application.py, examples/mainwindows/dockwidgets/dockwidgets.py, examples/mainwindows/mdi/mdi.py, examples/mainwindows/menus.py, examples/mainwindows/recentfiles.py, examples/mainwindows/sdi/sdi.py, examples/mainwindows/separations.py, examples/network/blockingfortuneclient.py, examples/network/broadcastreceiver.py, examples/network/broadcastsender.py, examples/network/fortuneclient.py, examples/network/fortuneserver.py, examples/network/ftp/ftp.py, examples/network/http/http.py, examples/network/loopback.py, examples/network/threadedfortuneserver.py, examples/opengl/2dpainting.py, examples/opengl/grabber.py, examples/opengl/hellogl.py, examples/opengl/overpainting.py, examples/opengl/samplebuffers.py, examples/opengl/textures/textures.py, examples/painting/basicdrawing/basicdrawing.py, examples/painting/concentriccircles.py, examples/painting/painterpaths.py, examples/painting/svgviewer/svgviewer.py, examples/painting/transformations.py, examples/phonon/capabilities.py, examples/phonon/musicplayer.py, examples/pyuic/compile-on-the-fly.py, examples/pyuic/load_ui1.py, examples/pyuic/load_ui2.py, examples/richtext/calendar.py, examples/richtext/orderform.py, examples/richtext/syntaxhighlighter.py, examples/richtext/textobject/textobject.py, examples/script/helloscript.py, examples/sql/cachedtable.py, examples/sql/connection.py, examples/sql/querymodel.py, examples/sql/relationaltablemodel.py, examples/sql/tablemodel.py, examples/threads/mandelbrot.py, examples/threads/semaphores.py, examples/threads/waitconditions.py, examples/tools/codecs/codecs.py, examples/tools/i18n/i18n.py, examples/tools/regexp.py, examples/tools/settingseditor/settingseditor.py, examples/tutorials/addressbook/part1.py, examples/tutorials/addressbook/part2.py, examples/tutorials/addressbook/part3.py, examples/tutorials/addressbook/part4.py, examples/tutorials/addressbook/part5.py, examples/tutorials/addressbook/part6.py, examples/tutorials/addressbook/part7.py, examples/widgets/analogclock.py, examples/widgets/calculator.py, examples/widgets/charactermap.py, examples/widgets/digitalclock.py, examples/widgets/groupbox.py, examples/widgets/icons/icons.py, examples/widgets/imageviewer.py, examples/widgets/lineedits.py, examples/widgets/movie/movie.py, examples/widgets/scribble.py, examples/widgets/shapedclock.py, examples/widgets/sliders.py, examples/widgets/spinboxes.py, examples/widgets/styles.py, examples/widgets/tetrix.py, examples/widgets/tooltips/tooltips.py, examples/widgets/wiggly.py, examples/widgets/windowflags.py, examples/xml/dombookmarks/dombookmarks.py, examples/xml/saxbookmarks/saxbookmarks.py, examples/xmlpatterns/schema/schema.py: Updated and unified all of the copyright notices in the examples. [209e71ff4780] 2010-10-21 Phil Thompson * Makefile, examples/itemviews/stardelegate.py: Removed the workaround in the stardelegate.py example now that sip has been fixed. [9dd9614b6938] 2010-10-20 Phil Thompson * Makefile, qpy/QtDeclarative/qpydeclarativelistproperty.cpp: Fixed a build problem with Python v2.5 and earlier. [e0520052e368] * Makefile, NEWS, examples/demos/qtdemo/xml/examples.xml, examples/itemviews/stardelegate.py: Added the stardelegate.py example from Hans-Peter Jansen. [d46cda10f6aa] * installers/BuildGPL.txt: Updated the Windows installer build instructions. [5b87b4565e69] 2010-10-19 Phil Thompson * NEWS, PyQt4.msp: Added the missing << operator to QPolygon, QPolygonF and QXmlStreamAttributes. [528066459af8] * examples/itemviews/editabletreemodel/editabletreemodel.py: Fixed several bugs in the editabletreemodel.py example. [b6014b802088] * qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Fixed the creation of QMetaObjects for Python classes where they included a property with an enum type. [1cb9db0a32c3] 2010-10-18 Phil Thompson * designer/pluginloader.cpp: Minor updates to the Designer plugin loader. [e900b5cd82ec] * installers/BuildGPL.txt, installers/PyQt-gpl.nsi: Updated the Windows installer now that we are building a customer version of the PostgreSQL driver. [16abc29b9623] * installers/BuildGPL.txt, installers/PyQt-gpl.nsi, installers/pyqt- check.py, installers/pyqt-config.bat, installers/qt-config.bat, installers/sip-config.bat: Updated the Windows installer now that we are using a custom Qt build. [cd2b402742bc] 2010-10-13 Phil Thompson * pyuic/uic/Compiler/qtproxies.py: The recent pyuic4 fix for enum types defined in widgets defined in a widget plugin means that all QtGui classes that might be mentioned in a .ui file (ie. because they define an enum) must be properly defined.. [3011e73e866d] 2010-10-12 Phil Thompson * contrib/pymodeltest/modeltest.py: Fixed obvious connection bugs in modeltest.py. [b6bafcae4b28] * examples/demos/qtdemo/colors.py, examples/demos/qtdemo/mainwindow.py: Removed the (unused) Direct3D support from qtdemo.py. [ef0262393235] 2010-10-11 Phil Thompson * NEWS: Updated the NEWS file. [9cbf25e0706a] 2010-10-09 Phil Thompson * installers/PyQt-gpl.nsi: Updated the Windows installer for Qt v4.7. [884685cb54ea] * qpy/QtDeclarative/qpydeclarativelistproperty.sip: Fixed build problems on Python v2.6 and earlier. [59c7821c6b6d] 2010-10-08 Phil Thompson * PyQt4.msp, build.py, doc/pyqt4ref.txt: Updated the docs to use Qt v4.7. [d3b4450b28c5] * PyQt4.msp: Added /KeepReference/ to the QtGui module. Added some missing /Transfer/ annotations. [00b638275148] * PyQt4.msp: Added /KeepReference/ to the QtCore module. [b0ced7a3eab1] * PyQt4.msp: Added /KeepReference/ to the QtXml module. [c7d2f8acafad] * PyQt4.msp: Added /KeepReference/ to the QtWebKit module. [b18309d9c931] * PyQt4.msp: Added /KeepReference/ to the QtSvg module. [6086954e6cba] * PyQt4.msp: Added /KeepReference/ to the QtNetwork module. [b462bcc8c1ee] * PyQt4.msp: Added a missing /Transfer/ to QGLWidget.setContext(). [297ed76cb69a] * PyQt4.msp: Added /KeepReference/ to the QtDeclarative module. [654e20f15b57] * PyQt4.msp: Added /KeepReference/ to the phonon module. [3f337bebdcd0] * PyQt4.msp: Added /KeepReference/ to the QtScript module. [934995a32cfd] * PyQt4.msp: Added /KeepReference/ to the QtDesigner module. [f337ef98c9de] 2010-10-07 Phil Thompson * PyQt4.msp: Added /KeepReference/ to the QtXmlPatterns module. [33dd14ff8d89] * doc/pyqt4ref.txt: Added a section of PyQt and QML to the documentation. [c0b040c40aae] * examples/declarative/tutorials/extending/chapter1-basics/app.qml, ex amples/declarative/tutorials/extending/chapter1-basics/chapter1-basi cs.py: Removed the declarative tutorial as it looks like it is impossible to support. [8e1bc7d181e6] * qpy/QtCore/qpycore_pyqtboundsignal.cpp: The new connection API now releases the GIL (like the old one does) when calling connect() and disconnect() to avoid a potential deadlock. [6293bc20bd5f] * examples/declarative/tutorials/extending/chapter1-basics/app.qml, ex amples/declarative/tutorials/extending/chapter1-basics/chapter1-basi cs.py: Added the start of the decalarative tutoral - even though there is insufficient support to run it. [6648296578ce] 2010-10-05 Phil Thompson * examples/demos/embedded/lightmaps.py: Applied a patch from Hans-Peter Jansen for the lightmaps.py demo. [aa30c55cc918] * pyuic/uic/properties.py: Fixed a bug with enums contained in classes defined in a widget plugin. [e04201692531] * examples/demos/embedded/lightmaps.py, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/xml/examples.xml, qpy/QtDeclarative/qpydeclarative_post_init.cpp, qpy/QtDeclarative/qpydeclarativelistproperty.cpp: Added the lightmaps.py demo from Hans-Peter Jansen. Ported the QtDeclarative support to Python v3. [dcdf527ef45a] * examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/xml/examples.xml: qtdemo.py will now launch minehunt.py as a separate process rather than trying to display it. [9fae988b2743] * examples/demos/declarative/minehunt/MinehuntCore/Explosion.qml, examples/demos/declarative/minehunt/MinehuntCore/Tile.qml, examples/demos/declarative/minehunt/MinehuntCore/pics/No-Ones- Laughing-3.jpg, examples/demos/declarative/minehunt/MinehuntCore/pics/back.png, examples/demos/declarative/minehunt/MinehuntCore/pics/bomb- color.png, examples/demos/declarative/minehunt/MinehuntCore/pics/bomb.png, examples/demos/declarative/minehunt/MinehuntCore/pics/face-sad.png, examples/demos/declarative/minehunt/MinehuntCore/pics/face-smile- big.png, examples/demos/declarative/minehunt/MinehuntCore/pics/face- smile.png, examples/demos/declarative/minehunt/MinehuntCore/pics /flag-color.png, examples/demos/declarative/minehunt/MinehuntCore/pics/flag.png, examples/demos/declarative/minehunt/MinehuntCore/pics/front.png, examples/demos/declarative/minehunt/MinehuntCore/pics/quit.png, examples/demos/declarative/minehunt/MinehuntCore/pics/star.png, examples/demos/declarative/minehunt/MinehuntCore/qmldir, examples/demos/declarative/minehunt/minehunt.py, examples/demos/declarative/minehunt/minehunt.qml: Added the minehunt.py demo. [afd30d583628] * qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDeclarative/qpydeclarative_listwrapper.cpp, qpy/QtDeclarative/qpydeclarative_listwrapper.h, qpy/QtDeclarative/qpydeclarative_post_init.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.h, qpy/QtDeclarative/qpydeclarativelistproperty.cpp, qpy/QtDeclarative/qpydeclarativelistproperty.h, qpy/QtDeclarative/qpydeclarativelistproperty.sip: Further refactoring of QPyDeclarativeListProperty now that we understand that the data needs to be a QList. [82e3109f9310] 2010-10-04 Phil Thompson * examples/declarative/modelviews/objectlistmodel/objectlistmodel.py, examples/declarative/modelviews/objectlistmodel/objectlistmodel.qrc, examples/declarative/modelviews/objectlistmodel/view.qml, examples/declarative/objectlistmodel/objectlistmodel.py, examples/declarative/objectlistmodel/objectlistmodel.qrc, examples/declarative/objectlistmodel/view.qml: Updated the objectlistmodel.py example so that the QML is unchanged. [686880047ab0] * doc/pyqt4ref.txt, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtDeclarative/qpydeclarative_pydelegate.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.h: QVariant now special cases QList. This ensures that an QML object's property can be accessed as "foo", "modelData.foo" or "model.modelData.foo". [06e64b0fb685] * qpy/QtDeclarative/qpydeclarative_pydelegate.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.h, qpy/QtDeclarative/qpydeclarativelistproperty.cpp: The list access of QPyDeclarativeListProperty now seems to work. [97a266077e4a] * qpy/QtDeclarative/qpydeclarativelistproperty.cpp, qpy/QtDeclarative/qpydeclarativelistproperty.sip: QPyDeclarativeListProperty now seems to work as the minehunt tiles getter no longer crashes. [6d1eb2acaea7] * qpy/QtDeclarative/qpydeclarative_post_init.cpp: More debugging. [9b89716ccd71] 2010-10-03 Phil Thompson * qpy/QtDeclarative/qpydeclarative_listwrapper.cpp, qpy/QtDeclarative/qpydeclarativelistproperty.cpp, qpy/QtDeclarative/qpydeclarativelistproperty.sip: Completed the implementation of the QPyDeclarativeListProperty mapped type. [cd1cf8e3ddaa] * PyQt4.msp, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDeclarative/qpydeclarative_api.h, qpy/QtDeclarative/qpydeclarative_init.cpp, qpy/QtDeclarative/qpydeclarative_listwrapper.cpp, qpy/QtDeclarative/qpydeclarative_listwrapper.h, qpy/QtDeclarative/qpydeclarative_post_init.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.h, qpy/QtDeclarative/qpydeclarativelistproperty.cpp, qpy/QtDeclarative/qpydeclarativelistproperty.h, qpy/QtDeclarative/qpydeclarativelistproperty.sip: Major refactoring of QPyDeclarativeListProperty now that we understand that QDeclarativeListProperty cannot be sub-classed. [e111c7da6bf5] 2010-10-02 Phil Thompson * qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtDeclarative/qpydeclarative_init.cpp, qpy/QtDeclarative/qpydeclarativelistproperty.h, test/tests/metaobject/test_pyqtproperty.py: More fixes for the meta-object data for properties. [33ffd322d457] 2010-10-01 Phil Thompson * qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtDeclarative/qpydeclarative_init.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.cpp: Register QPyDeclarativeListProperty so is can be copied to a QVariant. [dd22ddd04802] * qpy/QtCore/qpycore_types.cpp: Fixed a bug in the moc revision 4 support as a signal index is created for all properties when at least one of them has a notify signal. [c89005325465] * examples/declarative/objectlistmodel/objectlistmodel.py, examples/declarative/objectlistmodel/objectlistmodel.qrc, examples/declarative/objectlistmodel/view.qml: Added thge objectlistmodel.py example. [6ea0c764d377] * examples/animation/stickman/stickman.py: Changed the stickman.py example to use pyqtProperty() as a decorator. [03f4f0257fd5] * Makefile, doc/pyqt4ref.txt, qpy/QtCore/qpycore_pyqtproperty.cpp, test/tests/metaobject/test_pyqtproperty.py: Completed the pyqtProperty() changes. [d808a06dee56] * Makefile, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp: Added the initial (ie. not debugged) pyqtProperty support for use as a decorator. [a8a0d2fc6447] 2010-09-30 Phil Thompson * qpy/QtCore/qpycore_pyqtsignal.cpp: Fixed a bug in the detection of unknown signals. [3c67710d0c58] * doc/pyqt4ref.txt, lib/configure.py: Added the --assume-shared option to configure.py. [40881ea02578] * PyQt4.msp: Changed the implementation of the new QFlags operators in case the enum is protected. [2431b1268d63] * pyuic/uic/Loader/loader.py: Fixed the recent fix to allow QString filenames to be passed to uic.loadUi(). [5adbe8961c5c] * doc/pyqt4ref.txt, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_types.cpp: Added 'notify' support to pyqtProperty. [0e7fd1b67654] 2010-09-28 Phil Thompson * qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h: Unbound signals can now be subscripted. [a97b3a909200] * qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtDeclarative/qpydeclarativelistproperty.cpp: Added support for the layout of moc revision 4. [46cdb93f2fa8] * PyQt4.msp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDeclarative/qpydeclarative_api.h, qpy/QtDeclarative/qpydeclarative_init.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.h: Fixed the support for ReadProperty because QtDeclarative uses a slightly different calling convention. [5b10a6987013] * lib/configure.py, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDeclarative/qpydeclarative_pydelegate.cpp, qpy/QtDeclarative/qpydeclarative_pydelegate.h, qpy/QtDeclarative/qpydeclarativelistproperty.cpp, qpy/QtDeclarative/qpydeclarativelistproperty.h, qpy/QtDeclarative/qpydeclarativelistproperty.sip: Added QPyDeclarativeListProperty as a workaround for the QDeclarativeListProperty template. [4708e7a57d70] 2010-09-27 Phil Thompson * lib/configure.py: Fixed a problem with the Qt consolidated module because QtDeclarative was in the wrong place. [eac5dd92c907] 2010-09-25 Phil Thompson * doc/pyqtdoc/qpydeclarativepropertyvaluesource#details, examples/demos/declarative/samegame/SamegameCore/BoomBlock.qml, examples/demos/declarative/samegame/SamegameCore/Button.qml, examples/demos/declarative/samegame/SamegameCore/Dialog.qml, example s/demos/declarative/samegame/SamegameCore/pics/background.png, examples/demos/declarative/samegame/SamegameCore/pics/blueStar.png, examples/demos/declarative/samegame/SamegameCore/pics/blueStone.png, examples/demos/declarative/samegame/SamegameCore/pics/greenStar.png, examples/demos/declarative/samegame/SamegameCore/pics/greenStone.png , examples/demos/declarative/samegame/SamegameCore/pics/redStar.png, examples/demos/declarative/samegame/SamegameCore/pics/redStone.png, examples/demos/declarative/samegame/SamegameCore/pics/star.png, exam ples/demos/declarative/samegame/SamegameCore/pics/yellowStone.png, examples/demos/declarative/samegame/SamegameCore/qmldir, examples/demos/declarative/samegame/SamegameCore/samegame.js, examples/demos/declarative/samegame/highscores/README, examples/demos/declarative/samegame/highscores/score_data.xml, examples/demos/declarative/samegame/highscores/score_style.xsl, examples/demos/declarative/samegame/highscores/scores.php, examples/demos/declarative/samegame/samegame.qml, examples/demos/qtdemo/xml/examples.xml, qpy/QtDeclarative/qpydeclarative.pro, qpy/QtDeclarative/qpydeclarativepropertyvaluesource.h, qpy/QtDeclarative/qpydeclarativepropertyvaluesource.sip: Added the samegame QML demo. Added the files I forgot to add in the previous changeset. [a41b6212d8bb] * build.py, lib/configure.py: Added the QPyDeclarativePropertyValueSource class to the QtDeclarative module. [fa5e626bc704] * pyuic/LICENSE, pyuic/uic/Compiler/__init__.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/misc.py, pyuic/uic/Compiler/proxy_type.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/__init__.py, pyuic/uic/Loader/loader.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/__init__.py, pyuic/uic/driver.py, pyuic/uic/exceptions.py, pyuic/uic/icon_cache.py, pyuic/uic/objcreator.py, pyuic/uic/port_v2/__init__.py, pyuic/uic/port_v2/as_string.py, pyuic/uic/port_v2/ascii_upper.py, pyuic/uic/port_v2/invoke.py, pyuic/uic/port_v2/load_plugin.py, pyuic/uic/port_v2/proxy_base.py, pyuic/uic/port_v2/string_io.py, pyuic/uic/port_v3/__init__.py, pyuic/uic/port_v3/as_string.py, pyuic/uic/port_v3/ascii_upper.py, pyuic/uic/port_v3/invoke.py, pyuic/uic/port_v3/load_plugin.py, pyuic/uic/port_v3/proxy_base.py, pyuic/uic/port_v3/string_io.py, pyuic/uic/properties.py, pyuic/uic/pyuic.py, pyuic/uic/uiparser.py, pyuic/uic/widget-plugins/phonon.py, pyuic/uic/widget- plugins/qaxcontainer.py, pyuic/uic/widget-plugins/qscintilla.py, pyuic/uic/widget-plugins/qtdeclarative.py, pyuic/uic/widget- plugins/qtwebkit.py: Updated the pyuic4 copyright notices. [4fe1a1002991] * pyuic/uic/Compiler/proxy_type.py: Fixed a long-standing pyuic4 bug that only shows itself with Python v3.2. [906ffa5fe5ef] 2010-09-24 Phil Thompson * PyQt4.msp: Wrapped the rest of the QtDeclarative classes. [dbc746cf377e] * examples/declarative/toys/README, examples/declarative/ui- components/README, examples/declarative/ui- components/dialcontrol/content/Dial.qml, examples/declarative/ui- components/dialcontrol/content/background.png, examples/declarative /ui-components/dialcontrol/content/needle.png, examples/declarative /ui-components/dialcontrol/content/needle_shadow.png, examples/declarative/ui-components/dialcontrol/content/overlay.png, examples/declarative/ui-components/dialcontrol/dialcontrol.qml, examples/declarative/ui-components/flipable/content/5_heart.png, examples/declarative/ui-components/flipable/content/9_club.png, examples/declarative/ui-components/flipable/content/Card.qml, examples/declarative/ui-components/flipable/content/back.png, examples/declarative/ui-components/flipable/flipable.qml, examples/declarative/ui- components/progressbar/content/ProgressBar.qml, examples/declarative /ui-components/progressbar/content/background.png, examples/declarative/ui-components/progressbar/main.qml, examples/declarative/ui-components/scrollbar/ScrollBar.qml, examples/declarative/ui-components/scrollbar/main.qml, examples/declarative/ui-components/scrollbar/pics/niagara_falls.jpg, examples/declarative/ui-components/searchbox/SearchBox.qml, examples/declarative/ui-components/searchbox/images/clear.png, examples/declarative/ui-components/searchbox/images/lineedit-bg- focus.png, examples/declarative/ui-components/searchbox/images /lineedit-bg.png, examples/declarative/ui- components/searchbox/main.qml, examples/declarative/ui- components/slideswitch/content/Switch.qml, examples/declarative/ui- components/slideswitch/content/background.svg, examples/declarative /ui-components/slideswitch/content/knob.svg, examples/declarative /ui-components/slideswitch/slideswitch.qml, examples/declarative/ui- components/spinner/content/Spinner.qml, examples/declarative/ui- components/spinner/content/spinner-bg.png, examples/declarative/ui- components/spinner/content/spinner-select.png, examples/declarative /ui-components/spinner/main.qml, examples/declarative/ui- components/tabwidget/TabWidget.qml, examples/declarative/ui- components/tabwidget/main.qml, examples/declarative/ui- components/tabwidget/tab.png, examples/demos/qtdemo/xml/examples.xml: Added the ui-components QML examples. [e9e3fa01a693] * examples/demos/qtdemo/mainwindow.py, examples/demos/qtdemo/menumanager.py: Fixed the key event handling in qtdemo.py so that corkboards.qml works. [12d0f75dfede] * PyQt4.msp, examples/declarative/toys/README, examples/demos/qtdemo/menumanager.py: The QML support in qtdemo.py now basically works. (Note that the internal QDeclarativeItem setHeight() and setWidth() methods had to be exposed.) [885117ca07a7] * examples/declarative/toys/README, examples/declarative/toys/clocks/clocks.qml, examples/declarative/toys/clocks/content/Clock.qml, examples/declarative/toys/clocks/content/background.png, examples/declarative/toys/clocks/content/center.png, examples/declarative/toys/clocks/content/clock-night.png, examples/declarative/toys/clocks/content/clock.png, examples/declarative/toys/clocks/content/hour.png, examples/declarative/toys/clocks/content/minute.png, examples/declarative/toys/clocks/content/second.png, examples/declarative/toys/corkboards/Day.qml, examples/declarative/toys/corkboards/cork.jpg, examples/declarative/toys/corkboards/corkboards.qml, examples/declarative/toys/corkboards/note-yellow.png, examples/declarative/toys/corkboards/tack.png, examples/declarative/toys/dynamicscene/dynamicscene.qml, examples/declarative/toys/dynamicscene/images/face-smile.png, examples/declarative/toys/dynamicscene/images/moon.png, examples/declarative/toys/dynamicscene/images/rabbit_brown.png, examples/declarative/toys/dynamicscene/images/rabbit_bw.png, examples/declarative/toys/dynamicscene/images/star.png, examples/declarative/toys/dynamicscene/images/sun.png, examples/declarative/toys/dynamicscene/images/tree_s.png, examples/declarative/toys/dynamicscene/qml/Button.qml, examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml, examples/declarative/toys/dynamicscene/qml/PaletteItem.qml, examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml, examples/declarative/toys/dynamicscene/qml/Sun.qml, examples/declarative/toys/dynamicscene/qml/itemCreation.js, examples/declarative/toys/tic-tac-toe/content/Button.qml, examples/declarative/toys/tic-tac-toe/content/TicTac.qml, examples/declarative/toys/tic-tac-toe/content/pics/board.png, examples/declarative/toys/tic-tac-toe/content/pics/o.png, examples/declarative/toys/tic-tac-toe/content/pics/x.png, examples/declarative/toys/tic-tac-toe/content/tic-tac-toe.js, examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml, examples/declarative/toys/tvtennis/tvtennis.qml, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/qmlShell.qml, examples/demos/qtdemo/qtdemo.qrc, examples/demos/qtdemo/xml/examples.xml: Added the toy declarative examples. Initial changes (ie. not debugged) for QML support in the qtdemo example. [9f71f2748aed] * PyQt4.msp, pyuic/uic/widget-plugins/qtdeclarative.py: Added the QtDeclarative plugin for pyuic4. Added QDeclarativeItem and QDeclarativeParserStatus. [9bc58bc1d287] * NEWS, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/qtdeclarative.html#details, lib/configure.py, lib/pyqtconfig.py.in, pyqtdoc/renderer.py: configure.py now handles the QtDeclarative module. sip v4.11.2 is now required. Updated the documentation to include the QtDeclarative module. Updated the NEWS file. [349603d232a6] 2010-09-23 Phil Thompson * PyQt4.msp: Wrapped enough of QtDeclarative fro QDeclarativeView. [1a197a687673] * pyuic/uic/uiparser.py: Another pyuic4 fix for QFormLayout to make sure any child layouts are properly configured. [46c6a93a48c5] * pyuic/uic/uiparser.py: Fixed pyuic4 to handle QFormLayout spanning roles properly. [3b8ee506fa01] * examples/widgets/charactermap.py: Python3 fix for the charactermap.py example from Colin McPhail. [84f806c673be] * .hgignore: Added the .hgignore file. [09525e443060] * PyQt4.msp: Completed the updates to QPainter for Qt v4.7. [3d2a7b471d98] * PyQt4.msp: The QtGui now supports Qt v4.7 (except for the QPainter changes). [3f51cb4766e3] 2010-09-22 Phil Thompson * PyQt4.msp: The QtCore module now fully supports Qt v4.7. [9d0dda85c85d] * PyQt4.msp: The QtNetwork module is now fully ported to Qt v4.7. [83323fb38606] 2010-09-21 Phil Thompson * Makefile, PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/qtassistant.html#details, lib/configure.py: Updated all modules (except for QtCore, QtGui and QtNetwork) for Qt v4.7. [16b49a8d7d71] * .hgtags, installers/PyQt-gpl.nsi-in, installers/configqt.bat, pyuic/uic/port_v2/encode_utf8.py, pyuic/uic/port_v3/encode_utf8.py: Merged v4.7.7 back into the trunk. [c89624c0bb92] 2010-09-20 Phil Thompson * .hgtags: Added tag 4.7.7 for changeset 1f90d0ab1a57 [8c773e117790] <4.7-maint> * NEWS: Released as v4.7.7. [1f90d0ab1a57] [4.7.7] <4.7-maint> 2010-09-14 Phil Thompson * pyuic/uic/Loader/loader.py: uic.loadUi() will now accept a QString filename again. [4a8d4a20c40e] <4.7-maint> 2010-09-13 Phil Thompson * examples/painting/svgviewer/files/bubbles.svg, examples/painting/svgviewer/svgviewer.py: Fixes for the svgviewer.py example from Hans-Peter Janson. [91fc183148ef] <4.7-maint> * PyQt4.msp: QFlags can now be ored (and xored) against an int. At the cost of relaxing the type checking this makes the behaviour consistent irrespective of the order in which enums of other types are specified. [a806e692f6d6] <4.7-maint> * Makefile, examples/demos/qtdemo/xml/examples.xml, examples/mainwindows/separations.py: Added the separations.py example from Hans-Peter Jansen. [2294e9744452] <4.7-maint> * Makefile, examples/demos/qtdemo/xml/examples.xml, examples/draganddrop/delayedencoding/delayedencoding.py, examples/draganddrop/delayedencoding/delayedencoding.qrc, examples/draganddrop/delayedencoding/images/drag.png, examples/draganddrop/delayedencoding/images/example.svg: Added the delayedencoding.py example for Hans-Peter Jansen. [016e6ef9d2f7] <4.7-maint> * examples/demos/qtdemo/xml/examples.xml, examples/draganddrop/dropsite.py: Added the dropsite.py example fro Hans-Peter Jansen. [db67dca48864] <4.7-maint> 2010-09-07 Phil Thompson * doc/pyqt4ref.txt, pyuic/uic/__init__.py, pyuic/uic/driver.py: Fixed a pyuic regression under Python v2 when using the -o command line flag. Fixed a pyuic regression when calling loadUiType(). [bc395557c0e6] <4.7-maint> 2010-09-06 Phil Thompson * .hgtags: Added tag 4.7.6 for changeset 01204d141e00 [4d303f09bec7] <4.7-maint> * NEWS: Released as v4.7.6. [01204d141e00] [4.7.6] <4.7-maint> 2010-09-05 Phil Thompson * examples/widgets/charactermap.py: Fixed the font size selection of the charactermap.py example. [7f2e4adc54f7] <4.7-maint> 2010-09-03 Phil Thompson * pyuic/uic/driver.py: pyuic under Python v3 now explicitly sets the encoding to utf8 when creating the .py file. [222dda8c9e02] <4.7-maint> * qpy/QtCore/qpycore_chimera.cpp: Fixed a bug parsing C++ template types with more than one argument. [4943fc9c79cd] <4.7-maint> 2010-08-31 Phil Thompson * .hgtags: Added tag 4.7.5 for changeset 9aca2e08d9bf [1f9d28cd546e] <4.7-maint> * NEWS: Released as v4.7.5. [9aca2e08d9bf] [4.7.5] <4.7-maint> 2010-08-24 Phil Thompson * Makefile, NEWS, PyQt4.msp: Added __str__() and __unicode__() to QStringRef for the QString v1 API. [7088e9094087] <4.7-maint> 2010-08-23 Phil Thompson * Makefile, qpy/QtCore/qpycore_types.cpp: Changed the implementation of the QObject access function for the latest SIP changes. [edb7a88fa689] <4.7-maint> 2010-08-21 Phil Thompson * NEWS: Updated the NEWS file. [6ad3e35e67ac] <4.7-maint> * installers/PyQt-gpl.nsi: Added qcollectiongenerator.exe and qhelpgenerator.exe to the Windows installer. [f1829ee87016] <4.7-maint> * qpy/QtCore/qpycore_sip_helpers.cpp: A signal defined with pyqtSignal() can now be used with methods that contain an implicit call to QObject::connect(), eg. QTimer.singleShot(). [ef0798545c98] <4.7-maint> 2010-08-20 Phil Thompson * doc/pyqt4ref.txt: Documented the from_imports argument to uic.compileUi(). [7da4206f5f23] <4.7-maint> 2010-08-19 Phil Thompson * doc/pyqt4ref.txt, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/misc.py, pyuic/uic/__init__.py, pyuic/uic/driver.py, pyuic/uic/pyuic.py: Added the --from-imports command line argument to pyuic4. [ed6631bb036b] <4.7-maint> * pyuic/uic/__init__.py: Added missing names to uic.__all__. [6e18e2a856b8] <4.7-maint> 2010-08-18 Phil Thompson * qpy/QtCore/qpycore_types.cpp: Added the release functionality to the QPointer access function. [094f9a9a19c4] <4.7-maint> 2010-08-17 Phil Thompson * qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_types.cpp: The custom meta-class now creates the QObject guard when required. [3cde421d16d9] <4.7-maint> * qpy/QtCore/qpycore_init.cpp: Used the new sipRegisterObjectFinaliser() to add support for detecting when QObjects created internally by Qt get deleted by Qt so that we get an exception instead of a crash when accessing them from Python. [9df7bb34ee7a] <4.7-maint> * pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/port_v2/as_string.py, pyuic/uic/port_v2/encode_utf8.py, pyuic/uic/port_v3/as_string.py, pyuic/uic/port_v3/encode_utf8.py, pyuic/uic/properties.py: pyuic now properly supports UTF8 string literals (particularly untranslated ones). [6df21b6d205c] <4.7-maint> * PyQt4.msp: Removed the /TransferBack/ annotation from the argument to QMainWindow.removeToolBar() because Qt does not change the ownership (even thought QMainWindow.addToolBar() does take ownership). [a7f1df8878a9] <4.7-maint> 2010-08-16 Phil Thompson * Makefile, qpy/QtCore/qpycore_chimera_signature.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_qmetaobject.cpp: Changes needed to build against Python v3.2. Removed a stray debugging printf(). [2278352b6b01] <4.7-maint> 2010-08-15 Phil Thompson * PyQt4.msp: Added the missing %ConvertToSubClassCode for the QtMultimedia module. [18c3ecd5377f] <4.7-maint> * PyQt4.msp: Fixed a docstring typo. [8932d76486d8] <4.7-maint> * PyQt4.msp, qpy/QtCore/qpycore_pyqtboundsignal.cpp: Added a mapped type for QSet. [3e0889517764] <4.7-maint> 2010-08-05 Phil Thompson * PyQt4.msp: Fixed a reference count bug in QXmlNodeModelIndex.internalPointer(). [8a6793a155e0] <4.7-maint> * qpy/QtCore/qpycore_pyqtboundsignal.cpp: When connecting to a pyqtSlot decorated Python method, or a non-slot Qt method it is no longer necessary to have a matching signature. If there is no match then it will fall back to using a proxy. In other words, pyqtSlot (apart from creating an entry in the QMetaObject) is an optimisation (to avoid the proxy) and not a type checking mechanism. [b6b6e3eea456] <4.7-maint> * PyQt4.msp: Added support for QSet. [fe83b54a9605] <4.7-maint> * PyQt4.msp: Added support for QSet. [8152925d11d1] <4.7-maint> * PyQt4.msp: Added a missing /Transfer/ to QGraphicsScene.setStyle(). [400b7120d806] <4.7-maint> 2010-08-04 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h: The C++ type parser now supports typedefs in template arguments. [0981fc363b71] <4.7-maint> 2010-08-03 Phil Thompson * PyQt4.msp, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h: Added support for QMultiHash mapped types. Fixed exception messages when failing to parse types. [7f58138d4214] <4.7-maint> 2010-07-31 Phil Thompson * PyQt4.msp: Added support for QList. [7c36dc5db903] <4.7-maint> 2010-07-27 Phil Thompson * Makefile, build.py, qpy/QtCore/qpycore_pyqtboundsignal.cpp: Fixed a regression that breaks pyqtSlot() with certain argument types when specified using Python type objects. [f64f0e41c36c] <4.7-maint> 2010-07-25 Phil Thompson * PyQt4.msp: Added private assignment operators to QListWidgetItem, QTableWidgetItem and QTreeWidgetItem in order to suppress the assignment helpers and forces them to be handled as pointer types rather than value types. [17bbf4f4d4fc] <4.7-maint> 2010-07-12 Phil Thompson * .hgtags: Added tag 4.7.4 for changeset 8e8d27d6fd9e [cee65567956f] <4.7-maint> * NEWS, installers/PyQt-gpl.nsi: Released as v4.7.4. [8e8d27d6fd9e] [4.7.4] <4.7-maint> 2010-07-08 Phil Thompson * NEWS, PyQt4.msp: Fixed the operator[](int) of QWebElementCollection so that it is consistent with other implementations of the operator. [43537429b15a] <4.7-maint> * Makefile, PyQt4.msp, lib/configure.py: Applied the new __len__ annotation to all count() methods. Added a private assignment operator to QXmlParseException as it still cannot be copied even though it has a ctor with only default arguments. [fe2fc7903045] <4.7-maint> 2010-07-01 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp: Fixed a bug in the parsing of a C++ signature that includes a template with multiple arguments. [51d5d4f1db28] <4.7-maint> * PyQt4.msp: Added the missing == and != operators from QItemSelection. [6645d7b0ce07] <4.7-maint> 2010-06-30 Phil Thompson * test/tests/metaobject/test_sender.py: Added some extra unit tests for QObject.sender(). [02810fa89fcd] <4.7-maint> 2010-06-29 Phil Thompson * examples/phonon/musicplayer.py: Removed an unused line in the musicplayer.py example. [f3fe5da0634c] <4.7-maint> * PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.h, test/tests/metaobject/test_sender.py: Fixed QObject.sender() for when the slot is decorated with pyqtSlot(). [8f24d3981633] <4.7-maint> 2010-06-13 Phil Thompson * Makefile: Fixed the Makefile after eralier debugging. [52734a1e36d9] <4.7-maint> * Makefile, PyQt4.msp: Added /NoCopy/ to the QTextItem argument of QPaintEngine.drawTextItem(). [e1e8eb8f305f] <4.7-maint> 2010-06-11 Phil Thompson * doc/pyqt4ref.txt, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_pyqtboundsignal.cpp: connect() will now check any pyqtSlot() decorators for compatibility with the signal being connected. This means that a connection between, for example, a list argument to a dict argument will now fail. [82a8172854e6] <4.7-maint> * qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_types.cpp: The user friendly format of a signature is now exactly the same as the docstring that SIP generates for signals. [cd377e0b0133] <4.7-maint> 2010-06-10 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_sip_helpers.cpp, test/tests/metaobject/test_qvariantmap.py: If a signal argument is defined as a Python type and implemented as PyQt_PyObject then the type of any argument value is checked against the Python type when on emit(). Added a new set of unit tests to cover the revised behaviour of QVariantMap and dict. [6c1c26bcfdab] <4.7-maint> 2010-06-08 Phil Thompson * PyQt4.msp: Added /NoCopy/ to QPaintEngine.updateState()'s argument. [c96d086ac6b6] <4.7-maint> * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-gpl.nsi, lib/configure.py: Added support for Qt v4.6.3. [2f66f60f033d] <4.7-maint> * PyQt4.msp: Added the extra methods to QDataStream to explicitly handle QVariantList, QVariantMap and QVariantHash. [42bd25f4f0d0] <4.7-maint> 2010-06-06 Phil Thompson * PyQt4.msp: Added the /NoCopy/ annotation to all const QStyleOptionViewItem& arguments to virtuals because they will actually be sub-classes that shouldn't be copied. [afe4bd163c12] <4.7-maint> 2010-06-05 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp: Fixed a regression in using PyQt_PyObject as a signal argument type. [ee96b3d54acb] <4.7-maint> * examples/mainwindows/mdi/mdi.py: Fixed typos in the mdi.py example. [450b86636b26] <4.7-maint> 2010-06-03 Phil Thompson * qpy/QtCore/qpycore_chimera.cpp: Fixed the emitting of signals with a char* argument. [36c5fbec9a15] <4.7-maint> * qpy/QtCore/qpycore_chimera.cpp: Fixed the previous fix so that strings from C++ signals are handled properly. [4ee4a26260b4] <4.7-maint> 2010-05-28 Phil Thompson * examples/mainwindows/mdi/mdi.py: Fixed a bug in the mdi.py example. [55d63b517349] <4.7-maint> * qpy/QtCore/qpycore_chimera.cpp: char* is now explicitly handled as a type of a signal argument and assumes (possibly incorrectly) that it is a pointer to a '\0' terminated string. [7b456ce3c36e] <4.7-maint> 2010-05-26 Phil Thompson * pyuic/uic/uiparser.py: Fixed a pyuic bug handling a spacer without a size hint. [049020f7d72b] <4.7-maint> 2010-05-21 Phil Thompson * PyQt4.msp: Added /KeepReference/ to the setItemDelegateForRow() and setItemDelegateForColumn() methods of QAbstractItemView. [c1bb91578559] <4.7-maint> 2010-05-19 Phil Thompson * PyQt4.msp: Added the missing ErrorPageExtensionOption, ErrorPageExtensionReturn and ErrorDomain to QWebPage. [c521f51bfcdb] <4.7-maint> * qpy/QtCore/qpycore_pyqtconfigure.cpp: QObject.pyqtConfigure() will now try to configure all arguments an only raise an exception about an unknown property or signal at the end. [3a51493caf91] <4.7-maint> 2010-04-29 Phil Thompson * pyuic/uic/uiparser.py: The last fix broke static code generation - now fixed properly. [0c4363a40ccf] <4.7-maint> * pyuic/uic/uiparser.py: Fixed a pyuic regression in the dynamic loading of initialised QTableWidgets. [331cad500eae] <4.7-maint> 2010-04-25 Phil Thompson * pyuic/uic/properties.py, pyuic/uic/uiparser.py: pyuic now supports the background and foreground properties of QListWidgetItem, QTableWidgetItem and QTreeWidgetItem. [24210f941584] <4.7-maint> 2010-04-23 Phil Thompson * Makefile, pyuic/uic/Loader/loader.py, pyuic/uic/icon_cache.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py: uic.loadUi() will now look for images in the directory containing the .ui that is being loaded. [f4c87d2b27ae] <4.7-maint> * Makefile, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_qmetaobject.cpp: Fixed a number of related problems in the type system where a dict was being expected to be converted to a QVariantMap (even if it couldn't be) and then being allowed to stay as a dict but then being interpreted as a QVariantMap. [2c4d8d8a58d8] <4.7-maint> * PyQt4.msp, lib/configure.py: Fix configure.py for when sip.h is installed in a directory path that contains spaces. [e8456d5adcc3] <4.7-maint> 2010-04-20 Phil Thompson * PyQt4.msp: Fixed QLocale.toString() to handle QDateTime before QDate because Python's datetime is a sub-class of date. [4e4296742920] <4.7-maint> * examples/graphicsview/elasticnodes.py: Fixed the elasticnodes.py example. [ea8f8cf7e314] <4.7-maint> * examples/opengl/overpainting.py: Fixed the overpainting.py example. [9ae8003af022] <4.7-maint> 2010-04-16 Phil Thompson * .hgtags: Added tag 4.7.3 for changeset 83ee0fb10389 [ca6ba7d6038c] <4.7-maint> * NEWS: Released as v4.7.3. [83ee0fb10389] [4.7.3] <4.7-maint> 2010-04-08 Phil Thompson * PyQt4.msp: Reverted the tidy up of top level widgets to how it was in v4.7 as the new method seems to be causing more problems than it is solving. [a3e4c0c57f61] <4.7-maint> 2010-04-02 Phil Thompson * PyQt4.msp: Removed the incorrect /Factory/ from QNetworkAccessManager::createRequest() as all replies should have the access manager as their parent. [22b0acdb1b62] <4.7-maint> 2010-04-01 Phil Thompson * lib/configure.py: Fixed a configure.py problem formatting the --verbose output with Python v3. [98f9ff611691] <4.7-maint> 2010-03-26 Phil Thompson * Makefile, PyQt4.msp: Only delete top level widgets in the QApplication dtor if they don't have a parent. [4cf6d2fa926f] <4.7-maint> 2010-03-23 Phil Thompson * Makefile, PyQt4.msp: Added evaluateToString() and evaluateToStringList() to QXmlQuery. [181797ca2233] <4.7-maint> 2010-03-19 Phil Thompson * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Fixed a bug connecting to a Qt slot that has been renamed in Python (specifically exec()). [b39d419708c6] <4.7-maint> 2010-03-17 Phil Thompson * .hgtags: Added tag 4.7.2 for changeset 46fab7c56da0 [9528814bc9bd] <4.7-maint> * NEWS: Updated the NEWS file. Released as v4.7.2. [46fab7c56da0] [4.7.2] <4.7-maint> * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Fixed a bug where the pyqtSlot() decorator was being ignored when attempting to make a new-style connection from an incompatible signal. [dcf23fd46bc1] <4.7-maint> * .hgtags: Added tag 4.7.1 for changeset 6f220acd1b55 [f2a3ebcf3274] <4.7-maint> * NEWS, build.py: Fixed the generation of the change log after tagging a release. Updated the NEWS file. Released as v4.7.1. [6f220acd1b55] [4.7.1] <4.7-maint> * PyQt4.msp: Added a missing /Transfer/ annotation to QGraphicsItem.setGraphicsEffect(). [4f280420bd96] <4.7-maint> 2010-03-12 Phil Thompson * pyuic/uic/properties.py: Fixed a pyuic bug in the handling of string list properties. [02f7e71246f9] <4.7-maint> * PyQt4.msp: The QApplication dtor now explicitly deletes all top level widgets rather than just transfer ownership of them to C++. [986cf4ca74e2] <4.7-maint> 2010-03-10 Phil Thompson * PyQt4.msp: Added the missing pushContext() and popContext() to QScriptEngine. [8083c6acc7b0] <4.7-maint> 2010-03-09 Phil Thompson * qpy/QtCore/qpycore_pyqtboundsignal.cpp: The new connection API now tries harder to find a usable Qt slot before deciding it needs to use a proxy by also looking for slots with fewer arguments. This fixes a problem with QSignalMapper.map() which doesn't work when called from a proxy (because it expects sender() to return something that was passed to a previous call to setMapping()). [0ec31730fd9d] <4.7-maint> 2010-03-05 Phil Thompson * PyQt4.msp: QSystemTrayIcon instances are now tracked to make sure they are garbage collected before the QApplication instance. [c732dab23703] <4.7-maint> 2010-03-03 Phil Thompson * pyuic/uic/Compiler/proxy_type.py: Fixed a pyuic regression related to the orientation of spacer items. [6633161a35bf] <4.7-maint> 2010-03-02 Phil Thompson * PyQt4.msp: QVariantList and QVariantMap first appeared in Qt v4.1. [307e5cccaf6c] <4.7-maint> * lib/configure.py: Fixed the phonon detection so that KDE's phonon can be detected. [38882f630555] <4.7-maint> * NEWS, PyQt4.msp: Implemented %ConvertToSubClassCode for QStyleOption so that instances have a specific sub-class where possible. [2c32eca7d817] <4.7-maint> * NEWS: Updated the NEWS file. [3d03d4aeea8f] <4.7-maint> 2010-02-26 Phil Thompson * PyQt4.msp: Added /HoldGIL/ to QProcess.start() overloads so that the forked process will have the GIL when it starts to run (and calls the Python API for possible reimplementations of virtuals) before it does an exec(). Otherwise the thread that holds the GIL will not itself have been forked and so it will never get released. [106919e3444b] <4.7-maint> 2010-02-22 Phil Thompson * lib/configure.py: Fixed the building of the debug qpy support libraries under Windows. [aea904ce10d7] <4.7-maint> * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed some pyuic regressions introduced when adding support for locales. (The locale element in the .ui file is the only one that only uses attributes and has no content.) [f4adcd1447a4] <4.7-maint> 2010-02-19 Phil Thompson * PyQt4.msp: Applied the /NoCopy/ annotation to all virtual operators. This has the side affect of fixing the use of the QStandardItem protected ctor. [debf7e1f7ab1] <4.7-maint> * lib/configure.py: Fixed configure.py and the dynamic checking of OpenGL data types under MSVC. [67a6f98b872f] <4.7-maint> 2010-02-16 Phil Thompson * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Added pyuic support for setting the check state of QListWidgetItem, QTableWidgetItem and QTreeWidgetItem. [55e049012e98] <4.7-maint> * pyuic/uic/properties.py: Added locale support to pyuic. [bd0d04f6413c] <4.7-maint> * PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py: Applied the fix_objdir_dbus_check and make_bindings_match_qt461 patches from Kubuntu. [b18d1f8b6ec6] <4.7-maint> 2010-02-15 Phil Thompson * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-gpl.nsi, lib/configure.py: Added support for Qt v4.6.2. Fixed a build problem with Python v3 with the recent QUrl change. [841a0e9aa9f3] <4.7-maint> 2010-02-12 Phil Thompson * PyQt4.msp: Restored the QXmlQuery.evaluateTo() overloads (for the QString v1 API only). [5014f7c72a58] <4.7-maint> * build.py, qpy/QtOpenGL/opengl_types.sip: Fixed the generation of the documentation caused by the OpenGL configuration changes. [92217a989a7d] <4.7-maint> 2010-02-10 Phil Thompson * lib/mksccode.py: Fixed the mksccode.py script to handle nested classes properly. [d41c39b8ffc2] <4.7-maint> * PyQt4.msp, doc/pyqt4ref.txt: Fixed the broken %ConvertToSubClassCode in the phonon module. [fa9e2abe1209] <4.7-maint> 2010-02-08 Phil Thompson * PyQt4.msp: Fixed __repr__ for QUrl and QUuid in case the value contains non- ASCII characters. [61e83ce803df] <4.7-maint> 2010-02-07 Phil Thompson * PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py: configure.py will now determine the OpenGL data types dynamically. Updated the documentation for building for MacOS to cover the possible issues with different versions of the SDK. [cf7968c35249] <4.7-maint> * examples/xmlpatterns/schema/schema.py: Updated the schema.py example to take advantage of SIP now automatically providing copies of const references to classes to Python reimplementations of virtuals. [50215e3d4e14] <4.7-maint> 2010-02-05 Phil Thompson * examples/demos/qtdemo/xml/examples.xml, examples/xmlpatterns/README, examples/xmlpatterns/schema/files/contact.xsd, examples/xmlpatterns/schema/files/invalid_contact.xml, examples/xmlpatterns/schema/files/invalid_order.xml, examples/xmlpatterns/schema/files/invalid_recipe.xml, examples/xmlpatterns/schema/files/order.xsd, examples/xmlpatterns/schema/files/recipe.xsd, examples/xmlpatterns/schema/files/valid_contact.xml, examples/xmlpatterns/schema/files/valid_order.xml, examples/xmlpatterns/schema/files/valid_recipe.xml, examples/xmlpatterns/schema/schema.py, examples/xmlpatterns/schema/schema.qrc, examples/xmlpatterns/schema/schema.ui, examples/xmlpatterns/schema/ui_schema.py: Added the XML Patterns schema.py example. [c591dc61687c] <4.7-maint> * PyQt4.msp: Fixed a few default arguments in QtOpenGL that should be GL_RGBA rather than GL_RGBA8. [683f0e8d9305] <4.7-maint> 2010-02-04 Phil Thompson * PyQt4.msp, lib/configure.py: QGLContext.chooseVisual() is disabled under OpenGL ES. Fixed a configure.py bug in the OpenGL ES detection. [c39e85a8e2ec] <4.7-maint> * lib/configure.py: Fixed a regression in the detection of Qt's phonon library on case- sensitive file systems. (The Qt documentation is wrong.) [ef5fe75b1358] <4.7-maint> 2010-02-03 Phil Thompson * PyQt4.msp, lib/configure.py: Added support for the alternative QGLFramebufferObject ctors enabled when using OpenGL ES. [05c7aba8bcc1] <4.7-maint> 2010-02-02 Phil Thompson * Makefile, doc/pyqt4ref.txt, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, test/tests/classes/test_QVariant.py, test/tests/metaobject/test_pyqtsignal.py: Conversions of sub-classes of standard Python types to QVariant will now convert back to those types (rather than the base type). bytes and bytearrays are no longer converted back to a QByteArray for Python3. Objects that implement the sequence protocol are no longer converted to a QVariantList and back to a Python list. [08c09018a2d5] <4.7-maint> * lib/LICENSE-MERGED-GPL2-GPL3, lib/LICENSE.GPL2, lib/LICENSE.GPL3, lib/LICENSE.internal, pyqtdoc/renderer.py, pyuic/LICENSE: Fixed the remaining references to 2009 in copyright notices. [e554089d649b] <4.7-maint> * Makefile, pyuic/uic/Compiler/qtproxies.py: Fix to pyuic's handling of layout stretches from Luper Rouch. [b7110249ba7a] <4.7-maint> 2010-02-01 Phil Thompson * build.py: Fixed build.py to create the HTML for the main documentation. [28199fc1869c] <4.7-maint> * Makefile, PyQt4.msp, build.py, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-gpl.nsi, installers/PyQt-gpl .nsi-in, lib/configure.py, pyqtdoc/pyqtdoc.py: Changes to the internal build system required by the migration to Mercurial. [e21e17ec6aa7] <4.7-maint> 2010-01-31 phil * .hgtags: Import from SVN. [80bee561333b] 2006-07-15 phil * NEWS, PyQt4.msp: Backed out the change to the type of PYQT_VERSION_STR as it breaks on SIP versions prior to v4.5. Released as v4.0.1. [69788690a3c9] [4.0.1] <4.0-maint> 2006-07-07 phil * PyQt4.msp, lib/configure.py: Worked around the Qt v4.1 bug with QPrinter::setPrintRange() and QPrinter::printRange(). [2bae6b0ce1a8] <4.0-maint> * pyuic/uic/properties.py: A pyuic QFont fix from Torsten. [a0be4e8bd774] <4.0-maint> 2006-07-06 phil * PyQt4.msp: Fixed QTranslator.load(). [948235efa4ea] <4.0-maint> 2006-07-05 phil * pylupdate/fetchtr.cpp, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py: Changed pyuic to generate the retranslateUi() method so that it is the same as the C++ version. Fixed pylupdate so that it properly parse the retranslateUi() method. [610373dcdebc] <4.0-maint> * NEWS, pylupdate/fetchtr.cpp, pylupdate/main.cpp: pylupdate4 now handles .ui files (thanks to Andreas Pakulat). [995e633e83e0] <4.0-maint> * NEWS, PyQt4.msp: QPolygon can be constructed from a Python list of pairs of integer coordinates. QPolygon.setPoints() can also take a Python list of pairs of integer coordinates. [988ae56634d7] <4.0-maint> 2006-07-04 phil * NEWS, doc/pyqt4ref.txt, examples/itemviews/simpledommodel.py, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/itemviews/sortingmodel/sortingmodel.py, lib/configure.py: Added pyqt_config_args to pyqtconfig.py for all versions. Fixed the simpledommodel.py, simpletreemodel.py and sortingmodel.py examples for 64 bit systems. [dd40db39d743] <4.0-maint> 2006-06-22 phil * Makefile, PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in: Updated for Qt v4.1.4. [678969c563c4] <4.0-maint> 2006-06-19 phil * PyQt4.msp: Backed out an over-zealous addition (from me) to Ulli's Solaris fixes. [d77b93e75853] <4.0-maint> * PyQt4.msp: Solaris warnings fixes from Ulli. [47c140a83a6b] <4.0-maint> 2006-06-18 phil * pyuic/uic/__init__.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed pyuic4 handling of QFont, QDate, QTime and QDateTime. Fixed pyuic4 handling of custom widget header files. [666eeb7dd52d] <4.0-maint> 2006-12-09 phil * Makefile, NEWS, PyQt4.msp, build.py, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, examples/draganddrop/draggableicons/draggableicons.py, installers /PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in, lib/configure.py, pylupdate/main.cpp, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/__init__.py, pyuic/uic/properties.py: Released as v4.1.1. [685b1d0fb938] [4.1.1] <4.1-maint> 2009-07-27 phil * NEWS, PyQt4.msp: Fixed the super-type of QGLContext because it takes part in parent/child relationships. Released as v4.5.4. [80275311d324] [4.5.4] <4.5-maint> * NEWS: Released as v4.5.3. [eea966f96c34] [4.5.3] <4.5-maint> 2009-07-24 phil * examples/designer/plugins/widgets/highlightedtextedit.py, lib/configure.py: Fixed the highlightedtextedit.py example. configure.py gives precedence to the directory containing sip.h to that containing Python.h (as the latter may include a distro supplied sip.h). [9ca8f044dcc3] <4.5-maint> 2009-07-20 phil * qpy/QtCore/qpycore_chimera.cpp, test/tests/classes/test_QVariant.py: QVariant.toPyObject() now recurses through any collections. [a45e14ca766f] <4.5-maint> * NEWS, PyQt4.msp, lib/configure.py, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_qvariant.cpp, test/tests/classes/test_QVariant.py: Fixed a problem where None wasn't being interpreted as an invalid QVariant. [1fb089743e1b] <4.5-maint> 2009-07-17 phil * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Cleared a benign exception raised with bound signals that numpy was noticing. [2e6b4b8bc8a0] <4.5-maint> 2009-07-14 phil * NEWS: Released as v4.5.2. [4912044d465f] [4.5.2] <4.5-maint> 2009-07-12 phil * PyQt4.msp: Added the two QImage ctors that take non-const data as a void *. [635382ee866d] <4.5-maint> * PyQt4.msp: Added a missing /Transfer/ from QTableWidget.setItemPrototype(). [8d432dddb7b5] <4.5-maint> * examples/itemviews/chart/chart.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py: Fixed a bug in the chart.py example. Added support for QHeaderView to pyuic. Fixed support for stretch in a layout containing widgets in pyuic. [eee86dcff139] <4.5-maint> 2009-07-09 phil * qpy/QtCore/qpycore_chimera.cpp: Fixed bugs in the conversions of QVariantList, QVariantMap and QVariantHash. [887af380bf39] <4.5-maint> 2009-07-06 phil * pyuic/uic/uiparser.py: Fixed a pyuic regression when populating a QTreeWidget. [159eff32e957] <4.5-maint> 2009-07-03 phil * PyQt4.msp: Fixed a problem converting large 32 bit unsigned values to a QVector. [6bfbb4d5d406] <4.5-maint> * pyuic/uic/uiparser.py: Added support to pyuic for stretch in box layouts. [37cfa4fda6c7] <4.5-maint> 2009-06-27 phil * qpy/QtCore/qpycore_chimera.cpp: Fixed a problem setting a QVariant property. [c0e98cca5b42] <4.5-maint> * qpy/QtCore/qpycore_chimera.cpp: Allow QVariant to be used as a property type. [cf2c99991fcf] <4.5-maint> * build.py, doc/pyqt4ref.txt, examples/activeqt/webbrowser/webbrowser.py, installers/PyQt-gpl.nsi- in, qpy/QtCore/qpycore.pro: Added the QAxContainer module to the GPL package as it's now included in the LGPL Qt v4.5.2. Fixed the webbrowser.py example. Added a workaround to a qmake regression in Qt v4.5.2 when building static libraries. [600e391aa232] <4.5-maint> 2009-06-26 phil * Makefile, lib/configure.py: Fixed the license checks for Qt v4.5.2. [8a369b0bf6c3] <4.5-maint> 2009-06-24 phil * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, qpy/QtCore/qpycore_chimera.cpp, test/tests/classes/test_QVariant.py: Any Python object can now be supplied when a QVariant is expected. None is interpreted as an invalid QVariant. [114e870a08b2] <4.5-maint> 2009-06-23 phil * qpy/QtCore/qpycore_chimera.cpp: Fixed a regression in converting Python objects to QVariant containers. [ca5fd3200e4c] <4.5-maint> 2009-06-22 phil * pyuic/uic/port_v2/ascii_upper.py, pyuic/uic/port_v3/ascii_upper.py, pyuic/uic/properties.py: Fixed the locale independent upper-case conversion regression in pyuic introduced when porting to Python v3. [45e11e5c0a26] <4.5-maint> * pyuic/uic/uiparser.py: Fixed a pyuic bug handling spacers in QFormLayouts. [d80cdb880b45] <4.5-maint> 2009-06-16 phil * NEWS: Released as v4.5.1. [bc5edb1b3aeb] [4.5.1] <4.5-maint> * qpy/QtCore/qpycore_chimera.cpp: Only convert exact dicts to a QVariantMap and back and not dict sub- classes. [bae1d79795c4] <4.5-maint> 2009-06-14 phil * qpy/QtCore/qpycore_types.cpp: Removed an assertion when building dynamic meta-objects, instead just ignore the attribute if it doesn't have the expected type. [ec7d07604f2f] <4.5-maint> 2009-06-13 phil * Makefile, pyuic/uic/uiparser.py: Fixed the handling of QWizard by pyuic. [99e7d6688a36] <4.5-maint> 2009-06-12 phil * Roadmap.rst, lib/configure.py: Changed the SIP dependency to v4.8.1 (not necessary but we don't want it to survive in the wild). Changed the roadmap to show how incompatible APIs will be selected. [e78c4aeb46f5] <4.5-maint> * Makefile, PyQt4.msp: Fixed __str__ for QByteArray for Python v3 so it is consistent with Python v2. [2b3aed4b30e3] <4.5-maint> * Roadmap.rst, doc/pyqt4ref.txt: Reverted the roadmap change about __hash__ being an incompatibile change. The issue isn't that the hash function has changed (which isn't considered a compatibility problem) it's that different objects that previously had a different hash value (based on their id()) now might have the same hash value. [e4cac5c48260] <4.5-maint> 2009-06-11 phil * Roadmap.rst: Updated the roadmap to show that the __hash__ additions (including QUrl) are not now considered incompatible changes. [5b2e6a19eb93] <4.5-maint> * Makefile, PyQt4.msp, lib/LICENSE.commercial: Removed the Python v3 buffer protocol support for QString. [d93f78226a72] <4.5-maint> 2009-06-09 phil * Makefile, PyQt4.msp: Improved the implementation of the Python v3 buffer protocol for QByteArray. [731ad7ff6c89] <4.5-maint> * pyuic/uic/uiparser.py: Fixed a pyuic problem with Python v3 when setting the tab order. [72e5f13d5430] <4.5-maint> * PyQt4.msp: Added /Transfer/ to QComboBox.setLineEdit(). Added /KeepReference/ to setValidator() and setCompleter() for QLineEdit and QComboBox. [a878a03f5646] <4.5-maint> * PyQt4.msp: Added the missing setCoordinateMode() and coordinateMode() methods from QGradient. [e1c2a66be55f] <4.5-maint> 2010-01-20 phil * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in, lib/configure.py: Added support for Qt v4.6.1. [5b40e0c45bc6] <4.7-maint> 2010-01-18 phil * installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in: Added the MySQL driver to the installer. [ec7886a08897] <4.7-maint> * build.py, installers/BuildGPL.txt, installers/LICENSE.LGPL, installers/PyQt-gpl.nsi-in, installers/Qt4PyQt.nsi: Reverted the decision to package the Qt subset separately. Added the PostgreSQL driver to the installer. [4f3787f3b2e0] <4.7-maint> 2010-01-17 phil * build.py, installers/BuildGPL.txt, installers/LICENSE.LGPL, installers/PyQt-gpl.nsi-in, installers/Qt4PyQt.nsi, installers/configqt.bat: Did the major changes needed for the new Windows installers. [8b4fe09f8e7b] <4.7-maint> 2010-01-14 phil * NEWS, lib/LICENSE.commercial.short: Released as v4.7. [3ba4c7cc25bd] [4.7] * PyQt4.msp: QNetworkReplay.ignoreSslErrors() is now dependent on OpenSSL support. [d2643ff48765] 2010-01-10 phil * Makefile, build.py: Fixed the path to metasip for the new build server. [dcde486b3d9b] 2010-01-08 phil * Makefile, NEWS, PyQt4.msp, build.py, doc/pyqt4ref.txt, doc/pyqtdoc/qtmultimedia.html#details, installers/PyQt-gpl.nsi-in, lib/configure.py, lib/pyqtconfig.py.in, pyqtdoc/renderer.py: Completed the implementation of the QtMultimedia module. [5c9ef9ca9cf4] * Makefile, PyQt4.msp: Fixed the super-type of QRunnable because it can be owned. Added the majority of the QtMultimedia module to the MetaSIP project. [340b43fe2928] 2009-12-31 phil * Makefile, NEWS, PyQt4.msp, lib/LICENSE.commercial.short, lib/LICENSE.gpl.short: Fixed a problem with QDataStream and v2 of the QString API. Added readQStringList() and writeQStringList() to QDataStream. [bb7e09d33455] 2009-12-30 phil * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Fixed a bug when using the new connect API to disconnect a slot while executing the slot. [c36fb85f67b1] 2009-12-29 phil * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Added support for item flags in QListWidgetItem, QTableWidgetItem and QTreeWidgetItem in pyuic. [a9865a4dd9af] * PyQt4.msp, lib/configure.py: Fixed QSysInfo for platform specific values added in Qt v4.5.1 rather than v4.5.0. [8b43d71119d4] 2009-12-23 phil * build.py, examples/demos/qtdemo/mainwindow.py, pyqtdoc/xform.py: Fixed the building of the documentation. Fixed a buglet in the qtdemo.py example. [7cabd15d2896] 2009-12-22 phil * QAxContainer/qaxbase.sip, QAxContainer/qaxobject.sip, QAxContainer/qaxwidget.sip, installers/BuildGPL.txt: The (handwritten) ActiveQt support is now consistent in its use of keyword arguments and docstrings. [6b4fed692b9a] * PyQt4.msp: Changed the Python v3 docstrings for all optional arguments with a QString() to show an empty string rather than None. [6c13dd973da6] * NEWS, examples/dialogs/standarddialogs.py, examples/tools/settingseditor/settingseditor.py: Updated the NEWS file. Made sure examples that use QInputDialog.getText() handle the returned values properly. [a5dd5fcfdcc5] * PyQt4.msp: Added the optional 'initialFilter' argument to the QFileDialog.get*AndFilter() functions. [dac0503ca918] 2009-12-21 phil * PyQt4.msp, doc/pyqt4ref.txt: v2 of the QString API now converts a null QString to an empty Python string rather than None. This represents the most common use case when Qt returns a QString from a callable. [c5cdac0eee1e] * PyQt4.msp: Completed the keyword argument support for the remaining modules. [1e8edcff313a] * PyQt4.msp: Completed the keyword argument support for the QtGui module. [4353b9020905] * PyQt4.msp: Completed the keyword argument support for the QtCore module. [57c4efda2512] * PyQt4.msp: Applied the standard argument naming conventions to the QtGui module. [df757a02f4e6] 2009-12-20 phil * PyQt4.msp: Applied the standard argument naming conventions to the QtCore module. [8f666654685b] * PyQt4.msp: Applied the standard argument naming conventions to all but the QtCore and QtGui modules. [541da773739f] * PyQt4.msp: Updated optional argument names for the remaining modules. [1b9ec8325061] * PyQt4.msp: Updated optional argument names for the QtDesigner, QtNetwork, QtOpenGL, QtScript, QtSql, QtSvg, QtTest and QtXml modules. [c7f1348576a1] * PyQt4.msp, doc/pyqt4ref.txt, lib/LICENSE-eval-gpl.txt, lib/LICENSE.eval, lib/LICENSE.eval.short, lib/README, lib/UpdatingArgumentNames.txt, lib/license.py.edu, lib/license.py.eval, lib/pyqt-eval.sip: Removed some QEvent constructors which are internal to Qt. Updated optional argument names for the QtAssistant, QtCore and QtGui modules. [616d02e54bf5] 2009-12-18 phil * PyQt4.msp: Completed the support for Qt v4.6. [769052f57310] * examples/demos/qtdemo/xml/examples.xml, examples/effects/README, examples/effects/lighting.py, examples/graphicsview/anchorlayout.py: Added the anchorlayout.py and lighting.py examples. [d8b55c9e3ae8] * PyQt4.msp: Completed the QtGui support for Qt v4.6. [5e6520a30e24] * PyQt4.msp: Added support for all the Qt v4.6 matrix types. [7c4f05a49ada] * examples/animation/stickman/stickman.py: Added the stickman.py example. [3975cd6bb52a] * PyQt4.msp, examples/animation/stickman/animations/chilling, examples/animation/stickman/animations/dancing, examples/animation/stickman/animations/dead, examples/animation/stickman/animations/jumping, examples/animation/stickman/stickman.py, examples/animation/stickman/stickman.qrc, examples/demos/qtdemo/xml/examples.xml: Added the readInt(), readQString(), readQVariant(), writeInt(), writeQString() and writeQVariant() methods to QDataStream. Added support for bound signals to the QSignalTransition constructor. [5db27477347e] 2009-12-17 phil * examples/animation/states/accessories-dictionary.png, examples/animation/states/akregator.png, examples/animation/states/digikam.png, examples/animation/states /help-browser.png, examples/animation/states/k3b.png, examples/animation/states/kchart.png, examples/animation/states/states.py, examples/animation/states/states.qrc, examples/demos/qtdemo/xml/examples.xml: Added the states.py example. [4b1476f3d65c] * PyQt4.msp, examples/animation/animatedtiles/animatedtiles.py, examples/animation/easing/easing.py, examples/animation/moveblocks.py, examples/demos/qtdemo/xml/examples.xml: A QEasingCurve.Type can be used whenever a QEasingCurve is expected. Added the moveblocks.py example. [e2cf1f01b53b] * examples/animation/animatedtiles/animatedtiles.py, examples/animation/animatedtiles/animatedtiles.qrc, examples/animation/animatedtiles/images/Time-For-Lunch-2.jpg, examples/animation/animatedtiles/images/centered.png, examples/animation/animatedtiles/images/ellipse.png, examples/animation/animatedtiles/images/figure8.png, examples/animation/animatedtiles/images/kinetic.png, examples/animation/animatedtiles/images/random.png, examples/animation/animatedtiles/images/tile.png, examples/animation/easing/easing.py, examples/demos/qtdemo/xml/examples.xml: Added the animatedtiles.py example. [4f8cc832f570] * PyQt4.msp, examples/animation/appchooser/accessories-dictionary.png, examples/animation/appchooser/akregator.png, examples/animation/appchooser/appchooser.py, examples/animation/appchooser/appchooser.qrc, examples/animation/appchooser/digikam.png, examples/animation/appchooser/k3b.png, examples/demos/qtdemo/xml/examples.xml, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_pyqtboundsignal.cpp: Qt v4.6 support for the QtCore module is now complete. Added the appchooser.py example. [f6a095026577] 2009-12-16 phil * examples/animation/easing/easing.py: The easing.py example is now fully working. [f8869e0205fc] * examples/animation/easing/easing.py, examples/demos/qtdemo/xml/examples.xml, qpy/QtCore/qpycore_qobject_helpers.cpp: Fixed the handling of setting properties so that the optimised path in QPropertyAnimation works. Bug fixes for the easing.py example. [e68b65dabe36] * PyQt4.msp, examples/animation/README, examples/animation/easing/easing.py, examples/animation/easing/easing.qrc, examples/animation/easing/form.ui, examples/animation/easing/images /qt-logo.png, examples/animation/easing/ui_form.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py: Added support for QButtonGroup to pyuic. Added the (still to be debugged) easing.py example. [a0d8107295da] * Makefile, PyQt4.msp, examples/demos/qtdemo/xml/examples.xml: Completed the support for QEasingCurve custom types. [f95d6833b40f] * Makefile, PyQt4.msp: More work on the QtCore module support for Qt v4.6. [ad2395eaf907] 2009-12-15 phil * doc/pyqt4ref.txt, pyuic/uic/__init__.py, pyuic/uic/objcreator.py: Added 'widgetPluginPath' to the uic module to allow the directories used to search for widget plugins to be changed. [90503df7cbf4] * PyQt4.msp: All %ConvertToSubClassCode has now been updated for Qt v4.6. [7719e84657c4] * PyQt4.msp: Completed the %ConvertToSubClassCode for QEvent. [a9a5e16b75cd] * doc/pyqt4ref.txt, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_types.cpp: Added support for Qt v4.6's CONSTANT and FINAL flags to pyqtProperty(). [f1da5cadd6a9] * qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: Made sure that proxies for slots can never be destroyed while the slot is executing. [98d289f4b26e] 2009-12-14 phil * PyQt4.msp: Updated all the %ConvertToSubClassCode for Qt v4.6. [91322766f9f0] * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/qobjectcreator.py: Fixed a pyuic bug when connecting signals to the raise() slot. [9a7083ef79b3] * Makefile, PyQt4.msp: Added the remaining %MethodCode needed by QMatrix4x4. [d8930b9bcc39] 2009-12-13 phil * Makefile, PyQt4.msp: Added support for __getitem__ and __setitem__ to QMatrix4x4. [fd1a062e6f1c] * PyQt4.msp: Completed the implementation of the QtGui vector classes. [fe87bc07ccc9] 2009-12-12 phil * PyQt4.msp: Fixed QMatrix4x4 to account for the column-major internal format. [6214f3869f8d] * PyQt4.msp: Finished the Qt v4.6 updates for QtXmlPatterns. Added pickle and repr support for the new maths classes (except for those derived from QGenericMatrix). [0f344da58a7e] 2009-12-11 phil * PyQt4.msp, qpy/QtCore/qpycore_pyqtproxy.cpp: Removed an unintended dependency on Qt v4.3. [f35e68e6424d] 2009-12-09 phil * PyQt4.msp: All new Qt v4.6 classes are implemented - but not necessarily fully supported yet. [378ebf234649] 2009-12-07 phil * PyQt4.msp: Added support for the new QtCore classes (except for the odd method that needs more careful attention). [1498989fb462] * PyQt4.msp: Ignore all new header files that don't contribute to the public API. [bbf01ef50cdb] * PyQt4.msp: Added the gesture related classes to QtGui. [9e8687d47e7e] 2009-12-05 phil * PyQt4.msp: Addition of some new classes to support updates of existing classes. [be777ace27b6] * PyQt4.msp: Updated the existing QtWebKit and QtScript classes to Qt v4.6. [e0c7cabf81e9] * PyQt4.msp: Updated the existing QtTest and QtXmlPatterns classes to Qt v4.6. [d2001dce7213] * PyQt4.msp: Updated the existing QtSql, QtSvg and QtXML classes for Qt v4.6. [a02ecea1d624] * PyQt4.msp: Updated the existing QtNetwork, QtOpenGL, QtHelp and QtScriptTools classes for Qt v4.6. [ae497ee6e053] 2009-12-04 phil * PyQt4.msp, examples/demos/qtdemo/demoitem.py: Completed the update for existing QtGui classes for Qt v4.6. [b21af0b3e722] 2009-12-03 phil * PyQt4.msp: Removed a number of '|' operators for enums that are redundant because of QFlags. [21ea26f032e4] 2009-12-02 phil * PyQt4.msp: More Qt v4.6 QtGui support. [b3ccd6bce411] * PyQt4.msp: Started on the extsing QtGui classes for Qt v4.6. [6bb138996f9f] * PyQt4.msp: The existing QtCore classes have now been updated for Qt v4.6. [d3aadd61cfa7] * PyQt4.msp: Started to add support for new Qt v4.6 features... [baf0ad257339] 2009-12-01 phil * Makefile, PyQt4.msp, build.py, doc/pyqtdoc/PyQt4.xfm, installers /PyQt-gpl.nsi-in, lib/configure.py: Switched the build system to Qt v4.6.0. [372af5f5fde7] * Makefile, NEWS, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtpyobject.cpp, qpy/QtCore/qpycore_pyqtpyobject.h, test/tests/classes/test_QSettings.py: Added support for automatically pickling Python objects when used with QSettings. [b37ed71aede9] 2009-11-29 phil * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py: Added support for gradients to pyuic. [97d9c1e94020] 2009-11-26 phil * NEWS, PyQt4.msp: A QHostAddress.SpecialAddress can be used whenever a QHostAddress is expected. [d2038e030ceb] 2009-11-25 phil * PyQt4.msp, lib/configure.py: Added support for Qt's NO_PRINTPREVIEWDIALOG and NO_SYSTEMTRAYICON features. [9fe605fa2846] 2009-11-23 phil * NEWS, PyQt4.msp: Added support in the QEvent %ConvertToSubClassCode for a number of events added since Qt v4.2. [ee5b54a44620] * qpy/QtCore/qpycore_chimera.cpp: Fixed a missing exception when trying to read a persisted PyQt_PyObject. [32057bb465af] 2009-11-21 phil * PyQt4.msp, doc/pyqt4ref.txt: Updated the docs regarding keyword arguments. [7ade2928b7a9] * PyQt4.msp: Updated the metasip project to mark all arguments as being unnamed. [11d6ea80a627] * PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py: Added support for Qt's NO_PRINTER, NO_PRINTDIALOG and NO_PRINTPREVIEWWIDGET features. configure.py will now treat Maemo's Qt license as GPL compatible. [993144b90f26] 2009-11-18 phil * Makefile, pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/qtproxies.py: Finally fixed the quoting of translatable and non-translatable strings. [b4a9f2cbe7d6] 2009-11-17 phil * Makefile, doc/pyqt4ref.txt, docgen/docgen/documentation_generator.py, docgen/docgen/webxml.py, test/tests/metaobject/test_gc_slots.py: Added test_gc_slots.py to the test suite. [6c5343a0d404] 2009-11-16 phil * Makefile, docgen/docgen/documentation_generator.py, docgen/docgen/qdoc3.py, docgen/qdoc3/JAVATODO.txt, docgen/qdoc3/apigenerator.cpp, docgen/qdoc3/apigenerator.h, docgen/qdoc3/archiveextractor.cpp, docgen/qdoc3/archiveextractor.h, docgen/qdoc3/atom.cpp, docgen/qdoc3/atom.h, docgen/qdoc3/bookgenerator.cpp, docgen/qdoc3/bookgenerator.h, docgen/qdoc3/ccodeparser.cpp, docgen/qdoc3/ccodeparser.h, docgen/qdoc3/codechunk.cpp, docgen/qdoc3/codechunk.h, docgen/qdoc3/codemarker.cpp, docgen/qdoc3/codemarker.h, docgen/qdoc3/codeparser.cpp, docgen/qdoc3/codeparser.h, docgen/qdoc3/command.cpp, docgen/qdoc3/command.h, docgen/qdoc3/config.cpp, docgen/qdoc3/config.h, docgen/qdoc3/cppcodemarker.cpp, docgen/qdoc3/cppcodemarker.h, docgen/qdoc3/cppcodeparser.cpp, docgen/qdoc3/cppcodeparser.h, docgen/qdoc3/cpptoqsconverter.cpp, docgen/qdoc3/cpptoqsconverter.h, docgen/qdoc3/dcfsection.cpp, docgen/qdoc3/dcfsection.h, docgen/qdoc3/doc.cpp, docgen/qdoc3/doc.h, docgen/qdoc3/editdistance.cpp, docgen/qdoc3/editdistance.h, docgen/qdoc3/generator.cpp, docgen/qdoc3/generator.h, docgen/qdoc3/helpprojectwriter.cpp, docgen/qdoc3/helpprojectwriter.h, docgen/qdoc3/htmlgenerator.cpp, docgen/qdoc3/htmlgenerator.h, docgen/qdoc3/jambiapiparser.cpp, docgen/qdoc3/jambiapiparser.h, docgen/qdoc3/javacodemarker.cpp, docgen/qdoc3/javacodemarker.h, docgen/qdoc3/javadocgenerator.cpp, docgen/qdoc3/javadocgenerator.h, docgen/qdoc3/linguistgenerator.cpp, docgen/qdoc3/linguistgenerator.h, docgen/qdoc3/location.cpp, docgen/qdoc3/location.h, docgen/qdoc3/loutgenerator.cpp, docgen/qdoc3/loutgenerator.h, docgen/qdoc3/main.cpp, docgen/qdoc3/mangenerator.cpp, docgen/qdoc3/mangenerator.h, docgen/qdoc3/node.cpp, docgen/qdoc3/node.h, docgen/qdoc3/openedlist.cpp, docgen/qdoc3/openedlist.h, docgen/qdoc3/pagegenerator.cpp, docgen/qdoc3/pagegenerator.h, docgen/qdoc3/plaincodemarker.cpp, docgen/qdoc3/plaincodemarker.h, docgen/qdoc3/polyarchiveextractor.cpp, docgen/qdoc3/polyarchiveextractor.h, docgen/qdoc3/polyuncompressor.cpp, docgen/qdoc3/polyuncompressor.h, docgen/qdoc3/qdoc3.pro, docgen/qdoc3/qsakernelparser.cpp, docgen/qdoc3/qsakernelparser.h, docgen/qdoc3/qscodemarker.cpp, docgen/qdoc3/qscodemarker.h, docgen/qdoc3/qscodeparser.cpp, docgen/qdoc3/qscodeparser.h, docgen/qdoc3/quoter.cpp, docgen/qdoc3/quoter.h, docgen/qdoc3/separator.cpp, docgen/qdoc3/separator.h, docgen/qdoc3/sgmlgenerator.cpp, docgen/qdoc3/sgmlgenerator.h, docgen/qdoc3/test/assistant.qdocconf, docgen/qdoc3/test/carbide-eclipse-integration.qdocconf, docgen/qdoc3/test/classic.css, docgen/qdoc3/test/compat.qdocconf, docgen/qdoc3/test/designer.qdocconf, docgen/qdoc3/test/eclipse- integration.qdocconf, docgen/qdoc3/test/jambi.qdocconf, docgen/qdoc3/test/linguist.qdocconf, docgen/qdoc3/test/macros.qdocconf, docgen/qdoc3/test/qmake.qdocconf, docgen/qdoc3/test/qt-api-only.qdocconf, docgen/qdoc3/test/qt-build- docs.qdocconf, docgen/qdoc3/test/qt-cpp-ignore.qdocconf, docgen/qdoc3/test/qt-html-templates.qdocconf, docgen/qdoc3/test/qt- inc.qdocconf, docgen/qdoc3/test/qt.qdocconf, docgen/qdoc3/test /standalone-eclipse-integration.qdocconf, docgen/qdoc3/test/vs- integration.qdocconf, docgen/qdoc3/text.cpp, docgen/qdoc3/text.h, docgen/qdoc3/tokenizer.cpp, docgen/qdoc3/tokenizer.h, docgen/qdoc3/tr.h, docgen/qdoc3/tree.cpp, docgen/qdoc3/tree.h, docgen/qdoc3/uncompressor.cpp, docgen/qdoc3/uncompressor.h, docgen/qdoc3/webxmlgenerator.cpp, docgen/qdoc3/webxmlgenerator.h, docgen/qdoc3/yyindent.cpp: Updated qdoc3 from Qt v4.5.3. [8286f3ce9d7b] 2009-11-15 phil * PyQt4.msp: Fixed the argument type of QClipboard.connectNotify(). [5c0541d409b3] * pylupdate/fetchtr.cpp: Clarified a pylupdate error messages when parsing an empty triple- quoted string. (This is less risky than attempting to properly fix the parser.) [f3fcb7c34261] 2009-11-14 phil * Makefile, NEWS, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_sip_helpers.cpp: Added support for docstrings for new-style signals. [cfffd1ab9f4c] 2009-11-11 phil * Makefile, PyQt4.msp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp: Added repr() implementations to unbound and bound signals. [d55ecc806748] * PyQt4.msp: All docstrings (for the default APIs) should now be complete and accurate. [4ce69c71c85f] * PyQt4.msp: Added %Docstring to all functions annotated with /NoArgParser/. [ca39d0c6c230] 2009-11-09 phil * PyQt4.msp: Applied /DocType/ to all SIP_PYLIST and SIP_PYTUPLE arguments. [0ee3bd8a153e] * PyQt4.msp: Applied the /DocValue/ annotation where needed. [2232eac3e6c6] * NEWS, PyQt4.msp: Added /DocType/ annotations to all places that are different for Python v3. [2dc8a1902f0e] 2009-11-08 phil * PyQt4.msp: Applied the new /DocType/ annotation in most applicable places. [c615205ab901] 2009-11-06 phil * doc/pyqt4ref.txt, lib/configure.py: Automatic generation of docstrings is now enabled by default. --no- docstrings will disable them. [6e5db8b52a50] 2009-11-05 phil * pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/qtproxies.py: Fixed a pyuic bug handling non-translatable strings containing a backslash. [a84c28cbcf85] 2009-11-02 phil * pyuic/uic/uiparser.py: Removed a use of basestring in pyuic. [db8110fb7c02] * PyQt4.msp: Fixed QObject.findChild() and QObject.findChildren() which were doing bad things with the ownership of objects they were finding. [17dac62f9568] * lib/configure.py: Fixed a regression introduced when adding support for out-of-tree builds that broke the installation of the uic module. [df34020ef715] 2009-10-28 phil * qpy/QtCore/qpycore_pyqtproxy.cpp, test/tests/metaobject/test_destroyed.py: Fixed a regression in the handling of QObject.destroyed() being connected via a proxy that meant that the proxied callable never got invoked because the proxy was being destroyed too soon. [2c68290aaeb2] * Makefile, NEWS, lib/configure.py: Added support for out-of-tree building (for standard builds). [45a6316fe5d1] * Makefile, PyQt4.msp: Specified v1 of the QVariant API for the QDataStream << and >> operators which were breaking the puzzle.py examples. [0108f46ecc30] * PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py: On Linux and MacOS/X "protected" is now redefined as "public" during compilation. This means QtGui.so is more than 28% smaller. [2119dcf9a141] 2009-10-26 phil * doc/pyqt4ref.txt, qpy/QtCore/qpycore_pyqtconfigure.cpp: Fixed a bug in the handling of unknown Qt property or signal. Documented support for keyword arguments. [276c6b04f685] * lib/configure.py: Enabled support for keyword arguments. This adds less that 5% to the size of the QtGui module. [0d03570cbd07] * Makefile, NEWS, PyQt4.msp, contrib/sandbox/sandbox.pyw, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, examples/phonon/capabilities.py, installers/PyQt-gpl.nsi-in, lib/configure.py, pyuic/uic/uiparser.py, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_chimera_storage.cpp, qpy/QtCore/qpycore_pyqtconfigure.cpp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Merged v4.6.1 back into the trunk. [f8906cfbb236] 2009-11-19 phil * NEWS: Released as v4.6.2. [0cf3dfcbaad8] [4.6.2] <4.6-maint> 2009-11-18 phil * doc/pyqt4ref.txt, pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/qtproxies.py: Finally fixed the quoting of translatable and non-translatable strings. [3b4c206de0f4] <4.6-maint> 2009-11-15 phil * PyQt4.msp: Fixed the argument type of QClipboard.connectNotify(). [8263451fc836] <4.6-maint> * NEWS, pylupdate/fetchtr.cpp: Clarified a pylupdate error messages when parsing an empty triple- quoted string. (This is less risky than attempting to properly fix the parser.) [ca179cd77007] <4.6-maint> 2009-11-08 phil * NEWS, PyQt4.msp, doc/pyqt4ref.txt, pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py, qpy/QtCore/qpycore_pyqtconfigure.cpp, qpy/QtCore/qpycore_pyqtproxy.cpp: Backported the following bug fixes from v4.7. Fixed a pyuic bug handling non-translatable strings containing a backslash. Removed a use of basestring in pyuic. Fixed QObject.findChild() and QObject.findChildren() which were doing bad things with the ownership of objects they were finding. Fixed a regression in the handling of QObject.destroyed() being connected via a proxy that meant that the proxied callable never got invoked because the proxy was being destroyed too soon. Specified v1 of the QVariant API for the QDataStream << and >> operators which were breaking the puzzle.py examples. Fixed a bug in the handling of unknown Qt property or signal. [9c9d521b749c] <4.6-maint> 2009-10-23 phil * Makefile, examples/phonon/capabilities.py: Fixed a bug in the capabilities.py example triggered by the QVariant v2 API. [c69103e6853d] [4.6] <4.6-maint> * Makefile, qpy/QtCore/qpycore_pyqtproxy.cpp: Fixed a problem deleting slot proxies when the interpreter has been finalised but Qt is still tidying up. [0162c9b5cba1] <4.6-maint> * installers/PyQt-gpl.nsi-in, lib/configure.py: Released as v4.6.1. [ea8d86288769] <4.6-maint> * Makefile, NEWS: Released as v4.6.1. [517d0da58935] [4.6.1] <4.6-maint> 2009-10-20 phil * Makefile, doc/pyqtdoc/PyQt4.xfm, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Hopefully finally fixed the regression where slot proxies were being deleted too soon when disconnect() was called from within the slot. (With much help from Hans-Peter Jansen.) [5a1c16f35ab2] <4.6-maint> 2009-10-14 phil * Makefile, PyQt4.msp: Eliminated the compiler warning messages related to qDebug() and friends. A number of private copy ctors added manually (and temporarily) to allow building against Qt v4.6.0-beta1. [ce52f90df18f] <4.6-maint> 2009-10-13 phil * Makefile, pyuic/uic/uiparser.py: Fixed a pyuic bug with QHeaderView.setSortIndicatorShown(). [e8b894496a62] <4.6-maint> 2009-10-10 phil * PyQt4.msp: Added the QMacCocoaViewContainer class. [8a10a9be1411] <4.6-maint> * contrib/sandbox/sandbox.pyw: Updated sandbox from Mark Summerfield. [9204eac735ae] <4.6-maint> 2009-10-09 phil * qpy/QtCore/qpycore_pyqtproxy.cpp: Fixed a premature delete that affected QTimer.singleShot(). [c53f8c2328fc] <4.6-maint> * PyQt4.msp: Reverted the /Constrained/ annotation on QClipboard.text() for the QString v1 API as a mutable QString is only needed if the initial value is null. Therefore allowing an ordinary string won't lose information. [3f1e63521730] <4.6-maint> 2009-10-07 phil * Makefile, PyQt4.msp: Added the missing QGraphicsSceneDragDropEvent.setDropAction(). [602bf9c7b429] <4.6-maint> * qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h: Fixed a problem connecting short-circuit signals in a different thread to the one the emitter is in. [59d25b134bfc] <4.6-maint> * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_chimera_storage.cpp, qpy/QtCore/qpycore_pyqtconfigure.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp: Fixed a problem passing an invalid QVariant as an argument to emit(). [e1e2c9cd3e24] <4.6-maint> * qpy/QtCore/qpycore_sip_helpers.cpp: Fixed a couple of error messages in the emit code. [ed412cbfce09] <4.6-maint> * doc/pyqt4ref.txt: Fixed a typo in the API selection documentation. [8fa77eaff04c] <4.6-maint> * Makefile, PyQt4.msp: Added a missing /Transfer/ from QFileDialog.setProxyModel(). [e319eac99921] <4.6-maint> 2009-10-02 phil * Makefile, PyQt4.msp: Switched to Qt v4.5.3. [6872148cd258] <4.6-maint> 2009-10-01 phil * PyQt4.msp: Added more includes of QHash. [713a6437ae7d] <4.6-maint> * PyQt4.msp: Added a (possibly) missing include of QHash in QUrl. [db93845a8baf] <4.6-maint> 2009-09-28 phil * lib/configure.py: Set the right qmake CONFIG value for x86_64 on MacOS. [a81ede7f48d7] <4.6-maint> 2009-09-26 phil * NEWS, Roadmap.rst, doc/pyqtdoc/PyQt4.xfm: Released as v4.6. [6827351c6df8] 2009-09-23 phil * NEWS, doc/pyqt4ref.txt, pyuic/uic/__init__.py: Added compileUiDir() to the uic module. [85387739a32d] * doc/pyqt4ref.txt, qpy/QtCore/qpycore_qobject_helpers.cpp: Clarifies the documentation regarding the compatibility of pyuic4 generated code. [d61323f55e06] 2009-09-19 phil * pyuic/uic/uiparser.py: Fixed a problem with the recent changes to fully support QGridLayout when loading .ui files with loadUi(). [a6b53bc1bccb] 2009-09-18 phil * qpy/QtCore/qpycore_qstring.cpp: Added a missing cast (needed by MinGW) to the QString conversion code. [8c6d0fbf6652] * PyQt4.msp, doc/pyqt4ref.txt: Added widthChar() and boundingRectChar() to QFontMetrics and QFontMetricsF for v2 of the QString API. These are needed because width() and boundingRect() give different results for a QChar and a QString of length one. [88ff9dfeca42] 2009-09-17 phil * PyQt4.msp: Made the width() and boundingRect() Qchar overloads specific to v2 of the QString API. [cce8be02d070] * PyQt4.msp: Reenabled the QChar overloads of the width() and boundingRect() methods of QFontMetrics and QFontMetricsF as they are not the equivalent of a single character QString. [625716bb4f9c] * PyQt4.msp, pyuic/LICENSE, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_pyqtconfigure.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp: Invalid keyword arguments to a QObject ctor now raise an exception (as they do with pyqtConfigure()). [71935694c555] 2009-09-16 phil * Makefile, doc/pyqt4ref.txt: Documented the additional QVariant incompatibility that it no longer keeps a reference to QObject instances. [03303fb9470f] 2009-09-14 phil * Makefile, NEWS, PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_pyqtconfigure.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp: Further fixes for Snow Leopard on 64 bit systems. Added QObject.pyqtConfigure(). [c2687eb8e6db] 2009-09-12 phil * pyuic/uic/uiparser.py: Fixed pyuic4 for the minimum width and height for columns and rows, and column and row spacing. [71c1baed5dfc] * doc/pyqt4ref.txt, lib/configure.py: configure.py no longer assumes that an explicit architecture means a universal binary. [a2016db2009d] * Makefile, PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py: Added the --use-arch command line option to configure to force MacOS python to use a particular architecture. Added missing operating system names (Snow Leopard and Windows 7). [c53b82a0bfdf] 2009-09-09 phil * Makefile, examples/opengl/samplebuffers.py: Fixed a couple of bugs in the samplebuffers.py example. [93d083d28c1a] 2009-09-06 phil * Makefile, NEWS, doc/pyqt4ref.txt, examples/designer/plugins/python/highlightedtexteditplugin.py, examples/desktop/systray/systray.py, examples/graphicsview/diagramscene/diagramscene.py, examples/mainwindows/application/application.py, examples/mainwindows/dockwidgets/dockwidgets.py, examples/mainwindows/mdi/mdi.py, examples/mainwindows/menus.py, examples/mainwindows/recentfiles.py, examples/mainwindows/sdi/sdi.py, examples/opengl/grabber.py, examples/phonon/musicplayer.py, examples/tools/codecs/codecs.py, examples/tools/i18n/i18n.py, examples/tools/settingseditor/settingseditor.py, examples/widgets/icons/icons.py, examples/widgets/imageviewer.py, examples/widgets/scribble.py, examples/widgets/shapedclock.py, examples/xml/dombookmarks/dombookmarks.py, examples/xml/saxbookmarks/saxbookmarks.py, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.h: Qt properties can be initialised and signals connected by passing keyword arguments when an instance is created. [ab743cb296ae] 2009-09-03 phil * Makefile, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h: Changes needed by SIP's extended assignment helper functionality. [7db2bb8155ac] 2009-09-02 phil * NEWS, PyQt4.msp: Added the /Array/ and /ArraySize/ annotations to the drawLines(), drawPoints(), drawPolygon() and drawRects() methods of QPaintEngine (although SIP doesn't support them yet). [9842fa30c47c] 2009-08-23 phil * pylupdate/fetchtr.cpp: Fixed the line numbers in .ts files. [50e17881b896] 2009-08-21 phil * pylupdate/fetchtr.cpp: Fixed pylupdate's broken handling of Python comments. [710fe4286b88] * PyQt4.msp: Added a missing /Transfer/ to QSyntaxHighlighter.setCurrentBlockUserData(). [605850191b0e] 2009-08-19 phil * PyQt4.msp: Fixed the QString buffer protocol implementation for Python v2.x built with UCS4 support. [451b91a29730] 2009-08-18 phil * PyQt4.msp: Added a missing /Transfer/ to QTreeWidget.setItemWidget(). [245eab6b7f25] * doc/pyqt4ref.txt, lib/LICENSE.gpl.short, pyuic/uic/uiparser.py: pyuic now uses the Python implementation of ElementTree so that it handles XML provided in a StringIO. [b50134ee03b3] 2009-08-11 phil * PyQt4.msp: Fixed QGraphicsLinearLayout.removeAt() as Qt doesn't always return ownership to the caller as the documentation claims. [48f4b169dde6] * Makefile, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: Removed the remaining calls to deleteLater() in the slot/signal proxy code. [97ab8c3a3ee4] * qpy/QtCore/qpycore_chimera.cpp: Fixed a similar regression. [aba0003e6de3] * qpy/QtCore/qpycore_chimera.cpp: Fixed a regression introduced when getting the QVariant v2 API working with Qt registered meta-types. [1abea64c9dcd] * qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: Signal/slot proxies are now deleted as soon as possible to reduce the use of deleteLater(). [1fd7ca4d5249] 2009-08-10 phil * Makefile, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h: Minor improvements to the storing of proxy slot objects. [1a8de7f61361] 2009-08-09 phil * PyQt4.msp: QAbstractFileEngine, QTextDecoder, QTextEncoder and QSqlResult now have sip.wrapper as their super-type as they all can be returned by virtual factories which use the object ownership infrastructure. [f74a15216508] 2009-08-08 phil * NEWS, qpy/QtCore/qpycore_qstring.cpp: Use memcpy() instead of Py_UNICODE_COPY() because Py_MEMCPY() is broken on Windows with C++. [9d17dcd2e7ae] * examples/demos/embeddeddialogs/embeddeddialogs.py, examples/demos/qtdemo/examplecontent.py, examples/demos/qtdemo/mainwindow.py, examples/demos/qtdemo/menucontent.py, examples/demos/qtdemo/menumanager.py: Updated the demos examples for the QString v2 API. [e6c615e06913] * examples/designer/calculatorform/calculatorform.py, examples/designer/plugins/plugins.py, examples/designer/plugins/python/highlightedtexteditplugin.py: Updated the designer examples for the QString v2 API. [9f3fe65a141d] * examples/desktop/screenshot.py, examples/desktop/systray/systray.py: Updated the desktop examples for the QString v2 API. [ce3b4eda8ac3] * examples/dialogs/classwizard/classwizard.py, examples/dialogs/configdialog/configdialog.py, examples/dialogs/extension.py, examples/dialogs/findfiles.py, examples/dialogs/standarddialogs.py, examples/dialogs/tabdialog.py, examples/dialogs/trivialwizard.py: Updated the dialogs examples for the QString v2 API. [87d667607bb0] * examples/draganddrop/draggableicons/draggableicons.py, examples/draganddrop/draggabletext/draggabletext.py, examples/draganddrop/fridgemagnets/fridgemagnets.py, examples/draganddrop/puzzle/puzzle.py: Updated the draganddrop examples for the QString v2 API. [fca6c9fc658f] * examples/graphicsview/collidingmice/collidingmice.py, examples/graphicsview/diagramscene/diagramscene.py, examples/graphicsview/dragdroprobot/dragdroprobot.py, examples/graphicsview/padnavigator/padnavigator.py: Updated the graphicsview examples for the QString v2 API. [06fc133541ad] * examples/graphicsview/elasticnodes.py, qpy/QtCore/qpycore_chimera.cpp: The QVariant support will now properly handle SIP wrapped types that Qt registers (eg. QGraphicsScene). [e6343ac4685c] 2009-08-07 phil * examples/itemviews/chart/chart.py, examples/itemviews/dirview.py, examples/itemviews/editabletreemodel/editabletreemodel.py, examples/itemviews/fetchmore.py, examples/itemviews/pixelator/pixelator.py, examples/itemviews/puzzle/puzzle.py, examples/itemviews/simpledommodel.py, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/painting/svgviewer/svgviewer.py, examples/richtext/syntaxhighlighter.py: Updated the itemviews examples for the QString v2 API. [feddb78a8238] * examples/layouts/basiclayouts.py, examples/layouts/borderlayout.py, examples/layouts/flowlayout.py: Updated the layouts examples for the QString v2 API. [9240c97abc9d] * examples/activeqt/webbrowser/webbrowser.py, examples/mainwindows/application/application.py, examples/mainwindows/dockwidgets/dockwidgets.py, examples/mainwindows/mdi/mdi.py, examples/mainwindows/menus.py, examples/mainwindows/recentfiles.py, examples/mainwindows/sdi/sdi.py: Updated the mainwindows examples for the QString v2 API. [4a872a785292] * examples/network/blockingfortuneclient.py, examples/network/broadcastreceiver.py, examples/network/broadcastsender.py, examples/network/fortuneclient.py, examples/network/fortuneserver.py, examples/network/ftp/ftp.py, examples/network/http/http.py, examples/network/loopback.py, examples/network/threadedfortuneserver.py: Updated the network examples for the QString v2 API. [e29e068372f5] * examples/opengl/2dpainting.py, examples/opengl/grabber.py, examples/opengl/hellogl.py, examples/opengl/overpainting.py, examples/opengl/samplebuffers.py, examples/opengl/textures/textures.py: Updated the opengl examples to the QString v2 API. [059d9eef8b7d] * examples/painting/basicdrawing/basicdrawing.py, examples/painting/concentriccircles.py, examples/painting/painterpaths.py, examples/painting/svgviewer/svgviewer.py, examples/painting/svgviewer/svgviewer.qrc, examples/painting/transformations.py: Updated the painting examples for the QString v2 API. [372c9096f4f4] 2009-08-06 phil * examples/phonon/capabilities.py, examples/phonon/musicplayer.py: Updated the phonon examples for the QString v2 API. [36692e5df747] * examples/richtext/calendar.py, examples/richtext/orderform.py, examples/richtext/syntaxhighlighter.py, examples/richtext/textobject/textobject.py: Updated the richtext examples for the QString v2 API. [861abf09de8a] * examples/script/helloscript.py, examples/sql/cachedtable.py, examples/sql/querymodel.py, examples/sql/relationaltablemode.py, examples/sql/relationaltablemodel.py, examples/sql/tablemodel.py: Updated the sql and script examples for the QString v2 API. [3bcad34a4e9b] * examples/threads/mandelbrot.py: Updated the threads examples for the QString v2 API. [0987e06856ee] * examples/tools/codecs/codecs.py, examples/tools/i18n/i18n.py, examples/tools/regexp.py, examples/tools/settingseditor/settingseditor.py, qpy/QtCore/qpycore_qstring.cpp: Added a cast to the new QString conversion code. Updated the tools examples for the QString v2 API. [22c5f3e3fa58] 2009-08-05 phil * qpy/QtCore/qpycore_qstring.cpp: Fixed the conversions between QString and Unicode objects for code points greater than 0xffff when Python is built with --enable- unicode=ucs4. [ff675085cc34] * PyQt4.msp, examples/tutorials/addressbook/part1.py, examples/tutorials/addressbook/part2.py, examples/tutorials/addressbook/part3.py, examples/tutorials/addressbook/part4.py, examples/tutorials/addressbook/part5.py, examples/tutorials/addressbook/part6.py, examples/tutorials/addressbook/part7.py: Removed QTextStream.operator<<(const QChar &) as it is not needed and gets in the way when being passed a string of more than one character. Updated the tutorials examples for the QString v2 API. [7199a7bfd387] * examples/widgets/analogclock.py, examples/widgets/calculator.py, examples/widgets/charactermap.py, examples/widgets/digitalclock.py, examples/widgets/groupbox.py, examples/widgets/icons/icons.py, examples/widgets/imageviewer.py, examples/widgets/lineedits.py, examples/widgets/movie/movie.py, examples/widgets/scribble.py, examples/widgets/shapedclock.py, examples/widgets/sliders.py, examples/widgets/spinboxes.py, examples/widgets/styles.py, examples/widgets/tetrix.py, examples/widgets/tooltips/tooltips.py, examples/widgets/wiggly.py, examples/widgets/windowflags.py: Updated the widgets examples for v2 of the QString API. [7e4990b761d6] * PyQt4.msp, examples/xml/dombookmarks/dombookmarks.py, examples/xml/saxbookmarks/saxbookmarks.py: Updated the XML examples for the new QString APIs. [7512aff63ce2] 2009-08-04 phil * examples/dialogs/findfiles.py, examples/dialogs/standarddialogs.py, examples/dialogs/tabdialog.py, examples/itemviews/chart/chart.py, examples/itemviews/editabletreemodel/editabletreemodel.py, examples/itemviews/puzzle/puzzle.py, examples/itemviews/simpledommodel.py, examples/mainwindows/dockwidgets/dockwidgets.py, examples/network/ftp/ftp.py, examples/richtext/orderform.py, examples/tools/i18n/i18n.py, examples/tools/settingseditor/settingseditor.py, examples/tutorials/addressbook/part7.py, examples/widgets/icons/icons.py, examples/xml/dombookmarks/dombookmarks.py, examples/xml/saxbookmarks/saxbookmarks.py: A quick pass through the examples converting the minor stuff to v2 of the QString API. [41ffaaffc398] * pyuic/uic/uiparser.py: Removed calls to QString() from pyuic to be it API version independent. [cda71a73e029] * PyQt4.msp: Python v2.6 and later allow a bytearray to be used whenever a QByteArray is expected. [89a4b9e22e2b] * PyQt4.msp: [08df37d7dc96] * PyQt4.msp, doc/pyqt4ref.txt: Fixed the validate methods of QAbstractSpinBox, QDateTimeEdit, QDoubleSpinBox, QDoubleValidator, QIntValidator, QRegExpValidator, QSpinBox and QValidator for v2 of the QString API. [4d8fe0d9415e] * PyQt4.msp, doc/pyqt4ref.txt: Fixed the fixup() methods of QAbstractSpinBox, QDateTimeEdit, QDoubleSpinBox, QSpinBox and QValidator for v2 of the QString API. [8dc3a3517ce9] * PyQt4.msp, doc/pyqt4ref.txt: Fixed QClipboard for the QString v2 API. [15754d1b41c5] * PyQt4.msp, doc/pyqt4ref.txt: Added the getOpenFileNameAndFilter(), getOpenFileNamesAndFilter() and getSaveFileNameAndFilter() static methods to QFileDialog. The getOpenFileName(), getOpenFileNames() and getSaveFileName() static methods of QFileDialog don't take a mutable QString argument to return the selected filter for v2 of the QString API. [220aa5b695e3] 2009-08-03 phil * PyQt4.msp, doc/pyqt4ref.txt: Fixed QWebPage.javaScriptPrompt() for the v2 QString API. [ddb4a12345ef] * Makefile, PyQt4.msp, doc/pyqt4ref.txt: Fixed QTextStream for v2 of the QString API. [60d3c81e3517] * Makefile, PyQt4.msp, doc/pyqt4ref.txt: Removed QTextDecoder::toUnicode(QString *target, const char *chars, int len) from the QString v2 API. [ba918d014939] * PyQt4.msp, doc/pyqt4ref.txt: Removed QXmlStreamWriter(QString *string) from the QString v2 API. [d8b8207c89ee] 2009-08-02 phil * PyQt4.msp: qt_set_sequence_auto_mnemonic() is now OS/X specific. [3d8ecdfec2ac] * PyQt4.msp, doc/pyqt4ref.txt: v2 of the QString API now converts between a null QString and None. [8e895a11506b] * PyQt4.msp: Removed overloads of QXmlQuery.evaluateTo() that take pointers to QStringList and QString as they won't work with the v2 QString API. If anybody notices we can implement something with handwritten code. [f06a1aa6d35f] * PyQt4.msp, Roadmap.rst, doc/pyqt4ref.txt, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_qstringlist.cpp: Added the v2 implementation of QStringList. [db017177a28d] * pyuic/uic/widget-plugins/qwt.py: Removed the qwt.py plugin for pyuic as one is now included with PyQwt. [9d7aa053aa75] * PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm: A QLatin1String can now be passed whenever a QString is expected. Removed all overloads that took a QLatin1String where there is an equivalent that takes a QString (ie. all of them). Removed QLatin1String from the v2 QString API. [da76df8a40da] * PyQt4.msp, doc/pyqt4ref.txt: Removed QLatin1Char from the QString v2 API. [e87bedc2718d] * PyQt4.msp, doc/pyqt4ref.txt: Added the v2 API support for QChar. Removed the fromUnicode() and convertFromUnicode() methods that take an array of QChar from QTextCodec. This means an incompatibility as QTextCodec is now abstract and cannot be sub-classed - but doing so before would never have worked anyway. [26bf21e9e8b2] * PyQt4.msp: Removed the width() and boundingRect() methods of QFontMetrics and QFontMetricsF that take QChar arguments as they can be handled by the overloads that take a QString. [f2ce992dda3f] * Makefile, PyQt4.msp, doc/pyqt4ref.txt: Removed QStringMatcher from v2 of the QString API. [d4108cd8bd10] 2009-08-01 phil * Makefile, PyQt4.msp: Fixed a couple of typos in the changed QString handwritten code. [ff787d77e77f] 2009-07-31 phil * PyQt4.msp, doc/pyqt4ref.txt: Added the basic support for v2 API for QString and QStringRef. [93173cc4ab10] 2009-07-30 phil * PyQt4.msp: Added missing /Transfer/ annotations to QBoxLayout.addSpacerItem() and QBoxLayout.insertSpacerItem(). [fc34d8dfeaca] 2009-07-27 phil * PyQt4.msp: Fixed the super-class for QGLContext as it takes part in parent/child relationships. [3d48ab643cce] 2009-07-24 phil * examples/designer/plugins/widgets/highlightedtextedit.py, lib/configure.py: Fixed the highlightedtextedit.py example. configure.py gives precedence to the directory containing sip.h to that containing Python.h (as the latter may include a distro supplied sip.h). [5df8b7aaeed6] 2009-07-20 phil * qpy/QtCore/qpycore_chimera.cpp, test/runtests.py, test/tests/classes/test_QVariant.py: QVariant.toPyObject() now recurses through any collections. [586617cb0e7d] 2009-07-17 phil * Makefile, qpy/QtCore/qpycore_pyqtboundsignal.cpp: Cleared a benign exception raised with bound signals that numpy was noticing. [8a8b313066ec] 2009-07-12 phil * PyQt4.msp: Added the two QImage ctors that take non-const data as a void *. [e0961c7080de] * PyQt4.msp: Added a missing /Transfer/ to QTableWidget.setItemPrototype(). [ae1b1ea2132b] * examples/itemviews/chart/chart.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py: Fixed a bug in the chart.py example. Added support for QHeaderView to pyuic. Fixed support for stretch in a layout containing widgets in pyuic. [e3c67598490d] 2009-07-09 phil * Makefile, qpy/QtCore/qpycore_chimera.cpp: Fixed bugs in the conversions of QVariantList, QVariantMap and QVariantHash. [0dcfba92aea2] * Makefile, build.py, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_types.cpp: Expose the pyqtWrapperType meta-type. Allow meta-type to be used with with ordinary Python classes, not just SIP generated classes. [9794012a6ac7] 2009-07-08 phil * examples/tools/codecs/codecs.py, examples/tools/regexp.py, examples/tools/settingseditor/settingseditor.py, examples/widgets/charactermap.py, examples/widgets/icons/icons.py, examples/widgets/scribble.py, examples/xml/saxbookmarks/saxbookmarks.py: Converted the codecs.py, regexp.py, settingseditor.py, charactermap.py, icons.py, scribble.py and saxbookmarks.py to the QVariant v2 API. [d60fcb836d92] * examples/sql/cachedtable.py, examples/sql/querymodel.py, examples/sql/relationaltablemode.py, examples/sql/tablemodel.py: Converted the cachedtable.py, querymodel.py, relationaltablemode.py and tablemodel.py examples to the QVariant v2 API. [657b11f3a3ae] 2009-07-07 phil * PyQt4.msp: Added the static functions to the QVariant v2 API. [85c8cfa1724d] * PyQt4.msp, doc/pyqt4ref.txt, examples/itemviews/fetchmore.py, examples/itemviews/simpledommodel.py, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/painting/basicdrawing/basicdrawing.py, examples/painting/painterpaths.py, examples/phonon/capabilities.py, examples/richtext/textobject/textobject.py: Applied the new /AllowNone/ annotation to the v1 implementation of QVariant. Changed fetchmore.py, simpledommodel.py and simpletreemodel.py as they are now independent of the QVariant API. [3ed279047739] 2009-07-06 phil * examples/mainwindows/application/application.py, examples/mainwindows/mdi/mdi.py, examples/mainwindows/recentfiles.py, examples/mainwindows/sdi/sdi.py: Converted the application.py, mdi.py, recentfiles.py and sdi.py examples to the QVariant v2 API. [33b1aef10295] * examples/itemviews/fetchmore.py, examples/itemviews/pixelator/pixelator.py, examples/itemviews/puzzle/puzzle.py, examples/itemviews/simpledommodel.py, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/itemviews/spinboxdelegate.py: Converted the fetchmore.py, pixelator.py, puzzle.py, simpledommodel.py, simpletreemodel.py and spinboxdelegate.py to the QVariant v2 API. [2b2942d0ba76] * PyQt4.msp, doc/pyqt4ref.txt, examples/graphicsview/diagramscene/diagramscene.py, examples/graphicsview/dragdroprobot/dragdroprobot.py, examples/graphicsview/padnavigator/ui_backside.py, examples/itemviews/basicsortfiltermodel.py, examples/itemviews/chart/chart.py, examples/itemviews/editabletreemodel/editabletreemodel.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_qvariant.cpp: Converted the diagramscene.py, dragdroprobot.py, padnavigator.py, basicsortfiltermodel.py, chart.py and editabletreemodel.py examples to the QVariant v2 API. Fixed a regression in pyuic when populating a QTreeWidget. [0b463317bd68] * doc/pyqt4ref.txt, examples/activeqt/webbrowser/webbrowser.py, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/qtdemo.py, examples/designer/plugins/python/highlightedtexteditplugin.py, examples/desktop/systray/systray.py, examples/draganddrop/puzzle/puzzle.py: Converted the webbrowser.py, puzzle.py, plugins.py, qtdemo.py and systray.py examples to the QVariant v2 API. [2e5eec3b71cb] 2009-07-03 phil * PyQt4.msp: Fixed a problem converting large 32 bit unsigned values to a QVector. [53d4d3b2462d] * pyuic/uic/uiparser.py: Added support to pyuic for stretch in box layouts. [f2d1f0521818] 2009-06-28 phil * PyQt4.msp: Added the Type enum to the v2 API of QVariant. [4a15d06af9ac] 2009-06-27 phil * Makefile, qpy/QtCore/qpycore_chimera.cpp: Fixed a problem setting a QVariant property. [1b29f603bf88] * Makefile, qpy/QtCore/qpycore_chimera.cpp: Allow QVariant to be used as a property type. [e0ee42ee771a] * build.py, doc/pyqt4ref.txt, examples/activeqt/webbrowser/webbrowser.py, installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in, qpy/QtCore/qpycore.pro: Added the QAxContainer module to the GPL package as it's now included in the LGPL Qt v4.5.2. Fixed the webbrowser.py example. Added a workaround to a qmake regression in Qt v4.5.2 when building static libraries. [0255c28e08f0] 2009-06-26 phil * lib/configure.py: Fixed the license checks for Qt v4.5.2. [1546f30b0f42] 2009-06-25 phil * Makefile, PyQt4.msp: Updated for Qt v4.5.2. [27319ca4a8db] 2009-06-24 phil * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, qpy/QtCore/qpycore_chimera.cpp, test/tests/classes/test_QVariant.py: Match the maintenance branch changes to QVariant while we think about how to implement the v2 API. [fe0ba907bff8] 2009-06-23 phil * PyQt4.msp, qpy/QtCore/qpycore_chimera.cpp: Fixed a regression in converting Python objects to QVariant containers. [6a7091c37b36] 2009-06-22 phil * pyuic/uic/port_v2/ascii_upper.py, pyuic/uic/port_v3/ascii_upper.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed the locale independent upper-case conversion regression in pyuic introduced when porting to Python v3. Fixed a pyuic bug handling spacers in QFormLayouts. [bc07c812c3d8] * Makefile, doc/pyqt4ref.txt: Documented the QVariant API versions. [69588526c978] 2009-06-21 phil * PyQt4.msp: QHash templates were still using the old types API. Removed an unused variable in the QVariant handwritten code. [c9afc18a5c41] 2009-06-20 phil * Makefile, PyQt4.msp, lib/OPENSOURCE-NOTICE.TXT, qpy/QtCore/qpycore_qvariant.cpp: Added the v2 API for QVariant. [4248c8ad050f] 2009-06-18 phil * PyQt4.msp, Roadmap.rst, doc/pyqt4ref.txt: Implemented the QTextStream API to handle the bin(), hex() and oct() name clashes. [7f5951c7d0b7] * PyQt4.msp, Roadmap.rst, doc/pyqt4ref.txt: Implemented the different __hash__ APIs. [f75e894fd7c6] 2009-06-17 phil * PyQt4.msp, lib/configure.py: Added the %API directive defaulting to v2 for Python3 and v1 for Python2. SIP v4.9 is now required. [623e3f583a7f] * NEWS, PyQt4.msp, Roadmap.rst, doc/pyqt4ref.txt, lib/LICENSE.commercial, lib/configure.py, pyuic/uic/uiparser.py, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_types.cpp: Merged v4.5.1 into the trunk. [9d0c76840b2a] 2009-06-05 phil * NEWS: Released as v4.5. [cfea4a36c822] [4.5] 2009-06-04 phil * PyQt4.msp: Another (final) go at fixing QAbstractItemModel.createIndex(). [c72e37d16b1a] * PyQt4.msp: Changed the implementation of QModelIndex.internalId() to match that of the id() builtin - and let Python handle the portabilty issues. [73024c019ecc] * PyQt4.msp: Removed the /KeepReference/ annotation from QAbstractItemModel.createIndex() as the extra reference should really be associated with the returned QModelIndex. [cb3a4e1da72a] * PyQt4.msp: Hopefully finally fixed QModel.internalId() and QAbstractItemModel.createIndex() for all platforms. [0b4984f19e40] 2009-06-03 phil * PyQt4.msp: Treat QModelIndex.internalId() and a quint64 rather than qint64. [fee3c817b136] * Makefile, PyQt4.msp, lib/LICENSE.commercial: Use the Qt v4.2.0 and later version of QAbstractItemModel.createIndex(). [9e5bf181b3d8] 2009-06-01 phil * Makefile, NEWS, PyQt4.msp: Backed out QFlags.testFlag() because of some problem with PyKDE4 (and no time to investigate further). [0de90a5ae406] * Makefile, PyQt4.msp, qpy/QtCore/qpycore_chimera.cpp: QVector now creates Python long objects to ensure values stay unsigned on 32 bit systems. [f913a56e5e4a] 2009-05-29 phil * PyQt4.msp, qpy/QtCore/qpycore_misc.cpp: Emliminated more warning messages. [8dd3695672a6] * Makefile, PyQt4.msp, qpy/QtCore/qpycore_misc.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_types.cpp: Eliminated some compiler warning messages - particularly for Python v2.4. [615a951d034d] 2009-05-27 phil * installers/PyQt-gpl.nsi-in: Added the graphicssystems plugins to the Windows installer. [ae6ae9b8fbf5] * PyQt4.msp, examples/opengl/grabber.py, examples/opengl/hellogl.py, examples/opengl/textures/textures.py: Some fixes for the OpenGL examples from Francis Cho. [2caa56956fae] 2009-05-26 phil * pyuic/uic/Compiler/qtproxies.py: Added support for QWizard and QWizardPage to pyuic. [c8a8306da6aa] * PyQt4.msp: Added the missing QFlags.testFlag(). Added a convenience QFlags(int) ctor. [e4383cd30143] * doc/pyqt4ref.txt: Expanded the documentation describing the slight changes in QVariant handling. [22592ae0ede7] * PyQt4.msp, Roadmap.rst: Added the /KeepReference/ annotations to all methods that set factories, delegates or icon providers. [dac1fcab9340] 2009-05-25 phil * PyQt4.msp, installers/BuildGPL.txt, installers/BuildGPLMega.txt, installers/PyQt-eval.nsi-in, installers/PyQt-gpl-mega.nsi-in: Removed the unused installers and build documentation. Moved from __nonzero__ to __bool__. [35ef0a6fe720] 2009-05-20 phil * Makefile, qpy/QtCore/qpycore_chimera.cpp: QVariant.toPyObject() now raises an exception if the QVariant is invalid. [bdf3cc56d788] 2009-05-17 phil * qpy/QtCore/qpycore_pyqtproxy.cpp: Fixed a deadlock between the GIL and Qt's internal thread mutex when a slot proxy is calling QObject::sender() while holding the GIL. [e673469b7ff2] * pyuic/uic/objcreator.py: Fixed a typo in pyuic in the handling of filter plugins. [2e3f8a70717e] * NEWS, examples/demos/qtdemo/xml/examples.xml, examples/itemviews/fetchmore.py: Added the fetchmore.py example from Darryl Wallace. [583bd804f870] 2009-05-07 phil * examples/demos/qtdemo/menumanager.py: Fixed the new qtdemo for OS/X. [b6e008b07455] 2009-05-06 phil * qpy/QtCore/qpycore_pyqtproxy.cpp: Removed a couple of compiler warning messages. [08a7ce5fb315] * lib/configure.py: Fixed a configure.py bug that meant the DBus detection was broken. [603c13ff4415] 2009-05-04 phil * examples/designer/plugins/widgets/bubbleswidget.py, examples/designer/plugins/widgets/highlightedtextedit.py, examples/designer/plugins/widgets/multipagewidget.py: Fixed bugs in the Designer plugin example widgets introduced when converting to the new signal API. [8b06fc4bae06] * lib/configure.py: Fixed a silly configure.py bug related to the new -py3 pyrcc flag. [c961670eef7b] * doc/pyqt4ref.txt, lib/configure.py, pyrcc/main.cpp, pyrcc/rcc.h: Had second thoughts about pyrcc4 and added the -py2 flag and made it the default. [21f506f53b02] * NEWS, PyQt4.msp, pylupdate/fetchtr.cpp: Added support for QT_TR_NOOP_UTF8 to QtCore and pylupdate4. [c492705a58ad] * build.py, examples/demos/qtdemo/examplecontent.py, examples/demos/qtdemo/mainwindow.py, examples/demos/qtdemo/qtdemo.py, installers/BuildGPL.txt, installers /PyQt-gpl.nsi-in, lib/LICENSE-MERGED-GPL2-GPL3, lib/LICENSE.commercial, pyqtdoc/renderer.py: Various Windows installer fixes. The new qtdemo example now works with Python v3. [72be977a8a4f] 2009-05-02 phil * test/tests/metaobject/test_connections.py, test/tests/metaobject/test_connections_old_style.py, test/tests/metaobject/test_invoke.py, test/tests/metaobject/test_pyqtproperty.py: Added some unit tests that (hopefully) prove that the recent Chimera changes don't affect Python sub-classes. [ea018b03214e] 2009-05-01 phil * qpy/QtCore/qpycore_chimera.cpp: Chimera now handles all QWidget and QObject sub-classes as QWidgetStar and QObjectStar (not just QWidget and QObject themselves). [91fd4ac503ee] * PyQt4.msp: Reinstanted QString(const QByteArray &) now that a QByteArray isn't automatically converted to a QString. [9086e8369fab] * qpy/QtCore/qpycore_chimera.cpp: In Python v3, Chimera now handles bytes and bytearray objects as QByteArrays rather then QStrings. [3048f25101a1] 2009-04-30 phil * PyQt4.msp, QAxContainer/QAxContainermod.sip: Explicity set %DefaultSupertype in each module now that it doesn't affect importing modules. [7f34d48f125a] * NEWS, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/xml/examples.xml, examples/designer/README, examples/tools/qtdemo/demos.xml, examples/tools/qtdemo/displayshape.py, examples/tools/qtdemo/displaywidget.py, examples/tools/qtdemo/examples.xml, examples/tools/qtdemo/images/qt4-logo.png, examples/tools/qtdemo/images/rb-logo.png, examples/tools/qtdemo/launcher.py, examples/tools/qtdemo/qtdemo.py, examples/tools/qtdemo/qtdemo.qrc, examples/tools/qtdemo/qtdemo.rc, examples/tutorial/README, examples/tutorial/t1.py, examples/tutorial/t10.py, examples/tutorial/t11.py, examples/tutorial/t12.py, examples/tutorial/t13.py, examples/tutorial/t14.py, examples/tutorial/t2.py, examples/tutorial/t3.py, examples/tutorial/t4.py, examples/tutorial/t5.py, examples/tutorial/t6.py, examples/tutorial/t7.py, examples/tutorial/t8.py, examples/tutorial/t9.py, examples/tutorials/addressbook/README, examples/tutorials/addressbook/part1.py, examples/tutorials/addressbook/part2.py, examples/tutorials/addressbook/part3.py, examples/tutorials/addressbook/part4.py, examples/tutorials/addressbook/part5.py, examples/tutorials/addressbook/part6.py, examples/tutorials/addressbook/part7.py, qpy/QtCore/qpycore_pyqtproxy.cpp: Fixed the issue with Assistant and the new qtdemo. Fixed some of the example READMEs to make sure they had at least three interesting paragraphs. Removed the old qtdemo. Added the new addressbook tutorial. Removed the old tutorial. Fixed some GIL issues when creating PyQtProxy instances. [c451d374b540] 2009-04-29 phil * examples/demos/qtdemo/colors.py, examples/demos/qtdemo/demoitem.py, examples/demos/qtdemo/demotextitem.py, examples/demos/qtdemo/examplecontent.py, examples/demos/qtdemo/menumanager.py: Latest qtdemo patch from Grissiom. qtdemo animation fix from me. [4a6a8f37cf58] 2009-04-28 phil * examples/README, examples/activeqt/README, examples/demos/README, examples/demos/qtdemo/colors.py, examples/demos/qtdemo/examplecontent.py, examples/demos/qtdemo/itemcircleanimation.py, examples/demos/qtdemo/mainwindow.py, examples/demos/qtdemo/menucontent.py, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/xml/examples.xml, examples/designer/README, examples/desktop/README, examples/dialogs/README, examples/draganddrop/README, examples/graphicsview/README, examples/itemviews/README, examples/layouts/README, examples/mainwindows/README, examples/network/README, examples/opengl/README, examples/painting/README, examples/phonon/README, examples/richtext/README, examples/script/README, examples/sql/README, examples/threads/README, examples/tools/README, examples/tutorial/README, examples/widgets/README, examples/xml/README, installers/BuildGPL.txt, installers/PyQt-gpl .nsi-in, installers/configqt.bat: Some updates to the Windows installer. More qtdemo fixes - everything now seems to (sort of) work. [2f2b52c208aa] 2009-04-27 phil * Roadmap.rst: Updated the roadmap to remove QByteArray from the list of classes to be removed in the v2 API. If it was removed then we couldn't implement the different QSvgRenderer ctors (for example). [b08c6eccf682] * PyQt4.msp: Revised the automatic conversions for QString and QByteArray. See QByteArray's %ConvertToTypeCode for a full explanation. Reverted the changes to the ordering of methods of QSvgRenderer and QSvgWidget as the above changes should be the proper fix to the underlying problem. [1c3fc251ad37] * examples/demos/qtdemo/demoitem.py, examples/demos/qtdemo/menucontent.py, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: Fixed a problem with short-circuit signals where the wrong one might be found when more than one with the same signature appeared in an object hierachy. [4b700c963a94] 2009-04-26 phil * PyQt4.msp: Added the /KeepReference/ annotation to the setItem() and setTimeLine() methods of QGraphicsItemAnimation. [1af1116928f5] 2009-04-25 phil * lib/configure.py: Fixed the build in the case where the sip.h file is installed in a non-standard directory. [bdab316cd0a0] * examples/demos/qtdemo/demoitem.py, examples/demos/qtdemo/guide.py, examples/demos/qtdemo/itemcircleanimation.py, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/textbutton.py: More new qtdemo fixes - the basic animation and menu display now seems to work. [6e0c64f6ed1e] * examples/demos/qtdemo/mainwindow.py: New qtdemo patch from Grissiom. [cf377680ac57] 2009-04-24 phil * Makefile, lib/configure.py, qpy/QtCore/qpycore.pro, qpy/QtDesigner/qpydesigner.pro, qpy/QtGui/qpygui.pro: The qpy libraries now respect the debug flag when building. [d87e4543ff76] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: Updated for Qt v4.5.1. [1bc328e326b2] * Makefile, examples/demos/qtdemo/demoitem.py, examples/demos/qtdemo/demotextitem.py: Some more qtdemo fixes. [187c87d8ef0f] 2009-04-23 phil * examples/demos/qtdemo/demoitem.py, examples/demos/qtdemo/demoitemanimation.py, examples/demos/qtdemo/demotextitem.py, examples/demos/qtdemo/guidecircle.py, examples/demos/qtdemo/itemcircleanimation.py, examples/demos/qtdemo/mainwindow.py, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/score.py, examples/demos/qtdemo/textbutton.py: Fixes for the new qtdemo example from Henning Schroeder and Matthew Smith. [cb639dd27258] 2009-04-22 phil * examples/demos/qtdemo/colors.py, examples/demos/qtdemo/demoitem.py, examples/demos/qtdemo/demoitemanimation.py, examples/demos/qtdemo/demoscene.py, examples/demos/qtdemo/demotextitem.py, examples/demos/qtdemo/dockitem.py, examples/demos/qtdemo/examplecontent.py, examples/demos/qtdemo/guide.py, examples/demos/qtdemo/guidecircle.py, examples/demos/qtdemo/guideline.py, examples/demos/qtdemo/headingitem.py, examples/demos/qtdemo/imageitem.py, examples/demos/qtdemo/images/demobg.png, examples/demos/qtdemo/images/qtlogo_small.png, examples/demos/qtdemo/images/trolltech-logo.png, examples/demos/qtdemo/itemcircleanimation.py, examples/demos/qtdemo/letteritem.py, examples/demos/qtdemo/mainwindow.py, examples/demos/qtdemo/menucontent.py, examples/demos/qtdemo/menumanager.py, examples/demos/qtdemo/qtdemo.py, examples/demos/qtdemo/qtdemo.qrc, examples/demos/qtdemo/scanitem.py, examples/demos/qtdemo/score.py, examples/demos/qtdemo/textbutton.py, examples/demos/qtdemo/xml/examples.xml: Added the translated (but not debugged) new qtdemo example. [726e93beeb4a] 2009-04-19 phil * qpy/QtCore/qpycore_chimera.cpp: Fixed a bug with the handling of flag types, particularly when emitted as a signal argument. [03168862385b] 2009-04-14 phil * qpy/QtCore/qpycore_pyqtboundsignal.cpp: Explicitly disallow connecting a signal to itself because Qt doesn't handle it gracefully. [00ffeeb267bf] 2009-04-12 phil * Makefile, PyQt4.msp: Fixed the protected methods of QGraphicsItemAnimation which were incorrectly identified as signals. [f86b11e3b101] 2009-04-11 phil * Makefile, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Fixed a bug in the parsing of string arguments to pyqtSignal(). [e98e88faa86d] 2009-04-10 phil * examples/network/blockingfortuneclient.py, examples/network/broadcastreceiver.py, examples/network/broadcastsender.py, examples/network/fortuneclient.py, examples/network/fortuneserver.py, examples/network/ftp/ftp.py, examples/network/http.py, examples/network/http/authenticationdialog.ui, examples/network/http/http.py, examples/network/loopback.py, examples/network/threadedfortuneserver.py: Updated all the network examples. [d9d15621f45b] * examples/mainwindows/application/application.py, examples/mainwindows/application/images/copy.png, examples/mainwindows/application/images/paste.png, examples/mainwindows/dockwidgets/dockwidgets.py, examples/mainwindows/dockwidgets/images/save.png, examples/mainwindows/mdi/images/copy.png, examples/mainwindows/mdi/images/paste.png, examples/mainwindows/mdi/mdi.py, examples/mainwindows/menus.py, examples/mainwindows/recentfiles.py, examples/mainwindows/sdi/images/copy.png, examples/mainwindows/sdi/images/paste.png, examples/mainwindows/sdi/sdi.py: Updated the mainwindows examples. [927b12c8776d] 2009-04-09 phil * examples/layouts/basiclayout.py, examples/layouts/basiclayouts.py, examples/layouts/borderlayout.py, examples/layouts/flowlayout.py: Updated the layouts examples. [32f81467ee50] * examples/opengl/2dpainting.py, examples/opengl/grabber.py, examples/opengl/hellogl.py, examples/opengl/overpainting.py, examples/opengl/samplebuffers.py, examples/opengl/textures/images/side1.png, examples/opengl/textures/images/side2.png, examples/opengl/textures/images/side3.png, examples/opengl/textures/images/side4.png, examples/opengl/textures/images/side5.png, examples/opengl/textures/images/side6.png, examples/opengl/textures/textures.py: Updated all of the OpenGL examples. [d656a4fa693f] * examples/painting/concentriccircles.py, examples/painting/painterpaths.py, examples/painting/transformations.py: Updated the rest of the painting examples. [6fd431c94c9d] * Makefile, PyQt4.msp: Added a whole load of signals missing from QAbstractItemModel. [7e50cb578abe] 2009-04-03 phil * examples/painting/basicdrawing/basicdrawing.py, examples/painting/basicdrawing/images/brick.png, examples/painting/basicdrawing/images/qt-logo.png, examples/painting/svgviewer/files/bubbles.svg, examples/painting/svgviewer/files/spheres.svg, examples/painting/svgviewer/svgviewer.py: Updated the basicdrawing.py and svgviewer.py examples. [92d413e222f8] * examples/pyuic/compile-on-the-fly.py, examples/pyuic/load_ui1.py, examples/pyuic/load_ui2.py, pyuic/uic/__init__.py, pyuic/uic/uiparser.py: Fixed a couple of Python v3 porting issues with pyuic. Updated the pyuic examples. [44803a297b4c] * examples/sql/cachedtable.py, examples/sql/connection.py, examples/sql/querymodel.py, examples/sql/relationaltablemode.py, examples/sql/tablemodel.py: Updated the SQL examples. [a828785cf118] * Makefile, examples/threads/mandelbrot.py, examples/threads/semaphores.py, examples/threads/waitconditions.py: Updated the threads examples. [b90317a358b1] 2009-04-02 phil * PyQt4.msp, pyuic/uic/Compiler/misc.py, pyuic/uic/Compiler/proxy_type.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/driver.py, pyuic/uic/port_v2/encode_utf8.py, pyuic/uic/port_v2/proxy_base.py, pyuic/uic/port_v3/encode_utf8.py, pyuic/uic/port_v3/proxy_base.py, pyuic/uic/properties.py, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_qstring.cpp: Redid the translation methods to honour the Qt encoding. Completed the port of pyuic to Python v3. [e40cdc87e0df] * Makefile, pyuic/uic/__init__.py, pyuic/uic/objcreator.py, pyuic/uic/port_v2/__init__.py, pyuic/uic/port_v2/invoke.py, pyuic/uic/port_v2/load_plugin.py, pyuic/uic/port_v2/string_io.py, pyuic/uic/port_v3/__init__.py, pyuic/uic/port_v3/invoke.py, pyuic/uic/port_v3/load_plugin.py, pyuic/uic/port_v3/string_io.py, pyuic/uic/pyuic.py, pyuic/uic/v2_handler.py, pyuic/uic/v3_handler.py: Restructured the pyuic port support. [bbb1c5663375] 2009-04-01 phil * Makefile, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/loader.py, pyuic/uic/__init__.py, pyuic/uic/driver.py, pyuic/uic/objcreator.py, pyuic/uic/properties.py, pyuic/uic/pyuic.py, pyuic/uic/uiparser.py, pyuic/uic/v2_handler.py, pyuic/uic/v3_handler.py: More porting of pyuic to Python v3. [1f5b7808ce52] * qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h: Fixed support for signals with non-signal overloads (eg. QNetworkReply.error()). [6a65fbd269eb] 2009-03-31 phil * examples/graphicsview/collidingmice/collidingmice.py, examples/graphicsview/diagramscene/diagramscene.py, examples/graphicsview/dragdroprobot/dragdroprobot.py, examples/graphicsview/elasticnodes.py, examples/graphicsview/padnavigator/padnavigator.py: Updated the QGraphicsView examples. [5b28a7b512a6] * PyQt4.msp, doc/pyqtdoc/qpytextobject.html#details, examples/richtext/textobject/files/heart.svg, examples/richtext/textobject/textobject.py, lib/configure.py, qpy/QtGui/qpygui.pro, qpy/QtGui/qpytextobject.h, qpy/QtGui/qpytextobject.sip: Added the QPyTextObject class to allow new types of text object to be defined in Python. Added the textobject.py example. Reordered some methods in QSvgRenderer so that QByteArray arguments are handled properly. [927e83216259] * PyQt4.msp, examples/draganddrop/draggableicons/draggableicons.py, examples/draganddrop/draggableicons/images/car.png, examples/draganddrop/draggableicons/images/house.png, examples/draganddrop/draggabletext/draggabletext.py, examples/draganddrop/fridgemagnets/fridgemagnets.py, examples/draganddrop/puzzle/example.jpg, examples/draganddrop/puzzle/puzzle.py, examples/itemviews/puzzle/puzzle.py: Updated the drag-and-drop examples. [b6827ce8a863] 2009-03-30 phil * PyQt4.msp: Implemented the Python v3 buffer protocol for QString. [15c8d1b1744a] * examples/richtext/calendar.py, examples/richtext/orderform.py, examples/richtext/syntaxhighlighter.py, examples/richtext/syntaxhighlighter/examples/example, examples/richtext/syntaxhighlighter/syntaxhighlighter.py, examples/richtext/syntaxhighlighter/syntaxhighlighter.qrc, examples/tools/qtdemo/examples.xml: Updated the rich text examples. [d85adcda5566] * PyQt4.msp, build.py, doc/pyqt4ref.txt: Updated the documentation regarding QStrings and automatic conversions. Allow a Latin-1 unicode object to be used when a QByteArray is expected for Python v2. Switched the order of the QSVGWidget.load() overloads. [a7c7302e1e90] 2009-03-28 phil * Makefile, NEWS, PyQt4.msp, examples/itemviews/basicsortfiltermodel.py, examples/itemviews/chart/chart.py, examples/itemviews/dirview.py, examples/itemviews/editabletreemodel/default.txt, examples/itemviews/editabletreemodel/editabletreemodel.py, examples/itemviews/editabletreemodel/editabletreemodel.qrc, examples/itemviews/editabletreemodel/mainwindow.ui, examples/itemviews/editabletreemodel/ui_mainwindow.py, examples/itemviews/pixelator/pixelator.py, examples/itemviews/puzzle/example.jpg, examples/itemviews/puzzle/puzzle.py, examples/itemviews/simpledommodel.py, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/itemviews/spinboxdelegate.py: Added the /KeepReference/ annotation to every call to setModel() (or similar). Added the editabletreemodel.py example from Cyril Romain. Updated all the item views examples. [9f4e4965f0e4] * lib/configure.py: Fixed MacOS/X universal builds for Intel. [d5bcc558adf8] 2009-03-27 phil * NEWS, pyuic/tests/SearchDialog.ui, pyuic/tests/buddies.ui, pyuic/tests/calculatorform.ui, pyuic/tests/cursor.ui, pyuic/tests /customwidget-test1.ui, pyuic/tests/datetimewidgets.ui, pyuic/tests /dockwidget-in-mainwindow.ui, pyuic/tests/dockwidget.ui, pyuic/tests/eric4_ui/AboutDialog.ui, pyuic/tests/eric4_ui/AddDirectoryDialog.ui, pyuic/tests/eric4_ui/AddFileDialog.ui, pyuic/tests/eric4_ui/AddFoundFilesDialog.ui, pyuic/tests/eric4_ui/AddLanguageDialog.ui, pyuic/tests/eric4_ui/ApplicationPage.ui, pyuic/tests/eric4_ui/BookmarkDialog.ui, pyuic/tests/eric4_ui/BookmarkedFilesDialog.ui, pyuic/tests/eric4_ui/CodeMetricsDialog.ui, pyuic/tests/eric4_ui/ColorDialogWizardDialog.ui, pyuic/tests/eric4_ui/CommandOptionsDialog.ui, pyuic/tests/eric4_ui/CompareDialog.ui, pyuic/tests/eric4_ui/ConfigurationDialog.ui, pyuic/tests/eric4_ui/CorbaPage.ui, pyuic/tests/eric4_ui/CvsCommandDialog.ui, pyuic/tests/eric4_ui/CvsCommitDialog.ui, pyuic/tests/eric4_ui/CvsDialog.ui, pyuic/tests/eric4_ui/CvsDiffDialog.ui, pyuic/tests/eric4_ui/CvsHistoryDialog.ui, pyuic/tests/eric4_ui/CvsLogDialog.ui, pyuic/tests/eric4_ui/CvsLoginDialog.ui, pyuic/tests/eric4_ui/CvsLogoutDialog.ui, pyuic/tests/eric4_ui/CvsMergeDialog.ui, pyuic/tests/eric4_ui/CvsNewProjectOptionsDialog.ui, pyuic/tests/eric4_ui/CvsOptionsDialog.ui, pyuic/tests/eric4_ui/CvsSwitchDialog.ui, pyuic/tests/eric4_ui/CvsTagDialog.ui, pyuic/tests/eric4_ui/CxfreezeConfigDialog.ui, pyuic/tests/eric4_ui/DebuggerGeneral1Page.ui, pyuic/tests/eric4_ui/DebuggerGeneral2Page.ui, pyuic/tests/eric4_ui/DebuggerPropertiesDialog.ui, pyuic/tests/eric4_ui/DebuggerPythonPage.ui, pyuic/tests/eric4_ui/DebuggerRubyPage.ui, pyuic/tests/eric4_ui/DeleteFilesConfirmationDialog.ui, pyuic/tests/eric4_ui/DiffDialog.ui, pyuic/tests/eric4_ui/DocGeneratorExecDialog.ui, pyuic/tests/eric4_ui/EditBreakpointDialog.ui, pyuic/tests/eric4_ui/EditWatchpointDialog.ui, pyuic/tests/eric4_ui/EditorAPIsPage.ui, pyuic/tests/eric4_ui/EditorAutocompletionPage.ui, pyuic/tests/eric4_ui/EditorCalltipsPage.ui, pyuic/tests/eric4_ui/EditorColoursPage.ui, pyuic/tests/eric4_ui/EditorGeneralPage.ui, pyuic/tests/eric4_ui/EditorHighlightersPage.ui, pyuic/tests/eric4_ui/EditorHighlightingStylesPage.ui, pyuic/tests/eric4_ui/EditorProperties1Page.ui, pyuic/tests/eric4_ui/EditorProperties2Page.ui, pyuic/tests/eric4_ui/EditorStylesPage.ui, pyuic/tests/eric4_ui/EmailDialog.ui, pyuic/tests/eric4_ui/EmailPage.ui, pyuic/tests/eric4_ui/EricapiConfigDialog.ui, pyuic/tests/eric4_ui/EricdocConfigDialog.ui, pyuic/tests/eric4_ui/ExceptionsFilterDialog.ui, pyuic/tests/eric4_ui/FileDialogWizardDialog.ui, pyuic/tests/eric4_ui/FiletypeAssociationDialog.ui, pyuic/tests/eric4_ui/FindFileDialog.ui, pyuic/tests/eric4_ui/FindFileNameDialog.ui, pyuic/tests/eric4_ui/FontDialogWizardDialog.ui, pyuic/tests/eric4_ui/GotoDialog.ui, pyuic/tests/eric4_ui/HelpDocumentationPage.ui, pyuic/tests/eric4_ui/HelpViewersPage.ui, pyuic/tests/eric4_ui/HgCommandDialog.ui, pyuic/tests/eric4_ui/HgCommitDialog.ui, pyuic/tests/eric4_ui/HgCopyDialog.ui, pyuic/tests/eric4_ui/HgDialog.ui, pyuic/tests/eric4_ui/HgDiffDialog.ui, pyuic/tests/eric4_ui/HgLogDialog.ui, pyuic/tests/eric4_ui/HgManifestDialog.ui, pyuic/tests/eric4_ui/HgNewProjectOptionsDialog.ui, pyuic/tests/eric4_ui/HgOptionsDialog.ui, pyuic/tests/eric4_ui/HgPullDialog.ui, pyuic/tests/eric4_ui/HgPushDialog.ui, pyuic/tests/eric4_ui/HgRevisionSelectionDialog.ui, pyuic/tests/eric4_ui/HgStatusDialog.ui, pyuic/tests/eric4_ui/HgSwitchDialog.ui, pyuic/tests/eric4_ui/HgTagDialog.ui, pyuic/tests/eric4_ui/HgTagListDialog.ui, pyuic/tests/eric4_ui/IconsPage.ui, pyuic/tests/eric4_ui/IconsPreviewDialog.ui, pyuic/tests/eric4_ui/InputDialogWizardDialog.ui, pyuic/tests/eric4_ui/InterfacePage.ui, pyuic/tests/eric4_ui/LoadScriptDialog.ui, pyuic/tests/eric4_ui/MatchesDialog.ui, pyuic/tests/eric4_ui/MessageBoxWizardDialog.ui, pyuic/tests/eric4_ui/PackagersExecDialog.ui, pyuic/tests/eric4_ui/PrinterPage.ui, pyuic/tests/eric4_ui/ProgramsPage.ui, pyuic/tests/eric4_ui/ProjectPage.ui, pyuic/tests/eric4_ui/PropertiesDialog.ui, pyuic/tests/eric4_ui/PyCoverageDialog.ui, pyuic/tests/eric4_ui/PyLintConfigDialog.ui, pyuic/tests/eric4_ui/PyLintExecDialog.ui, pyuic/tests/eric4_ui/PyProfileDialog.ui, pyuic/tests/eric4_ui/PyRegExpWizardCharactersDialog.ui, pyuic/tests/eric4_ui/PyRegExpWizardDialog.ui, pyuic/tests/eric4_ui/PyRegExpWizardRepeatDialog.ui, pyuic/tests/eric4_ui/PythonPage.ui, pyuic/tests/eric4_ui/QRegExpWizardCharactersDialog.ui, pyuic/tests/eric4_ui/QRegExpWizardDialog.ui, pyuic/tests/eric4_ui/QRegExpWizardRepeatDialog.ui, pyuic/tests/eric4_ui/QtPage.ui, pyuic/tests/eric4_ui/RefactoringPage.ui, pyuic/tests/eric4_ui/ReplaceDialog.ui, pyuic/tests/eric4_ui/RepositoryInfoDialog.ui, pyuic/tests/eric4_ui/SearchDialog.ui, pyuic/tests/eric4_ui/ShellPage.ui, pyuic/tests/eric4_ui/ShortcutDialog.ui, pyuic/tests/eric4_ui/ShortcutsDialog.ui, pyuic/tests/eric4_ui/StartCoverageDialog.ui, pyuic/tests/eric4_ui/StartCyclopsDialog.ui, pyuic/tests/eric4_ui/StartDebugDialog.ui, pyuic/tests/eric4_ui/StartProfileDialog.ui, pyuic/tests/eric4_ui/StartRunDialog.ui, pyuic/tests/eric4_ui/SvnCommandDialog.ui, pyuic/tests/eric4_ui/SvnCommitDialog.ui, pyuic/tests/eric4_ui/SvnCopyDialog.ui, pyuic/tests/eric4_ui/SvnDialog.ui, pyuic/tests/eric4_ui/SvnDiffDialog.ui, pyuic/tests/eric4_ui/SvnLogDialog.ui, pyuic/tests/eric4_ui/SvnMergeDialog.ui, pyuic/tests/eric4_ui/SvnNewProjectOptionsDialog.ui, pyuic/tests/eric4_ui/SvnOptionsDialog.ui, pyuic/tests/eric4_ui/SvnPropListDialog.ui, pyuic/tests/eric4_ui/SvnPropSetDialog.ui, pyuic/tests/eric4_ui/SvnRevisionSelectionDialog.ui, pyuic/tests/eric4_ui/SvnStatusDialog.ui, pyuic/tests/eric4_ui/SvnSwitchDialog.ui, pyuic/tests/eric4_ui/SvnTagBranchListDialog.ui, pyuic/tests/eric4_ui/SvnTagDialog.ui, pyuic/tests/eric4_ui/SyntaxCheckerDialog.ui, pyuic/tests/eric4_ui/TabnannyDialog.ui, pyuic/tests/eric4_ui/TaskPropertiesDialog.ui, pyuic/tests/eric4_ui/TasksPage.ui, pyuic/tests/eric4_ui/TemplatePropertiesDialog.ui, pyuic/tests/eric4_ui/TemplateSingleVariableDialog.ui, pyuic/tests/eric4_ui/TemplatesPage.ui, pyuic/tests/eric4_ui/ToolConfigurationDialog.ui, pyuic/tests/eric4_ui/UnittestDialog.ui, pyuic/tests/eric4_ui/UnittestStacktraceDialog.ui, pyuic/tests/eric4_ui/VariableDetailDialog.ui, pyuic/tests/eric4_ui/VariablesFilterDialog.ui, pyuic/tests/eric4_ui/VcsPage.ui, pyuic/tests/eric4_ui/ViewProfileDialog.ui, pyuic/tests/eric4_ui/ViewmanagerPage.ui, pyuic/tests/eric4_ui/XMLMessageDialog.ui, pyuic/tests/eric4_ui/ZoomDialog.ui, pyuic/tests/fonts.ui, pyuic/tests/groupbox.ui, pyuic/tests/icon-test1.ui, pyuic/tests /icon-test2.ui, pyuic/tests/icons/desktop.png, pyuic/tests/icons/exec.png, pyuic/tests/icons/file_broken.png, pyuic/tests/icons/folder.png, pyuic/tests/icons/link.png, pyuic/tests/icons/lockoverlay.png, pyuic/tests/icons/network.png, pyuic/tests/icons/pipe.png, pyuic/tests/icons/www.png, pyuic/tests/icons/zip.png, pyuic/tests/iswrapping.ui, pyuic/tests /layout-test1.ui, pyuic/tests/layout-test2.ui, pyuic/tests/layout- test3.ui, pyuic/tests/lines.ui, pyuic/tests/list.ui, pyuic/tests /mainwindow-test1.ui, pyuic/tests/nonascii.ui, pyuic/tests/other_tests/actionwidget.ui, pyuic/tests/other_tests/actionwidgetpage.ui, pyuic/tests/other_tests/cfgtabpageaccountdtaus.ui, pyuic/tests/other_tests/cfgtabpageaccounthbci.ui, pyuic/tests/other_tests/cfgtabpageaccountofx.ui, pyuic/tests/other_tests/cfgtabpageaccountyn.ui, pyuic/tests/other_tests/cfgtabpageuserhbci.ui, pyuic/tests/other_tests/cfgtabpageuserofx.ui, pyuic/tests/other_tests/cfgtabpageuseryn.ui, pyuic/tests/other_tests/cfgtabpagk.ui, pyuic/tests/other_tests/edituserpage.ui, pyuic/tests/other_tests/iniletterpage.ui, pyuic/tests/other_tests/qanagram.ui, pyuic/tests/other_tests/qbbankselector.ui, pyuic/tests/other_tests/qbcfgtab.ui, pyuic/tests/other_tests/qbcfgtabpageaccountgen.ui, pyuic/tests/other_tests/qbcfgtabpageaccounts.ui, pyuic/tests/other_tests/qbcfgtabpagebackends.ui, pyuic/tests/other_tests/qbcfgtabpageusergen.ui, pyuic/tests/other_tests/qbcfgtabpageusers.ui, pyuic/tests/other_tests/qbcheckfiletypepage.ui, pyuic/tests/other_tests/qbjobview.ui, pyuic/tests/other_tests/qbmapaccount.ui, pyuic/tests/other_tests/qbpickstartdate.ui, pyuic/tests/other_tests/qbprintdialog.ui, pyuic/tests/other_tests/qbprogress.ui, pyuic/tests/other_tests/qbselectbackend.ui, pyuic/tests/other_tests/qbselectbank.ui, pyuic/tests/other_tests/qbselectfiletypepage.ui, pyuic/tests/other_tests/qbselectprofilepage.ui, pyuic/tests/other_tests/qbselectsourcepage.ui, pyuic/tests/other_tests/qbsimplebox.ui, pyuic/tests/other_tests/selectfile.ui, pyuic/tests/other_tests/selectmode.ui, pyuic/tests/palette.ui, pyuic/tests/pixmap.ui, pyuic/tests/qcombobox.ui, pyuic/tests /qlistwidget-qstackedwidget.ui, pyuic/tests/qtablewidget.ui, pyuic/tests/qtabwidget.ui, pyuic/tests/qtoolbox.ui, pyuic/tests/qtreewidget.ui, pyuic/tests/richtext.ui, pyuic/tests/shortcut.ui, pyuic/tests/showqtui.cpp, pyuic/tests/showqtui.pro, pyuic/tests/simpledialog.ui, pyuic/tests/simplewidgets.ui, pyuic/tests/sizes.ui, pyuic/tests/sliders.ui, pyuic/tests/spacers.ui, pyuic/tests/splitter.ui, pyuic/tests/table.ui, pyuic/tests/taborder.ui, pyuic/tests/testsuite.py, pyuic/tests /tooltip-whatsthis.ui, pyuic/tests/tree.ui, pyuic/tests/views.ui, pyuic/tests/wiggly.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/loader.py, pyuic/uic/objcreator.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py, test/tests/pyuic/__init__.py, test/tests/pyuic/test_loadUiType.py, test/tests/pyuic/ui/simple.ui, test/ui/about.ui, test/ui/combo.ui, test/ui/designerTest.ui, test/ui/pyqt4-font-test.ui: More pyuic refactoring. Removed the old pyuic tests and started to add new unittest-based ones. [467e2e685374] * Makefile, pyuic/uic/driver.py, pyuic/uic/pyuic.py, pyuic/uic/v2_handler.py, pyuic/uic/v3_handler.py: Started to refactor pyuic to work with both Python v2 and v3. [570f76ceda8b] * examples/desktop/screenshot.py, examples/tools/qtdemo/examples.xml, examples/widgets/screenshot.py, examples/widgets/scribble.py, examples/widgets/shapedclock.py, examples/widgets/sliders.py, examples/widgets/spinboxes.py, examples/widgets/styles.py, examples/widgets/tetrix.py: Updated the screenshot.py, scribble.py, shapedclock.py, sliders.py, spinboxes.py, styles.py and tetrix.py examples. [8bfed1ba304c] * examples/widgets/digitalclock.py, examples/widgets/groupbox.py, examples/widgets/imageviewer.py, examples/widgets/lineedits.py: Updated the digitalclock.py, groupbox.py, imageviewer.py and lineedits.py examples. [6aad1a157660] 2009-03-26 phil * PyQt4.msp, examples/widgets/analogclock.py, examples/widgets/calculator.py, examples/widgets/charactermap.py, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera_storage.cpp, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_misc.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_qmetaobject.cpp, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_shared.h, qpy/QtCore/qpycore_types.cpp: Switched to the new /Encoding/ annotation. Updated the analogclock.py, calculator.py and charactermap.py examples. [743122233eae] 2009-03-25 phil * doc/pyqt4ref.txt, lib/configure.py: Fixed a problem with configure.py getting the user to agree to the license with Python v3. Fixed a documentation bug. [132ee0035aa6] 2009-03-24 phil * examples/widgets/wiggly.py, examples/widgets/windowflags.py: Updated the wiggly.py and windowflags.py examples. [f3886e51dfbc] * examples/widgets/tooltips/images/square.png, examples/widgets/tooltips/tooltips.py: Updated the tooltips.py example. [0d85b4efa616] * examples/widgets/movie/animation.mng, examples/widgets/movie/icons/eject.png, examples/widgets/movie/icons /play-pause.png, examples/widgets/movie/icons/quit.png, examples/widgets/movie/icons/stop.png, examples/widgets/movie/movie.py, examples/widgets/movie/movie.qrc: Updated the movie.py example. [4bfa7a51352d] * Makefile, examples/widgets/icons/icons.py, examples/widgets/icons/images/designer.png, examples/widgets/icons/images/find_normal.png, examples/widgets/icons/images/monkey_off_128x128.png, examples/widgets/icons/images/qt_extended_16x16.png, examples/widgets/icons/images/qt_extended_32x32.png, examples/widgets/icons/images/qt_extended_48x48.png, examples/widgets/icons/images/qtopia_16x16.png, examples/widgets/icons/images/qtopia_32x32.png, examples/widgets/icons/images/qtopia_48x48.png: Updated the icons.py example. [a68f022db6be] * Makefile, qpy/QtCore/qpycore_chimera.cpp: Fixed the storing of flags and enums in a QVariant. [8d0912575717] * PyQt4.msp, Roadmap.rst, examples/dialogs/classwizard/classwizard.py, examples/dialogs/extension.py, examples/dialogs/findfiles.py, examples/dialogs/standarddialogs.py, examples/dialogs/tabdialog.py, examples/dialogs/trivialwizard.py: Updated the remaining dialogs examples. [8448f8288600] 2009-03-23 phil * PyQt4.msp, examples/dialogs/classwizard/classwizard.py, examples/dialogs/classwizard/classwizard.qrc, examples/dialogs/classwizard/images/background.png, examples/dialogs/classwizard/images/banner.png, examples/dialogs/classwizard/images/logo1.png, examples/dialogs/classwizard/images/logo2.png, examples/dialogs/classwizard/images/logo3.png, examples/dialogs/classwizard/images/watermark1.png, examples/dialogs/classwizard/images/watermark2.png, examples/dialogs/complexwizard.py, examples/dialogs/configdialog/configdialog.py, examples/dialogs/simplewizard.py, examples/dialogs/trivialwizard.py, examples/tools/qtdemo/examples.xml: QLatin1String will now accept an Python v3 string (so long as it can be encoded as Latin-1). Added the classwizard.py example. [554bd87e1b7b] * examples/desktop/systray/systray.py: Updated the systray.py example. [2c1164987f00] * examples/activeqt/webbrowser/webbrowser.py, examples/demos/embeddeddialogs/embeddeddialogs.py, examples/xml/dombookmarks/dombookmarks.py, examples/xml/saxbookmarks/saxbookmarks.py: Updated the xml, activeqt and demo examples. [4cf61a0f9277] * Makefile, PyQt4.msp: Reverted the changes that removed the use of sipSelfWasArg in handwritten code. [c7245a8d9b37] * Makefile, examples/tools/codecs/codecs.py, examples/tools/i18n/i18n.py, examples/tools/settingseditor/inifiles/licensepage.ini, examples/tools/settingseditor/inifiles/qsa.ini, examples/tools/settingseditor/inifiles/troll.ini, examples/tools/settingseditor/settingseditor.py: Updated the settingseditor.py example. [117644ae9de4] 2009-03-22 phil * PyQt4.msp, examples/tools/codecs/codecs.py, examples/tools/codecs/encodedfiles/utf-16.txt, examples/tools/regexp.py: A QByteArray can now be used whenever a QString is expected. Fixed problems with QTextStream. Updated the codecs.py and regexp.py examples. [87a16f13be23] * PyQt4.msp, examples/designer/calculatorform/calculatorform.py, examples/designer/plugins/python/analogclockplugin.py, examples/designer/plugins/python/bubbleswidgetplugin.py, examples/designer/plugins/python/counterlabelplugin.py, examples/designer/plugins/python/datetimeeditplugin.py, examples/designer/plugins/python/helloglwidgetplugin.py, examples/designer/plugins/python/highlightedtexteditplugin.py, examples/designer/plugins/python/multipagewidgetplugin.py, examples/designer/plugins/python/polygonwidgetplugin.py, examples/designer/plugins/python/pydemoplugin.py, examples/designer/plugins/python/pythonconsoleplugin.py, examples/designer/plugins/widgets/analogclock.py, examples/designer/plugins/widgets/bubbleswidget.py, examples/designer/plugins/widgets/counterlabel.py, examples/designer/plugins/widgets/datetimeedit.py, examples/designer/plugins/widgets/helloglwidget.py, examples/designer/plugins/widgets/highlightedtextedit.py, examples/designer/plugins/widgets/multipagewidget.py, examples/designer/plugins/widgets/polygonwidget.py, examples/designer/plugins/widgets/pydemo.py, examples/designer/plugins/widgets/pythonconsolewidget.py, examples/tools/qtdemo/displayshape.py, examples/tools/qtdemo/displaywidget.py, examples/tools/qtdemo/launcher.py, examples/tools/qtdemo/qtdemo.py: Fixed Python v3 portability issues in the Designer plugins example. Updated the qtdemo example to the new connection API. [7c35ab0f0423] 2009-03-21 phil * Makefile, PyQt4.msp: Added print() and exec() methods to suplement the existing print_() and exec_() methods for Python v3. [c6c3855a57c6] 2009-03-20 phil * Makefile, PyQt4.msp, test/tests/classes/test_QVariant.py, test/tests/misc/test_repr.py: Fixed some portability issues in the unit tests. All now run with both Python v2 and v3. [3fe4cc383ac4] * PyQt4.msp: Fixed the Python v3 buffer protocol support for QByteArray. [c566c88ddea9] * PyQt4.msp: Added some more /Byte/ annotations to QChar. [3e90cd3b2225] * PyQt4.msp: Added /Byte/ to QLatin1Char. [9e40bdf76c34] * PyQt4.msp: Applied the new /Byte/ annotation where seemed appropriate. [05320d51d561] 2009-03-18 phil * test/runtests.py, test/tests/classes/v2_unicode.py, test/tests/classes/v3_unicode.py, test/tests/misc/v2_unicode.py, test/tests/misc/v3_unicode.py, test/v2_unicode.py, test/v3_unicode.py: More unit test fixes. [2c9c6320e0b3] * qpy/QtCore/qpycore_shared.h, test/tests/classes/test_QVariant.py, test/tests/classes/v2_unicode.py, test/tests/classes/v3_unicode.py, test/tests/metaobject/test_connectslotsbyname.py, test/tests/misc/test_repr.py, test/tests/misc/v2_unicode.py, test/tests/misc/v3_unicode.py: Started to fix the unit tests for Python v3. [fc22a570ab35] * PyQt4.msp, build.py: Added Python v3 buffer support for QByteArray. [9eddba97bd2e] * PyQt4.msp, lib/configure.py: Fixed QByteArray.__str__() and QString.__unicode__() for Python v3. [b47a7711fe31] * PyQt4.msp, qpy/QtCore/qpycore_misc.cpp: Added Python v3 support for QObject.trUtf8(). [a912e10a77fb] 2009-03-17 phil * Makefile, lib/configure.py, qpy/QtCore/qpycore_sip.h: Some fixes for consolidated module support - nearly working but not quite. [ae35c7513226] * Makefile, examples/activeqt/webbrowser/mainwindow_rc.py, examples/demos/embeddeddialogs/embeddeddialogs_rc.py, examples/desktop/systray/systray_rc.py, examples/dialogs/configdialog/configdialog_rc.py, examples/draganddrop/draggableicons/draggableicons_rc.py, examples/draganddrop/draggabletext/draggabletext_rc.py, examples/draganddrop/fridgemagnets/fridgemagnets_rc.py, examples/draganddrop/puzzle/puzzle_rc.py, examples/graphicsview/collidingmice/collidingmice.py, examples/graphicsview/collidingmice/mice_rc.py, examples/graphicsview/collidingmice/mice_rc2.py, examples/graphicsview/diagramscene/diagramscene_rc.py, examples/graphicsview/dragdroprobot/dragdroprobot_rc.py, examples/graphicsview/padnavigator/padnavigator_rc.py, examples/itemviews/chart/chart_rc.py, examples/itemviews/pixelator/images.qrc, examples/itemviews/pixelator/pixelator.qrc, examples/itemviews/pixelator/pixelator_rc.py, examples/itemviews/puzzle/puzzle_rc.py, examples/itemviews/simpletreemodel/simpletreemodel_rc.py, examples/mainwindows/application/application_rc.py, examples/mainwindows/dockwidgets/dockwidgets_rc.py, examples/mainwindows/mdi/mdi_rc.py, examples/mainwindows/sdi/sdi_rc.py, examples/network/ftp/ftp_rc.py, examples/opengl/textures/textures_rc.py, examples/painting/basicdrawing/basicdrawing_rc.py, examples/painting/svgviewer/svgviewer_rc.py, examples/richtext/syntaxhighlighter/syntaxhighlighter_rc.py, examples/tools/i18n/i18n_rc.py, examples/tools/qtdemo/qtdemo.py, examples/tools/qtdemo/qtdemo_rc.py, examples/tools/qtdemo/qtdemo_rc2.py, examples/widgets/movie/movie_rc.py, examples/widgets/tooltips/tooltips_rc.py, lib/configure.py: Changed the build system so that pyrcc4 is run against all the example .qrc files so that the generated code is correct for the version of Python the user is using. [b0938521d16a] 2009-03-16 phil * Makefile, PyQt4.msp, designer/pluginloader.cpp, doc/pyqt4ref.txt, examples/graphicsview/collidingmice/collidingmice.py, examples/graphicsview/collidingmice/mice_rc.py, examples/graphicsview/collidingmice/mice_rc2.py, examples/tools/qtdemo/launcher.py, examples/tools/qtdemo/qtdemo.py, examples/tools/qtdemo/qtdemo_rc.py, examples/tools/qtdemo/qtdemo_rc2.py, pyrcc/main.cpp, pyrcc/rcc.cpp, pyrcc/rcc.h, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_misc.cpp, qpy/QtCore/qpycore_misc.h: Added the -py2 flag to pyrcc4. Complete the porting of all handwritten code to Python v3. Still some rough edges, but most things seem to work fine. [26bb73a689c0] * PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_misc.cpp: Safety commit of the port of the remaining hand-written code to Python v3. [04262cae5fff] 2009-03-15 phil * Makefile, PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_misc.cpp: Ported all the handwritten __repr__ code to Python v3. [5f680676ee41] * Makefile, PyQt4.msp, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_misc.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp: Finished the porting of PyInt_* and Py_TYPE(). [c745243afffa] * qpy/QtCore/qpycore_chimera.cpp: Ported the handwritten code outside of MetaSIP to Python v3. [f5f783c9072a] 2009-03-14 phil * Makefile, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_misc.cpp, qpy/QtCore/qpycore_misc.h, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_qmetaobject.cpp, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: More porting of handwritten code to Python v3. [8430bb9c4764] * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Started to port the handwritten code to Python v3. [dda9f3cdc75f] * Makefile, lib/configure.py, lib/pyqtconfig.py.in: The build system will now run under both Python v2 and v3. [4fa0bf2e2e84] 2009-03-13 phil * Makefile, PyQt4.msp: Made sure that any class that is involved with parent/child relationships is derived from sip.wrapper. [82d097715507] 2009-03-11 phil * Makefile, qpy/QtCore/qpycore_chimera_storage.cpp: Fixed the handling of proxy signals with const reference arguments. [18013deab80b] * Makefile, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtslot.cpp: Made sure PyQt builds against Python v2.4 by using the new SIP_PYMETHODDEF_CAST compatibility macro. [d24bc7306c11] 2009-03-09 phil * QAxContainer/qaxobject.sip: Updated the QAxContainer sub-class code. [9a9e722f64af] * NEWS: Updated the NEWS file. [ca1904d8005d] * Roadmap.rst, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_types.h: Removed all remaining compiler warning messages. [6e45615ab278] 2009-03-08 phil * Makefile, PyQt4.msp, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h: Added support for QVariantHash - that completes the updates for Qt v4.5. [a04b668cafa1] * doc/pyqt4ref.txt, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h, test/tests/metaobject/test_invoke.py, test/tests/metaobject/test_pyqtslot.py: Backed out the support for decorating __init__ with pyqtSlot. The way that support for QMetaObject::newInstance() has been implemented is broken as there is no way for the code that creates the new instance to get access to the Python type that is to be created. [5812ced581cd] * Makefile, PyQt4.msp, doc/pyqt4ref.txt, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h, test/tests/metaobject/test_invoke.py, test/tests/metaobject/test_pyqtslot.py: pyqtSlot() can now be used with __init__ methods to define new constructors to Qt's meta-object system. [56f83e6fed2c] * PyQt4.msp: Added a missing /Supertype/ annotation from QLayoutItem. [c3c273b77290] 2009-03-07 phil * PyQt4.msp, test/tests/metaobject/test_invoke.py: Added the new QMetaMethod.invoke() methods. Added the test (but not yet the support for) the new QMetaObject.newInstance(). [6653cf308428] 2009-03-06 phil * PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/qtscript.html#details, doc/pyqtdoc/qtscripttools.html#details, lib/configure.py, lib/pyqtconfig.py.in, pyqtdoc/renderer.py: Added the QtScriptTools module. [b0f17ba7bb08] * PyQt4.msp, lib/mksccode.py: Updated the QtNetwork sub-class convertor code. [3c55189711ba] * PyQt4.msp: Finished updating the QtGui module for Qt v4.5. [4e5f88068cc8] * PyQt4.msp: More of the QtGui module. [c6d344bd2d65] 2009-03-05 phil * PyQt4.msp: Updated a bit more of QtGui. [7723dd8e40eb] * PyQt4.msp: Updated about a half of the QtGui module for Qt v4.5. [bd9262707e91] * PyQt4.msp: Updated the QtNetwork module for Qt v4.5. [bf02a21012cb] * PyQt4.msp: Updated the QtWebKit module for Qt v4.5. [4a661c286615] * PyQt4.msp: Updated the phonon module for Qt v4.5. [540d02a8a358] * PyQt4.msp: Updated the QtScript and QtHelp modules for Qt v4.5. [e1929a7bba62] * PyQt4.msp, lib/configure.py: Updated the QtDesigner and QtXmlPatterns modules for Qt v4.5. [f9b382b7ca21] 2009-03-04 phil * examples/phonon/capabilities.py, examples/phonon/musicplayer.py: Converted the phonon examples to the new connect API. [365aae134696] * PyQt4.msp: Updated QtAssistant, QtSvg, QtOpenGL, QtSql, QtTest and QtXml for Qt v4.5. [aa69b0d4e09f] * qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp: Removed some warning messages with some casts. [0c4853b96f31] * Makefile, PyQt4.msp, build.py, doc/pyqtdoc/PyQt4.xfm, lib/configure.py, pyuic/uic/widget-plugins/phonon.py: Updated QtCore for (the easy bits of) Qt v4.5. Updated pyuic to handle the Phonon widgets. [b270cf897061] 2009-03-03 phil * Makefile, PyQt4.msp, Roadmap.rst: Added the new /KeepReference/ annotation to the methods identified in the Roadmap. [e618459d0a01] * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h: Fixes to the new types handling so that the musicplayer example works again. [7d30552271c8] 2009-03-02 phil * PyQt4.msp: Added a missing /Factory/ annotation to QNetworkAccessManager::createRequest(). [cec930721f43] * Makefile, qpy/QtCore/qpycore_chimera.cpp: Fixed a typo that affected the conversion of long longs. [88f19863bf8a] * Makefile, NEWS, PyQt4.msp, test/tests/metaobject/test_connections.py, test/tests/metaobject/test_connections_old_style.py, test/tests/metaobject/test_pyqtsignal.py: Added the unit tests for the new-style signal/slot connections. [bddf5285d2d5] 2009-03-01 phil * Roadmap.rst, doc/pyqt4ref.txt, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_types.cpp: Implemented support for overloaded bound signals. Updated the roadmap and the documentation. [e1695920d84a] * qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: Implemented the disconnect() method of bound signals. [53661300240d] 2009-02-28 phil * qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_sip.h, qpy/QtCore/qpycore_sip_helpers.cpp, qpy/QtCore/qpycore_sip_helpers.h: Implemented emit() for bound signals. [9c8aeb8e74ea] * examples/tutorial/t1.py, examples/tutorial/t10.py, examples/tutorial/t11.py, examples/tutorial/t12.py, examples/tutorial/t13.py, examples/tutorial/t14.py, examples/tutorial/t2.py, examples/tutorial/t3.py, examples/tutorial/t4.py, examples/tutorial/t5.py, examples/tutorial/t6.py, examples/tutorial/t7.py, examples/tutorial/t8.py, examples/tutorial/t9.py, qpy/QtCore/qpycore_chimera_signature.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_qmetaobject_helpers.cpp: Implemented connect() on bound signals for proxied slots. Updated the example tutorials for the new connection API. [d9c99d75443c] 2009-02-27 phil * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_chimera_signature.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: The bound signal connect() now handles Qt signals and slots. [471815c59539] 2009-02-26 phil * qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp: Added most of the argument parsing for the methods ofbound signals. [b738ba8fd5f5] 2009-02-25 phil * Makefile, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h: Updated the external attribute getter code for th emodified API. [62ffb0888e7f] * Makefile, PyQt4.msp, doc/pyqt4ref.txt: Changes to handwritten code now that only base implementations are called in generated method code. [004b3f5b5d9d] 2009-02-22 phil * PyQt4.msp, test/tests/classes/test_QVariant.py: Decided the change the handling of QVariant slightly so that Python sub-classes of classes that QVariant supports are wrapped as Python objects so that no data is lost. [b6f6434b227e] * Roadmap.rst, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, test/tests/classes/test_QVariant.py, test/tests/metaobject/test_pyqtsignal.py: Completed the implementation of pyqtSignal. Fixed the signature strings so that they will be correct for connecting signals. (Has this changed the QVariant conversion behaviour?) [2b25cf7719cd] * Makefile, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtboundsignal.cpp, qpy/QtCore/qpycore_pyqtboundsignal.h, qpy/QtCore/qpycore_pyqtsignal.cpp: Added the stub of the pyqtBoundSignal type. pyqtSignal will now act as a descriptor and will create pyqtBoundSignal instances when required. [c2650ab3b110] 2009-02-21 phil * Makefile, PyQt4.msp, pyqtdoc/renderer.py, test/tests/metaobject/test_pyqtsignal.py: The documentation generator now adds a paragraph for default signal overloads. Changed the order of signals as necessary to ensure the default is sensible. [519d77d8424e] 2009-02-20 phil * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_types.cpp, test/tests/metaobject/test_property.py, test/tests/metaobject/test_pyqtproperty.py, test/tests/metaobject/test_pyqtsignal.py: Implemented pyqtSignal() (excluding the support for native Qt signals). [afb357ad5a74] 2009-02-19 phil * Makefile, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtsignal.cpp, qpy/QtCore/qpycore_pyqtsignal.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Added the stubs for pyqtSignal. [060013fcf210] 2009-02-17 phil * Makefile, doc/pyqt4ref.txt, examples/designer/plugins/python/multipagewidgetplugin.py, examples/designer/plugins/widgets/multipagewidget.py, test/tests/metaobject/test_connectslotsbyname.py: Switched to using unicode rather than 'QString' in all type definitions. [ea3c330f5f4a] 2009-02-16 phil * Roadmap.rst, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp, test/tests/metaobject/test_connections.py, test/tests/metaobject/test_connectslotsbyname.py, test/tests/metaobject/test_invoke.py: The pyqtSlot() decorator can now be chained. Added unit tests for QMetaObject.connectSlotsByName(). [f52dda98203c] * PyQt4.msp, Roadmap.rst, doc/pyqt4ref.txt, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_pyqtslot.cpp, test/tests/metaobject/test_pyqtsignature.py, test/tests/metaobject/test_pyqtslot.py, test/tests/metaobject/test_slot.py: Removed the support for the pyqtSignature() API from pyqtSlot(). [9d4a7696ce8f] * Makefile, PyQt4.msp, Roadmap.rst, doc/pyqt4ref.txt, examples/activeqt/webbrowser/webbrowser.py, examples/designer/calculatorform/calculatorform.py, examples/designer/plugins/python/highlightedtexteditplugin.py, examples/designer/plugins/python/multipagewidgetplugin.py, examples/designer/plugins/widgets/analogclock.py, examples/designer/plugins/widgets/bubbleswidget.py, examples/designer/plugins/widgets/counterlabel.py, examples/designer/plugins/widgets/helloglwidget.py, examples/designer/plugins/widgets/multipagewidget.py, examples/designer/plugins/widgets/polygonwidget.py, examples/designer/plugins/widgets/pydemo.py, examples/pyuic/compile- on-the-fly.py, examples/pyuic/load_ui2.py, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_chimera_signature.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, test/tests/metaobject/test_connections.py, test/tests/metaobject/test_invoke.py, test/tests/metaobject/test_slot.py: Added support for pyqtSlot() and it's type-based API. [84f8944f4198] 2009-02-13 phil * PyQt4.msp: Removed the use of %SIPOptions. [9e7da45535aa] * Makefile, PyQt4.msp, qpy/QtCore/qpycore_chimera.cpp: Fixed reference count bugs in all QList mapped code introduced when adding support fro sequences. QStandardItem now uses sip.wrapper as its super-type as it has children. [70da5605ee98] 2009-02-12 phil * qpy/QtCore/qpycore_sip_helpers.cpp: Removed the last FIXME. [554727db0889] * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_chimera_signature.cpp: The results of parsing a list of argument types is now cached. [cd24c480c3b0] 2009-02-11 phil * PyQt4.msp, QAxContainer/qaxbase.sip, QAxContainer/qaxobject.sip, QAxContainer/qaxwidget.sip, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Changed Chimera to take the flag flag from the Pyt4-specific type structure. Changed TypeFlags to PyQt4Flags. Changed NoQMetaObject to PyQt4NoQMetaObject. [419e41bb8e5b] * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_init.cpp: Removed the need for the wrapped types to be registered with Qt. [b0183d038d4e] * Makefile, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_chimera_storage.cpp: Tidied up the Chimera API a little. [806621a42bd6] 2009-02-07 phil * Makefile, PyQt4.msp, qpy/QtCore/qpycore_chimera.cpp: Moved the implementation of sipAssignType() to PyQt. [f80f17aab44b] 2009-02-03 phil * Makefile, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h: Removed the redundant pysignal() from PyQtProxy. [c8823651ad11] * PyQt4.msp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.h, qpy/QtCore/qpycore_sip.h, qpy/QtCore/qpycore_sip_helpers.cpp, test/tests/classes/test_QObject.py: Fixed the support for QObject.receivers() and added a test. [d5ff8c73d617] 2009-02-02 phil * PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: More improvements to the QObject.sender() support. [1414e16c56e4] 2009-02-01 phil * NEWS, PyQt4.msp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: Fixed the QObject::sender() support. [c8cfa8bc53d8] 2009-01-29 phil * Makefile, PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_qmetaobject.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Added the registering of int types from sip. [5db0e3fa8bf5] 2009-01-28 phil * qpy/QtCore/qpycore_chimera.cpp: The type parsing now uses sipResolveTypedef(). [344e043a2334] * PyQt4.msp: Removed the internal QCoreApplication.unixSignal(). [9030119cbe16] 2009-01-27 phil * Makefile, PyQt4.msp: Added the QInputContextFactory class. [7915257b7c9e] * PyQt4.msp, qpy/QtCore/qpycore_chimera.cpp, test/tests/classes/test_QVariant.py: Changed the handling of QVariantList and QVariantMap so that they are only used if the values are explicitly QVariants - Chimera no longer automatically creates QVariants as necessary. This is because: - explicit QVariants were being wrapped inside Chimera-created QVariants causing surprising results when it was reversed - more consistent (but not exactly the same) as existing behaviour - the conversions now go through what will become version dependent APIs, ie. no changes should be needed when the QVariant v2 API is introduced. There are some changes in behaviour, ie. the type() of the QVariant may be different in some cases. [2ca2cbb12e16] 2009-01-25 phil * qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Debugged the latest refactoring - all unit tests now run again. [a1f0b7a91b89] * Makefile, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_chimera.cpp, qpy/QtCore/qpycore_chimera.h, qpy/QtCore/qpycore_chimera_signature.cpp, qpy/QtCore/qpycore_chimera_storage.cpp, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_qmetaobject.cpp, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qvariant.cpp, qpy/QtCore/qpycore_sip_helpers.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Some more renaming of classes. [0580157070f7] * Makefile, PyQt4.msp, qpy/QtCore/qpycore_sip_helpers.cpp, qpy/QtCore/qpycore_types.cpp: Fixed outstanding compilation issues. [0fe90f91880c] 2009-01-24 phil * qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_qmetaobject.cpp, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_signature.cpp, qpy/QtCore/qpycore_signature.h, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Another safety commit. [b725cd796dfb] * qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_convertors.cpp, qpy/QtCore/qpycore_convertors.h, qpy/QtCore/qpycore_qobject_helpers.cpp: Safety commit of latest refactoring. [f9f247b1f79e] 2009-01-19 phil * Roadmap.rst, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_signature.cpp, qpy/QtCore/qpycore_signature.h, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Safety commit of latest refactoring. The 'result' argument to pyqtSignature() can now be a Python type object as well as a string. [0a9e5425e63a] 2009-01-18 phil * Makefile, PyQt4.msp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: Safety commit of the start of the last lot of type conversion code refactoring. [0a38757d6619] 2009-01-16 phil * pyuic/uic/uiparser.py: Fixed a pyuic bug that affected populated model widgets in a main window. [40659d04bb89] * Makefile, examples/graphicsview/diagramscene/diagramscene.py: Fixes for the diagramscene.py example from Lieven Buts. [98d165956b04] 2009-01-13 phil * qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Replaced sipFreeConnection() with sipFreeSipslot(). [c31d3f5547bc] * qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: More refactoring to get rid of sipSlotConnection. [a44f33af5126] 2009-01-12 phil * PyQt4.msp, qpy/QtCore/qpycore_sip_helpers.cpp: All the parsing of signatures is now in PyQt. [d35ce3c2c7ca] 2009-01-11 phil * PyQt4.msp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Replaced sipConvertRx() with sipConvertRxEx(). [21a24c1875c9] * qpy/QtCore/qpycore_chimeratype.cpp, test/runtests.py: All tests now run again. [b095229da1d6] * qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qmetaobject.cpp: The merged storage code is now debugged. [14ddca5289f0] * qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qmetaobject.cpp, qpy/QtCore/qpycore_sip_helpers.cpp, test/runtests.py: Safety commit of merged value storage code. [ffab72219604] 2009-01-10 phil * Makefile, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: Fixed compilation issues with the latest changes. [16afecc3a4ab] * qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_convertors.cpp, qpy/QtCore/qpycore_convertors.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Further safety commit. [22c6708733ff] 2009-01-09 phil * PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_sip_helpers.cpp: Safety commit of partial refactoring of the Qt signal support. [bb90df57a957] * test/tests/metaobject/test_connections.py: Added the rest of the signal/slot connection unittests. [9f67d79ab4df] 2009-01-08 phil * Makefile, test/tests/metaobject/test_connections.py: Added the start of the signal/slot connection unit tests. [62446ffb1003] 2009-01-04 phil * PyQt4.msp: Removed the external class references no longer needed by the QVariant conversion code. [35311f9b2d3b] * qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qvariant.cpp: QVariant now uses ChimeraType for both conversions. [adeed0a07087] * doc/pyqt4ref.txt, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qvariant.cpp, test/tests/classes/test_QVariant.py: Converting to a QVariant now uses ChimeraType. [0daefb51a44d] 2009-01-03 phil * qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_qmetaobject.cpp: Specifying a Python long object type now maps to a C++ int (rather than a qlonglong) so that the behaviour will be consistent with Python3. [31889f393f71] 2009-01-02 phil * NEWS, PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_qmetaobject.cpp, test/tests/metaobject/test_invoke.py: Q_ARG() and Q_RETURN_ARG() now use ChimeraType and allow the "type" argument to be a Python type object. Added unit tests for the above functionality. [f697f8bc4b5e] 2009-01-01 phil * NEWS, lib/LICENSE.GPL2, lib/LICENSE.GPL3, lib/LICENSE.commercial.short, lib/LICENSE.eval.short, lib/LICENSE.gpl.short, lib/LICENSE.internal, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_types.cpp, test/tests/metaobject/test_property.py: Updated the year on copyright notices. pyqtProperty() will now support any Python or C++ type. [36fb761345cc] 2008-12-31 phil * qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtpyobject.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp: Safety checkin for the ChimeraType support for pointer classes. [7e8f4655d054] * qpy/QtCore/qpycore_pyqtproperty.cpp, test/tests/metaobject/test_invoke.py, test/tests/metaobject/test_property.py: Extended the unit tests for pyqtProperty() to include pointer-class types (not yet working). Added the unit tests for QMetaObject.invokeMethod(). [fdba873e4c23] 2008-12-30 phil * Makefile, doc/pyqt4ref.txt, examples/designer/plugins/widgets/analogclock.py, examples/designer/plugins/widgets/bubbleswidget.py, examples/designer/plugins/widgets/counterlabel.py, examples/designer/plugins/widgets/datetimeedit.py, examples/designer/plugins/widgets/helloglwidget.py, examples/designer/plugins/widgets/highlightedtextedit.py, examples/designer/plugins/widgets/multipagewidget.py, examples/designer/plugins/widgets/polygonwidget.py, examples/designer/plugins/widgets/pydemo.py, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_types.cpp, test/tests/metaobject/test_property.py: Debugged the support for pyqtProperty's use of Python type objects. Added unit tests for the above. Converted all the examples to use Python type objects rather than names. [99c5ec07045c] * PyQt4.msp, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qvariant.cpp, qpy/QtCore/qpycore_sip_helpers.cpp, qpy/QtCore/qpycore_types.cpp: More changes to the ChimeraType. All unit tests pass again. [2f7019cb006a] 2008-12-29 phil * PyQt4.msp, qpy/QtCore/qpycore_convertors.cpp: Migrated from sipEnum_* to sipType_*. [50393d603bf7] 2008-12-27 phil * qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp: Minor changes needed by SIP renaming pyqt4TypeDef to pyqt4ClassTypeDef. [2f63100df3b8] 2008-12-24 phil * Makefile, PyQt4.msp, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_post_init.cpp: [fb65b566bff1] * qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qvariant.cpp, qpy/QtCore/qpycore_types.cpp: Changes caused by the removal of the Qt meta-type id from the type structure. [435b60b3ad88] * Makefile, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: pyqtProperty now uses ChimeraType. (Still lots of FIXMEs though.) [7bd3491143ce] 2008-12-20 phil * PyQt4.msp, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qvariant.cpp, qpy/QtCore/qpycore_types.cpp: The Qt meta-type id is now held in the PyQt4-specific generated type structure. [d7c579f0b445] * qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp: The dynamic meta-object of a Python QObject sub-class is now created when the type is created rather than lazily when QObject.metaObject() is called. [8a11e03e3f75] * PyQt4.msp, qpy/QtCore/qpycore_qobject_helpers.cpp: Use pyqtTypeDef instead of sipTypeDef. [63b200740643] 2008-12-19 phil * qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Defined the pyqtWrapperType meta-type as a sub-class of sipWrapper type that contains the dynamic meta-object for for QObject dereived classes. [156b15621820] * qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.h: Changed the QObject helpers to use sipTypeDefs rather than sipWrapperTypes. [c58dca1821be] * PyQt4.msp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Migrated from the deprecated format characters to sipBuildResult(), sipCallMethod() and sipParseResult(). Removed all remaining uses of sipClass_*. [259cfa107347] 2008-12-17 phil * PyQt4.msp: Migrated from the deprecated 'C' format character to sipParseResult(). [1cf914d974eb] * PyQt4.msp: Removed the uses of sipClass_* in handwritten code that aren't required by the current SIP API. [0e2502e17259] * PyQt4.msp, examples/graphicsview/diagramscene/diagramscene.py, lib/mksccode.py: Migrated the sub-class convertor code to use sipType_* rather than sipClass_*. Changed the super-class of non-QObject derived classes that take part in parent/child relationships. [d67793cbcbb0] 2008-12-14 phil * PyQt4.msp, qpy/QtCore/qpycore_convertors.cpp, qpy/QtCore/qpycore_qmetaobject.cpp, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qvariant.cpp: Migrated to sipConvertFromType() and sipConvertFromNewType(). [79980f24855f] * PyQt4.msp, qpy/QtCore/qpycore_convertors.cpp, qpy/QtCore/qpycore_convertors.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qvariant.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Migrated to sipForceConvertToType(). [1b5e832e5069] * PyQt4.msp, qpy/QtCore/qpycore_qvariant.cpp: Migrated to sipConvertToType(). [4b355eb7a73d] * PyQt4.msp, qpy/QtCore/qpycore_qvariant.cpp: Migrated to the new sipCanConvertToType(). [247532ba0238] 2008-12-13 phil * PyQt4.msp, qpy/QtCore/qpycore_convertors.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qvariant.cpp: Migrated to the new sipReleaseType(). [ed4104c85ce2] * PyQt4.msp: Migrated from sipGetWrapper() to sipGetPyObject(). [3d383a4e1f36] * Makefile, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qvariant.cpp: More moves from sipClass_* to sipType_*. [d8a45691966f] 2008-12-12 phil * qpy/QtCore/qpycore_qvariant.cpp: Used the new sipTypePyTypeObject() where appropriate. [a51c2b9bf14c] 2008-12-08 phil * Makefile, PyQt4.msp, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_convertors.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_qvariant.cpp: Started the port from sipClass_* to sipType_*. [9bd2f81757a1] 2008-12-07 phil * PyQt4.msp: Removed the use of the deprecated sipClassName(). [b1fd732a580e] * qpy/QtCore/qpycore_qmetaobject.cpp: Minor change caused by the removal of sipMappedType from SIP. PyQt's usage of it should disappear as the result of future refactoring. [5fe344f0ede5] 2008-12-06 phil * Makefile, PyQt4.msp, qpy/QtCore/qpycore_qmetaobject.cpp: Fixed bugs in handwritten code related to sip.simplewrapper. [02804ac009e5] * Makefile, PyQt4.msp, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: More changes reflecting the changed SIP meta-type, super-type support. [da2970276a50] 2008-12-03 phil * Makefile, Roadmap.rst, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.h, qpy/QtCore/qpycore_qvariant.cpp: Fixes needed by the new sip.simplewrapper. [19f33bae899e] 2008-12-01 phil * qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: More fixes for the super/meta-type support - everything seems to be working again now. [f4bf32034438] * qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Fixed the PyQt specific sub-types so that they don't crash. [2a4a6a58d69c] 2008-11-30 phil * PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_init.cpp, qpy/QtCore/qpycore_metatypes.cpp, qpy/QtCore/qpycore_types.cpp, qpy/QtCore/qpycore_types.h: Updated the meta-type and super-type support. [f30ab3aca7a0] 2008-11-29 phil * PyQt4.msp: Updated the metatype stuff to conform to the latest SIP changes. [13957e7b667f] 2008-11-27 phil * qpy/QtCore/qpycore_metatypes.cpp: Implemented the PyQt-specific metatypes (though they don't do anything different to the standard one). [a706234d8cd4] 2008-11-26 phil * PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_metatypes.cpp: Added the stubs of the PyQt-specific metatypes. [b4b6bd940da6] 2008-11-23 phil * qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qvariant.cpp: Fixed bugs in ChimeraType so the tests run again. [c8b207174f21] 2008-11-22 phil * Makefile, PyQt4.msp, lib/mksccode.py: Changes needed by the latest SIP where the strings are now const. [cc055bec9855] * Makefile, lib/configure.py, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.h: More on the ChimeraType. [a4bb3c1ea581] 2008-11-18 phil * qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_qvariant.cpp: Safety commit of the developing ChimeraType class. [5676a0d1dd92] 2008-11-17 phil * qpy/QtCore/qpycore_chimeratype.cpp, qpy/QtCore/qpycore_chimeratype.h, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_qvariant.cpp: Added the stubs for the new type parsing. [6917f09d1201] 2008-11-16 phil * PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_qmetaobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_signature.cpp, qpy/QtCore/qpycore_signature.h: Moved the connectSlotsByName() and pyqtSignature() implementations into the support library. [1e4b97cbb7b8] 2008-11-15 phil * qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_monolith.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_sip_helpers.cpp: Completed the initial refactoring to split the monolithic QtCore support code. [b3a7c32bc130] * PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_monolith.cpp, qpy/QtCore/qpycore_pyqtslot.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp: More refactoring. [31948ae382e9] * PyQt4.msp, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_monolith.cpp, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_qobject_helpers.cpp, qpy/QtCore/qpycore_qobject_helpers.h, qpy/QtCore/qpycore_sip.h: More refactoring. [80e0d5856aab] * PyQt4.msp, qpy/QtCore/qpycore.h, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_api.h, qpy/QtCore/qpycore_convertors.cpp, qpy/QtCore/qpycore_convertors.h, qpy/QtCore/qpycore_monolith.cpp, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_pyqtpyobject.cpp, qpy/QtCore/qpycore_pyqtpyobject.h, qpy/QtCore/qpycore_qmetaobject.cpp, qpy/QtCore/qpycore_qstring.cpp, qpy/QtCore/qpycore_qvariant.cpp, qpy/QtCore/qpycore_sip.h, qpy/QtCore/qpycoreapi.h: More refactoring. [1e2297eb8386] * qpy/QtCore/qpycore.h, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_convertors.cpp, qpy/QtCore/qpycore_convertors.h, qpy/QtCore/qpycore_monolith.cpp, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtproperty.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_qmetaobject.cpp: More refactoring. [372f3a53d935] * qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_monolith.cpp, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtproxy.cpp, qpy/QtCore/qpycore_pyqtproxy.h: More refactoring. [a48ba8f91ea7] * qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_convertors.cpp, qpy/QtCore/qpycore_monolith.cpp: More refactoring. [1d0013e18419] 2008-11-14 phil * PyQt4.msp, qpy/QtCore/qpycore.h, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_monolith.cpp, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_pyqtpyobject.cpp, qpy/QtCore/qpycore_pyqtpyobject.h, qpy/QtCore/qpycore_qmetaobject.cpp, qpy/QtCore/qpycore_qstring.cpp, qpy/QtCore/qpycore_qvariant.cpp, qpy/QtCore/qpycoreapi.h: More refactoring of the QtCore support code. [944f2dffe4ff] 2008-11-13 phil * Roadmap.rst: Updated the roadmap. [05f3efa61005] 2008-11-09 phil * qpy/QtCore/qpycore_qvariant.cpp: Forgot to add the split out QVariant code. [0f268e98ceb4] * Makefile, PyQt4.msp, qpy/QtCore/qpycore.h, qpy/QtCore/qpycore_monolith.cpp, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_pyqtpyobject.h, qpy/QtCore/qpycore_qstring.cpp, qpy/QtCore/qpycoreapi.h: Refactored the QString and QVariant code. [51d1a9b80df1] * PyQt4.msp, lib/configure.py, qpy/QtCore/qpycore.h, qpy/QtCore/qpycore.pro, qpy/QtCore/qpycore_monolith.cpp, qpy/QtCore/qpycore_post_init.cpp, qpy/QtCore/qpycore_pyqtproperty.h, qpy/QtCore/qpycore_pyqtproxy.h, qpy/QtCore/qpycore_pyqtpyobject.h, qpy/QtCore/qpycore_qstring.cpp, qpy/QtCore/qpycoreapi.h, qpy/QtDesigner/qpydesigner.pro: Refactored all the Qt signal/slot, metatype, property etc. support into a separate support library. [1941a961f454] 2008-11-08 phil * Makefile, NEWS, PyQt4.msp, QAxContainer/qaxbase.sip, Roadmap.rst, TODO, build.py, designer/pluginloader.cpp, doc/docgen.conf, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/phonon- module.html#details, doc/pyqtdoc/qaxcontainer.html#details, doc/pyqtdoc/qpydesignercontainerextension.html#details, doc/pyqtdoc/qpydesignercustomwidgetcollectionplugin.html#details, doc/pyqtdoc/qpydesignercustomwidgetplugin.html#details, doc/pyqtdoc/qpydesignermembersheetextension.html#details, doc/pyqtdoc/qpydesignerpropertysheetextension.html#details, doc/pyqtdoc/qpydesignertaskmenuextension.html#details, doc/pyqtdoc/qtassistant.html#details, doc/pyqtdoc/qtcore.html#details, doc/pyqtdoc/qtcore.html#pyqtRemoveInputHook, doc/pyqtdoc/qtcore.html#pyqtRestoreInputHook, doc/pyqtdoc/qtdesigner.html#details, doc/pyqtdoc/qtgui.html#details, doc/pyqtdoc/qthelp.html#details, doc/pyqtdoc/qtnetwork.html#details, doc/pyqtdoc/qtopengl.html#details, doc/pyqtdoc/qtscript.html#details, doc/pyqtdoc/qtsql.html#details, doc/pyqtdoc/qtsvg.html#details, doc/pyqtdoc/qttest.html#details, doc/pyqtdoc/qtwebkit.html#details, doc/pyqtdoc/qtxml.html#details, doc/pyqtdoc/qtxmlpatterns.html#details, doc/pyqtdoc/rb-logo.png, doc /rb-logo.png, doc/rb-text.png, docgen/docgen.py, docgen/docgen/__init__.py, docgen/docgen/configuration.py, docgen/docgen/document_objects.py, docgen/docgen/documentation_generator.py, docgen/docgen/qdoc3.py, docgen/docgen/renderers/__init__.py, docgen/docgen/renderers/render_html.py, docgen/docgen/source_package.py, docgen/docgen/unpackers/__init__.py, docgen/docgen/unpackers/unpacker_tar_gz.py, docgen/docgen/unpackers/unpackers.py, docgen/docgen/utils.py, docgen/docgen/webxml.py, docgen/qdoc3/JAVATODO.txt, docgen/qdoc3/README.TXT, docgen/qdoc3/TODO.txt, docgen/qdoc3/apigenerator.cpp, docgen/qdoc3/apigenerator.h, docgen/qdoc3/archiveextractor.cpp, docgen/qdoc3/archiveextractor.h, docgen/qdoc3/atom.cpp, docgen/qdoc3/atom.h, docgen/qdoc3/bookgenerator.cpp, docgen/qdoc3/bookgenerator.h, docgen/qdoc3/ccodeparser.cpp, docgen/qdoc3/ccodeparser.h, docgen/qdoc3/codechunk.cpp, docgen/qdoc3/codechunk.h, docgen/qdoc3/codemarker.cpp, docgen/qdoc3/codemarker.h, docgen/qdoc3/codeparser.cpp, docgen/qdoc3/codeparser.h, docgen/qdoc3/command.cpp, docgen/qdoc3/command.h, docgen/qdoc3/config.cpp, docgen/qdoc3/config.h, docgen/qdoc3/cppcodemarker.cpp, docgen/qdoc3/cppcodemarker.h, docgen/qdoc3/cppcodeparser.cpp, docgen/qdoc3/cppcodeparser.h, docgen/qdoc3/cpptoqsconverter.cpp, docgen/qdoc3/cpptoqsconverter.h, docgen/qdoc3/dcfsection.cpp, docgen/qdoc3/dcfsection.h, docgen/qdoc3/doc.cpp, docgen/qdoc3/doc.h, docgen/qdoc3/documentation.pri, docgen/qdoc3/editdistance.cpp, docgen/qdoc3/editdistance.h, docgen/qdoc3/generator.cpp, docgen/qdoc3/generator.h, docgen/qdoc3/helpprojectwriter.cpp, docgen/qdoc3/helpprojectwriter.h, docgen/qdoc3/htmlgenerator.cpp, docgen/qdoc3/htmlgenerator.h, docgen/qdoc3/jambiapiparser.cpp, docgen/qdoc3/jambiapiparser.h, docgen/qdoc3/javacodemarker.cpp, docgen/qdoc3/javacodemarker.h, docgen/qdoc3/javadocgenerator.cpp, docgen/qdoc3/javadocgenerator.h, docgen/qdoc3/linguistgenerator.cpp, docgen/qdoc3/linguistgenerator.h, docgen/qdoc3/location.cpp, docgen/qdoc3/location.h, docgen/qdoc3/loutgenerator.cpp, docgen/qdoc3/loutgenerator.h, docgen/qdoc3/main.cpp, docgen/qdoc3/mangenerator.cpp, docgen/qdoc3/mangenerator.h, docgen/qdoc3/node.cpp, docgen/qdoc3/node.h, docgen/qdoc3/openedlist.cpp, docgen/qdoc3/openedlist.h, docgen/qdoc3/pagegenerator.cpp, docgen/qdoc3/pagegenerator.h, docgen/qdoc3/plaincodemarker.cpp, docgen/qdoc3/plaincodemarker.h, docgen/qdoc3/polyarchiveextractor.cpp, docgen/qdoc3/polyarchiveextractor.h, docgen/qdoc3/polyuncompressor.cpp, docgen/qdoc3/polyuncompressor.h, docgen/qdoc3/qdoc3.pro, docgen/qdoc3/qsakernelparser.cpp, docgen/qdoc3/qsakernelparser.h, docgen/qdoc3/qscodemarker.cpp, docgen/qdoc3/qscodemarker.h, docgen/qdoc3/qscodeparser.cpp, docgen/qdoc3/qscodeparser.h, docgen/qdoc3/quoter.cpp, docgen/qdoc3/quoter.h, docgen/qdoc3/separator.cpp, docgen/qdoc3/separator.h, docgen/qdoc3/sgmlgenerator.cpp, docgen/qdoc3/sgmlgenerator.h, docgen/qdoc3/test/arthurtext.qdocconf, docgen/qdoc3/test/assistant.qdocconf, docgen/qdoc3/test/classic.css, docgen/qdoc3/test/compat.qdocconf, docgen/qdoc3/test/designer.qdocconf, docgen/qdoc3/test/eclipse- integration.qdocconf, docgen/qdoc3/test/jambi.qdocconf, docgen/qdoc3/test/linguist.qdocconf, docgen/qdoc3/test/macros.qdocconf, docgen/qdoc3/test/qmake.qdocconf, docgen/qdoc3/test/qt-api-only-with-xcode.qdocconf, docgen/qdoc3/test /qt-api-only.qdocconf, docgen/qdoc3/test/qt-build-docs-with- xcode.qdocconf, docgen/qdoc3/test/qt-build-docs.qdocconf, docgen/qdoc3/test/qt-cpp-ignore.qdocconf, docgen/qdoc3/test/qt- defines.qdocconf, docgen/qdoc3/test/qt-for-jambi.qdocconf, docgen/qdoc3/test/qt-html-templates.qdocconf, docgen/qdoc3/test/qt- inc.qdocconf, docgen/qdoc3/test/qt-linguist.qdocconf, docgen/qdoc3/test/qt-webxml.qdocconf, docgen/qdoc3/test/qt-with- extensions.qdocconf, docgen/qdoc3/test/qt-with-xcode.qdocconf, docgen/qdoc3/test/qt.qdocconf, docgen/qdoc3/test/vs- integration.qdocconf, docgen/qdoc3/text.cpp, docgen/qdoc3/text.h, docgen/qdoc3/tokenizer.cpp, docgen/qdoc3/tokenizer.h, docgen/qdoc3/tr.h, docgen/qdoc3/tree.cpp, docgen/qdoc3/tree.h, docgen/qdoc3/uncompressor.cpp, docgen/qdoc3/uncompressor.h, docgen/qdoc3/webxmlgenerator.cpp, docgen/qdoc3/webxmlgenerator.h, docgen/qdoc3/yyindent.cpp, examples/demos/README, examples/demos/embeddeddialogs/No-Ones-Laughing-3.jpg, examples/demos/embeddeddialogs/embeddeddialog.py, examples/demos/embeddeddialogs/embeddeddialog.ui, examples/demos/embeddeddialogs/embeddeddialogs.py, examples/demos/embeddeddialogs/embeddeddialogs.qrc, examples/demos/embeddeddialogs/embeddeddialogs_rc.py, examples/designer/plugins/widgets/pydemo.py, examples/graphicsview/dragdroprobot/dragdroprobot.py, examples/graphicsview/padnavigator/backside.ui, examples/graphicsview/padnavigator/images/artsfftscope.png, examples/graphicsview/padnavigator/images/blue_angle_swirl.jpg, examples/graphicsview/padnavigator/images/kontact_contacts.png, examples/graphicsview/padnavigator/images/kontact_journal.png, examples/graphicsview/padnavigator/images/kontact_mail.png, examples/graphicsview/padnavigator/images/kontact_notes.png, examples/graphicsview/padnavigator/images/kopeteavailable.png, examples/graphicsview/padnavigator/images/metacontact_online.png, examples/graphicsview/padnavigator/images/minitools.png, examples/graphicsview/padnavigator/padnavigator.py, examples/graphicsview/padnavigator/padnavigator.qrc, examples/graphicsview/padnavigator/padnavigator_rc.py, examples/graphicsview/padnavigator/ui_backside.py, examples/tools/qtdemo/demos.xml, examples/tools/qtdemo/launcher.py, examples/tools/qtdemo/qtdemo_rc.py, examples/widgets/scribble.py, installers/AddToPath.nsh, installers/BuildGPL.txt, installers/PyQt- eval.nsi-in, installers/PyQt-gpl-mega.nsi-in, installers/PyQt-gpl .nsi-in, installers/StrSlash.nsh, installers/configqt.bat, lib/configure.py, pylupdate/fetchtr.cpp, pylupdate/main.cpp, pyqtdoc/cache.py, pyqtdoc/renderer.py, pyqtdoc/xform.py, pyuic/tests/list.ui, pyuic/tests/table.ui, pyuic/tests/tree.ui, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/icon_cache.py, pyuic/uic/objcreator.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py, test/runtests.py, test/test_properties.py, test/test_repr.py, test/tests/__init__.py, test/tests/classes/__init__.py, test/tests/classes/test_QStringList.py, test/tests/classes/test_QVariant.py, test/tests/metaobject/__init__.py, test/tests/metaobject/test_property.py, test/tests/metaobject/test_signal.py, test/tests/metaobject/test_slot.py, test/tests/misc/__init__.py, test/tests/misc/test_repr.py, test/ui/about.ui, test/ui/combo.ui: Merged v4.4.4 to the v4 trunk. [d47875f8e174] * NEWS: Released as v4.4.4. [ba90dae53231] [4.4.4] <4.4-maint> 2008-11-06 phil * Makefile, QAxContainer/qaxbase.sip: Added a workaround for an obscure typedef-related SIP bug triggered by QAxBase. [ab50a8cc1c5e] <4.4-maint> 2008-11-01 phil * NEWS: Updated the NEWS file. [3a79185abcfe] <4.4-maint> * installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in: Updates to the installers. [a4e9ebe10084] <4.4-maint> 2008-10-31 phil * PyQt4.msp, test/tests/classes/test_QStringList.py: Changed all uses of sequences to explicitly use PySequence_Check() as PySequence_Size() returning a valid value may not be sufficient (eg. sets). [6c28b2f416d5] <4.4-maint> 2008-10-29 phil * PyQt4.msp, installers/AddToPath.nsh: PyQt should now compile against Stackless. More fixes for the GPL installer related to setting PATH and non-admin installs. [fd34ac2bbba8] <4.4-maint> 2008-10-26 phil * installers/PyQt-gpl.nsi-in: Updates to the GPL installer so that it uses the correct path in pyuic4.bat and may work better with non-administrator installs. [5369c96ba294] <4.4-maint> * pyuic/uic/Compiler/qtproxies.py: Fixed a pyuic bug caused by a widget being called "_name" in the .ui file. [1e0b18740e59] <4.4-maint> * doc/pyqt4ref.txt, lib/configure.py: The configuration of the Designer plugin now uses exec_prefix rather than prefix. Added the --no-designer-plugin option to configure.py. [f8116ceddbc8] <4.4-maint> 2008-10-24 phil * PyQt4.msp, doc/pyqt4ref.txt: Fixed a bug in pyqtProperty() where the name of the setter wasn't being properly checked to see if it follows the Designer naming standard. [99439e105bbd] <4.4-maint> 2008-10-22 phil * PyQt4.msp, Roadmap.rst: Added a missing /Constrained/ from the first QVariant ctor needed by the new SIP enum handling. [cbac585902fc] <4.4-maint> 2008-10-20 phil * pyuic/uic/uiparser.py: Fixed a bug in pyuic's handling of QFormLayout when a layout is being set in a rolw rather than a widget. [2ce5a4aec617] <4.4-maint> 2008-10-18 phil * Roadmap.rst: Completed the roadmap. [4bd953e350ec] <4.4-maint> 2008-10-17 phil * PyQt4.msp, Roadmap.rst, Roadmap.txt: Added the missing Windows and Mac versions from QSysInfo. Added more to the roadmap. [e8efb7f89edb] <4.4-maint> * Roadmap.txt, TODO: Renamed the TODO list. [5fc8e6b739a9] <4.4-maint> 2008-10-16 phil * TODO: Updated the TODO list. [b5e3aed6ab9c] <4.4-maint> 2008-10-14 phil * PyQt4.msp: Added the /Constrained/ enum annotations required by the latest SIP. [bfc67e846d3b] <4.4-maint> 2008-10-12 phil * NEWS, PyQt4.msp, doc/pyqt4ref.txt, test/tests/classes/test_QVariant.py: More changes to QVariant to further minimise the changes from previous versions. [5909e3b5be26] <4.4-maint> 2008-10-11 phil * NEWS, PyQt4.msp, doc/pyqt4ref.txt, test/tests/classes/test_QVariant.py: Updated the docs regarding the slightly changed QVariant behaviour. [75aee6280b68] <4.4-maint> 2008-10-07 phil * PyQt4.msp, lib/configure.py: Added support for qreal being implemented as either a float or a double. [386871f70d94] <4.4-maint> * PyQt4.msp, lib/configure.py: QSizeGrip support is now determined by configure.py. [71827f1aa490] <4.4-maint> 2008-10-05 phil * PyQt4.msp: Fixed QDesktopServices.setUrlHandler() so that it works the same as the C++ implementation but also accepts a method that is a slot of a QObject. [285a094fe4dc] <4.4-maint> * PyQt4.msp: Backed out the explicit support for the QList and QMap mapped types as they break backwards compatibility. [a6b6c7dbd51f] <4.4-maint> 2008-10-02 phil * pyuic/uic/icon_cache.py, test/tests/classes/test_QVariant.py: Fixed a pyuic bug handling empty icon sets. [81f5b4796fdf] <4.4-maint> 2008-10-01 phil * PyQt4.msp, test/tests/classes/__init__.py, test/tests/classes/test_QVariant.py: Added the unit tests for QVariant. [2dc0fa7b7bcd] <4.4-maint> 2008-09-28 phil * test/test_properties.py, test/tests/metaobject/test_signal.py, test/tests/metaobject/test_slot.py: Added the unit tests for __pyqtSignals__ and pyqtSignature(). [d75645edd9ef] <4.4-maint> 2008-09-27 phil * PyQt4.msp, test/runtests.py, test/tests/metaobject/__init__.py, test/tests/metaobject/test_property.py, test/tests/misc/test_repr.py: Added the unit tests for pyqtProperty. Python integer objects will now be stored as int types in QVariant where possible (rather than qlonglong) so that enums are stored as ints. [007ce49eb599] <4.4-maint> 2008-09-26 phil * PyQt4.msp: Added data() (returning a void *) to QXmlAttributes, QPolygon and QPolygonF. [acf9ec2a2565] <4.4-maint> 2008-09-25 phil * Makefile, test/runtests.py, test/test_repr.py, test/tests/__init__.py, test/tests/misc/__init__.py, test/tests/misc/test_repr.py: Updated the unit test framework and started to add the ad-hoc tests to it. [b8d37a957d56] <4.4-maint> 2008-09-21 phil * PyQt4.msp, doc/pyqt4ref.txt: Updated the docs relating to QVariant and Python objects. Removed the QMetaType.type() overload as it is now completely broken. Strictly speaking this breaks backwards compatibility but it was present for such a short period of time that nobody should miss it. [8170a79086de] <4.4-maint> 2008-09-18 phil * installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in: Updates to the GPL installer for Python v2.6. [cdd232198664] <4.4-maint> * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/BuildGPL.txt, installers/PyQt-eval.nsi-in, installers/PyQt-gpl-mega.nsi-in, installers/PyQt-gpl.nsi-in, installers/configqt.bat: Switched the internalbuild system to Qt v4.4.2. [d0b668250636] <4.4-maint> 2008-09-16 phil * lib/configure.py: No, it should have been SIP v4.7.8 that is now required. [02971ccee927] <4.4-maint> * PyQt4.msp, lib/configure.py: SIP v4.7.7 is now required. The QVariant support will now use the correct C++ type name when seeing if it is aleady registered. [9a100f7035dd] <4.4-maint> 2008-09-15 phil * PyQt4.msp, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/objcreator.py: Removed a compiler warning message with Python v2.6rc1. pyuic4 uses the set builtin rather than the sets module where possible to avoid deprecation warnings with Python v2.6rc1. [f40508ef8024] <4.4-maint> * PyQt4.msp: Added the missing sub-class convertor code that handles QGraphicsScene events. [62ef848721de] <4.4-maint> 2008-09-11 phil * PyQt4.msp: Implemented the enhanced support for converting QVariants back to Python objects - but completely untested. [7e1bdea027f0] <4.4-maint> * PyQt4.msp: Further changes when creating a QVariant. Converting back to a Python object is still broken. [e227d794c14a] <4.4-maint> 2008-09-08 phil * PyQt4.msp: Reimplemented the conversions to QVariant to ensure any Python object can be converted (and to a C++ instance where possible). (I will probably take this a little further.) [f88323412415] <4.4-maint> 2008-09-03 phil * PyQt4.msp: QVariant() and QVariant.toPyObject() will now handle non-Qt wrapped types properly. [dc068c15e560] <4.4-maint> 2008-09-02 phil * PyQt4.msp: Fixed a bug handling of non-Qt wrapped types by QVariant. [d8dd4c47d4f4] <4.4-maint> 2008-08-27 phil * examples/demos/embeddeddialogs/embeddeddialogs.py, examples/designer/plugins/widgets/pydemo.py: Fixed bugs in the embeddeddialogs.py and Designer pydemo.py examples. [62d839ddded1] <4.4-maint> 2008-08-24 phil * pyuic/uic/uiparser.py: pyuic will now complain if it finds a custom widget header file name that contains '..'. [77a5566218df] <4.4-maint> * PyQt4.msp: Added %MethodCode for QKeySequence::operator[] to do bounds checking so that iterating over an instance works properly. Also added Pythonic handling of negative indices. Reviewed all other operator[] implementations and adopted the same code skeleton. [8249df9f2955] <4.4-maint> 2008-08-08 phil * NEWS: Released as v4.4.3. [12af90239097] [4.4.3] <4.4-maint> 2008-08-07 phil * PyQt4.msp: Added the missing /Transfer/ annotations to the setVerticalHeader() and setHorizontalHeader() methods of QTableView. [bc3afbcb2465] <4.4-maint> 2008-08-04 phil * Makefile, doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/phonon- module.html#details, doc/pyqtdoc/qaxcontainer.html#details, doc/pyqtdoc/qpydesignercontainerextension.html#details, doc/pyqtdoc/qpydesignercustomwidgetcollectionplugin.html#details, doc/pyqtdoc/qpydesignercustomwidgetplugin.html#details, doc/pyqtdoc/qpydesignermembersheetextension.html#details, doc/pyqtdoc/qpydesignerpropertysheetextension.html#details, doc/pyqtdoc/qpydesignertaskmenuextension.html#details, doc/pyqtdoc/qtassistant.html#details, doc/pyqtdoc/qtcore.html#details, doc/pyqtdoc/qtcore.html#pyqtRemoveInputHook, doc/pyqtdoc/qtcore.html#pyqtRestoreInputHook, doc/pyqtdoc/qtdesigner.html#details, doc/pyqtdoc/qtgui.html#details, doc/pyqtdoc/qthelp.html#details, doc/pyqtdoc/qtnetwork.html#details, doc/pyqtdoc/qtopengl.html#details, doc/pyqtdoc/qtscript.html#details, doc/pyqtdoc/qtsql.html#details, doc/pyqtdoc/qtsvg.html#details, doc/pyqtdoc/qttest.html#details, doc/pyqtdoc/qtwebkit.html#details, doc/pyqtdoc/qtxml.html#details, doc/pyqtdoc/qtxmlpatterns.html#details, doc/pyqtdoc/rb-logo.png, docgen/docgen/documentation_generator.py, docgen/docgen/webxml.py, pyqtdoc/renderer.py, pyqtdoc/xform.py: Fixed the problems with the old documentation system by removing the dependency on ElementTidy. [4037914d8e62] <4.4-maint> 2008-08-03 phil * doc/docgen.conf, doc/rb-logo.png, doc/rb-text.png, docgen/docgen/document_objects.py, docgen/docgen/documentation_generator.py, docgen/docgen/qdoc3.py, docgen/docgen/renderers/render_html.py, docgen/docgen/utils.py, docgen/docgen/webxml.py: The new documentation system now generates the main index page. [ae94a05bceed] <4.4-maint> * docgen/docgen/document_objects.py, docgen/docgen/renderers/render_html.py, docgen/docgen/webxml.py: Implemented the WebXML parsing infrastructure. [00037af9a5ef] <4.4-maint> 2008-08-02 phil * docgen/docgen/renderers/__init__.py, docgen/docgen/renderers/render_html.py, docgen/docgen/unpackers/unpackers.py, docgen/docgen/webxml.py: More work on the XHTML renderer. [7d489d65e62b] <4.4-maint> * doc/docgen.conf, docgen/docgen/documentation_generator.py, docgen/docgen/qdoc3.py, docgen/docgen/webxml.py, docgen/qdoc3/codemarker.cpp, docgen/qdoc3/cppcodemarker.cpp, docgen/qdoc3/cppcodeparser.cpp, docgen/qdoc3/cppcodeparser.h, docgen/qdoc3/doc.cpp, docgen/qdoc3/generator.cpp, docgen/qdoc3/generator.h, docgen/qdoc3/helpprojectwriter.cpp, docgen/qdoc3/htmlgenerator.cpp, docgen/qdoc3/main.cpp, docgen/qdoc3/node.cpp, docgen/qdoc3/pagegenerator.cpp, docgen/qdoc3/quoter.cpp, docgen/qdoc3/test/assistant.qdocconf, docgen/qdoc3/test/designer.qdocconf, docgen/qdoc3/test/eclipse- integration.qdocconf, docgen/qdoc3/test/linguist.qdocconf, docgen/qdoc3/test/macros.qdocconf, docgen/qdoc3/test/qmake.qdocconf, docgen/qdoc3/test/qt-build-docs.qdocconf, docgen/qdoc3/test/qt- webxml.qdocconf, docgen/qdoc3/test/qt.qdocconf, docgen/qdoc3/test /vs-integration.qdocconf, docgen/qdoc3/tree.cpp, docgen/qdoc3/tree.h, docgen/qdoc3/webxmlgenerator.cpp, docgen/qdoc3/webxmlgenerator.h: Updated qdoc3 from Qt v4.4.1. Added the XHTML renedering stubs. [81086dc22c70] <4.4-maint> * NEWS, docgen/docgen.py, docgen/docgen/documentation_generator.py, docgen/docgen/source_package.py, docgen/docgen/unpackers/__init__.py, docgen/docgen/unpackers/unpacker_tar_gz.py, docgen/docgen/unpackers/unpackers.py: Updated the NEWS file. More work on the new documentation system (unpacking source packages). [3b4a87387083] <4.4-maint> 2008-07-31 phil * doc/pyqtdoc/PyQt4.xfm: Fixed the current documentation system for Qt v4.4.1. [f3bffb5cbc3c] <4.4-maint> * Makefile, PyQt4.msp, installers/PyQt-eval.nsi-in, installers/PyQt- gpl.nsi-in, lib/configure.py: Added support for Qt v4.4.1. [f3144449a2cf] <4.4-maint> * Makefile, doc/docgen.conf, docgen/docgen/configuration.py, docgen/docgen/documentation_generator.py: More work on the new documentation system. [4e85f239617d] <4.4-maint> 2008-07-29 phil * Makefile, build.py, doc/docgen.conf, docgen/docgen.py, docgen/docgen/__init__.py, docgen/docgen/configuration.py, docgen/docgen/documentation_generator.py, docgen/qdoc3/JAVATODO.txt, docgen/qdoc3/README.TXT, docgen/qdoc3/TODO.txt, docgen/qdoc3/apigenerator.cpp, docgen/qdoc3/apigenerator.h, docgen/qdoc3/archiveextractor.cpp, docgen/qdoc3/archiveextractor.h, docgen/qdoc3/atom.cpp, docgen/qdoc3/atom.h, docgen/qdoc3/bookgenerator.cpp, docgen/qdoc3/bookgenerator.h, docgen/qdoc3/ccodeparser.cpp, docgen/qdoc3/ccodeparser.h, docgen/qdoc3/codechunk.cpp, docgen/qdoc3/codechunk.h, docgen/qdoc3/codemarker.cpp, docgen/qdoc3/codemarker.h, docgen/qdoc3/codeparser.cpp, docgen/qdoc3/codeparser.h, docgen/qdoc3/command.cpp, docgen/qdoc3/command.h, docgen/qdoc3/config.cpp, docgen/qdoc3/config.h, docgen/qdoc3/cppcodemarker.cpp, docgen/qdoc3/cppcodemarker.h, docgen/qdoc3/cppcodeparser.cpp, docgen/qdoc3/cppcodeparser.h, docgen/qdoc3/cpptoqsconverter.cpp, docgen/qdoc3/cpptoqsconverter.h, docgen/qdoc3/dcfsection.cpp, docgen/qdoc3/dcfsection.h, docgen/qdoc3/doc.cpp, docgen/qdoc3/doc.h, docgen/qdoc3/documentation.pri, docgen/qdoc3/editdistance.cpp, docgen/qdoc3/editdistance.h, docgen/qdoc3/generator.cpp, docgen/qdoc3/generator.h, docgen/qdoc3/helpprojectwriter.cpp, docgen/qdoc3/helpprojectwriter.h, docgen/qdoc3/htmlgenerator.cpp, docgen/qdoc3/htmlgenerator.h, docgen/qdoc3/jambiapiparser.cpp, docgen/qdoc3/jambiapiparser.h, docgen/qdoc3/javacodemarker.cpp, docgen/qdoc3/javacodemarker.h, docgen/qdoc3/javadocgenerator.cpp, docgen/qdoc3/javadocgenerator.h, docgen/qdoc3/linguistgenerator.cpp, docgen/qdoc3/linguistgenerator.h, docgen/qdoc3/location.cpp, docgen/qdoc3/location.h, docgen/qdoc3/loutgenerator.cpp, docgen/qdoc3/loutgenerator.h, docgen/qdoc3/main.cpp, docgen/qdoc3/mangenerator.cpp, docgen/qdoc3/mangenerator.h, docgen/qdoc3/node.cpp, docgen/qdoc3/node.h, docgen/qdoc3/openedlist.cpp, docgen/qdoc3/openedlist.h, docgen/qdoc3/pagegenerator.cpp, docgen/qdoc3/pagegenerator.h, docgen/qdoc3/plaincodemarker.cpp, docgen/qdoc3/plaincodemarker.h, docgen/qdoc3/polyarchiveextractor.cpp, docgen/qdoc3/polyarchiveextractor.h, docgen/qdoc3/polyuncompressor.cpp, docgen/qdoc3/polyuncompressor.h, docgen/qdoc3/qdoc3.pro, docgen/qdoc3/qsakernelparser.cpp, docgen/qdoc3/qsakernelparser.h, docgen/qdoc3/qscodemarker.cpp, docgen/qdoc3/qscodemarker.h, docgen/qdoc3/qscodeparser.cpp, docgen/qdoc3/qscodeparser.h, docgen/qdoc3/quoter.cpp, docgen/qdoc3/quoter.h, docgen/qdoc3/separator.cpp, docgen/qdoc3/separator.h, docgen/qdoc3/sgmlgenerator.cpp, docgen/qdoc3/sgmlgenerator.h, docgen/qdoc3/test/arthurtext.qdocconf, docgen/qdoc3/test/assistant.qdocconf, docgen/qdoc3/test/classic.css, docgen/qdoc3/test/compat.qdocconf, docgen/qdoc3/test/designer.qdocconf, docgen/qdoc3/test/eclipse- integration.qdocconf, docgen/qdoc3/test/jambi.qdocconf, docgen/qdoc3/test/linguist.qdocconf, docgen/qdoc3/test/macros.qdocconf, docgen/qdoc3/test/qmake.qdocconf, docgen/qdoc3/test/qt-api-only-with-xcode.qdocconf, docgen/qdoc3/test /qt-api-only.qdocconf, docgen/qdoc3/test/qt-build-docs-with- xcode.qdocconf, docgen/qdoc3/test/qt-build-docs.qdocconf, docgen/qdoc3/test/qt-cpp-ignore.qdocconf, docgen/qdoc3/test/qt- defines.qdocconf, docgen/qdoc3/test/qt-for-jambi.qdocconf, docgen/qdoc3/test/qt-html-templates.qdocconf, docgen/qdoc3/test/qt- inc.qdocconf, docgen/qdoc3/test/qt-linguist.qdocconf, docgen/qdoc3/test/qt-webxml.qdocconf, docgen/qdoc3/test/qt-with- extensions.qdocconf, docgen/qdoc3/test/qt-with-xcode.qdocconf, docgen/qdoc3/test/qt.qdocconf, docgen/qdoc3/test/vs- integration.qdocconf, docgen/qdoc3/text.cpp, docgen/qdoc3/text.h, docgen/qdoc3/tokenizer.cpp, docgen/qdoc3/tokenizer.h, docgen/qdoc3/tr.h, docgen/qdoc3/tree.cpp, docgen/qdoc3/tree.h, docgen/qdoc3/uncompressor.cpp, docgen/qdoc3/uncompressor.h, docgen/qdoc3/webxmlgenerator.cpp, docgen/qdoc3/webxmlgenerator.h, docgen/qdoc3/yyindent.cpp: Added the start of the new documentation system. [8f27b74b9e3f] <4.4-maint> 2008-07-23 phil * installers/PyQt-eval.nsi-in: Updates to the evaluation version installer. [6177433c42d4] <4.4-maint> * pylupdate/fetchtr.cpp, pylupdate/main.cpp: Applied a patch from Giovanni Bajo (submitted over a year ago!) for handling UTF-8 Python source containing UTF-8 literal strings. [57c8ce6691ad] <4.4-maint> 2008-07-22 phil * doc/pyqt4ref.txt, pyuic/uic/uiparser.py, test/ui/about.ui: Fixed a pyuic bug handling the widget of a QScrollArea. [94bfa2004923] <4.4-maint> 2008-07-05 phil * Makefile, pyuic/uic/uiparser.py: Fixed a bug in pyuic that was triggered by layouts with items appearing before widgets with items. [426c71ba6937] <4.4-maint> 2008-06-27 phil * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: A QChar can now be used whenever a QString is expected. Removed a number of methods (mostly in QString) that are now redundant. Reordered a couple of other methods to make sure the QChar version takes precedence where the underlying C++ code doesn't simply treat the QChar as a QString of length one. [3a38d05653e6] <4.4-maint> * PyQt4.msp: All read related methods that take a maximim read length will now raise an exception if the length is negative. [de6c273fa675] <4.4-maint> 2008-06-23 phil * pyuic/uic/icon_cache.py: Fixed a pyuic bug where the icon cache wasn't handling icons with no roles defined. [fbf1c117c133] <4.4-maint> * pyuic/uic/Compiler/qtproxies.py: Fixed a pyuic bug handling strings containing double quotes. [4c6732ead68e] <4.4-maint> 2008-06-20 phil * Makefile, pyuic/uic/uiparser.py, test/ui/combo.ui: Fixed a bug with the way pyuic handles QComboBox icons. [7dc6edc95509] <4.4-maint> 2008-06-12 phil * installers/AddToPath.nsh: Fixes to the GPL installer so that it will update PATH properly on uninstall for the current user. [59feda55e02a] <4.4-maint> * PyQt4.msp: Fixed a number of __delitem__ bugs propagated by cut & paste. [32e298c4fa36] <4.4-maint> 2008-06-11 phil * Makefile, build.py, installers/AddToPath.nsh, installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in, pyqtdoc/cache.py, pyqtdoc/renderer.py, pyqtdoc/xform.py: The Windows installer now tries to update PATH for all users then tries for the current user if that fails. Everything is now stored in the PyQt4 directory in site-packages. Fixed the internal build system to use a local Python interpreter to create the documentation because Ubuntu's elementtidy is broken. [f443b7002fd2] <4.4-maint> * pyuic/uic/uiparser.py: pyuic no longer passes the QDockWidget as the parent of the widget being placed in the dock (to be consistent with uic). [065d7976da4d] <4.4-maint> 2008-06-10 phil * PyQt4.msp: Fixed a regression in the QList conversion code for lists of ints and doubles. [50d481f7933a] <4.4-maint> 2008-06-07 phil * PyQt4.msp: Changed all handwritten code that accepts a list or tuple to accept a sequence. [6c2bbf161005] <4.4-maint> * PyQt4.msp, installers/BuildGPL.txt: Updated all relevant handwritten code to use SIP_SSIZE_T. [bff402942bb5] <4.4-maint> 2008-06-01 phil * examples/graphicsview/dragdroprobot/dragdroprobot.py: Some minor fixes to the dragdroprobot.py example. [51c084162e61] <4.4-maint> * PyQt4.msp: Replaced the QVariant ctor that took a QVariantList argument with the fromList() static method. Replaced the QVariant ctor that took a QVariantMap argument with the fromMap() static method. The above changes ensure that an empty Python list and dictionary will always be handled as a Python object. Some minor fixes to the dragdroprobot.py example. [ad64fb00ce89] <4.4-maint> 2008-05-31 phil * pyuic/tests/list.ui, pyuic/tests/table.ui, pyuic/tests/tree.ui, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/icon_cache.py, pyuic/uic/objcreator.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py: Went through the pyuic support for list, table and tree widgets to make sure they match the current uic behaviour. Added an icon cache to pyuic so that icons are only created once if they are used in several places. [bcfff75b744e] <4.4-maint> 2008-05-30 phil * PyQt4.msp: The QVariant ctor that takes a QStringList is not constrained. Ensured that the QVariant ctor that takes a Python object moves on to the next signature if it finds it has a wrapped type. [fbefaa3ea57d] <4.4-maint> 2008-05-29 phil * examples/demos/README, examples/demos/embeddeddialogs/No-Ones- Laughing-3.jpg, examples/demos/embeddeddialogs/embeddeddialog.py, examples/demos/embeddeddialogs/embeddeddialog.ui, examples/demos/embeddeddialogs/embeddeddialogs.py, examples/demos/embeddeddialogs/embeddeddialogs.qrc, examples/demos/embeddeddialogs/embeddeddialogs_rc.py, examples/graphicsview/padnavigator/backside.ui, examples/graphicsview/padnavigator/images/artsfftscope.png, examples/graphicsview/padnavigator/images/blue_angle_swirl.jpg, examples/graphicsview/padnavigator/images/kontact_contacts.png, examples/graphicsview/padnavigator/images/kontact_journal.png, examples/graphicsview/padnavigator/images/kontact_mail.png, examples/graphicsview/padnavigator/images/kontact_notes.png, examples/graphicsview/padnavigator/images/kopeteavailable.png, examples/graphicsview/padnavigator/images/metacontact_online.png, examples/graphicsview/padnavigator/images/minitools.png, examples/graphicsview/padnavigator/padnavigator.py, examples/graphicsview/padnavigator/padnavigator.qrc, examples/graphicsview/padnavigator/padnavigator_rc.py, examples/graphicsview/padnavigator/ui_backside.py, examples/tools/qtdemo/demos.xml, examples/tools/qtdemo/launcher.py, examples/tools/qtdemo/qtdemo_rc.py: Added the embeddeddialogs.py and padnavigator.py examples from Igor Prischepoff. [8f390f0bef60] <4.4-maint> 2008-05-27 phil * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py: Added support for QFormLayout to pyuic4. [80463a635418] <4.4-maint> 2008-05-26 phil * PyQt4.msp: Renamed the print() method of QWebView to print_(). [7aaf4a2ac5c9] <4.4-maint> 2008-05-23 phil * PyQt4.msp, examples/widgets/scribble.py: Fixed a build problem with versions of Qt prior to v4.4.0. [4d6dd4d7ce13] <4.4-maint> 2008-05-20 phil * NEWS, installers/PyQt-gpl.nsi-in, pyuic/uic/properties.py: Tweak to the text in the GPL installer. Another fix to the icon handling in pyuic4. Released as v4.4.2. [b495de0b3073] [4.4.2] <4.4-maint> * NEWS: Released as v4.4.1. [b19285cf8c60] [4.4.1] <4.4-maint> 2008-05-19 phil * installers/PyQt-gpl.nsi-in, lib/configure.py: More fixes for the GPL installer. More fixes for subprocess in configure.py. [58992b1aab2a] <4.4-maint> * examples/tools/qtdemo/launcher.py, lib/configure.py: Removed the use of deprecated modules from configure.py. [5b5ba6ea7019] <4.4-maint> 2008-05-18 phil * installers/AddToPath.nsh, installers/BuildGPL.txt, installers/PyQt- gpl.nsi-in: Changed the GPL installer so it will be possible have concurrent installations for different versions of Python. [8d8a6482f533] <4.4-maint> * examples/tools/qtdemo/launcher.py: Tweaked the qtdemo.py example. [636d8b3c0241] <4.4-maint> * build.py, installers/AddToPath.nsh, installers/PyQt-gpl.nsi-in, installers/StrSlash.nsh: Updated the GPL installer. [2c8780d03703] <4.4-maint> * NEWS, PyQt4.msp: Fixed QMetaType.QTransform as it first appeared in Qt v4.3. [68fb73d34c09] <4.4-maint> 2008-05-17 phil * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed pyuic4's handling of layout names. Fixed pyuic4's handling of the geometry of the main widget. [863acd9e3bb5] <4.4-maint> * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py: Fixed QIcon handling for Qt v4.4. Added some missing widgets. [993d4502ba53] <4.4-maint> * PyQt4.msp: Fixed the breakage of QMetaObject.connectSlotsByName() when used with the pyqtSignature() decorator. [b900a5b41834] <4.4-maint> 2008-05-16 phil * Makefile, PyQt4.msp: Added QRunnable and QThreadPool. Added QGraphicsWidget and QGraphicsProxyWidget to QGraphicsItem's sub-class convertor code. [55ac4a868cec] <4.4-maint> 2008-05-13 phil * designer/pluginloader.cpp: Fixed a bug in the Designer plugin loader that breaks compilation with versions of Python v2.4.x and earlier that are built with a shared Python library. [5c6b808a9857] <4.4-maint> * Makefile, build.py, doc/default.css, lib/LICENSE.internal, pylupdate/pylupdate.sbf, pyuic/uic/pyuic.py: Released as v4.4. [7013201a52f2] [4.4] * examples/designer/plugins/python/pydemoplugin.py: Fixed the logo in the Designer plugins demo. [08fb80e71339] 2008-05-12 phil * NEWS, examples/tools/qtdemo/launcher.py: In the demo don't show the documentation button if there isn't any documentation. [551b35e4eb3b] * installers/PyQt-gpl.nsi-in: Added the SIP developers tools to the GPL installer. [4f8789918115] * examples/phonon/capabilities.py, examples/phonon/musicplayer.py, examples/tools/qtdemo/launcher.py, installers/BuildGPL.txt, installers/BuildGPLMega.txt, installers/PyQt-gpl-mega.nsi-in, installers/PyQt-gpl.nsi-in: Hacked at qtdemo.py so that it uses QtHelp (because QAssistantClient is broken in Qt v4.4.0). Updated the GPL installer now that we aren't going to bundle Qt or 3rd party tools. [4a64f34641be] 2008-05-11 phil * pyqtdoc/cache.py, pyqtdoc/renderer.py, pyqtdoc/xform.py: The document generator now uses Python's elementtree if it is available. [7b1f75bba68d] 2008-05-09 phil * Makefile, PyQt4.msp, build.py, designer/pluginloader.cpp, designer/pluginloader.h, examples/activeqt/webbrowser/webbrowser.py, lib/configure.py: Updates to the build system for the move to Ubuntu. Added a missing OpenSSL guard. [35aa7a426dbb] 2008-05-08 phil * NEWS: Updated the NEWS file. [6adc8fd56932] * PyQt4.msp: Implemented QScriptEngine.newFunction(). [e1fdef00857f] 2008-05-07 phil * PyQt4.msp: The meta-type support code now uses the new SIP generated assignment helpers rather than trying to use the meta-type load and save support (which isn't available for QScriptValue). [d33977779dee] 2008-05-05 phil * installers/BuildGPL.txt, installers/PyQt-eval.nsi-in, installers /PyQt-gpl.nsi-in, installers/configqt.bat: Some updates for the Windows installers. [b3c46b84c5c9] * NEWS, build.py, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, lib/README, lib/configure.py: Updated the NEWS file. Documentation tweaks. [1f034ece1791] * PyQt4.msp: Small changes to the QMetaObject support to avoid introducing a binary incompatibility. [58ea8bd46941] 2008-05-04 phil * PyQt4.msp: Added support for staticMetaObject for all QObject derived classes. [1f6abac04bf0] * PyQt4.msp: Completed the support for QMetaObject::invokeMethod(). [8571bd93bc38] * PyQt4.msp: Implemented Q_RETURN_ARG(). [c7443d8f0a3a] 2008-05-03 phil * pyuic/uic/Loader/qobjectcreator.py: Fixed a pyuic bug loading .ui files containing widgets in namespaces. [337e3c1d7581] * PyQt4.msp: Ensure that a QDataStream cannot use a Python string as its io device. [290c9138347e] * PyQt4.msp: Added the tags that should allow building against Qt v4.4 without OpenSSL support. [a9e546e49e1f] * PyQt4.msp: Fixed the bug passing a QString to Q_ARG(). [d2ca41aa35e2] * PyQt4.msp, doc/pyqt4ref.txt: Fixed the problem of Python slots (ie. decorated with pyqtSignature()) returning Qt classes. [386f0256eaae] 2008-04-29 phil * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, lib/configure.py: Updates for the final release of Qt v4.4. [4378f8e82674] 2008-04-28 phil * PyQt4.msp: Added support for QMetaObject.invokeMethod() and Q_ARG(). No support yet for Q_RETURN_ARG(). [5cbc0f659c33] * pyuic/uic/uiparser.py: Fixed a pyuic problem handling C++ namespaces in widget classes. [612da718eaf4] 2008-04-27 phil * PyQt4.msp, doc/pyqt4ref.txt: The QVariant() ctor that takes a Python object now automatically registers the Python type of the object. QVariant.toPyObject() now returns NotImplemented when it can't convert (instead of raising an exception). Implemented QMetaType.type() (and others) and overloaded it to handle a Python type object. [2edddc157f54] 2008-04-24 phil * PyQt4.msp: Added support for QVariant containing a Python object via a new ctor and the toPyObject() method. [9c3ab65c2f40] * pyuic/uic/widget-plugins/qtwebkit.py: Added the pyuic plugin for QtWebKit. [a591279744c8] * pyuic/uic/Compiler/qtproxies.py: Fixed a pyuic regression introduced when changing the indentation code. [62980b268c09] 2008-04-23 phil * PyQt4.msp: Resolved all outstanding issues wrapping Qt v4.4rc1. [adcae359130b] 2008-04-21 phil * PyQt4.msp: Completed the wrapping of QScriptEngine. [ce6b8b43575d] * doc/pyqt4ref.txt: Added a paragraph to the documentation covering QtWebKit integration. [9d122b0f886c] * PyQt4.msp: Added support for (in theory) any slot result type. [55a094212942] 2008-04-20 phil * PyQt4.msp, doc/pyqt4ref.txt: Implemented basic support (ie. C++ int only at the moment) for slot return values. [545a57e0d0b6] * PyQt4.msp: pyqtSignature() supports keyword arguments including an optional "result" argument that allows the signature to have a return type. [51a4ca3921db] * PyQt4.msp: Finished the support for QGraphicsProxyWidget. [7d32fcbc77c7] 2008-04-19 phil * PyQt4.msp: Wrapped the network methods that depended on quintptr. Wrapped the QApplication methods that needed XEvent. [cab9fc97f453] * pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/qobjectcreator.py: Improved the pyuic fix for lines with embedded newlines so that they don't get indented. [7d7c6aec782a] * PyQt4.msp: Wrapped the majority of remaining methods and enum members after feedback from DavidB. [bb96252cec07] 2008-04-18 phil * PyQt4.msp: Wrapped QPrinterInfo::supportedPaperSizes(). [85cea79dfd55] * PyQt4.msp: Wrapped the data() and constData() methods of QSharedMemory. [7e1aefae6686] * PyQt4.msp: Wrapped a few more things that were missed in the first pass through the documentation. [35b4ce14fe6f] * PyQt4.msp: Implemented the QHash template (needed by Phonon). Removed all qHash() wrappers and added a __hash__ slot for all classes that support qHash(). [da25654f5101] * PyQt4.msp, doc/pyqt4ref.txt, pyuic/uic/Compiler/qtproxies.py: Fixed a pyuic bug with strings containing newlines identified by Douglas Soares de Andrade. Wrapped the modelData() methods of the Phonon model classes. [acd57c635856] 2008-04-17 phil * TODO, doc/pyqt4ref.txt: Updated the documentation about sip.voidptr. [36a9282662ad] * PyQt4.msp: Removed the use of sipMalloc() and sipFree() from all handwritten code. [124542a1fcb8] * PyQt4.msp: Replaced all uses of Py_ssize_t in handwritten code now that we require a version of SIP where SIP_SSIZE_T is defined. [a60cd4bcc7e1] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, lib/mksccode.py: Wrapped the remaining Phonon classes. [23f53161968d] 2008-04-16 phil * build.py, doc/pyqtdoc/phonon-module.html#details, doc/pyqtdoc/qtxmlpatterns.html#details, pyqtdoc/renderer.py, pyqtdoc/xform.py: Updates to the documentation system. (Phonon could probably do with some more work.) [2630cfb4154e] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, examples/phonon/musicplayer.py: Added more support for phonon - the musicplayer.py example now works. [8ee45f32582a] * PyQt4.msp, examples/phonon/musicplayer.py: Wrapped more of phonon. Some fixes for musicplayer.py (though not working yet). [7e426606c6f9] 2008-04-15 phil * examples/phonon/capabilities.py, examples/phonon/musicplayer.py: Added the (untested) musicplayer.py example. [6a9ab23449cd] * PyQt4.msp: The Phonon capabilities.py example now runs. [501a5bc43539] 2008-04-13 phil * examples/phonon/README, examples/phonon/capabilities.py, examples/tools/qtdemo/examples.xml, examples/tools/qtdemo/qtdemo_rc.py: Added the Phonon capabilities example to work out how to wrap the ObjectDescription template. [704a55228a20] * PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc /phonon-module.html#details, lib/configure.py, lib/pyqtconfig.py.in, pyqtdoc/renderer.py: Started to wrap the phonon module. [776ec24185b4] * PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/qtxmlpatterns.html#details, lib/configure.py, lib/pyqtconfig.py.in, pyqtdoc/renderer.py: Added the QtXmlPatterns module. [2a0380ee867a] * PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/qtwebkit.html#details, lib/configure.py, lib/pyqtconfig.py.in, pyqtdoc/renderer.py: Added support for QtWebKit. [70aab9c8d88c] 2008-04-12 phil * PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/qthelp.html#details, doc/pyqtdoc/qtxml.html#details, lib/configure.py, lib/pyqtconfig.py.in, pyqtdoc/renderer.py: Completed the support for the QtHelp module. [3569fc9763be] * PyQt4.msp: Wrapped the QtHelp module (but it isn't built yet). [068a89ffe662] 2008-04-11 phil * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: Added support for the new QtCore classes in Qt v4.4rc1. [77c122875267] * PyQt4.msp: Added support for the new QtGui classes in Qt v4.4rc1. [aded1c26cd7b] * PyQt4.msp: Added support for the new QtNetwork classes. [d6885f05cf75] * PyQt4.msp: The QtDesigner module is now fully ported to Qt v4.4rc1. [9c34ff766cb6] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: Fully ported the existing QtTest and QtXml classes to Qt v4.4rc1. Fully ported the existing and new QtScript classes to Qt v4.4rc1. [04a3ecbf1d50] * PyQt4.msp: Fully ported the existing QtOpenGL and QtSql classes to Qt v4.4rc1. [29b74a4bd030] * PyQt4.msp: Fully ported the existing QtNetwork classes to Qt v4.4rc1. [4748b147c2ad] 2008-04-10 phil * PyQt4.msp: The remaining existing QtGui classes are fully ported to Qt v4.4rc1. [a044f26b6aff] * PyQt4.msp: The existing qs*.h QtGui classes are fully ported to Qt v4.4rc1. [d8da1a8b9ef4] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: The existing q[f-r]*.h QtGui classes are (almost) fully ported to Qt v4.4rc1. [5d0d912d533e] 2008-04-09 phil * PyQt4.msp: Merged the QDataStream.readString() fix from the maintenance branch. Scanned the QtXmlPatterns headers. [78c104478a50] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: Added support for the map() and unmap() methods. [a84abf616bfa] 2008-04-08 phil * doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/rb-logo.png: Updated the logo in the documentation. [7bd6fd51a244] 2008-04-07 phil * PyQt4.msp: The existing q[f-h]*.h QtGui classes are fully ported to Qt v4.4rc1. [fe5bd419a604] * PyQt4.msp: The existing q[d-e]*.h QtGui classes are fully ported to Qt v4.4rc1. [c2ff8acf7ddb] 2008-04-06 phil * PyQt4.msp: The existing q[a-c]*.h QtGui classes are fully ported to Qt v4.4rc1. [445f2b9526cd] * Makefile, PyQt4.msp, lib/configure.py: QtAssistant is fully ported to Qt v4.4rc1. The existing QtCore classes are fully ported to Qt v4.4rc1 (with one or two outstanding queries). [8dbdba9815a9] * Makefile, NEWS, PyQt4.msp, QAxContainer/qaxbase.sip, QAxContainer/qaxobject.sip, QAxContainer/qaxwidget.sip, TODO, build.py, contrib/pymodeltest/modeltest.py, contrib/sandbox/README, contrib/sandbox/sandbox.pyw, dbus/dbus.cpp, dbus/helper.h, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/qtcore.html#pyqtRemoveInputHook, doc/pyqtdoc/qtcore.html#pyqtRestoreInputHook, examples/designer/plugins/plugins.py, examples/designer/plugins/python/analogclockplugin.py, examples/designer/plugins/python/bubbleswidgetplugin.py, examples/designer/plugins/python/counterlabelplugin.py, examples/designer/plugins/python/datetimeeditplugin.py, examples/designer/plugins/python/helloglwidgetplugin.py, examples/designer/plugins/python/highlightedtexteditplugin.py, examples/designer/plugins/python/multipagewidgetplugin.py, examples/designer/plugins/python/polygonwidgetplugin.py, examples/designer/plugins/python/pydemoplugin.py, examples/designer/plugins/python/pythonconsoleplugin.py, examples/designer/plugins/widgets/analogclock.py, examples/designer/plugins/widgets/bubbleswidget.py, examples/designer/plugins/widgets/counterlabel.py, examples/designer/plugins/widgets/datetimeedit.py, examples/designer/plugins/widgets/helloglwidget.py, examples/designer/plugins/widgets/highlightedtextedit.py, examples/designer/plugins/widgets/multipagewidget.py, examples/designer/plugins/widgets/polygonwidget.py, examples/designer/plugins/widgets/pydemo.py, examples/designer/plugins/widgets/pythonconsolewidget.py, examples/desktop/README, examples/desktop/systray/images/bad.svg, examples/desktop/systray/images/heart.svg, examples/desktop/systray/images/trash.svg, examples/desktop/systray/systray.py, examples/desktop/systray/systray.qrc, examples/desktop/systray/systray_rc.py, examples/graphicsview/diagramscene/diagramscene.py, examples/graphicsview/diagramscene/diagramscene.qrc, examples/graphicsview/diagramscene/diagramscene_rc.py, examples/graphicsview/diagramscene/images/background1.png, examples/graphicsview/diagramscene/images/background2.png, examples/graphicsview/diagramscene/images/background3.png, examples/graphicsview/diagramscene/images/background4.png, examples/graphicsview/diagramscene/images/bold.png, examples/graphicsview/diagramscene/images/bringtofront.png, examples/graphicsview/diagramscene/images/delete.png, examples/graphicsview/diagramscene/images/floodfill.png, examples/graphicsview/diagramscene/images/italic.png, examples/graphicsview/diagramscene/images/linecolor.png, examples/graphicsview/diagramscene/images/linepointer.png, examples/graphicsview/diagramscene/images/pointer.png, examples/graphicsview/diagramscene/images/sendtoback.png, examples/graphicsview/diagramscene/images/textpointer.png, examples/graphicsview/diagramscene/images/underline.png, examples/graphicsview/dragdroprobot/dragdroprobot.py, examples/graphicsview/dragdroprobot/dragdroprobot.qrc, examples/graphicsview/dragdroprobot/dragdroprobot_rc.py, examples/graphicsview/dragdroprobot/images/head.png, examples/opengl/hellogl.py, examples/tools/qtdemo/examples.xml, examples/tools/qtdemo/images/rb-logo.png, examples/tools/qtdemo/qtdemo_rc.py, examples/tutorial/t10.py, examples/tutorial/t11.py, examples/tutorial/t12.py, examples/tutorial/t13.py, examples/tutorial/t14.py, examples/tutorial/t8.py, examples/tutorial/t9.py, installers/BuildGPL.txt, installers/PyQt-eval.nsi-in, installers /PyQt-gpl.nsi-in, installers/configqt.bat, lib/GPL_EXCEPTION.TXT, lib/GPL_EXCEPTION_ADDENDUM.TXT, lib/LICENSE.GPL2, lib/LICENSE.GPL3, lib/LICENSE.commercial, lib/LICENSE.commercial.short, lib/LICENSE.edu, lib/LICENSE.edu.short, lib/LICENSE.eval.short, lib/LICENSE.gpl, lib/LICENSE.gpl.short, lib/LICENSE.internal, lib /OPENSOURCE-NOTICE.TXT, lib/README, lib/THANKS, lib/configure.py, lib/pyqt-edu.sip, pyqtdoc/renderer.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/loader.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/__init__.py, pyuic/uic/properties.py, pyuic/uic/pyuic.py, pyuic/uic/uiparser.py, test/dbus/test_multibus.py, test/sigslots/double_disable.py, test/sigslots/timer_leak.py, test/test_gc_thread.py, test/test_pickle.py, test/test_properties.py, test/test_repr.py, test/test_virtual_operators.py: Merged the 4.3 maintenance branch. [407ef7a370fd] 2007-12-05 phil * Makefile, NEWS, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/PyQt- eval.nsi-in, installers/PyQt-gpl.nsi-in, lib/GPL_EXCEPTION.TXT, lib/configure.py: Added support for Qt v4.3.3. Updated the GPL exceptions. Released as v4.3.3. [d765a8edac37] [4.3.3] <4.3-maint> * NEWS: Released as v4.3.2. [36d3420974b6] [4.3.2] <4.3-maint> * test/test_virtual_operators.py: Added the test case for virtual operators. [948531031466] <4.3-maint> 2007-12-04 phil * NEWS, PyQt4.msp: Backed out the recent change that disabled the input hook for Windows2000. It turns out the cause of the problem was a conflict (bug?) with PyReadline. [c833424b66cf] <4.3-maint> 2007-11-30 phil * lib/configure.py: Hid an internal configuration option. [a640485167ff] <4.3-maint> 2007-11-29 phil * PyQt4.msp: The input hook is no longer installed by default on Windows2000 and earlier because of reported (but not reproduced) performance problems. [15ee7fcacdc7] <4.3-maint> 2007-11-16 phil * PyQt4.msp, lib/configure.py, test/sigslots/timer_leak.py: Completely reimplemented the fix for leaking universal slots when the emitter is not known (ie. QTimer.singleShot()) using the new SIP /SingleShot/ argument annotation. (SIP v4.7.2 is now required.) The previous fix had problems when Python objects were being re-created at the same address. Added the test script that shows a leaking QTimer.singleShot(). [0a77519033c8] <4.3-maint> 2007-11-08 phil * doc/pyqt4ref.txt, lib/configure.py, test/test_gc_thread.py: Added the --confirm-license option to configure.py. Added the test_gc_thread.py test. [5397fffff5ad] <4.3-maint> 2007-10-28 phil * installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in: Changed the installers so that msvcp71.dll is installed if needed. [49a03a56eeaa] <4.3-maint> * PyQt4.msp: Universal proxy slots will now be reused when repeatedly connected to the same Python slot so as not to leak memory in long running code. The use case is calling QTimer.singleShot() in a loop. [c991478bc354] <4.3-maint> 2007-10-18 phil * PyQt4.msp: Fixed the ownership annotations on all createEditor() methods. [f012a7afe0c7] <4.3-maint> 2007-10-16 phil * pyqtdoc/renderer.py: The class index is now 4 columns rather than 5. A class's detailed description now says if the class can be pickled. [33abe231c338] <4.3-maint> * lib/configure.py: configure.py now tells people to re-run it with the --verbose flag. [67cc4670ad61] <4.3-maint> 2007-10-14 phil * lib/GPL_EXCEPTION.TXT, lib/LICENSE.gpl: More license tweaking. [a7eeddf06cb6] <4.3-maint> * build.py, installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in, lib/GPL_EXCEPTION.TXT, lib/GPL_EXCEPTION_ADDENDUM.TXT, lib/LICENSE.gpl, lib/OPENSOURCE-NOTICE.TXT, lib/THANKS: Updated the internal build docs now that Qt GPL for Windows supports MSVC.NET. Changed the GPL license to be the same as Trolltech's exceptions. [0497fd047433] <4.3-maint> 2007-10-13 phil * PyQt4.msp: Added the missing private setModel() methods to QListWidget, QTableWidget and QTreeWidget. [9c52b7919992] <4.3-maint> 2007-10-10 phil * examples/tutorial/t10.py, examples/tutorial/t11.py, examples/tutorial/t12.py, examples/tutorial/t13.py, examples/tutorial/t14.py, examples/tutorial/t8.py, examples/tutorial/t9.py: Various fixes for the tutorial examples. [9769dd1ae202] <4.3-maint> 2007-10-06 phil * pyuic/uic/properties.py: pyuic now handles the stdset property attribute properly. [86dea8ea2832] <4.3-maint> 2007-10-04 phil * lib/configure.py: configure.py no longer parses the Qt header files when trying to find QT_VERSION and QT_EDITION. [09456834d756] <4.3-maint> * PyQt4.msp: The cleanup handler used to track QGraphicsScene instances is now on the heap in order to control if and when it is destroyed. [a263f2b29750] <4.3-maint> 2007-10-03 phil * PyQt4.msp: Added the new TransferThis function annotation to QObject.deleteLater(). [6ecffca9e03a] <4.3-maint> * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-eval .nsi-in, installers/PyQt-gpl.nsi-in: Switched to Qt v4.3.2. [ec795535d220] <4.3-maint> 2007-09-28 phil * NEWS: Released as v4.3.1. [69af21229f22] [4.3.1] <4.3-maint> 2007-09-25 phil * NEWS, installers/BuildGPL.txt, lib/configure.py: The Windows mega package should now support the ODBC driver (untested). Updated the NEWS file. [b9ad7e934fea] <4.3-maint> 2007-09-21 phil * examples/graphicsview/dragdroprobot/dragdroprobot.py, examples/graphicsview/dragdroprobot/dragdroprobot.qrc, examples/graphicsview/dragdroprobot/dragdroprobot_rc.py, examples/graphicsview/dragdroprobot/images/head.png, examples/tools/qtdemo/examples.xml, examples/tools/qtdemo/qtdemo_rc.py: Added the dragdroprobot.py example from Lieven Buts. [a19e56952c9a] <4.3-maint> 2007-09-19 phil * pyuic/uic/uiparser.py: pyuic4 change to support numeric toolbar areas that Designer v4.2 seems to use. [89dd7ad17a6b] <4.3-maint> * PyQt4.msp: Fixed a silly missing increment in the new proxy code. [1a7604a8c2e9] <4.3-maint> * PyQt4.msp: Replaced the single linked list used to store the different types of signal/slot proxies with three hashes. [5ccb602928f6] <4.3-maint> 2007-09-18 phil * PyQt4.msp, test/sigslots/double_disable.py: Some slight refactoring of the signal/slot proxy code in anticipation of making the searching of proxies much faster. [e556fc0c8f75] <4.3-maint> 2007-09-13 phil * contrib/sandbox/sandbox.pyw, pyuic/uic/Loader/qobjectcreator.py: New version of sandbox.pyw from Mark. pyuic4 fix from Ulli for a problem with (for example) QScintilla. [d84fd4d7b3a0] <4.3-maint> 2007-09-05 phil * PyQt4.msp, contrib/sandbox/sandbox.pyw, lib/configure.py: Updated sandbox.pyw from Mark. The locker classes now unconditionally release the lock in the __exit__() method. This avoids a potential deadlock when the 'as' clause is used in a 'with' statement. [56361c20704e] <4.3-maint> 2007-09-01 phil * PyQt4.msp, pyuic/uic/pyuic.py: The PyQtProxy mutex is now allocated on the heap as part of the module initialisation to ensure that Qt's static initialisation is complete beforehand. [8028e39cd6b2] <4.3-maint> 2007-08-30 phil * contrib/sandbox/sandbox.pyw: Updated sandbox.pyw from Mark. [d06ff672e393] <4.3-maint> 2007-08-29 phil * contrib/sandbox/sandbox.pyw: Updated sandbox.pyw from Mark. [c879c61b94f4] <4.3-maint> 2007-08-28 phil * PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/qtcore.html#pyqtRemoveInputHook, doc/pyqtdoc/qtcore.html#pyqtRestoreInputHook: Added the pyqtRemoveInputHook() and pyqtRestoreInputHook() functions to the QtCore module. [dd373b45349e] <4.3-maint> * contrib/sandbox/sandbox.pyw: Updated sandbox from Mark. [3e0d73137f25] <4.3-maint> 2007-08-27 phil * contrib/sandbox/README, contrib/sandbox/sandbox.pyw: Updated sandbox from Mark. [1c9a04287a6e] <4.3-maint> 2007-08-26 phil * PyQt4.msp: A QGraphicsScene instance is now guaranteed to be destroyed before the QApplication instance. This should avoid apparently random crashes when an application that has parentless QGraphicsScene instances terminates. [35f19d703255] <4.3-maint> * PyQt4.msp, contrib/sandbox/sandbox.pyw: The input hook now checks if the current thread is the one in which the application object was created. Added sandbox.pyw from Mark Summerfield to the contrib directory. [0d1611f78603] <4.3-maint> 2007-08-16 phil * PyQt4.msp: Fixed the ordering of the QKeySequence ctors and removed a couple that have been superceded by QKeySequence convertor code. [e884920511da] <4.3-maint> 2007-08-13 phil * lib/configure.py: Explicitly pass the dest argument to all calls to add_option() in configure.py. (It looks like it might be needed for old versions of Python, ie v2.3.x.) [2298f562c285] <4.3-maint> 2007-08-11 phil * contrib/pymodeltest/modeltest.py, lib/LICENSE.commercial, pyuic/uic/properties.py: Change to pyuic to treat property names correctly irrespective of the current locale. [5a0adae1d5b6] <4.3-maint> 2007-08-10 phil * dbus/dbus.cpp, dbus/helper.h, doc/pyqt4ref.txt, examples/designer/plugins/plugins.py, examples/designer/plugins/python/pydemoplugin.py, examples/designer/plugins/widgets/pydemo.py, lib/LICENSE.commercial.short, lib/LICENSE.edu.short, lib/LICENSE.eval.short, lib/LICENSE.gpl.short, pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed pyuic bugs related to QUrl properties and adding QToolBars. [738d1ef5df0f] <4.3-maint> 2007-08-08 phil * examples/opengl/hellogl.py: Fixed the hellogl.py example. [3ce2f0d3c69e] <4.3-maint> 2007-08-07 phil * Makefile, PyQt4.msp, installers/PyQt-eval.nsi-in, installers/PyQt- gpl.nsi-in: Switched to Qt v4.3.1. [f9f27a1f43fb] <4.3-maint> * PyQt4.msp: Added the missing winEvent() to QSizeGrip and QWizard (Windows only). [da898d4975c7] <4.3-maint> 2007-08-04 phil * PyQt4.msp: Added missing /Transfer/ annotations from QToolBar.addWidget() and QToolBar.insertWidget(). [7ba7f7cce150] <4.3-maint> * pyuic/uic/Compiler/qtproxies.py: Added support for QColumnView to pyuic. [b2a45353c6ef] <4.3-maint> 2007-07-30 phil * NEWS: Released as v4.3. [89dd87b81777] [4.3] 2007-07-29 phil * NEWS, installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in: Updated the mega Windows package to include eric4. Updated the NEWS file. [a3f1fa0583b3] 2007-07-27 phil * PyQt4.msp, designer/python.pro-in, doc/pyqt4ref.txt, lib/configure.py, test/sigslots/double_disable.py, test/sigslots/slottypes.py: Fixed QTextEdit.print() to be print_() from Python. Building static plugins (when Qt has been built as shared libraries) is now disabled with a warning message rather than being treated as an error. Added quotes if needed to the Designer Python plugin .pro file. Added the --no-sip-files options to configure.py to disable the installation of the .sip files. Fixed a bug in universal proxy handling that didn't account for disable() legitmately being called twice. [3e8018dc51c4] 2007-07-23 phil * installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in: More PyQwt fixes to pick up the correct __init__.py. [88959233c175] * installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in, lib/configure.py: Debugged the PyQwt support. [823403056d49] * Makefile, installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in, lib/configure.py: Added PyQwt to the mega Windows GPL package - untested. [208d3aaf2f43] * installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in, lib/configure.py: The mega Windows GPL package now supports SSL. The mega Windows GPL package no longer contains the Qt docs. [23a2acccb8b8] 2007-07-21 phil * lib/configure.py: Changed the checking of the Qt layout in configure.py to work around Debian's broken Qt build meaning that it failed to say that Qt was built as shared libraries. [ff29afb6474c] 2007-07-20 phil * PyQt4.msp: A further refinement to the signal/slot handling fix. [3907854b0eaa] 2007-07-17 phil * PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py: Updated the documentation for the new style of configure.py flags. Added --no-qsci-api flag to configure.py based on a patch from Matteo Bertini. Hopefully fixed a bug introduced in the previous signal/slot handling fix. [f7a2815fbb5c] 2007-07-16 phil * PyQt4.msp: Fixed a bug in signal/slot handling where proxies where being incorrectly reused when the original transmitter had been deleted, but a new one had been created at the same address before the proxy had itself been deleted. [e95c1c6151a7] 2007-07-14 phil * lib/LICENSE.gpl.short, lib/configure.py, test/sigslots/slottypes.py: Improvements in configure.py error messages for Windows from Giovanni. [79322f83485f] 2007-07-10 phil * doc/pyqt4ref.txt, lib/configure.py: Reverted the behaviour of configure.py relating to the QScintilla API file. Improved the documentation concerning the -e flag to configure.py. [639a9d491fac] 2007-07-09 phil * PyQt4.msp: Reworked the PyOS_InputHook code based on suggestions from Michiel De Hoon so that it is no longer reliant of the behaviour of readline. [e1d88eeda63d] * lib/configure.py: configure.py argument parsing fixes. [f5e76fc282ad] 2007-07-04 phil * lib/configure.py: Added Giovanni Bajo's patch to configure.py to support optparse. [3633b0f8c15d] 2007-07-01 phil * lib/configure.py: Minor configure.py tweaks. [4a74958120bc] * PyQt4.msp, installers/PyQt-gpl.nsi-in: Acquire the GIL before freeing a signal/slot connection. [1046f40687fe] 2007-06-25 phil * pylupdate/fetchtr.cpp: Fixed a pylupdate bug triggered by single quoted strings when a source codec is specified. [d22d9f55f01a] * pyuic/uic/properties.py: Added support for changing cursor shapes in pyuic. [b0439eae9a79] * pyuic/uic/properties.py, pyuic/uic/uiparser.py: pyuic tries to use setSpacing() rather than setHorizontalSpacing() and setVerticalSpacing() if it can. [ccb77536c800] 2007-06-24 phil * installers/BuildGPL.txt, installers/PyQt-gpl.nsi-in: Updated the GPL Windows installer for the mega-package. [d2065ea95bed] 2007-06-23 phil * NEWS, installers/BuildGPL.txt: Updated the NEWS file. Added the internal document on building the Windows mega-package. [b5e7fec2f813] 2007-06-22 phil * Makefile, lib/configure.py: configure.py will now quit on a keyboard interrupt at the license prompt. [0eff9f4149ce] 2007-06-21 phil * Makefile, PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py: Added the -t flag to configure.py to specify static plugins to be linked when compiling against a static Qt. [c77f94afeaf0] 2007-06-20 phil * examples/sql/connection.py: Fixed a bug in the SQL examples. [bc8b8c53d204] * Makefile, lib/configure.py: Added the internal flag to configure.py to include QScintilla in the big consolidated module. [f9fdebdccee8] * pylupdate/fetchtr.cpp: Fixed a pylupdate4 bug related to tripple quotes and UTF8 source code. [1831fc6b7753] * lib/configure.py: Adopted the new SIP %CompositeModule and changed to handling of %CondolidatedModule accordingly. This means that using the -g flag to configure.py will generate a new _qt module. [b54126c3cef1] 2007-06-19 phil * Makefile, lib/configure.py: Improved the detection of a static Qt build. Disabled the QtDesigner module with a static Qt build. [7e7ba479afa4] * Makefile, lib/configure.py: Build system changes so that consolidated modules now build and work. (Untested against static libraries.) [1d920d2f6944] 2007-06-18 phil * PyQt4.msp, lib/configure.py: Removed the use of an internal name from handwritten code. Disable the generation of an API file if generating consolidated modules. [c301caa8759a] 2007-06-16 phil * PyQt4.msp, examples/designer/plugins/widgets/helloglwidget.py: Fixed a bug in the Qt Designer plugins example. [f76ce7e7f232] 2007-06-14 phil * examples/graphicsview/collidingmice/collidingmice.py: Improved the speed of the collidingmice.py example based on a hint from Richard Dale. [95f24acb0fd7] 2007-06-12 phil * PyQt4.msp, doc/pyqt4ref.txt, installers/PyQt-eval.nsi-in, installers /PyQt-gpl.nsi-in: Added some extra %ModuleHeaderCode for #include files that were previously being picked up by accident. (SIP v4.7 is a little bit more picky about this.) [88fcd2fc9fbe] 2007-06-06 phil * pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed a Qt 4.3 related pyuic problem with QLayout.setContentsMargins(). [2af484d3f65f] 2007-06-01 phil * PyQt4.msp: Removed the /TransferBack/ annotations on QLayout.removeWidget(), QStackedWidget.removeWidget(), QStatusBar.removeWidget() and QTabWidget.removeTab() because QLayout.removeWidget() does not reparent the widget being removed so it is still owned by C++. [715545628240] 2007-05-30 phil * Makefile, PyQt4.msp, doc/pyqtdoc/qpydesignerscriptextension.html#details, qpy/QtDesigner/qpydesigner.pro, qpy/QtDesigner/qpydesignerscriptextension.h, qpy/QtDesigner/qpydesignerscriptextension.sip: Qt v4.3.0 is now fully supported. It will no longer build against Qt v4.3.0rc1. [947d447d1789] * Makefile, dbus/dbus.cpp, doc/pyqt4ref.txt, lib/configure.py: Changed the handling of DBus in configure.py so that it should work automatically for the most common configurations. [660e5a714fc7] 2007-05-28 phil * Makefile, doc/pyqt4ref.txt, lib/configure.py: Added the -e flag to configure.py to enable specific modules only. [de13c595231d] 2007-05-27 phil * Makefile, doc/pyqt4ref.txt, lib/configure.py: Added the -g flag to configure.py to build PyQt with all the wrapper code in the Qt module and only it is linked against a Qt library. (The corresponding SIP support is not yet implemented.) [8fd8cb3bd428] 2007-05-25 phil * lib/configure.py: Fixed a configure.py bug that was preventing the Qt module being built and installed. [5f4e58986a41] 2007-05-24 phil * lib/configure.py: The Qt consolidated module is now implemented in C and ignores errors with missing modules. [4d4a227da701] 2007-05-20 phil * PyQt4.msp: QObject.findChild() and QObject.findChildren() now implement /Transfer/ on the returned objects. [330b81a3c4e0] 2007-05-18 phil * PyQt4.msp, lib/configure.py: The SSL support is now disabled if Qt was built without SSL support (thanks to David Boddie). [3802c0e63690] 2007-05-17 phil * PyQt4.msp, doc/pyqt4ref.txt: Fixed a bug in the implementation of proxy signals. [2b9a861fb565] 2007-05-16 phil * PyQt4.msp: Added a missing /Transfer/ from QAbstractSpinBox.lineEdit(). [f6c9fbfdaca7] 2007-05-13 phil * PyQt4.msp: Implemented the /Transfer/ method annotation where it seemed appropriate. Changed some handwritten code to use the new sipTransferBreak() rather than sipTransferBack() where Qt deletes the object. Added other missing transfer annotations. [91693cd9eb5b] * pyqtdoc/renderer.py: Documentation update for QtScript. [0e2f28e56a93] 2007-05-12 phil * PyQt4.msp, build.py, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/qtscript.html#details, examples/script/README, examples/script/helloscript.py, lib/configure.py, lib/pyqtconfig.py.in: Added the QtScript module. Finalised the %ConvertToSubClassCode. Qt v4.3.0rc1 is now fully supported. [a24eb6c820de] * PyQt4.msp, examples/tools/qtdemo/qtdemo.py: Fixed problems with the move of the QFileIconProvider class. [ad3426d9dc33] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: Finished the Qt v4.3.0 support for the QtGui module. [865e880f6a50] 2007-05-11 phil * PyQt4.msp: More Qt v4.3.0 support for the QtGui module. [279f12ccdea0] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: More Qt v4.3.0 support for the QtGui module. [27dbd2b8db9c] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: Added Qt v4.3.0 support to about a third of the QtGui module. [53a40b456e69] * PyQt4.msp: QSslCertificate.alternateSubjectNames() is now implemented. [ce2513db8488] 2007-05-10 phil * PyQt4.msp: Added Qt v4.3.0 support to the QtNetwork module (except for QSslCertificate.alternateSubjectNames() which needs a %MappedType). [7e63c95d2f5e] * PyQt4.msp: Added Qt v4.3.0 support to the QtSql and QtSvg modules (except for the buggy methods in QSvgGenerator). [4755dd2acc9a] * PyQt4.msp: Added Qt v4.3.0 support to the QtTest and QtXml modules. Added QStringRef to QtCore. Added the additional QChar methods. [04b6cfcaef93] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/qpydesignerscriptextension.html#details, qpy/QtDesigner/qpydesigner.pro, qpy/QtDesigner/qpydesignerscriptextension.h, qpy/QtDesigner/qpydesignerscriptextension.sip: Added Qt v4.3.0 support to the QtDesigner module. Documentation changes due to changes in the v4.3.0 HTML. [870f7078dea5] * PyQt4.msp, lib/configure.py: Added Qt v4.3.0 support to the QtAssistant and QtCore modules (with the exception of a few undocumented QChar methods). [df8fc15c178c] 2007-05-09 phil * pyuic/uic/properties.py: Fixed pyuic sizePolicy handling for Qt v4.3.0. [26fc7a3f5e81] * Makefile, examples/tools/qtdemo/qtdemo.py: The qtdemon example will now run correctly no matter which directory it is started from. Switched the internal build system to Qt v4.3.0rc1. [1bf401c474c3] 2007-05-02 phil * PyQt4.msp, lib/LICENSE-eval-gpl.txt: Added a missing /Transfer/ from QTabWidget.setTabBar(). [3d62429075f0] 2007-04-28 phil * NEWS, doc/pyqt4ref.txt, lib/configure.py: Changed the meaning of the -d option to configure.py so that the top level directory is always called PyQt4. [f712f404fed2] 2007-04-27 phil * doc/pyqt4ref.txt, test/test_pickle.py: Documented that all enums can now be pickled (even though they be be nested types). Updated the installation documentation regarding the -d flag to configure.py. [1accea64df6b] 2007-04-24 phil * PyQt4.msp: Added the missing QItemDelegate.editorEvent(). [909895cb58e5] 2007-04-23 phil * PyQt4.msp: Replaced the broken QTranslator.load() overload with QTranslator.loadFromData(). [a3a003e8531c] * PyQt4.msp, doc/pyqt4ref.txt: Added the pickle code for QColor, QDateTime, QKeySequence, QMatrix and QPolygon. [684efa67aa47] 2007-04-22 phil * PyQt4.msp: Added pickle code for QByteArray, QChar, QDate, QLatin1Char, QLatin1String, QLine, QLineF, QPoint, QPointF, QRect, QRectF, QSize, QSizeF and QTime. [4c91c8406794] * PyQt4.msp, lib/configure.py, test/test_findChildren.py, test/test_pickle.py, test/test_postEvent.py: Changed the SIP dependency to v4.7. Added the %PickleCode for QString. [f4a0a9a3f6a0] 2007-04-18 phil * installers/AddToPath.nsh: Added the missing AddToPath.nsh file to SVN. [a29d08444349] 2007-04-16 phil * PyQt4.msp, build.py: Added a missing /Transfer/ from QDockWidget.setWidget(). Added the AddToPath.nsh code for Windows. [5dfd184acc58] 2007-04-13 phil * installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in: Changed the installers to add the Qt bin directory to PATH. [809ce556ee85] 2007-04-12 phil * PyQt4.msp: Fixed an incorrect Qt v4.2 dependency. [7e978b2943c3] 2007-04-10 phil * doc/pyqt4ref.txt, installers/PyQt-eval.nsi-in, installers/PyQt-gpl .nsi-in, test/test_StandardKey.py, test/test_findChildren.py: Fixed the installers to deal with the Qt Designer plugin. Added a couple of extra test scripts. Fixed a copyright notice. [02220ffc9cbf] * NEWS: Released as v4.2. [b956cf43179c] [4.2] 2007-04-09 phil * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: A StandardKey may now be used whenever a QKeySequence is expected. [876bf160610a] 2007-04-08 phil * PyQt4.msp, test/ownership/guiBridges.py, test/ownership/pyqtbug6.py, test/ownership/semaphore.py, test/ownership/wref.py, test/sigslots/form4.ui, test/sigslots/sample-main.py, test/sigslots /sample-thread.py, test/sigslots/signalsignal.py, test/sigslots/sigsig2.py, test/test_QDate.py, test/test_QDateTime.py, test/test_QDir.py, test/test_QPoint.py, test/test_QRect.py, test/test_QRegion.py, test/test_QSize.py, test/test_QString.py, test/test_QStringList.py, test/test_QTime.py, test/test_pyuic.py, test/ui/BookmarkForm.ui, test/ui/ConnectionWizard.ui, test/ui/MainInterface.ui, test/ui/PreferencesForm.ui, test/ui/RunControlMainGUI.ui, test/ui/ToolConfigurationForm.ui, test/ui/designerTest.ui, test/ui/menus.ui, test/ui/pqfaxdial.ui, test/ui/pyqt4-font-test.ui, test/ui/spacer.ui: Fixed a bug with a Qt signal connected to a Python signal connected to a Python slot where the GIL was being released when it wasn't being held. The fix involved backing out some changes made when investigating the deadlock problems. However the deadlock related examples still seem to be Ok. Reviewed the test cases, throwing out the Qt3 related ones and adding recent Qt4 ones. [c7c3f38b0aa6] 2007-04-07 phil * examples/itemviews/basicsortfiltermodel.py, examples/itemviews/sortingmodel/default.txt, examples/itemviews/sortingmodel/sortingmodel.py, examples/itemviews/sortingmodel/sortingmodel.qrc, examples/itemviews/sortingmodel/sortingmodel_rc.py, examples/tools/qtdemo/examples.xml, examples/tools/qtdemo/qtdemo_rc.py, installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in: Replaced the sortingmodel example with the basicsortfiltermodel example. Updated the NSIS installer files for Qt v4.2.3. [6d5323c2c459] * contrib/pymodeltest/modeltest.py, examples/itemviews/simpledommodel.py, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/itemviews/sortingmodel/sortingmodel.py: Added a new modeltest.py from Andreas. Some itemview example patches from Andreas. [e88ff3a8061f] 2007-04-06 phil * contrib/pymodeltest/modeltest.py: Updated pymodeltest from Andreas. [2c53e6512fde] 2007-04-05 phil * pyuic/uic/properties.py: Fixed pyuic so that it no longer tries to update a widget's existing font, but instead creates a new one from scratch (as uic does). [5d63a1c98f83] 2007-04-04 phil * build.py, contrib/pymodeltest/LICENSE.GPL, contrib/pymodeltest/README, contrib/pymodeltest/modeltest.py: Added the port of the modeltest tool from Andreas to the new contrib directory. [e541666cc7fb] * doc/pyqt4ref.txt, lib/configure.py: Added the -n flag to configure.py to specify where the API file is installed. [56831c6cc2c4] * designer/pluginloader.cpp, designer/python.pro-in, doc/pyqt4ref.txt, lib/configure.py: The default search path used by the Python Designer plugin is the "python" subdirectory of each directory that Designer searches in. Added the -p flag to configure.py to specify where the Designer plugin is to be installed. [821e77f8868f] 2007-04-03 phil * lib/pyqtconfig.py.in: Removed the archaic calls to apply() in pyqtconfig.py. [6c854ecb4d42] * lib/configure.py: Disabled the QtDesigner module when building universal binaries because of build system problems - probably related to the static QPy library. [00420f6ee167] 2007-04-02 phil * lib/configure.py: Changed the build system to build universal binaries on MacOS/X if SIP was configured to do so. [206df0c934b1] * lib/configure.py: Fixed the build problem with Designer plugins with MinGW. [7b4d97908d91] * NEWS, PyQt4.msp: Added the missing sub-class convertor code to QLayoutItem. [e012bcf29f1c] 2007-03-25 phil * PyQt4.msp: Added support for wchar_t and wchar_t * external signals. [dd0ec6a70f04] 2007-03-22 phil * Makefile, PyQt4.msp, examples/tutorial/t2.py, examples/tutorial/t6.py, examples/tutorial/t7.py, examples/tutorial/t8.py: Added /TransferBack/ functionality to QTabWidget.removeTab(). [7e95fa3fa798] 2007-03-18 phil * pylupdate/fetchtr.cpp, pylupdate/main.cpp, pylupdate/metatranslator.cpp, pylupdate/metatranslator.h, pylupdate/proparser.cpp, pylupdate/proparser.h, pylupdate/simtexth.h, pylupdate/translator.cpp, pylupdate/translator.h: Updated pylupdate from Detlev. [9251ef45eaea] 2007-03-16 phil * PyQt4.msp, doc/pyqt4ref.txt, examples/sql/connection.py: Slot proxies created for methods of QObject sub-classes are now moved to the thread of the QObject they are proxying for. This is now consistent with the Qt behaviour. [707716c0ff24] 2007-03-10 phil * PyQt4.msp: Added the QApplication ctors that take a Display *. [56e50b9663d3] 2007-03-07 phil * Makefile, PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: Updated the internal build system to Qt v4.2.3. [9036d319a307] 2007-03-04 phil * PyQt4.msp: Added qt_set_sequence_auto_mnemonic(), qt_x11_wait_for_window_manager(), qt_mac_secure_keyboard(), qt_mac_set_dock_menu(), qt_mac_set_menubar_icons(), qt_mac_set_menubar_merge(), qt_mac_set_native_menubar() and qt_mac_set_press_and_hold_context() to the QtGui module. [3cdba1cf524d] 2007-03-03 phil * PyQt4.msp: Fiex bugs in QObject.findChildren(). [0daf71afc46b] 2007-02-28 phil * PyQt4.msp: Made sure the GIL is released any time QMetaObject::activate() is called. [07ebf73cf4c8] 2007-02-27 phil * lib/configure.py: Added fix from Ulli to configure.py to check that a Python shared library actually exists. [3bb50f4fee0f] * doc/pyqt4ref.txt, lib/configure.py: SIP is now run with the -g flag. [012c7cff41ff] 2007-02-25 phil * pyuic/uic/objcreator.py: Made the pyuic4 plugins directory optional. [9447fb9ea844] * PyQt4.msp: Don't pass the numItems argument to Python when calling the drawItems() methods (see previous change). [b2d06b038085] 2007-02-24 phil * PyQt4.msp: Fixed QGraphicsView.drawItems() and QGraphicsScene.drawItems(). [5e2a443639ca] * PyQt4.msp: Released the GIL in handwritten code of methods of QObject derived classes. [c1927161e410] 2007-02-22 phil * qpy/QtDesigner/qpydesigner.pro, qpy/QtDesigner/qpydesignercontainerextension.h, qpy/QtDesigner/qpydesignercustomwidgetcollectionplugin.h, qpy/QtDesigner/qpydesignercustomwidgetplugin.h, qpy/QtDesigner/qpydesignermembersheetextension.h, qpy/QtDesigner/qpydesignerpropertysheetextension.h, qpy/QtDesigner/qpydesignertaskmenuextension.h: Improved the .pro file for the Designer QPy classes. [81bc3c9ca1cf] * Makefile, PyQt4.msp: Fixed the AWOL QObject.metaObject() method. [efe775e64c13] 2007-02-19 phil * examples/designer/plugins/python/analogclockplugin.py, examples/designer/plugins/python/bubbleswidgetplugin.py, examples/designer/plugins/python/counterlabelplugin.py, examples/designer/plugins/python/helloglwidgetplugin.py, examples/designer/plugins/python/highlightedtexteditplugin.py, examples/designer/plugins/python/polygonwidgetplugin.py, examples/designer/plugins/python/pythonconsoleplugin.py, examples/designer/plugins/widgets/analogclock.py, examples/designer/plugins/widgets/bubbleswidget.py, examples/designer/plugins/widgets/counterlabel.py, examples/designer/plugins/widgets/helloglwidget.py, examples/designer/plugins/widgets/highlightedtextedit.py, examples/designer/plugins/widgets/polygonwidget.py, examples/designer/plugins/widgets/pythonconsolewidget.py: Added DavidB's Designer plugin examples. [a05a89177c60] 2007-02-18 phil * PyQt4.msp: The proxies for signals are no longer children of the transmitter but are connected to the destroyed() signal (just like slots). This means they will hang around longer if they are proxying for the destroyed() signal itself. [aab10074b2f0] * lib/configure.py: Made some attempt to check that the Python library is dynamic before building the Designer plugin. [422f071ef9a0] * PyQt4.msp: Make sure the Python object returned by a property getter is kept until the next get so that we are sure that there is always a valid pointer. [144ccfa123e2] * designer/pluginloader.cpp: The Designer plugin now ignores the QPyDesignerCustomWidgetPlugin type object (because it is abstract) and only instantiates its sub- types. [9d7821d1c14c] 2007-02-17 phil * designer/pluginloader.cpp: Fixed another pre-Python 2.5 problem in the Designer plugin. [75ee6035bb46] * designer/pluginloader.cpp, designer/pluginloader.h: Removed a couple of consts from the designer plugin for Python v2.4 and earlier. [c8140ee6eb23] * doc/pyqt4ref.txt: Added the documentation (briefly) describing how to write Designer plugins. [9a695b9908c3] 2007-02-16 phil * PyQt4.msp, designer/python.pro-in, examples/designer/README, examples/designer/plugins/plugins.py, examples/tools/qtdemo/examples.xml, examples/tools/qtdemo/qtdemo_rc.py, lib/configure.py, qpy/QtDesigner/qpydesigner.pro: Ported all the plugin/meta-object support to Windows and Mac. [fa6200bf1611] * PyQt4.msp, designer/python.pro-in, examples/designer/plugins/plugins.py, examples/designer/plugins/python/pydemoplugin.py, examples/designer/plugins/widgets/pydemo.py: Added the Qt Designer plugin example and the framework for adding more examples by just dropping them in to the relevant directories. [c1b4ad6602f9] 2007-02-15 phil * designer/pluginloader.cpp, designer/pluginloader.h: Finished the Qt Designer plugin. This completes the support for writing Designer plugins in Python - but not yet documented or ported to Windows and Mac. [011a77c3b35a] 2007-02-12 phil * designer/pluginloader.cpp, designer/pluginloader.h, designer/python .pro-in: More work on the Designer plugin. Plugins are correctly imported but their contents are not yet exported to Designer. [cfb4d6cffdd1] * build.py, designer/pluginloader.cpp, designer/python.pro-in, lib/configure.py: Added the basis of the Qt Designer plugin. [ea2f700835be] 2007-02-11 phil * PyQt4.msp: Added signal support to QMetaObjects. [e9f65023fd2a] * PyQt4.msp: Added introspected slots to the QMetaObject support. [b9a998bf6298] * PyQt4.msp, doc/pyqt4ref.txt: Changed the implementation of pyqtSignature() slightly so that the stored signature always has a method name. Documented that a method name can be given as part of a pyqtSignature() so that the Python method name can be overridden. [708ca97fe679] * PyQt4.msp: pyqtProperty() now handles enum properties. [61b2b3551e48] 2007-02-10 phil * PyQt4.msp: Added freset to pyqtProperty. Added support for flag properties. [d4766c886483] 2007-02-09 phil * PyQt4.msp: Python properties are now integrated with Qt properties (except for enums and flags). [6497457118df] 2007-02-06 phil * PyQt4.msp: More property integration. [edd2141bf32e] 2007-02-05 phil * PyQt4.msp: Completed the initial setup of PyQt properties. They now appear in Designer, but not yet handled by qt_metacall(). [2b6b2e3f5451] 2007-02-04 phil * PyQt4.msp: Added the pyqtProperty class for defining Python properties to Qt. (Not yet integrated with QMetaObject.) [daaa4810a0e8] 2007-01-31 phil * pyuic/uic/uiparser.py: Fixed a pyuic bug handling resource files that include a pathname. [88aff59e99f6] 2007-01-30 phil * PyQt4.msp: Started to add the metaObject() support. For the moment meta- objects don't support signals, slots or properties. [99710d526fa2] 2007-01-28 phil * doc/pyqtdoc/qpydesignercontainerextension.html#details, doc/pyqtdoc/qpydesignercustomwidgetcollectionplugin.html#details, doc/pyqtdoc/qpydesignercustomwidgetplugin.html#details, doc/pyqtdoc/qpydesignermembersheetextension.html#details, doc/pyqtdoc/qpydesignerpropertysheetextension.html#details, doc/pyqtdoc/qpydesignertaskmenuextension.html#details, doc/pyqtdoc/qtdesigner.html#details: Added the documentation for the QtDesigner QPy classes. [d2dfa1abbcc0] * PyQt4.msp, qpy/QtDesigner/qpydesigner.pro, qpy/QtDesigner/qpydesignercontainerextension.h, qpy/QtDesigner/qpydesignercontainerextension.sip, qpy/QtDesigner/qpydesignermembersheetextension.h, qpy/QtDesigner/qpydesignermembersheetextension.sip, qpy/QtDesigner/qpydesignerpropertysheetextension.h, qpy/QtDesigner/qpydesignerpropertysheetextension.sip: Added the extra QtDesigner QPy classes that aren't needed by David's examples. [709257fbc2d7] * build.py, lib/configure.py, qpy/QtDesigner/qpydesigner.pro, qpy/QtDesigner/qpydesignercustomwidgetcollectionplugin.h, qpy/QtDesigner/qpydesignercustomwidgetcollectionplugin.sip, qpy/QtDesigner/qpydesignercustomwidgetplugin.h, qpy/QtDesigner/qpydesignercustomwidgetplugin.sip, qpy/QtDesigner/qpydesignertaskmenuextension.h, qpy/QtDesigner/qpydesignertaskmenuextension.sip: Added the (as yet undocumented) QPy classes to the QtDesigner module. [70574ee75c0c] 2007-01-27 phil * PyQt4.msp: Changed the Qt support API setup to futureproof it. [3b6a7d029164] * NEWS, PyQt4.msp, lib/configure.py: Added the stub for creating meta-objects for new Python classes. [1355ddfb6eab] 2007-01-25 phil * Makefile, PyQt4.msp, build.py, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/qtdesigner.html#details, pyqtdoc/renderer.py: Documented the QtDesigner module (but not how to use it). [7a57485516ce] * PyQt4.msp, lib/configure.py, lib/pyqtconfig.py.in, pylupdate/fetchtr.cpp: Added the QtDesigner module (undocumented as yet). [4d2de485d469] * PyQt4.msp: Included the (probably temporary) setData() and setSuper() methods to QMetaObject. [99e527ab412c] 2007-01-23 phil * PyQt4.msp, pyuic/uic/__init__.py: Added support for qt_metacall(). This is a significant part of the support for plugins implemented in Python. This compile, but is otherwise untested. [77887debbd2f] 2007-01-22 phil * pylupdate/fetchtr.cpp: Another pylupdate update from Detlev. [3617641b7a8a] 2007-01-21 phil * PyQt4.msp: Implemented sipQtFindConnection() so that lambda slots can be handled by the cyclic garbage collector. [b7b952362dbf] 2007-01-20 phil * pylupdate/fetchtr.cpp, pylupdate/main.cpp, pylupdate/merge.cpp, pylupdate/metatranslator.cpp, pylupdate/metatranslator.h, pylupdate/numberh.cpp, pylupdate/pylupdate.sbf, pylupdate/sametexth.cpp, pylupdate/simtexth.cpp, pylupdate/simtexth.h, pylupdate/translator.cpp, pylupdate/translator.h: Another pylupdate update from Detlev. [93aca6209f23] * pylupdate/fetchtr.cpp, pylupdate/metatranslator.cpp, pylupdate/metatranslator.h, pylupdate/pylupdate.sbf, pylupdate/translator.cpp, pylupdate/translator.h: Added the new version of pylupdate from Detlev. [6fc4b0303cc9] 2007-01-17 phil * pyuic/uic/widget-plugins/qaxcontainer.py, pyuic/uic/widget- plugins/qscintilla.py: Fixed pyuic4 for QScintilla. [fa566c88b860] 2007-01-16 phil * pylupdate/fetchtr.cpp, pylupdate/merge.cpp, pylupdate/metatranslator.cpp, pylupdate/metatranslator.h, pylupdate/translator.h: Hopefully fixed pylupdate for Qt v4.2. [ed966207e24f] 2007-01-15 phil * PyQt4.msp, lib/LICENSE.commercial.short, lib/LICENSE.edu.short, lib/LICENSE.eval.short, lib/LICENSE.gpl.short, lib/LICENSE.internal: Updated the copyright notices. Fixed the Transfer annotations around QGraphicsItem now that we have a better understanding of the dual relationships between items and their parent and items and their scenes. [4c95d6f83559] 2007-01-04 phil * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: A QGradient can now be used wherever a QBrush can be used. [20bc9e42a977] 2006-12-26 phil * doc/pyqt4ref.txt: Added the documentation for the dbus support module. [9d4dd4a4fd8c] 2006-12-25 phil * dbus/dbus.cpp: Fixed a problem with the dbus module where timeouts could still be being added after the QCoreApplication instance had been destroyed. [1de030e69564] * dbus/dbus.cpp, dbus/helper.h, lib/configure.py: The dbus-python example-signal-recipient.py example now behaves the same as the GLib version. [6cff7b1445d2] 2006-12-23 phil * build.py, dbus/dbus.cpp, dbus/dbus.sbf, dbus/dbusmod.sip, dbus/helper.h, lib/configure.py: Redid the dbus module as it no longer needs to be SIP generated, and give it the same API as the corresponding glib module. [a5f6731d4d73] 2006-12-22 phil * dbus/dbusmod.sip, dbus/helper.h: Completed the implementation of the dbus support module. [5a0b1e1e62e1] * dbus/dbusmod.sip, dbus/helper.h: Implemented the watch callbacks for the DBus support module. The example-client.py seems to work. [97bd47cf9a83] * dbus/dbusmod.sip, dbus/helper.h, lib/configure.py: More stubs for the DBus support mordule. [38e9c247944f] 2006-12-21 phil * dbus/dbusmod.sip: Really added the DBus support module stubs this time. [f2153812a13a] * build.py, lib/configure.py: Added the stubs for the DBus support module. [6466a72784b0] 2006-12-20 phil * PyQt4.msp, doc/pyqt4ref.txt: Implemented PyOS_InputHook. [df4e0dd4cd96] * PyQt4.msp: Added a missing /Factory/ annotation to QTextEdit.createMimeDataFromSelection(). [edea3a1efcbe] 2006-12-12 phil * PyQt4.msp: Fixed bugs in the sub-class conversion code for QGraphicsTextItem and QGraphicsSvgItem that didn't take into account the multiple inheritance. [5a434a5592ad] 2006-12-10 phil * PyQt4.msp: Fixed a bug in the signal/slot handling where it was wrongly assumed that QObject::sender() would never return 0. [389dcd7b56a9] 2006-12-09 phil * NEWS, build.py: Updated the NEWS file. Fixed the internal build system for later versions of docutils. [94396f1a0b49] 2006-12-06 phil * NEWS, PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py: Fixed a reference count bug with the handling of PyObject * as an argument to emit. Replaced "PyObject *" as a special signal argument type with "PyQt_PyObject" and made it possible to emit Python objects asynchronously without the sender having to keep a reference. Changed short-circuit signals to use PyQt_PyObject. Documented that lambda functions can now be used as slots. The minimum SIP requirement is now v4.5.1. [c5650c095563] 2006-12-03 phil * PyQt4.msp: Reverted to the PyQt3 way of ensuring that top level widget are destroyed before the QApplication. [3a2a98d93fb1] 2006-11-30 phil * PyQt4.msp, examples/draganddrop/draggableicons/draggableicons.py: Fixed a bug in QCoreApplication and QApplication ctor handwritten code that caused a crash if either was created a second time with no arguments. Changed the handling of the delayed destruction of QCoreApplication and QApplication instances to possible avoid a crash if more than one was created in an interpreter. (However, such a case will still not work as expected because of the multiple instances.) Fixed a bug in the draggableicons.py example. [55e2219a90c5] 2006-11-29 phil * Makefile, PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in, lib/configure.py, pylupdate/main.cpp: Fixed a couple of documentation errors. Updated to Qt v4.2.2. Fixed a regression in one of the QLabel ctors introduced in PyQt v4.1. [370cf6cc815f] 2006-11-19 phil * pyuic/uic/__init__.py: Fixed a typo in the functions exported by the uic module. [0b5a060ea0d0] 2006-11-12 phil * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py: Added support for the (apparently) new-style palette descriptions to pyuic. [ed5133f89cdc] 2006-11-11 phil * PyQt4.msp: Fixed an object ownership bug in QTextBlock.setUserData(). [babc969a98ec] 2006-11-04 phil * NEWS: Released as v4.1. [3239c481cb55] [4.1] * PyQt4.msp: Updated QObject::tr() and QObject::trUtf8() for Qt v4.2 so they are modelled on the (changed) QMetaObject functions. [c65f56e161f8] * examples/mainwindows/sdi/sdi.py: Fix for an indentation bug in the sdi.py example from Ulli. [a12fa47434be] * PyQt4.msp: Fixed QX11EmbedContainer.error() and QX11EmbedWidget.error() for Qt v4.1. [b15d156b2e21] * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/qobjectcreator.py: A couple of pyuic4 fixes from Torsten. [c3316fe93413] 2006-11-03 phil * PyQt4.msp, examples/activeqt/webbrowser/icons/image0.xpm, examples/activeqt/webbrowser/icons/image1.xpm, examples/activeqt/webbrowser/icons/image2.xpm, examples/activeqt/webbrowser/icons/image3.xpm, examples/activeqt/webbrowser/icons/image4.xpm, examples/activeqt/webbrowser/icons/image5.xpm, examples/activeqt/webbrowser/icons/image6.xpm, examples/activeqt/webbrowser/mainwindow.qrc, examples/activeqt/webbrowser/mainwindow.ui, examples/activeqt/webbrowser/mainwindow_rc.py, examples/activeqt/webbrowser/ui_mainwindow.py, examples/activeqt/webbrowser/webbrowser.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/images.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py: Backout the start of the pyuic4 embedded image support as it only ever seems to be used by .ui files converted from Qt3. Added support to pyuic4 for resource files. Fixed the webbrowser.py example and converted it to use a resource file. Adjust the position of the handwritten ctors that take a QVariant argument to work around a problem with the HTML documentation. [f815926b214e] 2006-10-29 phil * examples/activeqt/webbrowser/ui_mainwindow.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/indenter.py, pyuic/uic/Loader/loader.py, pyuic/uic/images.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed the handling of QActionGroups in pyuic4. Started to add support for embedded images in pyuic4. [d5d6762399cf] 2006-10-28 phil * installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in, lib/configure.py: Fixed build problem with Qt's binary Mac package. Updated the Windows installers to Qt v4.2.1. [d494365341ab] * PyQt4.msp, build.py, doc/pyqtdoc/PyQt4.xfm, pyqtdoc/xform.py, pyuic/uic/Compiler/qobjectcreator.py: Fixed a Python >=2.4 dependency in pyuic4. The HTML docs are now derived from Qt v4.2.1. Fixed commitDataRequest() and saveStateRequest() in QApplication when QSessionManager support is disabled. [3d6aec66c1c3] * PyQt4.msp, doc/pyqt4ref.txt, lib/configure.py, lib/pyqtconfig.py.in: Removed the QtDBus support. [fff738d7f5a0] 2006-10-27 phil * NEWS, PyQt4.msp, build.py, doc/pyqtdoc/PyQt4.xfm, lib/configure.py: More QtDBus support. Python datetime, date and time objects can be used anywhere that a QDateTime, QDate and QTime respectively can be used. Added QDate.toPyDate(), QDateTime.toPyDateTime() and QTime.toPyTime(). Updated the NEWS file. Updated the XML rules for generating the HTML API docs. [4f6368870fc4] 2006-10-22 phil * PyQt4.msp, build.py, doc/pyqt4ref.txt, lib/configure.py, lib/pyqtconfig.py.in: Started support for QtDBus. [a213de5ca44e] 2006-10-21 phil * PyQt4.msp, pyuic/uic/Compiler/proxyproperties.py, pyuic/uic/Loader/loader.py, pyuic/uic/__init__.py, pyuic/uic/objcreator.py: Applied Matt Newell's fix to pyuic. [ec7be2e8bb0d] * Makefile, PyQt4.msp, pyuic/uic/Compiler/compiler.py: Updated for Qt v4.2.1. Fixed tr() and trUtf8() for Qt v4.2. Fixed a pyuic bug when there were no i18n strings. [1c198caa8835] 2006-10-20 phil * PyQt4.msp, doc/pyqt4ref.txt, examples/graphicsview/README, examples/graphicsview/collidingmice/collidingmice.py, examples/graphicsview/collidingmice/images/cheese.jpg, examples/graphicsview/collidingmice/mice.qrc, examples/graphicsview/collidingmice/mice_rc.py, examples/graphicsview/elasticnodes.py, examples/tools/qtdemo/examples.xml, examples/tools/qtdemo/qtdemo_rc.py, lib/configure.py: Reapplied the change to the type of PYQT_VERSION_STR now that we require SIP v4.5. Added QtDBus to the metasip project. Added the collidingmice and elasticnodes examples. Added the missing QGraphicsItem.UserType. Added some QTextStream << operators for basic types. Fixed the X11 specific code in QApplication %ConvertToSubClassCode. Added context manager support to QReadLocker and QWriteLocker. The PyQt4.api file is installed is QScintilla is found or the -a flag is given. Handle the change in debug libraries in Qt v4.2. [dee62825c511] 2006-10-15 phil * PyQt4.msp: Finished the support for Qt v4.2 (except for the QtDBus module). [32a3adeb7757] * PyQt4.msp: Added the QX11Embed* classes. Added the Qt v4.2 QUndo* classes. [155d4ff6a839] * PyQt4.msp: Finished the Qt v4.2 support - except for the new undo classes and QGraphics*. [0dea638c836a] * PyQt4.msp: More work on Qt v4.2 support - about half of QtGui is now done. [dc105f8f2f65] 2006-10-14 phil * PyQt4.msp: Finished updating QtCore for Qt v4.2. [94e5e78eaf51] 2006-10-13 phil * PyQt4.msp: Some more Qt 4.2 support. [3f5fd61cf975] 2006-10-08 phil * PyQt4.msp: More work on the Qt v4.2 support. [83d488be14db] 2006-10-07 phil * Makefile, PyQt4.msp, lib/configure.py: Implemented the minimum changes needed to build against Qt v4.2.0. Only tested on Linux. [ada40692cb90] 2006-10-06 phil * doc/pyqt4ref.txt, lib/configure.py: An API file for QScintilla2 is now created automatically. [3fd2e3202bba] 2006-09-30 phil * installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in, lib/configure.py: Fixes for building QAxContainer on Windows. [1591410e259d] 2006-09-29 phil * examples/activeqt/webbrowser/ui_mainwindow.py, pyuic/uic/widget- plugins/qaxcontainer.py: Removed the exception so that pyuic can handle ActiveQt classes on Linux. [994ce677b6d0] 2006-09-23 phil * PyQt4.msp, build.py, doc/pyqt4ref.txt, doc/pyqtdoc/qttest.html#details, installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in, lib/configure.py, lib/pyqtconfig.py.in, pyqtdoc/renderer.py: Added the QtTest module - those functions that simulate user interaction. [815ef4853986] 2006-09-22 phil * pyuic/tests/datetimewidgets.ui, pyuic/tests/qtablewidget.ui, pyuic/tests/qtabwidget.ui, pyuic/tests/qtoolbox.ui, pyuic/tests/testsuite.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/loader.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/exceptions.py, pyuic/uic/objcreator.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py, pyuic/uic/widget-plugins/qaxcontainer.py, pyuic/uic/widget-plugins/qwt.py: Updated to Torsten's latest pyuic4 snapshot including support for widget plugins. There seem to be a regression in QAxContainer support. [eec00cc716d6] 2006-09-17 phil * PyQt4.msp: QMutexLocker now supports the Python 2.5 context manager protocol. [39f165583aff] * pyuic/LICENSE, pyuic/tests/BookmarkDialog.ui, pyuic/tests/QRegExpWizardDialog.ui, pyuic/tests/dockwidget-in- mainwindow.ui, pyuic/tests/eric4_ui/AboutDialog.ui, pyuic/tests/eric4_ui/AddDirectoryDialog.ui, pyuic/tests/eric4_ui/AddFileDialog.ui, pyuic/tests/eric4_ui/AddFoundFilesDialog.ui, pyuic/tests/eric4_ui/AddLanguageDialog.ui, pyuic/tests/eric4_ui/ApplicationPage.ui, pyuic/tests/eric4_ui/BookmarkDialog.ui, pyuic/tests/eric4_ui/BookmarkedFilesDialog.ui, pyuic/tests/eric4_ui/CodeMetricsDialog.ui, pyuic/tests/eric4_ui/ColorDialogWizardDialog.ui, pyuic/tests/eric4_ui/CommandOptionsDialog.ui, pyuic/tests/eric4_ui/CompareDialog.ui, pyuic/tests/eric4_ui/ConfigurationDialog.ui, pyuic/tests/eric4_ui/CorbaPage.ui, pyuic/tests/eric4_ui/CvsCommandDialog.ui, pyuic/tests/eric4_ui/CvsCommitDialog.ui, pyuic/tests/eric4_ui/CvsDialog.ui, pyuic/tests/eric4_ui/CvsDiffDialog.ui, pyuic/tests/eric4_ui/CvsHistoryDialog.ui, pyuic/tests/eric4_ui/CvsLogDialog.ui, pyuic/tests/eric4_ui/CvsLoginDialog.ui, pyuic/tests/eric4_ui/CvsLogoutDialog.ui, pyuic/tests/eric4_ui/CvsMergeDialog.ui, pyuic/tests/eric4_ui/CvsNewProjectOptionsDialog.ui, pyuic/tests/eric4_ui/CvsOptionsDialog.ui, pyuic/tests/eric4_ui/CvsSwitchDialog.ui, pyuic/tests/eric4_ui/CvsTagDialog.ui, pyuic/tests/eric4_ui/CxfreezeConfigDialog.ui, pyuic/tests/eric4_ui/DebuggerGeneral1Page.ui, pyuic/tests/eric4_ui/DebuggerGeneral2Page.ui, pyuic/tests/eric4_ui/DebuggerPropertiesDialog.ui, pyuic/tests/eric4_ui/DebuggerPythonPage.ui, pyuic/tests/eric4_ui/DebuggerRubyPage.ui, pyuic/tests/eric4_ui/DeleteFilesConfirmationDialog.ui, pyuic/tests/eric4_ui/DiffDialog.ui, pyuic/tests/eric4_ui/DocGeneratorExecDialog.ui, pyuic/tests/eric4_ui/EditBreakpointDialog.ui, pyuic/tests/eric4_ui/EditWatchpointDialog.ui, pyuic/tests/eric4_ui/EditorAPIsPage.ui, pyuic/tests/eric4_ui/EditorAutocompletionPage.ui, pyuic/tests/eric4_ui/EditorCalltipsPage.ui, pyuic/tests/eric4_ui/EditorColoursPage.ui, pyuic/tests/eric4_ui/EditorGeneralPage.ui, pyuic/tests/eric4_ui/EditorHighlightersPage.ui, pyuic/tests/eric4_ui/EditorHighlightingStylesPage.ui, pyuic/tests/eric4_ui/EditorProperties1Page.ui, pyuic/tests/eric4_ui/EditorProperties2Page.ui, pyuic/tests/eric4_ui/EditorStylesPage.ui, pyuic/tests/eric4_ui/EmailDialog.ui, pyuic/tests/eric4_ui/EmailPage.ui, pyuic/tests/eric4_ui/EricapiConfigDialog.ui, pyuic/tests/eric4_ui/EricdocConfigDialog.ui, pyuic/tests/eric4_ui/ExceptionsFilterDialog.ui, pyuic/tests/eric4_ui/FileDialogWizardDialog.ui, pyuic/tests/eric4_ui/FiletypeAssociationDialog.ui, pyuic/tests/eric4_ui/FindFileDialog.ui, pyuic/tests/eric4_ui/FindFileNameDialog.ui, pyuic/tests/eric4_ui/FontDialogWizardDialog.ui, pyuic/tests/eric4_ui/GotoDialog.ui, pyuic/tests/eric4_ui/HelpDocumentationPage.ui, pyuic/tests/eric4_ui/HelpViewersPage.ui, pyuic/tests/eric4_ui/HgCommandDialog.ui, pyuic/tests/eric4_ui/HgCommitDialog.ui, pyuic/tests/eric4_ui/HgCopyDialog.ui, pyuic/tests/eric4_ui/HgDialog.ui, pyuic/tests/eric4_ui/HgDiffDialog.ui, pyuic/tests/eric4_ui/HgLogDialog.ui, pyuic/tests/eric4_ui/HgManifestDialog.ui, pyuic/tests/eric4_ui/HgNewProjectOptionsDialog.ui, pyuic/tests/eric4_ui/HgOptionsDialog.ui, pyuic/tests/eric4_ui/HgPullDialog.ui, pyuic/tests/eric4_ui/HgPushDialog.ui, pyuic/tests/eric4_ui/HgRevisionSelectionDialog.ui, pyuic/tests/eric4_ui/HgStatusDialog.ui, pyuic/tests/eric4_ui/HgSwitchDialog.ui, pyuic/tests/eric4_ui/HgTagDialog.ui, pyuic/tests/eric4_ui/HgTagListDialog.ui, pyuic/tests/eric4_ui/IconsPage.ui, pyuic/tests/eric4_ui/IconsPreviewDialog.ui, pyuic/tests/eric4_ui/InputDialogWizardDialog.ui, pyuic/tests/eric4_ui/InterfacePage.ui, pyuic/tests/eric4_ui/LoadScriptDialog.ui, pyuic/tests/eric4_ui/MatchesDialog.ui, pyuic/tests/eric4_ui/MessageBoxWizardDialog.ui, pyuic/tests/eric4_ui/PackagersExecDialog.ui, pyuic/tests/eric4_ui/PrinterPage.ui, pyuic/tests/eric4_ui/ProgramsPage.ui, pyuic/tests/eric4_ui/ProjectPage.ui, pyuic/tests/eric4_ui/PropertiesDialog.ui, pyuic/tests/eric4_ui/PyCoverageDialog.ui, pyuic/tests/eric4_ui/PyLintConfigDialog.ui, pyuic/tests/eric4_ui/PyLintExecDialog.ui, pyuic/tests/eric4_ui/PyProfileDialog.ui, pyuic/tests/eric4_ui/PyRegExpWizardCharactersDialog.ui, pyuic/tests/eric4_ui/PyRegExpWizardDialog.ui, pyuic/tests/eric4_ui/PyRegExpWizardRepeatDialog.ui, pyuic/tests/eric4_ui/PythonPage.ui, pyuic/tests/eric4_ui/QRegExpWizardCharactersDialog.ui, pyuic/tests/eric4_ui/QRegExpWizardDialog.ui, pyuic/tests/eric4_ui/QRegExpWizardRepeatDialog.ui, pyuic/tests/eric4_ui/QtPage.ui, pyuic/tests/eric4_ui/RefactoringPage.ui, pyuic/tests/eric4_ui/ReplaceDialog.ui, pyuic/tests/eric4_ui/RepositoryInfoDialog.ui, pyuic/tests/eric4_ui/SearchDialog.ui, pyuic/tests/eric4_ui/ShellPage.ui, pyuic/tests/eric4_ui/ShortcutDialog.ui, pyuic/tests/eric4_ui/ShortcutsDialog.ui, pyuic/tests/eric4_ui/StartCoverageDialog.ui, pyuic/tests/eric4_ui/StartCyclopsDialog.ui, pyuic/tests/eric4_ui/StartDebugDialog.ui, pyuic/tests/eric4_ui/StartProfileDialog.ui, pyuic/tests/eric4_ui/StartRunDialog.ui, pyuic/tests/eric4_ui/SvnCommandDialog.ui, pyuic/tests/eric4_ui/SvnCommitDialog.ui, pyuic/tests/eric4_ui/SvnCopyDialog.ui, pyuic/tests/eric4_ui/SvnDialog.ui, pyuic/tests/eric4_ui/SvnDiffDialog.ui, pyuic/tests/eric4_ui/SvnLogDialog.ui, pyuic/tests/eric4_ui/SvnMergeDialog.ui, pyuic/tests/eric4_ui/SvnNewProjectOptionsDialog.ui, pyuic/tests/eric4_ui/SvnOptionsDialog.ui, pyuic/tests/eric4_ui/SvnPropListDialog.ui, pyuic/tests/eric4_ui/SvnPropSetDialog.ui, pyuic/tests/eric4_ui/SvnRevisionSelectionDialog.ui, pyuic/tests/eric4_ui/SvnStatusDialog.ui, pyuic/tests/eric4_ui/SvnSwitchDialog.ui, pyuic/tests/eric4_ui/SvnTagBranchListDialog.ui, pyuic/tests/eric4_ui/SvnTagDialog.ui, pyuic/tests/eric4_ui/SyntaxCheckerDialog.ui, pyuic/tests/eric4_ui/TabnannyDialog.ui, pyuic/tests/eric4_ui/TaskPropertiesDialog.ui, pyuic/tests/eric4_ui/TasksPage.ui, pyuic/tests/eric4_ui/TemplatePropertiesDialog.ui, pyuic/tests/eric4_ui/TemplateSingleVariableDialog.ui, pyuic/tests/eric4_ui/TemplatesPage.ui, pyuic/tests/eric4_ui/ToolConfigurationDialog.ui, pyuic/tests/eric4_ui/UnittestDialog.ui, pyuic/tests/eric4_ui/UnittestStacktraceDialog.ui, pyuic/tests/eric4_ui/VariableDetailDialog.ui, pyuic/tests/eric4_ui/VariablesFilterDialog.ui, pyuic/tests/eric4_ui/VcsPage.ui, pyuic/tests/eric4_ui/ViewProfileDialog.ui, pyuic/tests/eric4_ui/ViewmanagerPage.ui, pyuic/tests/eric4_ui/XMLMessageDialog.ui, pyuic/tests/eric4_ui/ZoomDialog.ui, pyuic/tests/iswrapping.ui, pyuic/tests/nonascii.ui, pyuic/tests/other_tests/actionwidget.ui, pyuic/tests/other_tests/actionwidgetpage.ui, pyuic/tests/other_tests/cfgtabpageaccountdtaus.ui, pyuic/tests/other_tests/cfgtabpageaccounthbci.ui, pyuic/tests/other_tests/cfgtabpageaccountofx.ui, pyuic/tests/other_tests/cfgtabpageaccountyn.ui, pyuic/tests/other_tests/cfgtabpageuserhbci.ui, pyuic/tests/other_tests/cfgtabpageuserofx.ui, pyuic/tests/other_tests/cfgtabpageuseryn.ui, pyuic/tests/other_tests/cfgtabpagk.ui, pyuic/tests/other_tests/edituserpage.ui, pyuic/tests/other_tests/iniletterpage.ui, pyuic/tests/other_tests/qanagram.ui, pyuic/tests/other_tests/qbbankselector.ui, pyuic/tests/other_tests/qbcfgtab.ui, pyuic/tests/other_tests/qbcfgtabpageaccountgen.ui, pyuic/tests/other_tests/qbcfgtabpageaccounts.ui, pyuic/tests/other_tests/qbcfgtabpagebackends.ui, pyuic/tests/other_tests/qbcfgtabpageusergen.ui, pyuic/tests/other_tests/qbcfgtabpageusers.ui, pyuic/tests/other_tests/qbcheckfiletypepage.ui, pyuic/tests/other_tests/qbjobview.ui, pyuic/tests/other_tests/qbmapaccount.ui, pyuic/tests/other_tests/qbpickstartdate.ui, pyuic/tests/other_tests/qbprintdialog.ui, pyuic/tests/other_tests/qbprogress.ui, pyuic/tests/other_tests/qbselectbackend.ui, pyuic/tests/other_tests/qbselectbank.ui, pyuic/tests/other_tests/qbselectfiletypepage.ui, pyuic/tests/other_tests/qbselectprofilepage.ui, pyuic/tests/other_tests/qbselectsourcepage.ui, pyuic/tests/other_tests/qbsimplebox.ui, pyuic/tests/other_tests/selectfile.ui, pyuic/tests/other_tests/selectmode.ui, pyuic/tests/qt3widget_error.ui, pyuic/tests/showqtui.cpp, pyuic/tests/showqtui.pro, pyuic/uic/Compiler/proxyproperties.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/objcreator.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py: pyuic4 update from Torsten including support for Qt v4.2. Fixed the previous "name" attribute fix. [051bd5302694] 2006-09-15 phil * pyuic/uic/uiparser.py: Fixed an exception in pyuic4 caused by a bad test for the "name" attribute in a .ui file. [f1c725f0efee] 2006-09-04 phil * PyQt4.msp: Fixed a bug in QClipboard.setMimeData(). [e06a40a9a0b6] 2006-09-03 phil * Makefile, examples/activeqt/README, examples/activeqt/webbrowser/mainwindow.ui, examples/activeqt/webbrowser/ui_mainwindow.py, examples/activeqt/webbrowser/webbrowser.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/qobjectcreator.py: Added the webbrowser example - not yet working properly. Added Torsten's patch for QAxContainer support - not yet working properly. Changed the internal build system to use -j2 with configure.py. [04302fea4309] 2006-08-28 phil * lib/configure.py, pyuic/uic/uiparser.py: Don't install a local copy of ElementTree for Python v2.5 and later. pyuic4 uses the system copy of ElementTree if possible. [6b419b22d70e] 2006-08-26 phil * examples/opengl/2dpainting.py, examples/opengl/README, examples/opengl/overpainting.py, examples/tools/README, examples/tools/qtdemo/qtdemo_rc.py, pyrcc/rcc.cpp, pyuic/uic/properties.py: Added the 2dpainting.py and overpainting.py examples from DavidB. pyrcc4 now supports PEP 263. Fixed pyuic4 handling of Windows path separators in pixmap and icon properties. [90b60a94a30d] 2006-08-17 phil * PyQt4.msp, QAxContainer/qaxobject.sip, QAxContainer/qaxwidget.sip: Seemed to have fixed the problems with the QAxContainer module. [d0c89006c73a] * PyQt4.msp, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/pyuic.py: Q_ENUMS and Q_FLAGS now handle errors properly. [c47970a032c1] 2006-08-16 phil * PyQt4.msp: Implemented Q_ENUMS and Q_FLAGS. (Only really useful with the QAxContainer module.) [74abe2b86b75] 2006-08-14 phil * pyuic/uic/Compiler/compiler.py, pyuic/uic/Loader/loader.py, pyuic/uic/__init__.py, pyuic/uic/uiparser.py: Fixes to pyuic so that it behaves closer to uic when the Ui class doesn't have a name. [d4c75c8f5eb6] 2006-08-10 phil * PyQt4.msp: Added the missing QStylePainter class. [e046e9889bcf] 2006-08-07 phil * build.py: The QAxContainer documentation is only generated when needed. [203d6f25f762] 2006-08-05 phil * QAxContainer/QAxContainermod.sip, QAxContainer/qaxbase.sip, QAxContainer/qaxobject.sip, QAxContainer/qaxwidget.sip, build.py, doc/pyqt4ref.txt, doc/pyqtdoc/qaxcontainer.html#details, installers /PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in, lib/configure.py, pyqtdoc/renderer.py: Added the QAxContainer module for Windows. [c317f11a9bb0] 2006-08-04 phil * examples/tools/settingseditor/settingseditor.py: More fixes to settingseditor. [2391791c9ae6] * examples/tools/settingseditor/settingseditor.py: Fixed a couple of bugs in the settingseditor example. [72360b6c74a6] 2006-07-19 phil * PyQt4.msp: Removed the internal internalId() and internalPointer() methods from QPersistentModelIndex. [121364c95d16] 2006-07-16 phil * PyQt4.msp, lib/configure.py: More Python v2.5 changes. [4d8b6e5ebb90] 2006-07-15 phil * NEWS, PyQt4.msp: Backed out the change to PYQT_VERSION_STR as it breaks with versions of SIP prior to v4.5. Adapted the handwritten code for the API changes in Python v2.5. [20f4d2b4e851] 2006-07-07 phil * PyQt4.msp, lib/configure.py: Worked around the Qt v4.1 bug with QPrinter::setPrintRange() and QPrinter::printRange(). [f606f0c8dc6b] * pyuic/uic/properties.py: A pyuic QFont fix from Torsten. [7661fe8c32e1] 2006-07-06 phil * PyQt4.msp: Fixed QTranslator.load(). [91bddee491ea] 2006-07-05 phil * pylupdate/fetchtr.cpp, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py: Changed pyuic to generate the retranslateUi() method so that it is the same as the C++ version. Fixed pylupdate so that it properly parse the retranslateUi() method. [48a43fc125ed] * NEWS, pylupdate/fetchtr.cpp, pylupdate/main.cpp: pylupdate4 now handles .ui files (thanks to Andreas Pakulat). [0f2e56f504d8] * NEWS, PyQt4.msp: QPolygon can be constructed from a Python list of pairs of integer coordinates. QPolygon.setPoints() can also take a Python list of pairs of integer coordinates. [4d902f8185a1] 2006-07-04 phil * NEWS, doc/pyqt4ref.txt, examples/itemviews/simpledommodel.py, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/itemviews/sortingmodel/sortingmodel.py, lib/configure.py: Added pyqt_config_args to pyqtconfig.py for all versions. Fixed the simpledommodel.py, simpletreemodel.py and sortingmodel.py examples for 64 bit systems. [1d214b1e3f66] 2006-06-22 phil * Makefile, PyQt4.msp, doc/pyqt4ref.txt, doc/pyqtdoc/PyQt4.xfm, installers/PyQt-eval.nsi-in, installers/PyQt-gpl.nsi-in: Updated for Qt v4.1.4. [35ae1faabd57] 2006-06-19 phil * PyQt4.msp: Backed out an over-zealous addition (from me) to Ulli's Solaris fixes. [883f0abd7669] * PyQt4.msp, pyuic/uic/__init__.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py: Fixed pyuic4 handling of QFont, QDate, QTime and QDateTime. Fixed pyuic4 handling of custom widget header files. Solaris warnings fixes from Ulli. [29aa58d259c3] 2006-06-10 phil * NEWS, examples/itemviews/puzzle/puzzle.py: Released as v4.0. [62a29905aa8c] [4.0] 2006-06-08 phil * Makefile, build.py: Build system changes to add the documentation to snapshots. [5ebb02344c30] * PyQt-eval.nsi-in, PyQt-gpl.nsi-in, build.py, installers/PyQt-eval .nsi-in, installers/PyQt-gpl.nsi-in: Moved the installers to a separate directory. [f03cb38fb9a8] * PyQt-eval.nsi-in, PyQt-gpl.nsi-in, PyQt4.nsi-in: Added the installer for the evaluation edition. [b73650116e60] * PyQt4.nsi-in, build.py, examples/README, examples/designer/README, examples/dialogs/README, examples/draganddrop/README, examples/itemviews/README, examples/layouts/README, examples/mainwindows/README, examples/network/README, examples/opengl/README, examples/painting/README, examples/richtext/README, examples/sql/README, examples/threads/README, examples/tools/README, examples/widgets/README, examples/xml/README: Updated the GPL installer. [a8c636ca1951] 2006-06-07 phil * examples/tools/qtdemo/launcher.py: Fixed Windows specific bugs in the qtdemo example. [a09df4c9e6f7] * Makefile, build.py, lib/LICENSE.commercial, lib/LICENSE.commercial.short, lib/LICENSE.eval, lib/LICENSE.eval.short: Build system and license changes. [dcd97ab28a1a] * PyQt4.msp, doc/pyqtdoc/PyQt4.xfm: Removed the internal QPainter.drawTextItem() methods. [4a6301bd6392] * Makefile, PyQt4.msp: Removed the internal QAbstractPageSetupDialog, QDragResponseEvent, QTextEngine, QTextFrameLayoutData and QToolBarChangedEvent classes. [f9cd4b5aeb82] 2006-06-06 phil * Makefile, NEWS, PyQt4.nsi-in, build.py, doc/pyqt4ref.txt, examples/README, examples/designer/README, examples/dialogs/README, examples/draganddrop/README, examples/itemviews/README, examples/layouts/README, examples/mainwindows/README, examples/network/README, examples/opengl/README, examples/painting/README, examples/richtext/README, examples/sql/README, examples/threads/README, examples/tools/README, examples/widgets/README, examples/xml/README, pyqtdoc/cache.py, pyqtdoc/renderer.py: Handled opaque classes in a more efficient way. Changes to the build system so that source packages follow the same conventions as PyQt3 (now that the global build system tags snapshots from different parts of the tree). [4efc665a6416] 2006-06-05 phil * doc/pyqt4ref.txt, lib/configure.py, pyqtdoc/renderer.py, pyqtdoc/xform.py: Removed a couple of inaccessible QByteArray functions. pyqtdoc now handles opaque classes and some extra standard substitutions. pylupdate4 and pyrcc4 will only be built if the Qt XML module is found. [fc4972d8366b] * examples/README, examples/designer/README, examples/tools/qtdemo/displayshape.py, examples/tools/qtdemo/displaywidget.py, examples/tools/qtdemo/examples.xml, examples/tools/qtdemo/images/rb- logo.png, examples/tools/qtdemo/images/trolltech-logo.png, examples/tools/qtdemo/launcher.py, examples/tools/qtdemo/qtdemo.qrc, examples/tools/qtdemo/qtdemo_rc.py: Many bug fixes to the qtdemo example. [9c58763c79f7] 2006-06-04 phil * doc/pyqtdoc/PyQt4.xfm, doc/pyqtdoc/qtassistant.html#details, doc/pyqtdoc/qtcore.html#details, doc/pyqtdoc/qtgui.html#details, doc/pyqtdoc/qtnetwork.html#details, doc/pyqtdoc/qtopengl.html#details, doc/pyqtdoc/qtsql.html#details, doc/pyqtdoc/qtsvg.html#details, doc/pyqtdoc/qtxml.html#details, doc/pyqtdoc/rb-logo.png, pyqtdoc/__init__.py, pyqtdoc/cache.py, pyqtdoc/pyqtdoc.py, pyqtdoc/renderer.py, pyqtdoc/xform.py: [c82be5f22451] * Makefile, PyQt4.msp, build.py, doc/PyQt4.xfm, doc/pyqt4ref.txt, doc/pyqtdoc/__init__.py, doc/pyqtdoc/cache.py, doc/pyqtdoc/pyqtdoc.py, doc/pyqtdoc/renderer.py, doc/pyqtdoc/xform.py, doc/rb-logo.png: [3080d9028046] * doc/PyQt4.xfm, doc/pyqtdoc/cache.py, doc/pyqtdoc/pyqtdoc.py, doc/pyqtdoc/renderer.py, doc/pyqtdoc/xform.py: More pyqtdoc changes - all HTML is now included. [948e4a135991] 2006-06-03 phil * doc/PyQt4.xfm, doc/pyqtdoc/renderer.py, doc/pyqtdoc/xform.py: More pyqtdoc changes - automatic type conversions are now documented. [6c8466379f68] 2006-06-02 phil * doc/PyQt4.xfm, doc/pyqtdoc/pyqtdoc.py, doc/pyqtdoc/renderer.py, doc/pyqtdoc/xform.py: More pyqtdoc changes - mapped type transformations now complete. [129ccbb62042] 2006-06-01 phil * doc/PyQt4.xfm, doc/pyqtdoc/cache.py, doc/pyqtdoc/html/images/rb- logo.png, doc/pyqtdoc/pyqtdoc.py, doc/pyqtdoc/renderer.py, doc/pyqtdoc/xform.py, doc/rb-logo.png: More pyqtdoc changes. [89a17d5fb7a9] 2006-05-31 phil * build.py, doc/PyQt4.xfm, doc/pyqtdoc/cache.py, doc/pyqtdoc/project.py, doc/pyqtdoc/pyqtdoc.py, doc/pyqtdoc/renderer.py, doc/pyqtdoc/xform.py: More pyqtdoc refactoring. [daf3426d3c4c] * doc/pyqtdoc/project.py, doc/pyqtdoc/pyqtdoc.py, doc/pyqtdoc/renderer.py: pyqtdoc changes. [7bcf24575ed1] 2006-05-30 phil * PyQt4.msp, doc/pyqtdoc/project.py, doc/pyqtdoc/pyqtdoc.py, doc/pyqtdoc/renderer.py, doc/pyqtdoc/sipxml.py: Changed the type of PYQT_VERSION to match QT_VERSION. [071a5aa86f1d] 2006-05-28 phil * Makefile, PyQt4.msp, build.py, doc/pyqtdoc/project.py, doc/pyqtdoc/pyqtdoc.py, doc/pyqtdoc/renderer.py, doc/pyqtdoc/sipxml.py: Fixed further silly reference count bug with QModelIndex.internalPointer(). [f296332d509c] 2006-05-26 phil * PyQt4.msp: Switched the order of the two QAbstractItemModel.createIndex() overloads so that ids can still be used. [daee639a38c6] 2006-05-25 phil * doc/pyqtdoc/__init__.py, doc/pyqtdoc/html/images/rb-logo.png, doc/pyqtdoc/project.py, doc/pyqtdoc/pyqtdoc.py, doc/pyqtdoc/renderer.py, doc/pyqtdoc/sipxml.py, pyuic/uic/properties.py: Added pyqtdoc to the repository. uic fix for setDropIndicatorShown(). [853cb658fa41] * PyQt4.msp: QModelIndex.internalPointer() now handles 0 being returned. [031f167b2ab8] * PyQt4.msp: QModelIndex.internalPointer() now returns a Python object instead of a void *. QAbstractItemModel.createIndex() now takes a Python object instead of a void *. [cdd2884030e7] 2006-05-21 phil * PyQt4.msp: Removed more unreachable methods from QString. [5672552c1457] 2006-05-20 phil * lib/configure.py: Fixed the building of pylupdate and pyrcc for debug builds. [150e70caa3e9] 2006-05-19 phil * PyQt4.msp: Added /ReleaseGIL/ to QDrag.start(). [6a598633897f] * Makefile, PyQt4.msp, lib/configure.py: Updated for Qt v4.1.3. [7cb9d0a1b34e] 2006-05-16 phil * Makefile, PyQt4.msp, build.py, sipdoc/Formatters/__init__.py, sipdoc/Formatters/rest.py, sipdoc/Parser.py, sipdoc/__init__.py, sipdoc/sipdoc.py: Removed a number of inaccessable QString operators and methods. Fixed the bug in the signal support introduced when reimplementing QObject.receivers(). (Thanks to Ulli.) [dba5e59a5dbf] 2006-05-13 phil * examples/widgets/sliders.py, lib/configure.py: Minor configuration fix for Windows. Fixed bugs in the sliders.py example. [3235ac18f43c] 2006-05-11 phil * PyQt4.msp: Reimplemented the support for QObject.receivers(). [be2c67988d3c] 2006-05-07 phil * PyQt4.msp: Fixed the signal arguments for receivers(), connectNotify() and disconnectNotify() in QObject. QObject.receivers() now takes Python signals into account. [a7f9c4cdc209] 2006-05-05 phil * PyQt4.msp, lib/configure.py: MSVC 6 builds should be Ok now. Replaced %SIPNoEmitters with %SIPOptions. The minimum SIP requirement is now v4.4.4. [b69cf0a86b02] 2006-05-03 phil * PyQt4.msp: Another attempt at fixing connectSlotsByName() for MSVC 6. [1c48b54ef7e1] * doc/pyqt4ref.txt, examples/pyuic/compile-on-the-fly.py, examples/pyuic/load_ui1.py, examples/pyuic/load_ui2.py: Updated the pyuic4 examples for the changed API. Added to the pyqtSignature documentation about signals with optional arguments. [de9a7c09b23f] 2006-05-02 phil * PyQt4.msp, lib/configure.py: Added the SessionManager, StatusTip, ToolTip and WhatsThis features. [6b844c170017] * PyQt4.msp: More fixes for MSVC 6. [89c11d0bad59] 2006-05-01 phil * PyQt4.msp, build.py, lib/configure.py: Qt built with accessibility support disabled is now handled (seems to be a fairly common configuration). Untested. [d863f564d045] * sipdoc/Formatters/rest.py, sipdoc/Parser.py, sipdoc/sipdoc.py: A bit more documentation work. [65e905848a81] 2006-04-30 phil * Makefile, build.py, doc/pyqt4ref.txt, sipdoc/Formatters/__init__.py, sipdoc/Formatters/rest.py, sipdoc/Parser.py, sipdoc/__init__.py, sipdoc/sipdoc.py: Added the start of the auto-generated documentation. Source package names now include the platform as the documentation is now platform specific. [e7077d63eb75] 2006-04-29 phil * pylupdate/translator.cpp: Removed pylupdate's dependency on qplatformdefs.h. [ecd0675fbd58] 2006-04-28 phil * PyQt4.msp: Replaced long long with PY_LONG_LONG for MSVC 6. [255fc00ed48c] * pyuic/uic/properties.py: Fixed pyuic bug where setProperty() was assuming an int property. [cd36b5f5f087] 2006-04-27 phil * lib/configure.py: PyQt4 now requires SIP v4.4.3. Released as v4.0beta1. [700d698562ab] [4.0beta1] 2006-04-24 phil * PyQt4.nsi-in: Updates to the .nsi installer. [13f6ccb20756] * doc/pyqt4ref.txt, pyuic/uic/Compiler/__init__.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/indenter.py, pyuic/uic/Loader/__init__.py, pyuic/uic/__init__.py, pyuic/uic/pyuic.py: Cleaned up the uic API and updated the documentation accordingly. [90a071724f1a] 2006-04-21 phil * doc/pyqt4ref.txt, lib/configure.py, pyuic/uic/pyuic.py: Completed the documentation for the beta version. Fixed the correct GUI/console Python interpreter to use on MacOS and Windows. [e1b1218baa6f] 2006-04-17 phil * doc/pyqt4ref.txt, pyrcc/main.cpp: More documentation - just pyuic4 to do. [5c1d6fe81da1] 2006-04-16 phil * build.py, doc/pyqt4ref.txt, lib/configure.py: More documentation - now distributed. [652d7edd66e9] * pyuic/uic/properties.py: Small pyuic4 patch from Torsten. [01fb2ab35733] 2006-04-15 phil * PyQt4.msp, lib/configure.py, pyuic/uic/Compiler/__init__.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/proxyproperties.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py, pyuic/uic/uiparser.py: Added QWidget.handle() for MacOS. New pyuic4 snapshot from Torsten. Fixed a potential crash searching for a slot in the list of universal proxies. Made SIP v4.4.2 a pre-requisite for PyQt4. [e5e8e3717318] 2006-04-09 phil * doc/default.css, doc/pyqt4ref.txt, lib/configure.py: Started on the initial documentation - not yet distributed. [317a7d487e9a] 2006-04-08 phil * Makefile, PyQt4.msp, lib/configure.py: Fixed the build system for the framework build of Qt on MacOS. Fixed warnings in handwritten code with GCC4. Decided against the change in sense of configure.py -c flag after trying it on MacOS. [04741367533d] 2006-04-07 phil * Makefile, lib/configure.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/uiparser.py: Applied pyuic QTableWidget patch from Torsten. Fixed the new use of qmake in configure.py for Windows. The sense of the -c flag to configure.py has been reversed as most compilers now seem to be able to cope. [736d9417c567] 2006-04-06 phil * lib/configure.py: Removed the last vestige of QTDIR. configure.py now handles QMAKESPEC being a path as well as a platform. [76b13d2cc957] * lib/configure.py, pyuic/uic/pyuic.py: qt_data_dir is now passed to the sipconfig module. [85630cfeeb02] 2006-04-05 phil * PyQt4.msp, pyuic/uic/Compiler/qtproxies.py: Eliminated all conflicting overloads that had the same Python signature. pyuic strings are now broken at the same places as the original strings in the .ui file. pyuic now escapes backslash in strings. [c32c1d98656f] 2006-04-04 phil * Makefile, lib/configure.py: Changed the way configure.py works out where all the bits of Qt have been put. Changed the meaning of the -q flag and removed the -g flag. [2f1a10be779d] 2006-04-01 phil * Makefile, PyQt4.msp, lib/configure.py: Updated for Qt v4.1.2 (nothing actually needed). [496edf8d9d0e] 2006-03-30 phil * PyQt4.msp: Added QStringList::operator+=(const QString &) and equivalent operators to QItemSelection. [ffa88f0fc70d] 2006-03-28 phil * PyQt4.msp, lib/configure.py: Added qSetFieldWidth(), qSetPadChar() and qSetRealNumberPrecision(). Fixed Qt.py. [dcd290d5088e] 2006-03-25 phil * pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/uiparser.py: Added pyuic patches from Torsten to only use Python slots and to fix a problem with QDickWidget. [1dd4f662a159] 2006-03-23 phil * PyQt4.msp: Added a missing /Transfer/ from QGLWidget(). [5b8b9f3ee245] 2006-03-21 phil * lib/pyqtconfig.py.in: Fixed silly (but significant) typo in pyqtconfig.py. [108d38ba9608] 2006-03-20 phil * PyQt4.msp: Added Qt.WA_GroupLeader which is marked as deprecated in the source, but not in the documentation. Removed the "Filter" versions of the QFileDialog static methods as they aren't necessary after all (just not obvious how to use them properly). [9666867b5240] 2006-03-14 phil * PyQt4.msp, lib/configure.py, lib/pyqtconfig.py.in: Fixed bug in pyqtconfig.py. Added QTreeWidgetItemIterator.value(). Fixed problem building the QtAssistant module with MinGW. [b8bb08f9157a] 2006-03-13 phil * Makefile, build.py, lib/README.AIX, lib/README.MacOSX, lib/README.SunOS, lib/build.py, lib/configure.py, lib/pyqtconfig.py.in: Removed some old README files. Build system changes so that PyQt4 will build on MacOS (framework and non-framework builds). [c62f607b8193] 2006-03-11 phil * lib/configure.py, lib/pyqtconfig.py.in: Brought pyqtconfig.py up to date. Fixes for configure.py. [f8ced6014729] * PyQt4.msp, lib/configure.py: Added the missing QTreeWidgetItemIterator class. Checked that nothing needs updating for Qt v4.1.1. [8646c3bde564] 2006-03-07 phil * pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py: New pyuic snapshot from Torsten. [9ecb707f7fd0] 2006-03-06 phil * PyQt4.msp: Added HBitmapFormat, toWinHBITMAP() and fromWinHBITMAP() to QPixmap. [c0be5bca00e4] * PyQt4.msp: Added the QX11Info class. Added the x11Info(), x11PictureHandle() and handle() methods to QPixmap and QWidget. [a5662cd1f295] 2006-03-05 phil * PyQt4.msp, lib/configure.py: Added the Qt.py consolidated module. Allow a Python list of QStrings (or Python strings or unicode strings) whenever a QStringList is expected. [a4d06fa51c71] 2006-03-04 phil * Makefile, PyQt4.msp, examples/README, examples/dialogs/README, examples/draganddrop/README, examples/itemviews/README, examples/layouts/README, examples/mainwindows/README, examples/network/README, examples/opengl/README, examples/painting/README, examples/richtext/README, examples/sql/README, examples/threads/README, examples/tools/README, examples/tools/qtdemo/demos.xml, examples/tools/qtdemo/displayshape.py, examples/tools/qtdemo/displaywidget.py, examples/tools/qtdemo/examples.xml, examples/tools/qtdemo/images/qt4-logo.png, examples/tools/qtdemo/images/trolltech-logo.png, examples/tools/qtdemo/launcher.py, examples/tools/qtdemo/qtdemo.py, examples/tools/qtdemo/qtdemo.qrc, examples/tools/qtdemo/qtdemo.rc, examples/tools/qtdemo/qtdemo_rc.py, examples/tutorial/README, examples/widgets/README, examples/xml/README: Added the qtdemo application from Andreas. Call sipLong_AsUnsignedLong() instead of PyLong_AsUnsignedLong(). Added the missing hook and GIL annotations from the QMenu.exec() methods. Added support for VendorID. Added getOpenFileNameFilter(), getSaveFileNameFilter() and getOpenFileNamesFilter() to QFileDialog that return a tuple of the selected files and the current filter. [859fbbe1f78b] 2006-02-26 phil * PyQt4.msp, examples/network/blockingfortuneclient.py, examples/network/fortuneclient.py, examples/network/fortuneserver.py, examples/network/threadedfortuneserver.py, lib/LICENSE.internal: Added support for signed char to the Qt API. Added handwritten methods to QDataStream to provide the same level of control over the types being read and written as C++ provides. Replaced all uses of the struct module in the examples with the new QDataStream methods. These examples now interoperate properly with the C++ versions. [de7edae3cca3] * PyQt4.msp: Applied /Constrained/ to all QDataStream << and >> operators. [eee2b535c327] * PyQt4.msp, PyQt4.nsi-in: Fixed the missing functions from QtGui that are defined in the Qt namespace. [984de5dbcc9f] 2006-02-21 phil * PyQt4.msp: Fixed bug in the handling of QObject.sender(). [5a336784e72f] * PyQt4.msp: Changed the signal/slot handling so that unsigned int and unsigned short are implemented as long objects rather than integer objects. Added a check that signal and slots are compatible before connecting them (as Qt3 does). [e1124155d0fa] 2006-02-19 phil * PyQt4.msp: Changes to the internal Qt support API for disconnects of universal signals. [06fa6f10ddfb] 2006-02-18 phil * Makefile, PyQt4.msp: Added support for shortcircuited Python signals and the PyObject * type in all signals. [3fa534a1f647] 2006-02-16 phil * PyQt4.msp: Fixed compiler warning messages in the QMetaObject::connectSlotsByName() handwritten code. [c7975fd7dbb7] 2006-02-14 phil * PyQt4.msp: The destroyed() signal can now be received by a Python slot. [ee3e231f1b27] 2006-02-13 phil * PyQt4.msp, lib/configure.py: elementtree should now be installed properly. Added the missing QAbstractItemModel.parent(), QDirModel.parent(), QLayout.setAlignment(), QProxyModel.parent(), QSortFilterProxyModel.parent(), QStackedLayout.widget(), QStandardItemModel.parent(), QStringList.indexOf() and QStringList.lastIndexOf() methods. [4f820d85ed5f] * PyQt4.msp: Updated the handwritten code to use the current SIP API. [c7682fa028b0] 2006-02-12 phil * PyQt4.msp: Removed all calls sipForceConvertTo*(). Removed all uses of newly deprecated calls. An integer can now be used where a QKeySequence is expected. [a8073fba00a1] 2006-01-29 phil * pyuic/uic/properties.py: pyuic fix from Torsten. [77145d0149bc] 2006-01-28 phil * PyQt4.msp, examples/designer/calculatorform/calculatorform.py: Renamed signature() as pyqtSignature() and added support for a short version of the signature that only includes the argument types (without enclosing parentheses). Also fixed a bug where a benign exception wasn't being cleared. Updated the calculatorform.py example accordingly. [3aeefbcaab78] 2006-01-27 phil * PyQt4.msp, examples/designer/calculatorform/calculatorform.py, examples/dialogs/complexwizard.py, pyuic/uic/autoconnect.py, pyuic/uic/uiparser.py: Added the signature() decorator to QtCore. Fixed QMetaObject.connectSlotsByName() to exploit the decorator and the bug that prevented it working through the class hierarchy. Updated the calculatorform.py example to use the decorator. pyuic bug fixes from Torsten. Added the complexwizard.py example from Andreas. [48cca790cdf8] 2006-01-26 phil * PyQt4.msp, examples/draganddrop/puzzle/example.jpg, examples/draganddrop/puzzle/puzzle.py, examples/draganddrop/puzzle/puzzle.qrc, examples/draganddrop/puzzle/puzzle_rc.py, examples/network/blockingfortuneclient.py: Fixed bug in the new QIODevice.readLine() %MethodCode. SIGNAL() and SLOT() now return normalised signatures. Reimplemented signal/slot support so that signals are emitted without needing a wrapper function and Python signals now have a proxy QObject emitter. Queued and inter-thread connections now seem to work. Added the draganddrop puzzle.py and blockingfortuneclient.py examples. [525b2f0aef8f] 2006-01-23 phil * PyQt4.msp: Changed QIODevice.readLine() so that it combines the functionality of the two C++ overloads. [483dbf232534] * PyQt4.msp: Make sure a Python string passed to the QVariant ctor is converted to a QString in preference to a QByteArray. [59eaab9d3dfa] * examples/designer/calculatorform/calculatorform.py, examples/designer/calculatorform/calculatorform.ui, examples/designer/calculatorform/ui_calculatorform.py, examples/pyuic/compile-on-the-fly.py, examples/pyuic/demo.ui, examples/pyuic/load_ui1.py, examples/pyuic/load_ui2.py, pyuic/uic/Compiler/__init__.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/__init__.py, pyuic/uic/Loader/loader.py, pyuic/uic/pyuic.py, pyuic/uic/uiparser.py: Added the latest pyuic snapshot from Torsten. Added the calculatorform.py example. [b1a676810ab3] 2006-01-20 phil * PyQt4.msp, examples/widgets/movie/icons/eject.png, examples/widgets/movie/icons/play-pause.png, examples/widgets/movie/icons/quit.png, examples/widgets/movie/icons/stop.png, examples/widgets/movie/movie.py, examples/widgets/movie/movie.qrc, examples/widgets/movie/movie_rc.py: Fixed QLayout.setGeometry() which is not abstract despite what the header file says. Added the movie.py example. [61494d7dd835] 2006-01-19 phil * PyQt4.msp, examples/threads/mandelbrot.py, pyuic/tests/QRegExpWizardDialog.ui, pyuic/tests/qt3widget_error.ui, pyuic/uic/Compiler/__init__.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/exceptions.py, pyuic/uic/pyuic.py, pyuic/uic/uiparser.py: Updated mandelbrot.py example from DavidB. New pyuic snapshot from Torsten. Added the missing rootModelIndex(), setRootModelIndex() and removeItem() methods from QComboBox. Implemented QMetaObject.connectSlotsByName(). [b3fc951b6d7c] 2006-01-16 phil * PyQt4.msp, PyQt4.nsi-in, build.py, elementtree/ElementPath.py, elementtree/ElementTree.py, elementtree/__init__.py, examples/widgets/shapedclock.py, pyuic/tests/SearchDialog.ui, pyuic/tests/testsuite.py, pyuic/uic/Compiler/__init__.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/autoconnect.py, pyuic/uic/elementtree/ElementPath.py, pyuic/uic/elementtree/ElementTree.py, pyuic/uic/elementtree/__init__.py, pyuic/uic/pyuic.py, pyuic/uic/uiparser.py: Fixed the shapedclock.py example. Added a new pyuic4 snapshot from Torsten. pyuic fix from Andreas. Implemented PYQT_VERSION and PYQT_VERSION_STR. Added missing /Transfer/ to QTableWidget.setHorizontalHeaderItem() and QTableWidget.setVerticalHeaderItem() (thanks to Torsten). [d80864412ad2] 2006-01-14 phil * PyQt4.msp: Added the missing slot handling to QToolBar.addAction(). [923c0ace9761] * PyQt4.msp, PyQt4.nsi-in, examples/widgets/analogclock.py, examples/widgets/shapedclock.py, examples/widgets/tetrix.py, lib/configure.py: Small updates to some examples. Updated the NSIS script for the Qt GPL version. Set the window system to X11 for the darwin-g++ platform. Added the Q_NO_USING_KEYWORD to the MetaSIP project. Fixed bugs in QMenu.addAction() and QMenuBar.addAction(). [70204f78815c] 2006-01-11 phil * PyQt4.nsi-in, build.py, lib/configure.py: Build system changes for Windows. Added the NSIS installer script. The examples are now given a .pyw extension on Windows. [4fa7fc038fa2] 2006-01-10 phil * PyQt4.msp, examples/painting/svgviewer/files/cubic.svg, examples/painting/svgviewer/files/spheres.svg, examples/painting/svgviewer/svgviewer.py, examples/painting/svgviewer/svgviewer.qrc, examples/painting/svgviewer/svgviewer_rc.py, examples/richtext/orderform.py, lib/configure.py, pyuic/uic/uiparser.py: Added the orderform.py and svgviewer.py examples from Baz Walter. pyuic patch from Andreas. Build system changes for Windows. Implemented QVariant(bool). [5b002fe2aa05] 2006-01-09 phil * examples/threads/mandelbrot.py, lib/configure.py: Included the sub-directory name in the %Import directives. mandelbrot.py change from DavidB. [ac9ffba1f47c] * PyQt4.msp: Converted sipForceConvertTo_*() calls to sipForceConvertToTransfer_*() calls. [f61f3bbc46a4] * Makefile, PyQt4.msp, lib/configure.py: More build system changes for Windows (it now builds but doesn't run). Added the missing /TransferThis/ on the QVBoxLayout ctor. Added indexOf() and lastIndexOf() to QStringList and QItemSelection. Added the more useful methods from QVector, and Python special methods, to QPolygon and QPolygonF. [33fcf8f03f6d] 2006-01-08 phil * PyQt4.msp: Removed QWidget.handle(). Fixed Windows portability problems with QPrinter. [3b13b0a8b016] * Makefile, PyQt4.msp, examples/widgets/spinboxes.py, lib/configure.py: spinboxes.py example fix from Douglas. Added MSG and QWidget.winEvent() for Windows. Various build system changes for Windows. [838c6ad08d14] 2006-01-06 phil * PyQt4.msp, examples/itemviews/puzzle/puzzle.py, examples/tools/i18n/i18n.py, examples/tools/i18n/i18n.qrc, examples/tools/i18n/i18n_rc.py, examples/tools/i18n/translations/i18n_ar.qm, examples/tools/i18n/translations/i18n_ar.ts, examples/tools/i18n/translations/i18n_cs.qm, examples/tools/i18n/translations/i18n_cs.ts, examples/tools/i18n/translations/i18n_de.qm, examples/tools/i18n/translations/i18n_de.ts, examples/tools/i18n/translations/i18n_el.qm, examples/tools/i18n/translations/i18n_el.ts, examples/tools/i18n/translations/i18n_en.qm, examples/tools/i18n/translations/i18n_en.ts, examples/tools/i18n/translations/i18n_eo.qm, examples/tools/i18n/translations/i18n_eo.ts, examples/tools/i18n/translations/i18n_fr.qm, examples/tools/i18n/translations/i18n_fr.ts, examples/tools/i18n/translations/i18n_it.qm, examples/tools/i18n/translations/i18n_it.ts, examples/tools/i18n/translations/i18n_jp.qm, examples/tools/i18n/translations/i18n_jp.ts, examples/tools/i18n/translations/i18n_ko.qm, examples/tools/i18n/translations/i18n_ko.ts, examples/tools/i18n/translations/i18n_no.qm, examples/tools/i18n/translations/i18n_no.ts, examples/tools/i18n/translations/i18n_pt.qm, examples/tools/i18n/translations/i18n_pt.ts, examples/tools/i18n/translations/i18n_ru.qm, examples/tools/i18n/translations/i18n_ru.ts, examples/tools/i18n/translations/i18n_sv.qm, examples/tools/i18n/translations/i18n_sv.ts, examples/tools/i18n/translations/i18n_zh.qm, examples/tools/i18n/translations/i18n_zh.ts: Small fix to the puzzle.py example. Removed some redundant class scopes in handwritten code. Removed the wrappers for qHash(). QString.__hash__() now uses qHash(). Implemented QByteArray.__hash__(). Added the i18n.py example from Douglas. [3f44d0303ccf] 2006-01-05 phil * PyQt4.msp, examples/network/fortuneserver.py, examples/opengl/grabber.py, examples/opengl/hellogl.py, examples/opengl/samplebuffers.py, examples/opengl/textures/textures.py: Added the samplebuffers.py example from Baz. Made sure metric() is defined for all QPaintDevice sub-classes. [eb6bdebc7704] * examples/draganddrop/puzzle/example.jpg, examples/draganddrop/puzzle/puzzle.py, examples/draganddrop/puzzle/puzzle.qrc, examples/draganddrop/puzzle/puzzle_rc.py, examples/itemviews/puzzle/example.jpg, examples/itemviews/puzzle/puzzle.py, examples/itemviews/puzzle/puzzle.qrc, examples/itemviews/puzzle/puzzle_rc.py: Moved the puzzle example to it's correct location. [ff2411e762e8] 2006-01-04 phil * PyQt4.msp, examples/draganddrop/puzzle/example.jpg, examples/draganddrop/puzzle/puzzle.py, examples/draganddrop/puzzle/puzzle.qrc, examples/draganddrop/puzzle/puzzle_rc.py: Added the puzzle.py example from Andreas. Added Python ctors to convert from a QVariant for all classes that define a QVariant cast operator. [8bb1d101f8bf] 2006-01-03 phil * PyQt4.msp, examples/sql/cachedtable.py, examples/sql/connection.py, examples/sql/querymodel.py, examples/sql/relationaltablemode.py, examples/sql/tablemodel.py: Added the SQL examples from Andreas. Made sure that SIP processes QColor before QBrush so that the latter's %ConvertToTypeCode doesn't mislead their QVariant cast operators. [a66b6ee460fb] * PyQt4.msp, examples/itemviews/dirview.py, examples/itemviews/pixelator/images.qrc, examples/itemviews/pixelator/images/qt.png, examples/itemviews/pixelator/pixelator.py, examples/itemviews/pixelator/pixelator_rc.py, examples/itemviews/sortingmodel/default.txt, examples/itemviews/sortingmodel/sortingmodel.py, examples/itemviews/sortingmodel/sortingmodel.qrc, examples/itemviews/sortingmodel/sortingmodel_rc.py, examples/mainwindows/dockwidgets/dockwidgets.py, examples/network/broadcastreceiver.py, examples/network/broadcastsender.py, examples/network/fortuneserver.py, examples/network/loopback.py, examples/network/threadedfortuneserver.py, examples/threads/mandelbrot.py, examples/threads/semaphores.py, examples/threads/waitconditions.py, examples/xml/saxbookmarks/frank.xbel, examples/xml/saxbookmarks/jennifer.xbel, examples/xml/saxbookmarks/saxbookmarks.py: Added the broadcastreceiver.py, broadcastsender.py, dirview.py, loopback.py, mandelbrot.py, pixelator.py, saxbookmarks.py, semaphores.py, sortingmodel.py, threadedfortuneserver.py and waitconditions.py examples from Andreas. docwidgets.py fixes from Andreas. Added missing /TransferBack/ annotations to mimeData() methods for model and widget classes. Added missing /ReleaseGIL/ annotations to QMutex. Reordered the QHostAddress ctors so that the SpecialAddress enum wouldn't be misinterpreted. Added the missing %ConvertToSubClassCode for QtNetwork. [cd935d30e173] 2006-01-02 phil * PyQt4.msp, examples/mainwindows/dockwidgets/dockwidgets.py, examples/mainwindows/dockwidgets/dockwidgets.qrc, examples/mainwindows/dockwidgets/dockwidgets_rc.py, examples/mainwindows/dockwidgets/images/new.png, examples/mainwindows/dockwidgets/images/print.png, examples/mainwindows/dockwidgets/images/save.png, examples/mainwindows/dockwidgets/images/undo.png, examples/mainwindows/mdi/images/copy.png, examples/mainwindows/mdi/images/cut.png, examples/mainwindows/mdi/images/new.png, examples/mainwindows/mdi/images/open.png, examples/mainwindows/mdi/images/paste.png, examples/mainwindows/mdi/images/save.png, examples/mainwindows/mdi/mdi.py, examples/mainwindows/mdi/mdi.qrc, examples/mainwindows/mdi/mdi_rc.py, examples/mainwindows/menus.py, examples/mainwindows/recentfiles.py, examples/mainwindows/sdi/images/copy.png, examples/mainwindows/sdi/images/cut.png, examples/mainwindows/sdi/images/new.png, examples/mainwindows/sdi/images/open.png, examples/mainwindows/sdi/images/paste.png, examples/mainwindows/sdi/images/save.png, examples/mainwindows/sdi/sdi.py, examples/mainwindows/sdi/sdi.qrc, examples/mainwindows/sdi/sdi_rc.py, examples/richtext/calendar.py, lib/LICENSE.commercial.short, lib/LICENSE.edu.short, lib/LICENSE.eval.short, lib/LICENSE.gpl.short, lib/THANKS, pyuic/uic/properties.py: Updated the license dates. Removed the incorrect /Factory/ annotations from QTextCursor. Added the dockwidgets.py, mdi.py, menus.py, recentfiles.py and sdi.py examples from Andreas Pakulat. Added the calendar.py example from Douglas. pyuic fix from Torsten. [86093dd126d5] 2005-12-29 phil * PyQt4.msp, lib/configure.py: Added the QtSvg module. [d069397e85b5] * PyQt4.msp: Added the sub-class code for QAssistantClient. Fixed the problem with importing the QtSql module. [8c02c3ba22d4] * PyQt4.msp, lib/configure.py: Implemented the QtAssistant module. [d41cdaddbe3c] * pyuic/tests/BookmarkDialog.ui, pyuic/tests/testsuite.py, pyuic/tests/wiggly.py, pyuic/uic/Compiler/proxyproperties.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/properties.py: Integrated Torsten's latest pyuic snapshot. [293d120d152b] * PyQt4.msp: Wrapped qnetworkproxy.h and qglpixelbuffer.h. The QtNetwork, QtOpenGL, QtSql and QtXml modules are now fully updated for Qt v4.1. [a1e27e03e93c] 2005-12-28 phil * PyQt4.msp, examples/dialogs/configdialog/configdialog_rc.py, examples/draganddrop/draggableicons/draggableicons_rc.py, examples/draganddrop/draggabletext/draggabletext_rc.py, examples/draganddrop/fridgemagnets/fridgemagnets_rc.py, examples/itemviews/chart/chart_rc.py, examples/itemviews/simpletreemodel/simpletreemodel_rc.py, examples/mainwindows/application/application_rc.py, examples/network/ftp/ftp_rc.py, examples/opengl/textures/textures_rc.py, examples/painting/basicdrawing/basicdrawing_rc.py, examples/richtext/syntaxhighlighter/syntaxhighlighter_rc.py, examples/widgets/tooltips/tooltips_rc.py, pyrcc/rcc.cpp: Updated pyrcc4 from Qt v4.1 and regenerated all the example resource files. [f4d55dba87d2] * PyQt4.msp: Wrapped qabstractproxymodel.h, qprintengine.h, qsortfilterproxymodel.h and qsyntaxhighlighter.h. QtGui is now fully updated for Qt v4.1. Updated all handwritten convertor code for the latest SIP changes. [bae1bbdbb928] 2005-12-27 phil * PyQt4.msp: QtCore is now fully converted to Qt v4.1. [aa8e276abe34] 2005-12-26 phil * Makefile, PyQt4.msp, lib/configure.py: Switch the build system to Qt v4.1.0. Qt v4.0.x is no longer supported. Wrapped qabstractfileengine.h and qfsfileengine.h. [9c0f1902c8a4] * PyQt4.msp: Slight change to the DelayDtor code. [6752fae21a1c] * PyQt4.msp, examples/opengl/grabber.py: Implemented DelayDtor for QCoreApplication and QApplication (which fixes the segfault when the grabber.py example terminates). [6d6f1c2b9e50] * PyQt4.msp, examples/mainwindows/application/application.py: Fixed a couple of bugs in the application.py example. Added an update from Qt 4.1.0 from Andreas Pakulat for the same example. Replaced numeric values in QGLWidget.bindTexture() with the correct macro names. [2aea33732497] 2005-12-25 phil * PyQt4.msp, examples/layouts/borderlayout.py: QWidget.setLayout() now transfers ownership of all the widgets in the layout to their new parent. Added the borderlayout.py example from Douglas. [5f8550a9fa07] 2005-12-24 phil * PyQt4.msp, examples/tools/settingseditor/inifiles/troll.ini, examples/tools/settingseditor/settingseditor.py, examples/widgets/shapedclock.py, examples/widgets/styles.py: Added the shapedclock.py and styles.py examples from Douglas. Added the settingseditor.py example from Baz. Converted %MethodCode to use sipSelfWasArg where necessary. [5919d319ddb2] 2005-12-22 phil * examples/network/fortuneclient.py, examples/network/fortuneserver.py: Added the fortuneclient.py and fortuneserver.py examples from Baz Walter. [ba36ab1c5a08] * PyQt4.msp, examples/dialogs/extension.py, examples/dialogs/findfiles.py, examples/dialogs/simplewizard.py, examples/dialogs/standarddialogs.py, examples/layouts/basiclayout.py, examples/layouts/flowlayout.py, examples/network/ftp/ftp.py, examples/network/ftp/ftp.qrc, examples/network/ftp/ftp_rc.py, examples/network/ftp/images/cdtoparent.png, examples/network/ftp/images/dir.png, examples/network/ftp/images/file.png, examples/network/http.py, examples/opengl/hellogl.py, examples/richtext/syntaxhighlighter/examples/example, examples/richtext/syntaxhighlighter/syntaxhighlighter.py, examples/richtext/syntaxhighlighter/syntaxhighlighter.qrc, examples/richtext/syntaxhighlighter/syntaxhighlighter_rc.py, examples/tools/codecs/codecs.py, examples/tools/regexp.py, examples/widgets/tetrix.py, examples/xml/dombookmarks/dombookmarks.py, examples/xml/dombookmarks/frank.xbel, examples/xml/dombookmarks/jennifer.xbel: QTextDocument.print() is now print_(). Updated extension.py, basiclayout.py, flowlayout.py, codecs.py, regexp.py and tetrix.py examples from Baz Walter. Added the findfiles.py, simplewizard.py, standarddialogs.py, ftp.py, http.py, hellogl.py, syntaxhighlighter.py, dombookmarks.py examples from Baz Walter. [21e1546b5df0] * PyQt4.msp: Really fixed the QCoreApplication/QApplication argc bug this time. [7dc6299574da] 2005-12-21 phil * NEWS, examples/draganddrop/draggabletext/draggabletext.py, examples/draganddrop/draggabletext/draggabletext.qrc, examples/draganddrop/draggabletext/draggabletext_rc.py, examples/draganddrop/draggabletext/words.txt, examples/draganddrop/fridgemagnets/fridgemagnets.py, examples/draganddrop/fridgemagnets/fridgemagnets.qrc, examples/draganddrop/fridgemagnets/fridgemagnets_rc.py, examples/draganddrop/fridgemagnets/words.txt: Added the draggabletext.py and fridgemagnets.py examples from DavidB. [508afbd214ca] 2005-12-20 phil * examples/draganddrop/draggableicons/draggableicons.py, examples/draganddrop/draggableicons/draggableicons.qrc, examples/draganddrop/draggableicons/draggableicons_rc.py, examples/draganddrop/draggableicons/images/boat.png, examples/draganddrop/draggableicons/images/car.png, examples/draganddrop/draggableicons/images/house.png: Added the draggableicons.py example from DavidB. [de2af12b4b7d] * examples/painting/transformations.py: Updated charactermap.py from DavidB. Added the transformations.py example from DavidB. [26569e3a76ed] * PyQt4.msp, build.py, examples/dialogs/configdialog/configdialog.py, examples/dialogs/configdialog/configdialog.qrc, examples/dialogs/configdialog/configdialog_rc.py, examples/dialogs/configdialog/images/config.png, examples/dialogs/configdialog/images/query.png, examples/dialogs/configdialog/images/update.png, examples/itemviews/chart/chart.py, examples/itemviews/chart/chart.qrc, examples/itemviews/chart/chart_rc.py, examples/itemviews/chart/mydata.cht, examples/itemviews/chart/qtdata.cht, examples/itemviews/simpledommodel.py, examples/itemviews/simpletreemodel/default.txt, examples/itemviews/simpletreemodel/simpletreemodel.py, examples/itemviews/simpletreemodel/simpletreemodel.qrc, examples/itemviews/simpletreemodel/simpletreemodel_rc.py, examples/mainwindows/application.py, examples/mainwindows/application/application.py, examples/mainwindows/application/application.qrc, examples/mainwindows/application/application_rc.py, examples/mainwindows/application/images/copy.png, examples/mainwindows/application/images/cut.png, examples/mainwindows/application/images/new.png, examples/mainwindows/application/images/open.png, examples/mainwindows/application/images/paste.png, examples/mainwindows/application/images/save.png, examples/mainwindows/images/copy.png, examples/mainwindows/images/cut.png, examples/mainwindows/images/new.png, examples/mainwindows/images/open.png, examples/mainwindows/images/paste.png, examples/mainwindows/images/save.png, examples/opengl/grabber.py, examples/opengl/textures/images/side1.png, examples/opengl/textures/images/side2.png, examples/opengl/textures/images/side3.png, examples/opengl/textures/images/side4.png, examples/opengl/textures/images/side5.png, examples/opengl/textures/images/side6.png, examples/opengl/textures/textures.py, examples/opengl/textures/textures.qrc, examples/opengl/textures/textures_rc.py, examples/painting/basicdrawing/basicdrawing.py, examples/painting/basicdrawing/basicdrawing.qrc, examples/painting/basicdrawing/basicdrawing_rc.py, examples/painting/basicdrawing/images/brick.png, examples/painting/basicdrawing/images/qt-logo.png, examples/painting/painterpaths.py, examples/tools/codecs.py, examples/tools/codecs/codecs.py, examples/tools/codecs/encodedfiles/iso-8859-1.txt, examples/tools/codecs/encodedfiles/iso-8859-15.txt, examples/tools/codecs/encodedfiles/utf-16.txt, examples/tools/codecs/encodedfiles/utf-16be.txt, examples/tools/codecs/encodedfiles/utf-16le.txt, examples/tools/codecs/encodedfiles/utf-8.txt, examples/tools/encodedfiles/iso-8859-1.txt, examples/tools/encodedfiles/iso-8859-15.txt, examples/tools/encodedfiles/utf-16.txt, examples/tools/encodedfiles /utf-16be.txt, examples/tools/encodedfiles/utf-16le.txt, examples/tools/encodedfiles/utf-8.txt, examples/widgets/charactermap.py, examples/widgets/icons.py, examples/widgets/icons/icons.py, examples/widgets/icons/images/designer.png, examples/widgets/icons/images/find_disabled.png, examples/widgets/icons/images/find_normal.png, examples/widgets/icons/images/monkey_off_128x128.png, examples/widgets/icons/images/monkey_off_16x16.png, examples/widgets/icons/images/monkey_off_32x32.png, examples/widgets/icons/images/monkey_off_64x64.png, examples/widgets/icons/images/monkey_on_128x128.png, examples/widgets/icons/images/monkey_on_16x16.png, examples/widgets/icons/images/monkey_on_32x32.png, examples/widgets/icons/images/monkey_on_64x64.png, examples/widgets/icons/images/qtopia_16x16.png, examples/widgets/icons/images/qtopia_32x32.png, examples/widgets/icons/images/qtopia_48x48.png, examples/widgets/images/circle.png, examples/widgets/images/square.png, examples/widgets/images/triangle.png, examples/widgets/tooltips.py, examples/widgets/tooltips/images/circle.png, examples/widgets/tooltips/images/square.png, examples/widgets/tooltips/images/triangle.png, examples/widgets/tooltips/tooltips.py, examples/widgets/tooltips/tooltips.qrc, examples/widgets/tooltips/tooltips_rc.py, lib/configure.py, pyrcc/main.cpp, pyrcc/pyrcc.sbf, pyrcc/rcc.cpp, pyrcc/rcc.h: Added the grabber.py, configdialog.py and tabdialog.py examples from Douglas. Added the chart.py, painterpaths.py, textures.py, simpledommodel.py, simpletreemodel.py, basicdrawing.py and concentriccircles.py examples from DavidB. Added pyrcc4 and wrapped qRegisterResourceData(). Switched the application.py and tooltips.py examples to use pyrcc4. Wrapped the remaining QStyleOption classes. [659a7512f09b] 2005-12-19 phil * PyQt4.msp, examples/dialogs/tabdialog.py, examples/painting/concentriccircles.py: Added QT_VERSION and QT_VERSION_STR to QtCore. [4bacabcbce0a] * lib/configure.py, pylupdate/main.cpp, pylupdate/pylupdate.sbf: Clean up configure.py. Integrated pylupdate. [8151e50369d1] 2005-12-18 phil * build.py, lib/configure.py, pylupdate/fetchtr.cpp, pylupdate/main.cpp, pylupdate/merge.cpp, pylupdate/metatranslator.cpp, pylupdate/metatranslator.h, pylupdate/numberh.cpp, pylupdate/proparser.cpp, pylupdate/proparser.h, pylupdate/pylupdate.sbf, pylupdate/sametexth.cpp, pylupdate/translator.cpp, pylupdate/translator.h, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/loader.py, pyuic/uic/elementtree/ElementPath.py, pyuic/uic/elementtree/ElementTree.py, pyuic/uic/elementtree/__init__.py, pyuic/uic/properties.py: Added a new pyuic4 snapshot from Torsten. Added pylupdate4 from Detlev (not yet integrated into the PyQt build system). [7d5813e0d823] * build.py, lib/THANKS, lib/configure.py, pyuic/tests/buddies.ui, pyuic/tests/calculatorform.ui, pyuic/tests/cursor.ui, pyuic/tests /customwidget-test1.ui, pyuic/tests/datetimewidgets.ui, pyuic/tests/dockwidget.ui, pyuic/tests/fonts.ui, pyuic/tests/groupbox.ui, pyuic/tests/icon-test1.ui, pyuic/tests /icon-test2.ui, pyuic/tests/icons/desktop.png, pyuic/tests/icons/exec.png, pyuic/tests/icons/file_broken.png, pyuic/tests/icons/folder.png, pyuic/tests/icons/link.png, pyuic/tests/icons/lockoverlay.png, pyuic/tests/icons/network.png, pyuic/tests/icons/pipe.png, pyuic/tests/icons/www.png, pyuic/tests/icons/zip.png, pyuic/tests/layout-test1.ui, pyuic/tests /layout-test2.ui, pyuic/tests/layout-test3.ui, pyuic/tests/lines.ui, pyuic/tests/mainwindow-test1.ui, pyuic/tests/palette.ui, pyuic/tests/pixmap.ui, pyuic/tests/qcombobox.ui, pyuic/tests /qlistwidget-qstackedwidget.ui, pyuic/tests/qtablewidget.ui, pyuic/tests/qtabwidget.ui, pyuic/tests/qtoolbox.ui, pyuic/tests/qtreewidget.ui, pyuic/tests/richtext.ui, pyuic/tests/shortcut.ui, pyuic/tests/simpledialog.ui, pyuic/tests/simplewidgets.ui, pyuic/tests/sizes.ui, pyuic/tests/sliders.ui, pyuic/tests/spacers.ui, pyuic/tests/splitter.ui, pyuic/tests/taborder.ui, pyuic/tests/testsuite.py, pyuic/tests/tooltip-whatsthis.ui, pyuic/tests/views.ui: Added the pyuic tests which got lost along the way. pyuic4 is now installed. [dbc3590466f4] * lib/configure.py: Stripped the Qt3 specific stuff from configure.py. [cc11a3ec2524] * build.py: Updated the internal build system not to include the .svn directory in packages. [7c8517114731] 2005-12-17 phil * Makefile, build.py: Changes to the internal build system for the CVS to SVN transfer. [ee4d1a2fa2ba] * Makefile, NEWS, PyQt4.msp, build.py, examples/dialogs/extension.py, examples/itemviews/spinboxdelegate.py, examples/layouts/basiclayout.py, examples/layouts/flowlayout.py, examples/mainwindows/application.py, examples/mainwindows/images/copy.png, examples/mainwindows/images/cut.png, examples/mainwindows/images/new.png, examples/mainwindows/images/open.png, examples/mainwindows/images/paste.png, examples/mainwindows/images/save.png, examples/tools/codecs.py, examples/tools/encodedfiles/iso-8859-1.txt, examples/tools/encodedfiles/iso-8859-15.txt, examples/tools/encodedfiles/utf-16.txt, examples/tools/encodedfiles /utf-16be.txt, examples/tools/encodedfiles/utf-16le.txt, examples/tools/encodedfiles/utf-8.txt, examples/tools/regexp.py, examples/tutorial/t1.py, examples/tutorial/t10.py, examples/tutorial/t11.py, examples/tutorial/t12.py, examples/tutorial/t13.py, examples/tutorial/t14.py, examples/tutorial/t2.py, examples/tutorial/t3.py, examples/tutorial/t4.py, examples/tutorial/t5.py, examples/tutorial/t6.py, examples/tutorial/t7.py, examples/tutorial/t8.py, examples/tutorial/t9.py, examples/widgets/analogclock.py, examples/widgets/calculator.py, examples/widgets/charactermap.py, examples/widgets/digitalclock.py, examples/widgets/groupbox.py, examples/widgets/icons.py, examples/widgets/images/circle.png, examples/widgets/images/square.png, examples/widgets/images/triangle.png, examples/widgets/imageviewer.py, examples/widgets/lineedits.py, examples/widgets/screenshot.py, examples/widgets/scribble.py, examples/widgets/sliders.py, examples/widgets/spinboxes.py, examples/widgets/tetrix.py, examples/widgets/tooltips.py, examples/widgets/wiggly.py, examples/widgets/windowflags.py, lib/LICENSE.commercial, lib/LICENSE.commercial.short, lib/LICENSE.edu, lib/LICENSE.edu.short, lib/LICENSE.eval, lib/LICENSE.eval.short, lib/LICENSE.gpl, lib/LICENSE.gpl.short, lib/LICENSE.internal, lib/README, lib/README.AIX, lib/README.MacOSX, lib/README.SunOS, lib/THANKS, lib/__init__.py, lib/build.py, lib/configure.py, lib/license.py.commercial, lib/license.py.edu, lib/license.py.eval, lib/license.py.internal, lib/mksccode.py, lib /pyqt-edu.sip, lib/pyqt-eval.sip, lib/pyqt-gpl.sip, lib/pyqt- internal.sip, lib/pyqtconfig.py.in, pyuic/LICENSE, pyuic/uic/Compiler/__init__.py, pyuic/uic/Compiler/compiler.py, pyuic/uic/Compiler/indenter.py, pyuic/uic/Compiler/proxyproperties.py, pyuic/uic/Compiler/qobjectcreator.py, pyuic/uic/Compiler/qtproxies.py, pyuic/uic/Loader/__init__.py, pyuic/uic/Loader/loader.py, pyuic/uic/Loader/qobjectcreator.py, pyuic/uic/__init__.py, pyuic/uic/elementtree/ElementPath.py, pyuic/uic/elementtree/ElementTree.py, pyuic/uic/elementtree/__init__.py, pyuic/uic/exceptions.py, pyuic/uic/properties.py, pyuic/uic/pyuic.py, pyuic/uic/uiparser.py, test/ownership/guiBridges.py, test/ownership/pyqtbug6.py, test/ownership/semaphore.py, test/ownership/wref.py, test/runtests.py, test/test_QDate.py, test/test_QDateTime.py, test/test_QDir.py, test/test_QPoint.py, test/test_QRect.py, test/test_QRegion.py, test/test_QSize.py, test/test_QString.py, test/test_QStringList.py, test/test_QTime.py, test/test_pyuic.py, test/ui/BookmarkForm.ui, test/ui/ConnectionWizard.ui, test/ui/MainInterface.ui, test/ui/PreferencesForm.ui, test/ui/RunControlMainGUI.ui, test/ui/ToolConfigurationForm.ui, test/ui/menus.ui, test/ui/pqfaxdial.ui, test/ui/spacer.ui: Import of PyQt from CVS [bcbeccaa479e] PyQt-x11-gpl-4.11.4/configure-ng.py0000644000076500000240000027263112536324420016715 0ustar philstaff00000000000000# This script generates the Makefiles for building PyQt. It has no dependency # on the sipconfig module. # # Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. from distutils import sysconfig import glob import optparse import os import shutil import stat import sys # Initialise the constants. PYQT_VERSION_STR = "4.11.4" SIP_MIN_VERSION = '4.16.4' class ModuleMetadata: """ This class encapsulates the meta-data about a PyQt4 module. """ def __init__(self, qmake_CONFIG='', qmake_QT=None, qmake_TARGET='', qpy_lib=False): """ Initialise the meta-data. """ # The value to add to qmake's CONFIG variable. self.qmake_CONFIG = qmake_CONFIG # The values to update qmake's QT variable. self.qmake_QT = [] if qmake_QT is None else qmake_QT # The value to set qmake's TARGET variable to. It defaults to the name # of the module. self.qmake_TARGET = qmake_TARGET # Set if there is a qpy support library. self.qpy_lib = qpy_lib # The module meta-data for Qt4. QT4_MODULES = { 'dbus': ModuleMetadata(qmake_QT=['-gui'], qmake_TARGET='qt'), 'QAxContainer': ModuleMetadata(qmake_CONFIG='qaxcontainer'), 'Qt': ModuleMetadata(qmake_QT=['-core', '-gui']), 'QtAssistant': ModuleMetadata(qmake_CONFIG='assistant'), 'QtCore': ModuleMetadata(qmake_QT=['-gui'], qpy_lib=True), 'QtDBus': ModuleMetadata(qmake_QT=['dbus', '-gui'], qpy_lib=True), 'QtDeclarative': ModuleMetadata(qmake_QT=['declarative', 'network'], qpy_lib=True), 'QtDesigner': ModuleMetadata(qmake_CONFIG='designer', qpy_lib=True), 'QtGui': ModuleMetadata(qpy_lib=True), 'QtHelp': ModuleMetadata(qmake_CONFIG='help'), 'QtMultimedia': ModuleMetadata(qmake_QT=['multimedia']), 'QtNetwork': ModuleMetadata(qmake_QT=['network', '-gui']), 'QtOpenGL': ModuleMetadata(qmake_QT=['opengl'], qpy_lib=True), 'QtScript': ModuleMetadata(qmake_QT=['script', '-gui']), 'QtScriptTools': ModuleMetadata(qmake_QT=['scripttools', 'script']), 'QtSql': ModuleMetadata(qmake_QT=['sql']), 'QtSvg': ModuleMetadata(qmake_QT=['svg']), 'QtTest': ModuleMetadata(qmake_QT=['testlib']), 'QtWebKit': ModuleMetadata(qmake_QT=['webkit', 'network']), 'QtXml': ModuleMetadata(qmake_QT=['xml', '-gui']), 'QtXmlPatterns': ModuleMetadata( qmake_QT=['xmlpatterns', '-gui', 'network']), 'phonon': ModuleMetadata(qmake_QT=['phonon']) } # The module meta-data for Qt5. QT5_MODULES = { 'dbus': ModuleMetadata(qmake_QT=['-gui'], qmake_TARGET='qt'), 'QAxContainer': ModuleMetadata(qmake_QT=['axcontainer']), 'Qt': ModuleMetadata(qmake_QT=['-core', '-gui']), 'QtCore': ModuleMetadata(qmake_QT=['-gui'], qpy_lib=True), 'QtDBus': ModuleMetadata(qmake_QT=['dbus', '-gui'], qpy_lib=True), 'QtDeclarative': ModuleMetadata(qmake_QT=['declarative', 'network'], qpy_lib=True), 'QtDesigner': ModuleMetadata(qmake_QT=['designer'], qpy_lib=True), 'QtGui': ModuleMetadata(qmake_QT=['widgets', 'printsupport'], qpy_lib=True), 'QtHelp': ModuleMetadata(qmake_QT=['help']), 'QtMultimedia': ModuleMetadata(qmake_QT=['multimedia']), 'QtNetwork': ModuleMetadata(qmake_QT=['network', '-gui']), 'QtOpenGL': ModuleMetadata(qmake_QT=['opengl'], qpy_lib=True), 'QtScript': ModuleMetadata(qmake_QT=['script', '-gui']), 'QtScriptTools': ModuleMetadata( qmake_QT=['scripttools', 'script', 'widgets']), 'QtSql': ModuleMetadata(qmake_QT=['sql', 'widgets']), 'QtSvg': ModuleMetadata(qmake_QT=['svg']), 'QtTest': ModuleMetadata(qmake_QT=['testlib', 'widgets']), 'QtWebKit': ModuleMetadata( qmake_QT=['webkit', 'webkitwidgets', 'network', 'printsupport']), 'QtXml': ModuleMetadata(qmake_QT=['xml', '-gui']), 'QtXmlPatterns': ModuleMetadata( qmake_QT=['xmlpatterns', '-gui', 'network']) } def error(msg): """ Display an error message and terminate. msg is the text of the error message. """ sys.stderr.write(format("Error: " + msg) + "\n") sys.exit(1) def inform(msg): """ Display an information message. msg is the text of the error message. """ sys.stdout.write(format(msg) + "\n") def format(msg, left_margin=0, right_margin=78): """ Format a message by inserting line breaks at appropriate places. msg is the text of the message. left_margin is the position of the left margin. right_margin is the position of the right margin. Returns the formatted message. """ curs = left_margin fmsg = " " * left_margin for w in msg.split(): l = len(w) if curs != left_margin and curs + l > right_margin: fmsg = fmsg + "\n" + (" " * left_margin) curs = left_margin if curs > left_margin: fmsg = fmsg + " " curs = curs + 1 fmsg = fmsg + w curs = curs + l return fmsg def version_to_sip_tag(version): """ Convert a version number to a SIP tag. version is the version number. """ # Anything after Qt v4 is assumed to be Qt v5.0. if version > 0x050000: version = 0x050000 major = (version >> 16) & 0xff minor = (version >> 8) & 0xff patch = version & 0xff return 'Qt_%d_%d_%d' % (major, minor, patch) def version_to_string(version, parts=3): """ Convert an n-part version number encoded as a hexadecimal value to a string. version is the version number. Returns the string. """ part_list = [str((version >> 16) & 0xff)] if parts > 1: part_list.append(str((version >> 8) & 0xff)) if parts > 2: part_list.append(str(version & 0xff)) return '.'.join(part_list) class ConfigurationFileParser: """ A parser for configuration files. """ def __init__(self, config_file): """ Read and parse a configuration file. """ self._config = {} self._extrapolating = [] cfg = open(config_file) line_nr = 0 last_name = None section = '' section_config = {} self._config[section] = section_config for l in cfg: line_nr += 1 # Strip comments. l = l.split('#')[0] # See if this might be part of a multi-line. multiline = (last_name is not None and len(l) != 0 and l[0] == ' ') l = l.strip() if l == '': last_name = None continue # See if this is a new section. if l[0] == '[' and l[-1] == ']': section = l[1:-1].strip() if section == '': error( "%s:%d: Empty section name." % ( config_file, line_nr)) if section in self._config: error( "%s:%d: Section '%s' defined more than once." % ( config_file, line_nr, section)) section_config = {} self._config[section] = section_config last_name = None continue parts = l.split('=', 1) if len(parts) == 2: name = parts[0].strip() value = parts[1].strip() elif multiline: name = last_name value = section_config[last_name] value += ' ' + l else: name = value = '' if name == '' or value == '': error("%s:%d: Invalid line." % (config_file, line_nr)) section_config[name] = value last_name = name cfg.close() def sections(self): """ Return the list of sections, excluding the default one. """ return [s for s in self._config.keys() if s != ''] def preset(self, name, value): """ Add a preset value to the configuration. """ self._config[''][name] = value def get(self, section, name, default=None): """ Get a configuration value while extrapolating. """ # Get the name from the section, or the default section. value = self._config[section].get(name) if value is None: value = self._config[''].get(name) if value is None: if default is None: error( "Configuration file references non-existent name " "'%s'." % name) return default # Handle any extrapolations. parts = value.split('%(', 1) while len(parts) == 2: prefix, tail = parts parts = tail.split(')', 1) if len(parts) != 2: error( "Configuration file contains unterminated " "extrapolated name '%s'." % tail) xtra_name, suffix = parts if xtra_name in self._extrapolating: error( "Configuration file contains a recursive reference to " "'%s'." % xtra_name) self._extrapolating.append(xtra_name) xtra_value = self.get(section, xtra_name) self._extrapolating.pop() value = prefix + xtra_value + suffix parts = value.split('%(', 1) return value def getboolean(self, section, name, default): """ Get a boolean configuration value while extrapolating. """ value = self.get(section, name, default) # In case the default was returned. if isinstance(value, bool): return value if value in ('True', 'true', '1'): return True if value in ('False', 'false', '0'): return False error( "Configuration file contains invalid boolean value for " "'%s'." % name) def getlist(self, section, name, default): """ Get a list configuration value while extrapolating. """ value = self.get(section, name, default) # In case the default was returned. if isinstance(value, list): return value return value.split() class HostPythonConfiguration: """ A container for the host Python configuration. """ def __init__(self): """ Initialise the configuration. """ self.platform = sys.platform self.version = sys.hexversion >> 8 self.inc_dir = sysconfig.get_python_inc() self.venv_inc_dir = sysconfig.get_python_inc(prefix=sys.prefix) self.module_dir = sysconfig.get_python_lib(plat_specific=1) if sys.platform == 'win32': self.bin_dir = sys.exec_prefix self.data_dir = sys.prefix self.lib_dir = sys.prefix + '\\libs' else: self.bin_dir = sys.exec_prefix + '/bin' self.data_dir = sys.prefix + '/share' self.lib_dir = sys.prefix + '/lib' # The name of the interpreter used by the pyuic4 wrapper. if sys.platform == 'darwin': # The installation of MacOS's python is a mess that changes from # version to version and where sys.executable is useless. py_major = self.version >> 16 py_minor = (self.version >> 8) & 0xff # In Python v3.4 and later there is no pythonw. if (py_major == 3 and py_minor >= 4) or py_major >= 4: exe = "python" else: exe = "pythonw" self.pyuic_interpreter = '%s%d.%d' % (exe, py_major, py_minor) else: self.pyuic_interpreter = sys.executable class TargetQtConfiguration: """ A container for the target Qt configuration. """ def __init__(self, qmake): """ Initialise the configuration. qmake is the full pathname of the qmake executable that will provide the configuration. """ inform("Querying qmake about your Qt installation...") pipe = os.popen(' '.join([qmake, '-query'])) for l in pipe: l = l.strip() tokens = l.split(':', 1) if isinstance(tokens, list): if len(tokens) != 2: error("Unexpected output from qmake: '%s'\n" % l) name, value = tokens else: name = tokens value = None name = name.replace('/', '_') setattr(self, name, value) pipe.close() class TargetConfiguration: """ A container for configuration information about the target. """ def __init__(self): """ Initialise the configuration with default values. """ # Values based on the host Python configuration. py_config = HostPythonConfiguration() self.py_inc_dir = py_config.inc_dir self.py_venv_inc_dir = py_config.venv_inc_dir self.py_lib_dir = py_config.lib_dir self.py_platform = py_config.platform self.py_version = py_config.version self.pyqt_bin_dir = py_config.bin_dir self.pyqt_module_dir = py_config.module_dir self.pyqt_sip_dir = os.path.join(py_config.data_dir, 'sip', 'PyQt4') self.pyuic_interpreter = py_config.pyuic_interpreter # The qmake spec we want to use. if self.py_platform == 'win32': if self.py_version >= 0x030300: self.qmake_spec = 'win32-msvc2010' elif self.py_version >= 0x020600: self.qmake_spec = 'win32-msvc2008' elif self.py_version >= 0x020400: self.qmake_spec = 'win32-msvc.net' else: self.qmake_spec = 'win32-msvc' else: # Use the Qt default. (We may update it for OS/X later.) self.qmake_spec = '' self.default_qmake_spec = '' # Remaining values. self.dbus_inc_dirs = [] self.dbus_lib_dirs = [] self.dbus_libs = [] self.debug = False self.designer_plugin_dir = '' self.license_dir = source_path('sip') self.no_deprecated = False self.no_designer_plugin = False self.no_docstrings = False self.no_pydbus = False self.no_tools = False self.prot_is_public = (self.py_platform.startswith('linux') or self.py_platform == 'darwin') self.qmake = self._find_exe('qmake') self.qmake_variables = [] self.py_pylib_dir = '' self.py_pylib_lib = '' self.py_pyshlib = '' self.pydbus_inc_dir = '' self.pydbus_module_dir = '' self.pyqt_disabled_features = [] self.pyqt_modules = [] self.qsci_api = False self.qsci_api_dir = '' self.qt_framework = False self.qt_licensee = '' self.qt_shared = False self.qt_version = 0 self.sip = self._find_exe('sip5', 'sip') self.sip_inc_dir = '' self.static = False self.static_plugins = [] self.sysroot = '' self.vend_enabled = False self.vend_inc_dir = '' self.vend_lib_dir = '' def from_configuration_file(self, config_file): """ Initialise the configuration with values from a file. config_file is the name of the configuration file. """ inform("Reading configuration from %s..." % config_file) parser = ConfigurationFileParser(config_file) # Populate some presets from the command line. version = version_to_string(self.py_version).split('.') parser.preset('py_major', version[0]) parser.preset('py_minor', version[1]) parser.preset('sysroot', self.sysroot) # Find the section corresponding to the version of Qt. qt_major = self.qt_version >> 16 section = None latest_section = -1 for name in parser.sections(): parts = name.split() if len(parts) != 2 or parts[0] != 'Qt': continue section_qt_version = version_from_string(parts[1]) if section_qt_version is None: continue # Major versions must match. if section_qt_version >> 16 != self.qt_version >> 16: continue # It must be no later that the version of Qt. if section_qt_version > self.qt_version: continue # Save it if it is the latest so far. if section_qt_version > latest_section: section = name latest_section = section_qt_version if section is None: error("%s does not define a section that covers Qt v%s." % (config_file, version_to_string(self.qt_version))) self.py_platform = parser.get(section, 'py_platform', self.py_platform) self.py_inc_dir = parser.get(section, 'py_inc_dir', self.py_inc_dir) self.py_venv_inc_dir = self.py_inc_dir self.py_pylib_dir = parser.get(section, 'py_pylib_dir', self.py_pylib_dir) self.py_pylib_lib = parser.get(section, 'py_pylib_lib', self.py_pylib_lib) self.py_pyshlib = parser.get(section, 'py_pyshlib', self.py_pyshlib) self.qt_shared = parser.getboolean(section, 'qt_shared', self.qt_shared) self.pyqt_disabled_features = parser.getlist(section, 'pyqt_disabled_features', self.pyqt_disabled_features) self.pyqt_modules = parser.getlist(section, 'pyqt_modules', self.pyqt_modules) self.pyqt_module_dir = parser.get(section, 'pyqt_module_dir', self.pyqt_module_dir) self.pyqt_bin_dir = parser.get(section, 'pyqt_bin_dir', self.pyqt_bin_dir) self.pyqt_sip_dir = parser.get(section, 'pyqt_sip_dir', self.pyqt_sip_dir) self.pyuic_interpreter = parser.get(section, 'pyuic_interpreter', self.pyuic_interpreter) def from_introspection(self, verbose, debug): """ Initialise the configuration by introspecting the system. """ inform("Determining the details of your Qt installation...") out_file = 'qtdetail.out' source = '''#include #include #include #include int main(int argc, char **argv) { QCoreApplication app(argc, argv); QFile outf("%s"); if (!outf.open(QIODevice::WriteOnly|QIODevice::Truncate|QIODevice::Text)) return 1; QTextStream out(&outf); out << QLibraryInfo::licensee() << '\\n'; #if defined(QT_SHARED) || defined(QT_DLL) out << "shared\\n"; #else out << "static\\n"; #endif // Determine which features should be disabled. #if defined(QT_NO_ACCESSIBILITY) out << "PyQt_Accessibility\\n"; #endif #if defined(QT_NO_SESSIONMANAGER) out << "PyQt_SessionManager\\n"; #endif #if defined(QT_NO_STATUSTIP) out << "PyQt_StatusTip\\n"; #endif #if defined(QT_NO_TOOLTIP) out << "PyQt_ToolTip\\n"; #endif #if defined(QT_NO_WHATSTHIS) out << "PyQt_WhatsThis\\n"; #endif #if defined(QT_NO_OPENSSL) out << "PyQt_OpenSSL\\n"; #endif #if defined(QT_NO_SIZEGRIP) out << "PyQt_SizeGrip\\n"; #endif #if defined(QT_NO_SYSTEMTRAYICON) out << "PyQt_SystemTrayIcon\\n"; #endif #if defined(QT_NO_PRINTDIALOG) out << "PyQt_PrintDialog\\n"; #endif #if defined(QT_NO_PRINTER) out << "PyQt_Printer\\n"; #endif #if defined(QT_NO_PRINTPREVIEWDIALOG) out << "PyQt_PrintPreviewDialog\\n"; #endif #if defined(QT_NO_PRINTPREVIEWWIDGET) out << "PyQt_PrintPreviewWidget\\n"; #endif #if defined(QT_NO_RAWFONT) out << "PyQt_RawFont\\n"; #endif #if defined(QT3_SUPPORT) && QT_VERSION < 0x040200 out << "PyQt_NoQtPrintRangeBug\\n"; #endif #if defined(QT_OPENGL_ES) out << "PyQt_NoOpenGLES\\n"; #endif #if defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE) || defined(QT_ARCH_SYMBIAN) || defined(QT_ARCH_VXWORKS) out << "PyQt_qreal_double\\n"; #endif return 0; } ''' % out_file cmd = compile_qt_program(self, verbose, 'qtdetail', source, 'QtCore') if cmd is None: error("Failed to determine the detail of your Qt installation. Try again using the --verbose flag to see more detail about the problem.") # Create the output file, first making sure it doesn't exist. remove_file(out_file) run_command(cmd, verbose) if not os.access(out_file, os.F_OK): error("%s failed to create %s. Make sure your Qt installation is correct." % (cmd, out_file)) # Read the details. f = open(out_file) lines = f.read().split('\n') f.close() self.qt_licensee = lines[0] self.qt_shared = (lines[1] == 'shared') self.pyqt_disabled_features = lines[2:-1] # Get the details of the Python interpreter library. py_major = self.py_version >> 16 py_minor = (self.py_version >> 8) & 0x0ff if sys.platform == 'win32': debug_suffix = get_win32_debug_suffix(debug) pylib_lib = 'python%d%d%s' % (py_major, py_minor, debug_suffix) pylib_dir = self.py_lib_dir # Assume Python is a DLL on Windows. pyshlib = pylib_lib else: abi = getattr(sys, 'abiflags', '') pylib_lib = 'python%d.%d%s' % (py_major, py_minor, abi) pylib_dir = pyshlib = '' # Use distutils to get the additional configuration. ducfg = sysconfig.get_config_vars() config_args = ducfg.get('CONFIG_ARGS', '') dynamic_pylib = '--enable-shared' in config_args if not dynamic_pylib: dynamic_pylib = '--enable-framework' in config_args if dynamic_pylib: pyshlib = ducfg.get('LDLIBRARY', '') exec_prefix = ducfg['exec_prefix'] multiarch = ducfg.get('MULTIARCH', '') libdir = ducfg['LIBDIR'] if glob.glob('%s/lib/libpython%d.%d*' % (exec_prefix, py_major, py_minor)): pylib_dir = exec_prefix + '/lib' elif multiarch != '' and glob.glob('%s/lib/%s/libpython%d.%d*' % (exec_prefix, multiarch, py_major, py_minor)): pylib_dir = exec_prefix + '/lib/' + multiarch elif glob.glob('%s/libpython%d.%d*' % (libdir, py_major, py_minor)): pylib_dir = libdir self.py_pylib_dir = pylib_dir self.py_pylib_lib = pylib_lib self.py_pyshlib = pyshlib # Apply sysroot where necessary. if self.sysroot != '': self.py_inc_dir = self._apply_sysroot(self.py_inc_dir) self.py_venv_inc_dir = self._apply_sysroot(self.py_venv_inc_dir) self.py_pylib_dir = self._apply_sysroot(self.py_pylib_dir) self.pyqt_bin_dir = self._apply_sysroot(self.pyqt_bin_dir) self.pyqt_module_dir = self._apply_sysroot(self.pyqt_module_dir) self.pyqt_sip_dir = self._apply_sysroot(self.pyqt_sip_dir) def _apply_sysroot(self, dir_name): """ Replace any leading sys.prefix of a directory name with sysroot. """ if dir_name.startswith(sys.prefix): dir_name = self.sysroot + dir_name[len(sys.prefix):] return dir_name def get_qt_configuration(self, opts): """ Get the Qt configuration that can be extracted from qmake. opts are the command line options. """ # Query qmake. qt_config = TargetQtConfiguration(self.qmake) self.qt_version = 0 try: qt_version_str = qt_config.QT_VERSION for v in qt_version_str.split('.'): self.qt_version *= 256 self.qt_version += int(v) except AttributeError: qt_version_str = None # Check the Qt version number as soon as possible. Note that I'm not # sure when the -query flag was added to qmake (maybe not until v4.6), # so we try to cover all bases with the error message. if qt_version_str is None: if sys.platform == 'win32': error( "PyQt4 requires Qt v4.1.0 or later. Make sure the " "correct version of qmake is on your PATH. If you are " "sure you are using Qt v4 then try the configure.py " "script instead of this one.") else: error( "PyQt4 requires Qt v4.1.0 or later. Use the --qmake " "flag to specify the correct version of qmake. If you " "are sure you are using Qt v4 then try the " "configure.py script instead of this one.") if self.qt_version < 0x040100: if sys.platform == 'win32': error( "PyQt4 requires Qt v4.1.0 or later. You seem to be " "using v%s. Make sure the correct version of qmake is " "on your PATH." % qt_version_str) else: error( "PyQt4 requires Qt v4.1.0 or later. You seem to be " "using v%s. Use the --qmake flag to specify the " "correct version of qmake." % qt_version_str) self.designer_plugin_dir = qt_config.QT_INSTALL_PLUGINS + '/designer' if self.sysroot == '': self.sysroot = getattr(qt_config, 'QT_SYSROOT', '') # By default, install the API file if QScintilla seems to be installed # in the default location. self.qsci_api_dir = os.path.join(qt_config.QT_INSTALL_DATA, 'qsci') self.qsci_api = os.path.isdir(self.qsci_api_dir) # Save the default qmake spec. and finalise the value we want to use. self.default_qmake_spec = getattr(qt_config, 'QMAKE_SPEC', '') if self.qmake_spec == '': self.qmake_spec = self.default_qmake_spec if sys.platform == 'darwin': # The binary OS/X Qt installer defaults to XCode. If this is what # we might have then use macx-clang (Qt v5) or macx-g++ (Qt v4). if self.qmake_spec in ('macx-xcode', ''): if self.qt_version >= 0x050000: # This will exist (and we can't check anyway). self.qmake_spec = 'macx-clang' else: self.qmake_spec = 'macx-g++' # See if it is a framework. if os.access(os.path.join(qt_config.QT_INSTALL_LIBS, 'QtCore.framework'), os.F_OK): self.qt_framework = True def post_configuration(self): """ Handle any remaining default configuration after having read a configuration file or introspected the system. """ # The platform may have changed so update the default. if self.py_platform.startswith('linux') or self.py_platform == 'darwin': self.prot_is_public = True # 'Nokia' is the value that is used by Maemo's version of Qt. if self.qt_licensee == 'Nokia': self.qt_licensee = 'Open Source' self.sip_inc_dir = self.py_venv_inc_dir self.vend_inc_dir = self.py_venv_inc_dir self.vend_lib_dir = self.py_lib_dir def apply_pre_options(self, opts): """ Apply options from the command line that influence subsequent configuration. opts are the command line options. """ # Get the target Python version. if opts.target_py_version is not None: self.py_version = opts.target_py_version # Get the system root. if opts.sysroot is not None: self.sysroot = opts.sysroot # Determine how to run qmake. try: qmake = opts.qmake except AttributeError: # Windows. qmake = None if qmake is not None: self.qmake = qmake elif self.qmake is None: # Under Windows qmake and the Qt DLLs must be on the system PATH # otherwise the dynamic linker won't be able to resolve the # symbols. On other systems we assume we can just run qmake by # using its full pathname. if sys.platform == 'win32': error("Make sure you have a working Qt qmake on your PATH.") else: error( "Use the --qmake argument to explicitly specify a " "working Qt qmake.") if opts.qmakespec is not None: self.qmake_spec = opts.qmakespec def apply_post_options(self, opts): """ Apply options from the command line that override the previous configuration. opts are the command line options. """ if opts.assumeshared: self.qt_shared = True if opts.bindir is not None: self.pyqt_bin_dir = opts.bindir if opts.debug: self.debug = True if opts.licensedir is not None: self.license_dir = opts.licensedir if opts.designerplugindir is not None: self.designer_plugin_dir = opts.designerplugindir if opts.destdir is not None: self.pyqt_module_dir = opts.destdir if len(opts.modules) > 0: self.pyqt_modules = opts.modules if opts.nodeprecated: self.no_deprecated = True if opts.nodesignerplugin: self.no_designer_plugin = True if opts.nodocstrings: self.no_docstrings = True if opts.nopydbus: self.no_pydbus = True if opts.notools: self.no_tools = True if opts.protispublic is not None: self.prot_is_public = opts.protispublic if opts.pydbusincdir is not None: self.pydbus_inc_dir = opts.pydbusincdir if opts.pyuicinterpreter is not None: self.pyuic_interpreter = opts.pyuicinterpreter if opts.qsciapidir is not None: self.qsci_api_dir = opts.qsciapidir # Assume we want to install the API file if we have provided an # installation directory. self.qsci_api = True if opts.qsciapi is not None: self.qsci_api = opts.qsciapi if opts.qsciapidir is not None: self.qsci_api_dir = opts.qsciapidir if opts.sip is not None: self.sip = opts.sip if opts.sipdir is not None: self.pyqt_sip_dir = opts.sipdir elif not opts.install_sipfiles: self.pyqt_sip_dir = '' if opts.sipincdir is not None: self.sip_inc_dir = opts.sipincdir if opts.static: self.static = True if len(opts.staticplugins) > 0: self.static_plugins = opts.staticplugins if opts.vendenabled: self.vend_enabled = True if opts.vendincdir is not None: self.vend_inc_dir = opts.vendincdir if opts.vendlibdir is not None: self.vend_lib_dir = opts.vendlibdir # Handle any conflicts. if self.qt_shared: if len(self.static_plugins) != 0: inform( "Static plugins are disabled because Qt has been " "built as shared libraries.") self.static_plugins = [] else: if not self.static: error( "Qt has been built as static libraries so the " "--static argument should be used.") if self.vend_enabled and self.static: error( "Using the VendorID package when building static " "libraries makes no sense.") def get_pylib_link_arguments(self): """ Return a string to append to qmake's LIBS macro to link against the Python interpreter library. """ return qmake_quote('-L' + self.py_pylib_dir) + ' -l' + self.py_pylib_lib @staticmethod def _find_exe(*exes): """ Find an executable, ie. the first on the path. """ path_dirs = os.environ.get('PATH', '').split(os.pathsep) for exe in exes: if sys.platform == 'win32': exe = exe + '.exe' for d in path_dirs: exe_path = os.path.join(d, exe) if os.access(exe_path, os.X_OK): return exe_path return None def create_optparser(target_config): """ Create the parser for the command line. target_config is the target configuration containing default values. """ def store_abspath(option, opt_str, value, parser): setattr(parser.values, option.dest, os.path.abspath(value)) def store_abspath_dir(option, opt_str, value, parser): if not os.path.isdir(value): raise optparse.OptionValueError("'%s' is not a directory" % value) setattr(parser.values, option.dest, os.path.abspath(value)) def store_abspath_exe(option, opt_str, value, parser): if not os.access(value, os.X_OK): raise optparse.OptionValueError("'%s' is not an executable" % value) setattr(parser.values, option.dest, os.path.abspath(value)) def store_abspath_file(option, opt_str, value, parser): if not os.path.isfile(value): raise optparse.OptionValueError("'%s' is not a file" % value) setattr(parser.values, option.dest, os.path.abspath(value)) def store_version(option, opt_str, value, parser): version = version_from_string(value) if version is None: raise optparse.OptionValueError( "'%s' is not a valid version number" % value) setattr(parser.values, option.dest, version) p = optparse.OptionParser(usage="python %prog [opts] [name=value] " "[name+=value]", version=PYQT_VERSION_STR) # Note: we don't use %default to be compatible with Python 2.3. p.add_option("--static", "-k", dest='static', default=False, action='store_true', help="build modules as static libraries") p.add_option("--no-docstrings", dest='nodocstrings', default=False, action='store_true', help="disable the generation of docstrings") p.add_option("--trace", "-r", dest='tracing', default=False, action='store_true', help="build modules with tracing enabled") p.add_option("--debug", "-u", dest='debug', default=False, action='store_true', help="build modules with debugging symbols") p.add_option("--verbose", "-w", dest='verbose', default=False, action='store_true', help="enable verbose output during configuration") p.add_option("--concatenate", "-c", dest='concat', default=False, action='store_true', help="concatenate each module's C++ source files") p.add_option("--concatenate-split", "-j", dest='split', type='int', default=1, metavar="N", help="split the concatenated C++ source files into N pieces " "[default: 1]") # Configuration. g = optparse.OptionGroup(p, title="Configuration") g.add_option("--confirm-license", dest='license_confirmed', default=False, action='store_true', help="confirm acceptance of the license") g.add_option("--license-dir", dest='licensedir', type='string', default=None, action='callback', callback=store_abspath, metavar="DIR", help="the license file can be found in DIR [default: " "%s]" % target_config.license_dir) g.add_option("--target-py-version", dest='target_py_version', type='string', action='callback', callback=store_version, metavar="VERSION", help="the major.minor version of the target Python [default: " "%s]" % version_to_string(target_config.py_version, parts=2)) g.add_option("--sysroot", dest='sysroot', type='string', action='callback', callback=store_abspath_dir, metavar="DIR", help="DIR is the target system root directory") g.add_option("--spec", dest='qmakespec', default=None, action='store', metavar="SPEC", help="pass -spec SPEC to qmake [default: %s]" % "don't pass -spec" if target_config.qmake_spec == '' else target_config.qmake_spec) g.add_option("--enable", "-e", dest='modules', default=[], action='append', metavar="MODULE", help="enable checks for the specified MODULE [default: checks for " "all modules will be enabled]") g.add_option("--no-designer-plugin", dest='nodesignerplugin', default=False, action='store_true', help="disable the building of the Python plugin for Qt Designer " "[default: enabled]") g.add_option("--plugin", "-t", dest='staticplugins', default=[], action='append', metavar="PLUGIN", help="add PLUGIN to the list be linked (if Qt is built as static " "libraries)") g.add_option("--assume-shared", dest='assumeshared', default=False, action='store_true', help="assume that the Qt libraries have been built as shared " "libraries [default: check]") g.add_option("--no-timestamp", "-T", dest='notimestamp', default=False, action='store_true', help="suppress timestamps in the header comments of generated " "code [default: include timestamps]") g.add_option("--no-deprecated", dest='nodeprecated', default=False, action='store_true', help="disable Qt v4 features deprecated in Qt v5 [default: " "enabled]") g.add_option("--configuration", dest='config_file', type='string', action='callback', callback=store_abspath_file, metavar="FILE", help="FILE contains the target configuration") g.add_option("--protected-is-public", dest='protispublic', default=None, action='store_true', help="enable building with 'protected' redefined as 'public' " "[default: %s]" % "enabled" if target_config.prot_is_public else "disabled") g.add_option("--protected-not-public", dest='protispublic', default=None, action='store_false', help="disable building with 'protected' redefined as 'public'") g.add_option("--pyuic4-interpreter", dest='pyuicinterpreter', type='string', default=None, action='callback', callback=store_abspath_exe, metavar="FILE", help="the name of the Python interpreter to run the pyuic4 " "wrapper is FILE [default: %s]" % target_config.pyuic_interpreter) if sys.platform != 'win32': g.add_option("--qmake", "-q", dest='qmake', type='string', default=None, action='callback', callback=store_abspath_exe, metavar="FILE", help="the pathname of qmake is FILE [default: " "%s]" % (target_config.qmake or "search PATH")) g.add_option("--sip", dest='sip', type='string', default=None, action='callback', callback=store_abspath_exe, metavar="FILE", help="the pathname of sip is FILE [default: " "%s]" % (target_config.sip or "None")) g.add_option("--sip-incdir", dest='sipincdir', type='string', default=None, action='callback', callback=store_abspath_dir, metavar="DIR", help="the directory containing the sip.h header file is DIR " "[default: %s]" % target_config.sip_inc_dir) g.add_option("--no-python-dbus", dest='nopydbus', default=False, action='store_true', help="disable the Qt support for the standard Python DBus " "bindings [default: enabled]") g.add_option("--dbus", "-s", dest='pydbusincdir', type='string', default=None, action='callback', callback=store_abspath_dir, metavar="DIR", help="the directory containing the dbus/dbus-python.h header is " "DIR [default: supplied by pkg-config]") p.add_option_group(g) # Installation. g = optparse.OptionGroup(p, title="Installation") g.add_option("--bindir", "-b", dest='bindir', type='string', default=None, action='callback', callback=store_abspath, metavar="DIR", help="install pyuic4, pyrcc4 and pylupdate4 in DIR [default: " "%s]" % target_config.pyqt_bin_dir) g.add_option("--destdir", "-d", dest='destdir', type='string', default=None, action='callback', callback=store_abspath, metavar="DIR", help="install the PyQt4 Python package in DIR [default: " "%s]" % target_config.pyqt_module_dir) g.add_option("--designer-plugindir", dest='designerplugindir', type='string', default=None, action='callback', callback=store_abspath, metavar="DIR", help="install the Python plugin for Qt Designer in DIR " "[default: QT_INSTALL_PLUGINS/designer]") g.add_option("--no-sip-files", action="store_false", default=True, dest="install_sipfiles", help="disable the installation of the " ".sip files [default: enabled]") g.add_option("--sipdir", "-v", dest='sipdir', type='string', default=None, action='callback', callback=store_abspath, metavar="DIR", help="install the PyQt4 .sip files in DIR [default: %s]" % target_config.pyqt_sip_dir) g.add_option("--no-tools", action="store_true", default=False, dest="notools", help="disable the building of pyuic5, pyrcc5 and pylupdate5 " "[default: enabled]") p.add_option_group(g) # Vendor ID. g = optparse.OptionGroup(p, title="VendorID support") g.add_option("--vendorid", "-i", dest='vendenabled', default=False, action='store_true', help="enable checking of signed interpreters using the VendorID " "package [default: %s]" % "enabled" if target_config.vend_enabled else "disabled") g.add_option("--vendorid-incdir", "-l", dest='vendincdir', type='string', default=None, action='callback', callback=store_abspath_dir, metavar="DIR", help="the VendorID header file is installed in DIR [default: " "%s]" % target_config.vend_inc_dir) g.add_option("--vendorid-libdir", "-m", dest='vendlibdir', type='string', default=None, action='callback', callback=store_abspath_dir, metavar="DIR", help="the VendorID library is installed in DIR [default: " "%s]" % target_config.vend_lib_dir) p.add_option_group(g) # QScintilla. g = optparse.OptionGroup(p, title="QScintilla support") g.add_option("--qsci-api", "-a", dest='qsciapi', default=None, action='store_true', help="always install the PyQt API file for QScintilla [default: " "install only if QScintilla installed]") g.add_option("--no-qsci-api", dest='qsciapi', default=None, action='store_false', help="do not install the PyQt API file for QScintilla [default: " "install only if QScintilla installed]") g.add_option("--qsci-api-destdir", "-n", dest='qsciapidir', type='string', default=None, action='callback', callback=store_abspath, metavar="DIR", help="install the PyQt4 API file for QScintilla in DIR [default: " "QT_INSTALL_DATA/qsci]") p.add_option_group(g) return p def check_modules(target_config, verbose): """ Check which modules can be built and update the target configuration accordingly. target_config is the target configuration. verbose is set if the output is to be displayed. """ target_config.pyqt_modules.append('QtCore') check_module(target_config, verbose, 'QtGui', 'qwidget.h', 'new QWidget()') check_module(target_config, verbose, 'QtHelp', 'qhelpengine.h', 'new QHelpEngine("foo")') check_module(target_config, verbose, 'QtMultimedia', 'QAudioDeviceInfo', 'new QAudioDeviceInfo()') check_module(target_config, verbose, 'QtNetwork', 'qhostaddress.h', 'new QHostAddress()') if target_config.qt_version < 0x050000 or not target_config.no_deprecated: check_module(target_config, verbose, 'QtDeclarative', 'qdeclarativeview.h', 'new QDeclarativeView()') check_module(target_config, verbose, 'QtScript', 'qscriptengine.h', 'new QScriptEngine()') check_module(target_config, verbose, 'QtScriptTools', 'qscriptenginedebugger.h', 'new QScriptEngineDebugger()') check_module(target_config, verbose, 'QtXml', 'qdom.h', 'new QDomDocument()') check_module(target_config, verbose, 'QtOpenGL', 'qgl.h', 'new QGLWidget()') check_module(target_config, verbose, 'QtSql', 'qsqldatabase.h', 'new QSqlDatabase()') check_module(target_config, verbose, 'QtSvg', 'qsvgwidget.h', 'new QSvgWidget()') check_module(target_config, verbose, 'QtTest', 'QtTest', 'QTest::qSleep(0)') check_module(target_config, verbose, 'QtWebKit', 'qwebpage.h', 'new QWebPage()') check_module(target_config, verbose, 'QtXmlPatterns', 'qxmlname.h', 'new QXmlName()') if target_config.qt_version < 0x050000: check_module(target_config, verbose, 'phonon', 'phonon/videowidget.h', 'new Phonon::VideoWidget()') if target_config.qt_version < 0x040700: check_module(target_config, verbose, 'QtAssistant', 'qassistantclient.h', 'new QAssistantClient("foo")') if target_config.qt_shared: check_module(target_config, verbose, 'QtDesigner', 'QExtensionFactory', 'new QExtensionFactory()') else: inform("QtDesigner module disabled with static Qt libraries.") check_module(target_config, verbose, 'QAxContainer', 'qaxobject.h', 'new QAxObject()') # Qt v4.7 was current when we added support for QtDBus and we didn't bother # properly versioning its API. if target_config.qt_version >= 0x040700: check_module(target_config, verbose, 'QtDBus', 'qdbusconnection.h', 'QDBusConnection::systemBus()') def generate_makefiles(target_config, verbose, no_timestamp, parts, tracing): """ Generate the makefiles to build everything. target_config is the target configuration. verbose is set if the output is to be displayed. no_timestamp is set if the .sip files should exclude the timestamp. parts is the number of parts the generated code should be split into. tracing is set if the generated code should include tracing calls. """ # For the top-level .pro file. toplevel_pro = 'PyQt4.pro' subdirs = [] # Set the SIP platform, version and feature flags. sip_flags = get_sip_flags(target_config) # Go through the modules. for mname in target_config.pyqt_modules: metadata = get_module_metadata(target_config, mname) if metadata.qpy_lib: sp_qpy_dir = source_path('qpy', mname) qpy_c_sources = [os.path.relpath(f, mname) for f in glob.glob(os.path.join(sp_qpy_dir, '*.c'))] qpy_cpp_sources = [os.path.relpath(f, mname) for f in glob.glob(os.path.join(sp_qpy_dir, '*.cpp'))] qpy_headers = [os.path.relpath(f, mname) for f in glob.glob(os.path.join(sp_qpy_dir, '*.h'))] qpy_sources = qpy_c_sources + qpy_cpp_sources else: qpy_sources = [] qpy_headers = [] generate_sip_module_code(target_config, verbose, no_timestamp, parts, tracing, mname, sip_flags, qpy_sources, qpy_headers) subdirs.append(mname) # Generate the composite module. qtmod_sipdir = os.path.join('sip', 'Qt') mk_clean_dir(qtmod_sipdir) qtmod_sipfile = os.path.join(qtmod_sipdir, 'Qtmod.sip') f = open_for_writing(qtmod_sipfile) f.write('''%CompositeModule PyQt4.Qt ''') for mname in target_config.pyqt_modules: f.write('%%Include %s/%smod.sip\n' % (mname, mname)) f.close() generate_sip_module_code(target_config, verbose, no_timestamp, parts, tracing, 'Qt', sip_flags) subdirs.append('Qt') if not target_config.no_tools: # Generate pylupdate4 and pyrcc4. for tool in ('pylupdate', 'pyrcc'): generate_application_makefile(target_config, verbose, tool) subdirs.append(tool) # Generate the pyuic4 wrapper. pyuic_wrapper = generate_pyuic4_wrapper(target_config) # Generate the Qt Designer plugin. if not target_config.no_designer_plugin and 'QtDesigner' in target_config.pyqt_modules: if generate_plugin_makefile(target_config, verbose, 'designer', target_config.designer_plugin_dir, "Qt Designer"): subdirs.append('designer') # Generate the QScintilla API file. if target_config.qsci_api: inform("Generating the QScintilla API file...") f = open_for_writing('PyQt4.api') for mname in target_config.pyqt_modules: api = open(mname + '.api') for l in api: f.write('PyQt4.' + l) api.close() os.remove(mname + '.api') f.close() # Generate the Python dbus module. if target_config.pydbus_module_dir != '': mname = 'dbus' mk_dir(mname) sp_src_dir = source_path(mname) includepath = ' '.join(target_config.dbus_inc_dirs) lib_dirs = ['-L' + l for l in target_config.dbus_lib_dirs] lib_names = ['-l' + l for l in target_config.dbus_libs] libs = ' '.join(lib_dirs + lib_names) generate_module_makefile(target_config, verbose, mname, includepath=includepath, libs=libs, install_path=target_config.pydbus_module_dir, src_dir=sp_src_dir) subdirs.append(mname) # Generate the top-level .pro file. inform("Generating the top-level .pro file...") out_f = open_for_writing(toplevel_pro) out_f.write('''TEMPLATE = subdirs CONFIG += ordered nostrip SUBDIRS = %s init_py.files = %s init_py.path = %s/PyQt4 INSTALLS += init_py ''' % (' '.join(subdirs), source_path('__init__.py'), target_config.pyqt_module_dir)) # Install the uic module and the pyuic4 wrapper. out_f.write(''' uic_package.files = %s uic_package.path = %s/PyQt4 INSTALLS += uic_package ''' % (source_path('pyuic', 'uic'), target_config.pyqt_module_dir)) if not target_config.no_tools: out_f.write(''' pyuic4.files = %s pyuic4.path = %s INSTALLS += pyuic4 ''' % (pyuic_wrapper, target_config.pyqt_bin_dir)) # Install the QScintilla .api file. if target_config.qsci_api: out_f.write(''' qscintilla_api.files = PyQt4.api qscintilla_api.path = %s/api/python INSTALLS += qscintilla_api ''' % target_config.qsci_api_dir) # Install ElementTree if the version of Python doesn't have it. if target_config.py_version < 0x020500: out_f.write(''' elementtree.files = %s elementtree.path = %s/PyQt4 INSTALLS += elementtree ''' % (source_path('elementtree'), target_config.pyqt_module_dir)) out_f.close() # Make the pyuic4 wrapper executable on platforms that support it. If we # did it after running qmake then (on Linux) the execute bits would be # stripped on installation. if not target_config.no_tools and target_config.py_platform != 'win32': inform("Making the %s wrapper executable..." % pyuic_wrapper) sbuf = os.stat(pyuic_wrapper) mode = sbuf.st_mode mode |= (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH) os.chmod(pyuic_wrapper, mode) # Generate the makefiles. inform("Generating the Makefiles...") run_qmake(target_config, verbose, toplevel_pro, recursive=True) def generate_plugin_makefile(target_config, verbose, plugin_dir, install_dir, plugin_name): """ Generate the makefile for a plugin that embeds the Python interpreter. target_config is the target configuration. verbose is set if the output is to be displayed. plugin_dir is the name of the directory containing the plugin implementation. install_dir is the name of the directory that the plugin will be installed in. plugin_name is a descriptive name of the plugin to be used in user messages. Returns True if the makefile could be generated. """ # Check we have a shared interpreter library. if target_config.py_pyshlib == '': inform("The %s plugin was disabled because a dynamic Python library couldn't be found." % plugin_name) return False # Create the qmake project file. inform("Generating the %s plugin .pro file..." % plugin_name) sp_plugin_dir = source_path(plugin_dir) fin = open(os.path.join(sp_plugin_dir, '%s.pro-in' % plugin_dir)) prj = fin.read() fin.close() prj = prj.replace('@QTCONFIG@', 'debug' if target_config.debug else 'release') prj = prj.replace('@PYINCDIR@', qmake_quote(target_config.py_inc_dir)) prj = prj.replace('@SIPINCDIR@', qmake_quote(target_config.sip_inc_dir)) prj = prj.replace('@PYLINK@', target_config.get_pylib_link_arguments()) prj = prj.replace('@PYSHLIB@', target_config.py_pyshlib) prj = prj.replace('@QTPLUGINDIR@', qmake_quote(install_dir)) pro_name = os.path.join(plugin_dir, '%s.pro' % plugin_dir) mk_dir(plugin_dir) fout = open_for_writing(pro_name) fout.write(prj) if sp_plugin_dir != plugin_dir: fout.write(''' INCLUDEPATH += %s VPATH = %s ''' % (qmake_quote(sp_plugin_dir), qmake_quote(sp_plugin_dir))) fout.write('\n'.join(target_config.qmake_variables) + '\n') fout.close() return True def generate_application_makefile(target_config, verbose, src_dir): """ Create the makefile for a QtXml based application. target_config is the target configuration. verbose is set if the output is to be displayed. src_dir is the name of the directory containing the source files. (It is assumed that it is not a path.) """ mk_dir(src_dir) sp_src_dir = source_path(src_dir) # The standard naming convention. app = src_dir + '4' inform("Generating the .pro file for %s..." % app) pro_lines = ['TARGET = %s' % app] pro_lines.extend(['TEMPLATE = app', 'QT -= gui', 'QT += xml']) pro_lines.append( 'CONFIG += warn_on %s' % ('debug' if target_config.debug else 'release')) if target_config.py_platform == 'win32': pro_lines.append('CONFIG += console') elif target_config.py_platform == 'darwin': pro_lines.append('CONFIG -= app_bundle') # Work around QTBUG-39300. pro_lines.append('CONFIG -= android_install') pro_lines.append('target.path = %s' % target_config.pyqt_bin_dir) pro_lines.append('INSTALLS += target') if sp_src_dir != src_dir: pro_lines.append('INCLUDEPATH += %s' % qmake_quote(sp_src_dir)) pro_lines.append('VPATH = %s' % qmake_quote(sp_src_dir)) pro_lines.extend(pro_sources(sp_src_dir)) pro_name = os.path.join(src_dir, src_dir + '.pro') pro = open_for_writing(pro_name) pro.write('\n'.join(pro_lines)) pro.close() def pro_sources(src_dir, other_headers=None, other_sources=None): """ Return the HEADERS and SOURCES variables for a .pro file by introspecting a directory. src_dir is the name of the directory. other_headers is an optional list of other header files. other_sources is an optional list of other source files. """ pro_lines = [] headers = [os.path.basename(f) for f in glob.glob('%s/*.h' % src_dir)] if other_headers is not None: headers += other_headers if len(headers) != 0: pro_lines.append('HEADERS = %s' % ' '.join(headers)) sources = [os.path.basename(f) for f in glob.glob('%s/*.c' % src_dir)] for f in glob.glob('%s/*.cpp' % src_dir): f = os.path.basename(f) # Exclude any moc generated C++ files that might be around from a # previous build. if not f.startswith('moc_'): sources.append(f) if other_sources is not None: sources += other_sources if len(sources) != 0: pro_lines.append('SOURCES = %s' % ' '.join(sources)) return pro_lines def generate_pyuic4_wrapper(target_config): """ Create a platform dependent executable wrapper for the pyuic.py script. target_config is the target configuration. Returns the platform specific name of the wrapper. """ wrapper = 'pyuic4.bat' if target_config.py_platform == 'win32' else 'pyuic4' inform("Generating the %s wrapper..." % wrapper) exe = quote(target_config.pyuic_interpreter) script = quote( os.path.join(target_config.pyqt_module_dir, 'PyQt4', 'uic', 'pyuic.py')) wf = open_for_writing(wrapper) if target_config.py_platform == 'win32': wf.write('@%s %s %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9\n' % (exe, script)) else: wf.write('#!/bin/sh\n') wf.write('exec %s %s ${1+"$@"}\n' % (exe, script)) wf.close() return wrapper def quote(path): """ Return a path with quotes added if it contains spaces. path is the path. """ if ' ' in path: path = '"%s"' % path return path def qmake_quote(path): """ Return a path quoted for qmake if it contains spaces. path is the path. """ if ' ' in path: path = '$$quote(%s)' % path return path def inform_user(target_config, sip_version): """ Tell the user the values that are going to be used. target_config is the target configuration. sip_version is the SIP version string. """ if target_config.qt_licensee == '': detail = '' elif target_config.qt_licensee == 'Open Source': detail = " (Open Source)" else: detail = " licensed to %s" % target_config.qt_licensee inform("Qt v%s%s is being used." % ( version_to_string(target_config.qt_version), detail)) if target_config.qt_framework: inform("Qt is built as a framework.") else: inform( "Qt is built as a %s library." % ( "shared" if target_config.qt_shared else "static")) if target_config.sysroot != '': inform("The system root directory is %s." % target_config.sysroot) inform("SIP %s is being used." % sip_version) inform("The sip executable is %s." % target_config.sip) inform("These PyQt4 modules will be built: %s." % ', '.join(target_config.pyqt_modules)) inform("The PyQt4 Python package will be installed in %s." % target_config.pyqt_module_dir) if target_config.qt_version >= 0x050000: if target_config.no_deprecated: inform("PyQt4 is being built without deprecated Qt v4 features.") else: inform("PyQt4 is being built with deprecated Qt v4 features.") if target_config.no_docstrings: inform("PyQt4 is being built without generated docstrings.") else: inform("PyQt4 is being built with generated docstrings.") if target_config.prot_is_public: inform("PyQt4 is being built with 'protected' redefined as 'public'.") if target_config.no_designer_plugin: inform("The Designer plugin will not be built.") else: inform("The Designer plugin will be installed in %s." % target_config.designer_plugin_dir) if target_config.qsci_api: inform( "The QScintilla API file will be installed in %s." % os.path.join( target_config.qsci_api_dir, 'api', 'python')) if target_config.pydbus_module_dir: inform( "The dbus support module will be installed in %s." % target_config.pydbus_module_dir) if target_config.pyqt_sip_dir: inform("The PyQt4 .sip files will be installed in %s." % target_config.pyqt_sip_dir) if target_config.no_tools: inform("pyuic4, pyrcc4 and pylupdate4 will not be built.") else: inform("pyuic4, pyrcc4 and pylupdate4 will be installed in %s." % target_config.pyqt_bin_dir) inform("The interpreter used by pyuic4 is %s." % target_config.pyuic_interpreter) if target_config.vend_enabled: inform("PyQt4 will only be usable with signed interpreters.") def run_qmake(target_config, verbose, pro_name, makefile_name='', fatal=True, recursive=False): """ Run qmake against a .pro file. target_config is the target configuration. verbose is set if the output is to be displayed. pro_name is the name of the .pro file. makefile_name is the name of the makefile to generate (and defaults to Makefile). fatal is set if a qmake failure is considered a fatal error, otherwise False is returned if qmake fails. recursive is set to use the -recursive flag. """ # qmake doesn't behave consistently if it is not run from the directory # containing the .pro file - so make sure it is. pro_dir, pro_file = os.path.split(pro_name) if pro_dir != '': cwd = os.getcwd() os.chdir(pro_dir) else: cwd = None mf = makefile_name if makefile_name != '' else 'Makefile' remove_file(mf) args = [quote(target_config.qmake)] if target_config.qmake_spec != target_config.default_qmake_spec: args.append('-spec') args.append(target_config.qmake_spec) if makefile_name != '': args.append('-o') args.append(makefile_name) if recursive: args.append('-recursive') args.append(pro_file) run_command(' '.join(args), verbose) if not os.access(mf, os.F_OK): if fatal: error( "%s failed to create a makefile from %s." % (target_config.qmake, pro_name)) return False # Restore the current directory. if cwd is not None: os.chdir(cwd) return True def run_make(target_config, verbose, exe, makefile_name): """ Run make against a makefile to create an executable. target_config is the target configuration. verbose is set if the output is to be displayed. exe is the platform independent name of the executable that will be created. makefile_name is the name of the makefile. Returns the platform specific name of the executable, or None if an executable wasn't created. """ # Guess the name of make and set the default target and platform specific # name of the executable. if target_config.py_platform == 'win32': if target_config.qmake_spec == 'win32-borland': make = 'bmake' elif target_config.qmake_spec == 'win32-g++': make = 'mingw32-make' else: make = 'nmake' if target_config.debug: makefile_target = 'debug' platform_exe = os.path.join('debug', exe + '.exe') else: makefile_target = 'release' platform_exe = os.path.join('release', exe + '.exe') else: make = 'make' makefile_target = '' if target_config.py_platform == 'darwin': platform_exe = os.path.join(exe + '.app', 'Contents', 'MacOS', exe) else: platform_exe = os.path.join('.', exe) remove_file(platform_exe) args = [make, '-f', makefile_name] if makefile_target != '': args.append(makefile_target) run_command(' '.join(args), verbose) return platform_exe if os.access(platform_exe, os.X_OK) else None def run_command(cmd, verbose): """ Run a command and display the output if requested. cmd is the command to run. verbose is set if the output is to be displayed. """ if verbose: sys.stdout.write(cmd + "\n") fout = get_command_output(cmd, and_stderr=True) # Read stdout and stderr until there is no more output. lout = fout.readline() while lout: if verbose: if sys.hexversion >= 0x03000000: sys.stdout.write(str(lout, encoding=sys.stdout.encoding)) else: sys.stdout.write(lout) lout = fout.readline() fout.close() try: os.wait() except: pass def remove_file(fname): """ Remove a file which may or may not exist. fname is the name of the file. """ try: os.remove(fname) except OSError: pass def check_vendorid(target_config): """ See if the VendorID library and include file can be found. target_config is the target configuration. """ if target_config.py_version >= 0x030000: # VendorID doesn't support Python v3. target_config.vend_enabled = False elif target_config.vend_enabled: if os.access(os.path.join(target_config.vend_inc_dir, 'vendorid.h'), os.F_OK): if glob.glob(os.path.join(target_config.vend_lib_dir, '*vendorid*')): inform("The VendorID package was found.") else: target_config.vend_enabled = False inform( "The VendorID library could not be found in %s and so " "signed interpreter checking will be disabled. If the " "VendorID package is installed then use the " "--vendorid-libdir argument to explicitly specify the " "correct directory." % target_config.vend_lib_dir) else: target_config.vend_enabled = False inform( "vendorid.h could not be found in %s and so signed " "interpreter checking will be disabled. If the VendorID " "package is installed then use the --vendorid-incdir " "argument to explicitly specify the correct directory." % target_config.vend_inc_dir) def get_command_output(cmd, and_stderr=False): """ Return a pipe from which a command's output can be read. cmd is the command. and_stderr is set if the output should include stderr as well as stdout. """ try: import subprocess except ImportError: if and_stderr: _, sout = os.popen4(cmd) else: _, sout, _ = os.popen3(cmd) return sout if and_stderr: stderr = subprocess.STDOUT else: stderr = subprocess.PIPE p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=stderr) return p.stdout def source_path(*names): """ Return the native path for a list of components rooted at the directory containing this script. names is the sequence of component names. """ path = [os.path.dirname(os.path.abspath(__file__))] + list(names) return os.path.join(*path) def check_dbus(target_config, verbose): """ See if the DBus support module should be built and update the target configuration accordingly. target_config is the target configuration. verbose is set if the output is to be displayed. """ if target_config.no_pydbus or not os.path.isdir(source_path('dbus')): return inform("Checking to see if the dbus support module should be built...") cmd = 'pkg-config --cflags-only-I --libs dbus-1' if verbose: sys.stdout.write(cmd + "\n") sout = get_command_output(cmd) iflags = sout.read().strip() if not iflags: inform("DBus v1 does not seem to be installed.") return if sys.hexversion >= 0x03000000: iflags = iflags.decode() for f in iflags.split(): if f.startswith('-I'): target_config.dbus_inc_dirs.append(f[2:]) elif f.startswith('-L'): target_config.dbus_lib_dirs.append(f[2:]) elif f.startswith('-l'): target_config.dbus_libs.append(f[2:]) try: import dbus.mainloop except: inform("The Python dbus module doesn't seem to be installed.") return target_config.pydbus_module_dir = dbus.mainloop.__path__[0] # Try and find dbus-python.h. We don't use pkg-config because it is broken # for dbus-python (at least for versions up to and including v0.81.0). # Instead we look where DBus itself is installed - which in most cases will # be where dbus-python is also installed. if target_config.pydbus_inc_dir != '': dlist = [target_config.pydbus_inc_dir] else: dlist = target_config.dbus_inc_dirs for d in dlist: if os.access(os.path.join(d, 'dbus', 'dbus-python.h'), os.F_OK): if d not in target_config.dbus_inc_dirs: target_config.dbus_inc_dirs.append(d) break else: inform( "dbus/dbus-python.h could not be found and so the DBus " "support module will be disabled. If dbus-python v0.80 or " "later is installed then use the --dbus argument to " "explicitly specify the directory containing " "dbus/dbus-python.h.") target_config.pydbus_module_dir = '' def check_module(target_config, verbose, mname, incfile, test): """ See if a module can be built and, if so, add it to the target configurations list of modules. target_config is the target configuration. verbose is set if the output is to be displayed. mname is the name of the module. incfile is the name of the include file needed for the test. test is a C++ statement being used for the test. """ # Check the module's main .sip file exists. if not os.access(source_path('sip', mname, mname + 'mod.sip'), os.F_OK): return inform("Checking to see if the %s module should be built..." % mname) source = '''#include <%s> int main(int, char **) { %s; } ''' % (incfile, test) if compile_qt_program(target_config, verbose, 'cfgtest_' + mname, source, mname) is not None: target_config.pyqt_modules.append(mname) def compile_qt_program(target_config, verbose, name, source, mname): """ Compile the source of a Qt program and return the name of the executable or None if it couldn't be created. target_config is the target configuration. verbose is set if the output is to be displayed. name is the root name of the program from which all program-specific file names will be derived. source is the C++ source of the program. mname is the name of the Qt module that the program uses. """ metadata = get_module_metadata(target_config, mname) # The derived file names. name_pro = name + '.pro' name_makefile = name + '.mk' name_source = name + '.cpp' # Create the .pro file. pro_lines = [] pro_add_qt_dependencies(target_config, metadata, pro_lines) pro_lines.append('TARGET = %s' % name) pro_lines.append('SOURCES = %s' % name_source) f = open_for_writing(name_pro) f.write('\n'.join(pro_lines)) f.close() # Create the source file. f = open_for_writing(name_source) f.write(source) f.close() if not run_qmake(target_config, verbose, name_pro, name_makefile, fatal=False): return None return run_make(target_config, verbose, name, name_makefile) def pro_add_qt_dependencies(target_config, metadata, pro_lines): """ Add the Qt dependencies of a module to a .pro file. target_config is the target configuration. metadata is the module's meta-data. pro_lines is the list of lines making up the .pro file that is updated. """ add = [] remove = [] for qt in metadata.qmake_QT: if qt.startswith('-'): remove.append(qt[1:]) else: add.append(qt) if len(remove) != 0: pro_lines.append('QT -= %s' % ' '.join(remove)) if len(add) != 0: pro_lines.append('QT += %s' % ' '.join(add)) if metadata.qmake_CONFIG != '': pro_lines.append('CONFIG += %s' % metadata.qmake_CONFIG) pro_lines.append( 'CONFIG += %s' % ('debug' if target_config.debug else 'release')) pro_lines.extend(target_config.qmake_variables) def get_sip_flags(target_config): """ Return the SIP platform, version and feature flags. target_config is the target configuration. """ sip_flags = [] # If we don't check for signed interpreters, we exclude the 'VendorID' # feature if target_config.py_version < 0x030000 and not target_config.vend_enabled: sip_flags.append('-x') sip_flags.append('VendorID') if target_config.qt_version >= 0x050000 and target_config.no_deprecated: sip_flags.append('-x') sip_flags.append('PyQt_Deprecated_5_0') # Handle the platform tag. if target_config.py_platform == 'win32': plattag = 'WS_WIN' elif target_config.py_platform == 'darwin': plattag = 'WS_MACX' else: plattag = 'WS_X11' sip_flags.append('-t') sip_flags.append(plattag) # Handle the Qt version tag. sip_flags.append('-t') sip_flags.append(version_to_sip_tag(target_config.qt_version)) # Handle any feature flags. for xf in target_config.pyqt_disabled_features: sip_flags.append('-x') sip_flags.append(xf) # Handle the version specific Python features. if target_config.py_version < 0x020400: sip_flags.append('-x') sip_flags.append('Py_DateTime') if target_config.py_version < 0x030000: sip_flags.append('-x') sip_flags.append('Py_v3') return ' '.join(sip_flags) def mk_clean_dir(name): """ Create a clean (ie. empty) directory. name is the name of the directory. """ try: shutil.rmtree(name) except: pass try: os.makedirs(name) except: error("Unable to create the %s directory." % name) def mk_dir(name): """ Ensure a directory exists, creating it if necessary. name is the name of the directory. """ try: os.makedirs(name) except: pass def generate_sip_module_code(target_config, verbose, no_timestamp, parts, tracing, mname, sip_flags, qpy_sources=None, qpy_headers=None): """ Generate the code for a module. target_config is the target configuration. verbose is set if the output is to be displayed. no_timestamp is set if the .sip files should exclude the timestamp. parts is the number of parts the generated code should be split into. tracing is set if the generated code should include tracing calls. mname is the name of the module to generate the code for. sip_flags is the string of flags to pass to sip. qpy_sources is the optional list of QPy support code source files. qpy_headers is the optional list of QPy support code header files. """ inform("Generating the C++ source for the %s module..." % mname) mk_clean_dir(mname) # Build the SIP command line. argv = [quote(target_config.sip), '-w', sip_flags] # Make sure any unknown Qt version gets treated as the latest Qt v4. argv.append('-B') argv.append('Qt_5_0_0') if no_timestamp: argv.append('-T') if not target_config.no_docstrings: argv.append('-o'); if target_config.prot_is_public: argv.append('-P'); if parts != 0: argv.append('-j') argv.append(str(parts)) if tracing: argv.append('-r') if target_config.qsci_api and mname != 'Qt': argv.append('-a') argv.append(mname + '.api') # There is an issue creating QObjects while the GIL is held causing # deadlocks in multi-threaded applications. We don't fully understand this # yet so we make sure we avoid the problem by always releasing the GIL. argv.append('-g') # Pass the absolute pathname so that #line files are absolute. argv.append('-c') argv.append(os.path.abspath(mname)) argv.append('-I') argv.append('sip') sp_sip_dir = source_path('sip') if sp_sip_dir != 'sip': # SIP assumes POSIX style separators. sp_sip_dir = sp_sip_dir.replace(os.pathsep, '/') argv.append('-I') argv.append(sp_sip_dir) # The .sip files for the Qt modules will be in the out-of-tree directory. if mname == 'Qt': sip_dir = 'sip' else: sip_dir = sp_sip_dir # Add the name of the .sip file. argv.append('%s/%s/%smod.sip' % (sip_dir, mname, mname)) run_command(' '.join(argv), verbose) # Check the result. if mname == 'Qt': file_check = 'sip%scmodule.c' % mname else: file_check = 'sipAPI%s.h' % mname if not os.access(os.path.join(mname, file_check), os.F_OK): error("Unable to create the C++ code.") # Embed the sip flags. if mname == 'QtCore': inform("Embedding sip flags...") in_f = open(source_path('qpy', 'QtCore', 'qpycore_post_init.cpp.in')) out_f = open_for_writing( os.path.join('QtCore', 'qpycore_post_init.cpp')) for line in in_f: line = line.replace('@@PYQT_SIP_FLAGS@@', sip_flags) out_f.write(line) in_f.close() out_f.close() # Generate the makefile. includepath = libs = '' if target_config.vend_enabled: if mname == 'QtCore': includepath = target_config.vend_inc_dir libs = '-L%s -lvendorid' % target_config.vend_lib_dir generate_module_makefile(target_config, verbose, mname, includepath=includepath, libs=libs, qpy_sources=qpy_sources, qpy_headers=qpy_headers) def generate_module_makefile(target_config, verbose, mname, includepath='', libs='', install_path='', src_dir='', qpy_sources=None, qpy_headers=None): """ Generate the makefile for a module. target_config is the target configuration. verbose is set if the output is to be displayed. mname is the name of the module. includepath is an optional additional value of INCLUDEPATH. libs is an optional additional value of LIBS. install_path is the optional name of the directory that the module will be installed in. src_dir is the optional source directory (by default the sources are assumed to be in the module directory). qpy_sources is the optional list of QPy support code source files. qpy_headers is the optional list of QPy support code header files. """ inform("Generating the .pro file for the %s module..." % mname) if src_dir == '': src_dir = mname target_name = mname metadata = get_module_metadata(target_config, mname) if metadata.qmake_TARGET != '': target_name = metadata.qmake_TARGET elif target_config.static: # qmake assumes that -lQtCore etc. refers to the QtCore library so we # give the static module a different name (mainly for pyqtdeploy's # benefit). target_name += '_s' pro_lines = ['TEMPLATE = lib'] pro_lines.append('CONFIG += warn_on %s' % ('staticlib' if target_config.static else 'plugin')) pro_add_qt_dependencies(target_config, metadata, pro_lines) # Work around QTBUG-39300. pro_lines.append('CONFIG -= android_install') if not target_config.static: debug_suffix = get_win32_debug_suffix(target_config.debug) link = get_win32_python_library(target_config) shared = ''' win32 { PY_MODULE = %s%s.pyd target.files = %s%s.pyd LIBS += %s } else { PY_MODULE = %s.so target.files = %s.so } ''' % (target_name, debug_suffix, target_name, debug_suffix, link, target_name, target_name) pro_lines.extend(shared.split('\n')) # Without the 'no_check_exist' magic the target.files must exist when # qmake is run otherwise the install and uninstall targets are not # generated. pro_lines.append('target.CONFIG = no_check_exist') if install_path == '': install_path = target_config.pyqt_module_dir + '/PyQt4' pro_lines.append('target.path = %s' % install_path) pro_lines.append('INSTALLS += target') if target_config.pyqt_sip_dir: sip_files = [os.path.relpath(f, mname) for f in glob.glob(source_path('sip', mname, '*.sip'))] if len(sip_files) != 0: pro_lines.append('sip.path = %s/%s' % (target_config.pyqt_sip_dir, mname)) pro_lines.append('sip.files = %s' % ' '.join(sip_files)) pro_lines.append('INSTALLS += sip') # If we don't know the qmake spec. then we must be compiling against Qt v4 # using the default. Therefore make assumptions about what the default is. spec = target_config.qmake_spec if spec == '': # We only bother about Linux and OS/X. if target_config.py_platform.startswith('linux'): spec = 'linux-g++' elif target_config.py_platform == 'darwin': # It doesn't matter if the default was actually clang. spec = 'macx-g++' if 'g++' in spec or 'clang' in spec: pro_lines.append('QMAKE_CXXFLAGS += -fno-exceptions') # This optimisation could apply to other platforms. if 'linux' in spec and not target_config.static: if target_config.py_version >= 0x030000: entry_point = 'PyInit_%s' % target_name else: entry_point = 'init%s' % target_name exp = open_for_writing(os.path.join(mname, target_name + '.exp')) exp.write('{ global: %s; local: *; };' % entry_point) exp.close() pro_lines.append('QMAKE_LFLAGS += -Wl,--version-script=%s.exp' % target_name) if target_config.qt_version >= 0x050000 and not target_config.no_deprecated: # The name of this macro is very confusing. pro_lines.append('DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x04ffff') if target_config.prot_is_public: pro_lines.append('DEFINES += SIP_PROTECTED_IS_PUBLIC protected=public') # This is needed for Windows. pro_lines.append('INCLUDEPATH += .') # Make sure the SIP include directory is searched before the Python include # directory if they are different. pro_lines.append('INCLUDEPATH += %s' % target_config.sip_inc_dir) if target_config.py_inc_dir != target_config.sip_inc_dir: pro_lines.append('INCLUDEPATH += %s' % target_config.py_inc_dir) pro_add_qpy(mname, metadata, pro_lines) if includepath != '': pro_lines.append('INCLUDEPATH += %s' % includepath) if libs != '': pro_lines.append('LIBS += %s' % libs) if not target_config.static: shared = ''' win32 { QMAKE_POST_LINK = $(COPY_FILE) $(DESTDIR_TARGET) $$PY_MODULE } else { QMAKE_POST_LINK = $(COPY_FILE) $(TARGET) $$PY_MODULE } macx { QMAKE_LFLAGS += "-undefined dynamic_lookup" } ''' pro_lines.extend(shared.split('\n')) pro_lines.append('TARGET = %s' % target_name) if src_dir != mname: pro_lines.append('INCLUDEPATH += %s' % quote(src_dir)) pro_lines.append('VPATH = %s' % quote(src_dir)) pro_lines.extend(pro_sources(src_dir, qpy_headers, qpy_sources)) pro_name = os.path.join(mname, mname + '.pro') pro = open_for_writing(pro_name) pro.write('\n'.join(pro_lines)) pro.write('\n') pro.close() def pro_add_qpy(mname, metadata, pro_lines): """ Add the qpy dependencies of a module to a .pro file. mname is the module's name. metadata is the module's meta-data. pro_lines is the list of lines making up the .pro file that is updated. """ if metadata.qpy_lib: pro_lines.append('INCLUDEPATH += %s' % qmake_quote(os.path.relpath(source_path('qpy', mname), mname))) def fix_license(src_lfile, dst_lfile): """ Fix the license file, if there is one, so that it conforms to the SIP v5 syntax. src_lfile is the name of the license file. dst_lfile is the name of the fixed license file. """ f = open(src_lfile) f5 = open_for_writing(dst_lfile) for line in f: if line.startswith('%License'): anno_start = line.find('/') anno_end = line.rfind('/') if anno_start < 0 or anno_end < 0 or anno_start == anno_end: error("%s has missing annotations." % name) annos = line[anno_start + 1:anno_end].split(', ') annos5 = [anno[0].lower() + anno[1:] for anno in annos] f5.write('%License(') f5.write(', '.join(annos5)) f5.write(')\n') else: f5.write(line) f5.close() f.close() def check_license(target_config, license_confirmed, introspecting): """ Handle the validation of the PyQt4 license. target_config is the target configuration. license_confirmed is set if the user has already accepted the license. introspecting is set if the configuration is being determined by introspection. """ try: import license ltype = license.LicenseType lname = license.LicenseName try: lfile = license.LicenseFile except AttributeError: lfile = None except ImportError: ltype = None if ltype is None: ltype = 'GPL' lname = "GNU General Public License" lfile = 'pyqt-gpl.sip' inform( "This is the %s version of PyQt %s (licensed under the %s) for " "Python %s on %s." % (ltype, PYQT_VERSION_STR, lname, sys.version.split()[0], sys.platform)) # Common checks. if introspecting and target_config.qt_licensee != 'Open Source' and ltype == 'GPL': error( "This version of PyQt4 and the commercial version of Qt have " "incompatible licenses.") # Confirm the license if not already done. if not license_confirmed: loptions = """ Type 'L' to view the license. """ sys.stdout.write(loptions) sys.stdout.write("""Type 'yes' to accept the terms of the license. Type 'no' to decline the terms of the license. """) while 1: sys.stdout.write("Do you accept the terms of the license? ") sys.stdout.flush() try: resp = sys.stdin.readline() except KeyboardInterrupt: raise SystemExit except: resp = "" resp = resp.strip().lower() if resp == "yes": break if resp == "no": sys.exit(0) if resp == 'l': os.system('more LICENSE') # Check that the license file exists and fix its syntax. sip_dir = 'sip' mk_dir(sip_dir) src_lfile = os.path.join(target_config.license_dir, lfile) if os.access(src_lfile, os.F_OK): inform("Found the license file %s." % lfile) fix_license(src_lfile, os.path.join(sip_dir, lfile + '5')) else: error( "Please copy the license file %s to %s." % (lfile, target_config.license_dir)) def check_qt(target_config): """ Check the Qt installation. target_config is the target configuration. """ # Starting with v4.7, Qt (when built with MinGW) assumes that stack frames # are 16 byte aligned because it uses SSE. However the Python Windows # installers are built with 4 byte aligned stack frames. We therefore need # to tweak the g++ flags to deal with it. if target_config.qmake_spec == 'win32-g++' and target_config.qt_version >= 0x040700: target_config.qmake_variables.append('QMAKE_CFLAGS += -mstackrealign') target_config.qmake_variables.append('QMAKE_CXXFLAGS += -mstackrealign') def check_sip(target_config): """ Check that the version of sip is good enough and return its version. target_config is the target configuration. """ if target_config.sip is None: error( "Make sure you have a working sip on your PATH or use the " "--sip argument to explicitly specify a working sip.") pipe = os.popen(' '.join([target_config.sip, '-V'])) for l in pipe: version_str = l.strip() break else: error("'%s -V' did not generate any output." % target_config.sip) pipe.close() if 'preview' not in version_str and 'snapshot' not in version_str: version = version_from_string(version_str) if version is None: error( "'%s -V' generated unexpected output: '%s'." % ( target_config.sip, version_str)) min_version = version_from_string(SIP_MIN_VERSION) if version < min_version: error( "This version of PyQt4 requires sip %s or later." % SIP_MIN_VERSION) return version_str def version_from_string(version_str): """ Convert a version string of the form m.n or m.n.o to an encoded version number (or None if it was an invalid format). version_str is the version string. """ parts = version_str.split('.') if not isinstance(parts, list): return None if len(parts) == 2: parts.append('0') if len(parts) != 3: return None version = 0 for part in parts: try: v = int(part) except ValueError: return None version = (version << 8) + v return version def open_for_writing(fname): """ Return a file opened for writing while handling the most common problem of not having write permission on the directory. fname is the name of the file to open. """ try: return open(fname, 'w') except IOError: error( "There was an error creating %s. Make sure you have write " "permission on the parent directory." % fname) def get_win32_python_library(target_config): """ Return the qmake LIBS flags to link against the Python library on Windows. target_config is the target configuration. """ lib_dir = qmake_quote('-L%s' % target_config.py_lib_dir) py_major, py_minor = get_py_major_minor(target_config) debug_suffix = get_win32_debug_suffix(target_config.debug) return '%s -lpython%d%d%s' % (lib_dir, py_major, py_minor, debug_suffix) def get_win32_debug_suffix(debug): """ Return the debug-dependent suffix appended to the name of Windows libraries. debug is set if the debug version is to be used. """ return '_d' if debug else '' def get_py_major_minor(target_config): """ Return a tuple of the major and minor Python version numbers. target_config is the target configuration. """ py_major = target_config.py_version >> 16 py_minor = (target_config.py_version >> 8) & 0x0ff return py_major, py_minor def get_module_metadata(target_config, mname): """ Get the metadata for a module. target_config is the target configuration. mname is the name of the module. """ metadata = QT4_MODULES if target_config.qt_version < 0x050000 else QT5_MODULES return metadata[mname] def main(argv): """ Create the configuration module module. argv is the list of command line arguments. """ # Create the default target configuration. target_config = TargetConfiguration() # Parse the command line. parser = create_optparser(target_config) opts, target_config.qmake_variables = parser.parse_args() target_config.apply_pre_options(opts) # Query qmake for the basic configuration information. target_config.get_qt_configuration(opts) # Update the target configuration. if opts.config_file is not None: target_config.from_configuration_file(opts.config_file) else: target_config.from_introspection(opts.verbose, opts.debug) target_config.post_configuration() target_config.apply_post_options(opts) # Check the licenses are compatible. check_license(target_config, opts.license_confirmed, (opts.config_file is None)) # Check SIP is what we need. sip_version = check_sip(target_config) # Check Qt is what we need. check_qt(target_config) # Check for the VendorID package. check_vendorid(target_config) # Check which modules to build if we haven't been told. if len(target_config.pyqt_modules) == 0: check_modules(target_config, opts.verbose) check_dbus(target_config, opts.verbose) # Tell the user what's been found. inform_user(target_config, sip_version) # Generate the makefiles. generate_makefiles(target_config, opts.verbose, opts.notimestamp, opts.split if opts.concat else 0, opts.tracing) ############################################################################### # The script starts here. ############################################################################### if __name__ == '__main__': try: main(sys.argv) except SystemExit: raise except: sys.stderr.write( """An internal error occured. Please report all the output from the program, including the following traceback, to support@riverbankcomputing.com. """) raise PyQt-x11-gpl-4.11.4/configure.py0000644000076500000240000023064612536324420016313 0ustar philstaff00000000000000# This script generates the PyQt configuration and generates the Makefiles. # # Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. import sys import os import glob import optparse import shutil import sipconfig # Initialise the globals. pyqt_version = 0x040b04 pyqt_version_str = "4.11.4" sip_min_version = 0x041004 qt_version = 0 qt_edition = "" qt_licensee = None qt_dir = None qt_incdir = None qt_libdir = None qt_bindir = None qt_datadir = None qt_archdatadir = None qt_pluginsdir = None qt_xfeatures = None qt_shared = '' qt_framework = 0 # This default value will be used by the code that bootstraps the Qt # configuration. qt_macx_spec = 'macx-g++' qt_sip_flags = [] pyqt_modules = [] pyqt_modroot = None src_dir = os.path.dirname(os.path.abspath(__file__)) # Get the SIP configuration. sipcfg = sipconfig.Configuration() pydbusmoddir = None dbusincdirs = [] dbuslibdirs = [] dbuslibs = [] # Under Windows qmake and the Qt DLLs must be on the system PATH otherwise the # dynamic linker won't be able to resolve the symbols. On other systems we # assume we can just run qmake by using its full pathname. if sys.platform == 'win32': MSG_CHECK_QMAKE = "Make sure you have a working Qt qmake on your PATH." else: MSG_CHECK_QMAKE = "Make sure you have a working Qt qmake on your PATH or use the -q argument to explicitly specify a working Qt qmake." def find_default_qmake(): """Find a default qmake, ie. the first on the path. """ try: path = os.environ["PATH"] except KeyError: path = "" if sys.platform == 'win32': base_qmake = "qmake.exe" else: base_qmake = "qmake" for d in path.split(os.pathsep): qmake = os.path.join(d, base_qmake) if os.access(qmake, os.X_OK): return qmake return "" def create_optparser(): """Create the parser for the command line. """ qmake = find_default_qmake() def store_abspath(option, opt_str, value, parser): setattr(parser.values, option.dest, os.path.abspath(value)) def store_abspath_dir(option, opt_str, value, parser): if not os.path.isdir(value): raise optparse.OptionValueError("'%s' is not a directory" % value) setattr(parser.values, option.dest, os.path.abspath(value)) def store_abspath_file(option, opt_str, value, parser): if not os.path.isfile(value): raise optparse.OptionValueError("'%s' is not a file" % value) setattr(parser.values, option.dest, os.path.abspath(value)) p = optparse.OptionParser(usage="python %prog [opts] [macro=value] " "[macro+=value]", version=pyqt_version_str) # Note: we don't use %default to be compatible with Python 2.3. p.add_option("-k", "--static", action="store_true", default=False, dest="static", help="build modules as static libraries") p.add_option("--no-docstrings", action="store_true", default=False, dest="no_docstrings", help="disable the generation of docstrings") p.add_option("-r", "--trace", action="store_true", default=False, dest="tracing", help="build modules with tracing enabled") p.add_option("-u", "--debug", action="store_true", default=False, help="build modules with debugging symbols") p.add_option("-w", "--verbose", action="count", default=0, dest="verbose", help="verbose output during configuration") p.add_option("-c", "--concatenate", action="store_true", default=False, dest="concat", help="concatenate each module's C++ source files") p.add_option("-j", "--concatenate-split", type="int", default=1, metavar="N", dest="split", help="split the concatenated C++ source files into N pieces " "[default: 1]") p.add_option("-g", "--consolidate", action="store_true", default=False, dest="bigqt", help="create a single module which links against " "all the Qt libraries") # These are internal options used to build the mega Windows GPL package. p.add_option("--mwg-odbc", action="store_true", default=False, dest="mwg_odbc", help=optparse.SUPPRESS_HELP) p.add_option("--mwg-openssl", action="callback", default=None, dest="mwg_ssl_dir", metavar="DIR", callback=store_abspath_dir, type="string", help=optparse.SUPPRESS_HELP) p.add_option("--mwg-qsci", action="callback", default=None, dest="mwg_qsci_dir", metavar="DIR", callback=store_abspath_dir, type="string", help=optparse.SUPPRESS_HELP) p.add_option("--mwg-qwt", action="callback", default=None, dest="mwg_qwt_dir", metavar="DIR", callback=store_abspath_dir, type="string", help=optparse.SUPPRESS_HELP) # Configuration. g = optparse.OptionGroup(p, title="Configuration") g.add_option("--confirm-license", action="store_true", default=False, dest="license_confirmed", help="confirm acceptance of the license") g.add_option("-e", "--enable", action="append", default=[], metavar="MODULE", dest="enabled", help="enable checks for the " "specified MODULE [default: checks for all modules will be " "enabled]") g.add_option("--no-designer-plugin", action="store_false", default=True, dest="designer_plugin", help="disable the building of the " "Python plugin for Qt Designer [default: enabled]") g.add_option("-t", "--plugin", action="append", default=[], metavar="PLUGIN", dest="staticplugins", help="add PLUGIN to the " "list be linked (if Qt is built as static libraries)") g.add_option("--assume-shared", action="store_true", default=False, dest="assume_shared", help="assume that the Qt libraries have " "been built as shared libraries [default: check]") g.add_option("-T", "--no-timestamp", action="store_true", default=False, dest="no_timestamp", help="suppress timestamps in the header " "comments of generated code [default: include timestamps]") g.add_option("--no-deprecated", action="store_false", default=True, dest="with_deprecated", help="disable Qt v4 features deprecated " "in Qt v5 [default: enabled]") if sys.platform != 'win32': if sys.platform.startswith('linux') or sys.platform == 'darwin': pip_default = True pip_default_str = "enabled" else: pip_default = False pip_default_str = "disabled" g.add_option("--protected-is-public", action="store_true", default=pip_default, dest="prot_is_public", help="enable building with 'protected' redefined as 'public' " "[default: %s]" % pip_default_str) g.add_option("--protected-not-public", action="store_false", dest="prot_is_public", help="disable building with 'protected' redefined as 'public'") g.add_option("-q", "--qmake", action="callback", metavar="FILE", default=qmake, dest="qmake", callback=store_abspath_file, type="string", help="the pathname of qmake [default: %s]" % (qmake or "none")) g.add_option("-s", "--dbus", action="callback", metavar="DIR", dest="pydbusincdir", callback=store_abspath_dir, type="string", help="the directory containing the dbus/dbus-python.h header file " "[default: supplied by pkg-config]") p.add_option_group(g) if sys.platform == 'darwin': g = optparse.OptionGroup(p, title="MacOS X Configuration") g.add_option("--use-arch", action="append", metavar="ARCH", dest="use_arch", choices=["i386", "x86_64", "ppc"], help="add ARCH to the list of architectures to use when " "running pyuic4 [default: system default]") p.add_option_group(g) # Installation. g = optparse.OptionGroup(p, title="Installation") g.add_option("-b", "--bindir", action="callback", default=sipcfg.default_bin_dir, type="string", metavar="DIR", dest="pyqtbindir", callback=store_abspath, help="where pyuic4, " "pyrcc4 and pylupdate4 will be installed [default: %s]" % sipcfg.default_bin_dir) g.add_option("-d", "--destdir", action="callback", default=sipcfg.default_mod_dir, type="string", metavar="DIR", dest="pyqtmoddir", callback=store_abspath, help="where the PyQt4 " "Python package will be installed [default: %s]" % sipcfg.default_mod_dir) g.add_option("-p", "--plugin-destdir", action="callback", type="string", metavar="DIR", dest="plugindir", callback=store_abspath, help="where any plugins will be installed [default: " "QTDIR/plugins]") g.add_option("--no-sip-files", action="store_false", default=True, dest="install_sipfiles", help="disable the installation of the " ".sip files [default: enabled]") g.add_option("-v", "--sipdir", action="callback", default=os.path.join(sipcfg.default_sip_dir, "PyQt4"), metavar="DIR", dest="pyqtsipdir", callback=store_abspath, type="string", help="where the PyQt4 .sip files will be installed " "[default: %s]" % sipcfg.default_sip_dir) p.add_option_group(g) # Vendor ID. g = optparse.OptionGroup(p, title="VendorID support") g.add_option("-i", "--vendorid", action="store_true", default=False, dest="vendorcheck", help="enable checking of signed interpreters " "using the VendorID package [default: disabled]") g.add_option("-l", "--vendorid-incdir", action="callback", default=sipcfg.py_inc_dir, type="string", metavar="DIR", dest="vendincdir", callback=store_abspath_dir, help="the " "directory containing the VendorID header file [default: %s]" % sipcfg.py_inc_dir) g.add_option("-m", "--vendorid-libdir", action="callback", default=sipcfg.py_lib_dir, type="string", metavar="DIR", dest="vendlibdir", callback=store_abspath_dir, help="the " "directory containing the VendorID library [default: %s]" % sipcfg.py_lib_dir) p.add_option_group(g) # QScintilla. g = optparse.OptionGroup(p, title="QScintilla support") g.add_option("-a", "--qsci-api", action="store_true", default=None, dest="api", help="always install the PyQt API file for QScintilla " "[default: install only if QScintilla installed]") g.add_option("--no-qsci-api", action="store_false", default=None, dest="api", help="do not install the PyQt API file for QScintilla " "[default: install only if QScintilla installed]") g.add_option("-n", "--qsci-api-destdir", action="callback", dest="qscidir", metavar="DIR", callback=store_abspath, type="string", help="where " "the PyQt API file for QScintilla will be installed [default: " "QTDIR/qsci]") p.add_option_group(g) return p class pyrccMakefile(sipconfig.ProgramMakefile): """This class implements the Makefile for pyrcc. This was specialised so that pyrcc was automatically run against the examples (no longer done). """ def __init__(self): sipconfig.ProgramMakefile.__init__(self, configuration=sipcfg, build_file=os.path.join(src_dir, "pyrcc", "pyrcc.sbf"), dir="pyrcc", install_dir=opts.pyqtbindir, console=1, qt=["QtCore", "QtXml"], debug=opts.debug, warnings=1, universal=sipcfg.universal, arch=sipcfg.arch, deployment_target=sipcfg.deployment_target) class ConfigurePyQt4: """This class defines the methods to configure PyQt4. """ def __init__(self, generator): self.generator = generator def qt_version_tags(self): """Get the versions tags for the configuration. Returns a dictionary of versions and corresponding tags. """ return { 0x040101: None, 0x040102: "Qt_4_1_1", 0x040103: "Qt_4_1_2", 0x040200: "Qt_4_1_3", 0x040202: "Qt_4_2_0", 0x040300: "Qt_4_2_2", 0x040303: "Qt_4_3_0", 0x040400: "Qt_4_3_3", 0x040401: "Qt_4_4_0", 0x040500: "Qt_4_4_1", 0x040501: "Qt_4_5_0", 0x040600: "Qt_4_5_1", 0x040601: "Qt_4_6_0", 0x040602: "Qt_4_6_1", 0x040603: "Qt_4_6_2", 0x040700: "Qt_4_6_3", 0x040701: "Qt_4_7_0", 0x040702: "Qt_4_7_1", 0x040800: "Qt_4_7_2", 0x040803: "Qt_4_8_0", 0x040804: "Qt_4_8_3", 0x040806: "Qt_4_8_4", 0x050000: "Qt_4_8_6", 0x060000: "Qt_5_0_0" } def check_modules(self): if opts.mwg_odbc: sql_libs = ["odbc32"] else: sql_libs = None if opts.mwg_ssl_dir: ass_lib_dirs = [os.path.join(opts.mwg_ssl_dir, "lib")] ass_libs = ["ssleay32", "libeay32"] else: ass_lib_dirs = None ass_libs = None # Note that the order in which we check is important for the # consolidated module - a module's dependencies must be checked first. pyqt_modules.append("QtCore") check_module("QtGui", "qwidget.h", "new QWidget()") check_module("QtHelp", "qhelpengine.h", "new QHelpEngine(\"foo\")") check_module("QtMultimedia", "QAudioDeviceInfo", "new QAudioDeviceInfo()") check_module("QtNetwork", "qhostaddress.h", "new QHostAddress()") # Qt v4.7 was current when we added support for QtDBus and we didn't # bother properly versioning its API. if qt_version >= 0x040700: check_module("QtDBus", "qdbusconnection.h", "QDBusConnection::systemBus()") if qt_version < 0x050000 or opts.with_deprecated: check_module("QtDeclarative", "qdeclarativeview.h", "new QDeclarativeView()") check_module("QtScript", "qscriptengine.h", "new QScriptEngine()") check_module("QtScriptTools", "qscriptenginedebugger.h", "new QScriptEngineDebugger()") check_module("QtXml", "qdom.h", "new QDomDocument()") check_module("QtOpenGL", "qgl.h", "new QGLWidget()") check_module("QtSql", "qsqldatabase.h", "new QSqlDatabase()", extra_libs=sql_libs) check_module("QtSvg", "qsvgwidget.h", "new QSvgWidget()") check_module("QtTest", "QtTest", "QTest::qSleep(0)") check_module("QtWebKit", "qwebpage.h", "new QWebPage()") check_module("QtXmlPatterns", "qxmlname.h", "new QXmlName()") check_module("phonon", "phonon/videowidget.h", "new Phonon::VideoWidget()") check_module("QtAssistant", "qassistantclient.h", "new QAssistantClient(\"foo\")", extra_lib_dirs=ass_lib_dirs, extra_libs=ass_libs) if qt_shared == '': sipconfig.inform("QtDesigner module disabled with static Qt libraries.") else: check_module("QtDesigner", "QExtensionFactory", "new QExtensionFactory()") check_module("QAxContainer", "qaxobject.h", "new QAxObject()") if os.path.isdir(os.path.join(src_dir, "dbus")): check_dbus() def code(self): cons_xtra_incdirs = [] cons_xtra_libdirs = [] cons_xtra_libs = [] sp_libs, sp_libdirs = self._static_plugins("QtCore") sp_incdirs = [] qpy_inc_dir, qpy_lib_dir, qpy_lib = self._qpy_directories("QtCore", "qpycore") sp_incdirs.append(qpy_inc_dir) sp_libdirs.append(qpy_lib_dir) sp_libs.append(qpy_lib) if opts.vendorcheck: sp_incdirs.append(opts.vendincdir) sp_libdirs.append(opts.vendlibdir) sp_libs.append("vendorid") if opts.bigqt: cons_xtra_incdirs.extend(sp_incdirs) cons_xtra_libdirs.extend(sp_libdirs) cons_xtra_libs.extend(sp_libs) generate_code("QtCore") else: generate_code("QtCore", extra_include_dirs=sp_incdirs, extra_lib_dirs=sp_libdirs, extra_libs=sp_libs) if "QtDeclarative" in pyqt_modules: qpy_inc_dir, qpy_lib_dir, qpy_lib = self._qpy_directories("QtDeclarative", "qpydeclarative") if opts.bigqt: cons_xtra_incdirs.append(qpy_inc_dir) cons_xtra_libdirs.append(qpy_lib_dir) cons_xtra_libs.append(qpy_lib) generate_code("QtDeclarative") else: generate_code("QtDeclarative", extra_include_dirs=[qpy_inc_dir], extra_lib_dirs=[qpy_lib_dir], extra_libs=[qpy_lib]) if "QtGui" in pyqt_modules: sp_libs, sp_libdirs = self._static_plugins("QtGui") sp_incdirs = [] qpy_inc_dir, qpy_lib_dir, qpy_lib = self._qpy_directories("QtGui", "qpygui") sp_incdirs.append(qpy_inc_dir) sp_libdirs.append(qpy_lib_dir) sp_libs.append(qpy_lib) if opts.bigqt: cons_xtra_incdirs.extend(sp_incdirs) cons_xtra_libdirs.extend(sp_libdirs) cons_xtra_libs.extend(sp_libs) generate_code("QtGui") else: generate_code("QtGui", extra_include_dirs=sp_incdirs, extra_lib_dirs=sp_libdirs, extra_libs=sp_libs) if "QtHelp" in pyqt_modules: generate_code("QtHelp") if "QtMultimedia" in pyqt_modules: generate_code("QtMultimedia") if "QtNetwork" in pyqt_modules: generate_code("QtNetwork") if "QtDBus" in pyqt_modules: qpy_inc_dir, qpy_lib_dir, qpy_lib = self._qpy_directories("QtDBus", "qpydbus") if opts.bigqt: cons_xtra_incdirs.append(qpy_inc_dir) cons_xtra_libdirs.append(qpy_lib_dir) cons_xtra_libs.append(qpy_lib) generate_code("QtDBus") else: generate_code("QtDBus", extra_include_dirs=[qpy_inc_dir], extra_lib_dirs=[qpy_lib_dir], extra_libs=[qpy_lib]) if "QtOpenGL" in pyqt_modules: qpy_inc_dir, qpy_lib_dir, qpy_lib = self._qpy_directories("QtOpenGL", "qpyopengl") if opts.bigqt: cons_xtra_incdirs.append(qpy_inc_dir) cons_xtra_libdirs.append(qpy_lib_dir) cons_xtra_libs.append(qpy_lib) generate_code("QtOpenGL") else: generate_code("QtOpenGL", extra_include_dirs=[qpy_inc_dir], extra_lib_dirs=[qpy_lib_dir], extra_libs=[qpy_lib]) if "QtScript" in pyqt_modules: generate_code("QtScript") if "QtScriptTools" in pyqt_modules: generate_code("QtScriptTools") if "QtSql" in pyqt_modules: sp_libs, sp_libdirs = self._static_plugins("QtSql") if opts.bigqt: cons_xtra_libdirs.extend(sp_libdirs) cons_xtra_libs.extend(sp_libs) generate_code("QtSql") else: generate_code("QtSql", extra_lib_dirs=sp_libdirs, extra_libs=sp_libs) if "QtSvg" in pyqt_modules: generate_code("QtSvg") if "QtTest" in pyqt_modules: generate_code("QtTest") if "QtWebKit" in pyqt_modules: generate_code("QtWebKit") if "QtXml" in pyqt_modules: generate_code("QtXml") if "QtXmlPatterns" in pyqt_modules: generate_code("QtXmlPatterns") if "phonon" in pyqt_modules: generate_code("phonon") if "QtAssistant" in pyqt_modules: generate_code("QtAssistant") if "QtDesigner" in pyqt_modules: qpy_inc_dir, qpy_lib_dir, qpy_lib = self._qpy_directories("QtDesigner", "qpydesigner") if opts.bigqt: cons_xtra_incdirs.append(qpy_inc_dir) cons_xtra_libdirs.append(qpy_lib_dir) cons_xtra_libs.append(qpy_lib) generate_code("QtDesigner") else: generate_code("QtDesigner", extra_include_dirs=[qpy_inc_dir], extra_lib_dirs=[qpy_lib_dir], extra_libs=[qpy_lib]) if "QAxContainer" in pyqt_modules: generate_code("QAxContainer") # Generate the composite module. qtmod_sipdir = os.path.join("sip", "Qt") mk_clean_dir(qtmod_sipdir) qtmod_sipfile = os.path.join(qtmod_sipdir, "Qtmod.sip") f = open(qtmod_sipfile, "w") f.write("""%CompositeModule PyQt4.Qt """) for m in pyqt_modules: f.write("%%Include %s/%smod.sip\n" % (m, m)) f.close() generate_code("Qt") # Generate the consolidated module if required. if opts.bigqt: xtra_sip_flags = [] _qtmod_sipdir = os.path.join("sip", "_qt") mk_clean_dir(_qtmod_sipdir) _qtmod_sipfile = os.path.join(_qtmod_sipdir, "_qtmod.sip") f = open(_qtmod_sipfile, "w") f.write("""%ConsolidatedModule PyQt4._qt """) for m in pyqt_modules: f.write("%%Include %s/%smod.sip\n" % (m, m)) if opts.mwg_qsci_dir: f.write("%Include Qsci/Qscimod.sip\n") cons_xtra_libs.append("qscintilla2") # Copy in the QScintilla .sip files and fix the main one. src_dir = os.path.join(opts.mwg_qsci_dir, "Python", "sip") dst_dir = os.path.join("sip", "Qsci") try: shutil.rmtree(dst_dir); except: pass shutil.copytree(src_dir, dst_dir) os.rename(os.path.join(dst_dir, "qscimod4.sip"), os.path.join(dst_dir, "Qscimod.sip")) generate_code("Qsci") if opts.mwg_qwt_dir: f.write("%Include Qwt5/Qwt5mod.sip\n") cons_xtra_incdirs.append(os.path.join(opts.mwg_qwt_dir, "support")) cons_xtra_libs.append("qwt") # Copy in the PyQwt .sip files and fix the main one. src_dir = os.path.join(opts.mwg_qwt_dir, "sip", "qwt5qt4") dst_dir = os.path.join("sip", "Qwt5") try: shutil.rmtree(dst_dir); except: pass shutil.copytree(src_dir, dst_dir) os.rename(os.path.join(dst_dir, "QwtModule.sip"), os.path.join(dst_dir, "Qwt5mod.sip")) xtra_sip_flags = ["-t", "Qwt_5_0_1", "-x", "CXX_DYNAMIC_CAST", "-x", "HAS_QWT4", "-x", "HAS_NUMARRAY", "-x", "HAS_NUMERIC", "-x", "HAS_NUMPY"] generate_code("Qwt5", extra_sip_flags=xtra_sip_flags) f.close() if opts.mwg_odbc: cons_xtra_libs.append("odbc32") if opts.mwg_ssl_dir: cons_xtra_libdirs.append(os.path.join(opts.mwg_ssl_dir, "lib")) cons_xtra_libs.extend(["ssleay32", "libeay32"]) generate_code("_qt", extra_include_dirs=cons_xtra_incdirs, extra_lib_dirs=cons_xtra_libdirs, extra_libs=cons_xtra_libs, extra_sip_flags=xtra_sip_flags) # Tell the user about any plugins not found. if opts.staticplugins: sipconfig.inform("Unable to find the following static plugins: %s" % ", ".join(opts.staticplugins)) # Generate the QScintilla API file. sipconfig.inform("Creating QScintilla API file...") f = open("PyQt4.api", "w") for m in pyqt_modules: api = open(m + ".api") for l in api: f.write("PyQt4." + l) api.close() os.remove(m + ".api") f.close() def _qpy_directories(self, mname, lib_name): """Return a 3-tuple of the directories containing the header files, the directory containing the library, and the name of the support library for the given module. mname is the name of the module. lib_name is the normal name of the support library. (Note that this is historical and the unchanged name is always returned.) """ qpy_dir = os.path.join("qpy", mname) if sys.platform == 'win32': if opts.debug: qpy_lib_dir = os.path.join(qpy_dir, "debug") else: qpy_lib_dir = os.path.join(qpy_dir, "release") else: qpy_lib_dir = qpy_dir return os.path.join(src_dir, qpy_dir), os.path.abspath(qpy_lib_dir), lib_name def _static_plugins(self, mname): """Return a tuple of the libraries (in platform neutral format) and the directories they are contained in for all the requested static plugins for the given module. Generate the additional .sip file needed to ensure the plugins get linked. mname is the name of the module. """ plugin_dirs = { "QtCore": ("codecs", ), # Note that we put iconengines after imageformats so that qsvg is # found in the latter rather than the former. The name clash is # probably a Qt bug. "QtGui": ("inputmethods", "imageformats", "iconengines"), "QtSql": ("sqldrivers", ) } libs = [] libdirs = [] for plug in opts.staticplugins: # Convert the plugin name to a platform specific filename. if self.generator in ("MSVC", "MSVC.NET", "BMAKE"): pfname = plug + ".lib" else: pfname = "lib" + plug + ".a" for pdir in plugin_dirs[mname]: ppath = os.path.join(qt_pluginsdir, pdir) # See if the plugin exists. if os.access(os.path.join(ppath, pfname), os.F_OK): sipconfig.inform("Adding the %s static plugin to the %s module..." % (plug, mname)) libs.append(plug) if ppath not in libdirs: libdirs.append(ppath) break # Remove those plugins we have handled. opts.staticplugins = [p for p in opts.staticplugins if p not in libs] # If we have any plugins for this module then generate a .sip file that # will include the code needed to ensure the plugin gets linked. if libs: sp_sipfile = os.path.join("sip", mname, "staticplugins.sip") f = open(sp_sipfile, "w") f.write("""%ModuleCode #include """) for l in libs: f.write("Q_IMPORT_PLUGIN(%s)\n" % l) f.write(""" %End """) f.close() return libs, libdirs def module_installs(self): return [os.path.join(src_dir, "__init__.py"), "pyqtconfig.py"] def qpy_libs(self): # See which QPy support libraries to build. qpylibs = {} if "QtCore" in pyqt_modules: qpylibs["QtCore"] = "qpycore.pro" if "QtGui" in pyqt_modules: qpylibs["QtGui"] = "qpygui.pro" if "QtDBus" in pyqt_modules: qpylibs["QtDBus"] = "qpydbus.pro" if "QtDeclarative" in pyqt_modules: qpylibs["QtDeclarative"] = "qpydeclarative.pro" if "QtDesigner" in pyqt_modules: qpylibs["QtDesigner"] = "qpydesigner.pro" if "QtOpenGL" in pyqt_modules: qpylibs["QtOpenGL"] = "qpyopengl.pro" # Run qmake to generate the Makefiles. qmake_args = fix_qmake_args() cwd = os.getcwd() for qpy, pro in qpylibs.items(): sipconfig.inform("Creating QPy support library for %s Makefile..." % qpy) qpydir = os.path.join("qpy", qpy) mk_clean_dir(qpydir, clean=0) os.chdir(qpydir) wrapped_pro = "w_" + pro f = open(wrapped_pro, 'w+') if sipcfg.arch: f.write(arch_config()) if sipcfg.universal: f.write("QMAKE_MAC_SDK = %s\n" % sipcfg.universal) if sipcfg.deployment_target: f.write("QMAKE_MACOSX_DEPLOYMENT_TARGET = %s\n" % sipcfg.deployment_target) inc_path = [sipcfg.py_inc_dir] if qpy in ("QtCore", "QtDBus", "QtDeclarative", "QtOpenGL"): if sipcfg.sip_inc_dir != sipcfg.py_inc_dir: inc_path.insert(0, sipcfg.sip_inc_dir) if sipcfg.py_conf_inc_dir != sipcfg.py_inc_dir: inc_path.insert(0, sipcfg.py_conf_inc_dir) if opts.bigqt: api_dir = "../../_qt" else: api_dir = "../../" + qpy inc_path.append(api_dir) if opts.debug: pro_config = 'debug' else: pro_config = 'release' if src_dir != os.path.curdir: src_qpydir = os.path.join(src_dir, "qpy", qpy) pro = os.path.join(src_qpydir, pro) vpath = "VPATH = " + src_qpydir inc_path.append(src_qpydir) else: vpath = "" f.write( """# Tell the original .pro file about additional directories. INCLUDEPATH = %s CONFIG += %s %s include(%s) """ % (" ".join(['"' + i + '"' for i in inc_path]), pro_config, vpath, pro)) f.close() run_command("%s %s %s" % (opts.qmake, qmake_args, wrapped_pro)) os.chdir(cwd) sipconfig.inform("Creating QPy support libraries Makefile...") sipconfig.ParentMakefile( configuration=sipcfg, dir="qpy", subdirs=list(qpylibs.keys()) ).generate() return ["qpy"] def tools(self): tool = [] if pydbusmoddir: sipconfig.inform("Creating dbus support module Makefile...") makefile = sipconfig.ModuleMakefile( configuration=sipcfg, build_file=os.path.join(src_dir, "dbus", "dbus.sbf"), dir="dbus", install_dir=pydbusmoddir, qt=["QtCore"], debug=opts.debug, universal=sipcfg.universal, arch=sipcfg.arch, deployment_target=sipcfg.deployment_target ) add_makefile_extras(makefile, dbusincdirs, dbuslibdirs, dbuslibs) makefile.generate() tool.append("dbus") # Only include ElementTree for older versions of Python. if sipcfg.py_version < 0x020500: sipconfig.inform("Creating elementtree Makefile...") makefile = sipconfig.PythonModuleMakefile( configuration=sipcfg, dstdir=os.path.join(pyqt_modroot, "elementtree"), dir="elementtree" ) makefile.generate() tool.append("elementtree") # Create the pyuic4 wrapper. Use the GUI version on MacOS (so that # previews work properly and normal console use will work anyway), but # not on Windows (so that normal console use will work). sipconfig.inform("Creating pyuic4 wrapper...") if sys.platform == 'darwin': gui = True if opts.use_arch is None: use_arch = '' else: use_arch = ' '.join(opts.use_arch) else: gui = False use_arch = '' # The pyuic directory may not exist if we are building away from the # source directory. try: os.mkdir("pyuic") except OSError: pass uicdir=os.path.join(pyqt_modroot, "uic") wrapper = sipconfig.create_wrapper(os.path.join(uicdir, "pyuic.py"), os.path.join("pyuic", "pyuic4"), gui, use_arch) sipconfig.inform("Creating pyuic4 Makefile...") makefile = sipconfig.PythonModuleMakefile( configuration=sipcfg, dstdir=uicdir, srcdir=os.path.join(src_dir, "pyuic", "uic"), dir="pyuic", installs=[[os.path.basename(wrapper), opts.pyqtbindir]] ) makefile.generate() tool.append("pyuic") sipconfig.inform("Creating pylupdate4 Makefile...") cxxflags_app = sipcfg.build_macros().get("CXXFLAGS_APP", "") makefile = sipconfig.ProgramMakefile( configuration=sipcfg, build_file=os.path.join(src_dir, "pylupdate", "pylupdate.sbf"), dir="pylupdate", install_dir=opts.pyqtbindir, console=1, qt=["QtCore", "QtXml"], debug=opts.debug, warnings=1, universal=sipcfg.universal, arch=sipcfg.arch, deployment_target=sipcfg.deployment_target ) makefile.extra_include_dirs.append(os.path.join(src_dir, "pylupdate")) if cxxflags_app != "": makefile.extra_cxxflags.append(cxxflags_app) makefile.generate() tool.append("pylupdate") sipconfig.inform("Creating pyrcc4 Makefile...") makefile = pyrccMakefile() if cxxflags_app != "": makefile.extra_cxxflags.append(cxxflags_app) makefile.generate() tool.append("pyrcc") if opts.designer_plugin and "QtDesigner" in pyqt_modules: py_major = sipcfg.py_version >> 16 py_minor = (sipcfg.py_version >> 8) & 0x0ff abi = getattr(sys, 'abiflags', '') if sys.platform == 'win32': # Use abiflags in case it is supported in a future version. lib_dir_flag = quote("-L%s" % sipcfg.py_lib_dir) link = "%s -lpython%d%d%s" % (lib_dir_flag, py_major, py_minor, abi) pysh_lib = "python%d%d%s.dll" % (py_major, py_minor, abi) else: # Use distutils to get the additional configuration. from distutils.sysconfig import get_config_vars ducfg = get_config_vars() config_args = ducfg.get("CONFIG_ARGS", "") if sys.platform == "darwin": dynamic_pylib = "--enable-framework" in config_args # It's probably a Python bug that the library name doesn't # include the ABI information. abi = "" else: dynamic_pylib = "--enable-shared" in config_args if dynamic_pylib: if glob.glob("%s/lib/libpython%d.%d*" % (ducfg["exec_prefix"], py_major, py_minor)): lib_dir_flag = quote("-L%s/lib" % ducfg["exec_prefix"]) elif 'MULTIARCH' in ducfg and glob.glob('%s/lib/%s/libpython%d.%d*' % (ducfg['exec_prefix'], ducfg['MULTIARCH'], py_major, py_minor)): lib_dir_flag = quote('-L%s/lib/%s' % (ducfg['exec_prefix'], ducfg['MULTIARCH'])) elif glob.glob("%s/libpython%d.%d*" % (ducfg["LIBDIR"], py_major, py_minor)): lib_dir_flag = quote("-L%s" % ducfg["LIBDIR"]) else: sipconfig.inform("Qt Designer plugin disabled because Python library couldn't be found") lib_dir_flag = '' opts.designer_plugin = False link = "%s -lpython%d.%d%s" % (lib_dir_flag, py_major, py_minor, abi) else: sipconfig.inform("The Qt Designer plugin was disabled because a dynamic Python library couldn't be found") opts.designer_plugin = False pysh_lib = ducfg.get("LDLIBRARY", "") if opts.designer_plugin: sipconfig.inform("Creating Qt Designer plugin Makefile...") # Run qmake to generate the Makefile. qmake_args = fix_qmake_args() cwd = os.getcwd() mk_clean_dir("designer", clean=0) os.chdir("designer") # Create the qmake project file. fin = open(os.path.join(src_dir, "designer", "designer.pro-in")) prj = fin.read() fin.close() prj = prj.replace("@PYINCDIR@", quote(sipcfg.py_inc_dir)) prj = prj.replace("@PYINCDIR@", " ".join((quote(sipcfg.py_conf_inc_dir), quote(sipcfg.py_inc_dir)))) prj = prj.replace("@PYLINK@", link) prj = prj.replace("@PYSHLIB@", pysh_lib) prj = prj.replace("@QTPLUGINDIR@", quote(opts.plugindir + "/designer")) fout = open("designer.pro", "w+") if sipcfg.arch: fout.write(arch_config()) if sipcfg.universal: fout.write("QMAKE_MAC_SDK = %s\n" % sipcfg.universal) if sipcfg.deployment_target: fout.write("QMAKE_MACOSX_DEPLOYMENT_TARGET = %s\n" % sipcfg.deployment_target) if src_dir != os.path.curdir: fout.write("VPATH = %s\n" % os.path.join(src_dir, "designer")) fout.write(prj) fout.close() run_command("%s %s" % (opts.qmake, qmake_args)) os.chdir(cwd) tool.append("designer") return tool def arch_config(): """Return the qmake CONFIG line for a MacOS binary.""" qmake_archs = [] for a in sipcfg.arch.split(): if a == 'i386': qmake_archs.append('x86') elif a == 'x86_64': qmake_archs.append('x86_64') elif a == 'ppc': qmake_archs.append('ppc') return 'CONFIG += %s\n' % ' '.join(qmake_archs) def quote(path): """Return a path with quotes added if it contains spaces.""" if " " in path: path = '"%s"' % path return path def inform_user(): """Tell the user the option values that are going to be used. """ if qt_edition: edstr = qt_edition + " edition " else: edstr = "" if qt_shared: lib_type = "shared" else: lib_type = "static" sipconfig.inform("Qt v%s %sis being used." % (sipconfig.version_to_string(qt_version), edstr)) if qt_licensee: sipconfig.inform("Qt is licensed to %s." % qt_licensee) if sys.platform == "darwin" and qt_framework: sipconfig.inform("Qt is built as a framework.") sipconfig.inform("SIP %s is being used." % sipcfg.sip_version_str) sipconfig.inform("The Qt header files are in %s." % qt_incdir) sipconfig.inform("The %s Qt libraries are in %s." % (lib_type, qt_libdir)) sipconfig.inform("The Qt binaries are in %s." % qt_bindir) sipconfig.inform("The Qt mkspecs directory is in %s." % qt_archdatadir) sipconfig.inform("These PyQt modules will be built: %s." % ", ".join(pyqt_modules)) sipconfig.inform("The PyQt Python package will be installed in %s." % opts.pyqtmoddir) if qt_version >= 0x050000: if opts.with_deprecated: sipconfig.inform("PyQt is being built with deprecated Qt v4 features.") else: sipconfig.inform("PyQt is being built without deprecated Qt v4 features.") if opts.no_docstrings: sipconfig.inform("PyQt is being built without generated docstrings.") else: sipconfig.inform("PyQt is being built with generated docstrings.") if opts.prot_is_public: sipconfig.inform("PyQt is being built with 'protected' redefined as 'public'.") if opts.designer_plugin: sipconfig.inform("The Designer plugin will be installed in %s." % os.path.join(opts.plugindir, "designer")) if opts.api: sipconfig.inform("The QScintilla API file will be installed in %s." % os.path.join(opts.qscidir, "api", "python")) if pydbusmoddir: sipconfig.inform("The dbus support module will be installed in %s." % pydbusmoddir) sipconfig.inform("The PyQt .sip files will be installed in %s." % opts.pyqtsipdir) sipconfig.inform("pyuic4, pyrcc4 and pylupdate4 will be installed in %s." % opts.pyqtbindir) if opts.vendorcheck: sipconfig.inform("PyQt will only be usable with signed interpreters.") def create_config(module, template, macros): """Create the PyQt configuration module so that it can be imported by build scripts. module is the module file name. template is the template file name. macros is the dictionary of platform specific build macros. """ sipconfig.inform("Creating %s..." % module) content = { "pyqt_config_args": sys.argv[1:], "pyqt_version": pyqt_version, "pyqt_version_str": pyqt_version_str, "pyqt_bin_dir": opts.pyqtbindir, "pyqt_mod_dir": pyqt_modroot, "pyqt_sip_dir": opts.pyqtsipdir, "pyqt_modules": pyqt_modules, "pyqt_sip_flags": qt_sip_flags, "qt_version": qt_version, "qt_edition": qt_edition, "qt_winconfig": qt_shared, "qt_framework": qt_framework, "qt_threaded": 1, "qt_dir": qt_dir, "qt_data_dir": qt_datadir, "qt_archdata_dir": qt_archdatadir, "qt_inc_dir": qt_incdir, "qt_lib_dir": qt_libdir } sipconfig.create_config_module(module, template, content, macros) def run_command(cmd, envvars=None): """Run a command and display the output if verbose mode is enabled. cmd is the command to run. """ if opts.verbose: sys.stdout.write(cmd + "\n") fout = get_command_stdout(cmd, and_stderr=True, envvars=envvars) # Read stdout and stderr until there is no more output. lout = fout.readline() while lout: if opts.verbose: if sys.hexversion >= 0x03000000: sys.stdout.write(str(lout, encoding=sys.stdout.encoding)) else: sys.stdout.write(lout) lout = fout.readline() fout.close() try: os.wait() except: pass def remove_file(fname): """Remove a file which may or may not exist. fname is the name of the file. """ try: os.remove(fname) except OSError: pass def compile_qt_program(name, mname, extra_include_dirs=None, extra_lib_dirs=None, extra_libs=None): """Compile a simple Qt application. name is the name of the single source file. mname is the name of the Qt module. extra_include_dirs is an optional list of extra include directories. extra_lib_dirs is an optional list of extra library directories. extra_libs is an optional list of extra libraries. Returns the name of the executable suitable for running or None if it wasn't created. """ opengl = (mname == "QtOpenGL") qt = [] needed_qt_libs(mname, qt) makefile = sipconfig.ProgramMakefile(sipcfg, console=1, qt=qt, warnings=0, opengl=opengl, debug=opts.debug, arch=sipcfg.arch, deployment_target=sipcfg.deployment_target) add_makefile_extras(makefile, extra_include_dirs, extra_lib_dirs, extra_libs) exe, build = makefile.build_command(name) if sipcfg.deployment_target: envvars = {'MACOSX_DEPLOYMENT_TARGET': '%s' % sipcfg.deployment_target} else: envvars = None # Make sure the executable file doesn't exist. remove_file(exe) run_command(build, envvars=envvars) if not os.access(exe, os.X_OK): return None if sys.platform != 'win32': exe = "./" + exe return exe def add_makefile_extras(makefile, extra_include_dirs, extra_lib_dirs, extra_libs): """Add any extra include or library directories or libraries to a makefile. makefile is the makefile. extra_include_dirs is the list of extra include directories. extra_lib_dirs is the list of extra library directories. extra_libs is the list of extra libraries. """ if extra_include_dirs: makefile.extra_include_dirs.extend(extra_include_dirs) if extra_lib_dirs: makefile.extra_lib_dirs.extend(extra_lib_dirs) if extra_libs: makefile.extra_libs.extend(extra_libs) def check_vendorid(): """See if the VendorID library and include file can be found. """ if opts.vendorcheck: if os.access(os.path.join(opts.vendincdir, "vendorid.h"), os.F_OK): if glob.glob(os.path.join(opts.vendlibdir, "*vendorid*")): sipconfig.inform("The VendorID package was found.") else: opts.vendorcheck = 0 sipconfig.inform("The VendorID library could not be found in " "%s and so signed interpreter checking will " "be disabled. If the VendorID library is " "installed then use the -m argument to " "explicitly specify the correct " "directory." % opts.vendlibdir) else: opts.vendorcheck = 0 sipconfig.inform("vendorid.h could not be found in %s and so " "signed interpreter checking will be disabled. " "If the VendorID package is installed then use " "the -l argument to explicitly specify the " "correct directory." % opts.vendincdir) def get_command_stdout(cmd, and_stderr=False, envvars=None): """Return stdout (and optionally stderr) from the given command. """ if envvars is not None: env = os.environ.copy() env.update(envvars) else: env = None try: import subprocess except ImportError: if and_stderr: _, sout = os.popen4(cmd) else: _, sout, _ = os.popen3(cmd) return sout if and_stderr: stderr = subprocess.STDOUT else: stderr = subprocess.PIPE p = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=stderr, env=env) return p.stdout def check_dbus(): """See if the DBus support module should be built. """ sipconfig.inform("Checking to see if the dbus support module should be built...") sout = get_command_stdout("pkg-config --cflags-only-I --libs dbus-1") iflags = sout.read().strip() if not iflags: sipconfig.inform("DBus v1 does not seem to be installed.") return if sys.hexversion >= 0x03000000: iflags = iflags.decode() for f in iflags.split(): if f.startswith("-I"): dbusincdirs.append(f[2:]) elif f.startswith("-L"): dbuslibdirs.append(f[2:]) elif f.startswith("-l"): dbuslibs.append(f[2:]) try: import dbus.mainloop except: sipconfig.inform("The Python dbus module doesn't seem to be installed.") return global pydbusmoddir pydbusmoddir = dbus.mainloop.__path__[0] # Try and find dbus-python.h. We don't use pkg-config because it is broken # for dbus-python (at least for versions up to and including v0.81.0). # Instead we look where DBus itself is installed - which in most cases will # be where dbus-python is also installed. if opts.pydbusincdir: dlist = [opts.pydbusincdir] else: dlist = dbusincdirs for d in dlist: if os.access(os.path.join(d, "dbus", "dbus-python.h"), os.F_OK): if d not in dbusincdirs: dbusincdirs.append(d) break else: sipconfig.inform("dbus/dbus-python.h could not be found and so the " "DBus support module will be disabled. If " "dbus-python v0.80 or later is installed then use " "the -s argument to explicitly specify the directory " "containing dbus/dbus-python.h.") pydbusmoddir = None def check_module(mname, incfile, test, extra_include_dirs=None, extra_lib_dirs=None, extra_libs=None): """See if a module can be built and, if so, add it to the global list of modules. mname is the name of the module. incfile is the name of the include file needed for the test. test is a C++ statement being used for the test. extra_include_dirs is an optional list of extra include directories. extra_lib_dirs is an optional list of extra library directories. extra_libs is an optional list of extra libraries. """ # Check that the module is enabled if we are not automatically enabling all # modules. if len(opts.enabled) > 0 and mname not in opts.enabled: return # Check the module's main .sip file exists. if os.access(os.path.join(src_dir, "sip", mname, mname + "mod.sip"), os.F_OK): sipconfig.inform("Checking to see if the %s module should be built..." % mname) if check_api(incfile, test, mname, extra_include_dirs=extra_include_dirs, extra_lib_dirs=extra_lib_dirs, extra_libs=extra_libs): pyqt_modules.append(mname) def check_api(incfile, test, mname, extra_include_dirs=None, extra_lib_dirs=None, extra_libs=None): """Return non-zero if a class is available. incfile is the name of the include file needed for the test. test is a C++ statement being used for the test. mname is the name of the module. extra_include_dirs is an optional list of extra include directories. extra_lib_dirs is an optional list of extra library directories. extra_libs is an optional list of extra libraries. """ # We use a module specific name to avoid a potential problem on Windows # where the operating system doesn't delete previous tests quickly enough. cfgtest = "cfgtest_%s.cpp" % mname f = open(cfgtest, "w") f.write("""#include <%s> int main(int, char **) { %s; } """ % (incfile, test)) f.close() return compile_qt_program(cfgtest, mname, extra_include_dirs=extra_include_dirs, extra_lib_dirs=extra_lib_dirs, extra_libs=extra_libs) def set_sip_flags(pyqt): """Set the SIP platform, version and feature flags. pyqt is the configuration instance. """ sip_flags = [] # If we don't check for signed interpreters, we exclude the 'VendorID' # feature if not opts.vendorcheck: sip_flags.append("-x") sip_flags.append("VendorID") if qt_version >= 0x050000 and not opts.with_deprecated: sip_flags.append("-x") sip_flags.append("PyQt_Deprecated_5_0") # Handle the platform tag. if sys.platform == 'win32': plattag = "WS_WIN" elif sys.platform == "darwin": if "__USE_WS_X11__" in sipcfg.build_macros()["DEFINES"]: plattag = "WS_X11" else: plattag = "WS_MACX" else: plattag = "WS_X11" sip_flags.append("-t") sip_flags.append(plattag) # Handle the Qt version tag. verstag = sipconfig.version_to_sip_tag(qt_version, pyqt.qt_version_tags(), "Qt") # Handle any feature flags. for xf in qt_xfeatures: sip_flags.append("-x") sip_flags.append(xf) if verstag: sip_flags.append("-t") sip_flags.append(verstag) # Handle the version specific Python features. if sipcfg.py_version < 0x020400: sip_flags.append("-x") sip_flags.append("Py_DateTime") if sipcfg.py_version < 0x030000: sip_flags.append("-x") sip_flags.append("Py_v3") qt_sip_flags.extend(sip_flags) # There is an issue creating QObjects while the GIL is held causing # deadlocks in multi-threaded applications. We don't fully understand this # yet so we make sure we avoid the problem by always releasing the GIL. qt_sip_flags.append("-g") # Return the sip flags that sub-modules need to know about. return " ".join(sip_flags) def needed_qt_libs(mname, qt_libs): """Add any additional Qt libraries needed by a module to an existing list. mname is the name of the module. qt_libs is the current list of libraries. """ # The dependencies between the different Qt libraries. The order within # each list is important. Note that this affects the include directories # as well as the libraries. LIB_DEPS = { "QtCore": [], "QtDBus": ["QtCore"], "QtDeclarative": ["QtNetwork", "QtGui"], "QtGui": ["QtCore"], "QtHelp": ["QtGui"], "QtMultimedia": ["QtGui"], "QtNetwork": ["QtCore"], "QtOpenGL": ["QtGui"], "QtScript": ["QtCore"], "QtScriptTools": ["QtScript", "QtGui", "QtCore"], "QtSql": ["QtGui"], "QtSvg": ["QtGui"], "QtTest": ["QtGui"], "QtWebKit": ["QtNetwork", "QtGui"], "QtXml": ["QtCore"], "QtXmlPatterns": ["QtNetwork", "QtCore"], "phonon": ["QtGui"], "QtAssistant": ["QtNetwork", "QtGui"], "QtDesigner": ["QtGui"], "QAxContainer": ["QtGui"] } # Handle the dependencies first. for d in LIB_DEPS[mname]: needed_qt_libs(d, qt_libs) if mname not in qt_libs: qt_libs.insert(0, mname) def mk_clean_dir(name, clean=1): """Create a clean (ie. empty) directory. name is the name of the directory. """ if clean: try: shutil.rmtree(name) except: pass try: os.makedirs(name) except: if clean: sipconfig.error("Unable to create the %s directory." % name) def generate_code(mname, extra_include_dirs=None, extra_lib_dirs=None, extra_libs=None, extra_sip_flags=None): """Generate the code for a module. mname is the name of the module to generate the code for. extra_include_dirs is an optional list of additional directories to add to the list of include directories. extra_lib_dirs is an optional list of additional directories to add to the list of library directories. extra_libs is an optional list of additional libraries to add to the list of libraries. extra_sip_flags is an optional list of additional flags to pass to SIP. """ sipconfig.inform("Generating the C++ source for the %s module..." % mname) mk_clean_dir(mname) # Work out what Qt libraries need to be linked against and how SIP is # supposed to handle the consolidated module and its components. cons_args = [] if opts.bigqt: if mname == "_qt": qt_libs = [] for m in pyqt_modules: needed_qt_libs(m, qt_libs) else: if mname != "Qt": cons_args.append("-p") cons_args.append("PyQt4._qt") qt_libs = 0 else: if mname == "Qt": qt_libs = 0 else: qt_libs = [] needed_qt_libs(mname, qt_libs) # Build the SIP command line. argv = ['"' + sipcfg.sip_bin + '"', '-w'] if opts.no_timestamp: argv.append("-T") if not opts.no_docstrings: argv.append("-o"); if opts.prot_is_public: argv.append("-P"); argv.extend(qt_sip_flags) argv.extend(cons_args) if extra_sip_flags: argv.extend(extra_sip_flags) if opts.concat: argv.append("-j") argv.append(str(opts.split)) if opts.tracing: argv.append("-r") if mname not in ("Qt", "_qt", "Qsci"): argv.append("-a") argv.append(mname + ".api") # Pass the absolute pathname so that #line files are absolute. argv.append("-c") argv.append(os.path.abspath(mname)) buildfile = os.path.join(mname, mname + ".sbf") argv.append("-b") argv.append(buildfile) argv.append("-I") argv.append(os.path.join(src_dir, "sip")) # Add the name of the .sip file keeping in mind SIP assumes POSIX style # path separators. The Qt module's .sip file is generated by this script # and so will be in a different place if this is an out-of-tree build. if mname == "Qt": argv.append("sip/Qt/Qtmod.sip") else: drive, path = os.path.splitdrive(src_dir) parts = path.split(os.pathsep) parts.extend(["sip", mname, mname + "mod.sip"]) argv.append(drive + "/".join(parts)) cmd = " ".join(argv) if opts.verbose: sys.stdout.write(cmd + "\n") os.system(cmd) # Check the result. if not os.access(buildfile, os.F_OK): sipconfig.error("Unable to create the C++ code.") # Generate the Makefile. sipconfig.inform("Creating the Makefile for the %s module..." % mname) installs = [] if opts.install_sipfiles: sipfiles = [] sipdir = os.path.join("sip", mname) if mname != "Qt": sipdir = os.path.join(src_dir, sipdir) rel_sipdir = sipdir else: rel_sipdir = os.path.join("..", sipdir) for s in glob.glob(os.path.join(sipdir, "*.sip")): sipfiles.append(os.path.join(rel_sipdir, os.path.basename(s))) installs.append([sipfiles, os.path.join(opts.pyqtsipdir, mname)]) opengl = (mname == "QtOpenGL") makefile = sipconfig.SIPModuleMakefile( configuration=sipcfg, build_file=mname + ".sbf", dir=mname, install_dir=pyqt_modroot, installs=installs, qt=qt_libs, opengl=opengl, warnings=1, static=opts.static, debug=opts.debug, universal=sipcfg.universal, arch=sipcfg.arch, prot_is_public=opts.prot_is_public, deployment_target=sipcfg.deployment_target ) add_makefile_extras(makefile, extra_include_dirs, extra_lib_dirs, extra_libs) if qt_version >= 0x050000 and opts.with_deprecated: # The name of this macro is very confusing. makefile.extra_defines.append('QT_DISABLE_DEPRECATED_BEFORE=0x04ffff') makefile.generate() def fix_license(name): """ Fix the license file, if there is one, so that it conforms to the SIP v5 syntax. """ try: f = open(name, "r") except IOError: sipconfig.error("Failed to open license file %s." % name) f5 = open(name + "5", "w") for line in f: if line.startswith("%License"): anno_start = line.find("/") anno_end = line.rfind("/") if anno_start < 0 or anno_end < 0 or anno_start == anno_end: sipconfig.error("%s has missing annotations." % name) annos = line[anno_start + 1:anno_end].split(", ") annos5 = [anno[0].lower() + anno[1:] for anno in annos] f5.write("%License(") f5.write(", ".join(annos5)) f5.write(")\n") else: f5.write(line) f5.close() f.close() def check_license(): """Handle the validation of the PyQt license. """ try: import license ltype = license.LicenseType lname = license.LicenseName try: lfile = license.LicenseFile except AttributeError: lfile = None except ImportError: ltype = None if ltype is None: ltype = "GPL" lname = "GNU General Public License" lfile = "pyqt-gpl.sip" sipconfig.inform("This is the %s version of PyQt %s (licensed under the %s) for Python %s on %s." % (ltype, pyqt_version_str, lname, sys.version.split()[0], sys.platform)) # Common checks. if qt_licensee and ltype == "GPL": sipconfig.error("This version of PyQt and the commercial version of Qt have incompatible licenses.") # Confirm the license if not already done. if not opts.license_confirmed: loptions = """ Type 'L' to view the license. """ sys.stdout.write(loptions) sys.stdout.write("""Type 'yes' to accept the terms of the license. Type 'no' to decline the terms of the license. """) while 1: sys.stdout.write("Do you accept the terms of the license? ") sys.stdout.flush() try: resp = sys.stdin.readline() except KeyboardInterrupt: raise SystemExit except: resp = "" resp = resp.strip().lower() if resp == "yes": break if resp == "no": sys.exit(0) if resp == "l": os.system("more LICENSE") # Check that the license file exists and fix its syntax. lfile_path = os.path.join(src_dir, "sip", lfile) if os.access(lfile_path, os.F_OK): sipconfig.inform("Found the license file %s." % lfile) fix_license(lfile_path) else: sipconfig.error("Please copy the license file %s to the sip directory." % lfile) def get_build_macros(overrides): """Return the dictionary of platform specific build macros from the Qt installation. Return None if any of the overrides was invalid. overrides is a list of macros overrides from the user. """ global qt_macx_spec # Get the name of the qmake configuration file to take the macros from. if "QMAKESPEC" in list(os.environ.keys()): fname = os.environ["QMAKESPEC"] if not os.path.dirname(fname) or fname.startswith("unsupported"): qt_macx_spec = fname fname = os.path.join(qt_archdatadir, "mkspecs", fname) elif sys.platform == "darwin": # The Qt Mac binary installer defaults to xcode which we don't want. # Use Qt5's macx-clang if it is available, otherwise fall back to # macx-g++. fname = os.path.join(qt_archdatadir, "mkspecs", "macx-clang") if os.path.isdir(fname): qt_macx_spec = "macx-clang" else: fname = os.path.join(qt_archdatadir, "mkspecs", "macx-g++") qt_macx_spec = "macx-g++" else: fname = os.path.join(qt_archdatadir, "mkspecs", "default") # Qt5 doesn't have the 'default' link. if not os.path.isdir(fname): f = get_command_stdout(opts.qmake + " -query QMAKE_SPEC") fname = f.read().strip() if sys.hexversion >= 0x03000000: fname = fname.decode() f.close() fname = os.path.join(qt_archdatadir, "mkspecs", fname) fname = os.path.join(fname, "qmake.conf") if not os.access(fname, os.F_OK): sipconfig.error("Unable to find the qmake configuration file %s. Use the QMAKESPEC environment variable to specify the correct platform." % fname) # Add the Qt specific macros to the default. names = list(sipcfg.build_macros().keys()) names.append("INCDIR_QT") names.append("LIBDIR_QT") names.append("MOC") properties = { "QT_INSTALL_BINS": qt_bindir, "QT_INSTALL_HEADERS": qt_incdir, "QT_INSTALL_LIBS": qt_libdir } macros = sipconfig.parse_build_macros(fname, names, overrides, properties) if macros is None: return None # Qt5 doesn't seem to support the specific macros so add them if they are # missing. if macros.get("INCDIR_QT", "") == "": macros["INCDIR_QT"] = qt_incdir if macros.get("LIBDIR_QT", "") == "": macros["LIBDIR_QT"] = qt_libdir if macros.get("MOC", "") == "": default_moc = os.path.join(qt_bindir, "moc") if sys.platform == 'win32': default_moc += ".exe" macros["MOC"] = default_moc return macros def check_qt_installation(macros): """Check the Qt installation and get the version number and edition and return the configuration instance. macros is the dictionary of build macros. """ # Check the Qt version number. if qt_version < 0x040100: sipconfig.error("PyQt v4 requires Qt v4.1.0 or later.") # Starting with v4.7, Qt (when built with MinGW) assumes that stack frames # are 16 byte aligned because it uses SSE. However the Python Windows # installers are built with 4 byte aligned stack frames. We therefore need # to tweak the g++ flags to deal with it. if sipcfg.platform == 'win32-g++' and qt_version >= 0x040700: macros['CFLAGS'] += ' -mstackrealign' macros['CXXFLAGS'] += ' -mstackrealign' # Work out how Qt was built on MacOS. if sys.platform == "darwin": if os.access(os.path.join(qt_libdir, "QtCore.framework"), os.F_OK): global qt_framework qt_framework = 1 # Get the Makefile generator. generator = macros["MAKEFILE_GENERATOR"] # We haven't yet factored out sipconfig's knowledge of how to build Qt # binaries and it is expecting to find these in the configuration when it # generates the Makefiles. sipcfg.qt_version = qt_version sipcfg.qt_edition = qt_edition sipcfg.qt_winconfig = qt_shared sipcfg.qt_framework = qt_framework sipcfg.qt_threaded = 1 sipcfg.qt_dir = qt_dir sipcfg.qt_lib_dir = qt_libdir return ConfigurePyQt4(generator) def fix_qmake_args(args=""): """Make any platform specific adjustments to the arguments passed to qmake. """ if sys.platform == "darwin": # The Qt binary installer has macx-xcode as the default. args = "-spec %s %s" % (qt_macx_spec, args) return args def get_qt_configuration(): """Set the qt_dir, qt_incdir, qt_libdir, qt_bindir, qt_datadir, qt_archdatadir, qt_pluginsdir and qt_xfeatures globals for the Qt installation. """ sipconfig.inform("Determining the layout of your Qt installation...") # The file names we will use to get the directory information. app = "qtdirs" pro_file = app + ".pro" make_file = app + ".mk" make_target = "" cpp_file = app + ".cpp" out_file = app + ".out" qmake_args = fix_qmake_args("-o " + make_file) if sys.platform == 'win32': if opts.debug: exe_file = os.path.join("debug", app + ".exe") make_target = " debug" else: exe_file = os.path.join("release", app + ".exe") make_target = " release" elif sys.platform == "darwin": exe_file = os.path.join(app + ".app", "Contents", "MacOS", app) else: exe_file = os.path.join(".", app) # Generate the qmake project file. f = open(pro_file, "w") if sipcfg.arch: f.write(arch_config()) f.write( """QT = core # This is for certain broken Linux distros and is needed to make sure that # QT_SHARED is properly defined. CONFIG += link_prl TARGET = %s SOURCES = %s """ % (app, cpp_file)) f.close() # Generate the source code. f = open(cpp_file, "w") f.write( """#include #include #include #include // This is for Qt v5. The value isn't accurate but triggers the desired // description of the edition. #if !defined(QT_EDITION) #define QT_EDITION 0x200 #endif int main(int argc, char **argv) { QCoreApplication app(argc, argv); QFile outf("%s"); if (!outf.open(QIODevice::WriteOnly|QIODevice::Truncate|QIODevice::Text)) return 1; QTextStream out(&outf); out << QLibraryInfo::location(QLibraryInfo::PrefixPath) << '\\n'; out << QLibraryInfo::location(QLibraryInfo::HeadersPath) << '\\n'; out << QLibraryInfo::location(QLibraryInfo::LibrariesPath) << '\\n'; out << QLibraryInfo::location(QLibraryInfo::BinariesPath) << '\\n'; out << QLibraryInfo::location(QLibraryInfo::DataPath) << '\\n'; #if QT_VERSION >= 0x050000 out << QLibraryInfo::location(QLibraryInfo::ArchDataPath) << '\\n'; #else out << QLibraryInfo::location(QLibraryInfo::DataPath) << '\\n'; #endif out << QLibraryInfo::location(QLibraryInfo::PluginsPath) << '\\n'; out << QT_VERSION << '\\n'; out << QT_EDITION << '\\n'; out << QLibraryInfo::licensee() << '\\n'; #if defined(QT_SHARED) || defined(QT_DLL) out << "shared\\n"; #else out << "static\\n"; #endif // Determine which features should be disabled. #if defined(QT_NO_ACCESSIBILITY) out << "PyQt_Accessibility\\n"; #endif #if defined(QT_NO_SESSIONMANAGER) out << "PyQt_SessionManager\\n"; #endif #if defined(QT_NO_STATUSTIP) out << "PyQt_StatusTip\\n"; #endif #if defined(QT_NO_TOOLTIP) out << "PyQt_ToolTip\\n"; #endif #if defined(QT_NO_WHATSTHIS) out << "PyQt_WhatsThis\\n"; #endif #if defined(QT_NO_OPENSSL) out << "PyQt_OpenSSL\\n"; #endif #if defined(QT_NO_SIZEGRIP) out << "PyQt_SizeGrip\\n"; #endif #if defined(QT_NO_SYSTEMTRAYICON) out << "PyQt_SystemTrayIcon\\n"; #endif #if defined(QT_NO_PRINTDIALOG) out << "PyQt_PrintDialog\\n"; #endif #if defined(QT_NO_PRINTER) out << "PyQt_Printer\\n"; #endif #if defined(QT_NO_PRINTPREVIEWDIALOG) out << "PyQt_PrintPreviewDialog\\n"; #endif #if defined(QT_NO_PRINTPREVIEWWIDGET) out << "PyQt_PrintPreviewWidget\\n"; #endif #if defined(QT_NO_RAWFONT) out << "PyQt_RawFont\\n"; #endif #if !defined(QT3_SUPPORT) || QT_VERSION >= 0x040200 out << "PyQt_NoPrintRangeBug\\n"; #endif #if defined(QT_OPENGL_ES) out << "PyQt_NoOpenGLES\\n"; #endif #if defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE) || defined(QT_ARCH_SYMBIAN) || defined(QT_ARCH_VXWORKS) out << "PyQt_qreal_double\\n"; #endif return 0; } """ % out_file) f.close() # Create the makefile, first making sure it doesn't already exist. remove_file(make_file) run_command("%s %s %s" % (opts.qmake, qmake_args, pro_file)) if not os.access(make_file, os.F_OK): sipconfig.error("%s failed to create a makefile. %s" % (opts.qmake, MSG_CHECK_QMAKE)) # Try and work out the name of make. if sipcfg.platform.startswith("win32-msvc"): make = "nmake" elif sipcfg.platform == "win32-borland": make = "bmake" elif sipcfg.platform == "win32-g++": make = "mingw32-make" else: make = "make" # Create the executable, first making sure it doesn't exist. remove_file(exe_file) run_command("%s -f %s%s" % (make, make_file, make_target)) if not os.access(exe_file, os.X_OK): sipconfig.error("Failed to determine the layout of your Qt installation. Try again using the --verbose flag to see more detail about the problem.") # Create the output file, first making sure it doesn't exist. remove_file(out_file) run_command(exe_file) if not os.access(out_file, os.F_OK): sipconfig.error("%s failed to create %s. Make sure your Qt installation is correct." % (exe_file, out_file)) # Read the directories. f = open(out_file, "r") lines = f.read().strip().split("\n") f.close() global qt_dir, qt_incdir, qt_libdir, qt_bindir, qt_datadir, qt_archdatadir global qt_pluginsdir global qt_version, qt_edition, qt_licensee, qt_shared, qt_xfeatures qt_dir = lines[0] qt_incdir = lines[1] qt_libdir = lines[2] qt_bindir = lines[3] qt_datadir = lines[4] qt_archdatadir = lines[5] qt_pluginsdir = lines[6] qt_version = lines[7] qt_edition = lines[8] qt_licensee = lines[9] qt_shared = lines[10] qt_xfeatures = lines[11:] if opts.assume_shared: qt_shared = 'shared' elif qt_shared == 'static': qt_shared = '' # 'Nokia' is the value that is used by Maemo's version of Qt. if qt_licensee in ('Open Source', 'Nokia'): qt_licensee = None try: qt_version = int(qt_version) except ValueError: sipconfig.error("QT_VERSION should be a number but \"%s\" was found." % qt_version) try: qt_edition = int(qt_edition) except ValueError: sipconfig.error("QT_EDITION should be a number but \"%s\" was found." % qt_edition) # Now convert the edition to a descriptive string. The order of testing is # important. if qt_edition & 0x200: # It has ActiveQt. qt_edition = "Desktop" # ActiveQt became part of the open source version in v4.5.2. if qt_version >= 0x040502 and qt_licensee is None: qt_edition = "free" elif qt_edition & 0x008: # It has OpenGL. qt_edition = "free" elif qt_edition & 0x002: # It has GUI. qt_edition = "Desktop Light" else: qt_edition = "Console" if qt_shared: if opts.staticplugins: sipconfig.inform("Static plugins are disabled because Qt has been built as shared libraries.") opts.staticplugins = [] else: if opts.static or opts.bigqt: pass else: sipconfig.error("Qt has been built as static libraries so either the -g or -k argument should be used.") def main(): """Create the configuration module module. """ # Check SIP is new enough. if sipcfg.sip_version < sip_min_version: sipconfig.error("This version of PyQt requires SIP v%s or later" % sipconfig.version_to_string(sip_min_version)) global opts # Parse the command line. p = create_optparser() opts, args = p.parse_args() # Provide defaults for platform-specific options. if sys.platform == 'win32': opts.qmake = find_default_qmake() opts.prot_is_public = False if not opts.qmake: sipconfig.error(MSG_CHECK_QMAKE) # Where the modules will be placed. global pyqt_modroot pyqt_modroot = os.path.join(opts.pyqtmoddir, "PyQt4") # When building static libraries, signed interpreter checking makes no # sense. if opts.vendorcheck and opts.static: sipconfig.error("Using the VendorID package when building static libraries makes no sense.") # Get the details of the Qt installation. get_qt_configuration() # Provide some defaults that are based on the Qt configuration. if not opts.plugindir: opts.plugindir = qt_pluginsdir if opts.qscidir: # An explicit directory implies installing the API file. opts.api = True else: opts.qscidir = os.path.join(qt_datadir, "qsci") if opts.api is None: # Install the API file if the default directory exists. opts.api = os.path.isdir(opts.qscidir) # Replace the existing build macros with the ones from the Qt installation. macros = get_build_macros(args) if macros is None: p.print_help() sys.exit(2) sipcfg.set_build_macros(macros) # Check Qt is what we need. pyqt = check_qt_installation(macros) # Check the licenses are compatible. check_license() # Check which modules to build. pyqt.check_modules() # Check for the VendorID package. check_vendorid() # Set the SIP platform, version and feature flags. sip_flags = set_sip_flags(pyqt) # Tell the user what's been found. inform_user() # Embed the sip flags. sipconfig.inform("Embedding sip flags...") in_f = open(os.path.join(src_dir, "qpy", "QtCore", "qpycore_post_init.cpp.in")) out_f = open(os.path.join(src_dir, "qpy", "QtCore", "qpycore_post_init.cpp"), "wt") for line in in_f: line = line.replace("@@PYQT_SIP_FLAGS@@", sip_flags) out_f.write(line) in_f.close() out_f.close() # Generate the code. pyqt.code() # Create the additional Makefiles. sipconfig.inform("Creating top level Makefile...") installs=[(pyqt.module_installs(), pyqt_modroot)] if opts.api: installs.append(("PyQt4.api", os.path.join(opts.qscidir, "api", "python"))) xtra_modules = ["Qt"] if opts.bigqt: xtra_modules.append("_qt") if opts.mwg_qsci_dir: xtra_modules.append("Qsci") if opts.mwg_qwt_dir: xtra_modules.append("Qwt5") sipconfig.ParentMakefile( configuration=sipcfg, subdirs=pyqt.qpy_libs() + pyqt_modules + xtra_modules + pyqt.tools(), installs=installs ).generate() # Install the configuration module. create_config("pyqtconfig.py", os.path.join(src_dir, "pyqtconfig.py.in"), macros) ############################################################################### # The script starts here. ############################################################################### if __name__ == "__main__": try: main() except SystemExit: raise except: sys.stderr.write( """An internal error occured. Please report all the output from the program, including the following traceback, to support@riverbankcomputing.com. """) raise PyQt-x11-gpl-4.11.4/contrib/0000755000076500000240000000000012536324420015405 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/contrib/lang/0000755000076500000240000000000012536324420016326 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/contrib/lang/lang/0000755000076500000240000000000012536324420017247 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/contrib/lang/lang/cs_cs.qm0000644000076500000240000000065212536324420020703 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ % N²õ i5¬ô Titul[ % JazykN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/cs_cs.ts0000644000076500000240000000065312536324420020715 0ustar philstaff00000000000000 MainWindow Title Titul Text Language Jazyk PyQt-x11-gpl-4.11.4/contrib/lang/lang/da_da.qm0000644000076500000240000000066412536324420020644 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ*i? Tekst¬ô Titel[ % SprogN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/da_da.ts0000644000076500000240000000066012536324420020651 0ustar philstaff00000000000000 MainWindow Title Titel Text Tekst Language Sprog PyQt-x11-gpl-4.11.4/contrib/lang/lang/de_ch.qm0000644000076500000240000000065612536324420020657 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ % N²õ i9¬ô Titel[ %SpracheN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/de_ch.ts0000644000076500000240000000065512536324420020667 0ustar philstaff00000000000000 MainWindow Title Titel Text Language Sprache PyQt-x11-gpl-4.11.4/contrib/lang/lang/de_de.qm0000644000076500000240000000065612536324420020655 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ % N²õ i9¬ô Titel[ %SpracheN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/de_de.ts0000644000076500000240000000065512536324420020665 0ustar philstaff00000000000000 MainWindow Title Titel Text Language Sprache PyQt-x11-gpl-4.11.4/contrib/lang/lang/en_gb.qm0000644000076500000240000000062612536324420020664 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ % N²õi!¬ô[ %N²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/en_gb.ts0000644000076500000240000000064112536324420020672 0ustar philstaff00000000000000 MainWindow Title Text Language PyQt-x11-gpl-4.11.4/contrib/lang/lang/en_us.qm0000644000076500000240000000062612536324420020723 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ % N²õi!¬ô[ %N²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/en_us.ts0000644000076500000240000000064112536324420020731 0ustar philstaff00000000000000 MainWindow Title Text Language PyQt-x11-gpl-4.11.4/contrib/lang/lang/es_es.qm0000644000076500000240000000067012536324420020707 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ,iC Texto¬ô Titulo[ % LenguaN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/es_es.ts0000644000076500000240000000066212536324420020721 0ustar philstaff00000000000000 MainWindow Title Titulo Text Texto Language Lengua PyQt-x11-gpl-4.11.4/contrib/lang/lang/et_et.qm0000644000076500000240000000066412536324420020714 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ,i? Tekst¬ô Tiitel[ %KeelN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/et_et.ts0000644000076500000240000000066012536324420020721 0ustar philstaff00000000000000 MainWindow Title Tiitel Text Tekst Language Keel PyQt-x11-gpl-4.11.4/contrib/lang/lang/fi_fi.qm0000644000076500000240000000067212536324420020667 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ0iE Teksti¬ôOtsikko[ % KieliN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/fi_fi.ts0000644000076500000240000000066312536324420020700 0ustar philstaff00000000000000 MainWindow Title Otsikko Text Teksti Language Kieli PyQt-x11-gpl-4.11.4/contrib/lang/lang/fr_ca.qm0000644000076500000240000000066612536324420020670 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ*iA Texte¬ô Titre[ % LangueN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/fr_ca.ts0000644000076500000240000000066112536324420020674 0ustar philstaff00000000000000 MainWindow Title Titre Text Texte Language Langue PyQt-x11-gpl-4.11.4/contrib/lang/lang/fr_fr.qm0000644000076500000240000000066612536324420020714 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ*iA Texte¬ô Titre[ % LangueN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/fr_fr.ts0000644000076500000240000000066112536324420020720 0ustar philstaff00000000000000 MainWindow Title Titre Text Texte Language Langue PyQt-x11-gpl-4.11.4/contrib/lang/lang/hu_hu.qm0000644000076500000240000000066212536324420020722 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ(i= Szöveg¬ôCím[ % NyelvN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/hu_hu.ts0000644000076500000240000000066112536324420020732 0ustar philstaff00000000000000 MainWindow Title Cím Text Szöveg Language Nyelv PyQt-x11-gpl-4.11.4/contrib/lang/lang/it_it.qm0000644000076500000240000000067012536324420020721 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ,iC Testo¬ô Titolo[ % LinguaN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/it_it.ts0000644000076500000240000000066212536324420020733 0ustar philstaff00000000000000 MainWindow Title Titolo Text Testo Language Lingua PyQt-x11-gpl-4.11.4/contrib/lang/lang/nl_nl.qm0000644000076500000240000000066212536324420020714 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ*i= Tekst¬ô Titel[ %TaalN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/nl_nl.ts0000644000076500000240000000065712536324420020731 0ustar philstaff00000000000000 MainWindow Title Titel Text Tekst Language Taal PyQt-x11-gpl-4.11.4/contrib/lang/lang/no_no.qm0000644000076500000240000000066612536324420020726 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ,iA Tekst¬ô Tittel[ % SpråkN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/no_no.ts0000644000076500000240000000066212536324420020733 0ustar philstaff00000000000000 MainWindow Title Tittel Text Tekst Language SprÃ¥k PyQt-x11-gpl-4.11.4/contrib/lang/lang/pl_pl.qm0000644000076500000240000000066412536324420020722 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ*i? Tekst¬ô Tytul[ % JezykN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/pl_pl.ts0000644000076500000240000000066012536324420020727 0ustar philstaff00000000000000 MainWindow Title Tytul Text Tekst Language Jezyk PyQt-x11-gpl-4.11.4/contrib/lang/lang/pt_pt.qm0000644000076500000240000000067012536324420020737 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ,iC Texto¬ô Título[ % LínguaN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/pt_pt.ts0000644000076500000240000000066412536324420020753 0ustar philstaff00000000000000 MainWindow Title Título Text Texto Language Língua PyQt-x11-gpl-4.11.4/contrib/lang/lang/sv_sv.qm0000644000076500000240000000066212536324420020752 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ(i=Text¬ô Titel[ % SpråkN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/sv_sv.ts0000644000076500000240000000066012536324420020761 0ustar philstaff00000000000000 MainWindow Title Titel Text Text Language SprÃ¥k PyQt-x11-gpl-4.11.4/contrib/lang/lang/tr_tr.qm0000644000076500000240000000066012536324420020742 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝB¬ô[ %N²õ*i; Metin¬ô Ünvan[ %DilN²õ/>— MainWindowPyQt-x11-gpl-4.11.4/contrib/lang/lang/tr_tr.ts0000644000076500000240000000065712536324420020761 0ustar philstaff00000000000000 MainWindow Title Ünvan Text Metin Language Dil PyQt-x11-gpl-4.11.4/contrib/lang/lang.py0000755000076500000240000001232512536324420017627 0ustar philstaff00000000000000#!/usr/bin/env python # switch translations dynamically in a PyQt4 application # # PyQt version by Hans-Peter Jansen # # Based on an example from jpn on July 17 2006 found here: # # http://www.qtcentre.org/wiki/index.php?title=Dynamic_translation_in_Qt4_applications # # Since the original version didn't carry any license, # I've add this one: # # This program is free software. It comes without any warranty, to # the extent permitted by applicable law. You can redistribute it # and/or modify it under the terms of the Do What The Fuck You Want # To Public License, Version 2, as published by Sam Hocevar. See # http://sam.zoy.org/wtfpl/COPYING for more details. import sys import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui from ui_mainwindow import Ui_MainWindow import lang_rc class Application(QtGui.QApplication): translators = {} current = None def __init__(self, argv): super(Application, self).__init__(argv) def loadTranslations(self, folder): if not isinstance(folder, QtCore.QDir): folder = QtCore.QDir(folder) pattern = "*_*.qm" # _.qm filters = QtCore.QDir.Files | QtCore.QDir.Readable sort = QtCore.QDir.SortFlags(QtCore.QDir.Name) for langFile in folder.entryInfoList([pattern], filters, sort): # pick country and language out of the file name language, country = langFile.baseName().split("_", 1) language = language.lower() country = country.upper() locale = language + "_" + country # only load translation, if it does not exist already if not locale in Application.translators: # create and load translator translator = QtCore.QTranslator(self.instance()) if translator.load(langFile.absoluteFilePath()): Application.translators[locale] = translator @staticmethod def availableLanguages(): return sorted(Application.translators.keys()) @staticmethod def setLanguage(locale): #print "Application.setLanguage(%s)" % locale if Application.current: Application.removeTranslator(Application.current) Application.current = Application.translators.get(locale, None) if Application.current is not None: Application.installTranslator(Application.current) class MainWindow(QtGui.QMainWindow): def __init__(self, parent = None, flags = 0): super(MainWindow, self).__init__(parent, QtCore.Qt.WindowFlags(flags)) self.languages = QtGui.QMenu() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.fillLanguages() self.retranslate() def changeEvent(self, event): if event.type() == QtCore.QEvent.LanguageChange: # all designed forms have a retranslateUi() method self.ui.retranslateUi(self) # retranslate other widgets which weren't added in the designer self.retranslate() super(MainWindow, self).changeEvent(event) @QtCore.pyqtSlot(QtGui.QAction) def setLanguage(self, action): Application.setLanguage(action.data()) def fillLanguages(self): self.languages = self.menuBar().addMenu("") # make a group of language actions actions = QtGui.QActionGroup(self) actions.triggered.connect(self.setLanguage) system = QtCore.QLocale.system() default = None for lang in Application.availableLanguages(): # figure out nice names for locales locale = QtCore.QLocale(lang) language = QtCore.QLocale.languageToString(locale.language()) country = QtCore.QLocale.countryToString(locale.country()) name = "%s (%s)" % (language, country) # create an action action = self.languages.addAction(name) action.setData(lang) action.setCheckable(True) if lang == system.name(): # language match the current system action.setChecked(True) Application.setLanguage(lang) default = lang actions.addAction(action) if default is None: # no exact match found, try language only for lang in Application.availableLanguages(): locale = QtCore.QLocale(lang) if locale.language() == system.language(): # at least a language match for action in actions.actions(): if lang == action.data(): # use first entry of this language action.setChecked(True) Application.setLanguage(lang) default = lang break if default is not None: break return default def retranslate(self): self.languages.setTitle(self.tr("Language")) if __name__ == "__main__": app = Application(sys.argv) app.loadTranslations(":/lang") mainWindow = MainWindow() mainWindow.show() app.lastWindowClosed.connect(app.quit) sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/contrib/lang/lang.qrc0000644000076500000240000000252712536324420017764 0ustar philstaff00000000000000 lang/cs_cs.qm lang/cs_cs.ts lang/da_da.qm lang/da_da.ts lang/de_de.qm lang/de_de.ts lang/de_ch.qm lang/de_ch.ts lang/en_gb.qm lang/en_gb.ts lang/en_us.qm lang/en_us.ts lang/es_es.qm lang/es_es.ts lang/et_et.qm lang/et_et.ts lang/fi_fi.qm lang/fi_fi.ts lang/fr_ca.qm lang/fr_ca.ts lang/fr_fr.qm lang/fr_fr.ts lang/hu_hu.qm lang/hu_hu.ts lang/it_it.qm lang/it_it.ts lang/nl_nl.qm lang/nl_nl.ts lang/no_no.qm lang/no_no.ts lang/pl_pl.qm lang/pl_pl.ts lang/pt_pt.qm lang/pt_pt.ts lang/sv_sv.qm lang/sv_sv.ts lang/tr_tr.qm lang/tr_tr.ts PyQt-x11-gpl-4.11.4/contrib/lang/mainwindow.ui0000644000076500000240000000226312536324420021044 0ustar philstaff00000000000000 MainWindow 0 0 412 294 Title 9 6 Text Qt::AlignCenter 0 0 412 21 PyQt-x11-gpl-4.11.4/contrib/lang/Makefile0000644000076500000240000000061712536324420017772 0ustar philstaff00000000000000 PYUIC = pyuic4 PYRCC = pyrcc4 UIFILES = $(wildcard *.ui) PYUIFILES = $(patsubst %.ui,ui_%.py,$(UIFILES)) RESOURCES = $(wildcard *.qrc) PYRESOURCES = $(patsubst %.qrc,%_rc.py,$(RESOURCES)) ui_%.py: %.ui $(PYUIC) -x -o $@ $< %_rc.py: %.qrc $(PYRCC) -o $@ $< all: $(PYUIFILES) $(PYRESOURCES) $(PYUIFILES): $(UIFILES) $(PYRESOURCES): $(RESOURCES) clean: rm -f *~ *_rc.py ui_*.py *.pyc *.pyo PyQt-x11-gpl-4.11.4/contrib/pymodeltest/0000755000076500000240000000000012536324420017756 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/contrib/pymodeltest/LICENSE.GPL0000644000076500000240000004324612536324420021415 0ustar philstaff00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. ------------------------------------------------------------------------- PyQt-x11-gpl-4.11.4/contrib/pymodeltest/modeltest.py0000644000076500000240000005114712536324420022340 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2007 Trolltech ASA. All rights reserved. ## ## This file is part of the Qt Concurrent project on Trolltech Labs. ## ## This file may be used under the terms of the GNU General Public ## License version 2.0 as published by the Free Software Foundation ## and appearing in the file LICENSE.GPL included in the packaging of ## this file. Please review the following information to ensure GNU ## General Public Licensing requirements will be met: ## http://www.trolltech.com/products/qt/opensource.html ## ## If you are unsure which license is appropriate for your use, please ## review the following information: ## http://www.trolltech.com/products/qt/licensing.html or contact the ## sales department at sales@trolltech.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# import sip from PyQt4 import QtCore, QtGui class ModelTest(QtCore.QObject): def __init__(self, _model, parent): """ Connect to all of the models signals, Whenever anything happens recheck everything. """ QtCore.QObject.__init__(self,parent) self._model = _model self.model = sip.cast(_model, QtCore.QAbstractItemModel) self.insert = [] self.remove = [] self.changing = [] self.fetchingMore = False assert(self.model) self.connect(self.model, QtCore.SIGNAL("columnsAboutToBeInserted(const QModelIndex&, int, int)"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("columnsAboutToBeRemoved(const QModelIndex&, int, int)"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("columnsInserted(const QModelIndex&, int, int)"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("columnsRemoved(const QModelIndex&, int, int)"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("dataChanged(const QModelIndex&, const QModelIndex&)"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("headerDataChanged(Qt::Orientation, int, int)"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("layoutAboutToBeChanged()"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("layoutChanged()"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("modelReset()"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("rowsAboutToBeInserted(const QModelIndex&, int, int)"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("rowsAboutToBeRemoved(const QModelIndex&, int, int)"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("rowsInserted(const QModelIndex&, int, int)"), self.runAllTests) self.connect(self.model, QtCore.SIGNAL("rowsRemoved(const QModelIndex&, int, int)"), self.runAllTests) # Special checks for inserting/removing self.connect(self.model, QtCore.SIGNAL("layoutAboutToBeChanged()"), self.layoutAboutToBeChanged ) self.connect(self.model, QtCore.SIGNAL("layoutChanged()"), self.layoutChanged ) self.connect(self.model, QtCore.SIGNAL("rowsAboutToBeInserted(const QModelIndex&, int, int)"), self.rowsAboutToBeInserted) self.connect(self.model, QtCore.SIGNAL("rowsAboutToBeRemoved(const QModelIndex&, int, int)"), self.rowsAboutToBeRemoved) self.connect(self.model, QtCore.SIGNAL("rowsInserted(const QModelIndex&, int, int)"), self.rowsInserted) self.connect(self.model, QtCore.SIGNAL("rowsRemoved(const QModelIndex&, int, int)"), self.rowsRemoved) self.runAllTests() def nonDestructiveBasicTest(self): """ nonDestructiveBasicTest tries to call a number of the basic functions (not all) to make sure the model doesn't outright segfault, testing the functions that makes sense. """ assert(self.model.buddy(QtCore.QModelIndex()) == QtCore.QModelIndex()) self.model.canFetchMore(QtCore.QModelIndex()) assert(self.model.columnCount(QtCore.QModelIndex()) >= 0) assert(self.model.data(QtCore.QModelIndex(), QtCore.Qt.DisplayRole) == QtCore.QVariant()) self.fetchingMore = True self.model.fetchMore(QtCore.QModelIndex()) self.fetchingMore = False flags = self.model.flags(QtCore.QModelIndex()) assert( int(flags & QtCore.Qt.ItemIsEnabled) == QtCore.Qt.ItemIsEnabled or int(flags & QtCore.Qt.ItemIsEnabled ) == 0 ) self.model.hasChildren(QtCore.QModelIndex()) self.model.hasIndex(0,0) self.model.headerData(0,QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole) self.model.index(0,0, QtCore.QModelIndex()) self.model.itemData(QtCore.QModelIndex()) cache = QtCore.QVariant() self.model.match(QtCore.QModelIndex(), -1, cache) self.model.mimeTypes() assert(self.model.parent(QtCore.QModelIndex()) == QtCore.QModelIndex()) assert(self.model.rowCount(QtCore.QModelIndex()) >= 0) variant = QtCore.QVariant() self.model.setData(QtCore.QModelIndex(), variant, -1) self.model.setHeaderData(-1, QtCore.Qt.Horizontal, QtCore.QVariant()) self.model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant()) self.model.setHeaderData(999999, QtCore.Qt.Horizontal, QtCore.QVariant()) self.model.sibling(0,0,QtCore.QModelIndex()) self.model.span(QtCore.QModelIndex()) self.model.supportedDropActions() def rowCount(self): """ Tests self.model's implementation of QtCore.QAbstractItemModel::rowCount() and hasChildren() self.models that are dynamically populated are not as fully tested here. """ # check top row topindex = self.model.index(0,0,QtCore.QModelIndex()) rows = self.model.rowCount(topindex) assert(rows >= 0) if rows > 0: assert(self.model.hasChildren(topindex) == True ) secondlvl = self.model.index(0,0,topindex) if secondlvl.isValid(): # check a row count where parent is valid rows = self.model.rowCount(secondlvl) assert(rows >= 0) if rows > 0: assert(self.model.hasChildren(secondlvl) == True) # The self.models rowCount() is tested more extensively in checkChildren, # but this catches the big mistakes def columnCount(self): """ Tests self.model's implementation of QtCore.QAbstractItemModel::columnCount() and hasChildren() """ # check top row topidx = self.model.index(0,0,QtCore.QModelIndex()) assert(self.model.columnCount(topidx) >= 0) # check a column count where parent is valid childidx = self.model.index(0,0,topidx) if childidx.isValid() : assert(self.model.columnCount(childidx) >= 0) # columnCount() is tested more extensively in checkChildren, # but this catches the big mistakes def hasIndex(self): """ Tests self.model's implementation of QtCore.QAbstractItemModel::hasIndex() """ # Make sure that invalid values returns an invalid index assert(self.model.hasIndex(-2,-2) == False) assert(self.model.hasIndex(-2,0) == False) assert(self.model.hasIndex(0,-2) == False) rows = self.model.rowCount(QtCore.QModelIndex()) cols = self.model.columnCount(QtCore.QModelIndex()) # check out of bounds assert(self.model.hasIndex(rows,cols) == False) assert(self.model.hasIndex(rows+1,cols+1) == False) if rows > 0: assert(self.model.hasIndex(0,0) == True) # hasIndex() is tested more extensively in checkChildren() # but this catches the big mistakes def index(self): """ Tests self.model's implementation of QtCore.QAbstractItemModel::index() """ # Make sure that invalid values returns an invalid index assert(self.model.index(-2,-2, QtCore.QModelIndex()) == QtCore.QModelIndex()) assert(self.model.index(-2,0, QtCore.QModelIndex()) == QtCore.QModelIndex()) assert(self.model.index(0,-2, QtCore.QModelIndex()) == QtCore.QModelIndex()) rows = self.model.rowCount(QtCore.QModelIndex()) cols = self.model.columnCount(QtCore.QModelIndex()) if rows == 0: return # Catch off by one errors assert(self.model.index(rows,cols, QtCore.QModelIndex()) == QtCore.QModelIndex()) assert(self.model.index(0,0, QtCore.QModelIndex()).isValid() == True) # Make sure that the same index is *always* returned a = self.model.index(0,0, QtCore.QModelIndex()) b = self.model.index(0,0, QtCore.QModelIndex()) assert(a==b) # index() is tested more extensively in checkChildren() # but this catches the big mistakes def parent(self): """ Tests self.model's implementation of QtCore.QAbstractItemModel::parent() """ # Make sure the self.model wont crash and will return an invalid QtCore.QModelIndex # when asked for the parent of an invalid index assert(self.model.parent(QtCore.QModelIndex()) == QtCore.QModelIndex()) if self.model.rowCount(QtCore.QModelIndex()) == 0: return; # Column 0 | Column 1 | # QtCore.Qself.modelIndex() | | # \- topidx | topidx1 | # \- childix | childidx1 | # Common error test #1, make sure that a top level index has a parent # that is an invalid QtCore.Qself.modelIndex topidx = self.model.index(0,0,QtCore.QModelIndex()) assert(self.model.parent(topidx) == QtCore.QModelIndex()) # Common error test #2, make sure that a second level index has a parent # that is the first level index if self.model.rowCount(topidx) > 0 : childidx = self.model.index(0,0,topidx) assert(self.model.parent(childidx) == topidx) # Common error test #3, the second column should NOT have the same children # as the first column in a row # Usually the second column shouldn't have children topidx1 = self.model.index(0,1,QtCore.QModelIndex()) if self.model.rowCount(topidx1) > 0: childidx = self.model.index(0,0,topidx) childidx1 = self.model.index(0,0,topidx1) assert(childidx != childidx1) # Full test, walk n levels deep through the self.model making sure that all # parent's children correctly specify their parent self.checkChildren(QtCore.QModelIndex()) def data(self): """ Tests self.model's implementation of QtCore.QAbstractItemModel::data() """ # Invalid index should return an invalid qvariant assert( not self.model.data(QtCore.QModelIndex(), QtCore.Qt.DisplayRole).isValid()) if self.model.rowCount(QtCore.QModelIndex()) == 0: return # A valid index should have a valid QtCore.QVariant data assert( self.model.index(0,0, QtCore.QModelIndex()).isValid()) # shouldn't be able to set data on an invalid index assert( self.model.setData( QtCore.QModelIndex(), QtCore.QVariant("foo"), QtCore.Qt.DisplayRole) == False) # General Purpose roles that should return a QString variant = self.model.data(self.model.index(0,0,QtCore.QModelIndex()), QtCore.Qt.ToolTipRole) if variant.isValid(): assert( variant.canConvert( QtCore.QVariant.String ) ) variant = self.model.data(self.model.index(0,0,QtCore.QModelIndex()), QtCore.Qt.StatusTipRole) if variant.isValid(): assert( variant.canConvert( QtCore.QVariant.String ) ) variant = self.model.data(self.model.index(0,0,QtCore.QModelIndex()), QtCore.Qt.WhatsThisRole) if variant.isValid(): assert( variant.canConvert( QtCore.QVariant.String ) ) # General Purpose roles that should return a QSize variant = self.model.data(self.model.index(0,0,QtCore.QModelIndex()), QtCore.Qt.SizeHintRole) if variant.isValid(): assert( variant.canConvert( QtCore.QVariant.Size ) ) # General Purpose roles that should return a QFont variant = self.model.data(self.model.index(0,0,QtCore.QModelIndex()), QtCore.Qt.FontRole) if variant.isValid(): assert( variant.canConvert( QtCore.QVariant.Font ) ) # Check that the alignment is one we know about variant = self.model.data(self.model.index(0,0,QtCore.QModelIndex()), QtCore.Qt.TextAlignmentRole) if variant.isValid(): alignment = variant.toInt()[0] assert( alignment == (alignment & int(QtCore.Qt.AlignHorizontal_Mask | QtCore.Qt.AlignVertical_Mask))) # General Purpose roles that should return a QColor variant = self.model.data(self.model.index(0,0,QtCore.QModelIndex()), QtCore.Qt.BackgroundColorRole) if variant.isValid(): assert( variant.canConvert( QtCore.QVariant.Color ) ) variant = self.model.data(self.model.index(0,0,QtCore.QModelIndex()), QtCore.Qt.TextColorRole) if variant.isValid(): assert( variant.canConvert( QtCore.QVariant.Color ) ) # Check that the "check state" is one we know about. variant = self.model.data(self.model.index(0,0,QtCore.QModelIndex()), QtCore.Qt.CheckStateRole) if variant.isValid(): state = variant.toInt()[0] assert( state == QtCore.Qt.Unchecked or state == QtCore.Qt.PartiallyChecked or state == QtCore.Qt.Checked ) def runAllTests(self): if self.fetchingMore: return self.nonDestructiveBasicTest() self.rowCount() self.columnCount() self.hasIndex() self.index() self.parent() self.data() def rowsAboutToBeInserted(self, parent, start, end): """ Store what is about to be inserted to make sure it actually happens """ c = {} c['parent'] = parent c['oldSize'] = self.model.rowCount(parent) c['last'] = self.model.data(self.model.index(start-1, 0, parent)) c['next'] = self.model.data(self.model.index(start, 0, parent)) self.insert.append(c) def rowsInserted(self, parent, start, end): """ Confirm that what was said was going to happen actually did """ c = self.insert.pop() assert(c['parent'] == parent) assert(c['oldSize'] + (end - start + 1) == self.model.rowCount(parent)) assert(c['last'] == self.model.data(self.model.index(start-1, 0, c['parent']))) # if c['next'] != self.model.data(self.model.index(end+1, 0, c['parent'])): # qDebug << start << end # for i in range(0, self.model.rowCount(QtCore.QModelIndex())): # qDebug << self.model.index(i, 0).data().toString() # qDebug() << c['next'] << self.model.data(self.model.index(end+1, 0, c['parent'])) assert(c['next'] == self.model.data(self.model.index(end+1, 0, c['parent']))) def rowsAboutToBeRemoved(self, parent, start, end): """ Store what is about to be inserted to make sure it actually happens """ c = {} c['parent'] = parent c['oldSize'] = self.model.rowCount(parent) c['last'] = self.model.data(self.model.index(start-1, 0, parent)) c['next'] = self.model.data(self.model.index(end+1, 0, parent)) self.remove.append(c) def rowsRemoved(self, parent, start, end): """ Confirm that what was said was going to happen actually did """ c = self.remove.pop() assert(c['parent'] == parent) assert(c['oldSize'] - (end - start + 1) == self.model.rowCount(parent)) assert(c['last'] == self.model.data(self.model.index(start-1, 0, c['parent']))) assert(c['next'] == self.model.data(self.model.index(start, 0, c['parent']))) def layoutAboutToBeChanged(self): for i in range(0, max(0, min(self.model.rowCount(), 100))): self.changing.append(QtCore.QPersistentModelIndex(self.model.index(i, 0))) def layoutChanged(self): for c in self.changing: assert(c == self.model.index(c.row(), c.column(), c.parent())) self.changing = [] def checkChildren(self, parent, depth = 0): """ Called from parent() test. A self.model that returns an index of parent X should also return X when asking for the parent of the index This recursive function does pretty extensive testing on the whole self.model in an effort to catch edge cases. This function assumes that rowCount(QtCore.QModelIndex()), columnCount(QtCore.QModelIndex()) and index() already work. If they have a bug it will point it out, but the above tests should have already found the basic bugs because it is easier to figure out the problem in those tests then this one """ # First just try walking back up the tree. p = parent; while p.isValid(): p = p.parent() #For self.models that are dynamically populated if self.model.canFetchMore( parent ): self.fetchingMore = True self.model.fetchMore(parent) self.fetchingMore = False rows = self.model.rowCount(parent) cols = self.model.columnCount(parent) if rows > 0: assert(self.model.hasChildren(parent)) # Some further testing against rows(), columns, and hasChildren() assert( rows >= 0 ) assert( cols >= 0 ) if rows > 0: assert(self.model.hasChildren(parent) == True) # qDebug() << "parent:" << self.model.data(parent).toString() << "rows:" << rows # << "columns:" << cols << "parent column:" << parent.column() assert( self.model.hasIndex( rows+1, 0, parent) == False) for r in range(0,rows): if self.model.canFetchMore(parent): self.fetchingMore = True self.model.fetchMore(parent) self.fetchingMore = False assert(self.model.hasIndex(r,cols+1,parent) == False) for c in range(0,cols): assert(self.model.hasIndex(r,c,parent)) index = self.model.index(r,c,parent) # rowCount(QtCore.QModelIndex()) and columnCount(QtCore.QModelIndex()) said that it existed... assert(index.isValid() == True) # index() should always return the same index when called twice in a row modIdx = self.model.index(r,c,parent) assert(index == modIdx) # Make sure we get the same index if we request it twice in a row a = self.model.index(r,c,parent) b = self.model.index(r,c,parent) assert( a == b ) # Some basic checking on the index that is returned assert( index.model() == self._model ) assert( index.row() == r ) assert( index.column() == c ) # While you can technically return a QtCore.QVariant usually this is a sign # if an bug in data() Disable if this really is ok in your self.model assert( self.model.data(index, QtCore.Qt.DisplayRole).isValid() == True ) #if the next test fails here is some somehwat useful debug you play with # if self.model.parent(index) != parent: # qDebug() << r << c << depth << self.model.data(index).toString() # << self.model.data(parent).toString() # qDebug() << index << parent << self.model.parent(index) # # And a view that you can even use to show the self.model # # view = QtGui.QTreeView() # # view.setself.model(model) # # view.show() # # Check that we can get back our real parent p = self.model.parent( index ) assert( self.model.parent( index ) == parent ) # recursively go down the children if self.model.hasChildren(index) and depth < 10: # qDebug() << r << c << "hasChildren" << self.model.rowCount(index) self.checkChildren(index, ++depth) #else: # if depth >= 10: # qDebug() << "checked 10 deep" # Make sure that after testing the children that the index doesn't change newIdx = self.model.index(r,c,parent) assert(index == newIdx) PyQt-x11-gpl-4.11.4/contrib/pymodeltest/README0000644000076500000240000000255212536324420020642 0ustar philstaff00000000000000ModelTest provides a way to check for common errors in implementations of http://doc.trolltech.com/4/qabstractitemmodel.html. ModelTest continuously checks a model as it changes, helping to verify the state and catching many common errors the moment they show up such as:
  • Verifing X number of rows have been inserted in the correct place after the signal rowsAboutToBeInserted() says X rows will be inserted.
  • The parent of the first index of the first row is a QModelIndex()
  • Calling index() twice in a row with the same values will return the same QModelIndex
  • If rowCount() says there are X number of rows, model test will verify that is true.
  • Many possible off by one bugs
  • hasChildren() returns true if rowCount() is greater then zero.
  • and many more...
--- To Use the model test do the following: 1) Include the modeltest.py file in your project directory 2) Then in your source import "modeltest" and instantiate ModelTest with your model so the test can live for the lifetime of your model. For example: from modeltest import ModelTest self.model = QDirModel(self) self.modeltest = ModelTest(self.model, self); 3) That is it. When the test finds a problem it will throw an AssertionError. modeltest.py contains some hints on how to fix problems that the test finds. PyQt-x11-gpl-4.11.4/contrib/sandbox/0000755000076500000240000000000012536324420017043 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/contrib/sandbox/README0000644000076500000240000000255012536324420017725 0ustar philstaff00000000000000Sandbox ======= Sandbox provides facilities for learning and experimenting with Python, and for creating and editing Python files. It is designed to be easy to learn and use, and to provide a PyQt-based alternative to IDLE. (If you need a full-featured IDE, with support for debugging, we suggest you use eric4 (http://www.die-offenbachs.de/eric/index.html) Sandbox requires Python 2.5 and PyQt 4.2 (or later versions). Installation is easy since Sandbox is supplied as a single Python file. On Unix-like systems you may need to set sandbox.pyw to have execute permission and to put it (or a soft-link to it) in your PATH. For Windows, double-click to start it. You can always create a convenient shortcut to it if you find yourself using it quite often. Sandbox's home page is http://www.qtrac.eu/sandbox.html. Copyright (c) 2007 Mark Summerfield. All rights reserved. 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 3 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 (http://www.gnu.org/licenses/) for more details. PyQt-x11-gpl-4.11.4/contrib/sandbox/sandbox.pyw0000755000076500000240000057326212536324420021264 0ustar philstaff00000000000000#!/usr/bin/env python from __future__ import division from __future__ import with_statement import base64 import os import re import sys from PyQt4.QtCore import (PYQT_VERSION_STR, QByteArray, QDir, QEvent, QFile, QFileInfo, QIODevice, QPoint, QProcess, QRegExp, QSettings, QString, QT_VERSION_STR, QTextStream, QThread, QTimer, QUrl, QVariant, Qt, SIGNAL) from PyQt4.QtGui import (QAction, QApplication, QButtonGroup, QCheckBox, QColor, QColorDialog, QComboBox, QCursor, QDesktopServices, QDialog, QDialogButtonBox, QFileDialog, QFont, QFontComboBox, QFontMetrics, QGridLayout, QHBoxLayout, QIcon, QInputDialog, QKeySequence, QLabel, QLineEdit, QListWidget, QMainWindow, QMessageBox, QPixmap, QPushButton, QRadioButton, QRegExpValidator, QShortcut, QSpinBox, QSplitter, QSyntaxHighlighter, QTabWidget, QTextBrowser, QTextCharFormat, QTextCursor, QTextDocument, QTextEdit, QToolTip, QVBoxLayout, QWidget) __version__ = "0.9.9" __license__ = """\ Copyright (c) 2007-9 Mark Summerfield. All rights reserved. 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, version 2 of the License, or version 3 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.""" MAC = "qt_mac_set_native_menubar" in dir() KEYWORDS = ["and", "as", "assert", "break", "class", "continue", "def", "del", "elif", "else", "except", "exec", "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "not", "or", "pass", "print", "raise", "return", "try", "while", "with", "yield"] BUILTINS = ["abs", "all", "any", "basestring", "bool", "callable", "chr", "classmethod", "cmp", "compile", "complex", "delattr", "dict", "dir", "divmod", "enumerate", "eval", "execfile", "exit", "file", "filter", "float", "frozenset", "getattr", "globals", "hasattr", "hex", "id", "int", "isinstance", "issubclass", "iter", "len", "list", "locals", "long", "map", "max", "min", "object", "oct", "open", "ord", "pow", "property", "range", "reduce", "repr", "reversed", "round", "set", "setattr", "slice", "sorted", "staticmethod", "str", "sum", "super", "tuple", "type", "unichr", "unicode", "vars", "xrange", "zip"] CONSTANTS = ["False", "True", "None", "NotImplemented", "Ellipsis"] MODULES = dict([(key, False) for key in ("array", "bisect", "bsddb", "bz2", "codecs", "collections", "copy", "datetime", "decimal", "functools", "getopt", "gzip", "heapq", "itertools", "math", "optparse", "os", "os.path", "pickle", "cPickle", "random", "re", "string", "StringIO", "cStringIO", "struct", "subprocess", "sys", "tarfile", "time", "unicodedata", "weakref", "zipfile", "QAxContainer", "QtAssistant", "QtCore", "QtDesigner", "QtGui", "QtNetwork", "QtOpenGL", "QtSql", "QtSvg", "QtTest", "QtXml")]) TIMEOUT = 5000 ICONS = {} PIXMAPS = {} Config = {} CAT = {} # Completions And Tooltips MIN_COMPLETION_LEN = 3 MAX_TOOLTIP_LEN = 1000 FROM_IMPORT_RE = re.compile(r"from\s+([\w.]+)\s+import\s+(.*)") WORDS = set() WORD_RE = re.compile(r"[\W+.]") MIN_WORD_LEN = 3 MAX_WORD_LEN = 64 CATABLE_LINE_RE = QRegExp(r"\b(?:import|def|class)\s+") CLASS_OR_DEF_RE = re.compile(r"(class|def) ([^\W(:]+)[:(]") def trimQString(qstr, trimText): while qstr.startsWith(trimText): qstr = qstr.mid(len(trimText)) while qstr.endsWith(trimText): qstr.chop(len(trimText)) return qstr def loadConfig(): def setDefaultString(name, default): value = settings.value(name).toString() if value.isEmpty(): value = default Config[name] = value settings = QSettings() for name in ("window", "shell"): Config["%swidth" % name] = settings.value("%swidth" % name, QVariant(QApplication.desktop() .availableGeometry().width() / 2)).toInt()[0] Config["%sheight" % name] = settings.value("%sheight" % name, QVariant(QApplication.desktop() .availableGeometry().height() / 2)).toInt()[0] Config["%sy" % name] = settings.value("%sy" % name, QVariant(0)).toInt()[0] Config["toolbars"] = settings.value("toolbars").toByteArray() Config["splitter"] = settings.value("splitter").toByteArray() Config["shellx"] = settings.value("shellx", QVariant(0)).toInt()[0] Config["windowx"] = settings.value("windowx", QVariant(QApplication.desktop() .availableGeometry().width() / 2)).toInt()[0] Config["remembergeometry"] = settings.value("remembergeometry", QVariant(True)).toBool() Config["startwithshell"] = settings.value("startwithshell", QVariant(True)).toBool() Config["showwindowinfo"] = settings.value("showwindowinfo", QVariant(True)).toBool() setDefaultString("shellstartup", """\ from __future__ import division import codecs import sys sys.stdin = codecs.getreader("UTF8")(sys.stdin) sys.stdout = codecs.getwriter("UTF8")(sys.stdout)""") setDefaultString("newfile", """\ #!/usr/bin/env python from __future__ import division import sys """) Config["backupsuffix"] = settings.value("backupsuffix", QVariant(".bak")).toString() setDefaultString("beforeinput", "#>>>") setDefaultString("beforeoutput", "#---") Config["cwd"] = settings.value("cwd", QVariant(".")).toString() Config["tooltipsize"] = settings.value("tooltipsize", QVariant(150)).toInt()[0] Config["maxlinestoscan"] = settings.value("maxlinestoscan", QVariant(5000)).toInt()[0] Config["pythondocpath"] = settings.value("pythondocpath", QVariant("http://docs.python.org")).toString() Config["autohidefinddialog"] = settings.value("autohidefinddialog", QVariant(True)).toBool() Config["findcasesensitive"] = settings.value("findcasesensitive", QVariant(False)).toBool() Config["findwholewords"] = settings.value("findwholewords", QVariant(False)).toBool() Config["tabwidth"] = settings.value("tabwidth", QVariant(4)).toInt()[0] Config["fontfamily"] = settings.value("fontfamily", QVariant("Bitstream Vera Sans Mono")).toString() Config["fontsize"] = settings.value("fontsize", QVariant(10)).toInt()[0] for name, color, bold, italic in ( ("normal", "#000000", False, False), ("keyword", "#000080", True, False), ("builtin", "#0000A0", False, False), ("constant", "#0000C0", False, False), ("decorator", "#0000E0", False, False), ("comment", "#007F00", False, True), ("string", "#808000", False, False), ("number", "#924900", False, False), ("error", "#FF0000", False, False), ("pyqt", "#50621A", False, False)): Config["%sfontcolor" % name] = settings.value( "%sfontcolor" % name, QVariant(color)).toString() Config["%sfontbold" % name] = settings.value( "%sfontbold" % name, QVariant(bold)).toBool() Config["%sfontitalic" % name] = settings.value( "%sfontitalic" % name, QVariant(italic)).toBool() def saveConfig(): settings = QSettings() for key, value in Config.items(): settings.setValue(key, QVariant(value)) def checkForCAT(line): # We can't use CAT to keep track of which modules we have processed. # This is because if the user does "import os", one of the names we # will get is "os.path", which then goes into CAT; so if later the # user did "import os.path", the name "os.path" will already be in # CAT (from the "import os") and wouldn't be looked for. So we keep # a separate dictionary of modules that we've done in MODULES. line = line.strip() if line.startswith("import "): line = line[len("import "):] for mname in [mname.strip() for mname in line.split(",")]: if not MODULES.get(mname, False): # We have not done this one _updateCAT(mname) else: match = FROM_IMPORT_RE.match(line) if match: if match.group(1) == "__future__" or not match.group(2): return for name in [x for x in match.group(2).replace(",", " ").split()]: mname = "%s.%s" % (match.group(1), name) if not MODULES.get(mname, False): # We have not done this one _updateCAT(mname) i = mname.rfind(".") while i > -1: mname = mname[:i] if not MODULES.get(mname, False): # We have not done this one _updateCAT(mname) i = mname.rfind(".") else: for word in WORD_RE.split(line): if (not word or len(word) < MIN_WORD_LEN or len(word) > MAX_WORD_LEN or word in CAT or word in WORDS): continue WORDS.add(word) def _updateCAT(mname): try: MODULES[mname] = True CAT.setdefault(mname, {}) WORDS.discard(mname) module = __import__(mname) components = [] if "." in mname: for component in mname.split(".")[1:]: module = getattr(module, component) components.append(component) for aname in dir(module): if aname.startswith("_"): continue fullname = "%s.%s" % (mname, aname) CAT.setdefault(fullname, "") WORDS.discard(fullname) CAT.setdefault(aname, "") WORDS.discard(aname) for component in components: CAT.setdefault("%s.%s" % (component, aname), "") WORDS.discard("%s.%s" % (component, aname)) # PyQt4 classes don't have docstrings if not mname.startswith(("Qt", "PyQt4")): try: tip = eval("sys.modules['%s'].%s.__doc__" % ( mname, aname)) if tip is not None: tip = (tip[:MAX_TOOLTIP_LEN].strip() .replace("\n\n", "

")) CAT[fullname] = tip if CAT[aname] == "": # First one (i.e., builtin) CAT[aname] = tip # wins for component in components: # Last one wins CAT["%s.%s" % (component, aname)] = tip except: pass try: for bname in eval("dir(sys.modules['%s'].%s)" % ( mname, aname)): if bname.startswith("_"): continue cname = "%s.%s" % (fullname, bname) CAT.setdefault(cname, "") WORDS.discard(cname) # PyQt4 classes don't have docstrings if not mname.startswith(("Qt", "PyQt4")): tip = None try: tip = eval( "sys.modules['%s'].%s.%s.__doc__" % ( mname, aname, bname)) except: pass if tip is None: try: tip = eval( "sys.modules['%s'].%s.__doc__" % ( mname, aname)) except: pass if tip is not None: tip = (tip[:MAX_TOOLTIP_LEN].strip() .replace("\n\n", "

")) CAT[cname] = tip except: pass except: pass class HelpForm(QDialog): def __init__(self, parent=None): super(HelpForm, self).__init__(parent) self.setAttribute(Qt.WA_GroupLeader) self.setAttribute(Qt.WA_DeleteOnClose) browser = QTextBrowser() browser.setOpenExternalLinks(True) browser.setHtml( # TODO Improve u"""

This online help provides a brief introduction to Sandbox's completion and Find and Replace dialog, followed by some useful online links, and finishing with a summary of its key bindings. It is well worth pulling down the menus and seeing what options are available since they are almost all self-explanatory.

Word completion is achieved using Ctrl+P or by pressing Tab. A tooltip will appear when you enter (, if one is available. Completion and tooltips are available for Python's built-ins, and also for any module that gets imported, whether as part of the start-up (see the File\N{RIGHTWARDS ARROW}Configure dialog's At Startup tab), or that are imported in the Shell, or that are mentioned in import statements in any files that are opened. (This makes loading a file with lots of imports, or writing an import command in the shell, take a tiny bit longer than it would otherwise do.) The completion also tries to include your own identifiers. Also, classes, methods, and functions are added to the Goto menu. The number of lines that are scanned for completions, tooltips, and for the Goto menu is specified in the File\N{RIGHTWARDS ARROW}Configure dialog's General tab's Max Lines to Scan spinbox.

When you click Find or Replace in the Find and Replace dialog, the action will take place and the dialog will close. You can then do further finds and replaces using Edit\N{RIGHTWARDS ARROW}Find Again or Edit\N{RIGHTWARDS ARROW}Replace Again (or using the keyboard shortcuts shown in the menu). If you prefer to have the Find and Replace dialog visible and use its buttons instead, go to the File\N{RIGHTWARDS ARROW}Configure dialog's General tab, and uncheck Automatically Hide the Find and Replace dialog.

Some useful online documentation links:

Key bindings:

  • \N{UPWARDS ARROW} Move the cursor up one line
  • Ctrl+\N{UPWARDS ARROW} In the shell, copy the previous command from the command history to the input window. In editor windows, move to the previous line in the line history.
  • \N{DOWNWARDS ARROW} Move the cursor down one line
  • Ctrl+\N{DOWNWARDS ARROW} In the shell, copy the next command from the command history to the input window. In editor windows, move to the next line in the line history.
  • \N{LEFTWARDS ARROW} Move the cursor left one character
  • Ctrl+\N{LEFTWARDS ARROW} Move the cursor left one word
  • \N{RIGHTWARDS ARROW} Move the cursor right one character
  • Ctrl+\N{RIGHTWARDS ARROW} Move the cursor right one word
  • Ctrl+] Indent the selected text (or the current line) by %d spaces
  • Ctrl+[ Unindent the selected text (or the current line) by %d spaces
  • Ctrl+A Select all the text
  • Backspace Delete the character to the left of the cursor
  • Ctrl+C Copy the selected text to the clipboard
  • Delete Delete the character to the right of the cursor
  • End Move the cursor to the end of the line
  • Ctrl+End Move the cursor to the end of the file
  • Ctrl+Enter Execute the input window's code, or execute the current file. If executing a file and it is a console application, the output is shown in a separate window which can be closed by pressing Esc. (This is the same as pressing F5.)
  • Ctrl+F Pop up the Find and Replace dialog
  • F3 Find the next occurrence of the find text; if there is none, pop up the Find and Replace dialog.
  • Shift+F3 Find the next occurrence of word at the cursor; the search is case sensitive and whole words only.
  • F5 Execute the input window's code, or execute the current file. If executing a file and it is a console application, the output is shown in a separate window which can be closed by pressing Esc. (This is the same as pressing Ctrl+Enter.)
  • Ctrl+H Launch Python's documentation in a web browser
  • Home Move the cursor to the beginning of the line
  • Ctrl+Home Move the cursor to the beginning of the file
  • Ctrl+K Delete to the end of the line
  • Ctrl+L Pop up the Goto Line dialog
  • Ctrl+M Go to the matching ([{< or >}]). The matcher looks at the character preceding the cursor, and if it is a match character the cursor moves so that the matched character precedes the cursor. If no suitable character is preceding the cursor, but there is a suitable character following the cursor, the cursor will advance one character (so that the match character now precedes it), and works as just described. (In other words the matching is after\N{LEFT RIGHT ARROW}after.)
  • Ctrl+N Open a new editor window
  • Ctrl+O Open a file open dialog to open a Python file
  • Ctrl+Shift+O Open the file at the cursor. This works for import statements since Sandbox is smart enough to look for foo.py if the cursor is on foo. It also works for standard modules, because if foo.py is not found in the current file's directory, sys.path is searched.
  • Ctrl+P and Tab Pop up a list of possible completions for the current word. Use the up and down arrow keys and the page up and page up keys (or the mouse) to navigate; click Enter to accept a completion or Esc to cancel.
  • PageUp Move up one screen
  • PageDown Move down one screen
  • Ctrl+Q Terminate Sandbox; prompting to save any unsaved changes for every editor window for which this is necessary. If the user cancels any save unsaved changes message box, Sandbox will not terminate.
  • Ctrl+R Replace the next occurrence of the find text; if there is none, pop up the Find and Replace dialog.
  • Ctrl+S Save the current file
  • Ctrl+V Paste the clipboard's text
  • Ctrl+W Close the current file; prompting to save any unsaved changes if necessary
  • Ctrl+X Cut the selected text to the clipboard
  • Ctrl+Z Undo the last editing action
  • Ctrl+Shift+Z Redo the last editing action
Hold down Shift when pressing movement keys to select the text moved over.
Press Esc to close this window. """ % (Config["tabwidth"], Config["tabwidth"])) layout = QVBoxLayout() layout.setMargin(0) layout.addWidget(browser) self.setLayout(layout) self.resize(500, 500) QShortcut(QKeySequence("Escape"), self, self.close) self.setWindowTitle("Sandbox - Help") class FindForm(QDialog): def __init__(self, parent=None): super(FindForm, self).__init__(parent) self.findEdit = QComboBox() self.findEdit.setDuplicatesEnabled(False) self.findEdit.setEditable(True) findLabel = QLabel("Find wha&t:") findLabel.setBuddy(self.findEdit) self.replaceEdit = QComboBox() self.replaceEdit.setDuplicatesEnabled(False) self.replaceEdit.setEditable(True) replaceLabel = QLabel("Replace w&ith:") replaceLabel.setBuddy(self.replaceEdit) self.caseSensitiveCheckBox = QCheckBox("&Case sensitive") self.caseSensitiveCheckBox.setChecked(Config["findcasesensitive"]) self.wholeWordsCheckBox = QCheckBox("&Whole words only") self.wholeWordsCheckBox.setChecked(Config["findwholewords"]) buttonBox = QDialogButtonBox() self.findButton = buttonBox.addButton("&Find", QDialogButtonBox.ActionRole) self.replaceButton = buttonBox.addButton("&Replace", QDialogButtonBox.ActionRole) buttonBox.addButton(QDialogButtonBox.Close) if not MAC: self.caseSensitiveCheckBox.setFocusPolicy(Qt.NoFocus) self.wholeWordsCheckBox.setFocusPolicy(Qt.NoFocus) buttonBox.setFocusPolicy(Qt.NoFocus) grid = QGridLayout() grid.addWidget(findLabel, 0, 0) grid.addWidget(self.findEdit, 0, 1) grid.addWidget(replaceLabel, 1, 0) grid.addWidget(self.replaceEdit, 1, 1) layout = QVBoxLayout() layout.addLayout(grid) hbox = QHBoxLayout() hbox.addWidget(self.caseSensitiveCheckBox) hbox.addWidget(self.wholeWordsCheckBox) hbox.addStretch() layout.addLayout(hbox) layout.addWidget(buttonBox) self.setLayout(layout) self.connect(self.findEdit, SIGNAL("editTextChanged(QString)"), self.updateUi) self.connect(self.findButton, SIGNAL("clicked()"), self.findClicked) self.connect(self.replaceButton, SIGNAL("clicked()"), self.replaceClicked) self.connect(buttonBox, SIGNAL("rejected()"), self.reject) self.updateUi() self.setWindowTitle("Sandbox - Find and Replace") def findClicked(self): self.emit(SIGNAL("find"), self.findEdit.currentText(), self.caseSensitiveCheckBox.isChecked(), self.wholeWordsCheckBox.isChecked()) if Config["autohidefinddialog"]: self.hide() def replaceClicked(self): self.emit(SIGNAL("replace"), self.findEdit.currentText(), self.replaceEdit.currentText(), self.caseSensitiveCheckBox.isChecked(), self.wholeWordsCheckBox.isChecked()) if Config["autohidefinddialog"]: self.hide() def updateUi(self): enable = not self.findEdit.currentText().isEmpty() self.findButton.setEnabled(enable) self.replaceButton.setEnabled(enable) class PythonHighlighter(QSyntaxHighlighter): Rules = [] Formats = {} def __init__(self, parent=None): super(PythonHighlighter, self).__init__(parent) self.initializeFormats() PythonHighlighter.Rules.append((QRegExp( "|".join([r"\b%s\b" % keyword for keyword in KEYWORDS])), "keyword")) PythonHighlighter.Rules.append((QRegExp( "|".join([r"\b%s\b" % builtin for builtin in BUILTINS])), "builtin")) PythonHighlighter.Rules.append((QRegExp( "|".join([r"\b%s\b" % constant for constant in CONSTANTS])), "constant")) PythonHighlighter.Rules.append((QRegExp( r"\b[+-]?[0-9]+[lL]?\b" r"|\b[+-]?0[xX][0-9A-Fa-f]+[lL]?\b" r"|\b[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\b"), "number")) PythonHighlighter.Rules.append((QRegExp( r"\bPyQt4\b|\bQt?[A-Z][a-z]\w+\b"), "pyqt")) PythonHighlighter.Rules.append((QRegExp(r"\b@\w+\b"), "decorator")) stringRe = QRegExp(r"""(?:'[^']*'|"[^"]*")""") stringRe.setMinimal(True) PythonHighlighter.Rules.append((stringRe, "string")) self.stringRe = QRegExp(r"""(:?"["]".*"["]"|'''.*''')""") self.stringRe.setMinimal(True) PythonHighlighter.Rules.append((self.stringRe, "string")) self.tripleSingleRe = QRegExp(r"""'''(?!")""") self.tripleDoubleRe = QRegExp(r'''"""(?!')''') @staticmethod def initializeFormats(): baseFormat = QTextCharFormat() baseFormat.setFontFamily(Config["fontfamily"]) baseFormat.setFontPointSize(Config["fontsize"]) for name in ("normal", "keyword", "builtin", "constant", "decorator", "comment", "string", "number", "error", "pyqt"): format = QTextCharFormat(baseFormat) format.setForeground( QColor(Config["%sfontcolor" % name])) if Config["%sfontbold" % name]: format.setFontWeight(QFont.Bold) format.setFontItalic(Config["%sfontitalic" % name]) PythonHighlighter.Formats[name] = format def highlightBlock(self, text): NORMAL, TRIPLESINGLE, TRIPLEDOUBLE, ERROR = range(4) textLength = text.length() prevState = self.previousBlockState() self.setFormat(0, textLength, PythonHighlighter.Formats["normal"]) if text.startsWith("Traceback") or text.startsWith("Error: "): self.setCurrentBlockState(ERROR) self.setFormat(0, textLength, PythonHighlighter.Formats["error"]) return if (prevState == ERROR and not (text.startsWith(sys.ps1) or text.startsWith("#"))): self.setCurrentBlockState(ERROR) self.setFormat(0, textLength, PythonHighlighter.Formats["error"]) return for regex, format in PythonHighlighter.Rules: i = regex.indexIn(text) while i >= 0: length = regex.matchedLength() self.setFormat(i, length, PythonHighlighter.Formats[format]) i = regex.indexIn(text, i + length) # Slow but good quality highlighting for comments. For more # speed, comment this out and add the following to __init__: # PythonHighlighter.Rules.append((QRegExp(r"#.*"), "comment")) if text.isEmpty(): pass elif text[0] == "#": self.setFormat(0, text.length(), PythonHighlighter.Formats["comment"]) else: stack = [] for i, c in enumerate(text): if c in ('"', "'"): if stack and stack[-1] == c: stack.pop() else: stack.append(c) elif c == "#" and len(stack) == 0: self.setFormat(i, text.length(), PythonHighlighter.Formats["comment"]) break self.setCurrentBlockState(NORMAL) if self.stringRe.indexIn(text) != -1: return # This is fooled by triple quotes inside single quoted strings for i, state in ((self.tripleSingleRe.indexIn(text), TRIPLESINGLE), (self.tripleDoubleRe.indexIn(text), TRIPLEDOUBLE)): if self.previousBlockState() == state: if i == -1: i = text.length() self.setCurrentBlockState(state) self.setFormat(0, i + 3, PythonHighlighter.Formats["string"]) elif i > -1: self.setCurrentBlockState(state) self.setFormat(i, text.length(), PythonHighlighter.Formats["string"]) def rehighlight(self): QApplication.setOverrideCursor(QCursor( Qt.WaitCursor)) QSyntaxHighlighter.rehighlight(self) QApplication.restoreOverrideCursor() class TextView(QTextEdit): def __init__(self, parent=None): super(QTextEdit, self).__init__(parent) self.setAcceptRichText(False) font = QFont(Config["fontfamily"], Config["fontsize"]) self.setFont(font) self.textcharformat = QTextCharFormat() self.textcharformat.setFont(font) def currentWord(self, cursor=None): if cursor is None: cursor = self.textCursor() cursor.movePosition(QTextCursor.StartOfWord) cursor.movePosition(QTextCursor.EndOfWord, QTextCursor.KeepAnchor) return cursor.selectedText() def currentLine(self): cursor = self.textCursor() cursor.movePosition(QTextCursor.StartOfLine) cursor.movePosition(QTextCursor.EndOfLine, QTextCursor.KeepAnchor) return cursor.selectedText() def lastNonEmptyLine(self): cursor = self.textCursor() cursor.movePosition(QTextCursor.End) cursor.movePosition(QTextCursor.StartOfLine, QTextCursor.KeepAnchor) if cursor.selectedText().isEmpty(): cursor.movePosition(QTextCursor.PreviousCharacter, QTextCursor.KeepAnchor) cursor.movePosition(QTextCursor.StartOfLine, QTextCursor.KeepAnchor) text = cursor.selectedText() if not text.isEmpty(): while text.endsWith("\n"): text.chop(1) while text.endsWith(u"\u2029"): text.chop(1) return text def lastLine(self): cursor = self.textCursor() cursor.movePosition(QTextCursor.End) cursor.movePosition(QTextCursor.StartOfLine, QTextCursor.KeepAnchor) return cursor.selectedText() class TextEdit(TextView): COMPLETION_X_OFFSET = None def __init__(self, parent=None): super(TextEdit, self).__init__(parent) self.setLineWrapMode(QTextEdit.NoWrap) self.indent = 0 self.completionListWidget = None self.prefix = "" self.classes = set() self.defs = set() if TextEdit.COMPLETION_X_OFFSET is None: TextEdit.COMPLETION_X_OFFSET = QFontMetrics( self.font()).width("x") def checkForClassOrDef(self, line): match = CLASS_OR_DEF_RE.search(line) if match: if not match.group(2).startswith("__"): if match.group(1) == "class": self.classes.add(match.group(2)) else: self.defs.add(match.group(2)) def event(self, event): tabwidth = Config["tabwidth"] tooltipsize = Config["tooltipsize"] indent = " " * tabwidth if event.type() == QEvent.KeyPress: if event.key() == Qt.Key_Backspace: line = self.currentLine() if len(line) >= tabwidth and line.endsWith(indent): userCursor = self.textCursor() for _ in range(tabwidth): userCursor.deletePreviousChar() self.indent = max(0, self.indent - 1) return True elif event.key() == Qt.Key_Tab: if not self.tabChangesFocus(): cursor = self.textCursor() cursor.movePosition( QTextCursor.PreviousCharacter, QTextCursor.KeepAnchor) if cursor.selectedText().trimmed().isEmpty(): cursor = self.textCursor() cursor.insertText(indent) else: self.complete() return True # else leave for base class to handle elif event.key() == Qt.Key_ParenLeft: cursor = self.textCursor() cursor.movePosition(QTextCursor.StartOfLine, QTextCursor.KeepAnchor) name = unicode(cursor.selectedText().section(" ", -1)) tip = CAT.get(name) if tip is not None: rect = self.cursorRect() point = self.mapToGlobal(QPoint(rect.x(), rect.y())) if len(tip) > tooltipsize: tip = tip[:tooltipsize] + " ..." QToolTip.showText(point, tip) elif event.key() in (Qt.Key_Enter, Qt.Key_Return): userCursor = self.textCursor() cursor = QTextCursor(userCursor) cursor.movePosition(QTextCursor.End) insert = "\n" cursor = QTextCursor(userCursor) cursor.movePosition(QTextCursor.StartOfLine) cursor.movePosition(QTextCursor.EndOfLine, QTextCursor.KeepAnchor) line = cursor.selectedText() uline = unicode(line) checkForCAT(uline) self.checkForClassOrDef(uline) if line.endsWith(":") or line.endsWith("\\"): for c in line: if c == " ": insert += " " else: break insert += indent self.indent += 1 elif line.startsWith(indent): for c in line: if c == " ": insert += " " else: break userCursor.insertText(insert) return True elif event.key() in (Qt.Key_Up, Qt.Key_Down, Qt.Key_PageUp, Qt.Key_PageDown): cursor = self.textCursor() cursor.movePosition(QTextCursor.StartOfLine) cursor.movePosition(QTextCursor.EndOfLine, QTextCursor.KeepAnchor) line = cursor.selectedText() checkForCAT(unicode(line)) # Fall through to let the base class handle the movement return QTextEdit.event(self, event) def complete(self): def getWords(prefix): return [word for word in list(CAT.keys() + list(WORDS)) if len(word) >= MIN_COMPLETION_LEN and word.startswith(prefix)] cursor = self.textCursor() cursor.movePosition(QTextCursor.StartOfLine, QTextCursor.KeepAnchor) self.prefix = cursor.selectedText().section(" ", -1) if self.prefix.isEmpty(): return pos = self.prefix.length() - 1 while (self.prefix.at(pos).isLetterOrNumber() or self.prefix[pos] == ".") and pos >= 0: pos -= 1 if pos > 0: self.prefix = self.prefix.mid(pos + 1) if self.prefix.isEmpty(): return words = getWords(self.prefix) while not words and self.prefix.contains("."): self.prefix = self.prefix.mid(self.prefix.indexIn(".") + 1) words = getWords(self.prefix) if not words: return if len(words) > 15: length = len(self.prefix) words = [word for word in words if "." not in word[length:]] firsttime = False if self.completionListWidget is None: self.completionListWidget = QListWidget(self) self.completionListWidget.setWindowFlags(Qt.Popup) QShortcut(QKeySequence("Escape"), self.completionListWidget, self.completionListWidget.close) self.connect(self.completionListWidget, SIGNAL("itemActivated(QListWidgetItem*)"), self.userCompleted) firsttime = True self.completionListWidget.clear() self.completionListWidget.addItems(sorted(words)) self.completionListWidget.setCurrentItem( self.completionListWidget.item(len(words) // 2)) self.completionListWidget.scrollTo( self.completionListWidget.currentIndex(), QListWidget.PositionAtCenter) rect = self.cursorRect() point = self.mapToGlobal(QPoint(rect.x(), rect.y())) if not firsttime: screenRect = (QApplication.desktop() .availableGeometry(self)) xDiff = screenRect.width() - (point.x() + self.completionListWidget.width()) if xDiff < 0: point.setX(point.x() + xDiff) yDiff = screenRect.height() - (point.y() + self.completionListWidget.height()) if yDiff < 0: point.setY(point.y() + yDiff) point.setX(point.x() + TextEdit.COMPLETION_X_OFFSET) self.completionListWidget.move(point) self.completionListWidget.show() def userCompleted(self): extra = (self.completionListWidget.currentItem().text() .mid(len(self.prefix))) if not extra.isEmpty(): cursor = self.textCursor() cursor.insertText(extra) self.completionListWidget.close() def gotoLine(self): cursor = self.textCursor() lino, ok = QInputDialog.getInteger(self, "Sandbox - Goto Line", "Goto line:", cursor.blockNumber() + 1, 1, self.document().blockCount()) if ok: cursor.movePosition(QTextCursor.Start) cursor.movePosition(QTextCursor.Down, QTextCursor.MoveAnchor, lino - 1) self.setTextCursor(cursor) self.ensureCursorVisible() def gotoMatching(self): # move the cursor to the matching ()[]<>{} or do nothing OPEN = "([<{" CLOSE = ")]>}" cursor = self.textCursor() cursor.movePosition(QTextCursor.PreviousCharacter, QTextCursor.KeepAnchor) c = unicode(cursor.selectedText()) if c not in OPEN + CLOSE: cursor = self.textCursor() cursor.movePosition(QTextCursor.NextCharacter, QTextCursor.KeepAnchor) c = unicode(cursor.selectedText()) if c in OPEN + CLOSE: self.setTextCursor(cursor) else: return i = OPEN.find(c) if i > -1: movement = QTextCursor.NextCharacter stack = 0 target = CLOSE[i] else: i = CLOSE.find(c) if i == -1: return movement = QTextCursor.PreviousCharacter stack = -1 target = OPEN[i] cursor = self.textCursor() while (not (movement == QTextCursor.NextCharacter and cursor.atEnd()) and not (movement == QTextCursor.PreviousCharacter and cursor.atStart())): cursor.clearSelection() cursor.movePosition(movement, QTextCursor.KeepAnchor) x = unicode(cursor.selectedText()) if not x: break if x == c: stack += 1 elif x == target: if stack == 0: cursor.clearSelection() if movement == QTextCursor.PreviousCharacter: cursor.movePosition( QTextCursor.NextCharacter) self.setTextCursor(cursor) break else: stack -= 1 def indentRegion(self): self._walkTheLines(True, " " * Config["tabwidth"]) def unindentRegion(self): self._walkTheLines(False, " " * Config["tabwidth"]) def commentRegion(self): self._walkTheLines(True, "# ") def uncommentRegion(self): self._walkTheLines(False, "# ") def _walkTheLines(self, insert, text): userCursor = self.textCursor() userCursor.beginEditBlock() start = userCursor.position() end = userCursor.anchor() if start > end: start, end = end, start block = self.document().findBlock(start) while block.isValid(): cursor = QTextCursor(block) cursor.movePosition(QTextCursor.StartOfBlock) if insert: cursor.insertText(text) else: cursor.movePosition(QTextCursor.NextCharacter, QTextCursor.KeepAnchor, len(text)) if cursor.selectedText() == text: cursor.removeSelectedText() block = block.next() if block.position() > end: break userCursor.endEditBlock() class ShellWidget(QSplitter): # Cannot offer a stop command since sending ^C or Del to the # interpreter does nothing. Alternative would be to use # code.InteractiveInterpreter but I prefer the real thing. def __init__(self, parent=None): super(ShellWidget, self).__init__(Qt.Vertical, parent) self.history = [] self.historyIndex = -1 self.output = TextView() self.output.setUndoRedoEnabled(False) self.output.setReadOnly(True) self.output.setTextInteractionFlags( Qt.TextSelectableByMouse| Qt.TextSelectableByKeyboard) self.connect(self.output, SIGNAL("textChanged()"), self.keepOutputVisible) self.outputHighlighter = PythonHighlighter(self.output.document()) self.input = TextEdit() self.inputHighlighter = PythonHighlighter(self.input.document()) self.addWidget(self.output) self.addWidget(self.input) QWidget.setTabOrder(self.input, self.output) self.process = None self.restartProcess() QShortcut(QKeySequence("F6"), self, self.changeFocus) self.setWindowTitle("Sandbox - Shell") def restartProcess(self): firsttime = False if self.process is not None: self.endProcess() self.output.append("%s RESTARTED %s\n" % ("#" * 20, "#" * 20)) else: firsttime = True self.useSeparators = False self.starting = True self.inTraceback = False self.inError = False self.process = QProcess(self) cwd = Config["cwd"] if not cwd.isEmpty() and cwd != ".": self.process.setWorkingDirectory(cwd) self.process.setProcessChannelMode(QProcess.MergedChannels) self.connect(self.process, SIGNAL("readyRead()"), self.readFromPython) self.process.start(sys.executable, ["-i"]) self.process.waitForStarted() startup = Config.get("shellstartup")[:] if startup is not None: for line in startup.split("\n"): QTimer.singleShot(0, lambda line=line: self.writeToPython(QString(line + "\n"))) QTimer.singleShot(0, lambda line=line: checkForCAT(unicode(line))) QTimer.singleShot(0, lambda firsttime=firsttime: self.setUseSeparators(firsttime=firsttime)) def setUseSeparators(self, on=True, firsttime=False): self.useSeparators = on if firsttime and Config["showwindowinfo"]: self.output.append("# This is the Python output window.") self.output.append("# Enter Python expressions and " "definitions in the input window below, ") self.output.append("# then press F5 (or Ctrl+Enter) to " "execute.") self.output.append(u"""\ # Use Tab or Ctrl+P for completion (which also works in editor windows), # and Ctrl+\u2191 and Ctrl+\u2193 for the command history.\n """) self.outputHighlighter.rehighlight() def endProcess(self): if self.process is not None and self.process.state(): self.process.write(QByteArray("\x04")) self.process.close() self.process.terminate() QThread.msleep(100) if self.process.state(): self.process.kill() self.process = None def changeFocus(self): if self.input.hasFocus(): self.output.setFocus() else: self.input.setFocus() def keepOutputVisible(self): self.output.moveCursor(QTextCursor.End) self.output.ensureCursorVisible() def writeSeparator(self, cursor, separator): if not self.useSeparators: return cursor.movePosition(QTextCursor.End) while True: cursor.movePosition(QTextCursor.PreviousCharacter, QTextCursor.KeepAnchor) if cursor.selectedText() == "\n": cursor.deleteChar() else: break cursor.insertText("\n%s\n" % separator, self.output.textcharformat) def readFromPython(self): beforeoutput = Config["beforeoutput"] beforeinput = Config["beforeinput"] cursor = self.output.textCursor() doneSeparator = False bytes = QByteArray() while self.process.bytesAvailable(): bytes += self.process.readAll() lines = QString.fromUtf8(bytes.data()).split("\n") for line in lines: if line.endsWith(sys.ps1): self.inTraceback = False self.inError = False line = trimQString(line, sys.ps1) line = trimQString(line, sys.ps2) if line.isEmpty(): continue if line.startsWith("Traceback"): self.inTraceback = True if line.startsWith(' File "'): self.inError = True if self.inError: line.replace("", "").prepend("Error: ") if not line.endsWith("\n"): line.append("\n") if (not doneSeparator and not self.starting and not self.inTraceback): self.writeSeparator(cursor, beforeoutput) doneSeparator = True cursor = self.output.textCursor() cursor.movePosition(QTextCursor.End) cursor.insertText(line, self.output.textcharformat) if (not self.inTraceback and self.output.lastNonEmptyLine() != beforeinput): # Gives cleaner output, but it is slow! self.output.setPlainText(self.output.toPlainText().replace( "%s\n%s\n" % (beforeinput, beforeoutput), "")) self.writeSeparator(cursor, beforeinput) def writeToPython(self, text): cursor = self.output.textCursor() cursor.movePosition(QTextCursor.End) cursor.insertText(text, self.output.textcharformat) text.append("\n\n") self.process.write(text.toUtf8()) self.process.waitForBytesWritten(-1) self.input.clear() def execute(self): self.starting = False text = self.input.toPlainText().trimmed() if text.isEmpty(): text = QString("") elif not text.contains("\n"): checkForCAT(unicode(text)) # TODO special case help() if text == "license()": text.prepend("license.MAXLINES = 9999;") else: self.history.append(text) self.historyIndex = len(self.history) text.append("\n") self.writeToPython(text) def undo(self): self.input.undo() def redo(self): self.input.redo() def copy(self): if self.input.hasFocus(): self.input.copy() else: self.output.copy() def cut(self): if self.input.hasFocus(): self.input.cut() else: self.output.cut() def paste(self): if self.input.hasFocus(): self.input.paste() else: self.output.paste() def selectAll(self): if self.input.hasFocus(): self.input.selectAll() else: self.output.selectAll() def complete(self): self.input.complete() def gotoMatching(self): self.input.gotoMatching() def clearOutput(self): self.output.clear() def showPrevious(self): if -1 < self.historyIndex - 1 < len(self.history): self.historyIndex = max(0, self.historyIndex - 1) self.input.setText(self.history[self.historyIndex]) self.input.setFocus() def showNext(self): if -1 < self.historyIndex + 1 < len(self.history): self.historyIndex = min(len(self.history), self.historyIndex + 1) self.input.setText(self.history[self.historyIndex]) elif self.historyIndex+1 == len(self.history): self.historyIndex = len(self.history) self.input.clear() self.input.setFocus() class EditWidget(TextEdit): def __init__(self, parent=None): super(EditWidget, self).__init__(parent) self.highlighter = PythonHighlighter(self.document()) self.findForm = None self.process = None self.results = None self.args = "" self.history = [0] self.historyIndex = 0 self.movingInHistory = False self.connect(self, SIGNAL("cursorPositionChanged()"), self._updateHistory) def _updateHistory(self): if not self.movingInHistory: lino = self.textCursor().blockNumber() if lino != self.history[-1]: self.historyIndex = len(self.history) self.history.append(lino) def gotoPrevious(self): self.movingInHistory = True self.historyIndex = max(0, self.historyIndex - 1) self._gotoHistory() self.movingInHistory = False def gotoNext(self): self.movingInHistory = True self.historyIndex = min(len(self.history) - 1, self.historyIndex + 1) self._gotoHistory() self.movingInHistory = False def _gotoHistory(self): cursor = self.textCursor() cursor.movePosition(QTextCursor.Start) cursor.movePosition(QTextCursor.Down, QTextCursor.MoveAnchor, self.history[self.historyIndex]) self.setTextCursor(cursor) self.ensureCursorVisible() def findText(self): if self.findForm is None: self.findForm = FindForm(self) self.connect(self.findForm, SIGNAL("find"), self.findClicked) self.connect(self.findForm, SIGNAL("replace"), self.replaceClicked) self.findForm.show() self.findForm.activateWindow() self.findForm.raise_() def findClicked(self, findText, caseSensitive, wholeWords): flags = QTextDocument.FindFlags() if caseSensitive: flags |= QTextDocument.FindCaseSensitively if wholeWords: flags |= QTextDocument.FindWholeWords cursor = self.document().find(findText, self.textCursor(), flags) if not cursor.isNull(): self.setTextCursor(cursor) else: self.parent().statusBar().showMessage( "'%s' not found" % findText, TIMEOUT) return cursor def findNext(self): if (self.findForm is None or self.findForm.findEdit.currentText().isEmpty()): self.findText() else: self.findClicked(self.findForm.findEdit.currentText(), self.findForm.caseSensitiveCheckBox.isChecked(), self.findForm.wholeWordsCheckBox.isChecked()) def findWordAt(self): word = self.currentWord() if not word.isEmpty(): self.findClicked(word, True, True) def replaceClicked(self, findText, replaceText, caseSensitive, wholeWords): cursor = self.findClicked(self.findForm.findEdit.currentText(), self.findForm.caseSensitiveCheckBox.isChecked(), self.findForm.wholeWordsCheckBox.isChecked()) if cursor.isNull(): return cursor.beginEditBlock() start = min(cursor.anchor(), cursor.position()) cursor.removeSelectedText() cursor.insertText(replaceText) cursor.setPosition(start) cursor.setPosition(start + replaceText.length(), QTextCursor.KeepAnchor) cursor.endEditBlock() self.setTextCursor(cursor) def replaceNext(self): if (self.findForm is None or self.findForm.findEdit.currentText().isEmpty()): self.findText() else: self.replaceClicked(self.findForm.findEdit.currentText(), self.findForm.replaceEdit.currentText(), self.findForm.caseSensitiveCheckBox.isChecked(), self.findForm.wholeWordsCheckBox.isChecked()) def setArgs(self): args, ok = QInputDialog.getText(self, "Sandbox - Set Arguments", "Command line arguments:", QLineEdit.Normal, self.args) self.args = "" if ok: self.args = unicode(args) def execute(self): filename = self.parent().filename if (self.document().isModified() and (QMessageBox.question(self, "Sandbox - Unsaved Changes", "Save unsaved changes in %s before executing?" % filename, QMessageBox.Yes|QMessageBox.No) == QMessageBox.Yes)): self.parent().fileSave() if self.results is None: self.results = TextView() self.results.setUndoRedoEnabled(False) self.results.setReadOnly(True) self.results.setTextInteractionFlags( Qt.TextSelectableByMouse| Qt.TextSelectableByKeyboard) fm = QFontMetrics(self.font()) # TODO Make the default width & height configurable self.results.resize(fm.width("X") * 80, fm.height() * 25) self.connect(self.results, SIGNAL("textChanged()"), self.keepResultsVisible) QShortcut(QKeySequence("Escape"), self.results, self.results.close) else: self.results.clear() self.results.setWindowTitle("Sandbox - %s %s [Running]" % ( QFileInfo(filename).fileName(), " ".join(self.args.split()))) self.process = QProcess(self) cwd = Config["cwd"] if not cwd.isEmpty() and cwd != ".": self.process.setWorkingDirectory(cwd) self.process.setProcessChannelMode(QProcess.MergedChannels) self.connect(self.process, SIGNAL("readyRead()"), self.readResults) self.process.start(sys.executable, [filename] + self.args.split()) self.process.waitForStarted() def readResults(self): self.results.show() self.results.activateWindow() self.results.raise_() bytes = QByteArray() while self.process.bytesAvailable(): bytes += self.process.readAll() self.results.append(QString.fromUtf8(bytes.data())) def keepResultsVisible(self): self.results.moveCursor(QTextCursor.End) self.results.ensureCursorVisible() def closeEvent(self, event): self.stop() event.accept() def stop(self): if self.process is not None and self.process.state(): self.process.terminate() QThread.msleep(100) if self.process.state(): self.process.kill() self.results.setWindowTitle(self.results.windowTitle().replace( "[Running]", "[Stopped]")) def raiseResultsWindow(self): if self.results is not None: self.results.activateWindow() self.results.raise_() class ConfigForm(QDialog): def __init__(self, parent=None): super(ConfigForm, self).__init__(parent) self.highlightingChanged = False fm = QFontMetrics(self.font()) monofont = QFont(Config["fontfamily"], Config["fontsize"]) pixmap = QPixmap(16, 16) self.colors = {} self.boldCheckBoxes = {} self.italicCheckBoxes = {} self.completionCheckBoxes = {} self.editors = {} generalWidget = QWidget() self.rememberGeometryCheckBox = QCheckBox( "&Remember Geometry") self.rememberGeometryCheckBox.setToolTip("

Check this to make " "Sandbox remember the size and position of the Shell " "window and one Editor window") self.rememberGeometryCheckBox.setChecked( Config["remembergeometry"]) self.editorWindowRadioButton = QRadioButton( "Start With Editor &Window") self.shellWindowRadioButton = QRadioButton( "Start With &Shell Window") startWithButtonGroup = QButtonGroup(self) startWithButtonGroup.setExclusive(True) startWithButtonGroup.addButton(self.editorWindowRadioButton) startWithButtonGroup.addButton(self.shellWindowRadioButton) startwithshell = Config["startwithshell"] self.shellWindowRadioButton.setChecked(startwithshell) self.editorWindowRadioButton.setChecked(not startwithshell) self.autoHideFindDlgCheckBox = QCheckBox( "Automati&cally Hide the Find and Replace dialog") self.autoHideFindDlgCheckBox.setToolTip("

If checked, when you " "press Find or Replace the dialog will be hidden; " "further finds and replaces can be done through the Edit " "menu (which lists the keyboard shortcuts). Uncheck this " "if you prefer the dialog to stay visible and to click " "its buttons") self.autoHideFindDlgCheckBox.setChecked( Config["autohidefinddialog"]) self.backupLineEdit = QLineEdit(Config["backupsuffix"]) self.backupLineEdit.setToolTip("

If nonempty, a backup will be " "kept with the given suffix. If empty, no backup will be " "made.") regex = QRegExp(r"[~.].*") self.backupLineEdit.setValidator(QRegExpValidator(regex, self)) self.backupLineEdit.setFont(monofont) backupLabel = QLabel("&Backup suffix:") backupLabel.setBuddy(self.backupLineEdit) regex = QRegExp(r"#.*") self.inputLineEdit = QLineEdit(Config["beforeinput"]) self.inputLineEdit.setValidator(QRegExpValidator(regex, self)) self.inputLineEdit.setInputMask("\#" + "x" * 40) self.inputLineEdit.setFont(monofont) inputPromptLabel = QLabel("&Input Prompt:") inputPromptLabel.setBuddy(self.inputLineEdit) self.outputLineEdit = QLineEdit(Config["beforeoutput"]) self.outputLineEdit.setValidator(QRegExpValidator(regex, self)) self.outputLineEdit.setInputMask("\#" + "x" * 40) self.outputLineEdit.setFont(monofont) outputPromptLabel = QLabel("&Output Prompt:") outputPromptLabel.setBuddy(self.outputLineEdit) self.cwdLineEdit = QLineEdit(Config["cwd"]) cwdLabel = QLabel("Working &Directory:") cwdLabel.setBuddy(self.cwdLineEdit) self.showWindowInfoCheckBox = QCheckBox( "Show Window Information at Start&up") self.showWindowInfoCheckBox.setToolTip("

Uncheck this to stop " "the `This window shows Python's output' messages") self.showWindowInfoCheckBox.setChecked(Config["showwindowinfo"]) self.toolTipSizeSpinBox = QSpinBox() self.toolTipSizeSpinBox.setAlignment(Qt.AlignVCenter| Qt.AlignRight) self.toolTipSizeSpinBox.setRange(20, MAX_TOOLTIP_LEN) self.toolTipSizeSpinBox.setSuffix(" chars") self.toolTipSizeSpinBox.setValue(Config["tooltipsize"]) tooltipSizeLabel = QLabel("Max. Tooltip &Length:") tooltipSizeLabel.setBuddy(self.toolTipSizeSpinBox) self.maxLinesSizeSpinBox = QSpinBox() self.maxLinesSizeSpinBox.setAlignment(Qt.AlignVCenter| Qt.AlignRight) self.maxLinesSizeSpinBox.setRange(0, 10000) self.maxLinesSizeSpinBox.setSuffix(" lines") self.maxLinesSizeSpinBox.setValue(Config["maxlinestoscan"]) self.maxLinesSizeSpinBox.setToolTip("

The maximum lines to " "scan for function, method, and class names, and for " "imports when a file is loaded. This is used for " "setting up completions and tooltips and for the Goto " "class and Goto def submenus. It can be slow for large " "files.") maxLinesSizeLabel = QLabel("&Max. Lines to Scan:") maxLinesSizeLabel.setBuddy(self.maxLinesSizeSpinBox) self.docPathLineEdit = QLineEdit(Config["pythondocpath"]) self.docPathLineEdit.setToolTip('

Enter your preferred location ' '(web address or path on local hard drive) of Python ' 'documentation to be shown when selecting "Python ' 'Documentation" from the Help menu.') docPathButton = QPushButton("...") docPathButton.setToolTip("Open file dialog to choose path") self.connect(docPathButton, SIGNAL("clicked()"), self.setDocPath) docPathLabel = QLabel("P&ython Documentation:") docPathLabel.setBuddy(self.docPathLineEdit) minWidth = 0 for label in (backupLabel, inputPromptLabel, outputPromptLabel, cwdLabel, tooltipSizeLabel, maxLinesSizeLabel, docPathLabel): minWidth = max(minWidth, fm.width(label.text())) for label in (backupLabel, inputPromptLabel, outputPromptLabel, cwdLabel, tooltipSizeLabel, maxLinesSizeLabel, docPathLabel): label.setMinimumWidth(minWidth) vbox = QVBoxLayout() vbox.addWidget(self.rememberGeometryCheckBox) hbox = QHBoxLayout() hbox.addWidget(self.editorWindowRadioButton) hbox.addWidget(self.shellWindowRadioButton) hbox.addStretch() vbox.addLayout(hbox) vbox.addWidget(self.autoHideFindDlgCheckBox) hbox = QHBoxLayout() hbox.addWidget(backupLabel) hbox.addWidget(self.backupLineEdit) hbox.addStretch() vbox.addLayout(hbox) hbox = QHBoxLayout() hbox.addWidget(inputPromptLabel) hbox.addWidget(self.inputLineEdit) hbox.addStretch() vbox.addLayout(hbox) hbox = QHBoxLayout() hbox.addWidget(outputPromptLabel) hbox.addWidget(self.outputLineEdit) hbox.addStretch() vbox.addLayout(hbox) hbox = QHBoxLayout() hbox.addWidget(cwdLabel) hbox.addWidget(self.cwdLineEdit) vbox.addLayout(hbox) vbox.addWidget(self.showWindowInfoCheckBox) hbox = QHBoxLayout() hbox.addWidget(tooltipSizeLabel) hbox.addWidget(self.toolTipSizeSpinBox) hbox.addStretch() vbox.addLayout(hbox) hbox = QHBoxLayout() hbox.addWidget(maxLinesSizeLabel) hbox.addWidget(self.maxLinesSizeSpinBox) hbox.addStretch() vbox.addLayout(hbox) hbox = QHBoxLayout() hbox.addWidget(docPathLabel) hbox.addWidget(self.docPathLineEdit) hbox.addWidget(docPathButton) vbox.addLayout(hbox) vbox.addStretch() generalWidget.setLayout(vbox) highlightingWidget = QWidget() self.tabWidthSpinBox = QSpinBox() self.tabWidthSpinBox.setAlignment(Qt.AlignVCenter| Qt.AlignRight) self.tabWidthSpinBox.setRange(2, 20) self.tabWidthSpinBox.setSuffix(" spaces") self.tabWidthSpinBox.setValue(Config["tabwidth"]) tabWidthLabel = QLabel("&Tab width:") tabWidthLabel.setBuddy(self.tabWidthSpinBox) self.fontComboBox = QFontComboBox() self.fontComboBox.setCurrentFont(monofont) fontLabel = QLabel("&Font:") fontLabel.setBuddy(self.fontComboBox) self.fontSpinBox = QSpinBox() self.fontSpinBox.setAlignment(Qt.AlignVCenter| Qt.AlignRight) self.fontSpinBox.setRange(6, 20) self.fontSpinBox.setSuffix(" pt") self.fontSpinBox.setValue(Config["fontsize"]) vbox = QVBoxLayout() hbox = QHBoxLayout() hbox.addWidget(tabWidthLabel) hbox.addWidget(self.tabWidthSpinBox) hbox.addStretch() vbox.addLayout(hbox) hbox = QHBoxLayout() hbox.addWidget(fontLabel) hbox.addWidget(self.fontComboBox) hbox.addWidget(self.fontSpinBox) hbox.addStretch() vbox.addLayout(hbox) minWidth = 0 minButtonWidth = 0 count = 1 labels = [] buttons = [] for name, labelText in (("normal", "Normal:"), ("keyword", "Keywords:"), ("builtin", "Builtins:"), ("constant", "Constants:"), ("decorator", "Decorators:"), ("comment", "Comments:"), ("string", "Strings:"), ("number", "Numbers:"), ("error", "Errors:"), ("pyqt", "PyQt:")): label = QLabel(labelText) minWidth = max(minWidth, fm.width(label.text())) labels.append(label) boldCheckBox = QCheckBox("Bold") boldCheckBox.setChecked(Config["%sfontbold" % name]) self.boldCheckBoxes[name] = boldCheckBox italicCheckBox = QCheckBox("Italic") italicCheckBox.setChecked(Config["%sfontitalic" % name]) self.italicCheckBoxes[name] = italicCheckBox self.colors[name] = [Config["%sfontcolor" % name], None] pixmap.fill(QColor(self.colors[name][0])) if count <= 9: colorButton = QPushButton("&%d Color..." % count) count += 1 elif name == "pyqt": colorButton = QPushButton("&Q Color...") else: colorButton = QPushButton("Color...") minButtonWidth = max(minButtonWidth, 10 + pixmap.width() + fm.width(colorButton.text())) buttons.append(colorButton) colorButton.setIcon(QIcon(pixmap)) self.colors[name][1] = colorButton hbox = QHBoxLayout() hbox.addWidget(label) hbox.addWidget(boldCheckBox) hbox.addWidget(italicCheckBox) hbox.addWidget(colorButton) hbox.addStretch() vbox.addLayout(hbox) self.connect(colorButton, SIGNAL("clicked()"), lambda name=name: self.setColor(name)) for label in labels: label.setMinimumWidth(minWidth) for button in buttons: button.setMinimumWidth(minButtonWidth) vbox.addStretch() highlightingWidget.setLayout(vbox) tabWidget = QTabWidget() tabWidget.addTab(generalWidget, "&General") tabWidget.addTab(highlightingWidget, "&Highlighting") for name, label, msg in ( ("newfile", "On &New File", "The text here is automatically " "inserted into new files.
It may be convenient to add " "your standard imports and copyright notice here."), ("shellstartup", "&At Startup", "Sandbox executes the lines above " "whenever the Python interpreter is started.
" "Use them to add convenience, e.g. " "
from math import *; import re; " "etc.
" "Changes made here only take " "effect when Sandbox is next run." "


The codecs and sys imports, " "and the other codecs lines should
not be changed " "unless you are an expert.
")): editor = TextEdit() editor.setPlainText(Config[name]) editor.setTabChangesFocus(True) PythonHighlighter(editor.document()) vbox = QVBoxLayout() vbox.addWidget(editor, 1) vbox.addWidget(QLabel(msg)) widget = QWidget() widget.setLayout(vbox) tabWidget.addTab(widget, label) self.editors[name] = editor buttonBox = QDialogButtonBox(QDialogButtonBox.Ok| QDialogButtonBox.Cancel) layout = QVBoxLayout() layout.addWidget(tabWidget) layout.addWidget(buttonBox) self.setLayout(layout) self.connect(buttonBox, SIGNAL("accepted()"), self.accept) self.connect(buttonBox, SIGNAL("rejected()"), self.reject) self.setWindowTitle("Sandbox - Configure") def updateUi(self): pass # TODO validation, e.g., valid shellstartup, etc. def setDocPath(self): path = QFileDialog.getOpenFileName(self, "Sandbox - Open File", self.docPathLineEdit.text()) if not path.isEmpty(): self.docPathLineEdit.setText(path) def setColor(self, which): color = QColorDialog.getColor( QColor(self.colors[which][0]), self) if color is not None: self.colors[which][0] = color.name() pixmap = QPixmap(16, 16) pixmap.fill(QColor(color.name())) self.colors[which][1].setIcon(QIcon(pixmap)) def accept(self): Config["remembergeometry"] = (self.rememberGeometryCheckBox .isChecked()) Config["showwindowinfo"] = self.showWindowInfoCheckBox.isChecked() Config["startwithshell"] = self.shellWindowRadioButton.isChecked() Config["autohidefinddialog"] = (self.autoHideFindDlgCheckBox .isChecked()) Config["backupsuffix"] = self.backupLineEdit.text() Config["beforeinput"] = self.inputLineEdit.text() Config["beforeoutput"] = self.outputLineEdit.text() Config["cwd"] = self.cwdLineEdit.text() for name in ("shellstartup", "newfile"): Config[name] = unicode(self.editors[name].toPlainText()) Config["tabwidth"] = self.tabWidthSpinBox.value() Config["tooltipsize"] = self.toolTipSizeSpinBox.value() Config["maxlinestoscan"] = self.maxLinesSizeSpinBox.value() Config["pythondocpath"] = self.docPathLineEdit.text() family = self.fontComboBox.currentFont().family() if Config["fontfamily"] != family: self.highlightingChanged = True Config["fontfamily"] = family size = self.fontSpinBox.value() if Config["fontsize"] != size: self.highlightingChanged = True Config["fontsize"] = size for name in ("normal", "keyword", "builtin", "constant", "decorator", "comment", "string", "number", "error", "pyqt"): bold = self.boldCheckBoxes[name].isChecked() if Config["%sfontbold" % name] != bold: self.highlightingChanged = True Config["%sfontbold" % name] = bold italic = self.italicCheckBoxes[name].isChecked() if Config["%sfontitalic" % name] != italic: self.highlightingChanged = True Config["%sfontitalic" % name] = italic color = self.colors[name][0] if Config["%sfontcolor" % name] != color: self.highlightingChanged = True Config["%sfontcolor" % name] = color QDialog.accept(self) class MainWindow(QMainWindow): NextId = 1 Instances = set() Shell = None Toolbars = {} def __init__(self, filename=QString(), isShell=False, parent=None): super(MainWindow, self).__init__(parent) self.setAttribute(Qt.WA_DeleteOnClose) MainWindow.Instances.add(self) self.setWindowTitle("Sandbox[*]") if isShell: self.editor = ShellWidget() MainWindow.Shell = self else: self.editor = EditWidget() self.setCentralWidget(self.editor) fileNewAction = self.createAction("&New File", self.fileNew, QKeySequence.New, "filenew", "Create a Python file") if not isShell: fileNewShellAction = self.createAction("Sh&ell", self.fileNewShell, icon="filenew", tip="Create a new (or go to the existing) Shell") fileOpenAction = self.createAction("&Open...", self.fileOpen, QKeySequence.Open, "fileopen", "Open an existing Python file") # TODO # fileOpenRecentAction = self.createAction("&Open Recent", # self.fileOpenRecent, icon="fileopen", # tip="Open an existing Python file") if not isShell: fileOpenAtAction = self.createAction( "Open &File at Cursor", self.fileOpenAt, "Ctrl+Shift+O", "fileopen", "Open the file whose name is at the cursor position") fileSaveAction = self.createAction("&Save", self.fileSave, QKeySequence.Save, "filesave", "Save the file") fileSaveAsAction = self.createAction("Save &As...", self.fileSaveAs, icon="filesaveas", tip="Save the file using a new filename") fileSaveAllAction = self.createAction("Save A&ll", self.fileSaveAll, icon="filesaveall", tip="Save all the files") fileConfigureAction = self.createAction("Config&ure...", self.fileConfigure, icon="fileconfigure", tip="Configure Sandbox") fileCloseAction = self.createAction("&Close", self.close, QKeySequence.Close, "fileclose", "Close this Python editor") fileQuitAction = self.createAction("&Quit", self.fileQuit, "Ctrl+Q", "filequit", "Close the application") editUndoAction = self.createAction("&Undo", self.editor.undo, QKeySequence.Undo, "editundo", "Undo the last editing action") editRedoAction = self.createAction("&Redo", self.editor.redo, QKeySequence.Redo, "editredo", "Redo the last editing action") editCopyAction = self.createAction("&Copy", self.editor.copy, QKeySequence.Copy, "editcopy", "Copy text to the clipboard") editCutAction = self.createAction("Cu&t", self.editor.cut, QKeySequence.Cut, "editcut", "Cut text to the clipboard") editPasteAction = self.createAction("&Paste", self.editor.paste, QKeySequence.Paste, "editpaste", "Paste in the clipboard's text") editSelectAllAction = self.createAction("Select &All", self.editor.selectAll, QKeySequence.SelectAll, "editselectall", "Select all the editor's text") editCompleteAction = self.createAction("Com&plete", self.editor.complete, "Ctrl+P", "editcomplete", "Complete the word (can also use Tab)") if isShell: editClearOutputAction = self.createAction("Clear &Output", self.editor.clearOutput, icon="editclear", tip="Clear the output text") else: editFindAction = self.createAction("&Find...", self.editor.findText, QKeySequence.Find, "editfind", "Find the given text") editFindNextAction = self.createAction("Find &Next", self.editor.findNext, QKeySequence.FindNext, "editfindnext", "Find the next occurrence of the given text") editFindWordAtAction = self.createAction( "Find &Word at Cursor", self.editor.findWordAt, "Shift+F3", "editfindnext", "Find the next occurrence of the word at the cursor") editReplaceNextAction = self.createAction("R&eplace Next", self.editor.replaceNext, QKeySequence.Replace, "editreplace", "Replace the next occurrence of the given text") editIndentRegionAction = self.createAction("&Indent Region", self.editor.indentRegion, "Ctrl+]", "editindent", "Indent the selected text or the current line") editUnindentRegionAction = self.createAction( "Unin&dent Region", self.editor.unindentRegion, "Ctrl+[", "editunindent", "Unindent the selected text or the current line") editCommentRegionAction = self.createAction("C&omment Region", self.editor.commentRegion, icon="editcomment", tip=("Comment out the selected text or the " "current line")) editUncommentRegionAction = self.createAction( "Uncomment Re&gion", self.editor.uncommentRegion, icon="edituncomment", tip="Uncomment the selected text or the current line") actionRunAction = self.createAction("E&xecute", self.editor.execute, None, "actionrun", "Execute the input window's code or run the current file") actionRunAction.setShortcuts([QKeySequence("F5"), QKeySequence("Ctrl+Enter"), QKeySequence("Ctrl+Return")]) if not isShell: actionSetArgsAction = self.createAction("Set &arguments...", self.editor.setArgs, icon="actionsetargs", tip="Set the command line arguments") actionStopAction = self.createAction("&Stop", self.editor.stop, icon="actionstop", tip="Forcibly stop the application") else: actionRestartAction = self.createAction("Restart &Python", self.editor.restartProcess, icon="actionrestart", tip="Stop the interpreter and start a new one") actionShowPrevAction = self.createAction( "Show Previous Command", self.editor.showPrevious, "Ctrl+Up", "previous", ("Show the previous command ready for editing " "and running")) actionShowNextAction = self.createAction( "Show Next Command", self.editor.showNext, "Ctrl+Down", "next", ("Show the next command ready for editing " "and running")) helpHelpAction = self.createAction("&Help", self.helpHelp, QKeySequence.HelpContents, icon="helphelp", tip="Online help") helpPydocAction = self.createAction("&Python Documentation", self.helpPydoc, "Ctrl+H", "docs", tip="Open Python Documentation in a Web Browser") helpAboutAction = self.createAction("&About", self.helpAbout, icon="icon", tip="About Sandbox") fileMenu = self.menuBar().addMenu("&File") self.addActions(fileMenu, (fileNewAction,)) if not isShell: self.addActions(fileMenu, (fileNewShellAction,)) self.addActions(fileMenu, (fileOpenAction, # fileOpenRecentAction # TODO )) if not isShell: self.addActions(fileMenu, (fileOpenAtAction, fileSaveAction, fileSaveAsAction)) self.addActions(fileMenu, (fileSaveAllAction, None, fileConfigureAction, None, fileCloseAction, fileQuitAction)) editMenu = self.menuBar().addMenu("&Edit") self.addActions(editMenu, (editUndoAction, editRedoAction, None, editCopyAction, editCutAction, editPasteAction, editSelectAllAction, None, editCompleteAction)) if isShell: self.addActions(editMenu, (None, editClearOutputAction,)) else: self.addActions(editMenu, (None, editFindAction, editFindNextAction, editFindWordAtAction, editReplaceNextAction, None, editIndentRegionAction, editUnindentRegionAction, editCommentRegionAction, editUncommentRegionAction)) self.gotoMenu = self.menuBar().addMenu("&Goto") self.connect(self.gotoMenu, SIGNAL("aboutToShow()"), self.updateGotoMenu) actionMenu = self.menuBar().addMenu("&Action") self.addActions(actionMenu, (actionRunAction,)) if not isShell: self.addActions(actionMenu, (actionSetArgsAction, actionStopAction)) else: self.addActions(actionMenu, (actionRestartAction, None, actionShowPrevAction, actionShowNextAction)) viewMenu = self.menuBar().addMenu("&View") self.windowMenu = self.menuBar().addMenu("&Window") self.connect(self.windowMenu, SIGNAL("aboutToShow()"), self.updateWindowMenu) helpMenu = self.menuBar().addMenu("&Help") self.addActions(helpMenu, (helpHelpAction, helpPydocAction, helpAboutAction)) self.fileToolbar = self.addToolBar("File Toolbar") self.fileToolbar.setObjectName("FileToolbar") MainWindow.Toolbars[self.fileToolbar] = None self.addActions(self.fileToolbar, (fileNewAction, fileOpenAction)) if not isShell: self.addActions(self.fileToolbar, (fileSaveAction,)) self.editToolbar = self.addToolBar("Edit Toolbar") self.editToolbar.setObjectName("EditToolbar") MainWindow.Toolbars[self.editToolbar] = None self.addActions(self.editToolbar, (editUndoAction, editRedoAction, None, editCopyAction, editCutAction, editPasteAction)) if not isShell: self.addActions(self.editToolbar, (None, editFindAction, editFindNextAction, editReplaceNextAction, None, editIndentRegionAction, editUnindentRegionAction, editCommentRegionAction, editUncommentRegionAction)) self.actionToolbar = self.addToolBar("Action Toolbar") self.actionToolbar.setObjectName("ActionToolbar") MainWindow.Toolbars[self.actionToolbar] = None self.addActions(self.actionToolbar, (actionRunAction,)) if not isShell: self.addActions(self.actionToolbar, (actionStopAction,)) else: self.addActions(self.actionToolbar, (actionRestartAction, None, actionShowPrevAction, actionShowNextAction)) for toolbar in (self.fileToolbar, self.editToolbar, self.actionToolbar): action = viewMenu.addAction("&%s" % toolbar.windowTitle()) self.connect(action, SIGNAL("toggled(bool)"), self.toggleToolbars) action.setCheckable(True) MainWindow.Toolbars[toolbar] = action self.connect(self, SIGNAL("destroyed(QObject*)"), MainWindow.updateInstances) if not isShell: status = self.statusBar() status.setSizeGripEnabled(False) status.showMessage("Ready", 5000) self.columnCountLabel = QLabel("(empty)") status.addPermanentWidget(self.columnCountLabel) self.lineCountLabel = QLabel("(empty)") status.addPermanentWidget(self.lineCountLabel) self.connect(self.editor, SIGNAL("cursorPositionChanged()"), self.updateIndicators) self.connect(self.editor.document(), SIGNAL("blockCountChanged(int)"), self.updateIndicators) if Config["remembergeometry"]: if isShell: self.resize(Config["shellwidth"], Config["shellheight"]) self.move(Config["shellx"], Config["shelly"]) else: self.resize(Config["windowwidth"], Config["windowheight"]) if int(isShell) + len(MainWindow.Instances) <= 2: self.move(Config["windowx"], Config["windowy"]) self.restoreState(Config["toolbars"]) self.filename = QString(".") if isShell: self.editor.restoreState(Config["splitter"]) self.setWindowTitle("Sandbox - Shell") else: self.filename = filename if self.filename.isEmpty(): self.filename = QString("unnamed%d.py" % MainWindow.NextId) MainWindow.NextId += 1 self.editor.setText(Config["newfile"]) self.editor.moveCursor(QTextCursor.End) self.editor.document().setModified(False) self.setWindowModified(False) self.setWindowTitle("Sandbox - %s[*]" % self.filename) else: self.loadFile() self.connect(self.editor, SIGNAL("textChanged()"), self.updateDirty) self.updateGotoMenu() QTimer.singleShot(0, self.updateToolbars) @staticmethod def updateInstances(qobj): MainWindow.Instances = set([window for window in MainWindow.Instances if isAlive(window)]) if MainWindow.Shell is not None and not isAlive(MainWindow.Shell): MainWindow.Shell = None def createAction(self, text, slot=None, shortcut=None, icon=None, tip=None, checkable=False, signal="triggered()"): action = QAction(text, self) if icon is not None: action.setIcon(getIcon("%s.png" % icon)) if shortcut is not None: action.setShortcut(shortcut) if tip is not None: action.setToolTip(tip) action.setStatusTip(tip) if slot is not None: self.connect(action, SIGNAL(signal), slot) if checkable: action.setCheckable(True) return action def addActions(self, target, actions): for action in actions: if action is None: target.addSeparator() else: target.addAction(action) def updateDirty(self): self.setWindowModified(self.editor.document().isModified()) def updateIndicators(self): lines = self.editor.document().blockCount() cursor = self.editor.textCursor() self.columnCountLabel.setText("Column %d" % ( cursor.columnNumber() + 1)) if lines == 0: text = "(empty)" else: text = "Line %d of %d" % (cursor.blockNumber() + 1, lines) self.lineCountLabel.setText(text) def updateToolbars(self): for toolbar, action in MainWindow.Toolbars.items(): action.setChecked(toolbar.isVisible()) def toggleToolbars(self, on): title = self.sender().text() for toolbar, action in MainWindow.Toolbars.items(): if action.text() == title: toolbar.setVisible(on) action.setChecked(on) def closeEvent(self, event): if self == MainWindow.Shell: self.editor.endProcess() if Config["remembergeometry"]: Config["shellwidth"] = self.width() Config["shellheight"] = self.height() Config["shellx"] = self.x() Config["shelly"] = self.y() Config["splitter"] = self.editor.saveState() else: if self.editor.document().isModified(): reply = QMessageBox.question(self, "Sandbox - Unsaved Changes", "Save unsaved changes in %s" % self.filename, QMessageBox.Save|QMessageBox.Discard| QMessageBox.Cancel) if reply == QMessageBox.Save: self.fileSave() elif reply == QMessageBox.Cancel: event.ignore() return # else accept and discard if Config["remembergeometry"]: Config["windowwidth"] = self.width() Config["windowheight"] = self.height() Config["windowx"] = self.x() Config["windowy"] = self.y() if self.editor.findForm is not None: Config["findcasesensitive"] = (self.editor.findForm .caseSensitiveCheckBox.isChecked()) Config["findwholewords"] = (self.editor.findForm .wholeWordsCheckBox.isChecked()) Config["toolbars"] = self.saveState() del MainWindow.Toolbars[self.fileToolbar] del MainWindow.Toolbars[self.editToolbar] del MainWindow.Toolbars[self.actionToolbar] event.accept() def fileConfigure(self): form = ConfigForm(self) if form.exec_(): # Should only do this if the highlighting was actually # changed since it is computationally expensive. if form.highlightingChanged: font = QFont(Config["fontfamily"], Config["fontsize"]) textcharformat = QTextCharFormat() textcharformat.setFont(font) PythonHighlighter.initializeFormats() for window in MainWindow.Instances: if isAlive(window): if window == MainWindow.Shell: window.editor.input.setFont(font) window.editor.input.textcharformat = ( textcharformat) window.editor.inputHighlighter.rehighlight() window.editor.output.setFont(font) window.editor.output.textcharformat = ( textcharformat) window.editor.outputHighlighter.rehighlight() else: window.statusBar().showMessage( "Rehighlighting...") window.editor.setFont(font) window.editor.textcharformat = textcharformat window.editor.highlighter.rehighlight() window.statusBar().clearMessage() saveConfig() def fileQuit(self): QApplication.closeAllWindows() shell = MainWindow.Shell if shell is not None: shell.editor.endProcess() def fileNew(self): MainWindow().show() def fileNewShell(self): if MainWindow.Shell is not None and isAlive(MainWindow.Shell): MainWindow.Shell.activateWindow() MainWindow.Shell.raise_() else: MainWindow(isShell=True).show() def fileOpen(self): if not self.filename.isEmpty(): path = QFileInfo(self.filename).path() else: path = "." filename = QFileDialog.getOpenFileName(self, "Sandbox - Open File", path, "Python files (*.py *.pyw)\nAny file (*)") if not filename.isEmpty(): # To prevent opening the same file twice for window in MainWindow.Instances: if isAlive(window) and window != MainWindow.Shell: if window.filename == filename: window.activateWindow() window.raise_() return if (MainWindow.Shell != self and not self.editor.document().isModified() and self.filename.startsWith("unnamed")): self.filename = filename self.loadFile() else: MainWindow(filename).show() def loadFile(self): # File loading is slow due to reading CAT data and highlighting, # but mostly due to the former. If you load one PyQt4 app, it # will be slow, but subsequent ones will be quick becaue all the # CAT data will have been gathered already. QApplication.setOverrideCursor(QCursor( Qt.WaitCursor)) fh = None try: try: fh = QFile(self.filename) if not fh.open(QIODevice.ReadOnly): raise IOError, unicode(fh.errorString()) stream = QTextStream(fh) stream.setCodec("UTF-8") text = stream.readAll() self.editor.setPlainText(text) self.editor.document().setModified(False) # Get function, method, and class names for completion; # get imports for CAT. for i, line in enumerate(text.split("\n")): # This is slow! if i >= Config["maxlinestoscan"]: break if CATABLE_LINE_RE.indexIn(line) > -1: uline = unicode(line) checkForCAT(uline) self.editor.checkForClassOrDef(uline) except (IOError, OSError), e: QMessageBox.warning(self, "Sandbox - Load Error", "Failed to load %s: %s" % (self.filename, e)) finally: if fh is not None: fh.close() QApplication.restoreOverrideCursor() self.editor.document().setModified(False) self.setWindowModified(False) self.setWindowTitle("Sandbox - %s[*]" % QFileInfo(self.filename).fileName()) def fileOpenRecent(self): print "fileOpenRecent" # TODO def fileOpenAt(self): filename = self.editor.currentWord() if filename in ("py", "pyw"): cursor = self.editor.textCursor() cursor.movePosition(QTextCursor.PreviousWord) filename = self.editor.currentWord(cursor) + "." + filename if filename.isEmpty(): return filename = unicode(filename) dir = os.path.dirname(unicode(QDir( self.filename).absolutePath())) candidates = [filename, os.path.join(dir, filename)] if not filename.endswith((".py", ".pyw")): filename += ".py" candidates.append(filename) candidates.append(os.path.join(dir, filename)) for path in sys.path: candidates.append(os.path.join(path, filename)) for candidate in candidates: if QFile.exists(candidate): QApplication.setOverrideCursor(QCursor( Qt.WaitCursor)) MainWindow(QString(candidate)).show() QApplication.restoreOverrideCursor() break else: self.statusBar().showMessage("'%s' not found" % filename, TIMEOUT) def fileSave(self): if self.filename.startsWith("unnamed"): return self.fileSaveAs() if (not Config["backupsuffix"].isEmpty() and QFile.exists(self.filename)): backup = self.filename + Config["backupsuffix"] ok = True if QFile.exists(backup): ok = QFile.remove(backup) if not ok: QMessageBox.information(self, "Sandbox - Save Warning", "Failed to remove the old backup %s") if ok: # Must use copy rather than rename to preserve file # permissions; could use rename on Windows though if not QFile.copy(self.filename, backup): QMessageBox.information(self, "Sandbox - Save Warning", "Failed to save a backup %s") fh = None try: try: fh = QFile(self.filename) if not fh.open(QIODevice.WriteOnly): raise IOError, unicode(fh.errorString()) stream = QTextStream(fh) stream.setCodec("UTF-8") stream << self.editor.toPlainText() self.editor.document().setModified(False) self.setWindowModified(False) self.setWindowTitle("Sandbox - %s[*]" % QFileInfo(self.filename).fileName()) self.statusBar().showMessage("Saved %s" % self.filename, TIMEOUT) except (IOError, OSError), e: QMessageBox.warning(self, "Sandbox - Save Error", "Failed to save %s: %s" % (self.filename, e)) finally: if fh is not None: fh.close() return True def fileSaveAs(self): filename = QFileDialog.getSaveFileName(self, "Sandbox - Save File As", self.filename, "Python files (*.py *.pyw)") if not filename.isEmpty(): self.filename = filename return self.fileSave() return False def fileSaveAll(self): count = 0 for window in MainWindow.Instances: if (isAlive(window) and window != MainWindow.Shell and window.editor.document().isModified()): if window.fileSave(): count += 1 self.statusBar().showMessage("Saved %d of %d files" % ( count, len(MainWindow.Instances) - int(MainWindow.Shell is not None)), 5000) def updateGotoMenu(self): self.gotoMenu.clear() isShell = self == MainWindow.Shell self.gotoMenu.addAction(self.createAction("&Matching", self.editor.gotoMatching, "Ctrl+M", "gotomatching", "Move the cursor to the matching parenthesis")) if not isShell: self.gotoMenu.addAction(self.createAction("&Line...", self.editor.gotoLine, "Ctrl+L", "gotoline", "Move the cursor to the given line")) self.gotoMenu.addAction(self.createAction( "&Previous position", self.editor.gotoPrevious, "Ctrl+Up", "previous", "Move the cursor to the " "previous line in the line history")) self.gotoMenu.addAction(self.createAction( "&Next position", self.editor.gotoNext, "Ctrl+Down", "next", "Move the cursor to the " "next line in the line history")) if self.editor.classes or self.editor.defs: self.gotoMenu.addSeparator() if self.editor.classes: i = 1 classMenu = self.gotoMenu.addMenu( getIcon("forward.png"), "&class") for text in sorted(self.editor.classes, key=unicode.lower): action = classMenu.addAction(text, self.gotoClassOrDef) accel = "" if i < 10: accel = "&%d " % i elif i < 36: accel = "&%c " % chr(i + ord("@") - 9) action.setText("%s%s" % (accel, text)) action.setToolTip(text) # Stash class name action.setData(QVariant(0)) action.setIcon(getIcon("forward.png")) i += 1 if self.editor.defs: i = 1 defMenu = self.gotoMenu.addMenu(getIcon("forward.png"), "&def") for text in sorted(self.editor.defs, key=unicode.lower): action = defMenu.addAction(text, self.gotoClassOrDef) accel = "" if i < 10: accel = "&%d " % i elif i < 36: accel = "&%c " % chr(i + ord("@") - 9) action.setText("%s%s" % (accel, text)) action.setToolTip(text) # Stash def name action.setData(QVariant(1)) action.setIcon(getIcon("forward.png")) i += 1 def gotoClassOrDef(self): action = self.sender() if not isinstance(action, QAction): return if action.data().toInt()[0] == 0: text = "class " else: text = "def " text += action.toolTip() # Retrieve class or def name if not self.editor.find(text, QTextDocument.FindCaseSensitively): if not self.editor.find(text, QTextDocument.FindCaseSensitively| QTextDocument.FindBackward): self.statusBar().showMessage("'%s' not found" % text, TIMEOUT) if text.startsWith("def"): self.editor.defs.discard(unicode(action.toolTip())) else: self.editor.classes.discard(unicode(action.toolTip())) def updateWindowMenu(self): self.windowMenu.clear() shell = MainWindow.Shell if shell is not None and isAlive(shell): action = self.windowMenu.addAction("&Shell", self.raiseWindow) action.setData(QVariant(long(id(shell)))) action.setIcon(getIcon("icon.png")) if (hasattr(self.editor, "results") and self.editor.results is not None and self.editor.results.isVisible()): action = self.windowMenu.addAction("&Results", self.editor.raiseResultsWindow) action.setIcon(getIcon("window.png")) i = 1 menu = self.windowMenu for window in MainWindow.Instances: if window != shell and isAlive(window): text = (window.windowTitle().replace("Sandbox - ", "") .replace("[*]", "")) if i == 10: self.windowMenu.addSeparator() menu = menu.addMenu("&More") accel = "" if i < 10: accel = "&%d " % i elif i < 36: accel = "&%c " % chr(i + ord("@") - 9) text = "%s%s" % (accel, text) i += 1 action = menu.addAction(text, self.raiseWindow) action.setData(QVariant(long(id(window)))) action.setIcon(getIcon("window.png")) def raiseWindow(self): action = self.sender() if not isinstance(action, QAction): return windowId = action.data().toLongLong()[0] for window in MainWindow.Instances: if isAlive(window) and id(window) == windowId: window.activateWindow() window.raise_() break def helpHelp(self): HelpForm(self).show() def helpPydoc(self): if not QDesktopServices.openUrl( QUrl(Config["pythondocpath"])): QMessageBox.warning(self, "Sandbox - Error", "Could not start web browser") def helpAbout(self): iconLabel = QLabel() icon = getPixmap("icon.png") iconLabel.setPixmap(icon) nameLabel = QLabel(" " "Sandbox") versionLabel = QLabel("" "Python %s on %s
PyQt %s - Qt %s
" "Sandbox %s
" % ( sys.version[:sys.version.find(" ")], sys.platform, PYQT_VERSION_STR, QT_VERSION_STR, __version__)) aboutLabel = QTextBrowser() aboutLabel.setOpenExternalLinks(True) aboutLabel.setHtml("""\ Sandbox provides facilities for learning and experimenting with Python, and for creating and editing Python files. It is designed to be easy to learn and use, and to provide a PyQt-based alternative to IDLE. (If you need a full-featured IDE, with support for debugging, we suggest you use eric4.)

Sandbox's home is at www.qtrac.eu.

If you want to learn more about Python GUI programming with PyQt (the GUI library used by Sandbox), you might like to buy my book, Rapid GUI Programming with Python and Qt, ISBN: 0132354187.

I hope you find it useful!

--
Mark Summerfield, mark@qtrac.eu""") thanksLabel = QTextBrowser() thanksLabel.setOpenExternalLinks(True) thanksLabel.setHtml("""

  • David Boddie
  • Phil Thompson
  • Shriramana Sharma
  • Benno Dielmann
  • Christophe Kib
  • Gerald Senarclens de Grancy
  • KDE, from whom I got most of the icons
""") licenseLabel = QTextBrowser() licenseLabel.setOpenExternalLinks(True) licenseLabel.setHtml((__license__.replace("\n\n", "

") .replace("(c)", "©"))) changesLabel = QTextBrowser() changesLabel.setOpenExternalLinks(True) changesLabel.setHtml(u"""\

  • 0.9.9 Updated with David Boddie's patch to account for a change in PyQt's behavior
  • 0.9.8 Fixed a bug in the syntax highlighting.
  • 0.9.7 Changed the import style. Fixed a syntax highlighting bug reported by Gerald Senarclens de Grancy.
  • 0.9.6 Minor code tidying up. Now GPL 2 or 3 or later.
  • 0.9.5 No changes; done due to a problem with PyPI.
  • 0.9.4 Added the ability to open the Python Documentation in a web browser: all the relevant code was provided by Benno Dielmann. Also optimized the comment highlighting slightly.
  • 0.9.3 Improved the syntax highlighting for comments at the cost of a little speed.
  • 0.9.2 The input is no longer executed when Enter is pressed on a blank line; this makes it possible to enter blank lines for the sake of neatness. To execute, press F5 or Ctrl+Enter or Ctrl+Return. This change was suggested by Benno Dielmann, who also provided bug fixes for the command history and for the Find dialog's Close button.
  • 0.9.1 Changed to GPL 2 since GPL 3 isn't compatible with the GPL 2 libraries that Sandbox depends on; now any file can be opened with file open.
  • 0.9.0 You can now execute files (and set their command line arguments), and stop them if necessary. The Find dialog now remembers previous find and replace texts.
  • 0.8.1 Removed Todo tab; now keep todos as comments at the end. Improved completion behaviour.
  • 0.8.0 Improved Goto submenus and Window menu and submenu. Implemented Find Word at Cursor.
  • 0.7.2 Changed a couple of default values. Implemented Open File at Cursor.
  • 0.7.1 Fixed subtle bug in Goto class and def regex. If a class or def is not found (i.e., it has been deleted or renamed), it is now removed from the Goto menu.
  • 0.7.0 Implemented Goto menu, including Goto class and Goto def submenus. Fixed subtle bug in Goto Matching.
  • 0.6.3 Added key bindings to online help. Improved Goto Matching and completions. Implemented Ctrl+\N{UPWARDS ARROW} and Ctrl+\N{DOWNWARDS ARROW} to move to the previous and next lines in the line history. Switched off line wrapping for the input window and for editors.
  • 0.6.2 Added Changes tab to the about box. The shell now uses the Python executable in sys.executable, i.e., the Python that was used to run Sandbox. (This is useful for those with multiple Pythons installed.)
""") tabWidget = QTabWidget() tabWidget.addTab(aboutLabel, "&About") tabWidget.addTab(thanksLabel, "&Thanks to") tabWidget.addTab(licenseLabel, "&License") tabWidget.addTab(changesLabel, "&Changes") okButton = QPushButton("OK") layout = QVBoxLayout() hbox = QHBoxLayout() hbox.addWidget(iconLabel) hbox.addWidget(nameLabel) hbox.addStretch() hbox.addWidget(versionLabel) layout.addLayout(hbox) layout.addWidget(tabWidget) hbox = QHBoxLayout() hbox.addStretch() hbox.addWidget(okButton) hbox.addStretch() layout.addLayout(hbox) dialog = QDialog(self) dialog.setLayout(layout) dialog.setMinimumSize( min(self.width(), int(QApplication.desktop().availableGeometry() .width() / 2)), int(QApplication.desktop().availableGeometry() .height() / 2)) self.connect(okButton, SIGNAL("clicked()"), dialog.accept) dialog.setWindowTitle("Sandbox - About") dialog.exec_() ICONS["actionrestart.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgEAYAAAAj6qa3AAAABmJLR0T///////8JWPfcAAAA\ CXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAgAAAAIACH+pydAAAHDElEQVRo3s1ZS2zT\ WBQ9z7HruIlLaWgpLczQgfJRQAjoigISSAiBhIRYjBASLGYxC8QMGzazGLEYaXZsWCOEkJAq\ kECVEKAuKIINUP7iUwqEFsin00/apnU+tvNm8fSw49hJ2gRmjhQl8bNf3jn33nfvuyH4RtC0\ bFbXKZ2cnJ3NZoEvXyYnNQ2YmEilslkgmWTXOfx+SRIEoKFBUSQJaG1tbFQUoK2tqSkQAJYs\ aWhQFEJqvc6aTcgJX7364MHICNDb++RJLAbE41NTmgYYhmGYZvFzlJqmYfBP9hF2PRDw+0UR\ 6O4Oh3/4ATh5cv/+cLh2goi1EuDcuf7+SAS4fPn+/Y8fgbo6n48QoLlZVevqgHg8mUynAUoN\ w255TtSCzyfaVjU3l8kYBtDX9/DhmzdAJPL5cyLBPCmToTQUUlW/f+FCCNUS55a/d29wcHTU\ un7x4vHj3d3ApUsnTuzYAezZs2HD0qWVzOgUxDTtgn34EI2OjwO9vQMDw8PVrr4GAqTTuZxp\ Mouk05bFly8PhYJBQurrZVmSCFm7tq2tsbEU0WIhCj2lEENDw8OxWPUC1CwEOGKx8fFUCvjz\ z56eR48o5cTPn+/vHxyshLg7CMnnTRPI501T11lo6Pr/SIBczjQptb739T179umTFbuAzyfL\ bk+6W5oT/taoWgBFqavz+YBfftm5c+VKQNd1fT4Wvnv3xYvhYeD9+3g8mfS+j1v+uwnAN7fn\ z0dGkklgYCASSSYBTctkMhnrvrNnb958/br4edPU9Vyu+LrPJwhsPJ8HgEyGCea0uDdhw2Dz\ 5vOGAVCayQwOUgrMzt6543a/JK1aBRCyaNGePcXZokgATvyPP3p6nj4FHjx4925szBq38rb9\ SiH1hWxuC09k2eznzwAwM3PrVqFQdgEpHRk5dYpSoL399GmAEFFUVUKKBPjrr6tXX7ywiJcn\ XC1xZnlK+ctrHm75cigkDvACzDBevgQonZ6+ccMa/ZoG376NxaanKe3vf/UqkZiPBbwWzAkX\ EueEKyfuDlEkhAXR/EDI1FRvr20e/mFg4P17d4tzcMsvLI05UX5TK23xZctCIVVlleXoKEAI\ t7x7yc12JQDQtNFRgNK5ueFhSr8K8OpVNDo97Ua4Urhbev7ES0OSRFEQgL17u7o6OwFCZmev\ Xy9F3Avp9NCQzQPGxpLJmZlSxMu5emlwV/dGaYvLsiT5fMCJE4cOdXcDGze2tDx/DgBfvrx8\ Wbie0gJnsyyL6XosZhMgkZietqe3hW5qoVAwKMvAzp2bNnV0AB0doZDfb43ruiAoCiCKhjE3\ V2qZ+bwgsGOx3w9s3vzTT42NwJIllN6+DRCSSFy8WF54i7As29cB6PrYmE0AdnYrRdzL0iwf\ b9/OjqunTx8+vGEDEAxS+vgxC4VIBAByuUKBy0HXNc3+XdNYRalpzFO5y1caUlwIi48s2wRo\ aAgEFAVIJCYmUim3CXgpWyjE6tXt7c3NFnFVzeXOnGEEotHSC+JZwivtld7UyhF1Wtyal/0e\ K8m+psF161pbA4FChQrTmNMDmOWPHdu1a+1aQFVN88qVUsQ5Yf7uBWce94LT8k4LO787UV+/\ Zo1NgHB4xYqmpvkozdDV1dm5eDEA5HKFm5GTePH1dNpO2KuAcRL2Iu5lcV1n8/B3UWQNl2Aw\ HLYJ0NXV2bl0KSBJhQWGM51Rqut2ZSVJEHilxYgaBnu+HHFZVhS38UpdvpzFOWEOzkNRtmwB\ CPH729sJ+SoAb2Ds27d1648/FhMvFsIZu4LA0ljlmxITohzmWzd4EedYtuznn22rdj7+228H\ DmzZwpqQK1YUTuO2EF3P530+94UzgThRL8JWrV64q/P3SmObb25OCAJbX1vb0aMAIU1NO3ZY\ R6+iw1BDQ329LFs3vHsXjU5MUBqJxOOTk8XTNzYqCjvgplLzq8054ZaWgwcBfmyllBBdBwjJ\ 5cSS3YpylSohjLiirFkDEBIIrFxZfOasuq1MqWGkUpQCicSvvwJWnhZFSWJES29uktTezha8\ aJHbL3BPcNq3vp6Vwh0dv/++8MN01R2hfD6f13VAEJwhUo44B0+bpsm6vOXSV21RdVfYTrCu\ zo1wuXSmae6FFw+N9esvXAAAVd29mwlUWV/gOwkgCILAXL0c5lu4tLQcOcJit7OTEGD58mPH\ 7OOiWNhm/48E4K0lQJI2bwa8Le6EV+HC8c8/166xnl80SikQj/f02MebmrZtq16Amv03aJq5\ 3OQkpYIQj//9NwDMzDx96nZnuRjn6Yy3TTl4OmttZZ5R3eZXcwGcoHR8vK+PUmBqijUrp6aG\ hthYqfa3JYAoNjcDgKoyz2prO3wYIERVw+Ha/Uv8zQRwwvKQbDYeB4Bslu3+PJ/7fMEgAMgy\ K8BkORSyh9i3wb9Lst+5aMY+2QAAAABJRU5ErkJggg==\ """ ICONS["actionrun.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsNAAALDQHtB8AsAAAAB3RJTUUH0woJEyEM9I/X6wAABbpJREFUeNrFl9tvHNUd\ xz9zzs7sru2sL3GT2E6aBAJKGlIcT8sDSSipuAgUiRDxyB0sGon0CeWFJ/oPUIk+ACtC0/JS\ HlraBx4KKC2Iq/AG2wpEiEUJwVknvuza2d2Z2Zk5pw87613bu76pEkf6aqRz+31/v/ndDvzE\ w1jP5qGTo7tBHwU1CAyiVcMdegytxlD+OZuzWUCl02n9fyEwdHL0KeBJ4C7QgAJhgUhUNygX\ QrfxyCeo4C1bv3EG8NPptNoQgaGTowcxxMto9RuEBKsLrB6seJIdqXl+vT0PQNGFDy7txHEr\ 4E2BOwPaB7RD6L5g85c/A24zIsYqWp8BILkNq2MLz9wxwYGbOrh1exsJSyw7MzHt8dk3c3x0\ Eb68ZELpcnUhrPzD5s1ngfl0Oh2sSmBBuIxD6lYePfgjDx3qpbsj1tJaeslVH40XeO2cybXJ\ SQiKoPwxW5+5D5hqtIRsKTzWxo4dfbxwf5F7f9WDGRMEipYIlV6Egd44R/ZCvhhwacoAHW7N\ 6f2/6Gf0n7ZtB5lMRi8jMHTyq4NgvIs0GRgY4PQxza6tCfxAbwgxaXBgV5Lr84orMwD6lpy/\ +9N+8fWViARLbfomhJA6wNNHZki1tVH2lkfSf0bnuPv2zjWH7+NHU1y7YfLd90Wwul5CcR7w\ AV/Wtc88Bfo5kv08dkeefTs78EPdFCcOb+bt/06zpdtsuacRGtjVq/gw2wX+fF9O7Sv0G2Pn\ bduu1F1ZqydBsrV3E3t3tlNyVUsAnDrexxcXiyvua0Sq3eThwTkwTJCJE0AXYAqAod99uRu4\ i8RmfrtnhiCEshe2RG2cOt7HhUvlFfeWvZC5UsD3uTIaCYnNYMjBEe/BfUCi5gNHAbB66E3N\ U3LUmv/vqeN9vPJOji1d5rK1yVmXH2YNPp8YqE9aDjiTYHYeAs7XCAwCbOtUaFik5XpIdCQX\ J6fZYsjnEzsXzVnxJBUAYe0FknUCMkF3skJxHdo3IwHg+oqL15KAiVErVVEwSUHVD0S4B1X/\ BSASpOIVSl6dQHtcrJvEM3+a5dvZnsVZUoNh1EkQawfPMRacsJaSS77FDYcFLB2ur/jqx/iK\ JN54vmd5xWtd8kTdAsol7ySIiXrimSzWdy7VqtU48ocVan+NSFBamIstNBOhe7jgxQl084Kz\ yfKrPDWAuW7hADEBfki1VGs/C6hYlITGMCQlJ8CUsRbVTmxYc7Oh4jhuJSrRXhaJX5Wm/HNI\ CZUZhOhbdwSsprls5F6Zib75DEncGIDN2ewIz32CM3WnafQSk60vyzvmqsK7k37Ts0EIOFOg\ gnE7+e/LgFOzt0IFbyG4c74wzc0D7S0JdCccIAXAE6/Mc1P32i2VnShV/39QfA9JCXAkQCaT\ 4diQMZ4T9j2BV9ze252iKxmSiDXHA3Ybv399uuV6MzieInf1SlV7469/BK4BhUaP8wnd08jk\ h9nLExz+5c8wZfOu+sWzV9kUX7vmfmiQvTwVJZPcq8QpAIVF/UAmk9HH7Fgup2/Lh0rcP13w\ 2NNvYZkSUxobhiDg47E8ZdeHSv5l23znAyAHFNLpdLg0tgKbs68ROqdvlCu8P5LH9xziptgQ\ fM/h/ZE8N8qVqnD59t8j0+eBYFlPmMlksG077Gd0NKf3z/lK3vvthIuvBDs2C8yYICZYFYYO\ GPmuzKcXCviBahSeA64DTu3V1DRLDw8PC6BtJHjkbqyulzDkUNwU/HxbG/v7FT09nUi5OBzD\ 0Gd2do4LVwU/TJbxfAUqGMfNvWrH3z0faX4dKDe25S3LREQiAXSP6EefRiZOYMjB2nrSgt7O\ qg9PzwU4lYbDKhgnKL5ny7/9K3K26cjsy15HKz7NhoeHjahetANdI96D+zA7DyGsvQhzD1rX\ z2s/S+hlqeQzUZIpAXMRgRIQNHusrulxGlnDjCySjJCI5sRCMqu22i7gRHBXe5z+D3h+SN5D\ x4wyAAAAAElFTkSuQmCC\ """ ICONS["actionsetargs.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAABl0\ RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAASRSURBVFiFtZfNixxFGIeft7q6\ e6Zn52M3LAl4MBjUm5FIbvHjX8gxf4CCB88J4kFB1BWiCJ4UBD2LOehBzNW4iRjIQkSMIWRR\ Me5G153J7Md0Vb0euucrbrI9ktQwXUXRvL/n/b1V1d2iqlRt6WfxKUReFBURBRMMBiMxViwx\ kUZyp9/7qvfK1rtVY9qqN8af2sbJIyc/OH309GJiEgJKwOPwOBxOHB7PhZvfPtN+s/Hl5mv9\ n6rENVUBEBaPHThWr0mNoAGnObnm5DogDwNcyMnDgMMLh2vAo1XDVnZAgaCBQRjgcHgCjnzU\ O/WFF8FVzmkmAAF88LjgGP5KSXIcAV/0ITwcALQAGDvgcerw4qeAvPqHBSD44DUPOU6nHQgS\ yMkLgOCR6htrhhIECMGT+3xKfNSXTnjvKAr2wAEE5z1DB4J48qETMobw6osV++ABIHivuR9M\ ZF/ugOGMlLtgFoD6h+mTrbT50YlHnl1UVJVAoBgpStCgAeX5Qy9EC+lCkntXHj++lHbjq3i6\ vgdz+k7n/bnXRYEAIEgABLRcIOJky/wjL1ujZunsifeee3z+CXzweC2y8BrwweG1DF720w5M\ 7ADxOHEsb10w/rge1ShABBoBkaIRqNVyTlEHjXPpko3Vdh5rH8GFvBT2uBLEh3KraVHbKcHR\ uDwFxHG59wOXNi4hpshaUQTGVxnOCVgFQ9ui/CfrkejIkSHAVMVHfT/c4fz6N6z0V9BIIRIE\ nYIAQaUQH0EAVp3qwA8K8buzLk++Yjwsw1h8bfdPLv69zEp3BWdyiCgDDyXugphwQFFQsKiS\ h3xkswuOMCqDHzsSfHHeq+OX7jUuri9zvX99VNNh1ir3gZDJ0kgJ4GHH7wDsmXXhRuD29jrX\ Nn7m+1sXub17u8g2ogw/IShazhVtCkImylHuVSsKy398x/GDx3Gl/Vv5Fje7N1jt3mS1t8pv\ vV/pu/70BvaTwhNjEfZYfnuuCRSseOGTHz/m3PXPSaMaQT1r22v7nyB6DwjZu/6jOZmEAIsW\ w43djf1Fq0DIvRfhsESjuQBWHOfDZnhKEmne7wQVgBgrVqafNHdDBJC+5BgFI4hR1AhqKM6H\ SFCjmJ7pkct5UVUOvNp6WkUPjZX2yBQOypwsmQU5uBdgalPiOMFsS9691n0DuLyPf7fWz25e\ sQB/vdW9ss/NHDjTOrzXcz6zGZnNqNuMxMZoEOnSvbx+dvPr/WLCjI/jSQBBaCVtWkmLRtwg\ izPSKMUFx42qQWcC8JRPtqJ10g6ddJ5W2qYZN8nijHpUZ8dvzyA/yyvZRGsmLdolQCft0E7b\ NGyDepzRc93qr0P/ByAxCc24SStp0U7bYyeSFlmcEQ2imeLNDFC3GVmc0YgbBcgERDNp4nce\ 1ltx2Wo2pR7VRyBz8RytpFVCdOgnd2YqQfVPM8CIwZqYOIpJTEIa1ahH9cKNpEknnSeLs5kS\ mgVgnZxdgyGSCGvs6B9HBUwjzljrru0Aq1WDyiyf54tn2qdMZF5KbWriKJYkSiS1NZPaVGpx\ zUQmkqu/X/1i7e2Npaox/wWeGylq91mxwAAAAABJRU5ErkJggg==\ """ ICONS["actionstop.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsMAAALDAE/QCLIAAAAB3RJTUUH0woKFhwuX3mztAAABetJREFUeNrFl+9rW+cV\ xz/Pta58rcSKY2uLGzdNUpotdsLk+tJm0JElG+ubwn6UNGWEdW5m0b7YGGMle1MI3R+wMEqh\ RSSZoW/alW0M0rEZkyxds2Wr5cihKTjTNjs4/iXLkipdXelePc9e6EqWbMlOskEPfOFyn3PP\ +T7nOfc858BnLOJ+lOPmkf1KqeMSBoFBiaqzIaYkTJXg8qgZTgAyGo2q/wuBuHnkRWAYOKqU\ QgJ+wPDWbcCmwdc1F/H2eTN8AXCi0ah8IAJx88jjGpyT8NU2pegCdgpBwN9O9uE+Vp8wK4q5\ PHvHL1Ms2iSlZEUIHCUBUbDhlVEz/CvAbkZEbLHrCwC9wOf97cz9YJjthw8R+MIBNMPY8E1x\ 7i6Z63+Hqx+gT0wyo8oAlBC/vWiGR4BsNBp1tyRQdd6uFAeEYO7Udwl9+1v4una0Pst1p53+\ y4fob0VZWFggh8JFTJ03w08Dy/WREK2cB4Bde/ZQGjlNpzn0QBnurKRIXbiIdeXP5FDYiPdH\ zfDzgFUl0Vb/wY2hJx8XQryvK0VfXx/qZ69g7NuLchxyf7tOcWYWXyiEcpxNUdVtf2QPHV86\ jFxOwuwdJOrAo/OLf721u/eOaZpuLBbDt470xbJSHBaC1OlhAsEgqlDAuvUJoZMnAEi++x6B\ gf6Wu26mG3zhFPriErnb03TBa8Ak4ABOLQKxoSdfVPDSbgTpF06xvf8gynGw/5moGQQIHBog\ c+UqWiCwYeetdH3BIHLfXro++JAs8qGB+cX01O7eSdM0S1pVWaKG24Rge+8utn3xINKykJbV\ YLAqoZMnKM7M1nSkZVGcmW2pKy0LfUeQzHe+iS40DHgW6AJ0DeCjoSf2A0d7lCL1tWPgOpTz\ FuW81TLUoZMncJaTlPMWznKyqfOquOkM1r/+TZtS9CiFhhp8ZuJGP2BUc+A4XpH5NBRCWmuO\ k+++19J46OSJTdcB5n56hr7r/1jLESFYUIogPAVMVo9gEEDt2gVSUs7nG7B4cXTTSLSSmbM/\ b3AOEPC3A+BHHAQ6agQMBKXubmQu1xTzr79xXzUgNfIynXN3QdMqqIqmoQsNPzwGGLUVAygF\ OxsSa73cM4mjX6d7+jbd07e9DJcNJLZVLjRRS8JqRfTn8pD9dA3rRNo2qZGXt3S+QeojsG6l\ VohswEinUbq+try4VHus7ebq+OYEro43J1FHJC8EqMrl4as2EzbqK+2raXxuuXld7+xEv/S7\ ezuCViR8PiiVcJTERSQAqVWKEFMATsFCKxWb4p6d15Ood+yr7LVYtL2IqwTgaJX7mssAKSlp\ E9pGjP3h/s58PYkqAZ+PlKzcxGmIAbYG4PVw15aFwNF1nA6jBv50aWvnW5Co2dN1loXARdz8\ ozk4AxSq6SldxNuOkiSzGQo7d9bQSrLDI2Qf3b+G4ZGWulVbyWwGR0lyqDEgDxRqDUkkEml/\ aSJ+BdSX9w0cQnZ31Qx87pfnGgwu//gnLZ210tVSaf5z62NcxM3zZvhHwAwwX/+DOjacAZhL\ JHCNDpzOIE5nkLuvnq0p3X31bO19MzTTdY0O5hIJABZQb1ZSgDTgNLRkkUhE//5E/IcG6hf+\ YJAdx4+ht/n+p8HDKbtkLl+hlM2SRpx7xwz/GpgFlqLRqLO+RLmjZvgtG3GmlM2yOjZOwSmh\ +f0PhIJTYnVsvN75b4BFYBVwN/SEsVgM0zTL8d298cPzixnNKX3Dnp5Gc120h/vQ/P6GX6oV\ XMCKTZK+dg3pOPXO54EloFCdmpq25ZFIRAMCz03Ej3XBaxpqSDM6CDyyBznQz46eHvS2tnWh\ LpNZWUG79QnW7B2kXcBF3FxAvXnJHJz0dr5U3xFvOph4JAxg5/cm4qcNeFZDDa5d7NvwhXoq\ 55ZcASu/do6ImznU2Dvm4O+9ZEt6Yd8wHW06mkUiEeHdF9uArmcmbvQH4Sk/4qAfHpN137uQ\ sFGJNMS8IpMHMh6BPOA2G1bvaTj1oqF7EenwYHjvasXMa7VtoODB3mo4/S+1aA3ojwXs+gAA\ AABJRU5ErkJggg==\ """ ICONS["next.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsNAAALDQHtB8AsAAAAB3RJTUUH0wkJFQIsMmWGIAAABdFJREFUeNrFl1toHGUb\ x39z2kMOm2watE1TqxKlRcU0g72pVuuRr9QjgjeeNWhBvRK9EJSKotgLhXphXVqtCqIUle+i\ 34enSqv1gNk2iUWpBlptuolJdjfb3Z2ZnZn39WJnD8luUlMEB/4w877PM///87yn54V/+VGW\ YjywdfgCkJtA9AP9SFH3DzmCFCMId7/JnjFAJBIJ+Y8IGNg6/ABwP7ARJCBADYEaKRsIG3y7\ 3uUQwnvPlLt2A24ikRBnJWBg6/A6FPVVpLgaVYNQJ4S6CIWjrIrluKI3A0Dehi+Or8ayS+BM\ gT0D0gWkhW8/afLO24DdTIhyhqh3AxBdTqjtHB5aP85lF7ZxcW8LkZDa4DM+7fDdz7Mc/AV+\ PG5A4US5wy99bPLWw0AukUh4ZxRQJdfCELuYu9ed5NYN3cTb9AWzJef96uBolp37DSYnJsDL\ g3BHTLn7RmCqPhPKguR6C6t6z2Xw6hIDF7U3Jd17YKb6fufGZQ396dMuuz9N89VIsSzCt/aZ\ vHMXUKyIUOaSH1kHShLNYOXKVTx9s2B53GhKvu+HLI/ftqL6veOTFJvXdzbY2SXJzv9n+OZo\ vizCmbnZ1Pd+CViJRELOH8i3wIfYGh68yibWolN0ZFPUkwM8ftuKpnZCwr2bYvSdFy8bhjq3\ AXFAB9Bq0ScfAPkI0R7uWZ9h7eo2XF8uiN7ucEO0xyftprYSOL9bcGCsE9zcipRYm+1RRg6b\ plmqzSop7kcxOLe7nTWrbQq2WPKutphPrNXg9v5pPj5kgBa5A8G7gKUDDDz64wXARiLLuLZv\ Bs9vxfP9JQsoOs19XE8ykysh0SCyDKyJ/iFn81ozvC9TycCm8vh00R3LUbDEWe3r8/0m0ja/\ pxW+H19ZawxZYE2A0bEBOFwR0A+wvEMgF4lkqRlI532+H189py0UjlICUENrgGhNgBYhHi2R\ nxfFkZO1ydbf6ywqoOJru4JfJqOAgVI5qoJjSVMBxQDV70MQqU1CNUIsXKLg1AT8OhVl12Nd\ 1e+HXk8vKqIi9li6i4PP1tqv3AaKUhOB3gqOpQCGWr8jFtwQpy2qqCeH8veRk+E5Wal/jqW7\ GsgBvn5uQc1qLQPCJmNF0NXFj/Bdj3Vx1fML988nn3PwVPZdr1BTUC0mfJusEyaVb69i88vu\ kkgWaq8I1tVgGKQL0h0DhBpsQiPlZeTh+NocXPfi2S3JenJDK0NRKNcMAL4zBrhlAcLdD0Bp\ BlVVG3DDS2dPXpn5FVAKTtBSJgnYKkBQwx3CmsJQXKJ6I27Z7i6J/JbtLvFoGZV/GIoL1hQI\ b9SMfnoCsCqrQCC895Auuew08YjVFPftyP0t8vt25Jr657LT5fH38p8BBcDSAJLJJFsGlNGU\ al7vOfne7niMzqhPRG/E/4aK/MdsWZD8iTenm/pZjiB16o9y9Mq7rwGTQLa+HnDx7acAxk6M\ E9Fd2sOlpnhmz6mm5M/sOdXUPqK7jJ0YDyqU1BtANoBbrQeSyaTcYuqplLw04wv1pumsQ19P\ iJChYWhKAw78lGfjZbVS7YX3U03tVDy+GclQtF0oZV41jU++AFJANpFI+POrTM9kz84h/179\ dJFXPh/KcO3l7bS1tTaNePveyep72GiskvP5Al8On6Zoe2Vy7cOPgtRnAG9ORVSZC6Zp+j0M\ D6fkJbOu0G44Nm7jCpVVy1QMXUVXOSMU6TH0W5Fvj2ZxPVFPngL+rNSDC5blg4ODKtAy5N15\ DaHObSjaQNhQOW95C5f0CLq6OtC0ucWq77uk07McPaXy+0QRxxUgvFHs1BtmeN/hIPI/6yvi\ RS8mgYgIEB+Sdz+IFrkDReuv9EdD0N1RHsHpWQ+rVOcsvFG8/Gem9sF/g8k2HaS94Xa06NVs\ cHBQCarXVqBzyNm8FqNjA2poDarRh5Q1f+mO4TtjlDLJYJMpALOBgALgNbus/q3LaZANI8hI\ NEAkaKttZuACNmAFsM90Of0LNloI3rEMYjQAAAAASUVORK5CYII=\ """ ICONS["previous.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsNAAALDQHtB8AsAAAAB3RJTUUH0wkJFQ03P5hTAwAABchJREFUeNrFl1tsHNUZ\ x38zszO768va67gkcRIC1CBHQHE8IkWEhAaJVoqKShESLxBxWyAPvFXlDQTioWofeAgPRKMa\ gpAQKGojHiIEhUDS0DZiHezUahSxyEE468SX3bV3d2Z3Zs7hYWdv3t0Yp0gc6ZPOzLn8/+f/\ fed858BPXJT1dB47OHkjyH0gRoFRpGiYQ04hxRTCPWFyJAUIy7Lkj0Jg7ODkE8DjwF6QgADV\ ADVS6SAc8J3GIV8gvHdM+ddxwLUsS1wTgbGDkztR1NeQ4l5UDYx+MAYwwlG2xZa5c2sGgLwD\ n8xsx3bKUJoHZxGkC0gb3/mDydtvAU47Isoaqx4HILoJo+c6nto1y+039XDL1i4ihtoyZnah\ xL//l+PUefhyRofCxUqDX/67yZtPA8uWZXlrEqiBa2GI3cKjO7/jd7sHifeEOqolV0116lyW\ wyd0Ls/NgZcH4U6ZcvzXwHyjEkpH8FAX27ZuJHFvmbGbe9uCHj25WKs/vHdDS/vSisv4R0t8\ NlWskPDt4yZvPwIUqySUZvCvdoIygaazZcs2XnhAsCmutwU/fibL8w9urn0fOpZm/67+ln5O\ WXL4wwynp/MVEqXFB8zQ0U8B27IsudqRb4IPsRGe3OMQ6wpRLMkWWw0O8PyDmzl+JtvSV0g4\ sC/G8PXxSkej/2UgDoQAtPrqJ54A+SzRIR7blWHH9h5cX7bY6emVFvBq+eVIL+9/vsB1cb1p\ jARuGBScTPWDu7w5LXZkh5Sps6ZplusKSPE4aGwc7GVkezcFR7TYmfP5juCNSpw5n28ZG+vW\ +f1oDhQdtMhDQD+gqwBjz315I7CXyAbuG17E86FY8ptseqa4JngjiemZYm1sruDxTbqIRIPI\ BlC00WRp/w4gUt1X+yr+GWAwtkzBbj4vrmTdHwzeSOLQsTQzC4L/zG6pNxg22HOg9+0GzlZd\ MAqwqU8gaV79tYA3kmgCB4xwtFJRjREgWiegRYhHy+Rt0WTXCl4t/3wJlIbNrqlU4kDVh4FI\ PQjVCLFwmUJJ1KwT+KFj6bb/n3p9qe3/Uy82kyDUDVIqtSCsHkgF12DFpmadQL76Lty27cLS\ AHteWZdAal0B4ZCxI8zlozVbvaI9r1RALiwNXHXW1SSq34oSKOEV6mLULhO+c0+2FMaTzQln\ /5/cWr3XACHBkxqgrosEQEgF16eSqqWbAkQoOISmUDQKtoeuhTpkO/WaA1HX6nXbKQcpupRC\ w62gCfcEmgblRVT1/4v6dkVr5F4OMmg5M0EUJwRgciSV5NkvsOfv1pVBQlrnyTK2viZgPOq2\ /e/5gD0PwjtnRj+6CNhVvQXCeweVu5ezC/x8S3fnySPV7RFrabspvnxVYqnZQsX/Xv5jNAo1\ ApZlyUSC8STPHLBzl+4SG28g3i3XLXVfuNxZuYKCnbtUWb323gdADgIXBMXFd/6IFj2ZujjL\ Pb/4Gbq2PhK9HQi4vkLq4nxwQ0m/QZgskAXcmrcnJibkb81QOi1vy/hC/c1CtsTwkIGha+ia\ 0mIn/5tn7+31q9qr76bb9lPxOD2Voei4UM68ZurHPgHSQNayLH/1nvNMjhxO+gdCK0X+/I9k\ hvvu6KWnp31M/OXo5Vo9rLdu03y+wKeTKxQdrwKuvf834DKQAbymG1GgAqZp+kNMTqblrTlX\ aPdfmHVwhcq2DSp6SCWksqYp0iP5dZF/TWdxPdEIngauVO+DHa/liURCBbqS3sO/wuh/GUUb\ C+sq12/q4tYhwcBAH5rWvB1932VpKcf0JZVv54qUXAHCO4eTfsMMHz8brPxK4434qg+TgEQE\ iCflo0+iRR5C0Uar7VEDBvsqHlzIediN8Se8c3j5j4NozwILgewtr6OrPs0SiYQS5ItuoD9Z\ 2r8DvW83qjGCqg8HKTU4q90UfilFOTMRHDKFYKtlg7rX7rH6gx6ngRp6oEg0sEjwT60dZuAC\ DmAH5qz1OP0eJWjqqRCVduEAAAAASUVORK5CYII=\ """ ICONS["forward.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsNAAALDQHtB8AsAAAAB3RJTUUH0wkJFBQW6TOAcgAABfxJREFUeNrFl11sHFcV\ x3/ztbtjx2vvZmkSO6mT4lYOIZHjgQgREhogVI0iIqpKfWmhH1hgya36UFUIJKQgQEg8FAke\ SldOCaRC7UMLCPUhJUqVtimV6klttylfi5Kmzrrxx+66uzuzOzP38rCz9m69a6cQxJX+Ws2e\ c+f8z7lnzjkX/s9L+TjKw6OTO0AeAjEEDCFFwzvkFFJMIbyzFiczgEin0/KGEBgenXwAuB84\ CBIQoEZAjdUUhAuB27jlPMI/ZcnxE4CXTqfFf0RgeHRyL4r6BFJ8EVWDSA9EkkSiJtviS3x2\ aw6AogtnLvXjuFWozIG7ANIDpEPgPmbxm18DbisiyjpenwDA3Exkw008tG+G3bds4LatHcQi\ 6qo9M/MV/vJugVf+Cm9eMqB0uSYIqi9YPP0tYCmdTvvrElg2rkUhfhv37n2fY/tTJDbobaMl\ P/KqV6bz/OqswQezs+AXQXhTljzxVWCuMRJaW+N6B9u2beGxO4oc/kwSQ1fxBU347qkipyer\ HNwVIRCyCX2pKAcGIVf0uTSngAw2ZeWuT/Uy+QfLsnzbtuUqAsOjb+0F5UU0g76+Ph4/Ktm+\ KYbny1U4/lyZ8bEkx/aZPDpe4HO3aqt0dE1h93aTa0uCKwsA8tast+P1XvXilZAEHz3IpyGA\ +CAPHnCJd+iUK7IlxseSy5vGx5L85HmnpZ6Q8I1DcQZuTtSUIz3HgQSgN0VgeNR+AOS3MXu5\ b1+Onf0b8ALZFltT0Sbmx/aZfO+ZD9nTr6zSlcD2lOBcpge8pS1ZsTPfq0xdsCyruhIBKe4H\ jU2pLgb7Oym5Yk20WuNjSZ76s9dSP95p8PWhAigGaLG7gB7AUAGGv/PmDuAgsY18aWABP4By\ JVgTf3pjsS2JZ15t1i2UfP6VLSPRILYRFG1oonJkJxCrf1eHaueTJBVfouSI6yrNz748zz23\ p1qSeOiXi+zpLfPeosIbM30rwogDziwY3fuBC3UCQwCbuwWSmvcAr/7DWJfE6bcXmxKymQT8\ baFZFomaVAHUyCBgrhDQYiTMKsXQ+7fej7Z88cdZ42NJDvwwTLGwLWkqtTxQgwEEsZUkVGPE\ o1VKFUGpIv5r48sV8Qc140pjodQ7QUoFMPTGklzyInzo+De+57dveepKcRcuOSeGrsr/3fBR\ J+KXVhgsDxOBS74SJVvsIlvs4shPvRtitJ4DALoa5oL0QHoZQOhhEZpC0Sg5Poa2EpQv/1g0\ dLvmqu0Fzee8lnGjoeM4bjVs0ZUMGl7NmvDOomlQXUBVt1yXZ3UC6xlfzvz6qi6EvzkbE1cF\ CGe48zhzGIqHqbeH64HrrW38az/zSJgrqO81FA+cORD+tGWevgw49XgLhH8Klc8v5ef5ZF9n\ W88TMQeAkw/HW8q/+YslErHWezMzpdr5+8WX0CgBjgZg2zZHh5XprGp9xa8Ut6YScXrMgJje\ HndaHasMPPLUfFt9pyLIXr1S81757c+BD4B844zlEbiPo5nnMpdn+MKeT2Bo1/9Jfv/kVbqi\ 7fJFIXN5rvbgZp8kSh7IA95yftq2LY9aejYrP50LhHrHfL7CQG+EiKFhaMoqnHu7yMHdXQD8\ 6HfZljqGpqDi89pUjrLrQTX3hGX8/gyQBfLpdDpoGsksy5K9TE5m5a5CNVAPX5mr0p9S6TCj\ 6JqyCucvljh/sdRSpmsKrlPmzIUCJSc0rj33PDALzANV27abZ0LbtrEsK6iT8IR2+O8zLp5Q\ 2bZRxdBVdJV1oUifiX+Wef2dPJ4vGo1ngWuAU781tazSIyMjKtAx4d99O5Ge4yjacNRQuXlz\ B7t6BclkN5rW3KqDwGNxscA7V1Xemy1T8QQIfxo3+6QVffFCmHTXgHLjWN62TYQkYkBiQt77\ IFrsLhRtqC43I5DqruXwfMHHqTZsFv40fvElS3v2j2GyzQO5VrejNa9mIyMjSji9dgI9E5Uj\ OzG696NGBlGNgbClhrXayxBUMlRzdlhkSkAhJFAC/FaX1eu6nIbRMMKImCFi4X/qcjEDD3AB\ J4S73uX037syRqkZVn5MAAAAAElFTkSuQmCC\ """ ICONS["editcomment.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QAAAAAAAD5Q7t/AAAA\ CXBIWXMAAAsLAAALCwFtBIS3AAAAB3RJTUUH0woNCgsyxhAJwAAAAqxJREFUeJztlrtuE0EU\ hr/N5oKxg5NIBJCAnlfgAahGNCloUyAKpPAyUYpUTiqUggZNR5Qn2DS4oEjDRVYcDPgWO15f\ dilmhp1sxs4ig6DwL608Hs3M+c9/Zv+zMMMMM/xjeFPujzOsWQSG49bOuyY3DzZjgOP28Wr5\ ebkFRI5lnhDi2uhSyjWgBfRcJFwEPIDtjW223mzVy5SX9eZhap0vpVwHHgBr+ixb0VjvuQ98\ 0eNBFgLzAEeNI3Y2duCA9t6zvRWgkyLhCSG+OvY7IaXM4SjFWAVqgxqHjUNDouEgEWl57wJF\ x1kxqnQ9oAkU9FzfJjGWwIK3gO/5VMIKuxu7ThJCiB+OTB8DIx081ufd1P9DVBkmEgAgF+fw\ Y59qv0p9ULdJFIEuEEspV4A7OjvfyrCjfw0JEzwkQwmofKiwP9onX8yTW83RP+9z8vqEoBQ8\ AW4DVaAvhGiMS0CrUSCpe6SVuZ5A87RJoViACDrNDmfvzghKwUtUrZeB78BAK7Cu5+ZSCvSA\ JZLbn90Hon7EsDHkggta71sEpeAVyWVqpw6MrQeU8cwBN1ClGupnlJkAQxh1RnQ/dwlKwZbO\ 6BT1PtdITGViCVJwOqKTQNgMCZsh5bflF6hsq8BHTaKrs5nL4oQG4xzR1QsWgXvAI1TNG8An\ Hdz2gXlgFXhI4oRpmEADoI5SsIHliOM29YBvqHrXgDMyOqGU8imJD9gknHAp4KEu0LIemxt9\ pRcAt7jshDHqXU/7gEkqUwnMvK/HEe5u6Ash0qR+QUpZtEhA0pwuKTLN94CPckCXE7aBc/1r\ k7iCqQhMUsBASrnEBCP6EwrYTuiR1DxEqWArkemD5HdgPD6yghssAHk9vtIFDaZRwEN5Rp7E\ fs28CWS6YOdvEDD7fSu4C84uOMN/g5++gjuED3GGqgAAAABJRU5ErkJggg==\ """ ICONS["editcomplete.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlw\ SFlzAAALEgAACxIB0t1+/AAAAUBJREFUeJztlrFKw0AYx38RhzyCY/oUqVskm5tEcBQEFynk\ EcQXKBS6SKDg2KG46ChmbJ7CjL5BXKQd7gvlzgRbm3An+ofj7rsj933587/7n8ciBICkUL0Z\ 94Qw8gE46DXLFvDMichfaHH+kXSb0WDYKQZWNnI7xcB2uBNN3OpaidMRAC+TqRZ/3p8AUA1f\ ASjyqfadfQYCGZT9a6CRbesMHIbXVwCU2cwDCGSh3HNjUxM1LiTfPJsBDjDgpTKY7K+BnU7U\ H/YCAw4wsHGnfy/4GVpeUL/HC4byB8v+NeCoFyzjUxkWjRWG0ZFazd9lpr4nurkfrDNg7U0Y\ pyM37oGvOE5UE1xK+x6+tN1gnYEuNKCdnsG56t+e5LQYbmquu8PAmVT2+CwVV6rCyA9UfFMC\ kI+bN6p18tCWqcUzrDOwBh2zVCR+JZVeAAAAAElFTkSuQmCC\ """ ICONS["editclear.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ B3RJTUUH1gkMEiAY1j9DsQAABiVJREFUWIXNlnlsVNcVh7+3ze4Zb2PAY2NjikkKJkaGLhil\ sYuaVnSJhKq0TZcoUAVVoiVUFd3+sKpQqWpSqUKp1EQJWQrESdqkArJ0I7R2sJGpicG4MeDa\ 2GBsjz2eeW/85r15S/+IjSbGThOMqx7pp6ure9873z3n3XOewCz71ZeJiYq0yXbsi99/ns7Z\ 67fahNzJr79FXXFhxZHlK9cs0TO62t9zqv1qKv2FphcxFwtAzJ34pcC+sopVy8ZVQ9QmRyNr\ NzQ2RH3yDxbL+Q0AguKJQhZR8mBnTYJeV/GF8rc3Nb1336IBmFNaiz+v2A2pHUQ9Y2jDZ6lY\ sXpp0SXPtv8JgKZYP+3pbO0vrKpHAKxMkkhA9Cuy9JPFApByJ3/pxGy4TTvtusqXCgoKAll9\ EtPIYIsBb/3y1J/f6Gb4VgPckNvvPUvL0MD5w0lDMbL4SGuTBP1KgeyRfw5w8qBvS/sh/6OL\ BgAwftl+6NI7Z3stpQDDAj2dIhAS1p9qLmgprd76guQJfX5RAZrexMqYxj39l4eGLUGhYIXJ\ xq1rS9Y17K0vq/50geKLCHM9dzMmzbfw+jaSI8v4WPmayO01DV8Vyqo3IIkZ9OQUx/a+Fai7\ mnmgznYnTkLXQgDmPMmJZ2n0Kr7HisrvqIyWrvAFQxFwvbQ8fp7uw73UiWGkZJLfDw31/sJ1\ Vy8EYM4UiAK1suIrlL2CT0/3cu5Pb/NYYzPSH+PsrN3M8qIiephyYxu9S9sPyo+2/Y7wzQLM\ m8u3niGWistHep7z3RG4bIub8kqIlpYyINq0jPW5dzdtEaobw0xOmu7g+dcGDG3k/k3f5MQt\ AwD4IbTeBZuCgFlUyJlA1r39vgahcfc6FOEC2INomobJGkb6uuLJePeP67/OEx8G4H1rvA1d\ YwJWRxinry7Ajr/dL3xmTwzHHsVFwrJkRMHG1I4TWbakeEnVZx9pfY59twwgCd/tctmzcrf0\ j68duIdQ6By2OYIiZVEn4iB4sSwXWVDQk214Aulwec0DD7UdEp9y3feP7gcCeByyv4T9Jaud\ hGVlsMwUAimMqWvIHhFdU8EBQRTxeqOoYycRuOCvWL/nvrZm79GO36IsCOC6Ce6IoevoGRUB\ FVOPEwhKqJPjKF4vU2oWSUzjC64kea0Ny/ynp2rD3ruF4iWt7c9QtGCArMVZIzPl6nqaqXQS\ gSmMqTEKoxFGB4cJRApJqyaOM0SwoJaJyy0Y6gmpsm73Bl907Zm/P039ggBEm9aMNpHK2j7S\ WgoEi+R4HFlxcZHImiqyEsPKmNj2v8mPbWZ8oAN17IgQ++i9ZbHbvnLs5PPS4eMHyL8pgHMm\ 3VpiIIlQhKamsWydtKZhmjpFsRXEr0wSzA9iTIXIGgkca4Bo1adIXP0XiaGXCEdLI6s+8ci9\ HklJtDxJ3ocBUIDQgw+Sp04MDorKUmzbg66rCLKf1OQktp0kf2kNk6MXKChfT3pcIJvpx7ZG\ KfnInWQNi5GLbzLcc3C870r2c5u3Y+X6nQ9ABkJAGMgDwt299gu6qhueQAwtqeIJ5DExksTM\ jBEsLEdPe3Cyw+Qvq0WbcDC0t5GVKEUVX3TVxMDIK8c6vv2NH9E9/b48wAcIc3VDBfBPb/AD\ AcB/vI2RbVvSW0sqPh7R4heQvQKOE8WxxhBlP95gGYkrZ8gvXY9tKzhWMbo6ke5paz69a5/+\ neY3GObdyitOjwLgzgYQAM+0vLnKOnjqVqd9FZWVtZIckEz9EuFoHfGhfhSvhjdUjakbeIPl\ +MLrnCvv/DX18tH+/Tsf5umxBCbgzpIDuHNVq5mT+2bLJ+N/9cnwgTWf3LF8qPsJisurcNwi\ Elc7KV+7Az2VsAe6m/X2LvXVn/2Gl1MaaSAD6NPjDZrvh0ScFSoAwXJwkqpxZl3ltbvKa3b6\ Dc3CG1rlaIkJve/ca0N/eOXUwV37zP1HT9BpmNedG9Myc0YTyALmfPVanD51bhpmUqM8vIs7\ N9aw3bXInj7PkUOv09l9ETUntDZgTeu6s1kgBmD8t4Yh5ThXciTx7k2RuPEmudMAM8rOATLz\ TXywjpUDI+dI5L2pmnE+E4XZkbBmnP5f2X8AtMq4HXmytQMAAAAASUVORK5CYII=\ """ ICONS["editcopy.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1AcZDRI4gmRrggAAAvxJREFUeNrFl01v20YQ\ hp9ZrhJANRDHhZWDfCjinOLCQOv+gl7aY6/tb/Mhp/bav2FYQdt7HPTgXhOkjdOQ3JnpgTRN\ WqQlWiqygERhuR/vzr7P7ErcnU9ZIsDri79GqTg7X/DTjz/IppO7e/V18erS1y0Xry79zZu/\ /edffvVtCAh3vUylkn8seP/+A2/f/sO7d1fN++l0erkNEWFVAwmBmGXELOvUH395dLCzM329\ qYhBASKCiBBEQARptdzd3WHv80d88/VXTx/vPvpzExHxTnWZoMkRIGYZqomz8wVn551mX9TP\ E+DlVgU0kQgBTQmA77/7FlPn6uqKD//mAPz2+x/8LxHoREOELBPMIM9zylKr+lDtzenpi8XR\ 82Nms9kobFeaMGQ3PlB1irykTIkQAg8mEyaxWsN8/oTDZwc8PZx3PtdRG/LJSgGaDFUlz0uK\ osDMKipiIIuBGKshVJ38YzEa2zCUAzQZmgxzp0wJU8XdKzJCIMZIzDImk8lG2Ibe9FiH3twp\ ioKyVMyq/Q6ZkMVQ/Q4BEanN6vfCNva5HqAoEkVRoOq10Qw8IATMFYITqATd7jsG214KUqmk\ lOoVgXklwswIwXGrJw1OkKwT/rHY9m6BqrZywFKIkFa3mkLcpRdb6Md2UIAmw+sB2oO1O4dw\ E+4bXT4K20EPeJ8nghOsMmVTT6gmbQlxs0FsTSqiwi3hcYiClWc51o2cKmbD2F57KLuF55IA\ MwP3ZrXujhud1Q+dGX3YggGCW5eUXgHN6kXAfSkaZlY/O1eqJhOWZTkK2yUBIsLDh93MZnoj\ xNyrMDdCjFibSlWbRLQuto2AKlksNr7hNtjqMraOdrDtCKiPypN1Jzo9fbGYz58AUBYJNWPv\ 8V5zLixHAdyk1+DtLVj7NnP0/JjDZweYOkVZoqpM4gM+25mOwnbUhaRdZrMZ+/v7zZnRJmcI\ 49vYrn0fWFXui+1WBHSw7Ulid2G70RZsA9uNBGwLWwC5ztf3KCebTu7uL+VT/z3/D4ypWLEx\ 98aLAAAAAElFTkSuQmCC\ """ ICONS["editcut.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0\ RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAgLSURBVHjaYvz//z8DDDAyMjKQ\ AzZvPmTIxcWxnpWVVf7OnTs+SUmhe4DCv4D4Pz59ILsBAoiJgUKwatVORWZm5n0mJlryYmKC\ DNeuXRYHCvMBMTMx+gECiGIH/P79r0FTU0GAj48byP7D8O7dOx6gMAcoQNHV7tlzSmDz5v2C\ yHIAAUSxA4DAXkFBCsz48+cvw69fv7HG44YNBwR+/vx1gJWVfSOQC3IkC0gcIIBYKLWdm5tT\ /u/ff2A20HIg/oOhZvHibWDLDQ3V9d++/QgSkgDi50D8BSCAKA6BHz9+QS3+zQC0BBgKqA6Y\ Pn0t2HJgGtGXk5NgACZWkDAoGthADIAAotgB37//hDsA5BhQOoCB7u7FYMutrfX1lZSkwWKP\ Hr2AhTw4qgACiIUaIfDz528wGxQCsChITCwBWb7byckEbPm/f/8YPnz4zHDr1r3LQOm/sCwK\ EEBUcAAkBGCOAYWAtrYpn7i4/BZ7eyM9ZWUZsNibNx8Ztm078nXLltXTgUq/gTIQSA9AALFQ\ Kw3A2MzMbDx2dkGrHB1NtFRUZIGW/wVa/gFUWH3dtGl52f79W84Clb4BKQfpAQggqoQAKOhh\ USAlpVbh5mbBo6oqB06Qr1+/Z9i48eDXnTtXlx05shNk+TMgfg/KtSA9AAFEpRD4A6YvXrzN\ 4OpqwaOmJg+3fP36fV/3799YdvLkXpDlT6G+/wlLAwABxEJ5SfiH4dOnrwwrV+5mMDJSZ9DQ\ UABb/urVO4a1a/d+PXp0W9n58wexWg4CAAFElAMONGg6/vv/nwlYVzE6Ntw4gJyKQT5fsWIX\ g66uCoO6ujzc8lWrdn09c2Z32ZUrx3BaDgIAAYTTAVvKNAWYmRgm8IoyB0hoc/CzcTIx/P/1\ n+HsBJ1Pb97+qnJvvjX3QJMa15E3txnYZOzAFn/9+p3h27cfDGvW7P16+vSuslu3TuG1HAQA\ AgirA1bmajgysjKuMwzlExDXYkeRkzbn5Lu7+eOU1cXKnILcLHGCf5gYotMCwRb39y9nePr0\ FdDnxFkOAgABhOGARRnqjvzizPuckngZWDkYGb7e/Mbw68M/BiY2RgZeBRYGZlZGBmVnToZv\ r/50y1hxMCg9+cCwevVecG548eQhw+/XR/qAlp+Dpna8loMAQAAxIjdI5qZoCnBxM94PzuMC\ BT/Dg6O/GG5c/77n8LUvO+VF2URtdHiytHw5eZiBjvn55R8DOw+kJL9xlZvh9ZU/DJKKvxnm\ Ln5U1LH+xRao77/jsxxkN0AAoYQAMEEXmtgxCbD9/c1wec9fhi2HPvZXLXsCqj7fAfHXOZmK\ H8TUmdrEFZkY2EEl+VdgkfbxP8P/e98ZTIN5GT7c/8tgo8HrdqxVIPzff4Zz33782+jWcmsf\ NM9jdQhAAKFURsxs/+NVFf8yfHryi+HU+R97oJaDgvIRyEesjMwPP78GmvXlFxh/ff6L4dax\ fwzyTlwMHMAanluYkcE6mM/DMl3AXNuDO1NWhX3Hjmr1aaBaG1fFBxBAKIISov/kGb7+Yvjx\ 4TfDw5e/7wKFPgDxayD+DIpLZgbmCBF+YLELVPP55R+GMwcZvjJzMQKrWKDnvv9h4AVWsgLi\ jGA2iNZwZmdQ1mZLWV2o2g7Uz4vNEQABhCIgzAvM3t9+Mfz9+oeBiZFZFFpeg8rZf9PiNRJl\ Jf74CrD9ZPj06i/D8WPMX6duf1X25zfQ8h+/4fjz/V8M7679AtMgvoopE4O0JGtOvL2oIdAc\ TvSmGkAAoaSBB48YGazUfjFIAgPMSJE7qMZHmYWZmfEmFxuThZbsd1tz1R8MH14xMxy6zP11\ wYHXZetPvztbGgFsg/6AVMGPrzAwXLr8C5hoP+900OZ10dZhc5fVYWCQV2dgMLzK7b/w4Ovr\ UE/9hdkJEEAoDrj9jPnoy2f/rcX5fjP46f9i0Jdi9QOJC3D/Y+Dn+svw/gMrw97r/F8XH31d\ tunsO3A+h4QAsBACRtLlS/8v+7TfBgX3284NLzZsr1afJSTO4CgKDEsRXjZHoPhUIP6I7ACA\ AEKJglcff5UvOijw+eVLUI39m0Ge+xsYc/75xXDuLhfDpvMCL+cffAOy/AyskPnzC+KAFw//\ M+y7/Hk9tKYDJdwnz9/9WQASZ/37hwHYaAa1A7mAmBXZToAAQgmBaQcenIqxkAma8E24Rk3k\ nz0X+z8GcHnwge3es48/dq8/+3jrg9c/QBaDnPgWlDD//Pn3ERjX/L+AOf79l3+gRPsJmmh/\ ABPt81/f/4LTAjcnM6i/wI5uJ0AAoZeEf5aceHIESEcCsRC0+QzqYPyDlmifoDnjM7RF8//h\ U6bLwBCw4QE2MWWFOPWBYuuh6hmALXQ7NsY/4BC6dv/fZWx9BYAAQs8W/6EWgYrQh6BkAcQ3\ gfgWEN+FBvsH5G4X0HMP377+zyDO9ZNBUYQlOMxMHJTa2brDVY0Y/v3PleX/wQCS//Tt3wuo\ o/8hWwgQQNgqo/9Qhb+Jqarff/m75OJt9mgnrU8MnnofeX784F+nI8V3gof9v6af0Qd+tr9/\ GS7e5mO49fz7UWgOQGm3AwQQIxU6p6w9EWoHw43fWcoI/MSQfP2FlWHWEcHLNWvvZkND9QU0\ BMF1AUAAUaNr9ufGs2/p684Jfn78khlSJkAxiL/spNDXtadfdUOz30f0EAAIIGqEADgUgowk\ DNTEuWtVRP75inH/Ynj1lY3h2kuGPXuvv1148fGn69D08xY5akF2AwQYAAIlqdJ6KtTAAAAA\ AElFTkSuQmCC\ """ ICONS["editfindnext.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ B3RJTUUH1gkMEiAbTzYSCwAACAdJREFUWIXVlltsVMcZx/8z57LrPbveXdu7XhPb4WLs4DiG\ AmqcABUxl1BKTUt5qCpStUUCFamkPPDQVqoslSIQoCAqIuWhD3logyKrlGLLxZgGKEiYukBr\ 8EW+YmMbG6+96z1n99xmpg/YkUOAmLRV1ZFGM2fOzPf95j/fXID/cSLz6XT06NEFlNJqAC8D\ CHLOHwHoV1W1+cCBA4n/GsCxY8e+UVBQ8JsVK1YsisVikCQJlFJwzmGaJnp6enDnzp0bpmn+\ 9ODBgy3/MYAjR44EQ6FQ4+bNm98Ih8MwDAO9w1MYnTSRtlyEAypeKQwiJxSA1+tFW1sbWlpa\ fuv3+3+8d+9e598COHz4cKS4uPj+li1bslK6jsbWEVxum9CJokx4vZ60RCkzTVvJZKxgLKQE\ 31lf5FtaHIWu66ivr2+Lx+Ora2tr7S8F8MEHHyiqqrbV1NSUjY7Hcbqh34TX1/X264vMpfmB\ qOaVvA4TLJG2jb4xY+JvXfHk4ODIsm0rc4s3rX5ZMk0T58+f/2j//v3fmy+ANPejurr6Jzt3\ 7tyVSKZw4o/d6aKFL9384ebSgrJY9gKfV/IQEAgBIVFKw5riWxzTtLRQulu64iZxzUjFkhjV\ NO210tLS6xcvXux7IYBTp05lV1RUXIlEIni/oYt5ssM3v/u1JYUhTdEkSigFBYdgnIMxIZjL\ wYgA0byy8iiD/psdY1nlBZ6cZaWL0d/fv3nlypXvXb58WXwRAJ2tWJb1g7KyMvQNxzEYdx6+\ Wb5AyVIk1XUFc1xu2S4zGROWENwCYBEIiwBWxmI6AERjkY4PL91PWpaF8vLymKZp1fNR4FOA\ UCj0jqIo+OSfj5AdCgwW5mWFHcZcl4uMy4TBODcYF4YAMYQQaQKSFkD64ZQ1SjjSXq9iDk1Z\ 04npFIqKiiBJ0rdfCCAYDH7FcRx0PEi5kbzgmEQIXCYyjisMh3PDdoXOGHTGuM450bmArpts\ 4kE8PQoKg3CkZVVN9I1MQ1EUaJq2dj4AMgDU1tZ6PR6PxBiDy2FTEGK7wiQQLiHMFS51CeAS\ wh0hiMOFcF3G3L/3Td5jQjAiCDiEpMhSZspwwBiDqqoF8wYAwDnnoJRCoYTqputaLksTAlcA\ jizBlimxKRE2KGyXcau1Z6pjeDJjEJCAgJAJISpnQmSpElzXBQA27yWora21LctKK4qCkF9W\ HdORhyeMCdN2M7YjdIeJlMN5koFOTqasjr+0jf25ayQ1QEBMQFiCChvgjm05gaI8HwDAMIz7\ L6IA4vH4dVmWN617NY/W30qU3OpX/joYt+ywptqqItLgND4ymRmaSFvjhAuZUASJEF4uqAtB\ uAAXqsTCkbCGRCKBhw8fNrwQgGEYv4/H45veLC/AuZbRYs4EHU+a6YlkOikEkoKQJBHEkQkU\ TiEJTgioIBScCIA8GJ6o2PFGQZ7X60VnZyd0Xa+b9xIAgNfr/ai1tTURCPjxow0LA/HxsfUU\ QuKCyqBQIIhHUPiYQJAIEgARWYQTVYAq04aVl+8TleuXFyq6ruPWrVtNJ0+e7JgPwKcnYWNj\ I6uqqhoMBALfqShbBJlbOa1d47mapvUSQhmhQgBCIgSKEMRLCPGBCl98arpMzkx/6+DO8gWa\ 5sO5c+fQ09NzfsmSJc3t7e1feBJ+5i5oamq6d/bs2cpoNLpseVkxeSkbedf/MVSRmM6EACXp\ 9cgOAVQGpo2NJlZMjE/WvBpT1r67ozySHfDDNE2oqgq/31/V3d39emFh4dne3t7nXs+fu45r\ a2t9ubm5TWvWrFlTUlIC0zTR0j6CK3fHzZG4aTIuXK9C5ZUlIX/1igVyUSwXlmVhfHwchmHg\ 9u3bsCwL2dnZuHr1avvQ0FD1pUuXxuYNMAMh+/3+4wsXLnx39erVCIfDoJRCCAEhBCh9HDq2\ baO7uxvNzc0oLS0FIY/NJZNJpFIpZGdno7W1NT44OLiuoaHhqTHx3CfZ8ePHyyVJ+nkkEtmR\ l5eXFQgE4PF4YBgGkskkBgYGHvb19b1n2/b7juP8qbq6+i1JksA5h2VZmJycRCAQQGdnp3Xv\ 3r23Gxsbr7wQwFxFNE1bJYQoBJDLOR/Tdb390KFD3bN91q9f783Jyfl4+/bt39Q0DaZpQpIk\ jI2Nwe/3Y3h4mN+4ceP7jY2Nv3sRAILHW5XO1Gfz08YKAGTr1q2/rqmpORCNPn6m+Xw+jIyM\ wOfzYWpqCs3Nzb+8cOHCr2YHSU8YoTNtMgAFgDo3b9iwwb9nz57Irl278rdt25a7atUqzXEc\ aWhoSJrpL3d3d18xDGMsPz9/czQaJbquIz8/H4lEArm5uVi+fPlbmUyG9vT0XJ47CzrHuTSn\ TgHQM2fOLK2srKwIh8Ov+Hy+pYqiLAAAy7JGUqlU76NHj7paWlra9+3b1w+AA+Br166t3rhx\ 44eVlZVyKpVCTk4OFi9ejGAwiLq6Ol5XV5d37dq1KfkJmekTziUAUlNT01Q0Gp0CMG7btqoo\ SgoADMOYTiQS8YGBAb2+vj41oxQDwK5du/aJZVlfTyaTf1i3bl0gHA7D4/HAtm3EYjHq8Xgi\ ABKzCkjPUeBzijwRE7PrL2ZnP5MZAF5RUVFQVVV1fvfu3UXFxcXEsixx4sSJjtOnT78GgM9e\ Rmxm0KwROtMmAXCf4fhpQSiesMPv3r3bB+Cro6OjvygpKVnz4MGDO6lU6mcz/5+5C2aX5Wnl\ 83bBbDkLMVcVMafPZxx92fQsgP+v9C+ozfKhNSiUZAAAAABJRU5ErkJggg==\ """ ICONS["editfind.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ B3RJTUUH1gkMEiAY1j9DsQAABcVJREFUWIXll01oHNkRx3/vdU/PSPMprWJ9jDI2CnaUrBKc\ xV4SshgT5IOk9SFxSIzxIac9+JBzcgm6+pCFZfH6smQJvgQcSIgiVggHg0FYyRISO4zAO7so\ 3mhkWyN5PrunZ/rj5SC3dqTpkWXILQWPfl1dXfWv/6t6rxv+30UcVNy6devdXC73U03ThJQS\ AN/3Q4dSat+953ldukDveZ5aW1tbvH79+jud8fSDAIaHhy+fPXt21DRNlFLouo7v+wAopRBi\ F3NwDUQpdWim0WgUpdSPgMMBSClFs9mkXq/j+z6xWAzXdbsC9wLyEuky7gIQZBmMIMj/AkCY\ bReATuPOYds25XK5y0mY00CnlCKbzR4KtAuA53kvzb5zfhgDne8GgF4KoNOokwHDMEgmky9l\ oNf9kRkI2uuwOujl+LDleCUAYcEdx6HRaBzZcSDpdHpvHrYE8qAiMDJNc1+wg5ke1PV61nl/\ pBpwXReAeDyOlDK0Bg5m32g0ME0TIQTJZJL+/v59gMKS6AkgWAIp5d68FxOFQgFN05icnGRs\ bAylFJVKhdXVVbLZLLlcbp99sKMeCiCMJiEEruvu1YDruuTzeWZnZykUa7z7hzV2am2EgKnj\ A1z+wTQtq8adO3e4dOlSz+x7MtCZbdh6P3r0iLm5t3n/jw9xiDD71jfIJKKYtsva4x1+9dtP\ +Mlbx5mdneXevXucP3++Z3JHYgAgEomQSqXY3NxkenqaD/70L3LjI8y8eZyYoWM7Hnbb4yuZ\ OBPZ11hc+ZRMKkYul6NSqTA0NBTqt2cXhDEghODJkydsbFtsmz7fnxpFKXBcHxRIAVII+gyN\ b319nA8//pSJiQlWV1ePzkDQBWEMtNttstksf/7rY85886tIqeH6CvAJXEsJLcen39AwYjG+\ eFZF07RQn4cysLGxsa8NLctifX0dKSUbJQsjAlbTxrKamFYTy7Kwm02q1Tql7W1aVoNYROOL\ ZzUSiQS2bYcC6FmEw8PDBF9EAIZhEI/HUUrRH9Nptnw8X+H5Ak0KpBQ4rkPdbpOK96M7PgiI\ RSSNVqsnCz0ZMAwDz/P2PUsmkzQaDb47eYzP//OczZ0GO/Um5XqTcs3EatpoAnRtF9Tzislk\ boBisUg0Gn01Bg6K4zi0Wi2KxSIzs6f5yz9W2RqNY5qCvsjukFLQ9sB2FI+fWbyeS9Ju2YyO\ jvbcB7oY6AQQduBMTEzw+WcFfv7DKf6W36Rhe7i+wHbBdsDx4N/PTErP67zz9rdZWlpiYGAg\ NHhPBsLaxTAMUqkU6XSafD7PiUSCX1x+g/d+/08abZ/X0n04rk+10eKNrw3wyytnqdWqjI+P\ k8/nKZfLRwNwcN3DZGpqinw+j64Xmf/Zm7hKsrFVpy+qkx1KUC4/56OPfsOZM2dwHIdoNEql\ UuHhw4f98/Pzcn5+fo/mroW5cePGkytXroy0Wi183w8+p0M3pZ2dHfL5PKVSiUwmg+u6lEol\ xsfHOXbsGCsrK5w8eRKlFFtbW8RiMRYXFz/2ff/S7du3m0dmoHN37JShoSHOnTsHfLmBBa0b\ nKjLy8ucPn2awcFByuUyc3NzM3fv3v37xYsXzy0sLGx3FaHrukQiEQzDwDAMNE0jEomg6zqa\ pu2djO12G8uyME2TWq2GaZrU63Wq1SrVapVKpcLIyAgzMzPcv38fwzBIp9NEIhGuXbs2mU6n\ fxfKQKFQWFlYWDiv67pQSglAvrgKz/OE53nCdV3heZ7s+O1CKYXneepFF/lSSnRd9zVNU2Nj\ YywvL8enp6e1EydOMDg4KE6dOvU9QHQBuHnz5o8LhUI6Go1KANu25dOnT+O1Wi3VbrcTjuMk\ fd/vU0pFlVLGC4DS931PCOEKIVpCiJamaTVd1xuJRKIphPAzmYxeLBZ/ffXq1Zn19XUePHjw\ IaBe6b/qgAhAe8GiYHdPEewv7N2T6svhXbhw4TuapomlpaVPAP4LjB3ikLAT+NkAAAAASUVO\ RK5CYII=\ """ ICONS["gotoline.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsNAAALDQHtB8AsAAAAB3RJTUUH0woJEyIFpn48jAAABaxJREFUeNrFl11sHNUV\ x39zZ2c/7GRtbwwJNiEJNZHTfMjxtKhqCG0qJZEiJASib0AhYKhRxFPIQ5GQ4KF95KF9AFYO\ TQUP7QP9eOABgiIRPloJb7ADtAK2SgBnTfyxu87uzuzemXv7MLPrXTvrNRFSj/SXZu5/7jnn\ nnvmnHvh/yzGd/l4dHxqB+hDoEaAEbRq0qGn0WoaJc/ZnMkCKp1O6+/FgdHxqUeBR4C7QQMK\ RBREPPhAueC7zVM+QHmv2XriNCDT6bS6IQdGx6f2Y4gX0epnCBOivRBNEY0l2Jpc4se35gEo\ ufDOpW04bg2qc+AugJaAdvDdkzZ/+iPgXs8Ro8OqTwOQ2EJ0w808ducMe2/fwM5bu4hHxao5\ M/NV/vnvIuf/Ax9dsqB8OSD82l9tXn0cWEqn015HBxrGzRgkd/Lg/m+490A/fRsibaOlV6g6\ f7HAy+csvp2dBa8ESk7b+vQRYK45EmZb45Eutm69hZNHSxz+UQorIvAUbeEr3YLB/hgHhyFf\ 8rg0Z4D2N+f07h8OMPV327a9TCajVzkwOv7xfjDexLQYHBzk1D2a7ZvjSE/fECKmwd7tCa4u\ Kb5eANB35OSODwfEZ1+HTrByI18FH5LDHD/okuyKUKlqfvuGQ6Wq22ItXml4+FCSodv6AgvR\ 3ueBPiDSEoHR8cyjoJ8kMcBDd+bZtW0D0tdIX/PUsV5+8/o19m0zGmPN6MRrYHu/4t1sL8il\ W3JqV2HAmL5g23ZtOQJaPQImm/s3Mrytm7KrGgCYOJHilbOyZXy9fNlVJLst7hspgmGBGb8f\ 6AUsATD66492AHcT38QvhhbwfKhU/QbqMnEixevv+S3cevhi2eO/uQoaE+KbwDBHJqvHdgHx\ +n91KNifFP3JJcpO28LFxIkUj/1hkSN7VEd+dtHlq0WDf80MLn8QdcCZBavnAHChvgUjAFt6\ FBrarrDZyFufiI78YslvNQ5EY4ngQUSHgcSyA2acvkSNkqNWod1K3/vCWpP/ZmkjhgFGU40y\ BUEeCGsIiC8noYiTjNUoV1UDnWTiRApXrr1dAFq3OkGkG7Q2GklYL8llGeWaQwPrkWd+Obgm\ f/65FcZbRSwXd+WSd+JExHILny11duDgC4GRtfhG46k74pWXg9E4TPjuXYVqDE9H1n1AaVa+\ Hj4iQPoErVrLLKAiYRGaxjApOx6WGfnejVtNHcdxa2GLrmYxkUEOKHkOgNoCQohVWCmHf/fd\ nDPFMqgtBIO1fAZwBUB4hvsAZw7LkCQirVip3JVrG+9LyBbU9ViGBGcOlHfRTrx1GXDq8VYo\ 7zUEP10qzPODwe4Vai0AfvX7JW7vu57ZZAc+kOxMOdh/r/Q2JuWGA+l0Wo+NcXqSJx52ild+\ ojZvp6+79UD79Cvz9MTaK+/E58sGTvFKsHrzz/8AioDbnHES3z2FmXg3e3mGu/bdhGUGTjx7\ 5gob11DeiZe+QfbyXPDi5l4iRgEoALKRn5lMRt9jR3I5vSfvK3F0vlBlaCBK1DKxTOOGIfB4\ fzpPxZVQy79oW397B8gBhXQ67a9Mcc/mzMv4zqlrlRpnJ/PIqkPMEjcEWXU4O5nnWqUWGDf/\ 8gbwLZAHvFVnwkwmg23b/gBTUzm9uyiVefjzGRepBFs3CayIICLoCEN7TH5Z4cNPC0hPNRvP\ AVcBp35rum6VHhsbE0DXpPfAz4n2Po9hjsYswW1butg9oEilejBNq2WO70sWF4t8ekXw1WyF\ qlSgvIu4uZfs2JsXwpVfBSrNx/K2bSJ0Ig70TeoHj2PG78cwR+p8Igr9PUEOzxc9nFrTZOVd\ xCu9HWZ7AZgPw77qdrTm1WxsbMwI+0U30DtZPbYLq+cAIjqMsIbClhq2E5nFr2ap5TNhkSmH\ v1ohfPaud1ld1+U0jIYVRiQRIh6OiUYxAwm4gBPC7XQ5/R95OnEu33wJDAAAAABJRU5ErkJg\ gg==\ """ ICONS["gotomatching.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlw\ SFlzAAALEAAACxABrSO9dQAAAYNJREFUeJztV9GNhSAQHMw14LZAC5agNfnLrzX5SrAFW1hL\ 4D5UsiIgenrmkpvEBAVmBtbsAvCPCAyMNTD2FZ67xC/x3S1+ivcp8RR/ITufEg4Z2RkQneos\ ITMH2znche8ohXEcAcDKh5lrInJjlrYcg7ZtQ2asM5ApbrXWO6NE1AMAM9dSVMB2XRfl3RiI\ bT8z11rr9VWJZ2dkGd94/c6Ur1HkbL9Y5WZy3ztNyaGI6IP9TuxgYGx2CJi5kbGO4PQPnG1g\ WdUGTdOkxFWi77SB5MrKskzNS87N3oEUpmnCMAyX5t5iAICqqurXDdySui8bSMT9VgOhzAZg\ jnvG3B8ZsJH25r3ve5mQALi0nIXiQvXLzpxHMDDKrwUxciWKjfsGzMnIS0gWmDNnqDT7Gl8J\ g0oIWpmGl2ID8W1DOo4jpmn6iAIWxXoeiIUhlF4VEX2IyBnxx2it1ZH4qhk6EflhCJZfwNUH\ lRpzwL05E56uZFeR1Hr1WP6UiVdvR0/fNf4+vgET3cb2N0kZDwAAAABJRU5ErkJggg==\ """ ICONS["editindent.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAAK/INwWK6QAAABl0\ RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEgUExURf//6f7IjP//3Mynfv//\ 2nhfQv//7f//+4BlR/vQotqyh9+zg7KOZ/7HjP//0sqlfbiTa//0v5h5V6GBXtKsg/jQo///\ /aCAXf//6oFmSHlfQ//msMqmfdOpe//xwty2jIxvT////+y7hv/erf/Tov//1s+pgNqte//W\ nv/6x+GygOa3g/vKlXthRMSgeMifc6GAXY9xUf/2wv/bo/nEi4ZqS6OBXf/tvui9jrCMZP/b\ pP/1wLiSacafdN+3i///2+rCl3pgQ//3xdKoe///9aGBXY1vT//5x4ptTdqtfIltTcWhef//\ 4dixiP/KkP/bpvrIkrGPav//z559WdexiOa4hvzQoP/suYNnSbSQaP//2I5wUL+Zb5aWlgAA\ AP///9v++JMAAABgdFJOU///////////////////////////////////////////////////\ ////////////////////////////////////////////////////////////////////////\ ////AHNt5EMAAAFCSURBVHjaYognAAACiCE+Fi+IBwggBkImAAQQQRMAAoigCQABRNAEgAAi\ aAJAAMEUxCGE4pBBPEAAwRXE4TABIIDgCjTisJsAEEBwBcZh2M0ACCC4giB/+ThsJgAEEAOM\ zy7toIbNDIAAAipgYGNi8WFXFOQUYY7DNAEggIAK2MQY7JkkXIxUfJmZMc0ACCCgAiYGPk0n\ d2srHS5+b704dBMAAgiogCUq3I+RkZHXREs/UpgH3QyAAAIqUJWzsBWIkdVWDzbl4MAwASCA\ gArMQ8QNo4UCnW0ipFgx3QAQQEAFdq4KHm4GMtxmuqxYfAEQQPBwEA31csQWDgABBA9JZU9J\ rCEJEEBwBQGW2OMCIIDgCpRwxCZAABFMDwABRDBFAQQQwTQJEEAEUzVAABE0ASCACJoAEEAE\ TQAIIIImAAQYAFmFY4BPZteNAAAAAElFTkSuQmCC\ """ ICONS["editpaste.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0\ RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAVESURBVHjaYvz//z8DCDAyMjLg\ Aq2t8xYwMTHFQ3j/GaBawODv33+XT5zY47V16/IXQO4fBhIBQAAxgBzwH9lENFBTM33B9Olr\ /3///vM/NrB+/f7/lZWTr5uaOqgClbOSaj9AADEih8DNydoCf//9N/z15z/Tn7//GVe8yoiV\ khKLS0ryZeDkZMdpyNq1+xhOnrx8U+P/6kp9iY9f2VgY/wHNuG9VdfM+OMggGCsACCC4A851\ axmysTLuY2bnFuAUU2R48oGPYfcjE4a0tCAGDg42gj5ZsWIXg9CPYwyWCs8Yfn18xfD702uG\ p29/5bm33J4DlP4JxP+w6QMIIBYY488fxvVC2iYCCl6eQN5vhl83fzKwrWFi+P37NxgTAry8\ XAw8ssoMCn5GYP7byxcZvm3dPinbXez81J2vzgKFfmALCYAAgjvgxy8GeRl7HYb/f59CEtef\ PwzfvvEyfPr0jai4/Pr1BwMP10eg/p9gvpCGBMODo0IMPBwfdIDcm9BQwHAAQADBHfDt538G\ JpY/DP+h6Zid9S/DnTtPQDkAZxSip924aA6g/l8wA4GeYGD4/P0fKP5AmAlbNAAEENwB34EB\ BNcMBPLSDAzL5rGTnqvgDvjG8APoqV+/GRihlmPN5wABhBICyA6gCPz9B4oThp+//jH8/vMf\ r1KAAEIJgX9EJDaiwEdgugGa9ePnP1AI4AUAAUR2CPz6K8Lw5ZcCOB38+wcpzP4D6X8g/ufv\ YDazjDSDTRCXzfITZRtxRQFAAOFMA4TA5x+yDOyCXgzs7OzwBAlyBMgxf0X/AbP1PwZ9mX8M\ TJfvhCxatJk1Ls43ERQ5UAwHAAHEhAgBiAOIxf+ASRxkOQ8PNxjz8nIz8PHxMPDz84BpCOYG\ 1RUM6uqq/vPmbQRlJz4gZkZ2AEAAwR3wAxwFv4nG/4DlxP//hEMKFBJ6ekpAR6gEzJixHsMR\ AAEEdwAo7nD69tdPhn9fvyHwxy8Mf4FB9p8IF/z9+x8YUqwMRkaqDJqaKgGTJq1BcQRAADEh\ K/4HsgwZAxPGv1cfGP49fQuhYfjdJ4Z/334SlyOBUQCq6UGOMDBQZpCWlgro7V0BdwRAALGg\ FiKIPPP/M9CCz7gt+ctEXBTw8nIybNp0HBwSIMeAaCEhkQCgVAUoMwEEEAu2Uuz/R2CW+Io/\ R/xj/ktUFBgZqYHTwY8fv+Hqb99+BqL4gfgVQAChOuA3MM5/AH328TtBg/8xExcCrKysQAf8\ ZmBhYQFnUaSkB7KbCSCAUBwASmz/X39lIMbkv2AHEFb3+zckpEANHiYmRKEFAwABhOqAj0DL\ fxNXGP378xevO/8A5X/+/AO2EGE5A9wRMAAQQKhR8OErJD8Sk7pZUEMAZOivX3+A+C/YcphP\ QTmAiYkRyXLUAAYIILQoIL4oRg4BmMUISzF9jOwIZIcDBBDWXECUA/7+gVsOylqYljLgdARy\ CAAEEIoDPnz8y8DP9Y+4KPj9BxzUkBY1ZjDjcwSyAwACiAXRhvh/dNMpXmsL1c/A5hjhdPBB\ BOIT5NRNrCOQowAggOAOuPLsU/jPPzxTXn8SDCAmBMT0OBgMMHxOnCOQQwAggOAO2H3j5Usg\ TgEyK6HlNAs+B9RbFwLVMiYSSnDYaOQQAAggZEtAqeoDtP3Ohl5RoQMeHsH3IIOwW4bfEcgh\ ABBA6L4EpaqvUEygiOX4ATOIVEcgOwAggJjIbXeCKhjk/gLIMkh0INMQS9HFkaMAIIBYyG55\ A6vWy5cfMzx48AbeFkTGoLLhH9C7mGL/gR2el3BzAAIMAPtmf2zDNnayAAAAAElFTkSuQmCC\ """ ICONS["editredo.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH0wkCFTMtVD42BQAABCFJREFUeNrtl11oW2UY\ x3/nJE3SNm3SJnWtG7O4mVZwraI4FaGdE2HshTlYBwoylF3JoHO7ERkKU+cQtRNleKGzMEHm\ xRwmaje6MqT1wjmc1Ora0u+1TdKvtEmaj5Nzjhc7tqZNY79gF/aFl0Dy5Px/7/N/eN7nSLqu\ czeXzF1eGwAbAJIQImtAW7XXiYX9WHhelqgBHAtjNJ32VJzW8FTsE9F7sBtQAX1NAFfdXicW\ XpOt1MsSjuOPdbC11E5VuTMtLhiK80dfiPO/l9AfKSYe5YIS7D4u9GN+A2TlAJeLvPtlmS+3\ 2EOOo89M8mRVGS5H7n+epuX6IKd+KGRwxjmsRAMvieThNkDJlo1FAD86vY2yxKGXH/mLg89u\ J9eWsyJPp6ZjfHwpQMtAeVgNDxwQ6pGfgMRSEHMAvsLvnMA1oPqdvbfZXOpieDSAoii0D0kA\ lDkU3IVmStwuStyuJSEUReGsL8jPQ6WjjLXuFrYPeoBkpljzfCWlGgtsavWBh27z7Y08boxa\ ga2Qmm0HLYKW8mOybUM2b0Iyb3qgeJy6R6OUlN2X4bE57N1ZRHtQKQs7q04Q5ygwmakmJCEE\ vvxvziDJ9fNHmGkmHmwT0uvXjPQl/uWlyae8uQP7/S+SY9+zrTjKvicKMJkXW3Wrx4+3owj8\ zY8L+2d/AtFFANTN7EKSW+5kIXmTiV8+FPmf9gHTQBiYNdKnGQCykbk8n3pyJ/btjcWFZvue\ h01okiX96WqSr9sUSIyfEeqR94CJhVmQqAvdBKpRZr4QqVfPAyFgHJgxTp4yxNP/dwfC5tNP\ P03elgsmq6PguR2LzWjthHAo0CaShw8Bw0A8vQa0VBHJyRNCP9ZsiAeBiCGcsXJ91nO16JoM\ SKhxCSVyTtVS9V1+F+Xu9Fi7DcKSudqnnqwlxxnEnBeb+1HXQpIQwg6UGKecNHzSlqpwn+Xz\ ecsWll5eCU950r8bD0NHz1jWRmQGLIZoMpv4P/eHz3z2KyTzC5vvLWOre+X9/9deUCKjEA+e\ Mnk8Hs2o8NRy+7dH+/5KF7srw5Hog4rsIN8Kqra8fb0X1MgQxEYahPktr8nj8azmElM9etPl\ Lm1XRTQSrkzKRdhtoOnZ92/9KkQGIO5vEDlvXwRGVwugA4qHK01dWk1FLDpdOYuLgtylxdsH\ EhDth0SwQVjevQiMAoHVAsxDSM1NXVpNRXI2VBnR3RntuDUUg+gAxAMNwnp6ThyYXetAogIz\ Qn7jFbTkpdh4J/1jkFLnd/dQGKKDEA82CNv7aeKAth4TURqEMtXJ4AQkU9A3Mg2xkSXFAdZi\ QQY7rjZ1abUVeiJUGY6pkBjPKr7eM2FaJkiGIB78KJv4smbCVSwTUAjcA+Qal9pYJvH0eWCd\ M2F0VZPxuWSHlTbeDf/3AH8DCP0QxXmU4WYAAAAASUVORK5CYII=\ """ ICONS["editreplace.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ B3RJTUUH1gkMEiAY1j9DsQAAB4lJREFUWIXll2tsVMcVx3/3sXvXu5tdG7zgF8bGmNqGymmo\ sJvwCk3U0oQ0IFG1DSRVU6G2Uls1lVpBgtqqCFH4gKqkiZSqVRVFlEelNCAlahURhEmN7TYE\ EgN+gI1Zw/rFvp/33pl+MLvxM1D1Y480mjsz957/f845c+Zc+H8XZebEkSNH3m5oaFinqiqq\ qgIgpcS2baSUCCEQQiClLIxnrs83bm9vP7d///6npuLpMwlUV1e31tXVlSSTSRRFQdM00uk0\ wWCQ0dFRLMvC7XZTXl5OeXl5geRniZQSl8tFPB5vmbk2i4CiKDKbzZLJZFAUhUuXLuH3+1m5\ ciXLVzQQSeQo8ToRtklHRweVlZWUlZXN1IGUctqcZVkoijJ9ci4CU5WcOXOGTZs2MRw2+cUf\ O1BUHZ/HYDycwu2EHz7VjGrGGRoaYunSpYXv5iMxl8wiIIQAYGBggI0bN9LVd4fOa3F+sG0N\ i4td5CxBPJWjJxjm5ZNX+Ob6GoqdTq5fv47L5SoQyEtFRUWB0Mw1gDkdaNs2sViMtO3gzCcT\ PLd5FUsCXnRNRVXAoassK/fzcHM1b56+RllFNQMDA3MCTAWeyyKzLGBZFsFgkMbGRv70jys8\ 3lKH26mTzVnYQmLaEiEBFCwBSypLOfZ+L6urq3E6nbhcrlkE8v1cBGZZQErJyMgILpeLUDhN\ 5UI3tm2Ts2wyOYt0ziZr2oxF02RNm0UlHj66fgePx0MwGCzsON9UVZ3X/HNaQEqJaZp3zy+o\ SGwhMC2bTM4mZ0viqRzXQ1FsezJehBCkUinC4TDxeHyaPr/fPy/4vAS8Xi9CCDyGSjZnomsK\ OVMQS2UZjWYZjWUQk34glbEI+F2EQiF8Pt8ssP/aBUIIlixZwvDwME+21PDPT24zFkkxPJEk\ OJ4kkjRRVQ1d19F1naHbEb6xYRnd3d00Njbi8/mmNUVRELbJ8Vd+hPnx8cCBb9e0f+errpp5\ CUgpCQQCXLhwgZamMmLxJDdG4li2QEiYuoeR8QRLSnQWuiVVVVXT/J1vqWSUNw7s4OnqVTxn\ 1asvhMpaF2muv83rgrs5m5qaGkKhED/dvprX3v6IjstpFvjd6A4HqUyOkfEYX6wr5pnHVvHi\ iy+ya9euWf6PjA/z8Xuv8/X1z2OcvwjvvMPg2Bglq5TS/Dva1A8OHTrkMU3zlx6PR+/v72dw\ cJCioiI2rq7jS00VJNNZzGyOxiof39u8ktpSjb1797Jz5048Hs808FuDl+g6dYjNX36W20WL\ uREIED51iovFKXl1EWc6+zJHYcptePDgwTKfz3e2rKys/urVqwghaGhoIBKJoGkasViMFStW\ 4PF4GB0dpa2tjerqarZs2UJpaWkh0AD+ffavdLf9ma+s/wIyFyV+xeRm03bGfr+HC45bp8cj\ 0SdPtJMuEDhw4MDK0tLSNr/fX9LT04NhGNTX15NIJNiwYQOGYZDJZOjt7SWdTuP3+6moqEDT\ NAzDKOxeURT+fvS3pENdPLJmFbnoEInQR4xP6AwnWgiao6lfvfyulymhpB8+fLh40aJF5xcv\ Xuw9d+4cJSUl1NbWkk6naW1tRQhBIpFAURSWL19Ovk7QNA1VVdF1/e7psTn2yo+p8MZZvebz\ pMa6SU/0cmPU5MMheHRbC3rMHYd3p51F3TTN1sbGRq/f72diYgLDMLBtm+LiYjKZDJlMBsuy\ SKfTRKPRQo2QB9d1HWHlOH1sL2sfrGRpVS3x4U6ysWEu38xydcTLt37yKstXtnLixImZMY9q\ 23ZHf39/MpvNSpfLJUOhULypqYkFCxZgWRb52sA0TTRNw+l0YhgGRUVFuN1u7FyC00d+zuZH\ 6qiuKCU2dI5UJEhXb4a+cIDv//ot6ppm1SGfWmD37t3hffv2fa6vr29dJBLpbW5uftcwjAd8\ Ph9CCFRVxbKsghU0TStYYCLUT8fJQ2x9/EFcDkl08AyJRILOfotcUT3P/+wPBMorP7Mu0AFe\ eumlYeAowPHjx6XX68XhcACgaRq2bZNKpchms4WUOnC5jWudf2Hb11pQsneIDnYSjmf5oEey\ sHYdm7fvIZOzpqXieQlMFSnlND9r2mTatW0bp9OJoijEwiMEP3mLp59YS26in2ToIsN3cnT0\ a6xau4OHHt1R0HUvmTMTTpX8jp1OZyG3v3dkN09t24LhC5AJ99ATzHDxVhFPPPsbWjdunVaA\ 5Nt9E7gX6xt9H1IZ0NEwMSM3uDlm0T22gGdeeJVA+bJZ799L3z0J5McOhwO/38e/3nud98/3\ YWgmV65NULn8Yb675xBFHh+qqhKNRnE4HOi6ztR/i/smkC9Kp4Ln+5Nv7KOt7QMeam5Gr9rK\ lsdasSybSCxJJJZE13WcTmfhqOaJGIZRSFj3JGCapuJwOAp+zAeilIIHikv53ZudLAhMXr15\ svnAnVmCTbXmXX2zjsIsAl1dXe26rq+dBJWqlFIBFCGEilqlvH+2Q5HyvDKpc5o+qSiKvPvz\ UXhWFEUoiiKFELKrq6t9Jt78xdqnogJewH+3dwMuwMHkda4AAjCBLJAGUkAEiAO5+8D4n+R+\ NjGv/Ac1w6RWgpLp/gAAAABJRU5ErkJggg==\ """ ICONS["editselectall.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ B3RJTUUH1gkMEiAZoThzJwAAA2pJREFUWIW1l0trFEEQx//d88g+XGfHSGJiWHyggrrm6N2z\ 4MFDwJvkKwgePIsY/CqCBz+IJwXxkE1AiJpssjgxzs7038O8H72zUVOwbE93Tdevq6qrewRi\ ISlev3n5kEQLZyhC4OT5sxfvhRAEADMZ2Np69Whj48lbt39BniXAeHygtrZePQbwrgBAyY7j\ 9GWrtXAmhkkCABynLynZSfpN7Rv/2XgCALAwdqYAkeHIaAZQlFqA3f1fGHvBv5guAQB317og\ y+vXABwdh/g82tNO3+1GIfS84wYAwHGcqH25gzonaEMwGo20AIPBAACws7Oj1UlkOBwiCQEZ\ U80D0CSu68J13fiJuXnL7Wo4GgFMA5AMtcZtU6BlZeWiODmTAIAU6C0YWHas0wEEIaCEoQXw\ A2LineD42IsB8qORIdu20G634bRNXOxZUQKS8yXhPOJ53swccBwHa2traQ1IAMoEfw3Q7ztw\ nGH8NDsHCgDzFCLLELh57UrNSOTCbqcL25RZtCnieQlCAACuL7VAMtLLAQhRnLEWYBoq+ArI\ 7+c8xO/JzypYTqfT6WDx3Lks7nkPlAi0Idje3tYNNcpgMKi4PfUAGgCSF9bX782Ia1m/2laK\ ub5TJCFJSAEsmDI7SKK/eDxZQbk/DRhA4NPXqEyfbxu4dN4swOgBYsogJPZ+HNQUjmoxqTvl\ SOJ73L660sdyL6kpVd2SB5hSjkbNdX4eubrSTw3XwdaGgCSGw7univvnjx8AAjdur5d0sjtB\ VqY1AMlhJYWAbchsgmQQ1VgjzuqTb19AErce3C8k3oKZQCTxbyhEJBEqhW/74wLarHxot1tY\ cnsgicWukTNYNN4cAmalc3d3t6Ksk9XV1cKxm7o757q0f55tSAJ37tyea78n7WjTlVeqazcA\ rDgWLnSNXCUrGivfcklgr7zSXLuYhDNyINIjei0DPcgCQN5o3ar29w9memC+WzFjxnL51Kw6\ H+vNzac5nep4XRGqAswwWp24zt11q643rAGoGtUnlL6vadV1APZkPMHh0aFy+25622SlUT8p\ Nf11cjgeq8l4AgA2AD89nJPPc98PukEwNab+1PR935oGgRkEgRmGoaHC0FCKUiklCRYOdgFB\ KaWSUihpGKER/2zLmlqWFVi2FViWHdi26eU/z/8A81bdkxXVzcIAAAAASUVORK5CYII=\ """ ICONS["edituncomment.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QAAAAAAAD5Q7t/AAAA\ CXBIWXMAAAsLAAALCwFtBIS3AAAAB3RJTUUH0woNCgssPB80owAAArxJREFUeJztlr1rFEEY\ xn97X0m8S9SoRBG1ONMIKYSAVUqFwGCTItglf0D+mpAiVa61sBtIYf4DDwwhELCLFjEemJx3\ 8XJ7d7sW74y77leWgIhwDwz7NfPO8z7zzDsLY4wxxj+Gk/HNzzG+Agxz9k1EKeW9o5S6crDW\ ehb4AVxGSSwdLNXqR/UOQGO1UQZGSUTTCJS01nPAI+C26RdWy0cyfwh4wMA8/0b9qN7ZXNlk\ 490GwCzQSSIaI6CUyi2n1voFUIiQY+3tmr+1ssXe+Z599Rj4YkgOsgg4WutJYBqYAW4Ck0mT\ mGAdwEVUiE3eGrTs67tAKyFGnABirBpwwzy7iCc+JCjwLJr59so2x/1jik6RslO2nyopScQI\ +EAfaCPrZQcVtNZPgaoJ5iCmGtns7eT73X36fp+iX2TKn4rOF0MSgQEibVcp5WYNNgoUgEJj\ tVE7XD/szr+Zp1Kr0DvrcdG+wP3kkpR5GgFLYkjghyriA3tvFfBMP7v+5eZO8znwce7lHHjQ\ a/XonnSzcqBwxbcJxIy3EGNWQiRtsxgAneZO89Xp+1N6rR7D8yGe65GFNAXy4j5i0hHimRai\ xPLi+uLuxJ0JWx1SY8Z2QZ4KaKG1LhGoOAJ+AicAzZ3m8sLrhd2rYkTNUUbkthWwnNIPJLfv\ wGfgjKASlhCvPACemHht4MiQ+8PYaaXYwjeT+0qpWDYplXAIXJjJPOAesrVjZTgpMwdx+4y5\ OqYVEANWEWM6ZqI28BU5kEaRWCWCneOT8yzwTScrp6OU6kdZW0QrYQRDxBOX5jnxNMz6H4Ag\ 82mkPNutaCthFzg116gCuZDqgTynYqgSXhtpCthDyWZeI1h7B5HSQ9b1G39BgfCpWCXYjuHq\ 55l27d+xLAJJp6IlFibgmn7Z9TYDWSZ0gGKoT/SXzF4T3T3Gf4Nfi0P5Rstj6dwAAAAASUVO\ RK5CYII=\ """ ICONS["editundo.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH0wkCFTYqty1X4wAABBVJREFUeNrtl11oW2UY\ x3/nnHy1SZtk7Wo/trVFl6066CpsyMoc4gaCp65leKFebJGhIF7sQkEmrAzKcFgQdjEUNChi\ L8qYnT2DCYrCXBER3HTMNcrsZ9KWJEubpPk6H170dDNt+qXVXdgXnpvwPu/zy/M+z/99jmAY\ Bg9yiTzgtQGwASDIsrzshmt7+v2inYCq89n+gbZXgQyg/ScZ+Lq2369GCRzz3kSf4KXLm/s/\ BcoB6V8H+NLb79ezBN5oucXrHbv44HAYm06HUtYXWE+IogCX3f1+IHDiiZscbH2UUBzqt9bw\ 3pFxrBapXXFdWDeIRQBK+Rd+wzAC/pZBHt+9i7Eo96xicx2dz4yCaGtXnL3rAlEAoLgu+jH0\ QHvTCE1NOwjFWWTOTVt58ykToqTnH0NIPp9vLriz149AYF9DnN1NtSQyLGnY3Gx3T3AjXLYz\ KD23w6devALkAeNvtaFS0uNHEAP1VVb27bSt2nl0Ks13t3XQMn1y9tjLwMxaW1Tg+bgfCFR4\ 3ex9eO0pHIrAr0PTcxC542uGEDgSWTJtzdsrqCwr/G3gN0gnosUd0qGjsnjycyC52uuwkI+3\ kk8+gp4pLCZnQ1cojsvjLHSoKofhhA7ZWA+52E+AiiAagCFbu64DVkBYCUCxfehHEDstsn7i\ RySCSDhMx7kN+vkXIwn25tRCx1ovDE+6QMsdJjNxRXZ0fw9kzYA5IL1icMv7pzH0U+jqLcnn\ 8+nmAbNm6pJAMsihCtTU0xVeNwag6fetym1lctqwYSk9FMw0f+OTrg4C0+YZS3aDIp5rDEpt\ fWAcBR1mRztFc7NmOt63bOwjdJXbYVC1QgN4rNENFpcLR7Wi0B1QtK49f83ggsAdinjuE+AO\ unoAXYX8zAXZdub6cq+hpNB9HsnxSmNDPaX24ptGIpCIjYM2C4Y+BgwDN4BtgBtB3A+AzQP2\ SkiNgJockIW33gbClmWuSiMzcRpH1bN/jITrGrfVYCmid9UeqPbUEUtCNGlsQZ3dgpZpBcC+\ CUkUqHZDLAXpyCAY6h3iP7+LlwgwtdI8ICm5k09i81zC6il7qLqGUtvadCKnwvjkXchMgTb7\ lSydegeIAONA/J4UL7EMn3Q1FMy0/IDAwVQyURZXvTjtQkFRFrNUFkKxPInoEOSnU6TDZ2Xb\ mY+BSSBsFq264kRkFpZdmTneiLPhLJKjDdEyd5/WcuzWwrrLZtKgzkI2Augp8slLJH/vlb09\ IfOfR4HUvFquBmAewgq4leRrzdgrX8BSegDBUkS89RRa7hfyM9dIj30re3umgDhwF0iYWqGv\ eiZcWBNACeAyn2EnYF/wrBuAas6O87qSMrVGWyzFa1uaeVjGvEObCbWw/3UTImfqir5kaje+\ Df/3AH8CAs3OiTI23BYAAAAASUVORK5CYII=\ """ ICONS["editunindent.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAAK/INwWK6QAAABl0\ RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEgUExURf//6f7IjP//3Mynfv//\ 2nhfQv//7f//+4BlR/vQotqyh9+zg7KOZ/7HjP//0sqlfbiTa//0v5h5V6GBXtKsg/jQo///\ /aCAXf//6oFmSHlfQ//msMqmfdOpe//xwty2jIxvT////+y7hv/erf/Tov//1s+pgNqte//W\ nv/6x+GygOa3g/vKlXthRMSgeMifc6GAXY9xUf/2wv/bo/nEi4ZqS6OBXf/tvui9jrCMZP/b\ pP/1wLiSacafdN+3i///2+rCl3pgQ//3xdKoe///9aGBXY1vT//5x4ptTdqtfIltTcWhef//\ 4dixiP/KkP/bpvrIkrGPav//z559WdexiOa4hvzQoP/suYNnSbSQaP//2I5wUL+Zb5aWlgAA\ AP///9v++JMAAABgdFJOU///////////////////////////////////////////////////\ ////////////////////////////////////////////////////////////////////////\ ////AHNt5EMAAAFHSURBVHjaYognAAACiCE+Fi+IBwggBkImAAQQQRMAAoigCQABRNAEgAAi\ aAJAACEpiIPRyCAeIIAQCuLisJoAEEBwBXEa2E0ACCCYgrgwY+wmAAQQVEGcvH8QdhMAAgii\ IE7NQZodJoQKAAIIrCCOWYRTUJHdh4WJjSEOzQSAAGIAyzP7qhi5SDDZM4ixoZsAEEBABXF6\ 3vxcOlbW7k6afAxM6CYABBBDfByPcKS+lgkvIyOjX3gUC7oJAAEEMoGDwzRYXVs2RsDWQk4V\ 3QSAAAK7gVUqwsY5UCjaUDzEHN0EgACC+IJV14xbxsDNQ8HVDt0EgACChoOjV6go9nAACCBY\ SEp6KmMPSYAAgseFZQD2uAAIIERsKmE3ASCACKYHgAAimKIAAohgmgQIIIKpGiCACJoAEEAE\ TQAIIIImAAQQQRMAAgwAc39jgBib/28AAAAASUVORK5CYII=\ """ ICONS["fileclose.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0\ RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAXMSURBVHjaYvz//z/DQAKAAGJi\ GGAAEEAsMAYjIyNBxdbWUQpAygGI7YFYARZ6UPoBkD4IpA+cOLHyASGzYHoBAogRzsDjABub\ GJCl9f///3OAqGViYGWFuP3fP4j+379/Adn/wAYD1R0ACjWeOrXmACEHAAQQXgcALRYAUvOB\ OADE5+LiZJCTk2OwsjICsjkYNDUVwOrevPnI8Pr1e4Zjx84zXL16jeHr168Mf//+AUltAOLE\ 06fXfsDlAIAAwukAoOUGQGo9KKhBFhsbGzIEBjoxqKvL4g1akGPWrz/IsG3bLobPnz+BLAJF\ R+CZM+suYHMAQABhdQDU8v1AMQEJCQmG5ORQBj09ZZIS19OnrxlmzVrDcPHiBWBo/AWFgOPZ\ s+svoDsAIIAwHAAN9vNAvoKUlBRDVlYUg5SUCFkp/Pv3nwzLlm1n2Lt3Hyh9gBKp4blzGz4g\ OwAggLBlQ1CcK4iJiTEkJgYz8PFxM3z58h0Yt/cZ/vz5A2bjw6AoYGVlBrP//v3HEBDgyKCt\ rQOyUAFqNgoACCAmLKk9ABTnvr4uDDw8nMAE9Z3hwoXbDDo6isD4l4OLYcMvXrwFqlMAJlRx\ uLo/f/4yhIV5MYiJSYAcEWBo6O+AbCdAAKGHQD2IUFFRYZCQEAb74vbtJwy2tnoMSkpSYAXK\ ylIMAgI8GD5//foD0AO6DNzcnBjqmJgYgXLmQJoJFBX1yBYCBBATciEDyucg3+voqAE1fgNj\ eXkJuOUwoKWlwCAiIgBX8+HDZwYXF2O45TAgKMgLln/69BU4Onh4+EDCDvr6vgowNQABxIKk\ 3gGiSQicx0EuBwEQffToFaADdVAMNzJSZfj58xcwhB4zBAfbY1j+7Nlbhpkz1zI8ePAEXC6A\ AC8vL9Cx70BRAbJrAUgMIICQHWAPKuFERITBrkYGFy/eAlvm5GSEIm5pqQ3MnkoYlj969JKh\ tnYq3GIYYGNjA0cDMFvawxwAEEAsSPlSgY2NBRxfnz9/xcgap09fZfjx4xeDl5cFijixliMc\ wc7w7dtXeBQABBALugKQT7E5AASOHbsAdMRPhqAge6zyhCzHBgACCMUBoIoF4oAvODVcvXqX\ wd3dDMPnIHDgwHmiLAcmdjgbIIBY0IvGX79+MXz6hN0BkpJiDEVFkVgtB4G4OA9w3t+79whe\ y5EbQQABhBwCD0BV6u/fv0GJBEOjjIwUQ3V1Ik7LYSAzMxBM43LE9+/g3AVvLwAEEBNSCBwE\ 1eegEADRyFhKSoKhsTENa4JbtGgHVkc4O9uA6xdk/PPnT6B5fxmgDRcwAAgg5BA4AJL8+vUL\ MKUKofi8uTkDq+X19dPBcf7t2w+GjIwADEeALN237yhc7NOnT7DghzdUAAIIHgLQZtQBkIGs\ rKwM7OzsYKyoKIth+ePHrxja2uaCKyeQmqNHzzDMm7cFIyRUVGTg5rCwsIALIZAd167thEcB\ QACh1wWNoJbMhw8fGDg5OcD48uUbKMH89Okbht7exeCogakB4RMnLqCoO3nyOsOqVTvg8m/e\ vIa1khqRLQQIIIz2gKlp8HpQraWurgkslgWQSj0DYKmnwrB48RZwkOMCIHUyMmIMq1fvQmol\ vWW4dOk8KPg3XL++KxA51wEEEIYDTEyCwA0SZmYWBUNDQ2D5zU1RsxuUpY8fPwZqtIKC3RDo\ AJQGCUAAYW2SGRsHgptkLCysAnp6euD8Tw54+vQFw5kzp4E56ye4SQa0HKNJBhBAOBulIEcA\ 5cCNUhUVNWCrRh3eFCcEfv36DUw71xmuX78Cb5QiW47sAIAAwtssNzIKEADKg5vloJyhrKwK\ TNkKwLTBj9Xid+8+Aqvnewy3bt0A5vkf4DgHNcthwY7NAQABRFTHBNSMgrZkHEDqQdlKRESM\ AdEz+sfw5MkjZIPBHRNgdiPYMQEIIKIcAAOglgy0MWEPbWQil+3wrhlyPifkAIAAYhzo3jFA\ AA147xggwADtTBaocZkPNgAAAABJRU5ErkJggg==\ """ ICONS["fileconfigure.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QAAAAAAAD5Q7t/AAAA\ CXBIWXMAAAsBAAALAQE2cE9bAAAAB3RJTUUH0woNCgoG/r/MNAAABM9JREFUeJztl89rG0cU\ xz+zO7Or1TrR2pKNIIIkoGBoDznkkNxyMSanQo69pOdQiimBUppbCoFiekxskvwNSS6F0FMP\ hRCIHUPimPyASsGNpUiJflhKIq92pwdrt5J/xBZ16aVfGObHzuz7zpv33ryB//EfQww5/k+h\ dxV048YNffz4cYQQmKaJEALDMA60XLlyhevXrysgiMjInnzD8zyWl5cxTXOgSCkPZExKSafT\ AUgCHWAD0EaPgFJK/Uta34ZRIAGYkQYEYNq2zePHj5FSopRCSjnQVkrF7WhHSiksy9pxztZ+\ 3wZdoN2TK6IjQErJzZs30XqbncS4e/du3D59+jRSSkZGRpBy8zdaa4QQhGE4ULTW/f+VgNHf\ gX1a/dTUFADVapXFxUVOnjxJp9OhXq+TSqUwDIORkZHYiHchEEH0E9gTWmtWVlYAKBaLABQK\ BYIgIAgCtNaMjo5SKBRIpVK4rotSCq11TGKr8KEI9AteXV0lnU7TaDT48OEDQRBQq9VwXZdc\ LseTJ0/I5XKMj49j2/ZuGhiewNOnTwFot9uxeuv1OhsbGyQSCQBev37N9PQ0Dx48IAgCMpkM\ lmUNT2DrAq01L168iPtTU1MsLi7y6NEjLly4gNYa27YxDINnz56RyWQACIKAbre766Y+qYGI\ RKTCW7dusb6+ztraGq1Wi1evXlGv17FtG4BMJoPjOGitCYIAKSWGYQx/BNGCqERGFIYhyWSS\ o0ePEgRBPN80TbTWJBIJXNfd5gE7GOH+NdBv5f1aEeJvz42ERXOFEHS73W0a3DeBMAxjlwNw\ XRfTNEkmk7FrffHLZ6jvsvi/l5hvfst09Ruy2SzNZhOA9+/fYxgGjuPwqTA/QCBiurKywtLS\ ErVajWKxyLlz5/B9n1wuRzqdRimFPxnw/fjX/Jj/gU6py5kzZ1heXqZYLFIul8nn83ieRzab\ JZPJ7EpiRwL5fJ6JiQkKhQLHjh3jzp07nD9/nnK5TLlcBsCwNT9XrmGsa9Q7mPt1jrNnz3Li\ xAkmJyfj6xzg48ePcXtPApHBWJZFNpvF8zzu3bvHwsLC4MrPBetBCVUzMHv26Ps+Uko8z4vj\ gmEYSCkJw3BvApGxhWEYx/VEIkGxWOThw4cDC+0jmk4L7FqICTSbTcIwRAiBZVmxO/ZfUHsS\ iKz5/v37LCws0Gw2efnyJZVKhfn5earVKr7vI4Tgpz++wmqDWzYwx0yeP39Os9nE8zwcx2Ft\ bY2ZmRmklDiOg2ma+ydw6tQpLl++HI9fvXqVt2/fopRibGwMpRSJJcGhdy4iaGGGIRcvXmRu\ bo5SqQTApUuXqNVqOI6DlHLAbfc8Aq01t2/fplQqsbq6CoBSKr7ldtvNzMwMhw8fxvf9WFOW\ ZQ1/BFEYTafTJBIJhBAIIVBKxdZsdQyO1NP8SYtux4dDm0mN67pIKeOApJRCCDEQOfckEEUt\ 27YxTXNgcTRn9svfaLfbvEm/odVqxZdRlKYBA6F8C4GB9AhANxoNZmdnqVQqOzLdCWEYDoRc\ IUR8Ae0DGnqJYY9ICpjo1bLv20FA90oXaABvenVX9n302cxWYchEZQh0ezL8SG60QwFYgN2r\ jb7xg0B05iGbD5L4YdIvQLD5WOgndZDQfXX8NPsLzuabzPO9pmgAAAAASUVORK5CYII=\ """ ICONS["filenew.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAABl0\ RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAATrSURBVFiFtZdbbFRFHIe/mTnn\ bLdlW9vabUuLbZHYFixoxNQQMFGwkRiR1hgwMTYmwIvGV01QefJFE6I+ob5YuRiNdBVFQwmK\ JYWSGi7BWwu2jS1UehG7S9fu7jlnfDhL71vapvySyezMzszvOzP/mTNHaK2ZqpaL1/qAnGRR\ TGswk5LDaFf3R6OREzXrK+rn0s1IUZ/2UEXQskw12UNDLA7xGMQSXh6PQ+xWHgdbDuS5rvN8\ qKltBHi5tubh6U84QXKmSiFASjEtKSVI8wl8PkGaJfBZAmtibgqUNJzi4DJTSeMlEPtDTW1q\ Jo9ZAWbtIMGywDTBtMCakguJm5FusaJ4ZZqSZh2IUKipzZovwKzrrtQEU3M8N00wFH7LB1kB\ H6X5K/1K+jahxbFQU1v6fABuK9NImk+ZDSGQPgv8fggsMSnOrfQr6a9Gi+ZQU1vWogHAzEsh\ pLdMfr+XMjIMglkVfiUCVVqL1lBTW97EMVLtgjnLNL3doV1wNSgpaDnfyeCNiFc/lrSltVuB\ EKcbGhoq6+vr7UUBkHIChIbiYDary7MBuHkT2jvAcbz/wiPDnGs/mVfgZw/w5qIAQDIoTXBd\ LwFE/4POLm9LK+UBSOmVJz3AYgAAGIYXE4YBo6PQ3e3VW+ErKGcEpTyQqVo0ABifhZ6epPlf\ JygLv0Je06NIHNQMbosKMDo0QN/hvTj/dGIoED2nyKjZSO7j5cQjV1EKigdOm0UdjatmB9A4\ 8zWPx6Gv4XXKnh6k8Oou3N6zk9ZbKbirdTfPPRNOX7c2UdtYI9amBBBCpEciMDLivWhs2wui\ VBoZgYEBcIofQUcjZG3dSuGN3ajrF8baZLa+xX1bfBjllUT7huKNXfRAql2QJLdtSNjjWwzG\ I1m741Fv2159+vqddH33GmVPdpBVuxXpfu4NZxmU1uWiikoZ+vQL/dW1Bw4duHz2emqA5JQp\ g0mHCcncdSdDKQVu/2USf7fjL9tA78fvULxDEHh2O7g2vvvXoKVFeP9BfvjtnnhJYDjt8nax\ eYlJs5jpQtJ6qS+6annQbyg1ZjpbSvx+nCWJ9/GtqQLXAxVCIrMKQPkA0JEh3OGwd3FxgYTN\ 9Y8O9aaeAQmGur251pCQEnc0ngwWz0DLqZteg2N75i5o28FJxJ3Zl2COAOlVGwl3F9B/oR2t\ wTyzl6U7qtGASETRdhzhzyR66nuOni+MSeV+k3bx8IFPOmhJdQ5o71Y0DnK7lL18Ffnr6gj0\ t7B0VzUqv5TIZwfBTRD/5RJ2ZzuB7duoeXDQUln5w1uO6a8bu/TgnA6iVDCG4QWqkSzHmveR\ s0mjgiUMH25ksLfIexrboft4DPvPdnK21YnHgudf3LdBZMMCTsKpMMYEoFjXzwhp8O+XjQzf\ +zbpJVVj/TI2v8GVn0zily6SVpBnGpIVCwKYDSj3hXe5dqaYxNoPKVqzDimTB4rWSCXwP7WH\ hm+D0SMnRWhnM+dSAuixW/78ZAWyWbblVYLLy1EK/JXriRw5ytCPf5BxdxAlYbiw2o6trv1V\ a+3AIt0HZpIQEFi9kXBuCZlP5JCR7iMyMjqt3R0DuKXMohVjv+Wdfh0vRCnPgTtlKKZ8cqRc\ AsdxseXcvkvnKsdxp9XNCKC1tj9oaHId7Y4TLGhOJneyDOVoV9tzAKCgIG3wPcC/ENv56H//\ Ng2EWMcCswAAAABJRU5ErkJggg==\ """ ICONS["fileopen.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0\ RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAhKSURBVHjaYvz//z/DQAKAAGJi\ GGAAEEAsIIKRkZEqhtW0blZkZmCd//3Xz6Ndjf7NQKFfQPwPnx6AAKJaCDR27mzk5uK+5+Ol\ Z8/Dw13lG1zmBBTmBPkPnz6AAGKh2OKuHYZAO+Yryovo+3noMrCzsQAxM8PrNx8mAKWdoKHw\ G5d+gABiIDcRtvfvFWjt3d3YM+XA/7v33////fv//7dvf/5/9erbfxCYPv/k/8jECd1ApUL4\ QhoggBhBDuAOP3zg/9+/TP///WcEugjiKBCCOg4ozvDv55u2v3ui9oJ80963y+E/A9N8DTUJ\ eV8PbYZfP/8x/P79l+Hv3/9A/JeBiYmRgZ2DlaGpa+eXQ/uW+Zw8svQ0UN93BrCpqAAggMBR\ YK8jZL+pVpvhA5D95y8Dww8g/vkHGHZQ9s6Tnxh65lzYxuK5pLHYSVhUUJA3y91Jk0FOhp/h\ x49/DP/+oZr7588/Bi4mJgYXBw2e1288+4AO8IFGA0ZUAAQQCyQaGBg+Aekn34Ca/0Hw7z8Q\ GuQIQz0+htIoRYZvd/7WW1srMNiYK4L1/PmDO4rev//K4OaoxHDq3GMjHZ8Z3Vdu3u1huN19\ BSj1FzkkAAKIhQHmAhzgH9DNz85cZ5D48onBJ8GcQVyUC6z83z/C6eTNmx8MMaFGDDfvv4u+\ +fLfR6BRNUDhz6BAgqkBCCCwA0Ah+BeLGz49/8zw6NQlBksjeQYTQ02SE+qvX38YpCR4Gfzd\ 1Rk+fniluPk0gyA0LcAdABBALLBEhuyAP8CMc/fIFQbOf78YEsLNGXh5SMutVx9+Ydhy+g3Y\ Z4zMjAxsLMwMj35LeLJazG76/Y/zGQMDy2+Ir39fBAggSAhA4x3u8q9/GH59/MiQEG9Nsq+v\ PPzKENBykcFAQ4RBRZofkk5+/mfQt9BhUNb5GQ306AdQNt17/BHv1xfPFwMEENgBf/+jhgCX\ IAsDm5AQw+nzTxhMDWWItvzj198MudNvMNgaSTFkRWoz3HwJScQgwMbKwPDy1S+Gl++//fz+\ +ceLr9/u6jJ8uXEDIIBwpoGdD9gZujbdY5CX/QBOdP//QsqH/8DggkTZfzANEwdlxUcvvzHo\ a4gyZEdrM6w9z8Dw7ivEbHCZDyyKWJjZGI6deib+5OClfwzcv5kY7nYfBQggaBT8A+d/GHgO\ jL6Nh54yLC3VZ+Bh/c/Ay8sOlv8DzD2/QdEFtBQUtL9BBQ8oy4Lk/vxn4GRnZRAQ5mDYeBGY\ 1H8gLAfVdaAQuHXiIcPzYzf+MbD8E2D49eYYKLYBAgieBpBD4Oj5Vwy6irwMPmb8DPcefGIQ\ EGJl4OZjAeefT8C89BlYXnz6DsFfgezPQBqUxz6/B+KnEMt/Qz3098dvhg9P3zNcPXKL4d0r\ oI4vv14yCPyRZPhy/ygoRwAEENQBEJ/ASuy1ux8xNEYpMfwAVWeifAz3Hr5mUNESBaUlhl9A\ i4BmMnwAllxPX/9neP/5H8Pj5z+B/H8MHz//Zfj85Q/Dj2+/GH7/+Mnw5/NXhndP3zG8e/+N\ 4e/33x+BGl8zMP9nYWD6z87w8SSoeP4GEEDQRAgMQmgI3H70h+H5628MPhZCDMAinuEfG1CQ\ j5/h6r3PDELivAx3gD58/PIf0MK/YAyy9AMQf/z4h+EdkP/1C9Di778Y/gCD5s3ztwx/gdnr\ LxMHMEh+QUpAdgZuhj/f7jC8O/AI5ACAAEKEANABzED29sNPGXzMRRm4gBa/B9UJoAIcyLn1\ 5CcD83tgGvjDyPDz939wSIDSAigd/Aayf/2BsMHFOjCkP737wsDExsnAyM4IiSsYYP7LyfDr\ 7SEGiNE/AAKICZYLYOXAobMvGXzNxcCyn4EF0qN3wKD+AAoJXoaXr78CLYZYCEqUv0AJ8Tck\ Mf75x8jw7ftfhqdPPzF8AcYVCw8vAyMLlgKM5R8Pw4ej20C+ByVCgACChwDIAY8e/mH49vUX\ g7elMMOTLwxgDOSCU/x/oFP/MDIzvPv4g4GRiQ3s4z9gX0Mc8xzouJevfzIwcnIxMP/7y/D/\ xw/MOob9Pzew9PvC8HrddSDvK8gBAAEETwMgvHz7A4YACzEGoDlAXwATICMkC4HyMDMwfv7z\ sTM8ffKZgZOLmYENmCnZGP8ysP3/zfD1HVAMKC8hwsHw/+dPIP4BLCO+A0P2J7is+Mb5G5j+\ /rP++PeHDZb9oHXCX4AAgoQAND8fOP2cYRkw72vyAgV5EQ4HtjHADY4/QK/+0WQFsn9C2MCg\ AdX9v3+zQdl/INHzhwWIuYCYHSrGCaR5eUPbHzL8ePT0AijuoY74DxBA8JJwz6lPwET4n8HD\ iA+z5QoOAUZgVDGCWztMQAEmJmBFwwihUeVAmBkq/x/Ovvv8F8OPt0DXvVl/GBr/4MYJQABB\ E+F/hsNnnjMkuWEv9yHRALOYGWwhiM/MzARu0iMsZQKLIRzCCJYHqT98FRjlf7/eY/hx9x2y\ AwACiAlWEp6/9IIh0V0WZ0UDMwjZcIiDmMAhgSkHUw+SZ2Y4eBmYor/f2w2N+x+w/gJAAIGj\ 4M69twzKcrwMGlKsuDsQTNAiG9hE+vkLGJzAku4nMLGB6B8/fjF8B6b6H8AE+PMHSO4HsKz4\ xfAPVAgBNX369o/hzWNgqv529RzQqC/Q+AcDgABigYXxe2Ah71x+FtxaAzcy/0MKFRDxD1rz\ /QNmL5Chf4Cp8h8w1f4D0n+g9GNg1vn8+jckQYFc+h+auP5D8b+frxjeb74GzX7wxilAAIGb\ 5cDgBaU8UPjz07AbCApyUNv3KZQGFxIAAQRzACu0G8VKQwf8h/ocpU0IEECMA909BwgwALtM\ QRt4t1DIAAAAAElFTkSuQmCC\ """ ICONS["filequit.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAABl0\ RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAcNSURBVFiFxZdJbBxlFsd/76vq\ zW7b6bbjcRzbMTFtBwXFCUs0yUSAZsSiREI5cOSAECCEEFIOEw4gYQlEFokcuMCBK0KCAxeS\ gWQyCGVjEQ4mE1tKPM6C21nsdqe73V3V3bXMoaqrF1tzi+aTSl8tr97/X//3vve9Etd1OSiy\ F5gAxoEw93dUgClg4qjrnpC/w96uWOz43x56iB1DQ0R0/b6ily2Lizdvcnpmhpxh7NOBib9u\ 2cL4xo1cmZ9nPpOhallrviwiaCIopdD8QymFJhKcK6VQvk3rrCtFIh7n0aEhXNfl64sXJ3Rg\ fHxwkKvpNPnhYVKvvooWiayFjgBKBERQ/j0lgvjPpOWcxvsA1SqlM2fIzc4yPjjI1xcvjutA\ OKxppDMZUq+9hh6Pr8ZucBLq6iLc3U0okUDr6sKybcxMBikU0FZWcFZWArWkdQ6FiD/xBPnL\ l1nn4YR1ANd1qdo2rm1j+Q5aweMjIyR37UKPxVYR7Ozvr8e4WOTG6dMkCwUQCdQLZscBEVzX\ BSAgAGAVi4imNcc8FqP3qafoGB1dMy9aR6S9ndHnn+fG5CQyOUm7UnVwEcRxUK0EHP/CLhbB\ JyBAfHiY/v37CTWExbFtlubnuTM3x925OdoiERJDQ3QPD9M9MIDyATc98gjFzZu59tVX9Fcq\ AQHXcVBKBZgeAccBoJrPI6EQSgQ9Hl8Ffu233/jXp5+yKRRifTzOSCyGUgq5cYPc999zKxKh\ b/9+erdsAaB93ToeeOEFpj76iC2JhKeA66JEAkwFYPsXt06epLq8jF0q0b9vXwBeNU3+8fHH\ nDtyhD+3t/NAezsdgGuauIaBaxhELItkqYT1xRdc//JLquWyRyKRYP1zz5HLZsE0EdNERAJM\ 1RSCXI6lH36gY2SEddu3B19+6pNPqF64wGM9PYQsywM1TSIDA0QGB3ENw3Puz5HJSfLffBO8\ n9qzh3R3N/hklUiAGSigwJOzWmXoxRfrsv/6KzdPnGAkFvOASyUcwyD57LP0v/EGfa+/TmHX\ LoxcDtc0oVQCw8A6c4bCzEzg59GXX+by/LynQIPqqpYDtYrWkUoRTiaDhDv+wQfs6Oz02JdK\ AYn4zp2B801PPsnVO3egVPJIGAYYBuXPP8e1bQBiXV1kw2GcTAZZlQOuG5TTddu2BY7vXrlC\ eGaGaAs4pok0VMtwLEauUIAauGmCaeLMz1NNpwO76IYNVNNplAh2YwgcxwlqeVcDgfTUFF2O\ QzWdxlpa8uStgTQO14VKBcplpFwOCIhp4szNBWa9qRT3LGsNBWohUIqOhx8OXlj4/XeSoZC3\ tg0De3kZ99493GLRA20clUrw9VIqQT6Pm81iXboUmPxp61Yy1SpKqSAHdADbttGUQmpVyx8i\ QlzXg91MA8S2va9sGVIuI4ZR35D8jarFISu27S1DPzcUgOWHQFMKY3o6sN84Pk6xQZ3G7bZ1\ KB9QNYCLCKGxscBm8fJlEuEwSgSrKQS2jfiroNhAoH/bNgq1/GjZ21cpsAa4EkFPpeoEpqdZ\ H4msVsB2nKDRMBrW7vpUCquvb80Go1WDRtDaofX1oYaGApvMzEydQGsSii9v5fp1Ktms91DT\ ePz99yn4O1gjiUaidy5dIqJpzSFQirYDB4Ld1chmUek0ulKrC5Fl23XnIqSPHg2cD+/ejbFv\ X9D91OxKn33GrR9/5Ob585w/doyRtrYm8PDevejj44Gfc4cOMRaPe8qJYPkh0GsKqFpfJ0Lp\ 9GkWT51i/dNPA7D77bf5t66TOHkyIGHPziLvvEO+WmVPKERbNNoEHnnllQB89ttvKZ89y1hv\ b9CmrQpBa6Lljh3DzGQACMVi7Hj3XcKHD1Pu6anHWSn6olHadN1rXjZsoP3DD4m9+SYqGgWg\ tLjIz0eO8Jdk0gNvIaDXQhANh5ti7OZy3H3vPXomJmjr6QGgf/dunJ07KV67RuXKFeTqVSKa\ hjY6ikqlCG3a1NRRlRYX+efBg2zXNNpDoQDcbQ1BUw40zPbUFAsvvUTkrbcYfOYZTzJdpyOV\ gobltdb4z3ffMXn0KI/pOgMdHfXO2G9KVhOAtXv5lRXU4cPMnj3LxgMHiCUS/xPYyGY5d+gQ\ 6sIF9iYShDWtGdy3aybgOLiw5nrXlEJE6Dh/nsVz57jd24saHSU2Nkb31q2AV+Ey09NUZmeJ\ LiwwEosx0N3dFPPGf4SqbQeVUAcqpmWFi6ZJtLNzTfBa0rUpxYPLy8hPP6F++QXTcchZFglN\ Y3M47K3xZLIOuAa4iJBeWsL0/r4qOjB1u1B4XMPrhJOdnSjXRfzWuSZZbe9z/L8ix3WJKkWb\ X9nEvyeuWwesnfv+bNtmfnGRqwsL3C4UAKZ0YOJmPn/cBcq2zYJfBe/XsF2XxVKJP/J5gAn5\ f/+e/xfF1j2asPNr6AAAAABJRU5ErkJggg==\ """ ICONS["filesaveall.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH0woaFjotVbc2tQAAAB10RVh0Q29tbWVudABD\ cmVhdGVkIHdpdGggVGhlIEdJTVDvZCVuAAAEiUlEQVR42r2Wz2sdVRTHv5O8JI+XXy+mqQ1p\ k6UoakDtSkGo1WVF0P/AtbgQl0I34qIi7rR/gF01bkRBMBKsqwptCNiKKVQamuYZ25f3Y97M\ PT+ui3vf/MpMIYXmwuXeuXNnzvee8zlnJsBj2tW13ywRg4wgCABmATODKB3zcwZzdsyvEQla\ +wd49LCLzZuXAwCoVRlfW7tm33jzZTArRBWnT80BALb+2snte+m50zhK+2ljC2wIX30xbX9d\ /zKoFEDMiGJCP4zBkgo4++5FLC40Ua+PoT4xhhs/XDySgO1/WhARnHv7Ndz6831bLYAEIgpi\ Nw7bZGMCr7y4grmZBpqzDRy1sX+fMQa12kh1CJgFLOo6S7I+PlbD4skmmjMNNGeeTACLot3u\ QFXxGA8wRNV5QlMPnFqYxeLJWS9g8sgCiAWdgy4GYQRVi+Bp037zxrc5AZ9+/h3Cbh+dvX38\ /OMfqD1t2s+99QnWf7kEVUWr1Uav0wMxgwy5EBwH7YuLH+Drbz5Gvx/BGAYzwxiCtRa146J9\ /fctF0ZiEDMMEVQtasdFu4mdYfadKPHA8dBuiJxh9rAadgKYBcIKlnwI3nvnVaw+v4ypxgSm\ JutHFtBudxB2+4h9rJ+dnwEx4+5OC0wuBM4DzGCRxGXD9tlHF/AkrYr2C+fPgllw6fL3Pl19\ FjAJRCyIFSKKv+/uQdVCrYX1o6rCWvh1hbU22aNqk2siwv6/7VLai7WDiTNZoA5AUcWt7d3c\ tXhAs6ObO+Es7qXdTh/9Xj8tYAXacwLEiUtDwOLD4IpRlSEpCIkNod8LEfZDb8BV0zLab99+\ gJWVZ0BMEHZ7HITeAy4EUnpizoiJY4M4NhiEEeKYUsPEYEqNF2lfWJhK9kjeA5LUABHF/NwU\ VBWiNhlNTIgig8EgwlgwhonRAI2xUWeEJBNbb7SE9l5vgOnpCTBT8q1J64A/HbPi/OsvJESL\ KMIwRhwb/5Db48RKZk0O3S/S3u1GqNdH/Vc2I2B48mIhimNCGEa5lw67iPgfFim9X0b7iROT\ Dk5hqAiEM1nAmThba30aUemL80Kq7xdp395uYWlpFsKOAREGkA2Bf7DXG+D69XsuI0QSMPNj\ arzsXhnt8/MN7xVKQp5AOPwahv0IUURYXp4txFkLMddDDGQPUUb7yEjgQyBQHoZgFDUmBoti\ MIgRDiIwM9rtMHPCvMGq6+FcREppv3//HkQE/dYDqFpwHMPahvMAMaPXC5PfqXZ7kHNr1tXZ\ 0OTX03kZ7VeuXIO1QOfhCADA2gZENoIakbiiYgyYBMYwzpyZKU2tYiZUQVlG+87O1aDs41Uj\ Q4ii2P0w+GKyubkLEYFq1rVa8ErqCdX8WhntVa0WGwKRuLQjJ2JpafpQjmdPnAUu6/60Rhym\ vVKAI5Z93jsGxsdHwGwRBMMeIAhG/EncGhAACBAEQTK31vUy2isFmIFB779H6Oy2QMy4c2f7\ UI4zawlsWloPhmEo0l7VAgBYXf3QHhz0YAyj2Wwkv2bWWt+RuDF/nc6La3t7+34/ILIRVAn4\ H3oJzBj8WcbGAAAAAElFTkSuQmCC\ """ ICONS["filesaveas.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0\ RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAenSURBVHjaYvz//z8DNcCbmYz3\ /4vlKby99ZTh1ZmDG359eDPRZff/A4T0AQQQA8gBlOI3Exkcfl7m+////eb//z/c+f/76bn/\ d2fl/d/twtBPSC9AAFHFAe/mMuz//5rx//+7/EDcBXYECEMdEYBPL0AAsYBCYd36I/9///7D\ 8PvXXwZGRgaGP3/+AjGQ/xtBo7L/gNWAaFm2GwwZ/ozQePjEwPClnIHhVj8Dw097Bs6n50Gi\ F/DFAEAAsaxff/S/rb0+0MB/DH///WOQkRAES1y++QRFoa66DFYDvh9PZOBQATK+Ah3xBZqe\ 3nAAJa4w3H4rxND2r/i+CwMDIy4HAAQQy2+gr378/M3w9dtPhj9/EQ4w9W9kkBQVYODgYGXg\ YGdlOL+lEUPzv88PGP5/XwjhvGZlYGACOuAXE9BybobnDz4w3JSOZ3CSlmGQlAz9//z5aqyO\ AAggFlCQ/gVa/PsPhIYBbi52BiMdeQZBPi4GAX4urK7/eaGJgVMDaO5vkKVANUx/GBjeC4Hl\ bn+TY/iooMPw6/krBhYWJpxRABBALOD4BloMxkA2DLCxsjBIigkwCIAcwIfpgP+/PjAwsWxj\ YGTnZGB4DsRMwOT0ix0YDfwM719/ZrjN6Qr21IcPnxj+/fuH0wEAAcQCSkiguAeHBJJCCVF+\ oAP4oQ7gxvT9xQkMrNJAxh9eoKXcEN9/BrKZ2RieveVmeKnsxPAJaPn3bz+ADsBd1gAEEDgE\ /v4BhQBqFAS6GTPoa8ox8ACjgoebA8P3/z8vYGBWAVr4mhloORD/ZWNg+CYITE/fGQTdixk+\ nPnE8O3zV4afv34z4CvsAAIInAhBlsOiAgbq8vxwavpzfwMDuxrQ8v9Ai7+CEh9Q3ydQGuBg\ eHj3DQO/vx/Dl31rGEBm/wY6AF8UAAQQyx9wIvwPVPwPHAK3H7wEB9k/UEEBpUEGgDwBEf/H\ oPp8IgOfGTC3vIf6jAmYdr4JMfz4/pXhFqslw5t95xl+/foDLjd+EQgBgABigcU9OCqA9PU7\ z1H4f6EJFEYr/NrGoG8JTHSMQB9/gVnOBvb93esPGHb99mb4dvoGwx9QwQZywO/feNMAQABB\ ogAc/H/hhRHMQoilkBCCpREVgfMMLBLAQunLH1BJAEl834SB8r8Yjr2UZPjKxwq0+DfY95CS\ E38IAAQQJApAuQAcBX8xfIxMi/09xyCrCjIM5PvfEMu/84JD49GFKwwXOfzAPgZbDPXYb2BU\ oDuAkdGQExR2//+f/woQQCy/YeUAtCASFuQBx/nff//h9C9gSfnjxy8G0z+bGFjlDIGW/gIm\ QGDhwgzM+3/4GBhYmBlOPRFi4JaRZ2AHWQq0/MGTV+Bo+AUNAaClzBCXgzET1CGsAAEEKQeg\ QQ2KAhdrLbhLQeLfgEX0z5+/gMXufQahr4IQ/d//Q4z4DTTzPy/D8ysXGOSDyxlkeSXAZoA8\ 0zNrPZj+9esX0BxQdDGIYYkBToAAYoH5HL0g+gn09TdgIQKpGf8xcD2dzcBibAEs7X4Cff0b\ kvf/8AB9z8Lw4AHQE3pAy39DszMQ//zxE2zGj+8/8KYBgAAC54I/SPEMUvz16w9w9oH5BoQ5\ Ga8DlasBff8HnOIZQCn7Px/D8wunGH7pRjD8+w3Jcl+/fgfj70CLYeULPgcABBAiCqAWffny\ neH06ceQHAFOlJAQchVQZWD7Byxy/3wFOgBY5v8GRgULK8O9x/8YLotKMnx/cR/o459g9TIy\ guB08A/arsDnAIAAYoHVgiD6G9DnP378ZpCT44cmyr/wKPgNquN/2zAwsN8FRsNdcFp4f/86\ w3MGJQYuoFvY2dmB6lngjZm/4CgFlbI4HQCq+b4DBBALKKWCgv/7958M30DBBtT84cM3eKiA\ HMH65iQDoygw7zMCi102DTD+/OY6w7Gtqxle6WQz/PnyEx5SIJqHhw1s8V9wPYMRBcAsxPAN\ mAW/gzgAAQQOAVBwffnyDdzEAqWJDx++oxjI9hHYWJEWh5vw+cF1hr2z5jDcUUpj+Pv5J1JU\ /QfT7OzM4Cz49/9f5BAAWfgVaPFvZNcABBA4EYKqzJ/A7AJKxaAyXFaWD54mQPjfHy6GfQeu\ MuixKDJwvbjIcPnYWYYvllkMotCsCwspeOkJ0gcM/v+gOgScsxiBjjj/AVs8AAQQC6i2+gHM\ Mr9+/oE2Nv8wXLz4HGzgP2idwP76LcPf778Zzq6Yw/D5Bw/DSzE3hj+3X0MKKqg65BCQkREA\ 5hCgpaDC+h8oqnEnQoAAYgHV17/BPv8NqUCAWFqaFyUB/vvJyfDj+gmGX1KWDP9VHBlE/iFK\ zr8oWY0RWCywMLCyMoETIKyAw5cLAAIInA3/QPMwrNnNxsYEZIOKTwj+IyQNLISiGH6JaDPw\ IGVPcIEDLCVBDVcmYMEEC35I2fIXnA3/grMhM04HAAQQyy9guf7l7XuGT8DGIygx3r17BykH\ wHwIpJlEGf6+fo4kjlR5oasF0l9fvQBXw3+AZcP//1w4HQAQQIyg4DEwSP3/8eMXcAIUEOCC\ N80QPRgGeDCi8hFsdLGXL99A1YM6Ogdw9gsAAoiRWp1TcgFAADExDDAACKABdwBAgAEAe9Yo\ uuUpCPAAAAAASUVORK5CYII=\ """ ICONS["filesave.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0\ RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAATWSURBVHjaYvz//z/DQAKAAGJi\ GGAAEEAD7gCAAGJBF1i3/sj/37//MPz+9ZeBkZGB4c+fv0AM5P9G0KjsP2A1CBpVDMR/9eYj\ w/t3nxkunJ/JiG4fQAChOGD9+qP/be31gZr/Mfz9949BRkIQLH755hMUTbrqMiT5cvvBywx/\ fv1mcHIu+b9vbw+KIwACCMUBv4G++vHzN8PXbz8Z/vxFOMDUv5FBUlSAgYODlYGDnZXh/JZG\ khxw5+Erhr9//zI4uZowSEqG/n/+fDXcEQABhOoAYHD9BVr8+w+EhgFuLnYGIx15BkE+LgYB\ fi6S4/kP1Lxfv34xsLCgJjuAAGJBVwjyORgD2TDAxsrCICkmwCAAcgAfeQ4AmfnhwyeGf//+\ ocgBBBBaCPwBxz04JJAUSojyAx3AD3UAN8kOAIXop4+fGb5/+wF0AGq5AxBAGCHw9w8oBFCj\ INDNmEFfU46BBxgVPNwcJDsA5PNvn78y/AQmRPSCDyCAMBIhyHJYkMFAXZ4fWXkcFNyvXn1g\ +PLpC9js30AHoEcBQAChhgA4Ef4HKv4HDoHbD16Cg+wf0NX/oTTIAJAnIOL/wD76B5f7D+f/\ /v2b4c3rDwxfv/4AJr4/4HLjF5YQAAggzFzwD5IAQfT1O89R+H+hCRSZhrAhDgfRoHT0+dNX\ hq9fviIKMFCBBHLA798YaQAggDCjABz8f+GFES6L/qI5BBS/X798Y/j29Ru0JISUphAzofzf\ mCEAEECYUQDKBeAo+IvVx3+QHPPz5y8wBqXun8ACDG4xiP6NsBzmsd/AqEB3AEAAsaBnF1gZ\ ALJEWJAHHOd///2H07+AFv34AbT0+w8GVkZWBnZmRgYuVmaIJb//ItULUEuB9IMnr8DR8AtL\ CAAEEGY5APUdKApcrLXgciDxb8AiGuRjSAUFUQNx7F8ksb8Y8j2z1kMdhpkLAAKIBVuRiV4Q\ gYL3GzCYkQ2F4b9//0KL8L9Y5ZFrSlAooIcAQABh5II/SPEMUgzJRr+xGozqENzyYAf8hUQL\ ugMAAgh7FEA1fvnyneH06ceQHPH3LzxhotIIy7HJycsLAdPBb2AJC0kP6A4ACCCMRAirDb8B\ ff7jx28GOTl+tHj+hxbn/zDSALInYDniL44QAAggtGz4Bxz837//ZPj2/QdYw4cP35B8iGoh\ Lj6MDcK8vOxA/m94ywrdAQABhBECoGD68uUbvDn14cN3lGBFDmrkqEEVR7A5OJihtSx2BwAE\ EEYiBBcqwIYDKNhAZbisLB/WrIWeE3AlSkjC/sPwD+RQLA4ACCBUB/wCFTI/gYXNH3hhcvHi\ c7AF//4hB+0/tFBBhAS4wEISk5bmBydAUBoAYQYGVAcABBCKA0Dl+W+wz39DKhAglpbmxcjj\ yD5GTnDIwY8oI/6A0wCsgEMPAYAAwsiG4CITnO8haYCNjQnI/g9sosMwIxAzQX0CEWNgYARj\ kByM/f8/BEOiABgyf2BRwIziAIAAQnHAr++/GL68fc/w6fkrcGK8e/cORh7/8+cflsT2D2t5\ AIuGr69egKvhPz9/Ah2A2qYECCBG9CAxMEj9//HjF3ACFBDggjfNQOogmAEejKh8BBtd7OXL\ N1D1oOL+AEq/ACCAGAe6cwoQQAPeNwQIoAF3AECAAQCAcO8MtwKEUgAAAABJRU5ErkJggg==\ """ ICONS["helphelp.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA\ CXBIWXMAAAsQAAALEAGtI711AAAAB3RJTUUH0wkJFDADdQaFPwAABcBJREFUeNrFl01sG9cR\ x3+7XH5zrZXkyHKcKlKAJkaa2lSE1GmbFhYgB2lRJAWaIkAOWQOGe+jF6LkoJPTSq90ee/Gi\ l6JIUbR1WsRoK6GJAzuFYiZ2UjWCLdqq9UFSISWSu/xYvtfDkhQpkiabSx4wxPK9mff/77zZ\ mXmKlJIvcmgApmkObLD6mDUJTErJ6cackCAESwKSz2yZyUH3sizLI9Bv3JmwDOAsYCKItzqt\ Do6AeYDb41ZCSCwpuHwybeYG8kAf8AXgAmCoCkTDEPTDiUfzRMNBAKQo895dHbsExTLxcpU4\ MH/zsHVpOmMufC4Ca49bhpAsAnFNhVgYvnuySnxKZfoJH6C3aAf4CbCeEXy4Jnjn1i7X1kYN\ 4TK/PGq9AszO7HT3htYDPF4HN/QQzD5d4funNEZ0PwCZPcHahk3FFQipNO2efVJn9oTK7IlR\ 3v7A5Y83SnyyFYsLwdoNw5o9lTMTfQm0vLnxxGGHH3zdT3wqAMDGjsvWjgPAizN6B/Gry3kA\ nprQeeFpjS8/GuHNpW3+dPuIASxeH7Kmnt9t90QHgQa4EYVzc0GODKs4VUhlKxSLDt/52lDP\ 82yQurqcZ+KozqGoyutnxqjJFFdujxnAIjDdaqN2Cbi4HoLXnneJhlQKDmTzoi/4QSL3N/MU\ HHBrCmeeO8zxcRshib93yFroSqD+qV1QFXhuqsLkuIZTBacKdx4UO8A3s3BtBd5ZgeurkC+1\ k/jWV/WmfTSs8vKpAH4fCMmFd3XL6OaBs4BxKAInpjTyDk0ZH25zFE4FbiZht77+WQH+nqhQ\ LLlNnXAAypX9PY6OaDz7pTyAISRnuxEwVQWmJ6qAil2iKUF/O4GP12lbt0ueB9a3nTY9v+at\ rW3V+Neqix4LoKkgBGZbEK4+Zk0iiIdDMBRTKZbb3WmHAs3nsgufbkLVbdfZ3Ulz/PSxtrl/\ fFglmVawXa0JNxKDjSzxpYg1CSQbK5NSem4L+DoJ3En5+MtNGInB6kbnebv2Nq9802ib+/d/\ BZ9s+jsCNBYGsiAl+wQahSWk1SjXfJRrnZH98XqPVFrZ5kffGyUa2v+i7bLk11erQLBDP+gH\ KUF4mEtaa1ExIjWKZd/AlTFQvsePXz3WAf6L31dYzwW72oQDHpbXBiheDIh6dRNCoeAMBi5L\ KX7+Rnfwla3gw21byqlHQHh/sraGz98fXEHy0nHRBp7ek/zqSpVPt4OoSm/bg/HV2GFJwHxV\ KJSrD2fu1X6FpyYibWu/fKvG3UwArc8JlquAFABL4Kt7AJKNBOPWwKfKFlCleUSgNH8V9nXu\ ZyRraQ1lgKPLFQDPNtlMRM9smUkhSezZoCoeaEPAmzsomcL+qy7fVbrqdJPUHgCJucq5ZFs1\ lAKrLIjbJRcj1r9T+937MTbyUCx5NSEwQHO3mXVxvQRmdSvHl4H59R3VODLcfzO78BlGwE9I\ uowP6WTt/gz+s6EAMlfHaq8FJ9NmTkguFSsq2d0C4QA9xSfy/OyHfl6c0Xn5G8P89FUNI8pD\ bbYyeZyyBMSlucq5XNd+oN5AJj56EKNUzOLX6C6Ky+NH9bbkMjlGT/293A7X74QBkZirnF/o\ 2ZDUx6wQ5P62MkylkCbop0PCkTBO5cCRlOiqa++leOvWECBywOxBsA4CMztmTkhmpSR35fYj\ ZFKpDnfqsRC/veZVxXtp+MP7UHI73b65ucmbyyNN8LnK+dxAXfGpnJm4PmRNCcni2ytj8cP3\ bc58pcDo6FhTZ8+Gv36wb9OSFMmkHvDnj4ZIFx4BRKIX+EPvBfXudfpd3VpIFSMXfnMjYhzT\ 88xM7DI2HCQUDBGNeXFQLOZxHIetTIkb9ww29o4A5LyAO//5LiaN8ULeXPhnzLoInF3f1c31\ W3q8Xk5bCksMZKSR4RLedy4u93rr/4sAwLcLZg64CFxcDHuXU+B0s6o1czvJRoYbdChf9PX8\ f5KTsrpteUOGAAAAAElFTkSuQmCC\ """ PIXMAPS["icon.png"] = ICONS["icon.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IDN8dNUwAACXRpQ0NQ\ aWNjAAB42u2ZZ1BUWRqGz723c6Chu2kyNLEJEiU0IDknkRxEBbrJ0EKTFDAhgyMwgohIUgQR\ BRxwdAgyioooBkRBAQM6jQwCyjg4iqiobKM/3Krd2l/7Z2v7vVXnPvXdU/XdcKruU3UAkB1P\ 5CSlwgYAJPHS+L4u9szgkFAmdgzgAFF4qANqBCc12cvP2R8IszIX/EvejQJo5XxP999f/48h\ cpN4XAAgnJDjuVGpHCGnCTmWm8RdqY+vcGZasrAGOwqZzhfeoJCDVzjyGyeucMw33vl1jr+v\ g5DLAMCRYr4y4egKR35l6qkV5sTykwCQ7RLOV/vW92vENVceghnHS4vi8yIStcB/O//USyx1\ 5YVHpsclpunG8f5H+6ysl2/0xurrOoAYFd9rm4XfgP0KAKTke03tMACU3QB09HyvRR4HoLME\ AOmnnHR+xrcaamVAAwKgADqQAYpAFWgCXWAEzIAlsAVOwB14A38QAjYCDogFSYAPMkEO2AXy\ QSEoAQdBFagFDaAJtIIzoBOcB5fBNXAL3AUj4DEQgCnwEsyDd2AJgiAsRIZokAykBKlDOpAR\ xIasISfIE/KFQqBwKAbiQelQDrQbKoRKoSqoDmqCfoHOQZehG9AQ9BCagGahv6GPMAKTYDqs\ AGvA+jAbtoM9YH94AxwDp8BZcB68D66A6+FTcAd8Gb4Fj8AC+CW8gACEiDAQZUQXYSMOiDcS\ ikQjfGQ7UoCUI/VIK9KN9CP3EAEyh3xAYVA0FBOli7JEuaICUBxUCmo7qghVhTqJ6kD1oe6h\ JlDzqC9oMloerYO2QLuhg9Ex6Ex0Proc3YhuR19Fj6Cn0O8wGAwDw8KYYVwxIZh4TDamCHMY\ 04a5hBnCTGIWsFisDFYHa4X1xkZg07D52ErsKexF7DB2CvseR8Qp4YxwzrhQHA+XiyvHNeN6\ cMO4adwSXhyvjrfAe+O5+K34YnwDvht/Bz+FXyJIEFgEK4I/IZ6wi1BBaCVcJYwT3hCJRBWi\ OdGHGEfcSawgniZeJ04QP5CoJG2SAymMlE7aRzpBukR6SHpDJpM1yLbkUHIaeR+5iXyF/JT8\ XowmpifmJsYV2yFWLdYhNiz2ioKnqFPsKBspWZRyylnKHcqcOF5cQ9xBPEJ8u3i1+DnxMfEF\ CZqEoYS3RJJEkUSzxA2JGSqWqkF1onKpedRj1CvUSRpCU6U50Di03bQG2lXaFB1DZ9Hd6PH0\ QvrP9EH6vCRV0lgyUHKLZLXkBUkBA2FoMNwYiYxixhnGKOOjlIKUnVSU1F6pVqlhqUVpOWlb\ 6SjpAuk26RHpjzJMGSeZBJn9Mp0yT2RRstqyPrKZskdkr8rOydHlLOU4cgVyZ+QeycPy2vK+\ 8tnyx+QH5BcUFBVcFJIVKhWuKMwpMhRtFeMVyxR7FGeVaErWSnFKZUoXlV4wJZl2zERmBbOP\ Oa8sr+yqnK5cpzyovKTCUglQyVVpU3miSlBlq0arlqn2qs6rKal5qeWotag9Users9Vj1Q+p\ 96svarA0gjT2aHRqzLCkWW6sLFYLa1yTrGmjmaJZr3lfC6PF1krQOqx1VxvWNtGO1a7WvqMD\ 65jqxOkc1hlahV5lvoq3qn7VmC5J1043Q7dFd0KPoeepl6vXqfdKX00/VH+/fr/+FwMTg0SD\ BoPHhlRDd8Ncw27Dv420jThG1Ub3V5NXO6/esbpr9WtjHeMo4yPGD0xoJl4me0x6TT6bmpny\ TVtNZ83UzMLNaszG2HT2OnYR+7o52tzefIf5efMPFqYWaRZnLP6y1LVMsGy2nFnDWhO1pmHN\ pJWKVYRVnZXAmmkdbn3UWmCjbBNhU2/zzFbVlmvbaDttp2UXb3fK7pW9gT3fvt1+0cHCYZvD\ JUfE0cWxwHHQieoU4FTl9NRZxTnGucV53sXEJdvlkiva1cN1v+uYm4Ibx63Jbd7dzH2be58H\ ycPPo8rjmae2J9+z2wv2cvc64DW+Vn0tb22nN/B28z7g/WQda13Kut98MD7rfKp9nvsa+ub4\ 9vvR/Db5Nfu987f3L/Z/HKAZkB7QG0gJDAtsClwMcgwqDRIE6wdvC74VIhsSF9IVig0NDG0M\ XVjvtP7g+qkwk7D8sNENrA1bNtzYKLsxceOFTZRNEZvOhqPDg8Kbwz9FeEfURyxEukXWRM5z\ HDiHOC+5ttwy7myUVVRp1HS0VXRp9EyMVcyBmNlYm9jy2Lk4h7iquNfxrvG18YsJ3gknEpYT\ gxLbknBJ4UnneFReAq9vs+LmLZuHknWS85MFKRYpB1Pm+R78xlQodUNqVxpd+GMeSNdM/yF9\ IsM6ozrjfWZg5tktElt4Wwa2am/du3U6yznreDYqm5Pdm6OcsytnYpvdtrrt0PbI7b07VHfk\ 7Zja6bLz5C7CroRdt3MNcktz3+4O2t2dp5C3M2/yB5cfWvLF8vn5Y3ss99T+iPox7sfBvav3\ Vu79UsAtuFloUFhe+KmIU3TzJ8OfKn5a3he9b7DYtPhICaaEVzK632b/yVKJ0qzSyQNeBzrK\ mGUFZW8Pbjp4o9y4vPYQ4VD6IUGFZ0VXpVplSeWnqtiqkWr76rYa+Zq9NYuHuYeHj9geaa1V\ qC2s/Xg07uiDOpe6jnqN+vJjmGMZx543BDb0H2cfb2qUbSxs/HyCd0Jw0vdkX5NZU1OzfHNx\ C9yS3jJ7KuzU3Z8df+5q1W2ta2O0FZ4Gp9NPv/gl/JfRMx5nes+yz7b+qv5rTTutvaAD6tja\ Md8Z2ynoCukaOud+rrfbsrv9N73fTpxXPl99QfJCcQ+hJ69n+WLWxYVLyZfmLsdcnuzd1Pv4\ SvCV+30+fYNXPa5ev+Z87Uq/Xf/F61bXz9+wuHHuJvtm5y3TWx0DJgPtt01utw+aDnbcMbvT\ ddf8bvfQmqGeYZvhy/cc712773b/1sjakaHRgNEHY2FjggfcBzMPEx++fpTxaOnxznH0eMET\ 8SflT+Wf1v+u9XubwFRwYcJxYuCZ37PHk5zJl3+k/vFpKu85+Xn5tNJ004zRzPlZ59m7L9a/\ mHqZ/HJpLv9PiT9rXmm++vUv278G5oPnp17zXy//XfRG5s2Jt8ZvexfWLTx9l/RuabHgvcz7\ kx/YH/o/Bn2cXsr8hP1U8Vnrc/cXjy/jy0nLyyIXELmAyAVELiByAZELiFxA5AIiFxC5gMgF\ RC4gcgGRC4hc4P/YBb7u3QiDrAzHxgDwzwbA8zYAlVUAaEQDQAn7B7ihA0BG59TIAAAAIHpU\ WHRhdXRob3IAAHja800sylYILs3NTS1Ky0zNSQEAMpYGKe+kx74AABE6SURBVHja7VsLkBzF\ ef569r17L+09JaG7k4ROupNOjhQgIFs8bKHIpnColA0JxgmmklIFV1KpJJAY40pSUJVU4qoE\ qErKMRVwxXERQ+KSA0Rg/CghsIKEJHRwRkIPpJNO99Rq73S3r5np/N09MzuzO3u7e4fjImSk\ vpnu6enp/+////7H9DLOOT7Kh4aP+BF0VxoHvxYsbfsQHPrs0CP6Yh9mQgWI8E/Q9d8yhuuo\ +iGTCm7S/zeoPDD7zl/vr5sBDZse7g9o7FhTQzT4ia2rEY+GYRIXBDRw19l06t57ZpW691nv\ GDU/K/6Zpe0cyeYoRi5O4lL6Cs/nczo3zY/NDn/9Z/WqwG4aK/joH3yaBozDpDcaVExXMXhJ\ vfSa+98rve97r8J9T19e+dlPbWvFobfPseOnzgWJPbuJnj+sFwT7Vl+VRNuyxIcSxBKxGELB\ AGKRMCPR6FuMFdA0jX1oUZw7Z3HFtcUw4P/Gwd3s+AgxoOjISXRcnB/Q1BjBrZ+8GhNj0wQs\ ZkUxQ01M5tW7um4wqX1Mnjn9YVxWrT9c3HHqsoWpW8xk8npZSwIjIwP43YeeMY8MX1kcAxi9\ OBTUMHZxCq1tzUgkYmUdAwFNgIVkkGGYS186Boc4izS1gKxIumCUmJvkSuk964jHI4jHQjQ3\ LF4C3EdTcwOSySb/hdN1sGCwoihmCwamZ3M49v4kjp1LYTydwVzeIBvOpb8iph0PAclECJu6\ k7hm3QqsbG2Expg1d68fYI9rt/nVlSvELbH6ABiw4KItQPxctoAfvT2K7x0exUgqB+IFTL1A\ fwxFmEnMk96M9Gjwk3fGMHDsPO7bsQmDvR0kYaxu4u2zKZxBy8H6uTKgMhABF1LzeO7QKEZn\ C9je14FIkOGnx8dJInRSG0NOjnElvIIxwrl668wUnvrBEH5jWzei5jyam5pJpBNobGxEJBKp\ SrzDKNMGwF8UA6jM502k5gvYuKIJ93y8B4mwhnwuix++PUdzM5QKCAYwEWxwqcy0bjgxmsLB\ n3Fc29sCfXoa01QEcaFQGH196+kcWkASYEmAvfq/IAaIwyBIzhEyz2Z0XLycAQkAJmfzRLcS\ eVXo2rYyQmxJErLEm1y+ETYC2sS1tiZrIJ47EsCXYgaXeqTTaWQy8zB0EyfHZvAPL79LpJg4\ N5Emn91Utk7Sb+MBtRkFWedMK9P5lpYWdHWtcIm5P/FuCZDMhfm/z4BLly7h1OnTuDBdQEPI\ hE7mKD2flURGg2ruImjJGwZNT1kCTsSrCdu+gB0hMsRiUfT09HqILwVHd5sLA+jNwY9RaP9M\ FYXN0AMHqDxF4XM+WD/gcRRopUcJ9FJzWbx38rS1CsBt68IIhyMoFPIEaE1IXU5J4qdIFQ6c\ SRNj7PDdtDw3wRAKRckCJKJpAs48uld1QzNO0XgUnAU6IBHDJd2l4bhjBYi5wWCgq6Ehdpfj\ GLowQcQ7Qg4z2SypnHGvpvEvNw78yXV1MYDTKmYNjpeOnsdzBy9gNJ1H1pSaSyKtSz9BEWjQ\ qk7KCTJObaTrYjJMiDyZQ7VyRLxZoKIhSZHo+lX7EcMpAoQskNGgoxuF6OfBwxscx6fcB3BL\ ACiibcT26zcvFD6zSCiHt46P4MLY1CCN9vt1xQJz6Vm8cOQ8vvnaBZydMZEnkdVMC9hsPeSG\ FGkmMxyGZIztu0nGmMoCaKKfvULipBuqvxxPRyB/EoGZPUD+XFUzaNoWoAYQXLWiDckWMrOh\ gBjg+roYcObiDJ57cwwzWeF42IguVla3HB7LXXUQX7d0nSu9N00LrXUPBsjHTCUp5GfLMzPy\ CObegZY9Xt0hMi0MqcMMMulj80RdDDh4ahKXMkqHlU1n1qqLuiEJk8QzWFKgpEEygiRBuvVC\ q03dCQiCFGOEtbxiiiA+T0zQ1bVmzkHLnajqCjt+QE1mkHuu68KAU+NXkM8zGRBplh5zQ3e8\ QeWTmw5THMkkYrhl+5nEAJmOlTHAirYE1rSMk8hPUKPlOlvSQs4FtHliQLKSN+iOBcyaHCG3\ JRGVuhiQFl4LWRupu0zZcrUEYqWJOFpNpc+67CP7CaCzXij0Xk6UGgKEyl0EfjsGW9Hf/haC\ 5mXqUpDOkTApTEScxFwN4xWJL14rDFreHsdv/lq/6muphZOQNZWCtDSFsK43gcf+eZKPZObq\ Y0DO4MqZMYv6LYHN0mdBaGOYYWVnMxqjISkdUjXkJFU/pTUcTVETn9oYwGD7MBrNQ9Qjq9SE\ mMcLhiSKSZXKViTeAUErGoxFNKxbGZVpHgreQT6WK9+gysqr2rF6RQJPP/sqHxmtUwKEoyJf\ 5aB+UavEQOs6ItjZD1zTk8LyVk3pP4rJjaK1IP3OpxCYP0Z6PkVEFpSakCVgtpMkcEBEkFpu\ AeJdUSGVWCyMq7o76wqfgz55iopHWFNmjFkOjApyOALE2dXtEezeXsBg12GEg6Ok3yoAkgZQ\ 6rOSHCYwQzwnVhqGkiR535SmUEaNhmm5zUIbAi4nCD4eYlEC6gmfYQGnxwpoAU0he4UjGQsQ\ sdxaWcUEofuxEHDjWmCgcwiRMBEfMIoPmaaD6kUzZ0iCmW6DnXXfMoXCZMpXkMdp8riPO+xH\ WJEJtYTP9jMeBgREXmkBEVhLIKNJmpQp5NbKRin0u2ZNCBF2hhhSKCKywAdp0wuW16cr4CQb\ Dz2vRJzcZlBh+SyVnNXXVPeFlMQ3lnl/5bEBrBU1qyRSysNnDwOYxhaUgE3drbTaVjxvZTRF\ f41EORoOQAtaGUtb7IVIW8kQWDouYVm3PMSCLRm6BEyJ04YKkzmdTRZDPr7Zd1U5L7fp1Ynn\ XgwoUwHGFsSAq9oasLWnGUHNtNxWoxjrSy9HsyyEWSRSOjdilS0bL8RelLylDqKPWbCU2fYC\ hQVgMKIboEf7KsYBbgmwV7Tm8BkqfA7WgwEd7c24b8cAwtTvp8fHMJfNyxXWaJhMhqLMpqJa\ MEMxiFnpKm7pveR+3naS6F26SIUH1HyEmQWZz0AQRnA15ts+Bz2ypqbEaCkTagifyx0hhQGV\ GaBFo+iOxXD/pzfjhr5OjF+awdjYOAUWNP9MSq0edwObQnhTDyKV7Uc6t0KZUtPwDmwq1E8m\ WxGJRIkvxIBwL/T4gCsc9tdnrwoU71UNn7mPGRR5/4VUgGlKY1oaorhpsFsmQ04ncgKuCQgv\ K9FmytwJHZbhr7DtpOMJfhYhbcKK/9W7crkcCUsAo3wbLmEQWrwXLS3JqkheKtIuG1lFUnhZ\ EtXDABZgFSWA28GPq97Ssgw9PSbOnj2NeCyOgGBfQa06s8FOV3odMa+QlYBycQMNNABZDf0i\ aUUA02wAnV1dVYhHGfFeFeAWrlU3gyYv5hC9EsA0X/r98u12UzKZRDQSQVw7BVzSizkACYbF\ yI7ZWaDIcmD53cSEZuDctynmH0Z76zLoyfYqxC+UIrNXt5oZ9FoBXmoGNR8zWP6i8oGjhA1C\ twW9wnlRps1UxZRbP1SQI9qDy0iHtlG5DohfTVMIIxBuUJ+/6ibeKwGlO1iqh88lVkB8/2O+\ xPMSJ5lJp6M4MBHPkoTc68Gyh5QFkEzIK5WwvwiZNMYMScqZJ8mvbgOmDhDKryZzd7XMafIy\ M7Yw8WUYgGqusPtDiunGAO5IgK0DpfbWLRjSE3QPLEqwE3rzHXRTQ+DKf0PTM8SAnJUd4kUX\ uDBLcfVTNGCU+l+DTNcXUYgV0d6L5AsT7wlwAM/nsWrhM3ebQVN5BkygvGCCL3AIHSaHhoci\ sFP9jDFHAuTn2dgGkoI2GPFroc0egnb5CEnDBEV889ISCEfJCHfCaByE0bAVRvNW8OgamoTm\ Y7Ph69S4V74cA2pRo2LwZEvA3PjUFSOTyQXDoZA0T0WhYNbKW0QS2IlL8SHTqxL2i8i+hQnk\ ElQ6drq+Gnknqlk7M0LVvmjzylk+meyglchksrJ+OX0FK7taa8YQtxk8cGF85teffu4gPr9r\ E2ZoINOVUeHWDq4iwHjrnnvWji6/a3trW6Vxl7JD5AevHsXZ8+P4rTt3lDhB/pJjlniCT5DY\ 3/3g37z0S3/1jX16UyJSXFGfbR40TEC6DJpWdeKe+/anK64yyurjSPFzOYddVwkTlUvgRQCF\ He25UvB0PTc/j+lLaWza0IMv3f2ZChFj5fA5ODv0SLZx8Gu/QrUvpdKZ66nEqjD9pmXNsa5b\ rl+LVGoWDQ0xhELVEkvc+RLkEGsRYX8k4bxILLeJ5dxLvBPycoeRUfLDt26+GnfdcQvCPh9T\ K/sN6nk5c2IC2St8wyoLHsSsvWu7W7u+9fW7cPTwcfSuWUEeXGPN4lrNTNWC/IvZTcJ9d5Et\ cV+wViV/gIo+RW3Ep1JvYWjoz2V9377P+KbDat9K4x8+B5fGgKLjlEoN4bXX7qMA6QgSiVXY\ suVRrFnzBV8TVs4M/z75/GWk08dkfXLyx75+Qq1bafxjh6UywJU/2L//Xqxdew927nwFs7On\ MT9/virxpYRUZhD38RHqJd4fl7SlSoDtIgpxXb/+foTDzWht3YJVq26XLz958lv47nc7qXTg\ /fefdQj7zndCOHr0ITz7bCNOnHjCmejs7Cm8/PIvY8+eDooy/9Xj8AwNfQXPP99G6nAz2f8L\ 8hnB6Ndf34G9e9vpfKtsP336cRw58gXpJwiTd/ToPfTuv0epAGCpvw2Q0aOdMU5uwaFDf0wi\ e9wTlMRiXfjsZ4exbdu/4PDhBzwENTX1Y/v27+P48cedVRsa+iox707cdttZIuZiCcPD2LXr\ ItrabsLw8MPymeHhh+jd23HrraN0/jjeffdh9Pbej1xuHOPj36eyh67HaMwvl6vAkiXAlT+4\ +eZ/lzr74os30OptJJ19Q75g+fKdJBXL0Nl5i1wtN2qvXHkHEbON2kecyU1M/AQ9PfcSsRE6\ 3+MR59Wr76f2IBG4G1NTP5Lt09Oi/26aRhDd3bsJg/aJsA4DA0+QZD0si7hmLFAiAT45wUWB\ oCUCDQ3dtJrfpphHx3vvPUnieB9uv32IVOApEsc/pVWYLgtKAoG45VIX4/hC4TIxLCnroVCr\ B73DFEGKPuFwOzE7JdsKhTT1s9vbqJ6S14nEBpK+Xjl+PL6+YvisLZ0BrCRrFCAw/G3MzJyQ\ 9cOHHyTpeB533jnrk1wpD7wE8YI4cZ3LTXlijVxu0mqfoH6t1na6ZdR/yrkfDDbLPuPj34Ou\ z1G5Qtf/6RM+fwB+gAiKbPLffPPPJIAJNRge/js0Nw9YUXBWrszIyB7fhEpJSo9U4kYCrKdp\ 4ll6xguCZ878I13rBI5PUr9PWtvpbqT6P8nNmOfOfZNw4GaawwSJ/lfR3/8YNmx4jKTwK5KZ\ 3vCZLx4E7YHs/IHcKjt3Di+8cB2hfTtN5D9www1Pyj79/X9EuDBIuvqGb4bJm6zg2LjxUSL8\ GUL1HkSjyz0qI5i5d+8Kwpcfoq/vL2RbX98jEgdeeWU56f+rWLfuLwkIHyTsuZvUYCOp5gBd\ f5HU8sESNVAgyOqNxMgVfnHz+q5f3fdvv6dNjE+jvWMZSUKg5i21tezcqGdKvMa9/DYjw+Eg\ Drw+hN954HHz5JnzLy0GBE8MnRjb9d7pMXS0NtDKZ1RixCz9VZir7nZwXLs6uZUy9D5j9XX6\ FPf/OPERuItW7iWd+7PW/p4pjvGpyzh1dlR8vzuxGAnoJ3qPtrbEtc/t2hhsFOGzlbhwxNtV\ t/frudvtT9PcydD6eYimEy0WU1jFDxpwhbROPtDd7nNflJkr8/ivHx/UZ2ZmDRp3C1tMMsL+\ oSWVa6XR/cCP4j4jWJsg3XU7lLW35Xnr3ryDt25Y+3XNg+KHltnRl/azpWRjfj4/teULEuEQ\ UoVJ5Uwz7LH07IUXnZ/asv//9fhH/PgfyB9ZzISEX0oAAAAASUVORK5CYII=\ """ ICONS["window.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0\ RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMLSURBVHjaYvz//z/DQAKAAGIE\ ERaTHhr+//dX8O/PH0z//v5l+Pf3H8O/PyAMZSPzQfQ/CP0XLP+f4T9I7O9fFD1/wfz/YHGw\ PFzN7w//zqefB1r7D4j/AwQQo8XkR4mMTMzzRPnZgAYCNf7+D6Gh+M9vGBsoDmT/AauBioH5\ /+FsFPVAc/7ALf7H8P8fkP79h+Hfz1cM/3++yme4UjgH6IAfAAHEArLcVE2AQUaYi+H3bwYw\ /vULFf9EZv9Eo0HiPyF8OBtI/waGLdANDP9AYcwKDW+gIxi/n2D4z/Z/IpC3CYhfAAQQE0gc\ bvkfiAP+AGlgSMLxXyQMNIMB6CEwDcZQsX//Uen/IIyevJiYGBj/i8B4IAYHQACxgFggn4As\ BTkAmf77B9VyuCP+QhyB4qC/mA4ikL7ZgJgZIIDADrCWRPIBzNC/CIP/4sHoIfQH5nhg4gTx\ YbkMQv1n+PmGi6FrGcIVAAHEAhRjcJCjXrYCWfgf7Jn/UPZ/KBsi9+kjJ4oDAAKIiZrlADbL\ /0OjAtkxyAAggKjmAFyWo/JBDviHog8ggJj+//tPR8sZMBwAEEBMDBSGAO5gx7QcWxQABBBF\ UYDPctREyIAzCgACiOwowO5TdMsZMNSAsicyAAggskIA2WBUy/DxYaGFGgIAAURyCKBnKeIs\ Z4BHFboDAAKIpBDAlrhIDQn0RAgQQEwMRIYAuuXIpRspIYEeAgABRFQI4LOc5JD4i+oAgABi\ +v+PVMuxpQPSHIMMAAIIbwhgt5xCx6DZARBABBxAyHLc0YIrjaADgADCmQ3xFa2UhAR6EAAE\ ENa6AF+lQklIYIsCgADCCAH8NRpllv/DEtoAAYSSBghZjt8xuIMdWR49xAECiAUUAp8/fwMX\ ELCi8j+UhvD/o8hhVfMfSRxqCdwa5GgHiv8GNRiRAEAAsYBcZ9J0C96BAPVs/qL3dJB7PMg9\ JjQ59EKGGAAQQKBuAx8QywIxP527hR+B+DFAAMH6LZxI/Rd6AWAXiOE7QAAxDnTvGCCAmBgG\ GAAEGAA4876roWF48QAAAABJRU5ErkJggg==\ """ ICONS["docs.png"] = """\ iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABHNCSVQICAgIfAhkiAAAABl0R\ Vh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAATQSURBVBiVtZVZTJRXFMd/dzYGhh\ kYhmVYhhE6ArIoFrFiBhIVN9RWMGpjH1qrTfvkQ5M2mj61j61tTPrQpGqXdBESK4oKaKEaLNr\ iXlRcMFjBJQwOfDAzzHzwcftQSzVYax96Xv4P95zfPefek3OElJL/w3TP6rhRiLlbXa7dtTU1\ nS8bjR+uFsLzNH/xtIw3CpFrdTheX7FmzZuleXlxdkVBjI4yYTDQJwRt58/f29/Y+LkGu+ql7\ HsqeKMQaXqT6ZWqDRveListdTrHxxGhEKgqjI1NUc1m43edjp/OnetpbGn5zAhf1En54DHwq0\ JsWb1mzY5VVVXC8ATIE/URG4mJ4ZsDB8Y/7unxGh49mO5wbKoCcb62llBCAqnZ2eQkJoIQD+u\ bqpqU3PH7CdtsRHu9aL29gXs9PdbHwGmZmVlRGS5KFQUUhZGuq5wcGUFLTCTT7cYdZQIhmJCS\ fkVhUAiSFi4kvboavc0GgG7//vAodE2CRcninHcGh0fJm2ElEABFwTo8xPyHl/iudtEWDKKzW\ vFUVpK4bRvOpKQpHy5V1ZIKeoMoWVxQXr6s+d33d2b4vviEK0eayMsvQBcfDy4XKEOgKCQpCh\ afj751a3HW1EwBTgSD+A8exHDmTKweSgwCw1s31KKMO82/4ppdxXt3unAcbmCB9oCygnyyp+d\ CvB0yXNw83UHu8uV/w8JhlKYmLtfW0nLoUOh0KHS4Gxr64KQhOiXPa3PPQQur3AqNcg2wlqdz\ 1Wbiy5udZP3QxFJTmLKiQnJdLm7s3UuGw0F3bS3tLS0MFxdzyWIfqwuF1gPHpJRBAMN40NdrT\ rIXT6hjaGGVqLg4tIhKbzBAxKbn9qIcOqNMpF9vZ+blY8R99y2BrCzcK1dSuXUrLpeLD3Z9L2\ movyojoeBf1RhU5W7HcPflVdFJbvRmE6a4WLRwBFPYgtluR4uoFNjOs3v7dgBUVUXTNMxmM0I\ I/AGN64Mpptj8nH2isHCLvHTpOICg0Jsg0H9kTn1+vTXTa7FNm4cx1obebEJnMhIZ8rHDO8Cy\ ufmTbxsIT3Cgw8+eltO0ndlLcvIFisrN9PQlcHHXhc2yt3e3QXae8AOb7Mu99kUvhapP7fuaf\ n8+MaleYjPnYIg280v3IAtmSxrPKexp/Y2j7fuxx7eTmT9BWU06nrRq1udX0dhwInKx/2g/wG\ Qfp2TGZ1eueIGyxUFGIsOcPVrPqfqdBEPF1CY4+bTuCPa4k2QVRqhY6yAlYQnVs5ayxDUPg+5\ PTCMnJKra9Ri458r9M/eG7s6yxthwWp0srU7CuyLIYHCIW53n6Lt+H0LJvPHia6yaVkG0wTyl\ l8fEuJHkZDfQPQlWg2MtDV91bCqpmkZyih2LMRaLyYIn6Tmc3hRG5oyg/zmZdZ4lU4C9gfvUX\ fmR+lvHBVLmAK2PTTcxffpsEW3cnFbqqMktT3UWlWeSmBiPxRiLFtBR4itjQUEpAP2jfvZeb2\ VPazPtzadvy5vBZgYG6hkePiul9P3joBcez3y9JWqja37y6lxvauLMCjdah52iGXnsaTtCa+O\ pfu2a0sLA0D78/g6gX0oZmYz/t50nhBB4PBUGa9QmU7ppbuhm8AoDgw34fMeB+1LK8BPj/usy\ FUII+QxBfwBZwhv1Cgi1ZAAAAABJRU5ErkJggg==\ """ def getIcon(name): icon = ICONS.get(name) if icon is None: return QIcon() if isinstance(icon, basestring): pixmap = QPixmap() pixmap.loadFromData(base64.b64decode(icon)) icon = QIcon(pixmap) ICONS[name] = icon return icon def getPixmap(name): image = PIXMAPS.get(name) if image is None: return QPixmap() if isinstance(image, basestring): pixmap = QPixmap() pixmap.loadFromData(base64.b64decode(image)) PIXMAPS[name] = image = pixmap return image def isAlive(qobj): import sip try: sip.unwrapinstance(qobj) except RuntimeError: return False return True def main(): if not hasattr(sys, "ps1"): sys.ps1 = ">>> " if not hasattr(sys, "ps2"): sys.ps2 = "... " app = QApplication(sys.argv) if not sys.platform.startswith(("linux", "win")): app.setCursorFlashTime(0) app.setOrganizationName("Qtrac Ltd.") app.setOrganizationDomain("qtrac.eu") app.setApplicationName("Sandbox") app.setWindowIcon(getIcon("icon.png")) loadConfig() for name in KEYWORDS + BUILTINS + CONSTANTS: if len(name) >= MIN_COMPLETION_LEN and not name.startswith("_"): CAT[name] = "" try: tip = eval("%s.__doc__" % name) if tip is not None: CAT[name] = (tip[:MAX_TOOLTIP_LEN] .strip().replace("\n\n", "

")) except: pass for name in MODULES.keys(): CAT[name] = None if len(sys.argv) > 1: args = sys.argv[1:] if args[0] in ("-h", "--help"): args.pop(0) print """usage: sandbox.pyw [-n|filenames] -n or --new means start with new file filenames means start with the given files (which must have .py or .pyw suffixes); otherwise starts with new file or Python shell depending on configuration Sandbox requires Python 2.5 and PyQt 4.2 (or later versions) For more information run the program and click Help->About and Help->Help""" return if args and args[0] in ("-n", "--new"): args.pop(0) MainWindow().show() dir = QDir() for fname in args: if fname.endswith((".py", ".pyw")): MainWindow(dir.cleanPath( dir.absoluteFilePath((fname)))).show() if not MainWindow.Instances: MainWindow(isShell=Config["startwithshell"]).show() app.exec_() saveConfig() main() ### Ideas for improvements ############################################## # # - Make Indent & Unindent smarter, i.e., Indent should insert _up to_ # tabwidth spaces to make the number of leading spaces an exact multiple # of tabwidth. Similarly, Unindent should remove _up to_ tabwidth # spaces on the same basis # - Recent files handling # - Add tooltips to all ConfigForm editing widgets & improve validation # - Add tooltips to all main window actions that don't have any. # - Goto menu. Use submenus to reflect the structure of the code, i.e., # classes # Class1 # Method1 # Method2 # functions # Func1 # Func2 # InnerFuncA # This should be doable when reading, but trickier to maintain when # users add or change classes and defs since the right "parent" must be # found, and the name put in the right place in the tree # - Robustness? catch exceptions better, etc. # - Help? Handle help() in the shell? # - Tools menu? (modeless delete on close dialogs); e.g., # Regular Expression Editor (similar to the one I wrote as an # example for TT); support multiple syntaxes, e.g., re, glob, # (fnmatch?), QRegExp, and QRegExp wildcard # - i18n? use a custom dictionary-like function and keep all # translations in this same file; or embed .qm files in base64? # - Autosave? If not zero auto saves every N seconds to # .sb$.self.filename. On close the .sb$. file is deleted after the # save. On open, if a .sb$. file exists, rename it self.filename#1 (or # 2 or whatever to make it unique) and then give a warning to the user # that they may wish to diff against it. So we don't do recover as # such. # - Make keyboard shortcuts customisable? (apart from the standard ones) PyQt-x11-gpl-4.11.4/dbus/0000755000076500000240000000000012536324426014710 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/dbus/dbus.cpp0000644000076500000240000002575612536324426016370 0ustar philstaff00000000000000// This is the SIP interface definition for the Qt support for the standard // Python DBus bindings. // // Copyright (c) 2012 Riverbank Computing Limited // // Licensed under the Academic Free License version 2.1 // // 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include #include #include #include "helper.h" // The callback to add a watch. extern "C" {static dbus_bool_t add_watch(DBusWatch *watch, void *data);} static dbus_bool_t add_watch(DBusWatch *watch, void *data) { pyqtDBusHelper *hlp = reinterpret_cast(data); int fd = dbus_watch_get_fd(watch); unsigned int flags = dbus_watch_get_flags(watch); dbus_bool_t enabled = dbus_watch_get_enabled(watch); pyqtDBusHelper::Watcher watcher; watcher.watch = watch; if (flags & DBUS_WATCH_READABLE) { watcher.read = new QSocketNotifier(fd, QSocketNotifier::Read, hlp); watcher.read->setEnabled(enabled); hlp->connect(watcher.read, SIGNAL(activated(int)), SLOT(readSocket(int))); } if (flags & DBUS_WATCH_WRITABLE) { watcher.write = new QSocketNotifier(fd, QSocketNotifier::Write, hlp); watcher.write->setEnabled(enabled); hlp->connect(watcher.write, SIGNAL(activated(int)), SLOT(writeSocket(int))); } hlp->watchers.insertMulti(fd, watcher); return true; } // The callback to remove a watch. extern "C" {static void remove_watch(DBusWatch *watch, void *data);} static void remove_watch(DBusWatch *watch, void *data) { pyqtDBusHelper *hlp = reinterpret_cast(data); int fd = dbus_watch_get_fd(watch); pyqtDBusHelper::Watchers::iterator it = hlp->watchers.find(fd); while (it != hlp->watchers.end() && it.key() == fd) { pyqtDBusHelper::Watcher &watcher = it.value(); if (watcher.watch == watch) { if (watcher.read) delete watcher.read; if (watcher.write) delete watcher.write; hlp->watchers.erase(it); return; } ++it; } } // The callback to toggle a watch. extern "C" {static void toggle_watch(DBusWatch *watch, void *data);} static void toggle_watch(DBusWatch *watch, void *data) { pyqtDBusHelper *hlp = reinterpret_cast(data); int fd = dbus_watch_get_fd(watch); unsigned int flags = dbus_watch_get_flags(watch); dbus_bool_t enabled = dbus_watch_get_enabled(watch); pyqtDBusHelper::Watchers::const_iterator it = hlp->watchers.find(fd); while (it != hlp->watchers.end() && it.key() == fd) { const pyqtDBusHelper::Watcher &watcher = it.value(); if (watcher.watch == watch) { if (flags & DBUS_WATCH_READABLE && watcher.read) watcher.read->setEnabled(enabled); if (flags & DBUS_WATCH_WRITABLE && watcher.write) watcher.write->setEnabled(enabled); return; } ++it; } } // The callback to add a timeout. extern "C" {static dbus_bool_t add_timeout(DBusTimeout *timeout, void *data);} static dbus_bool_t add_timeout(DBusTimeout *timeout, void *data) { // Nothing to do if the timeout is disabled. if (!dbus_timeout_get_enabled(timeout)) return true; // Pretend it is successful if there is no application instance. This can // happen if the global application gets garbage collected before the // dbus-python main loop does. if (!QCoreApplication::instance()) return true; pyqtDBusHelper *hlp = reinterpret_cast(data); int id = hlp->startTimer(dbus_timeout_get_interval(timeout)); if (!id) return false; hlp->timeouts[id] = timeout; return true; } // The callback to remove a timeout. extern "C" {static void remove_timeout(DBusTimeout *timeout, void *data);} static void remove_timeout(DBusTimeout *timeout, void *data) { pyqtDBusHelper *hlp = reinterpret_cast(data); pyqtDBusHelper::Timeouts::iterator it = hlp->timeouts.begin(); while (it != hlp->timeouts.end()) if (it.value() == timeout) { hlp->killTimer(it.key()); it = hlp->timeouts.erase(it); } else ++it; } // The callback to toggle a timeout. extern "C" {static void toggle_timeout(DBusTimeout *timeout, void *data);} static void toggle_timeout(DBusTimeout *timeout, void *data) { remove_timeout(timeout, data); add_timeout(timeout, data); } // The callback to delete a helper instance. extern "C" {static void dbus_qt_delete_helper(void *data);} static void dbus_qt_delete_helper(void *data) { delete reinterpret_cast(data); } // The callback to wakeup the event loop. extern "C" {static void wakeup_main(void *data);} static void wakeup_main(void *data) { pyqtDBusHelper *hlp = reinterpret_cast(data); QTimer::singleShot(0, hlp, SLOT(dispatch())); } // The callback to set up a DBus connection. extern "C" {static dbus_bool_t dbus_qt_conn(DBusConnection *conn, void *data);} static dbus_bool_t dbus_qt_conn(DBusConnection *conn, void *data) { bool rc; Py_BEGIN_ALLOW_THREADS pyqtDBusHelper *hlp = reinterpret_cast(data); hlp->connections.append(conn); if (!dbus_connection_set_watch_functions(conn, add_watch, remove_watch, toggle_watch, data, 0)) rc = false; else if (!dbus_connection_set_timeout_functions(conn, add_timeout, remove_timeout, toggle_timeout, data, 0)) rc = false; else rc = true; dbus_connection_set_wakeup_main_function(conn, wakeup_main, hlp, 0); Py_END_ALLOW_THREADS return rc; } // The callback to set up a DBus server. extern "C" {static dbus_bool_t dbus_qt_srv(DBusServer *srv, void *data);} static dbus_bool_t dbus_qt_srv(DBusServer *srv, void *data) { bool rc; Py_BEGIN_ALLOW_THREADS if (!dbus_server_set_watch_functions(srv, add_watch, remove_watch, toggle_watch, data, 0)) rc = false; else if (!dbus_server_set_timeout_functions(srv, add_timeout, remove_timeout, toggle_timeout, data, 0)) rc = false; else rc = true; Py_END_ALLOW_THREADS return rc; } // Create a new helper instance. pyqtDBusHelper::pyqtDBusHelper() : QObject() { } // Handle a socket being ready to read. void pyqtDBusHelper::readSocket(int fd) { Watchers::const_iterator it = watchers.find(fd); while (it != watchers.end() && it.key() == fd) { const Watcher &watcher = it.value(); if (watcher.read && watcher.read->isEnabled()) { watcher.read->setEnabled(false); dbus_watch_handle(watcher.watch, DBUS_WATCH_READABLE); // The notifier could have just been destroyed. if (watcher.read) watcher.read->setEnabled(true); break; } ++it; } dispatch(); } // Handle a socket being ready to write. void pyqtDBusHelper::writeSocket(int fd) { Watchers::const_iterator it = watchers.find(fd); while (it != watchers.end() && it.key() == fd) { const Watcher &watcher = it.value(); if (watcher.write && watcher.write->isEnabled()) { watcher.write->setEnabled(false); dbus_watch_handle(watcher.watch, DBUS_WATCH_WRITABLE); // The notifier could have just been destroyed. if (watcher.write) watcher.write->setEnabled(true); break; } ++it; } } // Handoff to the connection dispatcher while there is data. void pyqtDBusHelper::dispatch() { for (Connections::const_iterator it = connections.constBegin(); it != connections.constEnd(); ++it) while (dbus_connection_dispatch(*it) == DBUS_DISPATCH_DATA_REMAINS) ; } // Reimplemented to handle timer events. void pyqtDBusHelper::timerEvent(QTimerEvent *e) { DBusTimeout *timeout = timeouts.value(e->timerId()); if (timeout) dbus_timeout_handle(timeout); } PyDoc_STRVAR(DBusQtMainLoop__doc__, "DBusQtMainLoop([set_as_default=False]) -> NativeMainLoop\n" "\n" "Return a NativeMainLoop object.\n" "\n" "If the keyword argument set_as_default is given and is True, set the new\n" "main loop as the default for all new Connection or Bus instances.\n"); extern "C" {static PyObject *DBusQtMainLoop(PyObject *, PyObject *args, PyObject *kwargs);} static PyObject *DBusQtMainLoop(PyObject *, PyObject *args, PyObject *kwargs) { if (PyTuple_Size(args) != 0) { PyErr_SetString(PyExc_TypeError, "DBusQtMainLoop() takes no positional arguments"); return 0; } int set_as_default = 0; static char *argnames[] = {"set_as_default", 0}; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|i", argnames, &set_as_default)) return 0; pyqtDBusHelper *hlp = new pyqtDBusHelper; PyObject *mainloop = DBusPyNativeMainLoop_New4(dbus_qt_conn, dbus_qt_srv, dbus_qt_delete_helper, hlp); if (!mainloop) { delete hlp; return 0; } if (set_as_default) { PyObject *func = PyObject_GetAttrString(_dbus_bindings_module, "set_default_main_loop"); if (!func) { Py_DECREF(mainloop); return 0; } PyObject *res = PyObject_CallFunctionObjArgs(func, mainloop, 0); Py_DECREF(func); if (!res) { Py_DECREF(mainloop); return 0; } Py_DECREF(res); } return mainloop; } // The table of module functions. static PyMethodDef module_functions[] = { {"DBusQtMainLoop", (PyCFunction)DBusQtMainLoop, METH_VARARGS|METH_KEYWORDS, DBusQtMainLoop__doc__}, {0, 0, 0, 0} }; // The module entry point. #if PY_MAJOR_VERSION >= 3 PyMODINIT_FUNC PyInit_qt() { static PyModuleDef module_def = { PyModuleDef_HEAD_INIT, "qt", NULL, -1, module_functions, }; // Import the generic part of the Python DBus bindings. if (import_dbus_bindings("dbus.mainloop.qt") < 0) return 0; return PyModule_Create(&module_def); } #else PyMODINIT_FUNC initqt() { // Import the generic part of the Python DBus bindings. if (import_dbus_bindings("dbus.mainloop.qt") < 0) return; Py_InitModule("qt", module_functions); } #endif PyQt-x11-gpl-4.11.4/dbus/dbus.sbf0000644000076500000240000000016712536324426016345 0ustar philstaff00000000000000# This is the build file for the dbus support module for Qt v4. target = qt sources = dbus.cpp moc_headers = helper.h PyQt-x11-gpl-4.11.4/dbus/helper.h0000644000076500000240000000333712536324426016346 0ustar philstaff00000000000000// This is the declaration of the helper class for the Qt specific support for // the standard Python DBus bindings. // // Copyright (c) 2012 Riverbank Computing Limited // // Licensed under the Academic Free License version 2.1 // // 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, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include #include #include #include #include class QTimerEvent; class pyqtDBusHelper : public QObject { Q_OBJECT public: struct Watcher { Watcher() : watch(0), read(0), write(0) {} DBusWatch *watch; QPointer read; QPointer write; }; typedef QMultiHash Watchers; typedef QHash Timeouts; typedef QListConnections; pyqtDBusHelper(); Watchers watchers; Timeouts timeouts; Connections connections; public slots: void readSocket(int fd); void writeSocket(int fd); void dispatch(); protected: void timerEvent(QTimerEvent *e); }; PyQt-x11-gpl-4.11.4/designer/0000755000076500000240000000000012536324426015553 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/designer/designer.pro-in0000644000076500000240000000102612536324426020500 0ustar philstaff00000000000000CONFIG += plugin @QTCONFIG@ warn_on greaterThan(QT_MAJOR_VERSION, 4) { QT += designer # Work around QTBUG-39300. CONFIG -= android_install } lessThan(QT_MAJOR_VERSION, 5) { CONFIG += designer } TARGET = pyqt4 TEMPLATE = lib INCLUDEPATH += @PYINCDIR@ LIBS += @PYLINK@ DEFINES += PYTHON_LIB=\\\"@PYSHLIB@\\\" SOURCES = pluginloader.cpp HEADERS = pluginloader.h # Install. target.path = @QTPLUGINDIR@ python.path = @QTPLUGINDIR@ python.files = python INSTALLS += target python PyQt-x11-gpl-4.11.4/designer/pluginloader.cpp0000644000076500000240000002347312536324426020755 0ustar philstaff00000000000000/* * This is the Qt Designer plugin that collects all the Python plugins it can * find as a widget collection to Designer. * * Copyright (c) 2015 Riverbank Computing Limited * * This file is part of PyQt4. * * This file may be used under the terms of the GNU General Public License * version 3.0 as published by the Free Software Foundation and appearing in * the file LICENSE included in the packaging of this file. Please review the * following information to ensure the GNU General Public License version 3.0 * requirements will be met: http://www.gnu.org/copyleft/gpl.html. * * If you do not wish to use this file under the terms of the GPL version 3.0 * then you may purchase a commercial license. For more information contact * info@riverbankcomputing.com. * * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #include "pluginloader.h" #include #include #include #include #include #include #include #include #include #include "../qpy/QtDesigner/qpydesignercustomwidgetplugin.h" // Construct the collection of Python widgets. PyCustomWidgets::PyCustomWidgets(QObject *parent) : QObject(parent) { // Get the default list of directories to search. These correspond to a // standard "python" subdirectory of all the places that Designer looks for // its own plugins. QStringList default_dirs; QStringList path_list = QCoreApplication::libraryPaths(); foreach (const QString &path, path_list) default_dirs.append(path + QDir::separator() + QLatin1String("designer") + QDir::separator() + QLatin1String("python")); default_dirs.append(QDir::homePath() + QDir::separator() + QLatin1String(".designer") + QDir::separator() + QLatin1String("plugins") + QDir::separator() + QLatin1String("python")); // Get the list of directories to search. QStringList dirs; char *pyqt_path = getenv("PYQTDESIGNERPATH"); if (pyqt_path) { #if defined(Q_OS_WIN) QLatin1Char sep(';'); #else QLatin1Char sep(':'); #endif QStringList pyqt_dirs = QString::fromLatin1(pyqt_path).split(sep); for (QStringList::const_iterator it = pyqt_dirs.constBegin(); it != pyqt_dirs.constEnd(); ++it) if ((*it).isEmpty()) dirs << default_dirs; else dirs.append(QDir(*it).canonicalPath()); } else dirs = default_dirs; // The sys.path object if we need it. PyObject *sys_path = 0; // The sip.unwrapinstance object if we need it. PyObject *sip_unwrapinstance = 0; // The PyQt4.QtDesigner.QPyDesignerCustomWidgetPlugin object if we need it. PyObject *qtdesigner_custom = 0; // Go through each directory. for (int i = 0; i < dirs.size(); ++i) { QString dir = dirs.at(i); // Get a list of all candidate plugin modules. We sort by name to // provide control over the order they are imported. QStringList candidates = QDir(dir).entryList(QDir::Files, QDir::Name); QStringList plugins; for (int p = 0; p < candidates.size(); ++p) { QStringList parts = candidates.at(p).split('.'); if (parts.size() != 2) continue; if (!parts.at(1).startsWith("py")) continue; const QString &plugin = parts.at(0); if (!plugin.endsWith("plugin")) continue; if (plugins.contains(plugin)) continue; plugins.append(plugin); } // Skip if there is nothing of interest in this directory. if (!plugins.size()) continue; // Make sure the interpreter is loaded and initialised. Leave this as // late as possible. if (!Py_IsInitialized()) { QLibrary library(PYTHON_LIB); library.setLoadHints(QLibrary::ExportExternalSymbolsHint); if (!library.load()) return; Py_Initialize(); } // Make sure we have sys.path. if (!sys_path) { sys_path = getModuleAttr("sys", "path"); if (!sys_path) return; } // Make sure we have sip.unwrapinstance. if (!sip_unwrapinstance) { sip_unwrapinstance = getModuleAttr("sip", "unwrapinstance"); if (!sip_unwrapinstance) return; } // Convert the directory to a Python object with native separators. #if QT_VERSION >= 0x040200 dir = QDir::toNativeSeparators(dir); #else dir = QDir::convertSeparators(dir); #endif #if PY_VERSION_HEX >= 0x03030000 PyObject *dobj = PyUnicode_FromKindAndData(PyUnicode_2BYTE_KIND, dir.constData(), dir.length()); if (!dobj) { PyErr_Print(); continue; } #elif PY_VERSION_HEX >= 0x03000000 #if defined(Py_UNICODE_WIDE) #if QT_VERSION >= 0x040200 QVector ucs4 = dir.toUcs4(); PyObject *dobj = PyUnicode_FromUnicode(0, ucs4.size()); if (!dobj) { PyErr_Print(); continue; } memcpy(PyUnicode_AS_UNICODE(dobj), ucs4.constData(), ucs4.size() * sizeof (Py_UNICODE)); #else PyObject *dobj = PyUnicode_FromUnicode(0, dir.length()); if (!dobj) { PyErr_Print(); continue; } Py_UNICODE *pyu = PyUnicode_AS_UNICODE(dobj); for (int i = 0; i < dir.length(); ++i) *pyu++ = (dir.at(i)).unicode(); #endif #else PyObject *dobj = PyUnicode_FromUnicode(0, dir.length()); if (!dobj) { PyErr_Print(); continue; } memcpy(PyUnicode_AS_UNICODE(dobj), dir.utf16(), dir.length() * sizeof (Py_UNICODE)); #endif #else PyObject *dobj = PyString_FromString(dir.toLatin1().constData()); if (!dobj) { PyErr_Print(); continue; } #endif // Add the directory to sys.path. int rc = PyList_Append(sys_path, dobj); Py_DECREF(dobj); if (rc < 0) { PyErr_Print(); continue; } // Import each plugin. for (int plug = 0; plug < plugins.size(); ++plug) { PyObject *plug_mod = PyImport_ImportModule(plugins.at(plug).toLatin1().data()); if (!plug_mod) { PyErr_Print(); continue; } // Make sure we have QPyDesignerCustomWidgetPlugin. We make sure // this is after the import of the first plugin to allow that // plugin to change any API versions. if (!qtdesigner_custom) { qtdesigner_custom = getModuleAttr("PyQt4.QtDesigner", "QPyDesignerCustomWidgetPlugin"); if (!qtdesigner_custom) return; } // Go through the module looking for types that implement // QDesignerCustomWidgetInterface (ie. by deriving from // QPyDesignerCustomWidgetPlugin). PyObject *mod_dict = PyModule_GetDict(plug_mod); PyObject *key, *value; #if PY_VERSION_HEX >= 0x02050000 Py_ssize_t pos = 0; #else int pos = 0; #endif while (PyDict_Next(mod_dict, &pos, &key, &value)) { if (!PyType_Check(value)) continue; if (value == qtdesigner_custom) continue; if (!PyType_IsSubtype((PyTypeObject *)value, (PyTypeObject *)qtdesigner_custom)) continue; // Create the plugin instance. Note that we don't give it a // parent, which make things easier. It also means that Python // owns the instance so we don't decrement the reference count // so that it doesn't get garbage collected. PyObject *plugobj = PyObject_CallObject(value, NULL); if (!plugobj) { PyErr_Print(); continue; } // Get the address of the C++ instance. PyObject *plugaddr = PyObject_CallFunctionObjArgs(sip_unwrapinstance, plugobj, NULL); if (!plugaddr) { Py_DECREF(plugobj); PyErr_Print(); continue; } void *addr = PyLong_AsVoidPtr(plugaddr); Py_DECREF(plugaddr); widgets.append(reinterpret_cast(addr)); } Py_DECREF(plug_mod); } } } // Return the list of custom widgets. QList PyCustomWidgets::customWidgets() const { return widgets; } // Return the named attribute object from the named module. PyObject *PyCustomWidgets::getModuleAttr(const char *module, const char *attr) { #if PY_VERSION_HEX >= 0x02050000 PyObject *mod = PyImport_ImportModule(module); #else PyObject *mod = PyImport_ImportModule(const_cast(module)); #endif if (!mod) { PyErr_Print(); return 0; } #if PY_VERSION_HEX >= 0x02050000 PyObject *obj = PyObject_GetAttrString(mod, attr); #else PyObject *obj = PyObject_GetAttrString(mod, const_cast(attr)); #endif Py_DECREF(mod); if (!obj) { PyErr_Print(); return 0; } return obj; } #if QT_VERSION < 0x050000 // Register the plugin. Q_EXPORT_PLUGIN2(MODULE_NAME, PyCustomWidgets) #endif PyQt-x11-gpl-4.11.4/designer/pluginloader.h0000644000076500000240000000325212536324426020413 0ustar philstaff00000000000000/* * This is the interface of the Qt Designer plugin. * * Copyright (c) 2015 Riverbank Computing Limited * * This file is part of PyQt4. * * This file may be used under the terms of the GNU General Public License * version 3.0 as published by the Free Software Foundation and appearing in * the file LICENSE included in the packaging of this file. Please review the * following information to ensure the GNU General Public License version 3.0 * requirements will be met: http://www.gnu.org/copyleft/gpl.html. * * If you do not wish to use this file under the terms of the GPL version 3.0 * then you may purchase a commercial license. For more information contact * info@riverbankcomputing.com. * * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef _PLUGINLOADER_H #define _PLUGINLOADER_H #include #include #include #include QT_BEGIN_NAMESPACE class QDesignerCustomWidgetInterface; QT_END_NAMESPACE class PyCustomWidgets : public QObject, public QDesignerCustomWidgetCollectionInterface { Q_OBJECT #if QT_VERSION >= 0x050000 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetCollectionInterface") #endif Q_INTERFACES(QDesignerCustomWidgetCollectionInterface) public: PyCustomWidgets(QObject *parent = 0); virtual QList customWidgets() const; private: static PyObject *getModuleAttr(const char *module, const char *attr); QList widgets; }; #endif PyQt-x11-gpl-4.11.4/doc/0000755000076500000240000000000012536324427014521 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/doc/html/0000755000076500000240000000000012536324525015464 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/doc/html/_sources/0000755000076500000240000000000012536324430017301 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/doc/html/_sources/buffer_interface.txt0000644000076500000240000000045612425374020023335 0ustar philstaff00000000000000Support for Python's Buffer Interface ===================================== If SIP v4.7.5 or later is used then any Python object that supports the buffer interface can be used whenever a ``char`` or ``char *`` is expected. If the buffer has multiple segments then all but the first will be ignored. PyQt-x11-gpl-4.11.4/doc/html/_sources/build_system.txt0000644000076500000240000002007512527653724022564 0ustar philstaff00000000000000.. _ref-build-system: The PyQt4 Build System ====================== .. versionadded:: 4.10 SIP v5 will not include an extensible build system, i.e it will not provide an equivalent of SIP v4's :mod:`sipconfig` module. Consequently a version of PyQt built with SIP v5 will not provide an equivalent of the :mod:`~PyQt4.pyqtconfig` module. However there is still a need for certain information to be shared between PyQt and other modules (such as QScintilla's :mod:`~PyQt4.Qsci` module) that are built on top of it. Specifically it is important that the same ``-t`` and ``-x`` command line flags are passed to the ``sip`` executable to create, for example, the QScintilla bindings as were passed to create the PyQt bindings. Starting with v4.10, :attr:`PyQt4.QtCore.PYQT_CONFIGURATION` is a dict that describes how PyQt was configured. At the moment it contains a single value called ``sip_flags`` which is a string containing the appropriate ``-t`` and ``-x`` flags. The Old Build System -------------------- .. deprecated:: 4.10 The old PyQt4 build system is an extension of the SIP v4 build system and is implemented by the :mod:`~PyQt4.pyqtconfig` module. It can be used by configuration scripts of other bindings that build on top of PyQt4 and takes care of the details of the Qt installation. Note that the :mod:`~PyQt4.pyqtconfig` module is only created if you use :program:`configure.py` and not if you use :program:`configure-ng.py`. .. module:: PyQt4.pyqtconfig .. class:: Configuration(sub_cfg=None) This class encapsulates configuration values that can be accessed as instance objects. It is derived from :class:`sipconfig.Configuration`. :param sub_cfg: an optional list of sub-class configurations. It should only be used by the ``__init__()`` method of a sub-class to append its own dictionary of configuration values before passing the list to its super-class. .. attribute:: pyqt_bin_dir The name of the directory where the PyQt4 utilities are installed. .. attribute:: pyqt_config_args The command line passed to :program:`configure.py` when PyQt4 was configured. .. attribute:: pyqt_mod_dir The name of the directory where the :mod:`PyQt4` Python package is installed. .. attribute:: pyqt_modules A space separated string of installed PyQt4 modules. The :mod:`Qt` module is not included. .. attribute:: pyqt_sip_dir The name of the base directory where PyQt4's ``.sip`` files are installed. Each module's ``.sip`` files are installed in a sub-directory with the same name as the module. .. attribute:: pyqt_sip_flags A space separated string of the :program:`sip` command line options used to build the PyQt4 modules. These should also be used when building bindings that ``%Import`` any PyQt4 modules. .. attribute:: pyqt_version The PyQt4 version as a 3 part hexadecimal number (e.g. v4.0.1 is represented as ``0x040001``). .. attribute:: pyqt_version_str The PyQt4 version as a string. For development previews it will start with ``preview-`` or ``snapshot-``. .. attribute:: qt_data_dir The value of ``QLibraryInfo::location(DataPath)`` for the Qt installation. .. attribute:: qt_archdata_dir When building against Qt v5 this is the value of ``QLibraryInfo::location(ArchDataPath)``. When building against Qt v4 it is the value of ``QLibraryInfo::location(DataPath)``. .. attribute:: qt_dir The root directory of the Qt installation (normally the directory that contains the :file:`bin` directory). .. attribute:: qt_edition The Qt edition. .. attribute:: qt_framework Set if Qt is built as a MacOS/X framework. .. attribute:: qt_inc_dir The value of ``QLibraryInfo::location(HeadersPath)`` for the Qt installation. .. attribute:: qt_lib_dir The value of ``QLibraryInfo::location(LibrariesPath)`` for the Qt installation. .. attribute:: qt_threaded Set if Qt is built with thread support (always set for PyQt4). .. attribute:: qt_version The Qt version as a 3 part hexadecimal number (e.g. v4.1.2 is represented as ``0x040102``). .. attribute:: qt_winconfig Additional Windows specific configuration. .. class:: QtAssistantModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtAssistant` module. .. class:: QAxContainerModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QAxContainer` module. .. class:: QtCoreModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtCore` module. .. class:: QtDBusModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtDBus` module. .. class:: QtDeclarativeModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtDeclarative` module. .. class:: QtDesignerModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtDesigner` module. .. class:: QtGuiModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtGui` module. .. class:: QtHelpModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtHelp` module. .. class:: QtMultimediaModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtMultimedia` module. .. class:: QtNetworkModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtNetwork` module. .. class:: QtOpenGLModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtOpenGL` module. .. class:: QtScriptModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtScript` module. .. class:: QtScriptToolsModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtScriptTools` module. .. class:: QtSqlModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtSql` module. .. class:: QtSvgModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtSvg` module. .. class:: QtTestModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtTest` module. .. class:: QtWebKitModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtWebKit` module. .. class:: QtXmlModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtXml` module. .. class:: QtXmlPatternsModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtXmlPatterns` module. .. class:: phononModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.phonon` module. PyQt-x11-gpl-4.11.4/doc/html/_sources/dbus.txt0000644000076500000240000000606012425374020020776 0ustar philstaff00000000000000.. _ref-dbus: DBus Support ============ PyQt4 provides two different modules that implement support for DBus. The :mod:`~PyQt4.QtDBus` module provides wrappers for the standard Qt DBus classes. The :mod:`dbus.mainloop.qt` module add support for the Qt event loop to the standard ``dbus-python`` Python module. :mod:`~PyQt4.QtDBus` -------------------- The :mod:`~PyQt4.QtDBus` module is used in a similar way to the C++ library it wraps. The main difference is in the way it supports the demarshalling of DBus structures. C++ relies on the template-based registration of types using ``qDBusRegisterMetaType()`` which isn't possible from Python. Instead a slot that accepts a DBus structure in an argument should specify a slot with a single :class:`~PyQt4.QtDBus.QDBusMessage` argument. The implementation of the slot should then extract the arguments from the message using its :meth:`~PyQt4.QtDBus.QDBusMessage.arguments` method. For example, say we have a DBus method called ``setColors()`` that has a single argument that is an array of structures of three integers (red, green and blue). The DBus signature of the argument would then be ``a(iii)``. In C++ you would typically define a class to hold the red, green and blue values and so your code would include the following (incomplete) fragments:: struct Color { int red; int green; int blue; }; Q_DECLARE_METATYPE(Color) qDBusRegisterMetaType(); class ServerAdaptor : public QDBusAbstractAdaptor { Q_OBJECT public slots: void setColors(QList colors); }; The Python version is, of course, much simpler:: class ServerAdaptor(QDBusAbstractAdaptor): @pyqtSlot(QDBusMessage) def setColors(self, message): # Get the single argument. colors = message.arguments()[0] # The argument will be a list of 3-tuples of ints. for red, green, blue in colors: print("RGB:", red, green, blue) Note that this technique can be used for arguments of any type, it is only require if DBus structures are involved. :mod:`dbus.mainloop.qt` ----------------------- The :mod:`dbus.mainloop.qt` module provides support for the Qt event loop to ``dbus-python``. The module's API is almost identical to that of the :mod:`dbus.mainloop.glib` modules that provides support for the GLib event loop. The :mod:`dbus.mainloop.qt` module contains the following function. .. function:: DBusQtMainLoop(set_as_default=False) Create a ``dbus.mainloop.NativeMainLoop`` object that uses the the Qt event loop. :param set_as_default: is optionally set to make the main loop instance the default for all new Connection and Bus instances. It may only be specified as a keyword argument, and not as a positional argument. The following code fragment is all that is normally needed to set up the standard ``dbus-python`` language bindings package to be used with PyQt4:: from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default=True) PyQt-x11-gpl-4.11.4/doc/html/_sources/deploy_commercial.txt0000644000076500000240000000200412527653724023540 0ustar philstaff00000000000000Deploying Commercial PyQt4 Applications ======================================= Deploying commercial PyQt4 applications can be a complicated process for a number of reasons: - It is usually better not to rely on pre-requisite packages being already installed on the user's system. This means that as well as your application code, you also need to include the Python interpreter, the standard library, third-pary packages and extension modules, and Qt itself. - Some target platforms (iOS for example) have restrictions on how an application is built in order for it to be included in app stores. - It is necessary to discourage users from accessing the underlying PyQt4 modules for themselves. A user that used the modules shipped with your application to develop new applications would themselves be considered a developer and would need their own commercial PyQt4 license. The recommended solution to all of these issues is to use `pyqtdeploy `__. PyQt-x11-gpl-4.11.4/doc/html/_sources/designer.txt0000644000076500000240000003730312527653724021663 0ustar philstaff00000000000000Using Qt Designer ================= Qt Designer is the Qt tool for designing and building graphical user interfaces. It allows you to design widgets, dialogs or complete main windows using on-screen forms and a simple drag-and-drop interface. It has the ability to preview your designs to ensure they work as you intended, and to allow you to prototype them with your users, before you have to write any code. Qt Designer uses XML ``.ui`` files to store designs and does not generate any code itself. Qt includes the ``uic`` utility that generates the C++ code that creates the user interface. Qt also includes the ``QUiLoader`` class that allows an application to load a ``.ui`` file and to create the corresponding user interface dynamically. PyQt4 does not wrap the ``QUiLoader`` class but instead includes the :mod:`~PyQt4.uic` Python module. Like ``QUiLoader`` this module can load ``.ui`` files to create a user interface dynamically. Like the :program:`uic` utility it can also generate the Python code that will create the user interface. PyQt4's :program:`pyuic4` utility is a command line interface to the :mod:`~PyQt4.uic` module. Both are described in detail in the following sections. Using the Generated Code ------------------------ The code that is generated has an identical structure to that generated by Qt's ``uic`` and can be used in the same way. The code is structured as a single class that is derived from the Python ``object`` type. The name of the class is the name of the toplevel object set in Designer with ``Ui_`` prepended. (In the C++ version the class is defined in the ``Ui`` namespace.) We refer to this class as the *form class*. The class contains a method called ``setupUi()``. This takes a single argument which is the widget in which the user interface is created. The type of this argument (typically ``QDialog``, ``QWidget`` or ``QMainWindow``) is set in Designer. We refer to this type as the *Qt base class*. In the following examples we assume that a ``.ui`` file has been created containing a dialog and the name of the ``QDialog`` object is ``ImageDialog``. We also assume that the name of the file containing the generated Python code is :file:`ui_imagedialog.py`. The generated code can then be used in a number of ways. The first example shows the direct approach where we simply create a simple application to create the dialog:: import sys from PyQt4.QtGui import QApplication, QDialog from ui_imagedialog import Ui_ImageDialog app = QApplication(sys.argv) window = QDialog() ui = Ui_ImageDialog() ui.setupUi(window) window.show() sys.exit(app.exec_()) The second example shows the single inheritance approach where we sub-class ``QDialog`` and set up the user interface in the ``__init__()`` method:: from PyQt4.QtGui import QDialog from ui_imagedialog import Ui_ImageDialog class ImageDialog(QDialog): def __init__(self): QDialog.__init__(self) # Set up the user interface from Designer. self.ui = Ui_ImageDialog() self.ui.setupUi(self) # Make some local modifications. self.ui.colorDepthCombo.addItem("2 colors (1 bit per pixel)") # Connect up the buttons. self.ui.okButton.clicked.connect(self.accept) self.ui.cancelButton.clicked.connect(self.reject) The third example shows the multiple inheritance approach:: from PyQt4.QtGui import QDialog from ui_imagedialog import Ui_ImageDialog class ImageDialog(QDialog, Ui_ImageDialog): def __init__(self): QDialog.__init__(self) # Set up the user interface from Designer. self.setupUi(self) # Make some local modifications. self.colorDepthCombo.addItem("2 colors (1 bit per pixel)") # Connect up the buttons. self.okButton.clicked.connect(self.accept) self.cancelButton.clicked.connect(self.reject) It is also possible to use the same approach used in PyQt v3. This is shown in the final example:: from ui_imagedialog import ImageDialog class MyImageDialog(ImageDialog): def __init__(self): ImageDialog.__init__(self) # Make some local modifications. self.colorDepthCombo.addItem("2 colors (1 bit per pixel)") # Connect up the buttons. self.okButton.clicked.connect(self.accept) self.cancelButton.clicked.connect(self.reject) For a full description see the Qt Designer Manual in the Qt Documentation. The :mod:`~PyQt4.uic` Module ---------------------------- The :mod:`~PyQt4.uic` module contains the following functions and objects. .. module:: PyQt4.uic .. data:: widgetPluginPath The list of the directories that are searched for widget plugins. Initially it contains the name of the directory that contains the widget plugins included with PyQt4. .. function:: compileUi(uifile, pyfile[, execute=False[, indent=4[, pyqt3_wrapper=False[, from_imports=False[, resource_suffix='_rc']]]]]) Generate a Python module that will create a user interface from a Qt Designer ``.ui`` file. :param uifile: the file name or file-like object containing the ``.ui`` file. :param pyfile: the file-like object to which the generated Python code will be written to. :param execute: is optionally set if a small amount of additional code is to be generated that will display the user interface if the code is run as a standalone application. :param indent: the optional number of spaces used for indentation in the generated code. If it is zero then a tab character is used instead. :param pyqt3_wrapper: is optionally set if a small wrapper is to be generated that allows the generated code to be used as it is by PyQt v3 applications. :param from_imports: is optionally set to generate import statements that are relative to ``'.'``. At the moment this only applies to the import of resource modules. :resource_suffix: is the suffix appended to the basename of any resource file specified in the ``.ui`` file to create the name of the Python module generated from the resource file by ``pyrcc4``. The default is ``'_rc'``, i.e. if the ``.ui`` file specified a resource file called ``foo.qrc`` then the corresponding Python module is ``foo_rc``. .. function:: compileUiDir(dir[, recurse=False[, map=None[, \*\*compileUi_args]]]) Create Python modules from Qt Designer ``.ui`` files in a directory or directory tree. :param dir: the name of the directory to scan for files whose name ends with ``.ui``. By default the generated Python module is created in the same directory ending with ``.py``. :param recurse: is optionally set if any sub-directories should be scanned. :param map: an optional callable that is passed the name of the directory containing the ``.ui`` file and the name of the Python module that will be created. The callable should return a tuple of the name of the directory in which the Python module will be created and the (possibly modified) name of the module. :param compileUi_args: are any additional keyword arguments that are passed to :func:`~PyQt4.uic.compileUi` that is called to create each Python module. .. function:: loadUiType(uifile[, from_imports=False[, resource_suffix='_rc']]) Load a Qt Designer ``.ui`` file and return a tuple of the generated *form class* and the *Qt base class*. These can then be used to create any number of instances of the user interface without having to parse the ``.ui`` file more than once. :param uifile: the file name or file-like object containing the ``.ui`` file. :param from_imports: is optionally set to use import statements that are relative to ``'.'``. At the moment this only applies to the import of resource modules. :resource_suffix: is the suffix appended to the basename of any resource file specified in the ``.ui`` file to create the name of the Python module generated from the resource file by ``pyrcc4``. The default is ``'_rc'``, i.e. if the ``.ui`` file specified a resource file called ``foo.qrc`` then the corresponding Python module is ``foo_rc``. :rtype: the *form class* and the *Qt base class*. .. function:: loadUi(uifile[, baseinstance=None[, package=''[, resource_suffix='_rc']]]) Load a Qt Designer ``.ui`` file and returns an instance of the user interface. :param uifile: the file name or file-like object containing the ``.ui`` file. :param baseinstance: the optional instance of the *Qt base class*. If specified then the user interface is created in it. Otherwise a new instance of the base class is automatically created. :param package: the optional package that is the base package for any relative imports of custom widgets. :resource_suffix: is the suffix appended to the basename of any resource file specified in the ``.ui`` file to create the name of the Python module generated from the resource file by ``pyrcc4``. The default is ``'_rc'``, i.e. if the ``.ui`` file specified a resource file called ``foo.qrc`` then the corresponding Python module is ``foo_rc``. :rtype: the ``QWidget`` sub-class that implements the user interface. :program:`pyuic4` ----------------- The :program:`pyuic4` utility is a command line interface to the :mod:`~PyQt4.uic` module. The command has the following syntax:: pyuic4 [options] .ui-file The full set of command line options is: .. program:: pyuic4 .. cmdoption:: -h, --help A help message is written to ``stdout``. .. cmdoption:: --version The version number is written to ``stdout``. .. cmdoption:: -i , --indent The Python code is generated using an indentation of ```` spaces. If ```` is 0 then a tab is used. The default is 4. .. cmdoption:: -o , --output The Python code generated is written to the file ````. .. cmdoption:: -p, --preview The GUI is created dynamically and displayed. No Python code is generated. .. cmdoption:: -w, --pyqt3-wrapper The generated Python code includes a small wrapper that allows the GUI to be used in the same way as it is used in PyQt v3. .. cmdoption:: -x, --execute The generated Python code includes a small amount of additional code that creates and displays the GUI when it is executes as a standalone application. .. cmdoption:: --from-imports Resource modules are imported using ``from . import`` rather than a simple ``import``. .. cmdoption:: --resource-suffix The suffix ```` is appended to the basename of any resource file specified in the ``.ui`` file to create the name of the Python module generated from the resource file by :program:`pyrcc4`. The default is ``_rc``. For example if the ``.ui`` file specified a resource file called ``foo.qrc`` then the corresponding Python module is ``foo_rc``. Note that code generated by :program:`pyuic4` is not guaranteed to be compatible with earlier versions of PyQt4. However, it is guaranteed to be compatible with later versions. If you have no control over the version of PyQt4 the users of your application are using then you should run :program:`pyuic4`, or call :func:`~PyQt4.uic.compileUi()`, as part of your installation process. Another alternative would be to distribute the ``.ui`` files (perhaps as part of a resource file) and have your application load them dynamically. .. _ref-designer-plugins: Writing Qt Designer Plugins --------------------------- Qt Designer can be extended by writing plugins. Normally this is done using C++ but PyQt4 also allows you to write plugins in Python. Most of the time a plugin is used to expose a custom widget to Designer so that it appears in Designer's widget box just like any other widget. It is possibe to change the widget's properties and to connect its signals and slots. It is also possible to add new functionality to Designer. See the Qt documentation for the full details. Here we will concentrate on describing how to write custom widgets in Python. The process of integrating Python custom widgets with Designer is very similar to that used with widget written using C++. However, there are particular issues that have to be addressed. - Designer needs to have a C++ plugin that conforms to the interface defined by the ``QDesignerCustomWidgetInterface`` class. (If the plugin exposes more than one custom widget then it must conform to the interface defined by the ``QDesignerCustomWidgetCollectionInterface`` class.) In addition the plugin class must sub-class ``QObject`` as well as the interface class. PyQt4 does not allow Python classes to be sub-classed from more than one Qt class. - Designer can only connect Qt signals and slots. It has no understanding of Python signals or callables. - Designer can only edit Qt properties that represent C++ types. It has no understanding of Python attributes or Python types. PyQt4 provides the following components and features to resolve these issues as simply as possible. - PyQt4's QtDesigner module includes additional classes (all of which have a ``QPy`` prefix) that are already sub-classed from the necessary Qt classes. This avoids the need to sub-class from more than one Qt class in Python. For example, where a C++ custom widget plugin would sub-class from ``QObject`` and ``QDesignerCustomWidgetInterface``, a Python custom widget plugin would instead sub-class from ``QPyDesignerCustomWidgetPlugin``. - PyQt4 installs a C++ plugin in Designer's plugin directory. It conforms to the interface defined by the ``QDesignerCustomWidgetCollectionInterface`` class. It searches a configurable set of directories looking for Python plugins that implement a class sub-classed from ``QPyDesignerCustomWidgetPlugin``. Each class that is found is instantiated and the instance created is added to the custom widget collection. The :envvar:`PYQTDESIGNERPATH` environment variable specifies the set of directories to search for plugins. Directory names are separated by a path separator (a semi-colon on Windows and a colon on other platforms). If a directory name is empty (ie. there are consecutive path separators or a leading or trailing path separator) then a set of default directories is automatically inserted at that point. The default directories are the :file:`python` subdirectory of each directory that Designer searches for its own plugins. If the environment variable is not set then only the default directories are searched. If a file's basename does not end with ``plugin`` then it is ignored. - A Python custom widget may define new Qt signals using :func:`~PyQt4.QtCore.pyqtSignal`. - A Python method may be defined as a new Qt slot by using the :func:`~PyQt4.QtCore.pyqtSlot` decorator. - A new Qt property may be defined using the :func:`~PyQt4.QtCore.pyqtProperty` function. Note that the ability to define new Qt signals, slots and properties from Python is potentially useful to plugins conforming to any plugin interface and not just that used by Designer. For a simple but complete and fully documented example of a custom widget that defines new Qt signals, slots and properties, and its plugin, look in the :file:`examples/designer/plugins` directory of the PyQt4 source package. The :file:`widgets` subdirectory contains the :file:`pydemo.py` custom widget and the :file:`python` subdirectory contains its :file:`pydemoplugin.py` plugin. PyQt-x11-gpl-4.11.4/doc/html/_sources/gotchas.txt0000644000076500000240000001412012425374020021465 0ustar philstaff00000000000000Things to be Aware Of ===================== Python Strings, Qt Strings and Unicode -------------------------------------- PyQt4 uses the ``QString`` class to represent Unicode strings, and the ``QByteArray`` to represent byte arrays or strings. In Python v3 the corresponding native object types are ``str`` and ``bytes``. In Python v2 the corresponding native object types are ``unicode`` and ``str``. PyQt4 does its best to automatically convert between objects of the various types. Explicit conversions can be easily made where necessary. In some cases PyQt4 will not perform automatic conversions where it is necessary to distinguish between different overloaded methods. For Python v3 the following conversions are done by default. - If Qt expects a ``char *`` (or a ``const`` version) then PyQt4 will accept a ``str`` or ``QString`` that contains only ASCII characters, a ``bytes``, a ``QByteArray``, or a Python object that implements the buffer protocol. - If Qt expects a ``char`` (or a ``const`` version) then PyQt4 will accept the same types as for ``char *`` and also require that a single character is provided. - If Qt expects a ``signed char *`` or an ``unsigned char *`` (or a ``const`` version) then PyQt4 will accept a ``bytes``. - If Qt expects a ``signed char`` or an ``unsigned char`` (or a ``const`` version) then PyQt4 will accept a ``bytes`` of length 1. - If Qt expects a ``QString`` then PyQt4 will accept a ``str``, a ``bytes`` that contains only ASCII characters, a ``QChar`` or a ``QByteArray``. - If Qt expects a ``QByteArray`` then PyQt4 will also accept a ``str`` that contains only Latin-1 characters, or a ``bytes``. For Python v2 the following conversions are done by default. - If Qt expects a ``char *``, ``signed char *`` or an ``unsigned char *`` (or a ``const`` version) then PyQt4 will accept a ``unicode`` or ``QString`` that contains only ASCII characters, a ``str``, a ``QByteArray``, or a Python object that implements the buffer protocol. - If Qt expects a ``char``, ``signed char`` or an ``unsigned char`` (or a ``const`` version) then PyQt4 will accept the same types as for ``char *``, ``signed char *`` and ``unsigned char *`` and also require that a single character is provided. - If Qt expects a ``QString`` then PyQt4 will accept a ``unicode``, a ``str`` that contains only ASCII characters, a ``QChar`` or a ``QByteArray``. - If Qt expects a ``QByteArray`` then PyQt4 will accept a ``unicode`` that contains only Latin-1 characters, or a ``str``. Note that the different behaviour between Python v2 and v3 is due to v3's reduced support for the buffer protocol. Garbage Collection ------------------ C++ does not garbage collect unreferenced class instances, whereas Python does. In the following C++ fragment both colours exist even though the first can no longer be referenced from within the program:: col = new QColor(); col = new QColor(); In the corresponding Python fragment, the first colour is destroyed when the second is assigned to ``col``:: col = QtGui.QColor() col = QtGui.QColor() In Python, each colour must be assigned to different names. Typically this is done within class definitions, so the code fragment would be something like:: self.col1 = QtGui.QColor() self.col2 = QtGui.QColor() Sometimes a Qt class instance will maintain a pointer to another instance and will eventually call the destructor of that second instance. The most common example is that a ``QObject`` (and any of its sub-classes) keeps pointers to its children and will automatically call their destructors. In these cases, the corresponding Python object will also keep a reference to the corresponding child objects. So, in the following Python fragment, the first ``QLabel`` is not destroyed when the second is assigned to ``lab`` because the parent ``QWidget`` still has a reference to it:: parent = QtGui.QWidget() lab = QtGui.QLabel("First label", parent) lab = QtGui.QLabel("Second label", parent) Multiple Inheritance -------------------- It is not possible to define a new Python class that sub-classes from more than one Qt class. Access to Protected Member Functions ------------------------------------ When an instance of a C++ class is not created from Python it is not possible to access the protected member functions, or emit any signals, of that instance. Attempts to do so will raise a Python exception. Also, any Python methods corresponding to the instance's virtual member functions will never be called. ``None`` and ``NULL`` --------------------- Throughout PyQt4, the ``None`` value can be specified wherever ``NULL`` is acceptable to the underlying C++ code. Equally, ``NULL`` is converted to ``None`` whenever it is returned by the underlying C++ code. Support for ``void *`` ---------------------- PyQt4 (actually SIP) represents ``void *`` values as objects of type ``sip.voidptr``. Such values are often used to pass the addresses of external objects between different Python modules. To make this easier, a Python integer (or anything that Python can convert to an integer) can be used whenever a ``sip.voidptr`` is expected. A ``sip.voidptr`` may be converted to a Python integer by using the ``int()`` builtin function. A ``sip.voidptr`` may be converted to a Python string by using its ``asstring()`` method. The ``asstring()`` method takes an optional integer argument which is the length of the data in bytes. A ``sip.voidptr`` may also be given a size (ie. the size of the block of memory that is pointed to) by calling its ``setsize()`` method. If it has a size then it is also able to support Python's buffer protocol and behaves like a Python ``memoryview`` object so that the block of memory can be treated as a mutable list of bytes. It also means that the Python :mod:`struct` module can be used to unpack and pack binary data structures in memory, memory mapped files or shared memory. ``super`` and PyQt4 Classes --------------------------- In versions of PyQt4 earlier than v4.5 there were restrictions on the use of ``super`` with PyQt4 classes. These restrictions no longer apply with v4.5 and later. PyQt-x11-gpl-4.11.4/doc/html/_sources/i18n.txt0000644000076500000240000001006112425374020020614 0ustar philstaff00000000000000Internationalisation of PyQt4 Applications ========================================== PyQt4 and Qt include a comprehensive set of tools for translating applications into local languages. For a full description, see the Qt Linguist Manual in the Qt documentation. The process of internationalising an application comprises the following steps. - The programmer uses :program:`pylupdate4` to create or update a ``.ts`` translation file for each language that the application is to be translated into. A ``.ts`` file is an XML file that contains the strings to be translated and the corresponding translations that have already been made. :program:`pylupdate4` can be run any number of times during development to update the ``.ts`` files with the latest strings for translation. - The translator uses Qt Linguist to update the ``.ts`` files with translations of the strings. - The release manager then uses Qt's :program:`lrelease` utility to convert the ``.ts`` files to ``.qm`` files which are compact binary equivalents used by the application. If an application cannot find an appropriate ``.qm`` file, or a particular string hasn't been translated, then the strings used in the original source code are used instead. - The release manage may optionally use :program:`pyrcc4` to embed the ``.qm`` files, along with other application resources such as icons, in a Python module. This may make packaging and distribution of the application easier. :program:`pylupdate4` --------------------- .. program:: pylupdate4 :program:`pylupdate4` is PyQt4's equivalent to Qt's :program:`lupdate` utility and is used in exactly the same way. A Qt ``.pro`` project file is read that specifies the Python source files and Qt Designer interface files from which the text that needs to be translated is extracted. The ``.pro`` file also specifies the ``.ts`` translation files that :program:`pylupdate4` updates (or creates if necessary) and are subsequently used by Qt Linguist. :program:`pylupdate4` will only be included if your copy of Qt includes the XML module. Differences Between PyQt4 and Qt -------------------------------- Qt implements internationalisation support through the ``QTranslator`` class, and the ``QCoreApplication::translate()``, ``QObject::tr()`` and ``QObject::trUtf8()`` methods. Usually the ``tr()`` method is used to obtain the correct translation of a message. The translation process uses a message context to allow the same message to be translated differently. ``tr()`` is actually generated by ``moc`` and uses the hardcoded class name as the context. On the other hand, ``QApplication::translate()`` allows the context to be explicitly stated. Unfortunately, because of the way Qt implements ``tr()`` (and ``trUtf8()``) it is not possible for PyQt4 to exactly reproduce its behaviour. The PyQt4 implementation of ``tr()`` (and ``trUtf8()``) uses the class name of the instance as the context. The key difference, and the source of potential problems, is that the context is determined dynamically in PyQt4, but is hardcoded in Qt. In other words, the context of a translation may change depending on an instance's class hierarchy. For example:: class A(QtCore.QObject): def hello(self): return self.tr("Hello") class B(A): pass a = A() a.hello() b = B() b.hello() In the above the message is translated by ``a.hello()`` using a context of ``A``, and by ``b.hello()`` using a context of ``B``. In the equivalent C++ version the context would be ``A`` in both cases. The PyQt4 behaviour is unsatisfactory and may be changed in the future. It is recommended that ``QCoreApplication.translate()`` be used in preference to ``tr()`` (and ``trUtf8()``). This is guaranteed to work with current and future versions of PyQt4 and makes it much easier to share message files between Python and C++ code. Below is the alternative implementation of ``A`` that uses ``QCoreApplication.translate()``:: class A(QtCore.QObject): def hello(self): return QtCore.QCoreApplication.translate("A", "Hello") PyQt-x11-gpl-4.11.4/doc/html/_sources/incompatibilities.txt0000644000076500000240000001704412527653724023573 0ustar philstaff00000000000000Potential Incompatibilities with Earlier Versions ================================================= PyQt4 v4.11 ----------- Execution of Python Slots ************************* Until the release of PyQt4 v4.9.4, when a signal was emitted to a Python slot that was not decorated with :func:`~PyQt4.QtCore.pyqtSlot`, it would first check that the underlying C++ receiver instance still existed. If it didn't then the slot was ignored thereby reflecting the standard C++ behaviour. In v4.9.4 (strictly speaking it was the release of SIP at the time) the check was removed. It was done so that an object could connect its :func:`~PyQt4.QtCore.QObject.destroyed` signal to itself so that it could monitor when its underlying C++ instance was destroyed. Unfortunately this turned out to be an undocumented and incompatible change and a potential source of obscure bugs for more common code. In v4.11 the check was reintroduced - hence creating an incompatibility for any code that relies on the v4.9.4 behaviour. As a workaround for this the ``no_receiver_check`` argument has been added to :func:`~PyQt4.QtCore.QObject.connect` which allows the check to be suppressed on a per connection basis. PyQt4 v4.9.2 ------------ QPyNullVariant ************** In previous versions a ``QPyNullVariant`` would always evaluate to ``True`` when converted to a bool. In this version a ``QPyNullVariant`` will always evaluate to ``False`` when converted to a bool. This makes it behave like ``None`` in these circumstances. PyQt4 v4.8.3 ------------ SQL Models ********** In previous versions, when using v2 of the QVariant API (the default for Python v3), there was no way to represent a null ``QVariant``. Therefore when reading values of certain types from an SQL model it was impossible to distinguish between, for example, a null integer and an integer with the value zero. In this version the ``QPyNullVariant`` class is used to represent a null QVariant. Therefore the object read from an SQL model may now be a ``QPyNullVariant`` instance. A null ``QVariant`` is only converted to a ``QPyNullVariant`` if the underlying C++ type of the ``QVariant`` cannot be tested for null, i.e. it does not implement an ``isNull()`` method. This ensures that existing code that uses non-SQL models will continue to work unchanged. PyQt4 v4.8 ---------- QVariantList ************ In previous versions PyQt4 would always try and convert a Python list to a ``QVariantList``. In this version PyQt4 will first try to convert it to a ``QVariant`` containing a ``QList``, but only if ``QList`` has been registered with Qt as a meta-type. Normally it is only the :mod:`~PyQt4.QtDeclarative` module that registers this meta-type and so the behaviour of existing applications should be unchanged. It is possible however that you might observe different conversion behaviour after importing the :mod:`~PyQt4.QtDeclarative` module. PyQt4 v4.7.4 ------------ :func:`~PyQt4.QtCore.pyqtSignal` with dict and list *************************************************** In previous versions a Qt signal defined using :func:`~PyQt4.QtCore.pyqtSignal` that had an argument specified as a dict then, when emitting a value, PyQt4 would try and convert the value to a ``QVariantMap`` if possible. If it wasn't possible, normally because the dict had non-string keys, then the value would be left as a dict object. In this version PyQt4 will not attempt to convert the value to a ``QVariantMap`` and will always leave it as a dict object. If you want the value to be converted to a ``QVariantMap`` then define the signal argument as ``'QVariantMap'``. The same applies to conversions between lists and ``QVariantList``. PyQt4 v4.7.1 ------------ QVariant ******** This version introduces a slight incompatibility in the conversion between sub-classes of standard Python types and ``QVariant``. Take, for example, the following code:: from PyQt4.QtCore import QVariant class MyFloat(float): pass myfloat = MyFloat(5.0) variant = QVariant(myfloat) With this version of PyQt4 ``myfloat`` will be converted in such a way as to preserve any additional attributes (including methods) and will not be converted to a C++ ``double``. In other words, the following assertions are true:: assert(variant.type() != QVariant.Double) assert(variant.toPyObject() is myfloat) Prior to this version ``myfloat`` would be converted to a C++ ``double``. In other words, the following assertions would be true:: assert(variant.type() == QVariant.Double) assert(variant.toPyObject() == myfloat) assert(type(variant.toPyObject()) is float) The same change also affects objects that implement the sequence protocol. Prior to this version such an object would be converted to a ``QVariantList`` which would mean that it was converted back to a Python ``list`` rather than to the original type. PyQt4 v4.5 ---------- QVariant ******** This version introduces a slight incompatibility in the conversion between Python sub-classes of certain Qt classes and ``QVariant``. The Qt classes affected are those that ``QVariant`` has explicit support for, e.g. ``QSize``, ``QBitmap``. Take, for example, the following code:: from PyQt4.QtCore import QSize, QVariant class MySize(QSize): pass mysize = MySize(5, 5) variant = QVariant(mysize) With this version of PyQt4 ``mysize`` will be converted in such a way as to preserve any additional attributes (including methods) and will not be converted to a C++ ``QSize`` instance. In other words, the following assertions are true:: assert(variant.type() != QVariant.Size) assert(variant.toPyObject() is mysize) Prior to this version ``mysize`` would be converted to a C++ ``QSize`` instance. In other words, the following assertions would be true:: assert(variant.type() == QVariant.Size) assert(variant.toPyObject() == mysize) assert(type(variant.toPyObject()) is QSize) It is hoped that this change of behaviour will not have a significant impact. However if you need the old behaviour then simply create a copy of your sub-class instance using the base class constructor as shown below:: variant = QVariant(QSize(mysize)) A similar issue also affects the conversion of the Python ``datetime``, ``date`` and ``time`` types to ``QVariant``. These are no longer converted to the corresponding ``QDateTime``, ``QDate`` and ``QTime`` classes. The values can be retrieved using ``QVariant.toPyObject()``. Again, the old behaviour can be achieved using an explicit conversion to the Qt class before converting to ``QVariant``. A further incompatible change is the handling of Python sub-classes of ``QObject``. In previous versions ``QVariant.userType()`` would return an internal type and an extra reference would be kept to the Python object. In the current version ``QVariant.userType()`` will correctly return ``QMetaType.QObjectStar`` (or ``QMetaType.QWidgetStar``) but an extra reference to the Python object is not kept. To avoid a potential crash you should ensure that you keep a separate reference to the Python object, either explicitly or implicitly by giving it a parent. :program:`pyrcc4` Support for Python v3 *************************************** :program:`pyrcc4` will now generate code for Python v3 when the new :option:`-py3 ` command line option is used. The generated code will also work with Python v2.6 and later. By default :program:`pyrcc4` will generate code for all Python v2 versions but you should use the new :option:`-py2 ` command line option to enforce this in case the default is changed in the future. PyQt-x11-gpl-4.11.4/doc/html/_sources/incompatible_apis.txt0000644000076500000240000000247112425374020023525 0ustar philstaff00000000000000.. _ref-incompat-apis: Selecting Incompatible APIs =========================== PyQt4 provides limited support for multiple incompatible APIs and the ability for an application to select between them at run-time. For example, an application can choose whether ``QString`` is implemented as a Python type, or is automatically converted to and from a Python v2 unicode object or a Python v3 string object. This ability allows developers to decide how to manage the transition from an older deprecated, API to a newer incompatible API. Each API that can be selected in this way has a name and a range of version numbers. An application calls :func:`sip.setapi` to set the version number of a particular API. This call must be made before any module that implements the API is imported. Once set the version number cannot be changed. If not set then an API will use its default version. For example the following code will disable the use of ``QString``:: import sip sip.setapi('QString', 2) from PyQt4 import QtCore # This will raise an attribute exception because QString is only wrapped # in version 1 of the API. s = QtCore.QString() The following APIs are currently implemented: - QDate v1, v2 - QDateTime v1, v2 - QString v1, v2 - QTextStream v1, v2 - QTime v1, v2 - QUrl v1, v2 - QVariant v1, v2 PyQt-x11-gpl-4.11.4/doc/html/_sources/index.txt0000644000076500000240000000073312425374020021151 0ustar philstaff00000000000000PyQt4 Reference Guide ===================== .. toctree:: :maxdepth: 2 introduction incompatibilities installation python_v3 qt_v5 keyword_arguments qt_properties new_style_signals_slots old_style_signals_slots gotchas designer resources pyqt_qvariant pyqt_qsettings qml webkit pickle buffer_interface python_shell i18n dbus incompatible_apis deploy_commercial build_system PyQt-x11-gpl-4.11.4/doc/html/_sources/installation.txt0000644000076500000240000006011112530100333022526 0ustar philstaff00000000000000Installing PyQt4 ================ Downloading SIP --------------- SIP must be installed before building and using PyQt4. You can get the latest release of the SIP source code from http://www.riverbankcomputing.com/software/sip/download. The SIP documentation can be found at http://pyqt.sourceforge.net/Docs/sip4/. Downloading PyQt4 ----------------- You can get the latest release of the GPL version of the PyQt4 source code from http://www.riverbankcomputing.com/software/pyqt/download. If you are using the commercial version of PyQt4 then you should use the download instructions which were sent to you when you made your purchase. You must also download your license file. Configuring PyQt4 ----------------- After unpacking the source package (either a ``.tar.gz`` or a ``.zip`` file depending on your platform) you should then check for any :file:`README` files that relate to your platform. If you are using the commercial version of PyQt4 then you must copy your license file to the :file:`sip` directory, or to the directory specified by the :option:`--license-dir` option of :program:`configure-ng.py`. You need to make sure your environment variables are set properly for your development environment. In order to configure the build of PyQt4 you need to run either the :program:`configure-ng.py` or the :program:`configure.py` script. :program:`configure.py` is the original configuration script that uses the build system of SIP v4 (i.e. the :mod:`sip.sipconfig` module). It will be supported for the life of PyQt4. :program:`configure-ng.py` is the new configuration script that uses Qt's :program:`qmake` program to do all the heavy lifting. It has the following advantages: - it supports cross-compilation - it is the basis of PyQt5's configuration script - generated Makefiles have an uninstall target - it will work with SIP v5 (which will have no build system). Users are encouraged to switch to using :program:`configure-ng.py` in order to ease the future transition to SIP v5 and/or PyQt5. Using :program:`configure-ng.py` ................................ .. versionadded:: 4.10.1 The :program:`configure-ng.py` script is used to configure PyQt4 as follows:: python configure-ng.py This assumes that the Python interpreter is on your path. Something like the following may be appropriate on Windows:: c:\python34\python configure-ng.py If you have multiple versions of Python installed then make sure you use the interpreter for which you wish to build PyQt4 for. The full set of command line options is: .. program:: configure-ng.py .. cmdoption:: --assume-shared Normally Qt is checked to see if it has been built as shared libraries. Some Linux distributions configure their Qt builds to make this check unreliable. This option ignores the result of the check and assumes that Qt has been built as shared libraries. .. cmdoption:: --bindir

, -b The :program:`pyuic4`, :program:`pyrcc4` and :program:`pylupdate4` utilities will be installed in the directory ````. .. cmdoption:: --concatenate, -c The C++ source files for a Python module will be concatenated. This results in significantly reduced compilation times. Most, but not all, C++ compilers can handle the large files that result. See also the :option:`--concatenate-split` option. .. cmdoption:: --concatenate-split , -j If the :option:`--concatenate` option is used to concatenate the C++ source files then this option determines how many files are created. The default is 1. .. cmdoption:: --configuration ```` contains the configuration of the PyQt4 build to be used instead of dynamically introspecting the system and is typically used when cross-compiling. See :ref:`ref-configuration-files`. .. cmdoption:: --confirm-license Using this confirms that you accept the terms of the PyQt4 license. .. cmdoption:: --dbus , -s The :file:`dbus-python.h` header file of the dbus-python package can be found in the directory ``/dbus``. .. cmdoption:: --debug, -u The PyQt4 modules will be built with debugging symbols. On Windows this requires that a debug version of Python is installed. .. cmdoption:: --designer-plugindir The Python plugin for Qt Designer will be installed in the directory ````. .. cmdoption:: --destdir , -d The PyQt4 Python package will be installed in the directory ````. The default is the Python installation's :file:`site-packages` directory. If you use this option then the :envvar:`PYTHONPATH` environment variable must include ````. .. cmdoption:: --enable , -e Normally all PyQt4 modules are enabled and are built if the corresponding Qt library can be found. Using this option only those modules specifically enabled will be checked for and built. The option may be specified any number of times. .. cmdoption:: --help, -h Display a help message. .. cmdoption:: --license-dir The license files needed by the commercial version of PyQt4 can be found in the directory ````. .. cmdoption:: --no-deprecated All Qt v4 features that have been deprecated in Qt v5 will be disabled. This is useful when porting PyQt4 applications to PyQt5. .. cmdoption:: --no-designer-plugin The Qt Designer plugin will not be built. .. cmdoption:: --no-docstrings The PyQt4 modules will not contain automatically generated docstrings. .. cmdoption:: --no-python-dbus The Qt support for the standard Python DBus bindings is disabled. .. cmdoption:: --no-qsci-api The :file:`PyQt4.api` QScintilla API file is not installed even if QScintilla does appear to be installed. .. cmdoption:: --no-sip-files The ``.sip`` files for the PyQt4 modules will not be installed. .. cmdoption:: --no-tools .. versionadded:: 4.11 The ``pyuic4``, ``pyrcc4`` and ``pylupdate4`` tools will not be built. .. cmdoption:: --no-timestamp, -T Normally the header comments of each generated C/C++ source file includes a timestamp corresponding to when the file was generated. This option suppresses the inclusion of the timestamp. .. cmdoption:: --plugin , -t If Qt has been built as static libraries then the static plugin ```` will be linked with the appropriate PyQt4 module. The option may be specified any number of times. .. cmdoption:: --protected-is-public On certain platforms the size of PyQt4 modules can be significantly reduced by redefining the C++ ``protected`` keyword as ``public`` during compilation. This option enables this behaviour and is the default on Linux and MacOS/X. .. cmdoption:: --protected-not-public The default redefinition of ``protected`` to ``public`` during compilation on Linux and MacOS/X is disabled. .. cmdoption:: --pyuic4-interpreter ```` is the name of the Python interpreter used in the pyuic4 wrapper. The default is platform dependent. .. cmdoption:: --qmake , -q Qt's :program:`qmake` program is used to determine how your Qt installation is laid out. Normally :program:`qmake` is found on your :envvar:`PATH`. This option can be used to specify a particular instance of :program:`qmake` to use. This option is not available on Windows where :program:`qmake` must be on :envvar:`PATH`. .. cmdoption:: --qsci-api, -a The :file:`PyQt4.api` QScintilla API file is installed even if QScintilla does not appear to be installed. This option is implied if the :option:`--qsci-api-destdir` option is specified. .. cmdoption:: --qsci-api-destdir , -n The QScintilla API file will be installed in the :file:`python` subdirectory of the :file:`api` subdirectory of the directory ````. .. cmdoption:: --sip The :program:`sip` program is used to generate PyQt4's C++ source code. Normally :program:`sip` is found on your :envvar:`PATH`. This option can be used to specify a particular instance of :program:`sip` to use. .. cmdoption:: --sip-incdir The ``sip.h`` header file can be found in the directory ````. .. cmdoption:: --sipdir , -v The ``.sip`` files for the PyQt4 modules will be installed in the directory ````. .. cmdoption:: --spec The argument ``-spec SPEC`` will be passed to :program:`qmake`. The default behaviour is platform specific. On Windows :program:`configure-ng.py` will choose the value that is correct for the version of Python that is being used. (However if you have built Python yourself then you may need to explicitly specify ````.) On MacOS :program:`configure-ng.py` will try and avoid ``macx-xcode`` if possible.) .. cmdoption:: --static, -k The PyQt4 modules will be built as static libraries. This is useful when building a custom interpreter with the PyQt4 modules built in to the interpreter. .. cmdoption:: --sysroot .. versionadded:: 4.11 ```` is the name of an optional directory that replaces ``sys.prefix`` in the names of other directories (specifically those specifying where the various PyQt4 components will be installed and where the Python include and library directories can be found). It is typically used when cross-compiling or when building a static version of PyQt4. See :ref:`ref-configuration-files`. .. cmdoption:: --target-py-version .. versionadded:: 4.11 ```` is the major and minor version (e.g. ``3.4``) of the version of Python being targetted. By default the version of Python being used to run the :program:`configure.py` script is used. It is typically used when cross-compiling. See :ref:`ref-configuration-files`. .. cmdoption:: --trace, -r The generated PyQt4 modules contain additional tracing code that is enabled using SIP's :func:`sip.settracemask` function. .. cmdoption:: --verbose, -w Compiler commands and any output issued during configuration is displayed instead of being suppressed. Use this if :program:`configure-ng.py` is having problems to see what exactly is going wrong. .. cmdoption:: --version Display the PyQt4 version number. Any remaining command line arguments are expected to be in the form ``name=value`` or ``name+=value``. Such arguments are added to any :program:`qmake` ``.pro`` file created by :program:`configure-ng.py`. Using :program:`configure.py` ............................. The :program:`configure.py` script is used to configure PyQt4 as follows:: python configure.py This assumes that the Python interpreter is on your path. Something like the following may be appropriate on Windows:: c:\python34\python configure.py If you have multiple versions of Python installed then make sure you use the interpreter for which you wish to build PyQt4 for. The full set of command line options is: .. program:: configure.py .. cmdoption:: --assume-shared Normally Qt is checked to see if it has been built as shared libraries. Some Linux distributions configure their Qt builds to make this check unreliable. This option ignores the result of the check and assumes that Qt has been built as shared libraries. .. cmdoption:: --bindir , -b The :program:`pyuic4`, :program:`pyrcc4` and :program:`pylupdate4` utilities will be installed in the directory ````. .. cmdoption:: --concatenate, -c The C++ source files for a Python module will be concatenated. This results in significantly reduced compilation times. Most, but not all, C++ compilers can handle the large files that result. See also the :option:`--concatenate-split` option. .. cmdoption:: --concatenate-split , -j If the :option:`--concatenate` option is used to concatenate the C++ source files then this option determines how many files are created. The default is 1. .. cmdoption:: --confirm-license Using this confirms that you accept the terms of the PyQt4 license. .. cmdoption:: --consolidate, -g Normally each PyQt4 module (except for the :mod:`~PyQt4.Qt` module) is linked against the corresponding Qt library. This option creates a module called :mod:`~PyQt4._qt` which is linked against all the required Qt libraries and the other modules are stub modules that populate their module dictionaries from this one. This is useful when linking against static Qt libraries to eliminate the need to distribute the Qt libraries while minimising the memory footprint of the PyQt4 modules. .. cmdoption:: --dbus , -s The :file:`dbus-python.h` header file of the dbus-python package can be found in the directory ``/dbus``. .. cmdoption:: --debug, -u The PyQt4 modules will be built with debugging symbols. On Windows this requires that a debug version of Python is installed. .. cmdoption:: --destdir , -d The PyQt4 Python package will be installed in the directory ````. The default is the Python installation's :file:`site-packages` directory. If you use this option then the :envvar:`PYTHONPATH` environment variable must include ````. .. cmdoption:: --enable , -e Normally all PyQt4 modules are enabled and are built if the corresponding Qt library can be found. Using this option only those modules specifically enabled will be checked for and built. The option may be specified any number of times. .. cmdoption:: --help, -h Display a help message. .. cmdoption:: --no-deprecated All Qt v4 features that have been deprecated in Qt v5 will be disabled. This is useful when porting PyQt4 applications to PyQt5. .. cmdoption:: --no-designer-plugin The Qt Designer plugin will not be built. .. cmdoption:: --no-docstrings The PyQt4 modules will not contain automatically generated docstrings. .. cmdoption:: --no-qsci-api The :file:`PyQt4.api` QScintilla API file is not installed even if QScintilla does appear to be installed. .. cmdoption:: --no-sip-files The ``.sip`` files for the PyQt4 modules will not be installed. .. cmdoption:: --no-timestamp, -T Normally the header comments of each generated C/C++ source file includes a timestamp corresponding to when the file was generated. This option suppresses the inclusion of the timestamp. .. cmdoption:: --plugin , -t If Qt has been built as static libraries then the static plugin ```` will be linked with the appropriate PyQt4 module. The option may be specified any number of times. .. cmdoption:: --plugin-destdir , -p The Qt Designer plugin that manages plugins implemented in Python will be installed in the :file:`designer` subdirectory of the directory ````. .. cmdoption:: --protected-is-public On certain platforms the size of PyQt4 modules can be significantly reduced by redefining the C++ ``protected`` keyword as ``public`` during compilation. This option enables this behaviour and is the default on Linux and MacOS/X. .. cmdoption:: --protected-not-public The default redefinition of ``protected`` to ``public`` during compilation on Linux and MacOS/X is disabled. .. cmdoption:: --qmake , -q Qt's :program:`qmake` program is used to determine how your Qt installation is laid out. Normally :program:`qmake` is found on your :envvar:`PATH`. This option can be used to specify a particular instance of :program:`qmake` to use. This option is not available on Windows. .. cmdoption:: --qsci-api, -a The :file:`PyQt4.api` QScintilla API file is installed even if QScintilla does not appear to be installed. This option is implied if the :option:`--qsci-api-destdir` option is specified. .. cmdoption:: --qsci-api-destdir , -n The QScintilla API file will be installed in the :file:`python` subdirectory of the :file:`api` subdirectory of the directory ````. .. cmdoption:: --sipdir , -v The ``.sip`` files for the PyQt4 modules will be installed in the directory ````. .. cmdoption:: --static, -k The PyQt4 modules will be built as static libraries. This is useful when building a custom interpreter with the PyQt4 modules built in to the interpreter. .. cmdoption:: --trace, -r The generated PyQt4 modules contain additional tracing code that is enabled using SIP's :func:`sip.settracemask` function. .. cmdoption:: --use-arch When :program:`pyuic4` calls the Python interpreter on MacOS it will be run using the architecture ````. See the section :ref:`ref-macos`. .. cmdoption:: --verbose, -w Compiler commands and any output issued during configuration is displayed instead of being suppressed. Use this if :program:`configure.py` is having problems to see what exactly is going wrong. .. cmdoption:: --version Display the PyQt4 version number. .. _ref-macos: Configuring SIP and PyQt4 for MacOS ................................... Note that this section only applies if you are using the :program:`configure.py` script to configure PyQt4. The :program:`configure-ng.py` script leaves it to Qt's :program:`qmake` program to handle the details. :program:`configure-ng.py` does not support the creation of universal binaries. Building applications for MacOS can be a complex process. Typically the following need to be taken into account: - the architectures (i.e. i386, x86_64, ppc) that you want to support - the earliest version of MacOS you want to support (i.e. the deployment target) - the version of the SDK you want to use. If you are using a binary installer for Python and/or Qt then you also need to consider how they have been built regarding the above, and what bugs they have. SIP's and PyQt4's :program:`configure.py` scripts provide the necessary command line options to allow the correct configurations to be specified - the trick is to work out which options to use depending on the versions of Python and Qt you have installed. SIP provides the following command line options to its :program:`configure.py` script. - ``--arch `` specifies the target architecture and may be specified a number of times. - ``--universal`` is a shortcut for ``--arch i386 --arch ppc``. - ``--deployment-target `` specifies the earliest version of MacOS you want to support. This sets the :envvar:`MACOSX_DEPLOYMENT_TARGET` environment variable and should be used rather than setting the environment variable in the shell (to work around bugs in some versions of Python). - ``--sdk `` specifies the SDK to use. PyQt4 provides the :option:`--use-arch ` option that specifies which architecture certain PyQt4 tools (actually only :program:`pyuic4` at the moment) will use when running Python. For example, if your Qt installation is 32 bits, and your Python installation is 32 bits and 64 bits then you will need to specify ``--use-arch i386`` to ensure that :program:`pyuic4` runs the 32 bit version of Python. Building PyQt4 -------------- The next step is to build PyQt4 by running your platform's :program:`make` command. For example:: make The final step is to install PyQt4 by running the following command:: make install (Depending on your system you may require root or administrator privileges.) This will install the various PyQt4 components. .. _ref-configuration-files: Configuring with Configuration Files ------------------------------------ The :program:`configure.py` script normally introspects the Python installation of the interpreter running it in order to determine the names of the various files and directories it needs. This is fine for a native build of PyQt4 but isn't appropriate when cross-compiling. In this case it is possible to supply a configuration file, specified using the :option:`--configuration` option, which contains definitions of all the required values. A configuration file is made up of a number of named sections each of which contains a number of configuration items. The format of a configuration file is as follows: - a section name is a single line with the name enclosed between ``[`` and ``]`` - a configuration item is a single line containing a name/value pair separated by ``=`` - values may be extended to lines immediately following if they are indented by at least one space - a value may include another value by embedding the name of that value enclosed between ``%(`` and ``)`` - comments begin with ``#`` and continue to the end of the line - blank lines are ignored. Those configuration items that appear before the first section name are automatically added to all sections. A configuration file defines a section for each version of Qt that requires a different configuration. :program:`configure.py` will choose the most appropriate section according to the version of Qt you are actually using. For example, if a configuration file contains sections for Qt v5.3 and Qt v5.1 and you are using Qt v5.2.1 then the section for Qt v5.1 will be chosen. :program:`configure.py` provides the following preset values for a configuration: ``py_major`` is the major version number of the target Python installation. ``py_minor`` is the minor version number of the target Python installation. ``sysroot`` is the name of the system root directory. This is specified with the :option:`--sysroot` option. The following is an example configuration file:: # The target Python installation. py_platform = linux py_inc_dir = %(sysroot)/usr/include/python%(py_major).%(py_minor) py_pylib_dir = %(sysroot)/usr/lib/python%(py_major).%(py_minor)/config py_pylib_lib = python%(py_major).%(py_minor)mu # The target PyQt installation. pyqt_module_dir = %(sysroot)/usr/lib/python%(py_major)/dist-packages pyqt_bin_dir = %(sysroot)/usr/bin pyqt_sip_dir = %(sysroot)/usr/share/sip/PyQt4 pyuic_interpreter = /usr/bin/python%(py_major).%(py_minor) pyqt_disabled_features = PyQt_Desktop_OpenGL PyQt_qreal_double # Qt configuration common to all versions. qt_shared = True [Qt 5.1] pyqt_modules = QtCore QtDBus QtDesigner QtGui QtHelp QtMultimedia QtMultimediaWidgets QtNetwork QtOpenGL QtPrintSupport QtQml QtQuick QtSensors QtSerialPort QtSql QtSvg QtTest QtWebKit QtWebKitWidgets QtWidgets QtXmlPatterns _QOpenGLFunctions_ES2 This example contains a section for Qt v5.1. We have defined a number of values before the start of the section as they are not specific to any particular version of Qt. Note that if you use this configuration with a version of Qt earlier than v5.1 then you will get an error. The following values can be specified in the configuration file: ``qt_shared`` is set if Qt has been built as shared libraries. The default value is ``False``. ``py_platform`` is the target Python platform. ``py_inc_dir`` is the target Python include directory, i.e. the directory containing the ``Python.h`` file. ``py_pylib_dir`` is the target Python library directory. ``py_pylib_lib`` is the target Python interpreter library. It should not include any platform-specific prefix or suffix. ``pyqt_disabled_features`` is the space separated list of features (as defined by SIP's ``%Feature`` directive) that should be disabled. ``pyqt_module_dir`` is the target directory where the PyQt4 modules will be installed. It can be overridden by the :option:`--destdir` option. ``pyqt_modules`` is the space separated list of PyQt4 modules that will be built. It can be overridden by the :option:`--enable` option. ``pyqt_bin_dir`` is the name of the target directory where the PyQt4 related executables will be installed. It can be overridden by the :option:`--bindir` option. ``pyqt_sip_dir`` is the name of the target directory where the PyQt4 ``.sip`` files will be installed. It can be overridden by the :option:`--sipdir` option. ``pyuic_interpreter`` is the name of the Python interpreter (as it would be called from the target system) that will be used to run :program:`pyuic4`. It can be overridden by the :option:`--pyuic4-interpreter` option. PyQt-x11-gpl-4.11.4/doc/html/_sources/introduction.txt0000644000076500000240000002072212536324427022574 0ustar philstaff00000000000000Introduction ============ This is the reference guide for PyQt4 4.11.4. PyQt4 is a set of `Python `__ bindings for v4 and v5 of the Qt application framework from `Digia `__. There is a separate `PyQt4 Class Reference `__. Qt is a set of C++ libraries and development tools that includes platform independent abstractions for graphical user interfaces, networking, threads, Unicode, regular expressions, SQL databases, SVG, OpenGL, XML, and user and application settings. PyQt4 implements 440 of these classes as a set of Python modules. PyQt4 supports the Windows, Linux, UNIX and MacOS/X platforms. PyQt4 does not include Qt itself - you must obtain it separately. The homepage for PyQt4 is http://www.riverbankcomputing.com/software/pyqt/. Here you will always find the latest stable version, current development previews, and the latest version of this documentation. PyQt4 is built using the `SIP bindings generator `__. SIP must be installed in order to build and use PyQt4. Earlier versions of Qt are supported by PyQt v3. License ------- PyQt4 is dual licensed on all platforms under the Riverbank Commercial License and the GPL v3. Your PyQt4 license must be compatible with your Qt license. If you use the GPL versions then your own code must also use a compatible license. PyQt4, unlike Qt, is not available under the LGPL. You can purchase a commercial PyQt4 license `here `__. PyQt4 Components ---------------- PyQt4 comprises a number of different components. First of all there are a number of Python extension modules. These are all installed in the :mod:`PyQt4` Python package. - The :mod:`~PyQt4.QtCore` module. This contains the core non-GUI classes, including the event loop and Qt's signal and slot mechanism. It also includes platform independent abstractions for Unicode, threads, mapped files, shared memory, regular expressions, and user and application settings. - The :mod:`~PyQt4.QtGui` module. This contains the majority of the GUI classes. - The :mod:`~PyQt4.QtHelp` module. This contains classes for creating and viewing searchable documentation. - The :mod:`~PyQt4.QtNetwork` module. This module contains classes for writing UDP and TCP clients and servers. It includes classes that implement FTP and HTTP clients and support DNS lookups. - The :mod:`~PyQt4.QtOpenGL` module. This module contains classes that enable the use of OpenGL in rendering 3D graphics in PyQt4 applications. - The :mod:`~PyQt4.QtScript` module. This module contains classes that enable PyQt4 applications to be scripted using Qt's JavaScript interpreter. - The :mod:`~PyQt4.QtScriptTools` module. This module contains classes that contain additional components (e.g. a debugger) that are used with Qt's JavaScript interpreter. - The :mod:`~PyQt4.QtSql` module. This module contains classes that integrate with SQL databases. It includes editable data models for database tables that can be used with GUI classes. It also includes an implementation of `SQLite `__. - The :mod:`~PyQt4.QtSvg` module. This module contains classes for displaying the contents of SVG files. - The :mod:`~PyQt4.QtTest` module. This module contains functions that enable unit testing of PyQt4 applications. (PyQt4 does not implement the complete Qt unit test framework. Instead it assumes that the standard Python unit test framework will be used and implements those functions that simulate a user interacting with a GUI.) - The :mod:`~PyQt4.QtWebKit` module. This module implements a web browser engine based on the WebKit open source browser engine. - The :mod:`~PyQt4.QtXml` module. This module contains classes that implement SAX and DOM interfaces to Qt's XML parser. - The :mod:`~PyQt4.QtXmlPatterns` module. This module contains classes that implement XQuery and XPath support for XML and custom data models. - The :mod:`~PyQt4.phonon` module. This module contains classes that implement a cross-platform multimedia framework that enables the use of audio and video content in PyQt4 applications. - The :mod:`~PyQt4.QtDBus` module. This Unix-only module provides classes that support Inter-Process Communication using the D-Bus protocol. - The :mod:`~PyQt4.QtDeclarative` module. This module provides a declarative framework for building highly dynamic, custom user interfaces using QML. - The :mod:`~PyQt4.QtMultimedia` module. This module provides low-level multimedia functionality. Application developers would normally use the :mod:`~PyQt4.phonon` module. - The :mod:`~PyQt4.QtAssistant` module. This module contains classes that allow Qt Assistant to be integrated with a PyQt4 application to provide online help. This module is not available with Qt v4.7 and later - use the :mod:`~PyQt4.QtHelp` module instead. - The :mod:`~PyQt4.QtDesigner` module. This module contains classes that allow Qt Designer to be extended using PyQt4. See :ref:`ref-designer-plugins` for a full description of how to do this. - The :mod:`~PyQt4.QAxContainer` module. This Windows-only module contains classes that allow access to ActiveX controls and COM objects. - The :mod:`~PyQt4.Qt` module. This module consolidates the classes contained in all of the modules described above into a single module. This has the advantage that you don't have to worry about which underlying module contains a particular class. It has the disadvantage that it loads the whole of the Qt framework, thereby increasing the memory footprint of an application. Whether you use this consolidated module, or the individual component modules is down to personal taste. - The `DBus `__ support module is installed as :mod:`dbus.mainloop.qt`. This module provides support for the Qt event loop in the same way that the :mod:`dbus.mainloop.glib` included with the standard ``dbus-python`` bindings package provides support for the GLib event loop. The API is described in :ref:`ref-dbus`. It is only available if the ``dbus-python`` v0.80 (or later) bindings package is installed. The :mod:`~PyQt4.QtDBus` module provides a more Qt-like interface to DBus. - The :mod:`~PyQt4.uic` module. This module contains classes for handling the ``.ui`` files created by Qt Designer that describe the whole or part of a graphical user interface. It includes classes that load a ``.ui`` file and render it directly, and classes that generate Python code from a ``.ui`` file for later execution. - The :mod:`~PyQt4.pyqtconfig` module is an extention of the SIP build system and is created when PyQt4 is configured. It encapsulates all the necessary information about your Qt installation and makes it easier to write installation scripts for bindings built on top of PyQt4. It is covered in detail in :ref:`ref-build-system`. PyQt4 also contains a number of utility programs. - :program:`pyuic4` corresponds to the Qt :program:`uic` utility. It converts GUIs created using Qt Designer to Python code. - :program:`pyrcc4` corresponds to the Qt :program:`rcc` utility. It embeds arbitrary resources (eg. icons, images, translation files) described by a resource collection file in a Python module. .. note:: It will only be included if your copy of Qt includes the XML module. - :program:`pylupdate4` corresponds to the Qt :program:`lupdate` utility. It extracts all of the translatable strings from Python code and creates or updates ``.ts`` translation files. These are then used by Qt Linguist to manage the translation of those strings. .. note:: It will only be included if your copy of Qt includes the XML module. When PyQt4 is configured a file called :file:`PyQt4.api` is generated. This can be used by the QScintilla editor component (at http://www.riverbankcomputing.com/software/qscintilla/) to enable the use of auto-completion and call tips when editing PyQt4 code. The API file is installed automatically if QScintilla is already installed. PyQt4 includes a large number of examples. These are ports to Python of many of the C++ examples provided with Qt. They can be found in the :file:`examples` directory. Finally, PyQt4 contains the ``.sip`` files used by SIP to generate PyQt4 itself. These can be used by developers of bindings of other Qt based class libraries - for example `PyQwt and PyQwt3D `__. PyQt-x11-gpl-4.11.4/doc/html/_sources/keyword_arguments.txt0000644000076500000240000000146412425374020023615 0ustar philstaff00000000000000Support for Keyword Arguments ============================= Starting with v4.7 PyQt4 supports the use of keyword arguments for optional arguments. One thing to be aware of is that, although the PyQt4 and Qt documentation may indicate that an argument has a particular name, you may find that PyQt4 actually uses a different name. This is because the name of an argument is not part of the Qt API and there is some inconsistency in the way that similar arguments are named. Different versions of Qt may use a different name for an argument which wouldn't affect the C++ API but would break the Python API. The docstrings that PyQt4 generates for all classes, functions and methods will contain the correct argument names. In a future version of PyQt4 the documentation will also contain the correct argument names. PyQt-x11-gpl-4.11.4/doc/html/_sources/new_style_signals_slots.txt0000644000076500000240000003304012527653724025032 0ustar philstaff00000000000000New-style Signal and Slot Support ================================= This section describes the new style of connecting signals and slots introduced in PyQt4 v4.5. One of the key features of Qt is its use of signals and slots to communicate between objects. Their use encourages the development of reusable components. A signal is emitted when something of potential interest happens. A slot is a Python callable. If a signal is connected to a slot then the slot is called when the signal is emitted. If a signal isn't connected then nothing happens. The code (or component) that emits the signal does not know or care if the signal is being used. The signal/slot mechanism has the following features. - A signal may be connected to many slots. - A signal may also be connected to another signal. - Signal arguments may be any Python type. - A slot may be connected to many signals. - Connections may be direct (ie. synchronous) or queued (ie. asynchronous). - Connections may be made across threads. - Signals may be disconnected. Unbound and Bound Signals ------------------------- A signal (specifically an unbound signal) is an attribute of a class that is a sub-class of ``QObject``. When a signal is referenced as an attribute of an instance of the class then PyQt4 automatically binds the instance to the signal in order to create a *bound signal*. This is the same mechanism that Python itself uses to create bound methods from class functions. A bound signal has ``connect()``, ``disconnect()`` and ``emit()`` methods that implement the associated functionality. It also has a ``signal`` attribute that is the signature of the signal that would be returned by Qt's ``SIGNAL()`` macro. A signal may be overloaded, ie. a signal with a particular name may support more than one signature. A signal may be indexed with a signature in order to select the one required. A signature is a sequence of types. A type is either a Python type object or a string that is the name of a C++ type. The name of a C++ type is automatically normalised so that, for example, ``QString`` can be used instead of the non-normalised ``const QString &``. If a signal is overloaded then it will have a default that will be used if no index is given. When a signal is emitted then any arguments are converted to C++ types if possible. If an argument doesn't have a corresponding C++ type then it is wrapped in a special C++ type that allows it to be passed around Qt's meta-type system while ensuring that its reference count is properly maintained. Defining New Signals with :func:`~PyQt4.QtCore.pyqtSignal` ---------------------------------------------------------- PyQt4 automatically defines signals for all Qt's built-in signals. New signals can be defined as class attributes using the :func:`~PyQt4.QtCore.pyqtSignal` factory. .. function:: PyQt4.QtCore.pyqtSignal(types[, name]) Create one or more overloaded unbound signals as a class attribute. :param types: the types that define the C++ signature of the signal. Each type may be a Python type object or a string that is the name of a C++ type. Alternatively each may be a sequence of type arguments. In this case each sequence defines the signature of a different signal overload. The first overload will be the default. :param name: the name of the signal. If it is omitted then the name of the class attribute is used. This may only be given as a keyword argument. :rtype: an unbound signal The following example shows the definition of a number of new signals:: from PyQt4.QtCore import QObject, pyqtSignal class Foo(QObject): # This defines a signal called 'closed' that takes no arguments. closed = pyqtSignal() # This defines a signal called 'rangeChanged' that takes two # integer arguments. range_changed = pyqtSignal(int, int, name='rangeChanged') # This defines a signal called 'valueChanged' that has two overloads, # one that takes an integer argument and one that takes a QString # argument. Note that because we use a string to specify the type of # the QString argument then this code will run under Python v2 and v3. valueChanged = pyqtSignal([int], ['QString']) New signals should only be defined in sub-classes of ``QObject``. They must be part of the class definition and cannot be dynamically added as class attributes after the class has been defined. New signals defined in this way will be automatically added to the class's ``QMetaObject``. This means that they will appear in Qt Designer and can be introspected using the ``QMetaObject`` API. Overloaded signals should be used with care when an argument has a Python type that has no corresponding C++ type. PyQt4 uses the same internal C++ class to represent such objects and so it is possible to have overloaded signals with different Python signatures that are implemented with identical C++ signatures with unexpected results. The following is an example of this:: class Foo(QObject): # This will cause problems because each has the same C++ signature. valueChanged = pyqtSignal([dict], [list]) Connecting, Disconnecting and Emitting Signals ---------------------------------------------- Signals are connected to slots using the :meth:`connect` method of a bound signal. .. method:: connect(slot[, type=PyQt4.QtCore.Qt.AutoConnection[, no_receiver_check=False]]) Connect a signal to a slot. An exception will be raised if the connection failed. :param slot: the slot to connect to, either a Python callable or another bound signal. :param type: the type of the connection to make. :param no_receiver_check: suppress the check that the underlying C++ receiver instance still exists and deliver the signal anyway. Signals are disconnected from slots using the :meth:`disconnect` method of a bound signal. .. method:: disconnect([slot]) Disconnect one or more slots from a signal. An exception will be raised if the slot is not connected to the signal or if the signal has no connections at all. :param slot: the optional slot to disconnect from, either a Python callable or another bound signal. If it is omitted then all slots connected to the signal are disconnected. Signals are emitted from using the :meth:`emit` method of a bound signal. .. method:: emit(\*args) Emit a signal. :param args: the optional sequence of arguments to pass to any connected slots. The following code demonstrates the definition, connection and emit of a signal without arguments:: from PyQt4.QtCore import QObject, pyqtSignal class Foo(QObject): # Define a new signal called 'trigger' that has no arguments. trigger = pyqtSignal() def connect_and_emit_trigger(self): # Connect the trigger signal to a slot. self.trigger.connect(self.handle_trigger) # Emit the signal. self.trigger.emit() def handle_trigger(self): # Show that the slot has been called. print "trigger signal received" The following code demonstrates the connection of overloaded signals:: from PyQt4.QtGui import QComboBox class Bar(QComboBox): def connect_activated(self): # The PyQt4 documentation will define what the default overload is. # In this case it is the overload with the single integer argument. self.activated.connect(self.handle_int) # For non-default overloads we have to specify which we want to # connect. In this case the one with the single string argument. # (Note that we could also explicitly specify the default if we # wanted to.) self.activated[str].connect(self.handle_string) def handle_int(self, index): print "activated signal passed integer", index def handle_string(self, text): print "activated signal passed QString", text Connecting Signals Using Keyword Arguments ------------------------------------------ It is also possible to connect signals by passing a slot as a keyword argument corresponding to the name of the signal when creating an object, or using the ``pyqtConfigure()`` method of ``QObject``. For example the following three fragments are equivalent:: act = QtGui.QAction("Action", self) act.triggered.connect(self.on_triggered) act = QtGui.QAction("Action", self, triggered=self.on_triggered) act = QtGui.QAction("Action", self) act.pyqtConfigure(triggered=self.on_triggered) The :func:`~PyQt4.QtCore.pyqtSlot` Decorator -------------------------------------------- Although PyQt4 allows any Python callable to be used as a slot when connecting signals, it is sometimes necessary to explicitly mark a Python method as being a Qt slot and to provide a C++ signature for it. PyQt4 provides the :func:`~PyQt4.QtCore.pyqtSlot` function decorator to do this. .. function:: PyQt4.QtCore.pyqtSlot(types[, name[, result]]) Decorate a Python method to create a Qt slot. :param types: the types that define the C++ signature of the slot. Each type may be a Python type object or a string that is the name of a C++ type. :param name: the name of the slot that will be seen by C++. If omitted the name of the Python method being decorated will be used. This may only be given as a keyword argument. :param result: the type of the result and may be a Python type object or a string that specifies a C++ type. This may only be given as a keyword argument. Connecting a signal to a decorated Python method also has the advantage of reducing the amount of memory used and is slightly faster. For example:: from PyQt4.QtCore import QObject, pyqtSlot class Foo(QObject): @pyqtSlot() def foo(self): """ C++: void foo() """ @pyqtSlot(int, str) def foo(self, arg1, arg2): """ C++: void foo(int, QString) """ @pyqtSlot(int, name='bar') def foo(self, arg1): """ C++: void bar(int) """ @pyqtSlot(int, result=int) def foo(self, arg1): """ C++: int foo(int) """ @pyqtSlot(int, QObject) def foo(self, arg1): """ C++: int foo(int, QObject *) """ It is also possible to chain the decorators in order to define a Python method several times with different signatures. For example:: from PyQt4.QtCore import QObject, pyqtSlot class Foo(QObject): @pyqtSlot(int) @pyqtSlot('QString') def valueChanged(self, value): """ Two slots will be defined in the QMetaObject. """ Connecting Slots By Name ------------------------ PyQt4 supports the ``QtCore.QMetaObject.connectSlotsByName()`` function that is most commonly used by :program:`pyuic4` generated Python code to automatically connect signals to slots that conform to a simple naming convention. However, where a class has overloaded Qt signals (ie. with the same name but with different arguments) PyQt4 needs additional information in order to automatically connect the correct signal. For example the ``QtGui.QSpinBox`` class has the following signals:: void valueChanged(int i); void valueChanged(const QString &text); When the value of the spin box changes both of these signals will be emitted. If you have implemented a slot called ``on_spinbox_valueChanged`` (which assumes that you have given the ``QSpinBox`` instance the name ``spinbox``) then it will be connected to both variations of the signal. Therefore, when the user changes the value, your slot will be called twice - once with an integer argument, and once with a unicode or ``QString`` argument. This also happens with signals that take optional arguments. Qt implements this using multiple signals. For example, ``QtGui.QAbstractButton`` has the following signal:: void clicked(bool checked = false); Qt implements this as the following:: void clicked(); void clicked(bool checked); The :func:`~PyQt4.QtCore.pyqtSlot` decorator can be used to specify which of the signals should be connected to the slot. For example, if you were only interested in the integer variant of the signal then your slot definition would look like the following:: @pyqtSlot(int) def on_spinbox_valueChanged(self, i): # i will be an integer. pass If you wanted to handle both variants of the signal, but with different Python methods, then your slot definitions might look like the following:: @pyqtSlot(int, name='on_spinbox_valueChanged') def spinbox_int_value(self, i): # i will be an integer. pass @pyqtSlot(str, name='on_spinbox_valueChanged') def spinbox_qstring_value(self, s): # s will be a Python string object (or a QString if they are enabled). pass The following shows an example using a button when you are not interested in the optional argument:: @pyqtSlot() def on_button_clicked(self): pass Mixing New-style and Old-style Connections ------------------------------------------ The implementation of new-style connections is slightly different to the implementation of old-style connections. An application can freely use both styles subject to the restriction that any individual new-style connection should only be disconnected using the new style. Similarly any individual old-style connection should only be disconnected using the old style. You should also be aware that :program:`pyuic4` generates code that uses old-style connections. PyQt-x11-gpl-4.11.4/doc/html/_sources/old_style_signals_slots.txt0000644000076500000240000001242512425374020025005 0ustar philstaff00000000000000Old-style Signal and Slot Support ================================= This section describes the older style for connecting signals and slots. It uses the same API that a C++ application would use. This has a number of advantages. - It is well understood and documented. - Any future changes to the C++ API should be easily included. It also has a number of disadvantages. - It requires knowledge of the C++ types of signal arguments. - It is error prone in that if you mis-type the signal name or signature then no exception is raised, either when the signal is connected or emitted. - It is verbose. - It is not Pythonic. This older style of connecting signals and slots will continue to be supported throughout the life of PyQt4. PyQt4 Signals and Qt Signals ---------------------------- Qt signals are statically defined as part of a C++ class. They are referenced using the ``QtCore.SIGNAL()`` function. This method takes a single string argument that is the name of the signal and its C++ signature. For example:: QtCore.SIGNAL('finished(int)') The returned value is normally passed to the ``QtCore.QObject.connect()`` method. PyQt4 allows new signals to be defined dynamically. The act of emitting a PyQt4 signal implicitly defines it. PyQt4 signals are also referenced using the ``QtCore.SIGNAL()`` function. The ``PyQt_PyObject`` Signal Argument Type ------------------------------------------ It is possible to pass any Python object as a signal argument by specifying ``PyQt_PyObject`` as the type of the argument in the signature. For example:: QtCore.SIGNAL('finished(PyQt_PyObject)') While this would normally be used for passing objects like lists and dictionaries as signal arguments, it can be used for any Python type. Its advantage when passing, for example, an integer is that the normal conversions from a Python object to a C++ integer and back again are not required. The reference count of the object being passed is maintained automatically. There is no need for the emitter of a signal to keep a reference to the object after the call to ``QtCore.QObject.emit()``, even if a connection is queued. Short-circuit Signals --------------------- There is also a special form of a PyQt4 signal known as a short-circuit signal. Short-circut signals implicitly declare each argument as being of type ``PyQt_PyObject``. Short-circuit signals do not have a list of arguments or the surrounding parentheses. Short-circuit signals may only be connected to slots that have been implemented in Python. They cannot be connected to Qt slots or the Python callables that wrap Qt slots. PyQt4 Slots and Qt Slots ------------------------ Qt slots are statically defined as part of a C++ class. They are referenced using the ``QtCore.SLOT()`` function. This method takes a single string argument that is the name of the slot and its C++ signature. For example:: QtCore.SLOT('done(int)') The returned value is normally passed to the ``QtCore.QObject.connect()`` method. PyQt4 allows any Python callable to be used as a slot, not just Qt slots. This is done by simply referencing the callable. Because Qt slots are implemented as class methods they are also available as Python callables. Therefore it is not usually necessary to use ``QtCore.SLOT()`` for Qt slots. However, doing so is more efficient as it avoids a conversion to Python and back to C++. Qt allows a signal to be connected to a slot that requires fewer arguments than the signal passes. The extra arguments are quietly discarded. PyQt4 slots can be used in the same way. Note that when a slot is a Python callable its reference count is not increased. This means that a class instance can be deleted without having to explicitly disconnect any signals connected to its methods. However, if a slot is a lambda function or a partial function then its reference count is automatically incremented to prevent it from being immediately garbage collected. Connecting Signals and Slots ---------------------------- Connections between signals and slots (and other signals) are made using the ``QtCore.QObject.connect()`` method. For example:: QtCore.QObject.connect(a, QtCore.SIGNAL('QtSig()'), pyFunction) QtCore.QObject.connect(a, QtCore.SIGNAL('QtSig()'), pyClass.pyMethod) QtCore.QObject.connect(a, QtCore.SIGNAL('QtSig()'), b, QtCore.SLOT('QtSlot()')) QtCore.QObject.connect(a, QtCore.SIGNAL('PySig()'), b, QtCore.SLOT('QtSlot()')) QtCore.QObject.connect(a, QtCore.SIGNAL('PySig'), pyFunction) Disconnecting signals works in exactly the same way using the ``QtCore.QObject.disconnect()`` method. However, not all the variations of that method are supported by PyQt4. Signals must be disconnected one at a time. Emitting Signals ---------------- Any instance of a class that is derived from the ``QtCore.QObject`` class can emit a signal using its ``emit()`` method. This takes a minimum of one argument which is the signal. Any other arguments are passed to the connected slots as the signal arguments. For example:: a.emit(QtCore.SIGNAL('clicked()')) a.emit(QtCore.SIGNAL('pySig'), "Hello", "World") The ``QtCore.pyqtSignature()`` Decorator ---------------------------------------- The ``QtCore.pyqtSignature()`` serves the same purpose as the :func:`~PyQt4.QtCore.pyqtSlot` decorator but has a less Pythonic API. PyQt-x11-gpl-4.11.4/doc/html/_sources/pickle.txt0000644000076500000240000000055212425374020021310 0ustar philstaff00000000000000Support for Pickling ==================== The following PyQt4 classes may be pickled. - QByteArray - QChar - QColor - QDate - QDateTime - QKeySequence - QLatin1Char - QLatin1String - QLine - QLineF - QMatrix - QPoint - QPointF - QPolygon - QRect - QRectF - QSize - QSizeF - QString - QTime Also all named enums (``QtCore.Qt.Key`` for example) may be pickled. PyQt-x11-gpl-4.11.4/doc/html/_sources/pyqt_qsettings.txt0000644000076500000240000000570312425374020023142 0ustar philstaff00000000000000Support for QSettings ===================== .. versionadded:: v4.8.3 Qt provies the ``QSettings`` class as a platform independent API for the persistent storage and retrieval of application settings. Settings are retrieved using the ``QSettings.value()`` method which, when using v1 of PyQt4's ``QVariant`` API returns a ``QVariant`` object. An application will then typically convert the ``QVariant`` to the appropriate fundamental type using ``QVariant.toBool()``, ``QVariant.toInt()``. The explicit use of these conversion methods works around a problem with the way different platforms implement the storage of settings. Some platforms only ever store string values which means that the type of the original value is lost. Explicitly calling a conversion method provides the missing type information about the value being retrieved. A problem then arises when v2 of the ``QVariant`` API is used (i.e. the default for Python v3) because those explicit conversion methods are not available. Therefore a setting with an integer value of ``42`` may be retrieved as a string value of ``'42'``. This inconsistency is made worse by being platform specific. As a solution to the problem PyQt4's implementation of ``QSettings.value()`` takes an optional third argument called ``type``. This is either a Python type object, e.g. ``int``, or a string that is the name of a C++ type, e.g. ``'QStringList'``. The value returned will be an object of the requested type. For example:: from PyQt4.QtCore import QSettings, QPoint settings = QSettings('foo', 'foo') settings.setValue('int_value', 42) settings.setValue('point_value', QPoint(10, 12)) # This will write the setting to the platform specific storage. del settings settings = QSettings('foo', 'foo') int_value = settings.value('int_value', type=int) print("int_value: %s" % repr(int_value)) point_value = settings.value('point_value', type=QPoint) print("point_value: %s" % repr(point_value)) When this is executed then the following will be displayed for all platforms:: int_value: 42 point_value: PyQt4.QtCore.QPoint(10, 20) If the value of the setting is a container (corresponding to either ``QVariantList``, ``QVariantMap`` or ``QVariantHash``) then the type is applied to the contents of the container. For example:: from PyQt4.QtCore import QSettings settings = QSettings('foo', 'foo') settings.setValue('list_value', [1, 2, 3]) settings.setValue('dict_value', {'one': 1, 'two': 2}) # This will write the setting to the platform specific storage. del settings settings = QSettings('foo', 'foo') list_value = settings.value('list_value', type=int) print("list_value: %s" % repr(list_value)) dict_value = settings.value('dict_value', type=int) print("dict_value: %s" % repr(dict_value)) When this is executed then the following will be displayed for all platforms:: list_value: [1, 2, 3] dict_value: {'one': 1, 'two': 2} PyQt-x11-gpl-4.11.4/doc/html/_sources/pyqt_qvariant.txt0000644000076500000240000000142112425374020022737 0ustar philstaff00000000000000Python Objects and QVariant =========================== Qt uses the ``QVariant`` class as a wrapper for any C++ data type. PyQt4 allows any Python object to be wrapped as a ``QVariant`` and passed around Qt's meta-object system like any other type. PyQt4 will try to convert the Python object to a C++ equivalent if it can so that the ``QVariant`` can be passed to other C++ code that doesn't know what a Python object is. Version 2 of PyQt4's ``QVariant`` API will automatically convert a ``QVariant`` back to a Python object of the correct type. Version 1 of the ``QVariant`` API provides the ``QVariant.toPyObject()`` method to convert the ``QVariant`` back to a Python object of the correct type. Both versions will raise a Python exception if the conversion cannot be done. PyQt-x11-gpl-4.11.4/doc/html/_sources/python_shell.txt0000644000076500000240000000200212425374020022541 0ustar philstaff00000000000000Using PyQt4 from the Python Shell ================================= PyQt4 installs an input hook (using ``PyOS_InputHook``) that processes events when an interactive interpreter is waiting for user input. This means that you can, for example, create widgets from the Python shell prompt, interact with them, and still being able to enter other Python commands. For example, if you enter the following in the Python shell:: >>> from PyQt4 import QtGui >>> a = QtGui.QApplication([]) >>> w = QtGui.QWidget() >>> w.show() >>> w.hide() >>> The widget would be displayed when ``w.show()`` was entered amd hidden as soon as ``w.hide()`` was entered. The installation of an input hook can cause problems for certain applications (particularly those that implement a similar feature using different means). The :mod:`~PyQt4.QtCore` module contains the :func:`~PyQt4.QtCore.pyqtRemoveInputHook` and :func:`~PyQt4.QtCore.pyqtRestoreInputHook` functions that remove and restore the input hook respectively. PyQt-x11-gpl-4.11.4/doc/html/_sources/python_v3.txt0000644000076500000240000002126112425374020021772 0ustar philstaff00000000000000PyQt4 and Python v3 =================== PyQt4 fully supports all versions of Python v3. The default behaviour is different in some areas to the default behaviour with Python v2. These incompatible differences were introduced in order to make PyQt4 more Pythonic. However it is very easy to revert to the default Python v2 behaviour on a class by class basis if required. (See the section :ref:`ref-incompat-apis`.) QAbstractSpinBox ---------------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QAbstractSpinBox.fixup(str input) -> str QAbstractSpinBox.validate(str input, int pos) -> QValidator.State, str, int QChar ----- The ``QChar`` class is implemented as a mapped type that is automatically converted to and from a Python string. QClipboard ---------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QClipboard.text(str subtype, QClipboard.Mode mode=QClipboard.Clipboard) -> str, str QDate ----- The ``QDate.__hash__()`` returns a hash of the string representation so that two objects with the same date will have the same hash. The default behaviour with Python v2 is to return the object's ``id()`` so that two objects with the same date will have different hashes. QDateTime --------- The ``QDateTime.__hash__()`` method returns a hash of the string representation so that two objects with the same date and time will have the same hash. The default behaviour with Python v2 is to return the object's ``id()`` so that two objects with the same date and time will have different hashes. QDateTimeEdit ------------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QDateTimeEdit.fixup(str input) -> str QDateTimeEdit.validate(str input, int pos) -> QValidator.State, str, int QDoubleSpinBox -------------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QDoubleSpinBox.fixup(str input) -> str QDoubleSpinBox.validate(str input, int pos) -> QValidator.State, str, int QDoubleValidator ---------------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QDoubleValidator.validate(str input, int pos) -> QValidator.State, str, int QFileDialog ----------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QFileDialog.getOpenFileName(QWidget parent=None, str caption=None, str dir=None, str filter=None, QFileDialog.Options options=0) -> str QFileDialog.getOpenFileNames(QWidget parent=None, str caption=None, str dir=None, str filter=None, QFileDialog.Options options=0) -> list(str) QFileDialog.getSaveFileName(QWidget parent=None, str caption=None, str dir=None, str filter=None, QFileDialog.Options options=0) -> str The static methods ``QFileDialog.getOpenFileNameAndFilter()``, ``QFileDialog.getOpenFileNamesAndFilter()`` and ``QFileDialog.getSaveFileNameAndFilter()`` have been added which return a tuple of the name(s) and the selected filter. These can also be used with Python v2. QFontMetrics ------------ The methods ``QFontMetrics.widthChar()`` and ``QFontMetrics.boundingRectChar()`` have been added which accept a Python string of length one and call the C++ ``QFontMetrics::width()`` and ``QFontMetrics::boundingRect()`` methods passing the character as a ``QChar`` (rather than a single character ``QString``). QFontMetricsF ------------- The methods ``QFontMetricsF.widthChar()`` and ``QFontMetricsF.boundingRectChar()`` have been added which accept a Python string of length one and call the C++ ``QFontMetricsF::width()`` and ``QFontMetricsF::boundingRect()`` methods passing the character as a ``QChar`` (rather than a single character ``QString``). QIntValidator ------------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QIntValidator.validate(str input, int pos) -> QValidator.State, str, int QLatin1Char ----------- The ``QLatin1Char`` class is not implemented. QLatin1String ------------- The ``QLatin1String`` class is not implemented. QPyNullVariant -------------- The ``QPyNullVariant`` class is used to represent a null ``QVariant``. It is automatically converted to a C++ ``QVariant`` when required. A null C++ ``QVariant`` is automatically converted to a ``QPyNullVariant`` unless the type of the data in the ``QVariant`` itself supports the concept of a null value (i.e. it has an ``isNull()`` method). In this case a null C++ ``QVariant`` is converted to a null instance of the data type. The exception to this rule is that a C++ ``QVariant`` containing a null ``QString`` is always converted to a ``QPyNullVariant``. QRegExpValidator ---------------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QRegExpValidator.validate(str input, int pos) -> QValidator.State, str, int QSettings --------- The ``QSettings.value()`` method takes an optional ``type`` keyword argument that specifies the type of the value to return. It can either be a Python type object or a string specifying the name of a C++ type. Using this argument avoids potential portability problems where the type of a value may not be as expected because the platform specific backend to ``QSettings`` may not store the necessary type information. The argument can also be used with Python v2. QSpinBox -------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QSpinBox.fixup(str input) -> str QSpinBox.validate(str input, int pos) -> QValidator.State, str, int QString ------- The ``QString`` class is implemented as a mapped type that is automatically converted to and from a Python string. In addition a ``None`` is converted to a null ``QString``. However, a null ``QString`` is converted to an empty Python string (and not ``None``). (This is because Qt often returns a null ``QString`` when it should probably return an empty ``QString``.) QStringList ----------- The ``QStringList`` class is implemented as a mapped type that is automatically converted to and from a Python list of strings. QStringMatcher -------------- The ``QStringMatcher`` class is not implemented. QStringRef ---------- The ``QStringRef`` class is implemented as a mapped type that is automatically converted to and from a Python string. QTextDecoder ------------ The following C++ call is not wrapped because it expects ``QString`` to be mutable:: void toUnicode(QString *target, const char *chars, int len) QTextStream ----------- The C++ functions ``bin()``, ``hex()`` and ``oct()`` are named ``bin_()``, ``hex_()`` and ``oct_()`` respectively in Python. This allows the import style ``from PyQt4.QtCore import *`` to be used without them clashing with the Python built-in functions with the same names. The following C++ calls are not wrapped because they expect ``QString`` to be mutable:: QTextStream(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite) void setString(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite) QString *string() QTextStream &operator>>(QChar &c) QTextStream &operator>>(QString &s) QTime ----- The ``QTime.__hash__()`` returns a hash of the string representation so that two objects with the same time will have the same hash. The default behaviour with Python v2 is to return the object's ``id()`` so that two objects with the same time will have different hashes. QUrl ---- The ``QUrl.__hash__()`` method returns a hash of the string representation so that two objects with the same URL will have the same hash. The default behaviour with Python v2 is to return the object's ``id()`` so that two objects with the same URL will have different hashes. QValidator ---------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QValidator.fixup(str input) -> str QValidator.validate(str input, int pos) -> QValidator.State, str, int QVariant -------- The ``QVariant`` class is implemented as a mapped type. Any Python object can be passed when a ``QVariant`` instance is expected. When Qt returns a ``QVariant`` then it will automatically be converted to the original Python object or an equivalent. ``None`` is interpreted as an invalid ``QVariant`` and vice versa. The ``QPyNullVariant`` class is used to represent a null ``QVariant``. QWebPage -------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QWebPage.javaScriptPrompt(QWebFrame originatingFrame, str msg, str defaultValue) -> bool, str QXmlStreamWriter ---------------- The following C++ call is not wrapped because it expects ``QString`` to be mutable:: QXmlStreamWriter(QString *string) PyQt-x11-gpl-4.11.4/doc/html/_sources/qml.txt0000644000076500000240000001103212425374020020625 0ustar philstaff00000000000000Integrating Python and QML ========================== Qt v4.7 introduced QML as a means of declaratively describing a user interface and using JavaScript as a scripting language within QML. It is possible to write complete standalone QML applications, or to combine them with C++. PyQt4 supports the integration of Python and QML as far as it can - given the limitations of the QML implementation. There are three types of QML application: - *Pure* applications that are written entirely in QML and can be run using the :program:`qmlviewer` tool provided with Qt. PyQt4 fully supports this type of application. The examples provided by :program:`qtdemo.py` under the *Qt Declarative Examples* heading are all of this type. - QML allows ``QObject`` instances to be used in QML applications. QML code is able to call an object's slots and has read and write access to the object's properties. QML code can also respond to changes to the value of a property. PyQt4 fully supports the use objects created in Python in this way. The :program:`minehunt.py` example under the *Demonstrations* heading of :program:`qtdemo.py` is an example of this type of application. - QML also allows ``QObject`` sub-classes to be used in QML applications so that new instances are created from QML. PyQt4 does not support this. The reason is that QML uses information generated at compile time (specifically it uses ``QObject::staticMetaObject``) rather than information created dynamically at run time (i.e. ``QObject::metaObject()``). This approach is fine for a static language like C++ but causes problems for languages such as Python that allow types to created dynamically. This limitation doesn't place any restriction on the functionality of a Python/QML application, it only places restrictions on how that application is written. QML can implement JavaScript functions and define signals. PyQt4 allows both of these to be accessed transparently from Python. The following is a simple example application that displays the current date and time when the user clicks on it. The following is the QML (in the :file:`message.qml`) that defines the user interface:: import Qt 4.7 Rectangle { signal messageRequired; function updateMessage(text) { messageText.text = text } anchors.fill: parent; color: "black" Text { id: messageText anchors.centerIn: parent; color: "white" } MouseArea { anchors.fill: parent onClicked: messageRequired() } } This defines a signal ``messageRequired`` which is emitted when the user clicks on the mouse area. It also implements a function ``updateMessage()`` which updates the message being displayed. The following is the Python code that implements the application logic:: import sys from PyQt4.QtCore import QDateTime, QObject, QUrl, pyqtSignal from PyQt4.QtGui import QApplication from PyQt4.QtDeclarative import QDeclarativeView # This class will emit the current date and time as a signal when # requested. class Now(QObject): now = pyqtSignal(str) def emit_now(self): formatted_date = QDateTime.currentDateTime().toString() self.now.emit(formatted_date) app = QApplication(sys.argv) now = Now() # Create the QML user interface. view = QDeclarativeView() view.setSource(QUrl('message.qml')) view.setResizeMode(QDeclarativeView.SizeRootObjectToView) # Get the root object of the user interface. It defines a # 'messageRequired' signal and JavaScript 'updateMessage' function. Both # can be accessed transparently from Python. rootObject = view.rootObject() # Provide the current date and time when requested by the user interface. rootObject.messageRequired.connect(now.emit_now) # Update the user interface with the current date and time. now.now.connect(rootObject.updateMessage) # Provide an initial message as a prompt. rootObject.updateMessage("Click to get the current date and time") # Display the user interface and allow the user to interact with it. view.setGeometry(100, 100, 400, 240) view.show() app.exec_() Hopefully the comments in the code are sufficient explanation. The important things to note are that the signal and JavaScript function appear as appropriate attributes of the root object ``QDeclarativeItem`` returned by the ``rootObject()`` method of ``QDeclarativeView`` and can be connected to and called respectively. PyQt-x11-gpl-4.11.4/doc/html/_sources/qt_properties.txt0000644000076500000240000000711712425374020022745 0ustar philstaff00000000000000Support for Qt Properties ========================= PyQt4 does not support the setting and getting of Qt properties as if they were normal instance attributes. This is because the name of a property often conflicts with the name of the property's getter method. However, PyQt4 does support the initial setting of properties using keyword arguments passed when an instance is created. For example:: act = QtGui.QAction("&Save", self, shortcut=QtGui.QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) The example also demonstrates the use of a keyword argument to connect a signal to a slot. PyQt4 also supports setting the values of properties (and connecting a signal to a slot) using the ``pyqtConfigure()`` method of ``QObject``. For example, the following gives the same results as above:: act = QtGui.QAction("&Save", self) act.pyqtConfigure(shortcut=QtGui.QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) Defining New Qt Properties -------------------------- A new Qt property may be defined using the :func:`~PyQt4.QtCore.pyqtProperty` function. It is used in the same way as the standard Python ``property()`` function. In fact, Qt properties defined in this way also behave as Python properties. .. function:: PyQt4.QtCore.pyqtProperty(type[, fget=None[, fset=None[, freset=None[, fdel=None[, doc=None[, designable=True[, scriptable=True[, stored=True[, user=False[, constant=False[, final=False[, notify=None]]]]]]]]]]]]) Create a property that behaves as both a Python property and a Qt property. :param type: the type of the property. It is either a Python type object or a string that is the name of a C++ type. :param fget: the optional callable used to get the value of the property. :param fset: the optional callable used to set the value of the property. :param freset: the optional callable used to reset the value of the property to its default value. It is ignored by Python :param fdel: the optional callable used to delete the property. It is ignored by Qt. :param doc: the optional docstring of the property. It is ignored by Qt. :param designable: optionally sets the Qt ``DESIGNABLE`` flag. It is ignored by Python :param scriptable: optionally sets the Qt ``SCRIPTABLE`` flag. It is ignored by Python :param stored: optionally sets the Qt ``STORED`` flag. It is ignored by Python :param user: optionally sets the Qt ``USER`` flag. It is ignored by Python :param constant: optionally sets the Qt ``CONSTANT`` flag. It is ignored by Python :param final: optionally sets the Qt ``FINAL`` flag. It is ignored by Python :param notify: the optional unbound notify signal. It is ignored by Python :rtype: the property object. It is also possible to use :func:`~PyQt4.QtCore.pyqtProperty` as a decorator in the same way as the standard Python ``property()`` function. The following example shows how to define an ``int`` property with a getter and setter:: from PyQt4.QtCore import QObject, pyqtProperty class Foo(QObject): def __init__(self): QObject.__init__(self) self._total = 0 @pyqtProperty(int) def total(self): return self._total @total.setter def total(self, value): self._total = value If you prefer the Qt terminology you may also use ``write`` instead of ``setter`` (and ``read`` instead of ``getter``). PyQt-x11-gpl-4.11.4/doc/html/_sources/qt_v5.txt0000644000076500000240000000210712527653724021113 0ustar philstaff00000000000000PyQt4 and Qt v5 =============== Building Against Qt v5 ---------------------- PyQt4 can be built against Qt v5 in exactly the same way that it is built against Qt v4. However only a Qt v4 compatible subset of Qt v5 is supported, specifically: - any classes added in Qt v5 *are not* supported - any new features added in Qt v5 to classes that exist in Qt v4 *are* supported - any features that are marked as deprecated in Qt v5 *are* supported. Qt v5 handles connections to signals with optional arguments in a slightly different way than Qt v4. PyQt4 works around this as best it can but cannot do so in the case where signals that have optional arguments in Qt v5 (but not in Qt v4) are emitted using old-style signals (i.e. using :meth:`QObject.emit`). Instead you should use new-style signals (i.e. use the :meth:`emit` method of the bound signal). The :option:`--no-deprecated ` option to PyQt4's :program:`configure.py` can be used to disable the support for the deprecated features. This can be useful in the porting of PyQt4 applications to PyQt5. PyQt-x11-gpl-4.11.4/doc/html/_sources/resources.txt0000644000076500000240000000300112425374020022043 0ustar philstaff00000000000000The PyQt4 Resource System ========================= PyQt4 supports Qt's resource system. This is a facility for embedding resources such as icons and translation files in an application. This makes the packaging and distribution of those resources much easier. A ``.qrc`` resource collection file is an XML file used to specify which resource files are to be embedded. The application then refers to the resource files by their original names but preceded by a colon. For a full description, including the format of the ``.qrc`` files, see the Qt Resource System in the Qt documentation. :program:`pyrcc4` ----------------- :program:`pyrcc4` is PyQt4's equivalent to Qt's :program:`rcc` utility and is used in exactly the same way. :program:`pyrcc4` reads the ``.qrc`` file, and the resource files, and generates a Python module that only needs to be ``import`` ed by the application in order for those resources to be made available just as if they were the original files. In addition to the command line options that are common with :program:`rcc`, the following are also supported: .. program:: pyrcc4 .. cmdoption:: -py2 Generate code that will work for all versions of Python v2.x. Although this is the default, the option should be specified explicitly in case the default is changed in a future version. .. cmdoption:: -py3 Generate code that will work for all versions of Python starting with Python v2.6. :program:`pyrcc4` will only be included if your copy of Qt includes the XML module. PyQt-x11-gpl-4.11.4/doc/html/_sources/webkit.txt0000644000076500000240000000067212425374020021331 0ustar philstaff00000000000000Integrating Python and JavaScript in QtWebKit ============================================= QtWebKit uses slots to expose class methods implemented in C++ as JavaScript methods that can be called from scripts embedded in HTML. Python class methods that have been decorated behave in exactly the same way. In the same way, properties created using :func:`~PyQt4.QtCore.pyqtProperty` are also automatically exposed as JavaScript properties. PyQt-x11-gpl-4.11.4/doc/html/assistant-manual.html0000644000076500000240000001212012536324525021632 0ustar philstaff00000000000000 Qt Assistant Manual
  Home · All Classes · Modules

Qt Assistant Manual

This document introduces Qt Assistant, a tool for presenting on-line documentation. The document is divided into the following sections:

Table of contents:

The One-Minute Guide to Using Qt Assistant

Once you have installed Qt, Qt Assistant should be ready to run:

  • On Windows, Qt Assistant is available as a menu option on the Qt menu.
  • On Mac OS X, Qt Assistant is installed in the /Developer/Applications/Qt directory.
  • On Unix/Linux, open a terminal, type assistant and press Enter.

When you start up Qt Assistant, you will be presented with a standard main window application, with a menu bar and toolbar. Below these, on the left hand side are navigation windows called Contents, Index and Bookmarks. On the right, taking up most of the space, is the Documentation window. By default, Qt Assistant loads the Qt reference documentation along with the manuals of other Qt tools, like Qt Designer or Qt Linguist.

Qt Assistant works in a similar way to a Web browser. If you click hyperlinks (cross-references), the Documentation window will present the relevant page. You can bookmark pages of particular interest and you can click the Previous and Next toolbar buttons to navigate within the pages you have visited.

Although Qt Assistant can be used just like a Web browser to navigate through the documentation, Qt Assistant offers a powerful means of navigation that Web browsers do not provide. Qt Assistant uses an advanced full text search engine to index all the pages in each compressed help file so that you can search for particular words and phrases.

To perform an index search, click the Index tab on the Sidebar (or press Alt+I). In the 'Look For' line edit enter a word; e.g., 'homedirpath'. As you type, words are found and highlighted in a list beneath the line edit. If the highlighted text matches what you're looking for, double click it, (or press Enter) and the Documentation window will display the relevant page. You rarely have to type in the whole word before Qt Assistant finds a match. Note that for some words there may be more than one possible page that is relevant.

Qt Assistant also provides full text searching for finding specific words in the documentation. To activate the full text search, either press (Alt+S) or click on the Search tab in the Documentation window. Then enter the term you're looking for and hit the Search button. All documents containing the specified term will then be listed in the list box below.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/buffer_interface.html0000644000076500000240000001172112536324430021640 0ustar philstaff00000000000000 Support for Python’s Buffer Interface — PyQt 4.11.4 Reference Guide

Support for Python’s Buffer Interface¶

If SIP v4.7.5 or later is used then any Python object that supports the buffer interface can be used whenever a char or char * is expected. If the buffer has multiple segments then all but the first will be ignored.

PyQt-x11-gpl-4.11.4/doc/html/build_system.html0000644000076500000240000006454112536324430021062 0ustar philstaff00000000000000 The PyQt4 Build System — PyQt 4.11.4 Reference Guide

The PyQt4 Build System¶

New in version 4.10.

SIP v5 will not include an extensible build system, i.e it will not provide an equivalent of SIP v4’s sipconfig module. Consequently a version of PyQt built with SIP v5 will not provide an equivalent of the pyqtconfig module. However there is still a need for certain information to be shared between PyQt and other modules (such as QScintilla’s Qsci module) that are built on top of it. Specifically it is important that the same -t and -x command line flags are passed to the sip executable to create, for example, the QScintilla bindings as were passed to create the PyQt bindings.

Starting with v4.10, PyQt4.QtCore.PYQT_CONFIGURATION is a dict that describes how PyQt was configured. At the moment it contains a single value called sip_flags which is a string containing the appropriate -t and -x flags.

The Old Build System¶

Deprecated since version 4.10.

The old PyQt4 build system is an extension of the SIP v4 build system and is implemented by the pyqtconfig module. It can be used by configuration scripts of other bindings that build on top of PyQt4 and takes care of the details of the Qt installation.

Note that the pyqtconfig module is only created if you use configure.py and not if you use configure-ng.py.

class PyQt4.pyqtconfig.Configuration(sub_cfg=None)¶

This class encapsulates configuration values that can be accessed as instance objects. It is derived from sipconfig.Configuration.

Parameters:sub_cfg – an optional list of sub-class configurations. It should only be used by the __init__() method of a sub-class to append its own dictionary of configuration values before passing the list to its super-class.
pyqt_bin_dir¶

The name of the directory where the PyQt4 utilities are installed.

pyqt_config_args¶

The command line passed to configure.py when PyQt4 was configured.

pyqt_mod_dir¶

The name of the directory where the PyQt4 Python package is installed.

pyqt_modules¶

A space separated string of installed PyQt4 modules. The Qt module is not included.

pyqt_sip_dir¶

The name of the base directory where PyQt4’s .sip files are installed. Each module’s .sip files are installed in a sub-directory with the same name as the module.

pyqt_sip_flags¶

A space separated string of the sip command line options used to build the PyQt4 modules. These should also be used when building bindings that %Import any PyQt4 modules.

pyqt_version¶

The PyQt4 version as a 3 part hexadecimal number (e.g. v4.0.1 is represented as 0x040001).

pyqt_version_str¶

The PyQt4 version as a string. For development previews it will start with preview- or snapshot-.

qt_data_dir¶

The value of QLibraryInfo::location(DataPath) for the Qt installation.

qt_archdata_dir¶

When building against Qt v5 this is the value of QLibraryInfo::location(ArchDataPath). When building against Qt v4 it is the value of QLibraryInfo::location(DataPath).

qt_dir¶

The root directory of the Qt installation (normally the directory that contains the bin directory).

qt_edition¶

The Qt edition.

qt_framework¶

Set if Qt is built as a MacOS/X framework.

qt_inc_dir¶

The value of QLibraryInfo::location(HeadersPath) for the Qt installation.

qt_lib_dir¶

The value of QLibraryInfo::location(LibrariesPath) for the Qt installation.

qt_threaded¶

Set if Qt is built with thread support (always set for PyQt4).

qt_version¶

The Qt version as a 3 part hexadecimal number (e.g. v4.1.2 is represented as 0x040102).

qt_winconfig¶

Additional Windows specific configuration.

class PyQt4.pyqtconfig.QtAssistantModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtAssistant module.

class PyQt4.pyqtconfig.QAxContainerModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QAxContainer module.

class PyQt4.pyqtconfig.QtCoreModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtCore module.

class PyQt4.pyqtconfig.QtDBusModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtDBus module.

class PyQt4.pyqtconfig.QtDeclarativeModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtDeclarative module.

class PyQt4.pyqtconfig.QtDesignerModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtDesigner module.

class PyQt4.pyqtconfig.QtGuiModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtGui module.

class PyQt4.pyqtconfig.QtHelpModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtHelp module.

class PyQt4.pyqtconfig.QtMultimediaModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtMultimedia module.

class PyQt4.pyqtconfig.QtNetworkModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtNetwork module.

class PyQt4.pyqtconfig.QtOpenGLModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtOpenGL module.

class PyQt4.pyqtconfig.QtScriptModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtScript module.

class PyQt4.pyqtconfig.QtScriptToolsModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtScriptTools module.

class PyQt4.pyqtconfig.QtSqlModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtSql module.

class PyQt4.pyqtconfig.QtSvgModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtSvg module.

class PyQt4.pyqtconfig.QtTestModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtTest module.

class PyQt4.pyqtconfig.QtWebKitModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtWebKit module.

class PyQt4.pyqtconfig.QtXmlModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtXml module.

class PyQt4.pyqtconfig.QtXmlPatternsModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 QtXmlPatterns module.

class PyQt4.pyqtconfig.phononModuleMakefile¶

This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 phonon module.

PyQt-x11-gpl-4.11.4/doc/html/classes.html0000644000076500000240000016257112536324470020022 0ustar philstaff00000000000000 PyQt Class Reference
  Home · All Classes · Modules

PyQt Class Reference

Portions of this documentation have been adapted from the documentation provided with Qt 4.8.7. This document is not an official document from The Qt Company, but is provided with The Qt Company's permission.

Because this is based on the Qt C++ documentation it still contains C++ code fragments, broken links etc. These will be fixed in future releases.

QAbstractAnimationQFontQNetworkConfigurationQStyleOptionSlider
QAbstractButtonQFontComboBoxQNetworkConfigurationManagerQStyleOptionSpinBox
QAbstractEventDispatcherQFontDatabaseQNetworkCookieQStyleOptionTab
QAbstractExtensionFactoryQFontDialogQNetworkCookieJarQStyleOptionTabBarBase
QAbstractExtensionManagerQFontInfoQNetworkDiskCacheQStyleOptionTabBarBaseV2
QAbstractFileEngineQFontMetricsQNetworkInterfaceQStyleOptionTabV2
QAbstractFileEngineHandlerQFontMetricsFQNetworkProxyQStyleOptionTabV3
QAbstractFileEngineIteratorQFormBuilderQNetworkProxyFactoryQStyleOptionTabWidgetFrame
QAbstractFormBuilderQFormLayoutQNetworkProxyQueryQStyleOptionTabWidgetFrameV2
QAbstractGraphicsShapeItemQFrameQNetworkReplyQStyleOptionTitleBar
QAbstractItemDelegateQFSFileEngineQNetworkRequestQStyleOptionToolBar
QAbstractItemModelQFtpQNetworkSessionQStyleOptionToolBox
QAbstractItemViewQGenericArgumentQObjectQStyleOptionToolBoxV2
QAbstractListModelQGenericReturnArgumentQObjectCleanupHandlerQStyleOptionToolButton
QAbstractMessageHandlerQGestureQPageSetupDialogQStyleOptionViewItem
QAbstractNetworkCacheQGestureEventQPaintDeviceQStyleOptionViewItemV2
QAbstractPrintDialogQGestureRecognizerQPaintEngineQStyleOptionViewItemV3
QAbstractProxyModelQGLQPaintEngineStateQStyleOptionViewItemV4
QAbstractScrollAreaQGLBufferQPainterQStylePainter
QAbstractSliderQGLColormapQPainterPathQSvgGenerator
QAbstractSocketQGLContextQPainterPathStrokerQSvgRenderer
QAbstractSpinBoxQGLFormatQPaintEventQSvgWidget
QAbstractStateQGLFramebufferObjectQPaletteQSwipeGesture
QAbstractTableModelQGLFramebufferObjectFormatQPanGestureQSyntaxHighlighter
QAbstractTextDocumentLayoutQGLPixelBufferQParallelAnimationGroupQSysInfo
QAbstractTransitionQGLShaderQPauseAnimationQSystemLocale
QAbstractUriResolverQGLShaderProgramQPenQSystemSemaphore
QAbstractVideoBufferQGLWidgetQPersistentModelIndexQSystemTrayIcon
QAbstractVideoSurfaceQGlyphRunPhononQt
QAbstractXmlNodeModelQGradientQPictureQTabBar
QAbstractXmlReceiverQGraphicsAnchorQPictureIOQTabletEvent
QActionQGraphicsAnchorLayoutQPinchGestureQTableView
QActionEventQGraphicsBlurEffectQPixmapQTableWidget
QActionGroupQGraphicsColorizeEffectQPixmapCacheQTableWidgetItem
QAnimationGroupQGraphicsDropShadowEffectQPlainTextDocumentLayoutQTableWidgetSelectionRange
QApplicationQGraphicsEffectQPlainTextEditQTabWidget
QAssistantClientQGraphicsEllipseItemQPluginLoaderQTapAndHoldGesture
QAudioQGraphicsGridLayoutQPointQTapGesture
QAudioDeviceInfoQGraphicsItemQPointFQTcpServer
QAudioFormatQGraphicsItemAnimationQPolygonQTcpSocket
QAudioInputQGraphicsItemGroupQPolygonFQTemporaryFile
QAudioOutputQGraphicsLayoutQPrintDialogQTest
QAuthenticatorQGraphicsLayoutItemQPrintEngineQTextBlock
QBasicTimerQGraphicsLinearLayoutQPrinterQTextBlockFormat
QBitArrayQGraphicsLineItemQPrinterInfoQTextBlockGroup
QBitmapQGraphicsObjectQPrintPreviewDialogQTextBlockUserData
QBoxLayoutQGraphicsOpacityEffectQPrintPreviewWidgetQTextBoundaryFinder
QBrushQGraphicsPathItemQProcessQTextBrowser
QBufferQGraphicsPixmapItemQProcessEnvironmentQTextCharFormat
QButtonGroupQGraphicsPolygonItemQProgressBarQTextCodec
QByteArrayQGraphicsProxyWidgetQProgressDialogQTextCursor
QByteArrayMatcherQGraphicsRectItemQPropertyAnimationQTextDecoder
QCalendarWidgetQGraphicsRotationQProxyModelQTextDocument
QCharQGraphicsScaleQPushButtonQTextDocumentFragment
QCheckBoxQGraphicsSceneQPyDeclarativePropertyValueSourceQTextDocumentWriter
QChildEventQGraphicsSceneContextMenuEventQPyDesignerContainerExtensionQTextEdit
QClipboardQGraphicsSceneDragDropEventQPyDesignerCustomWidgetCollectionPluginQTextEncoder
QCloseEventQGraphicsSceneEventQPyDesignerCustomWidgetPluginQTextFormat
QColorQGraphicsSceneHelpEventQPyDesignerMemberSheetExtensionQTextFragment
QColorDialogQGraphicsSceneHoverEventQPyDesignerPropertySheetExtensionQTextFrame
QColumnViewQGraphicsSceneMouseEventQPyDesignerTaskMenuExtensionQTextFrameFormat
QComboBoxQGraphicsSceneMoveEventQPyNullVariantQTextImageFormat
QCommandLinkButtonQGraphicsSceneResizeEventQPyTextObjectQTextInlineObject
QCommonStyleQGraphicsSceneWheelEventQQuaternionQTextItem
QCompleterQGraphicsSimpleTextItemQRadialGradientQTextLayout
QConicalGradientQGraphicsSvgItemQRadioButtonQTextLength
QContextMenuEventQGraphicsTextItemQRawFontQTextLine
QCoreApplicationQGraphicsTransformQReadLockerQTextList
QCryptographicHashQGraphicsViewQReadWriteLockQTextListFormat
QCursorQGraphicsWebViewQRectQTextObject
QDataStreamQGraphicsWidgetQRectFQTextObjectInterface
QDataWidgetMapperQGridLayoutQRegExpQTextOption
QDateQGroupBoxQRegExpValidatorQTextStream
QDateEditQHBoxLayoutQRegionQTextTable
QDateTimeQHeaderViewQResizeEventQTextTableCell
QDateTimeEditQHelpContentItemQResourceQTextTableCellFormat
QDBusQHelpContentModelQRubberBandQTextTableFormat
QDBusAbstractAdaptorQHelpContentWidgetQRunnableQThread
QDBusAbstractInterfaceQHelpEngineQScriptClassQThreadPool
QDBusArgumentQHelpEngineCoreQScriptClassPropertyIteratorQTime
QDBusConnectionQHelpEventQScriptContextQTimeEdit
QDBusConnectionInterfaceQHelpIndexModelQScriptContextInfoQTimeLine
QDBusErrorQHelpIndexWidgetQScriptEngineQTimer
QDBusInterfaceQHelpSearchEngineQScriptEngineAgentQTimerEvent
QDBusMessageQHelpSearchQueryQScriptEngineDebuggerQToolBar
QDBusObjectPathQHelpSearchQueryWidgetQScriptStringQToolBox
QDBusPendingCallQHelpSearchResultWidgetQScriptSyntaxCheckResultQToolButton
QDBusPendingCallWatcherQHideEventQScriptValueQToolTip
QDBusPendingReplyQHistoryStateQScriptValueIteratorQTouchEvent
QDBusReplyQHostAddressQScrollAreaQTransform
QDBusServiceWatcherQHostInfoQScrollBarQTranslator
QDBusSignatureQHoverEventQSemaphoreQTreeView
QDBusUnixFileDescriptorQHttpQSequentialAnimationGroupQTreeWidget
QDBusVariantQHttpHeaderQSessionManagerQTreeWidgetItem
QDeclarativeComponentQHttpMultiPartQSettingsQTreeWidgetItemIterator
QDeclarativeContextQHttpPartQSharedMemoryQUdpSocket
QDeclarativeEngineQHttpRequestHeaderQShortcutQUndoCommand
QDeclarativeErrorQHttpResponseHeaderQShortcutEventQUndoGroup
QDeclarativeExpressionQIconQShowEventQUndoStack
QDeclarativeExtensionPluginQIconDragEventQSignalMapperQUndoView
QDeclarativeImageProviderQIconEngineQSignalTransitionQUrl
QDeclarativeItemQIconEngineV2QSimpleXmlNodeModelQUrlInfo
QDeclarativeListReferenceQIdentityProxyModelQSizeQUuid
QDeclarativeNetworkAccessManagerFactoryQImageQSizeFQValidator
QDeclarativeParserStatusQImageIOHandlerQSizeGripQVariant
QDeclarativePropertyQImageReaderQSizePolicyQVariantAnimation
QDeclarativePropertyMapQImageWriterQSliderQVBoxLayout
QDeclarativePropertyValueSourceQInputContextQSocketNotifierQVector2D
QDeclarativeScriptStringQInputContextFactoryQSortFilterProxyModelQVector3D
QDeclarativeViewQInputDialogQSoundQVector4D
QDesignerActionEditorInterfaceQInputEventQSourceLocationQVideoFrame
QDesignerContainerExtensionQInputMethodEventQSpacerItemQVideoSurfaceFormat
QDesignerCustomWidgetCollectionInterfaceQIntValidatorQSpinBoxQWaitCondition
QDesignerCustomWidgetInterfaceQIODeviceQSplashScreenQWebDatabase
QDesignerFormEditorInterfaceQItemDelegateQSplitterQWebElement
QDesignerFormWindowCursorInterfaceQItemEditorCreatorBaseQSplitterHandleQWebElementCollection
QDesignerFormWindowInterfaceQItemEditorFactoryQSqlQWebFrame
QDesignerFormWindowManagerInterfaceQItemSelectionQSqlDatabaseQWebHistory
QDesignerMemberSheetExtensionQItemSelectionModelQSqlDriverQWebHistoryInterface
QDesignerObjectInspectorInterfaceQItemSelectionRangeQSqlDriverCreatorBaseQWebHistoryItem
QDesignerPropertyEditorInterfaceQKeyEventQSqlErrorQWebHitTestResult
QDesignerPropertySheetExtensionQKeyEventTransitionQSqlFieldQWebInspector
QDesignerTaskMenuExtensionQKeySequenceQSqlIndexQWebPage
QDesignerWidgetBoxInterfaceQLabelQSqlQueryQWebPluginFactory
QDesktopServicesQLatin1CharQSqlQueryModelQWebSecurityOrigin
QDesktopWidgetQLatin1StringQSqlRecordQWebSettings
QDialQLayoutQSqlRelationQWebView
QDialogQLayoutItemQSqlRelationalDelegateQWhatsThis
QDialogButtonBoxQLCDNumberQSqlRelationalTableModelQWhatsThisClickedEvent
QDirQLibraryQSqlResultQWheelEvent
QDirIteratorQLibraryInfoQSqlTableModelQWidget
QDirModelQLineQSslQWidgetAction
QDockWidgetQLinearGradientQSslCertificateQWidgetItem
QDomAttrQLineEditQSslCipherQWindowStateChangeEvent
QDomCDATASectionQLineFQSslConfigurationQWizard
QDomCharacterDataQListViewQSslErrorQWizardPage
QDomCommentQListWidgetQSslKeyQWorkspace
QDomDocumentQListWidgetItemQSslSocketQWriteLocker
QDomDocumentFragmentQLocaleQStackedLayoutQX11EmbedContainer
QDomDocumentTypeQLocalServerQStackedWidgetQX11EmbedWidget
QDomElementQLocalSocketQStandardItemQX11Info
QDomEntityQMainWindowQStandardItemModelQXmlAttributes
QDomEntityReferenceQMarginsQStateQXmlContentHandler
QDomImplementationQMatrixQStateMachineQXmlDeclHandler
QDomNamedNodeMapQMatrix2x2QStaticTextQXmlDefaultHandler
QDomNodeQMatrix2x3QStatusBarQXmlDTDHandler
QDomNodeListQMatrix2x4QStatusTipEventQXmlEntityResolver
QDomNotationQMatrix3x2QStringQXmlErrorHandler
QDomProcessingInstructionQMatrix3x3QStringListQXmlFormatter
QDomTextQMatrix3x4QStringListModelQXmlInputSource
QDoubleSpinBoxQMatrix4x2QStringMatcherQXmlItem
QDoubleValidatorQMatrix4x3QStringRefQXmlLexicalHandler
QDragQMatrix4x4QStyleQXmlLocator
QDragEnterEventQMdiAreaQStyledItemDelegateQXmlName
QDragLeaveEventQMdiSubWindowQStyleFactoryQXmlNamePool
QDragMoveEventQMenuQStyleHintReturnQXmlNamespaceSupport
QDropEventQMenuBarQStyleHintReturnMaskQXmlNodeModelIndex
QDynamicPropertyChangeEventQMessageBoxQStyleHintReturnVariantQXmlParseException
QEasingCurveQMetaClassInfoQStyleOptionQXmlQuery
QElapsedTimerQMetaEnumQStyleOptionButtonQXmlReader
QErrorMessageQMetaMethodQStyleOptionComboBoxQXmlResultItems
QEventQMetaObjectQStyleOptionComplexQXmlSchema
QEventLoopQMetaPropertyQStyleOptionDockWidgetQXmlSchemaValidator
QEventTransitionQMetaTypeQStyleOptionDockWidgetV2QXmlSerializer
QExtensionFactoryQMimeDataQStyleOptionFocusRectQXmlSimpleReader
QExtensionManagerQMimeSourceQStyleOptionFrameQXmlStreamAttribute
QFileQModelIndexQStyleOptionFrameV2QXmlStreamAttributes
QFileDialogQMouseEventQStyleOptionFrameV3QXmlStreamEntityDeclaration
QFileIconProviderQMouseEventTransitionQStyleOptionGraphicsItemQXmlStreamEntityResolver
QFileInfoQMoveEventQStyleOptionGroupBoxQXmlStreamNamespaceDeclaration
QFileOpenEventQMovieQStyleOptionHeaderQXmlStreamNotationDeclaration
QFileSystemModelQMutexQStyleOptionMenuItemQXmlStreamReader
QFileSystemWatcherQMutexLockerQStyleOptionProgressBarQXmlStreamWriter
QFinalStateQNetworkAccessManagerQStyleOptionProgressBarV2
QFocusEventQNetworkAddressEntryQStyleOptionRubberBand
QFocusFrameQNetworkCacheMetaDataQStyleOptionSizeGrip

PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/dbus.html0000644000076500000240000002630312536324430017306 0ustar philstaff00000000000000 DBus Support — PyQt 4.11.4 Reference Guide

DBus Support¶

PyQt4 provides two different modules that implement support for DBus. The QtDBus module provides wrappers for the standard Qt DBus classes. The dbus.mainloop.qt module add support for the Qt event loop to the standard dbus-python Python module.

QtDBus¶

The QtDBus module is used in a similar way to the C++ library it wraps. The main difference is in the way it supports the demarshalling of DBus structures. C++ relies on the template-based registration of types using qDBusRegisterMetaType() which isn’t possible from Python. Instead a slot that accepts a DBus structure in an argument should specify a slot with a single QDBusMessage argument. The implementation of the slot should then extract the arguments from the message using its arguments() method.

For example, say we have a DBus method called setColors() that has a single argument that is an array of structures of three integers (red, green and blue). The DBus signature of the argument would then be a(iii). In C++ you would typically define a class to hold the red, green and blue values and so your code would include the following (incomplete) fragments:

struct Color
{
    int red;
    int green;
    int blue;
};
Q_DECLARE_METATYPE(Color)

qDBusRegisterMetaType<Color>();

class ServerAdaptor : public QDBusAbstractAdaptor
{
    Q_OBJECT

public slots:
    void setColors(QList<const Color &> colors);
};

The Python version is, of course, much simpler:

class ServerAdaptor(QDBusAbstractAdaptor):

    @pyqtSlot(QDBusMessage)
    def setColors(self, message):
        # Get the single argument.
        colors = message.arguments()[0]

        # The argument will be a list of 3-tuples of ints.
        for red, green, blue in colors:
            print("RGB:", red, green, blue)

Note that this technique can be used for arguments of any type, it is only require if DBus structures are involved.

dbus.mainloop.qt¶

The dbus.mainloop.qt module provides support for the Qt event loop to dbus-python. The module’s API is almost identical to that of the dbus.mainloop.glib modules that provides support for the GLib event loop.

The dbus.mainloop.qt module contains the following function.

DBusQtMainLoop(set_as_default=False)¶

Create a dbus.mainloop.NativeMainLoop object that uses the the Qt event loop.

Parameters:set_as_default – is optionally set to make the main loop instance the default for all new Connection and Bus instances. It may only be specified as a keyword argument, and not as a positional argument.

The following code fragment is all that is normally needed to set up the standard dbus-python language bindings package to be used with PyQt4:

from dbus.mainloop.qt import DBusQtMainLoop

DBusQtMainLoop(set_as_default=True)
PyQt-x11-gpl-4.11.4/doc/html/deploy_commercial.html0000644000076500000240000001317512536324430022043 0ustar philstaff00000000000000 Deploying Commercial PyQt4 Applications — PyQt 4.11.4 Reference Guide

Deploying Commercial PyQt4 Applications¶

Deploying commercial PyQt4 applications can be a complicated process for a number of reasons:

  • It is usually better not to rely on pre-requisite packages being already installed on the user’s system. This means that as well as your application code, you also need to include the Python interpreter, the standard library, third-pary packages and extension modules, and Qt itself.
  • Some target platforms (iOS for example) have restrictions on how an application is built in order for it to be included in app stores.
  • It is necessary to discourage users from accessing the underlying PyQt4 modules for themselves. A user that used the modules shipped with your application to develop new applications would themselves be considered a developer and would need their own commercial PyQt4 license.

The recommended solution to all of these issues is to use pyqtdeploy.

PyQt-x11-gpl-4.11.4/doc/html/designer.html0000644000076500000240000012203612536324430020151 0ustar philstaff00000000000000 Using Qt Designer — PyQt 4.11.4 Reference Guide

Using Qt Designer¶

Qt Designer is the Qt tool for designing and building graphical user interfaces. It allows you to design widgets, dialogs or complete main windows using on-screen forms and a simple drag-and-drop interface. It has the ability to preview your designs to ensure they work as you intended, and to allow you to prototype them with your users, before you have to write any code.

Qt Designer uses XML .ui files to store designs and does not generate any code itself. Qt includes the uic utility that generates the C++ code that creates the user interface. Qt also includes the QUiLoader class that allows an application to load a .ui file and to create the corresponding user interface dynamically.

PyQt4 does not wrap the QUiLoader class but instead includes the uic Python module. Like QUiLoader this module can load .ui files to create a user interface dynamically. Like the uic utility it can also generate the Python code that will create the user interface. PyQt4’s pyuic4 utility is a command line interface to the uic module. Both are described in detail in the following sections.

Using the Generated Code¶

The code that is generated has an identical structure to that generated by Qt’s uic and can be used in the same way.

The code is structured as a single class that is derived from the Python object type. The name of the class is the name of the toplevel object set in Designer with Ui_ prepended. (In the C++ version the class is defined in the Ui namespace.) We refer to this class as the form class.

The class contains a method called setupUi(). This takes a single argument which is the widget in which the user interface is created. The type of this argument (typically QDialog, QWidget or QMainWindow) is set in Designer. We refer to this type as the Qt base class.

In the following examples we assume that a .ui file has been created containing a dialog and the name of the QDialog object is ImageDialog. We also assume that the name of the file containing the generated Python code is ui_imagedialog.py. The generated code can then be used in a number of ways.

The first example shows the direct approach where we simply create a simple application to create the dialog:

import sys
from PyQt4.QtGui import QApplication, QDialog
from ui_imagedialog import Ui_ImageDialog

app = QApplication(sys.argv)
window = QDialog()
ui = Ui_ImageDialog()
ui.setupUi(window)

window.show()
sys.exit(app.exec_())

The second example shows the single inheritance approach where we sub-class QDialog and set up the user interface in the __init__() method:

from PyQt4.QtGui import QDialog
from ui_imagedialog import Ui_ImageDialog

class ImageDialog(QDialog):
    def __init__(self):
        QDialog.__init__(self)

        # Set up the user interface from Designer.
        self.ui = Ui_ImageDialog()
        self.ui.setupUi(self)

        # Make some local modifications.
        self.ui.colorDepthCombo.addItem("2 colors (1 bit per pixel)")

        # Connect up the buttons.
        self.ui.okButton.clicked.connect(self.accept)
        self.ui.cancelButton.clicked.connect(self.reject)

The third example shows the multiple inheritance approach:

from PyQt4.QtGui import QDialog
from ui_imagedialog import Ui_ImageDialog

class ImageDialog(QDialog, Ui_ImageDialog):
    def __init__(self):
        QDialog.__init__(self)

        # Set up the user interface from Designer.
        self.setupUi(self)

        # Make some local modifications.
        self.colorDepthCombo.addItem("2 colors (1 bit per pixel)")

        # Connect up the buttons.
        self.okButton.clicked.connect(self.accept)
        self.cancelButton.clicked.connect(self.reject)

It is also possible to use the same approach used in PyQt v3. This is shown in the final example:

from ui_imagedialog import ImageDialog

class MyImageDialog(ImageDialog):
    def __init__(self):
        ImageDialog.__init__(self)

        # Make some local modifications.
        self.colorDepthCombo.addItem("2 colors (1 bit per pixel)")

        # Connect up the buttons.
        self.okButton.clicked.connect(self.accept)
        self.cancelButton.clicked.connect(self.reject)

For a full description see the Qt Designer Manual in the Qt Documentation.

The uic Module¶

The uic module contains the following functions and objects.

PyQt4.uic.widgetPluginPath¶

The list of the directories that are searched for widget plugins. Initially it contains the name of the directory that contains the widget plugins included with PyQt4.

PyQt4.uic.compileUi(uifile, pyfile[, execute=False[, indent=4[, pyqt3_wrapper=False[, from_imports=False[, resource_suffix='_rc']]]]])¶

Generate a Python module that will create a user interface from a Qt Designer .ui file.

Parameters:
  • uifile – the file name or file-like object containing the .ui file.
  • pyfile – the file-like object to which the generated Python code will be written to.
  • execute – is optionally set if a small amount of additional code is to be generated that will display the user interface if the code is run as a standalone application.
  • indent – the optional number of spaces used for indentation in the generated code. If it is zero then a tab character is used instead.
  • pyqt3_wrapper – is optionally set if a small wrapper is to be generated that allows the generated code to be used as it is by PyQt v3 applications.
  • from_imports – is optionally set to generate import statements that are relative to '.'. At the moment this only applies to the import of resource modules.
Resource_suffix:
 

is the suffix appended to the basename of any resource file specified in the .ui file to create the name of the Python module generated from the resource file by pyrcc4. The default is '_rc', i.e. if the .ui file specified a resource file called foo.qrc then the corresponding Python module is foo_rc.

PyQt4.uic.compileUiDir(dir[, recurse=False[, map=None[, **compileUi_args]]])¶

Create Python modules from Qt Designer .ui files in a directory or directory tree.

Parameters:
  • dir – the name of the directory to scan for files whose name ends with .ui. By default the generated Python module is created in the same directory ending with .py.
  • recurse – is optionally set if any sub-directories should be scanned.
  • map – an optional callable that is passed the name of the directory containing the .ui file and the name of the Python module that will be created. The callable should return a tuple of the name of the directory in which the Python module will be created and the (possibly modified) name of the module.
  • compileUi_args – are any additional keyword arguments that are passed to compileUi() that is called to create each Python module.
PyQt4.uic.loadUiType(uifile[, from_imports=False[, resource_suffix='_rc']])¶

Load a Qt Designer .ui file and return a tuple of the generated form class and the Qt base class. These can then be used to create any number of instances of the user interface without having to parse the .ui file more than once.

Parameters:
  • uifile – the file name or file-like object containing the .ui file.
  • from_imports – is optionally set to use import statements that are relative to '.'. At the moment this only applies to the import of resource modules.
Resource_suffix:
 

is the suffix appended to the basename of any resource file specified in the .ui file to create the name of the Python module generated from the resource file by pyrcc4. The default is '_rc', i.e. if the .ui file specified a resource file called foo.qrc then the corresponding Python module is foo_rc.

Return type:

the form class and the Qt base class.

PyQt4.uic.loadUi(uifile[, baseinstance=None[, package=''[, resource_suffix='_rc']]])¶

Load a Qt Designer .ui file and returns an instance of the user interface.

Parameters:
  • uifile – the file name or file-like object containing the .ui file.
  • baseinstance – the optional instance of the Qt base class. If specified then the user interface is created in it. Otherwise a new instance of the base class is automatically created.
  • package – the optional package that is the base package for any relative imports of custom widgets.
Resource_suffix:
 

is the suffix appended to the basename of any resource file specified in the .ui file to create the name of the Python module generated from the resource file by pyrcc4. The default is '_rc', i.e. if the .ui file specified a resource file called foo.qrc then the corresponding Python module is foo_rc.

Return type:

the QWidget sub-class that implements the user interface.

pyuic4¶

The pyuic4 utility is a command line interface to the uic module. The command has the following syntax:

pyuic4 [options] .ui-file

The full set of command line options is:

-h, --help¶

A help message is written to stdout.

--version¶

The version number is written to stdout.

-i <N>, --indent <N>¶

The Python code is generated using an indentation of <N> spaces. If <N> is 0 then a tab is used. The default is 4.

-o <FILE>, --output <FILE>¶

The Python code generated is written to the file <FILE>.

-p, --preview¶

The GUI is created dynamically and displayed. No Python code is generated.

-w, --pyqt3-wrapper¶

The generated Python code includes a small wrapper that allows the GUI to be used in the same way as it is used in PyQt v3.

-x, --execute¶

The generated Python code includes a small amount of additional code that creates and displays the GUI when it is executes as a standalone application.

--from-imports¶

Resource modules are imported using from . import rather than a simple import.

--resource-suffix <SUFFIX>¶

The suffix <SUFFIX> is appended to the basename of any resource file specified in the .ui file to create the name of the Python module generated from the resource file by pyrcc4. The default is _rc. For example if the .ui file specified a resource file called foo.qrc then the corresponding Python module is foo_rc.

Note that code generated by pyuic4 is not guaranteed to be compatible with earlier versions of PyQt4. However, it is guaranteed to be compatible with later versions. If you have no control over the version of PyQt4 the users of your application are using then you should run pyuic4, or call compileUi(), as part of your installation process. Another alternative would be to distribute the .ui files (perhaps as part of a resource file) and have your application load them dynamically.

Writing Qt Designer Plugins¶

Qt Designer can be extended by writing plugins. Normally this is done using C++ but PyQt4 also allows you to write plugins in Python. Most of the time a plugin is used to expose a custom widget to Designer so that it appears in Designer’s widget box just like any other widget. It is possibe to change the widget’s properties and to connect its signals and slots.

It is also possible to add new functionality to Designer. See the Qt documentation for the full details. Here we will concentrate on describing how to write custom widgets in Python.

The process of integrating Python custom widgets with Designer is very similar to that used with widget written using C++. However, there are particular issues that have to be addressed.

  • Designer needs to have a C++ plugin that conforms to the interface defined by the QDesignerCustomWidgetInterface class. (If the plugin exposes more than one custom widget then it must conform to the interface defined by the QDesignerCustomWidgetCollectionInterface class.) In addition the plugin class must sub-class QObject as well as the interface class. PyQt4 does not allow Python classes to be sub-classed from more than one Qt class.
  • Designer can only connect Qt signals and slots. It has no understanding of Python signals or callables.
  • Designer can only edit Qt properties that represent C++ types. It has no understanding of Python attributes or Python types.

PyQt4 provides the following components and features to resolve these issues as simply as possible.

  • PyQt4’s QtDesigner module includes additional classes (all of which have a QPy prefix) that are already sub-classed from the necessary Qt classes. This avoids the need to sub-class from more than one Qt class in Python. For example, where a C++ custom widget plugin would sub-class from QObject and QDesignerCustomWidgetInterface, a Python custom widget plugin would instead sub-class from QPyDesignerCustomWidgetPlugin.

  • PyQt4 installs a C++ plugin in Designer’s plugin directory. It conforms to the interface defined by the QDesignerCustomWidgetCollectionInterface class. It searches a configurable set of directories looking for Python plugins that implement a class sub-classed from QPyDesignerCustomWidgetPlugin. Each class that is found is instantiated and the instance created is added to the custom widget collection.

    The PYQTDESIGNERPATH environment variable specifies the set of directories to search for plugins. Directory names are separated by a path separator (a semi-colon on Windows and a colon on other platforms). If a directory name is empty (ie. there are consecutive path separators or a leading or trailing path separator) then a set of default directories is automatically inserted at that point. The default directories are the python subdirectory of each directory that Designer searches for its own plugins. If the environment variable is not set then only the default directories are searched. If a file’s basename does not end with plugin then it is ignored.

  • A Python custom widget may define new Qt signals using pyqtSignal().

  • A Python method may be defined as a new Qt slot by using the pyqtSlot() decorator.

  • A new Qt property may be defined using the pyqtProperty() function.

Note that the ability to define new Qt signals, slots and properties from Python is potentially useful to plugins conforming to any plugin interface and not just that used by Designer.

For a simple but complete and fully documented example of a custom widget that defines new Qt signals, slots and properties, and its plugin, look in the examples/designer/plugins directory of the PyQt4 source package. The widgets subdirectory contains the pydemo.py custom widget and the python subdirectory contains its pydemoplugin.py plugin.

PyQt-x11-gpl-4.11.4/doc/html/genindex.html0000644000076500000240000011065712536324430020160 0ustar philstaff00000000000000 Index — PyQt 4.11.4 Reference Guide

Index

Symbols | C | D | E | L | M | P | Q | W

Symbols

--assume-shared
configure-ng.py command line option
configure.py command line option
--bindir <DIR>, -b <DIR>
configure-ng.py command line option
configure.py command line option
--concatenate, -c
configure-ng.py command line option
configure.py command line option
--concatenate-split <N>, -j <N>
configure-ng.py command line option
configure.py command line option
--configuration <FILE>
configure-ng.py command line option
--confirm-license
configure-ng.py command line option
configure.py command line option
--consolidate, -g
configure.py command line option
--dbus <DIR>, -s <DIR>
configure-ng.py command line option
configure.py command line option
--debug, -u
configure-ng.py command line option
configure.py command line option
--designer-plugindir <DIR>
configure-ng.py command line option
--destdir <DIR>, -d <DIR>
configure-ng.py command line option
configure.py command line option
--enable <MODULE>, -e <MODULE>
configure-ng.py command line option
configure.py command line option
--from-imports
pyuic4 command line option
--help, -h
configure-ng.py command line option
configure.py command line option
--license-dir <DIR>
configure-ng.py command line option
--no-deprecated
configure-ng.py command line option
configure.py command line option
--no-designer-plugin
configure-ng.py command line option
configure.py command line option
--no-docstrings
configure-ng.py command line option
configure.py command line option
--no-python-dbus
configure-ng.py command line option
--no-qsci-api
configure-ng.py command line option
configure.py command line option
--no-sip-files
configure-ng.py command line option
configure.py command line option
--no-timestamp, -T
configure-ng.py command line option
configure.py command line option
--no-tools
configure-ng.py command line option
--plugin <PLUGIN>, -t <PLUGIN>
configure-ng.py command line option
configure.py command line option
--plugin-destdir <DIR>, -p <DIR>
configure.py command line option
--protected-is-public
configure-ng.py command line option
configure.py command line option
--protected-not-public
configure-ng.py command line option
configure.py command line option
--pyuic4-interpreter <FILE>
configure-ng.py command line option
--qmake <FILE>, -q <FILE>
configure-ng.py command line option
configure.py command line option
--qsci-api, -a
configure-ng.py command line option
configure.py command line option
--qsci-api-destdir <DIR>, -n <DIR>
configure-ng.py command line option
configure.py command line option
--resource-suffix <SUFFIX>
pyuic4 command line option
--sip <FILE>
configure-ng.py command line option
--sip-incdir <DIR>
configure-ng.py command line option
--sipdir <DIR>, -v <DIR>
configure-ng.py command line option
configure.py command line option
--spec <SPEC>
configure-ng.py command line option
--static, -k
configure-ng.py command line option
configure.py command line option
--sysroot <DIR>
configure-ng.py command line option
--target-py-version <VERSION>
configure-ng.py command line option
--trace, -r
configure-ng.py command line option
configure.py command line option
--use-arch <ARCH>
configure.py command line option
--verbose, -w
configure-ng.py command line option
configure.py command line option
--version
configure-ng.py command line option
configure.py command line option
pyuic4 command line option
-h, --help
pyuic4 command line option
-i <N>, --indent <N>
pyuic4 command line option
-o <FILE>, --output <FILE>
pyuic4 command line option
-p, --preview
pyuic4 command line option
-py2
pyrcc4 command line option
-py3
pyrcc4 command line option
-w, --pyqt3-wrapper
pyuic4 command line option
-x, --execute
pyuic4 command line option

C

compileUi() (in module PyQt4.uic)
compileUiDir() (in module PyQt4.uic)
Configuration (class in PyQt4.pyqtconfig)
configure-ng.py command line option
--assume-shared
--bindir <DIR>, -b <DIR>
--concatenate, -c
--concatenate-split <N>, -j <N>
--configuration <FILE>
--confirm-license
--dbus <DIR>, -s <DIR>
--debug, -u
--designer-plugindir <DIR>
--destdir <DIR>, -d <DIR>
--enable <MODULE>, -e <MODULE>
--help, -h
--license-dir <DIR>
--no-deprecated
--no-designer-plugin
--no-docstrings
--no-python-dbus
--no-qsci-api
--no-sip-files
--no-timestamp, -T
--no-tools
--plugin <PLUGIN>, -t <PLUGIN>
--protected-is-public
--protected-not-public
--pyuic4-interpreter <FILE>
--qmake <FILE>, -q <FILE>
--qsci-api, -a
--qsci-api-destdir <DIR>, -n <DIR>
--sip <FILE>
--sip-incdir <DIR>
--sipdir <DIR>, -v <DIR>
--spec <SPEC>
--static, -k
--sysroot <DIR>
--target-py-version <VERSION>
--trace, -r
--verbose, -w
--version
configure.py command line option
--assume-shared
--bindir <DIR>, -b <DIR>
--concatenate, -c
--concatenate-split <N>, -j <N>
--confirm-license
--consolidate, -g
--dbus <DIR>, -s <DIR>
--debug, -u
--destdir <DIR>, -d <DIR>
--enable <MODULE>, -e <MODULE>
--help, -h
--no-deprecated
--no-designer-plugin
--no-docstrings
--no-qsci-api
--no-sip-files
--no-timestamp, -T
--plugin <PLUGIN>, -t <PLUGIN>
--plugin-destdir <DIR>, -p <DIR>
--protected-is-public
--protected-not-public
--qmake <FILE>, -q <FILE>
--qsci-api, -a
--qsci-api-destdir <DIR>, -n <DIR>
--sipdir <DIR>, -v <DIR>
--static, -k
--trace, -r
--use-arch <ARCH>
--verbose, -w
--version
connect()

D

DBusQtMainLoop() (built-in function)
disconnect()

E

emit()
environment variable
MACOSX_DEPLOYMENT_TARGET
PATH, [1], [2], [3]
PYQTDESIGNERPATH
PYTHONPATH, [1]

L

loadUi() (in module PyQt4.uic)
loadUiType() (in module PyQt4.uic)

M

MACOSX_DEPLOYMENT_TARGET

P

PATH, [1], [2], [3]
phononModuleMakefile (class in PyQt4.pyqtconfig)
PyQt4.pyqtconfig (module)
PyQt4.QtCore.pyqtProperty() (built-in function)
PyQt4.QtCore.pyqtSignal() (built-in function)
PyQt4.QtCore.pyqtSlot() (built-in function)
PyQt4.uic (module)
pyqt_bin_dir (PyQt4.pyqtconfig.Configuration attribute)
pyqt_config_args (PyQt4.pyqtconfig.Configuration attribute)
pyqt_mod_dir (PyQt4.pyqtconfig.Configuration attribute)
pyqt_modules (PyQt4.pyqtconfig.Configuration attribute)
pyqt_sip_dir (PyQt4.pyqtconfig.Configuration attribute)
pyqt_sip_flags (PyQt4.pyqtconfig.Configuration attribute)
pyqt_version (PyQt4.pyqtconfig.Configuration attribute)
pyqt_version_str (PyQt4.pyqtconfig.Configuration attribute)
PYQTDESIGNERPATH
pyrcc4 command line option
-py2
-py3
PYTHONPATH, [1]
pyuic4 command line option
--from-imports
--resource-suffix <SUFFIX>
--version
-h, --help
-i <N>, --indent <N>
-o <FILE>, --output <FILE>
-p, --preview
-w, --pyqt3-wrapper
-x, --execute

Q

QAxContainerModuleMakefile (class in PyQt4.pyqtconfig)
qt_archdata_dir (PyQt4.pyqtconfig.Configuration attribute)
qt_data_dir (PyQt4.pyqtconfig.Configuration attribute)
qt_dir (PyQt4.pyqtconfig.Configuration attribute)
qt_edition (PyQt4.pyqtconfig.Configuration attribute)
qt_framework (PyQt4.pyqtconfig.Configuration attribute)
qt_inc_dir (PyQt4.pyqtconfig.Configuration attribute)
qt_lib_dir (PyQt4.pyqtconfig.Configuration attribute)
qt_threaded (PyQt4.pyqtconfig.Configuration attribute)
qt_version (PyQt4.pyqtconfig.Configuration attribute)
qt_winconfig (PyQt4.pyqtconfig.Configuration attribute)
QtAssistantModuleMakefile (class in PyQt4.pyqtconfig)
QtCoreModuleMakefile (class in PyQt4.pyqtconfig)
QtDBusModuleMakefile (class in PyQt4.pyqtconfig)
QtDeclarativeModuleMakefile (class in PyQt4.pyqtconfig)
QtDesignerModuleMakefile (class in PyQt4.pyqtconfig)
QtGuiModuleMakefile (class in PyQt4.pyqtconfig)
QtHelpModuleMakefile (class in PyQt4.pyqtconfig)
QtMultimediaModuleMakefile (class in PyQt4.pyqtconfig)
QtNetworkModuleMakefile (class in PyQt4.pyqtconfig)
QtOpenGLModuleMakefile (class in PyQt4.pyqtconfig)
QtScriptModuleMakefile (class in PyQt4.pyqtconfig)
QtScriptToolsModuleMakefile (class in PyQt4.pyqtconfig)
QtSqlModuleMakefile (class in PyQt4.pyqtconfig)
QtSvgModuleMakefile (class in PyQt4.pyqtconfig)
QtTestModuleMakefile (class in PyQt4.pyqtconfig)
QtWebKitModuleMakefile (class in PyQt4.pyqtconfig)
QtXmlModuleMakefile (class in PyQt4.pyqtconfig)
QtXmlPatternsModuleMakefile (class in PyQt4.pyqtconfig)

W

widgetPluginPath (in module PyQt4.uic)
PyQt-x11-gpl-4.11.4/doc/html/gotchas.html0000644000076500000240000004675012536324430020011 0ustar philstaff00000000000000 Things to be Aware Of — PyQt 4.11.4 Reference Guide

Things to be Aware Of¶

Python Strings, Qt Strings and Unicode¶

PyQt4 uses the QString class to represent Unicode strings, and the QByteArray to represent byte arrays or strings. In Python v3 the corresponding native object types are str and bytes. In Python v2 the corresponding native object types are unicode and str.

PyQt4 does its best to automatically convert between objects of the various types. Explicit conversions can be easily made where necessary.

In some cases PyQt4 will not perform automatic conversions where it is necessary to distinguish between different overloaded methods.

For Python v3 the following conversions are done by default.

  • If Qt expects a char * (or a const version) then PyQt4 will accept a str or QString that contains only ASCII characters, a bytes, a QByteArray, or a Python object that implements the buffer protocol.
  • If Qt expects a char (or a const version) then PyQt4 will accept the same types as for char * and also require that a single character is provided.
  • If Qt expects a signed char * or an unsigned char * (or a const version) then PyQt4 will accept a bytes.
  • If Qt expects a signed char or an unsigned char (or a const version) then PyQt4 will accept a bytes of length 1.
  • If Qt expects a QString then PyQt4 will accept a str, a bytes that contains only ASCII characters, a QChar or a QByteArray.
  • If Qt expects a QByteArray then PyQt4 will also accept a str that contains only Latin-1 characters, or a bytes.

For Python v2 the following conversions are done by default.

  • If Qt expects a char *, signed char * or an unsigned char * (or a const version) then PyQt4 will accept a unicode or QString that contains only ASCII characters, a str, a QByteArray, or a Python object that implements the buffer protocol.
  • If Qt expects a char, signed char or an unsigned char (or a const version) then PyQt4 will accept the same types as for char *, signed char * and unsigned char * and also require that a single character is provided.
  • If Qt expects a QString then PyQt4 will accept a unicode, a str that contains only ASCII characters, a QChar or a QByteArray.
  • If Qt expects a QByteArray then PyQt4 will accept a unicode that contains only Latin-1 characters, or a str.

Note that the different behaviour between Python v2 and v3 is due to v3’s reduced support for the buffer protocol.

Garbage Collection¶

C++ does not garbage collect unreferenced class instances, whereas Python does. In the following C++ fragment both colours exist even though the first can no longer be referenced from within the program:

col = new QColor();
col = new QColor();

In the corresponding Python fragment, the first colour is destroyed when the second is assigned to col:

col = QtGui.QColor()
col = QtGui.QColor()

In Python, each colour must be assigned to different names. Typically this is done within class definitions, so the code fragment would be something like:

self.col1 = QtGui.QColor()
self.col2 = QtGui.QColor()

Sometimes a Qt class instance will maintain a pointer to another instance and will eventually call the destructor of that second instance. The most common example is that a QObject (and any of its sub-classes) keeps pointers to its children and will automatically call their destructors. In these cases, the corresponding Python object will also keep a reference to the corresponding child objects.

So, in the following Python fragment, the first QLabel is not destroyed when the second is assigned to lab because the parent QWidget still has a reference to it:

parent = QtGui.QWidget()
lab = QtGui.QLabel("First label", parent)
lab = QtGui.QLabel("Second label", parent)

Multiple Inheritance¶

It is not possible to define a new Python class that sub-classes from more than one Qt class.

Access to Protected Member Functions¶

When an instance of a C++ class is not created from Python it is not possible to access the protected member functions, or emit any signals, of that instance. Attempts to do so will raise a Python exception. Also, any Python methods corresponding to the instance’s virtual member functions will never be called.

None and NULL¶

Throughout PyQt4, the None value can be specified wherever NULL is acceptable to the underlying C++ code.

Equally, NULL is converted to None whenever it is returned by the underlying C++ code.

Support for void *¶

PyQt4 (actually SIP) represents void * values as objects of type sip.voidptr. Such values are often used to pass the addresses of external objects between different Python modules. To make this easier, a Python integer (or anything that Python can convert to an integer) can be used whenever a sip.voidptr is expected.

A sip.voidptr may be converted to a Python integer by using the int() builtin function.

A sip.voidptr may be converted to a Python string by using its asstring() method. The asstring() method takes an optional integer argument which is the length of the data in bytes.

A sip.voidptr may also be given a size (ie. the size of the block of memory that is pointed to) by calling its setsize() method. If it has a size then it is also able to support Python’s buffer protocol and behaves like a Python memoryview object so that the block of memory can be treated as a mutable list of bytes. It also means that the Python struct module can be used to unpack and pack binary data structures in memory, memory mapped files or shared memory.

super and PyQt4 Classes¶

In versions of PyQt4 earlier than v4.5 there were restrictions on the use of super with PyQt4 classes. These restrictions no longer apply with v4.5 and later.

PyQt-x11-gpl-4.11.4/doc/html/i18n.html0000644000076500000240000003164512536324430017135 0ustar philstaff00000000000000 Internationalisation of PyQt4 Applications — PyQt 4.11.4 Reference Guide

Internationalisation of PyQt4 Applications¶

PyQt4 and Qt include a comprehensive set of tools for translating applications into local languages. For a full description, see the Qt Linguist Manual in the Qt documentation.

The process of internationalising an application comprises the following steps.

  • The programmer uses pylupdate4 to create or update a .ts translation file for each language that the application is to be translated into. A .ts file is an XML file that contains the strings to be translated and the corresponding translations that have already been made. pylupdate4 can be run any number of times during development to update the .ts files with the latest strings for translation.
  • The translator uses Qt Linguist to update the .ts files with translations of the strings.
  • The release manager then uses Qt’s lrelease utility to convert the .ts files to .qm files which are compact binary equivalents used by the application. If an application cannot find an appropriate .qm file, or a particular string hasn’t been translated, then the strings used in the original source code are used instead.
  • The release manage may optionally use pyrcc4 to embed the .qm files, along with other application resources such as icons, in a Python module. This may make packaging and distribution of the application easier.

pylupdate4¶

pylupdate4 is PyQt4’s equivalent to Qt’s lupdate utility and is used in exactly the same way. A Qt .pro project file is read that specifies the Python source files and Qt Designer interface files from which the text that needs to be translated is extracted. The .pro file also specifies the .ts translation files that pylupdate4 updates (or creates if necessary) and are subsequently used by Qt Linguist.

pylupdate4 will only be included if your copy of Qt includes the XML module.

Differences Between PyQt4 and Qt¶

Qt implements internationalisation support through the QTranslator class, and the QCoreApplication::translate(), QObject::tr() and QObject::trUtf8() methods. Usually the tr() method is used to obtain the correct translation of a message. The translation process uses a message context to allow the same message to be translated differently. tr() is actually generated by moc and uses the hardcoded class name as the context. On the other hand, QApplication::translate() allows the context to be explicitly stated.

Unfortunately, because of the way Qt implements tr() (and trUtf8()) it is not possible for PyQt4 to exactly reproduce its behaviour. The PyQt4 implementation of tr() (and trUtf8()) uses the class name of the instance as the context. The key difference, and the source of potential problems, is that the context is determined dynamically in PyQt4, but is hardcoded in Qt. In other words, the context of a translation may change depending on an instance’s class hierarchy. For example:

class A(QtCore.QObject):
    def hello(self):
        return self.tr("Hello")

class B(A):
    pass

a = A()
a.hello()

b = B()
b.hello()

In the above the message is translated by a.hello() using a context of A, and by b.hello() using a context of B. In the equivalent C++ version the context would be A in both cases.

The PyQt4 behaviour is unsatisfactory and may be changed in the future. It is recommended that QCoreApplication.translate() be used in preference to tr() (and trUtf8()). This is guaranteed to work with current and future versions of PyQt4 and makes it much easier to share message files between Python and C++ code. Below is the alternative implementation of A that uses QCoreApplication.translate():

class A(QtCore.QObject):
    def hello(self):
        return QtCore.QCoreApplication.translate("A", "Hello")
PyQt-x11-gpl-4.11.4/doc/html/images/0000755000076500000240000000000012536324525016731 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/doc/html/images/alphafill.png0000644000076500000240000000023412536324501021364 0ustar philstaff00000000000000‰PNG  IHDRdd‚̈gPLTE€@¿€€ÿÿ€€ÿÿÿ«@RzEIDATXÃíË1 €0ÀOƒ‘¢  °PÿV0ð?”4a¹Û/b];sý* EQEQegùàxr÷¬(Š¢(Š¢(?—RY^¡_WöI€¸IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/assistant-toolbar.png0000644000076500000240000001460412536324515023114 0ustar philstaff00000000000000‰PNG  IHDRýóÍ‘KIDATx^ìÒÏJÃ@Çñ_ÄPðUD|ZŸÀƒÞ<¢¢[ÐC¥¶qCÒdw“¦ÒÄÝî¬Ò»4=‰Í~˜Ãœ¾ÞÙé €½ý´ƒãcé]]ž8<:F;8޽‹•ªÌÐŽCFï`sŽÖŠÈ`{}Õ¶Ú¿ïÞZŠ{7ÃÎE9•Dvó‚µ”ù `Ý×·‡§ç[ÿ1%vݙٴPJa¥T’pÆ¢0ŒWýìy^Ñïï Mý‚‹š…¥”&Vo2©ÑŒÑõòññ-=$×±EZrzqA< ïÝwî½ßùÎ9ߥYŠ­ßšúèßnüì{®üg©THEW®Î|ô·±­YÀô³ˆ¢ŽÆæ?»>ñÑçŸ]º5±^H¡1Ü]·Œh( ººµÍU*w?¥X,%Séx< 7ð½¹¹³¸´ w¹v»ºÍf…kQ"Ñx;¢(‰fŒf§·»¿§ÀÝÕãíòyº»ƒQ9•ÎîǾœ®•R¨$2ŒºÞÜ£³ r…ìÆü­j…ûâE’$X^plø%©Ýt:C6 ž†1 ‹¢__$i‘ØSáWÆHû3†x|æç Å.ß ŠrðäsY¶’q¹ˆÖÚ¯ÖQ=¸¹r¹ÌI¢¤Ñj(ŠDÞ€ØÂK׿¯ý$Ÿ®‚;³7eY>÷nhñòâb‚“&q¶Ûf{Z§JfS\ÿÁ±³CþÁ!5Å "¡˜,`ˆH’‚JgEBµàõ»Sƒý½$A8ívŠÜ—mÀâ°s ƒLìQQŽã++ë©TO’`…¢(€M>W(Šz½nÏu;6î½:t÷v *õ5ÑræÜ‘úÇþýo¼ Vu¶„$ÕæþÓƒ³ÅJ†B±Üoö=ºûóí•™þÑÓ4Mÿ& ¯TªÁP$•ΗË|•¯R$¡ah‡ÝâírifŸH”'’éX,™Ës\¥ xb•ÑÀz_„½o7šN[܉×Ëu$Ï#ù*’ä^F5Æîh4¾J´#J‘«Ð *\¡R“œ½§Ò‘­h8$Iò ƒbÚ£…Õ\¾f±z-V·Íæu¹{MfO ”œ™]ÈåòûAܳ±±³¹¦h£ÃÙm±¸ìŽ.§ZC§gÁ°$í«vðÌ?ZãyÔjë2[\6{—ÛÓ§a­«k»ssK´;ƒ=™é®¯¬¦Ó™ç2}6²_¹400¦Öšcñø á©V£É ÓiÑè /KbdùÚÖÔ/0!#¼å}77ø5­V_ =ârɦc(Ðö|5D¶d9RÀU:É«’‘àðTË”ÑtAŽç¥˜Â–m4cCÊ•òœ¹±:’Ôè²Ìóµ|¾ ¢T}½>¤Åbþº³šƒà½Z­µjhлøh½ "…ô&ôEÔìéÙXßÝîe‘9D)CÇjϸ¿ôãÕø‡ó››é¼ÃÝS(Öff•Ëe¼3èwv‚±dÁêèZÚ ühjþ£@îíäÝí¨Jk4[ÜS÷æ!ž4H¡cƒµ]^ÞÔ›?¾3óó•ÐG¡Â'«Á$WsyzÃÑ @_„vÆ`O&¾åJ•Ñ:DEÓ»³éÕËc½&½° Ô2à-€BØîH¥&8(•J£Ñ„à FÜWˆª¡…Oƒ³ÿ£×ï‰å?õ>FÆo'¿©³útº~ŠÄƒ`o›Yôåb%—/%³¥¤ÀKz¤ËKï&N™‘~„'ó¥t©\(Ur`æþ³U¥Ùäfƒ Ç–’É@ Â9†¢&£Áj1Sk,Jm·ìϦv2U$[C’$VFvÓˆ¨f© ¬ØsC!¢îË­®È%åiVæ„’lEò@Ì‘Hï ¸Gb’L ù“éGŒmffgò‡—oÎEnêmu¹»ƒÁÄÖV 3d ÅÒÎnÄá캵¸v+_/º(ßÞ;2î–d­Í‰¢Ôüü2ÜÖÁ່Fkʸ6wõ.Ä7DùüaS÷õ*‘Áh»Ã³²²Ó”=?Ï?~”QcÞ— =ÊïÞðRºú]„›Sê1=œù¯ÕëïG7î‚5Ï%@@(5ßv<‘jBà©°–ÝôAy,_ɮ߱›,¢}lÉþQëqÕn£ÚĪCÆs!÷;Î.÷p¯…«Bµ°g©$˨(ʾÐ'%í°îµ>íi¬®ª×$/36j|ÓKk;Ç¿ræâ[^ ëi1›ŒF=˲†µê6‚ÀU* 'pèJ{õ©RåuŒ.¾-—“- :IÒÕ*Çz-¯÷Öíéš <Ç•Z3ÏiôP(°H§òÒJ0È‹ùªRáÑÙ‡K»Pi‰DZo0ͬn– v·Ç}âèȹs§ŽªìîuT£htEoníÖjB¤SF£Ë–¸Å§uyý^—ßeë³OŒ1EÌát…#ñl&סÌÜ‹œ–Õß^Ùlî.gÈëè·›úÝÉìZ—UŒÙ&Ô!º``LǺV¨ï®í:Ý^­ß3Ÿ†ô&³yu¤ŸÑ‰÷ÐÚŽN<<èÂKpÞ½ó¢éÕx®s5ÕÇíäk5Ql¬;@Dk*éu0a·ËÁ0êv9}dé·3Õå´f(ß]ü·j˜Ñ¦ÁLZœÀ° /eõ~–ÔΪ®/“+¿4ò,.ÇžD§¸¯+k£Ú>h8O!Ú_,|'Éï`b \zßóÏÎF?áø’¢’Z¬CkLXƒAk6`÷&ô Ѽh#­Š`ä­W_–enkc…T.‹už¢u:ÇØù…†Ö‡{ö\(¬PYl˜S,UVV#%Ñpw7XÒ²Á\6³Ë.ŽùïOÏëX-ì×þg—Ë5Z“'?øxàP?MÑ2J¢kÑË0T>ñ7ß„MŒÆ‚à–àóí`5€–µÜ_ÙXcðÒ½(A£°{(šÈÉÁ¾î·Nœ1¡øÉ Œvƒ€öÈ×ê d 5Åêt5£†­Âô(žFˆTAøkA¿‘ÿÃ~ì9låÒÊN"Y\YZšx{mm!“Í "¢Ñ™Lf[ÿÀÉS§GFÆ0\{ýF[âo„[ c‚¬‰×DxÉù³æáAíèx„1æy!“-AÞr ʇ𬠨B«³™ÒôBhf-ñh+q~'Ϋ²€S0A¨`Ž– &ÁNe\ÃnnÅnÏlÃPSóÁùµX]ƪDC„pA`Ò1O–¡£V"Ô™º*Ê“±‘ªS(¥RHZ$HŠFàÖçð=M«Ž# Êž=UR¾R"iì |Ø6óHè !+ÉŠÔÔqŸ¯¶¢ˆÒ‚4¤åÏ(‚¡ÞT¯ê’Ø>~“uœÝ§¬eÐ/^£JªÑzÄèµëÁ‡Ê„EQiŠŒªPUVwÓ&k¨B²îv–Ë“ù×a|ðµ ŽP8F-'îHU-+ÅkùïŸp¾­W[a> r`êq–ßãàHKVdØ£V_›hS`ÊÏ¢Í>X=~âLÿ!u¡Ax:•Z}lüXë(9Ž[__#Irppçù+Wo¾ý¥×÷PàýÍW¤3œò)4Ézœ$­Æ ‚1hƒ©Š”4©T¦eÞ>g,N’„‹¡ŽåmžvíÜy Çlƒ‡Æ_73˜…D#µ*H™a4L¹Tìu»¶²µž7^çQ=FŠTºY=j¢–«áÚY®Å XjI•‚ ¹ScñÝ”ÃHižEAà5VË>ô{AØÞÚv{ºµì ¡µô¨¬G&>¹tþÍ㬱ŽÔ×Eƒ nb iEÐ.]Ø'8Àdð1ø”›­^GᚢH¨ü õ÷ùºÚÉ·FÏ/áË—¿Sáx·ž4T¬Á§'dƒ†‚W­zN ©§•¼Â£yÒ:â8%ïSzŽ$aR© Ürüv¹ ÂoADAæ´‰S¾wrÕ¸P^ ^o‘ýã„@ViD7k6@msúø³e7`1“ÉC•OQB0‚Ùl^]]mEj.´Z-à?‰ò…ÉÉ;¯¾ò2ÀÞòÔyPS¬LcùtÆÜëHJnÑ †BR`Dåp>ÏWm:ᶘ W:ì°¤û6é‰Í.ê"k³ú_>z„â¤øf,òû‚è â[,¦¥¥moXÈò~oŽvË„`aÅCZÞOTîÎ΀ħeµÖv’‚5¤dI·›Ê<x¡Qœ¤I…”Å¢–ÜX渲Ý>D8`£î%`lѰ&->‚ìy |ãöÄÍ—^=iÔáÀš‰xO:¥`„¶.ÆjŠºWôù ;™ÊùÁ½pvu¬ìån ìëö‚ïihËg÷úÅ¿$o¾oeQFM„Ö6#•R·68‘ÊÑê¹¼*œÐk8Ê÷޳{¸¯¯W¯×ïU×"|½ ðuŸ;ÑõÅOWÞ_ÍÜþÅP|ÌþºŽ¶ÌG&ŠÕ4 ø "Ì«å·pÝš/Ìb àaÔ[H] ‚Çqë³#D£‘ÉÉI7½Øí€~Óãñ€*|®­­e2¡VO» ìÈõFÉ„ìEø’,A@¶ZõÓó^³ËÈjó8 Ðbè€"©x<¦:5ÚÀÖ¾[—×õ`nÅf÷¾êÔ9N:âŒÙµ‡í'©Š›Kݹu3 Žõ€ÍžlVó6ˆGCGí³$?s9¥®R‘ŒäG¸äòòôôýA¿¯9Þ^ï"ËúFÀåí½h WꥰŒÔpµS‹Œ‚>ºrcjü±óœÑÃÃ$!í™ç@Jö~mKªß½zçÂ;gÕa'P™_,Ó,`¦gô:Ç:M°ƒeµ‚Fb¢ʼn44xÈh0d³98­èîö˜L†Îgu€!»»'ëèÖ4D´‘‘$ŠãÐ5µŠQa(ª&pœÒ8ºGê3tÏ(Ë8 ò(‚Õë;áý²$‹ÅZzÈqúBß»e>7¹ñA]âäÀ¸o!¾É¸80€½åÆ¥RÒ"Ô  Ün§FÃ9±²ºªQŠ«37€FGG‡`‚mqªâÖæ¦§«—e÷F b4ýã_Ú]Ò\ûðóW~ç=Œ˜cLÖþ±Wt:xh+Q s1ô€ ¨ëõAÁ@€¦æЛMø>¨a$4ŽôùûIL¡,“HR* \W†·` S!ÑÔj5Ï‚^XH¨TDZ–*EÞ¿õ#Î ¯ù¿>ì<ƒ¢˜,‹ÑÂÖÏ~;\ZÁ$3ÜýbIN‹æÁ ø*6+Zx³Íf(C|k¥Ôφ5ø Ž{½^¯ßïv¿wïÞÆÆ†Ž4].§Ó pwf&O ‰ò£= [ÖHk€ ȓǥ>»wéGÿ© “V•‹¥t2Á04hù¹Kw3ù7Þ>:¾Ÿ/4ëŠ~ÀÐììÂÊòB½.5ÊO¡/µ©’‰hªvAÙ¹ÿ‰" ÇOo§Ë™M†—O}ðpqaî>WiÈz<ÏË’ˆ¢r6Ðó©œF‚·o^SŸ>§=©özüèŽCý¿ZœÐ0$Qò) b.î3ÕuÅõÅÛŸ(²4vd°·7î1(A²:ŠÚÿj ¥ÕêÞ±×`ô[LàÁƒÑ`±˜÷Yx\Õl€{(üêU"Š•Ïç¡»Óτ€ 8…"Ù|1—Œèô¬«ˆÑª[Xh—eÊ‹,ŠõP~¾ndffCŸúL‡Ê+ll¤g¸z¦‘ñÈuå€É} èx³pGÒ…BNáïý}=À=G€§Œíĵ+ÇŽŸ;yò$ ÿêÕ«à*BLN®r\î=þ,°ÌÄK• Ï<û«”¨V„<– #b)cÖQYޝT8š¹ð€éáµËXd•¨*+¿äáã/}yî)’8Ôk4èáHÎãJe˜ æ¥Õ0Õ|®°½O—ÝêÝðÃ+Ö³ç^nÇÖ6›õÜÙS‘h< ÀGu, ¼0ë´Þøi(•ªê™‚¸}‘Î_|Ëd2¶ÃÒ‘±a‡Ý G“ óØÊÎ6ý•ø(!èaߪY!™þ\(›¿TÓ@ØqB2ÅjŸ;pÒé—Æ76·/}ö1dù_ýêWF£ÝnE%ª†ÃQ¿¿ïÍ7ßr:]ÓÓÓSSwvsËÓžÄ}¥\ ­ÝF²©œ„¬ÕÙsì•/˜Lp'ö`8% Iõ©®2¹¨ƒZÜœø±ÁêÜsÁ£à6Mx.Û¦0ÿ£?ùÃüû» Œº„K‘t2Ùy­`Aúû{º»<-m·5ò¡^ˆ’÷>ùX¯x¨l9ïÅFÆ^Ôú%f‹;`pƒÁðý}?” ‘$ìBéNyÎÆúz—¯ÿÉ<§}ÂÃøOØ»‡%I†}EŠ{iÓj¦ rÐÇCoȺ¡D<ñX~ÆŠíàk¯½]ãk×>ïé9ÕT9ö˜ˆÝjûƒ‹¿7±8‘çã~-WЖS¶ld;M©Ç`äs-Öh6GÂÑǹ] ¾¥\í‚@#Ã~.üýßýõÅ7¾‰D''¯«iϹs_?uÊŠþ·¿ý÷£#o]<34䧨§W6ô &‘ÅJ§pl§Ó±ÏØ×Ê[ï|'ˆ™Ÿ~7ŸJrX½¯P>‡C‚®(ÿWýþþ?ÿÖŸ}÷ýï…¢Û=žcgÎ}.Š€1[zå“®ûµ¯ÿ®Ñlš¹ôI.œ}Ãjµto6Xç'9~lÌôWßú¨å‡ýŽ;òôƒ­ÿ¯¨Õê`Òï?Œ(ùýêw->xkQõ ? Tˆl¡п¶¾ç.œ7N/.αZüôKÇ{>žË6¶¶€’Ql©îðÙ8Pƒþ«2€"©>_7qëËÓVËf’ Ò´úÉã 8h„ÛŒ¦Æ#` ò›5ðò•S÷¸œ¶cã‡c‰ÜÎNÐá0¾ráLw—`×nqZ÷Î"A±Pº~ùÊò‚çÐàÅ‹_p8loˆF.W÷ÿ¶o.+ Ã`þÕªÕ™*:¤T»qåÓÏ^𠌠(^fÐz™Ñz¡x9‹b@hpcì·É®ôÀ!çü¡ð ÀóË*a IN}S»ÓÅŠ]H?Àä ºTDZÒ¬É.º'B8‚Gó}ž ¸$‡;®ÝÁä ·Û®‘Ü+e‚œ’§³ò9Ä×[g½¨{!€çÍœVú—‹"Fj߀}ù|(ee<ÝÔǪ.—L ö‹³t¯¢î#BŒ¡Ïu=›J¥IQ\÷×4¿Ö½Œ‰DärR.z¥ÑþS,Œµè5ˆˆÀpÀ Lïû¤}ŸFIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/bearings.png0000644000076500000240000000215512536324504021231 0ustar philstaff00000000000000‰PNG  IHDRˆ£-‘ PLTEfffÌÌÌÿÿÿ’˜³âIDATx^íÚAŠä6à_%¼iZùÙx3Gà…ݹN!‹dïE 1ÐWð‘¼Éf08ª'»Þ³Ñøy‘ÔФ Ýà2ÿ'ø«_«E5æíõw—®ßv/ò5g¯é_‡^Ð !|] ÷>þÐ÷?Ù ?zA/¨A¥@°g ¸CàO@5€ChàN@ðåXjPîÂ/t¨6Í14ÁŸ‚P´ÇЈy8•ï d£¥Cm„úò‡Xô‰²tï·CŽ0 ª#Ž~ §;4z2ʬM D… Aã“¡… ˜Ÿ 5*„³P©Aö¹P­AÓ§…e;á>4Àï *ƒ¡†!‘’9A (m^‘QšSˆ2xÛB„c…j`ˆSNB)‚ê".A-Ý] ¸—© øÈWJ ¼…v`ÔÀÐaã‘ò ¥úb:Bx@mÍ î"4&”#H”?â¾¶èlZ4BË[”aix¤¬€R7POK jPPáZS ñ "db†Ê¾Âä"t'*"ä±K-ÏêºèAT= Ô±L1D%¨bè› ¡&A†!Ny†’wÝB´Þ´@MÉJž€°Bo õ+„5+†Øs-«J¨¼CWx†¨k†,§ Zƒ¦<ÄõϽ„Ö½‹  £‹!N9è’ƒ¼„ª d ZzßC7X†þ€ÙC”úÏ d ^B¿ç ä yu9 âÑ8„ Aã )]%tÍ@Óç€lú"¡2Ù=4æ HhÌC<´­„RñÐJ·yȨÿ„P•¬„Lò{h”P“ƒ€<Ô¨t!9 9hÞAÓ$T/Ð,S9è’ƒ¼„Ê dçݬ ñ¬!BYCœ’èMBîÑÀcúndÊí¡!MjsЃªÕ;ÈJÈDhÚC~Þí"@`¨»àº‹4(âÔ,!B/ *¢õVˆjY¦ì ñ/ ÝÀkÄ Ô5CœÚC©k q}¥®wq %¨¿<¡¿FJš4†8å¢u§åPƒºÂÑzÑ;@ß2%5ˆ!À-PGPÄ f‚ »D8§Vˆ'~Ýè5› –n C"%¡)e6P¸ž tÈ*) >ï oEJÇ>†8%¡Tþ ™úXZåcÖ ù™S?<·0ʇ¼È<*Th~*Ô T ØgC¹SP­AÓYȨ?*4Ÿ‚ AãY¨Ô «C}þBw™. N‡®½9‚Zþ té‹cf€òjØ“P§AîdTÈŸƒ "@-¿vJÙ âÓQ§#º¡R ÚüÜ3_ÐëÿFtè½ Éé;ÅÏ÷DÇIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/brush-outline.png0000644000076500000240000000070412536324501022232 0ustar philstaff00000000000000‰PNG  IHDR™”·{VPLTE9Ÿ[ \  £g¥¥¼x¼¼½y½½Â†ÂÂÇÃÃîÞþþÿÿÂÂ5™U;›_<œ<<œ`D DE Ep´pp´´qµqqµµx·xx··~º~~ºº»»»¼¼¼ÐàÐÐààØäØØääîîîïïï-¼ú=þIDATxÚíÒÙNÂP…Ñ"ƒ2ZD@&•bûþÈ=W'r$ë{‚•]4÷Zqç˪ïú‹,ûê¼d¯÷Z6*ç™+'ûزyöÞö̘1cÆŒ3f̘1cÆŒ3f̘1cÆìqÍ^§ñú«SZ—ˆÙ¸x÷´Ø$µNÙ[ÿD–7-tŽ,k3ËiÙv¢t]M¦ÁAIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/brush-styles.png0000644000076500000240000003323412536324501022102 0ustar philstaff00000000000000‰PNG  IHDR£e@mòÀPLTE  # #!!(&!+*!+++12"33368#:=$;;;@G%CCCEL&JT'KKKNX(R](SSSTa)Yg*[[[[k*aq+ccch|-kkknƒ.q‡.ssssŠ/y’0{{{~˜11ƒƒƒ„¡2‹‹‹­3‘²4“““•¸5˜»6››››À7 Æ7£££¤Ì8§Ð9«««³³³»»»ÃÃÃËËËÓÓÓÛÛÛãããëëëôôôþþþS«P=5—IDATx^ìѱ°Ìò·J£cSXúŽôŽáÈÑØ«ƒB ‚ffþY°¿™…îßÜ(u Îí+I­åLßmùôxGù˲h#%6âxÄ#ñˆG<âx¤ÄF<âxd#ñˆG<â”ðˆG<âlÄ#ñˆG<â‘ñˆG<â‘xÄ#ñˆG­ž"xO :z[ÑŽë4’–Fg˜Og$­ŒÉ»<¢sóuY;yª£= -zz¬€hÇuIù˜¤]›A’ò‘hÌ€H…MŒäc*C@@s&šÐé€è!d™Èomá?B8úiö$@4å÷!i‰™Ž+ÑÉ_¸Tä:d&‡ß‘H÷ïŽÐ…†Uû›¨|mY»kW[GCF>“ pDeçzEÐAmûš~š= „ãR;­–]Žn¨âJ<ÿ˜ëš¸#‰WN$ƒ{[IHW_‘èt‡ýŽÈµRZ²¡ ³¨éö$Þ  ž%8ÍQ쉭¨æÔ;—øÄ…‰ë4’g³’Ür{ìÚ?ë&µ½‚¹ìŬ1.,ëk;ô¬+¶Ž&µí±ºlÃJ\K;é¹ð8®|ú‚$ÿLRÜIÞ”¡3îP"è•5jp¦õzv¤òÕÕñYWÖö59›}eV8zzqãó‘Žze< ·}gxzµ÷žjpz6ß¼qt¹™w.ëçÊ•H.nûξñJÙti·$tq~ œÕŽHKè,¢¸Í ³qÙ«98šsl“£E'æ¾ ¿™ew £= À¥¡¥Gè÷¡Ô±9u®\¦Wq%’âIòN"=IZYr ÉJ¯úÝ0É·Ž&)èWóŸ’ðoAœäˆÃŽ8ìˆq؇±#;âüaßqa( þ›íýoµ‚€Æý’ Mј—QdÝý9a÷gÚK2íGÉ€Ù'í}¬#õ+ʸŽÒ^ñè~yÄ#ñˆG:âtÄ#éˆG<âxÄ#ñˆG:âtÄ#ñˆG<⑎xÄ#ñˆG:âxÄ#ñHG<⑎xÄ#ñˆG<âx¤#ñHG<⑎xÄ#ñˆG<Òx¤#ñHG<âxÄ#éˆG<Òxô³w†­©+]Þ“á„À ¡¡B` jLfÖÿÿW/I7ž´ysÏ­5m>¬EQÉsç鸻îg¾„á÷¶0tDG 1tDG ÑQ•»jlLÄž0›àL~DÌYWäiºƒû P "©¾D"}!Q‚à»®¨Æ<ˆe¹ìš, ¸¸çñû(’t¿$ûW’rXQJÒíŸK2Ý“å˜äŒaOâ°'ñmº'ñ $Jà¤Îþ>Ånc\Pžt¥rÆwÊS[Ù®Þ öúìƒ<³$YORþ $®Ê”¤+„Ät%8ão“=Ù(ç3þˆU„$óŽg±†dêhÕa¦Ž:b舎:b舎:¢#YÁ¿•‡çˆ¿,sn ÏÃy´ÞpqqcxŽÎ#ž#Î#Î#†óˆóˆ'‰óˆóˆÃsÄpñqq1œGœG‘˜'“•ôê¢éXÀÄ1“ò-ùYç?:j|(b(OºòOO¯8ù±Kêèþú‡i•dóŸIк¤ˆp‹“œíȢћ%eB¶¤£ºŸØôqR—ûxÝ©£Ý95Ûaåõ’ªBq²[·—dlÒ×Ë‘’dc’2`;&¹¼“¤ëØŸ€?$¯I–°]„^Pîß?ëN90u|yßlÙs„à¤î±îóQ²#ЕÆur“]‰¥äâTÆV¶­7¨7úìÃŽÆ$›%qÝf ù'w’*ÛÕ~1à"hõoé·@€*³geZØàXEH2ï¨qkIž×º:b舎:¢#†Ž:¢#†Žä·®ë!YÄÑÉ ²ºYAxŽ8舎èè{¡#:¢#:¢#:b?b?â9â<¢#:¢#:¢#:¢#:¢#ö#ö#ž#Î#:¢#:¢#:¢#:¢#:b?b?â9â<¢#:¢#:¢#:¢#:¢#ö#ö#ž#Î#:¢#:¢#:¢#:¢#:b?b?â9â<¢#:¢#:¢#:¢#:¢#ö#ö#ž#Î#:¢#:¢#:¢#:¢#:b?b?bø ÑCG ÑCGtœ«ÆÆä³?sVYLí”$Ú Ùø%«—G™î ŽY~Å$‹ï(Žïº¢úWG¸¸åMIv@Øý8Ê”uÞÆ=&YJ ò+pÍEð€WGè¼ñä4,$/bké3‘\=½ßn3ƒr¡,CÐ#è¾gò Kî:2 Hf¤_ú <¤C 9¾Ÿ£«ç¨¬Rí‡çäÃÏÉ”$¿¡Ém•‚ŸC ÊÛ€R!Ñô·Ñ}1×tÞéã‚û3ïhøg"¢ÄAš ¸m­e0"Ò?§¯}ª£lDrzÅëIo÷Å}FIв°£Ý—SöÒ'»k—Ý%ðý¹ÞÌ9ºËÌ]º3ÄñÜ’§~ÖùI´z»ŸCQ’FItAÔb(«áñ´(”Ô¾ëüYúè¨Ü§C9r”Ýâ« ‹°Û}ºîžïHIFSåÅ¿Øî£ÞŠÒ½J²±g.—@™îɹh»=Ð}ÙÑìΩÉÝÑkpRgÿño†ÖߎUÆV¶«7¨7è6Æ…§;R’To”h¤Еz»;Š«lw~G)@QÔþNRÙ¼º/ÁõH!ï—ÛŸ±_Ä*B’yG³XCH2u´ò0ꈡ#†Žèˆ¡#†Žèˆ¡#FVö%²ÑË/^5²E«•$¿y]Õ¯ðJ%ýº'åXƒ¢ÕJ’_¾êe¢ˆ3i•ŽÆWΤU~Ö)9“Vù7Ø‘3iå{¯±q±±±±±±±±±±±±q±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±q&±±±±±±±±±±±±q&±±±±±±±±±±±±1üÞ†Žèˆ¡#†Žèˆ¡#FôZ9W}¬obC±à?y•¬Wñç&LId9a bÎcEIfpÌ\ƒ{–Ø)QßuE5æAºd€ –õÔëÅ-æ(àEHâfÌ ÎÛ¸‡f@%(®À5À?œóAUS@àElÚÂeX4ýŠ«e:oŠää!'ëË,‰r*ˆ±Ÿ@ìgMbžNÒxèfô §ò2à=Zo|‡àŒ Nòð7@—¾äÈ$ ™Ÿ0æ ÈŸåÆÂ¿Å·ÁÑ%וÁÊj9rˆá€‡3%QÂ)Èa$ŒAžN’ä3ƒ‰ïŽ€òÞJ˜k:ïúÇËn ˆm5Ú©úðMGHÇâ£ÛÖx1á}E™Þ(äýYÈ÷eÓyt±»ÈŒ£ ÃÀ HlEƒ“}逓ÝuøÛN%ùúgÝæ#O4>bܱKŠ¥òaEEÕýGE\ýô)Hþ ó{ÒøÏ þªxê1”§÷G%pßT‚Úw¿ K£stÊuTCݺWAyˆ¯êHWlB–PîÓu÷mG³$À}’F ñU’M°qy<›$–¢wT†sÑÆ=è¡ö%vçÔ}ïTöøN‰^ƒ“¨7÷ù(’7ý%;‚ÊØÊvm‘ÕÑûJ[oP{t¥qáIަ$>ƒÜ™’Ìlª,o’Öß"äÆ}v=àæÀ±JüOÜKåK$IA~•da†©£ÆÙ¿"‹ä,•/x1ù¿I¢›ÁÿÄ<ÙCGtÄÐCGtĤÕ:R4&¥¹õ8J+ýýMëp„Ÿs$"FþG¨Ù¶¶Ñ$Qt5i„ `ÃB C[¶ìýÿÿjëµO×ôxs§%+¢V|roU×è`š¦iž§Yt:-§Åµ®ëYu¹Èã»èN¯»»ª{ÑÃýÃÃÃT?M¿D¿«žTϦ?ªT/ªWÑUõö¾ùGÑ!ŸAw·cOß/wûezÜJöWýéçz¿r/YÞBÞè|‘w\×e‘ æyš&Ù/÷vËŽä7"Šçù4Ë2Mó¤:襒ߦH ~ª>d¹n·Ûí]×»,Ñ›>üjºêÃVa”&Y"et”OáVÓÙôýûE.ÔýpD¦„¤„d™Òó“"zî½*¢«¬]Fþ1â("eˆl;=²•K^:'Uƒ$Œî“ÑEWûÅ¿b´ÚÃdd[`2N®)!¹œõgR‚ë]¯Ð[‚ÒÕ]¯£0’êdJFgctQ ¢pÑÝ`£Ÿ²$‰‚¨@ Fo×ÑGÓŒFDºW"‚’Yɹ‘€´º‘Ô#£u±ë+-ó2"œ„“Eág8I#½ùÚèêŒÙûb"c”Y×ltHê"…„‘TÕE.#¤žŒI'^’(l”Œ@”6òÍe_’Nä¡êú‘;Ù SG©sÒ i9iÌ:tâI( "Œ4HJÈ}”Yç*.‚22uzUõ.šõš Ñê>R…‹’‘òê rDi#‘¢ýqH£†hŸ‘×Äõ.ÂDèi« T!F Ér,*#8É  vSèPêQAt“"c3”¡Ä£¬È–šu“CrF§ÞFkÏ莤s E4”‰‚P…t¨ƒˆŽÇ¬Fb_ÛÔH áÔØæI/÷SPFQ‘0Œ”К%i$µéØ×$gäY‡‘0‘¢UL×Däê…&¢Î Y1X"KldÂE…Q"ÒÔɆD/‘t¸h‘X93銋ŒPéI3³ÂäVR”¤Kií@#.ðè#A¹Ž]E:È JFªA‡0(øìe]ØÈ’®ï¼Iº(F—VŒî(F?Žhè FÊZD5"ë@4õ}·{—¤#çø/ 6µ8•Ÿp¢*U'Õ´ÃH02 F€’JIîš(IJd݇7 [m …}"é)¡Ú1,#£Ë™¨Seよˆº4tÞ Ñ{eä C0²mAT\D?¢ ‡”ˆ;JR1Ò#¡“kËéD7.„x@ÊÆûók½;º{á}DÔ©œ ä±36uÙSË«¼§«-C ÂG¥c°ýé»)FºE%äþö0a%jig™­Œª‘`$"ëd ˜ºƒRw.३£¡0ŽY õ¨ž–ô‘Z©(FᣬF­«ÛôÝØˆÃ„Z=zÇGæi‹[·16ú¢>è˜^ %%JR1ÒzfØP|ä…Øž3õ $»2ðH;-I™ucÇ@ÌÑpw½BÑ^ÖM5ë–e8E5ê† ¦‚ˆbÔ-Ø‘uæ"²Ñ1dÃ@Ò¨”9Yv¹SsiGÛ@AšF¦…´-Nôw„Ý¡e]‹º›,#tËé|0Pa$ ïè£$Nr@ ÂEQÉ“ÎÕ)PŽ`ä€L *Yg#C£¨F¾ˆp'N0ŒôÐŒtH9´«ŒÐb‹ÔëÍ4@šZÖeÔÑ/ôíÜ5«„d?:FŸ‡´ÑLÖÉ…‹ÌG4Þt JH!QŒ6ÕÈ¥ˆdEãm.r !|”ãTlÄ• sBiÏW@í9iÓ·‚ôM!ŒÐÂ¥âA©ô 4Þ$Ý0<Áé+Í:æB0ÒÀÙ4u$]ÂE$“:ë "¢îzDÇ#’.™‰’:2F"¬äŒR6\"ìŽûŒ ä9—OÈ ³»I•>JFî"®BN¬ê£)}d›eÖ-#¹ÜE%êú†¡ÚˆŽª¢:Ò ºñQD3UD0RêNJ iH»‡R¶ßs΃:Fg][Ñ= ¤„‘¢h d€"è !ûÇTa#T‡©+IWlTg £ý¾›j”Š`”6âpÄù5g@}12ì1AO%¥0ÒS‰ÖN‚ºÝG2[ŒŒÎâ•óY1T™9tmŒ:z¹ÖÍ €¸dFŽHÙ2P<븵GÔ)¡1ë2éÈ:|ôZ&u…QÚHTÊÕÈa#ÃÞ»²QÂIjE¢ýÆG⃀”Œ Oˆ†|<.)éF$ ]-BØ'l4ø@'á3·ò¡mÇ@Úl1ªg#­ì;3ltÛøè”#oE„ŒQ-FLþH‘ô’3ʸë®Î¬¬¨jÖé¥7²ÂHÕI¤]ö ]O U%ªWÑè#\t²®Bœ_ADÔÕ¤ã–[Pj8Â$"l4ú(¢nÉΛÃC³‘!JG¶š‰’ôLEêαÙ4d÷}è}ŸÑRÚrê ÉH Õ*”EÔŸøsa"•[·ŽS¿ë5v ;Q'‚œÐØÔ©1)"õÑ8«+w±Q¾S¼„R2z2F„Ý8³«Y·&!}$¯Ѷ(}ûfÂG]¿!d¦©…¨aº¨›÷&u=!Æ©žtÕij…$ª„ˆºâ£¡ó¦u}Òõ°“RÖ¤j$:»qÔ0—zäZceòAŽS ÂI0RH|À2j̺¹vuÜ7RHL6zعoDÒ9 Z^_ÔÌÒࣩøèÿ•#’ÎI‡ $Ùµ¤¯›Fv0R‰…â”W§¾ ÿ–°ÓG»„h°S#¤1ëæÖxÏLSñÑp~¥càp”£:îí=·®Žy7FÂFɨµuÛa]têÕ¡9k}“ÛLJ$côÇX†ßø¨fÂA[GÙÚÕ`»Zö¾Gyä#ŠÏ¨—ÊhóU·ÈÍF4 ªÁFª1éQ=1©Óë=l#·Ñ|ê‡uŒ¼KÇ`ÔÃFŽÈ•jE¢ = )Bê ÂGÐIDɉNb‹ GŠÌEî!Á6Nþ¬>Êû¯§ÙFR%¢ÑG ¢ 77Ž^†{ä£ò[ïK"N°fÓç`ä¸Q’· º!ÆôŒj=š&}-ÐeG±1Óqž•‘¸¡ä3‚áa½ÍºÖ2|;Ž_ØÂFÆhwà”’ˆˆº2L%êœÐà#îïq_‚AЯ6zKF~´·¸#ìȺ± á£@ôWFëø¼Á¤_r¬ûø0Døç ç^zy1:jÒßc¨] ¼9™8%%ªIÉôÂ×Z/&ª>:©‘zm]ñ6ú4#½Ö‚46ßuô¯æ#…÷wQµ:C©+§Ã§¸9SnK€€FŒ.}µW R b ´2¢a$n‘3MUU ]ï=F1Q]êÖ¶D…Q@ÇF (0^²û›ïÆè˾]Ø_±J >œÐ@Æ(¤Y“ÿ´e¨VedÅÈT§@ÜÅFã·T4u¦rB¸ˆQ!ªY'2'ïhðQ2ÊûdÝ«"ÚóÑ=ß*‡X]ìJ>—ümèkÇ–Ø¡u¾]‰±ü½ ¿@ö’/9¤!:ïÿ1r†«qAv✃ˆÀÁ‚!!8r‰Iyÿ·Êzjw¾îª[Å«óž~ësuW÷tÞëO¶¤¦¢ 2Œ©únAzÑ@TcÝœš:º¨„¥:ÚCÎ>wg÷5’ÎĈX§èÔu$:Ô$:⤷èmD¿}ôuþø¥œ ‹¿€E¯ = Xc4NÈexÎú©àH‡«ÑÁ©DMFÈHŒèá²D¬“Uœ–AŽFŠuVÄ>Üö w©#¡!í"Üëï9°ôG)ô÷Ç'Èñ7qâí±Žl„_Ѓah:ËF¸ºœ樔âȽtÏðÓl©ºg@G;£o )=±ÏðèžaÁ3¨©j:B=ˆQ¹ÉG„ÖJááòDQÝñ¸ô6mŒt@Ï9Æ­1‚tD2âpú•PǬI?7O0ÒN:blË|Ý-ïý²#¢@R>Â3hÏek|së¾®? û GžŠ¦óô¡«â‘E Pë÷w }˜g,îYýŠ©ó o²Qê蚎v%4 y/è®é¨3\0 ÎHê#Éh":öÞ*=ß÷úHù¡qº¦¤-‹³2ÚÒ&œæVO%tå}ÌèõÇ\ “ŒÆ9m hÕÑŠóWÉHOC$¹Œ^¼>j5ìâ½ éˆvœˆè×¹eÈ>ƒ¼rä#ȱ9ï/žeîHý>2gæðG³€â!`¹gé¨0 òtË’éˆ)üêžêÁ‡{é@ä±NÒáñmoƒDOµ1b61$½·³ ãÚ ) iD“‘wþ« ø1IéëZu´u¼­6ŠŽ7û¯‡±.w”cÂ{ב ŸMGÖ ªCªŒ3p~$÷M¥Õ‰Ñ6Ñ`:ÂÖ1òm±ÎtÞÙèètBä΃䠀¤÷€¶~É åÒªËlÄўׯt88 [ÜKÇð,W£5i³e™ c—BÊ3¾ubdéˆÖbÝÙ-Û rú ˆ>õ“.(mKÓú™ßòÒ‘3[¸³t_æP±mJLE>âË•¤#gÄD>ÒbÆÎ*$¯‰ó¬\Œ¼íM>"Ö1sBLÓK”øt ÙjãL¾|sÕÇA2]y>:}S‘/ FÖ©‘bwXúîéԯ ú{Z?¯•:Ê1Õ<ˆå˜O'†H2ò™tÄ\PËGX­?ÐÁ&¬=˜^Zô0¥Tb”¾Â3ЩóPçgäŸnBˆK‹!§j7µ[†ª£wÑžØáÃ4äÐIc!!2çmƒª6΀Žug¯ÈA3È´åSéHBj§4¤¥´d¤í»1:Uã[äÊÚ õk·ÝŸk6zŠÅ=¶rªŽ|äóÞw>Ð@˜?°c(JˆÄ¨":g81»8Ñ‘xÄ&d´ˆÒDD*(;Õ¹ƒÕSSP¢ŒjŒÑMH ±.ÇÌÔÙâž°–Œþ ËGuèÄ®¥ ,#€ð b"uèè}ÕÑJcêÇØX"LoÛªFHï®z5ÿÀ×øWNru,ú÷Žwl¡#?"‡¡ÎÇ2Ò½¾Úœ* é<…dÃÄk§¤3ùeéñÍP·Åºw% Rçƒkˆ–œ®f­šSÌîÎ JñX¬³I“:°5!è·6ÆðÖÁѵöˆGÝÓ=7 ’íív[®ÿ³Ûr¡WÇPPŒ©ö|¤ØF 2FÆG2â¯#F¥bŠ¢ô¶§2*g{wê1ØâÞGB‘΃Í=æüð×ê¿Ô©¢×ª£y„4…4ùÂ2úÉŒbk¢†º¨`“Q*H¯Eoª©¨‡: Þ…„–ðxMo3úõ+oï}rBè¨Ošìˆ´ÎÆQ uxoKH¸o ­Ã¶ž× ±ÜÐpž–!v–7@Z°Ú¤¡jèD© î í’–À4D$%Áªå#J£§!oY KD(aê@$Á(u$©Ù7ùPR-•YZÆ.Œ,ÔݼDFãJKA(ÿGØ( )ÑqÞMœ’Q›šcµ•†Ar¶ƒm]cÕ_Ã@´¼¡êÒiº†ûÍüg´»Ø_îþ§Š˜õ¦é}'ÇPEši§‹ˆuèH‰Úÿ2Å…ó%Üøú{2Š3¦Œ0uÔ¯8ß­´C_ÜËH‡Š*£œ±kCv ’g?÷¼FȈå£Èb1J§0^AË›wòT)Iþbeî%Õ~µlU¢»º£M!ÊúUŽ!ëWy:9†Êˆ„tÊŒ”â…àÚž/b´ {Cô9yüd¡e~ŠŸ#Ò•dÝS5B¦(UBzIMâUu"¶Âò2ABÎB”[éz¨Ô¯7t„³k‰®]ï´æ•‘ˆë‚ZùJm$Fõ–Œœ‘Bœ~‚œ<7½f‚ŒÏV‡ŽHJ^1é—¦£6øØÃùààÈv+îÂÕqq*ÝÔÝyG¬ó:öW»ê%&ž'®G×nõÉ:°¡#ᑞJgh›QÆ—X%RñxNJºŽÚ¦„êטb°Å=Žöèx€Èü0g~þšŒ°v¦³›5’ABÀ„ú‘—Ñ÷9ÑaÙè~f£;ú©ÎH?â£÷®" síQJÏ{ñœ´Ùïã T÷ qÿ0µQƺ5^ÐM-j¶ ž‹{9?,DÃyè^§ŠµCH ’û&9^BEnêôcu+ª!½kETín Ù-q­Hr)Aè ¦ÈG̦¢(R˽ãµQî¿jU¢”¯ÎH§b¿Í€£$0 P㛫‰ó:U!:S!£Æ7G CA‹¥¢ér±1…Äc:šáÎÅùùœ7§¢eê×(¥s6uÂÔ!£êòîèþûþàzo0ÙÓÉÒY2ª­ºŒu’N#¤ž˜(×m·òØ”‡ŸRb*…&§3"õûãŠèV¡ù9¥žr¶—»•d#5ëLGå¶“z%M@BKž¦;ÑñN4 k.(êpuÔŽ )}AHtðô.ˆŒQƒÔ‹#µ6Z¦m˜ƒ´ê`äÙH2‚‘Õ±ÔH(‰xÇyþ<@¨!âšÁˆEXg„†*%ñAEFd‚ÌH\u~©J‚Ü=ÿ±wö-ŽÂ@Ÿ˜Û€A–ƒ‚° !µV“|ÿou“w=·×½Y82¬à$ÏÌüÈSºÅLmCëòF–'úï·Nñ¨¼£ªÄ‘•(•(JŠG‚1²¼Î– Œ´ó®ßµ¨dNÁ<= »íÆDFñir]ƒ|…Äœ+6­‘äPž´;ðei†¤}V%é¨ç~ßjbFöY”‰Ø’ˆz% ëëq fhþ8YÏê´×˓뛛1c €)wà7áB©6 'õl8“¸Ò¢`pUxïV37ôŒj«lî¾ À ×ÄJ¨YÀCëUd’Û–$õÀ1•2+‘„GEý¶yp&|D-ä‹£·lê•ÐË‘<Ù#‚‹š$?³G½’½é-9æz¢Þ­\yÑ»ÓâjÛ«Õ^é«âÇ¥gD«xH¢ߎ‰3Èyò¾Û‚ˆDOHâöºïRçW¡ç·ÃxöU;B;ÄÜ2‚+ÊËܽ_ul”X¥C-ÁKUêì};˜Vß0ü¡GÊfì¼hð>úݸšQT,†<«FIBY‚`’I¦-É+S¯ÇÄŽúAÔ&íj‹ßÌâÙÿfÀþTèÑÏ“¾½šê¾œ‚G’Mzò ô¾üÓõÊíu¨| UT{,T(¡ W|«¿y$=Iµ&™Zí†ë®×¡rC!ƒ¤)AÈ*Í©–¹”ªL®G$:ŸÉµ™ÕÉö/Šßu‡òäd`p5Z¶é?5Fòhi Œ LЂœ4£¶÷‚üt™kr«ìPªdP¡Xˆ©äVð2|Œ’I¤1‘ÄknÝ…P;¦!g %È fàAêÑiDRDaÂPbAÚ,×C’+$FTõdfNøì‹Òoœ} ONøÙ|o’§Ï&F¿å¿ )Ï‚ÊóºÅ£Å£âQ‰âQ‰âQñ¨Dñ¨xô›}3êmUW¢ð•˜±Ù¨[U#P«DQPª ªQ¢ Ïûýÿÿê2cÈ ´´Üž>Ô>}]ËËÂÉŽ²Ü¿×¯ŸžÑùì~§ð'ú§òÓWfTUî{üÍ­ëOþ—þþäèçòŸªÅ¯#"âß dí†ÜÝ9 žÕ×õ$§Où×ëú³§êAþÁ`”ÖÜûq÷ò²{z× ßn'9¹³ê5Ç*þÊ‹m¥|™¿Sÿi^(ÿÇòO͈êj“ fEå(v¨òø2 §þºñÜfÅÛˆ¾>=ýäk‘Ì-ëÝü7êïÆó#s`þ³ù•{ÿ·ÑÑ¥@ô Ý^‡!.…@#)b.ú¤!­Þ ù3J‚Døn±¿pÖ‚øßù«Y.œ¢üÞßÂçWì/úxFôþˆÝŒd•Í¥oq~äôB8 ¸Èc½øCÏŸúøþ²?`2Ÿ_ü­òŸÍ/’»€y͈.2¢4/«j¿Éx ½“„óâXU¥çù«>+ާÓ!O…߯øý…onûSÄKá²ÉeþOàóU§²åQ~ñoò³ÿæWŽÌ;ÿhFõs‚ˆÅ»Wñ¶á‰îºÀ€W¹Û㮀PŸôT?{=}ÏÿÜqóeÇþ¬§éüæó“œ?ôôψNw~îõ™ê²÷{DªB~+ @ú®›¬,n•¿€rïŸ4úšyÿd¾Ð_ùµ0Küû‡ùêÙüït{ÆΟ wzþñë(O µêÝ뫟áEo£ (¯èúÛà6Ûrr»ìÄCžbøß„Þ_9ÕÛ‡ÊÝÁ.ðw±__(ÿgò'>cÿhFç‘Ç*G UTY„‡k—¡áÛ-XH_©J¡ã¢‡†‹¾nôé©Ïé=Ì:„´R>篘q†ŠÄ‚3ì‰h/Ô­PÉÐó2ä[@Ï ð{§<ÇÖXïX¿Üßm-û#ëùoÅßÁFþ/]~ wôÃùÁž¡äCŸ/zÖ5èÀGŒÈ!YXvvˆÀÙÅìãe#<‘E)×géÎõ—ǃøõ÷¢yr¼sôþ†9ß;õ×ü8“¿l¹=Åù] ¯Y¯|ÝùsŽ ßίùüù Üõý"â†Î`À¤À“¼>‚¾g`wÉÁÚ¤ááo!ÏÝ9DÖó¾Þ$á <ý±åVôeäŸ(oˆrÕ“ðÔÄùä'Éoì]o+¢A~õ“ôpëå;ýwë[¯ÿn~ÕyÂç7œÑ9E´oT¥KY¤@~ï)Âù)ƒìXZ´¹ø«<óú,ÉÊÒ iô=W}ÕðÎ?ðL¸ø,'ÍÓ¾"ú½¦Ï/m~ÖïSæw=rÎù.á{çTô±á©éçÞíxÿßÏ õ*õç|Ñç 9€Uý=’+則~XR ðÓߣs¥m0?ìýN^€ 'Rލþ€Â·ª/˜×¢W¾ 82=y`®þšŸyœßó€¼Yÿ¡á|È¡?uú›cN2$°ÌWÊOíù÷ôÑŒª4A,®teYie‹g±h9€ò,ÈBþ§áÏWº0ß[”´ ózL@ôNôâ~Vò‹]‰<÷zõ·º>5Œí¯oÃüé|þCëv½üÊ­®èá¹áäóóµjþÃóEÀhFòŽ"Á§ªæ5®¹ÜH…?_ý¿²çpr€–×åwÿQ½òNïÜ-âÄþœÏ9¯å‹óÓµøSûïº)㭻~~áþ|Šdìsoºnxû´+ËícŠ(o!u;n…Û}=àÈ|/zˆô,1 ?ìDûwœý ŒqÄÇ­äc!ö0ŸÌ/gl™SÇsåh™SOoØÿ(þ€vÅüÄ<1rþGÖƒψ.9"t¯ˆiˆËÑ(çË8 2BnÀžtÌC9‘Êé%úŽúõSÑ+—+¹ÿ™rZšßðoœß ò½†ùsrø~þ ŸäïùÇÏ:¢ë.*úP¤ù%Xƒn»?Ýæ²"ȯ!½1¬gnYq°ò¯}ÿŒ÷ÐéSÄÿ€³þ;ü8— `ÿHÆsåãü¦ó·ðýüŚ߀‘|ñŒ‘{ß>ȘҿÛs½Oý¨ 5ÜrÌôïîì¶‹ ú—,àiÌ·™ƒð½ê½¬ÏùÑz®#îøËƒá|ªü9?ÌæïôåX~áÆók>ÕVÏßùƒ÷Ÿøî]«r¿?V7ÖT…rw};2—Í+õ /'¹c.zRÿðRýÓ§‰|æ¯4ÿ—ö'þo !·r~âõŸý¤\á7ù&¸ 8 ¹SN!wÊÇýç9ø»ò+õ§øúùÝôŒT:s…œÆ9Mj—ù/_š“®™?fÊko‚Ö4ûýùiyo‚~ÃÑý;ÎᅫèZÑ/ÈÿûûGïÿt¿éý“zúüËgDËû5ëóÓÇú¥ùéwç_Þ?ªÝwúGßçîSý ZП¢eþ#^-ÿ|)œQÜšïßÌ÷wbý¬?-è÷ŒrŠýç󚟖æg¾]-Ìë3ûÏ÷ж“•;à›–Oõk„ãd¿ç”g —ê#ÔþSÌ?èÿœfòk>õáˆ8ÍOahÕü4’o´ôìû9]?&4¡®³ý#¯çŸ¸¿#z¹,xÿX­~Ö?™äÚüSþ¶Ë‡˜¾Œè {Ë“ùÙC÷¿n~dûV¿ï%²=´3ý™‰~ö—åŽ9;§÷WÇiÀaºÿ£ùS˜Ì/Ù½<ÁXï§ç¿¹„É—üèýó‹[9¿ñŸéñCh/ýœìïHFû74ìç”mÿÈ`ÿcç°“«>êÿ&úOWÑgÊús«/?Ì/ý#DïOíO'Ö+óxÿvýüžŸªCÜ?Ò~Œ ú18ìׄý™·ú;±þïÜ1—ÚA¨W.ëôôîæú?êï¼ÞâlÿgóËckÂ_Ö_1?õò¹î|ÇúGfWk?Gû7Úßéõ“fû5q'亽Œö{t}Ög}=ú9±>Ìg•Gý£ëxþúΟM‚‘¿®¿zþÊ`ÒpÕ›øu´£ýîÇôûG. 9Ýâ~MØßqWÕ{Dí7Åý—'=Îþ†õêßïÿÔªü9Ÿø³ý#ìû›~~6ìå·ØñíÃÿ)¿ë8ŸßpFôžâ}ì[~LôÁ®_´í×€è%úþŽQÎþØré7½Ò[Š}®ý'#zÓãXõ£fü•Çý#åqþ†#¶<‹òɈpÝüªwÊçÎhØBäþÐx‡ù|ÿÈ sD y’‹¼f÷“1X?iø#ˆ^Ž€¹ä#ÏzÞû?ˆQ~ÕK~3Âïû{=‘ç?®›Ò¿?#íÏO!úC€¾D |¢¤'áIOöw’Ø1ÞèÑûo±Ï±ôØ¿ô‘Q> d^Ç©~ÔD~]Ÿh‡Ð÷?t#BÎO«æ×óÙÚ‰þmñ•\[NIٻĸ?#B¿…±þµXO 8ûŸ¨kÑÅý›°ÿ„èyOŸ¨žµN¹êÉ‘óüØq×ËçGd}¾£ ý‡ý)¢CÿœOûC«çá^ïóÇfT‘lÁWS4C¿_d™GýpÃý%'{ÄŽ“?Cêú5qåÁáïBÆ4èÿéG©^y—Àš¹þ; ¸Îˆó# ?` GsŽ]þãšùÛ{,<ŸCô¬ëú5&èߘ°ßcFú5=Îzá†9oèѳӳ¿Á!ï=ëçŸÏGº?'þëæ×õ£~Ô°7ñj0ɹaaÀÚ±þŒ1±á¦íYæäõm?IôÀü3zå˜ýs¸-àÚ?JFú?š¯áŒrû©|ÚOŠü¿›?ìñú]?Jü‡3bªýĶŸt×LÛþÐAL íçx='>µÜp¿È|Z¯ýái¼þ.ùÛõK9dÉï9ùþQÚõ§RXº?í…þëåwêÏÜç‹zEÂý ™þ ä7'œCF<Ñþ’öw>ÔSÀqsSý<óå(ù=7ñú>÷‡ö ÷§¼ç¿B~ŠüõüãÏ‚ÞRßÒþމú1¦ã‡”Ÿ÷~êoa¿h±ÞsÇœ·€Kxeµ¿C]¿(Ô[ÝßWó‰^ýWÍç3qÿ¨ë9"í!'ÏrÕ·ÜÝrü‚Þ¨¾\ȉóãÓ›s“z òã÷§þ«æ×|ÚÏëåIÛ:tý;èÏàh¿Gõz½õ|Þ]7 ß¿ñÜà"~»÷‹n¤ˆ—Ó-OÀh¿hùþÆüWÈOãù Æ3rÒ¯éš1IÛ¿9 ú; Sê•/Ôó¾ðcîôêqˆò9Îg–æsÏCÿUòÏæÌHû5ˆPúEÏ©íùM÷DÏbDðýž…zá(ód)Ϥ_dZn’‰|fA¾Yÿoç¿ óao´7!ý›¤íÇÔcý¢mfhø»S®ú­êÝ!]¨'¯Ç­êòìÞß©Ë(-Í7ï¿v~Gzþqÿ(ìßÜû;®ººé~Mõwʰ¿³TOÚú wm~&«æ›÷_?¿ðÿµw7« Ã@€W‚AB.@ 5Ž+í¾ÿ[u­Êùi¹Ä%‡ìƒ5ÚÓ‡Œožnƒà¿-Œ`„ÀŒÁ(8nÅhÊ#L¢Ušë¥¹a}Î]ºoÉÉý—ŒºAdX×£ãõjMö¦û*Ý(c7UTW飯Å8=°Od#Õ´uÝ¡·µ,O Œ ‹°ù}Ž6‘£W ‰‰d6zoE=GkÑœm«7“¯;èPâAŒ ‘`ƒ\L¹ÚF·ÎÐÍ•ÙóÙÁ»®ÿc”k¯F\5Ô‰/Ãëcæ‹QiËÏ7‚Qò9û[¾k¶{ví]§•IeW5jñÖ†WcÞÓ4iKXÄF%¥êï¿6ÆÅŸoN^ÂÊ~NF­hÃÁØ`³NêŽÜëú2F0Òø£¼x`tvV^70B`„ÀFŒÁò ž@s_Û]qIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/buttonbox-gnomelayout-horizontal.png0000644000076500000240000001013412536324502026205 0ustar philstaff00000000000000‰PNG  IHDRè1ÆÉ#IDATxÚíœíSSWÇïSÀ?@h}aéPÛªµ»«‹£Uw¨VQy(J©XD ÅÐ,Š<#!‘dBˆ‘‰ÂC&‚<©uìv:ÙÙÙ™î9÷æ97—$÷^’ïçE'9÷Ü“ó=ç÷ðmmËü ò08`Ü0îÀ¸`Ü0îÀ¸`Ü0îÀ¸’fÜ×ÒH ÄA2$C2$CòVqhLŒ-íÏéH?$Pâ ’!’!yK84&––vòäÉ?Ò¢‹÷˜2P2™ìÚQâ ’!’!yK8´Í;w@ÿKG‰:H “A‰ƒdH†dH†ä­âÐb5îÿMG„Ã"£$áÆ%’!’!’Sß¡ÅjÜÿ“އEFI Ã;J$C2$C2$§¾C‹Õ¸ÿ;‹Œ’ @†w”8H†dH†dHN}‡«qÿ= üê´ŒXœkòý€pXüžŽÀ¸€|‡ädñÒýxÄèü·ÌÓð×,##ε_Ø ÉÒ÷ßIJÑ]Z\zÛøÙ~¡x_Eï¬À+µ ÃTŒþ&Âa‘ð²O»+ŠŠ‹‹ž¸Ð8¶ðóo)Œ; çûÊX[ñ¾â¶±±Õ/A~yt»bß6†ãhm÷Šü%.Ù’ÙV1ÚÛXQú§mGÇ6’VÕý=ëD­îkŒUû«XI±FÔ³hת¨mÝzza_éí ¹›ÓÆ(=šÑ•· 9Ѩ––øÒYòÀŽË¨üü´{ß¾RûÛõ2iqËñU0‰»èæ¸Ú°ÙVc 0½Ç0;‚G"_Ù!11p½„ldǽÌ%.é’ÉJzŸ·y/–B*SU'Ìõœå¶¡QÏÇIWÛÖ°*i‹—ìíYçjΗpWΜðÞæDë§ä.WåÎÃÔÔ˜–ä—{T‹',/OgÉ;.£òb¢•Ì3Dš–´¸åø*˜ÄÆýXž×þ•10°nÜË„Ž±õç믢¿Â3GÂa‘ð²cõDÙÞ1v“öŽ¿‘ëújÄ#,`)*tæØW;È×e‘ @†÷Í“gánŽ·þîè_ø*$‡×ëÉÔˆÚ}~Ä£ÍKÜz=[@=²–¸”üŠ\JZU1õ=Ùâé¦Ú‚rÊç|ã?}œèÔ¨Ê8uùÇ[æÇͤ«åÔÖ–ãLÎirtÞ&›—’ÓÈ‚{–o„^h;Dµµ6¬UMÓipýnz¸i¯?DÊTî céma'—wº¢ã‡i÷è–[rìQuÏ®ðZ”ˆ¼H<%ìøŒŠµ%'Ÿ<"c@¼iI§[ޱ‚IlÜ_ŠÅ£$Gp¨R­VwRÔê[•Ù ³§RÏ>µNRÚfg”‡&»gv{%ß;ÁÓ¸‡=•CÊý@å!ò*ÓhñˆÜ“pX$¼¬QIöš?°°æqè/Òm0.Óqm%9‚=F‡]‹Æ-øÑrH똵Œ³Ü <3—íÊd©l¥Z«7Úפ– @†÷ÍRÇ~Œäß1õË—Z¬˜ÏíÜð[»hbêívË€zÀ±öÒc UìX£V¯µ8<\)Ë®uÙÇz,‡¥çX6»ÔZP‰Ëÿ¼G?p‘&û?Ñw³l¹AfìQêå,q)$ÙcT’yzOÒªºö"©Ä,/_ê鿆eÙWí°ÜèѪ©Ðü‹ZÁqr.J½ÁFzºö@®éõÈ[âRH2»H ÙJ,ÕOŽª>Ù]Êcr…\¹.|àá¶MLm_®z¿Æ2>©:Iºùx¡—._:™¼Fyøî–{Ÿ†kŒÒ° ‚›;ËãÞz.lì?¤coœ]Já[Š{1´­sÓd“_T Ú•`‹–‰§³ä—Q $ ï„(1 Ò´¤Í-Ç^Á$6îÏÅâªÎcò.߸¿›ñޏîÓ¿êò}WôW¸Ï:ï“EúîîjÈ= ‡EÂËêªéîî/’]÷“OLÖß­ôÇtï“Ï'Ô¼¯xœæjú˜}+ÊÌû—}ËÊ € 7îBióDErïü7êÎζ¶¶Nuçyš¢y=Îç.­]':'"kWÖùþÈR溙þ“:o/ê¸Òç «Þâ ߈“-•'Ú¬²—¸”‘ì}k”¼•Kõ“¡ª»èÖòN´©éQ³øîòGì XÙmÙÕ¾}-ÖÑ™Õ®ÍÆ]¾³  eå‘¿|ô9‰,г|’¿ùÈ{ÝÏÃö­aí® ¹œE]ñ2£»}ý=d© ÀwOž70d“gTó Ù•H‹–‰§³ä—Qa"ŠæÀ¢MKzÜr\Lbã¾$–™ª\&·\˜×ìbü#öÿ³õ~«ÆâpØ }]Û|è+3J2›Ù¥¼cpÌØšKrI”uÙÅîI8,^v¸ŠìuWß ýl¿ó͈’÷Ò’†Ž3%wl‡Í¤éèv/Íw)«:†-Ž{ógäáAƒ›¾Å7“,EIÙgrÌÌK.€ 7îB­$…—&(íf4U4] ¾Ú•[Õ5l·™î´vXè´ùFÚ*>ë³9æÝ¡ÕÏm¢‰¾ë¬†ä¶Es6—N3̇WÈà€{—aÊ;îtuPºúLnyJ\ªHfÙb2išKÈ/6k &ƒeæíVu·…þAyIH¿1dÀA·Me,ï°9f ]ô¿„;ØlZÏe²ªüú¾ØÅ^é.ÍL2·Ûª.axXs§ù3zGLI«É÷Ô¿g¡†õþ­»ÍÐ×ÑÚgóö÷³Í&›¡±„>=Û)†HÃwš¹ƒ¨Ò8ä“T †Û•(%,/OgÉ;£²43L*—‹RÞ <1 Ú´¤Ã-ÇYÁ$6î±8+I¾4p îg˜ýµZï×'Ú²?™¨Ô:C_qÖ’§Y¹¹þ ÝDoÉ# /«­¥Ê´.îÛ‚ê VÖ=AT¨.}¹¿Öéq5 ”ÝñWÄL2¦-Éâ¾_rJ-€ 7îÑ“æQY“uF6x†$ãÎJš‰OKr¹:È&þĽJîû™{OªŸëQ÷‡Y¾éYG»¹"+ä[C]¡¿ÉÖÌr7)‰–¸”‘LgÝË Õ|ÏùV«º¶’ð£Æ…ÁÁJ²Û¬öG ìÓúš×Î3íÎÀ[|㤓åVó}Ѐ àxGàxÀ#ðè£y´š‰J¦Gx»?g¢†‡‡“ã6è»ï¾û¿L~_Û±)±GœAÿ›‰ZXXÀï.iýO&*Éýw&*ÉýW&*Éýg&*Éý‘HËÝeÇʺ'–ÿøÈzËX[j+ÿt bb=Ak’=JÔõºësDôy×ëþsï;û/ê.£W|qÅ|q:j_I°Q’=z_‡Ùá“å¶.¾YÃz³âÚÚRL-¶¾ÖŒvË&q”7¸sÍÝŒOb[Jpê${ô.®ME•vü\ƒM*mul.„\õ§äa÷P©cEº|zž¯Õ¦¹¾ŽSòSMšÖ3aÿ«4.ò¬ÖRþ^t¦Ã%zž£ !ùÓPüS¿K²GñÄœÆç=­ÝØð|ONþ=ÕWúR¦ÒšÆ©×ê=«Å Z,W¹ggõªr¼:0‹«lËêD¹JoÖ+Ëeø²ÅɲŒžtœn1šN+z Ö¦Â™ÙøJ²GëÒš©Å§os,ãkWÛWøºÖ4‡¯ƒ&R?÷Ïia³xÑz›»LSSS.S¾¾2‚wÞÎÃÕ‡á¦_M…åÕšð•:_Xã‰n˜g ®ÇW’=’þË3Ûy’~µó KJJò¸ï»¿¸º°à?PµaVاÈK&CyÍ–.7`/n>áŸó„xD^F×Ű4àÞ'ïO²GKRz©ÍBèðå¿k{{»»»{µ½—?Ãï3wÀ»ä7Õ㫳½SÂvñâ()^õGoí¯ÏE¹×MáW £‡ñƒêM\=ëòð’´¬xÃÜÑ…¥øJ²G! ©°%†ùÍÊŒ¡¿á-–PÈy‘|.rêúÆ·½¿«ÇIÚâ?ë28=Æ2Ôgpãꌪ TýÏŒ»]‘ƒPVƒ›ç[È—áÛ!·g>{¢§ÝnhWàG´,v‹s&$©${ÄŠëYUʺ ÙR¼€?Z‡”^|ùò1yka?öÓuñ¢±êÐæ÷›Òˆïö6âJVN¤W©{Æ=`ê‘’«\xôr뉼rP9¼¬”’ìÑÂ4Í0Ì´Ï¿¢Vùâô̓èàÍ‘…¿°*hÝZÛ…’éÑüGЋjü9¸¤ûpH²Gþ ßpçÎaç‡{@’=šÉD%Ù£W™¨${4‰JšGœM/2QÛ1h»q~gžðûJæïi3ò÷kðû~`"À#ð<À#`´€ÑF -`´€ÑF -`´’ÅhÅê•®¶¬«¬¬¬âluËDàm<²ê•îØ±JæmJq®3Z"šTE}sC}Cq”ã·â@S¯§ºpïäÊδk~™{·Ë SËh‰i¢¹¡¢ ÊV1=Å&ÝgóXñÞ¼¢]·ò ‹µö~wJ)£% nq Tè)¡š5ÒÕ„9«¢* WZqud£Sáu±Übh=ù5ÞjÅÕy™]ÚÚù SÉh‰Ë¦:‚\Xe=æ«„¶:n[$u£RŽÐ‘^›‡1ßÃWå÷ܪÊÈJ6•t‹«÷œ cÓØ<‹‹Œê8‡{Í6fuç'L£%%ëí›P2â[¦¨••TKÔ®)¬‘¿àëBuPHU‰6pÅBõ¯Ñp¨q¹Ðúëúî”2FKR–†BüEÖL>ÿ‰¾?Ý«EŠZYJ¢x,YÞÉŸBªJ´ ,b(LÈb}lFKZ¦zUPÊ?Œ¯PÖß\„‹2xè¬vK3e·r ¥%ÚÀ7m¡®F¯óØ•RÄhÅÑX]BC”‘bú$.)z‚¡Ô‘¢¥ßíñ¸í†ž¾1\œ«C(Ç@›E¸âg?v9·e¨§kÈM·%l—jÈî™™ßÅ SÃhÅ“±±¡b#‡`±ÍÂ`Ué¦XÖ«¹öÅæ·Sq#᱌JìÑã0O%Ò€‹÷«Š5#­Y\ášwç'L#FK\¾(JË7r¡ƒ§%8ù§§ckb´WF1Z/n|úɧ_ý)þ(|rÉ•Zlß0Zöo«Äϸ¬2ý+Õ0ZÀh£Œ0ZÀh£À#ð<€ÑF -`´€ÑF -`´€ÑF+]s´~{ö öUѨ[†­…ò‘B­œšÒ·)HbÕ sÚ0Zi”£%h+ÂǹÅBŽ–ô¡VZñ¡äõAÈÑ’:Ó¢ó.î?¢2CŽ–Ä‘¬]ÄÑ¯Úæ GKT“÷+ñ.'ÙUÈÑ“—nu¶Û•FŒVzåhíßÒbMO_Qß=9ZQOö?.FÑʉÇnAŽähAŽäh£Œ0ZÀh£Œ0ZÀD€GàxÀh£Œ0ZÀh£Œ0Z™Íhý¾ê÷®þž¦9Z‚à,UÛØm]¬V«|°þ¡)­uë„j­Ëiš£κ¬V«.+8f ]Ö‡aª©®oÐçm+ú‡â×v|ˆ{hûÿv˜*F+&8‹0RL‡¾v¯Ie­‰YÑIYÒ5ôz}ýÆ]D.6Ms´„ÁY|…ðTM´ô¯ŸÏd—v„S³|†‘%`º¶&eá’oŒVáÎ* \‘­NµvÐæš1aîVé™S„òzLÓ-œu$j G+Cè¸ÊFWåH¦äõ?àr¹Ñ3ë¶éõ¶Y®W$)kcÃyïêÕ{z·Çcl! Ø]ç"Ýê85äø½½Ù0“ç"¥Öæq›9”Ki¤iŽ–õ6IlŠš0Hó¯(X…Wóì6·øðáŒÔCŽ`tglRVxqnÎçú§Œ§¿èƒJF8kÙñÞëÊH¸uٚǷ¥cŽVlªËYƒ¯è*ö¨!¼8k©.‘qßÕšÉH¾VlRÖóÁfŽûÊË#ÿ¿ùd6¼U¿wc4Êŵ¥cŽÖfpYýýË0¯EWsQV½Ãb½ŽzEnMÊZ0‘¯s8–õ0ÏqEmå'ìVîõQÒÈ%mÞ4ÍÑ«#o³®Ï`3ô·KÁ!E—_ÍAYu4(k¾OU×3æôÌ0í„©:a nÆgE%eÍp)çb»ÝmiQÕ‹=öè­F‘-}õ·Ð]Á“¦9Z48K€G_ÐŒ¿¬B9ÜbýjAJVUçxdNaLR–_ÃW)®Ñ .Tõø¥`«0³UNÓB•¸ëÚã—™£å§þ¬CN¯§Æîœoí iXÙ5s|㬠š*Î>ù™Ž¹¸uG“e7…Þ½suœAÙçÃé[ïÞÇšÐæÄý6ë0L^]•#tܹ±a&aÈJÈYÝ0j[HŒ–üª1n]Žd*–dµÔ®^.¬‹U‘íï.îêlÖ¡€Ñ¢•@V²K@×9×r¸OMC²æâÕ#ˆ×\mÞˆ—]mhÛDV:Î:Äz¡«ä¢±J° 9(«ä »ºÙZ]}r3ür;õšïðFσdûÊ«ûvÖ! ¼"øÔÙn-‰ØêîÕþãú—4DËá¬x"k¡‰tì*~Ýϳ[d£¬\üŸ/ÿáXZÚ·³ƒN’>§ ÑW¼ì'(Nåá®5=nÏŒ¥„&žh·‡âÕ…\VhèGŽÆ*0Ì„v­4˜uHh© [ ªøXYŒ?÷Ÿèê¡/øì¬Cî{7ï«oᲞÝÏ"&5ì”îŒÖ Éjð-,øh VÂú1¯`[-¾LÎѬþ¡KSÛ®GËu ;tðÆ‹Ìf´Ü#÷ïtOo»°eï¼sçÉ Œ0ZÀh£Œ0ZÀh£LxGàxŒ0ZÀh£Œ0ZÀh£•fŒV&Ì:ÜøÃu]eYå&ÔÕ[Æ:ØR[ù§ëéÈhmÜá–a…+øÆÏÛ&“ðñŠ™ŸyÔ¾ œ+åŒÖÆ&VøF ÜŠÎÎY|ó~ÍÝŒÏ`[J?Fkûãc††:NeŸŠÜtÔ”†ÝÎ.­q„±¸¹‡:M ÇÄe×NK$ähBHþ4”vŒÖÆÆ +diÂ7”öËN8=çÀiÝŠ CäçÊ¿0믌ëÄQX› ÷™Ù4c´v4î0fX!™iÈemM·é½AžðºÍo¤]·}´îPòk$(~:91ÏL/Fkgãc†n¾¤ý2Í‹Enañù}>;‹öð)[±]Ñ“ðQ¤V?£µÃq‡1à ¹™†£4ë:Iå3-ð(7Ñ+ìÙ ìòKWV|WîèB:1Z;w¸eXáL]Ê©1l+,¸hpã? I×·–ùèÂkà¦!:kÆi·Úø‰í‹ÝâœIFk7㣇z•øý_{WøL÷Š…²*tϸQˆQ=ã$°‹’(”÷QNô¤ÃGÞýÃh‰L6Œ7¬fáÕ…/ÈÑ‚-ÈÑF -`´€ÑF -`´€‰À#ð<€ÑF -`´€ÑF -`´€ÑÊLFë·gjñRE£n­…ò‘B­œšÒ·)uà ŒV­‘ð®ü[,0ZÒZ!#åõA`´¤´è¼‹;ލÌÀhIÆÚE¼ýªm-Q kò>‰Ö:Ù0È®£%ÆhyGéãº]i—£•.Œw/B5=ý}=D}Cö 0ZQò?޵H¾4×¼,0ZÀh£Œ0ZÀh£Œ0ZÀh£LxG ð<À#ð<@àxGàxG ð<À#ð<@àxGàxG ð<À#ð<À#PR<‚\¿ÄA®_ƒ ×/ ×rý ×rý ×/sýDõJW[VUVVVq¶ºe"ðö´QêsýÄ5©>Šúæ†ú†â(û·©¨ ´k~™{·§MRžë'¡ °W4A“ø˜ž¿b“n ÒöÖÖ–bRúÄ3ý¢;'nå“«kï÷¢TçúÅÍû+â&¡†ž’œ«&75¤« üUi¸ÒŠÏpžÏ„ní\qµF2޲K[C»=[Šsý$eSAH®¬²óU’ÍwܶHêF%6ãH¯ÍØïá«ò{n\Ôÿ ×FϬۦ×Ûf¹D:Õq..Ðh¶ÑÜ¿])¥¹~qd½]"H¶*ñ-s‰}¤Z¢vMaü_ªƒëëÏ‘w®rlFöItÒh¿Bë¯ë{Q*sýâ‰fðÉ4“Ï"ïµP÷Šfö±¡s2™,ïäO$¦oÖR]"ãŠÕšÉ8ñǯnS)Ìõ‹«pßÂÒ’ø0‰Xû›‹&ö‘Ôº³ZÑ[X¯£ž,Ó»$:G¯óÛîA©Ëõ‹/aÓÿ#qIÑ … ¤Ž-ýnÇm7ôôCó}ªºž1§g†i'}',4–O¬oEUCvÏÌü®Ï–²\¿2Ò >c8ƒ/ ¹p¿·*ÝËz5×¾Øü.*nô²~µ PÕ9©Ó‰kFE8þ/Axß¾Éõ“”ok⟟V|þĸ76-rý ×rý ×rý ×o;6A®ß¶þrýrý@àxGà0ZÀh£Œ0ZÀh£Œ0ZÉÔï^ç¸Ó»šùŒ–ä€Õ·LuÙ±ÚÁÙ8·4’)~ÖÌg´x­¨  vAÁ~¡|a%ö–üø {Uº0Z¼–šñÎ[]³Ñé¨6i+æIªkŸ3ZΪIŽäM‚™¬¯t:êS~äêÓUo˜Þ¼%ÜÀÍ^Õ´ž e­Ò¸ö|¤´a´x‘«¨\©Õj{‰´Ú{JBG„#WËUîÙY½Š f˜]ån‘‡øÙ«å*½Y¯,'üM‹“Ýã™Ò…ÑÚ°ZH'F”Gr#WéŒÕs]¦©©)—© __™Îdå®Ñ¹‡<¸e›ñKûŸÑаÊO¥ƒU-ä}nŽ\pX(¯ÙˆÑ=®•}¹7­Ø«|aô0ŠŒ\åf¬ú¥oá®M<\Eî=\oÚã™Ò…ÑŠÌcO%š7 H…ÑúY—Áéñ0–¡>ƒ{>ú–µ TýÏŒ»L*Íêcöz¦ta´"œ•pxjdTjq£1üò¥±êÐæ÷›Òè¾ÅÛˆW³r"S\•ºg{>Ò~a´Ä8,1èjúæAtðæH˜ËòÃìU½¨ÆžK:`´âÈ7Üy§sØ Œ0ZÀh£Œ0ZÀh£LxGà<À#ð<Ú‡úL“S:žo5IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/buttonbox-kdelayout-horizontal.png0000644000076500000240000000545612536324502025656 0ustar philstaff00000000000000‰PNG  IHDRè0 DÇl pHYs  šœ àIDATxÚí¯šª\G÷Ã-pt:Õh:F#™L& …b±P(ƒ…` ná|uPÁAGÔ9ßZiž-#ûÝ› ª€Gâˆ;âˆ; îˆ;  îðqÿûBþüùóÞ ŒÉ<¿¿O›³„p(ä_ó1Ú9JÜ_6p•æ»&Äàeâþëòüis…ü«sޏ#îˆ;î‚é…Œ¸#á îˆ;⎸ î⎸#îˆ;⎠bº„ƒ¸#îˆ; îB8ˆ;åùÛĽÞ&ëd[ á|p8cí·r]l×ë´ü‹{Îíù*ûJ¨2×¶¼h7ü¥/ÉÛ<©u–¡ëØŽcÛ¶í8Þ"Ú׈;À¿)îE²´-{™w~ÙÕTõ8U¶‰onNR>î.ï¤NWže¨ÅñÃâÕ<÷ÖË“Ýò“jg¬³Ý'l¶íÌÜ`çÕôf<‰'iSN¨šÛ•kÍÃòcÅ=0døI·H,Éì¦\Z`Þ>à¾Ò LÉš ß1Û6>CÝëd,×;ÄàcĽZÚ’${YÝ7†—K[ö"}Æ´¿9 •õA|{ …oj„i–Å‹™$óÜÌ&dªyùMõ2i8U;cía ßsÃ¥‰½)žÝIoÇ“’™”å|œjf Gö²|F{˜FÜ/j´ê÷ª*«ú›Fp~Ì}¥imM%^þÍ×ÖUu}ª‹#«À®2‰¸¼MÜ÷ÑQÎÌxßôŒì_ƒxÿ>|üˆIâôaÝTÙåÜŸQ}D ùÎ’L¿˜6[‰½0r^~S½LÎäµ3:ŸO÷£°5MÓ$-ɘG7šv=®Áµôªª.Ž©³Åcâ~§j~_ÔczúdâÞ©†¦NÏĽHææ¡áø‡+‰n#(—Žéábvh]n˜=Òާ[Ù’æ»zèÔÍ6öíX‹Ó§«#Ó…}ŠBÏj?ñãÁ=Ÿ×‹vwÕçÒÃâQ5È`bŸ$ôŠÁмü–zyM8ÓÔÎw ¦-+÷-Ãrã£iÖ±k³°zTØš¦išÜ3N¥wÖ¶ûm­§ÌëuàS ?Þ~Åâ¯ÚOÖe·^,×u.nË<]5³¥c8Ç÷¾Fôô‰Å]ŽEQ†aE+߬Cx»¹$'Øî÷ëÀ‘Œx__ˆû¢Xœ`¬}Ç´ÈÊ{KÓð7MSm7KSÒ¬½Ñwê:³%Ó‹ò}žÄqvØ£Ôsd¹[;’1[l’M–—ˆ;À»Å}7“4‹š&ŸKÒü0Ö»¹$A”ìvÙ:Zçus5†·3Egb2fq–çY<3Nsðq>2çq²ölIn>‰¸P MÓTÙR’$“ÒŸ8 ½b04/¿¥^^Î$µ3è]ƒé'gÛø¦d®Ûkˆ}lHó(X;WÖ¦lÎÚv¯­õ—yz^¸Éò<[8’¼ýyŒñ:Ù×¹+Éœ¯·»l½´®öS=Y5›& LíµV¯‹Žé铊»%É´N˜¦Žâ^¦¤ù*ÙívÛd%ÉÛâ˜Ò<>¶ÐËm6cJóP=íÕÖ|U~õÞ«SW©-Éò6Ûýy?¿Îdµ0eúé÷,àéâ^l|Iˬnšf»t$ùIÑ4M™ø:ˆÃ:åÙþ5ï”I É?ÎÛU¿ª ,É Úé![Ø’¹)Ÿ/îH‘® Iβ˜8þÄaIèƒþyù-õòšp¦¨áüÜJ?ˆYI²YÓ4‰oJNV?¾nݲñÌ£Fw>íµµþr¸º*Ë}8S÷@Ç5ï2½î)wo•¹C5┌ë鯸m•)Ó…:‘2iy-î_µø¸¦ 7ÞïbS’³84ÌþS7ûdy(|c¶Î«q™DÜÞ+îÕª½nZ¶mî1ÏÂú8†{› ·¹Ã;¾›.$#Êëãrjøå»é¬]Lž/îÈ6tÛÖë'ŸÈÄoæß^ƒlÞ\//g¢Ú›ŸþôöiW7¯¶ÎÕÓŒŠ»o/,Ï>²µ«RDž#I†i:»8v2 NkáÍN¯šqï9`\OŸZÜÞ*s±Ð÷/íßi·¡XË€»ÚA»’,3|êû,´$9áíLWï?BÜÞ îûØ,oGQ†Qy¶Ú»ö‡5­Ëå«‹1¼»PíK [’Ϫ;ÓÙmq?<YÝoTH‘’æaÿö÷§ÒŸxK®Å ^~K½LÎtµs;?Ã釿Ô.ä›–!¼Ž¶ÎRï~mI²倹žÙZ_™OÒ2+›¦Ù.ìžÅû«ž’ÇŽVÍ/qï;`\O¥¸Ÿ­šï\I²ÃdWûl'yÕ·ÇÝZ¬³¢ÌWsó¢)ÜyW‡3C’¿Ù÷ŸºÚ.ƒUºÛy2Óé–Po&ÛËÊÙ&/ªú¾€çŠ{ÚNÉÕ¥$9Ëì8†›Aœîóí:ŒvUs5†wfŠz;“d¹I^»Ä5%Ͳªéõݾ&ån»MVsÉ\%Ù6ÛÝõK.ŸHû¿’­ã(Š¢(Þlëi¹‘x) bÐ?/¿©^¦ gÚÚÊÏ`ú¹æµû³%gUÝ}  Li¶LÒ4M“xé’dŇ»FÝ­27lí¬Ì÷±+ÉÓ]Ù’dFy}™çbmJ²Üu–Å‹¹Ýã>V5;â>pÀ˜žþZq·»Ï/©×Ù\m•YX’ažž­ ÖùCp§›;ÙÌädUß©«ÔùºeáÄ»j8“Í~¬îÜÎ@Ü^.î¹gÈpãóÏs׬ lÎÞÛ Ù­¯œág3E•¯Ó+Ž7â/ŽÉöé«Îýpcª‹yÏ/¹|L UbëÓ¿Çt d ±G†Ä w^~W½Lδµ3”ŸÁô ÍËvgÇü}ÂÖÝ).ÉñV»ªOçmíªÌËì”âž)Iζ¾Ìó.öOç\­¼¾UæÕl¯–âÞÀˆž>¡¸¢*‹¢(ûÞqyÚ‡T÷ñóß¡½>uU–EQŽÊdU^¤ î¯_qCYÅÅ»’¯ÆðîªfY½sÁOxÊo§ÿË $žÏ¿7ÅàVQΨ8òóÚ[4ëOÑS ¹akWe^—Åa•º.‹¢¬nè`ïÛÖŸ­šõÒÖñ­2·4xLO›¸ßh@·J÷éí`б Þ.îŸÀ§ÍY¿3oÄ€p~(îù•Ïöhgµý—ÿÓr^&¶ÌÙÜÖùãšSkç‹Å½N£U”îwÀw ä[1 œŸ…3”ŸQù¬òdµŒòêŸjüÏËy±^®ë«MõBí|±¸ÿ²Aq@ÜwÂ!ÄýC´qGÜwÄÓ%ÄqGÜq'ÂAÜ)OÄq@Ü1!r…¸}Ë+y{¾ÍL1cýF„pþ·áüÞBþäœ?AÜàí îˆ; îˆ;  ‸Àóù( ñ®ì»™IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/buttonbox-kdelayout-vertical.png0000644000076500000240000000634212536324502025271 0ustar philstaff00000000000000‰PNG  IHDRU^{'Äz ©IDATxÚí«š³<†9N#Àã±HÔwáp8 …Â`0 &À ˆˆDOáÿIØÊf¦óN[Úy¢fBÊp“•MçYkEºüí"üà?øÁ~ðƒü‹ò¿·-ÿý÷ßïð¿iß‚üà?øÁÿËüMækªægÍ«YžF®m*²žÑçñ3_“xÑ|öpÂ6 \?)·/ÒT–ú¢>‘¿ŽÆ¿ªÄõêyYWÚïT2FWuëzævÌÉöÞN×’ån÷$Ïã'®Ê»>°¹xdÖ¹£+Û‘4Âö+›Ì뜡o©¯+ºzÆðn­0çËÓÆÏJ†Ÿoy*iðg‰.—ÊäOe¦Ù–âWÙ²²Ì“(©ÚÊ‹¨ÔÝ¢®Wï®ÆuWK=UPên’%ŽÎß‚—SZ&¼…á¥YšWôõüMêtOæçœ£ðuÞb¤¯7£jñd›•üq%3èÞHYdA÷³vw ngfÝìáöBý¿!,DØ'̧Óÿ‹Ðê†=cý;™þ߈[™aù¤õÿ\ú[ý %]t%N‹ö‘ü'ÓÿY¦IË¢8ô ëßqþÿ³ýú?¾ÿ‚üçâ‡þÿÉüà?øÁ°þCÿÇþüà?øÁÿŒB+’,ÿ™ý>ü,·4Õp’yúÌ–%ÉnÞ‘¿ŠÌ> ?¥?tÂE—¾!ãŽÂ†[ֱᰮWþ¶äz®éù\Å—íé¿ÙE`Ⱥ—­’ë4†_ÖOü¹oH²IFÅ­áZNèYùS[‘$-çX29ûst˜‰ÓÈ3'_•ýúŸåžP˜ ®‘ÛéæéüŒh\ƒŽð‘™ÄBá2bŽúÕWc¿~²îä#ɼ²-üÉÝàŒüUÜ›±¬ueðËÏ›ñœ9ïߩï'Ô ¤ ¿½UuüSád†1w £8pt!þ—ÿh·}?_9÷êéhVüF²²;§ž¿-CN»ð+t¡ý7ã8רjh;É~ýÂ.ÒA-ßHrs~1’›-[Æñä¨jÅUU—FÕŠèõS[õ%(³õ¯³‰¿ëþ—÷§âuv΄#À—õ·› átì]ù3g{?»W¿,µ-I sx;þ&ƒˆ°o×/§–* ‚¤¸ûÛ¾ÿ‚üàÿ7~èÿŸ\À~ðƒüë?ôìÿÀ~ðƒüàå§)hhjfÿàQòÿGó?ÀM?í>¸ˆÿq9Lþÿ`þ;R|Àßî9ô—ÚýÏí'ÿ,ÿ÷S¬ø©¯Ëúô‘†ØÚð&eÍ&Íh#<@²—ìÄå®ðß‘`À/â™síe#Ϋ*Eâ³ä½=æPÌ8KDˆõ®ìûþ»R¬ø¯ñì7àŒ¸ã­„”¬ºýÀʹ){ÞDÏç¿/À*€ÆÏÛsut´žðÊ?ÄOcmWù}:ÿ)VüóþwDð7ÛèÿÙ+;æßKþÿ(þûSÜðÏØú~Õʪ¦)3‹Û’!<†6ø·ìÿ(ùÿƒø’`À¿`cU¢ËS* #©ØzȈñ¯môðaòÿWî7¢ýø[Þ¾ùGg?ìÿÁ~ðƒü¿Êýÿ“ øÁ~ðƒÿ`ý‡þýøÁ~ðƒü¢¼Zÿÿ"ùÿåÓõÿ/’ÿ_þ€þíŒuòÿËÑÿ{~ï¹ü'Òÿ/;Éÿ/DÿßKþù úÿAòÿËÇëÿÇÉÿ/®ÿ•üÿòáúÿWÉÿ/Ðÿ±ÿ?øÁ~ðÿœúÿ'ðƒüà?øÁ~ðƒüà?øÁ~ðƒüà?øÁ~ðƒüà?øÁ~ðƒüà?øÁ~ðƒüà?øÁ~ðƒÿ½ù‘ÿ ñà?øÁ~ð–"´5½+š¦é†åfû[ü"W¤Û®m¨C ˜ßÈkRg¡ãUûü*Z¦wê €öy¢D¾£°¯bU2% š%‘»mÉroÊñ#k==¿’4-­2‘¼Në³[¥¼ÕTet?éAÑU&Cch -iC#""p…Ò»qÇ1uttTTT|ôÑG™+êBu¨•Fþ Cch+24""ÒW(½wËå*//ÏÉÉ©®®þù矃Áà‹/þXYPêBu555_~ù%êíììDí ¡1´éÓ²s…Òµq—oj444Ÿ;wîÎ;OŸ>}þüù³gÏž¯D².ÔˆJQ/ªFí =sbh ¡%mhDD¤®P ®Pq6îxʦ¦¦o¾ù¦¥¥ÏýøñãIÕ“'OpûÉÊ"+’â6êEÕ¨ ,è´‰¡14†–´¡‘>¯µs…Jd…Râ /û—••Y,–»wïÊó†èà¯ÔÄH¥¨µ#ä0Ïè“<´;ýÎËÍ×04δ×24""Ò§kO²êÁµŸ.ÿtíö2Z¡”8Ž`||¼²²òÔ©S>Ÿollìþýûªè#‹CwužA|Žß`0df0Ú½Áäù:°¼!ËD½¨µ#|Ûi¼r¶išì<`ÈÈ*jO F{ÞjEÉó¯¸Ðüv“!Ã`²/´²á꽆½U‹‘D°óÊcÞÞôÕ™öa†6ãW«ò20U™EÕ~C#""}^dѰšqR¤¼ ½sìR„•&ïJÒ6‹Ð¸ãéGiiiccãíÛ·ïÝ»‡'Æ¡ªC¨õ¢jÔŽÒxå9“v¡÷Â^5®Œ+É„Ÿ®¬6/ö”]êЂ&ƒœJ¦WŽÛ«Œ¦†Èïö0v4”_]„†¯„[ÐŒyÎç×>4Qº’e¬¾ÚÙi)ϤÏ㩉„FDDú¼Ü®]/$—!ãjeu‘=jÀކ2=zdú.éso°Ä½Ð"4îxâÓ§O›L&\ׯï÷ãÔÇ!C_ŒÆ=ãªÚawW‰»èJÔkmÁàpðåîßÕ NïÈc·¼Š.@I·!w=êEÕ¨ ¤L–*4t9ÆŒðk“UÝ3µa3fôò¸vûR†æ»nšÓ-¾i]gLAü¶+sþêŽÏ–¤üÑøìûãœß(&á0C›ghSÓÔ¨þOׯehDD¤-{¡Yºðà {l“8sã>S˹4½P¢;^Òǧs¾þúëÚÚZ§ÓyíÚ5,¾÷U8 ÈÁ=ŠK‡q‹¢l±ˆÛ#öb4ÆõΣ‘ ùò5@eË9t÷¿—÷¥‡ú CyGø1^Þò®»\ K5”Äu`‘)%O˜U£v$€2™ãÍMC»½ ¥í+7e¥¢Âü›áñžª¬ÔÌòË5B-X–éæœã˜¹©Fäã6e)©û:î†çV3:ÎÌŽ‘eš:£ ¦ªüØI‚iâ.Î ÏÅ€b;Ê ‘y’erc S&r ïr«#ßžEù·BbÊLÏ4^¨Éß"RüãõÙŽd¤CmÜGÚB“¿èåØ0½ø–f¡‘4í…" •èÂQ+×ýu ±‡&{¤u,¾|}j—Ðr…ª)Ï -^j܉&+Ô‚÷ÑÑÑ}ûöá[±¸gWWž¾···¯¯Ù¼yóæ`\¬e¹»ßã´ìÇMe›µOŒ×å®Q” '­N‡¥ ·v–µbÐüÉ*ܬsº[­f³Õ-a†-ûÛðP« *ê,VG\&+Bu¨•¢^TÚ‘r@ÈdîvJ»Ðêö£Ðm¶ÁA‹¸¡m}á0·©³n›ñL]E‰xûbÍþº9Ç× $Ïà`Ÿ­ƒ»N:Ô‡ñˆ‡7ö-ËлD%ƒƒÎ,µ·”% ö;Ô»˜‡Ãf®0;û=óN í*©³ÔÙœYøª\‹|±ýª]glN§íÌ®UêC‰™ä)Ù f¹&ëŒÅ¼_äú‰s–CñX °ÅÃÐÚ ˜8áQ6X´ ˆˆôiܵë…"‹­hZvæâãã'…ŠŠ²\¬?¢¦­n·¹@,_gÜýr—5¡ Â+ÔγŜ»S,]%6O"¤Å µ°Æ' ###{öìq»Ýxî_~ùáõzå‘áÅÿÛª@\l…o)SÞ²ô ‰QŸMŒ¾UêÀé‰Ó²·7–zšlÜz£ôB«7²ÿ,[¶–bx£Íˆ›, ÕÉÔ‹ªQ;@H™Ìñ)% CSKN˳ˆÛ=§ß@"ûjÂanT”lÇPh»Òb»Þ¹ÆÓ”7 Õ0{óÒð@bpÈqL|gÃÚ»CëµäáൊRÇþ)ÄkãÙ§Ý/EYš†$lá»ÞBqתn_¨îë G^~(¯Èrca:®N³4‹wæƒñŠ½Ò¬^†¶€Ðzm'0¥•ëÕ24""Ò¦ äÔ2„%FIÛ‘–&šA¹0©+Qö +zD‡õ„xAÝÒ½rÉÛJvMx‰³ª-’5‘Òb…Zpã><<üá‡âÓ97nܸ~ýº<ºuë?WKñ&EI9ët—oGž›Î÷Ĩ¿e{T;Ÿ’’²örƽ-9ÛSä`ÎYç[ª»©Ñ7šÔ…êP#*•§†¨ ‡ììlütîvJ£ÐzÎ&kÝ›dÛý2̵JJq¤èƃ¡»óï9û/<Éí»(þ³žešßôŽšÇÚMÈf­œ{*1¥|-âEÜœKÞØí}`íÁÆéwÕíSÎöäîJì~°ÑÚ¦¸%jöÎ:Í|-øè×ÚùLB†&9+Åä{§ø¢_ã™FDDú4îÚ51ËPx‰Q—Ÿ,3Q ST“¨¬5¶øb²ØEÍßÙw©ÈEhÜñz>žã«¯¾²Z­*Î$pÆ€ƒÃ'uî©Æâb?¼YQ67ð¹ýË›Eªû»1°ÿ·?®›q—Q_çañcu¯Y¶l>~ØxÉ¢PjD¥¨WFÈiÌ»f¡ùE`ë>>Sg>æºï½+0w«a®SR‡‹[ö¿jܶ‹JY‡ÿ¼û}ç² Í[‡ó˜Í¹'êÌf5s®˜ë~ôùí‡Õ”„íÛálÄ}ÑÛLÍ^ÿ̇èÀ^ë^9 šäkVŸîL·3ˆˆt i9} 4‹6'´0É•È?û.ò¶=¼r‹}7¶'r@Z¬Pñ|Æýøñãøü^ü—çIxVüWŒ?PE®Ê¹PíGÄUelq{@}k~õÞÚ±‰‰61®ì=iíêëj«­o›­/;RÛî T~€¾ç{Í´%ê –Ùº†£ñ˜üæ FTŠzå™@Hc>Ÿ<^ôÐÆê<ÐvD{Ò51áùBý^î‘úö¾.ëÙZØlô¤æ[ßШ˜Kä‘^ئÝ%¦XÆm˜Už¶/Ä÷Z>pÆn;{c<]]m•¸dgze›«Ëå 0´¹C“û*Ja­µ¾V¨·uiéÓ¸k×@FV­è%FmW• È…ìí³mž¡¡—­¾­o4v—@™è}2ʬ®¡@_å^,]«cš,Ý{¡ÅiÜqÞpéÒ¥ÜÜÜþþ~ù.€<«Wº‘ç ãâ:¾CQv¸Æå½‡—r¶Š·×›ü/•ìšzcÇñàãñë ?Æô-1æú4ôýà’`\&ßâ‘W, ½Ò¯BÈiÌçZ‹šë(òÉö<Œl?Š Sð=Tºu×ÖP[s~Ní5Óøñ­Êú£Sùø~W©ùôÒãx-ih¾ƒ©JjÎKïËAI[Õ‡Û?]?5KÚÕ)ço=úäUë0&ÍÑõÊú’v¹ç¸¯iWjäâDÙM>9Gc¶éRgoûø´c ¶®W¢­o 2´9Coß¡ÄZ?×on‚¡‘>»v ddÅ^b" ÊŽã®ÐÝa×Á­SkËQW0v— Z!%u}d­;ÚäKìx4Y¡â¹Ž;^á/**:þ<EþQ¨ÉÉÉ'Ož<}úô™v&Dµc“‘Iu$j`Ö-±í´‘Cu¨•Ê?……Ú‘r@ú¸l¡¹¿}Syó?C­ü•ã/U?ÛpöúD‚‡‘Ì¡MŸ%êÌ›e–Lª¿mcÏ´ÇÐtˆˆt°d äLMâLËÖ˜h‘¾u‡šÆÉ$]¡âùË©x©¿¾¾>??—³ùý÷ߟ?þ[î¾xñâ•¡®H¨w;;;‘r˜Ï7‚õÍmüþ4Îø¼ÇcÅ_þû¿½f¡q¦½ž¡‘’~…z$¾¾ZÔ‘ä+Ô‚wœ+à/?áÃõ§N*..îééùßëU—”” ä€4^ù6‡þ¡ý:ÐV×tã·yÇøónS]ÝUÿ¯¯[hœi¯ghDD¤ƒ¤_¡þ¼Ñ„éA’¯PJÑ« 6ˆkÙ|÷Ýwøb,^ÿMzTŠzQ5jGÈažgK ¡1´¤ ˆˆôyÑ+T‚+”wôøž¸¦¦&//µõâÅ‹¸ª<Æÿú믖5*B]¨5¢RÔ[]]Gè ¡1´¤ ˆˆôéݹB%²BÅٸ˯à‰ñ‡ ð7¨*++ñ®Ç矎Kë¿k÷îÝïÏd.’êP#*E½¨Z†¾ ÷8CchIé€+T‚+”’`úø€¾j€¯ www···_¹r¥±±Ñªjhh°†ÉÛÑ#Ëe·QêBu¨_F½¨:îS%†ÆÐZÒ†FDDú´ï\¡– qœ9á?òâ”Ãa°é#Ëk<ò#yÁQTšø+y ¡1´¤ ˆˆt{é+”Þ{$}éá õ(Ê"NY†ÆÐZr†FDDú´ï\¡– q'"""""M±q'""""bãNDDDDDl܉ˆˆˆˆØ¸w"""""bãNDDDDÄÆˆˆˆˆˆØ¸w"""""6îDDDDDÄÆˆˆˆˆˆ;±q'"""""6îDDDDD+×ÿ½ªùÕüIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/buttonbox-maclayout-horizontal.png0000644000076500000240000001244112536324502025643 0ustar philstaff00000000000000‰PNG  IHDRè6Û$q pHYs  šœÓIDATxÚíûSSçºÇ×céÏŽˆ=¿è(vêtÜ¥ãìκçô”2§n´ÃÔ2¶—ª¬†›r9B”xŒhä’rÉ„±A‰!(±AñRo³»çtfïç]oî$!++‹¬¾Ÿ˜ä]—¬çûÜÖb½Y~¨ ~„'Õƒw4¦Ê pâ€ÀT4NÜИ*€À‰;SeÐ8q@`ª 'îh€”M•Yyœ¹uÜÌÞï€h ¢A´LMQ2Þ#js R¢A4Š–‚w:¦ÑÑÑæææÊÊÊÏ?ÿ|&Bv‘ud#YðDƒh ¢A´u`#xDUNA @4ˆ¦ZÑdM•yöì™Íf;{ölyyyggçO?ýäñxÞ¼yóÏÌ‚,"»Èº®®®¯¾úŠì¥×d;Dƒh ¢A4EÙ QS ¢©<¯“PîB ¤¿d5ÙN  J¯>Ñ'ãEû宥àæcˆ†HÛ¢)}¹þyüàfÿ¥þ›o@§ P7 šVòZHân}R[[Û÷ßït:½^ï£Gø7‚CL ¥¥mÁÏÄá‚üŠÞé8›Ô‚Pq]¡Š°ˆ›Iö’Õd;)ÐÚÚJj¬y¿C9ÑntV…Ňuf‡'íWý¢‚ª¸æÊ² ÍÙv®ŒÍen*È/h2KµlUæÊqÏõ^]Ei^v¡y¢%ÂòX[E>Å£HaM§KaÑ”ž³‘°G:ˆÐWÛ IWÁ3ï$k8Ñq½!ß§´_Ú™ªš›F§ÈOdã?µHÈuv(I Ýs£3?¿tb{¾DSG¤IhRJäµäwºz;yòäÕ«W1]“D¨­CIj螉&ZwLbüÉoîiM%‘&¹I¥6¯%O•¡kºZjllw¹\ô–Žƒ‹ž²÷ˆ³pO”wgÁ³{“(뤠žréÉ^²šl'Hºf¢·éMÌóü1ÑÌm¬TÕ„¶¬hМ£È¾æÕ?!ÏìÉLѨ¾ëüÿ1+l»­8DÕ(r\¹÷tŠæìõ×£<ƒsU% SÀCרBÜ æåXJòE˱·[¦¶¤cA¸Ñ-¦:±bº”MQ¤xD,þºà•YÇ{vio’.;è¤<ûŠ+ž›øÉ½!†¸ ù'fmN›S䦀„ø7K“ðñµ3(ñ,P[‡J¢¡¯­àrXÙßÜÓ)šŠ"MZ“Jm^K;q§^ZZ:vìXOOÅb¹yó&IòH„ÏÔá÷T‹b!<ßMÚÔš}oï›æù\WÛ+¸‰o…Ŧ¼B]WCq_çp—MÞñ< „¿`"Èj² H Ò$NÌ)*Ú¸Ž´Ùm^-7×’½ºñE®CïQ~e*ì>ÜŇÞéHWÐP8r͇¶ÿ}`!§ a1ãD{t«L;ØÐÄb$çè=ÿøT[qNaC×a_a(nºw|œÂ.GGúØšŠ…œƒãý:@É\8¾¨IÑĈ*hj;$&¶ÚBôdìxCA NŠ›lbê‘NþMî-ÈñGÑÑñûOCÒ³·ëèn¾¤öÒ­˜…`\¬‰‹M‚h<ÑÄŠy_1ÑE¢GB‹?çÎÑŸÚ’%}h+Î+Žæ¦—ŠeöpïTDQéתfí%Zz‚¢@7pJ×Á¼ÝG/ÅhaétŠüH<þcFkëQ[y×HÊuv(i ÝÖ”l4QV Uúä¢]ÉlîiMm‘–H“R"¯¥M•¡¹84­þСCƒƒƒV«urr’>~zzzff†¦ìÌÎÎÎÍÍÝ»woNöªÍ‚°ïHKKK#£¥¥þÈ&AØ~Ä .a¡ûª†l¶îª}‚°©Ýv—o²Ù·‚½n»¨ô¾ªnC÷‘}´©Pg²Ë9 nYG6’¥d/YM¶“¤©AšÄ™¥¤¨hÆ*²vs÷»v‹¡Œ¾Ç8ÃÆõGHÄíFˈ¡žÉY?DƒÝ#5öé-¶!cw·ÑÆ÷eÍ™‘ª=´«MU-zƒqänƉ¦/#C÷˜ææ ì… 3ÍøÅÜ#†Î]»¾¥ŽÚæ2}ÜñÍ$ÅÖŒ©Ž‹G‚¼G7£IÑFŠ˜%-ss–b±^q“æîŠyÇBÂ02bêné¶Ü³t³ ,ªÓô&‹¾)4O7µ›,S{Ñ&qWwCÒssq»¡»Œéú7K¬B`¬¢õ vˆ&A´9ì_ÂÛ« ʉ¦ôw) -þ¡Uq»Þž¼¤«Ü¦o1ß´¨Ê` d¹½±¬¬QÏ>¦Ž¶Êlþ:à òœ¥…êm1ZX:";$ÄôÁm=j+ç)Y Î%©¡ó )ÆyôôGÄ]”Õ›FFŒÝíF WyÍ=Ý¢©.ÒiRJäµ´wš‹CŸ|ò =6Ÿ>û矦ƒp8üÈèŸÿDܲpTï ݶì°e ½ßQadËLÕôºäœ‘.VFŒçص‘ašm²EØ"®À_ %]¾9´3ÿ¢$áF‘uÜd/YM¶“¤©AšÄ™¥¤¨h¦ê÷… ï¦æE«Mlôý#$“ÅðW&ß ‡ÛÝUB¯Þ:Ñ;älcÍ¡4¼ÃäÌDÑD“·TØë©¿¿EŠìò‹IÁR22ï[ï„:ÓñÆ·oU‹bNWPÔ½ÅçGN³ï·§µ(Ú´¡‚þô3uäôŸ†8Œl¼äï¶)O°¼33ן†cµ¸­Ã/yµWbv羽ÇÅ0ÛbpÄ(l«-FD“ Ú´é…´ðçÓÓJЦôw) -þ> ‡)w2$pS8ó¶s‡}…÷¯§ó! Ž©f±ŒÒÞæmͩij…¥Ó)2S@RüGŒÝÖ£µò¸®I8 ÔÙ¡$5ô`…ŒºÜq"¢ËiîéM…‘–H“R"¯¥M•¡õÓq”””ÐìœÛ·oߺu‹_FÌÏÏß¿Ÿ-,,,ÉÅY›+äÖ܃;!·ò*[6¨ ë¬,!W7èôm"®þziÉu5°­È.²Žl$Kù¥!ÙN Ÿ}ö-ŠóLEE¬%û²:,¶†½$ÈÎóÓnÑêÁ½a2eå~Ô@2-9Ë÷fñÁòKœ5ÅÝî¼êÌ@ѦÎÁmÝKìäjì½êâbæ Yµ£¯VúÞ&2>Õñß´£&›ó"ÛýSšÍÕô‘¨GîNÒ&—ÇĶºýyW~Ù%UƒÉ|+®ŸÕ1åöe°­•6¯¼êˆÈîøaæ¤;ʉ!DãXZYð}T{Ñ¥p¤)ŠDDèɸ\ɪþe§I£ì6÷ôÕ/vŠ7ÜYrt”‹q•›ËŠ ß›SÇDçr[¨Ìîmø1v K§S䥀´ø3·­‡¶ò5\“x¨°CIjèÁ uqpgè©TUWÅÅVu‘–x“Jy^KžãNŸñõ×_ÆY:º’X\\¤ƒ£øÿ*â•…ëøVaë±]‚oÄ5pœô>6àŠ½ mö-q³mw7Ë9 nYG6’¥d/—ž Høº+*šù8³oÀMv÷ïb¡XvƒYmþ½> ºÉ’sâ8[,ncÍcþÝfšh.&ØÖíúîv¢[ß|ì/L€î¢˜[…¬ã~£Ý§ÙšÇ]kûbÑmf;ÊÚJþÒ<¡IÑz:åØu䜾»[Ô¦û Ž­—œ^—ù¸¨’}uÞeé_†®c´þq³Û¯ O[gDvû¢×ýpÜã´ÕÖ5ƒ¢qœbm<Ð~c"Mé9îR<^ð™G.±J¸ë´K–¤nг›ç»³ÿ½87Îv1qúO½9ôel…ÿbûïwyc·°t:EV HŒÿèƒñÚúêVÏ5‰g:;”¤†.й•Éu>¸ë´;uÍ=¢©,ÒoRJäu2sÜÏ;GÐéŸÿü:‰.&èw\阋žÊ™,î“ôe£êáàÀÒ0ûv¸oÄþ%»Tú cØ>??k5õ Ï,…oâ®g ɯ7ZçÝ3­¥ô5„ì¾YYÄ¿9Ad)Ù˯œHÒÔHd^—B¢žd_B7¹ÙëYñÞPviwee˜ ¥Æ™ùù™Éáž¾QïÊR_ýÉžQû¼{¶õSZ¸ßêe[E[“vÅd®7Mλ—2I4¯½ƒ“ûÙNOÎ31?`ºT÷ÌÌ»­}ìžÚþÖÉ•xãôT™“nÿŽLüQ5ùÃnMFÚhýìàCî>ÉŒm´úó.ïdßèì̤±£ÇÎV[jdÂ|jš™_ò†g®w’…Xþ—ÃUöá/Ù—>µ.EfwhôFûääp+=²3¯uØ:iµ»!Z|Ñø¶‚PÝcìëaô™&½Š‰¶sÜöGø´qx”îk¬:‘ß7ã•'i„›BêEGÅ—õ=Vû¬Û=ÓSÍVª·.Íö1WW÷Ú­=ˆNïñ€u¿è—ìÒ>ÿ¢¶°t:EN Hÿ8ƒ‘m=F+éIY Î%¥¡¯¸GIê<Þn¢®À?¨è°ÏÎXM=¦™yÍ=¢©+Ò¤4)%òZò‰;]@ð«„»wïò»üª‚?é†.dOÂóœÚ&l« ,~(~gõ½]°V¾¼ÛqÊê ßÄó-ÍÙ¶-°Â5§ü)€ü.« üŸÖ"¤¿v¤‘øÁªœhÖï˜6ÖeþîÉår&Må5ép¹®((Ó‡ßy~[n¨üßÉ€à«Ö¤1ë!߬ë<$šõéSb68zŠ4̹à|".}·È]ï–_ð·Š6N¡¶íTPçö”šC—µiÎÊ!§<âàådÒ»¢ £‡¶£dT 9×Ð)ßÌ«¡…ˆÌ]v^+Ê <¿ äšsyuvOŠÑ;º¼º mBÙ6ähqE‹d¸fñ2W¦hJŸ¸KñˆXðC(ªlŸ 'iIÃÝd2´ŒÒÒv±1y&Ž.?U)¾,âuf¨Ž_»=dïQZX:"#’‰ÿƒQÚz¬VË5’²@¥JBC§.M:lõÄîã¿y.T~2Æc5ùæž>ÑTiRš”yÌsÜïܹS]]}þüy:þ£Pô©/^¼xùòå«õb…Ùî}e‰÷Ì;Â;gl¯^=µFrud#YúDü),² è«ô`N•ŠÆeZ ªð\Yy¾öš>WžoÑl,tþg…Ä-_s<‚%ñÞ\Ç­• Ž´ÕQ"FN¬<{.–(ï:ˆ¶Î¢)Jª=’¬¤±Ü´âu»Ùó"—±Oánf¯¼+ɵ°´8EÑðFk$QÃ5‰ÛÊãePÆv¨ˆ6½b£ŽóŽÙs\zWÉiîª-S#Mî÷À× .^¼XQQA³ùý÷ß_¿~ý?ôöÍ›7ÿL'OÅß¾OáÉ"²+`#ÙKo'&&HÒ!‘ùIª-õhQ4›îm å„ÇÃñ°_Kÿ³Oiˆ´ š¢l@¤×)ª<õ­o×xPl3=ÒäÎqç7;ècèŸ ôƒOµµµôD›©‹ÿ¿}MíöcE?ƒ¬®««#HRcÍÛªm=P¿hÏf‡)tþ‘ðxxÜ=¼¦×¹ž!ÒiA4¥gËÀ#ëéU ¾­\£uã¡íÿ¾­ªª:Óåz‰b›ù‘eªLINSvèK²ô$ùææfúÙ§+W®ÐoJJ–’½d5ÙN  Îcƒh ¢A´LMQ6²GÒâ¤êDÓJ^ IßY£çÚÐcä;::¾ùæ:Ž .Ð[ZôÇd˜ÖdÙEÖ‘d)ÙûÃ?Ð[ú‚°¤{ ¢A4ˆ–I¢)=afãxD NA  n@4Mäu’'îü+ÀôÁô(ʱ±1z¨MMMMYY=Z¿(œ?þ¸('è!ùdÙH–’½d5t€h ¢A´)š¢l¨Ä)HÔ ˆ¦‰b+ȹ¹Æ§+ÑÐï¸Ò¬: ÁÁÁk×®]éïï¿â‡¿ÑÊ8½6™LdYG6Ò“ó¹âI߸„h ¢A´LMQ6‚GTå¤Dƒh*/¶‚ü$§#à™§ÇÈÓ1-Š,øYô³ŽVÆù¯dÿi²Wæ—„ Dƒh-“DSúT2ã=¢*§  DSs±Ru‹ó8C ý¬Þ—„h ¢A´ŒM鉙íµ9)Ñ š:EžTð@õàÄ €©2hœ¸ 0U €w4¦Ê pâ€ÀT4NÜИ*€À‰;SeÐ8q@ü%nyghzUòIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/buttonbox-maclayout-vertical.png0000644000076500000240000001625412536324502025271 0ustar philstaff00000000000000‰PNG  IHDR~^Ìš<] pHYs  šœ^IDATxÚíÿSZg¾ÇÏ“¨wÎ$!½¿ÔIMæv:iÉÍ6ÓàîìnX»›˜t¼u½¶¨ÑSi]™T­ë—%‘lЄø…bd‘5¦˜B#´Bj¾uÛî»3{ßÏyAñóþÁ9çá9ç<ŸÇç^¼ái‹$P ¶,õOH[$JýÖ¥žþñ©ÖS­'Q­§ZO¢ZOµžDµžj=‰jýέõË¢¾Ëk!@éËRë1¦ÉÉÉ‹/ÖÖÖþþ÷¿?‘§Bha"ØèÛ°eµþÙ³gv»ý“O>©ªªêííýë_ÿþþ÷¿ÿoÞ A!4Ø××÷‡?ü!cáoA­þü9<22ÒØØxéÒ¥o¾ùæoûÛ?þøÃ?ü˜§â¡!L‹8ÂGŠM­õøÃ?úè£ÑÑѧOŸò7úþûï±ü}Þ‰ÅcÄ2BFàI@*6¯Öã`ÓÓÓü±Á`xôèZ0þžå©bcÄ_Žð‘¤"³ì ”©««ë³Ï>s»ÝÁ`ðñãÇüò&vdɘ®”—(Õá­¾©qß6÷êÔÊ’B¹æVòžÑ x¤#|$¡³³ É ì|´Þºu«¹¹ùúõë>üöÛoC¡†’ú‡¾k°\`*¹¹˜ûäš{Õê.—ô›ìUc…26µ9Å h„‰`2GøHR„dð‘›vÁÁ»S¾½½}jjÊëõbãàyO-õ^M‰À¥èº½úÅP¡TÅ€TFq}o©‘Y™9 =ìheBaÊ©çÙGÈá# HN|¬æ¶ÖãÀ~¿ÿܹsV«õÎ;ô±(^ïøàž&Öã»]Hú­NY$E5÷W^y4¢=#D¤™ZJܸ4X#ç-‡*ûxÓl—²H¡é«äí2¥{~d×F·-’k—¤G´¤‘ ²óÓ¤ŠžXü¬‡8ÂG $iI÷J_H·ÐããåìÙ³ccc6›mff‡Ÿ››s:(|óóó ÷ïß_H,}ÅAxÝ´°`` ‚Æä ·W¿ŠÕ×+ZM‹±¿Ûhu&nݶ­C+–޵ޣÑX÷º˜á×5ÝúŽF%–öT蜱yW]‡Þ`´Ü“‘£n°§Ú°T<(ˆ0,BFàI@*¤%Ýr/¤[èñöþú׿ÆŽýå—_b.—‹ ÿ€EùÉmzCöª lyöóÝ‚°ûL_´](>ï^ÓYºñóœoVÃ/Å.ŸÏT_,eO¸Óùbv˜9Ÿoü<º›Ü¾ÄrÕïE_£/©x\¿ #|$©@B–t˽îe%ÆQVV†÷ÕW_ݽ{—ŸçÁƒxiqqÑŸX³—ÞÏÍ‚#ÐÁqùÈu¯ßï;"Æâz'nŒª  `ßq­ÛïkØ'4¸#½®×†WÇb×ÝI實ûj¯û×BC€Áòq„$ ¿ýíoñRº—˜i×zãƒ>0ó¢0œ KKKþé¾”–·é5Aت[ßß õë/ž{é;Õ;è3¿‰¥×.øb»'i<¥_µksÓ~¡ )ÒÓw¨ ×£ç°ôÚ¨/˜X¾ û…ýçÌÁ¤âq!@„‰`2Ï>„T !™¤>ƒZßÖÖÖÑÑ@~²ãtÀ½5ÆÄïE/óW)èèAÒʇæcÚfN°ÏÄfÏòòD3»îyKÕã˜wÚL=&çrÒÆòv£ÓãqÎL M——'›ßBã‰ú§ÇgªgË3踜¾àrñëa"X„ÌO$©@Br^ë±wœü}¾wïÿOäç¿ê›™¨äÙZ£;žÄ5N¶ÅÕÇe7Z—kF+ÉÑOmâëÒ×K…˜Ö@xç‡K‡ÛW]ðlg‹x[c`õˆ-„XÕŽ/&ùãõ–C¢xìH¯hI;õ\×ýõ×õõõx„„¡ðÛ<þô–~ؘž³‚ËÏ×oüa™mµüŠðÊ—Ñ,¶®Ú«_bûL„ù“~‹ð‘¤Ÿº¸ÒÏù3þI{åÊ•J…K«üãxž÷SDXÝ’‡ÆvÍÏAÊåCc„ !cOo¤"ƒBŸù3\cᮡ¡WWÿz ôl~B㫟6ñˆÏ‘¤b“žáð‡{ÜYà+ÜÈ ãÀÿÚ1B°#|$©Èì;“ÌŸ×ã ·===~ø!Æqùòe¬â¥þóŸù—n…Ð ÂD°ùOúVqµ³©Ïë£Ïðp`\Øâ¹.°ÔjuEEî¶Jãõ‹_ü¢TJÛ¥¿á¾ "L‹8Ï{Æ_Ònè»Y^÷1Ü[£öa@x qãÆaQøg8"¾Û²Ú±j2™D˜¸™âIßšïfW}IËo:p[1-‰ZŒh)¢Åxm—v®oD!@~ø‘¯d³ÌáDïúòÂ‰Š˜Kb.IÄ\_O¢ZOµžDµžøzâ뉯'¾žøzâ뉯'¾žøúüãë%´Ø[©+rH¡PiÝI¿ß¿ÝUYRÞ»¸‰·?yÂ×K¦¸¯P¢ÔhÕ À{“$Z«äº4S2witÃs¼€ÞÖ|}ÂÔËÂ?íüB•+˜>y‡PkЀ2K£ÏO¾þi {£çÏÜ},®<0Ÿ‘…é°†‘»¼ƒ]§(Rè¼¼T‡§KöE¤UO=z:¥•G)3¥Îžîøò¯_H ¹ïªÖ/,8ÇõÞ—¶‹8¼…¡òÇêÆíöþºc å»í÷Dšžõ¾¨Ã=±‘aõ‹ÅÔßÑo½·à°ô³—Kõ½ÉêHw|ÛŸ¯O ¹3">¢Ýem.ÞjbàjY›'—ÅØ†åJ yÐô{…Ýõ®\FküܾŠí?Ï8z“/#m{¾>9ä^ðÞ¥9û¥}HÛq‹·Žiâ`zaŸfŒ¡òQš^²o¬ºæÊŒ£ÏK¾>‰¼M rÅ’C_Á¨ús#¬u´ ËçF½’4½7A¯¹IÄökQP=ÌHÛ›¯O*_3>fë'8ˆßs×"B½ $¾ƒáñÂ[=gÞfšp²O³Iô.lö±Î’x£¬yhrÞ9cìp°üí Á?irzüÁ´Ç·½ùú¤b¨ûÆÉðZh¦ŒAñ¥3¡/mµ‡WjJ‹-Fõ‹Z¼¼T‡‹“gWØù£“!ÖæoáëU‰9úË×'‡é#„üóŽÿ„kò'ìVp-WÏúŸ_Ÿ¶žÚ.üû©ÿú9ÎÜÿøäÎ&?4Þá|ý³[}íuuuízûO[Í_O|=ñõÄ×_O|=ñõÄ×_OÌ%1—$b.‰¯'¾žDµžj=‰øzâ뉯'¾žøzâ뉯'¾žøú—œ¯9üë½ÓƒÊ’0[(¯¼é å?_ÿ’ø×›Õ%… µÁ<}kXD›…ò¹. É¿>;þõ+?SÑ!ù²uOò¯Ï®=Ó׃8Šlt‰üë7Õ¿žAú§w¡Ûi ù×oª½ÛR¹—íepÖCþõ›ç_‚—…ƒUV·Ÿüë7Ñ¿Þ7õìêÍ6_Þóõ/›=ߤDÕi`2Ηɿ~3üëm-GãÜë…ãÌדýËÊד=ù×_O|=ñõÄ×_O|=ñõÄ×_OÌ%1—$b.‰¯'¾žDµžj=‰j=ÕzÕzªõ$ªõTëITë©Ö“¨ÖS­'Q­§ZOµžDµžj=‰j=ÕzÕzªõ¤—­ÖsÃ’gy-ÎYnœ¶ÌZ­'®-¨õÁ_þò—ÖÖVpá7;Á€ >c0àBÈøYÆ?jØP­'®,pe¶ Ú¿©© ÀÿÎ4àBàIÈøÛÆ€ë»‡wF®ŽÜyø]þp¥»>^ð›¹ÏD­gÀ3m5&®VVjº ®@†•qѬÆ/ºU7½É»¹nj#NG&Ádé<‰>x‘ >usjÀ™¶Z£Q«*%…|âÝõ²—(õl>MµÙ›dªêÐ\/32Sh†Í7u*¹B›]‹¯,p¥»ß-êtº ¸b§­f2k˜{Saù`\¾öZ+/E^ ¹ÖÂaö¶%œªš¿=†omÂÃHô”6÷’4àB*às‚öÜÖú4 ¸â¦­æNW5Eá§Å¹©§jäEƒ¬š©á­t ™B3ØWsˆ¿ÒpUœ¶ú‘])S&ŸªzÉÜÀfûœ]eú5¢QD¸®âÕûšC‚\3õþê;#;Ts5átÙ92àJ7õø]yyyj\lÚê=Õ†X'+c<µ^Õ;"sSï*í6Y­¦îRf¥M²¯Š¡ïQvú+˜ƒÖikì\ØI¦ªvš”|ÓÒ:ƒÕÝ¢½¢¢]ÏÓˆ-… {ÄÌÈ»X;X«Þžh>íu ¸¤%·Þgip¹êÙœÒÆX'+³»*6º|.#s­Q]c-¾:Ƕ‚}Vqý¬Ø.:hí5¸RžªÚco«|ƒŸ¶¿¼`Œ1Õò¸\³EÇ.ìÍc¿[R™5ñ|Ú¹2àJ7õ¸¡øÝï~—š—ÄœÒ×jayµïš›ÏM]Ð3ë {aÙ;jíuWx«ˆï–”ƒÖúSUû殿wP,lBlWOÕqÑ®kß>fúÅ÷æÖ°h¼>+½Žh¿H2Ÿöº\ï¾û.Ò’[ï³4 ¸ø´Õæ+×Õ×DO-qnêsXl2û"ÆZ|ªjwìd×¢³–è åMªjw?vøÎÅi÷H5Ú¦Ø.¦/¼Ý›KœIûß°ýˆ-‰æÓΕWµ⸞MÁ€‹M[-œlŸÀ§É‰¡v•xuY2䮂3'ÙÚû0ÒrL¼Ï>ÜNÚü«&»†M.ÓKL¾Ø 'œªz¦Gõ~ë€Í1ïó9êY§V›~ˆypÕM:lo‰&˜áØNpWÝò¡È¤çÓNnÀ…T !9¯õip>=gqUZÛí ­ì-ä¾QZ½ô(»áæ¯ÅMv=óéÑè ÕQ%šªzæbiì᪺EîÀLt²ëª–Zq±”û€7²ñu;bö.9]vŽ ¸2¸®Çç LˆpQ• ®çbÁŒæ¼–šªz9èó±k’ø×ØQ¸×óàZ‡®äói'3àB ´äüÎËiÀµ-'¸ÎìþÑðìæ0³³³ÿÚ‘Bà8ß‘¤b“žá¼ ®lpeü¼WZ8pMM ñ‡ëÜ'ymÀ…&‚EȘ/f#yÏü»Y2àʂעâmLJ LGñ½å_|omðÏøgQ×®]ûsD|9¶eµc•{p!@„‰§oÍw³«¾¤%®-ãpžG”ßNTÄ\sI"æ’øzÕzªõ$ªõTëITë©ÖS­'Q­§ZO¢ZOµžDµžj=‰j=ÕzÕzªõ$ªõTëITë©ÖS­'Q­§ZOÚnµ>ï盢ô/Ñ|³d;·µè3ðƒ]ØÎÁm'ØÎáw<°CÈXÞš¹ÅÉv. ¶sø£>Ý™¶sá# ÿ¬gÛØÎm¹²o;—A©Á‘ºººR°K¬Àt¥¼D©¥9ÜÛ½•%å]Yq4sß6÷êÔÊ’ByŒEX"%±ëììDB2(;9µK(×`9÷仹^Ýæ^µºËy‹¦u Až39/3,d~$%R6j‰. ³i;—îñnã”oooOÁv.aØšˆ!¢¢ëöêC±fsOn©‘™9‰ibÛ:öZ(ÉvøïÓÊ„ÂtR¿Öv©À‰ÕÜÖú4mç¤õøn’~F«S‘¥¨æþÊ+F´g¢†(š©¥GvmtµH®]zút¶KY$×-Elæ®j”‘×éÌ_óVÖG¡5„-ézp,kñ¤•Û¹t =>^Ξ=›šíœ´¸å›iaÁÀ)짯fvs¯W´š,c·¾qNK³ÛUס7™'Fv»ª¹×œAì_Ñn°ÛÇ[O³åF“#âlÞª£ú˜ØîL0 cïŽï.ÚΛ"­&Ùí®wEúï®4D:ZÞÂw&f[·÷s«h9ç6î »ÙIJÂOR9±K÷²ã€Bj¶sš½ô7u;,—\÷úýÞ1Ø¿Œ¸ÍEµÊvn Žs l-Ü?j>çÕ²Ž7ﳯÁn¾~0ìf'©õìR±ƒ}ÂfxŸ¥c;·V^æ"·ÿT·¾ލÝýú‹çÞAîOõ߆ïÜ›¢#/~ƒÑs¢í\¤ÕÌçš¼¢Oúï_1Ÿ›þMdu¥ë6º?ìf')ß…UÆx ”Û¹ j}[[Ü1R°[­ £é-šµŠcÞo²fÏòòs˜ÞRõ8æ6Ó@ɉ—çÌ ®Õ4ãñùE:\‘4s:ãû°±+l5Έ&sl7õžU}–ý²Hû*Í;P«'Ø>N¶ãSËé .'VÛ9¤ Éy­OÓvnµl-°t+sÄ»„M¶ÀX®è²­ËµG£—4G?å¦q¶³akºFXÀÙ`dw %ì÷ÂÛ}vÅ#®öòLø(±}B“èÑ8X3fn«Úx»µrO²n;—Áu=,X`ǃGHÙ°[kC'úÂÅ›Æù×4Å[Äù¼˜e­µC |êâJ?çÏpÈv.k¶s™=ÃÁ5náໆ««i;‡ÀñÜI@*6éÎ ²Ë–í\ÆÏëq…Û Ì‰ôá‡b—/_Æê“¼¶C€Á"dÌŸ€Un¶©ßÍ’í\lç6òí"¯ûî­Qû0 <иqãÆ°(|ƒ3_ŽmÙFíÜs¡!@„‰›)žô­ùnvÕ—´d;·eNô®/¿!œ¨ˆ¹$æ’DÌ%ñõ$ªõTëIT뉯'¾žøzâ뉯'¾žøzâ뉯'¾>|½wzPYžN¹P^yÓ"¾~“øz³º¤P¡6˜§o w‰óe—Ï_¿i|ýÊ’É—Ý\LãÞ…øúóõâTóƒ8¨lt‰øúMåëÙìò§ÙŒò§-Ä×o*_ï¶°)Ý…âÁYñõ›Ç×ûf¯°™ßVYÝ~âë7‘¯÷M¡¿ðf›/˜’ˆ¯Ï_?ÙÌfx/Qu‡†˜ŒóÉðzâë³Ç×ÛZŽÆÑõÂñÀ â뉯'¾žøzâ뉯'¾žøzâ뉯'¾žøzâ뉯'sIÌ%‰øzâë)õôOµžj=ñõÄ×_O|=ñõÄ×_O|}}wç‹‘/î<$¾>Mòݬ“—Èufïö±È ÒU7³xû“?|}’ß<èDÜ]ëH=óçNÙ=Ýïæ¶5_Ÿä— ƒ…a&IfpK½3EIb>¾=‡©ßÞ|}Mi±¾«†÷Ú©¨Ë¼N!Shú´Ê0‡VÙgOÞq¥ÿºáPѡʫ#dÿÕÊCEʾGé,Oøú$¨{)òWÚ±°`± Œ0ïŽFNÌ«ë7ôWÛAé¶G]éõÕ@ø÷ôßwcïFe‡5ƒ‘å_ŸXsrwaœ¡î– o +\±\züÎáµê6}¿HÞ÷W3Þ~ÿU·HåǺÌûFrßd^¯}”7»G὆Ýè]ÁÌ´íùú$šlð^2á_iñM4#e'ÚmXleä}I«Ñæñ9;ËAÌŠŒ~Âvö²ú‰Èžü—¢Â‰Nÿr†Úö|}b¹k‹„¢ªk««pår¤|ļPt j8ßrÃ-vHØoú“ÑÍ|ÊhúÆÉÅ<(̾^JÁ_^ùØퟯ۾Ù7¼‹Ìÿ÷ñõéë)û ¬z*åöøç½ž+ìûî_Ÿþï«ú_}—r{œ~ztGßwãÑOÄ×_O|=ñõÄ×_O|=ñõÄ×_OÌ%‰˜Kb.ITë©Ö“¨Ö_O|=ñõÄ×_O|=ñõÄד=ñõœî­TÈ 9¤P¨´ƒîÐËrû“÷|=ƒ³…¥F«Vp[Eo6’2witÃsY¹€ÎW¾^äâ5·ø¯K˜Ç}¡Êµ\’4¯ïÐÚÏnŸÇ|}”‹ggS8s—³ñÌgÂÓ[ #wÃ>õWŠ"Ü™v*b?¿¦ç”VõpUêì™,ïùz‡èN¯_XpŽë5ÌÛ¾´ýžÈÝ+Eˆ~Ün﯃ý®nû½…{&8Ûï©è°Ú­†în“ýÞB‚žK?[*mÔô&«#³‘å9_.þ|ñŠËðî²6o5Õcµ¬ÍˆSÌblc¿1ÌEüî+ –Ù•í%{úÜçnoòm@ùÍׇ9ú‚÷.ÍÙ/1¾þ¸†»Î»Ç41¾ÏÂ>ͳœŸ»Î,ëŶ_]™õ&îá_/ínáâú æfŽùÑ{G›æAï•æò§ºÕ ït'îÉv[°âtO|½„b¹ø`ÏIöcÂz€yó°Þê™px<ó6ÓЄӿìŸioîœtÌ{œ'ES|ŽÒKô\ö·3³ú“&§Ç$¾^Zñ\|h¦Œ]Á”΄^¼X´Õ®8Õ -¶À‹­teöžÒkÎPx«µ=ás?ÞÂW«Æ3~P¸3ùúX«ú8Œ~Y4»O¥§Ø|N|=ù×?!ÿzâ뉯'¾žøzâ뉯'¾žøzâ뉯'æ’DÌ%ñõ$ªõTëIT뉯'¾žøzâ뉯'¾žøzâë·_ÿÍ=ëÈèßàçÏí^U‰\u{ÅE=0¨RÈ+{“ت›U€vTÞœÝþìÿz¦[Œï–Ý\Œçîejo²MdB¡f1Ç÷Ÿyí_¿’úsLêµì½ˆÏl/ºÚÏmlHyÏׇ5Önþà˜oÅÚ^ÜéTï;‡Ðì;®u³M@æ‹â—¡ëµq«Ä×'“¹‰ÑÇPò^Ö°¿‰5øÌÌÖþ”~Í&@蛼1˾ˆ«ý…è¶ÄׯïeßÌ®pL¾îž]á4ó† ¶"”·sfb`h2È6ÁN¸Ãd3ÃéOÔ8=>ÛP½h\?³Á!å=_–Ù͵…V¸{ÖpøÓ@dõZã [/eí68Ùhál-ì—F(ûÃU—~¶¾Óùz „~Y‚˜·3Wû?.£‹Ø#‹Ç$¾~Ù5?Ã/”CÄ×o¾žÍOÀÕþ'â뉯'¾žøzâ뉯'¾žøzâ뉯'æ’DÌ%1—$âë©Ö“¨ÖS­'Q­§ZO¢ZOµžDµžj=‰jýÖéÿÛX»¹ƒ­IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/buttonbox-winlayout-horizontal.png0000644000076500000240000000533412536324502025703 0ustar philstaff00000000000000‰PNG  IHDRè.4˜¤‡ pHYs  šœtIME×  ØÆq {IDATxÚíœÛn×FÍ>DÞ ÈKôÊ%¢€.‹¼A‹1©½já\$Ú"mb[”‘ à¤1U Á´$؉Ý8MÝæ Ó)»>èd‰¢Hñ|,ÇM÷pÈáœgÈ‘›‹X0†ÃÍ-®Ùûÿù‘2tâÄOn ‚`\ð£)êm¼î‰0F¨…ãBÆ ¯ºÁþÞ}qîw ¸Ü€àw‚;Ü€à@p€ãî{»ÉíõåÍÇ_o<ú?„×ïg?áwµ„~úÃÜ~üƒ\·äzZx™•0âˆ#Ž8âˆK î8¸‹O6Ÿ%ê²"ìr™Ä;8¸‹M~cùÑÿ$¼=¿±üЬ„GqÄG\qgÁ]ü·ñþÕ•ÚÕ•ú÷Êí™4\½«H »Bnx²¢–ðóçß $+ágÏŽêÕ²Y #Ž8âˆ#ޏ⎿q-Æ«KwªGGO%âpéNm)^vÅüñ$þÆ]lò#åöT²®UËÅ|Ƭ„GqÄG\q7Á=ö]åÊråð°. µØ²"Ep‡I2Õ¯Z•R>—IY·xÄGqÄkq7Á}þ›² ^¯HC­¦Í[&¸Ã$÷z½Ú@ª.³Ùô–u‹GqÄGñ±wÜçþ]œ»Uª×ËÒP«•ænÿ~«Hp‡Éîjƒª„KÅL6½i×â1îGC¡è}VqÄÇWÜm«¸7¾ý‹» îŸ|Uøø_E1µ{îÍ„Ú-xþÞ`S…fî òbj¥jµ(¤w˜Œà.ZCÙa™$΋¢¸Öú.ÞØ´“Ÿ%J¸XØËìnصø×uÅÐùĈw5êÀôÒÐZîà Ü[qÛE×^ö@WÃÙ&—AÜÕ&÷EÜa2é_àzñC|ÀŽ7Üžplâ="f^Þøö/î&¸_ü"÷ÑÍœ˜Ú=«çB¡s«Úq ¼8”©ÜR©.~™¿x3Op‡IîZwpXháéPpvu Zë§xWgƒ7vu-J¸Oï¥lZüH‹/†§ÕãØt ß硸A£´^¡ç{`Ä-}à÷›\qW›Üñ¡'“ám?ÄìxÈaÇ/Þ+bæåoÿâ#Ü•n•Gã½Aý°«nšfwÓ\÷€•ÙÖýÐì ÁÀ£à.*Q”Øâ´¾ÐDå¶¾‹]ì¹ÛUªÍ7ýxËâuؽkñ~‹WÕ£ܵ»­“Ý͹ó:´m_‡s³ÊˆF·o_%7áÕkq»E×­àt8ÔýÞÔlújë>œ·Änòã îÉd1lžI̯˜Ûˆâs~íÞ½ÌøŒ¸Ьëf#Ü ººÚ »zû÷ ×÷bj÷$í¤z¼4/Gáý€¤ò‘W=³=º¦rK¹œÿàzîƒëûw˜„à®u‡¾¹ £I}µŠ3È‚~€þ®a-7fPK^}Ô¢xÖµ(á|n7½³nÝâÇ@Ü¡»g↯¤agÜœ»®ƒa¹¬LЈyZÇn¸—â¶‹ÞûÔ6JFƒÝ¾íyÚäòˆ»r÷v«;J&ú]™_±ò‰çâ{ ·ƒžQ«Å®?ñÖb:o†«lÑÛ‡­¸›àþÞµÌûŸe+•¼{’gu_·œMöžTn§I]=0Ð8©Íà–r9÷þµì{ײw˜Œà^8+Øf•‰’­ª§îzïv•jÇ“IŒb¿%œÏ¥Ò;kv-~äŵ1Ç+n¼ âµiF=͹˨«Éë˜;lÚ^‰Û.º~ŒzÐeÔµîfŽ®Üew¸ÉýØêÎ’‰NߪÞÚᾊ÷»',Î4ZD%¿Ÿ^ò•ƒ™âfýÜb• {û0^†­øñw­ø-ZûŠ˜”ÁÀûà®|—¦ÿ"zÇ>¿Z½{Mp÷]Üq÷÷5¸¿]5g¥±·D ÞwûE—4¸û%î2âøÜûL&µÐOõüj·lƒ»Ù›ñ]žàn¸¦ãÜßYʼ³´'¦vOâL(t&¡_9%úþåx^ù¥Û•Ža‘h¼q†NF=Ô©šOwO©´ÿnCŠà“ܵîÐqå—¿Z݉‚UŠ·ód÷]ƒZî(yõØ¢xõãû+áÜþÎîöcë?ÒâÊIÑå÷.Ä W¡¥¦žìnÎ×A÷ÄDôd 1¾sª¦ióQWMÛñ~]·‚M¯öº+F‘ùŽKg¶™nrÄ]mr?¶º£db¤oÒ†Qü·Ø½ÌúŒâ+|°W⳸IIš­r«ôöa`+î&¸Gcéèåt©”sOâL0x&Ѻ›˜9œœI4ηÿ“0ÑîÍÄ›Oì <=Ñ pE±¸?K î0 Á]ü:»j-)UÙ]­‘˜Õ]¥Tõw§b­Ù ‹·ÑtSõWÂûÙÔ›?Êâzëþš'âú+Ð~E ÷öe±jÎâ:ÄZ#§‚êuÐ_ÌØ©ŽG]5mOÄû\tmµ×ßÐXeý<ÝsºÜ䈻Ûä~lugÉD7Òð!Ã+æ6¢ø!n±b=,at¦ýÄøL°Õ+Ã?q³+`¶Êêy“Þ›à~v~÷ì|J|&†b1«JÜa2‚{óc½4; ‡%¼ŸÝN=yd×â—§i#Žø±‰Ç^ xY×#$ÞÛÁ¬{Úð®Ì¨ouÏz»­¸›àþÖ¥Ô[Ÿîˆ©¥¡PØR¹´Cp‡IîZwð•·ƒÁ·W¼,álæÉÎÖCë¸LMqÄCüRãAž<·2â½̲§ÅÂpl2¶ºg½ÝVÜMpsn[P,f¤AüÉLEªÜ7‰w wpot‡Œd%œIonoý׬„GqÄG\q7ÁýOsÛ‚lvg_!5ô¦*¥|zËoï@îà®n{ÉJx{ëÁÆã„Y #Ž8âˆ#ޏâ΂û“µo_˜zU͸R"ì*¥ñdE-á·¾ÞZ_ÝXKl®%ÅÁ¸#,ÖÝ}xï»…Ï?7+aÄGqÄ—@ÜYpßÙ¼ý‹?\xiê©Ó_üêµ¼d¯_¿ùa­š%Þ¬¨%ü³ßÌüõÓØjü+9HÆÿ™¼ýåüâÂOÃgÌJqÄGqÄ%wÜ÷R ñïéwÿöâ˯‹ïðeB|²yåÏU«™ƒzžx²2±%Œ8âˆ#Ž8â’%RûàžË<(äÖ+¥Ýz-wP/Ö‹‡ÞrtT÷ÝÏ*?=,” ¹5âÈÊÄ–0âˆ#Ž8âˆK–HOkF‚;Áîw ¸Á€àwèäÿý±ïì’OžIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/buttonbox-winlayout-vertical.png0000644000076500000240000000616012536324502025321 0ustar philstaff00000000000000‰PNG  IHDRda :˜ 7IDATxÚíKo׆Í]AÿAÑe³ñ¦é&‰Æ ¤‹ í®Ù´H‘rÐM]¸@“ô¤‰e‹r“6)ì4’¢Š¡ˆº@Ž|O•:‰LK¤ìDwYŠïQ”d÷ÉÎ Gò }æø%>Ã3Ã3<†¶Àyð~G¾óüÂöÖ}T3u° ° ° ° ° °Dƒµµ^[šZY¸½<ÿ¿ÎÔüì [«v"ZÔêâ—´:Z#X4ׯJðdÿGßûÙkG~ô‘ê»Çÿ뿜¬MS±Eì‰Ô÷ÿqjó‘xEëú]ÿÇÌ®,‚E×Ôg¡‚¨E«‹G¿e‹>ØtÅŽÏäÇg ûÒcO˜Ÿ–E«KÆ—˜]Y4Ýh07v7W*í Tű»ù±`žV—J,³„ø:;<•- ÂÔÎN>0%-Š=¬Á/3T…BV˜Êç¥ ~•akà‹ÔÀdºPÈSù|z`2õŸÉ{Xžüè¿):Å ó¸\ž¾{¸×ç‘÷Ö6Z©@õ׿r)Z{X¯Ç?¼§X«Ù³·ÇãîŸ59àì¬ÕiU5ÛïvÑÃú$ÙlòâÍÄÅ ^`ÑJ<ý3£=.úY ô¸*žÑ™~OeÛÓã­P#|•1ïh•fOí%̈Ûëü•m*:•šö{Üþp2;â¥ß|¸2âò¨Ž Kë +C>W倰ßíò IãÕÕ<õU›ÄJe2‰ Wâ®l³‡õÞåèûŸÅ²Ù„… Ÿñx΄¥mB@ÔÔ#ºcä õ´íêÑŒh^n>nZ™Lüý˱÷.Ǹ€%]ª‡Ç÷IõÎXô±-:AÓ”>qÃÕ§ÃÝ.OoH3Hê%"Ãò†tÀ ô1,òw¹|ƒÕñêÁµíLý$†ã¦•No¿[^{Xþ@Ä?I§ãÍV¨×íî )#D¡«/T¯^k¾€´+à“¶Ý¾îÊñÊÝÍ<Ú9¥ õu¹ê'l²R©íþ@„Š=¬3ƒ›g7è·!L¥R1yQìa½}iãíOÖéÂT2¹E‹zëÒ:{Xo¬Q¥RQa*™ˆH‹ªÀZa ë5ªXl}[ª §-d+²"/ŠV—N¬²õ`ñ+ú®ZžWÈ¢ÕeÓl`­¯ÜùÕŸÏÓwÕÇO]ñÕ„`EëzéÍò¹£[a!úyêÝ ywçå¿~˜ËEw 6°èË|úŠ:›Þ,äã;…d±*îØ[¥RÁÖR+³[ÌwÒÉø"îHãö=`` Ê”#þ•£çO}píÎÂ#±á¥­‹½rtujþ¡€ƒ«Ssì•£ƒƒ}*Á”£½½R!—a¯•¤Ç®`ÊQ>—I%¢ì¿)-wDòdå(›NÄ£6|_(äÊ%”r”NÅb‘U;`ÉçJ9J§¢±Èаhö wʽªvÇû\Ȫr”JnE7—Ùê€/åhÔ[õjHÎi|– ÝàÙÚàV‡”#©h*n`ÕNÀ£rÔ’uDÊQ"¾Y_²V’ŠSå¨6¿E‹&߈¬/r«SÊQ+¤ì…U;_Ê‘ôò.ÈšlTSŽâÛë›k ìaÑ'œŠ7åHíI“ô-)G¤"l<°Vå·!’r´[Ûx0ÏVí")G±èƒõÕ9ö°Ê'ˆ ¦E#+k«ß°WŽdMG0åhmõÛå…{åèêäíÕ¥ÙåÅÐÊb˜6œ^´Š¥ùé¹{_LL°WŽ~r¢ï_ŸfƒŸ‹Qáà­ð›ƒ£#Ïz{¡A9‚r„Û÷€X X€åÊÑ“­½õÏ ÉÈô£Ô‘ªŸ¡u±WŽóûÓ¿=¸ÿ†HE+¢u±WŽ.ý¦L9’~ýËÿ`¯=\è§©SŽhE´.öß”̦©Sޤ+kî´ °ÊŸpÁ”#ù_a`…_-ÃJ9’`…ÿÀÖþôI*ƾQ ef&YË:"uCú/ëîI`M bìµP ¥²ŽÈ Ù»óÊþÔ+\À:Ì7Ò=Ud£2ß kõñ*EI™³EÕËNX·_Ü»ýSßHó”üïˆÚ’d£ò ²l$ï5Q‹,ZGd#Њh]ìaíM¾°÷Å/YúFú§jmAãϘHK­Æ÷P¢EM¾ðøaî™?ÕŽ8 VéæÏK·~ÁÔ7ÒëȤᣈ#î•£&³Ž´ ׄ!µqä0å¨qÖ‘YÃ5Wu†6#ŽÐX ÕråÊ”#(GPŽ A9Âí{ÀB`”#(GPŽ A9‚råÊ”#(GQ9²'ÜÈY)G:a¨‘?dO¸‘£RŽôÂP#Èžp#'¥™ÁÒ¨Eò¸>ôˆXŒRŽªæ«þaØLM1êC˜¼¤:0æÍÔôÉ>á“·Á{ÊÑ!° [§9‹”##÷Ȥ™š<®=bòxWŽÅ5j¦&ëC•ˆÊ‘y蔣TÓ¡GPŽ A9‚råÊ”#(G¸}X€…,À,À,ÀB```¡ ° ° °P€X€X€X(À,À,À,``` ° ° ° X€X€X€…,À,À,ÀB```¡ ° °ë‰ªÿuZ9Ñ{pèWIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cde-lcdnumber.png0000644000076500000240000000103212536324507022137 0ustar philstaff00000000000000‰PNG  IHDRL=07}oPLTEÿÿÿ[[g¶¶Ïííí:üf"tRNS "#$¼di8IDATXÃíØ1nÃ0 Ðÿ)ù"Eî¤vèСK‡,~vì&MH“r‘<ø„D2OH…^ÎxRƲßo{ž‰½Êco¢‡ÒØ;I¡Pû à’Kò4öIÀÝ]îyì‹€{swoilíØê­å1 ¬­mMcÞ±v ÛŽ æ1ŽWÂ"_&¡qþÌÈ,‚c˜Œ¥Ë¼Zfw\æ¶Ï0›ÚNŒ}2¥8†É ð ›ö¶:@ý¨f`ˆ­òXü°“¿N‚M=‚þàžàŠ™!—ØSÃE™K]êRª"ô x>A0Æ·ür²g¶c5…µ¿€ÕZKóÖÚÀJIcî+¥X)å86nu3³bvÛî›f4£ÙÑ6I! Œ=bû‚8Œm:6'¾ý#é`Î?ïgIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/checkboxes-exclusive.png0000644000076500000240000001172712536324502023565 0ustar philstaff00000000000000‰PNG  IHDR¼†g¨à`bKGDÿÿÿ ½§“ pHYs  šœtIMEÙ 7ä"êdIDATxÚíyXUÕú€ß‡s™A1SKA)q¨Ôœ»v5‡4-oz-­ë5̺¦ÜDEKͱÁÊL½75D»uYRææ”¦  €  zÎsÖï@d×ï}žó<ÉÞgío¯õîµ×Ú»ó-MNv–Bîl¤ ^DxAáA„^DxAáA„^DxAáA„Dø›äîf@ ;Ü*ùbWìñêRÙU`¾zu3Çð؃Á4õñ¡q`;"†EòaÂÌ¿Glµ=Ve.¸{âíß–îcbø&«°N¯½'.kç.Äɺ«‡´\ÞÉkýGòþÉkXJÿhºÀÏÛ?`ÚžÉØGdÛzhêr½* ¦ütŽl[Às9>ìÜ<‚Ævÿ C—pâ’²ÈÉ.ó9K¸c&qÏ´ÆÓÍF^­yfk&E‘¹u,÷y¹ÓÈÍ›ûÆn#³PFR¾\Àóƒ{Ö1”ð>O3}Í!r-5è‘R+î¡Léÿ%ú™GiÔO/|ÚÒuä›|•QXq9W²ùÏ“Á¸»¹Ó¨qgæœ2`<½€ÎMÜiäæoÄr’M€%ÃLæñ‚ðñò%èÁþLùðyUÅÄw¦òñÉkX4:š ÿ€„3Gø×8ô°üÌ»‘Ÿ“v[§hæêÞy në‡oÈ@¢v_¹y±XGMëØră òt§‘»/¡Óã¹d¶Ò…¬ œØò"z y§¶’j(ã§6Lgph0>ÞMhÞi0S?9F¾(ª3Vœsµm_žœì,Uá'i‹ wA —p—Tñ~ úyh ´ýÔ»ñ«Tÿ2ÿ^}<]ådg¨ÄOŸTušâòJ?¶®ªûâC*£²ã•ÿÛÁ öIûIÍ{ ¾²¥©¢bö&©ãŸ=«üu6Ê9t¾:”^QÙ™êÌæ~ÊêÕ앞¦~z³•r…‹ê²â¨º˜®N¼ßG¹i¹5n­§¸ö¤Ê¬¬î.ìVÒïk¬^ÝwAådg©Œƒ UxëP5ð¹êÏ~Pç2ËÅf笚;Û•G£ZG©iY*Ǫ8jZÇ¡jõŠ‘Ê_¯Q Un=ç«„ 5p!ë‚:¹e’j¦/޵^È,•VǺ!ÊÛ®\ZwÕwõ1•iµ3Vœ³5m_î\¬ëá¯îb@³ŠÇïZlj™Ów-eþ‡Iý_à‹Ì"ÐzÐ;z}=´`:Ϧ9_fR ä…Ogâ˜/±{ÉG$Å=Êpÿ&ç÷„ê:‡·Å±ßîi¾<›AòÏà[á-VCƒöééiHùü²ŒYìÞ”‚°mΔžhMØüv<9E€.€gW=_Ü£eòíÛÛ‹{¡Š0]æèå’F×€ÅAØù>MÜwÛX=…á݃q*_û¶žô[9ƒ6Ž cÆN.‹‡BÕÆQÓ:Î?ÄÔ)ë9k}³±¼¿j4ú¸àÞ˜–—’d´Á±ùPæ}0P˜Æ–è/É(T o΋«_¤¹=P”ÍŽ…±œ7YëŒç\‹¶¿Oi´xô‹æÍWl±`Ê3aÁ–FQÌëëQÀлӵÓDâSЇFiûf¬ÿ‡whBßõ±ÔµÓ¬ýçÆ Š mH_fî¸D¥wèúmøKt( ’þžÓûY¦…>}&êjÆ‹|—a,ŽÛÞƒîm»â®/–ñú…¤Wz¡ª›ÇÕØ`gcåH]ïÆCÁ÷ãRÒP–¢ŠÖÅQÓ:6¹d4 e¶Pß®¶*X¸žüüû«ó é|“v½$V7"B¾«!#ž £õÎT{εhûÚáÏÄî\¦y iJ.¸9ÞÄB~ò!Ò ê¦ªä¿5šZOÔ,·ý×® #>|ŸO†à¬-)[Q˜ó#ïý}1§ •^)´ógüô òN²lírŽç)Ðû1ìùÖ8Ý6ŸØÇˆÎÃÙ[rg3²0Tv5é\iïZbma.¿ä÷ö…)«Ñ—1¯¼ÅÚí'È7ßÞv6Õ4I¥qÔ¾ŽMç7óæöLÌ5q¡Ì^]bϪ%$^+mí²—¾ºåÎj½3Vœs-ÚþôðN­z™’(G|;ûâh£0&ÌK«Na(éqºx”t1†,~Ø·ˆ®¾ÅÃ#ŸNQœ¬LJ–zÚ’ ¯r$qYôªvîÝ™²b+ §Iˆ}ƒ¶Nŧ^˜wšÜ*ž–éý†2:Èå2‡Þ;Èe‹§VaDé½]ïÉÃ^úâŠtlMtÂ…}öéMtq®¬`_õ÷E¯®'ñáê]¤å_dת•$ßÏÖæòjô.Y¬¬bkâ¨iÛyðèäaøë5`¾Ìî˜55Z*Ká a͆œb í½èám_«!›ïì$ËP,»½ww¼í­uƺº¯qÛ[5i­èS2yI?0W…9Û(Ð(}à$õÍñ¯Õ¤@½Ò€²qUó\(™€ôUîå' ¶®ªÇ’ÕOZÓTTk¥)Ù߯Á[µt±+·Ï>õzkG¥Ñ5Uã6SIßýCÝç€[åÖ{J¼XÕ<]]ÜQÕ×”l³qUÝ?:^f2š®Ž­ê©Ù–?­rëµB˨¤î²³TVòԔ֎ʦ‚ºÓ8´Pã·QYÙVNÌ­Š£uœxT­|¨AqŒZOõĦSÅ1ÕԴʽ_I]gg¨Äµƒ•WùI«§üÉ •™m½3Õž³5m_«Ikee÷J ?æZÀ΋s_¤­G[&ψ—Xr˜¹Œ"-—·| ƒÃÛäïO‹1~ÁFVó¡ÒG·º&<5g<]¼л¶aXô2žl\îÕ.€ k1¡k}¾ÛžæÝçpÖ1€°§f±vÙc¸ÙV=ÿð|líØ”LÀ»ñÒÃnØ–Ùî5h%k^LûÆõÑÙh±oÔŒ.#ßäß+ŸÀ«Š·6õ;òj\,1ãzÒ¤z­ ZG7‚º 'jýf‡9×àöjMµ¨c;OzÏ@c]ñdðë9ŸsÞê÷GltN¸û·¥Çè9lXÒ«¤®mq뵈Ío£k +z­Ž†ÍblÌg,îå†m œ©öœkÑöÉK#ÈÿZ "¼ ˆð‚  ‚/"¼ ˆð‚  ‚/"¼ ˆð‚  "¼ ˆð‚  ‚/"¼ ˆð‚  ‚/"¼ ˆð‚  ‚/ˆð‚  ‚/"¼ Ôª]ÅÏd4b2±6ãªF£ÁÞÁ­V+µ+ÔAáM&Žü|„];¿¯¾0­–ÐÎáôìùׯ_¿‡«ÕBÞ/ ý:á¦Éê”ðJ)öîÞų砷·¯r_£Á@Ô¬×éÝçñª…ÏÝÍ€öÙuµô®`ƒ]=wCñâœ<èðÛ¬_š»›ÝæóJü­KöSHúÖi ˜°žÌÀi|ûõËÖVּƟˤo6‹ðuq o6›«•@ooÙl¶îÈeÖÊÎLãì¡/ˆîò3³Ç.åŒñw¨‰ÜŸ˜Oزƒü²ã¥ÚË Š(0[Ä.™´V6ð·EßÀ‡FN"Àpœ+…%½q‡~lûz!ZúÒ¼×’L@QñóGÜŸ Ž š˹ˆÂ´‘ןêF›€Æxx5%¸ËŸymK¦Š/erâç2ñoq?¾¹xžuãÚâÝ|0»r«+«ô­/ѱ‰nžMi1†?\Â\z÷J)YÞñ..u/Ô™§4ŠÂÜv®ÿ”OMå¾z¥½î!ÞØÞš¥ Çø~ÕXüt…¤®ŸÊú¦ÓÙz$‰³6ò3sßM,^˔IJqó¸ðøbv?GZÒ^>›gEs¢àvÙ/ÿ°€iß¶gÖ?^æ»Ã[oZr×9K¸}5e•ÜB—&-í$_Mså߯,æ”® qË•å,¢Õ™1üoFÉ··tôZ7‰qAW:€·oÆØ =hꤧb¡7}z™>kZ⪷½a}ºñÖkIz.ŠVöümÇeJô!lØß[Rn‰H W÷¾Í‹ŸðfL/Ü+ª]5eÙêqÓ’SdFcëˆß·Øß·t¦/b‰ðá–ö~LyÁs«>!ùÏÓi kH›eÓÆ,ö&ï!ª•'ãÊ^( #˜bìeââþ­lŽ?Ä©3§9qø‡s[Ýú%a)£×‘3x#žUÕ«*«^³çu§Ç˜PB–„óX¿§™6¹Md’*CkÂÐÕ÷¡Cß‘ø\?HÎ1¹[›[F>Xœ:±áTæÍE’³³Èþecɺ&’׌ãñ¿}N†WW†Œ›ÊÂ÷ߢ]ý2eγ-1ŒÅë°a±é•®_MY¶¸=º€ÿnåý×ÿ„ÇöH†ýs7Wd®*=¼õ7 Pö^8jŠ<Ô»ÒÁ¥ˆ”ü"p­`!Æü#Ì^šÅ´¸/ê]¼f¡ñÌÛ\-;İoÊS#:áæ\ÈkÏ-ãÉYñ<²üÕ¦,ïVñnõícÛÈù›K8 Ñˆ\ÒÃWŠã¥3ļ’ü®ct¨d7½C‡8±ý«Ã\¼nÆbHgÏò¡<Øÿ#R [G¼l³ùnïYòM׸xè3f>û§+\éÛŽÆC¢èŸ8‹˜y·¿I®®,c"Q‡1eÛY ÌE䥞ç:úâ5^mìhÀUŽ\(ÀTp £ôúuKx[[[ŒCµû lmmk4imäæŽ›»Í:`qÆ0–¿Ö§J{GϾÃèÌ… ºßŸ n¼ü}f¯ޝàÌÔy";º7-üZÒõ¯Ñú•çÌ„Yíøö•wI4ܾ­Ê²ôA¼3”ì¹½iîÓ„‰û轈œÇL|¢+záÛq‡ D´? Õ.LœŸ—Ç‘£GØ·gEEEU´Zº„Ó«÷ãä^½*µ+Ô=áÍæ"ê9ÕG§³òñƒR&ŒFƒÔ®P÷„™´ ‚/"¼ ˆð‚  ‚/"¼ ˆð‚  ‚/ˆð‚  ‚/uÉ-)ˆð·/¹%…{IxkrK^¹r…ØØXž6ÌúÜ’•æxüù=-üñ…‡ªsK¦¦¦2|øp’’’¶>·¤ ÔµIk^^#GŽ$99™3fйsç;× w(—“±ìßrw3 ]OV¼=™>ñöðÀ­I(S¶¦SXzg*8ÁêIÒÚÏ— Î£Y”Ëäæ+ì_1‰Þí+þ® ÂPPpëÏ¢8}ú4‘‘‘Lœ8ñîFžw‚Eû‰üü0©ÏstY(;"§p ÀÀÉw¦ócÏ•ìý%‘í¯ºðéËK9]šà)?‘• LÝô)·}WáO>ù„ž={’šš À¾}ûX·nLš4éîGnÈÄèç‰ðsB«ÑáÝ}~z#fc Ÿo‡ÞáÔ×9âß ?~ÿ*-ô%ßuhÎ 1å‘f.Ø•ÿ® —rþüy† BJJ 3gÎD¯×ýûD®w¥}ÃJ2)˜.sø Å W+B×ûJH™´VÁ¨Q£˜>}ú±úèÑ£ñóó»;‘ZÊçÄ)—w²,Ja*VÑ`#©ðDxk¥ŒŒ`üøñw-PÓåÃ\²6 µ®­!·Ð‚¼L~ÕSšQ£F1wî\ÂÂÂð÷÷ÿ²ÅÞxŽ ñ阔‰+g¾aYä{$Y›ÛÉÞ?u×ðm ER¿šJX×9œ2JƒKo~%¹%KŸÅ5Š^½zݶ_mrKÞ†K8q?cqt&Þϳ:†3rÒk´ýe•§å@›—f4y8mÆ&cô“Ï$Hˆô÷4’[RáË"¹%…{JxA¸§'­‚  ‚/"¼ ˆð‚  ‚/"¼ ˆð‚  "¼T  ‚/uÉ-)ˆð·/¹%…{IxkrK–b4¬Ï-Ù~ »Êý(Jcߌ‘+b‰éï]é~’R¸ÛcøªrK–Eooo}nI—pâ’²ÈÉ.ý¤qtygv¿<˜¿—¦½sîBÜO"»ð?9iµÃ{@ [tº™ö®&ù$­È7IQñóGÜŸ Ž šË9c™»N‡~lûz!ZúÒ¼×’L"ˆÿ[K_UÚ»*óIV·½ÔõSYßt:[$qöÀF"C~fî»‰Üøõmî!ÞØÞš¥ Çø~ÕXü$9™ÿ»RU>Éê¶›RÙôéeúôh‰«^‹ÎŰ>Ýȉ]{3ß}3ÆNèAS'g¼ý°?î½I늪òIV·Ý˜ÅÞä=Dµòd\Ù‰ræ”]t iÓ@ºuþCù$«Û®ÀâÔ‰ {âxÔµ‚Ä’¹Ö”/ÈæŽRHzüÎõw~8¡w¥ƒK)ùEÒê"üDö­Óø·ýt‹^ÄwúQ¤Þ¡CœØþÕa.^7c1¤³gùPìÿ©²ô‡ iÊR>·deüÚÜ’ûfŒXË‚%/žî(:ž}‡Ñó_bÐý;I¾V€‡F2{Õp|íy1|O ¹%¾,’[R¸§„™´ ‚/"¼ ˆð‚  ‚/"¼ ˆð‚  ‚/ÜËü?¦¯ÛŒàôøIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/checkboxes-non-exclusive.png0000644000076500000240000001275612536324502024360 0ustar philstaff00000000000000‰PNG  IHDRà†Ä€†¦bKGDÿÿÿ ½§“ pHYs  šœtIMEÙ  q]e{IDATxÚíy\”ÕÇ¿Ãl€Ê*‚a*š–ŠRâR©)(eWCMÓê¦×ÔÊ £®ÛMܺ©¥f¥m.Ýk¢ÝêfE‹k”K¹¦ €.,23ÌÌ{ÿ q€a1õö|?Ÿù°¼ïœ÷œç<¿óœsÞ™÷Qåçå*‚p]p‚PD€‚ ˆA(‚PD€‚ ˆA(‚PD€‚ ˆA(Bc °`1!^xxzááÛñ[s±Ø:2”íÿGV¹–m»Nv³\ÜËú™c¹÷Ž0ZùùÑ2ä6¢FÄóvê…ëÓ§õ½Vå÷U~yùàÔ‘>cñenéMãj»Ï,=ÃÖgŸes×·¸ßG#CW}qíIò‰Ü?ô’ÖóßñBô(Þ:r kÅ?M§ùeÛj¦ïüœ-ÉÄwl‚êf¶«bÅT”Í­‹y,ßï6¤¥öÿl jÎýœOm"»¦F¹Ä±fÛ= ?_Út‹eÚû)²^=‚ù÷ZÊöž¡_ÛV´ê˼]~w›žTÈþÕS¸ïöPüZzG4Sß>@¡0Ÿ%ù‘öøxzáÑ¢=l9‹3g·ŒãÖ^xxúr븭œ5Š‘ŒOóDl_"ºv'ràÃÌxoÖ:ŒØ™¶GpSöç$>r·…úããÝ¿àŽôõŸå”Ú.çBÿy0 /O/^xxÐ}F ç,µ8¤[$Éi¹äçžæðæÉ„è¬ÛB¦Á¬‹ÏØÑæZûÞùy¹Jµ¯´ÍJ¤ Tz©Ý•¾K÷*9'*s‹T’Ór•ü¼åèúaНVuå{4^Ê 5•³UÊԺݪø:9”Ÿ§RœÛÿCù1«ºúd+‡ß¨xjªÔG㣠Y{D9›—«œ9´Zì­QEã=Xy#e•]éï5‡²Ëê¸îA¥¥NuU»ú,ݧäTmwEÛªþo¯s²~RÜÞTqEÕ$\Y´+M9´ñQ%Hç ¸v_¨ì˶UöYåĦÁŠ·œ”vsR•ì¼,å§—Ú)N àà¦ô\ù³rÆŽöÛ´Ûéʳ¡ú²sÔçwŸVòór•œ½/+‘í»+CKP^Ýø½ròl•ºi]•6®ÚË}ãÔ~nyߨSºÚ¸»²få(%H¯R@£xö[¨¤ž¶Ã'+ìž{Z9²y’ÒZ_V×&᳕Ô,ûüÑ>Ÿ±£Íöô½öØZ2 ÌË9¾™5™µFÓÔ,6'~JN©ú6L^3™6Ž€9¯_N┩ÊéF3#VÿÎ †œo9c¬æú¦Ólz%…|3  æÑUO”xæ³|õÊ6ΚAã}‹æ ÀKæ³ÿaRô“|Rv€‰ ä­Ó)>š÷ Y&ô!<¹n6á΀å;–½Cš±ó Ãi>O/*‹J û·&³Gû0Ÿþ–Cú'`sJ¤¢Yç‰ôóÑ2>þž\c.;>ÊÀ¨="™ÚÏí·m·óü|¾|Ö5#¼YY%´“üÍVÖ$N%®O.U=AíÃà×.÷1绲¾±§uµqÑ>¦MÝÀoFзÇ[«Æ¬·ÃÞ·ÓÚ ¯–´òiFœÛ gÁêqéìóGû|ÆŽ6׫ïë2Õ1~y<ÝÝÔXÎï`î¤÷É0UuÀl¾Ì*Apô$*ü.¼ôâJ!§ªáõžÜÖ ·òÊYÍŘ/VYdWLïŒgø&ÇX^¶7}:öº\vÉé¯É6–-i½'òR”;j¬˜ MXQã5—ƒ¼Ë¼Æ3¤äÊÊÑ{Ñ«ÛDR2rÉÏË%kwaúÐÉŸA·4ÅP.gí?¦2vhÃ1óësT;£jÚ¿Fû¡C¡8í_ì>¾‡ 'ŠQÐâ7p ÝÝìl¿Í5Áï×U9 u°s¥g«o;û¡®6¶9g´ ŠÅJSm}7ç­”¤ÿ—v £ÝþhŸÏÔÚæzö}ZªÃò{Ò\máâÁ-d–ØêîÊ¿+WŒô¶.¯u¨‡± v3²G»Ê×]C.†ò*†,ö¥WZKZ)JßG–AùÝ!•òßUªzoÜÕB_V¶s{SO_>'ïøGôt-Ûp8¶êiÞI7¢88Ð#gcú»<µê†ò¹§wùlÈåûÝKèPmýºÍåHu"Qih¢)7WéEÝN®¨£õêÃÔ•[H=v”Ô¤Ytt)ëŠÒÂãÔ°×gL¨3*ëyö½¹—óV.íþÊÈŠ¹˜]í·UpC£Ы€’4Þ^³¬¢3l_õ:©‡ö°eõ|žOÜÉ9«½£°õ¨«µÞÜ3eAzXγcÑ{u^ (ÖÒ˲òËDa—?Úã3öÙ¾>}_÷ð£õgøÒ¹ÜíaãV„¶%±ñýñѪÀø+ËÆ¿Ê¯Æ2÷nhö…u-¹rOÜÕÀ¥ƒÌ¸£eù4Õ—°‘’cÓÉu<½ü0—úàq¼³z ã‚õ¨”KZþ ëNš@׊¸iýðÒÆã,õKµ;‘SÇâh‡ã]ú…Yãÿ…Z_¥A¦4–Dâéw;Ó¿7м¹•R‹¨qï:ŠçšÛ7äñö¸T ÌÍé:e~ZûÛoGÚ<¹Œ íœqPJ8¶üAƒ:ðÀªtŒ ¨œÚ0ò¥aøk¯êlcç6<91ø®n8 `8þ w§Ö1¡Ò°]ìJÒ˧”=Êmm‡?Úç3v´¹ž}_¯É¶Ö÷~^™ß¿ÌÀW®Üñì¿„M¯Œ§Wˆ;zŽæ­ïdÜ¢,íïi;jÖá–e‹¡¯óÞ‹±tnÙƒGÖôõÿ~ý~ZCòs‹ø¡À Ú ™?™ŽÞ™2-´`-HeaüVr̼‡¬ yÅTb#;Ä-]îåñŲf„Õú¡ÎŸ‡æ=NO_'ôœ[V1€.˜ ï-aB¯¦|:®3múÌã7ç`"šÍÚå÷â©®¹}>÷N s³².Ñx÷æ©»*Û¬–ö×pkÖ¡iWžONbÑø~„û7C¯q@ãìIhÏ8ænØÌœ×:8‚=õ¨‡µ> Hˆ¡¥®lsã‹ysÊîûé*t.xu¤ï˜y|°¬¹­kñG³ý>Sk›ëÙ÷*y.¨ Ü$7âA ‚P  ˆA ‚P  ˆA ‚P  ˆA ‚PD€‚ ˆA(‚PD€‚ ˆA(‚PD€‚ ˆA(‚PD€‚ Ô ='™ŒFLF#öfqQ©T8:9¡ÑhÄ‚Ð`šLøåÛ¿û¶ö5º÷ˆ¤_¿»)))ù›ÖJᯩ»á©G @EQصc;³æÌCïh;ƒå… HJJâ¡#˜;ûE ¼¯fì ¦ó¶_¬ˆšh›xÒ}(“ç%ð`ˆS½ÓG×HÁbz/ä¹”òÌ»WPJö–éÄLØÀÙé|õÅÓ„ÔW<…©<7ŸI_n  €Åb©V|™™™ÄÅÅ‘––FXX‹Å¾BÝ"IÞ[.Å‚ñâ)ö¼;… ã^£ËŸ%Tÿ[£à'¦Ä§±|//G·@ײb¦Øbj¤Á›0………Œ5ŠôôtèÑ£Gý R©Ñ7 äÎQ“6âBiy´ê2˜­_¼LLÛÚô_Fš 0瓲p4‘a­ð íÊЄ$N^Î)®`HûêM‡à–x·hEXÏ¿ðÂæ,L¶‡òSæ3ñïÿ$ªÓ`¾üæ¿q€)åãpú¾¥|}è$Yi»xw4lšÈáâ«ÅwþûÅLÿª3³ÿþ4ßìßLd«H’ÓrÉ?‘D¤c-e•GÌîË÷“•u„Ϧ»óïç–rLדä½UÊrg(À÷ߟ~ýú‘™™ ÀîÝ»Y¿~=QQQLš4©îW¿X!<½ððô¦EëÛ¹ÿ»(õpCW±tl͸ }iåâŠo jS&­;ÏÀ¾mq×kй1°7ùIkI3ºžùú֌“³#&Â)Š,Wn’\Üõ “73ó[ùîí(K­ÇSWJ¾Ù‚JíLР²gûlnuÇy XÁ©S§6l7ndæÌ™èõzëwõÊk@¬˜ sø9)ÇV½Oú_fp €®9šUÚÅ0æ²+}'sÛù0¾ò ¶ySM€# ˜8³g ›RöqìÄqïÿ‘ýí®_aêkLL\O~ì‡øÔ´IRSYM™³ }Çv'|Y$÷~˜éSã/›.µàèÑ£˜1cÆåµÞ˜1c l”`¬kêG—A£ð[²ŠüËk:j‡+fªX]ºñÁÎdîq·µOj"ý½ñ {SaðccÖ{(Íœ³™öð[¿Ÿb8ÅÖ£,]΋$û>Ã}5õ(Kç=‹ù|ÛÜÈJ#eQ<# ÝÙ:«'ÍÄ·„k+DÀã?Þ¨RÌÅ(Ž-pÖf'èÝéâf&£È îÚ«`Îk¹LOþ„á¾ê² yâ.VÞqlÅC#»áéZÊ -çÁÙ)ܽân<êS–Jo»®ø¶»ÛáÃ\ØöÙ~ΔX°²Ù¹b8wD¿Cf) v¦…:ovýF‘égömd棯rÜ`«0--‡Í%úèlýXxõ'}j+Ëx”¹wE0uëo[Ìfž¢=j-͸ÈÓŘŠÏa”;BC¨V«1 WˆpåÊ•Wg4P«ÕuÞ„ñôò£u‘,ÍÁŠnÃ¥Úè¡#øÑWsöe†v Ä/´7OÛ9«âÐNaL[ðy‰¸%°-½þö!š¸oZMqNaL˜}_=÷G W«±,}(O.NÞü´ñó'|ânz'.ávWÀù&Þߌ•ýC è:‰}ÅâlÂÕ¨òórkýˆgQa!~>ÀîÛ1›Í5Ïi5"zFÒÀ}\¼(„† Ðb1ÓÄ¥):Û{Š‚ÑhÂh4ˆ…¡¡áÚ„A("@AD€‚ A("@AD€‚ A("@AD€‚ „?;’BnxJnA¸~¼f¹!ªÍÑp¹ž×„º ®QnAø“sã䆰¥ºTÉ©Pù;ˆ¹­+_™ÂÀ.!øz{ãéß©[²)­ˆÜŇY3éÚÚc KR ¸üp2Ëö¬œÄ€Î¶ß+7¤¯]nˆú¨ÿ0Kv‡ÿñ~2ÏœâçåÝù:~*?8òê ~è÷:»~=ʶçÝX÷ôk¯xàoÑQ^O aÚG?‘qÕ{á`£ç†h(Ž!LL|‚¨@4*¾}F¨7b0fðñ6LS3AÑËøáÛç¹¥"å™Sž\ô7în톶ê{áF€¹!222ž¢¡èÝéܼš'µ™Î³ÿ¸ë«i¢®9šKá&Ù„k¬UŸIZ%oDe+ÔeW…ƒ<:^¸™XY„×*7DM˜ÎïçœÉΓuÍhï ¥Vä?ÂÿÍ´B„Ÿ¢*j'ù %“bâ‰/YÿfY@»Ö‡<ÐGÅW©§1˜ d~6ˆ^ó8f”NnÂX‘¢â^àèÑ£éß¿ÿUçÕ'7ÄU¸E’¼w#K£ˆ™Ø ¿Gu4‰dÔ¤èøëz;kìD‡§æ:%ŽãÒq½—)Kg–å 7’BntJnA¸ŽáÚ Ûƒ‚   "@A ‚   "@A ‚ `½‰‹ySþ„Ææÿ,h\ÜHÖ¯_'–„ëoFñI®klÌÜ¡Ž,ûBîþ?mn4„kÅžâ²3ì ¦ó¶WùҼʱ5£V&±(Ú-ÜyD|Âu_Ö–"::š„„~Ú»·ÆÜW8³[$Éi¹äçU¼²øyEv<˳‰wíIòO×7‰Š¬…ë.Àê¨knˆšY‹oÌ"6/îöûcâë’ÂŽ|˜óIY8šÈ°Vø…vehB'+ÒT°ƒ˜.ƒÙúÅËÄ´  Mÿe¤™$ 7š¢vgÖÖü˜øóAÔv¼”Ì ÓØÐj[¤ñÛþ óß8Êå§×ìcÖ¶ö¼–zoW#P'P¸Aع!ìÌ5僨í¸)“Ög`ß¶¸ë5è܉؛ü¤µ¿?oÔ±5ã&ô¥•‹+¾A.¨e (ÜH°¡¹!ìÌ5僨í¸1—]é;ßÎO¯²WH,_eæBÅ·uÍéÐL'k@ááÏ Ñð-ýòAÔv\«K7>Ø™Ì=î6CØ~¿D@ᆉ€£G¾"âÕ57DíÎ\JvÊœ4êQ7vkõîtq3“Qd®ÓÛ$ 7Œ+DXßÜ5;s)Ù[¦3ä™=ôN\Âí}ëAÈða.lûl?gJ,X Ùì\1œ;¢ß!³ôN›¡¡SÐÆÊ q…3ÛÈ ¡rlÍÈI,Ž)¿ߨè~ôUÆ,|Š¡¾#ýR‚ïÅœUqh’k5m„jLtnqfA¨£ÿì¹!dЮ«Å™áÚp]¾(߈„ëA¸ŽP  ˆA(‚PD€‚ ˆA(Â5ç#Á·PS¹AIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cleanlooks-calendarwidget.png0000644000076500000240000002302412536324502024540 0ustar philstaff00000000000000‰PNG  IHDRTÉ|Êœ%ÛIDATxÚí} XU×¹v‚8Fp<2H…øØ$5æùÛ&­Cz¯ZõF«ÖëoPÓ4µþUë”Ô´Õ;Ĥñ¶Ñâĵה˜TôÖKC~œq¸FdÇ+8+N€ßÝßâìãas†Íá°÷‚¼ïó|{¯½Ù¼gíµÞý}ßÚ‡ï™#û ƒÁ`õMÁ3 ±gø—nV\Á`0˜5JP¯^¹ƒÁ`0Å ¨0 A…Á`09õ™†‚ ƒÁ`Nµ•Æ|­æcµg­A…Á`07‚`gmk­˜¿b~vëcU* ƒ9Ôk§X[;aUE‚ ƒ¹3eŠk.×m)ý#‘ ÚYbÏY…µ­ÕkUEÕ§Å jÅ©Lzø÷GOÚ·'òõ¥š  ªzé%©žŸŸee~]çXæÉc¢]–Á©òpffp ;ýÿÿÍÖ–yÜÆéÄ×Glí{ÒÓDÿŽ‚¡§ÿd"OïwS~oÍg… 0µ«ÆXT;iDÕ¯E ê£!?w+i•—ÓÔ¿Òþ!™ ¶¢·gL«slÆô8Ñ.ãÓ^N?™4Aðˆ_¶ÄÖöáÿbã÷› ¶ößþf¹hãß1ûó;û}Yµ%ÎçF ªÅÎzZEµ³ÕSmoÍ«ú[Ãþ–%¨OüýEÇUdhPçjÛÔýÛ¿ûª{‹H»ªç#éæ_¶5zÀò$ ¼œLÑž«<…yêÿRoP_¹TFï¿·BBB¨U«Vâçû‹ˆvíu?V¸öV¸²0?¯pMiWwMOÛÿ\>O ñK)<¼—àÔ³gOZüë÷D»'<>ùÃqý¡Ê$SÛþþï~H:u¢®]»ÐÀ¯ÛÚ4j¤8—§!\–',}Ìçôéó<ýÛšš\P]Ý7½}o„ ªÇWþv…è?_Åclj!Ö3ŸÙî._V;g}|¨F ÷2‘Ê óëÌe{k  †ÚY˜UX»Y=ÕŽÖœjë)¨5ݺŠ«éÜ™(Âu烦 Mx-:õÙgu *_£üìiºµi½Ø¯V&dcìÑÃÅ`üÅÌwEûÌŸÿŒü•Ãa¿vp²xòþÏÞy›ÊJ‹ÄOÞg‘u$Ô% ×Í WÞoW=âù¬¦µç-]òëZ^Êà>Wr†æýjN=³!vJ™Tüûí•ðïÒ…Rºx¾Dlÿxü8šò“ŧðt®8·›2øÜSÖ‰¨‡ {¸Ü6B 1 ò²…ñvS ª«û¦§ŸTîCæk„g«g>³ÝSæÉõ}»©üÜYºýáµsW^òP{ÛY„UXUO5ÐúXó¨-KPo&o¥*ų¨óDRžüwVÿkÝε>]Ý ªíæ/u(ÄžØ7ÿa¬×víÚ‰ßÑà ®# jν(íuÕ¼ìE…«£‰èmAõÕô¡ö<5çyìè!±¦0O쇅…zÌ…=8¾Æýu}±íÏb›…èÏŸþIlÿá÷Ó‘CÄöó‘‘ âÒ«W˜hûú¿ÛÚøü¦TW÷MO?•CU·Oi¼Å¦T=ó¹ž]"tâp_¤ÚÁÉ^ï«!þee°ð>·z*¨*w­ñçö”Ë´¸©â‹Χw~ú¶è;ö8Ù[íС=9‚>R&ŸóÖÔ) ⢞Ã}¬¶±'ldUÛf† Ê˜ v5Ÿo¤|A_ý>=Qî?;<6áµ{0ÁCõÖ8¸Wtä“Ö­ëw®U¤Ø 5ZPíó|Æ;;§§Å¢ÛC5ZPí…ž½,íyìýñ>爽u?7mL×|ýõ(ŠŒˆ þp¸íØØ±£…·?fÌÄ9Ö¯k³«i[[6‹H²¼´H×|† ê°Ç^£[üD¼nQ®x-·6üQtäÃáÃlçT+G܀ͨ¼¸îOždŠ ê9ç—¿œå0‡úÞ¢¦ ª*>IJ–*}8YéCíy¿Y/ö'üx¼±9ïö™Âý`ð ¹ä¯Rõ&yAG=¶>q­Í£ã°ùtþ©qÑæPù÷È¡ºjÓÓÏ-YPõÌg^„â¶;þBåETùöŒzsUx¯Êþ5kÊ‚ª÷5‹¡C¨:4D<ÁÄŠŸÏʽãÔ€v®Þ]º˜žtìèé*?B~ óÒ7¥°(ƒÁ`T “KPòÃ`0ƒÁ ¨0 A… Â`0ƒÁ°ÊƒÁ`ðPa0 *=€øF„üT*T*T*@ã‹RT*ßdAå2±±ÑÔºuk ¤ñãÞ5yô7BP¯_¿NYYY´oß>:xð åççÓãÇmÇ+++Åñýû÷ ãmn3î8VUUQnn®àÇÇKJJ d×®]£“'OÚ82Ÿ‡Ö9çìÙ³tàÀaÅÅÅÒñÛ³gÍd€}VÙ––FÆ Õe;wîLS¦L¡ŠŠ yîÚECÄ%R‚‚ˆ&L ºx±y ê ØútëQD,?7KÔ˜‰‰Ö}ÜAe¡âÉV]]-DêÌ™3”™™i;~ìØ1!P,Zl¼ÍmFÂǼ¼<›È²ñöåË— åÈ|xBq1ÏÒÒR:qâ„íø¥K—Äþ£G„?~ÜPŽîøi…U&È(¨Ã‡§ÔÔTºwï•——Ó¬Y³hèСò2„hçN¢[·ˆîÜ!JH 0 e…ü\'‹¥yz܈Ÿ'{1*x»¦¦Æ¶ÏÛöÇÍ€–#{¦,*XT‰…QÐöó¹qã†mŸ·Íäèê>BPŽÚ8Ò”÷ï“âN{[PÍ]åç’·QQ<>n„ ²ᡊS§N oFõPy›ÛÌ„–£#Aå°ÚLÁ?wîeggÛÚ˜=GÞ6‹£#~ÔÆ!%%… $'9Å‹¦U«ˆFŒh9êîô/)<¼>´ß£ãFêÝ»wéÈ‘#ur¤ž>|Ø–[ãmmîÍH8☓“C6Ñçí½{÷šÂOí§ŒŒ Å)¸okg>Ož<±íó¶ñƒ 6.A………ò‘³–‡¦nÝˆŠŠZ†‡š²ýs ¡¯ÒR=:n„ Þ¼ySˆåηhò—Ú*·™gÙ#eQå–…‚½hþi¦‡Êì½hÙ6[Hµ&“È;23ÆžClÛFÔ¯Q«VµùÓ©Sy´Œ*¾)@K¾z à}A…‡ A… A… Ð"9Tx¨Tà¡BP€ BPòÀC… ‚ KÞJ±±ÑÔºuk ¤ñãÞ¤‚¼lÛñÿøS xíUò÷÷§N:ÑèÑ£(+ók9µ¢‚($¤¶­d¹4†=¸:ìo¼AíÚµSº2„6oÞ,uvìØQ~\’yذaÔ¶m[a¼-S™f®À;aÂqo»téBË–-“á¦>5-¸„ù‚¤ )bD´hQm[sÔA±1ôéÖ-TZ\Hù¹Y4czÅÄDÛŽGG¤-I›¨¨0ŸŠ‹ hÁü_Ñw¿ûäÔ™3kKÏJ*¨²ƒ'?—Þ¾}»(xáš1c†´|׬YCóæÍ“†Oÿþý…H±pq…ØÅ‹Ó+¯¼" ¿I“&Ñ[o½Eׯ_6eÊÚ´i“,¤~ÛºuDÔì»t‰èµ×ˆÖ¯o¬ šûbÿ¹’3Âuv¼¬´Hx³¦ jA)jP[z‚êñ„KJJj!ÜãÇ)22RTf•<¸:¬ ®j ¿öíÛ×) ΢:pà@y•Åt÷î§û¼ýúëÍËCÕZÒæ 5Àá1öbýþ"6tˆù‚:b‘*’ jPPùùùQŸ>}håÊ•¶ ¨² {÷î‚—Åb!ëøñãëL@™ÀžU\\œTœFMË—/§[·n /5>>žÆŒ# ?õµ‚Êi;i•Ó9·o?ÝWú•<ä+… îNÿRqúzÑáCû–›æ\ÌÑÃÍÔôtŽ·ˆjj¤T,¢ÙÙÙ4xð`š={¶TÜ|}}EHxíÚ5[HÈ97ÙP£Üç¾}ûJW_ž½å^½zÙæos¹pY0nÜ8š>}ºU6~ µâ’Ͳ ªÏÓ9]{ãy6Ï?eûçB_¥¥:=‡s¨‹Χ×^ý¾¹‚úò˵¢êêæH†+W®ÈãØ‚Žõ<eömÛhÔ¨QÒñâE¨%K–ÔÉ¡>\~4vìXjÓ¦ˆF¨GðP›ÚCM\÷ Y”Žv%¦ö9TW9VCÕ~¥ÐÕª¡D¸zõªT+Ô Î§iµC‡Òõ/ôdddHÇ‹ç6‡ÊyUYÁiΛ#‡Ú„‚š¿”‚ƒƒ)ãÀ^‡Çßü‡±tpÿºt¡”Ne Ÿ½ó¶Ó«iï¡J(¦'N¤œœªªª¢ââb9r$M›6M*Ž7nœÔÃi&œ©©©Êx‹’R ÔU~5‡ÊÛ2­òóý,++£û÷ïSJJ ………Q/æÊ*¨k×6Å*¿±‚êè]?¶’³§Åñõ‰ké…¾-r/œ?ðãñ”—“ AÕ¦öë×Oô?°æÌ™#¶lXºt©¸¯².J±½cÇ)5//OäÆ9¤æÕýAƒ‰6Y˜˜h[p:t(ª(È(¨œ*ñóó£>}úÐÊ•+©ººZ~Ý»wœÔJ¨¦V¹uwï6m"Š‹k~9T{Ûþ¥òôïE‡í·µ}±íÏôÒ‹/Ò•KeT/‰Uff&EDDˆLFŽj®[·nTTT$ ¿ôôtêß¿?ÕÔÔH)¨*XD³³³E‰éÙ³gKÃÏ××—Þzë-ºví]¿~]äñ9O. òýíÛ—(?¿ù jÊöÏEXÿUZjö_|AˆªºAmÜdÛ·oŸY?.µès•ó”ÑÑÑÒð{ùå—…¨ÊbëùÛW®\¡N\_^~;v¬ã‘²¨¶oß^>AݶhÔ¨F]ÞÔ?qÝ'déÑ£ž˜ªêÈ ¨ ŸlÉÉÉlº˜6$‡jVžWï*ºY¢ªçï^½zUˆ˜,üXOP;tè Ÿ ¾ò QF†·ÕX5!~©˜äöê:ªgƒyõêÕ¦D1ù$qœÝº…J‹ )?7‹fLS:=Ú+%O «)Õ¿? ”"ZÄ%/®-ôeMv®ÝÃ5|¸0šZÂw×7ǧÔÔTºwï•——Ó¬Y³hèС¶ãëÖ­£ˆzR—.]¢×^{Ö¯_/ ?w}l6¿†ð7ƒß!ChçÎtëÖ-QÕ6!!AÜo ÖÖŒRø)I!Hä¨fÎ$Z±Â[‚jnÈ®ä ùûû7/AåÊœ>Ýð ö)(‘ r¹^mÅI®Bi&*++ëT5åɵ{÷nÛ>o¿þúëÒð3[PÂOÏq³ùq½«ç‰B°vîÚ£ €(<œÉ5OUkI›7PTÔ€:‚Ê! Ÿ_+ŠèÝ›Þo!]¾xN.A=šhùrR½µ^j|<ј1R *‡úZA5«f»Š”””:UM¹äñíÛ·mûìɘÉQËO6AuÅOÏq3ù±»jÕ*1b„™H¤åÇ|’’œÏõæä¡îNÿRy8ô¢Ã‡ö×;Æ"ºw÷WŠÇE?}{†\‚Êy ^½žæXy[ YeÔqãÆÑôéÓm%|ãââDuL³™™ITh—köññ¡ššÛ>oûúúJÃO&AuÇÏÝq3ù©9h®l[TTdV’B°îZGzzmúNƒÍYPS¶N¡¡!ôUZªËór²OÒsŠ'#• r¢{É’º9TÎ×H$¨¼80vìXjÓ¦ uïÞ]ä¯zôèa ¿}ûö)Îp:~üxvY6›ŸþfòÛ¶mõë×OÌeΟN:•®^½jätlÎú§%¬òã›R4wà«§ÞTx¨T*T*-RP‘C€‡ A‚ A!?*<Ô-¨Ó>øOšûî[Rÿ‚Ú,n„*Z²ó!³ñPe7 ¨ðPá¡B~x¨ðP‚ A…‡ ùòÃC…‡ ÍÎCý,y+ÅÆF‹Ú24~Ü›T—]çœ=éi4xP¬øoó=-úøw+¨iiµ…øø¿ñwîL4e W½{zÜKuhã¡®þâå+§ÇU5t÷þ#:œwþß¾¬sβßG9¥åôðq5ݸó€6þ-ÓP5MéÇaJ?r-öÎJ?NQú±Â®ý·w.ÜgÜñã ž|œÇ!oYUÔ¿›7oÒ„ DÉð.]ºÐ2.Åc víÚE111b. .¹"°\}aÁ‚¢ÏõE‹Z‘ÁöìÙc³á¡Š¡O·n¡ÒâBÊÏÍ¢Óã”›m;Î%¥¹êæMëé\ÉÊ{AUBòó#êÓ‡håJ¢êjSs¨ÿ¶ã>Ͷ»ò!}q°€nÝ{@”ÿëÂKô‹ßÿÍÔ*W_uVõ’=«¸¸8S'™–ßèÑ£iùòåÂc/5>>žÆŒ# ?õµ‚Êáµ`/zÕªU4bÄ[§onß¾mÛç~4‹Ÿ‚jÞ*ÿîô/)<¼—óÕ6___š8a<Î?E…9"Ç:zô(ó53“("‚jõ±ˆfg×V@=Û45~Ë>ºzóžóÕ¶š'O(#÷¼È«ÎR„”s¬ÿ}ú’ij¦ÒJ?:ÊAÖÔÔPß¾}M+‡ìŒ{˽zõ²åwy›CWYø7ަOŸ.D•H\aÔh¨ýÕM‹ŠŠlí>>>âÞÚßgžßðP›ÀCMÙþ¹È•~•–Z§½C‡öuïÊ"Ÿ¼ÓN>$r¥ Ú_§ýþ£ª:)‹êÃÇU¦x¨û”~ Wúñ¸“~ärãF2mr9ãÇ BK–,©“C弦,üxjìØ±"’ëÞ½»ÈaöèÑÔ>äêŠ+(::ªÑjâºOÈ¢Üx­˜²½úýïÕTÎ.¨ÉÉDÁÁîÅ”ÁµÆ=\nŒ‡ºî¯ÇéÆÝõÄ”íÌÅëõõÁ£*Ã=Ôd¥ƒ•~<î¢y¡'##Ô‰åŠçöµ9Tg9`3ø9J›ðB•™9Tûþù†æPÔ„ø¥b€dØëðøG~@?™4Aˆ*‡ÿ¼Pe¨ ®^MFä,8‘('‡¨ªŠ¨¸˜häHÅÕœf¨‡š¼7—®ß¾O¿Þ´ÇáñM_fÑÁœ2!ªlþóB•‘êj¥Ô~tÊó*vTT”)“Ê?u•_Í¡ò¶‘«üîøñ YY™2ίò¹†ñ›ÛÂ… ¥zÕ›ï£â«§’ß”€æª$Àwù E *¾Ë*ÀC…‡  ¨Tx¨A… ÂC9Tx¨ðP*ZM“&þXº*{‚FDk¨àŸ;w޲³³¥ãÆœTQQP9DÝ»w/=zTô¡ÙEåìÁ¥¶™ÿä•Ó:ìiÉNEÈæ=Ÿ:uJDFª‡ÊÛÜÖ¬C~{Ûþ%…‡÷¢Ã‡ö×;våR=é´Ü´Y‚Ê9,~òz+÷ÒTy,žt÷=¬ÄÚT¸qㆱT‘’Õ#d~|Ÿ9ÂéYÀB¯æïÙx›EUÆþã’ls„½eŽŽÔ9ÂÛÞò MÔ”íŸShh}•–êðøúĵ4|ø0©Vù¹6;ß„;wîHn©9Ô'NHŋŔEµ¹„Ø=’jQ…¹Ø{¤,ªì©Ê.%í-ÏÏ›àµm•Ûš}ÈŸ¸î²ôèáTLÙ¾óÒKô×ÿÜ. ò áUUÙÅT檣U`™EU6AådsT~pÞºuK:^åPõPâ—Rpp°ËPžßøÞ÷¾+Í{¨çÏŸž©¬a>ƒ,îÝ»'Â-‚¢¢"©ó¼2z¨>«}ÈéÎ÷Ê”T󒪇Å!?ßw™ÀoÃÈÙ }‹[åwôž)[ÉÙÓ¶s^ýþ÷èß7o”FPyVZËfñàà<çOy²±°BP=ëCŽFø¡dïÑÈ~ZÖE)S^´•ü°ä¼8{¥lìpp[‹È¡â›R´@P ¨T¤Tüsx¨Tà¡BP€ BPòÀC… A… €_GȃÁ`°§æ±‡ ƒÁ`°úÖ`Uñn똭¬'u°þRWëEB­ím÷³·¦-ÂÁ1GÖÛÉ9Ú6gçDè0GÜz;ù ½Ý\CO›žÏááõô\ß›<{ëìOGã w®­w¸ú{ÞäÙ» xö–„g„xön"ž½uŽÏ“y6ZPƒëfusìno„ÝÏM[¤ƒcŽ,ÂÉ9Ú6gçDê0GÜ"œ|†7×ÐÓ¦çóFzx==×÷&ÏýéhD4àÚzÇ«¿çMžMÀ3Bž‘^àÑD<#tŽÏH“yºùá¡ÂC…‡ ªq*‚ A… BP!¨¾ŠµV¬bíÂ~‹Õå µûªi spÌ‘…:9GÛæìœ0æˆ[¨“ÏêæzÚô|Þ0¯§çúÞ䪳?ƒÐ\[ï8põ÷¼É3´ x†JÂ3Ì Û˜ÌSR?;1õq'¨ª¨ªÂªŠ«*°0 öM4_;õ±ÓÉgÜ *Ðü/´/ Ú!ÜIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cleanlooks-pushbutton-menu.png0000644000076500000240000000615112536324501024741 0ustar philstaff00000000000000‰PNG  IHDR‚‰o¦wi 0IDATxÚíyPÉǽK±Ôò(oÿð*Ë*gy ñ,ïÅVW#¨ º&x€ºÑk\6ë.*rˆWˆ·D”,°T< @AQTD@.]ÁÍWº2;5ofÞ¼Ç{o†å÷«_QÝ=Ýͼþôõæýú7M~&Ñ€4¡&Ð"†×$ÆŠÉ0\ºté ‰±‚Ö3†»ws$Æ ZmX_ ¨%;;ûGc…õcSbð÷÷§¿ý5=®^…ÂZÌô£DýI‰F 4Êhhòi×®ÝôéÓ/_¾lùÏÜ„'íÛ·Ÿ2eÊÙ³gõ‘‰6¼ÑÀ}|cœ7oš@ ,ššŠÛXµjÕàÁƒÕÅ ÂhàÂ×®]kÛ¶- '%%-Z´è7ubmm(—Æ :ujݺõ‚ øé¢ÕJå—iDäiÕª•LµüÑ£•¿ùmÛ¶uïÞ½E‹ƒ ŠˆˆÐÜh`Ú´iÃÂ+W®œ0aÂ¥:;v¬ƒƒ—ŸK?~¼£££^ ¢ù¥î³¢““Óˆ#ôV+Rææ§M›Ÿ˜˜¸víÚ!C†hn4àócRšdn^ኢæÚ èPR½^4ý‹…Ñã  RkƒLµò£Á !«­µ/+V¬˜4if*6§ÛÛÛsù­¬¬X:æ_n®Ç<‹ÙM†™ó/¿½DóKÝCBBFÃÀå«ÅÄÕDen¾†[·nacÓ¶N°ëào66nÜÈv>óçÏçÒOœ8½:o·nÝ<==ùDóK­ øwãÆÃ„._­‹‹ rJEen^££Áè=¾™ò«ûå‘­?SúõaÐ%ÑPGCYi‘wKOXÕ$AOXÇVúmYýߢIÔ|ÐÍj¡Ö4ZLc§Á÷ 2¾SÙjD¦ÄÔ-,’¨WZF°Òƒá=‰ù…0Â@Ha<ÖT=ƒà's´uCä¡s' Æ´#—‚€ŸŸ_Ïž=›6mŠ(¬²aÞÒ²eË>}ú:tH0’¤jÖÍSUUåááÓ#vÚØØà¸2—?((¨_¿~0jÂ?ºråÊ‘#G €è°aÃÒÒÒ/†eË–={öŒE;wîùöíÛœœ˜¥êíéüzøé;v쀅ңGÖ¨0[â²Áø%77·¤¤d×®]8°dÉE‘1cÆ4®µß|ùùù\Î^½záÀ@á„#…ƒéÎ;,üôéS˜àqÙž?ÎÂhzA6Ûw4ðÓa³5wî\Œ ðˆŽŽ6”žÍxºÙä£'X$`sg4P|üø±Þ;! âÍ·|ùrü‚X^^~úôiŒ –رcGn†‘ªGg÷îݳfÍzðàAee%^¬Ò„Á Gíß¿?¦lcΟ?Ï}}}±–Êì”tóTWWûøø`…À¦kèС°j% $„0ˆîV{žAHa ! „0Â@a „0 ŠhíYaÐKcxõêü„ôíÛ¿çÀ! l#p@Lk£Áò<,aÆŒëÖ­ËÊÊ‚ùPAAAxx8\æKc€1Vqq±è%)»®ŠŠ øòÁÏÑ:t€=K,++ƒñRû:Y³f Ì™¸ f?y>§bY:2ÀH Žy` ³oß>­œYœñÙÚÚ›. )».///¸ƒ!׋/ಊ%ºººâ‡~Œ'˜¡”»»;×4ð‰JÞ¼yãíí=jÔ(–Ž ³gÏ.¨”_,opfi /_¾Üºu+: zVïÞ½ÑͱZ°KRv]0§„‰† xá¼wï ãj=¸¦µúB†û÷ï³0 „Ágªí”Þ½{—‘‘Î…ŽÆR¤ìºà ¶-‚âHÄ\Á¸Ê}f) A~ƒ0XÀàLå +z fR–²ëÂhÈÌÌÔ \ïÆUþhm þh@À 08³4ì‹`)„¡¾‰Ï†Iiâĉ쒔]&1xÿÆÔŒé KKDA˜V²¹~æÌ™nnnòmµùa§ŒüsæÌ‘Ç`yƒ3Kc€;Ç… âsb¤£‡Â“ä“'OØ%)».ì”ðU_2P* €%–––Â÷oë[&lœäÛ0bAÒ»Sz¯†Á=S¢‡$ª`wmHh4Â@Ha 1ûX» 5Ÿ¢…õc@¾ÏýO“šOÑŠ0¬ñ;Ej>UŠaõþXRó©R Ÿ}Mj>UŠÁio”YÿEÅ⪫R ÜiVÅ1(]I6…eµ J1¬ò0‰Š:äeéõ¬Öè«ZP¥}N˜VQ­L´žµtU ªƒÃîã¦UT+ˆ†þ3¹¨´¢¦¶6¯°x{ÈyA6Â/ýX\Vù±.ÅiOøŒœ÷?}(­¨Ž¼œ&¨_–ÿÁXú*Ÿ°s73ßVV¿ÿPóCfÞç_FòïáUIù‡šÚ‚W%{B/†œ¾Uøº ÑüÂ7_|}ÎäÀ©R ö;™VQ­ šr/oÓ˜Õ{Âc¯gä>{-Ȇ@ÒÝÇëýN²èù›™éÙëý¢œý£2² µé–å§Ç\˸›ûÿkÍÞˆé9WR³¸l©÷ó7ˆýlOxôÕtPJþtKŸ¢(’SPdòFàT)†•;BM«¨V]·?‚…|Ãjj? ²!àp’Ëÿ¦¬Ò=0–…·Ô¦[–Ÿ^TRîÇÂÎþ'KË«DïAê–Ì¡Š1xoZýÔ4 ¢º¦µµv†²°ãΣ‚«òe1ïñ?íÇ?tKæP¥þð—#¦UT«$ª`ŠÑ°ù`4 # ¸*_öui…‹„Ñ·¤L¿5¨5”bXñçoM«¨VIT7ÀôÜÛiò×î [·/ì¿óWE*ªÞm ŒáÒO^NMÏzâv ÊÞû;¯àØÿÜÉ5è–ôꀑ¿Ÿ½Ú{ÙÖÃvÛ¿QXD)»/¾1­¢Z%QÝSï#ÿNËú´S*¯:ñ¯WE".¦T¿ÿ‰‹®ØþÈ‹)X!jjjŸ¼(Œ¸bÐ-Éëòm!ÌÊdì\Ç%›ÿ¶|ë×JJ)Å€ÚI•(ܾ}Gδ[ìzÀÖëïzK)Å€ÚI•¨­ç!€±:#1bƲśl<¿’/¥ƒ­×!“¨Ô †LU¿êjãÌ0ðHØ.Úè·Ô#H¦”R 6_‘*Ñ¥îAŽÄï¦Ù,tÙ¿Ä=Pª”R K·‘*Q,Ë| ‰áÓ–.pÞg½ù h)¥@’T‰Z»`ø…ÄÔ¥ó×ï],Ö˜J1#©]ìúW] ‰aS­ç­÷]ä ,¨È(Wì‹D1üBbŠõ¼?ù ›Á2%$Š¥¨¨H ;r‰«III8à„óÈü‚dµgJagL­Wïüc8vÆŽþ‘ñ¤%0`:vì àÜÜáÇÃÂÂâââq ’0˜l%°²²bHpö¾ pœ p‰„Á¼Ø‚£«Çgó#àý,………È#`@Ì‚zæÌÞ†“6 p«‚îtô«Å âiF41þûÅ:'üe[£‡"€—äåå³£BÃ{ &%8Œ*®;;;6>ìíí/\¸€­ª&0˜ãn}Žç›–&8n·,Âð-€9 T’““ãããÁ ==—® æîþ*b`$ÐÐÜ"ŒWDÁ Þg‡qº®p4„AÆU˜hYþk+uÇ–”ƒ1ݪ,ãH TªêDthƒŒ«0) ü×Vêfu0&U?]­7Wjbmq&Õvü×VêfÓëåKko®ÔÄh0ÔU˜At´æHL»¤\…¡QÐ×X½ÏÔzs¥&0H¹ 9r$&w@Ó`º—j;30ƒ0häÍ•šÀ å* ;nlu0&ÐI¥0œ„A#o®¤gJšÂ@ͰÓßÂ@B a $FbÈ&±”Èa ±¤ˆc QQƒ&ä!3µW̰IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/conceptaudio.png0000644000076500000240000002472412536324470022124 0ustar philstaff00000000000000‰PNG  IHDR[‹@ä­!)›IDATx^ìÔ1  û—v×^@Ò.€#{W&Uq­»ï0ÃâFPP|jA$*qyHb ð ž 𰉀FQdUÂ2 ñ=E”]P6™ hŒâ†GfC„Qe“ˆ(ûÌô}§k¹WÕ]zºûùÞ÷¥ÏÔw§êÔ©ºu«N:uNÝÛÕBÿo iؽ{÷ë+ß´22(¦4þéÖ2ÂøïKoÅ‹6nv|  |±¶? AEl…0RQ> ÿZµj9ùŠD(//߸qcè'„44mÚ´víÚ<ž†S§N•Ÿ[û‚Ë›XaË ‡ cQŒ®ÑT4MÂP>O2 ‹„xœ r<Ñ04#vê RùNÉ0 ÇÏ¢Hú€mÛ|î!n‹¸Í¢–ŽDØ•@k'LX&ÅYŠD)IM«¹ŒšÕ <'!ʽ‹+++c›]M·ÞÿàüË‹Ž ~AwPRí/‰ŒæZ<‰\t1Š#7„8‹pb§£Ù’lÝå=ÀK@ò>VÆ)"sm>"+úŸ!ÐÅ<QG” WTeÏ ¥ÄÈ zAùÃþ}çwž»DHç(ðø‰å K\^P‰˜ÌXÌÉS¨^goŽå‘@‰(&¨ Ñ]",i»]Ek%;9HBS„? Íf %C Ë…XÛm­¸Í¦«³Â€Ì³jÕ¾øR!q¹4 s ˆ"G3¤„ås’›þЧ”‹Îu¶ÿBl£ZVJÔfŠgel»ÞEN+Bš MHG§ W´cå+£W%ºŒ•Ìž0¬Ò*R–Ÿ<©·; ’%Ĉ«Šº\xœUsi¬ðàžÉÉäšÄ’l̉Á¢¨G寰ÿ‚%²8¥ØÌd™ab‹®,‰ˆiLÏn3*ÁµÔZÖ:BŠIÏ0”tÚ`Y‚‡)%LdØRrAÑ•²ù,ðxKG ^S BèZ®¸«"Su.õ:à€D<$ä`R‚3Ì+HEáQúGe™+.êJM*Ò -ïnÜ(¨ÔÃ* ªã‚$Æ×T ”Ü$ϼ‘ÉðRB+rxì˜9ˆÇQÜË«WÁµ¾€ºQ…IƒE= ñé¦Îáá% 4l £5„ £ŠíÇÈ%Âò ²þh4 ˈl<ÖMKÄŠd9H…û0ªL„ÜÅR¦õ*VB³óÓ€n Œ!0w’+(.‚¶Â+ITq£:<¦ªºPaªð Œ&–E Ps$£¹€ÛcÚ`è8îÌ©q£¡CC¾é×–ë<7ÕrM¹B¦® €r3EUØBj°ýà.0/Ecèe–ë,g0B 0¤š*F òH›ØV”º.ªÙœ C™½„ˆ¤AL8H=W2ƒåÞϦ†$Ø»W2Ö¬À؈ÔX–ð aì\€Cå–dKÁçôOax"ý1‘t[Z`u‘ -¨Aƒ> Ö´émY–‡å¥ ýY±è( ¹ 'IŽÀøÄ@BFBêƒÒu›à•„p”IeÀu¥ KÒ{Ì`n„¹L¥-i fi~T¦b¤~Á2Yv·VQÈ”y$i@ü1û”Éoð!”&+ÐbÅã•Ѻ ´ª©8Xî› ,Φ8!7,#FTVØ#@ú±(”=è~ÚZA”Pjb× ì?UõLñ›@IYî£×û? ²ëÀHÞÜèWœç‚ýLÅA$!8ªEÂRΑ,mÅ(¤š,àH"È`Ĭð¡Ãäiîa¡œ†´Ž¢@¹ð˜á¼BL8N‰àkƒôrZÑ@‹o®ant7>4 ™›e  V7± o—«!u*4t”W§iK“yÄ!¥®Õ]-,$îȱ6lÌa“F‘k-J’`mµ§ÐÕðiî @Ρßán”E,ØV¥àdEt[ƒ¸Q&¼¥M` /‚Ý vŠ¡2ë/n®-Šä@Æ-WF&pËIƒ¢Ü™|åKPB/óàFÁX»;&Àn¥h’÷xlæ±`3ØÎeÍ,¦¯ÿH*îTw«! OíÂ,˜4"몸`<@©ÊÅÅÁH†]“ $"žU»ƒ›IV;§¢±”jÕBAà±ÝõÜÈéÅý! 1CãÉJÆõijŒ¢*?íÀ\ÏáC£¼jÚ¨§ÂÏÀë¹G¬߯mYô3›ËŽÆ*êWÜR²cÍû¦gÈÍÀwnX“µ`i³ôµ~ N uy'wï+î¢ ~Ń! ÁNNƒ=¼'7ºJˆ°¬Œýä(ƒ1£™H4>„ lòR8( ¸ÝƒËpš[yd½¸v§xí>–E<ƒÑÌ®À‡{ÆÇ3D ÐÀü#À’ Ë™+åcÅ„xÂÀ»3‘ÿÀü|hRU! ЂÑsÜCw3=PÎ%ƒ)/Åí-ñ,>ÊS9˜Ã²~–ŠYŪl< Š»Id%À4+¸ÚØ4ÕÙ¶Ož8Aáô©S¡0hèýŠ“'ŽŸ>} ÕãA‘Heáúõwtîôã?p¤éb¤×1N08}ú4ÇÓ+[ò¸Ó ;oÉ’_~ ¥Q™ÛØ‹úX°¼ìº¦æ|ü.yHƒé‡CÇjª,¾&3Ÿ9sÚý@TX7:ž9Šïؾýö[;îܱ#ìTó™(N˜»ºvyçÍ•¦½¹œ('¾¥¤§Q³ƒX¸•âÉHO7À‘†² R'æŽÙ½}ÛA}z;²­²²â‰ ã[^Þhö´§• É#ßýóŽN·­ÍϯY£F½zf@+€Mñè‘#[±b̨‘ƒ|€Â­íÚ~UVFø§ÿû¿J7mr„4Eö}ýõﯩ–™é 3üÍ2©njü¼\êÿ‘éƒ îÒ4àNàjÂJkêwó`¿{6–³ûb¬½Á¯sgÍз1XVVV½ /ÌÊÊÌ0¼à–4~äÁ³=ØòÍFd¡:/¨W¯fÍZ’sФ•¯ýíáý§MÖìV A£MÓ`‡àSÌ᪛‚´X¨zSžùËV×íÚ±ý£5«‰¸dÁ|Š ô!ÞDÁ êÖ½»gOÊhÙªÕs žs9g×®²~}z÷0pÑ’¥nþÍoô»çèÑ£’Òý²Ÿÿ|Þ ]~yØ8íêõ1ýX:o?àY€4¨#’Ôî½ÅŠ\YQñüœ9®†7ÍQ=ø‘G8²aÆÄo6ôq7~VZzÉ¥—<¿xñ‚ÅKž|æ¾ÞÍ~nþoÛµ“‚IºÝu÷£9•»Ç«r¦ZûÏðF=º·ÙGæä’D8uê$%ÿüÈÐÉÓžv¤Ú–ÒÒ’ÂB ;·o'̉cÇJ Š vïÚMÉï¿û®_ï^G¾ûŽ*)ݼ©`ýºÂuë¾Üº•jî×»÷ˆQ£®i~ ïŸ.]»îÝ»÷Ý»S>-ÝL”Eë·¥e‘Jöèðᥟ|òí¡C¼rºr pÛç[èÖ ·oÛºç«Ý÷ÞÝcCQѱ4<@x4oÓDuª ÊYÃDŠûYó/úCß¾ÿxçí7þö ŸŸÄ_íÚ²í¢‚‚‚õ$/BQv*¥ÝkÑúu¼BÚÏf~˜4èÄ`ë×­£°yÓf±‡êÔùÙŒ§Ÿ^ùúß¿ÞóÕoÛ¶kÔ¸1\0wîÒE ‰`ÿ7ßüá?»PørÛVn_ ë[?ßµc…H$¢¶ÔPRq,);lr q=}§å¯‹øfßÇÅÅW5o^³fM'kâ˜Ç>.).*X7°w¯ÏJ7çŒýóô'Ÿ,)*¢ùI79räÈÞ={ø;áYRXDã”3~õýñ'jÔ¨‘Y-“Dë›nêÔ¹ó‰Ç©ÔçŸ}F”Å……={ܹ¡¸øÄÉ“e;wñbõªUK.¢ÛMž0~Öô¨Tš4n,%)üéž>¯¯Xq`ßþMJŽ;î‰kûSCZq'h|€ßñè÷G¾=xàW_Ó©k××^^q’½œ^°ö£çfÏ"ÓÓ†â¢q>J*gþš5ýûô..*,.*æ²éøñãe;wÒ¤ÝPRòúk/*(|lÔè.;¯Y½ÚYn¸ñÆéÏÎtÿýýûÞ3wö¬GFŒ äÖÏ·œ9}†hìß·ß¾ÅÅ&’0uÂøÝee»Ê¨òJ°àGHdyaO‰eQßáàDO0\ýË]zÜ5aÔˆuùï_Ó¢…³c\0{Öö/¶Ñ½±¤¤üLù×{öîÙ½kæ¼yƒ‡ýÍ-¿¥ª7iò‹«®âC˜“›{aý‹ Ö¯&àtá䉓|m'èÙ«Wö°aC‡ 8;»´ts½zõZ·isôûï§NÊýò‹m¤;œ9SþɆ DI2åÁC(Ì[ò"í@.kЀö2Õ¯ïÃOÿ×¶Á4¨öùD 20Ñ iuÝ kÞ[õÍž½„¼í÷]ø´y8{(1ÅI;˜4eêÐG†eÓ®Aý‹ê·n}“ k5oÞ|䨑+^}å™Ï®_·Ö ãC»ö¿Ë_»®m»vÓŸ|êñœÂÜÞ¥ _œ[]}ƒF ’M!£Z¯öåe/vèÔ©m‡Ž¿ëpkVfV ™ ú~ð®!GÛkÔªIúåÖÏ?\ý‹ê_ìàû-}Eèù¼¼…yË_|åÕ&M›’úPçüóY¦nR;æ±Z5k¾üÊ«1[A„Þÿ¥åËIMˆu]vée–ì‡ŠŠŠû÷>|Éò—ÞÉÏïÛ@¬Dk|ŵV›E}ޤÞ~–<¤ÁJèè×”ñãÏ>çœæÎÙ¹c;þÈ!ƒ½Dý%—^ªØŒÇ€.®_ÿòFa@aïž½[>û¬q“Æ{ÕÕWíß¿/P›ü·K.?kæÚü÷Sûí™p•Šü¯ithF„AeyEÛ[ÿãüºu[ß|óÏ6äÛ³òŠò»zõ&°hþ|ÒÄþԯ率>)۱㕗^"oMU”ó⌞>AÖùöÛsÆçÈ 99Ë–-ûbÛ¶r¹'ÉÎ9j4QVPÕ¤”Ÿyï½Uo»0¬øyƒ† ™öĤ.˜3gÆ´§yêäÉÙÏL§Û ìõÇÕï¾kÛ6¤«q*!œÒþI=¤!þo1ƒb%-Ecr'›E·iY†\R7¼¦ö’ùÏ=4bd—î=î<˜úhÕÛouìÔyἹóô•WÇY°ví=î¢Ð²ÕµS'æ¾ýÆTÍÇ%%ç_P—ì‚äøÉ™”ÛäŠ&÷ôîMmËÌÌüðƒüžwî¹ãÇã÷íÞ½ÛÈÑ£i¼š5k6ýéiüÂâey·Õ2³²&LzüÙiÓºo uøó/.#ä¼%K†=4hÈý÷5oym»Ž?\³z؃ 5º™‚ÂTCj¬b‘>t•† sWRˆj´Ã&*¬|íÕêÕ«¿ºü¯=zö¢dó-Ž;¾ê­7o»ý÷SŸzjÎ3϶ºî:r.<7gö„‰¹c{´ÿ=}©Š¬ÌÌòó4l°uëÖƒΛ7ïðáÃ=ÿøGªâ?«S‡¤oÃ…]xå•Wd(¥›^yåô™³ˆ—çå‘Lèvg²…Õ©U„ŸŸ;§zšƒCÎÒòºë—-Zxí 7VËÊ |R[FHO'Ci'ÇeÕ<}©3šÓ³µºñß¹¨øð`ÂdU¯>cþ ò09ëÍY¸ˆ’\½oÜäŠK—ÆžP¤YÍ~N}â .Á¾ëî»)PÜ–ß;¥x÷îwÞÑ­;ÿb%¡ÔiýPv6á8š®4twþ‰[BM˜ú„(˜ˆ0À8á3{U†4¤^™2këÒýήÝ{8{·¾öx?'kû»öíÚw°ä EúGví¨òK/¯à§FíH1ÆDZ´h™·ü¥HÈ&ÖâxÊ[°h1Å :ý¾ ‰bÎû=4pPãpàŒ/ð¯ûÂgÑU> š:°™o¦ðëºU*bô…Ë[‰ê'4;fÌ»ï¼M|öYg¡ýÛ0É=—l[N²4lÙ²¥¬¬Ì5+ÌžúÚl<oY0%¼‘ "úSÌ©cõTå§:¹ôéæÍ7ýêWM›5C©Aòµ¥áÞ{ïíÖ­ÛØ±c#ò›÷M~ÞòË¿‘]õ˜üÎ<äA›çί!Ä_1èS!˜lÖ†ŸH"pí:R$™l¢LGðaÆ/aøT×¾C‡á£F·ùõ¯µ6¤J«GmLEL †4lÚ´iÒ¤I$È%üýwÿL~ e!Q~Å€‚C ŽÅwý9%â âje Õç©íTÚP{XùÁ‰$%™ÐÉmÖ‰ñxÝÐ ŒH¢I Á¨P¨êœä»<è€)Äo¾ùf~~~è_:Ä#Û¬\¶tØ_þ»ñUWÇ[¼Á4dÃOœÇšÀ8ÝQð³\ŸÅŒÄüTWÊò]êSÇR3¢¿¤$&«2IY@Ýd‰*¨º*ÔI„fÑǰ ‰Ž+ðqõ£Í+J‰FGõÞ½nݺçãðÅ¿(ЋC±ÛIz!­ÖÙgÇÛÉüwÀ*‰‹üüÿµ$8˜g9*MÚ¨Çý€ôçaÑTˆðtbk1 ÊBZOЫU¯ÄYèiÊçüñ¬x~Ž‘?Ä$ÇC§`³ %ÌNΔ%÷\—ÜpÃ ä£ ýkÃĉyä–[niÞ¶}ë·ú0ŽÍÿ¤Ú™C DQŒee6²$Gò‘#ƲÂ|)Ë”PÝc×OáO…3móuŽ• ™(@yAµv„$ÕÄ­¹Aë9ìC<°V¡j£ÓÑGÁ`ëª]ª;- ¡6mÚÌ;wæÌ™ôZ¡ÞýÚrg'eh´}G7²u;"ñ²x,öƺ"ĶÚìäŸ]­•tÕ$¢Ê¨Ê‚QaX.¯V37‚ŸÍ½‹ø¸!Ro·S¡#Ø1Â.!*ØlÔ-ô‘Èøl9ù#¤‘bÒ±5FÚhÜTvœÆ›¤F& 0¦à²1cçû&1²Q]’†^ ‰~‰Ã GäBðK¿X4"°NÑ7ú)(oÿÄçÐU$L~M ›шŒ §0ßPHFÃe²©äè¢ÌÂé=ÕTôy°A25% ɪµ‰ˆßƒCáPŒèSIºà¬ÀÁ8Îo3€uÅÁ °ö³`ip£~nÂPcµ¶# ‘ÔK6»Ê‚Ym¢Iã!üll%T-QQÛ #8˜Ô3%PÍœLfÕ]Œ!×w7ø ”x´@‹q(ÕÅÌfÎ"Õh1øÐÖh ,WäìgÊlrq€köB‡µL†G£b²°/F«4€>± —åÙãU¢“«š€ò¨ }Šõi$¹ +€F3ÝÛx0“’ï'Ú“„4˜¢Vç%¤ýÆNÛBj£4¿@# |œŒçEfhºÉ[÷)ØU0ºCy÷} I@"x—ÂJn›ë*’ ýmT"ôrªÜ‰É¬G[#ò¸’i "€ ”†²  Ü“ÐÆUð†!4 \°Í`›Ü8,iðvÛÞÖ8sÍÄ"Œâ"Î `BÁàm±D)|(’Þá^ÎÞúMÕùŒ$øV·‰Ühø 7‘ëÒ¥ ÛдÂK<£5nŃÔÄ”£´öÌ7‰€^ªÇA&44‚¤ë*„^÷µ8RÌ;—#Kƒ¹ éÆ#@ ÇÎ\WA hQ ”Hz0›b„ªª®jj ÃhISõZ»í¸¸Ñ4@E ” B_X;uˆ,ñ`JG<ŒÀÂÍC%MëD5x0ú)tF¤ëÿxU*ËRýC$:ç¡6O{óÌbg®øŒM«¡»i×V­× $„¦?J¬‹¦€µ³"²@ g$Ï…–LQ$UÖõä%l²ñhˆû½a,èHǤM˜Õ*Srj:HºvánÄô6z_!­mˆlg( fH(žôšç^"ÛÐN½­ÙA"! ¶ÿ©0c7lá6ÙR{kÝíìa#Rä˜óßdB¬— CHd,·k-gIÜŽaáþ@ÍüFúðšS0=6rªõÂIÆÞ IÌRØ ` gtN.ž%‘;!ä 5pºMžU+Å꣆ëƒf5ý Ÿ–õÜñê˜4¸Ún4{b0]W²¤iBÒÆI$耬 d ¹5`ôŒ[° Àû >Á%DÞywžäð»ãà§AÛ8R›ä®[$0#¸WÅz·Ž€Iï+hæJÎÑHº¸ú\Wi¼×'y0ï‹jÑJwÏbûµÍÏ+ïÒürž§…z–±þ›IÇ<½€bþ™:í`ÞΤ§”‹¾‡â€WXÌ.ÇoY´‘ôÞ'ã(‘›)êˆQµa_e”†¦ ‘B˜þö0ýR£óF“pšG ðîXR½ªã‚!ÑrUqPÉÊ××ï·K‚T'SpïC,?꺆$¬cðù™›|¢’'T×ÇûX» W¿îÔ@cÀ9Âm©p±l7ö3õ)èY‰U-äù4n‰±3Âaùñþ¹$|sB$å-D7DÉBTŠçÊÏQE¬ÅˆB‚†.¬ËÂQ¤sw›¾?|Ðc&æ6cܸۢ¶£ˆkÎNwq¯Á@¦E•k&+í p«†c‡Ú••øF6~ßY$g(‘d É2 I)éy0<—‚@ZÈÌ~æ ¬(+ؘk 0†ºÍr<ü&†9Û(äÂX&ë>uôhD 3iy¹Å:8Z©¶ÅЭëV‹' /’VeMxüž‘E1DîX”zñ+—øå™ÅŠ+V¶}ûº?üKnîÜE‹«:˜Ô˜±xùDvøA€žåBƒþ±a€æMãE7#2ìEUŽ8"éE%••¼UÿÃÎ Â`þ+aSd4׫¯b&È28FCD¶¢¦Ý€æøÜ[â=–ãyì˜U­UD`‹÷þŸKœª¶Ö0¥RÊÃ9ÇÌD+RJ!üÁ’sî½Ã¶›½»i+Œâ8üR«7ƒK‚àVH.É  ¨à ÐB¤“Q„vpwq”5Mâ [ C2‰è$ ÄkÁDA'‡Ö"qh%M¹4H‡v ÷þžé\Þ¬ùórÞ¯ÖK ÷miš¦ÚÖÖÖZÿ0??ß²ºWªçÉ»zÅbQzŠª-ŸÏïïï«.ðáððpww·ó)¯Èær9Õ^«ž ÏÏÏ¥H¥RápX×uÕ%Z/G<—·À¤è:€>Ø+x^ñÓo¥RIýËññ±²*8;;[\\¼¹¹y||ÜØØXYY©T*ù}2™TÖ ËË˲|³½½-éðçZo›k ¶‚b±h×××[[[f½´´‹Å¤½477'{Cïï拏«Ú"‘ˆßïWæçe7n&“‰F£²š+GÈ4M›žž–âöövrrrbbbvvV)588ø®ÍétÖj5e=`Ž€l6;::úüpÑÐÐÐÞÞÞÅÅE__Ÿ|6›M·Û-CcccR\^^š{F-Ìpuuuzzº¹¹)ýe7 pppP¯×Õ32)ØÙÙY__/—Ëòyrrrtt$…,IÔj5­V«†a<==)ËEx½Þ\.gþÕ;º®OMMI!Cýýý@ Ñh<<<˜ÇL¥–F£ÇãéŸO‰D,£`G@(êÜLiNVWWíÛGP(:u:¶o"p¹\æ¼`|||ffFY×/öÎØb†¢Š E¢¸ X=Ò{6a ¶` £ H˜&8ç7Á«¾eYú>w–#¨µ2öþèc(¥¤”ι¥k-àN‚轇8ç;ÈL¤öÓ¼µ¶~k0Æl¸)åœSJB}¶Zkïýñ-èe柶³Ï8ˆ1. {gSÕ…áRmÚ¨ÁÒB¢€%lÆP,“˜¶Á‚ÔÒjÁ iÔ„Ñ2jÀB ¦‰e”Ù±D-±LjS -u,hÀ”™¦Ð¢ µl¿°Ò“›K¹Ò”¹îõ@ö]wí}çìõ¯­}ÎÝD6v[Ü1•(Q•E%J”(DP¢D‰B„´´´ŒŒ åÆ J"=zÔÛۛ噲²2MÙÝÝíêêÊ>b§OŸ¯cQQ[•‹qoo¯á£œ={ö­QqvvæXò`餈%Ô­;;;ÿ§Á™«.\ äü°CÂ$îfź1®ZµêÞ½{¢IOOG³nݺÉÚŽ???6ªÿ·½ˆ­­­±<þ|||¼´‰1»wï6`ÌΗêHJJÊÄO©  _ý_¦@Ž;Æ LÁ.ox,eö®®.Ú·nÝêïïÇoÅàîÝ»?ü-´å© QȦÃrÕ4KFÓŸ[²cÇôìMêîî>cÆ ”===b sD>jJ<“h„„„` +wîÜÁlppPÓ~(¹xñ¢¯¯ïD,!°À‡´Ïœ9³iÓ&Æ&&&óçÏV¬X±víÚššš%K–ÿ5,)/_¾Ì^»VáéQ ¦]WWÇs ³gÏÖnÒúõëa ü‹‹»yó¦Œ7–¼·”ÝÊÑóÂ7Iwüýû÷³£¹Mff&Ë{æææ0½={ö`ìæææééÉ#XîÛ·oãÆìŒÞÖÖNåçç¯^½ÚÞÞžÔã­[·‚€ㄇ‡£ñððà)#p%<Š34*'Ož| 1¼`Μ9Ú£Êííí†í­­­e—íÅ‹9r„ÈY™™™‘’u¹Ê"1¼¹¹÷Ö{À+11‘´Ÿ',çååñ†)>œ••E5qÞ¼ylÞ¼YÛÔ¼¸¸˜k7000ö²–””ð¬ÄöíÛñ|¬¨¨b„Ûãïïoee5wî\,£¢¢ÈVh,Z´ˆ×TÀ‚ƒR³pttÄ^p‡8©g1‘Ô§»(‚õü~ðd4………„"±=A‚65)6—ŽL‰'NÐ8~ü8z,‰Ú$+Ì4˜BNN£ñú]f]uu5ÑŽdsŒÁ‰7#†‡‡³³³å¸Là‘‘¡r8ü‚¡Œ –.]ºpáB2\ï%s®Î|åÊ.×Ì™3ÇŽÀR%ÑÑÑ¡¡¡z_Aðy.7ˆsõêU ¢—WPlmmÇŽ&ï´[XXð¡fÀ¹yyyq{nܸAà¬ÈYÀ,#ð%Ö­¨p àâê}}}4’““!žÔ°)@'qNn=3V:&$$Ð <@.мøŒ»>ðˆ NdbÒÂŽNË«ªªHœá°2É!°NNN4®_¿NLb|¡ºØ“eÓ‘w®ÉYÎ;g„«±±±4bbbt•õÒÒRò©S§‚‚‚Ѐˆ$ùã½ß2kÖ,¢ºž†àÀ=åÞ½{µ<ÐÅÅ…; ÆÃD›õ„+ÞÔÔš4¸ß®¤;Ƚk×®éî J˜c¤ëÜ\^ìAïoŽ1 --- åààÏÊiX!0Vò_8ò† ¨;B=¦+ö{QضmàE‚CG&<AÜ2Dà‡eðFê4¦¦¦P) J&üR}!· ujj*îGá‡*yø‰wükkkkÉë@ °œ¾â®š,X°Kº®¤DþÈÈH˜$‚žäææÿL0††‘›pjP¸ìd°9CáE úLA¦»¨šâáÇ©Oái |}}½Ô­É ©P™f B,ÉÇ JÔD©Ž“}X gú1…¨1a©„zr^ ûRɤަ'Ñ„ 3>¿Å‚¿2n ÇƒŒcõqêE­>ªÕG’v;±GÂ1ÁÚIIIÔ’È ¸/D&V¯—/_¾eË4¬["ØEXÀâ«•+WØ1Þ¹s'¿­¨»ú(uë°°0é¯Äƒòòr>ŠŠŠ÷^¶l0$}Éš WT4*++5KR,%eàd8%ajW"(D¸}û6 U×®]£-•i>ŠÇ²àM›„Q”ÐO8 yxáÒ¥K´As8‚èY ×;JMHOt¿â£ž8ÐNž¡èLЦ”F›Ãéž6Â)ýÅÞù„ÈÇqø®s‘¦Ô'ÉÜÜw´FHÈf3 ™´[F­¦=Kí¶òçŒ&„ƒrPS´qR(%'-2žÞ_½9iÕ6½Ó>Ïévf›Ëûé;ßÞÏóû½LÁD?¡$"2܉ "&‚ˆ˜"b"ˆˆ‰ "&‚ˆ˜Ô–F€ˆ˜´hz,×4L()ðÈ*ÏÅÐ!b"PA[Ë Ó3£gJ¡…šsÏ}¤øIÇ1wZáVK2:TJ©µ 3*—ËI¯Ì ÔËã/J¥UVn{ú‘‘7šZÒ·1,ÄP âŒÀÍÏTOõ˜.ŲÔE‰Êä(RhŒS £òœ‹qQ`Xáý”Þ±›pÁLm!"(¢ñZ­Œ þ9]i”*Q|DLÌtH1ɤ :B$&.êõz»ÝƳ‚à ?Ä·*f ²£ÓéÐTåX^.PMDF¥Réd)V V«Q,eaÅGÄ_ ÝnÑ}òdRÊáDpll×fÄÿ€!7ÿÈŽ 4-1ˆ¸YDaÔëõþ­”CK†ˆÉ IëŒ<#Šˆ3£>w;+CiˆØ˜ ز8À¶Î1ÉŽ-rYò'ÞŒRG%Æ Ü ,&«Õj²S!Dã‚ed³ÙÄrÉ—H™¹Ž„ˆVµü{jLј"S˜úý>cŽXáˆØk@³‹i¯æž>qPtfÄ qFADL‘?ìÜA 1 ÁH S $s?Ã8G¡Rûh%ˆ}nÅÝÌHffl0IÝý|ÌfæÈêÂÄ‚úÙ±cb‚Ž÷/ ­ˆ.AÛ<à#Š8‹Ç¾Û ¤0aP¶µe°ÓJà ñÝïlK©J‚oT‹p?I<§jµSÇ0€Ö¿´»|M!H\À€ Hôíã!bIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/conceptvideo.png0000644000076500000240000003716512536324470022134 0ustar philstaff00000000000000‰PNG  IHDR]ÖýêÆO>¼t7ƒt!ó…vêÛˆW=4¶$h‰ß:GˆrMìKè‰`…²'“ÚX*ˆ Œ™ÙÕ÷çfóϗχ‡‡n00Ðæ >®>ýõwðÁ{œ Ô¨Ï'“úJÅâD¦&g^4=³1˜Ø‘‰Ÿ>ä`© l¢·Cp>AcÔÁ˜¢˜bÚ¬ڵöbë!&ĉ>F›R|Í‘ #[Ø6¢SåÃÝþa` TGTÏ-‰íSÛRíóC)[qž-()ƒ‡‰A ¢ı"5Q2ï6Ôa(/*¦+lм½¬ŽE¹<òn2­RûÄ2[‘%Í#.ÈüJa’3n&•:¦x¢#ó ^ši 8¥Z³~Ën!䵬£=£:ˆÝÂŒ¬¤¡ Ps‘ ”%0Õ,00Þ#¼¥îÝQ]UAïUi¬Ä„d7*ÜÕDZ¾¦ÇáT¥Ñ>bÂÁ‹.j'¦mǪÞ%Ä=IRÞ…Èä3Ÿ\Ê6’µ*ƒxÓü4•—r‚|¶¹i˜¹ya`ä ¡ºKkeBtÀeÈb‘áü Pe_‚†žP\ݹ91qÃh¡02B¬±¶kåÒ)b¨ô‹&Ž" D¶‚q¨ö#_ÀͼHžû)±d‹Rj"6*ÇXûõq;±Ž‰ ¥¥"U#¥M =ÙC·œÓÔÀ¦HâÂ%ë¦&€Ä’hè~Ü\00òT_¿®ÜI!Íý¹N1.J¬‚w ¶”ô¶Ÿ& -Oâ*ÎMGLF•¹|ˆÍ`¨•¢PjªVÙ¯)²GVÕ{V³ÌF¾ôËl]¶qDŽMVegSª¨ÍP8œÎŒþ›¥Ó˜’CPcš#ø<¤¡Î#5 ¥ÈR}R àYÀuvÅ0 Œ|ïÛÝ$ÂrþŽY@ó¢A¬z¥W _¡(Xâz×ýT…ƒ2Ghr ¢Vjzß[¹@±«" ² ”ÑFX¡™í?*F¾à;uG_ Ôˆr]×=îA¸3#k0ŸP|eAÁC™ÐéÍ_¾É#_Á§ÔP&€ÓÀ¦ä’‚ó“C«Ê$SA€}ºT»ïYÝqàêêêàààääÄý ¼¼¼\\\œžžÏæû eA§½Ñà”¶ÖÖ])îd¢)Æÿîÿ×5Aßnš@”Ü€ÀȉÏúññáþÞVĺº6’PAïÚÇ+OabêJÊh»# übçZ€¢¼®paadðîXA@@¢+Œ‚‰¢âDJ@D©²ë¢""H¡H«ÂÊËGmG$ÈjØ•B‘‡@…ˆ<6° ¢ EÛò‰J ´ßì¹óËSÆ´à gîìÜǹçþsÎÿÇ¡xfff7n$êª*+++???ô¯_¿Ž!“955uóæÍS’inn¾nݺ­[·Z[[<}úôm6 ¤¤¤´··¿OuMcjøè"¿Ñl´LpÄÚ‹çÏSI¯ß~K–j¾_\–ˆÅ¯øÁêc³ÂÜ\l$jÓx¯á/‚ËèÑFtžéJÌe¸èc¦·§çËøx´Ë h˜ùCX˜§« yl&ôxÚÛ›r91]($CF±&Ž4y# @©YanGä§Ë"ÌRTT‹Åjll$ÃU«V-Y²äرcÄ.DDD0™wìØñá‡SûÔ888·mÛ–âååuäÈ‘·Ù¨  ðèÑ#X“™n¦ð*#Ìö½¹V™‡M§B›yUH–TTT2Ó®ª¨ªÊÊÉ%§¥Y®YCOWúHéjjêJT΄½HJ--C‚1Ãåñ"NGQpAE°deuôtÓ…_“!U`zšŽ…ŽFû2£¸˜• Óeœ% (á… 0¬¨¨(,,$6º»»ûüùó„mxxxPJp'™Ã¡¡!€>!|ï2ÞY¶¶¶€ëÖ-È¡[hŸ°Q™à,))!«ã>ív®ûàm­m œMç™z"//ütÔox¾ÿêèêè$h999=}}XhC#ãááŸÈdµ´´•••)R`ÆIÚrtifj%’…: ×oØûÙ† `761!Iƒ×¯êë©C¡¤¨dýégl…9UjQ¯‡z7ÙMŠ,fZlq–ôõõðïß¿~OOOhh¨¦¦&úpïÉdgg'ÜWW×¶¶6Ì899¡‚ž¼¼<2”••åp8ýýýãµ|ùòŽŽXœ¢¢¢•+Wb fð帥¥%` Ùèèèˆ_ô/ººº`V¬XNüòù|,yzznß¾3&&&õõõ3ΠðmJD5mÄæ½VWUJÄU˜Ï ·lu:Z?úùøT•—cKö7ßøíç¢5?x@¤úûûr|x>ûþ*aX'‘p÷í#­³£ƒYŰiÓ&ï]^!ÁÁ`ãð|ñûuJʉãá8ŸêgÏîüýh•ååôy*Ëo<Ðt¯¡ªüöPˆñMçäf4³AÁ,íß¼y³®®oòµk×ÒIÒ©®®ž?~ZZZzz:ðfiiimm- †¢¢"ü¡Pˆ%–@III­­­½½½“žxîÜ9¼ö ¦}±°°@àÞ æÍ›wèÐ! ï±¤­­Gee%9öE ÌÜøˆT4M‰hbŽBx¶<û÷QÑímmÏŸ=ƒgñ©­-V`G¿ø F,ŽåGìåî?yJWoöü½µµ®Vò¹½ÃªÕ«}¹œ›ÅEúãùH>÷î=››Ý]]éS8Å? ÀÍ}gÅí2½¿zØü':89ɳÙ8×ÍÃã ‹ã'NZÛØ´µ´§¼w§~‹½½¾¡áÇ+>ãƒÈ‰¡Áûc f ʉ8PCKK‹¡¡áh¼Ï¡¨¤ßÜÜŒ;£¢¥°°sçNʶk×.##£ jjjRWWWUU-..F¦òóósrr`nàedfffeeÁ@Œ¹ègµI X{¼½½g˜]˜<¨>å÷$<yyö¹èÓ¡GY˜¿`‘Çf³±:84^fjŠ%– æ£ù‘Oº{ïßC¤08$DK[{``PMMÝÒʪôV™šºú±dX¾ääåýÚÒòX@ž žö0½ˆb@,fhpäû¾¾Œ4‘öBKVNv2øó³Aƒÿ¿A™% €€Ü?äîî>&4«¤üollœ››«¦¦vöìÙ+W®àÊÉŒŒ b2àƒŒwÍ<¤?ìì잀/„—–…Ëå·zQ°#6â,`²²²ððp3)!&ŠÓ/]º”˜˜8ãíÂèr¦©;l³~=|û¿Ý¸ ÄÌbzöý3Ä(>WUSÓÐÔØëÃ9tØo~؈þþWý¯^AµƒTQVf–6íçr^¾x €£8rÌ*„«::;s¼<{Ÿ<™¤”ãgª9 ±˜i¡Ù„¥³³3üvfŠñ;)GÀƒÙä Ÿ(ÄÅÅaˆ\Ç‹‰‰ÁÅ“BQ1Âg A\¬Â19sæ 81 dáææF˜¹@ìŒÄâããá¡,“B`` ¶ ]ríÚµääd„×sôèÑé¬kzwb€ˆ‰Ø•ìì†vñð 3CƒC%ÅňÄô? OaîÜÔ54ðï)ºq·Ëq¼÷ìóÞcfnž“-ø*ü|y°è}}}|>äcêkYYÝ]0 e·Ë6ÛmÁBiIÉãGíµ55uµµ„­° àåËkll óóžXjjZ©«ë±ÍñìÅ##êþbçw¿ó¢HÙ±-c œ%¼Š–&%ÿ;¶‰DÌ’¡ tñâÅüwîÜ¡}`‰D2^ä4z˜&;(ÁLÐ>Ü\»Jú°&L6---±X<3î_ UÊï@4E7qUŸ“‹ë’¥Kéºí¸Ý›ôéÇ' þùø1”ýd$_SzMmtÜIM5dº¸¸,^lôebâÝ»w!WßÀ±"æó§ŠDð!¡z‹ MÍÌÉ¿yJ¸ËL—­¶²‚r~noåDrd‘ÁïNœTW×< 'Eñ#%ðÿ—½+æ­¤ˆÁ³{ˆ 9(‡åe*È.ð¨R^GEGEA‰øU$jèRñ ¨HC $D¥‰Ò<øÖ{¼³ûöÞ[éxù»Ñ½ÇãÆ¯íÙ‘*Æ ¦a–7q¨¦K€õçüüœËþXo9E—v QÝTÎóv†BçöŽª°îß7»pçÎÇ0#g(ßy÷)Ú⣒ü.÷èÑ‘j¼{÷õ££7´A€Nþáá!ôû‹+Âû{{ïííðÖ½{Ìà“‡ ŒÄODæ¤î‡3Œœk鮃½¹àðþßÄÁÞßßߥïA‡]ðpŸ]Æ›e; .fPHÀ}l¢Æ³7s[9¹‘´ëëk)­ ô|Îáë0°œøÂL˜gkì˜Ó¶“Óÿ~–ïÄNNN8½ÇƒƒNžžž¦Ànž€ ˜-ƒ ìú[J“‰yIè"¥ä+™ç1芀‚|ôˆÝ~·âš.éI;…° è ú<^ 7™%Èk\rcè 埄Qøg°Õn$0À%}œ™ã|W¸¥BØÙõf = ÙÆŽx'\Pnzy 2›:4méì¹Ê:_¯Á-¯jq´éM®pÛeÄ{Ä'_´—€íÞ5ÖL¤žÞVpº­¶©^áàŸ‘fNîmF ì‚mË0ÊÐi¦ÕY¸Uo€<‹›º É7PT¸³€‰šX¡MÉ–³ƒ,][Ý2'"vÁk2¶‹ÒY×ÓeÇÈ{£+¢CCßvL2(¿ ˆ<%Ú­ŽüÐyé§§¥ vÁöö±$¬ÐxjºùÂOd‚m;öÛ8 !¨†wL+‚¤01ÞÌ#æ  CQnà¢Ãp¥Ü€+'bøxÅiÈŒ"„„gñD> íŒäýùÅ¡’8fð[pþ…/OÈ¿ ôp4²?0!b³Ó`›i¤¨X y§À×bÚP­Õ`òÕUjŒ'/‘–ƒ@ä#¿IV&š*9×49y %‰Â)Ódæ¢t¹ŒŽÒÛnE-÷²šÝHó£c0á ÓÐê’((‰™¬:wèÌÝ'4ÜÝ}Â.ÀŠ‘Í@Ô>GéÚV+”U±áçŸR5ÑH©üÏ虫näK54¸Od7ⲚԶ.Ù)°^êíê/‹†ªy•t)ÌÌã}jã®RF?ߟ¡´¹‹C êdo ÓP;)yß ¿#4Þ5`N4¢'¨÷ý_½¡ÔœiNÙP×P>¦ Ie×Y¢çT&ûg10‘€ú2»€ò ¡1ºŽô}â[0¡Ëç2°¤Ì™nÎP^%j›6W+õ½dAmË}ä™L4S„„1eðup êø&È•BÁÅS=¿Rœ[1ô‚cÙÙe9 ° WOþùë·_FÞòµã®“°ûà•&CaOz=Žý}3Ìéˆ {ð”há4€º_G„ÓU¡@y”îß” X—Zƒ›!^ýû$í8aøþ¥/?N;¾ç—/ÿã«Då‚ÀEcìîÓÀÅÅEz.\^^&EÞÆ7…Ÿñçƒùºñtà+áù&®ô¼à;u݇ùÿcïŽM€A ŠJ6È.ocï"N!‚}È I!Ü«nˆƒ¿º‘Û)cæÌ\¯À VªJU#âlw73úÇÍ~ÓÄ@ {þÒ¡» ø­ºT:o>D¦IÞºªúìÛ/«"QÆñ³ë€ø4Ø V|"Ãb2‰b1h„íêKÁjY“‚7˜´Z+r·(ŠÕ?eîîaa7íÂÞñû ‡ógòÜßÌÏùP*•J*•J&“Á`PÛ¶‡Ã¡óW0Ît¹\²Ù¬€úê ÿr¹p:¾½ë÷ûæÖëõù|6Þ Ûí¶X,¿ßßjµòùü|>7¿1½ÿ¿-@.<þ•Îår‹Åb0¨Ÿâ—Óãñ¸ßïͨ/ôz=wÒh4¾¾QL8ŽS*•ôNÑl6u¤Ñ=êt:ÆÃrAÉdºÝn¹\Ö‹ƒ®…B!ëN¡fpÙ¶­=©QËd2Ñ€e<ªÝnÇb±ÇRóétª’¤» …BÃá°;F"ól¾SŽF#½8T«Uó´rA—‚ÕjõX^¯×Ùl–N§Õ…¹Ûí´³\.Õ䯉öÝQû›ÍÆxÀ="ª™J}§4ïjµÚívs >Ÿ/‘HÜï÷@  Òƒ¾V¸×ëu˲ ú¦þs}S¨/  Èär¹€\€Wö®§ÅŽ"ˆwõŠn‚à?Ћ‰h¹G…@n¢ ž¼æ“ì!Œ!—ä+ÄÔ«AbHÀƒ bd%"A zÂÄ~õ§µUýf}IØ]äÕ6óºþtÏÐõ›šêšÝ}Ï”CFkZSû>±›7o–}¤59sÆÿÝÀ3˾î­bjéððáC¾Èÿ mnnö?ÍXSû›ßýôóKÇÞ ªD¥–BDM^I…Š|.>jSvƒJÚa%›³–LÉâ-eºÖœ„,d…eÖ¶žtžü÷BO“³¦éÉÛ±mã¦Eq(“©XÀ=Öhoa`dçššˆçœš€­'5Öï‹™`_&þüýǶ¶¶öŽ Ÿ\üìùW_ãe’E±%à#qcÎ X`‚Ä´ÐÛ@aVÓû™,ÉúN¯¿ùÖ_~Uö¦GÎÑ[¦Æ* 'Æ8ŠcTèµâФÅ(k¾u“ÿó÷_½ÿÞ©S§ŠÑšž=rôè˯T’PPêâhTŠöME¬Xp¿ªea¶êX*Ȥè{5’!T&øÈYê0ð`6änW!ÐÒîeƹÚò'ìE5‰Ê4ÝXxÑO63+Ù~bykŒW±Üxnó?í#޼ðâ±·ßé+µQ͵j«/lVµjoZS,ŒdÂnϬõ Äuïžw?8KeO‚'¢‡ÌêãÍ;ˆ¬êv¨¶{.dmëˆ_Å%&×£yEªåŸ¿î”@kÂM8’‹ŠÌÆX“äž-¥³0Æ*EÝò¸àOº2&5•2T|lÜ¢S‰&Ë,¨uú4î6Ece,‹YË|_4ƽš‘Ì»rÝ1DD™(% Ò¯Tw±–’™–„aV¢8[Lå‚HÕ²AT;Vn¤¶Nå1,ŸmT¸‘Âü:3‘» \¤Hì’Âóë ó «c™¤^ë6¹IK¦5‘Ýt÷¹J(ÀRQçQÚYÀO(àV;`Y {AÈGCI›GŸ™eWêÈßh-žˆ(>MKú,^µ¼1–nˆ2܃´òûrlÔ–nô k³ñ—óëÀ ¤§M8]V1ºeIl|^™ Ì¯aÉ´&¬gdè“?•GWHÆ |BdæÉÇw–…†¿Ùüˆ–>ìé•ò¤ж[ !ظ²\å’òIy?© ù›CX-Øôø;ß8¬Û<•°". U¨>kÐ,CzŠa¬J”eAN \ðŽdª¬\P‡A6 n4™£) ~H"„ÔØ9Ãy9£`¨#ËJYÚzáhÄ´­)+!ùËpWKNŸ ê–>ÍO‹L´R¾P}pNcIl`9¾&°!ü#ù©î6 ñ Ö×eòK›LÎöÝÓÝ+ÂÂÓcpU"…×RÜ% ‹6Z.£²"­©Ö²°1µ°é#¼eÂ+©%à‚Bï ð PÇC–mf (Ãጬ͹3¦§Ë`jª¦Ñ–JQ5źRˆÆ¸§žDøJA¬Ö0ÖíÇ›‹P1¶ Zæ?aµáÁå~ãê/ÛÇfd1@Þ8!âUOaFãpžS†5¡25D#j[IíïZš{ƒrPÈØ«}± Í…@‘íA63ÂGL´µãS\ {š)Ö†9A«Öuq">çÉáÜKàâX„W—Ï»õª»_m”J­-„©71`¶Ÿ‚Wj +KÂÄRÛC$†ãˆË+™Ö4é”/콩ö@›r$ª9(Àé ¼«vŸÓXñµÂ 'Âü€ú85ËG Ê”HØn'mþ8ùÍ?ñLcüxlxgwVåcä}‹Í+PÕ– ËæÏ€~˜ž /"X¦üÖTw<þüY£ëׯÏ·_7l_·Q’fnòÞ Ú\„9"ð MUðƒºz­Ƴnùœ›´>5UÖÌg¯<ÓÊù‚ÂTQƒ,•|Lžv„‹ݱxêö"͆]Ô{r¶‚<–;¡„Â’+MåÌ­v¬ø*CtNÞà™èLÑpŸ¨ý×|"jßÓ{éÒ¥íííãÇÏß»woggçàëŽþ9¡ÂŒF<`A~¸"sæ$¢¦œÂמúJ=’¶ÝÐH°/„r¢\‰‹šbzEƒ»k^?䱬K+Öc‰D)žÁ<ð„á~HÚÌç“ a£±Ù<鉒dœ ¶€ÅÖ”^ÙÎ'Ã]½;yòdûŽïiš²öÊ•+å° ]Æ¥ù]tÅpؤÍ9X}š„Ù!3Ý£pXa9ΧæëY†?aÝ1¿_! È.19†c6{ŸSÀ—Õl¬ã–j×Ý)ü–¯ø€­a8½1¡ Ö{K…ÞHʵh ÈVâÁƒ·nÝj›ˆË—/Ÿ8q¢IÎ;÷!SÛ\\»víÂ… ¹qãFS]½zUT§OŸ>dK-žÏÐyh4Bbý8åÿ@© Z¢AÈh¢ ç\7·™çJÎŒ€óÙú·ÚìMõéTƒ(iÃûù‘Ìa6"{]dnüíîÝÏ/~úÇýûÇr§2Ot’‘úþöí_îÜîqøS¯Œ'—âÍî³æã,жOô/{×ÔT–D˜EV,Ñr-—)avPegÆ o1|å'QA¿ Ša”Ï€„ `4è\„ðñÃo + ‚EqÔ]­™íÊÛ½õàE¡˜LÉVÙõ*•ô»é{ß{}ïí>Ý÷> xyoeeeWWWpp0›ÍŽ™™YRR’Á‹/àý½7n„†††pŠF£UJI]]ýÿ›”=þâUk lûIÈUÁ/h5Àˆd8ñÔÉ'25pÒ†ŸÕΜ>ÝÚÜ<)Ž UŪ’¥i„i˜Pý]žû/LSœÂTV4²–Âhþ¾;Cü÷àÏ6ܼá°Ý,*$ÊÈ ½Â[¡vÙÙòøA2F4 ë{xpðXL´³ïW?ÿ üŠ‹åMR§ÊcýðÙÓ§¡!¡¼ ™†"\<ŒðÐðÔXÑ­ýþxÇþGË–-Ž@ ÈÉɱ´´Dkéf¡pÏô ÷ Þ¯øg£ø˜èçccD“‰B’S’#BC1öôY.‘Hˆ1r4ge¤S\œ¿ÝfšÒŠ™]´BŽCiq‘×.ç¼ìlYxʤ¹ì«“—Ǫ8e‡‡N5ý:ðé“ìçÄï³µ¿úêŽ@p¿­ ÍÆÞ^íwïúÒöã˜(•9s\==Æž=Ó7ØÐ!ìYµú ¬ÎSâ‹ÏµH$RiY0Løy{Á_F%’—ããhÀ†O êZþ7$ÒÄt7|P‘˜[.›²{+à§ÒlMdêééwóÁû»Þ¾}; SñŽÀŒi£l«ïNŠECpeß:9sÿÐá0±¨˜Ú::B‘ÈÀ@_ª˜l¸U¯¤¨ÈæpÏ—rÈææ}b1ÈÜ»ïæá‰5 ¶trq9?øø1ê8_ODk!ˆò!Åé=¡ÎuDlÒžJ­á]ÆÎ2¾Ïô¡÷°%>ÀÇ.*‚!€:[n»……Þúõ˜ ·‡F»\Uu`_2ñÍæ×\»ÛÖLœ0¯ÊLMÁ7EFòÜû‰üÌjll¼` fEÇÍÍ­¥¥ðØ/ŒŽŽ‚»6EZZÚ¬VÌpuæ{“Ðnðùßl5½ÛÚzó:”­†IÓE.W(*È"´*ŸÁ†ïLHgGû•jVϙ䤉íDU~ÃÆ¥ßΊýš°f'SV^Wo}àn™¼RKK24h´Å;ËÈʼr©j‘ºzǽû©™Æ$R9§4)þÄÁ'Oüiº»S 6l€Š)ÖÖÊÊÊ m||üêµÐiØmFs‰&&êë¿}^\TD21³-7û¬B…¨³øüÂE‹âbb¢ŽÅ^«®>uâøŸW¬è }üi®^»}\¨Ø:Ö>±è[k›âü¼{wÚö8¨«§vkÀV° ã£;ƒ­¼žmÄãñd¾õψ}ç8ÎRše #Þš‰dÂ6??uvl22^¾bEÍÕ«ßl¤¢ò§ÈC¿¼{—|ö¬û.çÎövÞµ°ª<\¨+W®E†h˜}"Ññ¸¸zîãþþ””±HÔÑÞËç«.]Z³FûWéZiÓm¦´}ûôþúå63s7OϬÜ\`F…†nß±P}©*Ÿžs§µ4ïÍë7…\.Ö˜1CïÓ¦øûdA&V ëô 6“L0ÎBuuc“­àÚÁÞÒØ˜|*^Aºù'¿¦F¦pØÙ1*&FÐÔ ÈëW hêí}ˆAÁ,&s£¡a«߇ë¼idlŒ$Ø;:Þ¾ukžê¼‡=˜ðÿ‚ËÏÜÌÌÛõ?~Ç–Ëýù½2>!/fÊáû³Ï”ØU9…Å,Ì{„¿Ü½Ónæ?{zÀÎÇ8ÈŸøìÐn)JJ`7.¨”_[kjjŠvti4ùy{CMUUUYùÄÚ‰9õ03yûÓü=Ü~êê”C‚œpGä³ÉeGëÛ„ÝÝÍ ôô4à/[¾ü@x|ÉÉH×\ºŒ]À<‘94øÄ›JMMHˆŠƒSa‘Ñ'ccÝv:ѳ³òs­--uüÚT)H£6¾£½ýñØØþGýe\nPp°åŽ~>>v66p<>`²XšššóTU“¡¤“=e Éd³‘J˜MJýNcñb_÷¸è胇By4þdzJŠ+µŽ_óùêÕŠŠJð` ١ٿˆËàñô‰üüü‚‚‚ÀWP”Ã]"&੪ŒÛ'2CmÁ°^/r9`8XÛÚ…ìßÏÌcè®]›šœì±Û«»»Ë™BÙI¡ôöö^­¾€BeEERb‚••¡v¶¶6ÖÖ°*Œ ¨A@W7ø×«W¯#~Zjj9‡348È«ªNvúY@+@ÿ†‡Ý®¯×þRÜ™£a‡ß¼~ gÿÃÞÕ„ÚuUáõî{'*Jˆˆ Í$Í›8´MSü#(’Övb:T¯)´4Ñø7‚ƒh¤‰Q,˜6 þ tRÒEÈ$ "ˆé@EÛAs×çyoq×Úk¯³î¹çžûbgqÞåìßóÎÞk¯ý­µöÞgqR,»[vÇpÔPÚ¿¹yù—¿éúóß‘š¿÷£çf´éû—žontf>øà¡ß\»V.½zý%‘Â?xvùItf‡ÔÀã=öÙãÇ™`:;LW»ÿÛÏ\`@¢xÏ=û~}ý%=<ó»?|RXÚÍ"wDßܪFºyóæÕ«W›µ˜§OŸ¦·ïyç½Õ£áˆÚÐ뱇Ž{Xµ¹S_ùj£ÆŠúýø“Ožxê©I±ˆî'?ÿ…®\ö»þò˽—_xA¡qÙÑ÷ÝðüS†Ä3ðãŸþŒ™Aô©#GÔñ…­ŸÛz¼<ôÅßþ:ÙFd€µ;êˆ'm ¸q8LªvRЖ¢‚.?ÿÜû?ðA­±66Œ«Q$ýZÈp @7,ŒtöìÙwݳïÞ¯}þÔz€»÷mô_—¾J²í¢ÚwÍÿ"ß2ô¥SO7¶åO>Ì€BMôf¸¼z4s:wîœ|ãÿ™nܸáÖMÖõc¬´2X8/H¦tJÄö¥žkËÀ0À‚”ËÍp‰Y…Ðú wN.ì´ 1 xi A.À\©=«Õ"þèê•Ï<òèÃ<ʾ+@XYÿh÷ô¯­Ù°0~?¢Y±ÚèDÔlýÍo{ïÁ´‹—#q¯<¶‹¡:a@5EötøcAž‘¿á*vy½£1:Vô¯3¬Èš¼lô¾×#¬*¯F@8Á·H/´¹¹yòäÉfsW³þrÏž=K !ëG àYtNÑþ{0 È%ìHNˆq¡›ýHGÙj8pȘ̙ÌyU³¨.Ë` ÿÕ-{Ü‹Öü@U\ãç·JÃá "«l¤‹/6›;GÒJ;¨?RËû]96›ƒ3”ì>ô»Å‡úÃÍ>X{0€Vˆjxè`È[MÛ—´­É‰jrCÑÇ,„ñf¼ÂÀp "r(dØp@9D B’\!9)X$$X³ŸLZ‘»Ð‰YVÇ3@Ùh<@ Я +èeZ èb†\Šè¤›X»*ö½L5öbwR¥)röph#bò˜›Q´ˆAW ‹<»ˆ,ž½r %2Ò(À „HšgˆˆˆjÁ.É”âKÁ?ÊpŽ„Cƒ2-èI#ãVчÝ& ܹ9¤jVXR›«ø!ÍCH¾lìÁ¦IV"b½6i –ÓtI›Ë€–g8 — á{ÍèWÐÁ*ÿj…ÊšHƒ½i‡Ár1A.«¨ž2¤†â³±à $sƒ{½ €RÒ´ZÛírv)Û:ÇÂM˜,ylB.¦:í9Žy"á1f0Ü5‹$X337Ú³H"wyj2­:åå¿"€å r&%‘¥Ku€·ô&v;Af[|™Ø&}hfõÌesÌoM5€FêïŠ]†|¦€ŽÅÒ&ÄáRª°÷ìŸø‰¦âÆvìž…{Ò³¹{ˆm@îýZSâÄr±Å ÏD&¿Õ=1e”—V®#Dè{5[j0B$Å/²óŽ9)Gê6ié|k€4Ê‚`#d-Âð°Å« ÊvIdŠ™/1N1ÑzêaœË/šç×€/ŽUɃRÌ}E@¢¼i‰N»Óî1¢ª‰%˜ÉoŸª¥„Û!ƒ‘úôÀ+KËfy¯DŒTpâ°A°D´d€6h›+tÀ¦ÃzJÀ)—E˜µf-¢¸ØØO‚2)ÔÍñe5=+>@. I“Q”·X¼è•Rí‡UŽ"©­K¦† ,{Q]„<3UA!{JOïcË8¥G⹈À &ƒaâ ð(&mï;h÷…{YÀ;„È32^-ŒåVsf F¤—37üÅT l_@—£êz0ds[mbPôøÊé\ˆaäÚêR–M$›½§pYÙ¿7£½§ð€"s5³+©x¢f)BK#™3›kE½ƒTdFô…åÊ=¹$ç †M‡ò È~L'Wò%6 œmLa¹ µ¢ÕQägàˆcà-*‰^ß[°ÌÈgdN1gêà,˜-Mܵйø¿eÅsl6RÖžóçCxdh#Ë&'~ˆþEîÉx8g ÷ì‡"RƒƒS Ôíˆõá?^ðn¼èÏ3 =ª±8(3ê4 @(Ü$(@bL`3ÐqyüÆ,{àµ8›ò}4êŸBÞNÞ¡ÑàRÇÛHˆŒA+¹±WƒÖ0Nàsšìñ#@•/\3OASåCÇfîò蕜ÛÒ˜H¡«=HÁBTpà1EäÆ‹Ì ³•Åßòz? wΜ©@Î ` ¶þòrÀ¡£”“Ä4ö MPRÒ\”YŒ;ÅöH¯>Ê6B =Ö)%Œ—9&ç­¬ ~ô˜¹B@…w6±8­­”qãp»cÜ=5×Bó5íܨc/ÈE…ÌÎ@drT¡<+Õ T„O¬3 R} ´¬ö“Ÿ‘œý)YÁ¾¸m²dÉìǹÛÁì4ŒPÅ•¸`¼²”á\XЍ<\\ M…¨Z9–K’±Ÿ¤Æ5~€ùS9èXÎûòúÉ…ÈâèRð¬Wh ©ÒЕ»HšÑžDCù2̳ ùŰŸ;“¬þà/@…èXBê1Í6Þ™·I¨§g$ãNá˜1•µ$2hg~ë5†# ¢AùMT`Ï?9Õ†pÇülA'â¿aìç%…©?p„Ú¹‘®æž¿ô=Ñ©m@º,J‚T6¾±4}-°™5Éê—@z9O×–¯†é‹hj©»Aãs—¬sèä)ß²5|0ˆ‰#Ú=4ˆPº¾¬“h0“aåàÐÉù%r$@TãêÚï&µ·œ`Y@›ßÑ‚’=åF©yI»#Ú]ÈÏ1Ù/5Mí=­W<ò·Ì&°Ýf2kkIÍ®² UCñ{æ-•˜Ba:NÔîŒÿ¼Û²l´ªM”`l“#%ó#÷ÅÉSËFy-SÃA6™Î©ñÊ«n箪óËŠã‘™ÕωØí•tH“ ös6Ô §[f¤‹>Dåka¹€¸V´h¡°M(Ù}‚ÔžêGŒÇ]nß¾=N1Œ¢9¹±3YïRJ-©ör½Î©Û„6ˆ:ØÏ1…Ž^TAÌCÈû>sæ$g@°ge‹5cüs1ä|GÌ´>Y““-Ý/ˆ ër’2šb¤ n'7áµ)$U>§§ãcm"çDÊêš‚{é&uûk€†˜×^}õk§Ÿ>rì¡û=¸Èa±C„õmÁÀiI$©¹s”¨êpR ºnNéµþýù³ ¬M›l‡'ågcô³MÄv†É웓üVœ$³~lÆŽ·O{¸ÆHN•ç:–“<}vÙm¦Ÿ,× xi§$Me© ZPnPa -ÊoK‘×ÿý¯\.äg`Çó-Ëà¬)AdÁxä¦ô˜N­Êêñ„60óÊ­[W.]zåo·î{à–ê+TSàl‹÷Ap-e ijf%{û€y;/GÚ»wïáˆÞ¨tþüù­­-ù0â]BûÞ-_ŠUjZÏ\¸°¶¾n™È(F¬Õ1w·æ¢:©9ÿ¯ù4Øúúú‰'ž8pàí¡W ¯ WŒ)ücÝ¿?ý/ÐHG½råÊÆÆݽ´ñöîP5¡(àða[1ù‚Õ  {ƒÕ°˜Ä½ƒ`×Ñ'0,ˆIÐW°˜f2¸`8´2Üa‚iѱ]ï÷…Ëÿ¼À{Nù‡Ÿ<µZáÿ™L&ÛmâûÂÛzýÜë…_Ü…„8ãñ8®ú=§Ói<†4]˜ÏçƒÁàrÜívñ_.Æ"\ð¢X,Îf³8ŒF£|>ÞÎÂÕ§¤é÷ûñqú#P«ÕŽÇãé¦%àx_tÐ@]tÐ@]t@]tÐ@]tÐ@]tÐ@]ânÔ×oûý~¹\ÆaµZ¥z°X,êõúf³‰s©TŠßN§Ón·Ý#Ò *•J¡P¸3™L£ÑHû=‡—¹Ûíær¹´wÈf³Íf3år¹Z­Þøžû/öîІ¡ŠÂðCÀDHF !©z–Q4‚ ¸ND‚nè›à¥®@ø†øsÜ™ÜqÜ‹½”BCD!„”Ò9«©µÞ]³ÖžŸûƘÖÚ˜CÎÇ‚RJ!„ñƒ§+¥c0™Þ;¥Ô{+àœÇa#‡Öv÷Ô…/;g“W„acDª´±òCBbØÚŠ¡ÂÖ†6ˆR ]ÃVãˆìM—„­!ÁÐ&mDè.B›VZ ´²¯Ý¡­²Tö*Z­@W«½ùRèç— Ú3?Èœ¹çœ{9w–wæœûQq=zôèdfWäïï?©ñŠ©º£"EŠ”_P¤H‘ò Š)R~¡»»ûë‡Ä&“®üÌ™3špBjoooll„ñõõ¥­ÿ.ÍÍÍÌ&4000™V¤¨®®îêÕ«ÿÑä£FKÙÎxªýÂðððÅ‹9ÂZkªªª•+W&%%ݼySÏFk||44tÏž=úû¯[·ŽþB‰‰‰†?Ree%ZzçΧÚ/8;;cسgÏNNN¾uëV°À^ôkéq—,YÂÌòåËíììôܧ`kk·sçNß dqÿþý'Ø*µ´´x{{ÒÓÞÞž¸"üÉ“'1{ýýÙ)^¿~=ØÖÚÚúرc†ÜˆˆØÕÕÅNŸª/ü¹ß‹ƒ8pà<‹ˆ )—z{{?þ›zzz°3*MºÑÄsoÚ´ ¦¿¿_ëÉ$Úäžžž6l¡»»;/Xäœß·*++“CyyyH:;;‘ó†øNk ]¸pn¤0š„3ÓÑ$qÎÂQ€ìXXXP’Œã_!‡¥=Õô"Eû÷ïÇ¿Æ% $VÃó5äøž+V¬°´´Ô_zÀ\ 9·Šý4€$Ü(##Ÿ¢Û àŠŠ 䎒úzHHpƒ8Øû„ççÏŸÇõícü¬ß\€©x¨¾¾žŽ,€ÌÍÍq‡¦ŠÃ–¿–ÅpÆ2SñY—¨ô Ô}nnnôg¸™™™|?oÞ<¼2ÂòòòK—.áï…üeŹÃIúúúdž3fP¼LMMMKK#zð: yO Çã€E§U(B+@…EEEÅÅÅj|„lPP_ÄYh*Dù¸}14=‘ÙôêñãÇA”ÏÐ^\ ¥RZg©‚¢ÑXSSÓ M†–ú(`õ&ë‘=5ò Ï#0Eò¢=«,Øžå@‘öÓ¤È'M*‹4Yx!ö™À{08\ƒ&gŵù1iMºÓä輤!4Á”@>š¼K¹Šï`DÂ%‘àP¦W¡ò^.…íÈÈHiKÐsü¾d‘”ÈFÉIþQKÒ{B*ˆ»ví’¨È'±Ò—”toÁ6s’)puΜ9è äÔ³ˆI"& ¡²NéJ®BxR Êè6ûqô´±±‘¼dA¶²víZ’lajóü‚¢iå”_ùS6‚—MÀ)<…FxC“ia„@ôÁ&áÁø‘ÃÇ⾑ŽzFºæçÂ3P:ž ψgÅ}haÇéû¸1탤žó ÓïuXÌ;NŒ{9Œg?u‘m.1ÚL?Œ¶7*F›»e«oÙ˜¾fŠaýSXZ íccë17juBæŸÖÃm<(¦ï“ˆYo»l1{«÷MGš~yù®ÿù=bʦßë°˜7–߫˻Ø1êébÂhóC`¶0>Kúš)ë‰ ëépèx¦ìc#UÞÒ°âmX¹±af¬.ÝbÁò^Š˜öÙæÿó{/,–Ù ›ëò&£Þ-%,8êÒÙkCÃnIŸÒê[*úš©C9⫲aOióÉÊæ»S'œpÂF†ÝÒ†VR°aÿâ¿ØØ° óƒeÑY^O÷óŸÿ|c›ëqÀ•W˜òÚÜ{ãŸýìgéÀlþ×Ϋt6›Ùü´ãâ[øúÓŸÎÀþïÿþoc›+·ó ã ”Ó ‚ýä'?ñ^×1Ò ³dûÔaœS7Ìææ30îy|èÝ0U"–ÓÅ‘Xé€å‘NÄ”,tÀò‹KéTž0Ò ãšÀ¸nåå~ôÃ(ƒ{ Æýã„ñÌc:ž+éxö¨¤ë†QçD½ËéÀ¨§JF£^+/u©CÉé„Åt\˜:EvîQ?L4Ï cÝÒÅÎgÓñ\syÔ ÒuÃÔ™’Œ: ¦^¬ÔñŒåt´•œ.c‹v¦œ0Új?Œ6OÛ¦YOH=sKë”6¢/¡O¡o¡¡¯q"Ùn$s-§uø´)WeØTkXtKÃ62lFC2«ýfÐÁ…Å·Ù0X|s3"¯Ëoà¹Äø5]/,O‡æÓ>H:á9¯0ý^‡Å¼ãĸoݰ<Ú&Ý(õ®£žŽ£‹*}}…ú ë¡oªØ·Ð×L±vÞâsø(ø´ž©ƒã¡z°ü€Å&\n°›±È£ôK‰Æ˜7“uØb%Q—#§û`mÒ˜¾$ö-Îë"¹lýZÚªJäò†-r¹ãMÍœ.¿ë°†H^qîªÁ:8žÙ’Ëó5q'¦Æß+]lèÝòf;ˆ)$$ë°L\æòºa ¡;çÄïlIã6‡Ó";úú’Œ‰HîmHÕ kw<ÖkmXg¹Ìp,¿©ë°AIèÙ` ‘܉©ñ÷Jz·¼y¤1å„d–ÉÖ\^7l9Éu„î0Äï mu̽èiÜÙ¹XR‡M}èCª#’«‘\µˆäÊ, «H.Û O&ryh‹d°Aˆä^¤q/",ÉÂ"‘,,Äu˜HãÙÉñ­ÔH†l­Ã2‘Ü4„HÎX7"Yñ8‰ä˜.b™HˤqVG$“.“ÆA‰äˆB$“.º½ˆd¥› "9c´©ˆ‰ Á"Ù½hûô"éè#è+ZX‘,¬ƒH~Ìc3ƒH6’(É¥L˜Ýüʰ6¹LïWG £WD2DYÄH–‰d°L÷Âb„ð‹D²°H$G¬.]¬ø¡³!’ÁúÉcPlT"9b½ˆändð\ÉJÏQé"‘ –Iã:¬ŽH&]&3 âøbè•.’Áuy³q·¼ñ¥¢t™ ®#—ÁhSãø´=°Aˆä„9iLÛ§iLß@Ñšbµ‰daDòï|çD²ird"¹+ ¹¼–ak¶–M×Öb˘=è‰Æì¦Œ„‘×ñ9LßgƒYE4ýòò]ÿó{Ä”L¿×a1o,¿V—·ƽœ Æ3¯KdzÏéFÁ¨‹“‚± ˆMÑö3iL¡~¤…HîE.WúdÉl©bô싳FÜ7iúåå»þg‹˜ò·Þ‚eF,æå÷ÃêòNÖZ*)Ý"Å"{ɶ,’Å%¡ç³!äÀX¾1uÎj‹Ó>Û¼ñ~ï…Å2{as]Þ|cÔ—QÒQÅêHÙAÓëè èŦ>ø`H ²%mQÚœ°4òôRŽ u˜VÁÔÆ”Ìȧ҆oí¼Â”׿¬¥Y>v`¤3Ò«WéŒcî(ÌȸÒFr˜‘{¥‘wyÁŒø›‘.bÜŸ:ÌIø­R®$\OÄää&LæàÂ4㜺a6Ÿ‰_“yùüãZ¬5 noäV—Nfë¤Ówm¤‹¿÷¢ I§M¿E,¦ë–7NÏt áÂbY\×­¼Ü~›0îw/Œg#L÷ŒzÐ-0êIN'ŒºÔò°öz—ÓQO•®Ó r–Q—Žv1Ž/LS'a´ß~mLÓGaô1ÉmŒg¨tS[l±E”¶([q»w‹oŸµÖº±Ül³õÊU«¸£E×tãÀlêX‹å·í ØÚkßXÞæ6ë[¯]´®£¨MÇç8°çrVf«-†Ñºv _õëxÂþlù‰p²º`ð?( =X72Ø·}ÞTüñëÙ5Vl»í[‹g?û¬Â"§Ø³˜¾åe«;FÑšŸ‘N[$Lã–IÔ:,«±¼^X?òv¡°L¶šn‰ß‰Ád‘<§D²³aÝÚJ#“¾dÚû ûžÿ¿fÍmÒ8Éf!ÙA$+]&I1å„HËD2X&’…Ùôß®ív Ÿj]Ç „O²k¹i,D2dk–‰än¤qw"yMë:òë¸êª?¶®¥ƒ¼,k‰d°qÉ9¯°L$ƒeÒ¸«#’I—‰äŒu#’3áL¨#’©/#]&’sºaˆd금Ú^X$ˆ#‘œ âŒÑnë°9'’ÿøÇûˆ(|ôB¬«I$Ýä¶Nƈ hDTSÞiŒ7hiصÅíoÿ‚bÓM*n{Û]-ß5¶bJÇ› ÃH1ïeL¤tvÒmŒó$]Ä”L½*éŒð+ìÁÕb±<0»!3Ò­^=e£¶kíööëØ|ó‡XºkÜŽtF޶&Ù¸žˆQ^Ä´ ³JÑÆ8§{Üãé„Õ¥ãžÇQG7lú-³Â®û:»†wùuÜúÖ÷¶r®öQ)§®tqËÛl1Ý'~r:a1ׯukã~ÔaÜSa2P#÷»F^ÕÇŒ)uŒg1êKÆ”N†qÔ;ÒÅò„)]F^ê6u\v/½0ÚLÄhgãøumyŒ> bô1ÉmŒgÈõ¸FòïxÇ"®´ÀÃX„ÁjTÌ¢¶Âæï+ªM6¹¶úÍovªN:iïêøãïiŒþµ–f…¥žNÇ*‚V(”wPL6C£`q•¦Æ,Ì^DÕ[\[ýñ¯NŒÓ*é0õ}’0êUÄhó´ýQ±)â*熩£b-+e_±†i«VWÚðêBÛ¯òÿá‘y¡1ÜbÆK;¿ŠÅÿÇ1ÌÝpëm¿¬Ü`¦Uë,ع´±©éûïMNÇozFÓÃy›®ºÔžÅ¶_oS˜üÜêžåÍ›¦~q*Õ ‹eöÂæº¼/§ûÃbc!’…±ÝtÓ” 57(p¥™6)ÚS‚ª_|qk·ïÿh}Æ}Á±Öç\bûe¶ÿcáϯõÿ¥—^bû¥v/t,ž3¿1åд‰{¿z5Ó¬ mØ=Õ2oé$ûÉ`™HŽ˜òGµ‘<(¡;hÞqcË’HnY$·ø‹Õ>'4òÇ19‚‚qÔQXĔ׈¨ÂÈ'¯ìÓéÈû³âª«þéé4ÏüÕ¯~]œrêß‹3Î<·8ýïg§Ÿ1¡{ëÜþö…?§³Š³Î>¿øíïþXüê׿)Î>ç‚â´ÓÏjÿÎ÷3Ï:¯8ñ¤?þóŸ¿4Ýø?þÇöÿšŽŠ`ÄjÂo`¹ã‹ ¿GLùÁr‡_ROéTž0½˜Ä€Q§"ïV‡™ÅoÏH:݃nüyU¿3¦tF;&P˜¿30Ò‰?䜌Hž‘Ž™˜ÒaÆ1òþÛHã6—)ŒtËéŒ4îÀ¸ž:ŒvKûí‡Ñæiûâ_#Ó‘ÜÆx†\7馞øÄ'ºE2֊Ѫ8[$c½ˆ…a´HŽ˜òb!I^Íã„ÉúKÍË.»ÔX„²zÀ\Ýã^ÛU÷Úö¾Õ¶Ûݯº÷}¶¯¶›£²¶½·•¹ÝÍÿo·Dv®ë¾ÛïXmy×­ª;m±¥}ßÉï_ûÚ·SšT\xQ‡µ+íßHÔ¶•²¸aÑb,[ƒe‹äˆÅtÝòF‹d¥‹ÉùÔ-°l}\‡aõ-’áH—­Šë0òf‹daÑÒŒ{:(-’syÂâ3ª8çÃZv/ÂH—±œŽ¶1YgŒvK[í‡ÑæiûÑ"YX]:Y$s=`Sw¸ÃŠlUläOY‡eëÞQ°›-•×òåÂÕ>ç3ë^ãx®²e<– Yöuoç·¥w³A±eÊk§ñY”9iû5×L_ßõ×_WÞ`K³|¿&ÿ~õUþÛÚk­ÝÁËð+Ñ<Ï6L:á9¯°ÌE,挥êÙ`F¶Ö¦ËÖǤËí£FûYlm¼.ˆäfŸi\˜zx6ëªsÏ=§úÝoSýýï§Wl°cì«W+Ïtzþ1zTp°i|¯žÑãS¦]_…iÈ4£Q,«{Á_\êgá7±9íÚ>O·N¤°p¬ÅúlPl²É­:°6Þ¨Xýõ}ž®9ñ?þñⳟýd±ç‹ž_qÄaÅFmÜÒZ³ÄvÉ?¬qËâo¼¡½O[·~/ª¾¥›v&’cº˜7ÉSþH Öa™XÍåuÚømÈå9 ’?øÁ:á#"Y1X7ÒXS?"YÄ•>„y Ûq×)^»÷ë‹ò±âoØ» 8×G?rHñî}ßYœ~úéÆ7­WœþùöÛëŠ/|þˆbŸwý§•¹²8÷Üs‹7¼þµöÿ;Нs´u@›zy7Ý´ÚË|îóö(¶ØâÎ…MÙ|…†iþÒÚ­ÓY3}/é`l¹Ü þ63ÿÍìó6öpWLºñWuvf)Û¡ðÖH&ݸ‰dŽ‘‰d°L$ƒeÒ¸&Ò,Ƀ4ÖH&]i<‘œÓ‰\^lD2X‘1É`Dò“ŸüdF ¾ž.Óo#ŽJ° ‡ìš§3"ªÉ¼ TÍã„qåØt=*Û¶<öV6sñ—‡~ì#å®OzJ¹jå-J#ÇÊK.ùGù”]WÚ²pi#–rçìùùÐAåe—_Z¾ì%{–{ØÃË×¾vïòCXõ•/ù|™òlTÚ(¨¥ÍZº©ÿÒÚ«öwx+Sž,/ºè‚ò•/qùú½_U¾üe{–?ý4³/2×–5ÓÏ«hñ*Üÿ{Þóžíïì”w¯{ݫͽ'¾ ¯K±˜®./ÇŠ¸Ž¡4ÂÄ€Q·ÀTØáúaâÀ¨£ƒb‘“0¹#öO¤£½DŒtÝ0q›Ø{åt`Ô÷hÏ‚Û@ÄävD;’ÍŒ0ÒELy#FÛ‹×S‡Ñnã1ºa´y0¹õ£è†ñ ¹°©ÛÝîvo z)ãVÆŠéÍ7mÒ_ÇÿøGŦ·¾uñïÿñ›^sÌWÍ|úÿù4Ëx™â‚óÏ+ûø'xàƒŠ-ïz×âì3Ï*N=õoÅ)§œRü~HwÆ÷cУ2Ú¹æêkÚ.ÓÓ5Ko¯¦'N¼-7ßü¶Å­7»Mñ™Ï|Òßh_Ã×ùh£œn•ºïFî͘^ ‹#˜˜.æÍÓ«ˆ)?X%E,æÍS©^X]Þ¹ÀaŒË#ÊaÒ‚Ñho“€1Ú©K7ïDr\ …TƒôÝs¯—To|ã[ªsÏ9»ú¯OZ}ìÐÿªvzÀ+›9¹¼zõšêâ‹.¬.¸à¼êŸWþ³²Q˜/gnÿûWO~ÊÓªO|òÓÕ“v}²…¼¸´š6±Å\='Ñ`ßpÃõ}éÝÉÕ5KcçZ¦ïeUYÇS½ñMo©¾ü•cª}Þýžê&vŸU‘â^Ïh˜t‘,Ì[$ë°åJ¢6˜É6%™Aü2'‘{êÍìíŒåìÙgiΡw(ž´ëSŠ÷¾çÝÅÿ÷HýÜéN[ïÚg¿âMÆéüð‡ÇùHfóÛÞ¶øÐ‡5Žà‡ÅÑGU|æÓŸ´ÑÐùÎcPö?ÿyUñŽÿ|gqÉ%—øýïŠ8 }LëÀ:ôw—¾¦šæx.»ì²bûûïà<Ö4qÞ{´‡: ‘ÜÉa‘œ‰d,’ç’H†°ŠD²ùŸ;Iwë[oZüï—Žš&Ÿªi/Üü`ñ8›J½êÕ¯)Ž:ú6E¸Æ¦U,>ä#Ńô`_Ѻá†ë‹‡?üÅsŸûüâA6åÚý™Ï.¶Þæî>à˜x²>j—GŸúôï~ÏûŠü·ÆuòµÕ@—ÂÞîtV¯i“ÀÜçé±O…çjkåªlw@"ƒ!’£Er‘<¨Er‘œ çaˆdÒõ#’©³‘p‘œIèn¤ñ\Ƀ˳&’Ÿò”§ø’³¤-¸Ñ¸ÕƒE \èqUé„éa‚Ñè£ì.þøº´eÊ¢ÝøÉ7½¼»ÆÔuþ°nk#™iù‡›|%Š%u›v‡~ôâ}ûàeá_Ä…Ýîö·÷Ø:tN˜§‡: WE:æ¼›m¶™Ÿ#ÇY*ûj`­éÀ¹í4H( †\¶,wZ›º2<‹Œ)]Þf‹ei‹œNX–¶Ë2ý0ñ `YÆ¢9‰œŽ†–e,Œ\ž)]”¶ÈéhÌÂâL#bzÉ#Ç%+ºa´·,m1I[dŒv[‡Ñ¦³dX”¶£ˆ}ˆ0I[nŠž‰_‹H¦ÐPp8—/–ñ.>52Ñó6ÌIò;$°­RO|Ò“‹ƒ>ÄG-¼14ô'­*y¦Ëšê¨(êñ—Ô>µÖÍßתOã#Ж½N$ð—2‘L]•HÎyçË#ÊaÒÍ6Iär$’;=Ò¸0õŠWýóJ·Ã¹ð ŠóÏ;×mqÎ;ïû<Ï¿k?Ï~ceŠíò˯°U«S=Íy­<1ÝtÞój°óLJ»0عçž=í¥ÿ‹ý÷ .Pºéß/¼àÂâ [ù»…MG§§kÚ¿×3Š =¦‹yóô*bÊßÜuXÌ›;»^X]Þ[\˜ˆä¿ÖúÇ…ácµÊÖþ°ÓŽåÚ&jA‰K®òݬ"Ê6\×ì›vnÛžèy`ß‘}ª„ “NxÎ+,û^E,æm°•3ü¶ £­Ž«µH”HDÚ"Z$‹ã·“O>Ùç;î¸cq¿ûÞ×HâÙ´éZŸ‚Ý×°ÌTêîwßf:Ýýî×®mc7§›ÆvØaÇð€8!Çœ7bmÌ—•WóÛ©3Mg:ßÖ±í·¿_±ÓN;v`¤ãXÂîÿûO§3Ì5‹{ßûÞmlÇwðt£ °í¶Û®…m߯îsŸûLc÷»ßLÌÒ±óŒòÈ¡!’—6‘œ1Ú^ÄD$gl.¤-"’Ÿö´§Áá´¥-pWÇå,ÊXàBŸ¥-"&i $²´X ¬ÇoÖ}ÍÞŠ;eÚMpz~³ç¿)8Ù°Ÿ\×1IôÃäö߯®¹vvaäå^€Ye1üºŒtØÐ#§3lìr¶±ë®»ÞÓEŒï`”‘±ésèŽq<ëô:mùäÞgi aQz,ËSè¹åtYÚ¢WÞ(m¡tQÚ"ƒº–e,ê0{)̶ ]–±ÈRäÒË鲌…½Èf`¤‹ÈXät8&ƒEGPaQÚ‚ ”10ÚVÆr:Ú^Ä$m‘1Úm,¯F›W}î…ч붸Ímn3‘J zç´0¥;묳Œƒ:£#Ø™gžÙñ?xÄÈ×c5cž}öÙÇã|„‘ÎŒtZMÔˆƒëÏólaqÓż™HŽ˜òG´ËÄo.¯Ö476.Âyr™g;‘œÓÑö& ›bÈ7ŸD2C[–¸-ܨAµ”v·»Ý­Ûd“Mj±»š+DÄð6ï‡q\°-·ÜrFºŒmºé¦îF±[›¡"˜–ÿ(ì.w¹KÇ1èÄs:0"©fìNwºS¶ùæ›÷ÅødÅAýx\0´‘„‘³a™ nˆä[h"¹¯Eò\aZÞæÍý4FÁød®˜1FT9oÆêÒ ‹¶F½0Ù ‹qOæk,’'‹¡“ºa´Ÿ¥‚Í;‘<ŽÞ“ãÌ5Ä– Ö‹HþÑ~4‘Lº<Ò‰˜òƒå lÜDrĆ%’…õ#’IWGB$çtKM#y "ùßþíßfX$³ª”-’YÊɤËɤËÉ` ¬§y]î‡Áb½ÅŠñPæÓÆêX¶Hfu,[$“.o¤› –-’ó1„e‹d°l}ÜÓ=ËÖÇ£AÓýcű.]¶>&]-ƒy9õ›Q¥Óh2bzɳꚱAÒÑ#&‹äŒ‘.Z8wÃhó´ýl‘Lºl‘,¬Ã"Lüòà بD2Fm¿üå/;z@°_ýêWíÎIÊ‚¿þõ¯;0Hãßüæ7mŒòÀ~ûÛ߶˃ Î1XÌ ö»ßý®C ì÷¿ÿ}I ¦ò¨,`øÃÚéÀ }Áb:°?þññ‰'žØA÷Ãø„ >餓:Ž{Úi§úÓŸÚé""Ï#…ÅLLóæéUÄ”_„v,3b1ožJõÂêòÎ'&¢v¡°AÈåA°qÄ™Îè†M1 \"9ûd€ª4’·H—f "9b”FøÒHÀBwÃ2¹Im0ˆäH`‹4ËDr&«!ˆÁ2i Y âŒA÷K'"9ØÆ‘ü‘,¬!’lbˆd–Ü&™HŽS5a‘Ë„îl°ÙÉ`1n{7Œ{7WXÒB$Çtã"’5}Žåõ†%`— ¶ä‰ä¹ÖH–´Å\É™0[ªñ°DrFr‘\§‘<×Dòr×Hžk‹d¬Ò'^ÚâÏxÆ "òg""*É`™H†ì‹DòR ƒ¹¬ ÞÉ“K$S^&’#¦—|.¯cDÉeÚ^ÄDŠe™662‘ /1*‘< ¦7œˆdHãL$÷#»ÉÆ`™4®ÃêˆäŒ C$ÇtÃÉX$›HÆÒš°Â ‘<ÙD²¬ÍÁòu.±aÈàÙ` F$K(É˽HãnD2d0X$`!ƒë°L$×atÄ™\ ݺtÆ‘pæ3“Ë|J$gLq&’oobf™HŽXC$7ز ’‘¼ñFæ©kD‰Dò¨dð|a‘€Õ­VGÏ&ïl±™DòôóX±b¢5chI™ÞL÷#’ÁòH'bÊ Ä:¬!’—/á‘7Û‹X Ž–ëñ;#] zGÞœ‘+0¥“PZÄXÏHãv0»nAôh—#`^Ä,Ñ«ÃhÓuéry¤‹}ˆ°Ž`{ð!™øeº‘1XìA°iÒØÈ¢©¬ß°øô§ß_|éKÛ‡ö9ëí6´Þ»4ÒøâD2ÒÙ"Òx‹äA‰dâ:Ò8cÄX)“—·'`ôø‹é ˆ!—c:0Èåˆa‘ ¹1Hã: "Y˜Hcˆäx\Hcˆda¤CÚcãy^o÷nƒâðÃ÷(¾üå{Ûþs{!‹p“xx–1¢ä1ô];XüŸ­Ëì…Íuyó‰Q÷ç Ë£ÑA±¹$¦ióÙ~nlŠ!dž'ji{6¤ñôˇ ¿í[Øoéÿ}KãL$ ˤq gÉÑÂYqÆ ~3 1Î9–ú¤UÃu c‹K‡129¾*Cê‚k‹¤o?Œ Œk‹Ç…Xæ:„±A@ #þ;~QÜÍö­¬¿¥ý?½lÏ®%÷¸7Øäa¼L†Åø¢ˆd–ð2̉‚u'’é|Ö6Åý+‹|äåÅ¡‡žjŸÏ´‹¿Ü:´)çv2yK8¡;NŒkùÇ?þá#'õ1’aÔÃ'~`uéÇ1 Œ˜ ²sÎY6:ºÐžÍ_‹·½íͶ·xá ocØ_lDxý>§Ù—ÞŽ¹ÜJ]л¹&ˆ³X7l(i‹ŒA& ‘s†F2Ú©Y#½×é¸âõ˜ò¢=‹ê´NíTuÉ%7U›o~oÓì]¿¥5[yZôb;∡ƒ;ŒÿÑ6›šÊHÆÊDÍ+8ŸÕN&&?ërf»OŸÃöÕvÛÝ¿Úb‹|ßrËilûíï¿àç×ìãÙ©hd›Êdeödí¶+Mc#«gèÓ~ûa´yÚ~?Œ>D˜4’I7Gë¯Õ1àuX -S‡ñ™±) ™²Á«Œ¹Ÿj³ÿ6ä/4vö–¦_ù…ÙÔ¢4"¹3"¹4‚¸QžM‡Sy`F$ÏÀŒ4.4îÈ fd°‡ˆ‚açÚl9r¨Ý–*K{+”¶<éŸæc«u×û5[Ö\îœ×à Â5×\mŸ×Øy]mÏ·pŒß½6ý¯ë¬û­Ù'kçÙ³³’Äg\-¦ääa°ºò"FR—n`"y®0È[Hc‰E",ëg"Y¤ñ\ÉX$Ë·„ÝçìJ˵Áð#ýб%Ñ#Êb—ËB¼ÊýŠd“·:\ùsºxÞÙŠa.ózl5”Œ@š÷;.Ãc®M«)ºN­ä(hÌ×í|âÿui"6èshöÞõ“m.§g‹‰Hî˜r0ݦ) ¡2¦f¶!Ef‹Åót#=CF†‘6"«^úÒ—Vûì³Oõ²—½¬2B¸úë_ÿZ=ò‘ôp Sv„|üOxB{(ì÷ LçÈ•ï`üι‚ñ,†õ‰ácøß(s÷Ýw¯¾õ­oµGx”w¾ó• ©ùýäÿXžŽË9‚Ùò|õÿñ~üÿïÿþïÕw¿û]?›³WoûÛ½ î…ŽÍÆ5pÎ:_veëœãýˆ÷¨Ùf· K]Ì&"¹eD¶Ú§#F$—`QÉÉ*WOŒ¼:ÁäÃm†V¤‹é4ÌŠFX“† ºÉà‹iák^óšÒø±Ò:žÒ‚ë•—]v™ßî“ÙÚ”ÖÀÛå3í:î¸ãJkÌ6õÜÀ‡œ¶ÚTÚjSiäž§'†T6Rò)!ÓE[=óa²Ùý”&QéÝ6Gc@#þ¼mœS)Γï\ïûÞ÷¾r§vò<*ÏÂýø1Ù9‡þð‡>Ýäù}âŸ(ôéØW¾ò•r=öð¼f3TþÏÿüOûØLUÍÚ×ï ÏÞÈyŸÂš½OwIcvGþó ò˜®ÿÏ>ì³h¶™›î!SaêÏ„ºÂý¥=‚ñŒ"Ƴî‡ÑæiûÔÑ^m@˜èÒM=ëYÏb¨Ü&’ Ú–Ic0ȤL$G¬ŽHŽé”o¾zÔÙ˃nI¼ño¬,haõЇ>ÔïÇ ^ð‚ʦqþ;A­AWo{ÛÛ*“ñ„5°Ê£Š^õªWùHà…/|¡9X„ÑÊŒ+ëlª=÷ܳ²†\=ä!©¬QVÖX=uP^æ7¿ùM?ŽÅ(æÕ¯~uuÌ1ÇTÖax^þ1ÚøÁ~ài÷Úk/OgÚØ•™éWö‚ñs ¼7¼á •uV~/yÉK*ëð|„Dµ²ŽÔG€½Õ¯å¯xEõž÷¼ÇÑ‹^äçɹpNüÎ}yýë_ïu±Ùf¿iÔÈÒ8Ì› ‘Ü £¯fÓî6ÖA$Ã¥d2˜ž©¦ÑN?"9c"’yóB$gŒòD.B$gZä²ÞÃl2eW\hFì¼Ý)ŸòY0*Øo¿ýüؘ“sŒRŒw*?ÿùÏ{à{ØÃJëÀJkÈþ»MÊ'?ùÉ¥5ÐÒ ¿möÝwßÒŒÝÄÞ:§òÙÏ~¶¿U0Røö·¿]¾ÿýï/m:TZÇå#FS~ðƒ½<ÎÁ:›ÒüœßñŽw”¶ºååÙJGiMùÖ·¾ÕÜ%žïÇ}Üãç¦ìVOü[ÝóûmŸÖýplÝFK\ó÷¾÷=¿·œ£±ç=ïyåÞ{ï]~á _(­S.­s)?ó™ÏøÛ–óÙe—]ʧ<å)åÇ?þñòØcm?·8ÕÿÑe¢ÙúosA×ÅAÏñ ñÒE$w̯5"FokØC•ÆL!u…Aì¡|3ÓQž5ÞŽt`FŒ’8†ufÎÌn²þVgÄa$ke ÚGP óÊ'a~0‚±ŽÂy>9wÞHâ>¸Fq „æÍÀï”Ã}äíbö>úa´qä‘Gz:*É«0»”ßÂ[Gåh “ï6 öòL~£úÔ§>å|σô\a›cø^î•ÉwTÏ}îs«ƒ:¨=ÒÙu×]ýÞ2Jâw½iÅq,ÎC£2]/;£(FEÖ û?÷ß9_•Ͻk8Ÿá·.YŸ …Mµ¶:z#Þúã´”–{@ayÉ­Óü2c¹¼ŒñÖÍy…Â!p ³í)?ùÉO–æoUZô7·MqüÊedƵó–fiŸQ#–3áFøÑ| çÃwkø>BbdÀ›Ÿtä…7‡EœÙà]8F,Ö•ÿýßÿ]uÔQ~~f¯QÚêUiS«òK_ú’¿µÑ0W皟óœçø=¦±úìg?ë¿¿ûÝï®ýèGûw›¹a—5ê굯}­ßKóórŽ…ÑÜÈ÷¿ÿ}çd0fäs ‘#›ùwòÁ½¼øÅ/vÞæsŸûœ¸…À+Á­°Sü#58*FaÖqVæÓUýë¿þkuðÁûÿ²ad˽àúŒøöQe\}l¶þõúÆóÒŠ"÷ŒºÓ£MGŒ6¦Q¼0úˆˆ1‚Æó£nnÊÞtÉmi ÞF¼}Àô6é†ñ¦&Y 0ÞäM€ÁHc.zÊ,á0(V'‘±aW4ÚáÏÇ·Éyìé¸MÝJ›FùuÃ…ðûü¨G=Ê9‘‡?ü᥮þ»u@.À÷'=éI~¿MjÔG&âŽàW8–MƒJëx|'e2BbôOôÊW¾ÒG Öa8FyÖqxz0VX ³íy­ƒôßÈ_ÄHæéOº¯Ä™ “J8?þ§|¾ƒSÙ)íçÍ( Nèñ¼ó3Œ^¬Ó+d÷ã‡ï¤å;×Îùñ›-høñl÷{Ë}4ÕÄÒ:ky‘ŒóW]m¶þœ##ã(³!) °,OQ‡Ñ¦#F›ãùGŒº1F­Â$m᫵Ȅf§MŒÁÆ…á†b¶W'mQllÔ`{ݤ-§`Ò0[tb£< ðQb—Aßå}¯ï¨øÇ´Âð“á;ÿã9Î'ò‡~¸K£* 2i(Cytú]F*?ò#ya£ó¿zŒOÆ<4J Šòù_çÄÿJ .±*]eéX|’V¿“‡2ô\Æk:¾îé0ØT:ò€Iø; ·7[÷ú)ƒÏ:‡Ï…ÂÌ"IˆXIUfYc¥Ü “õq´\–¥qƈf ó‚a¹,‹äQ,ŸX÷jXþN£æ»>…E‹aþ'R ¹¸œEl¤:NTØËç¡ß(‹N›NÇF᤹ænåéÜòÿ”Ï•O]ƒ¾Ç´u¿çï*Syu>9¿°lÙÜlõ[Ôã™$kÉc·HŽsp­Ld{™IÁ&Éλæä¬ q®ÑþbT+UÊcVÌͶt-’ù̶huØ‚Z$÷³>ÆÊ ɬè°ú1ŠEr\iš/l’æäÜGîsâ¹°M‰e6¶.ËÃ"§Ül‘,+ål}<ˆ•2mld‹d[ ™a‘ÌŠC¶H®Ã´Â-’Á²E²°h‘ “{À: |¾±Q-?å·$›6îë|$8Çfô¢<œ§ü½âuè·f4´¸-’iƒÙ",[‚ÑæÁ¢õ1}D¶HÖa‘Œ‡ð¸c™g"yÐ`{™4<(‘Ü-ØÞ¨Dr$“ˆŽéªta9ß\mœ<„΃kSô‚~Njόóä¼9v] ;åóq Í6™Dòœ‡ Lœo" ŸL$ƒ B$CÏ5‘ 6 ‘o$#f·â" Ø\ sur”ò£¼€ÂÃÄ{Ä.\[ÄD ætñ^³2…¬*›Òt+“s¢cä|ßò–·ø*™"zÇL®çë_ÿzaKÕ^yt ä½9–V³5DòD2#L¨ˆ£ê&ƒåƒDLzȹ\H,ê¸ûP%Ýjv7…ãyäóqòˆ,qÄ^>£z¸çtR`Rýç7.øÔ*NÄÔNX ”HgÀy˜“wÍÅüº>ò1ʕގèùh]]sgðk!«Šæÿåe‘>ž§*T³MöH‡Ï¬U<l=äZd³4YÚ¢‘ IÕH^‚x®‰dOáȈ‘ò¸.àÞ`£1/AÜŒ;+¿øÅ/ú}ÆÁÑî{iº4.oÁ‡C(Žšo~ó›Ýò¸w8€Ùï8ù¸ï|Ç¡9 ¹–Pî¸Zp|³„vŒ´8zrŽl”ù¦7½É1³vökÀxŒBœ11Êã<Œq…È6¯öòCúç3=RñÒšmiÉݰ9'’y3Ž›HÆd>É A‹HFª9 î!fÞ8`ÊLÀ¦:•yx»V­YÜú±p€D>ÄFE•yWûR¸u•y–»4nÈaüçþgeF“•D¬ÌÊÍÊÌ¢LówÇRœ,劄YWxÄ#ÜÇKò YÁ1(›ïœ#\;Âczþ<9`’FŽ˜‡z¨Ÿ7nÖ©ùu ‡×)) èÃ’ÙÍ6~"™6˜‰d°L×asN$·†èo~zµqaô¶ˆUeda£h$×I[tÓMÎÉ`r"EÚ"J.h$Çè‡ß0ÇY·ó5r7ä<ð@µ MAZò’ÎtgJóEj’q2ú eâHÊè‚Qo’è&ÂñùŸë£\Þ2¸$`zŽë÷q¯ˆqÏ9–;âÙÎUŸÒ¸5ÞËC'× £ä7äÌKZ] £¦Fˆk²¤-²óóBbS­àxFCzS‚ "moú,YÆ;bD¦ˆ΀Èb“´E”ÊdEƬñ¸,FÌ †æ(Ò”Áµ1Z0n—„ÀaÒ|›ÜáæØqp ãI*ówOœ1Áe°ÇèBi¹V ÈW™ÿ•§<çÉp ›6yŒBˆbÁ¹ðf£ IPàp‰dßùĹN³„q|GzCR”Ç1%ÇʹIÒ V~ÇYÔ¦aîàŠPNž”ËyðÉïQ¢¶Ù––´Etº›‚pÌd°ÌßGÁ ¡3‘±aH§LòÎ6ÌF^|Ÿ°u2þÃÉäw½ë]…MÜÏ ÂU@3WTOÂþØÔÉWˆÌƒÚÉhÄáYI#­"„âÂî|B8㟆1§iÕï}ï{ 1æ™ÝíL9ÆÝøª“ñKî¯e–Ÿ˜ dYàÃCÛqL–Ãï=ÇÔªn!È|ç¼ù_F‰ öº×½®0^§0ÇU?aŽÁ£ògÍ'a”G5Ch¶¹'’y.™ “kʨØX4’3‘,l©ÉšRAÔAÀ¢„‡§ôW¿úU÷ܶ°¾® '/}[~vÏ[ˆe<Á™"¡WÃï`ÆÝøw“Ÿp/m‘Óx¤KÑ:×—Á››cá¹®ó /ê~þð‡ÝKÛä&;ì°Cùo|Ãó£ÝcÒ­žŸzÐl‹‡HΤq7"yVÉÖX| •i–¼†$rLK¢`F0õÄÈ‹ó(X ¸1̶ٚ§'6Š-e°<ί}¿å-ïpýF:ì…äÅ Œî­¾ó›)ùYà·hY[§Ôöâ&?KØÑaWÞà2öã7Ê -ßåQž1¶‚‡ïz~²çá“ð=Œv(o6òk„¤kÖxƒOÆÆ(Ù2ÚϘºE{Ó3F[í‡ÑæÁèzaÔOa²³sy®CÐà<Ù #bRF`vˆû“´%˜É.a1¸ V‹„Qž0•Æ*KÆŒ4v¾!æƒÛÀѰ«ì\'×]t½JÓŠ+Ñ÷œFyá`ìb Þ…ßX‰Òj“ÊÔ±tZQÔ±ô[<~¯óŒ;ǃ³¯ŒqZë•O{³-¬Ã'Ï8;5Ï›•Ãg‹Hî˜Ãñ–¦àxFÏ¢–­áD"†¥q´\–E2X¶HΜI¶fžEr¶üì†uûÞíwÝ+ξ†· £›h}ÜÍò´×y©ì~Ç®û-€êÊäZ›ma,’ãs‹Vñ MaÅš9ŽÈ½Ì56ÝUxƒ¹Â&i>.3)3.”'<}NÝÞl‹g‹& ÑÄb!0·H¶åNç#˜‡Ñ ‘ì\‡Ìüꉑ—¹¾‘N>ßç MºˆI„iÒzÞ¹æò¦Û(cЕ‡èh9*ïTw>£žKÄú]«F¹ÍÈgáF:ð|F·Wi‡´G0ÚgÄh«ý0Ú FØjarØ&Ý”™íÏ)‘ 9‰äë®»ÁÊ»¯ë§Ã™•·®B/6ʃÍΕ|ÒñÊ·j!=´£y@<Ÿ^×#ÇÎ܉DgUMÍUÉòµÊÏl6D}³Í~£=Ú ã ",“ÆuärÆfM$[9p½õn2sýÒ̟ׄ8ÕK‹¬ƒ´ÅÔ\±¾õ‰Q†‚\· $‹ ½cII»¦] rº:=è– ã. qkèu>2úÄ\]‘Cã1y¶ŠÍNˆzvŒ1TÙ¤‡€ÆU· Ræã6ÛÂ(.h,óqÉ,üö·›û¦æu½AA˜N[ÖÝ'fÁýcC?‹ËäFwŒÑøAfñs–™éÜã2½<µuÿµõxx[ð!ª¦À*OùãÈ¢õñ]#Òk:lö?mÝœ8Òqy+ñiN¡î)Ïyr.ò.Ç#kÄ(H"æV˜ ÕÍ6¨}n2 5[$—Ì`h=蛑OC$Ï)il²Aöy£­gál¿Tî¼ó3ËÇ<æX ±¾·«ÇNVÏt“ñ#á|ñæÆl<´1¤ƒ¤ÆÐ\<¼/¾XÂü†Q ¡•ña#/^âÊ=Ï1¨Â—‰ïX¼3Òš£<|Ë0öã|vTž0¦$9Pâä®a+’ÓÉŽEéÌÌf„ûÅòÀä5¬? ÷ÍŒ÷*‹×T™e¯ÿoo|«ËïøQ1Å 2ÚçŠAõt¶×^{¹¸uˆ{"î/v:§žzª¼ãòš‚—m®îóÅ5(¤°‰q¹=²*ëü|ùa³„W:¶OÍ㜠ÜÇsä>á£f–Æ~/˜Bññr·\õÃþÐï—YXûTb|ãø®ð¿Ø<1}ÃÝb9†=ÇÆ3ûÌy[×øeÍãVl¶—ëåÀzum>Ö«Ãb>µÒM1%ÈÁö1›ëŠ6c1ÞlÓéÐY¡—»ÚÒ¼Ò¸}Å‚xíni®²œk{:Þ~¼uUž°¨Œ·«0Þ¨`¸ät1Ð;éS›1Lþc¨ba£„.ZA𰲸Œ¸.ŽÁè-ôrðÊæ\Á¥€ï˜cŽñ2(‹ |ìÃ+Ý:ÏC ;òãÂÀ9î¿ÿþîqN;®Ù:«öH2i¡¥Ãh]\"ø²ñÚçžØ KóòçÈy3¢Á%âk_ûšçãü‘|¤ÄÊ!¯\G¸V™AP£$\9ÐÝÁ{œ{MÝ ´0eó;Èz©ŒÑK N$ãM¾ÂÂí^o½éVfiüÔê»ß½“•q½õxxCw†¥)kBÕ,6,QÇNh_Bþrð'̰ÂÅè Á¨½kè>ÂÀ3Ý8O+«_YKs‡Ño ~×h’7—MÅ*s­¬ÓòQyù › b×:(×å!ıÈ[‘Ô:£ZF!쌈Áp¾ò:'ú>è÷`mîm˜sŠ–Ö*›‘$÷œ{BY”aÂc®çc®7NDë\ù$× 9=m£fŒHž Ö 4ØÂT¦q´ŠH¦Œ)ó3º¦¸æš‹méüZ«ƒS^GÇmõ<l/sY¸²IM?øÁ }´ÅÞñ ‡ÔåËtòX_#kŠ$¨ü¸6:²ûtMÛæc¼Ö-&xa”.%ÊoøÊQ†u…vÚQ79ùM0Ì—7!„mç6ÈÊ'Ê:#?oò |¹‹–ñNžð?Ê2 ·×2^¨°ŽË£‹RBö2™ ,‘Øú_zк.0,Àmzæe˜†Ÿ3es-çxÝ㥎׻MË‹šÎͶĈdp&Vå<;LõÑ&TkÏöªË[Gòšn!ˆdåaúgˆÇî6aŸ’˜„Çñ†ehÊ”è£ý¨ã`¹Äﶆî¿pÀåžðÿŽ$(_´È’2ÕAÜË´xÜ{éQ¹˜Û[d÷Š¡,ò¦¤á¼ð$Ç\SP“²ð4;í´“{¹»šéd7žç¦PèiMÛÙÏòšéç 'œàçÀtüŽq=¤eç“ÍðïÖñùwÒá%ϵ“œ2Œëò{EuwÅq·Ÿ‹•=úÑnO±šmî¶HÜës¡°-’ûY)Ë"¬—Er/Œ7Ö“9/~GÂ=Ž·zL'L£ Ò±Œ]‡1:‰åÉksÞòœoituxsÓã2¢áÍνÁ?ŒÁŒvÞyg_^àèKêünü‰{qóüÁнá\}pŸLçz…í;Z72ÎTLu#o kÀ~^æ é# pò™j`û»ur~>¤a™ß:?6¿£§ƒ”­ÊÒµµƒßÑzìcÛŽbÁÈKÿY×Å1ðƒãx*ƒ{Nœv›Îùˆ z|àÀXv×È­ÙæÎ"™v”-’±>£Mb‘L‘-’…uX$S°ŒÉX ‚Eëã: ‹Fa²H“m‡†ôU)o7Œé@–Å ìVätH:¦1°èXjoøZL7&bЇ¤ýv¥“&Â]<$28eó]ÒúÎ'iùŒŒ¾³›wŽLiˆ*AC—DÇ¡ :Ël5L^Yò]iÀt<¾Kž‚Ov:÷x¾ºÒòœç¯üù¾Çë"ŽGÜ«º4±ŒAî³÷¯Ÿ²H¦E‹dÚX´4î†eËeÚ¦è†É"Ùãìµìtf(.gL†àƒîôâÜKv:0außù$ožˆñ¿¾³Óá0bàÅ£U<ßó¹(Mþ>ÌùèÝŽó÷+›ÿsÝÒÄ2›}v»Â©.g.sÜX~ŸÉË cã¾@æ.ônBˆ¥L³ h'Ἒ}²w04’œ´¶&"¹cY‹å×åŠEŸ –¢Y¶æs¡vù1-ôy4ûâÙ©+ì1 ‚L8bÝ_(LDò d°¨‡\‡až/LÉ`½4’{a˜Õ£çšóÊ¥@Æv¤ÃÌ?ôc•Lé·R‡wÒQz¾Ò¬‘ù6«)ÊñÙì;Xvê,+kJ#™v”5’ÑC£MGŒ6ŸõÁè#²n²0i$“NDrG°=ÃÅÀzu˜‘ImLÁöÀ0öŠÁöŒœrLy»a¸ä@}¤ÃÔ^=8é0ž‹é„ÅP7F×b2ÕŽ˜$ã¦7F¿ãã:ÀÎ}4ß(;Çôäíu>¾eg³Ç²ò5pnÂøžóe¬ß®òÆùÌj×H‡6E;ŠÁöh{`1ˆ^7Œ61Ú®³RËÉ`£X$Ç·?V»XÖ¼,"sò&&§5^¿ød™ÃcaAù|Ê@$L±ˆ–iÁ÷\ìÊ\ÜçJ\DÓÜgŸ}¼,®…73÷èï|§ûNáõ⿸0IŠÂ$-|”%a0“Ôh§e‚_å“á-ÅÆâXD)źÙ:M·¨æwþçþs>ºÇèÏσkäZÍ}ÃG"`øn}ö³Ÿõã“gß}÷-LšÃï£ è~jÖúÿûØÇÜÊš{ý­HGäQqxù˜ ˜—aÀ†µ6QKɇ÷‰{ƒÅ4ù;ì0¿¯œƒiþøý¶€†…Énø½äÞ˜'¿ß{Iøq¨ KÉçkb-’iÙ"9Z×Y ãág‹dYgká:ëãŒaœ-’I—-’eiÓÕYï¸ã޵X¶H“Eò(7“á=œÁ4Bó±òÆÍ~ö³Ÿí€ßQÓ£SñQâ3Q,oPì4fòò‡OZ†þ„)Æ‹œé<¿a·Ãó# ~”ÃôHÏgNÒ2M1ÏvŸ~˜æNa>]’XŸÜCê•…ÊF%ÅNˆi#×xÆgxecŠsÈ!‡¸á"®æsæ®t ¨ ÒŽ˜ó&×Íý #ã~àîò Á ‘̹‹Ã‘ Ǧ±ÐñqÞ¸ªp/ÌŸÍÏ—Nç»ßý®ßC:e:sî3Ï›ŠNçÉurùŸó6M#6ÜyÑØJ¿,øŸº°Ý/¨´£l‘ –­ë°l¥¬Ž?[g+eꀰ‹äÆN§5Øe Ø…ôBXHY˜/‘ËJ öÞâpUæƒU™u± s!‰ÁjUüÊ®¯ ™ß’ãgŸ}¶k#Þ…ŒbXÒ7FR‚´rqœ¯|å+•9_Væ Ù>¥ã¼Hk^í¾’Ç9!±ÁyXGãÒZTÎ5JSX‡âß‘áà7ósA2ëpª|à^–$BH|çËÿæËå¢aäGØŒ²ljäÇã»uø•MoÚÏY óWóë8|ÅÃBWfÚQÙèÅÅÁ(‹Hî#’"æ·å×ÄŠ ×h*‹~?¹¯æˆêbcf`é+–6‚ªÌs¿2ß¶öùê³ —š´ÅDÙé´Èµ<ÇrÅF‰-‘"8øøø$Bù´FéilÔàŸx¢#Â…°ü åðÉoúÎìxèHšòmë¼ll'À(.‚cÚ´Á½×‘•àŸØh» ë \` ̤2J=ùù±“ÏpÎ .Ħ.þ.Æ:@·m‚»¢ xÒÂá vÜqǵEš8žïœ/ßIƒg9¿ÁÉèú(ïØrˆK¿Ä§êü¸<âáaÌ©ÔE¡$eV·n—‚8¶\ð]”‡w?Âc`xâs¾Ü+Ê5ÇV:³ŽÇíY(# ²-%ñ°ImkSuKÈ …Æ1œžDlXN‡N[CK†ëL´kŇ™„ôÿ€ÃaÈG·É_¸ç5Ó&ŽK¨†ú|gèÊT¾=¦L·à‚ˆZŠç6ÓŽŸa#Ž~Ža°VÔ˜.™T„çÇw‹iÓ7¦aLoø ~‹žÃ:/Ÿ¦ÀƒXgâÃb“N-l´àù˜ÎñŽscgÊgƒs=Öù8§·ƒÇ59ŽÂFa>Çç|¸>Éùõê;÷GÓ]qÜ;¦dxâs_øûÌôŠ´Ü;<Û9?ø0®‰4¦ºèSP®{Í4‘ó¶£_<ÒAäœå3Õ‚ ƒÓYj:>qÉ<Šáë³£îŒcnž5’í-5C¹‹ZÊÒHCW5꣓šõÑ]D#™ts©‘ –5’ÁFÑH–1¥ñ•Iq¶Ëc*…ªdz]‰Z™ÐWe دéSŸú”ë)“ÞÈÌöw#<}ŠÁ9ÚèÅ5‡<òHŸÆ0}`Š€Ó ¦:è"[#«¬Ss5@…¡!=iÑTfŠ2 =o×f6¢×ÏAS0¾[}üã÷㡽̴…çüÕ¯~Õõ˜Ù9g¦E¨¢éÌÿ”mOe^eœ×:?.SΙ)÷Ù¸ Ê:K¿V“è?üpÇu.|·NÉcÌ3ä~ýë_¯L›Ç¿“Ï$:<÷–kçš<ð@OCâwëdü\™®²q\ã´*éxlx¦‹Öa¹Â"zÒ2r]ŠÉ´£¬‘\§‡L[Ím:k$ƒedúˆ¬‘,¬C#™•–£F2bO`Q¹CƒX˜4’Áâ’/"PY¹Cl*k$“.k$“.k$ ‹zÈÆÔbY#ld¥çp·¨Ã4\g¨¯åy¾s¿˜bH·6~'σs$-çÆuR®0Êbª$Ž…;‡6Ê#_LëK–­ˆV‹çE¤ç;ù)[®)`:O-oS>ÿóË䜧ŽË§¦pºG\[Ý÷8çÚ9®¢\†cËU%æÓµžï,Ÿc¦o#-Ÿf!\Æ}Ñõs^œe€‘7F-XŠÉ´£¬‘ –õë0ÚtÄhó`Y™>"b¸aÓô›t²Óiˆä‰d}f‡ÑLJÆ7hÔ•¾9áÌïì¥I9b*+Ù‹ÇÔ9Ä´ùtœˆéxñ¢&t Ï)æÕqcúxº}÷Oׯ-ž·ëï¶¾›Ý´lºçn4zÎ1a<ï¥0Þ»†H^"Dr³Mîž‘FbŒš¢3ïrØâõ6Dò„c"“±i@<;>›}qí<7Hl[yóÿ±1ZN׎Á%‹Úæ… ’Hî°HÆZ4[×aÑJYÉ`Ù"YVÊÑú¸c…&[$“.[$“.[$ ‹ÖÇuVÊ`Ù",[$s^¬ø°ZÂg³7ûbÙ©³¬ŠbÊFû¡e‹äliÜ £Mg‹äl} F‘-’…uX$crž-’£¥qõ±0¬³E²,³µpõqư ÎɤËɲ4Žéê¬Yv­Ã²E2˜,’ã2£ÄÎçzwùÍÞ챮ѦhGÙ",[×aÙJ™6–-’³•2ÉÂ:,’›éUýôjñkyGæº2„щÒëçcé{·ü½Ž=ÚQòf6g :•ªÃZ'8cEg¹bqõ¤ßW¿;â›D“0ßWy¬–°Ëûâ~ó]r¤Za¢ å«DZq‰«8ØBSyâêL^ñRùqE)—;È57ûâÙ{¹E,$6Ug¡»œG:Ãlâ„ )±Æ£n,p5uÔðVN˜¤ÇÛ îÚÑô;£N<Ÿ‰‰%!+ÎI¿‹‡Òqñ^'®‘E±rV„P¥g¤i$ÿ3ÕŒÓWŽÁÿâ¼–šˆÕrß2U01#LÃ"ù§#Û£”÷¹nyoãé­Ž‡4t0Gu”ß+n:÷Ž|‘-~Ã…€g€Ì†Åýö2sàþ(?÷‹Žƒ{M~<ÀñøÆ%âÞ÷¾·»1pmäçš8¾ÈC³ŽöнÈ?p¿˜ßS&;y"ÏÕlKOÚb¢ˆdd²Er´4®³>†õb¶H–¥q¶®³>ΖÁÙ"™tÙ"Y–Æ1]õ1Ž‚uX¶HÅ"9Š€ú—Os(Mj¡4ÿ%·v%T¯y=ûý5ÿ&w¢”•¨É5”&KQÚ*Ciîø÷…¼8WÚó)m ÔíN³"¿,‰±¢%/ŸêÂé‘ï&ãàÇÃNçI¹ÌS»49 ·ÚµÑ”;}r ³JwçT‰y5ÛÒ³H¦e‹d…›î‡e+eÚ%Û` Ý}²¯°eÌÊdF+Ó€qŸ¸ä¾À7 _#|²ðÙ‚?,ë5Bâ;ç…DrG}tiç^çßl´ÅX-’[$êŒÞh¹b£¼Muب2…=÷rƳjF'¦±ãB[6 ò‘ B_xQ['RÙÔËW½aðI¬F±*EYxo3âQ~F5ä×ÈŒQ^»¬Z1º"/bVx[ìs®bÅè l3w¯lľžüä'»g9£.•W¹šmit&©­9‘ŒðQ ¶‡p˜‚è!ÊëÁËúà b^°XOAùb:0¸Œ¼7}7,–—ƒò8LAùÈ«@}9Ø^Ćõoat`ò›¥i²ø¹3eD·Ã}19‹Ò¦4¥™§ûÜÑ)Ó¡)Mߥ|ä#é£3YwohÓ‚ñ90Ü÷†ù/ùá‹àu¸ç{q-qr„»øÎÈ…y¶M±|ôbr¥I?8GÄ(È:ŸÒ´güÙXgæâñüF¹Œˆ¶ÜrË67×lKk¤C½TÀ<žq ¢ƒãQ7rÀ¼ˆ)/mž¶/QAôÀb`=úŒy°=„º±ŒÉX‚ÉÒ KÅh},‘¨lÍŒe0âR9oõ±°˜Wq£dá †1]7,–—-—e‘ F^°<à3,’#6ì’¤¬6YºFó×¼› ëpüþð;+oH¡ÃkS#_QàxˆM±ª€©:úÉünJÛú›r{'¿uNþ;ËòºŽkS8/[«Yº‡äEëÁ~°ÿ†v3÷¡*4’y^¬"˜¤¨—kš6íåÌfõjém´)ê…ÞTgÁ¢1í–¶š1¥S^Ú<é´â+KcåF’1·HžéÕR'’™æ ”„àŸŠ†¨²™Æ€³“žO¦9Šz¨ß˜v‘Oé)'æ§üh¼HÄÆˆ‘We‘‡ßØL}ϵ„î2ÎÇE° ¡•6–ÑlKSÚb6ÄïœO¯–s`½:,TaW€½Ÿ½vì)içÿø;6úÿùËy•OéóÿÊŸ[w,>ÝðRaÄÄhÊDÒý­Ó¯Üf_Ü»ê¬"lÈfgRÚšF:3XæåŠEå?¿îæs±îœ?|Ü ;|Ïb¾žfì™[çmêêúB·5ÉÉF$»¾©´³F2¶%Âb^´SYm‰y¥›õ£n²Ò1ÜšË`Òò­ÃbyYK™Ui)“WúÊY#9bqú²¶¨U›mùl´ iÓ¢rÔ4¦Ýfíãˆ)¯ôé¢öqÖCÜ"’;,’YÓj–ŠÑú Ya1/–Á¬ŠÄ¼`ÙúXaEb:0…»ÕÊÉݰX^¶\6¶m¹L^0ã7fX$gLáP±aå‰ÏfoöŲSg ¯CÛ”E2íƒvB;¥1X´ ¦ÝÒV»aÊK¹´}ú€hi ­éC2æÉNw;ˆÚAv_HàAÓϦLáÚçò˜Í¾´vY—OœNC$wb£xñBܱ)l6ËÎÊ XW¦ŽÅ.Ó„f©»Ùú9~N‘¬ ›\®Ø°“‘"öˆµ-7~ìô»l²wK¿ã7>eó„¾-ç*Sí‹ÞJ¸øáØîxt¬X–ÊÎXÝù4ÛÒ–¶˜¤¶6õ‘|Ä]У´AéÁ$Y‘¥-ÀXŽóâòNÈy%wÑMÚBéÀ0˜‹R’¶è† *AÞ^Ò†ÕÓáØækUX9¿Ò©á{ÔÁ‘Ñ£–4ù_Ҹᓼ”I„LŒ %) k7/r?Ç!ª§»ó|~)¿ÊÒ9“Ô…Žßt<ËKÚBL£ŒE”¢ ÝfÉŠˆ)¯d,$³"ÉŠ,cÑUÚâ¯xÅØ-’£õ±,ˆ±ÎÉ`Ù",[$G,–—-’±üÍÉ„©ÍÉöM¢×Â1ᢳ 3Øu×] ‹ùíázùŽö £óì.^ô¢y8\“µðs·8MσPÁæ‘îçfäÅßþö7ï,4âAtû©O}ªÿF¨b…&´/£#Êb$DYûí·_ñ‚¼À1,’Y8à8æ>Ñúj:ž¥o‘LûÈÉ`ݬÇj‘ÜL¯f7½Ò¦ÆËÄd"¼S0§ÊÂBÖºx–9\º{Οÿügïü2íWþ£:餓¼\LÎÂ]$ˆnòÞ‰ÓAÜ a/Ê">9· ³Í(Ls§8ñÄ [¼ë]ïòN—7ñÈ騈UŽà˜9€¶ßVÍÖL¯æmzÕ<šÙ?T6I‹²ÿ«{Þóž>‚ÂÊ0]ÊÑ4¦| [é8>øÁú‡7£Þ ±ÌLóQ¿½ýío/úЇz¹ÄxzÄ#QØ’iabþvã;—-¡æEîo&s&-°ÍbHšf”Óló½5«W³X½RF ’"å;#~c.Mç×Ä(ã÷¿ÿ½hpÀ4Ù wÅ^Ñ #æÁ”ȇ¼yõ©Σ;ï¼³sˆ©ÞÇ>ö11‚V¦µÙ§3q«WhùFícÈ&twÁ¢1ä2@˜g‘ÆJq”5’Á¤}ÌAySCNe=d°LƒE=äŒÅò¤‡ iÅ´‚F*d0øÍE•.bÃŽt߇QFüÎñhèò‡saªÏôŠÿÑ2FÌ€‡œ'ÜÒ]îrOψçÏx†O¡Lî´MâYn>?çþáInr¤…ÉžúçAz°à‰˜ºÁ‘ÎDœÓË1)Sït†å°šmqn´)Ú‡4’i7Ô i‹—¤ÝÒV»aÊK›§ígÂ,k)gŒtS¯|å+;àG"ˆÁxÛ ƒLá F#ójªó‚Á;D™á½0¥ƒà¦t"<ë°X^&¡iÄ"œÉ F£¡tj˜ØÊÏ(…Íyl½õÖ…ië8nbYN s/áPLÑÏ;¿ñ?; Ó±ƒ:È;%òr™zñ;åsn”» tµÏŸ{ø¡}ȧZt2¦§ã÷™ ˆk:)¦{T"8%Ê“€<Ž Í ÖÒŸþÓ¦hÔÚí†z–É`Új7Lyió´}­øÒþ…)õ>c¤käJg!WCËß1ûæ;Ÿ˜ŒSô?âbQvw ~“ ºò-ÙRK¸¶˜ŽOœüKB 0‹6Qyä‘^.bN*ŸcJl{T©ÖfkäJG’+mV¯F_½Š«²ñ©û®ø?ùaÚ–&çÍ’Ñž(¦ã“!,#%Óbö)×g?ûY«qmŠæW42!ÞlÍêÕØW¯Z–±M„Ïô}±kãâ]/cüptmE#ÖÕh&/t„O8††HHžäU ½åF^Úl ‘<6"+V¶Á) ç É 0øa¸·K >BXÌ‹»¼ä."†‹|”À@vB˜Òár/LépÍï†Åò²,’’À /˜‘ÆmAi¥‹Ø(ÁÌø¬û>›iÝÊÔ÷¹:f·r#Óêd@¸_uéf{ìQË×½]ìmŠöA;¡Ðnh{`Yž‚¶Ú S^Ú$c¤k¦W³˜^!X=¢GEàõsQfÄ%ȥ®Ü|ì˜VÇ%à!ofujš¯3ŠŒcª[w=uÏlÜç±ì§W ‘<;"YÃP–ë£×8ßåý-oþKÔüŸÓ(Ó"™ÄcÉYSþ32GoòX¾¼Ïó13ÁË•/YݹG[Ì0h”›Ž=ÞµåãF;'9ÅꚘòÆë‰× {”½è»'? M©1¥È÷–ë’‰…|éêîm,/žcÝ56Drw"y¬VˆuǘTl˜­ÎË\•—U#5 y{Gïn~Œß°â“2ñÁâw:ÇúÓŸþ䯇øtY ?7þ£ã‘G»: y9y™ ã¸âÈt ~ØCÝ`8È”#BpV”Gçòë_ÿÚ}¼,V–_s{ý.ox]/éeO²¬®Áà±Ãì¹Ï}na¿^¦:>ÊÓwÝÛèE¯N‹='> Öï{ßs n0uTàà°xüãï÷–ëË×¢{ËýÎ÷VeªN-tÇ-’cç˜;ò~Øœ[$·ˆäŽÀuF${P,¤#·„)(Ÿë)Áµ°Éy±«Z!xI',æÍóÀ0¯‹å)t.¶* cÞ F^0ŒiΪtÖ‚<ÜÓÓñó!ü/ß ôGÐ=D²¹6sUð z_ÿú×ýæÆfä硆 % §ÄypÎ|²[#(Í?Ëչǔð¶ÅH/ÍÐö™c©Ÿ²=öXŸ¿S>׃}v:ǼcÜŽÉN 4ø.qe݃þ™¡biî¥9Œúµ1?î¸ã<5V¿×æÊáeq æí\/ÁMßÇyµ³Ï>ÛÏŸô„Sæè¸ä£îp\®Ù"¢–æ [ševióåóž÷<çQ8Λsãúu ŒÈ=âñqî3Ç¡.qt¸:®™2¸´ÎÒË0="Ü[î×JXfž÷–{óâ¿ØÿçQ¿¸·œ³¹—ø½5¿N0Ηt›zÁ±£üíBlâ£hSœ?ÏŽsâz¹_`œ'ç F»¥­fLé”—ûLº”Oy…чdŒt"’}Yar$0Hö0¶Ädf„Pe°!d.,æ5Ò©2ò©#/ó0‰»d$VS:0Âë S:øƒnX, ‰F0d=‰÷DÈ^0…Þ5Ò¸-(­teŽLÙ›òÎ8ãŒÊ‚ØUÖ *kˆ•¾«lÔRYçP™$…ß7„ïí¾»è5÷ʤ'<ä°É\Tf1ìâ×p%Ü[Ä´£`<¿éQßÍk½²( •¹ST6:rÑm 9ãç`B+kÈ~,Ž#q{“Õðß)›M×o’•5¦Ê\+üúL¢£2ß°ênw»[e®•u¤•9¶ãu™Me#–&£Q}éK_ª¬S¬,€_e‘'ü”%îgÏ=÷tœ{űmdU™/Xe–Óþ,,LއF¶Ž¡zÉK^âÂùßþö·=^çM˜esXõûmae¤‹}B™ëã~p_8ææJRvØaÆÙâµWÃïé(OqžØøŸúµ±ó?ñÂh Ö WÖ)úõp9çm^û•uB~lÂ@›ßŸ+& Íéø\+íƒvÂ=çÚx^`´;Å_£.ÒV»aÊK½¤í+˜í_˜Òqß2F:M¯‹ä¬rãJ=9eð‰(6#,‚ ÿ†7¼5ÎÒü¢ümñµ¯}ÍCóF5I % ¨mZ<.ŒoÜ߬fä硈pFf„‘19 ƒ[§PšÞNù£ý¨¼ÃîPšŒ†ã&eá£s uœcðÆâ;aŠ!ðÆgd­ž9×Ûßþö¾Òa ¨´§4×[zØ:–Òb£ûˆÇ·©ˆŸ§u¥¹nøÍ\/J›þ•Ö!úˆÀ:¿F%¦ùãÇ#®OFà¼Eµ Ê9ñœ{b¦‡TfEHgëˆ|ôÃH…Us¦õQ ×Ìyð,LJÄãšÌÍC+sÎ "À=à\Uqoù˜4ˆdÌ©ÖÃDÛ ¥´ÐÓï±Ç¥½\ü™ýà?ðg³á™ΙÑ(# …´ön,’— ‘œý°²#¨¼Ä­qÎÄ*ª;€sÌ1úÇGu”[#?!2ûièÄ © tqð³B›~â=ïykø(Àž®…²¤õ=ÊÑÒyÌcÓöZç7ü¿ð|ç<‘Ý@Q?1|và/à;8WKÅɈçб"¡k¡l¸Îɨ{Çs\Òâmo¤ÿŽ_Žxì¦DpÇë!¿‰£ËÿðO¤gC>Öâ·» Ç—ï<÷¹îYS.ž÷Ü[ä?lJVØHÑ…Òp¬o¤¼”)„¼ð:²Ã_ŽóYH^gb‰ä¸z²‰ß…$’£´Dü.¢– ooHoä4*TÿðøF5 Ò#ò…[γ6Zò‚ éä ò96éííeGQØÖå,ÐÐÁiq0ÈQžçÓ6òòóBÐÞÎ.hòàùŽã(Žz{ØÃ\ió “à¸gžy¦ç—\,iq,å<Õ@ùMÎ…t²t†œç AùM‡A:›ŽyG„·=ßQ]äzÑ ²‘‹{Ës jÀœCtÖ•3!6¢MSý8ÜS®ó–Ì&qœŽ‡s–q«:e~'?åò² Ó=úè£}§lŽ!2*¤#r*× ®kÄ0n¡ 2çŠHžklЇš­ŠYõ±Vê0,—£•2½<Wo!0¬³Er†å#=ç͖Ƥ“¥qÌ«·§ÒñƩòE2˜$‡ÝȳܦKþ}›m¶i·iHa„£{sÓˆÐÊá j<Ë\ØÔÀ^à6¥qoñ§=íiž—ô4B…ˆÕ±Àéhp¼iy›óFæZð ÇÛÑ£ ÃÃþp?¿èöp,“FÅs“—>Çã^r |¶Xµ±©‹Ë›ÒH9ׄ´Ç$áŠñ’ç<é8h”x³#Æïx¹s\Fg—‘ä;¸ßœ+^ùxÝsì׿þõ>âºßýîç«Lt¾tžŸþô§½œ§® 1:3i4âáøêpôì8ùÙu¿xY Õ ÆuÑ‚so“òëç¾pÏEƒ{ʽ¤³à™*½ô¾ùÎùK–…{&ÝoÊ0¾Ë;(Ý[^v”Ãýà¡éÑ8¸&[-t‰ÚÿÇãר{³Ðn5YÚBÉQÚ"êw䥵³F”¶ÖUÚ¢5½ê°ÌÖ˜Ë ÖÊU+9½¾³’Âwv­Üèÿ˜†Yç²ÂoÂr™:g•­ô\u ÖÕ }õˆ• VHËêŸE¡¬rµ³’åÑZ«äa×ÊŽÎëÈׯùêw¥É×WX8eÇßÁ…q]:_þg„ïG¸Ž“Ëá“óy)›ïºåçÅû’Ïï¬hYÇé÷Öô|µó`UQeæ{;)ᥳeðBa"’'&¸ú$`ÚXdgu…Õ–^ßYá»þ¯ÃøŸ<ù÷ˆÅ2s:}²òrë[ߺ´Ñ‰û•aOÃo9mÝ5h¯;¦ð|¹Ì~çØíþåß#&<žŸ¹¼\NLŸ¿×]g¯òtoYãÞn»í¶÷¶îrg•´ÛjÖBbS ƒ"¹ÓÊ ä'fþ|.¦Õ%ÈXH_vÎÅv “|oÍøq¢ï-u–ƒ¨±=QD²Y„6Dr"YK¤‹mçÚ´<,z±^Ë$ß[‘Гz®ªÏG$¿úÕ¯.²Uq´>fŽÞ ÃR1Z)3'–õ±,~³õq/ b¬'sÞ^–Æ1/sÈhi\‡ÕY$Û°¸cþÉõØÅ-eùlöf_,;u«qÚW´H¦®‹£“E2m§F›Žm>[.G‹da]-’[Ó«Ž9—¬k—+& ]¬a›½ÙãŽvô¡d)Ÿù•…¦¢²\c‘\%Ý`¼d׸ŸCAš`Ý™ài¹]Ó¶\Vü­k‹Tf³/þ=>g™ ÔÉtä:UsúXf>F·ú4‘ɬÝç%d9>.glÚ¹reµîzëão«^d†”ò3Ô“)S8‰liÙTKóLåä<·”D¢š­Ó €åu¦'LoØåXK]©«o˜4ð{Äø_yõ?eªNér\íVŸdÓ,6…ef&’ñʤqÉeÉ`™H¹Iã: +ɤËD2é2‘,,’Æuä2X&’Á"‘¼fÍj+Ó4 ÿïËÅ>þÒâÌÓÿP¬½Ž»kù0Å^[š0X›7·Ç,Ç3|ŒÞ$î%‘, 1ÈÄÚVÆ‘yäÔl‹;m:Á*ºDˆáêAÃWŸ¶(T†Ñu+p,²¥cDÛ =Þ²žæ,¢e\©c(UëmŠv”‰äLwÃhÓ™HΤ1}D&’…ÕÉón‘Œ5nưþÌɤËɲ4Žéê¬q,¬Ã²E2X´Höe½µì^\ú‹â÷??²¸Õª lÞ´ÂnüÚmñ.ùAQn ˜úpÀn¡J¨`n4¾?æ•ì÷ß*,Yy`¸ðŒÞlK£Ã‘¾nü5n)ÔSž;î*¥Yƒ—¦-TÚhÄeLú@Ø Ñ2„´Lq²´NÄ%?Dør¨"‚!EÂw¤2;¶…¯¢°ùáhàmÌÒa'p¾k~ϲ¦…öe~ñ: ·³46¸Õ{ñ´]H.£Þ˜oœ ¢ÙèÅ—”M…ÑM6=CŒLÂø&I[™ï»Z bÆwó±«L 2çàÊ:+@;øàƒ}):r'u‚è“ÔÖ¦6ev¹Nîby`•¯R™'Rqʯÿ·øÂ,~òùÝŠßüá$ÔSŠwz° Øž†‰‹Á1ÓäH}Ì'B9!2´ïűvh¦SKsSR\6={$HT×næ׸'<ΤQ;ˆ ']<ÞÑ7ÂÑ”ïLßñh'‰¶ùÔ}q5Y>J[踱î/6…Ë~C$·ˆd[Zû:îýÅ'öݽøÉÿý¤¸n»¯xÅk‹‡þ룋³Îøkñƒc¿ÙAÈqnð9ÌWáÇR@‚N!'î [ð>ªˆ&›éëDT¸UÓ -N‡O›úoyË[Ü%º™Ìóç9ÃëÁ¯°ÁõÑÈ#Í"¾£ÀŽœ&ßm4ä¢É¡ú‹¾ÇFJm9¹óL<‘Œê\&’#A\G ƒtÊD²HãL/"§«ëŠMîúØâ!{zñðǾ°xîë¾\Ürã LFáŽÅ3Ÿó{ÓÜnF¨®]*£“ -Ìеd~üãû›ÊD¾ “$õÿ©0T0Àø–j¶Åßé¨>¾ìe/óú€M‘¼1³íM"4‚è XéDnƒú(­"¾óu%CÚßÙyAžvÚiÞ©!Åh/::+©&ΆH„\¦Íƒe"9“ËŒú…uÉ-;EAòŽ3²îƯ-owçû”O|ñ˧¿ôåFÜÂô‚o0ü'óîy¯ûdR¬m ah"V¥ubN ¡3 ¡ Žv.Ú‰ƒÊh÷ŠÌkˆä¥A$Ç( è2³È€V¶q/Ž£mS%Ç ‰Ñ˜6Q3^Á¢ƒM«ü;¤1õŠzF=¡N}—hÔ#ˆhÓr=hEf˜-‘<ؔËd}Ÿr+䮽²¸îj¤1§GIšŽ1Dž1GmÍÃ%‡É®·½¼ä;ùD˜ iM4wÜÊ£¦f[Ü#¼çM}áÅÎHD:ÎÅNò«âTw"7¤éW–«¥í2bæwq7qÔ<±É-ìvÆ}9c¸^ÙÂ']rmXݸr?Y¹ÐWøŸOV/$H%¡©fÕjémªzîzöª?Â%<EÃTwê0áuyŠ>!­£õ»> ›²á]‘æNõ&¤3’¨#ö(` ûÌŒ g9Ø^F?Bä¼9ˆéD/æÓŽtúªÃr°=0¦BóüŒãrÍÚ›iU³ÍG°=Úu]Ó?Úm§F›Žm,壈Áö„uÛƒô¬ ˜×KÆBnðYÚB’Yv¢NÆ"cØ+di Òei IVÄtu2Æ­ÔbYÚLÒÍÖlKÉLÒ´£,m–e,ê°,wA›Ïúêä.°CŠúÚÒ-;†HNR¥zKD‹áˆ5[³- éI%’‹äÄ­Ä9²æâq]7‡—h9£¨^óëf[>¼N7,ÿÎÿŒ´Uwº¥ïV§êð‰µHV$Åì9½\±iÕœÛjÅÚFĬ FØçÚµº;²¦›슲6J¶­Ãú¥m¶Å³Š%əƕ¥l—¥ôØI• Î²8ÿ¯•çn¡“âñ¤fëþ¸1YåÏXímÉÉXÓfëã:,Z)Ë",[$ËJ9Z×aPe‹dÒe‹dÒe‹daÑú¸ÎJ,[$ƒIÚ¢*õ€+ïd.þËaÅE'} ¸òì#Š+ÏÿhKÜëæ+)îåa‡æ¦é1Ô.×½Óc¥ª«0±àÒèpè@d*Áw™^P_iŒzþj˜x˜üñíö¤¥wYùjɃWÊÐR:/ºªG„ZŽO;ÊÉÙÒ¸F›ÎÉÙúŒ>¢Öa‘Ü"’ݸ Æ™•#Ü ã$V[ºaF&µ1ò²¦ ô¤3rÊ1åí†aTg7pF^{`m Ã)ÒaÓ ƒ%W:³…©Å0¼ŠåɸªhÍ=/:ý§åUT®ºÕåêµïV^uÃÊòŸ×­c½ÌMöd§:‚óºf2îñkÎxåqÇWZ|n/SF\ £B“ž°kOÞÄ™cj¶Åe H=6káòío{i‘[ÝðºnÒåÞð¯ûJGý¦®XTT÷§>P§Xí1½«Ò"¬zý#ýïÿûÒ –-¶´h±¥…<ö<Ù8PyhGÔu³r|0ÚN?Œ61Ú<˜V…ÑGD ãGaœ?} éD$O„Z_ Í éæ +åi^ÝXÝʼÁ7ºõÕ?o¼mué…çV«×üÓz…µÑlŸ+aæâP™ŸUe¬²“•EبÌн†_ð‚T÷º2¬êÜsÏ­Lg¥zÌcSYeªÌ"¹²&žß¬JÝýøCeVÍ®׬¦-ÎgG]ày›¨[eÖÇþŒ©3&æU™ŽReŒ×¼ÌMÖ¢²† ªK%ïÖ‘¸·úYgåßQ,8ñÄ+ó½ªL£2y‹Êœ@«;ÝéN}U('J9°5/ì$‹Þk9`nèKT&l}ý¹åZkÎ.ï¸ÙõåÚ¦^±ÎŠë;V°ôV³ŽÃÝèɱM0K½üå/÷ží³B.ÍïÆß6¦Wî¹çž®¥bjƒ¥uBå~ûíçyÞÿþ÷—ÝÏIº=ͶxF9²Yc„b[íQ‹Å=÷,£óµ*-$²|©ßùÎw¼ž0šÐhűÝE2÷òì…Vn±Å>²·(£øÏB+wåܬ553èÝBap9ô§ta"Æ{ÆX÷¯ÃòHbqa­*éT7^`ìØyÕzë\U]{í5Õ 7au\v¬niÄÃýa¤‚¶o$lN9å×O!Ÿ6ý²r®­¬Â¹ýš:&êTÙPÙóš'²¿é(Ümc±¼¸V¬¢v1uB£hÂó,ÍÏÊõ”,¶»§1?<™o^ۆ͜½>üñô‘ß:ê(·yÁ¦Œ¶G}Âʽ_=¡ŽçǨǭò¹6õ™Ï|¦í¡*RÔøÇ2‘œ±˜ND2é2‘,,’Æ"œ3–‰d°L$ƒe"YX$!Å2ᜉd°¶F²¸¸êº¢¼ñ\ÛO)ÖYëÅê./Î<õÅšÀÂËsÖTà\º‚ë„èã;r•È =Àùë[ßr/bV¸ÐÓ9ãŒ3\7sîý¾ûî[ì±Ç…UÊÂâ·=sRyqÊ•ÚÈ·-]‚ò€4‘­óéÈF;P>mÇsŒ«Øh¹0A/ÿN½²é»ëoSïA…DÖêk·6EûÈDr&ˆÁ¨Ãý0Ú²´Ø Òë&m‘1¤-„uH[4v:XÑzPëÞêîÅݱøÖñkëßùåÅî{í_Üe«ûLÇ¿ žÄT:zt¼Æ¹©Ûo¿}a+X~³ÑSAXûãÿ¸w€T<*BLhðð¡Â Ç[ЦVþ€›QÎâU ÔrùW¾ò•¦ÐÅæ›o^gç/6“¢(åÍ‹‡gÀºÉ—ú3ßk¯½ “Àðïä§^¾ä%/)L£½TNG…ÖÛÞö6W#4 fïˆhÐR;˜;nØ g¹’ÆõØô÷ o÷°òN÷ymù¤ç¼£Üú^÷w1õk¯¹º#ıUžÒF7å›Þô¦ÒF¥©Å•¦ XÚ<ÝÉ=–ËY2ÄÑeD“›tòÊYö¢‹.*íÍXšÂ`ióý¾¤`³M6™,S L#läê»I’º™È6Ú)M=Ò‰eÓ=n›P@.£»$aˆ±Ç:AbÉš2Œj§]4D2=g6Zc¶PX…,æÓ+S\sÓUÅ ×]U\kœÌôtlÅŒ¼\¼o'ʉŸü.«QÞj¼ÐÃEï–ï̱)—7o³g<ãmIÓfjµ¸uðl¥±$n‘ÿÅãð¼Õ¨7‘ƒƈ¹CÆÊ&¿ÊÎu·n¤C9¹Þ.6E€/ÔêYuY†Q7ã#W°WÔ0#ŽzbäÅ–À¦®#>bÊ f$VW,æƒÆ*¬}NV†h‰Ø>dÌHã¶'lÄX9ˆþU¬ˆÛL9Á„Ïü”IÞóІV£ŽŽ>¹îxíͶøý®¢ÆR¬Âê|ú²^S–µ›ºùeéê탺ÎF›FÛ‰mµF›§íÓô°1Fÿ@Cº-’£õq/‹dY÷³H6«ËÉ`Ù",[$ ‹ÖÇݬ”{Y$χ¾ ö8Ùc½Ñ×i¶qm´)ÚG¶HÄ"9cÝ,’3†E²°‹ä†HNDr³5Û"¶'™Hî4SÃÁå†ÍF® 6ŒÌA³-o)Œ¹ªr­iûD`-B«ƒ]f6*M¹ç Ëì÷8±öôÆÝÖø~óÊn U­¸»¦Mº†¢K¸àº¼Í´jélz–±R$a±~ô«9=eźRW^vcRd’¹Ähû£bSvÏÉF$÷´>îe‘ –­Š…EëcìZê°h}\‡±â–-’…EëãnVÊÙ"L«MšbUåZf6Îúb‚‹kÝÂõuª¤tOYÜ?ìløTà3V/=T2 7£l¦w’-໠ƪ&ߢ›ÎD ìr¤±$ù lm¢fNœ)"hüôQº‚òTwë~¯Ûh?´h‘LÛË–Æ`´Õ~X7‹äŒaÃ&¬Ã"yï½÷Ærp†F2XÖCî…I#YÚÇý4’Ñ4D#l.5’-˜Ù d°¶Fòši¯öËÿöñêˆOíS}îsGTßüÌK«sN>¶ºöÊóª«/;ÏYxKÜ^íÃÇŠ{fKá•OóxÓ”§Øå.süÏ'ç…·°Y&;Æ5èw݃²‰q¾è¦HòÅãRP0#Ðêë_ÿº×7V†ñ4*R+0'ÏÊ ÿü7ê%mŠÕÒótf}Ü^åTyÇ{l{¹nzŹÐ>²F2Ø É£Ígä:Ì[Û˜4’I'‡ÏŽ!Ìó¨ už¾LÆp¯¦éÓÊg•Åõ_5C¦ÃÊG?a·r«ûÞ¿¼ð‚sË¿üûé!n0óÜ5Ý›Ü:’r×]wuÏs«l¥™Â»n» 4¹÷ð‘GYšI{iVÈ®¯‚a ¬¾9ù¹±Elô»¨ÙÓl‹cSÔƒ“O>¹4¬ˆϘiŠY){ =ŒTO+¿‰ž~úémÃS¼Ð©?æÛçõ‡´Ô³FöÕVÒQ׈ö€7{·éŸ”7W×HÛ‘<#xܨX]ð¾E‡ÙÓ[oÃu‹Ýv»G±í}ï^üâäÌOê´b•×ÿ÷ï›±àUn(ó3„$v3ÎxfUê8oâƒé;~V»í¶[a2î“rÎ9çX¨âÛº9<þY&…PW?0œû«ai3ÅZ<Ó+É“âe‘9=®½Y »ª$Ó*ýø4cP¦.Ox ³f÷gŽc¨¦1<{6Üj;,CS‹+ÌóÜ)h~LJJ>[u¾WÊ›WmgƒiŠ7¦Èƒ„ߘt,_Èœašß`ѯ[SœyÑêb—m_ìý‘ÕÅï|S±Ç+ÞZ¬s æä«ÛW>XøÍØ›Ê;æË8ýáWco=¯T$Sóãl·Ýv>ç7í÷Ù¢Ršê wZøêzè¡m_š¦ÓY|¾Wt BØù9kpÖäyò¬©øëÑ™à‰Ž“¯i*yWˆg9éL¬íŸE\süúÎ<óL/ó›ßüfaâqþâRäÙº%sΧ-ÇÎq¡°)<`³E2êuÙú¸‹–˲HËVÅÌK³õq†åc´>Vºh}ŒU%é²E²°h}\g¥ –-’Ád‘ =Gê^¿Nõ©·¯>;õ²j‡®ªî·åyUuÝšjã[m>ù3XSsUsì¬>ò‘ø\ÞŒ.+“©¬L¤ÉƒºÒæ§å¼jqŠÔÈî<‘m[o½µëëüä'?iÏ…^gq-{ó¼Ty®ì(J—JÏŽÜ„¸¼ýPU/:è Ê¦V•¹ÆT;‡B‡:e#áÊÄà\‹‡Mõ§î|8ÚQ¶HËÖÇum:[$ƒe‹dúˆl‘,l†E2–ƒÙ",[g KEa½,’»Y¢‘\g‘®fØ,§/*N‡Í$-\ ٦٥54WDAvbzJŽñl©ŠjË'ü ›ˆ|§nÁçð:Îw8{¹9cú:íüsa‘<ˆ•2m¬›õ±0³E2é¦Zg#«.5åÀ5-•äó.¿Gõûß>¨Úêö/¨Î9ó¼êO'^\pÂYÕŠu6¶ßm媘aY¥q[ÓÃñ7«¼Á¾öµ¯U6Mr}\V.P |Ô£å+ æïæ+&Üí«æyîJrŒ”l^ïo3^·ß^ÍHgql2†cÔl2´•ñ/>òeUmlF&Eá#´ ¡Ò$uÆø¾ê±}¬g”K½´”×¾3ê`Uˆúaš:•ñA3VªR9pPlеûÌVÓ+-WÌâéÑË]^Z>kï/•yÊËMïòèòÎ÷xBùô=ÞR®»þ†Ó#¢rÚeŸQ òO|â}•ÂæØþ6²§´NÆ£C€Ñó3ÂC™·£-ÞŒ,y[1¢áÍÅn±=kV°¬…ê#V¯¬s)íeâ+P"[$ ë°HnÉÉuÖÇÃX$®%[ƒe‹äŒM‚Eò°vl0òf¬åÖÇæâPZ§Ò^µâzØåiŽÍÆw¿û]gò±öÔï|âZùŸó6'Q·ÿQ~Ù°’€…3¡ILTÞÿg' ޹Z¸ì+_ùJÇšp6ó?Mâ9òÌþô§?•ýèGÝïrê+¥<Õ7M…©“¤{Õ«^å«=ÔKêÏ“ô´/M™ÙÌÀ´4'ÑöÊq¯éXE2m/[wÃæÜ"¹ AÓ‰ ³1ÄeÕ‹èw¼ã “¶pÇM¦OLs°Â›øC)þú׿zù¬ð ?ÁجR‡vX[ÜÉ,™ÝÙ“°Äæ á;¡Ÿq$eÚÄš•€ÿøÇ…¬ÆÄÝ*„›¹#êõ‹_üÂÓYsõb¨Ì”ŠiB]Dod¸M>ÄšŠ›¿Ni¾9¥UÆr‹-¶ða8n¸E0deδ‹2™Öá<øÓŸþ´Vð«Y¹š7­P2•Øl³Íü™a4j±É½ÍØ Ê£x¾ýío÷é‡)”Öx´NŒédTŠ+Œé1•æm^š´…·X÷î Š³'NŸ¦HPšœŠO]$–Õí|¨ãs‰EÛˆÕ¥›!âEö¬‘ÌÐ0ë!#1FH“F2XÖHóU‹ed°¨‡ÌÐ,ê+]dÊI‡ÈQÆÐl•¡SÄ4 E´‰¸åĬ&n9Z: ‡¥‰l~5…UŽâ[ßúVaN¡>„æš5¬FÔ ¡'4SøŸa·¦nÜ[΋MçËöá¸Øc=\¯Å¸?fü½ Z½ÏÂhêPg¥µD3oñŽ©¼êSb¦æš–é92u2Gá¸B7ÄãûW¿úU‡cúŽèí’i8uFúÇÝ4’iY#,ë!ÓVûaÔËnXÖHV§‘Üa‘loÖ,’#ÖË"YX¶H®Ã°”ìg‘ –-’…õ³H6=äÉ`Ù"y2¸ñ6Ê)Ì«¸°!tñŠW¼Â+ ¢K×¼0¢×UéTl´ãéQ´7ß;ľŒxvŽÆb™»ð—y«&iꊂæQìÿS¹xh矾ç§ÓÁ ›JÉu€Çkh:›…ãtø„Ë{ýë__Øtª`6a£oÀÊ"¹‚fìÉ aÍÌ2ø(Ø ›„ì­³¨^þò—»—‘Æ>Ÿgît²ÈZ þŽsû'=éI•U"Ÿó#kao:w%Ñ• ¿+n»¬½ÝüÍ÷­²ºà¼U¶ÊF<.›/`ò§Îñ<ô¡­,^ze#+¿.Í©›m~¥-žùÌgV/zÑ‹œ{c‡ããw¤,àx¨',e#Â…ÜýïÿÊV+ý;eP§m]™ª óu,7#—b/,7#! åœvÚim³ŠnŸ e}ÜX$·¤(úaÃÎãYN„w±ïò8ɱ1G·ÀqD˜˜ç#c?Cæ·ÖÙøïxƒYTZçã‚^̇‘ÈàÄœ˜·Û”ÊŸ™ã›äii–Îÿð?¿ÁÁ7Ëå +m?÷þ÷¿¿4­dçýà@xÎ6 wÓ 8ľà«\ÚÌÿKÚÂT“Y ’ÄéXÈg`®!“—Ea‘lDd{ÉMóÑ:,.q×ašËN2Ö-ëŠ2×¼™á1Ÿâ©˜Cs`âªjj:ª|ìqŠÊÿqú§ß9G¦P¶VXGåÓG>xv f]o¶m¶ù›^éž3¢>0“à.£j…ÙkÍ0WÜ3¥u“ÿI£²ù®XnÊÃ^÷¬£ErŒÿ¦iàl±(º^‡Q‡ëÒMÙ*Š_˜ˆdF>p `‘äÍärÆ–#‘œ=ѵÇß2ž=Öõ[NŸÿœ:*U8uJ1]>f›ïî¨< v¾K@¸Òó.C˜ˆi=ÛxŒ^ÏzD2m¿F"lΈä:i Ä™äͤ1$h–‰d°¹”¶˜K"y!*rîàr'Õt2ÍVG$Ó>2‘ 6ˆ´EÆ•¶ˆX‘<’ñ¢7SƒÍ‡#`Â7ÓŸf›ÇÓù-3¬Er߀tuAù–"6j'B/.â¸l]çiçþêèbYM,óf›ëÑqŽ‘¾Ø6ƒÉ"7ûaÙ—«6JºqcÃ>TuÒ aÙ‘”Ðô-v(Ý:<êaÞe)tŒftÔl³éD²Y#ŽÈ½ƒQ·#÷:,6eæ÷É`™ø…$&‹J¥‹DmLW—Wé ¬2‘LºL$+¬j&«3i\G.ƒe"lT‹dî†^fÄ5MÝßï<”V’d•Ê1°Î4Ÿ¬Â|¯ü;ßD_pÁÅç?ÿyç˜Øõ(¿t{šU©ff£MÑŽ2‘<(F}®K— gÒe"Y˜Ú÷ Ãh$³,›‰daý4’±H®#’Iu“çK#yM­g¹õ)!_q{Øk¯½ÚΡ4ó½ñï“8ætTZy £á>Ð ™Vaò¦ Üc®´„¥å{ž–5[³ B$j‘<ˆ•2m>É`ƒɤkb™Ï‚HŽSC3ð*Ì¢´0ýŒÁ 3ôòÞ¬Q‹7¿ùÍ.oAüj-sÒÉѱàÆÀÈæ9ÏyŽËW˜#§¿5a"¬.˜¼›™w˜ñ4[³M‘æ‹>U³Á€l”t|*ÈY/l˜àjúÄ/ŠŸ+®_ü²ðÁ? BÍ¢#Ÿ(»÷•v*ã\Å"6VÖÑ´uzÐ]¡ü¯M‹ßù)_r«ÍÖlý6êvâ'LõH«óMAhf"¯ÕL$ƒe28’Ë‘HŽd°ˆäìP‡e"YéúÉëG$“.É`ÃÉ=·•ç÷ò·¿ýÍG7x#YÀ´‹Ñ Þç(É1 "-÷y1£šW¿úÕ¾›•Ÿ¿ñ20=Ïÿð‡?Ü󛘒FYik¶†HŽdð0X‘œIc0úˆL$ ["yÐ`{ƒÉÑJ9Z.Ï‘,.G˜….Þýîwûï¿aŽ~îÅq½@¶N†žoÈÞ!ÁõX¬êÂâ\ûª×)§œâÖàL»àt˜¢™{ñýïߥÈϽ˜dËéf[Dòl‚í-["y\„ó0½?#:F3èߘº›÷ð¦è«Z&]á£tqái¸é¯{Ýë “¼ð^ŸOóöÝäü­À‹€ÑÒ–[néâOüO~ôy)©Ãk¶f[ÌDòÐòK+º³Ë;2’¤Dz’è ¶l^¾æ5¯)v bò8ÒŠsÎ.ùJI@ÆßH‹…þGýÿœ¿hÅRïwŽÍÞìQZ7KL,6Ųì¨1ì\c™ „ø4Ý X‡€tKd»n×ï"ädÒ§vź‚\ÑL>ÁùÓÆü|ö:§foö\GE$SÇcݦíe’w6ØÀD2!.2‘Œ¼æ D2é2‘LºLƒAGÒ"ªó‚eÒ¸IcH±a‰äèj@º~;ùäs•w-£7{³ÏçÍ7D$g2˜v–1ÒÑVûa´yÚþl‰äŽ`{¨àÕÛCÍ®Ö+ØŠv9Ø^6H°½ŒÅt1°^]>Tør°=°üŒó2KaâÀg³7ûbÚÏ;ïLúÙìóy¬f_¼{ÔÈž("™°(Yž‚¹Ø$aYcLz²ÃbÑt|]i£dä8w¶¬ØìÍÞ­®°Ñ¦hYbb¡°)|`¢Yaèc¤‡*Sø0#Žœ‰î†)ä-!nY¹c-ŒÊ f$V-ÆT'æÍçÙ+]œÅá]ÄrÞ*cذ# ã«ïr‹¡Aê—ïܳèJ³óð»òÄïJÇgÑ„^Ö›ž]]Ðÿ´ ê8mG¡“h{`1Œ1í–¶Ú£ÍÓöézaô!¨¿ßW³ŠH†ä­Ã2‘ –‰äŒÅt‘46KãD2X&’ÁD$rÄìœ<Ì/a`íÁ8M9„æú¸6~ã;¿±óç«!'çÃÿ¤Q:Êà;iT×óÜç>·üÁ~оͶ¼ÃÞPÕ¢™6êí#É`ËŠH¦÷](¬¹<ìH‡ë#ØòÓ£[dGwÒ´¿þÆ9óÌ3+“©¨¬sóÝL*‹AîoF-Vi*‹êéÁÓ>þñûÿgŸ}veÑ=½<ò›‡¹;†šæNeâk\Oo f[ž›F#?ûÙÏ*ë\Ú#œX—iq B·›"ÿ FÚb4i‹È)aÙ-“sì0º4ðâØcu‡M6|ªLGß•dRy|pqøá‡{+«@…cóPÁˆƒa#ñ—¿ü¥xÃÞà¾d¸BlµÕV?½ñÃj\àÑoBöDö4Ñ­gâ¤-¨Øƒº­ …eÒxœØ¨ùqh£<:œã?¾8ꨣŠm¶ÙÆ…¹l ³xá _XpÀþ?ÇÞe—]ÚžöŸûÜçŠÝwßÝ; QìÎà’Øï «ŒÔ;(ü·liÔ;ݯÆë|ùv:Ô ” p–qmô½¢Žx¼©Dè.6eZ-3,’Hža‘Ì›6[$“.[$ƒe‹d¬³õq†õb¶4&]Ä8ϺtÂâè‹Ëèp±XبÉm'6+‡ÏHoq6Q D®‚käfãøy '¸DNŸ`Úð§³bÉ”²øÝB·½ÿÙ9&ÒUn¶å½i€£j©*ĺL½¡iÔ!‹d°l}\‡Ñ¦³E2X¶H¦ÈÉÂ:,’Q­4ØÞ|H[D ¥« ¶·ÐÒqzÅM壡ƒºeâ=ŽX»q2m=çÛßþö.OJ'GÇC: ¶3½Â[<þð‡ÝKý_þå_ü1ûÎw¾ãç͆Âà·¿ýíÂ8öCnäK—禫Ð÷¾ã…ªŽ‡65QÒ-"¹Ãx¦:c0ÐKËÆJvã^Ùª4R¸4 Ò⌗÷¹Ï}J#zËûÝï~å~ûíWwÜqžŽU2­ti ¦ÿ¾÷½oyÄG”¦³\š®ri<³ÿ”»Ûn»•6rò+ÎՆѥñCåÖ[oÝámÞlËsõ <­SŸrý¦ Po&‘ܱzÃjÉrÅF±Ñaósë0|·‘¯>Y'TYÇQã«LÈ–²:eºÇ.C*· yñc¶N~øòÿYÕ²7Re’—cÚ:m» “ͨîyÏ{ÎðŽo¶åµÅç.Û3ÙçÄz.IÀ¦Ì1¬Ðú¾Öüq[Ìø‹ÓÅÌ\bÒªd'>ÑÂá\ѼÁÿ±`§\#“K›Bù¨†·’lztlÒ‘?¾(ŒßÈ£cƒ¡³£ãë\š}yíñ¹ç: zAû¡.ÆQÐ|`ŒàëÒM}ôÑ3ˆdÈŸ¹$’Á!’IWG$gâ·.°H+oÄ œ5·Íÿó<Ì0;ófípKìúÎ'Kê,¡KÄq.#æ©Ã„×¥köfÏ;³Úu›:>‘œIãÙÉ›wd ÷#’³r7"9c1]$»àÓÊPĸ1à¾ûÕ¯~å«L¿øÅ/æl§¼Ÿÿüç¾Sþ\–ÝìÍ^·ÿò—¿ôöÁêV$y»É™4 ‘Ll¥ìI¢¥ŒÕi$sC0º3®Äo ÚÄyßtÓMg…Ý}®Êk°ë…Q׍ӯýµg2ÑÌ#Î æ[vÉ »aÜ: ò‚Ç$ÂêÚYò®Ãâÿ ¶ü0êĤbÔeêtTAXp‹dâjGip#V«:,k/,k)À®&/o³ðôU"V™Ø{ax¨ cŸ-ÿ_Œ×4[Œ{;.Œ:1ߟƒ`:gÚBÖ*7Æ9Ô¥›²e\È"_ë‡éÆ~ÄÆùj kÿ¤ûë_ÿê«%ÂðzŽ˜òqäyÅX #úA,ψ¨ZL^ª‹öœgÆbºh»€÷w&oÛˆ±J¤t*Oð1]/Œ דÓEL+d¢g0éðëÀHWׄiE æí…i$¯Òeû°¸ñ{/,F×Ó}Ò½Îy…‘.c\·òr?ê0î©0Êà^ÆtÝ0žòjU3b1Ï>楾dŒtÔ%Õòæt”NÊ“ íˆv§t`¤ËXLG^ÚY.¯£Ý’·F›§íÇc«KƳáºÁÜ"Ù†_Þ#bo‚W¨Y$W`ôTôR`Fu`ô¨S^#˜*#ŸÚ¡o…aoË3«ÃS6æÃæE½vÆb:÷bm¥3"Ùmf2fSÊŽòÀluiFºˆqŒp®Å¤¢Þ=b¤‹X| €ÉK\osø¬Å¢½ƒ0iÉ{·–CG¬.F`Ùþ,Û‰ô¢}Xeæ¼ÂH=©ÁâH–ûQ‡qO…Iã‰t¹wÃx6äU}̘ÒñüÁdg%Œú’1ÒQ—(sB] §£.‚)u6bä¥nSÇ¥%ŒtËéhg“ýWÆh·´Õ~mž¶/M«ˆÅtØ– ãrݤ‘¼d­çÂJy>1Þ@ã´Í6o™ôÂb™½°¹*/[ÀÎ6︱I³žO‹äy!jla±™´[ºH6vË›^³ó©°,¯±˜7–ß«ËÛ`óÍŠH6¡¨‰äA0HÙLèÚhj¢°<ÄŸKŒÏÙbyZ2ŸXœ"õK'<ç–§f‹y'ã9ŒËÓØA0êì$a´é~ñ0ØÔ7¿ùM·:Ô:>½šÉm½Ý2†1‘DmLy…Eka°l}\‡a½˜-I—-’I—æ ‹£0¬&c½ˆe gìtrºˆqžXpÖaBéž±œN›°(oÁ9a9Ó «K½â9V7,{ g¬Wº¼Í‹’ /§ÓqM`1~;÷£ãž £ î%éâ’q7Œ¼ªS:ž¿d""F}ÉX”“!*ébyÂ∠c2€¥ŽkÔÑ £ÍDŒv1Y$gŒv; ­Áè#²å²0Y${ß`±·!’Ûɰßh$G=ä:¬›F2Ø ÉÝðedÒÍe°=°¬‘ †ÖqN1îAùê0X|ñD\OÄ´’!,ú¥€‰í—_ŠœµX å!L+-š+wòçqÆbºÈ£€eNBXÄ#¦ ,óA`Ùï-¦‹XLÇ5E<îGÆ=¦UÒiå°Ƴ!¯êcÆ”Žç¦ÕNaÔ—Œ‘N+¥œ 9u1êƒQg#&ýì¯5ÁhgYç¸릑L›D#™>"¦C%AX‡Fr‹HžýâIÕMæýIÆÐÊë•7Nú¥žó ËÓ«ˆé“c,,ë šný⥂Má›”ßf¼ lña¼™Áz壘~é„ç¼ÂòH'búŒ£º[Ø”E(d›ÉÑLƒM il²žµX&ƒçãsXqŒ ‹£˜~é„ç¼ÂòH'b1ï81îå8°LÏ%F­Ã&…\¦Í‚É~gê[ßúV!ëcÍwMãw†ErÆxkEËåhÍŒ D´¦¼Ì½±TÌÉ`Ñ"Yé²Er/,ÎïÁ˜G ëÊl‘ -’ë0γ“år´ŽXN'•?a̹…qNÃ`Üó¨ˆl&uA#y³â ÒŸI¤‹iø$]´<ÎXL×-¯pާcD-#°X×&kfvîG?LüX´\®ÃdU910žy·t¨90qqâ s:0êiäì2&Þ²ËǨKG;‹˜,’³1mµF›‹É`ôÙ"YÏPé¶HÎX7‹d0¬£µ°0åÅÒ²ÎJ,Z$+]¶Hî…õ³HÆJ4[$gKã:¬›E²‘…3,’#¦Þ]X| €eëãnX¶HÕ"™¼ƒX$“nÜÉ#[$ƒe‹d°l}Ü“õ1X¶HÎÏFX/‹d¥«³>Ä"9§Æ"™:ž±AÒÑÎ"&‹äli –­Šë°nÉôÙ"YX‡E2‘f!QN²ŒË‚ƒbÙ€©c¹o1cZ¦í•.äuË›…é#¦ü`Ù°0b1o6Jì…ÕåŒú2J:êâ XLĠ鯀•#K[´ˆäQ¬]6U Q»x0M_z¥‹Î˜ÝòÆé‘baÊIã:,æå÷ÃêòNVG˜.qâ¼5€ÞšyêŒ3Îh«÷ɘˆeôhÜÖƒ$bŽ‹AÅM†ÝdØM6rºé¦iB£³aÞDcÖ„]z饟ãÀô}6˜5â¾éHÓ//ßõ?¿GLùÁô{óÆòûauy{aÜËÙ`<óºt<ûœnŒº8)Û€ØÚ~k:Þ6¤¤ˆáo2&EÁ)â)e2Øâp÷#’±F[cØ•†]fy¯°t—v¹ ©.·`¹0^né³¹÷åFDu`¤‹y•Îæ„cv±m̈²Ëm;³¹eG^aué„qžFÚÍÀHg7Ò1k$3°œŽ41=ü6Æ9qŒA1»çmŒcuÃ8ýÏgÄr:¥Qº˜Fßs:a1]·¼Â9žÒ ËâšÀ¸nåå~ÔaÜSaäW:îw/ŒgC^ÕGa½Ò £NÔaä¥.QçD]ì–WéÀ”.æ¥nSÇGÁhSãø´=0Ú0ÒÑVû`—Ñæiû­‘\14‘ܲHnk$cFm¡S:ôÁÀת#¾Æ°+ chã'ÈÁt¹‘Oþ`u„‘N7ß,);0Ò‘ÜΫtFŽ ŒQA…Év¹Mg`FÞuä3âoFºˆQ9Œ¬Åìæ;¦J1ÒE,Vh0=L5#)k±X)…űºaê`Õ¨#–Ó©1(¾Ç¼±Óà÷ˆ)?XìÄ„é>©A(ʦÎS•ŒëŽ/†:Œ{*Œ2¸—¤ÓK Ƴ!¯êcÆr:½|À¨Ô—Œ‘ŽºDyœõ.§¦t`ÔÙˆ‘—ºM£MEŒë¡íéå-Œ¶Ú»‚6OÛ§hYC{µ”ÑHÖ¡‘Ü"’‡±ää`Wæ#=t>écÅê†ÑÓŽ³^u`Lß—;¦}tÂs^aú½‹y— F½› F5Ý muì Ú>}}AË¥ch‹äA‰ä²uvoŒ|£' ã­Ô`ëÌ­ôJG:Ýòæ‘NÄ”?Žêê°˜7–߫˻\°86ݘ°ËZ}Áš¹<‘ü÷¿ÿ½ˆÒš|Úè§Ã¸áR kw8 µ ëà.f‹A×1\VºŒÕ¥›-–‡ý£b|ŽË}LûlóÆÿù½Ëì…ÍuyñM=,OOGŨ‹sÑfúa´½9¼ã¡o h‘ÆmCÊÖ!;õ½ï}"Ùwd8uÚi§UÂØ ‚ k“ÆzãáìÃ;æÜš+ƒÕÉ`‘HÎX ­t™4î…Eò¢,ÉÂ"‘±ºtý°aˆäHw#’‡Á†%’õIÞnDrÄIG5‘„Žé"ÓÕåÍD²ŽÏ,ް¸¦HבƽˆäLÞöÃbcå™B$çt‹Dr¿t"’ëbêø(˜ÈàH$H;F›ŽmL£,‘Ëô-"ÙûBcӗЧз€Ñ¯L½úÕ¯îF$—-"Óê5†‰4¾‚ a>ÁdØåýˆd³|œA$g¬‘LºQˆdf&’…E"YX&ˆņ!’ã0µ‘Ü ËD2بD2y!’I7n"™cd",É‘ ®#{É™ Ðã™J$ „HVº¹ ’i3™HŽ˜b°L×a™\¦ÍƒÑì2úúŠÖˆ"¹¤/éF$GÃYW‘Ãi‘Æf„îBaË4Ö>Û¼yêÓ ”lëò–"‘¼PX7:¿¸è#"ÇÓ"’e@x³Fr"’«diLæ+fK7„nC$7DòÒ"°ûËW´V¸£årÛpêôÓOÉeK®A¤ñ-ÒøŠLü2ä…ÄÒp4«uñ Ø¸IãK.¹¤Ë£¸¹Äø5]/,?ô~˜¯t±¡wË;~˜òƒå+b1oîìzauy{aÜ·nX~S“nŒzW‡›\¦‹|U —Û}†MçD.WZò¾æûßÿ~Ô9ޤñ-ÒØ- k“ÆÑX‡åXœ“.ÉÂ"‘,Â9–—Ih¥Ë¤1˜æ§‹"¤X–‰dauéúa~‘H¦ÜˆÅt™ ‹qƱºa‘ôeÏX¯tñÿ¹À2‘œÓ ‹é¸&°L÷ú‘ÁýÒÅÌ3éx®ud0éºaj˜ƒ¤‘œÉ`0êxÆêˆäœ.cÝb0Új?Œ6OÛÆ1ÀB:xßËl v…Èå‘<­‘ˆäª¥s i|E‹4¾R'm–…mÒX|NƵH®#’Á!’Á Ûê°HòB²-'"¹6‘,¬‘ –§WS~ÄqÄ"‚¸!’;‰dêi&’3A – âºt³%’°Hö6OÛOD²cÑrÙˆd,—¯ Oii$WÙ"¹ÍáÔYgV½Ûb$—+‘¬Æß+]ìLºåÍÓ«ˆ)$$ë°L¶æòºa ‘<9X~qåtÖá]iX›ã¹x0tš¯ªbIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cursor-sizeall.png0000644000076500000240000000025612536324502022413 0ustar philstaff00000000000000‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØfSIDAT[c`À\ ´f„^¦˜¦†5€éÐP0­Áè ¢—0:H„§0:ˆ%¸BD&p†A‚†‰ÃÔÁôÁÍ™ ³f/Ü0waÛtêçNXIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cursor-sizeb.png0000644000076500000240000000024112536324502022056 0ustar philstaff00000000000000‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØfFIDAT™c` V­jÓSC!´*”æ„ÒŒPšJ‹ªBèN½€1€ DÏ`u‹N…˜:5J@é(Æ€bÌvü l= ÏjIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cursor-sizef.png0000644000076500000240000000024112536324502022062 0ustar philstaff00000000000000‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØfFIDAT×c` V­jÓSC¡tD|j”€Ò!zš(„žÁê¦00At†pBhQUÍ 5‘JsBiÕPTa.À$,=Ï 'IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cursor-sizeh.png0000644000076500000240000000022112536324502022062 0ustar philstaff00000000000000‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØf6IDAT[c` h00pè% l LSXÅB€tg(D h˜8LLÜòÓ# /šÃ97IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cursor-sizev.png0000644000076500000240000000021512536324502022103 0ustar philstaff00000000000000‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØf2IDAT[c`ÀL+ 4W„Ö kÓKC€é©¡ ‰Emf>Ì>˜ý0÷À܇4ù Sv‘˜îIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cursor-uparrow.png0000644000076500000240000000020412536324502022440 0ustar philstaff00000000000000‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØf)IDAT[c`ÀL+ 4W„Ö kÓKC€é©¡ ‰†¡0`­ç B7Ò~2IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cursor-vsplit.png0000644000076500000240000000024112536324502022263 0ustar philstaff00000000000000‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØfFIDAT[c`À  ô Å¡9CÀ´jh˜æšá3€¦U«f­ZR p`‘ëG˜3fÌ~˜{àîV”¶·OIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cursor-wait.png0000644000076500000240000000025412536324502021712 0ustar philstaff00000000000000‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿŽôÃìtRNS@æØfQIDAT™c`@R«V­Ó¡¡™È|¶ÐÐ:r&„K…ÐS§.ÑŒKÃ&€ Êœå10bpf”D~ÚˆúÐ%󦢚37--Ÿ{P§Ìô¯Y IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/cursor-whatsthis.png0000644000076500000240000000027712536324502022771 0ustar philstaff00000000000000‰PNG  IHDR ’g PLTEÿÿÿÿÿÿŽôÃìtRNS@æØfdIDATWch`€‚ ¡! Æ ÆU+AŒi lS³€Œ© R Œ#ƃ1B[Áº¦†&°-3¢VHM›Áa̘e,€1TDÀÖ«6@D8à ¨SÀ$ôÝW/qIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/effectwidget.png0000644000076500000240000001375512536324524022111 0ustar philstaff00000000000000‰PNG  IHDR6„Éc´IDATxÚí÷_ÇÿÇý%ÿÇ÷Çï#;]Ì{‹~c4£¨Ñ¨Á†± b¯X±b‰‰½ÅX°`Œ HQ”bAA±"¶¼¿3sܱ···åšÇÝkçCowvfvn÷y3;;L“ˆˆˆ&_|ñE“ÿé: 1ÓDø†Q;Ë Qc‘›YjÝÖ”@£¦í¯›äf[ÇùШ±[ûEן™¶S“¨eÔN—ÃÓõå|,ùÉÅ2çà3b–Àë2]ŽY¾˜UÚŠí2à3â. Heà‹ùH±ÛÜ4Àg¤åØ]ôãú,·ÁÓ÷Å|¤(ˆ-]•V}'ÓÈa4nüDóËXj3t¥æ1ãwÑ€A‘Ô¬çX͸ø;-Çîf7ì ·ÁÓ÷Å|¤Øˆ-tÞU‚gž£ÿ<†Î;G)))=%†&î·z2EMžE}þDSŽk¦€¿Ójܼ!Ûmðô}1)¶b›ÿ&ÑièÈ1´eËÚ¼y3õð“ž<^Øü+Ôkx E¦£¶èJ§Õø½4xcŽÛàéûb>RÄvU­‡®¢Q£GSll,M›6BúF1Sþc'lØšCÍúÏÑ.þN«ñûØ ›ë6xúZù ®ÈG­¼zó‘b#¶°×tÓ¦o4 8 Dß}÷µ¼Ø²/hì4ab4µê1’ÂXÓÐHºRÔ‰ì*K¼„“eôªî£Ø>jk¡ÝmÎ2hC®€¿+£Uæ g+¬¶÷X™eÙ犲¸ o.§9ð2zs:C« ûiȦ<·ÁÓ×ÊÇHøÏ˜Õ.ÉGk¿V>RlŶðºnBç¦Q`—ï©sç΂ºPÀ¨M<ý4ý8| µï9€‚cÏJSŽ9Üò‚Ê+k¬Øzü:µŒÚ%â½ygØ©«ÅÔ%z+±®±Ò6gÊ"-O÷%é¦JT‰S÷þõY”lÙÞ#þ†eß—?®rº,î›ËyÿYøîCFo yé^[‡ÎÐzÂvÃæ» ž¾V>f‘hÑ Çò1çÕ 7åíæüÔò‘¢ ¶ CMK¢vºQ§N„ÜZE|K¾C½û ÖãöNOŽ¥å0f#5¶Ž±ÁŠVQ»™`Ó-ñÚý²‘ZŒú‚fœQÜ6ÿšËÊÇ•Õâðp%¿œBbSÄöñÙV™}ÑéúqÞ^ΦC׊ï>xæy r†OÑzâAòß·ÁÓ×ÊÇ",´ÔâéÉGšŽEn²Ï©iœ±µ[”i˜6#7PÇŽ)0¼3µˆèG  ¯~XâPZr¤"árȬT ž•b¡oüU›¦ñÊ£Å6Û&ÿ™#Z˜ÖçRZñszûþ“ µ¨†ú­Í³äÎXq¢ŒÊªßÒ§‰jÞ| CןP×Ù6iŽÜÈ*qQ†Ý2?ª~)þ½-•Ú-È ž«r¬„Ñ#î Ï®¦êWïY^ÿŠæõ»/iø–›"iü؃%Tñ´N”éÎãZ³½ˆNç=¥lÚ:úu÷mKþ×竞£Ò|ãv¦P-+¯‡Í)¨ýbÛ8Ë“Êè5ëò?gq¶]|h‰SøàµØ?ó@‰ø¼&¹B|.euË?G,Í¢w>‰mý×™Ê×wM-xF/j?ˆs}òâ=dõßme¶UÝv[’FÝãþ±|æy<¬y'Ž)~ô†Fl½©ùvZvÃ%ר«i}ˆ"+t<}­|ÌBÑJK-žž|äi)usµÊaÎGŠ­Øg&ø‡XŠèБþ·ýwÔ¿2dµ¼È¡´ä˜ï~”U½gYu€ŸÔ·ìF(«ªµŠ³á$•>yeµmØâÔqÞyzòò=1‡Ð¹et!«Ä$ §¯©óÒ«"¿•'Ë뻑)5§ŒT½ŸOgšn iš}gî  Yì–ylü‘׋×o©Ëœ“L¹Vb»zç™øÿ³Wut>ë.Ý*¯2•çÙk J=â¿cå¹yÿ½ª}'>üô‰‰ä½(;O_ÔRו9šç(MW©Î¥ûßøHy¥Oé7 Ëå°8™VqÞ¾ûÀâÔÐÇ&I­ú;WÄùýÒ#ñ™?2œž,„eÁc·ÑÈmEâÿ÷>õ:/Š+Mße~i5%]¹%Aðp1ïû%¾fõC×}e¦UŠ4ÔOiåsÖÒLUýN“®—Šn‹+®SWÒ&ú/vmßt<}­|„¥ž–Z<=ù(¥g+5}ç#EAl7 Á/ÐN¬ Ú¼W…tH}úô¡Þ½{S—n=(hâ^ÃéÉQ 窟B‘&ë²n 6“Ûl[þ—©ß¾óLޏ‘šÿ¼•vŸ75{ãv]£)üWŸ‡ G©éàÕôõ¤T[÷^ˆ%dân›4§¢v 3ËÌãH»gè`7i÷¸kVb;“û„Îd–R¿ØÔ,2‘:LÞcÙµÅêY×ûXy¨ïì}–m½¦ýA¡cþÛ_ÔfŠ?YªyŽÝãs…¤ïÖ E^ç=ÚÎØtоdõ0wÛ“„=£¶¬nåqx]ÍÞjŠSñø9µeÛ˜?L-ç¬[Ä#ƒ‡¬eùì¥éÇaÄÒƒ´ò˜iÿŸ§²è+V—7êw«ºí¶è’å3O—¡÷Œ†ï($j+…-ÈÔüNÃe9}º~íFn.r<}­|,ÂÒHK-žž|äiɃ‘ó‘b#¶ð%Ùº qš"ºô¢6úRؼt œtˆÚwì.º¥œö]ú°®ãCiÊ‘^Èü&”ÃÅrݶË:û¢Í¶¤•v%™”^Dí¦ýmùÜæ§µ¬rŽˆtc’ÅÍÍÅb“ÏœKÎ~!앹ãü‹ô¸æ©Kºý’•ØÂç]¢Ø­)tør1å•Õˆ.ŸU‹dqƒ°›^ESOP·¥W¬¶±–ô˜¤¬GªçÈŸGð/>Œ ®ÙеB(ü¥åï•o]ч©Ó¢Ë–m£7[œ¶a'pôobäøe­I §îÛ71É}õ¾Ë””qß4b½ì/jõËN {™ò*^[ÒàǦVÓ²ÃB@-Çì°+6Q?üð9©Öõ¿ð²æwÊ~¹F]MvSÝrËmðôµò1 K+-µxzò‘¦#m©IƒÞó‘b+¶¥9ºà2éÒ$Etý†]PG-ÛÇn§.]»‰V¤ãÀq,£ºÓ•£$,9ዲlⵓ †o;[P#>W?#Z+RœÏ¥Ð ;-Ç´¾†I9ÅÔggâ dç¨$KžV™§ì0m{þê­u‹-ESRMË÷_§Qñ'ìÞ¸æ‡ø=rl¶IIÎy¬zŽ-Go£¹íØw0í„xN„"-¯ÕVÒâõÐy¹µÈºKË…›B–gZÅ žu‘Î<Ÿ;bzúýì]t¿ê˸C¥_ éñº˜rŒ•ë*EÄeÓ¸„$Ús&[´üÌ!£ø1…Ğ׬ùsÙˆy©šß)ÿqRú?m˜|‡n)v<}­|„¥ž–Z<=ù˜Ów?åÛõœ±åê¢ëÏ‹hØO#¨õÈ6û†-¦qãÆÑ¤I“(::š"F­Ð®[‘äèŽ'߶풩Ŷá¯+Ô4rh­ôc]»©“©ÿÜý¬»´ƒ*Ÿ×‰8SÖ%‰› wbx_÷áuZ‘o5Òj¯<6ea-¤³7*¬¾(~#~øhznÕeÒVújÄo4<áœæÛ+¡PUl[ÎÝS=Ç–¿ì ð…ÿP$» 8JuÙkuC36žÒZšTaéŠò|»IZ“<¯«¥I¦gYe•5"?.îD…Eê\bÍ#WSröCzùÆTÏ—sËE÷ ¶“ÚkU´Ptw[Eí¤ËL­è?‰nµVý„/±®.ÃÊçïT¿SG¯MwÑvòQºõ¶"F‚½4xúzò‚±³_O<½ùØHÍÎ~­ó±ªC›?4—§IDôvš>}:šMíY"6qد_¿_æPbb"­ZµŠæÎ›Gá¿îÕ•¶é{l÷ŸÖÒýšwô žÜŠ76ñÌ2Qj9õ[_H¯ß¾#‰\4¼Åôž]Ü|dnpü œv’V(µ<4O+¬¤ÊïÅç½çr©éÕ,®IF§¯Sß•WD>öÊ,-Kïø,˃móXñ´Ö2qùf½©ûh%N¥÷›Du±õYž®yŽ=V4´jøôyù¥yðzÈåƒÿšÎ{Ζ3âÙ¢´ÅÆÜó8ëæo;Ëâ¬eë·¡ápFÑ!±Ä“wF]w¤Pó‘›YÜKôõÒ<ºWejÕfÜ®¢S7*éîcS×4õÆ]v¾ šbSªÿ„Ó÷U¿Óð%9]›î¢íäc4lëEŒ¾8«”OßÛò1KM+ŽZ>Vuh#¶eùêÌJ¦i3çP÷!“(|q¦Ýxa¬{³`Å::|ø0ýùçŸ;)…; ¾ µðøÙkj>j›U<‹Lâr· [w®Tˆ—gù(Ù•›è‡y{Ùž ^àåR^ºïšh™ðQ¾ªµ´5)‹ZK­õÉwé oA Xx„Ú±n½2KóåÛ—Ê·ºGmΦâŠj!¢òjŠZ{ÖÒ’™ùßÓÔUIlknªŠç§u޽V[—#|i¶Uù¥y¬Ø*´×°Wüž‹âYV›‰‡¬B¸È^¿}ÇâÔÑêýi–8¡sÒDz%õrÚrì:5g-ÓÑ›~tzNÝ.^°ä—yÜ›nQòõ‘wéó7ïèhú-qn-t´Ø”êŸÿøª}§!s¸ó _›î¢í”ã4l[‰]ô¼8k…Âñ<}oÌÇÑ8æ|¬êÐVlª„^K‡L“޵⶟~œ"cVÓ÷ãèÛ¨üs¢ö1 ( ˜i¹–ÝéVñL2ÉSÜÆÛL<(Z MÅÃãÕìfÛL¬%#X늿xÛ*jh™|98 a-û¼‹u—RÅó)þœŠÿÒóDÐô³¦_ ;e––…§ÍÓ1ïã7b[VÞ]äi}5|“xÚtH¢ØÏGÃdXÅßÁÂL›mÒüÚ-ÎÖb‰ÏÓ05ï­·ÉóÓ:G¥4¤È÷M7•9´¾L½×ܲi-ñjq¬[É_áõhN/TÔ×%xâiL=ÞP渆:lÏZüÙo]šÒ»(þ ãÝæú_cKýñÅ çaSÿß©7]ï|ô{øï÷ÜOßó‘ßÖb[qM¾Y[Lž¿/»šÅ†zq ¼e=|{©Ûàéûb>RÄV€.ÂY—·iäZÖÍ\_/6Ô‰+`-úáÛËÜOßó‘b#¶ÿ¬¼€.Ì]Lþ N\ï¦Æœ¦Ÿþ(w9<]ž¾/æ#ÅVlñŀόY®FHÀ‡ó1£ ¶ÛШ±[Ī;‚0±f4ÌþRPSS ³Ü 6Äì?ŸM þ8üœ„„‡9vìļOj}'­~Ìèø£BP5/jÂ,7ˆ xf©!øoØ’”iÛÃÇϨ¬â±anÝ.ÇClbCð:±=¨|JwK*Ò¤I»ûŠŠïAlbCðN±ÝTMwîÞ·KÍŒÒþ¢ýbã‰xÃÅï-å‚{ÅVñ°Šu+ˬJÍŒ¼_ljSªÔÀ”ªFö~œ?‹ ÁÿÄ&ŸR¥ö‚®ÃSª 6LƒØ<)6L©‚Ø 5ˆ Á“b“O©RšZ¥´ßД* 6OŠMmJ—šK¦T±!xRl™RĆàI±ydJžZ󠺺ø9ÎL©Âš«T¬RXW 6€Øb@lbˆ 6€ØÄ0¥ `J.•ÿ À¿qf•*L‚ø³Eþ½J‚'Ŧ¶Jÿ ºX¥ @lNlòUª”V«RÚïs«TùË¢'‚?ˆ «TÕÔ@h>.6#‹kÅÅ‚És•*µuE}v•*ˆÍ÷Ŧô=Amåxˆ­q®R¥†¡Uªäâ°÷YjQ#ûåû´Ž×:Î^|µ<”ʧ÷¼]qZÇÛ;o_›½V—#bs6-[¥JÏ ®$w}Öj±© Й<ÝQze¥Gª›mwÓ•’Dð±Uªm¹¸s¿3åq¤ î¨#²‚ØŒËH.7ˆ­ñˆÍÑUª2²ò¼KlJhµlôvÉÃQ±=#²²w¾º¢¾&6gñÚ›#7¼Ñ›Ñc\%&ˆ bCP›£Sªn—”;&6w<¿2ú ÍQ±iåa䛞zpDlzŽ÷'±iÉIkFE§Ø<6¥JO×Ï•£¢®~Ʀ•‡ž.®V==££ª¾üj‹£ï±ÉE…÷Ø|CljSªÔpé”*g»’x?ïìaæ‚Tlò)Uj/èºmJĆic‚+ÅæSª 6H bCp¥ØäSª”¦V)í÷©)UbCð-±©M©âRsÉ”* 6OŠÍ#Sª€Ø<)6L©ÀSkTWW?Ç™)UXó`•*€UªëŠÄ@lˆÍ"7hL˜ýeWlÐX±ß!¶)S¦¹€/’’Òäÿ¶°Tékç'IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/filedialogurls.png0000644000076500000240000007071412536324503022451 0ustar philstaff00000000000000‰PNG  IHDR,΄†?HsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEØ  6 Óì† IDATxÚìy\•eúÿßÏsvöÃaßdsÁ]\JÍÌÊ–Ñvµ¦¾5Õ4Õôû6-£MMójœ±}ÑÌIËÌ1-Í\qWDDEDd9À9‡ÃYŸßÈLÍê|^¯ûUrží¾ŸçþÜ×uÝ×"ÄL~<5<>uƒL& Æ 7Üpã*„Ãá¨*+Ì™$°A—46Øà7Üp㪄ÝÚ¬>S»A.“ÉƒÍæ&¬6‡{TÜpã§ÓŽÃÜ€ u?¯%™ …Ƈ­§Åˆ€ÔÍ(½+ÕØš öæîï!ˆÈÔ¾26“±Ïåä(=µ€€ÓaA –جÍX­ö–ƒÌzü›‹P+”‹Qˆ¿v‘™ÊqšÎ  pn¸qµVsAZÔju·ÇÖÖÕ¡7Ô¡”,D‡‡ в “äätY%f‹_…woM²X,”VÕâD¼ñôôìöƒÁ@…¾¹ÚÉÙÂOòÂAhQ Eµ/^Né×ø²1;ŸcŽ! Wµ•¥žpóaN«“]Ç»á†Wd"¨5šëåé‰ÞÔ€Z­D”É»=^dxhÔXšìxzy÷ˆ Tj5r™ˆÃæÄÓË«GÏåéåuFAAŠªÌ8$©Åª~öú’$µ•°dB½U£å”m úcËP:N`¼ðR:ilvb‹€(StÚµBdnF8ã’ü Nì’ÀŽcõ¼»©§$ VˆØ ™@³MÂzvÐ4J…LÀî0[H€çÙÁ•Q€&‹§äþÝp£g„%CZæP´NÍ“S"‘ Nr[ êùlger’=^pÓ#Bd®ÿ<ÏÙë mK…bèAcøµ¨ŽÿéäF$mM‰3]ëÄ#´Ü8PÇÛ«v±bg ·ïÏïnèGNa9‚Ƨ®¦°ÒH¸VÅ‘Š&^ÿîaZ O_‡ÜA“Mä%ì?eâo¿éK€·‚z“•H¯SÈæcF÷—è†=’€ÎÍi‹Vl:Ä×;Žòü# óPÑl¨EãŒkþ·¶šzAÑyVÒj9çàÑRÞ]›…BÝBPÉ‘Z¼Äf¼\R™ â:¾ÆhçŸNóÔ”(R£¼IVñÇ·VÓìðÇCZ®Ýz}Qh«ŠçÚ$ Q²c½ð×€CåʎǵAt€³ÅÊ"=êÀ8òÏ(0Y%"¼”6Ûp:,Y»‹F‡’wÍ`H° CBÀÚÄÒùLÌý#üÙ{¼0 <¶`=o=9•±qj6ª@îéçþÝp£VU£Êzºc1a*^üð¿È=b\¿·Û; «E+k{Oÿ04¾A-6¨ BÝñóîÓþ‡KÍì)jdxœ«·¦Ü€§hËñ’³åQ’³­J(¶W  eHåû’n¡©<•¾Ù©-H±×عaNo²£Tȉö§²FIˆVƒZ!ãL½ I©Áfwb´ þ‚ˆ¯RÂCæD. ôeA9ÍV;6“ ‰ÒšFŒ¢Mv9J8lf‚¿ûktÃn¥½ K•äWXÉܵ£&·;{”pV’i=Gë)Ç[Ýž¼LgŒv—'ˆb[YÛ·ÊÏÙÇ…v÷˦ô'9XÁÇk÷pÇuC°yèùî°§¸ÔB©½Ñ]DÏ–`5âS»“3ÑãP„öÇá©Å»t QŠRNаø%Ñ™ŸéþbÓR­<>=•¼*ý½¨ª­g[nC††â¥Qrߤþ ð¤Él!ëxÞÚ¦]D“C†B.Ç!“#Sy‚ ´<´LqNL•¤žÝpãW­Š.ÂhÅÀ(/œÉ|q°¹ÝoB«ñ¼ÍnÜ”þZÆ%¶ßÍÛrè4ÿÞ׌\åÑFÂ:wŸð ?f× SµìNú¨elØ&#.—„ÕòoOSR|yfájÊl:šIÖ‹Å«‹9Z#qzO=…¥5Äê4Ù[P êØ˜SM]y ðÃájLÕÅ´XìÜ„å†=²17W¾< §¾ô(ÞÁ±í~k=¶Å–Ýò÷Ï÷éywÕN8ωԧõÜÖ&ž»Ï›ë+0Ôœ:OГáÞFâq_ctpï[ûÅ;(”¬3÷½}‡<ñ¬DÖæ^´uk8ûÉf¦Îá5¨_;¶z÷aóPZõ8l šÐNÊ„ëOqZ›@P"øÄ¢Vy"Ê@A™uÇœB *ì(kfÛ ÃY‹ä¬ÍiÄfV¢ôö`]®›YÒۻêá†nt¯¶B•Ò¹4vžJàrË‹TB…‡7þÑý»‘úhwÿö<¢Ñž„§³ôwްijì þØ=ÒéŒô}ÁãìÅ.0V ?×q­È)kæùOó)©5¡ ˆDT¨\¿ÉežÈÕ=_e*Nÿß 7ܸ02õ ¹³ÙJà £ûÜÌŒaw¡éAL­Óá ¸¨€ºÒ$ÉIå©Ã$ H§±FÏþ‹ˆŠŽ! ¨{)jñâILè‹F­éô}oܸž›o¹ ÀÎsÔ¢Tªxûíw:ü&ææfžúøå–[z,÷訧Ÿ~šùóçãëëÛ㨾¾žùóçóü£ƒ-éí·ßæÁìQ©ŸË²z+Ç«¬Ü˜ªíò˜Î0+ÝA¨oKü/¾ø§ÓIss3<ðÀ%}žõë×GBBB¯Î³X,ìܹ“ŒŒ 6oÞ̸qã:iss3>ø K—.½àµêêêøæ›o¸÷Þ{]«ãO<Á¢E‹zô,ûöíÃn·3räÈE§Óu8§±±‘Ý»w3iÒ$ Y½z5)))\ýõWì{hhªgUîB”!\}š¨¨(öïßÓédðàÁ”••ñÆoÃ믿ŽN§càÀœÁf³ñä“ORUUÅK/½Dnn.Ÿ~ú)‡¦©©‰?üúúz>ùäòòò(**"<<œõë׳víZ /¼ð™™™,\¸††¶mÛÆ?üÀêÕ«Ù¹s'{öìaÅŠˆ¢èj‚ —Ë)//ç³Ï>Ãh4ò¯ý‹òòr$IbÛ¶m,]º›ÍƲeËÈÉÉaÆ ¬_¿€ŠŠ d2ùË_¨©©a÷îÝ””” I|ðUUU|þùçìÛ·åË—SPPÀñãÇY¾|9åååøøø••ÅâÅ‹©¯¯ç7Þà믿îÔÀét²~ýz¼¼¼ðññq½÷ììl×õ.•<ùÄcüöÙ¬^õbM&K#Þ²®‹}¥LMzÌøÿ礪(å *ÏTt{V“A¿~ý8p QQQ( RSSÑjµ †nÝœNFK#ýý¯#HGeC g •x*}¹vÀm4Y©7Öwû,Z EÇ 8”[ÄÀh’ ö¨ÅØÔL½Ñ޳‡U÷œRKC’pžíŸÓét©Ù=©bes‚ó¬¹ãüïÕ)£—„uQVyy9aaaÜrË-ØívòóóÙ»w/ÿó?ÿƒV«å©§ž ??ŸÓ§Oó / TvÜöÔjµL›6 €¿üå/Èd2n¼ñÆ+c|÷QÒµ˜_os¸VÎ;v0{öl¶lÙÂĉ™2e YYYÔ×׳}ûvÞ~ûmL&Ï=÷ÉÉÉÜzë­lÞ¼™éÓ§c±XhhhÀh4²aÃjjj8qâ‡B©T2jÔ(^}õUž{î9¨©©ÁÃÃaƱ}ûvvïÞÍÝwßR©¤¼¼œŠŠ ìv;ÁÁÁ„††FHH}ûö%++‹;wR]]ÍÁƒ)))Áf³1oÞ|€ÿüç? >œòòrvîÜÉØ±cÙµkMMMÜtÓMÏòåËyâ‰'ˆÇÏÏüü|¢££éÛ·/ƒ?ýéO 2„!C†°mÛ6{ì1æÍ›‡ÝngÆŒDFF¢×ëyíµ×=zt¯ßéM7Ý‚Z¥â‹Ï—ó÷7 V«{dÃRŠNUœ"ëd&ã“oacö(ª<Š(ˆX¬|4Ý›Bd2f³™¼¼<$IB£Ñ0pà@JKK©¯¯'22²[éJeý‡-9ßqë‡ òŠà¥eáp:Pˆ‡RÓò´SZ^Er-QÞÕ¨”JôVOì+åtq oîcÙ-í•W_åÕW_à³Ï>k¹‡Ôò[wÕÑ"e9œNìv{»Í‹!¬IX’$a6›1›ÍX,|||(--¥±±‘S§N¡Õj &77—ÊÊJ×y àõ×_çƒ>Àjµvú’ÛÛ$I¢¢¢âŠVˆŒ¤Py—-ÐKtI“žžž¨ÎêÚª6:·\.ÇßߟÇSXXˆ×Ù¤d­+HÛÖÚß‘#G2þ|{ì1† ‚ÑhD«Õ¢ÓéÈÊÊ¢±±‘ììln½õVÞyçA ))‰E‹‘‘‘Áµ×^ë2Ô·»[W?Fõ×^Ë+¯¼Âïÿ{âããQ*•|ýõ×ìÝ»—ììl,XÀÌ™35j”K¥MOOÇ××—ÒÒRjkk9rä555 6Œ^xßýîwLž<™1cưeË 5j%%%DEENff&õõõìÝ»·Ý{õööæŸÿü'÷ÜsMMM˜L&æÍ›ÇîÝ»ùúë¯Ù±c6› §Ó‰‡ÇÅ'kœ>>Œ7Ž€€|||ÐétÜwß},X°€yóæ¡ÑhðòòbðàÁlÞ¼™´´4ׄm•²Y´h·Þz+YYY,X°¥RɃ>ø£Þmo½®|™9â>Üø7®O°_(f«­2†ÙžÀßW×£{¦¤¤`0¨ªªbÿþý  =ömê5i©³ùúÀ"Öì^†Fé’’¡ã¹eäÌíÂJN'^Þ^ž8T^-¯æ¤J$ÚG‡Më‹É^‹Åbé~SÇ&+¤ôOãú© ÈärFŒI|M-˜í îf¹¡YBß ¦LgòÔéB‹ÝÊæ„:3˜{é¾%Œ}|±¤ŠÁ2<Ñù°Oüþ)þúê˨üBxve fk×ò¨§J俉ÆGseÂ9V­Z…Éd"==?þ˜{ï½—þýûÿlÇ{×®]ìÞ½›'Ÿ|ò²ÞÇnw`4™Ñ×7véÖ0ïÏ/ñøã“œÔ·KOw ‰ÓÕ§8xb…ô ìËÀØtú„ÅõŠ›››)//§²²•JEpp0!!!½r\uJN²Oì'÷TzCý"24q$~Þ=«É¹jÑ‹„úËIŠà‡ÌlðJÂèð$K~ ¹ZÎtÝxÒÓÓ;•dç Àcz…ç^[H¨· ü\ñ*»,ðùòå¤)™:uJ§Ž£ùùGxçËML¹í^ü4JYˆV+aU×7±æ“|ô—/è*´»ÈÈ«ëÏPsx¿J÷ß o‹gÇ]UÏ4iÒ$Ö¬Yúuë¸ýöÛIIIùYqTTÔó.¯¬¬¢¦öL§;V=Ý…ˆ Š!*(æG=‹Z­&66–ØØØ‹¾†(ˆ ŠOgP|úE?`Ä­”"§\ͨiOÝn'nÏœN'Æ ë‘Ê¢õä//<‹Z)GÖ¦(´S›ÔÎ&¦ÈÓovýËh2ÿ¬ÇÚÇW‹¯ö²u]]¯¼òòwàÇOæó÷S or}“ÓÚo,(•Œ3¦W×yö÷¿Ãfµvé¸ —Ë;ÝLk…B¡`\ÆXÆeŒ½d}ûÕ–L&ã±ÇA©PâÆ/:ÞïÝî—QÄnw>wkCKIj·±Ô£¹%—anrÇ^zHV«ÅýUºáFWª±@ïçˆõJê!n¸á†?¸ Ë 7ÜøÙ [•P¯¯gÇÎÝ47›Ý£uÈ„ñí²A=Nnn®{€ÜøUàšk®!1!¾7üE–Õfã_'GÄ÷¨^̘<¥R‰ÙÜ~A(//ç»uß\Ѭnüth±ÐNJPHp`üÝzdtWi¼H6ÉýU]EEvù[zz:<ðN 64rð´ ¥LàæþDé~y»6‡ÄWYu”ê­x(Eê×1aóóóÏÆ>J. ÆÛËûß³ÙÜe¢À^Ö92%¾~øûh½ÑB½¾ÉÙU`‘„ä´»™éGà•oË8Zaad¬Íú´˜¦6AX ¼pc >®=//„„—ŸŒÍfãÈ‘#W$uÏÅböâ"ü5 ’BÔT×Û¸áŸÇÚùùzˆ¼yGñA];=Z­VŽ;FJJJ·+vcc£+4駆\.'<<¼]6ƒÒÒRê\qª?;vì %%…ââbø³› ½#,ADTúaqˆèÏæ‹²Ø@®öïÒqÏápà´œAnæ¹H«jæ®a.Gî´ˆö!Uû‹M.Âr:¼÷Þ{Ì›7Ï•8Ïjµ’——wU–¡ÙÁ]é-ýì bXŸö“tg‘Ózë Ë`0ðÞ{ïñÏþ³[êÆÆFNœ8qU–$I8% á¬j(ƒ††ª««0`ÀÎÒÛØØÈ[o½ÅÂ… ÉÉÉùå–S’ÐÈüÔÐ’åÔ2 Â"¤–ø¬z“{³„;]úÅ£¬Îʼ•%غÈÅ!ˆ³ÆtøûêÕ«)..æ¶Ûn£oß¾ˆ¢HMM ßÿ='NœÀÏÏ{ï½·W™d/'²ŠŒ¼XiÁÙÅâgvJLèçÓNšúì³ÏÉd”””0wî\—D¹uëVbbbèÓ§k×®eÔ¨Q?~œÕ«W“ššŠÃá`„ ˆ¢Èþýû)))áàÁƒ$''sûí·“ŸŸÏçŸN\\wÝuæò“–ÓéÊ%IÉÉÉ8NÊÊÊ:¨KÕÕÕ,Y²›ÍÆ#<‚··7?üð?üðS§NeìØ±¬\¹µZÍ®]»˜4iµµµ?~³Ùì"ó¯¾úŠžžŽ(Š ÓéHLLä»ï¾cРAlÚ´ I’èß¿?aaa,Z´µZÍ<Ð.±¼¼œO>ù___~ûÛß’••… $$$°~ýzf̘AVV«V­bòäÉŒ?¾×ê½28p¢²‰¬“†6ÍÈÁ“Fž4µoÅ&²‹›8YÕŒ³›L_žjwŒëâñÇÇl6³eË–«¦ŸJ¥‚ð ®ûéíÑ^²²Ùl¬Y³†ÐÐPFŒÁ_ÿúW×Ä>tè+àŽ;رcË–-ãÉ'ŸD&“ñÕW_Q[[ËÞ½{9zô(™™™<ýôÓ|ûí·”––ò÷¿ÿ™3gâááAuuõé¿S’p:8œÎnsä¿ñÆ 2„Q£Fñõ×_“Í7ß|ÃSO=Å_|Á‘#GØ´iMMM<øàƒ¼û3†aÆ¡Ó騰a_ý5ÇŽã÷¿ÿ=ÇŽcÇŽ®ì¨»w瑩®ŽuëÖa·Û‰®=ò IDATgÑ¢E\wÝuDDDðî»í# >þøc¦OŸŽV«åÃ?¤OŸ>,^¼˜ùóç“””Dyy9ëׯç™gžá¿ÿý/¼¼– x{û Rö\4µX­à0-*¡(¤Å‡€Ùj'ÀWîüRúFèôó¤¦þ\¾i™(0*%™L<ûo›ÍÁ¾‚rê fÎ44ý*K­éÔu¸DCsç6ÂI“&†¿¿?MMçÆ*==¢¢¢ºÝF¾’ðóÑ7¸ë~JBG³‚··7£GF>ûì3š››Ûv+±•——Ó¯_?‚ƒƒ;v¬+Ój+F··7!!!Èd2n¿ýv–/_Ž\.gâĉW†°œÂÙ(ã³dÕ6ŸZ[ÔÕÕ‘––†··7ÑÑÑ.ûdPPqqqèõzd2cÇŽÅÛÛ×ÊÍÍeÒ¤I1eÊWr¾¶ ´”ñš2e ìÙ³‡ââbìv{‡”9;w²«ÕJß¾}  99™Ý»w“@aa![·nu%޼˜‘½',Þ=ß¡24Ãxîß•‚ÔØ`þ³ýjw_—Fqe='+ë©©7¡Q)P)dš,ô óG©q²\B‹¤a¶ÚQ+åŒêÉμRJªê„%Ôõ«:c„Î2¬^½šþýûãp8Úme2Ù«ÔÛøjÄ ö³Ñ"ëÔ.óÍ7ß IÁÁÁ®,^^^:tˆ   öíÛÇĉùî»ïÈÉÉáÀèõúó$yYMÂIQQ¿ùÍoxï½÷¨ªª"88ø²÷ßÑFí“Ú¤î !!!.éøÌ™3 >œuëÖqøðaŠŠŠ˜>}z‡~Aƒ±víZÔj5kÖ¬q‘SNN}úôa×®]ÜsÏ=í®3tèP†J]]ÞÞÞ466rúôiRRR>|8ãÆ£¬¬Œ°°0 9uêýúõcëÖ­$%%1|øpî¾ûn¾ÿþû^×?E»ùÏr¿HFÄ(‰Ðv$"“©‰5ß®'¨ï@ÄË[‹¯‡•\ìQs:X›ëÎN(JN|˜Ž¬Â lv'ÉÑäU‘Àá¢*"t¤ô ¢®ÑÌô‰Èe2bÃüññPQ~Æ@^q 'Êë‰": ¥5?k2Š ö%9:°ƒ¤s²øugj=z4_g×1*Î ?_Mdžä¤Ù!12îÜö·B¡pe½œ3g:FCBB^^^ÄÄÄ “Év%âû©ñå3\›äƒoý¬1؈ VÓ'@å’þûßÿÒ¯_?êêê˜3g^^^h4&L˜@QQÅÅÅL™2…âíí;}ûÐjµ444pà 7àëëKLL !!!èt: ñññ°qãF†ÎðáÃ/{™ûºº:TJç¹ÔÜÒYÕÐl6ãååÕ.]Ojj*ÙÙÙ4551sæLÂÃÃñóócÛ¶mÜ|óÍôïßßÕ¥R‰J¥"11FC\\*•ŠôôtÉËË#44³ÙÌwÞIII ÇŽcêÔ©$&&âëëK||< …‚ÄÄDvî܉$I\ýõX,JKK‰ŠŠ"!!;v P(˜2e %%%Œ5Šë®»Ž“'O2pà@t:ßÿ=ééé®D—ÐR”D:«ŸR½•í'Ì4UŸè>_Uu <ò$)SAN`H´Þ=O?«74SSYgw r7J¢ÉbE@`pb_žÉ½“òù¦\L-"½pöXA¸nH,GNÕ¢7š™6"‘Òêt¾l;tŠ*½ñgMXãR#¹eLrÇÑM›·rüXÏ>û,kéù.·¡Ëkh"Ž&6Põ³‹w6W‘[ÞuDEˆ‚GÇ£ój™¸MMMÌŸ?Ÿ×^{­ÛkWVVòúë¯ÏÉ“'1b7ß|óUÓ÷#GŽt¹ùa2™ˆ‰‰¹äµ<óóóy÷ÝwIII!//|ð'ÛEnõÃêLM¼è~‚ ¹ˆ¼7 ·äâYü¬^lwðíî£è|ZvBu^4Ûì¬Ùq‹íœ”!V{ ÉmË9E³ÕŽÍæ`íΣxi”<^ÞØÌ¯7¦i¹1Mû‹ïç#ã{§vi4ž~úéÂ3ÏW—¤ã’2:Øöüü.K2Ääädþð‡?P__ÏäÉ“‰‰‰¹ê¿‘Þ‚ ±ç„%5[ì”Ö4¢‰4YìHTÔº¶]˜,m$63zƒ;®Ñ›joÔÙààà+b‹º(•Ê” —Uáª#îKJX’$Ðlki=E³­%MmggØN–mÌqϼn±òØ_lB%¸}ˆÎeÇù%ÁæX¶ç %u<•"¿„—Zö«xÇÇŽsùzµ­‚„···{\”„%Ù©­)áÌ™žŸ&9íˆn/÷…?¯)ãdµ•±}½i0;øí’bL–sÆI¹ ^šÆÄäçj4Ùµk>|˜Áƒ_Ñ~Þùa!á>*ú…j¨j´1ùÇÚåd÷Öˆ,¼3š„`õ%¹Ÿ$Idee‘ššzÉíC½…L,´]hÎéÓ§ihl±]žOZUUU˜L¦v¹ã³²²HIIA¥R¡×ëÙ»w/f³™´´4úôéCvv6ÇŽsß¿¼¼¼¨ªªbèСáééI`` «¾eXXC‡åôéÓíÊ·EDD0räÈÍG¯gÛ¶míªñ´Ö²lõëR*• 4ˆ¨¨(œN'GŽáèÑ£èt:RSS/˜n¹W„àëÁS¿éfŽËE÷¾»Åµî¦C’ \« _Xû [c°“}ºéGÖ¾}ûرc#Gޤ¸¸ø‚„µsçN¬V+ãÆëöºÛ·oè6§¸Å&qÝYOöp­‚AÑíCv)«·^2Âr8|ôÑGüõ¯ÅÏÏï'ý: Í1™LÔ××£V«;„æäääP\\ÜŽ°>úè#æÏŸïªª‹§§'¯½öüãùôÓOIMM%00hÙIÎÌÌdÁ‚,]º”ÄÄD~øábbb0 äååqÍ5×°nÝ:***hll¤¨¨ˆôô–âmS)‹¢ˆ‡‡'Nœ //3f “Éøøã?~<¾¾¾TTTðç?ÿ™E‹ñÝwßñÃ?0räHöîÝKDD!!!—†°” }ÃumT”óVwÀ‹FOêÕé­Ìÿª{WBs>̲eˈ‰‰áž{îAE/^Lii)3gÎdÀ€¼ÿþûÈårŽ=ÊܹsY»v­k54›Í466²téRÊÊÊHJJ"--´´–âŸþ9555Œ7Ž'N°téRy衇0 üûßÿ¦¤¤„Ù³g³|ùr ƒ«vâöíÛ4h³fÍj÷ÌY'Ì«¶tY½ÉádbŠO»Iž™™Éš5kHJJÂáppçwòá‡RWWG||<ƒ“ÉÄ£>ŠL&cùòåäææ2yòd—C¨$I¬_¿OOOFŒÁ§Ÿ~JQQ³fÍ¢_¿~WŽ´Î†æ‚€$I$%%ušs!ìܹ“ÈÈH~ûÛßçR3'NœHddd»E*==ýë_,\¸Ðõ÷0zôh&NœÈ¨Q£\D4tèPn¸á†÷ôõõåºë®Ã××§Óé:F¡P0iÒ$0lݺ§ÓÉêÕ«yþùç‰ŽŽÆétÒÜÜ|ÁB"¥:œPTmá‡|¥€ €©Ùɨ¼»°5(å!¾rd¢;šð¢õv™Hh@×›líUîÆÆFÞxã ^~ùe¶oßNVVGŽA¥Rqï½÷2oÞ<þýïóõ×_óÒK/1hÐ .\È”)S¨««£¹¹™ÌÌLÊÊÊˆŽŽfæÌ™<öØcøùù¹küøñ.WŒÅ‹sÿý÷³k×.W,™^¯çñÇ'33“ŒŒ DQ¤©©‰>úˆ7ß|“-[¶`µZÛ©j•‚ð@Ÿ.ûYÞØ~W877—eË–ñÒK/±}ûv>ýôSn½õVþûßÿ²xñb~øaæÍ›ÇòåË)(( ((ˆúúzüqž{î9†î’LL&Ï=÷k×®ÅÏÏ{—_~™¥K—^±÷ì<ë{%ˆ"ÂÙÉ{1ù°N:ERRR;Õ¬o½õ–Ë}bìØ–j6ãÆãøñã,[¶ÌEŒO<ñÿ÷ÿÇÊ•+ âÑG%??Ÿ+V“ÓbwNJJbÆŒ¶a77³`Á<<<¨ªª"00ƒÁàR)[ûØJÒ—”° ÍÖ¨¥Ùb§uóÂî€uŒœï8-µ,](ræŒÅÏCæfž‹„Z)’ЋÐ«ÕЧ§'¡¡¡L:‹ÅÂúõë¹óÎ;‰ŠŠB&“¹<Ó““±X,®à§Nâž{îA§Ó]PËÌÌD¯×cµZ¦Ãdôõ‘rб=1WWW“œœLHH£GæÛo¿ >>Þµ#اO‚ƒƒ±Ûí¨T*ª««ùòË/ijjrõ¹´´A°Ûí‘ÍÆ1¯¬ŸÓá€Öð™nBs.„ÐÐPNœ8á’ ¿ýö[—còM7Ýäò0÷ó󣤤™LÆ#<Â#ÌŠ+ظq#_~ù%ÑÑÑÔ××SWWG]]];ge___xà¾ùæA ªªŠ… räÈNž<é:ß`0¸Î7Ô××sèС® F‰ŠŠ"&&†k®¹µZL&câĉ,\¸ÌÌL-ZDUUUÏ6'zš³yófn¿í6 Í>Û^Åé:+Uª;k†öÍlƒ©×àÙFeüòË/]ñ]jµš%K–pàÀn¿ýönwkDQD«Õâïïÿ‹ £Ö\î݅挼@hŽ$I4;œ®Ð¥RIÿþýÙ»w/}úô!##ƒäädêë멨¨`öìÙøùùáééI\\œ+Œ'!!àà`‚‚‚ðññ!--úúzÊÊÊðòò"::A $00²²2HBBYYYøûû3qâDüýý)--¥ººšÙ³gAYYƒ B¡P››ËM7ÝÔ¡:ò—ûÏ01Ù§Ó>újDªÏ ÍÑétDGG³ÿ~‚ƒƒ9}ú43fÌÀÇLJ>}ú¸úçééIdd$áááØl6šššHMMÅßߟÈÈHâããIIIáÌ™3Lš4‰ªª*JJJ˜6mÚ3Æ· Í9«](4G¡PPRRâj‰‰‰‹ŸŸƒ ¢  €ššfÍšEjj*®l %%%®q Åßߟ>}úNjj*444PPP@\\7Ýt†¢¢"×ùN§“ððpª««]ê\.G§Ó¹¤8bccQ(ˆ¢ˆ±±±ôë×ooo²³³ $11¹\~iBs^|ñE¾ø|95;ÏUÕÁè~aû Ì¿%˜ Ÿsƒý§?ý ‹ÅÂM7ÝDZZ/¿ü2¥¥¥¼óÎ;<ñÄ|ú駘L&{ì1>øàžxâ ¬V+2™Œyóæ1þ|fÍšÅâÅ‹±Z­Ü|óÍÜzë­?k£û…BsÖç5°ö¾ËkxªZBs¢ü/­oÖ·ß~ˆ ˆ‰‰¡´´”gžy¦G;9‹¶W“}ºë á~J„Ö££%£¡¡§Ÿ~š?üðgùäççããÓ¹ý®©©‰>}úüä®——)4G@ç­@Þ‹mA‡Ó‰Ø‰ˆ>dÈöïßÍf#55Õ¥^´eØÖÔ××sÛm·áçç‡ ®]†§Ÿ~šÀÀÀv¾%¿DLNñerÊ•O²7yòdRRRhnn&00Е½ôrá1A}®——óæÍûÙ¾ãØØØ•“ZpYBs~Ž{{°ŸF†ÎSÞãæ«‘ÑÙaJJ %%%¬ZµŠë®»®ƒÑØd2ÑÔÔ„B¡à®»îÂb±°dɬ֖2³6› •J…R©Äb±ôØhçF/¤c¹œ˜˜’’’.;YýXÈd²‹JWr5=¿\.o×”J%žžž¨Õê«2ÐOòMöNÂ/ ²ç§5[¡³±V©TÄÇdzyóf—š¡P(:t(?þ8!!!.#êªU«ðôôÄÃÃõÒL:•W^yQ™8qâ/ú…:œßæÔ³»ÈˆJ!r÷0qAê_\?m‰Å;j(®µà©’ñøÄà.Ýe~i(,,ÄÓ³%slëâëp8èRUtVTB•BŽBÞs]Ú)u$¬_|…BAll,sçÎà½÷ÞC¥Rñ»ßýΕsúÙgŸE.—óöÛoc³ÙP((•Jþñ T*3f ’$]‘|Û?%þwU)eu6&&úÐ`vðà’b›Ï©2Q`ÞÍáLéDmt8ìܹ³[/ó«3Þ9N|€šaT6Ú¸öõ£8ÚHÎ^j‘÷î‰!)ä—÷¾[s“µ Í)))qù,OZååå8p€o¼h±ámÞ¼™)S¦¸’¶Ân·³gÏž îz:Ö­[ÇØ±cÉÍÍeÔ¨Qlß¾Q£F]Uµ{­Kô.[ƒÔâ»ÛAº‚–¿V‰©ue2Y‡’F*•ª]@ë±=ñù% ¢Þʬ¡-¡9ÞržœØÞð]k²‘WÖÔ)aÙl6>øàƒŸa ÀÄ$W?„·'¦=ÅF*l¿HÂê,4Çl6S^^ÞihN^^O=õ×\s ìß¿ŸÇ{Œƒv ¬ææf>úè£ VUU«W¯&##ÕÃþý÷ßgذa=Šñ»J K Ù.bë…¹ÈápÇíüX”é­¼²º{Us¤óBs$I";;›/¾øooo—j]XXÈÒ¥Kñññá‘GáäÉ“lܸ‘Ó§O3hÐ Nœ8··7?þ8V«•+VÍôéÓ3f `ÅŠ„††2gΜK¾åŸuÒÄËÕ¥]VÍ1š°wï^¾üòK˜3g+W®DRRR(//'33“1cÆ0mÚ´«Þp}~hNbbâCs ÀÖ­[¹óÎ;9xð +ULee%Ÿ|ò 555Üyç$&&º¯%K–0aÂt:ï¾û.6›û￟ 6ŸŸÙlvm€µJgßÿ=›6mâúë¯güøñ—=ûê…Ð+6ñV \Ÿ"gl=nSSäx«Ý¤õ£V™Hh€7‘Á>¶€óª þö·¿1wî\&MšDYYK—.åî»ï&**Êå¬WXXÈ3Ï<Ç~ȬY³Ø·oz½žM›6QRRÂsÏ=Ç¢E‹8uê .äÎ;ï$))©CNôKµJNxP×ýôñl/9X­V.\È]wÝEBBz½ž;v Ñh0 ’$]plêêêX¿~=………ÔÕÕýä›[nÑçg•\ .PÑe‹Öµ_wZ7!¾ùæ¾ýö[ ÈÈÈ`Ê”)¤¥¥u™»»õƒLNN&33“-[¶ ×ëñññáàÁƒŒ?»ÝîR3/%ZBsºîgðy¡9’$¹žÉf³Q[[‹ ˆ¢H||<dÛ¶m,X°Àe¼¾šáp8Ú…äØº ÍQ*•Œ9’ÿûß 0Àõ÷ÂÂBBBBHHHÀh4bµZÑjµÌ›7êêjöíÛLj#5j 4¨Ë{„††2|øpfΜIÿþýò4<½ Íqãò|¤­¶‚¶hš³&[ÏÐh¼5^êŽÍá”°;aD\Ëf…B¡`РA?~///¦L™Bß¾}ILLäèÑ£2~üx4 !!!¢Õj‰E«ÕCdd$^^^œ8qÂ4BNNééé :ô’Û„Vî?ÃØ¾^x«;ïgu£•¾ÁjbÎmÚœÿL:Ž˜˜ÂÂÂàèÑ£\ýõÄÄÄ\Õ®/uuu¨Ô$ÉÙÊÆ.µ°³Ð•JEhh($88˜Aƒ¹úÙ3gðõõ%..ŽøøxÂÂÂ\!1V«•ñãÇS\\Œ Lš4 ///ˆŒŒt]G«Õ2xð`|}}ÉÏÏg„ ®ð¬KKZ5§54ÇKž„æl*häÛÃõ•ZBs~;6¨Óçç„OwÕr¨´©Ë~†iÌ„Ÿæ—g–ÈÏÏï°;Þ ³ÙìŠÇû¥â²„æ¸ñÓ`B’’~ù΃÷ŽøÕ¾ãøøø.Csd2Ù/š¬z7a¹áÆU QÛùºá&¬ŸN‰ÿÔ“Yh@-™3:ð’å5¿š`µK¼¿­š5Íx«d<39ͯcWúĉøøø´‹‰µÙmøký»,°ê&,7®J<µ¢„šF“úùÒÐäàÁOŠ©o²·Y‰^¾%œi©wp[¶laôèÑìٳǕ÷jÄ´…GêÉ5^T6Ø÷8Ú$x÷P‹|t_RÂ~™¡9:Q‘Éd®Ð“É„„„ŸïÛklläÈ‘# 6ÌMXn\^ÔíÌâS?È®m_ ôŒÉÎÑJs§„e³Ùøä“O9rd»¬”­8vì;vì`öìÙ?y?Õr‘Œ/$ ü4*^šÖ>ûÂÞb#Õ)´–Ùlæïÿ;/¾øb·×6›Í¼þúë¼ð Wå;n›&¸54§¹¹™²òr4„æ\.455ñÆo\µãä&¬ŸÊõV^ýº¬Ëĉ’3GëÚ}ü{öì᫯¾ÂÛÛ›ªª*§NÂh4òÉ'ŸpâÄ &MšÄ‘#GX³f ³fÍêƒv¥‘uÒÄ+5VºÊd´;¸¶ÿ9õèäÉ“¬\¹’ñãÇ3lØ0–-[F^^Ó§OgÔ¨QlÚ´‰ï¾ûް°0FŽÉÊ•+™0a,Y²“ÉÄ}÷ÝwE+ãtGZN§Óš“ÐehÎÖ­[9tèÅÅÅ >œ›o¾™?þQ4h¾¾¾|òÉ'¨Õj|ðADQäøñã 8eË–qäȦOŸNzz:«V­bïÞ½ >œØØXV®\ɵ×^Khh(K–,Ál6sß}÷‘œœÜò=–—³hÑ"Ìf3AAAÌ;—­[·rúôi‚‚‚˜0a .Äl6sÇw0pàÀK6FnÇÑŸƒ,—àCDPçMçÛ14gÁ‚<üðÃL›6êêj¬V+¤°°ýû÷óì³Ïb6›ÉÈÈ`Ò¤I?9YÁ¹ª9]õÓdz½*ÍàÁƒ3f Û¶mC­Vó‡?üÅ‹S[[ËÇÌý÷ßïJý}š“'Oòüóϳyóf Ø¿?Z­–ääd.\È­·ÞÊСC]UrssÙ²e žžžüþ÷¿gÑ¢E|ÿý÷;vŒ^xS§NÌàÁƒ1b„+üœ9s¨¬¬t“Ñhdûöí<òÈ#ˆ¢ÈêÕ«),,¤¦¦†ñãÇóÎ;ï0xð`fΜÉ[o½å–°~mÐ(’.²RßEhNTT‹…øøx×o±±±Œ;–W_}•ØØXWq«ZO‘¤Ð®û)ˆ]{}—••±nÝ:233]åÃæÎË_|A}}½K:€–Ê1«W¯æŸÿü'S¦L¹júïp8Î9ežµcµ†çt†ôôtüýýINN¦¶¶•JŸqãÉd455Ñ¿Μ9ãª&Ô:N6lpUi®®®&!!­VËí·ßÞ.UÓ-·ÜÂêÕ«ù׿þÅÔ©SÛ=GJJ ¡¡¡¤§§³yóf4 øøøpúôizè! Å=õÝ„õ …ZÑR5§k—D[oKFƒL&cåÊ•Øl6Wh´xTŸ>}šqãÆ±yóf222(//Çápü¤Qøÿ¿½óŽªÊûÿ{j&S2é)Vÿ„ IDAT„B¯"b¨‚DPyDEÅË®®°ëþvݵ­‚ôGAéE ½ƒ!”!!“dR¦ÏÜß1# à%ó~½æ3÷Þ¹÷Ü9÷“ï9ç[4ò«¶³Üê{}ryMŽóçÏ“’’BQQéééúˆˆˆˆÏ+BsI'½ZhΚCe´i¦Á_-C£ºòåp{@Ž7RA¥R‘‘‘Áùóç aðàÁ$&&å­Nb6›¹÷Þ{‰‹‹Ãét’œœ|ÃkÙ^]âuõ¶³¸ÒIJ”†¸¿Ÿ†ÊJ"##‘Ëå´mÛ¥RIII YYY„‡‡E^^ýúõ£]»vDFF¢P(hÓ¦ &“ NLj#Åp¸´´¿?ä­Kˆ$!A¡9?üð!!!¨T*†NË–- '66¥Rémctt4C† ¡²²’ýû÷3fÌ”J%&“‰¬¬,o]ÇsçÎ1hÐ âãã G©T’žžÎÅ‹1 Üu×]8NÔj5N§“œœèر#½zõ"((ˆ˜˜t:©©©X­V”J%÷ßÿuå­¡9M„ë Íùþd%›ŽÖŸÅ_-ç‘î¡D6íМ¥{L=g­w{¤QÅ计oÒМúl»Ý~EhÎÚµkÑëõôéÓçºúØ¿ÿýo4 “&MúÕך——ÇêÕ«yê©§¬ý"4ç&¢wK½[núv>™·æo\»"XçÜLv…KÃwÜqÝAÈjµšG}´Á2ô6oÞœ &Üû$K hüÒÌ¿Ä'K&“Ô`×Z;O&KP'—IJ}¥l?]‰ŸRθa´Š¼Ôad€R.£©²8<¼÷m9?UÍùyhŽ P*dˆ‚W·°°‹[Ðø™úieUîH5RnuóÔÂ<Ê,—"ûer˜9<šáí¯ü+êv»ùòË/ÉÊÊjôíòv6btd67PhvrÇ['|œe5jsiAz³ÿnhS^^Α#GèÙ³§èTB°¿å7÷eãñHh”L¾Í·Br©ÅÅ©b[Ç:N/^Ü$Kï'£W’I‚šWEùlß“_ÍŪK«©V«•×_?ÿùÏ×õý&“‰uëÖÑ£GQ˜T–à·â|™ƒÙ«Ïû_ŽßÐÇÃÖ­[Y¹r%z½žÂÂB Æwæ‹/¾@¯×óì³ÏRTTÄÂ… ±Ùl<ñÄ$&&ÞÐvîϵP\r¾ÞМJ§‡? ÍYµj¤]»vÌ›7üü|î¼óNn¿ývŽ;Æ‚ ðóóãñÇ÷wúôiæÏŸÕjeôèÑÞüö!X‚@¥TZ¡‹Ã7ñ[ee%ï½÷o¼ñf³™Õ«Wãr¹øÏþÃK/½Ä¡C‡øä“O8{ö,wß}7~~~ìÙ³ç† –¿º&4§^á6ûZ‘—‡æ,Z´FÃóÏ?ÏôéÓéÔ©ï½÷?þ8.\`Þ¼y<ôÐC@Ãell,ýúõãܹsÞ`c,AC<È*©Qךãr¹0ÄÄÄFBB6› ¥RI||<*•ŠÿûßTTTвeK0n¼ÛD NqÕv^-4§¨¨ˆ.]º†^¯§ºº›ÍFJJ ¡¡¡¬^½Ú»ïÝwßÍŠ+xë­·¸ãŽ;D‚%hHüT2~AhŽV«E­V³páBÜn7ÇG§ÓÆ'Ÿ|™3g0`ÇgáÂ…Èd2}boFÿ«·³¬žÐœüü|233Y½z5gÏžE¡PLJJ ~ø!f³™®]»z;tèjµš””Ξ=+:˜,AC[Xj¥„¼žQ‹Z J奨~^yåvïÞ^¯çý÷ßG&“1uêTöîÝKrr2=zô GìÚµ ÇÓ(Vδj~*©^·²Æ}Ãû^£á©§žÂápн{wüýý¹páøÃÐét<ñÄìØ±µZM·nÝp»ÝŒ5Џ¸8víÚ…Ûí¦[·nb8(KÐ<Ñ'‚oNT\EÐäÜÓ)Øç³°°0|Åg—¯ n¿ýöFÓÎq=Ãø±ÐVïöÔÚ5¿äÒ “ÉèÔ©“÷ýåÿ`àÀ>Ÿ¥§§4ªv „`ÝTtKÔ{kÞÌŒè̈â÷ÔHà'„…%h8,Ÿî5±;§µBÆè®¡´¼¬jŽL:µ…¼iÏÅ”[ܼÿ]ù¥´j9“ûGú„æ(ä U+‹)'!X‚ÆË´Ïò©¨öÐ/9€ «›>+À|Yh2‰—‡F1¢Cðïz]6l wïÞ –à®w²é£'#FOQ…“»ß9嚣RÂƶ mŒ¶ÁÛRXXHnn.ݺu«s»ÇãaÆ Ü~ûí¨ÕjÑ)…` ê£ÂêæžŽA¸=5Us&õ óÙ^fqqæ¢ýw¿®U«VÑ©S§,ƒŸœž?…æúû1}`¤Ïö}g«1U_òŲX,Ìœ9“Ù³gÿêsŸ;wŽï¿ÿþ Á2›Íüõ¯eÖ¬Yèõz±¢(Kp-Η9˜³¦z"spK’OhÔx»¿ûî»”””0tèPZ·nÍ‚ xà˜?>'NdÅŠìÞ½£ÑÈŒ3ÈÏÏgáÂ…TWWCUU‹…7ÞxƒÍ›7³{÷nŠ‹‹iÛ¶­×k`÷îÝ,_¾­VËäÉ“©¬¬dÞ¼y˜L&FŽIŸ>}®ëA?g¡ÄTH}%!*nŸÐœÜÜ\Ö¯_ïͨyøðaš5kFZZóçÏG.—3zôh:vìÈþðÂÂÂ8sæ cÆŒ¡yóæÌ;—ââb† BppuzèÐ!þ÷ÿ€Q£FQUUÅÚµk¹ÿþûÙ½{7™™™‰Óédþüù8N$IâÉ'Ÿäüùó,]ºÔ›‹ªeË–¢#7bÒ½  R*ˆ3^÷+,èʰ+VЩS'&L˜ÀÇLHHƒ—_~™4 r¹œ©S§röìY ©¬¬¤´´”×^{Í›73fÌ.\¸@YYEEETTT0kÖ,:ä“'~ÅŠLœ8‘Ö­[³hÑ"víÚ…$ILŸ>Ý›úözð÷SÑ,¼þvõ¾9˜.Í),,Äjµ2dÈL&£G¦[·nlܸÑ+DYYY<ñÄ,Z´ˆPYYÉôéÓ‘Édx<$IÂd2qÿý÷Ó¯_?Ö®]KûöíÉÌÌ$55•ììl}ôãǧwïÞÞra‡æå—_&((ˆ°`Á²²²¸÷Þ{q8¢ ëÖá—†æäçç³uëV´Z­wÈÖ¦M–,Yâ-Ïtüøqrss)++óæ–'00°°0"""0 ÞmíÚµÃh4’””Dii©÷\;vìÀb±àñxèÞ½;½{÷Æl63{ölÒÓÓ¹í¶Û®«AÚk…港z|×®]1”••±yóf”J¥7Ñ\DD±±±TWWãv»éܹ3ÅÅÅÌ™3‡V­Z‘™™‰L&£¼¼œ7¢Õj/…¸ »ÝŽËå"11ƒÁÀúõë½÷V£ÑV3\Ÿ4i«V­âôéÓŒ5Jtb!X·×Íšœ —èÙ³'Û·o',,Œ²²2***øüóÏ™6msçÎåõ×_§¨¨ˆxëÖ>lõ±|ùr$IâðáÃŒ1ÂûùÀ £  €„„N:Eaa!­[·æÂ… ×Ý΀k…æX|µ¡9gΜ¹B¬[´hAii)yyyuZxùùùäææ’žžî Ï‘$‰‚‚bcc±Z­=z…BAUU•·þþþ´jÕŠwß}“ÉäÍ©~ùW’$¾ýö[‚ƒƒ)//Çl6‹NÜ@ˆª97˜ë©š³þH9±Ajä2 W¾,7ZœÌ—œKcccñ÷÷G¯×3pà@ ‰‰‰dffKDDééé¸ÝnŒÑh$>>žøøx‚‚‚HHH **Šøøx¢££9vìÍ›7'&&†áÇçÝÖ¦MiiitêÔ‰ððp´Z-z½ž#FøÔº»Ëö™HÔÔÙFÅUNÚÄh‰ ¾T5'11FC«V­hÞ¼9:Ž””œN':t U«VÄÆÆ’@tt4~~~$$$’’B@@Z­–»îº‹ððpèÒ¥ n·›6mÚ’’BË–-‰‰‰!$$„ôôt¢££iÛ¶-2™Œ´´4úöí‹^¯'!!àà`BCC‰‹‹£]»vX­VZ·nM÷îÝ—2óMQ5§‰p=UsöäV³õT%õÍFû«eŒìL¸á·{(Ö¯_^¯§W¯^¿Ù9ÖþPNvQý¡9a%wµB¯QˆŽs“!ªæÜDd¶Ð‘ÙBwC¯á÷¨<¸m ƒÅÏ-sX‚_‹ð?Á\V7K÷˜ØŸWJ)ãþN!$…_Zâ—Ë H§D¥hÚ¢R\éä?ßSPæ@£–ódß.þ)2‚´Š&‚$‚uSóü²|ª­Ð+É@¥ÍÍÌ•…˜m—&é% ^ÉÝ5·µk×Ò¿ÿkz¡WVV²e˲²²êµ¢¬V+_~ù%ÇÿMÛyÏ{§ÈˆÑÓ¡™‹UNÆ~”ƒû²>¹>x¸…OŠ™ú°Ûí¬[·Ž¡C‡²jÕ*†ŽB!澄` ~sªíFvÂí–Ö*yüg^íå67¹&»Ïð-""âºЪª*6mÚÄwÞY¯`Ùl6Ö­[÷› –Q#§G’ÉÁZ5Éý}«í/°Pjq]õ;²³³Y½z5Ï<ó ¸ÝnÖ¬YÃСC…` Áüœ/sðÖº xê‰Íqý,4ÇãñðÝwß‘œœÌ¬Y³çĉ 4ˆ´´4>úè#ª««¹÷Þ{½…'.\HFF©©©¼ýöÛŒ9’ 6ðÃ?FUU.—‹µk×òÍ7ߘ˜È¸qãÐë.O×< ¦Ò õVÍ1;ÜÜÑÆècùýíoã•W^¡ªªŠ·ß~›€€V¬XÁÃ?Ì7ß|CFF†è@B°¿'*¥‚Ð0ÿ«X`Wzdçååár¹8uê#GŽdÈ!Ì™3‡}ûö1pà@bbb|*å\¸pªª* Æ©rÇŽäääðú믳}ûv~üñGJKKÙµkÓ¦Mcþüùlß¾½A‹8hýTÄ„×_5GVîëúáñx¼N£.—‹œœ¦L™BII æ ‡R,ÁZFJTý)Mʯ2L  11ǃL&ãâÅ‹´lÙ’°°0ìvû^à’$a³Ù0›Í$$$`4iÓ¦ :‡ÃÁîÝ»‘ÉdØl6‚‚‚´:ÅUÛ)Éêo§Óé¬3”F Kð;£QÊH ­ÿ§ºXGhŽerÙÜTŸ>}xçw0èt:FŽ @LL Ÿþ9¹¹¹ìß¿Ÿ1cÆ0þ|>øà 0›ÍF:wîLRR'Ož$$$¤AÛiÔ\½eß9(µZM`` ï¿ÿ>‡ƒÒÒRÔj5§NÇB°7 ½FŽÕéB^Ïr¾Óí&H{é§”ËåLž<™€€¦M›†N§C’$¦NJ‹-HLLÄápкuküüü˜4iQQQÞ(óæÍ#11‘˜˜rrrèÓ§’$a0xæ™g8yò$½zõ">>¾Á-I›ËUïä¿ ~ÊKÛT*Ó§OçäÉ“„……1`ÀbccyòÉ'Ñëõ<ÿüó¨T*^xá”JÑÕ…` ~&ÝÁî3ÕõÚPQÁ*†´ ò±¨jÅ'99Ùûy«V­èر£Ïñµõ333}>‰‰!&&Æç³ÈÈH"##“v>Ý?’ÓíõæÃê@»Ý5¯§{÷¤øü+‚%øèÐ\G‡æº›¾ÒŒ ?·@– )àr¹¨ªªòFìK’„L&C§Óáçç'n@VSÀTíbÉ.?XP*dŒìDÂe¡9 DÕ>ó;M²&ǧȃËåâܹsÄÄĈâ!XM—ŸÅfƒ® zªìnþ¶¡ˆ Û¥%|·$ñÜÀîëtiÕnãÆ¤¤¤°sçN À¶mÛ:th£n§Óé$ÀhD­R¡T*‘ÉdÞL¦gÏž%..®A&ÏOœ8ÁŽ;¸ãŽ;8zô(ˆhSAätoXnîj@ˆNF\°’GºóL¿0ïk|÷Ζú.ãïØ±ƒòòr©¨¨àûï¿o•$¤Ÿ^ …‚ .PZZÊéÓ§äË–-#-- ­V{޵øç?ÿÉÁƒë¸l‰Y³f‘““#:¬°°nmΗ9ùë‹ê­šã’$îïqeMB»ÝÎÚµk7ndêÔ©(•J¦L™BTTT£m¯Çãñ:ºj4Ú¶m À©S§|…Üjeþüù9r„æÍ›ó?ÿó?äççóÁ —ËyðÁéС'N$..Žââbüq6mÚ„L�-[¶`2™øâ‹/P*•”––òç?ÿ™ˆˆöïßÏâÅ‹q8Üwß}¬[·ŽÒÒRZµjŬY³0›Í´hÑ‚)S¦°aà ýû÷çÀŒ;–M›6áv» à³Ï>C’$ÆŒsÅJ­@ÖMƒZ© ,ü—…æÔ>ø@M.ò?üálÚ´‰Ï?ÿœI“&5RKò,¨qÓ˯ >|˜óçÏ3{ölV¯^Mee%}ô&LÀívóÉ'ŸÐ¾}{òòò˜3g;wîä»ï¾ã¶ÛncذaX­VŠ‹‹Ù»w/S¦L!<<œxÀ'ëå–-[HLL¤{÷î¸Ýnn»í6ú÷ïËå"--Ž;2sæL¬V+}ûöeذa\¼x‘’’ ¦®¡ÓédçÎtéÒ…ÄÄD±€ †„77µŒäHu½¯„ðk§FnÞ¼9ÁÁÁ$''S^^ÞxG„€ËíÆåvãþéU[‚ë祕••Þüñ¨T*Ìf³×éÕb±5åÀŒF#ÁÁÁuæ ·Ùl4kÖŒÀÀÀ+œaïºë.´Z- .$;;Û;Tu¹\lÛ¶;wâr¹êüÞZ+°¶>bUU‹-"77WtjaaÝÄ‚¥”‘V¿(]+4`çÎüë_ÿ";;›ñãÇ7^ÁòH¸Ü.¯µ%—Ë‘_fi]Njj*«W¯æ½÷ÞóÖ8p ³fÍB©TÒ¥K—ë:gûöíyë­·ˆŒŒdÿþý,^¼˜»îº‹}ûö‘——‡^¯Çn·£ÓéØ¿¿·dXíÐ;77NÇÞ½{ÉÈÈ`Ïž=,X°€72dȶnÝŠÉdÂß߿μå!X7 9åVõe)®¶»ˆ ö]òŸ0a̘1ƒ¨¨(-Z„ÍfcÈ!Þ ™ d2ù%q’¤z=ߣ££™>}:çÎcèСDEE1räHÒÒÒ€~•JÅË/¿ŒR©¤M›6$$$àv»½ÛãÆcÿþýèt:t:D­VÓ­[7Ôj5YYY$%%!I­ZµÂb±pñâEBCCyå•Wp»ÝôêÕ‹   {ì1Ìf3ñññÌœ9‹ÅB¯^½0 h4²³³Q©T¢ ´¬››Éý#ÙŸo©w{¸QÅíiFŸÏjW¿jóU5…ð­VKQQQ=B&«3{jTT”Ï‚J¥¢M›6>û$$$Ô¿Á€Á`¸âœ[·neݺu( Ú·oOPPáá5É•J¥wÒ¿v.°6èûò°'ïoñÓqumëСƒèÌB°n~Ò›iIo¦½éÛLppðï~Þû￟ûï¿_t4!XÁõãr¹0›Í>~Xµ–QmÉy,A#§¨ÂÉ¢%+´¢”ËÒ6ˆø°KKã 9´ñC£jÚ‹¾%%%Èd2Ÿ·ÛÍùóçiÖ¬™pÁj ¼ôEn'tŠ3Pmwóþ·©²]Ztz<<}{8d^;¡žÛífÁ‚Œ3¦NߦmaÕš£Õj9[p–¸Ø¸)ù~ìØ1¶oßNVV‡þ]ŠÄ „`Ý2Øn†¥âtKú+x #Ðg{¥Ý͹²ë˰év»Ù¼y3?üpãlìe¡92™ …BAQQ.—‹3®3uNfÿR>ÿüs²²²0 zÅT «IRXîä_›Šë­&ãô\šóöÛoSZZJaa!111\¸pV­ZñÄO5ØsçÎ¥W¯^X­V¾øâ oØÈ¦M›p8Ñ©S'Æ϶mÛX¶l’$1eÊŠ‹‹½®cÆŒ!>>žüãTTT™™É#<ò_[p?Í©]õûyhŽÅbaîܹœ8q‚ÈÈHž~úirss½¡9<ð;wfìØ±$''SXXÈã?ÎW_}…\.G§Ó±yóf X¹r%*•ŠÂÂBfΜɇ~È›o¾‰Ùlæ¯ý+O=õ/¾ø")))<òÈ#¬^½šC‡‘œœÌ£>ŠN§U–jBs"Âë_%¬¶_Yœ¡´´”ž={¢V«ùì³Ï˜={6“&MÂf³ðÚk¯‘ššJFF¯¿þ:]»v%>>ƒÁ@II ýû÷§S§NLž<™Ñ£GóÅ_pß}÷‘““ (//ç‘GÁh4rüøqÎ;Gyy9“&MúUžô’$áöxÕšósÇÑÇSVVÆ_ÿúW6lØ€ÅbaÞ¼y<õÔS¸\.æÎKff&&“‰§Ÿ~š]»v±mÛ6ohŽÝn§´´”Å‹óüóÏƨQ£p:{ų¸¸—ËEYY&L °°óçÏóä“OòþûïsüøqQNL– ZF«ÈúçnÊ-u{”FGGc·Û‰ŠŠB¯×#—˽«o;vdÇŽTUUñÐC±cÇ–-[Fß¾}HLL$$$­V‹ÝnçÌ™3lݺÇCjj*›6m"::šÀÀ@oðàÁƒYµjn·›îÝ»ÿW–xÜnd22.y»×•罺ºšàà`üýýiݺ5 …‚ÊÊJââ⨮®öŠsLL ÖBc·Û‰ˆˆ@¯×_‘½Án·{IJJ"88˜œœ²³³Ù°a¡¡¡ ^=H «i Ö5BsJªÀsМŸS;éþñÇc49wî\Hü$ ÿüç? Çh4@VV………”––Ò­[7zõêÅœ9sËå´k×­V˺uëhÑ¢®«’¸¦`ý‚М´´4V­ZÅßÿþw²³³yíµ×2d3fÌ@©Tzs»_‹N:ñ—¿ü…ˆˆ8€ŸŸF£‘Ù³gãñx0›Í>ûÇÅÅ‹\.Çl6×éÐ*ømõ~æcɯE7¦öÑÑ5áÊ*¾EÅyõÕWù¿¥KÄÝú °ÛkJÌ[­¾EB7ó'³3}útžXCR¨Ÿ÷Á½ÒÂrÑ"\Ãøža—~·¢"ŒF#’$yƒ„Ïž=Ktt4çÏŸ'&&›Í†Éd"$$„ÜÜ\T*111¼ôÒK<ôÐCøûûÓ¬Y3ŒF#‹…üü|T*•W”òóóñx<ÄÇÇ£P(((( ªªŠæÍ›ð‹ïEAAz½·ÇƒR¡ðZV2¹µJE^^ž·`†W¬KJ¸páaaa„‡‡{ ªÖ ‹Z­æÜ¹s4kÖ «ÕŠÅbÁívc4ÖDTTT°mÛ6BCCÑëõ¼ÿþûüéOòæáªµÊ"##)))!** I’())¡¨¨ˆˆˆBCCÿkàíÿ§Î8Ëgªxc£‰‹‡¿VS`Ê€HXëÝž¤Ôл•oÈIm>'¨ 'šŒ —ÿëïï復¦z­šôôtâãã}¼ÎµZ­OxB¡¸"&...îWµS§Ó]54§6ÌèrBCC õ¾W©TÞê@µÔ¶Q«Õ^a Õ:¤.]º¹\NçÎ B¥R]Qw±6H&“FXX˜èœbH(ø9)‘þ¤Dúÿ>&·LÆ£>zCÚtCæƒFŒÁˆ#DGkˆ|X@–@ ÁB°@–@ 4b•°SQYM‰©êqñq8œ|òñ<&<ö82¹ðºUp8œ,Zð Ï>;Ù'oX-—û„ý|ûÕ¶5Ô±—oóx77FCdd”W¤$ä³àæÆfs £©XÔ5×YYeÁíö°kçºtíæ»‹týß&æ°šùùyLxt,yy¹âfš$«V­àå/zÓ)B°šÌ_USž}šœœ3âfš,’$±dñBæò±¬›FÃ+¯üN/n† IÓ¥KW5ZÖÍNû™¿p áaâfÜê–Ê/™ø¹ÁWz9ݺugÁ¢¥WÔ‡¼^Ĥ{S­ö¢§ é2tØ]¿êx!X˜êj [¶mÃf³×¹Ýn·c·Ùسw/åæ qÃnìv;·§I\«Ç#qøðQJL¦:}·¬VKà րþëY-¥@=(IDAT}ÁÕq¹\u–®20èØ¾õ»«ߺu*›¿þRÜÈ[ŒÛnë‡ÓéôÉ \Q„öòíWÛV×öËS\_ëØËSO_¾Íf³²qÚ«¶¥yLôu绦`EEF0ú¡Q"£âo„J¥ª3Ïx·®™ôîÕ]Ü A“Æ`0ðꫯ^×¾ǵŸ¯)XGXW7Èòr¹\âF—!V ,@ hhÄ*¡@p’ÍÌ™3iÑ¢E“¸Þ¯¿þšY³fqÇwÁn5œN'Çgè°‘þZÍærÖoØpE©»[Z°<‰Ù'‘$Ñ™7ƒžqͯH9c­Ç‡¯Q VE.×õ¥Ê¹eK’<¼óλ¨Uòÿ:,@ h¬Lš4 …BÑ$rdýn¹!áÌ™3½…D‚›«ÕZ¯'¹,@pSb·Û)//Ããñä­Þ¤kÞ¼yäääxß5ŠãÇ3tèPÖ¬YCVV~~~âך0‡ƒwßù‡ c€‹%&&=õ,ÁÁÁMK°öïßÏÔ©S @¯×cµZ‘Ëå|ýõ×ôïß_–@ÐÄÙ¸a=I‰ <4z4Õ›¿þŠ ëV3xèpŽ=ÊÅ‹‰ŠŽ&#£2™Œ];wPRRBç.] gûö­ ÕäœïÕ»!!!7F° Fd2‡7’žžÔ„ï¬Y³†mÛ¶Å#<â·‚‚Þ}÷]´Z-‹…ÇœÂÂB>ûì3 <ð<û쳄‡‡S^^Nll,gΜaܸq´iÓ†o¿ý–M›6¡Óé˜8q"Z­–E‹1~üxÑË‚@’$²³O0~ü8ª«m¸=ÒÒÒÙ¾m %%Åüçƒw˜2å9¾úú+TJN—‹³góhÞ¼9Ïû/Íx•?xÇ{œƒ–Oÿo1O=5·§a³J\—§{II ¯¾ú*Ï?ÿ<ÿøÇ?¨¬¬äܹsÞI¾ªª*vîÜÉc=†ÇãaÛ¶m>câ‚‚¦M›Fbb"‡ÆétòàƒÒ¾}{vìØÀÅ‹;v,ÕÕÕôèу޽{sèÐ!6lØÀÃ?LóæÍYµjjµšáÇ‹^&4 :S‰É+2UU•økµÈerz÷îMç.ÝèÖ½'ùy9üpè ‡dÓ—_²oïô:-Íš5£WïÞ´ëIuU ¥âÆXX¡¡¡Ìš5 £ÑÔ8¥]ŽËåâÈ‘#,[¶ »ÝNhh¨Ïö–-[¢Ñh B’$ 8wî€w(i4 B§ÓCyy9f³€£G²råJ\.;wF.—_q@ðß#“Éèû>ùd}”€€>ùßyÜsÏݸÝnöíÛÇùÂB:H§ŒHÈÉì”A«VÉ|ÿýw¸\n ÅO¥¼~»Õʉ%Ôjµdff‚Ûí¾ê$$I”––¢×ëq8äää\s9¶_¿~FØív>ûì3ÑË‚$)©%=<–¯7mäÿ–,dÔ¨QtéÚ»ÃIXX çL\óz÷îËÀ;qäè1æÎ›Kjj.·›:¢T©ðóó£]»ö¿É5^—…5eÊôúKÅ”J%Ï=÷*•Š©S§ÌĉÉËË£ÿþ>\›5kƸqãèÛ·/2™ ¥RÉ©S§ ¤ºº™LÆ´iÓÐh4Lš4‰ÀÀ@:vìè#?~<999èt:’’’ðxú¨×ðx<ÄÇÇû(æ™3gøê«¯HMM¥gÏž”——³víZ<ƒ ò¦4–$‰cÇŽ±eËZ·nMff&_}õcÇŽõ~×Ñ£GùðÃiÓ¦ ùùùôëדÉÄÉ“'q¹\¸ÝnΜ9C¿~ýHLLäâÅ‹¬_¿ƒÁÀ°aÃ$‰Í›7sÇwÔÛ¦ììlâãã±X,œù¸$IbÕªU\¸pÁƒÞ={ؾ};­ZµâÎ;ïôÆI>|™LF\\§OŸ&&&†=zPTTÄÞ½{éܹ³x‚u ËêUœ;Wà}烈ûY®º_ŠÃáàèáÃÌxåèt:ºvíN»vp»]L™ü4AAØív^c6kÖ¬b÷®„††’ŸŸÏ´ç§³dÑN'.—‹ç¦½À™3gøâóe8²²Ó¦m»½×eaUUU±f;øâ ¾ùæ,‹7Çzí¼dɺté¶mÛØµk .D’$¢¢¢Ø»w¯÷»L&ï¼ó]»veóæÍ:tˆ„„ovQ¨ÉRGTT›6m¢¨¨ˆÍ›7sáÂÖ¯_ω'hÙ²%sæÌÁãñ°dÉâãã1™L,_¾™LvÕC‡¥K—òàƒÒµkWŸ¢uqôèQ>ýôS>ýôS~üñGªªªX±b…wû—_~‰Ùl&))‰7ß|›ÍÆßÿþw:tèÀÁƒ±ÙlÞ}¿ÿþ{:vì@·nݘ5k¤¤¤°gÏñT ê¥e«V,Y¼9³ß °ð<‘‘ 3Ô”$ŠK+ç……çq:] 6œ¾ýn£¬´‹¥fÕ©S&ÏN™FpP{vï"¦y,/Íx•»ï¹¥R굫i×®=éémX·nuƒßƒë¬Ú2_AAA\1µÙl|ÿý÷,Z´ˆãÇS\\LçÎ9}ú4»wïöI™\ZZJtt4íÚµ£}ûöäåå¡Óé¼eÁ ÆáÍß߃Á@Ÿ>}ظq#?üðƒ×ú4h=zô@­VSUUÅwß}ÇÊ•+9xð 999( 222êmOYY[·neñâÅ|ûí·¬[·îªÃ1‚ƒƒ ®³îøæ›oX¶l?þø#*•Šnݺ±råJ´Z-*•ÊG°k-ÕÚvÊårŒFãM¬*h8’“S˜ûñ|5šé/Î@s••ÃëÅÏÏèèhvïÚ‰Ãá /7—ÿ|ð6›•¯6}‰N«CíççÒ‡ —ËQþÔ§Ý7’$Q^^†ÃáÀív£ñ÷'((˜^½ú6ø=¸®!¡¿¿?={ö¬·jŽR©$##ƒ)S¦ðí·ß’œœÌñãǹûî»9}ú47n$55Õ;¼ÌÏϧ¸¸˜#GŽÐ³gÏzçz$I¢OŸ>Œ1‚¾}ûz'Ç¿ýö[ºté‚ÙlF§Ó‘žžÎèÑ£ÉÏÏÇÏÏÇCNN‰‰‰õÓÒÒøÛßþFuu5O>ù¤Oe럓Àí·ßî}_\\ì³½Y³f´nÝš´´46n܈Û]ó#>ûì³<ýôÓŒ;–ÀÀ@"""0™LuŠhíD¿@P‰‰Iüùõ7ìûd2#ï¾—÷ß{‡Õ«Wàt:ÉÊ‚Á€Ýnçûï¿Ãétp`ÿ¾Ÿ¸tlz›¶,_ö)|u~ :d0ðÎ,>_þÄ AC¼çø]«wïÞ¨ÕêKf™\NŸ>}P(ôéSSáõÞ{ïåwÞ¡]»v$%%a4™?>J¥’1cÆx g„ ¼ûî»tîÜ™ž={RYY‰N§óîc0HMMåĉ¤¤¤Ð²eK àcÆ.[¶ŒéÓ§£P(?~<‹/Æh42~üxoY¢úËb±0nÜ8T*Œ?“ÉÄ€hÖ¬™w¨[ó%˜.]ºø¯ÕjéÛ·/QQQ´oßžž={òÑG±gÏFå]Iü׿þÅèÑ£}VÿȲeËèÕ«—ÏyðàAŸ6 ¿11ÍëÁýû½zyù•?ðÒŒW}>ïܹ+;wõùì3ÿüû ÖÝwß}ÅñÞ{ïàž{î C‡>…%"##yá…êTôÎ;ûL.2äŠïŸ8q"‡ýû÷c0hÙ²%2™Œ€€† æ3GË‹/¾èó÷Ýw_½íéß¿ïk¯)))É»-**Ѝ¨(Ÿýõz½·ýµÅ3&Nœè³ÏÀ8pàçnÑ¢”””æµØ‚ƒƒINNO@ðkëFR+^µCªqãÆ5i%™Lƈ#|æµôz=#FŒh?ÁÍ…$yØ·o?&“©^×€ŠŠ['F¶Q –\.§];ßeÑŸ[;¿„®]»áöÈ(-»ñžÁN—‹Õ7á¿ÝaO¨À‡ÃÁ×›¿ºê>ÑÍ¢‰ŒŒº%îÇ-U„bÂø± :(üÖè´f¾öÊu‹›¯u%%%¾ÕÕUB°êâr(àfgÉ’Å|ùå¦&q­!!Áõ޲\.÷­)XÁ­Äˆ#1bD“½~™L†©´œ“§N5‹lb–W 4:är9eåfN>CZê¥Õs!X Ñ‰UñÅÎääѶM'²O ÁW¬Î^ 5¹%‡#22B–@ h\Èd2JËÊÉ?[@ËÄŽ=Njj2»C–@ h\–Uii9'O!=-•#ÇŽ“––Ì™œ<¬V«w?e­²eÛJàFàt¹9uê ©©­XúÍ1¢"#ùæH1V› —. ™¬ü’`I’‡åíHR•¸sà y%@ œ©Ñ “™‘¤šôOÊêŠÒÏJ÷¯»·¾÷@Ðp;,Ÿýý*Ò¾€2ÏIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/foreignkeys.png0000644000076500000240000000723312536324522021766 0ustar philstaff00000000000000‰PNG  IHDRÀΞ†"…ÑPLTE€€ˆ  ˆ\ˆ`ˆdhh˜l˜l p t¨x¨x°„ÀŒÈ ˆÐ  $ $($(((((,((,˜0$00(00,000000˜0408488888<88< @4@@<@@@@@@ @D@H@HHDHHHHHLHHL¨PDPPHPPLPPPPPP¨PTPPT¨XLXXPXXTXXXXX\X`\``````°`d``d°h`hhdhhhhhh°hh¸hlhplpppppp¸ptppt¸xtxxxxx|xx|À€t€€x€€|€€€€€„€€„Àˆ„ˆˆˆˆˆŒˆˆŒÈŒÈ”˜Œ˜˜”˜˜˜˜˜œ˜ ˜  œ     ¤ ¨¤¨¨¨¨¨¨Ð¨¬¨°¬°°°°°´°°´Ø¸´¸¸¸¸¸¸Ø¸¼¸À¼ÀÀÀÀÀÄÀÀÄàÈÈÈÈÈàÈÌÈÈÌàÐÐÐÐÔÐÐÔèØØØØØèØÜØàààààðàäààäðèèèèèðèìèèìðððððôðøøøøüxøüø0¸ø¨ðXÈø8P©mIå …IDATx^ìÀ ðù70@-:ž¼¬“«Ÿ=ó[m†âð¹(#­%= c ”:‚sÑ…vÛLY3RÆîÆ`°=@w1ò8¢ôi{*»ùq"Q—R ®ôY²tœ›£?7˜Ä5]ñCI$‰ýžÐívM§Ói·³=aWh=Žç˜‡Ã^¿ßw1O$ðËÁ|Êÿ^qÓHùh9˹drÎ# ,þ,Þ®õkÎ@cxÔM)>³Û½áX݉Vdk ½£V ÏÏó “c *+¨€O`ÿ…ØJéeYf$ @© 6¸k¼\}\0_N%h„@)‚j ê± <:/9Ê~qBŒ©Ä”Þ"_ ¬}'Ÿùm¡J$YO ÀPƒZ ŽA˜¨^ÆSŒ75 Ÿx6ßá"¯T9hmo/t°6ã „’@ô†ZäóvÁh÷Dþyù°8úÎ%k‡/°*41šBµ@̲ ˜^ˆ@ɸžìDHlKq¥V©&Ãù¿ù·ß‹1;¨DÊœBÑ ¬BQa<<ÿ"&-r„"ÿ¬ <œ1¯>|}Ç@Ü9j×@©zôÈì ÆSÁ–@ø ïBÿ°p¶˜åHT¿ … èA-½Þ.ûИτ ÝÜ!ß_.~œ|*üs`âiw¡RÌ`0hï Æ˜Ý,ËZaèŽûòøþòúçlÌ  Fà›c®Xަ§Ü4’À S ¦ÿŸ•$°ÕHxÃÚÂ@=‰f©NÕºÀ¥é´H ¢É½¾øÖ‘pD?ç@¿áPã;vÔš6‡qø%Ùõ`!™aöfX Ь½XñbZ褬»¨ÐŽ™cjЈ‡æ÷öÆØ§(‘"+LêæÎ’«——‡Ã9ÉÏ#É{Úzt†Íø—m†´€ÐZ@ h- ô_ $¹a+ÎP”+`rºò÷A)—Œq­à”{<8Ú ˜¯Ç~”`£›;  îü®`äugÉ ö7íF~€¦8QÕu*1¨8¥þeÑ ‡À‰çÔ͆M±Â“$åÀÓ(+ÀÆ9ËIŽ\÷mвN8D’@ç¾özÀÄ3O 8ñò¤_^Ö-ÝÞ™fT›˜Ž[Ÿ˜vÚ•©9<Þ0Ã×t¸¼¨énTͬ‡—F´ªq\iݬOM ÆŒO%à茧Lœi¤9˜ ˜å ‚ÄÞ†ŽX(„†n³ì± c?Kë¤ï1P¾bìvf’¼ê#ì¹R™Þ´˜ìW ¯õŸav=¼XIêá'\itwg†/ÀïÌ: ?ÈpL?ëÍG]Bæ{àj˜ýÒI<é)´éE¹òþPP¸N¢ú:`§1¬o˜1/9fq •ÀU:e/Épìuç‹Sè»jï· Ü6Óûu £`Ovè;€Šà&PÐ]ä4pJ½ 30БW Î Г:ö`tPpÂܺîQßBù÷뜺Zퟘ 2 î|K=ªW›ZÀ5·Ôã¢ÄÆ€0ÐÞ|;€ »h3, üÍ”„PýGÏ–ÚTØ"¦µˆ xð˜Ã¼q¸FUc 69éÀ`׎]Û¢Œ?„;a\P–š!äÍ‹‚ñ(!)ŒÁ…%%cL‘ŽÒ¿¶EÑNµÔ$ê»ÑÃû†Ç“…žë[Çë¿h£ ø‡Ý¡€ ¨€ Ø–†jCPPP (/PPDª€ˆHÓ€Rž†ÓÈ÷£´Q@é Ï{«€ÍM7²`žçó k0žþ߀·¡gæ “ 3²ÀyÐæ 3ãí§;6â ÀäØU ûþØÖ˜‡+*“åÊHoUê¦=¾×ßp¸Öݼ}€Á]A¢í6:ƒ‹þ:€ ×ÅÅÁŽ`°éº œþ õÏjäþÀV&K¼ådÆÚ/˜~.ò1w!0žÐ"Àò€™®$ƒÌ€YÁ6ù…·kÃXÏU ›AÖ­³óÊdÙ@2ä2¸f˜Pp° 3E wàà 07 €õÀ{r©éºŠ Õh÷ïÝd 7ì%‡˜‚/‡$$žÒB@à¶‹»\_êÙ±«4rY…¹›Œ-?°ŸYæäì÷lãÌÞ ƒrr=Útèky u8-Cõ2=v“€‰™qe&ð.±C–ò©Áÿ"Àò—³ï½ðîé)´.··¬ 4êt¢Wbäûã¢f@ún2ðÕÛ²‘’ž×›•€ïm›ßÄHëß…¼b@œ‡¼b@”ÞC«µ¡€ ¨€;Ô†*àè·óâð'ûæóÓDЙÝ-zö@M-)¢Ô¨‰6­$ESÔphUˆ˜hÄS°EÛ‚–n'Æ¿VùòMv·Ùƒéþ g8lfo“— ›çè;K52äÿ§NÂnä?ÒFD °‹QOWFj`ô#ÅÀ( @1PŠb ( @àgäÒ€(ÿ%ÝÀ7·²†5:íXÍ[Ó±´¥´«ìR”¶¦sÆðøúñ{üþÓê8L¸æ×;3ù¤D¤ÚMD,Ԣȶrå†ýs-Ìg¬žÀ³cÄûUõ8 ‘]´N¿ fàÝmDÜ.Ætô|Ø´w.¨Ý\øÑ.ñ›¾ ,VH ‡Uúx3Îm.ªÄJÅÉ—Jaœ‡lÀÕë1ä~GU=ÎB4{,3÷®á=t\IÍÕÔþ|c$½Èoú60£[«ôp»Ñ© ©ÄÊu”Ú¹T ÓÀå,¼ð¬ç¾E Pq¿CÐ"^œŠ!˜øànLy¦S¶Ú›g‘ßôm aë¢Ù «Z¤ë*N¬ø(Þ¹T àS žyÛˆÍ\â2û r½Û 4÷§öMØó$ùMPÁ/¬¿ R),€kW`ì7nYÎÔ)6€Üï/¡ˆO¨¤ðØ)Ä´P 8YÑ}Â*ð»K¥Ð–‡¬™ž6b>û•âÈýy–Ù¿µÏD@‘ÕæRgV€úwà‰…À62åïöaüÂ*ð»K¥Ð‚@Ps@îw€È³t‚ÿê¼´c7yš‹ív)°Ô(fÔÿ>aø]È¥’|Hæ×.•’ P¾Fp©”L€b —J P ”6B¾ @1P ÅÀä×IÒFH$ó‡½;hqŒ¢0>ЏvŠ*˜Å„2Y”BÜ .)‚ÂP\u°‹"X-šB)3ˆ8H% ’–ñ×*‘ËMŠ› ~Ÿ}Ï"ËœÅCèêôîÝ:‰…®£  € € 890wúª€‹Ä„s·€ÅIׄG«×ü݉@­mL<Ư–ËaTìgE1>t 8x±¶×óÄG‡ÀZ[wÚõ¼NZ™Ýç¦åÐÈ8G§;ºçqÖ¡™ôÚ‘\V’yQC@m³‹ží-¼.ŸînÎR·€ýãË’P§;ºçqס¯×kGrYIæE µÍ¦çv–ú ‚ð]0ÚŽ×Iß^ƭΨؙî”ã®C_¯W\ä²’Ì‹jÛº½ùÕ¶öú>‹ê€¶'îwßWÃAmº#º2rYIæE µí´|Ï©ïß@Ï ])ÑéŽ:ï¨rY©“7èè|þ=§Ô¶òã+?CO€ƒó‹ìI\<¾Úæ#Ç Ýd~móQR›îÈÃCG厒\V’yÑÍ:ÎâËíöc<ѶY*?„žÇÝ L³*à<2m×ÿR±: Íýa^›îÈÃCG厒\V’yÑÍ:ì42&šZmëeeAÖs ÈÙ¢ÅÙ[ 8Mn3 €Aô @NH€ €{¸N¢ƒu뤋?ÅþW!H$$@ @  HH$¸HH$H$$@ @$@ @  HH$?Ù£c`œÜ˜BA-ç°°dµÐX„ÍHHJ®=:¨†Ô“SËãT,Y-´XÂ*4=¸%ÑsKø²IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/frames.png0000644000076500000240000006220712536324500020714 0ustar philstaff00000000000000‰PNG  IHDR˜K„_jdNIDATxÚí½{PUg‚¯m{ÄÆQ1âQ5ú0²b·9tF;X¥$$±ã#Mjú¤û¨Ç˜˜²rNu¦ÕhT⥛6eO@QÑ ˆ *8™ˆ¢q¢6 ¨Ø rÏLÕü1×|¿vu¯ÞÙ°7k߀ ÏS)kíuùíw¿a¯g½—µöûÐïB l@Ø6 l„ 6Àö7à¨gê™zÏë6_}úúõëÿã?þc@ {ÈóŸÚ-¸Çø×Ž]¨i2_Þë윺üxgçŸw8ÿÛ¦ Kõø^îm2øyÁ•”w+ŒågÖV¼¿ÿ Âö³/^{{û¸qã¶lÙòÿ°uëV½ìèèàçu{ì±uëÖ]½zaûÕmJJʹsçþíßþíÚµkO?ýô{ï½G={çž{îïþîïîܹóïÿþïºÄ_°`ÁOúS„í„ô_æù­ùòôW·xæ«Ûæš­E¿ÍøàKëVîºó¶wtŽýëÏþþëFãeÅå;Ñý¹V"lúâ½óÎ;o¾ù¦í½\»v-'8ŸJaûˆ5kÖØ6©£¢¢¨g_ÓÚÚúï|g` ÛCvט>ëòþñá¿:ªÍ5‹×ÿîÏ~çɄ󢨸ñßWŸ¶]óÝ•§ +o lúâ=ñÄUUU¶kôR+9Á!ì ’¶¶¶ˆˆêÙרOnĈƒ¤…­…Ücµ3þçÉ—ŽD¼|4íÿþ}ýíVsÿ½§®'üädð¨Û¶IýõõæÉËŽ›/¿¿æÌ;¿¹üôš3æíõFKWõn/®™˜U´ðHìÿ(Ý|øš±IÿÚþg¥`?þ°jýÁ«¶í®¼¶¥ aûÓO§³þç¶]óOÿôOÇ燰€HV¯^••E=ûõgܼysáÂ…ƒ§K\ qs¢ôü­Öö{u¿oU»9õ½³Æ&5X#_)Î+¯oi»Wùw¤Øüòz3*&ëXí­?´¹íÞè}¦Geþá_­¹v³eRvi×7ý¤¬^!e¯÷:Yý{%8oa;*˜ÐeÄi›x£Wüñ7˶?}ñþó?ÿÓv& :”Âö÷zÎÏÏŸ6mš_”ÙOëyÈŸÐü>]èaWýöÏÓÇÛÃÿꈱ<ûŸ²5tùÅßË æKtω:-:{ãÙÿó•.xﬖµ –ñ«›Ïu}Ó™ÿ«ÜØÁ¼ p.lGßI/¾ÙØf»ÿí»#^)AØ´°9Á!ì>fß¾}1117nÜ ž}Š.÷÷»ßÍŸ?ÿÇ?þñàvgg÷û„-:b×YðB‘¹ÛÎ’ß-ß~A ?ÙUýá§×´°éð5-kaÉ–*9»k`èKGŒ&¸ÁÝÖ{Î…í¨`bè‹EvSÌ4S=paÂö§/^RRcØ{€ÕóÇ<~üx¿¸Aqü=ãÏsܶ£}4xÜØÒá(êÊõ–Ä]ÐêÖ².×5ÇÿÍI-L{ýxMC«çÂv²†ö@öÛo¿Ýu–¸¦Žs‚CØ~ZÏÛ¶mSÛº¾¾Þþ$ü]ØwïÞ9r$žµòTɹ'iS–ÿªî®ôl»æÜµ&Ý“Ým “.ñ‡^pÖžîºF“ÑN]úÖ¶n*Kd Û¿¾xº4ŽŽŽ6ïÃÖÉnìØ±ZÉ aûc=¿ÿþûS¦L¹uë– Ïïê9--­¢¢â_þå_þõ_ÿµººú/ÿò/ßzë-„]ôÅͤŸ–¨þ½&5µÜÓKóA%™›Î½²ñË×tŒdçœáç_,ùölm3PcÞÆ¤³¶ûIgã–|~ôlí\Øýa•¦…ÛnýÛýW–ne–¸¿‰DCPzÀ™ñ¤3=¡¦¦†œïTm õìë6èÿÅö»z>vìØÜ¹sàa5]èûéå¼+lQüeCò[§5ÛK½ÙšƒVpæºíž¿üüw6¶½ûY;¨­¼»´ÖQà¶#¿•§u”ím]â×¥µzò‰ŽµX°ƒ•7žúßߺûÉå‡Ïr¶?wmÑ"ê™z<õûì°¤¦¦ê¥·þˆ/]ºôÆoDFF2Ä‹_ÊÊÊW^yeôèÑÁÁÁqqq999ÿõ_ÿå•äÂÂÂ^xá/þâ/‚‚‚¦OŸ¾~ýúÿøÿðVmPÏÔ3õL=÷‚°‡<ÿi›íãäX+ŒíØ…š&óå½ÎΩËwvþy‡ó¿mš°ô˜õrºQŸ\Iy·ÂX~fmÅûû¯ a···7nË–-ÿï[·nÕËŽŽ¯|ñ{ì±uëÖ]½zÕ»_<¥¥¤¤œ;wîßþíß®]»öôÓO¿÷Þ{^I~î¹çþîïþîÎ;ÿþïÿ®Ђ ~úÓŸz%™z¦ž©gêyÀ ;}ã—9G~k¾<ýÕmžùê¶¹fkÑo3>øÒ“r:/a{GçØ¿þìï¿n4^V\¾ýןkåö;ï¼óæ›oÚ®Ñ˵k×z·›È»_¼5kÖØ^766FEEù¢k«µµõ;ßùŽW’©gê™z¦žû¼K¼Ga{ÈŽâÓÇb]Þ?>üWGõ¯¹fñúØõÙï<)§ó’¨¸ñßWŸ¶]óÝ•§ +o a?ñÄUUU¶kôR+ûóÏŽ¶¶¶ˆˆ_$«Å0bį$SÏÔ3õL=»-lYêWŸÿ.é§e¡/ [t$ù­ÓjD>{cöÿ>þWGô_ê{gëo·vUÚö⚉Y¥A ÄþÒ͇¯Yoak!÷XíŒÿy2ä¥#/Mû¿o拽§®'üädð¨Û¶IýõõæÉËŽ›/¿¿æÌ;¿¹üôš3æíõF‹Årê_Ûÿ¬ìÇV­?xÕöýâÀ•×¶T aëOöŸÿùŸm×üÓ?ýÓðáÃýè‹·zõꬬ,ï&ëJüæÍ› .ôV"õL=SÏÔ³'ÂþÿÞ8ñyÕ­–¶{7î´-ÙR5â•’ø¿9i»æÙÿsÖN„Ÿ”ÕËeßÚ~ïdõïc²Ž¹$츿9Qzþ–Ž­û}«Úͺ&06©ÁùJq^y½Þºòïè-òËëͽKí­?´¹íÞè}¦Geþá_­¹v³eRvi×÷r©œN &tqÚ¦ÞèüͲ"쀀€ÿüÏÿ´]£éC‡õ—/^~~þ´iÓœïìjò?¡™): y%™z¦ž©gêÙayõÏ“¹n5µk͹kßZ£v¶äfþ¯òCgÿÜ,Ѻ$ìªßþ9¿¡ñÏùjÖÛºüâïePó¥ ºçDôÖÆ5Ä‚÷ÎÅPËøÕÍ纾—KåtR0ñôâ›m¶ûß¾Û¡‹ZØ}ÿÅÛ·o_LLÌ7¼ž¬“Ñï~÷»ùóçÿøÇ?¦EB=SÏÔ³OëÙŠ°;;{^c· þs£ikp·õžKÂv”¯>y»ÎꀊÌÝv–ünùö ZøÉ®ê?½¦…M‡¯iY ê³»ºTN'C_,²›b¦™ê ‹ˆ°“’’üt,êã??~¼ó›IúÏ(õL=SÏÔ³'¶¾Æ[Âv´IƒÇ-ŽŠzåzKâƒ.hõNkY —ëšÕ{¯…i¯¯ihõ\ØNÖ ðöÛo¿Ýu¶§¦€öó/Þ¶mÛt\__oåÝÝþâݽ{wäÈ‘^I¦ž©gê™zîea{Ø%îhÓ¬•§JÎ58)í”eÇ¿ª»+=Û®Q¾îÉî6ÐI9zÁY{ºëMF;ué[cغ©,qÀŒaëb0::Ú¼ŸRÐcÇŽÕÊþüÅ{ÿý÷§L™rëÖ-‹ßëÉiiiÿò/ÿò¯ÿú¯ÕÕÕù—ùÖ[oy%™z¦ž©gê¹—…­±dc2W[‡;“Îm*úâ¦æ«Ÿ¨þ½&5µÜÓKóA%™›Î½²ñË×tŒdçœáç_,ùölm+å·äó£ÿÐ`ëlçUñ×ViZ¸íÖ¿ÝeéÖ2K\hÐE*2žX¤[þkjj|1ÃÀ+ÉCºÃÉþÖ“;6wîܰ¨ÓO§!o= ‰z¦ž©gê¹—…-¶ù­ü§AÜ®·uuýï¾å ‹¿lЭeší¥ÞlÍA+8sÝvÏ_~þ;½£íÝÏÚAmåÝ¥µŽ•ó×¥µzò‰ŽµX°ƒ•7žúß§m·>¹¢üðÙGØ.A2É$“L²w“Á[hÆ™öë;fø{íóŽ{›d’I&™d„Ý¿°{–øß¤g‰óÅ#™d’IFØ€°I&™d’IFØ€°I&™d’6 l¾x$“L2É6É$“L2É€°ùzL2É$#lðGa„ €°aÂHÂâ%H&™d’Iön2 lû?5/¼‡ƒ?b’9 ‘L2ɶÿ ÛÃX’-&sº'aÂFØÛ?„íI,ÉÖ“Ñ*„°6Âöa»K²‡ÇÂFØa“Œ°6 l„V6Â&aÂFØ$£U„=x„m{xPPФI“V®\ÙÒÒâ[©ü‰ÀÀÀ‰'®]»¶££Ãú)”K„°IF«{0 Û\nmm={öì~ðƒÌÌL_ ÛXhoo/++‹_½z5ÂFØa#l„°]8ÛÔ××?üðý#l]%Œ7#l„°6ÂFØ® {øðáæËÍ›7«Ÿ\½å±±±[·n5×/Y²äÅ_´=páÂ…Z鯛¶µµ©o¼ë¦ÚÚÚ¥K—†††Ž5JÉMMMvûh!77wÆŒ!!!iii*<ÂFØa#l„=À…-q~ñÅóæÍ[¼x±±f×®]ãÇ?~ü¸zËOž<©e ÒÜù{ßûÞúõë—|ð^j¥§¸ÊÊÊn[ØÑÑÑ;vìЀzMMMzzzVVVWaÇÅÅ•––ªxuuu©©©a#l„°öŸtf +«iklMLLÐK­tµKüÂ… êOMMµÝAÛ;vìÐPzMMMzzzVV–ÝS§NݸqãíÛ·U°²²²çŸÞX_XX™——§c+++%æüü|cÓ'Ÿ|¢—ÚÙø,111a#l„°¶? ÛYY \ckbbâÁƒÍ8ðÄOضÅ'Ož,ž>}Z uuuî½é˜1cÌwìŠæ£EEEÙ ;$$äÚµk]wž={¶ihQ^^g,Ïœ9óСCæ&©a#l„°6Âö²°»>ÝÌ-lµw«««ÓÒÒ222L/677›;ܽ{WklW+VÌ>úè™3gÜxSÉX ß#FØv¶Küšõ6vìXÍ!7Œ`wào¼1zôè×^{M½ÜW®\1 ³»0U»ÝgAØa#l„=…í蹡ž ÛI¬/ưoܸ¡^e‹ÂÖH°Œ5È­^h·ßT£ÎS¦L1_&''/[¶L—ÆÝeêf7÷·=P—ï½÷žÆÑUÚµkךvt‡ÂFØaRa;y´u¿¶ó'r{"ìkÃma[¯d/ Ûœ¦.quÛv#Ûv‰kÀ[“ÂdVu‰«½{éÒ%·ßtÚ´if]“Âlo?|øp·Â6¹|ù²ÖÆò¬Y³JJJº}SºÄ6ÂFØýWØ=þh„Û¶ëž°]ú­ —„m¥6ܶK•ì’°]ªdÏ…}ïÞ½‹/ªK܌Ҥ3õxkŠ–š¹ÆD-sÒ™fnkæ×¯~õ+Û¦¶­hè°ë¦uëÖ­X±Â¼JXµjUCCƒÄûöíÓwWa§¤¤=zT­dµ§·lÙ2}útc}QQQRRÒ‰'T•P/µ§±iÏž=Ƥ3ó³ l„°ûLØVÎõýMØŽÉ a[¯ W…íj%[¶«?Ne]Ø®V²ua»ZÉýíѤvýšžýú믛·QÝÿöm]R£¹þå—_6‡º ^zé%ó‰+Ò­Ù¯nEØW¯^5¥«‹†9sæ„< >>~çÎ]…­©pO=õ”vÐ ÜR²ž¾bF«S]ê×´‚‚sÓ¶mÛäéÀÀ@nëBØ»gõZÿÅ@W…íR¬KÂöúO(ºW. ÛJîóÿp£’- ÛJæÇ?º0r£Ø/6¶*l7bû\Ø®ÆúBØvGõ(l÷®Š¼+lë­(÷júVÝ»*òaÛíߣüÜ»*BØ€°ö`¶K±^v×C¬Ûz™}!쮇xKØ]÷·"l7®Š¼(ì®û{KØ]w¶¢U7®Š6 l„°¿±Û„m1ÖëÂîv¯»Û½"ìn÷÷а»ÝÙ+ÂîvO‹ÂvõªÈ½Så‚‚‚&Mš´råÊ––ŸJåÞ½{7nœ9sæ°aÃÇŸžž^ZZꑨ†ðÈ„°¶ß ÛJ¬w…íhgëÂî±Ì^¶£=¶£==¶£Ý<ô\kkëÙ³gðƒdffúT*YYY ,8}útss³Þ´ªªjýúõIIIa#l„°½/loíÜ›ÂöîÎ=:ÕGÂv²›WÜ|¹yófõ“«·<66vëÖ­æú%K–¼øâ‹¶.\¸P+­¼é¸qã ­É\£…ÜÜÜ3f„„„DDD¤¥¥©´]R“}òäÉ›6mÒòÞ½{‚ƒƒ'L˜““c›é( a#l„°6ÂvSØ.íæ¶°ÛÚÚ¾øâ‹yóæ-^¼ØX³k×. 0?~\×'OžÔ²$gîü½ï}O]ÙÆË>ø@/µÒÊ›îß¿äÈ‘³gÏ^±b…ÞâÒ¥KÖ…§Ñn•§®®.###55ÕnŸ#GŽè ãèÑ£ZÖeAddd^^žFå+++uÍ‘ŸŸßcÂFØa#l„Ý…m‡¬\[[klMLLyçÎs«Ëí.GzŒBØa#l„=…í蹡ž ÛI¬/ưoܸ¡nd‹ÂÖ·Z´ê‚V·³'Ð43Ù®HÒª­•¸|÷îÝ}W7€¹U™Žf·9‰BØa#ì%l'¶î·ÂvþDnO„Ýcm¸-lë•ìEa›Ãê·¦eÛ.q x5Jru‰«[Ûn(Ú ÙÙÙííí¶ktì#>Þº°Å©S§¢¢¢T-éöî'Nè]ô^z™’’‚°6Âî{a[9×÷7a[ü9&7„m½6\¶«•l]Ø®þ8•ua»ZÉÖ…íj%÷·G“ÚïFGG¿þúër›m§·y[×–-[Ìõ/¿ü²9ÔmðÒK/™O\Ñ.³_½+2¨öÔì6=æL;Ó#϶mÛfnÕì³çž{Nëu/–¼®K—„-Ôè׵źuë´\\\œœœ¬>ƒÐÐPÍAÓUÂFØÛ’°­ÿb «Âv)Ö%a{ý'Ý« —„íF%÷ù¸QÉ…íF%óã²aÃõ{ß„íGÂvé\ßO„íêoñZ¶µÑç?¯é‹ß|ØŠ gÍšURRâka[)ÂFØa#l„=(„˜˜¨Ác ý677ïÛ·o̘1V\XTT”””tâÄ U3·õ2%%¥ëQV¬ìd“•²!l„°6ÂF؃BØ/^œ3gNÈ4ókçÎ]X\\¬.kÍðÒ=WšƒVPP`·D«™äžÛJÙ6ÂFØa#lž%î6lÈÎξa#l„°IîÏè±*˜a#l„°ýOØž@2¿Öavasº'aÂFØî ›ÓÉ$“Œ°Á}aóõ ™d’IFØÐß… 6„ ` ûo°hÑ"’I&™d’½› ÛþOÍó÷pôGL²¿Ò‹@2É$žd@ØhµÏ„ía,É“=ÑKí¬CNž<ƒ°6ÂFØ$£Õþ;†]^^®1ìU«VuÝM3¿¢¢¢ÌCÔŠ57544˜àÙ³g› ”Ú]¶-cÆŒQ“ÚÑÎv¥2Ôî¿víZ×”mæÌ™‡27Iía#l„M2Zí§³Ä5+[-Ë5kÖÈÜZ¯¦sffæØ±cµÞØ! À<¤³³³[뇅…Ù×ö(—. $c5|GŒ±uëVs«óR o¼ñÆèÑ£_{í5õr_¹rÅ<ÖIÙÔÁÞÜÜlîy÷î]„°6Â&­öë.q“äääeË–UWW«ùþƒ±msÏ®‡Ø¶nÝ…åÞ¶F§L™âj©Îœ9óÞ{ï½øâ‹ê×j=– a#l„°IF«þ*lM¿2¤hpøða+ž5kVII‰…-¦M›&»Q*qùòe5¬{,]âa#l’Ѫ¿ ;11QƒÙŸVÓsß¾}K¶"좢¢¤¤¤'NH«š¿­—)))]r¢Ã®›Ö­[·bÅ ë¥Ò;=zT­dµ§·lÙ2}úô˶gÏcÒ™šìL:CØa“ŒVýIØ/^œ3gNÈ4mçÎV„-Š‹‹Õq­ihêgÖ<¯‚‚»}¤[õT[/ÏÕ«WMéZ)ÕÁƒŸzê)í ¸¥d=}¥Ç²‰mÛ¶ÉÓº¥Ûº6ÂFØ$£Už%þ6lØ ŽÞ„°6ÂFØ$÷gôè’ŠŠ ÌŠ°6ÂFØ~–¼È3Hæ×ºa#ìA¼ÈcH&¹?$ÂF«}“¼ÈL2Ƀ'v÷½^^ÿS#™d’I&aƒ×„ 6„ ` Û+w#t{û2É$“L2Éž$¶ÿSóü=ý“ìů´£§ƒ‘L2É56Zí3a{K²ÅdÏ›$“ÜO’a£U„=ð…íI,ÉÖ“=ñÉ=&ÂF«a#l¯ ÛíX’ï{öÓœ€°6ÂFØ$#l„ a£U„°IFØ€°6Éhaaù'N\»vmGG‡OD2ÄÒ#=îÝ»·qãÆ™3g6LE?~|zzziii/¼5ÂFØa“ŒVûµ°…ööö²²²øøøÕ«W÷¡°³²²,XpúôéæææÖÖÖªªªõë×'%%!l„°IF«aÿ™³gÏŽ7®…ÖØØØ'o°6ÂFØ$£U¿v[[›:¢åÚÚÚ¥K—†††Ž5jÉ’%MMMæ!¹¹¹3fÌ ‰ˆˆHKK«¯¯7öîÝ›ž%>tèИ˜˜5kÖÈÜZ¯–effæØ±cµÞØ! À<¤³³³[kjzÈ·±=Êâ©‹~ùòåóæÍ³"lG¥ÒÂÊ•+Ÿ|òÉ;wî˜[ÕQÂFØa#l„Ý/ºÄM’““—-[V]]­cCœ¶þs¢A_GSÆÜvžÛmˆ´j¥TZؽ{÷ðáÃ8`nu©¨a#l„M2Zí§Â 2Tmpøða+jœ5kVII‰'ÂÎÎÎ6šø&êÄ~ä‘GÌfñ­[·ÌMçγ(lýûé§ŸŽ1Bæv£¨a#l„M2Zí§ÂNLLÔ`¶†ou?ô¾}ûÆŒcEEEEºgúĉ’½f•ëeJJJ×£œøO›4Ò\PP ÃrìØ1•äÝwß5¶ÎŸ?ÿÕW_½~ýºZüÇ׈»ua‹S§Ni$~óæÍ֋а6ÂFØ$£Õ~-ì‹/Ι3'äòâÎ;­¨Q«;]³´t?˜&vI½vûè"@Ó³•GÕØ¹p¦»Ëô°3=òlÛ¶mæVÍ>{î¹ç´^÷bÉëºùÊ%a uòk¨~ݺuVŠŠ°6ÂFØ$£Õþ"ìÞgÆ ê÷¾a#l„°IîϨe\QQY6ÂFØÛÏ’¿ñ ’ùµ.@Ø{P'ã1$“Ü’a£Õ¾IþÆL2Ƀ'v÷½^^ÿS#™d’I&aƒ×„ 6„ aÂ@Ø€°a l@Ø€°6 l„ít³— ™d’I&ٻɀ°ùzL2É$#lðOa{ôNÿˆI&™d’Iöõy6_<’I&™d„ ›d’I&™d„ ›d’I&aÂæ‹G2É$“Œ°a“L2É$#ìž?~ü… Ì—÷îÝ›:ujgg§¹æüùó&L0ßÅbID``àĉ×®]ÛÑÑá3Yû¼NÊcñã l¾x$“L2É}/ìôôôœœóåéÓ§•sæÌsÍÖ­[322Ü0\{{{YYY||üêÕ«ûV؎ʃ°ùâ‘L2É$û°wìØaúX¬[·îá‡Ö¿æšÅ‹ïÚµËmž={vܸqýAØ]Ë3 6É$“LòÀö×_=yòdóå÷¿ÿýwÞyçé§Ÿ6ר?üêÕ«v†ÓBnnîŒ3BBB"""ÒÒÒêë뻵`[[›ú¢åÚÚÚ¥K—†††Ž5jÉ’%MMM=¦‰½{÷&$$«$¶î Û¶<¶›œ”ÍJ!6É$“L2ɾ¶ˆ‰‰‘®´ÐÜÜ}Z9gΜ1×lݺ5##Ã%a íííeeeñññ«W¯î[a ºnÐÅÇüùóUW›¯É$“L²Ÿ {ÇŽ¦Åºuë~øaýk®Y¼xñ®]»Ü6ÓÙ³gÇׄmpýúõaÆÝïu6É$“L2É û믿žüðC-lÚ´IËZP±œÝ­°mg’Ûm2ge«e¹fÍ™[ëÕtÎÌÌ;v¬Ö;ô˜fg\Û£\jaKÆjøŽ1BÓèÌ­ÎKe,¼ñÆêxxíµ×ÔË}åÊóX'eS»ÑEap÷î]„M2É$“L²§Â–„µ áXCH—/_VËX Ó¦MSGq·VväEGÅHNN^¶lYuuµ:ï?Û¶’¦Ö­£»°ÜÃÖ¨ó”)S\-•¦Í¿÷Þ{/¾ø¢úÀu£ZeCØ$“L2É${_ØBûꫯ¤gÛ5çÎÓð­E+÷(lM¿2¤hpøða+i³fÍ*))ñ¢°«ó¾5—Je\ʨaÝcÙè'™d’I&Ù'ÂV·ð+¯¼òú믛kô€‘^xA]âÞ¶ñÌÖø´šžûöíÓX²•´¢¢¢¤¤¤'NH«š¿­—)))]ròÙ»nÒMk+V¬°^*½ãÑ£GÕJV{zË–-Ó§Oï±lš`L:S“Ig$“L2É${MØ¿üå/uó•‚æš‚‚‚‡zÈö&…}ñâÅ9sæ„<@ýí8·’&Š‹‹Õq­ihêgÖÑÆgΜ9lØ0IŸ7==½´´´Þa“L2É$“ì5aË^999æËÓ§O«$gΜ1×lݺ5##Ã%a íííeeeñññ«W¯îCagee-X°@Ÿ«¹¹¹µµµªªjýúõIII›¯É$“L²? {ÇŽ¦Åºuë~øaýk®Y¼xñ®]»Ü–ÙÙ³gÇׇ kllì“·FØ$“L2É${MØ_ýõäɓ͗ßÿþ÷ßyç§Ÿ~Ú\£þð«W¯Ú‰J ¹¹¹3fÌ ‰ˆˆHKK«¯¯ïVfmmmêˆ6–kkk—.]:jÔ¨%K–455õ˜&öîÝ›¬’ØvX¬1].ZW¯«ŸQMvUà¦M›œÕÉDØ$“L2É$["&&F*Õ‚:G­%Tý«5×®]›4iR·2‹‹‹ÓH°:™ëêêÔFOMMíV•••f ;::Z ú–––ššuÅ«³ºÇ4¹6222//OG)*666??ß%aïß¿äÈ‘³gÏ^±b…º .]ºd]Ø=~Æ#Gލ~Ž=ÚcQE!l’I&™d’­"ìÙ³G ‡zöÙgµ A_-kAíÂW_}µ[™©ei®ohh·ÛGcØåååÃ^µjU×7U7uTTTi­©=¡@™Ï%a‹»wï*DCé .ÔÉܹs ”…íü3~ôÑGjO›W΋ê( a“L2É$“l•;w._¾\ ?ùÉO>üðC-¨ƒWËZPǵœÝ­Ìlg’Ûm2:t¨ÚîkÖ¬‘¹µ^-ËÌÌ̱cÇj½±C@@@i¶{jºíQn|XuÑëÃΛ7ÏŠ°|Æ•+W>ùä“wîÜ1·:/ª£(„M2É$“L²U®\¹’˜˜¨µµ¬…Ë—/«e¬…iÓ¦©ûº[c9ñ\·ï’œœ¼lÙ²êêjõâ´’¦A_GSÆÜ®1*¶ÛiÕâgܽ{÷ðáÃ8`nu©¨›d’I&™dw˜2eÊW_}%=Û®9wîœîɶhå…d¨ÚàðáÃVÒfÍšURR≰³³³&¾‰:±yä³Y|ëÖ-s“>²õÏøé§ŸŽ1Bæv£¨›d’I&™dwPgõ+¯¼òúë¯Ûzî…^P—¸·„­F¼³5|«élûöí3fŒ•´¢¢"Ý3}âÄ É^³Êõ2%%¥ëQNjO›ÔsPPP ÃrìØ1•äÝwß5¶ÎŸ?_ƒôׯ_W‹ÿøñãêWpé3ž:uJ#ñ›7o¶^T„M2É$“L²ûÂþå/©›¯lo’ázè!³ùè¹°/^¼8gΜÈ‹8·’&Š‹‹Õ®YZºL»T0»}t éÙŽ>š ªË=àLP;Ó#϶mÛfnÕì³çž{Nëu/–¼®{W?£:ù5ToܹÞcQ6É$“L2Ƀ÷Yâ6lPÀ}@Ø$“L2É»?£–qEEªFØ$“L2É6_<’I&™d„ ½)ìo¼É$“L2ÉÞM„ÝÍ•/þÔH&™d’IFØà5a„ €°aÂ@Ø€°6 l@Ø6 l„ a„ €°aÂ@ØÐ¿ÏïC†8_ßã>*•A``àĉ×®]ÛÑÑaý}}Z6„ Û>¼½½½¬¬,>>~õêÕa l—…Ý›¥:{öì¸qã1Â@Øî·°µ››;cÆŒˆˆˆ´´´úúzs·½{÷&$$O˜0!''ǽRµµµ©o¼ë¦ÚÚÚ¥K—†††Ž5jÉ’%MMM.• aX:#{’'÷ްãââJKK[[[ëêê222RSSM………‘‘‘yyy---•••±±±ùùùn”JÇvÛÂŽŽŽÞ±c‡ÂkjjÒÓÓ³²²¬— a'8’I&ÙÏ„í<ÍŠ°«ªªÌõ áááÆòìÙ³m ]^^.}º$laë(a¯ZµÊyy£¢¢¬—m ›¯É$“Lò`nawvvv»),,Ì®„.]F :4&&fÍš52·]¸ZÌ™™™cÇŽÕ>váVÊF €ž DBò ¶£M9VÃ׋¥²Ý”œœ¼lÙ²êêju‰ß0ÎݵHNʆ°ÀÏ®P}'ìY³f•””øHØAAA†ª >Œ°6ÂvGØEEEIII'NœY5…[/SRR\²²“M‰‰‰ØÖ°tssó¾}ûÆŒƒ°6À v·}ï¥X\\¬¾kMõÒÍWšƒVPP`¬—h5Üa_¼xqΜ9!Ь´;w"l„ ^fÆ ÙÙÙÔ€~ž¦RQQA= l„ 6„ a„ €°a l@Ø€°6 l@؃âü>dˆóõ=îà£R :4:::;;»±±Ñ“ãÝÊAØýšo¼Do&û¯°…ŽŽŽóçÏÏŸ?Ñ¢Ea ’>É MîV<¾Kö°{³ÝýúõaÆõŸî„ ˆ„Óý ÉàL^ô€ÞLî…¶rssg̘‘––V__oî¶wïÞ„„„ààà &äää¸-ìððpÛ5µµµK—. 5jÔ’%Kšššì¬ªªzæ™gT½õã?¾{÷n+EÚ¾}ûĉƒ‚‚bcc7oÞŒ° ÉœîÉ`L^ô'z3¹w„WZZÚÚÚZWW—‘‘‘ššjl*,,ŒŒŒÌËËkii©¬¬”óóó]í¿pႺÄÍL lïØ±C±555éééYYYvN:uãÆ·oßV©ÊÊÊžþù‹ôÉ'Ÿè¥vÖ!'OžŒ‰‰€ÂöS‘|é1޾x¾KöS‘xX}’ì§"ñ¤*ú*Ùäg»›ÛUÑËÉVÔèëÂVsÖ\ßÐÐ`¶†gÏžmkèòòr©ÝR3FMjG;k>ZTT”]©ÔÜ¿víZ×iæÌ™‡27IíPØ‹¼Ä€Ñªï’}WÏ~ªUß%û®žýT«¾Kö]=û‘VûVØž·°;;;»Ýf§Þ€€—J%«á;bĈ­[·š[ÕŽÏÌÌ;v¬æÛÅš¾ñÆ£G~íµ×ÔË}åÊóX'ER{ss³¹çÝ»wéwß] øãE†OËìɾ¶OËìɾ¶OËìÉ~*lG›Ô̵x;–óRiÔyÊ”)æËäääeË–UWW«[[/ÛÚÚº-Ì™3gÞ{ï½_|Q}àk×®í±H{Ðá;­raÔ;Zå¨״ʅQ/\ ô­°gÍšURRâ•RM›6M6–5)ÌPµÁáÇ—öòåËjX÷X¤AÑ%À…F\õÏK¾vQQQRRÒ‰'äWMäÖË”””ߺÛMëÖ­[±b…±œ˜˜¸jÕ* –«A¼oß>pw-ŒÞèèÑ£j%«=½eË–éÓ§÷X¤={ö“ÎÔd°“΀ #.Œú祀W„Ýí|4+ÂÅÅÅêÁÖ44u8kÂWAA±^ºUOµõR]½zÕ”îÅ‹çÌ™ò€øøø;wv-ÌÁƒŸzê)í ¸¥d=}¥Ç"‰mÛ¶ÉÓÜÖäÂÈC6lØ Žò¿a@¿F.©¨¨ 6„ a„ €°aÂ@Ø€°6 l@Ø6 l€Aq~2Äùúwð÷îÝÛ¸qãÌ™3‡ 8~üøôôôÒÒR_|R„ 0ÐXä%z3ÙO…••µ`Á‚Ó§O777·¶¶VUU­_¿>)) a#lDÒÛ"´Éß|óMo&ûNØ>%,,¬±±±wú6§{DBr7±½œÜ -l-äææÎ˜1#$$$"""--­¾¾ÞÜmïÞ½ ÁÁÁ&LÈÉɱXªqãÆZ/³•ÂØ¥&ûäÉ“7mÚ䤄Î?ÂF$$sº,"„Éßü‰ÞLîaÇÅÅi€Y}×uuu©©©Æ&I7222//¯¥¥¥²²2666??ßJ©öïß?räÈÙ³g¯X±b×®]—.]².lG…1÷9räȤI“Ž=꼄N¢üXØ~*’/=ÆÑÏwÉ~*«¢O’ýT$žTE_%û‘ülws»*z9ÙŠ°a]Øj°šëÂÃÃe×ÖÐåååR Å‚ݽ{WÇ®^½záÂ…£Gž;wnmm­a;*Œ±ÏG}¤ö´yऄN¢üXØßx‰£Uß%û®žýT«¾Kö]=û©V}—ì»zö#­ö­°=oawvvv»ICÑvn²­­mùòåóæÍ³"lG…ÑÂÊ•+Ÿ|òÉ;wîØ–;*¡“(ºÄ{õRÀ/2|ZfLö°}ZfLö°}ZfLöSa;Ú¤Ñ_oÍSŽÒº}GiÕJa´°{÷îáÇ8pÀÜ꤄N¢öÁwZå¨w´Ê…Q¯i• £^¸è[aÏš5«¤¤ÄRegg···Û®Q'ö#{î¹ç´^÷bÉëºùÊ%a‹êêꘘ˜uëÖ9)!€paä!6lP¿7ÿë6ôkÔ2®¨¨ 6„ a„ €°aÂ@Ø€°6 l@Ø6 l„ aÀ€ö!¾²>ɶ±$÷Z²/ÂIîK²O“a£U„°IF«6Éha#l’6Â&­"l„ ­"l„M2ZEØ€°6Éa“ ­"l’Ñ*ÂHɳfͺ}ûv×õZ9bĈëׯ;zGŸ^:˜600pâĉk×®íèè°þ¾ƒü²a#l’Ñ*€ɿøÅ/>øàƒ®ë7nÜøÒK/99YùZØÆB{{{YYY||üêÕ«6ÂFØ$£U„=x“oܸ‘””Ôuýc=öÙgŸõ•üìÞôìÙ³ãÆCÆa“ŒVöàMiii'Nœ°]süøñ©S§:?Y™ëµ››;cÆŒˆˆ¥Õ××›»íÝ»7!!!88x„ 999î!ÛÚÚÔ7ÞuSmmíÒ¥KCCCGµdÉ’¦¦&—ʆ°Ñ*ÂFØ$£Uöþýû_~ùeÛ5‹/~ÿý÷­ ;..®´´´µµµ®®.###55ÕØTXX™——×ÒÒRYY›ŸŸïÆRÇvÛÂŽŽŽÞ±c‡ÂkjjÒÓÓ³²²¬— a£U„°IF«~&lÍçÒÄ®††ã¥dÙ›7oZvUU•¹^‡‡‡‡˳g϶5tyy¹ôéÒRcØ:JcØ«V­r^žÆÆÆ¨¨(ëeCØha#l’ѪÿÝÖõæ›ošMêŸÿüçja÷x²²•bggg·›Â†|›€€—>ïСCcbbÖ¬Y#sÛ…«Åœ™™9vìXícn¥l­"l„M2Zõ?aŸ?þÑG5–5z­>d—„íh“FŽÕðõîÒÜ”œœ¼lÙ²êêju‰ß0ÎݵHNʆ°Ñ*ÂFØ$£U¿|pÊÌ™3KJJŠ‹‹§OŸnådeEŠºÉ[™>vPP¡jƒÃ‡#l„°IF«{à ûÃ?üá¸páÂõë×{KØEEEºgLSÐeVMáÖË””—¬ìdSbb¢¶5,ÝÜܼoß¾1cÆ l„°IF«{à [6ûÎnݺåè­mË`QŠj²«ïZS½tó•æ ë©mžûâÅ‹sæÌ y€f¥íܹa#l„M2ZEØ_ؽ̆ ²³³ïÂFØ$#l„MrFOS©¨¨@®a“Œ°6É€°Ñ*Â&­"l„ ›d´Š°IF«6Â&­"l’a£U„°IF«ü]Ø€°a l@ØŒ°¿y€/JöÍŸðQ¬O“½îweþ¦ ¾KöV¸ß•ùø.Ùóp¿+ó7Nñ]²Nª€°¿Y´h‘„ýå—_z=܈õi²×Ã6ÂFØaû°=ÀÂ6 ìÅp3Ö§ÉÞ GØaÂFØÛŸ„½èOx]Øf½nëÓd/†#l„ a#l„ígÂ^dƒw…m[`Ãíb}šìÅp@Øa#l„°6 l„°6ÂFØÞ«“Y³fݾ}»ëz­1bÄõë×ý܈O†Äü¥“¡C‡FGGggg766Z<лÅ@Øa#l„°û…°ñ‹_|ðÁ]×oܸñ¥—^r"-_ ÛXèèè8þüüùó-~X„°6ÂFØ{` ûÆIII]×?öØcŸ}öY_IËîMÕÐ6lXŸa#l„°6Âî3a‹´´´'NØ®9~üøÔ©SKË\¯…ÜÜÜ3f„„„DDD(­¾¾ÞÜmïÞ½ ÁÁÁ&LÈÉÉq[Øááá¶kjkk—.]:jÔ¨%K–455ÙXUUõÌ3ϨŠõi2„°v_ ÛGŠòú‰ÞGŠBØ6ÂöN²×勳…°6„íi²/壯„…°6ÂFØ^6 l@Ø6€$lßÝà£Û|wã„ïîÊð»2ûîßÝãwe^äß%{îwe^äß%s[øJغÐGÂÖH¼nÄú4Ùëáa#l„ €°ýFØÆ3|!l£À^ 7c}šìÝp„°6 l„°ýIØæó§¼.l³À^ ·õi²Ã6„°6Âö3aÛ>›Ó»Â¶-°‡áv±>Möb8 l„°6ÂFØ6ÂFØa#lïÕɬY³nß¾Ýu½VŽ1âúõëC†tþw´Þ+Ü»woãÆ3gÎ6lX``àøñãÓÓÓKKK=ÒØÁr2ÂFØa#ì(ì_üâ|ðA×õòåK/½äÄs>õ_VVÖ‚ NŸ>ÝÜÜÜÚÚZUUµ~ýú¤¤$„°6ÂFØ{ ûÆÝŠð±Çûì³ÏúÊsaaa^ÖÂFØa#l„í×cØiii'Nœ°]süøñ©S§:÷œ¹^ ¹¹¹3fÌ ‰ˆˆPZ}}½¹ÛÞ½{‚ƒƒ'L˜““c±HãÆ+,,´®^+…±=JMöÉ“'oÚ´ÉI .„°6ÂFØ»·…½ÿþ—_~ÙvÍâÅ‹ßÿ}ëÂŽ‹‹Ó³ú®ëêê222RSSM’nddd^^^KKKeeelll~~¾Å"9röìÙ+V¬Øµk×¥K—¬ ÛQaÌ}Ž92iÒ¤£G:/¡“(„°6ÂFØ»„ÝÑÑ1qâƆã¥ä°›7oZ¶¬æzn,˸¶†.//—-–êîÝ»:võêÕ .=zôܹskkk­ÛQaŒ}>úè#µ§Í+'%t…°6ÂFØa÷°Å›o¾i6©þóŸ«…í¤9ÛÕ‘ÝnÒPôoàFñÚÚÚ–/_>oÞ<+ÂvT-¬\¹òÉ'Ÿ¼s玹ÕI D!l„°6ÂFØ}#ìóçÏ?úè£Æ²F¯mo ²"lG›4úë­¹cÊQZ·ï(­Z)ŒvïÞ=|øð˜[”ÐIÂFØa#l„Ý7º鹤¤¤¸¸xúôéV,eÅ‘ºÉ[™n&;;»½½Ýv:±yä³Y|ëÖ-sÓ¹sç, [ÿ~ú駺¿\æî±„a#l„°vö‡~øÃþPƺãÙ[Â.**Ò=cš‚®)]MMMz™’’bÅÚ¤‘æ‚‚¥c;–˜˜øî»ï[çÏŸÿꫯê¡.ê*ׄöøøxë§NŠŠŠÚ¼y³ó"l„°6ÂFØýQØz´Ùw`Ûx5,Õ‹Âj²'''kºVhh¨fxÉÁÆzcj›£ÂÈ ™™™zÀ™s¦‡©õ¿mÛ6s«fŸ=÷ÜsZ¯{±äuÝ|å’°EuuuLL̺u뜔a#l„°6ÂîÂîe6lØ ~ïû€°6ÂFØa÷gÔ2®¨¨@®a#l„°6 l„°6Âöaóm|ëÓd„ a#ì¾¶åõ½…°6 l„íd¯+Êg) a#l„ ÛÓd_(ÊG_ ) a#l„°¼ l@Ø€°6 l„ 6„ aÂ@Ø€°a vaŸ8qâ}Ðá$“L2É$û"¶ýß™'oàè¯d’I&™dO’aÛÿ¡xþ݆L2É$“ìI2 l¾$“L2É6É$“L2É6É$“L2„Íd’I&aÂ&™d’I&Ù{§â{÷îmܸqæÌ™Ã† ?~|zzzii©ËžâÎ;Ì£†ü •aâĉk×®íèèð‰Ï¬•ÓIy¬$¸W›d’I&a;$++kÁ‚§OŸnnnnmm­ªªZ¿~}RR’«âñ\ØÆB{{{YYY||üêÕ«ûV؎ʃ°ùâ‘L2É$÷°ÃÂÂ=·„mpöìÙqãÆõaw-OÊa“L2É$^aËC………ޤe‹Ö|÷»ßÍË˳Ýçúõë‘‘‘7oÞ´ÕØÞ½{‚ƒƒ'L˜““c»ÿöíÛÕûyófGÂnkkS_´±\[[»téÒÐÐÐQ£F-Y²¤©©É<$77wÆŒ!!!iiiõõõ=–Á=aÛ–Çv““²Y)$Â&™d’I&Ù*û÷ï9räìÙ³W¬X±k×®K—.9ñ–Ô®=m×¼ûî»?úÑl÷Ô>R¸¼ÞÒÒRYY)1ççç›>ùä½T³úÞOž<ãHØ:ÐlÑFGGïØ±Ci555_W¾yH\\œ†Û•VWW—‘‘‘ššÚcܶmyl79)[…DØ$“L2É$»ÆÝ»wå3Ñ.\¸pôèÑsçÎUÃÑ‘ÞÏœ9c,k|WÆRw±íž2ºiGQ^^.cËšÚvèÐ![ýw;†­C4f¼jÕª®EUï}TT”yˆFÜÍM ááá=–Á1l»ò8J°+[…DØ$“L2É$»ú~—/_>oÞùäÇl·§Žu4‹Í¹°»=$99yÙ²eÕÕÕêv6®'œb¥ îu‰w»ÉJÙœa“L2É$“ìÙÙÙfÛÑ@ÃØ<òˆ±üÐCÙ5…†ºö³Ÿ:uJË®íÎY³f•””tû^VºÄíÐô4C‡‡¶âB'e𢰭” a“L2É$“ìùC³© 4ÃYú9vì˜F©5•ÌØª™VGµs¶$­}4áùí·ßîê¡¢¢"ÝÆ­ßúTš2õ2%%ÅØ´gÏcÒ™£Î'™è4x¬¡_5Í÷íÛ7fÌ+.tRÛ£¬XÙÉ&+eCØ$“L2É${'DVÓ@¬p¦Û–ô°35‚·mÛfnýõ¯­iejgÛifÓ¦MºcÊœ›fç¡ââbukv•úÀ5ÿKWæ&…ËÓz/ç·u™\¼xqΜ9!Ð̯;wZt¡£2˜ûH´šI­” a“L2É$“ì“‹èQ‹/¾ïÏlذAÃ÷›d’I&aÿ‘Ï?ÿ\÷/]¹růŦ€ŠŠ „Íd’I&y` [=ºš’vàÀû€°I&™d’IîÏ-lðcak΂‡(:\!$“L2É${7v÷mnãäïŒd’I&™dO’a„ €°aÂ°Âæ& ’I&™dnë‚þ.lý¡¼õÖ[·n7»ýŸwô0’I&™d’ÝN„ý-tq§?OÞà@a‘£Çõ‘L2É$“ìv2 l¾$“L2É6É$“L2É6É$“L2„Íd’I&aÂ&™d’I&Ù{¾wïÞÆgΜ9lذÀÀÀñãǧ§§—––ºì‰!î<±Ã))ÉUax.lc¡½½½¬¬,>>~õêÕ}+lcA× çÏŸŸ?þ¢E‹6_<’I&™ä>vXX˜“¶cï ÛàìÙ³ãÆëÂ6¸~ýºz î÷:›d’I&aÿy±°°Ð‘-lÑšï~÷»yyyv&‹ŒŒ¼yó¦­ZöîÝ›òóÏ?ïIý l’I&™äÁ.lq÷î]9CcÆ .=zôܹsÕ|t¤·ÄÄÄ3gÎËo–·Ô}m»§ŒnH”——K«Æ²¦¶:tÈVÿÝŽaëa¯ZµªkQÕ{e¢V¬¹©¡¡Ál;)ƒ«“Î ÆŒcÖI¥2Ôî¿víZ×Ý«„M2É$“Œ°¿…ú¢—/_>oÞpݨæIý l’I&™äÁ.lÝal´eM4ŒýÈ#Ë=ô]+Vh¨ûg?ûÙ©S§ÔÄ45Õ2kÖ¬’’’nßËJ—¸š~eHÑàðáÃV„í¤ î [L›6Í p©TâòåËjX{R?›d’I&y° [JЌ傂Ís–„Ž;¦QjM%3¶jæ×Ñ£Gíœ-IkÍÊ~ûí·»®¨¨H·që·>•¦L½LII16íٳǘT¥&©óIg&z# fk|ZMÏ}ûöi,ÙŠ°”Áö(':ìºiݺuš—g½TzGUZÉjOoÙ²eúôéžÔÂ&™d’Iì–94«œé6*Ýj¬FÞ¶mÛÌ­¿þõ¯5­Líl;slÚ´Iw%ÙÎòݡ¸¸XÆš¦>^ͱÒÕ€¹IáòÞËùm]&/^œ3gNÈ4mçÎV„í¤ æ>Ò­zª­ ûêÕ«¦t­”êàÁƒO=õ”vP­JÉzúŠ'õƒ°I&™d’»°ÝC#²‹/¾ïÏlذAÃ÷›d’I&aÿ‘Ï?ÿ\w1ÙÎ|öG4PQQ°ùâ‘L2É$La«“VSÒ8p6É$“L2Éý¹… ~,lÍYxë­·ôçâö:\!$“L2É${7v7mï{€“¿3’I&™d’=I„ 6„ `À ››(H&™d’¹­ ú»°[þó<ÀùÃH&™d’Iv/ö·ÐÅþ\ÑKõx«“ùäÉ“111Ž„­ÍvttôŽ;”VSS£duV›‡ÄÅÅi\Yiuuu©©©=–Á¢°]ª;a;*•¹Ï‘#G&MštôèÑ‹ê( a“L2É$:a‹»wïJ3^¸páèÑ£çΫ4GfJLL|øÌ­.a“L2É$^agggmYõÖ>òÈ#ÆòC=d×ÈÓýÙÏ~vêÔ)5|ÍcM—Ìš5«¤¤¤Û÷²Ò%n‡¦§ª68|ø°5:)ƒEa;¯5‹oݺen:wîœEaëßO?ýtĈ2·EEØ$“L2ɃWØr€†T 4ûZjç5vuKj©»Õ’,ɓ¥ÎÏŸ®_­3‡úWÞ~À?——¬¥®•(ôLËa§ ¡F9Øÿ÷צ/ÿ*,Di ró˜™"d}Õz³°{·ÈÞMº±·öøê¢wñ™7ò¼s_Îè©ê©O ã°êµ·ÿôÞ÷¹_àŸu#¸õž£˜é-^ÞtÄñˆ§<&ÆI3¥âõŸ(?µq÷WoÅ«ÿ*DX6ðòÍØW›4Œ¯yãn~äoøÒßER… àåNê`tìS&(ÆÁŸmð^öǰ H=çžs‚b€^üÉn/½þ3È/Nã=× :—¯~öÇßä%ká, §ÕHˆ ¼°ÿ¬ß¸ïñÏÿ/zÍ?¡¾~1´~÷Œ±ÑÐ&W2Û7r©G÷^áõ^N‹¯è¿åÞÚ†õ#Onäe¯”h”tÌ`æNUõÜXä»{K¯Î_ó!UîçRØžƒ™ÇàyãPK_qóy·¯~ê_×G+ÞÂg¼ E¡:×:þé&}tæh÷›±cƒÛñ¥#^>ëæØ—^üU ˆuû²‰M îÏyºà)}<³ñý¹5¿ÇÅ…ªc ù¥i<¾uÈuõ·žˆ…³vâ4A#EÚ½fÕ¯xbû±ììøRõà«ÆÙ¾‘‹=ºï ¯÷rî½8¸éÿ¶vP>ˆR‹î·ÝWÿ‹Éwoó^ûˆÂÊÌÝš¾jLØ»c“·ôZ"E~:œ–[£ÔXoqßo?|ð o}æÛúº¿Býró s3ífœ¡`¾ >ù/ï{lCá†Oø+nàüò‹¤}ñ¶ /°û‹¼ú[[€íÑéCà¢òÈæ¡í¥KŸ‹ É/q?eX™òÄYˆ=v(Î!<…¼¿9x`ÿ<º¶~V/¼@uŸ§W¾2¸éï(c„òAÐÔ¿Æ¡™àÒ÷>ô³»Ö¦Ü­¯ý¨T‰‚Ê êWMÁ-r7}¼Üô:6ÍÖ¡ë–{»žÜøÔý¯ðnü|ëèÅEÐùé"§Í(˜çŸúäZcÒÂõwúË¯ÏØ å‹€îº8Böêäµ{ž«è1zÊøé†n|@UÎÈÌòœ#ïaÅ|ÚrÏú ÷ sž½üô~„sHæ_áÖêMïñO¡FÞG9|âSkmšä¯û3ùuœŸGa…² o*oA#ųþâKÞûЦ­4~@_ûQÛM†_ž‰³=‚3ÆB ºŽ•¸ÜO3`‹j »òæ‹ßû_ô­_wÏ|jÏ"©Â%Óþq'_¡N²·üÆõW\ÏÅ…” N,˜‘‰Mž{K,bƒÊòÕHÆÁ\:C_êø‘¹;7ÞÁg½‘‹ Uy1ùÅiÿ+P•þÉçÎNûGœòJ¼§7îøèJkÒòÿ98ë5ªc RP{` R ~ÛVKp‹W½ó>·ûûn×÷Èè3Hë3qÂGøÀ£Ô‚sg(:µµ‡ÕâåÿûéòðÌ µ}hDRƒiÎÄ'?R€âðæ örq{È/ÍÐÕˆ rýîÐ6°›Ì9‡‹bpß–ûÃóߊÌüÎÀ·vj¸ sO`&”,®PóûïÛóùõÞŠë+¿öîèçr?å:O4–¬ÆHVܼê÷™‡>qI&z±ýNü´§> 4Æwmñ—­0£q©Õón¹wñ…¯H¿~«Ûÿs4£:„¤:W?g¨QàïÜøÔ§Öº «ÅÞR/¥™“XR‹ÞË×ImØÃøì\º!¡F1Àö^_¸î#Tç˜ó @ÚB´Ûó0÷ØS(˜ç÷|~ýðîÉ]õÞâ«þμ˜‚ÒIHPTc˜•7/¾î6ó“{¤¾_êû‘ŒO»›9I`_!Ð8¼gº¹¼x&üç£TcèËo_õ›_ä¼ßþ÷¿@}?’*l<ÓŸ~òÊ!ôÓw~½·üúòÍŸåâ"./¦ <£ÙÄ"^p¢‰FÌ! (p?¹;),ÓÝçs©w&œç -DÏBR€N;øô§ÖŽ?ýàw…ÿç穎%ð '-Y‡jŒâ w.8ë¥é¼Kêû¥¶ñ4Û§IþÎÞ²µÈüçŒ÷NÆ¡š >oͪÛêˆw¶ÝéCHj0Yu >–v‘ýÉÝ{‹7܉LðK3ŸL,Pê;ûdä)`. \ ÐCƒ»¾sWpÞ[0݉ßcq„=w>2è5å›?篼 Ýä—NÝ M-ª1æ¿õÞg_m¹€T‘T§ãÄ[8‚Àc;7Í‚ÿ|DPOpˆÏ˽ÝKÎI¿~«{æÛˆFPÝ‹¤ gfúŠ–tҮϭß÷÷¾½xÜëRKfÔþLEjѹüJ7ø_`“YøÊÇÂW(xæ+íÄoeéL}çvö¹‡´k9fǽ7TÞñ].-â⢓,Ÿ±A-FçkþÂÛnüÛd|ZŽ 3!ÐØ÷Øw¹ÐÍ¥¾YðŸBdPQ¸þΕoþÿø§e6}êTa§?ôÏÀ„r€þ íúÜú±Ç6®¿3Õ{9?Ÿ‚2¼Â }è±H²08 ã»çD/vn=ìŸqM{â÷XXA׊+[O²ZŽYÄs½wP従 z_Íq®ÿ’÷>ämŸvQºõ#‹08ÅžƒBåÌß0+n^uûCùÚŽôß×KmšÃDZŸö"E(X€Á öú+²do úäŠ%O‰EÝï•¿h=Ÿu/ºàcù<Úù•;r«™ó<óWàºUË1K˜¡ ÷PO°‹gB”ž$ðìèÏ/Œ¬`kX-îûí‡;{ÏL¿p};Q¼IuS,šQ 1_ŸúäÚñ§Ðbo¡›‚iˆ|N©…ß%›I²³Kà¬je2ñÛÑ?;±ƒ•IZªC³Fà z_Õã]kV½ó¾é¥' ¼í¾Û¸ÐÍ¥ÞÙ÷ŸB3E5F×-÷®|Ç}æ?4ü4"©NK¢øyJ5QPž×à ‹žËÖÉ¡m0»EÑÅ#›÷oýþ”ÄïlT5:‡Æ¼5SžÏ8g'è}´’Ãoý«i¥€§(Lš_=÷ý& ¶þè)}xkrÿ+¤¶¯•(Nk§òg¿TãxXt._ím c»fÍç<}<ó•;rk~€ê\>kÁ¿•Y¢g3è}>8A-†Yyó4ŠÒ P(lö–¶àÓcb×Ô‚­®3_–~áúV¢8«»<©!>'¥ǃԢsÅ•2üDëù¬èXD(ú°‰ßr߬ …虯åÈ‚Þ.;¸s¶‚Þçƒq¨Å˜÷–{çuU¦E”fÆÏþvî>-Ÿ.˜Z°µä¦Û-Ÿ0üÔö¢qÉÒ:à¦T¿æªTãxÔæ­àmf) .ùXDƒ»¾sWnÍmh%~g#ù?£…èiMÙ˜P БC°sãö®4³ô>‹ZŒo½·HÕS¥™ LY Dzµ¸rÆiØ(c²`ëö‡ôá­é×ouû†æ0ªˆÆZ£8ˆ=z›2› çaIçÜ”j¬dÙàÕîàV Ó<òü§S¿TeÙlšß ÖM¹ô'BàIŠxʦž‚noFgË:)úÞûv}n½·ôêÊ;¾3›Aïó!Kš.Z¯úŧNT”ξc j”Cè@#ИôŸO›9}S‘lÙyk.yïCCÿþþÁo¼£õB¾›{VƒÕÄiSÏj*-žº/Ÿ½.çóâ íúÜúñÿÞàŸûÆÂÚ?â\ùÅÙLö¾(‹…g]9öø£p7IR§´>y3eÕ¾ËPûÏ”§'…RçÆ±ÑÃ…K¯ãRùÅÙ¿‘Y3ÜÀüd-œ›èË1uæ±}LøyF¨Ù¾A¸ñA·wsÖídlëÆ½€`ÕÍáÅU׊ӡL3çú/yïC?»k­[p>"~¾öÙ·V&ä}°cÍmmÝ '?²¸ãÍ_Àiæ?…¬`«Y^¼àÌ5c±ê|ÙmºÒïLœ >2õmÍÝ›Ìî#þSýƯ&À ¼ôÁY7’_¤ <ËÉÞ…fô¯ºrû·îI¾ø:ê:›ºÎkuÖ¯ b÷®~Ž}Ž"6¦6Ky¡ZðÑËG¶Ë™‹ŸÞ9,¿rÝÐWþÌí%ÏËO;´IªC˜ñA·wsûŸ›'ºµÏcö@—ûrÿJö¸ÿÖûð_·þòWЉ¸¸ðô¹k×ì¯X÷‰m÷¿ë9ÛwLzŒœÉÀ¦ñmš[7\qÕÝ7|XOñŸ—†1¦"Ð`ÂÿïîÎ×ÿµˆ#úÅ…~eÉÔ÷ÏŸœgÏí1¬æðà»C¯çR± XŸnìU_aìÀ`éâõ]×ü©>ë¢qÅl€tl ¹g ê¹<ó/¸ç *õPg½ñ¹8©ÉeF{’ØšQ 0ôÀ=Áyoj·Ë™mç9ƒxœõ‰ÓRÛëön"&˜í­~&n|ÐíÝ’=_¡+‹q$?Ã×Ô«ápµoŠœž·bu³9âU–nf-/¿yÕÛ°ý{“í;8¬d72¦o›[7ŒlÛmÛô]Z\uãüßøšîè@^^jA[¾:;ÞQÈ{hn¾[÷_¥ ݺ£½ü G‡Y kÐHpÖ«nÛ=¸%¼àmØ9®¦¢ #üÑW>Ñ÷ë_›æ–½Tùy´ïGªý³4voJdž4woJw? `ü¿ÅÞÌDO›{®8*”huÎSÅáÍÛ~öµÒë>‰ÌüÎѥР­àö<˜Ü»Våçç–½$»ït^<Å–.Ysôn|Ôdz:Âç>ÆbÉš7mýÙýÅWЉétúé%ãðŠ›Ïxæ¡êë>!õý”«”–“<2¸9Ú¶±pî«nì[÷©l/òòD Ì Ö#›‡—^ƒÓÛà+ä}lÿÞ=]¯ÿkìå¡N mÛLÑ¿zÝÓŸþmºä×ÝØn ÊsevŽE¨Qôñا×ÏÕG ¢»–’—wSnN¿ÿJ¿8†Øéè@cÏL!vã4cC¸å„·®¿4,õïø—õáÅ¦¬šöv9Ç­ ‚ÜWÏ{ŽÊ]î!öŽáçQMO8vM,®¼Ò~矸ÑÝœ›w²}EgVPÑûÒÛ—?»e×À¨°(~ä¯÷ÚJ㻋«ÞÐqî«3ޒΘ˜Ûý@Zпøì»‹¯ø¨Z°ê4÷Ÿó>¢Íw{K®ÒÅnÝÑÇþ‰E2‘AcþšJG9>°UwŸÓœ¡©ê'Š,Ïm¾;åBÇ¢ T¹‡9± .Ë‘.‡µí¸Ü_8¿ÇÀXæ„4w@ôÃŒð€¶!š³–®š±oǦ`á*bÍ~¦»[†Ä"î^cµrìbc: @1àRŸùömþ‚sŠg\»æ÷ò˯%¥ÉË#ÛŽÖÝçKÚ ž>~űðòvÿtCþ¢w`¿p9€(EÿêuOüâAÝ}ž¤ 2ÑépÏ*úXàô­»ÞüwØ/ž+”1úùˆ B¡- t „9lúÐòèçÿZºñ3®º‚ò‰·Œ}®ØEŽùçs·n½¦šñÔ7”_ó— ž!ö"«T5X²zÝ¡]ùËÖÎ~¯ˆFV‹ž<±ñÉoßÓuÝòg\£J‹t¹—½2?ù/ ë…ˆiž&ýŸy¹C››õZ°è|ÝÑKþÉx}‘AéªÛãm_àª{e®ûo4 û‡õ¥‹Þ¢K ue ÓãL4ÓsíÍ ¬C#Áh„+ß}¿Û=@’Ú‰Ô´óÒÇvèÃ1[+?ÔÖzsÀ2ßDq¬‹ÝºÜK3YÀ›X,Y½.Ýõ1ñœ7›@Ö¥Ë ný‡õ¹å×Î~µ7o…Wéç°ÊŸ’ex^°‹F‰ÔéÓ‘øXdMz·éŽÊUïÀ~NªÚÄ8Dg½ê¶hëHÚœÛN.}Ä›ïn6êå‹ß€ƒד2Õ¤>oÍÊnk>ò·Üø$µãÛõ¹è:YEãàìQMlâ¨Å^—íhÙ÷“ ¹å×B:˜QÇvÑjsh;76 æt1ÂÅ Üà£w­Í¯xù‚×|Œt¨ò]'¤Î°=ð8t(6=}nKG!ïM1¿å^:…<^æE§»àÆvK:—F¸ [ŸÜðþù7|€7oÍ–žTOÐù²ÛBO57ßÀŽìDÚxÁ=¦ðöHºŠX+Ί3È6IÛ›9r³pbÉYˆó”Ù¹%è>Ö~Ëa˜¤ÜÑßµh©9UªžÎ{XÖEOm|¿IÓù¯ý8Xy]gœ¨¶ÊéÀ&Ò¡”ù çš‘÷§šßü©Üª[RV¹Ôú!ç΋Š>žÜðþÒ…oÑ¥…º£ïXíjæXØBÿ…oûD¼õ‹æÀãÈéçöÂÚ†·ml'è*Ò&­MIRr \ÃÄdb21Û˜\Ì.f—°KÈ%,)‰˜€mÈöÙG7æ—_)ÿÏ|&¾²Áü3¯4·!ó¢ç:fÌfÅýòËwÞñƒ…oþG^e '¼~ ¿ò}_‹ŸüI§¡#÷‘Ÿ4¿=t‚âó±˜j„%mÌD«ÞãA!ýrã¡w¾ì6ìO(+vê¨' ³Öõ]±®¹ùoر=Ç8Ò>³› .œ!g2º’ÉÅdcØXÒ&‚i"miÀ4È4È48m°m¶·ˆ\Æê$àOnÈ/¿b½r/XKö)4žn$ V^i>6ÆœzÑ™p…_n|àžù¯ù¨.-ô:sP> ãkÒ=?àFwŸnFXó1Ñï)ëÆ§ƒ”U °Pw|ùŽù¯úݵŒNüÖ{Šp‚z‚¾7|ÜÜ=þo8ZÍšê3Kæ0“3p)l,&–4IÚ”´´Fi•’1JF >LÙ–ætD¥#:Qɨ2cœTÙÔÙ6DcÏl œEbYi"¦©B¦ß'êÜuéñ½2w^ôTájþ«?ô\¨Ë=”À'#¨…7|xAåB7ûÅS7qÓˆ¢ÊèæG¾ÒqÅÿÐåEVè”Í”h…"Ƈ÷ü·î>¼ù³º,“¯ÐbàK¿“r¾|ñÛT¹G…š‹ÙÈÆ!ÈwÌ«”÷ýèý¥k!¿@^`*uE,‰%—’Kab¸¦ Û„i"3¶iÒ*Ò*ÅãHÇ)'3ÎiU¥Um«ÚÔ´©³k’ÈÅp±FZòÍÐ7?X¼d={¡.u³ ¡ÌüfÓZ îiK,‰ PàÃOTë UYÆaÇ\ õR€…2øè]kóç¼¾|ÉÛuq!‡'r”"¿êæxÛ—‰§Ar%ƒ¢#¢_ò Ó•Ÿ[)«€¹ñÐŽ‡+WýN<ñ;½¨'(]u{g÷’xëØ‘§‘Ö'"Þ¶Ïœ’‹ÅF”ÖÉŒ#:LÍC¨@}?ÕŸEm/Õ‡PäÚÕÔøUÝ£Çw{ÕÝAmW®º+_&W&Wß6vùÍ=^4”Kžíll…|?ôs%K6"“KHRr°“wéCb1oå{p+Z‹¹ÎAbB¸RóÏé¼ú÷pP:• ³ÆâeÕHë¸Ð-iƒNBÿ¼Âðæf½V^t>>©ÜïsbBÊšýª¬‚…2¸åËwL{â÷ä`ê .|Û]þù5Þ/× Î“¸J¬ÎäbrFÄÂÆl›0uJj”V%©“‰Å&p†Å¤Ê%dC6%1 N³xìr &²ÊKáÇ• s…±§Xî;O›¶äH…T â‘h("B€(PV'6=v8±úÖ˜ïß‹VMe×,—‘NWcC;ÝòO¼®å§èh‘Á¹¯yÏ#|)·úÝ’6ȟ˹βy»¿Oé¢[xó–OoŠeNª²<…b€'¿ð~ *³–ø}Q4Ró׬¼á¶g6²ôúOÛÑÝÌš½I[a¶Û&¥UÄ£ uѸ˜6«É*IŒrÎ*±š¬ë)[P.¯§É‘ŠÅkHS.pÅúþÇÊ¥~Žös¾C¢Ðé¼è©:BÇ>“ž¦ ­Ä ²äJ?9ä2[eãYËÛaŠpµoó¿µdçÎ¥'!;}X±Aéœuñ'×çV¿Û‘_¢¹&pÞÇ|7¸}ûý¿š‰´Ó®Dó¯º=¾?Ì­~·«î¥ < ~lÑGþÐæýnèýÕ˜ÝÄïs£í ÖcYôº=²2züßÂUoB4J™ás ™&Lƒ“*'# Só 4»xÌ% XC° ç±óÉúì”X‚Sb5¬ã‘ÍkWp8€(#$)4n«¬:ËD{]T²d­W¯¿EŠ¢r"BªÍa¸i)$ӢϼòÐÁ'üB÷l ÑÂÕÿa}ï¯]—zýLÊÁjþ+?ìžBãû3]'O^n§2¡#ÄÁïý™t,:ß›w‡Ó¼ÀùìKY+æÓ–;¯ÉŸõÚ™¯Ð}*¬œœðxª˜ ,[9ë’ÞÞÞîö–\E.!¥™„Ó§ã*Uñ!¯yÀöùѳ^´_5êè°JG9ó̸—Ör¶š“ZÎÕs¶Nl®‘sš9i†y6R6òlSׇ 9OiMŽl¬L¤\S!ar "µ–á=jJóÉC1°gËÙZò äågç'˜®:¯ý?AÏ…ºÜ«rÓÒG±5d#ƒ%«ßoÛÀí™Û:ἇ28¸éþÒEoÀ3ÓBa6¥,Í(øØñ¥;LšÌUâ·…©ìqqõÈbù=g¯‰ò²1mçú>ކuc¿×Øç7†ÂæP!*'{Ëé³es¨h† éáBz8Lɰ—’ùt$oGsv4gÆB3˜ªN«WURõÒj`Çóf,oF½æ¡"Sç£ý¹úžp|gPÝTwæ»sÑ€—Ð鈲U–˜\B°S*¨O‰7‘LœdÒ„p•;ÿMù3_©K‹8[+|:кD)âkB_›L×I˜‹&IÈûØõÝ{J¾€×uÆ Éý³)e†7o{àž…7s”ø&Ø+‘v}µK5±é¹áƒcw“ø9—ûT-QŽëè°ŸŒøé¡œ9Úv5GÍ”kÅ9‚('Jà)ñ,Ža8'N@š“çX%I5ô:L2.v ©šIÆ\Z"Ô "E†@ ÒJH‘äÔ­Ô!±˜·buûGqÂ3±N ÂU}|tþK߯ 8(Mcá·šÿÊ·1ºòzøÿg¾V¢1Îu͉”UðÑǃß÷žù7ü)¯£oær&”y|ÿŽy}«I‡¤Ã™è÷°r>m¹óš ïò9KüNP—²'âŽÄŠ8 Imšøž.éxøÇŸÉ÷_®kC¾©úÑp¢Ar(4‡óvó l,ÍÃÒ<,i6KáÌd©êŒ!ï£S¢_f»æÏèC¡’Cetóîïß3‰ß‰©u!¡–½5p)Z•̹ˆM“MI5­{Ýÿðÿ3ßÌ5Âh_ò’mÇ9­IÒt&!›h˜€LÀÖg«aY¬k­µÎ:gsÖ9clj\b\œº(u©qÖ81–2ÛkŒƒ4a+ÓTiãqŽÆƒäphûfT»:¹&I ±š˜ÆxJ8ºAÇtkÑÔî&YÉ¡ƒ›þì²ù¯ý„.-<¹¹ /ŠI@èáÌÅÛ¾öçÉSß1{±µý`‹‹à,Zu°i60µêmúÐâЄøÜ¹”s•™so&л ¼ó{Ÿ ÎzÄc”ë:=#mÖkB+Ì+`~~z×5ÈÍëºú=¤CÝÑwr“™O së´AÚ40äØ."gUP0M6uNªˆF”­í°}²ƒdÄsMÏ5•m’KI ‰%±,"ä$‹qHö™ ´ZH8ɺ8iõìaµ,z÷ IDATDœµNض_"²"J"hÅ:Є†óFÊ;@ž°D­ñp £B_O­©¬œŠ——Ñ•ÚÍ_³u¶3ÏùÌù´õs¿C / ïÍ[¡òófBñ>"³TÎ~EïËoOÆŸž}¼ú£?~f‹î¹ŒË}þÙ7q©×ë»bòì•"€Žø{²È{XˆÁnº¿÷W¿ €üÂ,¤²N]Êšº> ft Ú²÷‰OïÞÔšwÃG’Ã; g¿z6¿-‡9㯠Ìu"Ĭ¸¦Á&dSr–m q<Æñ˜‰G;_œŒlÏ¥‡<ØbR¸b-à„  $PŒ´uhù08—½” 5'äëÄA9 ±$ Šk^2îyUmkÊ5­K[r¬ ‘S7YMåþŸoƲµbbræx´©ÕÙÁ¸7…’fl Ø š¡Í‡«ƒ;vo0ïú?†8b=C‹o}ÐÃût¾SçÊ¥%—…W½ƒctç¦xdhÿ£¢‘ág¶øg¿K½º÷ Ý{¹*÷M~ãù|bôËûS¢ßÎ¥Ó^¼ñ|8©ª,™`,c‚´{¢ÁGF·nˆölQäJK/_pÑÍó×}lû¿ÜšŽì ½ζÚMbÊ@œ_CÚÔiÒp$–!9[E2Š´J¦Ù"°3d"Ž«Hs$5£åEg›ý[½Â|²±sÎZëÄŠµYJ$ p+¸9ÀHÛMò¬k™YG @„Bⲿp$BŠ, S˜˜ÒH›z`j ÝP.aIYŒ…q'ÙÐ9•Ë•”WÝœ|í/sWü/7¶‡ó]Dzk‚®s+ÐSèïÙdLJ¢±Áxp³L·ø½¥e«s½¥Kßt-é_õÒÿ÷òäÐÓ¹þ5YUùLpøˆ#z C;6ç{ÎgA0X‡Ü’+óKÑyñ:_ÀþŸnˆFÆžùчÿ(òÏ~ƒî½œK}Á97q &ùÌ/jœs–uÑþtCÖ5v6gUˆ„'I+jo¬ lª=þE®´äò¾‹n,Þø¡ £{öÂK~ós?ºó:»â¶q˜¼P‘šòCf‘MT\zyPYœëèí¾ì A¥·´¬µt±ÎÎÊ V¼dݶ‡þ­²æ]ft噈霵‚xEè.á?ß\pû÷ú.TáÑ¥^Ô¾'e½6ŸGwnŠG‡ö?º‹=ºï Ý{¹î½bª³ŸùùœíyyàÑ»‡žüIçU¿ëu.QÅîÙ,®ä0ö­÷í9œ†çÝÂK¹¸pêò™™%’°Å;©=¾1ØíÙ>2ï‚‹K.wÁAGò‚¬ (QæƒPÁ‡Þ¿å[w½¥÷_àUú9W™\…¦NŸ›‘'2.'vnQWœp8‚e¤Š KÊ.–dÌ6ö›ñ=RÝÏqU™HgØJ›×8©q2okº9ìiŸDœ“ÔÂ8ç"`@4©CâJk©H•­š—yÔEXƒ2 ˜Ý¤2SáÔ"”º/»ô ¿¿íÛšwߘ‘g<:ƒ³›c¦.eþ(D$í+ý¢LÎFKë÷ Ì.1eVׄHHÃR–††Ñœ*i8Œ%éA×xÖÕöJsŒÒ†&«eg)M$m"iJÚ4&‚¤ß%‰f%N²6X™Euíd®Ým²•¥`kÍîuí7`l»Cà×êb™`…àÖ8“"•‰|ij×L%aIE ‰©l?™°ÀÙ…:qkLÀÒU/Ù¶õïÁ~¼ãßÓ°#}b€æÖæ]ô+ú/û¥›ÿôº¶ëÉÏÄ¢ÐÑß}æêÑ}jáÍ›ÞÉAiÚEI{ ‡žÚ\è9@ص”CŒ™JZÎ6Êý•‹û3>ðìÅÚîæ®•ìå¼JÿäÌÁɻũ†=/ŒLÊꪔš‡vè…ŠØBÑžM=›F7×ÿJff3ÒŠ€´×ºßK¦Ž¶Ê›ì¤BßF#Á‚—ýÖ‚§7ýü¾Ò…o6ÃOù]Ë)(i›ëÖØŸ¸¯eŽðQߺý8û(š¹.³™ÛL° 09"KH•Dšš¾Š6Šë6!{ÈÅÒú!iŒÚ´ia4ŒKÖÀ$’&ΤbRë gEàˆ2¢’8¸ö¯ÓdçÚÖÍC`Ûg:‘x…Êœ­"r œˆ±’¦d"ešìšì"–ÄÁ0¬kBBÜ*Í’“Ɇ(ÆèÁô™Fÿá%å•Wë°´è²[Ìç?M^ë¡ës"2¸êw}õCטÚ]ì–´9“füå¦Ü¢s‘YÈ”¼2ÎÇ<«Ê2}ù-»¸§tÅ»ÒÃ;ƒEçÏ^÷Â`Â¥/Óƒ?þ© yú;5·m,.¹¬´ô²ù½fÞ­Ÿ‚8°çcR%g2ë—MbÀ„e`ŒÔ­œë§ü“Ë£bW~ÙË\ta²õ2¤uàVHØ4dJ Ñv“¥=`Î^ iñ–„ $–É(vLÂd4¥š"PGye”©'ñ¸³£iö¥Î«ÞíÒÛiž«{”ÞT¾ôV¤OµÒú(>["T.ZG„Þ—OÏcÏl²ƒ¿xê+¿À5Gƒž E¬ØøÈd錧‚}ÅØ74ÿ÷½êÀOó=çv¬zY÷¯}’ˆE„µŸMÛÉÆˆqpND Žœ“v§ìm“ñìE’õÔ½âöÏ÷¯ßt-e×SP!e¿JÀÄQÙ:ÔJ©20™¾ $[;#-„‰ˆ„DˆSª(Ñl5Cqª)öÐð©šSQAíêM©6’•TuZ—´)Iälj`SrLŽUÖZç”88¡¬þ‰Ø‰1¨%sÓDIjÇ™OÅÜZ$2Ù­Õ·ƒ[1«„ˆÛo&ba&G.…I´kj×ð¤)Ô„mÁ®åw(neƲð3#që>ú¢=xû7ïÿå–sÞy?ë@ºT8#ë¼;Adpáëoß²ñ¯:¯z·ä |<¾íñ£E`Í·ô¼îcÈ,ð´â‚g_᥿‹ÿìêƒ?ý\Ðw™­“—S9 R˜¸­bc`&|4ßøØ7ïéyÙo-¸äf¿£Ç//"€ˆ¬a¢¸¬ª…5âŒ8Û*„…s™±efíaq‚kÀ‰V—Þø;ëOæ¿êOedœJ½VDùDž&ÖpJH)°¢ÖÂåžá™nSƒgëp¸Kû¾‡?ºöðƒ±èÍÿdF‰ukðÌWb}TÌàÃ_¸£ã¬k®y»_\¨‹]ìZ³íœu.›Š˜ÄÙDLâL,6q6…3âŒX1í¾ŠÒvÁˆÚ£—)+åu ¸|ç’¥¬>ü‹*œ¿ÎŽ«R‚N!OX ù`H“H´ˆG¬„ÌÙ 'PÛQ'Ç‘ÓL¬H‘09¦ÔçħFγ¡ç|e5ÍFÊ9NcçêHª”4´iúHãÈŒ‚UÈ  (pfì²²0+E9´BmLY™ ÅÈV™× J舴ƒ Ne#.DP­{ˆD{Îˉ ä£8_Sá¸ç6U+JȤ†r–߉vÐÊ ,Â2q§{Aç œ ˆÒ üµ– gÉK$ßLrÕš7\Õ~•Ð !Ž%’O)o$4ä;øÙ”CíDìÚ4nù?ÏE㜇ß¼;ß³ªÐ{¾ßÑ;½Öž±Áò—¼é±oÞ?»5XtžKjú ¬°{ó†Ž3×" €gÞî…z‚ò¢5WÜzç#Ÿ_ÐsA~å+\TeV3Úa/Ð(ØòéõÑÈÐyÿó«~yaص„ƒĉs"©3‰˜Ø¥u›TmRuѸÇMcÔDã.®IÒÈØ›Mö 1älfL²Í1©IS‘QÜðüξ lû~ÏëZ$BÐA~T Ê'/d¯@~’' …}ˆG¬™ µäe«È)vG¡ïk­4;­Ò€ã‚—täÐYðsžö”#ç[kLì7, Re#-iÀ¾„K–ìȵâ€ì×SL^` Èy ãÕXW ãÖŒ›zÕŒ7¤£éJ±”bɧ’K%4Zøž…vPDJD‰°µ r°·㜇yvðGß¾§m~óìM)Ú™™x-2È÷¬é>sucçƒÁ¢ó$mˆ‰¦kFšZE'‡žÚÔþ›Lo}ü¨§X¸ööe¿Ü¼ë[ì}Çù´RŠõtõ.8 ŠQð‘lÛ¸÷'–½áÏýò £—ýbÛöggš.©Úæˆi ›æ°kŽ˜ÆaÓ³QUÒ¦¤¹Ö¸Œ½ Çh•j)j­ëªZ¦­|/3+_ùþâ%çïÛñC­<ŽF(¨PX„Ä ÈË«°Ì®L¶¿ :å,Zˆ™áˆ¬"£´„Zr9]ÌÁ÷µ"§ØJr—BêÈqÞc_39g )å. ä”õÑ,:„BM¾¢ÀCà9&Q Jk˜ 5 5eÿÏbqpJ·ôp¥@ ZC{P íAk0g˜ˆ$[•š‰× ç3}ƒ&¢úŒeNiÑH*äêHk¶Q5cãÉÈxÚQ3åº)5]¹éJ±S—K3Z¾ƒv¤(gs%¨/Ïy4°iCf~1µÕéÓ?N9gy̾±ÁŠ—¼éÇŸ}_V)ÌÓ׃MðTæBM¸ÐÓrè…u¨'¸è·î;ðËåû¿ü®¾ßøºÛK¬9×9CÑGG:øÏ¬¯œ}]ç9×ù¥nŠÄ*óœMÄ4]zìA`)U¶i=x\S(y¤òá<)ʃ }ñÙzÊ(¥”&íµÒ=J­É©¥F*ÝŠl•jI¬”—M*j=P*["³µB5gr1Dˆ¨]óÙªí 'Ç †UH!E2®Ù°µZ0RKKÕ´TMJµŒÉ¶ÔärdK1ɧ”3¬øV´#M¤E” XÀDð…J~ñ­»+Þ œ¿¼Eà6{¥ý •–>Ÿ¸¡Ž ½üöÂ7în>ý`é¢[\Úà 4-éÒã'ZþsÐÙꫜ4‹z‚×ýéÃ_ú݇¾õù¯þh:²Çc=-ýû¦¢à£Ë>üѵ^qÁ7ý9–Ø 3UYl*ilãšiŽ$µýÉØ`::Ö"wq¶É6U.Ub¬§ œO·óH‰Gð-ÐBD¤ZéX"Ç0ÖC˜ËåsÉðv*/¶`ñsäå(UZòܨ–NF…%¢<©¼ïçü0çùžò”Ò¤<ö=†ª˜ó+E¿úf¥D“óµŠÍ>CÁ9«R%(—òy)å‹ižƒFžS_¬† ”Ñí©À‘0“çÒr}E ‰“Ve¿€I²0˜Û«Æ+ RÄÜâ6+¨Ìmæ‰Ê´V0 bˆLMÔD¶»… ˆ…R!±J,LqQe6ý±†ÉÕÓb5-Ž'¥jÚQK;ªTn¸Ž¦”#)¦È'È +Ú’†xå "œÓ4öÿ1iÒ}Ù-Zè${Ý”Lòó3ó¤: X‡8ÅŠ—¬ÛúÐJÝ2¥Ñ€fÔ‡[E”¤ü9$0€f ,¾ööû¼{ýøÏî+_²>Þé/8óTV= ¡FÑÇãŸ}¿M“³ný{d•g~1ë@"Ö8›¸´î’1ÓN«ûÓ±¡tüYÛF\#)1ZŒÏ΃ Èp>‹ È…-; Q‹pËo¦‰: ˆ!GJ ƒUX(׆‡ìøvÚtÜé‒1NF)VŲWìð])àŽ¯”˼0§_ûÊó½0äsa)ß×J‘0C3<&_CX¬8NÉù®ÀÅ’©tzQWL5©Ç9±l [h§™µ²Ú&!ˆÖ2]ŠD„Uf{'C-23˜!SæÄr;·ÔJµ¦-eÍa[U'"&ÉäéöÕiçÑ©åfkˆõȈsÔÌ«zI‘7Þ4aÍ/ÔL©š”Gãr5­TmGÝVšÒ¡I!Í ²Ö´b•óxçO¾¼àò7A$œwû¹“íï1µHçx,¾î¶ )«•O:e´,ð¾v%Ÿr Ç©£‘ tÞºU¯½mÛÜ,º è¹ÀEUf=-Sá=F!Àèïž }+}*("«: —Šiº´n£1Ó8hjûLí m KcLÙ†v©ˉä”ä•ä2à ñàâ±Ï&TÈkUýR|/çëÐSfO“§”§•Ǭ™“"f"ny†±–žV$+$ 'pB­éöBÈÁ `#’f'dyÚ› ÛÅA @ւɵVöžº9KÎ8—’d ಥ¿ö{ $VàZ'ÆÎQ&1À*¤›€’€ã㜊 ª‘×Íœj„Üð)ò(f$Œ¬™V6ç¥ÛþõaïE¥¥WKu¾B|ÄXš¨»¡#=ûcÆýàø‡aÅYçmýú…s^Ë~A…§N`}<“¦Çé®H .ùíû~ø±µ‡¾õEoþÇ#ª;N™¦Z±@øôúü¢s_÷@tP„ò[æ×XãLd“qÛÃj"í¸ô< 2­d\ñ±ç)cäP EÄ&ÇÇ~ì¯ÐùÛ/¾ðëú;oM«9ýÞ¢ÌÅMaLŸ9ý¾±#f\øÈOü­³/ûVŸ®xuç ΓÒ!ý&Ç âk´/3ƒ×·QÈh#†öõ~Âùï~]ìZ•Ʀè”Ç¿>}ôŸüòÏýŸù—?yxôâóßð]©ßvÛgdØÎÁ‡[˜…N®{Õý+º{ÅöüxÅå :eªÙ–pÆØD¬"úðŒ ò9Jyv¨X^àkÿl¥Ÿrp€x†25Ì6”“q‚HHŠÜ›$Q–š¨f-2ÐäQ5|Jy:¿cwî…nÇ&ö£1/jB¸‡œ¸£È>$T]FK“KQ Ô©xò`Žfçø¼¼Zò*-Uí?”;»ã3íþ×þÉGÿÙ÷¿úSL~ç¿óÙ¯úÀïøcß÷÷þã/î½á³Tà´¾±&mô²Óñ‘î?©‡Ç6íPT'Š*ÐÄž#: #$B<¨‰`ZÈ.–/‹`)¡étá/Ίía“ôà`&¤„œDØX ÂIû6J ¢ r!—ÑàJTú(;è+äJs’š‘\  Úg,¸p$qîR¿îêƒqu«×É44ª' Ò`DF ¡ †!/zX™•D7êÀ·)Ísc–E䢚d‰dNÌÃá0§<Ÿ:ñ:Ú©’Æî§åAæàL$ NDÜÈW ¶ÄÂd UPO9•äSŠI|Z[}ùW>üüéz“u{†ž “¡£Åˆ‹Ë û·Ž‰ø¦S£Óo•évîÑŒ™ßž^& ¦DD»(æ/‰¸…µv_öíýþÉײ;îÊç´ïøÊ÷_|àO¯î<ˆéÉ IDAT€ó°^õ_ù‡¾û£ùéõWÿ± W4»áÑÂduïÇ'v|âãuLÒ‘BÅ-‰'xB$fÀÂ9xQÎröÅk–¾÷¶ˆ‹•0š÷F^’3D2u]fá`s¤äÄ?DÁÌ YF9Ætô:…[Ì=¼ÃÍÉɛ΀@Í 5ÜlfiçDÖ‹›¨eõ¬&SÇr¼ž Êæ\´Q™Àp¡Æ­ Ùì4Ú]ZViti2¿›o!žiÒÑ’ªd¬t'’XÊS 3s«‰"N‘Üîe–àD$D‰H‚’srb#²ÌF¤ ª ¥dô•ýØÛßýûG~ª¹Tžjnè€ä@Zy°ºù·ÔfR|ÑïúÖý½¿8}ìçú·|©—¼†ýúþÓ”^þ©ÕÃ/Á›+Bº‰^'D4d†hjµXèÁÀÜâ&-щe×ÈKT,ö}ÓŸùáü“_üê?øÏüëÿ^¼ë¶ëu‡Ï!h›7U#Ë›ãK~Ï·üâû<û»¿}üäG¸?“n–¥"àZ½Œ:îlÜû4B'²*n¤Ñ5¼* ¸…Ñܾ·{y `[Ù›»ùüâÚ0“´Â²Š n˜r–ÄNäĉÓ"ë¡SkÝΤÂ4LÃ,¼9ª«X…0£y`îí7&ˆ°0w ˜2wƒ¬¶i[òÅ‘ö{}º£A%ØB"$È`„ÐÍÈ—N ˆ€¢)nž ‚%€ ’j4·Û¸SæEÒ*Yf-)ÉòƒÜRqœJkæà”ˆ83KPv'aOá½y{©úøÅ—}¹Ó_wtÌãˆë \u±¼·ð@ë Zþx“•ŸáçϽ÷­_òÞ'¿òÃÝÃßæeÏå@ù³tÂ<Ÿ™ßèH‡GMë;À›'Bº½­ÃŒ%(‘¡]ó•?³z`@ bŠÅ¼Ñ€2<÷{¿ë¯ÿÈ_üw¯~öom^øƒOþÅ_ùø¯þØøk¿yÐÞ~éŰ~îk./ïì_úùͳïñrn=OVZ¥` +¡SÔ VØUà=ù@± hkkáá4ÏÔ%†}ÉÀsÆ|æ[‹Ë§L›æîN„šò®å.IíK"#rJLnç*¢b~ÂÌ£„wm5NLæÐÌ#£1ŒÜ4ÀnæjfnfpgŠ”¨hµ¥íEl.êî`SõIÃ-ÄÀ®™B––Ó+j¼´0˜#KG@8ZÒ’ŠgRôBê  3ø¼t‚s3L7‘&lâ%ߤåàîœq&N@Vp@NâÜ…ðñѽgÞ¾“1u¥ÏãS0‚Â*HxsÓlÎ7tíö¾Éa\ _úõßòþÇïÝýÜÈÙ³«/øÚÛßΟÞþÞÛÏ oûê|ùÖOÿ§ÒG~êƒgoÿJ×éÍ!½6z#Œ¼F”𠘕¡ç9€çù4\ G"’€5iX{oåpô_öÍ¿ëò'þÎ÷ïÿé_={î=_ðUøîþÓõ½/Àg ÚO9Šâ…¯ûÀ?ÿÙÙ<û¯ÇÐ#8/8±GXhñ2A [%XF$Š^Ð3zAj6·EX\nZÜ´ ÜÌ æ”­ýJ‚œZ¦EJ”Ò’™ ™æH"’Ç,¨Å,fo¥~ R„7ãI‹Pwr ÇÌ6†»7ÐÁÕDf¦æjV‹ªiµªáFpÏ+_ŸÕZ­¨‡Aì‘ &Á‚håô) Ý0–Ü{Šç6‘$„g%ÓI6ܨ.,NÂÌѬÁ€…ÔÑR}ZÌ=xIø ^›­´–”ƒ3svÊ@â¶÷É(LdièVAÔõiÕÓÀè#:+{k_TdC4Å4HÚoN!í÷x³+êj8ð¶{/¼ï…?ü_¬î¾-Ÿþêÿ}ûŽ>úø—ÿ·ÛÏ|üÿüSãão?3¼í«ÓÅ[Ó+þÉ{¿óßñi÷&ˆ^[9{‹^Ãä{`¤™+“5¦ #ȃ"R  $Gf¤ Œù³„X‚, #äXýí¿÷ÛŸûªo.Ÿë/Þ"Ý0k~˜?KÐÞ>&Å;þÕïùáÿ©þë¿czò’ô[éS»àÃ=ÌbŒTOˆžbE1H¬]3L=ÍÛ«Å‚‚Ñ’xi6m¤%cCZôæ„.Q×”wiÑèÍ¥u³ŒˆÀ®ÖîGsä*Y°”É |Œã¨cÑ^•µ†ˆÀA4ß¼qËÂÃaf¦Õ53‹RÕÌÔÍœNx½J—ÙÄPG€j;ÄkÄ Xî¬8¹þ¡Õ¾··33Ïv+7.Õ°>‚1-Clš´¼Àc ‘‹—°:Ý8-xu"HpÇ”6pe:u¾C±Z­ïœŸ_ÆúlÊë½öOŠ<âºÔƒa4¯áÔ4‰m=¿¾8™|Žf=Ÿãáj¹»ÄêîÛV÷¾Ÿá þLÿç£ñ“ãã¦ããÓêÒ¦}¸¾¡_êSú^7‚*âH~E~Í´jfOLY˜X0#s6ÏîY]G6tà ê9<‰¤¡“Oþìÿñëþ¹Þÿ§û‹·äí½4lnl?ç€&ÅW½ÿ»_úþöƒ¯øV+éVsên0#S‰`ŠDÑsl[¡¾-¿ a–½P5|A°‚çèmMoƒa’ %J‚œ©t IHf›(šçŽ´L°@ãNpöp4S°›¨BJ^Ãd¬ù8¦Ò—Jµ³„0S´ãæÞ6µPv3ÕZ0óªfîja^N"ÜÝù¹1GJFTœ”Ä‚aÄNÙHœØ-¡1Ì¢EV;!Ìó•Þjãvù#ææöouÅ7£.0 ' Bƒ¬‰™>ï ‘sî”oøhß iCPfÏl•“I‘c¸¾íóùv³ÍçÏë1†M¡õ>ºƒÊT¸èÑÚÐ99  j«cÜø&WǪ̂­x‹¸Q„|Ú|u~ò3 .ßõ5h\h=>éï¼Ýµ¼Á_ sjÊN‡E{ÆUÂuæ©í$úÄ™“H¢€ª«±9«ru©žª%Šl48õޏ[I/þ‡þîŸýWþÈŸ'æ¼:OÝs:‹ès>¹“â…¯ûÀ/þ¹ïxðß:=ú5îÖ’r«6ÉÍm–ø.飣Ès‡q3×°TÎ;­ø&÷¦„œ) r `A–²:•—Ë ð9òcÙ@Ь˜ d3˜Eµ¨á•¼˜Ò¡ðn<;ŽÝ4Q)N$.Ìípsu7s›ØÍ¬ªšy@ÍÌÃ=ªšZu ¤OÙuMu’ª¤Á懳k“XAàM°!MÀà7ðÛ °»©®[&€m¤µ×ìN‹_GKÑ̘vØ™\”¨Qˉx>ÃË@«)­ƒ!g‘Èâ9iê«ôš‡.È/rº»ê.‡ál½YñÐ+ºÊª×®ã|]ÊÅH…B jH!NÌä™÷6†Æo8 áÿýÑÞ{á÷ 7¶À ßþÑ?ÿûgoûªòä£iuñyn$𛄖zœ(àí"7 0&¡£Ð1ó˜ÙzF&ÀKîfPg fc2ªž=¡7ô]7ôûÝþÕÿèÝïÿ3dÓpç9N)¬€›Ñ 8Ðn'{‡ÏÉŰzî½ÛýK?¿yö·E9 Ï×H8»6MOϱ¬+ #¤Å°Î—î7–7O¶KöT3§D]š+çÄHLmqa«?Zš¢e†‚Ç<wk-¹GH#/«†šW£QÈ‹Y*öÇ³ÃØGz£È.Ò&9n:w»áîn3Xm¦Õ<¬¥æ 5W5ód`pfYõéü,–»šr¸àHAdhVT HBž©Ém[² 2Ðìq´J”Á€Îó›Ð=ݳˆˆ—ÆÂhî=" °5w²ˆP<‹†‚f+]rf%1IÞeïzíÖÚ­CÎrz¦î÷«ÝúÞ°¹Ø¬¶i5w+“.§>ÕNB¨*yaŸJdlÔ9gDÌCÀ)‘!˜Ú´éÅ0ßúQzcÔ©ôÍßû7ÿÚ÷~ýñÕ_é.Ÿ³iÇyõFx!s‘Ñú6ø%09£qzLHák1¯^¦¢S5 µ0k=žÀñŠ0dÎdøÐßýsï|ß¿—û”×+a=€;â Nàtº`(æJëV$Úˆ¢x÷×~àçÿÙlÞò%^¡=–鈑0­3o™6†Ð ó>[Ò¯Ý ÝXŠ,f€Á‰rFNè2º9÷’æÙ5/‹€XÛ\í-è˜/ìmƒ'›¡VTCõ(î…­„ƱÒ~ÜŽëiJÓæ"Bw7ÕjVͪ»y›5¹·¾×UÕ=d š.µ¨ƒAˆú$›U"J»UÀHrPrKaâ¬äÄ€P´txê ç ìK·Ì7V²7ï…ZÏmy sé´i÷Ü @N o¦*R%[ !›À9å‹þüþpÿùí݇Û;ÏÜyð–³;÷¶Û³Ô­Ài°È‰ƒà*b“x”Jd¥Î£7î=(Ã-(EHà@×õÏ3†ßÌæç¿æÙÞûòOþÏ_ô»§Gá¼–áõËéäÿJó—Nƒ”I:ŽN(3&˜«:QJ”¢ÇqÜÊ4yÛþp°C‚;J=Ë:uÇÿñn¾sÁDõÊÂ^ +¤Ò7å<$QœpLš™qŸáüP4Þñßõþ—õó¿ç?,W“Ü<ó–ógß~ñð-ç—w¶ÛóõvÛ­W)giPæÈ¬™¦.öC\o|ï)j2‘ ­*oj¬ŒãuÐÊ¢'ÊN­7”Ï»œ^¦ óñFxRú·~Õû¿ûC?ü?\¾ð Óã_ç¼’Õç§Ú#¢¸¥à ‡ðâ>˜ì+8îÊñÉ~ººªû6Ã+‡ Ùl´B I‰Â¦'Ÿ¸¸ÿNÞ½H1ÁQ®bu7V÷b¸KvvN¹ Ö£ÈGsjs¼6¥Åáè5GÌá_ú ßùð+>0=þ(?øBbaI’êV9¯D;öD.“3±·üØ `Fªp²MeäD]BŸÐgê:$n yªˆšòytÜæNኪ±ÀThû¯µ1·kÃfa†jT5b‚¨NÕÇÝn·ÛïxGN¡¬!Î-ýšÕˆhñjæfæZÕ`s·˜»d°š«¹@Æ%Ê!Ío64!2ÛH>1Wö¶ÆÁ=Ø]ÂÀs¹¹”ÓY¶Ÿ ],üãyµ )ewéó ©ÂŒZÍ|Õhšeªà)œ zM__öw®Ÿ}ÛÝçßzyÿÁ݇Ïï?Øžm×úïû”³$Á<¯V'e÷tºzezüX¯ŸbÚV8¼ã\x3ùv¢Má­É¹ù†xk¼Æ¼´<¥W{1Üú…›˜yƒ `T|Ñø®_úñüÄOÿÀ3¿ãش缦ô:ÇÂ-ãÍ=èÌe p Sd>´sK(2VŒÓhõ8Ùñå(^D¬“H³Y9%PŠ(»§›‹;쮎ýôŠêÙŽôšüü¿`?CÞ ¯I' "nøñ Õ±~î«/.ÏÿÅõÃ/&8w!ä•tkéª]ÔÙ:ÜADÄ6ÖLÞ’NÔÈUÂHB9¡Kè;êr›9Ý$[¸Ë:lPS·C5´BêP s˜©7÷ ÌCg5˜¡Z¨G‰˜ÈKXJ=¯®®Ö» l‘’„P«ÅÍLÝÕMÍ´‘Í­eZ³ vswõ€»{„™5ê›Íl/ŠâÔ"'zÎkÈäö‰½jk¯IMŒÄÉÝÅÃ"fk¡h²u¿ÀmoËIWÏX0¼–i Þø¾DïL8'wHA…¸Î5¾Úæó»ëo¹|ö­÷Ÿ{ëûÎ/Ï7çç«õ:w½¤D" BµNÓ4Ž»Ýõã§^~ôò‹W¯~\%öѸç®ðæˆí1ÎŽq^üN•»SõjØ(¯‚‹+óiù9Ű®>ôÁ{/|=€ÕÝ·½Q@5l.Þö;¾ù»üÿ»ËwîV)Ýý¼þÁS¦™Ô; ŽÁ|pï+çÞ¹ 0ÂÖ±nE7½÷‰CÚæáz”{óH$4™í}Úyì"vn»ð]è.l¿ƒ¸@l9­ +ˆÃ±#,° Šé„P~×7ÿâ‡~bó–w»"D’ûèW”¤Î%‹9ÏÀSc5rˆ€3I†dJ©‘r• ºLI@ѰÀf k>óÂÎZ£(Ô`Þ>Ü_‹‘A5T¡NգµùÙ–jãxØ_ï÷×i#É܈$fÕmàw¯>pË·ªÕ#"¼ðDì F-\¤ÜD ΞW‰eÅkÏֳŋ†©QQ«*ÕÌLÌÅ\ÚDÁ6-˜ãÅ…§¹ºGsšmwZXå·rµÓíô;{‡XP%.,§’zï7¼½èîÞß>|öòá[.î?8»ww»Ýö«!õ= ƒÉäîjµŒãxØ]_]=~õñ+/]¿ü‘éêåìO×ißIÉ‘sMýHÛ#¶{\éÉ»1î(…+‡+…Û¬®kM>Ǿ~g6Ù8æ^w¬xç7~ÏOÿÐ_xåŸþ¯Ïß´iÏyÅùušªß$aÌÍ8V` Ú8OÎÒ$CÍýˆn‡’p&qwð»kÛöÞqB¼&"f¨»{¨E©6)&µQËQqT¿6ß™íÜîÄ%Ç9Q%ôŽ¢  ‡ÚŽ-šg4ów¼ïOüã¿ñìó_ûïÛÕËéγ"D)G7¤n Ü!u^› ˆDB‰£Q %#w”;Ê=r"‘67š·$Ñb¡Ó¤¦¨%s9 hv†ª¨-ý:<ẨÅç‰gƒôaÖ¾!Ô¡%×°ZÓxØïw»kÙˆ¹t©m' B¸©»…©jm¤Ž†C»{£`µP ÌT+¨ ¹¹d8ÚܵÁEmÄf #wÂÑy8ˆ"+Ìa†ª>–˜4jõjN0sñÆŠ$àKØ€ x/#ƒ™ÂÒæèË…†›-3|Hîd ‘&é4¯xsÖ_ÞÝž\ûõuØ¥!̰¦aÎDZÆçÆÖºíäCmÖ8æ¶À¨xÿŸú›ã{¿þA3Ýü<ø5-X4Q êëà3¤J½¦Õˆéšu7Øá2ó3kþÒÓW>¦O^YÛ£¼Úw>&WÖ&öÄÒw| Ú ‰ÉJÂ$aŒ  ,†ÅÜëÌMýoÆDÂ/ýÄ›ÃâÀíõ¢cÅùó_óÂ×}ËK?òß¿ãý—ã'eÝ­>O^€¶î•!p._Ý)"õDkN«ÜõÜ¥ÞdÕÑfEçkÜÙÄ&C³pv'U7¥¢6%)ÕŠ«F-Q«K+%öÕwÎI#Û9À:¨êƒR ;$¨0Ï¿V ów¿÷þÚ_ýÏÓoÿF½~1]<Ãè²t kÒ>{MäĺóUÏC]Oý@’æ¥ÑöV7ãƒÕG-PE™¢TƒªBk´ÉšºrŽá»róù–Üzöevš$æ§f¦Óx<úcï KÁ¡³A—»»5´Ï¹7æT5USu³A8€0 /$™Èæ;qó'ÐyV¼ütU+jUáÆDIX(H…RxrLŒ)@äzrš£Wæêü”YO øÖ3K$ÜжZÄÔ<²œ“w­Véì|}ïþåÇwžyæìîÕv›‡^º".jjªZŠŽµ»'OâåW>öÒ'?öâñÕ—åøtEt´®N0?¸’Tªž*rA©›†¤ÄÆ­—! Ÿc8fì‡"[¼Ïp¼‰np£â}üûÿò·½kÿÒ?ß<÷¥¯›×±ð±NÛnŸÂBQÜ&·ÉÊ ´q#Ì.ÄÀ„.G':dI85}® ©P–èÈ [u«î^I+ÕŠ©øTu‚—KbH†l.æ\BTÑYT‡øìÓOÍ;Ü1›Vô¿äáÃ{ñä—‡‹·ä¸f1dÐ’vÙ{AŸ¤ë|êÙVÉ7}¬; RBîfK ÌáWh…)´P“ETRPj¨Í1¬ŠðEñßì; ü57ŠyÇgžasa\Ób²åîfµú4»|Ìæ¤ÉÊa´(‘bnz­‰Ü­q¢]ÕL]ÛVš 7TcIÑ è[ôª×b¥š›3p5¯ 3‚ “%Ê&…uÁ‹0, Ðh À»Óƒ‚n\£çgæîkIgsô2ÀL$ ™5 B’dèÓÙº¿syùÌý{Þ¹wo{~Þ¯V©ëH8h®\¦2ÓXŽã´?Ÿ^?}õ“ŸüØ‹^üõýË·§VåÊÓ¾ \»*ÛÑ1™– ç$½å¡kÎ"¯qÖ1'ðÂñnCÄò¶4µå²Ïåä^ÿšã·*€œFJ¿øÃé‹ÿØ_þ|xtZê€Q8P G²kÔÇvx¤ÓΧ+šžryʺfsX ¯†"='‰Ì &¡%´Ù GRÏ5\ÙŒTY•ªrA”Ö‹IV^²G&ã\ÁÕ©:4Üœl@¼]Þ)ü=_ýûþå/ÿüæÁ grt›¥@fÎIåUð–èLpÖQ/ÑuÔXDÔ<Úö†Z`Jµ„7îTE­(unb¡ ‘ž9WË`É#Üq"u/ˆëâì1p,ª‰ðpcSÕ(Óñ¸O‡ìOaÔD×ͨË×#Eº!Ñ-ý6oȆË ÓPÄ<Ü êÓ¨eÔ:©V sxÀŒÜ.,H™rF’H4ï(%§å†sµ>¿(œ–BúÄÄå¥e˜×Ÿ¦Á‰8Aq&væp1ÎXõr¶Ý\^Þ¹wÿòîÝíÅÅj½Î}ÇI@쯦ÇZ®®Ÿî¯÷‡'OwŸ|üôå—ì¥ÝË/éãWÓñÊí y:DµÉn»ŠÑ©89sô½ùÅçw£?GΔ¸IÕ—÷fverQƒêÂéSü;ñ&³8ð) àXñåôûéÇßùºy'Ñ-6q°ˆJ>±¢>öã'êîe=<õiGå*×G=éy¿’iÈ*â²Hï)Q¢`lÆuU‘¤º‰²ª‰‡ÂÝÙ= ˆ*µtÓ”ò!ù˜“ò <ô‘VN©FRguR‡Ô]Í«…š»éƒ¯|ßã_üû÷V¿ÓË«"ÌÝA°K|ì»Òote¶A¬+`HÄNŒ™NM¿T¡ŠÚ`ª ÓÐÒpãhUÑ–~Ãê3Ts2i'ÏÍÀ³'<mLÑÈFqÒË¢a„“;›©Zx:æc‚ÃÙŒÃç1GÍngvÇl‹Ö‡‡7C¨ö« €0˜Vójµzl:jÕª¹:yp¸44ûÐÆ*aèS0Ç–áаÞëˆz ›¬KM´ñ¯ ÙfînQ6fð™…8!eÊ=¥Ž(“³À%(Ëf•ÎÎÎîÞ½¸wïìòb½Ù´y/‹´³ºM¥ìÇñÉÕÕ£W^¹zùÕÝ+¯\â‡W>¡?Éû'©ìcÕªª#û•ÇUÅÑHƒÆÉ?u IDAT‡Î§ȉ†žVkêrt@rk7àÓ=‡˜™,tSgÜŽ’‹#Üg¥Õ;>52Õ1*æ‘Òëæu´âï$¥‰fêz„î|ú¤í_®ûG(»dûäO·ÝÓ;ý~›¦M®ç]Y¯cÐÔçHšÛ(-Ðy¨Ú°sŠ`„73r2vcÓ4•ÄÇÄÇ.×~ >ç´ê)wÁ)8yˆiÀÔÍ£)ÚM)´®~ÿ7=zô«ér¶ßK~ÚuO:¿îíÐy`Ù\V}špØÅõ5ö{Ô#¼ *` Ù»“œ– Es c)›i1öjÜrÉ$B)gá@ŠÔëfÓ_œß½wqçÎf{6¬V¹ëY‘€(ÜÜ¢ªÇé°?<}õÕÇ{iÿÊË㫟,OÑî*M{±‘¨ª«ªïÙ¯×5ŽNÕ(€”¸@ÑelVqy+ĺó^"™QqXÀ›QðL´Ùžñ– ðV>±8Âí·$€+ÞùßóK?þÁ7Äë¸ cÆõu‡zEõ*c¿I×ÏlÏ]–‹u]§ºNõ|Ew6±éÑ18"ê ¤ííh|‰ÖÙqP[Y 'u"“bÌÍJX€ä´Ú¬7ÛÜ­¸ ·‹« EÌÜCTÙ”j)÷ÞóÛ^ü…Wyˆòô‘Ä.ÉUâ§9vÉâS²ÊbT=f$®3£V”)@e§VèRZ«Â,Ô`0¿É¨Kƒ Žˆ¦‰ÅÚÒo•ÐsB¦Åð¦ÃÕZjG ‡cà×–â-¥Ÿ²AChN#š#˜ºV«ÕÊQÇý¤%¬z¨‘…¸gDG±lwº¸¿ÆÝMœop~†³sl¶èH5B Ó»kvåÂf•¦S×âÕ¢š©{soktÍPJèòY n0¿ ][„DnsRu¿éiV¦„[[¶\³3Lõ°Ï6]Ö±¹Gë… $sÏK~aŸˆ§Â´-mhÍI3¬4Z}št:Ör¨eÔöªÉL"zò ã qF¸H¸›q?ã^ÆeÂc¬€ÈL)1ePš½ÿ´Ç¦Ç¦Ã¶Çåšž>ÁÓ'Øï0qØkk.ZIÒNÝ솵¸ö„ƒ€êÈ •ùwvf—T£³´î·—ÃåÝþì<­VÒu”šu%湯šÖZ¦qw×õé÷ýtcš’ÔŽUÜÃ]#"zFe@à²x×Óf ó•Ÿ Ø®°]c;Db Ž b”*:+yvtH ñ¶åíµÇ‰ÅnoœÅÏÀÆŠ¯ø£ß÷ßù…¯×Ñ`¹Æ£DÛ3'N<€W$±SïVC yÚnäluBGhêð0X!p†-T3‹Ýçl6[17°ÔÜ ÅTÁO9éÎùª;{º9ìWgS 0!ã¦*à¶gÍÎÂ&œV—DI-éè±7•–á·á•ÂnÐ-ß–:OwÛo³¨(Z»«‹¹–nų/Íí .å>›ojܸ÷‚}ù«ö·4c×1Ò®&À½‘˜O?ÓΡÁ±8p- ^À#T½:íkU«¡©e``Ú²\fÜIqžpÞá2ãN¹`CXú@gÈ9#)d1$#2FÏÒÉ«Œ§®w`Æ8‚*]¬ðONë³Õ΀©Áƒ4£\»>òfuvÙŸ]ä͆ûžr:ùÙÆ|fÜÌ´”z Õ)ÇäùŸ^o‡U™’Ò i”ÈÓïÔoú\®§³ÃÑê>âÚqtVGqòp «pƒi¸5´¹Éƒ:³ÐgÅ‚úÜîÎaì3ž| `Ì" à…ø fîñ<7Ìþ™rw›ËóF“8q%æ°oþð˜%ô³£XÀÜ«F)VF-“iµ¨†Zs 1ÂVæ}n[ÆÙ ”€ Á³˜Ç¼a œAæ tŒ^Ðg¬z =²àz:¼Îçêôh¶œ#f‚6~ XY4ºœ×¼>—õ–»r–˜¥Mm_†GÛö\‹M?\ËqŸëq͵çÒå ›#Â)¤¹RÂPÁÑ'ÚôX¯qqwïáþ<¸çgVÄ)Å)UêŽ>LØ–ØšŸ¹o#†@#ÆbÂ4„o—Ðo<ýâ³0€±â]¿ÿ{~ú‡þÂëáuœÀĦ#'J=çµt¥.kʉ³Tá©rîjΔiVý iPf¼ùf”?aaŠªÔ¢¢Õ®Z[Ò ó0טªèXè@g×›Ý~5Ž\'ô œcYÑÌ Ùd6š!»1Ž»ˆ+ÃÞ¸«‘9|®™ÃÂmit`¹ðmèx–%œøìãá·‘ç6:"ŸNÙ‚ÛÝò…Ç­¾|æ‹<¥Œ#ÜÌ Ö\C,að™ÁˆÖ«/ååÉ9%¶Ð ø)ŒÆOu0Úó ^º5ülçÍ ,që¯qä ?©=ÚšˆÅÐn.nÞ4C Nn·<3ƒ›…š›…«™êl9ˆ ãÈŒ´ˆì)füÒÌød€Â ¼À&äÖ!õHdu  tÍäy䌔) Á™ÀsÏýí<ŒybLŽ0à £Æf#Rb%R‚"$<܉‰‡ÅÍ]½AŽeâ2uVz¯}hO‘$Â-¸…:Xì ÑA l¶8»ÀùÎÎp¶Åf}‡”²¹T"Ž4*ï V{¿:øÓãq_i²¦ n¦'Ç»¿ùO‡+½k@†Æ¨¸ûåßrñCþsæuœRFÌp' OD‘©3Œ^•‡«ˆh°`³Ïh,Úîe‰A ï” iYn°Pc› ßÂu0‹ª^a€Õ®òaÚÇã4¥2z‘ ›¨!±íG<Ô¬Ö2MÇ]vVO'‹Ñqpž"o 1ûT52,ÂoϤȈ›jÙ—0>YðÄr†€÷¶çï6ôz›D{ƒWÓkØæÇ§ a¡|4=o#fßz?è$ Ü+3µl$«Õ­ªV…·•#`ŽL!Kè¶ÿEÕ0-ƱÑ&guB×!÷è:¤¹Gš&Èéç0NJ³;4¨í楫÷¬þv›@9œÀ·Pµ€º¨ªÅ¬Y±›–~Ìž$VU§Ð‰µ°× KˆÂ\£­ejË\ ?§vÉe ëÛ~þXçuịªKYóxFû;vu]¯v¾;ú8y©0rçå¢hKàÚ¦ÛåݵOë>Ÿã7 `Œ§‘Ògåu´GsÍA"æˆ žžþê?‚>Ùô'IwtøØåJ-ºªn˾¤›µ˜“Ë\B·$|ÚˆsóA¼,/ù¤Ç<ª‡“k1™Êaš¥H™¬pŠÊº˜ÉÅ äªy©uûq=³ëI}t]¦Èb ËÆo¼å[=í|ÍÝšý4jã[ –ª jŽ4ºõùôZ>åã4@²h@4ùr¡sÌVXzȦ%º¹JÚ²`fn[ÒÚj¶&ã×êZT«.§’˜=3:AŸevÎ7@eÎûPƒÉLbé*º Ý„Ú!· ]Ajþe=¸uà„Db˜Á´À 6İ:Ø—Fc©¹œ€‹pê®f¤µLÓx<§iª¥ÓJ* 'Ÿ+4SÕ2ÆÃþ°;®m:Š–„$‡„¹Y3·j£#N IHr‡¡ÇºÇºÃ¦ÃСKÈá`šùïB•§5Žç¶»(»§e¿³Ã„Iµ‚:mfšKåÕL…ç7×í³‡ÞçxüæÉ6Rú²÷ýÛ/xÝš¥Ã©/m ØÆ/Aðô_þÔøø£×ù©º{éé‡ÿa¿éŸÿÒ÷2×óûÏM×/¯Î7þôÃã¨ãˆ2…)…EðÜ<ß*›_h;¨ôÚËyhšYÆrµR`ÍoBMªJ9Ö’êh’31æÜ¶l.˜xÓn_ö«Gõ:•Hų†xpÔÚŒÏq»TÅî7Á|ãð~+˜O¿5Nåsx›žžÿ”~Ík]Êš›ÅK´¬€ rb"nD.k–±øÆÌQZËÀ,‹oÉÿÇۻ˖õa¿ïûÖZ{ïî>{ï¹3£iôà!„$°+BRä®T€ìâT¥('Ä„*ˆƒƒË!'¦‚œ²Ëq¥(RðP±œ "e»À ìâð0#!ë1š{Ï9ݽ÷z|_þXkïîsg$f®½ª«oß>ýܽë{ÿ~Ą̂çqå}_<f]bÂÁ!H«‡(æo] © ÄŠóŒ Á#„€P\„(\†P „jÎju0e«Ýl7:ÕÚ7BåÄ,°úË"¦8îwÛëýn7Žc—"ù*LQ»VJNSw×Ûû÷î=}ù©§ãõe?í5GÕ¬Tª’sc¥ž'ºçKè=úº\UujúdÙ‹w¥Ó8øqÝíÏV×§ñê*ïþè_ýƒ«ýfŸú”ÃGÿßÿ[µ\Ò'~ý}GÀšc›·žyݘðê;þÅû'n}ÑŸ$ö2œÝ¡1küÔS÷?ôË÷ï§{¾ÿû¿ïÿÑÝÏû²õ'}Õ—¯~ÍKþã¿Râ§ÊôÉñò#WŸøÅ1ï>îe5—»½ŸÆ’m³sÄ1Vˆ@"(KWiÃ*èPÅ$f×j£•©†[™Ù ª\ʘó>'I1GˆÖܺ•U-VÉÜÒ4Åýt½OÛX¦ÉÊ”3uÙJ´9¦9]*´:û~-AuŒÞùºYÅãhÖ”ˆ«ã¶¸ôìÌyãOÔÖ†X…—ȘLØ<›ãª0Cs±ÅmW˜79&ç\ð✈@™Ó>Ut"#*Ã×¼±ƒgÔÍæ ädE¢"BÁ4øË ]DJˆ~‚áGø ~hQ± ˜IÌz¡Ò[ÞPŠH‘b´T`†„™‡ˆ`:£X­TòŸ’‘bÙï§Ë«ñêzÚiŠÎ{£JPÕH9§4NiœÆí¸ß–8ú’ª¯é?DȬXfž7+W56o©$Þ³FL|V ±Â’•ˆ²¥é*ìwÇüÂýßá§~Ë0¼9ß ÓÞÅ(¯}Ë×—JÚiôªÿæÇn ø›_€‡0ÆP×óp,¸¸xÙø­ßõ_ú{¼é[®ý}ÛÝÛþá/ŸzêòC¿¼ºõø#_ð¦Ç>ïËV¯yÃÝwßúÎãMÖŒÌÊ>§û&¾Z Ô¸lÝ4Úö:íwHÑJ†:ÕWê);G•5ò4¥–+Z˜.J¥c9:û«W؆{ŒU£–±$ÉSŠ…‹©Ynƒ­ZÔ4kÉ9Å÷Ó®8i‰Z(-fY½ZQÈb[çSÙ3;ûH@÷†ç|ØoëÐ2ñ €³VÜ^b`%(C™TÈ<“¯t5sî¶yCscMuU…H˜¸à|ðÞ{ç ™8ùч0¹Ä’M äØªÇÍÝ7}xmŒg©æž  #ft1Á'ø ÞÃøa¿jæ26!t°uGq8b)%ƒAûdk/ŸëpV5&¨Ž\Oc¾¾¯®Òv§gIK!e%(jþªæM ZiáqøÉj¤ÆDfSóæœ¯ g*e~ÖÝȰd¢BT ñÂä¼ùî%'OöOÁ1‚À3yª#Žs~ôÑyF‹¦(„ 8ƒ”ö¹ª”Œ›&tÂ?Àwâ!¾i^8µ^hÓaßA3dVx¡õÃÔSe N”GÛ_Å{ÏìïÝKvºAç©ýü ba¤¨̅®€ HJíXCaó\éÍÜœ~s|ÐW0{>– d˜3bb˜Bæ97u~¿r[Ï[Æž)’‚Ö™+@¦F/íÿä`Á¿ aåñÉ_ïûßóͯû³ßñÒ?ögVç†õ¹ëVÏŠÚÚiÛ‹ … àÜwâq!³‰‘SpÌIk µ’$ å2 uÔâeEf3Ñ¥Š´T YQh†&X6SCÕšŽA)–3€ÚŠ‘´äc;œsN)N)Ƨ1¦)å¬Ry[à@¥¨räcvøg¸¢¡ç¨€yóðÔ;Kɨ=Q5[üiÇ)[îºù€Ãí¶0\XK-®iiɪšëRJ6u䪬ªZµ‡·b†g„Šah#„9Ì©R@ž?bEreÄe´Q„à>!Døˆ0ÍÕ&g¾‡„Ö îÌV§P°#$k´²¹ r#²¬u[+ÅRÆ4•ÝnyÿúÞ3ûíõz:“¾#á–n'fqìƒïWnµŽý ”Op ¦!$ÂìLÉ€ÐÁ…–‚–ÐØÁÐÂ-à«5€9_ÆU› E8‰›:##1ri, jÆ R5yŸXþ­[`†€°êýïùæ'^ÿïáÛ¾µ?½Vg®[}¶—]jÕQˆ‰gçÙyá ò]\Û«  9p€”ù’‘TJÒCÍ0—V÷/3³TɤÅê9šÕ(kLyÊYS"¨Å¼¦Kœ›rnÉSœÆq§}åjÔ9Ý¡s5†ŽügÜ4¡7ÀFÏÂÞQ˜ËÂZ«ƒ³7qêGíÐÇæè–Ër”+å-cNÅK¼´sÔædj·ª*´âYÕJ^>z}—†=•ÖŸœ ÐfŠ—¯V%f*¶Ëâm¢m(\…Û |Ë >"r‚.‡:Öž° USFT+FKƒs ƒAZ²2’Äû‘®¯¯//·Ûíf%âÙªˆ!DÈyé¿9á~¥¾+ΙŠ*•*Ê$RÅÃyH©†w¾f_yþZÎñ…Ì®IF"c‚ãâ8—‚d¡Ä”AZ‰GÌ@dFPÃÙÅKÿwþ‘˜˜¾)2|fýþ©ÿž·>ñ%ïüÊw?€0œ|fôfg "quÎXÄy/옔ˆÁNÄ1™Ï?õl¹hq§¹™âÚŽW/T‰‡@V ïwåŒ\4* À -1ç)ç’sKúVN­’}ÚfjUSŒqÚ§qWb´’Q”LÙÚà9Ž ºÜ6Ì1!î?6Èx/TûyëdÖŒcúô?^•‹gŠ@LL,u‚½ÓÍ3ñìµQˆóâÃ2/fz)ËÍf‚›eÍ­ ØZ* ³®¿Wí9fÕÀü«²‚ REÜ>#D£‹­ñƒ=”ÈÀr‹9mvsH yÞf˜TRá§qÜï¶Ûýn?M.'¯ŽMµ†‰D¤ ~µâõÚºÎÆPÛêŒL ZL2b° Ø=Ä=øh¬jÙV{\ Hæ¢Ò|¸˜ŒÛÔöQ+ݼ«âÉ×þñö ÿ¨Z`ÓBòoÀƒÇ£üÐw¾5¬oUôž<òJ×o>ûKÎço« -U 1vÄžX–v çLÇ™$F3¦Žà-³x:Áëxƒ«Ñ jU¶rM¥‚”©Í™e´,K²Ú3U?ÔB05‚‘ª•œrÉ¥”’¢Æ %³•ª™ÁÔ˜2fRi,N겎-äsƒ-ƒS.V*x9ë?tã©XºªZE¼F†De.¤©cöÂÎJ=Žó§²Î0$³Pè†ÐÁ&è”’Ÿ\õŒ˜­¦Ðä&‚GðÖ ±šRË¥òœ ·ƒ!nI‰åàfWe>Ý+€E«5ÎÂTà\„8@P IKÉ\ÚTkøÝzË – ,EbÖiÚûí~¿‹SH 9Ô,¦Œ"‚[­e³É]ŸY”„ØQÍgTe—ys«-j, ßÌ®YàÃÏ·T§/XîlŽ­Š-'L]µZ1Ýû#bÙ껳GIü§…ÒóXÏ àÎaðøÉxWÉéMïþ~›»/÷Ãóî‚&sDFKªkba 6‹—’O1–¨%²ÚÜëMKÇ®ÌQf®b v[ÖGÚ\Õh”qµ¥Tˆ•˜Eà2—öƆVþ@eAQ¥º+q)–cÑT•µ X[ÚƒsBKÊÇ'ël–‡ÁZÐ>ÿ¿úØT݇ 9ËË£<ðÓÏ/>a¦JÉÂpÌNÈÕ9~kY5;¼D›R¯&ۇРýjXõ¡pv1ïb×…1øâ])¥ª 9¯! lµÆZÀKÈqBJÈÜT&L¾ÝzõðùµÛ¹ÆÆbH ¼™+$eÖ±`Ò60¬³QÐJ¾ #U.j)#Æi?Ž»í4ŽSŠ\‚SnݲµÁÊyYõn½N]gΛï,%C1j‚ÇÕãciÓT䪻wÃÛb‡çn»z°µ˜+Ùæák´(G›½Î^ù¦´»WËH/> ~{ÁàñÏ~ô»?üÁŸÿêoÿáÕùc›‹'Ãpú¹¾tq%À¤ 4F\ï0E™b.¹²’bÎ ‚¤ xH©t*G.tKhÙ¬* Š-¦b¤D&ï(xk•t­©À:®TªH1»ÊœgHA IDATcNû˜Çd¹@• •`‘ç&þ^Îõ¡ã<Ž;.޶ÝsQsxì™sý‘i±[®ú\>úó|$—Îæj……“ 90GÅèÆQ Êf‡P*‹í’úbfqâ¼óNœÀUTG®C·Âæ'ÁÈ’å qDœb£%©yÄ¥]Ô–Œt KËy_ìúcQÊà:¾? ´8¢"ÕA®%ܯǡQ”ÊšÆýþúz·ÝõãÄ}oÎ1ƒ@¦BÂ!È0ÐjmÃÚòVÍ©É.q£Yž«¶b³ÕxØÓϧ´5ëÔÀ<'n÷xµ6ö\³¡†Í—ø·`ÇXy|â×Þû›øñŠÞõ—úá䦑øŒ‹hnØiçPSÒ°£–@E6Œ‰¶#ö‘c¤”¬•ù©ÝÀFõÃÛˆÒ’Ž«ÕYÑ'µ¥lÌ$U€LÚ$)`T¹¤*Ôæ²æ}ÌÛXÆŒ\XMš<ב4æ¼ /y&»‰ãgGËŸîþ:–«VçìF¾ø±‘gÔ³¿Á¶¡OØœ°÷pÚRI@í]:X`"ÀŠ"—MS.SN!'çœg§9qw!ˆw–›2ªjº’tÚ ĸFK#Ò„8"MÈq&H™›Ik{iiµÝƒ2OkYãÜÐÅ=1P©=tí,Í*µïº(´yd6gÚë‰ed•o>¥qÜ]_m¯¯†ÝNV=uÞ 1³Õƒ˜œs''þìÜîÒ¦žlo* l2kŸ’U¿n©w`¾žEob˜Ðrõ3Õ³”Ál"ä³TC¤7Îm<–¸þèo<ñÚ‡ `& sÑèMïþþÕùc«Ûûáä…tT¢zj4Ú›+(ÅBû ÓÄ)qSfk˜ÆÕç.Ž\ë=X%[ÎH‰ª2XåmMY©"­Û! xܪ-S5Õz±™• 3£I 4©FERV´)¡:¯>À7¾âì? ßÙ\Nærd„Û:ºù,UãÃùÃsž@FL"<Ú3tžh×ö Êìk47¥Qˆ„¨_õ«ÓMcI‘M pYŠ3 $+øoF eD*’«XL.·à@ÙE „T M¨æ¹ŸŽ»Û\ Í>mkö¶›úéÒ–ÌLQ³Œ™r´i¯®v÷îïnßò›•t„Œç™5!ׇn½Î§'i³¡éž™G®dyج·ßùzpÍáKc/hê}ÍË:zZ­^ ׯUzÀò †—½æ+ãõ'ñÐ-ðàÑíŸú¹ù¯ßôîïé—¼suë%a8ådÑLé=kÄÖô1;bÄ”5SΔ"J–Sc‡Â€Vî‹€5C‹•ÚJ9÷!«b_Íð&µlTòVæZE`qµ? säBÎ3¸fŸ ¬Å`b…4šFE1©„­9xG„Ž70ö,¤P½D ÏÂ6f`"cVSzÀ½ÏÍí»Mw|ªn41±3i^-J³¢8cÒ Zï%°cïx"M%OS™"©*ƒ ™Pæ<’NŒÒ)¯R€ˆ¼·´GÚ!í‘&ÄØ(uŒ­ÏF‹¹ÌÔ¾‡IZÂÈæT>‹7Û0Œ†fC¥Ú_b2"%. qŸ¯/÷÷žÙݿ՟lÂлà˜ÙP˜àœ×ÐéjOO±Þðv P½hfbm‚t„¹ZØŽuû)gËÜü±\²FrÚˆìÔD!fR-V5_ Ð먆óG^:Õ“á!xå1ŒOýø÷¼õ‹¿æ/½ôKÞ9œ?ê‡þœÙd£“±V•D,híЇ€Ã ¥ 'ÊG‘Œ ŒJiÊ`K6RçrQÃðÌtQgús¡Rm¯‘VýOç(t¾ï}×yçj*$Î;´T!Ò Z±<å¼K6NÿÙ‘‰ÍŠ˜‹ ýl#ü\_ÿ€áùX@¸ÌQÌd35²-~å²øÆ©…‹#ÊÃ$ÂM‡×ÚÜ)1i) £Yñ¼–SÎSŒûiòa$‚gPòìúàV‹©˜R²Œ†ËXîMØdôl¡SÏàé!\on¿‡;¶ÃåMLmåv)Õž#ª3Õ6§©¥knvxá ƒ“–ð#5e#VB!KH£î®§{Oï?u>ž ›•o©Úk`„žWÑNNõô”¯Ö{Ø–ÀmNeq«{p¤enOp €Q'¤«ê—AŠIOÚ¥ÜÇÜEuż›±êÜCÐü.ROÿöÏÝyõW[Œ~îÈóZ À½Ã£'ø±¿þ®³'^óÒ/yçpöHNÅ÷/ä%—³±¯u·G;D\2T©ΙbÂ)ñ”µÈ¿JéÖKšuR²”(%¤<Ÿ+7ÙÒÕ ÌJb"ä½z¿^¹Þ£ÎpzG<‹îÕ2p•¾£˜ÅlS¦ÆÃ8§ —À‡Ø:>ضDÃG1l}d%·±ó‡hvy ÀDàªÁ!ÇOÎ}‹‹W{6;N‹ºà´µJÕø¦IÕ ,ÆÔ¶Õ’ñÄâ@”Ké¼g¥bFÞ…UoY3“ML…ÓUIÏL´‰Ú—â®·ÀæV¿F‘÷ÖÕx¸¶©·ÁÀÑ$…ËŒ”!G¿´õ{4v„9?r8¶G‡”fåÇÅ•!‚V L…,[‰4nËÕýéÞÓûûg«ÓM|çcÇÌFì:+y°ÍI>=³û'4݇îQq&)䔑q½-y,7ç±hyiªì$ÆlÄFRà²ù¨Ý”†]ìwÓ0¦!YPõ•e¶nBT¡KPÃßñùÑÿ @m(z^Ê'Ÿf9`ð“?ð.éOkÉ×'>wmQ:¦¡Vnô„BäÌp€(D“Ê.òåHW#Ö‹y!2« Ö9!G¤Ürž1"Åy’á&•)±q+=‘sÜõnµ ë…˜EBG•bîõ4ÓB¹‰Òçbc´˜)«˜9˜£yLKAìè‹¢OdFªÍo¤ö§`óÐÜ`°F˜>ÆL‹ã†¹w’ÂÔÞ ª&F0Ùb±–™™ K•¨1ç˜&‰ÌŽ˜È9á~èÅ(8Ÿ»÷Á∲ŸhºŸÒjŸýޏSî•:eg¢æ2a#ʈ<Ù2p’æŸ,&L1!¦æfÇŒ”@\š'ÂeN[b©$/Ûå2£"Kà` Ê5GJU›%C#Ò»Ë|ïSã'OÇÍfµ^ÓläHX ÒmNËùí|y.Ó=ÖådH!¯ì=‘·ÉçŠÞ0—?<‘<‘'³±+ðÙ|²aÌ›]<»žn]dz1Ÿæ²Îè‹ eªÜ¹ì‹° ¿ûþÖîú~kØxôU®{Áª¢‡5syµz%HX»@®¥0iÚ%wo§÷¶ºêY˜’9c3›“X9"¥à4!Ej´ ³FPëy/ e3.D…œÂÀ ¡ï° ýŠëX'ñœ^ƒ– 6­ôÉ4©%¥RDk°cRYì(2š7(:6‘˜ËÅ€ÎxAòáó£V…MÕ¬ÐͲ¿í홌[¥WÅ*Ë^‹,ÛÈUºšç3›'m*fšµpÉ’£OR•… ®cÖàóÐå}Ÿö[])nkÓÓûD÷³R6V•²í¼¯Ò¯à"B)«#b )YŽ ·SÄ4b1M˜&ĉH\TšR ~óÙ‘¡¹hÆ VB!†˜¬2 šEæ­/÷†i½™nßÊû Ë™ÏÌÌäÙ ´Þ”³[ñÖŒ÷¤ìxšØ"qf¯ä•q¨å_ã™[géÇ"!òD zÁ.à ц}ÙìâùÕtûr¼{.F=˶)Ö¼Yk oÕ&À1Œñôoà~à/aàOüÚ{å'Þó5ßûSNy…>íVÏwU*S&ÏâÅ®’ï5¹¤])ÏìôW¹ìgvXv㛯…¥]†ZŠÊÁ+ªí5SQêÔ¶:§³‹õÇÂ0ønqìqeèU#¶*vb1åÝX®GL™‹±YÍBLj†²Vo–¼Ô²æ&ŒØ÷¡ Þ{a†&ö 2¸sºJ×Svùd›ÏNÒɺ¬zí;tÁœ“!()I­«$òɈ´Ç°Åþý%v[„-XfIÆÚþ±½•_NZß{e«ª®$˜Z¬5R´ùüz‚¤R"òˆýu¾¾Ò)rQ68ÇŽ Èú4ä)æ]²Q%ò6"FP¢®p§ŒC‡yŽŠAžHˆ“Ô¬•3óÅB²a´Í6ߺ,÷ÇÇŸ™^r™^²Mw¦ršmPëÌꌷ†b@\ÿþ/þ›ÿÞ›_þ:þdšn.÷Æoü««óÇÖ·ŸÃÉC!ªm‹æ ¿1‘×›?±aÒœ­@$”}G“/£æë©\O¶:é%°ˆUÕÕ£6Ø 39Gs©„ðà`èUZðúÔoÎÃê̇“þtõ±§>èºS“ ÄlTL¹¨YX*H*FÄ♽°{©Ld:7,Ï“7ÇÓI‡ŠÑR7š±ªvT:N.å¥ ÐùÉ|Ô´sH’%·±d¡±˜ñùc­îaf(ƒ-­ƒó@Mª@.KÞN|SÔ¬ÈLÙsòn Îyqm”¼gïÄD éd¥ä‡ÎvŒmNiÚç´˵ÑnàŽÀlTز–y&©d²6EMLlD"¢æ„DÈu(Á°‚?¡Õ-wrÑ>â‡ÛÑpñØ«ÿà_ÿÚÝÏÿr‹YúÈ—"š­D·œ¶lÑ‹áà}ð–¨+ÆfTÛy f¨…¸4ÛUÌ ZèfèæggÛnÞÓ^F•˜lÁîqÙ÷¨Œü@'kóˆéðâ`¢ÚKK7³s9•ª£2“ÈT×”UÇŒmäíDûäR©"&¬Ž“çX;Ï>pè]×»®ó&)æRá)ËnrÝ6¯®ËÉÊNÖ6ô$3au¢Î©cÖ–ÇìÍúV‹@.–•§ˆ”P TÝ…#zWqð3€«mÚ¬y6Ü• ¦¢É•DI5Q‰”#› PÃ`a&f‡A¡Î²³)E‹m-ï&ò™ƒr—9@‚±gT—Ì1D”ÅÈsÙú¤«I7Û|~]îÜO/y&=~/>~ïîó­TN’öÙ:51HÛRç¯ÒôþÓ÷ýí¯ý+€ ÏÅŠñ9.·<¾È:,:r±™Q!$ *¼{†g¢l%»iµÍûg8ӫ޽’úâ–Hg¹]3ÒÖxÊ 6x²Ž]Ç®‡­ˆN8œñÉE8{IØ<ÊÝm㳬C·ºíô_øƒ¿yûÉ׺âY‚™–(y*%í¬lXΤO’ÕC=›+ÎedÊ‚áfUwfäh)®£~ošA»8Þv„ÐùºÞQÅÍfÞÜv®ç§,óÀKÇÍØ&š›ý™H«Lel3X“lh;ŽAM³Ú>b;Ù.ʘ,7ö¦Â !cVfÊBÙsö’‚LA|ØòΙwš„FáqOû=®¶è¼ ˜,;ÖàJç4øR%¼7&Buë(wpÀj ¤13‹G£˜[éVÌž•ßg#l°bVÈëäs¢ä-SžX³ƒ5/¸R%öά‘ʤÓUŸ)㥺=|BPÆ(uÄàXÅœš+Öeí']åt—ϯÊÅezô^|ì*?v/¶åÖT6“öE;…SˆMo´Rz‡¾ÿoÝyò‹×çœ\¼ôÅ›_Î'ûûó«Ó°:{ñ/×Öìu ##ñ …­Í³SnÀ%¿U²õ˜¼S7eê½P.çA:*lBYµT‘X‚’B$/yE´&ÛŸ99£á6áüQ·~œäŽÚ:çr¯xÃ7ýýÿåÛ¾ð¯+×oVú¢½Á³c„6,‰ˆHdY2qb$R$ÊjÖF9›¦ZIöØžÍì¦_½ èŒs³„µ'°z-7Ìï¦[kPm †‰g™#ÇΓ󕦕,«6½‘-¥9 F ¥ª4eÛ'ì£M©i“×Iy"-m;P&e*LÅqvœ„#çY|°sæÄ„Ô±O¡ò9¢!ó¬A48:[ è{ø`„%Õt4M• h3*Õü:ƒ¥¹X梊¬¶>åFWHŠã%zÝ;MGÑ,(s­nî ¡Ø€r¢q/ë;vy;ÆOw…0±/Œ;å®òf²±38µ.[—l5•õ>Ÿnó­ë|÷2Þ½Ì^ç‹m¹³/g“n’öEƒÖÒÉèeBü˼ï5_õçø0È js|`¹ýòßÿü·¼+í¯Ä…Ò¼ñé×’yaÕØÆøÖÅiKne2d ZïÝ~O«ž”û²f¨såþN¤E´ˆ™3 àÈ­ÙŸ:wËËY'·néê·Üémßß&wjèÍ|JLFoû¦¿ü“?ü?½á¾7Ž÷WwÖ̧Ï—uÇÚƒDÌ‘ŠÉ(E2Fm†S:J ™Æ£ºn»q\=šÿvèŽ>ò¢U ®5Ù©ù† _Zu×X&çµ5—ÏvŽ#q…°Õ°Ù¸u1sQSåqC)ˆ¦»ÉöM‰R¦\È´jk4µ%"%°B‰@Trí="*B”D̵"N¿†“Úú¢dJ˜)«Å:o}°®CðpRR&›ö4î1îiQj­Nê Óº¯¤L<9pknE嘪Ÿ¶ÒƲf¨·<¹‰tÇyËeÏer–Å ““¦i.ì…ÁúMZÉú<Ås÷á÷Ô NÉCE bä³õI‡©¬'=ݧÓërç:ݹJw¯ËÝm¾µ/磞D]'튅S{zÁîC¿øÉ?ú½¯ú oðPÌ/÷?õwÝ;ˆïØwÍ—®Áp;jß.;R%îX²ø‘ÝÀ®7é õÙ:*A¯iX9&M#¸2÷lŽ@…T¥¨¨:EgÜ™¬-œ »…î6õ.Ü î6wçN¨?åÕ‰ô–Þ(Ôvæ˜qòø—½òóßø{¿ðþ—ÅwÅõÑŽ8X¬ädi‡xiy Ý&³DELÈXìi3¼Ë5€#ÐÚ<6<‡›s^ú8ËUŸR¸*6m;BþK3Î4gj[bêh ¹XËå¶ÉgXÉLIˆ+5I®R5ýžÙTÌÆs×ëüù¨}r¥y_˜=ø:ÏP6©Ù B•ë"3˜ÖºvöX¥Jw<“<r´’)§F½²Ô~ƒ@ÔÕ¥e‘à¤9ÒMµ%ææzk¶4 ®eºÇéqKeÃØ×&¼ªàƒvCXmÂê4mמ»žC¡@&VFN­ËÚG[åtÌgÛ|ë:ßÙæÛ×éb[níóÙ¤'“®³õÙúb¾ès{ÎuÕôÕ“¯€³G^á’±tçwŸø•û«_ýŸÿÐõ'þ€]x¸Žô|Æ“Ufq³A”%‘ž$°àºÂýT¦ÝHýÞtœÊ©ã§gAHÀ¤bðà^AÖÖÙp'¯.txÔú»ÔÝwJîDÃ~àг«”dn%š2þ½ÿè¯ýÝ¿øÆ‹Ï{sIXÝzÌwk õ ¯ær‚MªSñ)YJ˜2RFV4š‹£ZγŒãÕ\L5±Å‹O‹ÿ, qF7q>Ÿ–‹ï­Gz ó,Ȭ]ÔHÕ`s5¹ )‘ñ<Ä!Z”Œ­ê•Œœ©dVe³ydòÆL{«Ñ\‰C€Ú[·Óy¶Žõf]ØZ£¦¶{€É˜áCªý¤êEŒm¦Ú晑ïpj“Í`>`¸šz™êoCªÈ¡$oûÌ—.>mû N·ÖÜyV!C¬º."êƒ ½6ÜmˆWð{uZœ3HŠu©¬§²ÙéÙ.ÝÞ–;Û|{—noËùx€î4„¢NáªÆðs£wN_ýÉÿâïpÝðЈÝÿ³ÿáÇÞóßú»ÿäÇ>ÿ-ïÊãµøîÎ0|šÕÊÂV³+u`RX:ñ½†Á÷'~8‘áTãdÐmâ«ÜÛ^c.[W®ž8„<±°g Â+–Sêoa¸cëGtýXZ]”î¶…3vkHO®#ñäB¥óq=—¤b |Íú}?ý?øåßø½WÿÈÉÝ—‹i±”rœ&ÛïmÜå4ºöù§~s–Ò¸›v÷ãî>Æm˜vj“æ$µïÖ*½¡ñìÎ-õ,>Ê9ÓqéãÜRY³±‚YeçdŽL €Ì'}}Ób-jV×TrQKIÇ ÛÑ(H›gƒ7Z”ʰhJ6e‹©U}¥¶)ðnoXà#hÆ3Ìèð”%}r °âö\š†åzŽcY ‘YÃaÁêŒØú_„Þ†açLšª›W޹lMöÔ_{w?Ч¼­ÉÙ˜7†Žà`Ré„ͨÀeN¶Ê¢fÉGZzº³ó]¾µ×[c>ì$é*YŸ-dõZ­nU­Ûù¹WM_=õ›¿ô/Žf” IDATUáÆÃK_Õå²b*¨ŽôGþåÏ<ñúw¤ý5»N|÷ÐÞd©*ÕÊp›¦²Vù3!ê|·¡ñTn}œ&ÊI-'+&b>h¿¡Õ©;¹ëNÍ'´¾mÝ)ur½¹Îd™©Ã£Õu$¦^µîü‰¯ûö¿ñ3ÿç¾áë¾ûêã¿ï‡uÚ_ÅÝý¸»äq«e2˦³/j³:²?¸y».Ã>—¸÷fjé£,Ekû$-y~ÀA-iÆ3ÄÍW¯¹Z0”Ô(ά¨ŒÈÕah!xeè@e.ûl“")r›Ü8JKÝ@㑾 à#ôø€ÏêKÒL-zzÔ‹¶H±ŽBÊ1n«, {Ö ?ßöM€»b¸a¢EpJÁÙdâîÊÉ'pv.”<^·Àx€Ë(¥äl±H´ìV.M>•õ„Ídg{=ËzÒ“h«bC²PÔ«ùÚ¡a5¶… â3®ãôÕéÝ']ø¬ºŸÃr¦ŒÛŸ÷æ7¾ý~ãÿù_o½ìµØ‡‡ `a¸V•xÙ­ÙàÀ]+z^²§õëS'b%[Š‚",Þw¾ßøõ¹ÛܦõmZ[w‚0Te_éÞ›À&%˜fÀ,5€¦„—Ù×]üìû>úÁŸ¿óò×M—O§ëgâî2í·nÚ«M†-TY—<×W =ä“–—‹C žéAÛü «‚nÃí<`ô o]ÏN_½Èé…V{­)ãOÛüÞw|ÕoüÔßyÓ7ÿõëH\÷'“Ží0­½ q`¿ä,ÇÜŸ\œÜyiצf9‘™0±ó> ¡?ñéï6Ü­8ô@ìM1ÍÃ7Ãøe €SÒ·~Ë÷#ßóg¿ôk¿ y*ãeÚ]–iGi2$BfÒ¶»ªáæ¯tðœj>Ú0Ën^·5u˜ÑÕÜÒìÛÏ»Í Ì×dÏ܃]ƒi%4¥ vŽC~Å›swÒIp•]UUÓ¢V´)•’Õ,C XÙra5GpF•ab±ºölÇXzž«8m\M˜ýhw[ ï¡~[̇C§É˜™0Û^ž;Ÿìà àÐnWá¢Ú×áÄ“[,pe=c"R’L$L$b 4_:¿™®£Žw5<’éö¤gû¼ÚF¿Ó°ã[E‘5ë†d}Æ-d Å„® :Ì÷~æUÓWÃÙÝ»izáÕœÃí—}ã_zÏÿþ×ÞÕéñZ|÷Â8±>í:"270ؘƒD\üPrña³:}´?¹ÍD(Ò¬ŠR‹ïïÛ§rØ„DZ¦f©`?û°Îž«µ¥©h8yäÏ|ë_þ'ïÿÑ—¿áOíŸþ°M÷÷®$®4§­Yìè¹õµ—t+nO:zÛÃÝ ,ë=óDn1‹ÍŠ Ç ÅA†V˜±YYFB¤5•/ÂÞK?¸õ‰;=·VâHXÙ´ÊC©–’sÉ9¥˜ã”â”È ÆÌŽlr sLG¶V?>¶½ €¹]Ž\W4'ØæôA §V}˜ ¬ dVfÓ-Çè¼köv±ºá`~©yξýWî·Ó~;áZFK’Ôpòj¹#óÌ\‡‡æ\å&#лdƒù&€1 %)Et„Þ¹’k ÇœÞÓÜj·<XŽú%¯Ð¥†ÛÙ;?»Ðĵkç©–ÓY˜PnnÁ¡e³I‹—þìú꣗Ïüß9¿?^¥á%Û²¹ÎýÎDU2…W¸6¼XèÖµ¤¯Þøu߇4½ðÀ:ØžåH_}ì÷Ùu• –&-ÔÍ–-1µ«O}ü‘W×­ÙS«ŒU,’YHUÜ2±-#9Ÿ ºÖÒDÍ›–’ó8Ž_üÖ?ÿø{}å³ñÒçX¬ÕšÉ›-ˆ=2¹7†uíæ/rl™sœëRزhíòã™›ù‚ c•fÏݘUÄ;'"ñúnÕ­ú®ë¼sNœÈLsŠqÜíw×ãÕý½<3&LÛbÑH•¶—ƒs=Á1I{#˜™.f‚Ã×&Š*ZO˜«¯sšPu2hvEcõx}˜![nÏ4ÖyÀ–slbi3 Í÷ º¡«ÝSÕö’óÄâH<±#f2æzF‰‘€œq{eoä ú¤CÒuw÷õÿê§~jóê/Lýã)ú6S&“gƵCM@/ºuÕôÕÃ^x`݈§³bõ #}%®c÷¢ô—žcµÂlí]  ’+2 LBÄÎìÂ!i;c˜Z¬3§šñ<¬îò"híúÀZò4Mäú—¿ú êÿ[­N,îR”’½X±&LgG/V=Æÿ·õBKW?ãY;ŒêqŽݨ®ÉâB뤕šz±‰hpÞ9ïœø® }†¾ß «¡ ]ç;/NH”œã4î÷Wûádïû]±qÊEMyo<í†|µ½ªM³D¡ªK<ì ¾Vq"‡ŒÔ’ÆkŒ˜+FÕPWgxŽfÅÃ…Ö©¢ÙÔ‘êL6FXô3œ£ê7ÿ¹‡÷p¹ø®"Îy!òÌŽIjø+ 1#Q fAe(Xe=I8ì|o¹¿ë.žù•ŸþÙ'ßñ•»û[‹,¬²±+بöcÌDà/º8J_½å[¾ozáõ`Bl*Gú‰×¿c÷ôGÄuÝæöCcsÎÉjž…¦ÃâÄ…ƒÞtk$´îßÏÅgžWS ªê„ªšRNÓn¿;üÕý݉Ë÷¡ˆDëP‰+3©á©k _ >mä;ý›EO#‚ÀEÿöÀßÿ×ÓË'\rSký&¬¼èTöŽYõG‚©q•}Õa‚ÌÇŠL¹#šÁÊ÷½´çyeCF×½ýZ"Y(åô)$ð£3oErmy¶W!|–û³œõws^ƒ:CàÜÏOº\ñÌj9š!„m"¢ U@e@2LXÂRÂÖÂv¤ëp׿®-"¶t,nqÆc€@¨ÒÀ‚VˆžV‘6ˆu Ö\2G §·ïÝ-L2B@+í*í)ÏW™Z¤ ¤ XÇ ÃÎÙ€sÎAd ªÂ¢H4Â@PT‡Ž·&Œbf]Á8¡‚d¨kX Ò"Âf©¢œ0N'”SÊ)”˜n!Ƶ9 5±4XÚ8>ºFÒ:–ÆD R:™Æ„‡‰´ŽQ7zÊÙÿ著ÝwVõ,î9š‘˜Öaè<<2ÌÔÍž(zT_å±{¡zIIùœÂêOßpÿo~p[å„ó Oð;[)—'6c娯oJ51A!„Òî/ëu»Ã¸Ñ¨5j(­©Œ$ŠÒ­Ü’žÖžFŸ‚P9µÁÝV»=½j€î¡éž”†L¼Jkbx•I>™äò¹ë¶V‘ãÑi¡ŠÂp -GÚtãÚ92j‰ˆ%¢ŒÙ”Ø„H¦4¥¨ÖˆhUD(* ©ëÏ8w¦KGÀïìh‰•í3 <¢Ú£˜N£ @°šl“I€š[¸šÀ Ÿ3·- aýH—§áügà¦xÔÓBa‚PI™05ì!‡¹$BfâU‚F˜©ùà CÊrd©Dj)°pˆèz:âëhJG=O똇QãF}t}Œèh%G¿¸øùçþñìO'~æ[ÍûvÅ+"ÜŽ…ßIŸ©k _ÍùP¼._Ý =Ð{NÙS0uÞ’¿¯[ýꊯ]tÇïÛwSaY‘‚¾¼Sws>ÈÌ}3­j̧HÈa?Sh/4+VÔÖÞ(åâiâkð 2B(Ó(› #wÙË®fýêì–ãy‡ÿGcR1LsÒEáðß®L1Ã¥!†„ ãŠpŸJÍ,.#Ú‰YnÄ i¼Ø²BÄ(D@Kå Ã1ê¡je ü@+HXQâu JùÄ·cÕõÚKÛ–`DSH¨Z‰FÒ”!%Z°h—F›VfоBfvÒ¬¯‘Éëp¾ú y(ËDÆê ÊlÊ,Ê$å6e1¡)Æ Ê%!œÐ,u)ÕŒ#Úð–X #>F|Œx:–†¸§¢Æ<íúñÑõÑ ´m4"‘–¹&ââëïYþå9US·TMðRT¸„мP×@røÛK«“# *Fä·{¡z'°FH+¸þî•_ûLƑ޻UåÖÑ«ÀrWwÙÇôó²}C ´5ì®wÔ¿³±½±.|w˜ ý‡®°6çĬ®(w“¥M{¬ˆ›Vb Ã0F\³+šÕ#o~Þl²Îvwƒ ÆýÖ.å3ýÂXÙ†c#Œ5 €PÊ0ä™@&)·(s¨“ nŒ—òÂrš,gN1Т |¡5##„!f~›Ö hÅBD"È:™ò@yúiâWuÍÆ?þdð‚ׯÀdÚ×$Â× 0´P³&À4Ë™~Ø#ÐÙ{XæéÌÁ"˜ôÀå6ã.¥§6£6c’1‹2N§DÆÀhA3ö–#H¥"–¢N†ŸQOÅÓKkcf#>ºvp´”– LrH(äˆ\GÂ:zÖøs?õÚª»/¸uu{C®Œ${¿TŽÿê ,¯¬^>bê%~ª=¿Ý =pت._uw¤S­LXYOàP¢ÊÒ¶†ÚŸoolkª3Ú›ê`ü¹Ÿ€xqå´Yó`ؗﯬ|ùZv—<=ǘ³¦ÔLµ&Bréé0iƒ°@Ú܉¥ý”ÇDZ©t¶º@W°–YgýÆ&!”‰i…ç#kÕZSÊ"¥a§/B2;#ˆyº°y‹" KQØ lä´âèòx)K–C¢c…(âD È´îš ƒ&“šEˆ¢,àvœB¥GT@µO0Pè¨,Ÿpá;¶t4ßU^Št¦¤Ï|Ê$G`šRäˆi :ôŠ!+÷…9®?С/sÖMs/ʉ”Ù”G8qêbKjq"9Œ0ŠŒÁ4¥š2Â8RŽDh"5µpâz:šñcF< âk'0–6Ûå‡\!GÂ"C ˆ ÕHÒ¹àºþ~Õˆ=óÈøKn Òí\:LXm µûßÛt¸Ë§þMu‡ûíΫ{ü¤züy~ªý„nÇŠ#•e¦˜z™q¤¿~ñWŸêhÚÃ-×rb‡uïÛÛ›vCQwlX ñâAƒÇL€êÑS§@õüg²¤*û‡”2ã8Úm¯ù´À$ÓÒ˜Ä&”Q&¸´¥•‘„pã~ªÍ÷Ó2Z>P—R()c ‘¢"Zi”„( [†²Kš»é ‰CH˜Bk“) hô… ¡”†Ù±Ì‡4ùðºH(Ž”—($JG[%¢ŒûvF‹i²bÅIj;Ž"b–™&JSÊA‘P ˆÚŒ£$ÐÄL| ( TžtVž1ÿÝ·î"MáºCc;X>pÊäÄıÐhðeVõ™q§Õ·ÅL-tæUaqeø hÎ9“D8‚;’ºum´-màRó°E0„#1Եȥ\\£>Æ|ˆøñÐ ÀQhhm„Ö,Ôµ ‡™aÏFœ™êÐa ¾‚XñàE7?°âá¥;^Y•ýöÅ•CÆy¸KiؘiÉ)‡ýí—þsEæÂ ®„»>=4ÕÖ/ŒÝÖyÆ‘¬¼ ëH⥷ìÝú²Ÿjc”lß°Új÷½û*~–TAQ¯ûæ/rwE)Ï\è$ãgæ†q`úŸiØõV¬¨R+?¯‡ $ÛœK(PJgB éZ‘„+òÚ©ví{ •(oiª#ÑX µGÑ!Ä!Z´)Ñ%!ä´ÿ™Â”L.¥a8$ë-SA)Tf£”†!¦µH¦ÃdZ92Ljf¡´µA;8qߊvÚE-Âh18qmÅP8„;`::€šú£0¨D3®EÐH™F¢Q@p :@@ÖÀ‚À?ã¢ëþôؽ§žíì é4ó5Ѩ‘!˜ /g› wù@ifU ™Üx¶FšÑ„"0J5Æ)ãŒJIl×·âJÄ5)æ"“H%R 4©´TÚˆ.Ù&¬À Ð ˆ£´¥@ ¹F®€#pDüû ºúìß4¦2¬:mæüs>µ¸ tp¬°¬×zÒó¹ 4\¼è¦—þô‡A£§«À ¼T?yÑGiŒðÄÕW/yàñ‡–¾·þ‰ÒÁ£‹«FR&¦Íú$Š+žûzÊx6™Ë¨Q³ŽÊ󘄶’@X3‚Œ3&…±Ü7Qì§Ú?…ZyHˆˆv´¥:•m§}¯ƒ MÐeƒv(XDK@I@Rjªˆy&I5YÚŒŒflþe<ð:µ 0BŽöÕ„‚ïKaÌX]ͤæ¶®–Qtè&'8…ÚJ¢•@7 V ¥ ÂnfofÎé¬Ë‡N¨™ë­ A  Qƒ0ð4‚ò½´¢+4òŒ}ï¿å¸qìè´0РEN2cq1Œ*g£‹@g‹±2Iº®Å6oü†*@Â(Eε°‘Ç+ðY‰G‹=(PWèhm!ÈÐöš¼. R¡P* „©µPh”Ö¹i¯ k§2Ûá€LoT÷¼®iØØø|Íä¹×B¥Éoû¯àÜË—¬Y±ÜëlmkÚ#¬ÈÉ!0h„¢²êa§{Á5_K– Ž–siwÝ—B†f²'îîk„‘¦¯{æ7€*èÍ=íHF܇J)g\r˶ÜD/ 6€h€ÐÈ…g PbZθ+Òé¡/yL…$¡è N(ïÀ Šˆit4±Ps$i¸vÕÀj® Ó†´È´ñMí”iñ#áD’i çËg>PƒÛ7´··–/$Ž!:{\о‚‹Ýô÷M8ãÒýt»ðú…ÃG'0%ð×çkFNžÅ¸°#qiGòË«,Ì"ÝÙ™@t>K8sW”d” ŽŽ´•Žú:€2.¥lع¿¹i²¨Üv" j:ðPiÐ>b´¥QÚ6A›€ 'ÀM@ÂCIG‚™¤'ʵ,§¥eª£ÍM–Q&©t@XšIÍ-Å-d¶– Wɨ’ m%´“'NeE…Ì"ÂB&€ `as¡q0Â…ØËñ@—¥¤„ F…f…Öž¤R^ùÐÓv½ùJ"^Œ¨€éLR88·KR™¢rÐj1m€S†3 Pӣ͔ J%“N¬5}P)$4ª0铲NR¢å) H‰£Q áhSÛh‚_LEMÍc:ÉH¨6w #õú!ozÏë ›×­9i&HËýP&•1ÂCÛ›¯€~2ÂG!° ­µ[^{ñÚKo€þc/h„ŠS§·5퀖ý»â¥C(äµt¤K܇R&ê"lQ#"!Ì’¢ƒ¤ÿ¹óÍhaEaÕ© }øx¨<¥|T­´ö@sÀ@ ÐB°m@‹€DàI'àÂL§²Ñ_g„2PF9sÜDýž­-ÍU£5ÔM ŒÂUÂA+†VLÉ(ÈXQ°" ä62 \ÈP„eÙlT˜„ê…½Ù3”h0ªhÊ)ÂÂ0SaêAÄ“%^[‹íø¨u€¨ÁT ÒPZ ¹áÀ81B—Ù d%8ÃdÇc̱…¤ Í-V|”çGU賊-õIB£«ÑÒ„!2$ÍËPT”"’p\$fÖ´{K²¼562=o½‚S Ö=¹|ñ÷_€¼›_ƒ.#üÒ“g\úå~2ÂG!0gðú 5#&Ï€Âò¡¢ßÒY 5$KªÓmÍáSåäû¾ØÃ @ –àvõènA$ãÎùtªý % ¼”ŸnÒ:Hcà”RˆJ´öÓ%Áv@IPR3è,BA)#”2F eœqÎYf„•V$Rüö?^iøðò1g+îðD9¸…(£Dº("\.p¥C˜ \¢À$PŽ”enH8¸,»Æ Mðá1º$„¢³{BC`Få#ÕÑ¡Síi:µ$)Õ`Q¸dÊÔ¦a¦sÃ˲ù$@( ÙË)”HR eGã¼ýfÇûœS&µµsâZ$ª‰¥Ahd„„cÁŒê… Ñg0Hw'ŒùG8*o³ þö»‡&μ ʇô‡ù5È1ÂW@ÿá#˜˜~¨VOšÓ¿å`  K+;[›bÅ•ýUËq‡ Á(sè3ß¿g-¸rQ$FêÀKµ5{©V¯³ÍOwj/¥•Ÿ‘nUˆ¨@{€ê€`‘äaûŽiÙåfB.¸”\XLÚD:ÒuË"×ÖÔÁ›£Î[ˆÜ¶ÕБȹ¥Áô+u¿™¼ŸÎ4”„Æ>3üXŒí¡ š¶oèìh-6>QjžÒ©;}êje1ÂHXnŒpHàŒœHÖÁ6‚õ„„ZŒÚ¤Ô2¢e2°Š|Q6vö^}è[7­2ýòTʳ-$‚°®Š4Cьҧ±´'FÚ\ókÂWÂrû¯ÈÑ ¿ða L  ¯½PóÉÅAØÍØaÆo~uh ò3µ¸WB$'EüÖçf<}Öés®rc…–¥LèÀWN |_¾R¾ |øZ¶p_- IDAT†·¨•Ö ´ÎL1}ðFD(¥Œ2Æ™ \0Æ”qÆ8e‚2Öû2®8;ã²wìØöò“÷ÏàNõiç§}…R ÛÍtÖf èk‰ÈŽŠ‚C@ 2Ì .2*,G˜RÂ(F¨d ‰\j x—…¾( X¡ñaS.«¹òõg~:㪻›÷í*”QáÄ»lo?@0øóª0|UX>´¿ýgƒ~5‡¥§ðú «MüYXϯLôa ÊN™q°~'´5ÖE’¥ýÓƒ @ X¶o¨yïõWÜöSBHAÅpÛ#"RJ4£¨cH]Ô1-mÂBmzDÄ.f Æì’Ê<«Ÿsž* «¿±éÕ/=öõO›™`5öq-q¦Â¢$éÐÇ¿óù-ýãœkïª5Yk-„Z)ßÓ¾håiÝ®5ó4*…)¢]È3£OºF~†Î3aÔÈSQ¤¸ÐL"s•ˆ)Y dI žP,¢ÑºîÞ2Òˆ³Þ*:1j£–ÛOmç _­{rù¥7< ¢Ÿƒ²¹è?#Ü;5ñçЀð•Æþ,¨ì‹Ãí~þ­…ÿ·{cE‰’*ÛÊ "E¢ /)rÃÞP¡BG¸Än«³LR6£dþ£™i/ÙÂb  ñ\óÍ•ï½9bÍ#ÿvá?5έ¡ù4—ùp-I‡<~÷Õo®ÿÝÅ×wøig ËÕ~šq®?ðÓZ+@ ;=P>ú;|ˆ Ú!à- ’g@ÑhÙ „R ‘H(cŠqB¥6²ˆ‰À.òe±âIÍ¢šZ¤H ¹bñ=¿{ì;—}µ¦µ¡ŽI׎ö©íü š¶o°"‰XAi¢¤RØa~ úϳó®úÆ¡?µìÜT³w÷Î13.I–V;±:P÷*Á ±vKK[[AÅ'VÔOIv‹m¯ýߥ—LûøuãϹ,^TáD’Œ‹L“d¬¥añ‡ÃŠ Êxø/ãFÜ•…»6b¬hf­KŒž&c@Íè&fz*À˜®} Sf}æÕ5¿xû•ß™|„Ÿè+aqRàÂßYø¯—~{Éï=åŒÙ‘d‰åD™°LÈÈ4h(D­µÒZií)L)ì °MA[í :5I¤€tbfÓ$ Ä#DSJ£B!‰´ÁŽb´HEËýHµ©dI š¹È, bØ„³Þ|ñ·{kß4úL&$ë7íGÀ³?Z:bòù…Ãb…åv$ÀŽˆ0ò´Oýð–AãÎDéÄòrm÷®zÖo˜HtXÞU)°À‚‚Åá÷?\Z:xôés®Š&K-7ÆD¨ú·$TÀ$™*ª.ræ<ÎnŒ‹Í„¬H†ó„²ÌÞ²®u¶Ž‚H"%ƒïúézËÏ>ô9hkÚãu´ ÎóI°¸ðøÝ ÿùâo>ñïß;uêœXQE$V`»qi»v4+(‹—TÆKÇ‹+‚r)TV,Åí6”P4*¶? û­W¤> õ>Ù§Hƒ&Í@Û(I10Šf@-.±bè$•S¬ìb%’ŠG‘Z@$®zš.¾oÅÖ—~Õ~ ¾ýÀ^¯³­?úïÒZûÎæ—FNžr@b:¹Èám/= ~º=ðR}ßm/6"À¹ ྿ͱCk˜~ÁüÝo½ &ïïÒ,}_ûÝCï½±þãÿvXnï÷BÃäœj@’ÃgšÙØ6Ê­WÆ’˜wô°xõ]?]ßqpß‹ÿw;´6Ö¥;Zóx {ûö‚¾¸ú“_úÞè©sb…åN$.ìRXŽåDíxa¼°<^<(^:8V<È)(ãÑ´b¾°ÓÔê$¢“ðN¤¥¥#š")“ÄrhÄ¥ñ¹j@OÁ˜sæÏ]¸ñO+ŠV <÷ྒåÃ;6|øN/ªk{¶mlmÜ}èÏßy¥›ÒÚ™Ÿ¸¾zôÛöæü†@) ÂÜjm*j´RF×gL§yZu¶‚G 2ElM!™"¥ÐX p u´TG+=»"-K|‘PÌÕÔÒ„£©y†nà¼ËoZöÅs÷O<¿dè?ÕÆ¥Ý÷;¬Ì„¯ÎúÔÐo̓ǎüæ„»˜à9íGB:!Î|4BQYUGË~È“&–€k^~åuß{¸úè@#¤¸lñ²Ö†º½íE¸Íü¼ ¤rÄ„^tÕFŒŸ^8mú¡?¿mÙJ ”:¾|ñŠ¡¨a,÷¢!„ )€"Äd @¶ZÅ ²Be¼“‹ Ã¯Í‡t' Z´æ>U³µÜ%lÜ€•O c_{õÕÁföÀ„€+€µÕþêÿøô’ÿ†c\}D`F{ŸzÚô@“ÙW,.,œ(,ë‘ÒëeÝóás¥aÞµ7o|åÅÁc¦£ÖŸÎ­®ëâ0¥€æ¶©F _@)c\XBÚ­•j¡A§§½NÍY›68’Ťà‘"-ñ")§E\³R© …rÂOø Æœ3øÚš-Y9væB/ÕÊ¥Õ—jF»U_IË=)6©òh„»Œ`ðú «›\Úýݨq8m¬>UFSˆ[0(NýæÂ‰ç_é¥ÛhòxW' Fƒê=*ïB²´úüO\™5–íÕ»Ép˜„-ü¦œ2Æ…V`G0ðuØÿŒŒJã¡¥¦\eÀP†]º™Ç”G?€/ß·òΫμôö•>ÜN(sâEakô1C0xáÉå“f^Eƒ†Düç,ŽÑç ¯–³øØ½uCøåqjêŸW_øù»QYüÜ+´†Q§ÙX»¥ioƶnÛ¦-ëWO>ïÒacÎøä÷Ÿ.(­i9æ¢357ÂMß[õÏžó«û>wåÿf©M|t|ª\˜%À-6ç (©ž@ `î›ï0F¸¾Ör¢öa¼¹a-jSQBã‚‹@k¥• ¥\3¨l´ÙŒZ5r\ì5ð5Ä «¯üÂÒ—ŸzdÒE_hoÞ«u`G ÊTzØUtFzróºšlóà(R5ÂÒÏô“ä ¦É2¶emݶM- µuÛ6íÞº±µ±nØØ)ü?/éÉUBéI¿¬uîÈ\Ô”„~²ámíÖ [Ö¯Þ½uc{îÓ?6oÆÌ‹óÍk-Û +–»ß­•†DIõ÷ùö«s8L©IôŸ¦Ù C0šk÷Õí¸òæe'ókpˆî°œèár­]KbJ U!¨eµÆŒ,ÉiŸÌÌ´ta(|Ù[´üˆ0£êw¿»áwµ[‹ªÇœzÎåÃ&ÍÎ~T..&÷¶sÁº‡¯>JþsÆ?·rhgË"Æ„M:v—W¸{ë†Ö†º­/×ÀÖ—W'K7-Y2èÜ >9즻 K«€ÿdC”@D‚Ó9„§æ$ß«4Â9Îò—?vú…„rÁ µ¡¶nÛ&³¸:æŒÓÏ»ôœ™¡“,-;lô µ£zG Á.9üôîXpçÏî¯BœHâ£V%üqÅò1Sf@QÅ< g_8ÿÁ»¾8yö‚{?°œèQ«Á»ÜiMPDmœeg§@8'•dëº0çñ |HÉ nÛ†§[þ‰ÏÞ1äÔÉûëv¼þì÷ÿøÀU#§_Z>êŒQg΋UšW2aš©6§4³B‘¾’¶{ÒÊ^aV‹ó®½yãË¿7ëê}¯¬N·5ï}§ËÀ–V{Áepó>jþÄ4½’L“yh|0ÓIßÙvPXŽVê$Q“¢ŒØóîûo¬Ýñ·gÚ>>nÚŒ™—f­´JYæ6|LWI Á)¬¾mÙªÛ¯9÷éÝ~É¿wpßnRFìHâ£4‚æÚ5+—ßp HÛÍo3v ¡rôŒd<öáŽ7+†÷RíÒ‰ùð»›b$@C’C_®ÕB6ŸØ' |ýŽ…U#ÆO»`>!ôô™ó>ùÿ–2 Ÿ¯y÷Ÿ~÷%^ Gž9¯bÔ”QgÎËþ!—¶Q«·$‡–ÚýuÛMøê¤oˆPR^½eÝÒ]›× :fа1¹¸™›¸¹G†ÀˆPTV©ü´¶Ö'ŸÀûöÔ¾¿ùùtӮС£?õÙ¯Œz>„ÆÖ¬µØ‰5”ø ªÇθmÙªûo]`8Ü\_[PN·xO¯X>zʬxaYAiu³G½"ÐpÝí˼ë‹WÜú£¦ß—NÔ:†< “Ì¡<óaØIr^|"0CܱàÀ¾ºÏÞñ?Z©Òª!Œq… L™=Êìù×Üò`ãÞÚkkÞûךï/¿¾|ä#ϼ´bÔÔŠS¦šØ2¹öWËÇθÄOw”ÿÑôŸ õkjN™tÎ'?gqù²j.dÖÀfnƒ‡=™]@€Ñg0!)cý+éz4þÚß?öðé›·pɃŸù÷»'œ9×v"N$Æ¥ÅCŠ7˜ž‚I³æß¶lÕ»¯¯}ñÉàÀÞÒ-ù;‚‡ ½lús _YýãûªÆ„FŽ«m [ïq˜-c'N’Ã[ëk^]»úòÅ÷$ŠÊ ˪³…7˜ñ9}ñ’ê -¹áÞU+^þý®‡cºisÍ·]|Ú3_·ýo϶6Ô¾±®¦|踃ûëN¬h``Š/þú|ÍØ)ç i»±óg 2L‡G Œ ÝX·N¢6É÷gW,÷Òé.´Ýh²d‰2!)ãùrt}“gÍÿÜ­l^»âמ€¦ßïcÑO^ ¼ô뇜h¢jÄødñ éô—é\wû²õ¿y÷ìôò×úÓH~síÿuëØ©³ÇM›(*³#±C£Œ˜!³éC>~ÆÂ%~óÑWî{ü¯—~fÑÁ·þðÄmçl¨{ûµç“eƒSí-éÎÖÀOŸ”#:2…·^ª€qÓg3Æ-Ç=^õ ŒpêÄém•:Y7-ÁÀo®}nåòés¯,*¯.«åFyO €¯aî¢%gÏÿÌï0Nu´œÜ똞]±|úÜ m·ÿ†QùݰwHeåÇæç\0 ’ÁЇ—*ß¿páM`»±£öîfͲBˆWOš5ÿ?îYõã?}pÝÒÞyíùß=rsûÁ†öæ†tG«—êÈ‹.BÁ)lZ[3挙PT>ø¾în.)¯6TÑ:8)F˜ ~pçÂXAÉY]@l7ÒOâ :l"_•å°ùšýtg¼Ý±@0X_óPà{&þœßàó¡0áè÷6¯€Æºí'ñÀ!ãy½ôë‡^]»úÂE7'ŠÊŠ*†oÕº!³§ Ãƒ .¹ï±õAçÁÇï^´íÕ5­ZêÒ­wšàÞýçÆ1Sf€ö ,—r\hØñààþÝx2Ñ’ÁÞw6lsÓü/}Jª†Kpå„уíM{ÛìKw´äEmìxaj'7­]mV¿Åƒ†YýM`s.©ÝòJëz8¹Þ‡äà7×®xø¶3/\8nÚìdq…íFOøÞ­ÒT™qïc/O˜zîïð•??q´6Õ§;ZOÊ÷{(8…ßÙд¯ÎܯOltQ7 îåÐñ ó®½ùž/Õq²®lNMäya¼ ô¢E7€‰õ}ùhp ªo¸wÕgoyàµç~ùØ·´4~Ø~°!ÝÙê¥Ú8Iy À(lz~u_ügèA`Çj;°>,¬¯yhû››æ.¸l7:0é;¥ÁWp÷Ï_–‚ýê¾Ïµ6ímmÜ›êhUA~Ä@Ž„€ ]µ“EåƒûÛ6ðu—niØsRŒ°Y7ýö·nsÓå7Üцæ«åS!æ,Zrï/×§[3îtsKÞTGk¾ô^NÆÞ´¶¦/þ3ôH#™Tpý[aÀÑ‚BÒ5+–OŸ{eõÈ ¥•ýê<÷@)´´,ñ«û>- {Ò-¶^êßÙ°ýÍM†ÀÒŽ L'â!FxÀ]³nZ³bùÜ…7™¯ÞÉköY(Uqïc/O˜rîïð•ßý` ´¨OçÊ/' ËŠÊ«m'ÿåGG…Ÿ)´|÷õµ†ÃÍûjÓyÒd>Lëš•ËM믴ݼyå6ú€—j°µCnÑÕå‹ï€ÒªáV¿}õ&Þ1ùüù?~n§ü–ÌÞöêhiÜ“àädžžaÌÄéíÍûµÖ:ðUàb8G³ß.bÓ¸fÅòXAÉŒ €åöÞ¤:ðsŠ´ ‡ÔïJµ÷U“ùÈÖ¬X>høØªãÅi~ L£ÿ?^\ ÍûvØJøEWýDð¸EÕ?XóÁYsæç¸ÓûÒ­¾7@‰4Îòã?á.tYe5"¢VŸV~Zë@ë #,êkågfm†[Èð>\2¨gÃs+—繸rè@®~E.‡_þ1<°wgÿZr ê`íš•ËO™xHÛxÙñÜCðRí°€:Æ¢«þ@ ÁWÐÓni<¸o·×Ù6‹¦0ýÛgÿz¨R °óŸë²ô"wö¥Ù:á¼Og_–û¸WÊÂrK§Hö éö?0µG™Ô‘1¿¶=¹ÍŒh -ÏŸé57ý᱇ce£Î¸ qÏŽ¢A#ä‰ÞYºP·'‚ÁÆ?×8‘øÄs?&{t2pìþy)ºzô8‹®òÙšôV‘œKìã%ù¤ó¯äV<|ëàS&W I– ê¿Æñ”׎4]ûÄÕ7–TT'ŠÊL_îÛÿØÐX_w„¿ýkÎy8 {kßùgÏÑ 3.¾Ú÷RáÜà“„ãmô?1[€>X»âáۦϽ²ïEW}„Ò€ —H~޼ϧ;Û)¥ýW»¼0">ëž­™9ﳈZZN¶«þÔ‰3Žü·¹çä¨ïbs¸h wcI3A¼Oºo8FÿcDV9Øl÷ܱÐ%Ï»ôs§¢«¾ ëNŸrÚôe·.xü;‹f^yëÔ‹ÿ_KÞh²TÚ‘ü¦µxþügÈ%°Ckó†¹W.†PàDpì$7£z¯ž5(ã)É1Fa×– ím­CFŽ/,­ì'ÏÖôÐ̼xþî÷þU1dôI×Q8±FÿC‘RÌÕdÛù憶lܵeÓk/¬€‹®þJª£­bÈ©ý¬;ýí_¼²â¿nyêñeuïm>oþÍJ‘x¡´#ÂŽdz­út™r ÁÁ¼ùÏ…¦šêkË€âŠê~MEš€µiæ¼üs7o{ýEÛ‰4î­=®¦¶þƒIÓýä¾[/Yj2‹>k2JÃØIÓëkß“¶ë§SŸÏ¹¸Ç‹>5úgTõM`R0àvmÙð¯zô nç¢+ ¬zx¿¦v4BayõØIÓë¶¿U9b\ॠï¿·;*rý+†÷R=Lz7¤}ÿ­ïoÙ4ýüy£ÆO™8ib.i)¥$T–&aø„³.œ÷÷ÿ0ã¢E©Ž6!¬ŽîœQÊ-©¨..¯þâ'¯>zRýîï½õú¾­yqå½õuãÏ™/®¾±n»íÆ„´{ö@}íû[6õ í¬¹ß>eÂ4³iÙ!c 94Âh¸ôÚ›¿²ðœ±SgCèñY'+ #©ßÑXûÃeKGO:ó´i³’Åe§œ6mæ' Õª_^S³oíÛÿãóÞÕX_7þœË`ü¹—%Š 3-woŒw“§ã”¼ùR͈ñÓß+«™—ÐÏ~nJ`×{o@qyµêÅ) ‹¿ºÌáý{Þ—¶{œÂ‹ÏÕL˜6 J*‡ô«ÿl 5Œ›|æ?~pö‹ëw¹ñ‚“L`s.ùÃ/‡t̹*VT®U`ôô i7¯«yÿ­pÔ„©¹¤R†t%Ô5á-4BaYõâ»üÉÃ_½þë?køð.¤=É FMº½±öŽkΙwí͓Ϛ/,¶¥ A!lP6‡Ïðòs5›?¬}ûŸ›ªO’(©ê•ÏŽˆl\[S6xTª£-/þ3d L)¤šj«3þó :Ä·[vþóoÇÓ¥ùÛ_<|ýËÀÊ·&s¯PÃÆÏ‚/Ú÷R'70k"3 ®¿yÃ_~=eî5ÿxqõ¶MÏ~ðÖF zÔ„i›3ïú%ß,*«‚\Òf<äc¥áÌ æ?ù³‡6¬Yai.­“˜O2_}{cíÒ…Ó?¿tÙ°Ñ ŠËH¬‡7Š9dø|Ö…ó Ÿ·¾±¡qo]–Ïñ¢AÆÙ.,:ãÂ+_]»zÁM¤;Û0OrÿÑÜ㉲7§öIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicseffect-colorize.png0000644000076500000240000016454112536324504024250 0ustar philstaff00000000000000‰PNG  IHDR@Ã|¡_? pHYs:Êduh IDATxœÌ½w˜]Wy.þ®²ëÙ§Nï£uɲ\$7¹ .Ø2 É…›ò#±¹ÃMˆÓ l‡Ä $äGBÀv(!@¶!¶ÁF’1Ʋª­6UÓgNßm­uÿØgF£j•)zŸyæ9gæœ}öÙ{¿ëû¾÷+›èº˜„ÎPã`à¯;˵×Ð+î‡Ó«†r]õoSù>œ êõ-4ª¦þ¢5­¡‰æè17Yí×XŠO?8Òw­}FœÄ›Á-0㔼¨`ëèÔ{_~äz×· µfff?¢!ÿ»ï+¶d#m]?ãÛ¿TÅïÚzð¾»éS4Þ@íê™:ki Åï¼oH_F[דÌBÄfd³3“#ô ~ù†àÆ¿#±:Ä[aUQJ @¢ß:«¼XæzDÿÕ¿—ú »¶`—~ˆ.ºƒV-…]nÎê®òéO|PbùÛxùñËýß /¾´òš˜©5¯€Uw·=B§=&B©Êqn}$q`k×¼oûW0f <„fdÖ¾Ú  ä#k^w÷léïèå¿?f@³Îkcää§”€Q ¿²E»öO!|vÊwÎ ¤÷ßx ~û—Ý™Á5W*¤;Öüü´u=¤ÔEu%¸!4³eño>±ëëÿ¹í_P< ݱÊyëöm“ù¾pßVoàk´Æ+Ióš–û/lÙ4þúVÚ~‹r'·@)¨>{»ÊOx Ø™f­í:ûú?f‰oÕ€S0ó$œö„vç=+X{à«›ÜÎwÓo&«·*Û¿ø@ i‹tíÝŽý[äþo÷ïÅ÷œá½äÍÿ«0BùäaS‡’¸Ï3ÁÑqxë'¬u¿O:–l%z|·/$¬LKå‰bÊN\$(j×-_sóÞ}ßDûìÿV~ø5Vê ÷m¥NoZ£5^IWwýÿ•70„µï}¢øWþÓ÷koÿ'„0˜©Ù[šO¬wܱLW ôeϰ…è¿ÇŽÝiŽ¢FÑÀË`Ê\K-ˆÌò¼ÃÖÐYMvlÞÛ°‘ó¬Ù3ûR¯^#{6Pù>âÔÏìö/&‡­#ôîýâzøöMŸÖ;n¢v1S$ ú¦óö$” èÍ—}ì¹m¼0|öø ŸQÙ.’¢Ð³±·ÇqÆà¨C¯L.@-d £/÷ Þ³úc/þ†<ü#( ÀÏCú3þqç!acoâî¯ê·R§Žq°s fÔÔ:õ/à…Hu¬…ŸÕ ƒYúRgÈõ8´õAºønêÔ±D3Ñÿ¡ÀR-ÇžK1ãq~°5Ä h·îÿÌB‰»¿b,¾%[i¬Ž P ”ƒ0zÛVð1„æå|BvýXù15qAq6vøDýr «Y€ps–¢S!Qð0Æš;þïÁÄè‹áO>ª GQ†_@XžO<{qÎèö)öR§ž: DÏÒÑðBXé9²”+áÏ;‡uè=ºãIså{™ßYøâBBLÔü˜Ä 4§HùÇïþú&­óÖÔ¯?E“-4ÑB¬ô¹Æ’y~ç=Ë?øDøÜE†ŸGè¾ÙûÎ}·§?18rGvèíëÌj\ª€R€¼‡ªûo^usð½÷ËÁ_¡<†|üü|N“#a@?´õÀ×K#Sao¼‘ñÙ“XÆ+7ªÂQP ¹ˆùtCLÇÀ¾¯lŠÝô),½³`~¨I!Zv?Ì¿Öâªdo÷×7þt³uõÇœ·þ5e‰fbÄÏC‚R@ÞC¸ðžæ›î±YUq~nÆÝÌcÖ ޱî=4VKͳá?Ÿ/DÞ¿òåÿû›ô§Ÿ¯}ŠƒðóÞlú °5$Lðƒ[»¾¾Ië¸5qÏ¿Q§ž&š‰‘˜ÕìŽ/àÕ¬;®ÜqóH`8ä/ócí¼v%7Άó<……èùƒÉ7½¿¸>wðg± š«ÚU,Ù -vÞ2È{p6<\³øšà¿>¤ŠƒªpÞ Û§c68ôC[µöõˆüçsŒ÷ΡDÞG±jÝòžKz‡&Ýéø„¥9ub:Ú2Düⱈ½Î†‡©z|¶ó“¾â-fºIæ“ÀŽÒ{ä©GïÆL'~OÆqBôüøø 7LÜó5}á«%züÂÐ@ ï¡ú=×,¹N¼ô•ï…ŸŸ‰¯à8gm›ÿù(…¢Ú\ýîÇk[—ß{¿<ü#¸ãÈ÷ÃÏC†³½ŽÖ49òµMG¿ÿ cÕûœ S+Ã’­³j¦#Hw\%{_áÏÁW>:ƒcàðw&¿©¶ÙþúRÂL7ÉžçLÖrÌ)N z7¤>ð4×S§þ<ËÓÁ Qð¾í¯´ì¾ðÙ? ²]ðs3²qL˜Gw>Mcµ4Þ4þó pCä=Än}xá»þ†¾üùpÛç 8?1ó¡J0Ð’"G¾¶)»sKìÖ‡í«?Fíjb$ ÅféCO†…Á^€ÊuÍ‹ï0mÍNŒé n¢NýŒ'~O†PÈt^UyÕrÌ!Nô> €%šÎ/è=Ê<«å²=§e÷͸(]9IG=z§ùÏóP¨ùaç=ËxÎ.ìþs“*Ey¹^Å/r`q5èb¯Þ%{ãàçW,yžðŠz£zµò|ν蘎Ž*rè;Zk‘ó<ûGà8ºRË1G˜¥ ÷ (úDólˆÒÇ<7úó™l²æ¦ß~>ݸ(øÆ­“‰â£ðó3˜báqÕª÷ÀÖçþ´ÂÞX-1f ò9WzËUD$ÉÎ-£ª•c‰ßdËÜÄBs¡U¾oÎ<«Aï÷ˬ[þÁ'fV”>Fà=OÜOcµ4Þ8÷þó (È{ÈÜ÷øÂ<þäŸ|JÃðó3’(>M©F=1óâzH_ áŠjdÌmQ´c 9¾}p÷§%~碪QJ”ªÖM{>ëž› ÷ ¨$‡ßóù¥)Á`8f~ùü7ú+Øú“|l·ÿäͪp´’( òç¾Tãlà ¤;ÖÊ‘=TöÈœaKƒ£ãðw´Öý>–à_¨9¢ç2è=¤BÁC¸ðž¥)ƒ!1¾]k› €/ŽÆ®é[™E×߸µ’(Žê.Ï럗R³A î¼Jî­<Ÿ‹8:ÄTâ7Ñ4gÂ;©&…èٯ刂ތè=4WAïéJ'v<þ䣪ÐÒü,‚" §U¿ æ«Tãlà‡(T­ GvsÇuÔ“Þ#O=j­»•Äï\$ÿ§p¢=C Ó~(c iÁ8´ußg†sôž¾@ÁCÍ{wHþBDiJÀ)(‰J8Ú× ©á Œc[<ÇÇvß{¿|åQä{àf+£’PâÄŸiÝ–†Öôü”jœ „вÁkåðn¥Âòñû?ó˜žøÀRísi~#9íП Q”€NûaŸü18ÒÚÓÄ}æãG¾¶Ik».õ§æ2è=¢¤iý¦ÇÙ«_öÜ+®—5+BO7¾#úÖŒ€Ø:ˆlOyÏÖ‘Ý[¸Áñú§š“ïú.2ÿùD[åDsÍ¢uY¥¯½Ÿ§Zdèù½/MY¹k[ØuÜ_òßÿ5ÈÌË?h,¾ƒè1sœì}SpŠ–åWíûáfÿ›ï ™%$³”³Åï@œ&Ú¸öï9ؘ>,åLhLG#=~\Î|œz)ÑqÕÆ¾ïü#(QrZ~оm*ß§€0×+û·OþqûÔ´6gåÝÑžh²V¿3zÜòþ'kbxá~Cï¸E….uê.žU»ècÐhîÜøÈž'?tÊñÇ< K¿g[nÏ–òî­ÒY~G톇ø4ÿ¹ý"œŒ1%Øûߥoÿ[¥$á¦îÔé©Öé¯qVë³§“×0g¨ŽáÙ›ZÃåJø übc/#вC½ñÕ›2×4ÌH7Ç(r;·²=åîHÕ‘AÖx¶øîSoñ˜&ícÄæq}?Ùl¬¸wr\Î\;Ï„‚F£9q\úeÿ6B‰Â}•y&2×+ûwDÍæ5<ÕŒãùiÞþ-uœÃ5¹LM*’BѪεåò¸–j¿ØÌ‚ÚqÏò÷bß3ÇÆwP3-d”Tx[Þ½e|ÏwÏV£érgùÕ¿ù]žl@4›¬fR¾ºÈ¾Þ °5”·?Æ[®æ±Zžl¢š}æèp*K!B”|,~ëý]½;ÌKÞ ¥ Ä¼ WÓ3 z_üÎ#M¿ñ]%«ý¦Û˜\Øäi)um ²}Ê]Û‚®_È}ÿ7ÀiŒLô±iÚB‰ (·4æŒnßóÊwãïø"ó;O‡‚SpÙý¬ÿøzfW[ío‰Öôêi¶´u݉o£'4Ó“ã|î“ ´®»w÷+?×›¯R¡G.¦S¯"wÞ³`¼çðsŸä7=¢ŠƒÄJÅÍŠ“<Þ»Ýݳ5¶ìŽäò;š6~1zÑlB(¡<9¾}´íz\Üþ3ÁÖ±ï™Í™ÛÿÕl°sHÛ–´¬Ýxð~›\ö2ÛEŒÄ|™“ar8:vþæê·~ JñLÑl9mqšÊ°è-Wé-ÀIÄ&zJÝ;0Ø¥Ÿ~2Ìö '¼ÂpÖ|oÙÿ¯›ÌÕT~Õ,Ÿñq9gΠ¬×UÝüI-ÕÊ „j'ñó„!Šç»úu ¯O}€œè¢VÕùÎ…¼‡ÆkèØq¤ç§$Vï½ô·ƒ#»I®ËY~grÙÛ"ÞnPBéä< ø«ÿöaçæÏ°šå¹ÿlëp·?¦µ^ÍZžl¢ú¹E2nˆRõºT2á íæµ+–g©Uý\å9Üí4–¬¿„%èI;6Åeu¼Ë!Ädœh‰­lÁIÄœð‰žr×÷¸?ûdÏD ˜4Dó6Ò•Sݿͨ[N(§zŒÌô ¶¾€W»NŒTrìJxäb"0F¡o t¿^³ÔYpuýïÛ7Ɖf0B(¢Ÿ“ÀyíJ”7/¿âdè ¶†®—·Ø—~Õcç‘p´¬Ý¸÷Õgyí ”Hè^ k–££Fö¾øÃGëîùGTwÎÉŠ}:bƒ 6) ¤˜i Ûþ¸ÃýÕWãw|Iæ#1³#cÏŒ‚Søù–Äm Bg‰½ˆ*UC´®Ý8rä9½}ýÜÏŠ83¢ZtïÖ×´9sÓÙ ®gñzžh¤š…ÈO>ãa¡¼î–/’yˆ§ƒ­ÃÙ^.Œú•<ÙHôóñúÜñ«ðö|€Ì÷«ùž¿ÀàˆØùO›â—¾›Çëxª•3ãL Ó““?BAH”|L¸¸êÃOÊlWÐ÷åæeŠ€ÁP-{]ÏãN-O4’Ù,àõZ×n Ž<@…Þ¼›B4%öîþ§MVÇ ±%oÓª:µT 5“`ú´,ÃiA¥;A»x&ŸŒhHï¾o=˜ºúè#çUmJ¸!¿õ~w÷7¨ <¿“\àèð¶?V.«ß €³®'EªI±jÝ ÷—_ú{2×§ü¬~è)apýūㄳJ`O@Ô¯ GöÙ^,FØ1P#{ùèz»óÆšÛ>K¸ÉìÌ9©3T í7•.žeéØÚ4ó›h$Ç‹¼èàȳd¶Kói„µª÷õ-Ÿ¨Þð)ZU'™+=©è#}íý¦ÆÊÛ7ã‡”ææ£§ sŒÚaÔ-@¹1«qx @“-™ú¶p(ªT½(lkhÏ[?AõÛ?Ê´Ì‚sÕViгpSæzÕœŸÂ³§°õéæ×¾¥º"e%â•9^´Áàèx}Ë'â«ÞÍãu<Ùt²v5{ðD¬eÕ{ñv3Ú…È‘žC/Ì`08޾¼Åî¼À¬šß~ˆêEW…Ã{yÑó3F]qo|ûÁ±ý?­{×?ÐR­Ô8g1‚Þòñïz¯€ J¡#më°™ßrŽâóɘn„UPšQ½gƒ˜òÆÖ‘ýϧ¯½ÕsÊŠ]8Š>ÈâMk6–·ÿ‘ížKGZçÀë[­Žõ´TË\X fáUbx/óêEGÂÞØÚû“ÍÕ·}†Çë´d35çá†P¯f]Ðý3r¢ëb3œžý^°n|1HYŽ:Õ»ÿÛV¿õSx¦œûÒ{ EMw~N ïvwý;fBÍRB*O¨r¨¼P…g2ÇøÁmFírÌæ-¦Ã`Ë6]Ϲ~5^ôtáªúmŸ1VñD5â ç#°º Õ˜ÞÈèÕRݹp7ƒpt¤&¶÷¼ôäšÿÅõÔL‘ 6SR38Èv¿ÆkW-Fô9½-“Î4Ñó­ß ¨Xý^–h`fŠÌG7r(aØÉªTâè‹ÿ¬·­©$cÏR©@*W¨b€œ‡œ¯rž,Ä •'Ôäo„J€ÂRŽ|ówâë~‹ê1ž˜‹!0JÁ` c{óÅKµS39_—zÜ@êýå£ëí¥·'.{wꨙ<œõeEO^-ªÁ²/óR.÷~0 ¤éðª®ûQ¹™ë<ä ¦„+V½4}Ýÿ@ø…\<,ž`¥ 8Dcµ*(‘‹£ÐßÖÝ^.õ+ÐóÊýžSRÖÜWeÅtÔ©Þß~pÆ¿g5í€P¢ècÕ{}ö/¯×ÜÄkW*¿xÚª¡T9P_¹Bº!Q „ˆP)_ªr ]¡@*©HJ¨N’1ÚPÍGF‚Þñ8‹iFJ×ÒÚ‘_üØlº[º i}. l4­ ü8*5•™9.#®²}ûëïûZ¦ã À ±ì¶x»¿…H×™×ÛóDˆú»~¼9~é}´ªŽ™M±Ì‹”¥18^ßò e¤æ,ñ{ “E[*ªÛš$s)@©zÝ ÷ŸYÍR¡”9/,ù]ùòþqwßxyÿ„{0K†Šl¢¬Æ]ä|U H(]J‘óÝr£!ì¢û¶ËŒW›ÕnÙ{c"ÿÚh2[¤£B7Öˆ1" Lúrn$a?„Õz•îÈâ€9ƒ§„«£Ûÿ½ú¶ÏÐÒmç!;Ÿ À Á—nŒ¼h™ë»¤,[GµìÞ÷¼Ýy#¢ÚÉżHYŽ{dûà/·Ì}âw jªDkŠ>êoD'¦©YÇ]Ü*”2ë…ƒ%¿;ïʇ³Á‘lЕ zò¥®¼ãy «i]L%u¥IiÙ$MIbËÐó—´éC½åj‡Ü¼Ö¾b3²å½Ïj~mu|9cá@-cn˜¤û&Ò×…~÷H‹^tUiÑs(DO®êÞõÏ<^§%[¨1w fÕ·<$4†r£]‘®cÍšÇÖBJ41ü̧Uf™Q¿R«Z@;ÁùÜKY1ÕdÇÃ×Û‹ß[t3O613u~Âã…ƒDÓh&sB465w?ó7ÓÔ,J©P)W¨‚¯ÆÊl¼läÊÞ@If=é å å åɘ×Þ 5Vsá ‹)é †)‹&-24àe2Z2ÉFGC!ç´©AóKHv´ÚœŬ ]‰r¨JaX •P  ›¥²FQC÷Ž-zûúÊwœ“S0%\¥oøC£aO42+9#s+—¬¢uí½Þž-d¶{~ë„m 5ª·wÛ“ñKß €ÎÎ…¹”²8ELÇþo=þ|%~Q¹­ŸŒ¹‘²l 2dç—7Ù7§éø½à†Œ¦öë?Z~îK2§üî°?KF‹ÆD9îy1ßÿÕ ã"«WÇ:;­È¢5MšLòš=— ‡‡ƒxœSJ¢[À0h_ŸW(!”Ê4©Ê0¨aÐÁAŸs’Ir ’úáèáü•¼ÕQᘫʳ•ãñÅ´šJáAÍ¢„6%\u+j&fVø8õE a1²7|U _z9(1cÅ•' '§ƒ­M7¿í³šmŸ)+:…¯ûÁ0ðç'ñ{ÖPBrÂ\ö±äjo÷ËjúD)V(Û%—e½8U:W?ûY6 UU•ÖÑa%œR¢iD×)!`Œtw»ù|¨ëDJU. Ï“”‚s2>ŽŒ„®« ¡ë”11Ùue¹,ãqfÇ×Èþ}å_½0¾¢™ñ¢dgË{!Z×ÞµÊñ#¹n8 WUaï¾'ïO]ûZzæg÷#°/@- ‹×‡Ÿ…ðTyL•Ç*Y%@†Pò<¿¨RPêl8lë¨Åtó;»SógµÁŒ e!5±½ëÇ›ç!ñ{ŽçJ ¸"7,ºñ#±loÌÔ˜«&\Zh(T"Áƒ@ýüç9ß—õõzm­–L²ˆŒBÏ‹±±0‘à†A…@±(†‡œ“¡!Ÿ1HY¹!ºNŠEáû€c‰83 Òu¨\c©S‰¬'ÝY!°/àÕ¬#û+ß:ôNVœÈä4É”…ônûôÕo„ÇëίWáMÁªoyhꉩaQsrÏwÿÒ?ðTØÿ’( ‚jÔ©‡!dàX9ÏñC|Ï äL¯Oš™ŸÓmÔJùõ3‚ƚġg¾`,~‡ò²ÄÊ ˜÷‘6š5Áªb¨Ž‘—½VUæºnòdÓù53Ÿ3”RP êMŽù±w„JzÒ/ Q¢íU¼)ÅLW(¦ƈ”JJäó"—¶Í„P®[I*û¾ CE)`šÔ0hª PA \WR ¥ÉhA „PšFÇÆBÓ¤¾¯iRJ‰”* `a‡iÄ´#!iÔâ„Îð ŽîËÊ,ÕN­ ª©ŒèJ&‡¿F÷Ùæ ‹ªÉî¯ý.©»Ô¬_©Uu2»j6ïã„l!…Ô’›o|ÀÏ ¸»ò/þéèá¼á šhÒ—ÜEãZÓšc{Ïô(#qÜïS|K2¹ðžiWl uèýÙ¶'íÛˆ;«¼Î”9¯}áUYÓï@ áDß·£ïÖƒ]ÛÊã}U>åŠ-yÛœ&~ ”"„œjè•ô…ò¤R !HN(%T-Kcï’…ñC¼‘‘@)¡ÂRBJ21vu¹F,Æ„PBd’OL„ž'óy†Ê¶©aÐrY ¡!¥’”Å¢P å²t¦ëdx8°mêy²T‘ŦCC~o—Û¼\Ki*WxÚ |æs{¾@fášÁWw ýzzD†g“Ñ©Œ›­=ЦQ2Ìöø=;ÜloØ·},ß»¿k€ª[ÿJÊgéæ['ntl°‡Ûin%â­W˜W€h‡¶yã}ƒ¿ÜâŽ÷ŒÞ¡/¹“ÆyãÞx%K4û†'òyÚ¡§äMg§'>§ÛÞ¼xCAI¥@ ¹C}~³²¦K§‘ÖíÝ1±k‹Û½o[S³úžê{?·ï+›‚ñÃ&ùœî IDATfÃ%PJ…îÜÀdru;Õ± F\æ…ð¡6g \¡ÜH9<ìïs6\'[Z BÈØXàûŠbY$cáÀ€_U¥Y-—I¡ d2||<ÌçÅà ßÔd(…XŒù¾*¥U*‰LF(%¦I#Kî8LJÆ b166t)CeÝPz’ÎÂÑòËïñÿóóÖšß•ÙnjgNf×]#/32M|]½îm"×çf{½Þí"Ûë÷îГñöµV²1~ùF¦µeù5Ïþßä Õ²N)³[&ÎÇmQcèÛ¿ÝnX¡¤A(A!aµ^e·!½z£Î`ðå-îxOöðM<ÿ'ÞDŸ¾äNÞx%7Kï:îã3!gvä, íò?/o‰¦ÆžMY…ŠBë Ž_ÜÕW?à=iZk?,óýÄHœŽcSŒ¥€1™Æ+ìÚRèÞVص5"mÓê;ãw>d¤šPÍàšyùo?ñÂ_­ o¥1¢YlÖãã@@@ÀN{läP±š Û¢Gú|ßÐhŒNe)$EYÏajd„<ûl~ݺT:ÍGGƒˆ„ž§(…mÓññ°§Çkj28'„`l,Ô4bÔ÷åØX‹1J!¥J¥¸ïËbQè:˜-‹I‰\.4MjÛtl,,•„ã0¥`YŒsÒó”_ S„*³13Ó ©Ë`2ªÿ}ªÅ¦Xzºæ{¶‰\Ÿß³]äúœ¶+T³•l¬½âN#Õo¯Ü:ƒP]êB¡ó-÷<÷ï©u 'º©‘˜˜,ýl%ÆjãøŸ—<ðc±¦UÌ<±Ôkª€'ú­MòyâÐ6o¢oð—[¨ÓÀ›ÖðÆ+yãšéÎ6*|¦§s¶«là—õ½þ‹ôÕ¿§¥[™Sû&EÂS’Ø”OsHYÈþðãÝc¹â>šl£NÝôÛ[‚èþæ4ÒzÝÛÜîí^UwÆ[®È¬ºÓH6 šA(!ÑmBHÌ ÚÐöÿþÜÆ¦ßü>-ÝJ­ôq{<Ûs]OµýøŽno°<<èµvÆŒ”vdP’0)‰jA |_–òas³±x±•ˉ£GýBAxž CE)4‚ÚZMJxž,E¡ #”’ ±³m–Ë…QªixØ÷<³êj @¡ 8'”Âó”ëÊÆF1ýýèQÙ2ûŠ5ñ’®?½_°¶¤Þ#§[†¦«tçxS¼gÜ?š—¼›¥;­DõtûRÚµ@i÷Óéo»RO5ÇÛ®4Ò•¡ù] pì’ž| 3˜åžÿúƒ…µïü¢Q¿BËt0§îÜöò,pÌp†TØËêÊžªN蘬 T @jõÆôê„`Õÿ†;Ö“=¼câжì¹φFm{žÙœyÇç-vŒ½R)©Õ8ß{¨!ò¢~éwÌ÷Él5SL·§ì­Î·gÛè®-S¤M·^¿ìOãmk€ê„P€LÎï%•–Uô¨[wÅÝîúáU¿í3Áx·F5“ÇŽélC©`ÂçŽF´ŠSc¸Êsöêú½àæ·V§Žt»¥BH„’¾ôËa¨0Tû÷—´µ™¶Mƒ@¥’ˆLq>O£¼.!D×i¹, Q‘.-„²m–͆¾/‡Âue>/ ƒH©ÆÇ…¦Û¦\WÆb,â?c˜˜‡ý¶åFµCGJ¡ a§rX”¨¤p #ÇߟáÍA€¶åoÙ³ûË º·ÿ?3ìÝ ¼{+€ªKß  åŠwˆßó'ÑuÒ±>öàðbÉ–ÚEk'^übÝ=Œ¢F|ÆEc‡Fc9°=Ö°€™i£g!ÆF¹¡)AZH Ñ’ZÝñùìƒgÍp />F3 ©fi©–cÅ J(%¡P'sxfIY™T¼<²Ÿ×­RJÄ p»·•º·÷n/îÚê´^Q½êÎ)ÒnB@èi§oð„«©¢î††lå‰Äe›‚±Ãzõ¢Šø9Û*»(c®Ö=AcœW5ªk¯aþçßSñ88êÿà?†6¼5³ªC?tHŒ†Ð8¡„H))%‡•§¤fÏ“„€s"%|_årÂ4ißJ M#¾/ƒ@QJ5‚H©æœDñp*B %C¹,•ªÔl(—¥”*ç®+³¡_’iCe¡ÂS¯p‘Æ®„ÊÎUaÃ=ÁáŸLüÓ[ ¯ãf¼þŠûTð_¦^sNt=%ÜWàÑÿøãëÃÂwjUPžMS ¿±Íª_†ÈBž£ä}‚q>ûà™¥Úù•÷uýds|͇‚±CFýÊé!âd ;ëÉ$Jpù÷>ûóŸføŸ* í,ïÙê´^o»²zõÛ«ýK•—iæ$iÉÙ7?D™/ý­'žúXG)^g/¼Yz9JÙœL¢P„Óî^Íß¾>NCÁyêéñ¡¡@ÓH*àù¼øþ÷Fo¼1U]¥¾ÌåÆ`š”s¢” âqÆ C%¥"„Ê4©RÊu%ç@”ÑàûÊueÄXß—aH‚@™&ÒQ†‰ BÓH*Ń@…¡òÁoK\þ~„_h¥õ |„ uéFBÐxã±à9{x›è}õÀw~€,O «”JxSÉÒÊy:7ÿ蜡30Š£}½Þk³¡—í†eÉå×Õ~à‹„0L’6ê8ïŽ%_ ä㎿xþÛx–¹D””^M™M צ7]8”TÊÔ¬œÙ(êíß“ÅoÞZ¸Ð)ÄŸýÙ‘ˆ-”Fö‹â…²K—ÚšF CEŒŠ¢ø0„Ê÷)£ €JÓHd9=O ¡”BTÑ!„*—eVþ¢¢×(EL“N•óP !”çI€FÑu¹,¥ÄØX@4*k8a§%0PéÍ8Cdjз¾±c韤Üà± 3gô>ï“»,Ü«n`ÇÖϧ¯þp˜í¥Fâl|Û³G¥#J=ïþÚï6ßò1zª‰ò¾ytÚ£»„ BÂjXž^¶¡þŠkî{hd÷ScûŸµÞL5›h&åFD•Š—JÈÌ^åÓA ₽[_yòã ×þVË-­ZuG²ãfØ„T3 ã„2r’Ÿ|®%”žhniÝûøŒú›D!É¡¸P ” ›!¤|$f=-mPB9¯ô]¿€XÍçµkãù|øðÃ=RVê.¤¬OÏ“®+ ®i$Ÿ®+•RQasTbÁ9B¹®¢²:G¥a!ŠèÅJÊ÷UTzQ:z0õ‚h›J!Ú PÑÓ P¦É„‚Ðy‘i¨ÇkõD›ñâÖJ…@ A,'iÉÜÑ]?q–½CºÌ®ºj¿Pa©FQëÕãµÓgðÞ (ˆ9-7<ðäþôúñŸþmúºcGôê…Dwf;øµ5´¤È?¶^~ó!LgV°ÏäPMznå!×)û¹À÷ʃe @J@*ªQjrf2ˆ¦áÊò„úRf½”I†ë[듾S>BÙêŽ1æ³P”¡ËˆÉ™ÅˆÎN›;9*¦äåoiVñáV¯$úû¼Þ^/›å’4Mº|¹Í†ø‡‡vëëuÓ¤¾/…@df¥TJ¡PA £þÁR· €(v]™ñ ˜fK•RÕÕZ:­ ûV”vV,Šxœ%¼XÑguu¹QÑ¥ï+ÇaCC~[›yÛm™;‹É«_`Î’mŠn(µŒÁ:5ùY–3ÀÒ°ÿÙ Ëc+õd㌷»©ITŠ—¼o¹wç6{»ú2(±™kÑ™$0C×ö-ÉEëÀ³_|Š>õëÖ¼ÿá—¾þq£á{áÍÒÍSÊfužÁáØñ›Üñ¾¿ó]=QgfÚ‹FO¸P”TQ0)<1±wbà…AÜ¥PR)ÅuB„/¦¶(ŒlKTBE›B¨œNùPpЪ-½Êk•žiàΨ™ŠY)›s"rÄ£Œ˜ŒÅ4ãÔà••ä¤ŠQJQƒ Wä|³5ÎSÕÀÿÕж׎þu±üðç:ÚÚÌ =Ý^¹,‡9 ‡‡}ãã¡aˆrQMrô:ó}U.W‰2 bY¬©ICešô²Ëœ×^+2Fjj´Ý»K‹Yýý!díÚxuµ¶{wñÞ{kòy±éÚk“Jab"lo7÷í+Y]¶Ìîíõ‡Õ×믾ZŒÇ™®“‰‰0“Ñ^y¥à¦›R7Üò[ÚÌCakcðÊàH·W¶4×yB?ñ°œË¥ji¨½/þhóÂ÷|ÓmªÍ°ŽHÈTEHå·ÂnXW»hméгFý ”f° c²èdäÀ¶–•÷˜Ù ûìQ P·þö7¶ùá'?°gŒQ>KS¿EL‡¿gkÿ/¶´ßù—z¢ÎH5£üÖPR>Z²†òïŒuïÎUB(®1 (J(!S[•BèKÆ)!DBé1®ÛL xR N˜Au“Y­+GÿØL¦U‰”üœ04¦q8qf(cx¤Œ˜ÎOÌ`˜¬éWR©@ŠBæ|‘õT¬hæËïí*d=¤Êîú6e.© CõÄC×_Ÿ¬®ÖÒi^, JI.'|pp0àyR×™J)ÕÙi¶´˜55Zk«16º®\¼ØzñÅ\]ÖÐ`ô÷{×^›ìîöZ[ ÆÈÎ… 2×^›|íµâwT½öZ1ŸK–XGúRbÉ«£ÃdŒ,YbE’rÔ6¨idåÊX´v¤R¼X##Am­ÖÜlìß_ŠÅXCƒÎ˜£ë4 ³kku¢ÐRÅškµ¥­ÁáAù«7Ü#Ã…ì eICKé<¡3‹ã[, =Û¶DæӻͧŮäMãµ7-¿'Qjú˜Ææ…è|˽?ÿ·G•ÂôôÕ~ç @c‘ Ý7åBÏȦÏB¢èãÒßzbèŽÁo¨é7¿fû å'Ö-ÍÉ ÷©/mJ-¹)½ôf=QÇŒ8áúqí/“ üØ‹Ïô1¢Š!&ƒ¤žò]Él! ÂJ]ãÄ0¹íÐtJs=*Rßdè:™Ëe ØqN9%Ì´õuãýû̦•J” Bƒ@†„4_ëõ©#ÃòÕ×ó¹£EÓ™Í%2²ŠR/¤žÐÃÐ+NÆzäSí:U]]no¯^veUF“REµP¶M ÞÙi "Ÿ~ðƒ1Ï“’I~ï½Õ ÆÁƒåë®KöõyBàÆS;wS)~ÅN4CcÍšø®]ÅD‚9Ëdøk¯ƒ@åóáÈHHðl6Œ2F”Î ¥„122Ô×J‰”ÈçCÃЂ@åóÂq˜(—¥çIÎI"Áßx£ìº²¦F“A FFBß—VD¤|>,dc£Þœ" IÞš6³.öwû‡½þ>·ÐÇ´´¡¥MæpªŸUÊÓà09^ýác©Uw0«;¦ûÏ2JY)J#§î‚šìñš¬!:‰ê“räqÜõ7>ûþcåƒÏÆ/½O%jÄg¤¢–Ußò©Ø’I.Zo¤[¸•"ó4lM((`Õ w}÷³ÁØ!{áÍÒÍR=6㣃c:ªeïóŸYO¸¹ä×þ€žl`FìD¥„Àø =ÿÕÍ ?(‹<ÏHÂU „pÊtšªÒ«jôXœ'3Z}£Q_oÔTótF3Mjè¤*­%ãŒbèDgH:”*eZ‰¸m›JÔr)‹˜MŠü°—1qó[bë×Ä–¶pÓ XÎ˨pQJu$T½.Uce»f¥±f™¡ IE‹íºzÝ0i"Î.´.´Z[Íš-çŒM#QÉñ§?Ý•Hð«¯NÖ×ë÷ÜSS, Ça+WÆüÖV³\–{ö””B]Þ×ç-Zd {öW­rv}_-[fçrbb"\¸Ðö‹E¹t©50Xkn6FFB൵ڑ#.c¤¾^R)®ëäÐ!·¾^w]91ÖÖê~$n™&u~ð`Ùues³!tZ âqæºÒó¤c1‹V'h•CVtíu¼µš™",xÅÏ/„ŠhôMû–â:Š?lpïOÛïø Fª™L¦Z”RJ(H%Êèiíð¤@E¦²'sxúOeûà¼ØÛ»ã[ñUï’n–Z™¹ªYõ-ÙÜOçsãñ¶5šSí䛿oÖåZZ:—¿ñßÍ6.‘åqfÆgÐ/09ö?ñ»…¡C‹ßÿOÌp̪öÓ}ë±_÷ü°¯ìJJ%••ÒN¦Q¦ÍdÜdºÍªkõöfk«US­Åã\ãD ©”¡A2ð„cÓxŒz%!|¥SÔWó°,DhÆc¦É©©1·,ó9AJÐs¤ü³cýKU¹þJû¾·§6¼ÅÞ°.ö¶kbwÞ”¸amìªÕöâvcÙ{íÚD}½®iĶX&Í3-Ò‡ŠþiTQ½ñÐP`šlýúTªXŒ,DK‹16–ËrÁ3‘à}}^U•¦(×Õé4š&Ú†"ÓšLr¾¯ æûJ×I6öôxQ@|_i*´¢Þ£bQZ•RqN»º\!P_¯>ì2Fâq†*•âCCAw·ÛÔdD ªêjÍ÷•m³¨!yb<Ð9i®ã&dG“¾´•7¦hiÔësýbˆPF©vjk ¶<_zk¬q¥Yµ€ÇRÓ%”Š€€ž1YšuÖùdZ–½þýÏšÍk¸SK gF&+±ê[Š8úìf½n…YÕ®'êfu ÕÙ ”p–k"×ó“ÍfË:¯#L'\›‘Ì–F7‘{᱃Oon}Û'¦KŒt³f%O¬ÐPÛW(ìÊŽ²FIÎhÝ• D#ºÅ–,s–¯ˆ™µ,¢1J•Œú¹) …„‚®S%%`„P'šFŠ*d"ÎÃ@‹Òue*ËbB¨BôßPùžêéö^{5ÿüÇŸ}j,i‘õ×Äj5Ç¢ ‡¥Ó<çÉ$¯®Öª«5Ë¢"¢jÑ´(34•”"‘¹{Ç;ª/¶7oîÈe—9{ö”Òi-™äGޏŢèè°&&‰‰0‘àCCçÉÕ«;‹™ O&ùsÏM,Yb·´»vãqÞРïÛWZ°Àô<µ{wiÅ »ªJJ!“á;wu!0>&¬«Ë3MšNk¯¿^But˜ž§4 Â4i<Îöî-ŽÑ€R’ÍŠD‚‡¡ð‡•ËRÓˆ¦ßS©$Ó)ZêxÒ@skÌ0R ²GËåq_’0F5z¯b:b#Û_æ#ó«§šè4)Æ)£“¥§º€&'Š:éfŸ…‚í$'ö>5qàgÙ;dyœÙU~¯/VwëC ¯~ySëÛÿ€žl¤su«‹ÓAR¢þ’ ã{žÝùÑl÷éÕç ÄM˜CÛ_úÒûj®|OÝšMz²A³R§0ï2”þ¯†ßÈGüÉsD¤RÜäM­FM‘NsK'U)–Irªr!PB™&…‚%ŒséºÅ¢p]¶ÈçE¤qXʦ–Ë’sÊñ}%'ÃÅhpÔÀ€ÿôÓã;väëê´º:ݲ(¥Ä0h4b*JMùÿ“}– TRéÑ"ÒÒb¼òJaË–‘eËìšý•W Jaõj§§Çëï÷W®´#•kùòØáÃn"Á ¡&&DMväˆ[.ËD‚çr"— ƒ@)E„PÍjj4à»v3s¢ë”RÒßïÕÕéQít,F'&DTŒõÚkE¥MÐuêûÊuU<Îúûý\NÔÔhS­Å„`d$L&y¹,K%墓I.B˜:IÆÈÂf^Ÿ$õIj™=ZÎzJ(ÂéTlß¶ÙÑ£þþý¥úzÀ‘#®ã°RIB†‡ƒ7Þ(§R@ÔL)‰–¹èhpN}_ R× ç¤\VÕÕ¼T’Ñq#¦A P•di›,[`4W3U ²GÝÒ„€èŒp:U¼ÑvûŸ3#f$é 7Ê#ÇŒê™hY¡mç*­J+ÓÜóÓ¯øå¼Õ²–hÕ¬ œ³ÃZn{(8ôôø`wrÑz3ÓÆ­“V¦yB(¡ÛÉΕWíûþÃÒ+XmWÉò3œ³†É䄪hHUÚÆ¢òì#·Ƕßñçz¼Öªî`æI=Ö (õûžîx½ 'Kô9§+VÄRÕºe3 ¥br(¡d(£:(ø¾Š*øãqÎ9‰æË‹‘Öó*­B¨º:}Á‚Š¿êyªPQ5cIJXÔÊ‘6j÷–Å.¹$–LòRI‹ò³ŸíÎçÅêÕqÛ¦Qžy2ó¬"«+(ÍŠ‚Ø0ĪUΕW:==Þ3ÏŒ—˲»ÛK$øÈH°kW‰d³bp0ˆ–)ÕÄ„0 ³ cµµZ¡ –-³‡¹®$##ÁèhP*É‘‘`h(ˆŒj¡ ’IÞ×çjlÔuB")j„ Ör¹°¹ÙÌåÄÁƒå €ah(hi1 A_ŸW_oPŠBAÄã<ª²®©ÑŠEµR¸®ŒÚ!b6µuÔ%ÙÒv½¹†©R8Øã®$:K'YÏŠ$[ÓKn4Ò-<–"ç}Kª“ª³‡(EÊD׋߈¯ºWz9j¥/0ŸÄÚn{htÇW„‘‰5¬ÐœÚS\Ðó‡@@O5§S‰ÃOÿ–Y e:Õãäô™áHkjÐd¶Ç;ôÌѧþòWO<˜íÛ×xÝoÛ5 íÚÅšSuŠ’ÜÇkC»&ܲŒV³ˆuUUÚêKb„H"…"€ç© ŒU:æJ¥J=–ã°¨) ¡”2 šLòLF¢05ê“Q”(•€TŠë:mm¦ãðÅ‹íˆÒ¦IÓi.%„€mÓ PÍÍæ·¿=<4äß~{U¤èF!ºÓÚi&gLö–D[ˆ °ÊeyíµIM#O>9ꦛÒo¼QÖu²t©ÝÕå ÀØXH2þÒKùh {÷–Þ·mzï½Ë¢ŒA>Ï''­­­ØqÖœW®„÷Ü“?u*7Dª°}ÊE{*Ã@‰±m*PJ¢(UÒ[Äœ Ú©)ëÓŸ®ã_ !ëëÑÆF,„ÆM§VK‚@U*F«%ëuQ.[[±Rϳ¥¥°R1#x­–°,–$js3朔J†ë²}ûœ­­¸Ý–X™G‘6MÚh­aÏ{i)l4’BÁH½½÷ûrb U«%SScdk+Þ³ÇFæü¼£5ÔjI>ÏÃPù¾B/Ëá;/„Ž"Í9‘8…ÄåJ>_«5­XX„2Âa¯ŽxóÛ¸„¯<Õ½ðÝNÞºp›2‹P6PÜ~ýŸoÔ¬â~c»EønŠô·L:\AÌšºïÇÿìËÿ@çùOyÞÔZüã­å‡Ã«S¢Š³·ÏÞúŽü»~É)¢¤}ÙÍKІX‚;qªP(ö7Îx‡Uì½”L+÷Ø%4è´%ãºlvÖ6Mbš´ß—†‘£¶ZccF½NÚmáºZk(— à »» º½7‹EnšTk=6fj ŽCû}™$jb´,Šim½.'Ÿì¾îu…©)«ÕgÎôggínWâ‰Í9¹pÁ?y2‡yû@ª:hnQ õÁð“’´Z¢R166"Û¦ããæúz46fi4D&ÃÖÖ¢·¿½|æŒÿÛ¿½†¡ˆ¥&žÛµZ2:j¶Zbg'1MÒn«Í͸\6’Dc@no'ªOO[…Bº %‰n6ÅÖV¬”>pÀÙ»×^]ð§ ¡×Ö"D¹ !œ“}û´éÀPÇ?a¨vw“8Iô•+ö¢VW#ßWF‚ ¹0TžG··c¥`rÒô}56f†ê÷S/ãñ~¯R Â…Q8¿´º»lYEÓ,˜Üý_s\%޼öÝŸÿÃŸë½ø °lÕÙsçõ_Às“öÌÉë?cOßa¦¾þGñ•ÇÌÎܪDô!i©U,e¬d”Ú,PF#Ô`Ô ÔøZÐ×\~ £7¿ûîwÿø#þÇþSŸÌNÚsÛ÷•Þõ‹ny¾aÐ~Í X¸ûݧŸû²7qX%NBòR=ŠJ„7@)ÁB “*­ñp³,‚GY¿/ \6*ƒ1¨×…ï+Ç¡®Ë@vÚéH­ãÑQ£Pà„ÚУ£&BÌvbÂl4Äô´µ¿ÓéˆrÙ5Ãõõ kkÑí·gÿæojO?Ýítä›ÞTšŸw0„°KdÛ´ÓJTöÚ¶rÚíJ×eh31aµÛbs3ÞÙI¤„z=Ag¹äôiÿïþ®ÖïKB Z5±(•øÆFL)`+Èui¹lø¾"$©V-'`¯k{;Fc÷$ÑŽ˜˜°,‹Ä±B:ä§?]ß³ÇÆÂ„Й ÛÝM ƒloÇå²EZk­T«ØÇŠ=%‰ÞÝM‡Å±h4ÄÄ„¹³·ZâÐ!7äúzÄ9A’ŒaÐX)€ ý£×“í¶ð[:¬Ë“sÖòN¼¼9Ûw¬Û*˜7.Qü—^‰„ÜÈtyá¾…ïýe§4­µj/?yýµæå¿¹þ3[_øù°¹~ýgìé;x~Šï^z¬|ûª¨÷!i±LzBô“¤+ L˜Ò tœ(Æ©¦8¥g3<ƒ{œY//…E¢kè=÷}xâÄ÷Û…ª•g¦ý­íõW$`ö ?ñåOš“÷þhÔÚ FÎH÷+u½žh Zi )crÊ2Î-ª¥•ŽcE)q]æ8¬Ýý¾ÄJ2“aŒ‘íí¸ÙHÓ7±™¤&·h:¡&'£G=ÎÉöv¼»›Ø6ÝÚŠkµdbÂ|ôÑοúWcÏ<ÓëtBß— îÊJxö¬ŸÉ°ååpw79pÀY\ }_>ûlÚ{öØ”‚ï«$Qù<×vv’|žÙ6ÝØˆ§¦,Tôû²ÙSSÖæfœÏc/,‹&‰ö‘ï«jÕDNˆi¤j$‰™Í2ôö}ÙnKÓ$ÛÛ16ÞªU?¶mº³K©GGÍK—|ÇaŽ(R¯ỹ~óWggçœÝ¦|êÅþoýÁöêù0Û÷ä¨cUlî|Wb¥!‘88C€SšvÊ{àVð+ªÅÇÂæa·tä­”[veïw‚D™ô“°›ïDf?²ƒxÔ{Ëä@•¸ÌÅ#¡}¡}ÑoD"PJ(P€Œ¶á/Ä(d,h¿ðàÅ'þ~þ?锦¬ì(w²„¾‚iÆ+_€Q°dgëÊ‹^õ03=î¼ÊŠ;ÉÊ?nRF°6Mº°àî™w¹I@iÎÍà;圢M’(!t.Ç9'¸ñãHßOmßÚm12bŽºí¶<}º¿¹ïÛç F…>É{öضMÏŸ÷ÇÇ͵µh{;¡²YÞl&º–E}´S,q¬°‡|ë­Ù#G<„ÙâXïî&¹kµzAb›Ê4IkƺjpN„ *×eý¾ •$º×“º·Ü’¹óÎüȈñÿÐìõÐXZ-Q©˜…ït¤ºT2VV"Äð¶·cüvB Ý†A±m·…aÎI¯§Úmiƈë²ZMìì$Ý®Èt*BˆïËz] ¥âÒ­–HH†ºß—ŽC Þj‰ ÐBèfS2F‚@u:Ò÷²/}_v:²ÙA ÚmyéRpéR€ûà>0J².=8o¿þ5¹åàôs=Ì\€Qf²ï¼ubzY@ýÜÚ…§Ê ÷™ò7V¼Rel§2‡döÜfæ'ÌÂä«ßÖ5¢dËÏùá¸!÷—a¦HrTMWØm‡ì{nsçÆùXŽNäÉt™Vó4hÆÝÝ(ê$I_ÈX‚&„ÊHƲùøcÿÏÏýÁߥŒÛÅI~c.dã•ÜóŸý½Ò‘·Š mdP– Ð|®Þ8ÛH˜11€Jˆß“I¬8OÁ!ì©æóÜqh£!ÚmE'ý8‹c¤R±#G¼$шQíÝkû¾ºr%¢”t»²Pàùxн|9h6Åñã™B¯¬„ããæÅ‹Áêj„ÞË8…äâÅ Ù…Ë[ÊA l›"{9Žu6ËpAk X뮯G†A£H­¯Ç™ cU¯‹JÅhµD«%‘d†Ú4 cdg'–ðÀ …‘_¯‹¨Ó‘ý¾ê÷%¾r!-é ÜVJ@Ÿ:d}&‰.•8ÖçÂG‘ºz5ÂÚ‰bJ@) !^)Ûf¹Û»×ÉçY½.¤LkץȣÖr9¾½`9Ól ,pp/C­r§#PJõ¾÷b×´.ØýwçûJ+êK‚5ˆI)ûn°˜.üÝǼ™ÛÝʬ™áö·¯j`¹Êd¿¾V4þä“ÝÕÕÈu~‚F†Aóy†:IôؘÙï+4Ž HÜÚLNî¸Ù»iŸõÄ#íÚv„–‹ä»r»Ôž}x#neÖÊ^[~ÿò‹½ç—?÷ô_ÿFfæ6»4CM—™î«e©D‰zhɘ¥ •JsNòy^(ð™Ë4éô´%•~ä+¥`m%<÷BïžÛ33£¼hé}SÆž1î×#æ'~òfîý·ÞÈgdÚpóä†Éž”€£;«gÍÎÞÎL‡vÚ?#°û\½¿áÀä¤uóÍ:jNO[¶ÍÖ×£µµhjÊò}ǺTâ;;I6˵†‰ óâÅ R1ž}¶7?ïPJ––BD_PÚqh6ËΞõ 4év[à@¥àƒCp›1âû²ZµVW#Æ Ù(©ßÝM‡®¬DHT^Y‰âX·ÛTͦØÝM´†µµxe%5âXonÆXÊþë=~ùrxö¬7ƒ&uìa'< •ïK!Rgv”rN4ÐS z=e”R‚|´× ™ ë÷v} nWÚbbÂ÷%"øºžÇFFŒz]àWX¤`¯Ë¶)V¼õºØÚŠ77#ÆÈ[ÞRúЇÆßþöÊÏýÜ4N®­ Zë}³ö[ÞP¨oEN÷¢¾$ZJ¨I_õ±¦×_ž »Ï 8?Î^ÿ­\œNžª.œÜ~ì¿å÷Ý5V¨á¾j‰´-•6™Ê˜š@ÉÓT+Ïc„ÀÄ„Y¯‹‘ã÷~oýã_¯×“ë¿Ï4I&ËÊ#ÖÔ¼ãäÍ˧ŸØôÝÚšLzŸk1ã[øM®”åLÜûD­ fçøà‡:Yƒ2¢€X«ŒJÎ@±îv…Úu™çÑ(¢»» càûH‚(B…šµµÖ®Ëvw“#G¼aâ½±#@7ÇÇgŸíMNZ³³öÕ«áü¼S©_ýj§Z5µ†fSÀ™3ýJÅ0 EºR1|_µZ‚1Â9Y_–—ÃjÕ´,ŠLŒ…Ðõº°mº½är¬^OjµÄ0ŽV 4èÛj‰fSH©m›æóù‰„€ëR×eW®„W®„33ÖȈ±¹c@rNІÖóX«NGçóiß!ÌfK%î8 Ñ#Ça”B½ž ǻە¸$ f“m¥À4éÆFäº _ùÛóh‡Í-Ë¢–EpNšã°$Ñ”¬«{=ÙhtùÈG&>þñ}×Öã@¤5<¡ð(žåûù‰7ÞÛû¯Q?³Ü•±r5˜y“šß‘tš0 —¿úà?ûoàiaìà;?züÎû³_²Ë{íÊ^f:ÔpnüˆÃ;¥œ2— ƒÅ±ž7n^°gf,òk¿võþ`ãSŸÚýšý¾Äö&¼bŒh€(ÔZ|墿x¶Û¨1Ç+22æ"&"V„jÜЉP–):ÛW^ô&3Ëc– @@o¹µ·`–+hB!ÐëIl~PJ66b$U«¦”Ðï+üË¢³³öÑ£^k)am-òý”ÜwÓMîâbp÷Ýù8V¥?}ºßéÈdvÖÆ<|~Þùò—[‹‹á¾}ÎÖVB)‘ÃcǼ_ì Üu™zlÌCÝn Ç¡½ž õž÷ŒLMY(|"€@ÚmA)i6E¡ÀZ-™Í2‚“:Ùë©r™c}hÛ¬ÑH„×¥[[ñâb˜`g2¬Õ®Ë~üÇ'OÊ=üp»ßWx:C6 !Í2Ô0+¥9'ˆŠ!³ß—B€e¼%{à.€›m§c„1ÉG’¶Ré¸p­Á²h¥l¶Aª²Lþß6Éþ½ÖÝ·ggžêJ¡½v)|ciá·q1 ÎþíǦïþ!°‹7DdûßþQjå ѹüÏÿmä¶÷ȰÃíì«fÕG€rjxF@k7~ã)7ëПü©Åsg}œjC{qä’¾×(Íáœrf5wÄæJt$“Škˆ|)bI(aæ Ù•³ÏÿýÿU>ú–ëYY Hïj?S0\‹ˆ@…?G<›M16f–J¼ÝŽl·e¡À+펑Ćº×“ããf«%gf¬œsçüVKà’ÝÝMjµ$›å33–ã0ôÁ8>ØÞŽR-®aååÐ0H»-ò’D¯®FÓÓV»-×ÖP6$Úm ¾¯n»-{ü¸wîœ_.KKA£!âX¯¯Gû¾ºz5äœîìÄx·Û¢×SJÁêj„–:W®„»»I·+××£$Ñ¥’±µ£by{;i6Eëùyûýï={ÖGÛ t±Ô:E­°C†œH;#PA‰í\Û¦¹s†BŽ(RJaPJÁ÷%¥$“aø-+[¥P­Ç¡ˆW€ºÓ‘¤éÔ&°W„]è™ëÿpá—~ivzÚCeY„±—,¬‰®K?üpûþëægþ¶ÖmÄq “@]‘B†Rø‚2ò-Ún}+g1áÌ €Ò xÙÁw~T”§oZzèÿBxG(·)·_]Â75i}#l¬ú{Çøç>ÛÀŒtè½€R8|gö «&B —å&#QWô›IÜž t(­™Œ~[ø”õç$3nfG‡P–™1Z[$–ÕhL3–ËqÛ¦µZ²µÌu.Ç!•ŠñÀÅRÉÀsÃ0ȉÙ{îÉ£ ”çqB`zÚŠcÝíÊrÙh6Åè¨13c{;w.H’´R(ðv[..žÇVV¢rÙètäÒRX­Zˆâà mä3F|_%‰n4Ä[ßZ¾p!HÝnËNGD‘ò}…Sÿvv„â: 1¦Ý®ìv¥aÏcHZ˜1M’ËñnWI—(oƼttÔ,— ×eq¬¥Ô™ G)BîH,ÅÍŽÃ\—ú¾’Rçó|0`°’Âï✘&Áüw$côûÿ Ýð8Ç D‘Bz ØZC«VKú¾DøýÑÂüÀH©dÐtÆkªÞ½Î`(å'âãŸýÙ¥ù‘‹O?ÝkµD³žÌM[ó3†Cu¿‘´¶BÙŽ¨P,éñêD„É 9÷`³±[^¸×)MNþFb|çG•ÛËg-¸ðÿ}2¿ÿ^ÅìÌ«+K¦îÚrøÜÓÝ×ß—Obµ½“q{ÄöZ.ÍÍ9##ÆÈˆá8´P0v#¶E265Am­EYDõÚBJM9aß–s?#`‰Îê¹Gs×AY„‘p;H¶}ƒ’$ˆ'a82b < µãЩ)ëŽ;rccf±Èwv’ÕÕÈqØÝwç«U³R1NžÌ--‡y¸î«U«Ó‘RêÝÝddÄ\[‹P7‹ÖmËËa)ß—kk±az] )ºR1P‘{䈷¼"º‹Ú:ÏcXk ñG>2éº åëë1çY++Ñ0 Íç9j÷)%»» ¥dzÚ*œP¦ËÔj êé›M/$„¶mËËÜuWþ–[2¹7Íô¤5MšÏóv³h@ ´RwuH©}_!Ú¬8EWÛ¦¶}m¶àÐÍ+I4çÄ0(!èø(ñ•$)i 5£o·%¶¬“Dðƒc?ú£“Ãí®‘¾Ãz0džøë¿®ýÔO- |lÌœ›sNžÌ¾É™›¶¦FxµHK–ØŠb©„1æðO§M¤qnãâSå…{ ¯ÄeÙÁw~ÐÂæÀ© _øDìws{O¢dïÕ´æ À=÷²ÓÑÕ½®ã²f-•NÙÈçù/üÂÌÑ£rGFŒïÿþ‘ÑQs~>µ7#¶M³VÎÑúVõÓ c• „0Nè7ó%üšKi?pÇWÿƒãwþ »Ü)¤ÛV;ªØ:è "!Äu)c¤Óͦ@i®Rzc#~î¹^éjÕ4MzêTNk8|Ø CÕhÔúÕë‰Ö€x£!,‹..†„¤”&ÔæóaUœH„Ø•eQÜ5<--…ÈÎ÷}™Éðv[8C\ È8ÖÇŽy(- µ´:•|_‹ÆÈˆqîœßl&a¨¶·“f3¡”4›‰”ºÙD;•$zc#ƈê÷•ã ·{ 5a ŠãËP<`šÕ † ”D‘šž¶÷ïwú}‰Z%ü)¨„ÁÐ0M ©ˆZã_µ,bM“,Dc`ç3‰Á„Qœ~†XNcêõd­–´Û‡!ÎÍÙŸúÔ!¤8$·B¤³`p§@lŒ1Eê‡øâæfLT«Ö[ÞRºë®Üô´=6fLOšûö˜7´OÝâòXÖ–ûÝFIBmöJ¾yßâ…, `3S¾ÁžhÀ€8xó©ÇÿôgJGÞJ@33sãĬ¡'BŒ¬Ár–Ì[]ÃðŠfÔMâ® ZßsOþµ¯- üÞ{ û÷»è«¸¹ÏÏ;ÓÓâ–E1'ÄÄ)ãP“@ì'\kª¨ŸÄ¾”±ÒR+©´€k3P¾î¶R–pfÒÙ^~Á›8ÌLY®Œuk¹ŵ‰ßNšµ¤×“„|žÁ)õɰcǼ¹9ûŠ££f·+÷ís–—Ãݯxdĸr%DA,bBH®ZY‰Ë—ƒZ-ñ}‰_ç!ž3h5>n"ÎÔj $$#ƃƒ‹°3,„Þ¿ß™˜°º]É9ÁQFå²NÚØˆñ4ÃîhI³½;Ëåx£‘àNŠÀvË!Wý¾BÐÈåÈfŠ+pOœÈR œÓùyDz(Ê£HDZÒ´&ŒV°¦I31 ª5 邱 ñ}eÛhHB0'c]%ä„ábt¢ŽcÝj‰v;e¼ÀÇ>¶÷öÛ³ƒ}M »zˆ2;sCEÔýØ¥Ï}®ããæ­·fËŒŒ˜Yd2̱iÆcùýê°8`À ¸¥©pûìæÙ‡ ÷‹ yã¼d8”/jRîrž5cMI?i¬ù2R îÛÞVfŒlo'™ ››sFG $2FfgmLÕÐ5I —ãý¾’B³4ì ’HáK¦TÜMúõ8ê$Q'Ž{BRÅJ%j8—9uâ&×îÆG²Ï6…²˜]= ”©D¨,ƒ„¾Š™$ [¸•Š1;kïßïÌÌØï}ïÁ<ènnFÓÓöÖV|õj”Ïó¥¥­;¹µ¯®FW¯F(è]_¢(¥!ù©—hˬu*…3 áy =&&LÌ™Qä„X.&·A ^÷ºÂÑ£Þ³Ïö*#Šô•+!®øÍ͸ßWœ“^Oât•^­ Ó‘x&ïìÄH)AI3RP0W÷<†‰¨ã¤m‚rÙ(ŒVK<ôPû™gzèàqà€S,òZ-Aó½{íRÉ@×h6aDQJðH§” ‡&¶£\—a`#¬eš3m|Üq¬±“„;:f!ÿKý8V¶ÍâXÿâ/Î|øÃøÞ ‘¦Œ!ú€ lésN~÷w×ÿÃXË¢{÷Ú·ÞšÁJ­VK._¼»¼:k6edfÚÚ3c-.ǵ¦ä6e6Åtï›Í¾{Yp}ãuðø©Gþä'³³w˜ÙÑW×A@%JÅ’ò¯e·èDu—{íµ¾ŠäåËÁÄ„yǹFC ïáø¸Y,•Šqñ¢áBP*X9EBO>ÏJ%ƒ21f¬.½zœt“wcA ŠE ahÙ¹oŸCœ<™ûíßÞ‡É[-©5H™NBDÀ0˜&ŹmŸüäÖOüÄ"6½‹E¾¿{êTŽ1úOÿÔúâ›û·µ¯|¥ýðÃí‡nŸ;„Ìåøø¨Y*ñÍ­x·. j½\.­ÉüZëWê?½Š,øš– °¥tåÑ?/}» ÚÌÎߠˬN”®…¬E­8ØâV¤•–}¡·{Íóí°Ò„Çïærüž{òñÎN\¯ à ժY.›ŽDdû{8–2 U6ËÑ)j~ήïÄ£%VÉ’÷}où®›SÇœ»oqî8âL—hXÛ›ao7êï„~- êQÐŒƒF4£°G­8ê ›ÀæÅçܱ£ŒZ„”&R)¡;mö¥kÓ[ŽgöÍ;ÕªÕh$7ÝäÕëB)˜µŸx¢K¼øb¿×å²±¾¯¬Dý¾1v]ÚjI¤&‰î÷%Ú²¢¸×“££&úB"^ê™ sÝÔ2Ž1Ç ê„(Âé$ßî?ž©×“¡R¿ÛÅE œË¢hˆƒ]V‚De$`ŽŒ˜™ ‡Ô.K£ÄõÚ8²èÒ¥à‹_l¾ðB¿VKjµd}=¡ðþRhÛíÊø¹çú››1vzÐH€s‚Tg´h¢ô…p˜èb_†¿B¯—:ï"(MÌÍ9”’ñqs~ÞY]±¤š˜0_|±ÿÓ?=}êTNŒQ$™@&Ãñ-ºp!h6ÅÌŒ-„þ£?Úú™ŸY–BSSÖþýN&Þ¾æLÿé§»RjÇ¡õº@£ùgŸí™&Ý;k–x9Ïšd{3‚9^r2i­Q¯ùÖ/½@Æ‚G~ïÞñK`ª7زýÚXi˜½å³Ÿù ê”_^‡J¤Õ Ž„Qó/ÃMJ£¼·l8>ìÞ~{–s2=mïì$ÛÛ±ç±FC”JÆoýÖüÀ;Å®0@¼@J¸|9X\ ¾ô¥æïÿþæ'>±E ù<3³Y¾±//Gkk"˜ªàje%dŒ\pFK¬¡ Õò•P* &åÖu1¬¤–¬õ5Ëî!‹cêÎÿrƒ,Ž^BA(àÄ;ü‘¿úÏ……û£æ*5æ¾í „Ä¡.Äqg±c˜„LÈXe Ø{нr%ÄÞ ¬¬„·Ý–™š2§¦Ì#GÜgžé=óLwbÂÊfY.gÝÞŽ×Ö"ÎÉ0röì±ÃPíìħNåšÍ¤ÙÏ>Û;sÆÿàÇŽõl“å3tß´':Jt"të0ÖQ Rª8ÑA¤:}Ýî©OÓ{îôNuÿ^`‚Ó˜:ÄËÓ©1ËÐjz,³gÒZYò«U«TâÝ®ÜÙIŽñ.^ ƒÍÍh{;Æ #››±ë²ÅÅp|ܼz5œ›sΟ÷s±U¨rÙRt:"—cq¬SE‡!*[«%èk…1€ù0ê„õAÂŒö… |„šðÆ ¹Õ’ÇÂ0(2Þâ·€´ßƒ°X1 :Ä;½|9xþù¶/{!¾… ×M7¹‹EŽ2$9aØØ6»tÉî¹^’è—¢†A^ûÚ©S¹JÅØ»×žµÑŠdH~½hyô¨×ï«õõsxà –E‘&…9ÎxÃAK `š3ó P¾¯&'-àŽC !.õzrîœÿº×ÿÝ¿›@u: ñjlÀÆFz¯gbcfÛô×~íªÖ0>n^¼Zm6E±È1&µ†~_zCš6N ƒ˜fjkŽWtQFÝ?jƒ´†(RžÇAýp¯§pãÇS ' 6šÑ(¥)MçѪ9À6Ó_!ŽõÔ”U­Z­–( l2áŠÄ4M,t1eåœf2 ÷,,ËM“./G‹‹ÁË<:“Œ[33zß" ¼ˆ£þ¤ßWŽÔZ{C½ÎgÃ2¹“žÇÜéi{{;n·…”›a¾ŸòÛ®¿mü Š´e‘JÅ@É27–—ÃØ4éïüξÑQ“ œ÷‘€Å9Å÷ä“üÎï¬5Éè¨Y­šGŽxããæÎNâ84“atãzC—bÑC¥Œ™RêC‡¼ûî+¼ùÍ¥[oÍ ‰\¸Û2Jª.„~áÅÀpËÜþF|idq$ŠdªÝÊÞdqÀ×£Ð×_asoü‰§þîãýÓÞÄõ¨á|{£Ï˜É`ÜsgsM_ù!!02b|ࣶM±AÚëI\–EµVëëÆÎ>!àytfÆ:wοp!À5šÉ°¹9»ßW¥¯ÕD)Ë¢†¾¯úýÔÙL)8wÎ?pÀA%–yRbTD@D‘züñŠZ/^ º]aô _h?îÕëÉÕ«a>Ï/] fg­$Ñ;;‰e,™p(Ò¤¥Ô…ïve¥b`ˆbž†‡žaP\%˜òQJ’DÀ°‡9„¬Vé)»ÃÅ:̺ |žomÅ*ðæË6¶R¦)¥¤PàœÃ`ZÃȈ1Ù鈯yj¸§LOÛÕª‰´ÊAçú}¹¾®[-8*õ}_./ËÝÝd8¯ý:óyÎ9„¡P–Eï¹'·oŸó™ÏÔž~º‡; –ýÃ<3²0L L4r9†FÓBhl€ÏÌØ¥Ç÷Ÿo ˆJÙ6EÛmlb}þó lŒ™¥’aYÔóh6Ëã™NxÄsrèÇÊ0È›ÞTzÍkòÃßßðá}bWì¯ÏŸ¹-Öb{r\½B A­ä«"ø{Å”095ýü§ÿÓó:£$Hx7ª­øq¬“D¿÷½#蓌ŠB)S»ÖB—JRmp°P³)E€SÿpœbÛÛ‰Ö€à!ºÛ`ÊM‰c}õjX­šwßït*Ѱ)ŠX›œ´Êee¡˜[¡*‘xñÅþ°ú2”‚ç1,pp8Kú€ ƒ0F‘/éû5°&%t»¢Ó‘X#õ#* Óæ–iÒ܉ ëÌ™¾ïËáž2ÀÏSR'fª¶HºßWq¬‡~ï÷VÐÛQ8Ýßl.bmìXæ3Ÿ©3Fl›¡Ý|.Çз@JÀ£ xJÓ XÃ17kã0'Ü[‡¦hœS¼=JI>ǯ¬';‚YE+]ý/2pG>û·+¼×prÞø»áþ&~ÖJC˜Àýÿûú˽çó:Èà”ˆR+v­AErë‰Ï²À1¶ý§zSͦ&Dk­Ñns3v A¹Ž"Å9Éå&H®Ër9…NN™ 7Ñat}=Š"µº¡—šç1ì-2œÞØÿŒ"Õh(\ÖF‚ìD)“DK‰›fŒ¬¯GêÐéHœÔn‹jÕìv%¢¸KKA¡À1—3 º»ã¤B$<*¥}_¢nàSœƒXÊ@º4¯‹RŒ¨}EüßL­ô°z×Z ‘~€]btlÇ= Cß7Ó„$ÑB¤ºYJ1ª”VŠ )ö~ÏœñŸ|²ƒu2~%^Œœ&ƒk `Ìê þñu´ãe᎓ÞC¡À]—b:3í5ºÿ½ðBÿ o0ðmd,ÕûÓœY¸õ½Çn:xiwîÊjdÄ0h£!®\ Žq›M1¨@ —ã(%÷}©”n65ž¥®Kä~¹½£¢e‘|ž¯¯GŽœµ±‰Š)Óò²d ,‹v»É¹s>fY½žô<оªhh¾µg³Üu)ž*h@sË-™‡n£¶ùø|_áSDt!4™a¨ÐöeØ>UJ^ͪ”KˆÏ~¸Rñ(v}½GŒÛôgÏaÄ¢±ÄÅœ-©°¤ÇÄ@…ÜÇʶ©Ö:›åX‡3†á2ºð†‡05üÜœ33caw‰"Xn` †¢×#žÇp$ª» ¹ó<–Í2Ó¤¾¯„ˆÇÆLtÌç¹iRß—Xnh wÞ™ëõäïþî:v ·ÇÂÊ0@J@Ý¿ã0ËÒý¾ôýt™ ¡ÿþïë÷Ý—W*õ¯D–(¥`´ÙZóK—‚ÿïW¼cÛô¶Û²˜)XÅYäžGƒ€ÅœRÜP¦‚Úo l|ÖXãì8ì’ø”%û&yÅ£PÔÏýÝ0vŸyðÚÇÏ^ûxP+ßèõ-M”ØÿÀG^ø…»‹ßH¨Áœœc]ƒ£ÃÆj{ù‰öÒcQ´ë#ó'¼òÔøü gá¶;¿ï¢Oº0?ÊÏ>·%¥Fî‘ëê¿ø‹Ý(‹sN!RD·Z5«UÏ4òÆ‡Š˜A¡À¤^Or9Çgff¬ ‚BíÝëlnÆÛ"ÀØJED·+›ÍÔa¸ß—½ž"„àhyË"ŽC·¶â¹9Dz(¶± A)ápž .2̇ˆ2%±NÚ™†xXaá‡>¦˜("E^âq­¸D`úO˜8PJ”JK†ù<Ÿµ{=‰é1?˜ôâ ²èÔï»qZëJÅ@-.î×÷~ñ%P¥Àq]Ü}®å·RjÆR%C»-Úm°,ŠB­U»•(uÌ[®K¥„NGš&q­µ¾ÿþBªÿò_6ÃPaÒ;ÜÔðöÄ0¨i¥m€”’Rê/~±ù‹¿(]—"Ú hÄc۲ݔÂ䤹²Êf¥ËqÜépz .!~`×wLÜ’D9E ž±kä0¤Ð\·ÿ¦‡pÙKFjŸý‹ßûøìÉ…a|~Í»†ïêÜÏÿyÑßz§ 7lF9¼¾¥Ž%T*Óïø¡Ÿ~èñ¿½ã{Ï>¸í·úWŸ«å'ÜâÄèþ;ÆçOx‡nùàÿé•Ój”*Ñ­õ€2„b}+ñC´DÑZkä—Ÿ>Ý¿õÖ †Ñï§jUìg¢„0›åí¶Àœ¶ÙXV¹.CN¯Öp¼îÙcŸ=Û'ÐåŸ4][‹°Ûn œâ¡Àl³ÛMµ¾RR<|67#ômÆ#1I´m¥thJ1‡¤ˆáÑÇ&ÎûRµN??8Ù†} ä'Àà_ÓÅ ƒäÈaƒ®+¤1Òð ÙY{È| SP|½aBŒ2 Œ*Ck˜ž¶Ðž¾^ƒ…û¼zjÊšž¶P±H\ÃÀÀj7M.‚@Æ1Á¹XıjµR&º]‚º«l–õû)PD)Ä1ÃÄøJQ¤ÿôO·pär‡*!ÖˆÍáNGaýL`ÿ¢VKΜé¿ñE!´eI$®¢9¦B™ {Ï{F~ã7Vñ-Íå†+ö·p=ÁC­jÇ ©5”J)šˆo âƒ3Y->0¥Ïf7¿çû›¥7•o)š. „1x9<+ ÚßÕFÉÔùçÛ}òÁî…/–¦gF÷<ùæLeftÿø5”æxغ&@€Rbç´B¯×ùªm^ˆRX•œdÇ ™LØ3@8Çÿ • qF¦â ¾/±s`ÛtvÖ:|Ø[Y )%GŽxƱRJ|à ˜a"’\*ñ(RJ£œÉ!I¢}?™œ´PtŽ‘ÇŠs¬Ã‡Ôö!œƒ%4îÇX‡¢Q£«Iõé· P7Œj¸æìÃó¿†ò59öоsó¸I 2ùyÂF%ÚAáÝâÍcv€ób@ÅÄ„åyìôéþêj„?ß¼·\Žc?ç€âªÅí Oˆ6aш¸‘šRÝ/Œ·FƒL†Å±Æ‚Ö4)r•q¿Àøþû =Ôzá…>•Rssöãw‚@Å1 €MþA2I¢ÿäO¶ÞøÆ¢aëE!‘Rº×“ù<ÏçÓEÞíJleãdžAL3%„‰tdî\© W&Ãp›Àm+Š>JµiâãHñ°'?;nNåéÕKþäñ"å/ƒDk€\e2l¬“ÙÛ_•2ø›0§à°ñÔ_yøÁïýå‰#÷;…qÓÍN–@JD4:^†Dæ–LÊHvú1Ï™NÁH: !Ú² ×“=ֹ㎾݈F8"ÕëiÆH6KQˆƒ6Å–EšM19iš&ÅñYµšØ¿ßE6Îɾ}ÎÕ«áúz„ Ѳèë^WD£FÄ]:9È ÝJA>(âk6ÎÉÍ7gp$<öEÐ"ã{¨b`OËô i\jiˆø“Ì(>lHóÃ4ßf)Ù}½iF=3ÜÚ § Ã3MŠc‡gµÖzø*˜­ K“ä$Ñ;;q§C‘1=mår|jʺí¶ìÚZ4ؤÒ;ÄŒSe´4BÎ öTðMÀý%޵Ö*“a¸ ±Y€s•, ­$‘»"}ßÈfRš]—Æ1ÃdJJϳãÇ3§O÷qÄi­–œ8‘Íçù¾ÐÀÁ1`££Æk^“7Mzþ¼¿´~æ3õÏ~¶þ¾÷H­)!dzÚÂÌ©`÷Þ[ÈåX(ß—aÈ(…8ËÂxNUþ…E?l\c¥0|óñ0Ç_ ó&Æ>8Ë¢œ§g2T ôð¼uöËýzæ¢Ò°çð©Z€2x5ø›´‘Ï„úsõ¹ßüÀ‘·|döä÷y¥I;[6Ý¡ŒÐTõøòÑ „Ãa̤Q¬c_vêqâK\kq¬óyþº×C¤‘e IDAT¥ÔX>!8¤1 ®h Z`ày, Q•ž×€FCàà¯ÝÝäÒ¥èçÐíÊïùžâÁƒÞÊJ„¡Kà”J”ḥ d£!ò¾úÕΣvÐ}$ð,Å 9ÈõAq6 ˜CxèI ƒ†aZ¥ê×%·0€¸®‘í°c¤öÆÓsr¸Žƒ…`ÂàÙ,ó<†÷6(ÒÒ£ó^1°³ÂÏZ²: u§#ôòÈ#í­­xÐ+&øê îÁƒ.¥¤ßÇ1¿hôvS0(ã !`šé³0Tl6…yðYàm÷ûÈ{× 6†Ã8ÖŽ¬T œÞl ÜwŽõ„€õõsu’^¯ T­`óÿé§{þðÞ*[ú}U(pܳªUóÜ9ÿ…úètT$öáØ$xH©''MÎI6Ë&@G©dıd1©›<¾Qḑ b¹d{®5ç7¿ù}–ËeµtØ×aZnÞì*Å´NÕÁ¦âœ*Ùh¨uëì¹¹¨ÝŽÁ݃à£ï륥8 Á˜7##V¥r¥’˜ŸÐ¥PŠõûDD<Ò¾æšj«û¾.—åü|ÔlÆ•Šhµâ<ö ìR(ÏðyÉCʤ‹ð0ü!àV$Ï/Bna¦W”›e}ìÚÕi4Ô¦MŽe1ÛæËËq¯—ôz:I«1v|:ËbÈ•ú}ÝíÆxéLCóÃd_è H™°–ÅËe‘$ :rœÓ›ß\=÷Üâ÷¾·<75›ñOtêu ã|_–Å|_?ýte.-ô~¸uù土(Á°õzºÑ`o{[ý«_GæeYikâ Â÷¶ÍËe¦PàDÔïkô1¼É9Œ/(ŽM¡À'èɧ©ˆÈsøö­ÎƒûâØOlïÅ´Jm¨Ò?ðÜÝŒ £2úõQóu¢v-rü©Û?vÕº³¯»øç?ED–[zÑKD‘Ÿ$½ÄU¬è‚}Æ¢ˆJ%~õÕUDŠms!Œm³86qL¨Q#ÇaQÄ4 ™„¢ÕŠ!û÷÷ÇÆ¬bQ:$‰T–•2‡üà­ÙÙv^Å¢ðýÜÜÓà-w©Vå÷ Ð.²¬´æ«„ãyz•U¨!zKC_÷ðDÐŽ˜Õ]Z¶Œ$£9 C}á…¥sÎ) ùž‘ŠL™V+†×Îòr ò:˜=R²RIÖë²\.ÎÎFŽÃ[­¸ÕJ`öÁ9Ã0FDa¨Á1 = l¨h;w:Ñ‚\8œ¾†yžÀQ‰“§¼ƒª@(d%>£‹#4Gt‘¢S&"ƒXÍSë$Ñ«1œ§Æ"”±öâTOg%nsÌ!³JEŽŽZAà×±õhWÎéÛFV‚ƒ}xØêõÏ““Lº³È_ùÖªUY­J@÷y?‡Rq"âÜäé:ú±aHŒ1¥X±ËÕt’9+)WT áœ8§A`Ðh "€½N‚Ú›l†áÔA–ÅŸ~º(ŽˆŒ¡V+©T\‚ó×BÅ4<¬Î?¿øÀË g"‹&‚%CÍÌŒã´ô{½Äu•ã`‹-–bŒò$1Çùˆ0ÔÁPûÌ,%SÓ°¸ü¥e% ’ 9͸ðÙ•á“T_ù¶%¹Š¾ñé›’8ºèç?EDÅÁõÊ}ýùzÜ‹-£ÇøQÁ L?|8€ÓOØÛãq]®[ZŠ•â";1¬ùù¨ÕŠgf4--Å|ÓšªU‰No±(0„ÞÎÆ‹/.U«Ò²¸æØ±ÐóîQ¤|È£ðoè~øÃ6FX¥d£;Uþ$;ú(¿Kx¦‡úɶ” gŽR€‚céäpÖËc8®Hæ÷‘õ?Óú¹QŽTãw±#¤|5ÛNkuTÈ8aPGàˆ-¥ÐÚ”Jâúëk¥’¨V%¼‹k5ù½ï-çú98\­Ê³Î*C³³!Z ô"IƘeXðfPµÛ1~H€5`¯ ˜$ÎÃZë0Œ2–;Té“nWgMšôÃb£Ç5Á>‹,€ˆöíë_ye% ÍòrR.Ë(Ò»]].“1tá…¥{îi6›q’&±MÊM `P|Þ²˜e¥42vÛf,%Ÿ“ã`NÛH™~ØÁÁûÒs?Þ×N+së%á‹zãEQ¯‰6ÒÉÑ/ÀJ«hçm¿{øÉÞü¡òª#ÅÆ¤å–Oêu C…ÆuФáòðáàc;ðWµ9¿,+Ew‰¨VSh2)ÅàB€ABËÒ™ŒgŒÆÇí#GX--Å`a\ 9Ò7NO‡Å¢xê©®ïë¡!j®i3µ1¯Gi<ØÏÙ–Åд`,>c¤5$RS0½ð]âaƬèÔ°”ŒAœ§OÂãÜÙ¢ 7F6žšâ"@§ 9Â*>VšWc`&†|8Žu¶sÁN%½ª9ÿÏÓlÆ?þqglÌRõºêv“Çïär–xÛè_±6mr–—“f3^XˆŽ aƒ†±¼.À¹šw¶-‹—ËÜó8úyH¤1°‰¤/††±°pŽ‘¹¹òC˜¦Ô™ašRh•!i2qlÓ,õ|0?Þþå_i·c¢TQ@©TûºÙŒµ6×^[ýä'ù¾®ÕRš˜ü[5-IX¡Àó-C&%¡R$†´.W6Õ@ÆP±(Nß^xx_K¨tÞãEË*LPFäXû–œØzàeßOpüCJñœ[E Þ†¤§¬ Å—*h™ŸD„Ì™2Ù§¼rf™ÆU>ròcž‘æ²,å6²»Â…eŒŠE±y³»{w7œq߃úGYÛ -PÛæ³³a§“”J½uëlxv» ”ÆV÷Èhz:Ü»×Çð3î]ˆ¥SCÎdÊ8–“To`ö³, SþQdz½Ä²8@£ü£…¡‰c‹ ¼1ÔïƒÂ²A´ÖIÂò–A#ŽÝ{oóùçûå²ÔÚHɉLî†áó±1ûÜs‹Ï?ßÇiiÛ$Gš‰Ÿ~_Ã2ë“ï¡˜ÆøÈáø˜`` À…`~?9}›»iC°šü;Z½´I³èÎÑgJëvœ|¿ €æŒ\EóOÜñÍÏÜ|Ö;~Û«Žxõ1å–Nž5bEÂY»§ Â3>ÿÒRü­o-âÎÃ>g#x Ñòr|ð`~>Ú¿¿¿¸Õë j‹‹ñÌL¸w¯ÿ£u}´³¸'+R2)¬‚ݱٌ}´ }}¨¢#Vqï2–F C[·ºõ:dÓÓ±2°&Ñ@¢ŒScÙ`šñ®FGäP€!UÃ< h|Ù€|`z@Y—ŸØ¸Í*c[¶Ê_VukçæÂrY EǽNÙž‚wˆå8\ˆT³Jk•ßOªUyÉ%ån±9¹J68¨Ö¯·‡†nSD:IxWQ¤aƒa€óhé bûvorÒ(,â¿Z•Å¢@Páµð•µÛ1pflß8á1·€ë P¶/Ù¥`ž'ªUéºüèÑðÞ{›@4À<M­&K%¹w¯Çæ§z`y9É·KÐNpº"sÎeq-‹»®\‚ú•‚ãptñ>qIóÖ  Î<›mZoÅ6É˰!Ò†&¶_væiÍO`W‘íOÝ÷?ÿÔøÙ×yµQË-óµ°8“–’K²èŒÌ [¸Åq C—¯ÕŠËeY(¤‡R«3¶rž ®C7by9É[2 »¢®&¢ œ™™ðèÑphHE‘YXˆ08l³ÑPÔr¡ØlÆG†Z˜ÊóL%»2¾r쬨‘ý樲L§ÒÓùª¼ë“d*8šp€ˆt$8eGç\HÎó˜r| ™n`¤99 fÜah‡cÀ7ú“9¬mY, í™8æW\Q‰YÆ;ß9àºüïÿþhŽ¥£Vß·¯Ùe•; ð1Y\Œfg#x#7›±ï'hç& S“t84L$È~e6g–$ • e¸†ÝÁ^E=Pårål¬Æ˜(ÂÄqlZs]†æoÿvúúëkñG³å:æœj5yé¥eÜfY—!/­ LIBŒ¥Ò\N‚r àù½ô„s–$D”ò|psÚŠ=N&Ö/ÖGH—6TˆhmØSäö§nÿØUgüäGÆÏ¾Î­+·t’ªÓùbœ˜`LÓá#XæøV¶mó.¹¤<;‚¦j±1Ÿ‘^O;ŽVŠw^ñ¹çün7A«SJ»×Ó Q›8Npt#M…îTÎ1’N;Í‚†‡•”¬ÝN‡[­V†ºÑP€¾ªUùÀËŸüä!!X©$°Í#ç4Æäà-œ¬ J,­‰óTº™ˆ0D„ Á86ýÉã3Ç“)îÂ2"$cH¹W·xD$Aü%¯u9g‹‹nÐN'ÁKƒù„‘ÒäæP:ÒÌLôÝï6ÃÐŒY« ¬²lLBksÛm3û÷û¿ýÛãëÖÙ¶ÍŠEÑn'ý>çK›)gÿ$É FM”JÞ;¢åEÉ?DÛº]].C =$Çú‰':øÈx-ÄÿúõN¿ßˤÓvË£¶÷ìñ·móˆR—„‹EQ«¥ãbÐå@|Bº o2ã“ptzñ¥ã`ᇴ6R ­5Nf\· 0Å"Ǩf^ÿç>*R¼D¿¯¿üå¹|`dË7WM Ô¤†G‘)—ÅUWU¾öµùRIÄqR, <¼…†WÌlæ8,Žç Ça9 ‘XlÙyiCDšØCOt÷ŽJi¿|‹G:ÿÚÜöwDdtltÂø«IxÙ%‰ÈäYôOß$œ2Z¾Ê-¤çÒ‹LÄÒ‚î+nWŽÃy¤µw¯ÞyÅ¥¥Tü w6Zh£XB|â”>z44†j5§<>¿ÅQ55›Zkºá††ïk<ìèÑpçݎm›¯[g#Ìužž”b½ž)S±Eü{uÛ0×|\…Ö¦˜3ò^còv?Z¦Zˆ•m]("2FçàpryÝn²±œ–&›:Bm)m6™øóúõ6Tu‰ /ОI’CQdÀOö}íºzûvohÈ“ô­o­]qEå{ß[~òÉn†Ó°(2_ýê|½.Ï;¯X©ÈRILLØZê̹¹hq1ZZŠq}àäÖë%ÍfÜlÆhÌpNH›Y:°Å²l9E¼p€[.xª•Ë9Ç ARÎia!FÌX Óí&Ž£ŠE¨‚$†š™ ?ñ‰çÿþï·Ù6cŒáš`̨Z•ÆÐå—Wx`ßH›("ÏjÀ …4áÂü6€hPCuH¦ÄIŽ»1{dyÿ\J¶ç@xߣ=kÀ+;Ò~y††6+Ãó)—ãdX r-Úûÿýu¯³œ6†7É“Ë{éâ’GŒÕT¹,º]KY›¯~u~ÇeóŸ¸FqœNÿIÉ ¥Eæðá ×K´†J"³°@­V *Ïa²`³u«ûîwét4c´q£c2Ý&ܾ…qbÓ&÷ž{šssò:Ûæ¶ÍÍ*9¸ v6 Ü¢ Št Ã*W"Ûb,Ë»ÒI`c4Hö”Mæ4¯ Ê§õZÏhXø9ídˆLœMÌÇa’ÎuY’P§C•"gh1Æ´ÖRò Ðóóðö .(nÞì ÁPÜ^}uåÇ?î~ç;K»vuñwîì|ô£ûÎ9§ð‡8yúéÞªçñ8h×Q®›S,ŠBW«Aîû6ÜDë ú¶Íƒ ÉÚfF)V.ËÕí&33a±˜j9ƒ0fëÑ`Œ%Ð's]àX"ŽM¡ ¾óÅl½å-U8- _“R ÁÂМuVáškª=ÔªT$^W/ ‘eäùŽÈÔ‘ÌçŒZ™ÖLy·‹óû;}ÏÞR´‹ÇIÉÉpZØsÿƒŸ¾îäÃJºŠæ¿ã‘¯~æ'ÿø."* mP'­Uû²K'Zr6<¨”âZ'h *Åz¨õå/Ïýâ/Ž8N·¾……Ò9Œé~_OO„Ê ž-ŠÌü|¸´CÄ,OnQ•ù~Eú쳋DÔïkßO œ”í©é)íº|q1®Õäç>wä¶Ûf3f_ÚFÂIED€ÊðmI™70XSE‘´RB6ˆ@•2Nʹ\@Å2 ìÍ¡¼¸€”ŸØ@’ØlE­*Å·:dÓ&çÀç9rx>a¨ÁÍB÷¥¸ï§b´š~ðƒÖ£¶‡_rIyóf—(àÙ¾Ýû»¿›~àe¢‡ûáÛ_þòÜ-·Œ—J‚2± ëB×ë%ùÄR§£ÑÅiüÌ3½Ã‡CÄcÔíjË2…Ïãßò}=?E‘.Rà7­) u©¤ ¬cY6H9(•&ru»Ég>3ué¥eÛæQ”€,ʶùȈuãƒ<ÒÎö Ð A`tc‡Bg{eÿËr®Kþu´}óÍï÷¦µ5znY9â…­àtlfjò¬«¯øù?/Nj#\¼þXœ~áõßþÜÿñæý“rŠÅÁIË+ŸLI}¼e´éÎÔ 7ŠÅ™pj*™ÀŸRì±Ç:à÷ì¡ïv5ø´•Š “SÏ¡¹¹Þ…ðXAß}Hºt:I¿o~á†/¾¸<5 ßàûZJž#½Eßå¶Ûfgg#Øä8ŽÈÆâX>1îQÚyÎûO™l]ÚäÈ£ø”ÌDÀY)Q+@ Å¢À8Nž?cš&ܘзÈûÆ͘¢È4›ñõ×ן{Îïõ´+`+lGÆCß;ÿ-ÏãB°FC]w]íßXÄ Ö‘#ç Hg¬_ï\rIyÓ&×dSSIbž>ع³³sgæ 41–_OîyéLî~¥˜ë ظxžÀHm±(=#Av€žy^`¿’Ã$%kéq¥¸”áT*‰áak`@AµÇqÒÚ04GŽ?õSë×;8Ÿ-‹£…«›Ÿ¶nõ‚@ÿøÇÁA ²eqÇ®Ë!yF$c„̙Ҷ|N4JoižŠ‡2ÆÈèîGýól䬚PüIJ²žEÿù¿·íª› Õ¡B}Ä:¹óRì{äWøzÕ‘BcÂòNÖ©åx+ µ¿Ê()H3ØPÏííι฾D{öôŒ¡‰ R&&•5Œ1¤ÍhÇiMG†ÇŽ…R²­[]×å¨c³ÌÙø¾é÷5,žo¾yøôÓ=ø°D‘ñû¬¿g?3•Jf´J•ÖdbÔ˜Úk4ÔØ˜]. ­©R6Œ¬@e™ìt›Nõº´,^¯+8…‚èõ$8µšt]>?=Â;W»ÃÞýîAhö íŒ­\×\SŽ `ž6¸þÌêÈF§X;É„Wl¿þ׊ƒërcMÇ[Œ36¦³%ß°‚,Ú•{dÔ2‰YZˆL¢Ï9§¸cG}ÆØòr * x¶Í&ÄwLµ*''h¸—J¢^WssÄææ"LxkM·ÞºåœóŠOïñ–“Å¥þÜì|l,!)Œ(ÑLYŒˆ6ntïºkñþ`ÿôtØhXÈ*‘ûå3ô*U3Ö ]!+Æ»ÊC+ïÙ"HˆÒSTë”ÌŒ4ÛØêÅü|>t(ÀóäT¡là¸m Ço¢!³8ã ˆú}Óí&Øwò§Â>h’,s£ÈÔëêÀþm·Í,/'ÈòøÁç ³°OMõ‹æçã$¡‘kÛ6÷’KÊW]U½ðÂR½®Œ¡gŸí=òH{çÎΡC¢´ÛM¦§Ã¹¹±‘£Dùn¸~½36fc48h-/'GŽ„¨?¡RI"‹v]^(ˆÁAÕï)lЈ6©,Ž>r$ìv“^/PÃöï^Oª÷½o‹È»ÎòýDîyü K?Þ1†ªUJ)Þ˘9àZAóW?óþ ζ¿q úâZN¥SP³/x¯å7£¸%ýX%Zû1K´‰`(ÎM'Jn…uó%e.…>`˜9"Eé|Š$ ‘žÛ@°ãØ0Æ…Èg0(“àx–ç”$®Ó~#QZc‘çñ‹.*-/ÇÍfìyœˆ 1ï8¼ÛÅpeêÙS‚86^X:|88z4¤lp ÿZ·mÈ5¦8¥»éõL¿¯¢G5ƒƒjhÈ‚†–Åëuéº"Š4êð¯}vg¥’¼îºêWTÖBmØIC÷•¢—3²íºÿÎíW¾‡ˆ”劵 9ʃ?ü÷-WÜùm!­µ%o¼ÌÊ Ý”'ubbŸs‹[6 ÿ’ýÊW毺ª*%;pÀ‡ŒX±(&'Xu,.F@5!L‰~O«G¥!w¬Qpêöð–âÈÖ¢SX‘21†¢Øôû¥ñÿýÔ¯¿ù×ÿ!hO9%×.—ݺUðÈÖ¦·vw©ˆ~Ì¢˜kã÷’¾¯…d:6I¬]q&žœ+ ˜;w"SSá;t¶@¾]á6å%tîêùè_JÛ"R«©0ÔSSÁòrìy¢\Ëˉï'¥’–èIɆ c 46¢„+Mú¯—€ ÆÐi½õÛŸÿµáío&2Òñ”实sî.…ÔÚû£Iµ,–—’ù¹hy)6~< ây™”uR „b6ºilPzßgc9ï‡2‚e"•WKŒòûŒˆâ8¥©pž³;Ì ñ¶· ,.ƹ/ç亼ՊGä½ô¼‹©éé¤ܵ&ÄGËü-–U÷ ôpèÁÌË2Ž*“x̶86¹G €öL±(P{ÃiEk8ÔißוŠdŒ5›1²èn΃la!ªT$¼$1å²(•¤ç‰^OÛëÖÙPþæ7 ¯ºª  (@Ž¥¡¬•’ âßþmnûö™gðÑxæÃLDQ¤ç›úÙé䡽ñî& …QOdÍÂ×½|uþO¨P*ÖGÕëÒ–{éâ¿ò‰/.M=¹÷{_$¢¸ßI¢þš<ï+.£ Ez°"ÊžÀàËð†v;™š ù䓽f3ž`áûzÏ¿ÓIJe™Ø²eÙΖêÆË 5+mWœðšÆš‚˜ÞõáÏì¾ëóDÔ™=õÛ«0³§½p ã/ô‡k"ê%a7VÌ8åidQY)°hÛæ ¶ƒã•4¤Ùf&ï6¨ò[N¢ŒñNŸtˆ ÿLg†³@Ê­ØÒ”Ûd ²†„}®1©Ö ºqYS:5­gŒŠE1>n/-E½žÎÙEl•$¶§œûmYþf¹(f›d&§jYi‹…ˆÀyF `Ú«T„ër!Ȳ˜m³|¾ÂŽ"Óµ$"c ôkA…ÐÒ!Xjˆ tj6c@ÓØñl33a¹,ßò–Úä¤}èP€æPœ ß›T ÿfZ›FCíØQØ·ÏÏ¢7üŒ1GçâGŸ ïz"üîÖ­T¶”í’2†È¬Þö_ÕÊá«ÁõgÆÖêø%"YÛtéµïù­{¾|+i.m!í×ü_ûb‚ ÉL߼孵~;<ølO®teH)îûú¡‡ZÏ>Û«×Õè¨üÙó¸´xÏg…wôÜzeØ&z 4ŒiÃÅ7Ý{Ç‘]÷¬;ëÚ¨ßÒæÒ&F‹‡zÇö´šGz2ûÉì± ¡1©FÐ6è9PÖNÈGmaŒÛ.×åùŒxÆñÈQд²Ev-3å:ò¢”ˆŒah;!+1+›³KÕL6÷ÿío/--EËˉe±^/)—¥ÖÁ ôQðŠ^ZŠòaœ'˜O¯Ï0fE•{Pé\wžgz×Jñ$I=.(¨„Q’èB!ui'"LƒBåóÉ&3×l–‹u#ƒð<10 ðëH=l›5 t”bQ`(ÚIahp8[Qd¶nõÞü抔 Îø¼ø.°½â3â(v]HÛ¥ ¤N/™šMvOEÏ÷¤5Zª–n3¢×9|…üYYîÉwò%®¼ùO·_ôÖG¿õOY"ÝTnI¨×éâýêLkꇦÝ3ã½ÁQ;J¨9;#„+DÚJ’uºÉÂBtøppäH¸°…$tÉ>·¾é’¯ª^k&Cð¿8ãâo~îׯv\MÆH» m/‰ôçïl¶çÂrIT«’ZÇÜu¤|̼h"Ôºù_}öð¥—VÆÇí(¦åž>p,~è¹è‰£Ô*J“i‹•Ûìuk¶¤pê¡{þù/®ý•ÏQ©±n ã‹Çš‚„HÙuE~'‰‚µz¬Â ]ÝZv·Vi¢¹ú™güf3Þ²Å]·ÎF†Ÿo©xóÏ>ç_piµIrçSISHw´XÊfZƒ¹ÅÉôý;o½þ7þ–ˆ¤ížÌìÑKWú\AL?ñÁOïÿÍ+wßõù‹nþ‹ÎìA!í“‚~U Wû½`ūݾ¯²ñ××­SÎ`èóÎRöcŒWQ^}ÜMr—Õ…1]÷+ŸþÛ_V›ØvÍübo)èû©KƒërpܲB«gÚˆhe±šÆ ²ë8ÖhêL™-Vôx!PŠ˜ÁéŠ,™$ÒlÜ^PçD» áüA;¿˜›ïÿ°ëò½{}Èeƒb  D¡0²òp½®ffB|ôl ÎB ld&±™T5%:¥D¶ÝA3FÂ,ä+R1T¡gOÂ#×,›ôÒZC=Z¿££6&ŠGF,?T’˜^/Mò¡æGÄJ%Q, (¨VŠá݆f÷îÞ¾}}!Èu&Ø„`‰¡©ÙèÙyÚtõðÎŽ*¬÷*¶ÈoȵÉ|åVןIDj­©i#±¼ñ#Ÿùþô¦€GÙk¥‰u¢õ‚+Å8 u^j¸/ÓÐZ»+irëïùè_ß}Çç7_ö‰Å©fÐMCqýz' ?s"BþF™Y%›é›ìužÈ` ÐÊ[¸D0ÑÉKkÌ6àÙГ̃å%ÔYÚKëU9оwÛ'†6Wßæ–ë\ÈúË+–µ]†¨Ö8ÿÛLÂñ$bÄ( õÀ€zs&¼À£v;év5f•ӥ̯(u…ÿ!S™f¹Ð$e’®:sÍ–+úDD“>劋t1Í0w:úرpxØ‚:¯\k¶”â7:§æyfqýzgÝ:Ûó8ᢉW·0LMpþ£ìº"Ö…^ô:ѹÉÝ^°AP!§saô}=6f•JblÌ^\ŒGlÜè(Å+ R¥Ø† æ7nt‘´£r±mÇftÔF`×j££B¤íwð|ð®Ðá3† Ž„ÍyLð ÁG86'¢cóý»ýë÷=½5¬òº²²\P_k/ãU. öºííW½·ÔwŠ5¾Ö»/ NÆš¼úÄùÌôî{RDºßÖq´¶/ùŠK'ÇQÔ]ë%Ôn–KÕóÂ~ºÿjM°Éi ‡d¯§‘§A¢Ü&´RÑÃ0†¢^õiuŠàD•™Ô;ˤäºn:ƒû/×gÌŠjž¿–N=Äs©RŠmßî•JBª×•m³ÅÅ£““v¡ FG­¡!kbµ.º¨tÑE¥›oþ¥_Y¿Þ±À…R`e * ·Z§ª‘0õÍ¥9§FCA ǶӉK)Y¥"ó~R±(”âpÄÄŸãðñqBõººüòò–-.Àüb‘ãBͪ(2ËËÉÀ€’’--E…‚(•D¿¯•£=0 ÀUTDäyœs4„Ó 0Ï9Õ„sV(ˆbQpA3‹ÉÃÏDßÝÞ›Ÿzòj¨3w( :k›3¯^9|µ¶Ó /Z/Ä‚d%‘^wÖµ½…#BÚv±¾æ/|‚õÆp ?×ã:™•¶ Ú0„Ç_ê3ÊXꃭ(-æbôJ¥œ-f´2oÊqå”i"¢Œ!„ÉÄFGΔˆ2³2JGø¡Ÿ–NüÁÆ üáÑQ;§+W*|p¢€(¯ç ßON?Ý}Ç;&&ì£GÃåå8Š ˆJÎìl¸´+Å:¤×ÓÆ˜v;Æk!3Çi†R?yÍ'.  5yžê‡¦ª`³³‘ëò51!Êe¹oŸ_,¦|ØÁAÁíÙÓà?Æ?\~ ôO"²,O,×å–ÅcÏã˜D-EÚ¶…msσgJê–`ÛLêúf~&žš×‡–tàÙƒÛ —ýâÓ·üã¾ïݾùŠ÷ÅýŽPö)¢çðÕäÙk9½ð¢õâ6†Â˜ÞöÁO?~Ó¦]ß¼õ¬·ÿV{f¿Pö©Ð©<ÞzÃ8 uk!zéËá|k·¯BH 9´ @¢` ßMè­ KÑïkÔì2UE‚º"ÀX>¢”vk R•G;Ð/ʹÉÜÃan:7Bvoq1ªV¥ç¥)C¡ ÆÆ,€Xû÷÷1 ­,`?»vu1ssúéÎ…–æç£(2ë×ÛN ø™güéé Š ¦—’„ Ìx;p!êR [Å¢H+F¤ý&¯ÓLLØÈü——cìAJq¤ÍKK‘lãFÇ÷µR||Ü´Z­¸^—ž'æç£RIâ»Àüö\CìDD„Æ^?0š±Ãózz!9ÖÒK‘5§¸Í.YÜyõ‰«ßó›ÿþ·¿?væ5DtŠøEì«5œ^xÑz™–ÚŸûð_~åo~ÝY×Ö'ÏŠü6—Ö)’ìÈg†r37¼AI{é80:ó À‚ޱÉä`|_['2­Vœq cAsΙë Ü÷˜pDð—J¨2”º@„Àye2Ùg0¤“æÕœ3ÏK)“ðÀÏ`Œ)•º(‰1ZS³oÝZZnÅ®'bmº¾>r$Dÿæà¡¾à¬ß×Êâ±6{ö{ŸJe98¨–;f×S¾¥’‚Gë7’ÄÃ,%¶nóºÝ¤ÝJz½¤ÛM0ñEp 6a˜d½Ì÷SPqˆSWf–N TjMðìmµbê–ÅJ%9?MO‡Hãq%1î—$©oC¯—C µš ]. ääx•äã‚…µ:fa99¶¤gZº­¬â¸Ý(¤79ª ¡óßyËÎ{ï|ò[Ÿ¿à¦¿hÏàÊYs%Ö¾ºþ7>@DÒvO‘^ÕË÷”Ä.ü™[¿÷ÎÞö'oûØ×º ‡¹²íBíd^iu¡‘#RyÐ Nb%€c$§Rá'Ké`-NE¼«04óóQ½®ˆR h3–ÅÁ^¸‚z g˜¤+`˜n7µÒÐ 6|Lrcƒ'½ñf éGD 4õzÚ*R8Mkƒ 'chÿþ¨×Ó—_^Ù¸Ù]êš™eӞشg^¹I’˜nGc¤äÅQ÷Š·/5cÛb-c–ƶŎ>÷¨UY犮㺶¬JÇ"G±jElÙâú¾žž–—"ZÓâbeocù6ÑjŒF²¼œ™ëtäµD&lBDqlêõTÜwãF‚¤##l_ž³\NÙè]KCÿ<ˆ¨Ù3Ó‹ñ±¦^ð)”Òªyö¤Èâ6ï>â kCaBïúð§?ûW-ÚUŸ< ‰ôÚžO–¤G:º¹6ºym§^´Žëþ$ô+ÿõ‹rC–HÛ'ÆÏ¯bŠ­ú)ÿù¥V©û¼ƒˆ:ó‡gž{˜ˆfž}¨»p$}õ$~c²h&¸²¹P< t?ÆÐóÏ÷µ0ÆsB/:±èF‚ *n5Jä£ypëÃ+4ôÐGfƒV+¶,^­Z hƒ2ÁKû¨œªk°2E.’E¡yòÉîÔTðñ?ßpãM#Oíx¬wx> FŒñ”§™#"2€‹ Ú/8ëÈhÒ‰!c$§ÓFϽû_þrëÕÿ§E¶®Ì-&%B›¨¯£0‰"³e‹;8¨ †‚4˜Ÿnè–çJÝ. {¢Ôë,Õ‚˜æð°âœÁqÃ90²ÛfQDÃà —Ývx%ÓìïVOû¡™mÆGÍBÀb[† å’Z¹çLFùyɽÄTÙté¹WßðØ—>~ýï}¥»pX(Ç*T_þ&yí÷•d úþ·n¾ðíQ¿»¶Ó /ZÇeuE ÉÒ é~[(;Ï^¨/ÒÎüTŸ{ê,ÁÝÅ#Dtæ•ï"¢rcÝE×ü müÈ_®›˜ü𕊈Ú󇇷œ¿vŸñ¸Kڼܰ”#üvÌøªí†3ÐnµNGsálœG1OmG4ì#P“šÙù¾6Ɣ˲\IB˜ƒÃ _­&¥d Wôz1´Î!geŒÆu¥"D¦Î‘L¤ŠóJ‰V+Þ³§7¹Þù«¿ÙVjØ_ ³óÙ ¢8^*»‚eC]_›ˆÈ€ª­ L(Î%‘!£Ósɵª7ßôô®Û6œ{sÕê­ÂÞÝý¹ÃAg92ÚŒYïzWñ¿¸Cl^.WÁ~?nµÒ ¿P®ËnG‘¶,ÊTãØ ¼^WžÇ'&œv;±„`ív24¤£f3i48âçŠYO´éú¦Ý×Çšz¶­—nŠ–ÓPÕê*t7ÿÔìD±Ætý¯~zçû7í¾ësg¾ý·â +-W(»3?5·÷áãýÖ̳õïoí÷¹¨žVq+%‘­º‰_¸^Àd[u¹9£Ënþ§~ómÅçC¾ñÐ3˭٤߱”Jry9†+$¦À[&"Ƙï'A6ÀÁ”‚ ŽÑå H'uA„Š"S­ÊzÎ&¼Rå²Àñ‹²;˜°pAAL½¾‰´iv’Å®YL[Kò¬Â˜]uD*À‚Ö½øs`EšÊ‰›?úéÛþú÷öÿöüÏ+uëw\r¼ßÚ¸ý¢êÇýÛ_ÿo·eד{ýñÏmèwšåÁIcô«zO¯k±?þæ‰#KèNýÉ ›¶\ùþsÞù;…©¨ßœí{ðN"êÌOÍ>÷CB|ޝþᬫ~nõóp.Y~ã°ì?/Ìo ý󟿯ÙgÏ{ë†ó¯/ ŒÓ©_A7Þõíc?úÙ¥i?ÿÃ|ìÛqøä¤ƒ33c/§ è×å³þD©Ot.kÌØŠy ;”bp©§ªPà !cf}S€­ ŒüZ]«jj.Y ˜[³¶[&GÊ‚ôªkÓZ´ù‡üÓÿ×âø—§M¿MI63¼}»wî¹EìJxçpi@ÙÞþ m6Ð!†É^ìVYÝÁ*ŸÏ8£P­ ÛæË=šYŒügQl¸àýH‡1 µé',b<œÙByÒ«*¡VÈ 'à*Ú´ç[½{çÃW¼ëCµ¡ÉR}øe5ÖsuŽýñ‰ŸÜ–ôÐW>{ÿwþ×E7üîà†³¼ÊÐ)Ê¢_a0"L¨T™øù[>ý/Ÿý½½üëÐäéñ-\¨‹®yUë&ϸxõã¹Ù'Kã3»¾¯|õªsã ê$² rãõ¥cý ›ôÛè„ùˆ‚ïëgžéAîpbÂÉoSΩT8$)«œ!€Ï8© CO wµ IDATDh¢úIàu€làû:S±Ô w»©U7 Ü^O‡yeūּ•³½“ž]ÒÊýíˆh r´ž¯ÛþÀº-ïÜÿôL%«ì97mr‰0æãQɃ¿mÛ„<"IÌòr U}ôºËeY(ðV+ CíºÂ²pü Ô&££–ëòž¯5õÎýqWHQTÂâ\p®¸,2Æ™ÌÜË|mÒO¼*h_7?3⌺ûŽóÞúƸåÖvü.JèÊwßòíÛn ývgqZÙ…ÿ=LDÚÐÀðÄÆ³¯¼îþ¤:Bóú–¿5gCRÛcÿða¬Í›Ýñq‹ˆâ$­”Ô µð(z=}äH€@Í4td£¡Úídn.M³»®+ |[¯ËFCíÛçsWX¦ QÙp"|t…¿F¤Z%hi߃Ýn{dã™åÆØZ)TåKŠzÛÍ¿õøÃÿëMïüÍ(èªð”Äð+0gôƒ»ïØrÞ5B*§P¶œÂ)Š+ìߢ ˆ>IÛ˜W¿&ήCÊGŸi5gûIÌØ å ñs¯§wïîBÜ´^W岨ÕT®ž·ˆPâ®ÍæCÅ‹§ Mãœq†ÚÈ.ÈÙžikUÙV^wF¥:ê¤Gn~Þž¡y­Ë »qw)\šézcgb†J:ϵšÌ˜ž¬ÛMfgÃnWG‘ƾãy©M‰”ìùçûÍfì8¼Z•J±8N}‰P ¨™™Èt$(ª7xÆçÜI{¼¥8=qï[νšˆ,ÛU§€&•ºÍ÷Ñ):„_!€'jO=õè}x燉èÔE/iC£§]ÜYœ&¢ÖÜ¡òÐzNoH"F“çT#γ÷ïûî—vrk™2öBI"JÓj%`2º.Ç|i¹,KCÅ Lug¶]&RõÔB0.)ŒÙ첞]Š 5Us|Ϫ Ú§m*ä%®yíâA¯å ˜$ÒÝfèwc¼àoÚíDJV* Œ[䲨 Q¯§1M%¥)¥T†šìkm*Y­JŒ‚hM¥Rê59i÷zza1L¬dºG£Û‡N^õâ5-ÉI º÷Ë·~ès÷Ñš¿X+‡ðý_~Ó;?rŠáW`)è±{îØ|ÞÕDTÙ NY;‹ˆ´¦êàDÐi¦ÿ›DD§Xh‹YœÖmsþå~Ær6Ÿ~é'fŸ×­Þk%:†š9Ç·ðÌÖ$­ðæ¬V¥ç¥ãïah|_C–ÑòýÄ ÝéjÏõ[]ß*×"JŒ[(n(Ÿy¥W°Ü²tK«v®×«¥ö.g\rmˆô ^œjËâqŒ¦—†tÎŽÄl•JÂóx»ìÚÕívÛæ®+*éºüàÁ>‰0ãeŒÃ‡ýfgz–¹ÖHõkê $ê‘%è‘ÿì9W¿›ˆj#ëOÅñ‹µê~šCøDÌ F}Ïç^jé`X†Hª­óÛ‹¥Æº7ŒMD’“­è vSùïýÃ[œ‚êw‡îÓGövçõ:KQ¿—Ä¡ÎëØœõ‘Ë  ·Û Ä. ÿˆûÇ”ëò†å•d·§Mµa;¡™GúÃW¼ÿWR¿66ä3w›×Þ9ÉUlX¥šåùòìŠâ‰1´oŸ_¯ËäCèA9ä(2‡KK1°+)Y½.+¹kW—Ñ„OÀRÐÜ~ë9×¼›ˆF7)û”›6hCõ¡ñý‡¦é œIr$™öÔ>~Ó•7~të›®+Œ:^™˜0†jÃNmØÙ|n%𓨟ôډߎ:ͨ·‡ý$·96Q? û:ðu$ä…/Td¹aWv¹¡ eU¨JÛ“Êâ*óNvÙïý­©/ÝúƒÎÞpÞõ­ÙƒÕ‘MkN¬ÅeKªyôõ/~°5_u‹7ö»+è˜'ý~j¹Žæû´&ß×°tE+BÖ²XO?Ýëvu¥"¤d•Š´Ö¯·§¦ßOdÕŠ<ëÝ·|ü3¿öæ§ïûâWßöÛÒ:Uc}/Z8~_)Û;u$G¬S}7€9#ÅéÑ{îxLJ>Ké4ã)?p?ñÃÏ‘Nb£cÆOUzƒe ª{ôg¸rë›Þrþõï/V‡l¯$Ô tDDB2¯$©$+ƒ/ÿ$ÆP먯Ã~G†1&y%•Çꋜ¯HÓå7ܲo÷Ã÷ácD´á¼ëƒ^‹{#kB[PÍ£þó÷íºÿÎKßù?Ž<[8ò\’w’ff¯}mþª«ª7:¾Ÿ0Y,Þé$­VŒÖàè-Á’óÀ>&‡€<×ëjÓ&ç¹çüùù¨>â´ÝV*¸•÷ÿö_~þc7­?çZ"’ÊqO}+NÞ*øÊy#@–Sz×ÊL ZØû íUе¡JcÝ©+ôW/m¨>¼Îo/Ò2Ò 99’¾ðgïK¢è§>ø)"²½ÒjL2—òɧ _öÆH*î–deÐsê£v¥a+›¿ô‘ùs®LÆÄô‹vûo¹áþ/|ìàwû­ù°×ŽCÿåÞïÚ¯ò©/>ÿ£{æî"¢°ß>¥£à€¯îýò­ç\ƒ“ðÔ‚²«áÙ=ßï6g:‹ÓQ¿»VÏüò,8ðç;6£T8õð–6o¡Ò–´´ïÁ/|ü¦«ÞsK©>Rw޽¯~8V·MaLÿåã·×†Ö}ûÖ_î.ë6g‚^+‰O¡?ÆK£·Xv¼ÒÆsv\Vúÿ›»òð¨êsýžuÎL&ë$™lC6–„$‚€„%ÀU‰­Q×…ûh/* ¬µ½Vo¯¢„B\Úª­¶¢ubU´B‰"‹&¡ZÐBˆH€0™}™$“ÙÎ9÷_2L0Ë,yŸy`ö“3ç¼çû~ßò~±JæÚÀ18s¦ëÛ?þ¸ùÔ©ÎÚZ+™oN|f†%#InÜj•M&‘¦©èhEjª_g§xìX»RI *Fä¥VI÷ö?;$0º•^8þöS:šjlž4Â<ƒ–ªR…_ px`X4'xÃüxÎ÷Q¥tBÁàR¹¾®æRrÖmAá:¥¿ûÕô®ŽA³¡ÂÔÙ™¨ô×x(É®`Awþ¸ù¶Œÿx0uöšH¥_× ¿B’3æßuòà_*O|›¾Ã*–󄕸{Y^ (J«„ s‡ÃlrH.e•v»l2‰F£Õ`°VW[/^ì–e±uuöŠŠ®Ë—­F£íâÅ®êjë¸qа0®¾Þ~út'éøeT¬E©ˆLî‘°vîxbZÖ¿~P凨¤™ Ç3Ó~QrøìÕÍ‰Óæ‡DÆû‡D~žØÊõ Ë?%ëÀ+OD¥Ì,óJ·œÛƒ[àžú^óËxñÌö‚æh(X|ôÊæðqIW¾‚]‚*T÷䟎+Üg»ïÐÙRk3›dÉÍ?Â Ø R­íÇκ3r~~tRFpP¸‚v9Gñ¹½Ýa2‰§Ow~øaÓ矷~ÿ}We¥¹ªªûêU™Ó«PЗ.Yª«-J%­Ó)"¢Pñ±ê~¾ ÑÇxtǾsÇÞíj­ïj­³uwz¢ÿŽc@uΟ:6~Z6Þ+1WxÈB`–×w<úÍ ’„Ì…y5gO€¢Ý},ÉÒ÷›w_8}|ÐÀ•aÁèžüÓqs{ÃÑ7·èh6ZÍnünÌ^ôV}3,•2[3oEtâÔ€ ïúR?8‹+ ÂùŸÿ›â®Ä CAÁâð뛺:ÚnÍß6FW×É‘&ÏÎËÉ/ûǾÝ~!‘qÓrÚªƒ"ºÛ›®žDu­¶²¬£¹fàóç¿ê£´6óöµº¤é‚*`ˆì  àfåFvw9*ËÛLMV§®PK‹£¸¸ñÀ¦¸8a×®Dž§lv" m6‹M©´BÍ÷‹<_6sï^_ðМƩóÃâÒì–N–F…å{ÃW³~ö<Ö<8t¸×÷!0Mui?rŽ~ò2$mŒÙÔ7Y` Pp¸T¦ÿöð¾Ÿÿc)pu=H2¬ܹ® £Éxô-G±…<˜6ˆ®ZbjfHFæÀç·ì@Ñ´’ãKcC"ãdI¤fè',#$R17/še©ŠÒ¶Öz p­RÅf“¯\±^¸ÐM*´H½d]£CÀ&gsña±CýE jîÞÇ öýþ·K׿nj¼Âpnhr辊÷rPv Ü[݇À,– ¥í­ñ)^+Ÿb¿9yr\ڼј¢ âÀtÞÝùß?ßø{Œ½ÀÕõ ÉeLš’é¨÷¬ ‰¢í—ÒDr­ÿ=E ¹k6”}ut\r¦,I»uˆÕud ÚXåü{c”jöì×-5‡MB/-éñÇ«T*†Ôf„D S’2ƒãÓJÆIõ¡À."yv^B‰¾âK÷490½½ûËÙ€W¨|b“úÁF¸ÏÎp ¾ý¢x\J–<ݨq=m§‡)€¦ÀÐ`i(@½ñTþÔùËmÖ.¥:h ®C¢ðñÞ=I3²)šTj–WÉvçm°rÍ~·8$ä¬ÜXñõ'/´7íó°þYF`¨";?fVnä„iÁZ§ Is•BÉ(T,­`‚£•Sæi®ŠY|ÿ¸¤Œ`ÂÞaÕ¥‘µÃÏÖí¼TþAWk}WËÕQÖfq4ªJõšè þÁáAá:ït/ü$ܸ¾fŠÄŸõÙ÷n‡×Ó¿® - 润Æ+ª ð!¶\S½3–(*Oè+Oè¯T”µ5µ‰Ó4‘vë÷Ÿ Xu?” ê@Ýø´ °h…0ª%I†CDîšõ§>ß?mÁ ›¥‹Wª‡^¢C–¾ 3󎈄©µ:[ê¬Ön‘a(^`8­T3ÁBd‚J©fÑ+{0!‡u¨nÉÊõ_xiîšß¶×_b9SޤŒx_ìßãìÝ÷ΰë¡À]Fø1XÍJePJup`XŒ÷ãÏNÈ2´³š çÈÃ[`BZò/Ç@{£¡â¸¾âx±±²|ÚÜe3Üuߦ‚÷^Ü\öñ£ÇOõŽ ƒ^Îo¤òþÝ›.€BP±ühc§ ‹ò7l¿7kÚ‚m 5¼R­T>OdP8{´±JmìOüz£Ñ²‰˜}÷Æ“%ÅõO‡ÅM±uw0üHfq Ðah¬½Ÿ À;½GCÄhV®’×ÌÑ(y·0.u–$‰ Ëù0BKZB£»Úü‚Â%0ÕÛ9@÷ÛŠãzù²ŠãzÒM·æ®øÅS )3p W(×ïØßRË?þòô=[þ €¢h¢½Ób52p4ê(m0^ŒILÀ»£ò^”®›ûr§V(Õž”1dvݱoû½3—mÝ×zµŠ¢e€†¢èa]8_¼W˜>ïnš¨„1â?;1D#Ü#¬Ô+Ü̸¬zkΕö<–&õÏÅ‹xFÞ,~’„ Sf6*ú˜ÌØ+Ë+ŽO›»,>ùæ;^ü48<¯PR4M“…"à±þùýÿsßìwwÜ¿|Û›(Š¢ÔcǧrY¼³{sÆ¢{„E'¸…À"rò7l#F¸Þ PªoiÙ v þ!ºåÿµùÄ—Ò—üWW[$9uEÓE“oü DzòÔ= _q^Q¤aÞ®f8…«ue¬©Ñ`¬,75Œ•å5çÊ:šñ“§³ÿw[®R4íóÓZ’]⫲DS=~2á­á\iÅñâšse]MWnº57kÞÒuOý‘¼W!¨Ht‡î{µ%†éžûÄÖU.¦iÁ/p š Ž£ÍÐ`¼¸|CÜd~ a³B©ƒÕ,dæQS}Í¥6ÎitÉ“fߟ¾Àù§²¼ò“3ËÓ7|5–üg'ˆ>´/®Û´’a8A¤®y…5çJ;šŒçNèœ;Q•˜’5gáñëŸ À¾^ê@Sðã±â&=?¯U’ŒÙ‹óÞ{ëÕø›S4Ë1èh2+ËÉâ6.ùæ›æ.›=¯ÇI晨ISô j\„àúê¶ÛÿÒÞhE)ýÇÚÌ1ø¤¨0yz6Md¬ À!á–Åy»ž|hÚ‚­uÕ ¥z &ÕxÆÊÒ{ o¿o[ì¤iÆ‹ß~öâ';,bÂÍfæúk¢É;N hŠ¢z,³s^ç¾â•ÏÊAAV‹¹k6”x?%{UÃWÅÖζºó× lHxÌœ…wØðo0,×3*š¢(P׆—“.‚îÎvN¡”Dñ:[ôHˆfØÖÚ/Ÿ.¹øÏ¿w5U'¤ddÍ[æ4¶¼ ¤i¦÷2<¤+ŽC‚2D·¥`ÿÖÕs>}uëm=ßÞPCi)Á/p,¤ 8Ž6ÃÁ}…¼ À *÷6c;$D'eø_½x&2!Õféâ•~cg÷p •øõ¶ü˜ÄÔŒ…yEß4/÷ŽÿÜÌÐ(;¬ÿñûÒž¹ÍæÆÏÌœ0}ÂÌ\çY^ (­àY˜ Æ*¾òyñÆ Ë‹ÐUÙ|åÔÁ¨¸ä¨ødW €åøž|/q]=Ž^² 6Z´[9^$߸¡ÖpùÔak˕ȸ¤ŸÝ÷øäóÑcliŠ¢išYC‰]„nrÖ–‚ý/lZA8ÜVoŽ ÇÎRcðiQaÒôì€mp¸n”Ù£AáðàÖ‚]O>tϦW[®^æ•jňò4žéziÛŠÖã}Ûþ ‰bxL,ð¢ IÄôyÓä­~bWs¡¬Dáß_,\1þæñ3—EN˜9qù*y·prÖmv«9">ulúÏ…ãõÓgßñÀöЈØ­Žåx§EQ7å2©HššÅp<Í0ÞU޽ÕðÑÞ=7Ýš›¿q×]?“63GPú)ýüY^ÁrD§bäÃ&"=;oKÁþ¿-9úÞ.­uÕV³É}{0rÐKùçz¾RxÆ÷sHˆIî1ÂÜØ60zð,Îן,)¾{ݳmˆVç,¼‘{}N»ˆ€0Ýâ•ynÑ·Ž‡ŸÜã/µœÒ?ýƺ)ßó`Õ??ëh2œ>¢ˆKio4zAqÄ Å_ÖOž>Ÿã•09â4ÃEýÔ@k4 .t³± €-0I¾VTh³Z³ç *uPX”à§f8žfXwyzvÓ²óîß´óTIÑùoh¹zÙ£‚LCÇàØû»•êÀ˜ÄÔ Ð(^é)ÓáñàÖ‚ã¼ ¹ö’mlp˜g`o3¼ó»M“g,HÉX¨Ñ ~þ£Œr/™IbBjVþÆ]O½ñÕŽ·¿^v×Êö³¿³eN{“ñ‡oiÇYºLÖî‡Ýƒc#Cãì1=€”Ì Ã*”ªá&ÐûÌJž45³»³€,оºhq ìm†Cû 3s–k"tZÝ•:Ðí °KÈY¹ñ–œ¼¿¿¶pØb6ùö+*ÌÌY€TžFeïk„mì¬ô<ƒ¢=›E»}qþz‚Êÿ'{wfY”áªKÏÎûïg÷¿öê7ï<ÿÍá_ÚÐÕÞÔÕÖd5wØ,f·è"¸,ò}òÍóh"Æàp÷!pX„ŽPE’>1Â4žÁËÛóýƒÃf-¹ •Ÿ‡Ä¤ž&òýN“Ãl·zI“y 8Çõ»v‰?»7ø<$}áÔÍÆ*î8z=¯cïï>YR¼xå†@V;ܪu¹WdËlÃÂü;öwt·¿ýÌÊÊ“»;ZMMF«¹cì¸Ó4–Æß—%OŸ€ã…,—\\hÀÅïŽho¬‘}ˆæÔ/­:Sž÷‹ß‹‰÷hp¥‡;Zê:[¬f“u·‡R;Y^RLV¿¡Qñ OXÄ¢ü†Š¯:ZëøÖûàYØÛ E{¶Ì\œŸ’± (4RP©G|íeXˆIÎzns>zùñÏßÙ £¥ÞjîðÉñ–ÆÕó¥- Fr½Ùè¢>xZvžó¡än1ÄŸéü*Ú½9:!E7>-04Bð|hT”a—ðØóû5Úè÷^x°£¥®£¥Þb6‰^_2q ê~(­:SNüg…0ìåÐp! ¹k6œþâ=6‹ÙWg6K“Ès~@pø’•~þ£_>8$(ƒu<·ÿ¾'v~sè­½O¯05_íjo²vwØ\@ù òÃÅ£ñŸÑÀ$ŽÕÙÚÀû©`žÁqýîª3å9+ ¨ÔÞI߉ì"žùË žcÞÝqGK]GsÅÜ!:<8% ( }­vR1ÎÓþ3]ºf„MMµ>1ÂdÝô·—7U)¿û‘g„FŹ«åS”á°håÆçÞ:níhîu§ÛLMµ³gAÜÄ./ÑÆF¿4I×WŸƒ×Ñ %fæ,×O öffÒÑ[h©Ppï©©Öj6ym½ÄѨ?_Zu¦œ˜ü¼Sà)ËŒ°×]²n:XT˜“¿žz¥[+ÃÈBI79ë¹½'Ò¦ÏùèåÇ?|y#€ÎÖz‹ïÜi†Fݨýgôkè—ÉéYä¾—×úƒw~·©µÁ8“8*5ëÝv(ân=ÿö‰Î¶†O_Ý  ½Ñh5wôŒ ÷08'KŠ£&„hƒÃc¼c~ H£ÿé#ïA£ÿ(AŠ®^Ú–“˜:kÉJ‚g´ÊHÞ#;öoÚ¹ÿ‡“‡~¿>ÛÔ|ÕÜÞÜÖ`°uwyBJþÆ`Ýá?£%…ºËgá] Ì3p´í+\´üÑÀ­&B'(½7_Ó {o¡åß–·5¬nÒd¾HëÂÁ}…¤õ—TÞ¼x¹6ú°Yº¼¶vp-ºº{ݳÂc;ô$Þ1m~Þk‡.ñû‡ *O`j®µzyÅ÷øÏèoe$OÍìjk”$IrØE‡½wҞ칓˜ô,*ôWYº¿IDATËZœ@¡òY“ªÝ¥H‹p¸µþŠ¥«Ã£åh,*ŒJ˜“˜éMóK@ý¿;Z  ­¡Æk+á]y² »•F÷òÁêY‹ò\Ü髹Ãî­©®,ãÿ]hm´N–eYv«h·J’C’¤Mí’h—%I–¯Ý\ÆiŽä<ƒúó¥‡öç94:ηu¹®þöð^@n­»ä¹BK–†Øn8¸¯pâÔÙxAå}Ùq×C6K—PC,ºòì"ú»Ó¦æö†[w§M=éßQûÏè§JI4péûã¯o^ å–eÎ4mîÏos½?(e)Šq-¢œ¨>ÿÔõ¦Žˆù”jß63ʤÐr~Þ²Õë?Þ»Ç?X;áæ…Íµ5Q‰üH¯,}w¨ÏŽAÙçz¥_ÀÔ9·ƒd|/7ú“¢«7†YtåFÈÖ´ì¼×]Ú¾zö6.ÈÎß’±ô>SóUuP8'xP=‹ôè——O™µ£óŸÑŸÀ¤ed¯zìC#cÏúÊy®}õ½ómE¿]å¼=b‘ä,KWÓW)_½å%áºDï;A8¼ú‰]íÆ¿¿¶Øîúª.9#(Lwƒ§Ýz× ^ ‰MévfiŠ¥ñYQá„ôÙv›%42ÎW»ïÍF×¢+â< èjô å´JîåƒÕE¿{âÀÛ/ÔV}7? U@§Py(‹ÉÐp´.ü»|ùc/`tþ3Zàú«]b²(Š4Mß’s­®cVN«Hv%öpIž>9K£hϦq§†FÆ…Ey.€1\òÚÉé™"˜ÛW=© ÔhI_îß•6×oðÙ¯]~‡hª3œÿ¾ÿh…¬¥«ì6 E3>ìËõN£?¤vCÑž-™9ËG_t5JˆdùwMššõæÎ'ö>³òÎGvGOHZü5¼Båö«K£ltõÏ}¾ÍõE¡âTyÒÍódIb3ëmé,w|nîÖî.š¦=W»?\Ÿ#ŸéçåÞ'˯P:»ê'Mͺñg]“ŸÜŠÀbI2«ò¢)šöÑILà¹F§r((,ÏnËWùÍ]v?ÜTt58Ýé‰S2 6­xûWÎ[¾iÆÒÿ45ÕªƒÂyÁϽi-Ö}þ3\ LÄÐÏž*ÍY¾=:#ÁÐINFõ®ÊŽ@3옒ch\©(íê숟í!Ï–ôÐÌ[šWsáß‘±I>×QpW£¿SHÑU“íÒ™Òꊲ+åß|Q `ɪÇ-æÎÈØIcAgßéN?ýׯŠ~÷Ä· ŒNÍÍÛ Š¿€^ðã¿=ŒÑ¦, G»Ûüg¸F¡i -õ†ˆqã„Fê<šŠ$kÒÌy÷ý*¿=*(ýšë c¡© ½iº×wlºme&37jMæëA”09=³ÞpTv«Åawç\Üáb4þNU}˜ä°4®T”~ñîî7þgÅcs¹¯5,fB\J–&:Ñùf†åz…ª®)àÜøûÝ&p!0…ÊÓ¥ãÆ“ñÊ^:‡HCÌo^Üÿ춇øÕk Æ‹¼ òy(‹¥¡ÿëžÙKî Õ%x4µ#ɉÐMNÏ4VNLqØ,ðÕ ïQµÑ?2!Õf1÷#05˜È8!íå³e—+Ê3ççNH>5}ª+iiš¦(Š¢hЦ$ iYÙ‹sÿuôã¬%+-æNŽSŒÝ9…°H]h„î¡;V%$¥××\ºpöÛ†s_Ý÷\s½1uvn@hô¸ä ]Òô °ç†ƒ ™©£eˆT£ýgô#pS½ñ?æß /€CB|jV`€ºæÂ¿cƧY»;yAåÃT0CÃÒjøâ@ÑöÂà•Ĭ$cÞÒ¼þóËèÄ»Õ":ì¾Õ@%áè}s$2!µÙX%¨ü9^èGÚÖzÃåŠò~¤ÍÎyzbZù^!ô0–¢F˜–­ÙðxþìÉ3 ÇãSø*í "©on6¼R°9)}攌ì PíÄ)ón_ ªG­úÄA}cá‡}rø'›ë©³ï:çÎÀШqÉ®ßư}äéXš:sLŸ˜šé°Û´ºñn ݱpåÂY¡:Ž÷ª'JX÷Ëb„k/ó‚ʇ –ÆÑCú´ŒlaѱõŸ $ )Óf¾óÚ®÷¬k®¿¢ ö1E,Êßøñ[±æE÷úk"$ÑAôô iOÑ_>[FCž6Õ´Ï÷Е¢‰Pó 6!ÉÑêÖ=¹ëõ=¿\ûë?7]­f9^©ö±0(Q“îj6l[=;w͆i³„„ J?šfd2D”3(ëÂg'éO]5üð}¹nÒôÀ°˜Aù¬äüÊJôÚq,æN·øÏp˜¦ai1èzýg/ `„»‚ûóoCéÒüÛ_÷¬ÝV@ánMæA!ʈOÍâ9†xÑv›Å·Y™Y±vCé—ïOÏYýÝÑâÊòϪϖÑ&¤eܺ(wíÆ§4Ú¸’¶×CúVD 3æ½÷çÝ¥‹ˆ#Íò æ“È¡ïj6lÎÏ|`sA|ÒÔàÐ¥Ÿ?oTv¹'Ê@/Ÿg-Î#|>wº´¹Îèäs€&Š8Û!qY‹—Ÿ,)^±~§µ»Sv“œÀÿ¯Õ®n¾*IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicseffect-drop-shadow.png0000644000076500000240000021240412536324504024641 0ustar philstaff00000000000000‰PNG  IHDR@Ã|¡_? pHYs:Êduh IDATxœÌ}wxdW}ö{Ê­ÓG½®VÒöj{›×e].Øk ,$@Ì—„Ø$Á8ÄäIœ8€‚ H¡ØŽ±µÄ`¾€1ÆÝ«µ×u{—4’Vu4}n9ç|Œ¤ÕVoQÙ÷™GÏÜÑÌ­ç=çWÞó;D¿«ˆ1è Aþ§–Bå%ô¢;¬UA¹®z6«L7Nµ§ €FÕø'ZÝJ®/½§¡:«éKCî7w vïg«î‚"¡zp Ì8áÏ+Ø:ZôÄÖû/¡7=ÑV˜ñÉ=DMî“.6om\7éû?”êØ´ÿwß\u/ ÕP»|²žZÌBîgï×ÐÆu$ÞŠ@ͤìv²`r„½®¾ï_á]ù/$P…P#¬2J)Aé¯ÎF¿,Ó]¢g‹êÙÌó=ÙmmزÏÐ97вù°«ÀÍ)=U>qÃð%~àέQîþ)}î  £ß9†™ZýjXzÓQû#tÂ{À—ªà‘àµ÷‡÷mêøŸOàºÿ3aFÁ}h6@¦ìÒ&y©@ýê›ÿ²ýµ¡þ)Ü ˜Í:«‘ã7)£x³M»ôo \vÂ_΂jIâõÇî ]ÿ]DNbŸ+bÍ«¿úKÚ¸Rê¼j EšÙ0÷ÓlûÉŸ÷ÿr½Ðƒ¶1úÜKŒ-vo–™n×&ªáµ+µÚ¤~eÃmgÛ6&÷l¢Mרâá(Õ§îTù1Û¾€¯×f]f_þ×,Ü@C5 pf‡“>_"ëÂn¹eÑ«öýpc±å#töû€*Á­ÑýŸ A1‹tìlÇî6¹ûñ£þ=÷–Sü–¼÷F(»mJ¸PòÏy² 1uÜt·µúÏh°ŠE‰šÄý +Þ0º¡¤'Îä=x•«®¼z箟¢i=v?žx—å»ý]›h°†×­ÔjWÐÚåÆMÿ6ú¦ƒO òcä¾Úâþæí?@ƒº®ùØ»F zvoÖf]A#zÜœ”®Q*d]­¾î^xìã#ͯúrý°ÊÀ­©63ÎŒ h \%öü×Ý©wÚëï×[ÖS»‚èAÂuÎŽ¶Süü=þûÔ'F߯>$„œ?ê'Û»ºw….üs¬"zð¨üœ!Ô„ ) ÄñMq¡1ØôB¢¿¯[½ÑF¶ÿˆW-a•‹xë5ÆMß#%F0„dâ__¢àâÂ/<ÿæë¼×äWܧ2 BŒèêQw‰-mÖM?Íš\æàAHÄo{8¾gÓ¾G¯ÖnøÉèÞƒÕàöä6‘s§(“‰}ßZçû^àÚ¯ëÍ×–Ø ¦+ú‚ §ØCé¿GîÝIî¢FQÆÖ¿4eº‹Eg—†å‡­¡¥œlyhc`ýC(Ïš=¹‡nùJÙµ€Êt“`õäîÿ\`rØ:Â^bç·× ϵ¯ú{½ù*j—3JJNßDÞ‡¼‡Ãzý_x~ó_·úÏ}‰_qŸJu(…žŠ³=Š3G2Ò €†È Œ®@Æh½eù^&¿ú”<økȆ›t'ýpg!laoøæê-×Ò`1B`gæÌ¨ñ—:ñËp|D›WÁMƒjÞ]Ôé£dzØt{3 V±p=у“~¡À¢ G¶¥˜ôCœl !ÚþM»ïk¾¾ù?¹ïg‘F¨"FTå „žbl˺èGýÂÛ‘¿•‡~ @„—›Š>–Àýo´±Š7§È;Yì¾ù¯ö‡‡^ñŸý •íE~n~a*Žxú08B‚Cíãì¥Áj¬!zhŠî†ãÊ5ÈÁ \ wÆ94P…Dï–GÍÅEiø‚ b¢» fžÀ” d >J ¿ýbçO6j-×Fÿii ábÅÎÔ—Ì8p[nYxû#þó_*qn~ñ½~wæ§=qÃàHÚ¢7­0¥~©ò2Ên{¸~éÕÞ/>!ûÞBa™n¸™™zœ&GØ€~`Ó¾o¯“F|”½¡Zb„¦.Äâ Ԯؠ²½ Ò]3i†˜A»þscàª{°ØlLÁð @¢eçóÀÌÀCÈ@™LtþdãЋYk¿|ß?P®'Fè,BP È8ð[o©¿êÿõ‡T®Oåúà¦'ÝÌú1°5„Mðý›:~²Qk¾6|Ëh°š†ë‰žÒìŽ+àT¬D1©ŠI3H` È×tM¼r1 ÕN…ñ<ŽcÑ3“#d &û¿½.½ÿ¥ÀúÌå¿Oí2i„8ë0È8®ÿzÅÜK¼ÿ÷•ëSÙ^8“<>!°Á¡ؤ5­CÉ~>CïìàKd\äÊV/¼óùˆs`Ìœ„›…ŸŸ¶ N@Ǭ8¯?Xbopý×QŠè¡©ÎOº5˜±:•ÜÌ$ƒjHâÐÓ‹>‚ÉNü£Ñ3Gà£^?|ËõÖõ4PIôй¡ž@ÆAùG®˜w™xíA*“€›™ŒÅQNØ< öó1P 9ƒ´¾ü#W6Î÷~ñ yð×(&‘é›ô§ú‚cäÐ7ö>u·±ôãÁõ_§VœE§tü™O Ö¼F&^áNÃ%!hààÏÆ¿ÑYS}ùRÂŒÕÉ®Œi9¦Ç9½ë£Ÿü UÓ`õY,OÇGÖAìý_ÕR»üç¾@¥:à¦'eç'0%08zßù TÒPÝ4ØÏÇ è#ã pí×[?üÏtë7üÍ_€\?Ü Ää»þ%P‚°†(9ôã©wÚ×~Ý^ûj—# -0E=nÉ vRTºcF¢ñAÆM©‘a}öU4X=é‰ßã!â-kF7JZŽiĉœÞ°pÝÙ9½§@Áƒc5\ð…çµÔ®IJ>$ƒ£‰ öó •Kö†ßrËÂ;Ÿ·³»½ŸoTÙ^†NÀËMºÈ„ T 1Î^½¥”ì ŸXò,á äôZÕÿöèö´[ÑÍeäÀÏî²Vý)JÆóÔߣ¢Ð£ZŽiÂ9½§@ÎEê§"(}„ÀÓ>5J‚­!V_÷G/Äjçx];–(î…›™Ä §™(W‰}ßZ—Þÿâ({•ĘÏçLá è kˆRHvz \R­IüF¦Çwêˆ ­2ÝÓFà)uzOŒƒt|õÂۙܠôïx䨤¡Úé·ŸAÁCÆAü¶‡[?ùˆÿì_úÏþäàf&%Q|©F51Â3bzHW æ¢ jpL¯(:h ’lïÛþÛ ‰ßéP5J‰|Ùê ÛSNàéqzOÑäðG¿1‰Ai @c0Ž ¿|æ'úl}eÞî>zµÊöŽ&нì¹\óôK5N®@¬y•Ü@¥MÛ liê8ø³»¬Õ€Åš§ÍùjZÑÓéôž R!ëÀo½eƒÒ€ÁN¶k³Æàócb×DÁV|Î¥Þc׎&ŠKºË³jâ3"Õ8x±–5jhçèö´Ä±AP‡Oü†ë¦-ð@ª±@ôÔk9JNo\$L—Ó{2øYey¸,” 4`p¼ù ¼rF |¾`¢`«ñ¦¯‰-÷ûÏþ…Êö ß7/È Šã÷ÀLI5N®lÙjrp;0MnpHG5IzúkõMüNGòÇ¢' d‹ D,6íº¯ÕŸF§÷dp²*>úpdÎ%(M 8%% GÓ:4:û<,”qD°uçó|x»÷‹OȾ7QB¦ ÅԨǨ$”8ö5a6¥¡163RÓP¥lð*9°])¿pôùO>&&~°hÓt¿%9áÖŸ P”€Nx1½ Ž˜…¦)>óÅC?ިͺ,úɧ§Óé=JIÓê³·¿}¦AéÒ5&GØ78 Ž#öóy3§o"J‚-Q¶ú‚/<ßýó»O}rôv%­YÊÆO›Ô¬"¡ú‰¿¥ó6X:­’C?Þ˜~·M_ps`ÝW¨'zp:“½ï W jîšÔ¶7 oRnŽx¹#)ec½ û3aó¬2 Ø”\x Õ=8ý™P ²ëÚ¸RŽ×å˜8 óø:&ô$-ÔßÕ¦ ÈtBö´—ª¤¶oê o1—¾Ãâ-çC)˜‚j5\ð…çß|`¬X €z²ò¥«f”ÀÖ@¤º ;6 noãÇž{ë#~ ç™ý| J‚­B¸¾bÎê”Ãb—ÞÁ£ ÒwÜÄk¿VèØìwõIæ©ßsÀ¼ðvcî D#<ÍÉÞ÷§hX¸fׯrúAŸGâs@9›û!$XGkWà7Ç‹¥œªtÔÒ£ËåÌÄ£—Ík6tÿì{ t¬DÉIù)º7«L·ütBö´}Ø>^­-¸øæÒ®³–¨ô¾áVðò†Þ|ò‹4XuþôÚ9}F}ˆûw<ú™–ï8bYPX¸]›Ó;Ú Û7ÈàÂ*×ßÃ'ØÏMçaeŒ‰08(ÁÎÿ}0vý7•’„›z°J6NüNpñ‘yöt¬ s†òžûœ©Õ\¨„ ÊÏ7ö2!ÕŸ-ß¿ü/üÌaYL3Šô;m¼TW¡s R³¢d_К•$T€Í½ùÄ{<“+ ÚGˆÍ)BºŸ}ÈXtëX¹œé6žK -Õ‰ã*Û#{6J$àï­g"Ó Ù³¥ôÞ¬_É£õ8šŸæõ÷iÑ£ ®±`¼R‘Š–µ¬*’Z´é|30³hó- ?†]Ï)ßAÍh©#£d”·…ímÉmÅ›Œº ƒ o(ÿô“µw8ž¥>ò.æ¾ïŽŽÄsÉÇ ”˜ñÀÕD D¼Ä+?»¿îSO*áYM—0ÝÆXÄÆK¾c³—êPèØìu¼ ýÔ§ X[¢Ç‰MkVãJŒ‚rKcÁ¡öo>úà·P~gèVp Î ;Ÿs^Çìr«éâR¿[>a,m\}ìÏè1“éÉQ6÷qðWߺýÍWõú5ÊwÈùôèU‰Ã-·ÌNv|þËüªûU®XÑ9j$'íÅ› nˆ,¼¡n÷K¿"šM¥ ”G’íC³.Çùm?Ðl»žy(~ý7PÍ;ƒ´mÁCê ûÿõÈŸ’©b„gjØ9&GPÇ;ÿº±ü}÷B)ŸE4[NèœÆ3,zý8ŽØÞHW¾s &;ÿâ—ýT7:j„2œÕ_b†vÿ×FsùíÊÍ²Š…“^.çôÁ”‚5û²²«¿¬Ey¸†Pí8~SDñŒ}WW ªuxú?È‘j•m]Ñ)PÈ8¨½äÎæÃ[u½HÕÎkßìÜNÒÁ…7F\Wâ-á%”ŽÕûGŸ ^}«XxžÛ϶ŽbûƒZãZ¬ä‘:ªŸ™'Sô‘/_„þí¼rüÂMU?S”òÅö=ˆT/aáz܉sYmr1懋p±¤JFøHW¡ãŠ/}¹k¤€Œ D3VÒ•SôîÞlT-$”S=@&»[ ®€S¹Z ŽæØ•pÈùD`ŒB4Tçÿú½b~pöeÖåf7_A'šÂ¡(½Žç•‹•—'Ü<ìŠã¡3Ø:¶¶ÙË> €ê³È=4¬Ú°óíçxå"åå‰_<ú¬ Ž ™xåWTÝò=Tž‘)TbôɈ ‚ÀXP €ÀäˆYØü×ÍÅ·~ºá»2ÓKŒðä–Œ=M0 N±ïÕ¶ðûÿ „N{QRªúh\µaðÐózÓºé¯qj”´èîÎM{~ýPüª/Ù³/g¡j®¥š…’|ÊÛByÕåΓzˆ'ƒ­Ãl/ä²Fõb©%úÙX}E¡µw:;ž 3=j¦ëo08ÞùÁÆÐ²ðP6Rcrì‚ñbzrì%„DÞÅHk>÷¨LuxݯPnvFª å2Qt¬äáZ2•^W qÕïÐó”ïÌxá±q”ª ÄýÄöl´š¯Ì»N+kÑ¢ ÔŒ€é² '•ÅBØùS‘øx”Šôîzü®èÚÏ z€œ•ÚÄ—(ú˜û¾;ŠÛ @y…™­äB€ §ýÁB>^þ1Ô˜òxR)j’+[ݺþŽÂkß ÓÝÊÍNéAOƒ£÷õ6«ù „SJ`G@T¯òw©.åŸ/ƒpÐ@…L¼ñÀ:»åÊŠ÷ÿ#á&³ãg¡¢¸©„wþtKÇÀÖ& ¿áZry¼’íz€Lu(o&á J•ØÓvwùú{he-dºâI9±Kï05Vh€H€—ŸžCCçHØbT-@¹1¥~¸'@# ñêY~I©z^ØÖÐ'û6Ýí{^ù¾Ê´øì3­R¯k3á¦L'Ô´?ÂÓ§°õ‰Ã¯}.]õh(+}3gE A{Úî-ýUñHÝñ±«©ƒ+  K?v¿³ý§~ÿ6” éi´Â ƒ£wk›Ýr€)~Kp}”ÏYãì@ÉŠžiŸ±4+nïw ï~±êÃÿ@‹6R㌃ôš/>éìy €òòç¡!më° ¿5ä ƒÏÇcâ ¬¼üT”ê= ½›w¿»ôTžQVìÜ‘sAæn¨[¹¡Ðþ/Dªs: i{6YÍëhÑ†é °@Eë1°„ƒµ¢K+ìÝ”xö¡ò÷ßÇCUZ¤žá³0C¨S±Úë| €é8ßaNó~Ï9n|>„²‚ªTb÷w•¿ï^<ÞDμë=GH…œ‹º¿&¶·ý7&%š¥<"²D¤ˆÌBjWGrÿf£r!¦r ‰pØ‚ ^ÇódºGÍœ=1pU~Ý}FÍR®¡Fôl¬jý=¦384B•Tžû7‰ꈎ´w½ö³ÈÊ?àájjFÉ9SR3‘ê|—W."Z€èÓº,“Î1Ñõøg=j‡—Œ…k˜%31Ù—0ìHY4ÜûÊ¿ë³ÖŠŒ&cO EÈ4õú‘ïBáÈT… )%G„;BTŠÊ ¤CP RÆHÔ¡ŸþqhõR=ÀÃÓQF) txg&—gÑ&jFfª©‡ T©Ä¬³ç_¾àã6êVû¿}£šÊø4ËHÇW©îÝÕ·ý-Þ|ކ+¿æJPSéÜÒ¦Õ­"šE¸uvæø$‚D-ô>u7Ÿ}•Ÿ­•5Ss2WX¥ašîÛýŠV·Šp“psJêh  ]¶Ï–]õ%WÝêìh S3«¶5T¨Dbó£¡e@§¦„Âtª²8E@ÇîÇïò=w¦¿ „PB;†!9˜»¡vÁ%…-ßBI›åP¦ùý»ÜžwìÜ;KÃï,µv­žeú R"ꢘòsƒ¿~ù0Ë'[ƒu¹ž:r˜ûC–“®~]˜¾¸#§1Bš(P:PP * SÅþî2ã`Ca³¹õ×±7ÿg~ïÿ|hÞKfá…âÐ姦è¸>´ñdR*1=ɤqÅ•µøV{Î5‘æ©6N¶ï|ø³•7|ƒ«x¼iŠ.ê½AÈÉ7¥oY5øÜ?!ÞB-“øI¤Ëï;@†÷Gvª®w×V%VW÷»©BÀ€Í$¤VGEL†á¼rr¸¨–ÙÂCÞ§ŽO3‘H«0¥³k˜›“D#YU”D³h·¨3]&åÈßs8½³cA wåÊÀëó’G˜&S– &G~ÏÓžYC•ÔŒNµ|Õàˆ˜èùÅÓý]±Ëþœ*¨™ÄùŒ£À(â6º_ø7cÎT1E­ød—í+…@ߣS訣‰m|¾|ýßÐ"udʪNO(ËÖÐZN¶|ýr£nÅÌ&~O _‚ëFÈôzŸ»ŸU^àõìb#ÝÑìþªôžzw·•Ú¿ÿíÄŠY|Iƒˆ(•AÐL![Cº Ë´6ŠdZæ%• JŒ¤*dä¬(—EYPÒ(¦aj$/”ç‹p„PøÉ¬ãóF¡ï¦›âÃ>ÝßmjÁ§ÄAÕXrgrð0¯\DŒÐhøèZz“…ñÀUïÛ¿.ÿ?˜5áDñúŠì…·ˆÁ^ßÛJ¸ÒIC‰IW*( œÖ®l ‡žy(´ôôxÓ”fÛ§A•UÍíyâ.ßs£kÿ ÓŸø=m(éåÝldåÍpÌyç1-¹»2õzMæµøÈ´owXöiºó‹çS®cTW`EkÖò—0 €€ix§Çë.„ÌæUÎ…©¤MÑ™U‰8Y’IÃ`Tƒ/UDc¹Ü4©¶´˜E¤E^Ú­¶þ×Ë×Ç÷–©½N¦S‰)Ñ:>WÝZšZ(“‡F'6¨É—F—We~b×£wD/ý<-6ùµ{ؠᆚ¹«½ƒÏA8ª0¬ ÃÊËC¸¤%ÏJ>ZësŒÃ§Úƒ­£¼ß)6ã§t‚!AÔBt¤½ã·Í@â÷L¥ò¼|z¨«gÕuoõ_¬»dÿ.wp¿Ÿï¦îˆ®üòÉ*üüÕ\ÁÑfÕð¹1TE@5HÒDÞÀá‚êQåA# ¡ô¹Ø›”JéØ3â¹Q˜¯D*‡¼IýHXU„TÀÄöùÊBÇòp§—ܯüÉ\{®€S±J îMªùΘ[19&cÕ$£jØü÷•à~ª:»¹ ï‰#&4SÜúÈŽ'ÿÁÝ÷´ßóšÈöj4X ) }HÂ#À‘jã§kx(2^zŒœªÂ@ÄÄà¸÷›E­è4¤k+žù–1÷ƒÊI+~.{‰´¥Zœ¡,€òÙúÀå°Êâ—}žpsú¿J)@¨ÓŒ®+¿(r'3ÂsCëšû—†÷‡œ¼WÈ8¦Ô5X R©¤.餈\HéeáRHœÏ§„ YÁ¥aSé*ÇCA¤P†‚æ¡&¦Ë¢/|(‹ö ªN Q“0PO)éÀréÒ¦|xVüÕN®¬j¦ÅAøä¶èLj*#MÔŠŽÕÄ>›£”èJÆŠ¿–ÖÙ.YÎsÊÉö–T-3«ke-Ì.›Šˆ÷Qž˜€BtÞÕµWÞé¦o˼ò7C·ðš‹h¸NŸw Õju+œ=Óq$!1ö÷Dר 0Ú’Nz›l UH¼´ùÑÚß{ѧÕòFü“ÆfNsWeM\€ü‘.·{KÏÎMû;6’Ýeëïu‡æ]7m3~¥¤% Çßåçe1£ ¹a+b‚P(0ΈÎúúÈ;Þâ?˜ø‚²‘wŽ™ØH IDATÞUÃÄ¡ð}À‡¥ˆÇUG^~5x^.‚†*ÉŒÈxªÇÁ©Å æ$MT‘* ,Âj-J0'#"qjØ•–‘ ñ(ªWpAvdľ½Åù³ó£Ñ#»ˆV¦´˜®kl“W Þºªïí-˜µNù‘þéÄ>FË•Ö/½Ñ&PÒOu¹][Š©„ßÝ>œIìîØ ìÚ¿’„ò)R »Óá¾.nǸ5^d®ý$!Ð(Flv’Ý}o´“]C·èón¤¡Z^»’×®`áº#Wx,Ÿ'Дbä%Ôl}‚÷›õÞeë”RÊ#8û¾íìje3–N m1±ed[[±³šµ²bù-å·~m×nô’Íš%PJùÅér€ "ä$]››Ü ø¦Iúº3T+ã¡(dq„“:ÍîèÍ?|8úg«¼åµž!UçéSJp”UÚ–;†E}Qƒ8D ×ä<ƒ&\ٛŮa±¢Œ!b6,Èᜂ†¢‡LŽ6…14$0¢*ôd*©bAâK(F-"=©Ê ôŠ…Å¡Ùl`ïà¢W0«F1Ké!ÉЂ“’«w /Øà>ùÏÖŠ?‘©Nj—Ï®qº–¬ÌÒÐÄ'´2§s³HwS 'Ñ.R 7±EÔ†šVY‘ÚÐ…7ñƆ…—<÷WÍîà~«aµR§×Mœ)ŽÚ£ÆÐ½»Ý®Y¤¤/A!a5®±g!¶|ƒÎ ok[1Ù•:øÿF^øŠ3Ò­Ï»‘×® ¡:cþMGÝ‚#|¦Gº¬“°×ÒÐ'¿ÛÚVª{:² QróȹuÌEåkït5­UŸ“™b„OƱqÆRÀËqd·µe;7g·m*‘¶nù¡ï1¢u¨fpͼðyù«ëDë5"?L4‹MYg|!ŠBÕ$Š;Be#U‘ÚÖéˆ/S!ˆÉsƒF¾“ ï«7{;»²ý&óÁUzY…›Vº$¬€ÒdÔäÉAw§X\Å9ƒ)Å¡¤"6µˆçõ‹ !Ÿ*"g[Ì-úÃ9brÕ“öbóú³J ‘pCi¤ ªÜ&†+"@† _Dq(_¡Èá½ÄˆënVj¡Ç`UJ`R8ì Ðh£ep™ Jå»T Œ³ôtÍtmén·«]¤»ƒ³VÑz+R[yÑF´6Ô4ºt¡£6¿Ph¹xÃŽçÿ;ºú3þH'5ÂSáiI¥E“nn[r矠D¿1í,0êó B]¶Ô^9j?ômm9°ÙI¼Ý÷óÛi°†×­äµ+xíʉÆöè =™±mk8ø›o–ªÆj±ÆÓ~ (?Fxeunÿ©¹è6å&®W8JZ€˜G“¶ØÙî$¶”-½1ÖxAËŸþÜˆÔ šA!”ùRẫ>ÿèÿ~mCݧŸòSÝ„2jÅŽºü±©“Œñ}*y|£‡· m}¾swÿê…¡š²º×÷Ä“Â2TÚÎõé…ÃÊMQ-Û>â{oªµÍfm¹“ï“)Y—æó’2aÉ@Aõ¤q¡QTHäáhB³ •ÈÉ*ôeÕDY„B&\°œd\Q†dA!pÒPÈ+ø$ï)I¶Ð׋´Üp¾¥1cÓA¤;¨ï2-HÍ åQM~Ä ™¥;Ãè ÌY»awÇ‹æ’@ ãhG;¿­ ÀÈö6éZ>k…>ç¢Ð-gÄF‹æ—èJFO`\aNx WÝñî/ro7ª)/)%0gˆú ,=³鄎ᳯ@€èò ±åÁÒÿƒâpWêà–‘›Sgâ<µuìxæ¡ø¿€h#C‡Jù ”Ì ŠŽ¾9g3ÁšQ¦Ûãã­Î¥Š]íCÛÚ&ö¢Ðšµ#„«ß ¥”‚‚€Ê¹4\µê¢›ïÚö«/•_wŸ—ìÔ› bóá§ÊObVåxÓÛí™[{~³5PP{‡ÈÚ›†ª«ùÛû´Áœã‰¼ãœ¬ëúª(ñ»C‚À[V§Å ×utå ’Ë*‡S¡OÓb\xBꕽéj`Ž¢#\62,¨«j,6(D¶ˆA*CŠÀpZQ1‹p³ðƒ,Ü$0TWFëNøKZÜ¥uîÖ®A“T8Jú ºä¶d6˜Ê $¤?*¥Ô üüS€³^¼cû÷Aug÷Ï=3âílPؾ @Ù²h¸èCND×1ÃúÈ›ÀD*ç¬yåÛU·|Ç>@ФAŽXcÜרYÀŒÏ¢§ŒU GÒBá†èò†ŸOßyÖŒ`ö•i¼•j–m82sP)B<(_)ªFm£9¨—ÏKqÓ)&¯a~.a:Ûxe³ lÉ¢@™1ôãÛ!³R‹=}ò{ôÞ¾>pe»m·è‘YN•.Áà8ÈéxµË§¾4„r ® 1H‚ÅÈ@—wðÙ‘\n½Œ›¡ê‹nP~ûŒçŒèzB}¬ýäÿó×—ûÙ~¬T^a* L1°w³U½¥ò CÞÇ Î§ï<³h_q[dz…V~Æ>`T/žè"J)!R‘©®AF .¼òÖç^}‘0ÃÝÿt¾ÿÂŽMÁÆ‹B³V”/ÿ@ùïwôkš9FZrúÎX© ó²?|äé/4çCUvëÕÒISʦ# E€X|èýW_0¿?3 t¼öÛ-ùξ0'ŽP–…Þ"¾õËܧ/3ëʽ‚ ?/•C‚RYN˜RÝCª"@9—^ŽO8!š’¶ê#W¤œQ&ýŒ)•DWð•B’ç¿(RÐ\’óUÀ‚­ rJú.(Jª`˜x®r=¸lešj(‰=Û³…:P_J€)‡ºêŽ7EŒ˜b&!”ªr¢œát QpŠÝ/=Q¶ìæšËþÐŒ5há*ª[£A+r”%|.p|jWâu™w­ýœôòTLòºÄÇŒÀ›Ã~áç*C=Mç9up³H¼½ïg¿@FŒš¥J %œ±d©˜„·RìdBg`½Ý ç݇YÿV»fAdáe•Ÿü6! c¤!ä$Ë[œ\¼‹þî…'þï%zY‹t“z¼…Zå„8Qšç¬¡”?G´q|ó[ÏöÒëW-¸i~SŠßÿë߉,”©ÀÂÑãâ‘öâúYºÍÜr`ÈSŽ A(C©¼„ªà)âAe}( x„˜v”GDÖø¶R Ä÷‘. O€ú°A””ðsªh@×Á4xP¾DÑ‘ pŠÈ+È"|E”¦yE3O1¦T ~Žº)îgÒ| 3„T3 ã£çpn'àK(=\ßиmÓF|¡Ÿé‡ò!…> @é™Ú'!´Ðñ²ŸNhÑY”pµìjëÍ|¸v0—Y¿øB7»û;ûÕHÖ1¢à) çÀÉÉ*›Û Y•vAÄñ Ñ8u¥ñàIH¥XÑWާ|IÒŠè J¡ á(¸.)º( P04yAò@ €0J%ˆç)EOï'!q‘xí»Õ_u§­g3„édúË¿¹<ùâ7c—}Þ>¤—·=8ÕRJ[CC”üê ë„çÖ_ùyÂtf‡É©W”"¤dZ÷†¸¹žâHW¡o”y¡„‚”T·˜åFˆpÎCL3…þÃ"ïøéŽƒA'>{NkSEƒ=¨Ì2+D¢u+r¨ë=œI uPdf”hBOë(¿¥Ž ¼¿eà³7}nh¤ðNïž¾þT.忆lÝX:çÂ>÷à­ð•}ÜUcÊ8 ð%pØQÅ!#„@)(@B¨ÒM± @à+pд’JºRdS„Ç+Ù`³rÔDjÀ FU&#£A3÷‹ié î0ÒµË èÌñá¸*dÝ}Þü†È­·™ïné‹ÇDãÅé^üßÿ·+sØ3=dL#~žøy"]¥ÔÙÙ¼–†Ý¿|ЮY¨]¬Gj'±ÖZ R)E  QŽOš/¾õ±|’ôòlò¦èŒ˜¡£½-2gJðÔ+AÎE¸zõÊO|ýµŸ|ѨYb·^-‹JÙYVº9½AÌàØò¯‹ÉîEü¤®2ã DÓÑŒ:–J%´0°ó—=Ïÿ[q¤ËÏIÏQ’R-D˜”^Z Q²› i!ð=øJ Ná+x"§Ù…ƒV°0œàU õx o Õ4EꛂfÀõYaTx´‚«À‚Ç.@8öh”pE¾ßKvø¹„Us16–>÷û~üÏÏ~yïþ~øW_]\5/¹tîÞ®ž”ÈÛÁ` Nå½ït%ì+ª2€Sè@J‚y€5ºæº^”Ø 2 ؆ ØXÔ²hÚ¸l¥µ­=£t”×Þz#7oQ4Ñ•cð._gTÕÐw^+|êö€3TØùÖÞ¢Äð=OÛñ–cdëzx¯o‡íÐmÏ I3¦sK%‡üª¸õö ó W|˜^1¨ wzõKs+R{/Xþß­…ßm ¥úcšÓÁ™].e^IŸPv¦)tKC™H¼òë‡Z?úmL·©6ÉqD "•-U>)ú°kVWÎY•?ð\)!<‰‚<Ž1ÑÉà¾Í ‹o0¹Nöé#ç¡jÝM{Ûýê˵Ÿ\ €3Æ(?ií‚Rxãl NFÐáîØÔóz[Óÿ ‡«ŒhÑLJõŒ~„oGŒ½ôÖ/رy+dIJ© ’惖²jJƒ¤p¢„蜆Œˆa!óŽãJI™ifbÑ%C‡^••ñœŸN ‡¢!ŸÚV ®%\µ¬sçV®Â<\ã ̈Œ'”ô•—ù~?Ûëg;«kÅW,ÐÕàáb"™'ÞÞÆæÔü…;(å=Ï<ý‘å+jËåeZ¦§$ ¹w_ý·{Ó³Ê6Á@am#›3[ÕU«æÙÆP¿èSÖe¡·~y¸¦VkhDï!ç²ëÊ:÷¥çIƒ²í/:WÄ^ïîxÙyß„÷¾ìŒ8­+ôáB(·ùÂಹ$@ Õ«©eA '/TH.\K’].¨­ þPÖ;È«êIt!é{¹PeЊV±šƒ›Bª¬›õË/ä£Ü[³VÍmÊßviÙo^zùíØöÎO T3Z«±@õ‰5mR”ò›Ç»–†®Ím¥áK*5–Uïª<®3=¦­`,­EÆÂ㎖‹o}õG_,)…éÉÕ~g @c%º{Ü„ž”]Ÿ)„DÎŲ?|¤osߟ©ûô/üT¡üXÝ@ J‚žqpA/ñôw7Fç]›µ®bFh:!žúXŸÚûO~™+äSg•’I)…t2ÒÍ€RB@”ëCR:¨¥×˜d¶%Ó•Š]XÉÃL%’¬KAz¼ÚæJ—®ÉÓsç t¿«Z ÷°¯H¨/7›ÝÁj®ýà‡>ÿ•ÞÃì·Ï¼”<¸“±(³ã„réd~X8ƒB –¥4Ó¹{WkÙŠýó{ ®|s _Ë;sË£A¥Šå΄Z¹²géÉBÑr~õÄÖœ@ÍçøóÛÐØˆ=ïâÚ÷Ù}2Ê%ë®7ÞnO…*XëûÈ|AÜe×Fö¼êT¼tXÔDõ}/æXù¤;Òí‡ãÈg½¢ï\ÚÄ„IÀt/™PZ‹Q%}d‡E$À]×/ö++®yÂUCÄË1J¯bÃíþPÊ-¯Õ|U¹8EU¿œSéQÉR)Qò«X^:^“­^«mX;¸m_Ï–®‘WïßÑ­•-Ðâ,\N6ÓÆ$48¦rÁar¼ý«£Ko`–7O°Ÿ•T¾’>”$T#”Õ &´UšK@ÈñêB ™˜Ö"@ÑGõ•wžz°°ÿ¹Ð²Û¤—§FhRµ¬üš{L t_[*9™³Îˆ5p+Jf¨¬l©ç\zņmOþ£7|Àn½ZSTœ tðh˜ê,#·å2ñÂ}ë7çýÞ¿Ð#5Ì»7B¤÷?´û±/û”ëB@#„QRŠR¢QnRͨª0çFx€ÕÆÍU1ýR‹. Ê–¬ª~sÀŸeºaׯ„¨pF£`{™rªêõbM®¿ÂɉÁ>>Ò!Ãñì°ýîñâ«W­jºñ+V_º:l[®9TVg®YTÑÚVóÆÙ5sš-_Ò8÷‚Aß/*¹zö¬%‘pØBÜd«ª×ÔW.-¯šUê!P“Y1#”UUwï7›MwãjÌ+Ç'n7Ýa aÉ*£¿Ó­Y åòrïf_)4ÔùÖeæP—·ý5ÑrY<±#Sté¬KhqÀÏö;­KôT—(¤üæUúÐAß²õÊd¨×7 ^]Ž®FIE<ä…+ ³iÇ»~U#÷ò2Ý/ã,yÐW.•Jé!jÅY÷¾H“Êy\ù>·¥¢™^aGµBAøyaD©nx!۳ܼ9ù “k[’³bn¾3Ù?˜Ê€€æ¸×C%„zlݯŽÜ«öí|±é†¿`DëÉXªEA(åQx RII)?I² ’PŠŒ‹ðçðÄWég œ€ç‰-‡–~XSÔŠOJAlV~Í=¶†â¾ßdÒÉЬ•Z°‚[çZ«ö\Pʵ4´,Üû¿Í6j–ÈB’™¡cìRzN85Å8LްÝ|6Û`î'~ÀŒ YÖt²«ÙûÈžM_ñÒJ G ¡<_ù„€Ó`šÎ‚¦iZzÀn®´¯¯`ׯ±4¨š5Ä}©å]åyÄ÷ Í/º?S,3œ˜ífrEQ,DÜ|kÄa#)•åÌ5i!JŠ#ŽŸÌ(.”%äðÛ_Ýô“ŽöÇ,÷Í‹/Œ~úêë>¼¤výܲëTßtQë¢å­‹æ´4WF–5×]±|Ù¬òr®!Æ´j;T‰ê„IE%!’sP:!L’ΡܬÐË¿FdAæR¨›Gú…“&Ë`V’žý¢¬R—ð;ÞvËlÁ„Á©Tø„€S¸TYU”t„bz^ú¦¦eÔá¾PÄ sW"CC6«¤P‹†¤“RFˆø‚Œwíð…Çky÷»ž)™]N<v-IvŠÞm¤ºÕ’®'„™[ e¡œ:%…ŒUinpQõÀ•s¯™3D‹Ý‡öÎ%s‚p}Ô§=®ô—F6±¯í®Ðükµ‹Í²Ù<`ÙIÊg”JE(å为Æ’¡bL®DO?¡€xÂ=Oý£Y¿’+©œ”õ(Yù5÷„ ô>÷^µÈ,kÒÃU“—;SøÁš…šHw=ûÙ°š‡ªÓ ׎riFŒgÌ^"d"ýòƒûóPãu_Ö-1bõš9vWJâïî{íÙDÒw‡AYš[%©¯S¦k!ëÆ9öG[fׯ‡–wŠqϳý"çz„4 !}OyqT€(ƒa /O"ïG"(1’‡“ƒçÃÂ, ­LæH×þäŽÍZé±çÿzVË.½pi¹´ZêβiÜ6k‚æ¼€5×¶ãL#JJ3³(ÓÁtÂǧ)ÀÖùÍ×]S·dþîm3¶æRõæV¬A$ÆÛE.­F“N¶O•…Ø@—ÌzrÁåU;_)«äÁ òêãnó‘Š%d÷Ë^8Â+Zøž×܆…!§¨v¿Z˜{±­éÃB)UU®½û¢WÙPÒý25»vyš¥Gª´Î-®òhãæ=S£™´QŒ‰—Š…C*RÏ}*(|0’Pñ(‘†H+ª¹‹0‹¸)ˆBU4s{—õ]<·¯Ìèì;Ü9Ø?¢\—š&9nÁဎÀ`ûžg¾W~õh0–¾ª ¤¥!ü$i5Ú€Ñïœ6…‚ŒŒì|zdßËÁ”…$³ËνÚ9«ºöž°‰·¿¿±ñ_ Gjét-uq2(@JT/YŸÜñôÐ;ÿc·\ `¢ºã¬A€ ³¿ýµï~¼bÅG«VnÔ#5š=ÛO£2ð»‰7_,N€ÐÑ' 7C‹›‚ËÊø<›4¹Î"æÎ¶Š¤Ë ¤ëаŽP :ç<ï«TQ%óÈA5å}9x(U“@!ÍHÎ ™ ¢a¢@UÒSƒ’¤’Ë#Ñãÿî—/oÝößuv¤®.¨E9!F¢„è ¥ATA)H¢F'_«Ò8A”RžT ÕKžÚîþ×Ï^¸d¾ª­Áö§¡ —^IoGoGqùŠÀ@‡çsoþ*ëàN7Ô #.,ÓçT×°®ŽH‰x ¹Qì“‘Ô'p=Z”E¬ÞÖmºóU/ReCj¶#=ýªz]Hå8$bCÞ`ܧ»^ð¥b =?à¦,iÞQV\Þã³òZ;Ÿt©ÊVƒP™é¡2žÏ!Ÿ¦J)Q ‘râ{BãÂ0FZ*ç„úV—ž]644Ü“è†OˆnÒ±@Ѹxì[nZeÄgiè±m‰B8íœpøÿZI“GNX)á”Í­ w'Ž(úEWÂU1“š2®*Z,¨ † W‡RÏU¾‡¼ i‡ôePt"…%ºE Je‹È@|Œ¸È3„ˉ`V gãÿ÷Þa²]Õ½ào‡“*WWçtû欫«Œˆð!„ƒá‡Ç{ög{ÆiÆfl?<Æ~ƒ=óœ=¶çÓ€øÉ˜dr ,¡t“îí{;wuW®:uòÞ{Í-a"^a¯¯ÿéSç«úºk¯½×Yë•dzº÷á÷|üÁ»ÿfíÜGÜReræ0#gœ?…ýa LCf‡*­ˆ H‚ˆ3–1c¯xå‹åñ¢,[þØ#½5ø>Ÿ›’õ‹FpÌLæWI´Oq‡LÃôëÑî…'>T¸em=ª²„Êž»ùpõa†lé‹©ãðÜ”èÔµé‘íò Ñ3GÆù¬ÉL´7³\‰wÏ›•ûÕè‚- ß8•zù ƒKØx@ç'$#úªPæ°t€[:ÓHXR$©öa;FJDzlІ*͸ Θö\ÆTVð‚"ï\½¯qãÌV¶Ævw.¤›³¾ÞØõªßNÞ)Oóovel+ÂØ·…Ü1ö5Jø÷ä1†¼‘éõ¯üMùÞÜuÌò¸u¹6FbîoÏ.}¦»½ZÞ‹;²Kzß´3ý…2°så½Çn8÷±ß5ÉÐÛuƒ‰zÂ)|÷Mrö´BÕŽHU5‡ýcì‹¿÷ª [_¸ý7íâ¸7ºG¸ßLÑ4ÓóOþÓol?rЧW ¹i•¢ÐK¢Ž(‰UšéP— Ls“¦ˆR$šF Ò’¼ãëDcàçÌ–¦”H¤àÚÐÔ,;pÀmuõÆQ߇!2‚¨#“ìp£ˆ€nÑ\w-3o;t[k¿ûŸ?Øç÷¿òf×­cç;g¬bš1"ó”˜ãŒebÌ&Š€›LîºñÕ_n>þ¥Ï¸u‡Ðh±ç¶·¯|â· ^lÇíòä7–ÿÖ¡µ½7¤³›wýIþðí``ÒáÒ~¦XÌ·JÚ`ñ³õO¿kýÿÚ}ð½<îN]õš+^÷Î Ÿþ£ñkÞ(¢;2ÿ¬»­Û>ýÁιƒ8ƒE0èæøŸ(eýnâxÊ®cs¥h8Ä0„ÒȘ1l«C ç1§Â ±=0mŸ’„ ¢É2³-1ä襴´œ…1ËS*ãrzŒÏ˜ÑqYÊÁ1¤z‡8q½Ø7gNœ´íHµ6v 7lc™åJìè^ÆxÃ/ÿü®½'Í@Œ„#Nô”X Ó‚H™,Ò!c:ËÔ0J–UWx6kùñÜtâÖŸú‰wü—?Ê–£É[]F:H¥<–¯ÈÕs†ÈzâTÚóIryñ’Ö6UgÄâyŪRy¸ôHVžr´0›ç(o£4Î ×sרkº¾F<j`x—²6An˜W‘îÍ,aUæ¬A#-Ž8õóiP¦µ¬M$´!kÄ@`ëqr«Òõ°ý°¶‹AÇTf¸‰©»¥Gd–š45…); U¡Bšcq‹¸ŽÉª’Œƒœj_93tdú…Ï|ÞÈjíèËê.+_ýž¦¤d4Ì)оCÙüõÞËφðÜB£Å¾Ûßþ%!]fìv]ÿºµ¯üUÿ‰•N¾Ù$>·årÈ;,c³EiŠ•‹”1ìš ÇŽî±^ôkß~=³—öí23I]z\UF,¯ §ÃGÙu7pšs€G(\uÍÉ«^Ð7ÚãB<Åf¥Ìdq–(2I–…ij„H”66·¤t¥c Ëh"¥ÌÚv«+íÑjõЋ^û‘Ï|âÒé^/bŽ‹&ƪ{­vO·Û4µ×¢L7Úzþ˜;ô5er|«Še œÉUÏâ­u%\pƒÕ»Mw㻤&=:cw6uk‘ÖÏ븇¤mc^ Þ¤ò¾ô¸æv]ew–³p… ·ŒWdUE y‹2M)Q‚v„%iÒù-ø XÂ꯫~^Žû[Z8BÚ¢sQÛEÁ,Ê:¤BT+©È:³9ŸuÏ®˜ãн±™ýÞ– ÑF§D„ož-?s¥ÒSIþr˜S£åSý]wæê§çIù¯ý{qàš—mž»wäØmÿ:$¤ï#¾ݱ”?ør“Â-\ñ“vþJ§PãÒ–Ë„äŒMŽ•ûäŸ^ù:õe~äY6,=|ò£¿,¶Ÿê<ƒ“,'Ø#l‚1"ms¾= Í´ æäy˜PgWs¡Èå§^Œa‚nYBžÅ¬Å6«÷ÐîR”r?01çSbï«23:ok-7¤ kjE§}ÁœyXÛžsÝë+²ZR—FÄü‚l,gE—Zu4ë¸G_òòë®>i“ !‰RÄ:µ¹-¤àLÚÒÕÐ ,g»J+Îy’Œk?ð5@œlÎa¶ÿðìì|õ³ÿðQ›x@Œcq›—´RøTpùVÃôRLæº-µÝÊ*“vkIA³òˆµr*Ÿâä‡ÌRô›Æó "¶µd¤Ò X »®’Í%í·E7²=ÞÛÒLñ¹Ãrõñ¬Ó0¹i–¦¼±jT—¦w‹xHu3vÈ–i^¢‰ãî`˜õ×hþ„­™î¯éÜ„Ä&ék·,»Ûšk*•9ŒÑÒŽ€QàÐA³»kT?ðòÞÅ÷l-9^½Ÿ3S]¸váªW—_û¯º£é>CìæëÈ€©Fnú†J¥lžÎO5iøÍT2.P(‰ÞÎ>f”’1›n•e© ‚E=(›¹"…ÍŠ0“ÌM‹õŽÞn˜šÃ\N³U)µÔaM½eš˜ñ›FŒkk¡i~‚)ÎdY}2 ÍÏK×Ó2C)çn¶Æø}_ ozílù°6Ë_ÉfŽ:Þ’ ²v9.<ˆë_‰ÐÇ´¹£û¸œ) %m 81ÊRåƒr±ø'ï*“ôúýÚèØÚæ–ã93S«›ëÓã“®[]?W²·—ú·¾úÇÏÿæcøÏ¿/;|NšuÌ 1°-¬·³±9‹µ³ÍíÐvu¯‹íe52eei¦Ah¬ß…ŽÒ™2?ÁCBèРÕD}…ÈÐÞ“îô•Qýœ6.«†3x<Õ´Dv†w1y­Ð 8£¹«Åà‚n.©æ²ÉðgDkƒbë±P¥Z§Yâ£[‡Ë œ ¼{"aÞ~ùjl^ÆŽJz0`Èçß5£ñéÛfÓ/eÍ'6É]nuÎÎÏJç»°˜Û!Ÿ1ìf¿ý­ßÍbi{Áë>ù—¿:|âN¢8åízÞ3o¥wþúg^q箳*³ßüVråþ;‹óW•ü IHdR“E:tQ¸°™°¸åqÛá¶ËØ·Û>ÂãW¾îù¯û…»ïüÝà¡÷§ìºú‡F^û¹Ú<¾mÒ~C¤ ŸÿºS~1?}Ôdeá7ÌâL'qÄA LÃQHÑ0PÒ¸Bf0®$ ZXŒ•Y×7®FmœÍר&§Õ.9=V‰t±$ ®ª¸U±éf;p&ªÚ2<Š´¨˜êéÀ¸ê)x8Èfw9–˜; ÷¢vk|ÊÁ\~õñ¸µ¼eìü—{í3tò¥•¾·÷ðç`6ð£?ŒƒûGÀË‹KÏí¨¥ÏTD¾ëI7ï ~>—·]9 º33ã=¿·ÞXi4›Š²íŽŸË»bètÝ³ç¾ø…xß* Ss(9,ÌŒ³úY„b«ÈçÕÄë…dfnÞÚª#±˜œbÖˆð7²‚=äÑôÕì‚°rZ%*ŽEøÜŸÓGxƒ1K1“±GÑ߆pÑ¿¨K³‚÷93¤€éy{ë¡0 á•E’ê­FbWEéNÍìvüÅøÂ–Z¸ÉCmŸ7Âæ©2<%ËCk͈”\Chh¤1¼  úl#¬w»áöKŽ¿¿½ïÔ“«^a)¿o¿S<ää§¾½ "û†ö·=ZŸ&™~7‘i”Ææj_xð5ïôFæˆLùÁgÞuÖ»‹zæ•­O½-în<óŠ;w,ÏÊæ…ûj×þ{“ P$$2Z‡YÐRÃV5$ó-'×ÃÁв=ciWˆŠ´ªVqTæ«Â*>ë?Trˆ2ÚõŸž¾æõneÊ)M Ûýn’ö™‘(,¼ä¿ø^{æ–ŸKzÜÎYÒ{棒`X÷ RØ€ƒc“v1çx°0Öœ 5qW$§ˆ^½f]ׯx¥¤™ÍVë´2DÞèù)17cšF$X¦3•i‰Ø0냻ܓ70[ªî’nm˜¼•Û˜\(ÜóÑÞþºóØ]áàtâGÉþ“îÊyºtßÀ+ç–Îõæ6ÒcÇqéq!úÖ¯yäÇÞø‚™0Ò,-–ˆ¨µÝ*WJ®ëlÔës3³ívÓ²øpu{­ù™ÙæÆZ¡\U: û¶ã¦ r\S›’ÁÕ?òã7þò¡G¾|ïÇ?øßŽ…hõȪ Ç0ê˜Ê>°Åš3Á’Ø7ÝH;e°ÐôêT˜¥\MÄM­" ÍÔ(Ïúèô0R¹IuH¶raY;ÛÏaæyNVÂÒ=I¼uÞd==¶‡E@=L-qj £VšjÝEÑó¶6†J`³•u»`9øMÖGl01eû+qÜU¶BoˆÙÈn¾õ¨.xt0Rcêö p6[xý»8q §æþ5ý¿¼ûÃíî+m©ê·´[Úß>ü\V !Ó‘àÌyµ]ø+ø[m‹÷ÅÝu¡bäØm\:îèîˆR%í¸})èžóœº´6™X¯–Ú{¦œ+Ž«a¡yN‹ÉŽàƒ^}Y÷‡&‹`48çB~í/ýÇï<ÿÀ?ï}é/y#³Nq\zŧvÇïEŒÁáèÁÖÒù©#Âñ¤[|æ7w¶Ö>ýL BAâö)ܸPâ9nTjsÀhÆ#pBÙ’Âf€‚’ÊP¬ZpX[Q;@4ËxÜ'i€f—ÍŽ[&Ôñã… ™»;]_ѳWVÎ #Žq( Íôî³ó%óîÊ¥lkÝØäæFì~3;zÂò¼äfÓed1¶º¸¢òÒ[÷¾d¤¥YÒhÕ+åB·×MÂŒÛÒÚvDš$\²4Ë”ÒRÊL›f§eçrù`˜FQ@iÔñù®Ã×]yòê/y™Ü]þòǾР‘úà[쪱ÙuzHµ™±–ÏkÉ™-±²Eƒçä·@ž°ÇY,©×1žw˜ß§~¹ËlJ=ÈZ›ÔZAÔä•&H„ÈGw~‡!‰À- šD±8K†úd•áM [gR©è5cD6Ôƒ6 |8„`›²-t·ûhwqú>Ç7‰ŠW¼òÍoz 3J±wT¾îe‡ŸôÝ3Ÿþ ‰w%c®¹5¼cí³ëO>T;x‹U¨}{öÁ·z2v«³…é#@a×ÕvyÚ®Ì<÷C`¢¸·‚àt©°œ/Ö§ký‘\*“n5¯þÀþ™Š].b¢&æÊN&f£Û]ŽÃ­lÐ2Qȸ´8“¬~ÿ}÷¶ãÿþ¹nuF^ž Ùähé±ýÉÈñWª¨oåGŸje±Îùè<ñ)fv)¸Íp´ ‹1Ë+3¤qË"áR(Í2C£e–ϱµ­d|8Ôž·Äz„H°ü]wÒB¨ó5Q¡#{<ÝÍVO§ŒÙÝEq”WÊb}-wÃŒ÷W²#W”.>·Ûtâyùѹq6œŸ²‰6ÏDzú©†Ã2Íòî­·½1Œâ’zk+I£4ÉJÅ|ú‚s@­olŽO¬××,ËÊ’p­¾‘/Tv›ÍÚxµÛøý†meqª“8)‹Äº]ßÊŃíåÓ­NØÍŒ,VhlÓÊ*z=>õ}ò…e‚•GÙÌr`—3Oµ)·"Ä1’Œs€ÅÒ”ª“–µƒ5.ò@S™s*hJÂ0ƒE€`Ð=¨:€“ãù1?)ÜI±Ý0Z!èR؇[rlÐ'¦)W³¶×´£xß§A\B9P¶6ñ¥ÇpѰEÅO-’ŸÉWüØOç88D(Úüökfó3óŸüì#¦‘ç‰ ãÒå?WñoÏ“~W~þÚÜè‚]“î÷Ïj¥Ñ™ ½^=ð"€dîÙPÁ— &]‘êlÚ0hžRY§6Y»âà!›‰vOOŸØwÔö¼›N^spzª6Z}Ýó_R—nÎwò™ÑIgõ’ 7gJzûS¿sû±7ÿ‘å½ÑëòøRšàÌnÞÿ>ä§ìÒ¸tKÂÙéãÛ~ôü峌I0¢}LÙ©IcÅ-2©1 ÏæaŒÞ¢~BÄDÁcC¢žaÍ€¤dÉ•¢Á6ª\ÎÎó#û-¾mžOeÞ®Mš‰}¢8i©L~õËÑõ7Ãí©¨Õ¬³÷†Rf'nu—¿š4/é‚Ƕ6•kYž afLÒÇ…STª0?£Ó6Tåæ7¼9LYÔKÂh¤Víw»ÅB¾T,­onpÁãÄ—RRŒCé¤7è‰?R«†QèƒéÙI•¦D(׊Iv»[‚EBòÎ0=ñÃo|Ñ/üʧNï\\“,4ˆ$b†^ŠœEåQø T‚Ýã2êQ¿OùV(‰^] 7Á4¶ìL<¤|…»Œ÷T,pi³Öº)U¸4¬×¡ÌaÆbBñaF ƒ€(°,eñÌfeGfcÞÝÐB'° Œ;¦¶ˆ…°=ÙÚΘôX·OA„PÃ\º„»ñ¡n¢¯i½o—'oû?u»EçluÝÑk®¿ò¬ûO“;3‚;\¸ÿ BN­Gîdù±Üè‚Szù}?!ÞðÎ?üï.Ì_íŽÌs;'ìç²0YÄôº0›yÙtó3.E¡\.WʵÝ3 ÒvöNìÍeý{îù„¥«‹Þ{ßGn8ppl2*çâÃW¼áƛ¬©ü _ùËŸ›¿ù?'÷¹£ –W¹|Ù7ÎàÑ`íÌ=Å…k…–ËøŽÂ*k>üOÁÚi€NÖø›öØ»<-™3'–HÆ2Ć`ñNŠz­Àx6ÏU -n8˜¹RŒ”õÌ$?°‹yyÚ¸¨·.dÓ{sÃH%©®ÕÊ[›a©ä)žNî‹„•ç‘»’}GJFÈKg¢jAêžä\H‹¢¡± 2_µ{$é4(†h (LÐL°—oúñ·WrmfâПžžZ]]B´û-ct0ì4[ë9×[Y]´®ÒáÚÒR–Å]¿·]ß¶ÑéúÛÍ.#]_]^Y[œU±YßÚŒ†I~l×+ög/,~òñsÜBƒÈi A¯.0LM0„N¡»0aF<iÃæ&Ö`F£ÊAp¦gàŠ> ‡[ã~`2 7â:C®&M‰M`H{µAtÌ´‚=Â+svgSÇMh€8"ß(B–¡“gC¬õðh_‰Ð/Û7½ü—ïøÑ?¹ùö_úåw¾ywQ §I¼œ1chï¨÷“¯8±žŒ<üÀ¢é. GCØ\x?PJ|ÞFó«O'pyR|+4þw’ÏÜ0uðúíûþº¼ï¦¤³Â­ÜsVH‘ÎâØª–v—ƨYTÃR.— {|n,ÞÜœËÿá{ÞñÞwý¹¿ù/^쿇wÛœJ¡:=»ëÐUÕñ}+g¾tÅk^£‰(Ýñˆ´s—…{ª•õWöô-?›ô6…[’OCR‰ lÎ3»âê=UÃ2ÞOÑñ  ÎBƒ:D1OÅ"(\èolë±×ÜøŠ is`oÁˆ5Ë[oF'®·™C–EU^XÞQãµ;Ó‘nñ½GíOž÷§w9sGõÒÅhÏqQY÷~4ššw…I» Î ;ý@T›ÊIÃS#ÌñÙVÏp  wqåÂÚÚÔÔ¤±ßíª$í÷»ZÇÝN=çðæöV¥TèöV[íŽc‰$É À…ÒIJY<ì´{}?5ä:SùòD…_7¼èœZçŸP‹§v—/.Ì­,ר:@d«! ‘ PKÑi#i˜Ü7’Z}²jÂ*iˆ8¤‚‹±zSÀXÏ×Êf ‘ˆ$iÅx² ²¾¤òÎ\d:µ‘zH9ã©‘yºMšƒ• òH°…,Í!m$ØLñ˜Bð“?õ ï}÷ï~ÝzdŒˆ1.8*¹üÞzå«o9ôG÷Èã§.ÎGù©+o‚zlß) 8ï½óy¿ò3.s§‡îxû‰ç½ì¾÷¿Ã­ívGw Ûã–÷œƒ1.m!«¡ïÊÕÃûæLæçç' þò×þÏ÷ýÞû?ü·w~åC_Lú™Ì[ÜæÌ¶˜L’b,’þVwõÑÇ/™b@*‰Â€q!,ïûÇ£?Ýʲuo{éT~ú˜pòÂÉíHOë$ÍíR­z jçSméD¥¤èjÊ–‘òlCoÆàŒæfÔŒM£JüÈqãñ2"dúÒ2õ#“Ij:xMñÌyÿæ—Ž™´_·¿’ ÛÔÜÈöðâ8Í|qøýù /=®÷«®ÔCí°,±Ÿ<—ºq쑇‚ZÍóÌ$43ˇ ëtÉ.`;FÝà¥?ñ“ó3S<î»E;M×.r¡{ƒ6ïtýÒH¡Õ÷ …ªfÂBË’í Û uµ6ÚK½ íäìN·›Rê•ÐÚ\ß8Z"ô“¸tky z«V±ðCïxçÄKßxÏ]_‰ýnc.ÇÚÄ0–GØEœ!á0Kz”À4, ¾XÁ.œõ;Èbø ©Ë¤ƒ¤Xƒ•¬0$’æ@™L#aÐÊ€sfÈqy™$#ˆ‰¯s#œ‚áLQNÂï" al¬†x$Ä)ƒäá]÷¿¿çO§G¼03P Ę!2Œè)Ùѧx–œï­Y¯¾q&7?ÿÙ/IÀçÂÚá'=·µ`(88óOïš{þp«—ûo;wJ–,Þõ×cW¿AÇéŸ;©>Æ¥måkMŸ¼ø¦£yþÖüK­c’8!&™aÂEP$ qÙOZ3K2Gƒ‹žê67Â\•%aC.·ÜËÙk&j…ÇþùÏjÇn{•å0Ć«Ï—ó³"¤þ ˜|•J%fˆm·Ñh›™YC§GÝz]=ZccÂόҗ”ÏHö² kFvç½túsð„sæ¡$ØDÚ‡ÊÐÜPÝÍÌ3ó Sv% †öþƒÖ©Ç‡[«tôxn{=JxÌ^¼˜À•­¾Úó¼\œéõ Ù»Ó׋+¨V¨¾ÆŒaƒ°çù7_yâøâ™¯NŒ”—–Îtzë‰ 6ÖëQÜÏTFÃÕÕ%)¬ÎÖVc{­Xɇ­$îûœõåµÀ‹ùüÚ¥Åns=Ô›«+:M+µêÖV=ê¤Víú°ÕåA<~øØ?óó§Îžë\¼ OA'0€ÇiÌ‚”+aå`Ó "C©À“Œr9^-ƒU`qH‡gCˆ ÒçÄËWX¤Á rãšÜ¬éI@p`•yQ0N²M–v)Š 8bX±®°dX(ì½ñmï»ëmÿåÎ{-Mɽ§±L;ŒK €1Ã{JòŒ}äÞÅßÏÇ?ø¾õ×ïKïÍeÍŽ?Œ‡¡2C£zŒËçð4–§ŸN`oä²¼âÐo' 6wøÒ—þF)•Ÿ>ƥ˥ûÜ>pÛ[9ÿÈÀ¿4V¤øsIg<­m  "† ຈyA”*5RBŽGÔiÇ[õæ°•¯º^Ív{0$ìÜ÷×9Ô¯:»ùÀûX~Ú.ŽK·¸ÓKp¼ñÞùÏ»ikDÜlÐ õ ‘¼(VIÅZ›–ê:g³’ÃÛœqi“^ao¸­<[K•&&!sí­Ö-¯ÌÏÍAùY¡`3i¦÷凊†½tt<×oÄSöÞ…b¥@—ì¦)i›·ûYe”÷;êô9-ÇØùE55*;=ºx&Ù5ãl´Ó$c-ŠSls²±¡löý¼öõçgYoèoýv«aÅqRÈç-bÙH­Üë%G±Rô‡q‚°ô»Ã„¹^¾˜÷ã¾á̶s1#ËçË•`ÐUi‡‰Ì÷C§` W†M'¼4=Uf8Ê•–L‡VâUØŽI`œÂ—P¬ZiC€`y¡À’>!%wÜ2†²š¨XàÚ‚ŠÁS’“90 ;Í@ׂG|è\è"ò&â6Sy"a„Dƒ—Á-dŠ#H± nÐR°_üÈ'~çÅûö•MŒ3&vȾ`OkÕcœˆ3–‚ýÈÛÿâ?þ†ÆWþ{®yWqùÞWÙ|Ùüö®|ÃKkÍ(l[îx£ÀsÓ ¶²³wv;ÍÚÁ[¼‘9Ë+_N®‰Cw¼ÝÜ|¹èàÉÏ¿·¼ÿÀ·ðÜÒ’¸Žç®,zôÜ7ÞvC˜ ºk-°Aqç€(¹ À$ûŽX‡Jê@ÕÔ,ìsðʽ¼¤hŒ™i1œˆ·W/,{•beÔ º,M…írñýÅ‚1WwÖÎÜ[Z¸NØÞN+‹ +ê\TÛ_ux’ź)V7ˆb¶0ŠÑ*¦”ËÓþ]tëÍÎÞiU±Ú+ªy6.{ôï^œÛ;M“xþ­ÅKgûWžÌEI's32ÛÖÈTk#›™°·Ï§½5t7úƒÍ¬P•ϧ*@ècy */7Úª0Æ”2µÉB® Ç“G®/¯ó·Ú†ˆE)lù «÷Á`°¾½ñcoû…¢gu«9+m¬. KämgsskcõIADZ“$,¥C  IDAT*U V# |!ã^sÝbr÷ìdg». 9ÂÔë+½aÏf¸µ™…!lÖíurÒ*»¥©“³ 7—ωkoºeïMGĤË=ÇíÐEVÖ„=èdq (ă``yL‚2ƒÌ " áåd–˜t»»È;H.`‹1›Ù6$Ržâ61‰‚ÉÀ4r) Jl±ªPúÀM?ûŽ_ÿ™78™N™°9 c;€‰œŒ1Â%Ÿ1à?}÷üÔkÇG“ý£Ö fø]ËNœÌö쬶o,Õ¯(¬Äý‹1ÓùR‰¸gÈ»ürÚ`³›çª¼ÅÊH¯|9U¤8tÇÛ±#asà†'?õGiè—v_¿CÙ{.¥9cVÅqÇ´¶âD¸æ:XÔÙØ$˜£¤ùœùÀ¯×^~4Ú_À G\'Ù¯þ°{ ¦®Þ#'¹©¶oÜ*j4'ÍA{,ž »K:'3ÆÒ(bŒ‹ï}ˆg®½÷Ï~tò†ŸÐ±/½Êζ•wê3ù¦iÔe8(ŨxК´[TtYÙ&‘±õe cn»—N,ˆAG[9«ÝSdÁ.‹Ô b*44£'ŽŽ,L©Áš´X²”øÈè¸áIJ ÆÚ:w¤´y¦$ DZ¸ïJ+FºS_uòŽ[­ [ ‘ébÀ¸Èå8— pbÜçÅ?4¤mÏõšÉ ´jEÈÌ”¬É+ޏé†Lä`&ŽOQY ƒh8ÈzC&) á+ØO•Q ᲌‚§ q É 99X#(d†cZPBÜA”" À9#œ&¬1@À[ÿô¿½òè~2&€ ”&!À(N ÆéÐOb’ ©ˆˆ¡öÚ·ýι÷ÿ)ž§ßx×_ y,” °’äU[Ìćž]ÏOݳrvE[ù¢´K—óHìY¸ð‘çů%0m™·ÏÔÏ|©rðE*ê^>®ƒqþõö­Üe¼dLž²Øøçû–´JŸ¿ýôž”*¸˜æ*|÷q6:Ϻm:w·–Ùu„[yÆ8,™f¦8"²®a¡™ð|³½ÅÓí,ñYÙ‰“t°r1noÆÝz2l*ÝÓ&4&yª}Ážj:þKĀɱòcÿãÚ±ÛT4ù¢N[0b˜p™ùE™AÚMÅ&bWEî;@‡ñûè-ÿink±»±í;Y]© {rå`å‚.Wr—žŒó«g¢aÃi¬¤Ë—Ôâ%íåcamY©iÒ;áÊr™°©—ÐÂžŠ "RÜ wØÄŒí×Ó×ö…NÁf¬AKqa1–[§p€Ô hcKãÈko;y|ï“Þ;Y«è¤»rñ’…(‰ýµÆFö¡£A?H"·T†Ã,¸: »í$ö£•õÞFKN×”‰ÕP)f É] :‹t¾àj®-rs^Þä5óty²-´Âí{?wÏ™¯œ½xvv÷Ÿ¿åM0‰» ¸u7¼B(—}áNºóàÿ}?þé øðç²O®sén6¾DcEröFWMа)[ãÌÎI'ÏÅ7×ÒÆ˜Œ™§ ÏgËçÅoH`m°3RZºçïkÇo×Q_¸åˬø9OÊn{¢ª`sÐx2 êZ‰HêsK_ýdÔj‘á€óé{|§VyÉËìõÕ¨³bºuÍ1¾‡—fy»G:O‡Heà #rG„]dcU¹ï(ë¯{F¶FϽêe/¼yßž[¼öy^ó¢«÷;&~kk½×ª·W¢ÆbÔX‰ÚëQk=j¯FáZâo&~Û•áÖÅòS-‹C0à-xÔç´Þ [i\(èW7îNçæÄVG¸ºÔl‡1§=J|*´ÓÒ£D½ªNYKÙæ¹A€ÚŒg’¬ÓS¹¼ôZ+Š&Ii04…ªÝö3"],ÈÞPÏ8I”EÆÀa¦'f\Æ´W¶rÙ6©$²9âTI Fc|ÊX]…>¡¸ãÞìM'íÕ0ªó ’¥Ã¡Ï(‚‰àÂò„ Èâ¡IŒNA‘‰“8 ¢d˜åçËl̵Œ’)£DH–Å H“í–s3³¥ÅsËŸÿЧîktêQwËß\éÝ ;f•ôC5Ìô UÍ08ß\¼çÂæjàûY˜©€ÁA‘Ÿè yÄ\j!¥íqñum-" “‚4€gõýa@ÁÁÝòæ¯~·2u™#Ûo< aáäËÎ|ôÝÜ«='¸ÎUÅÙZ_‰ê_xøóï Oõ'úË­Þÿùáù3ªßƒ´! Œ÷¹{[¯˜ºñAæDlíQã·õÄ‚˜8€Ú¬Wž³¢0Í4ÕF-’$9«/™]»E«aœ"¸ÆÍ6µºÔ<}ßßFú‰¹#S“…]5s^råîÞxòæ«\rÿ‘£»Z¨U ¥¢kIÝjl‡~/Ö™pj?ó_½ùcaoCDZ ƒÌoDþ–çö®?.5Þõ&ýò#Iu<=ú¢|ä'iêDJ7VÕä¬Ã¬tùüðšŽ\º"vê³o¡ÖØŒ)SÃÐDª¼ákƹfÔÍ %° ŸC¿•J[ Óã"óõ®9;m©çå¼Ü^O‹E¨”REœ˜yB„-B@YŠ$FFHŸæpyfOYn®&›\j¨Ó ·:¥E¿Ù¢L¸vÔï#Ó®ë¦I’EÚ+.ÚîØ¤M9mÀ-a$#‹Ç F:…QKzéß¹ï“˃Žþ–.OÇ8Ä4ÐÙùECw"¯“uø)yV0°S¸’I—1—´ÓaÖìiÛ¥ É8q2 ;σ” ‹Á2¿Þ:ù2;+¦sûYc.´Pγíâ™ãÿÇŸþ¡Pœg®ŽSe„adHqHä?¹üÄ©Õ÷Ýûèÿõÿå_ûeD=Ûf³šŽÇ*Ícmlàþ»ØAb±ú€²T0X¤Ø6©ÇÖõ\Ÿ;*¼±öþÒpÒµî}¤'°òa=Ó×0ÒŒà©ÖŽ*Ô×2èk(ŽÙçý(cì2Qøš½è×BÄ ×Üñ wÿÿZ9ø¢¤»Æ-Ox•ïûŒB¯ßÝÅdû±ÞÙÏp§ÌåŒmb¿TêÏ=ÍÀù‹šÝ g(}Àš¡wî³ýSŸÍÆ÷ÉÜhX­Jéñæ*µO§Æc#»yêŠó—Ô®veUõ—`«+ݰs÷>ñø^ôÖß™ÝýkœÃâêØ˜8\ËkÊ‚6PÚ@e ™¦XÁ»söÞ'>÷þC×.$nÙvÜ‚J‹rpx>´{͉›»SÓêÂ#Ñ^u½AcÍ?q²¶üÐöÚô½ÆëëÆ©¥¾2ýíÌ-âübs|]¼˜9à=öD§nÊMlXèÉ1ÙMt#L­I{˜™Ä$Cà›8­.%"³]^o¦$ô}¦|Ä:&׿RPƘË`˜Eàú)k_¦ã¥óxÛ7ˆ3•Jm”-™IÓ^¢9eƒX†õc˦8HB§™fÚ˜Ôx2§;q_dÒñl›JË\89¹rjûñWüîŽLÌ¿8ò}-,Æ*`™ à xëËùþy~æÉl£¹CÂD4:*–.è¿ýŒùïœqøþ@š1+¥y{m”KhÆx4À©»R ÄCÍIà;·Ÿïdÿß?ë£'qð63±°ô/¨xW¾ë“ÍT…©«œÂôSî³L'"Á˜`œïø¬Áhˆ§&½œƒïeÍž²Å»¬øÆ€6˜úÛåÛoé¿à}tB_} ÇÆ6PQ+êæ’™Üe»£ù|û¢F†‘1V3¹q¯ÙRÝ ÒC( [¾f–‚Kï¿‚fv“êñ~ÎÞÿ¹,Îï~)€R3KÀ•ð,ä-]”=^õXÙc3ÓF+Ö„ºç˜¼p¤²qÝ‘Í9»¾»Öõª>†ýòÈÿOÛ›ÛzåÏû®µ¾iOgŸñºWWºš'dI¶d[±±±1`†¤;¤»Ré¦S¤«î$]@§ŠtUº‹4©P4´Á¦ƒ1Æ6´å[-k¸ºÒï¹gØçìá×ZïÛœ+bcãÖ{ÿ·¿]õ­çûÞõ®ßzôvw} šš°Q³" ®Ùß K_>š¾‘A–LgѤ¼Ø×ØêhÄí,VF}³˜uê=fJ”ƒ Sí<¹ŒÓDS«©Á`lŒ¨ª$2ÒˆÄ$²°V"†ú  Sc0óð ìæèÊ¡ÕÌ–¥ M(†¶ Œ J ‘®òU #à”(i;tIÈØÈÑ2;E¦è"#Y®—.l=òÙsõüëTûUãG–ÍÏ>Èÿ.ù‡ïÃþº+&'äèpËûpä8úÆ·ÆëÞMßùz7z rN† K&jÃE° ! C$RRfÃ5Q Z8´„@0@_p÷ü¦÷^:Û¼üDX鳸xì$‚gžÐ/óÚÏüëŸ=¹: $t"m,S?Ë Sb)%¾\…#ËÇßø}üÄGÏom+Ø@w8 è£iqqŽfÃ^YÌd@¨d»–5àõ¯Kù„æ‹é¡ÑÞ‘~â ›Hú.ó+ïa"CÑJW<?Ï:< 86Ï>»vÛ·öÖ®•¾¡€nÚõ7ÝöèoþÌ«ç:dدÛ3O|îÜ g¸×Sèé×ö‰`«+«·½æÍà+/=ôñA3¿ã®iµ;;ó¥ÙoLvž­.=,2MÿÝ.KH_|¸[9aÏñ;—âÒ‘âÂfë˜C£&§[nN.œi_ïö.‡ÝmN ~úeŸ,ÛÀÚÖJ¬kK<Ý—rªŽØ«¬­&õ$6ðlÏç@UjNÆ“6°–I#Õ•2‘-TMx`˜tÇØäùJYeÝ"V 5¾S‘¨]CÁ{ojØ–I5ª]DjȧC»<uJ9»œ,w*6sý4yñ¹ËO}aÓ7é=]~üV÷Á{ôšxÃmX»Ø M:…,@šR*Ò×Ýy>¾tNö-õ2¬±E´¨ (eŽÄžÕ‹6v ñ€pžðR¢y?ÙóGOªXÊ´×áÙ?ÃæüÎ%ûžø‰ôÁ4†ŠM­R7]š$¢‘,7¾îbè¬9wùÒ‰“7~ôÓŸûÓÿýO½m¬ãw¸ã(e V´¶jìŒH×ÜÖN,ŒnMf{`{ àÚ«ðÞ÷Ùµ©¤±:¶Úpc?ÿè–éõ9)¬|}׊Pýsnÿ€â8÷å‡Vo}{::ô*)|C‚|ùšêÜÃ;çž}µ\8Ëm÷Ô—>5={N]8ãºêßþÓ•c÷ÎCu::$ŒÑ2’öØZâV÷ÏÆ¦Ó4µ¼¹Eg.èÙ§CyI;¯·¾­(»pêQionkWâü‹>vq±ÆsÓ»®;rëÕÔæ«>ÉßxˆÅtãò‹ÿ× Kþ©?ÑÞlÎÏ}ºÞXÉû|¸|†b_Ͼ̇{[;õ¢Ã ·gWεK£¼ì?H#BµqO>å5²‡¶FÖŽ:P¤VWûE©‘L]Io ãClE¹‰5!DÒQ êšÌ"¤ŠàPBs`€{ùàä2oîpí$ZöQ¢v‘ºhœhœWÔkBP‰±UØÔäY Žlá—%ê“/O¿tîùÇ'±û‹1!ÜØ§;sÜ”à×àýoÂàŠQ›hN#jÆD H­À”Gh£4¯y}ÇI»¶#רGn9ŠrbŒ -Ô¹­bh”bB)sGÊ^MÐQ*†9¥Ó}]aœ£opþ>÷Ý8ú³úÍǽ° AB'iš4]TÛbLKæå­½§ëúçÿþ7¯ú*)üe Š#7ßÿð/ÿ·¯žëu0¶k÷vÏ’ÐvA;%¹ç;Síj6 h ]P·@– ×£è•º¤ÙÑz‚½‰VIfl¡Rðî\ç Ú9ëçknJÓœ³»}É÷ºø<ê-¸Î<¯óTè=¯ÿ»Q…™R"(ˆXÒ?Ïþ¤³ë¿÷‘ÿ´n÷Î>î§ÖÒ‹OÈÊúðÌËMU†•מ®d®W&ñ¥§Â8éŸ}¡ÞÙ–K»‘#å9×óèˆú¹ì_‰ëùþÌ‡Ææ+—%I¹j•H‰d”²Tš iqQRâLÕ( ¬X Á #ªpŠô c$€%´¯@ A°Ô@b‚â–U﹓ªNE‚²'«ªÂ—²mˆm'ÐhD‰4:»èZ%ñ5IÒ˜”ö… OW=Ô¯ŽñŽ5z×Xß4¢×pr ÃB‹HsxB{aiJ¼ÄÕ/ÀsÀƒrB̧ƒ[ͽw¸Þ9ý³çu7ê0:ªDó>² n-×^Âä¨HØ9ê¢GìNÐy:d{¸x§öùõ¾õ'þ§{ÿ;ÓJc`  !±nÞt•÷½û믞ëð’ Æëóéùf±­lUóí·É}÷’–-EPt ´»´Ø„ßWg©X ÃÃrê¢ï¨iì|¹Pì– šÏlØôŸ¶B6Š{ DǾU#lMÐyÿ­ßýß7¢DT’t*Lh¡0Š@è@ %¢ ÚŠÿ›ñï–›½cGñüãÜKio;Ž˜ÝmÑÖ³®7ä•%³ØŒuëg­ ³i.[b™_Ľ­0Ìíå+Ò*yÁd+,"yFÛÄaŸ3Õ@Ö žQ9]@A^¥…yh™ÀP4ªfh¹S8…˜A€ HFú›À.`î:²qt-\Ù.6†\–Í´ƒv—¢Fã]iv^Ô®‘|bBí¼ËÓ@Žß?ý¸¾ôhJ„RC¾æN³kÜÀó³ß6ý„›aÜ›£žbr[»˜$—>÷Ì·¿}W½ªhðlÓN#“0D(‰óðñG/_ÑìÑéÇ|9Kñ‡¿îﹸ½Ù:=]™¯<Ó¸q8E·½löv}jMµ»*/PYJ‰—Öygîm$\ù¶Cfh²Pf3o%Igš%h€6"‰´ )\TeD•T‘9†!nYºNaH`êgF`´Ðd¦®$òò3éSÛ.MZØè#“Àf- V#Äà DT™Â¤ÅÚr•žzxuÝûº­›éDq5„@ £ˆú†1¿n ½ÎçœA3Ì:n¼Vgui+‡4ßàж˜•¨ŸÒÞ'Z²†]•î(‘ƒÌU5òPïþ^óÓwçþ¿ëÏ|Û8£=¯ÆŽT¡kWbjÉ«jDÛiŒºÑGhqqmÄÅÀM7 JÀ¦1ĦêÚ60ª<Ëû©Ým»E½MþðãŸÚ»ðòIà¦U¬l )0R²®US¢L ¡wOKM‡á»MÂãíoÆÛÞg>³0ˆ@€ZPpÆô=ßµó™§Í<ÿdZO’±H løji•zEq*ñoäÀß_ú Ž^sìÉþü«ç:n0òíìôìÙ¯`Ñesÿ£?4Ê®Ý+°ò5ëh]ûG̼_f³-YìazY§ç0½ÐŒ–Ø:PªX7Ó íD÷^ŽˆÜÌ1©d>ÓÅTëL¦ð]ƒçÎv«×eo¼ÿ]›Í,3Úù¦jÊ$eïý¬š©5fR×±™kD¿ÿðcþÒ³7õèôF‡‘ìíc{+Læ:^3ó¹ìíB‰÷¦ÁBƒªQµd,Í* ú.T1,$IRJí IDATh>×.¢ô:/µŽ0Š6Š ޵SÏè€Ä „…¡°Ä šÕ¡Q% £pŠÈh-ZÀ DÁ„9P* ?±’8@¢¬ ü´é·­’íØD¶,ð‚Hˆ$„Ár‘8ŠÆÖR¥q1ÐÔêæ³ÉäܶF)P¬fºÔ§ƒþ‡J²HЦF;G¬•#$2Yƒf‡šÓ'p=†£vG»)lŠ•S줸Vî}³ÛX¢/?%;R‡pÕ)P h1Âyj;¨RBˆŒ 3lEœú÷~Ë÷}ðû—­Äª®,q×ú~Ñ3$*0‰U¾-O}ä±ÏýÊzGF×.c!•É|Þt S\Tóý½ý¶&cvRgúôo|êŸ[Ë©¿„óg°±äªJ8ãÁ2Í®H?7Au˜’5¼¹'£%UCƒÊF£ D7ð Ñz9ð‡‚hêCt,¿`ˆMTöNArõ©í¡]P%b+`I-"C 3¢¢S”Š HNŽ}êè̓­keõ‘¢(U#']ÔÀ¦A:Xª-¶L ªšqñâ3§_üü%„W zùà «K=Z‹,JÞ¨ù¡%È,YC!ÀïÁOÑÍTÙ”b¦^Ðl¡ÞV" 5qªT«aF– ªÜÇ0·n$Ï!ìÕ°Fà£ñ"PÄ€(¨€EQFT±CpV°T++üð÷¯ªCdž3Ór(Ç.FvIJš8ã€{î¼íwþà·ïÙ¹2JP$éšM¯5;§Å´0 ÐKŒ@}‡å×:OÔC²‹±¡•‘&=V§”€: 9hAŠe´——{†“,'ˆ²!“('WOòLlŒäü•ßù_Wny‹Ë‡ÅƯ’£Ä7/¡ˆ¢ñxÛ?øùÿ«|s®ƒ^q ~ũ䪻Bë§?2”/mþÁæ…Ëõº–iVGl¶ÀÀ:PÏà[ª¥Äô×$xŸ¹¾†å*«]ßóÑÖûí¥Ó̱ý¿jsYÎ!¶WS®F°c,B½˜\FðÂ>ήÌç°ø°¤”×¢mU/Úª!+ÇŸÝ>Õ—ç:¨±¿—/úÐ"ìËáãngÑ5$1àé—üpÕ-@N4IirYûd)-‚˜„Ú¨u+.1M (((YÌ‘4W‚jdUƒVE-È€g`DP+Ø‘’‚ÔµÀ@½À*:¦ÈÚ H@¬°@´›»ãëÖ‹Z:N“8vž #' A;‰êŽ. <;"®ÊÙ0IX(DsîÑç_üÄËð@ E` D.öäŽLçB£‰wjM:8 2P†ØgXìQrVFט˜GrHçÀ³š‹ýc¤ªõ¦öŽ3µÛCjŒjùÛ>@?A½ùÏËó5’àc'Ô%ŒD©è„ VVxœ#x©[Ô-¶S„€<ñÜcO¿öþû½T,’W‡Ö7±­$ÍSïb?é5}!M³­k‹2+ u"¶.…µ“I:¦ÙŽ#rK”³äCJŒdDI!ÙyŠõk18¤pðQœ# аDÀ\íyvåÛÞwÍï<|Eê"%c‰™ ƒû¯”Êì ’W§òu­Â¿ h†G¸ë­ß{éÑ­ß÷}±-9)Ø$ÿû/Èõ`L_úb³qúÒÛý‹{Ï´·6ø–w¾ïæ7~ú”ß}v Y†\w¶ÌS§Ãífrvahbäk* /.kudzÉVûÑ7š,™¦T´Ü×­s¨v+8ÆÃ5>F¶.ãø-Ù|¯Ñdã0¶_‚XØ;3<ûô¥àL¨'Í|%)æóºìviVÎË‹;ç{ƒq‘ª®­c,…véâm÷>ðøïùü/w’0æ!"z%Áš©¢žyІCÔÌP]jÞ·a¢ ؈h4 T#ŒA*”*¼ª5•e×IEC$Ú(#¢‚,¤ ¤µ¢&Ì"ÀV–*õ⢆ äõ“oßòNbgòažþçvt39?=óð\>×NÞ×[¹æÐÉûò›ï\û{?æìåõ•rPÌÚò bc[ —þݯì×ß9‘xIg‘<¤eœeRÜ€•¸mU²ØãÅ\ºÖC–ÊÌh•¶vôÊ/šÜùz¹]ž¢\®¿C¶^^XB´À™ö€.Ø=`Ö‰¡tRO÷÷·ÅW’û²¬å.Aw&—MéÒ>ŠúÊùëïÒ´ÀÙ Æâ°Aº¨ZQš4Z¤¶UÎi·Œ,H¬ó­hDÎ\GiAáRŽ­ 8h«dÑ 9#¦@Z$ O`b €ÒâÐÔ@‰<ÔEÆBÔ¢ÌE´Ç‡æ¾›öv®ä&8qPîØV"뾋$F*Qexi\«¹$½É¬3Éúòº65í©²%¹º¶Àˆ hÓaR«q±è£$ª*MØ"yUmS4-•¥Ú¹ ÙT“eD;ÅÈcT—à2SN$.âàVØÚfLÆkÛ(õ‘6„ÐÜûýVæ?ó õ~a ¶ ‰H¼SKziB3C=«‡C |§[À ¿ñáÍŸú_ŽšŽêz¡ÊeY9ÛäµÙY,Úܺ¾·8ýì—¹%ušl€ŠAŠÎ#Y畸)v}¤Œ” ÔÁ$&´Q{ðŒZ4‰ê€ŠÐrZ " Š+÷ÜÜÿÍ<µ²qRAQWsË}ß®6#“›ëüÿçøßþN€¾ÑQ‡¿-w««ÇÞÿÃÿô¡/}xýu?°xü·®Tû幇›ÉùÙ™‡‹ñ‘õ_wèä}½ÛîYû¡Ÿî­\ÍPcë$´óé)ç’²Ùn¦{˜+fs4Á ÄŸ §>ëïü«)&h÷Å× BâÐujj±N{c£Û¾œjœ¹òЇ&©±ƒBB}•Âù/tç_Ôã7…ç¿Ô2è–·8(ôwÎ>'U-m½ØòMÕ„¹¢Í˶mayVí´!,š6QIÝBÜ´¹øÐ‰.T"€'4.#í´^U3ZÕVÑK]˜wÎSÃAY„ϨIì¸m a¸€ŽÈ[5‚4PP­ ¶ FM €U"ÃxBëЈ #Õ, :% Ò€x Z¤÷á´r‰G …Fn‰yF†¯µA“i‚ƒËÒäðÑÑxmƒ|~Íñ£];Ÿ/æO_Ø Aa€ƒ4›îê}¿wƒ^»F¾¢Ý`¸ÑP4€‘ te®‘9-iDÛ©”[hªdUW4ÙÆNÓ²=šïëø:´kÊ3MˆÍ  ¤¥j½xÃ?ìýT™ÿ›ÿ£¾` 6†|xÀW¶ÃdDΙ& €XeÌõ¹ËÏ?þâëßx{è”ܼ5MÓ.šYªM‰f¨ƒ±Ûx×|ç‡þì×Ëc´¢è€aFm-iD°h*)3‚zJYóÝ\)biÈ‘fª ÔÏñ•Ðh µ@ê¦õ}oJßøà‘Íææ$ëS6LÇÇÜÒ±tt„ó%ûU9˜¾žþMyÎý 81 à¹'¿¸ýÈoÍŸÿ£åc·÷ׯ»åþoï¯_¿ñu.W„£^¥"f›k[‘n¸Ú_=yãæ©‹!2¢’ÚÝ—¢V@ò†º( Ú9Í¢´ Í·P¶ÜNc: É6¦"öfÝ¢F3ǬƒQŸtâ–ü®{ôåS1ßô [ø¦<…*¢6×Ï·Í9zY\œÏ›ùæ‘Q¯-³YíŒña1ƒ¤6é;©£nîÅC'6J·©HE$µfVPƒ£ˆÈ¾  Õ†@ö½dÄ^Ô25µ‘@ª ‘†T¬¤Q#lI“!Õ€„¨u*Š F®D¢!¢e‚ÂBk+°zµrö¥Îv>+9éÔ‰2µ¹¨ª¶iFÑ% D‚W¨Ë}BšŠ».4¥µÒIŠÑu×·ũÇNo½°V`å@Ã-ko…û™Ì´sY ¨ƒj ¶ÄiBmxjX‚…+°ä9‰jK¥”¦ª3‹Ô“)•·@KCÄ’zG@Ëj "«L*¶ÿ¦ÿDýÜKXó(XŽßŒ[nÎ?û'õ~‡*àÀgeªP CAÔ¾üµ_þ¥¿÷Æ_\R y.F².nÍÃÙ¯Ë «£üW;±o!+ê \ʶP bÕ¬ÖiÄŠK>R¨e°3Z…B<ºRÙÁ*ˆ ƒW¤ã@@¡„µCÛ÷Ý5øÕO]Ø(n‚¯Âb‡m’"ÉJtP4W6“‹tâµ#ËàÿŸ.4Ë(\yì#Ÿÿпºï{ÿÅÝßõã'üþkï}ïÚÉ{kײ±l1–ØTDüJÆ1ȸȺ.JŒóÙäüŽ—Fm@ѯ«pÍH|O®¾&\<]vF¡‹)Lg󜴧:0õŒÈÑh™/lêʉ¥µëí8ç¥cäŽûnØp/Ë®w'ïʧgÚË5vÀ,ãø·?žù|ZVåt:Û"õ¢“¦%’ýÙž¯+›ºÍr´ÛÚÝ©ÒÁè¦7ôß´¹ --TŒ*ÀÒ€Â:ÔfŠä ,SŒÆ0”i'`«Š…tî `C•¢S:˜ÞRPE4`ÃW=.ABÔAÁ2¯.¡fk=Üs8"˜5É™è 1éR©g«^Ô&™HÓͪÝíyÙ†4Mǃl¸ÜŸîOÏ<}d¹j6⺂{ž(J 4-Q¬1Ÿ¢¬aAÞhP%BçÑڃ˔-ÚHuM;sìyj™;ƒÚëlŽªDôˆ-Íj*ECâÁ  6ÚŒÚËîÓφmÀzô ½ÿ=é¡£öÜs¾m1 Øõ¨#Žñwß‹·Ü‹u†©ñÔ9zß»ß}ó±FÉîÍëÑÒ°öW6jéÚ‘ÿú¯ÛEu4¥"$"aD¯ê‰ƒ:‡á:e+Ò;ÎjT H ¢½FëFY% ÍI„úfªTkB° œµ±:ò©Ïí#_²j BÆ™´oŠåƒí›ÄbrúK•§ÁÑÛ‹åc_Oý7,`Cè%Ø}â#û…Þñž=qÿwõ–fƒ•¤⯕ë7Dll8ó¯«Ùä™®šG(£i6Æá»ß9&™!cJˆ µª1ìˆÊ:N® Ù‡ñI: À’l]«¶© 4ÛŽ>IíæWÊKÏ…Œ{³³ÝÞçËùD%º€ŠpÖë]ø®ÛOÞùâå—êé$–sA6«ýlž”4Kb’Æ”ítoÿòµw½á±Ož=õ‡ŸVÑÄÀ2BƒœÁ­‚µ5$'J¹®Ô;Ž¢ÑC ¤`PtGШ.•bÐIÀä ˆ( È :D+9b£ S…#:…Ê Â Ð„Ñª6ðZ1ì¥IÛÑš„½ªk|šuÖ¦ÜúL¬º‚¢I£&¹‰&‹M‡j:ŸN§m9-'öÇLOϯZ‰éU†ÿ]GÝ;O˜”|5C3ç®ÒÐ`¨ p&2JѰS -˜L=ZBףΪbÀ´Õ&" D‹9¦SA×Ñ¢†oÀ‚;Eí1„µÃtG®RÓ¥)dîümoèE3g£%¤„CcÊRì_„™¡œ`«å+­|þ±çÿëÿî¿ZÑ(Ææ¹I,Êy¹:±a/Ýáµë9ý‹>~5ãD A+ð´€îk/';Æò±ÜkX½¡Ð"dkÈSJru”`tÈúZ,x@6D! šƒ2À   áêƒÏ<]žÝ‘4(±å¤gûk&í±38óÅßšÍfK×Ý—-±¯:囕Ðä ’úüÇ~áƒGïüÖ›ÞúÃÙp-)F6ý+CÑÆB›ì·6ž½ü:h{û-FûÚ‚k‰ T-’YÖtC'0º;ç¥ÙA·ð‹ELÌ/ûn¦û›³…HÝ!nvÇåó.°ƒoý¸Ÿ/fu5…#ÜÀ“Ÿ}ú-ozÿþ|ÛÅp´ze²¹˜îއãóm ˜·F@6×|Ȩ³~±¿s€% DD µ°Æ")i£µ¸ê´$Á) “Fµ ÅN…ÁL5ipªLETñÄ€Úh40lŒDƒ4HH¬vŠQD£è,«U UBÆà€0€ë$œj³Ñr[ïôLÎd>xêll“´ˆ)È8jÁmpXx«j ¦¤ig©Ivåbâ/K>·³É Tf òñü Köþã6KBšÉÎ>Í*åJMÄB±h5QP5 ‹%K–©-e>×hŒu2(`Tö½fýŒöJM•†Aó åŒö­6‹ÚÙØóoùn¾û-ô‰?Š—6Q]Æ“ŸY 7Š,og3ˆ@‚}춸ø¢Ål! 0þsðø™ï}͉_µÔ–m%â-/êÅá!øî÷=÷þÇ²ŽµG’"#$Œ´€d¨ýµU“`C—:\J|åÝ*“¨Ÿ‹_pšS[© B q£´ƒ ¨Y()LUž½üŽû¯ýâ©MU']ÛYì*«B0¢­^óò©O™6ëU†3ç ²úü‡þÙ›ÞõŽûðç$ù௡^kEÓgùr.…E– ÒQŽw¿kn[[`ÎÐë;j<ª]u& ŒhN–´]Ïidÿ²˜øØ=÷byÝ1ÓKøÒ©Eð´qĸ<ÚÁaâÅ™?üäöóCZW»‹=_,ÍT0Ò!J’H¬*!¨éíl1:ñåG~M^þB ´Az!ã ŠÀ$ RAN1¨ª%h"¨ :‡$(Ĩ4 SB FP Žèê©W8 SíV >*¡ÏlDšJ(S+£È”4 ‚R…ñÚÞ‚.\m9©DMlê’Lt"ÇšDÖ…fUElbÀ…!‡"óù°i­íˆ¡hS³{v»ºò ƒe ˆ`wKŸŸk͈ ’T—-å¹6Þ”]l;‘ª€6 nà]¦.U3$†º*ú» ¤e¬¾Á¶1ÈIÛR‹t"¨ ,(¯c….?©;»zdˆ4‚vs7œÙœ[Et[ ìÔpyÄ-·àpÝç1‡¾ÇJÑ8aQÓ©^Þß[]/ªÅ¶ÌïºÿuÉÑCç/nÞ’@z]ÀRZ¡Ý¥Þ*å,íÂÃÁ—꣦ %u}mTÓZɬ¤ÔušACRR @; er¹êqàåÑnjUª*¾‘fŽ®<°DÁñÛxâO?IlT¢J$ó·#àÜa£ÿðOÞœôÆê¬_÷×>ÓŽÙ‰U%ìÏ¥´û f ]¦ˆ“®Į̀®bÓT[úW×¶™÷ …˜JÒ“Ä.º³ùöck³É*ÐFùUwZ“Q45jpN±T‚¦}ÛÕÁ[3Å":F™RMÊ á †àŒ©ºH !c Q¢0Q T£TI‚µ$VÈ1!m‘HÁ(’Ïð„¨P _ônXŸÅͶ˜TÞõ…¶!XÊ5ÆÆ†!¤§5u+ޝ_·×µ£^Î_{íѧÏ<Ò.p¯´DP½¦CC,j™¶˜G jÀX s€ÕcHpLN´fš-‰‚ÓÔ¡èQlÑÔ(- R‹Ô*w¨+tŒ e¶,;-›˜wps’3¡m…w*a•.P;U!b«9!“Ê2þìIpŠ) uí¥vq,K§e¹¹Øcg3rȨõ‹éÉá5ëoÓö¯~˜["Ö„á*hÃ!ùFÀPô2nëõQÏ%ïsZ€4v%Pk¶Â`‰ Mr:^ñ/6L¶€)u[}åùjÕ„a@EÚ¹_ì¸åŠ%íþ%bSOÎ¥£Wé¾þœZä¿ÿó߃Ýþ€þÚµ.õz,SW-;¢ZªŽ¨§OÏöžiǬUìZ²•Š>’Äìm 4Y—ÝReö.…ùn¬Ï‹ªk®ðVØf% fyÙΣ†£!íï&Bš«f¶·¼åÁ¥Ñ¸+VØÌ§_Êû E–—9+]f;—PzèšÑ¡Ó¿i¬1†‚`,Ѝ ”-…"PŒ"„• Gm4 µ Ò”Yª˜ä€$ ‰‚j °ªUjª”BVÒƃ5!¤ª]Ð!:"(y8 €`À‘"ƶ0¹õÑÁG;¨Él#gi„8$¹JUSºÑùöwÝ¿œ®/Æ…éo[ú±~é3Ÿ• ]í¨& Rt86Àë_ãXe뢞ÝÂî„fSm[L$*Îaxƒ˜«ÐÈaiE}§!RÝèlª-2%Š4o5¨æ Ê À¼A›É0ebq“ b¡©Á¸O!b±­±Ue4 "-5Ð0XÐJ‹Ä"´H°ýÜã×Þ}oì¦{óýQ¿¦ë¥ùaÖN—bëßò¶GõÛS2­.`"p (!ø™ö RѦf“‰+4Ïô¥‹HRSOc#t„NӂăJE@_ðžöŽþÎ/}ñW¾†û·ª*U‘® ÕN(wÙb’Ñu¯óÕþÁ6Ò«oD;ƒÜá‰_ÿ/<óÙ·üãÿX,ê¯Oò᫹L§Ò´sÛÕèepýÒ×üÿÑ•þÒ†+®˜”ÃæHœJ Ò8<Œµ9Í&!µ´³ÙQ†Ña©-°¿ð>AL›Êú-îÊ 1÷T íìˆKZì*ö0«ùÿø=;›ÏŽ‹ôåÓÏ颮ltݬó.ÜÒ ‹E×®-¯±–~¾õÿ>tñ¹¡€OP[¤Œ@40ŽX¹ë¢'Ñα[»KJ-£ãXlØZФÄP"«‚!¤ª¤·šY(`Eå`Alà l ÀL‘r&¨r[ö6Q+0€%t„ @–IçL„9j' ÔôFÞï9\ñsM hÎÞ$:Ù_<þÄ©#‡ý‘Õvmy°s~ë‘GNËP„ˆà,à'ë'ìMwv³]Ý߯îe½ò2¶/`2Ç¢CÙ@L,¬QÑUF ÁäÚ_á,ˆî¡jPA[¨:’ ä ªN½Õă Ê‘h`ÚÝG¹‡N ¸ñ¢À¦àHðš´8˜ˆÚ¡6`FàÉGžÌ¾g›²1)…ØIdèl1Ýê&O¶ßòöw/mž­G&F Ãm6È»s“8™¨x À)ò€â L­Äl8ZÝÁÔ&pYž¦éî$vMÌFiÙ•hºµá’V»=ÞyⓟxöCÛUEk¬9ÃzŒ,ú`{hƒzÛƒo‘Z0kí57HQs2QÀB«Ž(gUÊ`€V X4rAˆPB#°jUØ ˆ8H”pžØ 4 bÐÌ ”^a€ƒ¤Y è­]sóõ—g;2@RÚèŒ7]«®¶µ«0'in H“ÁÖ•i9ûÓtü凎 ‹~ý¬êÒCýöüâêæ2ôàëô|åšjKP¬¬ /°^R¹ÐÅ ¡C€ kT€By–¨ÚI#Ô¥”õ%3¬"MßÀ·hJÊM†lT;£‘N}T.ÑtÊÖro55 4&àCF”ŒN0·pàñ}òKÿ|r,ˤ¬Ô±’Ô¾lC쥤 mì_w£y÷»'ÿ=s”‘Ô‚sX‰Èú°=ªM«Kd-BP" „aäËðH-’ÂPÕx€dy } ‹»í¾ÞóÀµòåYo´tÀ¥ªHlfíô’HQÐà IDATé­²Í$Ï,.?78zû«ð×, ™;ì<þ‘ýÂïüŽ+–ËG\>xõÔˆuÃ&ò¼Š½á /ÃX&$—÷Ìoþö̪è$ x4-µ,ÎIµIgžÅäœ=ÿ$f’åµÂWØÛÔÅÞ?çŸéžüBýègö.î"xöŠÊ ¶X|/ÎùÓSè­ý¼½i´¦×Uøì}†wø†ûݱêÖ­QCi°$„,[6H–lccc;¼b†43 óŸt§“ºÛ4½Ó° C`Al°Œm &€Gd[’%[³T¥R©J5ܺãw¿áÎ9{÷¯lF %Ïï»Þ³ÖwÏ>ûœ½Ÿý<;£¢³Ü,ìµ&àà¾Î\Þz’¢œšrl{•qÇoì VQCsoгpÁcb1%b!®•ˆœ#g‰¡žª‚"™À2¦>‘³Y%,8¡G4g(W8…@=4:ΣŸ“õ0 É!ÀŒEÓåÖ`jÑX4ÉR"˜Ï C¦g/åsË­ˆqÆ 3Æ”È[²y¡ÎDñ=o­¡zÆiÔØz©·âý⸢~íÖ—¿üµßöõsW,\V€r@fÀ`åCÒ¿•Ëã0ˆá"x4†N‘E²-Pia:Äx ãÄ T¥-ø%=p§[¸É7µ$Í©¿l{ûПÓªÖÕ%ÆNÛÃ!¶†àã¨íè0É^ÐF%ªf–J†ñ,Ý e‚UàƒK‹XeàÉ'ÿâŸjŠ…H1+Ë­Zž'e¿Öí,—þ©gKiüõozÕc¬‰‰á,Œ!Äm¥9¡ÈQµ‰¸`ßãi•ŒG´™ªµ”,l\$ˆ€=¨ò  Ë(ò3/¹õ¨Æöó}UU‘PIµGë±Ú‰1ºî¶v¼‰<Yuö#¿ù¯_ú­?}ð¦¯)çW}ÑçÂâŒ9/|Ççû)¯h&fFc‘®ÜPå2¤õ6ª ZKu ÉFÛÒY¢¢”&L¶#C`lòÉwPö (ïŒ&íÆ$¨Â<ÐDŒ vC€«¿¸¾±~þüÁåù@ØÚ9gË9ííÛÝ|N¸¬ÌO÷FÆÇo{ã#ÛgO;=ç*sYhÊ€y‚aMç’€äy¦ &Gš Õ¤36Z4’1Q°¨:še"ÖÒ,?‘¡•-IÒ  n(#B(Ä(±E)ÚY(RJÈ HÐ*R@¶Ãh¯™¤j©ÌëaSxõ¹m&Ñep•4ùœ½Ä~^‡ÈÓ1Ú˜ ÜuÇÍ/¿ñÅF(ç®e¾þ®n7¾ýgîFcÀ J×áÑ'«;‚¼{"ÛhŸÁö³ØÙÖñ&ëÚîa:Æ$"DšÚXL[ :4“”¦ˆ¹#“Q`Ô#õ^8CÞ§`[U‹$0‚FPµ°†+J¨öÔO {TmJ}b" šDMÉa¤BÑÍQOÐ1X´ØmñŽŸûÉÿÓ×\9¿RÓ÷¬„ºiB[nT!ËÌMF›;o{o¿Œiê„`RÂfH UN´ƒ Ê•V»°L˜èxª˜Pëá°j;°l h (‡& †óù˽ˆÈå: )J;IÕ®ÔÃÐö+/l—E}öÿæ׿þ‡Þô5Å`Ÿ+zÏSuúó bÀ‡KŸ®¶vÀ%‚¢¾ì8^{{‰Çwê†#Œ"ÀI‡»*‘ãØ“?^ôóôƒi²GnÎxK‡ïVZ¯KŠ!!ˆ«1ž·°7³äóMÇ÷k޵ýÇ~w2γrmyq¸·MÓÉÂÊê´®ËÞ\¹4øøG?ñGßûîB±\H×Á±–!ÎA­f‹"E) ÚD±ž³‰žêV2ÕQ|vY†ÎZB#¥1žD PJ3ÂH)ª¥,±“$Ž\‚j˱Ë"Žâ‰©Då DEÆ`® Œ.îe¶_.¯ð¹MÎ!Ñ—·Õn«J±’-m̉Ì4ÕQ‰ò 'ÿýcŸ•9²DlEÌœ£NfûY<Ó€´ØKô£ïÑÓÄÿã?ù‹kîª_†Ù…«Að¨@±ÕAX‹äá  ›ÓÍT1•=mö0Šêç¸X@"m"ªˆ  2û¯% !µ (ÔQDèÄÁµÒó7µ˜Ks .š€½=¬€žýÔÇßùS?ù?öÚñÅನ1'!åÖ…VW}¥½ñ†íS÷f Ô¦ ÉÃXdPÔƳ÷bI†-MÕF›#”YNm-ðàŒ\ð—Gb)@Œ¯ÛÕÇ=ÉÒå× *±Ií46“Z¶žüÈâ5wª¤Ë¶]ÿX\àÜb_oÿ‰·Î­]wð¦¯)æV|Ñ7Ï[.à¯@†\73ž¦ -@Š 5Ëת‘Áº]„"EÅJ‡›zá´úÌ5I›‰Æ6±Ú=´Dëë-[[i=m)ä ¢… BÇA^væâ¥‹;.ŸÃÝÕ¬4 ûÝ5k¯i\IšseUuá³Ë  A! È¡®à”iÑe%U N<“K` ! g j ŽSL9QSiaMšFa‡ƒÔ( QkQ‹Š%†ˆe%†!#m‰² 7B“A Ñ8C y€$\º×î\±:w©§.¨Uiyv>k1u[uý"¼ {7daÄYTÝÿÀ¥õÞÂH¬ñƒùÅq5\{lsx»5†µ¶¿~ÿü½ùu¹‹ù岊tV1¢ÞF=FÛBjìN©nQok …0LŽ^CíTzsT'ê)bÌ•$bK’44Af¸U a¬¦ ÓݤN j¸M=B•Ô3%«äÐq ÷(ŒÎµ¸÷×~ý¾ïù—wî_lÛÊ(Û¤ ¬ølÁ–\·Gûs7¼áÎ{ÿï{ß”£n€8Á{Œ8€¢°"ŒÑ°³J6Y¦¬¤q¼G®#³G j2˜( ¤Ÿ·ÎSƒDûNÞû©?¹Ç¹üÚË/œÏCgFÅ"ª·¼òνýW¨D•ô·…,ÿ!°2ƒÒã~æ­&ïÏZ¾®è=­€¿"ËÜßÜ#Ñ:‚stË?¼øágÝk_†°Ž¡@ •[NëçChhoKãŽyŠÌ§.NèÜ™†––0lcªLk“(¬œ@¥Ás©‘^ûÖÙl Æ[Y³wúâ™CG¯ØžÔó̇÷¯‰-§m³šFt÷.Ê©Ï:q @!È$N§‚>›L“’zKãF;³,‘Az+‰¨8€Á¢…")kÃ)¬£™ÌÔLmª)µ(˜*§T*5äŽR+É xÌ*ØÁ£ñ‚DpQ¡i«­EH¨"°ð¢CãKç0ªãsÏ–(J´ýNÜ*9X´IóØèÞ0gét4ϬÆÔÍŽºášî¬«æÒÖ`åk¯­ïÜüÌŸ}úü=§#œ ÃvÓþôûêŸ\ã+Þ&¿ªþ%èE`ñ †Ïb÷†ë%¶Nv0¬hzAw70¶<©DŒú."À•$¢i%DhBR4ZE‘©ñZƒ§I[ÕnB °Gª¥Ì(ëë({î¹_ýßþíñßúžÏ•Áu0Ð,ó™ë,w pÃ+_wßÝ¿†Í=ÚØydNÐé“&€j5‰r‚ï@­K°^‘=¼ƒ1°\@‘ZU ÀùK§ÿîÔÃx¬“÷IþzåˆØz6Þ¯d>?<™Ëñ|Ø'ÿôç§ãáeÂÆ¾+ìóËû{ L¢‹û›…¥¸;†mˆLŠþÞ3ºýÆ}F/±ªFdV\)`r i ›¡ò'‹ï} Ë»WAþž® ³qÆzkÍÅõ³‡o¼ëöoý?ûˇ;óûÙüã3°¹ö%¯ùï¿øwþÀqy·»|Ø—ýçó¤þ‚ÐÔTg‚®ïÛß½tê™­“ÏÂ{0A ÿ¡O:&_;ÔNÔcšá=W;бѹE×6m‘1.3<·.'“É–®rÝUޜȔ0Æ-F-6'ØP|õÿè+nyÙ…³'a´Ÿ“z ŸMØ´l’͈s¯.å.üÅÿûÛÃç6V»¼ìuÑ`¹@—`Ì Åïa¡xglT£”96¢m€b³Ì `€b„ñ<m DÔ’2 !$XOµjKè5P¿i¦N†7äBF`Š šiJð†”*8F0LÅp»ºõͯ?ûÔ´;,ÄhÓ²ešBØØ<‹VšŒÀ2({iÜÆ ­bO Ï(êruí¦öuyûÇŸ|ïs~ðg7§åæÀêR×ôºò¥/¿mß ‡&–,‰¦$=žþ³xñ=Ø»«]²G²Î,„(•à˜ØyÉ{°.ƒï£ßÑs´AFp÷:ˆS˜4µ`( ×X6 ”3åEUoÐq”[¸ …,S€}‡hu Gã òÎÂg*S\¨³«þVkv"&—qÞwÝ…n·÷¡ßüwÇ_ñÍÁJga¿~ùÒ<}ßÝõƒ¿Yöw–ùòù:µ|!¨4mµ^úÊz)W'ŸxÂ&o8§:¨$0øÌ¤a:v,s^tª$ʱQšŽSŒ&š´…ÏžÕsgÅz½ê¦²è‡8U©!„0ª±¡xvŠÜõýßyó•Wíîž×¶ !åe¯ßíYm _@Sª·ÛØnW]¡g?ù¾ Ÿ.9¬fØ×Egæ†à ö¤EF 9D&r$Dd-£†aH"s”è²Ú‘:‚StŒ¤’˜,ÀB”à%ƒÐ]¸«3ì]Œd U¢-Á8@Aã Bš,@"j–­ô¯~ÓmO>x_Ù¶Æ@¶w9ç¡Äºï]jÅÏÄÓn“T”ëXwpåš»nh7Ï?ùÿ=Œ–b£Õ“ÛÛ?qqç¤ôvóNØ¿oñ+o»æÖ[Þùš£®)Ÿ=?¼p¦½ïœþáIý­ûpß;ñR¦¥›ˆ2I£©2À]` ö0²+QGïz,^ƒÃ·âø-ÔK¼{Jò>ÍæñžJ'ËÃF‡÷0–*'yBæ s¬1“˜9“ÃîH1 Z‚zŽüæVZ ÇHŒœñÌ8Ø•µ»^q{×¹¦®ë&̽ҭÀ³æÍk^üÉG?P?ta¡ (È—á—¡€u ‚±ð]Ø6‡µ€Âz¸1cFJ¿LŒ0„„ûØÓWÿçßXÛ¦c_8ˆŒuå\ÞO[O}âÿË‹ßøƒúK‡fJÿh˜—~ËOͼ¾³°6ñ}>ßú"i%M)4ļoõpÞ_ƒY,{+¶7¯ÓZ¤1&¼á¥þ«¯NeHEÆÂ*,›á®´ yFÛR';ð©ÇãÒ¢yÑWT!ìp‘i¾j×7$Ô›ϵØn`®8ö]ÿöÇ—Kšm£ÕBYH¬›Ðø¢Óë÷"Ó-·Ûúš¶Ï}øÁßþh<×.õ±H(2ð¬ú_‚õ]Ä€˜`K AU‘9h e†R£ÝŒ)¨Ùœ%ªU8‡JàHdJA -Ù€$hõ”Dà=Ý9]<¾o÷â$%â u@aa•gÂ0‚\I+ÍXzHŠ=ÅTpüu/o˜Ú:XÆUí¸´ š š:f¶›Y†I‘5ŽÅv Ѧwèê¯zsµµóк»= F°Bq;]úôæ‰w=òÉw|ðCï}ïÃ÷}hûÒU{ôÈu¯þº»^úš[{û\sÔï_¾w ð§£ÍÉæ‡!aЇ|N)jf7…Ë\e  ³„ü Úwœû °µ.Λ#W¹iŠàª1íDØV;%òœP,­Í°°Ï˜\#ó $ÙRõó+ÆÎÑæyÙ<íÓ(:„ºÂ³k_÷mßÒí¥ä|˜“U8ï').½kÞð/ÎL?[<1ç8/tá(:¤S"ë#ï=|eÏØLÅ (ÉZ%;°¹ì«‚Uò_¼ú¿ýÞMÏì¡/ÌV$"6Ž‹¹²·ðøGopðEËGnì?–wçŸç…×\÷šïë.ÉûK/aã a&'YÚ £ÆKKW\±ptÿ¾ëW«°;={ ÚþÓkñÊë(ËÅRû[ÚNÔX+¢»w1Ù’4•¹e¬]ëªÝ6Ð]Ðâ oœOÍàðì%œQ\¬  ß÷Žß~í‹nNŒƒF>ùãw·êŒƒqpĈ“šv/Äõ“»ç6Ïlî>yoßÚÜ×}É+®½ýU/ýŠÛoÊ×zy÷OϽãüOðمŦ¿œ9si:zÍÓÈK¢þÌPqftMP¥.ÜL® '*.-4»[æÔ™PfTd“ö¦…G·£½.-´q$9k·‹þ’– ¼;Nä"¦Ûº~BÛL÷°ºŒ‡0™`¼ƒ3ºúMßö-^’óEÁÞrï2f’4jY»dý¾;¾ùþG>´69Ý_¡þb€ëÀõ c@ ÎP”°ò>Œ€Àî²f µ¨(äÜÕo×õœ?ü%÷¿ÉºYw©¿°ÿ}?ÿ½/ùgÿÚçîšõÏ·Ski&¨ñ?ææüy9ëU9éÊK›Ò$/ÒœGÃLE½7ùù÷Ä~·~SC¶4W˜”i5ÔÓàö1Lƺ÷L;­P.XßI;'’K|à8}è¾t!aT“A~àŸÜzÕáå~ôÏÆëãí]2Ù^WgËÁ¼ýA/R›-Ïöž¿|ßÿúÞ¹´|`-,R\t©G!÷–&ÀbÑ6ie-2&ø &e ›!c3±)Xr,ËL_…,Á „v$ˆ8‚¨!x‹V‘[p‹,!)LD 0t®KU£6'mTÌ( * !q ›´ÎI[µ""Ohg>(»{§~reuPx“‰wÝ0š$M1Äš XÖ!£‘„#MÃÄ}ÅÚÁÛöŸxÛÝH-˜JÑL+f…nòcUKä-™dýÑ­wø“Ù‡yޝ.Y[X[¼fÿ«¾çª ‡×/ßlÚI¹ô W<¹‘o<õð'îyˆá^ÿUÅñ¹­>oì?ÖÎ߯D¬TS ê¯5k+šÝ'G ·~F»EIcQµ°…vGØe4 åL=”=òó:X1›ëñš¯6›gÓð$¸Æþy9̃ELus +Æ-t LÊ@×Z`’ˆ%1L‹y‘3Õ’±¹ñ›~ùW¿å¦Ÿ¸Æ *¬ƒaÀ@ º}*¤Vf§9fšÄP‰-šÈ;añþG½ûÏ_lV¿Ôæ'¶Þd=_öO}⃵k:ƒ•ÞÒA›½ZëŠ^5\weß—Ï×éð‹ƒÏЍª¦Ð­ŽELÕnR"båóoûõæü¶û¡·ØÒO¨Ä©‡0 Pç——ÛAé×Ç¡!ÞÛ@æxeNëè42À-ྦྷ0Œvèsä½ý +×¹õ‰wÞ7ÝÙîMbT"XÆÉO¿áèWXŸù²cœíö†Û;»Wß|ÇIOö:í¤Ïã²{™"ÃIŒBP7ɱ ZÈÄa*y³«-yZ Šm@ÉÇm›¬0œ€˜CÇ`AFp¢=œ¡Öh°êÔ@Ajj¨'$"D- y 2ÚäL‰@>³JbÔ Ð]½æö¯ì=‡€´¸3N€ïDWøj82ÂÁƒ§ ¥EéÒöfÌM·~ãðñó“'G@”<PËH‚~êÆ—°̗DZ -öFÙs»+÷>qÅ»?tã¸áâhl¿œ "¶y×k_Q.ë÷ºïøñ7Þòõ?ЬtVÝ?J[îïÂ~÷ÛÞþ³ÿò'?þö«nk¬ÇÆeÿsbXRÌœ®>ÐÙ×ÝrCwñÀ •~Øù+^þª·üÈ_üþ/Ì.Òl3c³ç©¿ñ倭óY_uóMßùÖwn­_xðdÊ;P·ð åYµÇo ùÈi¹>×[{ «£ ö3QažiV¦½+6æ®oÌà2oâ‹Çîç Šrþ@¶y¾ÞÛÊç–!¾ìª8ÞÛØÙ<7n_?_¥‘{d'Ž„âD}‹¢;‡ƒÒ;,ˆ]ŽlÃdr?iZ*<«äç ¦&І@D)ƒ4 (Ó$&'b„:2¬uœz¢3¯ÍIêýåñC[C9ƒ"¦@"Èe<é†÷|ô÷Ãæi³¾9`O†fÐG4E§h[h鲂}ÞªÍwY¶øâ‰b<Ü@ЙÑC 2¤&¢É-²&RA„µp cÐ&D€-” ÂäA ¹#!ª“8ê(ÐbPª Œ ÓAÊ´ªÐûLk†:G„‘Ô¥5Hpy£-étÝâjK=Qc Ò¡¥C6¥@ÅŠœ‰Q§ÔpÓÊîs˜[Dq±Æµ'ðò×ÝÒÆ¢bVXš˜aIåò»*J¤©Ä™>ŽAS™ÍQïñSkyðªÏ>sHM1³Ŭö¥0˽nn­X½Ñ-^á|á þè»f÷gç‹çß=úÞ8mœwÏOëËsÓR “Ú×|Ç<~ëgNÞsïöSªuêç´®á”ØŸß¨Î }ÈB ”Nu;e¾¿è¾¨?…’ƒ*ˆ¾L7b&í¿ê–'ïû³ýƒU²¹-zÄFR³³ua´³ÙÖÓÆjS‡aƒ"‡ô!¨¨¨4g¨M2OT¡H(s*¡5FkK0d¨VU‚$JPËdZI€('jT’  9XG‘4’ºËÓD-ÁR ÌNSÔ Fç N˜y8äÀäG/ø-kv»Ó´›e6’T‡ÀƒUÛ´Á-—[2*ÊVÛþFŸ«ŸjŒ‡÷°­EåàY¹%xO©Q¸ä8Ib@¦Š$öÈ9£È‘¬…5ÐJ𖼡áP@ÉS-ª íE…׬0u“l‚7IúžLãØª£1ŠŒŠ‚êQ,èÍóî¶4UX©É9]õW»ÓéNÜÁ©?oÓEÀÀú˜M h˜QOb2†’1 7”Õ[v^kR³Ó0ÖùŽ›&­¥L•U-{ÀcánŸRÐ(šw¡œŠ®,Ä è²i“³ê J~AE¡¹UÎ9ò¹)2¡„L€ÜŒ¶S™qYJ¬T19:ž •Á^ò.ï]”ÕCæÒ…ÄÝ>RÀÒ1ä“^úôÿ>¸í§,ÛË®© 4Sá'…Âýì“úäÚwó^í/¦Á‰ ûîòè“ÏîŸÄ>ðȺ˜ YoŠ?8˜ï»Ö _p÷.ýö—[ÿ¼~g°šˆ…+_~Ë+¿á‘?ùåùC/ÀÎÿÏ`(³xÁœ¦Õ--ýÇc¯ãŧŸÙ{n}º»ÝV»‘“÷º ËkG¬]í?wýø’"±±l½ñ…-®»”õ÷ùÞ’Ë:«7¼úä㟹tþÙ7ÜåæŒÎ=6>·Ó쌜º0]§¡–>‹Íàs¤ ±¦P©µTf «‰‰=÷’Ô$pƒ”QT…@؈ˆ'³tú¾·¼ú¦£oxu3ÚÙ8õäðÜ©j<ÔE¯7ßí͹ßÅnVºrà:‹®»”V}o™ln¬'f~Í÷üܯüàW-¹ ¨6Ÿ}b:¼F€¼D·„ŸŠÍ¡¥†£]Ô;À9-: C¡UÓª…ð ¤j=±¡ØÈ *Q·šE$ÍZj¬fD†4%$cbR%Ë&)[ML*:4­Údcêj‚Zª 9Q£!j¢"ÂZ@0©˜Cÿæm½^cîûó¸~!M§v2AÛ¤ÜÖUv*ãg©È°½È‡º@îPž¨¬E¯€*¼C¯KM«ÖÓ±YÎq$¹!õÚTÈJ›4`.;è)qÒ˜ƒ-Ð/У¸´m17ϰEQP,•”1´ÖAZPP k(·€S«è‰g‚9¢ Ó!ª‡ê—°t•™îIÜ•}‡­Ë¤£wPS 8Œz‹Þ<Á*ýy  ’A¬á=|Iè¯Éýzâ»ìùïZÈ: Ùâ×ÙþK˜º‘÷_¬ùî~õ×}åoüå‘§/ì#ž9løòC—Al³Ò nþ°_8âúØ—ŸRgñèÿ|1·¼|äî…¦Z\^& Š…CßøC?ûÿá­—/Òõظì…ÒÄúâø«ßŠPW¡[å™Û·¼ºÎ‡jôý1[_˜¼_,.—ޏî²-úl½1îóŹ (½åGÿŸ?¿û—®ºëwÎ<ÚŒwÀ ÁÍr×Laƒ§µѲTîÓ±ÖèyhŽ‘E2°-QP`tàŽh ÎW§z’¬!`‚ËÈ’V ªÇF/‰*çd¢"€R™I|…€žç؈2Œ¨Ä`ZÀ0BÀð·¿öÚ»^Y`ý ¦sÚÔ›“gŸËF{&ì]ÚÞ"é…ážk"]\Ÿ\Z÷ ‹áBÀp :‹0)!·D¢$ðÿ?sofgYŸßÏö®g?göÌdY@X" ›KP‚­_mµþ¬ZÄŠbë÷ërµ®XÄ¥ëÕÖ«( MZ­Õª Èfdd&“dö™³¿Ëó|~¼“ÉdeHf‚÷•‹ëÌpæœ÷=ç½ßûóÜŸåQˆ%5(M‚3!)eƒ ´†›bŽ¢¸nì4³l­=—7 ÕD Ÿ1ˆ9k߃ïÑH&`È¥ÑÒ-ûbªÀqÁ8’L„ZƒeÓÊ4#­©­KfRT©i×B.+,‹0n› 2ÚP ó…lDa¡ ^ JBkâ^* n‰h\«ÂE&ƒPÁ–ˆC²”˳yŠ£iPå[¼‰ñŠ»} í×OÏ{lû¼áÚZ.8ã¯ZuÁ„rÓÌÎZÙ•Ÿk庸•šJÎØWKÏ¿@®}þÌ.€1u¨]cÁګϸxýd -”e§Š3û~¯‘Öqfâ¨it<ñk"¼R–(RZžëðZú­‹„“R±Ë*ÐXpî5í­ùÑÿ©ìÓQB[FúPeÌæeåÃ6¤l05k¬V%nà)f{,&â<$h…À!l‚ˆ!‰Á"EÚq É@&Öy®`!ÆÄž @ËLC0Þ$²$ C Æ8I‡‘¤8†f ÁˆK†›Çˆ#h ½t~„¸ÑןõS2Ï2-ùK-f7ÇëÙñ±`l¨¼õÙ ÚÛ¨«@„}UT@70Î ²Œ& `@[LI¦€€|K²¨LÌBÚ&CÐR0É)`QAŒ´Ç,IAH†#›‘®mšŽ±BØœzæÉjMÇ¡q9˹T\ öŽÄ¦ÅY‹¢ŒÒMFÈXºªAM¨,kífÃ{t#Dg— cü×·•„1LÖÒ.Çú£\‘#¦TA@Åá0<Ù4l‰À€Ç އ˜ÁOAÃ4bX)p‡¡µo<÷ð¿|dÙÞzcŒ‹Ä™ž®M•PW:)áT¶Sf»ì\³üÃÓ7–@b_ñ¶O–7ãÍöL‡Ò•þ]\Ú³4 ãhëïÍæÛ870:éJ#šV’ˆqÎ…¥ü¼›Ÿã·/q ÝÒòŽÑ I„@ãœk®ÿç¿x3ÄÁÌ`- ™oS³¦] b,v2Þ0AƒÈã¹´ñmª„MRÊÍ4!BÄ )³Xc<&fƒ<­(t_²Xk–JÞZ‚Ε1ÒHNà¡"Kp""bR3<ŠM2R¼Ö„Ã`ùцÞÕ]Ë—´fS¨³Ô7XfîœSm’íî{qxí[v?³Áž$à 6àî8Œ· A@ù CqßµHG>‡hÂ’H¥™k1!¨b‘m"x1—±©(H‰ØÀ&(À–Ȩf`*XÒ%ŠçÌỞ2vŽæ-ÅÈÜ"¥+«QÊB× 5²'J t-S#c‘ç »›˜4Z¥ÐÞ- q¾ÄÓE12+i£b¬a2iáú8>k†p°X{6LÊ”é‚  Ž iÁ06Rv}ŠßóXÏ“»–ÂÊ ÅÁ’B½iñ*Yš Ë^Ae»T¾ÇÊv2å i1óšØWÅžå3ؽpZOÇÞ¡tEHû{Ž_Köiä\ÙÉNˆ& ˆ óöȹ–keZýÖ…^ëb+UšŽ iŒ¤Ó¥Ñ}½Aklë§Îv©Ü8ŽAÚDÄâ&4q7o›cMƒ¨ Ö$ Ìw…혨nˆ3’S¬“!ˆ;ˆ-ÆÉ&(‚<`ÐbÃuE›ÂfÔ0F€' †„âŽn˜Ø ¤!"£ÍŒ#RÈœµŠ?¹Û«6º[¥k Ïõò¾“vý’M”IY…Lk6,(v¾8gÑÊóßÜ÷Òæ­ß½±¶ûÆâhó …¶VD Ôëh4&„€À„ÉÚh†p«Ì±¨Ô&„Ð H3/× ~Ž´aÍIBÆ |Õ*£ÆuaK6g¡¬ôkS‹‹ífõ,Æø³O4S®Ö>ù=RJŠ›‘ !$¸¬Wkzî25Z5ÃÃ&Ÿã鬊sHÄŠÁÍ"•7Q€ˆé|^„“ö9“QÊe!XÜ4¶ËÈ0M( àY1RõzGJnéùÙ=ØþbPœç ¬3.Øô,%Æ8ã‚K‹Û+×¥òs­|·ÓG£.¦ØWç¿çó˜¹î…CpèÑú@ ݵê õá>!m;U˜ñ7>*–ïdòÂòc7§›TâfE‡ £ã#ÒXH%ÝŒ“ëJu,u =ÒIOÓè‹ÂúKO?¥cBÒÉË €¦@…sŠà+F ‘oQ,Yƒ"ix8nT߇•%B\­ Q… 8Št Èo2Ã0@ r˜±Àb&BÒ`܆äD`d@!™Øð¤`+0ƒ"@2Æ &0JqâFjGÃA,  ¬)Ñ? ÀH­¥³ÛŠÆ•²¸”¥´o›WèÎ;éR:µshˆKkÜr«AeÉ¢ó:ßý¦tûÞ—tsR£È[,ÒÔ½X îŽF ,VÇP™H Ž©fy‡¼<³=cRC†` j„®«Q”צ2"®Æ°E²ñ1‘Íöí‰Ò>R=¬-¯…o&ôs*“cA*Ì÷pp¼øˆN¥yj.E:Rs|Ric7`—ÑÑM :%k1íyð¥*÷…v–å[ICKÊ¥fŒŒÇ•§Ý4¢X».¤DÃra‘ªTS}¹§vt<¶mÞîÑæ…Œ¬îöòsŒŽ9㌫þ¦rRÜÎÈt«•í²ò=ÂÍ1i»q`Ò¾ê9õbÌtúw‡^èDc¼ñO¿þøº¿ûé­«Þr}¥§Pö¬Ì©<cŽ[œë{t³7Æ‚ò@PŒªÃ&¬é8$£§ú \ZÊÏ{¥ù~û)v®S*gúed:l–Gú‚zdÀLz¨¦Y$ “ˆ˜ã±:Œ&ò„¬×â(0iT '‡ê ŠÊˆ°,fy`¡Pd 4\¥ÃtÕPLÄ¡$HI ÄIn1a“š!Ù P¯£$P¬`˜ÉJhAC5Áâõ`0;ûý JÀ`oß"™±óÙTPg!•”7¯uN½–)êßýb©Xi4„$S5­éŽÝÙ5÷o»cv±r9Ö¾£}-@¥ /blëoiÏNèƒ#ЀçÃ6„: %,ž;Ñ×.ó¡3>#—„… Œ•ƒX#“lä°8"9¤ë¾‘J#BصԀC×Yc°LcиÒ1^–Wöi!1¥¬×bG¢e(vóÑñ(×”/FöšTV.@*ŠÁ%dšqF)Æt í4àsAaƒÈ³†êNÿpö¥Áâ–][÷v•³LHÆ -·Ø±pï®gíT ’ò~daLTW:)îäU¦]e»T¶ƒÛ.­Wœ]3i_Íx÷Â!8‚R%í;>úµÿüΧºV½¡Ð³*jT¸´fidGÂ6ÆÀ'÷’1ZÚž6y9£Ûœ\gPÊýQ}ÌD ÖuÔ$àÒ¶R%§Ð“j[$ÜìTŸy: tÔ0±’OBƒ¡1­¸] ÕC(Z³ú˜Î f\²\fSB¥Åà¥KCKV)#[äå ð¦FF3ƈKEˆ‰ÅPSܶ ·Ai€pÀ8e˜FÄ4™b$šˆ ¦—ÂÁµ0 ºBm`‚ê`mñâÓ0²7ãyÌûööZ™ ÎöÁÝN3¬¤,Áí|n|ë£VÓò¶Ç…†~äI“q(•§9g9…@#†eÑâ³P.›ò(â Óp/*#B4ê°ÊLê5’Ê%m“‘ ¶‚'` „KB Bž å2m¨9ˆê^DûLy¾4,¶l¸-öx¯ÚfJs¹í2¶a2 p21Ü Ò9+â… Ä^ù’¨ÅÚoç#ªC(†˜„‚e¤dF‹²ðÆËÎЀ÷bËÖÞÒ®=¥ÁjÁ°¤6u¢ JdÛŽí© ìÌu-‹ƒºâµµ0ÆãàR:)îì\—ÈtÚ¹NH—‹#¢‡cÒ¾ºìÏÞ @Úî,Í«:r¨jœuÕ ß·á‘Û?ûÆ›~\ÞÍ•mûÓMÃS‰5ɲIÒ ±ÿ±Ñ±ÑZ(Ƙ\i 'cççPÔÐQ`¢¦ë:HÛS~Aùq\ŒƒpBÇæ¡1õ2… °é Ke lV-›F…Q@Âc¾Ã:¤*¡IŒ5)­à(ÖD8¢lÃT@\Q]ÃDYÇfµˆ8 Sˆ 2°` žÀËÀÊK/:uÁ\ÙàAÓêÔqýÅäÜ‚ ŠÇ«#ׇ«C0F>•³äÔôFþܳŽ4{ªñÀ³Æ¶ÖÆ ׿¾gRvÔSs7Êt ë•o„{·£:nïd1Q¥E#ä."ŒÄ8‘±@@d 4±FÆ3b B@[l¼Ÿ—wÆÂ€,¸N(šäÅ@é>2 smÔušhŒkî²Ò|Nu•©m.ƒA¤)S`ÐZÅH¥¹!È9.‘†Pˆ!ƒØÎô ä·í)íÚ[ì+–]Ãíä²›Ìë&UBÇü;ž~(*”•›!³$‰”4J›Ûiá­l—Ìt¨L“î1ÖºG„%ñÛ6ä:æ;Îl÷Â!82 !ÐøÀïøì;÷Òûvˆ9Ëå4z Ø”G“ùaç¾cãzÕ¡ÝýÛ6èߺ©6Ü7ñî:žL cBÙBÙDi2 ©+aÎí œ>˜–ãpËBPŸøz8‘Ææ~Ó:ÏêÃÀÀuÓdÅ0± ØNÒ YUS£ c17KŽ T˦6 Š(íÃ+°™¡tÈ꬈ZrÌϳ±1Ã=òºm‹, ZQlƒ¨ƒÕÉN *P†kf².  ë Ù¨öð3ô#àÏnùÆGßÿÁƒ#ÿ³ñÁ—~÷ÛÚð¢X*_¥,«:>EBRì8VE *ÃýfÛÊ­ÇXÀAà2*š¡ÝÛS^GàÄÕ;¦t9UäxÔˆ"VÇ9síÎÎ8ãj¯NqÙ€6ð8óº4‘&Ä é‚g¸mQl‹QG­ ¦8¨bšf à È*•ærc™ÂƹéY+ I:›b\!-Påær™¦¨IY—…1)‰Œ # S‚5ê*âÎÈhêÅ}Å}íÏî(í+#ò'ª &’ºÄŽ”2岥α¾ç[‡ Åycr;¥Òm*?×.ÌånžKû8œ'%` <¼áÖ…g½%jÖf¶{áÕì‰4dúà@ºYÊždËáD=œ¥Õ¡Þ ~¾°©:Ò—<¨ôXyÁÛdJ]g_|€ùûZWwÏG/P*C»Ûqø!1Æ™˜ÉyÒò3msl;”Ç!ö—Ï pÎÒ¶ÉÕYC´ BÆFp†LD)Å… Ιˆ¶“€ð IDAT×á ¤ÓÌ2Ô¨70ÞÓ(e™—g!L#@½”vPjJ±r9Ž›ˆË&W3n–qŸÂ&´áQkrBIƒˆƒÅF¦æ8R6´¾&î~‰F.=÷öÿ{óêî¹=ö»ÿâ'û¶=—¶3ŽÈ100„È9Î2U’Ì0Δk瓈À\0‘³ÆËÃnÏ¢ÒÒö¾}Ͻ°ññê.€ˆVÄ'®RÊXȪ} ª€ŒE¤d `e3Šöš@³XÃÉ!BÖGäÝd:‹Øƒ°™SAî‚CËrQ§Öù`ãã”ïa`¨õë|,Ç4Hy %`Ùœq¬j¡7XÉìî/íì+íØ[êÍÕ£Iƒæ@u|R:p´Ô…!´Ì]1þØÝ•þéö…DÊ^Vztlœ5_fý{†þ­›ê#}G»œvmÚpÈoºW¾>jÖfeÐú~Ë­ bœõ¶$þ¿oúËŸÔGöHÛ³ÝôáDÝ÷¦ÚÈnL!êÎdJ=ËÎнô¬ìiktÿÙßäZæLþ!ç"©Ï`ü W=Hg ’{KÎÜÕzm|@GÍýóZ©šß 1å ÝeÐÄ`q ®ÇÁ “ÌjVH æ»P œS(Yb¼F²’‡bš‘ Ð CPƒ"æg¨PäaCñ3·I2ܼÓq„!3q"dº#è€tÄ¢˜R0¸/ÏÂ,í’?Ý®F–œý›ÿÉùîýüÙ§ãMÞ™_j’ÁkSÒæ³H„ßl"rIîS‰¹Ö%cƒ¿6Ñø‹Oí{ù¡cUÄÉÜŒWP_<0 mˆ×Åü,IFLsQâfÃÁmjÜÓÊø>,›…!9M¦RX>LX0€[B¶Ù®ôZIv@¦Aœ|@Y18yx>k4 mCŒ¸S.[£•ôàXvǾ¶­» #µR«äD±ÅÄ0–i}õ† ,wλw<[ÞÇq•JE8™®SÖm96ÙÙ¹5çí5?ü7·'8ãž…¿zǼfu,ÓÒCd¦uLÇöW?Žñ¿-Qëýì;,ºà=§]ùÕáÞ¨Yœíظ@u¨w`Û#HøÙ2gêƒU¯ÇÔ×áIÕ,0©×lâÁëÈ·pÛ®k²ù«/ŸwÆeéâÌ> Už¸çÛOþ×Föl0ÀA¢Eàì¹ÄÑ)žLig0 Al®w`&h1]…e‘ç2ÛeZRØ F:@FÁ±A Īp89¤²,I7`b˜¶?ƒj Sf\CX0ŠXŒX#×ÉÌ\ïñ}™MC…a·çÍï¼ÖŒmyñeE3c0°Ñm[ÙUF†‚ nâ‰{è›»½?îш7'¸Ð–E,Õ+êÐ1à1§Èˆ»ΰ ]4¸×gFP²í+ù0 ^|t]Ìܸ>‚Èö‚X1!tÀ„-ê¡lV][åš[n¤úGSåš?VñFªi&¦N„iWP|¾L ^Ø1>>6gÙÚb÷²ÒÜ•~±KZÎ!ì=JÑ+ˆª-±é?oyà—ÿ}ö;?Ù2o•—m¥(úò¥¡F:Ûý‡7|ýû·Ü¸ýÁ´ö,-ÍYÄ…:ûâ·È–ºz–Ÿ3õù\Èýg6ÁÏý$}å(ÂLùNŽƒˆ³ôò×]=Ü»+øõx­ÞC0 œ  ~Ú?è°yŠSÄ‹lCqÎQHqš8dŒœ 1®)•å–bdLS²  #Ÿb¾ ¢21 ­à ¸.ŒÍ£²ñbB%„çC:¬>NT‡ï÷Á|Ô+¨0nµ;cóZ^Úw¹Ýî¶%ÙÜ O> @A$•j'þIh#…²:º'l6&?œß©Œ¨».S‘&ŽZ͘EL8peÒdå8E|¬fÆÇ Ç (¤ ÌÍŠÊh×á¦qÄÒò-‹¹ë³°fªÍâýO·÷v”£|¤m‚bieH„b“œdQb&O’vš~“˜p˜—–ãzþŽ'~=gå™Î¥-‹Ö¤ bæ –" ®¹áç·ß6*Õ‘=Êö_0„b[÷üS/¸ô>›këÉÚ¥å¸/M0tBUO$Ü7„E«Î¹ïgÿ €tœ4ë÷«M Œpý%§]r]cd|÷Óëµ}ई¢$·E åO7ôÓe\\VsTÜj ¥ œi°K»Ì£c€!ajTðXÊB¤)Œ@€ÇpRLJÒ;4†³F€ñ„mƒjd èVe\ŒUToàíÅ :­J·vÛEVÙ€#L”¬aFØ ÆˆÇA\­U‚°ÙÔSîžµË5­ehjÖ«‚Iò ̃U$ËcõÍ1 mÓµaDu( –b~;Š]¬:‚Á=:Š˜›!H†åÃM±ºM^Ò=lÇ3Úζâ1Á` 1 ÅæîÜ=ÎZØ1ZN-ð…´2&c"  5Ñž†ë"ä¼Q7D¬¡³Îë‹T]dú£Ôö(_± ©yéeö:Že»-G:ÈiŸÊñ“ËW8i¡.­ÃE›ö÷¿Ï µ±ƒ6•·@ó:„ÉFaÖÇaùÈÙ¬÷Õî-¡cÃníðfÍ—1áÉ‘­.eX²ykA:1N`‹zLŠ-¸˜à­“V~ÑJ—ìt«òóLº\*.dbP9 þø–Ó.º@¾}îlÈo‚)"ü.ÌŽëƒcI?Ô½N¿lvËÁ$%2…Ö®Fe$]ê:I>@rØŠ}ïs×FðšOý›²­Á¥O¼øÔCƒ}»ÊcÃAPÃ@Ç1x²©6‘@Ò½!˜È Ô @o€ÇªÆÈ»L5©Á‘=Œ¼ÂüœÊ:üå@ô¾ígç†VïÐȶ¶Í?Õuœ¼—žZ¬:Í&ʘ¸‚9c\ÚžtsÒË[©¢J•¤“æÒžjÞ&o€)ë,´îòÒWF÷±ÄU||W8?öVFAL–š5‰P€´¸•6VŠÅMÞû‚íçÈàpä:Èjw^x(ÒEVBkã/‘V;ß³5ðææÿ÷Yÿ7» Ž/Ik6eÈþ´Ntê)3ƸäR Û·¼¼t³Vºd¥[¥›á–/¤â\N½ýq%ðÄ}μâ½ÔLϸ™Š“ ÂÇ:t%@åÞÝ;Ûç¯À,L9†°øÔsÇ÷íl¿ê¤˜1Ø;7®ò×Þü§_ÊÚÓ…ö\®%Ÿ- ö>72°§26X-4ƒjÔ cÆ:ÒalbJÚu5Áh"Cˆ GÓоBØ‚Ki»–¥„°š–µÓõ\/ãue§2^*í{io¼×–Gƒò>×_ i*¹@§ÏÞI{†KÅ•'Ý´ò‹v¦UùEéf™r…T“¥‚G‘-Ùi¯»tóþSÂìxx_ô6'Qn” k‚Ðq Åà¹àEúûQÙ£› ¤|æZ`1¥Ú¹ßc=·10• °àÁëBi¡ØýLhåüíjÅý[Q/÷: QXWœ±Òžq>%©3‘óMê„´˜LZÂò¤R~NùE+U’n–K›ÆÛI(‘õJûü•ÙR§5;ñó$f[„E`)pÏ·žvñ5Š ”=ëß ¡Ð:gçË{pÒ2I€#A•Þï}~ÝW|ñ™—eŠŽŸ•–å÷GŠc»qçœ( uEq Yê5­µ1šŒ1Æè8Œ£XGq¬›š4#p.mÇwüŒëû®“¶Çv]©l!%ŸŤ ] Vôí|Öò2^¶5›ÊæÓìP…TNJz¹„®ÒËI'«¼ ·|.TR'óНdKä=üà–o”‡öº©\£>šØ5¤= Vo0Àkp+2¨#Rí`"Ö,ó½{uµB–b~žRœ1¢T7“%µcS S¡È,E¹Ø)(f÷?EãÐ Ûß5¯sn~ÇÓV†ö$Ñãüà\HiûÂö…r,é bB i1i åpËSn†[žP®pR\XŒ‹W<åD~~e{³Wä˜`¶Eø¨× gPÞ»þ­¹ÝŒ³>í=Qà'¹€Ñ1™˜Øêèa <|î½,>ó’3.{O*×j{ii9\ÈlÇ’¸YÓq€1‹ÃrŽ£ã(Ö±‰ãÄõµ,눙‰Éñ@K†Î…µÊèðË[Ð/Ûjt ~ì³fŒ1Î…¶§ü¢›ï²s]*]ÊcBMç"ž [ ïá¶/\ûôýÖ¾ýOûž{¢oû“:ŽfžÃßü"øÿΰ.èÔ¦‚°S°«Qe˜FÆt3„ï0×&®˜R&e¡‹=O…¨P®À”EN ö\V;»×^2ÞŠÂó͹»GÛ¤%º¬Ü¹åQ7SÀ¸˜j´ ©¤—s =N®Cº9& \r!yPpÁ¸d\0ÆêcAq=Üw×­öÕQ¿Ò™Ä¬ŠðQ/%0¼}£íeSùÖl©köúSa…¶®Feû3Ib6 ,9‰ï}îZEoþÓ¯°½tâI2.Ü\[nÎR­£ÚðËa½¢õQKÖØþ¾©é˜æScã„Ã=§¬äp’Nç‡Û ‰är!,‡[¨k¥[¸zÕí2 ¦²÷­þÚ‚3Î{ÌQ£ý/WFãɆÁÛ ¾ûx¸˜;ó<Z6+ï¢ò(Æ›Ð9¾M`>¥K¬`üyò‹ÒLWI0Ø=ÈåîÙªûŸŒ;—³Á\Ë3û‚€T±ÓÏäÇûw»—ÅA³‰èƒs!ÝŒWZžsª•iáB1ÆÙþ²ÉýEÇ#'JàWwNØW…öy³?'˜U>ê}Krý/òíólob’.cL(Û/õzVeÚÙ邲\> [7  =§¬Éµt¿¼EGM…¤c2:QZƸàÒ’¶¯üœ“ïòÚNÉÎ;«°ø‚ÌÜ3â\åå„:žÝpaï)g]–/Í_µömmó—KÇ"Ä“”ÙipG/õRq.k¤bŽœ‡’ ¥YÁõE&Ã2j»Éqˆâ¿¥SÕØvþ2líâÍbîE½`ßH@²ú‚åkêãCA½ À˜dcÒöœ\gªc™mW–'¤Å…d\$z›vÇGØW÷Ýuëi'J8»¦ìT$"<ðÂõ±þêÈž¨Y›©W>²¾ žøÏñóI°¯:y•¶ÄèŽßûüº7ÿé—Ó…ölËÇ;h6cLZn¦m¾rRvºPx±Qˆƒ†Ž3£åé“:\+ÿ²Ç“m‹V3ÎRZ\9\ZÂò„R^^zYåå­tK2HíDìÓÃٛʷ9^zþŠ V¼î­Jeß®gt`Å{ƒßìÃBggÅ2=­R4bÅ)R9xª—M<Ï Q­ .‘_Òåö@¶þ°Ñ–a¢È‡ó]ϼ<—qžìîgBºs®Øûò󧜇 Æ…eûV¦Õk]ìä»fvj ŒìØhûÙt¾5ÛÒ¥œ“!¿ fO„|(Žm¿Y_ìZœÊ·æZ»giœÏA„s.}gï³Î_}ùìØ–`ÕIãêÒL±Ãñ2‡ßöòíÊË8é–úHomdo³:u‡dÌŒ09É…€±Å«/Úöį÷n}´ûÔK¤_°Ò­n®Mzyåå…“––iž9½É%uÖ›Þ NOÞsמÏFAЀ °—H¿T¥{«&´ k;¤7´ˆó{ä¾Þ°wÐÔbV5´Gc›†6øÐj›µÆƒ›ãñßê’AÛ TŠùÁ¼r-3µlÊ G÷ŒíÝ™ëX0+]Jµ/õÛÍx|"¿§Oȯwr‚ÊIÌÒJøÈž¨ßHœ:ËÙ2Ñcã$(°â°%6|÷ÆÖž¥“Æ•PGíÛæBÚ^FZŽ—oOµ ÕG÷4Æš•á8¨ê(4qHDc&kŽYçÈ&‚@6QÀ…T—vÚõ_7gÑ/ïüöSüè¢ÜÂ-ßm[ठ\9ŒñWHMÇf/9^ö¼«>\hŸûèÿþ७›ËÃ{k `ঠV €-æ{AõÀk Àti‡,ÆÑ~­KXf•èËö<û̼C&‰>,_ó»MwgZzˆK™éðÚ–H;5³5J€Uz·>ñÀëÞþ笓¨I fI„@`É¡8»wÇoý€“c_MœséÕÿyÛw&2Ç1+çH–¾þè–íO>ø'_ý)¦Wdž––rR^¡3j”ÃÚX³2ÖÇ£FEÇ¡‰…FGd4@d "CÆ€ÈLâcLH‹KÉ…%,GHK(GÚžrRÊÍX^ÆóS<õ¿|ת?úÎ…ïÿJ£6.ÝŒm‹™úŽÍ^$ö8çjÅÚ«2-í®ÿîÖÇï­õœ8‘6Sj¼ Ä  Ï±ÙûÏTgöÐà`Ш å·ѹšã”ÂsÏ,¬7½ÃwµOé¶î…/=»à¼u$\ŸñÕ©xü¾õIö¨Ð1o–Ê'Ùá#X lþ¯[NM ÍÚæÎÞ8Ÿ#â`ŽŒŽgvš®#1²cã¯n¿ùpãj:àBr!¥åØ©¢_ì6qht‡M5u؈ÃéØMd@ÆèØÄ‘Ñ™XÇ!-i{Òö¤íKÛ—–+mWH›I•x­\Gu|øKwüý_®{à{Ÿ¹ðý_­ õ2Æl?{âi¼Wdo‚ÉaúÝ‹Î9ÿjݬ•·÷…µz"ÁÄ -õå|[7Gi8Ös}Ù_‹ççÔ×`aOdÌ`ŸÎ[ÈZ"ø%¤VȵEÏìî<ÚB×¢Õûvÿ×pÿn¿ûŒ8jê8œÁï]0X÷Ýuë•ý&e{Ç%;K˜ >”À ü@ù¤²].N’S—ÀÚ—œ3Ò÷q•¡Ý~® 3÷EÚ¨ö~ïóë^ÿ®Žh\Mɶ‡B*"/ žÉ˜‰Á ûKcD†Œ&31åKHÅ…Å¥ãIj„q>KïGã”ó®þð—ð÷¹îþûô…ïÿjyðå,›gy'´i³-QððïŸöî?Á‰ãéYôºåg¿eh÷¶Ê602Ì€4–;æ{oñýUF ò\?±X!g ü&®o…ã‰f £&²KØ€×óëǖűu¸üN¼ÊË\ôŽÝþ_n=åy !×Ú]ëŸøqæ–ÁÉ^ò?þî§^xÍ1Œ«W…¤÷…s!¤’Ê–Ê––#-GÙ®´e{–›¶üœ“.y¹v/×n§Š–—‘VR•5Q^xÕdcéyWøKw¼ôä=[îû>+¼5«G8€éýs$ŠnûüµOß¿á²÷~öØì=«^ÿ¶%g\–*´‚,1¾~Àœ}{ó~¤‡[3q›foeú”Èt 4 ÛcJi¨@GÃÈg,nÿé¶Ó^ê/•½Œq!L[÷i—¯½ìÏ=ðCcûvÌ`®å ûÊqOÊÖ¹GƤ?ÿÀ]¢ ‡ÍyÁCXñ)íGóåì—OÚßÙ?ôÒ³¥¹+ÌÑË'^ƒ-q÷?²V»pÝM¯h\Í ^]O€€PcÙùW_¾nÓ/ï¸Å/tÌ[}ùøÀK¹öñ¡½[7þ'{žßTÞ}øï·>|ФµsÿàÝK×8^fšìàg[ÎçGj£ý[»·VŒa[‚øÃà³Tߘæß¿­ÚGÙÓ!=O- Ô#¼8Іã6Îh}däÌÍ;àèӪ㖗ñKÝ*ÓvÑ»?qó‡.<í -óVEͪ´œ_ [ÛW¯Éêw*fV„"0gSÚ”åά4MB±mN½<ˆR`Ø »6­ìî;^•qõ‚oûÈÍ•¡¾ûÿõS÷ãSÉïó-] Wa®Ú•çÎ>çðßêæ;0Î]…½in¡cÍ„˜þECDÅŽE^w#³ýÉû«åaì·ÛcÃ0÷Vhøa*Ú:ØI½€cx¤jæóË.ZP·—îØQ:Æ‹3Æ&ìýR„*v¿ç7ßñwý¦ëÿ¹<ø²PŽíg§yœGÃÁöÕü“lÊŽ™] D`É1²}cu|´}þŠ“V>y8~ô‘GzV]tâf ž‚¨öþðëöŽþ¯Þ¸z­Ô*rê9±a—¼ë#…öžl¡í”ÞäýÐ_Lü¬ ®zïÇ7=|ϲsȘ8 ¦™MÞ¢káé—ÿñçì;þvÛ÷íÑF¤‰Ø^Pû×û{ô)ËÏJíÝís4ÃN¹O%s–Ž&¿œ åeRÅn'SREËοzÁ=ë·üúŽå­ ›iÙB¿@%%I“ö•e{¯‰&‚áƒNF Ì” †Þ¾‘ÀÜT>Û2çäûÏ“ BÛ’µÃ½Ï%?[Ò&ÿUÆ{·<¸~˃úžß¼úõWž{É;ß÷É›ïúÖ›þûº–ηKËIêœO¹7’ÊûÜrã¥ïþÛñ¤u¢ÞilpÙºæ=kW_ríØÀnËM¹©Üôÿ< >•íÍ;õÂRç‚Á—ûwM!_Ѻcœ+ÛK·ÍO·ô2½0Ô8ÿš¹gCÿÎ'[æ6*²co=%€JïàžíóW89½GÓĉ¬„§ ‚B`ÅqÏo·òuÆh!ÕÉqhˆ¤¥¡ÐÚUðs­G$ðoø~±ÝòàúÞç6myp½€9ã«®ýðç¬8 €²Ëv¯ÿÊ#ýçýò{_x×§þcÜaü$Wþ*(Žþ6ô휳p%k&*ï5!×Úý†?x÷¤ÛnêÕvDLÔ‡:3µÑ°>nâ0ŽÂW{$Œ1!-¯Ð™ë\¢Üô!ëR"D1>ö•;>óžs¯üô£{w0.ÜLñÕ“*{ïºõô‹®Pì\ð{?Obš"œœ0Û?¸yêæB»ŸÛ8ñåIžÔ?o¸â¿H:>™ÅÏG„1X|ê¹Ã½[!0?’Øö=¿y˃V¿þÊùËÎ|ë·~šoí`Ù.ãœó‰í›cÂõ_½óÿ½ïü~åýï¾éߤpSÙߟ˜j*’%Àn¹ñìËÞ ¥kÁŒ@¬qùºß”ˆp¯í¦œWoó&k×lû 6uª%ufÓéè)ÿVIDATç‚Kå: =+ýBço£‘AºÐýîÞøÐO¾}ú?XÛgLì¤ Iïþt:ø%O†o¬ß_}u2&R¼*.ÂV”Êž*°S[ìí{~sy¨·ïùÍ»ŸÛT|ü›·ÊUÆùk~Yšƒ‘ál"NNxÛûÜÆ-nØýܦÚÐËg\xÕÚ‹Þô‘ÏýCò\Ûñw‡|·ÖÙ–î¯~ÿ¡OÿásîøÙÙ›ivÜPñXï@ßÎwüfÌü&8L„ë¶›:Ž\+çÂösŹ«LïÝLÃnÊÏuä{Vä:m!“ì”5Ô¿{ÛÆ ÷>Wì^vÊù×Ì?ý’ÉC•–{€ÉG™}u}õû?O"á_Ü1¯Q¾Nå¤r®sàv¶û¹•¡¾çZ็6äZ:®8;×ÒyÁ¥oý ­sÈÞà ¾…kϘøh^ã{•!œÅÕwýû?Î?ã Æ¥¨ õö=¿9YÜÎ[v毿òü‹&‚dËv iQã8ù ÿôoºö3ßìc®Ÿ=iÝÓ„øŸÛo]¶æbÅŽ¹3H`±ÁyW\ý¿úÐêK®Ý÷’í¦Ž/©Æ¸p3¥â¼Sããû¶Õ±8 Žú䄺Žç¤Š©Rw¦}‘_è8† a ô=¿ñ'·Ýúï»iî)«ûv>ö¿ßúŸ¯¿gÑ9W¶/>sñ¹W¥‹]É3…rgI·VR—ŠýU'í+Ëñ^ó òˆHV‹W½÷ã›úÿáÀÃ‚êØ¾­¶Ð:ç‚Kßàãó¯ÉŸ©ÛßÇ6!>´¿“¾QW¶k´>Ê;ž$$ .äèžm/>yÏÎßþ¬6ôÒ‚g¯½èÊI±µ—‰4­;Nlàº?uóŸþ£ ~úŸ~ˇ¾:>°›µ1ÇÏþ>¤(Žx¬÷çwÜúѯ­`9ÞÆëœbƒ®¥ks™ôÞÏt,X6k–ëßés¡¼\›T–PVyߎ :6ë6ãÛ¿íNâWÙ©|ªØjéñ ÒöŽå)¬‹ÿ{Óº9 Wž}éÕŒñ3.ºê­ÿçFÁ±éîõÛžÞøã/¾%ŒÍ¢s¯êX¼fñ¹WMþáÄÖdŒÛ–D¹w°oGb_½æÅÇZÚ»·ÜwãËOü¼sÞ²Îù˦ ,©¬ Op?q§Fû ¡ØÖ¥£@YÎ!ûkœ|Ž=½/>qw0òrǼ¥oß'–ŸõLˆ-Oʯ¡$Òè^¾öS7ßùµO^›px¬¿7ßÎc)8KP?½ýÖ¥k.ÎÚò­Ý'˜=:"bƒ?ùôÍßø«½ë“ÿ8²÷EËMÙÇ•§ ¤e§KÅù«•›®ôïª÷ë°‘lï”y e)7ãf[SÅîtk´ýÉѹG~AKàÛ7];:Ð÷¾›þÞhÝ:g®RŒÆšK®^sÉÕôßÞ×»éžõÛ÷óoÝúöEg.:÷ÊŽÅgu,9+yÇÊÝóÃ[—¯}KÔÛç¯üýŒŸ0†¾~Ééç¿õ?SjŸ[hë–Ê:0ª~¢Ïå¨×åKO[+”Å…8™CÕ‡ˆF{|Û7ϸðª‹ÞþÁb[w±½GMÖ0œ°T†§_|uÂáûïúÆ…ïú‹Ñ}/:æÙ'Öî3#H¬—Í¿ZÿÖ?ù,{vb¿Ø`β"5kÇM`œ '•WsWù…®úXÔ¬$»62!9—Ârl/ëdJÂr…´^1V²$ž}pý#÷l¸æ#_ÊÛ mÝ“…7“5!‘F¦¥ûŠënx#pýW±õé›ï^ÿÄú/üoßËí‹Ï:弫žvþ“÷­ýÕ×öµö,5:þ=t:°¿øâ7w¯ÛþŸ²/·ïU9íÎ* ¡‡ûvx 8I¾ÿäö[à X{Å:ÇKåZ:?5³b¤±úâ«ßÿɯÿÛÍ7v,8uÉšËFö¾Xì\`Àu<#PüÇ-n*;gáÊ\©ÓrgK:b}@„‡÷ì²Ü”uRŸäÕ½|»“)ÑþÝ•&´ƒs€q!§³Ì±¢±Þüí'—ŸuÉŠ³/ÉÛ?}8÷’ò„ÌFcÁʵ V®eÀø`ïÎg6?ò«õ?øÁgƇú^xôî‹×ÝØ¬•-×?ù3t¦Áñìë¬8ç¶ûêØ‹ƒ˜pÊiçüú—?@Z¿V7-%õþâŽ[/}×GŠíÝÅŽy^jzÙ‘Áå×ݰõéÍ?û§›,YsY³^c'rŸ ƒâøßÛo½è`9ÞìmF,Âa³~â'Γ‘ÔÇ Áa üë7oÔQtźë8^ú{w§–j¦Kݧ_ܽ撫m‰Ÿ}ÿ–ùúãC}ï¸þÛB*77¶¶œß¯d’äØ|Ïúeg^ ØÞs_÷p4YL'§gLüšˆ0g°¾ó™ué|ËëÞø€9ž?KÃ’,ÜǾrçy—_ý³ºië£wׯ†‚z% ³ñvÓxpý-q&þó̚χ#±£·?q€á¾¯á‰cäõÀÜòÈ=®¸îãÙb[±cî«­ZOzQCzˆK×Ýð•ÛŒãßÿâuÏ?òóFe´<ÔÔ+¯íòp*8ƒäØöô¦ek. ,ç8–K¸‘Ä=;ŸºÀøànz-ŒhK`ßÖ;žÙ|õ‡ÿ@Ëœù'²6{EÂáÊȾêè@P/Ÿ`õñ!©Ü|φ¤x£Ô9ßžmk\¶î†Þ-WFû„3×@°$¢±ÞÛ¿ù©s¯X·âìKr¥ÇK÷½[‚s–­ýòm­:ë‚ç¿úÁWTFúƒzå5ù~‡äØ»uãÈ@_r¿>¾­‹RàÕ_=ù£1'ûF•t~Ý~Ë] Vt/Z•-µ;³¿"Õ„ÈàÏ¿zg±­ë®¯ýIed_e¤¿Y/룧4g J`ß w<³ùœË¯ðjÍŒã±ÁUïýø“÷Þ lÖ_«+[òÄy^—É·¾ñºpüô‰/b7ßýÑ/ßù¾¿øú£¿ø÷Û¾pmyxom|(hTÂfí¨MR' ‚cóÝN$~Æ!N|¬ê耓Ÿ ¶\ËŽg6_~íŸp¼ÔÉIßiƒHã‹ß{ÈRâ‡_yed_ex_³^yUå'Æ øÚÉb{ÏlÇÏ "s@„ËC{^NÖMÿõOîxfó5ý€Rç¼™jùÔ„Øà²ënøò¿?T†÷‡Ócå¡=Íze¦æ½’øyó=ëO$~ÆAÞŸ îé9œt#Zqä\üüö[ϹüÝÝ‹Vå[»f5x>ñþBKÛV?üÊû”‡öõòI[/)Žþ­w<³9!°åø'ÇA$:L„Oz葬›~~û­—¯»>ùêÝmØNJÝË×~ù¶‡V­¹àÇßùľs€êhóµ §ǾŽŸqHC?ËO_›<>Ék}%ðƒ¿ýäè@ß¹Ié¥äÉm‡J­¯~ÿ¡êØÀOÿñÓÆû‚ze2)2«Pܳ¡sÁòL¡-ß:çäÈo‚¤ÑÿÉûîp|þ'‚¤èêÛ7­›³påëÞxþÿæ®=¨‰;w³›lÞ„—P^ò‚S¡ ÊÕŠs—ñ ×zÌÜÍØSPô´½^Ïëµ>*\_3zmÇÓCÛ†»íœpõTzõ«â Ä ²  HHv÷þø…¸¤`6‰Ÿa†ìì+Ùì'¿Ï~Ÿå¯2T„÷ú®cå{ŽÝ<_ûñƬa]Ïèn°Ós‚Ε3Bèg°!0ˆAoG38w‹ÀPÛ.&‰OÊ–µž¯€aÝ]£“Ÿ˜@ý ¶#0±‰)úÁ{,˲fc6eºÎq71ê ¬©ªt÷öK]^Ù¬›T…‚i¢HËÊáûÚNƒþCOJâPSU9'<.$Bå©ræð‹€ý¯ÔUÀ`_—Óž„§)ºr8L È|•ÖÜIËQóätŸqôiÜI‰4B$Œ~†É: XÉqÇ2f“‘1YÖbJÎ2f–A“ °÷ðÏÂp;H.ö‡úÚ£•H<+‚ç:óéw2ø¾øÍaî~o;šÿÒ p`†èš£•Ñ‰é ¦dηç÷À¸A]9fL ØÊéaÝP_×øØˆš,é_»õ3ظRb8@ûÕÿܲâŸ]e½  ?µnÆ=%e1LÄ/wÁ¬ Ø#ÿÕM¤ŽÐðKIÝ\ÛÌÈ¡BËlõªâÇW¸{D=ó¼îîmß9O\hùèzdAÿ5R¹Gâs+e\AýgŽ'+º(²µ0K} ¶}{qú'e˲ ·&ç½:¬ëqóò')ºg¡ýÆSÕ ÒòÀ>ý ¶Æ’³Š6¼£ »ÑtÎz¯û—ƺYÕŸŠ¬¯Gì’œ ð–o5·®7oýü•Γ8\¼yßнîØ°¿V›ìå§œf÷„¥?›f­§"$,ÞbìLàÃɪʨ¤tÓ¸A4×U_¨Fÿ™€_t…Äó]ÙTN+õU~Xs§êýÍ'Žì¾{ëJváVyø™ƒ²˜"̃t۵Ƃ »Á>ý “G`m­ŒˆeÇñgsÖu¤åªaª*R>±gKò¤ì‡ªŠòÐèDEP˜—ßÇ0f Ôi—”€heÑ¿ ¥§o*ô½y¥^§ížfßÿò®Ãdô÷Ò?\µZ!5¯È4n°Ì@ï"Õè?=0Švˆ®ªØš’[`Ñ•`Xà8(,Û7?1õó=›ÿqíê×÷G% ¸ûŠ%2ÁÅì«~ähü ƒ–¦Æ˜g29–%¦Ö'¥iB<#qLã¸ãj÷g dâsæ¤&3ÿUŽcÅ©µL~bêôûò¯Éž…"`E,!s÷Â1wÑMŒ `£¿ ¬Î¡€EEÂÎm…2w¯ŒU¯@EWöÀ*§£¤ì-_säµ™å‹ó~1Ü×ÍË_LÉ…MkÂégà™¡77Õ笋À“`æ$GSõe…."ž¦.áÐÙR¯y©òñv²e9`8ÈÌSwµ] ‹q¹‚PþV#E¾'[ûõú;- -NWÀŠ¢M†Ñ‘ °ùOƒÏ¾UNï8t®êýÍ'ŽìínkÊP—2ŒYîá#¦ä$%·øaØw›8˜‡ÓÏÀBã héÀÐHP)šŠDk†/½VÚz±Ž’Êu½ô¸s«”¦;¸«ü…µOfÒnOæÇa!.)EK·‰)™Éhx‹VÁoô€YÍhuÕGIR-õ§¿ØÿÙï×lÈ O|´ÉÐßž‘›ÿu³Y,w÷ÆqæòŸ-+PQmaÙ¾ò=ÇèÖ/Þû%ÝzaX×Ûß}kä~ŸQÿ€1›X³‰eÌœe èY§]„ÕÏÀqèÞ~@’çÔ˜Yx±¸ì«Ï+Œ½ÔÍÓ8¦‚X"ÆèúvX” P›µÃÀrš£þøÝ-¤D2ÐGË<¼\‚fƒY5ú[ Pù#mÓMûõ†Á{]—ÏVGÆ/ŠNX¼4ç…ßî:ˆÖ’b °ãƒco——¼õ—!]/%w“ÍÆ_Þ¡°Ê鸤”=åk¾Ü]âæå‘8Oå57>Õ78º±ˆ 'Œª:àL|ãÏ<cÐz¹>42ìÐϳjˆùßíÜöëu¿;Ð×}[LÉ\Ê"pЪH_ñ2(ÚÚa9ð TÆ%¥tßjŽˆ7@îJgŸmôǦ2G¤íhnèhiLÉÎR-JLJä“Çq4—2†c,á ©YËó/ÕO]±Ö0:B’’§ÇwŽ ü‚”Š@å¯^, IÒvµ·5_ì»q¶îè»:m·*=ßC›¬ŒYäåbÝQ$"Gf ³å3²jP?ƒ ûµÝ?É^ N$0˜Y˜§Jõôpëj»™`S2¦‚E8îÓ§OTm¯ü;8%1Ër™§þþû³Áñ&£1›\ëŠÂÑ—.œ WéºoQ2wRLÙö¾–îhi´!mVîŽè„dt±„²0Ã&G˜Í,¬z¥tSazÜâe`Q|W¢ù@–ú£:ú£½[b’–,HÎòRD/HÎ\¹0‹[õw5š{½ôÍK_óÙ›:m·*}5¨ž[í©˜›Ì?šÅlbp&pìú·šUŠÙ4 Œ$tGXß7ŽAg[3(•¤Ø©*Žaaý{Ñ |ïn‡˜’¹0°AàPW«IHοà0‡êg–…ø…Kþv`ß²—×ë´2o˜œÂ²ã Íù¹»o ˘‘Ÿ>"mÓMGs\TÂb>iI±ØBW GFÍÓœ‚åÀ'@¹þÍ}+Þ(yëÓþž;)–º¹Ø¹Iëuô¶âôüWJ¦åxø((©ÇEpÀp€Yƒ²<>Àwµš¦úæÕFåüEž~!SòYJÊNiB£ £#‚èg°ÇÁ0@+'ô³“í¿& Âz %|þm&@]šÿ8TQ²­$B{2O †ƒyªT1)B*Ú4npm`EfÖ””ÖŸýjQnñ•ºêÖÆ“wšp`£’—æä—”½í|ÒN(䙟…aaÉóê/?Ý__S…„4!–¸0Ÿ„¾z½ŽÞR˜²nËÞy1‰ÞŠ@©ÜÝFr¼W 0Áç´åjÄç—ëu½ÝV>{øÎAbÛ'pnêò‚ó§ª×lÜcá²ø?lp äJšH<IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicseffect-opacity.png0000644000076500000240000020101212536324504024053 0ustar philstaff00000000000000‰PNG  IHDR@Ã|¡_? pHYs:Êduh IDATxœÌ½w˜Wu.þ®½÷WÏwÊœéU£j«X®’Œ-ãFµ È7¹7››‹áÞÂsCâp¸± ù‘F±ŠDOÀ€ãB‘dl-ɪ#¦fæôò•½÷ï335[eŠÞç<óœofÎw¾öîµÖ»Ö^›Ìª˜‚ÉÑèaøo–Všnd×Þ¯N#¦Ü® 8ô­ ¦§c´¯c‰ŽÚ{owºot ”~òÀØÀa¾þXqŠw@8àÖwxIÁ5±Ôìî³7²7RË`§g÷+Z¾ûî‰ ñË6±®³¾ÿ‹A} ñÞm‡ÿëK±[?Åâ­Ìm˜­»Vç ôíwš+Y×FJ/C¬uVv;[°aßÈ—n _ówkF¼ N=cŒ"Ô~š|òŸU¾OîÔƒÛEy°¸{+~åØò»Xýåp›!ì9=T1s#ˆV½áþçù¨Úÿ 抻À&ÿçf`í›OÚ±ï @¤t%$ïŽÏ&mëýÎ{ðº·a§ ".@svj³€r€\¬cÃ[ÿ׎gÿŽ]ó!p †sA;£Ó73ÿÍVãÕŸ„ @üŒŸ\xÚ¨ÿ×_¿?þ¦/ Ó›Å1WiÔ-Y?ü«²®PЗԓP`Ø+~ïÑÝ_ûCzý¿ 4Ós­Éû^clu`»* Dû¶±x«h[g´]Gë:ï}¤¸usæÀ6Ö}»®fI8` Ìœ»C§lGnºÃXt“{óŸòD'‹·‚À˜yÎz"…bwé=«ï_èË›«KßÁ¿È"ÖáLîÿÒ#x&êê}iöoUû¿yÒŸWÜó2Ÿ¥Wþ«À‰‰©Ë¦e­.ò˜g ‡gâȶ9þˆyÍ<ÙEf|÷/œtç䆖PrÚN\"(‡›6¬ZwÛKû¾î;±ÿ›…ã/òò@´oóZEû:£í:Öv•õæÿoòÜQ(Ñô®GK½4øÉ}Æþ ‡š»¡ùԫƃû·‹n!âdzö¬ J£@íðôñ¯¿;{äÇâÖÏ¡4 §™k7ãÀ ž…Ýàß>–{akìÎÏšKïdn#™ €¿wëË|üþúƒ÷L¾z¦~ID—=‰Ì޾}ñkþ'óšÉôNÁ/RÏØPZžþ(. ×€YéÐÏo¥=_ÍWð¦ÕbÙíÖ›ÿ‘jŒà&ˆšù3R¨¸æ#Oýæ¡á³‹[Ô…~bVjŽõ¤«Æ –@ÿέΛ¿†3»ŽM%„THßûHúÀ¶CÝfÜõµÉ½{-îì>"ÁàY¨Wý‡>¿1ŠÂØŸ1—ÜQc/¸©5˜+7½Ìj=qíÎr †Öžû_¶Ê÷ñÔâšY^p¸–6ÐÎ-›cwnAÍy6ÜÙý ¥4¬S}›èÂy-³»ÿ‹-àšH„ý/}a£ ÷Ö¿0—ÜÊÜz²ST úfòö4”C ›Wä©íº,zòOÄ-ê\/¥ÌÄ\íIœ±šÑ¯’˰D'Ía $ >ä²{®úÈ/èGïSG~ Åa¨`Ö¿î`r$ììM¼õËæÒ;˜×LVüü‚=ýÒg~~„Ô’õò`T8G'u=Û`+Þʼfžè Ó›õo‘<Õyb[ÉYÿŠ ƒk nÁ8¼mÿƒËd&Þú¯ÖŠ×ód‹5“•3ÀˆƒØËضb€Qt¬zÿ£ª÷gêèÏèì„¥¹8àS <úüVÞ¸ {Ž¢S©Pô1Á;–üïÉñ_FOü±.¡|AQe.¾ñÜa Ä-xã;¦Ù˼æµ’Ÿ£«áGpê:ÕØ^0¡e°àö,4£hçcöšw¢f~çàÄ¥‚œ.è…'0#Ä-t¤¨ò³ûÚfcé©ß}œ%;Y¢“œºó% >‚¥÷¬zÿ£ÑSRã0‚¢ê+}îü{æ†%?ºÓìÞ`NãR ”C|ÔßûHÇÚÛÂï¿Gü• êvÚ f϶C_ب¬ô${ãmdÅçNb %Ú®Û¤‹C`ò} 醨ž…}ÿº9vë§ðºÅ˜ó @O ÑêØSÀÂ[`ƒ#n¡^õûÚæñg¶87|Ä{í߀Ot¿ JѲ{:n½/úõ]Ñ¥ùYw3OØä°&Žíe±&–è˜ ÿùø >Äu÷¯úoß`Ï|L¾øe( (@úsýí§À5°!oëýÚfcɉ{¾Â¼–è +1§Ù@Âo\‡jFW3ÀxÔ¯bÝ¢i ‹·Í…ód_õ»Ì­çÉ.± –¤BÁ‡wçgWÜþÇtiD‡àϲ}:A`KÀìÙftoDÍ>ÏxïÂ)”ê7¬ºÿ©¤ß3åN!("*Ï›¨3±(Mò×רëÝùÔT3>×ùÉ@ñN»®]g I`ÏB+õ}ü!kõ;0Û‰ßÓq’½p>9è÷|Õ\v'‹5‘¿x'4”(øhxç#—Ý$Ÿ}€.ô#(ÌÆOâ$çz¶Ïƒÿ| ´F)ÀëhxÇ#M]—‡ß:òcT3( "(@Es}ž…®::úÕÍC?ø˜µöÝÞŸaNš'»æÔþÌD(Q·äzÕÿ Á<œòé09< G¾=•øM-šëÓW v]»ê{ÀT-Ǽⴠ÷ÎÔ{Ââ-Ìk¹Áòlð#}Ô½þ¯Ü¾èÉ? s½ò³²sL˜,¡~ÂbM,Þ>þó)¨F(øˆÝñ™eoÿì¹ÏEÛ? ¥QÈÙýk`„„…ÎýêæÜ [cw|ƽá#Ìm +#6G_z:‚Zìçè|ñž«g[.;a.¾•y-³žø=R#½ôúÉZ-Ç<âLAïCx¢ý‚ޗA%„ït^ý‘§ŒÜ¾Y¥'o’%Ђþþó*×ühé=«îÊ-î¿·Y‡PG¾aiÖ‹8!n¡ýÓì5—Ö’½qˆ +–¼@%³MîšÜžw/:fbI=õ|ûgý‡Psžçþ œ¤BOÖrÌæ(è}”Œ c.DéžýùåQ+Øçíðt]ÛòðëwL%Їf1Å"â6tÿ¡ÏoÌ~f’½±&²f!ò9_„fçõdM’_תVN$~“ó;H}Â…Ö…y#ðœ½/ƒ‚|zê÷?:»¢ô ï}ô>kbñ¶ù÷ŸOA%DÁGúÞG–½÷Ñè‰ÿ=ñÇP>Ž 0+‰â³”j´•X×Ci­×nÒc{`~‹¢= ÉÌŽ‘=?›‘øªF¥P®ß0c{Î ßùˆG…‹¥A00ª•ptoÀR‹/ÁF' ¶îJLì ¿ÿ5òTÆQèC571j-O}͘Màèª[˜RsÔµlðzu|ÖQåäãŸ}ÌLüà©îù4¿5H5ãÒŸOP”Àf¼8ÁàS/K ÎAwUúÑ£_Ýl,º)õÞÇç3è=jIÓ–Íð]_8_QºvŽ–€-°!,Kà„ÿ|ÉÌ雉ZÁ–¬ßpõGžøÞÇúðÞÉ?¸M¬u=Ÿ>lj]OñŽ™Ÿe—mrLÖ‘¢£_Ýœq«¹ò­±Æœ4™Þ|&{_DóŠës»Ÿ‡z³J–N ¦ŒO24õcÆæ!nÁìÙ–ËNÄ®¹•Å[Éôæ “ŒAõ=ͺ6B©é¾3§ažÞÇ„å ömÕ€T¾_ î¨u;ÉíÙ6°VÝc_õ^D>O/½ZÁTB0§óê<õ›‡6ªÆ5ˆØÙÚwÔΚÁ5@æú*{·íÙ*,ŸêH¾ýë¸ÄüçSP+ت$:—oÈù¼îÕ÷‰T§Šü ÿÙ™ÿVéÝõžô›Â~'rûš÷[+î"Ó#+1ÏÉÞW„`è\uý¾m ¾ñFJ_Féå`‚¯x òÚYÛú3|æbcf³”—{@c&ÚØÉírâÖ+…%×oøö?‚±©%gå§Ø® ˆòýjpÇÔ/wLwkóÖ¼µöF$Ú«ÞR{ßùžÇcøÅ}–¹ävU™×|éŒÚ¥#VÇÒMŸÝûØÎؾã„gÁàômÏïÝZÙ³ ¼Uw5Ýù 1Ãî¾;cÌ„%À/ýçÃuoú[­ ÛôšÍT×ÌÿñÖœ˜gϦžaÁÑÓ´Ök´ ÀÄ¥Æ^N09r£ýñ«6§oþã¨0¬ªyÎa+€0×W9¶µ^Wó/Xë:Š·à+Þzæ=žÐäjFû±CÜÂÀ[¬Õo›j—3ßÎs RÃ`µ>qBÕàvb¤€hßd?•ïWƒ;kïíŽu"Õ“ùi¿éA#u’Ã55Lw*RR³ú¥ë+•Œ‘ê¾ÔÌ¢¶äžU゚žhßÁìTm c4ÉÛÊž­™½[«{·Yí×x«îjø½ïŠd;2\a ðÆ)ùê;½Sà¨ìxXtÞ bM"ÙÎ ÷å£Ãé,…ŒP°âµ÷õöï´¯x´†– .\ÍDÌB2ìÿå·?Ûþ¾ïj:Ý7rÓÅÔxħnK¹w{˜PéÝö> ÿƒ÷€×V3ÑÓÄf­ëN %&Á„cpo|ÇÞß|7þÆÏ£f~èRÁ¡Ž=<²‘» N÷«jãNÝU3li׆S?ÆN™LO'ùܧ!’èÚð¶=¿ù•Ùq½Ž|º”n½®qxé=‹3}Gžú¸¸õ³º4BN*nO:É™þÕ½Ûb+ïJ®º«}ÓjŸ"Ã%â` ÄD2³c|Ñ͸´ýg&‡kbßO·¤ßô·˜á‚ŸGÚ¶¢sý¦ÃÿðtõûT®—¬ÄB™Óa x&^ø‡Í ¯ý´éEd¸jÆà4a1;¯7;ÓˆfûÊÇvb±ËÏ|<Ê `“Nø$ÃyÇv¼sÿ¿m¶¯z¿мqÕ¬·Ë9w­á,¾©þ¶©.‘h%fœÆÏSš(žwìH4/»^>þ¯T¶—9õÚWtN 5 >Ún¼ÉðΣ}ÏP¬ÅöoGÆöP¾×[uwråëj¼%á€16Õdb×W>èÝö o\u‰ûÏ®‰êއ®„×$’íÌ<¿H¦¡Ü°!•Lø£{DÓjD•9šª~¾¨å9ª;Y,ÙrO´²ÓlšËúd—CÊ©8Ñ[Ó‰Óˆ Ws³}•Þï¨þüã}Ù0eˆ¬¥«`Ú¿Ýj^EL03F³Ýƒ­†@ÂoÚ Ç&sìZút)gЋ·G?¾Ïl¼Ü[|“só¹Kn!.Èp@œˆ¡ö: B4­Ña™„}éø§Ãäp ô>·Õ½ò½˜»€@5DçúM/ízR4­Öa™¢ê¥0fy&Uÿ/ôPó=ÿ€™Þy¹B5FŸØ ĦD:[ ÎÁö?]Rýí—ãw}Q†ÈJÌnËØsg ‡~µ5ñú¿±9b/j•ªºÖo;ú”Ù½qþ{E¼]*FسШúŸh£»ô5¯ÿ+6wÓç¥Î09ºÂÖ2¼t†¥Sà3Ìo¢."Wó¢Ã£OP¹^.¤ö,4éþ[?Öpç§õKi¾ô¤R€ºWßg¼²c ™éAXžŸ¯ž†)éÙi5¯À„5§qx(Á’é–EÑh­Rõ’ °k ;M‡¶}, Æ7|ŒéÅç«­²°o; [åûõ¼ßÂs`pÍ™æ×½˜¡zRÊJÄ'oäÂyчgâÀÖÅ×¾CÄ›E²ýtíjîHÈXçÚw}Ößóht7jŽôŸŽ™FX‡å¹hÕ{.ˆY ƒÛÆö?]÷êû0Ó;¯¬ØÅ£€Vlj_·©²ãïÈܱùt¤MØæ,ÙÀHuÎ%—]/¿ÒÇ‚zÑ5á ·õ?±¥áõŠx³‘ì`VâÜæ7ný€Êö^jFX°Ó¢ß‹Ö/)˳Ьû÷ë†×~ €HwÓù½ ¥Q Ð~÷§åñ=ÕÝÿŽÙP³HK(ºí^®5Ÿ%9¼ÝjZ…¹\B`& ¾rSØû•Ô çEÏ®^÷ ÕºV$Z™»ùƒU#¬½ã}“.å%F`×@l|Úü¶ÌJˆ¸àR–9å<óúÖY¿óƒjë¼âŸñ÷~KGTaðü°tU¤h\W©Ò«Š=ºØCþ…C*8®£1¨ dªJ:4g“þ³³´6…f>&ÀI5™L Ž>`-ð´p¿ê]îòÛ…×̬ÄObÕîª{ü½ßDM̸’+5p:)ú%#6[ù÷…•²< ìà¶±ýO§nø#œâ÷bQ[”i ¥ñî¯kêò÷|“jÖËOLÕÐT•d‘TŽ¢üq”Gt¡_f{£±#þÈ‘høH8|$éQc‡ÄÄ~5òR8¸7ʤêQ #œ0d!öDa0 ¤™$ê—mÇ÷`r1×ÈAL W¼áòº›þ'fÅ/æµÆâ ^K£,Ö¤Ã2]…þ®9i~-k° ÊýžÓRÖüWeÅL4ëþßz`Ö¿ç„iêj=µü:JÖ¾ë¡'ÿòfcñ­¢iJg«ê!-¡J³K2¨4#&ýH…KËZ¡Ö€®pË¢V£ÚƒYµ„UM¹q;™L4ÄûžÝf/~©€ c> lµoˆ~ö&k*Óó\F:-\åö·Üû/Œô’‹”u€j„•¯ÿ°¿ç›¨é: ºé•±jŸ¬ ¨`B…EȹÕ#tM‹^~}TÓ¢ç1 ž)\5¿ýŸE¼ÙHv2kV æ ·Bi1äÇ{_M«ÉpÉppj!#$mÿé_èôJ«eQ¿˜Ù³¼À¹ÒòãÇj§#snW™XÚ@;?s³»â ±å·‰d;·S&<^&g?L/Q RƒmíÇ~úÿÌEMfŒ Z"D]ͳâ`ÜïwË}AvHú:ª"ªjYEX-åË ¿Ã­Rè;¬ªƒŠKI^±œJ6Sm0„BAE GënOal_¹-ëlJ"¬PUU5JÐÅȯhgqò ¤YghŒáØÎ­f÷ÆÉsœ—[·Ð¬ûŸhcÝ-ÿÇj]+mÜIÎJÅÉG¶¡kýÛü½[¨Ü±…­v 4êþþíů|67-æSÊ 1û¿ù@ •øˆ  `;…!¥X±©m啟GMÍ 2¤ ª2.óÃ2×gíÖ@‡1¼ØÉժ΢¤ME+*,îíɱ Ôf“A6ÅrL°š’*eÓ¡!Ÿ3X´@HT‘:­F¯-xf65z÷º}»Zò¿½²éFÅQ­æÊ "Óɤ\ÿüxÑÓ•³æmîòÛE¼…ÕÖ Ÿ L8„߸Á6ÅŒ|Ò”ªàš8úÓ-ñµo`¤_|ñÆ1ŸUYž…ØøŽcOlYÀÄï$ˆÎhÜ´F9@û]Ÿ¹rtTYÉlŸÌCî¨U8"‡¦ibes¥ÉUí 49ºÞ@§…îMÞ7 ]¡M•ˆ¤«´"ˆ´a!/õиvln(¸6ˆ!;v4ÝÑžWTfqdd¿1|¸°ë%»g׫Z‡uõhäOÌQcÝP!¨_º~ê¦Ï9§…«R>›¸úÝ"ÖȬø,êv“Ö@5Â寿¿²óóÐJfŽÌANøÜš¿š'›ßÙŸOÇüHY®ÅizáK›Ý¥¯YØÄïË£!r[—Þù‡¥§?©JAß.?äަ‹G›ýÞ”?¼ÿ…]ÅʶÊ;Ès½p°"##Ç¢zÖÀaIÄ4 Œc +³!iPÚ´/ahm0Lø:SDäSèS9jÔµ)Ç0|É£ ’&w ÒÑÇ~Õs…{ÜÓ£²š™##ìGèZÿ¶ÚÔB•9:wjÂU}Ô¿ï±ûR¯þ0£nö{÷ž p Á­+6„Gž„ôueBW&&³J*„Š Õ Tú´×YášhÂLó;·]óç´*‹NH9HewôþlË$~Ï77£eäW3dzëïýxzø;Iÿˆï‰òƒ2ÌPTáZzù»zü äé$kŽ!á€8tm È…:[Öž%,Ž(D-kh0Ѳ”˜B˜åNb`6¯H(RŽ­ã¶¶ ñp¢ÃÍÉʸVsâ~ãz9öÒäŒé^ôìašê&™rЊþíqmÃ>+âÍ6WáÁnÿÄô†m`yGrïwÿ28ôx4ø¬,Ž€Ìk’PTp‚‡'7ñ}ù³šj=F/󑤱iñ¹nsRs¤FÎD[c¢ç§Ÿ·V¼Qû9rÒtý¾k¤­õšõ14Ä蹇n†SŸ¾éÃ$l‘l¿°ÉÌçÉ\‘>÷Ž9Z…ʯ• EÁªÆñ†Ò¯]·IVòÒBp¤¡Ë2ªeLi-}H‚ùR1¥ã\ “t„H!PTVÚ˜¤tLÙ½OXK®ËµëÆBÍAÚÄARCG0$uÔN}²'kÂH11û© ˜,³·P¬ðÔ"f§¦zb_È“V£+M5­­³-6–7О¯þj¾ÒnYcÔ/åný\(Þ' ÙR©Ënk{ÍýA~¸:¼»ðËOŽÙ)Z¯e‰vó²7³x›Ñ¾îÄÑssFBbêçÎúÄ“tÖËähFÿÏ·?Öö;ß@fìœnÞ´¹ ª_|UÖÌõˆ` ˆ²}ÁÀÎÁ—¶îÝ^É Ôßù©`¢'vÙëæ5ñ[«š$ô.Ž ”¬Bk&LM AŒ¸Á2¸©{VÿlQztÐLdÂ(†Ò€„’\O8–S- f92¨ äH¦«ª*u6B“æ1¦Žj¨CÒ&P  ]‘ÚÍ÷Âjq@–ë̱P‘°"m3@‚†ªjt4liÌ4ÇRCQŽë:Ðì×õK7ŒìÚî›u䓊Î%£s"7uÓ3(åú‚¾Õ\4°c¢Ð¿¿w'€ú;> ­ˆ‰9Z|ëÔNŒô ·N8‰x×µö ï%‚ÁíÙîgFžßZÍôÙi^v7‹·‰¶u¢í:žh?q†§òy&ý¦©{Vƒp’ø\·è•‹7´ÖÐ Æ /ÜP_X¯¬iƲ¤­öïÌîÞZ=¶ƒ“Š/Z×xÕ= oûô¾ÝfŽØ­W@k´] G IDATUç/¦šƒDúLC[T9n™Ò0QÈV‰{Ür@Tea™ôg˸ë²Ám-7‰l1+EžLÍáA'AÙH•T]Œ9‚"ÒÅ@3ŽfAY©s>†KjQŒ ”k²b¨K¾G$FDåã¡QUtÜ4Ê’UÊÚµH*hA´Ô:&P(ªÖ°˜æ•áJIÙcsA`J¬¼'øîçœëþPåŽ1·þtvMÓuò"ˆtõm—ùj®ßïß!sýAÿN3Ùï^ï$Ûâ×Üm¥»:WÝøäÿ^Œv:7h-qnÃÄùâ¤=ûw¸­«µ’ D H§ëzwê®Údrynk5Ó—;òÙ§ÿÌϘ—Ý-Ú®cñvëò7Ÿt Nð™½âj Žî4ý×s[k]cÏ©¬‚ô¬4T¬Fh¸á~ÿ1ÛYÿAU$+q6ŽM3–ÖT¯¸{kñØöâîm5Ò¶_uwüîOX©v̰„a_óþâ¯7Êe·ËòŸ³Áø$A§”\Í€ m·œtTe0©ºÈò E¡Ò¨Éò£aR×­pŽÆ¼îìx Á|pí¬\Tê-Á#Cëñ²&¶àŽ”…’Êrf+ÒÐ E¡.û® U)‡Pݺ¼Óá6G±ŠJ =“D¤VUB",UâFUf Lgr.Ku9–P¥ã,Ö¤£€±i–¾ ] }Ûe~ èÛ!óÞ¢ë¬T‡“lkºön+Õïž\:ƒØdŠÔXúªM{Ÿú÷Ô†DÙcÌJÌE |âIª-štdûÖ+îÿCÔè7Õ ˜Œy¥RWn"BÛk&ý‡‘ç¶f{¶ûý»F¾÷~浊öu¢í:Ѷn¦³=¹Cbgs¶]G~ò·µ®±F]×¹˜_ˆ4A_ ÿ\ô”ulÏ7ìÕ÷ê°2s½ÂIÒD°O&mõØ¿gýڻ뺮Yö¡ïÕHK†EÄ4ˆˆˆq©•è¸õÃýç§7µÿÞ¢Ü1Μº“N_Ïþ3 ̸&gÚÌ(õÌ º[í¤—êqËʨ˜~‡yD…êñ¦u•°ìêö¤°Ê+Úö%¡&Ò¦EÅPç*š"pB\  ⊛„Pgg(øš8<‡ŠÐy…’_Ì|¯Ù®h‡… ‚lŽ0Ð$4`ÈçPUŠAcKÙde)« Šp–Ðq¦Jwž0X~æý½ÏØW¼ZZ'—~•woݳÀLº6,ºÎ\~müž?·ê&›æ×èJÀ‰GzêM(Ñyë}/þp‹?¼ÇjY­Ã2æ”À‚#õ ¯aòÈÎT't Ÿ# RWmª»jÖþ7T'úrGvf{¶çÎ'x¶ æšØûÓ-é7~±%þZi(Z<4ia.ŠºÓ¨yч¿øßíÕ÷ª\/³SÜt§í­)­«};ÆwoAÚkãW2¾hÓÀTÿÞ©¸_iJ!âÍë¯}ë»ô' ¯{0Ì3ˆ3;9ã¢Î1H«Ê8™‰i}.f­Žõæ^:f-aé•ÅD‚÷çE?’Ê—QúR*(îUêÖËßn_|õ-N¹(ÁÁM¥É¯êˆÈÐÈ3îr%•æ q\¨#Æiªp-V.+&‘4X¨Tf°‡SÒ "iñ‚ÏHi× ‘Ãb•ªbAèL•g3ªµ¥Ú‘¨©ÈÁÏD`]›Š¬4ˆ;ßAœ€E«^µwÏ—ÀLÿ÷B;¾´@eÏ6õW¾@çµop&ºN9Ö'ÞœD,ÙÙ´|}ö—_h¾çïÉfÅg]9A`ƒcìÐŽXëjvz;1Vkhœ¤¥©«:k|>÷àÙ°¼â/féeÌpŒTç‰â ­I“7é4K;{V«&e¥SñÊØ~ѼVk³ zl{ùØŽLÿŽÒîm^×µ kïžAZ‹ˆ@lŠ´§ÍÌ=Bó-÷?´#ó›GWo'Ž˜ ˧Rܧ­À7»ÐÄdµ¢!oPDímvLw<3¢ªš;4š×OïÌ߸ʺ, ŽªLEûŒ4×`ºaIÿÀ‹Æ‘>Ók U¨‰[Œ)B@ºªPô£˜K>tIB)8ŒüP‡@d*f€kÒ’ªR‹H58(K#†RÁUT”6 ªJÈPû:Ô “TU•JŠ~½õ*Ñ™/i(- ÐÚ8ߋȲÇûÂ#OdÿéU‰e7 ;Þrí½Þÿ/'¾á|èzFT#ÜðÞ‡¾ó§7GÅQá5é°2—f8~p»Ó²5 yž’÷)Æù܃gžê×ÝÛûÄ–øº„=VËš“BD­‰p1Õ9‚®yÍÛžüÕ3Ä­àðãåÑ*{·y]ׯ]×pÕ~÷‹“ÿfØS¤¥sÏpÔ2_ùû>þ‘%åx³»ì6åçãó hÕ<•X¬´ºËZÜÕ\¨–4ÇÑý½ÁDÞf)mȇxòEÿ†åF*&Ã2Ð:"Kk“MmknýÍ÷Ò+Û™.K%"nq×Úä`AHœˆ+åKh¥™&CCšÊ,ŒT¤PLE¥PÆ{]×)…Z) Tª$I[1©# Â4µ(•1:PŽZB¢Pku–{Ï@DLh­hÚ;7 ‚aÿÏ¿Uå[[oú}»®ÓH43Ó™­è$OøbàGˆµmˆ¥Û /|³î†ª°Ìä,¯K|ŠÞž¸æ=H\l¥õ9Ϲ#Ûeÿ®Cßþ]ª’µZ×j-µô§“¥š˜Öú ömVarp†¡~ÿÅGøèsnëÊ䪛šÞû"Ž)Ò‚ˆÎ²¼Å¹ (¸ëÏŸþÖÿ¹Ñl\¡£²Íœ4 úÌõÉ éƒOŠ· Ð÷äþ]±¸õÊ–ú ŸwŸòCOG—¹;„«ÒÂd‘”¤ŽYµeà„×Ô}EqðÖ¼6R‘¡ËcK ¦™Á$©J•∌J¦†" µ&‹¤Öþøh–BYÂj`ZÄ4¸Zi„¡f¢† ¡4Šš‹(ô|†H«³×i`2Ú:Ÿëg0FvŒÜyùûc±4·gu÷©à\iT#Zû¦ûwnû\Ý ŒrýÌJœ‹o{î˜$°`5ïl}ã_aJÁšE¼LðlrÜø!<ù7î«Vûµ²4N†ÃQ»14©`c¶Ÿò`„˜‰Êîm/üpKë«¿ñêMf²ÅL´2Ó9algãîVBp³cãû?÷Ô¿ýaÓ–åœY¿˜Å‰›ÄMÆÌ¸‹ &zÁ¸Y¿€Vv6tvW Ûì[tí¬z¼Ü7”€†Œ 5¢äª82.Å™#t¾¢©-Ç@=~¬GW›™#A¨ !x¬Á°›ìîš0¹I~ Skï‘_ùha×7âWÞ;)eÍ^uÊ$ 1²£æ?[©v6Ç3ÝfÏRa¢ŒkþàѧÜ8ñä_·¼ý_¢l?1ÁìfºFsfƒ=©¨ÿé¯?\qKó†÷˜ñfK2+Ft–dž*J9ÿC*U+MW]{÷‡þèè¡gdÛ]¥RPZ³TX–Ämny˜ç‰›E½㻣ÐolªoëjÇùÕb®8¼c`·[5e亨TP Àj œ÷õQ‰´K†ÐÈçGùFY¬>¹ø6/Þ˜ÂÕ<䜃L@" ›àj’ÐD$¡-ÖºvªÐ àÐÐÌj^2>¸¿Ü¼JøEÎ…æ¦ €Ž´Šˆ@ZC[D²¬5T¥R £™ã\X$¼YÝ਋úÇï\öÎ/àflöÍÕTã1b,Tä&;×¾ñ¾}Ïþ4~å½aæ(³³Xá?E`†òD¿oP3³õ¯ ”CļÎ[î쇟¼9óÌßÖÝôápâ¨Ù°ŒLo®K)])úÑG6Ê0èx͇‰›"–z……¦ rP ‹Çe Ë™°0¢U¦µÔ€&Îw™pˆ3f3VÂ|^RUÇÇì°®¹Ù®öê¾oëæLñ×ú,•ÏW+Å Mf¸àæY‡“QëGsÊýZÝXØxÕÆb)(æGó…JP‰ü’)DGSg>ÿǯ|ïøXÔm‘Ët„ 4@(+møÚ J…¾&wÛ±úØåwX^ƒrª-Kk‚è 58¨ª5 $4R@½ÃcqVÌE‹ZL›ëJ!rb:J¯ÇKu‹‹šÛÚTÒâ™ai IDR;ËæeKsÍuÆÀ‘|ÌUu˳ƒ"ûó=AòXs$lºèDŽý?|Øm]k[c&Ûfº[­<Š@Zkù–¼êm/Lå“TXæ³O`ŽÞ[“Ëkm>y¨@>¥‰– ëÞó™g¿öQ«õ wÙmªZ`ŒÏi‡=KÀ³°ó6W3«ÿûwÍD³î"ç<(TË;@PÝÝÿó°2.ý’Všˆ™`Z+RhpAAIHh 0‚¤ò¹Qž-=öø—ÍevÛU">â¤Ûìt³e˜‘da¤,îzÌŠƒ¦T®Ó*Fµ–*ȫ҄ 2Fr wÒµßËüöŸíÿÞèØ¡÷½ö-íÉær{óh&[QiY¦eWùT¦ àx¨c#p ªÁêPÉþmip·aºu×xÍ—UæX¦Å;ÒŽÒ¡abY·9x¤ª¼„Õ×ç·´º™ŒÏ —¯‰õ÷†¯ºÑŠJáp–¬iU*QC3ò‚u« ï@«7ª»81zX.gÊ%ý%“áŠkiÅ:^šu…EþÁ®¦‰ ûÒåR³êD,Î-dOÞŽóL¡;êeÿ/¼eÊüºÌ˜m±6šjµÐ¨Fp[74-__îy²–žÅ‚<©¢“±CÛ;×¼ ÀìÙçŽRˆæ÷wÜqôGo{ï‚sÎÄuýæ 1ÁÞmƒ¿ÞÚ}÷_š‰f+ÕÎ,—˜8ÝúiÉa‡öïùÕÄ‘>Ô„"â#¦Àj™ôdË‹ "!Iä®0 t†@$`XÜN,¿õ½{´Åmè`EYV2(N¸È4ÌT£“è˜îåÚav’9ulf‡#­´ ”_PANúɤê\ÑÂQ+G™R€h8ÝPmm½«¨Õ÷^zéºÎ®dÌòb¼š -=ÏüGų¤´i€"°¼µ4êÆ:¸þÞÁ]¿*®H,zׯñѶdJ44Y¹ µlMbâx%ݬ±¡CÑe×åUÑСhÕöèaY.‡M‹DiL)-»¬ŽæÈB˜ì&Ãi€Ûˆ­mÝ´˜"»ëxß‹v}UûˆF ñ:Ûm¥ü¡ .(Þ¨3pCiø‘¯¼41ßA.í ›ë ×u׿Ô?|h¨~`8ÁízŸÏ޾í[kæ3g›ÏŒ]_Qmy¥òû“„€aé«Þö«¯|´V)ÌÎ^íw¾ ^s¡¦]èYÙõùB*”\ùûŽ\2ò­´ÿÞ÷£Ü 1qjÝÒ,Á3‘ ûÿâæÔe·Ö]~›™hæ–Ç„uR¬55ÀWFŸÛõ®É'O ­µÒ¡¯£Dš1I()Å“ U‘LƒuŹÍt¶Ì&4”dI“i¡YC‹óê»>ÿÏñ«ÞÅ¢œöãNAuˆ%W^qåmoÊgißþC¥ñ!Î\2cD\Ë@%µ.+æU&FFš¼Eïºí®0B_±0šgA¤=ÇÒ=A¥ b›Ü3íÖ4/‡‘,F{žïõ#º…á¶kÑP±!\y…9´kgaßžEWHïêe «64®r‡vU4«Ý‘žJÜ’U[']1zÐ'A9*g”ƒ_òe(£Ps2É€¥Œfir´Dµ¤‹GR…M1ÚÍ6o. õXÍk„§+ýQ©B^Š+(ª`Q¨SœiIŠU*:*É8U¼jɳ3©vçÚŽøÀ„wd¼îH®al(ÅzîÖ1Û;Ç'Ö°výèáÔÚ7°–ÌôŸ5”–ÐT[PûŒ!·Ö ­¡'³"§WA듲žDªZ^sìW?¿ò^–™Ÿ•ŠZÞpû'lìÐÖ\f,¹|£U×)œÍ³5¨õpÀÚ[6íþî_…=î²ÛT5ÇÌØ¬·Ž™hPýO?¸‘„}Ùïü33ÙÊ-ïÔ‘¢võÿ×ȯ·…DRk"p€Õ„ bœH Ïhv¸kQ*ft»b™Aí6ZMÒ:Õ`ÈzCÚR& ¼(JóЈü†TS´Gö§b:7Îý²ÃüXP2û{caÏe‹Ö®Y´dÙÛ4¤Qò’¼»=ÞÔdÛ ‘nL¤ëÛ:ÛÓ-E©B­7¦ÛlÇ63¨».±¸.ÞáÅÓn,.lAd0ö¯ã?ü' ¹~1Zã¸áfCøÚŠF¬Ü?x°yÍ2»ó†\¶ܬ¯w3YÕÔi3rè¨j\Ë UCIõK)**?5µóJF…ÙØ-ŠcÊ4E¼Åœ‚'ë0>$‘WO¥ éĉ™41 uLÚdIbgÄ–« 3…+ŒËSºJñf®•b¦6«æ•éò T*PÂ…‘-|‹Š- ù®T~I}¡ÞÎÊ`¼\(ù¥*ˆH¯ÇM”~õðÈKÏtßõç¬T‰)æ“ÖZI@¡6-ë,"¥†žnŽO'j'O~ff¾jŸÒQêïßùÍøÚ·«jŽ9éYyªyÃíŸp Tý¤ÏÄ­3¼Fá$_ùss†HA›‰Î¥«þçCd¸V몒áv|ý[ aaÿ£ÿ£8Ú³â=ÿÄ-Ï®ï>ÛY—GwŽüö{²ª¡"( © ˆ@dâ3 a†eÖÇ͵_é¡ÃB#‡«¤V’”2„ ÃPùQLD1SVýPE¡#ƒ'd¥Š—ê–Ƕ³0§K~¥pnh”úÇz~»sâȯͨoI—sãÊÕ×´§V5ÅÖ´&®ìjlíhlmnjL8 ©é¸Ç9\Æ“¦wNLO6€Ö ŒD¤i¢4:‡o¸ ±®?2ñâO&<_¿(atÜÆEõKbV™› XÂÒPãýÒ«3S‚1ÃR¤1‚$m$ £¶+¥„à~¹a¥5™—\ëBÀ÷µV° J:ªhafÜ98>‘Õj4³Cdhnxf’J*?H‰&SGRE°ÓL†Ú´ Ž`B‘–1¯Êª¹¶Dá²æüâ¦EÙñã¹ @k0~Æ`CÂÆ¡­Ä/¿#Ö¶Æ®_,b©㵆R€bT‹]Ö÷ïÄN’œèäæž/ ¤;WøÁ_Ùë„×Ä,oV:+ñ†Û?·0ôä³yµ]ßm&šç´ Õ¹ RðZW2ß÷Ä»sƒˆ7×Ò¤4.‡Á·‘ÿÅDz¥ëu÷Ú¯°ê: 'yj4UsžÕHþèOƒLEEe`Êeb ɉ·+›ÍëšDƒTuPŽ) c22TDÐR*RÚ¤”Ô„H›ƒ¡èëHjò•m#PÚm\<üÂÓÚHØÉ„Ö¬± ±@3Tib¬xHÆëM-©ZжkdF$7…çÙ£ÒdÌ0Žq¯C "C{†åŠìá(×NWLˆªEsIK”Æ´éYÕ0ˆ…ÊqÆÝªeÛb…%MyϘ(ä' ù2¤d† fœâLÅLÄÆvøé?Ö̯™jg3  ®iµ;ÌAül¸&PÕæØÙŸRÃõ’Ù—Ïú…·òª’ánýÙ†›so¾ã »¾´¹ë ÀL¶±ùZêâlЀRh¹âÎÌÞÇÇ_øN­·;6ÖEfÀ ˆÛ°Gw<ûÅw7^÷Îæu›Íd«á¤Î`Þ‰ÓáØS™¾Ca>{"#­‰f[½Ýé±f“êeÔÆ¢#Dèûå‘$Gk­"”† ⌕P—Cø!ˆCù’ƒ† ÍL‘Jù¹Œ-$X‰³€¨,uQS%¢ @&§öï>|lð×^é¤Rw9‘ÃÈÁd1ÕT8FÓ3®õôtKMÄ qÒ‹fnøéÿzü¿9pÍM·´­ºbôK¦Ù±Ò( óìDÔ¹È,L(ÅeK·1>,c6Ë’«æ£d’M Eª¢b.‚‚ ZGšAJ uqL»u¦0i¸G: Bs`È©DJ(­£ˆ,›Ë2ÖØZ:ºk¤/³RNX†0tQÁŒñÒˆ rÌK™aYÇu¼IiBY |U C8¤TœkCT…&«°8–oðJÅR6›)AMÒ˜ê4¾ûKï²Û¯Jt¯·Ò‹ŒXêÔg‰ˆ1bgõŸšÝ¥Ië{žµDXºbõžï&vù˜ãvòâK£yÛk?ÑJý‡~þhã5o`Õu\ü¨pñPZ£m탿ürñÈ/¼ÕoVÕ<3Ý Öîà„¤ƒ&Ýÿ‹¿¹ËLu,yË_°’mÌB™dåœÒ- ò#•j3 £²2¦“Í"7*-‡Ê#zâˆôêiÊF¶QÎ ŠT›?γ½d% UeÙ BEˆ+©àŒE‘ò«àBs΂P{ øJJÆ@e©,3°Y©«)¿´®à¡P( ¥ g† p×D³îÿíc[ô¦ÿË­˜•lc§,”G4ÅMör´œše=e„ÏO[UNº£ï™ *§s=3œ‹ì³Ã;_ÿ‰°ç'™‘cÉåíô"áœ62-"ÓM.]sý¾|FùEgÑõª’åÖ¹JŽ˜"-g“Mªê\,o¤'?û¦Rf¨û®ÿkÆ›œ†%Ü>}ЦHùÃ#¿ýnáØÔ¤Þh2½¦µZfŠs' Œ(°u C©"¥íX¤HGB‰H#f1Á©äëH¡R#â\" RZ'RÔÔlË:ë# P©À©ë(gV }Fg·æ¡Ñš2ZxµêĆ­»»ÉsÈ,F1óø÷ž«Ð‘öÎå†áj­kOŸÖZ‘&Òš@¤#Á3©4´{bßÏJ±®kÒKnD¬aEgcÊu‡Ê±Ý‡ö‰ªýÚqQÀØÁˆk]-¢|\»&1JÃÏ)f1Ó•q)\ÄÒ¢Èôb[x¨J¥Aå fTT?¡ƒQ„9e2„íz(Žª(Ò^3#K¬p\ÿ?qolëy•>ë¾qÏûÌçÜs'é^Í’%Y–,Èf06ŽLèÂ!ÕÝ©4!]tºBHuÊU!©JR•®&T'&˜nB›` ÛØÆ–I–5_ ÷êNg>{Þßø«œ+Yx€ØðÔ®óãÛ»öþöÙïz‡µžçY3n/wG/>v7¦¨*Õ^ ë¹]aoHk™ïûlÈÁÓ}ßèkH_Ð ‘eW í*S:0ÛŠL…¨%Éø `‰: ²ã Ó“ y"fûƒ²Èœ¢N^ùØ?¡öf÷ìa÷˜J;ß=!ä›Tÿí8šL;.=ô›ÍÛ~ÄWSw_c=IÿÁ¾ò!öÒÕ›ucé[ è¿2‡ ³Ñí´^ú£ÿ]÷NêÞ)šä×·FߌoÚHCKøÉ•êÂ'w>ñO¿ö?;Ù:·öÖ¿“,^—,Ñþ·úˆýÌÌþxxá).R€™ÎcM‹7öÀ9cÈ:òž‰q ÉQ$*‡Ü\Û¼¦’f9W O¥ ¥-bHp ¬Gi|!PYFa/¬cô\˜ dc}½U7#µ´ÑÂ!Ú „pԌŞxøKûûeqë­·ƒÙžˆŽZ"Òˆ5å;O<û©ìð¥páTëôýºµê”¶$Е¡Í®GkŸùÚSÜn‰v¶¬O°x<íº¼Š ˆ¨™ª+O[b"ÆþEö¥œïûɶMã`ºí¦#$ss-¬j_åìKªÆÈÇLI*·üÒuq=áÙ¡ëŸ òÂ%döR1v¯_›Q—Ao30ÆÊ@3ª %òÌk%LÉÞ@¢³ÉZæs§yÇì) e>ó`(IÞ@jbؘç+Ñ|­Såu=ÖËjðð¯üíãïù¦A{õu$B}§`F£¿þüïý3¡“påf¤"H_ oJžzÏ/}ìŸ4μ3h.í•oÜZüUÃ2ú§ï­÷ŸÝþì/§7¾R¡PÁ«›ú}» Í^üäÎ'~ñêGþáèá_åhõÎ÷Ýöþ_xá¿´t÷§ÂfÔÛüÖ³{?ÿr¶ýh¾;ƒ'ø—ùJŒ¼âõ¶hE¾Ì­ ¼JX)òu…ª†÷"°§IÎŽÈ0«„¦%g¬%bnŤ$U…Ã`à*KΑ—ˆ›¢RkA¯ŸX-®>¬ƒ&|«®Äæ)¹Ô£õM¥ŒŸ<i<  ¢µEг IDAT®-î~ç½ÅcâZåƒ=q¬„VÌ£óÕÞsƒç>Wž[+ñÚ-²·!ㆇ¬˜u¢„–”Uöîë6ξå¾þá§ÝÀ´b`K' )LÄp—™åÖ–Ë+H‡‡ÞK$]q°ç¯qpÅ%måOv9ˆ›‚ÉwËñÈOF +\É”³ËžC'rÿ‚“BöW£í§knžolƒ@ÊùÀ³ÞC¦ éëDêÓË^0¤¦2ã¤ClO}£/œƒu¶”©}ƒ •!ÉÂ[–)„­B?ßèT‰¶O|æwkD 7¿;èÓi÷¯ªJŠ£]t£ûéÎSŸnÜø_ŽeÒ-yÝ{?øô¯ÿÔÆ÷þ\KÍýÕ°8¾˜áÇßôþ+ŸÿÐäÉÿÚzÃ|5:&ÿ¹A«ªÑÆ?týþìõïþ¹•7<Ø:v[ÚêEnz¸õbóøÝº± Ãoå¼Å¹|îà…‹~îÿ”‹&C…h ßÖd½¯rž¤`’”N€"Eì1ÎÉÔ Ë‰B{A„mÊ Îç(*ŠœaÉ”ˆÚG ÊeFk­ÛnŽ‚ì‹ý“KË«¡ô¸zƒ-ŽS„R¯¬áÄ)¢šw¯@XÄ›Ço^oɇBH—™ÃsÕîS‡Ï~¼6µŒÛ­“÷TÅq—Ò%–Z©HêX(%{†÷<œÎs!Iº|ö O<ûÔáN^Z^ã9{¢dQÎ ŸÍ¹½(áütî{ëº*N4»=9 à Q¤ùÈ òžç|‚f_zöŽÊÇ~~€ñ¾·9l1TËGisû‰ó,åÂõ|LõHWSå#K"”ì<[f‹l!HØ.ç*C9ƒ²ùbBA(Ê©'-„¤ü€èÒ.go'.ðÙRR>òÊåïC؉zÇTÜýËÂßVÚO}ô_Dëw½\OJÿôóßä™»¿ûÜ{·¼'쬫¸óº”j^_üivÇKéÙwù:“Q»É??h7ï}¡B©#’J­,¶ÿûpÇûm1Qiï›',öÕþPíg82j‚ÖSj1{%hZb\Â3X Dm9«x"Ý$G\TygYK’I“Y㨬Ø5Ûb±M q£+£Ë ¤cžï?ùÜáhUêäÝ ³ˆSÑëËÙÀEçä3\™`㦛-6Š­ÇgÛU[O dkqù†w4OEÕ0l6–N žûl”´¡!¥ó5UuéAR(¢¢vË«Ýn?yöÑ'5±)˜ûcL½÷(KDš¦3.Ú ŸûÙÜÅm5?ôä)NåpÛ4Ûš Ò;3ÖÞ`zÈR#ê¥èmŠù!—Ù5ÍÐZ(j.<¾tãÉÁ¥¢(‚ £¬¥Ù}†ö‚0gcn,+!y~ˆÖ†.+WŒ¸·¡<ùb䃖¬ Û±ÈgžQLØÁÕPv$Ï_üRC NÝ~çеK×A @Dò/Ÿðë‘ö7fÏýÑl:Œ6î" ’/—±¾ùqT¬úÖï¦òáU•tñ—)Bz¥?í³Ä·0áÆ÷üÌo|æÿøÀôñßLϼk|þßï^ü“òò—ùî‰7ž¸ó¯µøçãî‘dô*³›?%å­’µ{;n¶ýtºv³¯sùM}„@Q~m“Eð° ÅgRK 2¼$­ÙxLJDàVÌÝŽ@æ§3NiB'¤ü £y…hÀí’›}Å©× Âs¯G$cQ̽žÐÚ ‡(ГÌ:¢™|ëòuKÊ'Uò¦ƒgz'zu-!Õ¶R]Æé[Pì^£—x§™_ÊÓî±Öò]A£ïœƒÊ{[•e£®Êµ;ßuù‘êõ{šri4¯Â(îtúÃñ¸Ýli!¦yDrzXœ½í¾½÷^}ä#Ÿ9u%KÃ2¤Ä(sÍž¤¹Ok¥}‘c6pi[:ëŽhû³!—¼±e¶¨êŠkÆ|†É€Á¼¸´™É®g…rȰ\mY²ËÅ¥âê#»"l'K–I¡»)Ê}?;tó»UGÌÇ5&Wkf¶5æÛ°² 4˜À5QŠìÀ“E°Dué›=aÛÄìä|££,vn[h=1Žç[3Õêé¤'ÃŽT5”ãpËÛÞÿ‡ÿîΟü0Ù\ß÷ê¨Öz´ù¦W_‰ŽÝ£;ßüVêÒ—?ÜܼÓÛê/Z„ÄlÙo*¶5³@B’$5IMò[H^¼ÆÒï¿ÿý?ó…ÿ‹ì‘_m®Ýtü®¿Þûáœô7ñgí7 ¶8{ÿûŸúÚgÒµ›½)Øô§ýì¬3ù5:+1”…ÃÌÃKÖB8@ –ðB"äW%r´‰^JâaΪ Äp‰Pû C%â°ö³¹í¶T+q’©6,%‡Î·S€Èç,RªK×í«Ùœº ¼º®EþŽKOü–¢¯•Ñݳíñúídžç‹ÃËóÅå/ÿÉ¥áÃà¿óNœxç,®ÜöVhÎMnÁΛÚVÚK¡UUëSoü¡s_ø° ¾§•´+oF“ƒÙyÏû&ó"í,:W••”JYá&9lyüîûNïÊ•/<ùÈç×C˜óœe‚h(ŽAQªZ°¦â¼ö*ÕœO9ìpÐvæ]íLÉí¹Y4A õÄWÃÔ¸Ì5–ˆ4:§Ô,Åd’–£KåC»@»}r[«T/IåE˜HkÁsD*˜Ž¬b<·y P°/`Ͷ*‡Æä^…(†€EÚÓ+> Pfmºøð—J±&öõÉ;ßÿ-7ã‹£ëëg/F«sŸ¬é¨/þ"U«ß Ï0ŽfvâÞ±¸ßf»UuxþKå誴å¬wË{„ £…“$Jo3“ ê|O«‰Ð(ó~[n¬´¢¤c«Õ "(Šé€‹’­;AB¾ò¤@#Ää‰?ÿ•?8ý}?îm„Í%7I¨ïÔò†)ºéîKO¦k7Ë0QQãÕ©,›MGÏü „8¢B„·µqz!$MÌNÀ‚ˆ!±BÒ¼âÊ€ {‡(‘P4wœÕ¨K#SðQÖsžS·)—›n}=¬fn÷¼ }÷X²»kÂT±‚«}{•‚Èí]²iOçE³•ó—ÄÄ»øìÝg—ÎÞµ{yyi±ï½š–òЈäæ—7®“OìœÍ'qæEnkG’ëªöÞ+%Œ±a³DñÞ3ŸMWÏZSgE®H…aTUÖ˜¶Î*Ñ[=qìØæÒ7É~üÂSÏÍj¸ Ęæè¥èÆÈ 8ÏíTö¼$%†S. *fA(3@ Ù"+çBU œ#ˆÉ)8 ‘"›ð|3£F"L6˜fukãž(n¹ù|òâ ƒ§rã­âp›$W¹„“0Ö–¾*œŒH7©œ9WxgE1gá+_dTWPŒz Wp•!Ÿ>Ÿ?ýÅÇGÑ=FzêÞ{îy3±D‹ qçM+»U°ûÌ‹¹Ð’H ü¥ŠC ž½úÜ#ý³o×þŸ­>øv'㨻ÑX»Ih¿+øº9Ðë f“QoÇÁaN:2 ¬°Y#ä•^ëÄòb'–qˆV*zÉòrÛò8ÏÖÌ\1óu-HJ"Ñ@;_þÒ¯ÿÜ­ó_ ©¢îºzm>F+ ­Çï—û·¾Û•ö¯¥²˜A”í}5ÛzL`HÖ"Z …7RBhv€gòŒFLA€Q‰Q…ÒQUy­ c*FPÐÀ‰MIµR‘¤X]оðÃK¤òÒ§ D Šc1šfO×NC·ºl™lÎǯrz¸ëOÞz÷l¾\Ìû:K&ÒÊA\Ú£aEaKŸ½õîÚ˜Hb2ŸZgœqQS €M&Ífk4 !e˜Îæ“bpA5çãQ£Ý,ʺ,æRZëØ“+…Ï&ÓÀ–³Áö<«sÇBõ˜Ï0¢ÈQ•(*®jÏŽ(I‰%) ÂX‘õ^8’5 ë( IÎrÚ’òè_‰Ê³3<ß÷ûOÕº:XØ [ËÁâ©xõì©;ÙÕA£Þ½lw£‡Ó…)ÉÃ騦°Ug®Î½Ú—sÈéÐ+OE…r!áœA1Çc_|töFQoÚ¨)¾ùÞ·"ÁàHÒmÇ;A§ÿô¹+¾<š™ ý—SaŠ5žûÈ/¦›oLNE}÷ªÙZXÏW»gX%ߊüZ@ðn(ý®-.ÕÙ¶syÚJ×—W$‰ÌØN³³±¸®‚àºÍãKíV£¿áô–PºT¡»lxàMÄÜ´;ÿ§ï¹å¿¤£f¼pB¿6½”cĽí/ÿG¤kAsQE-¾œÇ'š^ýT5Ø%G™¶¥mEäØZ/$Ø2ƒIµ¥¢äÚ¢´ ¡¦Š¹`šU(„¤H’÷\ÎìôhmIÒÌMöœU£Å­EŠÚÒ9yùEsòº¨žX‘6ÄÎ…Z ·qV¯Úzºî3hÝ„iš6 iA°…Øßá(¡Êa§ÆØÇ×ß}Om g kL’¦ežGQEÑh<&AÆ”Rfë,‡Íùþó((]*òi·×õž™)nDÖÖy>•d„ ¬²wÝ}æßÿÌö^vpØT1Œ€!DÜ@iá-úMa )…_M@ž„yɶB“"*æ…$ÍGÇ$yP>z)L—œN½Ž¤Ô,@±l즫§VOÝÞZzƒ°¢žÁ v&Ï~ÆÍ^ôÕA™gÕ„b¥h>5ä½Ô”å¾6¨={ñ¶æôÕ/ŒzwŒ©kÇ;îëmGÑ)ˆ˜YN,7ŽŸÚ|úâ¤<Øæ ± IñKq¢qøØ‡)]LN„­¥¯¿ïòGá÷ýíÞØ¼+êmŠ ‘Aò:Þ={?&‡b®BDqÇqc¡Û—J-6_ž¿ð´4ntp饗ž8¹´ÔhÕIhWŽ-Ÿ}õ¹™ö7¼éÇîzûÿtæ®wïݳ‰£Ÿøè/±ç…†zóÍ#׸üÒ>gÒLB’ ^ûû38øêËÜ^‘߆ÿß%Öï]=û¦½/ýZûº·TÃKB'¯ÛF𙽳F&áBÜ `º:Ö²Õk˜ñ¸ÕXúô>úÐ|®œ|½û'ðq¥¡’0ît–V6ÛÝ¥§>ýo®{çû‚…“N:Ï5¼}í}V¯¥²>¬¿íïVãmµÔË”TÕJ 9k^LŽ ‹¼d ¢š1.àkD¢¥§ýœÉÒlê›yâÒ3Æci! \•J=š›“ŠKÉ …ƒq”ÒT:oüœ×ÔÓûe§¯zkþð ^\q_\~Ú,w«ñÖs ·¼‹j¿sÍ …Ò¢B•4-˜$B ?îG­v‹„qyæ¬KÓFQäÞ›<›šæÓi…y>œg™’d­³ÀÊ­ßsðñ_«ÊGÛͷΊ†Ví0n%àJ€ˆBêÙþÖô`§¿ô»ÃÁÄÂ@d€a覆+‘¤€E–ÁÎ8h Ì –©1—¬áPC‚¦s@T”Þ)ò`8€ê­”Ž8—$!C19ôaHТrÞJ8 G Ë" Ê#0hñTÐ;%8Âtk/´Yvõ¥òò#y–5NLE²›®ø¥ÓÃ+O¾óÇÿçÿþÇß´W„NÆ#Ñ‘_&¿,ûeŽþÆ›×o;³òÇ_ºruûRÔ3a *hþŒÝפÀ‹_üð}?ûS^ã¦]Þðào¿ïû¿ô?õOF 'e ¿>Ó %db*&Éêb©öz-…òó¿ó‡_ùÄWÿòc/~íy[8JRDJB’ìIXc«i1ÝÙÚúê'÷_<×X½µ³ØQsmj"’G­Ò¾[¼œÊšì^|2]½E†© “#}I5½hç“0M–SZ'½õ•E^Âz„±„”»3?± B¯£jâ¹ac03@D« âôz,*χ. ;)jÏËÇ£ýêú스)^´Õó±[XÒÖ8WŠ•õÜãÕáU¿¼‘NçõÕ§ÿ0]¹óp¨7n^ßÚæFÊQ¶ètEm)ËY…˜L7Þw_¯Ó![èH9[*ÂeAy^FI8/Ê0J=¨ªb^yíWOߺýâ—Þ‡­î|:ö’‚XÌ'ãñÞŽ@]Y“×y *†2 ïxÏ{[7Þ}áùó¦Ê P1šZ`T Íuë` ^“ÍÙ– †”(Kd•KEoQ:¸€¤W¨¦“Ëaï ;¦8$œaçaéZ;bÖš¬ak0°¥Rò ì‰â¤á©«;§:'oÅú]Û–ö…Èf[£sŸg±ö×ÿÞÿÚïvœLX*€È33˜¯¥=¯I¹ ˆSqûéNÐ_8÷âó°%HyÔˆòu6$—„Fˆg~çÝÿ¢îk¢?ÊëßûA¶´¾øÙ_[¼ëG]9UQóõ³ê#J†i6.™«®_ ]ýû¿þ‘ÃK#f¶Æ‚@’‚Ù3{I8 ¥ÕÁÞ…GzgßRަ{£¢˜LÀÖµ­*!©ï¸)Ϋ±¼Ðxü÷ÿMÿ–÷¼ÌÊ €Q/÷â°C5Š¢.9LÇÄ i†yÆŽHÈrÎ ¹o4¨Ñ¥cïÑ”dӅ`V¸ÎŠ^ÞP»—l5+àfc_Lœnp¯ß–‰«K¹¸"·¯VÓ¯­Ó‘ HÅá O¾Ðؼ©ðñòÙ¦ñ<ÚwýE•~€$Æd†i "Œ ×]lcmçr3‡;Y12®ÇÆΛÚTÃá@™Og³Ù(JÂzn«¢”ÊAçÊ×>4ÚÓY9ïz›ÏFcï\œ&“éÄ¥ô~6TYA•i®®Ÿ~Û;vvw³ƒ}hoÁ€£ö€<ò¦%-¡x"ï!<â¬CPbH‚Pä*h†°£ºÊe¼ª¢fÜ ­'b„’ˆY–\[ 2&cØÕD aÈÉåljxBíaÃC‡iÜsí¥þÍß÷“ÿì?¾éž^8s½ãàPj’^’­ÆGrÌ'.|ê O=úåÇŠÑó )ðó¼ªMY9_±/AR¼~«±’hxúåŽ{¯IÀ+oxðƒ ôÝxásÿµ6]»E¨H¨èõMÇ‘ û—«â°áÉÇÏÙ¬úºò\†`‚h­,:»üØï÷NÞ+´lw[Q@˜gf6™W³ ÑACWyf!ƒïîV#é¾’ÊZRQó(— ƒf¾wN»¬Á¥öU^û¢@Š(…ŒÄ(ãÁÄ ±™ƒj ÉÜOé®[ânÃzHHÍ'ÎÊëo º]øÒ…¡"é;Kaå¸*\£©‹™i·Ôb?Œ#>¼”; ¯(+\ÒUá÷ýös¿[·ÞØm‡¥‹÷©ßÕã¹µÙÆqUÓ¤$f0)Êëßp×îþù¼*'U•9㫺¶Æ†a0M™\ÚˆóÂ:B”Dei,ê¼*r+’Vgré+Vj·•Šœ‡q'u™{›“peet(…õt¢êƒN¯Ž;qœ WI$Ä v0¥€ó $u0dHaD¶`8è¦d†3`F’Ð4zñ«¾2i]'‘¡²P´@ª*f Ž$$ “"04jëA1HÂ1<¡rÕ˜02À‚ø©¿÷àÙ¥³ë ã‹Oª¸Ä-JJéñŠÞ÷(‚™ˆ,èW~÷O~÷×þÝìŇƒù Ñá…›“ѽy/œWfv8š“É*hàÛu9ýH˜g?<ôϾ=îÓqûµÄš¼áÁzF”¶›!žûô¯¶¯;àeÔx}eIDRi=l_Ù»xúÖÆ•ùhÐ5Cq"@ÄqÍ dO—æÜï]ö¶NÚZm¤·­†±Gƒ¸-ª¦†AÆ)WÅÌ;'¤"|K± Šýøò3_l¸GñµT–&?ôÓËŠœ«Š(¢Üb8f6Ôo ‘ˆÊrb©Ç7\¯Û>Me6ô³¸é†`±Í­Nßî›[km·#ÝÔùlâ:M5Ý·ÅÙ¤,'.LäÁ¾õê’–‰Üyñkª!‚Öjgq!l:P«'ãá^9͘™Œ…Òcš 0ÆÓɽ?ðŽHËl6 ¤› …¡Ò“Ét<Ø(•–Ö˜(‰²ùÌT¥¦˜$d¯Ó2N4Ñ Ÿ«t+¯r)QM'ÎX(Ê‹,2ÖÎ*­4êñ`,N\wfñºUÑRB+)£áb¡ZªÌœq€‡e”%ÀPš¸®Ù1Õìkx:Âs¶}!êöân[êH kCÖžI’’ vä¤HÔ5¬;À#°€G-1©0ô˜pÝÛßóƒo¿[XÏaS³™ì¾-žö¶RK¡ø(r¯©z‰€O?sþSÿáß6v)•×w莴±ázÅJ:?M7¡) 8Šcf~ØŠ ŸÝ~þ‘þÙ·ë´§^[RVÞðàqdasæÞç>þKu>k|Ó‘dïõ´æ *VºÉ^ÖV,? EÙx|äæ Ï½€ÿö6n^«W"œ DrîÓï}àøæêâÉfWëDŠ¥¦Š˜=ÁK²¨vêìÀÒlmˆˆäŸïKø ðŒ•³÷|ñÿüÀʽ?éÊ™Š;GÓV &Ý`Ƴ‰¬ËØ Öðó Ù‘F,!‡¸xÞ£ …¶–¡;}C*½YÝL*çʉ_XŒPšjÄ\æˆb™Í!±¿í¹ØäœT°^&‰,&nbiYÕ~©—_}òÓýÓw9«¦YÄÁp»ÆÃ…A˜P–!Ö"Iä8ó`T@å}çÔqC¶pU öG:œ•1q7­Ý½<Ïa²ùt˜¹$̳ڱ/òIžÏ8j‚®<ü± ±@eáË*Ò‘wÎ×¥b‚·ÎÖÞÕlrጯ¬+’a;M4|žQîµZYio“ÛÌ“ƒ´ˆê Lä)@2Hiòc9ôØyêSÉⲊێb)µÒB2{†ô˜´$c˜¨¬§ÊÀxHr¨3ƒƒ3 ôÆæOüÝÿq‘X1QºplÿòU5“im­‚˜„$fAä’(þý¯ÿ—z°«¼8ú·ÝÎÇoçdÁ¢%ÛX-×Öç·¯Mš³­­ƒÃ{Ç^Rü?G,Ž£ý×X½ÀGsÒ wÜûåÿ÷ônyeÐx=ˆYþUÞùD2•aÅBͽÞêú|:0ÙÂÞwB>p ‹Úœ¹#8±éâú|5ÙêÌÚf²¸&rkÚpƒ$´áTÛv•Q9²ôÒS›ªdkˆALà#™oqS/ß3+)7Ù;be‰ SïÍ|û¢t¶«ë<+Ç™)JHF3R¡*˜+¦0Áæ ½²êoº;\h±›…õÆ`¾±–Lu9–c<ðͶ>Üu®UÉQ,²ÌMÇ^; ÒÛ»v2¹Å4ó2ãÊ/}Q_ê¥ÆB¯0²µ ÊÜË@f…‡„Œ…cfFi|í1óPõÕÆBÛ#!ÉÁ9¦´Ùd²âÙhLJ)KJI*Ëʳûùt$Õ\=•í^È.=.ºÇJ #!¥1H!Ц, ë@ 6ùÜ–F6Bç#Ù^_[¾þ”dØZï ¦²6UérÊ ÁD’땇Td={‹@ ŒèàÒ£ÍÍÛ=K¥J*É( t©ðpŒÊÁ‡ä‰g†q¨k¡dlCÀ ÜÿcëÖÕ%0×wžÇ IDAT@é<„HÓd÷ù/rØvBTŽI$¤gaú¿~ûc»_ù,Ni¾{'O@¬€B Z HP"EÇ®œ2'é`ûÂpwÈ2<:`~÷k[¬ñÂï¾>,¼ÀœGÒÛ(÷žÙyæs³Øbô:ð:^N|ý i1(… ¹:Ì÷öØT§—ð¶Û)½¸€÷]þðæ=oÉ3\‰u(û«$B€ ‰<„s¥ÂçL5·tÉó™pSkK屦˜lb²©­æÎç̳»öù„W6O/ß áˆ•õû¿Ü¿åݶ˜ª´Í®€§Ê é«Pت²™ó¨Ù–ìkê'bq«ë´¼È÷¾µ7ÝÏÇC³x,NªÞBêÁ¾“àp·lDáhÇTs5¸Áß?ôA¨XÒhèkËsÀ&Ê’—B¡°¼¼«r´ýÌCµ»HQg¹]Í9U²$¶ ~W–sO$ð`ÆÆAŽ)L=VßpëæúâîÅ í4a—ŒµÕh6®ëB oʲ²FGQUWΖš]Ï­-Í`”碕¦KǪýñÖ¹xá˜Rì¥ðAxò:Ð!‡ž´[QÐçõô¹ó;çwwGÐji½ÙhØY1$¡)Ž’¶è…㬨Kä ),ƒèÚÊ !7ºp°óRºp²ê¨ÑðLì H cØ,á ΞjOÞÂy%lÅä!Úbd­Q{yûßøÉxóÖšŠ­÷FKí*jÛ|4Ý?ïÓe)9Žš$”& @¿óУýöo€ÐnNpà tÏ‚ªf°÷¦—%ÚjCQºN7ôi2R[-ÂDÊðۮïˆí¾Í™îudqàÕ|„n¿÷ úûÍ÷Í¥××AX‚£ü2Ðb²÷bµ·í½tàÒ¥ðÖëÉLÇO}ä›÷·–ãÖJ£±î]Æþen6„w‚ƒQDJ"l"mA2ºm?¿”U³É¼ßwÿ›o¹á&7‚$šgãl¼o&‡6›Ø2suáMé}oÀäáàsÜYÛùÊædI¥m¡”Œ¤"bÀxWyfÔŽGν鑪K.*n®êÑÄ$‰O];Q¥aë©Ù ÃC§YØÚnõcñâíq'.L^zCEÅ$d>³Q(‡sÆHãìdk¡= 9à´î­¯Lv.I.Ƈ޳agœ³óZ9Q›g%{If>eoãÊÔv6¦±-+çu`¥ËÇ'—Ÿ¶ÃÝ=Á®–Rx/%)’l¸ï·^Øß{i<ß›]yaop~VŒªzb&——žº²óÂÁà¥áÁÕáp4ËzÇÛÇbG…+­40 VAG¦è¡(&Ã|6nôVâf>°L ‚*ÃÖÃxX;HAÖ19x¢ªâªæFƒ„Em0&ÀêÜrÇ~äÁ.;!dV–ðð쌵֋æÂÚàòcB²LûJDZT‚Ä~òüç>ô+`+@›ÀÙ.NÞ,¼Æsá«_Åç¿‚¯=‡'ιgÏå‡ç©yÈÍj±Þl¡œ‹«CH|«ffGìÁß¶åëÈâÀ7°ó8*)½ôÐêßú^WLdÔ~.³D6ÒY;6¾ž”ó=WM¼÷‚ka/.}ÍÌ&̨ç_*;½¤Q}Â5nª³VU%" [‹2îR–c:!WÁZ‚÷P@]C§BEh$bq Å ZŒ§ ýÜ­7ž¹niñ†ÕôŽSKo8»¹¸¶R»j>óI=˜ÙA=šù¨žL6ª«‘)Ç®Êb1ßzîKÍÛd H)`éFIe&s& ý­kòtßv»bšûåãñ,« ñâR|å™ZÙèÊKuQú´-Ç7Ù-‹i'ðÖe…BQM={Ô%[‹¢æ0‘Yå…²(}³£àÉö&ËáÒ™ÎrGj$:eÆN‚¥ ã¼8ê‡-˜+v¤DîQ [A÷ºr>¬Í„$¹ª,6Ð(«RÔl™­`8°±ÖÕÆV.ìÅh*á½°h/œž_9çË¡î¬;ëƒ4îöÒƒ½Á¹Ç¶·_še“O«ñ ¯s‡kFŽ "¶Îµ¯œ/­ŸÕÕþüàüþxX—•¯¯PräBAH°ÃäÊW½/’Þ* ¡BGd)G×6Þe bx ©IñâšT@§‡… yxÈs F¿‡gvð–w½÷¶5À†}Î:‡AÈ$¼pÏ<þé:h÷Û FêÿòÔù‡>ôSh|]„ͨ&¿xOïÒc[È%¹íÔØÍÅ ™|á¢o¸`iQ„­l­iɈˇÆK!ä7K lÁâ›a!¾ðË8ó×~@ÔY}%Ûo\=ãľÿ™þs÷_^‡ «ÉBchÆç.=÷•j¾]O¶ŠÁÅá…sÕî–/r%¤(øÜG?²yó7Ý×E#>o¡Ì|kA´–Ñèê¨+Míœç´© &‡Ü_ÙŒUÄÇ7qþp¶ýÒ— ouWÛ­°×P´ÒT7l,œ=½yýñ•›K«« «+ý4‰¢HKé³Ù¬® ã\cñÔS¿õÚ7=PM˜[çê™)§Zç'×ìj<{ðnóªK›võl`Jk­2ÎÏF¾ÕU$Ý`¿:~&=ܯaÔ$ç¥~c6¶p®ª¹v&bVzbpî˜-‹Ny o…”ÀbG\üÂû-¾i”¦I8Ù(‚w°Ž‰I‚!ê9£boa-<`Ša^‰; ±˜Œìx8æl^OsÔ,™ŠYaj'e‹Îk­µ®ªa<³4±T¶â™Y á±S{¯‹qkc“DqåêÁKÏŽÊŒÿÜ}X¢d׆|n‚Ìå5J‹" ˆ¡” ¡‰­ÙŽ_R2–i[E-¥´ôpD pAP!U5à Èaý¤ig뱃úãŸþüù~„l¥u=¯k š!FC¼4ÂÅŒrXI“’Éžfì·Æ¾WÐÚªšó¥¸n‡Á…­Ê:)-Døªfxy@âåÊ3¿ɯ°86îûq"z,¼Ò^ôXÒâîæ ÿß¿êœ} ]:–qç»þïQY­Ìl«Øy–t,DÂ,Ù”q\,våá^e<ÕÃ穦fMJÓ]“8¦û^ï>[l?ëšK"hÔI"e@³!²mË%}²Šö|YY㲡;s¦¹˜åuvþ‘§¯>röþ÷uÞ¥’üZ@+ÐsÈ×rÞ×ÎÁ3e5 ~êùÇÿÓɻ߄æL'ÍÐûHT«½Räóöé¼ÝqûWÊ$¡4Õe^Î†åÆ±ÆàÒtt™§CšŒH¥®ô\Ìœ±w0k.ÐÁ_]ÒW·jë”%o˜j‹VSä–§µ•mU9g½ ÎòÖ•§Œ^eA”¦ÓŒ¨²ŽQTäJ6lØJ’‚‘€gRp¹k­}áÍáÞÅ`ZêÊ8o…g¯„cksë‰]idpa”bS[ãuž<{ÇZœ™B8¡´RÄlµnlÜüæÝç>wñ¡ONq]™³ŒšB¯tä{’(jæps÷ßLK=ÚÙsãzËÂn4Ä`ßéY~8ÃŽ¢¥-0,± hoëBcá”°œ@¢LÞ‘PŽÀL™‡µˆA«§õäÐ\xÂÞÄ6V¸<¢s3~ǃï>®ÄŒDÌ(a¦ sVanMòÆ-ïøä¿üGùàó*íé° –=E‰8ÂÌàj…­€j6€)é¨Ë$ƒø½Ì}ù)¿zL,ßê[ýýÛƒ:NìÙª”5IêæË1, $X\k¼Â1¼‡¸¶ q-¬Ù;º¦™}MøÆ€óX9sïö£¿M‡¯¯ƒ•Ì=ª¦ã½ ¸¶LŒ,{ÓüôƒÑ7gvåîßð¶·¬5+å"gôટr»¯t¦¤é‡CÚDÒ€nêùÜçcp§hRyH!ˆ•â¥utØçTL°sñœ êÞÂG7A€ ºf‚§%B‰(@¤) (R´¾¼QíŸ[ìÚU¾²Þ*N®Ízj²f:)©.ãÔwV…Ïœ÷Pä‹1T¨½4yæM“¡7Îr¨dQz¡E•³·Hb2¥¯kÄ¡¨J ïP2( rˆ¬§ ¤†˜í>ó™Þ‰;’4ê¶Së¥'h†s,=ƒ¤€$"°wPDF¢tp €è¤í†U-™œñÞ±3Ö@ŽaÙÖ¾¶`RiœôZR$™¼ ’ ÍpLœvºÖÉÇ>õÇ-µØÖBèo柿%ï;MoÞà·ÞŠ{ßBíu¯úÜ=Õ[Ñ9î)¤+~áfºã”Jñü+A¡ é™ “󦋧èVR… xF(` Ž €qì$]w[t80‡W}#¾»ÅعÊÛÔ|ï¿o±1P³q^ Š”DR"—¾Ó^¾éþûúƒßTºïQR÷„\“èDB‹qÛSæªðGlK Ô€xf¸ œ>¡¨ÇºÌÚqÞJÔ3—k¨Xªð•t/‘8z¼|æ£niGϱ8v/=»xÓ;ÓÅS¯‘Åo^xFaðÀÿð/ë´sæ"ˆ•ê}·! ’½lþ¼£0bcak8–ThŸóøþÖÿö6 8Ÿ–™ª Š1?tûÜY"•øN,g#¼$ô7ä±Sœ×~x…ÙŠP;-½öú`Û™Ž:œ[ë¦ûâÒcŸè­½±Û<Æ×º¼ÜS¸Ö¸àZËaùäm÷>ðàáø¹½'¿yêoÆ£9ïãSoJö÷ÝÎ4‚+Ï ½áAÁ|P5l6£ræƒõÐJ+Àl]_¹\uÕÁe»¿ÇA(®îÛÞ’F(œõÄÜIÄhæç9‘|3Uû=,\ïušWqRI¶…0Â[)ˆ=K"v¨,+ILÈ™…EèQ`ÀE˜Õè¯þÞÞ,Ö–ó:ûÖú‡ªÚÓ™‡;Oœy/EÉÛ²%Ë£ìØpt§Ç/’n4ÝÉSäÁH:‚¼u€ Ònu[Bw{”Z–)Ë’LSE‘—¼¼¼ó™ÏÙSUýÃZy¨CÊ-;¢ÒÿÃÆy8Ø{ŸSõÕš¾ï[¹M1“h"P¦&Ê&³ËFMΆ[0E†eU‡$ì‰ Hƒd¶Æ[¾{ûpwwyíüÓ÷ÞüêðüS~étj'¶ÛÜNãd»üȦylQY†ÌMCÚj<ØÊ“¹Ð¨€M`Oßçë×ÃïüñÛïxZ°Fm y2hH{J‰2KM†)@…%_ˆ!ìÞÌ2kΞ£ý¡+¶ÆÍ—Ñd\O8ù}9³¹ "™YTBÊÞ¹œSBŽ’H‰­ í|usóê½pçæÊ2ož¹”b¼,çƒ[áMÂèÔÓ¯üÀΟý«SŸú¹q·â»8D Mª÷ÇIÕÈÁª±á™'úýµù;Ï=»°úqšô¸ß·ÖU+ˆ*MÍÖ ÝÓÉ]‡eñžŽŽx<‘í­0ìÃ.èéGýÝÛñÎpÊ1›L‡»qq ‹¥rÀöþÞÒð Â1…ý½æ_.é²èâæÅÃzb—í¨Þü³tÊ•#ºúÜ|mÃݸv·2 ºõ.NŸ³Ük÷öÓ‰³þÝo5š¹ì#9V–ú0OŒÙÝE–®é+ÑYN‚G¥™‰Îk­4ÃWZ ©laç‡û;o­>ú’Õ? $F¡"ÍIP(Œ"[DR@ D…t—ð(b›Ã€lUÉ)£[•IV€6(ìc– Âä°m²ª± ÃÆtÚœg»[ûÛ7k$Z<{%N¶÷® ׿ÀV=­W½ÁhýÒ——È9jÆvᮢæ$õ—ÖìpC#`A=Ð2!« h~æ~|æàG_þ†|å–­;úÆoý36lÀÑÁ§"‚¤¤žT]R¨íDÓ\‡=”^§¸¶ƒÑâÏüüÏ 0!Š@¨€­ ©Õ„”À–TPgúæÞÁõW¾ü)ûö¯_Z:Ð'³ºéë:Ï(C-!J¯¢å Þ¿# ¢K=Ì`d™+KjP¡½¸÷ÌýåΡy}·4ëF³°ïýe6Ñ_Ü!ü^*Ý¥ÐæÃ§Ð-§¤‰øèßû?û_\Zû¾¿À|×DÝ,/õÖ8¼·#9#%@5ëÞa¾sóËÕéóEÅÄÏ=1'¨ëÃU*=˜ÆäInƘgåE‡–BÂá\ù€æ¯„ÕS|ßcn6Ó6ÓÞè Ú~W-£·‰ñžróÖŸ>xîñãÌJJÇ£ipW¢( JÃS—ã«_½u¸4Ì;‡ÛžúeUêþnŽ|ÈIBZZ®¶ïÔÛJóš&·“ÅüͲ /X´AN®Svïäï¹Ñª¼²ëçâc÷n!«?8•0»Ÿ~¬ýòü¨\Xu*ü,Öþ’ß“!¼ñ•ÏO>¢š¿'fzPw'+ÊÁÂòâðês¿òáyYlÙ5õ~ %&…ËñÁâíÕÑÖ`ùãJÓóD&µH3ê„;ÆïI¹@½‘Q#9SLÜ´RŒ¼’žÙSSsçÛšÙJêj(%€áz˜Ì³<ô±OEUZҬʄÔÝ÷ŠLÈݾ*¢¬šU&ý›_ùÜ‚+–—íö]WXžO¥ •<›ªf›ìKô¸KH¹IJŽ­×É¡x¸ÜÊ|"¥ç£±&¥¬˜¥Ê„¥,¨mB̈ å i²µwïÁúƒlúÞ–™È)¸'—L ‘»u<gXíxJ À àS ÃÅŒ'~TRÛR› d 9©³°eç2“ Ô8u¶òÞ¨U59sµVv÷oµ2ŒÊâÆKÏúÑZåô ê]êù‹ ¾4ª@È„†dÆœˆr‚z„iÎd{ÜBæ %î¦$-”8qgF4?Ô«¯½PO”e¥f”[–V»?Ç*åDF• !c®ð––û¤ŠY"îìáí€ñ`ñ'ñNžABJ@Ö˜R2l»Òz&¶LMlƒwö[¿©‡‡—œ;ÝÇó g—æÓªª¬º¡ ŽÐó Î¡74sÕ²¥Ó%zµÞ¿‰ËWÌÃ?€Ó€L‚÷•‰£½A=Äà•ë WkûdŠï@èXQhpâ¡Þê…ÉâÀwˆÀšˆ‹?öžÿ·ÿëìΫý“—s;eW}w*\QZî¯<Øîl‡t`­,Ø»çÎ]_ºüQˆÉ^fN`•RËÓÍQÝÄ"5É Q©Ëëþö ì¾ÛJ@nµ¬hé$%bšý”'\XŠ•Ì[ij=Lf˜Ù£ëûwN/Ÿœjî ˆm†ë<Áéx!,Z"˜Í /¼üú©•§â|v°çÃÌ‹×þ4Ÿ=_NŽÒöN=¨øîÝ´²^ÖH“‰˜‚fÓì …FSð©WC6yad)ä”á˜fqÕXH­…\{þÙÕK?Ø ¸°`¡QµP 2&N”S€éHÈ„”€P¬îÞµ·'ÆÚ#¹%ŒK Ê™[?è{1,¤€. F9‡c=S†µ´¸ùò³ÅÂzõ´uåý£âBeŠœ½Y¨E)fÄ}­¦èàG” %ƒ¦E¼¥~åÑJš§* f‘È@U(•zú >qÁí¾„íŒ:SEÔ™èv[ÒÜ¢6”U!HIE0, ‡s$Á¨ll,Te ¡aH )¥ÌιÂÚYJmÒÌöµW_Ÿì®«}”ln>½õÎWìðÇëÙÔôj §Jè)¢º…-åÂ)¸¹ÌÞ¯p1ÊŽÁH¯O Hò0˜_¾¼ûæÝòÕÝm{î¤íz- †ÿ| ü=ü}'4&Añ#ÿé?½ó‡ÿ€vÿÝÜÎ>Ä'¹Ñúæpc݇PŒÞý£/ŒÖ¯Àª]ò¢3#e‰ÄªƒEYºH¼€ì|Ÿæ‡4ÙÓÉmì]½®,SoÅ ª û[y|ñrK³VÇ2Ù×v‚ý}´ î¼Û\}ñ+hR ¤,aÖÎ9å0mg1µ ™„v*Y©¢ßÛ¸ïcoíí“`žSpPFÈx÷Ý0¯Qõ¹nu:ÅáAn#H‘kMQ£À•T'$mÇÙH˜Î¤Ì[·Ê@2 dBPdK“›¯¸…ÍìË¢7tä” †Ét sPS§VU ¨FÑ e$… ,A ¹ëÄEY­ALÙB‰8Ò%¬*BY9¡eÁ Í a…U2Γg;`k`ÒôæËÏ£µþÊ)ëK6¾Ï ¡´‰ˆà  Ô`0mq¸¯“m‡H3 1æ‡4¾ªó·Ug$BáÍ•¬`’F‘H©N¦Ÿýû|ÿSGƒ‚Û(ð¢J F! lY)ÐÁ GsÊÎb0ÌÞ°²†ÚªÄTT²–EÉL’%ÖXCæ¬÷ýy£ÉYG•‡2xpq4ü¨®]¤ ¤CäŽÉdÈJ@?Øúág¦C;–”¾Þ÷âžzD%}Ol3þ†·h–ÿFÃÃ7¾@ÂTå;}Å?¾=¹!XSÛ/Û>²¶r±¸ýÆ,^z(FåyEs§Ä ¯pЀ0E޲v+çâÊ9Zº@Ë—¨:a²¥¶QM-ÂD‡%`E TËä|Ùçj™Ø LZLæhsª$)Öõd6?hêÉx6®›yç“ùÑxz´?=šÇvœòDqñ ¯¼uçæåBº»•D jÐ_ v,Þó0"½‚g ¬gk‘³ ª³F¢`t D!ˆBÙ@™‘ œ£ÁÆé½ë/Öï3 f£0™:hÌJ #`e 1ÇcEˆ¡nµ·¨ÔäBUÐQkÛ˜ %ÍYðµ UÛ€SKPM1†YŽY„“‰ÊG¹MïìÜœš4»öõ_/FkýÕÓ¶è1•dLËÔ¶4Ë4’¢™£žAZYŠ‚ù!¦÷0ÛÒö€$R.4XÌ÷qtMÛ]Hæ4FÜ&I€Aš"¤VØtéûé§?S¬[Ñ((C3IÖ$½ƒfB6V'»­n7¨îóÉd[b i$’a Ò&ibE,¤´œO>ù±Õó§F¤” Ó]Œ.=].Ü \Ç£9sdoa+p¡•ÁšÁ9ÂòÌÀ›j¶´u %€éFÅ€B.oîwáBÖ@ªV%å()ªu6)¬ÉlYÛ6“œ‡2‚3ï¸øØÎs¯Éêå|R ,|¡¤®‚%µDÖ«+á,†+(F€A5†4+ì1n»bNoyèèåîºöÕöðöÞkÿ¦”}ògWO­µ §ë}÷ÈOýgo>ûïßÙ½»þ¼±r ƱZÁ T 5c`*Zq˜KN°Ç 9#Ô:ÙG˜B…jH{:9Âò¦kæ-`ºµ`‹iƒ»·ÀžÄYlÖ×M yVXšp8=ðeÏ»*¤EZ¥¬Ÿ¹¸vþÊíë×V—.ejĉ°šnž•šLMœE-ShÕ,­¶¢…¨Š‚;§ †U² Q5N}žNï¾µö‘ŸDV5N™¡š* …%@43ÄîbdÀÊñkTBCP…&d5¢" “)‘#U' ‘¡€¬Î©‡Ÿ IDATR¿,ŒEpVXm›8ª%X™¾ýõ_[:w¹¿tÚúŠ­%"KúÀˆÎ ™BNÍ{´MÀ19¨J6 z•%²JQÛ€¸-U®Œ(;`®Ô¬1WÕÈ8 ­ µ„™¬?™?-ÕoüF[gCõ†ˆº‡!«6 ÆÀ@Æ€ÉP !µ¯¿üÒã.Íóê­&‰bÔzWNçséãÖþÝ/üÚï¼~õ켜 ÐjášKŠ7›É·zª0)§cfsÎàJM¶ ïA®K¯I•”Ñ© 5æ˜7ÉÈ »–ÇoÇùΫ¿ýþR²>ÿ>.v¾ñíŸqlIóÿ?€4÷ÿø?|ù¿ý¥‡~ŒØ™jTßnG7û7®½ƒk÷ºvé‰þÊéÍKOôúȉ¿ÿ?>ÚÊ7‡øå0uà¼ñàGn¿ü¿–>úQÓ[Ê™24Y§£5 Ö(%h«íœÚFSb8—Éq5 ÉTÇc®*Ì©‹X<©÷n†~¯X;©“½ÖˆÀ^ƒ9³™MR&7‹u]O$u®mCf¦³£6c ªül—OêÊÙ ·žÿrå¢OÓ&y¶ÌÐ6$Í’zKÈHIÉѬRX69å&© œ¡¨šK’T ÐER`ðöKÏŽÎ_²0ÕˆÈí¬„HwFÁ&¨A$€¡JjLhE A踶@ÒrÉçÖçÓ±c1j ”({V%­€ÉU0²¦˜Ô©-J¶Æ°õ‡ˆÑz˜ñc/ýþ¿NÅvfGÆ9¯ªÖ€,¬c͆0`U ÍÁ5]›ó­wˆX4{×bté¹ásŸÛ?ÿñŸ~âß)ÿñ¿Xªð?ÿœÇ‡6£|ÿü­2VWÏüì/þWôµ_]ò?ž~ãó[óÃÙ¯7û7Ç׿Þ[:¹~ÿ“›—žè?ò±µÿä¿ï¯ïPcëTR[o;ë£ÔymŒauB¦G×_¼º}uñÜ“0dI3Ò\sŒAJÊlÔ÷X'9Ô*iÇj-séU’äÀJyÿí|°£Ëërïz"ÐÁD3#:;‚éÁΆ¨1´“CÌ-›&¤”ÀÔ„i’ÜÆd .´bêöàêÚêÆ¶·q¶ŸGË)$ç½d  „ "$Õ¤ðÖH“L¦È…dGYÕ ÈP$Va(Ád$¢ÌZ0Ìt[š¹–6='„HÝ W…`™ CŽHE@€D†tί (2 {n‘l06#P1™ˆbB¶Y#9XɆaœµ ‹Uo0¢ì––IÚ0Û}î7cáô£ýÅÓ¶¬Øz’ã{ëìˆÎ‘Í¢‚`Lg¯°ªÒ¸Q!8£^a )) y†:%‚…±š ØŠ-àfÔÔÚ[*Õ(=HúñÒ,‹pséËÏ÷;_ŠG#•´PÒx"³òV`a 0 4Џ?Þº¹}ñÒÉh´†i¥›ØX¤€XiÙ3£G~ð#ÏÿÊ×»’ª×CÊE*C@ïÒ¥Çn_Õž¸âÚÔNnBØå;ï\‡èhƒÍ@ÃÁÛ¾‚¯È”:<}*À„•“ÔÄ<þ)NùØ&È ŒVO5û·éüÇ¿'eðß `˨î<ÿ¹×žûü÷¿;yùSÕâ¦ï-¸jHÝ0›:× ú€g ÁùÅœ]ŠÜ´“¢ZóÅn&¢qóò/^{éë¯ÝýÙÇ×IÅ©qˆ¦ Mšjµ`[ ñK¨ÉõÔ9:¼-ƒµžó9ŽEœ›…•Ó>æ&{Ÿ ,Ÿ´G[yWL‚Œ£ó—ï›ÅI“U‰Úg­J+’2©›ZU¸Wµµ±nR7RúÑ¥Ø:zirçm\k 8ÃdëË¡Z0ehÛ¹ÊeMèVÀJé˜p- Ã¤Š¤ªÃ`‚0’PÕuû”ˆ(f…#G]íŒL)«a¥ $hǬg…E©tf¡Ôɺ¬’¡ “™5‹bΑ2"3g$dž‰ã||xõ¹û>úô`ýôdV^ýÓëdÜñó†…!Her*Ö#DM ´“ à™ÄhÇåÌ b€B{¤$H9P›…%Ë ¬ó1šFÅ€ê y¦õ˜ë#TPCJ9ÙÝwƽ¸Ü`8ÑGærè^y>6 3AXï㱇ánÜÂ]\ûÊ_øèÇüÊUS²„•Åå&6j¼&.Qzø)Œ¾t4žÏA™=ƒt4¾ö_×O<òäÂé3¾_C—C†X¡ƒ O°B5•4)iPìA ê÷DÁÞLÏ®·/¼}³™Ÿ(«µ¿Š&Qœ{ôéÝÀÿl¨ãŽ|î7ÿétù3ÿðôã?Ù[ÜðýEÛÙ ÿm±±C"Î\µìzUŒó1Ö–×ÞøæKh?“å€Ko Ë …Zê ¦IæG”laz}·Ùܪ¶@æ0í‘wØygÖÔZ }»ï¼R«Þ 1 h¢MâÉþN܉)’ M&¤˜ê8(<¨€ÓXç"»6ÔÒ-->ø/üáÕ/þ‹å²úʧW–VEÁÉô½UE XK9¨+‰ šFa Y%á˜'£%Âe£M†ñp™œ¡×žýšý»ÅÂf§eQ†I³F`‰T5 Œj6$ÐLJD^)A•ˆ¡‰Ž›IP`ÖêaS ¼¡äÈ¢˜ŒŒÌ”ØÙnc—“CVn2,…›ß{óæ[__{àã 7‡G{;”w´›P‹B:œÀ´DQ!Ú‚‚¨0 Ì€ ²*@h´%ÖƒŒj€F=jáÎ%„¹N>k¯%Ãë[ןí­#OæédßD`O^0?Ÿé•›¸u û;¸ùz{þJuö’¾ùf*¨*2Vß½†Õ>0ƒ,ô·>÷ù§¯üÒæõaÕäÛfPõƒæYs´±¸¹ùøã÷þè+³Hè18¸smÿ[_5"Ÿù´_.G !ë`½×4¡¦%È ´è/›0Ë’@@J  V0ÈAÍ{¸slÒ°qjpj9Ü›Üó~Èæ/‹õ»þEªˆÍ÷$ÿµTJô õÍùßüð©+ŸþÈÏýRuŒÞþß½ï¿Ùœg"ãùä°Ý?’‘uaX)^}ôéeS8£Á¶5Ø®B±‚jv߇ñÊÑNu6ÑùA:šÄi-óI*KIÈ(Î¥&̧ˆÁP¬8wÿCÛ»·R;+}9ifózêËÞ4Ç 9ƘDÔ8*¸®ïηß|í~_êê¾ËŸt¾W–UÁVaØj Lš!†bV“A ¨vo‚¨5¤ D/Ê&Û©¡0Êû7¿U-o:ßSÓùMpw$"R5B`d © 0“UM KÇ|¬.' EoÔËÍ̳!Àª™5–È ¨(‰’É™³3\öÊéöëw_ýâò}Oº…U²…(voíÅIpL¼‚à¨ÖÕ6¨° w©VeEHÈ i&°AiÈÊuƒ6qbKd3Ed€©‰™©aëõo‹h"_TPcˆÙ¸@NQIZZ¤u#~èövR! gÐóhv1M˜5hfvpâ#ÏœXèä)5!„Ðzï3iLi±Y½õµçWTG%zšÝk÷^}v´¶±ùÈ÷ËUy@l|Å…XúCËNý™!‰¨%2¹óÇ4àl ê}Pñç0¬ dBùÄ[÷Pö—ÿ¢Ö¬ÁáÛ_»uõŵ‡?]Œ6l9ü¼Ë¿ÍùN¸ò(뛟ý'?tê±}ê~€¯†¶øn¬*E‹žw}«žáŒŒÖ7žzà|;~×®>¬E$r…IH™ÂLM J8„ Ù ©EvT‹ÎàÄ&I[ÛíÊ2–޶[Éa¸ÀƉ‰ƒy{¯}sú‰§¬gßk"XD­‰A-+ù¼õæ×Æ[¯»A>yrÕÎΨñ¥7ެCˆ´Û©ãIDY)%¨QDF60Ya ¬Êˆ5°0DUAœÑE¸¥³W޶®Ío¿æîÿDª'¾çT-€‚ˆU£€ ,˜E‚Ñ 8%È”5™…‘÷X8*°l±ŠV"`H+#¨S b1r†Œ©Ül|çú«_^¿ødoqƒ]a‹b~8“÷ÖSêªMt~‚­FA,ŒÕ>“w3·IR† ‚”#2!95\AMœ0Aa=9Òœ0a0Ñæª˜NuÿÁ«T:hÉ)4¾…éLKX—|4•½qcDƤÅ4¼`s£€ÙènnoJPD#¤J z4Ÿ úý6´mN_8oGãñØx÷µg§Û×Oœ^¹ï™ª€å¾4ÞYr¬©Í0È­fUÉxäQa“R&%XJY]T’’j×àÈ€%2^u ¸Ð+­¥Îäÿ¯Apöѧ_ü“ßë"°J&ó¡øX-€+‡þ÷ôC¾¿Ô¡w¸~á»¶ÀT™j}a¬‡Ø¢›û/ÚÇ?qÿ»¯üvÕ;ŸPx°Í íLC \OZ•ˆœÑÔ KEúCœÒàˆœé…Yhæio7õÈ(‹u«Q æ u—®©!³Ü:®bƒ#C¬M\jžfû7^ürÈõòÙKë ˜½~ÔúªbSÝZB°£(jIYÀ8HAmÁ9H6€a߈a´–"”ÝäˆCD2)<“"¯gyú­/ÿZž ·”5Y%‚é*#R#Ç8² JŽ~¥@ÇPdFÖã|ÌõK¿6ldœ’‚J ÙBY˜³ƒHdXp…ñîÕÙ~ò§ias8\`5«k+·®§F;nà{Y4 X*0*ÑDm"E§~ê¸Çp`-2J‚!2ª‘¨i‘l` |4!F´I[‚cXVʈ™`€) ¦ r„˜–tèDùBÓ ¬š…R­ "VOÈŠy‚J»·@5 ™t˜Úegë¶·s2ÆÁ€Á¹­×«¥¥‡ïŸÿñ—ÞùÊ Þ:ùà3Kë§…Â9ërR0DEá(FqB£ý‚ȃ y u}©´j»µ\“êX×FÄì˜ãööÎHù Ó_6rÄ{)t{x‡ØÔû7Š…é¾þÁ.,*‡ßøŸþ^NñÉ_øeƒµs®úî·jÎÄ^/AB"*åþv]؇ }n~ëíÞÆå’-²²ñ¬áùDáQVlœd1½@³#i§29P¨IcšÈ”î÷¹ÍU‰ùTA`…ÆãµùÀ}UÕK~@ÔÔ‡»¾4Ȇ•§Ò÷wßù³ý[/÷—×Ï<òÓ®¯+|ãàÍY TŠNtí¥ÅH°­B$ê; *)1`Ù$çZµLÄ0:ïU†S*ý¥õÉ­WFü걫–½µ‘T+LjµÎ)kI&‚BÑM#;Ne Ì,z‘äÙ™,YŒ$(;“DÈÙ$ ÊÞ+Rl¶oÝxõÿäO=ù‰O,ôÖ‡ýÅÂöFK½ç{úÎÕ·tF @:ñ1°TàâCÐÉ¡î1SSkJ˜‹(`cPÂP§\ReÐ#ÍY(FmMx8%šõ8(ÐFÔEïpr·\>‘E›Ô«eô AÓê$A” õŒĮۧ– hÉÖ•3g%Õ󦮊1{çZHëzb¬_<ùÅÿå׊BxôG–—Vœ+ÁÎy UÊ5¼‡*b vj<¼ƒ-5 ¬åP‹÷‚dBVëI3Ð*\§e …´Èó¥—¾vó«»÷ûÕ!>H-(Š… OÆùa7FúðeðØT/þÊ/Ýzí¹þÏÿÞâæ`õ¬¯Fæc2iZÎ…E8`µºv˜ÿÙ?ÿÂ?sïÆ—§.+¦¦çlÁš@*å-53±Œé8‘C5"@9 ns¶(2'«ÃMoÁe ªÓ© ‰˜)æŠ ðÀ]øäåéø^ÏÛ½CmCÕjn:Û»u÷ú‹M½ß?sùäÃO ZÒ£·ÞœÞÛ5 d‹À°îØâWlˆ”R–LªÆÙ€¥R"M,>C€lHHÑމŒR†2¬f‚½òÌ7¿ôoóÑbé$å ŽIX™À j…< $0–2¬v™32¡Ó¥:+I¢1E™D³–‹*ç¹a1‘HŒ::ܺ¶uõ7yŠªµ»Û“vyÔ ûyz0¹~}GÇ ²¾7ie ÏÃÞ8…z†z‚Ù‘Ž÷09À¼A“bWü“T‘”ŽõÉìµ˪s„Ø9s@Y»ä~¸1Í@D­  ÈJ³9Ú9’•U³(Ø‚„Õ¦÷U"ƒVàÖõ[î ì¥6²%ѤB@ÓÖ å£”Òí—°ýb ùTo©’^¥%eaDU6P !U1¹SÞ[b(€(¨V†Àʬ̜° e #,,nåÊôABU VÎà="Ç÷À–ÑsØyás¯ÿÑg;ôöWN»êÖÚ>'n§³ªkÈÄ9²EA7Æ ÅóÝßo½Ý_»”çш3†àGŽÕrb¶šbÀÔ$f8eõDÉ•>ïÊl¦ÝÊ£p¯Ö¨¸ªÌP³s®ôöh<¾ýÍ?iÆ·kgOß÷Ô`q…5W&Þzýê½ç§!ЀÔLFePrî(Dšã‘¬bVÏ0¢žXÔ #«u,@r` ÔD à’Qô7V6/ÝxµÌyj¼õä»ÚÓd"F‘U’Õ„á,JÝú7çã=p øb¸´±zÔ\ÓÜ1œ9{ )rq”آٿqï[_\ðé…ûæ nܸuwÿ`e´Tù"InB¶£"té/pœÇ°¥ÐjÛtM,(iV@"@& iTJ®PǤª1"Gä„ÈEE¦D´)+D¹EÌJl¨ ¤€X°E©€ %¤.Rd†!€›¯¼þÎgfKΩFeiÌ­ª,–þàæ7v¯sùÁÿÅ_}Ùúb,"f¨Àà‚BTK(*2¦S§))ø>ò T-ࡪš!&C À›gCô扳—/ß^›Î胤¾ò^á3½û­á©G?<€ÿÂC‚ Õ{C£+ÿÞÙ[Üì-ŸtÕðóFÈTQ¨mÅW…íõ@ f‚9˜ñ‹¯óæ}ÏŒï½q>M!ÅDi†v_ÃíÝÅlŸ÷o¡9´½Ïó±6Tï`ëNºõv|÷Íùá’)+#2ZE–c 9lÞ½¶ ?˜Îš²ŒFýƒ­ë×þì· ÌÎ>þë—¿ß ¥\Œ~­ß8å«D¨3°ŒÂÀdƒ`@¤DQAd &†: EO™ŽC+,QIĬ™ºæHPUÞ¸Ó®@Ypÿ•§I›¼ÿ6 ÅL’é˜â#€© Ä©#f1 ‹F:Ç5%W õ” 1,3g“•Èc]I¦Ýº~ëÅ?<óÐ3£µ3ª>²d+ƒrhm¿‰TV‹ç.^|äé+Õjÿ˜ŸiË ÅpIËsä×Á Õ `3™DÍ Bv†viÕìì@0½Ó6E…qT ¹¡,5µ"=Z£9i]cÚ Coö¨E›¬š¡ŽÉØX^޽8¢rô±@ÀÖÖ·^'¹¾P¶ÞO£N¢ÎNÞxnvýùÆ×îûØ•<¸SöÙ—âHÆ ‹¢9!u݆‡¬ O¦¤…,rÖ” IׂöÔy›²*Éñ¦ u¼}îÌ‚Äö½úø/Dqæá§Âtßó\9õÍ/ýŸÿõ“¿ð˧ûÑÞÒ _ø{±âŒÉ9ë­Á§îY¥Lš™!+l^|èî‹’ê}Ârl’–>ejghfZ È• çæÝÞ#V£¦€/¡ pEÛ¦I›èÀ$hs:nb­-­O¦Óùäh©[oüñ«/Œ68yå‡êØ’í/,CÕ¸ WîÌöw÷z ­,¨Xp‚©ŒEfí :6RVpg\ÞyhH¤Žé 6UC­Âª2SŸ`©ÎZƒó—ïÝ~Ûo^’z^GðP(wUpŠDd ˆ!W€]‹“ÐuŠsÓ¤ aà]ª“3j-§½SºõÒ³‡;7Ö}²:}.›Y(B¸ïôÅSçXá¨`²ù±ŠBþôw_@âcNާ6æ;[ñ¾L½+ÔkTgH»˜íc>Óv‚0ÑT#´‚2SŒižZs+ Ö€,eFjÔƒ«(3 ZôzG{wËáÉ(* CI¡ˆšÀl’HELÐ Qeµ`FøÆ"Œ¾Á<áùßÿ¹>²ÖŠÆ¡'JÓ׿ôyŸcuÿSý¥3e+W^ÿ—²Ÿ¡3Ôƒ-D|G—adµ2ZmC·]MÙÀÀj °{€ ‹ÝAŽÖdÊ’œI"ùÌ¢X\?Ýø^øÛŸÐs¨š›Ÿý'?ôÈOýƒÓýhµ¸áªá‡tþö!²4ÙÛÓ9È!9\ÜÀƒ—¼ìØB×ï~ãµñŽöÇÍašíjœAæ Ö擳ö¤­ÕT\ hi¨¤ØB"b#Hj"rFb:öíDŠäèìæÂzÏðø­›/üæáέÓ~ò‘'~Ìï`‡½^Hâ‹j8½uõÚ×þù‹.bà´°`RïàP"wÌdK$ðL†IDÙÂV –bVkÁ†²ªqïjX‚À&+3uRe@2Î]m]ß»fU³$ÎÙdHD»ËY+±Àd8€ž:•ÎñõkƵåÒFD`e&[0«³zç•ßß»¶ùè3½“çÙöl¶Y ÈÛ×ÞºqõúÍ݃£[û÷ÞÙ½yk—¼åÒ" bFL¹Éô¯^ÔýI|ÃDì\ÁtmXƒ$…*rÖœ@5LæÿåíÍc-»®3¿o­µ÷>ý÷ÍCU½XU$‹Ce‘EZ’%Ê’<ÈîV;†ã†wœ‰t 4ºl!i·ÛH' Žº;Rì´my¦mJjQ¢D‰â ŠCM¬ñUÕïtÎÞ{­üq^Q²šK^x@…ª{î{ëîµ×úÖïópµVd¨q[U#¤ qÃ-3ÀU4¿¼b†6!f3XÌ Y;¡¨F˜I d¥y5B1ï0?€/ÁÀμüùßÿýÊ÷jbšÜ8÷¹ßØÚý?~ûôuä 287Jé¿|Ž–N äfÍ¥»Ð L60ÞÆd ¬c©Ý¶ñ.¡¦5c+ʽ5™YPpÚ[/î,2ˆÈAA­"›ŠC£G ìîÀ;°Ä„i7ƒÐWL"z=\nþÖ/ÿ÷ï}ï[–¬ÞýŽÉxâ‹^( ïÊ~Q'àÀ‰{Ï>õ8†Sbä dˆCg#^”ddÚ1OÄ:ƒ©`b¾ëöœ€;øD€±Q'Ý!Ķ×>÷|/†#uµø­,HÕ¾–u‘ßl{Aðòþóñp{O°±z̽iXÞ7FÇníÍÌs¯ŸÇ 8±ª{ì‹Íík3>ï®8öòsOŒ¯œ¶€ñÓ XCÙ™«¸m-Gº±®ÓÆ™fr5r²á6nt~2”ÑD´—ÆHGö?øãǃµxà-L´o¡oT–ÈXD&)…gX&̮ܟi{ûÚS†ùÏ`µ`‚š±#šlÎ`& MšÍ'L™,ˆ³u£ V¸N…稻´&3oà“Nªa:xû©Ó/>±µþrWýw%–S°Œ¨Ä  … ’‚9al¸áÓÛ—Å+Wm8DÓjÌÚ´.3ûïrÔ+á:k”êa k˜¼´9Çì ž?ztuq•­˜ŒÓh¯Þ~ìÕËç^xæÌæé+0ÀÓçÖù…芿õ“®<™¬ÓsÀeJŒ¶ZÀàJT¥å yM§Ö´Oig0xDK¨Èj•¦—G¿“"‘ÁÏš[`ÊäzìU”•¢ª/ÉÔ\I^xz#“A QÑ6'´@ß¡_£{øÎ×À'ù_ÞòÖïi˜ëA)Ž'M+< 9ï;plrê¡­O?>ëy¢Úëxc æÁìH¼‘˜u#:!’½]…=¯…nPö~§ÍŒcÐæ£Ï>W_µÛë¹ãÌß²zu cÜøÊãŸþ•÷½ù´r•ǵ§>úäo}øþ‡¬Üæßœãð· Suìæú}vš-£e3WϾ<üã϶?öžêè}§Öo<±vß7mOs!í˜RC“‰†ÊÅœ&»è<˜9nŒaŠØ)Ã[ ƒGßýˆT“bvÿîÖh~nFH²%$Ã'cñ>´Ó& ê§ÿßþó/L€MÔöH \ɬ…x0ÈàК9…c¨•Ì01ƒƒWør”3²™0Y4vZÑZ†ØâใÚ" êª7;s`厷ÕuŸªªÍ:l,Qã 62²ÆÜME”fì*®îáSw¾ÿmçŸy:Œ'hÛS™Ú/>ö›eUK;UF)ƒ\¥¤,À$à½Kd ôô™6^zžüüêíwï[\aõó}ÇŽZ]ùÄcŸ¹üô%˜‡£¡³¿Xo÷}"=º&4Ÿ€aKÔ@a-0‚M  k9Ž5'K í£!.¾jב u §6nÍ{ÔÍ.î_9ö IOŠž/Y Òd¾Ó’0e²ÂSÊ€XoFF;Îql4*R†s¨*PF3FF‰þàþÍç>ù…ûyÿ‡L®pÞ“O MJ^ü¡Â÷øîÏ¿ðx=UÇTF fH€°±‡+;î›/‰œ‘t6ƒÆ€ˆˆø&4ßœ(ZÙÿÊ™C_Þ9Z¯œ"ö¯¦Æ•«¯>õžwþgÿxfùpo~Ë·Ë]o{ÿü‹Ÿy÷ù¯|Ùï/õÌ_wQá…¦v#cg0Sì^¿>Z߀뺨 ï^<3 ì——ÓÙçŸ,È­e'lšQõ$§È9R`sÇÖ/[;Âì¼s4l-Þô²i2¦ û†ã~ïC<üܧ?>³ÿhÁ’Ì( #3+;"ïLÔKþÊãOL6‡³õ}Aߣ$0àĤŠÎC'Ìj rB K`"ƒc"&ËÝg3©‚…¦Š  &d…8аD(@ÆvíÒ—ŠþJ!}׫™<“’#©no9QŠ`BR´†–Ð&£xä»Nn®Ÿ§ÉÄ›XL$´0³rá¥/̮ݙ9ið严6Y³&ÃÔ˜jÃìüÚ[O½ôäËWžÞ¼üÂéÍáôÓÜì àrq~ùè±£ƒ ­àÔ f7óµçuçiL_ÁlA²ÈF¶7õ ê{žùâ ®B0[Qí` „PÔT„Ê››×¯õf¸ª$WB2Q3';PA sŒBÈ ÄÃ3`¦ªÂÌ<ÍöQ8jZøÐñ 0?³òür÷~èP¿çX…"°‹ÏâF»ãýKËQÇ×Ï,ô©È ñð¾€°çgdŒÐ#v{t+"°@<[wííÚxD#¹þÅ+§>wú^š?E,¯“½L¨þô7þ»;¿çïöæVz û›;/å•'÷=¿ðÔsûzK‡B={KP—ß–cNC/‘…™úúÕ+¬ŽÉSÒ®ûþÒFcBqãKËGngóžiƒÚF5³fj³e£Í lmšV_fmaS0!GXF“06ZdàŽw¿ãØÁcÃWG›ë®ž e]Wµyçajiœ5€•elžùÒÎ…I_hÖa¦@á€ÜžúXÞutu2‘ “H˜ˆm¾ 8¡Ž‰ŽSAD*{«ùJÄ‘Â)A@†3Ïÿé]?ôÎ쑛ʱS4Ëv{ÎXì`{KQ·ÖoŠHdP­¼å¶«çÏ…œ˜¡£1¥¢j†;Íx7TóN aŽe QµHŽ)')XægöÝy ¶®~ê"2i²xu4ºxug¼nÅÄyf¦øèê‘#‹wܽ4·6¶'Ûéܾ´ŽOŸÃÙ§p¡ÈíÝð­£9 ú¸e„U”Ð_ÅâmX9L¥ÑøºùŠúËôê³O½å¢„²náD ,ÔŠù йCT³ ܨ֞HhÒ,•B®‡j€œ0m @]õ_½rÁêÁÉûÞZú³¥¬•/ûlpÌsŽg÷>sé…xa»W¡†@0t.k †+ÀöÌPÄAñÍm°½,a‚BɯO<ñÂýí̽x](4€Â¡9ÿħþ¿ÿõù3K‡:Æ·òÐOý³ùƒ÷ôÖB=s«0߆dÚ’F"š™™wå,¸ÊW=$3KÂé-Ç\oûÉ}ûî(êà‹ `!žŒ-¼ÃplQ¹møúí÷øÀAXÔ<¦àágyg×4!3†ŠÍ„Q/-½ã~¨h°0á™?]Z=b9f˜/벬2%.Â8ÅÕµù´ùâ«O¼¤[¹W¡Oðîfâ;2$\œ¡ .(ç=,Sç¾å–PºÎ—–Ä‘©‰AQ»Š ¦Ä ÍÆb…2uuÆ7NÇ­)ÛòÊ‘íjÄ1à Ĩƒ3*ƒ ÞȨ³ƒÙ“p˜ajh•{%¦U871:.Xmvqí—?áz«^Bpžg†6àÂR±°:w×[ÚÑøâ>•7Õ å±Ï׿péÌ“/¼øôÓÏ~e¼»iàÅÅýw¼ó¶{Ž3½¹ÕE7;8;žŸŽ^¶á‹°‹¨+H®ADD´·±ŒŽ=îÃ/ÑÌ •=p´Ù>éø9ÔËj“~NLòbE€ó¤ Ï ˆ=z3Ä™¨¤C£l¨,% ·m´ŽÑ T@Aˆqvõ¥ç>õàüX jX|(Ö½Ÿ‹kT¡\=õðf{!®¯WB> ·ˆP@38ÀUðÈÁð%‹3cø@"Fr7Ñ$$”×â]OŸyçN8IÀëg/€Êã‹¿ó«³îZ>rrnßѲ?ÿ& ^¹ûý¯¿|¤œYº%‚o´g“j9Ût”Ä÷ûKËõâìÌþ¹¨Ó¸µË8€™áVn»Ã‡‚C˜Œ)5ÆÂf˜dìŒÑŒÌZ+û˜ß'qlyˆ²†Ÿ§á–¦ ØØÅ°aŠwýìOß³vèúÖå¬6;·ôâ›]=î51yv.$q³ËsçŸzâÏÿÕcÍ•¼Ta @Q€DÝG¯€Rfr0pªÊ:+°J0݃’A©rQ6g€Â9µ$”0B.>ó‰¥Õ;ÄÕÃmfïŒ@Ò‰DAŽÚîFÌÐ "#* H!\qç~Q¥f›¦°"gG€­.î?û¥OöUÉ0CD’Â7J4?Û\¸qíwžÊ;‰A%íyå‰YÐ$šlçk“­áÆpr]i:3W/ï_¼íŽ}ÇOÜvèøA7W }ùåkÕç^õÏŸëm_¨û©ì{áÝvz é| *‰nšÂtíÔÖ;DsËTÎ}ù/Ž>ðÖñˆ·GeœÄjEÍÉŒ…•õæY§æ e‰ªÐ£ñÄÈHíÈv×-ÑN1;ÀÜÚ“v|Ë«GŽÌ.‘Yák!ñ"ž ¦MÎÄÜg7¸ã¡s—¾2×Þ¨TV{‚Y)aî8Ç!€| –½S—ºa@Iª«íÝOŸ}øº¼ U~½lôŒ:àßþ£~û)”½þš ovRë¨{‡¿3•óWƒDdˆj\v’Ì¢ cè.e!i:þÓ/æó;Í–óö ‡áÄvo€fgˆ MƒéÔ¶5Kaãu¥ÙUzñ¬n+šDÎõæî¿ãàá£g¯í¤¶—­ü©¸ù‰gûï{«]n ¬®rW¾rñùŸí»ý³«iÆbb°ÖûLd131;f¦ìéŸÅ#u&ìqpÄ k’ ¦½•?rF€ËfB00Á1’Á3(ïM­‹vÔînóí Ö¯]Î`OÍ"xBd$21b³èٜݬ tOÇÉôÆÅ+ƒÙÚ å¦)dÚ( ÈÜŸYZ;0ºòRÿÈ ²Ø™¼ÅÜÈÁùù£³ë¿÷4(˜9ƒïÎvÝ5;6 ð‰ø¼í\í~áÅ3þEª©·:Ó_˜ïÍõöÍ–Çß¹œmagwk˜rú/ÔKWvýðêÅÓ§/ää±°R +Î,¦ú(‘!ÃT³ùý\÷‡K‡ŠCÇdgö7¸ðh Æo£^$vÔ4OT ”p5ª wtõ87uz 1Scaê>šÖ†C ¦ y„•ÛN5ÛWl¼¿ì/yË"Þ†1;éñÚçñÿýŸüØ ˜‘ "àn…›Q”jÛÞ_ zK5!™Lxåâõ;ž¿ú¶qq¬û|ú+÷¼Ãs¿÷ÏßÓ›[,tÅ-˜Ô:_ &ÛW}=êÙ7ÿr¯Äâ¸ÀLsš­)µy±‚i}Çÿá'iù^ùÀ;‹À„ë1Í0qƒAª‚ÛirM‡æ„•)¡¹Hç×ij¾-k_.,,®¼ûáÑ•^nsL0HdœúÀ?øðOÝööò¾zNfV–ËþŒŸ„8GÞö£h¶C³Y5»½´éÇÛÔ‘vÙØr¶”’y†Âb7K0ÊSs`$3 ÔFC¦à‘2B)©0ÌºŠ—²Z‡jw1sžn\>=»r ˆ¡×''Ô‚#Œ!%‚Z ø°eÚÓ [¬%€ºöX1»züÞvº‰ í@¤Ë/×ûïˆmÃÎÎu¸Ôîr ûùÑ÷~æ7_þ®u>p{æa)à<\‰ÎfÐDYÍ´ÙÒ…Ý“/ݸk(Ǹçö²÷ DŒÏ>qýÒéwýô£nÉñ À=ûñ_;pò½Äì‹ïx- %o䲩ŤšŒÄ` NfŸ{qrr¹H­YBY ?q«WÔDföq¥´ihПa nêuá˜[<µö‡Á"í{¾ú¦£iÂì±GÞòðû^ùÔ¿½ý'uX¾´=…hXŒ^ÆÃÖ¸áA(ÑJj¨™—wÒ…¤IÁ0E·hbÆhŒØ™tDQ×m –ÍydœÐÑÀpÖ”DÔ ãh§ê/X‚Ž•HÙr§j;½´±’Àr‡nÍH Ÿ‘ ±K3€ƒæé(h×3™F1û ÖJÏÇle¹¶vððøÒKÕâQ ¤™îžEe‘3+e!P{$EÌpˆ€sÐ í[fùÌ!ð–<¸¤‘# &1„r”m‚ˆ]4ÐŽÛÔ¨¾4r½…¹E,í1 JˆYšXYÀ™é$÷ûì„GÛi²mÁC ¡@QRjµâ å·ƒE¸ óG°}3Çà•KÛ/ñéçû¾øÇÿÆ-(<Š¢0¾yKèú€%èž}ËŸ†x§ý>PAJHíÆÚtT)k5á¥õÑásÛ'×ÛÛ)TÝK½ÁìàŸ{üc‡O½ÀìÊmî–<·¼öäGþ!€áµsqòÍ­™¾A`Ó˜§“8«¶  ì2û?z¥ùÍçÒ—wѾ¢éHw.iÚcãž›’Ëu ñ¡™9º}ø‘áñŽ‹÷ƒe2‚íiSíæ×kÑ$|ïþáóŸýØhëêhór;Ú_¾·4»“ëÏ_9ûÉsåÏŸxõÕ#/\^|æ.¹KÜd{% ºVÌB‡âPóØcìGÆ0‡u4g’ 2ƒ@ž¡dì±}õôÜüÔBÕe´dð—›.äÝfÑÑJ ”Q(J¼•ý™¬­%¹ÀÞï‹0%Ö IŠko{ÿµá…äóÔb*ØÐ€!0Ïp⡸?* Aáá ®.bO:Ä£U„€à‘[Ã1H`lÖ(¡¸€T¦bYŒ…NÀ%êz³ãúìÜ\]º ÀÉZ”žóã-#2#Í-âPûý½M.ÉÔlhv•Õ è-£`²¥5ì{ao+pæ#ÿúßÿöŸÏ¹oráY/Ç;¬­‘åÎŽH,­¢•Û§f¡GÀ(ø&X7g›4ÕV>|zôÐg/üÐçoüØ5;E¾ºyŠ¿áìeÁ§>ö«‡ï{WT·jâÃ?ûO>²ùês/ò#Òt˜ãô–¼î_f*bs« ¡ïa€8ƒ“qÑŒÂÕëþÏÎñS›ØšÐpÃâeMëîé vcÝ—¸°o{ñ-?0Ýÿ¨É,™Ý„9}Ë÷4)š„¿õ ~öã¿`¸~6NÿÒÖÎ¥WF×Ïëèú\5œNFi<.-³\†(*Ge&O&Î gu5³,àS…8Ø2  [v ïÉ`…PåˆÍv®žž]8Þ‰CALÁ.€= ¡{7,UøLÜÀ5°ŒØ93F¼X–uYDkEVï¼JÖš2›SG‘EåÎ{]å)_S¿Ÿ§×#v÷fמ2ª„ødÁÀ7·äÄ¡ ”„ŠP „BP( À pR"…=XWåAžÊ"(3%UBFÎÃyH°G½ÙÊ*ö¶¶Œ ”‘§–[h"¬%”LÞ €¶–Ç>c´Ûæ *D‚dp5¨Âðz5N<ˆ5ìâËwœ|x:ÚÜÙ½¡ œL»…ꎜ›`«%ÖÖ®\êZÍf0 ãi}­9üÊÎß½ð#O]û‘ëzÒ¤îüEßxêvñZûjùÈÉþâ[uüpóÇyïOþâcÿþW»Bš]!îõ,ÆoUKQVf“·¼ã¡ÏwwÎ]„½½Z!*{qÊOžO/Þ°ÞŽ€Ø´Á,nÛ¤Å{óÚCV-@föƾá6á¶·påÏ>zñ™ÇÖN½7N‡â vDã­K;W_™l¯¯ú‘Nøâ(Nrk.Áª#IkdÈ©eq`"òÒ¦lFÁÑ´UW1ZËÁƒ"RKÖÉñZ5(ÄÑhwgõÄg3¸Ä¶7K†e€XÍ ¬ã`E(àʈ@Wc¿ÆT³"ñ¥Ïçá ÞVLM3Ẅ²!gXï‰%ùùÕ™ýû&›嬌£©@ÄdÏdÉ1ŒÑ!3¼¢»,*ŒÀ1²B˜ŒÃ3òM®½QMTH¨A!¨7M ÝõÞü|ò(Êž™S‹‚À …ˆùÓ‘÷f¶Øhgj¬õçY5“À÷<`jeM)ÙxU~±ºŽcwv†Ã÷¾ýågž<ôÖ¤f˜% L?À(xhkÚ5iêÆ:w}tôÌö}W¦wRè“ÃWOÝ¿fr¼Ö¾êêgª7?=z-\›ñ}?÷á§þì£O~ä¾ûçcxí¬øàßë‘ËÖ³Ôìžw|`ýØ…í³¯ 5@†«LAbÌngwŒ_¨³ ¶ÒŸ©Gf?4{è^’¢KÝ7˜½ hÞ÷³¿òë¿ðÝó‡î ®(‹¦qëâ—G×/´“XXÊ Ž+ahÉGó°iMFÖý0ƒ`„ÌlÔÁn(™Á”&NÖárÈ%#ص˧˅óý.Ã:l^ÇÀÊfÜ^3à‰š-,Y©{8è tN—ÍùKÛn(4)¢Nœce˜Æœ©®Ù8åÌý0Ô©Taõă§?÷ïêæèä¼ $ ² „Œ8GšÌ”[æ7}˜Èucp„սѱ)Hᘄ1™(¡Ž²š1\)àÌ{ŽIYá“Ѱ.Ë )Óɤ©† eMã‘¥˜gç¹it:¶z†B I´ài²ö¬pj´ös€9!84 œÇÑû0íCÂâþ;.~nãì—o»/j¤ä¼sd`2š;[»ûîAŽÈÊjÕ3ך×vn¿<9‘e‘ÂÞ]÷¯{ê¾]ûêÕ/æ]?ý˸uí«.8)šŒ®¾øÌcâd˜cs Ÿñ­£†ìCqÌÕ'n;ñÐÉw?fªÀµ`oÝV“‚,Ù*â÷aå¹»~`î¶û_ËÞ¿î#“¢Z8ô·ÿ›ÿ©+¤w×ÏÄÉîtxm¸ój扩.—.ç™dó^À@ŒÀ$j`xGžÉÔ G=¢õ³Ïέ‡yçØ¼Á‚'cX6Gp˜ ¯ÔÝ<ƒ'WB žÑ ÀNCWw‹­¦¶¼¹‹ÍxmG·‡º³…<†5ž,í4dLDG>ôÂ==ÞA3Þe•Àgt64ª CQ„Ô1P0U …RT Ê’BBí88Š9› P8”!†~Ib03WÀD=*ÆhýÌüþµ (»b«<•Þ<#88!ñì=Dá …ãœ…`…™%c‡àÈ›‘‚œ…šr¶Ùy–ò(z A ~açÜog¥{ÞöáúéÜŒµfPc2pùÂÕ ¯ÌÎóT«-:tfüÖϯÿЮþð…ö»³,ì¯Õ©ú¦á¿æøY>ì·CVÿVá4 ǹÿÑÿôÙßÿ—ݹÄ>ˆ/nác¾E‘hE€V‹³ó5j IDATýAyÛ¤VrciÚÄv¤h &¾ìÏî_:|׾۾˗ýîºûmdoÍ7Ò»ë/N®^£€õ­4;Ç…XNV’‰ƒxX¶)Gc¦à lJ$B…ZêX* ê(ÛóÊ‘C6@ÁI,'ã ,`²{E¼/Šª(jfI’dF S¸‚“ç4I9 CEAdx£Ö ‚à‹pÚQ®zeN£ dª–§œ9µÉ fnbf¢&½bõ¾‚>1Ù¼X-®µm Ïdb 5 ƒ<ªÅncÎ !dµdðLM G°5Su3Š(SÒ”Œ=T:Ͱ‰@ ‘­.#¢’Á|A®¬¦%Qɵ¢èíêz›¦\ \ uBƒ9„ÊÄ[9 H@5 5”(ʽÆeÎ*ôà£m´SxAZÿƒñôËÕÊ»ºcãåϬÞó7r-¡ûõ¹°±ù]w2V¿Òº¸}×f<¦\uT`3|Û¿c¯Åkí«÷ÿ¿ÀÕ›Ù=úÆØ{­&áû~îWNÿWïzöã¿öÐßý§Ãõ³âŠ7‚~cA¯ýAÄªÅÆ¹kuqpùž»}537Íp;5  ¡î÷fW{s«À’¼¼~Ð~M!m:Ù¾|¦ìäI À”Òš8X°œÆˆ‘A(¦œL’umD;"†&+ƒe…W8…¨%$#b˜®^>;³¸æÂBÞu·>%23rÐ&“œ‹ÎI(¢ƒl™2)©!ƒP´/|ÿeâ³_Ömm[i¤¤žcÌÖ´ÖlÀ;Œ{X¨S‡yç3ýöÏ,ˆ"')‚”¥d"€ m,0œ§<5ϱáAÔ2*”)Ô£ËÔÒ£$gË UMËÖAÓI ý@ž`ÑêæIÉ„1ºzæÈ‰“æA»…\öȆPEä‰Iýen§¦c›Y`q–óf™r 0„Qö¨s+k„Ú8A9¢Û‹0E= ²sùê¿^¥Ñ¯üI›¬}¿Ëwû0gnqõRÿÕêÝßóùÝ;7âavøÛ¿ë~ÓèÚWÕìòò‘“ü­–Zì%pWX~ðïøûGújƒÇ·Œ‰õºñÕa¡m¦š|(«~‰•¯ûwÝvÐ-x_cWHÿ×ÿã}ô×îýÁ¿·uñ+í¸Û6Æ¡9/±íÈ yHm›…*‰€vj1€ÒÁZ28‘Ïæ21€¨Ûûe–¨±QfòDð*±WÖO/Ýþˆ8HysHD¢@ öԔʥ£œ¬#~0 ŒÖƒ9£Üí÷ì»ó„ÇÎÚÊRî¶›n:å<Ý aœ'SIŠíÝfw×Õ=š†ã÷=r峋w¼-íîö—…)¨Â;"5(Ä#3’‡¨1±¦0ƒ/È‹ik®$ç@ª!P4´­( B2!Y(‚ZX"êýyÞÝUmàtØëUa) úNc6µzŽËÓVƒ î³s†‰y!ÃÔ‘¦4C‘z3„¡jP¤9ÎS• («=wM& ñÔï÷o¿çØ¥ÓŽ™dñ±‰Û¿ÅwœÙ:qirï„VY„Ý›½ë~c¼Ö¾ºë?`nßÑ[{Æ×R)Û„c|ðþG?úZ!->ýÅ[û¼¿" ¦IsðÚD÷«qK{ãMÆÑ‡bõñ½úÅ?@æñÅ r! ‘£)L¼™8 PlÐv­T! f ÐÊF€ ’Û»VQ†AL >’™!ÈÀ°v|•ƒïõ{ÁWFN[TV˜* "ÈÉØØ“ 4C`22D” dä Ê}‹¹ÝÚ©B1+5Ê~\Úçà⤭&“4N®^JÍfl'’8m5yŒþʱòò™W..-¯iâÐÝ ;Üy˜t܉dÃ1åÖ (™ALBb$µHŠ2ˆ¥#T%gÑ›Ëpd ‹Ü´{Œë¢@ ƒýs&¨ªAQP%a TΦ DHIƒyŒ¶-fÌÎ1ÔŠŠ:Óc3R¥þOvrÕ'd5A4 †ª€$gÁd ( °6Ñò‰S[;g67ιòѳ^ÐG§Õ=ähO’q+ 毋×ÚW÷ÿø À…7ìéù†ã«º+»YH^ö﯌­«ç5w¬Núú¯[fh2ÞùSÿàÌ¿5Ù½§cÍiØê0es[õÉX¡‰i²k“¡e"_¡¨- Z" ïàuJ&j‘ECb°RN4™' ÙjA¬l\83¿°&¦ÂRyö„`ð ¯T ¼·BÌw;bNÈÄP*¡`æ#‚A#ĺ‘F_üÂÆ+/Ô¢5‰A2ü\© s«OÜu÷ƒ'|ôŽw|ÿ¡Þ·pûƒnf^ ÈŠÕožNš ¶F¶ÕÒ:5k!˜åˆàX ‰AŠŒAI¥£^ ¢„÷F°Ég3±n ®–‚~°+s<¿€ùyvÞÙþÛÐß+†½ª²Æ ¢åÎHKÆÊI°hfž|05ÁÌ<Z÷©ì³DŒ)÷z heÉ!€ ø‚ ðP ©¡`A¨ÀRÀ| Wší;ñ½ÿñÏ¿ò‡ŸìöüC[q‰L Ö¼¿£Ó®}uk·¾.þ’p2)ê…Cüû¾ôìc{é鮦xËŸúú¡9ýÍ<(f$³ÛO~÷æùçm'Û9ÆõKÌ8)«e¥vŠljô*S4ÊÔ˜S*—ž([JHJ{ŒP¡¤Ö¨%56C.I<à26^=½0·¿êB<‘L•#œO -(Ã)DÍ3•F¾1iL"$ÃE ’à"(®q¯æâÝd4,|Y—ýù¹}…«ƒ¥r°¿¿°Zî8xìÐm÷ÜûÈûï}ôýûùP…á@Õ{÷ƒ¤óÏ2£»3ë ß@Fà1t D«:¾_C6;Ãua&† ¡3 SÕ‡w$Šô 8Á 𱹄ši~YjGÖäþŒÝqRV¸ºB^]\œ›[à™y—c–Ô‰Y™jvu0`q ÍWTVÒF¸ ÀW¨çÌf…Ö YÎEEÞ\ ©AH ] ½BèAMòàjsçyûÛñ3¿óý¾I=¾~® ß~7ôõãµöÕ­Ý^øºøú†X“¿ZH¯zïøÆEqEÑ_¸å~øKàœÛõó¯.>uþ…§šáf13¯9Fò 9ËZ̲‚(`ÆFyb¢®2Àš)bÓñwL dX)+ŒBd(œLqrÕWÁWµ+zdN“uœ:/€îÙvg@:Ϭd,ddÝëѹqBIàÝÝ2E0jús ’'"B,ý²pÀb½Pû¢_–ׇCbé9?MÍêòñ¹OYÿÉíšvЛ;6³{ÖÚ‹žŽãd*ÎI3ÁpjýOë`†Ú[¨És@‡§†PʆŸ%æ\+¸GR’6F€ßƒ“<ílå¢@±@ƒÒ€Ö/¥¢–Io°¯·ÊåÀm]DQP¹ˆ¬YêRš‹pSÌ.€ £žAC@Á2ÝJ®¢z`åñ{Õ;‚ú9k`†*ÄLÉ|ÛÎÛ•«£#W¦wOéÈ]?pêSü®ÓŸúȱw|(M‡â‹[ˆOþÚx­}uø¾[¹½ðuñõ ܶ¿ÿç~å©{æ÷~õÔýâîÕÓâ‹ï§ò[ÅßXkŠ“ÑÖt:9ñÀ÷~áñzëÆéhgìÐw^@j’É´05 Ìm£9YÉ(údmkyŠá„$l˜&ËQx†8t"êˆã<Ö_=ÝŸ[ˆlìÀ$ÄÎ ˆÉ\' ÊÔš ›uò&²J f¦’=ìúN˜¢ìnn­péêªH-%ëKX̵1O-ïlÞè÷z£‰aIû³³›Õ‘—ÖŸÜß‘Àáá÷>üäïþÖÁs;ÊjV X?‡­kЄá „Î -%†óv,`P€–! RVñPE å¶ N„7ÖÓµK=uni&ͤta£˜=rÿ¥ëÏè~Äi¨*dõ¨N':YSÚhÓRFl!SbCÛ3Ä›9dFœ 0LÁŽ¡lhÁâIiˆéòŽÅ!Ûøòt<ûÿ7÷åñQ•÷úÏû¾g%³$“}²v¦¬ "¨µ{EY\ZkûëmÕ UÛÞkÛÛÛÚŠEj—ÛÝ[ІުmÅJE@@-´Ê¢B û2“ÙÎò¾¿?NBÈ’™ð|òÙÏœ9ç9ßïû]ž/óJVÜÕÙL¼!"ÉB„ê]ÃJdš;.$›¸B¸¢Ãå¦çŠŠÛe\PÆ$‰ Î ÅcXՑÈoIµ' $—H.P§±Q¤M.[°bÏ–{_~rÒÒïDSYp%ÖžðÕ¼/ßí^èƒþs栃 WücËÆ]ë¾qݪb-Ǩ¬ªîÀÅl©÷:£gÑÑCZFÁNØâ¶N…Ÿžï!œIG¶¡’±-Ç^Hu¶O°¡3©ê ±m00!YàŠ°tBM.b$Y,C–ˆ%„‘„e€phQu0 É„0SDX‚ÊD–‰ª"ÞP£ûóS s˜¶A­8gB@¶ ƒ LB¡ÈIÙ‚Š €Âv¤3„À±(ZÂQÃáYh6£†!¸I´SBT.Y&O¤’‚G:Sàœ¶FB啉«S´¡ÞEìNÛH´Ú.Ù?¶=y°Ùö…ò=^·®Ó fÈÔ3´,î/“\¦iB2 *àòÁRíÄŽ Yj +B ƒ@×°(.ˆiˆD'¸3S‚‚3’`ÄlåfS¬ý˜Ö¢Øš$T™Â„æ!±¨Ð³D ˜ NâÉ&0„îl› ÝE 8ãP%"¦BR¸3]æÔÕaeGS¡Ö¶üv£0! ¦‹È.È]¼ºZ€ 6>}Ïck¾<«õè»Á’±Ž#=°öI‘ðÖ¶þ‚Š@AÅÀv/ôAÿæ)ŸÿöúoÜÔíH××°âÑ’úñU`¤×­žÛô´0AMu€Îæc îÐðÁŽXK]×Öm+3^4!ŒÉ2•$Û2lNFLš·{ÛÆð¸ë>hŠf…A‰È±@á9!Ù\Xd É 3’0’ 4Fd]È 8L#a M…ê†EDÂFíÑ„äçÑ”7Ïçö²xBPE(&mIgÂvôô À² B…•D¡+7º ª5ÇÅ?Ù‹o¾zæÜ6ûŽoo?×e¡°-0\@!!6àLшäThÙH%a$œ=DR؆¦–Æ,’%w 1£n¸„P,„¤ ®«„0h)=H¨ÛºJm[P M‚ ‚0PJ,Kª+jù"F~{2ÜÜYCž`Þnqˆ.Þ¢¿äPÊ‚oÈô ³ozç¹oÎ[ù‡XË1&kŠÛßÿIrþç•Ì 2¼¹qmÅäÌdl`»úàŒU]¦ É{ª#Œ2YíñN'êé,íl®íâçû;:[뜱Ö:•3? +§hÊœ…ÊïýAQ¸äž™2€h󱼡— Ü>žLRô¬€$i&œ€¨îð° ­ÇÞÍ2Žºð™c¨E,.(!°·…Ê•!¶)l …®… ‹À°`HX Ñ\°œV&×”»Ò%ÇTM$“‚›°BOÙªNˆ*,\3&¸€K§Œ XÎ`/ 0Pepí¦Øß‚øè!_X°¬,¯øp«±ïÐáÎŽN·+ º !Τ!áõ8ÍB€ GÖ–‰¸ä®I0qIdÖ'îÝ»cóÐkn•ƒ,aDjÉzfE!¸»é5ã“,Ø$Õ&ì(섉¸-˜ *ƒrÀ± ›‹›CvAS¡«°%Á-"tØ 4Äh Y.wÀÖ‚TõÃ[@“ Û›MÀHwŒ(wù!ÉÂ0¡)DPI0‰D@5á‰[Áh*·½£°Ý Ǭ›fõœÈ¤»,¨«ã ü3,ÌûÂc{nòÞ_~TyÃ}V*&):“ÕÎæÚ¦ƒ;ÏtÂ4|°#ÞZw¦gïØØç‘på,3KÐzÎV–™²0ùFÇ‘þë¿öR¼õ¸¤ºTÝ{:Qëßßk=†^D=T½@VNaɨ©Â#'ûÆOþòûCÅ=o¤”zʧfÆS¢øòJ›½¤Qn›6'¡Òq-uŒµ·Ô¹r4¯P ,bÛ €¢@€!`¦„D‰¢:bh¦Ķ‘H‰xK£$:]*‰6Ö7¥FBD¬dÜ¥AF‹¬–G£–Æl™3¦ÙE@„‘€ma Ù†æ§DÀ™zes¡j v Š›Xºh‰Ë{ÛÕDñð[>s—fѵÍm2 åT´GÅÕèÒbë—è~°o9*'¸láC{¶_müЈ{"5ñ˜mN-O¦¢GãàB`DÑs‚pB’7-G“D˜QlP&TL"¶%d“pKHn†*£µñPñ„©z–Y¦ŠWÐ,P ‚` 6ä‚¢ÓS˜€d ™3-Æ]IÛŸ°³ÛŒâÖdAŠäÙP !§?žs“½É‘•^¶ü±uO¬<ô憞Ç}9E¥c¦é]壦ø'ñÙ/ý÷ºîóŠº|ýßÊ’íY¡!ú+)ž9}N}#£qYry<.œª=ÒëöÉeÌ)um§z•\ eá¶oüê'Ì/›rg¼­žRv²F€Ðh‡¬S¢sIaS#),Cp(DöBáN €Ã²`Å8lE( " ˜ Î혩ùm=_@.6ñÄS^[U ΄E‰Ì"¦lsÍ4Õ”í6áï4ý¦ÈJZž$÷&9_­÷úöŽ¾Ãªq³ÍøôÝÜo0¯_uÒ–øl[€Åqý²û¶ýõÅ‘Sm˰Œdš¼èiŒ0lx}áÛV<öÌš•·?›[22§x(eò”9ŸàË)*=µ÷ë)“º÷¬‹ŸÝ$ýøŸ˜÷:Å2”I‚­ bbgk³•J¤ŒˆÍ…¤¸+Fo<ön°d|có‰úS—©+ÚP,ÇL­ F"&‚Ù¹’âæ î@®Ì‚”Œ˜âq{$!'°± 0ªJU5æêTs´ùȿ߯J` VŒ(2åIŠ&#!„EDQ`$a0&ù\VqA‹R zÚ'«½dI'€¸èî)Ë"’wôäO¼ÿöŸ}E#¹mªî¡†ú§†¢fsA‘2aÚ¢KàF†B…¦ 榰‘°D2ž€3®“±˜kŠ4òXc!qnwÆ¢MªÌJÉãÊá²Blq:Ò^µË,)— ”Ù •UfsÊ…$ˆÜ­º Â.ÄÞžg˜ÆŽW«&èîm¿3m̼yŦukD´³õ¸¬º‡À¸@v^¸|ÜÌknÿ†?¯$+˜/)ÚÉëRC{Ö~&q¡c§nùËÛºø®£!d%/z÷õð„ٔã¯&sFTÀÒ#Ä ²æÒ…¯^η²K]…ó|¹]IŽž~,BÄÙwé¼ „°ã‰HKgkûˆIsÿ±ecxâu–§L*¨²l1XDj€$:ÌdÌNÆcÇ“QQ_{È6¡»=¾@ˆ€”Ž-õù©7{j,¢Å:e,!I”Û€æÁÈ+æ¾µõÁ[cÍ^›CÏ­ç“Üb‚þwè"-í™ SìÞ²qè„ÙU—ÓP&Õm„Ëbí‹¤É e Dk÷½½õŽ÷H{p‚S;[ˆ4ÍÊ-¥È…!þܾ+ {ÿöÖ‹? 䗆ʆKL—4J”ØT8g"LAÛ Ñf€‡"¬Óƒ‚ h¡€Ò%ò¢r€vÍIb²0±˜{ܬ{þþâñƒ»†VÎá"FY–¡fçZ­©ËÞ@nv°ž…Rz¾7§XquiuɤçÇDaÆ:;’‰8$½bäøú£ïe—Nˆ4j„«¹­!žê  ñÆC¶ w $é^aëno‰ËŠ ³! „Aö1wëlãÍu\âòÂí!L ‡E„KƒÄ ysÇ\9þxÍþ`y®ZRx"9:¥…/^õâ¼ QÈ [ž_{÷¶póëà¤Þöüå îM“þK ï¼VU1q6€`~™œ¶tÎá…Sí]wmH·Ð<€.T¡"”—û«{¿&iò•Ÿþr¤¥^aÛ¦Í-A¸€3³„:™tr±?&ö'ˆW†dÃËPì&!*¼‚P.$˜‰, Š‹Ã‚KòäŸwpÇÿíÞûNþ¤Ov oL©þRw°@sûmÍíÑÜ'+ƒù­t®&(e²°ÁÀC[KcäġȉƒÙ9…®€îÊÎÑ¥Rb“¡cfC“‰m€§áŽÓAˆæ&²Žd'ÙF’J4‰¸] *k;aÉ$$‰˜†ð!åW~ï`K{/þÔGGÕì’˜¬º2È_( oýqÍøÙ7ä—¦Ãü:èe„oAzŒðÙL5ê×6N˜—Þr0àÁÜ¢D´Õ›S”±Šh…*“§Yb¥Œ[úÛ¤’mkìh<m­O&"–‘°-¤»: {ù J „ˆ@›…£)!S¸d0&…ØR n‰ä¸d·*·Q9½žâ ÒÕåxê‡!ó·GÖ\þ‚ ÕÕ]KÐ[º ý ¡$Ùïqùãýí¿ÿ­åø¡’‘S|¡BMÕ•l] ÉY^[X)Á!6\P ŒHºTb›¤­žÇ£ º2îR–ÜPc*éèVs(Ë¢­õÖ¤…7ÿð'ÏzÏ-—¬DTR4BÒxjõ%voÙxùµwZã¦72`„ÏöÕe©m`ØäŸ}mé¿þú«ÉŸ¾?ÒxÔ—KG4#¤= !TI+«öÚ¯WµÔ*=Õ*’U•”# 6IÖK˜IÀ&Ô„°…Ó÷«( nÁ"$;¸i@Uˆ,ØBõ5(8dqSd¹Á @ñâmÇm9Ëk—M1Cmï¼ø³OÜ÷‹ŽæZªèª;½£¹z 3´ÖT'âÑüòJ_N¡’ÿ¹é6Âg#°Ä°yÃÚñsn]0DVÓè?;àÁÜâCG#ƒ=Iš­}ê›Kg.Z>ìòyYÙš+ „ !tw@wrÃÃL#i†i&ŒD,•èLÅ£¶ern n Î-3e›†e–•äÜ‚“dE÷èî€îõk.Ÿª»U·G’5&)=×{qÅM‹ïûþsk •+›8¯£ñˆ?È€·,)l IDATÖ,T‰\xö¿VÖ}¸{Øes\¾lYu1&QʲtÀ4ƒlÉ0ÀÕášM¬$éè੤`Œ¨.¡R5H¨‡5¶ì˜p» cÂåòà)–"õ¶$òÂF«òÆ/¯yüßgî}}ÃèÙKdTRÒÕÖ׎ùuÂW²êJ_‘£ƒtá3˜Èo¿Võ©»× «›1ífÁ±À»w­ÀmKp‹Ðt¹7†  Ü1sØås/›w«ÇŸ«º¼Lîj¼vÆ[ÂÕ Õ­£ÿv!„à¶m–ipË¡”IŠÖ·8)DLN®¼é«5ïíÚöÔ*eç¥â"g°ySe¸ðô·–ükëÆ9·®„Í;#-”PJ%q<Ž—÷Z³J¤¡>.’Â$ #©¸HÅD,.LŠDIFªNlÇl$…ËE˜$d¤l¸ÃrÛ;Õ"ôòì˜>"Î*¼9Ò²«Ÿ\µ´tüÕ$YÓÓO`™"ÛÕ+|¥e"È’V#|ÆQf2CËÁjÕåór}9Eé[è÷æ%¢­ÈHKƒD¡Ixê‘%¶i~âÿ= @uy{Ç$Ióp(zfB(“dÕ¥{ünÈíËÖ=>&)§¿²ç3ujÝ>óȆIsoÚöÔªv¿šˆ4ñ¨e$Òºã=èÍÞO}éæ,Ê:Zwû¨ÓÙ Qàõ£V$ E…"£Y$›€ÛpIpÉB¢T¡ûˆM‘¨ ¬‚Z‚ÐKåöF©åšXÁÂ6:ŽɰĨ‹†VN}ç¥'t46i×o’þ¶¡+|Ì/K·ÿì ÇØö<3³Œ`tFKVщ?˪.eB&\ oøôކÃ:[êÒJ`J J¨©®:¸gû-ý@ ¿Luõ¯¤KΊž—‰«§¿²¶@ÊÆg¾ÙÅáX[}¼£ÑˆG20¤ª{GLžçˇ‡Oö熩,vW!Íoµ‰6‹2BXJ0JàRà‘À±m(*Õ4b&‘j²BaÇ”Ëë'ãžQ)’tµõÝûèú#ÿ|­é£wÉhZKhðÕ–ç׎ŸãXÂôe{Ã1Âï¿koèl=n&cõÉý˜Q'þ\Uá,Ò¾rÀEæ *U m5ÕO}sé¬[Vxƒù¾P±vöž;ÎÎÕ3Áæ0,|ö›¹E›ÖÞk«µ7¤âÛJã|ŒÓÙë äi.onñˆ‚ŠqÞ@!!²S.ì\‹Þî°ÖæÏ»éñ¡*c„¨ º.<>èº@Rð¡XàI‘ê(\…ðŒ‘¢©}ÛtI„fIvNiIœ)é„XÌ^¶üÛŸy@´ù˜‘N#¬0´ÖT«nŸ7ë ÉZ&̯ƒôa6ëÖÿ<ýQ•áðΪúc‡GM¿ÁŸÖ½š©k•ÌÐR»/ÒÙ(¨Ð½ÙiJ²«h¬öVÞ0åwUθ1+»@wû3Vøu:¸&_}Ó®MOx㥮À$•Ir:¬Ä™Ø+)!$+;„›‰˜‘Š ç›$´Ø8˜Äû)|:…I¨ÇÅ£¢æ„8ÚFŽÆ°·;cØ—D($É!D[DÛ»¶Û„¿ˆüPGprœê©wv¼bìôw·þ¡áèû…#§1YaiÓ~Ñe¼ü󕯔{ƒùš;íÀzC 7ý¥ŸÜ_8f&„PtÛý[à®únóË2xfgÀ˪„~²2·däé«Á‚ÉáÊ ýWÛUU~yÍ:[ñˆàü#œ…½„²¢wÕÈ©×æ•Ñ}>0p€ˆÐd‰¯GÅÓG¬ç›Ä«Il3°Ó¤ïÛ¤M ÐG=@ü0燸.ÑÂ/¬ˆÐJrZ#”ãHïßö\¬­!ÖVo$:ÓÑ'3hí»· 8€’‘˜No¤É÷C`‰B>u|ñ›9wpŽ©×,:¶÷ 8è>–ÎÒ÷í?®9¸g{¿«A„iƒe…¿þ«íñŽÆ­¿}@´¥.àpvö ΄Ê †Œ9un¨x¸æö9Ãoº&‚ÒJR]§q*qÊ%ÜZÁn†l·•¥!˯GøKˆ+œ‘*9õw¿øÔ½ö…¯[vß¶ß}@¤ñ£tD³d†l©r²GÁ‚²A9âéX ÷C`™açÿ­çšå•¦OΧ_œjÍ7š„Öšê¿­[ý±«AaCò…¿ôÝõGölîâps­à µþç…e¯‡Ã¹åC/›Ì/“t Nñ˜ Dhd¬—Œ¤" >^¥å“]lÅ(ö…)bD™°wKÈ’Àô­UÓ&†èwGL ï^Í“íGþù#Ùi[ÆÅïorJøÊEè÷éC:Œpß,+$z²|RVuÊ2´úuÀò‡Om­[ Ú|ÌíÏÃÀÉa«ÐY;°«Gʈ+}黸Ù×–nýíCWÝùýHÓQ)ëil¸0¨‚.üî›Ã^=Žn Tž_:¦³­)’<AÀQ ‹ÏŒUÔ" 1.Êqòm¸¤hm4@–©ir›Â•OS¾²Ö4Ý™‘|úælÓÆ½®_}ÿ-9%cH²Æ¼¦FÞ•uû¼\¨8óþs<'Ü÷:$1 šÑòÉ>àþÜp¼½¡ëîÀY`™A“ðÂOVŽ»êæa—_ãT\e,‘p^0,Œ¼r‘c‡÷my†€Dô;憜۟&!Û…§¿¹ä_[7λãggo ›W6Z÷ ‚Cò¨xt—¹my5žÅÉ8Âólá§09:„G³¸ƒ[)->JgÅxÑ™ØÛµË6r‡OŸyýâýÛ6h¯¯À\‹“=šà˜_MÏÈèÜþ1àF¸¯–i¯ö£‚r)ýå“} º;û›ìÍ)3P‰AF Jxõ—Ä¢íW-]u‰®Î6FÍX4鎿®_ã”MœïZ&:šO|ÐêÚñ;¢-ÇNüƒ7OQZ›öÉχGNÒ\YçÈ^Šæ®?ÓLÆ>ÚŸˆµ‚:r8añuâ…Sc4ò¹;½ÈŠ“:[Ô ¯ÃFK‚Xº›UóÏj4ÇøØJ>ÃÆ¬›ï[ýÅ™M㯕5“’¢]üVé_]ñé¯ m̓çŽ5§˜H½ÚdE'dp– ÙyÅñHÈ@•qxGÕ;¯®¿ëûÆ¥¸:ªï^m®Ûú›·âAçñ@¨¨bl?ºj•SƒS¦žþøƒ«× ”ê2î½¾4XP&¸M;÷“FáÎÊ>i.còñCï&¢-=Ry”ÄûIÄjà–¸Õ,ŽÔ£9#¶+•]>B)¹]°8æ/[±ïï’­£©ÎLÆÏëË!t·Ääyfæ†Gê^?“U*ID’™¬QMz|<·$<üòÑÓ®sÅ ù%£$¦¢û+ÛVÃÆ§ï~ìðÎ?ÄÚb­'.²6K¦¨©®Ê.æ äúsÙé^øX àJø¤fĉ?W͹õad<ýÛNKC¼½@¤é¨ËŸ{Ž-×]3–ˆ¼Quણûv´7ÕåULÌÊ.`™©KÜv 1Ô¿_­y|á¡cý¡"U»¨%.`ÙXxÇ}»ÿ¶aâÜ%F2¦èžs/ÑqrK’¢•*ÖÖXïh±ÌeŒI “dUs»¼Á¬P—@œÓãql‡''|ݲûÞ|éÉYw|§£á°$k²~!-–P^ÛðDOï~:|^ÊŸ$†ÄÐr°Z€èž€/Tœùøs„@Þðé-µû»g·ÀieMµû¶WíÛ¾±îÀΉ³L›{ÓgXýüVîxñІŽ÷ò‚Á ç·ÏNåý³kV^³ø^ªæ’”‹Zó–.øÖéç.io<¦èÝÓÿ<‘~áøÒ„o0ßÌ?—_ 3n^±kóƆC{BeãŒD”)2»Hf@´¶éø¡üòJ™é=:G\ÌJ¸—l/Ë›Ÿ[[Vyç6“äAŒÐ:- ÁÜ¢X{£ÛŸÛ/»xK@»í¾íUµûwìÛ^ÅÀ/»já’/=2dÌd²ª)ª~ߣZ®üëSߺåÁ_ „j„f¦Åê S4¼_ÝXw¨¸¢€2•÷¶€?7|õ'÷aU÷¤OPæ‚!L ÷>ºþá[§-xh}Û‰B™ž•M=/­™áµç×N˜}3€ìÂ!—ˆÿ܃s4Â]%oÝÂͬת÷Øþꮃ'Q§þy㵟û¶°­L?÷ Î1lÜ´–Ú}}Lû3¶uvîÛ¾qâ¬å£.ÿÔþÈ- ¨:¡”: EÀ¸ïûþó³3ž{ôÎÅ«~ §sÈã»t|ªÞp–Ï®Y9eÞ-BEC„À,ó—._åá†ZU÷h™Ò²9/˜Þ`xñV¾ñÒ“®ûB¬½žsKó ¥„Pçß³‚#=¹{K•¾’3¢Hq^8Ý+¦‡ÉjoÛ›±‘¦Úº;#͵uvÛ¿#ÚRW>z’ôß7ô媣'‘É=9\ôòÁ§¤ËOvx[»¿zßöÇöïˆ5½ìª…Óg_÷#ÿã¼VÕ\Nt‡žzµ¶9|¡ð÷Ÿyã¡Ûzq˜RÍí»MÌ`µ×6ÖZ¼|5Èü:8ÍÇUÝs V³8“²šŽ}XýÇ–ÚýÙáQ#fÜ\>anÏW•ý$“û3Ë2;5|u)ùÏ=pŒð+ëË‘eŒÉšÇ¯k'½Âcû«£Íuûߨ°ÿþPaŘ)þPáÌk>U~ß·ƒ¹Å¤_V[([Á’Ë$tý4ƒ|­â3®]ôüï~^~Ùµ„J2C´¹¶îÀNgq[6êòËf-˜1»ËIVTPæö,5®‡èâðŸ¾jÉÃOu4ÕÝí»ÔÎ`™áOëÖŽš4@vAé€Åq嵋ÿú'Î]ÒVDÕ=—`RMa¨;PýÒÓk?ùÙU¥#&6Õzçåýé±[‡N]?ìòaÓz³‹œW2Y#”Òe™{æƒÈ½ÂWŠæt§²_8«Å…w,ßñÆïÇ̹­ñÍ©ÎöúNØ`nñÌkn°ü¿ã¼…IrWÃ9!¤ËøˆîNúDg‡¬êܶiºàd€(“ÚŽøÑžÍ‡ÞúK¬ùÈ1S¦Ï^ÐclM§”u_†ÏéŠcqèÁðƒ«7tÚ‚a“†M[ØóFIÑ¡ TU$Dj›êjœðÕ oœB ”Þ·eåÑÝ› ËF–êm`H²Òì&no£›À€ÈÎ+²Í”¬hœ>×~´ûÕTëÑ‚²‘ŸþìWGO¾]Æ–B)eÖPbÚžþàê ?x`‰Ãáö†Ú@>½t–‚2ß׭9iNV0/¾ÈìQ¿°8îzhõã_ÿâ-ü¼õÄGŠîQ/(O“8CO®ZÒÖX÷ÙU?ã¶[\ʘd p“æ.š4wÑí÷?ÞR_»csÕÁw7ýhíçó‡^>tÚ‚‚a“ †Ov>DSü›Ÿ[;zú f*ž_^yiúÏÁöMUÃ'ÌøÔçÎÉ/ æ…%Yé1°èw9£}:ÉŒ?É e,“¢ê§Cf0Ûj_xú‰Ë®Z¸tÅã7ýû·ÇN›¯énÝí•U’Š ·† s=¸zÇïlÞúüãÚê¤â‘Ûƒ ‡zÙù·*'|¥¦Ç÷³8ŠGuaØ6pñP$ìÝ^µkóÆ›ïþ®/;/˜î)¼Ý>§i#+¾vÙŠ{¾·aÝ;Ö¿ý /oÝ]õ­ßÜ=î/OÜUóÖËÑæÚ=[ªòËÆt4Õe@ñ‚á_üýժѓ®–Íå 8Gœ2É1Q›K?IÇ…n©«0ˆØI¾¿¼n­‘JM¿v©æòøC…šÛÃd…2i <=ÓÆÄ9‹î|à±Ý›×}ðö«ZO|”VA¦s„̰í÷kt¯¸¢ÒŸS¨èé2–»Z½ýOh9~ظ48¬0˜íµÏþðѓ玙2×—§¹½§GE7™>Ä!•Ó—®xü‘ß¼ùè3_pӲ޽/>ûàÌŽæº÷ß~ÕŸW’ŒER‰¨e¦Q`ì‚Á(ön«0fê\Æ$Uw¯¦/ ,0büÔDgaÛƒuÑ’ÌöÚWÖ¯:qv~8/<Ìåñ x@&Çüe+®œ¿è/¿Xåp8 îyÌdŠ—×­: Es¥o•yª6γ²2` ú'VÚ¦yíÒûh.ïÇöîö˜e[À›ž0gÑ—¿»á=r×ÊÇ>xûÕ?>¹<ÖÑkoNÅ£F2> º‰bçæªQ—Ï_r‡û‡òÃU8·ÅS…áÇ/õBW\w+@4—;Mâ ¼«‰|C‡Ãl¦2¤É|:d†íUk,ÓpâÏ|>N8úàî-ZêjqÇÑíymûýš]›7^»l¹/;/» ô|«ÖE·ÈVÜÀ5KW<úôv+ÑñÌ·—ص)m‹4×¥âÑKǦŇÿÚ1jÒl²¢]Àr©— 8ôÏ­:šŽ‰ÁD+ õT×¼·sÑ—¾ T\žÖàJG[ë;ÛSñÈênŸ;œÚÉ›7:«ßœÂr5ݶ1oéŠÚ}oFÛ ®÷¡H0Ûk×=ñà´k—Ž™2ןS ¹<|í¶RŠGMÿÞÓoŒ<ó…õoÏ> ÚÚŠGåøž‰âÄÕ­uÎõúÂFb'ÎYÔs—´âÇÂéüZ·feÑ1á¡c}9ùZúC£¶€Éñ•ïoÈÎ+zþwE[룭 ÉxÄÎø’If¨¿ºæ½Žÿ¬jç½:_ÀâXxÇò=¯=ÀHÆëÌ–¨y^šȽnÙršÛ{ñË‹C„ïùÞ†ÏÞÿØÛ¯üîéo-‰´œˆu4§Q#ƒdwšQì|uãÅøÏèC`'ŽÕÙÖ ó©`…a{Õšš÷vÎ_òšË“™ôÍaÚøöSo(2{îÑ;£­õÑ–úd>(FØY7ýߨyoçÍ÷|@NaÙ@µ|ÚǼe+¾÷»í©hK·;Ýi>žŒ§wÄÙáøÏ;7W]ŒÿŒ>i$'Üpd?2ˆ–)ü:6­[;uþâðбܢLf&­îBKU•Ÿ{ôN‘æã©x$cë%™¢áƒêš÷v:V4wf <…8ÍgÜõpÖM›Ö­¿ô>çÐëZæ,”£§ïé7ÆNšù¿úǯÐÙÖ ý=aºs;Ãk}™áÙ>ÐÖX7Íq ])³íPŽ»õýgÞèloüóÏÐÑT—ŠGx‘ñÓ!3ìÚ¼±pÈè¬`^ ·83æ×Óè¿gËó. Ñÿ"á]=¹jiqEå×- ¥G«Ì)»çÑ <¶áý]¯üô¾9‘–ñŽ–öÆZ#K‡”üÙ! „ÿŒ>æ„ þ£½È¬V¬ŽÚWÖ¯·ø^_0/;?¬é™›¯Ù³»ÐòÃw6;no¬M &óYà´.lZ¿ÖiýU4W&/^½ýÉXÆÖ½‹®n¾û»r‹‡¨i;ôN¼câÕ‹~ñÊaE–~¶bî]›DZާ2¼bÂÀøÏèkFŸkoâœsË´-B@ˆîÌyZàônZ·ÖM¿v)Õ5hMªf¯"-‡Ãm G“±hZ7*SlZ·¶pÈèâŠJ_NA&ͯ§ÑÿŸ[7ho<–±•ðYŠ®Ò!`Úpe‡¼éÈóõr§Sñ¨™©©®ÿ§»ÐyEag\µe¦l3ŹŹå£qÛä¶)8âä_Ã/‚ä CÃÕ¯¬_ë8Ï9Eeƒ[—Û›Ãï¼ú4 ÚꧯÐR¢°;j7­_;|ü ŠæÊ¼ìxïCF2–Ô9]¥‡i£¯;iéhª” ÀámÿåÊ댹rAÏ:vÖ¿õ¼¬÷í~)Kë]:EzîSþƒS{Ô:r̯¦{·™Q8…–W/Zpû}/>ý„77ìòkZŽÊ.¬P.ôÊrêrGfØñ·*Ý5~æ'ádnôwŠ®~sžEW'²5q΢_¼røáÛgülÅÜ9Kœrýg#-'<þ\YK£z–Ó£¿sóÆqW\‹óŸÑ—ÀÆN™sÛWþ+§ tÿî7{ε7ÿZÕó²uß¹­çö™ˆ}Ž$—$ºo[UÍ{;oðI¹áŠÌ;§Ãáðí÷?ÞÑT÷—_< <ÜûÙð¨)þÐÙ´ŽÇ^uÓYžõå—Žév–(‘(^^·vØ„¦‘Ì)(¬ÝÏd£ï¢+Çy¾€¢«‹‡SN«g‡¼éȺÞÿÒ3?8^óÏ«—>À•”UWš²˜ŒÂj¯=øîÎÅ_ù.ÎÆé¸áDm¸b”mÛ”Ò+矬ë¸bþ"ôW‘Ü›ØçKò W/–(Ö=ñ@Éðñ9¥þPaúç §¼vô„©6Ø'oûJ¨ ìËÎsúrßÿguKCÝYÞû÷^¿Ãéh®¯ýà_}G+L¿þ6ÓHʱ/73þÐdðŽÚuO<8uþâ‹/ººHØB`éŠÇGŒŸþÛÇîúÛËn¼gMѰ @«7;_Q]~“(v\\ýó)ŸÖû!Ø·{çÈËg Î¥þÌúé¶ôŠ ù¬…ŸK%b”ÒôÕîŸ/Ÿ-/WÍ^øY!¸¢ê=]õ#ÆO?û{{ÿ&»MÂu£$—×O ¥ƒt;H_£r(4 šŒï®Zêòúg-¸Ttu1èq§‡›ºú%Ïüײً˜|ýg"ÍÇ=þ\EslZK8ÿ½ 숡ïÝ]=ñÝèÒ¸œ;ÉQ½·Í)@™tIIŽ1Š£ûªcÑÒ¡•ÁÜ¢4y¶NÍìë;ønAéÈA×Q¨Fÿ!ÅÞšl‡ß«>²oÇÑ};ß~m#€ënûj2ÞYP:âRÐÙïq§¿õ¿o®ûáý/=³ºîàîY‹–Û¶åÎ *š[ÖÜ]zwšJVÇ€ùÏè…¦­ µù%Cä„ÓšŠtÖN3çÍw.?ðÎVMw·Ô×^ MmèNÓýòÑnXÖ¥É,_´&ó™`sŒž0µ¡ö ¢¹ÌTÒ2r.îùâbý{TõÀ¤Ì QÝWýÚsk~óŸK¾2K~é'_M6ž5áŸöZ9yEno€RA¿lõÀ)ª]ºâñÛÐZ{à¹ïßU{àíHK}s]Mg[c*µ-“[&·-Áí®Ìyb`ýgô¶À”¢vÿά@€,«™©%°8>uûŠßÿö‰T2¦{|©DìRb1ŠDkí‰ÚC¥Ã*¨iëªÀ¦Ï[ôÓï­”Uµµ±Ö•Èp Z8þŽn9~XÑ=Ê™5}zP{[ÚÝ[ª¿·£½éØž×73iøØÉWÍ»á¡Gé<++ª¾õä†G–ßþùÿøUGK½æö¸ÎG_>­èq§GO˜úØKžÿÁç=þ܂бùå•¡âaec¦gUô¼˜Ir·PÕIœ³þÆŸô"0Á=Õ%CñÊ:‡œ†˜oþhÃwWýûç¾ñ‹ÆºCŠæôP–DQõ¿O̸îyá!iMíp`~xô„©u5{‹*ÆXFî‹ä}‘èÝè_0¤ÒHÆû˜ô'2îö£½;>Ú·sêÕ ‡UN?a|oÒRJ !„PB 2vúœkþcë‹Ó¯[–ŒwʲzéèÎ ¡‚pN~ø‹ŸºmÈÈ ÇÜûNãþ×·®ÿ^KC]包Y9E%£¦„GNò‡Š{ÞȘŒ^d&¤/Ÿ©ÆôŸÑ‡ÀÍ uŸ¸úFdÀ,ŽòÊé¾,ϱƒï›Jt*škSÁŒ"ÙVûÚKë^ûd$1Ëf_¿è­·^/ªc¦’¶e®ªŽþÇÛ[ †T¶ÔÕh.¯¬h}HÛÖPûѾ}H;gþ·†â|ˆ¢j]Œ%äô³Å±àŽå_]:côä¹èòøÔÁ D÷†#©o©ýÉê•#'L7eŽ?'oø¸)³?¹ ¤K­úMUMõµïÿãO¯þæë- u•3nP9óF_Naɨ)½?I§ÈÓI”¼·­ª¢rªey᡺“z¾7%8zp/€œü°¬dÔ‹³9îþÚjÇ7ÿHÑ\ƒØ(¶¾R5vÊ¡¢Ò´úÏ8ǘ‰ÓžýÅãso¹»¥á¨++0™‘~‚\IDATȶ1oéŠWŸw«7;ŸÛ–£§ïv÷–ªöî ÃÆNîMZYQºèJ¨#Ô|–Mp`^øî¯?þË'¾öùÿøuó‰#’¬èžAuÔ¤c-µ«nŸ±ðŽå¯˜—ÌÑt7¥L°HOP¶Ÿ¼ñJÕîµïÿkgxÄ$_¨¸_>ë²{Çæª¼’aÉxç€øÏè!0¥H¶Ö†»ýç  :ÍÇTmàóoç§Kóÿþ÷‰Ï¯Z @hMæ~a ”WNWdæxѦ‘ÜÀ¬™YòùåÕ¯ÿ~ÒüÛÿ¹uã/Ù»ƒ‚;åªy ?¿â‘ì¼bô&m·‡|î[±9¦]³èù_¯©Þ´Îq¤%EÄ|’sèc-µ+—NýÜÊÕå#Çròu··7*zݲÐÍç+®]äðyÿžê–úº>ge:Îv0¿lúµ‹wmÞ¸ä¾ÇR‰N1@rÿxÆù_ \rIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicseffect-plain.png0000644000076500000240000020623312536324504023520 0ustar philstaff00000000000000‰PNG  IHDR@Ã|¡_? pHYs:Êduh IDATxœÌ}wxdW}ö{ÊmÓg4êeµ’¶WÛ[ŒÛº.Æ`{…|I‰M烞/NÅ!ØBK¡Ø`-1˜Œ1î^­½®Û»¤‘´ªÓË-çœï‘´Úê-#ißg=3£™;·œ÷üÚ{~—èw—0¡:€ÃÿÔ^¬¹”^tõ°ª)×Uÿf•íÉ ötШš|Gk\MCMåç4Øhµ^jiÈÿöýlÍÝ0‚$Øn'ÜàyŸŽv=±õ«—Ò›‘˜±ÊþD}Îc+¶`mYWñíŸ ªüvoÚÿûïù¯¾ë©/^©«µÿù‡†ôE´e‰uÀ__‘ÍV &GÈíüÞ•îUÿBüµ¶Àª¢”€”ÿêlüÃ2Ó+ú·¨þͼПÛÖ €­øw#­Z_-¸9­»Ê§¾p<‰Å7ܹõ¡ÏÈÝ? Ï¿tü3Ç0SkZ Ëo>j{„NyNxR]¸î«¡}›ºÿûøþ?ÁL˜pš Óvh@ÁAÚß´ö–¿îzù_è…' f@³Îjcäø—”€Q ¿Ö©]ö„𛳂€’xå'wßómDTpΕ Ѷ5‡_úmY)u^„’Ílžÿ±‡·ýøÏÈ»þùèŸ1~ÝËŒ-õm–Ù>o×&¬ç «µ†U¤iuóíå:7&÷l¢­×ªRŠp ”‚êÓ·«ü˜×ž€/֤͹ÜwÅß²P3 ÖƒjÀ ˜yNz<‰œ_û­Kî\³ïKíï§sß ¤à¯·Æ·þtD-Ò½³ »;åîŸõïù·žâ»äíÿ«0BùÄiSÂ’ç¸Ï•‚ÆÐqpÓ=ÖÚ¿ Zn!z°‚ÛV¬yü…bÒNœ'(¸pkÖ.^}ÍÎ]?EëzìþYvø-Vèóvm¢zÞ¸ZkXEV7wü L!®@ÍΩÝùíÚ ß@ƒ™¾©ùسF úwoÖæ\I#zܬÈÔ(r„ÖÔø'ÏÿäC©ƒ¿áW ù!XUàÖt»gF0W‰=ÿyOúÍNÿú¯êí멯šèÂuöŽÎS|ýmþûø‡ÇŸ&Þ$„œ?è%»zûv/üK¨%zà¨üœ!Ô”R@‰ã‡â,BcðiЋ‰¡Á>õj'ÙþC^»ŒÕ,á×7‡”Át©=‰¢ƒ ïzæµû×¹/?À¯ü¢Ê&e0"Ó´«G5F`p$¶tZ7ÿ4«²ŽMÑ…ˆÝþPlϦ}\£Ýøãñ­êÀ}•"çN0P%û¾±Îó\ÿu_ÑÛ®+³LW ôEN±…òœ»“œE¢>„­mÊL/‹Ì-›åY‡OC{œlyp£ýƒ(;Ïš¯²?!%œøjÙ»€Êö‘@]e·.09|:Bnbç7× ×ñ]ý÷zÛÕÔWEÌ)}Sy{ .ëMÜõÌæ¿íðžþ,¿ò‹*ÝM"zh:öö(εHÈpj&Ó`¬ ÑqëÊ»^ ¿þ¨<øÈ†“…t*þsg!daoè–èí×Ñ@-1‚`g̨ɇ:ñð=DÚÖÀÉ€jî4Ôé£ìzØt7 Ô²PÑÿ¡À"ÍG^KQñŸ8;ø4 hû7íþb‡ðÜÐ-ÿaÌ ·P-1B (a ô¶-ç`M‹?þ°ìþ<ô;*un~:vøX½Úɪ Üœ¦èTHälŒ±¦¶¿Ù}Ñ{ê¯Tn…a89xÅéøÅÓ‡Á4íšd/ ÔÑ@=уÓt6lV´YŽìåJ8³Îá€Z$¶ô/ƒ„ 4GÈ¡mL¿Ùé¿î+¾K81BÐüÓô£ÇÃ)‡Áv€ÊtÏJ6>`À8°)Óç^Mu/ü¡k¿xüEYË1ƒ8QÐ{?j<» ÷(º°­æ îzFKïªxRzü"uHLñŸgA¨\ö7¼ö[ßùŒ/·ÛýÅF•@q™Ü|ÅEŒ h ‰IöêíåboüìÄ’g G ¯7¨¡7Æ_ϸí×ÑVEüünkÍŸ£ì>¶Ýyä•/»¹s9æ™—jœhÛ9²€Jš1#liè8øó»­µ€EÛf,øjFÑ3ôž R!gÃ븵‚Ii À`%»´9ðù±°kª`+6ï2÷'׊˺˳â³"Õ8¸Ñö‹ÕèÎñ×3’Ç"b²ðjœ±Ä;©&ÑÓ¯å(½1‘80SAïÉàIälT½ÿ¡ªX¤"Ii Ààxí[xÍŒø|ÁTÁVËÍ_[¾ê=õW*ל4Ü< §(Žß³%Õ88rUkÈ‘íÀ …ÁAu$qè‰û­µw`¼ð;ÅÿI›ˆ®È”%[0lÚõÅoƒÞ“ÁÈÙ¨þÀC’=—¤4%à””%­ëÐÈÜó°QÆÁÖÏð±íî/?,_CqÙ^”Ò㣒PâØÇ”Õ–†–èìH5NB•«Ákäðv¥¼âÑû_yL-ü`‘Ö™4¿e9åÔŸ P”€Ny0O< ލ…Ö()=ù™C?ڨ͹<ò‘'f2è=ÊEÓº±7¾y¦Iéò1&GÈ78 Ž#þóy³¦o*Ê‚-Qµö‚»žéûÅ=‰Ç?2þ_ ­_Ê&w›Ô¯!Á¦©ß¥ 6X:mŠC?Ú˜y«S_t‹Ýç©#z`&‹½o G vþÅém¯BÞ¬œq\åúeÿfB‰¼]ãýLd&!û·”Ÿ›M«y¤ GóÓ|ϵÈQ×Ä0Ù©H E«Ú׋I-Òz¾9˜9´íÖÅÄ®'´ï f¤<‘Q2ÎÛâöÎäŽÎÒŽMFã…Å7Æ?ö7 š¬z"}užÞ1ði(v=À›/áþn¤šïÔÑád•Bx(8˜ÿÎ;º[Ìe„RPbÖWSá7v/þü«}L ×j½”é>LÌGlⲺ7»é>ÅîÍn÷«2 e=IlZ¿ú˜Pb”[ Œvíxí±à»¿²ù¥SÁ)8ƒìyÚyhóÅ­Öw”çèÊ)¶´eí±_£Ç,¦'GùÜÇÁhY{Ûö×^Ò›.VžMΧK¯Ên¿un²÷à3ŸãWUå‰ šãNr2ÑUڱɿèÆðâ7|³ü-¢ùa „òp²ktÎ8¿ýg:ƒOÇ®'Œ½çë¨æ;ƒ²mÑEóš ûÿõOÈ•énb„fËì“# ãÍÝç}PŠÇæÍ'§LN“½ùb½8ŽØnª·Ð³Sˆ]xîs^ºwÂÇΚ.5ƒÍ»ÿs£¹òãÊɱêÅo—súà JÁš{yÕ5ŸÓ"-¥®´–Kx †‡©~f‘LÉC!¾6ÙCÛyÍxÅiZª~¦(×9J]¸Ô®[ÆBõô¸›ä²:Úåb"5û—6ã8bH—ðTo±û—JÏ®7Õ@& Ѭµtå»7µ‹ åT÷“J÷`+ðkÖŠ‘ñ»69Ÿ €Q(€½ßÜ¡W/ ̽ܺâ/|mWƉf0B(ÊãÀyÍRå7Ï¿âxè > Ý[;}+>€êþ³¨”\4¯Ù°ó§yÍåˆW:欀Žj™xñ×÷×ÞúTœ‘+TfôɈ ÿDR €ÀäˆZØü·m¥×¼ñÛ2;@ŒPe[Æž&§Ø÷Rgè]ÿB§‰½(+U=´¬Ù0rè½uÝÌ÷Š85ÊZtgç¦=¿y0võg}s¯`Á:j š…²Ÿ|ÊÓByí2åÏ“~ˆ'ƒO‡5ÒUÌ猺¥<Ü@ô³ñúJ‚—Üiïx€Ìö«Ùî¿Ààðxóûƒ+Þσµ<ÒBÊø“ÍôäÄC(‰‚ƒT ê™îvû^ œÜ¬t0â2Q²m¨á¡2^G eÍ÷Ð3”gÏzã±I”» Ä¼Äöïo´Ú®ô/¸^«j×"ÍÔ ƒéSª '•¥!ìüéH|<ÊMzwýìîÈ%Ÿ@u?9+µ‰'Qò0ÿw”¶ÿ€r‹³ÛÉ…v×ÅB>´òƒ¨1íù¤rÖ$_µ¶cýÅ—¿@fú”“›Ö=! ŽW:­¶+nL+mQ·ÆÙ@¦{•w¾á€j™xõþu¾ö«ªßõ„›Ì;£ì CÛÀM%ÜógZ:>mŠù 5s¨ã•½h÷ÐÓdº[¹³i„jTbOç=ñõ÷ЪÚÉLå“ò¢—Ýaj¬Øõ ‘<·03?= #y`‹Q»寴Æá® 7ÇêæxCe¥êyA`Ÿ†ÖÙ·éÏuã7|”i±¹gš[¥nïfÂM™I¨¿„§NáÓ§š_ß¹LÕ㩬PpüBΞm0tìé¼'¸üýïboxÊ^ôlÇŒåUq{½{l÷sµïû7Z¤…gœŒ ×~æ1{Ïã”[8iŸßó[OÎ0ù|<¦a妣UïéÀo€ìÝ4²ûÙèew zàŒªb玼2Cãê Å® Ò=3éHëسÉj[@‹4Ϫ;.Ã;@ؘU/ºœ¸ÂÞM‰§Œ¿ë‹£·eÒÂ&zöI—úB+?ÈBõÌŒÙXìI¾pU$4ðâ¿ésÖŠŒcO %È u‡PèEñÈTÅ~ i%SÂI•¦2 i”S†”1±pè§\ûÇT÷óÐL4Q Û™ÍX¤•šáÙêAµ*ñêýë| ߺàCUJºù$…d„¹yG” ª8*Kiåæá”tÈ´æó‘¥þÜêZgGŸüÝ^žóUÑHM¨¾!ÚT}p˳FÛâå)ç3I`£q­÷»‡0®©ŒÍ°Œt2q•îÛ]wû¿Ðbmçè°øµ÷R‚úx¸gK§Ö¸†háÖÙ¹ã%ˆXxü>÷j-6W«j£f%ï°J B43¸ûE­q á&áæ ´ÔÑÂzöÉb!WuõgðpãÙÕ´ÏꈸƒLY¢äJðp“¥2ïü—±àFe§É m‚´©Ýïosz¶–¼ìö¾åÞçŒöjÄ2ÙÒ¨t T¹!­ä“ù|6)Òý—ׄG·oXxø²ºþÃzz½ÅýWh©S,&|Qæ‹S#Hˆv’»ÆWR"RÝ4øä?Ò¦K‰î'¾ØLÚ*N2A÷m:ôëûkn~-:‡šásÜ,‹_{¯R4,Þÿƒš+?ªì,1ó¾°Áo $vmú|ìÊ{h‘¦s~§B*DÛ/>ðÃæÊ*'KÌÈ \˰‰àXמÎÏÔÞúj´ªvjLË=cO¥Qã -&8#ª—¬zêËž¼f鸬brF#ŠÀ–¹§÷-§{‹Û½Ù;üºÙ%Ó=2?ìdFZ‚Éյɨ›ö¡à »–fVX™:Œ²Ñáj7³fI1ÑŸl –RAod h×Îî´/ '-4]Q"•§<Â!ÓêÖê ²¿+çi¥3: d".¯Þ¿®þCÿѵZ¸™šásŸ¶XüÚ{¥‚ÆàGf´»œ×ñ͚ť…” lbøÉ¿W±EFÝR­jneÍ/f#•å×Ñ'[¾r…oþ þy×ðp#3#3ïé(¢ @ÈQ „ ¡±©çÉž’ÍòA ([Ùi•à#;ãÙ7«Æ^- l÷²½ÂÎ(;«œŒ*eÆ“Ëk3D2¤˜ ò¬*¤´âh½– Ó‰¾l»Ï¬ ’á!Ï–4¬äQÏÍåmG_ÓàÔˆ\i$ŸñRJQŒ3)%Æ9¡Æ4dFQíGÏ–N½uÝø1ÎÈ%˜L\E¯ü¿Fýrj`V¸"Nßø-yhYs›½£€L÷Ì®Nا¡Z%› ®x?:=-fR•Å)ü:vÿìnÏuf«ð B@(%„°c’w€ù]ZÜò ”µYÎ(ñFdæ7´ËéÓ—syèÍåÖ®µ¡ÃsL¯ÙO‚ÄO”Ò^~ä7/f…äRk¤1ßßHsoÔ²3Âk Ñçvä5¦üHEJ‡‹jQ5dº4Ô7\el.n6·þ&úÚ/øï÷.xÞ,>[Ý£¼ô4ǃ6YLJ'f¦˜4©¸²–Þæ›w-ÖÑò½Â+¿ö^Bˆ6 =û/ˆ-œROš…UfˆXSÌol.µ¢ÓñCž„iÊ¿þ°k5P 5Bç"Ò<5B&BÉ®}²æÆ¯ñ@-µNÓA½=9™qS ±ö5#OÿbíÔ2‰—ôR½Þà2¶'Ú©zߺ¤6±¶nÈIý|BtÔ[Äd+(;‹˜O¸(xTÂöˆ€b&¢tn=sò’hd8§J’hêM!¦Ë¤Lzý‡3;»ùV¯ö¿r° y˜é!2 Åa©`rö<ášõÔ_CÍÈtËW ް‰þ_~&3Ô½ü/¹¿ššá ®g'0Fó¡ïÙïónP¥4µb•nÛWN¾Í¤à×ÑHÛþt|ýßÐÂdÚºÎL*˧¡#N¶|å £qÕì~O O‚ëFÐtžþ*«¹ÀíßÅR}‘ÜþÚÌž&g·•Þ¿ÿĪ9|Y³+•K!h& Š ‡OC¦(«ü´!‚dF$• JŒ¥*f圗%YTÒ(e`j¤ ”ë‰P˜PxÉœí• Fqðæ›ccÝßgjz§%@ÕXrgrä0¯YBŒàxøè^z•ÂdâjàßÄßõ*¢&œŠ#Q_É…oñ­bd§;ø†Ž´3P¢BâJ%ÓÚ”Oá' .-Ö:­ÕöPe•Es{½ÛsÈ%™/üž6”t N.¼ú(j¿ù-¹»&ýJ}öåXêU:¸;$5Ýþå3iÇ6ꪱª•µéºˆI˜@À4¼Ùïö‰ Bæ *ïÀTÒGÑ“S‰aØ9’MÃ`Tƒ'UXcù"œ ©³´¨Hy~·ÚúŸ/¾'¶¯ {ílÓ¢ ´=´¬¹­¼´P&/lP•—F—WU^b×#wD.û4-ZùÞ½GìÐPsýüµîÁ§!lUSÅ1å HÒƒ’g%ïõ9ÁáSmÁ§£S¢ßivã§u!AÄB$ÕÕý»g¡ð{¦ƒR¹n!3ÚÛ¿æúuxÏ5Š]rh—3²ß+ôQ'¥+/$9…_¼”/ÚÚœz>?ŠÚ0¨é@š(8\T})~ E`ÐÁÞ¤T LÇž”ëXD¹`ž Hé< .$õÂAUP~ÛwækJ=+Ã^êò*y#ìI8võ1²s¼¨æÙaEe8L&ºIF,Ô#±ùï/ŠßðU¬=»µ o‹#.4Sü¦ðŽÇþÁÙ÷„×ÿ²È ‚j4P) =HÂ%À‘nã§ëx(2ÙzŒœªÃ@ØÄÈdôC­È ”ªCžü†1ÿÝÊN+v.{™´å^œ¡Ê¸Ÿl½ÿ XU±Ë?M¸9s…_¥ ÔifוWù¬Mñü躶¡å¡ýA»à³¶)u ¨T*i ×A&)¢Rº98$ïÂõÀ)aBVsiø¨t”í¢(HR(CAsQÕeÉ”EGTP'E„(¿I¨«”´a9tyk1ØZÿRŸ_#Ó"¯*)@gj\Sn¥Vd¢'öÙŒ´2]ÉDó×ò}¶Ëžó¼8Ùþ£O’ÚfÝR­ªùª¦#ã}T$&$ YpMÃUw:™Ã¥ÃÛ²/~aôà^ 5ê n¦Á­qõ‘½g:Ž$&þžèÆGÒIO“OC-Ïo~¤á@tÿi¼q'ÿ¤¹™SãÜUYSï@ ^ª×éÛÒ¿sÓþîÍÅd_Õúûœ±þ×ÏØŠ_@A)©@ èñ'GyYÊ*Hnø1A(gDgƒƒäMwé-<|AUêÍ·ã‡Z IDATT÷±)<ð`)ârÕ]€À[XÇý®›Ï ¨¡Vg2+²®ê·1Oj1C„8ÉU¢ÊFJ°¡:JR'ÌΊpŒZved8@R.ü%ä (ÃŽ¬Ø·§°`^b^¼iWñ°æo*Ÿqbkߨ‚9ë”géNîc¼ýØDkýòm %½t¯Ó»¥”Nx}]cÙÄîî-ª®û”$”O“RèØŽ ör_”[¡`ËEæ%!EêÀf;Ù7øjg)Ù;zp‹¾à&là «yÃ*j6R”cy %Ù2’Ê7M:¸¹sÙ†2ý&´³ÀxÌ+$AdÅBÐpÕ¸ÿ0¸µ3u`³xcð§zÞ¸š7¬â «§:Ûã$ôdζOÃÁß~½Ü5V‹¶œŽù%  üUàY`2•Õ³ý§æ’Û•[œz¿ÂqÒ„À<š´¥ž.;±¥jùMÑ– ÚÿüF¸Ñ B(@! Ì“Â5^ýéGþ÷Ë?ö¸—î#”Q+zÔáO,-¨0&·©äñˆ…¶n}¦g÷ÐÚÅÁúªÆWöÄ’Â2TÆ—Ô‹‡•“¦Z®+幯©KÚ̆¸]”i9‡ ’2á á¢êO â@£¨6(ÀÖ„æ#°U"/k52˜STUa:™pÀò’qE’E…,ÀIPC± à‘‚«$AÈÂà2ò£Ùö)‹'=;Ãý‚à$žš¥;ÃèÌ»dÃîîçÌeï‡?j…mRÛ;L¥k|Î*}ÞEÁ[ÿΈŽ7Í/Ó•ŒïÀ¤Âœpš¯¾ã­_=hÞnÔ-QnÓJ`Îñ<ß³鄎᳧@€ÈÊ Ñ•ÁòÿƒÒXoúà–ÔÍé3 ž útìxòÁØ»¿€hþ#¦C ¥<JÈÑç˜(:þäœqÌCjF˜î›´·:”*õvnëœBÚ‹‚|!8g50F0Ñ¿J))•wh¨vÍE·Ü½íן_ÿE7Ù£6EÅ>ÃO#”—9ĬšÉ<æëÊØÚÿÛ­þ¢Ú;J.¹y´®Ž¿±OÉÛ®(ØvÑÎ9ާJ¿?$ÜZÌpGAWž ùœ² 15-Ê…+¤.P#1P”ŽÆa+šâʳԘ Žª·Øˆ¹F¨ j(cE D-ÀÉÁ °LFp“ÀP½Y­?á-Y˜YY—íÊ #\?‘¢CIHo\J5¨Äù§æ,~ÇŽíßÕíÝ¿pͰ»³@qû&U+Þ  ù¢÷8]'ë#ONGÀn®™·&õâ7koý–;v€ÁŠ'AŽXcÙ×å¯_ÀŒÍ¡§‘ŒU GÒB¡æÈÊæ2ŸO?xÖŒ@îÅh¬ƒj–i>²rP)B\(O)ªÆ}£9\!”SY±H°8²›×.WJø (õl.ôt%]ùm›-Å—ß4IZ R'Ž“ö¨9fÏ j¯¼sx_Wòµ‡CltÇêñy%n:Íä• ÌË'L{¯i„-[â¯2FôÝ2'µ0Ù3(¿óðÀÇ×û¯jt¶í½)™ãTé ¶¼Ž—z=êIC(§é¨ ƒ$(P•u0’ubQšSjÔ1’+)p,Á,è’z¤à*ÝM&l[Bsˆæ²EZ*Ó$inIf]È’ªµˆÈбQ•)´úœ—†SJ:'<= ’@”—.*2>ž>Ej¸×=øTêûïu\ÎÍ`ÝE·ˆüß'?sFt=!J.ùÈýÿý·Wx¹!¨Qnq: L1¼w³U·e y†)ïcŒóéÏ,ÒÊWÝÞýÔƒÁÕŸpÇuK§†ˆRJFˆTdº{Q‚ ¯ºíé—ž#Ìpö?Qz³¸cS å¢àœUñ•7ÄÿðÛãÓÌ Ò’ÓÍÊ ™WüñÃOÜÕVÖú:®‘v†R6 -¢Dc£ïº(°ö‚…CÙa¥ãåßm)ô †8±…², ”ð_å?v¹Ùw‹¼‚T6 HeQ„9aJõªj?å\ºyØá„hJútPùåŒ2ée=H¡¨$º‚§’¼`{%´‚æ¼§ü| ’ ¯¤ç€é q© „ˆë(Ç…S„ß§LS&±ç­tiQž¢”â„g™ÊÕ‰“ùØ'FÁ)v?ÿhÕŠ[ê/ÿc3Ú¬…j©n'­ÈQžð¹ÀöàoXë5fßüYô’OI·@E…ïK|ŒÞºðÃÈ –3ÁiÏ郛Eâ}?ÿC²˜2ê—+%”°'Š¥ `BJzÜb+ Q ô%ì·bC[}õ‹Â‹/¯ùÈ7 a˜ -!'¹½ÅéÀ(8¸ñïž}ôÿ^ªWµK'©ÇÚ©'ÜÀ‰Ê5‚b"ñò·7ú[.jºúN#ÒÄüQfú ÓÉdÚü¨]WJÉ“ÕWO ÛN5Ìó.¿f^€çŒºF§Ôoèœ@Ú™aåÚ”1P~î4ŽE†CÆÃ}æ?Vßsá²¶…KÞQ¯Îôi1J?þïÔ1Å"” h€AQr.(I©R*SDJ’”€'QRp\À(H8„À€’y¦@aPœ€J¡ÊsRª ª@rPC@Ô†r 0&uA@\@>J´¢Ò8T÷9UL‹p_̨ÈìÀ§£V%^äžæëîÖƒ5z¨žUXܪ ¤R¢\\ŠZ°%3Ûž ,z·,¥˜¯ª‚ësÆYªQÆz°aúô-: (¸ðš¯¼ó‘_}áŠäs_^þiwìï z`º¥”> Íòë»Ö ×iºêÓ„éÌ"§¾£!e׺8²·8zÀÉ÷—R½ÅÁ=R@„ RRÝbZ„AÂ92Yʇ‹‚íeºìØÜy­Õ;eVYAi\•GãÀálz´›²3#DózZ—@yE(uLjä]íß¼ùS£©â›C{‡Òù´“õéÆòy:oû£Ïï;à¬ñ“(SÀ €'!€Ã¶*Š(!JA™€ˆB•OŠ¥POƒf”¤PЕ [Ãzåˆ6Öã6­ZUxþ‚ù‰ÿÙ6ô»m-ÉÑ6lÔbµš?På"â–Ð- U"ñâoìøÀ70ÝGµ ç (ˆT ´Üù¤äÁW¿¶fޚ§Ëá ò8&D'#û67/½ @eƒìÓGÞEíº;[÷vúõç>²gŒQ>M]¿…_‡³cSÿ+­7ýƒª5"D3)ÕO`ý%îŽ({þõ_ý {óVȲ&”RÍO%#Ì-WÕ”IáØD3Ñ!8 aÓ$ž,ض#e†aú™åF–z%XUÅó^&Q*Š=ê³üí¡Ú=;·râ¡zifFx²( ¤§Ü‚( y¹/×S× .¸r‘®FŒ•Éq÷¶´¥.þ#RÞûäï_¹ª¡Ê¯Ò²ýÅÍ¿õÒwïËÌdL(Ÿ f —´°ysUcj›kŒ‰AåïX|ýW‡ë´æ ²/¿¾ªg_ºe4(Ûþœ}ÍûͱõÎŽìwþQhï n*ew¬ÒÇ¡œ¶ +æ?)Ö­¥f–-Hì‚PA¹ø’ìu@µH5ñFsîA^ÛD"‹Éà ÅZƒVwˆµÜR圜WÕLx!UÎ¥+K ß¿ºõ‰7v=¿³eÛ®z˜£EZx¤–™¡3]ê`ièÝÜY6¿˜ÚêT©‰ª¨"x»Tåq“é1ce­I Ší¡ý·½ôÃÏ”•Âôäj¿3 ±² Ý7éBWdÓg !‘w°âÚÛ6øè'?öK/ÝO(?V·T!t„ÝÄßÞYputá5z¨–¢é„L þ'&øôÞoxìs\¡`›:«‘LJ)¤•N”Ê¢’‚xÐA-½Þ$s-™q©TìÂjb*‘d½ Òåu>®té˜<3Þpß³ÑÚ¥p{Š pr¹¬þºw¿÷ÓŸ8Ì~÷äóɃ;‹0_ŒP.Ý¢,Œ {D¨1Ár”f{vïê¨Zõ¯y_Ñ‘¯ íd{~<Pª7èX!ôkq_Ð7GOKΨýëG·æmj!Ç_ÞŽ–ìy ×½Ó7x «²î=Æ]é`5ëx'YÈ!ˆ³âºðž—ì¿› ‰úˆ¾ï¹<Ë£tR}^(†ÜXÎ-yvÑѨ˜0 ˜î&JkfQª¤‡Ü˜û¹ãx¥!eÅ4W8j”¸yCéµl¬ËM;ñ̓P%‘ï†]RM+9•.•,¥Q§–&‘‰‡ú–ßwAÍ[«^îm})ÑrpG“™«E›Y(NOÏM38LŽ7~ý@dùÍÌxÛÿYIå)éAIB5BÙQÃ`ÊxPå…±„„¯!J%#@ÉCÝUwú ¸ÿéàŠÛ¥[ F°"ŠZ¿ö^SÝ×™NŽ„ç­3¢ÍÜŠYj++°üÊ ÛûGw쀯ãYJSÝ_ñÖÁ~q™xö‹ë7üÁ¿ÐÃõÌ›)!@fÿƒ»ò™Ò r(h„0JÊY B4ÊMªµÕæüˆ󳆘¹&ª_fÑå¹È’õPÕÒkó{sL'äx5ÕŽÝb}n6NU“^ªÏUÛy12ÈSƒa2ËùÞz5Vzéê5­7ݰjíekC>Ë1G«Í‹—Twt„u¼en}˼Ö%+—µÌ¿`ÄóJJ®;gY8²3ٚ溋›j–ÇkçD¢5zP'ÔdVÔæTíßÝ÷õ6ÓÙ¸ âøðÇMgLDƒX¶Æêqêiù‚Ü»ÙS Í FOw¡c…9ÚënY´_KìÈ–:çRZörCvÇ2=Ý+Ši¯m>zг|zÍ"2:à¯kB÷G£¤º•ŽrC5„ùh÷[^m w 23$c-,yÐS•JéAjÅXß«žÈš\y÷I=H³ÂÑŠEá„!º^ ¹Y8wøÂ†K涆ûü¡äÐp~4 b˜oÛ‚'¨#ÿÒƒ;Ÿk½ñï‘&2QjQJ¹®‚TRRÊO’¤,'¨$”"“"üã9<õQþš'àùDbËÏ‚Ëß'KijÅ*2ªYüÚ{}Jû~›Í$ƒsVkjnk¯ÚsA¹ÖÒܾxïÿÞO4ŸQ¿L“Ì VÐ/09Bv?üÉÜÐùþ>3fUëÉŽ:µ÷á=›>ïf”¶B¹žò!¦Á4LÓ´t¿¯­Æ÷žjv] ˪MCÌ“ZÁQ®K<×м’Sô²¥*ÃŽúœl¾$JŰSèÛ,•VgŽI‹RJÙ^2«¸P–co|iÓ»»~b9¯½ãÂÈÇ®¹þ}ËÖϯº~QÝÍu,YÙ±d^{[MxE[ã•+W̉ǹ†(Óê|ÁÚpD'L**  œƒÐ a’ôŒæç_øÐ02¨¶ ‹2ŸFã2<$ì iY³†ôïU5º„×ý†oö & N-¿ Â#œÂ¡Êª5 ¤m#Õ Ò35-7¬ïô„"Vˆ;šr9%…ò[´8*í´2‚ÄÔ`¼w‡'\^ßÂûÞrMÉ|qâºð5dØFê:,é¸ÂF°…9EéPfÊI±[0åF«3,sxIÝÐU ú/¾Cûç“yA¸~²˜V£™Ø×ywpáuþ†¥fÕ\îLñì$„å1J¥"”rr\ß?ÅP1!W¢§_ŒP@¬yÑžÇÿÑlZÍ5ÔTä~”,~í½AO?¨×.1«ZõPmÅórg O"P¿X™Þ§4›×ò`-a:áZE*[EÐDæ…öÿöÁ–ë?h\fD›4+|lØ£!ÞîÁ—¿–K$=g åµU’z:eº´nšçû@‡ÑæxMðBÒæv)æº>¯Dà:® !Mƒ@HÏU.@lå'Ê`.Û•(xá0ŠB¤ °óp=øðFŠÈ($“yÒ»?¹có›/múÉ3?ûJNË-¿pyÜ ø€êÌñјϬ˜ üÖ|Ÿ/Æ4¢ t0“1‹2L'|r˜|:¿åúk—-üþ}¦Í.¾L½¶Uê޲Äv‘ϨæÅᑤTUA6Ü+s®\tEíÎRU5‘Ú÷B`Ñ»e1É|UçÞíœÕ^woÈÄßÛØrÃçèá:S·º8 %ê–­OîxbôÍÿöµ_`ªºã¬A€  s¨ëåo¨zÕjWoÔÃõš9y'„QY8øíÄkÏ'@èø…“„›Á¥­U|´:öæÌµJ¤˜ÏŽ¥cÓ¶P :ç¼à©tI% È–@5åƒy¸(U~“@!ÃHÞ Ù" ¢a„¢HTÒU#’¤m’/ ÑïýþW/lÝö_Õ¾pcc@‹pBÂŒDÑAÊFTA)H¢Æ_«² J)WªæºeowþóçÏ^ºP5ÔcûP˯"‡·c »´r•¸Ûõ¸»pup§ hÅ”CËÚuõ¬w‡-Ò"E~X”¥°%õ—–äðAmòé>ºó%7\kCj>FúzµMºÊ¶I ÈFÇ\ÍϸGw=ëIÅüÕzaØ6LY*Ñ‚­¬˜6¶Ç+fñ_!éŒR5¡2Û#‚U¼G!M•R¢HÂqâ¹BãÂ0Rí5#ó‚ƒkã‡çVŽŽõ'zÇ࢛t"Q4)Þ0W†Z×±9š?rìX"„NÇE;'4¿“+kòÈ ;%œjø´Ï_²ý—_ñ/¼ê~f†Ï]ÍÞyo=Iì{þáê ßÀˆVøg© –_×ÿâr_8JÝqV #[¨Q‰þéF=ÒÔöÞ/0 T?I dä§Ý¿ÿ—ÑíË{DÁ Á­hM0¼qu}×âäƒ^¡`ç¨áqb‹’Wr$5©©!ë¨"¡¥¢ hhp$±)uå¹(’±É`%(AP¢[´¨T®„BÄCÊA!T…psêÑ2 CÜÙžzìß~õò ?èÝõ 3©k\B%”ŽkðY^*í)%¡8¨‚¢„¸ŠwÝp _v‹rÝC¿–êE6K›ëùÀ~É(ëü=¯Ù"«JcJÉô@qîüÀ[Oæ#TÓ•:üºçÚ*l™ý[Ýb2G>íõÕ³±!SJ7iÞKŒ¡=nú€¬_ ÷ïs}!šÜ#»»¼x«Î%íÛæXVÌ’ÿOÜ›†ÉvUW‚ë wŠ92rž^¾yÖÓÓ,!!„ †2ÆnªìÏv·§n›¶« q{jÛÝåÙm»Ëಠ.pÉLÆL „f MoÒ{ùrΌ̘#nÜùœ³ûÇ“(1æ X_þÉ›ñE~™q÷>ûî½ÖÚà,aóaŸŒXè«B™ÃÒqnéL# `I‘¤z؇í)Eé± +ª4ã‚8cÚsSYÁ мsõ¾ÆM3Û5Ún4;ݸnÌú yc×k~M8y§<Í¿ÆØ•1Æ8cœ±oI¹cì+’ðï€ÉcÞÈìú½ïK#ß›»ŽY·.w‘˜{Õ»²¥ÏvwÖÊûouGvIïë2Ó÷ ÊÀΕ÷»áÜ?ý®I†Þ®LÔNáÛfÏ9T]2©ªæ°Œ}á÷^të wüš]÷F÷÷ë%š`zxö™ü‡ÇOC1ÁÀãôê½òp!7#­RzIXÔ%±J3êRinÒQŠDÓHAZ’w|h |âœÙ’”‰\šše¸­®Þ"Šàû0DF0c5Àƒ£qd’.c”Ã-šë®c£eæí„nkýwÿã‡úü¡ãWÞâºUc ãüÒ«˜fŒˆÁÀ<» Ì€qÆ21fEÀ-G&wÝôÚ{›…O|ñ³nO˜rƒu,Ý“H"¿‰î¢©æ/Au- "W±{K™SÅÈ¼Ý ²]7œQòMŒ÷Öx¸¦“> WM¸HQ]ç$¢ž)²æy¦T; xÁbgQÇMSÁ¦‹bÐÓSûì ­77:âž#»‹º³BS‡³½¨Çæ]Ø*ì!Wå,1i#³N4È@” y°Â„D¤s9cQPñ:Wïiܰ§;"›VúƒŽâ¹Rµ˜_ÿ䯳ò|õàKêœÌWØwlµõu ªopŽŠ‹Õû?X¼â&p¯z™ó$±ëUïj?ü>íŒä§ŽZ…ñotCßiØ•Ùj¥´üÙß·Fv[#{·˜ß¢ßø5AëZ°L=Y Ùä@ IDATú—úg~ó‰üRóÜô-?™Û—?`jßèc`F5’?^}ð¦o 9È0Lá¨'Þ:‡<¥Y³$æFinÒInQ¡(‚ Ý fÈŒäXή‚i0ÏÆH•Õ&$1 &g' ƒHõ8ΡCqŒU¬*‘V¸rcö/[B»E“Ëcºƒ'Èçjì“ÿ·çûý×Ü~'i­SŒ1FŠR0г‡1ãL€áÒB$Ã`È$D¡NS~h®¾íæÍâ±?ùÈ?‘½þ•¥3§]ÆÞk kçÒ^ÃÑÛg||ÄyüÓ ÓŒ.I./.imSuF,žW¬*•‡¥Ç³ò”£…Ù:Gy¥qn¸ž»ÆÞ\×õuâ‰Pû”µ ÊpÃ¼Š¼ð@f «2g iqÄ©ŸO³€r0­m"¡ Y#ÛO‘[•®‡Ç´0°] :¦2ÃMLÝm=º ³Ô¤©)LÙa¨ ÒÈ[ÄuLV•däTçÊ™¡#ÓÏösFVkG_éTwYùê÷kJŠKUô Jûîx×wU„t™¸$xØuýÖ¿ô¾þÓ.|«I|nyÌòþ‡A+“îìU¯Ùÿª_ÚÿêwNž¼³4wE¾4âêAks±¸ë«0*œoä¼eúiý/.Þó°jip<[„``ç1)Õ¤ËS­ý.r†Ù‚˜Å;õ2(“QÑfÚÐVQ–PÅ¥©Ý¢0-º}Ói¡ïS.‡¼ÃÒØ89[”¦X¹Hùî zìèë¥/¶öí×3{iß^!3óÔÕÒSª2by)8>Ê®»³Ðœ{~05Z>õñßug®~nž”ÿêŸÿ+ \óŠ­sŒ»ý{#BúðÕìŽåüÁWš4n¹àŠÿqÐÎ_éj\:Âr™œ±É±Ò“ŸúóÑ+ß ¢¾Ì|ƒ„¥‡Ï|ü׃Åö³g0r’å»b„M0F¤mÎw´5€Ö Áœ<ê áj.¹£<ãÔ‹1LÐí!Kȳ˜•£ØfõÚ]ŠRî&æ|bJìbUfFç­b £eã†tM­è´/˜3iÛs®{cERKêÒˆ˜_•¬èR«ŽfmàèË^yÝõ/"m2!$Qª“X§6·…œI[ºšålWiÅ9O²€qí¾HX‚“Íù Ìöž¯þË?|Üã&ãXÜÀÖ’V Ÿ .ßn˜^Š©Ñ\·¥vZYeÒn-+hV±VOÅãSœ\âYŠ~ÓxTĶ—´Qš«a×U²¹¬ý6 àf@¶Ç{Ûš)>wX®=•u&7ÍÒ”7ÖŒêÒôn©³aÆÙÂ2Í%š8î†YæOØšéþºÎMXAl’¾v˲»£¹¦R™Ã! à=lvwf,÷í^àrÇaL<7ú>@äk³þ3Ÿõwöj&].ÆÅsCæ¯ÿºDùÆï&ÃΆÌUñ½!‘¹dÅóíwᣠ™}ÉÏ}à øÖÁ“Ìxeïâ_m¯Ü¯=Ä™©.\»pÕk˯·W½äé>Ïìæ«Ä€©Fnú†J¥lÎO5iøõR2.P(‰Þ¥'͆fØ6ÚÙØœÅÚÙÖNh»º×ÅΊ™²²4S€ 4VÉïBGéÌ™Ÿà!!thÐj¢¾JdhïIwúʨ~Nƒ5C‰<•êZ";É»˜¼VèœÑÜÕbpA7—UsÅdø3¢µI±ýd¨‰Ò­Ó,ñÑ­Ãe†ƒÎ Þ½‘0o?|56/cG%=0äóÚïšÑäÌíóú£KªùtÝ™œw«sv~V:ߟs™Æ±¿áSùËçï ŠSÞ®ŸÿYšqç¯þwî:«2ûõo%Wº«8•QÉw[„D&5Y¤ã@'Á%›.l&,nyÜv¸í2ö­ÒG˜büÊ7¼è ?wß]¿<úÞâô‘]WÿàÈëÿC®6o´_ƒTáà‹Þpê‰/ä§š,¢,üšYœÉâ$nƒ8ˆi8 )JWÈ Æ•dA ‹±2ëú&ðÑÕ¨³ùÛâ´Ö%§Ç*‘.–dÁUu·*–#Ýl§³ÎDU[†G±‘S=]W=#Ùì.§Ñsôáã^ÔnO9˜Ë¯=·Ã·Ž¿·×>C'_^ùÐ{{Ý ³‰ù!Ü?ªÆXX\z¶hG-Íx¦’ ò]Oºyg0ðó¹¼íÊaЙïù½Æj£ÙT”ítü\ÞC§Óèž=÷…ÏÿÃû×™š£@ÉA`afœÕ—É"sØ\C>¯&&X/$Ó0sóÖv‰Åä³F„¿™ ì!Gˆ¦¯f„•Ó*Qq„(ÂÝLái Æ,ÅLLÆEÂEÿ¢.Í Þç̦çííGÃ(„WIª·‰]A¦;u6³Ûñã Ûjáfq´sÞ›§Êð”,­u#Rr] ¡¡‘ÆðF0 0èc°Ca½Ýw^vÅɇÚ{O_ö +ù½ûœâ!'?õÝXƒø­‘i”Ææj_rðuïñFæˆLå‘ç¿ êlt?üü+ÛŸ~gÜÝ|þwî:Yž•Í Ö®ý·&~·DHd´³ ¥†­4jHæ[N ®‡ƒ¡e{ÆÒ®iU­â¨ÌW…Uü†ÿPÉ Êh×K~rúš7º•)§4)l÷Û Úç#QXxÙÏá½öÌ­?“ô6¹³¤÷üÌ¥’`X÷ RØ€ƒc“v1çx°0Öœ 5qW$§ˆ^½fCׯx¥¤™ÍÖê´:DÞèù)17cšF$X¦3•i‰Ø0냻ܓ70[ªî²nmš¼•Ûé©Í†˜\(ÜÿñÞüªóä=áàtâGÉþ“îêyZzpà•sËçzs›é±ãXz AˆG¿ˆkÿÑ7¿8G&Œƒ4ËF‹%"jí´Ê•’ë:›õúÜÌl»Ý´,>FÝ^k~f¶¹¹^(W•Žþí¸iB…×Ô¦dpõ¿ý¦_<ôø½|âCÿùxQˆV¬ z £Ž©ì‹Q¬9,‰}Ó´S M¯N…YÊÕDÜÔ*RÑÐLò¬N#‘›DP×d«gÖ‘µÓ±ýœfnt²–ïOòà­ó&ëé±=,êajyˆSSµÒTë.Šž·½9T[­¬ÛËÁ¿h²>bƒ‰)Û_㮲zk@ÌFvóí'tÁàƒ‘ÛP·`€³ÙÂûÇâmèÿõw>Ò~ä¡â‘–ªqK»¥ý=¥B¦ " À™ój»ðMîàovªv.>w7„Šý‘c·s鸣»¿$J•´ãöRÐ=ç9uim1±Q-µ÷L9W/VÃB9òœ“Á½úŠîMÁhpÎ…üÊ_$8 úOÝuþáÞûò_ðFfâ¸ôŠŒËUôâ’ˇ£ÛËOç§ŽÇ“nñù­¬¸³½þ™¿`RÀ wLᦅÏq£S›F3ÎÊ–6kD T†bÕ‚ÃÚŠÚ¢XÆã>I 4»lvÜ:0¡Ž/ÍìÜ}éÆªž½²rîl\qŒCYh¦p·˜4™˜wW—²í c“›±ûÍìè Ëó’‡?žM—‘ÅØîâbˆÊËoÛüE’‘b”fI£U¯” Ý^7 3nSJkÛi’pÉÒ,SJK)3mš–žËåƒaE¥QÇç»_wåÉ«¼ìrwùÞú|3Dêƒlw°«ÆfKÔé!ÕfjÄZ9¯%g¶Äê6 bDœ“ßyÂg±¤^ÇxÜa~ŸúMäJ,³)õ khmQkQ“WJ¼kêúûg*v¹ˆ‰šX˜+88™˜Ínw%·³AËD!àÒâLl°úCþí;ÿÛ?æBºÕyy.d“£¥'ÿéOFŽ¿ZE}+?úl+‹ŒuÎÿCçéO3sÉ‘‚Û G ²³¼2ƒ~ÇdI.e€Ò,34Zfù[ÐZ€AƇCí9pK¬GˆËÑu'-„:_•:²ÇÓÝlítʘÝè‘QGy¥,6Ö£Ñy7Ìx5;rEéâSq»M'nÌŽÈͳáü”½øx´uÎ8–ÕO5–iþÈ9Zó‘Ÿpo»ýÍa—lÔ[ÛI¥IV*æãМjcsk||b£¾nYV–„ëõÍ|± ’°ÛlÖÆ«ÝÞÀï7l+‹SÄIY$¶Ðíúv.쬜nuÂnf„`±Bc‡V×Ðë!ð©ï“¯(Ì(¬<ÂÈf–»„”˜qxªµH¹!Ž‘d¬˜,–¦T´¬K\ã"4¥‘Ù<§‚6  $ c1X݃J¡89ž£ñ“Â; £‚.…}¸E Ç}bšr5kg];Š÷}ÔÁ%”a{ _| [TüÔ"ù™|ÕþdŽƒsADE‹Ýqílnv×§ï~R÷yŽÈ0.]þ=)§= Ï|ô7òó׿Fì˜t¿sUƒ(Îíê—$s߈|9`0éªTgÓþ#Aó”Ê:µÉÚÙL´£xz|úľ£¶çÝ|òšƒÓSµÑê^ô²Ú¸ts¾“ÏŒN:kK& Üœ)éOÿÖÇÞúG–[ôF¬ËÓKi‚72»õÐû‘Ÿ²KãÒ- çRŸÀØÎ௜eL‚í+`ÊæHM+nÁ$Ú€<›‡1zCŠbø  ‰z†5d’$WŠ;¨r9;Ïì·øN¶u>•y»6i&ö‰â¤¥2ùå{£ëo)†;RQ«Yg¥ÌNÜæ®|9i.é‚Ƕ·”kYž afLÒÇ…STª0?£Ó6Uå–7½5LYÔKÂh¤Víw»ÅB¾T,mlmrÁãÄ—RRŒCé¤7è‰?R«†QèƒéÙI•¦D(׊Iv»Û‚EBòÎ0=ñCo~éÏýÒ§Oï\\“,4ˆ$b†^ŠœEåQø T‚Ýã2êQ¿OùV(‰^] ·À4¶ìL<¤|…»Œ÷T,pi³Ö†)U¸4¬×¡ÌaÆbBñaF ƒ€(°,eñÌfeGfcÞÝÔB'° Œ;¦¶‰…°=ÙÚɘôX·OA„PÃ,-ážE|¸ƒÇšèkÚèÛåÉÛÿÝOÜaÀÀ9#"ºnÿèÕ7œüÔÃõÁâÓäÁŒàî÷ÀÈ©õø],?–]pJãÏÝ~ß Ä›Þó‰Çþñw óW»#óÜÎ û…,$L1½!ÌV^6Ý<ÅŒKQ(—Ë•rm÷Ì‚´½{sYÿþû?iEéÚâ#<ø±›ŒÊ¹øð•o¸éæ0k*ÿ—þògæoù÷ÅÉ}îè‚åU.À<¬Ÿ¹¿¸p­°sÂr¿ä°Êš}$X? ÐÉË{—§%3`ÆáÄ2ÉX†Ø,ÞIQïcà£Ïæ¹ ´Å G3WŠ‘²ž™äv1/O›õö…lzon©$ÕµZy{+,•<ÅÓɽbññ°2ã<~O²ïHɹt&ª¤îIÎ…´(» óUëÉÇ“Nƒ°aˆÆ€ÂÍ;yù–·¿M¸’kã0‡þôôÔÚÚ†¢Ýo£ƒa§ÙÚȹÞêÚ¢åp•×——³,îú½úŽíˆN×ßivéúÚÊêúâÔØ¨ŠÍÆöV4Lòc»^ýÓ?}aùô3Oƒà.D@N z}paj‚!t Ý…13â9H67±“0ýÀP‚3˜8W<ða8Ü÷“i¸9GÐr5iŠHlCÚ£¨ Š c¦ì^™³;[:nBÄùF² Ý€œú7w}éÃ_Hú™Ì[ÜæÌ¶˜L’b,’þvw퉧.™b@*‰Â€q!,ï;ç£?×ʲuogùT~ú˜pòÂÉ]²žÖNš;¥Zõ@ÕΧÚÒ‰J)HÑ Õ(”-#åÙ†ÞŠÁÍÍ:!¨›0F3$”ø‘=â¦ãeDÈôÒ õ#“Ij:xMñÌyÿ–—™´_·¿” ÛÔÜÌöðâ8Í|qøý¹ —žÒ{UWë¡vX–ØÏœKÝ4öø£A­fŠyfš™åÄuºd°£nðòûñù™)÷Ý¢&k¹Ð½A‚wº~i¤Ðêû…BU3á¡eÉvÐí…ºZí%^Ðvrv§ÛM)õJhmmlž?-úIܺµ<½5«XøÁw¿gâåo¾ÿž/Å~7ƒ1 —c}bË#ì"Îp%=J`–ßG¬`Îúd1|…ÔeÒAÒG¬ÁJV’NIs L¦‘0heÀ93ä¸<‰LƒD„Ä×¹NÁp¦('áw…06ÖB<â”Aòð®û?þêO§G¼03P Ę!2ŒèYÛÑgu–œí•¯½i6·°ûî/݃xθ°.é“^ØŠZ0œùÈo̽èG¸ÕË¢?Šýw¼‹;%K ïù뱫ߤãt‹/œUãÒ¶òµÎ–O~àæ£yþú¿ûK®c’8!&™aÂEP$ qÙ%´f–dŽ46›7Ÿ8Õmn2„¹*K †\ n¹—“k&j…'ÿùÏjÇnŽ•å0ĆkÍ—ó³"¤þ ˜|•J%fˆí´Ñh›™YC§GÝz]=ZccÂόҗ”ÏHö² kFvç½túsð„sæÑ$ØBÚ‡ÊÐÜTÝ­Ì3ó Sv% †öþƒÖ©§†Ûktôxng#JxÌ^¼˜À•­¾Úsc.ÎôÆ…laÝéëÅUT+TßAcưIØó¢[®luy>vÓOý쩳ç:/(ÀSÐ à1d³ eàJX9Á´‚ÈP*ð$£\ŽWË`XÒáÙ"ƒ´Á9ÂqÆòipƒœÅ¸&7+F:DXeE”ŒD„l‹¥]Š"(ŽX#6bl(,Ö {ozçûïyçoÿüÁy¯¥© ¹÷—é’âR`Ì0Æžµ§å;¿¨¦Fe§GÏ$»fœÍvšd¬³MqJÀm A6v2ô­¾ÿâ׿ñÜâS,ë ý­¡ßNc5 £8N ù\£±M,©•{½$ã(VŠþ0Nöƒ~w˜0×Ëó~Ü7œÙv.f¤sù|¹ º*í0‘ù~èláʰ±å„KÓsQe†£\iÉth%^…]Z§ð%”†«@Á XE^(°¤OHÉ·Œ¡,‚&*¸¶ bð”¤ÅdLÃN`3Áµàúºˆ|…É„¸ÍTžÈE!Ñàep ™âR¬¨´ìç?öÉßú}û‹Ê&Æ“ —ľ`ÏyÕcœˆ3–‚ýð»þâÝoSãKÿ5×¼§¸|ß¿©l¾bWs!ßDÍåõ(l[îx£À Ó ¶²³wu;ÍÚÁ[½‘9Ë+_N¬‰Cw¾ËÜ|¹èà™Ï½·¼ÿVÀ·ðÂÊ’¸Žç®.ŸzâÜÃ7Ý~C˜ ºë-°K†âÎQ.r€Iö±•Ôª©YØçàÕ{yIÑ3Ób8ï¬]Xñ*ÅʨtYš Ûåâ;9Šc®î¬Ÿy ´p°½K­,&¬¨sQí|ÙáI:Kè¦XÛ$ŠÙÂ(F«|˜R.OûwÑm·8{§UmÄj¯ªæÙ¸ìÑ¿ùÜÞišœÀ‹n+.í_y2m&YœÌÍÈlG#S­ÍlfÂÞ9ŸöÖÑÝì¶²BU^<Ÿª¡•e¨¼Ül«ÂSÊÔ& ¹2O¹¾¼~Îßn"¥°=ä+¬Þ€ÁÆÎæ¾ó犞Õi¬å¬´±¶,,‘·­­í͵g ÇN’¨T-tZ(ð…Œ{Í ‹Éݳ“º0äS¯¯ö†=K˜áöV†°Y·×ÉI«ìz”¦NÎr(ÜZ9K$®½ùÖ½7“.÷S´CYYXö “Å)  €å1 BÊ 2ƒl`Tˆ €†—“YbÒ!ìì"H  0ŒEŠ˜Íl’@)O q›‰a€DÁd`¹Ð%¶†XS¨}àæŸ~÷¯þÔ›œL§L؆±K„‰Kfü0Æ—$ùŒø™ûþà'^?>šìµ^<ÃðZvâÊtÏ\ÿPµ}c©~Ea-î-ÆLçK%&†kŒ IDATâž!ïòËi[€uÎn´vðV+?"½òåT‘âÐïÂ% ›7<óé?JC¿´ûúK’½Òšƒ1fUwLk+NäÁk®‡#:›u‚º´(i>g>ø«µWöpÂ×IöË?䨩«÷ÈIn*‚í·ŠšFÍIsÐO‡Ý%“ci1ÆÅ¿~ˆg®}àÏ~dò†Ó±/½Ê¥´•wê3ù¦iÔe8(ŨxК´[TtYÙ&‘±<|Ÿf=¶{ÚµóÙ?0"utôêê0Mý-µ{o ÃØ_7ÆïQ±h·›°râÂE°öL –f–‹TYÕªÝÛJë‘`®ì ÔÔ‚iבñÐl¬%¥œX?ñHűD”¯²N%WTÊÖF[Ã`øJÏÜxuÌ“þÚE3ì­ž_ss¹L‰ J*µòøèäÙ3Ït;u›Û«~W2´;afT¯·Õïï„YJIÒY[C<İ—õú'¯ã8 |Œeq–„YRÜåY¬†I6ÈlY˜)»0Ýö@³bW¹Î¡C“W†Q7í(–Bž€…ˆq%a3HŒ1ÛášSB2Cˆ"Îm—[†´¥7Ì‘<ŒˆPDÓ©b~ŒXÃâ`)†Û1ûXÌÐÚ€{âê¿úèßïcdsFœi°@ëÔdJ' ÌâŒq"Á˜"XŒu€·¼ãçƒÕs––7åÕOÞa®yUNÀÛOŃÉèáÁÑãÍ;ÖǶŸ>uqyÃèLkÉŠ—é9u‰Åq)€íBí2g¢Ï0ŒáЕ7<ô7ÿÛȱÛHØ…Ë'f]Úó•å×̱róÚÚš]³GŽ5¶—“N‡Düöë¬ÿåJìó’ßé]q,›Õ.×í‹éáÃba+Ù,×E™B\’›š“NmÙ¯K{ dÇa<ì›4LÓ€y.Û~£|ùœÛ3I!lu©•uTØ9áäu6O=leé¬v[ƒNÜ÷!5ÆÊÒr0ì=„0,_ÁU×¹‡˜W¼©°gB'­háØèÊ…ö‰c•úJèoJ^ÂæJ66í.Ͳ¾5˜bI´[Y}KIÆVÎ÷ÔÙd«Á»1ít´å‰ÅžÖŒ+Åc…1·ÝK'Ä £­œÕî)²`—Ejˆ ±  €ÑGG¦Ô`]Z,aYJ|dtÜð$%Pc}ƒ;RÚö°8ð•  r#³ñΙú™/V¾TEÝËçu00οz}+w™(Ìë`¥îœN‚íc?y§'¥ .¦¹ ß}œÎ³n›ÎÝg„eváVž1‹CA¦™)Žˆ¬kXh&¼i4D¶“%Vvâ$¬^ŒÛ[q·ž ›J÷´ Ižm_°g›Žÿ½ b ÀäXùÉOüqíØí*È|Q§-1L¸Ìü¢Lƒ í&Šb“ Œ±«"÷ ÃÇø}ô¶?·½ØÝ\ö¬®Öƒ…=¹ÎJ°zA—+¹¥gcÅüÚ™hØp«éÊ’Z\Ò^Þ1ÖWtš!±®,— ›z -쩨 "ÅÍPq‡MÌØ~=qm_è|aÆ´óh¥Eq H Š6¶5޼þö“Ç÷>óÈ“µŠNº«—,DIì¯76ðç úA¹¥Ò0fÙÀÕiØm'±­nô6[rº¦L¬†J1[HîºPÐY¤óWsm‘›óò&¯™§Ë“…Üh¡îH‰#2 ›C2!?$2Ì‘pm¦BŠ5@pD&Qˆ5RÊ Kb š1?  ¤ÑQ&„ZÀpô(8P}åþ¿ÿÏoΙLr»3ÀÑ*Jb¥¤tœ8 ,‡ãÒÊ—8—ÀÿüO÷ýùÛÞ“H°«€Ûæpë„rÙçþþ¿à#ŸÇGïÎ>swgé>6¾DcErö†WM±aËzr3Û“Nž‹¯¯¥13Ïžß(v^@¾&€µÁ¥‘Òòý_;~‡ŽúÂ-_fÅÏyRvÛ¥P[ƒÆ3YP×ÚòeòÄÊÃŽvêd8Ÿ¹ßwj•—½ÂÞX‹:«¦[×Ìã{xi–·{Ô¨ótˆ4á`P±0"wDØE6V•ûްþÊpOu{Ô½û5¯xé-ûvßvxäõ7xÝK¯Þwìp˜ø­í^«>ÜY‹Qc5joD­¨½…뉿•ømW†ÛÎO´,Á ƒ¶tâQŸÓF'l¥q¡`^sDÜ´;™›ÛuàêR³Æœö(=þéÐNKO<õª:em.g[çýj3žI²NOåòÒoh­(˜$¥ÁЪvÛψt± {C=>ã$QO„™ž˜qÓ^ÙÊdÛ¤’ÈæˆS%-e Œñ) `Itú„>àŽ{³7Ÿ´×¨Î3H–‡>£&‚ Ë~0 ‹‡&1:E&Nâ,ˆ’a–Ÿ/³1×2J¦Œ!IX7 M¶[ÎÍÌ–Ï­|îÃOŸz°Ñ©GÝmkµt3Ïš"ƒ™D%ýP 3=HU3 Î7ï¿°µø~f*`°GÏjHÂB ÂbJ‘2ÆÁl‰”Bsß'f %dŽ Î£½G,›ÑÌ[8!——LK#_ÆÂ>sïø•÷ÜqÅÑH •Ëå²$L1ŸKt =}ñtsÐÙ3µwüìÇ>÷¾·ý0 Ûlts W‚=F÷>JŸz†ýãÓèJ®Fq&Ĺ޼§-ï}Hf¹ûD~¼st,æ‰|ôbd¤”¶û5¼K" “‚4<»×ú«À€‚ƒûþä­^ûnneê2G¶_{ÂÂÉWœùøïp¯ö‚ð:8Wg{a|5ªþ±Ï½?h<ÔŸî¯<²úàgýgžV½¤ i`¼»h¼bê¦W™g±õ'ŒßÖ bâj³^yΊÂ4ÓTµH’䬾lví­†qŠtâ7ÛRj©qú¿‰ôÓsG¦& »j;4æ¼ìÊÝ/¹éä-W¹þäþ#Gw=´P«JE×’ºÕØ ý^¬3áÔ.~ö?yóÇÂÞ¦ŽcÙ°ùÛžÛ»þp|¸Ôø·˜WNªãÉÑ—æ#?IS'Rº±¦&gf¥+ç‡×¼ddéBˆØ©w̾…Zc+¦L CeT¨ò†¯çšQ73”À2|z ý>T*m (L‹Ì×»æì´¥ œ—órg#-¡RJqbä ¶e)’!|B˜Ãå™=e¹µ–l5r©¡N+ÜîP@–ýf?Š2áÚQ¿L»®›&IDic¬¸h»c“6å´·„‘Œ,+éF-é¥=væÁO­ :ú›n)xãÓ@çÒ7ºy¬ÀO1ȳ‚•LºŒ¸¤KfÍž[;¢  !'N& Á`çyRd1X†ã×['_agÅtn?klÐ…Êy¶ÓBµ¶ùþžø¿ÿâïïý•_DÔ³m6«é(p¬‚Ñ<ÖWñð&ê°‹$«(KƒEŠízrCÏõÙ±£Ükí/G“ùÜOq&e.'äó]é #͘ž`]r…úJ}…Å1{ã0Æ.“ů¬ý ”A¬pÍ?wßûO•ƒ/MºëÜò„WùŽQèõÛ¡»˜ì<Ù;ûY±Mì—ŠÝ}3ÖâÙ §98Q³äÌ¥Xó/ñÎýKÿÔ¿dãûdn4¬V¥ôxsÚ§S㱑ÝõÁ—¾ã·fwÿ ç°¸:6&×òšò†  ”6ÐD™B¦)V0Äîš}àé»?pèÚ…Ä-ÛŽ[PYQöχv¯9qKwjZ]xÜáÕQwÐ4Öý'k+î¬?F;ë¼¾aœZê+ÓßÉÜ"Î/6ÇØÅ‹Ù‘Þ“O‡qê¦ÜƉž“ÝD7ÂÔš´‡™ILâ1¾‰CÑêR"2ÛåõfJ™AßgÊG, crm.eŒ¹œ†9P®Ÿ]íËt¼|þaogàq¦R©²%3iÚK4§lËУ~lÙI¨ã4ÓL“Oæt'î‹L:žm3C‰cÙ‚ ''WOí<õȪß5xve××~²c°ˆÌðª¼ã•|ÿÿ‰ÏžùÛ ͘•Ò¼‹½6Ê%4c<àTŽ-…ñC3@ø¥—Ÿïd÷ÏúèI¼]OÌŸ¿Ó Ëùó3¾o™ÂloìÙí³L'"Á˜`œƒ@00âÙI/çà—eÍž]‹wYøÚ€6˜þ›å;ní¿ø}tB_} ÇÆ6PQ«Oèæ²™Üe»£ù|ç¢F†‘1V3¹q¯ÙRÝMÒC( Û¾f–‚Kï¿‚fv“êñ~Î>tw– çw¿À¥R3KÀ•ð,ä-]”=^õXÙc3ÓF+Ö„ºÿ˜¼p¤²yÝ‘­9»¾»Öõª>†ýòH6sTêv¦9Bõ6É͹ʊ{-Uqy}]Å1²Ø]»?ÐÂáÃé„Êež t¢\ÃAJt†1æ)Vr(͘årÇ&G’#P,Úe†Fs8J¡`0 )ÉfŒƒ2E6g±À CFÈ€ fj“£® i˜Š•RŒi•$ŠÃ±Ô 6i˜… „w³“©­<›¥æZrn\Bª¹Æõhk£ñÿóö¦A¶fWuàÚûœóMwÊ9ßPïÕ«Q¥šTR•T¥y !Cƒ…“ÛÆí ì¦ÐpwìÀÐCGtwØ· -#Ý „ 5¤*j”¨áÕ«zóË—Ãͼ÷~ó9gïþ‘O¨˜Â½dÞÈÈÈ{#¾oå·ÏÚk¯õà§Ï7‹¯Cí×Ô­˜Ÿ}ÿ»åï¿ ß÷C|ä’ã¯Ámï±×âøX~i¼áôí¯v“çð‡ç¥4\X2Qˆ.‚ "‘’2ÃnˆbС#‚†‚{à׿{ôܹöùGÃêÅÅ·!|éQý"¯ÿÌÏÿìMk#*B/ÒõÁ2 ³Ü0%–Râ+u8¶ròµï}ßï~ø·üöŽ‚ ô$p§ÃÑŠ!Ú—h7íU‘rqp@ 0 ;¬¯~UÊ×K>ß;298º”|ì¡ É8I¿ÊK:ŒVºæü.€|%ëðPűuîÉõÛ¿i°~ã‹Tqà|xÑn¼õö‡~ãg^¼®ƒ@†ýƸ;ûègÎ?s–ÕˆÞ£òœÀ·¾ÝlÜÜÞùjzÓ»ñö·à¦›Ä¤Ôò³Y<¸ªã &—–íô*.<fç±q´8rJGÑÌ °ÃBŠL M.Ÿ‹½¼õ<-CÛãòs°ó™c÷}ûÒð(µÿ|Ò?ËÁ0ÖV×nùÀWŸûÔGGíâλgõÞüìççw¾6Ù}²¾ü‘YúȇúH,!}ö ýê){þ¬ß½—Ž·:ÇZ59Ýö’äâÙöènÿJØÛá¤à'ž÷ÉŠ ¬]£Äº¾Ä³©fꈽÊúZÒLc`Ó Ï÷}Ô•ædóÇÿË/2zû².7¸»ÀÇ)c°¢«±Ý`wBºî¶wcatóx2ßï ØC7ÐAoýÖ"»Þ#•4,N¬5GŸ}¼5£ec3óB³%"@õ+ºýCÇù/~jí¥oI'G^¤Š/`A¯\WŸÿÂîù'_¬®ƒœå¶üó¿?;w^]8ãúú_ýØê‰{¡Žz=Æd£MIl-q§çbÛk šZÞÚ¦³õÜ¡º¬½×—¾¹¨úpú!ioíh_á³>ö±<€Ë#sëÛo8öÒk©Í×|’_¸D„ˆbºyåÙÿãæ%ÿøê`L6ç§>Ñl®æ6\9Kq¨çžçÍ£ƒíݦìqóÙÕóÝÒ$¯úÖÒˆPoEcÜc{ì¡‘õã©Óµ¡¤¬4’ij,aù[QncCQ£‡ôÔG¨z†€ó©"84B E«Å(ð Ý´Â[»Ü8‰–}”¨}¤>'5õäÚTbì65yˆ#[¸Äe‰ºÄ¤Eï«3Ïú‘iìÿü‘7!Ü2¤»rÜšà=×áݯÇè:ŠQË-´gF5ËD H ­Á”Gh«´^þvú¶›ìú®<|Aã¹å(ʉ1‚®P·Ì]C@«J™{Röj‚ƈJ1Î) ˜èÊË9†Nã3Ïà¡Íã?ûþ߸eyP%QzIÓ¤í« Úõc:2Ïoï?Ñ4¿ðw~`yëêëNñ˯ף Ö n¹ÓLÔE4WjÍ×™&´»¥ëYæm Ð¥†O¨¼ú¥xÛ{]î¡J„·çóÒ'/Ät8Q5l“?¿csMŽp ¥‡*Žó_üÔÚmoÊ–¿Hþ"Pű—Üÿ…_ù/^×!ê`lßíï?-1 ë‚”ík^–¼âÛSí6 9h-©/‘% (z¥>iwµ™bªuD’[¨¼·ÐEI»çüñ“|Ý­išs¶jw.ûAB—žF³ 7ÂÙ§uQ }Å«ÿvTaf€” "„Ü H¿’ýHo7~냿ºa÷Ï} ò™jG“• !NþÌôèkЋ/«8h°1:~{¾ròEª8ð Ùp²²4:ýé_ñº/Ùhyc1»Ð–;ÊAQ·ßr»Üw/iÕQ A_¢Û£r þ@¥b)ŒbrÄ©‹¾§¶µ‹2Œ6s¡8,,´˜Û°å/=*]l÷KDǾSlOÑ{ÿMßùß¶¢DT‘ô*Lè 0Š@èA %¢ Ú‰ŽÿËöË+íþ‰ãxú¤´¿'GÌÞŽhH›y?óê’)·bÓùy'ÈlšËöÅ8@æË¸¿ƹ½rU:%/˜n‡2’gtm¹œ«²ÍœªYìºò*ÈC³È†¢U5c˽:À)À l@¢0ŠxÈo{€¹ûØæñõpu§ØsUñ¢Señ± &DãÓ4XR±…änRV‰6ÓMS¹ôìÅóWôuòƒ±Å«x`ÝMœˆ ö9â”L8ce•ÕÝ6lt‰1P_"€"™1”€´ZÃí/§—¡íszuí5µhjô3¥*'ì;¸¨ÚL#Š”N®pÎQÖh[ôKÕå/ŽÝ»’]þ׋>‹Ñ\=õæêÙgªî<Œ=¿ûGnÂÊ ]t{0—ÑWf÷Yí[É7(&Ô-ú,0ääÍùèsU¡B¨d4æëî2[±Áͼ8×û3L¸Çýš¦ç°½‡irå ç¿ô²“wì©W žmÚkd2¦W€È‘cÞ>úЕë#Ú}:󰯦p)>öëþ÷w¶úÓgfkó§_êOÝ2ž¡ßÙ v@û{>µ¦.Ã¥¾Î Ô–R⥠Þ]ø#› ׾둚–Êl$ â\³-ÐE$‘JÑÂEUFTI‘c⎥ï æ°fFPíafêj"Ï)}|Ç¥I}dج#áÀj„”ˆjS˜´X_É£³2@®mxßtM;›*®…PˆaQ_³Ì¯é ÷¹gÐ óž[¯õ9]ÚÁêÍ79 …-æšÇupVÇ'‰V¡¬aO¥‡;Nä U<Ö{¾Ûüô=ùþcóÉÏb§g´ïÕ8"À‘*4cí+Ì,yUèzQ7‡.í£‹¸ª˜¸õ%G&£ p„YŒ±­û® Œ:Ïòaj÷º¾l£·ÉÇ>úûûŸ¿ ¸u «›H LÆ”lhÝÃTA…(Scè]ijJÓqxàndÓ°ËxËðæwÙѦÏ, ¢ œƒ±÷Îw>ÿÉ'‡¿sæ™ä¾»Ì!eÿ`˜¿üc•ø7²ð÷>ˆ‚€ã×xìÿðâu 7šøn~fþ䟢쳅ÿ‘ïŸd×€• Ø-ù†ˆu²¡Ãcfщ¯²ù¶”û˜]ÑÙyÌ.¶“%¶”*6̬F7Õýç#"· LkY̵œi³‹é Þ¡oñÔ¹~í†ìµ÷¿}«gF{ßÖm•¤ì½Ÿ× "µÆL›¦'"6 `è·¿ð°¿üä­:³ÉQ$ûØÙÓ….¯›ÅBö÷ Äû³à¡EݪZ2–æ5FCêJIZ,´¨¼.*m"Œ¢‹¢E ˆcíÕ3z ±ÄaDFa(,1ˆæMhUÉÂ(œ"2:‹ðQ0aTŠÈO­&(ë#?k‡]§d{6Q…­ ¼ " a´R$Ž¢± …Ti¹iêõ‹ùtzþ«Ö( еL—†tÈx¡Ô!ËD¡ht ÄF9B"“U1hw©=£q 7`8êvµŸÁA X+1Å^ŠëåÞ7¸Í%úâã²[#uÈgPRÅ€N#œ§®‡*%„ȸ8ÇvÄ`xïËÞû¾ïY"t릶Ä}ç‡ÅÀ¨À$lTùö<}èÁ‡?óJ$? IDATóïõ›3º~ËËH Ê-L§`­‘* ¡ÅX°L:hqT螗꽯Âñ—Ð '𩉰)Á\£yÉ Ô€HòÝëýƒ/ ýÒ.[^Ø ö+*Žc¯ü.WL†›·¾øÅû¿$H¥ X¹ç;'ú×OÿáÒKÞ,}ÉIþWŒ_ùJ6üá Õh°¸ÿ7Nw†åÓ³4¡Å¼]ºÌ¨El@…"’ÌQhnzú¶-ç®êÐÎdû¬Ý¿â"ˆh[¢îech:‘0ÄäzÖÝl<í8Ãìr¨Óê(}7úHu×.æÛÒ6–mT…jÊýiÙj’®LVàÒ<=yD?öQ³˜\‡'ŸÁ+nv`ÖŽñìJ M_DÃÊÐ^Ø›ë&Eô½0(ˆN]§‘UU„…I"¢…@Ó­WŒW!°!¯’À XI‚‡D"r¢¤PKž5&u `Fžg*3βñ(¿R™¶é,…àƒ’¢˜‡è\JèÙ/ ØµMÕÚlÀÖxÛZ\îËáÒäÌŸ^~ö¡Ý¯FÕ3@Œ@°±4TUÌF›D&‚ùƒÌ€2)š^å"Ú=¸dkTl@€æ<ÊßLvÅèV4-¥ÇVû)’âLÌRÿÚ¿ë–ײ_üçíÙ:€ñè•"!Šž‡Š´ ¨KdÂáÞ/êÓ¡Yu.ÄžK–ëXr †)Ï1Ɉ\j<ðÞ÷]¿ñ¯ï>ò¥ÇMXcvùÄl>@;ñ2ƒËAAs;‚z:,9Dæug#jïÐ¥Sj kÐC`h@ NO½ôÙ÷¼öæ_}fK75åk°\‹òºV¿ÑŒî¯\ EÑz¼ùïýÂþÅ{¾±®ãká }ÙŠ]¡ˆÍîªç¶~gëâ•æ¢@]Ç4o"‡m0°4søŽšV)1Ãu ÞçDn¨a%$„ÚÃ*&7|´ÍAwùL/ ìü©/ƒÚ\VrH†mŵ”k†ÄØehÊé/ìãüêbÑ ‹KJy#ÚÕMÙÕ-Y9yôÜÎ鸲ÐQƒƒ<ɇá@Žžt»eß’Ä€'žóã5W‚œh’ÒôŠGÈR*ƒ˜„º¨M'.1m (((YÌ ‘4W‚jdUƒNE-È€g`DÐ(Ø‘’‚ÔÀ@½À*z¦ÈÚ H@¬°@t[{Ë7lô&1pì=FN‚öÕ]yvD\Wóq’°PˆæüCO?û»ÏÃ)€¹8H;2œWM&Ü« 4íuä0Ê@bž£Ü§äœL®31ä.€'59‡'HU›-œd^Ö~©1ªäoý þù?­.4H€½PŸ 0¥¢6X]ååÁKÓ¡é°“"¤@xðѧ~â•÷ßï¥f‘ĸ&t¾]-ižz‡É íí3iZη¯/ª¬€X4ˆØ¾ÖoJÒešïê8"·D9 I>¦ÄHF”’‘§Ø¸£# Å9Ò H{H$æÚÝž¹ o{ë•=wI Rúj·ü•ræ°Ë•¯£ ÿZõ—?KÛ€ññî~Ów_~èý÷½7v'›äðsÿ9¸Öì¹Ïµ—fÏ}®;¸´ÿô‡룗½õ]/9uË'Nû½'·‘eÈuwÛ<~&ÜñºLΕ&& F¾®’pyEë Ð ³Ë¶>ˆ¾ÕdÉ´•ú ÕnŸG½WÃ1Ư󅳲}'oËû­&$›G±óĦØãÉ'.¯gC3m«I±X4U¿7J³jQ]Ú½0-Ù¤î»&ÆJh.Ý~ïüö/ìòJ/ c"aP Ъ©*š¹çm9DÍ 5•æCÊPŠ2`#¢Ñ(0P0©PªðªjÔ*¨,»^j‚"ÑÎ@ ‘05hthyx P h aÁ¶¶T«5!ç©çŒTò aHŒp­^Ò\”WG—¢N“`5-;ÓDeñ€W€#)áGø•†jß/°´ä–2¨ÔÎu,§ÄV¹­Ñ>'ËÈ—€Mò9°¯U­î&c'±º,ƒM²U‹X0ñBý-ï3ÿÝ|ðÓ?]Í8CµP"V"z•¹’ÁºE̱Mp "ôÕïøCß~ÿýNýA[Ï*-¥um5ɳÑÞÁA\¦ÇÎéçþÇ_¸ð{Ÿº÷ \»êR-² ý û—úå!d†Ìð° .ÄÄ '3Ödé²È /Ð^M­œCS\Kj¿ #Ù<óÀɭ϶;O~â+á‡ó+¸Øy䫯¿ìðóbë¯Ô ··¼íGÿÉ×.ßöVbgòqž~•Žn§fg¿p×ïë7Ý7X½îÈM÷å/¹kýÔÙ+«Õ¨˜wÕUÄÆ ·/ýò¿?øŽ¿u*;õœÎ#yHÊ8ˤ¸«7sש–Rîs¹¾3äe23Y£í]½ºÍK†&w½Çî§­Ö–G7Þ)ÛÏ—–pvŽ} v˜÷b(6³ƒƒñµä¾ªš²Ú#èîôJÙV.Ò¤h®^¸ñnM œ«a,ŽÔH` e݉ҴÕ"%xtrN{UdAbï|hE#ræ&J§ —rì$XÀA;%‹ ˆÈ1…Ò!Qx‹H”ö‡Ž Jä¡.Â0JQK8ì½0ŠèNŽÍ}·îï^ÍMpâ Ü³/¬DÖIŒÔ¢ÊðÒºNsI#“Yg’• m$:PeKríl€жǴQãb1DETך°'Dòª0Ú¥h;ª*µ -²©&)ªˆn†‰Ç8¨.Áe¦šJ,ã襰#t=Ì2¯]«4DÚB{ï þI•ÿÌ/6 Æ)@Ú1$"ñJLéå)Í ¬HŽ$ð½nÏü§lýÔÿtÜ$pÔ4¥*WUíl›7f·,»Ü¹qPžù$ªÜ’:M6A%‚b”¢÷H6xd%n‰€Ý)#eu0‰ ]Ô<£M¢:‚ ‚"4‚@ È€sú¦ðË?ÿã?vê¾ïø :ïxýõ¤Üøãÿ×rŽÿùo%xÑf”ÿyî#ÖÖN¼û~ìSŸÿÀÆ«¾·|ä7¯ÖÕù/´Ó ó³_(–mÜòª#7Ý7¸ýëßÿÓƒÕkjl„n1;í\Rµ;íl Å|6 „øìãáô§ý]ßf•"%ÐÝøDHú^M#Öé`Ù莯f箺ê¡Ijì¨ÐFßD¥páú ÏêÉ[ÃÓŸïtq[;6ú»çÏœ—º‘®)·}[·a¡è拪ë:Xž×»]eÛ%*©+ÅÍÚKŸ:5ÁÅZð„6Àe¤½6%`P0£SíƒÔ…Eï<µT‘EøŒz‘DÁŽ{ÑÎh°† 艼U#HÕ†`[áb4¤X%2\€'t­2"QÍ"¡W‚¡© H¢Ezß1Nk—xtPh䎘çd!ñÚ´™¦!8¸¹,MŽŸ,¯o’ϯ;y¼ï‹rñÄÅý8L³é¯]÷{7é•ëäkÚk†K E JW ™ÓB‘Ft½ÚH¹…¦J!P}U“ì&1!Û§Å.߀n]y®i1 9´DZ©6åkþþ৪ü_þoÍ•k°9æ£#¾º¦ ržÈœ0m‘İÀc!hÎ_yú‘g_ýÚ;šDgäiÛ®lç©¶Ú±Ž–ÝæÛèÛßÿ'¿†€ÀXYF ŠgÔ5’F‹¶–0¨§”5OÐ/”"–6igÊÀaÿ¿­d¡(@²¬}ë{ïøå/60)ÆP%cñBkÁ¾™ýÿ àÄ€€§ûÜ΃¿¹xú÷VNÜ1ܸá¶û¿e¸vrã–Wþ[Ê!U³Í‹uH?^®ÝtËÖéK!2¢’Ú½—£Ö@ò†ú(-ºÍ£t--¶QuÜÍb:¢éfS"öç}Ù ]`ÞÃ¨Ï :u[~÷+ôùÓ=1ßú:Wú¶::¢¶€W×Û½”—‹v±ul2èªr>oœ1>”sHj“¡“&êÖ~.N?|fû™]°‚+‡îX«<Ìd^Òî5 ª)Ø{¤ u-à©e ®À’ç$ª­”Rš©Î-RO¦RÞ9,+­¨-PŒˆ¬2©ØüëßS|ôw›§žÃºGÁrò%¸í%ù§ÿ°9èQú¬Ìja"H€ÆW¿ö+ÿæ_ûKKª!ÏÅHÖÇíE9@ƒ¦Ê°6ÉOp½‡°¢™Â¥l Õ ÖQÃj‘V¬¨±ä#…FFK0c S(Ä£¯”¬‚:ú2tˆ (”°¶ôü=§NýæÓtòÎwA_€ˆV`¼v¼^¢S¯ü9£1ÒaYF‘àêÃüìûÿÅ}ßýÏîùŽ¿éußsý½ßº~Ó½£õëÙX¶ÎKlˆ 1]s½ WYßG‰q±;Ÿ^ØõÒª (†M®›ÈëÞ™«o×nž¾;£ÐrÓÛ<'¨ŽL3'r4Yá‹[ºzjiýF»œóÒ‰‘rçë†nÜò Ënt7ÝÏÎvW.iì€yÆßû¯~<)òŬª«Ùl¾M›²—¶#’ƒù¾oj›º­j´ßÞÛ­ÓÑäÖ7|øýð rAZ02:¨u€5¤…!uhÌ#ÈX¦5*#2Œa(Ò^À V :dî `Cµ¢W:¼ ¼¥ ŠhÀ†¯y\‚„¨‡‚e ^kΡæë¼âhD02j 6’3Ñ%bÒ#¥>R ÏV½¨M2‘¶Ÿ×{;‹ª iš.²ñÊpv0;ûÄYäšÙ p|Œ x¢(ÐtD±Áb†ªy£A•½Gè.S¶è"5 í.°ï©cî ¯óê Ñ#v4o¨j-‰ 4€ºh3ꮸO<vë1,ôþw¦GŽÛóOù®Ã4`Ï£‰8>ÆßþV¼ñ^l0LƒÇ?÷àñûÞñŽ—œèa”ìþ¢™,ß{e£öèò ]?öÑ_ÿu[ÖÇS*RA"Fôªž8¨soP¶*ƒ“¬FÕ€” :˜`²a”UÒœTaAhÅÁLµjR¨dV)¶'>ñ¹ÖL®KçI¶‹é™ÏמFÇï(VN|}<õß0€ a`ïÑ~äßwç;äÔýß1X9žV“bLlˆÿ,\_¨ˆØØqæ{ßÔóéų}½ˆ$PFÛn.‡ï|ë2ÉSB\¨Í€TaGT5qzíŒOÒ–|b›FµK] ùNôIšh¿¸Z]~*d<˜Ÿë÷?[-¦RVèjÂ9¯w¿ç;î¸é®g¯<×̦±Z²yãç‹Ä¸ ¤Y«´¦êfûW®¿û5üÜé}rdXEË-rt vÔ5œ(å¦Vï8ŠF%"ô€AmÐ A£ºÔd@ ˆA/“7 ¢( ƒè¬äˆ*NŽèj('D,@GF+¨»ÀëÅx&]WDkBöª¬ñibÔY›rç3±ê Š&šä&š,¶=êÙb6›uÕ¬šþÉ<8;³¸f%¦×4üo?îÞzʤäë9Ú÷µ†e *À ˜È(EÃN1¶`Fh1óèý€z«Bˆ³NÛˆh(• ÌûðÓ÷ý׫ÅØ<7‰Eµ¨ÖÆ6ì¥?º~ãƒgžyö¡Gn°f9ÑBÐ |•Ðäd—±r"÷Ön.´Ù:ò”’\%˜±¾ˇÞPÍQ(æ  p C ˆb²úú'ŸŠËA1:úõ–Îàìç~s>Ÿ/Ýp_¶t̾è”oÔB'Hš ùÅ÷¿ë›n}Ódãõ¤˜Øô?[mÜ$tI1ÎëËóçŸC/íî¸-Ãä@;p#±DÝ!eM7et “»°{AÚ]ô¥/˘´X\ñý\¶æ¥HÓ#nõ'ä‹>°ƒïüò0/çM=ƒ#ÜÀcŸ~â¯÷Áb»rxêmì’´ˆ)È8êÀ]p(½U5SÒvóÔ¤-»ªœú+’/ì|:D€ˆ|ôó’½ÿ¤Í’f²{@óZ¹VQ*ÊN%P£Á¡°X²d™ºJ ÆX'£Fµ¬qà5sf´_iª4š×¨æt`µ鲨­-rþßÉ÷¼‘~÷÷âå-ÔWðØ'Ëñf‘åÝ|HÐbˆ½—žB´˜—’‹§?ó;œýî—ŸÚõuG]ÕÕ"Þ21qÙ”GÇxà;ßõÔÿþïª&6IŠŒ0Ò±'ÔÕm>‚ }Vèx)ñµwkL¢~!¾ä4§®VA<†âViº * d¡¤P0Õ©{ê-÷¾é‘ïˆTÐáŸStˆb²vÝó§?NdT"TþzÒÆ¯Ô7pž k.¼ÿŸ¼áøÝß|ÿ÷ý€$ý5Ð @b£hËY¾’Ka‘%¨u’ão_Ûј€3 zÄžZzO…Æ (#š„“%íJò9Í‚\Dû§ž­n8a _>]O›ÇŒË£m¦PœýØÇwþ›ïצÞ+÷}±´hQÃH(I"±®… f´·ÅäÔü5yþR  2 Ø!U&a rŠA­P“(AAcÐ;$Aá FÅ H˜R0‚ª€L@pD×¶^á€^µX)ø¨„!³i#(¡L9H¬z SÒ€JÆk x R¸prR‰šØÔ%™è"¶DŽ5ˆ†- ÍëšØÄ$€ CEæóqÛYº µBѦfïÜN}õË,K@€{ÛúôBFL¤ºb)ϵõ¦êc×£ˆTtM Ïè3u©š11ÔÕÑ÷Ø© -(cõ-v ŒANÚ•H-FЩ )t°4¡¼‰ÃUºò˜îîé±1ÒÙ­½pvkaÑ[l—Ømà òˆÛnÃÑ{Oc}.”ÄZÑ:aQÓ«^9Ø_[].ërGwßÿªäø‘ —¶nK ‡œE°4„Öèöh°F9KWz8øJ}Ô´¥¤ ~¨­jÚ(y‚U〔ú^³eИ”T#ÐH™\®z’pÿÊØ¥&мÀ”H'ïxàÑ?þ8±Q‰*‘Ìç›CüÛü†d°|ˆÞÑÆ íå ‰ûŽªb˜%y I‰(hË·¼!yÅ묄À-Ð!ˆ'ßj9Õj†X›Ù.šRBC>è|&”Òp‰V6pϺY»Â©[©§u9íž?Û-³«J8XH+èZÌú:̧}•™ISǶ­3¶†u¿il» 1•d ‰-ûsùÎÃëóé0&ù5wZ“Q45jpN±R‚¦CÛ7Á[3E£J©!e†pPCpÆÔ} ¤†1…–(ј¨† ªÑ€ ªˆ¤ ÁZ+ävˆŒÈ =Ü‚Q$žá Q¡@¾:ܼ1[]/0#©½ íB°*”kŒ­ cÈ@êWݸa¿ï&ƒ½¿þúãOœ}°+p_ÐAõº!ŽŒQ62ë°ˆ@ 4€3°@æ«Æ˜à˜œhÃ4/‰‚ÓÔ¡PìÐ6¨Z­ R‹Ô*÷hjôŒ e¶,»Ê-,z¸ÉY€Ð‹v»µ°J¨›©±Õœ€ieŒò8ŠйîrWžÈÒYUm•ûìlF޵¾œÝ4¾nã-¯ßùàŽˆ5a8 ZÁxL¾0ƒŒ»&dC4 ɇœ }4š­2Xb©I²@¯À—ý‹ “-` EӵϞ>³ sùskI‡@Pè.›fz>l¾H÷õpj‘;üö/|O þUß÷s†ë×»üEôë±J]½²Ü5R÷D ¸tf¾ÿ¥ny“µŽ}‡àAV£R1D’˜ým¡‚Fë²à£[ªÍþå°Ø‹ÍQuíUÞ;¬¤Á¬¬ØEÔÐc2¦ƒ]ÁDH{ÍÌö¶7¾ni²Ü«l³KÏåÄ‚‹Œ"aË+œ‰.³½K(=rÝäș߾\댱 ‹"*ˆ%@‡Ä£TDбB„°’Rã¡‹F¡Dš2Kƒp@€Dƒ1QP Vµ RM•RhË*@z¨ñ`Mi:AtDˆŽJÎ@ ÅØp¬ˆ±+Ln}tðÑÅj2ÛÅÈYÚ!I®R7”®Âxb¾åí÷¯¤+£å 7O,ý§eýü'?-SºÆ¨& Rô81«_îXeû’žÛÆÞ”æ3í:L%*Îaxƒ˜«ÑÄaiU}¯!RÓê|¦2%Š´è4¨æ Ê À¢E—É8ebqÓ)b¡©ÁòBDYÊv‡Ø©2Z‘Œh,h•Eb:¤@ ì<õÈõ÷ÜûÙþâ`2¢íi^"Ì»ÙR,"pãßüÐøÀÖŒL§KX\JH~®ƒ‚T´mØdâ Í3$Cé#’Ô4³˜ƒÀ=¡×´ ñ JA0ÄÞÓþuúÿŸÏ½1¿y/¤8Åä†WùúàpŒôâ‰èxg;<úëÿýÅ/}úÿðßKG†k'“|übÞ¦Wi»…í 2„ˆ ¸qé —ýû~øê‡ÿͦ+®š”ÃæHœJÒ8>Šõͧ!µ´»ÕS†ÉQ©-pPzŸ`@¦Keã6wõ™˜{ª…vwÅ%öû˜µüøÎÝ­'—‹ôù3OiYW7û~Þ{niÔŲì»õ•uÖÊ/¶ÿßO]zêY(à4i£ Œ#VîûèI4…s¬ÀáhwI©cô‹Ã­¥HJ …P ²J! Bª J p§™…VTÄžÀ Ì)!g‚*G°eéµXBOŠd™t¡uÎtA˜£öJÍ`âý¾³Áµ{×&\Bsö&ÑéAùÈ£§õÇÖºõ•Ñî…í<#WAj ‚³€ŸFlœ²·ÞÕÏ÷ô`{WôêóØ¹ˆéeª…*˜XX£¢¯!Œ‚Éu¸ÊYÝGÝ¢†vPô "$"ÈÔ½z«‰”;"ÑÀ´w€j½ q#âEMÁ‘à5épx#jÆ€I€Ç|,{/εUkR ±—ÈÐy9;ˆ=š6OvÞø–oþ¹àO&èRPŠI @በy¯0”± jzM,iC¦P1^‰Á‡–;‡ÍÔa“®¿ÿÛš§ÃØ /0éUÅpõ¾,äø›°e;ðÉO½ÿ½ƒÕë\þVÿ*eh¨½+w¦cKœFiöá ø±]L›Áæ ÐU˜ˆpÈîX rÎXÃ÷l„³j6ä¥MÒ ±óÈÄHa¸ËFy~§S8EPŠS+1OÖv1³ \–§iº7}³IZõÚ~}¼¤õÞ€wýøï>ùþº¦uÖœa=&C‚°tA½ŠÀwH-˜µñš$ ¨9™¨à ¡SG”3‚*e0@' ,š¹ D(¡Ø@*lPD&J8Ol0 1hf J ¯0 ÀaÒ,P Ö¯{ÉWæ»2BRÙèŒ7}ë¾±«½0'in H“ÑöÕY5ÿãtù‹§ŽœÃ>úyݧG†Ý…òÚpzøíÌEüé—pllêmA@a°ºŠ¼ÀFEU©å¡G€ kÔ€By–¨ÚK+Ô§” %3¬"m ßÂwh+ÊMÆlT{£‘N}T®ÐöÊÖò`5 4&àcFTŒ^0Z·pà‘|üóÿtz"ˤªÕ±’4¾êB¤¤]Þp‹yÇ;¦ý-sœ[‘Ô‚sX‰È†°ª[MkKd-BP" „aä+ðSH#’ÂPÕx(ÉòÀ(3ú@A¾ýïø–'7?·;åÕ€Œèµ.º¼òÔèø/ÀæÍ„Üa÷‘~äßw×·ýh±t¤X9æòÑ‹WX7n#/ê8’å Ääʾùÿ{fÍô<ÚŽº)ÊóRoÑÙ'1=o/<†ùÅde½ð5ö·´¼Ègðô—úÇþ¨yè“û—ö<{EmÐX”FÄK‹ÿø4ë;û‹|°>\Z™÷&šäØu›ƒIÖ'$yQ›¢´£Æ¸[ï,E ̓‘…sð *‹šˆ…¸U"rŽœ%†æ $ÔäÌHF2‰œÕÀ*dÁ#¢‰¡LáM 0pp ÆÙ&":x8€¯è†ÜÔEg-E‚˜Ä€úÂv6YïÍ’g RcŒw^‰K6ËÕ™` É(±ÖP[ù2.:Û®6’dµlh<>~ß«_ý¶ï×䯕kPH œ`ý„ŒïãâV˜Ð2IQ IDATÄp<•Ði ÛúêÊ=”ûT¥Ï$kzìnåî¤k% lFãu;ÚÄx¢0Smsj ”Nû³öf`ã¨è,ÊÜk§TSKÃ$, †)Š« ,åX[ÅQž~ú~ÿó]¾(¤EñÿñöžÑ–žÕçï'¼áÄ+—J%©TŠ!@ `@Ä6¶6àç/VÏØÝ^Ð¶ÇÆ³Œ±Çö¢gÜörƈ1Úm° & F I¥PAnÕMçžð†çyöž·,{HÆHžÿ—óå¬s×:çîwïg?{ÿþkµ<5IÊ~O·³TúGŸ|(¥É«¿óö‡X=ÃYCˆ5ÚJsB‘£j5qÁ¾Ç³*6h3Sk)Yظ I{PäA@–4³]÷Ü]©™ñkAQì»ì†v²Šg=Yuâoÿðß^ÿ}¿¶÷ê—”s»|ÑçgÃâŒ9/|Çç;)¯hfFc‘.ÚPå2¤õ:ª)ZKu éÆëÒY¤¢”&L×#C`lòÉwPö (í¹iP…x ‰˜l2Fï=tfåÜÊ©S{—æamã¤-ÚÛ±¹ú”p9\ž›m-ÝðšÖOR½(˜á«x¸%²ŽöI¬ÃƺNÎaº¢ífL#B¤¹¨Å¬  #3Mi†˜;2F=Vï…3ä} ±UµH#hU k¸b¡„jKý̰GÕ¦Ô'&Ò IÔ6A*Øõƒ‹ÍïùÍ_yÞw½ô¢¹¥š¾g%ÔMÚò\²Ì\m´¹å†ô˘f>@–!%l†”PÕèä@ 1¢\iµ Ë„©NfŠ)µŽ«¶[À–€¶rhˆaÈûœÛ6ÅøuŸ(†Ë{Ïn—E}â=ÿáÅ—¿âg÷^ý’b¸Ã½gH~ZD Xãpö+G«µ p‰ hg7ÂËn.ñ•zŒÑ“€pÒѦJä¸öäw‡+^jÿRšn‘oiŸãÍJëI!$q5&¨…%¸mK9_}h§æØ³sèØoN'yVîYZm­Ól:¿¼kV×eoP.?ýÉ»>ô^(– é:8ÖÒ‚ Ä9¨Õ,cQ¤(…a@›(Ös ÁSÝJæA :ŠÏÎcè¬%4RHãI ¥´=0RŠªA)Kì$‰#—àÚrlÅ2„ˆ£xâ@*Q9ÂQ‘1˜°©Áã3[™í—KË|r•sH4ÆåmµÙªRl dKsF"3KuT¢üô™é_}ê‹¡2ìÜ[3pÔÉl?‹Çp€[‰~áýzôøŸÿ·"^Í]õK0›p5ȵ¢¨ ¶"h k‘<\tÓ0b¶š* &°²R£ÍÆQý€‹y$Ò&¢jš Û¿ZR ŠBE„N\+=1ÐrS‹©±8uÑlmatìóŸ~ï¯þÊÛ~ñ—Úəನ1'!åÖ…V†?×^uåú_Èæ©!M’‡±È< ¨=ŒgïÅ’2 [šª6G*()²œÚZàÁ!(*¸0àϯÄR€ߤý?|<كߨnÝnó¯=ò· —Þ¢’¾vyøŸ¥óœ[ìèáÝo{ã`Ïe{¯~I1XöEßòÅSŸ}1 2¬7í¯}°þ•=|ðUÀ~ò»Ô?½œC<ŽÑ1lžÆh DX×éFÍNëæ9L,O+£¾‹0@%‰hG`Z šM VQdj¼ÖàYÒVµ›Pì‘j)3JÀÊ ›Ô”¨LÆÈw¢,°±Y£7À—O>õûÿþ?ú£ÿÚó¹2¸še>s¥Î°®¼íåwßùXÝb  @€Cæà> iX¡V“('øÔJ±ëØÃ;ëÀÔ(©Uµ œ_;sÅ{?²0+¯›dó øéåùó³Ï$€Aáñ؇k6ØØqÐ>cXÞב2‰.ìØoæãæ¶!2)úw¼|óU;ŒžeUȬ¸RÁô,Ò6C¹ßT3ik~êHÚšM¡ßµùœ¶­ÐÚZMCDÀ‘1U´ “”×]þš|%MÇN+…¹è‚ CÊJ™gÝf[uº¥EHw^rGýá¿=uú±ý–i^¢p0I;€aÄ$&#xLZõ91¢Ž(Ôš,bТAÇP$ ¬dQ1Af)ÔBžà”•B`Zˆƒ#j™khí¢Ûh!°‡ È`·Á±£ h‚@áд -À@4“ÐO™q%ùi”ê:+»µÝ•yU”¦a‹6‡’‰aï¦!Vg¶²ºvë…7î=tà•îh£Y7¾è¦/=tÏG?ô¹w= 2þ¿5ý©ô†Kð«ïÈû¯h ,ÁVèO`¸ˆÙ:Yƒž†Úô5–é ›[tæ,TQä Jë°-YÖ‰ZÒ¤”òE˜ ¸{ÎÅ'ë…ÇH&¥"ãf&d9Ïy‰kx†ó(Zl¬cu ‹s€Ç”°o‚Çÿû}ú§üÍ×ßpvv®SäLis:sÝ<'¤_ù‚Ñ«ÞôÔÿþ®ÂŒbZ°01Ô@sX“‘+”ˆ"Æ1{Ý^9b 0È‚xûdIPU”¡„i¼ñ¯þjáa½y~Ï ý†×®–¡ŒµG>y×o¼ä™G•-ÎÝ{çÝþöWü/  ·|À=cVíוjtÖïYœwyŠ03švð—ŸZýÍ?ýâOüÖ&-`kŒsgjó˜05gOå0kÛ¦“£W!…ð&Ñé•PŸ’Åj •)lÄ´ÅFÀ&pÍ5×¶ZÕã:ÌåVªÖÈÌ—.PѨeç˼œmËåù¿øÅß¼ëw?Ø5èh‚ycÑ60] Q™Áå0ÊÚªf˜‰f ÞQTµ‘$aS•rdE ΨMˆªÖ’Vjr ˆÎNÕ†õ( ÖTP€‰¨ j m@f‘ÉP0j<(%(b^`" °t~ï =Ç{.¾âÞGŽ”6ƒKU€·aÆNn…¼0A1çƒ@Ñ:¨2@Qd É鳟ûè±O~˜ò½‡_ô²K\lcÑ·æÕ7¾ð¹‡.ùƒßþ“‡Þÿ4‡çU/ÿÇ‘Ùá?¨ö*OÛ- =·C` 3è:dI™­7bÛhÓ¢ÚÂÚ*Ýÿ%9ö$ZÁ\I™èÆL2ƒa‡Û*Q@M@Ú@ˆ›z®„mE™½C´J2•|§™ÍAkô¼±“dûÈ"|†áÜÂoÂ+fÌ>Äw½õ×nþàŸ/³«éæeÎyÛÒ¤is—_ÛuKoøá?ûèïÏSn¨ÓUb Wµ%|W]xb£y8rd´Íëv0†Èê6`(‚Ê\~×]×|äÌMs¿’MñMÀ”†qfåÄþ«n½ùû~¹¿´¿3·“Í·ŸÍáç¿ô¯~ûGnùéÿËåÝîÒ~_öŸÉ‘úJSSº²cg÷ìO®=v Þƒ šPø~Ü1ùž}í¬A=¡ÙÞsµm,¸¶i‹ŒÁp™à©9òL×t×>×ÝÅ«S™ƤŸÅêç/ü¹_xñµ7ž>ñŒö³bZÏà³);ƒ–M²qîե܅ýÞž:·«ËK^ – t ÈØPŒð wÆF5J™c#Úˆ!8ËÌÐ6(FÏ#Ѧ@$ A-)ÃB‚õT«¶„.Qõó™F`&ðàD`xC.!d¦˜ ™¦oØA©‚cÔ SÁŒ1UŒÖ«ë^ûŠÞK›£BŒ6-[¦„ͳh¥É,ò—&m Ò*¶Ôð\¢.wí¹ú»_ù·ïþô#xêÁÞuâÜWh©Ù½k±kúö]týM7ì¸rßÔ2%є侧Âã‰gÞ­ÏbW—죬ÛB”ƒJð<Ì<ìœä=X—Á÷ÑïèîÍg1œAgȽâ ¦€M-Ø# (ÁµD–MåL¹GQÕtå.Ca`ËÔbÇ>ÚµˆŽ£Éy gá3•Î?q;ÿš «³Í^–Æ×AÔæÆgkg7/?xQ•6V?ýùý‹Ü-5ZøE‰¼ ×…+A MƒÎ<±‡Æ€ìá3"£,P[À`4ÙÂ}½æ=wÝAû_Mì¾9V¶ôøè»þí¡¿©3\îÌïôÏ,_šÇïþЭ?ó‡åpggqŸ/Ÿ©SË7’JÓV+¥¯¬—ryøØÃÛä çTG¨(Ó'ŽO¦ /Ìœ)‰²Cl`”f“£I¦­Dá'ôä ±^/¾º,ú!ÎTÆj¡ŒkœS›!·þÔ\sÑÅ››§´mBHyÙëw{VÛÂДêõ6¶«ÀÅõÄç>xúË£E‡]vtÑÙvCpH{Ò"# ƒ"9"²–ŒQÃ0¤N‘9JtžvD¤ŽàÄ#©$$& °%øDÉ 4@»oíÅ [g¢YC•hK0PÀ8H‚& B#ˆš°¦pËýK¾ó†G¾twÙ¶Æ@Ö79ç‘ĺï]jÅÏijn“T”ëX·wùÒ[¯lWO=òÞ–b£Õ#ëë÷?|fã1émæ°sÇÂso¸ôºëÜòÒ»/->ÞÞ}Rÿâ1ý£»q÷{q=ÓâÕD™n£ÑÔà.°»ÙE(¡w9.ÅþëpèZê%Þ|Bò> öódK%€ŒåQ£ÎÃ{K•“¼!s„A».0Ó˜†9“ÃæX1 Z‚zŽü<Ë-F$FÎxrìòž[_|s×¹¦®ë& Š^iŠVàÙãÍîKŸ÷¹ÿ¦¾ïô|Q‘/Á/Aë@cá»°%lk…õpbÆöPúù³!$DÎ[»íþæu³¯À7…BÈ,šãŸûÌþày¯ùýÅ}Û$Œo[æú7ÿêÜÞË;ó{¶W|ŸÉg}‰´’fbÞ±kÞß³Pöw¸þ¼6I¥5ܼêzÿÂKRRѱ° Ëf´)mBžÑ¹u©“Mù‰¯ÄÅsÅsHª6¸È4ßeWÎI¨,V#žj±ÞÀ¼ðGÿãZ*MhÖVóe!±nBã‹N¯ß‹hL·\oëK¯ÚÛ>õ‰/ýñ'ãÉv±B‘·×HJ°¢¾‹lI!¨*2mA ÌPj´›1U"›³Dµ çP œ‰l@)¨!°%- žƒ¼¥G뽇vlž™¦Dœ¡(,¬òö†ƒ0Œ WÀ @Ûn0HŠ-ÅLpèå75Lm¬ “ªv\ÚM M3ÛÍ,äÈ'b»…hÓÛwÉîÛ_[­mÜ÷ëw¶'bÁèV(®§³_\=ò¾>÷ž~ü¸ÿ=®j\pÙw¼òÖë_z]oçüîKøK_XÃÿóáñê§dõû0ìÃÿžµm7…ó³þÊ@fùAÚqˆûó°µ.Ì™ .v³ÁUcÚ©°;*¬vJä9 0X\&›a~‡1¹FæaI²¦ê-æ–Ðê)Y=‚õ£*:„ºÂ±€©µ/ÿþ7÷@[)9Ÿ&ÅdÎûiŠKEïÒWýÀñÙ—«ÇŽ ç…Î@§ƒaJd}ä=°‡ï ì›©%Y«$`6ç}UР¦þÍíïÿÜŸ)_AÀ7^…Ãß}ðƒÝ‡—.¸r¸ó¼;÷ ^sÙK²»tAÞ_|V6¾‘ˆÐÈÒŸkl±¸xðàü];®ØSËtúÔYM³ï:ŒÛ.£,kH o®i;Uc­ˆnœÙÄtMÒLKØsØU›)œCw^‹½|îTj¶‡cgq\q¦‚&üä{þøŽ«žûäÉCJÒ¤ÑddÙvÓ¨L)Ë:Ív]¼ûÞ÷þÑï|ßoO¾Ò^8IJC©èv`< #g(à9p=SkÈAc…LUË ¨{ŽÃÛ–Kk"j‚ñLQ2!$õžlÒÖQcB0 F)‹, 'Žl‘QaeK¹’5à(ã TlˆQT êÐLõެ{Ëa—¦[õxÚÑNÃ3VH©6U‰2¦ŽKMä¶­´ñe>IŒ½»Ç÷}ì?ÝÙži ¨G0ÆÁy#:LkÚ<WÛ<¹z|uóÉÈ[;ö ^~àù/>|óí×?çæ«ó=½sy÷o¼çÞüÃ÷ÌþòüBÓ_Êœ9;?€æqä%QÛPqÛèš JC¿†v$'*.-ì5›kæ‰ã¡Ì¨(È&í M+ nG{]šßkãXrÖnýE-çys$œÈEÌÖu制˜ma×vïÃtŠÉ޼ï’ïüþ7{IÎ{#Ƚ˘IÒ¸ dí¢õ;^ô¦{øøžéÑþ2õˆ®׃0Œ18CQÂfÈû0l»óÌjQ»á‘Ùw|àî|B^ñ÷PåoŽQz¼ç—^}ÃëþÏ;Ýù=Ö?c°;m5þe*ç§Eä¬[På¤ó(C.mJÓ¼œÓ°‚ÆêÌFë¿õþØOø¾×g14aMs…)@™V#=wÜ`÷fƒéD·žlgÊyë;iãHr‰w¢ßN'ŒköÙüî×Ý|õó®¿û‰ÓÍd¾ž¦œv<òé÷ÕJ;.y¬›[˜ :sÃì‘Ý÷á·Ý³à¯Ø}ÉlYëÓve–çA)5­ZìÚ&­ ¢EæÁ_ Ĥla3dl¦6K.eÙæ«%”ÐN‚G5oÑ*r n‘%$…‰¤SF‚ºT5jsÒFEÁŒÂ ²I뜴U+ )ò„vÛesëèý,ïžÃtê]7Œ§I“G ±æ–5AÈh$áH³0uÏÙ³÷†GÞz'R ¦R4äŠíF7yH„±ª%ò–̽²òàÚ¹?ÿÄç²Oð<ÍÚµtÁžù= —îì¿àÇ/²åì©Õ¦–‹›?øÈ¹üÜ£÷ßõÙûî/( Öú|nç…íÜ LÄJA5¥ þ°Ù³¬ÙÝrAáVŽËCw£(i"ª¶ÐNÀðvM&B9Seüœ—ÍêJ¼ô…fõD=®±sìçá‚Ngºº†å “º&e k­€ 0IÄ’¦…¼È™jIûØ\õúßùý7_ý¶K` ¢Â: Ä Û§rHjeûiŽmf'hŠ-Úä¶üÅ÷½åÃïF÷Ûϧr_ÀY<ø?~kaÿåároq¯Íž…›ZëŠ^5Zqeß—ÏÔéð›‹ÏŠe¨ª¦ÐެNDLÖ()q‚å#gòïWsjÝýìlé§Tâ‰û0Pç—–ÚaéW&¡!Þ:‡Ìñò@ëø(2ÀÍãî#´¥Å´?,ºû.¸ðêç¼äÖ¿2ßV©©UঌýÏý¹·¿ùÀ?òÎrn¹¿ÜÏ»{ÊQ1[/¯û׿¬“Óåô©Áde±=™­Ÿ6Í9­§Ö1II›¶µ& ZÈÄa&yÛW¬¶äY%(r´%·m²ÂpbQƒÁ‰Fôp†Z£Àª3¨©¡žˆµ$ä-Èhk3%Rù¶U£f@€î®Ko¾cºõÒÂÆ$J¼]á«ÑØž%”¥Kë«u2W_÷ºÑWNMQò@=,# ò )À Œ`Ã複#«ÑŽ`·ôÄñSÉ©…½XÚGÝ^G5›az®é·¶»ÿùaÚ0šL(÷ÿý}dŸªŠ¶ÝWÄïy{þ÷ˆŸK´ß°·@4óØñ>ñ‰têhR‡+÷Ðë™qL »hi?¯ NÙŰk/MÇš*âu³z&^úÜÌù™IhF¸ò*šÛ¥gVtcYÃ>L‹ ÖððF5›Jѧ©ª'Rޱ­+1Yæ­¡-ØäÀ…×\õ™é‹þäÎOýüϲ+ÄX³=£2§yI©%vФP$bJLhiM®ü胯¼ûô«háâíSï?½Lð÷ò}—½è œ/̳1æh~áýßüÆPõÏîðÆ×Óöñˆ­ïkB¨63.L™)+*œF¼õL_{ÛžemO<ꙥá@†²ÑV bëTòC[ö´ ¥¼CκõioÇ…ûVt¯X¸øº‡ž_t†£ l©!©6 ?òËïþo¿ú–[Þò®Ñ™“Ø}(©É:ö^sªÈÍÉzt7f÷úѱN]µ«íl«³“gQ“#Š m‹í¹uà hÅXôÀµJËY¥UN¢Ö’iJ‰‘Œ:GUÔÒS$RÓ%Êgêu „¤¨0¡Vç(X kMÉ[hDÓ@˜ó棸öòrçÞ¤•£OäÞÇ&æ¢Ûƒ);'ã·R³ÐÉãhDJÅÂÜô _xô×þ Q@p ×¢(a<QZ؈šÑôà† 8ÀÃZp‚ID¬|QOÔ“Áж˜uÛplµI(*to°ž¶} °<ôP¸è4·Èû§½¨Ît}¢§ÎáÄYYÁÌól*K=.&¾êÖ¨÷0Õ×hHÊ!QɈœSµ˜*¯8‰#ŠÕçhÁ4` ‰(¡^[%t 7IØBÊD%`€:hPp‚«Ä(bP)‡+ÑÂE4yB+¨jF›`ÊÆëEŠˆŠÜ¸ŠUŠ26µ[È›Vú¾¤LEMîºEÌÛñ¹/ /X§LµkÑëÀ1L„ÉÑ$T-²˜PYŽÔ"E”Æ"¤íGÍ’¡è"Ï¡e„éQhf€U§p‚N öÔzš5jÞ/ éœæi:ïLB9ta‰rÑ¥.¼H³)ý¼HÅ…“{»zº–N$(»èô¸™¥®'3À`]?Qbé²ö]‡Ó_ÆÎ½+ñÙN}áƒxÕÏü°g ¢¥õÆùöüE“‘н첋þ\‘¥Å%`׃ë EÈ 0‘¨Î*Ž2ؤƒ®>÷‹g^udz3—Þžãø–[PÎàžO¾oÿU·,°ÏR²4Ã¥=§þìçÿ«v6ry÷ÙœþæRi«3íèØ±û¾0^9.†É…õžsÕ'Ž&—c)Çâ"5µž~$MW÷É/k͸Ѕíw¶v?ÿôåoؼú§ãâó}gî¼·í7(fTqéõ/ûºgæý IDATŸïüÉåËnÔd¥õå?~óxåÄcýÑ#}÷åǽ½~jéË+ٗ׫ScĘ‚jDŒJÔ2[ÄIK""ؤŽ8±2È;nDÇö÷¨@Bƒèkh{Êx›Bꉂ(+¼"0ÕªÆÁž‘¶-Š€ó]Ê"¨b0cÐIЀEœßuí^5];!“™´5§h YÙiÎÕYÖ©€:·¼8ÍÉæ¶a£‹&+ãGfn†Ò (‘Z Ãq¦=‡²j0ÀÛ×ÅvºÎŒCÑëÀ;´2G M@À‚C%h&‡í¢& ‚¬¤"‡‰È:”w´3Ç&ƒ‹:èÂdPƒNϤ ”К0Ñj¬Ý%ÁxElÒû]5’^—½ÐæI,PT¤F©ÕÞº ètÑlaï%˜»›kØyóܽen¼ý–%«Ö@F"RR&R¥’†»þðÎO¼öÐWÝDTÀZ0Ÿ_Ç‚"´˜Ôƒ•tÕ}k/ÿÈã?|×ÙXççÍÁß; }+zº}uí«º3\îÎïrß[îkeì­ï~û¿yñcŸ~÷Å7¿1Öã²ÿbXRÌ<æí-—Jà,R€¨7Y5´é£ðÚCéõ]Î'Ro¡7¤v#=:RÂÜ‚›.]8^|þÙÃoªößÆì ¢çwž¾¡¢ ‰ø®ŸyûGÞûÎëßô¶ÉÙ£Æz÷H#g¸kíÉ/ÉÚ{Ö£ÍêL+¡‡èÄnÆHEFh¡… ƒ8rÓ* ‡g©b­’P …¨0ÉJBt$Q»Ž‰´JšYXE€ÁLá d ¤È¢PòTïh+è(†r IÚ–ð^UA¹PÞGîɋ ‘ıÆj ‰UªÑržài&!hiQ”ÜV:=-óûÈ÷Ñli0˜÷qîK˜›Ãw|/V߇³÷jÞ!HjÉ2ˆ ¤Ê¬0@½´GW]µÿá‡ðÚÂÉ@0 „Ñdn%\ôøúMŸ?uÇSí”õ‘HT蟋’|º}µtÁ•Ý…ÝÏVú`çÞtû~þcöŽíBšmflö ùߊØ:Ÿ÷U7¾óGÞøgkgNñ‘è;P·ð åYµÅï¾·ùÛ£ry®×õ@VÇSìd2ÝìLy5xEsÕ›tpRUúZ/¸¯£6âÀ ¯[þø'ïÿØž«nõÄØŒ­ÑÆÉûÏ<ú™Í“_Z®Æ‘}`£ Å©úEv€ƒÒ;‹,ˆ]ŽlÃdr?mZ*ćগ_Û&¢bVX:_øZR9®„Ši&q›cÐ6ÙFØýøúŸ?õšG&·R±HÙߟ•ÿ¹·O·¯¶ëgç‹g~{ô´l›pÇO¼ýÞßy÷»ÿ×[Þò®É¹£ÆýòÒ¿˜³4U"zÇÿ»‡o¼ïȧ?³rßç©ÌÔ´®á”Œ?µZŸþ¸…äZ:½dqçüÒóv^ûæÝ×¼‚\g««ßòãF&â%?ö¿û3/˜Ûwc³¬· ©>ùÀGןür5:Ûô¤‰ÔaØ È!}ˆ***Íj“ÌQ U(ʤJhÑÚ ™j„U• ‰Ô2™VλûæDJR!#!ë(’FRw1MAÔ!µ@Áì4E itÐu¶‡CLï}ð´_³f³;K›Yf“!Iu<ZµMÜR¹&ãb¾lµí0¾ÿdýhc<¼‡uh-*ÏÊ ,Á{J*À%ÇiÊ0S °G¦ÈEŽ”`-¬&P‚·ä FÂzHžjQeh‡(*¼f…©›d¼AHÒ÷dǦPuOPdTTc9DoŽ7×¥©ÂÂ~3§­ ßAeiFu*s=S`éÛNcÏ›l7 @…Тô˜L‘¸á5ÏÝÃ…u•D…¢x…'"…'ÍA#`åäÊá;b ·tçc“k\¹å¡Û‚¿€ ‰*ëÇݯÒvûêÄW>ÿ¢úu<{í«m™›ßôK \ñÜ>ö§¿Þ[¾°¿ãÂí¤ôL¬¿UQ®4´ÅWìÙÑEû¯¸ð‘/~<ܦF)Š DDìD‰ëô.^ñ¯Þþ–=W½”Œ'ÕoŠ-Š¢3Ø·ÿ]ø½=WÝÞN7]Ñ›n<ñÄ—Þ·µþH³1º~oÖ£v€ bŒ ÚihHä;J%QÒZ >  D¸Èhfbp&°¤‰‘92Ì1ii¨£ %†uD@Æ0 Nà3 €8 _²Q$AN £ÎÀ8‚Yd $ V¬³I›q´MoÚÒÖ–Žf²Õ†ÙR“SÑXöŠñ™Í²×Ÿ5#¿&}èäì èy 3Ø/Èb xkb­ž`½š ”žÜ %¸gÀ€t2v©Â\ÏZ¯U'*TilPzø1’Q ûD ’Ô€Uß"È œA§g¸ÕÜÂw ¬Q·ÔÒ«f%u欴bæ̆ë‰.-›²«:Ó¼à$Òɸ?ÐPiÞC>àj$;öšªÑíì `n\z2´M¾÷% ¦¿·íR‚UXR(zDwù‘ß}Ûþ÷ÿ:øåÁi{ùC[·ü©¼ëÔ›O¦[Ä Jçýο}mO_‘-ö_}[iÞ#~ÖZÅ@1ÑM×Þö=üÏßÙÎKì¼q_í ñ/ eö1úˆ2…¹]»ö.-õ/~áVŽžœœ^›m®7ÓµˆJ!.ë-î¾ìÂk_zé ¯-{‹Û—æßzâý*5_SH¯|å3›©W×:}hRb«>vÀõ°z ³1r‡öÑ_›Œÿ&¿ð-~÷ë)+„¸ Áâü¡ë¾ã'¾ûV£—¾ðÓ“ç>pú;ŽU7‰Àmo âÛþ{ZŽá >ó¾w¼ô§~€ÍŠg75žÿ¬&⎟ø'~îEüåÓ žì ¿%ÑÓ/ÄF¤{ìžÇ®å5—|÷ë@ntnmrîL3(¤.,î¹l~÷%À·4òòÍ¥@û iI[g¿o¶y*Œ+y‰n ?›CK 5Æ›¨+v€sZt@†B«¦U àAIÕzbC±‘ *Q·šE$ @-5V3"CšÈ11 ©’e“”­&&Ý^4­Údcêj‚Zª 9Q£!j¢"ÂZ@0­˜}ÿá­½^cîþë¸r:Ífv:EÛ¤ÜÖUv&“cTdX_àýC'·/ WÖ¢W@Þ¡×¥¦Uë‹ÙD ‹,ç8–Üzm*ä¥M0HàzJœ4æ`Kô ô(nm[ æV‚¢£( J‚Å’2†Ö:ìB *t åpj½"m_ɘQÐéUˆ#õ‹X¼ØÌ¶$nÊŽýÖeROÐÛ«)PœF½EoŽ`•þŠyáÉ Öð>ƒ$ô—‰ä=ò£öÔ Ígùlá•¶ÿ|¦n²{W18¸øwƒŸzË{Wo9Q?]æé{bzV¶ò¶ÛWÅ`ié‚+¸g{Ôâ|GA1¿ïu?ûöÿúKoü‡Ëž-&Ö7×?XPªi•ꢷ¸·7<ŒK¾ê}ÛÔÏÂ÷Åü¾7üÂÿþ×w¾óâ[_·qüÁf² ®Ù»f–,çxV«-Kå10›h]¯?5ÇØ"Ø–(¨0:pG´g«S=MÖ0ÁedI+PÕˆc£—D•‚s2QÀ ©l#¾ˆB@ÏslDFÔb0+`!`ø›_vøÖÛ ¬Çl M½znzì©l¼eÂÖÙõ5’^m¹&Ò™•éÙ?¿NWœ ³crK$Jï­Ö9\RÃd¬v3¨ %]ÊÆ™d=òLJeÁ•è¬R%ô;D™jé”蔺>ƒ4”€aKûìÊÙ¨cä(GnU¦ zNê’îØcû]OSá1ï#É3:gT’èLÛ1uŒ­B;¿eÎ"%å„r×{Fɘý>Z‡Ì"¶ê \Áƒ9aÝúuÿ6××óÇšk?wú;Ý1¢CÆyvçïu¿í³î×êéöÕá›_`¸óÂg÷Œ µk#Þôºko»óéBÚ8ŸužÝ¿÷OH¡%…ª pþ1¸=óûì™4 o|ýÎOßyüžÍÖϤÐ@±£o;˜e¼qd¢.•TOi:Q”޲’¢J£ˆ-¸U’C“+™ÂDX%xušò‚¨UQ4`•Tµ, µÚˆÄÒh“lYI†¸Võ–ÚVZCÄjsR«1"Ô’Ò6Ü<"$ wøÂ€X\tº»ìõ—ª {ÊêÑl0Úl6W·}°™œ¨f#טöäcHFã0h I=@ À=YUë@h´cà-…-%^¦¢HÖemS­ÐDôJòV›V…1èÛ"“:ß"cÝÀN¦)¶R0 ]8èN¯G™Â1-9í»T“Z ïÓ$Ak¸-S©j±{Q‘ΓÆ‹F„’ÐÒN»¹† Œ¨ÝyÛ5” zÈ,GXB^":]$H•ÈwÁ9Õ­?×øüÑkï:÷CÅ‹Ùü¿Í}wœUåþó¾ï©·ßé}€¤¥*   Æ(fÅ–ÔMÓDˆ¢f“Ý”_61–Ub²›²›ÍFt‡l“¨‘hl0"¨ˆˆô™éåÞ¹å´÷ûûã ã0)sžÏ|àÜ{Ï=åžóœï÷ý–çeD§?(;úÂWç_sE z³ý‡¦£édó^®è9è8ºš8@Åàx3G‚–‡™×Ýñ‹;¯`’ƒ8˜lM¹­6 ê”My¦bÌ5a3ži‘V†(ÀcaÔ)%a;LdIåP èœÁ#8€ Wc#U…p™ë¡Û%LTx*¹€ç ¨0×óhª¿[x ˜ä\•R‘Š'p[%Mp""bŠJLrÇ•¾¤x* ƒA ã·ëë§–](˜FLu@eÅn†Eª+&é:Öи¯ýÐîÆ]Û¶m‚uÐwxl‚³Ò×à©5’ä:EÊñA‘…¦ f¦Æ„ ¤Fº&‰p¹âʤ E+¡T@WÏ£”„Lbt¹"U·¢‚ï}Kê16m0ó)œDWŠBÊÇ«°@ùXµ£Ë ˜B¯$¦HÏ“ªŠ’J…àÆ x8_t´¸ª"£ü8XFF ’-aYÖ†i€¹^ ÂíŒ ™ ‚„b‚ H †E#ÉxŠox¡}cÛôÝî2£dœéVˆrrèdàW_ n÷Â1žv%é¤Pô3ì9>UHïŠØ¹€ã¡»³%.èlª÷G=ž‡š©¬DQM×uAžtˆ¹YxÄ͸4tŒe%œ,X–4° )tC:i™q@œq0•e]’á p®Æ¸ % rà`ð ¸’{IOÚ:£Œ”ÜoT$TnHxéJ@yŽT YŒÃQ™>‘om¤:3•EŠ©wµ·WâA#l t¢HHË‹EÃQÖˆü²}#'ÌùXãþM;²*µM]q X*Š‹àdN#“²:,2ª#kÃìa†FÅB/a°Á=‰`Œ<ɲR‘  ¢'ƒd§4Mè «¨Q’ÍžL¹ù%rêB1þî–lÈô¼ «E!7ë¨6„®–r{R^õXµ³G¶·ËxŒ‡£JK›˃We0£Å¥cÁa^<.ì¤ 9SœÉl07+u“‘! ³P4€G!LÀaÝNa«;îýŽùëêvþå/[æ~ñK©¶}B5´@4ÔE¿ðÕœ›¾Áë^€1ËûБ.Ÿ¸0ÝÞ(]c®ñÜaèl§÷¿ý–çüN^&d’œ“ƒ Ê$ jä*,C‘"¹Ý-UÁ ´(Üž$2=C%/Ì2æB2@À1˜ÔÀ\&lòÀ¸…‘Ù$]É] ]“ȈÁÆ8AZRU9q©x ŽŒWÀ“Ð,„DsKÄÊp©Â²JÍéVU+JA8¨–W7ÂáО¶6®hÝšÙc%G¼¨ì†Ë‚5‡ö{Ùƒu"®1Ç£ÊQjkƒÓÑUc=ÝhK ¸.¥4!nP Îô€ÔŃbƒiÌJ,˜¦šqœ¸‘ÇÔˆp{\èŸø˜HgMp¡*VA ïÚfcj$Ƭ¯âàØ÷º óP59ž£jÌ’–zz¥•Äà…bÅ æ*j¢ÑÖ£,^D<%Õ¤¬‹H€«Ï Ãq=Ó„¢Àu¡™œYÒÌdJ[R5;;gìè¾´‹Ovi3þ4wÏkkG\”ÛÒþðUÕ¤Áì^€&‚íâòÏ?ðæ²ïüqõÄ+ïH6爵Êã`ÈìÙÙDG£•N€$ ÀkKy̆î’p˜`iH( ”tÊu,r2(!'7McZ,Aè±È‘P=˜ª HæõHr‰8Tä)ÌpR¸Æ„NÈÚ¤4@uxJJU! rUH&£ F‚ÃK³L+ ÉL«4C¢<Ùä Ã'(é”k((œ&ò+yg·+E((:ÉP´˜#€Pä‚+PÂŒ3 1æYž‚œC‹„ºÝ¼ŽLõ¡Ìè=]Ó¬YÝr„Ð Á¼Š‹¯»ã·?¹»t|oO.< új»à))?Bû·ßÿ›ß]>qa^ÕD'“䊖#Éßa }ÅÒsr±££AdyNFºàÿóT®§@Ä,AijžÇÒ]^L0i’f2MÊd’i¨ bax KØdwsÀ5 Ä p2EÒcŒW Uʸ€KÌ… 0•ëšäÜ.¨H@`œ¢̃Ã`e™ÊHdád&‡ƒ©Áb@i©ƒ€´zZS£FMFgs4¤’ëµ´TÃ&ŒÝíMºe§Ã†¦(bß.k÷;y®®(¶ ûmnHsBqY9+˜oyp¡©rÔ 7‘ðäv0§Úë‘ì€e#“†–`‚N‘" šäé$Ø]E@@J šO2èPMæIʶ¢çœ&™®Hæj:ÌB½»^¶} ª¹nl“ºdJà$]˜„cÌé’šÃóF€à"ˆˆ”ë ÂIC¨ . šFP¡¨œHO›ù©l¼Ó)9Ô=î@bBcϸ -_>–I’,ë±ó¯^¹õÅõï>óè´eßK¶ìåª1èž¾ðÕ¢/ß @ÑÍéU;§l{˜¾då›/®}Í7/¿÷w©ö®êz0~&{ê?Ðè‹öõ‘Vpˆ ìJÏË¥ÂÏáÃà Fàœàö¢åÈ] {¢Æ…„ã’bè6d€l.²®ìHC“½}<†Îm)Ó ²3`.Š@ÕYOBf’Œ,4˜aÀ³©‡%ƲVa¨ÒN »ÃS9ˆ K¦ZÄUJ{ÄQ”ÁÐYÊ!(!€ƒ 8 ho·à0áÒù“GÖuTÑžN{2ÓÔÝ 0ð4+kw÷t“›nO´‚¤ràÐÈ™W$V$ÄŽqátØ™îƒNÀ@Ó+›Õ—ËB!3!-SNê"ÍÔt¸Ô+Ÿ©Æ3ö¡]èi—ˆ—1—(ÙÈœ2%Ž´ºbœHj À‘ ±Lšº[á2b BÀÓXw3Oìq…i0 [d)àY„ yG‹+¦òÉ"Óíq“ ç”öœW3H8EòVZ/­Üî…86%Áòð¹ï®ý浇é¦Ý¢bœr=P¬ßRßòÑ­»ëjô´54° @óΩöÆÞ½{îÐxÑL(šapMƒ•î}¨p"›šeÑ0­\X³ Ó`Ì#Í…t¥eA0ü6…õx”I‚[ˆhÌŒ’€ô$dªäP8ˆ@³™lËÀ³YÚ‚æPaŒ㬫Kò*UúÀÑ4x*¹:8€4Xšô¸ + Urɨ xi –ôðÚ6ú-pÛê‡ïøÂŠú4=·u[ÃîÙDcZHUÕ´Tw—ã8\!ÃPm§žó¶²øÖ” ŽëtQš‘×-9îãÏ>~ÿyó?ÎÜ®O+mõ<}0n©Œí°4fVëeenÄôir-(xNà<­HÇ#¸ Š áºF®NÌEO7R 0•3€’ÒNyL…xJTs©É¼ ƹ¬- …¼hˆqaP¬š+ar² pÛ%U ¢C ÉTÁ-'$ÍXÂ.=”ÓØ3ewû¤NŒ‘jQï=§ûI]bÇJY.¢#fO™íæ'¿½hÕoRí B5´`ìØ7É©ßWª€.ðÚúÕ5Ó¯t²©Áí^€ãVu9”ð‘Žt6)T½Ï8š¨G³´§­¾—ŸïoìéhôR&Ìý€HAùŒK ÿÊýå•U·ÏU$ÛŠGž?xçx\(Z0R\¡ë+ÑíûX ‚ç,¬ËXše)„ÍlW Î`“t(¤r¡ƒs&\KºiÂad3¤2HgÐóPe8³!3ÒIÀ¢°‚¡ª,‘pÝ,Ü„Œ¥¤eùÝŸÌ8oò¦©çê6µjÇ*Ãù㌘$xD|Î9#’RºžIBƒçë Ib`Œ>ëâäö훇Ϳ:¯Z;X¿yû‹]‰÷„Ý ’45O|m‰ªê³YO#Ù-p’ ]© Š X` æ2rIËc®#†pÑ CzYæEá t¦¹ä:Pò.‡Cá8‘覢á` º»)^ÅÀjöâåÐ ™É qR5ÒtƉ‚VÐiWµ¤F7&Ç7ZS:­á¶(Ááø.;\D`£ãðÏv±èØzÓˆmúÑ„+ïp­”¢™BÕ{Úê[wm:Þ Ó¼scº£ñxŸîݸ~À;•æ9ÙTN„ÖãDe™–‹é×øŽô?_ñOO§;*z@7ÃGµéý©Žô#Ꞻõ"eUcg¨3=:y€Ê/ÿk¬°¢ï‹œ _±’ñ#¶:4XáÒÑì-z)ÕÝâ9ÙÃz­”µå;mL5Pb2xdI¸`® f€ƒI¦0))›$U°  Uçd+̲Ñ"²YAùaF‚l « V *±`„òò¹E[»«»ÌÌ’aF\€y™nØ6“–4DÊ#xys\ EÀÜ$qfGio§ùL}°{Ò¼Õ¿\vÄã[Ú?Ø{À5£ÇÍ!ðÞZµÃ'H½%0þC–}øâÈrTÆpÁ5ßxëÕÙéŽ}ûºÒû7¼‘nêt“YF’€RSP£ÛÒ OO* FIá`Ä<.–›µ!9¸N‹<(ª ¡é̶ÉÈ2Ï"5ZÒ4HÀ,@´„[é¦("¥JÄ)¨9 F Ëd˜j*’ë¶gJ-ÜáÆny·3¼!=ù@rl’ŸçRqî?üTN²ŽÊ‘ˆT._ñÀšGVíym]ßûÑ‚òêñ³Ž÷­ácgĦ÷Ó/ýë3Ðð–íéŠVù%I9ûÆO1ÒDªþ›×Ž9÷¦ÉWßÙÓ^ïd{g»ëÖèi«oùàuøü,¬è¿0qÞ?ôß÷«f>{Íz>ü¹ƒûÎ]Y6|êâaç/ çW ÷”ܲáÑ­ÿ÷DÇÁH "((˜Q¨Œ6¼÷UÚ$‡åJÛ†©‚-NW IDAT ½´w˜×M£€Ét“y ÙÊdàYˆ¨0tP€Yb=Pà0bE™e“—t!mè‚ô¸ Æ= R%æÂõ+lTÁ;‰ª7­1ÉÂ)K>y›pØ- S?¶ãwªÐd×ÿõk4sbwãŽlO›geý>VøL•×2c‚ O“ ‡Y tVž ˜‘ψK= Îv^ðÀ0ƒL ò§}¥ ¤Š@1‚(_ÀÌR˜Aæò‚Ξ!®ªž-CËx†å…-îqòÓTÚ™-OyÅI»(é•ñ~m6ŒIÐi?†t¼ÿÌ#Û¶nšó‰ÛâEUá¼âcÖ;°c—g}ÄuóðËþýŒkï*61-Ê‘ý¶‡p´òæ•<þðª]¯>4Â/?uÁÕ_É‘þ+›_¨­™:@^É05gé,R"VXiõtõ¾ô ×Bóz]PSùð‘ý13uÁÍ{w$Ú¦“®´I‘~úŒ8@L0HI m®|¾Ïw³"º‹"“òxEŒ).дeQ†iÂæ<–R²‡%™ßõÂú)‹r[æƒIÈ+*Ï$;ÂåCV @áÐUö«oÝèdìëïù•Žf3Ƀ¼ÕøÁÖ–;zºš³én×΂û“jùêñ ‚yÉ–4¨·°¹Gšq“©YÊpX€#¡·#OcÃãF^Èhf3 £EÃÊò/þ}8£_´|e<œ—_>Jë«uë•sáÀà q?šQ‰”BáîVÿ˜U|s¯=<Ž’"F–Kš²äd‰[PEãZXj!æfyýû^g38G4G¬”´ãýW-áA1Uày28ZÑJøÁV|LÕc϶ԗ–×n&©h†¯È?à ªÀ–×_pÙ­ÔÁÖ¸é!0Â':tU€õ- {J†GÔ@ކ$Œš4«»iOÑð‰CF`Æ +ØSW»õ¯ë?öùï‡ãÅÑ¢Ê@8>úüÅ]mõ-ûw¶ì·µqg²«)›LXÙ¤m¥œlƳ\’DDRºyŽç9DŽddIjv¸j„UÍÔƒÑP0¤é!#KÆ yAeUiõÄÂÊxqeaqYż§ÿ㟖½÷òÚ韸³»µ>˜fF˜?ÍPš$"C‰Lœ>çoO=ôaà¯59×1ˆD&!YÌ‚ç÷ 2Lð|éš›‘<èe3™©¹*áÁ*í½:KZTM”£ F4l³ÅE#®}»gçÞ?üüŠ;.èn«çš©s;5WTŽÝu™t²dø„hA™–ÿ¹¹6Â'"°"°aÝêÉ ®_:BÕs.ø. yE{Äö$ (Yÿ«o/›»tŨ EòK@ŒQ¬ 2VP9rê¼l:édÒ™tw:ÑÞÓÝšîl³­ŒçÚÒs=×q²);›¶ÒiÇN:n–ST#-ŒVD Ê"ye¡h~0–¯"ý«ê<†ó.¼ö†;~øäê{ ‡M6uQ¢å@¬dÄ+(Ðà‰{ ÑvÐ Å2é.ó]÷’(X:À@†kŽD.*à°l‚:äõ$ISY0N!ÎQ¨’)êî–ÓNyùLS)Vv &ëÍï9n‚cÖø½öŸøòWúâÜí}rÜüev6©hC4£€o~ýð•ªrWäè#×Fø¸æ *Ç/Ô^uÛÃèíf̹Mð-ð–× =—¤ËxnÕm5¼¾uëÜQ\rþ¢›B±"=joaĹå!”űkKˆ¤ç:N6m[i×¶ãBÕáØ1£#‡ërÀÉ.ºök»·½þò¯î0lê"+cê6oêñûÎo¿´~ö'>ßøÞ–Æ][=×8˜ÜÖ…}ÎúâùÚÜ2O&ázºÊR]”l§Ž./k#h0S'®2U•á(³M|ËF’byLÕÈ(€^¼©FÃßÝÔ~›>¢-º [»0Ñ—¯|ðÑ{—UO^@Q 3÷V9òýÂWÆPYrj„QÚwÕéh(^-(ÏÝ@¿?$!¯¸<“ìÀ´4(†‚_}ëFÏq>öùûèpÖ1Ö«ìC'c\Qu3”ç—È+-(SõÀÑk`Œ3Æý<º$Ø.>ù­uÓ.¹öå_Ý»oËó™D›Nºv&§'Þ‡þì½êK÷ÏøØ'«¦Î„óΘ?A>øÉ›vS“0ƒê,½—{ÐÕ ÏAÌ@\'C¤h³tï €€fH“°¡W!6Ý<¸S6ou#¥<[=î zçºíÒØ9KGN˜¹ùéGt7ïu2=¹>_Uà/ëzÃWy%Ãrí?ûè3Â;^~ €c¥ÜÃu2gŽãXáØüÂz?þ¬ê¦22Ñ„âѳ»›÷èioÌ)9ƒ®`w]í®­¯\ψ— ÓÇVÒe'DßjGqõ¸köÁ#X>ùí^§:›ÒÝ-v:á9ƒv‡ì=oú¢xÁð‰³¯)>N14‚{xÒy¶Gbm=Õ[ŠÊ¹’"Õ…àˆP Cõ˜ãÀ ŠH„[ ¤È0ˆÜ„`% &©]-Øóg»¨œSUuWÑâ$ƽm}_¹oíþ·^hÝ÷;›Ìi+¸¾zñ©Õ“ø–0·AÙþðpËû¯¥ºš{::ÙÔ`mùØÜ?×ÖøC…܇¯|Hº‚J]Açîº_}{Ù¼ëW†óJ¢…ÆqØ{ò81WOÂvñ©o¯‹•?»ú³©Î¦TW³•Nx®u†ÇsÍÞP¼Ø„‡Ÿ;þ«Š+'aøÎ>غCÖ—7º+ëäˆm-LU•³ ‚h”òË%¥{ˆ6¼$¥Úññ(¸\oI³­ë2q©Åº=|j.åB$cÌ•ÑÊå+îåñoH¶5ع4š@Çî:= Ç‹¢…åª1æ×G˜wÓ¿ý®.°wSmSÃÞ±³¯ŒUšá8ªg•*Ð^¿=ÑÓ/­1Ãù9J²ë xªþ§«®œñ±ÏN˜sM$¿Ô ƆX»¯?$„é ¯}ýÙ_íxõ7ÕS. ](j.¬ÄñØ«hc¼xØ0/ÝÝžNtIÏ$ Ñ ÚkãÕ$^Lâ¥NúK Y\ĵšåkÛéÍz¶¹϶áñvü9‰5º9­ûeÃÜü,Ê&0oLMKÕòNíRÆÐg9$¡fâìw^úMó÷ËÆÌª&r¦ýbªxæg«j¦.Ì+Î+1‚9Ÿ¬?ˆ0rÒì§rgÙø¹ ÒÌð ÜÛǶÀ½õ‡Í¯Â;{,°Ê¡+øÝOVU9:pu¶àH *¿ñŸ¯èºúÌßÐÓqÐN'Hòpö "#½hÉ—Þ¼jÌŒÅÑ’R¦0À\âàõ»-¹ðãù¹7¬»é¡~šÆãYñ‚Ãê%Æ•*„®×=·Î+c¬|4‹M5ä¸ Š ðMúé÷^~2ÕÙœêl²3=¹è¿SX²~ç–—GN]@’˜NäȃÀ ‡zäøÌwsò3/]Úðî«ðу}-ý¡ï¿}x×ÖWޏ:‹p<ˆHå7þó•twËKÿ}€d{£•Nâpbö`ŒçêøÙKÞúµ‘S.”ù“ß`ÒŸØÚŸ' xOo"ƒx3uüôBõcx¾UFI> ©l*M©n2>&•2Æh@:Ãñ ¢•—/¿ãå_@¢e_.¢YªÀ›/ÖúÙ£¼ÒagåŠçb$| «›þïáI~¡Yquîä|މ#-°3èFØPб»î/küÈÀÕYíA‰V~éûk÷oÝÐËá¶z;¡wá#ÙëÃç0€Ê‘3ç,ýbÕ˜éF4.{gQ‰s9."®,d—(4î’ 2 rYL}áRõ©›há i{n\C‰•,@ljø@äŠïb. ÇÃ’Û”Ù®ýo½ÀÎöx®}æçÛÁ ¾ âü€'\á§Á…ãÖ÷úϺÉÅ~}HBÉè™H¶5РXW€žúÁ \ :,ç]´´?‡­ìtò 7«+È ~4{}ô9º•5³ÆN»"^P͈Ar_<›<Œ3ä“n¸_lù&~û]þê­X³ >ïTݨEcL!A \ vžè)›¾Ýº" 4¿><‚ãá+÷­ÝüôSÍ=íƒk„{s¢Áh8^+¬zÿ¹ƒn„X@rHË'@bE•é®æÞ—ƒG`.ùßýdÕ¤‹¯uÁ¥~ÅÕ%N ¶‹1‡9¼ýÅÇX¢e¿“=Æ=ÍNîÏPÀcß¾ñí—Ö/ºõ›'fïLœ»ä¼i‹#EU  ä¯m‘3Ödú[¯½(â{ì*æçÈrŒdeAªå9íˆG fLÞ,¾ØîN:{{OÙCÑèÙs¯¸á½—×èjÚ=ˆ¹?{4Å7¿†9$Sçƒn„Ö9©¼_ûQép%÷å“@‡;ûÛö¿[P=~°ƒ‚AWðü/îJ%».^vï9¸:°=Œ³tñ²^ûp0¯tØÔÅÝ-ûc%#2Ým‡vCuíàŽÉö†£ßßùÚJk³>þ¹Ê1ÓŒ@ä$Ù É¿pÉ3=];6ý¹»£’ql·Ü/½Œo¾Üsy˜?þX1•t²·mÚA…¤ìïbN4_ûØÄ­¥_Úe_à#+ùló®»ãÁ/Ìm¼°pØD'Û£hÆ™?aµÃá« ?ñUä¬yðä1¸…YG˜3(ýÚTÍÜ O’_\‘N´b,0t{7Ön~~ígøGœK«ãA,×Üö`²­ñ¥_Þýîöß–×L<†®ZÍ„™y3fýþÝ®À87U|åŠê¼Òa$=&ÄÉß4D”W2lÞu+Eß^÷§Î–} Þ¡¬`¬ò…$µ¿Fùºgí¡ÍïcwÞ´cɪš™K/1Ï¿¾Ù™|’;ò$Bù•7}íÁµÿþ½+îøE¢õ€P3or82|5|ˆƒ²Gcp«£ °Âѱ«®§»³døø!+Ÿ<¾~ãõ׫&Î?s3†€ ÑSÿä_þ‡•ÿŽs/puõ£UÿÓò‘“ÃñE3cCœß>Uø•÷O<¼êÒ¾@7Šv¦±SWbѲ_¿iöÔKnìjiÐÌO¶“„ï|2ÆŠ«ÇW9™•O¶‡9×­|}Ãúæ=[ ‡M²3I¡ÎÜEª’õ­÷” Ÿ`hzNg2î'ÛÀ*dž'W›p¡”žPÔ³¡õ[òŠÊS]-ÁXÑ1 ÜË[~ØØn¥¶þ½Û_©ç_¼äÆ/}kÄøéTÝÐtóŽûÖu4_ôç_}çú»ÿ cÜ`|hZ¬N*Góûu-{*j&УòÞ#ÄŠ*~ü†>#¬›¡Ü Êœ6ˆà¸øÊ}k¿~Ó¬«ïYÛyh7ãÂŒä³S”õS^xjõ”ù×È/qŽøÏ}8I#ìŸ0;,Ü,ú=Þ«ë½x ÷ëŸ×_ö™ï’çeñó1!%FMšÕ^¿}ù±ŒmãŽMÛ_Y?uÞÕÃÇ^pÕþ/* é&ãœûEÀ%ÜñÃuÿò©9OÞ÷éîýoøC¡è¹ãSõ‡?xâáU3] °|Ä €ëañ²÷úF¸¹^7CÆPiÙœ‰p^å ÿ¸êÕ§rù?¦ºš¤tPãœ1îÿ{â-øÒ“[^¬õÃWê(RœŽ6šªÞßÀögl¢µ¾qǦD[}ãŽM ïmL¶77Mù×+r•q~ÖokIýâ«$9ëõ“}ÞÖ¿W·ý•õ ïmLµ8ÿâ%³ç_qÛ·~꯫?ºÃ|Z{ÑÂÊ>þê=7÷ã0çF0zš UÀíªoiÜsÊ1Hæ×ÇQF8­›¡s°šÅŸ)«­¹áƒºß¶×¿—_9ö¼9× ŸrIß¡*šù!“e–Uqdøê\òŸûàáçÖË$– ¡¡˜i|è6¼W—lk|ïÕZコ>VXV3~F¬°lî¥W ¿ã»yE”_Ô¹8CPÃç+èýiÎò³Jæ\¶ô©_ÿløù—1®¨ɶúÆ›üÁí°±œ?ïê9ó{dM7>iOPãêJñ^ÿñg÷Þøõ_u·6‚13=×î`UàkV¶@~iõ €+qÑeKúƦ^rcgÓ~Ý ƒI5M qGÝÓ­þø§î­>ojkãžÍÏüèÜ4ræÕ%£.5kI8¿Ü_S¨ã¬Wç„ó¾ùAÔ~á+Íœu§ò˜ðG‹Kn]±ñÕÿ¿àæ–×Ö[=]M;?4°yEs/½ÀŠý¥ÿ¡¨½ çŒ1°^ãC‡;é3=ݪnJÏ;KgÔ ?Ä…Òyðƒ}[7ìùûŸRmûGŒŸ1{þÕ}ÆV3LÎÅáÇðI=q\ 3¯òî×ÝsËÜ?þìž+¿ðÃî–VÌŒ`ô\HúP9Ü®úg×®¾ýþZšÜflW¢|ÌìX$|h϶ÒìlJ3ƒçÎéP¢&þùÞe5f\º”1~þü%W}r•àØø|ío×ýî»WÚ®9kIé¨i£f-éû¢ßÏ ÆuMA¢¾µq·¾:ëÅ' K*·¿¸êÀ–gˆ->¶¿ ¨Zo2þ0qû{‡ !¿¸Üs,U3¤<ûn9X¿oËóVÇÒac>ñ©¯›¾½Æ–3Æ9§×Pâx¨7ûî×Ý×>‡»šëã%üÜ ª\³zÌ´‘¼âxQåfŽ Wâ³÷<øÐ7¾pý]?ë8´O3Cúiåir¿sèÑ{oìliüÔ½ÿ!=¯¨¢ZÅ#HÓ.Y:í’¥·ÜùP{SýÆ µ»ÞyöG«?W2ò‚‘³®.5½tôt#†Ûðäêq³¯t¬tÉð ç¦ÿìƒ1¼òlíè)s®úÌ× JªóŠ+Uë3°èw9®}úŒ™<[¨b(EÕ†*àtÖÿî±Gοxɲ•]ûÅïNœµØ0ƒf0¬hº¢ú:g”¥˜²`éÝ®û`ó†—žz@gÓ~+¼38}ø¡—M©õÃWzn|?W¢bl¯0ˆmgMÁ»¯Ô¾¾aýu·}?š_œW\ÙWxC‡}NÇC¤°ò²å+oÿÁº5›Ý/~ã‘°ìØRû_Þ6éO|v÷ߟI¶Õo}±¶dØøîÖÆ!PGô­_¾vßã»úÚåÝïþþ‰»çv·5¾ÿÆó±âªl*ae’®“C±Ó†àx÷åZãg^"„¢›Sˆ£Ÿ&œ7yf¦§yÞÙzh©NWýskWÏ\|C~Ieqå¨@(:è ‰ÅËW^´xéŸ~~¯Ïál:qvïcÁ r<³fõÌÅ7ÐŒ@î&£rŽ4Âö)VVæ‚CXóÈ*Ïq.[v#þÈÞÝ>³ì•S,ýò÷×ýüÏû?»êo<ÿÛGW¤ºÛR]mV:igÓƒ¢‹0ˆP86m¨{Á|ù%U§q¹ paI¥O)ݳb„9ƒ&ðã¯/ Ç /¼ü&€`ŽÄdoùº>û—Ù±†H“ùh¨¯Ô>ì:¶ÜàóÑðÃÑ»¶¼ ½q÷Y4NWýšGîžuÙ²ñ3.‰”Ði?»=‚å¢bìì<öêÄés÷ã¯ýå‰=Äýb íIDATû$;š­tò¬\ߣ¡pÚY×ÑÒè?¯Ooê¢#,ðÔKû^ÊÁCüHø_k^U>b|åȉт#÷¡QàH|õ‡ëò‹ËŸºÿ³ÉަdGs6ð†|Ȥ 4½_·{Û&ßÖS*p%–ܺbë O°³é³ug+Ü8‡ -?ؼÁçpWK½5HšÌ'€ßºðìÚÕ~ë¯f†òáÕ¿Ñ€M ÙØ¡ÑÕu·}@QÅ=g—ÞwL]¸ôçÏíÕTå?V^²ãõg$ÚZCAÑUŽ@ÇC ¿òÇÏî¿pÑÒ~ît‹•N:C5««"ÇÆÑ.tqy%‘?aµå9–”®”®_Œ&=GzIIôá_/ÃÏ€äš@óκçÖ®öç‚òag·.·?‡7?ÿ@M{sWh©pxÝõÏ®]=zòšzÙñþ=†ìljP'Yt• ¸އît¢½»¥ÁÎô Á ©7ý{Æþ3¨R2€{ß~å«.0þ¢«û~Љóþ¡oµþËǤ,c¢éë{ÁŽø~íÑáÔ‘o~ 3tv›É/´\¸ôê[îøýc„ãÅ£.¸´ýàžü²ítŸ,GžÐ/T©5ƒ‘És??{t60Äþ~ÑÕ/O±èjáG¶¦.Xúóçö~ý–9ÿ±ò’Ëîžqŧí‡B±"ÕÈ¡z–ߣ¿iÃúI^3óŸ1À &ÎXpóWÿ_Aiõ{[^ë»×^ûsmßjk¾wsßòñˆ}’$W¾ýåÚÝÛ6Ýr÷£Š*k†Þ<>‡o¹ó¡îÖÆ?ýüëÀ×ûZ9vF¬°ò_Ÿxñµ'ø4ZPQ=¾WØYáLáxfÍêQSæ8v¶ tØÙ:ý¡lôï_tå;ϧQtuæðËiÍüÊ?»Í¿Ýùôã÷ÜýÖÂewDòT=£,¦àp»êw½³é†¯Þ3óŸq´n>T_Y3Öó<ÎùE‹?¬ë¸pñR«"¹?±O•äSÞ p¬y䮪ѓ J«c…e¹ `œ*üòÚqSfz¿ù«…¥•Ñüb¿/÷ý·êÚ›OðÝ¿õûŽF[SýηN­0ûŠ›;˸8‹}¹CÓèÏC…ì®_óÈÝ3ßpæEWgO‚ËV>tÞäÙÿýÀ}wù5·?\>j ÐÎ/ÑôÀ ?ÅŽgVÿ|ÄÖú¿` Û·lsÁ|’R9–Y?Ú–^8$Ÿ·ä3V&Å9Ï]íþ©Âñyñ™ÚùK>E$5Ýìëª?oòì·ÿoò‘{1\>V „cœq~–nb¹kôïSƒ¡ÀPñý{—±yWƒTtu&ès§GOšùà]7>þÿ–Ï¿á®éW|2Ñv0+ÒŒà঵”ÁóŸÑŸÀ¾ú»[êßpzuN'OrªÞ›TàB9§$ÇÇíu©ždõÈ yEå9òlýšùW,mØõNiõ˜³®£0Xþ}BŠý5Ùön«Û¿}ãí›Þxa=€ËoþZ6ÝSZ}Þ¹ ³ßçNç^[óow>ýøƒ»¶Ì[ºÂóÜ`$O3‚ªìÕÃ8³ÛTáp»ÍFÿ(4gèh®/©   ´2§©H?`í7s^÷é;6¿d˜Áö¦ús¡© ‡Ót¿¸ï®+—÷j2«g¬É|U}?0© (¶×½ðäÿü—¿:O}ú'_˶í·xÉÞu ŠËƒá8ç`gý±Õ¿¨vÙʇîz`]GýŽ'øÙúo$Ú›Úw÷t¶X©¤ç:Òu¤ç’ôzS0§ˆÁõŸÑßsŽú÷6Eâ…TUšZWâª[Vþï?beSf(jeRçBKpd:êÕï©5€ž³®z’0{ÑÒÿÁ*U×;Zê‘ø—  €ßèïáöƒ{53¤_Ó§Oµ¿¥ÝòbíÞm»Z¶þuýÈñÓFOœ~ñ¢+ï¹ïþ§ª¦ðG×}kÅ-Ÿûçÿìno2‚¡À©èËç}îô¸)3¸ëƧîÿ\(VTZ3±dø„ŠQÃÆÏÎ/¯é[Y(êa¡ªpN¼ýAŒ?ûèG`†[ëªFŽÇøÏ§ ¿!æÛ?Z÷ý{¿ø™oþ¼¥qfÎz(Ká¨ýŸGæ\~=€âÊ9MíHB^Iå¸)3w¿[^3Þµ³Fr·»DÿFÿÒìlzÙ±DÆ}Òî{wã¾í›f.\2j´ÉS&÷'-çœ1ÆgœIˆ‰³\¶äÍ—~?ûòåÙtªêçŽî`(,­,(©üÂU73¥¹aï®w7·¼÷×—Öþ ½¹qœ%‘‚òª±3*ÇL‹Vô}QýÈÌØ@>ûRƒè?cÛš?¶ð !¸Ã'ÌŽFB »Þ©9ÑÊôhFà,¦‚G¶³þ…§×|}õo0$‰YI˜ÅÒ¿ÿý¯å5ã+ë¹ÎÙÕ@õÃÑo¾ñbéˆ í»@XÕŒ¤íl®ß·}ÓÒ.XüÑgøÑt£—±Œav%®¾uÅ×–Í7ýôz|úÙ D÷‡/©Ÿn¯ÿɃ«ÆL™5iÆ‚XAñèI3æ|9X¯Zõ«ÏÖ¶6Õ¿ÿæžÿå7Ú›'̹À„¹×D ʪÆÎè¿5¡!O§p¶íåÚš 3]Ç.®9(¡;¥ï¸9Ã]ï((©Tµ!õâ<‰ÛþéAß·ܧ³ØP8^z®v⌠˫sê?ûã§Îzâç]rýmíÍ‘øY&°‡EËVþþ×ÕéE7…óK¤çúzú>i·¼X»ïÝ4jâôþ¤U5­—®ŒûBÍ'Ø…$äWÞö‡~ñÈ?}îŸÿ«íÐ~EÕÌÐYõÕ¤Síõ÷Þ2gÉ­+¦^¸(’W`˜AÎ xÖ”íÇg¯>W»åPýûooªù½x³.]úÔ=\÷ìß‘V4ý,æ“üKŸj¯_µlægV=8|ÌäxA‰ ðF©ß’GÀa>_xÙRŸÏïm­kojìãs$¿Ìw¶óJ†Í¾ì†×7¬¿ñެL ’œÀÿ÷î»LÜrIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicseffect-widget.png0000644000076500000240000004046512536324504023703 0ustar philstaff00000000000000‰PNG  IHDRœbM»ù pHYs:Êduh IDATxœí½yÜE•ÿNU÷½Ož„,$! „„¾‡-lDYE0ó•Eeùú›‘MvEgT\æ'AuFˆÊ"›Bþ‹@AÈ“@!˽]u~œªê¾kçvΛ¼Bß¾UÕÕîÏ=çÔ©jœsûm ‚Ôúî€ B_"¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ 䊨u¾þkú¼‚Ð-.¼à«ë» ÂçÜ~[·*|ý×l¼Õ¡3§ïÛO„urïÃsß}ånÑ5¡.Ý5V´!ƒ7ë¿ B+¬üðŸ¢kB]ºí~N™´íSÏ¿Ù]„Ö) ]ß](=‰©!bŸ÷Cè'>XÑճР=Û„Fˆ¨å™ï/ÙrË-{V÷µ×^:l“Ùõ¬!ÿôLÔú¼Bßóþò%[M™Òãê[M™òÊ«¯¾É@kÇ}QÐ7–Ú–ÿϯZWºWùéTè¨zûûÃÿÖ­AhBODMUÞš[|êÖnÝiª×w¶Ð"½¿Òü5ÐÚ0½mJÈ+}`©…O#m²Ë¸#]òá?Ÿ\tßÊÒrÞ?mÓYo­xuñ êVoÎÝ¿<=éºôSè½]ã,¬Öˆ÷)4¦Ïbj‡o{Î>× . [´âµC†nyØVŸùÎÜ/.]µh°©§M»ú÷/þ0#jÝ>âSw_±ÛǾփ®~ôÜuË9𱓯«ÚÃd÷¯³b·ŠÝuË9µ;UˆÈ@lDÔ„Æôdî'VÂ;Ûî¬Á…a¿yî;—ßÒ½ó=²sìáS?»éÐ-Úæt˜:j×öúÌ xHmõæ4:者{ûä]W„=‡ýË÷FY»[,véùGn3e,àÒ?^zþ‘Ù’¨°7  «ú³ð=öÀ͵þã¡î¶S[¥îÎÐNö:B-}3PÐun3zxý½àÕeOÏœü©]ÆÍxì­?o1b;Õ¹)ŒÂ‡ÎY½.$ŽôY§Ì˜±ÏÔb¡¢o|+ŸxäÃȃ—-ÿðŽûžÿõœ'ˆÜoö¡nwô!;MØtã¬þÅïçÝyÿ wüüKðñ½ž d?ò6SNÌ?¿·ÑàŽ‡~ïýU?˜ýÀ#OÌD8ö°]œµã葽·|Õœ{žýŸ?>ÁGËV'¢7½÷ƒÙ<ûÒ[a×ÒeÙCOûøeM®^¶ÁPñ‚³ÛÏ­.ùÛžxná´&^ñ•O<8ï•öÚª¶ýßßñôyŸ7Üø£oÿøîùOýzËÝÜPL_XFX·wͯ[þEó·Øö€ÖÛ M…Z¯¿ô×wÍ3~rÝÂ"gÂ:鉥¦°âlÜ9Ž¿êZõ,[µ†Îï¹,}^ø‡ï=rΊµïÖV¯úó¯Çïõ±·»åÖßMœ8é†þ0{ÐOb÷SNÜ玻ïßz›û›_|æ“û>}$)„£Ýù¼Sg.Z´hïéí»ÏáÂeÿ|ˆèñ;. ýþÈ\ðÕÿØ¡‡Ä‘Þb¨믿îÈ#9bð©'îöþ’¿+„ßí´“ö{â‰g¶Ýn—›þ¿>÷©é³ö®Bõ_Þrˤ‰›î³§l¾éÆgžáˆ­š—­ÂFíÀ>³>[û§QáFíLÞîÀ1ã'¿³hþë/ýƒ¢MÞîÀFíT]OA¨¢ÜOo.•’5P6k€€êÿØ6á é[À·¿yé°1;=ü÷8[ëãíߺêß;GlùðK}Ä~‹çÏEÄcÛÎûÒçW¬L&îzÊoî~gÕKÀZ˜mŠ7~ýë_/OÜ<Ö_ÌþéÒUÃ`üøq _¼˜µ#\ñµóãA£ç½2N8ꀷ<ª_sÍ7:7žº”v€Í7Ÿðú³·g²×—ïuÄåW©ééWU\ùáÚïßôÀ&›lò_ß;ø°ÎóÎ=÷ƒ×NÚáÈÚö;l׫¿s+|ñ gœ~êç!#½r@!caÕ~Õ¨J·ÚQˆS¶ŸÁº6ÿÅ¿°¢MÙ~F“þT].A¨¢oDíí• Jf lÜ9F KV.\“¬Zgõ*6>–.]:~Ë}W¬,gkÕ~5nܸ®7GÄQ€7ß\¸Å/‡ÄÅ![ìpDÕá²MñÆ|0rü޼½bÅŠQ›îÌÛkW¿ˆ£F €y=þâÓ÷þ÷Ï€Í&LxgÁ¼P}ñâŶž s›kW½×D¼ÖyúµžxnÑ›ou‹Åùóçÿé·MÞé…âàÚbW_Çwýžzê©kn¸ïí× ¢êÕŸp­êÕ¨JwÚá?[íètmÌøÉ[í8£yDÔ„æôMLÍ’}óý—·Üxç]üÁ‚€7–ÿ½ÅêYÞ}ÿÃQ#†Œ5*.>¬3[뽫ª¾Z¼xqiÍ D\úîÊ1£‡N˜°y±sD¶}­µR Gލƒ°ÅévaP¶ ·¹Ý¶Ûtuue÷g« ËôêJg·N?[à¶°éè¥Ë–Mž<ù”Ï}áå®Mµ³õ'â³?€Fl¶õ'‡ýýSkÒx“XX£*/?{?+Ç×¶Þé æý üö·¿kØõPE©b¡0}ú> i½ÎòB»Ó715xþGà¸íÎÞyìþ3·ü4¼°äQø ´Æm´ÅÈÎqÑàÚêU|ôøâ™gF°ö¸ÃvÉô¹/W}õóŸß\ìªnÿó3põׯR,Rüü§÷Uït­€C=dP1:é˜=²Mµ²ý‡{ž€¯]zÙAÇ^:ëÄk¾tÑì?ÿåééG]Q Ë~\µº'Nª{•²§ûÏμýgg†UGïüܧ¦¿µ¸ëÀý÷{ã…_ôoôá«MÚWû~âʪ#67Š× 4©5ªÒ­v1(Ú6;̺öò³÷7éOwcjdm¹\~òɧ>\¹ÒZYÛ#ÿôÙ„ö;_™=¤0ü€IÇž¹×®.¯¼í¥}óOððsv»ÿÞ>¾û¦3¿3÷Ìùï>W·zàÖÿ}L™wO=õ´³ÏîÈîGÄ_ÝþøËü gž9æÝå«~øã_^wíµ¶ž‰ˆº÷ù®·^9úð=oþþÁ+V®ýåï^ðâßÿÙ¦Ÿ9n‡›f߬”ªjª•í?ÜóÜ’E¯}؞ǿu9±/½²è–_ýñÅGgo¿Ï)."þúöÇÿø?ñûùà÷ÿõÅP€G-y?3÷öKö;ú*¨ªxÆ¿Ð9¨pòIg¬X™|öCß¼øÓ_]Z»²Ð±Ñ„©O˜z 7øøË¥?Þ}í[¯=ºzeW\èÜ|›™/ücñ_yøÕgn[½riÈü঎;õÆÿ÷¢æÛðØKkçÜñE¯?ºúƒ¥¨ôБ7²m±ìÇ9~öÆ~¸ðåû“òØÿ˜«Ã·Y²û¹‘ªŠˆøÒ¼_.[üâNûúÚ‡ѳýdä¸íæ ZÕ~³©î˜4u cƒ9›cÆO¾ÿO?©-?füänµÃU¶ßmVø¸ýn³îiÞŸ@D¥R‰$gw Û+ßîyÈ9o.z/»sÔ‘?Ë~ì 4áè£gß{ß›"jBsdÊ’ ¹BDM„\!¢&B®Q!Wˆ¨ ‚+–¨5²Ÿ ëù÷>ú^ÔîùóŸgÌ8püøq{L›vë­·öyû1ýq:môxó«àdzãÛŸzêçŸþ¹õÝ#AX},jÍ›wÎ9_¾ôk—.XðÆÿÏ?üðܾmÿ#&g§Ó3º–.{kÑâ?ßsïÞ{í}ì1Ç<óÌ3ë»G‚ÐŒ>µï}ïºK¾véA\(&MÚâúë¿Ïû×®]{ÞyçNÞbÒä-&Þyk×® û¿ô¥³7Ÿ°ÙvÛnóýï_Ú1Æ\uå•Ûl=uÂf›žvÚ©+W®lrÐF…ï½çžý÷Ûwü¸±»íºË/~þó&;»{:£G¼ñ†vÞiÇMFjÒ7,ø—“Ož4qóMÇûÔ§N\º´ ¼™ÆPë';zÔÈï|ûÛS¶œ¼ývÛÞyç×^{íÔ­¦l¿Ý¶ùË_š_á»Ú¥ÔرcO=í´ÿêßþÏÿhÞíÑ£F^ý÷¶ÝfëÍ'löå/)ô$PÛÕåË—o=uê»Ë–qr¹¼ÍÖSùr BwécQûÛ¼y‡2«vÿׯ¾úíÅoÏ{챿Í{ìŸoýó_ÿ:ï¿æßX¶tÙ“O=õ—¿>øàƒ†ò×~÷»Ï<óô}÷?ðÒß_îèè¸âòË›´Qá3Ï<óßþý«¯/xãö9xü‰Ç›ììîéÀO>qßý÷/éZÚ¤'Ÿ|Ò_øÂß_þÇKyÊ”)—\| øWv-]Æ­Ÿl×Ò®gŸ{þ /:ãôÓ»º–<ý̳^xÑ%—\Üü ·ØÕ9ꨣþö·yëìö#?òàC=ùÔS]Kº¾yÍ5UÔvuøðáÇwìÍ7ßÌzè¡ÝvÛ}Ô¨ÑÝê› 0Ý{EÞQŸøî¹çœÃóTŽúÄj§I³É[‹k­«*î¸Ãö·Ý>gòäÉðÚk¯{ÌÑÏ>÷<ì´ã·Ý~û[¸ý{ïµ'?ê»íºËoþû¦L™]]]°ÿ‹/ý½ªÍÑ£F6/¼ËÎ;ý¥/~øáãǵêîlD£Ó=jäsÏ¿0vìXþØJoW¯^½ë.;ÿýåd{ÞzõÑ£Fþã•WGŒ±víÚÍ6¶'MÜ|ñÛï4¹Â=èjÝ‹Ì$I2a³Mùˆš=jä¼ÇãÓùóç{ÌÑÏ<û\¶©º]}cÁ‚cŽ9zÞcÇqüÿ~å+Ó÷~ì±ÇUuæè£g¿þúŠ9· —]ö·›fÿè”ÏLlÒù,òм ‡žÏý¬ËÐaÖ/oäÈQUû»ºº&Nt÷ßĉ»ºœg±dÉ’Í7O÷‡ò‹/Þoßé@DÖÚæ‹5*ü³›fû?ÿó[ßúæÐ†^ýõ«?ö±Ãíìîé@‰&xl޼˯¸ü¹gŸ]µj4^²©Å“1b‹Åìv’¸÷=7ºÂ-vµE–-[6lذu6þM7ß|ó%K–T5R·«'MÚu·ÝæÌ¹ýØc{衯¼êªnuL}ì~î¹Çž÷Þ{_íþÑ£G/\øo¿ñÆ£F9™Ød“MÂþ… †òcÆŒyêégÞ~gÉ;Kºº–.cש ïºë®¿¸å–—_þÇ5×\sþyç5ÙÙÝÓi±ŸÿüçNýü©Ï=ÿÂ’®¥ó__@ ÞÞ­“mD£+Ü·Çš3gÎÞ{ï½Î¦BOÞ|sáèÑÕ^d£®žuÖÙ?þÑì±i{ìÑÑÑÑ­Ž B EíœsιòŠËxàR©´`Áë_þò—xÿ1Ç{Ñ…-]Úµti×…^<‹ãŽ;þ’‹/Y¶léÒ¥]]xahç”S>{þyç-Xðz’$/¾øâi§5{ _£Â§ŸvÚË/¿\.— (IL“r,N‹X³fM±££X,.|ãóÏOtذa¯¾újÏN¶®p‹]mžeb­}çw~úÓŸ~ë[ßü¿_ùÊ:»Íÿ¦Ë–-½ø¢‹?þ„»ºûî»Gq|ÕUWxâ§zpécQÛcÏ=¿ûÝk/»ìÒI“&žøÉONŸ¾/ï¿è¢‹Go2ziÓö˜6mìØ±^tï¿à ‡¶ËÎ;ï¿ß~ûî·ohçË眳×Þ{wì±›OØìŒ3N?âð#š´QáþñS>ó&n>áŠË/¿ñÆ›ììîé´Øk¯ûÞ%_úÈÿþþwÜq§u6µ×Þ{í·ï¾»î²ËÆøê´ÞÕ³Î:{Á‚×÷Ý·þu„VèãA¨[è³gßôÆ‚7¾vé¥u¿•¡úx @zÌŠ+n¼á†ßþî÷ë»#B{#¢& F©”ºúëßh%ÕFš ¢&ô1=ó={ì± Bk•ŽNMD„ 5ArE®DM,)Ar%j‚ "j‚ äŠ>µÚ5¶^xþùi»ï¦=Ñ´Ýwñ…š¬ÆÅë5²v­É[Lâ F‹/Þdô¨·ß~^yå•=÷˜ÆÅnºég»íºËøqcš1#,ÓºÎcõf­1A},jµklm¿ÃÆ k¥ýõ¯>|ØvÛoßd5.^ÿ«ké²Ú5¶>õéOÏûÜyç…Báî»ï€‡zpÖ!‡p±¹sçþñOw¼úÚü#Ž8"ÌW_ç±úd­1A},j·Üò‹o\óÍñãÇ2äk_»ô˜'ü/7ß<› Ü|óì“N>¹QIæÊ+¯âÕ~¾ð…/Ξ}S¹\€?ýñŸ<ñ“³fÎzxîÃp×]w~úwÝyÌ;wÖL·”ã·¾õãÆëìì<ë쳟{î¹&½ª:Vób‚ ´ }œ|[w­N8áê«®|wÙ2ºÿ¾û¾óï6*É„õ¿ê®±õÕ¯~õÃ?|âñÇô£ï1m÷Õ«W?ùä“?øÁ¹ /4ƒ kµr¬æÅAhúXÔÆŒsÇw7.»sذa‡rè­¿º•ˆ=ôc¼Ê`Ý’µœuÖÙ]xÁ„Í&„5¶&o9ù¿þë§»îºë°aÃvÞyçŸüäÇS§N奻իa ÓÇîg£5¶N:ùäŸß|ó/~þsö=›”¬¢v­Y3g]wíµ3:ftÐu×^|ÏîöªÅb’þ&mD‹Z£5¶8à€R¹\*—÷ßÿæ%k©Zckæ¬Y+V¬˜qà ˜qàŒ+VÌœ5³g½êY1A2}ì~*¥Î=÷ÜsÏ=·j?">ùäS­”¬Ø¼dÉ;Ç‚RN'OžÊl¿ÃÙòUuÃÇÕz—A° ôU:d-AºÅ€5YcK„î2 Em ù}­?‚ Ô"s?AÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5ArÅ€žû)Í¡–K"ÿ^l& Xz¹’¾ˆš°a@@@"j”¬QotMÜOAÖ7ˆý½éÍoXjB[Óê­O€ÎNKmB„ˆDˆàÍ´Ûk"jBÓº@!¿ùÐZÛŸ=ºMVÂÈZV·Þ¸Ÿ"jB;Ó²ªˆ¨ @¼¨RJ© k=S75¡¡ÖÇ? A,µ "²ßiŒ¸^ꚈšÐÆXÛª¨)´ÖÚr¹Erϯœu€éDDÅAÏ*]«­ÛùÚ¢VÍ. ÊZ›$I¹\î×. ë†U‰¥Ê 0Ji­]JFV׺ռˆšÐÆÓª¨!Rb̪U«[7î„þÀ+t ÛƒˆZ)­u0¥‰HkÍᵿ­ ¢&´1I’´X’ •®,'b©­70u7Á+š DÔJ+¥¢8*Ä1«ÛkÖZç ¶€ˆšÐÖtËìj³<µF]íå,¢ÐìGÙŽó5¼F@€ ‰  €E«´âaœ(Š”ÒÖ¢›’¬ILMÈ3­û’ˆ`MʉB™E³þp126Ó|dÍ  &¨#ˆIk­•B¥26ZË,¢&´1¶É@A¥Ü!¢%*•ËuŸllsu WXU˜ñ³zAsK­v7Xcòô «uÛY7YËv Ü((šbl­µÎ°û[<ŠˆšÐÆPw¢þÖÚÄ$ÊÔ±Ôi«´01›1Ç­…DùfÕ¼ü5*FõRñBt©[º-+F=ó@«–h¥ö;¹Û©FÇÔ€@i ”QÖî§µ¤¹ÒœÌÖ"j†Õ×ABâo™ðˆºÉˆ¼`Q¨‡•ÕH!!`Ø™ VÍ#‰„ä Ö¶ï¢HäÒKɺu)t ®¥Vi¯5‘àL"[)jþo/U5-!U”$$"ñh€ÐF³œÙ Ÿ<úÙâ/˜ˆš xs *E"˜D@D˜Q½ì(kSÍCœZj¾b{!µX€`h—©çø"" B ª´Ìµ.NŸž fEêk+€—ÚÊœX—d [¬3ÙÑ8OÐZëk‘›£Käì:Äl>‡Œ~ ´ÎVÍFÙÿe4ÌïÎ><ˆHþióÇrÞy´`«ì)o´P°¶¸ôm¦%öùöÙ̃ TiTžl‹Ï¹Ó¢Ð©´p9‰b•‹ì[a1V•_5è€be£PåËiÇÑ‚˜µ1%¦&l(d=²¬LyƒˆXe\±lg0:²ñ¯ŒåBˆJ)•FU†³\A´˜Rª”R •RD`œ±– ðxÖk?øqhÁUOUuF‘Rá\š?í!‚¸8/„šâ3bÁ¦TB+4š%œG ýDÌœw3‚Ë–g¶ß¾UæH‘Et¿ˆÙ_Ž^囈¨ mLæ¹bUJCû™2®"j­ëŠšBïO!ªt¦ŽÖš÷óhVàŽ›ØÀµÖZk²~|Ïõ-ôZ)Ô:r¢fÙÜC¥|†Y ²îa¯”ÒÚH–;)¨°µ*‡ƒÐg.Š7 }$«RÓ8ÊÏ€ª1Óôüoƒ%t.dE·°¼¡?0`QqG°òg©Ûâ&¢&´1U¢V»Í ÈkMºŸC6Z+Ü6¸€Ö:Ž"ëFâŒµÄ è"H¬?¬?Á„ÑZEQÇ1‘[ïˆÕPù¨’ï!—Œ©ª}o…€E°õ¦sW(kÕ5jUÆ•ÆTÖß$"2Æ&ÆM͵PI¡ÂªÌÅ%¨Þðc™n‰'ʺÊÜ ¥;ô€ yÐ&øé¨üèA7–Ê«ADMhc?^/8¯3Ø i´•R…(Š£(©aQ‹¢¬± *¥ÙrŠ"E‘MJH€6mÒ""€K F(…ZéHG±Ž,Q¢úñ;­d½V"'šÖ¥ * æ$"’1 ‘B›!‘BTlQfŽ› VËAê3rt,“ §6d­56)%Æf6á©Æ1ÛVX1 €aüÄW±Æc±AL]\"Pš¥˜B Õê·µˆ¨ mŒRšÀ‚.ñ ‰*2¿8+]) …BÁ’e“ÉXKdµÖq\@„$I€R—Ó£#G±±Fi­ˆ8×7ÄÇ ÝC<Àö›B¥•ÖZÇ‘"ŠLdŒ ­µÖ‘Rè׬&"ÒJGql­UI™ÈZÅa6¥P!*Ö„qÊô´ýA]D1«j©oWÐ[%D$D²€–ÈX²©è¸`!ñ…NçMB@®d ,±”rqFt¿+J! Τ6Ar‹©!§x /YÏo5¡A÷pÓ'¬û:ƒNé•R:Ò¨ Ž›±¤P)¥Bòz'Ñ’UVY6a’$IãÄÑ©—B…¬.Å6’%KD–,Ù$IœW› í€1ÆJ+kLR.'œqêÌ>@«¸™ê±ÄlŒÐ*dC‚õ.T¶RF2|Hʲšëº °¨PAÚTh&ýì#|HDƦ& (Ð>—µÕÒP!3¦ç¾'ˆ¨ í "Xÿ S:RÝÆÌ#¢8ÅňˆŒ5€ät‡,Ye9©‚“:T3oM Yk­!çú‚w¶¼ËáX5¾ IDATE>ùQ!(¥À¿~4|Y²È18›$Æëæ·fŒ¬À÷Ï:ƒ`WùŬ¨)çóN7Ú:™ó'ãúè­GäÑ‚Zqô¢FµM'çjåŽæ¼u 2Kè•°×~§CDMho\\†Ð‡Ð*Âil³ €Ÿ*$ôRb­µÊ*§+–Ò$\"KV… 5"‚…ãXK,<Ü™ŠpS&Üí³ÛÒð¹NV©›µ€dÜá’¤L.±>;:Ðà:P˜øÀ›óˆ]Ö†¾¡ûÀ¹£Þ0D$Öµìaü + dÕ(X…ÞVö#—ÈfiåbAlâª`Ö—^³ÝIÏ5œ]ÃÓ®‡ˆšÐÎxÓ„ÐâqÛ.DîŸL*—ËÆ˜$IÈ€sA'.ˆ† ÉZË®£µ¨xè2dÉ"²¤ùEY­u^$ú\-bÅûÉ'·8Ùa]ñ³>+Rk33¦8jÄÌt²âÞ˜I¬?(òx+ðb¦n°_+-,'g* érÐy…RQ˾\¨ÜHfX#-Xчt?d¼è>1ÖDÔ„6†üàyŸÏo§çí6Ö5«Pa0ß8N`ɽ”E²–eÍZkÑ»–Ù T~´]®øÁW­4 Ï-E‚ÌìHŸ×ʾ$‘U¨ØNä˜YJœlŠ˜òAõ ó&;bA²Í¬ká‹”D!û¼Íš–ñÖg“xÛÍ·ÏBÃÃéWÜN¶X¦p&NÓ˜ZP/ªì±c_iY@DMhc¬Ÿ÷¬¬åÇ;»ÍÀ›iD6I "²!æüÖÃá|c A,£%›Ã^€÷lSÃй¨àŒ1ç… bÒÝ&èñ,VÍ4ç“‚~€Ò™´{ýs)fÖ&ƘĄØ<û€ÇýµªV©ì|-g%±ž)ôÞºëkT€Áe·1¸ŸÁrt9Æn 7 H@ä-AïÄrÿ+¬EÀ>Ð75¡1†#ôÈ.§ Û@œÈŠ~¿RdŒ-•J–/›f}XëÌœ$)+¥­µÆþh´åC”“rˆ—k­ü€ ãHëˆEL[mŒNLå¤Ì)¦Jsz§"XcQéˆÊå27¤ªÂèþL³¢æ5Ä›8~™EpFø2®Hp÷(¸½¡ùL»©Ô¤" BfX߃.* 9[D9×?h”w©#­´VJ{—(ÌÑp†u_Ü"jBãßùCů|¥å·3!ô!+÷·_÷ÂY2Ê™-ÞÃ"ÌäQ¹äa,¥0LHf ¼ùô`TN•Xç!e¦aUŸiµ¨©°*¡«¥ ./+ŒÑPξ²@¹Sàó¨T½ã†ëÌÁ|æd(R6c©q¶§É¹b•Vö©5wÜÏ`OÕÐÿKÖ=ýn!¢&´3ÞåÉìUn‡gBH:˜ü•úWè"ÿ.€{ýfì×TÍýDÚð›á’¶—& †«>$µ®++(ÇP}¹ê^À&ˆ¨ yÓu«¶+Þï©NUˆ˪4” ò‘ £Šá(~¸µº'™FP©:2Á"C©„QÚuË}ãÞ0WIù\–T 1µ~*’o3k.b…ÛM %ßPZQU´S¡EŠgM¥u3rÎ?“VâÍ\ Œêõ5¡©ü=‡Û™çÙ=Š”IÝrÊ€zàÕ°ž½ÙG®2¤^·W žÏ¬§åVÛ~ýªABªvVÚGUGA¿âÂêzàÛÂÆ‘z_Ìÿ¦ncz¨ŒœÖi&|&×§3ÜQê8§}ê>"jBÓºKÂOŽÖJ׳jm· W˜yëQ9N˜Ùô¹µáÑ­©é­h ŽMN¤²µÆuý þ€Xí~¦íÐ:š 6ifVÖùu³:šŒ_R½MôÞt˜Væ%;£µÝDDMhcº+jJiéÚ/ýu÷)ªó®§J#¬7í4R˜ÔUËH!AµÀºÀUH ¿•Kþ{ƒ” ©¶bÍ< ÷B6sÅAëœM¥9™5$²B’l BtMDMhcº%j¼nZÅ5_¹4•Ÿ?öÈ’ªm¶ºÕ|£NaÞ…o{ÚTõõ¨×NE‰àsV}ÁùÏÎR#‚ðêbP-ë#¢&´1Ùµ¹›Ã¢V,‹Åb¿vé#£Ç¢™µžœ²m¶®ŒaÅN_¬å4i@k,ZÃcÍ5/=è"jB“]›»9ˆEQGGGGGG¿vé# gZ´,cöJÔ²=j±fW*á)cDá ÖØr’CJéÌq?… ‰(jõFÄ8އ 2hР~éJë^·ÙšCu_‹(“êÆzТšÄ‹Vš o‹òðØ jIÙ¨R©TJ´Žü”‰ kÝ览šÐÆ …K"b±X1bxgg'ïèÞãÜlô³Qè§Ñz¨j•î^w+Ö‰ ö& VU·•.…5Tl:s–Œ1åRÙXK‰J,1Èó»Äý6D …õo~÷¢*‹o¼ñ!CŒ1YQ[×s“6¨Ñ…ðzã&ùhUšŠÚ:΢é·õµ5(Z­ªe2ï¯þ«E­E‘õ=!·Bº1åryÍš5…B±T*óºO¥Ä(e•rï–ñy¹Ý“65¡©Êl"ÆqaÈ6Úh#cLfžáºÒ8*F쪥­ÞÜ¦Šƒ¦-øŠÍRkG[&+ÛòG 3"²ÇÊÌ8¨Oƒ®’ÏÉ&ɶ¤;—Ó$IR*•”r/Æ2Æ’­KJi•Y»ÍVwdMDMhcÜègf¶P]H¡ÒZwtt 4(1 ¦¹UÕ«VÝI³oƒ¬esü¨¹,ÿlºY˜ÉPÑ“*q©šàŽÕð,ª$«¢&ÖŠ¨_G×KIEséÜÐjÒ—z¢FDÖRf™_¬óWu‹¾7Q+—ËJ)vB“Ä £µR:¤¨‰û)lˆT¤tÔ7:(,Æ­FQÅ‘÷iœ‚TMÊ ÂTaù8÷­"•Ü h!Ç«rÝ|i…ëßE’Î7JÏ èlèô©æýÜu¬êY\À¯Z`Ïd[ä’usb|#ÕÆ·û¬µÖ«Oú‹€i³P%F3Ö‰Ï∢ØZ«µ&‚Ì»]²r&£ŸÂEFÈø€NhÜsâ,€t¥œŠð׎lÛn¶?áþxÝ]^ùȽYŠI'0V,¬N`løˆTs ´úÃ’¶ùè+fVN ²ì¢µ@`Á¤Åƒ †·ÆW]UD à÷œ†Óâó°8]–±Â Æ[¥Éè¤ÝõŠfim•R ÓÁ¬ØmDÔ„v†§æT ÃU»{üüÿ±n1ÿ05ǯT€ì?C̯eíD©óþ¶Æú5÷ùPi@ùG+dŸTïÌÎÏE²êÇY *4ÔÑò ˜Ót°l¯¸Z•E–j¢M§ô³¡JlgùÑÉpÍ +ç`U]@릇Zcù6Dàh -Ùrœ®5¡½qË@× `…,EÖÚr¹Ì/”RZsân¸ ;ÞÍDvˆøe,äþvÀÑî8މHk•+afá³Ðrh"ìÉ>ðá=ó•V˜+À.[MWÓŠ©ÿYyDîçÚµk³m*D¥5‘RTiò·`’2¢ÆW&IÌÚµk‰(Š"¬!ªAõjÎø5lÞ¢RH6«dÐc1óˆ¨ m ›!Y-«Õ5ò¤1fÍš5QY"­uGÈ¢fåVg<¸—¿PÝÔ„ÇïŠÅb¡Pˆãù[îO5­0Ó|€œa+E ùýèÆ«^8#^BÒ$ fx¡ïðÇÿ2挢­Y³fåÊ•à\;·úvE¶XtK’gfºòiQ9I*-5 ÖG.Êó¡Ñ½ë>]ó2tˆ*×_Ëê  åz«g ¢&´5ÖšðŒ¨ÇÇ{LÞDâGÝ[AùÍK¥R‰,†_+´FkÍ“’$á—51|”r¹¼víZãaQ ßj¥¢8.‹Á¶Ö–J¥5«W“×8'©~ô4ŠcD4Ib+EMkMDår‰Ãó,!‰1䥴ŽcÎn‰”^C@™Ó·F)ÍoK±Æ&dc@iÍ’íJi­YZ[*¥–!¸+Í¢¦µ¶•ªŠˆJ¡Ö(nB9 å2”.`é[ ­ûCô‰ª‰¨ mL¹œd-£k®€7/¼Wè,/ c’r9YµjUvuìr¹”$† ³©U( äüV÷:ÐZ³¨%IR.—‹Å¢Bdß–¤µfE‹ã˜-–ƒ>øÀiŒµÆ­up‹Å"ke6ýB)ä!µkÖè(rV¥RårÙZlsÝœVŠ"ˆœyá:P°>À‚a Ž‹•J¥$IØ~tRÇÖšÕ«W+¥ÃÜr¾ Ƙ5kV+Di“‚”D­TÇÀ?lxº³ùwÍôÙ„­ºˆ¨ mLpÓ‚=Î(¨,–‰)…@Eâ8l ±%•$n”B!–J%“$ƽ>ÏA¡P€ŒBD‰µ¥rÙƒ •µã8V ‰4ñ FËå2º±¿¤\.Só;÷ȯºS.•ˆßMåükd—·T*ÅDQ"Y~ÝŸaÏ’ÄB¡ 5O·!<—¹JÕ/L0IRVŠˆXšÝ¥"@¥ ÖXk׬YE1;¶@nꦵ6I’$I,ŸK8VâÒ@H¡2q¤u„ˆK2‘r))aŒ!eé+UQÚ˜¬¨ew‡) »;ü^( Ât4À¿]8IŒ2×”¢H!ò«@1Ööû¢(J“ļ;™”ËÆZ…hi¢D)kµÄ+,†.¦Š“$J)~ÙhÂï„G4Öð$! ²†´v£ ʽDÝZk’ÄZ‹Še„•“X‡¡ÉªK‚fAéB”0˜\ŽíY²Ö$†ÝI°DÖ’ÖœôF–ÇA­QJ§ø;C QDl±f†4> DÔ„ö&<¢K¿©x¨½ôpš… !*¨ ä ‚¶šÍ ¶eŒ1Æ~{Çü.PŸ³o1å$1&aãÅêHi-Eõç($år¤µÒ’LŽ®J3Î u¹¤ 'ˆüFvöïl)­qÉ¢‡¹â›^-âKå²·Ô´ÒÖ›®~!ë5f3ÖX $k@Ôi¹tƒ($Ád µ>CDMhc²æH5ÿ椊bä³ÒØžïŠj­8üÃ2V,´Öa\O)Uˆc"J´&Ž[m”!NhPŠ,ii­µŽ°P(Xñ„u¤yT”£KÜCÍE£ˆ‡g8(¥ ¢N¥¤oêD@… ç^DZGq̃¶ 1)#÷Žw¥µ.Ä…(Š\İ:/Á_‘Tã£(ÒQ„JŠE|LŽÞGqì2HB;€ ݰ¦ÖJû—ûÈ?øˆ%{ÍnÌ$Š´ZNe­AL­ÏQÚ—ôY#mˆPåï ¤y3Œ×iEQEšËŠEÌXjˆJG‘µVi­9(Åo)÷¢DZ+–…X(Œ_:‡å‹ÇØßdE‹ã˜ó?•56Ž J¡RÖÃ#­&ŠBæRJkäý–(¢¦°’$—q¦¼Kk“„´¶h­ÏÕp§Ÿu<ˆ•7Šck­1ò÷³!”Bk0d³•¨Yých³6 ×V)þРµËªãËঠdlº~EDMhc8B–÷>×*¨XÙ¬J‚g°P(p|سV+e\V(¥9·–ˆ’¤ì‚I1@±£C!–y˜Oé(ŠØ 2IB ‘SáØŠãö‘È&I1Ž"@Œ¸qŒJñð§e R<¬É=eDNe+ÏM3 DÔ„¶†cRàŸ–`§„ .¼Î*­j£îÇF¤NoåjX±Aán™0%lÝ­ûmöBM¬°žÿ[ç¢5rÒC›-ö¶—ˆ¨ mŒ1†#P©É5+Т_¾1¬òØèálD£býîJ}T4<ÁzêÙDÚ‚ÉÖ¤ÍþFDMhc’$aQ Èà-ë¤Cœ°uùŒ(dé®%XU±êãGf£1"jBc!r¹] 1è”ɱ>£•E-¤!Àú³&òÍú½ª"jBc‰Tˆãø¼ªØqž¼% S Ä@Ë1"jBS7Í"¤L©ùASÃÊ /!gˆ¨ mL˜Z™ü/ê ‹¹W Wæ9FDMhcнbÜEµC¾;›fà3rÁ¿ ˜cjX3¯@È"jBã´7%';Ö–YçËç[a Š–SDÔ„6†—å§õ€_ˆü´j–0­T鎎^ˆ±vDÔ„6¦îzjä'OfL¥5¢â7T­$ä 5¡ 5¨LsÏÎÇLÄ-ûæ`Q´¼"¢&´1˜YÓ¦ùNŸÛáV²EË1"jBÓ|Æb-âunˆ¨ íM#…ª](;î)ä5¡i¢Pu¿EÛ¨] S¡Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈQkÎûìýä“O•J¥~=ŠÐˆì¯ ¯=Dd‰Œ¡BÅq¤´BÄ(Šâ8ŽãHóÚCJ9Ë®!âàÁƒO8á„ÎÎÎõÝ¡ßé_Q>|øôéû˜jë K€@¼A–ˆÈZ0Æ–[Zk†í2¤3.ÄZ«ÎÎAÇ<¸³P(Æq¬µÒZc†õ}*½‡ "–Ú†@ÿŠ"4¨_!4¡VÔŒcL”X…fРÎÎÎÁ…b¬µ<¸sèСÅbG¡G‘Nh>DMØpè_QÚˆ•+W²xYk*¢&´b ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\­ïëªÝ“e=ôHÈ|#Qææ úöpb© àî+Ñ1a=Ñ·7XjˆÖ³ -"j A×x¬ÀçüP˜*,3 ¬Œ:ÏIDAT¢„õßœ™¨H¯¦èÉÛ¤6 ü]B馟æ)ëTÊÿÐövƱˆÚ†Eµ®I M©Ì¨@otMDM„\!1µ ŽÌo ¬,$ ,úä~KM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈ"j‚ ä 5Ar…ˆš ¹BDM„\!¢&B®Q!Wˆ¨ ‚+DÔAÈÿ?ë‘¡ö¼ ì0IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-ellipseitem-pie.png0000644000076500000240000001503312536324505025217 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®žâIDATx^ìÜMjG†ñ·ªz¢ž}l‚?d„ÍxeŒ1²ð:+]ÀWÐ1t/ >€`ŒÀÙ!‡ Ö eË£©»«Ê.² ª‚Lx~x) ží_ÿSFWØßß_—4•Ô*¿MI IA™9ç¶¼÷Ÿ•¬ÈöÁÁÁ£BÜÝÝ=â?YçÜÄ{ÿEù5ÛÛÛ¿îííµú•®6]{P?¯¶GÙé?v7F;ßý)—?þCw«ž6sÐývy»¾ß+³ñûæ®uV“7~/ù+³íeûY÷}}¯9QfÃýxö~öLÒÏ× ¤MqÔëì„Eè׬µfdBöí3ß—xsâÿŠl›uãíȆ´]ò?Ve;vÑ…ËЕؾð1º_ÜRW°@ @ @  €@ €@ ÿþhÃfº>’,(³~>léMkdMTfÃ|ØlÛ;JVeûÌ4ª¤¿·ù¢NúöPF™ù“a$i=G ‹tš']Qfñ[ãÇõ\#”Ù² nüd|¬ºP•Ø6/âÄTŠi»ä¬Êv좻k¦4ã¦G@lñ&I³?Aík%º@r.ƒ!F›@°Il‹q)ð:óÄ^ípqý¾É9ñR*аxµ¡1WP1ÀØæHð‡¥R ÉÙ¹˜(„úLÅCÆ fÌð=Òî[$§V+¯ÓG°ª  ÀëÊ{‡³À¢$ÓþþBSË­†väÄ%Ôí\K«PÞ", &kÍ’´›Ùfó¾ò:ò¤;8G"çëYâ‘ìn|ó‚ûÓ¦½ÎõŒhÉ´—›™‹´.Þlèà\?áZÚ¤,dS±Ž“6[ñ[ÙšÑGšî]gKgÐêA°û ÙÙ%äK›öà®¶Kwßé8Z¸â°¨G(P È‹òs1iwË!ãfö—àñæi3r8Q„€î< À=žeÑÆ¸a¯LÞG¦;¼@Öl‡R¶.œ¹^þÈ¡A¨½’x¢r9{ˆí#@Ø+ Åï­œo¯t<ßûNùDtJ‡Ð5/©àþÊJц¸ñ™óo–èd¾¹ðRúÄ>؃0ó†K{}õXoÓ”y¤k® Ý ß HÃäáµá^‘ÈBYù¸g¢þªˆÑ¥K—N£(~ûqMlø—§ÐZXóp\vk%$¡»p²ìùhÛ âS³Ö£ °tÀ!T½ÔZKäx;à ¹Œênô7~çZlÐ- pHæÃp$3~tmì&1Å „[ûž)¡ÈZ%*qùØþðÖ’õÉ‹/ïÜö§CY®CÛŸè–¬h,Ë?Jõ–×çûnDÞ ÀGf#O%Þ+ÕîRÁ4E!ºÙgo7n¨Ä;`¥ÙÄ€TâÕßÙ¢Üëç“M–øIÿ]%Âå÷¢íOq¾Œ‹‰•_NöFð¢ø‘cwËðÃJ*ÈJª&uáË·NKVÄ‘T¿ä™©óY„j—^JìtÞÃOD'µzÝoìþ„‚¡É.qb± ÏxǤa Ô· ´L¹â&N Nž¦{º«ýàoÿÅ ¾sç´Rq:sÊ‹¾ Tÿoú2@¨Eaé¿’½½à8bñ 0XIÁä\‹pg¼›ãŸöL(Ç¥$;²O€å'¶J‹ü8´úƒc÷Aª"|ëNŸ”ž :"%¥ýD»’ióÎ3GG+»SRÕw`!ÞÈ¿;rLäNºï©g±âµ|”Ùþì鳺Ý[k|æèí D”½Kµ…¿É <¼r»Ozwö?º%Ubt·›T€Ìr–g€TAV™rú›é#Ϩ DØ»T[;¾êç~xù%ˆ®¨/jí€BuŠ-~h…³4¶$ÿýs×7g^a%Ö¥½ºzädd’8å¢ÅºT·,nŽ÷ˆsÉ&(þ†˜pùZ¾5]™(ûÁL¾AO'ä)áŽ;æÁ&ŠôDÊŸûÛß™üÇ¿Ùû§ßùêpôdK‰² 鿳œQ»;æ+ûcŸP{°Ó¹Úý¬‚%Øß -4˜¢DVÍöCKfø#©üµÛ'¥Ø²à@]›èÔgúì™Ëä?|±úpÆzçz¶ãÉ#ƒ:ô`v©ÐVà€`hªK_hÅâ³¾ªýHÖõ±RÞ/†­‘¢IãPç" ‡Ö R°®ÓÇFô¥ÿö{­¼% 'Òk D¿]jˆ8âÀv*d%ÕæñBIE—o÷IšÛ•UÏ;Y­¡Ÿ¹jÊÆD9HgKa ¾µiÙl뉙~_¶!}$¨¢¨ÓãÓdü²Ð)Ê?jÇ »Üú÷Ç‚„BM€Ì¡|kßɉ ümž5&ç[„;S‡y¾ß=%ïp®z\WÍÉRкW s€ öÆi}"fz½ùÇÎä]-÷ÉØ[’±DìAZ•!a€è#å`«o™ˆ¼Fë³KU{`Ê]îí¡Ÿúß ]ÎlŠÍiN•BæýJPâ5ØÙ°DÚÎ-ë.WÑÚ2Øô=È#í÷ÍÉ5Š/¸§­êA±FrÍG:ï™õPRíÆD~¹‘¿>z\àNºîÛC¿íÌ5H–H¥×׺ȼPdn\$mOÇ5U-YÕ¸»}Ny­=$ê®{P€dË|çkÃÑч!a€˜ C‘h‰s*Å ;ñ÷þÐúI¿•rˆÈŸõݶç ‡¡n›åM—BÆ‚îwJØÑºd´<¯È’fUl^0iKSÜ\q…¤SÊc»¤llÜÿß#!a€ …ï[ì]ª÷+žòsoŸa§S?꜃ÒÇÙËi3š—NåÃæ²éõ¸ f{ã‚}n¥„ ]´ãk vGË"‰7…Á: ;‡„bÅ*¾Èñ£ÎVÔ:¾1ôëçRMPüćý¨N±6©ùèL!l¬˜î€/kv6-’¦c‰"Ï›?‡Ê0j6Ý“dˆcÝât§0@@˜,ò†ÎºT¬åÝèí§UмùЖ)W™¨øÁl!l®gÈŸ6;"K¤éd²ˆwÕ„›‚`0cdf½±[JÛ‘í@bOÜÿäÁÆ=ô@BrDjö¦;ñ÷ÞI¿±û­Xú¸oDxÄÐÏ*R^/ÀL1Lr–ÚHš-13Ü—* lí™r³¥a™®Í7øÁ: ;€äÿæ+“nàÚ¹«Iÿgå¨òMè¨!q*ÐIK‚ª«ÛÑêÿDÏ ;æ­jï¨ 1ä(©v—ªœÓ°]bUÀ.é.80û$ŠçLctvÆ0T³°…ÄI8¨ø¥&—WVxÝ1 Ì[^5I´¶ÀÆÿ£êÀP›^ˆG-;/yáOÏÒŸ-Œ®‚húæ´s~xÎÑÙÙù•éééoí(ƒX–EFñȪ…+ä­…íK¡"-ˆPÕ¯! €ˆ­E–>Xˆî,+A0¿ÚŽÇ–zÐdz1“,§Ê‡CqÀ äS^Yänò.YMþêVÒ¿8ÍF[’R­z›Rh£±þ:Ô"•°ÌaïèY\·‚’—XÏ?ÿü]õ‚s®îl¾ FÚPYä]´ŠplXè8a¥Ú]ª$µè@ÔUÞ`C¿ p=è=SŽpÆx1dN–›Ê¡Æe³­i¸âuçÉÆ.Ø ªµ¥ÐÖ?›RI‰ œºq·¢8Ì«ŸºôÂìvŸ™—|?{åºïÏþéχ\óÎ+ßøÆ7î&]äMzpL6†~ ¢¤°Ìâ÷}"ÖaWCŒDNÆ,_¨XªŸ¿U’5bï™°jÛãå‹/u~õ»_ö(Îp‹ÚlÐÑ¥Ò þä­§Å’Œí€;½ækoX²Zû—5U~ošm©ôQuio„1„P´-8þú¥®¯þÇׇ"Ç"eÛ8î`·y!<0ƒ¿«·žPl8N/·6.öÛßìí3úQjw®'-P¿ƒÂçúo7©~K*úˆ0"€ZVæj™µÏ~ðþ2u" ™;…ƒ™6 H5ƒ‡ûËDLT*Â.¬ï¡‘/«ˆ=¼„ö Ø @”>ßùÚÁÁ±DAÏU| ­}½öOVÒ4" GoóÂÁJ,™ÓREïÁ-©ÐþóìJ¤< ¹ÍàøÁ_}ÿqà`›tèB•ØlÐ&D?pÔhîq–VB´(éÍàøÚw¿þXp°= ÁœYÒ$ÄJªý±Ñ_Iù‘Ð*f«³…Íòjl5ı’ªþ;x¥’ÝÛå RÞ¿Y]’· „?¢$Æc­˜u©ê¿ƒ75åp—3ö(ëÑ¿øé_ÞÚ ®‘/Tlfò.ÌJªzîàA03×ÌñÇ•ð¹Â.ƒ¹»oS\¯k~t±c%UývðV^x„Rª~µDè‘SKé ®è"d%U}EoÝíá¸3¾û úb€@X|¯s~`ªGd%UýuðâɪˆÎ’íÀ©‘„3Jl9kf%Uýtð(…`ànæžtÏ€Ú‰¤üÓÞ©wÇO@VRÕIoj¦…7$¹Ì…ø¤Æº„tYr–Æç[VRíý^¡  á‰n [”Äž¾åcì6fõ+G Pe™qÓUÖ- 8HA•eÄ wéZñ}1”rCc]Í~)…=jžnKœQ¢Rµ£&ÄPj­6TƒØTÚˆWÿ³«éåõæ•>Î Ê)ÿ¿ï‚*‹$McìÜ1 „¬Ô®ÄëÍÕĆCyR]x8®7 ™«ožëyá©+%›Ûr ´^…U7ĆE"Ê;«ÿÙxÏy¤šà=üÙÕÊ2w†»#ìN:žuÍ”Ëaå¬U–}&]¿_ȳë! íB†¶;ãWïž)€ìÐÔ+7ïÏ7ñÓ±6K|Î7ÍîIß%Éϸï¥p°t}ì¸d]ª=öjÚ‹oÃÒg‚Cv{ž²[‚”*/øG–ÊÍÆÐt—ȺT»/UôÓ·ûDûªi¬"ÃŽ1@vy€(ÿ–h"ÑF'ìÎÖV @¬KUͬ”É:ð«oôKü³Ñõ–.doœ['Êç‚w†ƒ¡én»Üb%Õ¯8+¥Ó.ü?WúEþBð®Ð&dí0d ©ÈP¿º5™9d\î•€¬¤úÅ ÷Æ[çDþ×Ã|”ÏÛaÈ^Í$¿¼CÑ·ÎÈ„`ȵÌJŒO._?͉¿䛸°ÅÙÛ¯£(ŸödM‰WÞþ˜’É;põ³+©ÁðòÛ}ÒHì°¦~><°¾ç¨@˜¤_sͧ‚ã¯ÝxJšZlာ¤ªR<“qâ¿ú19íŽ$”ßAšÀV}Â$tKiõ Á›ƒK=Ö›·ú$Mç!+©¶*Ü:"¾~ùIö‡Æ¥óî{`]õ r"]ýbèvº1ºüÃ·Î«Ó Q¸å¬ÁºTüÊOÎ+3•ެúû¡B§¸êH`Út (?圷Ž*‰¡7„îÉ…Võ©ÞAME¹»§×¼T–ÐÀàa9‚â3Þ1囨Ž3òâŠü¹ÀÑ×4ùÚÍ~ñúøI®T‘+©~9l˜<<*þèÕóòjðÐ’ãË¡ëÂCpìÓ Â$Wù®†ë±Š=Ëï„Í¡9Ù9a(rŪ}Iµ·AÒuNLµ ãS­ ¬£Á©®>g/\sÀ‚POÊ|¼Ñ±ª¸2#Ñ Èɼ<¡,k–S-Q·’NµlI²FylPA2©À›”° ´†¡¦óPרÔu²ÎV\b®à€Å¢ŒMAN…ôrV2ü >ïáÒû`‚àCtéÒ¥Ó¸…ûàšØþpœ¯•íßÄgA d,¾™¯úðëõo½@¦^¼°fiGuÊQÍâ°a Ð09`Q„¡ˆ€ÀC €õŸ!¶(ÄÀ$C‹bLHqÐÏå‘M$ApÐÚëÿkûï´’¦ƒkàsµ°ý! äS/^®šíÏÿ¶s?-QEqÆgÎpfÔÔþ6Ö¢Ú„S-Z´è5Ô"\V”º«UA.Z×Fd-ÅŒ´¢wDX¤ÕB(ŠÉþLeNê̽÷ä™ YL`â=ÙužÏ ø ä.üÅòì¥sÊŶ“”$%LμuðÙÚ{Äã­MÙèÿõì €@ €@@ @ ðþ*¢@¦l´DÌ„æ×®åâ"FuÛãh[¥T(Ên»|¸lÛM„n¶ýêfbÕh­3•ByS¸–%b~±Ò²ø\Bãà“=c/bˆá— ãb[•$eÆØm—ï—mŠ ŠAËÒvèàw/©µN‰µÊ³?ß›v¦‹nÎþˆjruöÇ7ÚŹ«T=Ûá¨iÖÉDh·]¾‡«m'Až‰quö§ôj®Ä7ÈŸ|¤@ #2ór&%ÿHõgÅàëÇoÉ¡£ƒ¹§wŸ´‹cãCÇs³Ÿf“‚¶m*§Gz§ÆÎßÚc#qÇí‹c»ûFû'[·¶V$.]û»~ÔEâ(ŽÎîíó²‘É™ÑEbã¸si|ýÄA Èî‹"’Z½7ú3!â "¹P‹dEqÜ䛣!’‘Z$+Šco'q‘G=!’ú8.ïZÛ8àÉ㛤o*|¨[D¦ëâíŸjè8Ù\öw$m[Ú}¥Ä<¾÷¨#>qHÚWI-ÆHÄ‚¢Ÿ\|±’„„‘oö=ûùbE¿Œr{³l2'®œœ¾vêjΜ½~nrcÐ!ögÄà=œmßh{}ÄÅve¦’‘´,CÉ2òù|ºP(ìÐZÏKôš=Ï+ù¾y|Zë{‘E¬˜lQJ===÷yª„Ö:µ´]’èÙ8^ ,Hø -p¶xì¾Y°IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-ellipseitem.png0000644000076500000240000001325112536324505024444 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®žpIDATx^íiŒ$gyÇŸ÷}«ª«úœžû{ö¾×‹×6È6à ŸB>¾Á‡ˆH²”H‰ ¾ ÇH(R$‚íÄB Y,c¾vÍÚ{Îzï¹wvî飺ºŽ÷ÉÔ:qcfƳ³]µ3Õýü¤ùòHų̂´?Íÿ}»çßP£AAAAAA0X…oûÛIè‚' 0BˆŒçy à‘ÝGŽÙ#¥ÄÇŸ¡çq.„H,îÎCðÄ;;;/=üðÃ&¼ ¬Nl‡þoJ§¸ ΠݪöhÓ ‚Ĺb·ëýñ ûr¹Cß¿c Äû¸à8” óyDf·Ü±›õ;â“0î¨cŒ Œü9œ«VÓ—Cߥ.ˆ,H'¶#f2•ÉÀwç<'ŒŸÙÇ›wCÙÍ’Ìã*—þî0ŸGTv£B–¥ÆnËCçE VA$A A‚ B$A A‚ B$A$A A‚ B$A A‚ B$A AÜziCÚoñ  `œ 7¿3p†0î„›6š]à•Ý9àÝô}T.!`J¶Æã„-•0v³g0Á@w˜Ï#*»ÑFQ>Rawù¬eȯ„ È0ªyg*e7( ÃØëƒBÙ¬²;Ìç™Ý yH»9H×u1¤3AÐ!@Ƥ‰*ºuþœèN¸×œ¤3Tn`£f£» ãè2€ „‡R2&‘߈„܇奠õÅXŒyP‹$ˆ7ãÎñ\·3h·$b¦ìOMÊŽô´—m/Xªâ |OÅ·ë f:»6Ý`\;Þ¾eú× O SìK¨Ûb3¾@uľl7xoÌßÉM[ßÑxÅÛ´sÌTWë¿W„‡iQ@£!ïmKZ¾9“ùåì‰Í›¦_iØ¢lÇîM0$D ‚ñdÌùÕìm!Ÿ¼¯cÀië›3З`yØò³Ê¡55綦Þp-7ÆÎ\ëo»ú¯Ýê‡2—ô‰iŒŠ' R~y¡Ï}Ûì:Ð~Îéß6^ZEŒ5ÏuµŒw÷ž+oo⯿¹wÓÂÉLö‰¦sJVX°Q!èKš¨”žžÚß2:Òþ™í/™ýMcvÀr¼‡¤nÊm}ݺ·ñ„(?wý.û’ÕE¬z3eý÷Ìîý-o»[šG¬Õ%N˜îÆëÎáDÎ{áåƒÛ¬±†kú‡3ƒ°Q ¨´AÎ{†ó‹É=‡úŽÙ‹r8àÃV’ H9*$b%ùé]/›Í×GÚJ?™Þ¬7 b_°•‘\ë'7¿j5Ƽ•#RøsÎ%<°é„Õ#‡âÖOgv­«$ ✷šðåém‡z^uãš%ש˜#ì;WîƒAcQ’Ý Ùí—„ AœA;#_™Þú‰M¯Y†ja‘*„9ÂúÞ¶ûØUÃúùôv;=A‚È9O·_˜Þù±;Z†fÉõ‰T«éKÒ{¾Üh^O•^ï…ÛA‚ ÂúÙôžû»OÚþ5ëzFªÕ…Ax`Ó[–zq®Ó^Œƒ& €ƒõó™;3±=3íV©ÂŸs!áÐŽce÷•Ù­Þ”k@X$ˆu"ß–-MÇw´]u6N¤Z}n¨–\üMb[Gféf‹ ï½UÞñ…þõž(o¼Hµú¼5=ëöÄÇxùÕ\/$HÐÑÊþŸ™÷vqbŠƒáDªðçwßyÎfsÞ„›€  è­&å· íÍ8©u7\/¯ƒíÌÃû7(ÿúym'cl¢ "„È8Wìv™óœ0êbüF PÂr6ë>ÐwÚsЍ/'ÚL8€zbHÿû%XFÌA›2):•¶†‰…)Û|­ØãŒ;™Å½à•ÝÒC.§Ü¤é¢€€ñ¦\E‘ªZÏóôþø„¾K7!`ü.%¿.f­­Ö‹ ý›Û†ídƱزÆ—CM2+Œˆä êj‚YF­-çØàÔ=É)>;ÿ`bÆ—£²7»ÑFQ:Yj‹ŒCÀX§J†=XÈ×\Äòæe ¯Úví¼l®ï-U°»uµŒw6\ÅI«+· A‡tç·s›tžw8“ëxKÎ|sÃyÙÏ$d^j°VÄót>mfîhwV”":çœ;°­é¼tŽåz`­$ˆwl¡wwëe×!R…8ç•AwzÐsÍV,¯á`J ÒDUŽZMýÍcvt#Õê!—3¶´Žzåãù.¸YÄ>–ëÞÚ<è25©€/¿c{÷Û}»ØusoA!Hɘ{ÙlßÖ2äÔN¤ZY¤˜ê`wägŸ±Z`5Ä>o5¶§f=U¸X‘jõ=Û;]9[=f$ˆXèÚ–ôj3R-¿'›Êyܲu¿ìV‚ AdUœw­™9·6#ÕÊó-mîs2ß+A åÓŶþÆqk,R­>ßÔ>渗Kíl¥% ‚—Ší››†Ú‹T«Ïu­Œi½ˆö˜‚Y¯¤ÊmGõ뿳i\z—Ìæ%»ľXnìÎLzµ©VŸw7_wåp‰!A–ár¡­7}Í«ÝHµú<®—¤ðå=o`$H”Èœ/éß^ÕQ¤Z–î¦ë^ùB©RD ΓiJå<Æ0²‘*(±{›&<6dV^U'èoÒ娕éLLâÆT·ï{67,¸Î€LÀAA pÜʶ¥æÜõTë/$gžå+½9W‚qd<›Ìyõ©Vž·5ÌJgÄNA‚¸“N<³$c2²·TA‹Ýžž–rÌÌÂÆƒjìËåoÞ ¥öl© „ àMº©þØ4w ¨ßB/U¥šPX˜Êî|ð•Bè2€àïþÃ=Yu–y—ÊMÅW ½p ¸ãnfñß2Œðw£‡\Îx‰¢-•jÔàj6ůÝÎÚëÈìÖVcÞV“̹Õã˜ïTó„©|9Ô4³‚.œc³Èç¸ÜnÊÈ’~½ã o¡š§'ÄÚŸž(Öþ‡ ùHF,œwi£(ë+R­>×õ²'ç¤õ Aœ¾ Ñzá/üy6™—Τ‡ú…A…!<¬½[ªêæMñଓ€ú…Ê«Ý)/žŠ›^ô^ø žNä%ÌX)€$Ô)$ˆœsŒžÇª`AÿÖXÿy&YðpÈ3 Ž!A ž–RÍÈFª0ÅŽë–tM¬gAè Âò¶n¨ÖÆ-U°sÎ% Î*V0mA­AÀtu#V–Ѽ¥ ®©RÊ’TàÄØ¹1ãŸ>ú†O ÇëD©šÑŒTáÏcº-½¼§Á ˆ®]¥ÏþÃç.|ÿ ÿ¼gääp¼æñʨZYR¤Z~•¥,ü¾ Ä]Ÿ90çKòä烗DÙx‚€¢)¶ƒøº|þaL±@š¨ÂH¸!ÉÃO=rºg_¯Y“‚0Æ€F@ŽõF.€#¬ Iò…EI~T‘$‚„|à+íˆî\åH9TIeA)R±•wî2¨B’$‚  œsŒp¤ _l…K¹&AH’§=ݳ·ÇŒ~Ärn‚á•(DÎ…æzÖÜŸ¨HeAГœ1‰µ©ªß!8"«*b‘$‘“Rr‰HÅÖG09UxP$I$a H‰À(R­<—Œ1 ·Iâ¿âþ•Ń{ 4cä᪈¼~#[}‡#9…{P$É_ýÝ—.d ]½ GŽÙc ÄûX’y49gÏ`Yeô`ß=bjx>^m,A— 6ƒ|å=UîžEôY©”+ 0…2¾ÒžÜŒ#μ~ºeìßǰXø,áïfÈ+‚!ŸÆ$H¦¥Áýî—¿³wóæÍ€©J)%rÁ«\†Q:ÄÀ?¨ýA&8VeŠUîYyŽ€PÙì~Æ0Æq¥= Á¤P…\ã³FPAB`„¿›I`ÈEÀÿ÷ü¿gíU±>|&q(5t»jrߟhkîΔ°ªHåwj©If…nìN1+è[*ÿ7ã›{Ò¥•öh¹TlÏŸn½vp÷=STû³vŽ?w¼ñØÏŽ6~õ_;•NýæñÇViƒÐÀµU!GMwøšeñw€¸%9~ò­ç6?òôc§;ú;¬H¶špƒÙ%;Æ×¡—*ó’c"É˰vHŽo>·Å—£kWW)ºïæ5„m9º‹ð-Uxó²¥r#-lX;$Ç3òåˆvq\B-›å§HµüÜsã1áAQn5‰ «4cÑ‹Bá·£¸®` P"H¨’#Ê‚ð”ZÎO$ê0R­¾ß´t& æ@D4 sþdŠˆþ‡Dÿ ?[Loz¿ß $Ç¿ñlEŽZýø5ÅJùR‚Gë–*üù|>ÅÕÍ„!9}ú±Šµ*dµâ|1)¢úÂ_8b3°,Mð,· *HŽè Ò¢ç¦ YVç‘ê=Lƒ lxÄØÀ˜Q…ѬýQzµ…‰“M<œ¿­ˆæ|r&«ð¶Ø<,ªGÿæÅ¯¿™nK;uólj£jYvŒKu©–ίÏ73è0–„¨ÈQ'‚ HPYa&—Vê3R-OÎe…Ö§-AâyƒÎøÜäBVÔÏ-Õû¿ÅÄvUà)nƒA‚ˆ.mal¾•Õ_¤Z:ŸžË ¥Qäß$ˆÚËÏRB¢¨·Hµ„¡ëïHLA‚¼ CT[Enb¶Q©÷?šŸj±­Æ,$ÈïÃ7¥®Ïtˆ:‹T8@ÞLp36ô)·BˆŒsÅn—9Ï€q'ÜtÉ–†°.ð±©ÍéòµÀ5I€6Nõ06(މzЂ¡Ë¢ÿsÿÿ|p¨UHMËûÅPθ“YÜÁþné!—SnÒtQ@ÀxS®"„HU-ˆçy z|"ôV“0GòÍE–†dÞÛ0­&€ºš`VÐò19c¿1ex®ÛÐ¥/+­Â¬²yBl5h´šT°N• {°tÄò;RãÇ{•DªÀçÅ¢ÁK®!—•ƒ 3ˆ¶3>94Õ®°Ú®öá°„K#½ªØ’¸+A ,Æ<Ñ¬æÆ§›•š­öáË×ÿ]ëÚžÄ$ÈûÁwgÆÎOÜ!6L¤âÁDª÷ëþšœjP ¥š<±ÊíA‚h›´¹é|–—mÕf¤Zºçí¡;…Ø•‚¹Ô‰±‘~µv#Ueiêüú\×¶3p3$ˆv 1~e¢[q¥`Q~áøê"¹¼IU÷¤‡!ÂÍ@ Lc¿Ã˜¼4Ú£Ö^¤ªàz* Otm|d-h÷¤GFûDV+‘j C“›…ؿư„'¹ÍºŒ™ #}ZíDª ÆàòÄf»;3  r+h÷g¯žÞ¤ø½YÑŽTKççFvòáÜdà­@ <ÎeGjôÔÕ-jô#Ue^(|tº›æ'Š@ Õ L NvsÓ2x4#ÕÒùgwkfFs%A‚T[OªÜ×pùå³û4ÕHõ.ã-ʬÓèL§- H жëÓ#[¼8Ö­F0R½‹í¨ìµS{5ý¡æD‚ ŒØÇ›Þ>ye»R,éó≃±\1É×ÿ–jéÁoÞ¸K/57NkûÖòfD‚j»’S¿|ýÞö?Úq3,¯|Ö¨ÔþÖZ)Äà•“û•)¯µ$Zcååj|X ®TñCµ?TûÞ˜qý¥_Ü»ïc÷uÒ/èHåÀZ+…¼tô€>›iŸJ=Ô|a¥C9> ¨ WªÐ¡Úªý Ñ¥ä¡/5ñüñûbc×[ÔõŠTþ¼l«ì—/ИKwÌÄ+rtY_XŠ—õ?k}ëÕ‹w1ÿ ‘…|Kµt>;—?éÃÜÚ>¤Ê^"9H …’Vâó­Ç¯Øý…çÝg¼ï+î<Èo_ºC{áØ½šòPëéØ~ê¶"A6(Le2þé¦sæöΫ¿xíýäÅ­šDZ¤ššÉ*ÿùƒñüÎbü/ÚŽ«jd£Û¿žøBÛWpëüO_z0~e¸K“ ‹TsóiñÒÑè¿>yÇ;ÎÜ4@ì$H¤`sõg/*Ÿê8y"¿¿ðìóM¼qfg¬PŒó[‘CJWG:µÿzéAã…7ïóýw&þ²ýwj¯šƒš€P ñË •O5ž“&*#'ƒ¯wup‰¢¥iÖën™” ©¼ÓÊhÄɹˆ [e¥’ÆMË`ãcÊD¡Í(äcBëTçÄé‘Dš‡ $HMÀãÌ5>”†Å/Y”êÌÕlÃÔhG# ; ,£æ•AAÉ0\EWèಸ(»R)ëN ¦;´b]tW‘ OpGß­Oÿµ ÅW ½ï¾Ñt!„ „ H‚ A‚!„ H‚ A‚!„ å¦$ò€£%¾³…шqcw`H»2Æ$0w˜Ï#*»ýèÉpv»7vò jΈÝ,ËÒ†€q'Tù Hä !`üº¿B@Îx‰0v³"ÈýÝa>¨ìf˜7é¥wËþï©B#ˆÚŸ¼~G|2œÚ`zµ?>¦‹"ŒºŸ¢-•0v˧1)T.ýÝa>¨ìFž «ö§x¹P¤3ÈrÒ ‚!„ H‚ A‚!`l`Ì€ÛBå{E„˜ŸXPŸøì÷ö¾õÓ7³2ÇŸ;ÞøÄç¾·7w=§B Aˆ†ŽŒó•=rúÙ¯ÿÇV_’0åøñ7žÝòèÓJ·¥ˆ $Ñ»¿×\"IHrtíé.A B‚$$ B’<üTp’ørüä›ÏÕŽ$ѳ/I*r<òÔ£õ) B’$Iò·IÖ$Ç3õ«H’äGIÖ$Ç®.’ƒ!IV–ƒ AH’ŠßznsËA Cg’GO?ùù'öÀ…%r<ýØéº–ƒ!zöö¼+ICkÖe ðØÏŽ6FG$îŽ:†å!BÀx“®Z>kÀA¾{ÊUü?ÌŸàw«AînfüÒßÿõ…ï~ù;{ýÁWðµSM^#øß#Ï#´Ýè¢ðÛGÂØíŒ9 ˆÃ*0X…'Ÿ|2>22Ò'„#'E)º®¸|Bˆ”ßÈ>ÙýÃþð#Œ1ï‹_üâoèyÜ€ !ŒÅÝE_Ž+?þ¸uAAAAAAÄÿÙÔ#£¿r®IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-items.png0000644000076500000240000017220112536324504023251 0ustar philstaff00000000000000‰PNG  IHDRÀ£üòåsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEØ àx- IDATxÚì½w˜]Çu'xNÕM/¿î×9 häL‚f’HP )Šôˆ’eϬ½¶vÖë±¼ËÛ3¶µã>3§ýÆÙ‡ùœfƶµIIÌT E"Ñ:çðr¸·ªÎþÑ °Ñh4ºï}Ýý¨ß?ä{}_¡NÕ9§~uêÜSø+¿ó«;Œ”qÃèÂh‰ÿ§ùÏW¿¿ú732Æ“¼ Ô­ž]ôݵï)G!´P€ ÂO©Lx`` Ë·ø÷–ìà«ÿëÕnnrù`ÐO(K!tÐëš,«ê•É£XöÓ ÀUN9,É ~ú¨òÊÄ ~ûç~â?ö_}è—~é—,£Ñ8ÂSF×~³tnÖ_ Ò2ÂæôfÙ>,§jFÅX=Ë/#Û-ÇLeT˜…™ &H?}(ÊÆ‹÷âΞÃ=c»¾c׬_ýU3*º@–•ôáFÈPÃX”/ý%*‘€a¬øé€š‘hÌ_ûìg?›_ 7Q£Í|„×s\‘þÞØ_¢Y a+7ô`e6O QN…ðF»XQ®É8­b,År¾ú€—Ž_J\xûBÛCŸx¨7Vóüô0*(¬è§×làz;Z¹_ý;RF…1ÆJÀüô05#§ŒœñÖg?ûYw^gbf»yŒÕquË>Ülm)=¯Ïîü«· ÉÁý®-‹tÆ×ÚráÍ u—N]j>ö}Ç.:G¬f½ö½œJda‹¾×–÷ýUn‘N®¬ PeT„%ØÕ5`Õ}PÍÊq#g¼ýÙÏ~öª Á¯üÖ¯nå ünaÞ í=jVFYœ—€ƒòasº—' è ðÓrÁ ²²Xœ•üôðϽ±EJ‰ÏÃý~úHyrÀD6x~ú0È%cXòÓ‡yî€*£Â¬Žå}ê/P ÈÀIÃH­íöÏòzîO¸WÜzk‹5;ïø|AŒzqãee®ß6dVÚTT–Ñbæü¶úV¨ÝtLéì’%ÎË,â_••Ž*“a4y¿mGÜñâV—5ë{L'…Y¹Xþ9è_ðµe´šßiõØ¢ÊWß$¡7èÕY[¬Y`þõƽTi°zì)oÈMò”Q`!æË°À¸ÕduÅöĦœý¡ìÆÊâ%žG‡ ßs>#üÞ(úîGŸ[Êå¾ õ7fn±>mu[Iß}›•!ÄxÊ(,A€W¦{.q1æÅÍ-þí Ò[i´·Û“~©Dcö Ý>pêB¾æ‹*ÄÅ„3;­tYëžô†Ü„ÑjæÐDés^Ðí­¼^+œ€«¾3nvY?nn±ß:3-€¼žûÖg*+CLɨÙa¦7Tg²Ñ„=n§ÂÂ}VØöå{UI™rF†Ív3³Ñ:ãºI³ÃL#Gò9/̽TùJa¬pà1^ÏwÙÛíŸå)Ã?¯ésëÌv3ëWŸÄ„ˆ2‹ó²ïa*(KfdÈló?_¡wB­¤ý¡ß²Œ‹ £Ëb¼â[–¼²TN:F«é{ Ìp“ÖVk&€O0*½•ß00Œ¯çžÑä_QĤ¼‘{h o"C%%X’ žðOÄÑ.MdAdÁJf2Hª¨„QÏ=÷/‹4cQA~P…”Ê+¤ ,|ƒÄ¢Ìã Üc!æ b*=ß·XLxæj~ã$Œ”ᱨ?,óR¡Š%x ±®†,*'o0 û“e>v' îÉá1Æ/’ÇY _&y4gãÀ.Ší¼1/P<ÎÚ¨Œ”á †?\V¤Ê*°ÞÖ=(sR†‡–O\!cž`ì:Ÿ"Xœ{F“Áô-°>«¢òhÃu†Å™@ o0„5|³Ê+\–À:#eZJ£Éðü`UTŒ 1vÝïYˆ ^gxÁ|X0}žßÔ f^£ÌJl¾0Œ $äJ°(¼.€,¶dÈ!,$ˆ±4 诈X˜y 4444444444î h¬¡¡¡¡¡¡¡¡¡ °††††††††††&Àškhhhhhhhhhh¬¡¡¡¡¡¡¡¡¡¡ °††††††††††&Àškhhhhhhhhhh¬¡¡¡¡¡¡¡¡¡¡ °††††††††††&Àškhhhhhhhhhh¬¡¡¡¡¡¡¡¡qÂ32ê^qëŤ~ã" ß6ä¬ ³)F=¿m¨¢²¨B†Ê+Ëo”†•I•Ï–|Ë2#ÃrF†ÐFá»Ee‘G\f¤í» I\Έ0 ò½ÑQiÈ´Œ,úš‹ £’BýÍ9ŠI%I пވ1+cY19%¢*§l´üÍ—[vÀ‘Ã"Y>[67T–i•9e¡‰¾íY楃$¦DÈwã"‹íÐòFD’¤ÛReƒ$”³Òñ=H‚˜œ•ò(P@Œ‹Xù¬ÿùÃ2 pÜ‹nŠséS.Ó2Dn@Y‚êŠi/B%eGåS"|Á·¶öêÈ£ˆoÉ)HLû×gòˆ«¬ ©2ñÔ5*#PǽPI‘C¾Ú!— •S¶*‘±á:3éEIø_È#"‹‚y2-#nŸ›ÓÂ÷,&DŒ\Å}ëóÜúB%Ž2×÷0•ÉTi©¢ÿù¢Yˆ"ÂkTZ†Ñ†˜H–’2e^ù^'A“^4ÈJ©rŠ«Y1x’¬-Ö,oä"@‡ÐÞiÍGßDÆpOð2Kpߊ"g¥­òÒ6;­¬ß60a £´wÙ3¾eéw¯7Ê,Æ‚ÈâPA™F‡™ó­l➉ÂÚaÏpr婸¸{Fƒ‘··Û3èøœs dï°f€a/L<È\x&(ÞlXħaça’¼…gì]vvCe¹Êh5ófA€7E¿m¸E~î[öŒf#kï²}“51%Bà3ZÍB »pe»˜“&Ø|3ÜÃ0Øæ6sÖNÙ¾æ‹ÊĽ!7nm(KPÝS€x”¹ÅÊ å0P…\ÊË+×c\£ÕÌXÛ­JÒ$0šLßúLEeˆQÏ3{ìôFê åÃ`YÛí+bùgUP¦s›•Þpa@V= Ü'.‚K9Ù'® çE³Óœ5š ßd Àî6Ó`1ÿ›Ü!/†æñ:^ö=LYiÉ2»­Œß6XRˆxÍ çñsY’û¶E•‘–ÌHÇÜbX'!eENƒ ªh„†ÿ]Î\¨ÐðO€‘#úªÀ²°€ãÁ‘ƒ & *2Ê"SD@´Ä8© zC@ Œ‚œÖ] †„ÜÿX£HêMpYÀhG4o‹sr²#)ojVÃ.ˆrT€ì"è\±à~“pÎÖ}·c«†,uO]SÿíÌoŠé  ®3HŸÉ¾>UCgh^g‚ÌrT`ÓªèÌüú(ô<#>=¾Á×0äÓçÖ>$0X0 TAûæhĈ‚µFÖ8 ¶A@@,ðú¤ˆt°Æ Œ¼@´[CCCCCCcÃÐC q»‚ŠÊPiáÀL%lŽfêÌÙb=ÑÐÐÐÐÐÐXCc} 2ÒŽœê:=Ç£v鯰¯Ÿü_¸õ3Œ)è©T¹ËuòÝl“ž M€54Öžü¦…c¾2´óÞºSå,NÇõ›ï»’H0Lо¦^Ù:|©Õ;Wl¥+khhhhhh¬¡±F ²2ðTºuOè=#êÕŠˆírŸ}fdû[.ʺ+ƒmb¤Õ3£¡¡¡¡¡¡ °†Æ°_1PI´e¯$[£“´*Òº’¨ï*ɰm¸´#rÙ0{§›©¤t>°††††††&ÀUæ¿é¤Î^éÚ•èƒIòMbWB˜WØNsbZn-÷&áB^çkhhhhhl"”#GŒy1*)á·9+ÃÞ€+û¿)KLŠ+*S¥¥í»eSQ™^)C’¤×ïÆ}÷cRD¨¬ 6+}wEæ•Me€$ß9¦J—3"âõ£ÿ¹‘”sÝ®‰1&Ó*,†¼8Zþæœ09#Âî DX¶®. ^È6mµû ‹JRºÀ®RȤ·DE†Ua%€ VùBAW|†û“­a •Ô´Œxý.°£P½S"LÙ¾çEZ:ˆTVÜ·,Ó’3ÆŒEzcÈi d[Yå€ øœjøÐ=A\N³ •–á ²¨i XbÄ‹{×W_È#.§Eس‚ÉT÷ˆå´{  ”>çUZ†clΘrZD½~ û–--CTQ†_Q2ä¬ù•­Z:C3*0Åg!}Q2dZ†»jƒu†‰Æ”ÈÀß:âSi^¨3TPŽ÷âTQþ×àö hà5Ó"‚6*'-ß:SR–Ì*Y€ùʃ È|‰)a9e©lYŠÊReùµC’ÄäL0;’iiP^9X(X”»,Á}+ ›’Oð  À¬ ,ãe®ïIF‰@,Á+¾Û0Q€2H˜W6‹q—EȀʨ.q•Sv6¨B ÌëW""tÐcq^AÛçœKbr–9<Î+KÏ…UÅÑXsÃŒÇØõŒ”[¬w«Ìõ%I *ä@«mÇ6ìm ãÉ6›…™d¬™ì÷,+gt˜oÌ1€@²Ì—ˆÔ"½Qbn }TÀÈ#Æ¼ì» —8Ë)+èX£ƒæ ÃhÉb¬Â\ø´Oƒ‚ËX÷ ÌH‡ÅyMŸØ%D="¢…:ÃætÆ÷fŒæ6KDg°¬$U˜±á:B P,Î+,Ì}3–”¢Š2jBgfçü•_î@eÅëÌÕuœEX%¯Áé±wýê3++“9L'ŽD‚0PP}zIY,Ì\& P°~ ÆÒ2î‘G-Ú X”Ux2€¢Ìu ÿ7d©ŒtXŒ¹šIîMö7èÆš 9¨•’Ý¥¾C„(\ØU´ÑOÓ¡ÖHh"ÑÁx‚WüÖ…ÀŠ@º ršy,Î]fþì™æô ˜‰[’³0ÓG8yhœ©B\¦¥t¬Ña^6æÉŒd1^áIŸ¸¬¤Ì2;°,AuO²iæñ¯ å“WÑab–f.Orßéz4_³;ˆ|ªˆŠ”µÑ:!ô€ƒdqVáQX¨XI®3…˜Ç’¼ŒÜwPEdè°0Îöñ ¦Ï*¯,8ç €<ƃòm 'måü7à\ð+Ð ˆ‰É`cJe%ÁB¡s€5j GʱNo µKªÚ[¬„¯ä† ¶ÄÇ0Y(ÇçY5444444jškÔ.$±ÐàLC³3 œÉª’Ö›~^í38gEq;Mñ™Ñ:•¶ž8 M€54üñßI/\—O4FÒ²ª¤u 3g¶ÄG€¿;Ó¦gNCCCCCC` ÕƒÔÙlë¶ú!qí…ѵˆòú©<õ]üL*>+c¹é¸œŽž@ Û›ÍóÅïZihhl^ÔL¾¢švÃÞñJÇ /4­†3 â ˆÉSÌwâ{o3Á¨ôÌtbE?X‚„QYYÒ@†ÿªäLœ@ß²Fe2ÔÅ|3$¬¢ó@l Pµ®˜rV:±b:œlΩªßµ|fþ;†Ûê†è­ üþøv/5º·òˆÉÁJj7s,Â<="U_—xåt±ÙÚšfqV¹d:þ¥woüÅGôu×Çîšeœi&¬±É€0™‘¶œ!Èy6V¤I%i)—8Ià ÷wŒ¡…-&Ðaž¨0ÎÍš(Y„y€›Dj†Ë<ÙDÞrcËwß‚ (IŒ0n![ö7ìæíf켌Q¼1lû"G ]2˜|ɺÈ+|KIbD€ÜDæ—¤* n#JÅà+½1ªD8¬¶ 0¨ÞBÃŽÐŽH²fÈïÍôßÿÿ†øŒ²F³q•ZJúi¬1~9Ój妣åý-ƒ¼ËI©õ©±Àn‡Ü8oº GdR64Xܺ-p÷]ÝÅwœ·ñüÔßï>ÿÒùñGü±á¦mM„5jqªr¢¢2¡ ,c¶ýŽH"åH°#Ÿ?Ûv**ÊQÔ*’e ²’Y†G—€ ŠqHÅÀ“¦ãyV„‰EÏæùþd/D â™H&².’u“ѼŠÛ% 1£†ËÂLܪ´©&ÀKð5Ãdù%,„@¤€˜q‹rVË´m03¸ÖŠ3n¨+»’vð:Y@~É€RDÜDbŠã›ãüN•igsá„“#?rûú_ò»Ø ¸¢NsȺ<’б¡iíŽk3ÒŸ{êûXï»™­ÃS=æÞðD ú–w8TIj¤’L–†’Û›úaÜaÖtÛÃÆ®&ï_þÇ5ôæëošßüÛo´½79úÃG‡îúØÝ³Üäškl,éõˆÉQ7ª&½¨Q(9ÉÊt8êeQ˜S$jš4ÃVQÔµ„*+]/S`‚`>¡OEƒºz‚ìz&f‹‘X.‰'V„ˆ—1ë‹3^aõf‘µÚY–à.`í’áÚ,Ù´$WÑn5ÊdOVKÌüÙײ1O{¡fw,Š–)°N}W7ß ÔÛiÖ—.‡I„f7CºÉÉ êÂYuк@±t¾±÷ÕíqqoCŸÑdô謒üf¤í}k¶k+]Iììî‘pIͤØm¦0o‰{ÿć'Û÷wžÿ/_îþÜÏÿóN+d?ø‡ÒZ 46Äö²Ê‹ 4X¬o±'xkhœGí…"rL×c󇽑ç×EÒª°6Z¦G É´l€9õw=Kž©xVtr¼¾~èR»,šÑ²±;:f´[y¨ÁµÐ¨EGSuRƒ5•GºÒ6h úRóìf+áËpƒIá›´®Ç¦já3 ¾O†óT73™H㨣Š5MjlÓ¥ÝWd[yÂ:ñꮽ٭[†Ù®ÈF˜{;中©©–”!úÊÉØ{CÝ{;/RCd†¸ ·u4Ô´M:ô‡Ò=ôœyûßN5íh.ž »E—uÝÝU0,CGƒ5Öñª¬°Õ¤['ZcÅL¤³n\vl—œ)¹Q¼Æ²<²¬¹“ó¦ä ìÃ^ÌÑÞs»fŽ×«rKý”JEsTCéµ]´?è¤à“êZ!Ð7{æVºUAŸM&U¼üVmòëWoæûâØer³ÎlAš  ð¦@*Ž~êèx¥Pa_øåÏw½û•³ |úCüȇƵvh¬‰ÍÍJG](4Ʋӱ”œwÔ©dG®Âp…U’Öªè2ÏDÃEuxû{nŵpl6Õ0ÖÛØ8É[ò®çÖŽÐ4ð%ÃwN ÄJÛ©%Â4rË´S³VNÌÊäcñ-ywÝÆ«0æ À ÊÑÈD)­–&Q›d“m.íiº,ó3‘“ßÞ×SÞÖ8jî On´“®­*€×_IðÓÓ[4¾kµ´MIË\ô¾ÄT\Ó Yê¡zxÌ-¹lêÊTH+ˆFÕ!Ý󥿍ÈÛû#ÌT2£"NÉcWßÛ]ïŠG>Úµm—ºZFEsrŠgsƒ±Áá¶Pÿ•­)óptØh1óÅOj‹W+U!H;ku”¾äÍïXÔ2ÿªÄS¡ ñ……*ÖsÌ«1Ð’œR½ƒ™y(1ª=xí“ß«à\RsbZ‹}Ï^ÙÖ5<ÖTê†y“U¸ÓS"Ô¬pèlºµ)3œ:´ó‚9qãîïS!†Ðº»µô¿ÿÉKßþÇo׿ð;Ïw?ôoºï{–~@Ã×FS”)ÊÉè»Ã]»"ÃlkLjkR¬ ·X£ÓVÛò(•œQMM³j{~ |þíî½Óᖌڟb)³ˆël¨mwµ^×Ù®ÉB¨Þu»«}f“ßk)%Ã3jMǼÚÏ,i9Å\׸öæ›À·,š[ƒ Úß~É;ÀNÅ"olsϕȣ;óâ I(®T’üÛã[wÓ™ÔݻΉS¡Í¼Ñ^+´ïk/uèÈ~ý¯^oŸžµôˆhøqNÞ@%Á¾9¾µ«ïì–{ÛO¨mÒ0ä­+SÕrêæ"$b9uÏž³•CÑ“ÑøñËÛ½“ùUæzŽ´QÃ:àoÀ×#}¡Ö.bðû]-n|§ÝH]ÛäÿV¹òA2œ£ÑI/d´ë\ÒÍ¸Ñæ(©³~LÄKyãÂå–‘É®˜u_bwÊÐG¬r¢ØššlÚÛÖ õñ´Ç—¾]‰ýÜ!hÝÓZú®_ÿDßtÿ”m؆ú¯|~ËÖïØ–=øÔA])BãÖö&ˆy'ò-ñ‘±¦}uX*• %Sb‘UmÔ‹áUæGœ)hoœ‰hž(¶Œt%ÃßYn½|ˆA2TNÚÒBßÑ *)Se¤<ÀÍg®2ˆ#é£îí¼&Œ$!Id~'œÉùè¸væúL‘”4/‹ŸM€œ“…0% HWi¯&’%óÒ$—®Û(!"ª2Y*#mª¯9'IL•”%Ó†ù,~•“V˜ &$H¶œÜ $° §tµ òWs™ Ì3.Ô›¶È8¼´­#QoevD¦LK;ˆA«‚2eFÚäúŒV ÌI mÿDO•D¼Þ§ "SEe‘Qå”E‚˜LKÇo}I•“6ÑÊõ&nçáHëijš™h¸ølO]ñ@[¯7JTRæKÉ\f¥- é뤀*Ê ¢ ¬77螤œ´ÍwÇ;w[WÂÛ{†„aHZàÛðý6Ñœ( ˆ0U«škr£’2è ª32/-9‹Ò·Î””© +ç°†ðö-"3š¶g/ÎÆ¿ñ×Óyú©ƒcü_L$Ýd Y¨4§3*#m)¤ôi›¦*Ójø«¹5@š2-ôɨ¬˜Z¤3sºD†ÌIÿ¼FÍÛZ(}·‘—Ib+¹‚²ÒæçfÚvx½ñÝí}2"@`$ÍsŠ@¼((¯!Dv]‰U¶C ؼ¹6/BqŸI±ñ|ƒâ;™[ùvÄûÞ¼2À%× ™W6péû¨V•æ]`è;ƒ\2ÈTŠ˜ßÁlÎ Óê.±Àë )%‰ùÞå(@BZ*Åd¥·¸Í)Êû²ø©€A€ )AŒb*'mr‰¯FQ–"ÀTV¦ÌJË>/×P„ª¨L™‘ÎÕëgäH%ÞhLóëæïÖ›ëuÆŸQ"ÍݼG~Ú EsÎE[Ø÷¸“5$¢2-œ•„ÅTI2-@¸¨,ÌJIòiϪ ,É¥ÿ íM 0YAdœ[P€IKJÿ}“&Ð ôæú%:ëFUÜ)°sg =¼µ¨Ë " Õ™É)[2éë4Ž<ºJƒéÍÝ#Wqy©Ô˜rÇc»Z.cSÝ´$TËmJçìHRauý"P•i1fP>•W"ô¹¢ŒÕŽs4ƒýôdžëþ±.ÿÎÞn;1šzø£G ä÷wy•”9·iR¶ôüÉãG–5ñWŠP•ÈT¸¹ ©¼4VeK3¯QYiƒá?°§ ÊBqëÂ_r¸’ˆŒM5ì‰_ä­“’H½¿ÑT€0ÇkVÇI®ãFs‹l^C -½à¯üTI*F ![Œ°¾±vÞÞ=û­,:Ü“™å‰í|ðÌ ¢{2/9UÈ00ÆÊf«™5š /À$›æ+ƒ†,*IFáWw[>r=¯î”˜Âqä` ÄG¿VÑŽDÞk_% IDATÆQ-y ÂJo‚[J–[E}“hTDÀm ÐAÏì°²,ÂV<×ÂBSNÉòuó­”âI^0;­, ù»V™1ª·ºìÌÕݱ7]‰$Ã9É­y‡³¢-1n¡X1q]2W‘Y(ðª›Zm´^“™(êÅ%šŽF›•_IAå¥mu[™ ‹HbF«™gaæÏž @L`4û¿‚ʪ¤TI,Òa4ð¼ÕmùN½“"L1³Õÿ›Ã*#m<jY½¹ÉM€õvŽDÎáà̬svf§Å#áaÞhýôƒs"f»™µ,ásœ ‚êÍUÝSye‰¯ÏlÝî\‰lïî—áPIÍQ‹EåÍ–8^•DÈm€@h ò&3otZÙ•3B•‘ÅŠRjÎx¼ÁÈ[Ý–ïÓ16¯Ï-þõY•‰†§V;ÎÔÓ;ŸÊtÝÛyá·ŸïúÒ&6mÌ„ýÛccVhõ/ȱËÁ°Ùif­¨å/œW&šž¬–Îø÷U€ä7»¬ rÜASU¬¨ÊucÉ¢¬l¶˜Y£Å?¯¡2æ+$ì¨X˜y¼ž—oêo/•ë¢3“uGÚNS"œs‘ÑuF ˜t='Y5¯!ˆ„×(¼þ&8¿¼F±9YF'Œ³c»¼Ò¶¦~kGdz¥ãL‚¹ÄƒèžCCNËòæ,ƒVë[Të7+›ÕÞ€W£yeGÍÞl­Ê¬cåÆF–g3õ–Ñh”@cóùšä÷*«B;ZúEƒ5iŸzcßž\{Ë8(ó6í8xÄÅ™\³sy²íÞŽw±±~VVµJÊ +d©Ã=<»÷ѽ™/ýô3{2£i»0Sà³…+Õ•ª¶©Ëì݉P€òl®©±ïJÇÁ–÷dØ.©š¿°+ ¯!(–Ãxex‹qIíÌXGãƒFœmX­üÍuÜf¹Øb=Jœ-‰ÙŒ‹yÄ %˜aJª™‹-:DEq–3³a&ÀµO~au¶s t_×)yebªåò·v†äžä(oµò›Êéà`!Õî³·õ ©x$/}o5ù½9[êÉO=9eíµ'O „?÷ ÿܳï#¦üäƒÑTT躳à],Õ·\¹Ô±¯¥W…íÝv/ì/ñ›ÑéF~qz›Ì6·ŽÛ‡¢c ½¤¨­²>kQúk-+C¬å3+‘ó6!¿sÇM!U48“´ª±‚Ž®ÑÜ-ó†#Ϩ(u9¤Í@†}èˆcUhg[¿w·óNÌ~{¨Ç=[j"¹I,Åår¾1¹ýPòdd_w¯ŒGòjÉô?§SKŒ795lm¬ÔwÖ—¾þׯ· ë¹³ û+‰èÅáŽý­e$´(ò¤Lg-ñš…ò*çû·™'ÇxéŽÎãptt£É/Àfº n•e¨)D­ïªVJ|éæ2‘" "dœÕÄñU«‚a0¹º±Â*èÍíª ^FU®ñ+ÇW%"GZôÎÉæ'¿|g Z““2Mã¹î®áñ­Iy(5Èë2°¼EŽTVØòÝ\KËL_ó¾m—<‹Ê0—ÈÃdU°žDnr}Ô?hCT|òþuo1Sä¡xH~á—?ß™l¯s|âÈ´ŽßÞ:£ÆÜHäìЖ»N³°SVU_ŸÖò™Uò,"„Ét??¶f;FÍá)–Žßœï[º¶UòšÚ+ì¾’èC-‘Ö QÉÕÈ€KŒ…ï’(—¿u9zú˧Ò“µÁd\É-U6£à…Ül¬6`WH€Dx;\¦ë•=öÖÿ|35vaÌÛAôf‰v,Ó£]½î>ót,üfÿvï\±DmùXR€ÞårùæhÏnqºáî]çÜ"P Ç¢ f)[â¯üÙ+Í¥LI_ ³pi3ESQÁMNéÑ´óÂï<×ýæ?¼Ù …ºãcéÅLqNg²·—ÎÄ3Óí»£ÍD$¯j–×øéÏ¢¿»ž‰—†;Í·gî*¦÷v]±ïŽŒPPÞK€´ŒOí?Þ9ñÅuÂ+²¡Ú¾ÙˆUaâÖúf°¥~ƒk¬h~s”!ØQ[žüÒ‰† ¯œ×»"n)±ÅW ¯Wä|ÎÁ-t„sEL Njósƒ“³ås¿ùì–ÌXÆÜÔ¬Ñic[ÆÄ‘¦SFó@o§ûzºÛIºj‡ž½·sm‰óýÝw5œt¶w ÌÕö­†ï[†m(·Pf/üîómå\Y“à%ðñ_ý®¾þüG/m¹{K~vxÖ¼ô­KQ%ï\"lÚ&¦sæKðµÖJ¡rÛÜÀèÎ7o•—ãÍÉ)YÓ¼ÆÏ3 P(…ðøÅÝæ9vpJÝÛ|ÙìvÒàšcò€UΛŠÏÎì*>;»n’•”+Ü1­ÙÎØ#f‚Ë8ªÕ•"CcµVz³ÄoLC)\Äæ¿F—Œô®ÙûàÁ±Ïýü?už“Úä¡í58-@$HDòê¾­'å]ì­:þÂà>Ñ[ªß°«” ¬Äá…á½»Š'[Þû–j¬›•7œ¶¬ä” W°ñ_ôŒi›tì3…âŽ|î¿|¹=?•»mR‚ª…Ds»ÿûœÚþÀöü·ÿç›þzào?ó7=cƺGLÇTÿäÃ@/üÎóí·Ãévcu##M»Zû¼ke7¯¹Å3®gâàx³ñ•KG½ñý{Þ3¬ëcq ¨¢2ä¸góMìkC{œ/¿gOúí-Oîz1twë)[”“°DP©uWkùÉŸyrðøçßi8ùÌ­#Áµ™±QÉÝëIl×ëß^&E£q[cå©Ï>5pòK'S§ž=•ÜÈtR€H ÉÿFa=62¸ºÝ9g ¸ô8)ºm¢9;Þ™;ðäÁé×ÿêµ–Ñó£¡MM~×xQèlßÑr‚7÷¾×-¿íPyµ®‘sr‰{'ò­‰s}[7œ²wméó–´1€µ+Ýs¥À>øƒ;qG¼ôG/¶êtˆ›ãÁÿã÷ÿÃï½ö^ý?üÔßï8ù̉:¯ì±;mœ¨£þÔ#ãŒ3zé_l)ç6¯ÎKœ÷eR;b— võݯÍð2þ*žÉ¢ìÌÀNv²rwÚx¸¾×ì²3«9)"˜q£î[¹öÖÄÖÆ³çwì˜>¾åHÓñÐÑ{ÞqwmëóÂá’êîÉÊT\Ž»‘¥ÚIu5¸ýŧûO?wºþøçß©_Ž×–QÈ¿«Ê‚µ¤µÚé>£…hÞÙRþà~pìôs§Sï½zaãÒ!ý’jœ!ËìÎ*`¤ÜFQnp:ø/Íî:º;ýüo¹sÓ¦C¬Ã¢€HPϨCçÕ®òÉFïÕéírÔ®‡x*­ìò«™m[3g[tžÆ–†i‰+úú}÷a®‹ÈG>õȸa›ê+¿§Ó!n†xsÜûÈO?9ô}¿÷¿_(eKÆ?þ?ÿkç³ÿéÙö;‘GSQqìG®`/nât5#œ†ìH]*šQD«?Zôyr¶ŽóÒajß=Èî«ïç ¾ÂÚ¾2«¬Ê·r•ç¦ö$Îôõ†7›îoüVôp÷9ØÝÓç5¤Ò’ó÷«C1®`{ÃeSö•ëoVq'ÕÕàýÔ#£^¹<ûÂÍÓ!j÷(ª–¢¼µ”hD¦%y'B÷=[ ‘úÈà3¿þL—ð$î}tofÝß¾%BXÈk©ær€ß 2%ÐíU$Ê´Mºû»ŽÌ„añ¹Ÿÿ§îGì±áŽEd›PÌu°oÛtig[¿hÊÏ8gßìÙ3ÝÙ=LeZ“ðTQ\^*ÕG/ o¹»õµ¤¦…ï“?ÁeTÀ‰‡ä£?öØèKôbËs¿õåöÇ~üñ]õàFØ[í}lo¦ûH÷©/ÿæ³'Ÿ9Þ¼ûØ® I@ºÃr"B‰üðO<1òâ|µå…ß}¾ý±|$ÉÍ$ƒÑ;ÓÜFËôÔZûš%?û½7àÏä‹avq¬EwÁøpý%3„ËÛ2¨‚4å°ƒ±bÜK7DEÁîn–-¦¥i ¹l !1KMcCuÓS;¦y³¹ä ‡:‹OþÌ“ƒ_üµ/vìûðþ´a´\ì¬v#3Õz)l½jé­v‘½YÝZí¡q[S婟}jàä—N¤N={rÝÓ!PÁû•µV;Vk¸³ :æ ‰Âmºh]K‡øË×[F/lÂtˆu>.LÆrêžžw½m3gZ“#^{ÜŽ™ˆUÚ€š!ñV¦³}øÜ–{zN«Ö†)é›üú=I¹¬¥úÁ‡Æ˜#^úÃ[o·7ý«‰p]X~ôŸøäÿës­»ÛŠç_=<;©ä+wT4؉9òážO‡ø£—Z6Óéª(#4=›LÅÒj]lp¢ÇDcÓ)þÎàhØ3b­ïÅeȯ**C\.×y'smá¾ñöÖó§wîq·ÜßóûàÝÇ+íãbžü®HÛvUƒ3iÂxqÙSëTWƒûô/<Ýú˧ëáø éµ_m½S°Jÿ6úPj 86>ÉïU4ïl)ðÿüàØé/ŸN½÷څغÍ9€\aþïz^lÁ"S o·ðU¼Ÿ±+ýüo=×™ß$éxºm¹´§ó²ø@ç%ûž¶d‚ Q]5n‘pÜûÆèÎýüDý­e,\TKö‡AU6ÍAr‚ÃuyôSŒ¶¡¾ò»/ètˆ[l¶~ÇÖ‚²¨œ/ñ¾“}±¯ýÁW[ï´qˆ¦¢âØ¿}tTT<öâ|­e³¤CȾr]{t ¾ÊKžj4GXŽçû»­ãS‡ÊÙÃÝ­ýáqtP.±®£7."å—ÒÛäW'ö´\¹Ðuoä©{;ß1õ\=C"-(\\²w0D‚¦ÔŒtÆgn5þséGG/¼|>yö…³×¥CÔV Vás-]Zá—@­3ñ}Ÿ¬]Ÿ!=ɶïÞQ\y'¶ÄÉÞz]l±V¿™ó@Œ Þ¶ç–ï§C„Äç~þŸ»ýÌcÃfÃæºúy¥×iWÉv9*hIŒ©‡¶ÂðèŸêJªýõüÉ,Â*ªFPNÚêë3ÝM3ÇwžóBvEÞ´?l ýÜ*}NhA:Äó¿ý\û±O=:j€æÁ7ƒsäÝÿâî™ÒD1´ûèîÌøÅqg¢wÂÙvß¶|¤>rG¤‘„!ùáŸ|bäk¿ÿÕ–¯üî íÇ~øØÖrli¸TßÙ3*×z­Yk~$B6c§ÆöÊLSÛ°õð8·Þ'¾äS9iSVÚ|8[gMeêëÍßÞ>$êz²’1E$A*IŒèÿêgšûo"žWN9®•ÉÂÌ[n:m™K‡øÕ/vì:¸«°”;Ü<Ñ™jD(6¤2ÀµÏ~KUCñ—ÁµtˆgN¦Î|õt²\(­½‡aH×,b½/¶X÷"…LÝ ×Äî|xWîÀGL¿ñW¯µŒöŽnžË2ü^nS… ½ÁÜzÁÝgŸŽ…O mõÎ`W)Ëa7îôM¶îgR÷ì>ã…ì Ýôß^KòëÓß\M‡°£¶xùO^jͧówÜ‹^«ŒR@ª£ÁÝvO¾÷ë½±ÿñS¿ë‹¿ö…-ÅLñŽÙ981GýÔ#ãÈ‘^þÓ—[jYgÈ#f%fðùzÛI~Wk· >{ž‰—G:ù›GÊùý[®ØG"£h¡”ii{ïÅ7Ó]ñWz¶\:¹ý€u¼þƒ{ßQ÷8SI¥ÒòºúþU”©¹qFоòŠjþ¦ºܧñéþ3_>UòÙu¥| ×ÿéµ.ç­p†ÜËœ¦0&0¤ÐS+6$ò]EË*çÉ·  òùÈöríÜäo¥\…#"Rè;ê§€![P¥n¥¼A¸&‹E!’ÀÐ.%‡™ÁYóÂ_\n$W0×8ÿÊŸ¾°%bDÀKWÿòꫯ†c#ñó5³¸ÏI'ÈR&Hb4ÜÙT6Ó,ÏW4_Ws‘<àhÎ/í>Š0dÀ¯„•¼L°ð÷DP)º €ÌJÑ5>“+qí›ÂwOµ ¸Å¸§)/¢Èãæ(aˆ÷oÏX€€ôVû[é ÌçÂÿð뿽!ÜÐ “ ô¦!9SׯêyÊ·|0A`ëü†Ô-4ù±„ÁÓãy'ÞxÀ1·€V®Ro„+°\ô8ŸÎÙqV€|ļüî®ð{ßnjÌæ]éÝTDÎ8tÄšÃ[r|gòŒ™4³²0­ŒUEg^Y*ɲڅõª¯1€3evê '›rª”XÉœpÁÙ™WΤÎ=÷P]æu¦)™®keIî¿rF L@ð¡Ïï+61(‚ 1 VÁ#MQxÙ¿ÏôO;½ã‘7þäõv·èò¶]í¥þoõ׿ñÇoH+d­Ìæ1(ƒQŒ”%¿B€,„)a?Lvâ… g¿tf_2”ŒÀµÓÊ×>÷ê–Ð;‘6 à5 c ÃAªwÇU8ò`ªhg's´ä!àÊxͧ0‚ñšùÆVÍk<éÀÉþ}x¶_¨1êõè½KqÎx"aÇÍöh}(fTÌgЬ·ÇxÈ)SÈ©Cå @9³¯Q€×d Èk5„£¯5µö}ubÅ‹ÛüÅ¿|±óì @ f0b¦E!N€R{ïQ1†€ Éï.Ô¼¯_ÜÕ´ƒs»ìëú±’íú "À%ú±Š¾ͧºÀM²GÙ ÚÀùFÂÜi<#Žt˹&`Œ]=ºW×ÿŒÐðy´¯‰!ŸÓ$¦n÷•l6ÐuãìcÓB|nœüµƒójs£Þ0PÈ%3™â°ü¸'Âv@Í͉þÚ!àD~|csc€€ˆ‹õ†!q“ù÷5 ðUgÄØ-umezC·ô5Ëë Î(1éPø$4eÚãg¼Žè¹É|®QùëæRŒôÄbñC©ÞÙpY1%r @ôU¡93 Gt—ú¬æmhþyäHœ¯l®g8?–„ ä "`ŒA ñæL<ˆÎ’Ü>SÄÈ‚ œ¢ Q÷à§2ãó¿{­-V÷v>°3lKºÈoê›±*¾&h óɘ1«Z¬3×–5q"4€ƒï6lÁ±.”dHèŸ× °øšeÚ™ó3pk^³à³+LK·à¥ü÷\:“Í»%ËFÃé6±–„a5DÓÔÞpŠBVá*¹_æKóšù?­˜×ÜÂ×ÄbE2•iqc姬ÈQ!!üÄCÎþШÑdøÞ—Ï–ì]ö´o2¥WsF”_2Ɉô•! Œ0fð½¨!rF‰ÆpÅïâ(]2˜ Î*Ž I#Z ‹ŸEU… î '‡úŽ:ヌöŒ²»å\žuÎõ;þÔ‡ºê»Îþêýʵ¿=z´~02dïsFXÈŸƒ!A̽èÖÙ»ì`@^o©Þé};oŒz´bC%²Œº«ŽX-ø,Ëd2 Å5³JÝSŠÐsÔ…¼PÌ ŸqÓQÖjËÕiA—-ÝS>Sjrö‡&‚,Jî¥JÑjæo•µ"`4…UÉ„Ä㟧.Ö3ÿþÇ/Ç®DN:µPo¦£ŽÚ»ßùÁbR„É#f¶šy¿dFe¤måtk¢)Rñë'D‘,#¼ Ý[ô]¹àñÆ°Ë vM÷’-3ÐÜ*X×Xwh¤nkÎÜ™dqîRYîùRCÃø@h{CŸlªŸvTîœ/KZoÑ—kvà(UVÈä `@á)Ç 3ãµÿöjó®‡wMÝ÷ÁûßeïâìU½9zôèDô#ñQ{§í;¥FŒÍësËêôù:)*SŒzQ«Çž bŸ¥S¥¦ÐAÿ6þÞ‹ï%2|à‡±£¶\8†<ÆÝ¯ÿÕ½Ç{#ßópú®§ïže»aMVyeŠ /bm³ÓAd ì¯$`åb¥ÞÚaÍ,CÖ—D~*o¼ü§/·ìâÀÄ=÷Þó.;‡Ù…¾æ¡ïzxÐ95ZüóšÊùJÊÚf¥ÑBß%×¼og¡¡4NÖ‡…o^£€)AŒÛ(|¯sóQ¹k>ïÿv¡b¶óÙVVÍvñPK”Õ•M'ʳFKjDÔÅs%دڀáû’À”$Æ-~ßùZÈk:c²õ‰žÑ•lƦú¦ì¾³}Ç~èÑÁmÍ[O×^àÍðÒšŸ6ü´Kk$Ó-0qiÂ~î7ŸÝrï÷Ý7Þ³s{I\ðÖü.f h*EœÓúÎ-®Áx^}cVq”ÜÈá¶/Þyáå ñ³/œM=úc 5ðT¹p%_ûÞHß²Œ.Õdzê scù¦K¯÷$¼ÝuÃêR®©‹õEwtöQ4\’ó‹ÁêóÞ«å£VúÌr¶¢Ë^ÿËךܢË>ô#ÇÆŒa®ŠPÕ!R~æ±±–­¥çë¹®ÏýÜ?ï»0>ôø¿{|Ô [êv’µœ+óWþô倣ÿæ‘q€ÚÕ`¨¨&x ­„\"ô¶šç/wÛ™RšZ3ªÓ±ê" %æ8žÇ R}F_ü7 1—Æh.©Ÿê›²Ÿùµ/vùž{&vîßYïyTÛU 6š´y.,Õêßj®"$‚¾o÷E^ÿo¯¶>ðÉŒíþÐî¬ñLÞÚϽ…ÒeŽTÄ‘ƒ¢ ;¿Æ¼ÄxKÁQš–09ÞV‹ÐuQ޲ÇN={*yúÙS©OüÆw_‰7ÅEå|yó“ßõ¬0²ÄwŽíRO뀒ý>ÿÆö-ñ ܽû²»ì‹nka ÉüÍPÊ–øKôR‹t{âßdØ2-*—@ÃLÛT‡?zxvûƒÛs_ý_hûæß|½#3’v¾ç?ÿË+· .fŠü«¿÷•63dªG?óبT ¼¹üL óšBÉaÃãMfWû¨×Ó9äZ¦wÍ×(å5kPdŒHJÂåÐÀ‰ð«öJë‘ï¾gâà“ÓbÌ3x›è&¸õ¾¬Úäh#ÈÛ*cŽcÆœ¯ÿõ-ž:8½ãƒ;rëë½™tÑ’’Ð0×Û `íôF1¤Ûµ „O~éD]i'~ú#ƒñ¦øæ+Ç´ÑÑ™›ü&_ ³ó#[qÜILÎ[Éã}ÚÝr™Õ'3²¦|Í*Q˜-¯ýù«ÍJH|ü'>>Øy¨+ÏMF³Ã³Vß[W¢ûžØŸÞÌ·î]M{°Â–zäӵ–REUÓUCVTÚs½xÍ ž‰FJêwŸ(.»®1^CËÖ3›ê›²_ý³WZ÷Û3»÷±½™…«M¼u[}E?ÖŠüâõe \K{øÞûÆwhOvݯB6™,³Š~Çy•4‚§LBnÛèï…W.ÄÏ>¶þÑ{t¸eGKyÓ PKe‡<31SÏÏ íÄüÎöc«3k8LP‹™Ÿ eß>íÞQ¼dlij]˶ù¿Ep‹.{ý/æÒŽ}æÑQ'æHШ*gtä»Ìœøâñºg~ý‹=ç_>?óÑ_xº?Y—ÜtéXå\™¿òg/·<ò#Œ9QgsøTDr¾TÒFòš[¥@¬'¯ê¶áy˜67#¿ÏüÚ»Ž|÷={Û›Y|rí¥@ltúB5H+«1…]v‡º íáÛ}lOv#¦ž…™(°¨'ݰǫÅ—¥tfÑ!äELa”Wn·öZÚÃÿw2õ‰ßøž+ñæMùÅÔ#˜{ùäâh¨my~¬®ÏŒ±k/Ù¡‰ÊØj§½¶®3Ç߬ë¿Ð_¿«ýDí|mD˜Vào®¥=T<öÄ¿bØÞ,DfãðÓwÍVŠî¥ó/«+çÊ|ljÌcˆY`oŠþ_K{pLõègµ"ö¦Ñ´Pæ3 Àëï·¹“/ìª"ù%b €‘¹Ä;6×Ò>qdâàS—|áÓ¨míYßD`ÒUëùªK`ì˜óÆ_½ÞràɃÓ;Ú™Û°©6Qzh(!ùÆ8€5Ð"Ĭˆ ˆp÷vZP¯¦=\|ýbâ‰ÿðäà¦#¿°Â¹\GÛU„09›â'»ÕTKרµË™ÂÐÒQ ´QØ÷ÇÆzwäóÑÖžè¥PGû$†¤ ó?+ðÅ…Ù‚ñꟿڬ<1Ÿö Éïzá¾ï½oêÞÿíÞ)éJüýÿ×  îcÿáñbË®Ú>µÉOå—ÿä¥+dªG>}lS‘_² ‘­Ä®WÕ¯©V¤Õo`kä3ªð›\>ÄXŒß ÃWÓvh÷ìÞÇ÷en6?›ã&¸•Þúu+'¼žù Õ¸“aM£5—&ì/ÿçg·Üõô]Sž:˜^÷´‡EýcóÊÂY»ñ\î¬ò|€"Y“ú7>•âØêd“ßg~í‹]Ÿ:8}øé»f§=,Dí—A«¥|Ð¥¾ckÔ¿j•A»ÉîqèÔ`øÅ?|±íÁOn\Úà ¢Ô™¥Ù´ãxmé„Ï]µT*ä¨P˜mþ)(¡ðä³'“'¾p%–ൠIDAT¼á»7cÚÔáÜ)SªÃÓ@¦¹cÄú@dŒ­¦æ(ð”Q’ûêe‚Mœii=Ô~ÆhH¥•ÁemTR¯âá×~ÿ«­^Écùéè´‡ ãŒû‘Ç'>ð‘”ìÎì×ÿûãÇÃ÷ÿÀƒ­»[Jˆµñ¢WöØ ¿û|›aêñ÷ø¦‹ü.بʊªäË+É©Zñ=¾yMµßk ÐÂØT ÍÃεô†Ñó£Î×þëWÛ|âÈÄÁïi_«£ jÌË¢ÏS™$÷£3 46 !^;$@Ÿ©çç‡{0×Ó1È·ÿÿì½gœÇyçùé âFcŒùQì’F1VÇÃ_ÀÁ£åbÄÞìšú†VXµÕ¹¥yÄnÕ‹kyΘ‹£ K1ÕñpØ#ÁÊÚž¯Oy}r¤ZŠMîKtdŽ××mÛp\Z–"’sÚÆ@góCÂ8_P<“Oˆ.DDsc†ÍÆLèÅÍ.– JÌ`M+ò˜ˆ:>1†‘Æ8ÆÐš¥¹Çâ<”ƪÖäéyµ¥ã–Ž>Lâàî­G'ê~á¯ÿý1'é¨ÈùJªìl¾ «¨¦Ù…1J–`^]ƒ°:î£~ÑÃjÚb.“gýdo‹¿µ ë¦J-k;‡Dº²®A`ç9F„„I×h@d@(.±X™¿®a¤ÇëšjÍÁ“+•ÜÐ<Ì*`EšGRh£è€dIæñúâbÀêx Eøã‘ÐF‰ 4F|³?G†B'rd@À€ÎÙc‡ƒF~0vØEÁ¶ˆlÖC xš{,±\Ñí‹0s1`iæ± —¸$1S¯¿X#wsã“] ½j4ž´*ú²í æø9dÜœí+d@al ›VÄPgª ›“y«Y,è ÆPòúh¬šaKsŸÅY¸ñLäÍ †(Ï"cì’˜ÅÑb—âãuÜ ûªñ2q3ߘ“'fòuüÐè:ʵvÚ÷¦F»ünã1£XŠ{¼>¤®i¥ ÌYˆOy¯AOGaøP]Kö­ÆîMÝýØœš"!´å‡3ÿ‡ã !ÍlA}M!ºL^ €Æ™Ïëyè×ïT›ÝÙŽwº‚š•µu|¢Ë‚H6bÅÒÌãÉpX Ô¬ªÅBžãŽŸºcbÅm+òãGÇc¾‚#ÏIu$Ú¡£®Ë }(Œd1°z^CŽ!ßæ C—]$€qvc/’®a1ð:î…>ŸtIÛ,~~Ÿë]u#ý¯l´œl\Ñ:®èŠc ª®!˜c#„TÀŸÑht ÁÂuT ¬‡éöÕ#bM,«ú½†HóHM+°Q.­à®VQö|‡ÁU¹wÑêæn’¯µY’ûåx]¥PMÆ“neéî=çgJq®tù|«sÜÿ{C²ˆ5öRqïæ§¼UÕÚÆÖ1{•“Kü'{slºVßSÛߟlï™éo\¿n]çÌ9¥¦þ×p;j;j'^>‘üþ—v÷&S)zÿžêæ¶ä-×2œ,`~S[G޼±qU©ÙÍuYµäæµyÌu×ê ¥8ôŸ\!FÓkF¬ ±é·Ù¦ ×K~’ZHÇE9ªŒ-b-¶ˆ¾šç/Ñ~gݱÜéb—¾fâ"ø|ÎÏ å–ít•¥¹ùjz9Šâ…Ä ”k1¶ïøFû˜Ø6íßÖyB¬v²K_üž{~â]Vom>ÕïmÌ¿~p‹•Í¥Yè ÃMAÏŽžÊG?ÿ±þJ®lýóoýÓúÝÿíñ®À“&"o³Êòmo­c¹RŠ]µÖØþîZŸ5¼À¼¢4Ãþn«_mœ±¶&'¾)X^x)}½DëMzn§è¶‹“ºÍ+Uãìšø|¡_²^"± ^…bsjÌÁÿËIø.pR”À¡éöìÀ]ÁØÆ-}üކÓ,BYÆum~‚ØËdoYä¹÷T¬5ÏÆ¼Ìïn옭7Ý¿¹ðKÿ×/íüÈ®ñ½ßx¹ëO~ìËÛNî=™¼°×pÜj•Ëw¬:úÊÈN5:ÝÊgki~ºVG¹^E]#ÇC}kÙÜ5Înk:åcÄå#€—âÅ‹±öù¢ ¼e<±M©±ãÝ‚—Î"å2o ²ù4ËYÍÞ"*&½/#ñ»À8*VìÐà±?·£Lïl=a­YF»¾—ño·KÖ»NÕÛ§ßÈf²g.ϸÚ†ðÄêcêÃÿå#C|þc}o}ïÍÒd"`!"¸Ý.ù»:NÌm© Oµ ºÐ}‹u±ÅBóÕ¶ó9Š*Õ9¾Z X›'ìɱ(uØ—céÕ_Q³˜¢úJ~½ëz–“îpJ™£-ÕbeÄJ'Êúj®6#ÅÍîþŽLµrµ£aÜ\tƒˆßKÄÈT®žÞLÕÕ­CäqÆ›DõFr K°ßQ7<9¸®”=Öн¹ë˜µ¢g\šú_Ã¥°ã¶¾õÇoY±kEÙr,}ð»êßúþ[ïûÔƒ#mkÛjÆCóXxv:%k?ùæ^¶º\ëO¬í¸P ?Aj¹\lq}T,&ØÁã0ÛÖ3bmJN\ßsùnÙLNaÞõ:úzÐw죅ª´ª}l8ÛŽšØµóU+õ˜‰÷äX‹]2Y} áËô?@¹Ã7×ó—¦î,{÷®:$¶¦&Àº1¯¹F µXÏè÷õÚ—¿-ûòÁ<—Oýh7ø~ëd/ˆÐ¶¶­ÖØÓè;IWzu þ›¿öõµ}®ñÎ<…Xƒ¨Ñ{;ŽvoÛ{b+”“ç·¥|±Å"ýŽX8<Ò&ž9r—ݲ®oO]Mñ °¯BŽâÌ¥$HcÕu5k„—‰0aíNit¨»Ò]¥ãe}µa˜¸!b0”i£ìŠT®>úü]ÃÍ7“Ù&~|zÎ6wŽ[[“×ú6·ëæ•}wý©‰cNSåD¢}MË€ÝÓ=.êåŸ[ W…M÷m*üÏþÓG§NL¸NÒQÏåùÖ5ï\SìÜÒUE+—o*÷¶äÈtÿê꫃±ŽUñ·§}J .?Þ®ôÿ5œ þmÍæÓìÄðJgÝY~gÃHÔó¶ç½ðXvÔõîÜk$W£ Ëmeœâ^¥£yf0ÓE×=&ÞÆ¿•ª‹ÇÆše.(zF,cñ{‰#íŽîµöOm÷òÛV÷‹Éñ›EüÎÙ"Ñö¦ØtegOÿ[¹­…7ßZëxž…óþFÁpÓ±êÖÞòퟸc†[‚žþÓ'W~ýWÿ~ýÉ—O$gæ²6Äfª»zN…3{l³ÊU—…¿Kñcü9?“Šcÿ@õÊÑ4Ö¹aÝÖ8x­Äïlz[Nb7ìÙ¾×KT_­6ÝL£ €µ1>}jdMCwq"ÑÎ/ì°þ«üŬTß8¾ŽŸž,õRÒœ…¹œÅïˆ2Å:vxtÌ´ôŒÙwÇÇøU~·´W¡@¼ÙªÂ=­ý§Ž¤Z&÷·vlí=Æ[[fçúÆÊ7†E#Õœ”¿ðµÿåÐÓöT—ô%›˜r{}Æ™9.âr:¸Åª@Kó@n¢~⩽ÍkV¸§Ýíc¬!UÔŒéå­k¡Zup|º…õ­V•æ¦1ûáĨ`xÍcB,ÉÞ_Ì‹-ˆÄÅ­¸A´XÁÈ–q6`@¸£näÈë«×ßâF×ö躾 8ó3"„¡±vžMµfÊþ€ùöíþ84Ñ.úkëÊþÆ–1{¥“¿ä•æ7嬌do‰OzM]•×%:VçúêVõŽÊX¬F—?†›–ž=•ŸùëŸíøÆ¯}}õÔ‰ÉøÝ?û®Ñ]?¶+Ë]iȵ‰ ÜÝÔò`¬}"ÓeuM ¦;[¦uC]A1¦£k”k¬kÊ•8ŽŒ4‹™ UNƺ¦Äm±i§Éª^¯œ±ôA»Ö[,ÆYà mS”€ #è–c"h¶*Ù¶îÉ¡©6~É“v®C‰K¾”dåUU½®nܤêå/~k¾ƒoôo²ŽàöLpkû€XíäŒø½Ø_¼Ã.á­Í§NZ[Æ÷î߯ …3Øp%¶}`ûL5_ÿò¿ký÷þ`w§_õžj±Òɪ[ÛNõìxmbWõ¥ƒ;ìéL=¿èˆÐëYòp»•Š‹‡Ž®±^Ú¿“ƒí“™Mkû[Óüùú‰_€¥º|-Dáb­†.õßKù:åå ÂMé‰c¯nvSùJº½aZŸ[Â]‡ QüÀÂc#k¨²ºc”Õ£†e+~)p|¦‰˜ÞêÓÖÆS¢×Íw…á˜d¼£~¸8•Ì<ûjãªíÇÜ®–QŒ;> Á†K°õÁ­ùÞ[zßúÁ}¿ëůíé9öìѦû?ñ@~ëêmÙžáëFÌU,ɶ>>£×'fr¹NgÏî.g¸˜XQ7"ZÓÓ˜ˆWµëzt^%Áu*¹¬y6Vk.æ‹I<9Ù«rªÁã½±a¾Å)A^:¼Í*/·Þ8%Q€¾Xl]ÕÕмíF)8s>í$Ž1Æ$l¨?¼o}<å–E"^Õ×$n.øoMýC=|¼qÕ¨½ÂÍ˪gv2–)åjŒ]ãvwîjM¼j¼²€ ¤ETô»›ú޽µ­cêhCËæõ'XCSAÏ.E²9)ùÜGO·­o¯¼ð•绿óåow¬}dÝpÜŽçÌ^Ï<þîú“ºrNŽ6¥OÎÔ ™©Dšr±T¢Lé¼N&*ú²5ú‹,~+—esi–+$±¨ÓA[ʾ¯°ñ¬Û$ªÈT^9K*ÝPâw±;÷j6ß6Qñ{9ß,cx›U.oì:|¸°nÇšc?ÚÀ] ø8=Ö!N±õYkkbÌ+òe»¥2•käo ­cÅõ݃¢×Í2s„](X’û¸³ndâ€P•7ã­ë{„ÖfMhx›xáŒÞùoïœ^¹ceeô¥‘-5;ðØÁTçæŽjËêó6mZ‰ÕqÕŧ(ˆÍä i'[–›©¦œáB=/Uéx™šês$ä8KÆK:²6šósÏ·qz¦žOeX>ŸdÒv|¿> Úy–K ÏŽ1¸tçHA]ÒŽ²UèŒE5²t^¹ÀÃ)M>‰¬Ló‹¾nZ€°! Œ41f]ð:e奼‹Èkã¡„,hI"2À°+/ÒÀ@¢@ÚR@ŒÙȵf(=¦± m hÞ}­KÚ"ŸÎ[(!"êYº ò(\Ÿ+bºª-•SÎB¯‘Å:«6ܺn”N²ŽMmÇXÒ¾`v R€Ä]´ä¸ÈŸ§Æ:ّ즚ÞQ?‰emè²â SEÛ*~…KUQþ@W´¥ Ê&ŸÂŽgT%e#(eø¶h…xþW.ˆÈt…"ùH—fã7ÊN‚.j{hªCg ÞQ?ÈRÌÓqð_XÞ;¿áûÛ \•£„ õ%y$¨í9%ö4 ¸<¨îèîí­†Ž`H6»-dãl’OH5-tb,"FWº¤l•‹Ï5-ôbø9bÌ@•,PÀuA;J*rlZºͧ‹3=ªéMµÂP!þô>¹zftÚú©/ÿôñµ·¯«,ÀŸŒjÚš3gõ„.)GåÂi§«ÚRyå`„ otYÙ ˆE¹*]—´­ËóˆŽÓ–GiË«­JOægdlp2HNín’Û-qwkP/`­‚-|°íWĘšòÎ΋„H޾´À ¨Um^¬%0_M£çÙS¬ÙʱV§À·ˆòY?u¸ö‰ƒ~^›w[.×ç’U£ÙÐ%-À'!`6Plä=P"`tYð–¿sk0ÿ`ÃKL>q–b¡W‘ƒO×qÁu÷Ž®b„ ÖaJˆp5y$( Æ’Ì¡ *j—׳Ù׺mBrO íŸÿÖ‚‹0ÕÈÒå ®ÏIÃl”ƒ!Vˆ¬É.ª5ã0ª»¶;G¹%ZÐ*vÎÿG"@RĈà2g # ·ñ#ÅMEµªa|bäÏ@UÕ³¸J–Ž"Ìj:ÒߟÀª æQØS)P—´€B…Oü’—ÀTÕv$•´ ’Pç• nR!ŸëM°ÕÎ i ùþjZ–¤­óóoùÄ.ŒHè²vЊ°±7;®ì(·‘é²¶I^bseaúÊÖ 5˜…ŠuÙùÁ=“i‚æ[îœ.Iâ%_s”ŠƒÒ |@Ò€pÞ zæ2"ä Áa$}²±•û¼žWmzîÎ.U´ yT芶u%Úx&E,jüê²ä“˜Âšh·Š¢U¡uVIÛÖ ;"R!;²z^ãAV骢¶í•v!¬ñW§zla«uwo kÃ?å׉F^eiî‡o‹ruE[V·Zˆ“GÜ?å×9œLèN±KNÉóît×Zk^Ï*¢Û*° '€%1ª·W؅Ыã«0òÜ*O鯭kN1ÇÓóÝõ=ÿß ™…\RDk08Ú)Ž•6ñ޶VúüE‰.šY/[bO•åïÏø•‹«Äâ,Üx&t¥m"ô‡ ºª«ZkyAÜHÞÄKÖJ;téNII1«Ã*…-í!8€½ÆÉFñµÌGë/6ÌHŠN«`5Û¡v'©¦`Ô¸‰{âV]@¬²s!úUVUµÖzN̼I”¬•vèÝ[t¤íâ¹¢-ä@Qý5fðcà@\t[+i‡À%m¡}ÝcFR¸Ýkç×®YGÝw÷d츭rF°®h¦rª27f0Áj¢Í*ˆöðºFWɲVØEŒ°‘‰ÅYÀy-´› ÊAGÊH¾NB€½fáãòœO‡ü4KrŸ7DhK^9:-nHÓ‰HãÈ „œ–µ¥} „Áp9jhu c‰-3ùc =[Zó¶ÆiÍ.ÌŸjÄ+U­f§µSö»R#è0óÁ`0,2nÊ5¹Õpm%„qaYƒÖ*7[‹uûŽÅ;VûëVtŒË„[¥‰ß WªšãøTÌõÈ©–Þ{Cl:ÒN€Á`0 #€ †ÅÁ¼Ã.éTË©'âÍc}ííkšN‰^X¾5“ Šå;|r•˜‰uæô¦†1»Í.GùˆÁ`0 ƒÀÃU%y;ÒcÕu©©}‡ÚÛÞq®€s""©8z5^Åá¥ZœNeV¨ 5UÄŽôˆè°Jæ~cƒÁ`0Œ6–¾Ž£tnKŽèBlªÿt}}^Æ’ùl<¥òŽMžà¨ˆ@##–.yqUŒ5ƒD¼"¶Ø·Ý.™ó} ƒÁ`0Ø`X~B8Í}{kb’a­”´«ÕN’8)@D  ƒI•´VØ9§QÔŒ× ƒÁ`0Ø`Xö GÂ:îÁÛ±'+ž…¶9ÝÁ`0 †›s_¥Á`0 ƒÁ`ƒÁ`0 ƒÁ`ƒÁ`0 ƒÁ`ƒÁ`0 ƒÁ`ƒÁ`0 ƒÁ`ƒÁ`0 ƒÁ`ƒÁ`0 ƒá#@‚F…ÃHàD¤C›PÄPR¤ç  Em ‚ŒöÄHFó)IbÕ’8)Í"·E_âïgûœQòÂ4Œô™ö±ð·®‘ŠÖW³ÏBŒ$q H…í+$À¨±·m™½HÏ$gÿ6jÜ^d[-¸8Ó_áâæœ¨q£#ç†@Š8ár'°(m‰{ðÜs`¤~Á âA[„X„E‰»ë3x&fÎäÞ~†¥3Œ”f'R;œé—ËÆc”\!žk‡E°ˆ"ŽX MÂtÔq$¢ˆ 8h`BçuÜòëYŽÉÐÏ3$‘¦BFedBç”#c,Ý¨Š¶µGB{ÄC;·qòµòú½†Ðm™‘ ]к©-ä‘ÐUþ²LΨ º_t^ *iwîÏc\Ψ$ x¯»šx IDAT h¡›üädD¢ FMË„×ï…Ž]5%“ºJ eǯú ªà¨ •òú=¶$ÚbcX;HEí¨‚²Cç„Ii1ÆÄq#ä„LƒÐcK—´Š˜.i;¬I\ͨ¸Ñ®»VÓ*)OL¨8UÁ Nõ^&d¿ÄUVÅ=ŠÚ–ˆ±G€jZ&ü„3¨2*ÉcsbÆ–ãAšˆ¡c¦ \@UPNèE“OBç•K¯Ë‰3“* Upý“^=ÅB.š<º¨\’„×3fÕ”Jxà°p1C>1•U‰¹1 ‹: õª "é à~c/«âè ”3,zhÕÈÒee“„ÐýEŠiE%öεe:B[ªÚÒUm“m(§T¸§#䮋:&X+Û½vF´ŠÐb­¦í Î „ƒA_²z^ãos[×ü¸¨Ñú‹gxqpí5öŒÛ솚¨©¦…?Hg]´¶DŽ= èð´½ÒΣ*d¿ yTôû<5'f<ÑiåœõNèkÊåø™xnϺ¢-9$í5NözÆ ãŠâ`Û댓tBùY—´%'ƒ„½ÚÉ]טQ€À<²×Ùäá´ƒ®h>ý¾óÅ«c»×ΈöðºÆC{µ ÏÁpà³8 x#¿ª 5#cöªýõ ÄP!Dé¯`ÈX’û¼!B[òÊÑ9åZ+íÐó$IbÄ€¢´EŽB—tÙÔ ƒÁ`0n*Œ6 ƒÁ`0l0 ƒÁ`0l0 ƒÁ`0¼< M0ðê@büø¸»8FÄN‰¢-5Ü}°¾Z¨òŰx}öhº8UÆ»7.ål™~êp:¨‹’_«…*?øøÁz-5ïÞ˜& âè³GÓÒ“‹ÒÇÕ|•Ü}°^+37²®Ü7=<ƒE’!ãÇÆÝW¤o]ss`"œ9=ã<õÇOvÍœž±£Ú›èŸpŸùó§;³#9›4™sƒ¢”†áýC‰gþüéör¦I´j¥ñàw6ìû×7šKP–&^Éã¾³¿yß·÷5¨@EÊ•l…?ÿ×ϵ ¾62bæÆ¥Z¨ñ}ÿúzóÁÇ4DíçÒLI<ýçOwŒJh©so`]“Î:OÿÙS“'&œ¨ö¦OM;OýÉ“]Ù¡ŒCtsèš›B3Îhç‡vf7Ý¿9óØç¿³2Šž:9å|÷÷[±óC;§·>¸5Ï83[À7(–#èÞ_~ï¸ô${þ+ϵyåðgüáxêàw4Ýós÷Œ·¬jñŒwo\ºüwýûwyêpѧ§ÃÚ ªÛów/´U Uqï¯Ü7&aÔÌ Jëêﮟ¹güÀ£û›û_ìKFX|±ç¿ò\›$¾ç—Þ;.aæ§X×l}hknû¶Ï|÷‹­œ˜ -‚ggìǾðèŠ-ïÛ’Ùþ¡Ù›E×Ü45À´ë‘]ÙíÜ1ý½ß¼gä­á…æL§^?•øÞ—v÷Üñoî˜Øúþmyns“\npâ qõà§Q¾Â'þè ݽ ¼ßøÿÞh|ék/¶ü‹?~ªgçŠ 2³‘w#ƒ ¡{[wõ£ŸÿØàkÿüZëkÿüjãBË!ª…*êÏžì¨æ*âáß|ÿHª%%goì˜YyËÊÊG¿ðñ=_ÝÓ±ïÛo4,´¢š¯òüÑ:I>øé‡Gâõqe<{ƒë[ÐöîÈÝö·OìþýÝ=ƒo ÆZ1üæpü{_z¼gç‡wNïüÈ®¬°ožEÓMõ"¶÷oÏ­»g}îÙ¿z¶s!;Áýîž¿}¡}ëƒ[2ß»©`†Þ̓›tõý¿úÀ"ÂBÊ!Ζ={öhýÿñðPº-oÞ<¤ÛÒÁûëC}{úê÷/ ¢’­ðçÿûsm~Ùg~úá7å!s“PßQ<ô釆Ž>}¤áàãæ]Ã[š)‰gþâéÎÝÿsŽy[p±éþÍ…ÍïÛœyáožïXH9Äô©i繿~¶cý»6ä¶>¼-7ÙÞÌMw „pÝò±wd6ß¿9ûØç¿³230†€ðÌ_\\1·ìá¡O?4”n5e†3åÿùL9Äw..‡8WöPñøƒ¿þЈ›4»x7;uíõÁC¿þðÛ–Cœ-{`œÑýŸ4e†Y6Ý·©°ù³å“íOž){x÷úÜÖ‡¶ÞteFŸ]1+‡Ø”}ìÿ<¿bêä”óøýnÏÎïœÞñÁ¦ìÁpŽË•CôíéK½ùøìi¦ìÁ0—3åãGž:Üpäé•Cµ€íùÚžÖj¡*Þû+¦ìÁð#:·œ)‡xlKÿK?*‡ðÊ{áožoSRÁ½¿lÊ ?‚[âGå¿÷èyå3ƒ3öw¿ðXÏ–÷mÉìzäæ,{8OÞìÁ2[qKi÷—v÷Xhqnq}bÿ‰Øí?yÇä–¶äÍ2\H¼!¡úõ‡Gžøò:ŸúÓ';k…š8ôÄ[ ™±ŒõñßûñSfç×p!gÊ!*|þcƒÿò;ßêmhoª…*ö¯Ÿé@Žúáß|¿Ùù5\3+v­¬|ì ?>ð­ÿíŸW5v6µB?õ'OvÚ [>ø©‡FÍίáRºfûväç´ûK»{\ÛED„¡?ØÝ½ãÃ;gv~hgLU*“P3RÀåoþ €sîšû¿@5W“Òt¥ß};TNq’$¨ªu˜gPE-¨¢…tëmþîmÙ´kS¹6Z³ŸùêÓ=\pºÿZ»qMUŽ¿­­·µ«sJHM‚UÎ9uÞ~˜ãS¡kZ k¡~8÷‹qUPüLü 2#-]Ñ>ꢶԤÚA}»—|^Ò€ª ¸œD”¨ šÉñ@„y†s6òŠK+-ì…÷þĽSOþ哇Ÿ;Tß±¦ƒè7>2×1¸ næÕogÚbEϤrŠ#G¡] 5†fû\ @ ó,¨òJÀ…5Ò\åµ5§ ŽI•ÓqÉÀšg_j\06.fÇè9 z†8ÄàÁŸ{pìÛÿõÛ½£}#©÷ïúOï%ÎdiaÇ¥‘O|N[䇹ÿ9öPå—“@l¡ñr¦_P•ç¿™:¯¬(Ï¦ÎÆ3&?P„Ê]¶¿£ÆÌeŸ!q¸ÿ§ì]9~r,yëo«½çgïæEÆe1XÐÑŒz¶-"LŽZÌ|5;H.'˜… (Ì3G¨fcæüœ^ÑBe¤á®H;›Ã¸œ”Eè7夲RP•ùÚ ó º¬Åœy|A¬Û¼¶Zªžú›§zHk¼ïçîÚ¸scYNÌËÖy}¡²Š“G‚¼hmÑ%ÍÑ™w[.ŠRÀôÂýq^,©Œº¢-y8àõ{_dqzÇJgU‚ʺBþ^`*im”`cè?È# ârZÖÂüýÚεø2ûáNÁEÐÛÒ{(8P w u ] À ßðÈ"I\N†kËl/×%rtAUB÷mYÛ*«Žž7Çã¾?‰°m¶c€é¢Žé’.‡6Qіʨ7Á`0 ƒÁ`0 ƒÁ`0 ƒÁ`0 ƒaùƒŸû¿ÿu¢IlÃxø•Q)^ÏË¡k¿€ŠC%8ú9¨F 0…¡k›žÿ§çWq‹«»¹ûtèç(P]ôÁ©-8&1B 0p]Ô.«gákeJÚÆ<¾ö;¿öÛƒŸýìg‘×ó¼IlÂØõ™oÿÅ··n»{ëÐêíkBŸÔAU²A‹âg]Ò.0Ð,ÎB×ÌRžÇXQjwÉ b&Níb]„˜)j›åñåßþÔoœýÙg?ûYG´ˆÛy³h¾FTtœÕ³rèšAø>ÿµ»~ú¿üÌKQ§ÎéK²ZèZk L—´ƒ.á»Ñ)ÖÈŠQÚB9À«†î¤ 9À@c„ºq=£HäÄ3ŸùÌgÎÅÞ"ÍOI^Ï+QrÍî¯>¾¡gÊ™­wmíg,ðI`Š…žŸt™–`^”¹l”e®õàL[Âϵ é¼Ž³ºŽ˜ÊdAÒ ^áð™Ï|ƨ:ü¢Il·×:¿ÅyèÁàøö ; <ü¤$Ç‚4KñK†ª ªh[´[¡'„ØÞX—åZÊÝÔ–4¯±Dø¶è‚ru„há“C@< ÒöJ;Ú§SÒòúj¿ƒgM¼EÜb¯q~•×sy=cF´Š•É­©)wk,ô@*§bäâg9%h¡æõ<ôd u¢‰—1ÆBûTeU 1Þ,B‹Wª‘SAÒê±s¡ý1)-ïhíS02çÇŽè´±×:w¢…6žåX²ºí<°¹ÆU›Ý­±wGIœþi¿Áj³ŠòƒRÄÔ”L°:^c±ðêø'¼f{3¥-Ái¿A´[´Ã}  fdD´1àŸô²å‘Ò+p.~E“Øf¯u>s½ç'»ËéNnJÜ­±Ð"é¢rTI;V‡Ú†šQq@ÞÈCç<9¤X’û,^Dë’vtIEškAóOûõö*;ÞÒòú½/ Çå©2 ÒÇ€7ò@´ŠÐ FNIÅ[x€ßQÕ’ÕsÉëÂ':À•…,J[0†ŠÅ™ŠbCW´<`éðmQ9V4DyòHë’–Ql€$`ñóÛÁâl6fš…Œ3­<@>fÐEÍêy´ö!XäiŠäç€$³Qñ–1STŠ7 å«e@° 1vAûÑb†|‚Kœ*C,ÅÑ,tB àÙxž›0 БbTN*ÞÌrÁB’ù¤D“X2|ŸËÉ@Eo‹’¢Eè„À¤H¢J4‡5%ÆØyÏ€q”‹4?I {bÍl®Q¬ŽEÊF\ñHcK“D„hóBU+VÇ^a~²CUVÅÙ´Š£‹AXº¢mòHè’¶C¦$¨Fºv¨Öº-WCeèç¨h›â*¯œÐ6q•‘q’z¡£óJ¨œJœ×¾•ôOúMr"bÌ `„V‚˜<-j±Z,tûÊÚ!ILåuh?«‚r‘#±Ié…¶1#ª ´ÃÇŒ.k Ì*7tÌ$T^¹äý9%t^Å/ø1—AÚØ 'Ÿ8 ‚rÖ8ÙHbÆ¢Î(ã€ÕcçÑ )^%°`4HŠ&^ÅDø>I‚³\K?üï;6ßûMSa0Ø`0\çi¼kkwå=¿xïØ›ß³éÍÝošrÕ'ÎhÇvd·¼oK晿|¦sìȘ)‡0\‘–Õ-Þ½¿xïØÀ«é×/.‡0o  F †k¨Ï”C<ò¹žÚ÷7š_ù¦Â0¸a;>¸3»ó#»¦ŸøãtÏc'Ø”@,¾euÆÜrˆC—C˜ƒÀƒáÚS¶âeSa˜¿>[ñÜW®XaJ ßβ<ømÊ!Ì¢Û`°Á`¸>SúÜrˆ·¾gÊ! ó˜xæ–CüÕ3cGM9„áÊÌ-‡xã_^o41DA †HxN9Ä£ŸÿÎÊÒ‰’»²~¥Ù™1\>nΔCpKГüD÷;ï}g®.z‰`J ßβ*¸0ל-‡øÆ§¾±ºtªä®í^Ë \pÌ 2,LS‘\9¤¨ªUX#*«âÁi_"ÇÐBNÉ«hKçTèUÖ6U´Dy-R&—©`Я ýS2A5-XVÉÐ6JÚ&O Pz—^Kb*#Á †ïÛŒâTÖçúäûßÿ>³_·×[v7:¨Cû¹ HA0|Ú:Ôvð±~èçðÀ bþõ}` Á |ÜA \¨*R[\ïª`CR¡¡ä‰§¾údwÂJÜ {çÄM{8Ö+ZÅ `!û\ƒ2¸„T”¸É gbßùÝo¯ˆ”9‹‡8¤€C¸1@€Pl@Dèó<$¡ÜÈmI@„Ï5pÃÒ„“ý“‰yã_ÖÆ!¶fÎþÛî¯>¾ÁîrºÑ ŸÃ#× ì=YŸθý{úBÏ €€Ä¡.‚Ÿm€Hc¼.X Á¹m ÿƇ¡qHC"ÔŸ+ÏýÃs¯Û¯ÝNYdöó À`£dIî³:zòfÓ*Îë¸<¼ bem±÷X’…ؤˆÕñZhJ°AE±%m³÷Y"B[@ БžÃ'®‹Ú‰bƒ<²ÀÂs‰²µµ•ÒëÓ3ñ ÉK³ðÂzD!ogyˆ°hš8>žèÞÞ]jYÓZ ݾ¢vHg ¬ºŸ²:†4¦˜ÚƤҬŽUÁA¥- €a= íðI謎±6^\øXqKG NS71÷ŸZ[[kMÛ›sÎ*'VÈ>—Äô´V¬•…›£OiZ{Ϻ|¤±9®ˆ5²2Ø!…™"ÔYgIæ¾Ïõ°b¬›GoK+ƒ²-@yn &ÈçìÂ@¾ÖkÍôõõû·ž +f’›RVÇäõÌ5ÙáŒÛ±©³Ô½£§z|V´M²Y3/…¶‘×1@ L³Ð9]Ïh‰1 0Ž~ø¶MU²X íPÄÔ„&Þ.~'ŽÇfNLÇÓvzBƒ†´•†¹±c0\Q£’%™Çëà `t1`u¼†"|‚Ñyå²óy-"@ðú6lè ŠbCå”ÏSÌci^k@ਣ<yÄUVù‘lT´FûGô®]»ÈÝ›q¶¸Ñ,BOJµC5ËÙè䣼5xk÷›M+ßÑ[ì½µ7t–S2NžæV·] k# ³QñZxú'<&Ú­K° J[ &:­Ð¬®h+ ´³ÖYФDDз§/5Ù?ÿðúÈé6ÞvzßÞ}0'n¼ø;“9w‹›G'\Ÿ“GÜ?壳ÎɇÞE€§¾ü„ÜüÀæH¢Ñ;^V]`±pÂŒ$±`$ Ñ$*,¾ÏkoUwk,b[·¸$×òuLÔ ‘ª‘Ý([ç–c!€ò Gg¿ª¾P°^á¿%°\s­rÍuÊC‰TU¹X ¿à4V«N¢Æ¬ ë´‹øØ¦ÜhÖŽ×Ū³‹nÂãÏ«=<’X÷î 9¿â±ƒß=ØÔ¾®½V˜,X}/O¹néð‡êßñ±[gòã9whÿédCwƒ÷Ú?¾ÒÚ²º¥Ö³½§À#&Y®¥'û&ÜìhΉ%]=Ø7g ¼Ú{G¯;:g!?ž·FŒ&„ci+fi.8}ž½'Sñ†¸¶Ð\p²KW‹U¾ïù}Mñ†„Ìåìj¡Ê7ß¿9ÿÜ_=Û}Ë#·L¿9”<ôý· ÷ÖÞÂG÷7·¯ï¨vlê¨]/ŸkMðÃx©yfpƽÿ“÷^Aü^*ó‡Þ YbÉ”@„°q¶ìáůîé¸@ü.f[ FÏ_øÖ^*­ùJ¢^°>ȸM~^9"ЂKpâ>X\jÁ•ºPè^1üCþŽ%$ÕÅJ:m—€ÙÓ’Á“«N²â»©éÓMzèx§ªÄ“UkC|BtZ%äfõh0„áäÞ“ÉW¾þrÛÿåVöp–ñ#£1éI¶î®u¥É¾‰XßžãéÎMç>âbÓ½·­*Üùïîœ:{õ*ÁÔÉI·¡©nÿùÛ§*Õ*i¥1ÕœôúôÃ#vÜÖ3ƒ3niêG¥ͽÍ^óÊ–êölÏ{îXzô­‘ddžŽJ~*ox¥?µêÎU…õ÷¬/¼úO¯6÷M$>þ…Ÿ|âËOtmÿàŽLÓŠ¦‹ìkï^WÈåmïß–zôtêØsÇê6¼gc&¨ø|¢o2Þ½µ»’lL÷}òþ±7¾õzÓDßDìþO>0>ur:æWýëWöv¦ìaôðhòáO¿¸¡»ÁlF®È¹²‡l7e†ë/€™ƒ2~OòTOv<Ý3Ñ×Ëå„e)sÏY\$aöw\Ë'×ò©ŠÐ‰S°޲l9:¹¯»!÷jª®nƒŽX5Š*Z¨M8 WÞé{±/õÒ™²‡UËpç@+¯þÓ«Í¥LÉúƧ¾¾:ð$Ë gÜ;>qÇ´›žÝ•Ž¥Ý¤«ñ¼ö5‰œ g”jIÉr¦,Üt\Úq[ÌÞrövЯú,Ñ”ZÖ´Öš›[°iSSÁr,jêmöt Xº9å'›’ó>Y"¨ÌŽYªuíìQ€š’2јN*&…-ˆÛ\ÇbÒõÚ/›[öðÈï~tp;¿çܶX¡»†Ï±³,J .Sö°ÔúÕp3 `@°Qµ­ËeêÚ+M‡Nt¯Â;î—œy‰Ö0Bw>3¿kHô;R‡ýªç²ÓSíÓcÍ-3Éö®KM‰6Q6!a0¼ý„tüùc©Wÿñ•Ö{~þ]cËUüÌœž±O²÷ýêû†³‚sÿ£ûî~³þöOÜ>ó¶©!ÄëcÊÏøä•=6øò`º¹·ù²p!CÐzö”‰Ts*°]Ko{x{näÅaD@0»¨èÜÖ]š86?ñÃþ)¤è’r•q:Pà¦\Õ¼ª¥ºåÁ-ùZÑcÇL°%% æ–=Ü7¿²ƒÉ5gËÚïü™»ÇÍίájùuXÙMùýî†âÁÕw´®™VB¨óÄç|„íb æËýži홟Ŝš^ß>(oi{“½ƒ^iн:´¶öRqøæzhƒáRœÜ{2¹÷/·ÝþoÞ9¹öε¥åÜ–Ñã±Öµ­•U·¯.ulê¨vlê¨ÞòÑ[f†ßNø—9Ò aå-½¥±Ñ1ü»_þÛuCN'Ï~ìövXŽ¥ëÛëüüÍÿ±¶4S²rc9ç¿ÿÔ_nxúïžj ¼Ë™2?õÚ©Ôê;Voû‰Û§úöôÕ¹)Wýão|síÿúzã…ö 9~l,ùõ_û‡ÿŸ½7²ôºêÏݾííkî{eí«Ê%YRI²,Y¶„·¶±YÜÐ0€›˜¡g!f`&¢aºgºg𢧆º¡mÑ›ƒmlÙ`-–T’¥ZT{eUîù2ß¾~Û]æÌÊʬÌ*e¾W¥Ê,½_„õ^~ß}÷»çÜs÷|çž3L5ªÒ;Ò?þ¹ÿ¸óËÿí­åkôVè{BdV„=|ø—žš{·ÍÂÝͺmî5Ú1ÀlãzØÃçö<¹§²ÅåÚÆ6Å!{*Sb4]¿Ö¹'·kê­®h-`£›"¶w’ o ] LÍU=ñÞËÁd¾+…ã m “¬²%EfóÕ‡Úhã~‚)©àC¿øáÙþÃýíþ<‡~äPéæï:F;Ïü‹ÏL^ÿüÄ/<±pýßz@—?ùï~òêõÏÏýÓçò¬O+_/„ñ ú ¯ÿí¿öÉ©U¦#øø?ÿÄªï– a„– aðO®¸ç3ÿûg'Öx*(VúÅ-W×ûïþö8à¼c§ÿð ÿü¾®ìÏÑÏ~ pý»û­¯ÇÙ³=lE,ñéßüÌ„2šñüÞW!J)ð=Žu›Ô«6õ<K)°®Ҙĺ†WÈœ B5މ&)Ó8BX))Q+Ń¶à˜®Ûw8~ø§Éìxä]7Úíˆ6î-^‰ªsOíxl²£0îÊG•L­7_ß‹a´q‚Œ‘„ÁÔ ×œi–¨ìŒ—Oä•Ü%If·Õä}HøE¤-™r$¾ø¦P !-̱‰9 ÷ñÅ« ,Fm´± z@—|æh¡=B47—5®œ²Æ.MEË…ªŠÓînB{º XŠZ^^Ó]Ê PÝgºåPÍt‰k"M ºšB5A˜áÊ$Bø¾²E ´ÃÛØ~À'šœN”òáÎzwáj­árÊðÚ†‰íÝØ`;««=ɳPGµè™—wÄ;ÇHg;6øþ_ùS^XÎØQ‘çA >²t™ÔE û—®KÛ3”-tÀÒ@]F4,@Cí¸Æ6Ú¸ó¸oÒ ]¸<xñ[oöÌæ »á²`Þ=عS]G°ò°%€ð]]ø®¾Ô}…0–ˆB˜RÒ<Âti‡é–K5Ã3­¸ÍŒ ÃŒ€ÿ.„xÛV‚»‹ÏÒF›ßY»eëA¬ë`n:9Zœ¿ï.\Mè¾ÍZ:ÜÑ ‰Ý(anDS¡?9ÇÓ‘~õµÃ»jC]³dO0‹Ú$çþ5¡É9'L§ËIýšÕ-ª®D^ÆúÊœRq+YJ‡… TE3ÙD|~!N`¨Êâ (­Wq”ºï…wX9Š(G0¥N[ mÜ¿3uKµ³ip_ ³§®DÿâËß­–ë:@ @àèÑ ™@ÈF8œBJ "@H œÛú*³„B˜ „°Ä„ùšjf´®›a›—P/zŒu.”ÀH*¬FµN¡¶€\Ú!mlE|.3ù¥Þ# ùpg½'5–*ÏD˜pé¦ ê"¿l×Ð\õàÀiyn®Ñ±4ú`l p{ÂmûÕ–Ô¿âÄ\1Ö'¦"ÉtA¥Ó%R¡6ª#)ˆÅ*"«ˆÑþ Y(‡Í\610?Ûi—£¶ÃÈãÐ]*º"‰Œð/5ÒÂÅÄz*4†h;_ml9[#LŽÏYßûÆë}×É/ÀȈ ƒƒ%¿ø¥>ÜÕ|·¨çR˜0Ÿ2Ã#L÷¨fºÄ1ó¬†ÎÃ5ª™>e§Ìä˜jcÒ^ßÚh໱υ»ê+îÌÅJ;2§;#õ| i¢{—Éïu [è¹(é OŸØ%C3m¼}ÁóÜT' Cæ¤Ñß1£Âfc$ÓæsXc$!•(ÊTº,úêmj¾³ëêKC ÿ@b’õiw6}PØ}«Þ*̧öuL’“³mm¼ó¶Ê­:„{&ƒÜw9B@õõ3>H!Áw|¬ô»¶ñ] ÇÆ-”ù®Bðn™)¶¶u„ïs|ö䕸Üt6tý;ÃÀ°c‡ ”¾7oï¥ð™'|N5°8X!›\ Â)3<ªYÕ Ÿj×°"¶n†f]Œ©¼Ë²i‡@´qï°r•U¡ 5Mْɲ0€¼»Ê 6tù éÔLgy2Ü_¼ˆ¢Ž$Çj£‡Önþn‰ø* X …”@¸YR­ $”XJ‡tìÁ¡Þ OËÎÉì °;<;›¬KMP$•l~rŠªÐ•-©(a½i¹xŠJ[j¢$šnCÔSžZÞ(!„`Qg¤.¨ -éLic:sëÕˆªIM”Ä»eë@ÀR“v<89ÓsdÇy × É)©K¯›Ø0)(„šuØ38¦ú;fôÓgvî)ÌöÏÁP0 ËÛ…EȺd¢"tå+|«þ˼oc™þ½‰ 6tx– Õ©™}X”„²*4Å£ä-mÉdC²VtFÖƒ:³¤7HÚ’‰²0֜̕·x0Q”¸¸…W·°›u P„ð]JÆ|×CR(ôð÷zX÷4C“|òhé‡ÿå͘Ðåg””@UÄHYèÊU`òô¤õÆ×ÞH|âW?>Ã=Ž4S—JJ [,@ÜãˆûQF”os‚ËHC Åe®¤BNÃAšÎaTI!÷|¤Ôâ¼{ýÏ_KPªZ¶¦}äŸ}dÎs<$ª‚U'«&¡(£ê•/¿’ Düè§Ž¥HJ „à®|Ï#`(LV{ùdCj¢,ô¦C¼ Y“bH *šžÏ²!5„V¯Cwp}Ò[´5TÕ¤&òÂØÌmùlQ¿tz<é¹þò|èéÑ!¾wÙ6H¤¤¤Rú|Ð=§X1OBX"D$ÂXjf¤¦éAG7# M9i’ MB¨#ye!À )´ÉåN …UC²5cº˜®TmÌÖH ž¢Š«51Ôm´ñ®ÿÁ,¸Š)G!?ï›Óg§-Íd"” óWŸ%í:. F‚â‘/<ºÀ myΨÆâ\l¾¦Y¢H¶û.íµø^­Oë`¨lH¶™Û* 53¿P²–¹ˆDè{æýÝ´$•BJ  î;zæ—,#‘tA.ˆ4C0Û²u#Ú°‚é*¥ú¦Ò†*¡°tÕš1URmø«¨ ¢\E@›·±yŒBØa]¬BÓÔoaÁc¬_+7³°qÐ`L.Í@3À¯ì±R·ØL®ãõ]=¡+ kÀ7ãõ]ÛI€"ŠÑ¿ùK÷`ßÀ˜¨_ Kœgƒzù–'67*  ÉX/«6mÌ\E<   jå¦9¦†˜È‰åCVRJÀalÓ.V¡IÊ[Ò™­ÜRNK$M«Ú V¿ÝNË{¹8´3vYé›ö5ÍW+.9Pˆa1“IщÙNêà ëÆC%‘6`1O-½:E€\ÎpÅ1µ™JÔpkV_÷<ïIÎKʸBl5ñ$HÀîã˜uèÙ™½ üdÇ¥[zل´“Õpûëx°hàrQÛ·gŒ¶„%C!l"ŸõkeÄäYn¯0ífM§+“ Éû²ñ)b|ž¯"ûRJIb´¡õie¤7I€]E<HÐË-…!1à<$ê³ã3´žjœøö‰ Ö£•Iu³å¬OºIezz¦£çhwž™šüÈPî‡_ûaB¡±ç3{çfÏÍZ“&⣩U-®-Ê+•.üÈÐ&Xüë“ID° OFä‘(;5Ÿ}óŽÔHÚžÏͳ'¿øäÜÔkSñ«ãWeêxº2óÊÕ c8õ}Ÿ?¿œ1* ¾f29~u?÷«ÏM&’Þ|a!&±„ñNè÷5ðŽ•ThþrÆ<ù7'“Ÿûן»ˆwãfDžþ›Ó‰}Û_HmºÛ½å][«&<ª7ô!÷‹£R)‰”Tp—*)Ð=’KûDMcËmEKVÊ>ÝÿèÌ…žL©ªÄX­!¾w*ÚÀ=ë\详Îí|¶GÕ¤ÖV£- H\ª'{ü‰ØHß´XO¶ÕzŸ¼´‡œn)ò{.ë„'p;%™8„=ý¡Ð´Ø›œ8S=\zëò>(–Âd=éìÈ‹‘Ș¥Î•»”§HËχ¶âìÝ>ˆvG=Ïöð•\ ïzbwÁ.5èÄ[á¡cCëzÏÅ€é­OÈ#„3²ÊÃéŠø‰Á„ýÆŸŸHΞ› ìxt´‚VÚ¥@ÊEb‹‚þÃý•£Ÿ9š}ì¿zlîØçŽå˜¹ |Ký£DÞüÚWI ÂxßS{ o~å¤à…;Âþ³ÿÓsS»:ÿ»ßë™»˜1ÚÐÆBm"ÚF›ß øD3±áò™þG§¯tšq˜åmˆ´n„ÄÜÏp*V=h2 .Õ“m5Úz¡&2=;{¯)Æøš˜ðb)D~xa/ɤGf`$4OR´éò¾(€=¼'<—Ú1þ楪PŒ›uc C}Ó2Y›Nòi/Ô2ùm{‚[Õ¨ŠtF¼Ë/]Œïö`±Q²™×pI¬'vÃÖ(@×3A4‹C?œíK¯u…Ó!/Òñ¼†‡¯¼|9j—mRœ+j˜aIu*#a/Òñúõ5œªC22F3¿‹)Q]{»ëû?¶¿TY¨hS§¦¬Ê|…]~ùrøè~ o†M¾p)cn'jµÅÚic=¬ðr¿Çri˵û‹_G]ycéýù—w}âÒDjׂÍ®B·8­¿‘©q½ÇKØÓ{ǧÇ{ÄL‹„æ^Ø+©@ y_å)¯g‡‡`À–+å¦`>— oŒæÕ‡FÎÑ~½´Ü¢¦HÐ!½ä=>pîÄØan>In^tÝSw]”湩aYÛÜaše=Äm“§°ë‰Ýåî½=ÕþC}Ácƒ•ß|`a„Õ9ÚYï?ÜW?ÿÝsñoþ›oôD:"^(âfØ‘tÄÇäÆÛ)=¤‹Ä@ Œ¨x_ÜÑ-]¦GÒnz$UïÚÝÕ0C¦4B†@©ÿôÏþtG~&¯ûô±"Ó™Ú÷Ñ%)üÁOýþîÓß<•èØÙᘓ'úÛî {Ꮀ—I70ÁJ:T_LSN‡ýpGØtF¼P2ä‡;"þ®í.e.fLf0Ù(5èïÿÄïíÑLMîýȾrq¶¤}íŸu`;LçûÊ6µx¿”œ+ð}RÀ ƒ†-0htjÅ ÐûË@´=Ïm4ïÙô‰&.t} 3é/w—®Æ:Ë“1*}rÛ=à{#L°€}cü¥w:{T41†Ö9À´57ë ®¾~5XË×èþî/v%?çcN¬G›5ã±²¸Yn ÛÄggv w×8M±ÏqëŽî(CÄõu^;–YÖI ×WÅíZ–#Gz¦È©Ó]ÆC›+¬Ò&¾wà ׆®ÿÙÇ®o„ ñ©ßøÔÀÏÿÃo¾¯÷`o#e$ËÌЖe×¹³ÓéÜÙ™°¢–xü‹OÌK©`æÌ”L†üîý= „±Úõäîâƒ?ú`ÑŸñC4±x¸‹éT=þs/<þs/¬ü­®Ý]L°zàÓŽ|êHࣿüÑYç; pð㇊7÷sßGö-d|öWžxvfyŽ8\ ¨¾Ä½%l\³SXÕª€bÑè‹@W´:£ŽÆ!`iàqòö䘭^…šW¥ä²6m£M€ß}ç‹°Ê:#îäB]Õì…TÔɬóêÝ]â»ò»H &‡´1kl,×XóÛ¤ „@êâ•?y¹“Tí}z_ù~QhÕ”ÌUãC]Sk [(…à+£¤6Ò3Ázõ»vx‘vhõZ­{æ±Æà#GN®É ÕÓµ ¯ÉF윑#iÖ\èE; bËCxŸø³©£ÕÔPÊL}ã.ËØ(4kѼ †q[¸# _Á… u˜›á0œÜ ?óÌOÃáÁ}ÆÁÔ Ð™„`J€'°y Æ §áÔÜ‹p.û:¸Ü~d¤î•|ÛV°ûŸ/¢É¹ðPe>4Pí¬L„†³g:-¯¦%ðº1Áw‘ü.’IƒÉ•›K¤k݃U’dí0޽zíg幩¯ÿ‹¿¾@{ŸÚ[&÷Aõ(1ãDÉÕP$X«È/ ¸6ÕÃráÞ5 wµ5 …|oèÚøBjxhÆ_ÙMóÔHúšvz"' f¯ Á€¤#),Ñ$åH*ÅŠÓN+ôQq„—ŠeKª8`Y“ 1$›NkÕÆ3˜üì¿úщ•ß}à³(,ÊMÝÓð3ªSEuÚÖ­ìô‘ù¼§NÕÀ«†àgžþqøâǾ½‰®[æ¼Õ© !=é@/<Ðýa¸˜{¾vöw`¾6 R­·R‹¿áÚF{¡7Õ \¹à òõ9°ù†2*¶½¸m´ ð{jV³‘¡JÙL8=¥±hge2f5*Ö]'¿ëÜ0mÙ£Ïê—®%Œ5¶Ë¦†Sîsÿós“/üß/ôp—£ƒ?r¨´Ã!W˜.T¢‰HI*W=‡íèh¶Úé«C‘…÷ª?xo(3õZo¼³3-ËYöú!UdèZ.ÒhnN‹&f½ ¼\é4µ¥ôËRaKo`L䚃uQR0¼wœDT®¢J‚YÌk$Ö0Y³h™F·ÑÆöœÖ[¬÷ ¥‡“'«›ø•Ïþ4üâs?Ép|ƒw#Љ ;P¾qé`¢t~ ö< 'OV¡’7àÙŸü8üÄ‘O€l^‡ÿrîÿ³ ¯nðçšÎÑNƒÖF›7‹ºö®¤fçÕ¹³©òt\»©†ÅÝö#PПÎðñ ½iotn;_ÇÎNçøÏϼø‡/v!Cîyjï¶ ‡P¾Âb)–ì-­)bRª„p1ÐQ Qâ¼g8€½J,•[ÈÆÓƒ³«ãƒ –E«^éÕá&, Ut â IDATž5hŒ…únÜ£iÜ£L¬2ö” uìðɱ– Á(@\2ùÊ…‡ˆâF· ðà»>B@uvÇTÁ%>Gš©Ý¾R¡RàÛ¦:S+Ö½×\ á Ä &·PU­÷mÄ… u˜õá¹£OÃ/>÷7A~Wcwêx¿¾ðÿÂ|mrõúY—ÐhHê臘•Xö.‡ôØ&Œo; Dm|O Qe#î¼yx>ijÎn㢷çCLx´i/ï&C)tÝS{»/«o¦zp±mH$B?0TÄS_ÿ—_à×Ã!¶¡'XN:‘d¸‹ÕÞnÈIH så }V©ùr¯M€ …º¬òÂx*Ñíe‘¦ùêºÞ`,¡³#'ç§*IèI®9ŒdYŽŠDjòvúŠ@A h«ëAÆ’Ê—š¼ÙÞÆ-HŸ/ïøøÍ¯¼™Ppüg[p.¦U¾ãa=`á äÖ]¢tÁôÅ0!%8‡0`R‚•¤Q)¾w>üâ¾ØÍ=ެ<óËÕL¶J÷”TàÔâ–]ôýßû‡Îâ¡l¼/îF”’ 4S“ ¸5—0‚†Pjñ3aDI.oIé|×G^Ý#z@T§Êw}€€;>VJ2äu²­¤DvÅ&“g&×Þ=ù_?™1BF;<ânlÒ7Ä%ÆÇm¸rņýý{á—ÿÑ!N¬{­í×àìì)øÖ›/p>¸ë(<0²â¡äU#:éz~ž?ý[Ë^`¥J%ªU{Fú`¸k ]N¸6ÞÎ(i ûTÏñlOy,ÒUˆEí\+7D|[¼¦3^ÁË…H­”ö IÛiÜRÃi÷¹_}nò…ÿBw}tð¹í¡fêñ¼Y.R`”itú8­Õßë>ákd/w4ïJ@ÓWód¢$ðµZDArã¾fô³uQÍVé‰?{=iWšŸÈ™ƒªp£×¾ôj €B#iûÚ›×B¾í¥<þóOd‚‰ ?óÒk~n>àû:wu6Ž~öhầW …23ÖþíÏ>¶³òíûw½õ|•j½ñeO¿ä]>q)0qq"ê _Õ‹uæÙþöoÿ]w(öCÉàÙÅko\ ^}m,$…D£ŽV Õ¾õ[ßìa:“ ú:zè¡GV=×ÔÉIëÌ·ÎÄ|Û# ÿù'23gg¬«¯_ Š•ïødχ÷w=±»âÖ]òöwß …@µP¥FØä[mZo±vZs8làÛ0>î€F xæÈp`pÏ-ˆ²„צ¾ßû*œ+ŒÁë'ÊðGßIÂÏ=óð«Ÿû% èF˜9Á ìý|ük0]¾¼¸ù *B(èO÷@O¢ó.?Ù]‘K{£ßFóëó}éÕÁTNÅvÏt=2u1}dƣ߰×màš[´CˆPC‘ *fÝ(¨íGC:vv:ÇæxæÌ7Ï$.½tq{å6€P…[‘pMÜ,§†c Ÿ.¶Þû4uÈÄÜ× ·Þ°ÖbÓ OéØ%²º¦š ò<†[ÃKÿ!Îéºé=}®ºÎq4äØ Þvå¼ÞúË·‰þ„»ë‰]e»Ü ¾ëcÁºøý‹1f2¹óÑÑJ~"oôè«ü‘Cy§âË?¸ºöæµ@e®bîþÐî2÷||å•ËQáÝ(‹ V©iûÚ‰ká¯ÿæ_Œ-‡ÒáUºW/Õñµ·¯v=¾«œIÛùɼÉ]ŽÎ÷\²{OW}àš]¶É•—/…÷|xO©ÿÈ@íìwÎÆj¹*;ûí³ÉHWÔÝûÔÞÒéWÎXµ\Þ E ¦ß™ôê¯üøá|£Ô —_¹š>5¨dJúžï)ÅzcÎØkcaÏöðµWnÉÕv?¹§D4"ëùÛbbz_ÂP  PàËùŽ$áC†\÷Úùú¼0öeÈ6& •&°oŸ¹z~çoþÎ\;¿æzƒZð`Ï3ÀÈ¢¹á\A¥ÂA€=#4÷btÛ!mÜ3ÐûõÁ h° ?ÛS˜ T†òç’µ©ˆÅkÆ]ó´!€ŽhNÅóy³á ÙVcvs8„ðÞ±{t[x²yŽ[«Œ0‘kª¾e‹qŒ:ôʽ2•¸C¯Ì/$ã]Ù5:“NÔ•9/äÆ!Ò©U/œÜ[½ÛE®“û¸\?úØI‡i|ykåºúÆ·c2¤×¥|E@B:òqB¯b†Û¯±oµ_âe.Í™{ŸÞ[J §Ü©ÓSEª-•°¢–?úèh%5’vãý oòí +{-kÔKuÖ(6¨ð6u ©û¾¯®üàJdeÛrƒœýÖ;ñz¡Îv=±«8z|g¥ºPeÑž¨wýs½Ü NÍÁé§v§aúôt Òqv=±» 0{nÖl”m:ôàp½2_aW_»®ÌWh¤3âÿÙãY€Óÿù”È\Ê;’;j×çð‘O=P˜xk"½–5ìRƒÙåÕºØùøîâÈÃ;jÂhìµ±°å§ ºiš0|l¸î4tõõ«á¶vÜC;ÆÌÍyP¯ xjß~8¾ïAÀëìe}áÂËãy;× ÝÝ èpáB~÷oÿ~û‹¿}ušó½©‡áÕkÿçOƒâ:(ß‚ Aà™#¯ ÀèzÕwu²"PmGlm¼%á‹_L_õUJ‰F&Ì„G›&¿·ù0™2³úx±Û‚4klÇñºñÝÿÝgÚÑã[~—­Ê¾”W[ë¥^ªÀ}÷N(ÎìÂXtí;  WJž }9<§µºùŒviùÙlIé2‡”Bkt'hU2~ 1$y–[à+L»Y Úx÷-2ZÿfDF ¤‚ÿùD¢0U0º÷v×­h€#´ø=ZnÖ¬ý•ù sùéßû'—_ú£—Òõ9¸çÃû ýÄC¹U7âµÓŠh7â„Õ"£½AÚ…DR*„0Rê:5‘ ”¼qII¯?ÿZ²4[Òº÷t7ÌXÀ@€V˜àuÝ*⃶  ¶V;ww­r% >p®àáÝ€¥¯_µºää`¶:j…ò1† ™d iN];WfÆáÐðÞU÷Y¼|7œxíUøÔCOÀÓŸ8ÙRöõï\óC±ýPvr $W8Pr h/ÜblÛ!mlCüòW_0Þ°º‘ÙÂá ’²P™ªãYW:hÀµ»ÔS| @‘[]¢)wR*î­kC W»™ÈÚU—,.r5ëÀ$iœˆô½ýwY³¥gá@ÀBѦ‰—5e¨0 4cWòßÿv€Àß_ÿ‹¬K]äE@qÕt¼ ¬Jƒgx ¥2Ä.0Y–ŸñAd¼pÀ¨é/Id…\jU“HˆŸñ׌ƒ, CùŠõ›ÖQ¦¤ ¥¸EnW¨^5ˆôauo` ,®ò *#‰L´vL]µ˜ß—,·Ê¤\ <ã€!)KÂP°Â-Œ©£¨, c½±Ú°«À™hˆ›Ã:°¬ ƒ/ð°&ûç•¥¾µòŒˆÌJ+‘Œ«ÊÕjHó5}üWãýë|ž Lä„å1M¼:žxèGÎÅ{büí¯¾e¥;S">óòµ<­×ƒã/]‹U¦Ë:_àßömW4ðó2~`h× ýO_vôwùΔãÐ¥CtšÇ˜¥[¸>Q N_šÒÎχdIÖÀWôúØkc:ÖIýj=TËÖhm¶ná:®—gÊÖůŸOõpr“9#ÄBË÷H.ÑøÆãÇò±l¤#"~ø•ZÝi¥Kîgü€,KlÐDVXa+D™:©OÔƒã¯\‹WçÊ_à–_ßÄ|P€DA˜ˆ‚l%¿1¯pGJ¹êµ™¬+]ä…¥d‹¶f¾E[〦ÊÒô3þ¦ú!KÒØ [s åòâO<º÷Á[^Wu kÈ(ÆB! ºŽa¾˜…™ÂÜlPRæ”òz‚;á§?ôãà æ:DûXÏ3p ãJ‚ÃðÊä×á»cϯ;ŸDA˜¾íon| Y–«mhã„¢ ¨¨ R¶Þ´±I ¦XáNÇ+¢Q¤ZY”U Q¤€5Ÿ·TI¥@‚ºÝI†œ£úÕ¹tõˆªt”̈ªøƒrÂëä5Ü`fˆx°$SÄ6uÉׅۜե@©–²ÀЍ¦d«ÆX-åw\¾_J j1ÂD!Ô‚‚”B wðKýP®¤VÔX)6 ïSD ä«õ~ ÝgYÑ[Ì2¥0–\L_unxJx@ B a€õÚP׿Cê¦ç[r¼\¿!…°jéYÔ¢L •6…oÊ *¥TKzÓtÛ꺬î€Þ êÑ/Ͻð‡ßIÍ^˜1ÃɰŸè‹»˜b•LØšÉ$aX>üù‡³ßûã鹿Š÷Äœx_ÜÝùÈÎÚ‰‰çýK½Dg¢c0åb‚–Ç=Þóö?µ¿øgÿë—{)£ò3¿öÙñÌ•Œa×8l„9@8âÇGñ¯þ¢ kHì|dgÙ "=’n\o'ÚñG®>ÿë_î%”¨‡ôá\¼7æãÿÌ÷NG^þ³—’Çž:ÖH&–m aX=òãd_øßIcŒU¢/îÄ{ã®”Ì)eFL펺„bµûø®ê›Óo¾ük_ê Ä~ß¾:¡xÓ:„ð¢\ZÓ¤0Æë:[Šh¿¡3pæøfçÂæü@uµ‡îxŒt ®¿4( U¯ m%ë`@(D Z¨ÁåÙqp< M_þ»©°`7Ä‚ÀƒÆ4И¶îï˜,&»ÁMcFú¶s~Ó2ºakn¶Çv(# c¤!X«;m´ñ.øøg›4ö›s4M›> äœu’ú.=hÓɰÁŸð"8J!n³mˆ7DUjÚ€VÙè=S~E•kÑžÚÕ¸é×t¥B«HÊr7Bv×û,:š[ÉÇ®¼z%¨šüÔo|úÚù—Ï £Êè3k+³¦<ð…£õ¾p4sýó>Ø“Î( c‡v°Me’A³˜Á»øMVyv«¤îýÄT*U·\®Jh.ª%ð…è«®IGâŠ4‘SÝz>áqhdsc£¸B¸ Ì•cªÄbˆÏ†7+ (2±‡hû,\›Çû~ËTgao,~ {ºã‘É™ÐpN`"Þ•è¢Û|^ú.+ Z©dM²í6& c ú·þ¯oôþäáܾ§ö— ËØúqVj}cÍBРɾC@ Î)Z«7 ’bƒ&¿mçï± ̰)fÇgÙ·ÿÝ·{ÜšGö¼‡y³1Å*ÖsÞ_#¾¥Ú¹«¨V} =ñN`”Þ‚K°y}ÝÒÆŒ!Ð4œsÈW àóµ>ŠT4ý])øáÕ·àùïÿ\˜¾r¯FÝÖÚ±|!m€DXŒŽFÁèh\ø›:{¬k>|¨SLzô]Éð-¦#%FBãúåñHLÛo-l‡qPJÁø›ã—ÿË]ÿÔ£™ÝOî®ðYŸqð·xÇ—þ‡ÖÊE)Ýû#Ê ƒR­Õ€Bj³•”Úfÿž¡{o¯ó±ŸÿdvkUl,fÚà6lj£«¸B“ÂÖ?œ¶> §ýÇf¯ÿžð)á6Yÿ·‘RDSáöýí‚Zm‘Ôö§{@£ìæN‚/œu 0!(E •„†ã€k¯‰‡Ãðô=ð;ùUøóßþ&üÿèŸÂÿñOþ—U×)à^ý—ð½³ßÒÑ$Ý»µ5ºC*¶t ³­¯m´ ð½@¦ÊÄ7D_Ñ8ÞSíªÇâv&Œ6B~ÑÍ *ÂÕ’PžI†¶|JªÌÅŒñƒ?y¥óÀsó£ÇG«ÛFh+´Ž¶BNf$!,oÑt=ÖºM~·œ"3óÓ‘”œa©¦C1 p%†Äâ+€&7V5¡£óË~h¸¦™šDw9B ×¾ôZÒ²sWgãõç_Oþß|~€(„Ÿ:<„^üádKuàBÆ!às ÁàñÅÀnJ1X†Ÿ:¾žá ¸œƒ\Q¯eå½r‰Ô „@£º“!ìŒÂ«g§ ?]£plw<ÿÂip¹)0‚c ç €F=€%míØnzéI ˜€N[9:‚–m»º»š©–ú9;ö~Ʋî€ëË^^BÍñP™KJ-ewXì‹¥‡ D;!­íQGMÌk´Pš'Ó…1k yàa¢Ã¬6ÞŠp‰Å/ÆÎçÍ®Zwýj,Õ˜0å®^‡ §ã15SLª]Vn+>[æbÆxå_î<ðìÁüèc;«ÛUFØ@Üvue@WÜ‘™˜ß“ÎI@ `1ÚMýó}X±)7L›Ö´Œéw¦ÍwþîÔà±ÁaD½ñ•7‡ž;T ¥C|ìµ±äâ–£l!FÂL£ŒvÁ©± ä* 88ÜaK‡l©Wf 0Òƒ+3ÀÁ®¾$`Œ #€£»ºáìµy(Ö£ ®º÷ìø`Œ`Ï@ R B–¶»¨¶B)êŒ.¶³³ÞŸJ0ìêbÈ–êpúÚ<°³{‘ü0›ÄÙæ¢z_…@,nÔÑÆæ8jåï­?Œ„{Þ™ÈãÍ F0 LF Ð¥Øv)k.Ø^„”H£˜t-•ŠîŒ¥úºjóÚ´Å+zÊ÷­\ÛØš¼¡=ŸeY³»~>~lîtòáÉŠ¯ßÖØ\Ï ­HVn„”+·ÜB´0¶ óÿüFÿ‘OÉxî`i;‡=(‹xuÇZWÁ€­DYê÷ªo²!™¡{j=i4LŒ-ìµÉï{‹xOÌK §êû>²¿˜èO¸S'§BNÍ!¹kY#{5gÜrC¬¸lp_\šÎC¡bÃÁ¡(Tm8?‘ƒ ©A@_$ýééŒL-”¡XsàâTêÎC¥‡;¡P¹qo8 Co2 £pa2œKY‹ÑW©ˆ¶ÇÛ™ÎAÃñáØ®›-À¹‰,ìêKBÈÒ`ï` \ŸÃT®,%†íîY{_ePwíâ; !%,TP¨ÚÀ†xÀ€ÎhRáă&Ä&DƒÄCH†ƒÐ CO< éH&P¨9pv²H§çi¤ßÛ;|@;Ðq?˵­‰¶x“ð°.¬¾jÞìªu5&"ýµ‹É_´ðòXó ~ cV¾s¾;¥d¶Œìô”õ½ßý^÷#?µ}ÃVíä’Z=;“ë™ÄT´s'Áú½è›\ð­d,aEA‘å2ÍÅ‚¸öl,ö¼ ÁŒZŠxçÎN;˜ nêÍ)=)T¶TÇç0܇~)Áq}ˆ‡M(׸0™ƒg>0‰ˆÿáoß]#`»>dK7Tc#Ý1èO‡Áñøò½:£àx¦³0…¡îØò=•º»Ü%Ò±L(@©î@2lAÝöàÚ\ lâÈÔöm[Ë{ÅüšÔF„M B††FQ d©ªÅrb€)B0h”€Æ(hCÀ`Ðp<˜/ÖQ¦T7?8ºcäX¡“¥øà6Úhà­ ¨šŒ” zºÞ_¿ïhLEMQ3Ö¬7 ;g.9Qµ?°€è½÷È(¥Àmxøð'ç¶sØÃJ(q«ZJ{¶êoñXYÊ«~ð^õMæ¼`*ZXwÕÊ¢@†µº(ðÍ•Ín“ß»ßõBxCcŒ`±:âÙk Pm,ÖÎ)VÀAÍöÀÐ(¬wÀîú½B*8{- Uûƽ»ú˜ԦTÆhéàÓ}Ã{ßW!„¬Ú&ßvîß±BÍÞ¶x®Ðã„”`{>Œc´ÇÌèŒÎh”Á4FI1Æ€€ ņ§&røØÞ¾t¯NùÓµñ§koðÚhíˆÑ !ÿrøð©ģ“3‘¬RèÆA§%Ãb變Ӣ&s›$9w !~p¸¶ÿcÊÛ>ÛÃõgÒPs+ÕYeØÑâaD»š¬¿÷EI”¯0²==¬¯Yh8'Èv ØTõÃM” mcãóÁk¸¤V¨ÓZ®F¯¾v5âپ݊K V!RA¾bCµáÂ\¾ ñ  ˜Ë×`b¾ {S‹‡Õ(^%:!* ¨¬¸×Ô)Tê. „€QQˆnDcHu£!$”ë.˜ú"¹HD-p}q߉g‹µsWašl׆Š]½3”ï×6¼j‹5ׇL¹ Õ¸\!"¦‹ãû0S(Ãl¾ ¥zlÏ¥h”‚¡1°t‚¦S‡šíÁBVzp_Œ"Šï7¹¶±5ÑößDTIKÙ%-eOFŠý™wz(kêà!Œ%ôG'ØééŽ(é5` ¼–DtížC S³#‘HM܆ҞԯÍDÂx§™/»$s¾ÕÁæ–娛Ívv>Fd*XÜpî˶©¿s;‚!1˜°™Á¤fiòØç\øæ¿þÛÍb"Þ—p’ƒI!ÌdÒ21XÎ¥«¨Ë³EøÔñ=pâü4¼tzž>: Ï>4 c³p¹€¥ÃÉËs€0‚#£]€‚‰ù2|á#‡à{o]…Ùü"yñÔâ½Ï}pÆf P©»P¨Øph¤¾ðôA¨ÙL,”A*•† Ž'`r¡?¹ÔÎ÷OçÝ †NáÔXf²ìˆ €´å¼Õðn1÷ f۷ݰ1¬Ý2O0çÂ`00^ÿšªWlqýPÐfÀ†Bƒ†Ìš Òu¤ã7dŰ GL&ÂÆÜ¼LgkÔÒD !€u´”¥fòu²/žJ„qx!/òv[[Úhàm†¢–¶ êÁ\·1GÑX8ìç$ŠkÒÈUÜPla¿=RwÔtkÕ╨ò}Š˜Æ—×Œ%$Â4Qh„”ok²ð€‚Åüx%¬dÝ`ÜÊ3¦­¨IŠ+Ôe³q,ºÂ…6OyïÁ &ŸùïŸYÎî¿÷é½å½Oï-ßêúŽ«â÷O^™ƒ7Og—?ãõË«®õìÔò¿_93 ßyslM»kîxûJÞ¾²úÈÀ¹ñÅß»:[Xõýóß;³êó÷O€¦½/8ã{ÝNkÄñ]þ®ë‹„µX/Yk0"`ÒLÖqø;Ž‚ Da`díÏ¥\z-=G®1“ S€7‹E'Ø=<©L³b+›ß ÇIܨױ¯«GD{§óU`”€N)`Æ€` ”`ÐCcP±W3 Ó ÛM®m´ pKð•&gŒárÅê(wÚ“áþúÅt(ÐÐb³ÙÐB5­A›ßÅEÇ¢Š•ó¥H¨3+WœX´"£s™X©ž'Éær2»oT{ýie¬ÀvYY|9ú [Ù…tzo^"´ºX’ÝÐq…G<£N[rm´Ñ4gÜL;[ž,‹8[Ê—|]ŒÅt)w}÷RÁÉ[yˆ]á€Ç–FøRî-+œO8@€èN½€‘^u˜”— b¡Á=æ¡ø‡ãóelÙ®ACJ$PB€` `/–A„ äèGmÜÆD†½±ÐþÜd`´¸³z2}—p IDATm…½LףЭ·Gç.¬”I¯+–Ë̦ÂÉD Q*–<ÓtÕ@ç )ŸKõ¨GÓcª¼¶rQq$ÕæKÉg{æ2‰®©»úêÁXÑïf•Â7ù%?[í‰Ïh‘HÝ_]üÁÂBç­î, m"þ·­¡g&RM¶¶‘U€Z ‡RRa„×£A4Én{ȶ"‘Åc c™ p}t¶6{#ÆÂF(^ëâ÷< ®+Qéh4¶öšªS€Š›_©‡›†'\á^'Ô­)‰²[¦¹RÈYÛ.媂/-ÞÄàrq»¦ÚhãÎ`UUÏø!e˦‹ˆ¢°üI£jÚó,à†d²$šÎ×*jRW¶d-­Jue(¡„?á…›îG–”#). À§ám襢ÕKT­á+M¼ë³¸’‚PMïp%WDxÀŸ@Í˶ ¨ªKã†ñÅ «ÒäVõuf¢5t™AÂ[ö(ÈL¥Ûï/Íh‘pE­ôtƳ(37•˜~;ÐÀ)VGJT„¡|…AÜÞ“ ²^¨?2O)vT_÷ ôtføÂB,6?•ŒÎÖû~8  GZðª1ÄAÑJ¨&u"¬|N$å¨ùŠ9P8ß]ëîÌä´Îº|+ƒŠ$ÙR?²Ð¦:†Á²ä«E˜ÊÍA"_G¢, AVlj{ž\,§L HE ÝTRY) e7uïÎ¥~G b[ë†4Ö¢FÎõ—‹Ü!Xü‡T ¤T ¥P”‚Ääb²±qV¾HCZNØF¦HŽƒØ%Ñæ 2#ÄA´y2#ËÂÀ!ì‘Vo©R‹9a›nCŽt$ZiC”„GBØÅa²†ÌkGBÓ¥7õ}u¼Ô[„Žò•À…*9±ÕÆY‚d+ýP®"¢(¼–ÚhH‰´›°Ž8a—D›'ÀÈ@>޵B€Àkž d¦¾;êÎÏ;;òb%†l8¶÷4~kLu;žq$žr%¹Ý‰’Ð °5B¤TKLnˆŠÉtIÄSoÃäÔBäÊ[Ö ”ØñŽ–ê(q„Vs‘ZͧÇöúìÿo#ìºîûþûrï}}wßvìÛ†E' +(±H,V¡ åYŠ“ØŽœÄe2“x&Íi¶cK™ÉرcÇ=–­ÄŠËX¢Š- +H‘ H‘ ,€íý½}ýÝvÎ/<Ä¢ï}KÎgf‡Øå¾³÷üÎ9¿ó½¿û»ç÷Á¶És_†Ty°4÷Xâ"¸ÑÀÀPŸ›º‘IT,Í}´PQ@b­Œ7ÖQ몶ZiCWµkm$›ˆc,àiî¢mÌÉ#® Êám- `ÓèÍuvyV̺@Õ 51qh"±ëÑ]}1ŽÅO×:Êk̾1cœAß–>¯<žKGªöþŽ«¶µ[õØü‘¹ØÈ=#µ¦hİ%aœ<Ã=´# `Ð -ÐjÍo²óÏÀ¸?yQŸ<œÀq\·/Å8®ëºc1ííÊe¾ñÊS°wtçEs}ÛcÝГ„™òÚ(k5µš‚ÎdFzAž'€=åÂLù8¸amÍøµÍxѽ[ g[å¶´ZM¦ënÚXBg ˆšGùJ†ÍB± `PçÎU `·ékPlˆC3\Sx‡hTx[£TNÈN6—I†ÅØ’+Î8›WK2k^ˆÚ¿=3ýÖ¡±m‰„ËRÉš>wiï(é=êˆxã˜.gzó¬G^¶“¨ýtªüÆìNè\\ŠwvuwOAq®Îw9×0:6$SuîûBlXÏä8ý;¾'ñØÛÃLmÎÎðõFý/ôïHÀPc3MƼ ².‘®çßšez3 4Ê ®•ƶþ6ÿÄÁÉWÿúPgÏ–·cS‡P^* iKJt$BÒ¥ù¢t²1 ý“Ùd¨•ÆòRY’&hÛÔî3†@š š¯ .9I[Òk_9œµ¶Š%c…âbQÚh‹öÑÐJcy±,!dz3Öå…’´“Ž./–d²3&Úai¡h=óO÷Ü32~‹ Õ-Uò´µ ˜EøîñÃPmÔ »°†OÒÊ@ojß~J”J!xž†Á>îÉ]xÖ`¡2ÑÌá½Òµp{]þéB7ÌpP ¦‡õ¶Ük‹EœC̶@òf±ŒP7ů„ÐðCèïH’'Ê•ZPóo¶q5l8-ÎüMK‹+ÙÁöLE;ªn 4Žwuús驨Öå騖âÑ`C” ·Ú×·pb¢4°kû8IùαhˆÝÝu§ý=þú¯o¹>`Én«6\4† Xw$æêÕÁ•É|lv®Ø•8‘Ïܶk\µgËk>ÓÝ[XÛÆ™ªM„0;ÝÃçq¨À†ã…õ‰_b¨µfì\‡`K=—8AhF}»f¨qñØbläî‘êøsÇÓ‡þêPW¼= ŸïúЮ‰N¤çŽÌ¦¾û_ê|às.¾uà­ôÛOmW¡ÂýŸ½w©7݇õ_þj$µ)Uïîrïøþ;ò~ëɾչ¢Ô|ÞÛ¦ê‡þ#sãÏ'_üÒÁžÐ ÙþÙçŽ?{¬KNNÂÑR[2Îb2ôC|ùËßÍöx[è‡lûCÛW÷}âö—ÿåÿÝ,©˜ä¤üýð>sòª[êβY –ÅàÄü›= wŽí¹ð÷˜„ۺÿ"øª7ñ<‚ÅE|ŸàαÝëì¿às+µ9˜+ŸM︩KEN·wÞ ß<ò×°°àרœëx[}‘8 ]ø®J¯èMn¦¹ã“„(èLÇ!fIB@*ðüjžA¨`Sg,˜‚«.¹ê:̃À†káÎY¿Sž_¨Ô—ìT²¦hŒ«Š³½öJ.çï<Û±<¯ûƒXÆ^-Ühð©Å‰CÛ?®zvl=©„Pt®»Ìd*ú}w¾Š“Só]SOæ:j¹¾Yè¶+˜‹¯}´5¶ Ú„K›{W‹óÉÏu wMÙ·í<®¤¬iûÜkÝ¿‡o/ÙïKO¯ûQ3i&Ã0àk&„ŠÒ³Îø©öN²“‹@t: YÏL„‹£µ†òbÙ½•æKÖÀîêGá±™ϧŽ={°½²|bÉ~ò|kÓÊ©eëå/¿Ôý£¿ûãÇg¿7Ø÷øK±L,¼ëSw­>ýOa Xi¾$Þ^ˆÿƒßü‡ã¥ù¢|ò7¾Õ?|×H¥´P²âOþÉѶþvÿ/ÿõÿš:<ïìðo±¡º¥"ÀŒôôXÐÛkÁ©¹)øÊKß‚m›6C2vá»t£»á}¹Çà…é¯AÃoÀ‰u˜ `kÿføÙOþÄù¿¯/> ÕIh¦[ ¼>qô¢×r{ßCð#ÿ‚\»‡¶ƒ²—áÏ^û<¬Ôg//*P°!1˜õ÷l>>ÕHT>ô´¥ w fI"ð‚êžåºU7€¹,Õ“ss''W5hºÙÆÕ`°áŒ“˯œÌ–òÙžTrí‰h UŽí¬½<Ðö×gøP¥H¹ªBay¤p µ79ò•ŒW=ccÓekJU3®adx.ì(è™™…MÅñ6U€®ªË‹±c, ‹+$5‡z(uƒ,6¬Þî%L§ªtAAñóbõZŒ½þÚV)?˜œÃx„—¦R Ï÷åy'+hšÓî¸Õ³øê¦˜çÅ´F6¡•Ïâ¾sGl>r^ç-„•°Uª;í Kœ¸X[¼^jð™ïͦýå¡@‡ ¹%tè‡,Õ•öí `'l xà~»×«zuï‡`ßèmý݇F? uσ¯¼ôM˜™`°Ë=ðO?ò#°)Û{Áï–¼<¼:wôé4ëtZ€m3xkz¾ 1Ë9OŒ3øÔ½9ûý›KË€x™Èpà8$Ó[aÏðÑ©F¢\÷¡3‡tÜG DðƒÜ €†çCÝ÷¡¿# ªø¢{dÑ%×<É2|s+` 1Ï?3Ú9š›AÎ×Þñ2P¬fÒí°œX­ÎZoÇo_tyÂψZ¨äíéÙ¯ngî«ë¶'š"øhÜ­`¤w6÷Áùó.P>¼0õ,Ÿ½mkÐÞ.aniž<ü |ìîGáJó•.iÛæÿé½ÉQØ™{ûT#Y¬yMÅ cYÍ#Δ/ áPª{БŒÁð&»v”M¯êU÷:΃À†koçn0Ú1ôøèЮm'üó_˜B °É•ýÞ©lW8—™µ7¯ÌÚ£Å2oóÌš_§‡tP‰ýÙÉ™·âµ•CÝýû6¿Á;²%}~J"ed9]ÂÍÒÅÜ.]FüHÒ¶]§‚žþ•ØÑ7Gwæ'–p,½ˆmܽšS0…)§¶ZLCÿÀp¾6(­Ú;ʤÃfYbLu.ÄL¥×†¬ÀQ°â–ª.—­“/žLf³^׿îÆÌ÷¦ã’Ë 3ûŽý·¯‰T©P[õ¹[vùÔáÉdar%&,Ný;û«oþí›™ÉW&R£÷Ž–¥-ôÒ±ÅøÜ‘¹³o!¥²É0Ó›ñßøæ™F©.t 0Þ¿h$,Ý“îýûï[¼…†â¦J¸Ú‹°,÷Þ›gŸ-Áÿëß…=Ã;áñýº °CÝé~xtOÿ%ÛrÃ:¼4óMxêÔÿƒsÙH§9ìÙ“€Ã‡«ð¿ôpîßy´%3§Ó'|åÖaµ±¯/< õ‹ŸF€i–¶wÃÝcÇN¸é¥Rú;ÒОŒC¶‘†àúk.¬ÖM:´eW^g/˜ f+mˆÌM¢Áà÷¤ñ·Äó³O t÷®®ÈÎŽ¢¾ ‡ôô—ÔžjíÉóég,¿ ‡Ê.‹™GEë «Éñe¿­Ï}å˜Ýß·8ÊÍéLª|ùx^EÌßùY£æàÔd¯´ŸrC‹!?SÚ:*ú®ýoúÓ“ùìÔ©R¢g•ÆWxÇ•Ë!ó^«:7—«õ­¬Ä»z —Mk`Œ aW9Õ•I"¿ÔÚ³íxxÇj¢#î¬ «™fÔžëð6ß;ZîíòFî-O¿6•èÛÑרý؞‘o½Ù†€°ï“û q/‘ØýÑÝ+gÚkßÔìylO~òÐD*Ý“öïÿ܃³©ÎT°ÿ³û—_þòˉl"¾s¤Ö>Ðáο*ÇÜŽ†Ýk{‰öD¸óÑ]Å£Oic‚Ñý?þÀBv(ëïylÏÙöÇî+wwz¤ÜJƒ›¼ùéè°{w^½¿ö¿Žeãû¸ UárhRphîÛpàÔŸCÉ]>ÏO ô÷Û`Û f¦gá¿ð›ðvþ ìÙÙt;†¯/ÀRu kÓ0W> ¡ö/!$8Ûeïê)Ìaz¡XƒL܆T̆˜%1^пåzò•:t¥c0š³k/Ï>¿²Ü·RYgÞ¯Á`ð{´Qù£Ùù‰ÙátºF– .éSj5¾¥~ØîáSm§œKKÖ@ÕXq}ÁÞoU(Ó}rz&^~«kS§\ŒmÞ<¦;W¿—ÃnÃÆ‰ÉMrn¹‡j½½s|¹/¬f2{o?öކf´vdl6ìî)ˆ¥¥l÷Û/mîðÒ™"Å¥½—µIî[ºf¿¾cËì ží*]R#Ø–Ô#”.uC!9íûä¾U€d6yöf2;”õ³CY࡟~øl•Üž\=·'w¶âšwÌMÜóé{ΠŽÔwúî<œW”"þ™;ó“vÔ‡þ#s fƒ”È Bno®žÛ›[SÑmÿg÷ŸmkÇ#;ÏžG¼çc{‹·’›ÜÀvè½Ô!†‡cà8½2ÿþ‹Ÿ‡©¥Yø±Gâ¶sÙt" µ  /Ï= {üO`µ±x6÷wÍ:à]]´µI ÊÃDp'_Á9„:€P è²ñÌŠÎX/mêü»ÙEà !éXàH œ1PJAÃó¡\wa©T…l:›sNí¼>9µ:V¯E7Àü0l¸æñHlu:?ON׺¶žRWŠ8 x‡ZLµ×–RKÁÀꔽ5_ä] stÚ:8A R^’>Æ„¯z˜¶zeEt‹5<¹#¾ÜÈ ¸‡O%{ú—&3££Ó:ÝVÓç»oÅeÈ;XØ•óYšûòãËs‰äÂÒpJ(OJð9C…ÚjA¡ã4Hp%†ì"r#~ †ÇåDÃqlÛ‡\ÎãÇ_ƒ÷ÅWaÿÖ;á/ÿíï]4%¢ìåa¡:qEñ»H´x Ó±™Õã !@¨4€ÒP÷(Õ< @Ø5Ô¼­Ï̆s º&Ò„ÈL\×`ð-K1îè˜zóÅ­Û-²ì™|`º‚÷D‡êVÎïlWˉYktuÚÚZ0ÑàB¸KÔy—¨ƒ ¼”Xu»9š“"g²³pÔ(™›…–ÃBà@0$á¢/ΉMV…Ú;Ó3ɶ•W;r¹®Ykó¶Ù@œ.Ì„§ 9÷Y嫾\ •vJbJ$X4¯QT ˆÐÊYå–J ï}Íx±vÞÓk‚3„TŠCo¯„·Þ*Â3o„åR»6]ð»ƒmÛ¡?5 S¥cïz·9r%eµ¢Ò‚PC Bpšj®Uχ\6 *^Z=œ**RlÆÊHeƒÀïyœåƃǾûš5²;8*û:¯(~ÏÑo˜RÅøv÷P<çgO8»ò¢¯ÖÛvÝÞˆÅYë-U|9g¡Ø_ñ‡FWß:ÚÛuì;[»¶åŽ[]=?ßÉÃîä"‹ø÷P¢FÙŒòꆖ3â×pqK¸R)Ù¬€™þ⹯ÁÏ>þ¹ Ò 6¥Çà±mÿN VKPòòPvW.šÜ*¶Œ«„ÈpM ëA¥†Œ!¸~ ?€P´'X ã…B}…11…0 FßrƒÑ#káîÞ‰×ß›¼:Oô/ê Šy]!G8¡ËÎ.ï¥\!ì©ÌÐHy {Íò Ú¨¬}‰=ꎞHdO(§¼"·ÅC‰•pÁO  †+á8 º»-XXðáÛ¯?Ÿyðqèëè^ó;’Y°»ç>Èe¶BÙÍÃÁ™oÀ ÓO€nü©ˆRÆ|K:Ò–pÆ P*®R€§ó€¥``K+Ô0çÙŒ6\Þ'«:Þ=qäu1°òÆtç®'u"ÑÐW#~Ï|Ï)à]ál[ŠòÉLªß›¡Ý•¦|cÝ–æ¾µ/5Öã+ÜÓ‚%Ðl Ã%î7°›"Z(Dóø²ÉI^;ù&xý9ø{÷äy¥“ÐÕ; ì’-‘œd{Åv¬äû·µ‡ ? ˆØ|}ˆÚbÌi"PW[“a¸6k‰<ºªme©È«ƒ\’º¤há…]Ó8êV\”®jK×µ¥Š*ú³qÂVÚÐ5m)‰štôÅ©3+Ó“Žšy)—íž”ýÝ‹”ˆ×Áq‹ö¬ý,jØ›h"Ѿ°?îÌÏÃP“̼z+몖ä“8Çáy$tEÛJ(ÞÒœ)*®¢Ä% €SM[ª¨ÂèsFYäou¼ÉG R­þ3¦UQÙº®¥.+›b­Ì ‰a+}qµ º–­ÙCI8gΜž7H -UY9gR6Ö=gâºqúÚZIóPÀZòpv¼<ж1]ÓRKeS}Ì©A¢Õ¾P]KUR6ZËf ®i =TJ¨è{@C[ˆkŸåoàþd·²?A‚ê´î½…ê$7^ttuY°{w\†_ÿÊ@w['<¼÷¾‹žqöC`qE6ÿwó·"P0†ˆ–°ÑâãÈQ©|åk/ðˆj@U]õ¶¡"F.­õ5šáj÷(]Õ|¤6¬sþ‚OBW•…<úí¡nœv ­ຶ@QäY¬ªÚ¦†n:»ÈŽŽpÀVÚ º–šƒ†°¥¾X˜äžÌL*ìˆM/ÄÚÔR2 ŘmùH4(î¸ „"dM_¡ƒ0Xwmð< ݆żÐÑ ‘¢ ¦ãAÌÞ)kÈàªÇI×´€à<ì“Ô5m#‹~Îìé9ã´tJAØÜ”tIE~ÕYWµE±VÆ[×´…õzìz1A¥*Úb~+XY¤€i«…Ÿ„®k«E{ × CDDrIê²²£ËF!ñÓ"ÚFlAkli¼O O©ËÚF+š& ŒêÚR5kå¦ÇmÑßžº¢lÑ0ÁiÌAc 7&ÔÐò||£ìO€ ­ÛÖT§w¥ cƒƒ”J!œ<õ6üòŸÿ:ìßv;$Ä…bÞka*3´ ¥F ¶÷Åû’™¶ãnÐKªäŸªM”çƒùJ ƒ³7¤ˆéóökÒ§/ýjpM òI7ØAc ]Ñ<Â)òcXUÕ–´J(°¥­Ywy†G>Ê‹BGU´%‡®þú H`ã¨ZiƒPtðKs?z_”£ëZÊY‘ÃV‘‚8+W2V±ªl¬¯¹1Qö ‰Z3 B-D¨¸ µc¹:nyºÍ âr¬1;Ïâ,Œ9lÝÂe Ãåðl¥2­5°kˆ^Q"liÎ Y%l%ƒNÖÅ«rȪEžtËaHžærÀªD_Ef*Þ½ì0…ÄE¯¬²Dô—ïp9 ! &úeä)º®% PKkˆ£ Â5ëXk­Y;¯Ë«„v´1'8…€Ö`‹§\H [êhOK1 Ë,ÆÂˆãÍ€‰¬¨³dô1Wå´ÞrÀ*£9 Z¨Dgô5 «º¦uc=7p*·tvÚX–ÕÖkkV` ×–­IDATŸwpfK„]»ÐßB~åmøÕ'þl=´öŽì„­›F¡·½êA –jÓpdù…KVq‹äk€Q"Õ³Ú1²eVÆ-7ÎâòNûŽþîÉ—9½RÃPù(…¤ÁÎ=ܳÙ9¥NÐa÷ð|ƒÜðÌÐ çÚ”!²«£Èp%tQ hm?2¬së6&xo€5v—uÀ€$„—tN˜G\“Ÿ¹šR»ƒÁpbN¸ ¶Í ·×‚Þ^€2„ð2¼R~^)¿;‘iÆeN çÛ3[óN<ãfXÆÞÛ?¯w÷|óè,[(Ö@0lV#¯œ\äÛû³‰}Ã[†íXL>ÛxfâôIæƒÀƒÁ`0n0‰ ÛÒñ¤÷„wãÉl5ÁêÌo–µFÚ“~Wöàø"[.×!íX³Žj×áäR €íßšë͉ü©`¢dŒk0Ø`0 †KH° lÇD /nBDŒ"ÓÒŠ7¬Xºa9©†“ê¨rn…B:!·œ€s¡Z¯‚­}mI”lˆtOÍÕ¬¹Õ ¤ Ò1âŽÉ9„JCÃó¡PsáÔR F»Ûäæìæ®…p±V‡ºÞ€±2‰¿#€ ƒÁpÓqS¥@\·‹@$†\#ã ‰“2°b‰ºv ¬¸gÇÛ¶“víxºÁ¥}¹à €,´xR·gf S€ˆr,È$Hǰ¥? ¡Rçà+ ¾jÀÛs¸¯;›H²¤U‡zcÌdnj F ƒÁp#sí•H\X°OX1OȘ'­˜oÙ)˶mNÝjOÖ¸°çRE=&-‰I ‰1?TÀA –àX8–ÎxÉ9ÆÀ Cp˜mÙÌâf6Œ6 ƒáÝÕŒ×%¢=›ñúsÝåù™åm¸þEdÓˆLséxv,]·œTÃIvT…t.ífú‚‘£ P)ç.wx«ÇB KnØ<¯i\""M´Ö 5&"„”V¤ L! ƒÀƒÁ`0\”÷t Dß@§ûCÿèûŽë+/äÞzs¢ký‚ ÓŒq…ŒkFRK+î‰x¬!,dzc™†K»v,í +\ñ,\PfS—ÜÐgF6‹­V\h!Xžˆ® T ê® ?_ièoOBUUu]Àœa0Ø`0 †›Æ oÞT{ì‡>0á{¡˜>5Óq%ÁË… ¹´}iÅ]!c¾°bžt’®´ã>V,!¤X=ñ R!²ëÚ¿€½ …¡®®¾‰•«º0DPJƒà ”ÒP÷¨y$l C])ZTÇË5ªùfvŒ6 ƒáŠpÛ¹.ÑBÆmìn<ö±¦<ñ¼¢”@dÐL]àš +°b©ÚéÔ…š´ãç–V,à\ž=Q„ dBJÕ‚6̦4N,ßÓÞ•¹k´7ùìÛ3ͨ¯4ÏÖ^‚%8Ü5ÒV"¨m])$€KV÷3)#€ ƒÁpKsSœˆ08Ðç~ÿãß7Yæ³2•–ÚrRžK»ÒIúˆWY[î m´Mg‚™²…‡Nݾéö¡ï“éñÅ"ª ”Álʦ`Ï`§²Rnù {p¢¤ËÞÆÄ¤@Œ6 ƒáf!•Nù¹Ýù›©_  N}òÂÙ}w·ud ""i°|7ÏfVÆÝñ•ùp¡jf‚Á`ƒÁ`0®¤7®ºIúƒ-~7º/!…z*˜®¬¨|#ÍR¶Ãc‚!¢&MÐ Vժ듯›gA\±&Â`°Á`0ninªBt7T Ä;ßÕt-¨éZÐb?L „ášÀŒ ƒÁ`0 ·4 (`Pt1¬Aœˆtä&1 ©¥ë  µÚ ØÚu£°5›RHŒZµGHœ”f-÷EŸ÷ù ˜3¤‰Aœtô9Øêx“"F­ÎŒP«swÆ›‘º!Úà /òy H!q` #_›n® À"?ÔÚú>=oZ¯(@jÝçmD_š6e‘mФˆAØê ç?ÒÖÀ6b¢8´âkØÆøjÕ×`‹a«w%b#?OáÕÛ‡pÐÀH™@°!‚Ö%÷§ý6VdQUp9H"»è–wõëºÆuQÙaŒ…‘L]Kí‘ÐEOí¨@œ|­¼q¯#r_òa\—µ¶ÔòH膖­8Ë0¯€^ô½£¤8Uµsæ{Æè¢JøS~;+DŸ3j9LúÌkiÎ@ œpN¥½´gGî_U[ÓõèvÖ%å G®²X öHè†h¡j©/Š˜®j+²M`ªÆ<}sS«Šë­ÆW+aÊ?‰í " ­0,„  ·^e+ë@-©¤ø %FUPUL—• vô1W+aÂ÷TK}Y “~H F`”µ H­ªÈk \ CƘX»¶tÜŸòÛX1ú¾pÎþ]%UÀQ‹Z{ã^t\×–nútÝ×h€0̇‰ˆBÔªŠ©´´?Õ´ÔpU –ö§å0éÒ9»€ŽújoÆtYq]Ñ1`ͽÉ`X—fí¬f [Ñ-‚¨¸ÀÚfçQ`dLúÖÆ]žá‘Õš*„Žªh˲ʑ-’Æ™rv8+‘÷× ?#:xƒ¥£—šTå躖r@V";)8JTö6»yó˜ ¤.ëúY‡£5°^µF¬¼èaKsf»G}Î@Ò"'ŠÎ§}s ãäi.¬Èvfƒ$³Pñ.шÌ-“Á`0 ï°Åäƒúä"B"º)úb¸±1§@ ƒá†ÕC7X;7ÂuÐMbÓ‹~^… ± dˆx£«á=ˆ‰ ƒáFo°vn„ëÀ›Ä¦ý<âiÁ‹€ˆ@¤éRR×D€ ‘1`ƒÁ`0Þ-€ˆ@“‚ÐWˆ"!i‚¦°;+úÀ™²Èg¿D €Óbðt›×Uú±w/òʇsOyѪ™ºÌh]ÃFOã[Áÿh‚Sß=•X8¶àlLƒ³oÎÆ¦^Œ¯#WÉph¥qüùñäÊ䊽.–ˆ`úµéøÌ÷¦ãƺ7/••Š8ö̱”[uùF´¸;þÜñTq®(u¯·||÷Úa<¹tbÉÞ?ND0{d66yhrí gC$DäÈ‘˜`Ä9'&1Î96ÿËNCFˆH€ÍŸBS ãõ³©V´Ö16WU/wƒـ F_Á1a~*o?ùëßÚ”ŸÊ[­¶·8¾èø­o÷¯Î-ÒdnK7v¬`þè\ü©ß>ÐW˜-X­¶uü¹ã©ïü¯§ú74ãt3ß8|ëÍöçþèÙn¨–ÆZk‚¿t0ûÚWw´Ú–¡eÞÕÇõËãK±§~ç@ßòÉe»•ƉšA–oÿÆ“›7¸àoaSÀ"c cÄ#Æ0Á€ gDpóç¼ùÅœÃks`¯[ Ä™û„ÓûÞ»ux¾í.ó—Ìú4|ÙNrFû>¾ouÇ#; _ýÏ3ÔŠ^>¹l?ñ+_Ü÷ñ}+·}è¶ãÌÜn \pºûÓ÷ä;²î7¿ðÀ "ÏщW&¿øBÏ?x×òÈÝ#5cÝ›—L_&xè'ž/LìïüÞwzTM¸’&8ø§/tN½:•zè§™ÏeÍÙJ71wþÀ]ù¾­}õo|áë¹ÀîkæŽÎÅžûÃgûv?¶'?öþ±‹CرMA»F7¿à¬àmFyoHi×¼6¼¶éFâŒn a ºýS·¯îùØÞ•oüÚ×r³o̬ïÀvj ªo|þë¹ýŸÙ¿xÛGw—¸Åø}pRŽzøg^ºc¨òåõçÃëM‡ "8ùâÉÄS¿} ÿý?zß·w”Uo ü‰ûÉéÕé‚ýäÿx²w½é°§ï;ÝÓ‡§RŸüÅǧ²¹#~¯?ïj „•°ô?ñàÒÎGw¾ôs6ºÞtˆ3ißüµ¯çîúôÝKû>±oõª®/ñumlÒÒç‘!œü\“ˆk4? FßÜ "ìþèžâ–û·Ÿú§ú× ^_tžýƒgzoûЮÂö‡Œ ºìÿì½+};újOýÎÞ«M‡8“öðü?Û{ÿ=°0ö¾±ª±ä-tó”vÔC?õð|5_‘Ïýѳ]W›Â 5Á‹ÿç`vi|)þðO?2—Ì&CcÍÃm_‹vîúÁ» #w”דqnÚÃûôþ…WÞnèÓ"´pMR ®‘M Fßü[Ð?pgaç#;W¿úŸÿf¨p"xùä²ýµ_ybpßÇ÷­ìùؾU.Mä÷ZÀ%§÷ýÈû—;²ÞÕ¦CœI{¸ó‡î^Þrÿ–бâ­GG®Ãäg/Lœ«I‡8›öph*õÈ?t®ks—g¬x‹Þpo»útˆ3i{Û“ßþÐö[+(BðNBð*ÓUàÌþj0ø]Á– }ß^Øóñ½+_ÿüeÒ!`ò•‰Ä7¾ðõÜþÏš´‡ë“rôÃ?ýðÂÐÕ/ÿÂ¥Ó!ˆN¾t2ñß>ÐßÞ¿°Ã¤=ÜÒdz3Á'þÍ'§WgVíoÿæ¥Ó!7À§¿™öðø/~jªÃ¤=܈Rëš´cÅ-ýÀç\Úu…tˆsÓîþô=K{/Ÿöp]úrM®cc®bm+xÝæ‡Áà[D„ÝÙSÜrߥÓ!Çgþð™Þ]º­°íƒÛ ºŽìÿÌþ•þíýµ§~ç©ÞÕóÒ!Φ=üÑs½÷ÿØ ›ß·Ù¤=ÀI;êáŸzh¾ºR•Ïýñ…éÍ´‡;—Ž7ÓÙ„I{¸]õµnçμ«0r÷Hù©ÿõÔéç§=¬3ò{ó¤@l\;7J_ FßZ¼“±cõ«ÿem:ÄòÉeûkÿõ‰Ü¾Oì[Ùû±½&íá:Ã%§{ä}ËÙ\‡÷ÿvN:L¼2™xñO_è¹ë‡îZ3i†shèðþ™Gæ SkÓ!ÞI{˜L=jÒ Üp߻ҷ­÷‚tˆ¹£s±çþèÙ¾=í½õÒ †›MÞò°í{üŽ Ò×?ÿõœDɹäúÄá±{>»i×£»JfšÜ8)G?ôS/<ÿ'Ïw}ùþ|¸¶R³&O&O½x"ýÀç>0o"¿†‹q&â‰_ýêÀ·óÉ^·âЧÿ;Ý o-$ÿÅOM™Èï ÍuI°â–~à?¸ÏÄÃ/ýÜŸ’"\<¶;ø§Ï÷¼ÿ­;ò{]ûr_ÇÔí¨ÿ¨FBåC:zF»®h®–B tÔ6TQq IPC«ÈmT´ º¡¬[Øï¸}GÍs­øíœùÜ£ÓcÛ77Â…õ·¥‹J„š«kÝ‚M…vµ@ý&…ª¬x”>œ!,„R×õšjXº¦¥Ê+ atߣ˚«ÅhsæÎÞQtgÖ3žîôV]ñè?ùÐìÐÈ ¥Ÿª¨8$PD·‘Z …ˆ¤(z%Å‘£Ð¤VÖ(`À¢Ïí‘P¥ÖæŒ*„R7ôùÔPW”—‰u´ù \—±Þepxð\~æ‹O÷¦ ±Åà ©ÿÁíÀ‚Hó¦¤8sB¡­hO`IS«ŠƒÁªÑÇ\—5ke¬tIñp)(1êãdT«J „°…5PVÖäjS¤Ê‡t ¾æýiÝì½oo¥:Qužþ³§ûó'VâþÉNíØÜ‚uWÔU-UU‰peôµ¥"Èü„ €¹-ìOU-tM ´ƒÈ×A ˜.+Å–çØC꺖¦L²!’†¼æ{¿Ìâ,ˆ¼VU‚jºN-¼JUí …!X9CIˆ‡+¡åócýcx½°Op w ¿¼Pë7 Ut  @Fï x$)$.EëKÓ;×U²uYÕ#mM[jU½uæûxæzU'uC·ôäƒJ:®VUô¾ Õµ 5:Ñ×€Ê+€µ}iîO¿t=÷§-cìõÊþ´•^ê<u΀O‚<*¯"ûtUS6cHc‘_Ö܈½|䓈º×ž^LWtLWuä"Eº®¥*¨ï¡Ñ¿†üétÈañ …IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-lineitem.png0000644000076500000240000000714512536324505023743 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®ž pHYs!›ò3IDATxÚíÝ}PUeÀq5C3·| ÛDyqEƒ$ÑÙr‘—¢Mˈ´ZKlÛ6++#µ.÷^. …´;…â¶m»ÿ4iSÍÎ4æ+˜oEš)Š"*jÚ–Öžßуw¯¼]9ÞËýþf~“Ñ̯;÷ã9ÏyÎó{ºt!‚ ‚ ‚ ‚ ‚ ‚ðÑX¸pao-#µ U7k9LEm‹Å2ZÑgVV;&&fJttô=ŒGSÓjG)ªYXXØË ‘ög—ç®[´Ùì´½e¯Ì]½h«’ÚËíU*êJZ‹mÕ*êÆ¦L¬›_ëm㡬¶öÝп# jÛßÉþ*333Ü ¡R° î/kÌNÇG¹»–|m’ÚäT¨¨+™ý¾cŠºSã$<šø·‡ªÚKj^[ïøOî·*jç®ÎÛ¤}·‡ @€ @€ @€ @€ @€ @€ @€ @¢ÈÍÒYB¾ÌfgÖ2û!mpw«¨m-²VQWÿÜoX¨¨;19¾!ajbƒ·‡ªÚÙ¼¬eÖC*jkX*µïöf&íWäoz³S€ÝKª—lPQ۱±GEÝsµ÷ª¨7#î@bZâ~/%µó« Jr>ÊÙ¥¢v-YYYC¹Åâ‹[,æ @€ @€ @€ @€ @€ @€ @€ @ËÄb±ŒÖZ¤TÉ ˜z»­#†ŠÚzkuõÚ…Ö:uã’ãõ¶?Þ6ŠjÛW:öZ‹¬‡UÔ¶Ûöißí® \A¸‚p‹€ @€ @€xü#¯­I³ÎÚ¿¸&-@—|°à¡rí£ÿ2 dàñçV=¿ ˆSÚw:6„D†|/H®¸òŠ3·?›´[®*@ŒÚïçTLš?yg÷ÝÏ”¢×gnY° ˆÓ/-}}ƦA#5 ¿«{üt_NÊö‚#@š~i¯\²6öñ‰{º]Ñíg2íÕ¾@âò³'?xzkDRäÁŒ’yŸÊ¿çU/^€¤™|äÍÔ/»tíòËè{oÙŸW値ә»:}sŸþ}~[®ëo¼¾ ˆëãàoFÝu`ÜÃã«€´‘C£ƒëÃ5ÊÕ ˆKŽˆY+·\ÝýºŸyüÝ'>@âœÚúˆ,.^3øšïg¯|j@VòñwÿüY¿¡ýN$g§ìp^\@¢åÌâ´2cqqxìðCÖíö€ä‚¶?Öb[µ|)ÌN½]Ì Ç^%µµÖHúºŒM O%VÈëôrTØÉчbÞBa’fšpÄËЉŸ ?éê?¤ÿIëŽì 1g%½%$ñ2 ò ìåßKŸÀ 9ó^5i @¼ð¶ßM­5´Q2öž,úîÕuéx-W$ñò3 ¥#½<nkq î! ¸.@Go?ÄS{Ò%±ŒÅÅg>~n @ÌCòtÑœ2S€ÄÄÄL‰M™X+¿<Ó39¾!n†‚ºZjB•|æ³µ©¨|"dTÈ çŸ˜0òh¿ÁýOÝúàmõŸÍðÈñPR;nF|M|J|ƒÙuGé[¦CCCS; $::úž¸iñµò7›é95±!1-q¿ªÚJêj)­yTÔ¡Q¡'Zúï¿?¼¾[÷n?‡Ö0ËsÆCUmý»15¡ÞìºA‘AÇHXXØÃÜbyë-V ·ÆâbÐè!Gçoyi#·X prÎÒgʘƒt2 ÆþãÌÅÚ™‹)y÷oˆ{8d–Iz'b<ár>sQv.¶µ¸èë@tÚä\p𘷓1ò©Ïï\ì}mïd_<@ÚÆbì\û@Lµ|æokyNâ«@šÃâšýõ忎¼¡ÞuqÑ´„ > $)ý÷»ŒÅEÙï«@ZÃ"9-ÿÁ¯¯ò¿êÇ[îó/i¡µ…eÃ@šÍüÚ‚µòºŠüSNòMšyçaé°ÒÙ´@r~öä®÷»Êï´Üv Ñóª¯ë¬@‡¼±Û€äÂÅÅàA?ȼäÅRsÏ4ñ îà@.üÌ+–r«Þ¢ó‰÷fo7}|•Y;/7wq ­ŽGÌCãªä–ëêk®þ¯;­Q=¶õ¨›8VÇCu$]Ϲ˜|ËþŽÌM.÷Ä8} 1u<ä¹>ýÏŸ¹(·^ým^€Ä­ñÈ–3ïˆ8h,.Þ6kB¥»çš ˆó⢶^?ÞÝ']H§"ùRYVijqZ™ü9sË‚Ò]¥=‹‹ˆOqÎQ“G«É QƒëÛÚ¹€ø¹Í ?»s1R뮀¤™‹r ©ñFì+žÜfT sa±XFÛ–Û«dÌNk‘í°c…cŠÚYoX¨¨«×~ÝZ§¢®´Ï‘!ž8éEéûô‹½OOŸ7½æRŒµ}¥c¯µÈzXEm[±mŸöÝŽà ÂÄ”ñɺ±/ ŒÎÛ{¹ÅˆÏiZ\Ô&•NôFŽm§]@ZxÒ%‹‹’'mîÌE€Ä§Ìüû¬2Ù¹ØÒ™‹ˆOѵ¹HèM¡ßg.Þ17i—Y;¯¢×~?§bÒüÉ;¯ìyåicq1só‚@œjÿ_[ÔÞ=~’óá€8Õ–Åʼn³ãö„O ?Ôщ;@Ò逸æoSoÝ×g€ÿ)Ù €Ä%eÒ®/.j)ó€ Í<2àø}¹)Û€´’ÒYE°ÈÎŶæ(ˆÏYø¹¥ÔX\ ll @âs@ $ÁcCêúö=ÙÚ9ðˆOqM™¼ ?$/> ia{¯ŸvæbrvÊ£« @º Ï\;ü4ƒ@â”O~pþÌE½-êßRË€8¥lÂ3mlµ±¸8æŽ1õî6²@:-çÅE9¹×¯‡ß™Å5ùk€¸ÖÝ™Wšñv†>ÖÒÐîög“v›µs ñz Γô¡ÑÁuúÎŰÇÌ8ˆ¶?´ý¹tãq Úþd,±2$2DŸÀǦÄ¥íW® ®yµÉúÿõØç2‘ç a @€ @€ @€ @€ @€ @€ @€ ñ ÃrW/Ú*ÖìÌÖ6¿ª DEm鈡¢®^û½ìJuãfÄ×$¦%î÷ºñPT;_Aiö‡ŽÝ*jç|œ»Uûn›Ñö'Êö–½R$›Yˬ‡r>ÊÙ¥¢¶Þ.FA]•µãSâ¦&Ô3g3G»Ã°Ûj•|æ·l{µïöHn±¸Åâ‹9@€ @€ @7h]ÈÓ×glºT@Úóÿ@<ˆ¥ÜVâ?ÀÿTê²™eª<òfê—þýOÉ©°ˆ×Üb=·êùÍî"qˆ#}Í \Aâ}sw‘¸ÄˆÇNÒÝAÒ^ îâ@<ú)ÖÜOÚ‡¤=@GÀuná@<þ1o{´äbq ^±Ò’Ö€t@â5 …:’Í#i HŽu›]4§Lî_$ç,}¦Ì›ÆCUmiÍ#ÝG”|æ·íåÚw{D‡öÊÌÌ m òƬ¬¬¡*jk-]"}feµCCCSÃÂÂf<š2XZó(ª=BËž]‚ ‚ ‚ ‚ ‚ ‚ |4þkiö©Y+IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-parentchild.png0000644000076500000240000001741012536324504024425 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®žÏIDATxÚíÝ x[ÅpBBhf)W7½¶[ÚÝBݶP¶@’–$m ¡$ڳ܎K’Æ9lY—%Y²$K¾RÊH!’à$v|¹l m÷ënwûHlK¶lëò¾yÖ“F£™÷æ9²-[ÿù¾ù+zcûéý<óŸ™÷×UWA (P @ (P @ (PT” p ÆPÉÎÏ~c×Þœ?$³fÛvÔ¥k›“ošÜç3‰mš³ßQ è‡0]²T$³æÔ\L×6oºõ¦>8ŸÉ«»_Ûý p>ó @ ð†o( €@ €@œO@à|ç€À @¼¡€À @ dÌ1þÝtâ ßþ§öÉ·LöOºm’ïó_»Õ@‰Ôf^~Ì~©N¼a¢€"ÔµG××OøÌ„ #—´Á¶£ýbɬÙî]_i›_yùÏ7Þr£Çêµ×_L¥Ÿ“¬·dSñ|ŽÚ6mÙõЃÇÿYsê¶»në$q@=HÚÙõQNåí߼Ѐ´²¹îåêŒ/ÝÜÅÂ@HÚYT¾¸åÚI×úåp’v@´5œ¼÷—?úËUãäa’v@–þ~YsÆ”Œ.€¤ ¬“/Õ~ýÁ»>–ƒ0éÖI=h€´òŸKø¯qãÆÉöS¾3åòö ;«î~äî¿’V@¾üï|Ê‚1~ÂøðC/Ný3Ú…^ @‰Ô;þõŽŽõÇ6Ôᯠ$íÜpËçzæäÍm5}šøZ@ÒÈõ7_ß;#kÖE4ÍËz- i¤?±{N›îoÆJí+é€@ €@ €@ÆbÒTï~àžNHÚI zb@ €@ €@ €@ €@ €@ €@ €ITÖy/-ø¿žzð’X}° =N_ð“O i$m€d”¶ = ±à  ÞÐÔ¢9¨ €ÐªþCkƶ×c8go €8Œ¯T|br´ùŒ{N]J&@F5 ‡eÏÛô˜L$€ŒZ 8H2‘2*8H ÉB2çsé«Ë›•/n $i8h@’d$Î禚Í5S2ºÔ  D È•"©ó©  †muºâ—i䀠ªsîП)lMçS ’æ@¤žÃènî4ºë=j€˜ÜM¨¦'éóÉ‹€¤1rXÅBB"áìp+Î'’¦@X1 „Ä1$©r>•4"Óà@X8Ô"I¥ó)"ù¢€dÏ’’æ@”pÐH@”p¨A’jç“…€¤^$„/’T<Ÿ4$$M€.ØÔàÀ‘hÍÇzÕàÀ‘è[ ›GÓù$‘4‚Ö9 eG.]5µ9‚¡µTô²¦€e¸ê=º’£í´ž$•Ï'Ž€Œq GtWnéù5H¤a•¸Ý]f„…ÃT|¦“5ÜJõó)!™¿nþ©‘ô1aòM“{ЛšÌŠ¤k›ãÇï—þýÕoÜå_ºÌZ¿þPXª™™o…³²^ãÏÑê† oˆý{õÊýá'žÈOŸ¾,ü©Ü_~Ú4/B¢³í2,ñw†äVÈÕT„cγ[}Ì­òïv“8”€ ª-}ÿÒ견“y>Õâ £¨MÔsì.:ðé´ úô®³ª€=‡¡¨Öûļu½É‚êSî ®Ü¸Ç+;[åªõÐb9 (¶™>ë¹¾ío¶'3ÄÒß/kþUñ¢3jÞ#2 Úïçxå„8¬Ês6wÈ!Iba1‡±ä|Ç=ß›À/òÙÏlòmÓïÜn8ѹq÷AZ9þEs×Üç¶uÏøÙ’Þ~² ïÞûŸ |ÿþÇû~pÿcþ‡f>ß;÷¹ßvoÜõŽGŠ9”rZLÂ"áØUPÕ™ ‰ HŠ·‰ãª’¸ “HþáºIá¬ìý”]¹uÑ€Ö²çb»Öùvçp$‚q Ù¶uèKfÍvïúxÔµ¹O÷ý½.ñ> sE¯É~Þ'&lã¨kmª¹¦zß}÷>ÑŸgiâ>V' uŒ¶Æƒ­Å÷íïN áH27ïë3šX.ø©ÇZNõ¢]¹F[s¾ ²—ûçE8~úlh§ö¤plCnñkr´útæã}èÝt…îLÒ÷È–]=È·IVéÂ_eŽžÅx̱råëa¥ÅDÖl9Üš=“Õƒ$ì­âœ–b„#zlqK§Ò.`©çÐ;NzÑãp%‚€!Ö·)s(!!qH³XJ‹‰4$’Gç®ó±†X¬˜C 'ÌŒ)"IÄ1‰ ÈH¶) «”r|D GìBní0`»€ñ‹Y) g!!g«¨3cL$lC€Œ`‚spÝG aá WÒiH”pà%$ÒÅÌ;[E"¡Må2gÆ(ãÊDd„, žCiG+ ‰Ú^, / ú9ÕNåJHXër¿{ ?©ÍdÞã@F"ÁÂykƒ~ϱOy¶|'¬wV¼¥•¶›!™úðSmaµúäÕþ-¿Úuñ/º»EÀù ?mCéw77wæ¼ããÅ·i({ÿ²®Þz€ŒÂ ¨ç@70ÑîËæ™­R Üi@PÏ‘c=åáÝ"rƒ­¡ÇÀ™‚Ví0÷ð&‚ ‡U ßìV¬Mñ1á%«' Ø`È<³‡š©\9$$|XÅ3»ÅJ°€Ç$¼8¢9G"VÌÁ?,|_û9Ÿxn’˜€ S‚Úl•Îr¢Wys=æ`!ÁÐb^$´ "·Ý]ZLT#ºY12ÜRƒC $md›šÂ×½ü‰bUk:Ú‡ö`É%C`Uá€ß #ä^“¹îp˜ö|®þM¿ÑÖÔ£öçÝe¨ö}ùËß¿¼û]ÕÇšìg}¹º7ü( 'ÿOéw7XzÐ6{5ßOjSo=Ý«5½Û7˜÷'Ϻ¿;ç­¼?AÒ†+lÓØRØlÜS}IÕ_¨HÏ!õª¶»  Ñ1诲ÓuÚë*®÷àÕé®·ÿf_8ö|øh³é.ޱYu;…¿Ì䱨š Ž%´iwV{<µÜ¯Ùµ¯ï™¹Kü6û)¯ô}hß;¾Öy ŽÅGZL"ÛƒˆŸiRéU=,´)õä0×nà²úˆçYb%©M5HÈÙ*„¥ÛQƒCúºÞì|`-jy´6[ŠÅÇ–3 G‚‘†Uhˆ%7Â/f†#=' ·$$,t$ y‰9$øl•b"‰’ä6q$<[Öã?^9†D DBÒlqG€öK½Šü¢.]»9ˆã" ·$$¬a ˆ„Dg9Ù« 9•«œ"†„‚6ëh×G-“»y$zÇ ¯R\rÊ\"^”x=m´Q^­±õKÏÕ˜Š^WMy®1ßÔ/Z*Æ´×ßm Ï5'_kpŽnÍWê ‚d›¨:\5ì!“ýœÏ`?Ñ¥GÜý$Ž“^rƒgVP\q/:ÞɃ€ Õn6¶ðÌn%©õè…‹F Ùƒˆ³SB@ŽþŠ·ä9âf±gœ"êâU™¡„6ÍîÀ²‡ ¿z|Öìy!òxÝó+‚·LšÜ¿éɹ »\M°`¯èÒ;®Hj ¨çÐ×:ÎÁý #Ü&ÏìVü«bÕ©b¹7ÄÂbƒÃ¤-OÿRıbæÏÃ;óŽ?¸egðÉ{Bm]¸8 ˆ˜`Á2`Á,®–«b9#÷µs%‚PsalS I,H¯¥éuœAº›¤»”ƒt" —f±p$ßþÊ×ÂËf<ÂcƒÙºÀîg—Äašñ½„gÿðþ9»E]Ä.f^$8¾DW†€ C›rH¦yke¦yë¦yÝ2Ó¼.ö4/ƒ\‘.þ/~þ¶°aÑ AÈë›v?{Í5ýç̱¶_xô‰ÐÔo}7LÎn‘@ð€œ¼˜•ÐpÈ'‚¸rd˜Úd!ÑTq,&"©4—úÑ" €z T«M.ñ±FSØ/=Wc,Œ{øºü¢Àqá"nrüù¢5ã¾nþû¾ywøÑïßj6‡¤ç7Ì™'~ÈÎÚŸÿB|®2Ïøêw†—Íü™øu“ðs ö›…øEZI§®S.f9ôDÉÁ@†±M ê9 VÞ­&uW°Õ[qǶ(n5jáŠ5b|ñøÜÖ?ÿBðEÁg¯ùLÿ¼O ]-<GÆÍáë&Nì¿õÆ›ú«5ÖèqRObµGn¥Lå2on"ðàˆOe•¿Bd˜Û”HÃ*u› -ë –r?+¶ D…a¾}„jSóì¢Ðäë®?q ¡˜{ÿC¡6ÚïÖm "(/Κ:–cJh!™?wq@ëlì¤n‘»=6‚D Žèvw)«|phS_o;£+9Æ=-‰W­õÝî|wƒ‡6Í+d æÈzŽ¢ mc¡±}AøÝmš`¶º1‘Õ¦ÉöžwêOŸ ð&‚ ³»k,TŸè¤GiU»¾Ê~²»ÒÏ‘zu7LŽÞ0Uo) p‰ä„a¾âÎ ì(H—w~ e«íp7o"ZÌ¡z ÝùˆzŽº¢³Éz¯Èµ)®¸ÛOv«Á!}}2߉‚aêªwµ¤GW҅ס˜£AxÄWÜrÕ۹楄ÕðÓ›ø\£ÉBâJ=×ê¼[øùAi%])„\@®‰Á^ÝLd„ÛÌÝkú¥ÅDÚm²ÛÝÝÂ_ö’ ³z4›t¸C숭ò´õ´½X´ûIâ{²HûñÓ¼¬D<³UµS¹4$xÌ1&ŒÖ¤ Én ·PL‚þ²ê,§zÑí£dBçiûŒ…ç}§ î`á²µ‚RqH«¹8Ô˜ïKC'·d÷Ÿ7ºÄçÑŸ`cÅø×­fôui¨lÍ&áß.êk[MeaÚñ­&Wä9W±¨Úè &rMõ¾iÓŸ !$híBg©¤¾nÁBMbâû9Ÿ”ôÅhX5¤ï$mH­DyÎC¬žcγ[}ù¥míó¦Í ¯Ý,þêKÕ¾*3d^´4l_¾®_zÞøkPuPž+Y“úÍSóCÌ× x˜Ç¯Î 9„ïЦPó-ǘI­’©?í×X+˜±Åìg61uöÃ2 ‡!Ö2€ÄÎŒISه텫6КDB‚!&Q½Ý=2\*°VçiC,<æ`%‚ÛîŽzŽ]¦£]rŸtÅ‚†UFÊlI r{·$ ()]½Q\¸“ò†H@Þ’gï—f·TÝQˆ¶»3AÐÄbµw¢˜ #•>ŽDn€¤ ºË$‡²6‹9yO:B¢úžtF"ˆD ñ¹š{ÒÅM…Îê¸íî,$$¥E@’F@hHâ€DzŽ&½™Õ¤™²)Q1« %D<wÂloV m„†³B@Ò ‰$ ÄRî—¦r•òbዉÜy±ˆD1 eâ 9ï° ‚ã`-’H$ ¼ÛGHÁ‘ z÷ùŽ77g‡ðí#Ì­&Âsè^u|[Š´}$!ÁšAZ"„d`«ÉÀö‘jÎD(pwEz ‡ÜV ¢foI3 K_]Þ¼©fs„ägóWv£‹§ÆèV¹Ý} &Á·ÄzŠÒ`«¹$Èܬ(ô$mæ’óîæµZu›JÎ&àPÚ¬(!™5g¹OÍÞ*’f@–.>“1%£KBòØÊÙúÈüž#Û5ÁšÚ^+v払[s©Ó¼Ì޾â.á@…[Ml hXu>ß&w ö¢*¯Æò¶ö!>Ïüjwê!XuÆÏ—ø¦=7óï#ýo“D‚z’:‹Ê$ ž¤É$ý;†ƒ½ÝÝÛîN$‡PR°ÚŽv³>éJ1Á vå4AH$ Åùž6«›ï–[" G1I«¹8HYt箤ãé…䔊¯Åƒt‰l‚…AnY i ÕEå‹[$$•%úŽf§©«Éâ” Ò« …”À۬ɳö7!v÷CºdàøÂ„ûIâƒt·ˆ–YGBýhé+¼Ù €¤1IM‘¶ãâsûGÅf¯Ô“$¬ƒ ,‹ÄB!V €Äžƒ¼Ÿ$Öƒ”)ow'>s$Öƒ”Fþ½P(!Iøhé$Ü @Òˆ„dïÚUÁV—®G·’¹Àq RÌÑhtñ¤s’ eüÛÝrrÅãÛj‚˜ìç}ÉÄ@H´ž´ìôÙ°> nÅR’Ó¼±€Þ’Êl#ž ÔŸæý¨–ÙÌf"µ¨ÆlÓcL<-Và€  ‚ (‚  ‚‚  ‚ (‚  ‚‚  ‚  ‚ (‚  ‚‚  ‚ (‚  ‚‚  ‚ (‚ ·¾´!áo¡%ê@À8ÓnÞ+ƒ€q§ÝDùP¹ 8U3»@t–gãý`” î¬/ãͺ2Ä‚¤ä¯æñ·@À0.‡¶UY 0›ŠÚvm ÂÀ¦R³É+,J$`þì0ïGµÌf6­@Õf['MŽ{F‚P†±š‡„q9B™ a¡Ìå0B™ÍÈòì°ïGÕÌf@˜Òl¨ëº ;Hh ØAAAAPAAAAPAAAAAPAAAAPAA×þˆ¢˜tFífZðœ0ÖÅø1@" Æ™t’å· wÊõgg!`H¢ óg‡y?ªe6õ˜@çÜXÙe"Œ7çJ¢(Æo[Ïóòj>­¨e—’¿.&Œ­¾úƒÑqã@‰„1›½ È@ýÙaÞj™Íl&VŽU2úN}ƪhöX©ˆ䎃`AA ªFa“½¢§° “i…JÌ¢’;á¤Ê¿2$f{¢@=9”ü?ƒÀˆ$P ÀÀÿ‰x]PˆKÁ#:qĨ`“¸h‹1þU&î&„€žáÉÞ¢«zyªÒœ£±¢«þ¡&U¨Åd Ù¡ªlÓˆd³ˆì²ˆ`ƒÌlI3lU".H"eB„‚HøW‘‚²üaˆG%°Kq<™ØTÃU¡ìj`ÚbزH)QKHˆj‰’9b–å¥(¥$‹ºƒ‚„üSÀ›§š7çè4çFaÁŠyKN”Vˆ"I.©–WË4! 1X´Ñ¤šl:ªbY„°k™ŽÁ9Jì]_a•×#`XšP4cZÎÓ" 'Ò=‹‡R—G“b…´¨9±]YR²rá–Ú (-3ÉvbÞŒ£ç+ãT©šLÖUËM«E–Ž,AZ¢É®¢˜×À‡@€×o|Í1¦•©ÿi™´9vÑrFLœÊ74NÎ4-¾•Å8¦KŸ•7jóRZ4áF (ˆ;ïéÆë¹A‰9BR/yÚ«‹.Š uE+ªš»…oÞµ¿N…t¬àùŸÄÊ•’âØ\KËÅÓ-í¢P±O›ŽÜ«ÏˆIÁ‚k  RZª$þ¨þ½öâ…è†ñ¡VÍ.+n…EÄ¡ÁI°ö× 0HÇ—<ÿ³½sJ•¨pv®#sþ'mí$&V¤­‰q¥_[ÂØÊ ;ˆÀш;ÑÔ“ß¿í³§Îe'PØ]! ïzL3è¶®û ÷¿e|¼í=!zìRoñgî/¿]j÷K1 (ȇñmß:÷VôSÓ ½óŒ5øæ W¼«ï0ƒLjÁ}|àùÔà~«uf´¥øƒÙû+Œ,s°G¡ ×À‚êzpòààS§RÍ…õô¨‚ÿ¹öŒ¨V¦ö³ŸÞ¾¯Ò:{®ÅøÁÌýæ±J†\k‚%½ ÕY‡ûŸ¸pdã®ó%5aVé#Õ Â͉¤ELúÀ†!k÷}ÌØÈD×ζ­ Q%&‚‚\‹ÙT{é·=}z¤sǸ-EÜê|¤Zýœ˜fÐ'¶¼m>Ðv”loìm0÷»ü6 òa%0Ö¼yñW÷}vd,Ó?C‰Àªó‘jõ7Å&è®Þ½NÓÜÅŒñ/ss\ äZx‚LG:wNïßúôÈL]{® ©OxxÓQóÎ!VÙ3¿Í¶AA®GY‰;ï÷íºt¨ÿSgóÑ´QTÌÏ6N9Oî8Pó}•_æ» €  ×e1ÞT~{óS熺«Èº]}T«¿ÓÊô©í¯$fgšŒŸÎ0‡¡%(Èõa0QÏCã ­ƒ“® Óµm'á_—D=6xØl‡‹QcÏü 6ä†x„‡ÆÖ­sûîýÌȕФʩV'$! îßxÒêÉ¥ŸÌ݇¹),Es‡:š88ÀCc¼¹~ø[Ë¢Ï`{ï)»¿þ‚`ìY¼3[ðío{‡_ëÅPÖþÈMR‘ À 20« °ã‰8ÍËÔIˆ€†0Wf+à-dn¶ §®)á|Ôœ£ãâX1ë’^}†›»w”Z¥<Fø³™ÇºàEÅ&©ÂÚ™NÐ'Ÿþùã·¿ö§WŸª†µ?%ˆÁa¡:gFÒÙÓ'zbQË #ü9E¦Ê b}î„,2»Ñìß礢ΔÚ#Úï×¹ÉÕ<Ù×þd«qíq©¶Öþ¬„ÆÆÍ‹o ŸškZA‡¿µ/ú Ú¸¤‡,2k/íïúôpfÇe[Œ¸A?R…ßNü>òe¿“ïcnm<´mn«|þ¯¿pæþð﷌㒠 á‡Æ‹›ömä'üÐHXpá/ü뉨A;§<ó`¡j„mŸÙžó%yé‹+’„,âø'›yhÜ𙑙x{®švvmÛpÊvÏTZi‰*(I¨‚ e™‡Æ»Ÿ8›×ÒF5œ;Qd‡mêu¬ù.àÔœ$W=n….²¨7—ßîæ¡±•Ÿh„˜{·7’ÍoÜlð–h¤æ$ù«IP;S=ù·ÜÇçÏ5òÐHdz·¶QòØ@÷yÇ>”ïJrÇA<ࡱ‡Æ^“Ë«Sï¶í(>;.9Þ%«©RÓ’ ë(ÈZ…ÆV»yhÔ› w[;EmìsìÃÅ,pjV’/¾¸,ÉÚ‚"<4vðИå¡1’0ï¦vÒß9æ8£•fp™€’¬¡ Èl”‡Æ^VBãZ·EvXgË´ãÍ»qX%YcA04ÖóÐØÃCcš‡F°µn'ݣ̛IàÔº$¼¸¯H²Æ‚`hl䡱‹‡ÆX{n-ÛIL7hR/‚}ÖN׺$ŸûËÏ_‘dòü¤È+ØöîÝ»EÖ;IŒx4¢“WX”R€({4€PfÇØk Â*ȦçÉþ%=[gË×k•‚%gŽQ=èFÒþ»wÏ{#‹Õr¯ #„ Ñ—Y $Ù˜r¿ûåï öõõ퀺-A(¥Ld†ñ†D"c°f3B01a•›X& ÍþþQÍh*G>Ù·Mižp- !@n¸Ñ~õÂ4Ågh<²SÖUXžåUý&ˆ¯Å€¿÷¶ü•x·ýd÷îÝ'¢Å/VÁÚŸ;¶æÆ8Pêˆ>»·È(£¤'w¼¡+7Ò,1GÎÿÿä ‚À²‰JÐeÝ1˜ºÉ™fʽZÚ#‰±Z]ûsdÏ‘ôá7¥¿úý¯ %.Å÷½ð ØAîÊi;xhLôÌ3 w¤‘ôñpèž«4×êÙu_Ž×ŸßÓ÷•—Ÿ;ÞÒÓbb©†ÐØôðÄÁާN-jÍ…°ÛIT¯Ð¸n0ë‚™¬I9¾¹gƒ/GÛ@[;HQPê¬CmO\øçà …Ù’ä…ÙN6¶Q÷d©µ&åx幡9ªNäÌœêüÝÛ-¹áú—QqÃh$í3Ž7e§™ ÊQu‚ ”\Lm^øŸìçFÆR<4aA¾*N’\ÖT¿è:§Ìz”£ºÁИ桱“‡Æh{.Èâ¾±cÜuOZQŽª)‹üDc?ÑØòÄÙB¤ÎbC}sãœKs4FËLZ×rüøÙ9Ö· È¢Ú\>ØúésC|uªtÕ;Wµ¡žˆ Ú33Ž5Rn\×rli¯ÔÚ‰B<Ñã«SÛøêÔÔò‰Æ[]ÂÝ›½ì±sFËz“ãµo¼z•µ(†Æí<4F—Cã 7·„»±>ç²¢§Ò¢§¬'9ž}ù¹e9p« b‰<46ðÐØÆC£Ú\¸ö#Õõ_ ÚÙ6åÚÕÆu- ‚$3O\x¿þÑQCN˜7ÛHz³®w¾º³&†'´›’Afôlq+?јä¡QPÜ5’t]Þ#¦§ø«ªyõèŸýòëïß¼(žhLðÐØÊCcŒ‡FFØõ ƒžöIש4A“È$X (âS<4¶òШ]çœîv Ï•Z fAA04Öﺴ¿øè\A®3>ÜNR©’§0GtgjÉ9õÎÁ&ëxh;4ö¶_òœár3ꀂ`hÔyhÌðÐã¡d œžŽIÇ­dàƒ  <4fxhÔ{浨I£Z…Ùû ‚‚`hLñÐØðäé¶î¥’w²ØÈê–6ˆ¢˜tFífZðwÚMTl*‚DŒ3é$ù2wÒõggÃXŸ0ö¼eˆõ6ÝK•lì‰ÞKÙwý¦èœ+»L„€ñæ\IÅøm ây^^íѧ«p« „¸Õ„„1ûÊn)¨?{-îGyÉÖ{àl:¶IœNlŸ2…¨Àì`¶šŒ9TÑì±R;ÈMƒÈ[â#ºÅŒ9–þÝùŸmê/½Ÿ˜+`á ˆÒ)Tl•åòqÑ£Û8Ù¼kþµþólAA×+ýZjÊùw:^øÙ=öT´¦Am«631Õ$Y¶L~³ºÇ½¼ö±¥7ûv.½ÙóòJM ‚ D!žÜ£Îœ>×­\ë(oƒ=•üxîþ{‹ï´ÊÔkNQvÆÇOï]W"W@#Yól㣹×6õ–7ÀjGâ‚-eÕ¹‘³òG¾’¨#ÞSþ mWã55Ûc‰šA”û“Oí•G"7Zƒ•JÒ¶Âþî–~Ñ›tæµu/‚ˆ)Á»Õ™¡S”›ÝÁUçÎÅ*þâží¥ýY•ÒºA"%.ž¿•J†.ÜôºSÆ cñиÄCcy94®KADЈ+ïˆxw«@VµÑñJh4yh,ðÐhñиAu›>]¤)ûüX»|+»€‡Fƒ‡Æ%©èºA"Ÿ¬9r¬_YÅ£ÖUÄ%K<4Ò¼²nA©N4#¤Îþ÷þ*¥Âmm–opxh,ðÐhðÐÈ,q]‚ ʽ꜓IÍýêà•1rKr¬\b$ëðÐXà¡Ñ<Þ@€’ªAôÇ“çsÐX~÷ý¹Õ÷%þ‰ñÐh~ÐöHá§›±Du ‚ „1íÓõ'/²Ö;G$·ïê¬ÙV桱ÄC£;¯U­ B$ ÑÏÕ]6³å_òßIÎÚ jXk\&†µ ð©Ælú2‹‰²@ýÙaÞ°f‡òä°0fûkŒó%;ȵ@ì ‚‚  ‚ (‚  ‚‚ `bxBƒ;Ãò¿U-  ÈÒt^~ñóß<úÓ÷ë dŽì9’~ñ ß,Ìd¨P$Õ’tþôG_9þê×ÿí_’0åxí¯nxöå熙„Õ ‚tÜ×Q¾J’ähÛÒ^u ‚’ (Jò̃“Ä—ãõoîY?r  Hvk’¬Èñ•?[›r  ( Ê‚ $¾,ɪåx¥«P”äG+’¬JŽ6”AI®/‚‚ $+r<¿§omå@$Xcðw’g¿ôÅ·À™«äxù¹ã5- ‚d³¿–$ÕTçìð‡ÒÕ# ¢»—Íôƒ€ñf]Ù:ij |öœ+ùóÂl9ÈÙÐÀþø/þäÌw¿üAà|õû_ª÷ÒàÿUp?B›Í\&úÛG˜íL8QÐá¸/½ô’>>>Þ)Šba*&I’áºnàò‰¢÷7²§Zfÿð‡?ÜEñ¾ô¥/íÃûqÏÖøl‚Ç—cô…^0¡AAAAAAù?›‰ÑÌ›(à”IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-pixmapitem.png0000644000076500000240000002501412536324505024305 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®žsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEØ øàêQiŒ±œ¢P‡¢m!„bŒè=׳lÊK !Ju(Ûíìì<õ¾÷½oÉû𝠠­Önû³¼Ó¨¹ Q_Øjt›“`µdøãÃ7§îÍü|=nˆðtÐaosGj]®˜i`¬\óº>¶Û[ÝÑzÔGÝÊ Ñ`Øl÷ºãµ.:>9ƒGplµ‚x¼Óðì½vÍ‘eY»-¤æ‚€@Õã=€˜£z”ö…¡PÆf³öu]Q½ê£^e«P1ȰeW…Rì8ó—mÂt/S£Ñ‚h4ZF ¢ÑhA4-ˆF£Ñh´ D£Ñ‚h4-ˆF£Ñh´ D£Ñ‚h4ZF ¢ÑhA4-ˆF£Ñh4‹°’¤ Ù¨/l•eÕúG£qO{”¨š2ê=éuÕ£ÒâÑ8[²EQØ @4g6Ê{®gÙJ*GïÉåÓS]v]Ç€t-)Ýæ¤µÛª}ÖŠ§=âÜ` ²×m«s“3R—¯•Pòz” DYB•â›ÌšçòCÉêUõ*[…Ї!í:”©:rPTj!ˆƒ¬GjB‰‚Ae½ÒþÔ¥\ŠÖ©lJêS6'u«º•­@T½êƒBÆq¬–?L£ÑhA4-ˆF£Ñh´ D£Ñ‚h4udj`ÚüúGÿy”D£y nƒ#Ž}÷XÓ>øùÞzH¢Ñlhœ¬#þÃW~ípÿ3ý¹zH¢ÑhI´ škI’/þÎj&‰DsÕIÒw¨¯f’hA4Z-ˆFK¢Ñhj.‰D£%Ñ‚h´$s’hA4šÅ%ùÒï|±W ¢Ñ,"ÉÙ§Ï^–$ZÍ5)É×þìk+ʲl:•mÛ¶ýÞðèð‚ .©y¨z”]­T™²E]jZ‚ .I 殊Ú0ï¹¾e(Z—]õªLI…ÆÆÆ¿žžž~ïRÇ.›ÕäÁüBêÞÌÏÛ{íš§ýñžôºœ›œ‘zd­ø`Ïîúãþ=Zû¡òXysêÎô@­Ë û¡PÆf³Xóº>XévïH Ö£>êU¶ óŸóÛÜ[ÝáZ•…1ùÄ[þ|OÆÉˆûo»ÿ£ùÈGtK£¹PŽl[.|ÛïþR?ç\§ýÑh^,Ç;?ù®“+ÍÕ¨Ñh9´ šk^ŽÖË—C ¢¹väøÔåË¡Ñh9´ škUŽLkvUrhA4WµïúÔ»O®vg-ˆFË¡Ñh9´ -GøŽUÆZÍU-%µÝÎë*^=J)(¥æþ;ùþJ®S²õ"’ß.¬"„è \Óý“VÛŽvïÍ{à,­C]jA^&A5¤Ó“sr|Æ>yt W˜)Ù¥bň£Àlj⤵ F&#¬\ŽãÂëfØéŠi§}ËÉy¦ö-·Ág†SÊ…„3p˜º‚WHÛŽöêëÙz•¯yLÎÎòþùtçÑçNµŒOe¤„ ¹ÙÄÎ.¶mã0 rÉêªåTT-§*³£ 7€vÀ¥+8w#k0ãpÃŽ¸éD†• ¸éDܰ„®ùµG r™œúÉ@úáGi:75f…AÄ€1‚în 7ÜAs³ËléIúvú60“¼R&­ŒåfĹQnF†ḛ́"'Õèf*°R9Ÿ›N¬¯ˆdÝħ~2ùò§¿µclxÒ½ðA‚æf·Ý–E&ÃQ“n°RDÄ¡)âÐŒPž÷HBa\B%¥L0n…†“öSé–’a§«n¶¥Ì¸)@ˆJb›ùk´ u–ch`ÜùÚç¿·uth2sáï\—áž{ÍÖ»*QJ‡€(¨¸ÕÊtCir cþ(fXi¥=Ëmð Ë­Z©|…v+i0_Xœ[1å† D`jAj„ïì±ïþ¸}h`<ûâßíÞí"—[?Õ(¢Àò£ÀòËSùù×(3".\ÉOØ®i§}ÃrfØ‘i¹7ÝȰÓ!7¬˜ªôÕÖ‚\6S³Ö‘gOµJ!/úÚÍå8¶lqÖýû—"2B –WK¤¡òù?E/žù§9Õ…[»î{Éëž'ày‰ M™<¶uôÔz$B/5Ѭœ0” áû&7ðÓ×ÿÚó-ËžwrêÇxbða™H@)ÁÎ.º»-Ä"Æý:þùÉo.YÆíÝ÷#cå/Ù‚B°¿w7ÓÖ-ˆäÊQ©HŒŽ†P È8i<øê_\ö!cü°ï«¨D?˜ç8×]ç¶)¼ÀÇ'þ4Â8\´œÖÔfìo½ B(¡EÀÌL„(R „àÕ7ÜYû¬[ÍÊï Pˆ13“´×÷îFgcÛ²ç+žÄHéìBRì Éç9šš’‡ œÀÿhÑr\#c/NñÜse„Óm¸¾óvܳïvÜ´m?îÜ}ËâçšYP®é맃ôº ¢06BÊäF¿ïÆ{VtÞDå*Qá’¿K¥8†‡”ü2ž8þ î}Å]‹ôv(x7fÎåqdànlÞ…¼ãƒðÃ*fÊt,!ëý;Þ‰ñÊ bCÈ…ê¦ýQ¼0öØ5ÓÅZ‰ ¶˜é°/4jýÇEQØÑ@”«KVö…¹+]ÁRããç»@wí½mEçWΡ\ZÆ2Î ü°Š3£ýK–µ©¹Ý-]82pŒ2´äš›[º–<ïúö»Ï%ÄŽOZZ "¦¥F5¨{"f…sÉë(@VsßÄÓ±%„°V-ˆB©Gjªh}¾qêòž/÷ …éé$cRG¾uÙ›r~ôª Ôâ#Tù<‡mS”Jç&Gpnr›š;¤[Û{V5×A …c¤añåó1U“ºWjî¹DYJa5÷ !D1¶|j¢•äÅ X#+›Íš§ý‰Fâ ßd–ê”öG›Íâ•Ä÷åÂ’Ž›¶Ã6W21XF1˜^òÇ¡à<‰… ^ Ó¥ÙE¡„`w÷vdÜôZDµŠæ©ot­¾îU¤(éK]G)ºšûFÌ @¨ƒô+Ì|ë[Ú»aòå7Ç „J¸ôýešt!íP¥ê¡ä/½‚·­¡¶±Fóè¥&š•R©œß÷¦#߃/_屌–}ꢤRÄTifÉã÷ônCwgžü1>ô÷Œî–NÜ{Ã]ØÑ¹¥}[½šW³Bæ—t@wK' ¾üX‡RR‰eº¾d!«c,â%gÔ ¥!‹û^Ó‚GÃÇ¿ò— „â“ïÿ£E©†~ÿ¡wãÔ¹>ˆXÁ6mlíèbnA4µAæiÊäÁéòó ~\Fi™ÀB^àXDbéÔÉ N Ã!Éñ€€XâéCÛ´àfc´nžÕÃ Ž­›z]‹ÄÕ:YClÓ‚ÉW6R.•D¬–ß]-f (z%Ì” KRk¶iŽîbiVJ¡Üè™<ÒNª¶ßn4éÉD"F¸‚äûi³þÓB6wÉÖÔu©^kkžåSuŒ4IYœðK6¡ ã’,W ²àF£¥q1áUU5Ö‚\#ÌñrÊÀè•m°Ýöš—™6sØ×v'v4½™]hr6q!ɦX(ÀL¥Jf#RÕ£daéÌüs,9ׄc¶ ÇîRÛù>%2[ê‹ÏNœ•}…q6N´ šµê¹×¼Äž†=xÛ¾¡ªˆ3#%<]D%ˆˆD „À19Ó€ÅLÎIÌó )1Qðà…1ÂXË`hͺ¼%ëæ7g÷çwçöx'¶¯°™ 1éIH¥Ñl8&Ë>¾}¸?@Æ2‘² 4§]¸–Ëà° Î(8£`”&­‡RJ!ŠÂX ~aªäc`ªÛàèjL»×µïr¶§¶íx!8ˆŸ“ $iE¤RÊÇG¦ÉÝùŽæ,ÍûB ²á™Ÿúãhn‰Ç Î!Œ,iæŸRd”³å/Õ)K¢É(º³ØÙa 3o¡1cÇÌ@$”BzÒ}YMjñnšu 4²Šó©Scl¼XF6´q-¸– Ë0ÀƒÉy’Î(ð‚R A$0Uö1SæÎÌu-cÞXE ²á»Xç'K~RÊE³¶Ïcó2V•sKW©(4d²hÎæ—–I‰º$¢–JÀµ«ØÖUÂDe‡§†¢ôh˜2ÆÊ²eñ¢g.ifÍî6skÓ+÷íì:tjÊš.’Ä$sA=§ŒQpIar†Øà°MŽrÉÃxÑÃæ\[ƒŽA®Š.ÖyF¦Ç‰5—iAØŠZ0LÖëqÊÀéÒǃiÄ"¬ùç.ƧŸý(¦ý1Ly#U([7__i¶ö^ò¡ÆÄXeŸð";Š÷tíÝ>]öI%a™c`T‚ÍìÉÈV2‡’üŽ¢„È -µ×O/V¬3®{~ Òxa ±X¾Û̧—“€,;IÄ>„5ÿ|…ê^{ CÅS¨Æs=ž,V”êXø“ÉØ.ͶåR¨Æ1¢(F,%„’*IKD !IË2?Æ œkA®r¹ó×±olpE‹ #œÝ´l÷j~Wc¦­¹¥+÷Ÿ¿ëÍ Ÿñ¥Š‘Ù|Ê#B))¡æý÷ .êzUÃD$-ÈU@6ËVÝž@-ßÍ1¨µlr„8V˜¿G,Ã\6;b9œE,£uU7Be©êYtP·Ék [ õXSö²cÆX.:¶Ë¢¨yíÆ£qÖ%'õHûC½ƒ•î+}pNJ1”J1úÆWÖ‚XÜAÖj%tÑ-ÕªU‰8Nª-릑O/½”}¢2Œ öÖâ®§Q¿hô+Ëöe„m¥ÙŠ!bá¾'I7mA¥”LÖn ©ÀYŸ¬æúЉ˜3Æ2«DQ°·º£ö^»æµë=éu979#uÊjÒãÞ‘¬IYŸÀÖ—ÝDS ¥Å@©£ìWð|ß1t·t.ß5³›`ó¼¨téºóÄ‚ ©š²‹ÇÂÇ´?º6-ƒ4zø”Û•[6>#®±%½%Ów&€T lnóùêçgÓåœ$B*¸–˜Ñj®oõyß ûÊ%ÝźÂBÐÒrþËô[?~dEçud¶ k-~Ó‹a(ÁÇæ–.4¤ßgÊYvÈøJÄ ÝFwÖôGg˰y2Q8?RE…œ›AJB‰PDB¢9ã¢D k2목wS ©ÉX˜yäÈ“ˆV0’ÕšêFʼôPJ 1âX!e»Ø¿e÷’eMzÃKnÇV‡o…e»Ì]¼3s“ySïé±-úa²4ž'Ë⣠2#É’øj#ã˜hÎ8èú§µ W ©CccÒ›íÀ‘þãË÷V#¶6î»ÄüF¥"0;›H–s3¸{ïÅ»È2Âh©Å`æòGàìæºÔGžæíÎm=“S*ý“áidl)Ë„iðdI<¥Ps #™,…¢A$ÐÞ†í (.jA®"AZZ’ÉÁjàÏ|ÿ’YÛ_ÌÍ÷ÂbÎE¯I ŒŽÎoÆܾë&l_bœb0ƒ#ã¡.ìËe†JïîyâáÌéOôðÔÁ¥á6dxëËîbåiÞþ)çŽ-þŒ“ôø9ØCÖµàÚfÒÅâHäaÃ"”ƒ À®ŽFœ“ãÓbÚׂ\%pN°i“…l–#ˆB|õ‰o``bxÙó¶ä÷â–®×\”Swv6ÂááВkÂßü«`K¤:W<‰ÓSÏ/ü¿mŸ/ëЩç—üû7v¼w6ü:´ü~ë¾ÿŠÏ¾ÿKøÓwþ%6å{_V=tòŽôö]Û‚©lë÷R×àhL;È8vòX®ÁA™ëRÅÂ~¡R Q®F¸iK;h¦y‡Ç¿è5Ë¢hnNFÕž>ùŠÕÌšÛÛzf§hæàÉD°Æ´ƒŒkõ’®¥±”É3ê‘@ǨJÕ­ )ܾ­G£Ã'ÃSÓkyÝt ²†tvšèî¶pê”ï>ÿ¾øè×ñoxÏ’ß ¡èÈôâ½wþ'¼iÿ¯€€ í¤s3K¦1-3øÆÉO#ˆ/îª;Ew·ÑÑ•ÀÃ'ÿå3ø/oû%»i—0à²òÛ½•»ñ{GˆÍšÒr® ×4a!srÄ ­‡D˜ñäSîØÞ¡†Ù™¡g½gG#Är-¯™nAÖ²²)ÁY45£ò¥¿Àwž{tgdœ ¶´mFo[7š³KÊáE%|óÔgprêÇ—|[¶ØØ¾Ý¥À_}ã³øì÷ÿ %éuZRI«Sè›9†B0µ¢.–Ml~À¹­GZ¿{d€” 1í —rv,ئF)b©ZŽj£àW1Z¨ Ÿ¶q×Îv9ÄO<æì_k9t r°m†ÛnËâñÇ ˜-ñ»ÿ÷ ­¡·ì¸¡&åWcß?û%|hÑ ñ©Ã7fà8 ÓøƒÏ}ÇOâž}·cGç4fòȧs(‡³(Ó˜¬ c¤|³ÇqlâG/Ùw}±.ÖnkwsCØÑöÓB!—u¶­…9J)„8ßrxaˆb¥ŠÉ’‡¦Œ‹»vvˆScG‹‡óG†®T¶E-ÈCÐÞnâÖ[³8t¨„Ÿœ;…üíLJßþq÷ÞÛ.³«s1‘ð3ŸÃwOåenâtšáÆÓèíµáû>^(S'Cçd2n );…j\•P¬N£L.lG½hƒµÇØÓ}lh–Œ*È»6R–Ç2’n¥R&£UQ ?1[ñ0YôÑÚÂÝ;7a'‡ž8ó#qÅVYjA®ŒlÞl#fxê©"ž<ñ4Þó¿~¿ùÆ÷âí¯zr©ìe¤)UˆDˆ±Ê >ñ·8<öøK⎥ÞG°Ïw×&0\ª«ÿ¸ÎÜьдŸí?›38–Û4’ìŠsK"!P’aÜ¢WÅxÁ›“£KŽò³Ã‹OžóB¯Õ… -È5ÍÍ^ûÚFœ>íãôéqüÞ?ü7üÓãWî{;öõìÂæÖNäRY%–wWÎáÛ§>‹CÃßE¹NÏœ_v7’:¼×ìi:zfšVÃ)öÜ:+J(”b%Q #Tª •*&K>ÒŽ‰»wwÆCìôГþÎ*Wú³hAÖAà¾c‡‹®. ††^À{ÿô¸®k+ÞúÊ7â·ÞøXÆâ£\#ųøAßWÖÕgjbMŽMlãìÄ$¥s«t“Á©b! •B5ŒPöC¼‘”¸kW—œá#ã‡üCó1Ç¢Íèj÷(Ô£X ×eèé±±’„x¾ïþî[Ÿ‡.½£SGv òNëºú,9ž³UÌŒ‰¢7´ŸO3‹…¸Ã››%/VCìéjF&«¼gªÏ •eeÝ<Ù¥Yg˜&Ass²nëÌh?úÆ–žLÌÙÍ8°é~PÂÖÍg0ˆIK~Lc™ø&+Ck/åÂ4ܤ"!P °°|Ý4’Q,9—NH c.OïT4寷ë¡[uH>ÏÑÞžæýcƒøö žBl°[pCû=¸£ûçp}ûÝH› WFpÊ\7ïsFÑœqИrq’g=$’¥‘”ˆ•¡)ÛDÖ±@ÉúÌa¬[uˆã0ôöÚ QðJøëoþ#nßu365w¬è|‚+s³Be*Û:+(”k’è;¶_"›ãÏ›Ïý“ “ÉÕÏ¿hA® zzlŒ‡8v¬‚Ç=Oýë?à¿øïqÒËž¥¶˜eÜ s­[&_^ˆÎ„g/{Õm¤"±áÑi®\°¾o_•Š@_Ÿ‡¿ùæ?"—Êà}÷ÿ[¤mw]¾g7ÞTU/ØMã0>';AƒÛ`´çÚÍŒá)Ë¥Õ(%¿O–'£ñâD$ÕÂÞƒg©ˆ‰'EÆ;Xyi(+²šûF§ýY'iVC&“,lÌd8NžœÄŸ|é/püÜiüûŸ{ömÞ¹äŠÞµÆrsÅÖ]{ŽÛ©ÔBG)E\ãfçæ®MƦ—8&'œÄ`±Še¤¢¸ª‚p<+<[}~x\Œ¿äþR‘¢þ3~‡{ÀºÔïVs߬4íîb­s²YŽ[nÉ`ïÞFGC<5òžþÔwÐÛ¶ ·l¿›šÛ±½s+ÃÂheå`gfc¬Ü¿†Ý7jë¹ñ¬åæªsQéàÇ~© €IDAT©W¹÷\çªLzªçÇ&0å˜×w7››Ó[S™®Æ'¼'NOLÏï)¥cÍÊûöŒ fؾݶϿ:Š~9Šþqà±ñ+öÖ”j*ä‚ë¼LÓ¦B’ð ÛèÎÜíÞµ¾þÁ™!šDK£ AŒÑÙ2ž<=‚ŸÙßãîµö´ýÀ{¤O ¢Yw¿"„HB™$„*B©0L·j:YÏIå+¦©º m%¢¥ „*B¨"Lê©H-Œ0YÄb;­ëÚÇ Uv|d œ¤-iÛ€k™°MF”JÖf,Lv³…Âás“¸eK;íLuäÛXëƝhA4k*e<æ†RÆcÆÍˆ›NhX骓Ê{Üt'ÓäQÆ_öÈ'Œ4²Æôs3S(W#8s;Ùº–‰”mµLŒA(‰ LžNŒ¥B(ª‘ÀÑ¡)ØÕlæXÎÒ‚hêÙ-’Œ›‘a¦ª†éܰC2åXV¯3i9¹*7¬È°Ó!ãfM'æÒ$mÄàåjˆXHp‹ÂàɃ–‘´"çR‚€Ìµ"1 JÁAÁ `ÓLÑ´©»XšÚrq+´Ü\Ér²¾ig|;¯Ê%7¬˜1S2œÛÜN·®ã]–±æÛ*Ùj~û46Ÿ¹gtaÿt:7úEÀ §&1¸dñš×Ýqæ‘o=½9 ¢5¯/B¨$”‰ùq+²Ü\Ùrr¾íæ<'ÛRfÜŠ !!*Ù_ƒ^4—Ä õO 2—•RÉÓƒ*YÍ+æöôˆç²—$9£8YÉ+”„PÉæ8”2Œ=é…Z Ľ?w`˜2¢~ï¹M¥bŪӟQ”’13¢¦rÊ(7#ÓÎøs-C`¥üÜTÂdÛ‚$–X˜I„D5ŠáI+r`{\‡ŠÁÀtY–uk#bš†¼å޽S’£ÿQŽ8IlÀ$!TÊ$¥LZé|Ñ´RU'ÕT±ÓyÏ´3Qçã„«•h°p†ŸÛÕ±«+–½ô»GPðT#“Çs‚ÌͤÇÉÿß±£7÷¶aT O?[}nTaý,ÇÒ‚\&”Rìݶ£ÒrKnÌ›íkÍ7§BÓNW-;XnÎ7ìTøâ ùZ"PøqõÙ!›Ú|wgO»Ay~p3?H^¥`™Íû65cgG£š%S³?,?z&Táºz&D òr$![wn)[ º6^ʬœ ÷öWíj´µ}Kû¦Æ­æxÑìWMÚ¤m­ÙÒ.ú£³ÏVŸž‘3ëî™B-ˆ¦.d!xÜ?8p6ê›ÞnnkÙÔÜ•ßFÛÜùî¥'½`$žy¢ò“±Ñx´ì)?^ŸC ¢©kw«/ê+ôGý$Ó‡ ¿›‹3ÔzŠ7´ š+ÂF‘á’Ýi}ù4-ˆFS·.…U¡ªy.K%UR®ªK"'R—÷)ºð¾kYgd¯ï®Û*®Š[I±’´?©h0l–¬ùìf<e‚ÊÖ%íñŸóÛjnT$2õ([Ì ˆFãlm+z‰ô9µìXØ4^Žg0ÆœU "„(Ù½îx}Òþ€ØõKû³Õ½Õ®K òŒz”ö…9B¡ø&£HhmUï`¥»fi^T‹¥æ©gÙµHûS9]^vÍ—ŽAÖ!µ–C£ƒt͵ƒH…óI¯\®Ñ¬K„„¢’v~–¾–-°nA4WHKH)‰RЍ FkÕ²èD³a±\ë%AºJ(Ôê‘-Èåôw•‚"JÅÕˆGÕhá[K‰¹.”Z¸*„E(Aò!tèÝ ^WJ2ù[&PgWóu_÷‚L L›nƒ#œ¬S÷ç¢0&Óý“VÛŽö—,»&”`îVP„E9…šoÓ禫ÔmüÂ7Ø2¼Xˆ‹Êž{Ð3Š%…¼èKa=Pë8dÝÇ ?óXëŸýÂÿÞç}Vo9>ñ–?ßóƒOþ`Ñmœ%ó­(¥jþ‡0Â(§þ(Êϳp,! Œ&eÍýlà•Èxý5 ×Tþºß}ý¹žWôë)ɼ™Öløæ=pv¹ÊO¾é/-Ë…",üP²á…XäÛzÝ=>\ëú]ÿ£Xxàco=[/I.”ãŸz×ÉËÙLòÅ7þb?W# _ìêžÔÜüó’ÜÔS¨¥$«‘C“HBéÕýüýÆ™!ÀüÖ¾ZIr¡ïúÔ»µë¤K£Y’¼Xh74W… 5DËQ¤ªÏ}¤@@/ýœn]V€_‚\ Iïͽ—%ɼÙÖœ–Cs 2'É[þèKr¡ïüÔ»´š«\ËDË¡¹6Y$ r´i94×¢ KHr‘ŸÔrh®UA.!IÕ«2-‡fµ¬d5¯Ÿ‹œª¨}>1Á‘ªZ»%Ó¯ûëǾ6óÿøà2NF¼õýo=W}Áwjú¾'b£ú|mË€x:¶!JÌŠš—-&b^÷\ϲU¬X<Õ¥®£¡(À]µ §>ÀŽ3¿u›–ƒ¢ÇqMå»wß½8ú½£ºÿ¶û?ZùA¹æb3Æ2•r©æ7šcLëñžÃ¾Ú¿ç:—Mc+Ê>ò2pœÑm¤F£Ñh4F£Ñh4F£Ñh4šk•ÿî Ì¹ÍCbIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-polygonitem.png0000644000076500000240000001330512536324505024476 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®ž pHYs!›ò3wIDATxÚíÝyp×pÿ¹•Ú‚ÿâ䟧À1Ù@•ã*IØkv@Yïa»ˆS•¬m6vLm­Á`Œ,qÌ=£Äaqq ™â”Ð-tÎI NcÎH\ºeï{=3­ééîÑôô{bF|_Õ¯üÇÏãf>~¯çÛïÍsÏa```````````````````````<£cùòåÿHj*©‰êw¤^äÑÛ`0¼Âé5së3;**ê\±^$½_æÔ{jffæOX™jɵ6;J’«Y—y«åŠãtr-—ÞÙ–k<úÒ2m6_çÑ÷93nÇþqæíH»Üz“÷†ðáÐÛ’cmJHH˜ÌÈDÚ0ýþê"ÖeËw´;oe”pé}Ø~‰G_ZÖC¶}g̽9ë¯q7"ízðêíü>£ÔvÌÑÆ£·ãtRyoÿ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@„'ßÑ“%è›™u³,wÈŽȣ·i£ù.¾Âë^oºÇ£ïŒ÷fvÍz?®+Ò®¯ÞVϘeºÃ£79‰å yoÿ–éñ+ôÿô¬‹\€‹ÎëÎ2½ml<úzz_æÑ7ö£Ø›qó⾋ÀëÁ¥wÚµôr{¾½GoGARÑh|K,,±°ÄÂ=€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€< ƒárDÊ5zX—p\ 9ƒGoáh}…Þ™¦û<úƾû@8ö'Ò®§Þ–ƒ¶Ë¦¦»+@¼¡ß6o视Ïý† H#€ðâ¬!«bwUïý×Þ4²¦¶e.Žu Š¡Ÿ2 Âc´\‡£zÚ‹I¸¸íÏA‡‹cˆuíš;ô›OB¿×»B]Rù—¤’i>@t/©¤0$@JÈϤªp1yäpq,¡¡Ÿƒìø³X¾C?³†H€Œ.Bý8 G†Ðj-&áb Sôí\Œ$ 4ô³zB¿º“Ó{Yã d40ÂAAøª”„‹‡H¸è}çb¤ñýèÇ´,–T¾÷2 Mî@Áð–H©´\§I¸˜éW]H«K@C?R4¯`5k(i äÞê"C³¹@BRȇH©J•EwìÕ¾s1œ$‘~fG‚°Ó¯­Öó¨ˆgÖP¢‡äL` KJ—Vû鸞E_V :qˆ@T`øVS! W¿s1пG®Iúù,©d@tÂð.©Ú€¬‘/±æf}Ü@‘,.  €øaÃ;k¸ò€”©TyLç‘Üàv.†ÅÐOá^CRχ"fe ¡ _ q(QÅ1\çN’‹i_ ÃȽ5ÅŽC ¡ŸÊ¸„1æÀ@´"/Æ8$@‚€!© .îp‡‹ÉU) ádU›“ìô[!ý|JE"d C¤Šiˆˆäù‘‘†ˆfÃUulÖC‡ÂÎŧ Ä»ÓÏb÷Ùéd¶!‡¤I;`‘ˆ8 GU€Ã[­eÓ:s²¥áâÓ¢¸ÓOCð'ÂÅ Ò`ˆ?8<d@4Àªr¸ÊŽü».Æ~ûfÃÈ©:IÏ%çärÜÔD!¸Î(щCR§ˆˆ£è«*l˜Ò „Åãéc ~³Æ‘½鹬”&zè²îmÙóº›J¦qÙÔ¤„Èyí@‚Á j@=žî:©D ýÃ@š*¦w­[GŸì]ò“½ôúÚs7ìö¯Ï’'x9ll0‚áÅ ÒÅAŸØ €øaÃgI%‡dß0Â$@ÚÜ¥$”_ ŒvüyK$ä% ýrÉ)‹>¡ßÓ:K 7pñ, 5>Kåª&׃Ѭ¡¤ @øa8k( ‡Zè÷Tõ„‹VGü@É).jþèÄ!9 |€˜T€0x<]Ò’Š†~ê‡1„ÃÙ¼îp‘î°u^÷ùzr¸Cù† HˆK*I m­2º@=ë*P2¬AC?÷q>ê¡_¸œî.„‹»Œ7)äx .Žðñ­„Á¬á{¿!Ò |€0ÜÔ¤dÁ†~áöý ÂsI$\ÜEÂÅæÕO© ŒqÈ€´ ŒqÈ€€á»ë/µÕ9â5 Ëo˜¢á"ù^ÂUN.V‘pQ H aH€Ô ía Ä`0¼bζ\£˜u™6šïÚØ:xô6 ž¬N©TJÊ«ùhÔ€«ˆü¬TÅî*>øfŸÍ?hÍ\ùwk^pÿ±ïÅ> '½ð¸Æõ¦{ºþ®¶˜n™- ƒvý¡ßUÝCg ƒVKYt¿÷g¡jUªN¥ÎªWKé}Žüì©4çÂË·–ëz¯‡y³ù*yoOy¶g›š„„ Q›9hè—³Õóµ*'DÒ â. ߾ބ‹u$\ôÌ’ä‚þ™Ã»¤jk‹€dÌaøxº ˆgIU](ßé7–€ø†‹f.ž á¢/F0¼%rÑ]‡} žo÷yB¿”êÔ†P_s$ñ7lšßS_ùZ/k „8$@ÄÐoQp;ýÆo¸(œûk#çþ‘p‘!H€Œ.OáÒ›ñ‘B¿gˆ§Ä“ã·“p±…„‹:ax—Tmí2z@>ž~öÄë½<¾Ã#Rˆß=ò-ùî.VpQ'E —„†8 Hèg¶Ä±Úé7V€ÈÂÅ=$\¼2 Kn£¾¡Ÿå[ëu¯y,ñ SÓÉQ¨µ$\ÔC¤@øa4k”{ó‘-iø°hë![€ŒÜ[üÝÃdçb[Œ&K2º@4âh­yU1ôà{‹;¿!áb ƒÁáÁ ÒA€¬>@4.©hè—”BB¿ÃMç-iè Úz Ç¢ó„‹§f?4køÎ ˆæ%ÕÈ¡€„Ö[Ó—=ÚMv.ºÈÎÅ8$@:„8‚ ý$ôÞôNܹXJÂE"¤ @FˆÊ¬‘¯!ôý½S›=;sH¸ØJÂE 2º@Tfá~Á‡~¦·.¦’p±š„‹>8\>@Tp;ýâ5ï l{'{ÃÅýv·]Š‘¹âÆ <€(=K%„~Ÿ½Ó@ø÷¦á¢†‹$\¬'á¢H3€ð¢€Ã?ô ¥7€ðëí ÷€f óßÒv9@F Hkµ'ô£ß1Þ˜V§§7€ðí=.~Þw¶fzä*€pR] úHxö¦÷„ö£¶‹ä{ßO&áâUá„ÍN?y:½ßg”ZØ.[3H¸¸…„‹m¯w£¢ßNC?[ÖJÝ;ýä鱑GTÄp1)~€þ½âØÇþ˜— š³Í·¹¡óé>¾á|ìÏÓèm9h»lÚhº+þNv.,ˬûmWpìOÿ3ÈèÎ n^Üww=8õN»š^a=b»È£·ý¤£–¼·¥9åeóVË*™u³Lwìùöv½…ãb8ôåÙ{朙]³ÞŸÕ‰ëá.;Ya˜6“£›x¼æ­æËä½ýOXba‰…%îA@@@@@@@@@D#{«‹–”.­- Áü»@ˆ¡Ù\>î§ãzæf}ÜÀȇæ6Ž{~\Ée)‰˜%Ö¢‚/«µ"Ñ Ä‹cIÑW˜A$òîA´"ÑD °½Iׂ$X Zq€„õ§X‹ ƒC ŠcüÏÆk Ö@‚E2Pq€„=`¢€HD‘<¯ŒD ˆˆ£diU8^f@!Q€HDQC℈¢„Ĉ€ãçã»Yà‰H ’ÓKD$^ ¬q€D,_$¿˜2áÑ„©²Æ |LµäX›hCÖeζ\q$Õpé½Ù|•G_Z¦M¦ë¬{~¾qA¹Ü?ÒZ°iaC$]^½éÑ<ôô.¯y»¥™¼·£HffæO&Smê·F£ñ½É‘.S8½fn½'Nœ8wÒ¤Iàzˆõ+z4§Þ¿!õÏa```````````````````````<£ãÿÔ–¯‡ªWIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-rectitem.png0000644000076500000240000000635112536324505023747 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®ž °IDATx^ìÜAjGFñ¯ºz¬žž‘´1¶"clä•&ÈÂë¬t\AÇÐm²ä:@0oƒ-&HƒœE$z¤î®ª¨È>‚¨ŠaÂûà£)x‹Þüõ?`týýý±¤-IÒ[“4“䕘µvÝ9w¡hI¶^{ïÃîîî!ï©°ÖŽœsWJ¯ÞÜÜü´··×è_”ºßÖÊvõC¹9HHwÒ><ô§lú@ºãv£Úª§Ê ý|ûUõª>SbãúEa ¾[ý=ç{,ͶSÑMÚÇÕËú\‰õtÃÉÑä{IHã¨vªäø™ïV¶W30>ùö¥ër|säþê³l›±qÅ ðq;ç{,Ëvhƒõ·¾Í±}ãB°í\÷(€@ €@ €@@ @ @ þûцµx}$XPbÝ´_×ûƨ0A‰õÓ~­y×dûøI@ @ €@ €@àìµv½;n7ü¥ërœ‹‰1Tš ÄºÓn½y{­ú³>n?WbæR#• q;ç{,˶w¡ð_úqÓ«ÄÜ—¾´Ö®>8çÜEµUO«ªQbñ–R<“ãjEŒ£~3š(ƒëŸg&ÇvøIC äãvÎ÷X–íÐ;ÿeþ´þ¶>Ub7¿Î‡íÉ슥þA €@ð7{gZGÅñ{îÌäM^’WIlš¦M7j*­ ]¨ø‹®\´‹v©ˆ¶ÙéB\¨PTZéÒ´`Ü˜Š Q¡¥Mkmƒµ6)­éË›—÷æëØ!„i(a|ïÞé{sýŸMxgq¸ÜÜ÷æÌ9£P(4âsµMÞ¹ÅMyÄæ€mo¦6¬;î#£;ABx‡ç×·€2Ö|^ç~ä›Y‡Bz¿TGÓºœ¤þ½CÇeDÁBJ»ü®ºÖARñ“ÓGÍ–âÈìØWÿªÊı~ó@fìlÿk^#ŽŠ?¨39ej¶';6 AQ{ì›Ö=õãýÑbÔ#ûl¢bR2—Ÿo…@é0;=”»58sdC”\ê)±n°¥Ÿ®9#ŽöØíú“€QÈlß´×¶Ç!$VFòË|â§>ø àPÃTº BFÝùû© `ÀIeÂc^H-ý`$UÇ«vÈA ©ôÇ.*ÈA ©¨À9—4HbARÁ¯lý@Œ8tT,ô)¸¤"€-d‡k!HÒ!©:¶ÂwÛØÿBs8Zsû#üØf)87AÝ<€‰}a‹ìꆀC²X°Hbk<¼éš™Ý<¤PÜLc닟îI°È”þf»9]ö/H_qì£oìÏ=åËEûsý”·Õé§F’*éPCw>@×X’”œÄÖ vPcwe?tƒ»N5tK*fA‘Ç=vú6/Ùä–¶—/;mOuì7[[„ÄR”TÈ Ï)AáOlƒà Fþð”Jv Qøƒ¤ TEocsx“75Ù}!û“-©d+‡Ôøê·þ=·báòu€dZ+ÿ8Þb¿á›Úܯs½ï>ùÎÎÙ“³e¢Ã$o¾þÛ{3Ü;²´ûí=3Ÿì;4þç)ýØyBÑÇv<³ó!ÄÌÇ{¿8¹ÿôè[ê¤E8pxMCb~áMSÙì»ÉgÙiΡƒ¤Ò ’t<¥2 ŽÖn’ÝoíI IwH,ýp`:J7ÝÌ 7ÉäÓ£ÛGë$tüp;ìý(…€`ˆ‚I’*õk†€¾·’ŠSGÞ2Õœ¨H’Šû 7žn ‰ @ÐñW8b(@òì›Ïͬu@¦¦¦Æ{Ï–·R?EB·U©LG¹Ih·G· "ÉúÁfNâêoulí’™8‚äêØdK¶Øjû< ^þK‘²ÄÚµk×™¾§.nìχo­,i†#¡3@ ݲ!¹9HJNÖ­ÿãˣy¯æ‘BÙ±™Óx®ø{sÝÇ&ŸmwìÏñcÇþê§Á—>}yº2;ðýÁƒ‘ƒd^øeñÖÞ._¾qllÿ‘‰Óë£AáÍÖТü¢ãÏ48^?¶-c侑%ÔAŠ_øÃS*Ò Çщé 80Õ¤@MSTœ3…?óg©Ã@ŸI3OnªÃ@(?$UÃ1y …Ã@ $•^8Æ7¯ÁgÒ¤’ŠoñgÂñÅkŸo;pd"IebŽ£¤20ÑW‡€ ðgdQ4ÓæÎÎõ¶ AÇ_ÁýüßF¾òí«'*wV‚Õš¦$Š¢‰)À@ © é†T7IeªßP@‡z Hªâ‚¦)‚¤2ï6AIEZ’Ê0¹ÙåIºeYë‚ßýq5 „f çÃÊ’[Â&Ö›cAÇnľ°ƒ:»ºã,!˜“u놀›d‚ÝÔ¯?vÒ‰²fJ³ÝõèÍ<¿ÿ¬A,oì;Ù›™û2“€@P¿cKùÜ@çÔðå{mA$6ã½:¼·k¨{²®¹®, õ@ëÏ‘XŠ£¥}gQ6!!â "9?h.’ ޱk#›'Az¿‰H–ãèìªÎ8„Hˆƒ@ˆäÊr$ëŠã.ßÕ‘ ,G²®8öµ q¬D D²2Žë#{ÂQ ß$]SÙS}í"2½"Ž¡î©ªŽƒ@ΤÿFR¿½ÁUJôÓO7N’p?”ã žÖb˜—wc‹/âßøö¬ þ1_æ·c&··I“>}ãÌôí³·2RqáÎÅÉ­^£?#¼÷[»Ú ®ØØ.Ï”“"’5(YC6›Mär¹]ŽãżT4-¸®k<>Çqjƒ‹,bŒýíþþþ£J)¯££ã!ï±$RÙŽW¶ b^ÇÛžžž©B¿ÁŽì n£:IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-simpletextitem.png0000644000076500000240000001620112536324505025203 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®žHIDATxÚíÝyTSgÚðéüõ9¿úÿÌùf:íœÙzNuŽ "v™ÖÖjí¨]¿ùf¦{mûÙÅ©UH!¹[eŽ®¸´Ê‚ìBX‚€ÚŠMB6°~÷ ä^ÈUBž÷œçN“×ËÍýå]î{Ÿ÷g? ,X°`Á‚ ,X°`Á‚ ,X°` ÑûK6ž`ãwÄB6¢îG}4J cþ]||ü"êþ³H$úS³u?ÎÖý¤@u?‘žžþ‹@y‚8L¶0%òËé^BÏ\”× Q÷‚‡Ü¢^ÉniŸõ’¹´Bs½‡¸*Ôù¬nöÚp]#ÔM$›Ù/£?Èï Â¤[)—T£SßH.¢î¿\0*D½äiª[ˆzåW”õŠze çú,Ý%ÔùªnõõäRêÓ!DÝÌEY5{mÿ7A  ‚@A  ‚@A  ‚@A  ‚@A  ‚@A  ‚@A  ‚@A  "$…Y.æ@GB6ñ{r;…¨{Áà ~¢^×qgH…¨Wz˜ì“~Cö Q·$KzS¨ó!TÝ$ /![òƒ çz¡‡4Kò8¤_oú@{:Õ}ê2!ꆴ?BÔ AåR=BÔ+¿¬lPÔ*ê:ænχ u«®&•Óy´Nˆº™BYMBBÂo°‹…],ìbá ‚@A  ‚@A  ‚@æ*ØúøŠç7¯ìLD L ºGVú«'mˆxw¹Þ$„Lk&H ©1ˆ¿H ¹AºÉò÷"§E‚@HHÎbùŠ æõ A !}d:$„üB>$àt$ oHA ÜH"ß_¡G Lƒ ÂwÇ}ýòþ€yôÑG£ C\p‡ü$TÝ=ôÐAŽÙ}ÜÂÔ{[Ðslçã—®óðºúùCwØKûÎ#<’‰-¶ Ø‚x„⺪ø±ˆÇn.|náèèhLûƒ@Èd‹Öÿu€)Â1A ^qÀý¤#§y™ŒcÝ= „<>„4ñ©Üu‹ðy‚@üÄ@HHñA !Ä„OªÁdÌ‹…@Èlp 2@¢«DUo/ïõA x£ÌM ª¾ä2Esb-S¡h¦ emÌ9Y‡këaöƒf díL™¼EQŸX§Ò«+’oí@ d¹™Z¬`/jæ$©§ÓÄ& %¡dÛœÉ;¿´gïÞh;xà]ÛÑÃÿ´;ò¿lü“ýýÛî=ÙRÓ>·3Ê­)%¡SÅf樴OV¥l’_V6"ô@$û¤×霸¤,¸ØOŸxÃV]¼rH۸Ġk‹ŽhõŒpCMÅ߆òμjMËü?»„R;cLr¶õIL-F $h€¸6Ÿg?,B.NR>Rðí+–¶ú¥ÆqžáÐŒEÛ•%æ‚ü5ö´ÌMv©Lä`¾¥ºà"™+±¢!ñ ‘Ký}J A ã!+`Ú¥ŒÈ‘ý‘½®ü“¦|±Ý+Œæ™Áp‡¶>̬mXlÖµ…¯êÝCªb¬)IŸÖ_Іî”+*îEË¥Å#ã¿Wz‰*ϻՋ½Çå»Qæp…û÷š‰ÑT¹Ôž¾óãi¢ØFž¤ô~ë4É-Ÿ^ËÖ+M‰¢èm£…çW;4 ì¿íŽÆÅvZöõ(qŒêQÝ~q’ÔK²$7…¨[²KÒÇ^ÛÁÄŸo¬þä2ö[Ó|pÿÛ¶ŽÆð ­†g¸ZI­…¶i‰¡¤`µ¦uw¤Mã&âÑiÌ(ü7^ ?‹G)Y”3%í ûáÃoÛ.¬¶´·°ý»-Å„¤#´á†ãÇÿa%Õ1VUoRE [*#Îpðð;vmǃ»ÕÐuß lAB|0ÞÈ=ö¦ur—j J7pCiá*sFÖ§v˜òe²b¤¾¥:åµÊ•~êÅ ]7vÀ[÷:àƒ§³ãnÁûÒÙ÷CJÛ>Ä+Œ‰‘Ÿ·ÁJ(ÅvÕÕ¤ò€I™k¯<;ä  Q 0CDîˆ18ú?ÓâäÒ…Õ¹j‹ƒ}ß¼TÑ:yêÓç›}Ÿ¬DÞB¦Æ )¿¹Tð’m:ãHÎm°*±U}mú©àéF òµîÛ~cßÞ÷lÓÁ€h¬YaÚ‘²i„b»b°d$ Ú9Y¡ÙÙe¸¹1ÒȇC×1'N²Ý­ô8C@Ô±@¼àÐéHÈ‘1mêäÍטcÅV› :zDš•08yU +Êò©N‚‰v––¬2sÁ¸á†ÌìOíL.¡ˆ„Ä®¤J‚9*W˜¦Ãq&÷5«T.V¶©/ßÕ¼‰­ªø÷Îåo°rã f™‘–G9áN· @ô$$б?ž;Ã^€ÓÜÏ=ñ¦•PÇXïˆï×rw˜¥‚„yy,\8tº±(+[e†î,  ýÔ@ !D^¥lR%ÿÇ¡kçÅqî, „c¬ªþä²ñ< $•bû¥‹k,Þ`xFÖžvú[ª+ @ô$dÀø¾™+/­âÃQ]²rˆ‰§\÷û©Äu5ŒIêëž2qá€hlZa’Òb§ÚóŒ€ÔséE !D^¦hNÝùù0ßr¸ñÇ(¶9áy¹ðD¡¼TÞªJÙìè`å^tŽÅCïØd§¦.G™Þ{@B•,6—½`æ[KuôÈ¿lô¡„ksé‘[*{û­¼¼W­Þ`¸£©y…I­È —¤OÒ‹@B ,ÂS¨¶Ü{xÁÑ\i„®ŠÊKWåAQuª«HFälk[fô†Ã™9ŸØe律îô3ÅòÖɱ]3:¤wj²èøÜ<ß#É!n¸–UÊ›5Ž@ê@üõ¼S¯YùVà:ôo¯Ý”¹´>íÔé·l^qÜ]R^ñ¢™Ú3Ä„ÙC©Þ<²çÀ6Ï8pä][{÷R£7º«a†¼‚W-{²¯õŒœœîŸáy¥N]…@‚,)–ASaä¡m^b€›°fj.QB+"‹rê:ýâ‹p¼Æs=ØT Ûo^Zkñ6çÂá5úà>Ìb;üB™úÕ°²CU@‚ˆ¼FÙÏó=·QôÝË:;np.§ý¡3bŒ%¥«ÍÞqŒÅÁ#ïØ˜ó÷..Ÿ€ø Ãdž¡'ôçå¾jå{¨)s×ÇvY¹¼e.‘]”ivíÝh÷ýȰ¬b•™…dð HïÌqLÒ@‚©Û꫟6qáèh g»W¢‘é%Ÿ?Z4ÒÒ²Ô¢Õ²Çßá-ÂÌQÅõ÷"û}©Ó¤î«¶‹}¿gt… H…¼y¹õ±nÆäòªu“'¨VöËÿqìb¹NS⑎Ö%Þ“¶AÊÖ¥ö5Î`Ú„JYë!©dz0] ÓÁ°‚À¯.V“G«b`kžüT\8 Z— …x8˜€À– ÕWžâ[.B)¶9Õý)e3Ò@Bˆx” ‡;.©Û‚ “ócyÕ‹f¾å"rõ׎Äî¤J¿ô#] é¤mjÔ×>e‚.KPµ Ù1·Ê*W™ùÖRÉ“¶8`™ü¬ Œ™-È`jq!åÂ1Ö‚°@Ôâ ÂìŠkAx–‹È“ؤk–-È™×@àׄ$hkª4‘‰"{PÉŒ1VÕ®â[K%Sms@zÒ@ ¡3i ŸÃšæeFHÐT³XðxlóC|‹ á @õ”¿ LÅá¢F ó\üš¦£7cn¢‘`-^s{¤‘o.û7B êf ×ȼwÒk«Øžkkm˜ £F|9ž¹–³wèÃ9qhõK °;”ßKM&¹v/È<"ËŽ,.ZÍ»µ@bÊWÉíÓ/Õž @\Ë÷eÑN¾ç6êZž1Áì€\C ¡Ñ‚“^=sêuÞ­²s6Ú\[0ÃbÅ–ÄÚäô/í|Ïn”T®13»cg ä Õ¼ÅòÖ={?°óí¹qúÔ[6:wú=çY¬ýà±wl|OüÎ{ÓFŸËúëdÞ§Ü`þ=7ÊË^4Ó™1†`Ë÷‹JÖZø…ÍÜ÷±¹Û"ÎÈu2¯ÀLŽ”´µ.3rmH£mgµÏqÏe °nlüñXŽg7`–{‹¶Y¹Ž@B"iÜy¾T´Ú·!MJúvEÿÎQ$fs=,Ń£Ii’ÊEÃ~§õr}j ù äÓ¾oÿ{6¾ iòó^µ2‡½çä+@˜3d÷‰Óÿ°yÅq÷ø¹Âõþ¿\G !º$5ÒÑι[Skk„QJ‹œ|›r>H ®®¢B4Ü yÚÄ…bç®Mvyµ¢qF@ZHÈææ¥ÓbLe¥/š¹vjrmD“³Ñ.+bÚäfj1_Î-_€È+åM;²>³óáÐtG¸’o{î6…@ˆO@dÅ2MæžOì|»5ÕÔ<;ýwX&H ôží7!­•&6Á4íäìñÓÖƒL‰±”×¼`æzââìù×l“»‰øºNðíÚÔÉ»[SVÎÇv&ŸÒ üð y›n™±¼z•yï¡l#ar¶ÿ hR]ñl¢³#ëóa>ºþp“¸Õ©Ð¨j™Ñ:°µÁÁÃoÛøvj‚h¤ŒÈ ÏRäûÍØó©Ýså­¶{©á|á:+ÌHQl×’6pÇf ¹ÈËG¸q„.V¼lq§úA ÷H||ü"éâ*œ„@‡$Kz“Ê¥º…¨{Áà ~âüÿ§èH™SWµ|XS¿Ø> #ÿôzlÅLž™xŒ i’[þ‘cùîܧ¦…­Û3Z!ÂìE…/9䊯nJ±8Nõz¾—>Ëtj±õø‰7š6öõÞ¢}±½µ-Ì.OÜ2J"&ÿû ’A_Ž“TF9ªjŸÖt°uz Zþõ(y‚ÒϤn¿ÏÙ)ªG’%¹)DÝÒÝÒ^öÚþ ¶ œS¥DwÎþm\[™¹·سïC;u áºç®Iþ¶ îîÕ”i&-iï7›·ÁNÈDNY£uÿ›Ì)RŸ¶kÓpG_¸÷–ãîÂÂó×[©ÌؽžklA°‹å×X„mªªŸâÛ­©£s‰!%íóaú8qÕ}Áú Äսʙؽòº<]æÊAÕÔiJÉøb˜ÎÞ>÷<“¿rhz–ùp´öD!G.ìˆ;{ ã²Õá¹1™§@Ü ­e‰_;µKyvk 3´i—SÓØ 6õL-ö“Kê%RÑí“§ß²Õ·>mâZ;–½p±k†ªãj¸áÈÉÙ”I_9[º"Œ\0Ü‘ë®Î’œÇå3â¡ËÍÏqq'@ !Äu¢' ì?ø¾k§&wötØo6­¡ÒãŒ0Fð÷x`y:KèIvŒÛ\zÅ¢cx.ñÂ7ŸŒã\Ñ+™;Ä·†Ì׋Øõœ{ãJN I›íî-H®™c9a½• ǽ7œÍÍ*%E£²KLÛLvs…÷(ê”õl÷é,&üîâ:+´S€øˆ£ºaå;f™Òí™)zwÌ­ÒÚ—Ì\@²~d“•LÜ Ìc ®%(ìÅS¨¥å«Ì|Ò¸£¦ê©áY›ì¤Zl•—Mÿ€g«Ò¦¾LgÆý¨LÞ⨮[9äÒÍñD}ÛÓ&w(}X¿åëE,;°ýFaÙZ øTz¬ÑóËÌs î‹î{”W¾hæÛsBÓ´Ø>¶½À Ci»6Ù¥ì78sTâÊBÎu÷}ʇϾ^OI臻ëGNþÛÙÓ½ñ‚£¡}…‰VD9å•rŸ€úÜÅ:IêÏ~÷º ˆîz¸!cï'v*+öGECâ×E|†îVõ&U@× Æu¸Oú<âÚu©UUH.¯±páðâÎf™EòοnMÍüÌÉ¢!…)d=„Íkhv€N¦»¨\ª‡9*í‡G`!ƒ£”¤d|a?ÿ† f­‚W ÙE ÊþnqíIÞ2ý~&~)”µí?þ.0CǵpCþÅ ÖdöøIy”SJFÝf·:’Ò¿´oßû“¢>±ÌC î' …Ø3N0昌c¯ Û š¦Òª—Ìp—öH`¸»TÚî‰@` wǮχãâbïœ-xͪcûþÞpx  Ë×Z`5/L#{Bñˆkv¶E*¹¼Æì/ÖÞåF©\ä@ !d¼o{îˆR$}åÈ;ûw§¶kI@q¸´w‡›‹ÊÖZ’Ò¾&ØÁ>S*o…ihjgœ)#ç;,)™ö¢e!”þÝ™Ýá˜!å,xôçï…%+°ç[¶Ëð|Ëø§!yÄsK$ÇX`ñaÖ¾ö¢’—-š®eÆÙàÐè—/–¿lÙµ÷C‡”ÒÙ±ƒS¦KS‹™ÓD%v–\~Éì[÷'ÜPV»Ê -ì«èwë©WWÀX,1õ?ŽÂ²W,m}ËŒÓ×Њm#¾Î®!yĽX>x?“³ý&,#Ó-Y!Ô1¶ìƒÙ[õ˧mMšº"MPÿlž£—×*뙽ÛÐðwnuìØõ™î¨çyß–søC[Æ®Oœ0óEÊ¢F$ìµ3Æ÷EH™< ‡|°=2}†ê¦÷oÿª2°»‚í.‘)b $¦ƒ¤o4[SÆŽº“*Ý-…Ïy±n²­ÉY²›Eœùî5Ü—àrìÌ?mô io îv»þN¶»i‘`…2Ã~A@û‰kW}ûy{Â@TvwÀϹà–€L†Òqm‰k×F å ¸ÔÌY žã"š+ÈT[ç‹×YµK\@ Øq7(äEŒ@Èœ2¥9±–Þ7H0Q#GNýÛF+¶Ž@ I³O0ãň¿áß ‚@ÀEŒ@A !–ög–1“´?>¥¢9@ ‡È~AŽY Ô<˜ö[lA°A  ‚@A  ‚@A  ‚@A  ‚@A  ‚@A  ‚@A  ‚@A  ‚@fäq梼6ÐA²'Vu5©\ˆºY ·…¨‚8Iê…¨W^­l„ìî‚ó)ªG°ó!PÝ!žü–ê¢núSË^Û¿ DÚŸ'¥{ =Ht$dK~ óhu»ÒþP/„+õß}äòj0³uÓlC²[ú½ ǼWÚÃ^ÛÂ.v±°‹…c‚@A  ‚@A  ‚@$Øúø ºGVz?€(®«Š£«DU ç7¯ìüÕ“¿6ø‹Ä_ €ã±ˆÇnF¼½¼ àéb ¦\‚‹Ö_$þqãX¸nÑ€j0»X$ÈÆ 3@â+q 27é€äÝåz_‘ød&8™»³X~ ™ˆ'¨g±Èü˜æõ Ùà@ dîßñ Ùâ@ $8n²÷ò÷"9‘xâÆ±hÝ_gŒ ๓΃d2@á@ $¸–šp ñHßZ,/HÜ@Æq¬ ‚@‚s±â$$Dïj^$ýü¡;Bà@ d2'ˆƒd3Tèî!ôL¡¬& õɪ#ÖGô³‡~gás oÀï>nÉ.IŸçƒ8NjÈT« çz·´Wˆz…¬Ró@öAŽy?ÑÂ^Ûœ5ôôô_ˆD¢?€6âÏ ¿¢îGy$3::Zºãããÿ"D½ìyþ=ä! ¦c¸îßBjêþ#ÿõ3,X°`Á‚ ,X°`Á‚ ,X°`Á‚ –-ÿç1š3nTùIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-textitem.png0000644000076500000240000001544612536324505024003 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®ž pHYs!›ò3ØIDATxÚíxÕÚÇåªWAz¯RBh& Ë¼Þ+PŠÞ«¢´Ð{KlIDŠ…¢À§REÁ+ ˆôJ€€´ô)zU÷›ÿÀYÃÌî&ÙA–üÏóœ'»³gÞ9sòþæ”yßóÞwS>McÇŽ-¬äJ®iBn¬äZfÈöóómRk†……51Iöc!!!>Vg3e×Rd72IvƒéÓ§ò l ìû£ÖOØîílý–µvBŒ² >Rðw3ä"[f[SÌk_yÙ”¶žcK6«=L“­è†ª#&ȶͳïSFu½HMœrê£_¼#VD™|rêz3d,\ð73ä"Ûÿo†Ü ;£wOܽ˔¶^y̬ö0KöäS7D¬Œ:l†ì¨µã·)º]€B@! „€B@! „€B@! „€B@! „€B@! „€B@! „€B@! „€B@1ÆØYÊìí>Ë–¡4îQ3d+»šüa†\µÞ3,Yfȵ.°§XÚSÌmùÌšiV{˜%Û®€>Ë’aJ[ϱ%b›%oR Û¯àIïí¬4ÀÑÉ)“7š!Ûþ˜!9biD‚r'lÞ31fân“êob{˜"{Rò”M‘+"˜!;jÍøáááÕ9Äâ‹C,ÎA! „€B@! „€B@! ändìî°Ím‡¼ptJ! ä¶™0~C•Ff¾ß*1'’o†X¹„€|5É)$„€ä»Iº€¤U·Ön!! $_®by ! ùv™×HÉ×ïAÜAB@H¾Qè B@ø&Ý$„€=H! Æ´îþt"! Ä $„€WoÜ;´Jõ ~~~£±CÎëYÙšÇ,Ù p˜RgQosäþnj[ûZ{VÛÃë² ü­€CQmGÉ’%g²aÂDÊOLZçèŸÙ¸Mã“ÁÁÁÜö‡€-M:4M‹ú™sB@táÀûNÒuÁÍ~8bcNäLÊšú‹å€m“+@ôʸÊA‹ûìÊ Fçkë!—ËÏ€háà2¯ 5Ÿª™U¢JÉ‹9ñ<ƒÂÕy¶n†+@B÷„m.]£ìyOä…í·l*ë§_Ö@\/×U[.¿â„£ýŸp@Æì Ý… x!àä{ÿ×=Ö¨1{ÓwWô‰Éëz- Ú …Çär£ç'áé<>eâzœ‡²ïÍî‹ëé]£St—¸bŠ]B™Á«†î=[ÏA»G.'‚cò¹#6ŒÚÖnÌˇ´çkë¯w¡ÄâZ!Û?Ø¢=o‚r?¸oÀ…ãÁ[C¶¢­Ä}ú Fp@žéõlœû»}ÕcOgëdèE/RºÈ•†/5<á÷dͬ·>~{Ÿ¶w€ÂUò¯| _¼R‰KaqÖM(S¨Ä#WK>Zò"z)ÿÖµ3!g´¢`ÚkÔ~ºvÆC…º^¯m@úK£Û´rÈŽªMª®û\ÝŒŠþ/¶éÑ6U”}òÝÀ¤7Æw< »TõÒP/ù|£žL{(±|­ u+œm3¨í1ç}—-z¹b@¥3¨?Îkùö“É•«t¦b@ųՔs¿/â ¢cóâŠ_RÇçJcA‘CcÃ7ër_ûòÓU HÕÆUOÛ–ÚÕ!Ö›SÞÚßÙÀq^¿ïìåYûõ®!Ëóké—}ò†òaˆØ%ð„è}ðä®òx•ìñÉ×·øOËd(´«áœü›¶”X¾r`×VI¸Ê*ïþ½ùЫW¢Æ)|FyôD(ã+€8—rÛ7I£?ˆ€¼=í}ò<âÙÞÏÅ?×ïñz e0R: AJU+uAoåc-Þl™â ©®/X¬à5”EnÞ¾Ez9¿rßœúŸý¢|×YïÅ¢×@ï|n±|k—¯…\®Vùs¸–¶þm´=ö\Ÿ?Ûr|Oà @ `R`¸Œ§c±òÅ.kPOùäcNá³'“tO¼Â¥ _A95z=YšMJŸ²ÊÛ¼s‹w ® ùrLâ-׺™q-mYôTbøåK€x ‘ÁC*Ìä\­iõÓx:çŒÃK+Oro¢_ª‹U¬¶ƒ_8Š 7žö87·€X—Úâåk¹ª¿/’8ˆHëÏ$¼2îµ_µ¿÷þ¦Ï.L¦sˆ:ù}¦NƘ¹¨Î7€ Û—Ý÷ä›ò¦¨2!FϘ0]3\mßÐÕá{kµ¨-æ@!;>ØRC™7àó?}{æ5Úóêª-%–¯e9hßèߪv&®åë€Èp`¾É}±<U¡nųh@½2XÑÁÖ•9dÄúQÛ*T«på‘’\…ÂBs2õá"_ü•FÇ1ÌÂäòŠ•-võ¥í’E9(0ÄwôzX‰’ÏwUW¹”X¾VÑrE/cÉØ×{ÜÀA@hj’oLMð®«q9ƒ€ÚbB@! „€B@! „€Üs€ÈŽF²“‘‘#” 9uš2Q½ºè)±7êL@ò ÂÑHëdddÖ¡HNœ¦ÌDÔAÏÉKO‰½Qç|HXXXËlk ”ÂÛ9|†%+biD‚²±] þ¾Þí¸86|æˆä~öKß{E¥[–¾Ø’ÐÓÞ3­ãÀŽéÅË¿öî˜wOô›Ô?uÔ¬ÑIe«”½jùƪþŽã#?™6-ü´özFeC¾“8`ÊÀÛÚoä¬QIÊñT” û:<¡›µÇña“‡§[çÚÒ´eÇ- KÀ} ›1<ÙÙv7ëŒëuS~ÃuDÄor¹qŸ„êÑËY/¹ÎòµpæŽMÄgÔ å{X{¨u4ü?N³œ2ãh[bO´|fÉ4C¶åsKŠ¢Ûõó}‚'$L,ð¹iÇf©åüËeàÔ“sñ$Õ:9B >,Yïi¬W¦!8¦ÚDIåáÙØ)ºs•JU-u¡æSþ™•ëT¾ðT§À“r9—NNÎ]Z£EXñ\CvæÒö ÃÖŽØÞ¼‹b5œuÃ0ŽRp˜ÂýÀ4E6Ëar286ás¹šåÎ,Vè¼ó`´W¹A•ly¨¡U#G¨×ú´Ï0r¶ÒsšjØîñã€Aö+¡ŠÂa3áÿ!V底ÏܼMÏ¡JëädäÜ¥›èõ‰î›¢­—\6f8.<ñÛC ]œsta‰ @´i˜%z­C•§¾+9Dªn ¡ ûô–}Ñ“a‡~é0¹Á„øÁ‡ü “P(”“O­biŒ¼ ÆöEʹ‚9zç¼E™ƒ8'ÞkÂ÷/Wü ¶÷‘}:¸fNÉk=ÿ @¼YgòâjS7oò|¿6Çð&xƒîjÿ&- y­ç_ˆ7ëL@î XIÂÒ$VŽä¢^Ðaq‹7Þ}—öß©µA‚dá-3¬`vÄo˜¹À¤``ÓìwfvÝë ðu–Xm=ê(LDPO5˜NÖŸËÊ" dÁú× z÷ë¼®b}€ãFB„&èµ-ñ@ðž‚°ä…í,kÅ?Qϯ¢u÷§oXþÖÉ(¯¼AÆÓ_˜\@ËW+¿ÁN ï1ŒŠ\¢r 5äïAú)ŠfTç^Ó‚—©^ö’¶žzuDy˜ŸÃF oÿ+Õ¯¬¿qÞ“äg‚2O½üT¶Ñuî×éK¢´Ö—ä–¶U|MôÚ–€ø 5šû†‰0Ý€Ù‰ ˆìW$˜„È• 'ÞðçÀfÒÁ&žº0Kq¥|ƒóJûë.§Fc¿³¶M¶=Úzêù~¨{õ*Mrï#Ìa?ß.l¼ä8#•kU¾,û™8ÍK\ܯð%¹¾Ö—DnÛq‹ÃâõÚ–€ø P Ù¤ü†ñbý“2 Z¿ ¡80„/žÀ¯G¾qJ„'­<©ÿÏ?ei3†$xâbm|v÷¶½t•Ò—å9ˆ¨§^Õ`>Uo½¯¦o4M…s˜ÖÏDu{¾ÉYÑóènø s¿Â—Ähþ&ÚV¾ÉmK@|XÀjú`ú.¢ý]Uleˆ‚6Æ(!“6>ˆ,ë–¬ «`\¨ÐTæ?–1„ÊmÃ1¥žeª•¹$"dëÕQó‘ÁèQ(¶ö¡ÐüÅg„Ÿ‰.È:÷ëÎS´­ ˆa{»a¡*ÿ†F€`IOké>ê(§,†J2 0?7Š"?}1ôÁØ^ÄûÐÛ‚§¬2ÿõÔSTLœµÀlhýLÔ¡Që†çôzW÷ëѶ2 rÛæ@³/<€ogë{Ê„íÑ{Ì­ìjò»øÜ¬Ýƒæ=ˆÏA3{zàÁ~G¨3|^þÁ~<¹EYÛ{l¡¢…®^6f?¾w±¼ÿ÷ÿ!Ê7|þñSïwËÂç^Óz¾ÿAüöF¢^ÊT+{©÷çýáó¨ïƒ÷#ŠmÑ2Å®¾7¹û½òÍþùDöÀO&jë©­£ÈÏÔ?=ü›‘qølQêëuÔíÊ«~&ÝÛ¦á7ÕϤt‰ëC¸íÿèê~õ®‹8Š¢-DÛö®×¶yÎÛ¢cm 1A?lߨ„„„ÔÎ3 Š‚'›·³U¹ù‰1w›!€8¯£L|ë=]ït‘RE®*Jz¡Î“u²ñOÄo!?ŒÙ'†6"ÿ{ÀKÉ…ŠºÅñkâwV.¶6<Ö¿A­Ë…K¾V¹n•óþÍkéøAǽ: [<<®ÊcUÎC–çÊk#^Kì3«ï¯±=ò¶û·Är4 eÀ9m=õêˆ<þL£sXÿǪ‘xx7¢õ3! „Ö¼´æ% w gÆ„ÌýädØŽÙû¼CWÎ<ºrÆ13d‡Ìÿô„'å"ÏØN@H®óà… Ò{NüŸã^Í£–ÏK" ù ¬vSò·îâ„ÅÎ ‘ó6äY½!yÀÔ޾“—©Ÿ{EïüñÊ<É' ù ™‡Ovl÷tõÇ(vƈ… 3“3ÎæI©‡~ú£#¯2Dþ)æ¨cÖŠ]êgÀs(-Oò H>¤St—¸¿üûoØQvQÂÇ᥿éÓá ÖyßžÏȾà˜ôõǸ9kŠÕÊrÇø£f¬rÃwYùB>_ã>í'ÇŒïcz2ä¬'Oî5¢æot úø‡[é3i™#Bé9Œä÷Ÿ²B•‰c½nçôþp™*3ø»¹i$¢óÃȾÈ@f-ýñúÅË×Û¤:æ­Þ«*YØ¿8$e8vüšæˆ?~Ú±x]œzü‡m‡Ÿ-ßéTÎÔ̳Ž!Ÿ¬tì:|Ü¡•!g#ybè„Þ=EZæ9G‰l' æýèHQ~Ó“oŸ»Þq$õ”*cžpžsúÜ%ÇÆ}IŽØc'¶Eó³ H>ÄÓ ©=dÄüY)šáË^E±‚>üÞù}ÅÖÃŽÓRæË‡’³ý”¿?î8êTt¡ÈFÃ#yø¼/>]•‡Ï€íÂå«·¢'ÿ@b†Ú[ˆïq ޱ³VËþáp8{*±ˆWÒ»tUꈜx2ÛñéwÛÕß'/Þ¢>™Ñ{uˆ+yø ½†\~k\Š[@0‰O˺õ¼µ»ãU™(‹áç ļÏ- xŠgŸ¿¬*©œGÏ\­þ¤¬,AWÇsžã Wò+síy«ws djÏ[¥Ôçó;o+K@ÈmŠð¹C¡Ì3 ‡K_ÿ²_4£€2ºÄ•<,ã&§Ÿ¹åØÎCÇݙڞg}l¢cæ2B@4ŠŽ÷!k&R«\ž2|Á‚̬³ÕžA¬aâ‹ñü¥Ö»œPÇô#•Œù޼d›:ÆçAýàÐʳ‘<|ÿyW¼ó7L¼¯]ÿý6@ôäo=âþlµs… ýè¯7r»¢cÔÁ»ì¢˜¬Ÿð¼(„_PV‰ðC€pFáéÿÕªXõ8Ûúåº?'ÆÊD+TY†v˜¥'O(÷öƒ©êÊV¸ôz=ùB&†o˜`Á —NoF@hjBS¾($ „€B@! Äg Yýå‘Óæ]2Q†·óà9 ²Ï™Ÿm†lOëºiö’ƒÖÄ:Ç–ŒFðv¶|fÍŒXo†leW“?Ì‹>ÍrÊ ¹Ö¹¶4Û|{ª)užaÉ2­=L’mû."Áò™%Ó”¶žmMRt»>{ºÜÒå–C,×;+ê9>éeìT~§‘¯9^Ù#,TÙë*¯2á†q¿7¯¶æwWoرÍÿD{ÍÐUãöÕiU÷t^åX>(¦j㪧 ñhwwá å* «°G-Ž©Áhä5Š9Šz |±%Á( «À;aû­›ÐcŒ¿¢L{͈-Q{zÍ :$Ÿã*@ŽQ`B@rejâ* ŒÖ± å­²£ªƒj°A\›AmUE5kt’^@Ww Ä*ñôÏ,^©Ä%ìή½¦Ø W܃«9®Û’k@ŒÂèÙ^ù);±Ë=vm•„'5Ñ´qx +v[G þËÆh¯©ÄU€WmÉ5 Faô Àê¿‹\Néµ €èÝ1 D£»Ñ„*Ð3ˆ”q ÇU`B@r ˆ'Þ„"@ †1øMÎÆ=K_£@4zÁnÜâ.@Ž«¸„€˜†VÒ©'[Wh0ìBdªœâ.@! wD„*ª<ý1D«E˜]3|»7†hR˜wè‚ ¡‹r:ba(¦¢¹©´ˆ¼¤¾›ÈºqÍn_vߣ½¦vOÇQ›‚·ŠÕ,LÊqž;@°J¦ ØI@Hž@ t™ØÃLÔáX…xƒíƼ|ȨAÆJ‚g„Z“Ñaï-¬lA&Ô*škjÁõ!C=ÌGÔU´,÷÷%a¬¤BSššB@! „€B@! „€B@! „€B@! „ÛþpÛnûÃm؃°á‹€B@! „€B@! „€B@! „€B@! „€B@! „€B@! „€B@! „€B@È= H­¨µbPYog»Ò°“’§l2C¶ÈïfÈE¶-±'š!wÂ¶èØ ;¢÷˜Rge‡ÓÚÃ$Ù“’¦l¶/8j†ìÈUQ1Šn×ðƶ?¬_ØA²·sø,KFäŠÈ#fÈV·ý1A.²º rm í)öEöd_ª³™²#•†e¶5Ý”:aMPt;€C,±8Äâ„€B@! „€B@! „€¿±»Ã6G&Œßp'™xbÒºà­![ ñ@Úyáh•Ffç’œ8üý3»¶J" Äw†XYý¥Í)$9DÀѸ}“´IYS9Ä" >6É$ž’S8¹;'é€äýV‰žBâ ¹ƒ€»w+¸D†r¹ŠE@îe^!qH^à äîâ$F€äB@|ãE¡¢Ü­ºµ6„DG“öMs ! ¾ó&Ý$Z@¼! ¾ejb‰ ˆ7á Ä÷l±t €8áèà8ñMcE $Ä 8ñ]k^ ’+à0B@´€4°Í³ïƒ@ogë[bÔšñ;¼*÷çñÛ;¦*Uw4nÓø$¾{»Þ–Ï-)f´‡íûû·q¦´õlk’rÍ”­y°ûˆ)uþʶ_Ñízydúôé…BBBê‚6òcáááÕÍ]²dÉ™ÁÁÁ¦ÈV¶‹©o†\¥kc2_ª³É²k`k“d×SòÃ÷111111111111111111111111åÓôÿ ¼½Ç3›JsIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-view.png0000644000076500000240000015131712536324506023111 0ustar philstaff00000000000000‰PNG  IHDRbÐ=)k°bKGDÿÿÿ ½§“Ò„IDATxÚí½”$[r޿。žf(Æff†éèéafæ7ô˜a¿¥·+iW`’mÉöJ–-[¶e–-Û²dÙ㊙-Ë–)þõ‹Þ[›]“™U™•Õ³>ÿ¹çÜÓ3ÕÝÙU™÷Æøâ‹/>ö»¿û»ûÛûoË×}Ý×=šæ£ùh>šë8±½Øà¼þ‡ÿð>šæ£ùh>šë81þ˜1Âî·–=—Î%¥©¹QþøÿX~üÇ\ž|òIijj’?üPìÆÏÿüÏË¿øÿbÍk¿ÿû¿/?ú£?Ê)¡¿û+¿ò+úúøÿAÒé´ü¯ÿõ¿ôÿßömß&|ðø¼¿L&ãxí¿ðþ‚ìÙ³G¿ÿÊ«¯ÈÖê­’él‘ÅãI9þTg~¹Ó!U[·ÈŸúSJþÏÿù?òßÿû—?ûgÿ¬LLLÈoýÖo=ðwÿçÿüŸ2??/Ÿÿüçåþàôµ¿ù7ÿ¦lÙ²YŽ<Ù%ç_êtrÍÁ™˜ÔÔn•H$,_øÂôoþ×ÿú_¥¥¥Eï?ãG~äG$ë}a|ÿ÷¿Þ“Jÿößþ›¼õö[R]³U²=aÙ{­S®8æiÎIËþ]k^»ôÖ°ì8ÓêùZnsd1)‹‹Û$‹éšøžïùù¿ÿ÷ÿúúÜì³ÿïÿ½¯ße-²ØŒúOÿ©ôõõåßË×ý×˾}ûr{í …›%Û‘=W{寇³rã¥Ïí§;efnJþÁ?ø²²²¢ëâŸø„üöoÿ¶íûúßÿûëWöûíÛ·õ=nÛ¶MÚûbžþ.óü2±œ‘úÆZÙµ¼C‰„ü«õ¯ôú¿ù›¿©×æ+ƒ×­{–ûãå¹p³þýŽÿñ?þ‡>þÏÿ¹|ò“Ÿô4ù~÷g~ægÔjˆÛú›¥¶¶VΞ=+ÿößþÛüvZ|ß÷}ß'2==-õ¯þU½©GŽ–Í[6I[G«ìܹS ãòåËòÙÏ~6ÿ»£££z’0þèþH¾ë»¾ËÓMÄ(šawm¢1ZÍÍÍjô3Ù”D“M2µ'*Gïuä6iXÆÇGerrRºººäOü‰?¡FÆmüàþ œ>}Z áK/½$¯¿ñºt E7ÂÖyê™^ß“æp½ŒOŒÈ7äÔ©Sù÷tëÖ­5‡ÚÌÌŒæÐ²Þ« 뢱±Qa{g«ÄRͲíDF®¾7¨!-g^üø°´_úÒ—tÓ}Ë·|‹ Êìì¬gcÌÏc81 fÍšƒ¯”Á!ouZŽ9"æÏüý7{„}d¾Qª®®–ÎîöÜzÍÝ×cí¹û:]’1 Åtmüò/ÿ²^ë¿ü—ÿ¢ëå_ÿëmû¾>¬ûýßü›£ÿÿßøÜ¡’ý7û=b3y¯¼ç¦Pôôu©côî»ïê:5ƒ=Äácî-ÏåŸü“"ë=Œþƒ?ücOÓãÀ ñòµtÎs¬’ŸýÙŸ•¯ýÚ¯U““ñïý½¿ç豸YDãoü ýYN@®qø…n™>š”X¦I2­)ùÔ§>¥›ÖÍ`ažÒ¥Œ¸ÛµyèfÁãµ¶e¥¡©Vêê«õfšrüøq …BŽÞÆî'~â'ôß?÷s?'Ï?ÿ|n£WɾËík ç¹ûåøÝî êärÎ+»ÐæÛ Ÿ{±O§$’hÔÍòùÏ™BOƒMm@6ûµk×_ÀÜ ³±¸×‹‹‹ÒÝÓ¥÷ur%%Þzè†xz_JRé¤ÞÖÁþáêûýÉŸüIÏŸ—}Àoÿ½{÷|Ý;–“'Oª17Q‡§õÞâ\00Nmm­RSWó6³êu:@Œg:›”§Ÿ~Z®ñÿãt}/D°Øl6«{ø­·Þ’D6ìÛ¯™9o¯¾-ç]oÍíÞ{ OG'‰ÓÔßߟ߳˜8vë1üaæýÈOèïnˆ»&š%‘LÈ_úKI=(Œ!7ƒPÝnð=½÷ß?oΟ?'=Ó9ùF_~n¿”•lo(wÂWÉ«¯¾"¿ú«¿jë N3~çw~GZ[[ó‹Ôë`ƒü¹?÷çÖ\Û.<"t·ûlî°ƒCÞ~û휌¨Áù+å¯H¶3ü€Áܵ]6myBÚôßæõ-[7H]óf9ó\_Ù^2½s0¢ßøø˜üÂ/ü‚­§aõâ‚<, Q™…¶²²[£¢Á¹„œÈ}Ö‡a„¯¾?*M-uúœÿå¿ü—ê%bœ^ýuÛÏÄZù±û±^7ÆbûöíêÙCJXmàÖÌË/¿ìû~îÞ½[×’YgÀ ?ôC?¤ÿç¹²fñXoܼ¦Ï»g#©TJþñ?þǶ÷ãÿ¸îwþ¦Ùï@`K';ƒ1Ä–Éû˜NIMmµŒŒ «—nΑõÞr(˜=‹áfMUÚÿîïÿ‘§YC¼÷vVjë¶Ê7ó7Ëòò².„OúÓŽž¡lDpd¼]¼®ÚÚÙÿTçClæÞ»Ò;Íä­¹Ÿoп˜7Àø“òOÊ/þâ/úºÉv×¶†G^ ÃàÈúOÿi5pÍ-M²x4mk(O>Õ##‹©ªÙ ÑLµ -„¥1¼E2=õ’íkÈÿÜâ±´zÐåàÈÓ«8òž½+ÒÐаÆÓ°zqA ÖÉþýûóÿ¢aZ7‡Á›C›$ÓÝ"û®w®«!knh¨—û÷ïËOýÔOéû"zpr,ˆt¢Ñ¨~®ôþ‘¾†‘züñÇeiû6 ‡Ãy(â/ÿ忬†ÙjÐðöÌðj8pN óÖ{k½682Ž k¯½?žÇ‘O½0ª^s{{»LMMÉw|Çwè5Se7Xf¿µr`Ñ\{&pCœÇ‘_›±©ÍE£{öîVïךßà@: bÏz1Ä¿õ;ÿÕÓ¬ˆ!Ú’®žN]ŒÿüŸÿ³\¹rEîÞ½kûæI´]¸pAþÝ¿ûwy\‰’ém±5ÂÖyä…nÞ“†æZ™ß6«Ø‹Æê ˜…üK¿ôKkx²&ä.ev/Ç\Ûxq^=@xÝÝݚؖaÑâq3¢g_蓹ý Ù¸éqém’ÓÏöJs´Jô®3Y©ÏyÈÁáÈq©o¨–É©1…kHÖO#ÈAˆox»;w ÕÉßù;Gÿ.'ëëâŋޑÖ7}Ó7é½âwXß¡Ú5¸?ÑOªµE£º>û‘î"6k~ƒõЇlƹs甑àgüµ¿ö×òù “”µ^¯þö'å×~í×Öü>Ž’‰Ž û‡ Ç‹ßÅ£¾ðæäƒyåi©®ß$ƒ q9óòXþõDgƒlÙºQ.½5U6޼r¹Gqdö–:/qðœ"¯ ñ¯üÚo?0?ö±Ù¾Ît6ă`›¥{*”3ˆ©’ðÔ¡¨´¶gòx ! Ío¼aûÆÁªðˆ9½}ðf;;;%o(ÙÎ¥‹YiëÏ…ñU[äü…szRo€pÒÐk¬ž':›ëaŒïýÞï•­[·¨w[Šq¬oÙ¬øpMnAƒ?±áq}ÈÌÖþµ8rså|«t D¤%Ôì9êg`˜xfn‰CŒýù gsÏ{³ôÏÄääóýâž±¸Â[cccÒÛÛ«P’Û€±pâÄ Å¾_{í5™›–é•„í}Ý{©Mº†£R[W“[“¡|DWŒ²Éý0ëÙ UÓŽþ´g½¶WÆ‹ÉÇA’dg̦låÙWÆep[\×pë`³ì»Þ'›«6HçXHÒ=rýƒUxÄ+ÝÎ:==,}“ÉÜ}­–'oßÒµcòÜ[ Ðr)kN†øù7ÖL³?™…ßc:bŒÔ?ûgÿLî?uOñÂtw“,œŽ5ĉÖfý]pÂ.6,ß)iÅ€–F€‡È ’™cI߆؊#÷|šXã;yf±˜d=ÆÝ»·ep&êÉ ®\h“÷:;>ó\¯t 5JßT‹ o ËÖšËÖÈŽ“™Àñ¡¤ŒŒ­Û½Á›3À)qh §Ÿy*ç!×Kç`ì^±Ÿ‰Q'CoÖ/IU’«@KNü^BüŸþéŸÖÿ³±.]º$[«·èsr»·D6SQ]¯‡T(Ïšßp£Uz=1šÀVú×ç>÷9_ψ}E¤bö;ÏŒCåä󣮆òòÛS2s0+›s¹)V­E¼­^†rù)5Ôí@pä¥îÝ·¢‘(÷‘è¢RñÏÿâ¯æ§Õ›iý>ÓÑ[Ã#ˆÙ»–wI$–D[³LìÈþ{ám§ÒÜÒ¨ÞÂ_ÿë]é+d,ñxíá‹  Å°Ðêêêï=ñz_Ù†ØÌÃÏwËÐöh.¼¬‘ùmsjpñ~ý×]ÿ6g»Žõ+{—%žnV(À«q°Ô"{ŸÌæ q¶¯Y TΙpèÐÛn`  žyOîÄ]‰f„×àȯ®âÈÀ„×&Ädá¸ppÚ{!ÛûYÈÔ›››4a7±3®É2/8îÞKöpF90h"ç…'SqÅfwìØ¡‡÷í÷~ï÷<fÖI*¿Ç /¼àJÿbÍâõë ®FE{SZ”᥀\œë‘L„R†½~ýºcÒ‘ucpd z`@½3‡¤7|¾_“{éöPnŸÔËâÒb¾Ó޲i¥UR­ù0û½¹¹±äŽá¥„l©Þ(©îF‰·×KK¢Zj›¶¨¡Jv5âÎëGî©sI?hCüS?ó󞦣!6¸À.<;ppŸl©Ú,]- [°Ø©¸!ÁÂFÀ“vJ,œ™“ \ ? ÿèK=1Äkpä Å‘sa,^87€A¢Â©€ƒ§_Œ†ç7¼ccáýr5!4²J”:û­=¹ƒwßÞ|$A„•SÄã6€… *šñ­ßú­¾ï+ºý £EaÁ¹óg¤:·FJÄ‘)à`8p ÏÅÙÙ X.¬Åòï¼ó¶ôŽ–•ì¹Ø¦—àW¯^Q³[‡•¢ež×z ¢D6T²Q\¾Ø#“{2²ûRbÅGî Éì¡V©o©Ò„ØqÛP‹¾;¸AÆû&¡hœÆ ñÿäÏzš®†/"‹BOÃqß»Wc÷Ÿº»æáãå}Í×|í¦ÚnnnN3¹GÞ³gå&^,†ÓúÚî[í¹“tƒ{¹<£½çv‡tOFô¸tù‚†hnž†5ÁÔ0-èN&»Mbèùž“ºúZiï—UA”N¼nøÝÜ[?Ô='Š–µ2ÊkˆLÂÅDTÅè_PÐÈG44ÖI×pLÜìr.àÕ«cJ-Œ,´('ÇÂx«D€o¨R`¥®uöÀ‘û'£Š9s`“c)ÌoXi•Ü>±äbPƒ5K7©Qõk c­u²ól×WpäY©mÜ,=S‘@ 1•…@§åè…8âù±Ÿö4] 1¡–uá‘ý-ô4ŒÑ*¦©P80¾Œq[[›Bœöv⺖ÍÒÝ¢ÿ†ªÖ·’š¦M’ê« GÞ“­5[ržù¼žì`sAp¸ ;m³±ÀIBEs!Tª-¤%É~pärg_î°:wþlþ@âýrH› áÀx½3¾û»¿['P!EËTp™è€Ÿó3¨ {ê©§é_Æh±^=ª©©VjÞöÓ­kpd 8šš›òz!lTÖ, §Üè…N4Ñdª­¹bz!»bª¿ÐÐXŸO”ÙpX)Z”Ñ›Db%ÎÄ7~ã7jÅ[<Ý"K':<tLïÏ>ð;0)¬t·r'×ohªSãÇ®7´Æò: é‚ãCŒaõ:]¡ ë`A4'¼Ž0Šdœêà²Å 8Τ%ÜZ­Õe6=.Ë7Û¤)^%ýKaýþðîhÙl päÉCq‰¦›—»sçŽ>œr 8Üœj$'ŠÅ&ã¾¥3I©oª‘‰Ü¡áG.g’<¢6™LjB†÷Áûã¾8À- &’7DEhŽpЦZÃêå?÷Üsú»v-kš ü=?Õþ…ÑÚµk—ýÙùi-^™Ú›Tl˜Œ. 7 ,¥ÌFøÆ[ŽÑão"|óªs¥0?°-w8ÃGN$cêí6„“ªžñŽªaÐÃÀy¬¥ÛráÿV™Üy€Sü0çbî€èéíÎG_@’TAR9éuX÷,ÆÔödˆ­eõ4¼  :uPtX €æ¥pà ׇ6ë¿>Ó%[ë6Êìñ¤èÝ9ã޼x>#­}«8ò¡C5AUéa§í`ž‡ÙXT:–V×Ti˜Ziyl{LéTF?FI('¬ìØ,ÐÏŸ?¯*|ýã ¹ÿ‰99vk@zG ìØ±}ò9da‡ k¡Ôa°ÿbô/îm}}½ì?°Wï+FÔ†\ÏÚZ†møC‡åÕ¾8ÈP=Wx/\íýW D^蓦h•¾ÕU¶^HkOHºçŸVÞ{ï½ 8œ"¯ Ï…p÷õôÙSšCœKÉÉçG®!ÎyÝáx£:`í°MLã'ylݳ~$0­R˜ž 1Æ”RärÔ5„oxPÑtSIÆñØ+½RݰI†—#ê!ã÷ηÈãO<&5›*’ØGî «Wxåê¥ÀIàÖA¤áDÑ‚çiÝXð vð4IäTGÆH Â`Õ ¡$Ûé>í§ŒcàÝ¢epîÙ5Äf^|aL†fSjøÎ]8«^‰]ÂZÀqôèQß÷¯ÖþO™ç[Ìûµ«^Ï 8oqiAf÷%¸Ÿ° Œ^Èöã™<eÓæ'”ûìdt§·lÙ$;v.iØN¿—{taŽ[â¼0@m]­tÆeÿ¾‡bˆÑÓèèjÓgOA ÑÙ vî2z!f°>ˆäq ¬ù S`֙ׯž qcxtPæN¦J2ŠxÍ7?.¡ÜB޶×H²·NZ‡ä‰ÉÆ-OH#8ò‘U9hƒ|è¹n gjUl{=Æw~çwæu• EËèÀZ7سÏ>«xgº-¤›½áŸÂŽé™‰¼^“ðÍÉ35P‡4Â7ÃÃÃÒÙ_c„­óæ[S2¿¯-w W«¤¨)%G£5žVa 1/Z!ÖADæ””õJã,ÙàÈ@)D $Óœ¨ƒF/¤)²EÕóð†G·GÕ÷Œ¯bÊxÍÓ{âåãÈ;ãJ‰ÌfÓªÊfî—Õ‹ rœ9sÆ5qh*%9¸©˜Ê!,쨨0Ъr=eJQ˜c¢:ŠPœäL‰tŒ^ì 9Äò\bñ¨FCÖ\ˆ_#ŒÀ!÷JÂXdåPÖ`TÌ£dþtZÂÙj…+w„ó Êóy¯vò†•÷ïþÝ5-èX…ÂØpGFLJUŠ¢€rqd 8¨|Ä3(GWà~àlß'^:Ø0ž‘Á‘S鄺ÚçhˆÍ¼ûþ¬ì>Ý©82¿Ãf1y®çTÀÁ`ÍzI%1;/ÎË`ó⥓/¡ƒûCÔTjÇüÁ¤FsÇïuË©§{¤6ÕÍìMh©úèR$`½fÕpy÷ÝwÔô[ÀQ š0^v±Ä!ßãÿ ‹sÒØ\'“»³rñã•Å‘O䢲–ÐjÔÅa€ðÖøøx¾©Dá`ý½Ø¼g“ºÆ\ôòúˆ,nÓ|B4–^|!xØ$8ÈV’‡ÈݳowÎÀUIß|D>ÛåÙ@lËøµE Ë7Ú¤kº9Ð ½Ñ=1ikoÍëx _ üj£VUê @ÁJÑ"ì·zVH…2p]ÅåfcJ{òSÀOFóz!$9ܨ>8<"¤ñ2ñÔé qÿù¢†Ø:Ý®þ˜âó¯¿ñšB0†¯Œµ+à0‹Ù«—üŸþÓr>šŸûntKû@$xØ ûÖG%ÃrêôI}]ãÑ@“nAL zK¤AÃWnz¦kŸðØ*^íu€Ó[)Z…ž†¹6T%Þ§Þס¨ Ì”^ÀVÞ0Æì~³U£À:X¬F/„AÑO&“–G;<áBy4·17oÞ¤ô9øÂ|6·°ÞBLo½÷ {8R2þþØc“›ŸP'$L›"UZ®þØcI4SS1ÖÅ‘[]’íiR ßõ¬kS;.œ“W^}Y6oÙœ[¯‰²Z,ÙpOaýK`sÈQsˆØï8ö9‘Ó8õÒÐClfE0bN/NxóCà)VŽfPÃÂ`dØdá3ÝaMÈ}5b0캺ڼ~€¹yp¡½ŽBoÒÊ£õ  ä³¾?üÃ?üÀµ¹Ÿ*5ú¹Ï*ç4ž^ wÑIøT×T«' éuaxœ£‚Å0b ëjäö»3¾ ±™7>>%s{[sr­*”?ãÍ6ºp ÅëÄîzàaáÁ{Q¿+Ä‘¡ bˆ\ïÈë…` Á‹ƒèÄbm¹ƒÖz ¯×pJZ“²T5ÄÖ¶Œö…\:U>ŽLÇàÐ`>¿ä*¬-«ìªuõ;vlÍ~ß¶¸Mz&b¶F˜Y/‹š~3¸9&Áä(¤Âð†ðÀh$ÙÐ\#ãûãʘxX†8Õ–¿øÿ¢&ûiŠð“QrÓ¦pkΉqêúàÆE¶R´Ü®‘"Iƒ(9z!$sìä7û&¢ªIË _/ÏÚ©M^†©n*/­o¨—É™²°uÞyV–OuJ2’öެ&‡H–X£'U=¼úJj)Ë wÙØ\«¢ú~ðy0ãtwýš×vÎJ¢½VX¡ B5,Üp"ÞrøÄ`óV•¼RœkWp·v\Àq55529=¡8òô¾V_8òÕw§5¹†NöʤSTëçb¿ƒ#£¶GUf}C­¹ßçhˆ÷ˆñ8ØxVL¬Äo§§áÖœÓ-ªVP(#5°-ê G.gÂÔ šC¯Çt-€+j7ÀÕMòÆ`íн8T^{ý5åO»y„M…,„RÞŸIpÚé÷ZCøÞ¾ ׆À‘ï¬âÈ`“h] šÑ ÁëvÚpßð ß z!dæ9TaMpÝëoLjˆ­óè~iíŽèæ IÔbD4•°9†‡‡Ÿ÷£´çk7{Ç¢zÏŒ^÷ðÛ¬/ƒ=‹Ô§ŸÁ¾§\¾U=°|Ö+r–à ÞpdTׯ'Fós2¯Â{à³›ä`á Ô3z!;4”¶6“.ÙË}òÿðÅ…çGGfƒöõ÷æ=ób2Ai Xa“8äà:}æ´lÙ²Y³>l½«lêæÍµ=P–áņñʤà£9¯uÏ:©Ó•2€ÜTõØO8…¯¾öŠ®ÐàÔHhºp„b ú>Y›PÐLƒS§H€’uÖñ;ï¼£82Lž=׺\ qà1ìØnš‹)¡éK²‹•&«7X¨í`(ZàÈï½ÿžX¤»B²ílåpd´/à„Êï‘ lm×m©.㚌|"FƒCU^ˆ©>2­~`"8yVOƒ‚?­Û‹yVHÍÁ¡þ5í­ð €K¬UjÖÁAƒwÁÚÁÛ`‘Ó¦¦°€ãî³’íiThãk^ï çÂÆMúý²pä7§dnÏ*Ž<3;¥Õ|†iR,ò jصãâo}þó_§%È‘DÃCÓ 1sd[L^äjÑ !?Þ÷s(kÎI$è¥h„õch…ÅTõ0”<ÃlkZ’­!Ù~¦ÓG¦€£§·3¯Âç%òíßþí¶ïìØ ìwªˆG(:s3Âñˆ S»ãŠ4ÈÄäØº´Éq"ƒ[CÚÖpºuçnrs´^&#÷ÍEs›z&¯ÀIiNk'\ Ñ<{(\,¦[OÞ”áù˜m:½'!‘x£.#<âä Ph¢Nh/ŠZÜOcHô{ýà„fóReÄœE_°Îþ؃ÆòÃ99x¥WRíõR3¼³+¹ž3žõÍ[$–©Õ.%VNq98ò®9£×$mb‚#QÀá6Üšs2(Î!¼Ÿù2>¿~z!Öä YBsÃófÁ†±ënÎÏP Œ``)>ω“ÇT¨Ÿ5î֜Ӻg½ )L¢ÌNU¨”k=ïP¸EšZêG¾ôÖWpälWDe«^ÕrNPñÈÍ~7ÝáÇ'Geáx¶¨!®ˆGl×[+ ­Kg6¸¹ Ndp1,œìúdé–¢r(™p>‹{ƒ€¿mç=°XôYÜ,(¬ƒM¹ÿØÝn× M)žiRÁú÷?x_ ²›7@ÇFð3ðÚ­= ¯íeàñ‘y682F(‹-à8û̈zÂ7=!µ ›åÖ[ÓÒÞ*Û´«Án‰UËùçFËÆ‘\ï—îÁ¸Ât%n)§€ÃmEXe_ÝÚqÁ[njjT£H9òzéNSv=4<× Á[/f(^‡,åÀè"$Zs‡Ü`Tif¯¼ò²æt{÷îuܳ$Èü¶ £˜ê˜[R sX82ðì)Ö'¿Ãg ÊÄ;1_ŒgÎ~7pF}.Ê:ÿÆÈÃõˆÍDwzzÚ+¬ä`8‘ÁYÜfcqÃgf§‡ížˆÊÊ-ÿ8òØž¸„#aõL{n¢¶>ˆ7È¡žŽ÷ú™Ï|Zº‡K‡úÔ3Õ…´wï “ì¼ke41«PŽWú iæÚ~Œ:\LŒq±6ç,ܳ@wź»Û­ÕÂü†IÊÂþ0×Fš•ƒ>2Ý·?÷¹¯ä ø]à7'±#ö-††”Á‘§sö¤°€ƒ9¶œígÛ××#Æ£ãfãÞ`£Då—4ÏäTòÛ~ˆ“Í¢ÅûÃãÀ³„×ÏÞÛÎ¥½pDt±¢@U é£>rôàMË82¬ )ö]öÞUùøÝU¹®¾Z1[ë¼Tᬠ¼¯!uZ’ƒ¡PKÉ+§;µAäÔ®´Œ-&´qfª³AÛä´÷7—O8ãÈ“2½œ‘†œ‡³}ǶŠt[±£0kÇ…1üø[—x"ª’–Aê…˜¹óTVÅ—0b÷îÝ˾N}1B&  ö;û,–n~À(Qà0º+¡³¹ùMØU•BÙ4N© "]×­ùÂ{k®íµØŠ}̵Ùï°€8xœ 8Že¥)¶U{ìMïOÉÙ׆+ï÷ç6ɾ}{ò¸É0M?áqa :X£Œ±5ÆÃŽþe ÂæÿÝ=I6)Ž\ŠþªnõõušI6•7œà`kN‰F6!œ9ÁŠi^YÎæQywBñù¾þn5v…Þ ¦°€ãa  \©Û¶ju×ÄŽ¤ÌîÉÈÒ‘¶œQN©Öt,[§Õf¼Ž(PÐùÉ·§UÌ)D zÀ97k–ƒÒ)qˆAB#9I)Ž„^ˆ™Ù®°®Ö39QÉq'Ê^¼Ùï@eìwXKnXé¹\ø>4+¡hÎJÆ´`ã‚SâFÙôÛpk°¿­ªz===¾ª]¹7F/Äì÷Á韉»ÂDÉ®zíF]Q؃£>Ä Äø! ?^­]‡_iIŠ àôºQ´Ìµ9<ÀåÀ‘·ÇTMÍÉ'rCŠÒ×€`„oœ82I B}EϦ-QE61ÕÖ¢^ö'?ù õæÜ¼,ªîL ŸJ7ß|CRíMrí5ÿÜáîÑPª8óÔ°âÈô-Ã@iˆ—OvªnH%µœ^¦IʺQ6)8XÚ¾Mµ+üê…X 8€ëp2z!$–qŠìŒ‘ù Þû€ýŽÃDW‹R°RæîËÒ1SþÔÔdÞÀ£l"håw Àä·èÌè…Ê)Ñ0õ£O÷—ôy{¦Â•õˆ©¾BèÂ$ Å“±4…ƒPØ4” àa4at£:—×Á †m¥hÙ…Gd³¯^¿¢8l÷xDVžl €ƒR`Êc<4àÒÚ ®Gå ¢4„Y,b¸‡vÂàAL${F¢jër^»Éþ²˜ÉÊ›UØ’¯,ÈŽµ…ƒkß¾}K“““I5¤^ äÈBüøÚkrôf †8‘iÑM‹Ñ£ Á)ƒ^Ê úʯA/ÖŽ‹½#à™gžÒ²ÿ¶Þ'½kŽ\jc0ŽXN­ … ,—$û}dtX&v§J2JÖyø^_Ϋ\Å‘: ìŸR 8Lò×ËÀΔ[tå‘ýÎÚ Áp)ŸñÄóƒ•õˆÁ©šjT’lÒô»âŒ¾AáàD§ÅpÑHÃDÏ5NÆT*©Êeżds¯#ƒ59‘Á­áÑ·ßyKš[%Ó’Ås™|I Þ›ÄôsÕàXR’ á!îÚµC©i•L¼€#ÃóGF¼eaaኖ]‡‰D‚.f`à“ìÀc…›¥­;"/÷zV_«äĨ'Ó ýüÜUþÊ=7„œ¼CÑ2E7„ù^î+‡¼I†£lâøð>ÙKéöPQ½59§#o(h¬ èYvù“hd¿™ýRµu³£ØM)óÔ‹C2¶3©¥Æ ÛæÔáZYYq-à`Í®WDWy Z¬€ÃÌçÚ5Ñ\1˜‡p;'>ø ؉9€¡ãC¼!ƒŠ÷ å+™ ©<Ó-#»bŠ}¡™ûâ‹/®ñ`í¼kcNéR%Ö^g`bÖ’dëµy¯lÚãDZ±cø‰,~x”Nt'‹UÁ‰ûÂý!œ4Ö a‡÷õL4ˉ{Ýeõ”›ZIH}côöu«gÎgÇK7ƒ$caG%tC¬-ÂY°Áήv‰&š4‰„P¹³{0¡,£‚`Úñh‹ ;Z¥S§çbƒbʌݮÑÂ)à}£å¡|ä]öz!f¢|èðÁ¼^ú1ÅØƒÅ 88(M%`¥6°®±ZN¿ìí੘GK5*6Lap%B1S9V8¸YˆdX»ßvv¶ÉìѤœx©Wçñ{eæHÎè%”ã÷5_û5êI+àpêVÊÀð:Ñ¿LxÄ{%3ŒowÀØ 0þøc*^¾88rZ²a¥‘8äs(‘ù¢€Ãm85ç4:d §—³eáÈåL(r0i8$È-À8Áû3œôÂý¬và€Æ³tÒØ5¡1lƒû¡¿‘Ls£lb´Ø‡èN“ÃubôB¬@¦*–(–JO®e§³£ôٺߩfE ˆ!C¼&Ñu±SÚ¢ ¦3iåá›ü†›ªIÖJÂl<÷ã')­°:^2N\ÚU8’?ÿçÿ¼†›”õ’ð*VÑE5 §(§©Ê"†êÔøCl;.d¥c(¢ ©³³3R;yf±@£ó[XÂ)‹n¬Ýµ½ …Qp"ÄDNƒÉÝ©€ÃÛ›ó€‘:ÌôÔK¶¯^ºF›¤¡e‹VZÈaçélYF™g‡nDmÎãØ¹kÇúžŽß·8“E ãÏAwóÖ 5}cq-ìXOC<<—R/ ßpgÁ‡(¨Êñ¾YÇ& <á¬êrÌÎÍ(­Ë¢emä•7kÕÉ-¦Ø·Z¨pAŸ7ÏÝàȳ¹Ã¿«»3¯b(§NÑ%{ -ûh–¨–4Æ2h#l‡rF¾g|5±‡÷Íó±æ7ÜTõ*50¬«ºúéŽ=­ ‡Êc4xŠŽœ3ò³‡Á‘[TVJ9‰»©ê5x6v‰C"_ö;0[]CµLîIÉéW†+ç÷OFäò•Ky Þ.oÄ©#Ígº&Àcûf£%aëTùpB“|[s'ò'>ñ¡žJnÞƒå$^^éA8Ï·TãH_²ªšºx7l|\+Êh‘Ã×¾©–²x£n8òâ±´6’\¯69@U… ]x¢f€I²±ðÀv¯ìR˜jjW6P-c„€kÕQàÀÄkdC¹ÿ^ˆrÂ35Ø{n¶Û®Ù…“iÉt…µz –‘q\¬9eàVÊ&XµW¼Þ¢Åè_^#E³ß1Äì÷D2îXÀqàÉin’MUOH×D‹&àê[¶H(Y-C‹_ébqðvoYFy×Åië‹JSsƒ<ÿüskºF^Abí¸°9À£ÇŽÑ(¾vGÜ#f3à £À1aSHƒ&©gÄÐ ¨É…mîvú2Ä…8rû`D½ÍÞÞž¼.²“7`œB'éÆJ  ^ 8vœÈ($c°)h‹3¿?¡mÕIìe{ë}ñF‹Íþɨ¼öú«ëvoL’ÅŽ¢U¸±8hoܼ¾ÚHr:-çÀ‘)àèìÍë@IR¢`ÇnÐÕ—uf´"Ø$xÇ©Ž–¢ëuùj›tŽ„U7›ÏœQHÑr¢lza Þ¾ýËË`_ó\–4û‡nÅÅ 8Ž?7  QíFÝ=’“/ ÊÖºM²íd«zεM›sa|8òÝ>éjâðÒå‹ b+Áþá¾LŸÆ-qHäÄ}GÜ#>tø@^?cÇ©k¸Vj Ý‹ c8\¶.Ä‘»'"RS³UO"³R4v×c°¡ÚzÊóú1Žqz”YqäÑíQ©®Û¨Ýwƒ2ÂÚcó&e4”ÛdÓ«'Â:1™qf[ÛqIšæÌ‚ollÎþøª¢›O9ž qY+<[£1áDþ‡JfôBøÊomÏÈâ™LÉë'•qye§¸ÂüÔG+ehÀJ»ô2(,²0yìwî=ûdݶyß,ÑHö*¬fè^ûoöh¤k«•‰=É@{zøÈõ¹=oºgT‚oÆMâb‰Cã¤êcáiÞg(hPqœ<„{àJ|%ãd& ³ërk †ØÌÃð‘wÆ´uRgw‡b‘N˜Žù„Çð(+9XÈ(yñT³Ìå<ÛÂæÅpÜC7:m»ýé ÓO ©@£B$}Ë©ÊÊmºÃ–ð;ðÚq¹Jž-ÆAœP´Avó†#SÀAJÖ1^ï—µA{'»º ñlðTñŒùù–h½¯õ Ž<¶—p¬1^7ªþ 7Ÿ“ÏëDÙ¤ŠÕ”ï¯çà>‘ç)µ€£9ŽøÍf‰¶Öê¿B[4×ÌLQN!ˆŽ'k„|A±æœ~N‰Å,ƒ%ó7Pìû¸þýû÷4ƒç{øzÿ¹2‘ónÓy½Œ,ÏÞˆ£dÇh›Í±¼{— -E+Õ#÷Ï­ò¼ÛÛÛòtñÞÝ(›8@•¤òÙïÞ½£EkOôôbJ×Òé¶^?óêp 0Xt8 ž7•’À9~d0ùÌ ~~×<³ŠyÄnª›lÔß$q_qáð*ñð‚«ë7)3`_ÎxR̰p"¥?“lPÂ|¹8òðŽ˜* ¡+ Ê .ôâ‚•À¹vKò›ìH4Ù¤êÙÖ§‘䮜ñgÑâ £‡a¢»RW+—Ö$oðJyÆÍᆜAoTå7Œ%®XsN6J1Q§ÁA`mÖZxm ¨ƒ°uººÛ¥%\/»ŽwÊÕW'´à‚÷ ] ¸ê˜ÛçePAǦ2eëÉÃOwUfƒkŽ NF sˆ£lò}?ø~±QÂPäÑ?Ð# Í52} £蕬²ó2Û)ž:.ÅÀGCÄ£ÅÁgݳ¬;¯}!ŠGÌF–Àó!û‹—¤Ï•ÂE²Õ’¨ÏC ›·>!sÇS²%ç5¡G¦&$žmV5%BMJ‘+90Ln‰Cc´ H-l›Õ{6ºS6C% q[O8Ÿ€E „(†EëT¨ƒj’µü{÷îݹ0¿Q–ÏöɽÏî}W¥µ;¦I´ÁÁ|‘A1U=þž—Î\ÏÀ'l6D¤œ®Í$¤ß¾cQ6nÚ W®^Z“ý>wîÜšèÈ:ý¿víZž¶Äs››Ÿ[SÀaæ¶ÓieñX_[¹Þ&õeÂlDŽàȉÖf=4iU ©X‡S— ¿8¯Pë ‚•½ËJÓYJæa‡‡5ùûxì²xÃ[™=æÕ«59ã,°Þ¬{ÖKÞcÝ=b+Õ᪥³JYp»¯¶å6Êã2s$¡ ·ñ½1I÷ÕËcO<&™¾úŠxÛÏe%ÕÕ¢ éå—_R#S©a-›µKZå*YDËË;µÎ~`*V™k’G‡/—“ž¿MbÊ.:à{xlFà ¦éÀqç3Ûåþçvæç©g'¤k8¡z¹àó\¿˜Æ.ëÌoÖï×íÚÆh±¨½xŠp†ÄÙºu«,--iˆ ”dWÀ1°-¬ ¨TOòÜõµÅFv=Ó-¬WXG#Ù´i£ò‘HUÀá6œšsšdUsK³ò¤{'⚘{†xh[2wÐ^Îç+Еþƒáe7xž…ª‘?>Oa‚¤©uϲ® ¿ºÕí¡`ÄÖS€ÄI©}s-ªß‰Wœì®SÏ83Р•e,p^78rйºfK>ÁXé„ã”8´v&“¿sç=å;ú£9Ï38îðÀT\^ãµ¼^zÑ4§0Ý¼ÎægAâôôÉ쾎5FØ:¯||N&v¶«b‚8tá.¦±ËZ³òˆ½âò´Å ¢};÷Åè…ðž¾!ªIu4)Çèz­kÙ,7?¡ž29©\ÆÏðuñtyëøÀU¶ ПéÀ]NG±ˆŽûêÖœü*tõ¡Âl©öÕä]/# <²µ¦J?ª4 ‡Á©J§‡.%@l¬q:pб' +|fÍAPÆ ¯uÏB+d~ÕyÄ ~/ÖÚਲVÊìm‘Ö¡†<Ž\Ú,õ¹m¨°R]¿µþå ¼ ')c´Pt:H¦âš\›?XŽl 8ˆZLVÞ´·3ZxÄ¡0+ŒÜ)‹±›ïms4Äf>ù‰%Y<Ú¥8r{G›âËFXßNUAcX0†^Â@«Ç[xm/ƒPº"N¬e„Þ3ÙTI¬ùöÑFÙZ·1_Y;€uÆkÆcG]ŽiSÛ¡>•œÅs¯Ä°†öÅÚq‘s€¶He)]¢g¤+Ž#ƒUïÝ·¢”Q=d-9)ÜQ¶môBàHC,@‘®k$,—ßí—…cIÍÙôôuªg}òäÉ59§=Ëõ¬8òC÷ˆ¡!Òƒ¢=x ^Z¼£ö$ݶSiõ:‚4ÄHúa’¼aKÞ¸ 0I/Ép‹Ñ¿ ÆPb>;7¥Ýq•ìG[Z7ú¶à­º Þ#½ ¹O”öb”‡ç³E°uÞûh‡ì½<(鎨$r‡ ¡£EË ixéìË l÷#înÜîOmm­„b %ãº8 “ûã²r½]v^j•¾…<±ñq-r¨~.g8béFiljÐöðå¬áb k~ƒÜ‚S;.ÖÈn"Ú5²=Y–›Ó¤\;“Æè…°†Hȶh3'„ýνbÏÁå>t·]®}8°:?•+YI¶7)åñƒÞW„=c8ÜôÈ,ܳtóùªñˆÍÆÂ¥G¨Zõfg¢$4öïËÄxòÁOÇ88)p¹Bñj?ÄpvNô/î¥ÑÊߢÔøŠRŒ0•}dý e ž,Ïתwkõ„HÀR8·ÉÿñR«¶VÉ…Wg<bë<ùÌ„t$¶ X€„Æ®QlãÞR c´Ö{À£þ2¼P´HãDJ!5¼ßÚ¦MÒÙ"¡ÔVüGã\‰õ¼+wÝ–X­|ú3Ÿ^—ûÂálh…ní¸XÛÇÕH¬w2.Êþ±Nhqý½y½¢òÅZ*±ß˜â=’ÍvG¾b„ æÑ§;¤&¦ë¾º1ð`Ån”͇îÞl,Bø›„߃ ÏÊÝaõv(´ ”Õdñ ÓË(¤Qº ~æg€GaˆÜ(Z„G``¯¼ò²vämë Ëîsî8ò쾄ôõ÷æõB õà=¸…ÿF/™ò^ ;GÓ¾°u^~¹M¡êó‚ìv-ktÀû&)¼ƒ„åó0n¼x©…ðWMÃ&9ôt·rä1Òpæ)t*¾³+Ÿ;®„¾t±sëÆ <óBÊ&ëçýœg‰÷™lo‘àÈpÀ~±ÿà•:Ù-Œ/ûÝ䈚ˆÐv]H;b3ϾÖ#ãËqÅ‘—æ“6ч]#ä‡îÛ5çdcµÑ iÀH²Q[$¹=q‹ŸîÒL/À> \ ƒãTee”ºœ04·æœtoMkG#2‹,=MC›BõÚDÔŽ\Τ:Š.ÒF?€EKŸÝÀ»…³Ê=1§à¾ðyéèjÓ`¥Ù5ç´†0^pdÞ›ÕˆÛQ´ÌµùYB³¾þij©SA#©I"3À'dÚ îe7H<àÕÕàq°¨xÉl8P#\ˆ#ï¹4 ±TsÎK‰©1¦=Q!E«0:(¬ïzp/¸o£c#JÙcízÊ[QDZ ®Ó$9ÆEdA±a½ø©#º3‰S¯ƒþqèóšÁ¿(›e„±ˆ:FwxÑ;‡¢òÜsÏæŽ·ÞzKŸ“eÖ“Ùï|¾h4"3â%á53g¼w_ÎHkOX«9ß{ï]õÌ‘6ù‡êCç0ýæìÈàÖ…vE[{ë—•£²ÿvåqd¼ªìŸH>qz!^ogNƒn$o8}5jlnÐΙî°bÍPÂð ݼ¼f<>¿ƒûUHÑ2íÛ¡]™ðH5s§'•/<0“Lg‹bÃF/„ˆOÂü®÷™C‡Ö<$7bñ˜p”bT¯¿³ †Õ¯Q>ñô¸ôM¤v9xè`^ÉÏ®8ÆD^$×x¦A«\%™øññ±ÜÆÛ,=QÙs£ý«fƒÞYWW»F/„gȳó: i•ðË”R1öC1Ê&¸ëÕëW‡í‹ÉÁ;½Å 8r?‹gMduÏutœ1Âq±ß‰ ‘ 司vŸ?C\€#÷MEµz'â«#¶.âwß}w E©P›…á¾~ýšlÚ¼IqäJ%4˜„…mm­ù - &%¬vƒ…H_3Òck’mÍù…’ Uк²ÙLž:ƒÞ†[´#/¥“ÖÁ¦+¤†Gˆ½øÒ ²mi~Þ."<,F;o‰Ð’~fÐz(ieaSeDö»°€ãÜËÓ’êj’C·Fäþg¿òz]ÓÉô¶”#¿1—óìÛtÏÎNë{²F^NA»v\0dh=DAP²£Ù“6q%f¶'¢Æà ڕ_á·æœ¬ ¯]o¬‡=Ñ£ÛµÉEÜê¾4·4j'Üì ñðbRnß¹¥k“5ʺ€ïìô™ÙãFxŠCIã^Š•m„ qä‘íQer|U°&ì×­ñ'ƒ÷ÙÏ}V¢±°DÓM'4˜‰l‹¹ñ Ytæ´v áÀP9LX$@Ì·w¶Ú&èÙ5¾œ’ú\;;7­É@ƒ[¹p˜ÀK‰·j’†þeŒ:Tëµ½âÒF/oÿäÔ„m†yù\Ÿ´Äk¤)R-;Nõ¨qÞR½Iꛫô{ùŸýôö²päùCÉLÍLj–ÜÊR¡ØÄo‡Û(¦í€a̶¥ŸWy`ˆµêm­Ú Á2aø€köîÝëˆ{)ÅËìEZ¸¸`ËÅšs"¦ãwp}·k›¤,ÐïŽ?82*mG>óʰFzä7ðø THQ–i\8¨’d¿ ²f0xT¯ž~©;PClæ¥wú¾º<âBOë‡~è‡\= ³±ð>9±‡û¥9Ò°Š#?[>ŽŒçGuc± ÀK!¡;i¤2 N9¨\„é4Þtª~cD5Y្ìA×eÿb†½á‡ój" soý´g@o382!c±Ž£wF%Û×"6=!]ãQ5ÈU5›”®vùãs9/¹ª,¸‚y÷Ë8r"–†Æzõê”8PÙlA ±¡Ñ¹i;ð=Þ úõŠ#Ç<ãÈ~'¥ÏÐ áôNLL¨Ø[›%£‚”&kŽ"ˆýöJÇ`Sî¾6çö]­&Õ1pÅTõˆœŠAzNí ·k›¤,8òôì¤V™‚#/Åeßþ=y½òä3œ46Ìûc=³ß±3$4û§bžð`¯Æø«Ö#.ôæèÈìäiXÃ#B‰d*©eŒŠ#ßñßû.ÓÒ“/†‡Î¢DgÂIú‘ZƉ 7~viÇbÎÈfKN*,_ìÔ‘Í[6«þŒ‡bdvDü ?Ÿ¯æÀýÒ5­ˆ‚Ô®‹¹ ÕDI&›É‡˜n»¼/¼é `§AèºwßÅ·‘µ¤,Ù‹q3ßõ @ÐùWf4™”&‘X]S­´$Yh\4±õ»ù)8òëYÛÑ¿ XY! j§ÏžÒÌ}çhXåX½p4©cÁ>A1Î$¼xö {’¤sK.‚X¹ÐæY›Re½ºæMê5WÜ#¦,pvv6ßýÜ–ÐZŽø3Íxž]Ýš¥dÓZ½^+,à€¦åg`$ÙtNô/)á)Yn’ …^8€Ó&ÅãGÁ &›°­£U–/u>`0»'Cz:Žæ¡éH;s(-6>ž ÒàÈs‡3ª¿P[[£P˜~/‹<èá”8dW…B-Ò®—ţݾqär'E$»–wäõB84™¦!ªVZˆ#sà€Ï+àÀ‹óô3Ø…IÙBÊ&•˜@ðfQRÚ“ÃOw?Ð6 —db½’(špò^ˆÁ‘yŽõ ÕrîÅ`Ûp#/ZÅ‘ɘÔÔÔä帷n”M¼éJâûDT˜Vç¼â‰Ýq9ÿf¯gm‰l]ÎñZû{žl“ígR•÷ˆY”œplt„oÀJû¦ŽÆcÇÙvií‰hx͉gNj¼“H(,àà«ßÞe *…œè_^Þ`R, ¸”f8ª@Ýê‘¶¡&m“ƒanŒTÉÔþ”vfX¹²j¼÷Þè–ƒeê°RîÙÞÕòOô¬Â*V/.¨ÁsooowMb´0LÐ›ðæÆ¶·j›¤u3ÄŸÝ©ÂQx…¦¸CGh7Ï9dÛçó9éÀÍŒ2Y¸Àæ°vkÎÉï:5[-Æ2ù r&Ú+¤l£”5SÀaæ™çzm êôÞDYí¹À‘ž¢ÀåÈÑÃy%?7Ê&T<ÞkÐ܈ٓK`¯×5ÔJçPDö^o ÔîSYÅi ¾Äƒoíxnu=¸×hï¾Ýjà0F€Ý®€ƒÓÛ¯a¡œ˜6&~ÞºògsÞQ¿Ô•XÀ‘ék”‰=_á(8ÍQÏ¿1hboGNjHÿ`_­ÔÀ0™l»Ä¡1Z„—²õõuÒÚ“}W•ÆV CœîŒ(Nj"+/”“"üV£b¼ÅŽŽ¶\8üJ_¿§z´¥ø|20dn¬i'ѨRП©`ÃðÚQ6¹×¬oû¶/®ù]#Êää ™½‹çMuçàLôƒ9º‘úæÍ2µÏåUÃ{ìN·²çÂàÈã;b*ÑŠn2l(ö8‡#ò­Ap8 §v\ä°‘HH‰Y<™, G®(kÂß°¹ü*ëŸy9--‘zÕÆ¥`‚Eäæ 0haä5sÄà´^Þ½SF–%}¾•«]Ú&®!]|©&+~ì±i›œÑ]‰<ŽäT>ò¡Uý‹O}ê“ërox>Ň,D¼šÜ!QßX+‹ÇºåÉO‡#CkjiT˜D‰b'\Ø £ÂKe%0Ecs­­>^àÜþ„ÄÓÍ‹G´lÜPí(›VŠË#aýÙÂöíÖk{³o€/€1H´"éTÀ±ëtVíµº†fCÒ3Ñ,ÙÞzu$¶OçªRÛsÙâÈ/¬âÈÉl‹¤ÒqÅ·á6;E^A »v\¦˜ ç ¹Nœ…ÅÙÜz­–É•˜w¹’1µë$¨B‹Äiø·ýl»ö‰ GCº8 VæVÀaÚN KAê÷ K-à€=±|¹S#cp%ÀŽwç^ol’ÍUG>r¿/pƒÏ´øîâg˜vžFaRZáᣇ´\vrg›\yk>ŽK—.æõB b,BZ‹·>žû¡¢Ÿ÷àõélT'bÏÅ6å oÙºA\ë¡…°´ 4ƒ#Ÿo•lW‹î3pdŒظß·A”llG±v\ZýÅÎÇäÄó]ß#ƒD줹¥YÛciðŽKúF`/¸yd·Mo³J 2ÆO~‡GXoú䋃¶QA÷Üžç…×G;ô–Ñöƒ³¢ù"ÈÌ»©êAÑGþÌGŸQJ^¦3*û¯ y‘'—ÛäÒå‹zMŠsÈÈãIì·pÍ #_y”éLG}ƒ#Û­o¨×Â6t1U=r†å°žƒ-Þxº©äϼ֩’–X•4†¶HMÎy ˜/yzO\»‚Í´8•;iñÕØ\'wîÜZ—{Cn¥X;.•ØÙÖ”ö/\:UGÆ þÁþ±¯Éï>`ˆ9FF†elgª¢UeGžÚŸ–P¬Q¢±ˆâ~fQ»p÷£¿[lp2³±})LI¥“ŠÅTêPòâ@ƒSž{îþàÕí¶Òˆ‰ˆübìnô/Œ¸ï{xd@›‡.•€#SÀ$*–U/„÷ê¤:} ˜V^$¾`w¸‰Ý”21FxŠð¼ÛÚ³št³z°vªz&: Lö«åëgŒŒÉâÑtÉŸÝÎSY¥¡í»Ü®^kCËféŸn‘xÎSªšËñ{Ýd’‰$×cÀ&14D;U=k#d¢*ÖìÜ´&'sÒ…÷ºâßýý?ò4èG~ÂÞ¢Ó¯+%Ì>öLÿš×Ùém.G^:Ý&Ù®U™ +4·kò(¨amÎi6ªUèZÔç"„¡Å„§†‡•˜½“¹Åpá|^?€÷ë—oç X^ñyŒ^©ô/ðÝÉé ¼&—ÛåêÛóްoŒ~Žô-£#b祽oú¦oÒ‡ÊÐÎÁh Æ9ÕÖ,MõòÖ[×DE ’“ÖIÐGúá¿ßÇ´°*ÖàÈCšÙw¥=°û­ŽÈ…E$`×s°¾­ÏÄ­2Æ:(»fh!–³]¶†øw~ï¿yšŽ†˜ cWÀAÈÝ3ÖT¶¿QöÝèVÜsSÕšuEÈ&C³ïf·t F?ºÿÔ]}ƒnú½Arhšsš‡ÔÕÕ¹J¸Ï÷{×Ýs8‚•#D‚ Aè@v¼Rpx+݉ÓþƒÞWjÞ€ÁçÀÇ 8`ø„w¿¶KÊÂC6¢0Ë»—W1`päç'×pä<Pyr_Z5ˆ‡†4Ic +1(—e›ÄaasN6¡U;ݽÒ©—™ƒ™²Ÿbüa69Æ—ÃN,øFÍn³XIÄSG¦â C†‡tñ…1¹óÞŒì8Ú.±d³V«QÚmÊ„ ›sZ 8 ÃÄ M ÏÔ¨ÅÙÑ¿(Y·ÒÎè10Ô'Olx"¿øùŒ°58PŒú_á€ºÅæ1 Ÿ'‘Œ¯)à0Î0I8ëkc;¢’êª GNJ8Þ(]íšôá9ªê™è€ƒÐy5 áÿ…ÏW´¸Ã*dmÎi'Œ`÷ö‹ŠwRýV Y‹8šóú,-â)vƒŠŸG&yŽ ë¤{0.÷?1÷•ù᜼Ò+™Î°´„šs‹âê½+à0 ?†CÁ‰þ…Ñ2×öZúŽ-©qñ„ÙØvo´õ7(ÞÙ5Ú¤åμIUëk^’\n“äW¶3¤åéo¿ó–&íTõüpnp YÖ4ÒÁ™˜ÂÃÇRMá°ßˆ èäÌó7¼êÂÁ¡fD…Ì@ÏXÍ®€ÃJ«ÄËöÑÑ}…\‘eÓâ_ÿÍßó4 qÉíu*x“îmÐâ…Ž±\HÙY§UeàÆ¼Ž\ ïÃbÃÆ ž{eù-dÀ›0‰C6·S⬽£]ñí¾ÉD zÆ×-PÀ€BP Nž”ñ@!¶“ÜÂ8577ʉۃk ±ež}fD†¦SšèAïú•›§­Ð0ƒò^6ˆ5) ÏÏ6Œ >3mœ Áñ»ÝÒ?RF@$]-›së\”ÿš¢âìÈ­ò ÕÁk«8rõ—Ù†vÇ¡„á Z’ˆ†Z€bí¸0jÏ<ó´ò¤;"ÚHt½Œ0˜}}Cm^/„µÀp†Çñ ÚáçÁ‘)`áyÓ>м ´B#£PLUuæ71h$ ¯m ñ¯ýÆïxšeb[cñe±Å‘—Wqd^Ûm#)YΤ y÷î]ò0^¦“§aÂ#¼ÑwÞ}GZª£E 0Ê=xB„*eBZt–°x’F/Ä$ö0T‰L‹£¶Îk¯MÊô®¬zøîaJ)ààï:yèNÃZaõâü„âè… ¼ŽÇÍÂÆã+»qÊ܇[%Ù±ZÐ00©<Ú=V²“@ŽyxaG†?OÇa«tTW˜ß°&­IYT?úìGŠ#'[[¾Œ#WÖwF4ª5z!¼§‹/:Rî y";ÔñxLŽfä›Ã24š‹~çtšš'Z¥Ñ]çÿ^` y±ñ{æÚÆÿʯý¶§éhˆÑ†j8çQ´ãKâÎ*vÿŽe=FÃJ9Y\`žtÖ(–¼q$‰¼´ÉÁø˜EŽ×åFÿ¢¦b=Xa4Ù¬ð‚ÜžëRŠ Ï‘D‚1~NÃè…°"q58Ø'{Îv•dˆÍ¼ýîŒl?Ò!áX“ôöjBYA·kÖÚtA.epMBær°R~—ÂpdBo»nÅv± ¨BÛ{©M–϶J¦§^6lz\:G›7BàÈ3{ÒÔR«|d¢¬J5AåºFœÞ)qh’²ŠÐFY¯äd`4”rùQh#ê¢0Çè…`<íö2ï‹<Ršf¿ã`È¿òΈ\ÿpLçÕ÷FeédVB±zÉ´¦UÜ袘ªž_I^0dò cˆùWËÓt4Äx9Q ð–ÓÁÍû1ûX8gaÛ¼ŒïLæpáÜw£S:‡bRU]%GÕ}cWÀam„Ìg6Ê^‡1Ä¿ô+¿éi:b³ 1Q_ƒ/70“Ã÷ú¾* 1¢ídø1F&¼0}õüpX)ZàjNãÅ …û÷ï;^Û-6Áù‹çdÓæÊ×>t×GægX|HâéÁp;0Xlx–Ahaß 8>¿¿ÕŸ.˜gž–Á©”& 8XŒg^¬€–ÇzU–}áë¿ ­=!ÏT*ëÿG#ÒÚß Þ2ÕeàÇ©Î:Ù}®5PCLIR'ÍŒJ0×bIYCOåŒ&ºÍí}!‚(à€côBðØi ìV¸žœÐ 1ûæðÎϾ:èhˆÍ<ùs挮k†dÅšZbc¿sÈ“Øìèù2ÂàÈ×;Uƒ„¨´¶¶6ªê6BfŸ²;Œ!þÒÏÿ²§éjˆ‘.4ÕKv-NG6ZKÛó˜MTDÝ̮Ѩ8x@  „ÐáN4»ÁBäs˜®ÜäήNßõ•ÖF{¯wK×p,·ª´.ßTd9yÆåº~Þ‰þeŒÈ>Þ{ê·“:žI 6#ÃÎïN<`4wïΡ9}o(ÿÚ÷f•¾t¸­l/ùôýa˜L)l1<2¼;wSÕ jØ%ÙXü›7¯k׊ÎÁpž+ü0&^$-ú¼_ œ~k±æœÐ Í!]ê0ÆÑŽþEtlµÀRwîÜVÝéî¡èHÇ:éf]ûF/ =M“ÕÂoÞºßY;xâ{®tbˆÍ<‘‹”úgVÛ»±ï8t Å¿œ!cm ñÏþÜ/yšE1b3((¤hYù«Ch"¯ä< x³ÙžP¾›qb7`¥»wïV\‰Ä9‘œ01n€Ö Ãö÷NgÁùU@{î`¡ŽÜê @³1ƒÊ-k‚Ã+ŽŒ·Z*ýË+M ý‡M‰ðM8Ò"'ïù ¸ÞnVÇÂ뀓nMÊRÞ_HÙä¾ò 2Ù´>ó©Ýqiï Ë×}þëôyãPÁ"juªŽ5x,82ûÏ¿™ŽRŒêµ÷ýdÅ‘Odµ!82¹ñÌ!CüS?ó žfɆØ:o¬ž§®!C³ˆ8í¸Ñ¼aŒ ‰$Îøî”9ßu[Õ¢`zCñð:¿² ¹a@ ”ª54Ö•LÁ;ÿæˆâȉl‹v•ÀÀq >;× :ùZ= Z¼[5*¼ Ó­^œ×AÉ'X4!)‹cãÃ%p¹Ñ/u[äþ«ÿŸÚ•Rï½ÿbO`‰=pd®×Ö•P¸YßúÿR«”v\”“Íï©0ŽŒ–E{G[^/„H/â»ÁÆ7z!æ0™˜˜Pݳf)šjí‰äöIVÊ™pß­€ƒ=ËþõëHÒ¿hìPHÙdï8¸7眥ְ˜ˆ$áÖÛýmÓÜ“¼ˆéÐŽ³Q][µ¦€ÃÐÓúfBúÕúz]óféͽ^®—¼÷Z§t ÆrJƒœ9{FB3(ï7{ÖâŸüéŸó4}âBê aƒ•¢ea8O9©Äð¾é¸gyîHV–v,ê"TÖF&£%Œæð0szÁíåg1Nm}_Áž«]Š#ƒwÒÇÏôksò ì€GîUʯœ A3`apX˜*µ€£)\%éÎ%î÷OF¤c Y6mÙ ]ªOYpä 'øtÿxRqÅÏ~cSµ×Ü-qˆÑbÍ^½~EÃèîáHàýژƀ2z!¦Á©Ó¡DäeôB€ÆxÆC#*‚U¸^é·HßÅšºj¹výêù 7Z¥×$õL´ Èûsº¶×aôBÌ~ß»ompÂðRT5Ñ3½ ràf—œ~i@õnªj6Èþ]ÁàÈÏöåîëjŸ½+×.ç5X רâŸø©/yšeâÂÖÇÉnìÂúv<Ú{÷ï*ŽLÅ íèK1„HL²hñr ϸ6^®SòŒÓ”MÅßÅ0&’1å —}ª_ø‰SÇUÁêÁЖǮ€ÃjÖk?q´ôŽœ—šêhéÝiY8Ð*Û¶+\ŠWK8Y£8r¢µ^=Y<Ú  òü¾VÙŸó˜ÖcW°R݇$¢¡¿5·4*ŽL\F˜‚„êYÇÖ&Šàt°JÉd¢*_Ýz!Ò]|h[B“+{—µ@ËNùÍJ«Äè+w8(N3àE›k{’`áf¿³whü Þ­€ãrÎSž;œ–ú–-9¼Q:Fš”Á¿O½8 ¿JV—/cø'v“ˆ®V&Ž”Œ!þñŸüYO3Cl!+E«ÐÓ0á§?uãT#8áÈ;Ïwh˜/\ ¼×”$ÚeÁß¿¡:šj ,q¨8rîA(jdP½*<-þ–[Äõõl¨M›6Êâ¡6¹û¾¿’fôŠ«ª7*G¯zåL—DrF¹¡y‹*´ U4æ ÛAD^ÖT±v\:@»"mP¹œFš`¥ÕÕÕzˆ£S‚ÐÛ)ßaôBÌ!²¼{§LíK—¬ç=} #áX£6P*ÀÀÓï%ï·S°{ÕÏ3eÖ0”Söûk¯½ªÕ½¥Ê‹o¨nÈ¡;«<㙃)U‰ÚQ#¨ÄÞ•wGeÛñ¬æa:ºÚò†øGü§=MWCLWد FXÀœp…Å!xlˆÝt`@$Y!ŽœlkÖh(h„0 ÈÛ 2¸„åG&ÓÚÚ–UE¸Àõ‘4Ê]—Ä,1 Cù¡•¹S†“÷Ôà9öëa1¿¯Mn~Ü[UÝÙ§Gdùdç¯r@oAb¼l YŒ^ɯ}ò¬, ü7ý^c´ðúPM«­ß*CóQUSó*vÄ…Ô#|p`’£G:êLˆ¯¨çÁ„!Q»ÇO3ÛígÛµ;9I¾©©É54L7U=*;TÑœŒ©¡‚–3hñCzìñgúJ2ýóa §«eþHZ¦÷'e|w\uÓ?öØÇÔCœmñÁ*Žl ñüØOy𮆏0„ùæoþfß *IŒ¸5þä{døŸ<¦aßtLédpß¹sG½MŒl1ªÞ'†ÓÏÔÔRsÃm³· U ‘E\¬€Ã.WbÌ¡øåÜ…³ŠwÍ$ÕÓ­T…Ÿ™n ©çe¼(àØ0N%ënãöíÛk¨NââN–E©ô/è;vnW}at†–ˆ#ƒ¿·µ·)e‹¿c€d"ûËnpoŒ^ˆÁ‘Ü/C ɲÖëþ[=Ò1Q™;wo+ûÈM¿—õêTHTéC㥀Môx{­tO¶Hÿ\XñãTO½zÉHšfûäÀ­®À 2Æ£êgÚb'oÀ7ý»AØe6t·k³àпÅkhh®‘wß}'ŸD‹—pJ™Ýàý'#|OÄ×pX«ô _C3y`!ZÖ'Ù;ÓÌ; JÊxɲºp€g-øR(^ý¹Ï}.çIukÇa <ŽÝxèF®2ù£`ÅxÄÈ`À­0üê6`ˆ TপÇ!zäèa帷õD´#G±G¼or¦¼ÖmPÎOþ¤,ƒêœ7 þ„Áu†“RU½EFF‡µªÏI¿×zoqŠÖkLLÊØ®˜l7÷{ è†Üè”Ëoƒ#§”Q^ÌkAbîÕÏäw0Ä`HnÞ!Œé0à‡ïJõÛµMå §t¡ÑÇ`;õ´"¬$A@1wÕ+Í-Ú´tjm‘™ƒé¼®Cv Qõg©¶+wó7¡ì‘PinnÒÏÄÆ ²€ÃmR´(Wecá‘P©®©–TkX±_¿8r¹sp’çôiÝèúè#U,[Ú¾MU¾èêlÚÏ·„êµg4g§õnÕ Á#†õ‰Ò¾½§bNÊö3m’îK8÷·ðÖŠwSÕ³îÙr”ãŠñ•á(ïÙ»;EÕä<䤨JT×ùåaÖä†x×Åië_ÂÛ´0ØyVM ¯ò†ôÖ²»¶×ÆLh ÆÖžFØ[JzÀMñ­RײeµŠoG\=f 0$Á«ƒXäȇf{Âú¾}ë­·Ê*àp&¹éDÑ*¬Œ:~ò¸†ÍcÛ2% •3§—[›4úЦ8 œ`/cœÁ‘鈀1“‘¥´¾;(Cq=Pž{þY­ÂrjÎYØ6È뀣ÎaáDÿ"7a<#Š0¸·De©ŽÆ\è?”§ ñþ0°ðâíb8F/„µ dGi<ó ûçô+&íPEœØS&Žœ3ø#1Ù²e³Ü»G …~¯ÑzáÞr(9õœó; á<ìMCcƒÞW˜Çžî}èF˜J¼À=⯨>é‹* O êL1]Hç~"Õ^ñgë ÛNÖCÃÁaRjå^UíÆ2Ì&œsÙ©ê•SÀá–ì·ƒó¸ÿ|ð¾Ú'xÞ*ôÁÃ1Ä”CîÛ î ÉÈ „H ?Ãæ°óLxHZN9ýÇüm(ÜRrÁHÏtXžØð˜z¿=ö±Õ.Ô¹Ó&28‹ÚOŸ¹Rpä±å¤&öLß®JT¥¬-<ËBå74h`ÑXD¢É¦UùƒàpdøÍK;¶åõB¬­{œ¼qø¤¦K ¥åýS©¼¶ÎËoOÉìÁ6ÕÊ…pOY¼ ™1ÂNxª^ÛmY×·ýËwˆá6P¹è›Ü'>[9>Q\mÓfõ„1̃‹Q]¿&*äk©í¹qä}i}CÃJ×´2)¬‘WP£”Ä!¹xÞ=}]Ž5ȶcÞqärgK¤®r±çˆhy4Õ,­­ÅåÌ‚qò¬‰´bÙá ›!ÕöT Ãh< øÁtŸGŽ·×é‚ZŠ•µ²ÖP˼`–åzÈVЏ›SâU=ª¸fç§¥9T¯p·Þš.¿€£¹6_‰ŒÖ3ÑÉ;$CO%%ïu¹ššj9zÈÖ›yýƒÙy®KÒÅ‘a„2Ñ"èn´J¯m(Bp¢y„úF/Äpqiñ3³?S’¾8ä'¦ö§¤>´E×x,·ŽÉ#“;Aç"mÑÄÂíVñ¯ ±1ÂN‰CkRØi||Dñù‰œ“sþõ¡Ša˜­íéÊ{ÄN‰®lODqdÚýØQ´Lwp5+¤Qi/U}ðÎù¤{ƾJU¯©ã¶èmV£¤!ZLèfôÊ^7ßxƒDðÌBý^sM0øL&­‡Æø¢™q£@ÑÆËé½³VðRùY~Ɔ¸µ'æj„ ç¡;Ò>“êê­ò‹ϫÑÇÓr+à S†ßµJ¡„Qèò3X 4" éˆRë¹Ô޶¡&Ísäu¼'BI×*ütd·ïF·tÅUGfûö%_ZÊ^ÉËRÚqa{8¼T'}&Qr1ˆŸ‰ì/ìºyÄN]3z'²ió&Â`Ûa:VOƒì·i}R©AR€šºé‰ËÞÝžu%Üêøƒ˜l,êÕ%ð~0蘮^M½4;´ž»éÀ€UQ(ŒÑG~öÙg‡íMʉۃž q&çÂõÆ»ÅË%œÇ‹q*¾àP5¸1 ˜6ÌòÅnO†ØŠ#äpÅX,šŽ‚ÛëFÙ„Eä$^^ÉAÕüœ n‹—&Pu½[ü1…)š¢[¥¦q³FsÀlP3q.*±®=޼ _~ë_øÖu¹78ÅTõ ¾ÿþ{ê0¦Ú[dÏÕ`qdß`™Ájy(±ŽL‹xZŃÏR@`Åt~é—~)o ­œb~ëÙ݆ aXÈŸûšÏéÍŠg›×$4ö$ÔL¦yN60œUØ^G!E /Òï}5ý è_@,ï‰Åà„ ³Ñ%00ω ñmrú…ÙœjÏ…Zu261¦‹ØèØyÖèÃáe£°pŠé÷š±¥*3™Žk)²Yü|ntfggmCX®Ï晘…ÊFÚRµEν6¾ëÍyÇÛŽ·ç6Æôš×3½¹µ»’.Ë _zkJ¦÷eµÕ×ÌÜ”|ã7~£«~oaäÔ°6çdpo8L3­)IdZdþhV+é¦!ÆS_YÙ× AöÀo¤Ë}vÛ³^š,ð³$|ÝTõL#dœ ˜2Dª±t³i8áÈ|oiû‚îK¸ùÀf{Ä£;㪿ðØã¦òTȘ9˜‘–H½ôôvUÜgÓ˜r_§ëÆhñÀÀÿ «CZ‡¼^ ¹k4ªŒ^†=Â{sb<à ð¾8Ù1`|¦#GÉÔžN¹ôæ¶ü¼ðÚ‚ÌîVì1}p]·ë„fVHÃÓÂx*nŠ}lHkÉu)ƒjCò PlÄW_{Õ¶€Dª»Q™c»Rrþ ¹úît.ÜÜ ›«6ÈÉçGÁ‘wœéÔæ43Ž ¢rÓï j¸µãbroâqú©Õiq]‡òJOþ&p;{ ÕC¢=(­vk…d­•…ÂkD?ÈØ:5ç4{vnn®¬CÍ­©ª±T6 õ碢*íê\ˆ#·DëåĉyÊ)•ž{Ľ3aR&ÓJß§ž©°yª¿"qx{LÆ'Ge=|fhJNdp ÙXßû½ß«8úÈ”wv РJkÑšÅÃq:ŒX D ,h¨8x™h°ðϽ<·Æ[çÒÖ×2à·Þú¸†ŠvÞ€Õ ç`(¦÷ì4ð€¬åí…ô//~’eæ}pŸÀù¼n'Ÿ‘žÉˆßh¶Nâõê)S¦Žg{íýéšëײpä'¤{$¡¼^ ¯I(–SÀá60jVµB»æœ°Z8¸ŽŸ8¦BJ”Ï{í YΤ[M&›Q#Æ~2}÷Øovƒˆ¼{÷®V¾ûÞ;ÒÔR£åõðÕÍnmÎi·gÁ’ýFÕvMUM«'Ó™çzåê%ݳ½19ñ\ŸpЉÜè…ð{@…{Äg^–Í[7¨Ø *d(“ñÿtoƒºìNµ‡|mØr ªRN-¼67Áð펡hÙÊWzGcQÕ0ÝHFÁ˜pJ<²á1NÆ«¼pñ‚ ̤°u¹3‘ó$3º¸ŽI,zHLZ 8ðÔ½Š³›P´ðÚ^#£B×¼y<¥lw´$CyþI]«³‡Zõÿó1It6¨QN澉#/¤Õ Ÿ9{JÚÚÚÖT€UbàmkÇEq¥–¢Yn¥qdª÷h¼€§Š!Š2êrNkÄš¬Å€:ˆ>÷l¿\~yP&¶'õ¾=vH Ñbq+à0¸´—Á!oR»¤¬õÚ¬IØM4ª ë:*Ĺãùî£ÇÛ=z Î¼8È“–$žò{¿œ¼!Áæ·’‰dTàJÖĘý ÙAsm¼cª¥Ìt†U|Å+ެ 5Š­¢®-«ØbBóâ=@T^éÓS%b3O??#cÛ[W¦#6LˆBoÀªfMpªyÁûXœ¦Óu9‡^ ½âJ-àX:Ý! ‘­ê=ÂØ{µWšbÕòĆÇe÷¥žÀ{—Þš”é½­º9)'Y©Á}5”DâMN‰C65´ÂT&¡¬H±V¢K RuõuróæÍ|Ò¶É¿øEÛÏ€Ú"ûVö»6ƒè ˽OŒçç­·Gdá@Z(UžSÍãÂü†Ýžõ+ Äfm|êÔ™¤âgδbÑ_Uiëy2Âv8rs¸A²­i3Çлy„ÂÏ<óŒ<Œ×Ó’{¯¥pÀø/nŽWkYo¼½^BÉyì±Ç”7;¶œ’ oNn<æ·iÓÖÂMZ©ˆŽ$Q±Ä¡‰¸‰¸êøÒ¬ H9žiÑÜ Q-*w07‡ˆ÷ÃýÁP³ß¡(ÆâQ9xµs!6óîc²ç\›d;ÃZžŽÍT¬€ƒöS~!æ*LÊZ¯]Ì! Ì#^# V žE–•“ÈôÃcãyMÙpð€ý¶°0F;ý^Qš<7?#U[7k»·Ä&Þss¸^K˜I@§šòZ·ÍFõ§1\Á £±°ì¿6âÛ[çòùAiïO¨‡½mq[¾w›‰ö忤·p7€Û­×Øp¯LíõHY+0Ú@K';äij_Á‘ùD"Ï:§öeeeÏî‡r`QÞîÖŽ‹ÿãMÓ¾ ¼½w2Vvt»|©SËÍñVMƒS„”Ћ¶8è…y™ýŽŽ7ÚáÂyâNôÅv! muÜ(›`Ò¦ËI©Ã «a„M#d·ñÿ¤G<¼”P^)Æ£„qBøÆ)L7 'ÕF„1ó[éSHÑ¢®0<Â0!rŽA£!#úÂÏ %Ž6: !‡‹Ò Kü'4282%Ëê=¤[1ÂÖyøÎxG>züÈOÝŠCœÓã„þk”7Û1Sx¯Æï·¾¥jM’îÂʰ€ d…'”L[0÷r¹Ã^Ù{·ÆŸVú´Áƒ‡j£[Þ–*kWÀAÃV£BäTL±Îè…°ßQÛ™’å“­%b3/½<(#óq-È:qò˜z×ÖüF1Z¥W'ˆ¸Ôûÿ)¬”" °!×1rNmƒX<´™1] £Ó™¤¬ì]Vî_1oÀxÙhízÁ¡ñ¦¬¡h9](™EZ•Ó²œÖåÖ¤$ „cÀ „gx›œÖvƒª9Š'÷¨>ã ¡€cû©¾À ±GYjU¦ÈŽ]Û c“™f­ v•–7eƒ÷ôæ¡DT²]QÙu¾Û“ÖD¹º¥Ìg»dzvRÃfÞ/ÉhV4þô:ˆ¾xî~! ‘Á’(›Œ&9ÙR¼·T™l¦ øŒÈIžµ gÀìw*ðªk¶È÷Ç<b3o~G®o¨V'gÅt q+à@'½ãÿ9x&wóvì\Ìë¸bÓKÞ€E‘¼¿¤T¶­/,c+6TKß@žŒ`CÅ 8¾û»¿ÛצDÛ*„ÍÂ*¼6¤ÑÌ%‰@ÍàbL{ñ: Ie'¦™\“Íeáðwjkk¥¡¹N 8JbKÜðmÏ¿6/s‡º”L"˜#Œ§åæi*RÃP´X\Þ÷uîP[ÅʽN´*8„^ÝlN/ãÏÖ œ¬Ø*p£a´H¬âÈŒOŒiÒ:úÅ®ú³ S#ÿþý¼sâ+’ß`¿C½Ü¿¿>Oha³+)_FØGÎt„ºã3ù;ʦ•¥Åzò«ïRqµ Э³)T—w÷ÙàP¹ †ÐkÎnÀä½z8¾œâ;.dåÄK½:ç§$Ý–­Õ[õfóݼIF?xðÊéÚ&<‚yqðÐ>ùâ·­Í"£`XvP ÙÈ{÷í‘©•ŽŒfçhTz&ãrìþdþµ•‹ƒZŒsðÖX 8r[oBš[štsÏÌçw*àrØQ´ØXx|‡\-›_LËÙWÆšFëvgÎ}b};ÁanY±æœ@^ûBšˆ¥ý £EÔyâÔqŠúgã*kWÀŒ(׃‚¦l¢\dlj oôBÌ~')´Àõ7‡Ë6ÄÖyüv·ôŽÆGFwšÃÑ­€ÃzoäšGŒ€~Wî™>nAÍçÚ%MiÅ PWŠáJॴGÇðá‘éOd›óFØ:w]n•ΑˆâGss³k:PØyÖÆ+.g…0N×öŠICÇõÀ‘¨k·+à8ùÌ´ Ì¥dóÖ’îi‘=—‡¥m0,™Þ©m¬R¸Ÿ;›ûÝR½i[ùö¸t&G¾výªötó4‚vÚ&ÉI>LöæÍÚ8´w")Gî ­»!Fpž(ÇH Ânsh"£bÆý§îÊÅKç5ú)ÌAP‚oä _Ù+3ˆõj}Ovô/c´¨ò$ ŸïŽÉ ŽŒÇ¬”B‹^EN:DIF/ÄT%¾õöÇeh&¨¶Î‹/ ÈØÂª€Óé3'ÕHÚpX‹cÕAúªñˆÍ›Üµ¼K•Ûú¢Ú‘#±›Î°Â ЍæÂ³²vs¶ µ "!!&S;}(akˆÍÛ-£»cÒÔR«|En0ÎÍÀ °AüÒßXÀæÚ^ï¢;d}¨}’°hK-àœOKë@Xÿ}ñIv6IÇHT)[Æ;b*Ž|°K¢Ém2Š –(Т “²¦Æî'‹5‹ÁîèjW½Y¸½WÞ™®˜!¦ ‰ øÛ}ô‘>7'iLÖ¹îëë;¿ó;%™JÊÔ®¬Ê…ÞyV–OvJ"’P¨Yó'Zà›Êü>…VZ%!¿ßQL±{Àûæ8|äàšße_šFvIg~—ýnœ-`›öÞÈFsïùv™Ü—ko ¯1Â6<..w”å!ßù`LVζIº-¤I~¼ykG·FÈÍ#.¤a´ðLùÞÒömª‹:æGîÉ{ォ!Òl£Ü@?«¤È ‡W$––H£b²ç_÷d wžé—=0쉕KCzÃà ­ràà¼~êT~uŽ)'-Æ+wcà˜Ð¼°ë”u‡318ܯý ç·Ë•w§=p O"¦á§RZm±éàƒï²ÆÛû¢žº`çqäÚ´µ³«M×$‹ÉoÁ9íY0õb,%ëf1¥ïå (§D¸[=pDRÕjx¦Ô#Y <ý yü‰ÇäêëC3-x_»Ï´jR–RÊš+Κp"šÛ‘ÁMƒœe¹Û–æõÔ†L_¬™™›ŸUV†äŸ“×`Þö«¯¾ª?ðÍsÏ?'íƒáÀðƒ8rRR!…ذVú[!E‹Ê)+¤AÕ^ÐÃp¡íÚ½SÃëáÅVŃ+UaçuB«ƒ¿m 07á±Uc×0 ¼ÊZ‹J¬í¸ ¯Í& W°¬÷µZÆwfKÆ‘#‰Fí}h¨t<'Ö†“~l 04L ŽLÒèÐÕ>φØ:_ï—¶î°²›Þ~çmÕn¶òyÝ(›ë=€UJ-à¸ûá¸Ô7o–ž±fœ ËèbTfVÒвEñb à‰sÏõW„þ6±#&{÷íþêðˆíþýËQù6<2¬˜.Õ:fñƒó*a`Â%*uðˆ Ž }¦¶¶fM‡1œà½…µ!\”ÞVlî¼Ô*­}-j`î?u/Ÿýµ’ÁÁ­ÑÝŽƒ…‰Ã}ûöÉììÌ—ñùŒò{¶!žÞÛ)íyýÓµÀkÂÈŽF„q‘)ŨUÏñúÂk›ª32úƒCƒÊŸï›LÊѧ†\ 8©¸b©¬ 2Þ“¯×è…ð³pÃñ¢£‰f¹ÿá\Y†ØÌóÏÊÈlZ…´Ž;¢‡"‘PˆÓžv€×»ƒg°aã9xÅ?û­â-[7(”³bj×*Žœé®×D_`†8w„£õkšH|UyÄÖ‡ÐhŽÚÑ¿X¦ò† `÷`œ,e™«™xØü»޽·:dkÝF ¥¶ª'‹aæõªÜáÕÓÁ{]e{ÉûowHÿlTqÅîž®<·° N˜´§áÔœ“èƒ{|åÊemØcaùüÀC1Â__Papž=Q…d pì ÷Š0µG6‰&·æœ¬'®ëw±‡‚åtmZ‘O~꓊Ý&ÛB²rùA9Ûц¢F//- ­Ý¿¦¼×âlºT*);ub„ qäÙÝY¥îµ··jDgîu1Êf¹ÒÅÆ7|Ã×+³&‘iRª^¯yôf—ÌíM®å¿7&;ŽeäÆÇG3ÄHrBÉ4z!<ßR"»uóˆÉ«Bú—µ¾ÝË@Â`XxÅx€h ÌIÚà /ôÈôÁ„4Ū¤¦a“´6J}(ÒÌ´HKr«{~•o<º;šÿwy8rƒôôjÕ‘Q„Ãsh¤öpK¹J+x³DÅ‘_›_7C¼x¼G9æV½à'=0\“¼Á(_ÀðnØð„tæ>¸yþÅTõX«^¸Ë$†Mƒ#ávm¢0ßþÁ^ Ç›dáÈ*Ž|ê…Ñ\„W£ 29$­½×œž¿Ñ »å+ŽIcSb½Aâ<ŽüÞŒì:Þ)±d³tu·ëžä/VÀaeìTb€5Ž+{bÛÁ´Üzg´bv~&"õ$^5P᪯«GŒWà…7Ë60C¡ç59eJ™Á‡¾áÄFÇ×x»nsû¹¬†.mÃúÿxG­´5È♌Ô5o GæPˆešGþÜ×|N)yÆ‹ š3kpg·æœÆhá•£šFªß‚,àpšÉÖˆò¬^:±$Âtï…OK‘¼ðx"&;Nddûñ´¤Û[´Ãõ'?ù m@YLUÏTFy=YW&º)¦ØGB,Õî*Ñtƒ¼þúkù2x,ž´e{c<%’^xÆ êµÏ›oM=9<;"{Îvù7Ê®âÈ­]Í/¼ûî;êýbÝ(›$\ývav»çÖÄ!ÉûTš¶H[erG20žp9î2p*ëy[Å€ý»{ÄÖÆë`±AÓ)gpò€í±À;:;J.àØ}­M¶ÔlPÏOyÿ©mÚ$Õ el%xroçÅVÕ†}ÿþ½<6Z‰ÄCQSâÐÊ}ÏnÈmvðNt†+…#ï»:¢››²Q¼XŒ!Ñ¿Ýàþ½s¯€ (?=ÿR~î»Ò.ÝÃÑÜ}Ý(·ï<©†±˜Æ.’¡Ö6B^3úVÈÃŽ²‰Ñâ}|ðá”rólœpX0a \cvw?˜•ÚÆÍÒÖß,Çn ä_ïl–›—+¯Œ—í%C“GÆÐ´´4«š ÉoYÀá4 ›sšÄ!•µ·oßR|»".§îõ>4C<<›ÐF¦ÜôB°Ah.;1GŒJbE(÷›8æ~Áa7×ö3¨ ãïóÉ%tôÇJ2’ U4l–·óEÑt­¤;¤µ·)Øä^ÎðÃgîì+ çöí'WÒ+\ß°NJiÇŽßÖÞª2°àÈW^ªˆ¾ýÞhÎøWé~1È îwŽ…Ôð±iMé¤]‡5„añûmçâ6ÌÆâ`xå•—Ãií«g[i[êÌô4k†1mZ‘6½Þ¼ŒBo‹U!ºÑß )Zfàíq¢¿õÖǵ´;ݑ݊ãÈËíšU†¥[‚̓Ñ3ÉŸÂÁ³ÿGF…‹¾¾ñ˜/#lÇî¬âÈdÞi¿Å¦°R´¨f3ƒhÅêûaöø80Él؃AV9ÌÓ÷†ä crå• Ù}º3g˜«eñP›Â‘d2*ðžƒæ"“PtRE zàXón‰C¢ŠÓgNkë±öžˆìGÎý~K´>¿_P€¾p¨ì¼aì#dö{àñû­²r3#}ó-J §Ó* ý«§QØ‚Äk)j±a§üFƒj t6™[ˆŠý–ªM\‰‰ÇÍ¢åÁ x…Ä!PN±SsNuðÀ½4”„É`•“/Êþ'û¥o:¡†Á$Dµ‹yv@KÙ˰†äÜ[èmfLNN®¹6÷öÞ½»J½ÊdÓùÊ"dÍÀšpJfPúM6‹›ßÃãhl©µ5šx²x´Ö×k7ÉòÙÖ² òÑ;]2; > %¶Öü„}§È+¨aç¡üöòË/i‡ì޾¸&‘÷áÃ5Ä´h‚GË:æ«SCÐR†­ò{¾ç{òÖ |‡Á²jÖ¸Q69D ¿…#-ÒÞÕ6KN8òÈlRÞyçí¼^œj®ëÔaÅ$ÑÙï°‘¸O8Ó»“ëçNpäÞ¹©­¯–ùm³E›&–3ØôÏ,–8Ä“¦|6™ŽK<Û¬JlAãȆ€Ÿ£9AXûc?öcú·ñf’ð& Ž s€Ó•¤Ãòå5ÄfyfH†·§rׯ“‰©1 ›ŠyÖª3¯FƒSûvëµYœ^Y2F/}ûŽm¶ÛæX•Ô6l’Éå˜b¾+Ú´(§¡%)<ÓŽ<±+®­Ýݺù8Ýô{ƒnÚln"…x<*ñTKY8r9óèÍ~I¦âº¯ˆÈØW0£¬Žup¯À‘­F —C £âÖœ§ F¿ô7K·kã\°¿`EbaÅç·Í®Á‘µ€cË&=„ êLÔþì°qÓ'ýþ£?ú£ù½HÄxñ¥¡õ÷ˆ '8r¼£N^zùÅuô qŒ¨ŒSâÐdbñô`ÐyvxGT?ÓXÇÈèP^?‰++iÝ:»wÍÄC —£œh ­1ÂÖyâ…™9Ô*‘d“z£l Âüb,J¿<Å·&eiUe®íe`ØÀa Ž ´‚‡µ¥j“kÇîs­’ꬓÍ[7¨>ÈÈbD:†%Ù^›§­ Î…ÊÇ‘®âÈ õ2;7›‡”€Züp¸ 4¸Ý´Œ\%×äÔøj´¹Û;Ž\Îìè‹©¡¡ZŒÃßD1Nø0,!Ä‘€¹Þ~ûm]ãˆå‡cõ9o¿F¥É…Ø©êýàþ`~ÏRDáwSìÃÐÀèµ&MlOÈÕ׆djWRŽ=¢†×PN‹AR¼Wö;ŽÕ«§Nвèë}x±™{žÌÈ–­[Ô@®÷àaRbè”84F‹›tâäq={raê¾2qäPn±aÑ0¸T.³¸ É-œ¸Ç¦KIk[Fæµ9bëÜq¾Kqd`à Ó½ØÉ0ƒäžWÁzi¶o÷2`ÐÀÙ%t#„ãþ_½vYF¶•FYà S®~ü^·œ}¾O»5ôO‡¤µ¿AF—"âÈ]CQ½¯W¯^^ÓŸ°R£˜¶›ýÚõ+Êç˜HTGæúMõÊõÆðþ06䜞¯Á‘Á¼áѵ€Ï^}cDŽÞꑾñ¸Ò`Ož<¡PSsNžŒª‘#Q‡Gk X î ÷‡ûD68k*É[ç¾[}Ò;•Ð~êôIŵŠyæa{i‘à¡\&ž&I Hò$#OÜï)É@v 7åžOƒì¹Ð&;i¹7!›¶lÐ69'žê <±wôv—ôO­êNÓ.¾’ ž ÆËšß°&eñ0MhLôDbˆJ®¸*©UÂN'õ€·ê…À GÉn€×½³ß?&Ó9/£dæ¹çdd>¡ )ŒƒÂü‰RíaÜaÙø-h“7R¾nªzxêô„,NÕ¼nôBØï$ŸqzzFâùÏúP=âý÷Z¥1T«Ðž×Àó£àí6p÷­•Q^¤ø¸ÁÖ$‹ýË->< ) I¢µeG~±ôB2sI”‘°r¢–áÞ¹s'¿ùØt”¯d<â<Žüô ïHIum•LÍLªgþßñ®ÞX/¸èÃ$DzFK/gFq¬®i³âÆÑLµÂÕuÕóºÁ‘ƒ6È`Ñ]£Íb¯ÇÀñ@Lß))ËAËšÆ0åã@Ä’-²ëDg`8²)àÀÀÍe_PÐ` ”œ³ßÁ‘Ið"ÐVj5Äf^~uXæ÷§Uƒ {…ëØ©êY÷,ÿ§{ŠŸ>ì¦Øçeð>Í~‡†É~¯®Þ*¯uå?ãCõˆ'öGr!Mc^?¯”Óîˆ7Àih-à(G€„ÏM¿£eÄŸ³­©k¨–‘1W™¼QÂm¼ÍR a vàÈ$á׿B¸cÏ û6ÄVyú`ÎCφT@ƒç[Lc,ýƒõ€G·rÞ?û\%²C7;5±gpdàŠ÷º5ÆÙ®P^®q=L–¤,NM!eæIOª §—3Hjz/àÈj«+SE‹qÀÛsÂm9Øï¼³ß;*ý1[#l×Þ•ÝgÚT™D5ð‡aCå;#-IY³uÏâ¡{ÑÀb³<«ªž—Á~2”Sö;{ Û”j ­ùlÕ#N¶µè††þBꓟü¤c²ÈíFz`¿ÖmËývÁ(FÿÂHá-;~D¹ÁÝ“[ ðå /ä±,(h„–Nt'«Qp"BscñõÍÆË6Â…sû¹NÅ‘ëêkuÃZqH;]ãÁã™TRK™>Lªw,"‡sÆÔ«qÜu:+鮺5¯a”»Æš­Ð㚨Êý¯¼WëvðÊGr£hY)›¼Ç“§Ž«7‹Îð…çG}pÔi±z!x¶phÝX#Fwz%û}I‘ÊÉ{}E ±u‚#w F4±ÿXÄšßàßN{Öë†FY.¤Ä~ÇYL$ã²ãxvÍçyhñ¶Ó ]ášÌ*¡ÞÎ`’4ÂhÁ·5§øA)d0‚4ÆsR~óZéƒ×j2¸Åè_ÐßÐŽÀ µçŠiZª¹M †·²²¢‹‘ÏI‚ÃI‡˜…õ`îó0á ¼;¸!¶âÈ]£1m|zúì)õtÜ4v¹·N‚=A’;vlÏmÚ:鈔ͮĘŠËëo¼–×à€¦:ÌÞG!­ÒëÀÀYóÖv\TbškqMNMjáJ÷`\ŽxÀ‘)àèëëÉë…q!|ãDYé0z!f¿SG@áÅ[çÙgdl1©‰¯Å¥Uò3ù C+þ³îY8éc°ŸW“’_qûPX^yõ•¼~î»®dMÞP†‘Gžž™–®ñ¸ôN&Ð_\Ú¦‹®Ð  Oat?ƒÅ<àDÿb˜ê¶WsŸ¯º¦Z’­-Ò:Ø(GŽVïãExFòϔæ&óð¾!³Ü1-É }fXöæŒjY8òö¤¶ø¡% ! Ù®8†²f†û¥¿¹y&qÈ¡n^WW+‰L‹ÌLʹúº>ùTlÞ¼Q«¬Œ^ѵWþ´­’ˆÑoD‡sP˜”-¤lâMc "‹Ýu¢Ã½/Þ‡sÚÓŽ°ð™Ñ‹qzþtÏa¿ó÷ØïÐ5Sé„ì»ÔéÛ[qä9Å‘ÕãÄñ2ÎŽ’eÓ42^q4g¦–“¼ÿ‡âï¼’ÒÚn“¡ä‚h(ÚØ…5,   éZÀ%“¾çòˆ¸1&û®ÊÈRV"ñf•Y$3I’Œ!v*à€êCO)¿œd7úÿæúTË‘õ-dtUv ë‰ X°$@¸É,n8Í…'^•¦XµôÍÇäÐýÁüëmÃ-²qójPËñGŽ¥[tÓ@%2]qL9Å!NÃ.q_kvnJ“Žã;ârò鞇fˆ¡Ö>sR75šÆxÃà¤NÑŽ["¹XsNDb¼°Xø[&£ Æaa‚K…”M`•¥í ª1³;+7Þ|°’œÙÖ´>{ÉT²^q”œr8Æé0û‡(šh*ÛâÈ˧Û$ÓѾ$3ÌýÂipÛ³•*º}ç¦.Æåüóƒ×#îšh‘í¹0Ó耯Õð2 ŽÌC¼výªôŒ§ÔÎé}¹ÓF‹`Wßð ß÷ð¦í 8̇ñÊC4<['ú—W®Õ£à½PØÀB¢ÈvÛ{Ã+×z¥mhÕðòu÷Õ^©iØ,ÉÕåŒõˆþÜá§Ê3ÊÛÏvj;x ðöéõV¨ßëäáûŇ-ÂnŒ °MÿdTßê\W# WykÍÍØ›âJÒ=êØ6§½ó¹ø­ëu`2.Çn÷®¿GLT ›—Әίv‹Š›žcp]à pbz¼-Ÿ´5Äf.è“ÖÞ˜ÂW®^ÖPJ‡_Ϋ5[^èÅy|>“áæâ4'ÜÚv²ÝÕPº7¨ž1¥½U5Õ‡ÓµÒ5Öï×5o‘]»ËÆ‘÷Þì“ÞÉ„6èÄòL ½¸ ‹b·Ä¡1ZDÀ\àóѲ˜^æì¾„ŒOŒæõУ(–À4z!*lŒx{_\Æ··iá‰_"µR 8œøºÅ9kÛ(ʆí(›Àx`ßà°]ƒ í‡×Zu2¬”S£Q8ȯ˜J;ÖÉââ¢&Qè+ÄJæ•ׇË‘G·%õ@iniΑpv£l¢·mM€5L;.®·ß~KÑu÷ˆ)à€îeôŒ7ZØÑÔº)Ä»ëà§ô¸½?áj„­s÷…¡œáHi²lxdHéW„ŒnÞ†UÝëö«ÂÅ¢…\N¹(ÞáU8^zG(Y##»’y/ïcÜ® 4±Çµ‡—RRŸ a#шzï~qÌRClq1U=£Ø”I4Ê¡ÊâÈ¡h}>2 ?À}À ;±&€›(›5ÉZ±$!ÞÍyœŸÛ)·>\”mGº¤9Ü[£ÍZÌg·+à°R´Ðxfú=ð¨ t£lb@ñ’éQ÷…¯ÿüŠ!Qíw}×wÙ^›ÏŽÌ~7Wö,Ûb¥£‹Q™Ý›TÌ×¼¶ÿr§<ñÄcrþ…Á²qäÙ½) E´G$ˆéîQ,ò j8Ï@SÜSW@.Ö˜—Éï𻞠1Máz…xÐ`ððÁ—ì03ªÁoÉ€¢ 4¼íhOɆØÌ}WGex1+áX³Äâ15t¦ Ç­€ƒ}Å‹‘ñRLâ684R©¤Œ¯¤K2Žà¹7=!­CÍ’îm”Dgƒ4Ç«WÛää¾Zqä &8òÔþŒÄÓ¹C¶-ã«Í“ŸQŠª ¨é™ •Û Dh 5îLV»Dch((ây1œ°aÖ¹Þ+Ò`ÝÚ#g„­óÞG;dÏ¥í¢Ê$äĉkÔêÜh•0¼׳^­U­´ñ ŠþÅ Øìw¼pèˆv¯vI¶§AyßCsõf{Æ[$š®‘p²Z®¾>޼ëT›ÄRM‡å³Ÿû¬FËAp¸ §v\ÆÿÁþ±§iŒ±'CLGm]­vÒ5®8'¤a!¼d*o ¸pâròN°á½a;9ÕQ¯éÕ×^Uú[±«Çº^ƒ“…ºR 8掶Iv IÆVR2u +³‡[ÕˆÓ5Ýר°‰¼=×û7Ȉð^+-’njWVå77U=X'ýžLÇäÈ­®@ q[oD½D£BÃïá‘ë0z!t¥Æ¢¨iùl߆Ø:O<5.ƒqÅ)³'ñ[LUÈÃïÀ;]ÛË€*gôB ŽŒ^C±ŽS÷û¤*¤ë•ŠÈ³Ï ¨îiÖïó½…é@päžÑ˜Ât@Jåp;ìîß¿¿&¿aࣵéÉÖz¼PּȑÉxØåw» ÅíÆÅåõšÕ7ƒ<€ßÊ48Ïnô/Œ‰˜/|áó’JÇ%GNɹ½áȽcQMbÁÁ›"ç>ì¤ÀfŠ‚À‘1Ä@']Ý]2w ³$#làÈ ‡Vqä±ñå˜Ɔªì30Þ^4“Yƒåb¥ü=¢Úl6+m=á’Œ#˜0ñȶhÎøÆÕ(w6Ëc?&Õu›ÖàÈAÍK¯ ËÌž”4‡ês÷u¸¢:éÀWæ9Cü[¿ó_=MGCŒw€±ííïÎ-’:Ú’}w²’íkÑp‡*,Ô´  “ ¤>œ޼mqAç3áByh[Fqä®îN¥ñÙœ< k¡½7(?ñ¸4Ç€1FËö’÷JÇ@BqÅ»vh%Q1ýÞ †SsNãÍÎÎèÕ9—倡/¼b„[ˆ â%r/ +Ù Dáçwñ‹5çvð«€§NžÁ))ËA ¤NaÞjk.ŒF׸°€c Le¥ a`í ‚X+´NçgøY~‡5 ŒwñµÙÀ qG~}VÆ–Úô N$âyçÀޢŽ6{–’ãJ&ZùìZöŸ»¯$9\ö^Ú< -{ε¯y öŶCé@=âñ¥D.¢›Éë…Xõ;øÝb÷Õâ_üåßX31Âf~éhˆíè_^‹ì˜ÅËDÍillLÃ@§޽WFd`6%Õu›¥!T-ÑlCÎC I(Y'ÙþpžK<¼˜)Gî™Hj'øÈx5Ndð \f·æœ,6?Y=šn–¹cÞqärfÏd\1J¢³à(Xpª²Ã32z!pOUÃâÊ%Ù¸qƒt÷tiRÇDJxoNPX^†UçÚŽþ¤b®ÍøÚk¯J"S|~ÛáUyv_Rûõùc|ñr‹égãuâ5ã=ãEó¼zFRaëò˜?Ð)M¡z™ŸÖŒ=FÅJÑ"ú01*³g9´üâûÅøÊÝ`<²­)Idšeû±lÉ…ë1ñ¬i‹„cÀs…bHÙ:y?÷ÄJ«Äù´ëÒn ñÏÿâ¯æ§Õ›iý>ÓÕz^Æ—¾ô%õ‚ñ†ñŠypŸù̧µB®˜¡$‰7¶£Uü1¥§í¹4,Õõ[óíKº»% yD†2ÒnTÃm‰DM%Ú¨óàŒ7èÖœ“ÁFSšÖP¿´DelwZŽUGFËJQ¸?Œ¼?§*+³MÆ/•2Ôý×Zeb9ªÉ³ŽÎÕÖP$N‹pøån“u£™kó^¹Ï©T"÷ÌëK6 ¼Ü±îJ—íOÆÖÔÖä 8òó³;åÆûÛ0¨ËçúäÔ³þqäϬâÈ‘D“v‡¡#Œ‰à¬÷¶0ò‚v8 Èçq¯Éµ··JSsLïN9ŠÃ¯ç\8É=ψªb„MCy¸ß+­>µ“!þÙŸû%vFØLó3LWC ÇO¶œ—g¨>ˆ–—ZÀÑŸóŒ#™zý÷ÊÅa™=Ø¥ 6>Q6fì„#ÓF•µ?ü VbpO¨È²&œ‡ à!s²ÌUG^JJ<þýŒ,Â7lv'ãgôB ‹àÚµ«ÒÞß,ÇŸêÌÏ…£ Iµ7+[„2Pò…Í9 8ÐñÚÒÉj,ItY“²æ0±V´#³Ö sNšÜ¼Nj˜D À+vç^ž–ÍU¤&.çsÿ6¯¯Fz[åΧ·—í%»?¦8rMÍÖ5UŠGž‰hB”SÀát/œà<^ö£Œš†šà¿Ã“¤‹&šu_¹qu"kêD³Åy,æ@³+à°Ò*i k5Ä?õ3?ïi…&‚‘Û+Õ0>±áqõˆ990À[¶nÔ,+ÿµ6Êü¡îа-À‘Sa^p}Äa܇¼††p6ÐNÇPìõ¶²*ꞑƜ' œÜ€A+– ã Æ`=À+]>ŸYcˆÍÜ}!ÍŒ„ÕpÔçdÓ+¬X¼b§¢ŠRX*…IY¿ÚÀ<'£ÂáÄF ‡CêåÚÊïmËî­²µn“dz›eîP‡4Eª¥s4ç¡Gó?wèÖˆÜûìßlÞìÑãG4ò°Çø-àpÅšsb´8 ^~ù%-ù†ævàJ׺b”ÛXH­K¤k„à 0†š÷n4, m³­¬,ë·+à0´J’¥VCüã?ù³žæºâž¾n™Ü]zÇÎ3ý X_«iØ"“{ÚÕ[Þšó.s {lgk ‰<ëìŠËsÏ?»®t sú 8%ÙX„Ypg)ÇM¶‡dþx{Ù8ò侌´¶fó!9 YÂY’uv<Þ8 =ƒ#Sœlk²5ÂÖyðf› Î…s´F[ýà±6ºp˜÷Å}ðbTðÔMj¼8£0æeß Úø X†{ÄáíÌÍPâýî<Ý«‰è¾œ‡|ûSKNÕÉìv9ùô„Ô·T•eˆ­8òÜþÕ^Ø6§Ï£?>èÁm¸áÅ´Èqß¡»¥ZCÊ–X9ÛV£kôBhH@g±$$Õ•ì±ññqiïh“Ùý •fEòj$¹ ØœTõŒ!þ‘ûiOs] 1žÄøÄ˜„¢ÍŠóÂñõjgöwJ]óÖ58òø®6iŠÖ(Ž”^¹4¬^'á1¡ˆŸæ§ÖÏí¥Œš OÞÍÓ0á×…þÖÞѪ"Ú”?ûÅ‘#É&­@‚— îe [œB8£Â„ëŠ6l[{V¶K5Äf½Û¡8rcsâÈ@0$ØŠpømuƒÇö^Î@‚™õ¼p¸«d¯µªf“<ù‰%ýÿ•·æ¥¦~³D³õ²íhW ‰=päÝçûrF/¢Z.#'½Œ †ãõ×__“8,LÊÒÀÓTÖ"i ùÒË•Á‘ÜìÑŽ?V¸‹H‹^‘vk¡{´ÎqL—"B:pœ{q•aCr—b¡d¶E Ú¾îë¾V££Âü†1ÄV¯s]x/cp¿IJ–ZÀÍÔ)DÑÞ*µ[?6°[ÏdL.¼:S¶Å±»cÒ=’Òè©ÒÚ¼†É†î–”Å0Mœ:}BïáÀt\N=Õ¨!îÉ™Ü:"‚a~Ë·|KQ‡ˆõç†ý¾gßn™\ŽÛrÏ)§§¬;–L&òAX›S?FØÑ—ã :ÑÙ0$x[ÌS§OÊÆM¥c0Q‘䛟¹ÿÚ¨žvà²F‡ü0) ›s¾øâ‹¶”—RÆ3Ï<ãJÿÂhѼõÉÛ·ô3´õGd÷•â82ñ8°aŒ;Þ‹/Án@W£Ä•µB˜º¸4Ÿón#¾ ±™àËàȼª/­(Š©êvM©ä zl©µdƒxøÉ9r{Tο2#—ßœS>¼˜ÒdÞÔJ«l­]Å‘Ü ÜƒA÷õw¯Û½±&¹íTõL’Ú$Noܼ®­g8¦ŠmAp “ç‚D-k'»Á¡oôBL­Ä¥K—´˜æô³î•™NõNDŸ§+ ;?˜V)ÌŠ{Ä…-BBEN”Óh$Äàg‚7ŽèƒW:sæŒoá'oÀš¡õ"Ç ÛÀ,òbô/:F`ÄýÎtEdáx»c]:(¼Á¨ƒ×‚Ñ:1eX´¯k…ý@r¨¦n«B åb3ÜhËE&!eŠì\Þ®p›~oaò¨ÒãÀ¡}’j˾«ƒ¾ð]ô%kºüñ¹<޼ãt4E«ef_[ †˜VCeé…øÀnªzÆâóüšsv€öô;N´Êµ7G|p¤¤··'¯b sœ¤D!f}}±ßŸ}–¬UB)=8rmnø5ÂfV#¶Óv0‹âÈá€ãhC 5ìG.w†¢MÚû‹qâ^ |ãäm§šä¯¼ú²bbÀ0…Þ€)Z³#:pò:‹ Ú÷X%Gíô{¹·xßd¯)KÇšd|%³F†N6ÏÁª-Ëx-vÙr£B¤À8~òxγ f„ qäñ]9=RŸ;Tš5ÄÄøºé÷yá±û¥¿•Jß"aŠì%÷uñX·<ùÉ%Oº”1?ð½ÏîÔd^PF]K¸Yfè…°–a/ùN¯Ô~#:Œ]!ýË$ϬOI† öImýV™Yñ†#SÀwMôŠAC¸ŸëZó …Ô4£Â=ùüç?¯‘•·neñN“¦~e0&qE 1ø*›×¢ÅÆ2¡]"jêj´‡WÙï„ µäõð2yPn^](W[eÁ7µÔK¦-ªõítÄekÎÉïšCÊëà³j}Ò¿X„.``+{—¥jëf˜Oh< 8H@ Qо±;LgÎçG&QWUµY™•0ÄÖ98‘óîB¹è©Ajkk5„t*à°Þ[??ø~±aä*9¸9¨¼ÙÉ]mrõ­ùŠVÙy™½ã)-Ê1‘Þï›­œs(þ¸Wvý«Ð`Di3Ey÷ÐL\N?]G¦k gŠ¡ŒîûÏÉža°Ù;ìwd}ÙïŸúô§¤c ì[R5p=âJ 64§¢eB^NI¾íˆrY8Tãm?YY9ÕÖÅÆûû$ÉFÁ‚SEÂw´ ŽŒwL˜>µ½]ÎÜ™‘='¥k ©\ÆŽÎõ ¬ÞÀüÀä15k†Ðx›¥“À*FÿâuBúëׯ*3äü…¯H*ò÷)ÙuÒ 1F¥$ºÓürû÷ï“ÎÁ–ŒæÌ¾˜,H­ymåb6Žo÷;ÊÆ‘;CŠË]¿qMÙnú½DZNE~‡];.þîSOß×ç=0™–ÓÏM>T#|ííMÞ’ðåç0‡W&Içe€ÇRÔdGÿâÞZ¯ÁÆ¢¹½U+ÝÃ19ä øF­“päЂ†â"Α[ÞÊìwÊÂy õ²ïr{Ù†80=bÔ®*5¬%¤v-ëÆ‚FÆ í…ŽÎ•À‘·ŸêÏyvUyýc9 œô^©²G'Eø†…ÔÐX'§žœVClæáKcÒ?¾Úéuÿ}Jû*æ X! ¯ Q+oÔ­©*¡˜N®Ñ A#ƒgBˆ YåRöc9±;*5õ¥1²E¦öÆäؽœo‘êÜkÉÎÚÀpä™°zø;v.©ÇoWÀa½·A ’®N‰C¼oÖE(Ü,m½qÙm(ž°×9±Ü&'OÌó¼ÉŇ!mk7L¯:ëš lçžkÎÉžõ[½Ç¾±òÕ¹¯v”M’ÈGÞY€#SÀÑÜÜ”× ás[°R묃½mö»Á‘Y/hf”Óé%p=bƒ9Vz°0L8l(ZÆÓ«4‹› )››I´¨ðϾkÁàÈà yíõWõï³ð ×í¸Ì‰nˆíT£Q‰†Ç02“]c„­óÄÍ)™XlÓŽ·mm­jÔÀŠ9…MÑd…~+Á@Nô//ƒµ`ôB„}<—d[³£¡¯]‡•V ›ÁoDäDóR»k{ÍOÊ)ûä3p‡[ ¦÷Ä¥¡e‹ÎPb« ͇%–­‘žñULùàõý;=âBMâÂï¹êS¥eºPÖêuØpyB¯ƒEöcN8R…ׯha‘ÝÓ Åšdd)ëŠ#SÀÑ?Ч§6x4²b=À0þˆ¼³©¾y÷Ýw%Ûóm„ qäñm­Òn”ººZ]0xO¸pp_׫ ž5<ËÃO¶û6À[ë6*OˆBqäÜÿ‡¶…ó Ês-èO•lé40ÀÅÚqÁß&Òƒ7‹þÂÒñž²yÄšph›ÜÏÒðe ¹£bö{kθî<ÛåhˆÍ¼úÞ´,žXmCÖÖÑ*555ù$1U=¾ï¥/$0‹94 KÅKA”uÿZ)§àÈwïÞ.¹€cáPRâ19òd§œzºGj7ÉÌÞ„t 5ªq.Ô#¶ÎB â’ôˆYD|X§î=; cY¬9'?ÃP´œ®mÂ#´bçæ´:«w*)+682b9æ}àÔ…‡h§KÊÀè:á(7q‘¥=â58òž.n‰Æ"2<2¼‡t*à0‡V%µ”áŽîܵ=Tiõ쯲†¢µE ;N§¤m >Ð =’xhý€r˜@DHÅ’?…Ñ“ùùbô/Ö2ßß»ª§Mín—kï,x6§ŸŸ”æ–Fý¬8Pûà‰3pä:Èy¯ÀhãÄ\û`¦¨!¶NpäÖžèêßçmýÛnú½|~/÷Ó:¸N ¼@Jf¿Ã…?v·»$C<0’Ž‘Fm:{øV§&÷é%ê㵊èî;5{ä{„=x£¦kÁG}Fñ/0WԌܼkã•çiäÐÁÜ®èúŽÛGîJ(Uͨ¹QZÍg „3½øœHêl,NunHÖA÷!ÓO†5Âv8rkWLá§Ÿ~J7›§¤á·œ—ÃÃqàà>í[†>„“ñÜ¡Xƒfñ^<É5?ÕaVêŸ×Áýè£\é_Æhã[ Îf=áȽãI¹téb^/¥:DoðºíÜv£böt&“–Ùƒ­žŒ°užxv$÷¾Ó²iÓF¹|å¢:8vVZ%‰`<ò‡184:#¥UνØ/=ö˜]ÖÔoR¨CüØc“x[mðzÄV! ·ä <=<²£Gj—äƒ7†ed[V¶Ö ¤uR«yŠyœÄ~áé¯fwmc´ð÷íÛ«L‹lΰE“Í*{Ç"$© á§äâ÷ÿ÷çq%°@Êhù[3;;J2¨ûÏÈñ듾 ò¡‹c20‘Ñ£ãê]”RÀQ‰þ{V¹JþÖîÝËÚÙ5r_ FÅF?Àp|ýô_$œåÀ6Ô?ö¸«_úNŠ›ª\m‚O~òÊÕF/‚}E"έ€gƒ"ÖpI)þž. œž57šh¯6çH]~gÊ·!ÎãÈoLÈäî¬Ò5cñh>ßᤪg`8Jø×ch'õhXö^j+™žvæ¹Þðc’Î$ð¬q`zÄbð#'Î!•(„Ǧkž( Æ*l²p¨Kų)Y6YnÞßgãø ­9áÝ®m päã'Ž­Á¨x(X;¶¿ FM¸‡·‰ña!Õ5Ô>PÀqð¨Ô5V)Ö{òæTþu^klÙZ>Ž|cR¯ÝjÈ}žvt1Í­€#È&"°n,C`žÖ¶´ò;Ñfð:3-úœÑ@c$+íœ2én,Ö!»…ÊoVÝ/Ì Rè_fÍõöJ$Þ¤Ô4xÂv×®_Óß#Ù{òäI¾qª’Å5œàÈìwÂô‘ÅTÙF¸GÞv¬]q䮞ída•†µSÕ³îÙJj)sýÉ©qí_8±3^TmÍnM´+dM¬‹1 „Úlj´©ÕföôuiÆÖNà„†‡éö¨¤3Iíl ;o€Ýzb{¡i±À ‰›~¯ˆá²ð ††e ’±Üy¤_’­M¹ðe£ô%d÷‰AÙ¼eƒ´Dj¤<‘ÿ¹#WÆË‘ç÷tI"–x"*}ö#Ý´Ap¸BŠЕ5qȦ‚‡º¸}A»p ̆×E‹¢° šÈ‡ÐÜè…`„ñþì 1‘÷Ž€Á-Y£ƒÃýʨÒpkÎi¥Uz…=€N ÇŽþe5Z.\Pa,päé=yY 8r(Ì! »ñ¶ÙÔNÉgh°sW¼Ö ŽÅ™—Ç5Äùùá¬ì½ºÚ†¬¾¡^Þÿ=¸íTõLRŽgÖ\é1zÞªk1“£w¼ þ ¾fþmd0ýa[L§ÒP¨UÁ‰‡ˆkl©w ˜(Nu&´•2J‹y~3Þ,Fãµ^Û«÷‚GŽeêãú¡š+à8p~D:¢òÄK<Ó(Gs†·ºv³ÌíîTÊÆÙê5û»H{w\)8Ï=÷¬.ðr 8ܦI”¸5çdPbÊ¡á¾k$¬}ëÖÃwDrë÷R^/„H©X”eôBx¿¶û앾ܦì«€9ýÙ$ì òf@}²Ò*¸üFtì-§¤,ïuM›"šÀ^šÍÊø®¬&úŒ^ž0T1ÓiÅR4•v8Q8S©tJºFã%UyWß›ñm”?;,3iåy÷ôöä=s;U=«=à ZÊÓ çñ|O:©:,Ý#QO…™À¢~4‰ù~÷Cì÷‚æ¢&ùõèëÿ¿¿–#”ýh½=úêõk¹v«œßåo—;0Äæ ùÕÕ47åÑ×ÿ-GŸõÑz{ôÕë×ríV9¿„1~À—««ùhQ<úÊ0ëè·÷+2­·G_íÖ›_»„Ý«ˆ!ö««ùhQ<újõˆó·ÿ "óÑz{ôÕn½ùµ[åþ~Å ±“~&åznºšÅ£¯VÅ«, WùÀG÷ûÑWëzók·œ~ßé÷ìì^E ±Ýâ7ânãÑ¢xôÕê¡üê¯ÿNEæ£õöè«Ýzók·œ~ßíw ‚Šb«ff¡¾fá÷¬ºšÅ£¯Vå—õ·*2­·G_íÖ›_»„Ý«ˆ!vÓÕ,ÔÔ´êj>Z¾Z=»µÄ|´Þ}-¶Þ¼Ø-§õZªžpÅ ±_]ÍG‹âÑW«‡òó¿øk™ÖÛ£¯öëÍŸÝ ÂîUÄ;éj:ik>òP}µóP¾ôó¿\‘ùh½=új·ÞüÚ-§ßwû]ëïWÌ;égò¦Üt5-ŠG_­ÊÏ|é+2­·G_íÖ›_»åôûN¿gg÷*bˆýêj>Z¾Z=¯BÙ^µÝïG_­ëͯÝ*÷÷+fˆýêj>Z¾Z=”Ÿø©/Ud>Zo¾Ú­7¿v+»WCìWWóÑ¢xôÕê¡üØOüLEæ£õöè«Ýzók·ÊýýЉþ”ó†-ŽG_ý®¡GëíÑW?_˵[åünED~·L99Æ#i¾G_×KóÑý~ô•¯åÚ­¯Lºó^x4ÍGóÑ|4×ob{±ÁËYå¼1~4ÍGóÑ|4×ob{±Áÿ<šsôQS±IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/graphicsview-zorder.png0000644000076500000240000001510412536324504023433 0ustar philstaff00000000000000‰PNG  IHDRŠÆ§Ðø IDATxÚíi|TUšÆO–ª»Ô’B–dû.¢" ²*  -ˆ(‹È.«(Ê&-ˆÒl‚  ‚(ÈHÝ™î_OO3ݶÓÛ8ÝŽtO/¶ Iª*’Ô>P·ªîÍŠX•š÷|IU*÷æ>uÎy·ç}±+ƒÿžò“䥢±ø Hwٳ͌,–ŠÕC"ûÿ¢‰ôíKhhhœdÂ5Éc]!,ñ ‰]ù|F©ÆÍñ.¹nåw¢müB’¤\º¿Ø…2\Ì/—=‰Ç)&ÒÚöî‹a\ûÉp+{ãr¥ül«!$§ééQÿEÔ‹;P,/Œ)ÖLaÉgl‰rY´Œ7THîwÐ*óË¥qWœ¡’üLŽÉ®rc¼ŠâIœ_¨$¨y#}Z…°¼MšGÚ(ãj·U¾œ]V1,r‡[=)”x‚¥™üõsþŠa¹ÀÝ^å3‘O°´‘¿]RnÆ"²°Ò†m¸˜rMþ»èO°´–ÿ13b½€`);‘邆ÆJ¿äCã –låF—䇀Ò+—BÞن͛<7ž`Iµý´»çŒ;)tÆBo> ¾w˜,·¼K$Ç‘‰«¼ÝÄs$è +X‰àTÓÑ­º„#Žìë‡wg@ãç9@YDy XùƒhOËh´ìYX>‚ÉC F„ž.•®ˆ^ñK7é›é¥.F0Ÿ— 1P×k‘=âáx‚¥±òûÁÅg™@ ÷qÚФÛÃk}^$Ä,v5¯û$[ºÇhêVÞ§`T’¼-Ýs°XÎÒÕ£äÇŽ_äPZ=’;å'bPC 3U¯ytÆXrÊ­_ŠÔ˜pó”ÿâý˜‹l «È¶¿ÆæÖ`©ÈØ]|…Ftãi–ò9¨~ËqÑ)º!¹Sº2»ìFœþ=ê¡oˆíå¿M s4–’ÎVŠ^ƒ Ù'G-"‰SÏ+!pŽ&në’_0Cù´Ÿ÷|H´?…·Ã`ÚŽ ûÙhÝ·¦¹ßŽ˜ìG°{Ű_UVOä¸?^m0³ Ô#(W£§r©½‰"ý’[t¨¹ ­Mñ¼ˆó;ùØà‡°#¬ÑI åÊÍÑËüò_Ez-–åc²w#'È6¼¾ ™Ä'¢ ’ÒÕgÊ\ZãKÔ«ÕwÙ_*x¦ìML@QHÑ¢is®x~X‰¡¥‘OOr V†y åò R ÿwHÇ~2šlÏJÒZ7Æ»­ jtY—]Þ€9׋âYÑIŠòOݧªÉu=dóÖ"Òš üm'ÓQ8vÝmHˆû¢’–ÊÿŒ,¾XeH44Þ@*ª1åÎÌ"³q²YwÍ—Q°|Ü#Ì+Ó¨îXâ—ÿW¤Õä†Êþéûm";˜Îb¦Ò'JÄ´(±\7£ÕhŒ-QV—_²c¸—x…{hŒ‚qXKDƒï“ÅóN !Ñȧ»GÙWm=4¶]Aäµ.rŽç±ÿk4,'Gz5j>NÓÐ]ÝŽýâs&WëZ$~  Ìœà« (‡±y«åצ[}ÆÉX|Ñ‘ô¸ëŽ+µEc+R‘h]å=lÎ]nãëÌöÛ>ˆ“í«Uxðe4%‰t&a¤¸•Ë®*³Íö›&÷È.÷G‹i?!Ë}ºHÖ ‚ãaÃOk:Kó« ¼GûÔ‹$Ã<Ò¡ðúgº‘Î~"è†Æ ?Q* ÊÁÞ†zèi¦WÉ”»D{u©ÑåÚ²°”‰@º¾‘Љ"jŪüû=4F§-D¥°¼‹T$ÔˆkgX}g#@q q ‹×àóQ$ ¤¿-ÐCõ«ŠFÏ«bT„6^uOñMoe ˦àÓåê{"Ê¥£äÞQKohz¹¸™IL#å_ªev6¿‡\,Øyˆ<4Š{EÔË»çh­@y°XÌB‘´ÆæVÏËÔÇØjÞ‹üuLpö­K³Ýçj É.dh/¦Ù?±–8ýcøIŒ7ùô¸kÒ&’ ¼×·ÈÔêõK>éçÖâžE3¨Ïú€ŸÉ^]e/íDŒˆ¤üâ±’ê‡'+—ýMÜóý'9JFfñ-Mþbö’XªìÈþ¾Ê_HÎцþäg73œ™h|Ì.v‡esÇ5u‡ˆ!éT=ô>­B^àÕKtÁ\")¬¦+õÉ¥*}ƒKé 6¢xEûX‚e´#à­T6vÎSÜLÌ·ã ]¸2“fl hŸs, çL¦~hL-·¿K ëÊfUÐC«He­îõšëêE+΄»3ÙŽF7^@ã,>!Ç* ÊÑ;=® 7×ÉdñVÈ{s˜¨+““y7â¯6Ó–Ã8¹€†Fó‚Jâ0Q'²òé”óÍu9öî^þ<—» ÿ²5Ã{ó.I\(bL²¤¬6ÔCGiÅÐàæªKjq3`5€¥† <ŒÊÜä,ä×c Dñ´ük[¹ÌîˆÇÚN:31ZZíÙü¹sÀ€ Shüy¶Ý1Hâ"µ4Ë?‰ Ì%P=´‚T6˜,ª:‚E/~f~˺؀$[ý´•kp&Ì 'K>ãÉd¿éæ;’yºŸ»–ãÚuÛïPwtä+5Ü”oæøóÃtJ:s8Ì~úÑŒ ö™3W¨›QõÙñ‰Çé¡{•uU´‰~HZ(ßn2LbŒ¥-yœ<^¡‡L@ùç‚D°TÒøQÈïW’¢[Œï`ÿKô×ûXmŸ?_¯g99šçúè¯ r¯¡92÷³•Sœd3ýI Yz#½ò²¨Ÿ&êªûÜ¡ßû4:Óœ;èÅT¶éôÍ@7åMÒC\¿tʼnŒ“æÔçHˆõ«~+ìÑŽ‰]-84ÍÖÒ…¡¬e¯0†2YÇ‘tbƨË0uÏVF3)ä/ÎÓ´$q|Ôϓ䧆º5òXÃl4¥9ï…˜k-±éÍ`ž1m÷Б©•,À‹Ü‰Íõƒ©?›ËHœtc ¯Ó“9 '3ƒ¯Ö*ÜëãíËÅ š‡tc0éE¢ot#ÒÖ²QñçðïæÁ2ƒ‡y–F:®‚yØò<ÃiÉVÃ9²˜úL#Ÿ©eÊÞh…#3qží÷vïØk{ƒ;‹ŒÂ'±èæO*ޏl¦-í˜Ã^òÐpqŠ-L$îÇá]¬îè+e±‰‰Ž[}÷zöŸ"ÝäAmº¤U–í pw28Q‘qËäPÃbtôÀ‘$«ï[Š;®0œg°º{.lº¤%«²¼„µk!¶¨(K]ä×¥«Ù…³ü°‡î(X鑆h<ºafrðU=ÎÖ2Ÿx ‹ïûn—¼LýÒé™PzcÚ÷Ea3{4ˆpïG<Ä(êx%Çt›nÍGï"1ãû‚#EL³"ù†¿¡1òX… ]$uaï­Ç¡+HY̨[ÊËØñ},—»mZ|ÝÝ«9oøoe!È~ÿ7Ç[d2+h¬c΂WG^¿ ä!‹æ·Žâ5ëßêyfù?¬0‘5¡søõžÏýÔç.†Ñ…Þ! øUÚ⺠h /N^ý{¹¢£Ÿø¼ý]õ7¶²ºÓ—&8éÉÆ ­3½pnŒ}Œ@¥³ø Èl]v§vcêŸo½¹Ÿ$Z‹‡Ÿ·Ÿ¶]N*­WÔ½pBÙ½4dSð›ÜOÒÛô›= %b–Ì¡5LæˆAjcn$.ê¹EÏ[³4š‰áâ9Ûqû']sº;Ââ)fóc”íשî)eû+™¢Ghjzãe†6‡ÆÓHÁ½ uôs[|ö<1¦â¬¿¼}riuOÀÂjƒ¢Ñ½Ð¸7ÅžŸ]´–ªð͆°ÒôÆÇp8j.Ú£ò.¶3ʧÛ?KœY¥ÊânõÜÕ1ÒZ³­ ¼€ýß îîøÉc%U#à½IÛ@gFãß3°"ž§>ØRVß­üÕ²¦=ÊÔËÛª­OªÊ$ŸÁ9I¥U¥jö`K…7>MNXú{ *ŸtEÞ%úT×zL^9¬ø»Ecˆ7qyd~á‹ÝÕ¸eÅÄðèE;±“],£#jYòѳ†DÞ¦rqÞme+ê—_˜óÔÒ[rã|ó2•7»fó;Ëìû§‰?¨]Ï=û¼|@É'Å#º†³V>\ZÓ»8Æ&f2Ð}5ùšüóÇIëŨڴ ‘'z}÷ hL¸f}#üÖ£s ªw‘Ù³<àmyÅê“ ŸÈ;Ä“¢¯™¾¯MˆÊZ|ê6€ò¶A)n+‡§*¶±Ñ¾¶WT¯Åëø•²OÌ÷|×ý$ì§ÞRoG«rÑv’%Ðó72 ´›¥Œ»–{ÕáN.±ÿÞþžX †ˆÆ·1é8òŽ‚ÛÊl¿QÞ?DùKÆÕ~cJ¦0•‰e#‹û´¼bw'•Ú¾°}˜¸\Œ9ßS)ˆÅZôîmå–âHB‚è &ŠÅâE±F¬ψGÅÝ¢™I±âmeÏÔ²[ÂyN†å:Š:Τwz‘ë–qŠùô!•tRI¡³ŒÜ•Ø~; $(ÙyK9ÃDì äÅ`Ü÷o0ŒâÄõ:åF1ƒŠeÍh_í!ÙM#†&æÏ3ƒ 60Ðí&AÕ{±–l¦¾)÷zˆ½ ãPÿ; ǯ6Ô ’½¤S™wœ&¨>‘3 $μÓ]sHΑͦ¸Ï|6p$"œö’÷ÅÎTI3k4U•1•Cê~ÒÈÁNVГ¹ºCLæb+3¤ªæ~Þs5„ä,é|¨c«4"‹%ÇҬ¦%Ù´ Ι‹Ôóª›cBÆ´+0?`ÃéF;º0˜Ya,§çR²Ð%$dšÏ8Òu‰Ø¨_Ä(’Õ°Â}ýp2˜¼Æv°†I´  /¿ý»tZg;iaEt×kTïÕ‘Þeô±áÌirž,®>D: "hb.¶Ó.\tºŽXÜ×°äe·Ž8äÂæ#bg®ô¿Þ[é¦ÁÞÁ¦)2KhÀvòB:98bøY».óÙÊ/6Ĺ/µGg…¶ãñJrToPŸ-!ô±“4NcÝ>Ô•„ƒ1dÂYÖ)¹™Ly(Âùš—Âzº™rÉ„Õï䨎‘|(†@­íÞü€ÑÞ"„p–Á8hAvÈw®¡1)¸Ä^ !FðØus.ƒ„—c áøí&4\´ãUÝŽð*í™Ç+¬f$*StxgКÇ0Ú, Á´×1»íþÈŽ=ÑmîϽǣ±‹ÖÁÇÞG+l!lÊc´ aOved@ø*÷2. –Å4Е[.ÇQúà¿Si`õe¢®‰]#RÙf@:]£#Êœ p¶OrŽ>tUf8-¹‡ÅÁY×ù’ˆ5qh+èôxó°…ø577ØLÝòr0£Ôذ‹iŽƒÒiÈS\ 7X„¹{Y,;>·Ð4×òIa»aÎÏÆ‹:Þm {ÙRkz‚}Ì—”—÷$©åb¬ˆAQ¬^KHmÇi“¥7 úL¤“MºÚžÀ‰ ó´õª«ElŠú^’N»8#A\èǸ (/3Ÿ4–˜Ää:£q’¶nÛþØ=„ï^ÙB×Hfa X=ŽP/PÚÝ…íhdcÜÁg£YƒÃ£¬ås ¥›tu; Œýe @ãYzàÂE*gÈG2)‡y€Ôbõ¿DÛbýéá8… äÓÙÆEš±Ý´Cãšplš—ŠÅuáðúáú‚Üm(L ¾v±tV^m$›™Í%¦Ð=¤>~#‚nh¸°–Ôìlè‹­xæépmhÀpg,9ä„TšöÄÎÈ»GúúÑr}(;“$ö¡qùЍ#òŒMWÝq˜Þf5³YÈî°f?–×D[ǹUºwg"¦ýRþµ®€’ ^î [B£xļ¯J±²[ÛŸßÒíCõ±¬˜1Ö„¨bid+é´l?ÀiÚBä#¯èœTš§c€‹ Ëx·[<.êt±ùr‚Ñ“'¹Ët®Ì,·}’Q 'H‹ и@ôuJr”Ëÿ q,ƒÞ:Áåâk§;<'àû_"¹TØD“D1QýÜ^–Q>èÚ rt‘’3 BÆÎpΠ±–t]ñ”(õ<€òwQg¥¥˜dyQýÇ¢ -r?‚5ÌE0 ™gX_ât‰:.=ížž±Š SˆÀ•{©g´þ?i}]E¨G Äû%ç9À`„Úî](&ÔyPDcÉû^ Y*XÉ  º¸Iøñm EǺа¬¹Ós‚ž$“Kª.ï3ƒ;ÃÒ®I¥1”7®Í ’¿Þ¦#^HtÑÐ0ä¬Ê=Ø/‹8‘IÍŠòéŽÌN–#X¢mZêÔö œ§ã”Dõ?—ù·Ñ Ya±tãL(M\%âFú9=çL¨¤su‰ªDßýÆòÑäkfžÐ@Ô@*Å]ŠÆ: Í$ïû¦d0•œ&ùZ]CVC¤÷˜Ö0M#ö¼ýw"ÎÄ.]ÙaÀYÚÁDf‘ŽÂ”·â ‘°¦e¹>4ù:]IÅN&ÍiH3œþØè\|ë$C=d÷6 œ© ±ˆ†ÈŒ` Ç8Äršá@!qAübI^(¹Ç–œf+™œGcd†4‚Îg,*Ž_Å $ƒÕ/;»©ÄÓјB oGì.½~€´P/¤yÖê’‡qpŒ.†–CXËêº;h“6HÞi¥Â}hf؈U£!â¾:¬hÄxùëþ†4õsd‘fÒ–¦‰Çê*$mŸ4vo5Mp¼ŠÓ¤ªoíz1D§ÔWö*ÞgË+nsÖ\× ZŸøH£eqlÒ¹Ì%)q¶T4Ü·‡^HÈôá¨iý`=.t¤ÈrlÿT—  ~ÞÚý&¬c‚\Ó¹’ÅaìÙÝ4à½ëe·ulõ#‡wU@õZäqA·ìݶ´1}‚} Ï1‹´@>ñnwâìØD²®¶z'\;«#‘ 6°ÁPCòèürÕ+½ïô.¢ 9ô!wõÑÆ:`×ö—ÿÔÝÊ/ø˜Æª®@ò¦ؤÈösÑI$(݉‹Clf[Éô"Š÷vv¥½Õb•_³y_Œ ýÝ‹`kaç„ã.üñðuΣeãØk¦]iWÄl,MùuQË_+‚ a{Êž(•¼Òz£ ƒÃ›oR*eû"6!é+]}ºÌ¸¬#‚—X‡ SÀÕ[GšÛvNä„ù|ͬM•;†êÖƒ2Döl¬à(ÏþÈXéËQ4Þ¡s‘ò¥y‘äeCMºÆ™ƒ‚oJÅ]µÎ€§ç“ÜÉ LL÷f²/ÏìHé¯b‹mm—¿úa•zµ-óÛ=ꡊ SŸ®5©LÍ*ŒöS\B$qîÐ*tÛE‹"õ³ÊúU'ÎêoÒFâ‰2åÍXŠ-®URY‹©!^éJâãUÈá¤[}ÆüüÃH…á}Þ¢Y2­žœê4«LöÊ[…³jsüóŠ¡G€™œ\’éDÓˆ>oQ-É‹sÝÆç¸¬#£HýqH+èÊdR—B]t –+Œ@°AlïÇ”%«\^ÈFZ*ê©5ì߇ZAÉDp A,ÞX:—]ˆÁiî :Å»Àß°Pý£_“ö/¶“óü}ø(J‚|IäŠq1eª¨&–d‹èUdñÙ΋A5¶+m#AYŠ#/¶ ¸ÆŽV¾¶a;!¦Šúµ[ŒV÷( |Œ “ÓX}"Uħ(oÏ(¿ ÊP«Œ@£O‘q_ôx»Þå8I"—ãh¬Áñóx%Qúv¿y_ô†qŠŠôÚD“öÕƒ<‰óãu®tM59¦àU¿WPÔ?m7ñµm^Ñ*NQ±¼`Ö·td Glk+­lÞK&ÙDÇoâaûíMJ묾[Öõ?æôò¼&Á«.1æÝÒ8IÀé)¿¼=nýÒbCP¶àø,nAC›ºŒÌòÆr'•Zn+ê—› 犵¤–žxLËä6†ùÓ E›ø%YþÓ&P2¯V+î[çdt†;/"þ«zâ6Øð‚.N, ÍM(µ&â\2¥oÖ’jÏøs ¬EÊ^ÑTĽtR¾y°$·ÐêµÔE^mÍ$C,UÿÖÿâ¤S˜?¤IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/gridlayout.png0000644000076500000240000000264512536324506021630 0ustar philstaff00000000000000‰PNG  IHDR©––Yj¤PLTEÜÜÜÀÀÀÿÿ€€€ÿÿÿ  ¤®‰KIDATx^ì×AŠÄ0 DÑ¢NRü¹Aúþw¡Ü‹¶‡ˆIi!ï\~!‹VZuvµªU­jU«ZÕªŸÇj{ª¨¬ãúí„kfÞz{U$€”©ÞC àU•DæT@½ 8A0ó* ¹H5†ÄQF^T$¢ U¡H5†88mA… Œ?¨$Bp¡j 1T!žPA¹j É~GZSá.¨"g}Zdïp=•_ª¬« Æ“3ÇEª1$F„åˆDö¦«î©Ü-$é?T’¼ª’¤kï©ÜßRýùe·Žq†a(€þå¡;¢7è :Àþ—ÿ« …вHìÙ²ä¥ròä¤Êz‹Œû¡šÓfýôÙ©ÚË¡ÚÇÛtìuyS90^ªñ6{ V•ªT¥@F«LQÉzTV¬ds\ÕD4;U”L 6U I¹Uü8«ïT„LSf˜J–!>«™¡ji*ð^ÉÇ*–™§wuª€LmŸ@¶T®Šú;UÊ?P­r@%Ô‹iV”ªT¥zpcÆ6€ d {£À$¸ÿJT44(_.ÿí 6Æ_É=¦°uüîµ#'˜³7˜ÕŒ»Im†‚¬Í¡ûâæ=AÂëGèA¹ÿÊ´†GSñZ™'-J…ðÛLÆ|Èù!“ÿ9{Ú﫪kJÍËõ‡ØUÛ3TªqU;¯úW±¦¨XC•ÇT ‰é*ÒRTV -Vy2]Õn—ÝUºÎ׸ŠêA7ö]…b†Ïר<Xù4픪Œ©3H‡·­>ª¬ŒÇÄXM¬R¬§2mÍ2GEš4Ð.šëTdÖØnÛvÙ¿œ•«@]jB•Çú*(ƒY**Í…ªÌ÷«Ö€*ª‰Uë«?kOЦ ©j‚ï+ÍÿmA­7W%ÔHÆ©jŽªþNµâ¬¤IPIãª0ö·UïìÜAn1пù`Á'à X!þàþG@šŽU!¥D–ËõLìMÏÂ*õ“ÝN9åîeÔ¤ª‡yã^ï]µUôÿ5™óUT„®¨hƒc*¯S¹¦-«[š²,¤A SU `™‹cÕ¯’£\¿fª"´ª*ö¨d•íÙ*Gè’Jî+À4i ©„É*aŽŠý*ûPÑ>T‹f`]%÷«,Óò™ž«ºÊ࡬¶jªŠ‚f¬Þen±U[µU[µU@´J¸x¼Iv+›‹Ç*ŽÀ©¼¿²’êwú/ç 4MI,ÍV Â2 ]…à`v›T—WTm§ËÚQXÓ”5G•N&$U»,QE~[QÉ#*àF*`HÅ!íÛ¨ì!€Uœô]8eóùs¥ñçªo¬ Ø Å«J°ý½Š5P¤Á•ªÛç*æ[Uk[å‡WmÕVl°ež[E“Buò±-«W%´Ú%Z8ïXÉîU1 L:~W%ö?WQ`òÉUT÷N”…»P¹W3ðôª­$ Š=ÖiUßen±U[µU[µU€ë§|œk/¡*…Û_éù¡ÍQ]ʪ3º¿²ÕT¶`‰+ªãªj˜œ1ån¯ªD·2UV]æ¨ÞžÑí¥ Mqeµw¼¥wzÊaòXåni¬bldáªFÅ(cUÖô®\5LVåni TV™w®2ØT-¨:Ó;¨Õ0yµÈÝ–åëUÑn¯JïvWÃdUî¶UC-}3¡&«r·‡U-þÎËo‘ü¨‡É÷š»…ÊKÛ“jB˜ž{ýö¯;  h‡  7c€î¾Áø×îØNæÿEÕÕü¨¨¨¨¨¨.¡¾ ¥hR…IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/hoverevents.png0000644000076500000240000000621212536324503022004 0ustar philstaff00000000000000‰PNG  IHDRºìôL)tEXtSoftwareAdobe ImageReadyqÉe<PLTE¬ª»âââÂÂÂÁ¿ªNMTgf[ñññ±¯œ“’‚baWZZZ»¹¥¤¢²¦¤´ŽŽŽkjuéé醅v¡¡¡{zm«««Ù×뜛ª€€€]]bæææøøøccc”“¡àÞóííí{{{²±ž,,,üüü KKNVUL×Õ¾UT]úúú×ÕéØÖê444CC;ãá÷66/jjjÉÉɵµµKKCÏͶÜÚÃãáÉ­«™99:ji]ÉÇÚÕÕÕ–––àÞÆ>=6qqqÄ­rqeª©–[ZPlk`‹Š{ÌÊ´™™™öööØÖ¿ÃÁÓº¸ÊÅÄ®DCEÑϹÄÂÔ‰‰‰¶´Æ±±±›™‰…„$$$èæÍDCIts~èæü¾¾¾vui¸¶¢TTTµ´ Š‰–ÅÅŲ±ÂØØØÌÊÝ‘‘‘Œ™54:¾½¨#"¤¢‘ÖÖÖÏÏÏÅÄÖvu€ˆ†“Ÿž ¢ °}}}{z… nmx..1 00-õõõËɳ¼¼¼ÞÞÞâàõ ßÝźººäâÊßÝòÙØÀyxƒ¦¥““““ÈÆ±âàÇËÉÜbakaajÕÓ¼ÔÒæÍÍÍ„ƒu¦¤’¿½Ð€ŒÕÓçÁ¿Ò„ƒgfpçåÌçåûäâøåãËæäËæäúåãùÚØÁÉDzÛÙÂÏÍàßßß’‘Ÿ‘€ÝÛð>=C…„u¹¹¹ÎÌßÒкÜÚïƒ‚Ž½½½ÔÒ»dcm§¦¶xw‚ÞÜñÔÔÔ¨§·ÓÑå@?EÇÆ°ihr"cbl¡ Ž±¯À __hÒÒÒƒ‚tÇÆØih\¨§•|{†‚ÊȲÞÜÄÑÏã.-(ÌÌÌœ›Š»ºÌ½¼ÎÀ¾Ñ§¦”ÔÒ磡€q™˜¦¹·É~|ˆ™˜‡˜—†~q ÜÜÜœ€‹œ‹—–¤871cbXdcXPOF‚s43.óó󌌌'')µ³ÅÂÀ«ˆ†xÃÁ¬yyyÿÿÿN½ûßtRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS÷%IDATxÚìÝ{XS÷Àñ2®‚±B@0mb«€F¹y‹ÊK4€w[ºZÛ®ÊT‚eÑLmZìtÃ6 œWªVi­k«öŠ¥ÝV»v²¶ZڭαKY\á±AÏ99§{¿<á¯ðá÷üòãçἬ^ÆÆ²Ú%ZeÏÜ–Þ ,zÑëÏAf|‚Ìúfx•^tÕiðM=Uݿ췥ï„4£ŸiQV“Œ":§ÿwa(ú/Aœ–«£–åÄÐSÞ(É®6QEï[oÞXF½{aQ|B•tÕx‡ºÏ¸-ÔÒÍ«>—ú>Þ5ÔîõwˆÙëü–z:‡8ºVCé^„@b軼Ÿ¡˜®úé”Óáé–XL¥¹¢bÐŽtjé¹gÎåG‘YñëWȡϣâÆr ô‹ðpèÌÉ¿ ±­Áß—C\½Á@0Ý|NÏË9Ù&'³åÁ~ë¡ü Béq Î‘SPX$ôŒƒþnèaç49%Ü1;Ûï‚^𠜢BÔ»CRo ˆþ,”PE—/ó"óºD¿RÊäòiPjnóáfÒ½9•gd&}k­HÂLzÞËDUn¤‡,1_ &Ü ý¥{<ïFútËeìô; ¿;â×n¤ô£Í?@Èðé¿q+ý&„Ýz KF?IÖËX9ÃèÃßãHÿ¦Û÷º<€i'L¤å„9É4ºù\è;×£q«.°þc®œqty@Rß5Ìh9éL=aŽt¤#éHG:Ò‘Žt¤#éHG:Ò‘Žt¤#éHG:Ò‘Žt¤#éHG:Ò‘Žt¤#éHG:Ò‘Žt¤#éHG:Ò‘Žt¤#éHG:Ò‘Žt¤#éHG:Ò‘Žt¤#éHG:Ò‘Žt¤#é?úeBéîüvžÃ¯.H1ÔÑgÂMïŽÜ7=(£ûA1÷¤n€k”í˜!ŽÀ;«B!:˜ùò$ˆ $ðþëªzl^M¼-$ .Ä-&ð®÷*ƒ`”rö¼á/‡< ëc^ürÔ§Í­w8k@àD—ð8LîùÙ&¨àÔ<ökÎóžr•~;Ñ;^-¦b^’:®fñ²'ç®â9ÌÕx º]£WÀqÕËÞ<&®g[ôö ëIk[~ÒÅóg–=™Û>hšÉs vm\e ¼âLoðVu²®¯{jqàùIê|à†3/‘Û^{Öa†Œ1 Æ»6$´jœG=ŒÞñßqý¡uyy/R^Þº‡ÆŒbuN­=ë8¹g…2\ÍZç mÿ ý£±X/ßCV¯°VtÎo ž9]…>K³\ˆ«—¢!f6ª‹>XµvþÒš³vjsmëà)U/¤sûÆÿðeåì 8×9„½ÞXu¶•'Õ’•è>ÞaÄq6˜àÏ¥°æÒ¾?¹4üYY§(ƒ‰‹;OwC}ƒQ"©"-‰ÄhtœÈvüÐ"€‡}gìJT¸2r[iJÎCqÞŠgÝÞÇ£âÔð]zÆÑÇ‹â›4.Ðõ²Æ¬5@—ÊÒ3>ùÜ[›|ëUúCôºäØg Å]êíW¯®ÂÑe›þö팿žè™Ð?]Þ‰ž¬t´kÞ?¥XúˆÏ¾ÂŒ)—.ýÄ}]š’QÈÍü*Ñ3¾Qgê§g9зC ºIöþÞƒþ‰ûdþçèÑ}îëèÈÌ]Ÿí_ššÝ¨«ë—+ßs —A¼ÒÉ^Ÿê?.ñíÝûÝØî·Ó¼—z¾w*Á&WúCÙúpÿÖ}4ø*Ò×É’´³c÷ºµØXmBµNc—›¤àW`§? ›CØõ&F&Ó¹5™L¦©3émrå‡;!ǃͷÒ{9 nR2"Ï.(¾n§U€¸„ òGò!*g|¬ÐFþÔ|ÑÂ-ÑÑÛÝèí{ *î ö`WÚé½ü¿ÎƒïFŽÛBëÒ » çû™ÇV޵ì—[tá v0 ®Ña“ß ².ú-zï/vNLþDu4‹êöûgðɶp›¼Ÿn¶‡·y„„M  o«§/X¾Ò¾æVz¯°2¨å­I'·Ò¶IröX¾]n¥÷ ù7‚ÂÙ-OÓµ–vøØå6z¯PÈçϪ¤q³øÂЙÒ‘ŽtÚ÷? .ksúP>‰IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/httpstack.png0000644000076500000240000007223712536324470021456 0ustar philstaff00000000000000‰PNG  IHDRUÌÕ’ÁGtfIDATx^ì—Ñ Ã E7ÿÿ›ç@˜‚7;Ž>®ç<”Tcz“¨ÐÇkÐÓƲ×3Ó˜¯9;ím6¦âC Ë Ÿ'žúËøYŸôÜŒŒò`|s({ #_ZžªÂ^P̬|Pö¨Ô\Žç*ð<ŽÃòr[/uaùs|X’ÚÒŸ7p©* Á¡Åȩ́/ƒ°$¸4.¤V VΗƷjC(V må óË)dšÇšOLç|–!~ë÷CDD¤=ˆHëÿ‰ˆˆˆÿ"""þÿ‰ˆˆ´7;p@‚Èü?º!Âí€f4{àÙ¹ƒaˆ¢Iñþ7Ncq3 qWÈ‹0Ma@Э#û`X?î¾Â5ošŸ¹@_QÝè•u_©ª)/íõVûõY*=93WXÓ6Ô?íwë€êÿ¯#âd玀A(„þ"ûoŒÉ]°Ô‚7%w ˜ú_û¿Þ™‰¯ý_Ÿ$½«YãÂÓÝ3½3+!ˆ%rÈ)>åòÁ !Çäfy%·rðÑ ä9EöAÛ‚L,ËÉ ƒ6òÍÉrVÒþˆ]íJžŸÛl±¤”bÔÚ]ÓÃRÓ=óUUOw]3B9·“¥R©R©Ä=.oxppÈÓÓœ ”ŠWDÛy½”‡ÒæçG™ 9xS…µZckkË“‘½,ñ¼á¥@)½îA«ÕB˜ê&·TóÿWûZ¿[(<š5;Gú&˜^©"z&]ÚN©˜»(Êz1ÕEí§üæ”@ÉQ üƒ ÆY­è¨:,x#û©VQON:òLøþ—ýI–MGÑÏ››×VV´Ö¦ý‚¿qß¿àœ ´–R~Púú½¯ž´¤òÿëÙÑÜI6ҹį>JB"³äOoDð<Ôlç-ÇkøPImcBo-µ„.R:|Ä`¢=2ç‰~”–ÈÄb’”råúG¡öQ¿pd–o GX‡È†¯‡‘ .,ä þ™¾(¥Sß ç)í"$² Sê±hdÊ_Œ§Å›m]Çã]ài9Ù,æóp32ô¹° “Ÿlö•ØÌ6KÞÂfó¦2rN*ÞZž‡ëZ=î8í|‰ž7‰H‘@ †~B:¸áààeBÊq,¹€¤iÜ?Ò~;þb9».ưô<5¢/ƒä<³=ù˜ß2÷ Ò$Mbs€Œê(¥pœoˆ@BC~žÌH8>8“­rìþª2üNj=E3Åâtƒ`ð=ª"ô}è R¦ËZ# Pôe £ fJ %hP£5Dß# TR‚ BÁø‚–䉎O p ´v\àà€K KUaROΘç  ¡{4 ÅÒáèÍñ¿Œ4$B*Õ'ì‘ðÓ»!ÍÒd%7úo¤`ò›ÐNVwwç××o®®þðüùfµª{Y'í%¿n¿¬×;p»ÑØ?:„dsã¥(‚T‘žF‚»­ÔA§ª;qŒ­šŒ¿@Ø>9Âfó¯VËtY#ß Ãb˜Úk··›MPaz]Ùm,àD?ô§B*?šªWÖ*oW~»Yy<¿÷â‘ÒE©4ôŽÞ( 0¸sðÇÑþKXnždÖC‡É/î¶{„ÐÒ­¿ê6þÄ^;B=qIHßÄ‹Nmûøðo,ŽÇl|+ÿÿ»I»_ìí}ùàÁìýû߯¯ÿ¸±qkmíóÅÅo——ƒÞ& .(W«ŸÞ¹Sm·›ÇÇ¥……ïž<™ Äjð”¶ ŒzÚØø½Z •J‰a¸—‚tòÅââgwï^{útr !¤Šø^-%$TðåÙëבïƒ/Wï݃4œ±¾ @‘BüR.?ÛÝ ¤œÐú›ååOjÝ®¿ò Ž+»9 ýA!þaï< ªºÒ=.—{¹ô^¤rA"ˆŠb‰‚ t¬‰šDSLLyó^¦¼É›Is&3&1Å ŽcïXKbì "ª‚é½s›ï·ÎgîÓ¼q­—yN²Ö=ëæ®sÏÞûÛß>kåüøß·|+,UmçÕMËr6ŠÌ§f§?¦PZ=ÐÃ~DX*µí egÓµíu–*}OGÖÇS¯o~A©¶E>Ðà:˜ãŸ?2z T(:tº¼XUõËÄÄ£ œ]¼8}úôéì.(øðÂ}/,“4𡾾:ƒAŽþÑD8‘g J–œóa”è Ô¤˜ºÇ`øýéÓß•–ªáÄídÂ,89rëVmg'cN––VµµYª^ð`ošÄÔŒ2U]âÊýŽ™2’ñS‚ƒÇhCke'äé\òÎñßœ<¹»°ÐF¥B%'øù%TaŠQ²‡Âþ?¸9ô4‡LÍÇ¿.ÈÃZ•·ó†ü~à ùØÈ×ÏÅ/Û£ÿJKyvÑ·*ú À³ƒ²aw̯s†}¡i¥Ÿ{¶ˆIWLìH=ùÐ H,wfô¤Ià™ñ¦.£J¸Xyi+“ò³6÷°i¾0+\úÞ>§Òtr«è.Z9a:Ó-z¢›WÔ4DÓ?v˜Ÿ4ˆ&~Ó“ ‘}]e7þ¾«¡šr¸œà2šÄ*ï5È(“G?øˆ©i¥S†5Ç?ÿ)±¸ä`eõáùó•íí«&Lx6.ÎÓÎŽë<Ä?ž2eD¿~k³³óëëm%êpèŒFgk뿦¥½8lX[O¥ ZÑ:ð¬G¯‡ŽðL~ô;Y[Ã0ÒŠ(9ZA’‹ *ßdη‡l0È7Qk0..ÆÃeC†é¬ª*æÂ¬R§NÇDˆBºa#L$OM+'j¥R´2#L"|+O!¢$Ÿ¦¤¼—”„ób”ƒZ ÜÄGµZ¦ Y ž‹&þh '?Y¸‡”.%oêegG+®nš9ÓIje&ej†Ð„® ÿùÆ>ÃxµtsÄm‘!mŽ>ÌÃÿ ¨“κ›7O¹ :ýw*;·»F½[ÿ IoxÇÍmºu¦ñÖ´”€J'NŒz­Ñ ã\®ì°´²QÙ¸ââŠQ×EB"$f t£ƒ°#%-°cÔ÷p.õ4Š<-UÖxeÔuTɈÌY ¥šXbkù÷°ñ®Á‰Í%ç»[ªH­á‹˜ - f,ÕvÂ>¾âO/´r‚}ÑŠK •µ)­ùÂÈ y…Ï^Eo$,À"1„s–ƒ)¡¹Ü1ÑÔGaI+³+ÕäPûXXªæñu¡)¿6h» ¡dБ¹z}Psei"Kð™ë´Þ5ê¤V£ðÏÿü±!bå­­;óóÞ̰0((ÓÍÝÝíZí¼ððxÒc*øÔ«uÀÛœ8ñç *ÈE»w'¦§'®_¿tÿþêöv8¤7`á»gÎlÏÍͬ¬œ²iÓ¨õëS7o¾RSÓ×ÞهℛoÜX°kÂND MC1ãNk뵚šÉ!!EF2ûÁ›7¢Ðפ 3ž.+#Z›ž>zýúÇvî&þÂNµT9ýžð”ÏšogA š@ÑËÌRê ¿©8·þô»ÃÏ~0úòó ¿ÃI‚™5Ex؉3;ß8ýî°s«Ææl|ª³¡Xp&(ËN}‘»}%â'k(üöÒç³pøì£rw¼–@}Iš–žúüÂ_&žyoÄ™÷G]ú|v]þ kgß²3_ü/:úÃõ-Ë-Tê[ÇVìÿ­¥Ú–›i)b­k¸#ξŸ˜½naGm!ÙBjð™ºô»5e§×¶Uç^\“zæ½Ä «SŠN©lÁ*„ÿÉÆ?úÏcTªoKKQ?pN6êUÖÐþØ8cÆoo´—eo䦌›7O””p‚ºÀïF]Ý“11ó"" OÀ£´´„UPTâÊ#G’‹nìêZ–‘A+ôÊ«¯ÇbMGpÀTy0‹QRN{ ÀÕ”  GÇp2v­­j H@©ÖÙ˜“ƒäJ É­¯fÿ~øŠ¢"É\¯>\ÐÐðjBÑÚ³8¶woSW,1X¾™âlEÅîü|\e}–:„ÙåññÄxwåç¯8rÝF·wNŸ&ÜßÙk𸺣㹌Œœš\eí8ÓÔÝÍBÐÇ0{_a!ꓼfCg'“^ªªâμ4t(vÈî+(ÌA?ÊÊzáСHOÏgââòâ¡CàÐÖÊ 6›õßC=Ìúø´ÖŽÞJ[—ú¼£×¿^{ðÁÊÖEeãdß7ÌoØB·¤€)ýîÓÂŒß"w4ãW8úF‚¨‚½oÑH´V\­Ìú:wÇk ÎÖ#H×Ý\³»¹$ÚÝ5/d鸂*‚4•—¶ån[ê4ã^$$Xuikî¶Wø‰¨‚»59{Š­º“¹ÙÖ35BdÑùB¡$—†¥µ“£ÿ`§~ƒ‰4Ö^Ý¥D/¸KO®!÷0ú˜í5ù×6=Û\z´tݺŽFØÜz'G3þUÍpäcÎ_—hÛêJƒÅÎVÑ\r¡:{q¾^Û´L×Ñ8öyψI5W÷^ßò¦X×­£ýÀÚÙ/(ùU¯È]{ýõ¯Ÿo)¿¬ïjé¬/Á¥®ú’¶ª<8ÚPx²özÞâwƒ¿ màØ|‡-h«¼Ý-• … eÚxóÌ퓟\Ûô¼}ßc–qg®o}©µâ €Äß®þûÙ$ÿ,,Jšš8"ñOÑ !ÁpžæA ®ÈMñ)Â2)³wÞ¼7ß7ncZ2‹§<1èik ÞIJú 9ù7cÆüçØ±H%jmÒBC÷ÍŸäž‹‹Ë\²$Àɉ 3𾋠L]­­CÝÝáÙ´È´¿¨xˆL1ÕÛÍÍÒÒÞ9û;gÏfü—ÙÙDÎ9þãØsC†lHM¥B–áxùä Ö°„‹Ÿ]º\wÏûò°aÄE7v,úòÄíÛÈÜu99±ÞÞÛfÏ^2xðG“'ï;—œ(¬áçwláBŒ¤††ž_²$¦o_q$i!öjõÞÂBH‰©w“’žß3w®ƒÌIA¿uß9’P3™W´Ã|˜IüéTî¡Ó~«²wçýå£VO¦R£ôôÚîæª»ìÔvÓ#–¼¢¦Ç/Û0êéÁ‹ÿæ7âÉêìµ×2hŠØrê;üåãšq/¹ x„¬!GT–z:j®í#¦êªIh¯Ê+Øóï. C—gðpZðEð¤7QWåçÖ£ éÏÀκ⸥[ãŸÙi뮽}Ä£UZÕ6íU¹íÕy“`“ÚÉÛÁgPCÑÉöš Q‘›1 ¿ ™ôË3Þ%—I´ìÌZ§ÄY4AÈøçööû|ô¢/#æüYÛV[³6c_.ˆ{J¦´´´‚ô–VC–íÒ$­4ÿã°ï@ÍÚ‡˜®ìÔç>QqÏl÷O| SñË÷ã(ìòëAóV“4ÿ£aË÷)ð@AbžF–ÞÓC–í ÷bXêÛ„FuMU—w(­í‰ÞZ9xCÖ$½õا!“Þˆ˜ûá]˜_W¬P©ûü„?þ ˜¡á8'¡%_”÷É)¤üQA9)%cC/œ* £¢Ÿ²>M IÖhØ]@Ý&r‡bÑ@gçDÿʶ¶ºÎÎ@, a*E DöMc>Œ¥4ôN[Û¬ðpTžL0À^¥¢ŠªK9Úß?ÔÍ QHaj¬!@ À²(lýbà@h‡‡0xRPkÉ(*êó&w@T 0]YkkvUݼíí™—¢›é¡¡°„ó¯ÒÒÖN›Æ¤tf®ËÕÕ ´:I†â°NZ­b_#–!:Ó#æëËòEX8uÀä/Ú—ø'1R²­Ü.¿è`–) aŒã ù0óOª°Ðuµx„Ž‹vWøì?ú[HJ¬.ïÈ­Ãsq‹HwÕÝ8LÍ„•*k'˜Ä9œƒUÍ¥YœuÄ’wÜlP§ën%èà;ÔÝXfeïF‘b`²¾àý“V ™ŒÚ.‰þ‰KÁXKiçÈ#ýîáÚÎFA#È'ê^8AÕå§›OÜ,ä96ߡҋÈ*ÁXpáô=íÎÃí½Ã»š*´íµŽ~Ñn¡À$ö3à0VúÆÌ@Ýv·ÜAÒy„'3;àGÏf"“"=(¥¶ùö÷°q6.~Xèi­AçÁNkgü¼ø«˜'ÖÁxt'¥ž-e—ŽêEÈ"C9ç¤I÷Yªl;j‹:j <#SÈtv·Tw5ÝqòlãX{ý€AÛh =ída=#&ÒÚÝZcãêÿ}! ~ÂåÏEÿAÄ çÈŽ8oo¹´’ÿ1†- ^ööh¯{‰ c‹Ä0’XDüsBE77ƒ7pâïäÄIˆ›‘RX~þ¾òÉ}T@BxѰ¿°ÊOp Úu:‚œEÝÝ­OXfjŒ?Ò¿¿ç SÃýüX,ÔKe;@ú\y¹(T»-]:Öh r~B>¾8t(ÖXyœÏ–7¶çåá¸jfv)ƒø¿-D༶½}L@ØëêìÄ&Î`Í¥KŸµz}?GG²¤ìDDËÊ7ç_?óa ”Q³²£pùå5(Å+ršaB¨h.>[òÍꢌߪ=½cf6¤û•ôEÄ åÔV5•d¢I\Á$µ£—(A™yENm¹ÕT|üÔ^;@wÏÈ)0†À ç¹Û_a>€"g=-U=mup‚ð&­ö^¡x…Kÿã_?€ ȤNØäíú7 CÌÑ^—{”t ?±‡Y·àDˆ3¤õiÝÜ×›Ä$ñMôÇ1Xd.™Ë”íbvÑY–¹÷î+b”ôC²sbCCH˜—Mø£qqùÕ˜1OžLgã=ð¾ouŒ…©¦» )gòF~–sÿÍyø‡¹þÅ\ÿÈ*5Þ:}}Ë‹=mµ„ÙàJÆÚÙ»_âÓsWãOuönTºŠs‡¶ãélíämíäƒàóŽE]†äˆÝ| ºN ÙDŒCóyDLF0!©sÁº ;jɈ•ƒ—÷à_ôKx\l&àK<ñ-äò‹¿Ç$ínžbÏ;)F[·µc_+{O’”ˆÅöêüŽÚ› ¥ Ý$ :aJd…A9EE«üˆ ­À[À=Û{E²•0(ì*ns]ßú2IP”(.xò/#ý”f¸xÿCBØ õ>Œ²\YLÑ$V/z æú—{ zˆÎQÁO-o-UûÜoE°‘"0f²k­÷°¡”.’ÌÛ5gÎgS§~1mÚ¶Y³žŠ®À†TšŽ½G߀æ2½ˆ ^¬¬$s†å-³f±qÝôé_͘ñ_ãÆAB {ߢ% |˜è~šH±SeeäÐÔÒÝ}¾¢Y)tªéZòRëÕêjúÀQä&¹O R¨ŽA5+)Y=iμŸ”Ý…VaÓ…’Ài&EªB]¡¬+³¢Bd7e©wÿÍyø‡¹þÅ\ÿ¨Š„(¿!$"'ö'$B;©è¿Ç¢Wy„Í|7vɦ¨ŸE?¾ž¬Å žƒ&ƒÐ ûÏÎÙ¸÷wKj.»\½‹°^ߘ4æÂ |¤OðÄ7ãžÞµàs2p±OýÍ+&½HSÐK¨Lª+»­]üØb¶æZ£lœ}PuyÇÉÛùÄ͆¾bS¼˜'±Dá é7vÖäì%o‡`U;õm*>K­,N²:#F%·•ú®fËu{ð–c„:²Ê”1Ñ]ßh²}lÃ|𢾴»±Ô;v&X2Šé#B¾'üøÉ꿟GþO`€mì0ã‰èèõ99ã6n¤ ‘¼[ú(ñ€LH:üD¤oxH¸ˆBÐP{‰HJÙ´‰·¨@S¶è¥?Mœ(¶ ÐHÈxFD\T`ƒÝ5RT–)°A)•“ýœY¨7•ˆH»'g×Ô¬½|™ ¤¨Þä=mÈM¦`ˆ£•Õ C‡2µ‡Ìž´q#…3€‡¼ •2s""(¹’ËàŠåSÃ|{}Ĭ1„bN”ñÁ[·¸ºÎ80·¶NóÊ´ÉÁÁlN8Q\Œ}¼çåÄ~Ù‚Û@ŽÍyÄB‰æ DwåÑ£€ùEE¤0?Ÿ:Uì)D’²(™ýb ΋+ÿ’ü¶ù0çÿ¦¿}íëçØÜæ<ŠG<›og² Ç6˜»hFzFM»“ùU[å5J.Á[æÝBÇùÆ?JJZ„LµIË‘£à…—^R-¢²wƒU­ÁÞ+¬ßÈÅp4óãitèi¯ƒ%¾‘ã^ÆÒ©áŠrÌ–¨ÔŽU7é:üG-e¯=“à„&$”­{‡¾Ù!ÐPð­‹&ÕH²Óxš5Ù®@®ûä)…¾$Ñxþà ^ÑÓxEYCÁ Æ*(T!ðËì‚U¡ÀWä"ö5ɯ]^;÷ü‡ÉèÔ»zÅ26îï¸Yu·XàÅOgxFL¦t•IÜgËÏm€µ–ábñ±?: !_ÈËEY #‹4a%ÈÏ\=…*.BS(ÛoÄbâÏì<á/.ÊoŠœ;Ì¡¡Üa~ÿµ$€w¯ùYJ ò›ˆj&áÙúÔÔ`´ÄêçäÄÛa(¡¤vã©Áƒç„‡УôvDܘÓåålØ>{6Jñ¡çÌÑ:†l™<Œ,ä ïŒ^1|8¢;òó©~‰7>ø9èá䔤ÐF\ŸDS¤—S0ê3Ù«wþÎ>£üý×¥¦¢®kBeòF›ñ d¢Þ¤QÀ xÄ‹]0BMcg'×—ÅÅ?\b‹!¯¶a+$ ¹T]MSzj*Exz~2eJ«+róxq15®æÏ-µò*pÈÍB +¨¯òòb3`f"Ô!1aÞ$Ç~|”¸ÉìªÄ&œ[µ 2RܽÁÀûTñ*ØÕ•Ž24Ç?úa~¹¸†ŒŠ~¯Wtj{M!i,:eie–öÞ"˜`dÀ¨gHòîMÄâÓá¿xAƒ"t  äÄÃZZÔ€ ä×F/óŸEj_4á5F‘l­ÈñŽM rðAŒ~Ö±ß`¦CcÊ.Šw¯ ì°æ?_hP ¡ %a8~Mdq€f@âÓ\áèE͈èÇ×ÙycSÈ»ð™ï¡MëóO =#§ƒe«Í¹ÿfÇ}w»Ç ÉýÇ.¥Œ²÷ ‰y⯵éÖYê]2ø‰ Äxí<D>ºÆÎkëòŽy„% ]~€¿ ¸EìùsêÝ7:݇ìý€Ö>CæöKx’2bËÎñѧ;x‡7žä^´‚"š¹QRÏ'Ë`XlÆÇ+Òœ\aÕ?Ùø§ògóÒ?¡?¤§ÿØþý©NoÂu`OT* ø÷Úˆ¤²à[ÝÁç4ñDá¥éŽ!­çbzöé#Þ”ÿØñ¶2!Œa™ÎOÇÆÒèÉ¢Þ„s(R ŒÑ;òfpF¹¨ÕXàœmæbŸ>?±C7nKs9ÛØdÄ[¨@ÎU’?P‡àÄZX2{äQ‡øÆ*°ÀÒ¢ûö¢,Aˆcú‹ p}û 9¤I©Øü$%³p q‰¬d¯X8£^KHÀ FNJõýäd¡ê‹›mÒ}cuó##¹ó­Z-M, þáKÆOL™‰ùxÈÕàP¹cëê/ñ¬G&1‹ëÒ|“ Ó$¿0v9­bY7p` o#Óu6s¿ÐDM‰+RÆ _…¤3êµ]°ÓwØ"‘€¤ïL#'ª4É+a6áŸì'6¹â>0ÁÄn (D6‡¤§S@, 溶£‰þl· žð:QXZ MÉBÐjÂb¼sÿ¢ïlºK›Ò ieÐ÷0ÈÙ?Ö5h$«€0g˜‹e’¿tðŽˆZ¸–à¤T2ë»Û}£†,Ý&ùˆÔT#àÍý ŽÑ“Qa3~oåx†6]€´f =°vXÌ“CE€`›‘;/H}bg³(zâ­¤ÎíùsËÜCóþ‡ÂaaR „"M]R«ŒJˆ’ô™ ŠÓ‰¢\r"s‘&Ñ“±¦ñOòaPS„û \ôäÚ!SÏ\&écjA%Y°”XKô`({•¢˜šþ‚^-Rë³wn¡U\]oÇ1'‰×Ä”R´ýÀ˃՘¨/*ˆ(>X¨UßÔª ÞEQ!¢âƒ—$*ˆŠ}óÕ7Á"RÁôÁÁۣŚ‹~1‰¹xNÌÂÅîì™=›ô¤ßÙ$®Ykí5kfö^kömåû‘F¡‰hq^’½\ ‰ 5½ñ`DÊ܆Æà{ÏáÈ‹®¬wEßCy*óRh1(·”Rø&‡:þ‰W±«þgàá!SÏŸH dÜ`?)Aùô~à›Ÿñ¤÷& *%/xKzW¢&b™\¤†£>‚;°(À˜¤è›Í='RùÀ‘ Q~ð-û Ø›A2èrqE…|-ÙZŠ %uáRL¢¤"yÎð@Lÿ|}ÆšRA”)‰fô"2 -““t¶’4\ˆf9Ïq ¢|&3yúÂ’DP|@³DQ7Ê| :Œ®4Ï=Aù ¨ßÿ02Óì’´ÌÛ)©ÎT0׿˜"³ „)‚N3¢iÆ„c%ˆ)’œ!³e2;bû ’ç´#¥žÄìÄμeª)“£´T·EYÕÄsÕôë_<ÆÐƒ ý½O0„g³‚ëbm¼(˜r ;£PZ„ð Ñ7×n¤Û ´¬½þEi4M—lbé{E[éÇ«}é,ʯ. •U6ï¥qvHsýË8µaÌa ¦)8ª%E i³ Šþ¥ë_‚ÿù8EýRŠ|´=±iõjæü´ #Ð ¥~USƒ”‰FhSú1^¹ïŒÒÅúi'÷ƒ³¡À­0ú1'tX˜Ê÷ɘ„èÑDIæùh1'ÒÊÚ/ IŠ>D”`ÿƒÝþ¸ŠìC`Ê= L¹ÑÅ3¥tþØÅT~±¨¬î°ïÿùá!#¶t•>«ûŽÕ.’á Šh¥(߸AÊžè̈í!ób£µÿA7S(â°à°\,ý·-ØÌB±Lå;4 V¯0œ¨ßaQehÒR6)ê½M@:?Û±Lõ0«¸lkE×÷ÃÕê7áQÐÅÖ†Õy6„!³Ùæì!ÊQMè"¦#TGm#j<Ñ%¥1n;ö…(ßá¹2mŽZHt8ÍÔ‡x›èIÌÕ˜ÈöA9އhß„´Ó™R[AiÇå˜Ì ·af#´?ôeÓ©Ãö¡¡onÜ)—…¨ÖþoxZ>wÒ*­£n«ÈÉw›Ê&lãn~šÔ>,Ö¾}-Yv²Ã_!ÿõ§–ß~þ1ÚI¨4ððÈo»ƒñ5âv äƒà0,yþóð}ùrÍGU¡§"ßW(éCñð Á` ³L#=þ9ÀÀ͘ñK[ÛÈŽúñOˆÿôãŸT¿iÓ¦µ´¶666Žc´¤ðGÐøßv}¿«£³3 Ç¥=;{2E5Óª¨©ìn}¶+28š|2Sá¶c_ˆòž»ƒ†Ð‰§™r{ëˆ`1WíûàŽîh¯j™ÑÏ6kÓîÀ“þ_C}=©j´æÿ*r¹Ræ?Ÿÿüüß»w9¾æ†**9üüßø0¬¬Ìå*ø?,aþóùÏç?Ñùýïb7_jxxócj»ˆßç#¥ÔððÐTõ!Êp»±‡ßvíᄇ¯a™EWºÌÚ»5ùÂÑôáDÇø'–!¤§bJUa–5‰Än>R÷€!fµxÌa-n—õððˆÍ1CáØ|Çø§*ˆÔŽjÍ̧ª5;.%Ž‘:Æ?1+(V\QyF† P®àa瘰¨¨0k•òÔÅ\:Ø„Fq‡‚ F'ЏõŒÅÒ›ðÃ0L3ˆ~æA¢È=2à?;âá­C[½¾'òsNЄÝq ¶Ž„£áhcOì¼(C;N§­Þ†F¹ÄÐqΨ±Ü@€.Spñííí/^¼°ßòž={öüùsjFoo/Äï ž>}ŠHhÐÙÙùòåK¡ab hÅÐÐY&"-%U¶ººZR ®Æñ¡««‹"ªiýŽŽûŒªÌ¯õ±öÉôSýŸ4i’¼Úã~ØÍÃ?˜yóæ -ˆŸc1S 4Ñ~?4qÃn†ÐÂéîîiZÜ %¾zõ*V ª©©Ñ^š¤Éžžbt,’hÙׯ_Óðc‘ M=$L‰ÏðcˆË™:u*¥<T™öÿ¨ $§U«Vmß¾½²²2¶˜jíÚµ›6mš5kÖõë×¿Ž°páBˆeË–-^¼XèE‹QvݺuЂ%K–,_¾¾0 ?~L›Y±b"JÁBlذáÉ“'&LU÷ïß_³f Î?~\í(¤,õuãÆâÎà’©ÓÖÖöðáC˜Ðê'عs'„>kb/Ðw;<üƒ %’ nÞ¼I¼w﯌p„?eÊ”[·nÁ¿}û6ü•+Wj»«««“«±bïÞ½zhÇmÛ¶Íœ9óܹs”‚c6Òúúú£GVUU©?'NܱcÇåË—ÉÇècGÍê)Ž9BÃ7#©)ÑŸ‰.TDtâz'Ož,)°ìÁ'e yÒt•H æ»òà5„ÔÜÜ|áÂ…+W®ìß¿Ÿ”¹~ýz’âùóçá8p ©©IfϞ™3gZ[[…9gÎ8}}} ,¸zõ*¥`R•I®<ؼy3]=:‚Ô<ú‚wîÜ™?~mm-)“RÇŽCýfì{;|ø0¦®]»FÃC“|‰¦0©Ðœæ–-[ð“6ÖÒÒ‚‘¥K—RË÷ìÙȇÆ,~þöH ÒɹDþéÓ§¥ÅÑ®çÍ›ÿäÉ“—.]¢­ÑüwïÞ­aáàÁƒHy¥Ö¸±oß>8Ø„èÐ!th§/^zôˆ°CþCŸ&OÃ;€Ö ±uëÖ¹sç ‡P@E³¡¡A5á`®1އðÑÄƓȯwïÞ%A"-»ù¿?Ùµw—¸ƒ ày¿ß„€"' )$¤K@’Æ\ 5pDÂ)šDÍÿ¿"¤K“æj-„³Òî@,ì‚•`Hó6ïw>00©ï7…ü³ Îwfgvw·¥äËâ{û+ Yg;¬q¯©©©¡¡!CŒŸp>]­VS¡££ƒÍññqß@݌º»»‹Ôü™™©Õjz‹‹‹N^¸æÒÒ’Œ»‚¨ó¦§§1…„Ae¢mÄŠ€r¹LÓ,šÒÕÕ+*¡É¿ççç{{{ÆÚÚš\‹{EÛ­â±SdØþ~¤'è‰\ÁèR©ÇkÄPu˜aaxxبÚ.ãF¥RAR>88H‡‘±±1™rvvÇåÑ­­-q@ñ·¼¼ìLŒÎB}”ÏuóCµ§  \(¡‰ï(Ô‘¶µ(S&''… YÜyr½^w;:m%m]ÿþÝ#uærþ" 5Mvúª+ua€|T?¾uüãLw¤ 0/–¥R ºð†táMTY²7E»cuu>00‰)©ŸÂ µ0îV€2M{Ë£œÚ¤U‚D‹T(·É$öI!…‘!ñ$~ܽ% “›Å Ù«5nä*옅§4×××{zz£u€0=ÄÍÍÍiQJ„‚IDÓMi–†q›4Å.ÛÈMFX`6–#p·’ýýý†„µö|ÿ¹¯Í]Ç·Z¡äUpü$œF#‚f ¾CÂH*„‘jõ'ˆ:Oî #îÌÒsà¸6 2ëëëS&fê8”åeCi!Š¡Üƒs¬ˆwŠ&6›M¸\Km'G/¤B‚XƒžH‡qb‚² §b”IÐ4¤üwÜÈU4cð4r¡:ÏåýÆÆFgg'5àæææÊÊŠ>j™Ž."I(@"¹Z+í+úÙÚÅXâåQ5ê Á=ºiÃcñvÎ%T©(ŒÂ½ßD’5)‚Œ²'=5+…šôÐŒfEPÂ6„ I6iá ‰J Bœ4(D&‚i’R—‚ÛûýúpÑÁyŠœýzïq¯ îÿÿ÷Ykm}þÃ:h6›°áõza8Ù.éÀÀXt~>…¤×jµ:N·Ûm4Éd²T*ûÁ • ¢•𜇉ÑQª™܈TÛ)ÈþÄv»ÝëõP‰~0¸Æ$[ŒÿåOaÂ|Rb±²Õ€ÔãÊët:ÍßÉÖZŠ£Ÿ&áf$ÈÓ~¿,Be ã"ËÁ QÐD %¡7) B©T*šeAU+ ÂÑíl•õØî:ƒàqÝþ KµXsþÁA¢…¶u~¿npׯ൞¥¸áÿu XÁxÉX¯@ P(„k£Ì@l3!?iW¨ôBmÖ$4ZÓ?*¹g;%ñ$Ùl7 Ì 2x8F¥G{€îÂÈN&Ìa»´p”À Z HòJn·YŠý_Uä:Úƒ“§(sÕj;Š ò-A{“9S(X ¸y¸,à-ë3‘ª‚ø'Ó;n8ŸÏÇôxèÐB¡À›«'ZG„ùýÉo83‹Å"ôÂ0ÿ ÿÀBáõX~Ÿ¡ð"§R)z +›Þ¦ó…`AAˆüäxƒrC Œ dbÿùv¶³ûèFáýAÑår‘`ð$Œ3âW`L˜0¡‹ÇãdÂ$‡v.—öÍÛ1¢d2JPÀÅCÓC󃂩×ëx5uâP¸4­|>ÏýÿÉ•ûmE íŒùæËê(¥ ÅQ…ÂAeÁðŸ„Öëlâ÷Ðâ Ï£qÜn7†±H$ÉÉó‹NY°¡;Êå2ÍIYaÉ)3JÛ))¯È"a<ÿ1>ÝP[ã¡ÝL˜/BÎÂʾ׃P⌅ÿT§Á)Êi(å).Mä @%ÿ×j5² ¹Z˜ÆÄPP¾4ÚhDàä…ZDko*¢#i„Ί?Ù;w©‚ {o¬šé0+‚h¢&++ˆ(‚b"‚ “Œ¢û9¨Ìshè[ Â<ÁÀÞ½Þ/üðsè^ nvª£¡¦ºûÀé¿»ºê¯: O÷A ±ïþk§à ˆ……™æ‰ø¡è7á@"sœUÉÝ=XR)´dFóÍ<£¿ RøíâhÑâ( ª¢›múæ£Ú.:̧Ã(çþG¼G%þ¡Éd"êüTIáÐÂÒ¦œ¯XÞNõóP }ËMŽX˜ŽU(76P½¤œ÷¢IÁÇ­2F£iòÄêt½óŠ, *äšÂm>cÉ€vŠ/ÂKä9 ë÷ ÷ÊqÊàμǘŠç#¬ÙÊgdŠ|Æfá(êŸÙ"ü†ñ¥ß–+‡/—³1šè¢5šÈe bŸ½¸ü%½lpAú¢¸ƒ<òZúƒt©/G”kZ(ãN§i¸Ý [´xFê¤$¤JIÊA7ò$h’ì8c’^HóoÞ ç'iD@̉óNäëq-Î5“ ªÂhp þ'‹‰Uý©ÛíâœLª?À?îõzU²%QºV«K=ðHˆR:u¨ªÐï÷«eÄ/¥¥ÄdIî‹øî‘ã…ùJØÃ/Orýy“&~|4IЦ J -B±]ĵ£°E‹^¹ÁÍA¤E ³†DMävÕq”nAŽ/¼'£±oàÀ¤¬oí rþE§ÚK— ¢&ÌíNœdDô|=®Ñdë@“m¤ªÉ8pMÙñDœ 4úþ§tQ îÁòrIµ‹ryªÚW]Çð3ádRðZg•‡2 8ü¨Ý—œ˜rd°ò’ ™æ‚‘ ùÿ§*¹ˆ œèB\šP—¼¡ PIià‘È]ÆøDIZÏ׎’-^„?ò@Ú-‰åØ”ÈIÄ †ØÐȱt¡kgL»Ýdú‚9zQ;-¹P²/qQÚÃá/ÊŠb梼×:çØ:Ðìt:vVÉ‚§*÷`0Pr×]£þõ?öÎ4ÔªëŠã/ÆÌ­µg©Õ‚ ©CœE­ZµhÇ­Ö8Ô ‚ó\ òPpLDÄáƒ8!"p@ðƒ€C[[Íœ?\°ØœsïæÝšrÎ}ùÿ?<¶ëí½ß•»×Z{­½†êQüÅÊ¥ë_ãy(èÿ¤ƒ)ßÊ9‡SË„´ÿ¢û?ãáîÕd‰{5Ó“‹Ít–ƒèê¶¢jÁýŸp«%§cêA/èÿ„ÖË6„rÃýŸ¾èîÿ,V†„’ĽšñúÝáL§#ÓH¬ª"ÝÇ‘O^êþéÿKUö‰ŒÃ~#•••Ôe¶q†TµŽè}ʈGXÛ‰¥õ°ä3³Õ‚à /'ècGãÖlã5Ár%«.jŒB,H$ƒ²N:GM¼¾¤#¿ wvbzc¤éé­"«Ò;„«Ò“3 ~þôþNwbÁ™á ½¿ "ÅèŽÄæ!b±O˜HˆŒ//ø©|œ^Ù3ü ‘ÿNúY{RRþiZF2oèëˆDÐ…»EfFèÖˆÿ¡Ù?²OzÛ’ö·qdm|‡øGõ~#”L"ášXLóbß]<ÿ'ALŸ¥8÷%6IŸíË#:âû8=ÍñOîsâ¢2±°ØVñO‘` &M‹¬¸ÄˆKûpZ\ú¥·Mã‚¢5¸@UÅÙÖ(%Ä¿ø‡x5kOMÔÙÉOð‹B`ø:øRÄ™CpUU”’ÿ`·ï¬!¸8pBä'AJÉj|Vè9[ò‡÷æSÖB¶þOù?+òA2¡tÿgéªh7ûO¬–ðžþ6¶CYAmôEèX–$B¿"Âéq!#xvZæWÐ)ÀmB#]tÔ‰ö qëvÕ¿ÖA§ÎzØ# ^…®`p‡•ÄLêÇ_¹råÎ;Læ¸Óf¬AƒhA«¸Í¡÷~ca8o½zõh:?ä_ù ‚àý†@´ /¯°°.¤4Nº{÷îñãÇ‘ˆr×Z·nÍÀM0™¨ZS¨aLf­ZµXˆdnK†À÷!ò&'Nœ8iÒ¤•+WÒ_pÁ‚ýúõÛ·oç+íxìØ1ÖöíÛ—…6¤•mˢЉÚÎ鋬WíÉ“']ðÖ¦™»íµ±ùìAdóæÍˆ‚E‹­Zµjùòå´Ñž0a:ÏE`Ú´i´…¾Ãøñã)ü!o–ÔÿO½Ù³g/^¼ØŽo“&M°çè©»lÙ2ˆK–,¡¿%3)VB Ü7nÌŸ?=o [´h±fÍšS§NÑÙÒ¼¬9räêÕ«.\¸téÒ¹sçÒÊrçÎ6lÀqšÿ²‚ `ÒáÈ¡Y<ìX±b Ö¦q.üŽ €8eÊæÀøÛ¶mÛ¸qc—.]œ;wnÏž=è¿›7oÒLÛìE$ º°‰–³á°aÃnݺ5cÆ œIèQ¤GE&Pÿ#é¿#FØ•6Ð¦íÆŒ3yòd(Ðñ^rˆÑvh/4ÙÌ™35jT·n]®o{÷î­]»6=èqbxï@l¾©S§b)Òè™É»víÂ4¤² --ã-ç• ÁóÙ¼ys ¨º¡C‡BoÙ²%о†Þ¿*¦bÀmß¾“nË–-=zôÀ#Ú¶mÛµk×¢8Qô[/‚‘ÂBHcÇŽEebA"7Ž9‚Ôæ” áYã?Tà£G>|Hoe~Z<‹S0û¸qÊ/^¼ˆ›´OŸ>”‰bìqÿþ}7š6 ª*ÓÌÄk"«X˜ŒA ÛpU4/GΡ°C}‚]‹y½s±@ƒxX.¦4¥S`yl>ŒEœ=ü:j •†dàŒsèöíÛþ°û³ÖˆèÙ³',À“¡¸ ËøO…À˜éÆÙµžË¡0†p\œ8qzûöíñ@·É¨=TÝôéÓ1ò8ÄþÖm‘`(HÆ(H¯)/ˆ¶aE9@Ô|Î\—&Fa  (—zéÒ%ó! 0ÇØ—ÏP~Ož óˆ '|À€Ä‚‡Fܺu+ï#hÊÿY2ÿwÿ§ì?³Û8Ásš ÈS~X{§OŸnÚ´iÇŽm ‘/íÚµÃæ³è¯ÆÛ?+ªAqsˆ<°¬ßPùqWÆ5ÊÛ|H „ºgB/n‰îìСÝxpæ:ÿOþOtbºãÅγ0sâãпpá¼yóHpHçÎ ŠöC† iÓ¦ –_à)o‚`Ùñ˜n80/_¾lÌD-V,$¶# ²„ɘ"äyä 3±üȵΓþ“ý‡êâÈŽ5Št=Si^è«nÓ¦M<õA!¤sǎ׮]ÃíÉE V k‰…1ÊÝìÁÙ—&¬…çÏ–êÇ3cÿþýˆ‚ëׯ#,ÁQ„þC/šµ‡j¤æ 4§!ù?uÊíBGô&¡Yfú}Íê!qÜ) ø%Žøxë%Ü ;uêpèWP@D*"œµ96áw2ƒ©gƯÜ5JòªÑCÞ¬@ ”<ÆÁ©þ™ú?É[Ýô6ðls}ó‹Â lwCÖºÿó¹2‡Êné‹Üÿ k[RS(€©@¯ LÕ1ðM Ø0gPý3Ù^ú=ÝÒÝ–©ƒ"tp~0½˜è [= Š÷ ŠS^þÂíB7òÂ~¢åjÿ©þ‹Pðí:«Ú*;"è‹X~ŒþOAn7A_„ Ô@þ—½³ ­âŠâx’¶3¶µ‰µ¸ ‚[íÊB"î,DíÂ…îDW…ø±TŠ‚DpQÁ"ª¸è¦J1êJTŒÐ,#u£ÕÐïÚØïÂa˜ûÞ}}æÎ{óÿ-‡;3×KÎs¼wî9§Ð æU Âö‹¢#\óW%@sU­\ÿYØæÂ¨Áirâ…9=[’e‡p‡™Q ªY! |·P]Ò”­±L?Ò!Þ½{9îT¦Ô‘¦©;âØ¡âû8)rlµ>þ/I¢UˆÍDŽŽåñRÁ5¢#¹Å[ïÿMc—ƒT^îvÉ®Ö} Ù ~»ßUà)¿“Á¿9wgÝñûý[»5Ö½3+øýÛ¯?ëªÉðǖ혇,8H}µ!œ ÈcB†??uƒoü÷ü)êÏ¥ðÛçwâY†À+_¿Ñ÷cí¾AŒæu•ж›¡ ìòUòñO€˜…Ý»woݺ•_áÞ½{“$éœó/ÚÿÔ.A?lnðËéÐåË—ã·oßNKwUѶ›!Ë@´Ÿ³ ì ö°fÍš#GŽ,]º”FÜÝjÄÜÅ¿ ÀgãĉÙ”â¬ü\nUËS„¸7ÎÁmÙ²…ÓÎÛÛžøB;üÙÕ¾(ÿ‹ÈÖÐ0ÿçÚÝ PÁY.„°õÄ8d­A{ç„’ÿÓ´69[¤Ñü_Ö/Ò^©¹.„,ƒÙ¿ˆÅÛ#íüŸ°éëRù!Ã+Èò4ÁäŠ „ör2¿ÈeTÿAѽ½½|ÍF†5´È«,BX P,íÈI’ §iÚ9Ÿÿµþ,û˜Ö'OžÄ ’ǖÇWù;Ÿk@¤ÓÆׯ_Ï{ö챿¤BÄ ÌÕ®vGñÂ*ÊêŠ?¸¤¤»E¨2 ;“"dXóaðvîø2þϮΠâm­ÿ„Ûü´*—ȶÅ]FY+o ïä®ÎCßÿtÊ 2íBYO.òB!„ê¿»¼è‘‰§Œ‰°…Ël ¢Mè)Zм76Bôõõq’È‚L""œ D(¥76B*!ÐS(I¹YG£"ĵk×®\¹299ý{‰0 ”‚jF£"N WÕúø?j÷Ä644ÔU„p§æ¢#üX!:BàªÞÔÿ…3îd¯’¸+MS’”ç¾¾øݫȹÎë>…ì¿Ýï*ð”߃Éàßœ»³îøýþ­ÝëÞ™üþí×4j7r#ûnô‡µÃו/Û¥@Ÿ¾šärãb(ÇÇÇ©›È^ÐhÒæ¶] ¶‡»j.x¿Q{`HMï ÷à-ÜOØ,€ ìY¹rå²eËÈàŒFé®Qv@ð§¨?—ÂoŸß‰g¯|ýF#ܵû!0ò°Ñpr£L\x´þH|s䛬°ÅZ{ë¹¹õó»õå°at³qddÄrL†ß‚bßÿˆPI’dmT„èïï§h0u™ÁÑË çÿPJA5k£"N WõVêßòÀLl„ F å‚mA aKÔRfb#D!›ÐS4ÑQO "³‘ÙzŠ…lv¤-âÿÿ )BˆJ>qáül;9x©y'Mïä6ЪEi—¥ˆ’Ï+Ì‚•èó/rN Ü9wˆžŠ×ç#n—IâE,’×.¥iJH¯%eoÚ „ÿ¹j”ÔÔÔåH²iÓ&ã7nôÇ ú5•üÑ·AƒY•T5œß^vy*T,CÕ,¸ÐиPÕdD®46{4"6MÿKx&ÿJÁ5«Ë,•E0¡ò¬_K»)¾ÃW1_·n¤Ð{¢}Aù† ¶nݺ~ýúð»îƒ­+´IʨFh=õi:Ô>µÄ}B­ðjIV\c\Ž5tèÐ~ýú‰õ$dÎÂ'‘&×Â9äÒä5kÖ€5"á#Ù;v”Dz„9ÜU—büyó€Ÿ&;–o‹Ox eœ©GuÙѼr¿÷T¨P¡j¦{”ÅÍ”NMæ©´¯*1zôèÔbB-–•±± `Uƒ]»vK×RdH¸¼}ûvhˆHž htèÀK3¶\cZË–Ç}æ¥zÑPFUü3i<+Yó4$ ¸1{ö솆‚ÞÖÖ–:M²ùÙçädQ¥Ó¥¢Š0sæL¨=Re„cD¹Î‰ åioo§ öÉ ñ¨wCŽ :ÜUõâ¡<ŽC·nݨAuÙ®¥íbT¨ü•ô+§¤Åÿõžé)Í•ZÁ-çÌ™3þ|ºLÇ…¶»l~ &™eàç$p«W¯v£ËFyÅ=²HDÆþv‘“ên H3Úa<ÂSÿ T)Ì›`CWss³¸9ðτĖó?닲ýžÚObË]"ÑS¶ïu7ÿFýX¸p!ÁÕ#Jdc0(½NòðψÃ7,T”DvéÒ…hr¢˜x0‹r &º¹(Õ„ ¢6`fÀ§*T÷–†êx†„p™”$ÓçÒv±G*T~ˆÔÛ’™”LÁîÿ 61a[ìˆà–$jZ¸©9&¹¢êL®1ûœ—PÆ[ºt©ð·oß¾Ñaž@fA¶G÷>´£3âouAÀ­xb¨¼§aøðá $Öëaܲe×'u¨g(?á¶ÔDé8É@Ÿ”¤iéü”LÐã>…c+@å¤I“ì„U‚(˜Õ~ËÀöÜWù(žë^_ÀN «{Z¶È´A8*ÍW ·Î=z¨D’rõ9ŠaýzGÕ­ä¹$M!^íõöB… %³ÀU¨·I§Ò¸+€1í÷Íì@\«†qu¼‘˜U¨´»Š=ò™Ò§íÉY òa*÷™L8?îsíÚµÁ–ˆ%ñ¬’?¦Fnlj²ÖRhimêš¶Ä×)‰Ç!-f÷T¨P¡ØÛÒÒ*–Æ$8v¥éHî¥0‘Îíäç–/_î-ÊK©Uâ]%± ÄWáInÂ*|05î³"‹JÍÉ)m`âe6å‘›‚CÂÜLý/òEœÓÁ4h{ˆ@êE#¾¢}CÎnä‹LG€^ÿ°w.­•QOnâ 3£ .F7*‚ ݈‚Ìì]¸4 ~…|ñˆn ¸W%ºE|.%"J‚0 d30²š‡&óT“øãþñOsÏtuÏÍ5}'÷üEݪ®Ó•ª:§ºRç1¡ÈóŸ]wº¤Ê|’ÚÿžV?y™è8(ã?@Æ~ßå$IµUõûîØÿìÁòe]êÕp4ÙVUECV-®×°m€ì T¾8’Ê ¼§fš)4vÕ3K|5 Ÿå˜Ïùà’((\×R™û"‘ jY¾®Ð(ÓqydrÏݶ *cßêHµémìIdÒ8e‰Q”ö¦Ü,ý"Ù˜–£Œ=pÇVÕÒ¥w·SöºF"œå¨1>úŸ©ÿÉt0){]#‘ðÎ:zýOÒÞ ‘ÍÏ„?½»G"ÑðYœþÏivȉH$z'Ì·à̳j¨«üH W g‹í^Eƒn?«Ú#q¨1VlíÃÆöö`M8ÁæùÔŽœÑhn‚ÎHcÃw8Ñ;a^Ûe$>F™~F†º#‰+ s} çF&öNcÔ‘ yú?ý”æl€YÑëÍÌôfÒd¾¼Š/cMåÇ{=Ì'|$i`Pâ8´ øà¸}G#”E߇&b—Ö®²³?ë© Gî2Ï'^3ñ‘‰ûñ àòÚښ܅À›››„ŽÔÖ2ÏÄÎ%ž;Ô†>ÿÁ$Ár“ø[YYY]]uU¢å¨NOM“?8ÜgšfgîÛ½uù•Í<ÿ5Ž§äŸ·¿Ý»}…Acè@ªLÕÞ‹Ö2ðÎÖÖ|´¼¼Œ@ø¨¥¥%BIPEß±°±±¡à*G|#zòÛÛÛDÀÆ-yJ†#²³³C·ñwo­ZÿE|§ŠxîÞÂ'¹ÿýËÞYU\‡Y€qù‰üTP)1,PÄ5H”MÄ\ Ä ±ÐH•¨T©Ñ¨¤¤BiPIT0bHL%Q‰%1&F:b ‹ŠƒD–Yȧ8V׫¹óÞ“ùkÆšžª[ýúv÷íî9ç|ÏÒ÷v}gó«3Ó׬Yƒ>¤Õ«W¿ð Î[òÉ'Ñ“ä4ÈçŸ>(>ë‰ùlIò¢äž›å4goþ¿lµT’2Y—¬„¸îl¨q `.þÙV·|ùò•+WyºU Ïì°¥|…ÙV®uÅ©¤ y;C/©Ù[È÷ß=Û­ypø£_ºgÅ”@Äf¶Ï>¨­u ^=ì§Ç[4KWZRVÒ²Dy°X“³ã¨No‹’TÌ ®>Uƒmï¿ÿ~@˜‡ßx㠎˺g•¤a;äÖ°Óa¹¹3Z»v­[¶;æBc¶Ïýqu¤\½¤‘ú]›ýŸ¨5x×±ËwìK³gÏvs‡€b(w‚*s*r HZÒ¤¤:/(IÄGUŒ&Ú…Å‘î7ÜpC:cOyêYÛtP_dìžÛƒTÔÿ)ÕëÿŒ>ÝÕ6·Ï4ìÄé‰4; Ý†Ž°ÂÜjñŽyòë6 K²ùk"›àþ¤jÇ£«çŒYÜûöåÓ6o·¢ìÀÏâÿlöܺ­å²h–Î~R½#lA ÛälÁtÌ5¾âŠ+z~û¾t×]w1¹z¬¨àM@Wd7)O‘ë„ 5¸)—•¤¨ImuD-±à³ÐK…¨¦Bp\âÓè!œ™u„† Ñ[>ÿgöVÊ×Ûg!äU®¬pMR.;ÕTGóˆø$¿nóùï‹ÐCy©Ú—”¸vîÜù¼óÎã÷àL@ßQ±·ª‡z÷î|é°Ù:G´«‰CÔÁ ®ëÖ­{ï½÷<«}ûöÇw\<¸R“V5õéÙ­nݺ9¸åÑppX—Ÿnµk×N1˜àzÎ5ß­P3qš×ÀãÜKÇ€õìÙ3´W/c NË={Ze%òxÃd)¦ ‚WÊkÕ§i²ÎØÄÀ_Ò¥V×V——”·hY²³jÇ’×øøšï¿ùᆊòí*Z}´³Šå§fX0Íï¿ç»†غ´eÛŠòÍÿóŽåßzlõœ±½¾9ªç¤Šòƒ¬\UmUYIÈÐ&¸@ˆÜ5ÞÖ8÷Üsñ#C ûHå ý³«Ü=ôÐCI¼@2¸b)qÃ+d…BùW^yE5å=zôÀ;:!a°|àS€ _¥Çy ŽëÕ«—~äÝÂ’o¿ý6Oi` ¡qØa‡ñy&ö)dA={+%}2y™¶Ñg÷îÝ*&âÒ,5ÇæÆiÀ¡â¯_¿~Ë–-Ê9æ˜N:Yœ˜2‘bFæûâ‹/ª$›ÅlrØðï¿8"ò³ÿ”/ Å–ÏþDI‡ ¢Ï­†Ê¹I—.]%/¿üò¤I“€©Há-·Ü‚@Q hÉ’%ÜS¦Lñy 1ƒ+V¤~N>ùä±cÇ¢A€7kÖ¬øî* åZIdzùå—÷íÛ×àè¼yó6mÚ”zP~É%—Ä ë¤¬“3{ -"\}¾ûO§ãŽ3Æ­GyÞ|óÍÑJÉC=„ÕY«¸«²²RC<­XÌW]u•:VÆ ˆ[Œ=Ú¼pN¿~ý¬daà),ÇFÙòìR¤Ÿ ù¬ÿ'Uÿ|-ä›ûƶJÈwh›Ò½-j«kkjCÝ&ølïHÛžÙ2þr2õ–g«åæÓ|%©<¥:]fÊóGJÍŠ÷Ÿm’¿µk®h¹,¬(+Ù´}Ãì¦/zíÁ±½¦ŽÚfÔ "*`áŸE•³¢‚"+ ŽŠý÷9JÉN·ÿ3”/–*§)§³ Ä¤â‘øä>ãiÑ¢Eà}PÊ(hBå¨b!VTüCÀ) f˜÷ÔSOé“Ùtúé§¾"Ä„ìÇÙgŸMµ¤îq­,X°àú믧FÝwß}J.½ôR­ð† Ä3Ï<ƒOô y6ûh… ‘æ„ hÛ¶m]búôtsñ<ÌéÑaëÖ­æÕ¿ÿ#<83Ó*]{íµî0à‡“'OG«UZ¶l~`¤æ ˆF{øNYIyËÒ‚UK×ÍlõÜ7?¬lSÆæ+µ•ò•´Tm¯Šì¿=5»7 0—`r3õ–g«¥|ÑoY¥k–Pð:)3°"ýçûtV½=X¢Ò½e®QKªÞ[Óª´e›²’Û+ïX~½å×{êˆWØêÿ"àªm“ a‘ LŸø) (ÀF¦3ã0;Ø%s  @|÷± AÁ_nRñx|EXK6Ñà‘k®¹†x¡‰Î™3‡¢,òÞ#)XuáÂ…ž;mÚ´#Ž8‚!@HðùÒK/?h)õl¦£CÃNÚßi†²]ø‘3#GŽÔ‰> ’:KJ˜¬a`yøN)s1¼SO=Õ8)¾ÀXžÃŒ¥h$˜rr#öãð™AnëûÓq»M:íÇù®)þ‚þ~Ý-Ú*;˜Â¹(©*‰òàÀ2d``þ‡§›pgÀ$†à`˜:ˆ¶!ˆÈP™üÀLž?Ó#”£r5}W´mÛ6l¾Hx†) 3²¼šW^y¥¤ ºOìò©¢Ã²_ÝüâÅwËE wýŒLþòLµLI>_I*O)•KÙç¦kJ9?Ó# ÷_¨Iê0{UÑýïÚz@+‹V«ÄO‹¶`›ÒOQpñkóØ‚ƒ:èxHç®)}F PXŒîg¿êHaóÑÒ„;ˆrXÅ=ˆƒxqb øšhâĉ¤Äᇎìû)§œ¥I×®]U†4Ey|DÚð |M Ppõƒk}’SÊ|ìÓ§=uèС$‘à>ýãPcèØ±#³’`á{$rãî…Ýϲ©B³÷8°Í{yþùçs®ElN ±©õ/—ñƒ4,YàgÖ ƒ0sù½8Ã#Äc^&ê‚’XPôÔ‘¢õóU. ()5ôü‡¦o¢?ЕØR¬Ž²#!/ÿrÔ ÑT}‰#j EÜh°èJÔ(d *tÅ7/i@ˆ£é t=¨‰¤Ð¯¡xg̘‘¿›nº)TNEâXB¦aaääÒ ÷&Sȳšúô8< Ì”€1…æ˜.ʶ8ÿ3M mQ£[Š š2RM!ÆgŠÍœËÞzâ;Ï]W^Ò¢ý¥ ÏÎO/o碶¸±c÷®Íÿ«Î5ã_¤CÚ´h]jQ*‘±Ôz©9 ¼¬¢|ïßß_?ó¹ë¦÷ß2uÀMh;(kU=#l±mÜá:?Ck ŒÈz œ³Ïdp£Îò 0Ù‹ß-ñ0»iðÔ4hvÆe‰Ucßne~a:…øÎ…“I|AhD2èʱn©n!€z6—>a+VŸìÂØºiÖ PÐÎȃm€™ŠÏô$ÂD¶³4"#p.Š•aóLÁØ4‰½0É9Ô(Rsü/À¶›Øf")²Èu!G?³zâ@+Þ‘ ¨ €:šʦO±®¨ráE7ßNO‘Q3÷h4*Xì+Ñ'·tWçh+¶¿ñ¿h”êeG„žú 0® |úé§ÝU‚í¹ì5±,ÁÛü±uÖ?Å0äÕ‘ðKKÔã6yÊŒ>þ};üÑ_ïy¶rñΪšƒ[+ö«ù´Xˆ0jöۮˮ_gÖD¬«Ùÿ™¹FyÉoßüÉ[V¶* T h´¤¬êšvUW”—Œ>~ìÄnìþÿýbÏmãÿ…ƒí‚Á ÷Ý ŸŸiSeâßäh‘"\ ãÇ·kLMzpl¨¡ïÈU«VAõ)Ê^x!Ó0 W ?âÐP¾Cy–­\ü‚Fh&v‡ê0Zíoü/ž¨O¢&,ÝØPÄcx¹àCÐHŠtp•ŠTgýÃÕëc­ ŵ9þ׸>ƒ.”ˆXI¶—‚RÛp`ò ûY âæ0Œ¶®ÜŒ”>¦›}¤(/!¯Ë.»Ì­ôÜ0(]S ³ AëYô[ŸBn(L‚ñn¼ñÆÌ®BžýÜÑÆ ¶?ü0«nêÔ©è¶°ƒiY®ð[ÊÂòpfÆf¶«¯¾:M ãá}Æ>Ò´bMeç§]´ÝÛ÷»ó+ïsÃÂUw/«\²³ ~*²Õ ¬îÙ]sl»ž“OœU´Ïæ´~Û«k߯lS^bõ¦edgÿgW½0C»šÐwFÏ'ª¶§jOyYySy7ÆS þæ‰Iåãnvvj¨à¥Å2ªxMùWp“[P˜ƒ^+Å;y8b±hÚªLz®.%¼Æ¨òá ¾™ÁƒcO(ÅCÃ\³!¡oÑy…dH5‰=dr{ŠøÐ‰_hÉüŸ /ü{k_Š:é•>¸NÊ[OоÎ!7¤Ï¬OcJÍï?5ìþ‰8HçåͧDžŽ&2Lm´Ó䨣ŽBOçœsέ·Þ Z¢mPÊu¼‘bhép‡z‘ë•ßÅÛ{©9kR5ù€±ÄÜÜñ$™NH6^¥à£ÇE±• ÖFåÀr &.`WHé }Ó 9„ÕçÙÀº&…¸ÅDȇ ¦mžÃ½uŠWÓŒ”\¾{𯿿 >Wù³]Õ5µ²;¦Ô,äžšÝÕµU…÷¿4ïaRWÕ쎦–®òí†|-‡v=á„=¿ðeåpQ…ØFÛ˜)¤h )9ñ¤gÜã&,Ìô៤þ²ùâb>C*¦è &¥.{e‚g…–,J’\5Ø5Fau—'F”Ñæ%3gÎ$.Ô¤FsŠI(†wQ¾h ;Çë}¹wEp8rí-×gæöi¾B€¼\àܼ8KDzÈ–¤>A¸M:± Ô,Ò*}žRÙÿ¸»—–,ƒ(àÞ ‹è²°Q´b+­E!¶STpåÚoágpéZ êBp¡ oà /Dh›¡´0 /Õûª?ž‰ö¯.†ãpæK‡)+–1}BƒÑ-lk±Ù”UÞÏðiÃÇÿ Uà'„äÓ©wˆ-¦ì OTójVá’Ô—/’$«³^0YOÖîà ݲÿ‹ìZ¶YQÊÅS,+|è¨.5)ì/Ý TâÜÚÚŠ~ôñ€¢Ô b#6ZGG‡>¦W5¬È4 |Y·¶šâ¾ÇÁ©Cc¸™3‡• h榇ù`Ï0:ø%’Õ &# “m™±y4™~Ø4 ófŒ~Ãç Þ‚¬çù-/|²ú«³?ïP˜1Ror ¸Öîa{x¨ZëC¬Ý¿BnWi Õø tö«áW€ ¦×§ß¿‘É|½Ò„‡Yÿº®^k[ÿ:z«µØ›öÿÞ †D@g0ÛÀ‹•É:~†YÿÓŽÿš…”nÿÒÎRñtÿ¿ÌDE>CñøçþðÏí"ñO8uô÷?Ò9%r*!þ²wÆ* Â@޶c†poàÈ{ø²] }µmÑè òÎáÿ†C2œÛñH¾à aòšsqþ» r§>1GØûÁ:ñšþ8‰ê?t–»Q4T2 ’9Ž }!¦:H)ì?Òˆ)¥Ä‡‰à !f1i÷ÕM‹HÎÙçÁÂýÏôv §ù¬ÚM’—‚“/jÝ2æ@OXG"•ýøÞcîüA¸Ãúa=Cê'ÂÅ Œ…]†¬{w°Â DQTCÿÿ«…,Å+oÑÐܳ(ã´™ ¤ÑMÀc:§cJ8™÷Ä8A.ùmâH’£0ÏRÕ*Z°çÏ!ɳ)‹'`ý2½’N;ù2ÃÈÀ2œÝG«Ée¶Ãò¡2þ´ ._ñ²çËÖ@#dPœ3ŒË¨ÈeJõú}H~~k·…évC•µ ®&“üqß},Ò§”¸$ƒy¶ã”úÌûMƒ5ß—‚¾gY­oçe¹Ê¥‹”Ïrcd >Ú¸qƶI’^?÷zðü§ç?=ÿxQ”žÝæ#ç?=ÿéùOV#çz$Iûz$Içz$IÛ¿$É÷?H’äóO’$Ÿ’$}’$yþS’¤'`D_äíIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/icon.png0000644000076500000240000011752612536324506020402 0ustar philstaff00000000000000‰PNG  IHDRT8Fm•sRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEØ +Á$‘ëtEXtCommentCreated with GIMPW IDATxÚì½yœ\U÷ÿ¾·ní{ï[º;éN:!; a  ìˆÀ££(‚Û0Žƒ‚¢Ž:¿qyæaDÇqf”‡QP@"Hx@ÙCHX²¯ÝNïÕÕµ/wûýQ©JWº«º³ÑMrÞ/úTݪ®¾çSßó9ßó=çHápØD @pÄÈâ@ C%@ •@ 0T@ ÂP @ „¡@ †J @*@ a¨'ƒAzè!q3D› N’öœÊ{‹ß …ƒƒAÖ¯_/SÄ„Z'ÂPçœsÁ`ŠŠ 6nÜXxüóŸÿ<Á`믿^Ü$AI¾ð…/‚È'>ñ‰Ã~ýG>ò‚Á ·ß~{ÑãK—.eåÊ•TVVŠ›<ÃcG0¤ººšÙ³g³zõjî¼óNb±˜hO|îsŸcîܹTUUÑÒÒÂyçÇwÞ9ퟭTü9™QÄ-8zLÓä[ßúk×®=æïÍf±Ùlâ&Ÿ`ÄãqÖ¬YSøÿ§Ÿ~šÁÁAjjjŽú½Efê½Cee%­­­ôõõñæ›oòæ›oò›ßü†'Ÿ|’ºº:Ñž'9ÿøÇY¿~=@€sÎ9UUÙ¶mÏ<ó _ýêWÅ šaˆ Õ±¸‰²ÌË/¿ÌO-{Çwpùå—S[[Ëš5khkk# òƒü€+®¸‚ºº:Þÿþ÷³{÷n~øÃÒÞÞNss3ÿðÿPô;o½õV-ZDmm-555œzê©Üyç†!mšyä‘GH&“TVVÒÜÜŒªª<øàƒEׄÃan¿ýv-ZDuu5­­­üÍßü gžy&üã¸çž{ƒ´µµé衇âÖ[o% ò™Ï|¦ð¾›6m*dF…B|éK_bþüùTWW³dÉ~øÃ¢ëºh¨ãÌ\À³Ï>ËæÍ›y衇p8ìÝ»—o|ããâBÞXýèG?bÙ²eTWWS__Ïé§ŸÎ]wÝuDßûžž®½öZêêêXºt)>úhÉÏ:lß¾K.¹„ÚÚZN?ýtþüç?‹F>BÒétaúë`Íš5<ñÄìܹ“»ï¾û°ÚåHÚòHãÏɬa¨ŽW_}56›oûÛ¨ª:a–骫®â¾ûîÃãñpà 7 Ë2?ÿùϹîºëƺüàX­V®¹æ***Š÷x<øý~Ö¯_ÏE]Ä/ùK–-[F,ã'?ù Ï>ûláú]»vqþùçóõ¯o¼‘ÞÞ^î¸ã~þóŸ‹F›fî»ï>®ºê*®¹æ~ýë_žWU•+¯¼’{D"Á_ýÕ_qÙe—ÑÕÕäÒí---,Z´ˆ›o¾™›nºiÜï¹á†X»v-ñx€ßþö·\rÉ%TTTpÕUWqï½÷ÒÐÐÀW¾òìv;ÿôOÿ4Π Ž/ïÿû íõä“ONKÖ­[Ç÷¾÷=âñ8_þò—¹õÖ[Y¸p!{÷î=¢ïý÷¿ÿ}¼^/K–,¡»»›Ï~ö³¼ñÆã®SUuRd2®»î:^{í5jkkY¹r%ÿ÷/ö±ÛíÔ××Lòw¿û]Ö¬YÃÐÐPÁ¼L¥]ޤ-4þœì:S~Ç€Ù³gó™Ï|†»îº‹{î¹gÜóÏ=÷Û¶mà÷¿ÿ=³fÍâŸø«W¯fýúõ¬[·Ž3Î8£pý‡>ô¡ ƒß 7ÜÀøC~ñ‹_ðå/™ÑÑQžzê):::Xµj[·neãÆ\tÑEüîw¿Ãf³¡ª*ªªÇyðÁyî¹çøìg?+nšØ²e 6làÚk¯Åçóñãÿ˜]»vñòË/³jÕ*ž{î96oÞ ÀO<ÁÂ… Ð4 €/}éK¼òÊ+tuuqÆgpÇwLø»–/_Î’%Kxûí·yüñÇùÈG>ÂÃ? À7ÞÈsÏ=Ç–-[P…Ÿýìg–.]ÊG?úQî¹ç¾ùÍoâv»E£½Kä;ÊL&Ãèè(ÕÕÕEÏ' œN'MMMÌ;—Ïþóx<žÂ5‡ó½¿é¦›øçþgLÓ䬳ÎbëÖ­Üÿý¬X±b\ ›L'/¼ð===<ú裴··óÔSOñÑ~T4ì I¿úÕ¯øâ¿È–-[ؾ}{. "Ë|âŸàG?úÑ}§òš_|ñˆâÏÓO?}RëDªcÄí·ßÎ<À~ðƒ"sÄãv»™5k ,÷|žóÎ;¯dç Aµ££¿ß_ĺ®óÝï~—Gy„¢÷Ég*Óý÷Þ @]]gžy&²,3wî\vîÜɯ~õ+V­Zž}ûðù|…` (‡ÿ•½ñƹí¶ÛøÍo~Cmm-477³zõj~ñ‹_åÊ•+Çd÷íÛÇüùóE£½KìÚµ«ÈÏÇrÎ9çð‘|„G}”¿û»¿Àjµò×ý×|ï{ß;ìï}^[’$±`Á¶nÝJooï¸ëòz,§“¾¾>ííí@® ^pä¬\¹’—^z‰žž^ýuÖ®]Ëï~÷;î½÷^.»ì²)µË¡ßß©¼æHãÏÉ®a¨Ž@€Ûo¿o~ó›<ýôÓEÏ555F—===4552VE×;Ž ‡Õj-ùÿ¦i=÷ØcñÓŸþ‡ÃÁÝwßMKK ÿñÿÁ“O>9îZÁ»G&“)dˆúûûÇ­Üzì±Ç¸óÎ; Æ;²eËN9å”B Ê5YÎÍØOVwÝu×ñ­o}‹_|±Ðöùiç¼6m6÷Ýw_ÑUU ŸCpüyæ™g SÁ—^zé¸ï;€Åbáî»ïæ_ÿõ_Ù±c¯¿þ:·ß~;?ùÉO¸õÖ[ùóŸÿ|Xßû­[·þ;“Æ]7tvv¹ÚŸ¡¡!ª«« SD‚#ã‘GáòË/§©©‰¦¦&.¾øb{ì14M# Ñ÷w*¯9Òøs²ëDªcÈg>óî¹çž¢zȞΛ7;vpå•Wrî¹çòÌ3ϰbÅ Þ÷¾÷óÏ’ž’$¹i¦^xA4Ò4ó‡?üp8 À>ðBp2M“§žzŠt:ÍÃ?Ì 7ÜÀÂ… Ù¼y3W\q—_~9†aÐÕÕUXü¯¯xâ‰'°X,,X°`Â:*¯×Ë5×\ïýk^|ñEEáãÿxA›lß¾;3‹/¾]×Ù´i]]]B3Ç™çž{Ž‹.ºˆ¾¾¾BfhöìÙ%§pßxã ¾öµ¯±jÕ**++Ù±cËV;ÎÃþÞßsÏ=ôõõ100À–-[e™}ìcã®›ŠNV¯^Mcc#û÷ï禛nâŠ+®(dcGÆÍ7ߌ¢(,Z´ˆ@ À–-[Ð4 ›ÍÆYgE]]Ýa§Ò–\pÁş믿þ¤Ö‰(J?†ä Ó'züø×_=Éd’ûï¿Ã0¸é¦›xøá‡ NÿXòÁ~O}êSX,n½õVž}öY.½ôRÑHÓ̯~õ+Î>ûl~ûÛßrÿý÷sÿý÷óÀpÙe—®±Z­<þøã|úÓŸÆétòàƒ²víÚ¢çßþíß²lÙ2FFFøÙÏ~VvÛŽO~ò“…ÿ¾øâ‹©­­-Òf¾xùûßÿ>?ýéOéííåÚk¯ vœ …Blܸ‘d2ɲeËøÆ7¾ÁóÏ?_Ø2áPª««q¹\<øàƒ|ï{ßcÍš5¬X±‚ûî»§ÓyØßû¯}íkD£Q6lØÀ¬Y³¸ûî»ÇMÕLU'v»‡~˜ÓN;uëÖq÷ÝwÑþj‚ƒ|ýë_gåÊ•tvvò?ÿó?Äb1V­ZÅÃ?Lssó}§òš#?'»N¤p8,æ@ Ž‘¡@ †J @*@ a¨@ „¡@ C%@ •@ 0T@ ÂP @ „¡@ †J à=‡2S?X0­#(‡…NB'¡Á´ëä=g¨LSœÛ,I’„NB'¡ÁŒÑÉDˆ)?@ ‚£D*@ a¨@ „¡@ †J @*@ 0T@ ÂP @ C%@ •@ @*@ a¨@ „¡@ †J @ •@ 0T@ ï!”“ñV5•íûwÓ=´ŸáH˜®¡EÂáNcÚ#x}}¦"[ñ;*©÷¶Rål¤ÚÓDÀQ-”#t"t"@×u†‡‡%‘H‡±X,(J.¼:ŽÂµ’$áp8ðù|¸\.ÜnwÑó‚MרÝ×Coh‘XŒý#Xd ‹-ƒ*Çp:¥ÂµYÁï Pïo Ê]Cµ·–€3(n¢0T3Ã0ÅÂ<öêÓÜóôt÷’UUtªke-òdHëȱâ×Z$«ÅŽÕbÅ"YqÛüTºê˜[¹Œ g=¾6¼ö ²dÁ"+ÈXPd+’$ … œ€˜¦I2™dË–-¬[·Žh4Цix<jkkq¹\†,OȲŒ,ËX,$IÂf³ár¹¨ªªÂétâóù°ÛíH’Tx­,ËB'ïÑx2šˆñÇ ¯ð›çŸ¢74„ªi˜èø--\nCd‚E²`µØP, Ьà¶{¨pW1·ºƒ WYx>dIÎÅIF‘¡“iD ‡ÃæLü`Á`Ó<6MÓ5ž}ó¾ÿÈ]¼´eºa`·K,^ìañbËщÐkRåj ÊÕHµ»‰ïl<ön›§âÆc `W\È’˜e=l‘JápXèD0#tb»víâù矧«« ã€NE¡®®Žºººq&êp±Ûí… –ÛíÆëõb·Û±Ùl(ŠRø·è‡ »Ÿ#@À ÊSCÀÀï â±{…É:†ê„Ÿò{kï¾}ÿ¿u’² sæ8Y¸ðøt’p`J@‘TcÀî\!aSœ¸¬ìŠ ‡Å‰MqÒ8… W-Þvê¼­øìBÍB'B'3¾¾>þô§?™)€ŠŠŠãf¦ò:QUUU‹¾ÅbÁjµ¢( Š¢`±Xƒ…©Ã|fKðî²uß~¼æ¾"3%ËPWg£¹ùø˜©ƒñ$A2’ 7˜xbÇesaWØ;vÅAkå‚®J³¨ó5àsøEÃ%'´¡â»ü+Û÷ï.z<PX´ÈÍöî:t“Œ–$£%‹ßz3'{IBBÆmóÑäŸK¥3WtÖá±ù±Zì8W®NG¶‹†Ð‰ÐÉ»H<çÙgŸexx¸èq§ÓI}}ýq3Så:OMÓ µ[yB¡PÁpI’„ÕjÅï÷ãt:©¬¬Äåra³Ù …ó‹EÔhC†£aþmÍìîï)zÜí–iiq`µJÓOÒd´tq<Ú~P'ȸínš-T¸+™[ÝAÐ]…ÇæÁªØp(¬V‹UÄ““ÑP™¦Éso½Ä [^+Ô8ä™=Û‰Ï7sþtÃ4òÊ ’&’Îí¿t®É}m~‚ÎjÝÍT¸j©pÖpÔà±ùñ9*ñXýxì¡h¡¡“㤓ݻwÓÝÝ=N'•••3* ”Ÿ²Êÿ[×uÒé\gÚÙÙ €ÍfÃétâñxp:…›Í†ÃáÀjµŠÌÖÞû—·¼Åºï`ÅS‡µµv\.Ë ':‘Ô(‘Ô(/ìzî@<ñtUPã­§Â]A…«Š€«݃ÏÀcóàqxEßè†*’Œòü¦W EÇ϶·;ßsO"!‘ÐÙYxÌcóã¶ùñظ­>‚®*œõTºê©pÖRåjÀï¨*::9JÒé4{÷î%‘HŒ{®²²ò=÷÷d³Y²Ù,‘H¤ð˜ÍfÃf³a·Û±Z­8N\.Wáß.—Klñ0 ±T‚W·½C8÷\}½í=Oâ$²qzF»ÇÄ.»¯Ý‡Ëæ&xÀhUº«©pWPå®Áï<9m'¬¡Ž„y}Ç›ã”5J8âÙñl„rb—%ÅbÃ*ÛQd+6‹-H¥«žöŠ%T¸êiòµã¶ù¥Ü’ý“½ÐYèDèd*$“IzzzÆ=ît:±Z­'Äߘ7Yñx °mC~JÐb±VVTTàr¹ðù|…Bx1m#±(oïÝ>îqGÆn—Ox'ž3ëO¬Xe+ŠEÁf±á±û¨tWÑV= wMfÜ67²,ˆ''æ´á k¨ÂñQ¶vï÷xE…‰ú7Lƒ¬–&ËÁ¹ò¡Ä~ö†7±~ÿ3…Ç|ö j=Í\:ï&ÖœqR@¡¡“©J¥÷¸Ëåz×k§Þ-LÓD×ut]?˜±H$)2—ù•†ÔÔÔœÔ:‰$âìÚß=¡²œàñ$C–ÌÁxdohë»_=O~j½u\²ðƒ,¬_rBÞ‹¶ºÌ0M2ZvÜãG»ïlj@43ÂÎЛôÅöžô÷BèDèdªæâÐâï|çd'N …ˆM0Íu2ê$3NdYè$šŽ°sh;ý‘ý'ìß(Êõ@ „¡@ †J @*@ ‚“EÜ‚£ãà&z¹ÿÏí:{`7k)÷¼‰)n”ЉЉàÈG¾cVº±¨@Ä“|<9ðÏH"â‰0TïÒiƒDB'ÑPÓ k%•Þ +멯¨¥¥¦ŸÛM8ÕO(ÙÏPr?ñL˜H&„ªgÄ ::Ð4 UUI&“†QØÉÜï÷ãõzñûý8Òé4©TŠD"A6›%“ÉL¸úPpb’Íš¤Ó:ɤ–•q*>¼N•Þ ‚Þ5þJ\ñl˜X:GÒZœ„C7Tq…¡šY¨ªA__–®®4¡!XÜ´œ‹ŸÉ9‹ÞÇâ–ùTxŽ&j”ýÑ]ìy‡·úÿB×è6 S7TèDèä$Æ0 "‘áp˜T*EMM sæÌ¡µµ•ÚÚZ<Ï„¯Éf³D£QÂá0ýýýD"‘¹:¡ ·IxDepH%Öª9,k™Ï–Zjšð:ÝÆ“Œž$”ì£?ÖÅÞð&=˜C5H&uÞ|3FWWCUøÇÝÆ‡V]FkMŠ¥ô­”$ ÍOGÕ Ú+–±¤îlÞî‘¿t®a$Õ/n¬Ð‰ÐÉI™mÈÒÛÛK8Æ4M.¼ðB.\H @QJëD–e‡ƒªª*jkk ³³“T*%nì F&c°gOŠÁAS·ðÑó®æÌù+© Tb‘-eã‰CqÓèk§Þ;‡Öà)t†·°iðâÙ°¸±ÂPM¦i’L<ÿ|˜öúÙÜqã7¸ôÔó±Yï|&‹l¡ÁÛF­§…yU+X³å'ì ½E¹ùnÃ0yûí8ýýYš«ùÔ%×RWå'”êe45ÌP¢‡ÁD÷ÁÃ.B'B'3ÞLíÞ½›D"AEE_|1eT)såóùðxyá‡YѶøðu"ɹƒÒÕ4øÚxußZzc{''iÂaj%ï?uAŸ‹hv„D6zàpö!Qû) Õáë¼új”¾¾,sëçð/ŸþG>pê¹eGå$ E²ÒV±˜›Ný¿Üðmv…Þ*™ŠM¥ öïÏÐ×—¥ÑàÜÙ¤­¾¥ð|¬“{åFR¢±„N„Nf|Æ!Cww7±XŒÊÊJ.½ôR:::ŽøY–‘e™ªª*–/_ÎÆ ‡Ã% QþPäX,†×륵µ•ªªƒ‡cG£Q^yå‘íšfR)ƒíÛ“ŒŒh4TÔñé÷”å틎øê+-N òø¶ÿ$ž•ÿ.Š[0Yð3غ5Éþý\v7_ö Î[|Æw’‡Rá¬åšS¾@³^ÙŽ:•2$‰–šFšªêEüÑ4"‘V«•ÓO?¶¶¶cv ËåbÁ‚x½Þ’רªZ(dƒÑ03 U5ééÉ ©Ø­v.]¹šE­óÙ¡Â[€3g]Aµ«±¬¡Ëf $ jü•Tù*DÃCu䘦ÉȈÊÎI4Í䌎S¹éýÁewNúÚd&ņ]ï°¥{Y5[vÔÐèàœÖá¶ù'¼&ÓH&ulŠ•e³b?Ìé#Љ`¦dR cMMMœvÚiØl“·S6›¥»»›þþþ²«údY&ÐÚÚZò}Óé4ªª¢( uuu‡=}$8þñ$ÓèíÍ ëÐÑØÆEËΙÒ÷9£fÙÝ×ɾ¡ýeu"IÕžFÖž‰]q•ЪN&c Xf×6c:™q‡ÊŽ&M^=J*eàszøñ羃Ïå-ÿC¥3¼™Ÿ>ÿxò…7éêJSí­áË×ÜÌ \7áê.E¶rfóåtG¶ñb×ãE«º4Í$ÖÈfM|.;+æ. #t"tòÄ0 º»»Ñ4 »ÝΕW^‰Ãá˜D[£££¬[·Ž­[·‡q»Ýœ}öÙ,_¾|ÂU€Š¢0kÖ,"‘ÝÝÝES†aJ¥ Ÿ¡©©I4Ì C×açÎ$™Œ‰Ëîàs—|lÒÁ™nj Æ»YûÎì߲‡ÁÁ,~g€«W]ÊKΚp ER˜_½’¡D[_+*%Ðu“x\GUÁe·ÒÞÐ*Fd¨ŽŽ¡!•ÁÁÜÞ×}9-5åƒaìÞÀ¯Þü?$-]¼ï}>,p1ä»üˆ»Öþ7ÑäÄ'²+²•UÍWâ¶ú™D"¹‘†ÇábùœE¢a„N„NÞƒ$ ‰@a5ßdlxx˜·Þz‹l6KKK 555$ ž{î9^{í5ÒéôÄ:Qš››±Z­ã Z¾6Êf³Q_/¦…g‘ˆÆèhn°tÖ)§Qí¯š4£ÕÝÍs{&cdÞ<³fÙMŽò›?ÿž'_–dfâz8‹¤° út‡d©4Í$™Ì}§ÍN[]‹ha¨ŽŽÝ»“ø\^.[y!N[ùÑd$=Ì ]¿g0¾/'D§…%K<ÔÔØˆ$cÜóôƒlܽ¹°Ëí¡4û;˜Wu긎2ÎuÖ§4Ï£Ò #t"tòž4ÞCØív:::&êK§ÓtwwL˜¢(444àõzÉd2¬_¿žýû÷—,>TVVŽë|“Éœ^kjj&Ìp ¦—þþ܆¾.»“•íK'êK¨Q6¾Êh:¯/™ÖV'€•D&Å7ü…=}Ý%ãIµ»‘_[Ñcªjç Õ¬ê¼.¡a¨Ž‚x\c` ×AÚ¶(WX¦pÔ0 v¼Í–ÁW‹R§‡…Å‹ÝHìîåÞ?=D¦D­ŒEV8¯õZ0%tÝD×M’I“h4'ìÓç- #t"tò$›ÍŒQCCµµµåubŒŒŒ088Xd˜òuO¹LF„7Þx£d­Œ,Ë´¶¶Þ/¿!h&“ë°ÅtßÌ#•Ò͵g[} -µMH’T6;ÕÛK÷èvƮֳÙdZZìH EGøÓ[/ ê%t"YX\³ª(žd2Læt7¯±M4Œ0TGGoo–dRG–d–ÍYDsuCÙëU=æ—IkÉqÏÕÕÙ¨¬Ì¥ÞÿÊS„b¥7U«u·bFZxûí8o¿gIõ…œ9%«¬ä’ç—üB¸¬>l‡h8¡¡“H$AUsÆ»¾¾žŠŠò+¦ Ã`pppB³äõzq»s51[·n-dœ&Âãñ`ýýýô÷÷SSSCss3ÍÍÍÌ›WzŨÍfÅêÓÀȈF&c KsêZ¨ždef¨tnC5ÆS Zñzs«Œ_ݶX*^ò}ŽZÌD5i:;ÓÌö/e~S; fµ³¢}q‰x"c·¸Pd±ø¥0à·`¢`–[µ¥ª&A·ŸÅ­Ø­öI…ÝÝYb¤(Q_ogxX%’ŒñúŽ7i<󒉙ÅE@_Ìo¼ À³_ý6}n$7²­¬ð5^{+ç–H:DJÍÕÞ '{Ù<øªØa[èDèdFdr…àN§sJ+ëòGÒ”Âëõ’H$Èd2ìÛ·¯d=–¢(8zzzøÔ§>Åi§€Ïç›ð5‡ƒŽŽ2™ Ùl¶ðùÄÞTÇ9žÄbš–«ƒl­iĪX˾F75†“½>'IPQa%ÕIdRìÜ¿‡Êù+&Ö‰lÇm´²k×6þ÷µã’E¹ŒêD dœŠ‡Ó›.&©FÉh9]D3#tG¶Ÿ´;± C5é´A4ªaš91M%å©ý±Î¹¥è‰ IDAT%ÔÔüb¼±ëm®.ÑQ:¬v–ÍYˆÕ¢ ê^§ß$ó×N«‡eõç=Jö3š¥Ð‰ÐÉ43všÍår«k*e¨òS„ãu"ãõzéïϵYoo/‹/.i¨êêêe¹pèòd+ m6 Å™Öx<^ØE]p|PÕÜI ¦ ^§›†Êº)èD'\b£^Y¿ÿ`¿«¯“3J*›beN]3Š,£N›—}(æT/~‰eÂ$ÔÈIk¨Ä”ß$z¡ /èñÓ^ß:ékúã¨F¶ÄHAÂé”±Ûssá[ºw–nY¦©ªÆÊ£[}c·8°ÈÂ/ LG©Vã9Î)ªh4Zv!EQ Y®ÁÁÁ²:ñûýøýþ£y+Ê1Û|TPz€–Nçâ‰Çᦡ¢vÒׄӃè¦V2žØíù…žû†zK¾$ITú*¨<ÊÍ;­² Y²œ´m(¾!%„Jå òfU7P¨šô5£éáòB³Ê89¡mÝ·³ìµµ*fMR‹#::yo iZ¡~Êï÷—œj+ÖVzRƒ“ß!¿z°^¯÷¨ •àø“Íd³¹Âò*~÷ä:Id£eŸ·X$ìvyRCtû¨ò‹ÝÐ…¡:ÂζM!ëL:e¢(…­ê*¡h锨×é&èPèDèäD1TùlÓdÅèy&›Z“e¹¡Òux¼tÁ±ÍfÃétІ˜ñ:1QUY¢è̼rÄ&™Z³X$¬J.žh†N,YZ'N»Ã-â(¹þCÈŸðm`‘å)w”š¡–}^’rsÚª¦ŠŽ”Ü+¨&PÅé‹[Ùr²ü–Ð\ÝÈ'/ü_\ù¾`› Hq4>ÊžþÝdµÜgpØÔUU¢šhP¡¡“iF×õ‚ §¶?X©½¥J]›L&Kî)åñxhjjbppÿ÷' ²|ùrN9å” ‹ã“É$ÃÃÃ…}‹, >Ÿï°>“àð㉪Œ'uÁÚ©µý˜ÓJÅ“üñº®MÆJî)åwû˜×Zþ˜/þ×ÿGµ¿’ —žÅéó–£XÆë$‘NÐîC; o«b%èó¡Oò™„¡:©‚…º ¸½SzÝ@¼«ìóv»ŒÇ£YLÌ’{‚(…޹, ùxtÍ6ÞéÜÆò9‹¸ü´ ñeÚå¡Ýßaß`/´$Ó%cµI¢Q…N„N¦ Ã0Цï\.×”^Wª ý`æÁ‚Ýn'‹Èn”¯·ª©©¡¡¡wÞy‡ÁÁAêêê˜?~‰L‰ÆÖ­[-zÜjµŠ:ªã¦“\ A·cjÅÑÔ`Ùç­V‡Ãh˜˜èeL±E¶ÐØà¥5êâåWzèèaNm +ç.ðú¬™àžŠŒ[ °Ù%ëÉO„¡š`¤™I’4é1"qé™)ÿUSŒ„XX濽«Å>å÷”$ðø,¢…N„Nf0S­e*g&ºv2f³ÙÛ ÙívÑ`ïZ<á`<jüUS‹“d¼‹†Îh2J3%¯q+^,²uêüÀ€LC܉ F ‰„QP‹M9ö›–iR¯eFRDó¼Çub Ò!—Y:¿c²"vY–Ëî¸-˜~C•N›…x2ÑÛÑ¢ë©Lj’—Œ„Љ0TÇ0ó ëfÁ}+ò± €‡3@´È ²$šGèDèäD0UcÍ´z1U7ãã‰aŒ'–cØ^‡óV²lñDªãƒ„DÓ1Z–nµæöš*•®:ìŠX™#t"trÂ[Y.¹£ùá¢(ʤ‡+ÅétŠ£dÞCñ¤Êwl¶/°XÀvõ‘>{Å"Ž’†êx[‚Àö™Z0•e‘J::9™™jQúT šà„tT¸®c¤ YLõ C%@ Õ B~@èDp´ˆ½œB'G{o®°>) U,ã†n ±±‘`0È%—\Röñ™ŠišôŽ  „NǤ“ç”—}<þøã|úÓŸFÓ4jkk9çœsضmO>ù$O?ý4ÿùŸÿɵ×^ Àž={8ûì³¹å–[ ïQêñ™„$IXÃ.¯†‡±W£©!²zzÆ~ãõhŒôÛ[±ø}ØÚ[‘Ž\uöI‚ЉÐÉ”G­Ç¡xÜ0ŒÃ2I©Tê°6 }7É›ÃÁÁA@EQNª¢{I’Péx|9œj„D6:éñXï¾™2 'E’è‰$ÙÎ}ÈnF}-ÝšNK]‡Ý:#vÏš’bÓé4·Ývš¦qÖYgñÖ[oñè£òæ›o²zõjt]çË_þ2‰D‚+®¸‚ûï¿€5kÖ ¹í¶ÛJ>>Ó°X$\®üžB&élfz‚ŒiÌÈybÓ0PC#Ä7n";!ÕµäÖ“æz¢!t"t2U3eµÜyZÔÚ7Sétš2™ ‘H„ááákþŽŸN(Š&ª¦ŠxhºÁÐh‚¡Ñj4FjOZ"Ivp˜Ì¾ýd“)z†¢$RÙ1ý7%Cõúë¯ …¸å–[ GØl6n½õV"‘¯¾ú*üà™7oíííÜ|óÍœ{î¹%ŸÉ˜¦É¾áÞ)]ëµO}›b¥Æ_Yöš¬žžôàËé@ Û´Ìè(ª¦¡j©ž^¢›¶ad²œŒL•H$2¥ëÇ”ßSQ”’#:&M›‘Æ;™L244D:.dÝb±ƒƒƒ‡5¥yBÅ`(:2¥kV÷Ôub±àw•?sT3TLfÆ”Ÿ¦ G’„¢IôXœTWZ"®ëèºN&4B²«‡T"WW•HO¿^¦4å744Tøï††â ‹®ûìg?ËÆÙ±cK–,áŽ;î(<_êñ™•y¯×Rv23µuÀQ}ÂVzÊw¬±LUĮ̈{£ÆŒnx-Ëݜ°Ôž^LYÆ¿ødû‰¿1œÐ‰ÐÉT3TcÍÑTMÂᜣ'Ë2NgùÍ]³Ù쌫£Êg¦&º'ùCŸkjjkÓ÷r†j솾ujßiÍ?åßa‘-xœåwJψ)?Ã0 0SÙdŠÄîNôTª8ž `J´6Ók˜4×úqئoÛ)e¨ª«v½½Å#ñ±ÿ?öº÷*ùÚIÊ¥?ߨõÎÔ ¥|@Ëd âñil©|]…nhdõ4&3gD™Éf %¤íVTÃ@ÕµâU%º§“áõo¢Å3vY«Ð‰ÐÉ»o¾-: c\ü,—u*‡®ëd2™"SUºs2Ðu}Fªl6[8Ð0 4M÷‡éëë+d¯Nôxb±Œ'»ûº¦ô:«\ÞlªªA:­âI¹ó SG3²0ÍñD7ÌÂJ¾LV%–ε*h†‰fèÅ?ºFr`è®=$cq:ûÂ$ÒÓ7ý7%CuÚi§QQ‘Û ÿ'?ùIዬª*?þñÜ)êgœqÆ !n›MÆn—1M“¾ðÔ–ÃW¹Ë>oš¹‚c›ÅJu™£âÙ‘ôðÌé$3Y"Ѻa ·Ì¬®B5AÕŒâU'ÚÝÃЛ›ÐSiNt„N„N¦šAʤ|æe2&Ë8úþå¦üÒéô¤‡'O‡™2 ¯×‹ÃáÀ4Í "‘'EM•UÉ ÒLFâSÛ6Ág¯œ4žäí)rù)¿”š$‘Në=È×LÄ’¨ªF2™Â0 ¤š*ðûÐMÐu³øG3H ÙÓE&™¦/›6S5%Cåp8ø—ù, /¼ðK—.åÚk¯eÙ²eüéOB–eî¼óNÜn÷ !l‡CÆáÈÝš¾‘AâéÉ—:û“ŒLÒ露‹BÐ[z*'­%HªÑüT"±ªšKKv––Fô Õ0Ðt½øGÕˆtv3¸ám´tæ„€B'B'S3Þ¶Baz,›’¹™¬†JÓ´ÂT™Åb){¤¦i…v™n4M#N ’¢(x½^ìv{¡†êП|¦êD¯©²Úä¹{#±Ñ)-tqZË×DéºIVÍœܔ_é>Z5Òdôä´ýýú˜š)UÕHŽY™*) rM%†ÇfèÆ!?šAr`ˆÑÝ{IÄS &ЦaÈ”×¥^}õÕ<õÔS\qÅèºÎ_þò2™ —\r k×®åÃþð #l—KÆíΥ飉(]ƒ=“¾¦ÒY,YÊ ;“É {Qëü²ïË„ §‡¦ù.hj„ðèh!çND7H¨*± ‡´Çy`ZG/þQ5Föt2¼yÛ …N„N¦ÔQZ­…: t:=¥Í=].פÛäW ÖÖÖN)#4­*9°5B</Ê6å§ûòÛ$”2U¡PˆÁÁÁZ'v»„Ýž‹ ©t’ÁÈäÙgŸ=ˆT¦×õÜ  ¥¶©ì{¥Ô8ñiÊPé†Éàh‚P$ŽšO$ :1Ée+ÓšFÒã@uØÑLÍ8äG7ˆõéê!‘΢êïþ4ñaUo­\¹’ûî»oÒëîºë.îºë®)?>ó2<žœ°‡¢#lêÜÆÂæyåG¡;Í:Ã[Æ=gš&ɤ^È<̪ª/ù>¦i2šbt;JÓT1ÕWÈ&îÂ4næçŸ ‹F1½®Ã4‘FcH‡Ô8ȲŒå0 kß›*¡¡“)YE)d¨‰ýýýÔÕÕMú¿ßO8.i’òŽßï/kdÒétQ½Õt˜©¼‘T¥0ý9ö³†Óé$•JMX@?öu'*6›\(L¤ât ôÐ\]¾D@‘­T»Lì›0Fd2ÙlÎPU•)0M“x6BB¼ë·® Ž&‚¾ -ý$¦q)pÀšJ§H%“˜€ôb1M¤D éMH%IA¶ZiZö¥gùMÌ$‚AE‘Ç"líÙ…n”OZd+užÖb…Ñу£²•s—–|ÍÈÒÝ=+· Lõ´ä7Çp[¾‹EzÓ4I$¹Nò€ˆMY&Uá#ᰢꚦ£i:º • æR1oŽÐ‰ÐÉI¯Y– §T*ÅÐÐФEÖ²,—-¡HÙÏ«©©©¬™‰D"ÓVƒ”7M###d2™¢é¾l6[0Sc³yù×ݼ´ªªŠªªªZ'‹„Ç#c±@<™`_¨oÒSdI!è¬-O‰ƒñhnÃìÒ¦ÆÔIö£¿Ë+ü4Ý`(’d$š}zæWHæk8äß K]˜˜dÒ霙ÊEIY¯‹´Í‚f˜èº‘û1Á;«oc§ ÅòîÛa¨JPQaÅf“Pu•û÷ŽE&)ؘ\T"¨ÀÀÀÁùÿíKJ¾OFO±kä­éMj›Q“·aèo&Šô.ùûd’ˆF#EÇè†A$&ì²w(h†ŽŽIÕ)ó¨[ºËI°ÜYèDèd*¸Ýn, †a0<<<é4², Kš”±Åí‡neSÔaiÚ´ž˜Íf.L«ªJ*•"™L’J¥ŠÌ”aE™´üsÕÕÕÔÕÕð*'7@Ó ÞP?ñdb’šB§eJ´¶úÖ²´¾øÞw73e˜÷™ÒºÐ2?Ç0v&i;vùÔÌn’ÉâÕÀ†i’Èf‰Û­¤­tÓÀüÍTÌnÆëqQWáÁªX„¡š)ÔÔX Ó9oìz›}{Ë.ñ–%™ÖàB¼mãž‹Å4zzrâýËÏ¥±²tº?’±7¼¹9(x­äª…ZO3~G5šf‹iŒŒ¨D# éŽÃ‘7†új죘ú&òKg%SÃÿ U‘¯â0¶ø¢š¨šN8!›UÑe™HÀKÚç¡~ù"f¶ì¤è$…N„NÇPåë¨z{{ …B“f©‚Á ^ïø¢ãüŽâmmmø|¾’ï‘N§ Ó†c I¹ßíñxp8ƒ“J¥{Ê0Ÿ™·;|:—53 £èxœü_}}=³fÍ*ÚmþD&P Ó~»ú:é ”'5žf*œud1u†‡sFvyÛB*½Á’ï“ÈFˆw0óÒó¢—ÜE!à¨Æmõ£ë¹R…XL#™tÛôa20g8CÏnCKýÓè*ÄLkj3¾Ä/±šû Q× âñš¦cH2 “¬ÓIpN3Usçàõº˜Uã›¶½¨„¡*•IPdfÏÎ-]ÞÙ»—W·m@ÓK§Í%I¢ÆÝÄüê•Xdk‘p6oÎ2Pöo<¸'‰†‘}5ñ%Lc÷˜!H1yTÅmna–t'Nv¢j‘huL@”-êV.¥ñÔ¥Xl¶²ûœl:‘e™ÊÊÜ÷P(DwwwYS“ß ¡ººz\qúÀ@n‹«ÕÊòåËËn|¹oß¾‚I»Yh,+ùûeY¦­-gø“É$étŸÏ7å}ófjxx¸ÈLå Ðó5Rš¦¦õ=kP–ehllDQ”“F'‹Dmíã`{Ïî²e’$°WÑä›[´ØÅ0Lººr&Øi·sþâUØÊ˜ÒíÃo؃ŠÂr« µ¿_’$Nm¸)UKb¨Šôà,jÌ3˜åZ^öoÔ “¡Ñ¡h CÝŒ–ù¦Ù_ORRBÃaî£ZúvzÑ ƒD2‰6¦Ø\–e‚sgSÕ>Ÿ×EcµZ2S…þ@X§ÒÌží`ãÆÙ¬ÉC/<Î}˜ §t¨Óêáô¦‹Ù>üû£»èìLÓÕ•F–d.]q,9 ‹ÎLUUU4Ó|ã2ɵ6öìI¡ªðÂæ×¸pÙÙx,et¢8˜Wu*û£»¥úTÊ"K+Ú–²töd©„N´t!ÛÇn—ÈdL#¡²ÄÖÀ)\¾Ðw` è¢ÚWɶáõìÛóÚ„×;jÖÆp4‰©í@Ë܇iì-Ž'))aâ‰}õlj'/BÓªÇĨ­©¥±¡ŸÛI]…»Õ2­m'2Tep¹,Ì›Ë>¼±ëÖ¾þì¤;;7û;øØ’¯Rélbïž,7$‘ ;Wœv!ßþØmÔUÔL<ª3 ^Ù·–P²¯èñººÜhå­=›‰¥eF6–ÍYȲ9 i©i*»äÚ©xø@û'X\s&¦¶ 5þYL}`ätm˜:I±N& ›xBoÒ–ü/¼¾‹…ö9³é˜×~R?¡¡“©b³Ù $÷öö²mÛ¶I§ý‹/Æét‡éííE’$:::X½zuÉé>Ã0Ø·o_Qñ:\ØÛÛ[v+Y–ijj¢©©‰ŠŠŠ²:±Ùl´µµQ]]=®f*Ÿ:ÔLAnJ8¿ªO˜©±fF¦¡!—MÜÝ×Åë;Þš4žT»9oöµxmUô÷kìÞÃÊis—ò±ó¯.y„•išl^O,S¼š4ÌÝû½ý]¤Êì‡%Ë2sêš™S×L¿ªl&Ñ&;X^ î¹èê>´ôÈt›ãIÊ@Jè'h˜8£{©Ï<…ÓìLdY¦¾®Ž¦Æz¼n'õ•^œöé׋ÈP•s›²Ä‚núûUB!•;¹‹U V2§®¥t‡%+´W.寗ý;®‘G8ãâ,ïë8• –ž…Óæ()êîÑm¼ØõªQ,ÞÖV'ÝÝFQ|þ÷|ãÃwt¿ÕÇŸæ‚9×bj¯’ßrÈô‰Õ‘#3˜`ª` ËHƒJ6±Äü¶8o£¶m5ímmX­ŠÐ‰Ð‰ÐÉ$Ô×׋ÅH¥Rüå/¡¹¹¹ìêµ¼Á8í´Óظq# 477ÓÖÖVrªÏ0 FGGéîî—… „Ãa2™ ï¼ó«W¯>j“8wî\ÚÚÚ&œæJš©C·GP…ššš“ÚLåãIS“pX#Õyô¥µ,˜ÕN]°¦ôk$ õÞÙ\2çsØc/1¹Æ¼¦6–Î^€M±•Œ'C‰¶ ¾Šngµkjì ªÄÓ)žßô >ûÊ£3‰§5¾Ÿ%u«@ߎ–þ¯C¦ùL¤¤‘ûc¦L ̨ª—.f›OÐm»š@ýês™©æÿ´¬èª#ÀëU˜?ß…Ý.³³·“üçŒÄ&_5ÓRÓÈ·þê‹|÷ã·sùi–ì$bÙ0îü}±½`ÍÍv$ ~ùÌoymûÆ)}nÝЈg‹WœymA>0÷ãœÛúALõe´Äßcc6U4AŠã;É,! sLîc§¶´·Í9é;I¡¡“©bµZ©­­EQFFFxùå—‰Ç㓾®¢¢‚ /¼‹/¾˜ ”­›Êf³tvvNxÌ×ë-¬\¿~=]]S;3.?=WœI±ÓÖÖÆìÙ³ Ó|¥j¦&2S‡š½“=3U”vZhj²cµJôŽ ò‡×ž)›y.!%9÷*®_} §Í]ZÒL¤´8ï ¾ÄHj`½)T×X‘$xvã lß¿gj:1uÒZñçt*–7œÏÂÚ3lp/¦ÙSORæÄf*&1Öë9¦­Ö¤¡¾¿ÇIC•wƘ)a¨¦€Å"1gŽ“yóœhF–ŸŒ‡^x|JÇLM€oì–½ÿ“[Q1î‹%³t©‡–ÝÃûøÒý#¾ô$©ÌÄéúD6ÊÖÁ×ùÕ›ÿÄó{“qðraÛ_q~ëµXÌí¨ÉÛ KÞv’¹é›CEmŒH˜i ò[¥IV,íŸÇ;÷£'Íê¡¡“c“}©¨¨ ªª MÓxë­·xûí·Ù±*†a°ÿ~z{{'œN´ÙlÔÕÕ ‰D"¬]»¶ìïÏf³ô÷÷³aÃ:;;‹ÞgΜ9Ìž=MÓ¦T3UÊLɲLmm­0S‡Ä“º:;6tSãùM¯òâæ×ÊÖG¦i²+ô»Cï`2‘N$fÏvRSce(:ÌÏžºŸ—·®'«N¬“´–d_d'ÏíyˆM/ÉL9YZw.‹kÎÂbö e~QØá ™ÊMóÅý€™Ê2&ž(Èõ—áj8Ÿ'W35]«ùJ!Ô;•t¥]fåJé´ÁÞ½aþþÞFÓun¼èÃeÏFšLÐ)-Î+ÝkytËO +,E’$*+­œ~‘•ý=»ùÞ¾Îý¥†åí‹XÙ¾¿×Áhz]#o1”ØOVO£êÌ¢u(n®œÿ9Îm½ Yß„»ÓØ5¶·.­…15Ðe+jŇÒþ,·"Ù‚BB'B'‡t…¦¦¦‚yæ™g0M“+VLz†_9#¥i]]]lݺµlm–Ûí¦­­T*E$áÏþ3¯¿þ: 455áp8 §d2‰®ëE›l*ŠBGG---hš6nk„rf*(òØ{‘Ÿæ³$[hL=›)ÑÞî"›5ˆsïŸA7 .Zv6›ãˆãIVO³mèu^Þ·ÃÔJƯ×ÂâÅb1Ðp¿]w/Ooò3§¾…¹ ³q9m$²£ôÅöɄРÍP fÉ*;8½éÖžŽ¬w¡¥~ŒiöÇ“èb¦Œˆê˜xbqa©¿KÓñx+h¬òa›æta¨Žrİj•ÇÂÎI¾öËÿMO¨.¸Ž¹s°Z¦~+5C¥kt+/w?Áºž§Kv’cÅ­(PSc£¦&tbŒð ì~¥ìk=¶ïoÿ«gS} 5ùõâNÒdâZ˜l.ãPÔIZœ(soÁ2ïV$›_ˆBèDèä(2U­­­Øl6†††xú駉F£,_¾œªªªÃÊÔä7ïìîî.™™šè÷»Ýî¢ÝØ3™ »wïždÐ`/d¦Ždšoìg“eY˜©)Ä“ Ü82½½þûÙߊpÁ’³¨¯¬C‘§n*tSc0Þö¡uìm,i¦ÆÆ‹%·-ËÁ­YRÄÙÆÆ¡òço:7ËêÏcqí oEËÜ[l¦LJ×LÅ1S² KÕX¯Æí ÌX3% Õad–,ñP]mc÷îw?õ ^Ü¼Ž«Îø×uyÙ"ä<}±N^é~‚Mƒ¯ÐëD7ß‘ùNòüÙ×aj¯¡%¿…©¿],êü’ws|'yèôÒöy”ŽÛÀêb::9¦ª¡¡·ÛÍÈÈëÖ­£««‹ °páÂ)µFéêêbxx¸ìÞRÇ&;ÞLí4_CCƒ˜æ›4£)ÑÚêÄïSèëÏòÿÞx–Í];xßüS9kÁʲÅêyFRƒlZG÷è6©A ôãöyš©³@ß^ØaL<Éo`Ž7S‡NóYê/Giº·'@]…wÆš)a¨Ž°³œ5ËNM•XL§§g?þÃ~ùÇßræ‚|ý}y¥Ï&Û1üÞû=u\?§Cq:I;ûÈÆ?i줰D3WX<ªÜ ×ÎIìIì8±'±Ç[qœŒ’xӉؒ,Ѧ"É’⾂ ±4€FïÕµow™?ª»Ð tU7ˆ¥÷9ªC¡ö¾÷Wïý}ï÷~ïgÛ6…B³gÏ’Íf‰Çãm S<ç=ïyOk#ã\.ÇáǯØLmݺµe¦¶FX®fªSkMÓä_%ÂaHDczÚáèÙŒÍN’Š&ÚÆ“®ÐŸØþ¿S¨e)7òL–FyþìãW¦ÕâÎþ²«ûîfŸ©…­æãÉ|ÍÔB3åÍOó-ˆ'šÖû0ÚÀ ÅèKGW}o>ÉP­ÆATvï¡(Íݹ¿òÄ×ÚîÐ  **Á@„ØVvu¿—MÉ]WöÃ2b<´í'øðæGÑÜizñ’wækašeþ"Yoòâ%ï!ô­?‡¶ãÁH6w D'¢“ëJOO³¦R©ðÚk¯u\½§ª*†aÇ[M;¯ÔL 3<<ÜÚ›ïÝn'sqkEtrUãÉÆA EB¥Äß¾ñ ®ß^'Š¢`ê6éPƒñôD¯èó-=ÈþþpkÏ=hÞÛ8Õß[Üùš)÷B<™ÏL]ÜgJµÐú~mã„ÂI2±ÎL‰¡ºŠd2½½Í^*_{ö[¼|ìÀõ¥ >ºåÇùЦOã;Ïã”ß=¸PÓs‡¥û]:}ó³ÍfŒé$:¬‘H„H¤YöÖ[oqîܹëò¹Km's5: KŸ©kC,ÞÌz<{øeŽž¼.Ÿkéanëý{ºß îQÜÚŸà{§Ç“Šß,@_É4_ßÃhÇéKGè7f&S ÕU DÍÞC‘ˆF®”ç7þÇ—˜˜ºÆ¢Îmò#œ¡QüBûmBºí· Ñwü‚\$E'¢“UF×uúúú0M“Z­ÆO<ѱ–êj}æÅ­®ÔLõööŠ™º† CCA[¥T­ðçOÿ¹ÒµÕI@5[ÛÉèLáT¿Ü¾fêâÖm¶“™Ÿæ»Z#ˆ¡º(ŠB_ŸÉwFI&u¾óÚÿâ'狼|ìÕFíªž­‡ùá[~–‡¶þ8¨Å÷_µç£äÔ‡V·¹Œƒ;®.¾HêQôÿ”Àî_#%'St":Y Ù‡XŒlÛæÄ‰|ík_cddäªíû·Ã0عs'[·nÅqÆÆÆ.k;™…fJ×uzzzèïï3uâI2`ë¶ ‘ˆÊk'ò»ßü/=yÕöý[¤Õ⽃³¿ïƒ8‰Sù |ÿÌâxRrQ . {‡úx³™)-ˆ¶áG }–p$Å†îø m¦@ŠÒ¯®;U›ä†ÃÇ—yyä|á?óàír÷¶ÛéMfHG“t'ºh¸5Ê…Ú c…S—õ9#ÁýÃ?Ê6~rn›_Æ÷ì>ŸqÈ-ÝÙzQ-Œ˜ëôA—%ï¢ÑÉZ"•JaY“““ŒŽŽò×ý×lß¾"‘Á`h4ŠçyÔëuªÕ*…Bá²>ãZl'#«ù®o<éé1°,•óçk›<Ä—¿3Ëþáýlï&‰µ#$Â1¯AÍ­PiÈV&.{p¶·çìÎÜ5·ÌWðýñÅñ¤â-ÓaÁ4_ÿ¡÷j®=B@»ñó;¢øk@&cLêäó.•Ê8ÏŒý#îߎ&‰‡¢$# ¯NÕ)Snä)7Š+~ïã#[~Œý¸¯Ó(ÿ3|÷—Nß\T Óè0}³ý‹r‘ˆNÖ(¡PÛ¶©ÕjÔëuFFFÈår„B!,˶m<ÏÃuÝK¦ÞV’™š7Sõz]Z#ÜÀÄã:‘ˆF¹ìR¯Ïr(û=&¼×ˆ#„¬ a;Œç5¨{5jNå²va0õ¹Ö™÷ûNso>ï$—Nó­¬fJíýxs;™PŒžd3°>ô"ª¿VVWI&:îi²Þ4Ùœ,¼»÷´ô mýúatNÐ(|~îúr—¼k¡æ’÷¿ IщèdÍg!ÔV;…y*• •J…l6û.µ§_µÖ²ÌÚ@Ó"‘…Ç¿@Ñ/P¬Àø»ÜÅ* šÜÑw?»3ïEã€Öÿ¡ps5ßÍd¦n CÍiÿçóÿ‚t,Å g¾µXŠÊ`|; +C_d˜îðv†` Š©ÛDŒ†n£)«3ÿ빕Ù1ÜzyÙçújzü!B?†6øQC–¼‹ND'W›x<ÎÃ?L(âÌ™3éD!/Ê4Ù¶½(¥ëúu3OKe§Êåò%M<—BUUÂá0©TŠd2)­.“þT†_þ±Ÿ"ñÂɧ/'ÉÄí$}± tGzH“¦n1£ M¹þ†$[¨à:µRÏ©­ ž˜8¡ýÙ‡ÖµP$NOòæ™æ[t^³Ù¬¿¿X"‘À÷¯îWË— |ý•?#’¬Ób º…¤ÝC@7QPÐun~z­039ΩƒO“ µ¯—PT-`Îl"˜ìC Ìv•õ!REi»½†èDt²Z:©V«:tÓ4‰D"D£QlÛneqEy×5N׊ÙÙYÎ;‡eYm¿›ªª(ŠÒ2„óÿ^-x£ë¤X)óW¯þOÌPƒžhñ $ƒiº¢(hJó7»âI½árz|–©É)ÆO¿EÄTQÚÅEEÕX±nÌH =`² úÓQŒuP€ÞI'b¨nPþàþ/?ã{ƒ½]¨ê…ª¡v,C0Ñ‹fØëÓõ_ç(:¬Wž|òIN:Åž={H$—)Ó4±,‹`0¸n3R¢“6™&¦óeƳE¾ó¿áäñCܳo;™D eAû‰{éË$Pu+’&˜ìÇ'ÐÖº= ¢áÚP­V9|ø0¥R‰°ÿ~"‘È¢v 󙫵–Y®= ×¥P®Q.W8pà ŠÅ"Ͼz”Þ¹‹d<Œ¢év3œB·Ã胈m [Í€ÆÍ]äW³†ùþO0=3ƒïûç/¾ó"fbéá;Hl¼•`²ݰå"):ËrèÐ! …žç133ðm›®®.Òé4áp¸Õ’A¸ù¨ÔTj ¼ñ…bŸÑÉY~ðÚÛÂi¢=[g†°c)±»ôwE‰‡- 1S€d¨Ö,333<ñý¿Å¶múúz¹cÿ~zèAº{zäà¢á²(‹>|˜@ @"‘`hhˆ½{÷ÇåพÇl¡Êl.ÏÞÀ0 ’É$[·laÿþÛI$“ºFØ6HÅlÌ€X1T7o¼qD"Á}¾ÛnÛˆ9 ¢á]qúôilÛæÞ{ïeppt:-:ZÔ.ÅjS§N‡¹õÖ[Ù´y]é4!»9µ ™˜It‹¡ºáؾ};[·n¡¿¿_† :®ˆÞÞ^z{{I&“r0„Kð<Ïóéï璘¯—t:EÐ ˆØ­F@—)=1T7r”)At"\ÄH ° ½Y ¥§1©Xˆ @U1Rb¨AAX š¦²!# ~¯™DAAC%‚ ‚ †JAA • ‚ ‚*AAA • ‚ ‚*AA1T‚ ‚ b¨AA1T‚ ‚ b¨AAÄP ‚ ‚ ˆ¡AAÄP ‚ ‚ ˆ¡AAC%‚ ‚ †JAAX!úZþrŠ¢ÈD'‚èDk_;ÙlÖ—Ã ‚ ‚ðî‘)?AA1T‚ ‚ b¨AAÄP ‚ ‚ ˆ¡AAÞ5k¶mB"‘³#´Èf³¢At"ˆN„U×É g¨|_::Ë÷…¢At"\O,…Lù ‚ ‚ \!b¨AAÄP ‚ ‚ ˆ¡AAC%‚ ‚ †JAAC%‚ ‚ †JAA • ‚ ‚*AAA • ‚ ‚*AA1T‚ ‚ b¨AA1T‚ ‚ b¨AAn ô›ñn8 Žž;ÁÈä9¦rYNOžE׬Pß̉^𙺠f¥è ‘¶ûé ·ºD9¢щ€ëºLMM1;;K©T"›Í¢iºÞ ¯–eµž«( –eF ƒ„B¡E ëÇu8qþ,£ÓÌ œ›GS4£FC-`ÛJ빚ª³ãôÆúH‡2tEº‰Û 9ˆb¨Öžç1]ÈòÍç¿ÃùΟ225J½ÑÅ¥«[e÷î0qE…ª‹ZXüZMÑ h&-€¦1RÁ¶¦n#i÷Ò&b&P MÕQÑÐÕŠ¢ˆÂD'¢“uˆïû”Ëe:Ä‹/¾H>ŸÇqÂá0ÝÝ݃A<ÏCUO¨ªŠªªhš†¢(†A0$NcÛ6ÑhÓ4Q¥õZUUE'7h<™-øî«Ïñߟü6£Ó“4—h\aãF‹`HÅÇå"™ )Í@×ttU'd†I†ÒlíÚN2˜¦?¾ˆEUÔfÒÁ~ºBôE66ㄌ¶"lÄ1õ ª"³¬—-RE!›ÍŠN„5¡Ïó8~ü8O>ù$§OŸÆ›Ó‰®ëôôôÐÓÓs‰‰º\LÓle°B¡‘HÓ41 ]×[ÿ•‹çZŽ'.Ïzÿøø_ðòÛoâzÍ÷ `hÈfãFë*Ä“(©p]¡ éH7}±~Âf„ÆØ„fÀ’xr•urSª¯>ó8¿üÇÿ†ãçOµî³,•]»BìÞ"P¯Éɰõ0 ;CÄL’´»‰š)âVšt¨Ÿ¸•&fu6b¨Š&ê]Pt":Y ä;ßù333­û®¦™j÷·éºŽmÛ˜¦‰mÛX–…eY­iC˲0 CLÖÑÉ·^ú¿õÕ?äÔøùÖ}†¡08h±q£…®+×(ž‰“D­(‰PЍ'nÇI‡3Äí81;AØŒˆÉº†jÝOù8yˆ_ýo¿½è"©ª°y³Í®]׿" sSåF8ÑHÈ¡ªê\ÕªK¹ìáÔUl=JÄ“Š$IDâdb)‚–E±ž¥PmÆ‘ªS¤Ô(àz 9€b¨Ö†ÇùóuNŸ®2= {öñ‘=ïåý»ßÞ;HFâKŽ&J<çòÇygæ Æžâôì<ß•*:ÜÄxžG.—#›ÍR©TÈd2lÞ¼™¡¡!º»» ‡ÃK¾¦^¯“ÏçÉf³Œ‘Ëå$sµ® ·Ov¦ÁÄdƒ|†Ò›¹mãvmÜÎÆÌ;´d<©¹e¦Ëç+œædöM&Jgñˆ¡Z”Ë.¯¿^àôé^CçW>ûE~øž3”@×ÚJEQ1¶§÷³%y·öÜËc?à©SÉLeL¬èDtrSfêŒŽŽ’Ífñ}Ÿû￟]»vÇÑõö:QU˲°,‹t:Mww7ãããœ:uŠJ¥"vQ«y¼óN…‰‰¾«ñc|„÷A$d IDATL<…¦j㉥‡èn¡7²™¡Ä-œÊâ͉ç(Ö³r`ÅP­¾ïS.{<ùd–ñq‡-½›ø¿â—xèöa.o&MÕè‹ ÓÞȶô~þòÐïqlúæ»=Ïç7ŠŒÕìêç'|”žtŒéÊ(³•)&Kg™(\ØìRˆNÖ¼™:qâ¥R‰d2É<ÀöíÛ;©væ*‡I¥R>|˜ééée_7::J¡P ‹qÇw‰D¨T*”ËåÖ”¢d¼V?žÔj>o¾Yd6ëÒ›ìæs÷†ýÃ{._'ŠÚÜ(Ýî¢/:Ìógg´prÙxrêT•lÖ¡+–⣷ßC"$_Ÿ¡TÏÏmÎ>)µŸb¨.bÑåùçóœ?_gkïf~ûó¿ÂÇnÿ@ÇÑA'EAW '÷ðnÿ—üá«¿ÊñémS±•ŠÇ¹s5Ο¯ÓŠóMŸb¸wcëñ±Â)~÷¹/0S—“%:¬ùŒC‘‘ …©TЇzˆíÛ·¿ë-lTUEUUÒé4ûöíãµ×^#›Í¶5Dó›" "‘CCC¤Ó6ÇÎçó<÷Üs’íZe*£GËÌÌ8ô%{øüGŒ}[v¿ë}ðEAC§72ÄG†?Ë÷NüiGSU¯ûLO7˜™qHY!vu¿‡Þä…­…²• ;òÿQ¬ÏÊÉšÿ-Ê!X.øy>\æÜ¹A3È?úøßãƒ{î~×É‹IÚÝ|ú–ÿƒÁضŽêJÅCQ6fúH÷ʉˆNn@Ça||œ\.G à®»îbxxøªí Ù¹s'‘H¤ísF«=‘HÇåĬ1 Ÿ³gkLO70&Ýq»‡v\µM…ÃFœ÷nø]Áþކ®^÷PÈÄR¤£I91b¨Þ=¾ï33ÓàØ±2Žãs÷öÛùý;M{Ù×–k^=~C#oSoÔ;ŽãÛyÿÐ2bK>§Pp(—] =Àm›va^æô‘ :ÖJÖ¡ÂÔÔžç100ÀwÞ‰a,žêõ:###Œu\Õ§ª*ñxœ¡¡¡¶ï[­Vi4èºNOOÏeO ×>ž ££5\¶÷ó‘ÛÞ¿¢ßs­QçÄùSœ™<×Q'Š¢ÐîgW÷{1õ`­ºÔjº¦³©{€èdYäuMú¼ôRžJÅ#j‡ùŸþ—Dƒ‘ίñœÊ¾Åxò7øÖÓ¯sút•®H†_øô?âïøG–\Ý¥«Þ;ø0#¹#üàôc‹Vu9ŽO6ëP¯ûDƒ&û·Þ*'Ft":¹ñ<‘‘ÇÁ4M>ùÉObYÖ2Úr˜åÅ_äðáÃd³YB¡÷Þ{/ûöí[r ®ëlذ\.ÇÈÈÈ¢©?Ïó¨T*­ï000 'fáºpìX™ZÍ'hZüôƒŸ]vpæúÅ?ø¼|è&&êÄì8Üó¾õ}K®Ô]w0Y:Ë¡‰•¸®O±èÒh@Ð °¥oHNŒd¨®ŒÉÉÍÞ?rïÃlÌt>žïñöÔ«üÉë¿AY;Í{ÞeçÎ ù ~íOÿ¿ÿø‘//½#»®¸gð“„Ñ‹F¦¹\s¤¶‚ìÛ¼[NŒèDtrR*•(•J­Õ|˰©©)8@½^gãÆd2J¥O<ñ/¼ðÕjuiè:ƒƒƒK Ú|m”aôöÊ´ðZ#—s˜m–ÞwËtÅÒËf´Fó'xâ¿ ¦M°m[ Lf˳ü÷ÿõ ¾õÒ÷(×–®‡Ó]wa]”¥rŸr¹ùlÃd¸g£œ1TWƉe¢Á¿ã~l£óh2WâéÓß`¢x¦)D[ãÖ[Ãd2¹rÿò?ãµoµºÜ^Ì`l;ÛÒ·_r¡Ìf›ë[·‘Š&äĈND'7¤ñžÀ4M¶oß¾ìT_µZedd¤eÂt]§¯¯H$B­Vãå—_æÜ¹sm‹Ïãñ8©Tê’‹o¹ÜÔk&“Y2Ã%¬.cc͆¾AÓæŽ-{—ê+5ò¼5ñ<³Õy}© ÙÄãJµ ß}õ)Þ9?Ò6žt…úé‹/º¯Ñð(›†jCW‘ èD ÕP,:Œ7/P·ïnv(õ|3ophâùE©SËÒØ³'„¢À™©QþøûN­M­Œ¦ê|pèQð\×Çu}ÊeŸ|¾)ì»¶í“#:Ü€Ôëõ–1êë룻»»³N<™™&&&¦ùº§f&#Ç+¯¼Ò¶VFUU†††Zï7ß´Vk^°eºoíQ©¸ÌÎ6ÏçpïF6v (JÇìÔùÂIFf²pµža¨lÜh¢(0™Ÿáûž¦á¶Ñ‰¢±'sÏ¢xR«A¹ÜÔݶþa91b¨®ŒÑÑ:岋ª¨Ü¶y7ƒ]}Ÿßpk¼9þ,U§|Éc==©T3õþç¾Ít¡}SµîÐ~n#o¼Qä7ŠÜÚu?ïÝq÷켃÷¨í"ˆbh–œ8щèd ’Ëåh4𯻷·—d²óŠ)Ï󘘘XÒ,E"B¡fMÌáÇ[§¥‡ÃxžÇØØcccd2dÛ¶ö+F ÃbõU`fÆ¡VóP…Í=éZfeã5™=Bût›ªD"@$Ò\eüü‘W)TŠmß'nuã—º8uªÊ©SU6Åö²c` ;7laÿ–=m≊©ÑUYüÒðÈ!X*˜5Wm5>‰PŒ=CÛ1æ²Â>›?Öf¤¨ÐÛk25Õ W.ðÒÛ¯ÓÿÞ—dZ¸»‡W^y€ïý“_å~ ×Ù¦º—|MÄLðÉ?E®:M¥Ñ¬½™*òÖÄóÒa[t":Y™‡f!¸mÛ+ZY7¿%M;"‘¥R‰Z­Æ™3gÚÖc麎eYœ={€ŸüÉŸäÎ;ï .ù˲ؾ};µZz½ÞúþãããÒ›êÇ“BÁÁqšuC™~z ãk\ßaª<ºäcŠÉd€|Þ¥T«pìÜ;¤vì_Z'ªIÈâøñ#üëG?˃»›Õ¥ÈØz˜» ÜÈSsšºÈ×fɽi;±‹¡Z‚jÕ#Ÿwðý¦˜V’òt=‡±Â©6JÈd.ü0^9þ´¹PZ“Û6ï" é4\‡ˆ"ºÌüµs[ïÝ7]c¶:)Jщèd•Y8Í /©kjg¨æ§/Õ‰J$al¬yÎFGGÙ³gO[CÕÓÓƒªª­M——[Yh}}‹3­Åb±ÕE]¸64Í|"vˆ¾TÏ tâ’mÓ¨WU!»p‰?~þw·1T†`sÏ ºªâx¶a4—щn±9¹xñK¡–¥ÔÈÝ´†J¦ü– Tr[y‰pŒ-½C˾f¬xІWo3RP°mÓlÎ…9Öþ„¨*é>úSW¶úÆÔ,4Uü²èDt²úÊFk5žmÛ+2Tù|¾c!]×[Y®‰‰‰Ž:‰ÅbÄb±+yëúUk>*´ U«Íx¶Bô%»—}M¶:ë;mã‰i*Ì/ô<39Úö}E!M’ºÂæÕ@U´›öÊ/¤°+•fAÞ†®>2ñô²¯™­NuZ@Ŷ›B;|æXÇçvÇÓlX¦GˆNn ÇiÕOÅb±¶Sm‹µU]ÖàÌ·D˜_=ØŽH$rņJ¸öÔëõz³°<K -¯“R=ßñqMS0MuYCEIǤºªk ìùÂÀád€e§Ltý‚°nƒé|û”hÄ‘KˆNÖ‹¡šÏ6-WŒ>ÏrSkªª¶2T®ëR,¶/86 Û¶åD¬yø4>ªÂ¢=ó:QXfjMÓz3ž8žK¡Ü^'¶i¶Br"®Éõ_Äüßžšª®øBéxŽ+JsN á8LçgÚö ÊÄÓܵgˆCÓ6û¾ð1»úùÜýÿŸ|ÏÇ0–(Rœ-ÎòÎØ êNó;X†EO:…ã9rBE'¢“UÆuÝ– J$VÖ¬]o©vÏ-—Ëm{J…Ãa˜˜˜àK_ú‰D‚}ûöqË-·,Y_.—™ššjõ-Ò4h4zYßI¸üxÒh\ˆ'=‰î•û»%´‹'óÛÿ¹®K¾\hÛS*вm(Ù‚ÁÏ}ù_ÐKqÿÞ÷q×¶}èÚ¥:)UKŒeÏãÌé; HD£¸Ë|'1T7Uð£U£ñPdE¯/žîø¸iª„Ã:PÇÇoÛ@×t¶oMrët”¯ÿåž:¾ͻyøÎûK/”U–??ñ/931Êœ¶Q°ƒ*C‘“*:¬žç-š¾ ƒ+z]»‚ô ™ Ó4) sÙÎõV™L†¾¾><ÈÄÄ===ìØ±£M¦ÄáðáÃÌÎÎ.º?HÕ5ÓI³„`žµ²Œâle¢ã《ei€ƒÛÁkªF_„¡|gŸ;Ë©ñ³lîÞÈ[÷.ùüº_âçÿŒÉÜ óo«†© nÎx"†j‰‘ÂüÈLQ”e·i‰Ë­­ø3Nƒ‰Ü4»:<'f& hæŠßSQ ÕäŠND'k˜•Ö2u2HK=w9fÆe›!Ó4å„]·xÂ…xdbé•ňe2Þ‹žËl9Ï ýmŸÒ#hj`å_|n@&4‘#±ÄH¡TòZj1ô«ß´Ì™K½v<1ŠŽ"§Gt":¹Áuâµ Ò¡™YºŸ±\»ªª;n «o¨ªU¿O–šb»R\×£R«,3àRQˆ¡ºŠ™×õ[î[W¯^¼œ¢¦ê¨Šœщèd=˜ª…ÆfU½LÕ­ùxâyâ‰vÏ×引ªjOÄP]®Ò²ô@ Ùch¥¤‚=˜º¬ÌˆNÖM°UÕ¶Í/]×—Ý\y!¶mËV27P1EíÌ9êå g'ó”*õ51V»,CõÒK/1== À¾ð…ÖÖ†aðó?ÿóär9žþùE¯ûOÿé?±wï^Þÿþ÷3::ÊÏüÌÏ,»UÂÚ`ûœ™]Ñs#æÊûËz€L,Õñ9u·ºìÆ—«Ac&KáÍ#Ôfgi8 Ç¡rv”ü›GðjunFD'¢“•’ËåVô<˲Vüžº®·Ý¹uarœ5i¼Ëå2“““T«ÕVÖ­P(´2U7e<&ó3+z®­\'šF,ØyÏQÇkà³6²ƒŽë1•+3/ãŠTNŸÅ)•p]×u©MÏP>}–J©YWUª®¾^.«ÓÛäädëÿ÷õ-ndØßß¿äó>ÿùÏóë¿þ댱sçNÊå2GåöÛo_ƒ™ˆD´–°Ëµ•¨ãV×e['î|a-Ô²4ÜÚš:6b‰ÙWâ ,ʱºÐ8;НªÄöÜ‚j®ÿÆp¢ÑÉÊ2ê"s´R“p9û詪Šmwnîº§Ñæ3SK“ùMŸ3™Ìe50½‘3T úÖ+ûM‡ØŠ?CS5Âvgã]i×Ä”ŸçùLÏ™©z¹BéÄ)ÜJeq<ñÀšÁWdÔóìŽa«×Àö²2T]].££‹Gä ÿ½ðy»wïnŽÎ#‘Ë,×›ùÚEi¦?_9~pePëÐj5bq.­t®«p=‡º[ÅgíŒ(kõ:Ó¥U3@Ãóh¸Îâ[£AþSL½ü:N±´f—µŠND'×ß|ks ï’¸Ù)ëÔ ×u©Õj‹LUû‹“‡ëºkÊPÕëõÖþƒžçá8Î%·l6Ëùóç[Ù«õO4íB<9qþôŠ^P;›ÍFãZu[ñ¤Ó~ŽžïâxuXåxâz~k%_­Þ P­Qè8žã¹‹o®Cy|‚üñw(Šœ:Ÿ¥T]½é¿Ë2TwÞy'Éd³%þïýÞïµ~ÐFƒßùßš»©ß}÷Ý—Ö†¡bš*¾ïs>»²åðé`ÇÇ}¿Yp `hº:l-P¬çÈU§ÖÎE²V'—/àzêÆ ø]i>4oñ­á’9ËäëoâVª¬wD'¢“•fæcà|æe9–Ë8]üþ¦üªÕê²›'¯†™ò>~SÔTôæ Í÷a¦¸²¶ Q3µl<™_´§«§ü*2¥z~UÁ|ÍÔL¡L£áP.Wð<%“†X××õßòä¹wNS+W9?]X5SuY†Ê²,~û·MÓxúé§Ù»w/>ú(·Ývßÿþ÷QU•ßüÍß$ Ýж,Ëjšó3«Ë/uŽZÉeF >ÕjSÙº¦“ˆ´ŸÊ©:%Êü ~ r…F3 ¬˜ÚÆ~ÜDŒ†çá¸îâ[Ã!wj„‰WßÀ©ÖÖuˆNVf¼Vaz¡PX‘¹Y®†ÊqœV–_Ó´Ž[Ú8ŽÓ:/«ã8T«Õ–AÒuH$‚iš­ª‹oó™ªõ^S0ÔÖ¾{3…Ù-t±k¢\×§ÞhÆ“æ”_ûksëRsË«ö÷» j¦ ‡ò‚•©Š®£fRxáŽïázÝòø$³'NR*V˜œ-á¬ÂË^ÏûÈ#ðío›O|⸮ËSO=E­VãÁäñÇç3ŸùÌ /ì`P%j¦éó¥<§'Î.ûš”Ý‹ªh…]«5…½{hGÇ÷*Ô²d«“«|<œFŽììl+7wD÷(5aªa{nZÇ]|k8̼sŠ©·Ž¬ë(:¬èB´ê€ªÕꊚ{ƒÁeÛ-̯ìîî^QFhUU2×7«X,.Ê6ÍO÷麎ªªmMÕôô4ëZ'¦©`šÍØP©–™È-Ÿ}Žš ”—q×mÒ6vt|¯J£Hq•2T®ç31[b:W¤Q/R,•Z:ñif+«ŽC9lѰLßÃñ.º¹…± r§ÏRªÖi¸×šø]ÍÅÝqÇ|å+_YöyG]ôïP(D6›]ó¶,p¸)ìÉü ož:®ÁmG¡šÉ`|;§²‡.yÌ÷}Êe·•yØîmû>¾ï3[dv/”¾ßÀoJ©‚rQREÑQ@a5¶„–­g– f ‰„Ž®+d 9Ÿ=ŽëuNjj€žðP±Âìì…QÙ[÷¶}Ç«3š?±Š+·<üÆs8å_Bõ¾IHû54å ¾ïS*•šÉ9ûªJ%¥dh¸Žãâ8.®©[InÛ,:Üô:QUµ•qªT*LNN.[d­ªjÇ҉ʂ~^ÍL.—[µ¤yÓ433C­V[4ÝW¯×[fja6oþu ›—¦ÓiÒéôºÖ‰¦)„Ã*šÅr‰3Óç—ÝAUtvwÛxR*]ˆG[û6µ75¾ÃLy ÷:¯ðs\É\™™| Ü#¸µ?Añ_ÀRÿ;ªrŸZµÚ4SóEQŠB=¤jh8žëzÍ›‘ }Dú{Ûºvýíª6$“ C¡á68vî²…Ü2#ƒÍ‰Ým‚ Œ_˜ÿß¿åÖ¶ïSs+Ÿ9°z£Iç-å/⹯>ºòAõßR+¿J>Ÿ[´-ëyäªU²A“¢¥ãx..>é[¶Ñ³wÚM°ÜYt":Y ¡PMÓð<©©©e· QU•D"ÑÖ¤,,n¿¸…Í¢ –ã¬êþõz©©©Ötp£Ñ R©P.—©T*‹Ì”çy‹2ióuuuÑÓÓ³î3Táps€æx.£ÓcË¥eh:=á+  ÷u /ž¼¾™)Ï¿ÐgÊ9Sû¯xÞ ÀGSŽbª_¥Q;A¹¼x5°çû”êuŠf€j@Ãõ=< 6ØOrÓ ‘pžd˜€®‰¡Z+d2ÖtÎ+ÇßàØù“—x«ŠÊPb}‘áK+ΞmŠîûý©öéþ\uš“Ù·Z ‚wÚ®Z賺pŸBÁaf¦A>Šk]޼ñ/Ð(ü¾û&óKgßÁ,>E:÷O°¼Cs?TŸ†ã’Íæ¨×¸ªJ.¡ Ó»o7î¼í¦¸HŠND'—c¨æë¨FGG™žž^6K•H$µši™é¹ŽâÃÃÃD£Ñ¶ïQ­V[Ó† I§Ï‡ÃX–Õ28•Jå²§ ç3S—t‡¯V«—dÍ<Ï[´=Îü_oo/6lXÔm~=ë­i¿ãçO1šïO2áA’vÏYL—©©¦‘Ý7¼‹T$Ñö}Jõ<ãÅ‘93¯,0/nÛ. q«‹P †ë6K ‡r pèÃg|¦ÈT®€[?‚Sù-|ït+žà»*o-ý!ÿLË!º®G±XÂq\OcA@T5ž;öÒû^4ÃèØïDt":¹Ùt¢ª*©Ts‰ûôô4###MÍ|+„®®®KŠÓÇÇ›-:ûöíëØøòÌ™3-“²°Yh¡Phûùªª2<Ü4üår™jµJ4½¤¿àrfjjjj‘™š/@Ÿ¯‘r§5­wñ^ƒªªÒ××G?º®ß4:Ñ4…îî9ã==Îѳ':–(ŠBÜL3ݺh±‹çùœ>Ý4Á¶iò¡=÷`t0¥G§^™ëAEk€ÍÕ†N›ÏW…Ûû>ŒRé¦4™¦:±Œ7‚û:þŽç39[b:_Àk¼…SûÏøþØâxRñPJ–†.åk˜Œâx¥rgA±¹ªª$¶n"½e3ÑHþ®Øªd¦Z×±NíÙ´Éâµ× Ôë>þôcüÄG>C"ܾÔ„¹kàŽN½Â¹üqNªrútUQyhÿ‡ùð­ïCS—>á•F‰cO/~O[¥Rñ85q–z‡ýní¾—Ÿý@³Æ ޱ!ÝÇóg¿Å¡×[zjĈYÍç{i”ß=°`„0‘tQæôâ½ße6ÿÔƒ‹~X›‡†Øºeø¦HË‹ND'ï†d2Éèè(ŽãpðàAöïßßñ8†ÁÀÀÓÓÓ­ŒÔôô433ÍmIvìØÁæÍ›Û®¬×ë—¬ŒÓuÇq–­«êëëã®»îš+ãñ8gΜ¹dŒ…ßu¾ÕÃ|ÍÔÂV ÍÔÂûêõ:®ë^b¦ÒéôM3ÍwI&¹Ûàw*4ðô[/pÿm÷Ö:èD·Ø–¾sùãLWÎ01Ñ`r²Žª(ìÞËÞM;Q•6:qª­l÷<¦©P«ùLä¦;‡â·ðð®èÜ@0HW4Å‘©—9óÎ K>ßÒƒ4êSù2¾ó6Ní+øÞÉÅñ¤â¡”¼V<19CÂ}Œbù#8NׂxÝ™núûzˆ†lz’Ì€¶ªçN2T5¶nmf^9~Ç_úÞ²cÛùì­ÿ„”=ÀÉwê¼öjÅ3ùÄ÷ó«Ÿý"=ÉÌÒ£:ßã¹33]>¿èþžžæhåÀ;oQ¨”:Œl4nÛ¼‹Û6ïbcf ã’k[ó±-=™÷â;Gh ß}ðšºöü¹‹¤Ck['p}ÂÓ¯3\þ2‘¹¦ilÙ¼‰íÛ¶Ü”ÁOt":Y)†a´#ŽŽräÈ‘e§ýâñ8{öìÁ¶m²Ù,£££(ŠÂöíÛ¹ï¾ûÚN÷yžÇ™3g¯Ã…£££[)¨ªÊÀÀ$“ÉŽ:1 ƒááaººº.©™šÏ@]l¦ 9%<¿ªOÌÔB3£Ò××Ì&ž8š—Þ>°l<é çbôfIDATõóÁM1ÒŒ9œ8Q/À[÷òÙ=Òv +ß÷92õ2…ÚâÕ¤‰DóØŸ;M¥C?,UUÙÜ3ÈæžA2±tÇL¢¡Zìëý0}¡­¸38Õ?—éö/ēЇRrY´ çcçOÒ[û6¶?ø¨ªJoOý½DB6½©¶¹úz‘ U'·©*ìÜbl¬ÁôtƒßüêïsÏÎ;ØÜ³±ýKÕÙ’ÚË?¼íKg¾ÊÝÔyÏöÛùðÞ÷aV[QÌá§¿IÃ[,Þ¡!›‘‘³¥<öä7ø¥ÏüŸWvñDùÄöÏóáÍâ;ÏS/~á¢é%ï¢æ.dðÁo€7¥¢Ôïòõggç†-ô$2í_£hôF6ñàæŸÆ,<ÃŽ}Û†Ù»i'†n´'“¥³šx×_œÕÎdL&'«ž|ó9>sï'¯Ì$jAîìÿ(·öÜîQœê—/šæóQÊ^ó¶ÀLùøyN³ÉÿkFŒGˆ÷ÞJ_o335˜‰­ÊŠ>ÉP½ ";‚˜¦Ê±ÑS|é±ÿÊLaùU33ýü_?úsüÚßýE¾óþ¶I€B=Ëÿ:õ5ÎN.€ Mþðoþ/}mEßÛõŠõÅ+Î"F‚mý»|`èSøgqJÿ ß[ÐTÑ¥à]z‘¬ƒ7­à/¸†G9ÃíC[†7ßôIщèd¥º»»Ñu™™ž}öYŠÅⲯK&“Üÿý<ðÀìܹ³cÝT½^çÔ©SKns‰DZ«_~ùeNŸ^ÙžqóÓs‹3)&ÃÃÃlÚ´©5Í×®fj)3u±Ù»Ù3S‹²Ã¶ÆÀ€I  0:3Á_½ð73Ï-#Kñw>ðCüø}ŸæÎ­{Ûš)€ŠSäàÄ3ÌTƗЛNW&€¢À÷^{š£çÞY™N|—ª³ø{Úz˜}}bW÷Ýs­þß?»8žTü¥ÍTAa¡×³™b¸Û§¯·‡Xئ/Y3fJ Õ Ð4…Í›m¶m³q¼:öä7ùó§[Ѷ+ Ç+ç¾Çk£Û\QqÉKeïÞ07ZŒLáùWøú3ߢR[:]_ªç9<ñòú¯óäɯ.È8D¸øGùÐУhþQå_l-y¿p‘lNß\,joFÁ¯*0ß*M  mù"[ì¦Y}#:\ìƒJ2™$Nã8à7Þ¸jÛªxžÇ¹sç]r:Ñ0 zzzH$är9üñŽŸ_¯×ãÕW_åÔ©S‹ÞgóæÍlÚ´ ÇqVT3ÕÎL©ªJww·˜©‹âIOI¿ë;<ùæóüà­:ÖG^¾ïs|ú'¦â³”N6m²ÉdLæ§øÏßþo<{øeê¥uRuÊœÉã‰wþœ7ÇŸY™²ÙÛóödÞ‡æŸÅ©ýA«5Â3Õœæ[OÜ93UgA<ÑQ{?N°ïDÃÍš©ÕZÍ×QïJÒ•¦ÊwD©V=NžÌòÏþøßà¸.?ñ‘ÏtÜi9AWœ"Ï<Î×ý‡Ö ‹‹Q…T*À‡>”`f¦Á¹³'øWõOùòSömÙÍ[ö‹XÌV'8>s€ÉÒ9ênõÿoïÜc㺯üþ¹ï{çÞ;/‡œáˆ¢LJ”"˲­ÄoØŽã8vägìI¶è.6Mþ°Ó¤ö"¨»éýcH±HÛn‘‰“ºÈ®Ý¦ï¦ò+Nb;¶¬X•‹¶dE&%Ë’(>‡œá¼îíáIФ(‘”(ê|ÿa@ä ‡_žß÷žs~çP©•'Ekë.÷mþ·vÜZû•üïO?­§‹§÷„U¨Raº¨õ(z××ѺG1"щèä\ƒ®®“Ë妌ÈóÏ?O†ìرã¬;ü2RÕj•ÞÞ^zzzìÍr]—ÎÎNŠÅ"###¼üò˼ùæ›d³Yr¹¶mOeœ …µZmÆM]×éîîfýúõT«Õ3F#,d¦K‘§2Ÿy™ŒÐX|6S¡«+B¹ròä?zñijAÀWß‚mÚçOʵ Þí“׎þ#AX7žø¾Æ¶mù|Óñ“Ý?b×ïb\‘YÏÆì"ŽÉxy˜òG) P *TƒÊ”Y2T›ërw³µå:ÔZ/Õâ÷ÃfÆ“Étf™©`DÊ´x¢EÐ2÷¢åÀó“´¥¢˜¹] ÕŸnº)†çi:TàßüðÏ96ðÿâŽGØØv†¶ø²Tèîáµ¾gÙ}l×¼‡ätqë:¤Ó&ét#èää7<×÷›¿Ö3ã|¶ëË|zÃC„•W©žœyH†ÌÝ S®gf’šƒ¾ñh›G1c" щèd ™ªŽŽLÓ¤¿¿Ÿ]»v1::Ê5×\C*•:§LMcxg__ß¼™©¹^ßuÝÓØK¥‡>ËCƒ5•™:Ÿ2ßô÷¦ªª˜©EÄ“-[\GåøñO½ðòƒÜqÕÍdšZÑÕÅ›ŠZXåÔØ1ÞíßÍÁ½óš©éñDÓêcY>ÍRdŒwÙÛ¿ðþM[w¹:sÛZn€ZÕÒfš©ù{¦ò³Ì”j¢eïCk{ׯZ3%†êœŸT®ºÊ£¹Ùäðá"ÿíÿþ€WÞÙÍý7ÜÅ#7ï\° ¹ÁGùøMß³üîÔo8‘ÿ€Z¸r+!‡äí!¬¾AµðïkûgŠºqå=<óœ]¾Ñ;Eï~Œ¨ˆAt":YS•Ífq]—ÁÁAvïÞMoo/[¶laëÖ­‹Zµ2::Joo/§OŸ^p¶Ôòd`Ï4SK-óe³Y)ó5£©ÐÑá‹ê|t¢ÌÏûïôäúÍ×ró–O.جÞ`°xŠwûwÓ7ü.CÅSÔVìý~l¦n†ÚAjS£¦Å“Æh„ðL35»Ì§ev¢çÄõâ´&ýUk¦ÄPça¹nE:mÏ×8vì ßûÙA~øÜO¸qËžüg_gSÛü»Éžþ-/yšR­¸¢ïÓÖÝ©CÒâ(å±G ƒCL]Q%¬7W?ž„N¦[ÔÉÆâÆ‚…Þõ(úæoÉ!):,³©jLDoL@å•WسgëÖ­ãöÛo'žÿÀìïï§··wÅwõéº>e¦€·ù&î\ÍT&“3u¦*Õl‹ë‹§Oçvç…½¿fs®“Gn¹wÁÍ ÇGßçw'_¥”W6î©ö”™28Mu⯠Ãã3ãI1¬F˜n¦‚úm¾pFfÊ@Ë|-÷"nœLÓêë™Cµ (Š‚mkضFs³I>?ÌÁƒ¿g ?ÄWߺàAÙÛŒ¢¬ì]€ˆásßæ¯ÕË7Õ7&Ƀӣ\½|3;ãPZ¿ åi³Dô(ú¦o¢oz _~ù¢ÑÉ ]×q]wjü@¡P ««kACÕ˜+µ’˜¦Iww÷Tfê\F#Ì×3%™©ó‹'¦©`š*±˜N±8·ž _ãê+®\ÐP5Gr¬ô4Ks¸.w÷d™ïङúpf<)Ì™ F¨L‹'Z­í~ô¶‰x±U5aÁ$‘éÒI¥ t]ahl„CÇO¹:ÿSÀºø&º’ÛWì½øf‚»ºþ9·vÜOXy•êø““‡Ä©+ï³Ë7^˜Æ_°¾ñ_¡oz\IщèäáyªªR,X0ûǧ†…®È!99aýúõËÖ3%fjyˆF54 Æ&Æ9>xbÁ‰æ)/KÆß°bïÅÑ=®É|š­-×A­‡Zé©ÉÌÔ´xÒ0G™é—-{/zÛƒ¸^Œl“I˜)1TËDK‹‰®+aÀžCû89tzþ'QÕà¾Í_¥3yÕŒÝKË“qˆò™®/qû†Gê·´ OÔÞâ¬WÞ+óôÂtI/ŒèDtr¡ñ}j2ù±cÇ]0³µyófšššœf~¾™©å fjùˆÇu4M!C?ÂðØü:ÑësŸ£Õë@YæcßÒ"lÏÜʶ–›ë·ùJ?ZÜh„y{¦>ž{׋­ÊÑ !Ê^ dRçøñ2¯¿÷GNö‘KeæÃßßÌ×oø  '™8ÍÑ‘Cüïžÿ²ä'„{»¿Â­ÔçM¿òRO·6za¦ßÒª5Ê7ÓD­ûè]ÕI]IщèäBâ8ŽãÏç9vìCCCÄãñy S<çú믟Zd<22BOOÏ’ÍÔÆ§ÌÔôÑgë™Zh4‚¦iò ^&ËÖ–ês¦¦FhÄ“FÏÔt34Ê|Óâ‰æ ev¢åÂucdSÑ‹¾›O2TãCT®¼ÒEQêÛ¹ÿæ¥gæÝÐ  **Ã'ÛÈÖ–Ùܺ´?,3Æ=›þˆ;®x­¶›ÊØ×f^y§Ñ SÏ8(C² Aÿì+ï.úÆo¢mþ˜ÉúJAt":¹ ´¶ÖûaŠÅ"{÷î]ðöžªª˜¦I<ŸÚ¹T3ÕÙÙIggçÔn¾ó]'3{4‚":YÖx²¾ÝFQ _çû_¥ίEQ°t‡”›¥=¾™V¿}I¯oëv´ÝÉU­7¡©NüÕÌÑ4z¦jÇ“Ffjöœ)ÕFËÞ¶îa\/I.»äÌ”ªe$6Édê³TžyíŸØshß…yJ1|¶ë¸}ë¯S-|›°öötMOfæžtfùæ±ú0FCæ‰ND' ß÷ñýz?Ú;ï¼Ã‡~xA^w®u2Ë1]æL­ ±x=ë ðZÏÞ?~䂼®­{\¹m-7Bí=j¥½3ãI1¬7 /¦Ì—݉–{Ï‹“Mùú¥™ÉCµl¨>{È÷5FÆGùÎOþ’SçWXÔ‘É5!`r”ÊØ7æ_2½°6ÿš}óŸÈ!):\dt]'›ÍbY¥R‰—^ziÁ^ªåzÍÙ£–j¦2™Œ˜©Ä0::l"ŽÊøD‘¿ûõÏ_Yª5µNFç4Õ‰ïÏß35{4Â<ëde¾Ka4‚ª €¢(d³ŸúT”dRg×Þ—ùãï=ÁžCû˜¨”–ýõÝã¡O<Æ=ÿ“}”ó=‹:QFª¨ƒU¦f¸Mfj'Õ™‡¤Eßò$Æ•ÿÌ&ùeŠND'«!û‹‘Ëåp‡Ã‡óÌ3ÏÐ××·l{ÿ¦cš&[¶laãÆT«UNœ8qNëd¦›)]×imm¥­­MÌÔˆ'ɤÁÆM|_eïá·ùÏÿçpèø‘eÛû7C'ªÍí;Ù‘½ ƒ#T‹ß! ÎŒ'ã5”|é³CÃ*ó̔A[÷FÇ—ñü&ÖµÄ/i3Ò”¾¼îT­/Èõ<÷ß/°§ï¾ñßOr÷µwsækÉ$Ó¤¢IZÍTj% •<ùÒ 'òœÓëøf‚Ït~‘[×ß7¹&äÛ„Á´màŒÃÈÜ“­gôÂ(Æäü  º\yˆNVMMMضM?ÇçÙgŸ¥»»›\.‡ïûD"¢Ñ(AP.—™˜˜ ŸÏŸÓk¬Ä:¹ÍwaãIk«‰m«|ôQ‰Cýøþ®avtî »­“„#êø$¼Õ B©V¤XÉ3T³gªÁì èZ¤¾èx²g*—Ž^²C;ÅP­F+:¾• j7á™1¢Vq;EÊÍ‘´Ó4»9’‘VtÕ8ãkLJQ)4†¶©LäoC¥ŒÇ3hÊðüWÞUkòÊûã²ÀVt":YcæÉ²,,ËÂ4M,ËÂqœ©€®ë‰DæÜ8666ãFß\Èh„µO4|;JÔ‰ãšQ;F<’ Ùk!á$hö[Hº)tõãßçÈøcù<åâ(µRq*žTŠW¢RÁæ5TÆë:™k4‚jLŽFx׫ïæ[ËfjMªæX’6ïàõw{Q3 Q+I‹×N““!í­#f§ˆZMøV׈â[ LÍ>û7 ò§f®±)p~ø·(•Âüå›MO€!·´D'¢“óÁu]ÚÛÛéëë»èæÉó<"‘ÈÔ8Ó4±mÃ0°,kQ£ 朼Þ(Ý•Ëep$£Q®íÚÂ[ï÷\Äx¢µc´ø­$ÝfÒ~ 1'AÔŽáÛQ\Ó÷£˜ÚüeÚZ/”©Õj‡OΊ'&%¶àð+¨–æ-ó5ÌTkÒ¿$w󉡚d}:Ç}ô;|ûÇÿ‘çÞúµ–Ð.å TPPU ˆá³!¹•æHŽõñͤ½uØš‹©[ª…¡YsfCaäÕâ™÷èC\ƹ‹0Ð𞂉*Ó·wë¢oþ–’¢ÑɈÇã<ðÀ<÷Üs:thÁeÅK1LPŸ~­( ¦i’H$p]—x<Žçyhš†®ëSe½¹2O‹ÒI¡0ovªaªòùü¼ëdÄLÍM[S þ‡ñݧŸâWo¿Emt¢©Ú´x¢1]6¤:Iy-¬Ovö[±uS71TC7gdžC¹Rc´Pbb|˜Z¹8G<±™àZÂ@ÃοåÚ´Ì”9Ù€þ"^lM÷L]6†JS5¶oø?øæ_ðØ_ÿ)ÿðÆsTkçXÚzÇð°u—ˆácéëã[H8-´ùWöÚ‰ZÉùY‚j™ñÓ}µùÒóås„pËO£#“½0ߨ÷ÂHùFt":Y²ÙÉd2<üðÃüô§?åÝwß]’©ÒuÃ0ÐuÓ4Ñ4D"mÛD£Q<Ïò¬ùYªÕ*ccc ¾Ó4q‡ññq‚ ˜Ñ3%fj¡x¢²eÝ|÷+Oðg?þ+žßû:ÕZ°„xbc›Ý!bÖº:š64ÑË‘ö[‰ÚËqd`´Hµ\fb´ŸpÞ‡Lƒ’r ¡võU”`|²gê>ô܃DÜ8íéºvùÜ}[óéxŠïþñŸ†!?ßó‹E}¥9$#-xf‚¯׈ÒɳSÄíf’N+žCU.L ³4>Ly|dá¤hLx·î賘]_E“^щèdYñ<;wpðàÁE›§FiÎó‡Öö ®W¿Íw9™©ËÂPA½¬óŸ¾òïIÅšxãè?ÍÔƒ¢Òï&a§Éú´xëH8i"FKwðͦî )§þÔª‡OP+ÎúoC5B9~îú»ÐÚ?‹bÊ•wщèd¹‰Çãìܹ×u9zôè,(Äãñ™&Çqfd£t]¿`æi®ìT¡P8cˆç\¨ªŠçy455‘L&e4Â9ÒÖ”æÛ_ú*‰hŒ7ŽüúÌx’\OÜI’­£Åo%I1],Ý·¢˜†¦\xC2”/R«V)TK‹ˆ'Uw¤¯Ak¾×Óš¼|Ê|3~¯CCCáj|c‰D‚0\Þ·6ZÈó¿~û·øÉ2¿ƒ\´‹¤ÓŠ¡[((hŠŽ:YŸ^- öŸäƒ·MÒ¿_BQu4ÃÂKo ’Ì¢§]emˆTQæ]¯!:\,LLLpàÀ,ËÂ÷}¢Ñ(ŽãLeqE9ï§•bxx˜?üÛ¶ç}oªª¢(Ê”!lüÿÅ2—ºNÆŠ~öÖ챆 ­Ñ,¹ø:’‘†n¢( šRÿ›] ñ¤\©Ñ{r˜Óý§9Ùû¾¥¢ÌOU7°c-X~ºaâÚ&m©(æh@_H'b¨.Q~ðƒ²oÏ«<|×õ´gšQÕÿèTÝÄt8±4‘DÍtÖ¦ë¿ÀPt":Y«üò—¿äƒ>`Û¶m$‰3Œ”eYضM$Y³)ÑÉ<™¦F œc×®ç9òþnº¦›t"†2-ž(šŽay˜n ËKb˜6¶©ãGL¾³fÊ|çc¨¤ ¾ŠçÅ_bphˆ§w½Á—ï½…l:ª›Ø~ŠH² ÓK öšyzD'ÂÊ011AOOãããìÛ·;vàûþŒq ÌÕjˬ +O¥V#_(Q(Ù·o?ccc¼öÖ{Üö©­$ãЦc:Q,¯ ÝñÐ ß±ˆy6ËÀ04.÷è"5«˜_z‰ÁAÂ0äý¾“üý®ÝX‰u¤:?IbýUD’YtÓ‘CRt":ÎÊÈçóAÀàà ûöíÃqš››I¥Rxž75’A¸ü(–*KöíßO~,OHÈñþa^Ù{ÃKmíÂKwàÄšHÄ|Ö·$hkŽ÷lL1S€d¨V-ƒƒƒ¼ôâ/p‡l6Ã'wìàž{µU>At"œcccôôô`‰D‚ŽŽ¶oßN<—G  ç'eÿ¾ý˜¦I2™dcW;v\K"™ÄÔ5<Ǥ)æ`bÄP]Bìßÿ6‰D‚Oßñi®¾z;ër9yrD'ÂyÑÛÛ‹ã8ÜrË-´··“J¥D'ÂåJ±‰2|Ћçy\uÕUl¸bÍ©®S/íE] ËБD·ªKŽîîn6n좭­M> At",‰L&C&“!™Lʇ!œA„AH[[Ùl†Tª‰ˆeð"¶ièRÒCu)@)Ù¢ay#%,„mêõ^(=…eh4Å\"¶ª*b¤ÄP ‚ ‚°4Me]Zü.)¢ ‚ ‚ ˆ¡AAC%‚ ‚ †JAA • ‚ ‚ †JAA • ‚ ‚*AA1T‚ ‚ ‚*AA1T‚ ‚ b¨AAÄP ‚ ‚ b¨AAÄP ‚ ‚ ˆ¡AAC%‚ ‚ ,}5¿9EQä7$ˆNщ :V¿v†††BùAAÎ)ù ‚ ‚ ˆ¡AAC%‚ ‚ †JAA • ‚ ‚ †JAA • ‚ ‚*AA1T‚ ‚ ‚*AA„ ÏÿZ4€HèIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/imageprovider.png0000644000076500000240000000064412536324476022305 0ustar philstaff00000000000000‰PNG  IHDR`a)Ĥ pHYs  šœVIDATxíÓA À0 ÅÐtÊ™4ïP—€+;ÿìÎNx9ðo ø Plã[@°ŒoÀ0¾ÀøPlã[@°ŒoÀ0¾ÀøPlã[@°ŒoÀ0¾ÀøPlã[@°ŒoÀ0¾ÀøPlã[@°ŒoÀ0¾ÀøPlã[@°Œo8À;ÿàr| ÀP€`ß € `| (6€ñ- ØÆ·€`ß € `| (6€ñ- ØÆ·€`ß € `| (6€ñ- ØÆ·€`ß € `| (6€ñ- ØÆ·€`ß € `| (6€ñ- ØÆ·€`ß € `| (6€ñ-ø¸kÂ^OÚ£IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/inputdialogs.png0000644000076500000240000007324112536324507022150 0ustar philstaff00000000000000‰PNG  IHDR6ÄÁ pHYs  šœtIMEÙ ¦ê tEXtCommentCreated with The GIMPïd%n IDATxÚìy\åÇ¿3{²»,Ë}-7r#¢(æmÞW™šV–¥iijYjiwvheZ©eú«Ì¼Ï4MÍ#OD”û¾aïç÷ÇÀº,,¢bû}¿|½Ü™y¾3Ïó}f¾|?Ï<3CBAAiOÐèAALÑAA»À5·!;ë¶N§ÓjµF«Ó-\±… H»"aÿš¦iš"„Ð4§°0}‚ È£Ÿ¢ét:F£V«®>³çÌCg!Ò®øÞJ »¾ Ø5nnrŠ¢aôz†a˜¨¡ÓÑK‚´+¾zk¯>Ÿïìì|Ï)šV«eó³W¦¿å t+‚ -PV¥Ðé™VICmo#zpóiS_`×\ܹœa „P]ƼløBi?¼¹ê'øbÖ@À®{NÑÒÒÒÖüyó•é/æ•Ö¡C¹k~VYYv5átk ‡FÇ1Œ½q–væÅ•JèÙ$›¥±)!LÄȹ¨-iÏÚò­o7|:sPËoÕ0›¢yxzÜßÊ È]ó³ŠòÔ¤ÓãÆŽvrth¹pqIéö]{‚£âBØ€õ€æ,„°£hLÄÈ7P["Òþµå¢Õû>{åñûIÑ®Øýôó3³‹kŒWÎæÝÊf{à6ö=‚XZ>5éôÀACh¾¤´JÕraš/‰êÞ'éü‰˜ÞÃXù€ævR«è^CõÊj`˜zI‰ÚAö¯-•Jåý¤hæÂ\jzÖÿviÁ¤²¼ä‡Ïb|lüL—y;·¸´B£Õòy<';_ow·ÞùGNœ€}º?ŒCWTUgÞÎŽ6> ‡CËl¬;ùzJÄ¢Ö×ä¡Ö¶­ÈVÏdS\Ïå•iéYqÝ#àôùä N^öv2<½€¢ìììõL«ü­¥2ÖŠ hnLÔÐéã'LFm‰ H‡Ð–ï~¿å¯ØØûLÑH“€™˜’ñשÄLÔuÕÍZ,J•:íúqý‚bCºÉ$ÂÊZÕÙ«¹ÛŽ] ðùGÿ9¿çó 0zÁ–µqÞSYU­®-›?!fùæ ]ƒ ÇbQit×n—n8lïàb+³iMMjmÛ°£l‰ïl¼©Mò3Ž®zÕ¼A³¿> «æ Z½+¡´0Kšª ’ÄÚôŒ¹’Ãô4¶b…‰¹a†Â&‹&æ¨-Q=v,õØz«i0ÉRÅgûÑ–÷™¢5Ýш¾]zEúRæÉÎÎŽ‰ùGÑXt:ýÕk7>ÑGî(e×ØÛˆFÄ„ù9¿³öxTd¨‰·Š€ ÿ[YyJ•ÊZ, ìäÃÆ)vS'_ϬœBˆ—»»ký“ºì¦~½º™,&\¾Æ¦,U5Gÿ9oR7!ŸàÒIn7oåa¡PدW·Ñ ¶°† !J¥*íæíêšZBˆD, ôó¶¶7=7JJË3³ò”*•••Ð×Kîhok([Pt;;Ëáú%$§jh\[“š›3€¢â²[9y*•Z,úxÉìl …šlb÷ÓìN Õð÷ñÌÊÉçr9aÁyEù…%B?(ÀO&•ÀõŒ¬Ogô¹”^(“YS’Ó‹ž¶pí‰X[<Ï©†Kßc­š?ªi±ÙË÷ °V ‘®‘ùÁcgYóÙË÷é×Ãd±©9jKTH=¶P=«-?³XñÙÞ´å½¢5©»aÎÐÉÎ+ç'w””Õ~µù\f^…·«lÞÄî^.6C{ø^H/4.|ìT<{/ûíÌ+¯öu±“Ü*¨ü~ÇEâävñR »éǽI‹'ãÐô¦¿®&¥gúû?}Ápñ÷‹1^4D=Ãvqô‚-4M9ÛŠgëêë8¦wÀþø¼¼‚"C±îÑaù9ÙoNŒð°§i*«°jížDN&çÆ­ì\wwÙ«}]í$eµ]É̪óñt€´ôÌh»w'P¨´_m>g\f÷‹1gÒ7.æff¶Ÿ‹pö¬þN¶â¼’š]ÉÎQddå™k añ&¹«sÓxÈÝ [ÿÇ¥÷ŸY§Ô|òó©=üïÖ§´RñͶøJB!~nÖ>®²}§nØXK!iÙ¥c||œ%•U56R Ž¢™u-¨>š¢Ø@aÎ|ÕüQ³—ï5Îöš5Gm‰ê±©ÇœyOÂò>jehWdXPjZ†•HØ%¬³%‹Ïö¦-Û`­å¦iš¦çê6PRZÞ#4¾ßq‘áŠ{tó.,.ý~ÇÅ¥3údžÈœ?Õ¬Õ›“ë“îNr»WžìúÁ†;©ý´QQì—ÇtY¶élQIÙ]û«Yâºw)¯¬^·7qÅÜÁQ.¿J5Þš’–ñዽüÜë¯j?wÛׯżùý±FÚ«¢ÊΊ¼5¹'{–ʤ ž‰û`ý‰²Š*Nà&™>º HÅ‚·&÷¼k}ŠJJÍ™””–Ëíy¯O¬¿[ïåb³è™¸w~8v¯}ÑìN*«ª ¦ŽˆkÁ3=Ý¥.ö’c¢­=acm=ª§'dVIìœ œ¢bx,Òkß¹l“¿–˜¢Ñ¦j’ L&ù–Iš®U&æ{w7df†ˆ9{ùÞ½»7kŽÚÕcRæœy!¿¢õ²…†˜«•±]òÃñË/©ýø—³–,>Û›¶¼çM£Õ·2ÌÑ4méšZ&*µÚÙNiÙ¥‘á¡Zc+³MJÎ7k¥²ù †—Ò ?ßx&¦³Ûëc½]duŠ;ïv:Ÿ¹~ÿ¥GD ŒñÛ;ðÝõ§[è/C(4,Z#‹¯ßÈ‘Z£1Þ¸dÝ?u %E¯›íW¯=îj/QªÔÆe²ròLêFQp8>sÃKS‡G Œñß?xéoñ ü45žËذÿÒ´Q]Æø°V±1Qlebc¢ ‹‰º’zÝœIv^áâçzÀòMgÏ¥äv p}{J¯1½ +4-4Ðd“µD<¶wPÓ¬ÙsÅ`òÝŽ 7s+¾žó¸ÜIºfWBznù—³ɤ ¥’tör€Ò*¥ÔC”T* ³·ÃÆ¿Rñl7¨ÉZe£‰íe8w!©iŠ¢X×55‰2Žq³—ï‰2Ù¹Áµ%ªÇލMœ9ÕáÖ KµFs¯µ2–£Mï yz®W„åŠÏö¦-ï}!w sÆÉEQæ - !éé™Ö±€Ï—6祵»½½½Ï\Éx}b¬I±­§zÈ=¶Kããéb£T¨÷cèºEGÆ'\2îYC"Ï~âФß%b‰‹$6Dîï mR¦®Ná/·€ .ùzûmØi`Œ¿Ü®®N<]l`׉4O/ǯò-†!Ý¢# gˆá·R¡2gR§PúºÉ`þ¤;cÅö5uu-4ÐdÓŤËwÝÉÉKÙê†?ùÇo³¿94E¨Rí:¥†¢iŠ@BlæŠg;—cðo4É¢é,Zv ‡¦€¦@§'Íš_HH6Ö ¬*‰Ž`MÌQ[¢zì@êÑœ3išj½°Tkµ÷Z+c9zð\ÆO$Éí)mÉâ³½iË{NÑZ¾_`’œá\´¦ðùüâŠ:wGë@/ûkiéó'Å^HÉ¥½$P^­äóx&ˆ¥ ¬ÖÝÓJ«kfJ¡Ï5ü#€"@ &i•J- 𭉮ñ9Á0¤¦¶ÖÍÁJ+|>_­¾æ ‹JbdÓFuÙu2íë-çVÌÜÜÙ †NÖêu2k![BF€) ˆŒ“Fs'b΀4Í;¥bN§k¡M6Ý}'*Mó¿@¯'B>´z=Š¢Û;<.‡ÏvŠ¢r¬F®¸Ü$E#À¡ë# û¾YóÄ¤ËÆ1ΠJg/ßÛ%*¼©9jKTQ=¶àÌ» K½ŽyZíùçz`'‡“UPjÉâ³½iË6KÑÌ%g˜¢™ ³‘Ƨæí4sl×å›ÎžN¾=ëÉn ªÈÚZ¢.+oÖíæü÷d¿Î«w^|ax$ÜʯYY)”*VÏçqº‡¸'¤Ýd7™`-âæ¯I¸”l'µš1&.¦Ȥ’¢’;)Z^AÁg/€£ofSF9ˆ„Â[•ÁÞÏ‹üi_ÒËc¢ =§L,ëôúÜâjoWÙ˜ÞAö_š16Ú¸i“.@רp0ü …æL„avQ•Ÿ»í²MgÏ]Í5|j£kT8kÞlMÚ.àph¥Z'ò¸šý¤{qÖ*5\Ïv£ÆäA“ä‰-À1þܬ9›ŸEF„«ÒfÍQ[¢zìˆê±g¶BXRR«ÒJ…«Ÿ¦h ŸíM[ÞsŠÖôŽiVV–B¡h6º±?JKKhÀÙÑq×Éë=Ã<Ü­¿žsç;uJíöc×\\ÜK›KÑZp`ß(¯¾Q^ìïÝ'Óœœ‹‹K2ò*:{;°ÓŒíø|^Y•ÒÞÆjã{cϧæ-ý¹~~‰ñóíµJÍž“×Ü<ŒçŽp8Ü:•FlÅûöõ¡ PiEBžL"¬¨¹£ŒwŸH öîõx7ßÇ»ù²1nË‘TG•J}è|æËcº ‰õë—StgÄŤËÍÎÉõ»™3qvrØ}òúOǾi$ /¦å¯Ü‘l®MÛþÍÖs;iM? øü‚²Z?w[‰•@«×Ø¿7y%5ÏvºÉƒQ&ó9L"ÁŠi<ë–Ýš‡……èb²ØÔµ%ªÇލ[pæ]…eJZúƒÔJ£ÓS@B,\|¶7my£h¦kÂÂÂZ5vŽ{p8nîž ×þ=i@H×ÎnR?3¿2-«´g˜‡«ƒu­Js¯ünÇ…g‡À¯¯¤*=ÜÝ|þšÝ ³ÆÅø¸ÊJ*[¦Ì_ÿÞwW·uû’fŒé"òEžÉ®ê”Ú”[Å]•Ú9ñx¶zyÊ¿ÙÿÊ]íÄW2Š7ºòåìAã¯Ý}çÍR6ÖÒÛùË6ß?ØÝѺ ´ö—ƒ—KêÀÅY"Kœ½"¶âéX^­\¾éìÊyC†˜†R#ìíÍ™Èd²Ôœ¼•ÛâŸèäj/Q¨uçRrù3ÅÇ×§ººÖ\MÚNqèÔœšfw’|%å®ý(–ˆSo•ø¹Û:ÚŠ4*-p”‰àzv©X$ƳÝèF!!!ͪ>£XFQë:sÃÌ-š˜£¶DõØÔc Îl½°t°·½Z5=´…‹Ïö¦-ï#Ek´£w7^må~ñÖÏßÕÍsÓ±›k÷$iõz‘•¢è²jåÐÖì½ÊF„ÈðPCtˆ %„oºt¹ÞóÅgþ˜ ®.Îr7WBˆ@ Öï®;¥T©ø<ž³³“ñ󫪧~º_ÏèÅ"‘a‡ ÁŽ–ˆ%®.NB¡ÐäpP[Gæ­:¢Ñh­%bçÑ ¶8ØÛ—!„¸ººäVT½µú˜Z­ø®.ÎÎN¶„ä+);–>ÅåЋÖü}#»¬G¨ªêT\748°Ùö^º|Õœ !Dîî–^Tñú·«5MËl¤Þ>ÞEÙØX7ÛÀ¦m÷÷õ€fwb® Œ+Š“ÉÙ#{x:Ko¨ ÀÕÎ]Í•Jex¶³¡ª¼¼LߺÉ+5Õ•ÐäÙõû6Gm‰ê±©ÇœÙzaIÓô}ÔÊX޲‡¶pñÙÞ´e354ãnÉÓÏÏÌÌ/ÇëaPRR¦T)==ä­,ùJŠAÕ…‡…´óÖݺ5ï©.Ñ®Æ+žËØz"ÃÝÝ­­Lþe®ßHÿôå¾7sË7Ï &öó÷s·]´öD`€?žÏ"!ŸÇåýs§_hw+±´åÂʺꌫç }B«Ó+Tš7gÿÞÄÞò×/±ëvAvJkÐêt…E5Õ5õøxW o§5{/{yÈYeÈÊã߯‹—._5„&.—˪Gû†¥ªTªìœ<ƒzÌÎÉ5줲ª:7/ß   *ÔD=šjëêrró êñFz†ƒ½½ÜÝÕ¤†••U…ÅÅõh#•@ò•”ퟌ3–‚ó'õ¨¨Q¾ôÙŸ¡ÁͶ·e(¯¨(*.5?w7Wö.Í6°eg6µ2·ÿû®•É¡ hª–½:pÕöøZpåÍ×mÁ÷Gô\™XlõhŸÿvRÑÁ?¶4¤¸¶U“Ã8Œ:éü‰!#Æ•W+Üœ~cWÛŒ¢!m…ƒƒÝ}»·ýwŠÜÝíû / èä"òªêó)y¿½æ.÷0Wùû0ù—quuùõà•™c£×ýq":¹¬ÝàêêŒ×Ô)Õb+Á€¡Oýsgkʳ VRÝ&æ¬Úl$y±SZ‡Ã‘»»û5ç®—K.ðô3„°ju¦ñ曆,ÁMüÏüý} d2ÃV©Ô:Xz§|³Ê³ÙÉD¢À€N†2†M&U’ÚH¥6R“]I$âä›EÑ®ŸÎèoØt>%ßF*1×Þ–M@&“Éd²¦Õn¶wu¦‰•¹ýßw­L-´²ºž“›‘WàaŸ˜‘AzúgäUÜ*¬ pyä¯#…Z;`èGîQ*ÔZÖ3hÞ£h7sK1Š!Òm­y\Nëoô%5mhNQ´ñ(ZF^vǿÕ«©†Q´°Ðàv^[NWR˜g"7¹æ.÷`™ÚĤ}6Ä5µµ¶|í̱ѳ¾þ ¾}}ðÚÝ e*®µÄ"¾k'¶°Cø÷'Ѐjyí.)Zz¦h‚´whºQІÚA¤-Í™˜½Ñd]ºûÐ?Øy‚t‚¬ï¤exŸAVR\^ó_™›ys+R4Øóù„ò2£‚´wòrs~üá8jKA:®¶¼· A¤ÃÚAŽ¥-ÍA£AAÚ˜¢!‚ ‚`І ‚ ‚`І ‚ ‚)‚ ‚ ‚)‚ ‚ ¦h‚ ‚ ¦h‚ ‚ ˜¢!‚ ‚ ˜¢!‚ ‚ ˜¢!‚ ‚`І ‚ ‚üW)S}iÛOÅ{»¸Èý£‡¾´ìP®Ý‹ r÷ðY“_ŠA‡’¢éKö¿6÷Tø¢mçoäܾzøûIú¯Ÿý8©– ‡i¯TŸåçhïàhïàèàèâæÞïù/O”éþíjÔ\œ>é³ë*ìAFЦÈüíªôéáQnÖ|šâ í|z?÷<ïÐé ЕÿâÙ¸@O7ÿ˜1ïìÎR³6D•¹}ÉÓ}C}Ü\<{Ž_¼'_ -Ø7/FîäàìÔçùå§ÊõlqMþÆwï$w‘ÆŒY´#GSa#¬þzÎÐ.~®NNòîs÷hÙõ]Æœ®ÆþE¤Elâöf–”•–”–d]9´bxÎóÿ*Õÿ»u º:=ƒ] ÈÃIÑø¶ÂìµÛNݪ©m\·‰_%mÎïó÷\´ïræí„í î~öÃuh2¿{ñó¼aßKÍÊÏ<÷ó³°óƒO¯ÕT'ÎYx¼ûwÉùùiß²Ûºà›*ÐÜZ7w‹×Û\ÉÊ»yê‡QË—œ©`‡èj®­8ï·pWrNQî•ïº[87¡@Úsoâî8)ö/‚ ­„â‰]#Ž‘¤lÎlA[VŸÕeć¿äÑiðÊL ºkëg ñòðï1eÅÅêúTËœmSIY}fTÔèÓÙ§Gù:Úû9]mN»èJŽ,ØÍ_.ì3uéÊ~‘ *Ôl=Q¦"¦h ðuåTþ“º†õ™øúgëwϬcc•&gÇoCûÙ ¸|¯Ø¡}ËvoÌTðýÞ8vaý³ŽV\®È-vâL?È­Õp|m™NOqDÞÿŠ?ýAg!€:këNÕˆ!aŽBGè>ì)YÆ\ö¾€Ðï•Ogôñ’p)¾k¿‰^µ{Aû‚0*†æs(óÚª/½$äÛ‹)'×Nõâ«ÒV-º0`͹ôëGÞ¶ùíõooª[´m*)¡çÞ¤=qžq{3KÊ2vÇ ÍhWÐæmyíKÝ´íÉ™×ÿZâstÅÕvfŽ…2A0E3ìGÚåµßâSÏï^6µ»èö¯^;hÌ·jP—œ»uöÅ`gv‡½ßØ¿³¯U²ªhŠÎïXýù’yÓŸ2äå‹Õ@öáçýRfwë3þµeÔ?s )O¬¤…ö`¡3Oq»VËf‡vQ¶|ìHA0=ÓÕ$ìþ¹&fŠŸÈ¼¶¡ïÔ™ý=%RWo G½ë ‰ó±æ‹¼G®¼pòíA˶w“”æ´«&߯•c§ôöóÅ^ßøú)9¯E Œ HLJۖ;ãXûtîÓmø”y¤6ñã!s6fN¯3FÒmóÙ½ƒì¨Æ¥5·~yqÜdÄ´)ãúŽ‘‰ æ?·ŽÝ‹Ã å‡Ž<—‘Ÿy|Ù‰5v¼ßSÐøÁD×0wƒâà›C¹?ªNòuŠâZÙ{G }雥q2º^[~ìübCAʶÏ\V1òmCe ²PS‘\ Ç l[#)‰¦(~ßÎã—ndܼ–œ\  .:Y&˜.eó2°ràfu½¥c ±kS4–º¤ƒÞ³oÏ{6£$>½ì4¿Ôév]ltÙµ:°ã52©½üá·%oíÝ?Á•ꌯ« ÏœS×à×àèHû¬?žù"eþî8]´Œ)Ré8 W)AÀ¡L7A{Ã&noRs7ÍiËêÆ²€º?Ûæ1§]‰ž£€GÝåX‚t|ÚhJðò`²å× ·ËUz½ª,óÔÖ_êz¾è/xM'9r0¹H©gTg¿ŸÐuäÿr´‘ §ôĹ۵EÑ¥mï½´ê&;8¯¾þÑc±sÿ¸]§×Õää*AÀ×ø'„¼RªÖëÕ¥WþÜV –ñ°ûy8´eËðe!R¨Ö2÷ckE5Ö®Û~þ`Ê ¸îÑþ¢ôzí*pêe§¹YÍNïUá‰Bå} A KÑ(qÔ¢54»=ëë&÷‹{¡«?‰“ÑÀ÷yiÕ”â/ÇDx¹ù÷}ýdè‡k'yð¬çþdé§C¼‚z¿º;iq˜5qüg/›PúÙNnò°WÎ÷ýtE´”ÝÉ7²– ñ” zóTä?¿ØÂH>>Í„ È¥hf´¥ B¯'ûQ_ÌSéT9çÇö^zCÝjÛ;a˜'ƒªËyušºr5eF»òåOÔ£h4šÝÿ¤¿2¡O× 7ô9‚ wMuÌm¢(ªS§@.Í=súŸ “&·¯M!9>+€ ˆ³§OÆö|Œ¢¨{L\®^ÿП=bævae€—3ö‚ wÍÏÈÝf¬ºËå¥e¥4Ýfãñ8° ˆå¢Ó3xÓÝÝ݈ –‘£Ý!1110((11Ñx%«-Û𘘢!‚ ‚´Cˆá_Bbâ¡C322† š˜h¼©mÚ–OK±Y$v$‚ &‘¡éÊòòr°³³Cÿ ÒA"II—FŒ±xñ;Ï?ÿüÿþ÷¿áÇÿñÇQQ‘ãq©JX;kH¸\f%”8uŠ›ôÑÙ÷4®êäÿ'«ð´@GòòòÁƒ<˜MÔÚ\®MÝøæØ}½£‡¾òýùÊú;º¼CÜïÐyÜÙìL±­~jÉ’%Ÿ|òñÌ™3­¬¬fΜùÉ'/Y²Äp¯³ƒ¤hú¢Ý/M;õÑÔâ:eeÖ¹ŸŸ×/}bñÅšÖ×ߦ÷Ñ›G{Ûà‰ `~VYYYYYÙ³4R“ðѼC¡ïïM¼q3qÏB¯}óO<œß IDATæ,Ñ(s)»þz57¯žkÛ{Xc"ˆ¥ähì½Ì½{ö<÷ìs†[›Ï=ûÜÞ={ ‹í:E»3k®6}C²Ís££Ý­yp„v~ý^|™ÿÇÊ´ZB*O ðë±vÙóÑ®±C§¯®¿\£'„]ßgçþû»Y;÷ü"½èÄ¿'* ©<1À7fŧ/=æg/âóxÖAÓwäjØ£h ÿ\2¢³£Dê5qÉ]}œ¨$‚´LÃ!eeeƒŽˆˆHMMMMMˆˆµkéš7s¼ß9ù×ëþ­–º÷äk4j¡;¿n[©B­-ÓKHýz­–F«Uk@Ëðí"¬›¬×e)å¿bŰë¹.Ü…)Z­ZƒÒAÚõWnDW|pù¾îŸ® ²Qèçg.6N§ð!O 2f/ÃþE ÉÐvnÛÒr™±ãÆ·ß}Þ¡Ñ*ZâÓ}¤O÷‘/Ì'µßëÿʆ›3>&(šK5”eB€PÃzö¿–Ö3z†0 i+!a×ã{?¤]…6£kR¡PüôÓO¯¾ú*;Æ0Ìwß}÷â‹/¶Ã4¢H]ÿÞé>K? 53ûŒÈhU®BÝ‹ N«1zlËeÚê»O%EãÏ#Ô%¾ÔwñîæPÝÄ>ÙkþW«eÀªàXžbÌ ´Õ™J®“€bˆža÷P?ߎiX3ë…Ž½íÔ7*Õýmx Èý»@iT Av’ë}5E¥TnÙ¼%5õÚÊoVÀksæ^¹|yò¤IVíj:€®ôìOËþ°ycÉ0§† Y—óà\4ig)ZsaAfccn‚ H»‹c £ho/\ðôäg ÅÓ'þ¾yóW_¯øý·IjrFZ£©Ûà"¢?÷ÆÒ'Ãgk­½»ûÓû"DCöÚð¢D¤ÃDZúPºiãÆ‰“&-^ò®L&Û¼iShhhHÑZ›vY÷Ø“°«-â6×qà‚_.À?‚)ÚE^^v1‚<úqÌèÈÐM›~{å•W¿ÿþ»Ð‡÷´S›¥h4Mëô ƒ‚ ———݇¡^¯çp8ÿB ¹Z§g8ØY‚ÜEke8¡!!'O7‘ „¶ \m“¢Q%“Úäfg9:9a?"ò€”—•ÚÚÚQ4ýPBÓ´·‹ìFVQ× 7ô9‚ -PS}÷¯€WVT:Ø;0m7ŶmR4—~öì™îÝ»Û;8q84v'‚ ÷^Ï”•_¸)<Ü׎ñx¼±|¿åÄô'{û¹q1p!b†–'lBÊ+Ê/ÄŸ0h°¦í¾1Ð6)‡Ëuqs Q†&%&ÖÔÔüûoàEäÑ€ÃáØØÈ‚‚Bìí¬òW¡øA€§ý”a‘›öŸË.ªÒéññRAš¡¯;lkñÇÎÞ¾wŸ¾r¹\QW×¾R4ðù¾þ~îr7­V‡sö¹o(šæóyb±ä_8–ÐJØ5XÚ#—¦q AæQ«Õ‚» ê3 £ÕhÚ0?ƒ¶}¢“Çãñxø¶mA: „µJ­V©Ñ‚´”¥©TÿþAQ8"‚ ‚´;0ECAÁ AAÁ AAS4AAäAᢠö€N§Õéô–ùºŠ¢¸\—köih†ìr]­ÚR¾¯FQ Оv\|‚ —%.LÑÿµF“Ÿ““š’RQYaim§iZ*•uöðò2÷2ý´BííÜâäë·Ô%øDÀçFú(4NÁnø.Ë \˜¢!ÿ1z®¤¸8éRR¿¾ý¼|ýþg·†É¸yãäñãÇËË‹Ã5½$sÊtyEe )7§ŒìæïNÓÔ£íBÈù«··þ•Äãq¬ö£ \¸,4paøCþc´:Ý•ääþúøúY`óišîÄåòΜúÇÉÉIbmmR JÅ$\ÍxaTlX'‹øÔ7EQ±a>|gËáK®Nvx… ¸0pYjà¹È/>**Ê=½¼-Ù rϪª*­VÛœ@¥Ñ†ø¹X”CÂä*¿$‡`àÂÀeÉ S4俇aK»M`ÇÓë[štli_är14!¸0pYzàÂH;R¥èô‚à…‰þA0EC:*uÙÙIsæ?²xqàooÒ+•4ŸOY¶´½'6¹¼rëYÃ!„ƒ»|òò t‚`àÂÀ…)‚´–›kÖ\Y²$dðàðyóþþì3·Q£¬;ub7ålÛvî¹ç$>>}¹»£¯îŠNÏ|µùôGÓˆ…=¡t 0ªºO×ÿ‰)‚`àÂÀõß‚>Ž£Õ&Ì™3pþ|¯ˆ¡X6hÐ¥yóØMU×®%Κõø‚ݺéÞ½ææMt—9Òsˆ@Ã=±ðô•œ“—sŽ]Êù+1W,äá­ ÁÀ… S4ö’k —+ñðPUT@M ©®–ÇÅU_¾\z¦æÔÈ‘1' Åby—.œyòIÒ¡hÿ´†£3^øx;E5Ì!„! e@£#Z=ÑêˆJ£¥)ª;A0paàzä¦hH#|ùòËû÷ƒ³3Ñh¨ªªˆ#’^{-þÙg½ÂÃ|}IM Q«A  ù|ôU“p «wƳõŒR]ÿ²o6¢1t èÐ1”žÊªô‚`àÂÀ…£hroÈGÖóx¥×®QVVLuµSX¥Réóó;õïÏ!ŠÚÚ¤={bÿ½Ys]ÙÙ5¯ ô‰¬lä#çoL­ûÆkªNðp²ê¿ô›B¥³bÂÂyÏ ¸³–ÀJÏ€F5u*¢© ñvhvLmÊïo‹õw’Šm݃âž^üKB¥Þl‰âÚÚ)ã–ž­dðœE \¸î|\i?R©µ!'råÊ‹“'xë-¨©ars{½ðp¹$#ƒTW3!!§¾úªÛ/¿ˆ}}›îP_vdÞ°ÅšiËw¼ã%QçœùùíiÞÖÜ>Ń÷ÛpüAŒóJªg}õGŸ|Tÿ@]§~oØ:ïë½ÀáPƒb:-|¶iUmÓÑڤOÆ<ŸøØâoŽü.·á¨Ê²v|üÔüÉ¿/dÏ1m QÞØ0ë½ò—\kCáMK. \˜¢!–CÏž’  ‚‹]<=¡²´ZR]Íp<·n﫯º jö¡åµ/^œ¸ùØKþwŸYk~¹ÑûÍßnO\ØI@”7÷/·J+Tpíýãž~ãäüª“»Ì9-bǺ] 9ÕZß ÿ;òíî<R{õ‡9/-Ý™ªrüŸ~šß݆]É‘O_~cõÑLKg>úaéxoáì®øÔÜ·×Ü+²³¯KzAm„·Íw Çsiàr(><Ž€K[ x‘€¢ ¬J¡×3M>¨§É\ûÚ¡Á[¿Tß±£ïiK_þÄ—i½–†X5*¬ÊüuÎ{Å/­}«‡ ‡é®û#(ÒñÐÕÖÖܺŕH€¢Ñ0ú´4^¿~)ûöñýü:/Xм™*kë_œ±£<wVQÒØU‰ÿ,ì$PßüúérGÿx>§ª¶4eëK°uá{Wk úê§Þ;|«JU{k}Ü‘¹/ÇW€2uùÜsÿz¥¨à܇² 3¾¼¡mÖϳ~ñúàï̲²ß‹L~ÿÛkÊÿÔW%¿»îØSCãÜœnæ×2 IÍ®ºž[u#·*=¯òf~ÕÜŠ9e©· ËjJ*j¯gÕ8Òirvï„ÉãýmŽCì0úðöl•ñJuÖ¦7Þ-xa5æg‚ ¦hˆeAȹ <‚ƒ½½™Ü\RYÉdeÑUååy7nÄüò‹YCMYbµ8–ßü5 èôö…ë¿Oíâ,ârÅò¸gçùCv-;cÁªÓÜsøXs)¾û ç|ø*=7Âð>~R¾Øç‰u×’> ¨³¶l(ùxˆ½Ë—ùÄTºí§Œÿ.Ô½½öÈîÓGöÑïv‰’P4MÑ4E€bèÐ3Dǽž „—C«µ:‘ ñøººäl…UéMž4@XPª1t&{ë¼ç?;ëÜ+XŠ¡A0paàz0ðF'Ò>ô¥N«ÓéZS2eÉ»tEEà¤ILBh4ÀãMNdc£«©©+,°’Ë›·ÔêhšèµjÆ\ ÕžÛ½íhâõŒôÔ¤ø¤ªP­V­-÷‹°&@«e€ÑjÕ]áÅ ¦GÛhoµ¹'oþóއ`’AíÚö{½N­+ÍC÷O#ù­Ñ@«'=ÃÕÓD£¯ªÓQ@¸4±âQB%äÑì A(à–Õx¹ÈêÛ[ÿGB¥dôz]“úë`ÛE´ ¨no{k]ÙÄßvDÍ|öc{—=†Ãh. \¸p éø ³UoÐÉݶ­dçÎè§Ÿfˆ^ωÕò&å圊ŠÎƒ]]¸È¬1Ͼ«:½Jc¼Ž©MÛµ/¡RGQeþôÌÀÙÛ \úŽŸ¾ð›ÿ}%…†y¤‡jüÚBÃ0¤ÉkÂHcwdW×ÖÖ°ÿjröÆYYÝÿë…îç CŸNï7(Z¾eß è<íEµJ}n™ªªN§Ò0:=4ü#:=Ñ뉞ax\ÚFlõûá˺ú4vC¬­öVµÖdÿššÛi”=—B 6ý—ü'–Ïéfï9ñë—óß~ïx¹ß‹†`àÂÀ… S4äˆuw£òòå«óßìùâ‹p劾 €•~äÈwß­©©áøûë¼ãâ*Μ)OHlÞžï6²Ÿ~ÿ©b£ëUWxà­·—]¬ÔR“¼ä›â…»7}<õñ^Ý£ýEiUšú:Aã(S¿È•…Ø@•ºñÕ̳‹¶ÑfÕh›¹nïªÜ?Í2eHØÂɱ;þSXR$·æÐÔ€—>aÎqÁÎ݃œ¢;9Eø9{;ú{8(TºË…Ÿm<)±â},¨±ëäOŽßve©ÇõêkG˜¾£Ü„â…3c¤!„ëöÔòWKß]|¤T‡)‚ ®ûot"íHŒ¶\æÆ‡E*P«µéé¼ RR²®_X¹2y͚ǦMÓߺ™™Ç_7¯×ñcÍí@Øé•ùNÃ&Í©zûÕ±qþÒšk¾}cQîõO¹s ÑZ¹pJŸÉ9Ò­6eß—¯­HWFÔ‡(0ºôHâÐë©þ°!>·ÿã¥-û‘ýoÇ– ='Ž—,ØŸ4bJ'(:·nöÌÃÿØ;Õƒ4ÞÉÃñ9bƒÝW¿1tþwGÊ«¼{Fú3Þüj»IŠ;©•»ƒtBÿàÇ"<›<ºÎ÷~ñó>¦Ìм=o|\€³ˆRߌ߻fµÇÛ?YÕ7̨—±Ëæ÷ΡÈo‡:à—¡ \¸0paІtp1Úr ‡n¬ýÁ)2’7xpMeeÒþýqÇYÉåYkזܸa¢»|Ùu̘§NøÓyèf†~³U·lÉ'ã>I-Pò]BMYµgnœ”"„ßZþÔô×øLWKýâÆO}/|åîú+Œ_œcX†¾ñ‰ÿ«ã‚¦Ü¦ýÏûöC!„ï3mõ Ÿ¾6²óÉL¥Ø·×³¯›,çǡèŸðp’®_4rñÇ÷ý]9v@4œXõ\ Gjf­(|þæµ{V.Ÿ7lVJ¾ÂÊ5¸×èç_ûñÃh[º^j7n Çiägoî·ð@—5#œ0IC0paàÂÀuï˜};Ûk¯Î\ùÝêò²R¼‘‡ŠR©Ü±më´35­˜’zsù—Å¿ÿþØcñû÷‡lXoÓµ+!¤òüùôY³¾ù¦þÂnTTÚáÚ°ÐÀwÞéX~øyýOư³·7Y%W³ãЙÏgÓÜ÷”ÝBÖìNüçj~AIåá/'B¨hš6}^ý¿fÉÚ#Oî&oÕ÷pòrs~üᇕ߭ÆÀ…`àÂÀÕᎢ!í\ŠÞe<\§Óét:ç—§k8œ‹¿üâºh!ãçWVVЩÇÛ;ûÔ)ç°°¤mÛÊŠŠ"—~¢Õj¹\®åø§¥Ç0Z­V¯×ëtº‰}|\e¼Õûjê]ÀF9‡Ãáp¸\.‡Ãáñx4³T®ÿLÑör-ƒù+Y«Õêt:­V«Õjí&N<1V«ÕUWUét:†ahš–Λ{ååɇ¹Îš:å9Z Ðj4@ˆq°³µ³oáðåe×?-ÿ…Ð6ÀþŽð/x"¸¢¼œuÞx<Çãr¹<Ñëù|>‡Ãi¥ë:‚÷®Ž¸0ECÚÏ…löJfG³ CÛ‡ë¦9 (Šãípø/.Çåñh‡¦iV]ï³å›_íýÂû£Thšöv±f}½iN#÷RMÓ4M·ÞuÀ{‚ W \˜¢!íçB&-\®|>ŸÇãBôz=Ã0ú!œh#±¼Üï¬[ƒë˜t:]3®3r¦\‚ ¦hb$gZquQÕš‰`†ñÀoÜ1D1>ŸoY®C \¸0EC¸19@ÿ ^˜èS4¤=AÓ´žÑ[ò•¬×ëg¹6S€a,Ê?z=ƒ×‚ —….LÑÿŠ¢dR›ÜìlG''‹uByy™­­ÕÜãB>/ùzn—½å8äFN¹Ïkg/_hÁQ«ÓeÞÎ-.­Ðhµ|ÏÉÁÎ×Û¿ GNœ€}º?ŒCWTUgÞÎŽ6> ‡CËl¬;ùzJÄ¢Ö×ä¡Ööa7ðþh¡É­÷FYyeZzV\÷8}>9¨“—½ÌBÎv˜½žiÕ˜¿µTÆZ±±âÍÑ𜞞0å%‚ í_XÆÞrÿ)i-S2þ:•Ø‚‰º®ºYÃG¥JvýƸ~A±!Ýdae­êìÕÜmÇ®… øü£ÿœßóù½`Ë€ÇÚ8𤋮ªV×–ÍŸ³|ó….áÁ†c±¨4ºk·K7H¶wp±•Ù´¦&µ¶»÷wˆšÜzo”•WrtÕ«æ šýõaX5oÐê] ¥¥`!YÍ&Y C`ÿÑ3æJÐÓØŠ&æ†= ›,š˜£¼DåÙ¡•§q댹ښøÍÂ¥cG–m6Š6¢o—^‘¾”y²³³cb~µ¨0§Óé¯^»ñéŒ>rG)»ÆÞF4". ÌÏùµÇ£"CM\zìT<„ùßÊÊSªTÖbQ`'6Ö°›:ùzfåB|¼ÜÝ]YCvS¿^ÝL._csˆŠªš£ÿ˜^çB>7*À¥“ÜnÞÊÃB¡°_¯n£la B”JUÚÍÛÕ5µ„‰Xèçmm-nz””–gfå)U*++¡¯—ÜÑÞÖP · èvv—à ôKHN5Ôи¶&57gEÅe·ròT*µX$ôñ’;ØÙÀ=5P à·Pas>4ÞáÉs‰àíé&oð¼‰7š­$\ÏÈútFŸKé…2™5E 9½è¹!a מˆµµ±Œ`WŸcér¬UóG5-6{ù^CÖª!Ø52?xì,k>{ùÞ!ýz˜,65Gy‰Ê³ã*ÏŠªãÖs¯µ5ñJÇŽ%,ï}­¹ðGÝ s†*Ùy£âüäŽÒ‚²Ú¯6ŸËÌ«ðv•Í›ØÝËÅfhß é…Æ…Šg¯Æe¿yåÕ¾.v’[•ßï¸HœÜ.^Ja7ý¸7iñäašÞô×Õ¤ôŒ@ßã§/âK߸ãEõmXc¸¶išr¶Ï×-Ô×qLï€ýñyyE†bÝ£Ãòs²ßœàaOÓTVaÕÚ=‰œLN€[Ù¹î2î²WûºÚI Êj7º’™Uçãéié™ÑþvïN¡Pi¿Ú|θÍþîcΤo\ÌÍÌl?áìYýlÅy%5ÿº’£ÈÈÊ»§vòõ4Wá|xç:ìÙi€`Ør45ázFP€¯‰7𭤇ܭ²ªÆÏÍÚÇU¶ïÔ k !$-»t`Œ³¤²ªÆF*± `w·k߸MÕàÄœùªù£f/ßkœí5kŽò•gÇUž-wDAQiSóšZEBrеDL$$§ÔÖÕu 1ñ[¿^Ý,\:v,aÙ£h-§h4MÓ4 6Q·¤´¼Gh|¿ã"Ã÷èæ]X\úýŽ‹Kgô ‘8ªY«7'×gÖäv¯<Ùõƒ wò÷i£¢Ø/é²lÓÙ¢’²»vJ³ÄuïR^Y½non4t4 IDAT⊹ƒ£\~=”j¼5%-ãÃ{ù¹×&?wÛׯżùý1ã2eUvVä­É=ÙSQî$]ðLÜëO”UTétÚ7ÉôÑ]@*¼5¹ç]ëSTRjΤ¤´\nÏ{}b,»èåb³è™¸w~8v¯ l¡Â­ñ![7öÇŠ­çó‹JM:ºÙJVVU—TŒêé Ù…U;gB §¨‹ôÚw.Ûä/Ä£™¢Ñ¦‚’M&ù–Iš®V&æ{w7df† 9{ùÞ½»7kŽò•磡n¶óWnºÛP_GK–ŽKXÞsЦÑê[ãhš6sM aTjµ³Ò²K#ÃCµ:ÆVf›”œnÖJeó³/¥~¾ñLLg·×'Æz»ÈêwÞÞt8>sýþK/Žˆã3¶wà»ëO·Ð)†pf<Ä¢Õ1±øú p°©5ã­¡ÁKÖýS§PRøºÙ~õÚã®ö¥Jm\&+'Á¤n‡ã37¸4uxÔÀŸñýƒ—þÏ0ÌKSãà์ û/MÕe`ŒkÅV&6&ÊP±Ø˜¨+©×Í™dç.~®,ßtö\Jn—×·§ôÓ;°°BsO l¡Â-ŸØ,‡ÎglØiꈨǻùŽê°øÇSÿh5_É5{®¨4šÎ^PZ¥”:p’JtövØøWª%\AY«ltš±çœ»Ô´EQ¬sššÇÆD‡¹ÙË÷ÆÆD™ìÜ`Žò•gGWž½{v=yæ¢ñbYY…5OÝÔ\§ÓU«aÿ™ô‘½"ü쬄<¹Ý¶¿S3ó+šî¶W„EKÇŽ%,ï}!wqÆÉEQæ - !éé™Ö±€Ï—6犵»½½½Ï\Éx}b¬I±­§zÈ=¶Kããéb£T¨w cð³ Ý¢#ã.wŸ![§iÓÌaˆD,ñq‘ĆÈÃý€Ã¡MÊÔÕ)üå¶°áÀ%_o¿ û/ Œññ—ÛÕÕ)€€§‹ ì:‘æéå±ãø5C¾Å0¤[t¤á40üV*TæLêJ_7ÌŸtg@8Àþ¦®îžØR…[áÃíÇ®yxxî:‘öx7_'¥JÙÈæ+É0 ›¦×)5MSj`³^K¸¸Ø£yM'Ò²k84 4:=iÖüBB²± e…iLt»hbŽò•g‡Vž±1Q&Ðhõ-hB?ïM‡S{†ÉŸn%àåUo?q½{×H“ÝŠDV.;–°¼ç­å›&É™ÅÞ,àóùÅuîŽÖ^ö×ÒÒçOн’K{I ¼ZÉçñL‚KAY­»§•V×̼A!ŸkøCEE€þÒ*•Z*4[]ãŽgRS[ëæ` ¥• >Ÿ¯Vß U…E%1²i£ºì:™öõ–s+æ nîCOjõ:™µ€­ ! üDÆ ¹Þ'@Ì™¦9“T,Ðét÷Ô@Nk®ÂFÉ„YÖ*5öœút¹9¡c¶’„PB>´z=Š¢Û³<.‡Æ.Š¢r¬F½Ü$E#À¡ëƒ !LSóÄ¤ËÆaÎ Lg/ßÛ%*¼©9ÊKTžZy6õ'ÃÍ)WW—÷&-|6–o:ãíéifºEG&\ºláÒ±c Ë6KÑÌ%g–™¢Él¤ñ©ycûÍÛuù¦³§“oÏz²[ƒ¦,²¶–¨ËÊ›õ­9'=Ù¯óê_ ·ò+EVV ¥J£Õóyœî!î i7ÙM&X‹ø…yÆk.%ÛI­fŒ‰€‹i2©¤¨äNŠ–WPðÙKcàèÅ[†Á”QN"¡ðVAe°·ÃóÃ"Ú—ôò˜hHÏ)‹Ä:½>·¸ÚÛU6¦wІý—fŒ6nÚŤËÐ5* ¿…B¡9¡@˜]Tåçn»lÓÙsWs ßÓèΚ·² …Ò\…늻úp\¿Î[¦²›nTЬ¬j†ßZ¨dÒå¥Z'ò¸šaÃÕ[«Ôp9\K¸ŒÆü“{Mþö°8Æb›5gó³ÈˆPcaÚ¬9ÊKTžZyr¸ts'p š(Õj'yý”_w»¤ÛÕÖ±ÉnõzbáÒ±c Ë{NÑš$dee)ŠfCû£´´,l>‡³£ã®“×{†y¸;Z=çñ;ZM©Ý~ìš‹‹{is)Z ^êåÕ7Ê‹ý½ûdš““cqqIF^Egov¢ƒ±ŸÏ+«RÚÛXm|oìùÔ¼¥?×Ï1~Š»V©Ùsòº“›‡ñü‡[§Òˆ­xß¾>*­HÈ“I„5wÔ­£³ãîiÁÞ½ïæûx7_6pl9’êââ¨R©Ï|yL—!±~CbýrŠª V“.7;¯ÖCîfÎÄÙÉa÷Éëo<û¦‘^¼˜–¿rGò=5P¡Rš«pAA‘9ÞIŽûv~²oçÏ_wrt¨­ËnM%|~AY­Ÿ»­ÄJ Õk ìß›¼’€o —ÝäÙ(“)&ÁÎ`Å4žxËn aÍÃÂBô 1YljŽò•g‡Vž..nmâÉÌ5Z­²¶jâÀžUµ*Ÿ;iPè?ËhììLüFs( —ŽKXÞÇ(šéš°°°V [R×ÓŽ›»çµOÒµ³›TÄÏ̯LË*íæáê`]«ÒÜ«—¾Ûqá™ÁaðëÁ+é…Jw7Ÿ¿fw¬q1>®²’JÅÖ£)sÆ×¿,ÇÝÕmݾ¤cºˆ„|‘€g²«:¥6åVñÆCW¥vN<^£­^žòo¶Æ¿òDWg;ñ•Œâ‡®|9{ÐøÁkwßyw”µôv~Á²MgÇ÷vw´.(­ýåàå’:pq–HÄ’g¯ˆ­xcz–W+—o:»rÞ†!¦áÐ{{s&2™,5'oå¶ø'ú¹ÚKjݹ”Ü_þLññõ©®®m}mx;$lãáë&»ýü×3.;–°¼­ÑŽÞÝxµ•ûµ´ô\ ໺yn:vsíž$­^/²R]V­Ú£Óš½—#ÃCÙ«:2<Ôp…G†‡BŒ7]º\ïÞ¿â3ÿNÌWg¹›+!D k‡w×RªT|ÏÙÙÉx‡ùUÕS?ݯgôb‘ȰÆ€EKÄW'¡Phr8¨­#óVÑh´Ö±‹‹óè[ìíËB\]]r+ªÞZ}L­Ö|Wgg'[BHò•”KŸârèEkþ¾‘]Ö#TUu*.‡Øl{/]¾j΄"wwK/ªxýÛ¿Õ ‡¦e6RooŠ¢ll¬[ß@0Wá–}ÈþvwsýóÜ~Bˆ«‹³‡»»‰ÇþßÞÆEUîqÎ2  «ìû. ¸¥&z]ÉÝÒÌ5µ½LoêÕÒLë¶Úm×JÓìVÞ\R3—\JJs×EÁ††f9Û}1€ì’‚‚ü¾_03g}ΜŸÿçlÓÄB:Ø©$dŒíâãªNÎ1BBÜm !§5jµ½ÔaŽ¢i…æ]à¢/-!õn_¿íÑѽDϳ]÷ºåð›%µZæ(ü-ÎÎŽ·Ý†m¿å½<=Vïˆ{rTר`7k¥¬´Ât:)kóï—=½¼[øÛ¥qwwûß‹³Ç÷\ÿËBHT°ÛÚqîî®d'*7˜¬­CGNø}ÿŽæ o)°Ê ¦ÝÒá¬ÕëEvµ†a¼<=ˆçÍwN]ÕJÈññö%ÉÒ“´4uͿ뿴ïZgëÈŠ  ›¿áaooWý©Zm®¾9|ƒ½Ög§R©BC‚«‡©þ¨Î"©íÔj;uIÙØX'¤äõ u_ñÂêN'eÛ©m[ߦG!„ØÛÛÛÛÛ×_ì:+ØX»58ºÒJÙ52‚"‰XýQÍÉB®fjR³ŠC¼âSS)BB}‚R³Š¯ç–…†¸a©0qCGNˆý›=à giº;½Ž¢¥h RÐLle,Ó¼Ã3BA±¾G§(ºæQ´Ô,-6G[p1ñRõQ´.‘ám|iyž/ÈͪÓÜ{ÙÓËÛrè«EF¹›ôeernöøžs?ýòÅ¿†¯Ý§5²¶66ørB¬­–ã÷·×3¼ÃÑ ¡š>Šv‹íZ&J4hhºV‰†î%´—Žec£4z¢3̶pç¯G±ñ ½³½Y–á<'4G~‘þ^ÞÈÓš›Q¢Bvýgr‘=Qh²4™_¯;Œî%´ÓŽåß+ÑÚ#t/ u,C£Ú”h(Ñ%J4@‰€ P¢ D”h€ %ÚÝ#ê¯)4c›J´Z¤’£Ï†{D>s¬Dºû«¢?ûÜ´÷¯±M%ZMBáÑÏ“Bg‡%}~¬P¸ë«"ñ傈- Cé‰q=9^Úä;í½Dã²÷®ÎêóÚ³KÌZ½7›»™wÝcÖ:{P˜wça/m¹t|ÕýB<]¼úÌß“S99{ß›“ú{¹y…>ðÈ«?ešÊê—¥'ÆuºæÓy#{º»¸8[¦Szb\÷‡gÐÉ)ð‘ã„, D#„Súæïô1ÏEº…?ûPÙw[n˜ª?Ñ_ú"yÐê“—¯ðþ}Ñ„…w&åü—}-™WJ1__?ÿGߥ¿\¼‘•rlݸԖŸ(núD©þòg§—üœ™§¹h™é·ûÜ®hŸèÝiÚÔÑ^ývÇïŒVcûÀí÷:sö,xÀËÅÙÕ'là+ª<7Àk0#:ÔÇ#èG^ÛY™t¥'ÆõóËÁÇ…y_•Vó¢Ø{•„"Ó¶/Ÿ:(ÒßÓÅÍ'´ß¤e»²ÍÍìÖ6º èš D«¯üò×;é‰3•D8ã1êç¯/—W}¤ |vñøpkïÓüì½æ.boå1xНÂ$BL7¶î0ŽÑ¥“’a”ºŽzÌ>uŸ¦éKÊ”/®xa ¯ KÉÝ«§ЂJãç-9ÜçË„ìì+^qܺxe²‘Âen^´ÙçÕ=ÒÒã¶/é’øþºª+`KÏÿ;6⋳IGÖ>å+¿U¯²”sÚ—Oÿ'kÔÊC—nd§ú~ÙñæŠÊؼE·¶‘eP£k €­RIÜç‡ìžœè-'„Ƚ'¨®¬¿¤Ò“ÿþÖž¬‘OÛßjd¹cO{1Ï(ÂBCž(ªnáf.N(ºÕ3Ï( þV5&³eÄ ^ªî;J\©@ÛÈ(Bãóѯ±3S³Ó¸dŠÞñ—÷³—ˆhÓ{ËÉÝ1Žµã¦´é®cƒ™¯oxzâ×Ò˜ggMôˆ½*gÑÌõÕ]ܦºµ-Ü_Zæ`ÔõÍÉãÿꩾ™”ºçÂéÒ[®›n9²ÂwÒå/.šÁTxqÿ¶E¸½ŒÂ(M7¶Î1Kæ’Ôß¿\òõ-ŽäÓ2{¢»Un./2ááÐ Çž6ºS7û¦¼:›žÎ K)ÜÃè?ì±ùïÏäú ©Œ…c;>£ŒoY—]xë‹‚W¶}ÿ欘è>=ƒT×tææ.s‹-Ü÷%ÚúßMö©}_î;u¾ïoß\*¿åØrÿgVN¾ñÞ¨¯°˜—u{óû…¡JBÔ=V®xêÅ(×€_W:nYצ/ƒU…¼8Á~Íð ïæžÏÁMÐ rï‰;üüò§¿¦è8Ñ\œòû¯p{j¢·œÓÕ·ôÿKz¹Àë35¢`! ßÉmb$äјsrõä^c¿ËänkÖŒÊ)üóTz™¹"ïü¶7žù<¥™×“µà2@Ö2':?øíëª?§ßÅŽ „ìŽßYù–º_ÃËÝG½±uÔu& s÷Ù_ã>»ùÆôI„BjŒXk:v}^ûùÂk•o× ‘Íç‰o¿4¾ö椞Od”žQ£^XóÍt/!DôÏ'Ï]4"øé"³Ìúê=Õ–.åç³>XðHÔÑëÖþýkí4o!†¿?g«ÐEÿytöË#B^4Ù<øØ˺|¹»™ËÜð2”ž7èƒÅ‡qS'À}‚’¤†AöҜ٫¾\S¤-D@Û—¥ÉüzݺU_®Av@ûJ­ÆÀ‘mJ4”h€ % D@‰(Ñ:¶Å¦$If³™ã8QÄdÀõiš•É šP¢Ý© ƒáBjþþÓi׳KЬИAžÚ¦`ÆÁÑ!¼s¤··ÒJÙØ/  { ÷wDzeJ4ÎlNÑoÿóÚsöô`œ?€†­þìý…//ibQSR’ÿñ»½ƒƒÚNm2™Zuyн€;­¥ÚÛU=ªo`· ·ìX¶L‰f6›w½öâä½Â<°©à–šˆ0Š¢‚ƒCYš=qüèäiÓ[µDC÷î/ˆ—R³×ýtÌÙÁ.< Å:–-S¢‰¢˜ž[âëŠíͩϤ[Uôôò*ÔÒtëÖLè^@K`úFz³ìÀöœü`Þ˜¶U¢YJÈ:POOϹ+ݶyub¾ íªF»yíܹsS§MÛ¼iS÷îÝofË ‚ÐÚ R¿{y7ƒ ©p? ñuMÏ)nÁŽ%ŽêÀÝ&JRõ¿¸øø#G¦¦¦Ž92.>¾æGwgaêw/nËмВw!˜àî“,eX||üèÑ£—-{­¨H»lÙk£Gޝ.ÒÐLСk¾Ö<ÍG¸öWÙSB~žîèù¢T£DdVÓGyûÈj f®øa¿&“«=ªÊnÖC®nÕ ÈUlܧÉà!”ƒO§‘á¶ž*ª¢¤ìT|~| ¢ }h•· ,_¾üÝwß™5k!döìÙ*•jùòå{öì¾·‹gëé:­·MYá·G #‡8µ$O3Ô7ÁœpFs ‹GH@Û*уݺ—üo¯ÉDÉüBÜFôå8¢+å w%Wcíé6Þ±$¯^ÊTÖ2mÖgGË µß—;vz4Dô•cfƒ@áÒR‹J}íÕŒ®T¬Õ錥N7šëŽJÙ¸°Æls½›"ÏÎÖb†&]/„ä]ÏYs ýUhmùmnà2† ²"EWòö7sëêë2¶3÷c’‰£iGFJqtšô ¯ŠhsŠ~‹/Ö˜±Ú_ÖΖY0Ç_+×ñ)#„–‡ûÓ×N˜ !§É®ˆþ‡CJAÁßš1­> Àkn9Ê)Bh64€¹|ºBÇK„/?W>@N!Œ,Ò›¾zÂX.B„Ül½!ÐFÍT!wú|qz¹D©UJ´&³˜¿|4ý2ÅøFxïép%V«­:¿ÁÚ¨C‰þ犆’š7í?Vý"7[Oþaït5/—†•ww*Ù{8-Ÿ§]ýÜÆôä6ž*Æh_ÚŽm?6=Ìø‰“ÚÖB‹b¾¹*¬ÆÛZ5hLÈ#ÕŸš+NÐs"„BÙ8Ù„»*låì•n2“¥ƒê'Ïr•ƒq†r½ '„šq—I™Ug$¹Ü2SAÈ5Kø^ D»½H2R´Zo;CªJ4ÊÖMEäéÅæŒ-HŒLF"IåfSBRi®‰"ähJ ÁvŽ,J4€ö„çø1oz˜ÖþiÎÛH±š·1P¼a믙©uáËþÖD(‡÷)AÔÕ”’¤<½Q`‡÷³¯ü€P ŽL5úÎ=¿ÅZ^ë3ܧ‡5u3LD¿™#´³;]’Í5|Q+«3Ü'JU9.Ų”ÙX!"ðé±\¬ž"EQ¶"@û"I¸•6}&T²9ÊNÖœð¡l]í왆nŽ`ƒBØcG³þH+Ïе‚\YyHŒÏ0SNU—)U6ÌÍ™Z3UÓeX–àÙq(ÑnW\å«´¦ Ų>þöLN‰¶º"cXo¹¨16’¼ù\>å£PÑ„bXOãu]‰@ˆ$¤¥ò® C(šqó¶Wse¸w ÝÕhÍÐv—_à3Ä@w… C(†õñ|aÝP}æé2­‡òúù¼ìú—ÜJR™Äø:Ëå4mã ÒÇÑ©²ã/¥ a~Vv,ÅZ©úôPWNYà3ÅPw¥Š!øy¨mE“5Àý«uOtæ$æÄwu}bœR%réÚŸk<\ƒ¦YéW;…eVÓ‡Y)f]̽ØÍõ©q ¥`¾žR°÷ 'BˆT–]p5ØuòHëN¬XT¨?rF‡'×´Ç ­]¯AqJîùp×i£UŒX\ ûãt©N$„!D®šþpÇÌ ihz(š`:vN?®‡÷ühSYEbZanˆeâ¥7rO„»Måi+˜®¦å)UbåLó#ÜfŒ¶²£„¼¼Ò?N ø”h·‡7'Äg&Ä7ôgغ?³þ›7É›ÎÍ8w¶~6ŠYÉ9ß&cÛ´[¢$‰"!dÊ´é;uÊËÛ›·lÙµ{Ï–MïíÒÝL¡›‰d¨û [‘¿–˜u-±^‚íj<›¸º1äþx Æ“·SJªRNHKÊZ—D!”•úq/³Y¬œiòEMòÅ&'[o.€  Yª¢-]²xêôÇ+**¦N™²yË–O>ýlóÆÚù¶;Oeå¸wþbÖÙf3#ó °—ä—àr”h­^¢U=-22rÓ?L™6mÙò×ííí·lÚÙÑK4ÞôûùÒ^sz³4oÎÊ,ÚyÁˆ‡? DkIsWBû@%‘Ī:,"2bÓ¦/¾8gõê/#"#Ä»^Ÿ± Í –ëÈÚHpIå9ÚŸr´øž´³î• ²LK^Úb%Z˜#„¼:1 *BjÝ.qäÏÖ·kÂ0Lk/-ÍX[óIDATMÓ~nöÉ7òz…y ¸àN$ßÈóswÅ»‡±eJ´ú1Ð}ié-‡)).qvrnÁ°kL&? dõ>÷hÿð@–í@Á â¥Ôìu?›3±¯¹å»Ý2%bš¯é«Í$I**.úëÌé¡1ÃÍ­ür…"ÄÇiÖ¨n›öžÊÈÓñá¿–bhW»'ÇöŒt«(/o[%bši'ÙÖät2 ãèäôƒ¼¼¼Z0죴Rö W?@Óè[ÀmE‘3›[6²ZìZ4Ä4‡ÉdR(w?ì#I’Éh2MØ4Ц´X‰†˜€æViF# i8†P¢ D€;…ßè¸<Ïñ¼Ð1U–¢(–eXVÖØ¢H2Šø2“ØAš‡¢ˆ‚öqd[ð±(Ña‡°ëaвLfsvf楤¤â’⎶î4M«ÕêаÎÞ¾¾ÊFž¡s%—K×ä'\½n2ó¡Mr6*Ô¿Âìî!C‰;„ÂàÞx¾ ?ÿÜùsƒ ö ¼ ¿'Û¦ˆ¢˜š’|äða†a|}}¶n-‘©å³ò´qI)³ÆöîäIÓÔýÝ ’$NLßúÛ9™Œ±U8{;µLq… v»v-ˆãù‹ C†ó쀫OÓtpHËÊN;êââbck[gQŒKL}r\ß.Áâ—»)ŠêÛÅ_Î0?<ïîâèÝRíŒ= ÚN؇t´ú¬:ì† ‹¹rù’Á`¨?@uØE…xÝ÷õYuØ=>²W\bªÎˆ_“ƒ6Ú‘(..òñõëÈàåí£Óé8Žk¨}ˆÑÌEºu¨éâe4s-x9 J4@Ø!ì:DØ´,Q;`—²&™L&M]@ÜÑ~’e[x}qv»v­ÔÃD# }Z+Ñ€í­­<#ãܼyù‡G,[ºpa̓–Ë©ŽÝMý[¶Ä^Xµõ$/ŠD’$‰HD"„ ïòîó1(Ñv;h®”¯¾º¸|yÄðá],øãý÷=Ƴ ¶|”¹mÛ©™3müý<¨òôD[Ý/ˆŸl9þösC­• A¢x‘ˆ)­àWüw?J4„šK丸yóF½õ–œ¦)šîs~Á‚¿üBÑ]¾?wîC‹kÓÓcûô|ø°mPZ¬A×4Ú@Gš¦,ç쬕žÏ0‹”‰'&ÚÍûþ;Í€«= ]†Ý°E‹|£¢”ÖÖ–°³|Tv¡½{Çöé£OIAs5v¢(‘ª“§vÖÊã3\Èó·xµR†sª·$5Ų6ÞÞÆâb¢×K¥¥^ÑÑ¥.ž:ÅéõÇÆŽ}`Ê¥µµWQC‡žxôQ©]i‘öiŽßϦ>ùÎvŠªºÞC’D‰p"1ó'H/ÍMQm¼AP¢Âa‡°h[º~ôÑ…½{‰««d6S:]Ô˜1ç^zéÌŒ¾]»:Hz½d2…‚–ËÑVõ¢¬ÙqfåÖS僻-é$J„‰ ^¤‘”èô÷ߺ£D„®C„À=äõðÂLVxù2ee%––ºtéBBvvð!bn.‘¤Š²²s»võݼ¹ÁÑyíɯ^ÝÍÛ^eeç5vÑ—ÊïBFwdhÐÐ#º{ÙnFnÞg{ã’s<>ô滑%J‰Y úr£dÖGø978±,ióÒ‰}ƒ\ÔÖžaÑS—mˆ+]A©âòÚYß;YÒ6Ȉ v»v­Óíi®n«V%ìÙCœœˆ ˆMÿ'Ÿì=c†”š*åç Ǿù¦÷† ÖõGä .9ÿ\—%?%ä–ê2Ž®ŒÉzsÔÔï3ÌwáH¶DîðP÷Ì]“¯›öï­*›)#{+d,!¤×S«{=µº÷Ók$‰,øt÷¾# GÎ\è¤W<7ÄÙÞªþìD}ü»OÝ*Ÿ´2öJž®ðúٟߊ)_õØ¢ß ùVP¬¸úß¹o=ÿõâ¾vT›8öÛ m…]3‡ì¶jÕÙéÓ‡¾ò Ñë-aGXVJM•JKňˆcŸ|RvuF´± F-3?ûÑOÿ~Àׯ”yâû¥ÏŽšÊÙ>Ë[ÖÊëV•w£}êË*(ûÉ/a^ㆄ*dŒ%ìª?]ðénBÃP1/™1¤PWVvRÙ¹wy"~À²•±ëºzÙ1Fí¸ŸÞylÑôÍÆ81uWP2$[3ìð톎ι_?›°°œ³gÝ||HI á8©´TÌÉa‡ ;µ~}Àœ9n1 Þ c¸üñ’³S¶z&HA! ¿s¿Úü—7¦OY¬ )›__øñ¶cWr+X§ è©o¬{o¢—\wdXEcŸúiýÏq™¥œ"ðÉïb¿˜à)#D*K\7ï™÷v\2z>´ð›oõ±£ !|AìŠç®ù=w{ðñ·×½7ÉOy›ëÌ%ÍÒµ±Ãûwëàv-§,ÊÏîË%“Xš° %gˆBÆ(XÚJ!³Q)(Šhu‚ ÖûñsÚÚ—~þãÁ—Ã*ׯºSÐ?ž}ïÉÑ>¾Òÿ½«ZÓþ7ïügÖ¾ò }›9x…£hоΨT¤¬ŒääHIIBZݭۙ￿UØý°ò™þ F¦ö8÷« cn¬ß˜n"„H†”M/?ÜÓÏÉZieçÙeÔ¢í3!DwdX`ï•ï?û gk…\®îüüŽ,®²jI\ût__µkäÄNë*ñ±oOˆò°³u }è_[Ó÷¾¹Î\ÒÌzgG¿áÑÝC®å”I„|¹dÒÚ¥“¾Y>ùÿž¼õÝi»þóøoŸ=ytÍóo<=¤Ì`j"ì6½ñXo_%CË*ÃîÒò¯ÔûÕª¶v÷_V¦¿~µ±!’$™ÍbNŽpåŠlðà¤={ä/nx4ã­¿1ãÇù(n¾E©û~tI°‚SʧSßÔ<üõéL]YaÒÖgÈÖ%o$–B)MüàxȯëŒe×ÿ;ÿù3:BˆáÒGóO=ô¿‹y9§Þ²ÿö…“„îÆ÷s7ø¾ùGšV›|àn ÿþâ²áž¶Õ¿&¼¾þÐc#£=\S²ËDQº”¡»ªÑ%ktײJR²uÉšâäLí¥ôÜ\­¾ ¸ìêƒû¾¯Ès<Ï7gȤå¯ÓÅšӦ‰qqÄl&2¡i‰çUvv¼^_ž›cååÕð˜OÓ’À™ÌæÆòМ{jç¶ß㯦^»tîÌ9]$Ǚ̄åŽQ¶’Ùl"„މÈq&3Ÿ{¶XìÏpµ¦V¦9’rô5oÅ´êž«Ãà•›Ì¤j,s«·O­®´™# áÉ,ˆ¬@KfAWÎSDbiÉJF)e”RF[þD‰ÐD©åjõ¾nö•ë[øFƒ(|½åçEbY/‰‰1}Û+ëµS6þÔ}öŒ×íþp@[êY¢D„®C„@+ô›u…hÖöí;v |é%1.N¦o_cY™²sgnÿ~¶¸¸sLLâ’W{ý¯‘i2§^v¦k:óû›$©üê®CåƒGö°cL׿™9î+iÜ OOú¨ƒUö¼©_Ëeð„bª/­z¼Ž$‰¢dù£Æ,DIT÷ýéÜáŽT­•+­«uÛ§ŽÏ þnÿ…÷ü9vh_'Uz~y¹‰S0D)£”2Ч Ož–xš4DQÅÊ쬭Öì83´—­ÙÉœû:p×K¹þ¶µJNŸnVwwb%É,‘²k²ßÛôJo;ºû§ÏïŸúÆá]Ÿ vÀµh îÌ·¾ÇgÛ¶‚;zNZv\h¨løp©¨ˆ© »FG® »Z·ü”]ùyO\ /I’1í›Ç‡ýs[ŽÛ IÏ-YùÝÝÕ¤êxKØÕ¸gG’$±:ìjNNÕ}Ê(-+Ó[þé3wGÛÖëöŸ‹v;÷F­xnpLO¯÷ü)#¼“ªÌ h´F]9o4‹¼@ªþI¼ ‚$ˆ¢Œ¥í¬­6¼` »MWvu¦o®;Év>š×ÛÉgʧÏg/}ãp‘€ç¢Áýž[·RráB⢗û=ý4¹xQÈÉa»w¿»ïõ×õz=$ÄÅùEGŸ8Qßðør±ƒ…½Çòkì{|î¾W–~x¶D$}Âò•ùKvnz穇ú÷餺¢3“oƬ|ÉÚGØ©öž)sìiÇÝÐs­pGçmîû³FtY2½ïŽGs ´a^¶ M rØÅ5:ܵO˜KÏ`—¨@—p¿NAÞÎFþBjîû?±±’V»é¼}„lüù†±vF—^ŽóTH’$ëˆ%³PS’$±}4§ðõe±Uw{âŽN€:;sÓCè.^L\ôòyó,a'><96öâ¾}1‹[[ÂnÔ¨ä+Šââzto`|¹ÇØÁÂ’cùOùxT}õ…Ü}¯,ýbôþ‡º«+–¯Ì_²ÿà4†bJù£2ìH{«^ʪîFW§:ìdõ*¬;¼£ó6Gž5¢Kˆ·ÃÛßÝ#Ì«ÓùëÅC£\Y†°4%cKS,C±4ahRaä¯ço‰½Xv5šÎëÑGÈœŸo<6' Æ•|RéåXqЫž I2Õ »}“—Åþ¼2Æ ¿– ù(Zò[ow9Ra2q׮ɆÍIJºqõjÔªU _}5àÙg…ë×IZZÔèщ ô?|¨¡ (ƒ_\ä2jÚ<ÝÒ9㣃ÔúËû¾XøªfÄód%‰³rc ŸH;Ö£,iÏÇ/}vÍU™ZDª•Z–—JßdžoÏh†<ä\øÛ«ãßvÚxhy¨ÒgÊ$›Å{Ï™ÕÃ…äZÿÏÙûFÿ²û)o©öDîÖQ4‹¾ážkŽ\ôel‘ί_· Q"/²½Î0EÕVžÎêÉCÂDùÔ» ]î÷ôNžõ‚yé‚IÑ!®*ª"?åÌî¯Öx/]fU¹b5Vqÿáü}_ûµÛ#ÛDn¡D„®C„À=éX:š¼vK·n²áÃõ%%çöî>|ÈÊËëÆÚµÉÉŽü… î<’|ìXî¾ý®#GÔŸízì¹ õΤŒžôÔ]Wí¬ÜIÍŽeõKeäÂwƒæL ›•N _ðÅ[A I’äþÏ®yrÅKc;I3XôŸñÎúé^lÍì»ÛK oõ_»ìëÃ{þ(?´'!äÏÏg61§ÞUu]´eí®U-57)»ÂÊ=¼ÿÃO¼ôõ[=èªÞw­d\ƾÿòÞ‰KöõøjŒKÈ-”h€°CØuˆ°h•̺Õ^éóÌ3æÝÑÕ«»pfïÞÈï¾%ÎÎCà»ïœŸûÏa/¿,éõD\ŠãκŒÞàD¾c—m»¬½”v¸t{ÜÒ›ï?÷4!’DúýraÏÍ]Ù¶ÆKë.³¿;9»Îtd®#^ÿqÄëµ'o[{"­Ó>MS)Øæ ýjgü7;þ$„˜ÍfI’¨*4M×½÷¼JúÈ’¯YÒPÄ5°‚t§1ëþCîì1”(Ña‡°CØÜãԺŗ›çyžç]ŸÎÌ0g7lpu‰¨Õj !$8˜ñóË8v̵K—sÛ¶ióòº½÷.Çq,Ëvœöi‚(ŠÇ ‚Àóü”þîö²5{ô•MGˆ%±†a†eY†ad2Mßo—×£D„®C„@kì—¤ñ½’ã8žç9Žã8ÎqÊd› ã9Ž/ÕéxžE‘¦iõ‚ùŸ!á×_ÝçΜ5“V(8³™HRÍàrptjböÅEÚöÛ>M§=WÅòw”õâ áÅEE–¦³D•L&“Éd,ËÊd2Qär9Ã0ÍlºöÐz(Ña‡°ëaÐ:;e£{¥åÈtõaj†a,Ç­i†!’D(Šñó9ø+“±2Í04M[zJ5§Y¤-l²ç&µßöiUMÓ~n¶¢(T¶!ÍÔj^Š¢iš¦éæ7i‡÷Q¢Âa×! uvJ©‰]O.—Ëd2I’AEQ¨"IS…®á>Û•¤Û½‚¶ºéÄ*<Ï7Ðt5šï¾L!”h€°CØuˆ°h…ݲY{%EQ͹èâ>Üéîø ÚêD’Ëå°‹ˆ v»v­°SbAû DìÌh´@[BÓ´ y¯¡æ« Šª}AD‰;„Âà^¢(Ê^m§ÉÈèäâÒa¡¨HëààH5t÷7E¥\–pUæëÔq$9³H)—ÝêáE(Ña‡°CØ´ËFtízòä‰>}ú89»0LÇzH ˆÚÂü¿þ:Óµk7¥BQ;%Ý32ðç#WÆô óqbÙû¼}x^¼’¡ýåĵ¾ÝBí”-¶²(Ña‡°ëaЂ–uóðˆ0Dž‹×ëõ‚ t¬Õg;;û°°''g+•ªþÞN¬ÞäÔ3"èÀ™´]Ç’;B›(älψ OW'o§«¬P¢Âa×! ¥¿¥ò€ @O/Žã;àEMËå2kk›Æs“©ä®>ž:HÛP±QÐ>Ž-Yˆ?@Ø!ì:DØ´8ËŸÑ ¢iâçŒ]% ìvpŸ%?š% D@‰(ÑP¢J4”h€ P¢ D€¿¿ú÷¡,M&îç 1íÎKsf£à~.ÑsÐî¬úr î”$Ih€6·  D”híÎÿ¯×°ÝßfxIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/insertrowinmodelview.png0000644000076500000240000000743312536324470023744 0ustar philstaff00000000000000‰PNG  IHDRÌËÔwS¸×PLTE€€ˆ  ˆ\ˆ`ˆdhh˜l˜l p t¨x¨x°„ÀŒÈ ˆÐ  $ ($(((((,(0$00(000000˜04004˜84888888˜8<88< @4@@<@@@@@@ @D@H@HHDHHHHHLHHL¨PDPPHPPLPPPPPP¨PTPPT¨XLXXPXXTXXXXX\X`\``````°`d``d°h`hhdhhhhhh°hlhhl¸plpppppp¸ptppt¸xtxxxxx|À€t€€x€€|€€€€€€À€„€ˆ„ˆˆˆˆˆŒˆŒÈ”˜Œ˜˜”˜˜˜˜˜œ˜ ˜  œ     ¤  ¤Ð¨¤¨¨¨¨¨¨Ð¨¬¨°¬°°°°°°Ø°´°°´Ø¸´¸¸¸¸¸¸Ø¸¼¸À¼ÀÀÀÀÀÀàÀÄÀÀÄàÈÈÈÈÈàÈÌÈÐÐÐÐÔÐÐÔèØØØØØèØÜØØÜèàààààðàäààäðèèèèèðèìèèìððððððøðôððôøøøøøüø0¸ø¨ðXÈø8Psú] ÿIDATx^ìÀƒ@ú7@ kÝžu2Ôá³g~¯MAŸ‘´—lâ$( І޼ÔP Ŧ´ˆo"ˆ¾ëƒôZÄ?ÖÉÜÕ/Ó]r¥ULrû »;·³w/övoÃ;Bâýäû’H2zB·ÛuN§ÝÎö…=¡u7þ¯Ì$s8öúý¾ÊtÎý%™oæS®øþ·™$“–³œK&g¼Õ$™Å—Å‹B£Os¯àÒ†RB0ÌWÜ쵈¼fúkjeòü,Ÿ°09†¢²­â2Câ.'™RzY–9™*SÚ[Ȥ?¨­L^^¼Z0›2 O«:”é 6! ’Æzí3”2Â31NhºL*ñ½«BÊ”µòä ?-ŒL¯7°`|˜„IZ™v †™æf\5]¦mÕ&\Z™§ó\ä¬x…®üê™ [K¡Lè‰ÉDoT¦¦7MÃÖL¯¬‘‰yÈäÃâè}^)¡Ìª(#2‘Œ½f­L–ÙG, ;(SfbOv´N„¶¥¨LiLª™™ñCƒ¯ùùçŘ*Ÿò‹¾f¡Ä+3L"GcLƒd*¤Ädb^z“y8c¾xùîñ¨Ô®™áÒvç5“9«&É¡L¸Œïf°pº˜åIT¿›… $lÒÊDo°›…Ìu»ÙôI˜¹emdâÜçòÃÉë"üÎLü»Ý¬7 Úû‚sn/˲Vºfý¡Î}œyI2AÌ'Ç\±MŸó6“d^BÀhœ¦fú?s#H2[[O2³G‡6€0EO¢YªSu€npi:,ƒhro/¾u'Ü3Ñ›Ä9ÓoøÔx†Åžµ6 …qþBñZX¡B " ÂF¡¹˜ìÂŒ"XŠaÌ‹­…±‰+ 6”–÷ø Dü°ò’Ž,ÁÉ!RϹ8‡ô"?á¤-5'`’é1ÁÓ¶a1-¦Å´˜ÓbچŴ˜ÿ1&ˆ¸QZšÃ^Ö‹IÌü¤ç æâi°Ñ8Ð=&ˆÔ×7~a™iÌÂË6Õ݉`šküë˜|³‘AÌØ-v˜3ÀK_\N¸H='ºåÇŸê4F³]4äè»§ZÄ”F•¸îYUãñ„,p¢û:L˜ùz˜œ6ˆY w˜ïî«óÅ™Z‰Z O4E¢&˜j4¼5ϲ¡/!% wÔm¤qY¾J§k5<^6Rï³r bÒ'ÌäÌÄ10U<±1(h‹@§QeCƒkÊ}Õ&¦4üœ(÷"õF)õƒ|2‰ÆÎŠ—›¡ 5¡L¨‡FÃ+ÿÂüܧQÖ€£ßà©a•úž™D*ðâaQ=ìc([:ÏdCáEPµ‰) y2ÑfSê]½Íž{…QLºEy£Î÷1?`¼UËcFîe[~ÓdÉÞŠ«s\5Øh7ÞÆeyœ &j}Z#J$õƒüžÉó/Ëð³}Lº 7^j4hõºçDsƤ÷.³ß@£ßx»nR}‹x7‚Éa^¥nj§_w¹©[LýÆeØå>¤n1õîºÁ”ºÅ´ÿšXL‹ù‡=:&¡ úGgK™Ê61¬|n8Y‡ot gâ’מYìÝÑOÙðë ëô¹LåLå #QWÔ•X«†–•êÈK%ÊŠ°¢.5u‘@…˺®r³YLâ8^:ÎQÕ?¶æz? ƒýz&>f;³mÙö‘Ù³XLb62†u¨Š9Wrì™s6 -c©³X€Ê3o àl&“›î1íÌ|wV–J_i…V׫I#ßEî@'eÇÓóîóêÒ.Ó÷ß1çdelÌÒ¾\HM?‡:L™æÉÂí0y(%°°0ÿ°tól%"LéIéö”wìÞÂab¡‰‹x˜Ò.ƒöò›mY3Õ• )°éçPëg?9&%£¤æŸS/îa^¦Û!cþHO ª ¹ðZ!1 È{˜^»LV€¬Œi¸Ò4—›êÊ]e˜<”\K#,Ìjê¸éÇl¦/ÕΔž”äÂëkÄtSÇ)W0}¨Rø“•€;S*°©QOè5ÂBÁ,›b)˜µÔ%"Ôž”äbb;u © ¸ñcZíI`>ÛÌá›õ„Ò sÛæJñ•¶¹_ÃÒñN¤Æ/Ì‹%D‚ù›¿%^~!/ÈO¾ï#>I 0¿üð³„,y³·4gíØÃ5,ß¹`rR˜Ô¸b†¹x æ£_|xt‹÷‹¿ÿ €v`¾ÿ}ßQ–ý®Jùáà;LŸ&5®¸a*ð1_á¹Æ{ÿùãÄ㻘Oß=OÈr0L8Æp køÄ¾FJj\qÃ"Ù™ÞG׬=zú—»˜‰Ÿ¾ýJ–ÇÇÌÕzèîäFÔ°à;LŸ&5®€˜Ä\{ç¾û­3ñäíïdylÌ‹õy#UꎨaÁw.˜>)Lj\“_´Ûs¬'ijš‹ &1Õâe 0‰,Ää_“˜Ä$&1Ù#&[` Ïã 6§‰ILb“˜Ä$&1‰ILb“˜Ä$&1‰Ù0•³‘3æ7º/^Ckz3ÔdðM«¨ÊÔ0×7ý˜+uÛ./#¼x ­(fD‚é›–®¦§…yšºðaê8s#ZÞéYþÌr ÌÃô¦¡‘E¶1%Ì彿¦³_@xnhùOÏòg¦[`‚éMÓ%ºãÂt0« Í!L¥Ì6ÆHІV€ƒ¹¢où1½iצǼž æBuv9‡ ÔÐRðg–[`¦7mWßgw*˜J'êó3ý ­˜SnY­Á¡†Þ4½)õöœR=Á¿3‹Wnwg ¡3úØþÒ+×}½Tñ¦äÅ9˜µEà ûÌiC+æ´[`ÕEÃX¬Â›–­k„z–ßHÌZ`Äd Œ˜l±:@Lb“˜Ä$&1Ù#&[`‘†-°æ¨`Ó˜ 1b2ÄdˆIL†˜ 1b 1b2ÄdˆIL†˜ 1b2Ä$füCL†˜ 1b“!&CL†˜ÌÙ£c€Jµ¥ÌfÃ*Yáåo…»™Ž63ÑÑf>@ÓÔ€@ Còɉåq.–ÕB›‰ T¦2ÁÐ2ÏÓ¦Á ™IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/licensewizard-flow.png0000644000076500000240000003571212536324517023260 0ustar philstaff00000000000000‰PNG  IHDRQ§ òuñPLTE<€lÐ#Oø$\ø/¬Í0/t0>÷0L÷8@÷P,øPPPP\PQ QW€T&U©àVX~éZ \^“Þ` `c c“Sd,emåfk^f«Ýg^Qh hiklomp p ppîrr=%rFArºès u xxx xxxxy}óz*z~mz¿Õ{ÝŽz€€€ €‚mÙ„^G…À膈 ˆŒˆ¼øŠ ÉÞŽŽkC8*!’’š’¬è“œ€••– –¢”–²s˜œ˜˜Ÿ™˜¬ ˜¬¸˜Àà™¤Ìš‘ä›~®œjœžÉœ²ËÑéžÇÞŸ}e      ¼È¨%¨¬¨ª*3ªD8ªil®^B°¼°²¤—²·É´Õ㵿᷼›·¼ò¸¼¸¸¼À¸À¸¸ÀÀ¹ÝçÀÀÀÀÌÀÀÌÈȯÄÈÌÈÈÌÐÈÐÈÈÐÎÈÐÖÉÈõÉÐéÊŒKÎPÎŒlÎÌÀÐZÐnÐÌÈÐÐÐÐÐØÐÜÐÐÜØÐÜàÑ“җUÒ‰ÒààÓŽsÔšzÔÜîÕ‚Õ&Õ®IÕаק،pØŽAØxØžˆØ©(ØÐøØÜØØÜàØàØØààØìÌØìíÙ›€ÙŸŠÙ¼‚Ú¯'Þž–ß®¡à¦‰à«+ଗàÜÔàààààèàìÀàìààìèâ¼,âÆ™âìðãÌÁä°,ä¾-åàÕèØÑèààèìèèðèëÆ<ìÀ4ìÍJìðøíäÐïèàïîèððððüðóüëø(Œø€¼ør¾\ˆï<:3^!ȆJ-1ó⛯Èî¥ÏPT¢s)J¾ì÷oO bt†ó !8}ð²ñÙÙCjfYëyÁœÞ9Þ¨ZDË¥DŽ `Å ºˆãˆ—Œ‰ ŽçœEÖ¦†y×ó•×^r¼Qµˆ–/ê¤`³„b("²öÿ¨JD˵þ˜#?“µž©è/{fÌâÈ‘†áƒÛ`FX°rwäTÊ:˜ Ìn²ÑEb’¦ÜÀE•4f˜†4 vØ«tók×/¨CÁe­Àô œÌ¼õ‰êCá•ì97;g3XZ£7x?%ÏË#¨Agh>u~üñîq~øÏŒúL@_ŒÂW× ¹þ%777ßͨó}1 W_½zõêÏ!!—!û31êiÐs6*Š Q‡llÛá!.^¢[`«¾È£‡¬g8D`ã“ B*;SêC÷;ߨ(Ò¤,,Bdk7µŠø<Ç çoÔ>.÷£2Ž¢Ùˆöö^Þw˜TyDq‡‘)£(‹FÞ×MÅ iK?·£$Žd¼š$>N'£]lwñlÂ÷'–÷Q:É8KøC÷;ÂÎÇ5jÏì9BÄQ3šû¨òOÀ4ªîížb{˜ÀàyôÜŒúz_ßÇ4‰¢rïâd$#Qïw6òÀÈŠ}<‹÷é=BçÙÄE£,ö_Üû1!ÚOF6‰c_DHlLÞOö³ç ý¿ÓÛÜ~˜×(£("$±Š¾` 娸Ÿ%<ò?M€#ä Ðs3ªjʲ*£‰Zu[ZËVP(š© 0rÓ´«U‚Ð…b™ƒJ/7u¥¶P€ÂB×ùº¨ŒZKlºF7UÛmž=ôÅàj0¸ßܧŽkT]i¥L"ך òU©]­ày úýÙÕg«ZüvZƒæ£{½ý½†¾¸úëííõÍåwo†×·¯Ïàe~ Зÿõ6O\ú¡/Í`0¸{3ØŽ§ïÇŸÔ¨ÍïØç Ðó7в·ºYhhÌiÛ-·«ºÂ¶[S‰ÐѲÍ+er8jF››•Þ¢v„¼]”u±v0{EŒŠVÙº]ES+M-™|KË¥Üver¨û¡/.Æmx©ŽÇÓö›wÃ×§0ŠxF­ÛvMÙ´ èD1aQ2!Éä:\bpÈeeÈ¢’á¾1 £µ.ë¶r&ÀÕ èçQ¶Ùê•‘NµÄ¨«†òu×TüèùÅXå¢ †œë.•ù.…îx–ƒÁ6—Ú¯ÔÛ¼•¡f¦N:Øv—w…L…è\y¨4›ƒ!çépÖæ¬iæVÍSÒNp¨?2jð퇰ôðî6Ì|£HRꔳLé f‚L™ÀrÍ2u¢“`8¶µLsêìÐÀ–á²ÝuàÅZàW’œ²?èåÊy.4c—v™ag‰Ÿ=g£`î-e â"eÛdŒð— ¡›È<óÈ’¥˜‡š×B(¹Ð؉t)*o)Yó`3\Aœ3ðv·›qF¼j"™ŠlîsþبËË»ï†Ãáo;y £Êe;gs~0Ê[&Ì8\*¡Àp„ðÎjð’ùpwÂ`.}BÈα8À#·˜ÐÏ£:T2Ë<—#cbØlGüô]zþï(‹ß #ÍÇ•DÆá‡üê'¯ÆaçËÁ÷ÃÛ÷Íûo¯¿<–QGÉð§^~…ß//¯nÂW÷§/îI:=è´ýŒÒ…Ô‰‡þçõÍßúOe”BŠfõKOý½O+EýÐ?> z>è›ôs0Š b7Á 3_ŽßûObÔJ¤n²Ì8!Yû&)ÁZò! eôõ¬ØqSŠEf!Dʹ¥,æ Ñ%»™ŸñRÖp”ÏŸJ:èyE`›saOlÔå°ßù4F-;_Ø\³ÝR(éÀ ™CJ„ˆB0±ôœSç!…Øé¹ÎÍeWÛE—1ṉ̃“KZ:ÀAG=£ ôÂè&‡9¥QÃ~çSµéê@Yh½v[ZrëŒYXè UEú0‚FÓÕ¦!“‚êTæbíÌZwM8f |«—M«P{ZôôåeŽéÍôQ>ÅË|Óh~%Æ „ܦ¯4úT0Уþ/?‘QŸôú/¹tPÂ0µxDJxðÄ& [²:hrÁ˜ß‹RÅ‹JÆD‰ŒâE-;vŒ"7 `8‡Ø#l§3æ ê†'’*Âk̦ „²µQ!æ÷¯ ÌR¤P±²õaBØb!Å.޼«¼¿0vùàKï'½Æ>n/ªÁAY‹bQÛÇ¢XÔüéC½îvõuïAÛuÿí¡^_vuWiÐæE©2w“üim‹*z´Á}ègë|Ș˜'cýèâf¢XÔEŽéB‹"Ê×AaXº´žÄ h•nc’IÐf¢XÞ( |ã¢ÐØ,¡Øe•@ú&€î d·(½Y!ÄÐú_/ÈC±1ÄýÜ»@N…ûCm|s¢ødÎ's5®ØþÛƒû79(o8yÃÉ¢6ŠE±¨PºzåÝE™Jƒ6/*z,^ßvz¨Wøç¢J¡ß…øgÖ'wÛ¡Ò Í‹*e@© ,ƒ8)Oà¬ê(‡æDQNÒÂ’¯/ŽËm6ÅhÙI¿­(“Rx$\*È”piZ%p\¡Ðð^Ϩ$’P2Ж¢X”Ö°XL…@öÉ££b F1ÇÖDÉR ÅÐ’Æ‚x1´“l ŠbQ`%’Ý“C¹iîå2ý%Uç®çâ÷z¹ÝïzÃÞƒ¶/ŠF_¯¸»¨Ó+”7œ¼áä '‹Š¶Jãÿ"ŠEõS•l+¢XÔAÓµL”_ø®÷òXT{ìÞæ P8¦åÆ&¨¬p¢÷,êÙ±¨ÕaT A «E^ÑhmBbQÏEùdœ³G‡ž&m=Röþ¤ç2eïY‹Ú~ÃÉ¢žÆ¢ÎçóËE¹±J®]Q¿Ø·ƒA €Vj™V`Ûƒž´`þ8“ ™í2¹Àö•h8kE•ÔŠ"Ѝ¤VQD%¢ˆ"*+©EQ!ЍÕ6£ˆrŽ"Ê](}T›¥3'Ê»QDù¹@QDEQDEQDEQDEQDEQDEQDu QDEQDEQDEQDEQDEQDEQDEQDEQDEQDEQDEQDEQDEQDEQDEQDuuÌ¢6XhCQf”EQDEÔËž£ÆCQ4‹q7;ÈÔ)e¿7d’lôgz;Z„eoÀ§~;I‘ÂEìa¦ÿDQFd£bFø ‰Ç½œJ…› £n²~eh£64^£DóÏ ØÂe)@4on¤Xƨ ר¢_È\‚|árW@1ü:iW}±24ŒQ ±QwøtÅ|VfÍÁƒ¼ÓÈ¿]2R’çŸô†²E_ Ú¡Ê ±E›¡3"læDN%¥³Ĩ­A#4J0¾œSbÖ~Eë£ Õ*¹¼¼f†R½#mѯ¸ M-·E+MªM0ÇÏ¿KFU§Dqhm‚–QKFñƒ‚Ýîéµ…¬‹~~<‚÷Ö¡Fç]¯Ü×}Ó´Ôñ!¾o{¢ö3Žº¤/ÅßÅ¡u]F-¥˜/ à@-´ã · Æôã÷šå®rVŠè_,~|¹XÌ_M>Ob¤N±AËAË& ¨EFÍÎ~VUrHt'*?mnz£±j™¦cšM§s»í®uìu2ùŒÒÿøÅ„h‹íâÿ EF-ö”JE©ÈO›É²¼§ìÁ§¯·ÉŽ«k–Õ´¬†i.[NÇ][sÝÍ„JbÇÐöŽCS¥”$´#£FòÂÂüÊW•‘,GíJ#Y|¤(9QÙùyË1Àsð]³Çî´;n?i£R§€š,ïχÐö’oÔlC×5M_Kò£q¹Ù+gÀ|¨*~³µÝ× Ë1 ¤wVÛv(üƒ„J7~ì4˜( @‹7 ŠiaæEY·ûä|QÜÝ…®¢ØÚxÐÔ¬&èn6guÕ¶;•PwJ Uò,”DiÝ¡“7*uŠ=‚–{hw±4$Ï¥ZƒåFn†¶Ÿû…Ò$Šß:"ݫç“Òµ(z”E1÷n>'ŠPOVv?_ÚÐͲLÃØvÛn¶ÃrŒOyŸÁ Ñ4)Œ¯ªþ"3ƒ8r )E÷'gTêûÏ t ×ùéšÀÜø}êWQÁ°Ïç‡Âá§¢¡ÂtÐC3pÅøºÀ2¡}nšópMâ똢a¬QºþTø³ù—=] · »"_Zß² k\Î2gÅu×ÜÇFщ2$s_(x×½:C}Ÿfje®Ê¨<‚z°89£R§ØƒÖym‡®æIAåL-ƒP@`!äQÊ_gã£mB½ ¼Wõ w‘êLÕ»¿/eNòjð•PŽ3 šA½y84è$æ~;—ƒÀ ”“;ö2t[6LÍ´¶k»ëíp#:VˆÙš ªA‹¡Ó˜2K‹ÜSEZrÕÉ•nüØãÐd1÷0‚‰æΔ§Zæ|Êù@ó©ìÀ%FU¦Åø”JƒC„ð\0Ãqe:…™9ŽLí3t†ÃA‹ƒ¿÷OxFE¶_¸Ô(x-%,·¹¥ç–C/œÊ«íÛ}#,Ç…cŽ(¹‹$˜z\§0õjûoFSàÚäŒJbAChWâ õ#h=$ oòR «>V=~ÎW«|½P€%$JîÁÔ“N[|õŽÐ²”çñ oQŒI ‡(šzª¯ždÔ%Mo¬-Ìk·~½öð¥«Åq·³²¬”º›ºi&Œ=\:®‘ôÎÔ)ö_€“Só?¦FŒQóú-eÐíú+§?üƒ;!E®(Ý>”Ó‰gÂÙ°û›M£Ÿ°QéÆMZ¼Qá@nÜûn£Þªßýá®ëRÔíQù¢åêšÙÐÌe­¾-ëo¬‰?£R§ØãÐÞHZü^o©7èàÜ:÷þé÷^Óå\”JEQ-Í€€êŽåô×ï-&oTêû ZëïAûô¿6êËÃáp£Ûíu{½+og^õêàÛQi¼u)ýfÓ€‘lBwc¸tËH|ê¥N±Ç }Ÿ´x£´?Ù;ߨ&ÒüŽWî‹,°w]ímÅ–¥€=ö’°x‰¯B·›T¬–ê]4V»Ko4hÈ#_Ætv@- Ù‘É)ÿ,…È–f'Š-Ù‘=‘ÑbÉñøÅ‘Œ·o*Uº¾ªÔöÔ‘î7O4®ööUv“@À JòÆ_=Ö9û8¿ê=cöo¸QõEºkc ÕnÔ¿|5ké¯óùÜÔeïÎ&啕…›Ú¹C‡¶ýG9½½½øZʧgG'ólTÝ)׳¡]6´¶ ´u4êÖ­[syÃȤsù<ÓÔtbÇ/Ì\rä>ܶíO¥a)½g'o›@x@Ìãà0d¹rž Γ`õèRFÕr½4J*¨B<©BÓáÉà© —Ež ÆJ£zn }/ŸOOéjzÖòtvì<‘4ï«ãXÜŠÚ6õž뿽BYžº%à,Îr‚\É`©L,‡RÀŽ%Ž_ ¨Äo àP…]¤–à&TYNã(¡”Á&„¡ÝŒÊ‰Q¬Í¨ú‚ ©õô<ÚçBsJnâ ËíHTÄe „úý Cˆ ["nÊ þUÜ‹ ñS·[ƒ¿Ì"Y¬Ä9+ÒÃ)Tg‘µˆ¥/3jbàëûzz$Îëª~É÷~çÎöð}#%Ž÷aqËkÃâb“·æ—ŒÂ£D€ulJÊq¼I‹ou/–,Šø‹8(ð)RàxNãmúGñÙâ‹„r <¡&a9à‹N­]¯î”ë hSµCC4lŽPd@ Åhåkö´ž:àºoôÝl®÷Ú¶Í Ÿl;óÙ¦¶),.‹ÍA-Ñ`ù²) V‡Œ¥´2¯;åZÚðrh_ljªB«-jðUWæÆ½ü|zj:?bŒŒ÷õ¾ÛY.nö·7n…+Åm»põwÍÇ~wlÓ§_–‹‹Dæà%bVÞžºV=×nT}‘îZm÷#h7«Ð®>„vs4s5@UD¯jÔHZÏåò yýÞì?¿çëhÝë åõÙÔ­ærK¾º¹¡±÷Øf³±ñfc¥¸±rqQeÕ4A&`-I!bÈögdQr`@B¶ˆ-Ñq,Q¨P :’-‹ˆlâ\*«º :DàM[˲5¢ÖlTÝ)×3 ¡QùÙeКWB+…D¸K’.ÚBp%I•yrO$ª"9#‹7€ey ”L Rࢭ“‚fÞÁ9 Oé"O)È¢,à°®³µ<9ðkóF±j”žž¾_Ï—cÜù ½³c‡oxhjd|6UnÉ ÷6744nn3>küÑ,.|7õtjØkº)µ¡°Xbƒ'dŽQ4(˜<'¸9EX€å,…ÊNeeÇXÑf(%ÊQ*PÞ¤@8p8¾f£êN¹žíî ¡Y O Í,º§(åx+H¨]ä9>HÉm¥däOq¢É <%@ 7ãPœXd,¾ˆ(k—'›燪Q¹¹l6;—N§U5Ÿ>ïéh}ç=K™žÆ®×Ðpf|[yÛà‹-,.™ÍÀÛ*Ï1v¨HK%ŠF)„H‰·M(G€MX›!`ƒ&d(°X(+Ù6K$¢ÙGA rÍFÕT®åÐþú1´¡çB³‰ÍI¢ÄYr‰EȀ͗,ÛQ‚½¥dˆ‚9(ŸpÜÖì ‘$¦<‘Qm.€ -N 8"QËmE%T/O¶qÖ“Fe³©D2›ÆÞ—>èéØ¿ýƒƒ7ûî Mç››0gîoÞ´é·g·`Þè=›}‡¥„Lxõ„üÆÝ3¯;åzm KçÓ¯íçË ­– / _ĪQèù@ønl&kèS—Ú=-'|7Ð×7==¾TÜk…ÍŸÝIŸmÞ²åÍÞš[˜Û໫êN!µ´zgâЮ~©~Y†öÆ:A«uó«áËüp,šœ<øq{KË‘Ýß¿‚Õa×û¾ûñ¯6mYÊ›oö~ñ ˜[¨x­…”ŒAu0B:»†FÕz†`®'¡]ª@ó®í7CS§TI.Š™¬­Q££ƒ££ÃÃñHøÔ»ž–Ö–NïÖÄ[žÇ±¸3÷Ïœ9ö£‡¥½‰F¡îLX˜b€ã9 „‘ºQk¸HÇO5Ú_#4ÌchG»ÿ–åt‘£tmšœ ‡GG£c£c=¿l:uêT«×ûñ¾+}SÍm Ç6W¿¡ÊFeç*ÅY6…[â¨Áó!aMŒª;µjtU õ‡_ …ªB£¥„57*‰ÅÂcáp4Ös¢µéTGkÓÖΞ‰›ÿwåJ[þƒáI¡°ëÍeÓ e£4”L!hô®èkcTÝ©Uv\µBC¡ÚÕ‡ÐTM× $†ïkkT8‰ŽöÏÌ\jÙûî‰ýïüùë§'£É×Ûš±¶jËÃô»œš¨?Ic£Ïõ$‰”ªÿÝwýŒª¯¥\5Ax -^REÒE¨æ!7iéY6¢]5¨F¯i÷ïÄ™Œ`Nwîooo)g§w0½û7çT5<71qeíO¢NIOG{k{kÓ_é™I%î^8÷›® ca3Øî¢å¾—*g˱(#—tžÕJÐ(éš]°‹‚¢Hº"ÙB±ôJ]¯.ÔjF=Zü¹k]~´„Ñ5Hg5°uU‚‚ÔAA—%0DQ×tÐ'6â j ãYÓU•4К,é5Á걺ƒ'»|Míí(¼oû¾“Ø÷P©kÂ5<'¢±ØLb&Ž'—;kª,Å ð(¡"<¼®­…Qõ¸^íÂågA«Þõ&à%£ÖbÔàÃên÷ìîj÷`|?ómßí»GÑT,E‘™ÔÃlüÓ§ëq½<4Y—²XËQýƒŒŠMbu£øp˜ÉžÝ¾.ß»Ÿgç^ï®Î‹å‚FÑøp8ÅÚñ™h<žØx£êqm ´Œí²1ÜØ˜Œôx½]ßM[wø¶ûNÇ—’qT>ŽÅQy4=1œÀŽ6ª×ó _-^¶žFýïÇÆbc£‘È­A¯Ï·×·o»w§?ÝŸ<=O¥âáh4†µe1É$®÷æ6ܨºQ-öBhÑu…V5êС?ü~x›Þ—~z²ó€ïÀ¾}M>߉í.¦Î¿7Û‰Tl,öMn~~a~.‹ÕÍWw8eÀ<±?F–·Yqi@ @9§pùUªÇõÐÖѨ·ß>ôö#Ø’Ï<¿µËw i'®ð<]¯oï‰&ê¾/ﻆ'æÍ¢¹°°Ë~3ahªi!‘’=”åŽ;ÔQt‡Y”è¦2Lj6%Ô::/s<£@h‘yð3’eݧný¥ªÇõ"hÑÐ’mýŒú1÷oã=·ö½þÞOº¼»±ëíÚ÷~×®í=cw?8è G“øí97_,Íâ·ùìDö€b˜f(@yW•Ú*esÄ0€#”è:p,žUj[¼Æ ð6p¢QµÒƒØ¯`TݨÿÕ¡·ÿðƒ ­£Qÿ…Fý>‰ôîöþ÷“Mï{:½ûºÞÇg\õ_Þýú2±D8‘½ƒ…¿ýÖ\˜Ëió&1Bàþ‰£e¢iD#Ь–Š`ëEðK(Rh‚’‘eM¥²ë©dpŠT‰Î)ü?;çâ¶•Çñ]s2ÃÄ•Œ´’¨’\IÈ#ÛO†‰é“ÍŒ48Í4Ä£Kr ÍŸfZ3rèa÷°CØ@K²° HJ …6‡äXÛ¹dœ™C0L.É$Œ½Â%Ú%.e<§}“MÐiât,ôµ >~áóá÷žâýÏFÅÁ^C»ööÐ&hÔ–GùÞùOVøª­L‘&Xª-/rŽšáŽœy1•ìw¯]»µºzUÛ@´Ùé<N8÷ɸÛnÿ?û¨8Ø› ý¼´ ΨޖoìRÏ«¶Ä“EàºK¶Z?3œMç«Ý¿^¾Óé´×Q;”v³½±ò³^ìí Ý›(´À(ÿ¡¿)ìÔŒíÌ’™tÜzÞt€ÄL÷U†—Þî¬u6ÚöúÝnvÖÃ6*öhxXУ¨ž Púæ*yÙ–ëZ"¬08ƒãtF$‡×Þ_m­uÖÛ Tnïú†!í““‡…jQ/ ’\’M³j;E@gH®Og2,>½sºÙj¡u¯Ýi_¹Ýº¿Ú Û¨8XØÐÆE¾7>WRò®ëÖ,•9NNÓé‚&?;ÑDc³õ÷;ëWŸºz¿‘Ežw8JЂó¨½n†p´‘+i•ååBÍÊU<‰k•;°ðïènÿïV;;}ýTÍÒðŠW½WÐFûC;:ahQ¨Z2v½#³yɬ¸®h›¬#¦´F’Æó2¬>ë>ñ‰¿´Ñ% ß^l^l¶×Â6*IhQO B˜§¶ó9S— ëª–ICšË7ÒLQUkùÜp˜HĹÖþÔü¦¹‰}TlÔh&-8"üžpÎËi|^T kQ¢Xâ“Z¥dš‹üoî•#<ß÷þ¸úVèFÅÁþ í£ý¡‘!@ öQ„OPe?Wµµ"0Í®¨’¢+ Ú T…þ“w¨U66 ¿y'|£â`¯ uC‚6Þ¨aP;Œ],æQiIQD 2d¶ÔTÕþ±0o†Q¦Ê͈œGÅFyo€Vxm>€6Q£<‚0 7¡žP·óNE„ùL?­ÛVt²?ôJ0PÊF¢üù꽊ƒEZð~AôC8$³@³`3N½dKE™aaÝ‘UïwµI¡reŠúø÷Šƒ½‚6ÿÖÐ>ëLÖ( éN“E P 5G;«ˆPÍëõG‹;¹mÔná¥ñTYøCÈFÅÁ" -XõP(C„G}@;Hœ 3Ë6gŠB×åè,Îo¢ˆœ¿—-‚ Û¨8X$¡F ~‡l÷ºÂ—E•“%ÈÖ*%Àé¨;4ÍÒ¹¹¹Qwq°'»qœˆ€Q±Q‚5hQ‚a»›‡Þ°”tjº®kŒ¢À’­1ºë@̲éÜâö`ª1%£clj ¡… åhA ŒÚPˆÇ§Ÿã¤^«¤ Lš¢\ä3$¬;Ž Ù¬6ÛæÇ‰ÄÂèÆ ìCÐvÄ6þY =áI%[ƒŒÆ0ŠÜ‡8¯Â°€UcY)7œ±ï¡v ‰¡ïÌã`¯¡ ù\(ÐÆïÌ{[Ÿå‚Æ"¿iŽ•†ätUCÂ[,Íò¼\­Î%ƒ…Ä™QØFÅÁ†6Þ(¢×›.X]±-Àq¢Bš8e‹VÑ©×-ÍÊ$£Ì¢r½“ÆÊ•ŠƒEZ`…>„?¥$¸n±$®}ÇuVÌêjÐ?žÉd–¶Þh±Ñ¸²Qq°hB ÞByê÷i•uV×Ó´ˆ§Ù>NÓŠaÝu‹f–æµ2CrºÈH’ €.*:+ep¹´0Ê-Ÿ] Û¨8د‚övÍØµu#ŽãEð6ƒ ïa,Ÿ0²œJš‚ msüPŠÐÝð¢C«'‰Ý ….¶C‡Žî¿ JG/ù'ú„‡ G‡†bo½$¥~NÓÁ‹oÑ¿ðù ?K^KÛQQôŸ̫Ü6:­N³ÑÆØuI^¾vÛöÙùHŸ~gçƒÀ¹$C²Zõ¤”ß.ªÆÚRšÒÒvXÒ½®ª_ÁwZÍf'¡JûòÍÐižú'úÇÃ\éêUilú2¯± HÛ¢(!‡ªªf¸Ýjuz˜"¥ïþ\´ZýýÃ~ÇvœîÉñ™3¼»›|‘ÜõLUc=“†LKÛ,êôô"…ù¼º¾_>ŽK¯„¸Wïoõ8ýtÃyx¾ OFƒ÷«»U.óÜtQ5–i[uÇþý¼ª®½½vÓÕã¸àzŸ}«+·íN{°88ïŸç¯îV‰¢’›¾Ìk¬­¥íô2KC2A×ç˜ û•p÷–®»lèÚûû“ÑaøH®4`ú-Lµ½´owY±í£hñÎCXÏûLïÒÛô¸®ËÂÅrá6ÛÅþà0H¹Je”~m¸¨ëIZ¼@†¥½\TØÝ[v?wßøž§Ç1½ëá;Cšd> œfs°µú˜Œ1¥þ—†‹ª±þ_üWZKÛMQNÀ"òÉÅk½ <—œ !âÀ¡iª¦¹ˆšNwq¹>g>•42™×E9½'i½ i…ië¢ü€vA–­ëà©ÞÆG”2¥É¥äC§±8j8¦ Â8•ÑWÆ‹ª‹ò^†J[•P ”"Ê|Œ<À”» <Í™”R}_òÀ¶ÁÂnSZ‰£Àü¿Yê¢Úæ=I›—†ÖÒŠµ´ÝU&˜qPÜChŒHü…*!ä€BQœ$´(% 9MUcý#|(Í5,m]ÔlöøÉd žžçõÆÐ#¦Jò4Ï)£úI‚€°1)…é¢j,--Û¦‹Ú”Àv,m]ÔÍÍÍìz^UÕ|–½M¦“ìm˜Â”ú>ÍO)Òô² MÍ2ÊUc½, ?—†²ä_i³[†8rAæ&9ÂæA … 5ÉUöË~G²T( >‰Ô  Uù&a‹ÓíÉÊÑÌuøÉ²ZF_zOrïXT­Õ•ÖZéü(Ó—ÇOŸÏç~šÎò|~ãûà¢NWÒ^Þ¤=¼IûÚ¥µ¯íµIÛ«(ë³á™±,KK_ù2MOÓ¹¬ Ž.êàô®4Y¥MMÚÓ_i¸H[º´‹RS5HZf›¶tl‰vf)¤ @)á™^ëø¢Ž¢6i¸‘ÖSº‘öm×¢R ÀŒbîkñ—‘^ÌŒëÛÖåã‹:8mÒæ{Òbà&mÇ¢P„f$hµªfšÑ—(K„¹[º˜zD¦¯{Çu%«4%ä®4î-m+ªAfRU«Ó ¥ ‹ô4÷™‘‘^Çu…ñ¯4BÆJÛŠ"ˆÆ ( Õa."@ˆdݳ?鑹¸2¾¨£(çy ´ûE‘kPÌ ¦¦µVï£:„x¨{š èÿPÔQ”®Ò晘Wi¼•ÆMšíZ”I:ÄE%3ÜÝH·jšÉõŸ<¼¨ƒS—†w¥éEš¶Ý£HqíÍ£A"0ψôj&"”¬5"Çu\IÓ+ió¼IÛ±¨?ì”Mo›0Ç«}†~ªÞrí¤Ü'í0M!õ¾õ3Ðqé¡Ò@™8ú ØÆ¼RòÒ%éËB¶hÛm&DAÊÀb’‡ågldÄ#ñÿÉ·;l6ïnKlÛ¾¶íü¾¡àhŸ>7€£Qeh ^h×ÿ04Ð/Œ­Ð½Q¾×-‹Eš¦³?¹aè‚£Q"9u4Ê#sèØž‡'xä2ù/ŒR•j>€\)Õ¨˜R&§© £à3Î…"Ã8ŽýíðòÒ…>{„…íá&÷cæÐô—S@–ë± £ø¡ñƒQL¡¡•]K£TݪF >W£«@Õ¬j.UNSQF‘Ÿ.||ü¾J˜QaCDó‹"Hi!E4 a{üHƒ§d4b"=°™M'ÙLÅœQÍB“¬¤úš–Sè¶fqº–F)¦UÍ4 N;S9ü°±ßÜ(œ¦‚Œr yv!|pè£0FlÄÛú~Œ¨Ø¾U£^ž‚ aF-ÇNÁ·1sF5 M¶¬êßÿ>¯Uc°`†Ü@y©•F;zFïbÓ“³›Ý^þ £†ÁJ¹Ru]WͽQFÁif¼‘µ·kC6 ´}-;;—ɯ/¥$eESAF½¸p>ƒÝábŒƒÀ9ä7{f¬Ú¸†Ñe7E6lŠ ©Ò®»)ò!Z[MÒ ·n\˜Œ$3±Ùvl•yIy/îåb‹ä Ò]ð-TÌHL‚Øj'ÎD^ûZq.7³‡ÁÅ÷ÃüÅw@FªÊ¨Õ¥¹:HQÖMË®]êÀ-f>½®%¤îºêMƒpf¡CFÆÆ …bÓz,ÍòE‡ÝÚ¼Q¡!™A„ˆ¥ƒaT Ö gQ¦*.–ÎNä=Ýã§À/f8 E y¨îÕjxšTdÔßÿK~VeÔêÒ\`”Õ}„jÜç™möÚl6aê&¸(¦0*¦´C½Àéu¡ ¥ÍµVbTˆê¡zZ¬~µQ#6ŒI—z^wpñ£¼·j𡏠ú3£,œµ7! Æzi5Fñ7çîî|‘UU^š­üxFÉ¥Èó¬;!´N2h‰Ä*ŒÆS¨:ŒRæÑî“Q׋¥©Ö좵y£|iš¿þ3¯4Jucµ¾0J_cš©?Ó³elŽQû§_§Fã[eF­.è@˜¦ð‡Ìf¾gšÖ|1Ú¨ˆÒA¬Ð}j£ü2ê/Ç^ïŸyùŽföÆu°¿µµõA±­ø¨Ø=¯Î¨Õ¥‘~ ¤|ÖÓF-RÕ/Áž3Š{9"~­Îr<ÓÒ‹é K«5Ê0¦çMSÌCÐääÅHA8¯ƒWDÉÙ­kT!TÕF­.MØ%xå3¢JsK %¥¥)ÄóÎ|•1ŠË©Ö¨\Iž¦Òí¡I6I8…Â<ÏŒ:&ÐÈÎ@5,!λ4‰€ €L…Q_Ó¨™P;J¨ªŒzûÒ6ÿ+L¹QFÊ'˜ãÔøDrœË=Ä:žÈ#ƒ d\rurŽ Ø“R2ƒ{)Ñ®ÿÔ{jç°ý½}uXQoÇ£Ò”S9­‡’asÄGͱs‘4ƒÀa·¼ËÕ鲨Çâ¶Å¹£ï¶uS‰QÛ;;ÛíÏöîáÕ†õ‹ù:6Â0*Úè`mR;€E†H]âpm"Û˜RXÚ¥VÁDb¸o†Çñß#ÊpLþ¿Ì­K°Ì/PÝ€¨ÇjQµÆ&–(Ã2y‹"ò,Kõë½¼CÛWQ%X˜8ѯ"–(ò<;Ù¯c·•(Ã)ãÙò¶rçâ>€‹M³ Ò©Ù*00Ͱ„=F I©U›>Ê<ÀEºq‘Â&ï"ÅgŽ‘Rç"bœ»äjo°õ[…Ïhl|ňElÇ¢€"°~ÛÕym34sM€®´©Ó®ÄC@Êâ²(Ótg)l, æµiŒ® t:k°ö[°]ƒMác^ã?Ûšm%×z63Z­ÓZá¨çÏCËGò0\ØÛë`Ú‹:ÕÎJHXzíÁ2á‘ö¢xP&<)™8¡òÐ)9÷û%$àÏ*Y"a*PÚNJë48ëxmåÆöÔ*+q™lÈ;:uñæ“ î^³§S5ŠâK ˆwÞ)ú!j&•ó)OUÒh!Š Bå ¨¤AÐó•&‘ƒÅ …hy­ˆwX8S[‰ ½Ø‹šLîÞAðéjÊ]ž€¨QÔ<ú2¨ÉŇàõ}}{1½E¢þ$uN&‹› ¦Ü剉EéýÕW¯°Ïôëýœk\K‘ãaÅá÷‡‹úøòæªuJ¢FQ+±ô³*¦9Ȳ­ç9’‘€jŽyGK˜ÇQDñ\4k!Q%Áwb¹ÛµqRˆýv‘%ù¼Ö"œ„×ajhQŸ¡EU]›:eHÈ®Zz¤L*”9JB"ÀÆ9B R<$™ð2seÒ´Ý‹ýv“Z D5 zPO*Š;3QüÄO+jÓ•µÂÔ˜µßÂ:5(·¾i2‡¦À¸Î Ó˜Rc2c:Ò úzSCÉ7¼Ú6¼}¥ù×|Эà,,¦0³ÌëýWü ±J&1ò^“´óåÃLóWÿ!ZFTíS9DµnJD!"ÖEåï!¢=¡¤ˆB‰â¢î¯ŠÍ¢–k÷¹QèR^Ô¦\€[ˆÊßMD-~ ‚¨Žý£ì~pÿNÔÏd(¢`*¯¨Yí4]çШô\" ‘òŠÒ§¬‰˜:Û–¨ôT" ¥rŠòÖÉy×ÞW/Ý“ˆB-9™ç)$¢P¬ˆ¨‡›bƒÛƒÂuDÞêrÙ'ŒˆB:•'ŠˆB¾eE™¾ØDˆªDD¡a¢(æïÕù¯Å0C¹¢êxQè˜&*ÄQmiŠŸO—ÓY4lÖªW¶Qè ¢j}ü jE¤¤Äa8_t§tXukŠÚO"ª¢)ˆRÌ&0)6aw¬õü±1fÜŽ®Qx|UÓDY¢~™:¢ª{Q›ýö`x*6wUÝ“ˆBÝÌ¢ö¶ØxˆJxbUÏÔë;;vlƒP ÅI“ àí@AùW ´è‘òŒÎURZ:ÉQª8Ó–¨óã×/*žˆ:oª_TJuÀTŸ¨]žˆ ªVQÛ<S'*½ˆZ`jJDíôDTö!·fQñDÔqS9׊J¢V˜Ê¡@ÔfODe,&¤ÊDÅQ›LõŠ '¢6š*U剨)U5wDÍvQžˆš¯´ˆú­'¢ˆjñDÔÔ¼£ˆ* QDÕ¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢ˆ"Š(¢+CÔX½C!Š(¢ˆú´g‡¸ÍÃ`‡w˜ õ;B˜giÜÒw»‘]y-OæCÄñuø½ÄÇ& ¬©Z>%òâF†uõ> Ò‹þ䇜´‹Â¢´ +!Æ» Ó횇­Û…Õԋ¢tÝ…Iˆ!º0£A×aF/¬¦^¥Ú.l1dæ¨=L¼ùjÕÂjòEaQÎ#ŽìÎDÖßbnbÞ\ÖsZ’ìÜÈÎE· ›}¹†z.ʯ9ƒ¤ÕaÃùàWS/ ‹²!§ãŠNýY”‰¼²Ùéßy59³#3µ–¥Ô¼.¡‘sQv¬å‘äEf³£;* ‹²„2Bèàïb;ªØÆ®Øóñ‰zz)ª…ÉXS­ßÔ5LÜ\e}F,éEϘ_M½(,Êxyž_ó'®(n<™çÔÌÊKQÖ5xsQæŠ;( ‹ªÂÄàUØÎâÔÂjêEaQ%aˆqa¼„­Ü„ñíâ*†oæûæš=¾™' ÿÂ`QXT¢°¨×›ôˆE¥êóë6ýÿ¹c¿ÿbvãêi HIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-checkbox.png0000644000076500000240000000465112536324502023211 0ustar philstaff00000000000000‰PNG  IHDR·!›Q:Á pIDATxÚíœ}LçǽWº¦%i²e]&uÓ¤ öòG¥ü3˜4‰-bÞ”©š­iË Sª6CKBh•¶¤ uÕÒÆ1„Ò•’†Ñ8К‡Ä!¸Nì¬&5˜àÐ Î7còÒ›ïžçñgûl0i¬¤¯Îçç÷ûÝ÷¹çùÞã³uwïÞÅè­;Þ¸>ù&®J7ÐÑ”·7„O®üzðÞùÞ¿À©ˤí˧µ¸¸”ÈŸ.é(Øã Þ þ Nw 1`µÔ@ ¦@WžQPq Ͼõ1^·ºp±'ˆ@p”Ÿ®‡ î€LzäkAœº<€ºxÇ!2x´ôiжíúà_ ìmUvT;ûÑê‚0Âèè(×SÒpwô ‡Á>ß‹çÞ8‰µ›#w£•¨žèˆ² kíæÈòÑNè·˜Pvô3<ß–ÎA7×Ã7µ"µ¤Ç~¡â"^}ÏŸ…àè¾ÉÔJu%òõº Åw~ø4žùË>r1´²žû¬O†0x“\T:n Ñb¢EŠ*Z@4_QÑ<&걫Zû°vëy¼Xß‹ƒ‚°¶ÀêAý¥8ì ¡îSªìØ[G7€Œ•Oâ•z?ɹÀri z#ªÞ¹ÓŽbc‹+ 9ú4u‡fñ ÷%EFÕyï3†+ÜéŠÆ!_¬‚<ðÞ”Û¯!wWv àÀ9Zƒ¨ ËJ²|ÛÖþæ–s5uÃKxãd€åÐ\Z££/81|Í¥ ÐÙ¨<Þ·³ÖêR2u(uгxè”PmÐÁPéVÖCpÖšQÝìKÃ5]¦¾Nôˆ¢ô¨ž<p ¦åŒ€Ü×Û±³±ëwÕà±'V!}ivöb¯€}n¹ÜÁ€}êGkð&yo÷ñëÈ5µ³ÜH¸}(TÀnôOíÃeYFH³-” æICÓù§Ü_ÉÕnO\7,frAëJ÷}b§¼³î¥Dª OxšÎvy( wY ¬üíØVÿàiòwò3”Ú‡QTãAÚüL;ªÝØ}"ÈbsK;X.­A§™ñXX®ÞâJ0ÄŒÂnɰ,e¶Î‰öN[²&Út¨òÈ“¹’ E9“meöî¸Û™Y5ù9È·4¡Á¤Wí_÷4êÒÜ,äWyغ§Ê¨:F j¼Q1",zŒ‡j¿CĶä@o²%}¼sÀ–´;kÙzI‹†Ÿq æ<šg† Ä·U˜ÍšjÿXn¶Ù6„Ü·°uwܘßÞ—F?[o)É&ë…ð%{¼sÖ<¡üñ(ÀÇ-ÊdïMÁ47÷Àðkx¾é lm¾‡íg¾$Ë/ñíŸþbb8üõ®&ž¶ž¾GÚ€çŽÞ†áÝ^–·Ó< ¢±dS¸vf6²3Ãp;%å†ÔY¼ñá>_é³&j%y¼sîUQ€«=xtï½PG?z/?Óƒgk{°¯k µ·ï¡á€õ¿`Ëú1àYÖÝ ¿wø àÐÈ=¼yu ›IÍ¥5®ôGxigíËdÕE «4úÈ.µ¡0{òý—Í%Èf¯7¡]rc“:'sŽûäÉÚ¢%y‘uÍZô<Ó:±V"ì¹ pÊSÕÍZÌ“Ç9îéc¬ ñÚ¥y,¦¶]Ž<Žéïܰ%OÆ<º÷[“Oº†PÝ*`k;[:`Ç#chTô‘²lPD_Ó˜—Îv`[ÍE–Kkh>[’à÷ûˆüD9öfR'ænC¤W¥ÉY"=¼ÿ$Ê4^”¦˜gþêê$[7òB“f´¯b?gÜ«£_¡²'ѽ÷"}û¤÷:Ê{QT~‹ÀX¸‡É°½tbùûmg¢ë4†ÆÒšËŸçæJ‘-Inú,÷徎_êÇ;v?Þ:Ù…=Ç| Ech,Í¡¹´}.œŸ®‡ îÐÈMÐgºéTžÃ7[»„c—®'¡±4‡æÒüÙ®‡Î–0¿Kà Þ`¾™ÞRh‰ÆÐXšÃÁæzháæÃ׬µ%1ß^O£¤+Ó*K•i–eÊ´ËJ¥è*e#«¹¸R¨ä¦ãÀ½D¹U®ˆŒ€sq¥JÉ}ˆ£÷"% º÷ÎP†€hÀ¹¸R¥ä>~wtï­ø ec\\©RrNiÀ½P£÷Ž|™ p.®T)¹G^5à^ Ñ{«W{ðå\\)Tr_Vˆ÷BàéqïŹ¸R¥ä¾f¦÷| À—$€œ‹+UJî Âqàž p5ä\\©Rr?í wZÀÕ«AçâJ…’ûQ ¸çÅ|ruOÎÅ•jMÿçÔâÀ=x4äZ sq¥Rj £¡NSñûµÿf `œÖIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-dateedit.png0000644000076500000240000000324712536324502023206 0ustar philstaff00000000000000‰PNG  IHDR,'‚…0…PLTEÿÿÿ.AOp.p.‘A‘\«p±y·‚ .AA.fA‘ÈA˜ÒOOy«OŸÒQQQYYY\\\\ŸÒff±àhhhp¥Èp¥Òy·à‚A‚½å………†††ˆˆˆ‰‰‰‰‰ÍîŠŠŠ‹‹‹ŽŽŽ‘.‘Íî‘Íò”””•••———˜‰y˜˜˜˜Íò™™™Ÿ\.¡¡¡¥O¥p.¥¥¥¥Ü÷¦¦¦§§§¨¨¨©©©«Í׬¬¬­­­¯¯¯°°°±Üî²²²´´´¶¶¶···¸¸¸¹¹¹»»»¼¼¼½p½½½½îÿ¾¾¾ÀÀÀÁÁÁÂÂÂÂîÿÃÃÃÅÅÅÆÆÆÈ‘AÈÈÈÈòÿÉÉÉÊÊÊËËËÌÌÌÍ‘AÍ«yÍîÿÍòÿÍ÷ÿÏÏÏÐÐÐÑÑÑÒ«‚ÒÒÒÒ÷ÿÖÖÖ×¥y×ÈŸ×È·×××ØØØÙÙÙÚÚÚÛÛÛÜ×àÜÜÜÝÝÝÞÞÞßßßà«fà±yà·yàÜÜààààåêàÿÿáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîÈ‚îååîîîîÿÿïïïðððñññòÒ˜òòòòÿÿóóóôôôõõõööö÷Ò˜÷ט÷ן÷Ü¥÷÷÷÷ûÿ÷ÿÿøøøùùùúúúûà±ûîÒûûûûÿÿüüüþþþÿê·ÿòÈÿòÍÿ÷Íÿ÷Òÿû×ÿûÜÿÿêÿÿîÿÿòÿÿ÷ÿÿûÿÿÿ·#+tRNS $8>¶IDAThÞí˜KhAÇ¿}$6j‹µŠ`‘¢gkQ´M­ÅV«-Õƒ( zÑ›[ð…¨ø¢*>@<ø((ø@ªˆÕ"RЋEA«­Ij’Æq2»ÛfŠ^×ù%Ë7_Hùóßÿ7;hëvÁØ y ú…‚?Pï 27©Tê»rKpŠ0WÀ±$1.Ÿîè¸p¶ãìÀ%–¦€£qà|tÓ¾íûÚ7O»„tMSUc!$4rb\‹.Ÿú>4<¡¶øªB’$ Ø;—YB!žWñD)I¥3ûYre‹âq@9µ$S-á,'dP"#ÛÙßi¤ 4hXRåÔ™åÊ,5Ñ }Ö›è}J©®§™p¹„³\¤±Di7Ò ´48Å3‹ÜÛµæ†ùí;›=-ܪ«[û&¯8³2 [íh?Ú¾“U2†Of¥Î÷ÆÍUö®áiŸžœ¾íËŽï£õÂ9 yf…O]¢–¼oç»ÛìÍБ†=éN»9³0Â¥”ÿû #àZ!ÓZ–³¤â´õ‹Jµ»ùX…9äµ]ƒn¥¡¯‰Äðp2™YNI’ZàÝg‘G‘Ù˜™­è³]ƒœY? ŒÔUW°¢(ªÂ6¥ÒXh¹§aúÕ\Ÿ–éI!=VƒŒÌ^–e,c©9gâÙg}H.ñ´aöˆÄD*´k 3KÆ(¬È&’${N8:»'µùžvbé{€o3ìlg©ÌU‡woÛ}HU$ì>uà™eôôÀ»‡ïaäyxZ-6pd°M[m×@gA:Öcl ưVˆŸ³ÒÇΑ‡z` ©O»vÁ½5Ÿ6Ì­ž… vSS©ªÅ:N"Ùç«Dऴ|^¬aECl^yiI‰S¬••••‹kjëê—5®hZ¹ªYÐÜÜÒÒÒÊ®Ür à x¾&„ ü°„ÊÅ¢`}*„ñÓÊòU¾³Hî%äò±1õ²Å­Åµ"'¦Z\!È¿ …V¿SË4Í x.—À«–= -g þJ1á¬v–Ȭ¿Ï,1 ÿaæí³>rÙû¬_~6$ ] ¿IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-datetimeedit.png0000644000076500000240000000511112536324502024055 0ustar philstaff00000000000000‰PNG  IHDR,'µÍu IDATxÚíYÓÈÇsa¦¡ûÎÒ00W£«ù þùH~Žxôk^#ˆÅó€"¢€ A(,àÌÀ,a `À,‚8·N¥’®8¶“8t3º:GúËm»ª\N¨ç—+‰'NÀ¹sçH$iA…ìa–G‰7oÞ‰D"ýÅÖË—/I$ibµZ­žž?Þ·ï/;1°ÈÈÈÈÂ, T§mÛ¶ÁÚµkaýúõ\7n„\.ÇÿÆíŽ;x¹‰%¹gddddÖ!|6lØ{÷î…GA»Ý†¯_¿öôåËxöìœp}üø±÷7Dzûöíãeño¬¡.¸–Jà„…„dddqC‡ÂæÍ›¡R©p/ Aôúõk# e°½xñΜ9ÃCE¬'€õ Ó¿…f|× ´Xdddq€…ÕÍ›7ynêòåË|ÿÕ«W\û÷ï‡ÙÙY¾EXá1Ì_a¹íÛ·ózxœAè7¦_%pEAk1…„ddd±BBÎõë×yîêÚµkÜÃB={V¬X0â[ÜÇãxËíÞ½›×Àšeú=\ƒÐ"`‘‘‘ÅÖ•+WàÀ@OŸ>åaŸªª0==Í…[ÜG`áyæ±°žÖr¦e!Ð’=­9`‡„Xµ2¹ $•4ÔÝð± Ð f¬º­ª©T,oÔ¶Ìb–¨T¦Ž|åF ÒìJ§Ó©)È­‘¾a}íÞ\¨èé^ÿ’Zší°¶\(eÓ ²~â—ª¦5ÈåK`»Ò95 ¥†¿C3iH©ÃúJF6!!†x.\€#GŽôË_ÃA ñüÕ«WáСC¼gcd…­Y´ºá᜗ ,·Št‰D*:-ȱ2é’=~]§)Q¦æŽÖ¶]ÎðvµB#ß¹F¦ ]&¸uS@Ëd ƒÒ4ÐKáßÆÐ¾Œvo5=ɯŸ¯š`Uó²j¼`Iv>¥‘7 £&;í&u†$q¡—«öÕjÛÅÞõ#ûJFöÏÖJ­? 5èe…‡„mð<Ë`&áÓ*óZqÆ­ëB>5jm·@WXy­Ô”]ÊðkTE×dÀR Ïñ¡/£Ü›g‚Š€Ñë½CMØr ›ÕRÒ0{mÓ ÞnÍe}REŸ” 4¤êuC}U‡ô•ŒlþBBN­VƒãÇs`á“?BKWX<à!áÑ£Gy=¬ÿ0ý­A/kXË5£eYø£è}aÙ(u­BšŸ«XU6È“žÂ@ÛÌ»I²š)Û’·QâƒWéK XQ}±òiî!¹£Ü›[çýÓ뎢úú, p¦‘ ’!*·iC†{aÊp%#›`áK̦i­[·àîÝ»`Û6ª+Ü¿sç/wìØ1Xù %ç´ü^ÖÔÐi ÑÀò ’=„ÑêvC­ÜÄ!Êy°Ûî´—Cny5Ê©yS  $“ eóP·£Gô°¾Øe4½2À(`©ù¹œY»Ñi?]°†zXíV4¨,4ŹTV‡´{ç®›‚bYö|ÉÈ $<þ<ŸƒuãÆ ¸wïŸéþøñcxòä W³Ùä[<~ÿþ}°, N:Åë `ý7Z~/«N,1@ oôºmá!ˆí:‡DÝÞvX²^+©×:͹6§w¥”Uéx'yÓ £Õh}ùsñ ¤%xk”ë`ÖŠ"/Æ€•7#BQ’Ê\HZj¸=˜¥ò5¨ò¼˜ ˆ¼j†•I—¡ÕȰÈþÀÂÉ 8¯ª ,ÌUá9Yx =-ôÂpšƒ¬¿}ÐZ)…†~/kÉD!¡SçuØc j·ž©Š¢ôÂÃt#Ûî†WFƒ r˜(ùG …$½GíËxŸ‹#ä$5(– žx i*Õ*Ô̆ÔÏ®÷egwî;W,ro+ÇÚjË-’‘-PHˆk[ݾ}›ç°p®UÐÊ x =/,WÅës!á÷V/¹0â+èMd«¡7T·í4˜ Yå®VkPÒU ½T†ÓŽn»mñ›’¼Ox]Á^žB28Ç6j_Æý\dk–´ÎƒƒDä°Ì!çZíy`4z÷MÀ"ûñÀºxñ"4 þ!œ‚æaáœ+ô´0…O'VpHè‚Í:Q/vžÂë4,{.ùÜnˆÿíÓíÑuûÔx¦<ð#ÚîLH²°ÉaÀ1!ë’k³k5ð<¬rǃJõ‘¾ ¾4«Ð µ>Ï'êÞœ† –Ý×óÀÓ.”\Ô“îþsŠ8×IÆc[µr‹dd "|ðuLªãþÛ·oy¸'ÏtÇ}<Ž^–»té’<­á;K<‘Kôi.!íYyžo1›èºýžJ~àiWdÛ Mm.tK(È\«ëJßuSÙ"´FüB‚úRG@*úl‡Ü//Ssåˆ'–ÃÕó&Ý&ÔÙÿJ¶ÛîK¾°È~°@è)>}šç§p*ƒëº|eœk…ïâWmx÷î)ÃF,õÄL÷jÚóðÁŒÒ¶ÃÜO»Ù„AÛ§Õäî©ã¶À×Ú×iñë·š†Nöÿvß%ܳg÷œÐcÂ¥d>}úÄ…k_}þü™ÿÐB`!Ø …‚ü.áB '5*­4çác™Ï¶ÉÈȾ'°0w…«/àü+ û<ÏXÀ…ÐBï Ëãʤ¸ ,Z^†ŒŒlܰ»ÖÁƒaëÖ­Xß¾} ­aá–-[xyi=,Ù óX8iÔ0 ¾ž{¹\æs®dÃ}<¾nÝ:^Ëc½ØÀ¢åeÈÈÈÆ åé 8¿êðáÃZkÖ¬Õ«WêU«ø÷ñ8žÇrX^ZÓ=>°H$)Ž0…¯àà<+L¨ãzWø$·¸Çñ|w-÷‰€…q'‰D"M*9ÑîO¾ûËÆø÷«ó’áŒxéð7ñârñR⟢ѿÄEþ&‘H¤ 4ÞËÏ!ÀšTûUPnY´H$)®Æ[^&XKD¿—µL¸j~h‘H$R\·€_°ü^V´VŠ‹‘H$R\·Dr°¦¼,?´–KÐ"‘H¤¸ïG(€õs€—%CKÎiýA"‘Hh¼Ÿù Ö”­™hu½-‰DŠ«ñ~H5X?@k:\$‰WãýT}°†AK‰D"ÅÕ/S¢` ¬ÅÐ’Á%ËD"‘âhƪpX%‹‚€µ(Z]pɉD"Mª¥[¦Ba¬.´üà ‚‰D"M"R~P-–˜ô¯ÿwAl¯Ì,IåIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-dial.png0000644000076500000240000000500312536324502022324 0ustar philstaff00000000000000‰PNG  IHDRpplé<À ÊIDATxÚíœIl×Ç_½hñ*o² GÃÉ%¹4½h}èrÊÁhb¥iŸgë!€OrÒZÄIc‹‘æà:ÚKÔA"Ó”MZ›—ØÚ(KÖBm\D‰wýz 9rfÈ™7Rèß…óD>ÍÞ÷Íÿ{ßòÄ2† ÌE4êþ•K†±Küeã†hŒœã-ÃØ[œ£Qÿ¯¡ÿÁ¿ cçyÉ0öç cÿáÃÆT¡Ÿóœaì2' c'¸l{ŽÏ•¨¨hm¢U´ŠÑ"¶‹mb›Ø*¶ˆ-Jγ›ñª±Yº ßëf¶jdœÝÌ«¸Cìí¢M´‰Ö ˆNUá ½&£Ï›(Ÿ9Ïó&£½ü×ñLb—Ø)vAê!:¨—îFÜ”x“€aì>¦±À=b·Øe€¸UBEÿÌê~'ÂÀ£Eˆ[,­a‹¨¯Ž¿ç·[ Ò‡×ä//ã “&l¢Ê¿æj+×A,­a›hµaƒóü’—+FFñ0Ì¢bwy‰yV þë [¶-ž(B<$èÖ°Õ– .ò_?/ÑO‘{e”²dˆi×_ð‹ölÐ À²ñ2¤ÀêjI’<+Î_2V(Ñ<Œ7lGW–ò¬8¥ ÷|ÏäÀ "JÎ` mÐÌ¥‡… Œ±Äȳ†Ý»shƒ¯rš¹Š‘1zl»Zˆ‰ª±9Nóª{œá$ǹ«]áenƒ”S/ ¦»¾ËqN2£Æ/ðšækz,&m¼,“'ª]½Æ•<`™eBx™ØÄxgœ¼Æ‹õ<¥¡Mé&É4ŽGñIn_TJÖeHœÛDë«dÅ<‘Fø¢›®ž%Y««¦6~ÉRÕ.ízƒ½N'’gµjd‰/Ùàó6´ÍË ñ;íû§Ù ¯ømóŠSôpŠ'µ ¨ïG/DˆŒÎ’Sxäl°Ä5>*S¯ I%Œ˜5Ü¥4Îp]á "MÚįTa‡Ò<8ÀˆBÕŠb™,Û%#q’jxp«&!YY‡9¯}^%OÒ$°dWÂä-íHE *t´R×)Ë}ž=kN¨ðEûº×ÆøÊ rÄ¥fKvoƒ‹ t¹‚½Ê#KZÂ"Ã:…w`ƒgxŸ«Zœs¿²L’xWFž5Ç™a¹b)ÞçL}üˆ.ޱ·¸ØC =Ðu]ŒÓ,(áÜ"Sºïïå]|d×§5[•&lìäVXääœÓr6ØÃ¬"MÛˆn¢uNh'çŽéV´ÅX¾ÊòãǹøÄ€FYàšDº:gØ· pŠ>Es5<ÇBÞïcófM9Ô¶ŠPÄ€¹:ɲ>nKRϪæŽ"LÔüû]nJÚúš)·ÚVQU,˜¯É€ãô’œ9eÊœ–ÏQ)#ÜS¼95Ûmz\¤PS$Y¦ú¾mR¢¢é‘Ì ×˜p1w‚!û6xÛ5¼p \à:à ðoÄdî( RX¥ú]ÏŸ6Ý:àÁ^ hµÛ»O¯ëXkÆÎÒ£ ýlþ—1¼ŽÊ½¬2ÑÍõE×X3ŸR”éXw“ñºÌÅ›,rMI¤u…œÛ˜Ì £ý™=ŒàcTQB4#“)q“;&L™0àýÜR´ÇLè\À »6ø!/rŒ=ÚÍMVÂ,rù~e•mú˜ÌŽñb±€¶¦Šžå¼Z‘q„«U‰4wAŠ ¼Òó™EyôŠïåÎ:‹ÖL÷;Û«ñTÕÜ4&Êã(t(ë7RÌqMË8ª”¥»!¹‰D.âcH!¼0ëjrËÜfDAzk[Š3õiUu2A¼Ž}ÆÕ* Âo«DM”Çq‰ßq†¾r3®¼¾-f‘çp“)½hü.pÓ ÌÑËÙ —.žÒvn~G!|ý | /“ÊkÖôð]xÚàYŽðŽÎ!ž¡Ç •S“ü +¯“©Üc>äŽ)Þ¶ ^6ØLŸíà‚>H1 (²ZI@i“B³ËnkÕ‚¶wpåò€ûø”wTDkäæ]öMðÙ¢‹Ò |R©ßYvë— H÷MôÛ¯/VT{6W½hÁ›¯¤HboªÛVÈÙJsKÖqÚdŒ°ˆŸ{ ©Ö`?6ø1¯kŸ'ù¾Fœ¦¤¸Å òâËêÆ‚×ùX Îs’ã\6Q£o"C‚|ŠýN³ÖaŽsÒ"«áHE_á´†-|Ë0y&¸¦¼¯"BÎ$D?ÃéŠ*QIüÖtм&¬¸JSŠáÅÀ²€á[õýƒ%y€ÇàŸ®Ñã*ÌhÕ+á´Ô«Aýƒ1ú¹ÿèô^{ñiª:©Øö¢dM;yÜ?ä].鸣x¸×€†‘¸¡‡÷ïTß?X)!~ÅŸ %ý$$K"­ö“ùŠîÝ’ü‘¶²ùÒ£¼ÀïL;é£ä,jVdòY‹xK˜ßpʆ !­¢_sÑ4„øw.»r¬J—)‡‰“Ó‚ù›ió"_oD¯^¾â¨Æ}…2å”öâ0«¤É“ÔùšÓá+ÉG¥ˆ&JÊù ŸšÄdÖÉ’$^ó%#AŠ,릹öOyFÒ£U ðÏZÆF“dȱN– iR$I‘"Eš,9ÖÉ“a­F|óÅ×MãÁtZ¸K•Œc…8 âĉ³J¬n‹\Á딪¢Qð ºÚ£ÔÅ›iƒƒt(JF[É(}Ê~§°iÄú!~·™6øã”Ÿ.ÀGå|ÑŸ.ÀÿÛ`³Ôm;Ä.±Gtˆýâ è‡ÅQñ¸x¢iÄêT.Àv±Sì{ž ˆÍ"Vçªi[E»¶†ûÄ b³ˆÕÉx:€¥5,C<$7Xm¨lÑÖ°q¿8(5XN©Ü®­abÁ4X/ªØ"ZE›Ø¡ƒØ!ö5X«ܦAl¯Ù,buƯ`5ÄÈf«Sš5€[+ @`6‡X³­Ü¢ƒØ"Z‹+ÙLb~Rºà±UY†Ù÷Jµ˜¨fHês0rö@’¹8Qƒ¢ÉFÊpXÍMÒ˜‡õÍR y3ñ!–·b²Öß4ÄbIóf„V&éF† JU?¢*$­~˜Ák·€} ¬|OOðqxö-˜êëÈŽ°ÖN/¤TSVN… §-7úz£"d¤0Ø-v‰˜F€ÁN+´õMƒÌÒÏOôU©­0’•º¤yð²t¼|{Ø­vIJØ9i~:­Z݃.Ñö ]½jÞŒœ+ë ¥•úÄè;6¢š~Ú›mWç`ˆ·§BÃЖµ,: ,ÌB—%×ßÎÁ(Hs,Mçp¶¬Thõ_Mcïb}””~̲t^˜íQó·ÁØœHæakš»éˆz~Q5Ó77šš%©µg Dq»ðFê‚ùŒÑé¤$–Fñp€“`6ãÍÆˆ3/J ¦Se•¤m•$ëÄu K¬t4Q~Ó Ê‚7Êöe˜èRÒÍK2sJaפè›çídmóÅmO)(HzIÛ¡•Û5ÆId$næ~hISc<ïØ<Ë#F¡ƒíÎIÙãHZ‘õ%JÈþœRSH2+LÌ¥Ùqݾ,¥}SØ^ ¦ÚÔkˆuzr2¢Î )ÅkÓ¢›º5Iz±JÔ ˆZ<ššòIÛs£„ÃåˆQÎ1RýCàéïe¦¬<FÒ„Ÿ§ó'3Eæn;;îtÚÀbë…t^ˆÇÁãé‡nfZ;<Vv\,}ÿŒ¨¦‘Ágcßuu8\Ýàvwór-½3&¶R†Åæßd dÞætã1‡‹åuƒ‹÷MñõænÂßÍëpu³:º]|¿—µ%áÇ}$ŠLe;\l:'yÊM Œ$d5;{=bØú#d¶¦¹ûm†KJµx45ë“Ú<7ޤ’®âÉôZò dLR#†“ßÌãìUΉàC¢8ûa&‘€q·M½I“àæ$•²íðÔá Ä ‹1ß/‰´dÜ~öGé³{œý£)$uúˆ+yã‰4÷óIŠÄrB ‡XÓÅ!ͬåx7$ ýYFR©˜¤‰g¾¯«‘4®’Ô–;!’¶2I/+ ªÞG-M×ÕPLCÅ””SSÜGë 9s·k˜™Âì&d&\J³>iT–!ÔgWLC4%¥(ÏÛ5‘â¾âšÖ}!nŽv(¦õD(ÛÒΙÔö¾)uº„™‚T<¥"ÌAtNàûQ¯›ŸBžá毸é[ÚDÍ(æ2ëv¼k8ÌêfySó 0sWžå}šRýi}Yòü(Ï3VÛ2Üɾwœ\P'CxÀÎú&ó°5ÍÝß/AÔÂÑT1yÍt§û‰úyÏyè³k{: «ÃÊz„E|¨3Å}8ÍD+ŽÚ²Ž$˜è±ó‡.!÷ÛÔ´VèêêÐ=lBX9×å…+#z£cº: ÿD”‡2ƒº©#ÖŽéTîÁQ‡nZÉîå$á<ÖüG–Â~àñ©Ýq;ïs&“‚õa^«Â²fÇzòòŒF…ÜŸ.]”HÚÊ$½¼€¨ëÌÞÂÑôìEZȈ Iº}¹èœœ©®,Ój¦#ÛçSrîØ)q†›ˆ¾˜TT‡$g*¶Ñ¨Xg~›ÌeÙ8¿z!¯_uù¤XàÞ½{yAÉdÞ|óMEàÈ‘#Ú>n ÷õé(-¥¥´ œ?È#E‘WO<ñD–¨¦Iúúë¯Ã“O>ɉŠûï¼ó¯èèÑ£Ù->‰Äm¹ýJç)-¥]-i5 Y‘O‡âüzê©§¸Kiš¤Ï=÷  È~}¥¡vhò ù¥qÍ4IC¡7q±Àãǃ,Ë'Nœàо„Ú€ò ù¶è$5C^JKi)méôȳ^xÁ€ÿØ?Û6±ƒ@jáŽ$B<­îŸæû7~¯¢þÿ 7ܰçm„i’ ÆHr…Ðz>i%|øá‡|kùöðyìMøuôŒÍž„±ØIØýÒ»ðhLÿ~ÄIزMÑÈݰñb¸s, –ËveËÈ t%Áãl‡ÞñxþIøÁÙÞ ¹ž IÍ$ŠÐÚ$EÔLÒz|Rô1q©“å†ßÀÝS °ó vî;;ØvmïŸQð«é·áÂK/çD¹ùÎðËßáy0/–‘5#Ä0×Þ5ÖöÕd@ÍC á In–ƒ áQ/ OÏ7‘iÕŒm"4t ¦^’¦Ói°üÃ3ðß"Üt×|ë¢Ë`ý† à®Gã°-ÈúÌ øî¿oáýÃ?Þ÷²cw?u,߆¿GR©IK“L’D.åYêB¢ØµÌuw‹ókçsÇ$ðbð§p‰òJ×UH¬â²kÍW_›di93MU$Ú?ŒÂø`ë pù5×qB^ñ§ Áà‰Áš³ÖrlŽÂÏŸ<ÎÓZ~áyóÌ]5NŒ£ ”E6¾Š¤„™q9À凡n[Vh:ÏD#àvhÔÌ|îuñ­’?AŸ+/Ϊ'P⯠9óD°»GâåYÀL–– x”P*†¸>p<í6hï è´v3èm[÷8×6ÎWK›´ë3 þ^G¶þ¸±‘n]9¢4tY`½>)¾q~Þ-/Áßì\€¿:ßýEÖ¬=‡ßâì‡K¬Å÷¿ó½ÿ„|à(|ÿþ#pƒW„ón}‰ç­…¤ÙÀQ.#Að¸²ÅBôò@Ln&’Ž(œ²$•`¼¿ÆgâÌ ˆÃK Ô$`=É ìdë‚™È Äy\% Ö••à6BÜ™88±ýý“Ò  ®¦›ñ8x²ñ\…'¥{2]6Ÿù6é®ÓÃò Û¦‘ÙÅú=>Þgg.†*¡uçIÑTÅ·Í/Ýœ€~87=ö!ܼûCØô£_ò›âÌ5kùvýÆßƒ<´7½?biþé׸tË«<¯ysW‰IcÙœ_íå&©‚Ñ቙Éí¾H¿q}±Ü²Åt 7k.‹3ÊtÌH\ñùÜçË™Â<¼cÿŒnúƧø|É”9$ÄÇ3Û5ž=&Î(ms´ÛTó´š|fÛ¤]ŸœËó1SÛæËÎ组¦7wëõI‘hŽ@_`ûA€ûvð¾ðÃmÀÿóï¿:ÄÀŽÝǶ¿xà†ÿý”çÍóI‚½6õAP$V‡ŸT³›6“̸†‚q¥4øÝŽÜM/y@'K{/ãq ¹³ð¦8a•˜¦IV¶“ŸsÀd:Ã8-|uÔLZTƒ3%—ùpã‘$3‘ˆÏ ’6X»,'`Äç‡XR1Q‚»º4ª/ÉûãÏ¡*›Ïl›ˆ¤ÍFRMÔ¯îyÒZllô'‘hß½7 ;üŒŸûXÙîþà1¶õ¿¯{”ß•aD=ð×,æÍóIµp„Ö|sÎÞQQ‚±M5Uui¼Ó9)ÿü„0:Ú—3iÅYØlÏåëñö©å(qBÓ¡\˜ÃÍï¢Ð×fÉk“×ÈÜe¾¥> £ÅÚ Sóùkœg;TŸY¨:Ÿ¹6›ÇÜ'µš»mdî®”eõ>8Bq¥Ù: [^ØÌÝ„Ã>fýÂ3êöi¸ÿ[wt?8ûvñ¼E$Õn¤tŠ«§Ò‚q0cîsÉ|ݰh4O(‰üœñ¢ ¢îœÌF"A” òŠEóœ¦38^ôŠJ~£zyàbôKMå«¿M„õI«Y»‹[Œwár¹àú믇k¯½®¾új¸êª«àšk®áÛ+¯¼’ÏmÚ´‰§Å<µ½î&G¶RIŽóÏåOÉHË»Àÿ%^~ùexöÙg9ù0l…ð¦Á´˜§¶öˆMúa2&¬¼–ù›þ‘IHÓü$‘t9Þ'ÕÞEürÐÒ‘ÉD e‹DÒr䥋°ZavP«KˆŒtw „Æhð.Ë<)@hOZë²@Ѐ)˜r>©âRZJKiÉ'%V¬?º(GµTNóeš'­.VÌ¢¬Ý­e§‹°ZÑ4>éRˆck ¹6½ôÝŸT/Ž}ÇwÀ­·Þ ·ÝvÜ~ûín·;xî–[n­[·ÂèÇ&¬X¬¸µ»»wï†`0_~ù%|õÕWeið ×ý÷ßOâØ&×,'"Aˆ$D27WÈÚÝE "\ϲ@M{ÇŽ|4=}ú4|òÉ'ðé§Ÿrà~!0 Ö·mÛ6Ç®ëí ÆÝNpûãKR×Ò•Ýhè²ÀÅÇîïïç "på€#'Óîܹ“ıM¡ðen‘k&u F—@|{±Ê&ŸtÙçI5qlI‘pZÞÿý<à1$§¶$ۇ­+Ž©(Ž]©¬âól%±ñÆ«lWù>›);/¼˜¢áä“ÖDXÇ~øá‡¹Ê‚ö‘|¸-æCbŒŒ´ 8vé²+·»òù|í"Lo×NMŠƒÇåÐÕ¯iëší³AÙb ú¹vÙœýO r÷·ëêHV §€MK¾,PÇÞµk$“I8|ø0VQÛjçQÛè‘Gi=qì2eWnwåó…$å*‚Ú÷Œ&rfßd„ýqN!©¥Ïek×ÀÖ xÒqMpÛ ÉLAߨu°¶÷sñ´^HW _mó¤Ëâ“¢Àõž={8ùÐŒEˆ¢˜þ{hǵs‡âO„[N»lÙåÛ]íy½Oªÿ.†ñµÍ)“í*îsqÙ¥®©&¨ÆÒ£(Z›—ý)è×ÔçeÅ¿)ˆð’. Ôı§§§y#PyáØ±c|«­WD  ¬íc>ô_÷îÝÛ‚âØæÊ.OB“$UÛiüça²]†e[a"•»¦òüX>I‹¹Ûò K‹·¦Oº¨Ëëyp¤‰c?ýôÓœˆø`HohŽ>úè#Þ14mñ;’‰ÝjâØÕ”]ªÝÕŸú¨ŠK Æ–©¡]¶—-¥¦¡Óªð.¯FñIÕú« §µ»K8OŠOnï¹ç®ÝRí'ÂöíÛ[T»TÙ•Ú]e¿ªY¼!(uÊ‹Ðg£¾•ð®Y4¼5çImY`=A„I{1Û½rE¿)ˆpÇ'%qìÅl÷Êý¦÷I›xž”ı ´v·A>i­ËéÇ"Ðû¤ ˜‚©'ˆ0¥¥´”¶É}RЀeõ& "Lº»BãbÁ4|í.@hòø¤4_F yÒ&_»K?HÚ€ Âõ, $qlÂjEC—’86иŠ˶v—ı[]˜›°ì>i­A„I{µs/Í[A+Y€»¡›êYHâØ‹Y÷J‚ÙëÔzÜ 5wI{iűKÕ]IdºêòÕ¬­’þ%x)ÿ»‰~‹]WºNË)ÀÝ|$­;ˆp=ËIÛeë®$2]NàZ¬Éõ3îïfùGT7'Píïudûæ éÖõ)R¢­ú~•»6¾NË/ÀÝLæî¢. ¬WˆŒÄ±õ¨Tw‘é ×ù‚Õ(öÅÈhódIš½.Nk¿V6ÂÅú;>—žôåúU^캔 ö² p¯VŸ´s—ı3EiKÕ]Idº¼Àu±ØWÔk‹Õ ¢î¼¥s¤<íÛ.˜•´ºr¾}ù~U»6Ô^fnŠOJâØÕˆcWª»’Ètyk#’¶‘4_ ZOb£¶”êW%±k#AíåànY’Öcî’8vátKùº+‰L—¸ÎöÛ§õ[†ñn4ý|Ys·XûÍa_vŽVï6”ïW%±ëâëÔLÜ-·,°Þ Â$Ž­hT¾îÊ"Ó¥®µ›ýÍH"–{hÖ^IË÷«‚صÁuZvîV"\¯OJâØù([wE‘é2×ìÜÜXOîxç ö0sÖ^`îšÃöBsWg–ìW±ëŒÁuZnnš'%qìêű+Õ]È´±Àµ2ÿ¹ØÓU÷˰Ÿú|Ë/Àݲ>i­ËI›@kw0SOaÇ&I›Ü'%ql½ªÖ€eõ¦‹@$m@aÒÝ%#ñ¹,kw B“Ç'%M¾v—@ 4 ˆp=Ë)-¥¥´MŸ”@ 4ù<)@h€OŠknñEl")°tÀ…<ȳšØc&TUÐb(’_Ai)íÒø¤È³šHǹ>Åä;Kã"¿gÈ7Ó$Eg¼c!8$×òh™ÒRZJk¼Poê¾òÊ+üá‘i’¢´ÉÁƒ9Ë9RQéG¡´”¶:’"Ÿ´Qy†|3MRÔÂWÆP¹•ðEl|¿ FÒj¾ª¶_ꥥ´”6wLSÉÄ—ÿQpù¥ Ä›&©¦8 Š2ÉŠ@eÔÆ%Õy£qù„¼ÒGp0MRý‹¬8üñÇ<¨’£ K¡4ôüA>!¯ô<3MRÈûœÃ°žá<† ç3ld¸ˆáµÐËÔJ.'¦¡'è%*·6ª\Û ro½ÊÅ’$=Weò7Uf_P†¨ÁŒj4Š"בôl5Aáhz:$•@ ˜ƒž š™[8Šž«r±$I GS#¢^¬VF Ìáâ-E‘‹kHºÎ`4-$êFQ ‚9èM\=A‹GÑ$]k0šê‰ª÷Q/$¦¡÷Aõ-E-–³J‘tލëKUU ‚9œ_‚ ëu]WޤgõÜ2d%æ`DÎs j±¬)EÒJDÕ“•@ ˜Ãy:•#hI’®)CT=Yõ„%Õc}9KÔb9Óˆ¤g– ªFVýÈJ jÃ9:>­+IÐ2$ÕˆZHV#Âóгœkt<<ãÿNµqÂÔ"ìIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-horizontalscrollbar.png0000644000076500000240000000430212536324512025512 0ustar philstaff00000000000000‰PNG  IHDR*Ëk“‰IDATx^íKoÙÇÿõê÷Ãn0flì„ äa€„ Hl`ÇC,ÙÀ‚OÁG@bà  „eFL@i”8‘‘Bì0fÆ™Á/ð»»«»*ùË©uUÝr'í¬ÎO:ºÕ·»nݶt:çVµl=zô(t]ŽãÀó<0 aÛ6‚ à1H¹\F±X”>~õ๖eãòXâÿƒ¢(Õj•ëTÖ!CÖ®¬m¾ýßçëzÌÌÌ`ûöí¨Çåø‘óa[©Tpþüy Màú¾Ý»wsr”“/ÈñîÝ;ŒŒ¾Å_þááåT ßϸX-Sh‚3:Ó@²‹–CÆõÑÛ^ÂÁŸ'?O §;E ŠÀÐZE¡¤¥$¸–)ö¯­­a}};wîD¡P¨•""D±ººŠ;v 9¯®Ùÿúõk4‹Ë‰÷÷÷›A©TÂÈÈ~óõ8¾þkKˆ§ã8úëN öeM92¸¶…J¸á­b)Àßß®àÛ‘yümx£S˸t²Š#Ÿ‹Å(C´EQQ™²bPV„íÔÔ× ™aÕf@r®I¤¬æçç錺²41Eµ°°€fqiZJŠ‘ SR“““øÝ7#øj¬€ïJݰ:];Ú…“Cy¤â\Ο&ð6z¹§7dG¿ýý[ŒÏçñÉÎ"ödÇ[\*Š"e”W|Ͷ6kâöÍË—/‘ÍfÑ××Ç*GDddPáÏÝ 2níCš.ýx2")˽/^àÛqßù=°:ÈåbèlÛ(ß*Õ !…©(p"^ö–«! 9ÙB‹®ƒ±÷øêOð‹þ¿ ­GQTTl"+®WJ…• ³¸¸ˆW¯^!“É ««‹ïGfN,?~ŒK—.Á„Έ’Ú½{÷pîÜ9¤R)3#YÑ5r~’²ø0Zó.XYYáÄA–——Ü0ÃäÚ'°ó²ù8ò³+ÀûÕ©¸ Ç8´9`Ù!H€"ÃüJˆ|Ö{—ƒ*þüƒÍI2s)¢õ(ŠŠJ6¬ÙÊ^3ûÓé4KKKÜgâºG.—3+<}ú”Òa‰‡Ë—/ÃDÆ5yøð!ž={F¹áÔ©SQsä5å\‹!2ª9¤„n"‘ =iZZ—_‚áǘó~‰l.Žö| ùL «e œôáÚØÎƸáÇáøŠÆ¬–}TfUä³,Çá7ë9–”¼Æ‰JQTT”C6Ó¥ìãûÜ—âÚãZg k=™L²¸sç[)Õ8FÔµ"ûyÎÜÜnݺ…'OžàêÕ«Ø»w/û™E1¢k@ç° A1Lä}¸œ0JÓ1E”/Ã×ñ$Ïy̦PÈ%ø…à¹\׃m…°l¡Üòt]„UŸN‚ï—P.®£ä3åóø–ƒ ³s|¹¸%(ŠfTR^‰pØ'[.Ü#YP ãöíÛ0™…EÙÏDDÅ7píÚ5:tHæ'ûá5¢b4@J?Nž'JËi?Zo‡; /±¹d ¹tÉT‰x ïÞÙ””},°&®Â/û(—l=±â*•~ÒE[y ®›çuZ,*EQDR ¹ƒÏ~yôˆpInžÉ¹ÇŽömÛp÷î]¼yó“Ù¾1áunÖ_¹rE2*™¯I˜¢2#€+åEØr0î%utt`ÛÜ[”CÜ“B*G.C*‚ërR€mɈ€ã¸¨Vþ~ÅukE+¨ Xò‘L8è³–ÉìQmQé§(*ªZI™&ÙÌzøH’ˆJÊB²ÿ~ܼyÏŸ?Çýû÷¥Ê‚$6‘¢â^÷Å‹qâÄ ÊQÆçõ93£)™X03*žÄ’O&½gÏtO|ƒé…1xG‘ð,$Ó)¤2´,'ûQ@çX6PñJp¼8`¨–‹Xó\dWÇðEÀ;1y‹E¥( Å@¤ÄªÍ¨DT,󆆆¤ô“ÏÈ9lqæÌ?~<ˆÊœ¸!ÙöìY\¸p²ª• \ŸŽ¡¬jEÔ–eîQIé'{GbF9rãã㨼AqÚƒUøž½!)7ðãÕ ³)à—7Fö‹ lfŸfÿ…Ïö¡½½]~Vƒ–£(šQÕ},€™OàO_8 ² ‘ÏQQdׯ_L(òù<߇‰|žc "ÁšŒJÝ‹ÞÞ^ÖÆ²±‡–¢(*ªÈÇä9I–q\ãdFd ÊlÑžß0Ù0Ç5÷ÉØš’2ZË̪\¹ÉAÙ lß¾}œï`zzkß?Æâø=Ì–Ë2Ӹ̘xwÝmmèîïF_ß7ÖÐÖÖÆ± ×kŠ¢ÔÞÝ“b")Þ¥c400ÀŒŠ«+–MÀÒŽc4-P†ø¦Žœ[‰PZþ„†ÉóMæ(n¾QTü "F•,LBR;ÊŠ{RLùÅØ'Ä­EQôÉtÙµk×!×&×:Z@S㘒¢s¨yÛ8¶¢då>|Ø2~„˜à‰ Â2ú¶EQ4|¶ARµÿEQ”àc„Ʊ$tëHʪw‚QW6¢(Š!©°‘¤fTÒ6Þ™oEQCP´ÍfTÄ2>lHJŽ›FQÅ“))Ô7.ýäµ`JŠÇÍ£(Š6Qú…K?óØ£yEQÂMêgTÑRŠŽ-BQUU$a D¥(ŠŠ ÿKFe±m((9nEQ”pÂ"á&ïú™’2eÕ<Š¢(Mýs‡F¶‹’T‹²)EQ”p³í¿¼¹d¸­“×®IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-label.png0000644000076500000240000000265212536324507022506 0ustar philstaff00000000000000‰PNG  IHDRM `½‘PLTEÿÿÿðððìììVVVððäððìK=+•KI==ˆÁèìì<†¾ÁÁÁàììäèì<†Âììäììè*<*ððè`**äðð+ˆÁ<*<™=V+K=ˆÆIIÂKKKVKˆ¼KÁV+ˆ````h™Çj``p<p™Ârr=rKr¡Ár¡Êx¤Çzzz¼à<KVK¼à†¯Ë†´Ð†¾àˆˆ`+ˆˆˆˆˆ²Æ*<++Vˆˆ·ØÁàÁäÆä“p*“Âà•==•`•·Ê•Êä™Çà›V›·ÓŸÐì¡r=¡ˆˆ§j§rV§§¼Ê§ÁÓ§Ïèª_¬Øì¯Ôè²z+²z=²Üì²Üð´_·`·Á·¼V¼Á¼¼Øà¼Øì¼äð¾ËÜKÁÆÓÁØèÁèðÂ<“UÆ=ÆKÆÆÆÇ“Iʼ²ÊØäË“U˾´ÏÁ¡ÏÜÜÏìäÓʬÓÓÓÔ´†Ø²zØØÊܷܹܼÜÜÜÜÜàÜàäÜððà·à¾à“àÇ™àÜÜààÜàäÊàäØàèì_™àððäÆäÓ·äàÜääÜääàäää`äììj›èàÜèäär²èìðìË“ìܾìä¾ìäàììÔììÜìì༆¾jðà·ðàÆðèÁððÓððà*<*¹++j•¾àìÁ¡Ø"ö<tRNS $8>­IDATx^µÕe“âLpvI` ]ë|ÝåÜÝÝÝÝÝÝÝÝÝÝÝÝýžçÓÜôdàªîEŠÛÿ ªºèúUw 3k ªücÆš´’›¢J­ÖËãiÕÆãi²è/‹xçuVWÞ“¨Ò"K’Ùg2 sîèï=jÐ-âû¦Ð†×TkÙ9$ª´Z-²,)nº§ìÅÜ/¤‘ý ï†åQ%r±*Â6ÑÍ¿LLH`žÂ¡¶½¬€/Ûô£—+ÛQz,kéh­ÒJVTï˪Úºˆn®%'% Ži„#jòµ}Å¡ÕÁ¾å0îÓÏfäNË_ëö©vóÎ_pbJóÞT¬ÓD7~iKáç"Úmètô ô!ßF›o‘òI ¢ž”ïÞ\ÿFoö3B¾4Îݨ9ìœcÓ1-¼é%`«|ŸHé €YbAÕ¦oCi­¬ÿxõªažèÆÒå°Ûgµ°á"ÚEèO1oz”VÞ,`ȰV„Ú)˜N÷£V„Z#ÑšÛåDŽ÷ç¹u­·ðêÞ­¾eþm ))ŸñqýseÓÇ»óó·‡!Gš×]â ù§^Ÿ\)ºqÓ´TÎñáPÛ5™iäsOƲ–}œèε°´¸Ö [àááìú€1ánÔÒÇžgV¿YwÏæªª×šŠ–\)¤OÎѧ¹Ågnhº38‡ÃÉj±%“qn'NŠýDªBÆš*Ô0²51Ùæp¥¦¥gdêŽê7š%!)Å®pº£ù¿a$ gw"§;ªwAh8çÜiº£yO1f9‡Ë­;š3Ã1Ž=;§îhÎ7®™%ÙÊ9›]w4g/&9‹âéŽæ^àZ˜cžîhî,ŒIá˜Ç@½Ñܧ#çÌ›OTw½ÐŒ&ôÔ¤ÐbXµß*5;Ö,ƒNIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-lcdnumber.png0000644000076500000240000000075412536324507023403 0ustar philstaff00000000000000‰PNG  IHDRM<‰~ÿ_³IDAThÞí™KjÃ0EÏSÓ¤¡SBi)¥;è ;V^ïÀƒ¬ÃƒÌƒÕ[r~$4ò H2]®ŽždÙø‘Û¯÷–rDjàg4µ¦³€Éh¹<ÉLf2•©<ÊD&ò FŒ†ÔƒA0‚@ûk6£i;s;sš3*  míÌi` ©³§=µÌÚ5+Tk™К h#a]«("U!kiK”š¥¤îTbÃS‡9¼F±–U'Ëz;ªŠ“ÇX²d‰½ää‘¢~mºqê —Ïk§Y›ãô½{N-kU0NßS‘Zø’RŸyaIÊÚzïÉR kÅ Wéa­¦Šz¹®åºvû=t£m]éeÍbYlÕUÁZ¬#Y-¬YJªH¥Öꋯý´ÜyäºvÍGÞC3k™µÌÚ?§fw_)uÒZI©ôÛž±ÒÊÍݳ{q…{u ÷æÞ݇ût_îûö¢¡¡Ùû±Ö?nÿÚ$”ØocD®SšóƒÔ8–Z“ØXŒx$µ>·&é¤úAr Yó#Òv€´05öÖHÚ ¬Ï8µô†Nš¼“ÔÔ²¦x…ª«kd$‰Œ¢±Ÿ§IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-lineedit.png0000644000076500000240000000347612536324507023231 0ustar philstaff00000000000000‰PNG  IHDR,"ÒÞƒ÷PLTEÿÿÿ.AO\fpy‚‰.A.p.‘.˜AyA˜OpO‚O˜\‘f‘f˜f¥f«p¥‘Í..A.\‰.\Ÿ.\¥.pŸ.p±.‰È.‘ÍAA.AA.AAAAO.A‘ÍA‘ÒA˜ÒO‚½\\OO\\\\ff\Ÿ×ff.f‘«f˜·f¥×f«Üpp.p¥Íp¥×yyAy«Íy«×y·å‚‚A‚˜‰‚Èî‰O‰\‰\.‰Èî‘O.‘‘‰‘‘‘‘½Ò‘½Ü‘½à‘Âà‘Íî‘Íò˜.˜A˜O˜f˜˜˜˜Òò˜Ò÷ŸAŸOŸfŸp.Ÿ‚AŸÒò¥\¥f.¥fA¥Âà¥×ò«‚A«¥·«×ê±p±‚f±‰O±‰‰±ÈȱÈ×±Íà·p·‰f·åû½‚O½½½½ÂͽÈ׽ͽ×å½êû½êÿ˜fÂÂÂÂå÷ÂîÿÂòÿÈ‘AÈͽÈÍÈÈåîÈòÿÍ‘AÍ«˜ÍÍÍÍÒàÍÜÒÍåîÍå÷ÍòÿÍ÷ÿÏÏÏÒ˜AÒ˜OÒŸ\Ò¥pÒÒÒÒîÿÒ÷ÿן\׫p×Ƚ×åò×÷ÿ×ûÿÜŸ\ܱ‚ÜÍ«ÜêêÜûòÝÝÝà×·ààààûÿå×½åå×å÷Üå÷ÿåÿÿ꽂êȘêûÿêÿÿîȉîÈ‘îàÍîîêîîòîò÷îÿòðððòÍ‘ò͘òÒ˜òÒŸòàÂòîîòòêòÿÿ÷Ò‘÷Ò˜÷åÂ÷åÍ÷òî÷÷ò÷÷÷÷÷û÷÷ÿ÷ûÿ÷ÿÿûà±ûòîû÷òû÷÷ûÿòûÿÿþþþÿå·ÿê½ÿîÍÿîÒÿò×ÿ÷òÿ÷÷ÿûÜÿÿàÿÿåÿÿîÿÿòÿÿ÷ÿÿûÿÿÿÃÃÃiiišššwww¹¹¹}}}2¡$,tRNS $8>ÛIDATx^ìÀ©0Àì¿p¾ŠZ pPÞêD˜\®N‰Ÿú j" âî ’*Õ¶Š(( bïPQ¬(Ø{E#,ر‹]ìF±àˆ ëØQ± (¨±K@0£b‰^²¾úÝÇG.NÆáÁñ!ÿC’½Ý‡ßl.ÿk2ý,+–K&•Hìì*ØÚ–·±)ËŠ%—ˤR Õ* ËŠå`o/—1-ŠÅ/éÚu šÇŠU©¢Ó*ÆRÖ›:vÌ|d1ì5þ´b9V¦\T‹a… KQ?¹ -Þhæ-þ‘‚wbÁúâ0­µH“Ÿƒø-‡­²T,g'ªEnˈŒ$ü¼^K›€G ?~Ž˜HžõŒ†íˆ?FwÖ¢aMëÜ‘Í#?·7âÉ–jÖ‡ Üx¡\Üâ£ý­²L,Wg'G¢%—‘ÓbX[Ö®×ò1PwÃï´'a­vÖE^Hà6‘gën#âÅ6üÔt.ÂgãÕðšWxe[Äþjc¿x˜_¶âÚÌZé¤ ØžË£=N°U–‰åæê"h §Å°b¸ŽZ¨ù)þ阢Pég#fÁ€Ëça¯l¨¦c¡;îñ<ó&!¾€(^D°ê¨ýâaDó8w¯l”‹É^©ø\¡b«,«jªEOK|g±¯d÷$ ‘ \³9¬…¨õ¾„Ù\‚éì²BPç§f}qø,À³ œa±U–‰Uj §%•0¬ÆÇ÷}(ÂRéc½vktƒ=VÞ?uPÄÒEùg}ï[ÿÀ½!^©¼2`ÿ,ð7ÃRÝ„q—º(âM±Ø*ËĪA´Ü\èi1¬ ñ}(À¤xÂ[ðp8L±0¢ñeŸ­ˆçÌ6½,6ü%`h;Ï‹ÔÎ`¹'±U¥Ë<_3´¤xM>ÅVy§Ñï§´ÎÏ@óоß?0m°U¥«ääAü—”)¬W‹n”E¬ßìØ½„ …QðwAÝþ‡,Â:,açjt™¡ƒwJøæŠXW•(båtT‰”)èn˜¾Î¯qÛLÐÚôãlßZLÐÊ`ZvA-&èm Ózj…Èý:ÀÓB-çÞÝíÚÙ €0 DAÈ á ôß+ÞDH,5ì”ðä/ÛŸ}DŒ–Õ:êu3¡M)Ä”§Òj• íà! ÖÜs1¡ë„·–åbBwCð½–å* ºHƒkµR¶éúúuç}úÔýïî£ÛÝÆmWwÛ­Ý­µÚbZñÒBªÐjP¡%ÈE¸Ø "D² áÒp ·TV%HG%\R Â2è`ÇKlSøþßï;s’3gÎ93Cf’Éä÷{žßsfÎ9ï9gμŸó{oßóz qqñÜsežtÜóØcá½÷ÞÏ!ñÅÏæwÞyNvðàA444à·¿ý-^yå}’_ÿú×X²d Ö®]‹ÚÚZ¼ð hmm…˜˜XÔÈÆÊ•+±}ûv¬_¿kÖ¬é८®õõõš«={öàõ×_Ǿ}ûôr×®]šGî“q˜_~ùeìß¿_CMóÍ7ñ»ßýNCí÷û5Èo½õž~úi9rDþE11e˜ ž:u úÓŸpòäI>|XóÓÔÔ„?üá8vìB¡ŽÄï¿ÿ¾^ƒÁ®Á̃8Ù«¯¾ª!nnnÆ¡C‡´óbñ›ßüK—.Å_þò ôSO=…–––³¾‘pXÿ¸p[ûY¤nCCujC½<äËïèÛ¶iÓ&ìÝ»WƒÜÖÖ†?þX/ÿøÇ?j–Þ~ûm?~a•ç?øà½Kn7ŠÙçBåŸR~AÌÏù'•Ÿós•Ÿ£=˜ *Ÿ*\ÒùTa´f„ž:uª†Ù 4ŸBibŒŠB/¾ÃKªÓ>FyJëkèåÙ _~Gß¶mÛ¶ébs$Ñ ÿùÏÖK²Á,¡eÔþè£ÐÞÞŽÓ§Ok†¸ÎóE17 þ” êD “³ 3OÎ' Ÿ} 7ËùUUUè &è¢ö¯~õ+ zzÖŽf郑6ý9à/U?¤‘tŽÑ†*õ@((oÌÒßÓ†êŠýMYÎÙþbÝs Ð03êÚ'Nè’-ÙaT~÷Ýwu4&ÌgΜé€Ù(f+@/Q~qÌ/²DêD S™'6œez–õ=ªÁ>pà€Þ‡•{Vòç΋—^z©K7"ÜàU?¤6cMþ’bTÔÖÂË^XrÞÖRÒXD/*-C±Zv@K£nН(ºOaI9šÛ:¡©//é( û;ŸowU羞‚Ÿ`Ü=(õ:/:Òˆ’‚"Ô´´%âw^”¢¬ºÉa»õw¨Ç[°Þâ‚Øù Q^Û™¶=Ô_IaǵW„¤°­[·â÷¿ÿ½†™‘–œìÞ½[WOßxã ]ueP$Ðý¯ý«ÌŸVþ7&¨Ý€>7¥b6ë±,pɧ ‹l½&Ü›Ån>…ØâM ùTJÛÚChPðø+Êt¦ôÖ™ëÞTÅ€,©¨F}c³zš5£„¸¤M-ͨYd‚¹#My êk+PÈýKkÑÛ^S^Žº@3Z5z[im‹ãùN8‹ËQßÀƉ„« FŠf±þLø]ö×Ùk²ßÑÖÝ^TŽ€z6T{£÷§>Ô¹ÍS‚Zõ;šëQ×’rÀØŠM&ÈÍÎ;ñì³ÏbÒ¤I5j†Š#FÀëõbÙ²eš£ÞÌ:´©˜}™òK N:˜ùôàIÞ ¿«?óÉa†›`3Jó‰Ãî+VþÓ6•1}*Å"TiUÚL0³N]TÑ­"r¥:Šâmzsd®Pð•Öt>E*M)ZâÚ×ÚÕMlA9‹¶õÔÄóÅߊ@ŒÁj}^@^hSOvI·7r{AÜv?4EU8®·yPÕÔ&ôä˜12³5›Ë±MÃ7ûOÅúUâ‚›jðÉï¯Ãî¬Âu÷xqÇ Lœ8Q÷l™`¾Bùå@›#t'ÌÉŠÙ ýFÅœK ¶jFkX´¨©©éÒÖù,™4Ú(Tˆ˜ ©°Ô«# 03ÏTñnò—˜À £ÆW+ž$DuëùŽ6TyëiöëcÔ‡a³ûu¦¿]ý>” Êñ¶Þf®ŽˆåŠmÙ²E÷)1 ÿtÃ|x®«ç¦Í8ïŽqÅàWðŇpõÈ]øÊÏáöŸ”bܸqºdkîšRyò3& /³m¹;£s*0^6±³üOçg;° 5#tWaF[£.öúÃ0;i‰F,•ÉMõjîS˜dgNoªbdöê¢p¨Þ«Ó×µDÝü¶‚° ̪h]}8³4QR»µd×™þövÝÇz¼™«[Ú!–{0O™V«¿ù,<_U {+λ«ŸùYþ±tþmÂø/ï>ô›¢|ÄR üéØ={¶îö5ÁüÙÐktbtN¥˜MhÙ©ýá‡*ÿ@—ïùÝl>ÌíhVõ‹P„™² ±Æ&kd6ÃÕÞRmð)¯E0Ô Ybt­(ŠÖq!õ 5¢”QØ«;ãÑ¢A,R0‡lô£€õX_}G}ÚfFⲄÛcðDPkx*7=xªËŠPä­ÑÕÇëŒá“þŽpƒ~°ùju£_(P­¯µ¤ºYݪ€n,óùT}:‚p° éŸÎã ‘÷.€ç_«ñ‰~›pî/âò!;ð¥¯áº‰ûqãŒÃè?÷8îZpwWÅ÷†NÁ˜1ct]ÛTÌþ;åŸs:1:§3[ÛòG±&ö(ÔÚBM Ó‡9Ö·jêg.ó7&€ÐXUÚ±A©eºžèLÈYTÔyÜ¢rt46+HJ:Z§Kà+‹îçk;ž¯©º¬£E9ZToGm©'®!¬ã!¢ê´‡ë,-ˆðî¿C¬6…¦{S[Ÿ­©¦ãâ±´‚‹õœUWWãš~‹pÁ ›pãÄ~0{?¾1iŸŠÈù(~¸àÜçÿ¯~^s÷üïf 6L5Áüy Ðæ:´5:ŸŸR1›­lìô6:¾Ñ,Û€Û›rVÅìv¶ä…T#ÀÒI¦"R8âø€ÐÅl}l»}¢ë£q¶‘ŽÏîç‹tŒP ÁW^òëŒ5¤Y sþת«9¶£ãÚcý™RÜÎ{þùçqñµ+ð­ÑðÖÅäõAŒZq 7L9Œ¢y­ìÿ#7ã_žx(]ù.† ¢‡H›ŠÙ_pÚ£EíT`&ÄìØ6Üñe÷û*Su¹Îœ‹ÀÇßÎÚBuÑH]JïºÊ=2Â+ßmÅŠð|¥VÂì­­˜±¹¿\wß™u…U4> /@•þ€Y*L}Zöhù‹ ?k*n[£óI‹Ùìj2lÙfFi éykG°¹ ÁHö¢UDÕq›šCi_WH]WKXš óÙXÌö\¿cü‡1ÿ…˜³ý¦o¡è™ †øOaÌ&`²ŠÈOï*›ò=ÀÀ±|ùrs1;³0SªÕ¯_?\y啸ꪫ\ûp_VâÅÄú<Ì×0‡0{›‚y‹‚yî1ütÙŸ0zãL~% óÂcÀ3oF#s—a=³˜X`þêZŒYzÏlożénW0YúFmˆÂˆq«ƒøÆÔ·PTÆàcäVà‰À •½;£03]ÖêÌÝ£gv³hë¯7‹­Ò=c¢[Î{˜¯_‡ÑÏÀÌõÇð?kaôÊcøÊăøNy+îYü†®ƼLÜ Œ{% óªU«²Wgî=sòLïKOÜœ‚¥«OδžYtËyóu5>{?f¨¨üÄÚ£³ò(®°ßž}w=w ÷¯QEíñ¯*¨_¬U‡Y«3wžÙ][ÌÑXÞZ']²‹Þ·­ e…ð7ÅíÍ(+Tß4Åé“K´ÁMwl·¯ݲXÌV¯^K¾¶ ß±ÓÈã«`ä²#(÷ §ÆçÀ}þ1\EçÑ è’%ïࡇÒÃ@³Zgξž9Em±.ÙMï‰ 6:ÆM›¾G,úäp›»î8ak÷µè–ÅLF¾të2\|ÃFôŸü:îœs…SÞÄ5cöjÅwgÁÝÿÒC:ï¯þwMÝŠ²²2ëØìÌÃÜ-zæhŽ·×»è’Ýô¾‘6 ÌqßãõÉÉõÑñû'<ŽD·,f²uëÖaÐðeðüK5νq3λ‹B‹Wñ¿Ø¯N ßÔý¸mÖ[0ÿ˜ZÜñ‹™ºšÊWífµÎœ}=srm±“.ÙMï¶¹¨ã{zºb; d<Ì¢[ë´ 6 rá|ù»Kàù ðÜZ‡ ü2>?t'®µ×?þ:¾5éMÜ'Àœd¿„ù ]®1Aëü¾‹6ÙîØm=T³Øß€PK@ý‘ØÖêE3Ý'`Î[=sÄAË›l½?Т®/ˆ:_aTi9Ù~‰ó3;_c‚6ÚMcmwì˜T³Ð[ƒ ËHOÑL ̽ZÏqÐò:¯¯Š›€.¾Øj‚9…ýâçgv×\§ªMÛ[m¯ñvoËël#³h¦ûÌy«gŽ8hyÝ×ÛO|ž™“ï—Ê5&×F›4ÖnpmaÔW”:FHÑL ̽[Ïì¤åM¶¾¤ ÍáÚ"!4©:`›ÒT÷Kå­Zg7m²̪Ø^Wרg¿ 7ùM0‹fº/œÇzfg-¯ãúæÚhÆ4\GÄNè RÝ/•k´j£µÉ6Ç6@2~GYugÝ]4Ós>é™a¬³Õòº¬W–H[²J`ªû%¿ÆD­³›69ñ:Út5&ù¾¢™Îo˜EÏÜ'M4Ó³è™óÄD30‹žYLL`=³˜X.Á,zf11¹/é™{ÊDWÜ×î‡è™»d¹¬U]q_»¢gNˬâvêjµuÓùÒK+ºâ¾u?DÏœ†ž9QCÌ¡%ð7½…ŠâBxkMÅýp=Š Š¡•~Žæ®ÏÏ÷‹ÜtÅ.óFwèëëQÓykV÷ ¬ÀµUÓ1BLï[ç2wµ­F9YºäÇuÿ½¢³=szæÄù’;Ç<×{ LrFc¢9Bnæö.ÎÏl¶dºb—y£;†pê1Ö5¨«ñudâÒªZÔé‡JêÂÑû–ÒÜÕ å$é’nOí÷öeµè™ÓÐ3'Î—Ü s[³ß¤ ¢,&&pÓ0§=?s[MêÆÆ@Ã*³q4fÒc¹ÎÓ;WÅï[ªEÐã¸ùÝgšüÎ}îj»{çž.ùvËÑDg;0÷F=³ÝüÉj¤|Œ M ì*Ó\ÎÎætçgnk²9–ºNû9£#Ia6ϧw6¶™¾ZöuŸ»ÚþÞ¹¥K¾Ý ³è¬3 sŸÓ3»ÃÌ¢u±.š•wÝ4Ì]Ÿ9­c%™7:N"™$Š'Ÿ»ÚþÞ¹¥K¾=½ßÛuÖ¢gNGÏl3_r¡:} súó3;[R]q’y£ÓÙuîj·{ç–.…í¢³ÎÌ}RÏœ0_rœN8?£rA|4qÖ0§;?³ûOJ¦+vž7Úò;b/û+oŒ/vWÄZ¾“Í]mï’¥Ka»è¬sæÞ¬gN6_²CìtÔ0wu~fûc9üb—y£S3Sq¸½Íå\Ö{—,]ªÇMÿÞõµè™sÊzƒV8¢úÊÒõ–,ÝÙ·7Ý»<…YôÌvÖ´Âíªk FÚ3œîlÛ›î]îÂ,zf11YôÌbb¹³è™ÅÄfÑ3gßrE¿› ×Ñ7´Ý¢gî’‰ž¹w\GßÐv‹ž9-=s.¾¡í=³è™‘i=swèˆEËœC0‹žù©gî±h™3³è™EϬ-NÏÜ :bÑ2çÌ¢gÎg=svuÄ¢eÎ<Ì¢g=sìw[õÌÙÕ‹–9Ç`=s~꙳£#-s¶a=³è™mõ̙׋–9§a=süñòMÏÜ:bÑ2gfÑ3gÜòYÏÜ×ï[Ã,zf;Ëg=s_¿o¹ ³è™ÅÄfÑ3‹‰åÌ¢g˜EÏܽÖ]z^™º·Â,zæœÒ3»]KwéyeNè> ³è™Ïæ|næv-Ý¥ç•9¡{+Ì¢gÎ)=³q-›ãÚèyE7,0‹ž9GõÌæñÕ©êyE7,0‹ž9÷ôÌækIMÏ+ºaYôÌ9©gއ9=¯è†fÑ3礞9æ”ô¼¢˜EÏœ“zfóµ$ÕóŠnX`=s.ë™ã¯%™žWtó虑Ûzfûãº\“è†fÑ3gÃr]—+ºaYôÌ)Z®ërE7œ¯0‹žYLL`=³˜X.Á,zf11YôÌbgc¢—N3ÝŽ;ô¨H ’¨:äðg˶%l´A±Ý‰½A€%z朞Ÿ9MôÒ©ÀL~öîÝ«yaɕÞ9ƒà²ÑØ™Ÿ¹ŽQYôÌ9¥gîÊ\Ι23¨±¸ÌW;wîÔ a¬;³wˆšQ˜sÉÆcFnºè™sLÏlµêÝÚU¤¯¯(5E°ˆíI¬÷ÁM§±ÊBÝ`½tFmË–-º‰@³!ŒÑ™ug;Mh¥ÙæÄϬ¦²HN¨EÏœczæ¸}]Î U­¨«k‡X‡›üñ0ÛÃzÜtÊ0Ä$–¢—ΞÆeË–¡ººº£¸Í6%ÖŸ÷ìÙ£¡f¤fñ›KØXÆ*jÖû™EÏ ›ó¹ÿ$뾎ç52ºñÛʪ;î¬Çp¸Î:åÄ{RÑ¡q½t6_ìg^´h‘)É(½uëV¥Yô&ÀŒÜl4&3l=sÏÏ¿¯ÓyÛU´ŽØÎÕl{ [ͱ›N9;#zéŒÁeôe4^°`æÍ›§Ç`¬X±¢Ãù}þüùX½zµ®;s‰è™³b}]/,z鮣.Çd³¤ÊúðóÏ?ÊÊJÌ™3>ŸO°bÄfÑšAðÌ™3™YôÌvÖ×õ¢—Ùh4fÃáfƒ‰ÙÅú1y!_f˜EÏ,&–CÆ:3#r´Z tlæ(0óíŒÃ,zf1±ÌÃÌHL˜Yr5J±—aÀLp 9a>}útöëÌ¢g;;˜9"’õafÂʆâdÅlÑ3÷:=p>›¹Îlô/#XµjUÌ„›ë™¹ÌϬ­·é™EÜW`6Gf–loºé&=ˆ„Ø(fwKYôÌNçëúñDœß0s„—æ‘#Gj˜xà-´0ŠÙÝRg=sêzfыƣ5Û€™ÅßûÞ÷4Ì7ß|³êÉbv·Ö™EÏœ‚žYôÀb&#æb6!½÷Þ{qÛm·uÀ<`ÀÍ_è×-ýÌ¢gvÐ3[G¢³ÀlŽÌ£Í¨l†ù–[nA¹ bÝZg=³Ýw+Ì¢K„ÙÚ5Å/£ŸÙhͶFfÑ3÷°žYôÀb9³è™ÏFÏ,z`±ìÀ,zæn×3‹X,a=süñº¢g=°XWa=sÆ­«z^Ñ÷e£n‚$jØ¿¼nÝ:=ƒ/"X¸p¡½råJýâ?öñõAÆpiÑ3gܺªç=p_¶œ¬3‹žYL¬Á,zf1±ÜYôÌbb³è™³g™Ö,‹º/À,z朴Lk–EÝÛ`ι±Ù¹©gîŠu×\Ë™Ö,‹º7Á|¶ª©<Ö3»Í1ì>ÿ°“>8Q›ì|þôæZN®YNøå¢ÎK=³žÙuŽa—m.ú`;-´ÓùÓšk9™fÙj¢Î[ëÊ›FòVÏ ×9†·¹Ï[ì¤M¶;ês-'×D[a¢Îk˜sò`=©g†ëÃÎÛ’Í[™ûùSk9¹&Ú ³h ûÌé¾3oõÌpcØy[²y‹ÍP$;ªs-'×D§·¿h ófsd¦³ñ˜UTBnç66‚q?ƒ¥üÔ3'™cØq[’y‹ÍÚädçOu®å¤šeÑ@÷ccëÌäÙÉÛ˜ØÖDV¸}Ð<õÌIævÜæ®ŽÓ&¿í®§Ny®e$Ó,‹º¯ÛÌ0b$VG9‹Ý¼ŒÎä…q—ÜÞôÌgkÎúàxm²ûùSŸk9ͲÓþ¢Î[¿~=öìÙ£K¬š—Åk6€q¥9:“ƒvýŠž9/L4ÐùbwA½2û› 6»l aA¥‘&Ï æ8‹Ë]»vu½ÎÌñ¤,°Ÿ˜ÎJììæäÑœýŸÅó×)¦gF¤¸~Æ :lÞ¼¹Ç¢~^—Ì—ÌüÖn¥òåjݒó¸c5ëý˘¦ò Æ>×,és }YUôÿ­|øüƒøvÙ\üÝmð/÷÷cÊÌj 3Gû±˜Ø]¾cÇ]å£óÜ”ær௅@³A1·±QÉœ‡FZ;ç6«ó¡`·ÞéF0 ‘¥®ÀÜå:3‹Ö–7>!vî܉±ã|ø§›+áùïÍøÄ÷·ãÆÉoÀ[sOn>ŽÙ[”omÅÌÍAý¹|[+æl;Žg¶·bþ 'Pñâ ÌSËgêÔ²®Uù ÌUÛ¸÷Ÿ¾)ˆ'é±cIúžM?S-gm‰}VîÛDÿ'÷áÜþuúÿÿr‘‹—mÔu;# v‡ÑïÊÚ½{·>?gݓњQšÅã tŒ‰6ò²‘ŸÏÉœÇJu_3/t2D–z fBËz£°ÑÁÍÆ,^гÏ>‹o˜O?ò_Ä¥÷½Š»UDž¼>ˆiùgïXNWþä–VÌÚÊÌÂÓÛC*#…tFš[B¹^BmgFiÅ´ Ñ´“Ô±|›$}.¤ç:ßFØ´îî[p—©ÿÿ?óÁÀÒ$6Ú÷l;ó"Õx<§Ql&Ø 6¼Fi·çÍ›§Ûs(Çe6za¬ÎÊHn·ívë¹?Ó9“ì!²ÔcÅl£ŒMçÆ“†c®ùœ4i¾pkÎ)ªÃ¥ƒwàÊá»Q8íF­8†Ç×¶â‰õ­ø%½¦ÞõQŸ¼á¦m aÆæfn=‰YÛNbÆ–¦«ï>ú&îwOÔÇ„5Ç1~u%}N¤ŸÈÿT­§O\ÄøUÇðýYñ÷Ãwé9óÁÕw®Ôð°¿”ê9v±dÛ ù-ó(ÏK°ÙÍÃhÍ|Êâ5«ƒ”àVVVêhÎnc@†Ùy)G¤‚ɺNìÖs¦cz»íd‡×g4€õX™È›ÃNk>]ø4äÛDF… n¯Å¥?yÿoD#®ÿ:þÃ{7L9Œ~ÓZpãŒ#Ê[P8Ÿã–òc¸­ü(úÏ9Š<}wÎ?Ž{*[1`~P¿}n·Í>‚[f©tÓã[*Ý7¦¶ Ÿ¤Ï‰ô…3Zbÿçaü÷äƒø†÷®Ÿø& Ê^Óÿÿ¥Å/ã¢nÖà0㊺l»¡Öc?,Áæ¹™G©¥Yìfq›=,sæÌÑ0z¦5d†ÌßT-/  c%ÌÎ|»õF¦çqx<£«–c-x}\G–z´ÎÌÄìÌæ 0ž€,Î :Ÿ¾§WÛ©@ Ðw·Í9†¢y*ƒ,xwUžÄÝÏ…Õòüè¹w0hñ)Ü»8Œ!þ÷ð3ÿ) ]ñ†W¿W¾û—½‡ÁK£Û- ë´*ø}þIܱ@ÒçBú;¨ÿsá)µ-„;*B请Ì8ˆ~SÞĵãöâʇpùÀ-ºÑ‰QÙh4ͶÃ…™W 6£5…=|¥f+2ųÏçÓyØì7P­duë~t¾×Ún½]z—¬pÙ!Cd©GëÌlHàñ©Ç' ‡šñF1W ZŒ/jÄ7'ïGÑÜ£ø‘ú³û?ÄÕíxpu;ZÓŽ¡«ÚñðšÓøùº3±î4FmÆl<ƒ²-À„mÀ¸­ÀØMÀ#jýHå?_<¤ÒÞ¿ê4¯ø3ô9‘þÁ5gbÿçÇøé²÷Q\¥¯¢ÿìC¸Áû†Ê»QpµŽÌÌ'ŒzvQ,ÓÎÈÇe‚mh¥ ‹ÜŒÎÌÄ™o¼¡*‰×ghïé¬PGÌnìcv¾×În½9Ãã™uýd‡ ñ:z´ÎÌæ^/ŒOAª7øäóz½ø¯A“ñïã_ÓOè/ aèÊ1r£Ê,*£<ª2JÙvµT>¾xü%à—¯“wÓ€ÀÌÝj©|êŽèú'êÕ~/ª ö0Z¥©Ž1VÒçDzþ\Ïÿu´‚øjµ?Œ»+Žàfß>Œ~®CçnVeÓyÖI 5[ª 4#4K,n³îÌ.!Ö™Ùªmhð¼l¨‘˜†ÝX|eßÁel3;û‰íÖs¦cz‡ÇãzCl@M–z´ÎÌb /ˆ7€OB>qy¡ìŒ¿³¸_h±n²ä$JÈãU¦ñªÌ2mÊ$ʧ¨Ì2Meœé¯³ßÊ•ÏS¿§ByåA`ò¹û€§•Ïz]e®½*Ýîè1&*ŸÔ(és!ýT.Õ1&ïRп…zøšp_Õqýÿ÷+}¾òJ]c¤44ºÙvs#ó&3<ó+£!ÁaË6‹þóçÏ×/È0Ä@fí€ù3#-_¦ÇÏVç¨2»õÜß(Çæg£ŸÙ(1¥­3³õ7Èh, óbYl˜8q"~pßH|wÔrütÑqŒR0?ñrä'ßTGe”YÌ(j9ÿ°Ê8-À£ÀâcÀ’V`ùÉèrñqà¹#*ƒŽîÇýgî|êª'és }¹ÊƒsEÿOßÞh”d}»þßû?¶ ¿xü)=|’E\‚Enw8A6ús™G Áadf1›Ñ]Bl¼âCÆîa`þÎcK«óa`·ÞœÎ|\£[ÊxÈ¥­3³77‹o=àkLxá¼@6,Œ7ƒ~6 ?6 ÅÓ¶¢t建¸6iGôiNŸˆF…§Uæxf4TªŒQÕý¼à@t£Ãl|шþ„Š S÷Jú\HO€}¯EÔ^õß–®z÷ÍØŽ{y cÿgŠnða#‹¯f5]¶Ý™‘ ³ÔÈú*û“9H„El |©™w 7ò²uéæŒòÉö1ÏxØðúÈYêÑ:³92[ûÎxãØ7{ölŒ3Æ Ã!C0hÐ 8P/‹‹‹ÅóÌŒ‡zeeeºQ‰#›˜O²+ŠfË!•†fžÅ]‚˨Ì`ÃhÊúª[;Õú9ëàéÔåù 1ŠÜ™ˆÌ]®3³ŸŽE'Þ$ã_æînã™O@6°‘¾|ùríuÃõ¢4Êgf±•ó?gþ`5ô¶FãRw¹ùÕTÌ£,^“10:s{¦ÎE˜Ó½66‚ýàÆ½ê±:³¸¸xîøYÃÜR6qqñÔ×h3Ôf°ÅÅÅ3ïY vÙã9Çæs€6 6Gjqqñìú§LÜï² ÌÐV¨íÀÏž›¶B|®‰×Oü+„‚ô s„IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-menu.png0000644000076500000240000001535312536324510022367 0ustar philstaff00000000000000‰PNG  IHDR²`¹|(L²IDATxÚí]‡—Å»]%#HÁgN˜ÓÁPQYA@%)ðPÏÁÊQPI¢ ¢Hô0 AAò主lš üõú~Ó_oMMwOwÏôìÎÐsÎw¦«ª«ººêvÕ­êê[ååå"Ý­°°P”••‰P(dØ™pßébÚ/#–eTUU‰t·’’QQQ!*++ÉØÿôéÓ¥€@¶r4²Üݦ«ZÌ¥¥¥#è¶SÃ222šhvŽf5k¨YÍêkVO³ºšÕ9c€\\\æx ׯ‡AÍ{dr3ÍšJ€n¤ºÌgµˆa(¦^éââA`Kd àòƒ†®+ß“Ý:Ó1»ë¢,qìeÓ€ÚR³æ åÖ9 f¿Àsäȱwï^QTT†›GØ¡C‡ ¿£GR7×ÈÉɧNŠ È¹¹¹”G7`C:‰®,äÀUÝNÀ<á¾üѺuëDfff”?Êí×_5Ê×#êåmv;|ø°[ ·Ö¬•f-07ÒiF=ߨÅc=† ˆaÆE…ýòË/vÇw~Ï=÷Åqs³Ï>[Ìš5+æydfÔiÌž=Ûq7Ð#DwŸHiËiMÒ‹ûï¿_ÜtÓM¢]»vâ£>2ü'Nœ(.¸àqã7Ò9r¹ÞÕôV®\iÔ»KjÑV³ó5;ÏÌáVÙO 7hÐ@\xá…Qs¸={ö¤0È»ví;vìpu?þøƒžn·@–[è?ÿü“z€À±âð98ŸÏCºÿ¸_ ˆÇ@5{à'§ 7™i†|=üøœ¾œO¸‘/³œ @âs@ žìFwš²lÙ2qà 7Pñ?~üxñé§ŸRhɹezrìØ1±jÕ*æL™Bç¿õÖ[ÆÀ窫®¢ô7oÞLEóæÍÅÉ“'# ^9V¥1­8² F5Ì È2p9r\y'‡ËvâÄ j<Ð’¢Ü^½zÑq÷îÝ) çÈùáz¿ù曩޹ÜfΜIõ>pà@ÈVƒHKÚõ.‘ÀÜVçÌ-õV9Ì•åx" ]ÌСC @xѵÜ 7Õ¯_?jiù|æÈ²ñ¶lÙBnL¡Õ­[WL:Õ8‡A(»»víjðà÷Þ{âüüóϽhÑ¢U€Ì‘‘wµh­†Ò=÷Üctƒ .¤JÄà‡[™³Î:K|ýõ×Q<šã¨Ü×ÊÔî]åȸvã\¦FêõÌÜL]ÔtÌ­(ʉó‡cù|9¯\ï|ðÕÓ#ôˆ(çþýûS½³¿ÕxùgÓÊür ÌhÖF§ÍuzÑØw £Ee/X°€pÎ9çœYvÚ5kF­ªe7"—AŒŠÀ åÝwß5ìq%£ðpmЙƒ ÊR¯^=ñÀˆ|¬~ýúÔݪ•š( Ë•Íé2çôd³t퀌٠PÔáŠ+¨§Â1ü¦¦Éõ¾gÏ:ï›o¾1ê­· d§ƒfG@ö›Zàø¾ûîO<ñµÝºu#?'ÔBvÃÐöÙg¶ÔBvc¤Ý²eˈÁ¸3€Ì]?Ç‘»éwÞyG4lØøµÜåÞ BæÌ™#æÍ›G†¸ ò|ªÜmÂíd¾ÙŠZÈÝ/ƒN¥*fÔBv«ÔÀÃ9ðçëšQ ÔÊüÒK/¥žÿò1ÂÞx㈼r½#M¹ÞŸþy:O¦N§ ÙÏY Ü$ŽÁ5Ñ’a$‹ÁüøÉ´š~3›ŽCÁ¡E–§ßКZ¹Ñ"›ƒðq+Ît„éÃ_|U _~ù%…a€gö"ƒM® x,–ýÔyl·@æŸgÆ‘÷íÛG½z2.[>Ç<„sòòò¢82Òž>}ºQïK–,‰²Ó—8Ž€ì×$ÇxÑ´ wy d>Ÿkå†ZLš4Ép«sÀª{„ D-À¯¹»]@ ¡R ¸1»Ùˆ×^{-˜\áHã’K.wß}7MÛq×›••et±~Îëú5·,?èl;wî¤ Ü?ǘ¡á0Ãa_|1ëµÞF-’dØ?þ(Ö®]k¸kqÔâ¶iÓ&b@‹cø!¬wïÞqÕ{€ìõujª-ãä))ùu<–ŸŸOÝo2ˆ¼óÜ.?Ìvi¢Ç1[?¼nör}k-äT]œh æÝ|r¼Ë Se'¨¿ºU_™–|«QŽœª…0Ãx};°Úo ¥©ý©S±Ö cÚ s§XP®ùcЬ2°°ÈŽ€\acˆª­"NóÈgµ(,Äëi¼ÞÅI€ë)ÂÀ.//µ±²À"¬ÔƒÅÝÈŽ€lWaxãsYò€P‹ÀŽœ"Æ__°©@–ÃQð‰J',ž2vL-ð†Ë-å+¿ììlrÃÌŽú%3þÎ;Äî=»Efæ²íÛ·kþYd8ÎÉɦcù?–ŸÝ¹NÒts-ÙoÛ¶mqÅw{}.«šÌ¿c «+¬ÌŽe?yi%»åןfDz_²ã‡?ûß ‰rZ`¹²²Bÿzº2¢u¶:–ýd3‹þ‚Ø{|»ë‡¿J÷ßíõù^üË?ꪒþ­ŽjaÁ‘Ãk*ŒnÎk·gOM×m<3·JÌÎ7Ì.ŽÓ²qrïNÊS>/²d3ŽìLNy°è¬ÂìâÅÊ‹p$úzNn7׈u^0ýf1ý†E1ý†uªÇÌÏÊp®“4d·×0·~NÓ´º‡X×SÍÍõÜæ3²Ï@öRyµ È^ýQ ò™Ì‘Ýt}‰ê²†¹á˜N©…—nß µpãv’ÏÈ>Ï#{´ÅºžìoWé^tnóë¡r3`‹çÞjáùu`^Í 5 ÖZ@N{ #½¥,+‹·ª¦Y"¤bµÖ ÆÛ#\íêV®\Aúq½™ÛO;zô°ñ†‹-//'Xk‘l Cß_(שSG4jÔˆTy–/_3â@S"Y@?þCú"úƒÆEàwß}Ka»™ÛOCùA©eÇŽÈI¦ø,ÒRøðïëo¿ývª ÖV‹W*6QÔâ²Ë.£Oúñ¯vkß~»€€[TThê6³Ûn»MÌš53î.å½´dSƒß_GZGŽª5t¥V™ÝÐH¸âŠ+ 7ôÁ :Ù)øCþ×^{-ɼòyì†ð @(¡|-„Cþ€|ñÅÅÛo¿Mº±€¼jÕ/ôp-\ø îx€üÐCQÒ¶m[qõÕW‹%K‘?®õŸÿŒ!} À@×áÏ?÷ äü?JûöI–*¬Ã= Œ í%ÓO>™å¹xñwZyŽ5ÊsÅŠŸ(lëÖH÷ˆ:Á5Pf)d?©è çÏŸOÝâW_}e„CÛ ª=…@ Ôj̨Ü(…Š'$«ð8þ×_Q ãþùG̘1ƒÀ.kúíÅ»‰^½^¦R¡ª%Ïx¨À á >Hþ£G¢‡lܸ÷éœgžy†¯±ºËŽZ¤faœ€p̘÷Äš5«ÉË–¿©¼zôè.6lXO×mܸ1™ãF–ç|£<ÃS^ÕZ´h!ÝC¢Ömû¾ŒÓO `0 ¤dåpj5P»´ãÈp£ByÀUO¤‡Ñ¬œŽœÆ!C"€löBäøñ£&¨J¢°Ðb¢uÎÏ?G`!žÈnœ‹t zÝðC°Ø㋦M›†–yç| '‘ãtëÖ•ÊBö¨!Y%åÉÖ ¾¦´ø¾q ¸1Øôcmµ¯ë‘ý¤»wï&Úy¥¾}ûÆÜ3$–0á?ü@}àÀr£û{öÙg#ÒÇŒâp8 .q;œ+mâ<Î'™D€ü¹çž%qC<,t3pîæÍIœ¥OŸÞtÈÊ¢Áðä”1¬8}Z˜ÙÞÜ\1oþ—~#Þi´ÆXZiÇqA-¢eQWPÔoT)X¢s"; í ¦cÇŽuëÖëÖ­3΀>üðCGë‘LA¬àúá‡ï ?h ÃOåº'~l¤–¹sçÎ’Û+$#fÇ‘UYW•Z mhãÞSÆxiÁÖ·C‡ ¡)³oÎÌl¸Öâ°ß~»ÜS§N3@ !”Xë(d´¦›6m2¬  €Â:vìHRòùÓ¦MÓåLÅÔ†›;w®d´Âò †JÀ­€èºeß³g—i×fF-@wdj!K½òu^y¥)ƒrwŠ®^ÕDVãÉúÄr7,S‹·ßFTôeîÜ9búôéôÏtºÏ¸¶Ü•<ˆ¨EÚ.ã´Ò°@ëÉ|˜ n¬Wv*bhÅ‘~øaR§”ýú÷ïOÂy<7ìTäÐ)cqd» Cëȼ•ý pÉÊùÑ\7ì§n pƒ9+ 3?çžšw<0¬½Ìa½{÷ŠrZmªn'“: n7²²VÓo,eŠ–­?¤b!<ˆÙ™#;‘õB-TŽì¤ÛD+j€Y ìÍk2G¶¢8R^ìž>}ÍZÈütFŽ'˺ªÔ‚92ÎÅÆ:èñ0u?èc/>œ‹‡ ã†É“ÿ—>-5j$=ìwÚ.㌥ù†i1€øóÏg¸ÖG¶›GÆ>²üéK/½D›ÒÔV cË1€y…¾Ü”)S"{* Í€Œi<è6£ç ïR!Å+6„‡ýo’¾ÅÃÍZ2áÞ½{'ÑÄE¾ c zþœ¨Êa4z öTŽœV›ªÇ’ÉÅ1âú÷Cò º¼°ŸÒZN–q:áiE‹émgµdæ¼1c&aËé8q”f†Ì$¯ª¯Yª=G¨%6ëêò°ÇÏŒeœÁ^ÔµI\0ÑvmªžêúÈÁ2Î`gäxgæ^Ô©J/¢©Ei°9í–qzP‰Oy k †éd§Ô"•iF$µ%eƒn;m¨… §š©ïðU~ìu³ïÚ"4˜*ƒ@_7UB¦ýÎѬ™f-5k­Y[ÍÚë ¡+ ¬ŒAÜ^Çdk£ÍtÌ6RÜX³¦:Ò[iv¾fí0X²AÜNÇd+£MuÌ6TÜHoªôzó}¾Ò2X²[âóuL¶Ð1ÚDÇlÈ õ¦º© ˜ ,Ùfâ¦:VÙú*èWÁÜJç%m ¬¬µŽAÄtÌÖS\_GxcÌÍur}^`Õ€µÔ1(ƒ¸±Ñ›¹žfn™›(€,°d¸‰ÔWƒ8#£® 亘(­3:°À’mM”V¸Aˆ32ê¨@®#Yt#=¡ÀK¶52p5ˆ32Îþ@ñÎ%õ_øIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-progressbar.png0000644000076500000240000000214712536324512023753 0ustar philstaff00000000000000‰PNG  IHDR¬ C“{.IDATx^íÜÁjGÇá_UõÌ®,‡Å>9·@ WŸ!çœü 9ç=òh9çîKÀW+YÚéª rf=HËzHXõEõ ­ÛŸ¢5+?~Lþ#]·Ûí„wçÇßþÄ'¯ðÐqD„!UÀr2! ¨*’Ñ>Ÿ¹Êüï¿Þp¹ºwïÞqªr{{ËÏ?}KV'¦@B0•Ī"‰•<$Á4Ûãóoß~Çåê²÷úõkNQ>}úÄßï2²e À“D@LˆlϦB’¸ƒÀ*ó¯^m¸\ÝCöNU"‚ë… ! 2@¯" E<3AEPLÚçï'Hr•ùR —«‹Dä ÈV0ëGçâî€@B x‚“J›JA2iAC€LÚ¶”v^cþ²u-{H+²U;s€Ðdqwn÷I­àé$JÁØk‚À ‚D"€jb ÔXgþáºrñz`uÔäà(´àÃãžÉ¾N€á –ÔÌ`kJ)Š©£¦D€ ìë:óÓä\¼NgA]’ÅÌøð·0y~.w#2˜¦ ˜¢ *0–`@Fƒ)’ È\g~.WWkv^ÁL¸õêpï®LL5)QŠ¢µÂ¤‚ˆa’¸+5“ê ÉóÏ#°ý-.…£ ëî Û-c*æï r ˆQL±Q°¬fƶˆ)ì=™j]e~yú6‚+_¼Ã¾|ùRªs_‚€{`¦Œƒb’ ¥8›±`›Q¸»ÆP&¯«Ìo6{.^'³°*4rô–ÀÌøfWð J㸷RíRÀR(E06ƒíVÙW˜rùR‚ËÕ™ó°ÎºÌ·lxñ"`›BÝÃÞ!$`@6 ÃF aS@° ƒ¯3¯ª\¼î8¤Є֋»³½¢¥À‹ö¬ÚB6Œ§4{¨¾Î¼ˆð ô;l³³Ìê°aG…H¨’ C¢ ¦PUZ¨ ¸·Ÿk®1ÿLÛ)Èrµ;,y5‡t¨¤@mg5¨Ãû}¯ ™uù÷ïßs¹ºÍfÃ©Š™ñKüÁÍÍ wwwüŸüõ¨Ûn·ìv;Þ¼yÃ©Šªruu…»·Ä¯¬ë†aøœ9UåTåaàúúšˆ`m]§ªŒãHËÞi$39Ùº\Èìù]‡"[_¬,ã‘DÐv>_×-„5 –›€, ñµBÛu³°æBÑ:,oØC_þ³Ùùº.f9kýÄ ËlË2ëá|–®Ë…Ðæñâ„Ç®:‡á<]—'\ –éZ8σ+œ§ëò‰Åâ†]çB­¯ë}Ú†]–_9°],çlXò‘ ¶óyº. n“O{K0ë<´g꺓¾ù…/Ë¥­»Âvíº|jÿíè-“ÍÇéIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-pushbutton.png0000644000076500000240000000562612536324501023640 0ustar philstaff00000000000000‰PNG  IHDR],´§ ]IDATxÚí› TTuÇÙ,-wk{lu:e§Í¶í´nY§m÷låfyvm³Üö¬ìö0Ó6™hZz ޱŽ"òPÀÐ@P@Òp†—2"/y ÃS2ê¬,¿ûÿÞ¹3—;ȬÔ6gÇs¾îÿçÿŸÏüïï^g.çÏŸ‡;WñÏÙx8{€þsŸÁÜ;€Ó¦>œjíEMKˇä!ù¾séýýý¸\º{úÐnîEC[7ªO›qô” ÚȪlCfE»Ë‡ä!ùÈI^rÅϸKç[L=Òdòk:¤IîÑŸEœî "óšvÄõCò‹|ä$/¹Ç"~\Ë Oµ¶®~T5÷ »º»¶B“Q‡OÀ{[n(¼•Gàéç0óVjÐýžÞZ‰ƒ<ä"9ÉKnò_®äxxx\'r­È$9å\#rµœ "WI‹ðÜãˆÌªÃº¨ ¼þ^!|‚ Ð|\‹=‡Ïâ ÁŒ¬r× çOòøn6H|äŒ:T/qE¼9YŽUþµ6òGŠ­¤”7š‘]Õ†­)5Xâ_„•%ˆ=Є̒N©êAÞñ^èŒýкp8r‡\ä[ùa‰ÄKnòÓÃh¥Fˆü‰ÈåLV¬ü‘âÕáE¤út—tÙºï8Þò/ĪÀ2$e· ­À„ô’.(ëÆþ 1ÑÊ^dT¹n8r‡\ä#§ïG¥7ùé>èÅôD®·‘?šø je¥¡½y5&Dd×Á7¤¯®/Æ–äFÄæ¶bgA'vub·ÞŒ¤c]Øs¬{K] úFü+:¡ù&»vΟä!ùÈI^r“?üÐ)ɽ¨•!òF‘Ÿ:?R¼rÞ«–7uc_i+6&Uà~…XfD`F ‚sÛ‘gB\aâ‹»°³¨ âgüÑnûäWbù²Å˜âáÁ I™òèlxn)¹ï÷•Ã9Ò|£Õbº˜ÓßcíÚ9r‡\ä#'yÉM~z z¡•òò3ñ7*Ä[KÍðjW^@yšnhE@J^ ,À#~âàMÊn‡æS!=ÏŒð‚nDˆDöZRÔ?”u^ÏIŸÝXj×®–HQ?ôݣî¦5ÚV òzÑ¢W[€_r¥Ç6Û·Ë ä!ùÈI^r“Ÿèƒ^èGyA¼·ÊâoQ?rµ+K˱Q§¶ˆ{Ö£x~S1~ps·ña–XýGº°=¯‘b’QEçYÔ' ûU< §³¹Ê§¾À¡¶‘ ŒÇÃ6¥çñ7÷b«µ?Og¦>‰W4{1ûyŸ©Ë°æ`ïÐë7Ç%àñ©Ã¯÷øc8B¤¾v¼³lÞPûÃbÜ¡qu¸ŸÒãZìæÂù“Câ\ä#'yÉM~z z¡e‰Ǻ]ä6âG®vÛóó‡|£(ù§±6"ÏUâé “˜R‡WbšñfbÞJ2áí”^,ù¤^ûà•ÖoùÉ$ép¯»k‘n¸M%óWûã‰ÕÙX[Ïw–I‚þjãYÚóàc7æ²Ð‹Ôi>ø[h „Á\Þ}ž‹ž}Æ ÁuX¨IÀ]b¿i««,ã~¢“¶ghZìç#ÏŸ<ä"9ÉKnòÓ}Ð ýГBú ñ¶5^¹Ú'Ú•—Ú–.é¾4RÛŸàTÌÒÔâ¥ðF,Øy‹[á•l†ïþ>¬Î<‡UçñÞ¡A¬Ïùk³¿´$]_°»—è‡ÛFɪVÄ¥Cœ›˜µÝd7Æôw ò~ݘõóá1ßX2C@ÎÀ«)ŠñÒ øߌ™ÑX_eñ:<ÆíßEÃG÷nÛãÈáüÉAr‘œä%7ùé>è…~èIQ^ît ^¹Ú-%Fí"º#¯ «C3Åéu¯ÅµŠ ´Á'­ k3ú°.û¼˜èçøàð¿±AÄ?ÿ"üò¾¶$Ë ­ÒÛè†ÛTâ½-÷È«ùžéOK?gGõXús RßìØyÿÌ™.ö[n~Ÿû{¾Î ++ÆÍ©ÆC6%‹¹ýÞ_ãž9»ñ¾í¸ÖãÈáüÉAr‘œä%7ùé>èEíb*Ž5E!þV›2£\í“TkúÇEÍ¢†é° €…»Ûà•Ú‹5b"ë?„ÞWÐ]„(sؤ‚J€À¡ bÞSž‰E™mÚm¢3âAÿ w™ÜV/m¿°kPî¯ÂTi{`hÌ—õÀTï*i{…÷Liü¥Ú‘ã>BÙ¯ç;8®r\K8r‡\ä#'yÉM~z z)©7«Õôÿ^:oüùùò²³ø0¹K#txSÔ8ï´sÒ*( ¿Å¦¢o\„T[ À¶Êá¦í‘WÚL¼%.ÀðϪÇÛ1í¯ñ´ ÓDÿ}KS±>·óΕö.¬Ù2†è¿Ol¿”4 )ÞÈÇÄþ¢6s{³uü?l„wF'ü3ªðFp6‹¾Uë,cÍ (†?+ú–ˆ9lU×Οä!ùÈI^r“Ÿèƒ^èGù$§¥«Ý§çT´@s +B³Å)ÖŸÌAlÐ~… ±"õ–I†ˆ ‡Va'€£}4™¹xò7ö§:ó̆b„/ÀË絡¶‡þ¹sfZ~ÿKÊ"*ª¤2ñòþAy¼AÌcÝ¿¶jhüM ѸÓvì™ñ–÷õZ»Øþ¸ÏË}#Ƶ„ó'yÈE>r’—Üä§ú ÷éW&Ÿ/”œê@bA=ü °8¼+~¿üKÒ©¸½zx±õ@\££\Dhi'‚Žvb[©¸=SôGUØ‹–íSƒ­ÄŽÆÑÆSäÔñš„/Žì3:îS 9¬Lä#'yÉM~z cu&ÕÏ_®¨¼XKL}[/r+Ïb[zÞ<„å 5ð+þšòKˆ8 D7ˆ‰6;Ï»Îñg]7œ?9ÈC.ò‘“¼ËNHüô@ôâà³—+“n½ V5™‘ªo„&¹¾‡°:¹[ª/ ªáìj¹Qê°W$±]ü4»n¤ù ò‹|ä$¯oD–ÄOô¡ö¹Ë¸ÔtëÇg:ºQRÛ†äÂZíÕaMÔA¼Ÿ¤ÇVC7bš/ ±óì鹄ä> í3× çOò‹|ä$/¹ÉOô1ÊçéW.ÝV¼þd+öêj¡I-ņø<¬‰ÉÁ†äBh OŠSÑŒ˜–Ï‘húÒeÃù“ƒ<ä’ø'yÉ}9áãRÓ•õ½Õ܇òúvd–6!öÓ|”r þ»uX“µa©ðÝò±ËgMè>‰‡\ä#'yÉMþ1|G:~ÒmŸsá}‹­HÓ7`—¶Û±å é5.  yÈE>r’·³çܘžƒ·ò¢VnÚ:{`l¶Ùågp ´©%–ìÓŸеMÙþCéWîKò‹|äë3/ãZÓÇòàQM³Y\Õ;]>Æ3]N?`ôÕtwÆ·tWîì©äÎÿ ¦»3ÒG<Ühùvc²ümÇ ò·7Ë߆Ü&z‡|)îŒ~ùoŽH¿N~g®—ß©›FߑªHŸ$ï \í7ɧŒR¼;Î> à@ºrµ«‰¿U>˜;Î>÷¢"}¢ÊjWŠ¿ÙF¼;Î>á¥"ý•Õn+Þ¶ÆßâŽçžet }¢øÉÄ[W½;Î>µ«"ýjñ×"ßgŸOw ýrâmå»ãì_b¨HŸ0Šx[ù¶oÀÿ{œû›#éW9o•o»òÝÎØÿºÎt«x¥|µ7À‘¢•²'ØxýÑSäé½9!IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-radiobutton.png0000644000076500000240000000554212536324512023756 0ustar philstaff00000000000000‰PNG  IHDR·!›Q:Á )IDATxÚí\ql×÷J …­ÐÒ MýgZ•üUU[WÍùgZ»¥©&u+‘JÙm.$(C-M‘¥53P×-® V(!Î43„˜€I1pàRp˜ \›ƒ^àê2˜4•!ÈoïÝíóùÎØép)ºH?åüÞ÷½ï{ßûù½ï=?Ûrùòe¨‘úâ_½x ÃÂç8Á_Äñ3cè3-£uTF«gÂÄ­ù³”‹–Ø#R™÷'G±óØ9ì8*H Ï´ŒÖQ“à&n{r§R„¨âØç8#Œùd;>ÁÆÈxö cM¿ úLËh•¡²T'­oÂĭƄȭ&vßÇ<ÜÛxÅÅüe»ñÌK=}äù#RvˆÔ%%“à&nr+©ÈQn ;Ž µ=†ß.êECKë»?A`߈úüç6sû‰ #ÉRÛ3EI! "çKÒãb´{ˆe „µm­#Ä<²¿U5¨$ÿ‘Û…L¥÷å&÷4i’ß«"y>Á _@`ÇÛ[ã¨yi'ªž ÃÑ>ŒMÁóðî ŽÂ»‹`‡€Mäÿ{[Î`^#Cdû‰Î¤KÛ8;zQÎ݇º$’TÔ9ÑîG··sëÜà˺„ñpZ-°¶…‹Ö ·Y‰ß­`¿Ö¥WD¸Ã oßÐWêË Â«ï|[Á4ÍLžOð½ÇÏa}x‹WíÃc¿Þ‹_¾2„ß¿ó)~0‚Æ-g±°ë34tñxùïgÑäAƒ—Ë+“xl^‹WG%]Ú;"Jða§Dî®°£‚ÀCêˆu…œ×"y-¢!¢Ùz±°?ÎjX*œ&l3"í£ *“t ù!ÀYAfé"ß—B1Í÷íæþ§Š±à˜cK_rßOpŸŠä…>ÉBøÖìfñüÒý˜ó2ƒéGñÜÚÓ˜÷þü¢ÑƒÙ>‡ô~¾ÈƒÖ† ¦7Å1§iϯ8(éÒ6è9¸´¼G¹[üqýå… ¹*›²8‚‰LntÕgÊ-–J8ñÌÒÜ^_…zG'\õr}P å)ÏêÔ"&Êò.b£ÊîƒÏQ«j/¡ëSÌ£¶kA­'fl“Á^[™‘­¬µ#Æ_ÎõÓåGgKUÆn'Ã!ÖnËèØÚ#~Ôæøa#{›¢úbSˆY{}%ê%›²,Ói#ýk‡P` ⇔ƥÛóÄ•_EÄJßÂiÉt‚ï<Ÿà½ƒgáì;‰§_;ŒGWÇ“«9üÆ;‚yçñàœŸd›ñÃã]£xÖÃãñ¿±øi[OÛ%]Ú=ÿ–œ4+:U6"¬¨r0!×Õ»ç8…Ì•p)©³>»¾–eà‘:l§ÂS£è‚p¢ÒÑwù#H$ýA’Vh䫚 2{-}ÝV/ßfcðØè ØEKðú6SŠÍJ"ǰ`™l•T¦ ­ÝZB‘t=E=é[HÈ4¡4~$‚¨§$°yˆn +Ñ—B1ÕØHŽ}U:²o¼˜‹¼ *rçƒZ:Îv?XŽE$“±[B¬2ñ½)¹gÌ0 ¸z—ÉÝs„ǪÞžZǯÜÃxa£ˆÆm—°ÈŸÂŒï?ž%7ynèÃÂîæoÃsë8<óÖ¤KÛ86<š]BÄ$:ZçftxÃÒ’ÅGå”eIGCCC wH¯[û¹œ%ŽçYt- ºÕèç³K³¥Î›ÉÝùp›ÜVwR?ç®&òÕÎL=à¦þX•öŠIKôlÊþ·…ùìrM—q*ŽL;QÚ®e„´|[?¸U)H1}).¦EÆL“ÛGV)&¼AvoÄ® aÛ0¶Ã~à \GoàMXÞ•Ȧ`{oŸ¤KÛHçÜù9¶_êP}gœäã.9'Œyr|È.Õµ3r]\Ê?kT9´jÉbr[Í~V÷øL+sÕ¨ÚÓÉw¥%Ø¥,Á6•ý„+–MµÄXºO¼ÝÜve¿« üPRƒœc¿Â})ÓüãÎ"bæŠ)¯Eøl4reÒ­9Ÿ0>ùø·Þ7áXqø0ÁCÏŸ½é}ïÙ°K·œ‚sðÖžÇúÓãØ|þ:Î]“°I¸ Ü8<‰q8\ÃRß)¼¾!$éÒ6è¥*‰”>;Z<~0 Žì€Yø•M‡¥<¬EÙÄø" ’~p`B)/ç-rÇ1$¿”ËQøÙ”A ÒmUÁEt86Ž Ï„X˜¡¯@îË©8lÔfM ñ™¬D‰Z¤œ Œ¡ÝRÈ-¢½Vn/DÚSÅôÅ8¦ùíß% ;zݸKÖnÃ[±“\úû®^Ç¡ëã8@"Ï=¤l‘kzw›$Ku¨nÞrÞʲI$“IðFg²d†á8^s6J6“dÇŸ>«© óóOªCåÄ2~Ø"Ùäø[Ó>‰_~lŠ8{Öii1Û¥Ù-¤óÿ‹!ì#‚ÏR¥'ÚÙ{Jæn ½µeolÚƒ%ï|ˆeë·cíGG°óÓ è#p“çWIY©£2T–ê˜×_M”ñã÷ÒÈ­¾ÇMÉÚ}€…«gË;BXâêÆŸì^ ô™–Ñ:*cÛÄmOní}îAöú˜Óè Ÿ‚{Woþ)>Ó2ZGeÌë®&¾†»%#wšàtc˜~Ƀ¿>ãÓO¾æ“ß}q:>:ÝÞnö7Ç›óšó›uWÞi !„9Õ†MVWŒN`oœóøÉ>›ÿ܇Òçg®ñë_ܦ×ó88Ìyòík}¹Ï³oùèãú'k8Nˆ1 cœ¥;-!„PJ…€m ˜çæælgµs˜òÕ¿^òùg;ô’>¿ýÍm⎠J¡ †(òøñû+|úûmþò§çØÚ‡C „"oéÐBÕÖ4”¦ó©é¾ÖL²‚ý£’ï3v÷Çüýo»ìŒ<~ù«!£¬æMU ŒƒR5EQ1ÎjÖoõøìGíùÝ^@mAY:žf B¡g‚Ê2oz3½É¾7.ØÚñè)t®‡ì½)ð\CàÖ4ªÚ2>©8:­…¢ì…|½}ÄÍ­ÚÚî*òõÿXB ,ËbÀ<ÙzÆç_m3&âß›cŽâ.Žæƒ´Â *4 (ªš¼ÒLrŸV¸& ørsL§<øó·Lv¿!Ýßf–BÔuRŠ»wïrïÞ½™Àš«šæ¿`t¬†2WQv}Œð:ÓÄ…F¹]+Pp8Ê-'µfœ)œNH¡àÄ&¸^€×¨bÍ,!„(Ë’,Ëxüø1žç ¬šyj®ÃÚÝÝ%\¿vª$fÕxhíSbx•jÆ¥ÂwLs¼ªH ( pŒ‡ç—xTµÆEÇøÞ¿k˜%„“ɤí²F£[[[¨ß\jîÖÆÆ»ÇŠRkœÀŸ•$¦ùA€k ïÒÐJ‘9YVâ·O5Çé1¦(pMè†$a—Ø:ÌBˆ¢(ÚÐjܹs‡û÷ï«™°ÒíØBÍ=%üøçاû¼˜(:nF˜Dt;ý^Là¹t:>¾§P@YCQøLÒŒ0pqµ&ô€7¯ptˆk4¡ãÑÑf !Dš¦¸®Ë­[·¸yó&³a53ªÙ.Ë\˜R펹q4"]‰èÆ Ý$¤ã+´¡E y®ý€,pŒ‹:¨‰•aÐMøéõÜ^ï°žx¼BXkÛ:?¤ZêLÙéh|m‰¢÷#P†(2h­PÆ2>)1¶dëá&ÅÎïÅ+\ë…\ïwXM|ßá*!„ðÅjì’¯Å`k¯¶_òàùé­v¹vãÃá»/÷}ÿ‚Ñ«×Ø²f­ßçGìÅÍúöw®”BÞ‡¥_[†±¡ª"j Ê §‡¯&ì>}H™Ÿ`¼€ îâ‡}’ÐçZ×çÆ jÖµë5eYs„ÂÐ×h"཮g4ÝŽÏè8g|‘«T¡«IC?òXK<‘Kä9íú«$„æÔ™ p]Kè{ôâ€qZp”U¤yMQ[\­=Mì;$aTøæÝ¼mT! 3Œ£NË!òú¡™~ˆbúŠäé(ÞyG%„ÊZËYJ©Ð JÍl_”BÔgÊõ‚²†ó,~Õƒnç?”BœVv¾àmeõ¶@}¡%„3ae…À‚«eþ1ñr!$°ì|x-ßa1Óe1V—Ðe !„=/´Þú՜ŗ„-ËÔ|X).N!ìò—„‹oºÏÏçƒKqqBa—,tXóá´ ®”Bk‰k!{‰%„Àâ‡tX ° ƒj:¿8!„°KWÃ.õ”p6¬æBër !¤ËbñSÂyvA×u™Ý•BØeÇÿZñ¾ž½|&IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-spinbox.png0000644000076500000240000000365412536324512023110 0ustar philstaff00000000000000‰PNG  IHDR,'µÍusIDATx^íÝ]lׇá÷œ™ÙÝÙµ×kc\>ª”¦%E‘\ÐJ jHƒ áõ*7á"`ŠsQqAª6Uƒ*µ!¨ªœpA¥¨U/ ª+E R)é RK""Jš–*:&ã/l¯wgætuäY³Ýµwenâÿ#ý}Îzfnúïߣcuá“Ïçi—B„„hæ"Eht­H8ŠZEdµÁ!ÂÑX333ìÚµKÑwûöí´C!‚ÐP©Õd9´E­ÊAFÓÊu59‡â|e…[«V¹AÐ*!„„ÕL5b|6äÎý€‰rdC«{-æ:ŠŒ£lPuå4«;\J¾CÑÏ´X‰U«VQO!`tt”l0ÏF|20:]eøÓ¹´ ÑZcŒÁ(Ñ·³yÖ­]C9Pä2¦½Àr]—&„"ɉ¤» c³÷fþsë&]¾Ë–¯=šÞÍÂ{¹;>É?n~Æð'·P_Ú@GÖ!Ÿ Y§”˜ù"µÖí]Z#„ñÜʆÕÈíÏÈéonù*Vwó;ŸRJaŒ±Õ›ï¢#—á/ïħ#·éÈ®·3-@Í—±ïcÉï,³è K!Ò91901SåÞý9Âò4ú ôæž ‰Âˆj¤¤¿¿OEöz_1ÃÄÈ”}®'ïèTPê$×q©—$c=!„€J`˜­†Ìž]ßvVÆ[/^äĉlܸ‘§Ÿ~ÚþÎU†N?‹çLÙçjÏ'e«9ÓÖ K!3,£BPÕ ÂÏfð\V6¬¸ví‡f||Ü®çÎcóæÍ8{_Ösís‘QéÀJWDЦMBaŒAkÏ«l>}šééi»Ö>'÷8Ž“ì=_ªYµôÖw_ãù_ü—¿?Φ@ÀgÉñ—Ž2tëÀ«Cœxáºù¼BfXaÚ2ÆØZèäÉ“¶bJ){/Ü_™7@‘]ë»*•žai3v™çwô34ô7&ªÌ›âÏ¿>ÊÆïqõúu.9Âë{Ù÷óË´@!TªËJw[$ûÅgXSüfÿ7ÂÂ#ÖÍ o›^fð'é?™±n§›Ï3!d†å8aüU0é°ªÕj¼O:«…*•J|r-ÕYéÔªÒ]–Kþîìz’K×Ì™GD•Ʋ¬TB¥³³³Ih¥Ëc¯Å!kR¤º,¯ gXÁͳ<úìëyk˜›Fù)•?üû‡`ïà·èf%BfXQÙ ÒŽ¶Aäyž-¥”ý•Rjá¼Ë^3Ñ¡»¥ö*UÍ;¬ú{‹W¾»‚ÛxuÆ>8Ë·¿þ,ø-g>ÆŠ"„H*‡RêpZk{ˆt`%AÕ¤LÃÖËöÇQv¾y”Qà*WyÜW ^äà–Nnüé%¾¼÷E ¾ÃåƒOc…BfXñj¯{žg?ÿ¿ÀJÏ·ÚáÒÀ¥KïàyÆÞû{àÕ¡WøÎ}Æ®¼fÃêØÐÇüì™ ¬HBˆ¤£ª­6´Ž9b_­Í´ð}Ÿ}ûöqêÔ)Œ1énlùÎÃÚ¹ó bÁê÷ažÜµ“‡s@pƒŸ<ÞÀšÌ-Þ> é~„ÛÆe…BfXqh%Ö¡C‡8þ¼ ¬B¡`?×®Ûçk÷$ÇδC³Y HµŠE0Á],vïà©Ý»Ù]«§Ž½É,+„2»²¿®5ܺu«}»½T*ÙuÛ¶mñP~áý¶ÈyX¹MÏaÌs$rñ†1¼ÁJ$„̰²^„ëµRÜŸž%Œ 2vNe«ÖÀpüøqöìÙ“tS幪½ojz·#V†V¹´H!2®¢qÈ×jô^…éJÈ\¤ÈEfþÅЀ$¬Ê!ÜŸ jû ½=Ž}þŸé.„VV{>{oÁaÆ÷¹rí_t·¡<ŸnW‘uµí¾‚ÐØ£dÆç`x¢Ê{¿A¾³Ë>×Sð–¥Ãj:BˆŒ£(ùšõÝ>AµÄ¿Ëe.¼ûWÖõõð•‡Ö³võ* a#wFùèãáÚ:F6ç³nuÉ>W{þÁŸé.„–ëR«øÍõnPšá»S MñÏ[W(OOTæp3Yr…¢íªJ=}¬ïídãºèëôÚþJ˜˜˜˜`)„Âu싾Npu~–ÑûE&Ëk¨„†0G“ü‹¯UÖ–rôlXµÿ ‹Å"íBˆbhè)EôvW›®ØóÞg«aX¾çPô]º Jy/™oMNNÒ*•žW)¥r€nR*õ¹]B-(cׯe\ê±ÈùÊ:Ù·O!hV¦¾ Q`@5zˆ–#´„"V¦A¯M:,Ë4? °}B‘ ª$¼Zí°HuY¤Ã*Ù·O!LƒÐZò¿ª7€JÝK‡•¢}BaZøJØtè^¿¯.Eû„Â,±hÖaѱ¥”Bkñ«9³Œ%„À¢ý `šU²oŸB˜ÅƒË2Kû+a:¬Ò¡µ¼„ÒeÑÂ_ -Ó¨ëZæîJ!ÌR×ÿkÈ}}Ù2†IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-tableview.png0000644000076500000240000002345012536324514023406 0ustar philstaff00000000000000‰PNG  IHDRó­erI¸&ïIDATxÚí ”Så¹ï§µÕúqZë9í]gõ¶÷ÞÕ{¼½=mz×=í9íi­Fkm±4­x¬GRŪ£­ƒ6 E®L@(„ÈT‚h BÃW`ü ‹!2AÈŒ Ô¨þ÷ý¿{ïaOÈ3eÏð¼k=kgöÞïždïç·Ÿçy¿žŠþýûCDDÄy¢JEg¤âü#ÞyçÉK/½tz0¿õÖ[âœ2kÖ³rzøóX´hæÏŸÕ«WcÉ’%X¸p¡Þ‹ÅP__x<ކ†lÚ´ [·nÅŽ;ôvÆ šGž#0 ÌRð<0A=tèÞ}÷])óç•ü ê}ž¸Ù³”nxlŦe¦[½~ýz<ùä“=z4†Š»ï¾÷Ýwª««1gÎÝfÅÍŒ¡mnö¥J¾ÐÔÇ-0 ÌRºÇ2³5›Ûá#ü¸¢ßx|åú.üõ2\zórü¯ßÎÆ¼cp£·£Fš5k´•¦U¶Á|™’/v´ÝBƒYÜlYJ×>ºº:ݧÌ©¨o©‚eÙ „+ݨ Æõ{lÇÓ¶ã.T†“m×NFªàò†M«r ×D¬4Žÿáz<Õõ6苨¯öÀUÕó]Ε§ÐúíÞ°q_Ø?)Å™0?÷Üs¸ø[óð“á›P³$ƒG£ûá‹ìÇ÷Ý…>}¸e¦yÁ‡Vüi ð‡ùoãöÛoG8¶»Ù_éèRël¸Úƒ9¯@õ#ÚTz! –Y¸ÇÑíC}";+’GÐ]W a»¶®€ ó)^[¹—õñbvk÷?ž³Éz¸Ôq_,Ó{•'‡[ýÆÊ@•m/= ±ÓNƒyÞ¼y¨¸|>?± ã—·`ìÒýxxá~üpô.x¦·â¶gßÁe ä80V!ñÈ+ÐÓK`þj Ð_²¹Û¥Öù‚Ót³‹È糈VÊÔ`‚$pž   ²¼!¯-Þ6`vs°$ÞëàÚn‚>vn&¦•Ù2,}"@¸+‘,ö^åÉ'&ÀnD3ÈçÒW¹´ˈ•vš›]qyü%… u æe-xxQ ~ìoÆ 3²¸3ò!†®]Œß<¶¸å–[0wî\»›Ý0çó›®°Ë ·«¢ÕÖ°;´êÇÃì±Áܹk·‹ )m©ì×î•Êcz•‘Ôqûü‰œPç4˜¿>Ãþ²/Ï(ËœÁŸfpeÍô«ÍáÎùÊÅ^ ŒVOÜeXgZæ3†ùTÝì\ƒ_ÃNø¥´å= ¬Y0¬¯Û€¹³×Öø7–Êí1¬S}¶—+Š™½%/µ|ƒv½ý ³aöÍL)˜[0fi ZÔŠ+üix‚qçóGñÀ* ZÁüøNe™7^¯WÇÚgäfŸfÃUÎÖWkxõH'cZ±xÌpñ:†¹«ì ‘jDH»‡†[žGç¯m”4|VìXé5}­'RžxµËp³Uœ\(¨p¤ÚmÜcaÙy0ÿ` †+˜')7»FÁüH´WkÆÔÄÀç‹ñ¢²È æ)MPž•3[³»-fnð»Ž5bå“ð¹ V¨úµU`¬š*œ3{‘0)KE«µVW¢"š–¹³×nÿ?ÔK ¹™'Vž B•.[«?ãg!Ù©0Ó2SnvŠ™ZØ‚+Ç¥ 7{Á< Üìê`ÂN#f&̬ץ1s!E•OÁ¨Ò ãòÕ·o ÊåÚú‹ùrùS·‰ÅB¹\GC:{í"bU½¯ßõT”'—Éè¡yi÷r4ÌÖ6é˜yô’ F>ŸÁǦñËé1`ÞG¢ÜìQ fÿvà‘†.‚¹ÔÍ.¤£º?Óår£*ƒSßûEõ=+J„ÎQå‘âP7û)3¯h_ÅÍ£¢­¸JYæf¼…»1œ `ÊÙœ´[¹Û[ŽÁÜm1³“K!“@$C¦ Ê#ÅÙ1ó8åfW/iÅÕã›qóSoáÞ…G0R9¼5 #fžÐØE0ËHYJ7¹Ù³÷ °ª×µj˜¯ ìGÿÙ‡ðûÅGñðËÀ¸ÍÀôfe·uSÌ,E`–ÒE0?³“Wµ`âÊVŒYz@å¼uv÷->‚G_1 ž‘VÖy{7ÅÌRf)]ó³Íxbu«²ÎYÔ,Ï¢ïä}¸=ü†.Ƭ æ™û€'vžã1³(ÇÇÌá=˜þâLYÅøYüjÊ>Ü>„aËŽ¢¦˜¶ ˜½_Yç&‰™Ey¤8æ¹i_:€i/f1aåAÜ8½wÏ{¾:`|*˜ŸijwKÌ,Ê#ÅÑ0S0OS–ù‰ú˜¸ê ~SÛŠÁ‘Ãxh0a£‚XYä¹PZbfQ)ކyÄü´yj½r³ë²è7=ƒ{æƈ•Ê2o4ÜkZæ.s³Y™_XDD¤k¤ æ¹Í˜VߊÀÊVŒ3cæ;缃á˱뀩;TÌÜ¢`Þ%1³X)ÎŽ™Ÿ!ÌXu~ó/§f0àÙC¸ßlÍž¢`~jovM ̳”nŠ™g§0uu+&®äÎVô™´W÷3Q0?&n‚ÍÔ3‹òHq²ež•Ò#À&è`pÝĽè?+‡ß/~IÅÍ[Ì`[¥ŸY”Gгaîä|f‰™Ey¤8æ³>ŸYŠÀ,¥k`>ëó™¥ÌRºÈÍ–ùÌ¢sÑêJx++õ?ÒâñÀIžä§äàbsþÑ„.Vžv‹"rÉ$Y¹eÎ…Ù9ó™Íåq=UƒJüÇÓ'…¹£Õ4¥œ™ò$#êDâH¦’ˆ=¡F¹iN…Ù9ó™Ëe’8¾ ù’ŒÌ/­ß¹E¼z{–ÈSWž4ªt"¹¤çÔ˜Ù9ó™ÛCy\É%Ú­uˆ§Û×ó‡ò[ã¹:šl;^šÕ1ž—,‘VžBÂÌ )0;fçÌg637ú"H¥S:«{2•51³IT‘ÊfMИ"ÆÈ@aÏÚOÄ0néô3ÇguÌ%Kä©)OÉx ‘p@ƒ\á ArÆ9fÍg¶Ab‰; ×ÑÎ7õß¾Hét©DDÿmä<2cmûâù¦1âè2Y%Kä)*O±€••Þ¶ô¹ñt^ˆs(Ìge>sg²ò¡ö+«ìR–0Ô˜/_¯ ÌícqÉÙiåÉ7꘹-ÅçÁìœùÌ'€94s<åO-Ö6aöhàÊ]W²Dv^yŠˆxyKR3;g>󉺘ҨÖÙ‹h"\.‹dC=:½„åž{Š'‘Ëgñ¹m@u ³d‰<‘òˆÅИÎêûT³(”Þ³Ìgå‘›ÐK`–ùÌçxI¹¹ÙΙÏlfôV"š*]®#‡ˆ¯o5’]¾’ǹE²cå)¢1â‡ÇeˈÊ2»= fvÀ|fs•M®=í·W«tÄT(+«D×Â|.g‘ìXyr¨ûRŒ¢1™D}¨Ê|6’:×±n¶“ò3‡¼¦pù²­°™šéQ*¼(]¿³Y¹’g¡]šÈö‹èëãEQž2wA,‚ïh˜”ŸÙžkêØÚÓæâòn—-«Dç²4ÆõòÚI*ݶ:^4l0û£ˆ¼¶ë¥EyJ` ÌΆÙiù™=Õ«©Â3öê¤qDbUÂJÓ™,Ù‚•mÂ…`ŒÉç’ˆÇâfFCÛùnêqø½=oýëîVžB2l$[JR{ÇÆÌNËÏì 5 ®³(zÁœŠq¡Œ!› Ù`>ÖHs*Yó #Tù«yÃ}ôa¥‡22S¸»!>ï™Ê“kŒèµ¼§b• ³Óò3»ƒIÒ†ð«F+íW“AÌËÒhe‘4RÀvô¯3B¶]ïÜV+Oe0.9¦³£ò3kˆÊ¢º­K¤ Œ† Ç`îl–ƶüÎYæré]fäÌ웾hZ(ë0;.?³Ë„ÊJýmv…äm0w>K£•EÒ ª“ͤÆ.œæsÚÍ.¦Œ|̼ϱ8êc1Ä”Ô7¤Pæœ ³Óò3{B¦»›Ï ÑЀ´™ÎjK˜-ÓÎÒ˜K´«£»¹:€Ùˆ™­ãç¨òæK²DÜI¶îT7;”¤•-¿¢£—À5öá73szÐÈC/5›ÉMÆì)‡Íîl–Fó‘3ÎërúÊ#Å0ÿÛb 3Œ[Þ¢`nÅO'¤ñŸ æA‹Šù"àW0?¡bÖñ›d>³(çÂü=¼G»Øã—+˼ä~¢,3a¬,óˆÕư€rµk̉ ,ù̳ÇÁüÝ(îyb&p¢Å2c¢ÅÕãÓ¸‰c³ñà*à±õÊ*+ G¯ €… Ê|fYŠ“žÇóÏ?K¾¿Wú6aÌâý»´Ãdà¿7ÌÈâŽùbh0JAº }§“-FÞÇÐåÀðÊ*?¾>Ÿ«W¯–˜Y`–â¤ç±xñbôÜT›Å­³â¶P nògL™26l˜Y`–â¤ç±téRÔÎ\ˆo÷y?XŠŠ_Ôãï+øê½ð­á›ñƒGwàšš]øùø¸þÁùþðÿÓ.ö®]»$f˜¥8éy,_¾+V¬ÀcGðí¾aT\±}Ðý_ÁW®ÇåCø?¾ÍøqÕsøýÃÖ­Ø[·nE&“‘˜Y`–â¤çAi])³ÃKqË}spù sp‘g9>ó üóÏᆡAM uuuH&“hmmÕVYbfYŠÃ`~ñÅñꫯê8xݺuxùå—±råJmµ¹]»v-¶mÛ¦­ñ¡C‡ðî»ï"—ËyÌ,™ûDDºN3­kCC^{í5ìØ±©T ÍÍÍØ·oÞ|óM¼ýöÛ8|ø°^y‡òÞ{ïi¨%fË,Åa–Ù‚™±ðîÝ»5ÄÙlVKp?úè#|üñÇøä“Oôg f‰™f)‡yÿþý8xð v§?øà r±XìZ˜%f˜¥8fég˜¥Ìâf ÌRz›-0 ÌR$f–"0Ëó˜YŠÀ,0÷˜ùÜÎú(0÷N˜9Œ#¿8h„(Þxã 8p@ûþûï·õ3S>üðC=€„Iº=fÎ%Âðz¼'º¸<¢>/|‘dÛßçrÖÇÎ(µfv[H´-Q€çÁÌ!›[¶lÁÎ;±wï^=ò‹C6­‘_ÈüÌ}ƒ±Ù„­rÞp,¼ž××óZ«~žãY;£<ÉHHÉT± ‘²mõT)Ž‚ù…^Ð0oÞ¼YçäPNŽÃ&otµi­¡œüLˆ9B¬{cælÌH…b®s]SP(äO˜±±4¤À|&Ê“Öëh{ÃI¹i„™«†p¢ÅÆõ„ ŽÍ¶\mZç|>¯ãdŠ5É‚–»[cfczåbGŒ¬Þv–ÀÌðŒ"Tå:¶nv4Ùþx» ÜçB¥Xæ3SžBÙ‘0/[¶ «V­Âš5kô¬)ÆÍtµiÙF LxÉAf¬L9~»cfãí_QÅ 3s£iÌö ñDJêNUS&d±}¦ ¹3ÊSD2C$Ð WxCfæL)N‚™+0Û§=²Œ®ööíÛu«v:Öî6-4¡¦p.3­ö믿Þ}1s®!`æ24&®,ÉÕlfxôÕg1 8Ïy<¼ó©+O±€••Þ¶”·ñ´ä³p¢eæ¼eºËñxë×¯× aŒ›ššÚ¦B`n÷ìÙ£-7¥›bæ"•V ^¤ÛmÅÎUQ3EËÀlÏè(0w‘òä ¯É”ô4ƒ™«‡,Z´H͆0ZgÆÎÖÜfBK+Í.+~nllÔ.9¡îž˜9[¯¾<þ°NRF«™‰Ï݈çì 6³G\T¹k”§ˆˆ×È5%=ô΂™0Ι3G/†o¹ÛÖª#›6mÒPÓRÓýæÀ6–½òÊ+Ý×ÏÜh¥e-i€Î›iE+uË{Š'‘Ëgñ11»Ëlõ˜»Ny H(ÅhLgu¯@*2<¥ÊˆäivÌlüb?ó¬Y³‡µ•æRA´Ò´Àt½ 0-7ר¦¡dÃX7ÍÎÀ婢«º¾ì1«ÙC÷΄™ Ömƒ‚ñÌ @˜OOyÔ½v—d€ôø‘Ûq0\Z_Zã3f`Ú´ixúé§1oÞ¼6áßÓ§O×Ù/;sÉY›m‰‹Fÿ™´®v£ò0ÓfV·†f²B±Sa¦Õå˜lòÀxø¹çžCmm-&Ož ¿ß¯¼§Å¦kÍ‘_Gí˜Ïll¶ Åt‚òHq¦eæÀ ¶7¼8¬“]QŒ9ò‹“-ì0ŸÅùÌE4ÆTß(#„fyö˜™™ ³}ƒ³¤ØŸÌQ`ö1Ú]³L˜¥t=Ì´Ä„™)8CŠ[N´`&¸„œ09rÄ 1³YžG9˜9›ñ°3aå8쓹ٲ˜À,Å¡13Ýl f‚˼RÌ„›ûi™yެ&Ê#ÅÁ0Û-3Çg_sÍ5z -°åfKÌ,Ê#ÅÁ0s„W)ÌC† Ñ0ßu×]z¢…åfKÌ,Ê#šσýÌVk¶3‡u^ýõæk¯½Võ¤›-1³(?6€ÙÝlBzë­·¢OŸ>m0÷ë×O·jsA¿.íg–Ì}""]'ö~fÂÌ1Ú´Êv˜¯»î:‰™ÅHqºe&Ì¥]Slð²ú™­ÖìRË,1³À,E`–˜Y`–â$˜¥ŸY`–"0‹›-0K‘˜YŠÀ,Ï£lá\å¿þõ¯zµö//^¼X¯6Â…fΜ‰gŸ}óçÏ× ÿqN3—âš`‰™f)âf ̳‰™¥ÌòƒDCÒff8«!L[ß|>[†Âê ßÌ YÙÖ¥• yKZÅ¥t^y2Uºl½ŒŸå~: f6v1f~÷ÝwÛYfÆÈ¯¿þºNßÊt5hî±ÙÌP˜CÁ„·˜Ï!—/´‹UIiW)OŽY •HÆMgÂ̼Ëv˜ ,·ìŠb¾)¦p¥uf¾)ºÚ<Æ-;~lv15´Ûo¤t™òHqÖóX²d 6mÚ¤c`M‹K÷š `Éd²u&¼)Æ-_ÐŽŸÏ\È$ Ç‘`Y`>žç.s¾2û› öÂ… õ>ºß5£A…¬ž ævìØ¡·6l8ó˜™ÿˆÿ”îG¯PÄóËp[WW§…ç°³›É£™ýŸEœ#œüNÅádø¥K—êç¹bÅŠ^'œÔÏßÇ-õ’Ê_ª³–[û-áqû±RáÂ':n]ß.„”÷š|%æa>]9㘙o¾%èçó ÁÑ+lã–ûùeó?‰~wÎÄ7®}g*þ÷óJ"¨ø†’Rÿ`‰ÈÙ[ŒŠï)ùn—|¾ùó9è?xjg.ÔŠOEçŠTž*üþ”^x¡ F Â3gÎ}œ:Kýµt—Ÿ™‘S¨ßvÝ.'\!¤£cV=^Ǻ¦u] Y!K„òtËÇ̼A–oe{§Ð×ç›gÐý“pùOg¢âû‹qÁ5u¸ò Ãf¦ yj7†«íƒ³÷àÁg”<ÛŒáá=>7aJFÌW2Wí{¦Ãf§0|VJŸïcÚ& *%õO§~ȸÿ(<½ ?ñmÂÅ?[¥ÿvß0›Ñ0¿úê«Ú­ë©²nÝ:¬]»V Ëš5kôÀ þ6M¯„“xŒJvfQ¯¶õ­J`ª:Æóxþ¸åù$®è7W)ý¾pÛZܤ,ò˜%Ô,£ò´´mÇ)y¼®WRÙ²˜²:«1«qj}½ÿ€:NÅkEÍR£îhu-ÿr©Zõ—÷Þ F/ÞÛfìÆ¥ê9ñyñ¹ÝR5O+>Y¬EãzšPwîÜ©ƒå6lþ6ZiºÛÓ¦MÓí9{öìÑ:L].'´ ´ä厱½¡Ü~žÏz]“ì!²tÖÜl«ŒMçÖ›†ƒÀù=z4¾òó>í©Ç¬Ã×o„»f†ÎÛ‡µâ‘%­x”mEõCÆ,=€šåYŒ_‘Å„•1qÕAŒ¯ËbœúÛOYÎóà‘h ZØ‚‘Ïg0JêŸVýQ|jk|Î`ä‚ýøÅÄ&ü·Áô‹—Ïíòçkegÿæ¾}ût—HOöËrR?u”¿ƒ`³›‡ÖšzJ÷šáàÓO?ÚÚZmÍÙíc Ȱ -/§#rSé1 Y(·Ÿç³ë—;Nvøý¬°³3ó òæ°Óšo¾ ‰†Š ~Ã~û þû} |gäVüku~ôX3®ªIãêñ{•¤áÇÏ͸.°}ûÐwò>üjÊ>Ü8½¿©mE¿éý÷/§fÐgÒ^\7QÕ׌+U½ŽMã*©ZõÝãÓæýoÆÇ4á‡Õ»ð½QÛáòmÖÏë Þ5¸è×+´¢SѨà|¾=Mh\¨›ì‡%Øü-ÔQZjZiºÝt·ÙÃ2yòd ¡g]kš!õ›³–¬E(´Þ¥Ârû­:¬Ïëðz¼®5²‹ßûÈÒY™Y™Ù¼ÖîÌÝwßÏÿ&†¯ Z¯@n„Û¿}&ï‡gšR°oá?j⦧rjûn~ê-ôŸ}·ÎÎáöð;¸#|wÏ{ƒ#‡qÏüøsÎ;ð¬q¼ÿ¬œ®Û¯6‡_N?ˆfHýÓ©ã uÿgRŸ³¸!˜E_üuã›pÕcÛñ[ðµ{ðÅ[êt#­²ÕÈÙÓ„ß› [ÔU‚MkN§ÑÔÔ¤f+2ųßï×:lNnàl¥R)=Âu­Ëí/WŸ×%+BvÈY:«13ø…øÖã†CÍx£î»ï>üSÿÙøæÐ®³ž©ûp³Ržá÷qW¤ˆ{ž/bàÂ"î^PĽ à÷‹â¾ÅG0t)0lÙQøê€‡V#V×÷«ýC”ü~ 0PÕ½sÁ ˜÷î’ú§Uÿž…GÍûÿ!~7ç0¼¡·pc0ƒ¾“vãGÕÛÔsÛ×m™ù\i¥ÊY§ -[” 6¡¦‡A+MèrÓ:S‡ ó”)Sô¬$þ^ ?Sjp1°Ä:Ç.\ ¾Ü~{=^‡×ãuÉŠ !~³3³ùŸ_ˆ_ŒoAÎÞà›¯ººÿÞ þeäfýÆÿÏ™YÜ=ÿ} Y¦”M)ÚƒJÑ|«ÕVÉÈzàá—G_Ƭj€ñ `ÂFµU2v±ÿ‘¸:ï%¥ /¨zCÔ5†KýÓªÏû®·ê(Ø?¯ çpSp/®õïÐÏ­ßOé.>Sûìž$üÞŒI 5[ª 4-4½ ºÛŒÙ%Ę™­Úü­<ÇÒek6ë°‹Köp .ë˜]ØO\n?Ïg=Öçux=î§+Ï—‹5Y:«13Ý~!Þ¾ ùçegüÞJü`àlݰrû3Q¥@©”®Z)[Í&¥dJSÊV£oÜf`Ò6  dšú=A%µMÀ %SwS”Lܪ”s‹ª·Ñ¸Æ(%£Rÿtêe=UgÌù+Ôƒ~€ÛB-úy]UõüZ2ѲYsj{𨙍›Txê+­!ÁaË6C‰éÓ§ët/„žbYuË#±>ÓÒr1=~.Ž*+·Ÿç[Þum~¶ú™-,Õ˜™­¼AVc…_–nèQ£ð«Û†àgCçâw³Z0TÁüÈäÇ·+ÅSŠ6‘Ц¶Ó›•⥙û€ÙûgZ¹íì੽JA›óxþ„€_]Cy…Rÿ4ê”ÎLÞmÜÿê߿¤¨ŸSß?.Àþ³îH—” pÞlO‚lõçRG Á¡e¦›MkÈ.!6^ñ¥Uîe`ÿ›×´¶¥Â—A¹ýözöëZÝRÖK†,Õ˜™¼ ¼Y\õ€Ë˜ð‹ó ²aaĈèÇ üjP ¼5+Q5ÿmíî^gXÊ„FêLQÊùÄNÚÔ*E ¥Ï3vÇh]&)ëâOýe™Æn‘ú§SŸû7/Öjõ,ª¼ÛƯÆoîÿ3†ÿé1Ý@ÃFº›Ö¼Úž(È´ˆ™^#ãUö's]ìh4ª-5u×K—K·'Zù“c¿žõ²á÷#Cd鬯ÌvË\ÚwÆÇ~¼I“&aذa4hn¿ývôïß·Ür‹Þz½^‘³, ÀÀáóùt#G"ñ¹Ré @9×±§ˆ5¤’:Jw–î.Á¥U¦±¡5e¼z¢˜ûTãsÆà‰åù¢±\î®°Ìg3³ŸŽ®oßâ–XÝ<Æ7<߀l `#eîܹZ8ê†ûeæÒÙZ`º™˜ÏˆÏ“ e͵ƒzªX Xt­©£t¯fZgïªÿE˜;ûÝØfõƒ[÷þ¬ÅÌ"""Αӆ¹'Oé­Òi˜•Uo'ª|NÉEJ.Qòy%—*¹LÉ?(ù²yÑ4ÿÉWEDDºMì Ùdð2“ÉÏ›Œ^d2Û!ÌšÄÿùøâ €é)r9«LfÏ/óæ ¥Öù‹¦‰/ZDD¤{IJå^—Zå Mf;„¹Ô:—úKæ?éùR —Ze2ûÙr0Ÿ_Æ:—}™ h‘î»kmùx«ÜÌŸ-cí@Ûcè¿é6±ÇÈv·ÊŸéæóm@_ÔЖ•é¹´/²|þ‰`þL /<Ô"""Ý#å ¾°,ÈçuóÉ€¶C-""Ò=r‰·Ü!Ìçh;Ôv°EDDº^.*¸c+*>]æOw´µÝR‹ˆˆt¯|ÎÆÝù‚|˜- K¡.¶ˆˆH÷‰àRˆÏ³ñú©ÿÓ/»]9IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-tabwidget.png0000644000076500000240000002253212536324514023376 0ustar philstaff00000000000000‰PNG  IHDRý¬°çª®%!IDATxÚí \T×½ïç6mÚä6=IÚæœöô´÷¶¹i 9çöœžž&b¼·6¹Ú<îI¤Æ&‘Ĥ‰ÆT ÖH4Hň¨T$â ITD3‚ 8èòTdpD@‚oMšèï¬ÿš›afxŽ0ÃßÏçûaö^ÿ½öžqÿöúÿ×Zû¿T/^„/ÑÔÚcu­H+k@¡:|”\Œ™+öcBð.<ùê6A’O8;/‡h1oeæFDáý÷ßÑÌ™3GŽM›6¡½½¾v;CüSõ•¯ýÕõmÈ9Þ(¶áÞüð ’²êqäd;JNuø å-øTËÓª‘mhÅéÖ«¸yóæˆç믿ÆùóçqàÀ,Y²dD¿Ï¢§È—(¬nBrÁi,Þ^ŠgÞ:€-™g‘W}E¦Ë(?sUpÅ'Ø¢ Ÿ4b‰æ$2*Ρêl¾øâ FpãÆ \¾|ëׯÇÚµkÑÚÚ _»Ï•ŒxÑgUœÅúœS˜¶$cCc]vÒŽµC[Ù¬Ê È2\ô v·`}nì®BúÑFœ0·áÊ•+Œ€O-üþýû1þ|œ={–EïËî}zY=Ö0âÙ÷áÿ,(æCç\ÜŽÝ%íØSÚ=G=I+â¶ïÃJM‡ÏÓÄüsˆÍ9‹ð”*Ùq¬®—.]b¬´µµ!//‹/F]].\¸à³î½J¥ºKðÁ·­Üiå[‚oZ¹C𠉯ý{KÏB½ï$žœ_ˆ§Wœ@\N3¶¶#©¨;Š;œ““‡Wþðýx’Ÿþz æímrmï’z¼FuÌÔöãØ¾±ñð9¬Ê:‹°ù+LÍòÆî 玧`ú‹/âÅékqÒ¡¬íT†({S"Rp®—õõ™sEøà/bûÑÔßÑÑ!E_TTµZÊÊJ_ýÝVlâÿŽBüÝ…ïk®ÎçÅg°"Í€'?*Á «*¡Ö6c³¾›óÛñ™ÿ§G1`ƒB¨¾†ék´û8Ïyom=#Ëc·lÃäY X•çìXGê1åßTð›¥ë…íÀøD×$¾[=æYE_^{NÞ콡^·Ôþ€‹Í«ïR–§žh)½u½¬¯Ï4åaŠÊë ë=R?¹ö---8zô¨ŒëKKK}:®ÿ_ßüw+w;´üÝ…ïk?Àž"³ý3ËË1im–hƆ¼$ä‹ÖQ°9ÿBWtùx\Üä? Éï^&Xò„øQŸÀݧå]i@пªðpH®Ãþ6ÄesqLâuç°!¿7õw{°+œÅÜd4%õ8zªIÞì½áŒ~]ô£çîS”0÷Ë~ÕÓ+qÆá¸ÆÆF´¸©—Ê»ìkiDcK{¯¯ËB‹¨§Åeý=ÕgkåIôÅÅÅØ²e JJJ|]ôßÜ£¿;áßásî= €DÿBÌqÆ0ÿósˆÓw ^Ó!˜#»’[`ýŸ6`CYü޵vq?÷&ŽyÿúÖ^l°ÛÇœ·žÇ'!þˆ½héžuÈ^‡zÝÇø‰­ŽÿŠÚóö²¨5Qe‚7¶6t¿>ÄêZ°RÛ D_Õ÷–>Omüh:ï¶Zö7ÆŠíG0e¢uF«Q/í[±O=Eñ;<‚¥Ÿ—YëªÇú)£1e騧XÊ÷ÕÓþ:l_8Ñ~ÌÄéÓñ´jt§WáÐÒ—m™ŽG¦ÄB·Om?æéY[ìžFSÕ>ÌÝù;MŒÍsûýHôõõõRô;wî”-½/݉ßä^Áß¹wáûbLO¢qm%&}bDЦ&¼µ½3S:¼«!»/8ІÀ §-7ÔÏ¦à™¥G;Ë’Žã÷c,7úïçgáeõq¼ø†¥åŸ˜hµÙ¬Áı¿™Rl7`¬h)ÿñ\Y6cõYïoB²0ms>F?*êzTétÜÎ"¥môÖ,|¸í&¯3`ò†ZLÛ.„´ç2Þ×\ÅéW¶ïšSÞ^´?³µf¿[Ž{¬ûgýIì{oY·Ã>û\Ú<:ë¨Üþó´1bû ¼½—Ê[ð‡VágÓòeÏâOëª1#¡¯ÎzClÁ”a»§Ò¹‹Ä”f—×å’½ç1_Ó„m'±ûH f‹ûÛ jr¢ÄuŒCNU>fÒ5¼µMìÏÇñù½´ãÈWƒÊ/ 5]Ž;ƒššãHxK%M«¡}5ˆ%¶'ÇvÚšrd=~ï¥v{&ãľEû«,Ûuû¥waÝΉçS¶â3Ö:öc”Â~çL:§Ô©‡®©+ hjj‚ÙlFmm­ìÀKKKCdd$âãã½âþufK×Nz$]’>é{9¸÷?Pÿ^áÛ\ýÎÖÞvàáDZcÇùdÌÉÉ^¯GAA %GŽ‘(·mŸJÛ„øhw9^¯ÂŸê0cW;æ¤_ADÖ—X˜ó%g»£¯þåM)êxí Ü7#ä9±ý¦§Ùl.aâ“t.@hF~#lÿç_ ­eíxîÛ¶Û1áIU—ðà~þÏ‚`{]s?I„Ÿ­\ì3ùR××IDæ,LoƬ¤jÙQR}ÍÍͽ¢V-Î]C3´áâsÃÅß@èE¹>ZìóF­´7")<Èrþð§ëm-•Õ":@…€h]gýf-…íøh­bŸãžH­Ñ²}&KŠzqVµÜÖÑù¢aVÔÑÅÞ¨Cx ¿ýw O*tú½(Ž·ý%÷¾ªª ÙÙÙÒŧá;o¸Ù’Iô]HŸ¤SÒ«Bô?´ ÿûN„ß½µ'÷€*ݽ{7òóóqâÄ œ:uJ>-Ïœ9#<Âö™þ:~VÚ µí®|q#jNàMÕøËözÌI»*ÿ5–¾‰åyÀr}OÜÀ‹Oˆ›ë«°Hl‡¼ûŸâGýO„ätÚ,Š_%o¾_<ñ/âï¿`Zš­ì &üJì.“Û!ïþN”OÅÜι`«Ð ýÿ5½¸> å\Eäþ6¼—\ÓϘ~4tMb»l½]LÌûÜÚƒ?ªG,1}v¡,³Çß±«? ]½%¦W‹X{ôR]—žù‰Šºˆ:]¬¬c©®Îj£ÃhŶò|ÎÊm´Ö•A=Qe9“ó^{Û_jõ«««¡ÓépèÐ!éö{ÃýëÊ–ôHº¤Vžtššš*ÿZÝû¿<àBøÝ[ûššéј&}¦‘‹tîÜ9û_zzÒ_wŸ{*¿]¶äê.ß[‰©‰5N:‹ùû¿Äò`U![ ¬)ràðIN]'Üd3–é:° >?7ܧ–åKãÉö•Mµ¢ü†õ83þŸ­…~aÔöú®`Ò¿©ðà_Ëä¶z÷6ióãÖa^z+–í7#$&‘tÞZ¼6wæiÄþô2üŽêš’Óýú\°âÐUDeµaÎΚ>OÎi,ˆ‘ý‡iÛ„EÖïWb©£ æ !Â4ŠÏ¦½Ȳe{ PY²“¤íØ]Ý.l#O,;Ü¥þœEOÈcž™½ËfO²?TbŸ±Ø´–¢Ž²n+Ïg+‚Î)Ë[°7.» *q¦Ñ„Oß¡º^GI{÷ïE3ñlŸ©µ§û™ZDjÔÈý÷†û×]9}š]Hâ'½¦§§Ãh4Òoû#á+c|ÇÖþN= r…èiB•ô¤ôFR LRôo ÑÏNiÂG‡„HJ¸r ¾XÌâã²SIé†ÿrr¢ZËDz•­Âjëq‹M–û&íèPÔw¯ü» …–Ù÷Eo݆_v©2æ[Î;F¹ÿ¡©øëþݯÏ«Ž\Åòƒm˜›Rƒ}åM0Ô·ãúõë½¢£<^†,­–íÖêb*(G«µ¼xiƬ±l·–cΘÎë _³ÄzÝFååV¬ecV8œ£kæà¹1âÑçæ £@ƒçÄ1K š,åxFl¯.nµœ/^q>k9Ù¯( ò$ü¹ëÿÏ’]ån¿MÅ¥|jÝÉE&מZKo½§m.©Q&’^mÚ¿É?º¾ckoqñ322PQQaw”'ðFñÛEŸp丹Ã2á "¿éxØR匯°®°1¹XSxÃiùÚ¬+ÿʾ=ûUº!¦ÊUNŽ/é^÷†’Ë¢ìr/êèJ\ñU¨µa^j 25ãdÃ|ùå—âÚE‹séšeûZ»ˆ¡EKëÒþÚµ.Û H±&U]ê÷5\»Ô.[=Û5¸ƒ„O­> â`jé•÷¶/ˆŸôJ£¤_ñÛþ“ƒð¨pó[ûo«²²²¤¤t¼™Ï‹êðñ>fn,ÄœÔf¬È¿…ÍB$Iu°£nàlÓkäMüûµµƒR_ØXq«òÚ¶§N´âTóܺukXР ‘}!ó"0oêï,-ô+[qÉÃçµý#á“‹O-âöíÛå…ªÞ~oÛ°¹úäÚ“~û,úÜÜ\ùÔðÁÚ£f¬ÓžÄÜ͇1gÏ9|\ø7$Vß®³Àn¢~à$•”á½Õ™Øpjpêë '®"¶  ó55ÐV¶¡¶å*†Ë¿¯ZOB³m–-Z$ eØ–s7nó5Ðëµû~òÉ'Òö•û[)|Ò-é·Ï¢§˜Àd2ùŒûSh8ƒ]yF¬J=‚àu±4÷ 7„è¿FZó-dœ‡O°ýÔU.´aAúðýpøGïÕ¯^½Zör“ø}ŵWºø¤[kLß7ÑÓpÍ`òæÎ;%'MõÐ?¹•X¶]‡Yëöc^ržˆÇÅàñ*R›}ƒÄêvÄ5aaf rªÚpæüuVºøG- M`Y±b…œÜrìØ1ŸŠç•nI¿}=õlÒâ+îOCã9Ô˜‘_yI¹|¼§ ?Õáý8 f­Ü†™K7û³VíÆì¸tÉÛóÕ˜2=/¿üòˆæõ×_ǻヒåË—C£ÑÈ1m_ŠåÝ{ê¨$ýöKôt°3Ñ÷åAÀ¶l˶·×–tK3õF¼{Ï0¾Žm8½ßî½Môüc2Ìðºãö€bzWî=Ã0#,¦gføÒoÑsLÏ0#lÈŽEÏ0Þ×{4¦ç!¶eÛág; !;ŽéÆ{;òxœža8¦ïèém=ÃxW|žc'¶e[œ†Ë1=Ãx_EEEÈËŒ—ÛaiE]t®cHx“ê‡4cçq™ÆN·Ü!¦_ú¸ Ûà ëõŒ‹Â1«}®z‚´ï]} 3 cúŠžây3µÚäÚSìNn=AK Ó_ÚGeÔúÓqÉÉÉ®EO1}”CGš9»KGž1[­pß ?ø ¡©³I|l ›lÙï7 £ü,¢Ï´‹ÔÉÇÌ.;òº‰Þáz²£Æ)êSËú¶–uÖgÊeÑ3Ãd-»ÁŽémî}||¼üL­:ÅñÔiwýúu9FOcõÔkOÛô VŸ¾õ¸sï»ÄîD­¶KL_«¶ÄñÚÚn×ḛ ÁÅé-e…1v÷½V)Ë¢uf»}EJ¨ŒÅ•îý(…{ïx=ºèñõé,מaììOˆ T„ ãcsï©3.&&FöÜ“;O½õ$tå°ñÕW_É^|jõÉV­V»ïÈs½YëБWj‰ÍUHÔ– 7¾úŒh+̨”"„JõIÖ;I"Þ7j@ÛãC¡Ñë‘lïÐë«èeÌn‹éUþŽŒÄTE!‹žh\ïј¾¿C4ìF3ð–.]*·m‚wö&í{O¶¶Y{Ýëu=d7AÕ9~.m Ù§êâæG‘{oÌÅŒQûf/ý£äçÉÈ37 (9BqÌdá©„ÙÝõ³g«»÷Šë±Äô„è­¿ƒ¸Žˆ7'ˆ0ÂÂ⑬~ÓóóÛÙ4\O½pCO!ª[¶l"""dëíêuöÑŒ<²¥cëE“уÁè0Fn†Ñ`°ß›ÉÆhR¦§±rO¾pC­ü®]»&ß²{ê©§$ô™öQÙøŽà­ºÄDG"Tˆ>4<½‘oVfè°ôÔ4\GWŸâtrÝéÅ’#è3í£2W.=Çol˶^Ós †ñ\:eyoò×õ¦®¾Öç1áåMux2x-~ôðoñ÷¿ü-ÆÎX‹—6žÆ+‚{ăA5±?³½×¯ÖZ^e „¶Ö]î;k.»Èˆ²”kjÝçÊsŸÛ®¯õÙré%"fª¿Ý&4Qßõ{…'"Q¾oß=×à 께¾¿±ˆ-‰Æûpwp_^‹ ñgðrb#~ð¿þÃ~ãß÷àoðÆÖ&<»ÖŒ_/­Æÿ˜ww>«í’D£³Þ®‰1I˜SU¶œtÖÜwûœå¾Sä² ŠFŠF‹Êa?¾ó\y=æ¶sQŸ5÷^y¹ûók´DYÄ#“yôkãX¶õ†˜Þ–.뛯ëñËëðÒ–f§v`FÊyÜ÷ó_wŠ^|ž¶³ÓwžÇäÏZ0vÕiüÝô|—é²Ôã,é¯,i®,©®òŒnsßÙû&ÇÂØíZû—+¯/õÙíg$;MÛÝS®=vc™AŸ†ký`wâ‘p5; “¶´àÝÏ/aÞþXýÞ^ Õ½¿<>m5Â|‰÷3¯!Ds¯|ÚŒ/ÝmŽ<Õä($§¦"-;&{™ëÜwÎsë¹Ë•×Sn»¾Õç´£ÎQônríñMÎ8{gØ­Oosï_œ—€Yi×±0Xvˆ9zK .aZê)LÛ} úKø¸ì&VáÚ/…í5§×mMñ5^†*îsíqüÊÜÖ˜~ yï/Yƒà­'ñq°®Øhº…Ïo"áìß$Ÿ6ÜÄæÚ[ˆ3@ˆþì$æ,^Õ·y·¹ïœçÖ¾ÇÜv}¬Ï³GŒFcm6Xsñ÷"×ßàŒ·¬OoË‘7åƒXuü"vœö\ö} dܺ…Læ `÷%ñ«Ê/âÕ÷W8Í‘×ãx¶Cî»÷¢Â¹ïœçÖ¾§Üv}­ÏÚAn¿2g_jY¹ö2MìÖ2^4÷^™#ïc]¥ÂËG¾ PP 8,Ȭ.3àµyÍ‘×Cî»>Ø÷/·«ú”1»Yæß3ò8<3À¸Þ£1ý@§áÚräMŸŽÙË—c»¸È²öv”ÅçYbßdQæ.GÞí"q•Û®¤ŸõºŸfËCPl{Û§áÞŽn¼-GÞàæ¶k€.i#’t•‡2ƒÞ‘7¬æÞVŽ<†a<ÓŸ>}š“h0ÌHYÀÒÓpÙ–mÙvOÃåy ã}ñü äÈ»]n »÷ 3ÄÓpo_޼TÌ;WöØ?öØc;v¬Ì€CkØeffò€a†CL?XCv«W¯ÆŒ3ì³íh[Z£¾¦¦;wîDHH6nÜ8Bsä1Œ¬O¯üüùóe‡-Iíì_ee¥lñ7oÞìFøµH DðF½“2“›2†aÑß¶i¸X¸p!öíÛ'W©¥õémܼyÓÎ7äÅÓ ¶t#ÏO?§¹äŒˆÐ¹F}OÓu3㣛ZÄn"32§áö$úþ.ÀGn|\\vïÞ‚‚´µµáòå˸víšäÊ•+ò/íëèèÀñãDZgÏÙÚ;¾pc©·w $»^¯ÙIÎ:“|x¨D=¼"Ûz«í°\Ÿž¦Õ’èu:œuGâkmmÅ… $/^´¯SO9úŽ=Šüü|¬_¿¾Ï¯Ö’{䇠UﬦDÂ_ñV[ŒÎò®».&P‘ËN…©q0#l®'“hP'‰Ùh4Âl6KqSYSS“<}¦}ôÄ¢N½ŠŠ ìÝ»·‡$ÎE-¼¿ÅY–í½|§= < •Ц¤@_Ù ËjK5eþSc¡Í€¾¢–o"fäÅôƒ= ×–.+==UUUöy---ÒÍ?þ¼ý3‰_¾Šj6ˇ ß¹K—5ÊEL¿ôq·•™²1ZòqaHË;æ`k‚Z‘ršaFÜ»˜¾¿±ˆMôÏ“˜©Õ&מbwrë‰K—.É¿´Ê¨õ§ã’““»ˆ¾³Þ^ˆ~agÙ±ÌX™‡Î’·îM¤–™êÉà’m½ÚvXÅô6÷>>>^~¦Vâxê´»~ýº£§±zêµ§mzP«O_†úúš#ÏæÞ²¹÷ÊTZúD™N”Ø¥ÿ^,#Å0>9 ×&úÁ¾0ꌋ‰‰‘=÷äÎSo= ]9lG|õÕW²ŸZ}²U«Õn;òTS-ƒ¶×sµºR48ŠÞ\ˆ¸èЕVÂXaÍœb­ÇŒ8™W~*2*Œ07ðMÄx×â•Ãv}z[޼¥K—Êm›àý£I;äÞ“­»y–¼÷øÑZvÝcúÉ]l&#¹¨3uÖ±´¨Î|viŽŽé;G^DD„l½]ý£Î>š‘7°yNÖ3a0—›,ef¾^Ÿ~p§áÚrä½óÎ;rÆ]¤m|ž>Ó>*s—#a/™{ï­9òf¸ÇõécÈa 9òx˜†mÙÖ Ö§ç$ ãù޼a5÷ža˜aÓÓüw=ÃŒ,=1 ·'÷ž¦æöÖ½çømÙÖ czΑÇ0ƒÏJŽ#Ö€÷&¢¢¢äÔÞˆˆ°AÊu牼yœ‹aëÓf޼.ïÁG¹O~a6™`2™ûXÞ™7ÏíqæÁ«Ód2º¬a¼rî½çrä霟ӨCx ¿ýí9ÿÀp茽+wž7¯qAŠNBbøxk™?"SJP'£Ep@çþHM)»«Ìí†Û“èû³ß`çȳÔkM~¼…¥…²@_X‰iSŠ`‘ÿTìÒ—£BŸ‚©þ$ª`”6t-OÑWt+wž7¯1ã­â Æ.íçBà´ŠŠf÷u–œ=ç¢Në1AÑ(¬¬„&:HØû!Åš¿odÛÞÚ»õé=•#¯Ûûô£è]ú3-ïÇGdv¾Fkʶí3ôXî„ì¨qâ˜qÈ46ô«NË1Ê—üÄCDm䙹½1ý`OÃõl޼î)°kµ‘RDÑ:³}ŸYm‰™µÆËçÍë~>]4Åöã¡­mîWµZ[9§Ýf†pÈÎ]L?Xd°räuÖë&ï}C¡%Þø9ÐVa,Õ"4À’OoV–‡ÚËç(ËæÍë<Ÿíl¢Ï¨u^ghu–"T¶ðHÔ–¢ººúŒq¼™ãX¶í³í°Šé=•#ÏݲV¦²TLöSæÅS¦½î¹¼{Þ¼îç³Äôiêob¿!a}QìÞ3·s®Môž˜oûsä™a4\çÅ멼_yóúW§Éhà}L¿_ƶëÓsŽ<†ñ²˜žsä1 ¯OßoW 9ò†ñ‚¹÷œ#a<×{4¦ç!¶e[›†Ë‰1Æ{;ò†Õ8=Ã0Ã8¦?}ú4‹žaFÊ–žš†Ë¶l˶Ãt.Çô ã}ñü äÈc—‰aFÈ4\îÈcŽé†áõé†á¹÷ Ãxç4ÜžDÏ ²-Û?[^Ÿžax.‹ža8¦çi¸ ÃCv=Åô;±-Û_[Žé†§áöMôüc2Œw,^9l×§gÆ cz†ax}z†axî=Ã0·;®÷hLÏC$l˶>6 —cz†ñÞŽ<§gŽé{'úúúz=ÃŒ”,y.۲훆Ë1=Ãx_‹¾¸¸'Nœì21ŒwÄó¤WÒ-é·Ï¢¯©©‘ÒSƒÞ¶ëÏBzl˶lë9[G;Ò©ÉdBII H¿}ý¥K—`0äSƒ*£X¡¯ã…l˶lë9[¥éÓÖÊ“nI¿}ýÅ‹qùòeYAee¥}‰«ÆÆFy[¬oûìjÛ²-ÛzÆ– =’.©óŽtJz%Ý’~û,úóçÏ£½½Òe 'ȱcÇ$TyUUÃ0CéЦIÒ'é”ôJº%ýöKôJá_¸pA>=lûÀ0ÌСÔ#éS)ø~‰@Ä¿ïî|Wð=Á½‚û?<`­ôGÖ“üÃ0CŽRðXµz¿U»ß³jùn«¶]Šþ.ë“áë“â>7Âgfhq&xg­†:îv»kÁ«Tßp&úo¸¾MüÊ–Ÿa˜áÁwú¼Ó¥à݈Þ&|Gñ;{0 3ô(…î(ö;ºþoÿìïOîÄY2IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/macintosh-timeedit.png0000644000076500000240000000430412536324502023222 0ustar philstaff00000000000000‰PNG  IHDR,'µÍu‹IDATxÚíYYÇ—ÖîÑ™v˜‰_ïPŸ€øhÂ3ñ‘W^;шƅD#>âC¹bŒh£ .DåÁrAÅ¥]PQq)ã™:·nÑ·‹*ª):j&ÿòOQw)ÀØ¿œsêÖ%rêÔ)ºpá ÃðO5³ÇRdGÞ½{G0 ÿ¡€õúõk†á¡Ýl6»~ùòå´s÷Ø¡Aä§~ b8íØ±ƒÖ¯_O7nÞ¼y3¥Óiñš»ví㆖žAyÊ/­cølÚ´‰öïßOOž<¡N§Cß¿ïúÛ·oôâÅ :}ú4mÙ²¥ +v$µ¼Ðòééù–çIϵg`q?‹ëXÐR#­)`y§„&•"eÓ)Ò¢ ª¶Õ¾ÕòiŠE#âC±™µ¾p-?ÑKå{Æõ{©UÕ)‹“^unSa"aýc%¨P7ݳ(ŸJP,>A†‰ÿˆ&%äïÒ¥KtìØ±iÀrãtÓEî¿~ý:9rDÌãvëo}¹­q´œôp*ÊòV»Bш¤˜ X-ÊhJf T3 *å’bœ–®ø~ÙF1%Æ$õŠœ}ÝTÑBßÌú½e’—Ÿ1®“éVV‹ÈÏUžÖÓiä»ß«ÒÆDú…ÀZ!¡µÌZ½Q–JØ!Ó¢…id­‹j.`õ‚#³ e|¢¢&e8K¦UH‰ë–[3é÷Q³¨@U£Rs:°rÌ¢)ª+ä«fãrN<à{Aä—2p*• 5 a”c>¿wïžwâÄ X«\ÐRkZî(k$pYÃL€eº]wÊV•0CÉLI¤iö5"”U/bÖ(&!Ôï“dR’Á“,Z¯'mERÔp¥„±‰ %dz9õ}b”·>_0ˆ!ê—^¼xQ¬Áºuë=xð@¬túô)={öLxrrR¹ýáÇd9sFÌ“Àú×Zî(ËN ‡V«–·Ó²„î[$w€”Q ãfUIËTû=ß·’stÃÎõêzÂu ¬\…ÊMDb†ÕZNñg-R³ž° h€Å‹Ay]•,®UqŸjnãH‹£0^æ kµ Z+”ÔÐe-*%¬ì»z‰l™úÝl3ëzoÕ¶Äi`P¿W šOÈtO‹‰Û¦šSËêÖÁl`iYƒÌ†}ýt>/¢­´õ>Õæ  J yo«»wµòÚ™Û8òâqårYM gXÝ¢»‹H­ª¥ àoÚ1(bJzgʨJç%Aýn5K"ª‹¥u*‹T(¨X*R:Q õX¾f“&ºK0’Tï^À‚ auùòeª×ë"ýc8y­Ãâ5Wiq‹ï,ï”°M ëCTóöݺ|Õ ºÑ°‹èº]?â¬XÐ(Z.UêÝ»|“e2z¥yUDZ¦Q¡Þ¢N«FÚô"}P¿ªZ.nÌ],kKˆ&t£ ¬hÆ®«Ùzë\.½hX4tJÈðáÇm¸¨Îçïß¿鞺ÒϹ£,wåÊuYÃ,KÞ¹‹L³f¯[2«ïé³ãüýW@Ñ©s^»¥'£Sc£Iš¾Ö3¨ßÑ$¥­h):Qòì‘T,k½¯SÃ’Q[{’ªÕíŽ,Ü%„ °Àbq¤töìYQŸâ¥ ív[ìÌÀk­øYB>ò® >|EsÚÈãyž\é>»)ál«e…ɦoÍ+¨‚ ß#%tž%Ü·oŸˆœ8bâ­d¾|ù"Ì{_}ýúU¼fh1°lº®«ÏþÞÀ‚ èÿ,®]ñî ¼þŠÓ>Ó4{6ðc3´8úâñ¼3)C ÛË@4hJèì‡uøðaÚ¾}»Ö?|çsZ¸mÛ61^Ù À‚ èç‹ëX¼h4›ÍŠýÜù毹RÅçܾaÃ1ŽÇó¼ÐÀBJAР)¡º¼×W=zT@kݺu´víZZ³f8ò9·s?ãñÊžîáÃ0Æ\âGpxÔy¿+¾ÈG>çvîwör XœwÂ0 kµÐî.¾»Ç†¹÷Ë~ÈpL>tø—|q©|(q¥¼è*ù&«a†‡ð`?ûkTRm±¤Ü’>ЂaëÁ¶—ñÖ9Àe-‘¡šZ0 Ãa=Ø~>ÀrGY^ÐZ!ß †a8¬Û"ÙX#Q–ZKhÁ0 ‡õ`?Bá¬ùQ– -µ¦µ †axö3_>ÀQ 5æ-'Ú‚aëÁ~HÕXó< 5Ú\0 Ãa=ØOÕû+Z*¸`†Ãz‘”~°òÖÜ>ÐRÁ¥Â †a8ŒÇ\ ò‡U$2Ç Xs| å€K¸`†‡õB…-#¾°ê,ZnpyÁ †ax«rƒj®Â¤?þ# ù’[·ÛÝ50ó"»wïÆßþö7¥JSJãÕï7oÞŒƒJ ·´´à“O>‘Û?üuuuøàƒpîÜ9455áêÕ«²Œ[–kn¶ÉdºEèç…Þì×›üú9¡7úõ¡Ÿ•ªùwÞ‘»víšÜÿ6Ú§ÊÛ—ï-øø'ü;?l+ÿpçTüjâ6Õ> X¯~¿eËé6777K àÜÒBŸ>}Z‚–Vûã?†×ëŧŸ~Š¿ÿýïrŸÌ·úUõçu nhÍͦÏÓÜsüÛhŸ*o_^ky’ÿ˜/Ãù9{.úL¨Qí“€åñê÷³Óé”Óê´çÏŸÇÉ“'¥»M«|éÒ% ~‚ùúõë­`ÖÜlѾ(ô ~½5ÈR·´æ;vH—€çVÿ[«¤*\¾Çò+˜…NÜtRîÓÀÌß®õSq—¿ÜôïÏ òØ%yî¾EÃ0ؼ‹ÇüT–Ý5ìMìß³}üÇNXçsÙ®^q!ð]­ç×¼IµÊãÕï«««ñÞ{ïÉrZÚãÇËøÜápàðáÃ8qâ$  ôüãF`þ’ÐÒ: ohu³iÖ¹ee´áqí·VIU¹Ünîƒ~s·¢"¯øgôÃŽ¯àÁ<¾F–¿¿«»Ž1.j@~úÌÝ%ÏÝ•ßOtØ›vÔZãñ“¨8Tû|Z{3®\ÄÚabÿ°¸(®µ‹ûûá¼jÿ¨ËãÕï9ŠMËL·zÏž=X°`¦NŠÑ£GcÈ!9r$rssQZZ*ô¸™1´ÎÍþ²ÐÛB€º= ƒÁLÕüví·¾Òª<|ù⻦¼+~Â0rh)ŽíÊG??˜¯@îÙ\м¼)F0çm÷Y¼L/Uø¯yyw™0eÇYyýó»ÌÌg/ð]³Ï ¼ôÒKÔ€Ÿ‚Óªý£.W¿§eæh6·ã^ÉCŸGfà[}‹pó}eøÜ¯6à[ý‹q÷“¹øíÀ,Lš4IÆî´Ò´Ê:0UèWBZo¡ÛÀÌ ð¦&g`έþ7}}ª*\^=íÜùÇ­òwݶ|imû÷¿NÛ"öÀÌûÿ{÷â­ï”ÇòÜ-þó|×<…Ywšðjõqy÷·O×™†Sçö"‹×›µ{ßÝmÛ¶áݽN¸UûG]¯~_UU%甇œƒ»·¦»Ë`º¯7þv;¾:h'¾=¬ßµ?xv ýŸlŒ?ï¾ûnÀÔ”è;_ÓúËA€Ö\î6ë¬ùí·ß–o#Õ¿yTyøòíÒ2oo-Û’÷°t¿¼¸Üø.¿‡®qáò'ò„e¾kÊE×Îó[æíõòï³»òÄ5òpæò¬JËœg#»€ú“õÒåVí]y¼ú=Á<=ÏŠïöYÓQ·ãkÏÖâÿdïÇÿ›xÿ{}§ ¹ž†üü|9­ó×ý€þg@··Îš›ÍQ=-¨×Üýo£}ª¼}ùná.ß•«oËc/€ÙÇÌ}ç±nB?ÿÙ]6Ì7ò¿Ë-bfßy¾sÜÈç˜íçäuÜt³ï2ÃÍk6Aþ“¦ÖA6SŸ|¹_µtåñê÷\4òØS aúw>Ów3nè¿_¼ÿš}wO:†ŸÏªÇ#óÎáñ…çñ„õ ú ™Ž±cÇÊX[çfÿ‹Ðo„t{ë¬3ƒp«Sõ¿ö©òèË/46â¢ÿw£ø}9Šë_®\cãÕ¾],W¿·Ùl¸£ïÜ|ïfü|’¿Î?†{¦™@>ƒß,¼ˆ§K®bØzà…²ëxòO•>|¸\ªó7ƒ­¡ƒ­óM­nö®]»ä¤¶¶REÿ[SU®Ê{[y¼úýªU«ð…ï¯ÄÏÆ8[vÓÊݽò,î^ŒùTr £6v“ß²W_ÂàÁƒQRR¢w³¿ÐÁÖÙçjk`æ²6Îuq›ªÿÍù/ª*Wå½­<^ý~åÊ•0ý  Ï[O"¿º³*1eÃyürÎ XÒ$¬ñ§˜¸ 0;€9N`Æ.È´Ç 0;Ð_×¹ÛÁÖùæV7›Ú\RÆ•(ýoMT¹*ïmåñê÷t³M?Ú€±%õ(Üv[Ïcf¥o¸1¸ä2Æn¦ ‹üúQ ¨°ì €+VèÝìèÁ¬D‰ÊšŠH0ß­Ùƒü-ÌUÌóÎâ™Ò¿b̦똶ÓæÅg7Žø,s—ÁL³¾aÃ¥J•ÆH%˜¸c—×ã­( ˜7ŸÇ£̃—_Áè>05óÄ633SÆÚ]r³yrw —¶1I{Íš5ظq£Œ-&L˜ 'Û¹~•0eÊÌ;eee²œ®‹%É$Ì?)GNqfWžCÞÆs˜´¾é³Ðá<¿î:^Þ*be3[Ž‹Øù ÌÍîrÌÜÂuªœK#›Â±cÇä߯_ºt)fÍš%§ ¸z†û8°píêUTUn–£„ ÐJ’Ìÿ%Üì…'ñÚf7¦–»1~­÷Ì8… k­ü£ªÉ{€YÂ*çîñ™çu9fîùóŸÿŒM›6ÉÜN„V/Z®6ãóæX 0åO31rbžê!J’ Ì?Ú€1oÇìò³øãú³³ú,~0é~iiÄ“K¯bÈ`ì`’ÛÇïô™k—cæî#FÈt¯P þè£fì=pSÍù5q†ŒŠç&/À«E[0êõ ÕC”$˜ï.Èüc˜%¬òäõg0võ|âQü"ÿ_tÏ­^®ö„]ÔÛ€AƒI®°¤ˆ™‡*3Cô¾öÉß±¾j¦Y¬È™iÅø¹‹°ÄÞ€·v_BaÕ)L[u#æþ9… ÌJ’GÖ®]‹/þx ~1rò'ØNcTéi¤?Œô™õøÍüóxºäFëæäÉ“€Ì¿¹¿«Â9fºêsÖ¸éX¾÷ Vþ¥IjÉnŒ“l=ùU§ðÆ–S°nm@Áº}˜\T‰úÓDuO«Ìꬲ@0[:0[•eVs0KZ§wß•q0³³è•’¦ˆV›[¦_’©“ÖXã "ôëúÔ+ 3ÿŽ…ÐÈÍ"^ ×ðûa„>ƒ… /¬97·Á›ÛÝ(Ú.ö½]‚òC˜¼pFÏX€yEK%{CÇÝì:”Xmp6xÐäv ›`Ω f ¹ÒЧ‹:9áq×Á^V5¦¤ `& ù=)ó[Rü%gö™3gäJGNÓrµ£–MƒDµÛu03'“Ë+ dnùw,„”¢“'OÂ{ÎCøÒ a}P´Mùma+Ž`æŠw0*¯O½ð*2Ÿ{¯LœÛšµrÝv§DÄÌYº‘lSZjZ€YH“9馀Ñl‡³’€™FŒä÷1û2Kàr%¤–Íß1³Ñ<3GÕ^~ùe¹•p-öÈ‘/`ɲR<›3³WïBŽ¥ÏŒÊÅ€g_ĈQc±hq±|x¾±º*-š755wêœfáæ45‡Ÿ›V¢$0óCqÄÝi®„$5B=˜c¾6›fŸŸ¨ ^TÑU>üd‡'ž‚!ó1{n¾pãwI—#V€%) æîLäCéŸA¿¯folÝìî³% Ìqsw­Íއð\l0ޏïܹS6 S-9§­}©žSœÃS¢$%cæd~£‡D5•_¦ÿË_þ"ƒL‡ò©S§äºW~W‰3'¨pâ æŒÊÕ4üt&?=²|ùrÙh4©ˆøÍžoSìv'š{I‡ímÏ£bæ3ÊÉxn©œÏ¦µ¦…ž1cF+¿±h6hg¥®,W7mB–¹ œýF³Ã,Ï­í%½¿·=Š™ÌtŸ?øà©üMëKpsÕMqq±ôĉ¥«ýÖ[oI wV\6 ,6;\u.TX³e'Î(vv®óËe£épÄ¥ó{á°YQbï>Ï#¾Ï£Üì”3³¹4唫ml.zá1 c²È¼yóäÙ®Iƒ\"šYâ2, ž›×¼®â¿¥¥¡8:F°Ðkšð‚W¶E!¹_¸ç‰Dð *fŽÌ\"ÇFÒ¾™û¡ü¨Z£7n7ç¶9âM@oÙ²¥‹½Ý!“7ÚÀ‚ð `‰hrs³äÖ×ùýçXËPœÖê¾ç–¹Z-­Ýš¥síÓ`©© y¿%…™a@vÉX2Ò‘[£¦5¹HË.ƒáR €ú¦ÃlÎAZZNICØça¹æÌ¶gIË4éODK!3G f®c¶É¥¦K­_Ÿ×ƒ›À¦•f† §¯˜µë²WÀVbñeaeëÈ ¼n_òFzìu â\-%³ Ìúsì»èè> »$õ ÊÌf”Õº„·áB±­Ù§·¿ß©÷ír=zZv1jµp¹›QkI— ´k€òÔHöãì°ÐõõÅÄ‘žÇOð–—nW ²é)˜rÐ Íxj@¨˜9J0ë?~Í­v¨i­K3ƒ…äúQ˜cTXr•å·€ìÔ mTDíüi•ÚcúÏiÍæj³øI ^47{P–­Vûû±~Å2DÇ»+d2‹}ÖÞ!Á—7Tüº¾Ë¡Ê¹¯)å TÌ%˜ ^í#×ÚG¯€MPÓBG怞ïK«L·úÁdDx`•V¨Æã 1`d½æ&T˜ýnvZ:ÒÓ­zðýŒ³ÁZP’Éórán©“–;=DL©¾‘Ë‹ey…ÎÔzÊÚÀœb*fî‚ef–Õµkׄ^mý൰ è.ƒYXKA’nAS i–Ȫ Ý5¹`v¶s†iS­oÚ§Äå{]Ôg¶s0}ûÒ̵ap­¯éi~0†x?E¨o4å–9Å TÌ%˜Ù0òÇ--­¿©F & ;æ8**$ÙGrëìÅH—ñªÍ?d®&»ï˜Œ\Ø].Ôç´ÆÌ(¶»ÐÔì†-'½pžß¼¶¥Æ‰W…ÓLÇgùÂYálÔº›t#ãZ¬ª¯¯6ˆ–&cÿæŽÔ7R¹·Îç­ˆr‡¸Sƒ¹é¾ú¸Z|õH%3G fŒAÕÅž ¦[6Ÿµó`n–ñ¨~´˜d®æp.®è¾5Ý9Y°ÙÌíÁLZw]«ÝÝ:ò«'KȵšýÇe¡Îk|?O­µíx;ë*ÎlµÏ”¡Œê›0ZþyÄëÄmGVšžBϽ†”"€P1s”`fCh_®×ÑÞÜ +›íEs“GÎc»=¡0j–Þ@ûiU}Üë•Ç4{îÙv®·ÙGœù~ÍÓQÙþ¸¹3õå™.ƒE!!Ÿ'°ÎáH!RBÅÌQ§šôÖÙÌ´Ò\@ÒóÒ ­SPŒkÑ¡²lu¯¡ŒƒÓÔrM3wð3°}ûöÅí·ßŽï|ç;a•ÇðX~¤çÅ g… NO\ïÒâvÀVRwî¬×ã®t <ŠCIÅÌJ”(0«˜¹Ã¢È ”(0÷7[‘(Qn¶"'ˆYì[ç°ÃQ×ûW6)23ÇÌÝANZºgT:D‘¨˜9î`îr‚p`6üBF -çIâCT ÈTÌw0w'9AûÄýÀ5ÖáH¢KÊO:`L$Ð9¢EF bæ„süÉ ÂH0›KPœcD2€Iû¾5ÒY:Ö—-[ãKot“ø C$òœ`Qd*fN40ÇŸœ ãDíI"$íkÙN:+ê´ ¤Y$˜›Ú“D"0>'XŠ™ÌÝCNà³Ð!‰B DJÚ7й}`Ö Ú“D&>0 *0ŒŠ™ Ìñ''èQ@’HIûÆ`ÎÐ9ÔÇá;I|`fEF bæ´Ìñ$'èQ€1É@¤¤ýö¬!->ËÄb¢'è(ñAZ˜é2EF bæ„s¼É "„#ˆœ´ïwÓ3-pÔ9Û˜:3ÚÜìv¤‰Œˆ Š™“Ìq''èQ€)-Ød‘“ö¾–‘eAqnzi€é@$"öç(23'˜»œÀ˜(ÀÛ:OÛ‚d íüPIû^?©@HiG:€ 4‡'Pd*fNI^r‚ØJ,ˆŠ™{T’—œ ¶ "EF bf%J”¨˜¹ë¢È ”(7[‘(Q¢bæD’ž''ˆKœ2„![ ɉTÌ%˜{–œ ’:„![ ɉTÌ%˜{–œ >`ŽáA|ˆ bÞIN„ bæ(Áܳä:˜„IÂW֞Р4˜Ã‘hõ _ßðÄ!¼‡7"¹AGÛO_žìD*fŽÌ=KN€ðIøáÊ‚–;ZZ­¥Ñ‡èB["®Ÿe±Ášå+³7‡®oh²ƒH Á÷êj,òãíÚ9ÅÎ0f4ňTÌ%˜{”œ \~Ø}Y–u¢ž>ði)‡Á`¬ž¡Æî€Çº¾ÆÄ‘ ÚÝ£Å%NÒÍp{ÜpKâ ¹Ú$õˆTÌ%˜{’œ \~Ø2-EÐæõªsØtù¿`îȱ¦¬ƒ‘_#2²ƒ(Ü£ÅéËË0£¶ÎÓø7µˆTÌ%˜{’œ \~GÊô®pšè¼>W5Ì8ÖêìP}É:H ` d.ñ84 j1ÕÌ©E„ bæ.Xæž"'—„¶ÌÀÚ„ë̱‘êÛQ²ƒHÔF v•ù@Ubš)õˆTÌ%˜{–œ \~GÊ2QæhõòÀU[‡´níc掩¾Ä$P¤FªC‰ÕgƒMn‡ïüV4E„ bæ(Áܳ䟄¶Ì s†)À…¶¸Ù>6B}È Ù)ÒÚŽÏBMCÛñ©N„ bæ(ÁÜÓä­ “„®¬¥¹)2‰@§P_Câ‚ÈDíëÓÜñãSˆAÅÌQˆ"'HNéíD*fŽB9ArJo'BP1³% Ì©3+r% ̽ÄÍVäJ”›­È ”t$¶Mr’3'˜“‹œ e9™È±¹’¢}“$@ÅÌIæÄ%'0"h–+°2‹=pï(Àœä$*fN20'.9Ax"€ÎÝ74)qºvïH$z°Î-EKKtϘ(¤*fŽ3˜•œÀ˜À·n9KZf¬ÂJ[k@X–“Ž ³sHR„MøIBIÂ’øë®»–Ë–´Ì’Ö/VJkl¹é­mesyà,ÉÖÕÅÑæ¥ÈãËÚ>˜Ç%¦e®ˆm«ÀÜKÝìD%'0&ðg-ù-f­9=°ƒº+üé|¼z8R‚ð ÿÆ÷Ž$‘HëNñ}ÞÒ æVƒL‹¸¯F"à[o]&:¶©D{Þ@Ò»Ã.€ëu13¾t@ÅÌqs¢’'-xÝeçûÀƒ„'%ˆ”Ðoxoo3\‡é׫«¡I‡»¦Ñ‡áÓÛ}Þ”eCKky†.»‰×³ÈëÕê®×–m…ÀÕ' 逊™ã æD%'0ÎÞ§e‹x±N¦+fúÝØp¤‘úÃf:¥‰ëhÊûYõŒ&»¦k˜õ$`ïHu`N@Ò3wƒeNDr#"€pùÇYÙ:zŸð¤‘úïiªc×lk‹ÏKIsHË ÌÎv`Î÷HDÒ3Ç̉KN`@`d¼®ÖÜà4½ËŽ” RB¿á½#½µ"]Óï‹xØQçl´Êˆ̾˜9ÅvššÝ°å¤û½ 逻¶æb{«Kïõ8`5‹X½5¨n½ØÒ#á*fŽ̉LNОÀ˜‚§Ö’!±Õ Õ†$%ˆœðoDBI"‘Ô•å¶•gYPÌQë°–9#€¤ÀæŒ@03tÑ?ŸÝbt=°mß‚¦€kë=™f9=—— ¨˜9.`NxrC"€NÎû†"%èPÂ'ï$ÀÛÒÜ)ƒp³mn»WÞ³9Ä=…t 3`f^ÀîÝ»å +×;pQgWXöO­¯²ÒØp|'ecfENó&SÂïý¦–f›ƒÊU‡|å¬ _Z.û¤dþæ>Zå”™9Îb&]¿Î *œž^ f&úÌK‹¹Ä˜+‰7ºÚ4,-re[‹üMs€6ecf%JÌ4\u¸oß>¹`‰™}š«-C ò1N¦ÜÜG˲1³"'P’ˆ²iÓ&¹l˜ùö{÷î•q3]mZg„ѼÄÌX™@fNAÊÆÌŠœ@I"ÊÆ¥!aRÁèj³orT›«ùènÓBÔTZmæ¤ô<³"'ˆcT«È ¢¶ÌÌ »Ìq={öÈ0ÆÎ쯴дÂ0·ìŸ4JÔ”žgVäq¬­"'ˆJªªªd˜G@Ó¨Ð:3v¦»M@³ÒðpÊŠ¿™ÕG/“}4¥ç™9AGï˜9ATB0–––Âf³µºÛ×aü¼ÿ~ jZjºßóá`Ç|RzžY‘¤9A² ¿8^³dÉ9vÃþW]]-­4-0]o˜–›ý’ ™ØoS~m¶"'èÅäI*.­/ûÜÂ… 1þ|é®\¹²Uùwaa!Ö®]+½J†‚)¿6[‘ôRr‚$Z]®Éf¿¤!YµjŠŠŠPPP ^ºfòÑb³?rå×õë×cæÞ©È z9Ao°ÌZŽ=¶n†}4,40ì£\ùÅåÈz0§tÌ¬È Œ«’Ÿœ ÙcfZdöG-/€ýS¨ú5Ú1so  R作 ÙÁLKÌ>ÈD -釞¢föI‚œ`þôÓOUÌ¬È z39AbD3ÇhØÿ40¬ì“‘Ü씎™9Aï%'Hd‚ŽÆÌZÿÔÈÖ¬YÓ föKî§eæ1)3+r‚ÞONÌ`zËÌõÙ÷ÝwŸ\ë@ ¬¹Ù*f†"'hó*r‚D3WxƒyÔ¨QÌøÃä´©æf«˜Šœ Àb*r‚„ö1m4[3—uöë×O‚ùþûï—K=éf«˜Y‰’ÍÖ»ÙéSO=…‡~¸Ì=ö˜Õ&¡Ÿšg†"'P’¸`Ö[f®Ñ¦UÖƒù€ÅbQ1³&Šœ@I"ƒ9xjŠã6Ú<³6šl™SzžY‘tc”ÛdÉLŒÐc`Nö©)ENÐ}uëN²‚d&Fè ˜SzžY‘tôÞ‘Á©nÝIVÌÄ=ædw³9AìÉ BÝ#YAûg® cq¯ÎÔEÅÌ fEN+r}ÝŒîLVúÙ %L};t/.mÍl#1HË4é_¥Ú™ºÄY8øÊYÀrFeÆ Ò ˆ`ñâÅr,gõêÕ’ø³0¤ÒÆ|R:fVä±"'&ˆ@VæÙÛKøúF&Fðß+-5.7Ü.ø  ÞÎÖEÅÌ fENà¿[É ‚ëéáŸÝ(þ s­ˆ÷ UÎ}Mª‹Š™ÌŠœÀhÀ¨óäÆ`}ðÏnæp×êȽÒüi§þwSCY˜;Q3'¸eVä]''hæ÷ÿì«o4å–¹uéÕ`Nv7[‘Ĉœ ¸nïîÙ}ƒi¦ÌbߢH׊T.¼–l¹C´Dªo¤{µ¸íÈJÓÝ+-vwKˆÑòÀÿCOY­Íî$˜9AŒÉ BÝ#ÌEB>{Tõ w/ßÿ!9B‡ëg0G›5•²1³"'ŽK“‡œ ùÈ:.*Ÿ9 Qä:›•däÉG¦Ðqé ÓHÊÆÌJ”$*˜X'E‘(It0w–3ecfEN $™,3•}ÌàêD–³Œƒ`›QƒÛíÆí#ö!=ï8F¯<‹W×7bry#¦PË‘[îÓiÏ#o³³*=˜]}s¶\À¬*fŠ¿ÍÔÍ<î<&—ÃÄuç0a­“øüI|Nq,uÒz7&¬9‹_Í9ÿ5b¯|¹±m¾ÛµìPœCäH:GÔ•ÆNµiGöQ¶1ÍiZköSº× 9õXTT$­9§}´z¥åe:"3˜‚˨ĂÑ~Ïóx¾Q9±Ãúi`=3³‚lNZóí·!WQ=7?ZÛþg'þ÷H¾?áþ3÷î^¾y øù¬ÓB>“¿ëñ€å,¶œÁ#gðë×Ï á9pI“<÷±¢&¯Ãëq¿ÆÍ®šXêј™n +Äà›Ö…åd|ÿÌ,üdèR9è3xÙd O>Wtö¼ý$B§ °ä‰Ž?ó°/žÇ*´è°Pè¼£ÀëBç 9(ÎÛç»Æ$¡S‰{þ –‰ýÓöŠÁN¨G¬ûOŸ“mÒ7{Ì–"–Ðzhy«Jc§úA&öMvxöWZC‡#Û s e^»ÆÐª'tÔÿ¦¥%™+W•íçñšç¥]›¿µyfÍc –z4fæèH, ²²t&Mš„_?= Ž^g–œÃhæÉïø€üÚÑñPæ(b[X/€Ó,>,= ,kV\ðm—ž©÷ÇãgÌâÂcMØó-âÿRpÒ÷Œæƒ>ËýR¹W¶Å#¯¬Á‹¯Î•K éö±³17Uil•@ÖæsÙG ‡–™n6­!§„8xŪÑË@ÿ7¯©mƒ•/£ýúóô×Õ¦¥´— ±Ô£13Øl,²Æ„g9°0~üx |v8~=<™yÕÈ^}Iº«Swû,u¶ÓgÕ^àxã˜Ï 7ø~/<î+£uÌÖÑìðYôÉÂ2Î8˜¸çÀæ¾—W®xÞì5—ðô¬­xò¥¹÷Çér„téô´¿Jc§i dzŒW9ŸÌE"t±ÉºJK;«©Ö—ƒ·á”V>Ò1úëi/Ö"–z4fÖ[æà¹36çñòóó1vìX >ƒÆÀ1`À¹ÍÌÌL 4h†Šœœ9ÐÂÕ>l;v,v2#÷Li×U[R©}È€î.K«LcCkÊx5\ÌÝÑøœ1xgby¾h4—;–¹Ë13çéè&²‘´±é§XFëÃ7 8È@]±b…T®ºáþÞœ-E LWŽf;°ÍøOÓrPµ¥±Wý÷ÂØGé^k$´Î,Õ½æÎÖƒ`Ú<¸Ö/z,fVªTiâhÔ`V)vJ•&žv̪¨Ï ½Uè…~Iè—…~Uèׄ~ÃÑoúoòm¥J•ÆMõ@þ†ƒ_õcòK~ŒÞêÇlH0ßâGü?ùß_ h¥J•ÆG€ld•‰Ù›ŒÀ|³ÿ€`ëü¿‰´R¥Jã£z kîu°U¾ÅÙ`¶ÎF€þºÿfJ•*~=ƒ­21û9#0ßd`ƒýU •*UÕ»Öz ··Ê!Àü9무>†þg¥J•ÆMõ1²Èí­²Étc(0ߤô­!­Yi¥J•ÆG¿È·ê€|S80ßhè[€Z©R¥ñQ#ßbd“é†P`Žh=¨•*Uý¢oá€Ì7„´Ôz`+Uª4özkˆCÙdú¬˜?Шõ–Z©R¥ñÕÏëpwSH ‡³è`P[©R¥ñS=€ƒA|ƒ¯ŸùÿÒ˜û†_¤„)IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/mainwindow-docks.png0000644000076500000240000011057012536324503022714 0ustar philstaff00000000000000‰PNG  IHDRÇ.tÕN¯‘?IDATxÚì}ÀUµõ™ù’¡'>é½¥(–§”P$„bù•¤ª(XPé%¤Z@E HA, àÂ4QD¬4E$´„äÎüëÎi{Ÿ6sÓH^þ?ïãÞ¹sgîYwµ×^»¨ªª®ë¢(ä¿ÿ'ö ù[¾PþAŸ2ÿi^Nß%ø’à ƒÛ;û¡œ=ÞGçøc§à¼ÖÿLœh}Ê9†àf]#ñíľ ÿ…‰7š{§ø0c§<÷Ä•ìoߺ+zä±-qâþ Æ>Ø)´ž²ÿTâÃè‚÷K>…ÖSÀãP5xYûW³ÿ`ìóá)ø¸˜14¾ip³Ä)$À´ zÆ>ÇþÓÿ†b_XðZñ!&ø!8ŸsðÄ<ߨWÐz ‰]uÁÜŽ§» ý¯)ñe%¾Üà]ÝŠª±—¤?¨ôG7oN!H†ò)t9…"sÕÌU3WÍ\5sÕÌU3WÍ\5sÕÌUçc®Jµ×ëÍ?1 ˆ±Ë4Ì¥o¤Ø/FšäÆ>¯V¾üÕŠ‘Ä6b§þb_|úW­õÛ . bŒ5}xžB®»lÒ ÿ·9ÍŒºebI”øÞÓw~ëfùæŸS0Ï⟡¡!óˆRä£þóŸÇ7}úôô":vvy<}ïuÔ.Äu r‘^§q'ñ‹’ƈ ójO¼>±ZO/ bð:žBL…H\±éCâ€c—nw*Ôq•š¾¶»œBšñu?…Ö…ù|u ¥­9~ òŸEYäÖ[o]guÀJ˲T\ÿª>ôÐCo}ë[Ï>û쥗^zæÌ™±[1¡qWm)ç ·zBWMÿÚ¤•‘VªºpÕŽjcìî( ¥ÕçV0í¢NÌ‘SH˾Eÿô .¡Ã¦?É´ä•féUQú…³v ­:XÇSH@R>³·aÆM™2å°Ã»÷Þ{7Þxc jŸ´RTýýïÿ®w½ëxãßøÚk¯Ñ÷K| ­ ´Øb-Xƒ~â‰[.(…Ä([ð¶Oü„¦×1æÕqmÒúv¬½$¸XkY/¡"ÍÙSHÿìÍÚ)tüåk=…Ø¥›^œu”zçÛSH”æÃSh]úÌSlŽ1â™gžÙl³Í~ñ‹_¼éMo £ê;ßùΟÿüçÿõ_ÿ%Qµu±Üe=ØŠª­¨.€.µôÒ²ã)´¢j š»,]”9VO¬v»\ˆ±þ*̽Shu2t<…˜Ž{— ì\÷Ä’‰úI¬êÒå~žåSHèuBB ‰BzÏsõªVÍ©S¨úŸÿüg«­¶úÕ¯~ÅPáß ²¿ûÝïþû¿ÿû®»î’¨ -9ÍWM¨¥wé…a÷*SZ¹KàfZ²L#]*æ‰ß¡´4Üeáß½Z5û§ÐE.oU!Òºm—O«$×Ea Uíu?…Ž´0Ÿ‚AÕw¿ûÝ¿üå/ßüæ7C8 sUPYŠª‰ð …´Z•.dµ¢R u-™¦À]lI‰=·Š’ý"­Ë™ÄµÛjȵš`âéeÍœ=…tq,vœ]üŒ­'ÞÅcÐZ­êRyO¡K©g!?ƒªN]®šQ5£jFÕŒªUç"ªf +sD0V¾àš«c@¬ÒØÑ¸š€¬Ì sÕÌUç.W5/>|xð7 òSº)Ð9<\œ¸^ñ”ü#]sÈ\5sÕÌU3Wý?ËU_xái|¦ûÄuµì²ËÄUŸþù¥–Z ÿ9uêTóÚÌU3WÍ\5sÕ…HWÅÂU2a„|pñÅ—LW®«å–[îÇ?þñ’K.‰¿åöeóü»jþ‘à‹ÿÄN^yå•-·Üò²Ë.Ã&NœçZYd‹ÜFšXŒÚ`zñ Ü!Ák É5o—6äf®š¹j檙«Îw\õñÇùå—q9rÈ!£G>餓p âB\mµÕ°€uäÈ‘ØÝ)Ó¦M“«ûE]´×ÀÌþ@Ëß5×\ƒ—¼ÿýïL¯¸âŠØò¥—^zõÕW±%®ÞÅ[ {Ã;b?xö9¢ùí×heÆöØ-vŽ?^|ñEî¸ã€°[l±¸*.H@í +¬€—j¤xpüøñø÷~û퇮A€2psŸ}ö¹à‚ .¹ä’cŽ9fÍ5×üÍo~óë_ÿúª«®BÀ`9®m:އ.È2ªfTͨšQuÁð«â:~íºë® ‰;PHȬÿþ÷¿”€¹ƒ>° µëú?üá`š¸o¾ùf,ÕAN÷Øc;î¸ÈÊ è„\°Í6Û|îsŸû¾0cÆ pR,öÑÓ‹§£xGüûSŸúÔßÿþ÷ýèG ¨_üâ?ò‘€Ïnºé¦§vþ‚¿ç=ï9üðÃÐ`Çx»ŒªUç<ªæŽÕ¬«Î½ŽU‰ª€0 *øé“O>‰« ÌñÔSO½çž{ q‚`"Ðçøp²éW¾ò`ëäÉ“ßð†7@NÝÿý…«¯¾úu×]‡=I¿PQ£¸Ž§ k­µÔ[\½Xò_ýõ §?üð 7Üð™Ï|æü£d ¨›ÊÁ^±O`4Þ—*YWͺjîXÍ\uAåªO<ñþøÆ7¾qá…â÷èíõé§Ÿüö·¿ Ú+ÖòxáŽ;îˆëõ裆* ¸ÄÞÀ^ŸVAf\ ¹àþûïÿÉO~râ‰'ÂqÝЧ€ªÀPlŒ C18ùä“o»í6`+€0jÔ(lœ€ÌU³ sÕ«"Xò½ï}¯SpU˜n¹å–üã` œ([¥BÅÏù;ì(<è ƒp¥mXyÄG`!6 W0RÕA Ö[o=¼(ë˜êšXæ»±•Tðžz¶Ž`ÓŽLÑE‡mý¡îr±«­UJ¯w¢dDr®ž‚ˆÏ­ˆ«Æ”Š.çôu’£»»†»½ù事lt"ú,ðú2¨¿íu?ù=Êh±C˜züLļPæ W•‰Å8 ÌB>âÚ¨Ç0±|nÕ [ Wë›ü`ŠøND##qѦ+<Ísc²zZ îh¡ïI‰åsì'ª{Ñ !Ï¥Sh­VµžB«JÛe¤k‚ uoÁè^­êþQw?…Žfá9¢ÐSgB¿"ìh)ÆÝdˆÍ§ˆCŸ4š•‘#’‡è2çfŸM®:ïtU™¬TR#]Np – Zù»—¶[`ž¢:ð‰àCH”»·‡u©zÇ6KwŒtÑ­bõÀA%ÿà×”^­§ÇX%N!Qöíx i*Ýñç0ñåv©2µV«ZQµËG7oN! vþ)È>7½!Q®üæ“S0"'B|€€U¼j•ƒªxKS€K”º‹¹jÂÀãªâSÆo,~le»zº cÍ­UòÖzâZiõš$´àîÒA«©eîBâÃì‘»8íŠ^«v‘.‘§¡„#­K¿uú”[å,ŸBÌÒ¥K;íS|]NABÜ놪s\@tÐüŒªˆ‹‡z\%©eTͨšQõÿ6ªbm:¯€…UÓU—ŒªU3ª„ª²Z…Ú þ@BX¢ö›Q5£jFÕŒªUÛOw7ŠìÈÌEµ ¹·ÐÓh•b¡CÕ¹çWuPuþ¬V!Ž  íÊÕª\­ÊÕª´¨Š9 @ULs¨:V«æªÎ»€U³ £jFÕŒªs· `a«VÁ¯Š¡rÙ€¬Ì¾ðùÏNÕ¯ýëY˜[V²_5sÕÌU®*”ƒṗ…ǯ:ïæV-¨Šéð‡~øÿûÿ/£jFÕŒª³‰ªrí›Qu¡Vð¼ øh°ximŠÍ @V²ýªÙÐÎUÓ9#™«f®š¹j÷ŽÕÛn» Ðñž÷¼g~îXÍ€¹…ª³è3ªfTͨš=Ù0˜‡7~üø·¿ýíòð²@7\4Nòß[OAÙÒnÑåÃô_ë_EÁŸRü[þ§ÿ³0GÀ( æ ƒª~÷»ß]Ø=9]%§«ˆ¶Yæ?}Ò…^šDˆx´Ý¬éª­Ä*Á3ªÎ%T5\"¬sºÊÂÈU×_}ä«îµ×^UÓ\ŸÕ}÷݇±æY\£«¬²Šäƒ]î ¹\ÐКƎ;(WÅk_}õÕ;î¸cË-·”æ­\2Öe¸MtNFÕ¹êW=ûì³ñsÌ1_rµ*ûU³³*:ß>œ]wÝõÆo\}õÕñ „kæé§ŸF¾_)'áßry.ÿmì5rš…Ü æÙüà?øÈG>‚×ÊGäånŽD>"i^(‡ôàq)Û=õÔSë­·Þý÷ß¿Î:ëLŸ>ÝÜÒ#)w"-“òW^yå .¸`„ r=6ü!OJ¾)þÁþéÄN'ëª Ü)d¿ê¼FÕ/|á ;ì°\«òæÉ¨š@Õ­·Þ>1‰qÀÇ÷¿ÿýÿó?ÿ³÷Þ{K¦oÖ7òºÂeS¢$vrÓM7Uf›ôG¿¼Tq䫤¶+Yþm¢’ä¿W\qE êÎ;ï,Ø9¶à’+ø9…ŽŒª¹  +ªf@FÕªb:. SO=UŽ{Ã#Ç{ì 7ÜðÐCa›G}ôsŸûòj·Øb‹3ÏôÐCñæ¡;ãƒ> µ|»«¯¾¸R|Ê)§ xò•¯|›Ä8â\ú ¹gœqÆÆoŒ òG?úvŽ—@(Àþñó!P9®½öZœ#Þú°Ã{ä‘G6Úh#¼éºë®ë`kFÕ”«fgÕ\çªr!)]³_µ#ªâòjþžBåâÚpà qaAKPþõ¯Ť2+ð½á,´‡ŸuÖY·ß~;öùÞ÷¾wòäÉ@CÌÂå ªæ¼ø/˜ï“O> åÏbbÇc=¶ÖZk7áâ襗^ð Œ^{íµñø.»ì"÷Œ‚“¢Nò|¨µÿE]ø§?ý)^ õ\õSŸúÔøC(Jx/%þØ`ƒ öØc 8Žm›m¶9øàƒñ¦÷Þ{磌®ŠWao_ýêW§L™‚7Rg®;ù£ˆ_)´Õ@]U cFÕÌU3WíÎUåzò( íÿøÇyçwÍ5×€NÊ—ãAØ*¦£GþÚ×¾ØÂNXx ƒ€*ÐCÀ1vuàšzþ ü‚Ò >»é¦›ã°Ï}÷ÝÃz/¹äÔ¸pq‚[—Yf<òá{ÆÝè9Ýl³ÍP4øö·¿ò“Ÿ@Ûyà€Ë ­˜ XÄãÛn»-&þF!}ôÑ ¹cÆŒÁÞ{È~ìcûЇ>´Â +IÝ8; ö‘G =AÊDU³_u0T]ØtUÜápÀŽ;î(?‘Œª¡*„”X Õ¿ ¸©°Žþô§? œ‚¦ úË_þ‚+ /Á¯,8æüc”pa<ñĸ*à–Ÿ¼ñ±b?hÎol°âÚ|óͱ=DÕÕV[ «ò‘#Gâ0MÀ7—õöÛo/—ð€K±ÁMŽ÷3Èb>ùå—_.í›ßüæ¿øÅ¿ÿýïøÞ±þ†:üÁ~R˜,\  Œ;èüÏþ ¿ÝvÛaç±:xFUŠªø¸ð!_uÕUó3ª¾9Ù¯šUþÉ9PWÈi§öÊ+¯à)@$$HÜHÏ?ÿ<À‹qXj$ra%x÷Ýwë[ß‚‚ ücÅ…ýà*Ä’ ƒôZ±=Éwh€‹×(x+Hî'?ùI@ÔRH Pcâàª@U0Í|\/ÄQûð=‚ÀbÏ ¹RØh¡ºø;ßùŽ<¶+®¸Äˆùýï_á›o¾P  ígi¯Åޝ»îº;_ ?ûÙÏ@)3ÈΪìWÍ3Vè ²ƒj ÔÀŒª­¨ ´Â„e2.\O€ª·¼å-¸f[¸€ž&%gÁ¢8‹"ÊP¸Ç¤;õK_ú®T¢öÜsO”¦M›†Ú#>ùáËë%¬ÝvÛ  ¬ÒŠE=ž…$Š" h‹E•ÔUa±’\p†{òÉ'ÄñZ!æ‚êB¾+A¨¥öÝw(34¬ýq.ÐaQïÂ?ûì³»ï¾;`ljw ? 86øøÇ?nZ†2ª:§ É ¾;|ÈpÔ˜ŸŸŒª™«fTM¡*0R#˜&*¸fÀQPB%•%(ª@4¨œXM_yå•àƒ`|à•¨Úc3à#0Èœ,øP ÀE#nEyEÊûÿ–u*l)`-÷æpUªX±–G¡ yú駃ë±–‡€‹§@3!ãbªvóÄnñBà;ް‹w„À r 5´W,nPZ À4ļĘÛ3ªæÉÕ)T]ÈuUÜ3¨„à®Ë€„®*KIX&ßzë­òKÄ· 1–¼~ðÝ3Ï<ƒ:`į˜Ân…e8vØBu—Ùe—]Þ*+?Ð 0ŽTW^rW@:¸ °<Ç Á:˜xòè Í?xS¨ x-¾;lƒ·Cw$ü D=6ÆØ'°ˆ ¿lRø®ñEƒCL—¼ /ùÔâo~$°€2n?lƒŸüúUvVå.€ìWÍ€¹˜Ye\ßø·±ßÓíÍôçÙÙ,#û Œ-ËÊÒ7xli 'lL0gTMœÂÔ©Sñ‡ä(óm@άʓ«ç¯Ì*gλñ$:+áÍ’EþMkýF”W…X2Kn#ÿ¦ ©toÆ,)Æ„ZÉI¶lñ’=?4¬^Þò~“›VAò®ü|û¬ÄªUP¢Q­‚Ý"Ï­Z¨» êÁ1Ž…dVf9_•î-mev>òUoç[š% /©+;«²_5wät•œZS«3ªf ;«òܪ§<÷<·êõM<ꨣàAöBV2WÍ\5sÕÌUsºÊ\㪠›_4¬?pYf®š¹j檳ÌUýÉÕóÕ)d¿jάÊ\5sÕÌU³_uUbÖU3ª:¹v )´Í“«s@îȨšQ5{²®:‡tU4Yâ§ŸKž\uÕ¬«. “«³®š=™«f®š¹êž¯š'Wg®š¹j檃rUÙ싹HÇÈœ<¹:ûU3WÍ\5sÕìWÍÕª9„ªI„ÜLD#çÉÕU3ªÎ&ªúI4U³ {2ªfT\5£êBÍUÍæìWͨšQu6'W#ƒÄ1ë{aŸ\=œUØ'†X ^â—9&™È)ó€ ®áû0o!yš½™ýÏ‘ÈOac'64Q½IßÁZ ‚Ôòcõ"ÿ«ñ¿‚Dñ­õ§¨ã:žBëopúG(ý-$>ðØÍ;ëDi.ø{œøbÅÃoXÐOÅ^Œ½Áˆx0B3Í` 0¸&™×¹Oéã&ÙVÞ§‚gøÎÂNdê®9NÏë6·jÞpU[éDÇû›}:—ÈlîD~7˨ÝvÚ)O®Î\5sÕÙtVí¿ÿþ@UŒÎ¥~U¹Í ÷©àcfa'ôAiQ˜w€¹ÊU±+Œ·Ä5, 0thÔ¨Q˜È&É#†_âÓÇŒ ü¬aèªð×.¼ðBL™_tÑEñ8 On¸¡ÓÁ¡bÐv"šhwÌŒ»þúë±äm´ÑFî&w‚ KÀçIë®».v‚m°œ¶yãßxðÁKgÕzl°Í˜1X¹ôA¿9‡þyáßÎÇÚüÕ6ˆæÁÚ|yø³&0×ìBnO?áß òÁæ•B¿‘ÚÆ¼ùØ›ÿ£‰p»Y³³·B¿‘ùwøVÑÙ§ä~èÑÒSèÿ¯îoAOA_}BŸµýHù 8 óvúCP»²Ÿ­}{Aê·£t õ-˜E}B~.ê#’ЫùÆÕ±éýÔúPÕÉÊKE#Ù‰=)½ »§ô³µ>ž‚l>þ%:W¯{]˜oA^©ú"–ï%š‹š½Ü~æÃ7oÁ?dÜSK-½ôe—\2íÕW17SÇq÷a$îMl…ù`³¸ÔRKs1Ë}7…Ñ/á$w%:]aÒ-&Ée;æ‰áfÇØ fžc~¸Ü €lüøñr'˜IþÈ#àíj˜‰±ix-póßø†cÀ;øâ‹ã­Á+_‡.€9ËU‘±";~0áŸÅJ+­„kø °óo¼ãב@[Œ>ï¼ó$ b>;f·á³Ã”y€ œ…‰×b¤0¶Ä6«­¶v"Q¸,GÂacŒÆÄO¹À1NÃßñ ,NÛcìØŠ/3“1û‡ºÉ¦›>õ§?­ºÜò¯ÍœQ¬T×™ºijuER”inBy5…]}ï‘J~ æ¦PüR—¯~w†ãô~67ý5&w‘ýõV·‰¼ýÔýjv®î¾æH… ?"ê¥ òéæ–䆓/Bng®D{:ÍÿÜïïBïI û{l\ÞòêÓ6oWó_{°ö‡¦–¯*4œÙÝÑ‹¶þvçæh ò¥qM³0ˆ(ì›Y’ ù)’_[òúæK³¿ºò—X}vlY~É–;'X)„°?äëù§`Oè_Öšó>{"ä0ÌGÖü­B~ÄBÿLÚß_É43”_S%j,øÿöÌ3åâ‹o°Þz¯N›ãÁ Ž×à<ûì³Ae€˜{ì±Ö¯røùg?ûYD`ÎÀ£±1H&ï*¤^j)ìà?Ûzþùçd@ LÀ•;ÁHs -¶AæH‚BaãÇ{ ¸Ùq hLÀ®$ªþŸêX?€5×]÷ˆvøèn»?7eÊpùA÷_Z*ÐÄÆè\0 ËYÝÎ AÊþtoVÙ़ãú—ŠÉYuæÍÈ¥}a÷SRbWÈŸ:yÑP˜‚¼]³¹„Úƒ9³‚2ÄfKy5¨Ev«¾ßfïú6jö"w¨!ìùù17|¡“B  Ö¬ÍÀ1#Œ`j…ÝÍo„z#áÜÞµ ¿3úÌ,¾5ÿU[ÚNy½z)_4;Ô¨ªÿO^ækõúׯÖ?½ÍßUm¿5¼–.)DÍfÀÈ=”7ÈhþÆ š{VÝ`Efoxÿ©÷Lw%*ýý×êBE0Ü;µž÷¥v"?Ký¦vÏòç¥ê©ªïÌ™£GÚë¸ã^[eåk®¸b~V^]uîU«dµ2³ÙF-oF“¦ H?¯Ù܉l¬êÏXo½ƒß½åãÇO~ñÅaÒgÇÀÑ6ƒ ‚¤}tÓ?û…ù ä«$q)åÅ-ØÆ¥^j —Fc+ÿqÿ°ôš¢<¸œšý)XÔ_[‡5ši,(Ôª“þ^é_ aÖ¤|mëþ6Ðe&÷$, ¬ÕïM+68â¬Y.kš)Ù£_f1ü’ Iä.„7TÕ,·YUŽ&cÙŸ$xµÄJªÞBÜB\QØßØ|C¹Ü-= Ó˜®®æ’&àXS¼spPðm^K÷Ó«Í/SU«Ë5ˆÚÍÞ,)6M60pÜ/¢,»ì¾§žZ®µ&P’–¤æV¥÷cÇû”_†³²Š ²õºåÌÕŽUÚšþµ¡›=Êfm'ªŸx÷–î²Ë³S§É=hrêƒTFåýFÙkIÈ`cû¸ÿBó·‚;óî±7¢¬—«î>Ë6:šÕ1š“"O‰Â-V”eA„9É— ¾(e­,5ÓmÅ òš‚/e~æ÷€ þÅë¡‚ëªô–³?c®Ä( ØÙ‹–ÿhF©nc…È,èƒuà Ù/€ÙÆŽªâzte%üß^ÅTlòZÉf-¦hšÉÀZÃY±Ú—‡þnÀ×2ÓJL÷ò½Úëïÿ®ª:òî(Ã/?jÔÄ“OZkÍ«¯¸Tu–†ݧô+žµ8S_O¿ê–®ÒGÕ-·ê£ê /€«Zrg¹§( èh0© îc#KÊ A÷œÚI|v„zé­ßŽìª(èÇ*!•œwÜ!=A[ZѲ€ cJîa?v}EËò [ÖÐgª/:ÍYY4v{!x)]œV@6k@««Ã‘¿[J¬]6Í!ÒhÜJ)j>õ#Q×L®mî Vø"è3Õôªø–d?Ud3²Ò2«§$©Ll£.Ôþ5rU-;i6¨ÃTÃݽÂèÑ{Ÿ|ÒÐZk]­'Wçt•…4 ¨zÈV[°ó„g§Lè)-²U*‡Z‘Ú€T9doѲ°KPsHFÍ 8Xs¸T|0„€ y‹2”R% ÕJ%{S ÓŒ;Sá’êÈ„ëúY>S@Õ¯ \ª½¨õo ­¼ÍT$/™M­pVÔôDäÇÌÖøôø5™u\–{6¨S3"/%à\Î"°,#ïeÙ·|Ó†ÞÖ>ÐK‘Tí‡UCWåpäUþ 'Á ”|]Õ3{Õ £û\µ\s ÊUsàÂØ[%QõÀ }Tj¸*Å5 ˆ¥ˆ€ Ǭ]¢Z’ ry$4ñ.t{öF!H eˆ¥†·,K7 ˆRŸ¢²GŒ ¡1ÝÔdXA°b‚ˆæËuW®«f(q U<@Ôä£Ðõ#Á±•b™5 èåp` 0ÖЖ5½P9 Vu´M­j$‚36êî„Áwð]ÌØ H£ŒžxÊI}T½üŠ…=µ:£ªEU\b¬¬"ª¡ BDµí$Ôpäì¶Aja½0 H•1 ©jÍì=+HUŠâ©àúi¡XKô(˜*å·0º¢Á7 ˆÚ j]ñåŒàŽ]G_cɉU_}!µ.lFi!È~ztšUs;°Öq4d›‘:{3 É×ø†ùÆ)mM(-£«þa;ïÜÀ|ò½™3—Ã&žtR¹VFÕ¬«BWªB˜ªPUÓLWëd€Øª¨Ê"!ª¢£€Ðaíïn#ˆœ*³Cä¥Ç…T#ÔU¿ãfsuUíÁÒ dë Êô+8ð£U‡©aÞ±ú{EKæŠU0tu]ÿ êyÝÙPT÷6#Ž.¡Õ€ °Ú"ž/Ôª”ZãWÂÓZA³ë^Õý6ZuVW«Äøÿ½3–=z(ó=ªæÔêy¡«~bk‰ªSûŸˆF™VE•UuÁ•T- ©<\v×þQ 褎>PÄÉlYø“ÍÂj@A™±X!Þ'­51º‘â•ð ²F,-D¢¨ ußZ”«Ÿ©ñ4¸z#°Â*¨µþ_mm¤æW„žƒÅÖÆTäC'ÅD ‹UÕIcíóŽZYZ]ÆÚA`Dð×ìd0º;Œ>ª‚«ŽµÏ)'—kÌïºjN­ž' €DUøU¥{‰z0㊪'† ²ê )ª­šldí/°…Tê p!Ux,Upì®=øf«~½ä·¶Yd-TKZc0¦hÅ¥gݸª‘t ÞÿJ¿tëKeÆ2½ê×:"ÓÈùØzw¨ô_̰ÖY›§6ë$ž01ªÖ³¥®zogöz³ê$‰ªyàÂîè+_u˜DÃÝ‚D5Êd Š•ÝTɵ— •ï£êÿß¡BÔáÍü:XØ6À=[‚´*X¿ÎOw-|ÞJšHkëÄ%è‚´u²fÒûd‘ZûnGrÌs^ë&/QXÅ–ž,ÑU…8  X;Õúëàf®Aª h¦(­ç²*5$éªDÕ}4ª.쀅U×ýÄVÛ¸ë®Ò¯© EÐ:¹äÊŠTŽ¢: Eª–µ¿l$ nSìVÝ!µàþVu^%[ñ[<z±O~FiŠû|ñô8é*þ•à‡Â„r“4V̪{ÙˆÓ[CƦ°:èÙX{Õ`kRJŸµµ©&ÕÕZu«=È^6ªç‹•#òöQºê‰'fgUÖU˵Ö]÷ÛŒésÕ)/ +‡hé?\¸—*Ëd&ªé·hï ˆ­ý‡ºÙ­Êx¿€ÛY@Ìl\hj£dáóSãN“¡ºB¢"ÖRårÕ`“U]ÛÚrþ;ØJÚl–OZÛ5ÄX}K)§¢ K@'Ðìj_6 FWÝ·hœY«ŽÞ€5VϺjFÕu3F9«Êaýú8‹dˆã蘤ôŸ°ý·#fÔ³5+:0Ku,«¦rEŽG#ªT _Ç;<@pj0xÑv7«‹þÆÐZD<&NÅÅ}óß®óŸ•×jfÚð…Wú§x$‚ŒÕñóSŒ­êkÜÞ4kÈk›<3€êÿ­£êªKWû~Õ>ªN̨š«UªZµÍ6NØ¥é­òËPáÂ=¥™¼ôO6Ð죕¨¶màVºBîTZ¡2Û$”Ùö.Ï@›?)EméЉõØÏoë<¼Ž¹œ|›üäõVº„ãN5y¤cÕäššB–\[ ®¾O•C“ÙSQ*®\Qðm/[µ"¯»AÒ»"¼5ù ©¢›}øU¡4¨šýªÙРêÔ)Mv™Î{ó!²H—¨ÚÒ+Q¸_+Q¤¢VÙÖm‡TÁµ­ºEÉ%T#²Ñ¢všAikSQˆ °¢§¹Y¡Há„pñš•‰Û‹9ÿ-¶j(-äïˆ •S ÕúÃÀJPÏ%³1ñ´‹À/Ä·öA¥zXëŠ7þ«IŒû° ]a4º2ªæj•¬VmÝ×U'U‡†¹Ëÿàâ]¢L­ÝTE7Eµ5X æ.`•.²x§Elíïé¾(ìBjË^Qä°hkcuÊP¼#À€°ß %hS€ßœJ;VYy*‚ËáÒ?q§ZØ 7§Ú?’]à·¡gØÏÏ@³Ž,áE$0¥S­¿Ü `i¨##¨òUH˜!ýª ‚=óU·=h— “›.€¨¡ŠGDûu*t-±ÌÖdÚÚ±\¢jÐ0Dãy.^«UÐ?à[ý;C*u¾ê—ÒŽ›1€]ßYÅ¢|ÀĤúê->ö*‚AÄÓnꪜ»@Ãõ®:¿:..ËÏPï¿ïXv”áª9]%ëªýjR«ûŸˆñK:HrþL< uý‰j²å?%¹¡,°“SéãNÅ?i·*J+ý ‚’4-Ðiuu÷\ZÉXa½Uq® xo•ŸtnüR5wþ³ÀSëü¯„V¼ë¬¬ÖöZÜf ²§«´j磌 -×mu‚Ù œø®PÓꪮž€ì€]vñ„¬«fTí£ê¡cÆØGÕØ,€ie£÷ŒîçÔ©Ф íÙ#ª¢K‘Š%¦,V=7ÁR‹ÔX¦µÕ+y¦µ ©ûž 0TŠ ܀ƆEW©” ‡2ÿ…¯ ˜1¢Ž€ëAd±ºÉÓ‘ÉQΪÏ/B6Åàt5»r48¯YéAìå4Ï[\FHé59'M*V_-£jFUpÕ±5é*r°¶asõáÐäóþ¤ ¨,j`Ÿvþwè×*cˆkNárJN-¢¹«ƒBªcB¬õ"”ÁÊêòÞpŸ‡š‹&ØÏê[Sñ+^`•CZL tIuÖ« ‚µþª3]7þKù¡öSáZ¬H½ÊìŸy×jËY} £j®VÁpè¶š«ê +.ꑪ´ê.*Í~ª±¥³Ÿ.ý'ÜT¬u–Öþ³©NGV—LkÚˆ•˜?ìú¥¸¡*-$œÿ]r©[†P¹îT1°¶êítU´tR©ã—¿@ܱ/«ÊX2ªF€ªu!ЬâˆrAÕ\­ZÈ'¬ô¹j“YÕLX‘™ËÜ\¥ö\*NêÔ©T#ï§¢Å}ku¢cJ þÒøçÀl«(s¢ÈÐêb*ð U8U¸ÎM®´ô/¨YÞ®Z»ûI›?³%±Ù×áÞ*/ƒª®‰óŸEü¥LTu×Z?­êxµþ–Š|,߯ÝeU‰‚ÄkE&JÕ‚åø9+릪… ýS­\rСIG”7 Ìú‘‰ûÿ ô€'•«Íï\u^LXÉ €BU5a¥/”ÞSŸ?s\•fáê.ÿ¨S… [Õ!m†Ò¢ZG¬!'–à‚ ‹ dÙ ]ˆ`ÖªpFT™ ˆWõTr¹Övs™Ð)*Å’Du§VaK@÷)Óå‹ôº›ºLpºÎíÌO±QÇ»jÖþ„®Ù¨¯~z|Ó-å« ãýDúrò£¢È,Wf=TÍ€…>`̶ý +PʾPXík©¤ú/£šYšªú/*8<×ܺaÐô²T<¢ª3èÕQmÍp ¡yÑÍnUv)dɧÀz_“VÊ?5Q%H8 0²iYþ‡ÿZ% ×úÀÿ¨oßYã‹Yš.ÕVë§t5Ôj•O»Â®ü[WÉŒ:8ïo¦ç*è|–æà 9cubödÀ* UKÖR%cXÞŠÉ iªq›ª3¨uÖ€ÂvÄ'ˆªÏd»n ˆuõÑ!Ý* ¾Ý:µ¢ƒmñ©.W5À`« Tõ;¨âÎÿДӀí´mßI(x÷ç`f€ ]mëOuû´dçxûEEMþú?*®Ìʨ*â¯R\ºê '«g sU©ì¶›ì­’þÓË‚ó«‰XÉê§­þÅÀùGlÁ\:âÞá¡C­±&bu_ûǦf5Ö²‚Í—¦Q,…2QaMû2k•}w ®JÝZ&ÇŸªB¹Ôî¥<€‰*’ÊÕO«J”­ÚL)ºÊ`—à&S?É:==(P ¯‚|tT°™Â€isÈý¨tª™«.ì~ÕCÆ‚«î¦f¬JSi£ÒžªZ®ä…*Ÿ”}ó¿z¶ð_b¼YŽM•¶lVƒ nŽjƒÕÖîêJ®f¦'R±c°±Ò­xyŠ"oРКiMäŒB•^‡¤îo[QùL*ád¸Ds©CÊi¬Ö/½ŸñF)ªˆDht|ôK™²­¹Œ®º»åy+êUæå΀UªŠÊoSN=ÎÁªöô~„’à±T5aEõVP®–ýª™«B;î@™®ÒôV¹³äxK± ©¼O ¢~\‹ÛYªSY;—\æÅ6MT[›¸:¬ý»¦[Ñ}ÆìV΀!|«à¶*?k•¥«„æ©88EÝ©¬Ð!­Ñˆ©A¥:–­å£T­¿ Œr)˜@±]0*û Y¼Û*fuÐDX¢¦A6baüUÍÿȳªZÀ|ª¹cuž(ãÆ)]uØæ§%S6%ã)uÑC³W%ª:½­c I®¬KUõpi —°+}ãë"éÔ–Lëæ%…ªA7 ¨2Ä,:H®¡±Z³2LP3­iGÕKõ<Åæ©ˆd.uIGÀ¶™¨|wjƒT@²QšÙ”æ²”oÖdÑ]ÕÌSê ƒ8ÔRTÞƒµá°M&€luU6ÙšájâÚüÝì¤AUL®FµªAÕܱºÐëªU‡E–ðM©ª$+ô’,ÿ‰T*"Ér‡ÊÇc»+¹ÊWóˆ,Y•*ÁÔwþ³¬è`çkTrxíß’~MQØóˆ`Ç*OwGWéß*»è6 @‚VÙWÌc¨&*žKÝÒO5x£”o_í”*Mrö¬CÀ/™©ÛiÚ<Ì'W›ò=_‰+ÀS”:$žÚD.ŸÌcƒÓdUÑ@ÕÊEUª3È#/Š3g(`Õ¬äj•òìöìÔ)惎ÆTëqªŠNáÿ—6PÕ@ªÃYåű”̵S™K¹Â'ô“%X[Ì¥!XòF ;¬¨&&¦õ ÝŠ‚o¢#À&ü›Î4¤5µ©ÒT- ¦•‹gþ '°*äNµPN¢ŠŒäl@´› êï”§šws YÒl’tìr>$ µT—dšÀÒ¿’*Õà´®JÍ[±aÇò¯¦cµï¬ÊÕªÌUmµê9¤«49IÜdSÓˆI Yµž è9UòTÐǪª¶_K·{Ú— ‘c cViBk“ÎÙ¢Mru#bE¼ 6Ñ;àšLk;5b`Ò§Icñ¾c'²Z„r©ÍÉÒÀÿ¶$ª.âi•d£Œ®Rñ”¡X¸ÓÆU·$Åɬõðú¾Ô*TïbÒª@JR½šû«´,+uWåèS(Ù±š«UYW5ºêdª^û?sªêFÕ:L6#¢ªê5r& šâçò"²¸žireà¼:U°C¬Mr-•\ʑצt'2­+Ó‡ªÿ¨‘Ý2ÿS)mÀÚÝy*êj< 1Šh ŽÊ ‘ª¹xêùI]“)ç›Fn®U§¿¼e^µAäÀiu†ÌȺjFU‹ª˜ðb“¯*³@)¿k×M‡¦ö±*ˆ>ªÒqö‚Ìha!Ö“­U¦iÁ8²r¹š2V²Ö2ÄBzÃk“Uh”¶ý­»xfÉnå8XÙÀT/ÄÚF©q€‡]Ù€Ä~Äßà&*Gˆ5J%GòùÞU…SÊ6åˆÖÕüøQVÈE‰s²LnÏòr¦©•ʬtnŠˆ¹V›+-5QݘtYLô#´ufUUs@FUŸ«†Íü´ÿó ü„´Z_T¨¥Š’Mƒ×BVŠÒ>;D%×°µ€x•©((ÊûñTí¯m Xɨր7€/¹É…Û2®©p§v0Q¥æ>9ö€ xÚ> :šqâu:QF)}©ŠQÒN'â¬9BPÊá•E¥Ð¼Tû¬V°ÊŸˆ3WM£êBëWŒjÕP©Ü¡¶L¤»ªdeHÈj~ó{­]¢Ñ”koÕOЬ&Hd>b¤?Ë‘ Í:KKXJF£”JX©ó n}ÕB,S´º\E‡1-Û­¼ü”ðŒ€\5åüçÀ*ŠøëÎF}uÕ€‘‚`“¢-Dñ3é¶%.˜ð½ºÖK~U¯ïÕÆ7%?#i0ÜÓŠC½¨*áéªÍ¹¨Ÿ;Qe¦§V•.(ÔÙÌ­g̬T~Õ\­Bµê ’YÅÊMÍÕ$Ô¶TeCUt5•%ŸäŠÈ³$ ›PI§Õ,ðËȳ<®%¼ÃH*à¸âEWo@‡t+‡¥ÖeYÄ3­¬Uω*Xl +ƒÎÿh­¿ódéÖ>¨T¼)T0A¤fe–ç"†Býü¤ë´ªj%;Gv‚ÎÏbV$cÖ¯­èk›ÌªÑ{Ÿp|®Ve®ª¸êA»jTÅ–ÔKeZK ª©'K"¤«€1½›×Òj>•\¹1¶tU•~ʲŠÑÄ4\Ci %©ž†«êT$"+š›5[ X-éV Á‰ÝÊRNÊëy4€ ¹*D ðÿ¾™¨ãwOé"Pë'®OR,ÒƒNë ™5MôÂ[•;"€r¨’‘¨tœDí¯2)ÔTëªU5WÝmwÃU­œçÛª´ÐÐ:aÀÐ-[—e°T岨+ÚÍU*¨¢Ï ²™4”Ô„pn…üaá„—Èò?:gŽ`™%Hu¼O7˜!Ó@uR¶ü7å¬YM¢J–òãTd)mE­´šˆé‹„ø©%‹¤¨B!±zI¯ÒÏÖêY-I‰Ð_õ\yó˜[ 6Å®ÊäsdjõÞUso•ê­·ÑU j eaÖžC¤%jÇÃïéª1{©h ©ÒW¿³@öb–¶õ äÓ\ÌÑØ§õò_èc¶qáé°á„—к<ÔÉ•ŒaOÆ9XØi+x~ ³²Ò€¾;5QëON”J”­‚tU=ëÐC'|O¯Ù#•÷»*C$+⧣̗JÜþ¢ Ç*EBx`j~B ö B`ÕÛ À:¬¤@lX$èK`¯ãŽ+soUæª Uwß½Ÿ¯J¹ªZenf§Äoký…Ãm©%Ë#­Aa”ŒËÕPZî"(mª–žEHÑÜ8_CM·2. ‘ðl« äêê HÚ­œA,6#œPÒWÄbjÙÜ©³TQ•¶ÔøŠAA ª´w (©¨*lï™­Üå¿$›Aaˆ¼·iÀ¬AÚ±¨òàØ­H+ªIWĦê”þoÔDÕM< «|e-8l9%HIßÍ‹*Lòa¦QiµRWBÏ K­i]>Oå̲ö}¬Ö§z–jÄ"ÛjÕªU3ª&¹ªƒª¶°^Ú.©’˜ÈèÁ\Ðk%eZÆ ‡Èk/Á{­—á¢-«quXЊFÒXZ–ÿƒ1YR Lûñ€ ‰¿ª#å©°²îÒ¸ó4Ñ?êÂ.MòÉ,ǯÀêç!s~ÀM¤RÅËYNIŠ'V#¡ý×Vì}éfÚB"ÝU³®êêªý«r l¯"1}ÂTMú˜kžµeŸÀ(*óÚæáEX–KxyÈ€2(ÙT•¹ôÁ˜ÃÓÉÙM%M(“¬­SéþÚ‚áó^Øò¿™˜íTÃl±>„¹©µ¨+ÅÌ´®}®r§ÎÙ¾þH£Te Y t"T8l_Ÿéß§XFâKuIÊ'¡Ê9ЄÒUÏ~¥{j“” ÚheÏÛ3UQ)JV¦™­Òñ-½™ä<´z_Y‘WMÄܪUW¹úŠ+³®ºÐsÕíšjUU‡*§xÍ1”CÖ8¥çª÷UY–vI^²¥{C<‡yÔëkAŠQîp d¶UkÎJ8µEäÂöO‘BV!j^ô/HËU@jn‚6¹:M·‚À:å¡DŒ.Šb`ou°Òׄ®{¬ ®6þxƒ˜ò:6JéUØû$¼·ðºªd·l°MK¸Šoâ²{K9ˆ&Ì5+}ªí¶‡…&rwhÇrG]y®ÛÆ8íÙªASh_íu y³@uRRysMDå75ÑD¨xËã­&p¥GFW1áÕKM%ÒªpæRǂތqU«¢Væ·£ ^Õ„ÉU?~þGÕסcuáuV© +†otfTÓþ¤Íª¼=ßLU–­ül¡ÁÈn&‘D¨gåNHý߯¹ ^ÈRæV9Æx³šOÙIx1¶ª’Ž9 ž0/ו§jYuº¹É5ØŽ•žJuÅŠWÇ5æ2JZï·4JÑU9_ÚÓR~xiï%B9ºg,/J)’Ž€ÀölšPÝq{²CT­S66õ*7…I  @—öfáon®^Ïï°Ÿ`O©¨UݳÇÙS`GT=9· «bÕU®É @VÀU ªÚdO]ù)iU%+û§ÕÒCU,‚‘ÉØêµPÐx™èª*|GA˳E0ìÕ(”V&Nî9ÜÍåg¹rõ c;–S@sõS!œ–p…ªU<ôA%T¦÷T„2Ÿ(LS©1”ï¡jkˆbe%]ðµ×¢Z«ƒ _UÌz%KWuÐ\O®j²V´“M?«PuAàªÙ𺡪P*ÑF=T-‚zƒ„ˆ=Kp³4¡Õ‚£*Qc\P)RÏŠN-^ÞH{‰Bí·]¼iH¥µ~gåú. zÒ`ªX”³¢…ïÕ©r¼ó¬ˆD“ÄŸµù=Ó )‘ªJªØ >›œýçUüE UE!“`¨Z[FÕ¬«¶ j_W-¹æ(ô|=`Ê0UUý*䫎›®˜®²U ›- èkõö"d«*ôl«ZE˜±Z0&¡0.4û \T¥*‡Ð@–k™ÀÜT)A+¡w¢ØÀªœCRÓwþ !¶¾Tõjƒ´B¦ô7Ûõ!Âe¯çt%TTÐÏÚ*Ÿ}­(Lä Þ×Ú^›o†H3û“«ß ýª¹ `¡O­&¨:dúèÚ™â‹>ŸÒqU‚Ø-ƒWùé$ìR†Ù¢¼U]Ë(«¾rd¤Ý¯¦ÙªÒ Fíü^,´= =F–Ú5ªß 0sf1bDïÕW_{ùåRvúzÚNï DÍxØðá…oâ*´^!y.(êΣ¦XVâ~.˙ӧS³:þ6rdoÚ´jÆ yKÑq 5]5l@þJub¥|—Ô jqS¨íÁòãû[5ó„µ|U¡H—«2Û) ýÎ{…âV«PÀQ*z ]…Š *ÇŒ†«6¨ºò|Þg¬¾NÕ*RÖÃäïe÷XCjª°îôž6LƒçU' S"¦68¥—ñêUҜžpŠE’‡ »ôòË/ºüòçŸ~ã 68æÈ#7ÝtÓW_|q¨ùè*émx¥ sÒ´"ï²Ù Ù_‹.ZMŸnž|>„xüV˜Øóùç·Áúë;v&.K\µÎEH R¸äFŒùÓ[nùíï~÷ùßñÊ+ý£jÌC¸N?ë¬qcƼåmo›þÒKòU%MÆ’~~½7ƒŒ‹,½ôŒ—_î½öšU!T •òE8Í$ÍU¨Ê8µŸ±Ò«b €“øê ¶´¦€ÆÚ%ÿÀÌ3rµ*+iT ÑÌ8ªÆ:ëcf&CUKi;¡jlž I¿NÙªbèïL™5°ÈÈ‘ãßÿþ;îºë3ÿøÒK-uåµ×þáá‡ÿ÷§?}ÇÛß>íå—å®Yd †ÃwSÒ´¾a ÿ1|øk€Ñ¢±Øbÿ󟧟yæI'œ0jô诽&‰öPÓ+Œí›ØP>‹·6bÄÛ¶Øb—]w=öØc±ñðf]_5 /Ñ^ÓD$ÿÆ[,¶ä’çžuÖn¾ù¶Ÿýlú‹/Ö žJÙfõõÖ;é¸ãö9ðÀ—Ÿ}vxÿˆ†OŸ>½­òåU…#ïé°aÓ^}‡¿gLŸ~ÔI'í·×^›½éM¯¼òŠ|Šª">¿ÄO3 ¢jí1D<{/Š›½Êòqu©GPÕ1ÄÞK—«Vª “á"ÈédTÍ W¬`˜<ÁÛUªêø¥V¬ôTÖ4Ï”­ÙYŽŸW‹'‰®v–а*Ì\^Ð÷æ3©Ô¢êÐ+âóú›ÚÌ%^òoüÒ—¾ôå¯ý¿ùÍ2«¬R5ßæãÆýç¹çîÿå/_}é%p:\L“Ÿzj™å–ÃÕDn•#Fàv/>÷ܲË/W _l±Gyd‹-¶øóŸÿ¼ürË:Áño &O›6íå_¹øâ‹Ù‡Ñ#ðc?a„£>úµ3ú¨ ¤ÖKòþp/踆gÌè¡#F`-*Ï‹ý>2Ž9å?ÿÁ¹,óÆ7®µæš'{ìÞûï‹‹sêäÉ£VXŸB¿€ÝÀë¢Ë,óêÔ©SŸ}ö +¯Œö¦O¾¯¸îºW^tѸvx±¹MÁ§pJê^cRͳòÔò9èv2Xf1ÔÚ˜Ô+{´ËÇ\á`®# Ž³× èÔ«àsU{œ=}²Â•,€ª½MÇêñb••¯¹2+™«ÎA Éç8WM« ®ê$]¢³Üö0¡}øÀ—56Ùäø£ŽúÈ'>1åÉ'ñÈRË.û›ûï?õ´Ó.:ÿüQ+¯|Ó÷¿Øá‡?þÔSo=ú[矿ýøñ/Ožüá~tÂøñçþ=÷ß?nÛmo¸öZšvÙå7÷ܳá†ÞrÓM_;ï¼7,·ÜÏn»íÙÉ“q‘\|ÑEG}ôKÀèE9ý´Ó<è ¼;åªRýÐ?¸Óøñûì³Ïó“'ã©Ýwßý°Ï~ȸë{ß{ÈÁƒ(]wà —|ûÛÓ_yå¸ãŽûò×¾úù¹Ï|æò«®:úsŸÛïW¿ÚíxâÉ'÷þЇ6yÓ›ž|òÉsÎ9ØzΗ¿|æ—¿üÜóσ™^zá…ë®»îûìsõõׯ²ÒJ_=ýtœÈËS§JV«p6&…²ô…R€@Ú)·ës€¦t媜S;ªkŠ«öo…¯Td®š7 PU«dý„ÖˆH?~ÇÇ”!óiíW«üxkÝFU’H*‹›C´M–C9+%ªUä‹3Ü¢`˜l$:Ë1láÖ9räï~øÛoïw¬¿öÚ¯NŸ.ßehÄü¿ræÌ¿?ñÄfïz×G÷Ûï€}÷ýŸK/=ãœs~ó‹_¼u³ÍV\sÍÇŸsÆ+,·Ü¶;îøÉC=íK_úÎÅäã¿ì’KÞ÷Á~à}ïîµÇûï·>“mÆŒ9ëÌ3wÛu×ÜtÓg;ì÷¿ûÝFoüÖ·¾u·Ývë£* M ŸÃ‡Oœ8ñ©'ŸÄÿŽÛo³í¶ï|Ç;~ù«_ýùOÚ`£þöè£×]ý…_üû‡úÆyç|È!—|ë[m°Ág<òçwÝõýk®7nÜŠ«­6a§Ž9üð‹.» ‡ºû„ ×Ýxã÷®¸bïýöûú9çl±ùæ‡üïþð‡‡î¾ûÑG»Ë.Ç}þóLœ¸øb‹UžEõQµ’UÒ‘UPT%Ñ$ææô¨_åkt¹]™fÿ™Êëj2Y*¹Âés°%¡0ÝbÒ@ ¹"kB0\zºrH?x@Õ¦Z•“3ªRT5\uh(ÀUE1k\UÐ }¤¨åÌÂ"« ƒƒÄ@ßK˜^VÁû¾l««’øq†NBˆÔ³e‰[g‰ÅÿÍ}÷mÿ¾÷ýñž{Þ8jÔk”)_‹ºÓð%—œtÌ1?½ýö_üò—¸rp©MØyç•–_þ^¸äK|á”S>ùéOcËýöÛoêóÏ_{à =ô®4è+­´4„i3fÜyçØà÷>øü /lµõÖøû•—_^e•U®¹æšmÇŽ}Ë[Þ6*¹*.!°æÜxãøÌ3ÏœsöÙ×^{í¿þýï{î¾ûG?úÑaŸûÜÓO?}Ú)§\}Ýu÷ßÿÆn¸ÕV[ÿo`‡}ì±µÖYçÖ›oþ׿þu¾ðØ_þRao#Fl´á†+¯¸âo½uÛ­·~Ë[ßzÆYgA&Äj«¯~ê 'ìuÀ£Fºú²ËÆm¿ý‹úV¬›ÓwlðþÊ:TüaPêÑ¥½W_2¢ ÃU«™•¾õªP”Û$Vĸª×8àªuàªÖ0#£jFÕy¨˜?tǽ Ù€…3ƪM¦‰VˆW³P­ ¢jÃU9òÁ‡úïw¼ÿç?_g5¦7æ$ü3}æÌŸÜvÛ„÷¼ç'ÞvÇ›m² ê?‹.¶ØþøÇw¼ím?¼åÔ£®¼üò¶ÛN€`î¹ç«Ó¦}ïºëøÍo¶;ö÷÷ß¿ú:댖m±Å™gž‰ÅõâK-õ‹»îºè¢‹|XžCèÿß;ï|÷V[YT1c¨«CÏMž¼ÖÚkÿæî»<ê¨vØá²Ë.;úÈ#oþáÿýÌ3â“&Mºñ?¸÷¾ûpù}óüów{ßû E,¾ôÒ«¬¹æ·¾úUçŸ{ <ÿä“Ë®´hòþýïŸüøÇ+®² X0§€óýß_ýêÄ£Ž:þØc—Ya…ï\pÁÎãÇ¿ô }I~ à‘W­teíæ@“ ÔW ´‡ú €3µqUgßÑà)B«²Qµu€DÕáÃÝjõ$`ˆ¡ªÍðç•÷rP]UÂBæ6]ƒÚ‘ZÒg‡ Ëdeü4Q¨5 „<ªÌ54´ú›ß|ÚI'}ø#yá‰'ðÀÒË.{ϼmË-ŸxôÑO}þóøî¸'Ÿ~—Úh¼Ñ£—]f™•×^û²‹.zÏÎ;#8fŸ½özù•W®½þúï»ïÝ[oýàý÷¯¹îºc¶Ùf³Í6;ûœsðòS¿ð…&Múìa‡m¾ùæ0l½{Ë-¿sé¥Ûï¸#åªè*î FŒÀB~Ë-·üáxÕw¿{Ægàb{øá‡Øÿï·ßÉ“&}_£êWÎ=÷ƒ{ì¢ÿÈ%–XnÕU/»ðB êÃ> …aòOŒ^yå÷¿ï}Sž{D{¥WüäÇ>¶ýر“'O^dĈ7Œÿ·Äb‹­²ñÆŸw^_TmPU]]&±Åƒ!¥˜¡ÖdÐiUQ”49,Æ™oµÑ¢â U2çT0¿UÔÞ_k7]µJlyµÊ€µNU©CÕªFØ;sÕìpgX ÐÍÙ…«²ÀÓQ•¯»SÕ*ÚÅó«ò# qU³Êš©“ŸTƤ`Ò¤Ig}õ«¿ýå/×Úd“þ2yhh·ñãûÛßúãÏ:ýô‹.¾µj~9ùØÇÞùö·ïµÏ>¨D]qÑE¨\á]ö8¨z͵×>xï½[‹¡Œ3f³Í7?ó¬³p oÚxã=÷ÜÕªþ‚ý¯]guî¸ã@' PZ9öØ×¦MÃ/_Õ ê¹çž{ÄG|ï¾ûîk®¾zÿý÷_c5nûéOÿkùåO=å”ï]{íý<(DÕ ì;üõ/ùÎw½ëg·ÜòòË/ï¹ï¾OþãKŽ5ù_ÿZe5°ö¿éG?Úeç—Yb‰K¿û]l Zúá‰=âˆ7o¸áòk¯}ÕÕWo»Í6/>ùdÿw—Ví½!¯¼ŽŸªVÆ ^w»1©"Q­Šù®zBž_MGm·8«jÕ ¥^½“™VX%wät¦$¸*‹qÒV$§UIÔ,#5è»rQUPªŒ÷r‚‹pQÕeͤ·Š¶ØªDâº-àšH "ˆlµäæd¡fBNÝ~·Ýî{ðÁÝwÞy±Å{àÁÿøÈ#·ÜpÃØí·öé§·›0µû±Ûl… ÿî;ïD•¥+.¹d‡U Wýüù­oÅÒûÒo{ûvØøMo’\õ裎ÂüàÁtài½ë¿8èÀ/øÖ·úÕ*xŽ;îQÜ«}Oë°aÿøûßW_c ”­.½ôÒüío«¯¹æøvºéæ›ûœºê5×üöÁïùõ¯ßµå–[m¹%,\8*èçœ~ú‡öÞ´â…)SvÜn;ÿ?ü-›nzÃM7Ýs×]Ûï¼3dÖÖ_ÿÖÛo_lÑEuë­ÖÚl³uÖ\ó›gŸ½ÞZkMkúµ*ªœòá%µ×}/‚µu66U¥¯ïë­ª{rä]+^Ï%¼µ©V…p³ ¡ªäÅÔ€UKfIpÕGÈé*ó¸Z5œNÖ´QX#\µpsÌÜAbÉíŸ&–Tè”k’Zmþ¥ÂY#2Ìíûdn(« ÖÏ:ýmp^1T™³£Ü?£×»ô;ß¹õÎ;q?¡õ™C…¾ùÊ”)‹.¹äóS§žxÒIÿç?±”>ì3ŸYg½õ¦Múý›o~×;ÞNZ ~×ÿþ/.‰mÆC“ë—Î>ûî{îùú×¾Nºè¢‹¾í¿ÿæPìü¼óλãÎ;—_~y¸So½õÖ{ï½÷›\ð£þ{xÓ&›ôÐÈO†]ƒö®¿Þz›lº)íŒ3^|é¥M6Ú§€å?&‹|ûÊ+¯ºîºÃ?ùI8Ã`¤UùùòJ3D²!át‚z¹-|@)UN›‹Âï­r8£Ê¨LfïXÕ9‚—’äO¬éô• ÁM‹ªF² ¿·ªV™U4`ÆÌ×t@V²ôx\U–’ùªN@5]•{Ù+ÆwEq°Ô¨ªÝhPr]µ™ ¨Z)E%tX˜‘VÆ+àŒÞ¢y¡9†Lu5ùÿ$ÖÍ"Ë,Scq×ü÷Ì_j|ÀÜáK/-·œùÊ+3_}uhøðaK.‰¬€ºé’*]´?iÚ4H´òo4­ÍÅ ¯¨h°K{‹;ò„LÙøük’駬 CCýnÔæñ¾ÿæÌª±^C®BË?ŽjÑEAl±ZNq¢= ª#Ž9摇¾øâSžy {Æi§í9qâKÿþ÷¢K,–@3ýùçû BŒXb‰räÈ×^xgT4fÕ`'=U?+"3Qä,“Õ¶§ŠóÍþÿ,ßìU~´`%ˆÜŸ:EÓiy;€M$à£k„é{3ÕÐìPµjFV²̬FÒUDé誸q‡¹\Õt(éìQADÉ24¶:œ¯Z ©" ËDÈYeÂñ“ÒP¥C$jn%Ùaý é6Yè¤U5ä³y‹¡¦»Tý$¹ôÝ‹ªŽ|aµ.¸€¼²{ŸX#ÔâUà í?(7æÎT³<ånñ®þ^Sÿ)ùOTs›÷ÁzHǵȾÕþõÜë§V kz[ñ¸zßæ`°·—^~y»ñã±ö_y¥•þö÷¿£ë1DÒ_PÎÎÜ* e#¢• 4CÅ´t›ˆ%Bqln•AíÍ­ò”=n4 žüV:) 6POQ¥Ëþ(¬ëAƒ‹×^C^¹€l® BEÝQ¶FæV© )g¡ ѹU ´Ó)2jí–vÓŠØd*ùùÏÚ©×$^ Ês«²®:;Î**˜®Z–¬Xé|"9aE±QW“>ëÎI¥4³mÆj8@Z¿¶hÛs"|Ze§r Á,ÌXe ²$S•%ÒÊXþYž±ÚÜfýàT©Gs{¼ Ó[Cúîlêtž?ÛsrÆj0ô¯ªhJ,›œ±jèJLXqŸus«„ç0¨šuÕ<¹:ˆª¥E#¢•,@Æ·¬Ë—žËÊ_; YTâUø ªù¿äY.€zò¨v]¦KXwC 2:šù$r9¸I‡X€,Þͪ4]eÀJýü«Åïjêñaóþ\´¥VÍL@ ‹d FúAë䯬^$‡V%Æš6Ò(‰ÊV³©k§mßdåVtæUãµR=N£…MÌrµcS [æVÉÂ3-(x§AY˜\Ý›IfäÉÕ¹ZµÝöUDˆôòK©:Ivê wYÑy*±ú’­% /Be(Ð&P$Î’¸Á¨ÆÚÜêP…|VDˆ3gåYõ×û¾xJÁQ¡’¡¨|h ªJV èz‚™¨¦Ü[÷݆°°Ø +‡¨:°ëŒ­œl R™Ö7k¯•õ*zǦêâU¥•Võ¬plü2:áªN¥¾‘Zåž+šŸ¢´"Óôßô}U¼‘A:k9A¤Þª6FWûÛÀ¹jö«f]µß±º»œ±J»›\ë(I?%A™ˆÕ_.™1 Lè•DWUé³J«ötF¡œ*J|uK«ùmŠóY)Bau‡¡†ÜWê|ùoãódTµÃF)]u×ûœ±²Iê …mc [5ôÓÊ!95*¹zLÖŽÀÒå)6ò:1œ•.á鼓”j‹<¶vï× DE_CêBýã¥ñWDá5‡*RGÃ¥1€×jÓe ¿>2d°®j[@3ݬ½Þò£Gï}ÂqÙ¯šQÕtHT-ƒPצÊ~ÁJЇð“ÑUž}Ê¢¯¡ª0î%yAD–:Õ˜@¡B·"¨,8BQiW•°Ï½ÎTw®A7…3•OKíRë÷uµ q&»h*tù‹Ò@[–yÉ*8©29ƒX\o‡Ýàö팯ÞÁ\Ímí²šV2b•øåúZHÚZU¡g+Ò6ª#Vx·¨ ”VU<Ü4„7<~U¿Ö±ÜêÖéY虆ÂÈ0$kf¯ªN̨š«UVWÝ]β¥!HTgJÂçªtQlWÓž,ŸVú:K¯ÓI1ÙFÕ°IÕO¡`UòM 2!›—«s7©´ê¬h¡iöÄÓ4° jD'xmehzÝzi ò¸‘%ªêñˆäjI\°â¹jnv-‚ýMʪ‘A› €¼–RZõ£!tŠJÏ ûêÀÀ+ÒÙ¥šHbn¨Dæ1m3 ¡Ò ûû@$aÃU;¾\­ªÙY•¹êvíÞçªCM•ߣ¢PHQ37`%hŸr€IćMéV„^KmLüíDöcõ)¶!®\<|œª šf¨¢¤«Îßî!ÈX)ë-ïKJŽ/À^H‚;X‡ËàtëQUÏdƒT—/ÿækT`^ÈB–T-B*FáZ©ZK ¦®Dgùt°ÁN¿*™X•Ȭv^‰>ªŸ¹jæª W=dÜ8£«2–Wìún«è€±UÚCêMD -½H”"õZ¡ãTʈ©K·Zñ×j³sìóAÓªèrPØhÄšJËVf¬ê`xª‹›r°:¨@¡ß³[¥½¾,[{­GÌÇj:k=ç)ÏU©SÏRz±s ’aŲJÖ"¸·?8ÊÅ1] zÌýlmÚ…áöæÎT¨š¹j檒«Ž×çªS¦ •¥c*„Zoûõqª9š´*ëv"`äÛïM«JhíßË¥°fßÐÌw¦‚$Q·qcÃâ|3ìØ/ÂCaõŠ~ 6:;µ~Á=U "ÍÊ€„|Ûâ> ‹¢f# úé²T*tñtŽJ®úÁàðT]æ²]©‚¶f1HÕÝ,{¿y°ªÈI{U‹¶çÉk(Þ´÷×(â¯2 `UÍZcyhlŸ}÷¹ê¨Qý.€Õ2WͨÚW®*Qµp=¡œå•&l…IÜ1,ô /eUÁ´6*psˆZkèŽxê9Ÿ(DÜ”ÎX^ˆ§ Ã"€»è*EÞ` b+ñTYA®—5< útaK/°ìV½v't¾ü¯%¡Lru17ÑÍ%øŒ}öÚüÔ`nm{jRî7;¤N[?ÅU+­¬w‹£*W-ÉUbnQµUF¿êØqîNQ•@•]ü wÆT(RÛ–,núä±`©éìj]ÎâÅúÞÚ_¥áͤè$¢E'SªêÈF#R yåT«ù±quRε™ºjô/EÁà©{=h„rÑPÄõØv,NTS.Wò^®ËÕt(© (å[m¬J•.ÿ‡zøƒzC6PÚoñ’VU3f/§Àoâ2og÷Lõ„ÊAUÁ¨¯BÕ‰ÐUW[-ûU3W]÷(è­š:uH§+©*uâìM5)õ,I9$ê¥WÏ Ú%STúÉU‰‡´43¯zVj¸®]O‚‚E´j6Ò¶ßJW[LT!`fKBêéhBáÕ©ì*žg¬ªG®†E†þ1»UŒ‡:&V²äw7p2ž-æZTeý©ºúnšxG–骪ŒgÕö¹2tÓ‰-æôé*ÞiUf ø%2²Ø'hŽ÷5oEåæ¾_uÙe‘®RÎ÷¨š€y¤ ·jòÔ©Ã$ …8‹V@—5Ój@`˜Š©ËS™Ux¦4¦”ò)¢9q'ò\ºˆ§[§ƒºSuèpwª‹:=Ëè hÖªgÕ©\uMëþêžµ¤]®Æàé/ÿƒŠ­«ÒZQUÏšvrXHwv XPCc ¼¦ÛÆñ•È«ötØè­W=ᄬä€Ò ê³SÀU‡$Å‹Ž5Õû¢¦MMnIJ_ªÐÑ«…“Mí«Š^ògÃÒjp½/Œñ@D-P¥L ’tÕ`ivS⩿ƦxŒÕ~ü‡ºS ÓvESÁ®YѰG+äUt.©=<²ðO¥[ykÿDVBrÕBAenØ"«uݽÔaeÜe›„QWEe‡Û?EUÑ–´í‰fò+Yþk¼6EÕŒàîõT„ŽÕÕæsÀë°rÕ]v›üâÔaCCÔÉÔ ƒRáü¼`¥ 6FBÝP’"Py÷G‹¤kUÈa!T5?”*rþmSi4–¶:O8t•»÷é·ÃLTZÌ $û‘/ØZ&ˆ®Z;½U;8ž ©^öJ‹7€]g£K?ÍëTž;5A„•ÓÞ*Öó_uXáÅ8ÔØGU>v…÷¹JʉÁ¦Yò»Po—¹jV¸®ÚpÕç¦LQ¨ÚdSéÖ£¢àcJ¥pIŠõE2ÊÛuÖ»©(Z°dÖ7ç—¥¼]œð½„ O“tµû?˜DåŒOÞfSÑñ¤fmU†« áö×{¢Ï'ÈÒvklíßMrá ÈjÕHåsáf˜Š0„×-æ$¼*Û´6CX­ìKe}SB¸ Ô©êä°°(ØÀ€X=DK˜ýU—ëw¬žPfTͨª¹ê®}]U ‰EGGX ­Œ¯±gY²‰C-eS–V•Ódåã&ÃÄ]M‚¦Û(器:¹SÉÉšÐ?*¨aÔ¬ý ç0Ýä[¶ ,´wÈ8Ñx“Õ ÖÙjÇ’a}-’«»Òw;_ùò¿?ù*n-Ü~-lñ"Ô8™dÈŸ&B[Ê\Í{÷g¬6¨š¹jÖUKé8p×U›©sN¡IŽ@Ó ¹L¢ ~lmkêùÑ*dBkjª§_èÜ©æ%æÃÑÏòWhKà·5+ºA(IÚO©Ëª-‰*ˆÑAwjMÍ­æ“‘ «Ø-»t²VI¯” ÃjR¹7 %§F¢ZÛ%W¨¦²\ <9 ìÆf÷ŸÔ‰&¥Å²ˆš2Z–KàŒ‡ñS "!Ù’8«ÞX¯=Œî\~æJ˜4iþï­šºjFUU­’©Õ5£‡Â V" “-¨ÓÓÏ[¡ÏR¼#s¨¬@\ :fEhUI’iiˆ˜Lݸ“ 6¢«~­_L¿®:€9qRtW|o¾µË`ó +ƒ›FU‚Ú‚Vc„Ö.½ŽGieÉÎ\–A½1É•Á.ß@÷89eË¢xªú¡*:­Œ,ÿ;ß ªÚjé³s™†ªT%KcF[ÐJ«ÛÐü¨º¸ê¤d@FÕÌU›jÕÔ>ªZz¨‹T¦ë%V`&ò^UÁzUk[ôG±ÖÍܪ>ªNÊI€U ª6~UºP7Õ]–ª™u4”ÀjÜ&lŸÔ©¢¦R0b‚ל*JZ”WiÖþj½y•ËNÎSâ]m,Ýb¢òjýò4¡¨/Ìÿ`®ŠÐkd»O°âܤzRðšv«6ĬÛ$×h°@¨üU¹D•zcËÍJÍÔâ’«)ÑwwbU¥ÿ_•¨ÌÐ-ë¨ì B¯:Qçä|ÕœY5¶éX}¡ß±Úçqz”Ðó§E‰X ™ðìŒTq+t&•Нdå2FWJ™J©«Ýt€°šgC¨ä “Î ©^cUà¦"¨J]DÂ:7£¾ÀuqòB– © cÈj¦³@T˜+H*¬Å;_yXª3–¹Ixqs©Sµ'›þ•¨j{dµA¬=LXÕøUWÏ™UÙ®ºíXT«€ªÃÊ!§è¤~ŸíB›K«¶g_¸-D`î+v¶ÉЬâ ï ˜¥†hQ¨ ¤ðuk” M”*Z×øÁ’TÔª[¡‚îT¬ÂÎG.¼’øjÁo*A°Ø¬µ…Ó`@î`ujSÌÁª;DÃv+ªŠ¦Æ¸ÖlÞ6Æ5à²â i¹då*°­¨ÖQÀGQ±ý«QTá忆Za»¹B¢ªÆæógjT-WÏ9UÁU·m¸êT•¯*h’ž)T&•j{¦ž (|À8¨‚“Jé*ž$ÒB_­Ädj°Ï-Ou‰è5h‰ ¬•B¾®ªMþ´BåÏSaú¦9*âo5ֻ¥V¼# FZZjƒTÒŸ:‹D•b1]Ý÷F.^È ; uZª¸P`—ÿ©*o:¬‘\+ª.˜ÔjÃU3ª.ôºê¶Û6¨ÚOT,Òè¤:[E˜ôӲЕî!âç/‚.Q¦'òš"JXYÍÊg£Ýèjj¢T4ß/LWVöÕø¹Ôö3à‹wã-œLUÂ[i;€%¤ž`õSÎO]«¡lƒBj$Ùš­ý£})hö–ÿDU¨RËÏúý#.W¹tKõr7©ZW¡ºW ÏÕŸ~ÏôV­žuÕì¬Zo½CÇŒQ¨jÒUß”ªR­Dµ/¨V½¤êùÀwÆ w€Æ’ÔF ÒÕ€R˜ëÜ(UÄ’¨bsRý`ªšltþÛÒ¿VH¥Ó à}sÆQ`ÿyØ Ëf5+ëEµgDëã³–n-R©•{kÖD•˜ÂDÕQý:XkŠ•žŸÊ; ht@ƒ±U]V›)QõD8«VÏΪÌU®ºË®ýYýŽU"à›´z_Üö%ÔíÄT’…?ãÄŬÈ“¡¶ Z…ÑÔ?Z¹±¾~n¢ æR‹;µ Î[ Ñj_KRõ¸@[ #ý¯ÂÑê°i4 $´¢ÄÐEr ¢g ‰: š w¾’Ù “ øXkÄdš‹ùj<V+-¢ïWµìÄOÌ€ÌUÁU×=tÌØwÙåY“Y¥LNf½ï'ð›õ~©’¥„lÛw;ýiwS×ÙPƒÑUkðÔÅëiÓL`M¸SC&*ÖÑ¢¨‚ûYc•“ÿO‰‰qVinËS¾w•ƒ)ƒrý„ i„d-šyÑÆl+Ñq9µ%Š%>»…¨VË )ª)§ ˆ-ÿWz¬€ÊTµ²Èh #n€ÑOœ4ÿ{roÕ]jV†£x•«NŒ•ʬNu›ó_²5™§B¯*ÛJP×¾®êt ¶v8A×þr¾eòå³ZNñV«hf`ĪÅüRUÛõÀaƒ¢*ˆzÐ#TTøe.á…¾ödP5Ï­Ê倿*®ƒÉ©G®@<@Ç"2ü3Ù1»ÑÕ€¶„¡tXVšK-h."Í¥v¦¿xðêÊ Ôü/Dph•ÛóJ )ÔteW:ÅÙ • H³©³Å (ý‹ÄL­ØÁä- ß–¨*e£ÑÂk7 Ö‚žÌШš=YWÝöÀ }Tm2«´ÕÄ›ÊüÚAÓÈRê®`¼iØð F鬮ºêAsÇÉÒ!ð-¢IT²aŒd> '—ZKòN¦îÔ„óß-ýs‹-^Á ¬¡ö*Ç[Ð* Îsn¤¹©a”§b“K´ké_´Ïw!ç4ÏZÌüåÁå¿ÞÊ6\UBÕV«ÐU³ +ð2fÛƒ&H`ˆ.à «¬ÉÊâ¦xE;šD‚¶ÐÕhéj¨îß:Yºµråöõó-…ã©2 ÝGÊOõÔ½ïD¨°»È³©ú+îÀê1<ÓÚoÓäjc7»U=Xº•§„mX"©¨Š… v ªµõ÷‚忯Eì·Fk¡¢ª^—Èt•½OTΪ¬d®:ö èª/Ltòªml Í<•d– \±"@¢£©5U:NWÃòk!R.«YH¢Šk,‰Jß~6©Ë«PѺ¼ð&$ÿI…GH ~¹û¯,Ú.0#€z9}»U8ÝÊõÔÝ£Xbd6à Ô´¢Ú‘¨92ñQ—ÿ¶úo†¾š,W^ý7¿"½^EQ5§«,ô«àªMº z«\T ö#Y;ª]ñXt‘«–Ñ%<Í@0J+òÒ5~Üvšt§LT‘–*× UNA²Vk3EÕO4µ)îWe¼˜ tîv6ÚËëXuJÿv†kƒtq»UÝ)7 UNuZ°<7UÀý: D5¾ÎögËÿð”*Výwữ4½U ª®žuÕŒª@Õ1Í4À)Ãúky6WU6ïy¨º0e$k–"Ý«!ØŠK»ÑÕH­ßK³N´«º;çz(3Q9í§¥;ÎOþÑšܨ9¬%óŸŽ«¢ù§´¬D熳A¤”Oí…Ó®épÚ®Ÿ¼ ìÆR£õýðD,Ž˜¡P«ˆjÌË™¬í§²’«L1±µ.Zù±[sgôz˜°²7z«ÖȨšuUèªÛl£f¬6`ää’P·“·Š· —õÊlg£³FWCe«t€¶q~¢ XYKÅ5/—ÚŽŒóßÜÚÅ¿2NSú7ǯÓX(zÒ"F7(־ܷlÓ°Fî­Ê¨ÚGÕ1N˜0ùÅûŸHÄ\ÅGDëOM±ÑN3NZÊVLˆªˆøsjýeaVên€±ùÎnY5‡XsØ fªÚ €¦ €$úÔÆÝU¢#€²-£ÀFÌêã¤ÿäÂß1fÍ¡µ'ê@’+ÙÀ¤Àxu*ÊIõ@+rÿ3{½~ÇêI'J £êBª[C˜®Š¡&ÌK°Á'! ‹|Ô¬c£áTi×»®õ"¶M홨ïÖO«»% Ò öø;㧺8ÿƒN)£± Š¡ÜYåÜf‚ÐXŸœŠôŒÒk 'DU^-‹“åKí ©ÚnûïBT ‘ìÀdÃD5гàD\Ñ_|U—mP5sÕŒª@ÕO@˜°Ëd™®Â£ S¥|e +è²ÕbÕª®¦6˜ƒ:@‡ÀEBûµþ²0¥þÒwÍ& ˜È(êü÷2ÿƒ¥gºŸptÕ.\ÕÌ \‰Æ¬´dZ[X'”tN'•&s8ӌɩƒ©Â]ÿÃC’«ÙCÏñáúÁnÆÙàèQûœtRæªy@ƒª[oÓWtËRñD¯mߢŒ­YiuUtÉØ@„jô±²UÐ0g€•A¼,Ô 3nÖˆ¨‚æR“WÅœÿá!©žé•ÎX¥æ|?K08튑Sò»E;œ¡/Â(½ýà;³nêä ʈnQ,RS‰×­ý#ˆ,ÍÂVRuªª)ªòüõhÕ:QŒÂYÕGÕùž«Î‹Y™«TmrÀU±ûÄP/Pˆ·ˆ—²Xuªõ—AÐŒê?@AçŸ×û-ÀÊ!^ÑO#1ê.ˆt.uíSѦU§ Ø»[èNAU‘î­2{ ëkß{ :eZ«µy3h·‹Ýª¢ðT×0¡ºÿ@Eª”`š–\©¡ªçÄÄöàe¹*Ënöú«YȨj<²· ´Î€Z°ÔL-!êj?lÅŠ§Eb$_¬ÕŠ!o´!ª«FOÊdcÀj_¥BÔR¿9mC9…%ïa«Ó™j¨«ó•,Òã\Uèœ*AÔ¹7¨ ÖÉ"™«ˆrX)!ÇÁ—@ºUUµæ„*TTNM ïÀnªAUu¶Ž7,àÎlìÉi€¹Z•ÆU_xahh(5®YQºÚÖЩ=¿K0JL<¬ÁHßp*ITnà¿Y)‹„;ÕÒCý¸‰¬®)O¤I©|Hµ Þ€ß9`cÈ8,Ó^eºf“EìÁÂwH¥[ ŽwE( -§¶èÝŠT)ª‹ËbP¢jÍÒAŠW¸»TÍ @æªU·Úú@Ý[a£­mû‚—òÛÍ)6Z´4J%tn´Š3VßDåÖú‹°òb”žíNaú)]œ79ÓNgè3€/Š˜T`M+e¬ñ$*×tEø`ÔZÔ…ˆ:ÿE¨ôoÂí­ŠÜˆ5áªTš‚¢ÈEUÕ~ÀUÓ”é;“(Ò ºð7½ö]¬T³“Šn¦LQ U3 ¨zÊÉUsÀB_­‚°óÎÏÊŽU/À‰H6J¹êj* ’&4 $ú÷£«[¹²®èÞÔ#T Ï:ITÍlmwQOø&÷O¨Ð¹ßœ9š/Ñþnñ«™E‡VYùUð +’†t./:x*LܽßÀ®:*¤Êëâõ„»ZkîÄêâND´ÄÔÒnÞ€dé~-ú BÕ“OžÿuÕyQ­Ê\õ@Õ ;?;\u˜î‰R5ŸŽmûuU¨<|áYÅ=ÿ~Ê”è205]ë÷€ÕÙ[XcõŒ"2ÝÏ©ò׉Pþ!uÂÅS“ÖÊUé$W&)°,l]‡v±ÏÓ X«ÁñЪ_nÌê`!o@8ñÚóQ‰`⵨žËšÚ&æ ¨h1­3QMšºä)ôg¼]'÷uÕÌU3ª6\u‚;  •®¶ššîÎ]íÕkcM¯Üzz[.µ‹¶­Œ¿Ê_€é“.±Mƒ^Þ±š¸Ó\^, ³ßÜEg[i\ŽwØQ%E°–•¶¬:XÙëXÈškÿÎñT©Òb tHjhú4힢…,a4>“©j0Ú@§*ú›/7½Ú¤TK¯šO:PG`Έr:‚‚ê§T°c”´êß5îÉŒ0 Â«z]žÒÏWJÏ•ÿÙ«ÜþZ»§Š©Ãz°¶à£ ذBjž:1þÑGmÚ´iÖ¬Y¿þúëâÅ‹ŸþysOk×®ýæ›o¦OŸþË/¿<÷ÜsK–,AQøÛåË—ãJ\ÓÓÓƒBðC\¼{÷îááa| .¾ñÆ·oßn B8_|1þ䥗^‚DÇõ¸…üþûïxäóæÍ{÷Ýwq«ëïÿϱc=—]öÇÙ³íE˜(H¬|Öd>Ón2Úfö-=i¹pmbU^b:¯€ûÄRÿ+-ÄÙ?•69—ˇҌ·ÙÛ³jËžXYU°‘©zCˆ$ŸÉŸ¸»ñ·5•8šd*Ê0Ììã]”gšò×3=Ý` q7¦r^Áü:6{rU’_š®å$Še¯Ç›ÛÜÕ®…éò4Y¶€ù|Pm9g=X¾@óB¤gk!ÉMh±[¨ŽÌ±öñÙ|²ìfiæ5îÚÜÌ;“*ëÌV[‰³+Mâ܆+«­Ý$¹´ä’,æ¿nZÛøV´“'Mú÷Ï?·wv.ìí==6ÖÙÙùᇢãoзmÛvé¥—ŽŽŽ®\¹J „’6nÜøé§ŸÎ˜1ãÔ©So¼ñÆ5×\ƒ‹üñÇ;ï¼ß -ƒ(à¿;vìxá…@'€ ”xê©§L!6lØ·o®9sæÌ[o½5þ|\üÃ?Üu×]@';îá½÷ÞCQ@Á„÷UQÔ–-[^yå•§Ÿ~€›9sæ#<‚Fáß}÷˜8mÚ4ThooïÝwßmîéÕW_Eµvttàç€c__ŠÂ€„ÅOp«¨#b¨úõ×_£ÒQX¹hÑ¢U«V™Bðúé'rúôé5kÖ ¢Q®A! ×à?ôÐC¸ ô.\ø÷n8yòd»•¢zd‡™…-—\™f³Á™n»ÅsÒ–9½®-uÿŠW7ÓkìǹÕîzs>¹žê/»”Þ¼ ®.uŠ-z¬8&α{·n‰á ÁxbûLö¾[¥Yá ÂÙp hw•4ße®ûBÚMS’ „ƒO!MZHk#µrNÔißVð&Ü” ׯMun Iƒr—6Ø\äeÏC †}ˆEooñ{aŸ‚ábá%¶½¾ùìL'Ý9,~9]—ù:GÀ3þõÚkc§O¯[·îĉh}>ú(Ú&®Ú¿ÿgŸ}®Am·ß~;`uõöÛoCýL:­òèîîFQ ï®]»ŒÚ›2e ;.@!{÷î=M!Ù-·Üb Ž=ŠƒŒ[¿~ýìÙ³ñ·àæ‹/¾ˆÃ= ±ƒò†ªðU[=`îÜÍ›7ƒé¸[Tt1_²ý|éÀ¤(Á³t8ãÝ— Sv¥·ª„â=œ|ß3¡›÷DCŠò¾6•…à­äÐ(²ÞcOo9žÞ+PQrÕ5xø¬ Áî¾ûîò –˜P÷3[½9iüËÞ.°ó¤ñ™"c{Û0ªÖ–f˯U!øù•W^ îß{ï½Pµn÷åee´ax3¼€ð2È;CªÉÖ,íä4]Q”qÊ¢}°Ü ÉOA¨ðPcEjóÞ.Y~ ÞØC àÂ…¢¼çž{@Õ>øÃJ@ÖÎN£ÝÙ¹#·º?7¶íÔ~DÅ…n\¸ŸÆå´ø>ðmüq I¨U©U©U+Öª¦ùÀ胓¶sçÎ<_¸@K­X>(nïõç¥Cø•Ð2£Ð„¡aòË'PýB*3BH=yß e¦¤÷ý© S2`¨BB!4I²§2„ÐmsÅjËùª†õn°ÔªÔªÔªåjU;7ÓÈÞGÆs«.p@ðæHUR•T­ŒªÍBÂs«¬U‘õ…ŠFþ*¡ÝYÓIª’ª¤ª>Ó|| tÜvÛmfúˆZµE©ŠÔ23«HURµúÌ*äÒ )÷\[ÕÒTÅ*Ü!–ª¤*©Z%U|ðAP œš9€T¥V%UIUjURuBQõå—_F¥`µ+}UR•T­ÞWÅb|d·º¯Úšû«2_•ùªÌWmÍ|UîÀ|UjUjUæ«R«R«R«R«R«R«¶¬V]ºtéc=Æ}¨U©Uk²öÛÄF¨Ì`sHUR•9usZdwó…ûÁ¡ð(V¯^÷Àl0H€€r4 ûUƒª8e£™OlÄî*-~Æ*´*|œ@ª’ª¤j•TµZµÕÏXmq`ddÇ\~ùåÌ @ Ê|Õ#GŽ Õ÷÷÷sîYÅ=«HUR•{VqÏ*R•T%UIUæ«6¡¯úÅ_àÖ9sæ˜ó¯è«ÒW¥¯Z¯j°uèÐ!4ók¯½ÖJ¨õU9[ÅÙ*R•Tålg«j6[¡ î 1_•€*óUï¿ÿ~PõwÞážU\ÀU¤*©ÊU¤j¨zÓM7=üð÷Þz«©R•T%U+^±:<<Œ«Û¶mãŠUæ0€T%U™À|ÕiU3IÅIURµzªBHá{XÌWå*jUR•Tå*Rµ:­ºsçÎÅ‹#+‚'¬ª¤jÅT5@Ù³gNXY±bE3¯XmU™¯Ê|Uæ«2_•ùªÌW­™VåÉÕÔªÔªµÊ¬âÉÕÔªÔªÔªÔªÔªõת­æ«¾þúë½½½ôU©U©U«Ü »jÈou_•ùªÌ UIUæ«r@Í´ªÙªŠùª¤*©Z=U£È“«[ªÆí%UIURµzª¢ã{RµÕg«Ÿxâ‰;³Uœ­âlUųUhݘžzòÉ'Ož<¹k×.³»JÂýU™@ª’ª¤*s˜¯Z­põÕWoÞ¼'W3_•€*óUíÉÕÜ û«rUR•Tåþª¤j¨úÕW_õôôà>9[Eª’ªUæ«;v ­¾¯¯³U­è« D_•¾*}Õr}U9û›³U¤*©Jª’ª¤jsSe|øóÏ?7KÙB TRµb_U0z¦OŸ>66⻽Htü«´É¢"4ª…Nx‡}§!Jφà•-úBÃg¥¯*ˡҔ~¨F«†\r¥)Yó¢Ñ•ÞÚ{gg'þ‹åU¥Ãÿó‚uü–-[Ößß&_ÔÞ'Lf•ë´iÓ¼†·,þËrB#ëhïçî®’Ò¡ö,„ 8ñ²c( ½”U’×ôCˆÎÕ#Ù„Õ‡•ÕúY aÔYÖØ3ä# C‡jBÍ Ô;ïî*Mˆoª$5]f•ýl³Ù¢~@!x|B-È%ȳ+ÞÓÛž£@è4ó-ÑüoUh(L§j&²k‚LpMÑÙayž$äç(Þ[ïŸDƒŠC+J‚<[;C0în¥4!YX…üx±¢³GQšÈ£Q™/š q¹LD½9lè5UVµÈUVú̲B}hTbhÀ!.$oE'¯…‚¦ !šðÄÎ@ª’ª¤*‘Dª’ª¤*©Jª’ªÍí«j¨ÚøÌ*MŽ3«˜YÅÌ*†Ð\k«HUR•T%’Z‘ªtèР@€¾*©Jª’ª¤*©Jª’ª¤*‘Ô‚T¥¯J_•¾*}UúªeùªÔªÔªÔªÔªÔª ̬"UIUR•T%U“æÜ :>3³Š¾*©Jª’ª¤ju¾*:tèШ¥ÀÙ*R•T%UIUî@€:\±J­J­J­J¡G­J­J­J­J­Ê˜@ª’ª¤*©Ú49¤*©Jª’ª¤*÷W%UIUR•T¥@ª’ª¤*©Ú ÀÈȈ¡ª-N˜ªKÄ3å+¦ª05/LÖ g'íåJoÍ Fó%¼¹ÌE'ôåwÈ[ÏÑ”áøåfAhÑ4 ù-wEÕPµÙB¨ I^Ø5 !7 ~!XªF€ƒZªj0!$"Èj"ñkÊ™PfBÈ™UÑö,´Õ¨æM|§¥k´j¨9É™Ue!)XJ?e>Y5!„«2„h'WÖIôòû tE¡I®²Ÿnpš´¤h¯ÜÌ!Ã>e–ª’pÝu×}üñÇ]]]gÏž )a½ø¾wÌè…x¨ûÒ;Bžš>a-${£° dõÃg/r©œgª‘KÊî½Ê„ÊÔ„ \£IU–ópåöÕžÂy»^aª| ¡ вB Ñ#¬1!„¤e½C˜Y¢šHÿaù¶lÓ3³¤×Àáæ½2s ö; AC§åáfé"[8+d;hÔ$‰ˆI0Rš0g¹Ô ‘ 2]'Ù¼74ªDÆ$©‡JHx#É2Ö–´ö£™eúÒ¶K/ ,]PÃp“aj¶ìÚÎQŽ9CÆüµÎ9ºÊöO.«[ß©¿üé‹$9­µ„„Eë±ö4Òís/·³å묖ŒNÝͱhûØÆ)æüpá [¯d;õOQåM¹I2»ô”ì> e;ôºiF4öcyãg-•ðFqÒ7w´“ô*T¬(Y=®0’Òå¾¹£¤qj g‰"Ç3–mÁ¿z<ç®öÝúJ|“4§þ&Ï¿U®›¹Ø^žtÓJSF)¬_í3,*VºåäšRËÔ?Ë,\tÈÖkÙªŒº÷*qÉÍŒP-I:ÊV_?Ãíó×N[h2À¢çoX°F 2aËÖ±f«ÇQ¥jµ?$éÐß ·¬‘ŽÝs$":Á´‹NH.hW½HÙæŽ¹ž‹ JF¶*ØjÕ/5Ù •¹:ÊVÇUN*3Wt Ík‰ú+³uXÖcjÙ>Û”¬õZBhÕ¡«Éno¼åv7sIAfX¤l©ù@‰ÉÖ“¼e«5Ý‘“fû\;-uÙ:” 4˵–kÔªí”éªpkÕ®‹làìí Ñ“Mf;æÆ›íÌW‰ž"M[dʤ›VÙë‹+[íoô óí¹&é%šÙªT»ö,IÍZÙëU¼Ã'̲kÎzŒ^XÙ€ÿdÛ02ÚÌ¥ÕR€Î°d™Ù¹§Y§ï騼µ^ÅÖ(ÎKgh6¥@´C®½Ñi–U;?{™ÛX¸²úÓÙ ÚGÝ€ CVþNŸ-–ä<̳µê¶õƒ%1¥¹¹Õ^ëÎ:“B÷_Ûéàž U_÷œg·Sñ»ö©L)È”‘/²å/È-²d €l- [d ÈٜӲ¿ÂI(5ÙÞÿØ ðÈÙ [@¶ÈÙ²@¶€lá,bظR»^ ¡B…ŠnïÏ\v·ù?W¨XIîÛÿç -”mªT­&â“ W®b¿V⛤ù}û*Ò°¨ØBß×÷- [(ó¨PUf®ÒÓed €l¡”e«Ëf/“FqI%A ÃÍû3—¯w’aqÛy#Û%ëwIÓ™&!áQÒ$=C¬ÝâÔß­›öIÛ.½$:±‰DÆ$JhdŒäO_èÖ_ï#ì,þž=G¤Ïà<‰Œý£}ZFG¹÷Ñcöù˜b·Wá‡FÊì¼nçlý¬Õßü5›Œµ_«Ý]–Û6?f/ß±ó) +²ß„¦é2bâ,Ù¸ïxA¿ÇeÕûœö«vݳîí—¾¹£¤n@®@¶à¿Çy•¥fž²4ëô¶7²¶hÛúéKî”f­ÛÛËö>+ó&JãÔ–&«NmÙNª_Z³È~5Û.ê|hF®ÿágí[—Uè“æ®àzd þ“­Î ðTÐGq}¼÷¶7²ÕϺ®ßðÈ ý+CÏî%= 3Ùí½{Êê-›†¯µ`K®šùf÷$ºõ“ô6Y2êúy\/€lÁß™í~kJ˶^·óF¶S­õØ_j«vörÝúAæQßZVáÖ >#ÙºÖ¬µÜPTŸÈÎX¶Z‹Nh"+ïÛë^‹]¹ÁëvÞÈ6 ACóY«¿[Öm“†Ñ2ÿöÍv;à²ÍÖl=`Äîiþ®7²-_¾¼Œ›µÄÞ® ^ý¸^Ù‚O’Í3Åmžíªûu›e0~öRSÕÁ)•§0yšPœvWïq~o»ìަݺí÷T´šejBûKlÚ\æ­~À©?4 Ž—ˆ˜ó9•¤ U__7c‘ÝNû÷4§øîÝO»‡–!²zô—ðFqf°-6)Õˆžë-²@¶œd €lÙ [d ÈÙz±¥ ²@¶þ“íÑ·¾ð;ȶ ~Y\¸€¸Êîý‹l-²d‹lytà^@¶d¶€l‘- [dË£÷²%³d‹l-eÊÈÙ™-²@¶”À_lÿÇóRý’K½þÜ‘Sÿ'Ͼùç2²…³Õí›÷IJó ¹¤FÍ¿m?¶xNÊ—/_¬ý½÷áÃÒ¥giÖª­T©Z­TdûÞCêÈÙž+ܳ럒”ÚB*W©jþU’›Iã”æ²vË>¿ÞìÚwlb“é'":^êÔ 4ûÿСWÌ:eﳯ›uõ‚L›’8ÝçÒ`im-e„RÌ4¥§ËÛŸxABÂ"MöWd»íÀ éÚç*[²*ÜŸü/{¹ÏÀaæX-÷²%³=kdk1sñZé5`¨S»Åwl1YodL¼„GÅšÇê;·p’‚¾^ýÀ^“Qj6Ÿ$®¹VÚtì&ÿýQ¡Û • .¸@›¦Ë­öjÿ¿ú?Ò$­µ-×î9¹Ò¡ko{¹y›ŽòôkŸÙ"¶²xÍè‹êwþ­÷Jlã¦æx›¤™ãw• ¾ÖsŸ”jö]û]¹a—ý´ð؉wìýØðÐSÒª]gÓG\RŠÙç¥wmsêOÛ»>m(CÇNqÛîòõ;$&!Y¢b̶¯:Fj^V‡ëÙ"Û²$ÛýÇß’F±‰öò¼UÜÓxôY#Ô»véÖnÜôn™™n÷æÛ6Qî>üŸ3zlVÁýóåeê‚Û$ê|1nšLœµØd½šMz+[ÍU†ŽíU¼•.ºØi?ÃÅ;¶»ï7Yff].÷=òŒÛv~æ5ó#æ‹lõÉBŸ>ù¹YVá/»k;ed‹lËRf«òKnÖÒ^nÐ0Üãͯ2Ó¬ÔZÖ×úÈ^Üíj­UUDg"Ûžý¯6™¶>š«$~úUÓ¿f’9¹y^˶°ãuhÓLÒõGäÐ>u“eÈF¦ãX°èØ­O²Õͬ¯–oêÒZ:™³ü.®kd‹lË’l5+¼æÚë$££ûž2[ÍÚN—Ùêc®ÎQuÝ®®×~Uì›ö=ëóqŒž2Gò&Î4â²Ó[¶ídÖé±ø’Ùî;ö¦Sû'^ü@*W®â$A­éꀢc»Uw»ÉR÷eócÇŠ}õo»ÝÆ=O›RÃm÷í)t»º-ÍJ­þ½=-Gè)èàšµÝ[Ö<`Ö­¸g§÷5Û•÷˜5Çšmf§îR¡BE§ýÓíéñê9Ó,õý˜Á/WÙêyÑÌvס—íýûש/dÝÖÇLVªµf×ò„–m¬z¬žÃ«ïsÚ'¬õ^«?ýáÓÁ<ÊÈÙžåólU:ª®5NÍ2]¯ÛlÚhÖ§’MkÝÎãl5kA˲.ïk— ç¿:ÎÐ úè^·~ ÇæéÐ?<Ð Ö_x)ZΨU»®ì8ø¢ÝN3]ÇÙÖkžëq¨puPËš}1eîr³lÍ8°¶£„:H¦Y®Î„Юk*ÖôÖíMzžµ}ßAÃeý®ƒndzfÓ£¦ž?•yvïfcºOZ"Ñ~Â"cÌŠlÞ”kÙ"[8?Ê2šk9…?J@¶È–G'ðƒd5“Öúmûìžæ‘ÙRF@¶%Œ ¶iz†ùo(,»ûAÎ ™-²@¶”(# [d €l‘- [dK€2²@¶È-²¥Œ@Ù [d ÈÙòèÀ½€lÉlÙ"[@¶È–G'îdKf ÈÙ [Gé–…×PÎ-Y* ¯‘-²@¶È–2‚§Ç‚8߃2d‹l Ù"[dKÈÙ"[dKÈÙ"[‚@¶ÈÙ²E¶ÈÙ²E¶È– -²E¶È– -²E¶l‘-²%d‹l‘-²%d‹l‘-A [d‹l Ù"[d‹l Ù"[dKÈÙ"[dKÈÙ"[‚@¶ÈÙ²E¶ÈÙ²E¶È– -²E¶È– -²E¶l‘-²%d‹l‘-²%d‹l‘-A [d‹l Ù"[d‹l Ù"[dKÈÙ"[dKÈÙ"[‚@¶ÈÙ²E¶ÈÙ²E¶È– -²E¶È– -²E¶l‘-²%d‹l‘-²%d‹l‘-A [d‹l Ù"[d‹l Ù"[dKÈÙ"[dKÈÙ"[ÂqòäI©Q£†×Ÿûõ×_å÷ßG¶ÈÙ"[ßâ‹/¾(U‰Üyçj¨T©R©﫯¾*åË—?m;=''NœAƒIÇŽ¥zõê¥ržJûû@¶Èö¼‘­ÞXü±äååIBB‚$%%IZZšlܸQFí÷í§¦¦þ-7·nS·}&ŸOLL”   iݺµ¼óÎ;fòᇚuÁÁÁ¦MI_i§¿ëû@¶Èöœ—íG}d$»eËûQõË/¿”îݻ˨Q£mŸíµ×äꫯ¶%«Â=uꔽ¬?VšÉ"[d‹l‘­Œ9R6lØà¶þÍ7ßt’­Þ€Ç—nݺ™R³ßÌÌLÙ³g-—§žzÊdt*ï›o¾YÒÓÓ¥E‹Ò¡Cyÿý÷nâÏ>ûÌ´­V­šù×bÆŒNífÏžm·ûá‡dΜ9¦Ï¦M›JNNŽüòË/¦ý| Ç—6mÚHóæÍÍûÛ·o÷«luôXÇ?lØ0¹âŠ+ìå.]ºÈ?þh‹Ø:F=–¢úݺu«4kÖL7nlŽu÷îÝnÔ×ú½é9nÙ²¥éwÿþýöùÔókíGQß›·ß²E¶ÈÖÇ 3BðtÓ÷ÝwöòsÏ=')))&›³nâO?ýT:wî,»vírú\åÊ•eÅŠFFº¼sçN2dˆÇ›¶¸™”¶ËÊÊ’õë×› ü·ß~3·â›o¾1YºšÇÅÅùM¶V¨ µ¯¯¾úÊôm‹Nd¼Ýî¦M›$;;[>ÿüsÓVk¨={öt«ÙêyЛ¯¿þÚ¬×mêö\Ïgq¿72[d‹lýáááź¹zõê%/¼ð‚Ûú÷Þ{Ïd@…ÉD—Uæš©©lŸyæ™Bßÿé§ŸdùòåFT­Zµ’Þ½{K:uü.[œŠ^Þ–,Yb2ïU«V™Í&½Ý®ÖÌU†ŽíU¼_|±ÓyÒ§±c»_|Ñí|÷{C¶ÈÙú9"""äûï¿?m»˜˜#1ÇGL‹þýûŸV&…ÝÄÞȶ¨v#FŒ0¼šÝþüóÏfÐ/>>Þï²Õí¾ôÒKæÑ\%ùî»ïš~5“ÌÏÏ÷z»‘‘‘Óu M¿7ײ‚~®ç©¸ß²E¶ÈÖÏ1vìXóHêI Ÿ|ò‰|ûí·æu×®]å•W^ñyà©°›Xk«%![Íе´`… 7**Êï²]°`Ì›7ψËzL×s¥ë4Ãõ%³ÕóîØ^K"U«Vu:~}Rxýõ×Ú=þøãn穸ߛ·ß²E¶ÈÖ‡Ùšê ŒÊÊøÑÁ½¡_~ùe³îСC&Czûí·m©èàÔáÇͨ»Ö,­õÞÈV‡upKßÓí?ÿüó¶N'[•„f˜VMRŸ‹šG[R²Ý¶m›ù#…ØÇ¿cdznß¾}^owóæÍf`ͱf«%‘Š+:¿nOùرcæûzâ‰'Ìà—ëy*î÷æí÷l‘-²õaT]}l9u\Tt€kMPoÐN:™÷u\ep/PF@\€l‘-™-™-²åà^@¶”Ù"[2[2[dËÀ½€l)#ed˯9÷²E¶ÈÙ"[ Œ€lù5à^@¶ÈÙ"[d €lÉlÈl‘-²E¶ÈÙ [2[2[d‹l‘-²E¶È–Ì–2[dËÀ½€l)#²E¶d¶d¶È– €{ÙRFd‹lÉl¸-²E¶È(# [~͸-²@¶ÈÙed˯9÷²E¶Ül€l‘-²@¶d¶d¶ÈÙ"[d‹l-™-™-²E¶ÈÙ"[d‹lÉlÈl‘-÷²-†lJd €lÙ [d‹l-²d €l- [d ÈÙ [@¶ÈÙ"[d €lÙ [d ÈÙ²@¶È-ÀÙ-[ð+œ€R“í´Åw€@¶ÈÙ²@¶ÈÊl'Î]!Ó­;kû8ke;~ö2‰Kj&µëJý i×µÁ“4,Q9–tgLÁ¾ 9Q‚C#¥R¥‹Ì¿ B#$($LB#c$oò\~À7ÙFÅ5–ž†‰L- #«»¤´lw~ÊÖAºfß–‡O˜i¤‹lÀ'ÙÖ¨UÛI*×/X-ÍÛvv’Šf¿ŽÙžE«]ÚåO_$Éi­%$,ʈI3åÞƒFz̦‹ì¯€A£&™uŽÒË2æ¯uŽÒ+xÝÿš|³½º ¤AÃiÖºƒT©VÝ79ºÊöO.«[ß§ãÍèx¹}¼z~3:u— †á¦}lã¹qáZ.^€s]¶*+†^k²Zk Á—Ìvòü[庙‹íåI7­”Úõ|Ïl ‘ž'Ù^Zó²ù-´3ô6{HÍËꜙlÿìKkËí»õ•ø&iNýùr¼aQ±Ò-'W¦Vû6ûÌ… pîËvÜÌ%’Úª„GÇKDL‚¤et”ñ³–ú$ÛnY#»çHDt‚©uF'$K•ªÕKE¶¡ÓlX÷A—'Ï[e~D|•­cÍV3Ð*U«ý!I‡þ|9ÞÜ1×s¡œï³4Ûê38OFDû$[}¤ÖR€f{7Þr»¹¼•†l5ËT¦·É’¦-2Íãy+¯)™2Ÿ啖í³M ÀoÇ ç®l5#ôXÇõ ÍðŠ’…~Î1óSÕª]·Ðö§ëÏÛÌÖqY8̶K°f«B7ûìãñ"[€óX¶åÊ——œ!cí©¾¹£Ì4'OR¨S?Ð YµÌkÆMwR Ÿ0˼¯¥ˆFñÉrá… ÝöéúÓõúx>ú†ùæõ„9Ë¥Iz†GÙêqôÍmÇà1S¤n@P‰e¶º]û –¤f­|>^d p˶Ný 3û 8Ô îhÝÑ kÛy%0$LêÑ$¦47ë¬÷‡Ÿ!ýh­wªüT0úZËÞö§û04ªÙ7§’Õ£¿]OÕY –\õñ]kÏÖqh)dÄÄÙÞÉÍÃ<[«n«û¨û§Â÷öxõÂÓì‹)™2òà/ÈÙ [d ÈÙ²@¶È|“-øÿï9!lYJIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/mdi-cascade.png0000644000076500000240000003437612536324517021607 0ustar philstaff00000000000000‰PNG  IHDRëÏ›U±¢8ÅIDATxœblnm¿÷¶Ðß¿F*`ddÄ%õÿÿ*ªùðქµ½°°ðŸ?ð(˜ÿÿb¹~õ²ššÚh¨aþüÁ%ÅÌÌ 4‚jþÿÿ§t`fffaaùû÷ïÉãG|ýƒð˜6 °ÿÿ䔽 À@ƒK0›ïÿ¤âPÅëP8Ê•ëП©Ÿ BDUÝÝÌ|±`sO£åHGkgT¯ðÙ´ÊL’.€ª‘'=A2bmíÍãÿ£ ÿÿ씽 Ã0 „}Šðhˆßÿýì%Ø §*%º´d«VýppŸNINÓc¼‰`333/I’tkCŸ(!yÝ23’zkßw01F?û»fÇq¤”æyv‘o%"cŒZë²,9gvá"‘Þ{k­”’R"IðüL³à3ëºnÛ¦ªçùOßoêÿÿìV1nÄ0 £m)çòüÿyBÆA·«BºÜr8à¶rJ)I¤ŸhsVU’qIÝ}š¦q[kªZJ9Ž#¶Iw3 ZïÝÌJ)D¤ÖZk%yž§™µÖÖuÝ÷}Y–Þû¶mó<_מ)¿ t^œ÷‚x9räÅ‹222/^¼àââbaaùôé°°°··÷† >~üøçÏŸ¯_¿zyyihh\»víþýû7oÞTPP`aa±°°X³fÍ‹/nß¾íïï/ °}ûvFFFˆQïß¿gccƒ44ÙØØ>}úDd5 &&&&&&Ì‹CÔ031Ý}ðêé³—,,Ìþü•’SQÿ‡nã­ûoÅExD…y_¾ùüæÝyáÿ ðä;š‚Éÿÿì–1j…@„³¿`KDñ6² vni¥gðÞÀ% <𦱑Ç+^0XÌ&ML“&Òå+‡™)‡òglÛ¦ëºïûMÓxž·, !„1Ö¶m]×û¾WUÕu]š¦aFQÄËóœs.„Ó4ƒ Çq]W ”J)û¾†AÓ´¢(â8¦”NÓä8޶m×u ð,+˲$I8窪–e)„RÎóüu?~|ɱÁ œ/WD@T•óåJ”ÃóºE|‘ow§‡Ç§çûS'_ßñ¨º!„ü_àßñÿÿ‚VsT,,,¿ÿVVVfee]¼x±¹¹9'''¤g⥥õ÷ï_NNÎüüüïß¿_ºtIFFæÔ©S/^Œˆˆ˜5kÖþýû¿|ùÒÓÓóäÉ...†ÿÿÿùòåÅ‹>ÔÓÓûû÷oNNΗ/_DDDž>}zýúõýû÷/[¶,""¢»»{Þ¼y"¼¹¹ùüùósˆt?Z fee fäD aÿÿÏ ,Èãdgdg¥çlo$"Äûÿÿfffˆ&&&ff¦ßþZ™(«)I­ÚxLKUÆÂHñ÷Ÿ¿Á ˆa›†.ÿÿä—½j…@…wì…È* ÁpkHcc'¸a¿…OàËY ¾€>€pƒBÓ¨ˆ;) ù©Ò$U¦> Ãp8|ç)â8)¥ÖZJYU•ëºû¾oÛæ8´mëûþ8ŽeYÚ¶EQQJ©º®1˲®ë¦i¢”š¦É9÷|ðŸÿlþÿ¯>˜sŽJ’$Š"UU !Ó4ã¨ëúê¨ïû]×eY†¢”¶mkšf†išº®[–%„RZ…eYŠ¢`Œçy–e¹®ëa „}ß{žWU•¦iyž†Á9oš†bÛ6Æ8ŽcÇq‚  ”®éð‡¿­ ˆÓÛÇ}üÄ–÷eáÛó­s}Éø%À~ŠçWIŒ1¾% 8ëm$VÍîìôäöêâáñ¥jvw7Ö¾Zšÿí×ó ÿÿÜ™Íj…0…“1M*$Š¿ à•BÂG×T“¨M“¦‹À]wqW78Ìá0ç<Ïó4M×uz*Oŧ.Õ4µVJYUUâ!¥cŒs¾ï»1&ÏsÎy²¸R (¥RJ!„!tß·”2±¿¾ïsÇqdYÆ#„$ø%¥ !´m«µ>ϳë:ÆØ¶mBJéߥ€µ–s^×uð>"üx4¤“Œ1˲ ÃP–e!„ŸóúÂÅóü•dZëu]Çq,ŠÂ{¦/™÷žâ¾F1ÕMkmŒQ©Ï·÷çÜ#ÝŸµˆÿ=¿ÿÿì™»Ã0EÁ#Ûª|×àwßüÉíÓ4©j)%„°m›BsÍól`¸ïûqk­öócæa@D džË9w]ªJD1F;‹EÄZ뺮ˆHD)%ç3‹È²,×®‡mÃzÛ¶1F"újP¶¡(¥Xš…˜Ù9Ìùþ¨iÎóüÐ ªjÓxð¾ïý¾ïϬF )¹ÛÍ;Žã?Z\±ÿÿäY1 €0»;,íoDüÿ¢à; ]:t)Î^õppqè褙³$ÉmˆˆD$„`Œùó?tÇ çœRê>ˆx—€ªÆ»^!b­µ”â½·Öv9DÄÌ"Ìû¶.ª§ª:çÆi>Z{]Ú÷pÿÿb Úÿû÷íïß¿>”““À5’?B#tæ g6†dxø4!f;›H5pðë×/†ÿÌÌÌÌ÷ïßÿùó§…¥õÏŸ?Gr,ÿÿìš!À0 Õ$uA@ÿÿÀ¥ˆÔ€ÂUEÞŒZ²Á‰ˆôÞD„»«*™ÙÿÃö”R2óÐnö:2s­uÎyHíöžãã8bŒÌüìp¥fnšæ#¿«”rÎÍóÜuP;˜Ó£µ¾¯)DXGDhþ¬µ!õÆÜýõM/ÿÿÔZ± ƒ@ =λÍADœÄÁÉIwApT8ßA4Êa¸¡Òv( ¥oN†Ç{Nû»t‹ÝéûÐA ‚¦i\×¥7­u’$J©ªª”RY–MÓDœv§ëº¾ïÉʲŒãx­5\ZË9/ŠÂó<Û¶ëºB„a˜¦iEƘyž—eñ}¿mÛq©è"û¾#¢”2ÏsòôOFfoó¼Ç˲ÙºÛv¬ëÈ(ŸcOY‰u¢‘BpÎ¥'š—šrâ¿pÿÿ‚®[E.Ÿ AL•@„biiiaaqçÎGAJ²÷ïß>|8##cÑ¢E?~ü°··8wî¤ì100ÐÒÒÚ¾};ÛË—/\]]ÿþ}ùòeÈÚ†oß¾éééݾ}[DDÄÅÅeõêÕAAAgÏž½víÚÿÿÿ………™™™¿}ûöôéÓ””Žÿþݽ{÷íÛ·vvvÿþý;uê”®®®««+ ËÙ³g¿|ù‚gø-™b† ZBgee9ròòÓg/ÙÙXþú-%%îd£û÷ï?$5Œll,ÇÎÞádg¶³TßwäúÿÿŒ¶fJ° &&¦Ñ˜Xÿÿ‚ÖtÈ{ùòå¯_¿ “õ”&&¦ß¿ËÈÈpppdgg›˜˜À=>zôèåË—?~þ÷¾ÿw¶Ûmš¦‡Ãa½^ï÷ûÝn7ŸÏí9üÇÑÆß÷9çÇãq6›Ù=: !Zkß÷O§“”’RÊ€º®Çãñår± ŒqÇY–QJµÖeY6M3™LºÝ.xžW… ñ@–e‹Åcœçy’$B Ì!Ëå’s¾Z­6›Íp8DE”RkŽ;Ît:ýá­æº®R*‚0 Ûê¯&z1mÐöû÷ILBUU1Æl!óÆÞå‡ô<z·½Qt‡s½^9çQA€y~=“þMØÃg¡JñîÇB(¥Œi¥¬S­ÿ‰Æ/úÿÿì›1n„0EÇž±ã!$J8GöQŠå>œrs ¨InlcÏÃn‘&Rêø–‹/ÏèÍ›3ÁÓ4 ð®ë8ŽmÛ>ý@¤?weÌlÈXk…Ž iJGRJI•G1E"RpöÍÏ?™C ιÓY…µŠ!>£†­µ!8ÁYÉÎ9átˆÈ…‰¨ªªmÛn·œóåõ"dW®c Ë\÷çã —œAÖÚ{_×uÓ4¢8»£”RéÈ!&"Ú÷}žç®ëDⱆ4>hZ.1²~²,Kß÷¢<–Ž ¡&Ô!"úx﹔ϯï·÷ë‚=wÿÿì\± B1 Ìå=úD,âÿÿ˜® R¸(‰Ãií+‚«J{¤BI»Î<´•MÓ1¨š•_>1hYg—×mqªâOÓ €â®:ãMÛØTâJµ…*Ê¥ÃËa5³Ýv“s>ŸŽ]¨6½.íiZ,Wk–,ÕNôø݃ra)%>.ynõ̾ïtèGLˆŒã@3+ÆÙCüK÷‹ñÿÿì[Á Â0 MRñ`)BqþÿwUq÷ZZŠ´‰‡9hÁ«9…äÈ!$]ã›n+"Ä"wÂóp²çRËOYVÊÚÜ¥7€b3Þà‚™oË«pƒØŽŠ¹ú\–%Âü‘ImØ.#a"u»O—¡Xkke­uÎÙ9÷©>fÇ1ƘRÚÆ„bŒcÌÃ{DüÂßÈ ÿÿB?Çà÷ïßž ;û—Ï^~dfÐúå÷`)þ3üý‹sÅ33 $"«ùÅÐþ=V5˜æ013eâ¿uÿ¨¹ï¿ÿŒŒÿØØØ~ã^,Y}†¦:°€¤†²b9?þüöýÛŸ¿G›ÄÿÿBIÁÿþ•••urrzðàÁóç/ØY¹¹¾½úôùÇ÷Ϥvìëh¸¤­€©˜™™éï_ì)d©ÿ ÿÿýædǾ`€‘‘áÇÏ?ÿþ332üå`Ç~ÂÑj~ÿg`a``eeúóš–ð4¥°¶s +ð«Á4ÇÀÀàׯ_Â&£ÿÿäš± Â@ †ÓôZD«´xŠX¨SéØ÷‹º:¹\…"ŸˆxSJÔ çI’ÄhÑ7ŒN¥RJ‰ºY¯’8îbÜ»ˆÈÅHyi[…¾ÏÛl¶wC?ŒCßÇ¢(ò12¥”Zë<Ï«joí_®#í ÿÿä[±JÄ@™]sžÜ©?›»_XøZëgYØÖÖzéÂÁù1cIØlfÆbmÄ&ÖN;0Ãóà½Çûá*—eY×uß÷Mó¹ºZ¯7›×·GDˆ‚ýô¡ªzy> £ó €ªº˜Ÿ$iÚ{UQ?c‰–‹ìá®Ø>¿7­Ï²†!(€!ºXÎîo‹§—]ëÆï0¢ŠªÈoÍ_#¶!"¨ ³±‰µIì0‡1xˆ§ˆ³µ‰ª02ÖÀH„ªr:?+®o¼ÿ‘,ðã°7Æäy>=mAD]×UUåœc–øWÓ÷þÏúÿÿ‚¦`H9qñâÅ_¿~±±³300233³±²1 †&ˆ*ƒÿüùËÏ˵hRò›×¯òg²s‹11ý{÷þkz¬“‚ø¿¬ªåÂâ ÃÇI¿cðÿÿìœ?Ka Æó<¹³Ô*´J)ˆTè¤âb¯¢ƒcéäÜÍïåî·pu¤þÂH§R =|˽‡« ¸œ»™Ÿ)„'$¿SDv=(Yc5ó©%ÒܬädòÑ9Øyz¸ƒ¤ÍÍÊí}\)—”ÃÀÅï†ÆöÖJ}9Ž¢Ýóë×Ó«—¹ÂÂa·ÝŠšGÇgÅR¹½WsÓéóÛÚÉEϹÄÌ”P‚%ŒÀ/. eæ¯PŠ@ÇÃ÷âübÌl<ÔV×u¶ÛÍ4!•ýÞecc¿ÿx³T­Šyb†!³Äû¿¾«˜™O¼˜|1¥òfï»ò¿€sÆ'ÿÿ‚–¬€ãææFÞæùÿ?d 9#ñˆñ?+“‡“Þž½ï?ýâåløãÛ{VF&†ÿÿ¾ÿùúÝço?~ÿúõçÑãgïÞ¾×Uåüòþ+kuCÏê-Ç}UÜmÞ¾y~éòe 9†ï20²02þG²‚‰…™‰™™‰™™‰ XYY™˜¡kn ‚,,ÌLŒÿ9¸xU´¬•4,TµmøÄÿ±°0313102@ÊòÿÿKÉëÊ*]:±AXLAAÍœáß&fF&&F&FÆÿ ÿÿÿ#1üM†tÿÿ‚–Á¡†àààM›6ýúõ‹‘ñ?¬iÁÌÌô™¨Vã·ï¿,LT¤Å8´5Uyx˜ôt5Tdù󕅑ᯙ™I_ß÷_Æ:’ož ²°2³2³ýÿ÷““½0?ÇÇ×wþÌn!q%';£—o>ïÞw”‘‹“ Ò<`†3YØÅÌÀðÿç÷Ïÿÿÿc`øÏÌÌÆÆÎÉ=艙‰‘:«÷—á#Ã?FÆÿÿþ03213A'#33#+Û·O¯^<¾!§bøþõc~Aq^~1FFfèZ&†ÿÿ!ªI-ƒÿýû7:šKÿÿBQBŽ*Ø#‘=9FFVæß¿ÿddî=r]^ÕØÖôÒëg7ØEøyx¸¿zþÄVf†'OoXÇ¥$'øåë/_ÿcà¯ižþòÙíkWÎoÚ~XÓ$ðîÃŒ¿ß_¿yÿ/§j×Ä…ïÞ}gcdøÃÈm*ügaúóûçÍKû~|ÿúïß_1  }†LÌ æ3#Ó&v6öGwα°°þû÷‘™‰‰™‘Öä`fayr”šŽÍÃ;ç^?¿#("Éøÿ¤YÂðc1àÿÿÿ¬E’®Q@ÿÿì\;Až™Ý;'g‘¨äxD" þÞ¦¡r‰Ð¨‰C¼îvW±” Êdúi¾â{ÌÌÇÏÌð=‚Àq,µ½]òÝa ‰O;+ÝtÖ›ýñ •’Üò„HÍ×gD—()2bº8då.ª÷ÆD4[÷«Ž»µD\LýÀ+¤Ñ“„H„(µmÇ:ýÑ{,‚VFþ˜õD†JY(5‡¹PÒÜŠ+Ã4"2¢0 ‹•6cì~=z…j6WQ2bœVý²´•ÒZ}ÅK ‚ÿ¹ðoê ÿÿì\ÁÂ0}Úέ™Ùæ¼øÿ¹­­LLôâIN\ !yðï=‚ÍTÛ™ÌEH}7¦!çe_—©T`8Å1ÝjêRJú§¿^æªs6+Ë|&šTUµ\×¥ý{9€™b ¯Û‘A "´ï¢ªÂbpt8çº.>ªi*$~ÛTÕ3…è+–aÆ!`3ó"^3™™jåî¾h¨5êß‚cwÿÿì\1ƒ0 ´/SÄøÿ#i@)×Á!„D»0áùF[>ÛçÛ+{¶“΃þƃ7QÝ8L„ªª£o_æ€Ê*1 ðí+’ÂZÕ=«I@}LïâßR»:€ñiCßçémv‚Iy6K‡ôà¼Rîb,¥èâ8ÿ×aÁ«åNákâ ÿÿB_ÙƒÒfø÷ÿÿÿ¿ÿýýCZH7‘‘‰‘õÎýX›4ÿÿÿçäàäâæúùó'>5œœ\Ü\?~ü¼sÿ9.5\œœ\ܬ_¿}ÿÇòÿ?¤A€µƒG=ÿÿB™“;~ü8d#Dðìlbâ|ÿ8«L £‡Ä-Á%ûzF£(ejþ122r²3üùÌú÷/ôþ ⤯4ÿÿBl²g``X·n¢¢" Ë¿ÿ˜˜ÿ3sÈ©*Tg{p²³1RûŸïß¿“w¸žÚ±ò˜25 ÿXY˜^ú9yþ÷?¿ÉXý2køotN˜öÿÿ‚ž] Iĺºº?þüýû7/ïógOî?ÆÀ$YS6xŠb–)S¨æ?Ãÿÿ LLL?|¿qý*#3 ©ë™˜~ýüɧªY±Nü¬òèRRÿÿB™Ñˆ‹‹Û´iÓïß¿ÿþùÃ/$¬¤¤zùá[¬uýä5_ƒ(yS 022þù󇟟ßÏ×û‰%)dÕ‹—¯XYX!gŸ.Ék\dÿÿÂ2£ÁÄÄüãÇw~!umÅË·0`ÀÿýebD”ÿþÿûÏð‘‘zÔÁ°IÓŒŒŒÌ,¬Ä^â$ËÌÌüo´?G{ÿÿÂ:üŸ‘‘éïß?_¿~”û÷ÿ?3ó¯ß¿ÿüÎÀú‹™ƒ…›¥•üÿÿ¿ ÿ˜ ‡… —4M<€o€4ÿÿÂ3'LjÙúýÿÿ?#ã¢Ýkfî˜-¬ó‘ï3·¯‚Ÿ²¯‚,¿Š ¯?»'+73úHó?†LŒÌ#.!ÿÿBOÁ(3¨ ²¿ÿþ231ï8»/¾1YÝ…››åÓW¦ÿ /î¸qðÿ&FV&6.6>!QI9Y>ei>EY>eY>ea.VfRkãQ0 ÿÿ»²­ óŸaÕ¾M Ü Š*‚ÿüfcþÏÈÈÊ🋙™…‘ñÿÿþÿyöåá÷Ž>ÙÁÀÀÈÊÄÊÅÊ+È!"Æ-£"¤•¤_ÁÃÆGRÏfŒüÿÿB™Ñ¸ÿþ·oß ¤Ak~$Ivß~~c`aüûïã¿ÿ ÿÿ1²°þûôãÍï¿þ33±ð°ñs°p2ü‡ìúaüóï÷˯O}¼}éÕñPÍ 6>ȶ:ûs Wÿÿ‚¦`Hêfee…'\´Vl ù˜FfÖÿ/žþr uеe`ú{îÙÑ#·ÿaøÏÊÄúáÏŸßY˜YÙX8X˜X¹Yy˜ {£ÉwP ÿÿBÙ'·víZÈ5óÆ`|1Ãÿÿ ¬Œ·/ÍÖë*Nþ÷ÿãÕÄãOv7JýËðëí-ÁÉ1‹·?øávfö¿ÿ±\1 F…ÿÿBãããCì2úO`Š••ùÍëÏ* NÁÉ ï̵ï1?xá„¥ŒkŒ~Þ³÷Ϲ¿Êب8ò± ¾ÿþ¶¬bt|iPÿÿ‚¦`ø.#QQÑß¿¡'ôàY`õÿ? +ÃóÇü>ýø¸üÊ”—,gz×õ100X‰ûÊÿpiŠ®f``гpTðý÷r ÐhûaPÿÿB›‰øg4 020þùû—í;¶¼:ÃÛïÏ?}ÿ(-&ñàëß?þ²‹è :ÚêZ100xªD˜wýûGêÔì(DÿÿBIÁðõÁSçþýû‹³Þgdøûï/óI!1†/¿?ýüû“™™ñ׿¯¯>¼â|òçÌ´Ís¦j*ØÄÂÌ:d‹ßÿdìÇkêÿÿB_3 }ÈŠXV6v\ÑÀÈÀðïïF6vN†?ÿ~ÿ‡“Êðç矟 lÌ\?þüb``øðëõÓ/÷àÆÓÈ´ŒdÌC…FMÿÿÂ2£ñ÷ï_^^ÞÏŸÞ:|„MçêJèÑ~õŒÿÿCO5ed``øÏm[³0±r°pÀ’îŠÕÿLŒL?þºwï>ç>033øøQFZŠ.ÈÿÿBIÁ_¿~…øüû÷/aaQM-ów_âX]ÉÀÄÄôÿÿϯ߿200°2³332ýÿ÷Ÿ……áûï/ ÿai|H.Ñbü÷ÿ›‚¼,™«+_°æß( ÿÿB¹ËèíÛ·¿ÿfaaùþýŸ ¡ DkÄÂÌü‡é˳·/øØ8X8ÿüýÇÎÌÍÏÍËÀÀðæûKfFÈòyæ!{E3##3 €²MuÐÿÿBI[?þ„ôC˜˜˜þþûóõë\Úþ3ügfbþËõíê£[ Bâ‚ÜÂo?¼cåãåüÊðæé§l¬ì ¿þþ~÷õ#l!ÄPl‚A ÿÿB)ƒW¬Xñúõk66Èí–øŒŒ ~ý—”aÙrnÃnvž„߯E’]R?Üñþ÷‹ÏŸ¾300DkNpÜÂÎÂñ÷ßß!ÕCÿÿB™ÑÈÉÉ‘’’‚\ÌÆ€w<˜á÷Ÿ¿Â"¼wL^¿!@9u_ÞÅHç€gŸÌ;Û§¢(´ãÁ’3Nqs±ýdyûí×W&F¦Ñô; ¨ÿÿBéÉ "_/Œ¾º022üþñ_Y‹sî½Ê‹¯yJ‹Jž}v¨|_äï¿ù¸x¿Ëß.:àÇÂÂøí×W.Vîѽ»£€ÿÿÂ> cêJ3þÿû‡IA}ñµî™[–100ð² h‹šr²rÿþ󇑃ƒ™‘ES˜™‰…‘‰•™ê#ÿÿBOÁ˜gW⌌ÿ¿}þ§§#µõ抪‰è59Ìçdábdddfbfb`fbdú÷ÿß»ï¯Ô…õ…9Åÿ3s'Å(¸ÿÿÂwnÖq\&&fääÒ6v§…»ƒ¬ÔÌ?üzõáÇ›_A–S²1±s±ñ˜I;å›·Cì` öñ?£`$ÿÿÂ}nÆêJÈ }¾eø÷…™õÿ†¿ ÿÿýûûûÿ¯¯ß?30þÇzmÝÍ‹üìB2üÊ’ÜrÒ|ŠŠ²|Ê¢\R<²¬Ll T?½jŒpÿÿBYá~èСwïÞÁW¸c´ƒ6]Úöæó fVFfFV^6>qNIYi^E%-y~5QnIN vNdÿÿÿÿÏðî¹´ÿÿBÙ'wûöíŸ?Â/?DkCîŽräæe¹üm—®´‘4’(—”8·4 š¹ÿþÿ‡]'˹…Æ#ÿÿBiE°³³#.Ledø÷ïZK‚‘‘ñßÿþf¾þ ¾Èâ˜é•‰‘‘at{ý( =ÿÿÂ~â ¤GÇÊŠåþWÈØÒü0#ôîªÑô: ÿÿBIÁ?~üø÷ïßß¿yyù^>rãÐÁÿ☫+™FDoltuåÐÿÿB9»ÒÍÍíĉÿþýõë—¨¨¸¾¡ñéOÿþýûÿ? uTddd$ã–+ºÿÿþýcúó÷;;»¢¢<«+Y˜™_¼â]]IÿÿB9/BNNîâÅ‹ÿÿ3üüùƒ_DBöì­ç<Ü\ÿÿÿE¹œ€ C ÿ¹8ÙqÝROŽqT]4ôÿ?3 ÓÏLÿþýcdd"õ°7Hng&éö˜Q@.ÿÿÂ~v%#ӯ߿þùúmÆÊÿþþfbdf€m»øýç7Ã?†ÿÿÿCÆÈ+G©XúB†±!Wýû÷rµçßÐ3É:Uš‰‰ñó·_¼Ü I˜ÁXUŒÿÿì1Â0 EíŸT"™”S”…±rî?°´CTEÂ&f ‘ð <<ýéÛï଱fzLÓzµ<Ÿ—þj±ˆ1Ú¦†\ºmÇJÖÚR4—œD£/'ÏqÈ€Öûd9g0TÕkô­ª°1ǘîiÓ¶Ìä¼O)ÉMœw bùTŒLõö~w¬»þþÑyÿÿB™Ñ˜={6Ûÿÿ Œ ¿ÿüáçá|Çø“——ÏÁÒŽíÞ½»?¾633}xÿþ–-›¿ÿøîá饣c )ùèïzHéøéÓçoß¾IHˆß¹}kÚÔ©¡aáÎ.6·oÝ\³zµ””TtL, ¶AâÁàl¬ÿÿBiCºV°Íâÿ™™X?~rïþƒ3gOëêꧤ¤¿{ÿ™ñ/CO_Ÿ®ž^rZ: 3óÚuëŒÿüþsíÚ5‘={öhjjøúú®Y³æþýûÎ..:Ú:'Mäã匋‹ûó‡äøÿÿ? óïß~ýþËÀÀ #+/("zíú K+«¦æ–®®®mÛ¶Íš=;++ëׯßdlû!þ2ÓQ0Pÿÿ‚œ2XZZ>>ÀÈÈøãÇw aáwoÞÈÊÈüû÷‡‰‰ ² ,33óÙÓ§5ÕÕOž<¹sûö—ÏŸ¿ÿöøñ£cÇŽ²³³YZZrppèêê*((,[ºôÍ›×wnßÎÏÏ?þü“'OXX˜™˜™aWÔSˆà vyy&&FyyùC‡=yòäáÇp5¤¢Ñä;øÿÿ‚¦`HTñóóÃW¸C ãÿþ¹¸¸;v"¹–KZZº¡¡ÁÃã««‹ýÏŸ?ïÞ½ûðáCqq±ššZKKËñãÇ—-[ÆÇÇ÷þýûŸ?ÊÉÉ100ðòò~ýú•¦þùýû7ÄýùùùBBBÏž=ÓÔÔ¤©£``ÿÿì1 à Fÿ,nARÄÍ5Crg!wtͪ¤Xpn%çpÒµC ÐÎJß Þúñà{Ûƒ¥”˲ìÇÑ4PJAÝì5„à÷®»ä\j­çUíº®ÖZ˜ç™¢”Ê9sεÖÛ¶ ÃÀkÛ6¥Ô÷=Ƙ1”RŒ? НpFHÞ{cLJIctÎã8MÓKðÏïñÿÿB‹`cccbb‚¯…øû÷¯ ÐãÇ Œ-­¬?þ ¹`žÁËËËÃÃrcCyy933ó¿ÿ,--ÙÙÙKJJþþýËÎÎÎÀÀ™™ÉÀÀ••1™êµ3dѦšºúüùó¡jLLªªª—ÐÂÆQ0HÿÿÂy ##ãÏŸ?”””ôôôÿþýåËg&Ôš1¤Ý )á ·ÿqpp@VÊ333îe‚Ü<@ëû˜!=/Ø*g¸KF“ï0ÿÿ•‚!Ä? wÇBÒæ.|¬µ3rŠ( gAˆlËhÚöÿÿ³ӓáßß𠲌áÿÿ£cû£`PÿÿÂ~—dK 333¼…ÀÌÌÌÊÊöô2Q0˜ÿÿBIÁïÞ½ûõë׿ÿxyy_¾xvíê´#ÏŒLL>z|€‰‰éÛ·o¿ÿùýûן?ÿ‡£FWWÒÿÿB™Už2eŠˆˆÇ?„„EÕÔ´þüùO©ÌÌÌïÞ½ãää—“ùû÷ï`Ÿ‚ôß¿ÿðíûwi)ÉA²\âªW¯8GWWÒÿÿB)ƒýú ý_¿~rsóhië~ûö ÞŠ`gç¸}ûÆ·¯ŸÐv54`d„^ ;È\5zÎ!=ÿÿ윱 ÀPÅ¿ƒKº¾>PPS„_¤HHŠÜ7Àq—ošªŠHf2sw»;fðˆàµˆèLß¿afªŠöûⳞ?OqÿÿB)ƒ%%%98Ðvüg`øÏÍÃýãûwèæûÿÿ˜˜˜×AR§aÓÕ3ŒŒ·oßNIIùÿÿÿ† ª««víÚÅÀÀ)˜GÁðÿÿÂw3øï?899~üÈËÛ÷ïß¿^ ²ÌÌÌ¢¢¢fff·nÝÚ·oßǵ´´\]]7oÞ}rãúÕÿ2À ³?þpppÌœ9óáÇllloß¾ååå•üýû÷Ÿ?~ÿþm``Ê@ûuaÿ ›—.]º¼ÿþuëÖ8p€aÕªUŽŽŽ tÉB£` ÿÿ¹²‡‰‘ñë·¯ŽÎŸ>zõêå·oß «+¡Gªýÿõë—¶¶öýû÷eddddd>|øÀÃÃÃÊÊ*--³téÒ‹/º»»3Àºt´ó¼nèííùû÷/''§››Û¿ÿ¸¹¹]]]F/eÖÿÿ™‚þýýgckÇÍÍ­££+,,üû÷¯ÿÿÿspr|üøñÒ¥Knnnººº¿ÿ†ÏÏ2¨Àм‹wèÿÿÂ’‚ÿþýËÃÃËÌÄpãúeô‚öÿ~™û!¯YXÀÈÈøû÷ï¿ÿþýüù`ð,`bbüþý‡ŒŒô@;døÿÿÂ’‚!‹Ù­¬,1Äÿÿÿ¹¸¸°ž+< pA’Õ‡+ÿÿÂy6ÖR²òk4‚ÁÿÿÂޜų¦l´Dƒ ÿÿD²Q0 ÈÿÿMÁ£`hÿÿMÁ£`hÿÿBœµ3Ð.£€ÿÿ‚n¯øùóç·oß¾ÿ΀´¶aŒ‚Áÿÿbù÷–ÖñãÇ?~ü8ºg -ÿÿbùýû÷›7o„„„ÄÅÅ_¼xñáÇvÒ($ÿÿbùó÷ÿì9s˜YX>~ø ¬¬4:â; †ÿÿb‘WP†l£gaayûöí¿??©vÍÐ(´ÿÿbù÷ÚðE^¨> FÁPÿÿDCÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿºÂ×Ä2|¼btÔ‚`t$ž ÿÿÂ<ùºr€l@b kšFFÆA¸ku0ÿÿBOÁ´ËÆÆ~êÔ)666̲–þgªŽÀÌÌüþý{^^^†ÑY%¢ÿÿBIÁÿÿÿgddàããsvvzýú5Ö”:Ú~ øÿÿ¿¨¨¨¬œÜ›W¯ 'ÔÿÿB¤àÿþqrr>úzùòeÿþýgcõs´¦!øÿÿÿ±cGýúÅÉÅÍÈÈ0Z\ÿÿB¤à¿ÿrqq‰IH¿|õrì:k$HÕ'¯ 4ÄÿÿB¤`FFÆ?þððò  Žæý¿ÿMÁÄÿÿBi322þýóçïŸ?åšQ£Ýe"ÿÿÂwÆ(ƒÿÿ“CÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿMÁ£`hÿÿ„ÄØã QIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/mdi-tile.png0000644000076500000240000007561012536324517021155 0ustar philstaff00000000000000‰PNG  IHDRëÏ›U±¢{OIDATxœbllé¸|ý‰ˆ°Èß¿F`d`Ä%õÿÿˆ$¥jþ300¾ÿðÚÝÉüö­[ïß½æããû÷ï%Î*€‘g°0@Bb5ÿÿÿgbbzÿþ½²Š:ÿÿbô Nc¶`ÆgàpÿüÁ%ÅÌÌÌÈÈøŸj˜˜˜¿~ûôéÑ6m5iùÿÿGDòe``øû÷/$ b&&&&&&"ÕüÁ¼LLLÌÌÌ¿ÿ¾rå ÿÿ¬TA Ã@œq“m þÿ‘M!hkÕÒ=ì†B;:Š¢Î0M—ÛºmÛ*’þÑ$£hÓÇh ’’˜µW~úîzÎíI ÜÕ€¡§Àãià7œ!çñ¥>Ïó²\UõXxz(Yõ¾ë:µ_D"b0’=Õ'Åîk~JÉÝ{GÖìªÀÌʇ7STUDÜýwÉœ3É7ÿÿ´–ËjÄ0 E%Ån^¥Éêæÿ?ÎSBK;$4‰cK]8cR¦fQ­º~pu@RÂAkUäyÿ¿!F€ã+,",Y†?²³L_ëc]d»Eqj „k‰î‡‘œ[Ú§ªëºøÖ"š¦ÉžßÌó©m›½…©GˆHDã8ž_ß_Ì©ivM2:æDt¹\>>ç­3k]D¤îþ43ÏŠH!¤”J¥eY´ÖJ)ðÞoÛV–å-dÓHIÝ{ッª*êçyÎÿD"]r°½÷DÔ÷ý¯èGò¬µeYcäI@Dˆèœ³ÖÖumŒ‰öŠŠÄåq]×a´Öð ÿÿ´”1nÃ@ É¥y§“"+*Ôèþ„äÆÏHêäÿ¥á;2#pÒ$@ˆ- C‚ˆþï0ÑPÒÐw(öè;¦AD¨·êfî>Ëûë>ör»5™Y3#ŸŸû·—íøtp"‘߯Á9¹™›L$€›[3j4÷š‘dÍÜ,LH0€’³5#g@?0˜=Þ!øÏÓu]<›0UU—eÇqš¦eYD¤Öîû¾®ëõz­µ®ëºm[xÆ-,¥0sÎ94M)N§óù\k «.—Ë<Ïf áú½ÊÝc«‡æ¸ÞÀ짉’;¦Rr$g½31q«Ö×ÖÜ-%y`ˆèÿÿ´–ËJaÇç|7Ǧ±iFÔ4‘äH /;“v0‹=»¾@Û^¡‡ºÒ.È»c’t±œGÆq¦Å› ÃYþÏŸÃáÇ9çß Æ<Ï Œûw¶7¶6—ìnF úêöÖVsåõùv“êÙìÌt(¨Øý¦–fëZQ® ¶íU%:´,[›œXYœ3_kèp–F£!@#ƘÑ~¸©íÞ_ÜÔvߟ¯£×pFéçÛý oŽI²ëXÆÛ£”û €€?I!ÄA¬T*¹\Î0 Ƙã8±X,ŸÏ—J%]×S©c, q‚Óét§Óá²x<žH$êõº$Iáp˜¯:Œq¯×+ ™LÆ4Ír¹FUU-‹­V«Z­6›MY–EÉf³FömMÓDQ”eÙó<ŸÏ‰D\×%„躞L&EQäGàWç£bˆPJÚkÿøüðä|ïèì´z;,NÌÇèÓË×cëS–üèâêÙóŒö ßÿÿ¬˜O‹qÇÏóÌOfQsðO:T¸‘]¬$ÄC°Ö¥ÃÒeoyëUø <özÞ„ /›°L´˜.M(²K3¹³´â8«Ž¿±Ãä²DD‡¾÷¾|ŸçùðH €i[ùßEˆs×}þôyúU¯‹JlvdY,O¼Ëó Û}òøÖnÚ{ô°øöÀøpôxøÕËÅbñõ›w‘Hlï¶·ö>}¹søñär±ò×kNDøNûƒ‘~E7„- ¬'D !`Œ~œ%$" .ÎÆ)õ“@DÀ€|±äòÏFÇï7³—ØÆG „B®;þïÝú¾_*•t]WE’$!D(²,«Ùl6N§£ëº¦iétšsÞjµæóy¹\N¥RÃáÐqœétšÉd4M3M3¶Ûí ˲TUM$ŽãÌf³l6k†mÛÕj•1V¯×{½žÂuÝZ­&˲,˓ɤÛíV*Û¶q0$“ÉB¡Ðï÷ljÇãÁ¸Z±AX³®a7„87­ñrµº sάïç¹»ª _­XD`Qçð3çych.–"?<"Ø–Åÿÿ´—ÏjQÆï=÷N¦“$†š‰C™1•´“¤UèbD£(¢ ß#àÂEv}dÈÔ…¤Ðe2¡ÐMÿ¨ ^Ü%Í”ÌR“æ^c‚ˆ¸ü8«Ã·9p¾ßáF“ÿÆ`„‘Dái¹pðúí§¯—OÊÅÉØ£” !Äxòý &W³`<9ÿøÙ÷}û¶\²Y~ùjÿÍáñ‹Gæó·.ßÎNOîn­^ù_0–0üãÝ&–H Q‰†}Xð•`$¢«7rÅûæ¶³Y,«±5,8%„`ÀJ¨˜_ëY{ýææ‡îÁZ*»aî¢ùõOưà ù —þ¤ð‘ŠÅb¹\®Ùl& Ã0‚ ˆD"œsÓ4UUåœg2Ïócº®÷û}EQZ­V½^·,k4M§SÇq¢Ñh»ÝN&“ÃáP¡( cLÓ4Û¶kµš¦i¥R©Ûí†Á9·mÛuÝjµÊ9O¥R–eU*Ƙïûù|^–åN§“N§{½Þ`0h4®ëÆãñp¥–ˆ]NA)‘$Öo pD¢{w¶œ½BÙÙ1³Zø½-=„ùœoè‰Ç÷ ïŽÞÏfüÙÃ⯠÷øÿÿ´˜?‹QÅçÝ{ß¼ÌL“&aT4‹‡«ktÀbI,IÒXXØŒÒÎï$ØIô$Í‹hR„ac â¾É{óÇb$ˆV Â)Ï…[Ü{øq ŒÉÿ$N¨Têß¿s˵vï]¯9ýÓ“Vš‰±¼ûàìÍëW/F^>?rÞ%ËyzeY" ÃÁ³§?DóùÜóîoß½gFnÛâŸ÷)¥:I•L•,2M„ˆ€À˜Á (20òREž!–-cŒ!0DÆM~õíòküùÚÍÖîrõ}s“—€ŽÀ ø%þ !”R¾ï !z½žÖºßï—áZkÇq„žçF#"ªV«RJÓ4ƒ Ãp±X¬×ëz½¾\.+•J³ÙŒ¢h·Ûm·[ÎyQyž×n·g³™ëº¶m¯V«V«5kµš”2ŽãÉdÒét²,Ûl6Žã4étºßï ǃÁàHR„Ò™L”LTrпBù§EQäùÏ‚*ÏòãìÑC„É!_|¹}â”þ´ÜpN¥ëù?ÿÿ¬™?oqÇŸç÷çzp•¢¬©’ÂÒt£“u!‰ƒ‹/7`| Nntqƒ.†¡`Ää0¦‰ Mhèáá)Òéq0hå8ÎáÓÄÄgxÆ'OžÏÝÙ䄟Â_z!ˆä×n¹ŒØ?¾Tvìɱã8‘ «‰õ›à:¼R‘PÂ=Ôö(ã³™ƒèrÎ(AB"RÎôwõ¥Óçëï•]ãS=±¶áÕ‚øÛfÿWŠðŽe§ÓI§Ó¦i&“Ép8lF(r]×ï÷ Y–ãñx¿ßo·Ûš¦9Ž“Ïç«Õj,Ëår©T*›Í6›MI’F£Q·Û%„‚`Û6c¬X,*Š"B­Vóðc<g2™^¯çóùTUÕu]UUY–-ËŠF£œór¹L)µ,Ë0 QK¥Òt:­T*‘H$Ì%çÆxWöÕnÍ4Ai1x{ócøGƒDpEŸÿmC_”À_ZçÆŽ—~Ð0&¶{çÖ•ú—½ýÃåèYÎèt óyþÿÿ´™¿ŽÚ@‡gvרø°×ËaþˆDQ ºëI“·H™·È³ðy”*‘ È!clŒo½³N±ÑõW¤i¤é~ß|?üòõ—O¦mðÿp0"Þ[S_u>]p1øs<’4€ûýå\ÎQIš5·c2SZkè{k»<Ÿ2œË²½_‡ñC*UYžÓ$„ÑÛ(ØË²Û-E³éc×YD$²^×á¿èf×êös÷üáÝôQeþ¡6/7ìû> cÆ9çìr­íŸ?¾Ÿ«LzëÎEàÈ2.Èv „8•ú¤ë8ŽÿøþùÓÓÃ(}«Fĺ®1³ÙŒˆŽÇcÇÞv!bUUD”¦©ÖÚ—©RJcLÛ¶~EÑétRJc´Öœóñx,„ðëMÓTU•çy×ueYæy—ËE)U×uÛ¶Œ±áp¸^¯san6›Õj%¥,ŠB1™Lˆ¨(Š0 •R¯w]çœ[.—‹­¥Wð‚#"ív»Ñh´X,¬µ€Ø4­·ƒÁ °Öî÷û$Iæó9‘u‚@8GŒ1K=ôÎÔápRn·Û¿ÿÿ´™=nÃ0 …IQòOš@6ŠÆvQ8Aï˜"SÐÁ¢ù:Ðu³vè&ˆ‚$HOÔÇHžEH`þ/|ziòé£èbú5 o0˜­Dt:¶]þ$"€lÕ.gÚx§Nã€CPUØ:œ_9œÍÖu]ß§a«èü¯Š&’ê”Ø}±ª<ÌbŒ) ÌR”ºŠ¥‡t8´›ÆÌ¿á) 1J]ÅÀÄ!‰(Ö̶¼šH´wœö§ 眙yY"š¦Éo”Òu3«ªƒ"RÕ¶m½ß•~JRJ9g¥úñ¶ãñ˜s.¥4Ms¹\<4Ž£ªö}ï︙Ýn·ûýþx<æyö \¯W‡Ç"2Ï3€½rÆ¿!í}Åfx6é ånú¼m/ð̧wMJ€H$¢* .ØÝúÿÿ´Y»Â0 ´Z‘TñúÿFܤ€mC@UAbÀc|yœt¾!÷T0ýQÁ`*;ÏüT,<ý^åÚø›Þ<ºD¦€&·€!˜™ÉµµñWù¦}¬õRJÑ-ÿ‘óy> Ïõ˜êG ϧa`.‡´WÝÆp©)F|P{%¥?Õ{jàBi3à-ë ÿ ‹è[VÚõråùŠwÛíú¾Çqš&Y–Å]¶µzt]WkÍ9o’%"fŽ1ª*3oÎ3åœSJ"òÓ—;ÿÿ´™± Ã0 D-¹Xýÿ¯eh·‚ýuޝƒ¡‹’¢ñtpB‹otî‡Fþ;ÊתÏB§÷Êžx.`Ïfu~½7WÓ¾OÕ)/Ë¡ç“óüÜõˆˆ„‡™Á¡k] ýÜþŽjlˆÎ OD"’RÚì`fU-¥Ä¯x¼÷!„Æ_¾ÿÿbafaàçúõ“¦eðàL|œŒb‚¸d!u?/Qj…p©ù÷ÿã/–§Ì,l¬l‚‚_¿~ùõëfá1m°%nH5M†«˜™Yà-c\&³°°TÃÊŠE ¼~øÿÿ?777333ÿÿb‘SW®Èpûóû'©­´! ð”àŒÔQóŸ…™ñÃ÷¹e'¬,­¬líöìÞóéÓ§°–T¤ÃÁñéÓ§ÁþÿÿÿãääbaaùôéB5$îõ\xÕüÿÿŸ““‹“““á÷ïßBBB ÿÿÜšA@0»ÛZëÄá"ñÿ¤ÏÑ­C ê&~@Ìæ4‡1@dPß1øbTFC²ŸJ¥$"ÞK^”Ìü¬UDíܼ,RÕígþ쨵™¦q[׺éî\~ð↡gÎÑZB ¢ ÿÿbùÏÀðÿÊ¡Q@9€t+ ¡úÿÿf&æ?~HJÉÈÉ)@ºDqΓ'<{öÄÀÈìÛׯdxÈ–þƒ ±PfÈNN®=»·ýøùËÈØâË—ÏÔp¥mTHûøÐÁ½ß¿ÿààà„,ʃ/ÿÿìZA À0›uÐÿÿµØVg³ƒ°Ã£àuy@=ĜޛÀRŠ™Š4U}¼–_fÌÜ¥!I™ãçüQ ß<òW‘Ö{j¯ˆ¨Öê¾æLñ0‹T˜^×öÿÿ½·‹¥td„F1RR 222üû÷ïÁƒoß¼¥°ÈD3–2팿~ýº~íÚãÇ9°­T&Ã@Ìö3ÿÿ-ƒéþ300020üÿ¼Löÿÿÿÿþþƒµ4þý#wÝÿÿÿYXY?}ú0sÆ´Ÿ?¿Ož2óÇ÷dn@ÆF ìÿþ“íªÿþqssŸ9sêð¡ƒïÞ½wttòôòÆ5TLœ«°gÿÿ-ƒéþÃÇÞ‘Tê?)"Ãï_¿„……“’S888ýúÍ€Í"RͤÐFFÆïß¿khhwuw›››Ÿ?ÒÈ¡ÜUhÿÿ-ƒéþ3 —ÁÿþýgøÏˆ:Føÿÿ?#3;;;ûçÏ)1êß¿íØºêïß¿¢¢"‡½rårvNþû÷ïP'Iv6)ÿÿMÁôÿ!›™` ãÿÿÿÿC´0þcÆ&üüñýúµ«îß¿y㺈¨È¿dB]ÅðŸá?Ã?²]õïß?..î#‡uwµ¥¥g}ÿþƒƒîw2]…Í%ÿÿMÁôÿ¡-Ëÿ¤õ©m'{¶œ™™ùóçϯ_¿ÖÑÕ»|ù’‹«Û¯_¿Èë‡!»ê?®‚´¡ýþmkçx÷Þ=V6[[»_¿~SÖþ™þÿÿMÁtÿ1Ëà¿Íа½¦dü÷ï.n®„Ä$–Ÿ?~ùò™‘}Ô‰7ÂŽ¶øÿŸüš‘‘áÛ·/–ŽŽNÿþýûùóÇ·o_É;7ãÿÿÿÿ°kÿÿMÁôÿÿÿÿ‹Ñ†p¶8þþý÷æÍ†ÿŒŒL$o!Du$tí5\õùóç?00@vyQÁU˜ÿÿ윱 €@BÃnÿ…Í·0±±zYÌ;úÿÿMÁôŒ ÿÿC–@ÀTæçÏ_Þþß¿!EËÀ&eÈØÜ?ØØ¿ÿÿGlqƒ³ÄUXÇ1ÿÿMÁtŒðÅhþüÿÝ”ñ÷ß_FØâÌ£ÿÃ6ú»ðhl$wˆùL°dÊ„túÎf0xP`JÿÿøFúˆÿþÿcggaaaù÷ïòñ¥SvþÿÿÿáÃÈ0ä4Š8ðD*UÄa/_¾¼xñâçÏŸŸ={væÌÈä0ÙãbTÿÿìš1 1E3¸¬—´L—"Û¤Ë!Ü&0õB2ÅR¤R®ÑbшZùÎðŠïÿ þ{9cL‡iY®—ói]×y>nÛíu„wÎXk™±”"’Rbf¥”ˆäœ‰hÉ´Ö¾!Óý9t¼÷!cLïcŒZëZëÛÅäã<ÿÿMÁôŒ Œ¿~ý’——ÿýû׃÷ØØXÿýû Y²ÆÀÀðóçÏëׯ?xðàÝ»wóæÍ;|øðŒ3îß¿_UUµk×®©S§Þ»w¯¬¬lÏž= . 9ŸI z $þÿÿr‚¼”EÞl###ÓÖÖÆÍÍÍ@ãÄô÷/tç3Äÿa‡]ÓÎFRÿÿì±À0B‰ ÿÿÅIÚ¤w“©Ì Nøÿ >'C®ïViEÂAŸcÜ›Ý%rµ÷¨ªÌìŽ ÎÑ&ÖÔÍãÛá3sXÓÕWÿÿMÁôŒ°yQfæ°û³þÿÿÏÌÌÂÈȽkƒÄý74Û…;†TWÑ`u ÿÿMÁôÿÿÿgeey÷îí÷ïßQWW²þúõóçÏ_ßü„Ÿå3œÊúíÇH%0H΂à¿0ƒÿÿMÁ4°Õ•üÜýüåÀ„ÿÿÿsqrjkk¾ÿ~ÏáÀÈJÜ?~0üÿ9He ]ÄÀq3óÏ_X29ÿÿMÁ4ÿþCî_±²q––C[]yñÂ9fF)I‰Aµºòß߃puå¯ß¿1sÿÿMÁtçEüý÷ïçÏŸÿasrUÈûÉþÃn?¦[÷j#bu%ÜU Ãô‹€…)ÿÿMÁtŒÐÃ,ÿýý =B˜‘‘‘áÿ?øêJÈ:Fèþ¹®b„u™˜˜áeðÿÿÿ™™ÒaXkÿÿMÁô°SMþþ….ÍÀðÿË—¯ÿBŠ•ÿ /^¼¸ÿ¾€€€––Ö­[·¾}ûÆÃÃóúõkqqñ@î“£gʆ”wÏŸ?»wï??¿ŽŽ##ãÕ«Wýú¥¯¯?ày ÿÿMÁôÿþÿceeÙ°~íùógÕÔÔƒÿÿÿ9¬‡¡©©ICCãÍ›7ºººîîîß¾}»téÒ³gÏþýûwþüy'''z®¤ÛÔÚÚª¤¤dddÄÈȸjÕª[·nijjª««Ã“pÿÿ,9i$FÆ?~KIKgfåžšÿÿýƒÜåÊnnîÚÚÚoß¾ÉÊÊòòòJKKóññ‰ˆˆ0Ðf ^ç2000|ûöíÆyyyŠŠŠ™™™[·nuss³³³ &ÿÿMÁôLŒL_¾|njnûùë×Ïï?¸¹y~þüÉÀ½“ÝÆÆÆÖÖ¢’‡‡²Vrã1$H™çéé·VDD$!!Â$0ÿÿMÁôc*þÿç`çàääüû}u%„Y®ŸË óŒ€œ_QùçÏŸÁ¶ºÿÿMÁô%¿þþe„]Lùï3lò 1£ð½õ ¨ÇDÐÁ‘ÈsrŒŒÐä áÂs}ƒî*lÖÿÿMÁôŒÐµ),¬¬,ÿÿ#f•YXXaåÙ€œ…ƒ Àçä“£°ÏÉÿÿMÁôÿþÿgce}óöõ—/ŸÑVWþüñýçÏŸß¾}\«+¿‡Ü7H†Ì §¯þøŽ%ˆÿÿMÁ4Œ Œÿþþååã{üð>ÚuTÿÿÿçäädeÕùôéó`Z]ùû×Ï_ŒŒŒ,ÌßÑêJæ_HÛ[àÿÿMÁ4ðÕ•Ö¶Ž2²ò¿Pn¥å8þ,#ƒ„„Ø ™¤…8ãÏŸ?ƒpuåŸ?1sÿÿMÁôÿÿýÿóûr+â÷Ÿ??ü€ôOWWœ±¯®„Ÿù7€gWâêÉÿÿMÁtH«+ÿ22ÂN€DZ]Éïöc ¥ÁÓ $•CÃOþ£Ezºº’iíò€TXíÿÿD{ÃÀWWþû÷•ƒ‡‡—‰‰ùïßðÕ•ß¿?zôèéÓ§áW‡#§løbH‚¢ ÀQßÍ Ïž==wî丠ϟ?9räõë׃çØ?ÿÿì!!¡ÇùÃD“’&÷‹G‚`pô² ‚UÜžêÚTt^0büü þBó|èÛuÛîûþZ– ½çmëºÆSJ­5 "côÞ1µÖ9§µÖ9Ç9GÄRŠs?¥KÄ !H)sÎŒ1¥”÷^k ¿ñ ÿÿMÁôÕ•*ªj††FçÏŸ{öì)+++üz¹÷ïß³°°ØÛÛKKK755100lÚ´iëÖ­MMMwîÜùüùóçÏŸ_¾|¹qãÆ]»v:uª¡¡áÖ­[&L` ÷ªW®edd``psssppøõë×çÏŸŸ={–——÷ýû÷C‡ÑÈR2ÿÿMÁtŒÿþC®~ÿþ=¤v†€¾¾>55µÎÎÎU«V 022233spp899ýüùóË—/?~üøóçÇéÓ§™™™­¬¬"##ß¼yCë½ÌÌÌþüáååuqq™:uêƒhqLÙÿÿMÁô»¶?~ø˜˜œ¢¢ªvîÜYvvø¹;{÷îúúõ+77÷Þ½{Ož<ùû÷oUUÕÿþ­ZµjïÞ½—/_ûúõëïß¿ýúÅÀÀ9í®…ûøñãK—.:uŠÁØØXXXXQQräë Yÿÿ‹ ø÷ÿ? Ëöí['OžÀÍÍãøùó'&Fhï^\\üøñãÖÖÖîîî/_¾<}úthh¨ššÚõë×ÅÄÄ¢¢¢øøø:ÄÄÄäààÀÏÏ///ÏÀÀ˜˜HÓ”ôâÅ‹€€ffæ/_¾@+ ’ÑkÿÿMÁôŒ ?þ ùõë//ßß¿ýúÍÀ$277·°°€¨÷ññ°%$$à&¸¸¸ÀÙ…—´r-##ƒ‰‰)ääLcccccãMà ÿÿMÁtkã988üøñÿÿN$©‚ rL%òÐï¿ÿ ÇZBV)ÀÇ€á]ÒÒÁ!Iru Ä%´³Ž ÿÿMÁtðÛ¸à‡®þÿÿÿß¿?ðÕ•ð 䫯 âð5h‰>åAEwâY]‰ì*ÚH‚«°Y ÿÿMÁôŒ ÿþÿgfaaee…· ÿÿÿϹ`•†³kä!´ºÿÿMÁôÿþÿgcc{ýòŇ÷ïþýýË€´>øû·o?~üüüù |*n`duåׯ_ÿýûÇÀðzÓÇ@Èy„ß¿ýÀ "ÿÿMÁ4Õ•<<<Ïž=ùòå+ÚêJv6vöoß¿žÕ•ÿýûý÷/óïß?~ð¦8€¸êÏß¿˜!ÿÿMÁ4Õ•ïÞ¾µµw‘•“ÿ‰²º’óÜÙSŒ âb¢ƒd| âŒß¿~ÂÕ•ß¿ÿ÷½- ÿÿMÁtE·?~üD>}•‘ñÇèÂ]ID*@ëÉ10üÿ÷ï?¤ -a€í–WaëÉÿÿMÁtŒ ÿ ëla£`ˆå¶ñ2¸|]%ÒrJºõöà=9¤A’Ï`X½ÿÿMÁôH«+þþýËÁÁÉÎÎþéÓ§ÅÊÓ§OEDD888à×!§WøPŒŒŒoÞ¼yÿþ½ªªêñãÇ?þÌËË«¯¯?€G¹¡ÿÿäÁ À ×·ÕúH®Á~üY@ÐüÊgB0æÒB²EÌgv µý›Í1N­uŒÇ¾`N\xAk­-¥ˆˆ÷ž™•RÌœRz.`{ï!„œó÷Y£sŽˆ´ÖD„ˆj­X¦M»ÿÿMÁôÿþÿgaa}ûöí¶m[^¾|ùíÛ7ä¦ØØØ˜™™_¾|ùöíÛ¾¾¾/_¾ÔÔÔ\½zuÉ’%—/_ž={öÝ»wçÎ{îÜ9F\ŽÅµÿþ100:tHEE2wíïïoddää䤤¤DçÃŒñÿÿŽ)àÿ&&¦Õ«V8;»(**ýýû÷ß¿ÿ Hüýû÷Ý»wœœœ/^¼¸{÷®’’RXX˜……ÅáÇ/\¸ --- ðêÕ+z¸”á?;Ûû÷ïgÏž-((9ɘaõêÕðeƒÿÿìš!Ä ›”­†‡`yä—º«½«iê‘+¸µ€Ø,M¿Ðœè¼aÔdƒo¢÷aÑoß·eyÏóký~(¹ €ÖZŒQkÍÌÌ\k‘RŠ1ÆZ‹ˆÎ9ïýpËXÓ¥O!DÌ933¥”λèÂßÉÿÿíÉÑ 022þý÷—““«©¹ýãÇŒ ºzzc ©áíÛ·õõõׯ_/--UWWOLLdgg·µµeffæããÛ½{÷¿ÿXXèeÄøùù‚‚‚~ÿþíææ&''÷æÍ›òòrvvöA2t ÿÿì’!À · Ð‡" çð–6é¿ø¶¢Iuª£7;fþ‚BÓ˜MDöãl­õ~qNç\­5çœR"c|æª „€d)å}ZPÃZ«ª$½÷"²Òþ…ÿÿMÁôÿþÿûÿ²6í÷ï_ Œ,,,ŒLL?~| DZ°öR0CFÐàëq!K+é<(ËÂÌÌÀÀ¿¬|P•¾ÿÿMÁtY¸ÿ"Ý'÷ïß¿¿ðÉ/Ì1`ä3äñ`šºãÄ“ÿ-ài@¶(㙓ÿÿMÁôÕ•,¬¬Èw¨üÿÿŸ••^¦ÒôðRò"úAã(ì­ÿÿMÁôÿþÿgee}òøÑ«—¯þýû+‘ÿ³°°~üøáë·ï?}ù…íÒ`úÈêÊŸ>ÿþýÒæh10Àήüü勘¨0šÿÿMÁ4¥^’’’ª* ˜gWJI‹ˆˆü ÝÁ%¤ƒŸŠ 1ügøõó×@»~üù%.&ÊÁÁ&ÿÿMÁtŒÿþ333«¨¨büïß?ÈZˆrÜh½IÿÿMÁtÿ!›ä~þüùãú.ƒÿÿÿCæ“É!Nƒ`6´ÿÿ‚¥`„ß`hÕ *À˜â £ÁE.ÿÿba```ddàáåad¤æ 3##ã?ÉÞ¯Q0Œÿÿ‚”ÁŒ,Ì,ŒÔ^j4HÖ.‚á ÿÿMd£`hÿÿÂÞ“ûÿÿÿ¿ÿÿÐêF†A4ä> FÿÿÂ’‚¡»ù˜°ïüûÿ¾,›‘ Ò ¡™óFÁ( ÿÿBOÁÁ¶çï_-Û½þï3vÁ/\¬¼Šò|*BœâBœ¢lÌèCÊÈiš‰qt\sÐÀÏÿÿbAedd|úö¹}~àkŽKÚ¶,ÿ^00üg`dd`cáàeá”âUæQP•çWáâã`,›þ+`üÿºìÏhÚ( Àç€ÿÿBIÁÿýcafž±iá݇]ÓeXÙþüùÍÀÈ]7õó÷÷?oÞ~wùï¿?ŒŒŒ¬Ììøp‡™‰ùÿÿA±oFF†Ÿ?ÊÊÉ_¿qkÓæ­£ó;ÔÖ—Žž>ÿÿ“‚ÿ311þüýã÷}ù %“äÄÄï}¸ºþøŽh³„‹ž/¿>lº³ð×}£ú¼)SÏ×\}uVS”~Î"€‘‘áß¿¿Ïž>âáá$G„Ðà¯Rˆ¹Ä€ Hò}ýúõ³§Ïÿÿ™‚ÿÿg`gc¾wãk°f¨œ¤øï?&ž-_zlë­›Ogôk¤m9³Ã×Ћ‰áÿ&vÎÿÿÿ #ƒÿÿÿ³±s<|ð@‘ÿ//Ÿè/Œ>Üp¿~ýÂÚ^‚œ 9üçÏŸXõ’¤FHHèòåKÿÿÂ׊``ü÷ó=»¹ ÃÛ/î¾¹¥«.vòüñ¿DÙ,Ø“[ãkþç˜49ÉûçíôMÄèàÿfffvvÖ/Ÿ¿üþM…ENÈ7*3`ûŽ«ŒÇ£ ®¾ñ ¾P޼ãïß¿\\\X}ÊÈÈøóçÏoß¾100P®æëׯìì쬬lÿÿì]½ Â0¾\¢ƒuéRDpñ5|'ŸÔIœß¡UR„æç’8\)µˆ‹«™2| .\r÷}ßòƒ)†1M—³/ ?¹mO»Íj}¼ìÏ×¶xÿP®×L&5R)Åßw°µVJÙI„Œ1|ÃŽ1v.O=aqpÎ!"b¤s-µ5'×stü¨‡ˆÖÚ/Ä ÿa­B‘R*ÏólÞlpY–Y–u˜þT|´ˆ¨ªªw Và²Sï½Öš­}ÿÿä]1jÄ0\­ŽÈv„ªTæ2þÛø ©ò¸|!È œ|•mR\­FÖá»[ï9…Ñ6ó€]fvŠ-fÕÁBÀ…/ skàÌGæùFᲜÂñpwZüûÇîéáñmÿú²{Þšû’’ÀÚ/ãzÄè´ÖzïsRJf6ÆTUBˆíŸmێ㘦i¼R±3”ˆ¬µ!ç\–e̬µÎó\kÍÌ]×MÓ佯ëÚÓ÷}QMÓ”e9 ƒR*NH’‰(ú^)µÆñZ)7¿ ÍóO­ÄWºˆgš%¢Ü ÿZ÷ ÿÿÂ×A†´§a›¼ÿAˆþCÎÑfgáfgç```àbåä€è ".F`D‰r33óïß¿•••sssÍÌÌ>~üÈÊÊú÷ï_AAA666KKËW¯^ýùóÇÒÒ’“““™™YGG‡™™YVVVGG'$$ÄÊÊJJJ ’ ååå#""~ÿþýöíÛ›7oòóóëëë«©©100Ü»wïäÉ“ZZZáááÊÊÊlll222–––|||ÿÿÿWPPPSSÓÖÖFž_ÄêZ&Üšò˜˜ØÙYŸ>¿fÓ‘ ÛŽ­Ý|x×óÿÿ3B´2À(;Ûƒ'Î]yÌÇÃõõûïC'ïÁÕÀS0ÿÿìœ;j…P†ÏCïÑÈÁ&˜&–1Tâ ,-|.Ë%X¸!………’"E,o„¨ñqRnHŠH)gþjæcf`ö†¶L#BÄcñ/Ó:ðÀغþïÑv ‚½’þÁ8¦i&I"I¥tžgY–ëºNÓ´mÛ,Ëò<¢BÇ1BÈ0 ×umÛ.Š‚‹«ªêºŽ²mÛ8ŽªªB(¥ajš†1ÇQ×õ Eô}/I’ã8˲xž‡1ö}ß²¬²,›¦9ÂßýÖgO9øé‡X8ßn®.Í»ë{ëV‘Å÷aà·â/åºmçôµn󗇧gz&"°Sœ³þ ÿÿ윿jÂPÆÏý“Ä«Xh½Ð¬(%úupé.>–/ ä2‡ÌñâÐáÈPpIÈ]ª †+Ro[‘B;tî‡ï,?¾áp~t°Ö@ÖhÿºÝ@ÓhĪï5.X¶o Ç}øÿ ç÷ú;~Â×uÍ9‡RÊ^¯çy^UU”RBˆëºívÛ4ÍétÚétÒ4-ŠbµZ-‹Ñh$„H’c†¡”’s~ŒªJ©(Šâ8>&ŠÙl–ç9¥!´^¯…eYA0™L–Ëå|>wG)µÛí|ßϲŒs~z4ÿÝšg¶f ˶™m3Ƨæ× AíßÝ ú·÷§{} ðÉï˺W­§ñCòüb™ÆøÑÕZ“3øÿÿì1N„P†ƒo•÷\Ù;Ž ¼‚„ /ÀhI¸5á\€£ØhcA…!—bY’51Q£1 '‹Ù5kc딦œùóÓÌ/<€ØMÖóÕ!4;:;žL9çNN§3„øãÇ‹!ÔöÍ{ûöˆØWO}ß›¦Y–%¥4Ë2Ã0vÏ=G¶€$IêºfŒE1 ƒmÛaªªê8NY–®ëZ–Õ4ÍÈm²,Û¶íy¥4Ïó t]R×µ¢(¾ï§iÊ‹¢(Žã4M !’$iš¶ƒ¼}+bµzy(ªyQ-–Oh«£í”‹ ö›MÛvœó®ãmÇ…Ÿ=‚‡?¿®¯nî./Îùg}{1AøN_ÿÿÂ=ÁÈð÷/ƒ€øÿƒW&z ° ™ÈXwoš¯lÏÆÎtõýÉgŸï13°300è [¹I}¼óýį¿£»â°Fx KžÜÜÜÇŽÛ½{7dzgÏ~ýúõæÍ))©ÿþñðð,Y²äèÑ£jjjË–-ûðáÃëׯùùù—.]zàÀ>\»víÁƒÿþý»uë–ššÏ“'O¾}ûöóçÏOŸ>qrr>~üxݺuoß¾UTTœ5k33óÌ™3¯_¿þïß¿{÷î=þüÆzzzsçν}û¶±±1Ö»i!é~èÓÝ/ß¼yÅÄÄÈÅÍ'%)ÂÄÄ“ddbbü÷ÿŸ°ÐûÏ?}ýÿÿÿ¿ÿyx¸ÿýCÎ Ì,ÌoÞUU’23TR’=wùѯßÙXY #´ÿÿÂ=ÁÀðûç?)iÞÃ'7¿”l©§Ÿ¢W#ûÇÆSχaÅåü"ÿß9˜û'ÞG#ÂHÊ*u›ÓhG@Ä ¹àÓ§O¶¶¶¿ÿþþý»¨¨èß¿™˜˜þÿÿÿíÛ7333Hcƒ‡‡G@@r±¯¯ï÷ïßÕÔÔ˜™™þüihhQÿýûwnnn...&&&Ž_¿~ 322JKK322rss³±±ýüùSAA““ó÷ïßÂÂÂnnn ß¿·´´DZÆêG˜Oÿ»Úë1ÁÎzûùë7²ˆkåeEädDà·ÝÀ¯’f€å‡ß¿ÿ¨*Š133}ýúƒ‡›ÝÉFãׯ? ˆ¥ª ÿÿÂ?£ñŸá³”î·’Mé­Œ}¶Úf16Ño¿½l:\vàþV9 éGï·'opà»ýöÊ·ß_¹YyF—YaäVÙ†@*îïß¿322rppÀ„KA†Û § ÿÿÿŸ““óçÏŸðÆ999îF†‹CJSäÛ’YYYÿýû9ß r\1 Ëß¿ÿÿÿ±ˆÇ|/Üìììð{™`7‚2²³³322þþýâˆèõ80iˆCF¦‘Ô0üÿÏÀÁÁ5`gggB:Ï“ÿÿ·.‚áïß\œ #ºtº,Šó¹úúÜö;ËùØÿüþ+ Àþàûù;_þ²³p²01ÿgø?ÚÆŒŒŒÌÌ,LL(lb!kgB]'ĈÑñgÀvN+¦EàlbXÛ?^¾|‰õFFÆ?~@æð¨ùþý;??ÿ¿ÿ^¾|É„m9D $Ÿÿÿ"pf##Ãß¿ÿؘ8åÔ~-9²,Ú%ÄNÞs]È•ôíî_}dúËÆÅÂÇÈÂÈÈÈøå×G.I.Iˆ>üÆŽðŸáÿŸ?~üøñÿÿ?66¶a_GA:‚¸ÖE°²²rrrBZ>¸Ô°±±qrrþýû®M%¤6`bbúþýûŸ?ÿÿÂ’‚124ï߿…xž9V¼:;Æ!ìÃ×ÿÿÿc``øõïçïß?ÿþ‡L¥0Çë•°1±ÿûÿ‰ª‡§ a🉑ILLL]SëéÓ§ïÞ½ÃZ¨ 3NÆ þÿÿ™(ƯæÏŸ?p5LLL& @Ê`QQQ>>¾W¯^ÿÿÂ’‚ÿýùÅÀ°øÏÀÀ™†ûõ믰$Óáï³÷lšÆÈÈÈÇÆÏÍÊ+Â%"Á-'ç$Å+o a¥-búŸáÿhò…H7‚‰‰ÉÂÂÂÔÂrßÞ½æææÃ¾ ¦"€,¡üôéÓãÇÑJUIII666++«÷ïßÿÿÂ’‚eÅd~|ûõ—ûïßo¿þþf```fbábá`×¶áS’áU”çW“â•äåe€o‰„GÔ8øÿÿÿ¿ÿž=}ÊÉÉ éÈñàß¿¿¶´²cccƒÌq•—/žþþýëíÛ·ÿþýÿÿìQ Â0 †ÿ¬ÓЏ1Á‘LíÈsøè¥¼Î؆L†nšÍ‡°Ð1`Ó´ÍCùÛ~)d´ƒE>¯çËýS渥»Óv¹ÃCeq¬›ÀF„‘Äö}Ï`ú«ïïF$ù3̬¸@8€œªD¤Y.Rƒ[ìBÍÄb†ªŒ1B$¦]¾ï‹Ñ´$¦ë:YKQ—Πn.Ørëw¨]›†„ᓚâa]KýݱâìyÞôaGDUõ0f–fǺn•mßÜ´lí¼(ò׳–ÛÅÿÿBÛéÉÈÀÀÀÊÊ<)­óëïj~a´-Çô b„ 13ŒN)ãà‚z?~üñãÇrrrwïÞ•““ƒ¬{dff~ñâÅ‘#GDEEmll»ÉYXP ì»wï*((À"²Ô´iÓ¢££ùùùá) â€-[¶¸¸¸@F‚‘‡0G60ÍDcCï0Å¿ÿ>oÞ¼ôôtHŠ„ÕÁ=‚¬>~÷ôéÓ­[·¦¥¥¡]ÊÌÌÄÈÈðéów..΢â2//o;ûwoßC¦å jÿÿì]½jÂ`½7iI‡ ºä½:ø…vÌ7·B;IÞÀ!Á!Hü‹5D’oñgRJ@Í DÄ(ÁALn‡¯C¡ú½ÜéLç,÷ÂÃù=:{#ÜÞß=ANyñµ!¢ˆ¢€¢€"¢ð©ÿûð+¥ëz§Ó)•JÕju>ŸW*•z½Î]Þ8Ž5M“eÙ÷ýZ­–eÙf³€0 Ïçs«Õj·Ûyž§iÊs]WUUÓ4‹¢˜N§Fãr¹¤iêû>c,Š¢ý~¿\.qµZm·[ "EQ$IŠ¢È4ÍÅbÁ‰N§f³é8ÎõzåH’$Œ±n·{<³,³,«ßïs<‚^¯w81˲ˆh·Ûyž7¸Ì0 mÛžL&ˆ8 Èãf³™aëõ‡Ã¡mÛü?xžçº.ï ýa;‰‚øòüôþöZ.?>’$}ïFøÿÿìœ1kƒP…_«q„€‚ÿ$cŠàï ¸ºd!¼H! B DÞ¤Ð$¼@2B~€D‡êó:¡¥Ýºöw¸ãá,çðqïÛztDöÓ¯Ô¿_ÿ0„€Ž‡ Ãp<+Š¢ªên·“eù™Ê]ׇªªjš–$‰mÛ§Ó‰²Z­š¦a&„ÐõzÍf’$ñŸßïwŽã0ÆÇãÑ÷}˲ëõÚó¼ÃᦩacÓ4ƒA%gYöx<6›M†]C !Œ¢h2™0 #Bè|>Çq¼\.BAäy^–åOÝzPUU£Ñ«ë½/o/4]×ß¾ˆÿÿìœ1ŠƒP@ 2|A)´Pƒìnªîj+†H@ÁR\$WÈer‚t!X("Zˆ|P,6Bàó [üf‹ÝnËr˜éfxæ—Ëu6ûÛwÂÿÁV*¥”9§išæó¹¦i®ë2aÆóüãñà8ŽB)eX”ã8„Ƹm[„PQàûþz½VUÕó¼<Ï)¥ªªÊ²L ÃpµZB ð,ët:)Šbš&ë‹Åb¿ßw]—e¬m[Œ1”eÉ2!Çqv»]ß÷·ÛmGžç‹¢EÑqœ 0ÆçóY]×™}ˆãx†ãñØ÷½aQÙ¶}¹\š¦€º®B‡Ã¡ªª²,Ó4€år)IÒõzM’$ŽãŸùÚŒ¸çÆÝ¾Xîfûòúöy¿/ùÿÿä]¡Žƒ@n*ª ETסI›4Ù¤I ¦©®å7°uý0% I®iJ*jKR…A‚½Ý%P`sœØ«:sâܽ˜Œx3óF¼AÓ¾ãÝß‚sþO¬¹¿Á`bF¯V«ý~<¯×«aMÓxž'ˆ»ÙlžÏ§ëº¦iÎçóårùx[–5™L¶Ûm]×MÓ`ŒBŒ1MÓv»Ýx^¯ú-â¿õÆÿÿ‚4¨¾~ùJõSv(\ 0̤ƒûàÁƒ 6(++ ¤¥¥]¾|Òøëèè¸pá‘#GLMM•””¢££þüioo/-- ¹¡6 €]SS“¡¤¤äÊ•+fff·oßfgg·³³ƒ¤à’’>>¾>˜˜˜@®¢‡ÄEAA¨¨è‹/LMM!7Œ300¤¦¦^ºt‰……ERR¾ýN[[ÛÜÜ\MMýÂ… LLLzzz«W¯ÖÓÓ³´´TUUåâââççòä ++«——¼aÊÌÌþ<33³¨¨(Æl9//ß«—Ï/œ?ÇÊÆ _ ñû÷o!AAˆ¥ÿÿb,ë˜U“ýç÷HÙ Nðÿ?+3ã»ïÿ2‹j â|””ïß¿ïææö÷ï_HßüÝ»w|||ÈÝyx }ÿþýׯ_‘‚‘‚u© Dãĉ544ÜÝÝÑ:øxDåÑ£G!$\#„qøðaFFFøº"òÒ ²›ñûñÛ·oÇOœRTTþýû7\=33˃ûw¾}ûbnn¾råJÿÿ½Ëˆ®>|+$$Ä«Üáë !“®ìììð¥dph)¢2¢ <†KAùùùð!<ˆ|<˜V*C’&\¢ÒÚÚš¾ß~á³­­-ÄRˆ{Gš‘í…/¿dBºŠÓ^¬âhÁõç÷ovvEEÙï?þÂG¯YX˜îÝ» wÿÿMÁth“ hÑ™s‚s‘ NdeðÔ Ý(†Q¾Â­@+á¡»ÑÇwÑL€˜|].²8<¿áº-YÃÙǘ±ÅÄøÿÿ¿?ÿÁøÿÿ?3 ²¿ÿÿp +€—gÈl\¢åÚµkðÓkÐ%Z‰¦‘))3ÀæùÊÈÿÿÿ_»v ÞƒˆÃKćÞ»w®n,„ñôéÓ§OŸ"ÛK‹à‚˜Êˆ ˜ Þ‡Úÿÿì\; 1TœÅ.×I) ’-† ²°å¾êM©håAæ_Á?…ˆœ/ocÄ›2ÂÝÁQ”RZkDÔ{G`JÉÌj­`p™ùäaæ9ç¼…@\`SÃ{tFÜ}­•s63 ;aï 8% sáÔQUU%¢Ç-ñÞz¸ÿÿ옿ªF`‡K)ÿz³Xe’ÝÄ,±˜­dw&‹\€I66VƒˆÉâ¬êJJgønà _g:Ï%ü¦ç÷ü[ÄñÙ=Š"ÇãðútáâCc³ïß¿!³œéÀ€t®|>nD yøëòvøˆ¦áŒ°ãPáZ +Ó ®‚ø¶q?''‡FÉ—HÿÿMÁtÈ'Û!‹Ã'0àš†@VŒÕ.ÌIHÂE=Ù ÝpÌÈ´š)HC(ÿQ‡œ1{rÿÿìœ1 ! ïÿŸÞ+† ‹`%X¹eÄØ„ &¯‚¯JøG¿ÄÕ2ÓZ–Ùü,DP?¨#)¬ˆ‡‹ø†’°4ì$°Lþûr$,„Ó"H›a“¼B7 X”¦¾àëÿÿìœ1 À EQ¼?dð^ÂѸ9*.âÞáA:tèÔŒ"ߟÅç’û4¼÷!ûß0ŽrÎçœãœ€Œù"²÷Æ "²ÖBÐfµVl?æÁI­µ”R)Å97Æè½Û„¬nU¼ìBë1²º‘Jéî4s ½‹çÛ´ ÿÿì›=Š…0Fcá\7àF„çOa ˆ‚‚ `“ ZjT+APW¤™ SÍ©ï…Ó]î¿Á„ê1†bŒ=ÏÓu‹s>Ž#„R 0 C×õyž¥”Ã0¨yÀ4M„¢(œs)åu]ŸÏ§m[¥×yž¶mA „(ËÒ÷}uÕÓ4­ï{×uMÓ¬ª BHqgžgµxB¨iÎù¶mïûRJïûƧiº®«eYc!D–eQI)÷}Ïó<ŽãeYÂ0TŠïûîyžJ[×uš¦ã8B’$ùùô»|ÿÿìœ?«@`Æ"½åÄÂ`ð)|_ÇbTRV’RXÌH_ƒL>„ÉD) ƒ;¼u»uïp§;Ý眳<ΩßsþüGú¼ „QÍóœeÙ}ßI’`R–çù0 —e©ªjÛ6œYxß—çyß÷×uÝ÷¦é¾ïÛ¶áyÛ¶)Š*Šãê$IJ’¤iZUU¡çy<ÏÃÝ›¦1 C×uÓ4§i:ÏSUUŽã‚¸®Ëu]–eEQìºn†ã8êºÆ¾,Ë ÃàïÅeYâÈFš¦!Œ¥[–ˆãxßwÇqALÓäy„0ÏóqE!~Za©ï3øk•ÿÿì\­Š€@^EDpËÓb\A¶Á Å&VŸÈwÑæ,‚Q0hPLnÄ»°Ç¥k—n`Â00ßðýüoð_Ô÷Ä9çÏó¨ ƒ(ŠÚ¶5M“16 Ãû¾×uíûŽRãyιrwnÛfÛvžçaŽã¨ëúyžË²X–E)U—Ý0 Û¶có<Çq\UÕyžJ!T¨CÀ{ž‡1¬ë !,ËÒq%ìÔ4í¾ï¢(‚ èºNJIQÉÄišÖu­œ›Y–%IBɲ !4MÓq!×u¥”¾ï3Æš¦¡”ö}/„øÅ·÷ñ£ñÕíÿÿì]¡Š…P½bP³˜ jºb ‹I¿À1+øbxØ®`£Ú‹ÅdD1\7ܲaË–M;00Ìa8p˜sþüGEö×¶-˲4Mß÷íy^š¦š¦š¦á8Ž‘®¼ï‹1çyÂ8·m˲¬ª*×uÏóEÑqœeYA€ˆÏdžç–e•eE„¤¶A0 Ãçó ÃÐ÷}]×뺞¦  ( ÇqI’´m«ªjß÷D=Þ÷¦iB'(ŠBÙ¶]Edža‡VŒ1™î¾oY–MÓœçY’$EQ®ëzžg]W†aÆq<Ž!DÞ9{‰P4¾5øÿÿ윿j€0Æq‰ 17iñÏ»ùL>Ji¡D1œ4j-ˆÐ!СPèÒ­÷ßpÜ}püøîŸhüIýD4–eaŒA1Æš¦QJ1ƺ®sÎû¾‡:޳ï»išœs˲Öu• 9Œ±b@ã8"„®ëúŠÉIݶ­®ë4McëºÆq,ïÿÿMÁ4¸R0æê-Jæpé…‹#3`ë0!eãWß:‚öR @R°®¾á÷o()øìD ÿÿ¦7@>Ð ¾8Þ? KÁ'½ÐÄÑÔ0¶è ÏÃ!O³ÁÅáCÎlll ¨ëz‘Ã'/6e`‹9‰ˆæ¬î'/}ãŸÑÿÿMÁth³qÈ) mN"‹£©aÀX†uš ¿Õh\¬ós˜ÆbN"bú—›© ÿÿíÉÑ@q?~üˆ¼·‡u§²bd‚£QðR Í"¥°ªa@Ýþü9}úôÏŸ?/\¸?® W1‰Õ©˜áQÍ€pÿÿì]1C!Õs»9èî<•Wp7/ÆD,v ÒæwèÖé³3@ÈãÂã®à?™Ô÷Þ9—R*¥˜C¥A˜óõ jŒ!×Aâ«,v­%KŠ‹è½këc¬µZk‰H'Y̬7Eæ ì‰À'Rêßf•Su6shÉœ3ç, ‰¥÷~a B**µ÷n­it"Îòž™ƘÍ|2ùVŸ‡ÃÕju>Ÿûý>BÈuÝV«õz;ìv»ëõ:Ïóv»ã¸ã8Š¢È²œ$I‚ ø¾?™L‚ PUÕu]€$IN°Ûí6› MÓ,ËÞn7†aÆãñv»=µZm0ÄqÌóüw¡ðåry<9ŽFŽãX–åû~¥R ð^¯kšFQÔétÚï÷išš¦E„aQ¹àIÄÇ{úØçãQ*•ï÷¼T~ÉÚÿÿ육«ƒpÇKŠnb ‚Aa–EÓâÂ’ÁdÐhð?,̫†u ™Æã –&Š  0Å ¨/ü`åõ—Þå —î¾ð9>ÿ;øê{‘÷ûýn·ëû¾iß÷_¯×t:5M“çù0 /—K]×¢(n6Ïó<ÏÜ‚ Û¶AÐuýóùäy~$Ò4Å0l6› ‡Ãóù\EQ’$-—KMÓN§SÇ,Ë$˲ëõºëºÉdÇñívkÛöx<’$y8ò/ËÒqœªª‹…¢(•ÿNhÐuí'`ÁFcAPlŒ¢X×¶_¢ñÿÿì];ª…@ ¼ â±s¶ÖÖ‚hí,Å]¸±vîÃÒJEg®×?¯ÜêÕ¯ziNàä促ÿÈ`_ו¦ižç¶m‡aX…ã8®ëŠ¢H)¢(Àžç­ëZ×u’$AUU`ä0ÆEY–¥ëºó<›¦iÛÖ4ÍyžŸçÑu!„1†„,Ëʲ !.8qãy¾mÛ8Ž«ªò}_’¤û¾mÛβì g ÃÁ4M„ }ß—e©i¥”1<5J)Ä˲Ì;Žc ¤„Ðü›¦iG¨ ~-ªª ®Š¢€ª'úmÕ{ÐÃq¯u]>û›lxßß„l”l÷ú¢ˆÿÿMÁtÆÆÆ6lhkk;}ú´‰‰‰™™™³³3Ceeå“'OnݺÅÊÊjaa)®´µµDEE!E]ddäçÏŸ7mÚôçÏ–Ý»wÙØØˆ‹‹óòòÚØØHII©««300øúúΛ7ÏßßßØØøØ±c?~ÔÐÐPQQa€ 8::º»»ÛØØÄÅÅñññEEEéèè;vìçÏŸjjjKÍÌÌLMMåää\]]_¿~íáá!,,lffÆÉÉimm q­¬¬lHHHcc£¹¹¹½½ý’%KäååÕÔÔ ·_¸»»³±±ÉÊÊ)))A711aÀ–‚!e0Ÿ'/''/￈2ÿÿÑ   d—DÍ›7oš››322455á{1¿}ûÖØØØÙÙI ,øôéãå+7DEEÿÿgøýû7;Û¯Ÿ?ÙÙ9îß¿÷íëGÈ.#ÿÿì1 ! 1ñ#þ.µ÷¯ öWµ bÐÙlþ—ܧ ·¯ã"fGžÔ 5µ1ÆØÇX-ÃÍlÎIª}\Õ` ŠU”#ÏTÌÎI°“‹"K Á% ÍY¤­c‹éPÓfòùûº¨ÁëYÞ{­µ5sw­Á/ÿÿMÁtðÍ_„ŽÜ‡Ä¥      ÒÑRÕâ †)f”ÃÎ3`ìD‚¬3ð) 4Ñæ80w4!Ïh`úÏÎ%ÌZ×xH;øÓ§ÿþÿÿóû7ûÏŸ?ÿüþÜÿÿì1€ EûA¢‹zÿ£–€8üÐev²KÓº”×÷ßàOCUi'f×!É#Ý>ÜŽJî5.Èð!)¥èð6!8ð³u¨“Ç0z„X‰Õ€™•(Œ¶"{Epãn9gþ(z‡1yLHaÍ>¿ÌT4\µîÇ©ªmÝbŒKJ|ÿÿì]; D! Œy×/bg'Øyñ6ÖºñS¾-‚ayl½Õ¦4(C2*ãüOr?BïýSk$vÞõ%_ SJˆc´Ö²÷0ÙPJÕZK)•œ’ * ï½sNÖ—,ÏºŽ¯·ŒóæE¥Ž9}ˆŒ1­5­5ÿ¿=çÔZ?øCΙq¸“¨£Y Õ×¸áÆ _½ï½Ñ^k šc ¢Ôà7ÿÿì›1‹‚`†¿ ó‚;5‚AABl1 qŽZgƒ¿ ÿâà â^-nŠ9 .. â Ÿ`ß r7Ý|Ó½?â…—çyÿ;øOCÓ4AI’ø¾/I’(Šžç!„v»]oE¦i:(вm›ã¸ív ¨ëÚ4MÃ0 „·Û c¼Ùl&“‰ëºããñè8Îõz=Nóù¼ªªÇãÁ²l†Š¢DQ$Ëòù|βl¿ß“$ x>ŸA´m»^¯†ñ<¯,K]×ó<¢!´Z­f³Y‡Cï²AÀó|†‹Å"Ïsš¦§Ó)Ƹ(Š®ëŠ¢øyíßïw˲†QUõr¹ „ „‚ dYÇqÓ4š¦ÇcÛ¶!„,Ë.—Ë_7î ºîõñI¶mûzë†C8„ Þ¿±|ÿÿì]±Šƒ@Ý[]±XGAüKI—b«BJEÑØ‰¸!‰!Ø)‚`µ° î]±äàWL3o`ªÇkÞÌ¿ÿ˜±`Ù~¿G©ªêy^Eš¦!„LÓ\–¥,˪ª0Æ¢(ú¾Oð<¯(Êv»aš&I’‡„p½^w]gÛ6ë²Cþ”Ò ’$Á_.—Ç㑦iÇB]×Ù2”ÒyžA`™¹º®yž?÷û= ÃÍfcY–çyyž¿^¯ÝnǦ²,+ŠcLñ}ÇÓéÄ|àû9B¨ï{Y–Ïçsš¦†aȲÜ4MÛ¶×ëõv»­V+Çq\׆áù|š¦ Þîå7>Ÿƒ”.ãÞõó ÿÿì]»ŠƒPUÁ·â«ûñr±Iš+ÂE)ü’üXÚù vA¸¥vúZ«q —m¶ÜjOq𩆙g†ù¯à?…(Š’$=yž«ªºÝnišÖu=Ž£¦iÇ<¦iGI’ªªR%‚iš–eÃ0Äó<ß¶mß÷‚ à(ÊétÒu}]W˲dYnšæ~¿EÇñq‹aÛ¶ïûï†(в,Û¶’$IžçG…B×tÇ9ŽãyÞ¡=BeYfYö|>išv]÷Sé¾µeYlÛFÏgB„0Ã0†Qår¹\¯×yž»®Ã#„ŽÁþ¢öÚ_û7ÿŒ~ÿÿì=Š…@„ž (ˆéf&jäü™£xO`dî„âÄÌt2QAp1A× fw£Ç†m¡hª›úèÿµŽã ”2ƺ®£”žç9MÓ¾ï†a`Œ«ª„a8 ƒªª¦i ‚ Š¢¢(Y–ý4o^¯Wß÷ëºêºÎƒÖuMá‘0Ž#B¨m[¡ïû²,/ËbYŸ”|Ï»ïûº.„PQq»®«iZY–I’@£(bŒmÛfÛ6?·9ŽÓ4 ÷‡ùÞÈ’$Íóœ¦)!Äó!ļ3’R¢çQJÎù<ÏœsŒqß÷æ¬j†!³kvùQJ@’$EQLÓ”e™ º®Ç1Š¢ .…1¦µ¶mÛ F”R „€Iëó<`Ƙ„ضÍÌ[0ÆŽã€ëºUU•e‰ÊóüÇ‘ðíïÕËëÛý®¿ Ûþª?/Fãÿÿì]; D! Œ‚(ØÄZ% ¼R}úÿÿÿ›6m‚¨ILLd```dd<~ü¸††FEE…„„ć’’’–,YÂÎÎîîîþåË—7oÞ uwwsqq133ÛÚÚnݺõñãÇæææOŸ>ݱc‡±±1¤xðàÁ«W¯²²²æææ*++¿~ýº´´tÉ’%>|8{ö¬……ÄÙ™™™ÚÚÚŸ?ŽŽŽbff^¶lÙ³gϘ˜˜ÒÒÒ>|ùòeÈÈÈöövqqq??¿óçÏ‹ŠŠª««¯[·NQQqõêÕqqq÷îÝ{ûö-33sjj*77÷‹/öíÛ§­­ Qðïß?ÈU XÔ€—ܘ%=ÿÿ-ƒé Œ¸¸¸ššÚõë×÷îÝ{éÒ¥šš[[Ûû÷ïŸ9s¦®®ÎÊÊêÙ³g .Ô××ÿþý¢E‹®_¿^SScbb?ßééÓ§­iiijjj'Nœ`ccRPPxóæÍ·oßÖ¯_ïíퟟÿãÇ?~˜˜˜466ž;wNAA!**J__Ò¢””TUU=qâÄÝ»w³²²”••—.]úüùóÊÊJ---ˆ¿ÿþû÷/dç† „„„îÞ½»råJÈíI§OŸVQQQRR:tèÐÓ§O™™™ÅÄÄdeeß½{÷ë×/Èùkïß¿wppÐÑÑY½zµ¥¥å¥K— õŒ„„„££cXXØÚµk“’’ V­ZEFÀÿÿì]1Š…0U’¢•-<Ä¿ˆà ÄÊÂc¹  Á £%Ân1ìgÙí·Úi¦Ãð†yïÁ_BPJç”®ë:Ï3c c¬µVJQJ9çÆ˜,Ëò<¿®kß÷eYÞƒœ B”RX!ªª2Æ4Mƒ1¾ï›sÆ0ιçyc„ß÷s°d#„´Ö -i­µÖB€ßÎZ ŒžçaŒãRŽã/ŸADQdŒ)Ë2MÓ¶mã8Þ¶ !T×õ0 Bˆ$I¦iêºN0a‚8çyžEQ¼^/¨¬”‰-)eß÷o¹ÎŸÝûß³Ÿÿÿ챪Â0…œJ …BÍÒAJ ­t0‹ b©¸¥ÐZ\tè^È3)‚nn:ù Bp(.)ÎNRÂ}€»Üéž8Ë9gùùáûoð_þ“eÙëõ ÃÐ÷ýåry8LÓFyžï÷{BcLñ|>¥”½^oµZív;˲"BBh:BDZmû|>>ŸõzmÛ6¥4I„Byž7 Ãáp6›u:ËåÐu=Žã¦i8ç„õ?D)L&œóÍf㺮º·m«ëúñx4 #IÆX¿ßBÜï÷ªª,ËŠ¢¨iš4M5M;Nã4Mçóùûý–RŽÇceÕív…·Û­®kµŒñb±Øn·EQ<ëõZ–%ø=Òë ÿÿ“£ »Œ †øðáСCW®\QSS ¡ðžÍ?~´´´ÔÔÔpppÐÔñXdNN^QùÛWÄœ++ë­[7~ÂæäÿÿíÉÑÀ÷ê`žƒg3ÀÆe!{uàâðøÞøHòôŸŠŠŠºººšš¼Â…Ø _Ò΀ºI ²_¾€ÙFvvöÒÒRø|¸½ÿa ‹ÑÌa€­X‡¯^G–…ë‚»Šév&\ÃXf4ÚÿÿMÁtÈ»$ЦДAL°ëU ‰ ^ B`-\!-x²†«‡ojbÀ6“‚¼I Ù4È’bL•¸ÌAc£Mbõ&¡‹60g4IÿÿMÁtð’¾À…VBJ5&¤{à3Uÿ1î b„mb@š§€”… °ò ’ÜÑ BH1ÌÛr—…›‰|C|ƒ'Ó—/_¸¹¹á kÍÀ€4“ wd4ƒâ$Ø5©ÃàŸUÿÿíÉÑ 7˜`·Áç ˜`÷ÿ@ª`ø>FFÆk×®M:uåÊ•ÿÿÿúôé­[·à»w˜a€iÇ333+++D |Ä.HŠ„op‚k‡2 ÝPWö÷ïßýû÷C†Æàv1Án(B«Fà»› .¿téÒ½{÷=z¹]¦³³“Œä <<3ÿÿìœ=ŠÂ@Å· $Q$±Hld@˜I!šØç9DŠ4iÓÙXy?pÐf:á?`1ZÌ ±±³q‹é¶Ùjß!~¼xÿ þ }>_¦ê:N“ÉDaÛv·Û]­VƒÁ`:2ÆÒ4B „´Ö×ëcœ$ TUUÅ~¿¯ëÚÔeYŸ°ÝnŸÏ§ã8Y–¥!Dq»Ý‹E§ÓY¯×ï÷Û‹0Æúý¾eY@Áïv;)eE!Èóü~¿sÎ_¯¥ôx<‡ÃÑhd\Äf³iÛÖó¼ù|~>Ÿ9ç½^o<A` «”ÒZ‡a”ÒËåâû¾ëºMÓH)‹¢x<Ëå2ŽãÙlö»Pøã¢ñ ÿÿ윱ª‚P†m©I§ 8ºŠCˆÓé)|ŸÂ½Y[ÅY:N‡8ÊŒ"ÂE(ņˆhtP $‚ !ˆ»_¸Óýâ~>¾ÿ þzÂëõ ¾ï·m‹1nšf:†±^¯w»cì“Q+Ër>Ÿ÷ûýÏ™DZišº®[–u½^Çd2ùz’ŽãŒF£ËåÁl6“ey¿ßçy@QJo·›(Š„ÃáE„P’$€ëºUU!„EY.—çóù~¿sÎÇãv»‡¶mÇãÅbQ×5¥´ë:×uUUM’d³Ù`Œ!„„¯Å!Âóù\­VœsÏóÂ0,Š"˲4M5MÓu]Q”OÁ1v:z?„¸_òÿÿìAŠƒ@ED”VA‚ BÚF„A[¡Åìr±œÄCxAÏ fB‚è,šlgv³š†¢(¨ÿþÿŸà¿ÐÇ1ª¾išûýn†ïû¯×‹RŠ1f•DŒþÝ÷ýr¹äyÎ,¼æéY×õ8Ó4mÛ°Öqœ$I „ã8Açù²,„Ûíö~¿‡a(Š‚Rªëº u]+ŠÒus Ïó†aUU¡8Ž !ÇC’¤², !žç¥i x>Ÿ ^BEQ!ìû^Ó4Œ1 â>{ÑuÝmÛ¦iº^¯mÛVUÅó¼,Ë¢(BUUµ,+Ë2VÂýšüÑyžÇoÿÿ육 „@†—[ФM4 ‚Il@ØßÂnÓ.>Àâ+h› ¨Õæ (&Qá.,'\»té&Mš4 ßÏÌ?ÿþQ0þÃWU¥ëº(Šš¦…aØ÷=BH–å4M›¦á8îÖ=×u—e‰ãØ÷}Œ±eYu]·m˪­ëš$IY–!JéyžŽãäyišžçeYFÙ¶ÉGÀ8ŽÌ«ßzÀ[œ±›!f=bù »÷È<ŽÃ0 A!Ã0ð<EÑ4M $IÚ÷ݶíyžE¡”^×¥ªjQ]×Ý+·ïQøùBø€ø0è¿ÿÿì]=j…@~OXuqWµˆÄJ/ñâYô^Àʃ^"„4¶ÖJ$ŠvL!ØҤ˔SL3_÷ýý32?1}ß'I’¦)Æø´Ê†¡ë:c¬ë:MÓTUåœC¯'1ÆÚ¶Í²,ÇqÚ¶X–uGE¾ïÛ¶mšæ<ÏŠ¢‚0 ¥ÔuÝ}ß«ª*ËrÇ8Ž !¡yž‡a0MSUÕu]B”Ò+„åDª(ŠË² „!ÂmÛ „çfYI’º®«ëº(Š0 §iò<ïçœs®( !c|JçdYnš!„1>ï~ÙhD y}{²žÛî÷« ôŸ·Û×ãñ’çù7ÿÿì1 !EF˜Ý˜ôaaAA÷ {„e¯à)öhžÁ3l@ÄŸˆ¤J•*SÉüÁ)ÄÑ)žþ;¹jXaßw¥ºçŽE)¥1‘ýêB²ÖÇ{È<ψh]WçÜ8޵V¿µVpâýÇVÎÙ{/„@ TJ56äüy!õ33çcܶmY–¾'“R‚$E f†_kÝfn€Ó7ÆÃp»^ÒóÑ=qB¥”iº§”°å^ÿÿMÁthŽe@:E íX>H²Æœé€ˆCî ‚ 300x{{Ã[È£u½||| h΀ˢU¹ÈwÛ#+Fžë²³³³³³CV€¬…ußüˆA¸Èp51öŸÁÐÐ3Ñÿüù²E”ÿÿMÁôð(‡·à‰¯˜#Mð$ŽÜ$…'¬Š!ù2F¤­lÈ!ˆ ¦ÕhiîHäY´ ¸íÈv!·Y‘íÂjZX120üúõûÛ·7ÿþýƒHþÿ={n,ÿÿì]A Ä ´þÿUÆ´Z»$Ô£/ð&= Á½ïi=ˆ"aL3ùWr?]D¤ƒObŒ½wà@ˆ]4Â, .D¸½žhµVfn­©ŽC³&ešæ*AÚ.Zê KÒsNàÎHß´#"0iì.Û‘ö”R ÷À‡3Æ "x .×ø~.ïýyæýÈ,w¹øú˽9¥„JÔ9÷ÿÿì];І0±°±ó&ûB\þÿ¿–÷ðjek«¥µ øŠd£K0³$d‹éö[mêa ߄yçÁtPÝyž÷}/¥üƒ(¥Ø1œeÙ0 q­5bî8Ž}ßqA ¾©Zkkí²,˜–jš¦,Kß÷ƒ (Š"Iì FJkSJÅqܶ-2œçÇ‘RB®ëJÓ”‚Wc¶mB¸®‹Ž/¬ëÊ9·ÖNÓÄ€ªªêºFÑŒ1Ó4íûŽö ”êº.ŽcƘçyèa !(¥çyâD†µvGŒö¤”˜íþ¥4qê[ß÷§ç·(ŠÂðýå5ü¸=>ÙçËà?ÿÿmEÐüúõkíÚµïÞ½+..>qℲ²òÊ•+!—§¤¤°±±­X±âÇ……… ÷ïߟ6m//ï·oßÜÜÜÞ¼yÜÚÚš••µ{÷î;wî„„„üüùóöíÛ¯^½zöìÙÁƒ•••Ï;W]]=yòdkkkssówïÞ9sFUUõׯ_›7ofddÔÖÖ644ìéé‘’’ò÷÷ÿþýûâŋ߾}[UUÕÜܬ®®þòåËŒŒ ÈÌÜÌ™3ïÝ»gcc£§§·oß¾;wî$%% A²"Óýû÷÷ïß÷îÝ”””«W¯nÞ¼ÙÁÁáôéÓ‡þýû·¤¤$Ãĉ•••œœ §XÌ™3RáL›6MEEÅÊÊJGGy9è¿ÿÿÙÙÙ?þÁÃͱÿÀA u5~¡Ÿ_±³³}ûMîÿÿ-ƒé ˜™™óòòìììNœ8ñû÷ï{÷î]¾|¹ªªÊÈÈèãǶ¶¶‡^¾|ùž={¶mÛæîî^RRÂÄÄôùóçß¿C¶îprrÊÊʲ³³ïر²€áË—/Ÿ>}ÒÐÐðõõõôôüõë×Áƒ_¿~mhhÈÀÀ **jaa‘œœ¼uëÖ>¨ªª:thÁ‚>>>%%% ,,,555šššÛììl99¹sçÎAî¿{÷ngg§¯¯/77·œœÜÿÿÿwïÞ Y²ñ¼¼üß¿÷íÛ÷çÏKKËÈÈH ‹ÀÀÀoß¾}ÿþ}Íš5QQQ¹¹¹ÒÒÒÌÌÌ7oÞܶm›™™ÙÍ›7¯^½*((( 9N¥# ¹·†uþü®ÎÁA/^¼üÝ Uÿÿì]1j€@Â^¿à+¬’ 9®¬õPÐx"¨hŠC>*û†…fvfþ7øOçR —••…¬tƒŸ)ˆuKš ®ƒØà[BÐΉB¢ÆœfCÁc®)ºÿþB6Kÿùýû?4¹33³|ýò~¯ÿÿMÁtðý’ð½F˜€,»oœd„K ߆„¼¡Âøõë|OǤˎàx‡öȲðKŠgÚ‘Ìd„]dßzÄ€tKy›…È?~ü”W·D:Èçï¿ÿLLŒûüøî-Ä/ÿÿª-¤! àZ °„ÙhtôèÑoß¾?~œáÉ“'W®\a‚Ýt„¼‰žæººº “ ¨›” ¾|ù²hÑ¢þþþ‹/222:trXD/3ì’"xÅ ß ÄŒz‘¬|ýÿÿ?ä H…@‡ä˽•ìßûßjë+*«³²s·nÝþýÇŸïß¾3Špÿÿ-ƒé ë\ýúuüøq}}ý]»vùúúž9sFEEe÷îÝœœœ_¿~­­­ŽŽ~óæÍ¡C‡:::DEEW¯^­¤¤äéé¹sçNÈüV@@$a½}ûvÑ¢EÒÒÒÖÖÖW®\qqq9sæ ///ä^åææf---//¯îî˜ÎÎNÿ„„ȱ[¶lyòäILLÌÝ»wÿÿÿÏÇÇ÷âÅ yyùüÿÿßÂÂrÆÔË—/£¢¢^¿~}ìØ1&&¦Y³f¥¦¦Z[[ïß¿Ÿ““3((~û #lüQTT´° WOß ;'ïÛ·È-ÿÿì\¡Š…Pô½`7™ƒxãá^«üÃî~„˜-~‚`wWd1X¼EÅh‹Vq_Ø'dƒåýÀnÚ©Ó†a8gÂügðŸàÂÇÁ²lš¦yž{žG)íºn†4Mu]ãxßw!Æ€EѶmA’$¡”FQ$IÒ8ŽçèÃ0˲@§i¢”fY¶®ëív;©yž·m3M iZQ!Œñi}BHUUÇY–%BŽãH’T–eÛ¶ªªB|ß?7×uëºnšÆ0 Y–u]ðï{EQžñßÓíz½Üï_/¯oaôùþñ<ÿx|??|?ÿÿìœ?І0ijþƒ(ˆA A…ö) VžD¼Š·oáE·m“\×ÕZÿ¾ÿÿMÁ4È1¬ªªúúõkww÷wïÞ©¨¨@®že```aaacc“””œ8q¢°°ðÙ³gOž<uóæÍ?þ@î¹€,Ö¯Cÿýû÷„ öìÙãèèèèè¸k×.ÈüÅïß¿¹¹¹ÃÂÂúúúJJJ?~œi@–1rqqݺuKGGgãÆÆÆÆqqqk×®åååݽ{w[[›ºº:ä³ÈÉÉqssC–§qqqÍš5ëÂ… oÞ¼Ì.X°àõë× °¡:êHÐýøñ2§øùóç?þ211Cæ8à“ÿÿì1 „0E Ã4Vë¦H@XvkO"x¯â ¼Š½§°²‘‹l1–í·Û¹ÄÌûŸùÿïhüd¾Çó5MSY–TGT$yß{×u-Ë"¥´Ö†8çó<‡ò<'U˜h,¾¸i­cY–!bÛ¶MÓ|nöó<‡a@ĺ®sJ))%˜µv]W!D —H’¤ïû}ß«ª¢¸KcŒRJAq'Œ1çܶmt4S"¦iúSªÇQiQ6ñÞóûí8Ž¢(º®{ÿÿä]A „0 l–N…Þ >Å¿o>Á‹ Þê „m«k= ?ài{,ô’f’0a­TQå’WsÁÎ帊|$¹mÛišú¾¯}„Jo©‡dCDš¦™ç™6¥d­-¥¬ë*½/õ/9ç®ë†a¨,)Ën΂ðÞSš¶, ]€1†eC»1FkíœÇ1ÆÈç¶m« Ý !œç € |ÉŠdE®ß¿ÇórßwÔÞÿÿbùÏÀÄÌÎñïe2£€Tðÿ?#3 ;ãŸ?þÿçåå³¶¶†¬……)À¾¦û?Ʀ"¢>é…¦òß¿ÒÒÒ ØZ«˜€O[êHZÌ.ãŸ?xyyYYYÿÿbÌ©íeåäF?ŒjPüûÏÈðíŒ3 +áóí(TIUtNšDÌìÙÀÈÈøýûÿÿøoõ:u¨IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/modelindex-no-parent.png0000644000076500000240000001635712536324471023504 0ustar philstaff00000000000000‰PNG  IHDRXØ‹À¤ð¶IDATxÚí]`UÖ¾‰„z¨ivT,EA”µïª”_]:ºJÁ,¿+¸*ÐÅmÀªÿ/kABz€@ T)¢”H%É›¹w¾ÿ–™y/.’6!ï½Ì¼73w3ó½óÎ=çÜsï%†¾{¾3·¬¤H)"ydÑÉ”<­ÎYÈ„áÏ3© U "2L‹Êº³a“ÀWÃ|;Ǽ£a§ì’Õ½3­{ÙÏï„@";eëžvyþµ®±Š€?mâ"vDìc†ørg¨Øf¾ÁÌc3%²ÅE~Jf%Ë–£.fæõþBí“Ì07ŒýŠÆ~*f¦ ó¦æã^a—b=¢ýÈæ#–yf]ˬ'17ª„À‡ò?­áÇ!àZû —2ÖÃú9K}¯—# ø§»ÒŠQxñO‡ ù®ºÉXà˜Hº‘;t8Vî»%‚:–aO‡Úõš®åôÕ­ò¢H$ÿÄ¡šïAw,Cæß’§ÀWö?žõxÔÏ`Õ¬òbFDëp9,)uNKñc×ÉâWp cu$“µ@.y¾j&cù»ßÒ¥x™¦r"  5[çcŽ//ða YÁ‰jDZ½oC1æq`©#­€%XÝ©VÀÅìÊè'aÿöÕEÝâÀöº%x—ä;–ÁçX! ²ï ãxѬú‰‚aõKJñ`S £ÂEW9£úïA u nñ­Na­F¨k:>"û#œiØ–ëk´Õd¥jU?=¾;Æõl(¢ çX+È‹ùÆŒmÔ-ÎÞc&Íî™Ç/ qŽåkÞCר¥Œ#GÀêî‘DùÀRüë¶Þ7ÜÔëŠÿu p`Ÿ üá%`À»a,¯°Å1ƒQñÞ-C©pÕÔ»Å5]£Ž½[ü£;õnɲù¢Š/G+à«Îå¼NåÊBÞÑ-~f±š#Q`¸àXË­åL+0yÔstWûžÖ|šúúTB,<)ŽÍ óÀgHBM©¢õì4«ŸI¡VóØ>m•]–H—ï¦î¦Ü<ê†2M%±"¡e÷8¶šp쬡æ2dˆX‡ •;‘"2UÚ<;tÈ㣇K uEÀÖuÖN<5rH@ÙvÑCížZ¦G=>dèðæ•¸xÔ#<둟…†²ïáaC‡ýq"fÛÒ{‡~ÿ\A’¹-à· :­WÔ¸¤]{±´k°Uk;õ1~ܱ iÙ¡];?…µ1)Ú™ÇfkÕîØÎ*QnßÎ*¸½M­Ên×þbÒ¤#¿Å“Ð º¶éо}›ÝÐu$·èоC«^˜†wujß)f 4 _“£Â™”ZO· Í©(а€¬QнQÀù«w?i; ùä}AîLèXF~á-ÇÆ>RFù Ê7T¦äžR™ÉÔ*7¥˜Gà³N^ ® V1òȇ·sj@bÎÌ»0‹–ïtä’8ù,ŠÔT«®¢ H ÜRòs0s,Öç4Ƈ8’Íi$Œ&€Õ˜ÃHŠ<2_>‹âfk»Ö㤅.x8ö·€u! âH’sQ  `]‰‚ùÐÂIÇ:ut“(+`¹â°ÏÔ26$EAÐ! l›´! ,Ó<`=Q:À2d,-ö8ÖÓcCHÀROÝ g޵¼ÉL§á¬p°jXoäqlEÉXŠS›ÃlM]«cLjSÁ#cEpÉg “qVø§ÇV(`8DžÃwd‰À'Ä-/_°X^‚­5¼DN»¨Q{·‚,ðXàÖ|3d‹XJØ “±:î¼¥ø˜Ë<[¡¢ ÿõ(ÁG\Ð× VwJ"­@Ç£ ‹5ŒÌqŽ 2=–córèÙ:óÚ¼*c9_´¾3í²F_ÇV˜ŒåÂO—5jò)gXæy·*Ô»%¤E'6£ºp¬hÄѤƒDÓ(Ÿ`ö¥ºn¾¤£ÌÝt-àöçrÂP¦‡¼†!ýË3N-/Õ£¢Ò݆vœzõÐcŽ/]ñ½ؾtÙf»DU¦ãð?‚© í»•²O_ÁŠM2މ©îU”bí²B˜Iä˜ý¦aÙ‚ ââ¬SÎ-c5|F"#w¿'dtó®Í" o6y>*Y&·nã"þOF¹"HÏj=ýºýЬ‹¨Aýô„g$ŒaÆ":v©Cþ¹­ ¹ >œIçV'¿]þ¼M^E©‘ž ä5hZ$¢œs?]%{LeŸ ¢ÄÌ tãÀéY¼â×U0ƒ #KÒ9°É¬'MÈ@à³¶$êþàûÖdàËdØ´HÒàSœ®ÛøŒÄ?ßþ ¶_òÂTñ,¤ç£Èë=É^¬Š%äñR¼Øn¾ë<  ¼ã ŠêŽ*/‹I×Îqß‘ˆ‡®#wâp ¹ùúšd:^%·~x1Idµ°»HwÄÒú‘hò Þ!uÇF#G¢êÏ{ˆ<´:5ö#sL—ku6Ô8°½Æ‘ÂG/žÆEAò²[’C/’' ]Ã9öb² +ÈÀÒ:–Œ½«Éï²0‚¼…Öd? 3ÉkÈíHö`&i˹žýJÆVÓVZKÈMŸ¤N÷½AîA{Ž#†‘/î%ñÀ42;ÔìÙ£¹,¯žŸc“8çäù'I'ŸQÚ‰¿›\ÓóÖ‚©º“˜ƒ`^|¬Å±]~$£¢f¼%=j`ùr0Ù®ÌÎ%õn½±Ï£ÓýZAw$’»Y$î$c¸t!Çî&7ô¾é‘¡{¡_GêlãÌÆñ±n€]B:ü.’¬™ÍëCþŽ3—“ÍcÉxàvò:EŸ@Î{ŸæÕob‹‚D2Xpì»´!Ý$}<ùlù?sQpé&Ãr=Q EÁ%¸\Tø —±‹I퇻ÞH«ñû„W^Éý_õ%ŒÚÿ& ÞÀtÒê‰N„ü²´Yôí¥IŸ‰6Ž’×ÅSMKÀþ4å¥3^˜£ ×tâs™þÒóŸƒ:0(R'Ì›7¾\ù6N¤ÔÖÊšoÄÉÊ‹ <g]d’¨3q Þ~ö˜¸•ÈØÞ×Ù–šº#u_Råj™‹È0³Rwm Üå3¤½X„J Ǧ¦‹˜Íßv$Î8æ æ’x;ÆW‚Þ·¬\µ*>>~•ú®òãÕFeË%q9™‡b§cÂ8°¼¸´xAŒ(Z)•—Ž_&[À^xËëæ«·¯NLLJâ_kMLrQGü8QîÖ}Ë9¶"›¿)¶•ÔüMqtò‰*7_êØŠôpQ0­2EÁ”s‹‚–aß”¼ò´‚óÖÿ^ÕX&­±ç,+« ÿ&°“«Ømñ ‰jIà ùU{+öRe¬#'̯€]‘l#;0¤OÛÔ¯¯è÷'|ͳæÌ~sάµ²8çÀ–5„Êá+ª&À–åØ0 Îà2ö KIýXcò5Ÿv¾¥WÏ[:/3œ?ÇêXøW·²ãK\¨[ž„R,&—µZäÔ t‹É‡ÝŽhÝDǼëÎXÃHßÚbb8ëÖWp:K¤ÍûI ™~È>®H­ÌÖ΂tgN˜²þX†Þ‘dŠmáT?–ÿû“„(éóóÇš“/¸±¼ÔYÒòbÌoŽý»?Ö`%:´¼ d°{ž®RŽMJZ¿:)1>>!)!>>1iõªø¤Äի׺åXÝ­¯@¾È>I":2çlnCæÒmhþHyÁ8ö,•ÿnIÙœ°&%eãêu)Û׬޲#%!)ySò7ä}þ\º¦¬ì4¹á+¨„›cÍgô᧪Ø„Õëïmuû¦.m;b÷´ëÇ.ßøòc“Ö~·ðý/¾W óoN©]øY‡9ÍM) `MfæûT•Š‚5ñý¯¼kÓ§×]õÊÞñ¤ÎkÛ’KRây"©vd§\|õÉJ”ÛeЫ§‚¶iæ‚{vQ°5ukÂÚíÛ7&pñšðC|üšoÞýÛ÷ßFö‘WÜŒ\‹¤¦VãÐÅm 3|úçg T°“«سV^‰vå•´&I®‰k6'o•—βNdáÀ}’ÑŸ4;i|²ßª©ÌÞêA̱:†Ž¯b`ýê–²Áx"~× æ 7ˆõª?}0{£ÈØÿM–OõU¥Ì¨` ÃV kEçlA@~XðÆÈY4çÛ½(SITvŸPPæ¢B9q†óÊKÔ¦º”eg+(;gY°l“É)‚OîþÄ—U— EÉ)1ÀˆS§¼ðoj=o`ù‹ç‚9Ö TL,£ål°qJ}^ªó(Ù8÷sκ—¤ÊB¥ƒ®ô´nþA‰ƒúd‡d¾ž—{f Ôl£LY2ŠI¥ÕJË‹Šë|Mÿ}r|½pqt‹HwٺŰéµ{޳«È‹(:VbÕiƒ Ñ.+ ¬ûRÓâJýjè7EV4jJWiÇ)*•TeÕ1Ÿ<»°Gãƒfóm8µyéæèÅsî~KH‹½ØÿÃ^û¦2¨]DÒqàÄh’ZP·ÛÇÞÄ+½mãG.‚v}pfƒ[³?ºŸ?>·¾… †/S#?ZóÚˆ"ZŒEìpsjÒð Ø|&CNÌ}à0®&íqg¯ È;xØW®K±&²{/²«#¯LžúNA˯ý ³ÐëÚ»º×»åªd2[ÝØýfò9'àX†ÓC¶ ?|v`Ã"®€+ RÊôÐÑÝ8Úã’âIBvàæZqbԵؾâû¬Y–½€n³MZ¦£ÇÃÀ¬¦¸éÀ¿"¡Ïd´À6ÎD·»€Aí)&wÆéÈ‘ÀÀ?ðç0hîéÜÜÜÓùªêÒ¦DìTÁmXá-ªöÿù#q…ZCÊÒù˜öÀ|hSûcº½‰['£åR`o£L\ó0ôQà½Î8Ùh0âAÁ±zöÉììì“§TÄçÈУügÿmïVØ› ¯æÓý=jL—b€w‹"«fppÆžKAKëÎÀ¶Z¬ªy×¼ { ˜Çm¸)€Å©—DŠ©£âM¦×:$zÓûuݰ 1:‹I«•C»SÑ­°;ì>ˆþ)ž«‹;z0|X÷úLAó©0îŽÈ±ëŒìF{§¢ c@ÿ;úßyÛ0®Ï¡°Öô’=dU‹£¯tîð š7êXóKìmÞè~# š†9¤Óï:·ÏÄ ó9—>|Ð9±û€±ILl­€botãú cȈ2ZAxFºôˆÿnÎ’…{ù’½äÃ4®N*./9©#§ÈËвA³¸FÇÓÒ= Ú5Ѳ†¢ôôôŒŒ2?Ìû 0úk«6/ËÁ;ƒZq­¡þ#·aXU^ÎÚ¼œ0’©áßñ‚Íö–€tì÷p˜–ªA¯™J •¯@Ž ¾tòÕ­ÕãªÊ´ÙÎð¿Hôóú-Q\]>ÍøjÃßÒt[ÁLŸ‡(¸ÐÀv¼tÒè±b3F­*©>ê«Îðýè?ßJî{f´IdžTcÌ‹Kýl«˜‡îü{s,¿|3ØÎRùƒeþà{‘Ûþ=]vRþö¿ÆÿćÂt?¹Oµƒ)°W’ØfÍÅÒŒïDª™Lò!eN‹z¤Q‹fоys‹HјäV"¯Eš­ccc[ŶâK¬\­#sfVl«–¤~‹f±µ¨å_Ö¸EóæÓĤêêµlÞ¢aWŸˆž]#¶ylÍbRõå5Ž•«nMËçV/¥¢Y…ouÙ…VW_ÝÜSÙè"IdžJ)J]·ŽˆeŠjø¥ -¯ªªŠ+¯ðÐŒbÇó«Ö(m$ÑRLdJ%úƒô’¬³VvRÀe¶“dFðÉŒu_O:^džë¤ê û^}uæ¬Y³fòÜÏ2üGüp¦uBìfš¹jiçÌô_¨(fÍ|õ¯™Uæ+¨ê‘â˜f@SÑãðVÞ`;Þ<Þô©–W^НÜᡘQió XJµ7“²Ç±7 ™7áïy*¯;UþÂÌ@6À:ðxÀžÇâd|1XMâã©[^ååëM”¦deÕiTù &cåœaÕh¢´ 7©zæþŸ¨õK…0Ç®lv<˜&Ugx+2&¢oA¨Ï@ç`£ ZyQl íj5Ðì¨ïù *Xþ²#Úrù´0¦¨fAå+ÀæÍÔ‡aM5„úlõÔD¾e ž™±2ÔgR>_+Ö]%§N e`)öNÉ &_ÃòßEF‰ÕÇÓc+¦ò¢øWİp0iË <¾ÀZÁ=ßžö——^-ô8¶B50µoï›oîÙïTˆ«[Á¬yçݪxŽ¥*²>Ô+/†£I«bw˜bpϤõÝÁí„ §¸êæ¢ Ìš¿‹ë^ÀFUÎKëÅ„x›Wµ›ûÛ°°°°îխƒšmX=}a>©ºgÒ†l„ v¾' œ{%iÓ„øÒ¤‰úª½LÈCûDLÓº¤ASóŒZbLzµ‹‰Q—šGMkÔÔ1öy³ü&vÙòÖæ]“ºMcš×xDŒÓRЩAÓ&M¤‰nõê4kÒ´ÞµrRõ7#Z4i~Ñ¢ƒøž·ô`æØŽ—M7/ãÇçùáiq('˜)•÷ì‘ûž'Õ*ÉåÉ ã­"䑨ޛÛfò8u¤®(“°o¨ ÿÌ(Ògò¸‰O} ‘K¦Žåyc‹±nþiâ„ £ÿ"æÄ÷#žÿÌÈ€†‚IëXPì'ñ•- ްá`Šê*Öc]Œ S‚]ä{7cÂÜt§öiš¹úÌ‚5ó6VÙrWjä÷œ „ÝeEAëQ•ȱ½úºãØÕÔ»¥cYå™´Î8¶Ï,9ïš#Že8Ò!YM"æ„c)†ŽP#®:áX…W}!ÜÇR$tJÚîHvÙ΀µAt¬õĵæå=Ö0œkÝîc «gŽCŽõ bݰ°ò2Ä´dN+/¡ù˜“W8©¼TáN+/«ð •÷dì…T·¦.†î”c)2žØ'UGK1ûmPÇ‹âQk¡;åX;Fœ —æï bÒ†‹Ðf”;!Þ¹ £w?wÂAîrTùphóò,¯àðPôêçN¼Ò¢ ŒZãql…‰«KŸ ì;Aë±(øê$œë±X·ÑV -?"Èv K_zÁmHqìþ=æ ÎèX7K'ÀÚ…;¶ì‚]>)4Ûhë‹bZR7–—ÆÜX^º;ËKseyYϤ•—œjܹ¯€ºò0æÊW@Ýù hpù ÿrž(¨@Žeøù¦TÓ[ÍóeºáXßÞ3n8ö—£n8–îÏuñ…û´ âXŠÃSlë©[ž¯ ŒGŠó€=° ‡ÚnöËXØŠöhÿ]°•. :Mpì$ÑMówŸ»Ü[P{¡óæo+‚i„ E¨LªžSàFÝÒ3}nÔ­Ó¹nÔ-–UìFÝ*Í¢AÛ˜èžIr½¿5ê Xs¬®»ÖGÝ[îÔ~^ˆQX6/^ïÆÑ;ÿ¸›æïåߺqt—þ}¯G÷‘áÒÏËÓc½æocÖc[ý©Ò܆:zöu˱ճ“²çu! î›í&Tþ—n)n|£&¸ •/êµÌM¨üºë3ƒVx&m¥‰ƒºkþÖ]5Sêªù[g®š¿õànþVS«¿—L›€œ8X¥M+û,$LM8ük³ðs‘çCÂì°}Ϥ­v&íé ÉÉÉwÈtšH¯ÏN©’Í›’“7m.éœõ<{CšœÂ|‡$9-²‹“ÉŸHŸ”$»…‰ÉR7ŠtžÈ.âÉ›¶j¢ð I²WÐm‚d£°HQ “)"d'Öñ"×ï$zŠÌ/$yò·‹gÆ1Ir@>"¿>h݆o‘Hþ¹\‹Þ•§."_ˆ>ëG£_¢¸ ®ãKžIºŠ¢6$‚­$‰Î$K’¢ß6mÏI"Éjðÿô—<AåŠéÐãH NÔG(%±2£è3¿Y&[ˆø6Œâ‘»å¤ê1<—TA’Ä‹‹ me·ú™²”‡ÉÎÙÁÛk†C•·9%%eË.ɱ{D:ù”xÇÒm[SR¶¦”Šô©dž½yäØÝ[D:WrlŠ Ù.96;™lÞ'96M’ä‹ì3œ"ekªäØ,YÊ’cw ’-’c er‡¨å)JI> 96U\º¥HäËGÜ)9ö„$9$9¶(ˆ9Ö–“Ný±†-ÿ*¡Ÿ—u7‡2ÖîÊËVð›$Yå;Ö ,<­ :i~=݉åeØbƉ`I-§–3Ó ¿ÙX¥2öÿ©ø5¿YW€LIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/modelview-begin-append-columns.png0000644000076500000240000003077612536324471025454 0ustar philstaff00000000000000‰PNG  IHDRñ‰ýºÞ¥1ÅIDATx^ìY/O#A³riþ]‰!$§(ä%MÚCÕ RÁ‡¸T%¦)˜¦QÃ'9jN`MÓvwn~IÇÜ ûzô­82¿d³³¯ïÿÌÛyÓ5Y–‘1†$8çp ¼á9 ü:îŒ_ÐËusZž.n/иŒ‡ù p]ïù'Ûæ±p9N—óÁåXœ"¸<÷™çYÊ…SiX¼òz“}òæAÓ‘“wæ¿0—ÿd#¡ÿŸ¥ˆ#"",o¡ä¶—?súôJ4]=Ü_).I‡@r$Ñe8M——y¥ç•ôÊ9XÞ†¬Cæ“}&õ³R>-zk\K"zÏJº¹.]ÿdº¦œW¯¢Ce^e:I>;?ÜnQ¹_ÖoÙÙ¶dã3‰#""¬ô¯Û|>O²,KüØy€f<¬o0 ¦p4ÊAà ¼y´<]Ü^ qÿþæá~\×{þɶy,\ŽÓå|p9§.Ï}æy–r‘“S dkmºx¦‚ÏÄøüT*•2km¦ð‰)~bŠŸ˜_øÄ©{&Žgb0á2I’¸n·û}8~µÖމŒê;ñúú:M&šN§°©¶ƒâÙÜܤ··7ã;‹Bvb°ú8Œ·AišÒ‚¬²“xÜØØ0¯¯¯Xü…ìÄÈ?æcaCu'^ˆ ?åßWWW?¼½ÛÏÄñLlsváÄ#íõzß¼@óèèhî'¶äi*E q\•JÅÝÞÞÒáá!íïï›ñx Õv óúúšêõºÙÝÝuþ…a@Ó(â6777¦ÑhP­Và Iµö!7°qvvFÛÛÛοÀ¢Rijֺ——êt:tqqAÕj5jít¹\v£Ñ(¹»»ûÕn·®­­¥¤„ØNó ãéÉÉ 5›Í™_4h­µŠ8´ëîññúéøøØ¤iŠ¢S-bîïï©Õj™ƒƒ‡…éíªq¿ß7§§§´··vJµ"Æ»ãÃÃ9??Ç‹Âyè\4Š€. º¼¼¤­­-èV+bÜ`ãùùùËÓÓÓs-µŒ±–m$”Zi6›ah}«_Ðëõ‡qQ6øXÿ*4çI?OBj6cRA„ýÃÞ•Æîttñ™nT%mŠØb‹Z¢(‚Z+©-"òF*b©mPýP_‚P¤µU ^m‰hP”(l±ÆËÔVK*T«Ú¾ïô÷;qþ™ÜûÜ\÷Þçß>MîI&óÜ{ÿsÎ=3ÏÌ9çwfž¿µ66çG«õÄÝ’ Ü€4žV¾ú9Âk;_-q!ë%Ÿ£@œëÉÊ—!ϨåøjsmÔ× ÚúAÞŸÄ: wðý­§É×±î¤ïÎkZÏp»°>qà‹Õ±æ3_†¯G@F—ê§ÏµöÛ’w0¾û§óÄyžXÂ0†â`ñ³×:–È“2¬µ>ÿL2üwå»SÕƒ5Ÿ=ÅÊÀdb­|UuÑg‘mµÖGªˆã¢×ñ2ü:ºŸøî:ÞZbåøa´W§/yÉn‰•]¤­[·š=ze6@ÍÝ»wéû95¶§5a|NY£G&ÈCþr¿z×ãÇÉîÒ¥‹iÑ¢…ýû÷/ÒŠIØ™&–±oß¾¼”/iÕªU͈#d2#¿©“2µÅ?~ü¸éÝ»7­<ùs²Ñu—çÎÓ™'0ûéÈ‘#fÊ”)fÚ´i:‰‹fÝ/]º$5v^±â"«²“tÙ)ŸÄì숄²­O¼ÖV‹iÛ A¹Æ€J ÑÞ»wÏâË/×OR6!>>¯ ‘y³-¾Œvûöí;¼”_¡6‰e?ï9Ò®]»Öbp{¦¦Ó,&—ÜÃ.©8y±2°ÎÂr‰>*TûûöíãvM‹]k~Û¨þÖùœ<¹…h,°Ö¼¯úĽ·_‡ÆBe_¸pÁbÁ³Ø–knXÄÆvâĉñ7åP?ýû°Œpº$}ÉK6tZQRLRW£F ‡>ŽÆr«´Ô·oßf 9VäÛGv1Á¢Ú$–ÁkE¹1‰¬<åÒŠxÏÁÅu˜xq2õSÙqò ʧ òÀ>nG:t¨C éà±8¸ë±«"ï©Ñi¾;õ5j”¼ÿŒ3¸•Òï?¿o¡Ó:,ðL< ‡m ±°«V­š›?¾k×®ŸQ•W¾èt^Ò[bß`°ôsÐ"ø3…• [eŸ/(³%ÖgäM=hÁhIÛÛŽ;rŸ²3fŒ9s&õ ìÄ–Ø¿&n—$U¯^ݲUªToæÚµkªcbKLâûñÝi×Û-[¶¿?Yb š6mÊíŸb‘sÛ½{÷Z Ò¢÷R·Ä¹%VË·Š‡ ÄJiÙýHI‘Öësß Ä´I'CóÜ,´ŠHÿ¸‡º={ö8€C|žD^dn.tYÍ;×mÛ¶Í=zÔtÀT×Ä–XߟV.4­¼Ü;qâ„C8 m4:,N˜¯[bõZHcÇŽåÁ‡XÞÕ—±G˵mÛÖ$oŽ{©ç‰ó<±Ü)愱ôjêÖ­ëYõ’#ë O: ‚¼bÅ IeuëÖ©ê”9 +L„à–^$È%ˆîáÇ$J=Laañ”VãÆ%=6|øpC6l˜ä¾¯\¹¢ã”:GÌÃ,ùÙÏ ×ªU‹G>•w©SŽN+1LÚ¿¿Ÿúaê„9DXÍ}‘ŠÆOÑTæžy‚‡“Œˆ´~1+V¬H´W×Ôr™S},¬­…;há¾Yž×:uª…û&ˆ%Ûb€ÓÄÄibÃT8ï5ðd;f1ÑçùÝ XX6"Èú·‰Ñi¢Ý$XC‰Y1±,,¦èg'Mšd‘²á3%ëMØ Ž¸d‘â³pm5nÖ¬™´ÁÄ“k,¼N7ÀfAÒgÍš%z ì°È}[€i{tÌUrމóò\1¬sœkÖ¬¡+*î›níÃ/7Т=ñO0Ùdõ/黩{ dW=µŒÜ…Äü4kµÆ©dÐÓ²_ü\*bLÄ׿Ír8Doh¿s<Ô“(Ô&•÷ƒŽ»¶Dž¡Öþb(2`À€Ófü„¦ºvíêΟ?ï€T:X-wöìY7{ölM3$¶â#L$Ëå Ä{~J&“ ä âzrµ¤FìÇÂÃò®fÍšqë@>ø˜ø„¦ã˜&SPŽz¬[·Î!wãÆã˜«ŒòO1å%»%&60°fàÀþÖYcI%壖X­ÞÏÄD+÷coþujKÉ—×ÀÝõU”ýÅ;‹n´ˆÚ_ªOæþ×­¡mÚ´ïKŸ©¥OyLWbY;ñžÞg5&V>š›ö¯SÇÄÊCcJòe kÃâßK$O)J–ö“ö&šòN‚dí¯¤1±ŸsêÁþ êQb1qG¹Ù¾åò­IÜo…Ÿû÷£-™"«ÁvOûŸÃz„ãÃàBnß?Q–L­cðý"¼ŠHëú$î/呸ߩ(ß°~*;žgùS“4UàPÿÅÞÕIU]ésÞënº›é™á·e’ÌLV‚q’It¢f+ÁP£µå’0ˆµn hL©&¨HÂn*‘(ŠÉn•" n+â’b¥üÁø“¥¢€àO„-p(ÝÓÓÝïî9¯Þcnu½é?ï8 u¾š[÷½;÷Ýso¿>}î¹çÞsŒ'ÐtÁÓ’†NGÏ&BÓÐõjÎû“Æg©‹NŒˆŽg÷å {»ä:Èž-<èyŠ“Þ.ýv5?^]£!o—\ïT»Ú8L{»ô}ƒé4V y»<ÕoJ VH0åí’Àí³ëcŒ@*aƒ‚M§‡Ø«L&úf0sñ¦±råJôZñ·úÙ%Þ.é…æ<»æ]Û¶m[…ˆ=ý‚®G‰±2$™sH0B× ùÎŽfLÃtŸÆŒ3x=ÁoËëôÉwö Ý:ý‚$˜FÚ+7‚nmÚYÖÅRÞ€·K‰¡”*tèŸ}'m%ûâV±˜$“ÄbòÝ …hkk+ó·XL‹©®(Q%*¢Iì~h—]†6º|ƒ¶ê®'„_%ÇzzjsXço÷OîÓJb‘Ä"‰=Fe¿_7Òn¸zÎï¾ûîÛ˜¹Y}3fz’SLæ!0£²LR¸šL›M^@>GÖ f`„ªƒ0±@/Ýùæ<ŽïEVnr9<„N‰Ýì39T„‰DÔ¥ðùäÚöŸ G†‚0åì|á‡dÒªfi,L,Iìë‹/^ÀR˜ åY–Æ,«T  žsAöï5Žü`ŸG«ÑÿG¾¼»€@R?"Çü{ÈÌ::˜4–Í•»ÄADFó‚Fz³ý+^n 6TÖ†÷ZRy±>(ÏÉüN:o>6woÚ´é;ÉcEÛ˜@.{?H&“Qšng}kH™ïG6{€QÁfGZÈrwËy»³œ“äÍz>ÌÒ•Û‰¡ v§”´3¥‚v‹—™o‡ïMí¸)\L³ÔòÒw §_ù; î[¡~•=^Ù±¥Ê¦aAщE'8ˆxö(ïýˆN|zJb@ &&@˜X Èê´¬NËê´2°:-«Óµ°% [²°Åùi¼°%›=‚\.g‰$.éAçßf:-Ói™NëÓè1cÆì¥øMË)bÈ1‘Ä×zt=ÒÉ€O§e:-ÓiEàxÖ»È!Àõ¹\2™ôË ¹I pX_/æ¸ë¤‚ã{~´/7Beº‚òÇb ˶­¬vp#ðY½Í z…®-ËV3ëêÇg+‰E‹$ÖO4uuu »ôÒKŸI§3‰p8œñŽ *“LL?V2y2œHÔ¥ÐLœÍf¬T*E4jÓ¦™˜2vï›ûøã#u'NxjÅŠ׳BpdÇ–Hb‘Ä:º»“¡£GÓ_¼ãŽÕµƒÅø\„1&æÛX¬Þ}÷UX±â65þ*sŒ2±ãp8ß:xýõê‰'–Àw¬Ãt:©¸SLÌ4‰úìŸþ´6´cǪ¯~Õ,l м^f›šš ‹ºQjÌ1±ƒñ¸M¡i?Ç×éd£r³’˜: µµ6…rÃÛ‰Æß©TÊA‚1IÌ4êêìÜÎ ¡wÞA§šìÄ2;±ݱº»@‹¯M2±eÙN;LCuw:ŽiIì@*eCO£øšhðXÜgÌ1±CAôm+ιcÒcV øtZ¦Ó2æ2þãÅúC¥,ÔÊÏõóȨñ³á Z}.ãvê¸å”ÁÒÛ` ¶PäÓÖ¯ý¶ûp¬À§àÒpÛóà¼wÀ¨ñ…>^¡ýr¿]½_U~B ^ÀÓW—aB!f<÷ÞP°zðÚEÊl9ñ5Óbš^Ýò„QsŸ¹ï^ûH÷YÖ­u³Ñ™¸wZ ^2Ø6@}}ˆ®³Lv黋Y¸ë³$!U&“T¿ùÍOÕ”)CÔäÉquÝuÿ Þ{o«ŠÇ-•Íj1•5ä“ óp2yLMŸþuÙeƒ©íÑHð5åµjÚ´5{öy¤S'ݺùðÛè›w‹WíˆyճϮ¥€{-D+®.¿|¨úÅ/f©#G*bd·€ê‹†¾×<(UŸ$”rõMÊøÙÏ®€?þñ·ð½ï]×]÷+Ø·oÜ|ów`ïÞN^øñw2UD#ŽÂµ×þüøÇKÜtà œßCíÿ»;Õmh µµƒ~, \ ‚ÛFM 7®‚… ÿ‘úƒo¼.¹äxê©•ÐÑ1zz24V›ûS1,D„Ï*I’ÄÐ×øO‡e!²™(‘@|öÙ?à[o½€÷Þû .\x/þä' pÙ²?㉟àsÏ­Âx@QÔ‘O6^`vŒD"xõÕ7à¬Yó(œë¼öÚ›qîܹX__‹Ñh‚h>DõÀ&€$˜Ó±ÑqŸxb)z._þg—ÎâÅ÷cGÇrüàƒ·ðÍ7_ÀÁƒÁ3!ˆ†¾°”ÀÄ$&&11L§ù^7¿°UhýúG ©©…$×$`Ò–ÍfX¿þ°ÊåôV—U¦œà'¾uËòë "Owá“O²|ϲ]Ö-{àÎ;g« †‘#‡Á‘#Þ9¥I|†GX¿Öi0x Ž~tH¦‰·çºå=z40R©€ºpêyý¶ ‰ ª e… ™عs \vY;¼÷Þ‡ðè£wB*u¾öµ‰4µn'ÆŠÒ½CuË^ÝÕM>îT‘™Í¡]XTÿ§0nÜ7`êÔéðñÇY¢c0YhgW8l¹ªÀtÀã?'΀÷ßÿ<øà">|4´¶^Lãfì3euZ pW¤áèÑÃɤaûö×Iom—^Z[·¾K–üæÌ¹NžLR=ßÖ[9|®© Á_þò"Ñùo¸å–¥Íêu°¢v-˦~æ`öìy0iÒLêû€Ð`úôFسç} .·F étݱœþ:±$щ¹Ø¶÷"óþa|÷Ý×H\‰6Äuë:qÁ‚ÇH|{ì.¬©quɲtâ`ÝÕ¢¸bÅB<ï¼ ØÒòuL&sHRµ¦ËÒ‰J)ê£Mzü]¤ß?†_< çÌùÒ½a,6o¿ýûØÙù]‡¸.÷£¸ºLL’ÄÄÄÅ$UMM½b\tÑuÕUÓÔÉ“•L:êÊ+¯V g«^X­R)PžN\–‰I‡ãäÙÕ¶m›)½¢~ðƒ¹ú3ÊëgÙ&&6‘Ñê¹Ú½»S=øàmЦÑêw¿û/ÕÞþ#5oÞ¿ªûî{†ö^ïT¿ÿýbªÜJN%&¦j’Ä’D3,wE·¶6õõ#H’%0“Ì岨ÓÓÃÒJïH$/*¾ôªHó£Ü1>ýôb]Ý0lk»„Ú´m_ W&‰¹<û+8jTþõ¯oêã¨LC•A àÝY±ÀùçO‚W_}ŽV¡S0lX FŒˆÒêî!Ò“_sŸ¢QøT[0•wåùÄ €_\\p)Ù…CÔf¶b]X×£Y¯:t0ÞxãH$x÷YÎ:+ û÷ï¦ÔI¶è¿Ë:ƒ¶] ˆœÒi€ööZú„6aŒ‡çŸ6lø¸é¦IÄd=pÍ5·ƒãôÖ¯Œ‰÷‡àw^‡C‡öÁ…N¥2Sã@6‹q4H2‘Í„µk€E‹æÂæÍ¯ÁêÕÃܹSqÕU7A&Ó+e+AªÙ­eC*•ƒ±cÏ{îÙ¿üåÕpë­S€1jÔܲ––6 ™êV¾ªë‚®®¿Acã—Iº_àþx Z˜˜3fd ¾/‡h4Á;ψË”I7Á}÷=çžûuú¡rü•ö3‡‰rŠÉ¶m÷ËýÍoN„5k>$“ÌNf.b¶/C„i ì|Z“GàÛß¾‚ì·Wº ÜÓÓ{ÄðÓ¡÷G(!ûóý0kÖ¯h ½âñZøüç©!™tÇ¡Ÿx:S¦Ób)ËvVÊÃð¥/}™$ó8p›8Ë ìÖaT>ö÷8»Ìäßsn>cærHvo>¹4”f­$õ›y íÍÇ™vŠI’œbb“‹¢ä°—GÊùÄQNÑ›IP™íþÏ{¶b“D,`N*ßÄäqæ©kv˜É8d*co#<ôÆæPrëTzŠi`<{ˆgñìÁ€òs.È/Ó¤™f“ò¤úªßÛ–­L+×è]3ü6û„ʿƼg0_?æ>#¡wÊìø#âûÚyyµ9ÊÑá}Åá08<¥4çc 0ö=sXНÇ2ìcKA$âÒ`iÊcÀlÖ2êc‹ºÎí:<Ä*t”'§˜äûl>pà D£1Ë´ËÚx¼>ÄŽéÕ]`ÞQ^Žôòz²YQ´…ì½Ç0>iÜem*5Ä"TVUb¢Ñ8Iç£E‹&§Âáp–˜ Í:÷}X¤#…¡œÇ[ÍöŸ„ùó¿åÓGÓÎãéǨþ»ßýÖáª01 >¿ >üÐæÍo´’4FoA‰ÿa„‰u’¶RDCoÃ댬l›™9«Ãx—HdP΋Ëä ( ºë×X,–FŒû÷AyÐsºªT? ‚`L¯[ôZ7 Ap?‚ŸÕ˃èºæœSUT“ÕiYÖwXùÞ2ÌOÚ”¡FÕPM¶da+éå½DI,’X$q¹ïGâ£Q’X$±Hb2.ýgš$I,’X$±§#ÁiÎÄà4Ö‰E'Xtb’X ÈtZ  ‚01‰‰ILLbb’Ͳ°% [²°%’X$±Hb‘Ä"‰E‹$I,’X$±Hb‘Ä"‰E‹$ŽOœïQs¹œÅ¹ã8œ,/a@²ü\/+’ÐOÅËŠ·S m j§@¿ëÕ)N;x,å”ç—{ÎÏKLXBŸ­û†¥~¦e½?/NÃ*µoÅßCp*ÖBã ¢Wìšy/ß]­ž¸R¹®H‚¤Caw)ÅÛ j»—)ܳ÷ÏC1·0z½¾úWœvðX8/µ<¨‚Ïùe%@§[L=)Ò·à>ä× @?ºçÓÑ=OY4BÅ:×ÙÙ9fïÞ½C©,çÒœ}i(ฬ«X,™LÆw8¦µ]†Â`zÊO<‡t:ͳ ½(æ ­€£3½Žòh Ñ¢zS}…óRÊ}’|Ë4R©pä€BÏiý- .»á÷‘L&}ÁàÏ9ø³(âĸȧ‘NŸ¢¦åqP6r0§º»“ýæ(ñ…à ÆåiÙ#Gžu´±±qWPÚ*ã/¢‡sóæÍ»ëå—_ž1vìØ,1LìÓ …Bjûöíín{ADbd ab¿Œ¿4[¶l¦¦&¬««S46$abÍM)¼ýöÛØÜÜ 555ÌÈ\ÇûåÜ&lÛ¶ Ï9çˆF£ŠU‚&¦Œ™KñÐŽ; ¥¥…ß xÍabï]`*•¤p¢ïCcãW4ßQæ\Ö2SrØ·o—jnþªI—µ:ñcGÔÁƒ{ ¹¹•ýDwY‰D²»CmmãžÞ°aÃVk NÙÞ.ùWéÒ¥ÐÞÞ®ˆÁ¿ØLì–ûy±éOå9FÍ„  ££&OžÌRŒ™Ng$‰ &,kmm…eË–Q Ú ™‰™®Þ®žçÓÖëŽÝû†¶¶6xä‘G(\幞¤ ¶ ê´Ê)?~ü¸KãÉ'Ÿ„††fbf‚Àçü²™˜Ám©ýû÷ÃøñãaãÆ0dÈ|õ#°où￯ï‚Gvíú&Mº‚ÞÇK0hPĨ@(ôôñ¡á@9õ¾ƒžÕÛ,HOÿÁ®«³1/½‹%ª’m—z™î“ Xgb÷Z§A0©3 ŸžîAЄN¬×ó# è4LéÄ<¿}†)Øg0?ò~þgeB'öixãà0¢ŽNˈN¬”+¸m¢£8\©þ^ŒèÄÜ^w· ™ ·ëÒ Ôû¾MèĹœCmÚÿOܵgUá]Ô‚$¤ˆ-" TZ‚€È  ADp)1ÌðÆ€y•áFPQ$<#  L *#ÐÑÔ(£ ¨mQ¢¢`…J„$,&ÐÓow²3—Äärïý§93gν7Ξ³çõí·{ÿýñ°Ïó»˜lP« @ÝOìïk”[?quñi†ñAšŒ¨¾J__!rt?±¿ŒØÿ š&¿’B‡ý}âèï3³Ù¶ê–xýõ×éùçŸ'0ÎUí]-ƒ&k¨Ù.pE©]ƒ_e˜5™,,,°š'éå—_¦õëטycU­¡õäµÑÁd«žrrr” Fý|”#±´?BZY?b1î;vìP²pãÆ’µ?«W¯¦cÇŽÙ¸DžW˜ø ÎÑo¼J/½´‘ àY1;Ý Â¨Êlsü mßžƒ1Ȧ­[7Rnîzä ’q¿vî܆ÏTspÙ8ÊúÇ‚…7¡>ü!½øâzíKiéYJLŒ÷p¡Rt8mP“’± n ôÔZ±b}ÿý÷rê«Ì-[¶è©lŸ’ÌEh«ã1mÚ´˜ÿ¤Hqq±œìÚflªz}úôi}ŽÜGÈñp8¹âht‚fÏHðõI|”W„y66o^Lû÷¿¼ °KÒ¦2®¨Dœº_âd,Æ©[LyygðÎcŒ Œ’H©©sàf»§qàñ0oê!zá…LÌ­Ý”‘±žví*ÎŽ¢Oé‰'Æ`N£}EŸëæëyl²íÞ½›>ûì3ZµjuêÔI££žzê)ºù曥Œ4 ^ÄŒ3¨_¿~ôÖ[oé=ˆ§XNLÀµ—´ÌÊÊ?,àN"áÔ$œ0à<:uêTd8š››«~äG}”x¢A.K–,¿ôj ð®˜À\ƒ‹.\ œðê[¶…%yM£¯¿þZK Ý,¨C7Ö>Á$‰Ð~‘£“Ÿ^{mµ, LömÔ¦MkjÖ¬1=òÈãtï½c±Ë*á4‡Ö ø{RRÒuhwC¹Æx\KÙÙaŒz`O„o^7øP°A'ê~*(È£[nù=¥¥GÇ5¤i‹9•©Б#0öÚg ™¢[òZvëÖMKØ­ZbÁI4–Œ3²#±ÅÌZº~øÁaøŒLóI¾2ìïMš4q€ÑRjÝÖ¤¤$o¿B[•,nܸqîÉ'Ÿ¼¬=à$RÊ5mÚ4&Ä67Õà­Ã†ê¬cz4¹¡ˆ-/Éóé§Ÿ©å€"lc÷ñÇ‹Œª„f b ÕkØ\AÁN×½û]ˆºjꊊÊUBèj·|ù&Ì­îüy °P½"¶ YÚ&ºú¯d迺Šs»vípï½·ËÍš•-mðôÛ%¶* ErÉÉ¿r'OwgÏþ¨Ä’+,<*õâ¾äk¡‰­ø¨°MÒÑ£Gu'NNN6ˆ­e‡´Ä"¦n¸!ìñ:Á±Sz¡yÌ ¤˜?¾a(¢@츒5½{÷&ØÊ‹ÃôAe 2Ä®•œÃé®Pº}ûöj‚˜þ˜9‘‚¬0¨B¡;L¹ÖŽ˜Äˆ§W’±G„Õ€¢ð ¡ÇÇN°óçËÑîo¨[·þôøãóA—HÕ³†ºv½S¡´‘§Á#;O¿èá*•™•5FŽÌܽ‰Îœ©Taº (d. ‚\‹ˆÄþ4uêèî»GbÌ¿²{Ž~øOÔ¹s/ÂzÚ×é·]¢óç%–×Y¢Ӳ¼¼<ŠS¢ËÙæFÛub¢:xXº¡bÇzeXZ¿ÁÚ¹sç*\‡Í­‹»uëÖ¶I„fs±€uáŽ;–V®\I-Z´ñù9½EÚTÁHŒ8ì½´~ -å ²³³Å¬ ɃXtó(’[ØÁÙ°siܸ%€ ÏH"š>ý.°û±É »«úŠßµ°œhÛ¶,ô¥0z`4Ù²~Ö,*hÞüFíáM)€n¦Ò+¯<#¬76îÛ¯m~×!;-ÏÑYÁ»ÆŠ 0¸Òà/óêSo`ÆP+û 2ˆkÍiii|ß}÷é}›6m„EôcÛ}ûŠúµIï¿ÿ>ãcg¼téRͨ߂?±Ó^½¤¦¦òý÷ßÏ“'OÖ{,ìªz3½f§±¹éspŒÓ˜A226pnÞ¼9cñ26 †«Iåà³!ƒ=ô%®¨(ç† ¯ç-[ Ÿ v7ƒ³³ó5h"'g)ê÷Ô¶DÄ“ú\Rrss—ñ AcùúëBöE¯~²Ó6ŒLœ‘1Þ›wÁ~ïçÝ»Kyûö“|Ï=©4w3g®Â߸íÛWCÙzú¿{x!ì“® I /c“á/$ 6a"ylå:Hþ0Tá3NF‚ßVa.®…E¶—4[ŠwµN[zöXá5’°Ózq<”!†¯¶×ÝÔ³gO-±)©Œ””êÛ·¯Úúa’±Þ€ÏêÛ·oaRj»M?ØÌ•¬—þ†öz$$Ô§–-—UÆFídȈGI„WÁ^7À}4ÓÊ9ƒ½D{ölÞ ¯«Þ‚q‰Ñ­nf’w¦+MË$\‹iYý‰ûïZô±šÎQÝÀi/<äÔ6˜–8ÅXÞ{ݹs§@R…8Éb×\VG†Ó^xºvíZÆd\ 'ëå™3g¤´`ŒPpSô A06làÒÒRÑ“>;xð f,8­“?p°‡™4Íš5Óq“¯¶~ûí|NN¾ c¹{øË/?á¾}GÆ;§2BÂiBÛãùôé³Ðÿ~¾ýö"ׂT¢Ài趃 bø¸91±¿úêZ@öŸ¸iÓk¸I“8Þ·ïϘWÿæ;î„ÏêxÖ œff…™øÂ·`Á·uëV……t°)W7oÞ<…Ìc8m°=:œ6÷6‡…ëàV!î&5äý]f˜\?y5µYÝK˜ø¶£ê©OŸ>~\­Àt%e 8íÕ ¬e¯kLÇÊÛ~”á´Õ±nÝ:ÕGË–-¦ƒ¥–÷Â"ÜÜœ9s¼fAS=@[rC†LÂ<êí¦M»ÓÝÇ¥¥IÝ\»v·Á8Ø®Ãi3A€ÜG½+ðfT_èJÛçMá´=//¿ˆù“è¦O_í>ÿü{à.=}°6,Å!j k¥§{ðÁI®¬ŒÌUNG'¶ŒˆÉÌÌdÄç2^$g°£|ø01‚ÆeeeŒNOb˜¦«ÀÄ–!ÊjD×gmÛ¶Õö°µÅØòí\nJø!œSûaH n39© µ„ »Ôÿ‡MÌO?Ç£F-b|Sš"Äó„ƾ͈¶ºqa‰­JòŒ@ÊÝÄ=¶zêÄ€íl)<±Åª+ø²TS1§>äîÝðɓǀÀ8=}%geý× „Ô²ñ uÇǦ4;桇¢áÇ{m@É>/–¥vبQ£ìqÌ‚úAù~)@Øä}!¾]»vêšÁ³ue)ú’P—“¥ôCÇLÂRk뇹Ê1wœ¸Ì`ã/¤)S’>/+W`4Vx9ôã·ˆ<ë[Uýºdë&z²ö^B”V 8‰Á3}7VLú N{aœAk ®<3g,_LØiƒV?dÙ}dvÚ ¢õ¥e“er|Smºbfk¿½âXUWá"¶üõå½±eõaâï‡?œ69]‘+.®pçÎ]Ò\R"òªÉ§!¢’Y—zeÜå^žG†ÓÖd5×à‘¸¤ýÀÉ SA®/ïQÝDlÕô58µ|;Gô“ÅJ@ï󨧗±ÐNâÈí¯ª«»qt}EL†€¼2¬í>ý3¯LWlÏc¬+ö;’^ü¿ñ¥dؽ´=†ã€ü¿öÎfʼn ˆã=“6¿–d/>O`Á—ñ òÞ}]DðâA {–= ñäGÝUgôÿ»`˜ŽéÆ®:PôÒ$õ«éÞ¤šîꪘ1²dÖ–áCf'×XÑþÜ 9Ì9V¢Ó1ZrØ* 盬ߙôS†cer1 ¿K?bbŠLçõZ´êB½L˾œ ¶ð´ÂÈ)Y˜y†\ Ñ)œ¬ŒéÔ¶ó¹m‹bUGåíÑ9ôÓî1ÑAzW ÝŽ­¨Dy–Ù-æ°Y¼ÔòNSxˆÁôØÉ¦7àn-õ¨æ†Í}¬/Ï1Ñ2bŠ»jy§åcˆÆª˜ê‘j ä >µ¼Ó|ŽÍf³áù»Á®?÷TóNóVž fháULΉZÞi6³YƒÝìµcœk%(D'ï4‘Msìׯqá#"¢ÎÀíTóNÓ^›\\¼Â‘ä{szúg—àWjy§ÿf5¹mÎÏŸ²o²#QžWÆe¸ô¬á¹:Ü็4,w˜ð€Z³9|+¤óEt$‰}Æu0~@Zí #Ƥ]i_bŸi07W@wÚ FŒK÷cªYB5dVUdK†^at]ÏøNS…¡X‚Œ SÇ—Zô*@ i‘÷ýÖryòrµZÝwÁ3^~uF…êãPö[‹©Ôb*µ˜J-¦¡ÎmýaO,—’´VË÷y»ü- O,sýc^¥ä‰‡:0ôk1mgP­’'6»éž8®lÝ´Öwˆ­‡ÃáÑhôÝ£¨()GýX9…í‹DB¢b½^ît:ƒ~¿/n·^ /¹nÐÆãM&q<?´Z-½™7Ì| Ë1àxìÜqßP{ÜÕ‡ÃáãétÌçó\{x÷ªëçÀÍ)–Ë¥Øl6?Çã1¾SÀ³O1Ùëõzýw·Û5½^Ï!«â$i4p/>Æ¥‘Òí­Ýn£öw誗$³ßïk»Ýîמ¿nr³°³óù¬áƘLkÊv»,*Ë·ï‰C~ywÇõz•ä–·ïúºyÔâr¹ ö¯žLØ+ÙÙ÷Ü{ßÍÉwÖ[kíUñ›T7î»ï¾£ hö°ÀÚ'>HÜ ÔCc‘[‹àj¨n$B5e¤,öy‹žƒ^( ÿöˆ:È5YA{;¤ãSwò5--[ú¬ƒä´o +öÄ–{’N£¸æûn‘kŽD#‹F‘Äš¤P5”$ Pa¿qãF×½{wâOìMR”"é¢&ËÛ^@¼G9Ûh‘_qžgÏž~Ûm·õÇ{¬_¶lOHž:µƒä´o «,ö$b Fð/¾ø¢8p a¿Ï>ûø;ï¼SØó»¥°o)ËÅÒ•çœsŽ›1c†6l˜»øâ‹Ý›o¾éŽ9æ÷é§Ÿrudi’$ŒY“¯¾ú*q7 >yòd·Ë.»˜[¾'>›ØG°Ihsà&$F¸ë®»Â¬Y³ÎÝÌ–,YÖ¬Y ]¨'eŸD²I’M"[„ûyçöØcÃ|Ú´i¾­I.ºè¢°aÃ>£R6IKYW.xøá‡ízìØ±ÆÝßÿ=}ç{7þ|êIêÌ$I"»Ñ)%>úè#·téRGg î ûlܸqö-Z$»¥žT«/^ì¶Þzk·Ã;ðÆÉvSƒ â9\*'"“$Ò?(„Øî·ß~¼¦Ñj×°Kôl$êe¨·óÎ;»Í6Û,ë1ÝHúúë¯37“}ùå—†k¯^½äÓ²}ÇwÔ³áV;“(z›wØè†uÏi–H˜æ±éšFkiì[bÜ(Uͺuë̺Î2ËÚµk¹™Ô÷ãRJÚrË-%QÚ`¼~ýzÛ·Új«z%‰Œ¡¾}ûò&íÆZc<Ž„Àm±dqwJ$ɽçž{ÚõòåËù<³gðÙgŸ9Ò¨ï×ãLÑqFgÚóÏ?ïìÑ£‡'½ð þÈ#ôàv¨":Ó’3 êÄœ˜ûï¿¿‡´ð ,0çÙ[laÏà‘G!W}¿«Ø—ó“ÈÿGN€uàÀ >ø`À±+œp ê†~ë#Æn’ŸDñ¤r„©S§ä„Ð_bûu×]n¼ñÆpÖYg…ÝvÛ-@²óYÕ»Ñù7ê{ì1wÆg¸1cÆ8Ã=ô;ì°Ã–¶ïF£d¸Ê›J7“¶ÃÍ™3Ç‘è7¹å–[¿)ã‚(Ç$ õ“QöÞ{oºâÍùá‡ܾûîë6ß|sø\|J”µón¸áwÉ%—¸O>ùÄ\»îºk> >›$„ @“½†Ú±@„vu¡É&É­XØ_b _‰‡ÓƒAx­Ïµ×c“ÈÖÈæ1àæ¨+i«H&›¤`•Ä^;±&îÄ_Øóý(Øw+HÝÓâ¹Õ´Òž’C)sùÜ×¢ë,7oòé‹Y,„Uvo†£ž™ð/ø;‘ÏcŸÃâÿ¨«@"ïj¤nE•{¶ƒ˜åDŽÂÞÙÿ$QÑt“¢ D£_ØwV½–Á«è|טD"?Öã‚ .pÈáI%Z™göõŠ+ì$$JäÎø ãêž‚b0±ênÄ ôÌŽ=ÚPÓâ,í\é”AnH@l&ð‡ J*ì}í ˜$è:[R'sNÚO›rq–0€úÏ~ýúÑ9Æ×’*mpåñæuþ™äJ*(,I y' ±×릆«J5°ÿÔ¿?xðàBõØH*¾Þf›mì WíF|?!Ã2Ä·g¸à[h¸Â·åQ Ud¸6—$ªïñ pšŽWUH©±7'IâAÞÂ>¶$¡º p|ò³.I1´Œ Û @ôÚ³¶ ÿ>g“ø\q?O’D;(ó:‹½]gqlÒ‘Áë0 ïhÏgÉÙYù¸a·CÝdH‰ªÇ> þÝbÜ`†›¹˜×ª„˜¨Œ’¨XíqQ0]tûí·æVh© éŠÕÛÜ}÷ÝNº¯zJj ¤wV)Ĥ–X ¢°õ}÷ÝçÞ~ûmžñ+ÎO$|ålûàƒÜUW]¥ƒ€¤KíL"ƒ‰uÌÐfN‰Œ¢ŠUM"¥‰¢Ä“)¢–Fºzõjæçm’ú% éÄOt7Ýt“»ÿþûU4^1ƒ$R2ª÷Üe—]fErC‡e®qLìãu@ž«vÚiÕg¡%Ò)†Lb‹ôì³Ïº·ÞzËE øýI 9Ìá.Vj(¦”O{õ"AG$ßá 0OLìãdË;çèèa–¶-¹ï‹)e¦EÀ^™ðž¯ãbŸòIU¯nŠÓêÊŠ¼¤nâQ­'Šãjئ럇R5Ÿ\\ xGàXz1›™Í°? )]'›¤`ÅÂ^8ûí·kòï×›-/ÒiÆ“uÙÙk¯½”EŸÔMÁŠ…½ð‡Ÿ$üñù÷ËeËÇV7¬æ{î¹çÚtãùù(õz4iRÖ%4Ò;"©Hd6~P)%’ôQÃø±›*ÝŵQ*ý¬> œÏ’*Áá%&7%ò Nãûö¡[K½ÒèH?¬µ‹|£ÔH‘,ñ”¾¨ÝH¹©ÂžÞÔÓö%Iì‹_±Ë0óè£ëЕ+W:tGÊ}’Ý,»¿òÊ+,ÎŠŠ½˜…‰Jìkræ™g–.Îúqâĉù"Ñ‹³TÆxÊ)§PRåÒúSIðÞxðÁ‡;î¸Ãµv+ŠUR¡¡aîܹ¸ÒÅY}/ÐV©Šâ,•3R¬æl’d““ÀÂ54Ï«¬8‹#0Æ­”MÂ6 o¸›$Ù$°ˆOU6‰2»¤n²KIDZ 4‘@${ÙÀÂùëÜßiOê¦-öÄL{GQÈ:ÕòϪÑ3È ¬*P7K*șʚ×R c1§&ŠÔ•[}ý³Ý ãgÅžÜôùçŸ;BÌœ·¡|…Ye”†L³(‹§kã2«ÊëMhìßÿ}È!‡xtþ³ÉM¬†G_Q‚d~Lj˜*&g WøQ›7o^½C‘do€[Ù`– ~yLfÁ¸í‡zhÁÌ•D1°Ç˜zë¾}ÜqÇij™M*;è ƒÌýøã%ê1\•PD·ý¥—^ª1£Mðéž{îaÉ¡u‹–O$.¥S 2ÙsŽä˜4æ@›+> p,>Ð-‚u­T¬ÇZWŸ{î¹îµ×^cyÎ\!—ÇŸœ˜„*‡§Èìüeö”'þTû yè³ú†"iô(‰žYŽ}…uíÞxã ÷øã»Q£FU<@:5®‘7–…ã8ÝAÌ.Y¸paö”Rc8Ùøx0‰G;Oÿá‡ú“O>Yýå=)þ8…?ÀP-ªÝ¿÷Þ{'õŸÍ¨¯§‚OÜÌ*ö£>Úâ`V¸SQ²äb1)©yY9ÊG`ë*ðôÓOsZWJpa_›ÇU½@Gs¬+™…Ì!iÓ=«¥t¦‡RØdäÈ‘ÙÈz^5ÕSæ©lsÖ`RÀ18`ä—V8à€èdÓDòHδäL–œ&N>€±ÐĆÌ wHî|_]êé* üHœÑ=<¬=2ÒEJ¤ X>2örÓK u­‚O9’¼Ï¯¾úÊ#ÚHï©z¢5úaUâiϾ_4€€N7½A¶|šÁ‡Rb€}KÑ‚<Þy¬¹7H„öÈf#ö]eÒCì~ùå—3‘…7šK¨mH¡àóÐàšù&,ÎÊ%ã¦Dhg!HxzöÁ¶àµŠ³Â_|ÆŽ[\wÓ‘÷ãìÙ³M¤Û½’’ŠáÇ[DJD »JFÒ=°]RA&±©äTå5n·Ýv GWYÎØD:$›Mˆ}¨j¢'Ó8 MÊÙ$X´Em¬Ì&Áo7ž œlEz±m“0JŒ½½¹ÀQгò‘I¾_CqV*Îö*0›g:VœU6§K¢¤!ÇseË(´GŽÝ¤Ø ©Õ4 öŸ×|_Ø—‰›Å-ÎB[ºt)¯­!>ê@Èg%’ªÖNâ¼fÈ£æÉ¡È\ß+Ÿ™«ö /UcaРA…A7PœU¢N©e±W- rŠÃá‡n©¨P`{T>«½iUCõu„ƒ‹ƒÇŒãÀù îõ×_·áH(ÎbM¿£<ØDñ½Õ6:)‹îpï¼óŽ%B£zÏ1‚¸×[æ)ËøöÛo7ûã‰'žðGu”GÃYï½÷Z¹!гL7‚Q"Ú$É&QyíªU«ü¢E‹<þ!ý©§žêÑÉ?ÞO:ÕC’x”[¨Ô³žWéĺéÓ§ó:ŸÞXaô7‘ZZ! š9ƼÎúž”¦Qï” Ú"$pp˜6mšé?pvÀhó0eʶYâûØ$É&t0¼1{/Àkjöàºuë†dÒ>´:lä¼Ò>¡íÂïד¾H5"gQØhêS%ýèÑ£=Üù)}1·b`Olqª´kÔÿzôX#î¦bÀ<ÜK»Zb…%Þn»í6·xñbwíµ×:tp$ü¼ ¡J¢² _tÝkâ’%KÜSO=eÙò°Ù³DnŠúŽÀò JüõéÓ' H+ 6ØZ\sÍ5œGÕGÝ$u#ÌóU Œ±…~ýúY§Lt8u†—_~Ùž ˜¤^uÃlùóÏ?ß“(ú`‹P Úé‘LF0#fË'u#O<1b×£l…êÞpFGÜ3©âa§hîM=Ml BŒ‹‘ Â^£á›o¾±×(вÜÔ¦Zº ð»äöˆ’$9Ó¸h°.[¶ÌjŸpÒ1¬¡úã>j˜÷ïߟß+c¸Æ9Ïœ9“:-&¬äÍj>¬»ÀÕW_]Q¦|r¢ÑÎ;âˆ#Ø^‚ÎL:Ϭ`’¸óš}JÔl¨gšœ4¨3‡ªÆ=ŒWß»woÿÒK/yèGŠ:žJˆ¼¤nЦ<þ9=\s°]yå•tdƯV¾îF=xð`¶`Ò)&Û&2;8°ËíÀŒÌñüé#øÐ5Ú]ýõ\Í2—’ä-1,lê;Üœé@0„®•ÛUgš˜¬¥ÕsHI6I{YHNÜx?Ö:òUM~•e&.ïlwŸÝ)9ˆ™¿ÅÀÕÑøS%±–Ä•ïJŸGiöû_ö®8ªòúgï.,!‰yh°…J¥ˆ’Rëc´U)Zj;BZ#¥Ž”Çú B[‚¢¶‹ò(Ò@ÁHê ›©ãüäj­“S‘¶ŽÓ­6<!bDI ÙÝ=ý¯÷rwîìì&—[æJö¾ùî‹»çË~{^ßù“¶9~½i£®ˆ(ù~ÆH0«[kqȱ,œŠû±ïoii)Á†ÕEà,†–’¥bL˜\ŒNEdšµçy嬴û>ÎÍùý¸®œåŬ•_s¦•\¤4 BgkLÁ%8Õ¹©ÔZ9Mb¸$é>¯‡Œ‹z/p*ZúN˜x1ŽÕ)hI8"O+g~2ÁYÞU©°9 …Bˆ™]ǸšdÌ £Ô…‰D 37—ç¬)p`¿,ľãn¬À[4±³ÿ½aÆ÷¤í¸°zBKS‰ÍS°Mv ÏØªw§Ð§uuu_Ÿ2eÊá1 ›P‹(ô,’¦¦¦eee›zá?ˆAda ÎA[~ÕU×¼–€ %ÐHy¶L”x4ã]]ÆàÁô‚~Æ‘ÇP“à€úúwÔ”)3€yŠ9˜µ“987;ŽÌ\ÞB’æ}¨œõw:‰è̬–.]:§óòË-8+-XkذaPjm¶¹+àÁ½ÄyL¾ 8çÞGÔÛµæZ# -vV,"˜…íÇŽ0xp>-^¼5$á”==¢¦hqêóSÍ#­h ‡ÆîÝ»?^Ž'3=º‡)¯z¢cǎǦé&:t(.é8 ô¢HDP­\¹±É{z½HÒ}©§,×ö{öÉÂDtÕêU«VÝ‹·[‘‹­P¡á‹þ¤/€U‡E—"RŒ.#Iwþüäšuœ|.c(«&Ùt*ÊÈ^|["ߢ…|0õv>“úY"»»Œ§à½ÕþÝhàÎh6 gĈ<‡« ÀÎAøÁÅЉ ùB2Y7–nbI¿ä®TJk‡Ìcç9¥á$Ž÷*JZ(^³¬Ï±F­6})èO9;çà œåÂKç©Ù§Å‹µXyõ!ÄϽà&ù–Y›çœ'u• TmÇ`ÐÔNÒ‚âuw8=g9iM7‹“™(†tàqà,uçb'ZAAA;ιO4ô©)Í|-n“—"Ãsêu;•à,g³Ar ³6@¹¹Ž½2"ÓüÔR.G^0Ïu"Û–a(íõƵªµõSëûŸ™üi0‘%à€ª«ÛÚ½Ñ~ÑsöÿU³æçKŽö? Üá;(Ѳ  j-zü¾@Ì1¡Æ¢E7¢öÍ0qõÂñ&ZþôívËŒDŒ#`'ˆhÿ=üè£Ó™(À†:q¿wÍ{_fÚÕ‰°‚‚¯[÷G"õ@PÇ5íî|ÙÆ,HDá¬x \wÞXÓÒŠ)ÿC†t%U„ „ "_W55©#.DR 6™“'-Р •½X,N……AZ¶lE£4gN1'L8‚~Î‡Š«¥¨Æ b…ÚÚŽÒÂ…“é®»–Ó¸q× ÖUr¡9hw§¸öoqCD›F<qc%/[¶1¢a3/ˆ hRÊoâFYi7!& ¾ÿþï¨5…1oHë“dt‚ÌådÄMÿæ$l ‡ :xð-X0‰n»m1•–~‘ÚÛ™õdâÂQäØâ(¾2±À‘;>DÏr¤VA7>Co—Ñ#®ÅL¤¢ÿœiBS4ªéBÝ¢»EÏ¥££§7µL²M”ë–'=†BŒëF~þù5ü쳕Œp@Œ«õØÐAÌ«Ž%õ¡[>ÁÁ c·÷ ¿ðÂZ¡×ìšv®©yŠ{zŽ‹«>ãêž“°D” ŒZþOhåÊ{°cz≙gé1y Ü„ˆ9á;N"1¸á0Ñ»ï¾I+VÜEH€>tW豪jœpQ":©|Yp–aȆX;v„gÏ^ͯ¿~˜_~ù oÚtˆkk;xâÄé¸ÏæCN¢@#[Ñ^F\+²BÌ[¶´òæÍ‡1¶“ì…G8\PëÙx·n{°k¤ãÚ¯X£G_ª†-ÔSé€è®.§{›}h¹)ÕØøOUXx6Šc–ˆÿC÷hTÁ‘(÷í2x.éÏ"øÞÜÜ`îú’zúéjU]½)Aë•Tg!b_.ÛaHðš~ †¿u÷þ†ÈùåêÅŸE ôDÓË9©2Yë†Yë$ôÑG{œ•6®¦%KnG¬èOQÜé zðÁiûÝ"ý}©“€;©NèSÚ±c+͘q9=ùä<ÄìþõøFQmm åäèúÌ'W¥¢?‹kìèhUˆVsçV©ÚÚÃ(*Ô¬n¾y¾Ú¶m  ˲Iðý†€HìQ‰ˆßÜ ú¨§žú«Ì…!~¨öîÝ-¹Ý´ç¹- ©° 9–‚ `2F¸¬ì‡š0Jì>÷ÜÑPb×H0±$ö“âjÖûe(¬a^»v¯X±G*¹Œk¼Xg8ê舉š*™Q%äB=7€´0rVܸó#¸æ‘Gf©­[_RðRâ\oɱ„Õ³9…Pê0fò1!È<À<ëQnw¦:zô}Aç®!†ŽÊ,!v†bt(+n„çåyçÎ?ñ’%?FÎ~>óÌ踮î-\ßÎ×]7 H¾UqÃGâFº’ ðTòúõ‹p¬ *±X»Ï=·Xß?~ŠFúyP9«¿5;K¡`üÁܯrŽºóΉjúô¯©ŠŠ+À¾\ÝqÇ/ð+MXÛô¾Â uvÆTié8”¡_¨6n\­&O‰BÒ“Õ¤IçBù^ ÚC@ÑEà* 7•³²&03›PI¦Ñ£Kiýú¿ÓÔ©?§¶¶#D¤ŠŠßÀµýgÊÍ-$6ÚÜdö‹NbÓX@9£RÖF:ÿüqÐAö£’Ù•¨ ¼ &ñ<˜ÈqO’Øü§½+h‰ˆÂykÛ‚¬IO‚—+({ݽ‰ eñЫgO=õW,=o…–V¨-Ûƒþ=‰‚BéÍÓ.í‹UZ5“ç›1Í®Xv ‹ÉÀ0Y2ɾ™ÌLø†ïË—[tÃ:ši8=ý„Aƒ–é]Zº·pyù%I/.Œ8›¯%t“¯ÁH=žÂiáêê>6Ÿ°Z]ij3ËVæY ÞP;?W@zZƒNN6âØœ“_|1tƒ\ ¦›˜OO#*#S”Ù ëÁW¸t#²3)ÒŒ¼ )H1YŠÖx‹Ø f%ö/¦QNq\QtvŠÙ5h—’Q€R%sïäZÛÌ4d2?t7§~ñ³‹Yj\9®J„'cÇTü÷™-ÏôVAàÆÌ–>–¿o`Ë#e q–*—Cmû¢Ä,¶Á–çc½£ªÂPßßEÁ–Ç4[>º-ÒÉsÂÐQD%(p]è×Ç÷v%1(u»?ÃwnNÙcË'â,÷ððÈéõzƒš™6V¸†çè|w×Ö¾¸$ÎÒ±[cË#ÆZœåíímŒ.?JêAnÄYÜ1zÖëÏ>¶Ûëa§1"‚eñWŒ»KKõG­ùÝh»]ÎÌÌvjµ§Ÿ··ßGˆÝÁ^‹ššrüùùÅdbŹ‘T°Á’ïû—Íæ›•Œ‡$ì‰W©T¾µZ__d´ÍÏniùPð‰ÍæÓ Ül¼nþE˜¸g96L‘düÚJÄdíu#Ï%ÎíØ§Íù€Àüð,’Ì,è´Ë]*s³wýJ¸a °¸Gö–(ùÀƒã±!ótÎ&T×–Ìóþ· BÉ[¾HEº—„†62¥‰IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/modelview-begin-insert-columns.png0000644000076500000240000003421412536324471025500 0ustar philstaff00000000000000‰PNG  IHDRñ‰ýºÞ¥8SIDATx^ìY?KcAß}y†xñØ„€‚ V^yÅaayr ˜û©´ˆÍՊ׉V"Xˆ ÜuW$X¤ô+ˆXv0ÑœzÉÛ›¼½•Ûì¾Û'o dwÞüùíìÌÎ&OFQ$¤”‚#¥5sCúøø¶ä»FÖÍ3¶x|†gã³dzàîeË…÷md-Ÿ Ÿ‰‡[OóX2únÌvœùXð15Ä^&ßxlö˜Ï5C..] ?³—Ïòˆÿ‘RJ)¥—RÄ)¥”R¨Û5GsÏm~»ϯ/·.ÎÃcbÄñy<6'[Ÿ—åæIír1à}ðX¹q’Üõ”?ÉãânÏ ²Ü³Ç2ÿfÛ¶åÏ÷‰²IÇ ôÆ>9ŸÇà˜˜yýSqóxßœ—ô›8¥”R ¹Ý:NEQ@cEžŒe”Õ%b!ý­yn÷ÆŽ‘uóþfËö§y6¾?ezáîeË…óíZ ¾>·žyΑÑwc¶ãÌÇ‚©!~¬ø3ùÆ`³ÆL®q9§ç2“ÉDôù «ÛíJú¡†aA *T[5¾¶100é9äHFÁ¦ëºÜßþÌkCé+¦ôSúŠIYkq¬Ë~nü?ë5”ýžØ‘A¨ÃÃÃÕjõM†íøôðÞ‰‡‡‡ÅÝÝxxx€Ool½žÑÑQq{{‹S¯/¢´I>Ƙí¥k—˜ŽŒŒÈV«%hßúÒ‰ìGìÃg'Ow+144$šÍ¦NH¯CÊW‘ÏçÕõõu_:1T¨cªÁÁA¬C SRÌr¥Rétaaá”rùU6›m×jµ×{{{o)ÿ~e'&&kkk_ãâýyqqQÜØØx®;ñúúú—b±Ø ixss\]]5'''¿»Lè‰+4Q÷èèè)”æçç;2C<ElN ‚ÚÙÙsssbvvV¶Ûmèx½N#1·¶¶Äâ⢜™™Qt`Hð|1Ä4Þíím¹´´$ÆÇÇq y½N#ñø(—ËbllLÑ/E 5J|Õh4Äîî®X^^Fà@‚o×iJlyyy)ö÷÷E¥RA±!נ⥈1Íårâüü\¨ÕÕUkÐõRÄÀ gggêøøX¬¬¬àF«h$ö¦t~¡yLOO#–êþþ^ øù¬—;SSSêq]QŒ>ÅÏ;õz=ÜÜÜüvrrò.®ÉÈô‹»+Õª¸Â3¢µ¥mj ¦S,ÔŠa±ìîU jb°Ra³AmÀÆ€±MY ¥hZ·k¥@-Ö°„MZh5¬Z’²XÜššn¶ÿßôûNî—Lnþûþw—ÿA;Édþ;÷Þ9sÎ,çœïÌ}ÄÙ©8³Ž“†½Ã®²ô¹çžcÛ:uª†²…ÏÕÒYõ*U—Êz¿“×µ›nº©¶qãF>kué6ãv³²èeÔÕ TÛµk—Ñ#ø™t™ÑVïÖ&óW\Ѳÿ~£ ê~&/9ëkÐ\µ>}ú´œ8qÂh‚Fæ{*dÑU[µwÞy‡4j~ø!iŠ¿L9§ùËž Fîßzë­–~ýúµ`R‹~ÃqPÙˆ†Æv÷îÝ- 0ÄGV?óÎ5ÑØ¹sgíºë®«%ã­vNsA·"±äµè«ä=ÝgÝ×3­XkéÔúõëÃ7Þ¸uç€NzÍ6F§A¤^6­ÎWžÙ.Ú·ë&ÒHÿnFn*!„4OÍ“øè0˜_Í¢¡ö›9o™E¯òy ç#8P{â™ó°ð:%%ÇÒ’ ¶ÁzÉEF…åìÔ8N×Ñ”KÌ-Ëm7^¦‹ÚÕïzæ4­˜Íßz&¨ýÎq2L`U‹†Ý#¤—jWäô^š¸/i¶õÃúŸÐHË5ÝñÀóXw—´­¾óZBú½4?À=f¯±æ½˜FülŠFº-ñ§û*ãw½d£±ÖûõÞ‘¬²Æ#*¥tb>Ø>³ÚPŠåâ#ôŒhÕ“™Jшyòj-ºM‹«AhSõ¤ÏßÍ4Ø%“ÔPI›)¡²Ý˜ýŽŸ-ÝÑàuLC¼U™D—íW”â1¨—«¦Óæ¼*™ÄCf>SIŠìú믧o¿2©óuŸ¥ 2rzÒ†z)‰uŲŽ€X r§{z7ã}ÝWÙ0‘ixïãöKшûʾ“ñÁ’÷Ú‘ÒÀd´RíŠFSló]•Ê’xBâ¸èº1¸Ì–û®ñVNÓ)BCïj^¥Ç£=|(çá4˜ãº­ìñ¨:‰îùçŸOó£hCI¯ÓòšX Qíà w#FŒ ÊìfΜés÷(µsÆ&µ ýsÒš6mš{þùçÙ¾ÕWÁÛØbHöµ×^ëú÷ïïÆçÞxã £)>Š$i`¶sòäI7cÆ “À0“Àª4J4>yúàƒÀCwàÀG%m?Þ r—_~¹eI¡·yófK%ó Éä5kÖ,½Ô¼ÒX3ȨÈe—]Æ¶É ÇœÙÆeÔ¨QŒÈÿÿýŠIó‘Gq·Ýv›{÷Ýwba¶–¢À59 O~f ð»Û·oŸ…A,#àØÇàA¸¨È×Å_ìÖ¬YãÈ’|pb–^ÀW_}µ{üñÇÝE]ä:wîl²ºòÊ+ÝÑ£G+]È’ 7 Ä+‹¯Ì%ฮZµÊÆ£oß¾ “X(¥wïÞ.›´€ï¾ûn7vìX3£»wïî-Zän¹å..ùš¥6Ö^½z¹K/½Ô]rÉ%,ɇmH¯¿þº{ûí·*oV—w½Î‰ÜÒj±‚êŒû1æÇ!Óȯ¼òŠíü\k±¦!òä“OºáÇ»k®¹F K%Â’?ŠPšÛ²e‹{á…Âäƒ Ë6¥{Â,B3ñ¸ÙQë2ÆèVsÛ¶mã³Íï©§ž’¬JoLä‰}}ì±ÇÜÊ•+ÕneøÁ{ï½g 顇2¹1^JËèÅ_ä&¥M«Ô†G¹°ÿ˜ÈZ§åÐi!sX¤¡[·ná‚ .PÛê±K[ùþûï³,„ ¡Œ‘],°¬wrÑеPn,¢-O:†LÂß 0q^€ŸLþD;:-ú¤Á6pÏê'L˜0,–s=Àwò^fßÉÏwÜaýǹ\¥ŒåË6r¬q`†eÂc†Ç@|ápá…†%K–„¡C‡òy½B4p:MÙd€1@#laúôéäQÏF§ãDÔSxøá‡0Št䣃Ñi‘°¹n'µ´ëäâšX)ùJ¿Ó!Ö˜E´d]M v‘JkbÝcÛäƒŒš¾½¿êª«xNÙßyç~Þ¼y䃴ÛC/óší'§zxŽÖHñ]ºt1k@ŠxÌ¥‰•Ø?öÚ>ž_·n]½ñˆå™[Kª@t=•idøÜ¾ª*m<`ãˆÇ= Õ´´÷á£zýõP¦å±™zlÔÊì eYJÇÏÏ™3ÇãÈ©¸Év%/ÒéhM¬³× ÝÔŠW®‰¥`Vñ£j)íÚM­ÄÄ*ª‰u?Ö Þ)FCqnfjE„¾ [·n ðÍx?½Ì¸$LhÉ(à`{ذaCسgO0Xz6·&Vÿ©uaBSË[PÖwÀhh Øœ0 ^çÒĺVßïºë.~¸x°šÂÆ~j2dH HÚ÷±hµ Ó9‘Øè?.X°`AÀ>´ÔŸ¼š¸®Üàã[ü`BVKºª‰e TŦrP@Wåqb-p˜SŒ ±Œ5NH«Ÿ…)Fù¥d¢Ÿ eñÄ C3ä©t Z˜;Á-]$Èeˆî«¯¾*¨ðX0„…Í“!,†L#ºi÷&Nœh1ÐcÇŽiœŠ†=ø©"KþŽc Œ)R$,X×ÃdÃDY %˜¦¹FÚe’ú¹lÙ2ǃ£GV»gÅœÔÇH•‡˜Ò ’ñ`¦;vÄ¡†C´ÕNRaªª=¡©Œ=3ÜÀEFDZ“gWmòHEé2¦:wî\·xñbɉŸb ywÐ6…ÑoM:˜çÜ ’a¶è™gžá-†LxÍ…¡w ÉšœãÊð!y`¹lŒaUðàë öRÌDØ™Ø>3ó›o¾i|jìÊ$¡ÛpA,| ¼‚ôÏ´Â!}ÅÊ9o>ŽÎ¤W‹N ¹»õÖ[=´­‡9èa¾yh.ÿàƒz˜o†X&| ˆO\Ä7,„€³ž¨1v8¤ÇB# nþÀÍFYÏæF§‰v3AšÏŠ…å¡1Í×»ï¾û<Ì9Þ“/™‹oñ|Kë.y„ø1qæ0$}þüùÆÜØ·˜Æo…5æâ£°ßÍùDŸ›;4¯‡•A”ïI…}b¡Û¤qèÐ!ÐbüN,ŸŽö‰Õ7b3Üô¿®0W=”úÜ*´üš#4EÍ|Ó‘¸Ù³gS£)x_©Æb³¹Š¤¾É¼ÅDqi—ñi–ÒÆ…hPSR.q,>&?į*öÉRrçxÈ’¨÷N!ëOmS§N•¼èŠð¸b©1—yN §Ù ÌJ’fZ¸p!ÇB4J»ƒ´¯?kܾ´³ ÀMz3nøÊÕ¡P‚ðfNR µÂÁƒ„­0C`+LÀB2 ÇñX‡dJÑ@ :`Ç' GPËJø~–q¢Š€J£6‚glüÀä O<ñDxöÙgÿBÄ£>‡Xr[1PŒÀ„3Í ó¬‹¿cÍþ‰˜åŒÄq4%Ã?óR4âyE°ïÈ‘#â&À°ð”CL£0°¥€~œg°XÄcÆ{b¢³NÐðé¶BLçVá€kçÄÀÚi—Ø)O}ÿY…Ÿ M,m£úRm"QË6úcoñuaMÉ “×ÁÜÿª(å(ZUûU’—ø)- Å_L1ëK÷ÄGIsˆç›å§i¤Ç°ðñKµ!þ΂ä…ØjƉ­L?D-Cø¬S=˲>±ÚQl:¾.ì« ù”l—%—9®ËEO)‹–ä$Ya¡©íæ?ìá½oMâ¾,«Î”Ï­Ú5i°®j:¤ÁÚÏèULCmY»ÌÍU2< l ’S"«ÖªiÄc¬ -ÛÚ>¬$IûÍàƒó–ý ($!µNI$€´CR:Ö{$•©ûA÷ˆµÑ’NîÙðl¯ÛŒ#ÿ—½«’ªºÒç¾~=Ýó'ƒJ’B ‚`4‰?©‹MHÄ5¨© Lâø“d+–º€‰E¨,U˲&V+ ¡Ì’†j5†]D`ËYAœAgD`2Ó3=Ý}÷;÷ê=ºé¹Õíg¦=§æÖ}÷¾÷îwû½wæÜ{î¹ç˜ "¼• šà¬Y"óæÍ -¡=ËR4œŒ™?¾S&–;8YÐGàÂÁ Ãi K,ÔlhgÃÁ ûwàX°¶²±ÛÊÆo°Pg‡Ø¾Óæ­·ÞFdÑ¢E\g;L 纯 -³÷íµm‡üME Õ¶:ä½+dŒü‹[ð7m³«Y"j‚ô<~síÚµðncCÁ«`†jÃL4ú&HTç<–[fÍšå|‡sçÎåw©¡¸:¨”ú?œ +!oc_>¯YÛÌhƒØ®ÞUæí’¥–»®¹jïÞ½Ï$Ù_ ð@â2ô²^ -„?¿Ð ñ^c„ÂÃX°`AÜõ›ñÚ %„i2Ø`¡˜é§¼%3†«‡ËáF€ð1ÏÀ9cXfe0Õìvo ;ÃØÐš·£ðª BžÂªÃEXåø jz`ôÃùÔï?9çG5ñ‹è[/»¹Åµ ܺpi×2- ð%Ø+ĘÑÿ2#xÍÕ dzš¡‹Ib1qy×®]ŸÃ’κ×@,&‰Ådˆ½TÈù³=׳µ‘·6™]¸ªŠŠ(Q}?Þ˜Ö¤`àR ûÞ—àÖgv÷¼IuÃz|äQ%*¢ßež»¢Í/¹çýµôHð¼+aƒÊ++ø8X"÷eka›6¸Ö?é\‹$®Dñ¨FÌ™†Áäñ{ÌÄür]&þè$±HbÓ;v”h}˜0SöÅKÌôA Y4xIÈW›†"h,31àiä&˜m^ÊZRPi¿C¡¡ÎÄB“BúÞyâĉáVwór6Êßg ƒ…„„‰E cÉg,œÜF ÊÅšL¸ß¹Òø’! …„‰E c?é=,…1WJ¹«'ÁäCÞ<Œ' ‹ÆÖÈ‘ph Ö ßGÑVÁvÂ¥‚׋ÏÁñÂ$×¢GQ©“ÁØ#—8g]ˆ.¾mC[!ôÏ\bÿ|ó±/]‡þÖ†/Åv¹nìמ/“oÁ7öB,5m‡Ëظ§édéÀ)æÙ[oúýû~rq‹yöa|·~nîƒÛŒ1T$±¯ÃåN¼Íá¶m{Ö=I¤^Ã’H‰“mÔjæßJØçu·k® »óÖ»ü[× ÅɇYL}07l5R.®ùZS¹ØvMÏ Œ¢Úóí†óýÿ<×ÄBBB2'–9±l̃Ç2'–9q‰“,1  ‰vZ´Ó¢íôPWl‰b‹ ;D±%Š-lr$¶ÔZk%’8£O¯4œœd8-ÃiDØ8¸GëáP¼Õ“È"‰sp½¨$Á!;œ–á´ §Ý]K¼ñá}×nd?Ľ½IÒì÷/ GyÁÛ8>8w4’{žüÕQç–ÑYÑKi8=¤$±Hb?HydöìÙ[››ÔcCDÂõåDa21ÚD¨ÒŽXUUu0Cfb£³“1Îé ›‰Ý3Ä«˜4iâˆ7=/ÐÔ@Hb‘Ä"‰}‚ÔµZ[ß«[²d}ÝèÑu™d²Ll…Äļõ1¦ÛÚŽÐc- ø%UW§t:"kŠFãêØ±¿"di#Ý}÷sTVVο‹Âbb.–—W¦›š^lÜøÃSr¥±(¶ž„¼¨ØKŒhÿ¤»»3Ú²Âdb acËÇ}®««¥ššá:• O#CÛ–ŽÅœ`èN´ÃX,ɬU˜L\QaáÙ|À®ž34XH[2œö6<óR"AV2ÉÃi ‰ÓiKww§¡ Hå2&#YVO*þM¡JbžœÆÈµø<œ–á´ §ý2¤„?Ε;œö˜†@ÁcerÿêüñûQ9wËYLœƒlKyeï¼—{8Üï, SνÇï¯ ðs0£ bùLÌUV°?œÉˆ!JB>ó„ìÛ´m‹s7)”™©“87“9xûÝvÛ¶€{º,D¥ÏÄB>D£D==]NˆL‹%ŸA%ÔÙÙIˆ9„ãòuu%Àd÷ºÛwŽãL˜›Û8N¡ínª¨ˆPy¹åb(rãþ$ äåšsþËG^la0­Æ¯~SÏŸ_§ß~{”J„óéúmZ¾|Mšt©·¤ó¡1<­ôÑ£‡È¶ËhÕª»è•W6³ep¾HwÝõ$]|ñePx¥}K©ɲl(±ÈAÌšÕ@MMïЯ~õ8$|MŸ>Cë`ÇQÎC•V,*ÑNË<˜Ù¶‰~øFºè¢+éÆoÆÐ·Í ‘Šd6L0kÉ™›¦RI:yò}ºóÎ5´hÑCÔÚzˆ¾ûÝË1~•µÈŒWÄ|Õ™s;íöööÐþý»è[ßšB;vl¤7ÞØAO<ñmúþ÷¯ƒV¼ ×YHäÐú$)ÏœØ'®ÖZc.i©õëQííïª5k6ªxœÔ°ae8Ϲ­FŒ eÛ_ܶÈ/g‘eE0%uå•óÔC=£6lxYÝrËjÅŠÇÔºu;HM\GHN[ap5˜XaIŒçÜêÍ7ÿ¢î»oƒÚºõ=µeK³ƒ¹{÷Kê™gV©ª*RZgr1rçÄ¥œJeN,sbž«B[‹e¤wôSOý£¾ðÂ/èM›þ]¯[·Î™ó}›7?¯7lX¯Ožü@ƒÉøž‚çÄœ LÂRÒl,[-ļ4­Oé£G»1_¨/¾ø*½oß¡¾‘"æÝs_‚ wS¾ì²9ú†nÔ½º«+£¿öµ…ú‚ >­·oÿ5æß2'F*I,’Ø—’ŽƒÄý„Ú¹s“Z½z1¤ñ÷Ô /ü”otò'Ÿ\¢NœhWÑ(¡N(%3k¾Õk¯íVÍÍïrÙ;ç¤X¬‚‹¨x÷(í-H`ˆ¢ZÕÔŒ„´­V¬éæÝTØŠé`œ{î(ÕÕuJiMÞhâã-‰©dH¬³’I¢1c>MÏ>{~÷»côâ‹'iûvMkÖ¼LLk×î ?ý)C£G×ãÚ³Ž«éž{®F»Ëà¨@Qe¥¢Q£â˜Çž¢Ý»_¦©S¯@E0Æ(Ò Q Ê9¢K.™Iþó6êèHЈå4rdœŽoÇ<ù/P¢}žâq*LQl ùöÌŠª«‡!UC¹TI˜7‚!âÄ—sÙÕ;÷ˆAŽéfMMŒæÏ_Š/Ѓ6Ò®]¯Ò–-›èŽ;¾#Nºå–€ùú¢0Ú!jh¸ ¬´dɗ饗þ“¶nÝ í÷L0n’n¾ùACŒ=¨¤H–˜|¿RN‰¡X¬’ÆŸ†¼åmv–T0ÁzêGÀÑôÜs«hóæõÄtþùãèg?ÛNÓ¦}Þ1þÀڛnj‘H¤iâÄÉô“Ÿl¥GYH+VÌ!¦óΫuê¦L¹”0Gö—±J…„‰E=Y01ÓÖÕ}–ž~úu>æÄLâÝS4;Þ\ºôQZ°à^3vóYHæIlÚ N1ga”É.&1»Ì5Áôr0D°\ô.&&oi Ìʦ¼ôæ–¨QŒãž/ƒñÁ8n{Œ´N$ƒP bˆÙåÐÛ! ˆ´—»Ç:XŸu™Ü6”wœ•ÛJ?Ç^ÿ´ zÕÉîWž2(ÿ=ž§“ë2}a(·d_cìƒÁÍn.F~Üœû„Ä=h§ƒQþ@ž_©¼óy mê?# ¨6X[¢Ø Jš$­Œ^ ,¡ML‹$6ãI|âú;0’X$±Hbsd8mêk Hb‘Ä"‰EK,&!!!ÙÅ$$$$f—2'–9±Ì‰E ÉpZHHH˜XHHHÌ.e‰I–˜d‰I[¢ØÅ–{ I,’X$±Hb‘Ä"‰E‹$I,’X$±Hb‘Ä"‰E›ã»tÎf!gßHœ,7©œä×[Á:CR^2×™Û ÖúçceåùÛÊmׄmø-ÔgÕ™ïóñÌI™ûìcð, Ï´÷‹ixfƾ™ÞC!ß®Ç'ÙÒõÄõÞyÆÉæµì>ôÉñ¬çp“aè`vËêË]й]ÿþ¾ê¼csÿüº|ý3»…Ém+_ÿÌØ>~6¦©Þü<Ä=ùø×šŽ½û å‰ìþ{á)”›ë¬þýhk¦,lt9uõç{޶©sÍÍÍcZZZÎE]ÚÊqÆÔ—ã2ëòòrvaÊ÷Èo;p¿Éñ[<íbPEEõôôð¨"ØŽÑAçÙøg¹F»  6•Ý^–±>ø0F2™ ¼Ø~r”g9ndç¸å1F‰þr”ÇnyØ=."Gtцé8ë]›âEéX,FÀ`\þ†íÚÚÚ£cÇŽmc©Š>dZ[[G8p` œöõ²»a¼¿Ä´iÓzÍÀ+g|ïÞ½ãq­ö|úôéo'’n·4Îe ó®cÀh4š¾÷Þ{WíܹsÁĉS`‚ˆ…ÁÄ®mÛzÿþýˆvw}ÁnÁÈ ‰ý:~{öì¡qãÆ!÷0 &S P˜Øûo˰ûöíSõõõTUUEÀ`ì0˜Ø«ç6 /\3™™@ó‡¦ËZþ’É/û_ª«›Â^/CwY  ‡&ª­½Ë¡»¬=U±~­ê©S§¥_Lì10ý?kW¢V„'/wx9R¬å.…… !vG°²J©V×X]¥œRÛ]!á*;+¬Ò^u±ðçll’æ*¹49Aü‰èå½Í7ËxÜzñ$OXFçíÎ̺;³3<Øo2™¨ÑhDñxœXÌx<¶ŠÅâ¨P(Ü=€K —ívûu¥R‰„B!g>Ÿ[‘Häw£Ñ¸&"–aã –J¥·ìbg³Ù¼F0˜² ý~ÿe«ÕºªV«9ÕËÙq±XP>ŸWp0eô'Ö|¡›Ò'¥£Y:¦r¹L™LFoT‰JÞñ"÷ N¼–‡èGµZR©;1ëõÈ5í6e‰~sî‚4L&©^¯S,““ò¡:·áÏfSJ$’t~þ™Âá°Z.ÚÓ'¼- ‘AÝÝý ÓÓc’_R0øŠ°äþ§¦›6xyL | ¨Ò÷X/úDvqbsÌšùlÔ±¿oˆü@ÐOT·Û•1š‰bsÊå½WSïÁ 9b3[ø 9 7â›ð½¹±²ŒrC”Èó¼Èˆì£^”õë°ëKœLFü¾[ÿ!CKd«¯ë܈Ròåë WèÒÓEŽûz?qä©¥º&MÒð~¨TËz ±Éñ"#j¬`QÐ~_sMÈ5n‚'#®¢e$uÏLn˜“¹Üû¡9èdc„2åççÿ%ÆŒÊ)¼bÄl¥Ú7lØ@K–,!0αö®–É&;ßlÀ …%[·nUø,òƒ|ß8q‚Ö®]K‹-"0ó‰¬^õe£ƒÉV=­\¹’8y,¿ g%‡’’Ÿk?±þ¸²²Ínw­[7w••Õ®¢â? Í®vsæ,ÃØºßÕÔH@êÕ ±eÄ•æÕ«W»víÚ9ìÈýˆ<·>ˆ-ížÈ„ ‘“Dwž†üÂ6I~ø¡„LR‹- bk‰UMKLbjÙ²¥ØÅÈ¥§§4·º@v.(JáˤI“¢…ÄŽÓüùó©G[Ù`±=©ŒÚg%ç°»+”F䎚 Hf÷x!B4nœä°í¯¢×_? Ø[aýd'–TQñtQK·€ÐüÒ¢O©ÿ|züñøÎóýQ^Ss2>¥.]~ 41 ¦Ætm?;[P̺ñÆî¥<õ¤+Û…± b˜©oß¾´oß>ÓS}'¶±ˆÍ#å[bBåå×6¬Z'’°kA0u‰Xnß67ú. Óë$TûðJ¯vlä¤ô*CÛ7¸6aÂ…ë°¹ur#^Ö lnšr3f<ó£˜rs3aŸÖXOb{æ‘e'ÀÏJÜó†Xx–b±¨¡×^;Nýú„Ýú2½úê<³W‰Ù“Í Î£RÑìßßÓˆÓaÖÌÆ‚ñs;lý}XdCaìF———â› ¡‘Ñ‘võŸ2䯄P1î‚g§¥Ê eLŸÕ[ „{eŽ#[“ï¯2Œ¡Vöä#Öš‡ʽ{÷Öc8Ý…15¶Ýs°Ú×6$!ö–a0È3ž1c†f|gÁI±Ó¦ S¦<À·ÞÚLî#`‘‰1±Ã²S”5–[D¤šM–9FÿBŒ5Ìú,^¿þ3îÓgÚügfþ€ÇŸÇM›f‚ _€Ãú["/ ¸>ÄÀµµçÁ®7ã+öÃS0óóç—_Þ«¬ûÊ•3À’‡-ï¤Øi³à xݺuŒ˜}Æ;¶ê•Æ&¢2n¾ùfA‚›,Ø9Ø`³)•ÝÉ“'å)Ž('ùǬ% ¶”{ Å;Ç« {¸ÃÚºN:Éã‘îÀdšÈ÷f×{²‰Í†¯¨¨0›Ë]wxâÉa7vpÉ©ìð£gIÙÄõÁ•—Qû´ÌÝqGk×»w¶7n€Ê{≾îî»sÀQ|âÒÒ´?IÛÄ–Zµº ÝéÓç!›\uõוkÛö ¿Ö¸Œ¤eÀ"@ÛMÑÇ«]çÎÝÀQ\‹ñõ_÷ùçç0Ö~访þ&ð"uX LWqeÔ5n9â`.9,Òd¦1ë@šj¿_zé%·téRãAäœ+iGÊ£pt¢Åÿì )aŸÜ(‚J‰b“÷ï߯t}vv¶Ùzô– Z)|ÆÎHðÛ*ÌÅga‘íáÍ–|À]mÄ–c'Px¤ì4>ût•õ&tÏ=£©sç^xD®«–¹¹ egêÔé6Ùå…=¶‡ ô1¿©S éwvî]¥ýf‘¸Àº7ƒo3Ís°‡¹Ç²²Z+lÇ­Q;(%AþY°× EžžE9œ^½z©'âºë®Óq RS¿ÿùYfÆÑN&×8›Kö98 k9µ,..Ö»Ës¯›7oHª;Yqͱ°Úœ¶cËX}¨Ap1\ ?®–§N’Ò‚1<Ái LуÁ,^¼˜Ïœ9#zÒ:)š1 ô\ þ¤ƒ=0È!ÃqóæüôÓÅ€æË4Ï™S(:EÏ+,œÊ³g/Æo¾û¡5i¨+c èß{o'¿ðÂ#\Yy:»9Äo½µ‹z×ñk@x’xçdƒ=ÂP_ÌÌÍãwßÝÁ{öìå-®R;wþ‘ËË?àÛn»ŸAÃ$”7Î?##ƒûõëÇýû÷× bKÍ(|§õ𮬵s®(œ¶ñ ÂMìö¦`°pš™f"¾ÓMžå0öÂîçÁÅ”W"¹ó1Žz¸Çëîòòzº¡C»¹§žºÛÁï WàX¸˜LWä N›…c)µ$¬˜;z‘®8œ“Ÿîí·ßòs`¡¨È˜ìŸØ2"¦¨¨HÃÕÀ¦1ØQ7nïÝ»WV;#„|ïĶ ÂõÃ¥¥¥Œ `$…/bËVæiÓ¦1â™u§„OšaI©uøCÆÄ6P^ì1àºê–ñ7ƒ eD…quu5c¡ÓpÎt•,±‰ +M3lJÈ$nÕ*÷£„³²rØ9%œìœ¤vI»Ž³gå:zðòåï= ኊcá¾a˜[¬5äjñv霓þc·ßÈÆM…Ì/„ÞÙ݃1ÐH‘ÐD’ÄV¬®Bz _¬ÖåææjH/¼-l©>vb$›sqw`Ë¡ °»Ù1ø:и Eêß‹ _os¨dDž¢#<ñöJ¸ŽãElý¯½«×q"Âëd 9Љƒ¥@<oHTHˆ‚ŽG ¤á¨èRÑóÙH ttÔG…¸‚Ÿ ˆ r?Ù]¾Ï±ßnŸÅ¤8É–,ïúoü³“qfÆ3§ºåÀT:ºö¶Î2 g]keƯa0EÔ©pLC˜® ¢†aÞ qy¾œÇú÷º.Âée6]eI–ó^YîâEw=öz½©Ñ$ 7”g°¿0T/gŠ(e²Ö"U‰ã‚¥¬ )aŠš¬e`¿†aTrx3YËf†B´ðX_ÔdíbýÛjk+…|6B…fÊ™¬%#I÷‰ã[ ù~‘ÿ¡S1“µLðMBlBœCŠwò ”˜ÉZ¾Bå²jî·¶œ"n²Öá»-&¤5rÇ<×p¼²ÏVJÇè¶©Ø÷æ÷iç˜#ûœ)weÇÁ†òR\¾§ÒF ¬6‚[£î%ŒÓ'àd“â[Ë6¢HŒ1ón0¯0*¤!p±E‘˜YÐÆRT¦‡¦9D‘˜sàÚL&µ³óÌ—«àAKÚ&Gÿ?¿BÁb‚{ÁÛØ›MÝé4í@î¾—ìïO²ì9¡Cª$†Ä s÷Áwq_û[9X_‰9^Þe§©YRS#Û×Äy¸>Hî6­„h%’Á`À6ÜC—àw¨ Ú*öµO]†À6%.Æ(¤ÌcÊ#µ‚’{±Šñé¸q©SÉ€ÐÛ|0oC1aj¬ôI ±Ëñeý.žçŒ¦­×`làù1—öQqˆXؾ$Ø)cè*U¢¤XäH{€@ï…†q°œš˜›×Œó. ô$„Ĭ³„ä™™f¢ ¸Lø¡îôûý=‡ßBv€Ä³ápx+˲àpÏ@ôºPàÙ…òÐ+»@ܨò^‡±ø» ^G´b ìbÌ$.sëÆçïA¹hGé9të7¡Sÿ?ïÄ'«›¢PàóÃ}1E_LÑSÃx+cg )_µ®M}¸°½”Øej±NˤR”X—Ûê|v›JùbrœWUá)!J|b†´/¦&¬&D‰“Á ÄÞµ §Ä~îþ³Š%®ð*”mcD‘|´2u-õ°å(#N¹ëÍòs#ι{‚ò¼"¯8Tó³º _6Ž”8RâH‰깆ìV–¤m*wEµ§ÞÇÔsCÉ´ OüëôD/0>¡íÖ>8ß?ùýi€+¾öá2^ÿ±^± ‚hg9ÄC 1hÏ4½×óƒûõçI÷S¯^ö9NÌ€|ßxêyžÐÜÞ_×ÿÞ¯o a„÷aC NH|?ÿµži éŽÇéxœŽÇiϸ½cðÂñË>n踲$IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/modelview-begin-insert-rows.png0000644000076500000240000003042512536324471025012 0ustar philstaff00000000000000‰PNG  IHDR‰¿Êÿy0ÜIDATxÚí}¸Õù¾ 1hbùKˆ(Š…^TTDAH, ö0ñ1öKŒ –XP…éU”ÞƒˆØPPQ)VD¢‰E¢rw÷œó{ß³ç[Î;{ïåîîÝáÏìóœgfΜ™=óÍ7_;_ÙMk½›4¥ÔnÙŽ¹vì7ÿš`E÷ÈvÏÊÜ'Û|³õ…Ý'Ûs„µòàí¿+;¶¢9f{þl°,o¾åý¯ß·[Œ$1’Tˆ$ƘLcG¶c¹0xì7ÿš`E÷ÈvÏÊÜ'Û|³õ…Ý'Ûs„µòàí¿+;¶¢9f{þl°,o¾åý¯ß#IŒ$1’ÄHR $ÉÆ‡ -“T$ ì*HâïW—L’ ñ,’”'¸º¾©Tªf2™´ûþ±ß¤?x>xMØ=ÊC¾]Yp-¶Ç0x‡]—mßqyÏÚ)˜Äãl_S!ZEZή‚$Q²BÁ>Hí*T‰eÜÞ}÷Ý7ŸvÚis;uê4ë”SN™sê©§Îeã~°Ið|ðÿÛ9]ºt™ûÑG5tÿ[cWGý«¯¾zlçÎçþ³ § lŽað{'Áq¸÷L¼×¹#FŒ¸H¨V¥‘„ÛD"Q‹˜…ϸöÚkÍüùóͬY³Ìܹsm›3gN™&ýÁóÁkdöìÙfÞ¼y¦aÆfùòå­øŽüíÒHBØsôèѽZ´h‘}¶×0x‡½¿Ÿ÷ã}ûöík.ºè¢‡ û’’’Ú;DI«ºwï>/3‰›ü€–@Kº–iÉÀ6‘åšRÇ'Ÿ|rò¥—^jS’ôV`?f̘nçœsá´-Æ>“YÞCðÇ}ÿÈ#$/»ì²{ù‚œ•2¦9$±”¤[·n“&Nœhðò’Û¶mÓØrßà¼6éž^ãö &Å}Ý®];$iÁÿR»+k7{ I÷ž={v)Â>[k¼ÃÞ‰ßïÞeâž{î1@’Aü?¼Ú;¤ûH2yòdC,äÍûi ?ØfúýkܾÃÝN8!F’,HÒ«W/‚+EØ{°+G×ʼÙϼïZ÷.,<’øÈ@ê rØ›y™lŒ$ùC«owÚRiaІ$j!ç,²pËæ&#I„?À1o²yìËPóB’r´û²Î8㌉“&Mâ}Ñ•PÉü0»½óÎ;uýúõÕO~ò W½óÎ;œ½ —ñ‚X¼Ž»I4´›æ@5bí& {h7Ý “ØwJØ{°³?ôÂ… ձǫ~üã«ÆëáÇg`ÏK?äZ÷.Kî½÷^}饗äÿA»©ºàZ»‘Iq·ÝL¿~ýô-·ÜböÞ{o]¯^=ýÙgŸqbVhò)NLIr£${7Ï?ÿ<>÷Ý4Ôe}ÇwèŽ;Úã§žz*Ãú‹FIH ˆ­«W¯V˜”úë_ÿÊ?¶XûñÇ«5j¨K.¹Ä“G "Ç”$wJÂÈ|­ZµÒ5RŽbXx㽩=÷ÜS}óÍ7Þ%E $îÅë[o½•TDoÚ´Ébíwß}g‡À’ªëÖ­K>i|'¦$¹S‘7>øàR UÖÂòÛo¿µÃf̘aßÉôéÓ}9±úW™x×®]5Ù‹C Œ´pÛm·Ù‰~øá‡öÁüIrG÷šçž{΀b ƒv°·ýëׯ·°û‘ñÅA‘GŽ>úh}ÄGdtrNˆÛaÆى®\¹Ò"EàAc$É’`ÝÅR’+Vhaë³yóf ûþýûÛKøáMæn›6mô‘G©:&²‚'úÆoX¤ˆ)Iþ„ƒûÐb,’ÆÚ±ÛOY„°¿üòËCžâ ®ÜíСƒ:à€”§²…PdZ¨Â2±XpÍ“à*ïb„ ¨;ØÛþ 6XØcqÖ^âØPÕ×\Ä+`«ªY³¦úÏþcáûï¿·C~÷»ß©Zµj) S±$¿HB8¦d3D’G}Ô~´ÿûßÿxŽð´H2jÔ(ÿí~íÆëgŸ}ÖNtìØ±bù³Ûý÷ß_ÃBtõØâšg; øá Ò€šk±ºr )ß (ŠX_‹kqÅDU³fͨ—“ü©eË–i<œÅä¥K—*™TLIòk'‘tРADuõÕW«—_~Yýío³Ç_|±rrJ™÷VmìÆt¬gÍš54 ÛɃ÷Ùg…/Á7 ÇH’g³¼h˜lW]u•r°·ð¿ð íÇËsbÂ/ »ñø„̽õÖ[ú•W^1à™¾ØU ð®Üݸq#?¶ ‹‘áœøòå* @_& ÚEb$)Ì*°Ø |™Ä±÷ŒY¢¨þ$>¢Ède1Ïw|‰)Ia)‰cß"ûU›ÓQMAüŒã‹ÚŸT°=Ó5qãZì¾X¾û¢À>‹×™ ƒwØ;ñûÝ»L@&©ºv#θIÊÕn© ž^&¸Š#t,¸n\’”+¸†½X—«ÝIª¬ÝÔí†vç]­<¾§BšlU–kJ·oß>Ön²h7½{÷&œR!0öᨳ¼‡à; Ž+yમ{!Ó£Û¶m›À:ꨣ´k*¤éÀÖï×aÇX´žl«V­Š‘$€$ˆRèÃÕuÀ>é`¯²ÀQgyÁw’éçý`²('¡¾æškrC°›Éôv‚,±dÉõ /h6É‚Múƒçƒ×¸} *î«æÍ›SmŽ‘$€$ãÆëA* Ø' û l®að{'~?ï‡û–€Šp¥8wv3sæÌ‚²›O<1f7YØÍ/ùË‚²›‡z('cZÍ88+2ÁYÉ¢gåcí& m—Z_¨¬vS’ª™åƒË$A§2ÚMÁ½å}ƒZÀºŒÇ‰i0¦ùÖlÞâÜŒiù¤$ÎÍŸ> zëÖ­1%©fJBxr]#EIüµA\ʈV×â‹S’¯Ý88ë'Ÿ|RsÌ1¥|NŠ ì¯s.PÛlÖ!C´sÀ‘¤Àk7Þ÷ß_rÈ!ºeË–™0O.Ý˸òÊ+Õ¾ûî›ñ'F—ò¹ŒÙMþ٠΂ ô¡‡šñ'9餓¢Én Ä0#GŽ´”äñÇ/åâS’üS(Î oú³òƒJIv#§ˆ$ƒŽ‘¤šÙ œÏ-$JBd ì믿¶HòØcÅHRM‚+dpU´/é³4² äIò¥;ù‚±¨V&%Q.Þ#–I ¬;ÿ ËsÏ=W1PNüÿH´Œi°Ä”¤Æ4q_<ï¼óòOIb$‰‘¤Ú×nhiEÔž†´«ÀÕhqu±5ê7¿ùjÚ´i~UàBÉ$²ËѱLR}2 áñêÀÔ.Þ)?2I¾) Ø(¤£fè§D™ÅHR”Ù¦³¢IIÄE@’¸¥"KõW I¼|ë5b$ G’í±r*ãh$°÷ö£å*à\Jõïˆàê’È!yîcÁ5»àê/´þy]àË7» 5WÁU fr|ùå—ûŠßmLIÊw:òÁ]èµ›jÎ’$ø>r ‹ãÁ x c–Ó]‘¦®PA©è+UC§:¤"j´ÓgeCyQ@’‰Ân¼x_pÂ-µvr>xñ<¦„Ý4÷Šú7‡ •ÂC?ýéO7Óîú·w´ÐO6¶”ïæ#K>Ù )‰°ÉOÇ,ð{'ÁLÝ–Ý€’äæ v3 9G¬@âÖ2NÌÁ&ýÁóÁkܾ¡¯ yãñÇÏz7-r4D–oò5‘ƒê4ì.É&Mš¼ûé§Ÿ6`CÔ¼mrì÷c{ ÷‘3l/)?b>Zb7îKã±ôɾì ^çß3Œêä“’öÛ¶öt',™}iÒ6Æ+ýéû%ss„gÁÛ)Ѻukõh×THӭ߯Î(Äà¬uëÖ5B¤.»ï¾û6AŽ=öØã¤ŸLqß5S‰fÇ!±Ëõ|@°©—[¶l³®U«£Ö`»¶U+î§¥OöýclÈuëZ·>ú½æÍ[­CŠÒ¹ÉCU‘I&MšØ§nݽPuL²eËÖ ÿ©ðÿš[Ù—&}acü±ÛǵìÛ–Ô«W__{í59Ë$“‘‹Ie“k×®¥÷“acžÐ`“þàùà5nßã¾Lñi¡§9r­ÕAŒOÓO?}ž¼tP‘ò±¥àTóœk:Zç@ë„s§¡BT—O>ùäàï¿ÿn÷† ûjðà—Íøñï›Ñ£×™1cÞÏ´Ñ£×ÛæïûÇþØàu£F­3'~d\hŽ8¢ñGø(kø2P>(É„ c{´ju*r´~|úéµÿ«Ýÿgö½9i¿?¸Çû͘ñA¢OŸëÌ•W^Qeí¦ºc[øÄ‹îŠÒn‹Y@q^ßQYaË–oê4oÞfÃÌ™_«×^3ÉåËM꥗Œ’Æcé“}ÿؼîÅzýu“˜4i£jÝú¨w‰’¼S’ñãGwkß¾·~ï=“Z¶Ìþ/ÿ_s+ûÒ¤/lŒ?Vúy¿µk "ø@ߥ9‡y28‹q‚&v‘Ž©¾›ôϯñriXuÌÏ*À:p”#»P0©ÛŽ˜åiÂÔÍlö Ù‚Ý’lœ:õs]ëÔ?ÿ™R$÷¢ù…)Oƒ2Ø}"É2ú”÷btð:¾ ¤'KŽý¾¥$ÂnòIIÈnHIV®ÔÉE‹v~þ¼ý¹ñüÒ¥iV‚gp#iŸMÆú×rü›ojKIªÌn*‹$~F"þ*Àìj0ûdí¦ªÉ~ƒì/ßH‚­%ÅȈÈ{£¦Nݤ&NüX“¯Xa„Ò”B”¨ ‰Ì‰[È\jÞ¼ïÔ„ ©iÓ>ÏÈŽ¢`l‘ÄG÷Þ{OAÐÌ„T°‚Óõ×_¯˜¬<ÖS-«À•E_D?øà\uÈ!ÍÔö£õÔŸþô„öp])D‰%!KL¡%tß¾7ª:u~’™›6‘ zµ¥Š|Æ%KLÕ‘$×l +<è ƒô~ûíg~øaM3>Š[Ûó_TwFèÊÊ$d'/½¤õßÿ¾ å@jéÃoƒª_#õí·1-[žlí-×^û¤ÁWjÀŽ2²ITdôÙ¹}öÕÖ>tÖYýõ½÷NÕW\qÙc:DtýÜsÿ2Ë–Yy¥ê2I®E‘¸+%Kç¼”Yþ‚ .°ý°€Vk½›Ê _8¾&Í;ÿö˜Úzþüïô›o Õvƒ€§f¿ýêc|Ò ˆ*2HBê5ÖÌœù•5tëv±^³ÆhÎûÝwyôÑ¥ö4¦òñ¬Å\ÅCû¦›n²U*\ 0ÎíÓO?mÉŸÔb©®*•a7im€¬FÃòxªnݺ£zõUÕp›š3çHÏeÔg\dÍcÈ+Z4†(°²²’Q£ÞÓ{î¹·¾ë®g0ÿ¤•K/Þ„ÿE!j©=.áõTy‹ÇnøcmV¨ "ã9>kÊ(4¹oÙ²¥ZË«U–’ÈKŸ1ã+|‘_Û¯“À$ _¸ð;ý³Ÿ`š6mªÂ±©H±QÑI!ž}ö ³`Á–:Ð~óÎ;ÆüùÏ6&ÕË& àd—E¡$o(ÑbÔ_|¡ýë_[*Bjâe‡Ž %qB¨ýª@¶±o¬ ҬƎ}QpG«Úµ÷@éÔ×AÂÓ@õ…¿bSÎû˜3ÙŽv¸µßxã«@{lW<çÊMÎ%w~zDÝwß}ºvíÚKüš–Zé2%áWF^>gÎuïÞý­À M±Í/n*rÆ´4%1xmœ‹…¥¨êÙÒΟϱxñ÷`“ÚÈØ¢®~>,ÓÛ…:’8Öþꫯ´GALHö¢#IAR²ˆyâ‰ôOº?Øã>ú†ž4K—&)fÄ·¼FIÒsJÁ¡MÞhÙË1ÇtÒ#F¼fY m#D"±¼Õâ ™C!HYÑ¥Kþbaµ6’bxËW–ݤ…?­F~>+»«ãŽë¦,øÚÑh­\¸0áÙH¢eq%»¡üA Ò·ïÍ–½ÜxãHÎF4¤£ØfYJÚXD‹«Äz Í£-¯dɺ âwYtcMñ”A:tø¥®_ÿPÍØFÖC &Taû|ËftŒi)k~‡Ðj)È€)T0áÜ©¥Ùù³¥Û­³Õ.“ˆ,¤)œ(ÙË¿"ƒ±AãV³P¼Í"g'!» Ð·pá–Jk|jÑâX ¬“lkš49ÖnÛ·ï ¢$Ãr¢Ânhã¡=ZŒµ“À¦£›49 UU±ónÚôxn‘íy(ä]<íF4œÛo¿]!åì gØòçÞVÉå'¿Dˆ’(hZÍû?Ø.Õ:ô6pXŽmp©ìf·]»^—DŽÝÂÆƒHÉE05œ§Û·?³ÔüÛµëa÷o¾yd.Y¬,ÊÚ¯—çt5vã­ŽZ„¼œ¬‡µ®eK–Ev#*0åέÌüÙÈ:/ΑÝ䃒P8å9²+-Š‚«,ð¹¯Ò.µK“cn·“yÁU`ñ Ÿ¿»F BÕNR™¸›¨ªÀ¢Jú^^ž %¨úFÎNt: >Ù÷ý±Áë¨AÕLŽ÷1C âãJvÓ®ÝYúí·MŠžrÁ¹†=Kجôó~Xã)¹øâûrw„fpÖ_¸ˆ—øïÿ«¸˜Ç†z*ؤ?x>xÛ§ ÷m=áÂQ’ÇŒY¯çÍû&5sæf5kÖ7Z½èÙü}ÿØ[öºÍ0X}“zòÉUP[Œ’´mÛ /÷›äŒÿ-3×°g ã•~ÞoùòoJ~ûÛ;ªNIüà¬zõêidÏIЪʤm®©¦[¿_g;®S§ü8ÞÌ;’ WÊ48hcýúôÁ7N5hp¤:è #µ4KŸìûÇþØëì=ëÕ;„‰v?‚uy÷|#ÉäÉ“úüèG{âþM“ Qf®aÏ6Æ»}Üê°Ãš•ìµ×¾úºë®Í=¤bèСzÓ¦M Ø;¶Üן}ö™ 6éž^ãöYì˜û ÑšÁY… $·Ø8|ø›ðÐÚ”š2e#}Xµ´)S>Slþ¾ì ^7yòF¸lJ=ú苤$c»uÔé X›’“&m(3×°g ã•~ÞoÑ¢M%çž{£¾òÊËs¯œ5mÚ´ªPcP&™>ý+::Û'š²¥ñXúdß?öǯ£¾&LØPP™ä„zÓ?$E7†à\Þ%lŒ?Vúy?}•\rÉý9©À¥RO0•9¼]abã’¥”j^¼ öû}n?S;ß•³|˜ÁYS§Z?OHõT#•‘ÆÅ»ôÞö}ÿؼŽËóË—«C>E»)„ íÆ08‹Vßà\Þ%lŒ?Vúy?g% ÝÞU hñJy­ÂøŽgm·%XwFk? ÚΜµ}ni»Õòôü%8Kå'8+ÞòÞb_)Gh¡~u§(!‰åÆewªµ4cÓ?ù”1¤E Id±’BvÂùÃTŸAï9‹»À'±7¤«W¯Vo½õUÞ¼gÒ,‡œŒÁ‰Ëêsæ|«†_©è\L º D=8 Ï`ít[DP™zê©7 ˜n$ÂØhDžOg™âgA¸µùC%8j-œ`nTÎC>Âk7i¯óþýïWpÈ7ýìgÿO]wݰRÁYQC’tX…‚æö¹>î¸.™z7œ5aÂzØB´ Î*’Ó‘¼däQH>£N;í4kf*é¡ë'ŒôáJÒ‡GÍ3€‚¯…ºûîç,rwï~©0XzÏ8E)8‹²Ç¸qZ§£ë¯×Qkvg>sþù·ÛwòôÓïZ'o ãE‘I$ 1ªeYÖ´“ ôi˜Z)¯\ÄdfЪ_¿?#%Ô“ð½HeüKæÌÙb)IïÞ4ý3$¸)Zî‹Z#@\ŸyæeØ~lŸ…¡!ˆàuxÐRòQ£ÖÚØù…’ªfY"NšØ ÒWÛÀ¬ñãÇ‹jY˜Ñ©üÚè9?nÜûzäÈWÍé§ÿNï»ïÏQ.îMÌ-zÁY¢Ý€rº1RxåÚÌèÑïèûïŸn8à`}≽ðqpÞ©Ü´›|ÅÝ0Ä“/ùÎ$Žìq7ÊÆÉ’|3x¿ý~‘™?ƒÅï`5©Hû“ ¤!ZKÔçÀA>ü·„…×Nâ±ûþß}÷]`ï2sÇwØ #dd³ 8õ0c|"à±÷Øc‹Ìg\ˆ ³=8o¶¨ €ŠbpVÙSpꦖó=tèKˆ ž`~þóCl–„… ·Ús9e(D˜§È$§œrŠbžGe"¨§ù3ýD¹–A» í fésQ·îÏ ot°aQÔn$Ì“ógŸd:bv¿üeª•I¨¹Ñ·hŽÐ‚(½{÷V7ÜpƒE–2A–#‹ÈMb'ÊãèÓ”E„Ù³¿U =¸ýö‰P‡•õžŸ7ï{kœ‚+€f¸'c=wÀH Ó,f,Ü8޳Y–,IØù¿øâ6„¨¾n³ ÜpÃhp äJ78«GjÏ=÷TÌí—Ò`Acú‹x {‘J=AJÂ…¿ºu÷ÑÍ›Ÿ ˜n‚^çXuÕ\JGÀ™îÒå|ë.@ŽRH)Ü,°lýÎ;§‚Ø€,¨ÀÈ s‡ý@‡}ͦúÊI»É‡ ¼ ˉÈÜL¤Àd[7k–N-y&’Y$‚@½õÖ1ÖøÔ¬Y{5`À}P‰oÒ{⦅¢ÃϨQïØlHNø‹ Å5ÉÜ*vþ={^¢®ºêa¤%;×·oß ì'‡¥hÆ4?`üŸ`è'žx""áö`ºoC—ÄéÓ§ ›‰œv“âÒ+¿`-æ–[žÖ 6ÕL‹U§N]Ó®]w^¿nÒÚ—ÙMäT`ÎÈofÏþÒôêu9[ƒÅèý÷?Ðôëw‹Ë* rÏ*ïì‹Hý­Ð2Eî\$øÒ¦ítöER"y:Y ³¥-•À‘_à£pÊçãüiuå1å9‹š¢ÓÐòó¸üôWQÔn\C%yPEC ÆÎ*“Ã5šy\­­Ç"ç/ëRÛIIüZ{y¨œU­H²€>Ÿy~Ô^T‘D¢ =9%ó<òäŒ$»Šû"x³ò¼¶2Ž:’f[öýclð:Fé#·|µ¹/rí(8×°g ã•~Þ/g÷E©œåªTXÁ5K¬*WÎ’c8BgrËçIX¥‚‚ëôé› e znqåTš8ûûþ±?6xÓc‚ïÃúS#ŽÐùFçmèM9#8×°g ã•~·Zœ€#´%É­rëÝ<ñÄ©À“¬Mƒ-÷ rŽè`“þàùà5nß|øá‡ÜGÑŸ£Xï¦ ”¤qãæŸ=ùäæ™g6Øtà°i'~¢Ùü}ÿؼ«®Èz¸!õÈ#/˜-Z®-%é 3wî ã‡eæö,acü±ÒÏûÍŸ¿! Ô»¹<7$apÖÁl“Då,èä­k:¤™ÀVg¹&sÌ ZX-†š·*ïHëog}_sðÁM\€Rc³½Ip“¿ïûcË\g6lÂà,$9ôCgåI\p–iÔˆÁYas {–°1þØL–FpVÁYÁY9S’IcÇŽ5B’I|±å¾¡u5ؤ?x>xÛ7T•¹®Sh™dìØ‘—u+|X·è¹s·iðiÕlþ¾ì ^7{öð÷­©áÃß²2I¡ì$ó›Øšš5ëë2s {–°1þXéçý^~ykaž9ÙI2ÁYS¦L±ÁYR–dg §á‹ê!y±4§î*ß?öǯ£j s·0^R°€q½’´uçö,acü±ÒÏû­^§€ñ8õDœz¢`ÆiH$Øì$Þ¾’u`†£¨ÚIÊÎßúÆdž%2Æ4¯B–oy͹rVu#‰kR$)ò•³‚ž˜ó¦_kä,®‚ ²Vóúë¯+¨¹Ê#.‘G‰Ã¡aðàl¤ÝÞ)(‰x¢ër d¹bvÉB[\w¸P#­¨<ź¿¨ç«yä+ ºP‹H:BûÅ ™š¾#wßý¬õq2ä—[>éB²¢½xqÂzѵisŠ9ðÀÃH %Tµø…åG$¢,BÛýþþ÷¿[JÁÀ¬(SI!Ê žyf#üH~Œù×Pðîr^i©/ð¥çgjNÕ¿ÿß\ß)öyœG]q)‰P©sCù_üâ¾­p(~LÎE<«×56jÈ`ÔåÖjf(‰6E5`œëHLþÄ/¡öa]ÊLãÆÇˆÛeñ³ øéÃáddÉ4jøZ$AùzíB<#‰$Ⳋ¯¡ú7¿¹Q3^å‰'^¶Ï1lØkF)e¢\ù·ô^{íuöaÔâvs8}bŠ$â™Æ—ÍBH¬sóÔSOÙ1é8Úǵ p)[é5ëž·¾¢£G¯fÉ2;°d’(–2aÌÃPO>ùl8m·Ð(-¯;v<‡&xÜ2~.“¢È$â•wE0Î}di´2ÉàÁƒ­ãQC*DA?Ü·h¬‘(”¡±rƒàëW1¯tV訖2¡>ÏH;ßñã׫·ßNت@„‡$ÅK¾x2‰°™ÚàpßU€_"b„K¹D-`œé±ÿ‹*¿DUÓYÓ6¡$cÇ®7 ¾N&rãˆý5ãǯkÿ‰8p–¥"ë×U[ùËU÷,~å, ¬L±Y¿~}„t1¤&;v´@nÒ¤‰æñB8}ƒÈ Y3Œ½Ö†EvX+”]9 YN³¥@8¤Ÿ€Cw'3yò^oüÈüb#IÚiÈØ¬œÿ 'œIÆ> LR€mÛö4ýÛßÞbœ·qØSomÁ.ÔÁHüñ.?Æá̬Ò¼XÜÅÝ0A#äãS̱'éNVM›ž€,í•«c‡m+¸5œ_ŒOøÕfTáhg¥K™Ü|óÓ(»ÒiBOTŒjݺ½¢×<«·lÙ^wÞu )^Ü JØ*0„Xõü#ò¥Lè-±õJ^e¡$ úÕ A ͈+Ͱao ­ôÚ^ß!Ç+³´7ÌС¯#3ã*sçÓa­=â¡$y®wÓ£E‹ŽÈ`¹*9dÈ …ÿE[©Ó[Ù—&}acü±é~ÞoâÄU%={þQÿá¿Ï-˜ÁY>B¾ŽvIW1ܸ¦Cš lý~v|ÜqÇa‰{¯¼g±!¶gPÂÙ˜÷ üÏ+mÛû*þó5i<–>Ù÷ý±Áë¸=î¸ã_9昶+Î>ûìIA„È%›ï³÷Þ{g`ÿµ°ãVö¥I_Øìöqm) &êÝ\sÍ59Ë$Œ»±ìÆB£ v¾­<¨*’Œ=º[¯^½§”qÈG“å=߉ñrîÚXªAƒ,«äœEíf§Š»²$ùÙÈ„ ûŸ0’í¿«Ân€$Ý$vÙ‹°Â6àg\æ=߉ßïÞeɽ÷Þ«$ùI=á&ª]ÝšRÅ¡+S<ÚïsûF,±…Ðn²½ÐB!I!(ɘ1cº÷ìÙ3û l®að{'~¿{— ‰¹ì²j0¦I¦£°2ô.ù^µÓ¾Ðê¢$Ùþ»Š”¤¤Ò”„ðdsˆP&±P!(É…TTF&©.cZØZÞ—üÊÃÆ–÷?Q‡\(‰È$_œRvJ–>ü]ÒCVâνËÆ*¦$ùðqå*-n&L`Ñ»7nôóWe¢1’äIŽòJXF÷í·ß†‡ÚZãrê ›)óÞª Iø’eòP•3‰û½­¾øâ‹í5t†Ž‘$HâXŠ…#2nÃ4B_ýõúÖ[oåÖÜu×](ûN4(‰¼èÆëóÎ;ϰ0ô'Ÿ|bˆÕÿú׿lùyOÀŠ‘$”$YËÂHã‡ö‹„7Š|d§Ò7Ýt£Œ?¶JH’«àJD…ÿê×íA'£ró“Ä‚k~WÂtË–-Æ0¬%-ÊÆdÿæÍ›m¾ÿ… j)¢YÁU„fæ=CÚpýÌ3Ï dJz=Íh¥Š%UgÜÍ®ÂnxøÕW_™!C†Ø|t¢Úrñ”2 YÏìÙ³¥ünqØ„T<ÿ|:°iŸ}ö)%“€ é/¿ü2³ #Ia´é“î<æÇú§?ýÉ&1Ì™ÝäŠ$üA«Ñ¨RA²g3*R&!ë!¢üêW¿ªö¢H»%ÍQ`ɲ1S§N5W_}µv¬¦¸‚«P K¬½´“@µˆ²qãFÛ!|1F’ü ‰W¹Ýî¾€d*ð-Ö¨hXÀ[Š?„¹V›à¬œåø¡­{ñÇ·%N^CñÝꌻÙUW1±Óñ*°­¨Šj!Ö]Š?ø.¥U\ówu Åw†J‘èL• LÀÖ¼a’`É‚#I~ÄK;f+¦¢æ¡‚üçÇ9)¿@U0%Yµ!‰Tκð -28—QÁX¸iÓ¦J 9Æ*pþU`çÓBç-ž¥dHÑ9Þ9£çNIr•I$íD£F¬VsÖYgY£k³­`¡¸j® ¼+È$R=Ë!檫®²VT-³í/ù‹­ËLäû1^ª²âÈ$’zâóÏ?W4 ·hÑ‚1ÀÄNµnÝ:ÉÀÓ ´ üïÿ›°£?Ò_-· ûöx)j½ÂúªÃ’V»LâWÎ Z\%cì*™ÄóVÓY2sçG&ÉWÎ4’?²!ƒNÓÉp˜xí¦p*°„§Hó½Õ÷â­ÝD±rÖ®êtT0÷ÅŠ„ŽÐ´¨â…&¸'V’IÀoÒ<¼Æí[ œˆ’o×ÿ_”Ä" `”$샰õàÂÞCðøýî]–ÜsÏ=”dÇ‘D|\¹…ŸÈ„Y³fiœU*'tRLIBbžˆ$× œRÙäÊÈ$å¼·’‡z(7JB~„ FÓè«U*±`Á›µˆ‹GXPÒ¸LÍæÎ©óÚ;'ç5ïÇó(4M¶I‘ `7=YU °KVa°Õ!°µý>ìåÝÈ8öÏŸ?ŸçJ.¹äŒ÷¯šà Rd/€þý7ò7%Q=Ëùœ|òÉlZ}xŽã¸eØ&ò¦eÎ#=ûŒ£w<óªñÇå;8kg\ îãÃ9Bý÷Ìl Ø)ÂŽ1J[ÂB¿[¦"زJy7l ˆc‡˜Ï.ÁªhX-ÞqÁÕ ªéâHNsd*U(v¤ŠÙM DÕ{kœB™*»yðÁ«Æn\«éÇ»9¡'é¹ëkqß÷›ôϯ3½œ’(\Ñ¿Ë#‰Œ,jãÅ­“% lýX›°÷|'~?MöTr˜^õŠ+®¸W’TI”ägI…©R9FðÙÝæÍ›X[ó)´Å”¤%yÏ9 ¥ ¡ß~ûíºoß¾ñ¿€8µ«$“ É]X±QdÇ‘Ç$6K°‚ ?¥O¨èåìB2‰ÍPêÚ Yµ¿«vXHEØûuh( ^…fÚ´i}}Yh‡ŒiÁçYTó´Ö¹|Æ»ù&ÜW2ßÅÐÖ ûâvUí>"½N=õTkívažy£$Îø)Nb«Q%; ÌÂãàç,¹É¼!‰;¶¶f8)=}N0«<²+ÚI*ÑW*à°•3’HŸs+hîË¡•b7‚Í܇PùŒ:ÆQ’¼±wJIvuv#°%9˧$ùd7ë3”¤ÒìFø·ð:»ƒ!œN&É7%±2 êâ| ¯îz±v“Þ܇¤Å°aÃ6‹L’OJâÞeŠ6¬ÍõóåЪh7E» ópÊU»¡¾NíN¼±v³³i7hµœ¥;—žII¼®sÔnìäaD&ã—› %ÙÕÙì»c!n½ïÌœ/v#®}Ab½þ÷øl®*×S MIZµje–-[Ö*¦$ÕOIèîØ¯_¿Ë¥$å<¼•I°4€aœ’Iì>0ùëÕ«WË$™1–š"Эd†/Â^z®Hâ4Õ$” jrµ8;Ui AÓªÁN²0¶“”µ“ dn¯N:U‡äˆrí$å¹/r{æ™gN`öEg'É·L’tºú7¡±Åu{¾:|œgôéÓG‹$Ÿ2‰¸Ž:—Ófb'©t˜§o'éܹód-*´dal')k'Av†ð ¬;ÉáU²“ˆÕêÑ?f̘QP‹ëš5kVlݺµNlq-mqïtÁ$ iqe¢!Èœ'í°ÅÕW¡‚uwUyU%E'»áДIö+ŠU` ‹Ý±dQØqú¸¤,»O´›J³×j9ÔŽÔT6²•£„ŵïO²«#‰w ?˜µ¢ÂNâB*–k'©’t. ’Ø/„î¤$>›‹‘ĈŒP$JÂd¿ðsä §µwH&þ„Hõ>ÌàØMÞÓ†sÞðÉ´WgeŒ=ÓÜøï¾ûnOÀÿÃJ¨ù²“$xàÚ©îv>®µª¤;W‚ªÀˆ#^Ù§v¬—Vƒ®…P‘€È 3AÛªªÀö‚®]»2·¼å_2Q ²ÎA{FžL ¤’þ@r¢KLª ¶»6ÅW¬—UY€v*QU¶„a¶¤Î¶’THûLg’·÷p×óþG–«—W€€Û=zL@,0ùá6Ü8é¼¶¹Mx¬(éÖ’!çSާfƹ1?¸íB¸˜’x”„ÁYHåA¸•$Ó:p¶ÉØ–Ãs2.äz¶¦;Œ$¾1 N/Ï1 ¸ËyfPÚ¸ôà™Æ4‘Ry‚[ÿØ~V·à™ŽŒ—\Ï áŠ½‡œÇúÄ«1%)KIP¡ýLPrãeÔ¦Ãx¶„!â•JÁv=j¦ù°9s¦q«øvXKæ½É{Ëi.ëu;DI䋯 m$5ÝpÜ Çax9‡¡Ÿ 0ã±Ï-¢ÎÁ¹N˜Ìéƒ,Œ2†_ÁœÏ›7oîÛ Ú•ãKíf+Àùчd+¡5F’í+Á0tíøw'Ì€„m'$¨D˜õîÝ{ a8räÈ›[Èt¶ÉýkA–‹óS3 Hgß 5Õ÷ßÿv0¡ï!ØV„øþÿîHpVÆýµœÖ6j>$‰Ò‚çévÞßú÷ù§<ÙU`g¢Ï [ž –ç}ØòØ?Ü÷¯ª½•VÃŽ+óÀÙÎKž… ;ÓLÖ—çÃ*¬¤["ú!"ï¨1­Ü¯7Û—žíˬè1%Q•šc¶çÏËòæ[ÞÿVšÝÄH#ɱ›l$¿<òY›»6f7åÏ1Ûógƒeyó­H¨ÙMLI*MIþýt—*ØYIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/modelview-begin-remove-columns.png0000644000076500000240000003426612536324471025500 0ustar philstaff00000000000000‰PNG  IHDRñ‰ýºÞ¥8}IDATx^ìY?HdGÿæíÛw»5g£‚‚ ba ÅÁB8$‡ ±²‘pÈq`0Øy˜N„C«’Îh„Hš-ô,¬äîºÃÊÂâ³ð,\ÝÓÝ·oòý`‡]|ûü.:9Þ™÷Í|æ›ï7ß¼])¥H"­53×¼2cà›Öðd½eù›x¦/ûWæEùW)WÍïjº¢ü“lG­­À—â-gx"…åÃ>‡ã,ÇBŽi™ä}­WÎ7Ù7ÐMû P”aÙð~I{ùŸl8ô¤˜bŠésqL1Åäšr-æE¿‡ù·Ð+ñìê û+­KÒ!ð„I|ÙŸ0O¦°¼‡ã,ÇBŽi™ä}Å_È7Á·P_È5)çÌ»J$?F….‹Š§ÒU×uˆA„±¥€1ðŽd2˜wÌã9:£®ë0 ýì'þ‹)þ‹ $úÿŤCk‰XWµqÃÇ#îwô7qY‰rG¯®®þ°µµõµëº¹Òéa½×ÕÕÑåå%åóyØ´V‰Á6ëihh ‹‹ œz÷R‰1ÄëPlƒp0–ØV*±1‰×úúzuy™%œÎ÷Q‰ÿtºŽr¹,󛕼R^%ØÆlãÌÆj%F7‘pÉójôÙÙÙ½TbˆpÅÔétš`•2›Í¦ÆÆÆ^ ¿â\®ñ;™`ž›Ó†ƒ ———i``€zzzT.—ƒŒÕë4sqq‘FFFTWW—æCgÄfÙè,--©ÑÑQjmmÅdõ:Í›LˆÍ‹KêÑ£̺Xô!jÄãÄçD<¥Læwþ™<¨¥ (Bµë´ëzêÇ#zùòzüø9Ž‹ÃCV@ v2éÑÑÑ;zýúOýôéaâµb`ƒR©è šššÂVóþ¨ÆÆFè2ù…âAT[[«¯®®TSSìüf|…žŽŽ]‰+ÿLiÜßÝÝu2;;;ß–0È1•fúùññqâ¦ÀU,àŠl ÄN°L&ý444„`tVA Öúú:MLL¨þþ~Í6ÛµâÍÍM599IÝÝݦRZ1ºççYZ[û‹müDmm­œ’ňñ-æèããczóæzòä=|ø%ù¾¶âÒ¡í(N~zûv‹“ÿâ„%•5㵦Æaýûôþýžž™ùl« FŽ"öööôþþ>MOOã»ÕŸ÷Lš[ÕÛÛ[ìëë+V¦™)žinnfggýkËK2Öc-t£¬†W—‚C…B]—#ó­ƒúY7Ø ­eãÚýxØh1dļøO n­‚ Ý…‚Ï•Ìg0ÎçQ‰m‚ØÓ§§>åóB˹ ›VAœJyÊØ89ñÄ.ª½U§Óügß 8°Á»c¿‘»&o!£»x˜ @vðT.ãŸu¯ßºÐÅCE~ÿËÍÕWU\á=I(RŒµE Ê_2ȯ(bÔÇÑ2ØA  Q$Hè”Ø‘Œ? ˆZdŠáohøQ¤RÄH¡ÔÚ•Adaä7u” I 2‘*BN¿sæž™7ï=y÷ÞF§;,ûîÍÛ=»{öì9û³/ •Asà†l¬]ûœBˆ­žOC™láëçT N Á“§¡m†ib¿]«nõÇá÷%™lêÛ=Q&ÎkbÿɃ$¿/ÉÆ®ç<$í;þɳ ±_/ÅxÒƒ{ BÒ&ΫRMKyfÎIbŸFb[6>¬þ†)m’ŽÃéx³¬~Ò:6WIø‘Š lŸ=fx|öúl Ê£•lάԶ­^Ào²Æýï ']?ö=ädëœ×0¹ÏÝÿ•ŸØTMa;>«úˆ]Ôä 0ÚŽ¥Í„I•výqØgÿ»Qèø4ôÙ§ac‹;1³j»˜’ÇÓæd9v:8ûKÿ½ÏͱÍÚJ›¿­dŠì¦›nr+V¬x-xGI¿+ÌH‘-'K¯‹Í— ¤æ„ wö7«›¢¾fû|> ´”ùíG¢á÷}×±Ø8P*óKéi@Xµ´vFàSLW×+-§KFOøÂܶm}?ùàÒÎÓdqnnrÚ× OCèytBаº(å‰/¼°·k—­t.º¨Ö˜Œë¼Æœ~ à­Yå9²ÿÎÿn*~hŽ;ÝÖ­[;€e§¼ %QN£kbkHÔþúõëÝ-·Ü"(³›:uª4.»G¤Ó7Ù rZ^&¸Õ«WKûú>†qh[@ɾá†\¯^½\II‰Û½{·Ð´q„Õ*†¸úúz7yòd'm:W‡N¤‡Æp”åNžlp'Þê>ýt/L3åG,mWVŽ Ù¹·9²·»÷޾®àóÐØð|!2:Œþf»uë~ïÆ/>nöì_Á¥sÈy–ÇÅk¸Õ+RXX¨¼èÙ³§òYøô|˜zððÿ÷“-̹sç‚w9A7á SA€[ à €Ð‹Ù&^ÐL »E‹¹¦¦¦È&®ÆÀ¡c€Pi;uêäjjj\¿~ý´Ä8daFàAƒ¹ùóç»Ë/¿ÜµiÓFçêúë¯w‡ŠMMI`ºÜ /Lv;w¾ñýÇC”–ÑGAÊO¸-[ÖŠËÈ]yåÕKän®cÇõ »ÃY² 0„¶Ì=ùäHõòó;Ε—q§OŸ²³&j„ßX;wîìºwïîºvíª%Ü=®wïÞn×®]îÈ‘#âŠnVG?ze¥;–fE$¤N]]›2eŠ=z´Û³gjä>øÀ üǵ {h¨«¼páB7xð`WTTdàQ,“eçÑU«VÁùW·fÍ÷þûïë8 Xº)=òÈ#2™¡hú 6;Õºâf×ÚæÍ›tó[¼x±ÍUÔIÇ”——ƒE_å6mz-Qyî\cãQèœÂ¼<‹ i6¢?`³X ý›Þ h0áYvØ “ ¼ ·]¬–yîå—·aãÞˆù{ÇÕÖî„v^ârs•ÃÐÐ téÒ¥îÍ7ßTžÃ²7¡+++³¿ùåZ2ÙFþÞ{ï¹qãÆ ú̱jb›Ik×®•ª KBdŠ0`€»í¶ÛÜòåËÅDU7OÄ¿ß?´¡C‡æâLˆLSæÝyçò¨¦T~~>L¹ñ*ÌŸþ¹15´Æÿè£Ü!CTË£}6˜îºã8pÀ*D`Dµ‚6ùC%úÿDÐïæÈlB\W÷™¼Â×ãpp‰ÉI0uÏA¸Å×úøh{YWUîÒK;ºQ£Ê tÂo†SìæÍÛâú÷¿t…ŽÚÍÖ’šØÃ‡߯š×øÛ·eN“õÖÛÒUP5SAÙä'y¶ZK pºêª«ô9@Ñ&"566¿>33ùÉêûm%&´%mk]„«ÑÆ ^Ö^²:Ó\Otß}÷Ñ+¯¼"è8Ûõ=„Kß`8zéi Ž ñµï-ô=¢rÌ"œÏRµŸÐË–(˜w-Ñïl„fž¡ÇAÆM@„× "²´^ê”È—È‹ }GõõµèZ·îUD©õ£’’ž4{v9555ÀO›#ã³ïgD í·"ìû´wï6çÜL#Z»v%½úêBÚµk7Q·nà‘ÒH7Žtü2¾o´¬¬¬$l¨„ à°5ŽšãOdîD\˜H%§ÑÐiCæ ¤ŒÈÎËËÓ÷D¤ïqÎÐòرcR†BŽ ùö‘]Xª:ѰgC¹!D -¯t°8$üaâ2>ÉøŒvFè´Ñ m¡xú~̘1\PPÀ°Xæ:ì2ä=,:­}G7?óL)KðƤI3¸D@ÿ²”ls› rìñÁq}ý!DŒâ×_ÿ-_qE7Œé„ Îáûï¿Nÿ@Íø• PQ½©éKFl576~É÷ÜSÀO?]Âsæ”qii?~â‰I苬1íShtÚKê!¨­­å_|‘Q$z>Z6ºÖÅÈ2YL’ÃkbKÁM¨dÏ´iÌ0Z2©&°v‘"kb£¶uˆyV Œ³= 8xàz衇hæÌ™\5ËXûÏh_wx$‰£%)tñÅ«5 ÅÆ˜±&F5´Ë„s°jÇÍ›×М9$Ü-ÆÔzÐÙ”›+|‘gÏLµd0OŽ:v,¤¡CË`UÔ‚Îk´bÅ;ôüóoQCꮞšÂWÎXãµhzX&M:ß[¶¼AEE?§7Þ8F55 ÐúS 4óBj×.‹˜%ô4´&ö¿Ëå1êÑ£ÜT×¶6ZZ[ì5d¼i«ù‰c×ĦÈ¥BÏì½Ü ÑBVûZÌ>§«š†ù¹‘U+ÂåÀ¸A›6m⪪*¡Ÿ ½”~I˜Ð6GŒÀvÞ°aïØ±ƒ2˜eßÍX£´I6´à ž={ß~û>}º™ß}wòÉ­wàÀ^ÐÚ^f"—©&6«’¹¤d"WVÎÃxÚòñã_sCÃY¾ùæ[¹°ðZÞ¶m=.RˆE‘ÃHÒkB|ÐmQ~ͽzñ£>ÇØè8?¿=¬•g¸}ûñºu‹a ˜•™&ö“ñ·‰À———›Õ—ÈËÕÄf ¨ŠMeŸ]±û‰MÀqKC}ÂGõQPjàvèèiõï^òÑGÜtRyÉ’%âÊÒˆlP2¦È>hhaEØnÙ³‚€¹Ôí´}ûv‹Ö ?^¯Wüjjæêî`~ºY³ÆI”ctöŸþ€PÑü&­×ÐpõW„Ôs ¢§àÓ%—tÀ|ý[ç+»˜“«£íöåáFX'˜“2ž[ë+^­°žºÂuy´ÕžˆŒ#ý~ÙI`ÅÝwß‚ñ'?6ë$;vS¢@¬åÖ­[}׸NôFO‡<ßgl)¶öÌÅß³º dŠH›O±«ŠŠÛD†¤«>îéÓ§Ãó‚Í“\Å4äÝAÛD@¿eSp˜ë.nÁ‚í®ªj›æêê]EEµT@¹TŸ/»L#œÀ¢ÓnìØ«Ý²eOâŽÄº3Ü=­1_Ínÿþðµöæ„ öÐÐJ8 \?ÁFú¡nhˆ{kôûŒû쳃î.âNj±Õ¸7¯îKà‚Të Ç„ý“us΋I6äîŽ;î h[‚9Hp’4=þøã?1Á<¡à'F‰ӣ‚q Ó†¢*j à‰vîÜI4EÁåŽ0ÀBp† ÈöÝŒÑi, -ÇŽKX087VŽÐ***æœüÍ0„gâ,­‡ ‡úô¹Ž®¹fõí{-õïß“ºwï¡õ ¯–g|çûÄ윉1Žs@ésAãFœƒŸ¦åË«éäÉ|ßôÔS¥ôÅu4bD9A6@“A#S\ÿ'(H´38A-¼VÕÕÕÓŒ¥@ÀŸÐp¡ÏĆ Тýû÷\‹~~Z¶¾›‘MÿFßÍ•(§9qh1@òjŽÀÕè& µœ6mšh4‹VŠUCØÔü‰#Yß̼---u‰g\ B@®¥4mŠ4±˜é:/~(êĉÝÃ?lßáÃ0=Ų°“lõáÂmƒR"­D{ ̃ˆ$“jü©Sç!bî„{öÙñˆªºß~ÄMš4¡·Ã@GyŽ÷™ŽCú&!‘çÜÀ?Üü~árw,’¿ª_øÁg¹Ÿþt¨ÐÐgæhÇA`ZÂ_ÿ9ö`°Æ&7)€ßÚ®HÆ« @qq1|ãà ‹BXû¼ya”¾Žuô·/m¯"ØpŸd¦¡±Mÿ¼ÜzüÏ(ÜÅ êEðÝŸO¶‡Éðç¹m7 ÷}d #Í; äûëÎÖíÿ=z ¢¿íiWl¼ù“'sOç/ª}ô¶™‰g©@#Ž<‘;ì¯2\9Þ8Ê`·?åÛ>™Š8Kaà¸×d fö¹¹ŒTʽ^|צ£) pŒûqʘNŒ,+ߎ­r¦'ƒ•Æœ]¨ËåŸs)­2+¥L{Ý—c1Û¥æbÌlaËP6£EI”çÔëáñ2q¬""Êóò,™žûˆœí²ûùÇÌaÃâ`{ t3ãÌaª""Êã è®ÆÁ4Óe óÜ › ˆŽí’@”Ç2ø˜š—“”•Q¯1óöSÍ^Î;·'Š( ¢<'‹=5ØÝï˜]ÌLÈtØ-MNCˆÙb ŽQΛ¯lcj8d\Þ¾ÞÒ=Ý´Žâ°A!²k¦cå RÞi+Oñ³Œ;w*›=02¶K§ Â4©ëׯW#FŒÐöšm¤l—ïPSÖ¤dDÊ;ݽëêêêð…Ma["[Hy§1žÅì5úV‡ï—0G4òÌHy§¡T¼/¼Ðÿ‹å£…kF¤¼Ó¬¼ÌþQ_L/X° rÊZ.ÊÛgOœ8¡ I$Õ±«§@ŽqeUUÕüLVÄfÍšÕ JÚLNYù555ƒñ;¼“iuVsŽ#4ÑDZÜ8æÌ™31ÈàsÖ …q1[d~~Îv‰‹Söºf%¿½å„ëùh`§iÿ*#óáŽ/4¸³ó;–µGÆâÅ‹ù>:LÀ©+*ŽŸŸ+VšçÎ5R)ÇEb‰Ý2ä”%R©Žv Dë•aå– "WvJì•a(å9ß]*r_Lˆƒ ¤ÇoÆÄ]Xu¸«ŽxíØô”@~#ÒCŸ¬ü‘#GŽÀÒèXcæqáÚ$Š„¸PÜ<ìG˜Žý ÖA(ú 8#8D[yÏ×à½õì‹é(\UßzE¯ˆÜUCתh&`¶ò¾¬úæÌ™3ÀÊä±uî ¯ˆâÑm²ý‚úÌw(ŠcÞ|¯…å|.ï¹-gŒœÖÅÜ!Û´ª©¾³Äb‰ít§¼1¿\³ï,±xEôÃv]šêiRŒ•²']b¥Ï„çÜ ~@ J,ˆ Qb@ J,"âH(q‚ Ñtqu늶}áé‘¶ù™‡Åéžy6Ï>Ûô°¶÷îû ÊêÙgã (¬ µ)\Fî[bAú/®Ò|Ís)B¿°—öIZ0=ãzÃÓ¢®'b„ÖãL夓–±À À‰9׌3x?áí ¿6ì<ÛzÞM&2²ªÈæ·Åï'›ç™»–Xd1áÍî&7ætïu9Œ‰eLl³jì• 6ÌÍ ¶M655 `Ó¦M?©x=ܳ\ßAÿPZZz”·fæ¥7&–1qœrgKoIII=è`GƒÓ{oµ½7ÎEžߺÀ Ìqw+fA KLwìûøãÿ½GQ™@¡“€Ç{ìÉâââVÞPO—¹o‰¬´€‚׼sæÌ©†G›YèUÿß/¿à~û“Èì´ÌN³óØäáϰs6{ÊÛ oPè˜çSµKivZf§sbK6{83Ñ€ºå–[~‹¼§ººzÞĉk–,Yò¼3C-›=db+§!pù¡ÀÍô4+1\¯nóZa²!–8=+ ‡ÿ?HwZºÓAú“ã3fìG7úYp0ý›k…b‰ƒ^* ¯‡>ëNKwZöN!*++@¤M¸øT€¶­tl—n1ÓÔqvRaŸGÈv™^Fl—4fïôyHÝé·Äb‰Ó9œŽÍŸ?w]]ýø‚‚Â$/AEIYk{§Wçε$.n‡D¬Ä®ŒÖV–qY{ÔJ X¬ pˆW8aµGáoz§ª¾³Äb‰Å3˜¦¶±ñäØòòcFc‚JlD¤Ä$þ ÝÔô!=ùäbË!yqñ0–¡3A}¾úøãÿ¡­[Ë1Ãþ"xÍ ,GáQ)1Ÿ¥Ž{7¶k×ß~F€meb+' °¼`<^:ÞÔ†¥pY:H1iù˜1% Á¢ýè,1"ÔmèDÂr†NØqF‰D>,³VQ*qa¡gó)S=›”C‰-éN;5 ÊKÉ$ðh 92%3®>>š ݸ˜Q*1‚a´·»2Ä÷©%æa@· S¹ruw§¥;-Ýi÷\±õÅÇÊîN;JC€÷X…пz½"¢>×Û$Çö¹O‰2¼u)ç\þvqÌíöɬó`·½Ê£Ï^˜Ê+ËUbN2¼íáHHú)®òDîìëŒÇ Ží pÎJ•ƒñpç<¡g×m ¯û\@_‰®äåµ··±ç‹fñzçO&[©µµ•àsÇIÄIjkKBÉLûº‹m;ûq&‚‡Cw¡îóTX£‚Ö¡H`û'Îý pb ÿ¥ƒã‡J«ñƒ×uuïé… Çè>8¢ B~*MIB°„¸çºµfCŒuj½jÕl}ë­ƒ­pÛmÅzþü!zÞ¼"}ðà.]TD3ÛYÉà,(©†U‡œ6½yóèäê²²iúر£“W¸?Ç_³ù§dà<°¢%Ø“]_ưÀX2*ƒ‹Ì&¤EÓ5gëxîܧp{˜¾õ­Å´jÕ?Ò÷¿¿™ÊË·ÐÒ¥?¦±c¯‡\n‡‘¥ «kŽØ¤uëþŠ~ùËmôï”SYÙ&¸]ý€**fQcc%1wGV‚0{ÈÄ@üg#à¨L©T' ’§6oÞ@ÇáTK)XTšwŽ$?“&Ç ¯"²ºçÍÍ îºëAš9s:”šgƒ-?aÕ [{‚âñATYùýîwU¼³ r¦ÐCm¥É“§bÂ+åî”ʆÇ$Y=ˆyóѱcõôóŸ? ßB“&ÍA×zdçãÜ„ ·—Ðï!³Ó2vÙ1™ºçNºá†›èÎ;ïA×·‰lŠ[„p€ðYc²Æ¦]]töìiåÊm´dÉF:yò-_~#ºÀoò,2ËËb¼j¹­z;;Ûéx‡î¿"8°‹Ž=@O?ý=Z½úÛ˜oÃu†ðmÖúœÒŒ‰]p²ÖcICíØñ„jn>¥¶mÛ…í¤† „|ŽãjøpRXoåëíÍ"^]¹ç>F ãPR7Ý´@mÜø¼Ú¹s¿º÷ÞejÆ'Õöí¬²°š¸Ž¬º2’ÁÉPb…%1s«÷Þ{[­]»SíÙó‰zõÕKæáï«çŸ¯Tƒ“ÒÚ Êމr(cbóX³µXFª×?ûÙãú«_ýKýÊ+ÿª·oßn¹\UÕKzçÎúìÙO5”ŒËd<&æ€É$,%ÝŠe«»1.MéÓ§»ôGÇxõZ=yòL][û[¤wBF,‹q·ÆØ—°‡{¨fLz›¾ãŽ;ukk§nk3õw¿{·¾úê/é}û~ñ·Œ‰Š%KÌ0 Ë‚Áâ^¡|EmÙRk¼B½üò³\Њ·n}P9Ó¬0ÃŒ4¡•´fœyæ[:tX54œâs'Ï ‰D¡sÊghí X`B¢X :Ö¶XñL7ÆÜètXå.¿|¤jkûLiMNoâÒ¶Ä4` »³ÐÍ¥«®ú½ðÂqúÕ¯>¦Ý»ÏÒ¾}š¶mÛOŒŸþô½ñ†I£Fŵ³Ž«iÍšÙ¨w]q…¢¢"E#Gæcû>¼Ÿ®¿~Ò ÂfŒ,©z»09Gôµ¯Í¥·ÞÚK--I>¼€FŒÈ§Ó§›1N~“hß ÎL™Ø¸´4ŠŠ‹‡ cr©ˆ0n„Bä#?¿€ÏíYc«L†2ÈÚº9th‚.¬À?ˆ—éÑGËéwÞ¤W_}…–-›Eíí­tï½?„"òõÙÉ@ÔC´hÑZL`¡ü&½þúО=U˜ýž Åí {îyÔ'c€@x§e‰É啲bXÜ%E4n\)âBœf³3ÜIƒb••ýähzñÅJªªÚAŒ/~ñúÉOöQié7xóÓ 9ãøŒe$“)ºöÚëè™göÐOÜM6ÜFŒ/|¡ÄJ›8ñë„1²»Œ5P J,–ØËdÁJÄJ;fÌWè¹çÞåc¬$N™¬å°sŠŠŠM´xñxÍØbè() æ¢ÀápÚÞÚjÒ7Ρ]»ê©®î8d¸—qèQäA†y©,1IwZ¬3±Å„ÕJqìXà‹õÔˆØÀ¸ cß"ºîº‰Ø/=]m‚âY ÌÒ2Ù¶ž­¬½i$¾üå¯À2Oà­Pà.V`ŸŒùŠI¶]–„œ á=Ïú+&†³4eeú^úaF¤(–cçg/ƒó ‚åØõd¤4ºØœ‹´˜W†l»fþÇìA¤Ø>ÖÞtß5á°ëPα/öÕá2{8²qd§iåeÕñ·+Í9¾ŒÃôñyJ ³'Ê>ÏYf!Ê“±¯ B;ŒA»&FK”ÇD|\§"Ä,ψ”c 2T<þy¸H9¶ ƒŸQŒ“)Ç DyB”§˜{ÎÆ)‘(6z‡²¶‰à†8F¹W(k›››-§N}‚ûèÊZÍ2´¾Dˆò¨ß@ V|bXüñ–-‹†` 8‰oÇCN'=õÔH0(Jòx'½›7«…~ô£o»³êђǧZZZ_òIŽ|á$KL‡©#Þ÷¦³»º:½®"QbOþgÁØ;D‰ÞD· ë+'o/#R7.|4hÐ ³X”X\ÚaoˆJ8çþî¶ÿúL7Š„NÆxeø¬\º6ø¯ mCÍnzÁ´@¹>ÐóÈì´×ËàðJ¥Ï‹kS÷‰Cµ\™Ø’‰-¯¥ÉÀÒJïÅ£ÀâÚ´Ï,±XâpyâŸ8ƒöö%K,–8¼=Òkkÿ·Äb‰Å‹%_L@Hl»”1±Œ‰eL,–X î´@ %²íR–˜d‰I–˜dbK&¶dbK6{ô#K,–X,±Xb±Äb‰Å‹%K,–X,±Xb±Äb‰Å‡û'¶á%g386M“ƒaåNº/ß nùð´ðzÒ×­ÒÔhwúº‚õ†É¹— Ò}iáåÜüð BÚì†ð¶© žiï!(3ä™…¶-ì=dòÛuôÄo-‘Nœîäs¿®ùÛГ'Ç?™ç0 ¤G8- Ð]Jx½nùžÒœãðö¹iéÚN ¬+]ûÂd§½ÄaéáÏCèyÂß{mرS.Sð·ßqO¡ìXûÚïåÑÖ Ÿl奃ŽZDýéžc<¬q W566^Ž´”]0@Æè‰¸,Œ¤­  €)LÙãžܺ=åÈßÒÈÓvR{{;÷*¼õ„´¯óÊò½–¡ ƒ ƒÜª\¤!¶ M÷þXF2™dú™^!Êc:~mmm½F”=QžEÄ—H$4Ëð^vì{×aþ¢4dð}pYþ ÇKJJ>=ztïÓë¸7d¬[·®vÚ´iµ<ð@íúõë{EÆÚµkk§OŸ^[^^¹ §þÕ«W×N™2¥vÅŠ|O‘Ëà:W®\iÉXµjËìË–-«:ujíÃ?Ü+2øù/]º”ß9×ß«2f̘Á÷Ä¡fùòåGª««ß&¢×à}Çû÷ï÷{„¯¯¨¨¨©¬¬< ƒò#yŸƒWÆ©S§pžRjï¡C‡ÞBÚ=ÝÒÿ1wå1WU×÷?:1*ƒs-óàÔÀÖЂ5¨1F Zø£–¶1mšX@ƒ ƪœ8Eƒ€Êц€5LV @Ôjiq*´¶ø¾ÓµvÞJNn¾woÞ½÷}éNNÎÏ>ó^{xïRjðFœx • üv7ß|ó‚… Ð -+È›˜@•dÒuå:n.‘ yy\Á"®¬Y³†ÏÚµd™LieÅüj\«\yå••·ÞzËø‘GüL2¯QV­¶[™Lýû÷oz÷ÝwwÄûim©ózå³Ï>«ôîÝ»éƒ>0ž šï)ÏH⫲*•^½zU>úè#òdy©ýœl_Ú\ ñüàÁƒM}úôijÿÌqPžÅCc»}ûö¦Ë/¿ÜÚ v¤Ô³®¹&o¾ùf›Q¥:Þ*‡Ç!ÎÅ_9(¾ŸäiÏ`­Й•+W†!C†¬Á1%ýYà“\³2l5Ÿ’ðŒÊN*¿%xè˜y£RÃÚRùäÁ "^lGKðhôœR_‘¸ ™<"àïÞ®æ\¬¼”ãÚºÏ$˜=ÃkÞ{Þû¢U«VT Τ»’.¦xQ%•|æeø‰Óî‰GÙ~âæ¬{EýÄiuF|P-É£¸Ÿ8›G1?q62üÄY}S¤ï³øzŒS\¨´5%¿Í\÷í@ö¥ê»±=ÈP0ˆÒ—¶•g)AÙ’8®h¡‚^n(À ËEiïV’x.ûÙê®V÷{̳(nGugdûbþYü²®³|–ÍœI<ÒÞU®”¼CÍ$^ ZeÔ=1Pz;²yÄmÑxÔÍ#N JާøÄçj—ÜG5ë-e“|=ÜèÑ£÷ð¤ZO—H5 [Í9–S¿ƒK(ÀŸQÄàuæ5ßeÒ±(—Lî_•/ÊÃ#®#ÛAKa²jŸ(ƒ_ZÝUò`Τëiï*Wj¶U«µú‡maâ±®ë¹æÊˆòìvT¾ø’e—ÁCIcžÙÿqJPÜOq_¤òM¶+9e“Ú ˆƒal[ì N®Ó³ÊøÄ`ÍÔ¾bÅ ÷Ì3ϸ={öص$4¯—âOqT•{ƒ%ëÖ­#“™ß;rÇw/½ô’›7ožÛºuk ‰rAÔ¤k€ý˜õÓüùóÝÞ½{µÄ#w?±œ¸·ß~ÛíܹÓÁÀãvìØÁdç»wïvpQ©=…ÚA^üúà®]»Ü;ï¼ã>ýôÓ”väçcëÎ~âcÿå)?®°r9â>üðÃxlãœ÷­ßàbmñOÁ¨22ã¸1pZPê± <¬~Ĉ~Ò¤Iv —ï‚Óè`K‚9ð·Ñëo¿ýv&ØSN«O<ñ„‡ŸÏßvÛm®‚ëçÌ™cý7{öl¿téRñi)8­º:~Nkד봸$f¡èlâvæ¶ÓòÉ'~1÷ÐC¹_|QÏA!Iüþûï;øáܨQ£ŒGëÖ­]¤yÛ¶mîî»ïvXÀn~£×¤ño¼á°àаPˆõÇÓO?ífÍšE)F©o<_xá“Êz¶Ýyçî¾ûîs“'O¶tÏ=÷¸©S§ºÎ;;ø²]ÇŽs¡—XPò Á=è¦L™b<®ºê*CbG•4Ë=æ$Ž5Ü8näÈ‘Æþ^wî¹çºE‹9,4ŽYÝ’˜h ØþøãpêԩЮ];žçâ!ãËa¿œþù±ÑÑÊ>ûì³PYjý”’|n¼ñÆé‘°Ñ•où{ï½gÇŸŒß € â:4çc# ["J. ¹ÙPZÖ\§ô?ÞýiHá.Ù¥KAlË/½ôR˱ˆÝ…^H†…$ Pм4#ƒ>xMi?mÚ´aQ0vÜ=þøã&q +ó^!ƒÊ­·ÞªcÂQJwƒÒ}ûö5$½§0²P½Ž¨ˆIõç½B~döU"‹˜tDˆ 4h¥Vl ÊU¾%£ú„ã„MÜaã œ®Q¥(ιÙw ±É›s-.Ÿ*ß§ÇyÐä5©Õð/@°CÙp-‘:¤ K]–•»¨Îͺ³ÃØZ©©¿r#b;¨ÇÆ-7–¯M‚z$á:a7v-²RÚÅv:tÈÒõ×_ßÜbɽ6CJRÿµÍhýúõÆ?wÑE±ïÈ?7öuUÿh§ …×l-Y²ÄAJçõH¤Í!ÍU J¿¸þ4.)øÂµf@®_¿~'¢º”næMYû’ŽsJè<¯å8¶ØŠGÊ;ùxÈBMë7&Ç/MüwÜá¡CòœNw:þ³¬í™meù,ƒ„XnÉâa<ó<ðï) #—u:Ùg›6mòÝ»w÷нY®Æ'W F ýÝC¿ôøáŠÇc,®›5›’øç (Ñ»ì{Zî±™zØ <ì+›Ç"®O½ÁiuÒØ$—N,ðºžCÚ„6mÚHã—œñ®þô¬N¬@HÆKlÀDˆŸ/ˆÁºÁE­\lvRËôK¸ã¤F€%W¶Œºxè\màÀÒàê XЂ0nܸä'½;o°GÍ:q<>ÿüséúšË6·A¼ÏóFëÄñÊfÓ¤c¤òà4ÏcØÃüÑGenfz’„ÄÀ–ל„Õ…át »ž|òIÔàaàò˜,“ÅrèbÌŒ‘ Nc’³,æ©§žò°t²Ÿì\)–† ÆwwžN«Žˆpòг=&ŸÊ,§3!, ›´©Äÿ0ñôCø.µ µå?ÿüó|¡6A÷¶ö@âk0†Ó*ÿ’K.ñ@^h‚õçøèæ†A¡Ä¹Üp8­:ÐÖ1€åÂið"Ìd|g¸÷Þ{¢ â7ȳ`q pÒ³>[:œF'—§åþÁÆcîø< B#°€î&Sà7°Æ6^\ƒ6Wv|ë§k¯½6Àºk娯ÒÊPJ…Òl¡4$V­¾ÊuUá- QZê€Åà_·¾ºîºëâzÖÍC ¾ZƒêˆÒ ¯¼òJ@€LÀfü€0¨ž‚ÓTkb·!˃´¥+ÎTADŠ‘/ù³OÙæ‹®"›@ÿ>Ô-siTÛ멸aK;îôéÓ=â=¬i><:ð[¶lñX2–Ä’0@Û¡±dŒ(dØRßý÷ßïÏl’>i†Þ1·ksçÎå-É/yNIÅ~À‚õˆ5öÐí<¢‚<,­Ib,8õUnÖúˆdüøñ4 ñ<.³aKFLØA<"Íü5×\Ciá±<ârË9£–ºyh<°zÚ° DEÆþ]¢™¬9•ÚOŽþœ@íÒ\¶XDk™1Q{6 Á”V»,‰U´SîRO\v—^4vìX†¨Å: Sáˆbs?¬¢N¤ò‹â¾Óþ(¯°ïV?ÖÀÄqØ x­f_%  ùkKé{Q쎣½Ò2ù‡qq; ó ’W×T~)s‰.,•)_ Ú’|[Ò®ãÕ:•±%x%h]ýËÁYt˰N ƪ|òÒy8­ë¬¿ÚÀ\I¼Ä'‹² ®ê¯(¤d_•±¥þIQr[Ž¥Åc ã¸õÂi]kŽG\¾xÖ§SçoDi|ųÅ"¶  ±%Šb—°¢•j!>àPÒ’WFpD–$.µþɾХM”4†”LÉ1VÝKiGÊ?cèz<Òþ7ïMJ;¸íˆËO\WÄÖ©9—a(ˆªmñòÿŸØeŸ3¥fáJœ…Âpƒ7Þ“Ä@‰Ac8­¼ÿêÌ 8­µòøÛ ,ÖªÅÈù˜ÓdP¿ÅØ´…l±9GÌ'çù []¶µÆwõßo1ùîÜÿ©÷R<\®+‹‚vᨓ–vS†þsh1¨ §Ê@Ú_-õ«ûÖ®ÚöÒ~Q¼·Þ?Í :‡¿Ë|*8î·åiÛ;{'b Ž“ìäÈ!ÑÐPò¼´HTt<% @‰.=ñÐÝ适DC*jZ(ø ®È}$ßD;ѯ峘H¶díÆöÍÖÞÕX7ãùg»˜„Cæ+Ä­ aunUåœ/dNþ“-„ò†kå@·p6XT¼µ`àŠ¢±„]™ڵ<‡ï…T²‚ÿ]F£‘ës KeªîŠ¡WÅtäê:+†Ê_Û;ÅYdÁÍfÏàŽ¡k@R©ó³WXJu‘Tãñ¸ÂåÖS\\®=BPÅúõJàÅQ½*®=Õ««ô‹~È*Î3/Þ'•,Í,Ò¡4w•ÍÚJãbÛ®FŠ·yŽL`Âí]Op,Ó_Ÿû©VïÂblrHy3@¬`Pç&ˉÂú´ôY›šæÞ +ûµ¿Ú“ÂÚºÔ“M 7ˆcR«êÊA÷œˆ» \lŸƒÁ3>æ ™ ‡ÃK|„çqGNÕìÀóà¡çlûXÞ}ByÏ‘,þ nÒC>XÁ»‡ó—©1B@rp•à¢M¶ÒS‚iNS?€üàr95£·¬tèHòãP Sáb*\LíúºSsúÛæµMFL¿¸%6AuZÕ®®^–xÑoÃíÞp¼¸˜äU«x'Kü×3†7S C‡9Yb®q Kœœ+K`Øú†ƒ%æMD–zÔ®Hã[žƒ¶þša¥9ßÚ¿Äk&™·1ôÏÚ’ùY‘c¸)`¶üãb‰‹%.–8:Žï%°¶-I(bý«ö8ºH†ÿÏ‚âÁÄ¿N&zý òe8Ì}v{Zÿõ‰àúÏ}¾7=GŒ‹›,|ÐþçRJ)¥HN¶Àøï°=[nºÍ[N¨oú¹ì>'†™ÑžÐ'lóHYÃMÿΗ›šƒŒ|Vòß]÷çŸæS2MwÙN—ítÙN'ôNêÆÎÂøû~ BÓûÅIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/modelview-begin-remove-rows.png0000644000076500000240000002522012536324471025000 0ustar philstaff00000000000000‰PNG  IHDR‰¿Êÿy*WIDATxÚí] ´ÅÕ–E‚[âŽ& Šʪ"Š(‚B&GML4nÑ`×àãõ—¸ „}WeĔՅ¨ ¸ƒ¨Ç E˜™ªú¿¯¦îP¯é™·LÏ{ýþ×sÎ=]]UÝS]}ûÖ½·î²Öz;¥ÔvùÎY;÷Á¿&X_Þ=òݳ"÷É7Þ|ua÷É÷aPhòýwEû–7Æ|ÏŸo. ·ÐÿúuÛ%H’ I¹HbŒÉ+òË…Ásük‚õåÝ#ß=+rŸ|ãÍWvŸ|Ï…æ!ßW´oycÌ÷üùæ²Ðx ý¯_— I‚$ ’$HR"$É·—š')¨+Hâ—«‹'ɇxI 1®®®^&“©ŸN§-°ìŸû õÁöà5a÷(„|u™q-4·2aóv]¾~|Ç…ž3´R0‰çù¾¦R@yRN]A’ò(Y©æ>Híʉe<ÞrË-?á„fôìÙó™=zL?þøãgX‚ÔÛƒ×øç8NïÝ»÷Œ>ø ¹ûßzuIdî-ZÔ¹W¯^30ÿÓ8OÁ¹•y ›ï°wì‡{?÷:ãñÇ?O¨V…‘„ÇT*Õ€˜…O½üòËͬY³Ì3Ï÷í4Äe}ã7êîÝ»ÛóÇ{,·ô×%!% ¶¾ùæ› ƒRÿüç?ùÇk?üðCU¯^=uÁØs®‘‚È %)ž’ð <_‡t‹-”£v¾ñÞÔŽ;î¨Ö¯_ï]R”Ľx}íµ×’Šèµk×Z¬ýþûïmhRõÎ;ïÌuÒøOBIЧ$Âo¼÷Þ{¤¢¬Ë 6ØnS§NµïdÊ”)>ŸXýŒ« üÄOÔ\^2h`¤E€ë¯¿Þôý÷߷׿'HR<’¸ÔLž<Ù€b ƒvsoëW­ZeçËô¯$~äðÃ×tPN&ç€x|ä‘Gì@_{í5‹M$$Á¾‹¥$K–,Ѳ¬³Ï7ß|cç~À€ö~¸5&³x衇êV­Zi'ŽÉ€,ãľúê«)J’b° )Æ" æX»eÅÖ“áÜ_tÑEÆ!OÍ1®,vëÖMí½÷ÞJ˜S9‚)² -DaX¸Fĸʻ3fŒEŠÀnîmýÇl盳ö· Uq-Iܹ¶ªúõë«/¾øÂ"¦M›l—ßýîwªAƒŠÌT¢'‰I8ÏœS.3D’AƒÙö»ï¾cçÓ"ɰaÃü·ú¥w®'Mšd:räHÑüÙãž{î©a !²z¢qXOÂÓ~øÁ@‚4 æZ´®ìC ÂwŠ"Úךոb ªM›6”ËIþÔ¼yó4Îbò‹/¾¨dP %‰VO"éwÜA„P—]v™Z°`ºçž{ìùù矯Ÿ²Í{«¶åÆ)t¬gÅŠT ÛÁƒwÛm7…/ÁW 'H±Z^$LÂ¥—^ªÜÜÛù?÷ÜsíÇË6Qá×Èrãoð ™[¶l™^¸p¡ÁÚ˜ÛàKLJo*Àâš5kø±å–Ù.zƒ/*SÑúؼƕ5,ªXVmÛ¶¥Øœ IIFÕTsŸæÜçVæ5l¾ÃÞ‰_Ïûá¾[@E¸S\üróôÓO—t¹9æ˜c’å&ÏróË_þ²¤Ëͽ÷Þ[”2­~âœç¬t:gE±wà¶Ëì/TTºI(IÕÔòÁm’ €Sé¦äÖò¾B- Ý úã$Ê´(Ó|m¶?ß{ââ”iQRgæO›½qãÆ„’T3%á|²McEIü½A\òðV×b‹™P’ÒïݸyÖ>ú¨îÔ©S›“÷öw9ˆmÖIëßÿþ·v¸ ’”xïF¦÷ÝwßÕûï¿¿nß¾}ÎÍ“Û5¾ÜÈ’ñ§?ýIí¾ûî9{`t›Ëd¹‰~¹ÄyöÙgõ³'9öØcã¹ÜЈa† b)Ƀ>XÆÄ?¡$ÑSç(N;ß´gå'”$–Ë4Iî¿ÿþIªy¹!Àøœ>PñB¡$D*ÈÖ­[g‘äH¤šW*É`ªh_<ÂgiDˆI¢A_TË“€’(çï‘ð$%}ˆË3Î8CÑQNìýH¼”iÐ$”¤”ib¾xæ™gFOI$I¤Ú÷n¨i…מ·ˆÀÕ¨qu¾5ê7¿ù:äC¢KÅ“ÀAÈnG'|•‚Ôۃ׸²=;ö=}à‡!zà’ƒ1ðÇÈîÔF4=ó@/û \OP Wu²YðlZÎýꫯvß°áÛÆÍ›·üêþû˜Ñ£ùŸ+ŒÅC™²î÷ ^7lØJƒ±›;î˜m:¨õø(ë%¯b) ‹õCæ2ôM¿óÎ;š±Ya}fc´JY@êÂúø}¥ž÷Ã}SW\q…¹øâ‹«,ÝX¬ê×¯ÏØ›nš¤ß~Û¤æÍ3ê•WŒ&¼ü²QAú`{ðW¶çK—xðuÕ ̯4OÇ¥ ‚0´Yäø=¾†í¥ýÛo×7nÛöÐÕO?½N-^lÒø¿ þ[ ð\ê¤ìŸû}ƒ×ÍŸoÇž7n ¾ÊÃÞÆÒ9%©5¾ÀýúõwíµcõÒ¥*5{ö5w®Ò„çžË¨ H}°=x+Òjþ|…½†.zÑ¢¬t¾d{IIÊÉò_‘—}°”4@ ýçZ¶l¹jèСçøÈ!Jò£ƒnÿÉ„ ŸÂÅQeø2–ñ„>G°mΜ´ÆØÓÆ­Â²Ùq9y“Bùx‹‰*@KEnoˆšGOå®ýº°>~_©çýð«XTò”iXnÆ]wÝxƒ ÎiL2üw!<ÿ¼Öœ8W6|ù87sçf\½m+s+¶‘ª´is´’TH™æO6˜Ý£° °C9²—¥$‡Òá“'ŸüÜðËçÿÉø·Ž';>yŽ­ãg_íÆ©Mð:öÁØ3#F¼gÀ§¬å&jƵ"Ê´`x2_¹V-Ê4.7×^;QujΜ”òC à<÷Ê’ôâ‹F±?Û1±e®‘DéÖ–’,\X1eš(ò0œÔ°¯HBJ²fâÄÏ0.áÿ;7>P[&2qü¨Sü(RëàuD&Œ==|ø»–’Èr%%©ª2Í߉D-_,’‚¿X°ÀèÉ“¿PcÇ~¨§Oß@>/@+™è(ÄgêTI8~ޱáyoÔĉkíø¹´.Yb„Ò”A”8"‰¯§f¤*àr[3H"BfnĈåˆ{q|Î¥¢Q£`Ûp%úl¢dìdG‰$…v+Š$2~ ˆ¾ûîjÿýÛ¨­!F›¨¿þõ!»réô%nH"«„K}ê©§4üž¢C’bx¾h0„zÆŒoô^{5C:“=ÌÿüÏÿê[ngzö<Ëê/úõ»L©¯’Ž„'©ˆeš)âIø<¯¼¢õO¼Žt tË–‡"ë×}à # -g-ì.¿üQŠh°Ÿ·Š O"êvÑÈ2Ž?bºš'žxBBµ—Þ|±’€²h& øë_³)Kyd‰Y¾Üt›7ß4ȃó{[?~üj¾$ã}‘5Ž$ü¯^¿…j¿¡ž5ë{ýÆ’œ1\:8 Ùc}Ñ?-ã’ø‰yB`F‡¦Ù+âÁ¸òõꬳ®Q»îº·zöÙÍhK«3¾C`ü´ºæš¡–|yˆ8Ú‰ ±Xnäÿ.Ôv™ìر»ÅS³goVÓ§‡ð\FõésžEržƒ_ÉIqqYnÄŽÕQE(RÌ缪ÅZ¾¼åŒ©ž6m=Vòföì”&ÕàÊÉoÜx',GßDb22Éq¡$2ž©S¿6P¸YÞ «æò2{ö÷ˆo€À *웉Õr#;»’X`Ö¬Y–Šð7a„œ!zS'(Š»Yä&®?þ×–ŠüýïC)åPÄÔÒ?”Ä1¡v<ÛQ6ö98þ‘#ÿ /¸ÃUÆ:u)´ÁZgÅáø0®’¨‘ïêu}õÕW+æ¸!óÊ8@Q®é0ëÀj¥$YÞ$Mýt#3`Àº~ý†H¯ñýŒ%ÓJU™/7n”„L)yéÓ¿Ò§ž:À2¬tàÛ¼À¿âøã¦LJ‚X0æ®»îÊ¥W#@º1=ôPÎT äaÃËÓ¸f¿(£Ÿ|òc¤X;ÜîÊžsÎ@3cÆ×šzGAì5qC’,‚d¬ôõÐC/éŸüdO½ÓN»é«®zÔ¼øbd+‚øš×8 ‰˜’b£Ó\uÕU†‘¦OŸnüwÁ5" KªL|ÿjÕ¸"Ú£š5ë[˜ñ¤š4iŽ]Ý•Üø²¤Œ,µ–N™¦c¥'ár“Õñh5|øÛºAƒíÕ‘GöŘ×Y%ÇMþj«D/«¸°0+ÅÝwß­±Q§@QÃæg¾ùæ›­åü“O>Y|^à⥣.¹ä^$Š®©à[½bEV­MI“mµ®XësÊ«8)Ó¨Šçø»uû¥ÞwßÄ_ \z8n";ù)Q¢ÅI™&|FØî.ËMËyéWí< —NbûöÇêlô£a[q8Ü 0õÁwF6­b§'árAä=ûJ`¦Q£Æg-ãç¸yìÚõdèS¶ä–œ¸oð±ˆhS†Ù³Dº)š')v¹ÁªÎ9çÕ£Çéꨣúè#ì²;¢®¯7îcˆÅÚRŽøPF[S§£¨îÖí4„ÑÎŽ™ãç¸y¤BH»å&_±;®gΜYƪF÷nxäæ—æˆ&ù–£Qq[ndÑc"ÂñËxýçà’Çå¦Öísmg—#ÿ(GÆÕGÚàxýçØj.P{(‰ïÓ‹ ¾­/û죑²¾8$!ãzé¥à g-|L>¦ ¨&L˜ð‰ ‚Ôۃ׸2`š:u­:è N $ JBIZ·n·fðà7`ʰ6Ãÿ“±„Œ'ô9€mãǯ‰ÁÚÌ AóKJIz÷î­¿üòËôgŸ}f¿~”5Rº°>~_©çýp¾åºë®«:%ñ³n¼ñ) K³·Ò!%Ð^ÄZÅAêƒíÁk\ÙžSýMç¬Rò$S¦|M£§Œ?–ñ„>G°<¾ÆŒùøÿ?OR7OJ7ÎYijiXDÈúÕ”©¶¯qe@‚Ò4ì)•L笉?5óæQrIçÆ2žÐç¶ÑfcÏÐåS¤›RˆÀz‚‰$¡€ T#I¢_ÖÇï+õ¼_Ñ¡'*Ê8a±OJ㜥!´¯'É>‡}ùnüñwÎòS™äCÏ< fìI<å“ÝìÃrĉ³†Ð$ǬËNöVåUœÄ÷ÏwÅ*˜† yS=ñÄ2Ú½ZÛKᜅZ~îÜ­{IäèP6xðkjذ嚶0Üá® ÎYŒ7òÉ'Ÿ¨µk×Z@˜0Í#™S¹¤Æ³ˆ ·Þú”ÚsÏŸyÎYaE5”Ni%Ͻë\†Ü¸wQÏ9gíºë^êŠ+)ãœ7$‘pb %ë4Øÿ ×ô•W^iެÆmöÕ ’dÝ;µBìEË®Ã;VRO«ûî{Vwï~ºðK/}@eÍS±³Lãó,^¬Õ-·L¶È}ÒIÂ-á9uûíOÁ–¤³E–œ±éÜF_‘dÑ¢E ¾"@Ycè>úHóHê %)†'¡ûüSôg\aŽž{n‹u¥ Í(í^÷ܳ)í^imnÜú« >>ÇÛªU'C…Ûÿ›£‚g2ÔãÀÚΜvÚŸùì9ã8ñ$ oÅ*øÙš0Æ’'¡(›®ºjü~¯¶{Üß!‚08ÍÞ{7S-ZtPYǬL yFÐê쳯ƒÖñQëdrö%0Å´”äÔS/Ñ´+áGJÂ÷þŸÿüÑ£FXê*¢>ÿüóœ>$££â­å•v6¡Vd„K'Ò|½aÎ?ÿŸÖ1ë†Fƒ²èXú ²)¬K-çGzÌ÷"óóŸÿNï¾û>H÷(Füœ³<3&Ť[…¦b þ7äOÌ#<¢²äBtÖ˜œE”4¾´Í\»ÍGü\KÀ;ù e‚=I!F~7м‰ÕëÐx=~š?Åa¥&[{|ý† 1¼lºOè5kÖG1×_½EšM›6?__!‰D‚Í(ν­~xžùýïo´|ÊÜjÝ&ãHI ËøMöÒÖcïæ˜>}ÎÕðàCà¼iF(a³èæ &•NZex’·ß~›Ñ0÷‹%ýkͺyŠ'Álȃ`¯¡ {(Æ)™3g3(†"pv<䡸/E½ c­™åóì¼ó®à7ºÙ¥4nÒM˜K…'ÙB°y§˜eÕe ©9W¾äc=ŒëUÖOeæÌï©”éËÐ ÝŠÁÓ¦m°zñBecStý¸á†±‡•µžŸ9s)ÌZkº{ÒØ×.ÇI™†P¤Æ^·ùnˆ Li"H2pà@EGrñ®Qç¬.]ú©ÆwüÀøŠb1‚Û(:<Ñöbþ|ÙNü<ø¨Ž¿öÚV™Ö¦MWx#Þ ‘øFmR?úÑŽÔ޲шqs©?zôhFu¦çÞÇ+°uŸ;¯qkyq§ø8hÐ\ßc®¡AƒFÖî¶Û¦Ø62yq“n²cÈîüb fàÀ¡@ìC4Ãb5n¼³éÒå$ýøãKMÖiœãŸt#NàxáÖaœbðM7ÝD¿`x'¾XÆr>6|dXgÍÚ»ÕMD»ÁÇ6~qÜàË2ÞÙ苤(D$ò$\Z8v‡àZÆÇåÆc^íR3Êœ¡Q,<ø‚ZœPJ 4pQ“ùõ*qlŠ£Æ•ãsñßryh2 Ý•Ù&†kÜWAqÆžÄI9ñðàó%èwã»uÆI¶ŽOž%“¿ïµW‚ýVÕï¦hóEçœe͹áO&¾,H}°=x+Û 6Äg¯óEJ[Y«³ìXBÆúaÀ6FGÂØsæ‹¥âIh¾ÈmšR˜/W"ɜտ¿5„6 Ó\F x⯠3–ú`{ðW¶ç/a°S/GŠ$BI˜¥bêÔÒe©;võ6Y*"@’úIúžvÚi¾!td™³¤J«èÌYXnÆÿùÏÿ6Ó¦} oµ÷ÉècC3æ#©¶¯qeÀ‡6ŒVË–‡# î‚ÈDâΓ’ì¿Ë/zh16?4?òÞ|˜ƒQ£>°à—ýs¿oðº‘#ß7'~ˆ-úL«VÑæ»‘tذaý{ôèAµ{I£4íD†ºt$†çTË»6«7a½ôa»³/Éõc=ƒñ¡œâf`¹ùnÊC:gíµW¥i“>ðÀVx¡­MX‚ÔÛƒ×Ø²=GB!ˆœ±‘öFä”VYŽ9æ˜yÈnµ bê;íÚuDÖ«Ž«x.uRöÏý¾ÁëxYѦMûwƒ™³¢¢$sçÎíÞ¼yóÔÁœiݺµjÕªÔ í˜ø qg;2 –iÛ¶-´ÞOkÍv¦ g½k¿Ôží0¢jëÇ62g¥š4ib S)I˜Í ¤éõë×iY67nÐAú`{ðW6øÒYFÀ›#+•¸¢H"_%Ć€@–sÀs©“²î÷ ^ç•ú©f£@¯Üw«6lØ€ùÚ¨p´»º4I$àÿ Ôïl3l#p£õÒ`ÛØÇ­wýRˆ­V”ž¤äž8q¢]¿¼ìáA'Ÿ0G âDzŽlž‘¦¡÷—œêæÖñ³y+ÝxýVæq¶*Ê9ˉÇäIèÁw›|PUróty«”<:(ªJ-y£@’òRÓ—"/p!Q¼²H BËf5S ¶±ú·¿ýí=ü/æ[®’ž¤ªƹéGÛ‰2ÃxE¤6ggbl–ar ÷~áOwTHÂ÷Ã×äÒž Ñ»äH²ÕFÉZ‚$•S¦Ù—õøãÿ‚Ù<™¸Ûe IÜÇ+"ñނի$q‰yhJgMüÃÍ&HRId©G¨Íõ«_qŽ2ÎN$2$‘:—Lº­cý*í“'‘4ôª:`Œ›‹ÕåLälZdþÖ÷ÝwŸe–h‡–ÌGâŽ2 }”ÒM¾Tðù¤ äQ^úú°±’Xªª'Ab£“{õê•£$åÅL Ìo™r¾~î×B(I•v+CIˆDÄxÊç´ÏÀCZJ!˜P’ŠQùP7þH4—ýþ2‘R™{ZµÁ¬à÷ߥ¡$òÿDÖÓJê§?ý©Ùa‡˜NCÚJR Jø¿ÎÒ=%%qï‹Ò9묳îé¦JÖò…DÄÕë)S¦XW„×`¡D$4h­O¤jÊ4ÌOCÌÝJß&$*$£#¸]˜?þñ·úË\¤Hâø‹,tjذ¡yì±ÇlŸ¬탶ð$‚T ’ć’À©Üœ{î¹w¤$Åò$’f´sçÎê„N°¢/-¸É“0y¨ž¤ WÄ6Û}ùòå«ý)XO’bò$xý]WPãZ %‘e†ÞcM›6-³-MJ2dÈ2[ÚÉrS9éfèСý0ÿ–ŠD-ÝÈÜÓéK²ÜpðØÅE¾˜}á~ÐÛštïÞÝ" v/5ÏŸ§qö ’TÒž„õ²ßcZ•Bv‡ƒK&;ñVÁh…KݨëÚµ+Ò—e—›–-[*ž?÷ÜsÂ,%ËM%4®0_´–iÕ qm]R«g|[fÇL¬BH„\}Ⱥš I9W’”LãJ“o¿ýö°‚×b)‰0Ag‡©Ö­[g) sÂñû ”Œë½÷Þ«ÿò—¿Ü\%SÊ Ip|D h ] ÃüP$©”©@N.…©RÖëóÏ?ÿ΂¦QìÝøŒç-&‰é¦Ë4•R™†¬äF†çU¦EmO"¬LìI"°LÃ|¬,År#”„éa¡LûWµR’M %©¢´h\@;¿¾K¨ä“÷à~- êIÊsÎârÃ;´€“O˜#q" =‡Ûœ·^N$ðÂ訜³ˆ›QG?Ï”sÔJ;ȕɸömú°Í;O®'R%ešg=Õ°;H-Y²iP_ã./|ƒ_UAú`{ðW–¾LÐà+ O²­ùâ)PRÚ¯‰;é$pª2ÜeÇû°€€¾’€À±ßcëÙ‡;Ù\zÄÚ}ÕÛy„‹E›ªZ¦åœ³ ñ:º¤áÌ£±‘gè0£_oÂÎás£wÙe>XBIÜ‘†Ð,ƒWØoÚ´i—¡î@’?á8ŽT;uê´šìSW^y%ÃZÓ˜é1,«$c¢L«ë<‰ JXDh‰Æ˜˜ ÔaS/ò¢uáÄ\ã$2éғ妎îÝBè`‚㊚/&”¤/74„¦F/4ÅH}°=x+ç'6®µIÄÆ•G؉Œyæ™g´sæ)I–Šc=6¡$µ•’p=‚sÐSHgŽ|tsSÈ=k£q§h•Î-¸6Ò®½6i×¼ÛÛ´iC ¶IjãŠeÀºT iÎ=pò1p¢JÃéÇ:VwÜq-@§-¶±tÛDÜ´\;Âc±ÞH?ZÇ3®ÛØ/qΪ…Œ«ëTßùvœà–†L©– U²ÜÔFžDüB±ìôuŒgÚí½ä$“ H}°=x¨é݆)Æ•®† ’Ô$ P’N[šÉ ­>[d²AÁïÈÿ%Ü I-ãIŽäfì¿X>¾ÔˆƒØX,Á2ì”>Ú»¼—“ð$1T¦±ÄÓI#GŽÔÙèÑù;œI¹@*³œ bý°/.¡$1דœrÊ)£˜ÍÓJ’¸skÿ#¥\Þ¹¼üH‚$1[n$ªË`*'#謋£’Šl¹qç¡”$YnjÁrãxûÂ`uv#]8O5%±< ò⬆[F“Dº©½ÒMw‘nÂÂm+ÝPOB鿥—^J¤›Ú&ݸÀ)Œíy’‹¹• Ü[¤tcšWg®6BI’å¦öi\{”š’tèÐÁÌ›7¯CBIj™t#L$6ã.¡g‰x[0`Àº7ß|ó€„'©¥»Àݺu{ªô$³=I-5_ä±ÿþc}ÑéI¢æIÒÎäíy/\"×7O_O‚ ×µ¨Ôz’Ù‰ž¤êIDãŠÄÂÿ™:ujI5®@»dãÆk-a×z’s¬ŠT–¬†AS.د gBIb¾Ü8hàDàÞî¥fòe…,ROÂdŽÚ·'I¤ö!I¯"‰]uhÞHJâ/s ’ÔžD,Ó©è4F pËMäaÉ/°sµWgãšèIj›ìLJ*Ãøeð> ¸ö‰ÀV™vâ‰'2¶¼U¦‰tCF–â°€ïÁ'Ù;]›ríÁìNrþˆ3s¸v†Ã²/¬_¿~cà L~d3^¨Ÿ­)å—¢´KKšiϸ N¹~®Ïî8Û <¡$µQ™vüñÇOfpóÌ 1´qáÁsðõ×_Ëòap¸²õÌnÁ#³=yÁõlÆ&ÞCÚḵ(¡$µ’ÈÚAjúâ¼'Î{a³ïtº~‚ÂŒÆq4ˆ¸x:Úz‰~Î>ˆÂ8ˆ>Äh3‚ç3gÎdÖ¦ž0;8‘ýKm £ }8û]sÍ5× Óš Ií2È%Þñó¤ä›8iË×ÇÿòÚé¦ö8gåÌ]ƦPòár$l§;FX»ôï!üO!I$f"pØyE¸Ð Ë»GX{²ÜÄ_™VðëÍ÷¥çû2Ë»GBIjér“ I‚$•Znò‘üB䫼e"‰L–›d¹I(I-£$ÿaÕÍä&iIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/modelview-move-rows-1.png0000644000076500000240000004637512536324471023543 0ustar philstaff00000000000000‰PNG  IHDRÈjЙ‚˜LÄIDATxœbüÿÿ?Ã(ÔÿÿbhŒ‚á ÿÿMX£€&ÿÿMX£€&ÿÿMX£€&ÿÿbÁ%AÝF=###MÔ´‹eÿÿbíŽZÿÿÂ^býùóçÝ»wÿþ¥Š\\\üüüT1jP|üøñÛ·oT1Š™™YHHˆ…š¢ÿÿB/±þþýËÌÌ|êÔ)'''IIÉÿþQb ËëׯÍÍÍ·oßþïß?&¦Ñ&Ý`èððð8uꔨ¨èŸ?(1‰‰éùóçû÷ï755…˜ ÿÿÂ^b}þüYQQñÔ©Sß¾}#»yô÷ï_!!¡Õ«W÷õõQàæQ@CðöíÛéÓ§‡„„¼{÷Ž™™™ÍÀÀ‰hHÇÐÑÑñäÉ“ °ò?ÿÿ"¹ñþû÷ï?þpss#;‚ Ò~Ü;wN^^^PPÒŠg``011yøðá§OŸˆ(´ÿÿ"9aAj_LsGDZ†€TˆÈ"äEdßÿÿ"9a±±±±³³üøÂ…Øýýû÷Ñ…1à PXRÿÿ"!a122þû÷““SCCR×þþý›áÉ“'¯^½²°° Ä£`°))©?BÊ-H)õìÙ3>>>x+?ÿÿ"g¸!88xûöí?~äääd``X·n“££#qͺQ0Ȥ¬277ÿþýÇ «µNž<©££ÃÂÂåÂoÿÿ"g¸!##ƒ‹‹ËÉÉi÷îÝ}}}ùùùEEE¢¢¢˜µò(ŠÒ–rrrâææž>}:''çÝ»wwîÜÃ@Ü ÿÿ"mRŠŠŠîß¿¿¸¸800››»«««¸¸˜a´¸.€‘‘ñïß¿˜ÍÎÎ~øð¡††ÆÄ‰ÍÍÍ“““ˆ‹hÿÿ"yuÓÿÿÿµµµwîÜùë×/ffæÑ÷ᘙ™ÿÿÿŸ••¥¤¤ÔÛÛ»~ýúâââ’’666Èp&Aÿÿ"gÙ ¤Üú÷ïÄš¿ÿŽ.p~Ë™Øb@"[;ÿÿ"s=òÆh 8\Óß¿á D™™™‰oCÿÿ"°ˆiÿã1û÷ï¤D%Ò)£`²K ÿÿ"°˜˜˜ÈîèA’Ôh?qHû˜’=¤ÿÿÿgaaA+Aÿÿž°üøñäÉ“ïß¿“2þýû' ðôéÓÑ´5˜¤Ué„‘gÖÿÿž°899oܸáââBáfhVVÖ§OŸêééQbÈ( `aaÙ¿ÿÿÿÿ?þLvìÿÿÿoß¾…oƒf``ÿÿž°¾}û¦¯¯áÂJJ,ÈXÈúõëÛÚÚÈ3aа°°¬Y³æìÙ³?þ¤¤baff~ñâ+++\ÿÿÂÙÆ‚XCá†U666ò´:€?~L:ÕËË ²»˜Uýýû²gš™™yß¾}›7of=³tˆ2ªBÿÿ"°þQ.i¬Q<{ölpp°³³óÞ½{~ýúõ‡8YkF0:a€ àWáÐ#ÙXÿÿ¢ß†Õ³g϶´´lÞ¼RBŠ:È­ä™? ¨ DÆR>8Àº4ÿÿ©LLLß¾}»~ý:…VùøøÜÔÔtàÀ...III‚ ‹™™YHHðß¿ŒŒ D®K(Ò>\>>eeå+Vprr®X±‚¾ûvþÿÿÏÂÂüéÓ¿;—8:†åæóóójjªµ·¯b``Ü¿5QA0 ÐÀ¿ÿ88ŽÛöÿÿÿÖÖ•FFº<<\©©)‘‘¥;w.y÷î;++á3‹ÿÿ"¹õíÛ7[[[WWWˆ ~ýúÅÅÅ%**úþý{2ýA`bbøòå³±±“½½ÿ§O ¿~ýûùó7   ðçÏF»†äFFÆß¿89y\\"$?|`øùóï—/ 22 ¿ÿüóç##'ACÿÿ"!aAªU..®åË—Cff Ëf¶mÛöèÑ£¨¨(ú®#eddüû—‡‡¿¯oÍÏŸÿ¿|ùÃÌÌ$)ɲjÕª÷ïß89…ÿü9º®•ÀÄÄüíCPPRXXÒçÏÿüù#(ÈùçÏÿåË'š›{ŠŠòÓxÿÿ"§m YÇ1Ÿ4i’··wzzº³³ó€—õÿ?Ç¿¿}û#(ÈÂÌü¯¯¯«®.<<¼ÈÔÔâë×dOSŒpÀÈÈðýû¿÷ï±°0Šˆ°\¾|1:ÚèÓ§·EE“‰œéÿÿ"óÊHA•••õôéÓöööŠŠ j  þÿg`ffâæfÞºuý¤I9?¾ÍÉ™“ÿõëÿÑ.!%àß?>>¶W¯^76îÙ³T_ßaΜ5òòÊ_¿Õ×ÿÿ"9aAÆòóó'Mš×ÕÕ%..þçÏŸZ)ÀÈøŸƒƒ¹¡!uëÖ9>>i™™m’’Âïßÿabb­ÉÿþýãåeºpádNŽ£€€hGÇ6WWÏïßÿ}ùBì’ÿÿ"-aA¦„;::&Mš´gÏgggÈ‚ÌZ¬÷ïß_>>æI“j¶n3uêQGG«÷ïÿ}üøŸ••etZlðÿÿ?66¦'Ožæç;ÛØtt,caaøôé?##++‘8ÿÿ"!A@šPþüioo/..vvvþôé+++dÝ* ò1ßtÿÿÿgee~ûöëòåÝII ÖÖV÷ïdaacddüýû?33+3óèÚTrÀ¿ÿ¸¹™6mšñ÷↑ª9_¿þýþý;¼ì`ccg` \ÿÿ"!è!•à… >}ú4eÊ”þþ~H]ËÂÂòãǼ¼¼‰'Âõtÿÿÿcgg>wîìïß¿–,éX° ‰‘r0˯_?bbª‹ŠZÞ¿ÿ3š¼HŒŒL?2\ºtìׯï^^Bþüfddbddüóç7Ÿð’%7…„„ÿ&Фÿÿ"!Ð!ÉHRR²··—i,²ŽÙÒÒ®†>€‘‘é÷oqqùÌÌÈd\üçϯúúö?~ÐÕ=Ã011þúÅàë›nfæÉ«ðÿÿ?66N®ÿOÿÿ"yKZZº¨¨·›è™°ýb‘‘OK+þÿÅ«ŒŒ ?~0|ÿ΀.£€hÀøïƒOfÝóÿ?ÃçÏf”ÿÿ"¹š€\©Š)NÉ6²##Ãïßÿß½ÃâR×4ðù3ö½„D6-ÿÿ"9a ¶fG[Q´Ž-ÿÿÌš1 Ãôÿ?6q8\\„CÄ> C³•¤óY«Îoâ–_ BÀˆ(¾0 éSÿâÿ(kØrƒÐ7.ÿÿ"°È8¿ P¥>úÿŸ……‘——áÿf² üû———“st’þÿgàädâáaøû—™’]:œœ LLŒÈ5'ÿÿž°˜™™?þ|êÔ) 7¬òóó_¼x‘ò´ÅÌÌòñãû#GÎ~ûö™ìöø¿ÿøø®_¿<:ÌÌÌW®\äã“üò…¢ «ìì_¾|B”ÿÿž°ØÙÙïß¿ŸžžNámclll?VWW'Û`cãxúôfOO*eç¼ýgeeüøž­­…î6€……uÍšþcÇÖüþý‹˜aO\€‰‰ùÅ‹¬¬ìpÿÿ¹aUOO*V·nÝÚÐÐ@ž pðýû ‹+ŽS²aõïß¿BBÌ«V­gg÷oÜ8c×®Õ¼¼ŒÄŒnÿÿ"yÃê—/_V­Z•ŸŸïííÍÀÀ   ÐÛÛûøñã+W®0Ð}Ã*ÓóçoŽÝWáííòŽJ^^×ãÇ7=ºÍÎ=ÿhþÿÿÏÆÆ°gÏ FFæ²² ¢¢Bìì©©rrj‡­ƒœ¼AÐÿÿ"¹ÅÊÊ:}út;;;Ø<àÛ·o¨xz ‘€‘‘áß?vv΢¢é&&®ïß3 1±³3¼y󆋋ÈÖÀ(@LLLß¿3ØÙéêZ32ò01ýdúöáóçO¢Dÿÿ"y¡;;{jj*##ã³gÏÖ®]ûôéÓÙ³g'&&***BÚõäx…LÀøï''wttúŸ?Œ÷ï?|8 2¬EÏ™~üø«  ”Ô0o^Ãիǵ´,ž>½}õêqW×(ss‡¯_ÿ.%011ýøÁWqøð†øx oNNîS§vüúõ³¦f‘ÿÿ"­ÅÌÌüÿÿÿ’’’M›6©««?~œaæÌ™ý33ó—/ÿSRê×HJ*\»vŒ••½¼|~]Ý‚_¿FWÈ™~þü/))7{öÉààüW¯Ý¿ÅÙ9já‹zzæß¾5¨ÿÿ"gû׿ÿ|}}}}}á‚%4Tï0þüùÏÛ;ØÇ'øÏÈδϟÐ=Ã011þøñ_BB¦¦fÂïß ¬¬ ß¿ÿ'~úÿÿ"g >¬9dO›FF¦ÿBV«AÜÃÌÌ2š¨(LLŒ¿~ýûñã/$%ýû÷¤=Àÿÿ"3A ¶{³àîMOTŒŒLÌÌДg ÿÿݰ:Ò6¬ÿÿJVùù)Ú°ÊÏÏÀÅÅŽ?þÔ×G-\Øðïß?È5åžaþþýÃÇǸ{÷Êžž´[·Î²³39•ÿÿ"3aýù󇑑±··÷ðá‚‚¾´üïß¿üü óç·Ý¾}ž—W’ ŠQÿþýãà`yòäé„ … ŒŒ$T…ÿÿ"'aýýû—……åСC]]]îîî_¾|Ø*ÿþ`Ù¿ǺuSML\¾~ý8Úõ£ `dd`ee¨¯–“Sçààþùóññ ÿÿ"9 û¡¿ÿ™““þñãÇ\ìðÿÿ66æwï>Õ×GÇÇWÙÙù~ùòitá(åàÏŸ?Lsæ´Ý»wµ±qñ¿¿ÑŽVÃÿÿ"9aA&y²²²jkkß¿?°›BÿýûÇÃÃÐÞž,%¥”‘‘ÿöíÛÁ¶¤g(‚¿ÿòñ±\¸pvö캦¦åBB2¿~ý")¢ÿÿ"ùZ9–Õ«W¯\¹òĉ Ú`g€ÍÒ¬^½àøñ žƒŒÈ {†€\«öýûïššÈààl''—Ç?122’´` ÿÿ"ùPׯ_gddôôôèéé1Ð÷ò ÷üãà`¾sçq^YÙTuuÕ_¿XXXXF÷Ö“ þÿÿÇÉÉ0aB!++[i鄯_ØØ˜˜˜XXˆ­ ÿÿ"y_áªU«Þ½{×ÑÑ!"""!!QWWÇÈÈ($$äëë YO–_Èÿþýãädؽ{Ù÷ïŸgάµ·qt”Xº´ûÏŸ_..ܵµá\\tuÏðâêõëÏ{ö,ñâ——´‡‡hh¨ÂÿÿÿgÏ®µ°¸uë<''á…ÿÿ"ùZ9“‚‚FFÆ?þpss;vìèÑ£111Œ¾û ™~þdÐѱ Îgbbü÷ï/÷ùónß>çfôçÏèJe’ä Öˆˆâ÷ï_ÿÿÿ™™ù÷ï_ë×OSS3VW7æãþó‡pDÿÿ"9a™›››››300@8qâñãÇ'MšÄÉÉIç1ío¦¦v¶¶vŒŒ ÿþféêj~øðjSÓôÿ˜ ·ÍÒÍ=Ã0þÿÏÀÎΑ‘QÅÄÄÀÀ🅅ñë×o›7ÏtwÊÌÌ}ðàϯ_„çòÿÿì± À ôÉþ{BAÁ#¤Ø| 2@D“&žÁòWxçl|ñe‹¤¤¯ñXRs'©R.³óŸ«íD Vˆ³Ã’ZcÎ ã¾ÿÿ"9aÁ×W@zõþþþJJJ\\\ ô­ᾓ„‰‰ùçO'§UU#ÈÍÐôwÌpðËú89¹×(+ëýúEì}…ÿÿ"!$æTTTTTTÈ6„Šr”ƒªª¦¶¶æ—/íšaþÿg`bböò úù“øã0ÿÿ¢t… ¤f$+g~þü÷ýû¿Ñ«1©>~üÃÄÄD|›ÿÿ¢4äÆ^<yå( " 5¯ÿÿJVÿþeøûûEÅÄ€ÿþþýË<ºð0þû÷÷ÏHׇüKšþþeEÓÿÿVÙÙ™……XYqnXýÿŸáï_&&œcîÿ2 1ðñ± ª"v`Áÿÿÿ™%$88X(ܰÊÊŠ²aÿÿž°XXXÞ¼y³fÍ 7¬òòò8p€ò ËóçÏ–.]ÿýûW<îøúõÛÏŸ?±n8ù÷ïÿÑ£{G×>À++Û¬Y“<øãùWé200°°°>~ü€ q&ÿÿÂ嬬¬¯^½š6måVïÝ»'))I¶!ßJKËéê*><Wq 9îÀ#ZZ²²Ò¿~ýÂLLLLß¾ýpsó` Á‘Áþÿg’ú§¢ò÷Û7òÛ< ¬¬L È­ÿÿ‚\ȆþüùÿÿÿîÝ» àwÇ‘ FmÙ²ÅÄÄäÿÿÿæ-Ä¢5kÖ200„††ÑÔ®a Adll¼uëÖÿ°0$@‰Áž={àFÿÿwˆëqI111ýüù³¾¾ŽaõêUûö¥;99ýúõ ×Â,FFÆÑf@JzHj Ïÿÿÿ³²¢7ÞÿÿwäëÑär¨åË—_½z•íׯ_===NNN,,£tÂàÿÿÿ€eaa!{äl;“ÿÿ"3 Ï $\~ÿþÝ××ÇÛâ±}ûöýû÷ÈmÃ@ê ø1ñÿÿ"3a±`òÌ¡@|»|ùòË—/³±±Áçz{{F›çƒÿÿÿCš iQ©ÿÿ"-A@lúúõëĉ?|øÀÀÀY˜ÅÇÇWQQÁÎÎþŸŽ+g ÅÕ¯_¿ÚÛÛ ¥æïß¿·nݺcÇH;>îf•oÞ¼¹zõê?¤¥¥UUUÙÙÙ ëd````ÿÿ"'aݹs§ººšR<üúõKBB¢¸¸˜x[©~ÿþÝÙÙÉÁÁñêÕ«ØØØòòrooï—/_ÊÊÊ2 èÊé! }äȑ͛7sppðòòîÚµKQQ111‘›››˜âÿÿ"9a100¼~ýšáòåËrrrUYpt¾™‚››ÛÇLJ‰‰éùóç †††¶¶¶pWÖ†dHºyþüùæÍ›ŒŒ‚‚‚XYYŸþÜÔÔÔÙÙYVV6€ikP@bYMMMMM ¾ÞîÇ{÷îÕ×ׇô¾ F4ÿÿ"-@Œûòå‹¥¥ååË—_½zõöíÛòòòóçÏ31^<9|dÚ2ÜpõêÕîînOOOâ -ÿÿ"§ÄZ¿~=ľÿÿÿsqq͘1cýúõ›7o644-´†`ff~þüù† ?~lggçèèHüˆÿÿ"§ÅÌÌ Ù™a ËÉÉ=zôˆ £FÁàÔsõêÕ… jkk—”” AªE" ÿÿ"¡tTs·oß¶±±¹pá äß_¿~½}ûV^^žLOŒ‚A ©êõë×Ë–-óõõd q:ÿÿ"!aA @99¹7nýúõ‹•••¡¥¥åÓ§O £’Ã@ú€gÏžåââÒ××÷îÝ›7oÞ¾}ûöíÛwïÞ9«ÿÿ"í†Õÿþ±³³Ï;700PLLLGGçÁƒOŸ>0a‚ªªêèüÉðäñãÇ?~ìêꂜõY`ÃÅÅU\\ÌÅÅE°¥ÿÿ"­i°ûûûß¼ysòäÉ—.]rqqÉÎÎ655…\@‘‡FÁàãååõý;ÊzeÈä,dâŽ`ûÿÿ"ó†UUUÕI“&ÁG;ƒÃHKKS¢ÿÿ"ó†Uä:xVá‚¡ p IY‚ÿÿ"sÕ`Û§: ¨(Œ_ÿÿ™° ÈšLòŒ†´åG—qf@»5ïÿÿž°!C ,,,d',ˆÆÑZr0Ú­yÿÿ¹aõéÓ§sæÌ¬‘ Ï>ȆÕ#GŽ ’#CF&`cckooß¼y3ZTÀÂÂr÷î]䕞ÿÿBrø’ ‹uëÖ‘môŽ[·nAÆmGÁ ÿÿÿ‘––þöíeVYÙØØkCÿÿBOX&›²²2…©Šª7¬Žß¿§¦¦zyyQ2¸ ,ݸq#äJ%ÿÿÂ^Iýÿÿÿ÷ïßö àVGûƒЮñÿÿÂÙxgccÃ*E<€­£‹´3 ]ãÿÿB/K ‰àìÙ³©©©p=äHAeaa1cÆ †Ñùé¡ þ!’4ÿÿB/± )éýû÷gΜ¡ÐM$,,,,,,L¡Q£`@ä\ d.ñ |ÿÿÂ^211Q^Â]¹‡*¦:ƒ;wîܸqƒAAAA]]2ºI ÿÿÂßÿþýCnáSGSÕkÖ¬9~ü¸¸¸8Û¾}û bbbˆlÒÿÿÂ>Ü ®®^VVF¡³ ýÁãÇÏŸ?Ö¬YôÜ}? (ˆ»}ûö‰'‚ƒƒ­­­îܹ3sæÌ³gÏB–HL^ÿÿB—†Ä½¬¬ldd$e;‰!͵wïÞ?ž²~À( ?¸zõ*??¿……Ãß¿UTT”””îÝ»G¤vÿÿÂYþùó‡*Í,*6×F}¤4²µµ533cff†¾òêÕ+UUU" ÿÿ¢yãŠÍµQ@O ,, ©dŽ=úüùóGIHHXZZ2WÿÿÂ>ŽuóæÍÎÎNÊê/ø´£‘®ƒÀÇ®ž?þðáÃOŸ>ñðð‰ÿÿÂ>Žõøñã+V”——Sâ2H‰ª¯¯¯¯¯Ï0𰆀ìo``` e``øòåËäÉ“W¬X‘””DŒvÿÿÂÞ¶­ GÁëׯ!gëAF"yxxœ>|9úŸ`Uÿÿž°¨˜FïC@ͪU«Ö¬YÀÔ‚¬K r ÿÿÂ>ÜÀËË«¥¥E÷=~üxÓ¦M £Ã C@bJSSóæÍ›·nÝbbbbff~ÿþýÔÔÔ §ÍlØÿÿÂ>@jnn¾téRÊF†—.]jnnöóó *MÖÖÖ·oßž1c†‚‚++ëÇEDDˆ?mÿÿ¹‹ZP™˜˜F§t†€¤vvöÄÄÄk׮ݻwïß¿fffÚÚÚ Ä%,ÿÿ¹‹Z› c­T1jÐ@–ïÀEˆ¯vÿÿBocAê×OŸ>]½z•*îceeåå奊Q£€žr^Úz,â3ÿÿÂ>@zêÔ©˜˜ÊZÜ2ÏÑÑqÆ £ ý†&`B$5‘ÿÿÂÙúAN¸6ÔCF8àÊ/ÞWLLL|||Ä;hÐÐnÍ;ÿÿÂÙÆBNž¸F/ð¬µm° @»5ïÿÿÂÙ+„$dHßpÛ¶m'Ožäææþþý»’’Rll,dEΓ'OæÏŸI­ÿþýKIIg``øöíÛôéÓüøÁÂÂòíÛ7www++«Ñí:ƒ°³³×ÖÖ.]º”’«tXXXnݺé3Bÿÿ¾aURR²ªªŠ–=ztúôiAAÁÏŸ?Cê8ˆø×¯_Ïž= ÙÿúçÏŸoß¾A ùóçÏÅ‹¿}ûÆÊÊúåË>>>+++²= hþýû§©©iaañå˲³ýÿÿÿÙÙÙ÷ïßÜ.ÿÿB¿au(Èe¡Ïž=c``X±bÅÿÿÿÿþ=ÐŽì€Ö7¬ÿÿ"j€”’Æ;UGÅFuíïÿÿ"j€t´ñ>\Áš5ÞÿÿmM¢¤¾#^=ÿÿ-WFaðuç*1ÿÿ-±FaÀÈȸcÇŽ;wî0=ÿÿMX£€tÚNœ8±qãÆ·oß2°ÿÿMX£'€Ô€/_¾Ü±c‡€€I2ÿÿMX£'€¬nX¶l™ŽŽŽ€€Àïß¿‰× ÿÿMX£;€T‚›7of``ðóó#õ4ZÿÿMX£ €LìÞ¼yóäÉ“111,,,¤7ÿÿMX£@šVß¾}[»v­¯¯¯¨¨(dI%ÿÿMX£;ظq£°°°¹¹ù÷ïßþüÉÀÀicy´ÿÿ (àÿÿÿŒŒŒ?~ü¸qãÆÿÿÿ!5 33óž={¶mÛ–™™)++ûŸÐâwÿÿMX£@’ Dd‘##ãŸ?¶lÙ¢§§§¦¦Fä©ýÿÿMX£ `bbÒÔÔd€`¿ÿÞºu«´´´ŽŽ‘»*ÿÿmcìys'ÿÿ-±Fv€<ëÌÆÆ–••ÅÃÃÃ@ôn+ÿÿMX£€0`dd#I ÿÿ­ GQ€Ôõ¥ÿÿMX£€(@êÿÿ"°ý‹*`tÍû ´[óÿÿ¹æ}tÑúH´[óÿÿÂr)##ãóçÏçÌ™óõëWòlB3ÐÐÐ0""‚àXí( ?`gg/))™1c%Wé200°°°Ü¸qyÃ*ÿÿBOX]_wîÜéé鉊Š"i øÿÿ?''çåË—92š°'øû÷¯ÍçÏŸ)ܰzîÜ9äæÿÿÂ^ßýúõKMMmúô锤ÈE˜Û¶mkjj"Ï„Q@kðçÏ???ªÜ°:iÒ$äbÿÿÂwÃ*Äb ÖŸ?¨ØÔ´k¼ÿÿÂÙB‡¤'²Dãhp0Ú5Þÿÿ"¿ë)Ì ‹ÂF‘–r4²ÚùVxÿÿ"3aýû÷>9èa4m ?@|2Âÿÿ"3aýýûwÖ¬Y«V­’’’***222M[à @ÚãçÏŸ¿|ù2äî&&¦ïß¿ÛÙÙ©©©Ó¥ÿÿ"9)@ÊÆ„„„ÌÌÌoß¾8pÀÄÄd×®]LLL£ôaΜ9sçοÿþüùóׯ_¿~ý‚D11Í|ÿÿ"­Ä‚tôÖ¯_¿lٲ͛7C®õrwwOOO¿{÷.än»ÑÁªa ‘øõëW{{{ggg´êˆ˜ª ÿÿ"­Ä‚Ø7qâD333ÈûÖÖÖìÙ³‡è•ö£`0Hôëׯϟ? #‹?$ÿÿ"!aÁ¹qãäèGWSS“ýÒ¥K ¤/®ƒ|øðáß¿?~üظqã‚ 8ðõëWbîý‚ÿÿ"¹õñãÇ—/_BDC¬áææ–¸~ý:Énƒ@’ÎçÏŸ?þ¼uëÖ/^üÿÿçÎS¦Lùðá‘i ÿÿ¢Î†Ñ¦Õpð¨ÔÒÒrqq‘““c``xýúõĉ·oß¹…ž ÿÿ¢NÂ"¾„ƒ@–²²²²²2lœRTTÔÁÁáĉþü!fIÿÿ"¹*äçç¿yó&¬ úúõëË—/544H÷Â(¼àïß¿ÿþýûû÷/|˜TPPðׯ_Id‚åÿÿ"!aÁ',MMM9ÂëÞ¸qãÇæüh…8 $Ѭ[·nõêÕ!$ˆøË—/ùøø899ˆˆhÿÿ"g¬<55õÔ©SÛ·o‡\PSS£¤¤dmmÍ0zÓ°”$++{ôèÑ3gÎ022BNž9xð ……qƒJÿÿ"­I¿~~~ñññ^^^VVV?~÷îÝöíÛ`gßå—Q0ˆ$-,,^¼x±bÅŠÝ»w322¾}ûÖÌÌŒøâÿÿ"¹ñi§/X° 11qÍš5~~~ âââd¬; 3øÿÿ@@€‰‰É­[·þÿÿ¯ªª*''G| ÿÿ"uƒ½½½½½=Ãèê†a %ˆŒŒŒŒŒ D„¤A%ÿÿ"'aAº ËX˜™™GSÕ°3Há\’bÿÿ"ktièHdÿÿ™° ¥åkÞG×Ò r)“(‰¦ÿÿÿ³°° 5¿ÿÿ]ó>¢333$‚à 2¼E„,ÿÿž°ØÙÙïß¿ŸŸŸOù¾Â‹/²±±‘mÈ( )`eeÍÎÎVRR¢pÃ*33ó•+W c§ÿÿ¹ý‹‰‰‰ƒƒƒ’ò’°ØÙÙ¿ÿN¶!£€F’Œzzzîß¿O ´µµ`Í2ÿÿ¹aU^^¾³³“ò «[·nmhh ×µ£€V­Átª› ÿÿm¼h@êµøòYðÿÿm¼h@»Hÿÿ¢È\ê£5 †ÿÿ¢4aH£+ÿÿ"'aýÿÿÿׯ_ ?Žˆˆ€£5º‚t ÿÿ"'aÁ~\²dÉúõëG÷Lÿÿ"m®2úðòåË®®®3gÎ:tHBBb´™5 0ÿÿ"­Ä‚Ôwoß¾=yò¤®®î·oßFK¬Q€ ÿÿ"ñÎ{&&--­¬_¿>))éË—/£í÷Q€ ÿÿ"³ñþçÏʦÄGÁðÿÿ"³ñÙY6ZV\ÿÿ]ù9 hÿÿMX£€&ÿÿ¢4av GVÿÿ¢4a¸¬ÿÿ¢(a±°°pqqQË)£`8ÿÿ"w CbbâíÛ·!7¨ŒÖ‰£ÿÿ¢è#nnnnnnj9e 'ÿÿmcšÿÿ펚ÿÿ]ó> hÿÿ]ó> hÿÿµa•ãîÝ;ii ¿ÿ!ÛhȾÂ+W®ŽnXÿÿÂu'ô¿ÿÿ9~ýRûóç'™%ÖÿÿÿYX¸þüùÀÄôŒŽ‚! ÿÿ¹aUJJ¦ººêûwò7¬þû÷W@€yÓ¦­K–4ïÀQ04ÿÿÂUb1üùóÿÕ+†?Èo¼ÿû÷÷×/æþŽvG ÿÿÂ3@ÊÈÂÂÀÌLQã™™‰‰yt¨kÿÿ"ÿ¨Èÿÿ¡ÇCþû÷‰‰yt@k ÿÿ"'aýû÷““‘å÷o&&ff¦ÏŸÿýû7:X: ÿÿ"9aýû÷Ÿ‹‹éîÝ›‹w^¾|˜››ßÆ& &¦û÷oúݨ9‡nôìÓA ÿÿ"-bþýûÇÅÅxáÂñøx½ƒW«ªòððÏ›W[UöçÏ&&F:µ§ 7œC®å-)!ÿÿ"¹Äbff˜7¯ž••}éÒkÊÊ2ŒŒ [·n­¬ôÙ¹sYppÜÇ™™©sñ.9úûèÑ£œœœFFF-C¬¬¬4µt ÿÿ"í"L¦]¼xÔÅ%DMMæÅ‹¯_ÿuqñ–½té0ÖÉFFÄ´#UäØˆC‡gddܽ{’ªF/wTÿÿ"¡taddüÿŸ±·w·°°Ä»w ÌÌÌììÌŸ?yÿþˆˆÖa…ÿÿÓŽTlAÓœ9s,XÕØØ¹Øg´Õ5Hÿÿ"õìVVV33«_¿þýüù—ŸŸõÿ†¦¦l†  ¬oßÐãõÿ66¶çÏŸÍ›7ÿÇïTi ýýû—ïØ±c ÌÌÌ¿ÿž?>äò†ÑrkÐÿÿ"¹=ôÿ?çO¿ÙÙ™øù™wíÚÚÓ“òéÓ» öHHˆýŠ~ñÉ¿ ì?KMM¡E”ÿúõ‹……………åË—/K—.500022b-·ÿÿ"c¸áëóçOjk#¯\9âᑘ“Ó-""Œ™ª˜™>þbllxêÔÙÏŸ?Q%¾ÿüù#((ØÜÜ\WWÇÎÎþëׯ?þ×××{{{C¬MXÿÿ"µ*üÇÎÎôäɃÔT ^^Áùó/ëêê|ýú÷Ó§Ÿ¸úeSÿ˜˜yyy©•° ;8~ÿþmhhXWWçããÃÌÌüïß¿Ñë¢ ÿÿ"£ÅÐÞž,&¦°~ý &&†OŸþóð0óñ1ÿüÉðý;žFÔÿÿÿ©²@bÈß¿¦L™âééÉÄÄôïß?"ï*ôÿÿ"!& ÅÕãÇÏÏžÝçàºxñÂß²°°122ýüùMSÓÌÔÔîçÏŒŒØ øÕ”º˜……!)))77—››ž¤F ªAÿÿ")aýgaaxùò!''÷‰ÛX gffùû÷O``Ž­­Ý÷ïÿ˜™iÁÔ)&&6š¤3ÿÿ"!a111ÿøÁ ¡aºzõ&&”; ÿÿÿÏÂÂöù3­‡Ý‘m„Ÿ¦4 !ÿÿ"¹ÅÌÌÌÏ/€UŠžCH£óƒƒÿÿ"gëÏìmðÑÈr€ºû‘ÿÿ"óê^ê9f $ ]Tÿÿ“°þÿùÃð÷/EkÞÿþeþ÷otÍû`¿”””ƒB:×”˜¹#|ÅŠ:::“ÿÿÂu_! £ˆÃ÷ïä¯yÿ÷Q@€ŸtÍûà—/_NNNöððøøñ#ÙëÿÿÿsppDEE½yó†V½ÿÿ¹aõþý›ii!ÿR´abŽŒ Ù†Œš‚ÿÿÿëëë@ÎC ÛFFF>>>äãÿÿž°þýûËÍÍgdäøû7%Vÿqrò03s~ûv“<F­d  »j‚ÌÚ¡U¦ÿÿž°~ÿþ-&&™‘‘Mù†ÕÍ›e–.m Ï„Q@‰_ÈRoòL€Ô}héÿÿ·aõÍJ7¬þùÃüñãhã}ƒ¿ÿBæâ u%ñ‰ÿÿݰ: p‚ÿþÁ^,,,ÊŽÈôÿÿ"³ôû÷ïï¿þÿÿGI Z5X½zµ¾¾¾´´tvvö§OŸ‰Sÿÿ"ó.^^f^^fnn&–ÿÿG+ð÷ï_&&¦yóæ……… x{{OŸ>ÝÏÏï÷ïßD¦-ÿÿ"9aýÿÿŸqÿþíÉÉö¾¾âzsçö³±á[‰5 †€ôò¾|ùRTT”ššzðàÁY³f;wîðáà ,` ncÿÿ"-aýýû———qûö%ee^ïÞ½ppŸ6­h„"NÎÑ Ã@âq÷îÝ?~,**b``øþý»££ãœ9sˆkfÿÿ")aýgffþöaÞ¼FuuÓÕ«oÖÕMX´hwRRÓêÕ?~ÎÎÎ4Z'©é._¾ÌËË«¨¨È[\inn~÷îÝÿÿÿ311¬ ÿÿ"iÃ* çO>~ïëÇÁÁðâÅoß\Þ¿ÉÌÌ0Ú6àÁƒÂÂÂìììu…·oß~úô‰íÿÿ"mÃêŸ? <<kÖ~üzòä¼?~zzÆ|ÿ>zhÂ0‘*mmí»wïîÙ³çùóç®®®²²²ÄŸ`ÿÿ"©WÈøïß?ff¦ŠŠ¹UUÁåå޽휜ÿÿž°þþýÍÏ/âêCá†U..Þ³g½}{Ž<F¤iEù†U´&ÿÿž°þüù#""Cù†UAAžeËN‘gÂ(  fÃ*þ%4X7¬ÿÿ·aõí[J7¬þýËüéÓè†Õ‘ÿÿ¢Ê†ÕÿX«ËÑ «ÃÀ[N$1ÿÿ¢´Ëöÿÿè­nÃüýû÷÷ïßLLLÑÑÑ3gÎd n%ÿÿ¢(aýÿÿŸqt××pŒŒŒ¬¬¬.\X±bñI ÿÿ"?aýýû—qóæ¹ :?~gb¢ò–£`¤°hllÔÒÒ²²²b`` u0ÿÿ"ûì†\\ÌwïÞéëË}÷îÅèyà @š7NNNÅÅÅ ¤T‚ÿÿ"®ðß¿ÿ]]Y¿~ýäá-«†€$¬‚‚FFÆoß¾µ¶¶’Úàÿÿ"§Äúû÷  ãôéUoÞ,rK†……„Ôÿÿ"'aA’ѵk×vìØ!))éããÃËËKI3 Nðïß?FFFxz"©øÿÿ"9aALïïï/**baaùóç²²òîÝ»GÓÖpˆ¾qãÆÔ©SŸ={J|ÿÿ"­þ‚XvöìÙ¢¢¢ŠŠŠŸ?Þ¾}ûû÷ïÉÉÉd9~ R‰èC‡,Y²äêÕ«‘‘‘YYYŒŒÄNÕÿÿ"-aA íîî–——oooÿÿÿ¿ŠŠÊÌ™3÷ïßöìYFFFJTGÁ ÿÿÿ‡Ty©©©fff¯_¿¾qãÆ²eËfÍšµ}ûv"cÿÿ"-aA:'Nœpvvf``€X`eeÅÀÀpæÌÊÆ½FÁ ÖúÞ½{oݺÕÕÕÅÂÂòëׯÈÈHƒ &iÿÿ"!aAͧOŸ>|hbbÂÀÀI×BBB²²²gÏž%Õ£`pHD_¼x‘MGG‡6”`ccsåÊXù‚ÿÿ"yŒ’œá=ˆ#˜˜˜ ãl£`Ø€+W®HIIñððÀì:::Ïž=ûøñ#Uÿÿ"9aAìÀ4w´?8üæÊ¢#ÿÿ"9aqqqñòò¾xñ‚6Iô÷ïßOŸ>IHHjÔ(ä- á*S°ÿÿ"!a122þû÷••U[[ûäÉ“ êïáÇïß¿·°°ÀtÊ(º@EEåõë×UÄtçÎQQQ~~~b´ÿÿ"y‹!**jÛ¶m<àääd``˜5k—££#¬9? †4€”–––_¿~½uë¬ûüøq###—` ÿÿ"g¸!55UGGÇØØ¸££#66¶³³³³³“‡‡‡ûFÁàÒÁÎÎNRR²¥¥…ƒƒãðáÃG%~$ÿÿ"mJR*rppìß¿¿»»{þüù¢¢¢Û¶móôô„,ï"Õ£`H»™™™yæÌ™~~~::: [·nŒŒ„ÌêÑÿÿ"y®’¶„……!DptuÃ0ÌÌÌÿÿÿ÷õõ½sçÎôéÓŸ>}º~ýú€€âç ÿÿ"gu$mýù󇉉 Ò¬-«†€ôÕ”••{zz "$ÿÿ"s=òjŠQ0\|=###IÅÿÿ"8(iCêéÑïCÀ—s’ ÿÿ"°(_v<Úö̾Tò5ïhÚÿÿž°˜™™?|ø°{÷nJvýû÷ïøñã£-°A h·æÿÿž°ØØØžÿÿ"3a9¤Ü"oáÿÿ],5 hÿÿMX£€&ÿÿ¢(a®|¸ÿÿ¢(aAöêPË)£`8ÿÿ"³¼Ì„{zzJJJBÖ Ž6äG2ÿÿ"ûƒººººº:UÝ3 €Ä2Ç•+W § ¿´ÿÿ¢¨…Ùt6ÚÌÞ€‰‰ ~yñõÿÿ¢(M½él -Y¡NRkÿÿݰ:Ò$‚ÎØà™eùÿÿ? šÿÿݰ:Ò$‚˜™™©»4ÿÿž°XXXÞ½{·eËÊ7¬}º  à¯_¿œkjj6mÚôåËbF‘ÿÿ"¹õýû÷ÄÄDÈ•L¤,,,\\\£KI‡ €´gTTT***„„„`SÔüüüÿþý#²ìÿÿ"!aAªUNNÎŽŽøÌÌÌ‹-zöìä–•Ñöû0„ø÷ïß¿ÿrrr~ùò¥½½=""‚———˜azÿÿ"§­ýû÷ïß¿³°°|ùò%///>>¾±±ÑÔÔtô:áþýû™@dffÞ¼y³ŠŠŠ€€äNhbºhÿÿ"'a133³±±M›6MJJjåÊ•+V¬¨««í3YCpóæMkkk???//¯£GЉ‰9Üÿÿ"')022†††fgg—••=xð <<ü÷ïߣ•àpÊgóæÍZZZÿþ½xñâ¼yóˆ_ø ÿÿ"­ñ©\KJJ6oÞ|ãÆ uuuHbôtá •ÏÍ›7ýýý«««[ZZ ±LR;ÿÿ"!aA†~üø1sæÌœœUUÕ;wî°³³C†¯øøøHõÃ(„’°æÍ›ÇÅÅUPPðìÙ³_¿~Añ111IHHÓæÿÿ"!aAŠÇ‹/~ýúu„ ½½½P#XXþüù“““3yòdÈèyþƒ@ÒÍÉ“'¿~ý*)) H‚Ü%ÈÏÏ÷î]aaa‚--ÿÿ"!À‡7V¯^ ¿©båÏŸ?555F/.Ñ/_¾DŽÐÿÿÿ³±±ñòò21®ÿÿ"yKXX8$$¿šQ0 €½½=%Úÿÿ"¹Ú‚\€)>º*k˜øz;4@dSÿÿ"çNèÑVÔH¶jÿÿݰ:Ò‘Vñ¬Vÿÿݰ:Ò6¬ÿÿ¹aõÍ›7k×®¥pÃ*//ïF»Šƒ°°°ìÙ³ç÷ïߟ?¦d3;;û›7oÛHÿÿ¹aõÕ«WS§N¥|Ãê½{÷$%%É6dа°°lܸñòåË”oX}õêò ÿÿ¹aUKKkß¾}£V‡7øñãÇäÉ“i±aÿÿm¼t@£Æ;ÿÿm¼t@£Æ;ÿÿ"û|•êèÐè0ðaRR7¬ÿÿ"'aAöùnXÞ²=-–ˆžµÿÿ"gJ‡‰‰éóçÏkÖ¬¹|ù²¬¬¬ªªêè†Õᘘ˜Ž?¾uëÖÿÿÿÛÙÙ9::BNÈ&ÿÿ"ç¾ÂË—/»¹¹½xñBPPðË—/ÅÅÅëÖ­ -·† €ÉÉÉóæÍãææfeemkk ^½z5dý ÁBÿÿ"-@ªÛêêê?ž9sæÝ»wïÞ½srrJIIùñãòZšQ0td(`ß¾}óæÍ«ªªúôéÓû÷ï—-[¶víÚ… 2×…ÿÿ"yÃêçÏŸ7oÞœ››kll ¹É®¡¡áíÛ·7nÜ`ݰ:,$׬YÃÎÎ^[[ËÄÄôû÷ïÈÈH---È.Vbÿÿ"y=ǦM›ôôô 5îÝ»wDDDHõÀ(œÒ`OKK æààø÷ï++ëÏŸ?Ÿ?îííM¤!ÿÿ"¹ñÎÊÊêããÃÈÈøàÁƒiÓ¦={ölݺueee222£m¬á %ˆ¤èš5kÖ•+WöîÝ+**š››Ë@ÜØ$ÿÿ"§WøóçOŽ—/_N:"bddÄ0º|tx?þüû÷mÆ û÷ïÿõëWHHˆ   q ÿÿ"¹€addäààøÿÿ¿¹¹ùׯ_?þÜÒÒ±wï^FFÆÑÓf† `aaL*ïØ±ãçϟׯ_ß¿xx8q-iÿÿ"9aýøñãöíÛ?~ü`€iKJJŽž63ÌÀãÇ_¾|É;úECC£ªªjÇŽ6#ÿÿ"!aAJ£‹/ª©©~üQáëëûùóçÑ Áá •`eeå³gÏæÍ›GRªb``ÿÿ"9aAj½””%%¥Â·oߎÙ0ü¤R:|øpww÷š5kDDDH]çÿÿ"çZ¹ ìܹóܹs °Òr´*NR)}ýú5&&¦¢¢ÂÂÂâóçϤF1ÿÿ"¡Ä‚ÜþõäÉ“¼¼¼¾¾>¸Ô被á õONNŽPss3\™$ÿÿ"-a100lܸñóçÏÜÜÜŒŒŒ¼¼¼...ŒŒŒ£ÝáàëmÞ¼ùÚµk|||œœœÿÿÿ¯¨¨`ff†ÔT‹ÿÿ"ùZ9kkëÆÆFȲwž½{÷îܹ³¼¼\KK‹a´Núƒìììoß¾e```ffþùógKK‹³³³äÔ~‚SÀÿÿ"9a000@\mP__ÏÉÉ9ºlØ66¶ììlجݷoßÚÛÛ=<ÍÂÂòû÷oÈnÆ×¯_+))‘çúQ0Ø$¢ÓÒÒòòòXYYÿýû)Ÿîß¿/&&ÆÏÏOŒ!ÿÿ"!aAêA…Ç~ýú•¡¶¶öË—/k^G;†Ã@–œœÜ”)SvîÜÉÌÌÌÆÆvñâž¾¾„„âÖ¼ÿÿ"í†Õÿþ±²².\¸Ðßß_LLLSSóáÇoÞ¼™>}º’’%kzFÁàH,**:x𠇇‡††ä°YkkëúúzâV¬ÿÿ"¹WøÿÿOOÏ[·n忿Љ‰…„„\¼x1##r y>ƒ @J#..®­[·.]ºTKKKCCcÁ‚ûöí#~ ÿÿ"y€RnÉËËwttÀI…\x1Zof¹o"***** "il9kÿÿ"ó†ÕÿþÁ‡¬ˆ_\é_ŒnE€‘‘²¾>²@ÒZ)ÿÿ"sY+u -0H’š1cÆÿÿÿ333G›eƒ;ÿÿ¢ÇšwˆQ,,,ÿþ]³fMGGÇùóçóóó Ã$ä™O dåÚ°´[óÿÿž°!{Ĩ²æÂX¹re[[ÛåË—!&×Z.F@@»5ïÿÿÂyÃêãǧNJá†U..® .<|øÐØØrÄ |6`çÎß¿ÿþý;ž"²RKKƒ‘ñ…å##ÃÿÿL¶¶ö£ 1à€……uíÚUÏŸ?¦|Ãê‹Ï‘7¬ÿÿBOXd$++ëàà°k×.²] ±íéÓ§?þ|ôè¬={üøñŽ;ð܇øÿÿÖׯ_pq‰©ªÿúE~ÿÿÿ?''÷éÓûrržŒ&,dÀ´{÷ùÛ·¿ýüIцUff–7o>±° Ê<ÿÿBOXWRRZ±bÙÖ@¤µeË–æææ#GŽ´µµM™2åÍ›7lll¿~ýJNNîëëC[šˆ Rõõ5/¾œ:uö«W˜™É¬4ÿþý#&ÆRQQúýû7 <4 Á¯_?KKÛ}|¼>~üËÄD~UÈÉÉèëkøó'bÃ*ÿÿÂUÙG ³5¼Çi±Õ××çææN:uÚ´i/^¼€[„«Í;üùï—/¿_¿fxóæÙÝÇ¿ÿ02²|ùòG@`tÅ `ddüøñïë× Ÿ>ýab"¿ñÎÁÁúû÷ä"ÿÿì± À@ÍLú ö¦IŠWR¼ôM¾Kp2™mxŸ{À½¿æÜÑÝ‘™cŒªš…$w~|3£É? €;ÌüW=‹.Rîü„XÒÞoÿÿB*HûãôéÓÓ¦M›?>%Û¹ žŽŽNYY¤e÷çÏ>>¾þþ~ȪʱþÿGlªddM 2ø÷1@ÊÄDÂ=ÎÿÿBOXS>~üxá Ýq„¼¼¼¼¼<Òž}Èé’Teø÷ï;;# ##Ãÿÿ ?2|ûF~[a ÿþqs3³³CØ _¿þÿý›Ø~ÿÿ»LLL”W…pÇýýû¹#J­Û~ÿýûÏÍÍôäÉ“­[<|xUBBÑÙ9LGÇàË—ÑNUÀ..¦³gOìÞ½ôË—÷fîîá""âß¾ýgb"\nÿÿÂÿþýƒÜÆK9`bbBNUÔÿþýãæf<|x{d¤ê‚õ7nœY»vRR’á¶m+xxF·uP þýûÇÁÁ8iRyV–å®]‹¯];1yr~jªÕ£G÷ÙÙÿÿ'¼ÿÿBOX¼®¡¡QYYI¹ãŽ;–œœÌ@ååðÿ™™™¾ÿÓ×—-((¾råƒõëooÚôÒÖ6¨¹9æÉ“ììLÄx~`ÿþýåæfºxñIJe]^^ÉÛ¶½[·îÎÂ…W¿|ùÐÙ™ÊÂÂ@LLÿÿBOX–ŒŒLXXe;›!)éýû÷—.]b jÂú÷ï?;;÷ž=»ŸšZ¯©)ûþýOAAîÜܶ¿ÿ^¾|„}t-ùàÿÿÿ¬¬ §Oïe``ÈÉiaggúøñ§‰‰V\\ùÙ³{ß¼ùÄÆFø†Jÿÿ¢GUH­æ022þýËÀÅÅ›‘Ñ¥­mûáãŸ? ÿþg```ee‡¨¢®¥#011ýøÁ ­mUX8•••ÿdžÿÿÿÿùÃð÷ï?ffVfffbŠÿÿ¢GãZiýb’’ÍÈ(ýüùßùùYYX&N,“±°ðúúutõ=ù€‘‘éçO++G{{ÇþüÿÿWB‚ãÁƒgóç7ûú¦ˆŠrø@x±ÿÿB}H rãÆ¶¶6Êê/ø´£¿¿?eµ*6ÃþüùÿêÕO†""Ì'O Ð<~KË..æ¿ÿOB `ddøúõß›7?yx˜98˜çÍ›,¯¦f”“ÓMd¦ÿÿBWIIOž~üýó'±Kÿÿ®h7Þ!à ¿~ý¯¨ð×Ô´˜={+ÃçÏÿ™™™øù™~þdøó‡a´&$üû÷‹‹éÂ…³©ÅÅ3²²Ò?|øûý;+ÃD 7ÿÿ¾‹O[[›B÷Aæ?~|öìÙ€€*ž"ùïß?æ'޾áÒ¥›?¾eeegddüû÷ŒŒ*?¿ ‘%ö(ÀÿÿÿcccÚ¾}''·žžíîÝgþÿÿÇÄÄüÿÿff%%‚i ÿÿ¾ËÌÌlÉ’% ”5Œ ; /]ºÔÚÚJÝ„õÿÿ†ë×O200´·Çÿùó"YbßаÚÇ'äãÇ¿”¬†É€‰‰éçO†Û·Ïÿþ51Qïß¿¿ Ó‹¸¹ù—/¿+$$üû7Øÿÿ¹‹ZP™˜˜¨¾ª‰‰ùëWgç(-- D= 9iWNNýûw†Ñ©h²##Ó¯_ EEÓ¿|ùÀÌŒ˜Žƒ”XÜÜüÿ.qÿÿ¹‹Z»² wªŒŒŒþ0HHHÉÉI¡•ÉŒŒ °6Öh=H>øÿŸA]]³o YBBL ÿÿ²l†‘‘ñÓ§O=ÒÑѡ܉¬¬¬¼¼¼”›ƒ~ÿþÿë–yFFœ‹Gñàû÷X×EYÿÿÂ>@zêÔ©ØØXÊH!ež££ã† hp ###3&MUTLLLXƒ—HíÿÿìÁ À@UîmÿÅ:z¿ †À‘|³ 2ÌãõÓ÷ «/zK!ô…Js¢˜™»3£*U ïû"bUåÿ@¼E3‰ø¬ÂV7ÿÿÂÙÆBÎ÷¸6ãY²G­û¿ œœLbb ÿÿ“¿æýÏ11..Âsò# üÿÿŸŸŸYT”¢5 ¬¬ŒÈ¡ ÿÿÂÙ+„E¾á¶mÛN:ÅÍÍýýûwEEÅØØXÈÒø'Ož,X°²½úß¿ÉÉÉâââ ß¾}›1cÆ?XXX¾ÿîêêjeeEÞn>ÎóçOõôLûôéÙ•é¿ÿøøNœ8hCž ð°°®[·ôöí;ß¿ad$»­òŸ……ýÅ‹gÈ+:ÿÿÂ>@*))YUUÅkc=zôèÔ©S‚‚‚Ÿ?þýû7\üëׯgΜaggg``øóçä TûÂ… ß¾}ceeýòå ••yNfff~ÿþå§¿}ûBɆU..ž7ož21Žl¡&&¦'On±±1Q¾aõǯÈeÿÿ"êÌî «µµU.¼˜9sÞË—äoXýóç„Kii± à×)SfàÙ%;r¤133‰m¢Ö†Õ3z!ûIÿÿ"j€”’Æ;e£bLL ß¿ÿ{õŠÒ «LL,ß¾ým¼£ÚmXÿÿ"j€tïÿÿ3ŒnX¥% Õ†Uÿÿò5êŽJ& Z £ øû÷/<7’4FÿÿÚ ëß¿\\Е ß¿ÿÿñct•uÀÿÿÿÿóóC«®ÿÿ>þ÷ï±seÿÿ ëÿÿÿ\\L—/ŸÛºuÞ»wÏõ<=c•¿~%jGå(Àþÿg`ffd`ø³eËú#GÖýÿÿßÀÀÑÓ3‚““÷×/¢V©ÿÿª ëïß¿||Ì‹Oœ4©€““G\\þÈ‘M«W÷Oœ¸WGÇäû÷Ñr‹ð2@^^|ìØfivvν{—ïÝ»´§g;++ç¿„Óÿÿ’¡ÿÿÿ66æ—/?ΚUmaá½mÛ»Õ«¯lÞü†OhêÔ’ÑE!ø÷ï77áC›ŽÛœŸ?uÛ¶'7ÞîïßáÂÁÍ›çñð0@Vháÿÿ’‘ðÿÿ?†Û·Ïýøñ5>¾˜õÕ«O ÁÁÉ7ožÿúõ/ Ëèì ù²Žòĉ­œœÜaa©ß¾ý÷‹ƒªªÎ¥KGˆÌ·ÿÿ’ ‹‰‰éûw55ã™3O*+›ÿúÅ %Åóãùs§$$d99™G×%S˜˜˜¿|aˆŠªœ>ýøïß,\\ÿÅÅ9>|ûèÑ]yy "3,ÿÿ¢m,Æ¿xyùôôŒ™™™wíÚ¸mÛœgÏî¿yó¬­m##—A@YG)/¯ÀÈøïÏÆ©SnÜ8}ýúIƒðð¼¯_‰Z’ÿÿ’%tÃê¿OŸ~111|øðúöí ïß¿dcãøóçñ]âQ€ 022|ÿþçë׿ÌÌ OžÜ~ðàÚ·o_ØÙ¹~üøFdÐÿÿª ëÿvv&~~ŽÏŸÿ¤lÝúhÛ¶×¶¶EE®Ïž=cc#ê¨Q€ps³pr²üüÉÐÚºtË–ëÖ={úôN}}$ 1ÿÿ’ rÊÓ§/\8ÉÈøïׯÿŸ>ýebbHH¨d``¸|ùÇèi3&&†Ë—Ï?xp‹……áë×>üRPމ)½téðÛ·YY ÷ÿÿ’ ëß¿¿ÜÜ {÷.ÏȰüòå77#¤#óóçWîÿÿGkCòÁÿÿÿØÙ:;“ZZbùù˜˜™™¾~ýÄÂÂÆÂÂJLûÿÿ’ rŠ©©ìY-?~üåãc}ÿþëĉe¼¼‚††öß¿3ŒN’ þýûÇÂÂ`gtýúéõë×rr2ññ±ž9suñâN;»@aa®ß¿q^ûÿÿ’½B&&¦oßþééÄÆV.^ܾoß ÑׯŸþüù½¹y¥Ïè1¤”ȶ͈ˆÂS§vÔׇLž,ÍÊÊöüù}ii•ì쮟?‰ª ÿÿ’ ‹š¶þgg·™›{:´þÝ»žž:®®òò £©ŠBÀÈÈø÷ï..žÉ“÷ìÛ·ñܹ½ÿþýMHhtväââùñã?1Á ÿÿª ‹ñû÷¦¦Ö66Ö ÿÿ3|ÿÎðõëhª¢`ddüýû?{@@DppÃß¿ _¿þÿñƒØ ~ÿÿÒ ‹‘‘éë׿_¾ü‡sGSµ##ã¿ > V311¿lÿÿÚ ‹è¹£€ ÀÈÈHöª]ÿÿ"°ý‹*€’5ï£Vi hµaÿÿ¹æ}ìcݰJS@» «ÿÿÂ~(ÈË—/-ZôõëW²]Œl ¾¾~PPyÜgÏkkëûü™¢ «¼¼Gî q"Ï„á XXXW­šíÚåïß¿Q2¤ÌÂÂúüùVVÄ‘RÿÿÂrû33óíÛ·›šš‚ƒƒ)9èÿÿÿœœœW¯^ݳgÙ ‹‰‰ùË—ßüöí3ÙcžÿÿÿãââýôéÝhÓ 022½yóäñc> 7¬²°°üú…bÿÿÂ^¹üüùSCCcÁ‚”¬?l\ܶm[SSy&000|ûöÅÞÞkúô™TÙ°úíÛ²]2,Áïß?³²¨µaõâ¯_?á‚ÿÿÂwÃ*ß?(LXþü¡¤0ºa•¦€vVÿÿÂYÀ¯$;aA4Rx2àè†UZmXÿÿ"?ªOÀ mÈ ÿÑa-¿ÿ´ÿÿ"3aýû÷>9èa`ÓÖ¿ÿ¹¹™¾~=áà¿€ËÏŸ ?¼ÿÿ"»ŸõÑ¢E¾¾¾éééW¯^ebÈ»'ÿþýËÏϸvíì©S89F׎R°°047ç>¼››¨½_ ÿÿ"9aAÆSSSããã}z;zÃüÿ¹°èWMM¸] 77ÿÏŸÄnÑa``ÿÿ"!þÿÿ;¸víš l@AGG‡íâÅ‹ T¾ø™øû÷/??Ë®][7mšÕܼ\PPðϟߣ-wjÿþñò2tue³°°–”Lüñƒ´CJÿÿ"¹WøñãÇçÏŸC®p‚ܯÂÃÃ#))yõêUR¢üÿÿŸùÝ»qii­FFÊ>|dbbþÿŸ´{`ÿþ`Þ½{Ó–-ó–-»ÊÄÄ å&>lÿÿ¢NÍ1 ;98ã44ŒÓÒª¾~e`eeadd`ggË2†0øÿÿ?óóç¯Z[“‹Š&h@æYXØØˆnÿÿ¢N$@Š.ªE ø÷ï///óš5 NžÜ1gÎ…/>pppýþýûÏŸ?/_þøýû77ßh¹EøÏÌÌØÞž*%¥äé™~çÎÛ?¾000|ùòõÕ«?þüag'|­ÿÿ"9añóó‹ŠŠÞ¾}›VP}ÿþýÕ«WªªªdùðÿÿFF†“'·ÿùó;5Õð÷oèÌÌ,®®œQQ%%íïß“?i=’ÁÿÿÿYX˜Þ½ûtåʱ߸»sÂ;dsçÖΙS=uê1˯_ LZÿÿ"!è!óÊÆÆÆÇŽc``øû÷/++ëÍ›7¿ÿ9É>"ó !!ùffÌÌ,ÿÿÿãââ›?¿þçÏ°kåFû‡äÈRwvvÎ’’Y_¿~‚¬Nþùó[OOš«k”µµ¿¤¤Ò¯_„·mÿÿ"'O'''‡††8pÀÁÁ¡±±QFFÆÖÖ–71aŒŒŒ¿3˜˜XYZZýÿÏð÷ï_!!æmÛf~úô>>>êÕ«¿Äø|àÿÿ3°°°zzBÎíaaaüúõ[OOšžžILLÈãLj¹µÿÿì\A À kÑ=Ì‹/Чú}Aa‡ÒKkw‘'^—BBdOX!w/¥ÔZSJ9çÞû£µöúÙ£ óúK63Ä êfN"3ÆŠ>‚;Ü·ÂJÆ‹Y@dª©Gÿÿ"¹Ä‚´ÓW¬X·zõj“ôôt999jÝÈJ<€×ñÌÌÌß¿3Ïü÷ïïÏŸ ,,¬ø5Žbr •‹‹gÞ¼KÂÂ’?~0Ùrÿÿ"¿yëãããããÃ0(V70þýË '§ÀÀ@Âôû( 022ijêüþMÂÕµÿÿ"'aA.ûûZ †õXŒŒ ?þ‡L¬K†+øöíÚeƒøÿÿ"¿Ä¢sÅGäíQ@* 5Çÿÿ™° ¥åkÞ)Üø:ºa•Æ€VVÿÿìkÞ˜xxXÅĬyÿÿŸáï_&&̬õ÷/ƒ¸8//Ëè`bbdc`g§tÃ* r¾ÿÿÂUlll?®««ûõëe×Or={ùâMR;;ÇÑ£jjÚ¾|ùˆ'Y@ZWBBÂ_¿~ùöíZ¹ýÿÿ?þ½{wDE¹’í’a ˜˜.œqòäé?(ݰúèÑ}äˆÿÿ¹Åþ÷ï߯^½‚l#@6¬¾ÿž<C‡ýýû÷YXî±±á,¨ÿÿÿÏÂÂòåË×éÓÛ­¬ÌMM1Ó#ã[OOSzâr‰”ØØø3gN²²>ââ¢tn599Ò1‡/ÿÿbø þüùóÿÿÿÝ»w@Æþ“ FmÙ²ÅÄÄrÊÙFcÑœ9s<<<ÿSæìQ@ÿÿìwäË]±‚ÿÿÿ³°°¼{÷®±±aÇŽí«W¯ ýùó'fón0ŒŒ *3¢ @¾bÿÿìw‚I’ô,Xðøñc66¶_¿~õ÷÷‡††²±±Ž>´3ÿÿ¢(ûþÿÿŸ’SC(âêãÇ“'Of``øóç33óñãÇ×­[Â@·pÿÿ¢4a ì1Z¤3wîܰ°°@šV ÝÝÝ °)ótÞHÿÿ"'aý‡òüùóôôôoß¾1ÐwÜ,,,ß¾}›2e lƒdÖòĉëÖ­c û®¡Qÿÿ"'a122BÚ=+W®\°`•]DŠ3˜™™7mÚtçÎýû÷300ôöö>~üøÂ… æææ £# ÿÿ"­"ûÿÿ?##ãÛ·ogÍšuêÔ© 6HHH lS†]KK‹‰‰‰‹‹‹AZZZJJJLL RG¶ß ÿÿ"-CCê»gÏž-[¶ìíÛ·ÊÊÊ?~ü ÃHðJæBxck ÿÿ"-aAj]]ÝóçÏ:t(''çÓ§O~ .ÄURD111–U ÿÿ"³ñ©þF›Æ£ÿÿ"³ñXm\ÿÿM£€&ÿÿMX£€&ÿÿMX£€&ÿÿMX£€&ÿÿMX£€&ÿÿ"3aAz…ñññׯ_çàà`ã¨ÿÿ"sl’Œ©êžQ0Lÿÿ¢tÙÌèé(À ÿÿ¢h6ftè(ÀÿÿìkÞGÁÿÿìkÞGÁÿÿ¹aõÑ£‡ÕÕåî+äââ:wî<%VGÁÿÿž°˜˜¿}ûwåÊ?(JXŒ÷ïÿm‡8ÿÿž°~ýú)/¯ØÛ;ñûwòÏÙþ÷﯀ó¦M[/n ߣ`hÿÿµŞá÷ïÿ/_2üøA~ãýß¿¿?2¿ÿw´ã8ÿÿÂ3ÜÀ¹x“’Æ;33䶈Q0Òÿÿ"sëÿÿÿþýƒ¤¹ÿÐ;vFË¥Q€ÿÿ"'aýû÷‘‹‹åÿÈÁh Ÿ?ÿûÿtºp ÿÿ"9aýû÷Ÿ““éåËçkÖL½xñ€­m¯o,ëŸ?ô;Xr¤ÉèÚèA ÿÿ"-bþýûÇÉÉxëÖ•ØX¥KÛþýû÷âÅî®äæædFFHª¢S{ ²iöïß¿ðy *ÿÿ"µÄúÏÊÊ0wnÍ—/æÏ¿j` ù÷/Ú5‹ÚÛã­¬|||Â>~¤ùiïM³·nÝbgg———‡L2:;Øÿÿ"í"Læÿœ>½ÏÓ3ÚÔTóÕ«ŸŸ?ÿ Š•:}z733f‰/ÆþR üúõ‹aíÚµ oß¾…¤ªÑIÉAÿÿ"!a122þÿÏðïß¿ªª…!!ÅïÞA÷…~ÿþóÛ·¯¼¼ØfýÿÏé02S000@SSS“ššZuuõ§OŸØØØF×ÿÿ"õì666/¯ÀŸ?ÿ}ûö—‡‡™““¡µµæë×AAY˜wnýÿÏÀÂÂòöíÛ]»vÿNÑñ©pð÷ï_+W®000°°°|øð¡­­mîܹQQQ £{h ÿÿ"¹Wøÿ?ûw¿ÙØ„…YO:ÛÝ|çÎŶ¶õ _¾ _|òïçÝ»÷===hå¿~ýbfffaayõêU¿´´´––ÃèNÚAÿÿ"g¸››õË—……é¬41q]¶ì¶ŠŠ fªb```bbøò嫾¾ÎîÝû¿|ùL•øþó稨hGGG{{;;;û¯_¿~þü©  PYYËÉÉ9: 1ÿÿ"ù#66ÆÞddØ}úô¦·w­­ó¯_ÿ>|øÅÊŠÅ(FF†ÿþ±³sˆŠŠ Q+a±°°@ÖÚÿúõKNN®¼¼ügccâädûõ‹áÇ,¤ð^!µªBˆ9¿ÿæááéë닉‰”RHGSÕ ÿÿ"!aýÿÿŸéÙ³·GnöðH8qâøÛ·ÏYY9ÿþ)+«¡®®ûû7zïRë(lH0222--MDDž¤ü4¥Q€ ÿÿ")aýcee~üøÖ¿wî\¸mÛ\ˆ833Ëß¿s '¿ÿ—ÖW|C®¢¢âh’Ìÿÿ"!J W|«ª-[v—‰‰ ùf›ÿþñððùBìõ›”È^Ñ$5hÿÿ"y‹]AA Sêï_z}¶¥9ÿÿ"gëçO¬ÍðÑ=†CP÷°Vä:ÿÿ"ïêÞÑQ¢ah7àÿÿ“°þC.Þ¤dÍûß¿Ìÿþ®yŒ2àWQQqàÀvvv Ë-FFFVVÖiÓ¦©©©Aîpÿÿž°þÿg`aacøþü5ïÿþ1 0Œ®yŒ’°8`eeeooÿù3ùó"ÿÿÿggg/,,|þü¹šš$ÿÿµa•ýñãû••ùï+ä¼yó"Ù†Œš‚ÿÿÿ»ººzzzBÎC ÛFFÆöövä»ÿÿÂY211±²²SÒœúÿÿ?++ ÃÀ_20 °È7ÊV³A.5B3ÿÿ¹aUZZ¾©©‹*V—,i Ï„Q@©á ÝȺ-ÿÿ¹aõÏŸÿ¯^Qºaõ×/æFïC@®`edd„lò#>1ÿÿݰ: p‚ÿPv0@¦ÿ‰Lÿÿ"³ õïßß¿ÿ@È¿ò’ÕQ@#58zô¨¿¿¿¹¹yOOÏïß¿!E1Úÿÿ"'aýû÷‹‹YP…YP…ŸŸetAð0ÿþebbÚ´i“͵k×xxxJKK!‹¿‰,±ÿÿ"sÃêÕ«V­špÿþ)w÷xw÷`Jšù£`PHsê÷ïßYYYþþþ6l```ؽ{·››ÛªU«Âˆ›ÿÿ"uÃê_^^ÆÃ‡·$';¶I@@ôÉ“[õõ!óæµóð0þû7ºk8Hý³{÷î§OŸÖ××300üüùÓÕÕÕÂÂrK21%ÿÿ"-a122ýþÍ0{vŒŒêÚµOfÎܾqãÀÀܹsëž?ËÆ6z¹÷pH¼|ù2''§ºº:lHÂÒÒòÖ­[.Áˆÿÿ"mÃ*++ã»wîܹäç— .Îõôéç?"ÿþýóêÕc–¸r|ÐܼyS\\œ‹‹ ¾@]]ýåË—?~$F;ÿÿ"¡ÅÈÈøç77ßÊ•÷ùøø?}bçfddسg++›¸¸üŸ?£Ë¤†@+&°„âÿÿ"¹ñÎÈÈ$%%ÍÊÊtåÊÅ®®äß¼zõ´ºz®„„à§Oÿ˜™GWÔ €–†àÇ¡£ÿÿ"9üÿÿÿÛ·ßÿ201±pqñ‰ˆH³²²Ý½{íÛ·¿ÌÌLt;mfÐhii½xñâëׯð±«ëׯKJJòóó£ÿÿ"yi2 #û—/ÿUT´çÎÝÃÄÄ´k×®²2wee}ÿÈi¾™bÐ@J&kkë?~\»vÍÔÔÒO iΣ œÿÿ"ÿNèÑñªá 鉒ÒëTÿÿݰ:¢Gff¦¢¢âÏŸ?)™çeff¾zõ*'''\ÿÿ·aUT” VùùG×¼^ðû÷ïÈÈH''§OŸ>QRbqppdee!_› ÿÿ¹aõÑ£{¥¥”oX½uë²€Àè†ÕA þþýkggçææFù†U!!!ä «ÿÿÂUþgaa¥0aqrrñðüÿÿ†lCF­dò «hwÿÿµaõ—””\uu3U6¬.]Ú@ž £€€FVÿÿ·aõõkJ7¬þþÍüñãhã}ÈÈ`I)ÿÿݰ: 2Rÿÿ¢t`óß¿£› ‡+€\‰ÅÄÄTZZºlÙ2Ršbÿÿ¢(aýû÷Ÿƒƒ‘›{tØ}x&&&66¶çÏŸ÷õõ½yó†èuÉ ÿÿ"?Müýû———ñèÑí99ž¿~ý`bÝ¢3||=Vpp°žžÞÿÿÿ!—«ÿÿ¢ä7æ×¯ß´¶&]»vüïß?£-ôá -ª«W¯¾yóÆÉɉyŒŠÿÿ"s¾ïß¿ììÌ'}øðRDDj´¬f’°z{{¿}û¶zõjRºÿÿ"§Äúóç°0ó²eSÎ;ZðùóûÑÕ Ã@©eÿÿ"ãPÜÜ,×®]ïïÏïíÝòîÝóŸ?¿®H–2dJÞz,ÿÿ"9A022211ÔÕE::†x¾y󆉉itÌa ÿÿ"-aýýûWPqâIJ?~45-øó‡ƒƒ•‹‹‰ƒƒ6Cÿÿ"!aýû÷››ùĉSË–uGG—?}úòÂ…G¯_¿d``¸qãÊǘ˜F{†Ã1òÿÿ"íZ966¦7Î000ôö¦Ã>011§§›éêÚÌšuøÇ£í­áþÿÿOjÇÿÿ"íZ¹¯_lmeeÕ˜˜XþÿÿËË+´mÛÜM›fttl•ùõkt_áðÜÜÜûG‰ÿÿ"ù#qqI99Éÿÿþþý#,Ìríšòÿÿÿ­­ÙÙ9¿~=-rXHlrrrÞ¾}›”"ÿÿ"­'ÉÈÈðû÷ÿ_¿ KÃXYYþþeáààþòåïh¯p¸FFF Ruÿÿ"ã|,FFFfXÍèå•ìàÆÁÁýÿÿè©kÿ³ÿÿ¢h ×ÿÿ \\\<<\dÍŽ‚!È(2ÿÿ¢toà¿ ÿŽ6­†0 Ñ†Uÿÿ¢Â¦ÓÑT5¤6¬ÿÿ—°þÿgøÿÿÙ ùßÿÿ£tjÀÁÁ‘––&//Où†Õ+W® oXÿÿ¹a•‰‰‹‹‘‘‰lûþýûÏÅÅÀÁ1z ùà¿ÿNLLtqq¡|Ãjjjê¯_¿à‚ÿÿž°888ïܹnAÉv3†ÿ¬¬lÏŸ?ÖÑQ ÀQ@Cð÷ï_KKK{{{Ê7¬  §ÿÿž°~þü¥¨(3}zË?È.oþþý+""Òß?ñË—o ¤,—ô4Ú° ÿÿž°þþýËÏ/àààBÆüùó‡……E]}×Ý»wFÖ`4Ú° ÿÿ"Ð+üû÷/%% Ë¿ÿF“Ô˜G|bÿÿ"°pÝÖJŒ•ð„<Úx¢€’ˆÿÿ"ÿà5²­ƒ@š@Ç?wîä$R&&¦oß¾¹¹¹éèèsÊ-ÿÿ"'aýýû÷Û·oÈÝLLLìììd5 3¸|ùò‡´´´ û¡yxx888ˆ+Vÿÿ"-aA:¥GŽñôôüû÷/„ûë×/;;»ƒ’t\ó(Ì’t¾|ùbeeåè舳Ä$,ÿÿ"õ.ÿ /^üþý{ww7¤“ùë×/"íƒ@êÁŸ?~ùòEDDYR'cÿÿ"§*¼}û¶ššZII Ú`ÄhÂNàÇÿÿÿóæÍ’%KÞ½{§¨¨hee%,,Läÿÿ"õê^F†Û·o«¨¨000¼{÷îÇ ” ¯‚Á õÒ§OŸ>|øpðàA&&&IIÉ3gÎLž<ùÕ«Wð[æðÿÿ"-aAŠÁgÏž=þÜÂÂBDDDJJª®®îçÏŸ £C Ã@ŠVVVKKËìì쨨¨ÐÐÐââb&&¦íÛ·iÿÿ"íZ9ÈNþwïÞ?^GGgÖ¬YnnnÍÍ͹¹¹ £ k¸HÂRPP ý÷ïߟ?øøøììì>|øû÷ob -ÿÿ"§U\\laaaiiùçÏŸÔÔT55µæææÒÒR ÑŽá°?~ü`bbbaaqóòòþýû÷ÏŸ?ÄìØÿÿ"!@Lçââ*,,´´´üû÷/dþ233“áäÉ“ °ÍQ0¤¤4Z¿~ý²e˘˜˜à ëñãÇEWÛïÿÿ"­*d``xöìÙ©S§ '@ 'È‘\£IjØHDkhhœ;wîàÁƒ¿ÿþ÷ïßÙ³g=jmmÍ@\\ÿÿ"¡*ü÷ï33óÙ³gýüüŽ9bmm Yصoß>XRC@"ÑÐÐðÍ›7Û¶mÛ¿?¤míèèhffÆ@\,ÿÿ"í†UeeåÀÀÀiÓ¦ikk:t(;;;22RUUu´5œÀÿÿÿ]]] ïÝ»÷ÿÿ%%%QQQâ—Qÿÿ"m'ô¿ÿ899wìØé‚B0ŠŒŒœ={6Ãèé𮟈ˆ|ð¤Åyÿÿ"õ†U¦ÿÿÿ+++Ÿ:uêÆ¯^½RRR’‘‘Tº£ k˜HÚ"oùÿÿ"g'4d힆††††Ãß¿GkÀá È^Nÿÿ"ó†UHò"õªàQ0ؤ@"ã "d0ÿÿ"Ãêh)5 ###$)_苦ÿÿ"°(™¥áü€=))IVVöׯ_nX½téò†Uÿÿ™° ÖP’)7aÐ@ ªY³f={öŒ*rppèééÁMÿÿž°¸¸¸.]ºdbbBáv3NN΋/&%%‘mÈ( )ÐÒÒÒÒÒ¢®™rÿÿBŸ¦†4ľ|ùrñâEÈZ+Ê­QQQ‘““£d‹â(  îæ<ÈÄ"„ ÿÿ"jÑÖ(¤ÿÿÂu(È*N*û£`äÿÿ-±FMÿÿ•´s›—·€MIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/modelview-move-rows-3.png0000644000076500000240000002210112536324471023522 0ustar philstaff00000000000000‰PNG  IHDRФÇC!u$IDATxœbüÿÿ?Ã(¬ÿÿbhŒ|ÿÿžA ÿÿbh ðçÏ*šÆÂ‚ˆÿÿb¤[Ýó÷ï_fffúX7<ÿÿ¢GîÞóóçÏ%K–¼~ýŒ‘‘‘B£þÿÿ/**ÃÎÎÿÿ¢mîD ##ãáÇŸ>}ñïß?&¦áPçýÿÿŸ‘‘ñÝ»wZŠŠæ\\¼ÿþý%Û4&&æoß>ß¿òÆkBBBÃÿÿBäžÿÿÿÿû÷ÎF¶’‰‘‘ñâÅ‹+V¬HII‰ˆˆøõërñŠ(OƒÈFÑ!üû÷———¯«kޏ¸è¯_ÿÉsÿÿÿÿÙØ_¾|”dÇÿÿBª…©Xþ@"ÿâÅ‹ÍÍÍ6l€²²²200°°°à‰ž¡~ÿþóæÍFF†ß¿ÿ=¬¬¬oÞüùý¥•ÿÿ¤T¹ €0 Ìå,1ˆ™=FöH‘a,¥ˆ( Äý},á¶ÒÝsεÖÉ[¯MÌ,¥ÔZ‹1ŠHï½”bfîþVj îûº,cöåT7U½ÔM²}RÈ0†üއ ä~ÿÿÄ•¡Ã0ÿæbdbœÔƒJvcN?Á™¨QéõЀ˜øø‘›Ù=GDªÊÌ9ç‚÷þsçbfιZk)@ï™´Öˆ(ƘRúÕ "ó¼¬ë]¤ŸÞÔ̦év¯m{ìûsŒq9¬ªj¦ôõíŠzÿÿB¸ûû÷ﺺº'Ož¤$¹ýýû—™™yïÞ½6l¨®®^¾|ù¯_¿ØØØ~ýú•””4gΜϟ?c†×Ÿ?xyy;:Zwíº~üóáÃo^^..æ æÄÅé››{†‡ç~ùÂ@Lÿÿ"=z¸§§GNN®µµõß¿2223gÎ3FÿþññI56vy÷Žáß?†ÏŸ88ø~ÿþE— Lø÷ïóܹÝŽJJ:«W?,.nùû—ù÷ob{–ÿÿ"=ðá¸û÷ï300011AÚ` çΣ‚'FF¦_¿$%e[Zfik›}ýú‡““YLŒaÉ’ff[ÛÀo߈*(è þýûËËË´sçúéÓËjk—Ïž½VNNêÓ'6666bkJÿÿ"ªiéH¢U¿ŒŒôk×222üýËðúõ/F11Ö{÷žÕÔ8°ª¶v±´´Øçσ´iÀÀÀ°bE¯¶¶¥«kÄ¥KO˜˜˜™˜˜ÿÿÿÇÊÊÆË+DŒÿÿ2ûÿþýçädû÷ïwOOÝ’%-ÒÒ*&ìµ¶vœqóÿÿVV¦W¯>=ztëãÇ×ööÌÆ ó¿55ÍæÎ=ùó'áêÿÿ"*z¸¹¹Ÿ>} á222þÿÿÿÇRRRzƒHðÿÿVVÆoß>æä8ß¹s¾ `ZHH* óÇ¿|4+`ddü÷½¸xƯ_?à±ÀÈÈøçÏoAAñ?ˆjôÿÿ"à7HÃŒ™™YWWÒøýû7 Ë£GÞ¼ycaaÁ@¯¶5++CIIÄÇo·o+++ðîÝÿŸ?¸¸Xÿüaœ­¶ÿÿØØØ==ƒÐò6##ß? ß¾eÿÿ"œô ³ØØØÔÔÔ›7oª««300̘1ƒƒƒÃÅÅ…¨Á JÀ¿ÿ89™nß¾yò䎚š%,,<—.=`ccg``úÿÿ/×€~bÿÿ3|ú„eñ³>ÿÿ"=î„„„Ù³gܺukÍš5S§Nåããƒä-RÝMøÿÿÓ•+Ç::’ZZb`cùû÷Oqñ̨¨4b†Pè*ÿÿ"¬RÓ°°°ìÞ½{òäÉ«W¯ݳg³³3dv‡ë‰LLÌ?~0èëÛUW/aaa…Ïâ022þúõSGÇêÇnXÿÿÿÿïß?ÿ2üýKþZ&&Ö¿ÿ u"ÿÿ"*n!1ÄËË[]]]]] ¤Ûz(FFÆ_¿äå•ÕÕ•1¤¾gøõ‹Nõ.ÀÄÄ(*Ê".Îðëùk ØØXІwÿÿ"6ëAbèÏŸ?u—õa;ï_ÿ~üÀÒðY&&¦ïß¿µ·×òòòÿýû‡˜qhlà?33ËçÏ¿ÿ†œèÿÿ"¡ddddÀV,##3ó ëß000üÿÏÀÄÄ !ñ•™’áGfffnî¯LL ÈÅÿÿB nHÁ÷÷ï_ —‚P¸Öçï_†ÿÈwÿÿþeùÿÿ} ¼ÿþqqquuõ‰ŠŠ’=¡ÑøúõëC‡,ÇbÿÿB‰ˆÑDNTã”{LœœÌBB ÿ2ã2äÿ†¿˜™qÎ|ÿýû_Hˆ‡‡åçO:å6H±ÏÀÀ)üÉ3••õÏô¦ÿÿBD ËÛ·o×®]ûóçOJæÍxxxŽ?N^ ±²²Ü¹skÙ²í?¾ÅÝcäççûòå+®µpÿþýåç>}ú¤šn À‹}ò›XµÿÿBD++ë«W¯¦L™BaÑÄÆÆöèÑ#AAA’4Bœ¥¦¦-%ű{w'®ÁVÈRÅÇê ýþ=†˜˜˜¾™™Å1ÐkP?€/Nbd$v…ÿÿ‚fÌÿÿÿïÝ»W__²°æ?¹€ŠFá2|Ù²e ¥¥ep‘ß½zõJIIéÕ«WÿqøML£ÿÿ\Mƒÿ¸wIüÿÿŸ‰‰éëׯ S§NIJJÔÐЀ¬áƪ…>;ðƒÿÿÿ322¾}ûöêÕ« ÚÚÚÂÂÂÿ‰nAÿÿ\M<Ý©?þ011-Y²äæÍ›ìììß¾}›8qâôéÓ! µ(p, $®_¿¾xñb†;vÄÆÆjjjCÿÿ¼Z± Aú˜ÐœÁŽ‘œäèüÂ\ý÷Í1!#¿ÃÕ»¥ÜDw›ÙZ+"žýPÏ̪šÝe='$‘àî¤¹î?I^ÿÿ¼š± @mt:Ætz—‘|áÿ_HIEs$$ü°¿?N§-3³ª"¢»Ý}²­³Ã«&IIÆ ‰¤ÝÅ>ÿÿ"!z iöãÇ}}}ß¾}#ÒÊ$ë|þü¹½½î 9{öìË—/Ú ÄÀÀðäÉIII...H€‹‹KRRòÉ“'Djÿÿ"!z eåöíÛ+**è_¾ýþý»§§gÛ¶mË—/g``HOO?xðàÒ¥K¹¹¹Gë @œôúõk111¤¶µ˜˜Øëׯˆs3ÿÿ"¶˜úöíÛΜ9ÓÕÕÅËËKÏÔ ñ†P`` ##ãçÏŸtuuíììþüù)iaôPÿÿ"=‰ƒ;wîÄÆÆ²²²211ýýû—þÅýÿÿÿ!ûÜ õ$}@Úñƒ9n07K‘´Â ÿÿ"v¢®®î‹/^¼xÑÞÞþñãGú·àmn qÕ ^^ÞOŸ>1 |úô‰øÿÿ"aõ:l ΠŽÁ Œ¬¬ì‹/à…Íÿÿÿ_¼x!++Ë@\à ÿÿ"¡iðºm0¶b!€¤c]]Ý÷ïß_¾|’¾/_¾üþý{]]]â:ÿÿ"m:ŽHCGl~Y\\ÜÞÞ~É’%–––ÿÿÿ?uꔓ““¸¸8‘£ÿÿŒ«[† €D€§§'d=úÿÿÿ444ˆsÿÿz------›ø¸a``ÿÿ"9zÃ0ðÐh-i’Bÿÿ"9zðŒù\€ì ÿÿ"!z ___NNN†Ñf ü§ÙZÿÿ"¹å&++ i¶8 ÝZÿÿ"³p´3`ô9Üüü|ÈŠs²ÍaffþôéÓׯ_‘KBÿÿ"§i07h€‰‰IPPŸŸŸ’Â………™™­–ÿÿ²րl;¨± qÈÿþqrr644PeâŽ;[^ÿÿ²րì”iµyÚ‡( ]ÓÿÿB^†Èúúõ«… çR¾ ñäÉS#*†h×4ÿÿB^†ÈüêÕûiÓ6P¼ ‘ýÉ“û’’ld2\[nÿÿBDÏÏŸ?Õ.Üüã%ýåãcÞ³gߌEä™0ŒSÿÿB>‰—áÏŸÿoß2üøA~Óàß¿¿¿~1üøw´Ã ªž‰‰éÈ‘#ZZZð3ª‰Ñ ÿÿBo`=–xÀÈÈÈÂ2Ïè@™éyùòåæÍ›åää„„ˆ:pÿÿ"¡ßóÿÿ¤°G{?Dÿÿÿß¾}ûÅ‹'Oždee%uÿÿ"þ¸½ÿÌÌ ||,Hùý›áË— L£…~ðëׯýû÷ýú•È•¡Èÿÿ"ò¸½ÿììŒ?~_½zõÅ‹¸¹ù--½­¬œ~ýúÿÿ?mãç?lßMm¡`ggOKKcdd|öìÙ”)SHõÿÿ"êØ 66Æ×¯ŸzÜ¿EXXêÏŸßkÖL/.(衤™G €L–ŒØQ>ÿÿ"ê4DNN†9sjïß¿ÒÙ¹}Û¶§[¶¼LKëX¹²wß¾<<Œ”\»@òÍÓ§O¿ÿY¦Kÿ¥©ÿÿ"=ÿYX˜?f8rd‹ƒC¯¯Ç—/¿SRÊ……%ZÏ‚}íDìà÷ïß õõõ:::[¶l 2À–Ãÿÿ"œ{~ÿþ[ãïŸùþ=Ãïßÿþe`dddeÅ94)ð˜( ,,,<ð÷÷755]·nl@oèÖF$ÿÿ"X÷@¾JJÊûùóÿ—/88˜„„˜gΜòæÍ³ÀÀ¬Ÿ?ÐN}øÿŸ‰‰éÛ·o7nÜ€ld!Ïeÿþzóæ  Ë… BBBÌÌÌ èyÒßÀÿÿ"ò4D†·o31ýa»wïYUUÞ¡Ckóò&èé`žv÷ï×Í›·µ´´¨µfrÿÓéÓ§£¢¢utt†Z"õÿÿ"ö°JvvFÆ¿==µK–´ÈȨõ÷ï³¶vÄz€4Ã÷ïßTU•—/_Ia©Ù¸q#;;û¯_¿þüù#%%UPP––ÆÏÏÿÿÿÿ!Ôœûÿÿÿ¯_¿HM¯ÿÿ"ªaÍÄÄø÷ïÏÂB¯óç÷Í N†Dˆ%tþþýÇÃÃcllLöôdsˆ¤¤$ï_¿ÄÅÅ 222øùù!»–‡JÖ¸STT4''GTT””lÿÿ"&zþqs377çݾ}qÛ¶**âïÞýÿû—ŸŸõ÷oÈiPXuQa“7 ä¶¶””HŽùóçÏàߘ€ ØØØäååIÕÿÿ"=ÿÿÿgee~óæÛŽK<<â¿}û³k×166FFÆ?~ IHIÉýùƒ%!S¾ÉRl¦¥¥577KIIÁ#fpJ #Çÿÿ"=ÿØØ˜¯^½úóç·M›fnÜ8"9‰Ð×7­¡a懄ï @|bnn> "ÈH©ÿÿ"tÅÓÏŸ òòšS§edd‚VÉ=""R´>â²»lG íÖÿÿ"ªßÃÍÍcbb….ÁÈ«{hX ‰õÜ´[kÿÿ"vÄúëW,Ý@FFÆÁ|ÿ}33ó—/_yyy)\†øùóç/_¾ ÷ÿÿ"²Ð í:Çà‡Qhš ÿÿB_†HÉq² ÿþýýó‡™Fc؃üýû—‡‡gÁ‚TY†haaœÿÿB¾3›••QT”áÇò×üûÇÈÇÇ À<¢v Ò®iÿÿB9nïùógÝÝÝþü¦Ä¡\7ožäm-êÚ5 ÿÿBDæÿÿ¿ýþ}’Y¯ÿÿÿ33süùs›Üó‚‡'€ÔŸ(!ÿÿBY†¨¬¬²`ÁRJ†³ Kà÷íÛWT4º ‘Vá#7ÆHZ+ ÿÿÝ¡@sÀÄÄtüøñãÇóññÙÛÛ«ªªŸÿÿÝ¡@+?n/$$dÛ¶mð 'Nœ˜——Gdÿÿ"íÖß?00š?HÍœ9sÛ¶m“&MúòåËû÷ïSSSóóóoÞ¼ÉÄÄDÌ„/ÿÿ"6zàc_0˜O¸$’9.\hllœ››ËÊÊÊÇÇ×ÙÙÉÀÀ°wï^ânµÿÿ"v¶”‰‰éÑ£GsæÌ9þ¼ŒŒLDD„½½ýš£?€DOMM d >|øÀÀÀ9€˜ ÿÿ"ö<·£GºººþúõKKKëäÉ“3f̘wî\PPÐ;w>~üØÚÚzôèQâ/!ÿÿ"{ IàîÝ»...Ë–-‹ŒŒd€Eû—/_øùù©â“á ˜˜˜þÿÿo``0þ|¸ d ›Èöÿÿ"{à‡XËÊÊ677?}ú”……åÿÿÿÍÍÍ/^¼€ÄÖhË €l¦øóçdÓ¤1M|ˆÿÿ"êJs–3f)((HJJ~þüùÇ666#v[!ñy ŽÔ–ÿÿ"êÎìÿþyyyݸqcíڵׯ_—’’ 200mUCíÖÿÿ"ªåý–——/..† ŽÆ Ðn­ÿÿ"vÌ Cð¦úè¡{pÀÄÄôýû÷¦¦&ÊÛûøñã÷ïß‘=ÿÿ"a= ©ËFø÷ïßëׯþüIùa•h˜ÿÿ]k@)ø÷ï77÷äÉ“©µ 9†ÿÿ]k@@»¦ÿÿBDÛãÇ«««!ƒid;”““óòåË£ËI¸šÿÿB>ÏñÏŸ?ïß¿§pâ?¾|ù2ÚWÅ ¼HÚ1ÿÿB^†øSQQqÚ´i£ËiH-TÿÿB;1Ú4 0Œ°sUˆ€ýúõkggçÓ§OˆGÿÿmÐ@Æjkk'L˜àââ"--Mä`ÿÿ"§ƒÜ?$nvïÞ ™6%iiÿÿ"çÎìÑ!âdýûË—/“““ CÌÄkÿÿ"-z ÇH=z444”ž÷2]É+ñññZZZMMM¤4ÿÿ"í¨WÈ6׸¸¸/^PÒ=!rîÌ´iÓŽ=úìÙ³Û·o3˜ ÿÿ"!÷@reeeåýû÷!ÛêÜþýûÇÂÂrýúõ’’’9sæðòò¿@ÿÿ"6z aÑ¢E«W¯ÎÉÉyÿþýèð(Y¾ÉÀÀÎ@Vƒÿÿ"ò\ƒ,,,=JOOŸ7oÞ¿ÿ¦L™2=x¤Ý|êÔ©³gÏ>|ørò;¤ø±··—8w€Áÿÿ"¡î‰ŽŽvppˆŒŒœ8q"ÃèÚ]¼’v¥¥¥kkkýúõ÷ï_އ.^¼8((HKK‹¨+@ÿÿ"=qš¶¶¶\¼x‘621š{ðHž––njjb€…á™3g/^\PP`bbÉIë!ÿÿ"j!Õ•+WjjjfÏžýÿÿÿ·oß¾ÿžááÇâââÈ›WF€hèO:oÿÿ"=LLLÇŽûÿÿVVVJJ D²êÚÌÌìäÉ“£HpøD¤Q ¡¡±nÝ: ¢Ëÿÿ"=s===×­[Y²# °råÊ™3g.[¶ r¼ßhÜ  D!ÿÿ"¼Îé®RHóúÚµkÿÿÿ÷ññáååÍ:ÄÈÎl&&&âC ÿÿ"vo)¤Ýc```aa%1V ÿÿ"v‡Ä\xWËËË‹a´dc``@mP² ~¶ ÿÿ"mòb7//////Ž®ž|É>Ú+˜Úÿÿ"gÁdýh¿ §zyyqqqQÒU‡Ülðùógäÿÿ"'z —¡‘íŽaþýûÇÎΞšš*,,üû÷oJR½}û¶¹¹9Žÿÿ² ‘³ÁGÚ2Äÿÿÿ³±±Rebgg'rõÿÿ²րò3ÖGÚ\*íšÿÿBD''çµk×ììì(¾õ—íñãÇÂÂÂd2äíšÿÿBDÏïß¿%$$Š‹‹)¼3›——÷èÑ£;vì Ï„áà½F8`dd$²aÿÿBDÏŸ?„„„üýý)_†ÈÁÁ±uëVòL~€’•3ÿÿmÐ@†p®]»–••õãÇ÷ëׯ&&&óçÏ'&ÿÿ"¡i€¹†—é#­i€ @âãĉtww‡Œ¶qpp¿£ÿÿ"¡ß3Ú×!ÿÿ"æÖ_F†Û·o+))100|þü²Úq´õŒ@››{Ù²e¸,innf``8zô(‹Ñÿÿ"â@>&&†Ç¿}ûÖÑÑ‘ŸŸ²>I£u~ðóçÏÏŸ?ÿþýû?ìÎoaaaFFÆ?£ÿÿ"|`ä(ó÷ïߟ?^JJjòäÉöööõõõYYY £Ñƒ@J—;vHHHܽ{Þ[¿uëÖÿÿÿõõõˆ¨ÿÿ‚núþÿÿÿÞ½{õõõ!D°«œ ìïß¿wuu8pr,âÿÿÿëëë._¾ ¬…«ÇcÔðß½zõJIIéÕ«Wÿ±Ý«W¯888¬­­=zô÷ïßëׯ«¨¨"«Ácÿÿ"ê¨WŽÒÒR{{û¿ÿBŠKHÖø:ºš+€&**ºaÆK—.ÉÉÉqsskjjþÿÿùòå °ƒõñÿÿ"|­,##ã‹/ž={¦§§³³yÔïHãöÜÝÝ=z´iÓ¦‡êêêzyyA:'Ä Zÿÿ"jï¹sç¼½½:dkkûë×/ffæC‡ýÿÿßÎÎŽat±5^ÉCüüüqqq‘ÿ°ÕnÄhÿÿ"ê4Dggg•àààõë×?|øpáÂ…¡¡¡ÚÚÚD¦‚‘ à9›[ˆŸìa``ÿÿ"¼J²Ôaûöí‘‘‘AAAHPPòù˜£?`$÷âbÿÿ"¬R€*++Ÿ>}úÚµk/^¼PRR‚ôxÿ®à…Hûˆ˜Ú+øÿÿ?Ö;wÿÿ"v•($2´´´´´´þþýKÒZáá àåÙaòvñšvÿÿ"á4DxŽJ€ffæ?:88PeâÇ‘Ãÿÿ"ñžÑV€¤t>>¾Í›79HCðóó#/^ÿÿÂ=ÿ)»ø™B†`aa±°° ‘áÿÿB‰Hæ d.D#ImÇa¨;x\¸ÿÿBY†xéÒ%SSSÊ—!>}úTJJŠ"7)@»šÿÿb„ É122~ýúõüùóß¿§Š¹’’’:::T1j$ÿÿbQõÄÿÿBnÿ1ÖšRFZõC#ÿÿÍ=ƒÿÿÑ;ŒÚ.IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/modelview-move-rows-4.png0000644000076500000240000002224512536324471023534 0ustar philstaff00000000000000‰PNG  IHDRŠ£ÚFÍ$lIDATxœbüÿÿ?Ã(¬ÿÿbh @Ý$ÎÈÈgÿÿbÍ=ƒÿÿÍ=”‚ÿÿÿüøñ÷ïßT1•••ŸŸžÿÿòÁÿÿÿ?~ühllüïß?fffJŠ"FFÆ¿ÿ211={V@@b8ÿÿJÁïß¿ÿþ½sçNH˜’aDã›7oÜÝÝ‘3"ÿÿbASD©c‘yŠ€MRRR@@€BsXYYÙØØEÿÿB‰ž‘ Ôÿÿÿÿõë×ÿÿÿ)Ì=CÅÿÿba``ø÷ïÓµk×~ÿþMa‚ÁóæÍ#Û¹C022B|ŠÕ¿˜CV†Çdÿÿba€•i/^¼xòäÉ’%K( Ó¿ÿ233Ÿ9sfÞ¼yä™0ü$õÃÂ%R/ÿÿB)ܤ¥¥œœ(w77÷Š+(7g€ÿÿÿC"ãÒ¥K zzzLLLÄgÿÿÔѱ Ay"öŸÆC¤Kb‹:„DÁmðövcUIênÝÊLIaûEí_l 9$î3ÿÿBoXCjóoéÊx{{ùòeçÎ )))ÞÞÞ—/_&2ˆÿÿ"¡ß‰pˆ¹:†,7ðçÏ–uëÖ]¿~ýêÕ«ZZZ ;vìÐÖÖ^·n]hh(D~Cÿÿ"6™CÊP&&¦ÏŸ?ÿùó‡ÂòÈ›6m’••ÕÒÒ‚ô^µ´´dee7mÚD¤vÿÿ"*zàe¨««+??¿ˆˆH]]ñèÈbæÊ•+ÆÆÆú‚‘‘ñÿÿÿÆÆÆW®\+Àÿÿ"\¸AŒþúõ«‹‹Ëׯ_ûûûïÝ»×ÜÜüÿÿÿæææÑR€TÏŸ?æááWÕŒŒŒ<<<Ÿ?f nÿÿ"=ÿþeaa™>}ú½{÷ž>}*%%ÅÀÀ **Z__Ÿ••%))IRC~¤¬q@|·ÿÿ"¬ _¼x±‹‹‹””Ô÷ïßÿþý›––öïß¿={ö0Àš £ @êfnnî/_¾Àëéÿÿÿùò…›››¸Nÿÿ"=Á?233ó¿ÿœŒŒœœœfÏžÍÀÀ––fbbâììLdèÿÿ"*÷022233ÿùó.òÿÿÿÿþìU–7ÚÛÛGGGGEE9::nÛ¶………ÈÖÿÿ"¾B“››[AAáìÙ³XabbúþýûÇóóó©á…a £Ÿ222+V¬øúõ+¼Q@dôÿÿä™± 1Är47bh`)NJñ|RÇ;¸°üo$™YUÜÝ̺{f"båÕ³|ñ.‰$IIW¿fÿÿ"¶a——÷üùóììì7oÞ\¼x166ÖÁÁACCc´ÓC011AÆÀþÿÿÏÌÌLÒ\ÿÿ"*zþýû§®®¾xñâ5kÖÈÉÉ™˜˜èëë/_¾|´Çÿ ’”Áÿÿ"ªn‡ÄPLLLXXØ™3g555H)C‡=`ccÃ3QM@4¢­a``ÿÿ"¶éÅÄÄô÷ï_666+++"f}Føÿÿÿ‹/ Ë4(Y òöí[´ ÿÿ"¡e )@!£×£õ 033úôÉÃÃ………Âeˆþüùòå rÿÿ"­ãé‘í‚a þþýËÇÇ·mÛ6aaaÊs——r÷ÿÿB¬IÖPhÂPŒŒŒTY†ˆ»ÿÿB‰ÈzJjÈ8;;;Ù& Q@­eˆhâÿÿBD×7 )_†øñãG!!!J rÿ2D€TÛ$-CÿÿBDÏÏŸ?¥¤¤z{{)_†xþüù¥K—’gÂpðo$ÿÿBDÏŸ?øùù©µ qñâÅ”›3<¤ÐcbbºzõªŒŒ ???ñÿÿBÄ'dQµ–!Ò̳C@ú!?~ü033ƒ¬%~´ÿÿ"y"¡Á‚Ñeˆhàû÷ïÏŸ?onnþöíIzÿÿ"gÂft°€ia}þüÙÌÌìæÍ› °ò‰$Cÿÿ"-z ùæóçÏÜÜÜ£Y?€$b..®9sæ°°°Ü¾};..ŽÔ” ÿÿ"6zþÿÿYQuçÎWW×óçÏÃ÷?’ìð‘XXXlllxxxÈÐÿÿ"6zYXX¾~ýÚÐÐðàÁƒÑ¬C<øýû7d¶”Tÿÿ"= ·Û·o‡††Þ¾}ûÛ·o¢¢¢¤–¡#@¦ãÈKÐÿÿ"=⋇‡'**Š››ûøñãkÖ¬Í=ôÿÿ"6z$%%ËÊÊxxx–.]:=ôÿÿ"¡iðóçO–Ñ.'yRy“Ú’ÿÿ"6@LgaaÍ7äß¿ÿùó‡Ô³]ÿÿ kšxí––&))É@J¿ÿÿ]æIs)ofΜ‰,B ÿÿ"9÷ŒÎg“þÿÿÿçÏRçÒÿÿ"9÷@ƤGÚt5åRy“ª ÿÿ"A¤Ä”‘‘133]üŽ(\dш©ÿÿ"m!Cppppp0DdtÀ h´ ÿÿ"9Œ.@Ä´[†ÿÿ"9zF# Ðt"ÿÿ­B(4]†ÿÿ]†H@»eˆÿÿ]†H@£eˆÿÿB_†hlLÑ2Äÿÿ¡ËG—!">æ_¿>~üÌÂÂ* Àñû7ÃÏŸÿ™˜F°HÎPWWGÞKÃÎÎ9‹‚HCÿÿ"*zþÿÿÇÅÅ´sçÚùó›ïÞ½ÄÆÆahh_T4M^^ñÛ7Úžkðïß¿ÿÿÿÅ&Hô8;;300üû÷ïåË—_¿~=sæ 77·ªª*qÃcÿÿ"fÛ_æÝ»7ÔÔ„ÈËkô~úôqٲY³Ž ˆýùCõ¢¸‡l9Š‘ô÷ï_&&¦Ÿ?Ι3çãÇÿÿÿ‰‰áåå%²iÿÿ"&÷0200Ì[/%¥¼xñy^^VVV—ب(•õëçääT¿ÿ‡™™úcwªuæÌ™’’’~~~ž†\N‚$/vvöäääß¿_¿~}íÚµœœœD¨ÿÿ"|Ü Ó‡ßß¿iiéÃËËúúõgÏ~©«+ËȨ߾}W €ÌÝR~ýúõçÏŸC‡ùûû{xxìÞ½²ÜrD Ya52ÀÄÄ$%%%//ïáá!++{äÈâ 7ÿÿ"=ŒŒŒÿþ1°²r,Zt-5µõÇLLÌ‚‚lÏž½}ö쎖–ÖJîÿÿÿ¬¬¬,,,’<ÀÁÁÁÂÂ"..ÎÄÄ´sçN777777x$‘VôÊÿ÷ïß³fͺråÊÿÿÿÿþ —“””üòå ‘æÿÿ"ö¸=AA¡?˜˜øù™ž={VRâ/""–ýåË&&”Àú÷““óÎ{111~322ž:u rpÜ¿ÿvïÞ½{÷nggç²²2;;;vvöA;ù`bbzóæÍÑ£GuttXYYþþý{íÚ5uuuâFwÿÿ"¶Îøñã//ËׯߦLéZ° U^^}êÔƒœœ\?~  ÿÿ3011}ûöíÔ©S”ì0è}ýú5¬‚ìùÛ¿ÿÞ½{çÍ›—˜˜HÌAê Õ¤§§ç¢E‹æÍ›§««ûû÷ïãÇýúÕÖÖ–¸Â ÿÿ"Êoÿþãçg9}úpmmØ? 'e200þøe·133Ãׯ_ut´Îœ¡ÂA°9993g΄ìxåççOOOOMMÕÒÒ"¾|(éßþû÷ïðáÃ[·neff–‘‘‰ŒŒ$þ3ÿÿ"ªaÍÍÍtáÂé¬,{‡Ðªª‚Ÿ?ÿù÷ï33 ¤]‡ gÌQ2ÿÁ»ƒàû÷ïþüLNNÎÉÉ‘——ÿùóçïß¿m¦A¿ÿüù“™™âlâƒÿÿ"j‡##cKK¢µµïÂ…+?~døõ‹AHˆ…‘‘áçO†oßpo<†{322ªªªdeeþþýûãÇj_sGS)™!S”¤.¤ÿÿ"=ÿþýãà`º{÷þÇW98822¢~üøÇÌÌÌÄÄüïß_##§  äoßþ¢µ¨ ­½½R©þùó‡’}Là=k2f¢ÿÿ"&÷0üøñEKËâÇ//žfbbüÿÿ?33Ëß¿%%•˜™hšŽYYY!‡™R¸†Ö€˜Exdq-Cÿÿ"t ÓÏŸ **ºsægdd€'Üÿÿþüaøò…Ö½ÁßËa Ù2Dÿÿ"ª‚ý÷áçOì1?h{ôÿÿÿùòÅŸ?Ô_†ÿÿ"ag6¶ŽÀÂÂüéÓ'gg–ÿþ“Nÿÿ3011þùóçÇ/,,ˆÒÿÿÍÓAþþýËÅÅ×Ô´MDDø÷oòs++ã›7oëêP–!ÿÿ]†HÀÈÈ(""!**ðû7™«hþÿg`ee``@_†ÿÿB»”™‰ƒƒ‘’’ìß?6¶· ñ÷ï_¿ÿ§$÷000þþ¾ ÿÿBD;;×ãÇ7 ÿþ%³e``øÿŸùãDz²#q"##žK™ÿ100022áŠ?¬ ?ÿÿB9 QVVjÎ*œ†xîÜùÅ‹G—!BÁß¿YY™ÙÙ™~ýbøý›„^<ÿÿB? ÑÞž §!²³s/\8º ‘áÿÿÿ||Ì>üºqã2ƒœœ†÷ׯÄfÿÿBY†9ÑòÜóåËè2D†ÿþqs3­_¿`ÆŒŠwï^200°³sææö‡‡§þLÔÿÿ"í4Db–rÅa1Z€ÿþrs3Ÿ}zaa¡††Æ”)S’’’.\Yð@¯ _ðçÏÿŸ?ÿ°±1 ±Üºu9=݆‡G =½ñûw¢Nÿÿ"\÷033ÿúõ«¢¢ÂÞÞ~çÎA}}ýøøøÛ·o«ªªŽÞO†üýû‡‡åõëW½½ ë×O×Ó³ik;,((üý;Qÿÿ"=VÜïß¿544222~þüÉÎÎnnnÎÀÀðþý{†!5¯Lgð÷ï?>>æãÇ÷WTðð47¯ôðûù“ȸa``ÿÿ"|1&77÷éÓ§þüùóãÇGUUU ikkÿ'ëj€‘þýûÇÅÅxíÚ•‚7w÷¸êêì쬟>ýedd ~ÿÿÿ"¶aýçÏffæ³gÏZXX000033ïÛ·rÓã˜Í¤?øÿÿ?;;ÓŒUŠŠZ½½s¿|aøõ‹››™‘2½I”!ÿÿ"r tƒ€‚‚ÂäÉ“?þ¼fÍšòòò 6ˆ‰‰žf þÿÿÏÊÊüæÍ׳gwÿû÷ÏÓSí÷ïLLLŒŒLÿþýSQÑkk[óëápÿÿ"v/d\\\<''‡!))IBBbÖ¬Yµµµƒy©æÀ‚¿üüÒ¿~ýôë×OHD022ýÿÿOJJ™Èúÿÿ"¼Š‰‰éÞ½{]]]•••ÒÒÒ›³ÅÅŵ´´.\¸@¡†+€làâ⮬œYBƒÿ2|ùBT·ÿÿ"*ÕÿúõkæÌ™²²²ÕÕÕŒòõë×;w‡“ë~’dG ä\ †ÿþAö™ æñ‹ÿÿ>|øƒ)ÎÈÈHäœÿÿ"¼êß¿žžž555ììì¶¶¶¯^½ª©©aeeMMM¥[Ë‘‘²QPP——²Ï„VS(ܘÿÿ"¶i0wîÜ”””ÒÒRˆˆººúÖ­[%%%éÐ'…XñðáÃææfÈÁ3³gÏ>qâÄïß¿ãããmmm¼IùiˆÿÿcéAÿÿ"=•ö’’’[·n}òäÉ‹/øùù!›WIÍ:äµñ CGBBBÛ¶m{þü9DðèÑ£Ge``€¤˜/ßXXXYYÉ_¦ñÿ?#++ +š8ÿÿ"¶å‰Xˆ Iù†’AnH}ÃËË;iÒ¤°°066¶Ÿ?²±±ýù󧤤D]]}À›ŽÿÿÿÿüùÙ» !F|þü-ÿÿ"m"d[|¿$1!+¤!%ϳgϤ¤¤Ht9dw\@@€––Öµk×XXX~ÿþÍÃÓŸŸ?àÃÌÌ,_¾|LHÐebbü÷ï?1³8ØÀˆvNäê ÿÿ"mòj¬Ê‹`Èr:HÄìÝ»·®®NCCcΜ9ø;®ÔÙÂXSSÉÌÌüçÏŸÔÔT))©Ï:ÿþåååY²d‘€€ùÑÃÀÀøáÇÌÌ,äeˆÿÿB[çÆˆdHHAšXˆÙ½{www÷îÝ»ôôôà 0|.Åñ+‚´µµ¯^½ÊËË[TT¹¨z"Û/DÈ>gGG'NNN úþý;+++²wÿÿBY òçÏÈÑ.yÿþ=##ãáÇ[ZZvíÚÅÀÀÀÆÆö÷ïߟ?~þüOzÿ÷ï???VÛ!‚ÌÌÌ~~~EEEÒÒÒä9’êàÿÿÿŸ>}bcc£p ü§OŸÐ’ÿÿB77÷µkפ¤¤(߯û÷ïßß¿ÛÙÙ100@’¤5<þüùóçãÑÎÎή®®ÆÄÄ„û¸†ÿÿþý[±bÙÆëpäfffÆààŠŠ ú´¹![Ã(ŒÌJÿÿBDÏ÷ïß•””,X@Iô@šsgÏž:ujppðŒ3 sBlll¿ÿ¶²²ŠŠŠÂ^ÁÝ»w\¿þ®°°éãG|«XÒÓ¹¿}ûŽërÖÿþ ²,[¶àìÙS ƒi:ŠÔ‹ ÿÿBY†ÈËËkmmM¹;˜˜˜¸¹¹ÛÚÚÒÓÓ'Ož 9N†ÁÌÌ,++ ¯Æ¿>œpwwzù’W}ÿÿ?ÿ LL8›ÿùà &ÆpîÜ¥Rêª2=ÿÿB; ñU–!~ýú²¢Q^^¾§§'77wÚ´i“'O~þü9d  ³î~þüùׯŸ?þýü™üszþþýÃÁÁòãÇ·Á“oà#˱±±³fÍÒÖÖ&²×ÿÿ"çRf¼ýÈ2DH_ÒO’——ïììLNN~ñâ ®þ)äj-Èp!úa#¨–30àNŒÿÿÿgbDã¤Ù2FFƘ˜ȱ D¹ÿÿ"'…Ÿ½ ÕÄ}jjjjjj ”5vÿþýË ÙoüçÏ_< þ€\ÇÛÚÚzüøqR70ÿÿ"¹¿ ‰›>o <'Ó:.Ë K!ÿüùËÇÇÌÌ<ØWrAâæØ±c555â„xíÿÿ"-z 3.'NTUU…›B¼eLLL”¾ügaa\¸pBX˜¼—¿ŸŸhmm¯_ßXYo AöõëWoo†¨¨(R ÿÿ"í¨W–7n|ûöž‡ªýû÷—››qîÜÆI“ edÔËʦ¸¹Emß¾°¼ÜÿÿÿߌŒƒ4z ¥””AAÁúúú'Ož000TŠÿÿ"áÞRHï2**JPPž‡@üÿÿŸ……ùÝ»oóç7ØÚNž¼îÏnn##—ššÀ'88¸~þL““I(Ô¼|ùòõë×?xð€›››‡‡~ºAÿÿ"aF€……¥°°ðÇïÞ½£Ûô×ÿÿÿYY^¾|ÌÃ#ààö÷ïÿ·o¿?þËÒÒ‡™™åþýK,,ƒ¨ï qô/^¤¥¥%&&¾xñâôéÓçÏŸg``8sæÌ¹sç Sòÿÿ"òÀ°¿,,,;wîœ6mÚÍ›7O:™& ÈD&&¦_¿¤¤”V¬¸ÏÆÆñéÓ&&f¶ÿýûGUÕø÷C:æîÝ»_¾|™1cÆŒ3 ⌌Œ ÌÌ̯^½"Øÿÿ"=#>þPUU¥¦¦¶eˆ?þ@vùPÅ?„ÜÀÀÊÊÊÎ.ðû÷?VV&~~¶óç/TVú™šzX[;|ùòo°•l`1008yò$$g311]»v-11qÁ‚ººº<<< Dô1ÿÿ"æ<·ÌÌÌQQQŽŽŽ­­­  °%t¬~ýúÃÇÇòüù³¶¶êmÛX[û45­üñãß`Ë: H‹ŸÍÌÌà‚œœœÿÿÿ766ÖÑÑ!²îÿÿ"=¶ÇæÍ›·lÙRSS3uêTFFÆC‡122öõõÉÉÉÁoa¤5ø÷ï??˺u ººÒÅÄd»º698øþøÁð÷ïà]£ é3Àu~üø!((øãÇâ{?ÿÿ"¼CáÅ‹ÂÂÂ===£î˜™™‹‹‹MMMCBBè°ˆ÷ïß¿||Ìk×.hoOŒ¯KM­caaþøñlš|F|BÞ½{—øÿÿ" 2v ÙÊóòåË÷ïßúô©¿¿ŸáÙ³g CÜüÿÿŸéíÛOÝÝéiiíí\\̬¬ ""l""¬ììLƒ¬Õ†033 ’Ôâÿÿ"ªåÆÆÆ†|Ô Ëß¿ …)ÉÎ$üû÷—““åàÁýþüº|ùpBÂù?™˜˜ '2zy%[Y9ÑèDFªRS3ÿÿ"¡[Ê«Š$$$ÌÌÌH>"@Ö+ÿýûGSÓüùóý„¬/€œÈheåGë‰Ä/Cĵ„«ÿÿ"m!¤¬ !R#倉‰ùÛ7'§`W×`äY8ȉŒ¿~ÑãDF‚€F§!ÿÿ"sBî 3ÿþýµ£ë”!z‚ÿ4»”ÿÿ"'z(8<°š^Ê ÿÿBÊ'³(ž×J€¦—2ÿÿbAVÁÌÌLa!ÑÎËËK‰!ÔXíOצ#Í.eÿÿBZÎËÂòñãÇ}ûöQ¾äüùódÅ13³pp0rp°’NþþeåàÀ²ÚŸ¦€F—2ÿÿB> ‘ýÙ³gÅÅÅ&=È¥ÌÈ÷ÙØÙ¹ß`üãÇJ–Brp°²ø±cÇ,--‰Yÿÿ"¡ßƒ9ÿJõ5ð!Þa ™ãÇ?nhhðððøóç¤m¦¥¥Å@\¡ÿÿ"!|ÿ6èA ÑóìÙ3Ⱦ>}}}4Ä”1ÿÿ"6Äÿþ½|ùrÈ{vvö˜˜È­A£@êÖ­[,,,ÒÒÒ.\øùó§žž'''ñÛrÿÿ"j2²|;>>Y\@@ ((ˆS>C@¢’{ÌÍÍïÝ»ÇÀÀ ..ÞÙÙOd ÿÿ"¬bÍË—/YYYÏ;÷îÝ»7oÞ|üøññãÇ~òhÜàׯ_ÿó燇lj'vîÜ©¬¬œpâÄ È^L‚Úÿÿ"j¥í[·þÿÿohhH' iãdffÆÇÇCíììdddz{{W¯^ML÷ÿÿ"¶î¹r劲²òíÛ·wíÚÅÃÃãêê*%%5zL%)T455`§üþý›ƒƒÃÓÓóرc Äõ—ÿÿ"6zÞ¼ysóæM---HóšmÚ´iÉÉÉ£1„üúõkΜ9ššš¿ÿ†~ÿþ‹‹‹¸‰mÿÿ"²H~ùò¥ªªêÖ­[?|øpãÆ ‹´´´›7o¿\x¤H­­­‹‹cdddcccggýúõ–-[ˆ›vÿÿ"=шeË–]ºtÉÍÍŸŸ_]]}ݺu¬¬¬Ë–-#ÒšþÿÿÏÂÂ2cÆŒ³gÏZ[[O›6­©©ISSSJJ*772}CÐÿÿ"ª\bddåàà€46þþý+,,¬¬¬|õêUJ=1|dÇYhhèš5k>}ú”““ÓÞÞîââràÀ"{#ÿÿ"=œñèÑ£ÔÔÔ;wî w¾}û~üÑ(À %ppðåË—?~üøþýû+VÈÉÉý'ú ÿÿ"ê d9sæ<{ölëÖ­a‚ùóç¿|ù2..Ža´ßƒ@ú7LLLdHŽøÆÿÿ"=¹ôùóç'&&*++[ZZÞ¿ÿرc………FFF¤îÆ>^©aÿÿ"ªåöÿÿÿ„„„½{÷jkkŸ9s†™™yÉ’%}}}ýàä9z˜ÿ„IÊàÿÿ"ö¸½ÿþ99999!®.#¾öÒn¦Ê2D4ÿÿ"¶[ #‚œS@d»p„€_¿~=þœòeˆoÞ¼A[ ÿÿ"a £2`eeeeeõòò‚Ôd›©æ!¦Áÿÿa#@’)??ÿÙ³gác6VVV~~~¸áÿÿ½”™RÀÈÈHùD\ÿÿB‰ÈaD””] oŽUR79"ÿÿBDÇÅ‹ )Ì=,,,ïß¿çãã£ÈC Ð.-ÿÿb„/lûúõë¥K—¾ÿN¹¡ÌÌÌ"""ÚÚÚ”5Âÿÿ¼çÿÿBÙ¡0œ–ÿÿÍ=ƒÿÿ ©'ºÿåIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/motif-lcdnumber.png0000644000076500000240000000103212536324507022522 0ustar philstaff00000000000000‰PNG  IHDRL;ænœ`oPLTEÿÿÿy}yÏÏÏíííFŸ¶"tRNS "#$¼di8IDATXÃå×1RÄ0 Ðÿeç"ÌÞÿHPPÐPPP0¬¥O'$ÐYa&˪±Rä=¶ì/HEx‰Œe?1&0ž{<{ Bä±!IR¤±W¡ˆPä±7ái쀇{¸ç±î­¹{KcŸ ÖZó޵k»Ž`²¥Ê™ÇØ‘é ѯ 2bƮØÄ>Ü –Þ€?ÃÒË\ΘÙÎÍoÀšRìÿÞÍ;©€˜¯ÚÀË„–JÈcúfóØ¡å´ÃNUè7²Ì;Áλ›{ ©ØcHj[Œ4Õ©N¥"0'à6¨þüî“ßXMaífVk-É™yk­c¥”äÌܽc¥+¥Œc½wš133+6|r{WG2£m[úÍc±e®0‚-ùµGçîUÍŪÓ^É ÂIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/motif-menubar.png0000644000076500000240000000250612536324510022201 0ustar philstaff00000000000000‰PNG  IHDR#)I¿Í¡PLTEÿÿÿ ""#$$%$%&%&&&&'**+*+,../;;=<<>>?@@ABABCCCEDDFDEGEFHIIKLMOMNPSTVTUWUUUWWYXXZ]^`cdfdegeehefifgjghjhikpqsqrtrsvstwtuxvwzwxzxy{}~ƒ„‡…†‰ˆ‰Œ‰ŠŠ‹Ž‘’•”–™˜™œ™›žšœŸ› œ¡ž¢žŸ£ ¢¥¤¥©¥¦ª«¬°¬­±¬®²­¯³¯±µµ·»¸¹¾¹º¾»½Á¼¾Â½¿Ã¾ÀÄÃÅÉÅÇËÉËÏÊÌÐËÍÑÍÎÓÒÔØÓÕÚÔÖÛÖØÝ×ÙÞØÚßÚÜàÚÜáÛÝâÝßäííí¬ÁÂïtRNS $8>9IDAThÞíÚ‰SÓ@p,¥iËÕ“«m‘û°*x• *Š÷-Š'Š'¢@ƒJ ÿjß¾$ä˜$­3N,Îû†É”év|Ý–4U¿(™ªÒ‡<¬ˆÌFÅ2"£¿cð ‚ÏWãõV{ëð\ëáï‚{GóbvV{®]ó§fàæÙµë'`à|quÚ}#u}L›¡Î(‹r$,’ý~”Y‚%öØïG+’ôÅÁ(¹ ‡íÜËhFý_%i¹n~“¤ ¸ÿÐýU7ŸkêüÕõ1m†:£D"a‘ì{”J&÷±½ö=â[¥z$òñ)Í(iúþãxçÐS÷{¤®i3Ô5ìI¼HFCkÎ{ö`‰~ ‡¹ å¯4¨ë‘©W…^÷Ôõ1m†:£DâEò öF·²+[K“öF³c뢲\¶˜ÌÛÞÅÍÅÞw0`L³W•Q0zfxY3:÷yóe—ûFêú˜6CQ+ Å£X$£Ÿ·3écóöûQ!×Ö-¿®I7X5éùpúÈ3þ€»Ýí¹‚2Jy]›.hFO§F^»o¤®i3,Ëȵ7²þVÛÁÈðÚùu¡äÂÙÎÀŠ2bVóÿ#êÑ¿2Ú•ÿ÷“‘‘ý¿FS‹Œˆ£´?X׊ĚÍ-­ŒáÜjëÃ2c8ÇÆ#x‘ÂQŽDÁÎÕ¢/"ÅŒáœ?‰#Ebq ÆðÙO / Áž¥` ŸA¢‘Oð)¦` Ÿeóx9R@V¢` ×D ‘ŠJŒáÚžj ”€‰Âc¸F‹ÇƒH>ºDQ¢¿Ö<Õ\ ™(rˆ Ñžßÿ{´|)tŽ{IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/msgbox1.png0000644000076500000240000001066112536324510021015 0ustar philstaff00000000000000‰PNG  IHDR-|Òý¬­­ýû?üpÀäʵk×äòåËréÒ%B¹å ÿ !!/!?U%¬‹/þÛÕ«WÇM¬¿ÿþ{1—É… ¤T*BÈ-yùyùy ù yÊIZæŠXqåÊg„…7BH§P#.ä%{@uÀJXæÊ;ÍW˜¬!Ýœ¼§Ì×w 4|”å !d;”‹ÈWš¹ð4!d;$.ä+|k¸¦†`ŠBºµDÄoä+!„l'4= !Û &-BÈöJZnB¶UyÈ BèiB=-B¡§E¡§E!ô´!„ž!„ž!„ÐÓ"„'iM4Í'3ú/w,™„ßlC_|†Ãô[óε×]¬ï{º ù¿Õ̵"6‘–0þö™×ÈÎéó]Ÿ´"fGõùýâ7ñ¹N^û±.”´’V2€åÉü‚:7²Ú$2;ü")J&”X4&‹FÃ$r+bÞ¹öº‹õ}O—TÄL(¾ˆäìxLÅüö6Sbº¬®ä$ê÷‰?’cõùmUæ‡wY ækÖ2D‡J¶X.%0ln´Ÿ¢5¬.µ\–Fyh<7¢ÚϮۮÞP½z½aî§ñú–0“ öQ¥Å<¶â–tÖ‹•!ýå‡Ál£²`#1/YÇi49ïc­i¯N,6²¿ÍǦ½ç¨y¿i­ïÕž³á¼÷17׿‘véiµ˜´² :ô.94}Hv©Yp@Š®²|Rúƒ•ÑZoÿ˜¬6;± ‡eW½}OP‚ößîöK«YØÕ[–÷ì’±“Ë•õz^û\ëµ›3;DqÎ<–ééÝ#yûçÆú¥§§GúÇ]ã{z¥'Ø/‡H¯½ž¾YZÎËÞ^µÏ ^*¶¨ÓÞgo¿9Y?Vs#}UeFïžq1&‘&1/-ËÈž`;FdÙå±èùCÒ׫¹¶©Ä£Q{ã®Xh¦Ž¼Þú9ÞjlêצΑG¿ñî{åvµ3^FÍ93ûPoo¯E0hÒ?î$M¯ø´Òçéiµe¨ªJ»t …ÄoÿNÍ—·Ñ3ÒÊžH<5!Éh ¼m¢A­näìíÍm"C’JÆœý;í»¶ ÄFe"wJØøÌJÕz-•ÑÔ¨Ä#aÍéÖñ´r¹£<‰ÜP`] 0äÒ‡ªJd-²J䲎L‹:«÷Y/V…™¤}lГd:#ņåZ“˜ û’0cffB¢öö±É•òú⬟èè”d&S‹ÄeÖhVªX„ö´@²ìÙxioClê׆ÏÑúMþç´[î?8gj¡hB’ɤ$l}ð´V[ÑßR»ô´Úž´¢©YkÙlͶ³£a»%d~U—B&Y}BkX™´O˜?ᬯM*ójŸUÛ„œýfÕz_L ë’¢ê@¦žo¡t%¦ Ö²‰ˆ¯¼M|²|œÑ êôŽU©d8Û å¼<­fû)SÔWd±0/£áÆo8‘’Ù‚Þ‚§U‰…1kk³/\/íí‰÷qy#¯~ó^ }o½ÇgÈhÍ9+ÎVôé-è_i©]zZm.•¿²~Ûì`u™RJÔ-Õû5­ßYŸ¯©ï³Ãö>ûÆOÂÈÛe˰L©õ{­÷,ŠY»ü0Ùø¾P)‰]ö6Ãy£ª½ÖuzǪ² <-½EO«Î~Œ9Ù\,îó7wh z}p¯dõRÓò0딟ùªzioOl¼Ëóyô›c-ô½ªc5êŸ3÷>ôç[j—žVû“–QÛ…1»æïÙ+Ë-´5§¶ïÝ6'õ÷Ví³²Í°ãù¨ÄƒeÿtÚXߦ‘• íqM[Ǽ,ƒAÍ£cVtÕvÌÖuzÇÊ2uƒ^¦®÷~òöÅÙÓ¸êup¸ö‹”¢,œw¼”ÞºH¥½“vr(-Œ9~ŽÁK{{bÓú{£–ûM“¾·™¤å¥¿•>_Ô—dnnNÞ_Òéiµ§”Ó×íßã3ns2×X—ƒ¡Ú ¢e­ÅJŸMUŒn-^Ç÷ka?+3åÉ*.ɸ³ÏøÌª•´Â5¥J ’”Åbóä û+ï1à¼ëüyãvÄÆ3-œ#¯~ãÝ÷jÛÕeÔN2µíj¡¤3¹Ô+>^í:Dæ>éiÝBІ.º®77T5¿Êܶèu»ƒ^Þg£[&Êëuë±,ï´Îú·øþr‰áŽKÉ(Ç¡T3i£ííýlVûÖcÓ¦Ûsšô›Vû^»ûÆ/Ù.ï=$„ðyZ„ÂçiB=-BŸ§E!ô´!„ž!„ž!„ÐÓ"„zZ„zZ„BO‹BèiBèiB=-B¡§E¡§Å BèiB=-BayH¡§E!ô´!„ž!„ž!„ÐÓ"¤‹Y[[³¸xñâŽz”6zZ„ì¾ýö[Éf³266&rÿý÷ËîÝ»·=Ð=Ð}ÐùÝwßÑÓ"d;'«Ó§OËã?.{÷î•çŸ^Þyç1 C®]»&7oÞÜ¶àø¡zÒé´<øàƒ–Î|>o馧EÈ6+Q:½öÚk288(/½ô’|ùå—rùòe¹zõª\¹rÅú½ÝQ:  ú z¡Û]:ÒÓ"¤ËÁ{ìØ19pà€œ8qB.\¸Påi]ºtÉzßÛuüJ^C'ôB7ô#ô´Ù%áìì¬<öØc299)_}õ•µ´Úï¾V~C/tC?âÐÉR‘I‹`Býõ×òÌ3ÏX¬¬¬Èùóçå›o¾±Ö¹Mj÷¿iŒE…EÓ4¿Ä’S¢»¶™OÇ$M¹–2™K <$…âæÛv¿ÒÐ ÝЃñè”9ÏòÊÂ\.'”×_]¾øâ ë¢-‹ÖÝÖo׌œDìd4G593ÊÉ+””U{»\Â/š/἞OE¬mâS…¶%jè‚>è„^è†~ÄñèT™È¤Eˆ¸€Ÿ{î9•S§NÉêêª5òÀŬV»’Vn¨œ ¢‹UË'ãååñ™U{»rÒÂH˘µÖ†2m]ªÄÐ ÝÐ8Œ[ëéiÒ…¥á¹sçä‘G‘—_~YÞzë-yï½÷¬i…¨‘–ûBG‰µ9>ÿȪçaù¤vÝÙãò'¬ §ä+óõ)$-RÎ~ó¶„±üOIù|ÓíVp'`5ÒÐ ÝÐ8 ˆK'JD&-B<’ÖÙ³g%Zß a¾ÒÜÜœu/..ÊÒÒ’åõ,//˧Ÿ~*Ÿ|ò‰õ{S,LÊfúíß&ë¬_Á;Ìäôۿ˼ùúèßïí7ÿ-ÿûŸ(%ûäØÒ§›o×…:~è.èƒNè…nèGÄ¥#I‹Ãÿõ·ctã­ ¤s~Fwß}·¼ýöÛÖÅûþûï[r¡Pp.r”Nð|À™3g6ÇÊQ¹ÓLZ¿‹­³¾ Þi&¨ßí“‚ùzzßUŒú;÷ÉâfÛ¬Ai€•Ä z¡úÄq鄯ŤåJXjxŒlÞ “èHw$-L°¼ï¾û,?çÃ?”>øÀ‰|öÙgòùçŸ[¼®ëÖ…¼iV^—?˜Ièö½¯ÔY_ÛÍuû€Ì×'öß.Ú†äÄ‘ýåÄõ?IYÙJÛ. z  úÔHº¡q¸÷Þ{­¸t$i±(9_ëb¸‹˜Ž8yê+mÆè×Ý7p?ôÐCrôèQëâU £ôôÌcÂ7lýgs¬Ê“ÆèéÏr|µzÝ™Sÿ°’Ó9n½Îø½h·3æß³ãµÖÝö×qëõù- 4@tAtªÄÄqéÄ|-&-»câ$a¬~ð)ƒO&.ö \¸O<ñ„5G ¥“]aD‚>‚‹¯2®•™½Î/<_9ùþ"Gç–­Ä0wô)ñ[¥ànÉž+o—=ˆoÊgöûÞx|·õ>üÿåüÚW_,è‚>èT£.èGzZ. ñ)³°°`%,ŸÏ'?ÿü³Õa𩃲‘¥â¯»o¨ÑÅÇì”Qjt¢¦([a«m G¤¯GsM.Õ¤§oPæŒÊ6ùá h½Ãb8ï+É‘ µmßøÂ–ÊaõÍ¡•DmJ3ô«Q'–wâº`Ò²;&’Óüü¼•´p♸ˆ{ž éýû÷[_÷ã‚V3ÇÕ=‡¸¹7·59g£wæÜù6ïÛèQ÷ ª™òÐ ýˆÊE,ç<­–ãë\•´Ü‰‹¥"ï;ć×+¯¼"ñxÜê'7nܰž„pýúu,Û ¦·.èÄ2ÜsýˆC§ü,zZI‹‰‹¸ï=Di„û¼ûî»òkú^Œ° qཇ]Rbò\mÒb©H”׃sÉ–¸p1#|jjÊê;ùú z¡ú‡N>ž†I«…¤ÅÄETâ·̸p_|ñEyøá‡eß¾}V¹„9LüôÓOÛ:Iáø¡z  ú ó…^芄EO«…ò¥"©}òÎ=æ+áIÏ>û¬U.>ðÀ²gÏéëë[Ç]wÝUwy·¬woî¹çKtAtB/twÃóâ™´6´jG\¸‰´[ž›Mn½Ç…>ðÑGYÏSóÍ7­§z¢”zõÕW-Ž9âüí~]»¼›Öã‘ÊÐ=Ð…¹‹ªºà3â»´ù¤d2yúé§åðáÃÖýW˜Œ“ʤśìwÒÿ=tkâÿ=Üå!’–Y?~\FFFªF[þc;$4|rÑ×"„žVÇ’&Ï©Òï©§ž²LH•ĸpÏf(c60o¨&„žVÇï/Ã3ƒ¤PþáAg“êÀÔh ‰ 7޲,$„žVG“’î/Ãh ÷ ª§6NOOW¶ð7¾1ÂöLZ„ÐÓêèó´P"b¥¦3Àh‡…$¦ÊFŒÆ0ñß®°4$„žVÇ—ûßB©ûÍÞxã ëîö‰‰ ëDŒÈÔ#I;Bèiu¼TtÏÃQÿ: ™êßGuúVBèi‘¦1Ý8ÙŽzZ¤î?®lç?å$„ÐÓ"„ÐÓ"„zZ„BO‹BO‹BèiB=-B=-B¡§E!ô´!ô´!„ž!„ÐÓ"„ÐÓ"„zZ„ÒþQìf• ·IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/msgbox2.png0000644000076500000240000002172712536324510021023 0ustar philstaff00000000000000‰PNG  IHDR:‡ #žIDATxÚí}ýSWºfÿ [»?ìÖÖ­[S»[31ÌÔ­©Úɇ wæÎNân²ÉÜ“lf"’Ì$„dLâXÁŽ1vŒq°LbBŒŒ¿0F6ó%Ë|Y"[€’A 4ÐÆ²;ÎÇÌdâ}N©‘„$ ‘Åç©.»uúôyŸ÷9ýJïÛ§¹[·nuuuõõõýíoûFÂ_V4•ˆMD(â”s8&“ ǾüòË/¾øâæÍ›7VˆJÄ&"qÊ]¸p᫯¾¢QzíÚµ«W¯^¹rEd``Xi ˆJ·ˆSîöíÛr”ÎÌÌL300¬& *å¸åðßìì,B™éÂÀ°jEœ’pÅû\e`X埱ˆSŽªÀÀÀ°º8å&''±7ÉÀÀ°º8å&‚áñx&V+<÷ã‡++î8þåx†çf``Hpc n”!AÀ]f``HŸø300$¸¡¡¡áy’0ÌÀÀ°¼ˆzœ!AÀ 000$8k0.]ºde`Xݸ´ŒX=.ã_®!AÀY܆÷9C‚€…+Câ„«—!AÀ•!q•% ¬ve```µ+«]XíÊÀÀÀjWV»200°Ú•Õ® ¬ve```µ+«]XíÊÀÀÀj×°ðÚ: MM¼7c 6SSS“É&$þLÅR–x޹|™\¯H »Â[›*JK+ªj­‚×x ‘/›•I† • ¥Yè¾B©ªæ½|aÇqI-|  SÈXù-‰ŸÅR–x޹|ž\^M^¥P_\F5燪¦ZIލùÄ¿lV&\³’¸¤‚$¿¦ôE’BƒpÕ¤¡!Í‹k¨S­ cä ÕUŽª¦_˜Z1”%žc.‚'—×f¥pIY’/zUŠtH/¼ËÙ™“’”’¥ÿ²YádØT’]Ò‹L™Hi:ië} Îü³‚³žðiž LÆRJÇï:á|¯ˆ“ÄÅ%†äœ9†A/îŠmˆƒBI*yó*ꘟ†-(KDú‘ Œé Ë=⹋qjéÒE˜©h“(c‰)"H—ÀB#ßÛµ«?\;æ]CÇšŽeÐOÞô«_v¯Ã›îû@NÍ­p… kmF²Ô#9=]Ú‘Ç÷º: 2R}ç'gT¾vÞT”éoç’+,Âç¢%7=995›Î¸¥"7999·ÊJVe§&§ç«-¥ç$g–Ú¦<ßéµ61*[éôÔÜzC¨ƒ–ÒL9…KÍ®„V8Y¼ŽÒìô€Kþë7›s‹ËžwõúƬò;–&~©ëTˆÅ»•.ÂLEž\22—œmdÄJHOOMÏ­£úå²aß»FÉ:h†&eÈ EŠ´£ÔöJGŒ¤7j m&‡tJ)œW] zn–Z«QÑq|ãû¥©Êk´ù4ÏoqÊí\ZN¹¶ríêsD0k8ÿ;T$òKr*¢ÅHÒEš©‹‘'7¸ÊdÍ>ž|dþÎh#³Úuád˜iA:ŠæR>¶Sà 7 ÇåÒvS@ÒQ"žYESEÁT"åC%zÚž},¨”;¤Òi\ÌørHCéP‰IÇ\ˆmDý‡P»òQk×à³K^°)YO˱‚€Ö¼yߨ9ò¹×$»‰ü’œŠh1¢tfª9òäÎBe”O"ó7E™Õ®w®Bhk…T“$ç9"h¡}R‹¤ëÝ{,7U>ݨ„Ö„4ñ²Ý7lAаB‡4±ÉM¤·ƒÎr¸+ÃÇ0ðÊXˆmDÉ=’ôH÷H"že’ÎIέ•÷ÓKLAµ¼¡ŠVe©¡×ŸoLƒdÍk­àüá‰ü’œZ Û|阩p“{—ቔËFäm‹ÅjãYí%—…ú .I¡ÒÖÔT—«• UH=&Ú«ýTNŽ‚ *Bø–4_rXÝ¢óUm*]n§Ã–æW›aÛN+˜e–\c…Ë»| ReÔ©¾ ¶‘ôçŠ)Y…Õz³ùK—À³:54mÏÑj S| ͼˆd8G‘¥©ÖuvêUÒ°YÕýák×4U®:‹žœU-F!¿§ð"œtág*Úäì«G®]CùG™~Ë%ºXíê›WõüpUøfTºþ‚]Ÿ“6w‡‚|Ï6¯ÊëÔæøozäÐÛ òø|¯ÎGEºßPm–Û³æÚQóðã$e©µù Mg†’ êÀkn¶ÑäÍZ?‘|W˜ =ÜYÎ¥ì‘&?ÅwcÆ…pU$}iYš~1|ðdÉ¢( {ýzF’z NEô"²t‘f*òäŽÌ—K!82§ÐðQýŠ4²ïÝÐ:ûÍð¢! <å+Rò•ÏGúÒM:›ŸöüQ½Ä’o¶óÏXdé«(¿G^bNð|Ÿy7£I$…»'¿x§–ô3Ãp3}r¿Ï¤Ädä{í7à «²ve``H˜Ú•á^»20Ü£É0“€Õ® ¬ve``µ+«]XíÊÀÀjWV»200°Ú•Õ® >ˆöjMõ¼¿¿‹7—ÓiwºD¦ÿ ×®¾•äŸTº^žMÆêß‚iZÞÕÃyõÜ¥*[œ,fW°vÉÒ*yµVQàmVC´zI½#žý൤Ï_œ%lã bG*—Ú±¬þyy—´´”×–Çqé¥&– ¯\íJ¦?pñkk¶%!‡A^ó6»Éx¸ŠÒ“ójmô…¥"35¯>|Ñ”™œIÇ-¥©¥vmËKM.µWS—œ+­…ë­ÏM/ÐwÐåe9.³¤É+œš}¬¾‚®ÆUpÌŠ¦*y ÛÌ ÿ°¡‘]„ÚßB¼tI1\ŽÁv]%éÉEߊq%é%D[S í”YjðÆJâ`fEUñ.x17‡¡Â¿Y9K ת )æ3«˜$z=%Ÿœžžšê×mžGó” xgÏ,ÈãäŠ, yªL@ct³RZØK]3·ÈT¨]§tẼ.]ª—\úœ2++'‹œ­jqÅFé¨Î:9½deï¼ù •âîë%ï‹>>‚YíoœçQ8eÌš4N¡eeëÊ×®Áɰ-WªO¬H‡Š„€>–ÀdR¬Ê@[’—ÊeTXH¶?ÙI6H­‚¡€K. ZƒH0àh^^Frv½Ë„|8;/äZ|G‰”¿¬¦cÉ\ªÁŸRŽzRCBs:æ\ãB.çIÔW$ûW6c÷s±4K/:V”êK­$ÛΨ7YL&“Éâ¼±ÑDrÐ0o…&É\¶m~í,Å]*æ¨E¡S ø†) á= VÝe£¼°°xåkWr«©Þ*Šï0eøj$¯­ {¥Re"K¿fZ½!qQD×Â5øê¾pý¥à)ép ¶Úô€åjå1*¤© ‰ÿÜk’ª,r©™ÈÒ´¹\^¨iÑÂ]ÍsáêµfæÁëÔ4FwÁË[MVéyèYÕ6Œ]RWÓå¼3|w¯µ„p½AbèZcK×$B¸RsÙ"ø:lä†O8)îR1º|qvimGSE²lzžGó•!: Í%²(]ùÚU´¦¦ZþÇ\­’¿ßÑvÎKÔèò¿95òëpý…êœ$ßJ±…Êùö”21…”r d…K%y” Ø_ã_¤WZXg‘7 ¤E—WÔç§Í=KÆŸÏ6FqÁÿ`‹¹O„±+U­ ˜ð|Ñ~ýÜKCSñ%kà`úu…òF>¨§,Å]+ò²ThJ޶=¼µª?§¤çùw;o´fäè¦x£-N›l"#§ Fa@d@ Ä@/~¹1󋦧§ç£>ÊËË«®®þì³ÏAøòË/ÿúƒ„›pöÈ‘#ï¼óÜÇ>¤X¶@]ýšÇD"9V›¬“û†ó>î}NeܰËT\9xDïªïœlèòmún!N›læ`¦s‹L 2ë ׈åb˜†!Ûihh(,,»§M6s0 Ó oìh%=ŒSV³p…î»wïnmm½víÞ nH¸yó&öoþ A¤þbîCHA KüÂ54ÿþMLÏ^ièó¨k¬Î7¾ù^Wõ)gm½[×þ|qqñÙ³gÇÇǧ§§EQÄ|D.Kxò`—´,µZ]˜¯R¦Ñ«HÑâZZ¸îá|ÏïZu¹¾?LÙÓOžÈ’¤Të-5åù ¥†[% Çá>D€²@œ˜§Ä‹ÓœïTÒç.VwvuÕå*eJZ<×ïíܳŽ[³Ç;‰œ±Õ:±÷ÌàëêöÔ?þ´§ó¡Ëïw½[ëÞzÊ]p†Ï×¹·ñlo˜ ÛýdAe%\þoîúÓ‡õÏmÌû—GÕïê'w|ïM6s0 Ó  J z ª Ú«®vÅÛ$ÞæËÊʺºº\.^b2èu%\SÔsoÆj…ôh¥š  »˜¯|H~èy8Ò= u!Ò*Ò¼‘¬@­‹ðvÑL˜žÑVÁ•¿ó„ûR@È‚O¼Œí´-Js#y°—¥5G¼‹#FÒ@ Ó¶w°4QÂu ‰W®^Ö}Æ¿w¢÷[[“^êP[_¯É9êz§Ö½¹nbsgÛ™‰wuùõݶ5Lå}@n <6…ýùÛ–Sc[š×sdËé¹—² ˜ƒQ˜ÐP1ÐIPaÐŽí 'îûgeº°°°¦¦¦»»ûâÅ‹˜Ë+èû%¡kAðpÝe hÚFžÇ èš’^umSøžD˜¬ØÖ5æ;«\™¢T×Ùö=²K7@š§ÌYë²pb—fîÁYå=AöŒ»Ès“jú‚i\iT+ýg`4½¬~ŒS¨[ý¦ŽlHyl›N¢dÜâ뺫q xœkrÐ"@ Y $Ša>¼HÍ6ÿTC×Â`¨Uó˜_…êUºO›•¬Ô}«ì?¶A;æ¤Q³AYÝå¡êÖló)ÿ˜êmêR¯ã’Ô1’)¥É9s¤k|kUWÚ&ò»ïS™þ¬yó¸{c ¿Y7¹¥~zóé)Õ)aó™ºm©ß.y”~¹­û› Ìþ£\<òŽÚ{€ûYöY>C±î'™µdÿh뺟ùº>RÔG;È&ˆ¹ÓSÄ´n4@”@ ôÝÔª ڱ͇c®SSS¹¹¹mmmäáD æ ¿¿ßf³¡2q8###—/_ ‚uûÜ[tM ÛÃq¿9iÅn;y8ÙO2«š»»›«2B¢¯}˜œUôI¹²ªtG7>½7ºm?ú49¯è¤îds·5È ­9‹žš¹]×m“Ï(Û¸±ì$1S„3¹=##'7>ÀqO4Ð.ÝHëÉ¥§·zzŽn'Fªz†‡§ÂY¸ Çá>D€²@HÛp]„æVd Q[F³fãFÍQCw÷É"²v·ºÙæŸ 2Ûœ<°…HS$µŸÜBڟبinoo8ZÕÐM¡ØoʺÛuì=­1 à~\`‘D£ÂÕsƒSŸœÝTÚøàÆ®ÿþºù¾Ýûómý늆ÿuÏåûpü_Õã|4¹^3ñHé$ÝÖïÖØþ?$7þó¯‹Ú5FZÈvùçOmþùÆö_íjÿ)yÿÝüoû…ŸZËq¿]û¡Ôa©›~¼q`ýþÏÈé)E©»îæÈà~±›G‡90÷Ñ$L{.ƒ (è$¨‚0hƒü*ª]ñfév»_|ñÅžžLÀ¥K—0v»N²q î Øw>Ä=”ßؤS=Äq7ØÝö†äÖö$8›èË~rÖÃè²³Oj7?Éqéìc8‹É°Mî°íÙ¯z’¾S¾ðAÃhÀ»½¯â4?ŒÑF{¤ç/ìñSÊî†a‰Cöþ|´7ì'ÔºþÀ±©p–^—p"@ Y úİ|]œæÎÈ¢vœýý}íïóéìn"B?t°{”žþmw6ù.v)5>YÜiºu’ŠÅ˜“æ÷ä~òž=FÙÇg/zö·lØ{òço}vßæK÷¿gK)^ÿÁhú~Ïe“— O§}òÀº=U9K¶ŠÁû¿£“þ¿^2÷ä9ˆ˜²©Òb3•å»Ç›NX$mS¸¤=>i'ÏavžÅî9¢9÷»üÃV‡ÍÔ|âp³MnÌ)kÀtÙ,çNÔu@ÄŽb|1#‰¼×n Œ_©ëqï8n~NmøuÉhZ©ç÷ÚåÑë™Ço=_së•ú¿¿ÒðíK§ÿþŠþtËnüdz[‹îßpö­øçÚÉ™¤Q¿.ûòùBòàÜ”Âþ?–ý1ÑäWÿ~ø¯èœ]?Dïmþ—Œ6ò’lîûIó}è~ñ„øÌÞ6Åá/Ñ.› æ¾…i %=UíØþRâû&ÃdB''OŸ>½yóæááašöÐ7TzË}æ½k ¥é\ 2 ªlÝM™Ér’Ýä Ç„’T.µ¨ƒö±”f'8?ª×e(¡'åѧûa©È 4—We’Ƴä¦ú[J ¤]ߣ“ E„_•5`tÞTÀ¹Ä$„üÀˆæ¨$Ø%P d8Øá‡— 9o©ÍL Ò<»¤Éû¹X_A_¦çåItðä9Ëò3¬¥gûŸ/Ôúû“gE—šhc}Q€¼¥äIÍûÓ¸”½Bì$BJy¶w¼¸®/»DÿpÉpzùLÆ¡k/Ö~íUý·¯ýÇ_ÎÞùKó7Z|[NëçT/úûлƒhÌ9ãøÅ¿ø[ÞØýOäÿ—2›Hÿ§³ÿ/ÑáàפÝêSÖÎðÊo¡Q6s0 Ó @™€ˆH‚*¯Òï]‡††vîÜyüøqÌýý ýåê­[·¾X"nHó9³èó®â¼™áÚÝnr‹2ø±rõ†oæêÂc‡\œ¥?‹¥?â²ØívQcþ½ëâ5¿1éq»'¯†ìÆLï$“”ºNš« œ½d‰&¦g/ MVùUƧ‹ éŸÌþ¾ú«êþ–­÷ç›Æ;›:ïll÷mowH[Û­×ÎLeŸšÊ1ú[Èö÷ýõ\©å­¦ë¯7}p(Ì–‹>ú[où_Ê&`FiƒÈ€ˆH‚ªiXˆùφcð#Dòщ ¼A¢1›Íß|óÍíÛ·¿ö/ï…? ƒ›²Ëp/{zz ý܈ùφNóï)RJ‡g¶©Ï]¢ëÍý¨A±¯ï™ã_½Tÿíë­wH;ï¼}áΦ wT&ßöŽ9^›læ`¦A4@”@ ô@TAxõþf\•••»víºxñâ{¡¨¨‚@–øýf8¡5_¬DÓ³×/ŽLŸì¾\|¼ã/6(+²[¾~«ã[•é»wûîä÷ÝÉûìNþEß¶íR¼6Ù1×w¦A4@”þòa=è$¨Î¿ÉtÃþ{WÈ7ûþþþ²²²‚‚‚††pº7ŽÃ}ˆ) d‰ÓßÐ%®æK“H¼rulR¼`÷o·ï>zþÍÒúWtç6‹›Ì_¿sñÛwû¿Û:pg»Ý·íŠ×&›€9…i %=ÕŸÊØ ÿ\t…ÿÞÕãñ@ýÇoݺuÇŽµµµx‰Cß~ûí;Dá Ü„³pŽÃýC‡Å5VNó˜HD#¶ÛÆ=o/>i~WkÈ-;›s°}c½íöéwznæ[oÓm[¼6ÙÌÁ(Lƒh€ (X”XÅdA z›Þº_±µšð–‰òczzzttôÂ… Dª³iÓ¦×^{íù`¼ð χC‚¶¿ áÕW_…³pŽÃ}ˆ)â½hÓê×<æ¡䧯ZgÌ#Í»N˜¶:¿ù“ÆMš“¹{ËÛ†âCôßùÛ÷l´òö¾˜ÐP1Л_²ÂGħÓé¤o^n·¾_»vm±—š o™—/_FqÒÙÙÙÖÖÖÔÔ¤—ÐØØ¨÷ƒî¶$b;Ýinn†›p.cJè'Ʋ­Õ”šÇP"º¶°}|¦s¯ívV¶Ù?Ôî©,Ò ,ç¶û41 Ó  JSW®…½½Dÿ*Ãjµ"V“’’¾ûElì.¥_ýÜÔÔ>ýåß‹Žù1îÇX0·þ,ÎÂe8ï%šHóøI„lÓ3ueÐ5ÕmŸh´ŒÕ™]'/­¦{ty6Ø‚Q˜Й(+gñe6›®ä8RÄB4.*+æâwÝSë þÈie^µšÇC"y}ð×ôÅ‘)yë»,Äi ´286s—«Óp5™L4\—±ì¡ ËQ° õµX,r¸Ê»¨¬˜…+ÃÊ„ë"–=#‡a9ê”d8$bï2+fáÊÀ°’ẨˆeÉ0Ê%Ã!ëñxDQŒòý W†å WĤŸr”‚çyúÇU¬ve`Xád˜†+¢Ôf³Ñˆ---5 üñ‰'ÚÛÛÉßxJ·ÌjW†•Wú‰ÚÚÚŠ@•?`õz=ŽÚíväÃQÊW– 30,S2ÜÛÛK3ÞŠŠŠƒÒÐEÄ~úé§. ø\þu W†åW„b?B´¶¶¶MB___YYý€Å'êè(Y+úW¯,f`XŽdxjjjhh¨»»Ûl6Óe–‘˰ØDö½+Ãʇ+>?Q¾â#Ôív ‚0>>ŽbUN½ ‡+KT–'¦+àѧïÒµ{ÚÛÛ‘Ÿ:uª££clllád˜éÈÀ°œAû¹]ú ¾A ô>Ó‚Ì’a†•IéŸ( îòo€Y¸20¬dÐ.êo€Y2ÌÀ0`áÊÀ8áʆD W†Ä W–`00$ þ?öÆÊEÔIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/msgbox3.png0000644000076500000240000002256512536324510021025 0ustar philstaff00000000000000‰PNG  IHDRÓ€ßñ%",)x ¹ÜgXA$½0^A$½07AôÂŒ#‚ é…¹Ž ‚¤Æ… ‚¤æÚµkcQ\CAVHâù“e‚ HzaFAôÂØÃ¹råŠA'Œ+k„µnrpŸBAÒ cCAÒ sAI/Ìç‚ HzÁ™A$í3¯AI/8ó"‚¤}æÅ·ý‚ ˜çEÁ¡ZáôÌüæ®ÈÚÊsƒkä̼Z.Æ,Ë¿«©\ÌGÆZØŠ Õ&!‹Ø«]†Úø ,Æ¥ u]«•ÿ °Ð³zu4/¢ÔëÕR1¢ÚÊò~®W)Sèê ½½­*¡YEÝHì;h|$|ÌRg –+Ë­ð¥Ð`; ­¾P¡ë¡Pè‚6túXBm¢²V}@H¡'Æœë,w‡<Ø#]¡Tü<Ê3¯Ì $¥eYy^AÌó"‚ {žAó¼‚ æyA0Ï‹ ‚`žAó¼‚ æyA0Ï‹ ‚y^Aó¼‚ ˜çEA0Ï‹¤ÞY§«‹ú‘ÉTÃyÜn§Ûãÿæy“ôœ2ÉB~:V*SñçOaØ¦Ž´«]ü]y‡§_ó¼OîµSÐdç9Öaï*ngÓìò¯E‚ß–}·ž˜…¼9“É4§µ~Ö#Ü6Îï(`˜ìr ®OÌó&å™ÌhÌÁŸâ¶çîæê*Ϥot2óŒ®ÐçºG“-)hrжªÜÌ‚æØõyK®$—¶ÍÛÊ3sÊC~ñÛQ))·‘QÃHòíä s~vqkoq¶„¶”[fô 'çeæÕ7WÑ›&×Û¡¨67pãÄܪ@³‘…ñ»pMÅôf‹âaf ë)Ë–hºÄ{šËr²Ëˆ-c­”[ÞåO–'¤ƒ¹UµÒ»ð{nººª·ŠÌ!g 3om˜ÑÊc:&˜ÞLÅK²³33¾Eõ(Ê™éÜz>WÌó&!Û Ü&‹Bîv•¡ö8Èl #P£UÅ0ŠÐ‡™´pR¡›¤åô†71ë“Æ¥tiÌšÔ'd•Ì×É™ŒÂØÑ ù•÷ó½Ð®Áélm%wóS²LÂ=Ç„»yÉ #î^½‚Þž‡w`¬j°’û>,fAC vmpò~ÎãayzrD\b…TGïW.£·&îFò¬,¹‘»nKŽ'´ƒJÓˆ› ½©’N®ë`9Îít™bv(ÌŠhåq«£zxÞÓPHF™ „ëQ´3$Ĉ*ƒÉP5p¸:E0Ï›ª™7KwY/_¼ÿ˜P§2d–ñ» ðä¬áÙV%Ã(~ÿHÌú¡³LoÄÌëw·ªÈTÅöf1R…ŒÉÒZ=*:ÓñnkN]¨‚)#‹œ.4ØàڶÑÉEmb#º,IÜÎ*mX¼\d\·0yüƒ’65Hf1F®P(älU‡'9žG Qwv$-È£Æ+ÒŠå96H^âD=œU(ŒêQ,g¬º,F¦Ç/‚yÞeùB.Ï^ëM R§ÊºZçksI~YA&“Se#IŠ˜õÉŽ¤K(床‰&ìþb\-(È‘ä5{,F’WM³¬¹LX wÙ-õ&³+°Ä¦9¨IqÊi›‹…Kuéžæªb²ÐΫ‡UvŒ¸ŸóåÙL¶¦^“)®²í$‘Ól±YÌ‹ÅæâüÉñDè`WÔÝׄpyŽèak¶ó<Ǻ,š1ŸèwÔÂ^¹s´TÁ“3×î˜â4B&0»K̑ƪ/̃efçh" Ç̲ˆi²JH'ÙÏý!#If ÌvL¾ f £†”°aÓâÌë·çå®ðÉt±0qü¬Ýb•‘¹öbÄ%9èbšc?´s5ÁÍÂdÈGÞrõžÄ™yi¸¼*3z]ò9W,+–é˜ß^EZ+o2«$ÁÐQ=Šv†øe¼#%‚yÞÔ|«,K¡ ~©ÌZ§ ~ÙLßµö;ÉaeCðq¬ú\’~#)K­–3R-¹š†¥®LXÓräöàr=I5Œ4лŒgÈ28Î"9„:MPúùÖB!™™zð°Â]଺`¯Õ­N̸B†$JI>Zd¤U»xbD®cÕž„t0‚ƒ:Ø‚‰ «´bÙŽx¹ÏºT©¯T’l~¬E;#~±Lm•)‚yÞ´ Ü’;vvOø Ggå–¬Ï ÷ô^y\¡e~‰“9€OX˜  ~ñ¦î+ŽËslÌã)ò$QV¦<øid‡ðá!·G<»ŠQCÌó¦[ÈRYž©˜™µ6‡ AÖØÌ ï’8?ŽÚóz\.—Ã…c‡ ßkžAó¼‚ æyA0Ï‹ ‚`žAó¼‚ æyA0Ï‹ ‚`žAó¼‚ ˜çEA0Ï‹ Èc…ÿöÂôÜqnþ;7zk6Í…Ð d`žAÇ~v~rzÎ=Á_Ÿî»ÆuŽøZ†&>œLóA!4 $°µç˜CV ¸GmüŸOÚ ¢çé±f·[Ü,LvÝ£>˜þNö{ÿÒsóX—Gw1Ý…Ð d€ÂÒ0ù¦$ÛpçÎþþþêêê={ölݺUެð ÜÁIðsaa!ÍkÀ'pÑóôXëú‰ÿ°g¶íŠïx[z~lW툲làfÙ{s”]t“½×™¢-"GÙ A!4 $0—êä“ôKg``àèÑ£uuuŸ}öÇq_~ùå +ßÀ½“'O~øá‡à'샷i{þ?ƒˆž§Ç¢à´k´û޵ŒüiðuU϶kiã䅛͗¹ËÝZ­Ó)Ú‚! …Ðù+È1ju°4L¾L—H°iiiQ«Õõõõ“““÷îÝ»ÿþ_|qY9Ô7ðœ?ÁUð6¸ÖKÝ:÷IDô<ÕÑ$ƒíútÛð„öÌè–¢Kïíé«jrzÉwÑ:Ý5À÷ Ív·á¹Tm‚Bh2ÞÛÓ ’@È‘)M;$mæ÷ÛÚÚöïßñâÅÛ·oä¾ p÷î]Ø¿‹¬ê5öÁOp¼‡ÁçÔÍOò ¢çi°hrzîÊøLËЄ¶ÁþfaÏûêËuçÇ›Œ¬¡ÛwÎçɃ­SÉer¹L@®Piõ'÷ðÍNÔ)eÊj+ÝÄ·'KqÐ1j#ø ®‚·àpuu5¸ôV>ˆÉtuÂDýó$®ë²ñ?Ažs#úBEFÀ iVaÃ`êÞŒ› ×Á˜x’gÑôÜÛ ¾ÁÊî®Üøa÷[%ÚS7JÏÞ,ka']ôíàþÔé+ïäèv¬k ¶Ý¡tùþ]ÿG¡ð!·`AIhã$È1 „< RA0È~Dó¼àxOOOiié… nݺ5==Íó<ŒJ¼ì?RG®¹¶ÕÔÑPY(“ÓÛ€³Z)#U›R1óBËL–B«Õª Uò,zéÊ:=Íy“^[Ù:’xº¨”12]/Ý?ø óL²ÅÓ 8 ~‚«à-8 >ƒÛI_ÿ®tWåj‚™÷ œ¬6y8ç²ñ?)ž³½rÁb¹º®·×d¨«TÉ¥Y)y¾ˆôÂ5½îàDò,rOð퓇>½ºµÌœùÞ¥·Ž:ŠÎxö¼ê– MëD©Ñ·ÿÂ$ü{°}ŠnÚŽéÒ5Ðåÿ¶aÿ;å­oª>þ§ eêŽiíCoÁÁ  d€Â@ˆ© d?¢y^x݃×íŠŠŠ¾¾>ÇaHèÕóIËš´à¦Áã™,U“‰Œç8.ª³¤ãW=óJµ½‹/æZy+ÂÞOplHóœ6ƒÌ ÅW=óò«–ý½Nð\oÁaðÞ_ÀÃä^+Äeºš`ÔB â0«®kõÄu>þe³äÐD×dT}d=7©ÉÛ}…Þ÷ÍBÜ+ŽõtŠU;Üš3ï*,âg篌O>c÷ž|uw×ÿT^~í¨³ ñæGç¼{›'Õ­lŒÓš ÓûÛgèv ƒßS~zýÖYö£·}-¬¦#ö¡¨šž}C@8J£ƒ ’@È‘ ƒìT|ÎÆ<üŠ ìV«Õ ýýýÃÃÃ0¢³ôŽÓí&L%পaèvä™\tòd‰Lxi—”FÅ#7ûŠdºÜÈŠúnÞ¾=;Z$…«p@8<¥ß&•È´×i]“V"Q ÍFµ\b )¹VDÚ“õM‰çl“ŠË™’6´O' ¬oE%D™mÓÊ Œ*Ÿü³6„µì†`¿h´Ú߸»k`àÔn8ù‡µcöK§È^®¦ÑÐØÞ•ìÛ·W48Àlš-~ŠùÁG´Y²ÿÝkíOmÿ¤ ßP[Û>®eyPÇÀ=ðœ?ÁUðŸÁmð<¹³ÀŠq9®FŽZ‚Q4éüÒ—MôÐ4n‡+â¥Z¥ÿRÚ8s ×ŒçvØávvÝöíºS]ýýš\2™¶;cAÆ`÷'Ÿ|L¬Ñå“ò—¶ëÚ/]j9UÛÒO Á±_T´ô_2è`o£®‹´@®ïb{’,çæ»¯Ný¹{|Gy›t§5ãÃá*¶ÿ¬ôÚ‹GÆ_:vë·U¾_Uøþ­šßX=ýozžnkøU}4õ_ÿï糤„lžÌœ™;û~u¸ï©ƒ;SÃ?—ó Ãüö…*¡Âáz’ÞéÜX3DNÿ—/êœ?—¿Óô³:*,†€pÕ<„ Ä€$ò@$HÁ Ä?ry^xõóz½¿ûÝï`®\¹ãát:é ÁJä–€7‚ñcª_Ӣ͇[ÆI‘sßsäÕmH8ÞU GŸ68½Îò¢WØâ¤ç¹ôáÈÀÉ<†ùQƒÓ;Bv¯ë÷ŽŸ†·E†‘ð`Î}O3O¶„TPñ9hÕ)4˜w¬^·/µcÄÓÝ¥äc„h§s¨j3y 69ν?a~²‹6²ï6’Ž=§2\ò®j¸G/wð\oÁað܆:IL;®jºgÔâr1OpÙÄšñ*2¦5IyýÞx½FX·µ1*mÙ´XàšˆÄÞz/>Cý÷š~+Œ‘7¼RõÄ1Á5½n¿'IÑ<ï ³gWmL{ù—åžñ½qbjK£?ïܽ­Í_*[ÿ¦¼ð·÷ÿ™ÜÚ÷¦VòöcwÞa’ñßPµ…›ó_a˜—^5 M!©ð›— äß…’w’ÅͳG"› „€pBƒb@y ¤‚àË®éG7Ï{ìØ±O>ùV"ô^a `xè¿¥H±(ÜqäŒÅîòzgö½ Ö±øæç½¥Œt_7­c>˜Å0YíÞùùÛòíÍÝŽñq{÷ò ÉRÚ© Yöx0ÞN?;9höÎGBZf¶Tt›îs…Bæ(ëœcF8jßA¾|¢Û>>î²´Ÿëv@ë¾ ¢kK»cÜ73ï:Gªì;g¶[ÎbFz†œË–Â$" Ù÷Ù*V›í®qG7Q®ƒÛ°ŸÄXÅ .éjœQ‹;ÊAœ_ò²‰=4äH—†è«µó‰z yÎÚšr3Ã<Ï+3ú?盋Å4hv¾¦@è`±™µÀð¯+Þ Å3}Ä5ê9å⳯YboN9TµËb¤‡¸äYkö ƒ·JÏ ½óǶß»¾é„ÿ­³wßÞx˜¾ý¨ç»Ívö>(ì·¢ËÞ-z+´¿Ïî½ …E®Ìÿ(Ù¾ÿÿ¿µµ—Ôÿ½òWD~ÃפÝÚ¯>bÚ‹ÇïAa0„ƒ P% „< RAð#ý}Þk×®íÛ·ïôéÓ0*ô]èžß»wÌÏx½äÓÒ™…/–Ç‚0È3_¤Œy \) –ó ½™ù¥Z›yxµàý3yúçCà-8 >;NžOòÕ°šALݨ…9¿äe³Ò¡ñÅn|mx¾àóÞ»qÃëõÍÇ4la&AïB,œZˆeÍüBŠ.ËÉé¹Ë×|µ&Wa­éõ2Ó+uw¶œû[¾ñ›zÄypïgÔCöÙÄM=(lý÷>º8¥º0U8(!ÛvßÙ-”ì5ßÙiþ:äPŒm7Ôé¾·7ðp1Ä J£ƒ ’@È‘ Õ2ƥ角ð×ÃäO¼''ᯨ¨Èjµþõ¯½ÿþ×à!þJä*~Ž| z~ÂÃp˜¾³HúÏà ¢ç©¶Ö쮉9ã·Ì0ø~yËëWòZþúA÷·».?سáÐõȃûͨ¸í¿šª-ÂAP @ˆI äH ‚õßm€w"ÕÕÕ%%%ÃÃÃd®j4p|NÝoà ¢ç)µhzîÎðéÆþ륧ÍJ]‹¢fTÕûõîÁo4#ßiÇ”=8àxPæ·Ã×SµCpc 4 $0"AjŠ~´!i¿Ï ¦Ã«÷ÈÈHEEEqqqKK Œ>u“8 ~‚«à-8 >§èG qÑóT[ÄÏÎßôñ—§/9÷Ÿêùñæm5ý;{xõÈ×Üߺñ]™çÁQ¯¸•³©Ú‚! …Ð d€Â@ˆ©kã÷y'&&` Nœ8±k×®={ö455ÁC8ôÍ7ßàº"À1ð ÜÁIðóøñã)pÑóôXD'ß~{ªÇYÚhÝ©ïúCå…N\ÚÕîØ70­¾zWë¾O·C)Û‚! …Ð d€ÂR=íú“x6x ¼sçÎôôôøøøåË—kjj`²cÇŽwß}÷p6oÞüF,°3†æÍIîrüæ#ïÕ]¹!†Ù"&)‰Yðæ?clÍÝïÞ?fCI³ÁN« Ò=éTLI§ésKçæ¤˜˜øLöÌí,Ù³¹´›µ°43>&isyåvŸ˜ô½õ6wI•½–Ö2»Ço®iö¯`çtïÐ8>³ÔÄ#‘|n™1ÈLâìxÀàÑZ]>W-*3@…Üy–z*Vªéy\½ØJù•¸P×i©àKr¦b2Õ&Ž¡’’â“6—ZBÖ+Äaƒ ÑÛ 9šcG¾Lä!%%ŽYH“^bÖ´­©u9Ò ±l—}3©RØ}3Фâ,6wþžU‰Y‡+¤9l|#§aÀ›N% Kçd¤†‘*ÝÂX‘ÈÆ UE‰Üñl‘ÇÂÄ´oœ„JLaƒ&qìfA­Ûݯ‚úwÕã2²Äe-ž€Ÿ[L-iëó¥ L9TVÕ±è`ë%<\×R%ÍÊÈé0ñØŠ¤Å¹—Ätã_)¿äºùZЧqÝ9“ö7²»¤óÅbq>딸"cûCåŒ QÛ]ˆì ¥𥃳AÇá4öl¸d¤õ-â¹s‰Ã@U{úgüåò»ûܪ6‡V6}]–ÞG¾ÙóÓ÷ô #²æ×‘=*2È9ž˜SEJ¯.ÀÚ „RÙUEª`±]Þ½¥zôÞ*úˆWZ¾´COíº+bêSž+M0ã—T© %s]°–Òo\ß8µé0Ç–·tpûBåŒ ÑÛm ÄôÙ µ`n(íEæù2¤¨Ílºš¤k-fvO/e‡à&u13Î,®cÓ3Ë}B}–V&£$6ÊêìsÍÝ2«ŠÕ&ožóY´‚žUTA+2¶ë»—©s›oQ^v–çrR·<)æS‘ÏgÔÞ*3~I• ZbP×i©sÁwΓ¿½»›‚Û¯•3‚¬•Ø®[ï¸t—01»˜m†àv²ÛÄ0º5S¾9Þ»»gU13e•¾^pg›ë“­©•9Acdk{¶òán ¹gø|Ö­ ¹”ì^PнÔÌ>1›+½ËIÅjŸXws)µŒ÷×wžÍLi3Ý%”Gvƒ¿¤JͳY ëæi)¾Æ] ì³?Äac¡{;;;»{i $êc»|£{w`ŽZ—’%­¨(;\”–’寴èË<F¡0…ò ÒÑ ‰îAwYC•;ª™U¥÷¦³ÙÎÏ)뀲õl„/.-ÃäϺ-Ìoa"‡ª¢X¼‚ž1x\F~Y]‡%øÃ^ܽTb6"”JóãÜ%æwЖ“J˜’!.«R©ê²˜l3Êzøc»‰YUeìÎe–Æ/¥RóÔ‚Ïuü-ªq}rvG¹9ûÆvýí‘3û /µ.߈cc$ªb»E²›â>3MIñl`Ò× çîÄç4¢ *©ÐssGÈÞNñæO_ªòÜ9bî«”uxÓ3æÒ©"æáOo>ë2Ф9Œb…LЏÚ1µ¡*HwH=†äy‹o¯†4oÄ9qîPFÝ4Î`:1CÜcáÁ ¯SRò/yüÌÕK¨TÐZw]°– ޸ܜéÃŒtrs¦RÄtÈzËÙ}UóìŽ ÷|lwiXL4â[òH(M{h“Ù›Ü;0×R’i¥­ Üc‘Û3Àyj4CŠ3Ípž‡]HnŒ‘¦…¿øJ-Þ– ݸËi”°äŒ «=¶‹ ‚±]A$zc»‚ ÛEA0¶‹ ‚±]Ac»‚ ÛEA0¶‹ ‚±]AŒí"‚ ÛEÁØ.‚ ‚±]$ŒXôeâ²€y#W“q`@?`´ ÿŒí†ã„jIáL—’Uu §3]ÅÐ ÐL m"ºhnRÜ´†Ô^c»ËÄB^™³­²Ûb¢{»›s™·ÒÔfîáÁLgRàKwx£ Kk<ßÑúÍÐFæÕo3½Û(*é€G¦Æv—S­Þyµ»3=oú24ˆg»8ñ™ ÷D7$Ål«ìe¿t–¤Ço«áßÞ¢NIgó¶tˆßp€3}wï¶ø˜$Á¨( b6w“=fj6'åÖ©r“b؜ҋ3ÌΙñ™å5%ì[sË»!©4ÝóæÃôO¶þ‰Á«˜*sÙ·%º_ݲâ[®±8)¦ ÙýfÎÖâ IÅÄ-½Šbv£ôÍ3áò ©`zIi©ïK3 Í%žw=n {1²[êãŠ@Ëy=Æ8½†5>&))>Þã·€x†s…N/ïÅsÁØîrƒ qžW]±7V­Ë7ê+È iªz`‹ºüDŠÊà¾ü«¥vÊ ¡ÆKiì{kx·'™Ç±#bº%Êá Ž-eiÔºœX2aq‡eÆ¢‚|«ôúº:òV0#Ù%±…yoóF®”ªž•4ƒ}ËŽE_c߬Šò‡¹È''1dصzËŒÉh¤-ìÎ~åWĉÙW§°obÞôEb«4y»ø’)<>a+¸NØÒ3@sßÄ—&n M¦½ž˜é ù¸"Ðò +cí±XŒ9¤•iO>5 ô )¢'kµ.«Â„ãRc»+"»‰â‹Ò´¹wˆ1ÛæHÌÌ@œ™‡{,t¢„ú™™Þí¹£ò“Ý™º,¢S´*‘ŠËH¡‹:Œ Y¬ÌY:ÊÄù9Y ‰dw&à =“·7Q–üÚ¯:ÞÄžÐU0u¤1/P,ª˜{ œ¹ŒgŒUB6«KD¨´Œ aÙ;«ÁŸ0k«^Íx‰äv) ½ü]±0]"×7·=¦Ž"Ob@ø<Ó!N¤R¤ÖE0¶»A†ÞÍLü®»†™&Î6%ÜAº¥t³¹x[<µ¡¤“Ä&x·' 1ÍLª©9—Š)ðyG˜©ÖnÛ¶!&³Æ¨. b2·%‘1,ÝZÌŒ‹›»Õå1T|³gdÍÚh‚-Ù‚L~–³yÎ%ÎW›kJrÉø:³×<å~n9D%”Ä»×Ý$б¡FÝ©nU«ÕÓLx|ÂT°9à jLq™½±]_W,Ðc†ÊLØÊäÎ&—M䯑¯g`óò̘t¦R‚±Ý0ÝR«é¶XL´A]°ÁCœé-…¥LœQ]gfz÷ŒŸ¾0Ñ¿¤fw\”o{F‹[¦ÞJdŒ/öÓÈ&„˜« ?ŸQ3QH"j:j³dBQ@RhUš“Ý™îtb¹ÁWIçCWa†îVw3«Š‰PÃO¹$îœËÆUÝwé •ÄàF -þït\ºO‚È.[\fI«ì5ô’[|®X ÇfºKHn*[%1Þ¢jèâH3â+%Œí®Àd‰EÞçÇ:ʲ¼Ï•IUà=Y-¬ð~çÛÞT&d>JÌÏO£âŠhÿA4ŒpS˜¡¬‰¼Ù;MJ" =ì Â×¥d¤ÀÞ° pælPrÆR—Ã0¹oðöI QS‡Ø[ëü:ý o¹LTLŒ#1h7=uEs;ú…8–ìNýè©Ê÷æÐBûléuÅ‚=Æ‹É+Òã„ÒÃBÁç«Q gÜÏå·à˜ÁØîÊüM›?¢ÇÜ´w˜æÝÞļŽ{ñå29[æÙÙXB&†¨ÂŒû}ì‹.×b¢yׯOBUaq–{o?60w é 5²ÐKh5ÁØîŠÒÉ"÷†O˜Œ‡øÒN6‚±Ý{ è™f°Õî1Ÿ€…FƒÁÐkÀ¶CÏqNAŒí"‚`lAY›±]AŒí"‚ ÛEÁØ.‚ ‚±]AŒí"‚`lAÁØ.‚ «èSLŒí"rÏË®ejzlÂ:0jÑ Mv NDø…BÑ`˜9ÙÅ?‚ ‘ïÎ\¿1aµ 𦝠O©&•:s}×x­Öá Eƒ`&a+Ý_AÙf°"K¼Çºñ.ž6k­ÑçáuQÍœ¥» Ÿí+W¹0|H9ôQS¤?P( €` ˜†…PÞÕÛµÙlíííGݹsço¼‘†,ðx|žÞ¸q#ÂÃÃ5؈èó°»(XTaØ4Õyu¢öòè±ÖáÝU}ÛK{„Åšôw/¤¼Ù¸AØøIy³ieÒ› P( 3À0 ó‚ÅVclZB£Ñ|ôÑGÛ¶m+++ûì³ÏL&Ó_|ñ²Àcà7ðžL&ËÎÎÂ2ø6b'ÿlDôùJ¸(„æÖkGÔôeì|)«EøAÛž#=²ÚÁšócµ­ãû@qP(½)¿ÌcÀ$0,„ò®®Ø.;,ª­­ÍÏÏ///³Ûí·nÝš½…,ÖoàCð$ø¼ ¾õñVnx»–}vñÆ´Æ)E÷ø‡ºWwœ3ïBÉI}uãHãùñæ ¦óíMü@qP( €oæ“À00Œä6¬®Ø.¸¾¾¾¾°°°±±ñúõë`ß †›7oÂòMd1°cËàOð*ø< ~^9 Xˈ>_ ùiÖ„ÕveØZß5þ¡¼ç•íÊ·òZË*ú+O«jFÎ(èÓ£UÍc§•ãûâG¡h0Ìc6ç^ÃÀ<0LƒWolû÷ïÿôÓOÍf3ä M ¶°bÖÖ×·ÙV VíùúóÚá°çËu ü¯‚oÁÃàçùF²yÚôÓzí°õî¶åšòù¼Œõ·×7j­Ës‘_xA?<ÙØ=öQ]ߦ"ÕÆ×{÷w—3©zô(x;ìw{߈áôíh ëEcèÍô âDÏ»0…e¦µæsS4'cÇëâàd¹´rÝð–œû MŒËs7ñ «f`âäÅáÜã¿yC!Ør±à¾àè@Á‰k…ò¡Â3Ãg† ?ÞU5Âýdò³%;}×.óÅ‘Bá#3ˆ1‡ô`˜F‚©`0˜½c»àîóçÏïÙ³çìÙ³ÃÃËšd¾ ]´ŽZ—ßÂT8©âÜ)£‡S¨±Šg7UlÕ²0Ù-Šƒ4£¨¨(?'+-‘m¾”†Pg·¥EZt¸®'´JplÝûõ·áŽú'ÁŸàUð-xü Þû°wñ¸߆ݽ°s~‹1„ÿ-=eäÄK+ªki¨8œ“’&¦×”ÏiUãâ´ü2•ª¥ªìpVZ\âÊx,*8²ïÛ;º<qµfÐ4Ý|ÅT\ÓûÆÞóñ/ž{yçå­%}[?¹ö¶Ìøv¹ñùðÛ'‡¶È‡³*G¼Ÿ­‡J Êÿå‰6î®ÚðfVÌ{6sÖ.ÿ³…)”]n3À0 óÀH0 ³Wcl®xpÅ–H$mmmF£¾B{°‡Î<²çYöbΕ]L&“N¿±ŸìšL4Y¬ˆ¢9ín)J!§®°Â7[îî&¸P6°Eó*F€ìZ‚o¼Äç7ÁŸàUð-xü = øÞslñ¸ ß_q×M=Hê}uÆ þg.Êp¹¥ªŒ¡Ž…ühYÕ>oÉ'ý iGÐþBÐãÎ“λµ¯kBÈîÂ]Ľ™vexªúÒØ—_üsÃ÷6*‘×ù‡#†W¤Wß m*–o•Ó›OÑoËG½Ÿ7 É0hñQn¢÷#”]Û,ç_°e¿ð$O:…BÑ`˜Æ€I`˜F‚©`0˜Í½±¶*b»0¬_çççWTT´··kµZhÎ)öÒÇ6ÒuF™ó¶m.aªí)Ô]-Ì—±ÓÖ¥}äY;Ô²)Žg<••Wý§ZFýÒ©]õWø‹pgÈÒ·#†tÊÚÌü»·‰S<*ã°lª/Jó$Ä쪺`ÛX‘Ýólî—«vÅx¶·^_*ÞíVàUð-xü ÞŸ‡qÌ»¤Fœ×·m;RÜΈIÙÑ6äÞëpZ\ZQ…lÇS—2­fîÈx$v ð?§¼–]˜UqÙ׌ÀºZô•RÔèÙÀ,Û÷ÔŽªy–Õíó+›Hý²úøŽ–¾FñS¤dÉXO_–fĤ‰[ê‹Ü§Í&éÇ!õâM^'¹ÒÑŠ)žLÆ&µÁ‘½®hly.âFÚúLeª¡í¥mOnnø›´óÿíuÕó‡ ¯–¾v|4q³Ü$<9öú‰Qa…ÉûÉ,Ì“ÚÖÎMVÐ)¯¤zjpߣÛaí•ÇB}ÿ•ZÏCOÿúáL=E–¥ŠŸxÎÉGó>óÍÇDŠ;9Æ= f€1`æ‘`* fsã «"¶ ^6›Í›7onjjR«ÕÐ ===½½½ƒáÚµkW¯^½ÆCwÞõü»GŽ‘Ž¿û=Šúù»UìÚܨïþ™]n|ö@Ɖæ çNýœ8ðçUÝ~!ŸÏkÖhNä=OQß+Õôñ€;C7µyÁÏåAvï¾p‚,¥È«äçÚa£nÉ–-Xl?W+¨-ÛÈòìrÿ¹§ÁÌ-GÚ5íU¥¥çüY¬ÇÀ{àCð$ø¼ ¾ƒŸÁÛàóðJÀâq¾ý^z)ñ\iú÷ˆŠ^ þè.`ÚZ³´êÄðõf;7Sÿsè=—ÁîšžWÕÞëÝ#°ä[àÀzº–ݤýI•kæ=ZVµÏ»«Àm~ÞörN¼e‹øDs{»¼ (é¹^O[6È;"?ò.qM“.—¤?½E|îÂ…Ú¥µíl"xìç’Úö UbrRŠ›Iä(Ïí^ž‹¼j50jiê?Ü|mëGu?~ýü_¿¬ú¿ÿ¤þû­—c¶_‰ÍÓÿsþµØWº{øÁÝÃ?ÝÃùä7ý-Sÿ3þý˜÷ žôÞï&e}÷õ¦¾×ô?$×âÞ3¼. –~õƒ|fƒ÷¤úß_¿ôÓ=md÷ßÿ§œK÷=û[Šúþ÷s®qó'Å톢‰yz0LÃÀ<0LƒÁl0~uÅváº722òòË/k4hƒ®®.h ½^϶ @†FxÐð¹’=á塇àû9µìÚ÷¤ÜN–õŠÈý–Z=»Ûùú|cÓ3ÖÂÅöBíAâþªÿ"¢rgè¦* Jy"øî{È. ß|õúË%¿'ÖUé}lóYPüŠl’UuáòÈò`Þcuð'x| ?ƒ·a›0†—Ôˆ!}[ØdðµÇÝèO|À:¨y8ì¡*=7^ÿ{ÛAs0ëWlÏå÷ûjƒ4Р†3i<&e¶Ì´¬jŸÔ‚Ûü¼íÇ@OÏå Ǿïöóˆ‚8ú¡cíƒìî±éîCtπϞLâ¯ö\×´W1^ÜmrŽìッ_ž‹¼B306­è?Ô<¸¹¸r]æÅ¿Ùté;Ûº~°ýʃ» ì5þìÑøbú1ñø'›}>¢®˜ägØFÿ»´s?›[5¿Ww$¯ÿß{Í?{ŸHíÿÈì‚Uÿ;ùaŠzýA±9>»€$¾|îÁÜζ~ Ëÿó­~næP Eƒ`&a` ¦‚Á`6¿ºb»ìÑ“™™ÙÖÖ¦Óé®\¹Â^ ‡††`MÓãü ìz˜zxWÓ\ÂHÓzŠz8÷¬{-œ~;d© F—÷ìqïF¾>|vЍ9î»z¸¨i€§w†njrI!5Aw÷ÛE|ÛFfýÃßGøì€m¾Ëã=gÅëÝùýáôeãø2¿÷À‡àI¶û¾ƒŸ_{íµ•€E6â¼¾½ïøew“hŽ‚KrÏêý½i×zKCeëÇHÏÙ·/ï"íÅß@EÄ"ãHœ¯ÏˆÏ3‡Í¼GË*öùÀY¨Ð}oæuˆætÑÃL­~øaŸÁ·ÄÑîCÐHv'éÆ&pÈzîIGÖ6=ããšûÞ( 9³_È>µ©ÝïåçŽ+» êsg”½ãEP¯J”­€òŒ$‡yÊ)ñLï$³–w÷qÉsøê¹ÞÁñÉiòÉgZ»Õ§H2wŠì˱»<Þ)Ù{´µÛ0Ø«|¶žam¼´ŽznÿH¨eØû*ø< þdûàað3x{%⌋lľì|•i2eïà`·òÒ~¯ªÇý½u/4xâ9øøŸKçñœwöŸRwFFzO}@6Ú¯Ò@`€ú%¶‡ãn…ù–Uî󵄩PÜþ3­†ÁÁÞnõÉ;‰/íaÏšwŽvöª%Bò´Ã;§:߯QëöŽxÎ,h”ƒ°¨$>§žË9ÞmèUŸ;uü\¯7Q(©…æêíTž:Ó Nl…#û¾=ôò\Äý­D×àD¥z(¯\½qwÓOòÞcLhZø7( …¢Á0Œ“À00ŒSÁ`0›û‹‰UÛ%m:>þé§ŸþùÏîïïgG"쵑}ʶ ÒG0ÇSñ­s –Ö µá€š]û!œŸžµ½5ž‘Bzii.E%µš˜´:7inQ¬6ùq€³–ìœ[Úká¬çÛÝØ\Ì~ÝÖLnêÜï^»­8—YLïžáÚÆY¶¨Ó½yŤ׸Kblˆ/6…Zæùñ;%ÂÀ:< ~oÃr' XR#Îã[‹A‘î}ª#&Sa°6zçÒà­Ÿ|}üÏ¡³$[ܶRæ8áo ²¦¹€ØWÚm ÝÜ÷ÏéÎÊôxŸg+f>·Ôän`¿&m.ØÆT0·•VCóx.K+$¸ÏS¥g{ŠsºÕpÜ»álª>˜HÅ}hZž‹üžÛ=§¥÷ViÿX\÷Ð.]\ñø¿J¦ž;> ŸTù×/V:_<ýí‹g\iŸÎ}~µYÀ­ï·êHz¹áþû=)¯þWò_ðÌi²ýSH&2,qÌeR¦ûÑs9<$²só‡âH¡•N0€µLÃÀ<0LƒWïs»}}}|ðÁÉ“'¡IØŸ²°?*·Ûí³ábš´ñô`k&o,+cßÝI’7寤§\²49=_nd£°Ô¼Çþžýø< ~Öëõ‹e&¬¬L#Þ`ÎËÉ%5 _ƒNOŽŒ[ê¾ëÛ@¡Ž–Uïóã#×ú¯]ŸæuØÉ…œ 7˜£Ôÿlb]3}#Œ‡¥ß„ š‰ã®îøäüsMq¢‰õÛŸ)s¼PA0½Úõr+£ÁõÊYßϧöËÍ›Ók¹éÎô Ûï™”—OÛ^:íðßË÷ó{ئÂþr@:…BÑ`˜Æ€I`˜F~r~೫“~Ó2¬–9ÈÏ·ÇÆàZ·cÇŽŽŽŽ/¿üòÖ­[ð'~\ {à7¯ÁŸðU£Ñ€‡Ù>EاÀFDŸ¯„‹çd¨ûÌøá™ÎMûk’Š:ÞúÍIçKŸº^9çÀ§Ñ•ÑäÊhŽà§‰ Eƒ`&a` ¦®ö9 rôèÑ]»viµZnÀ«àaðóÊÍ€ˆ>¯‹üzycÖNÃø)•¡ðÄùÌâêß¼’ZíxåÜW›¿}]åzSåÊ<ïz£-r( …¢Á0Œ“À00ŒSý&dX]óí‚ÇáºÝÓÓ#‘Hrsskkk¡ð¼ àIð'x| ?¯Ð<„؈èó°»(p¾]zbº£¼BÕ¿»üÂæµ‚ÛÕ–×Î;2Ûîüéâ·¯«]›>‹ÜŠƒB¡h0ÌcÀ$0 Ì#ÁÔ{`¾ÝÑÑQh€ãÇoß¾}çΕ••ðVݹsÕsQ€ÇÀoà=ð!xüùÉ'Ÿ¬èùˆ>_ ñ¾E äLÝ7v²µo¥fû1å&‰âOG[_?ÝûzÃÄ/Üܤ¾±…BÑ`˜Æ€I`X0Í]]óížG‰:r!¹kïRÃþ)‚ ÑÇJÉî ÍX:99i6›aôäý)÷‡aC¾`ºö'ðà=ð!xr¥_ç…ˆ>}@.ÙEó¼Wøú óÔõ¾K‡Á|NKúÙðéò©T±ö+7%ìéP( €`LˆWµ¯ÆØ.卵쑄,î¨fîk­ÑçawÑBº~ tVÛ iZ?2Õ3d‰ð§¶BÑ`À¼‚»êb»‚ +$R«ŠUÛEAÙ½k±]A0ŠTô]HPvAÙ¬ìâ8A$’ ì"‚DVvq„ IPvA"+»ØáGÁØ.‚ ÆvC‚3!²f [E±Ý•³Aä®°‚²–>3Ø÷9Nÿˆ È*¦ªªª¢¢¢¹¹¹¶¶öÌ™3ðU¡P(•J•J¥Ñhºººz{{ûûûáogg§WÖVoleAU¨-h+ûnæééé‘‘‘¾¾>ƒÁ044d2™¬V+ˆØìì,ü5›Í++»aìc»"²j9{ölOOh.ûbføk±XŒFãØØØÄÄ„ÍfcßÜ Ù7Ïß±]lWAV-MMM½½½v»4÷«¯¾‚¿Ðç‘….ðíÛ·Nç7ß|óõ×_ÃWŒíúã´U*o•U§”I¥2¹Â«´¾He*ƒ ¹å{}P«ÒFÌ“N#g´-{toÔ»n²«Óé@v¡K ";55588822]ÝëׯC'd÷Ûo¿ee7Zc»ƒF!)ÌNˆhí‹ÛÓ®-¤(JCöš­ÎNÍ–Üé:)¤S ɱ%ÑêD ð%69JiW }Š^2Y¶P¦ —MáÍͯ¾ûÀ…‘:Gì"Rœf™Û {—áÞh£±±ñÊ•+ » VW¯^½|ù²V«Õëõ×®]£i”´øÎ;‘Ý»d°kb)–äEË®NâÊì5+K¥R¥î3AK„¶ÐÊ~±© Ñb³^ÌyÂ)Ú©•Kd*zñ™Xá"¨¦ÃdRxsó¯ï¡G©G÷i#¦ ’*ažëå¼Û {—ãÞh£¹¹z»ÓÓÓŸ}öÙáÇwîÜùÖ[o½úê«o¾ùf^^Þ‰'†††Øð®Íf‹ÖØ®ÓᄯW@ÖCvÀN.§AÊ»—A’LÅJlîdJ¤ ›ì²E[)a4~Ñ»[ÐWÚ|ݤ H÷Ù(p+žÜ`/;ovNHwp²vð–ÈÝ—GøÍêK‚™çÑ](p¶áÏÝ»,÷Fao·«« þnÍ.ˆOÞõÿ>VòWÿZýWO×ü ÒŸ>Ÿ÷ìFANNN[[t{£ü¹]N¿Õ#R•*› ÜÔ¦ÍNp÷Žóòž>ò¬Lp¿€érê`G†XÊK¬ÐàX^Ìê-:¡°0;66[çð+:Õ[šPævpª$¯)"¥‘»Ž– Í{"•"¯ÝR÷Ã.$Dr6¤Ù "A‚g«T#hnQ"wOœÉM¢ç±+bå«N&ôX®ålS-ºmÉ«6ðè‚MW˜êÞ 6µPGJ5‹’c“ó”žSØ©ÌKŽV;ø- ’è§ …ÕÕ¢Të‚m#“fû™Šî ‹{£††…BñGañ?>z˜z°Žz²éßýFõŸÿÐñ÷¯w®{[û#AéÓ/ ·mÛvñâÅ€lµÉî¨bŸpŸ2@'ÍyDô²UFÚ ’%Ï…&ÈÁz?s°ÚÍ:æP*µ€Nɨ0œZ­aY=^'Íh·Ò@µÕÌAš¬ñ+šV È&RVc0û•f¯.,¬†d³±Èaú"P“‰'Vè4¤]W˜­f­Ri°²ç—]ÊÔj¢Ti­ÆèÒ+´4xB¡2;ƒäæb¶HŒV+£û±J’¡'·T‘F«ôœø‚j†ÑVeæJTiU"ÙHJ\ÈÕ¯O Zl>Ù´Ó¥!Až«LV%$g+ÌA,áMôñ›ÛŒ„l¥VUHüžg8|‚˜Šî ‹{£Pvó $ßýÙaêÇÕÔúFÐÜ¿yEóÍ]?zOÿ~ÿãý½YöÂï3÷íÛg0¢ù¹Ý@Ù ¾Ù\ ÖÁ‰írûÜ ƒƒ 2Htî´´>h[ˆô…íz†lÁÄÛn·V ½’í¾3§‘Ìè±Ð¡#r¡Æhõë•P™»o¦%7B˜“ç>#77Öìl9È\-äÌí›'79»‘ÜE¹‡äœÀØÆl“­ôX¥…˜ à\}íÚ@ŸÀW›Ë¬ ê"5xâ샓ߒ æùvÇ àd‰Õ=Jõ˜çßeã3Ý÷FµµµÏ¦ý…Š=ó<Öðï6´ý§—?ûÎfݹ×þuïè¯N>_bým‰ù—»¶lÙÒÜÜÍÏí.Fvç®Øö ²«ƒ#:Vb÷Qê€Gd:7Á#R%ÚéÌÓ± O·‡Œæâ…MQÈŒ`cb}îÚ4Ѓr‡vV-Û‘'=•Ù1—³§“Å>ªp ñäæ~¨Ã܈¥˜aµOnîbëå[^]ðõ‰“®ö¸Ú!cûM£À£€¼–1/`·›@qq‡–´ûȪÀ'h¥È³¥@./ "»ä®‡Ý'¶ŽCɦ SbcS åJ©ÐcªOÑVÄ}cÚoˆj7xo(çI ™EÑÉš—ìyf£îq¡@I;øÃœ;Ôp^±žÜØ»áÉsþ•xGÁ"w1º<§ ± ÞB$*sà­v‡Y%ˆ{VÄ3f÷ }/x<–ð›GŠv›äc*“gjÀ¨ˆ‰“’Äø™Šî ‹{£0È@ý¨fKÙÈåԾƩ]笿øÈœvüƦ:וKÔç:4èúPëzá…ÊËËqNï™c·Ùl‘ÆÐÉy “Ü‹å>àgž÷!N»Çl²dw¸o‰¤ÊÞ݃åæñ™}1>óFýœóíIj`­S!ä¿-ÎkÉâÍókÖ ¿\нaqoÊîÏl9>| y z»…õS¿Ù­ù&WåÚ×ë*qíï!½Ý—]œøqÞ¾.NKÍÎËcŸ¤ÌÃï”ìÒÔØm~dýô¡éô“_mjråh\…}®šˆÈî] 28uòÂdÏ“‰Q5¾þAHŽ÷ž›(<;‘S=ùènú™g^©tnmvíÔºö ºvõDsl×&J „’jùÕ™™QQƒ‡‚ +.»LlwwýD^íäc{Fž?2“yæ›?+]ZÛ-Ò­•Ø®CÂL‚^AV<Èðɰ¨ir/y’ar½È´ñ“¯×|û^«kw7ó$ƒ~­ÄvRŽìæAdù²{|xÓćdN†§Dã/1s2ä¶Áý˜v‰û¢9¶Ë]ƒŒÌû!qÿ<<È4ç‚ áݲ‘Í“¢&kÁYë/÷ÿNöù[u®÷;\"½ëè¸ëÀÀxnצ““ûjF‰€ìn• :?%n¶î9gý•xüeÙ-õßh\¯º>1¹>¾í±]cuûrìÛ"!Ù-§%¦ž·5N?whâÕ“Ÿg7¸öh]’«®ã“®’Á¨ŽíÚ˜™˜³«i<‰˜ìn)§žŸ: œú°iú7%“’ϾÛä*ºì*¹æ*ŸvIé(Ží²9S”H¡R*J‘žŽšsApÈî¶ 4÷#¥uOƒõÙC挊Ùm®=—Ixz» 2ÜÙuhS)_DìÄ¢Á¦9G ƒì–TNŠ'w3±Ý?œø|ëY×®×Gý®O&\_Å9AÂ*»[ƒìN‰š¦ ÏYŸþÈœ^vc3ó$ƒ¸ßud4R¡ì"²vdw!óíFÿs»‚ ’Ý<™}Ô¸÷ìÄûuïVMÆÒÉ’é?œþöí&WÞe×ÞW~η‹ FÙý;Ù–CW÷Ö™vT›¶ÊM?Í3&˜Þ(»ýúYןÛ]ù½®÷:0¶‹ FÙýÿÊß–\+ª7ç֘ߩ4ÿt§ñ©¦RAvë\ÛÚ\yÝnÙ­¬¬ÄØ.‚ HXd÷ÄŸD{jÍyÕãÙòñoïOM¼ ½‘YízGI&ÛÝvÁ•žž~æÌŒí®~œƒZ•v0¿p¶™­NtÚ]2Ø—b°ÝjÅGÑï:§OŸþ÷÷É~þÖå‚jÓ{§Çß>9þÏïõ?^4ú\ÉôïOÞ~ó¬ëV×k'¯¿öÚkµµµÑÛeìžæ¼°ÚQÿÛ«ó©A*Krr¶Ü°¼ g÷‘·pw¬´ÝV8-ï. Õ½ê4Ÿ‹–®ZÀL®›Z¨³/ÚK~׺†´› …ïî}Øuûë©ÿe~ïñÕÇ ú~ðNOüûýI¢Ñß±þ¾üÖk•·ŸßÕ˜ÝÜܱ]ƒ\$’« FƒBB~°–,ÕERA$ P¤P"‘ˆ…2Õ2£<{èQêÑ}ÚÖ M9ëWô åÔÊ%A¼qo:Í׃… ¹©N‘JQ Ý"½A< Z’Á6U,i;œñénRSS³ñÕ2êþ3ÿæñÆ¿úMÛzYóa×O¶ë/¸öKÑȉù·%æçÞüP,wvvF}l—ÝM•-´ëä0H“…Õ˲1çOð³Îé°;¼8¾Â°3”‚8ÉŽ øæÆ›èTd“¾–u¾"B”ë ²9'Í!yàW–{Ñi~ët©dŠQr¤I¨Ø€~k@é~Þ`eWÄ“A‹f}¡Êƒ¼²Í(~wººº’#§ïê8õPõ å¿ßØöß_ûì[ºÌé},¿ïÉÝýIïTl}ïƒÚÚÚ«W¯F{lסMæÈî¼ÓœÛµ0Ô+´-_vE~ b— …Ù´Ó¥A‘ *V ­JÒóQ˜Ý $F«UEЉU’f|‰6Uéx1ñH'³+Qhi¼¨b¼Ç_îœÍ ÙJ­ª(Fž™q?h*ÌV³V©407êì´Š”'”j´ƒÙ~Ï;Íj)Œl§Õ¼ôoñ$ÑsµVª´$Á¡MÀ8Ã]4WÉðIyý oŸüîFùÜØø·¿kþñOÿ&ëèîýihh0 “““\Y‹²çv Q¶@ÊÇ*zžvÚ Õju:ƒŠt¦JNßµû’d—9%b±±©Rûœ¬ÈYAב÷» ÐS »g›l%·ŸÎûæÄÎLhéÖG²/ûÕæ2+˜ë éèi‰š@·ìÌÚl9¨'mÔÊ™66þDÒLJóÙÛßgˆ;R.ØœL†ÖV÷`"Õ]fÄ ]?‘·pHyº´÷ªÓ|Ž6£œ9Ð$"æz e ‹¥b µÁ]çç ~O)šõŒlîød.– -Êß]”]Pª‹/vvvvtt´¶¶666BþªÕj½^Ü7nܼyÓf³E{l×®c^, - :)9]b ì]è–Òïå Sú$êàK¬Û$æ¼JÐÚnªð*ˆN Æ)<½wvhÉžÃ2¶ä0 Ü{±{ %À`?H¢Ä›-»Ÿ¬/ׯ^D9X…±jeÉîB„*³c¾»F÷žÓ|Ž¢‚yVæÎd2s׿$y ô<®ó‹íx2HÑîb&;ì­cÄ_v/\¸ Ñh®\¹Òßßo4GFFÆÇÇ-Ëõë×ggg ·nÝñúçv™ˆÛ‚ßÌt£Âd Srϱ ¢ã*H29µ¸7Ò•x®œ®œïdUBr,§ßêÓÏâí·zR5Þ ƒ»{åßÛ V®_½æd—Åj¨Nf^'Äò?#u:ƒ–D³ldÄÊäI1—m¢›!]Çñ¿'ƒpsè`‡B-î¾ìööö‚àZ­VPXÐÙ¯¾úê믿¾sç,°²•±]‡V¡ÐÑV¸¶URr7Â3Pwšsæ$-ÿ–%”¹$xABy Q)ÛSRlv³œÜFaµ€¦dgpOÎÓšm6ZËÜjr»ÝA@Ne!…yz9µZKÛlVƒF©%½NþD[q?*Ën Qê¬f£ªZA;B”Ë#LÁ(“È¡ lf-ÙÑ`{—BÙpSþ^tçê¢"·Ñ„R£ÕîtÐî‡Æ…Š¥ûy#ˆ'ù‹ö—]öU­Þ>5r×e×d2MOOß¼yóöíÛ ¹N§3r²{—‚ vigd–\èÑÎ;͹ÜR“Ø—'»îÛsCCÐñ€“*« És ›àµ]¢2Þ”w˜Uï#sãwo@ÐÝ›»‡Î1FÂùéj2Hõ<´0wëœD*!Êõ©c³½C'˜«¾@I»´j$îç üoþÜ“Nó‰3Èó8Óê§ ’™{g :Dé¾ÞâIþ¢ýä€*PtïÙÖØ®Ón³š«ýÞi8oÀÎi³ÙìÎе#›ø%*„ÞÛß¾;O~‰vÒùT{S˜õ~½RÞrƒ:ìvžIÁvg”8Í5sÈÙ¼8çuÝ‚½¢hæ’™jÀ‡ÇPvqN†%(È’ê½W#—^¾Ó(É“ÛÐi÷:™HA£èbçÛ]’èr…n‰?Ïu˜µr™Â¼æÎ>t‚²‹óí"²&e”ª££ãÊ•+W¯^›šš…ýâ‹/Ø'€/¿ürvvöúõë8ß.‚ HxdW­V÷ôô ŒŽŽZ,›ÍÆ>±Ëj.,ÀWèblA$ ²ÛÒÒ²ÛÝÝÝßß?22ÂνpóæMè𲿕€E«ÕбÝ{§Í¨RÄu1Ó“/}:í…˜‡Sn#kVv›››/^¼xùòe½^o4Ù8yÅn¿ÅÀþ2zÁQÛµª$ÉÉyQðl]KÈרy븨éÉ—uë^ópÊmdmR__ßÔÔÔÖÖÖÙÙyåÊ•èðšL&èÛ²“0€æ^¿~4w||<ªc»ìäÝ¿ö¹ÇewîwYþuœozòðM§½ópÊmdMRWW§P(Z[[;::º»»ûúúiš6›ÍÐçµ2LNNBxhh(Šc»Þ>%k,»á˜æ<̰s^; R>Ù]ÈôäáœN{!æá”ÛÈÚìíž={V©TªTªÏ>û¬§§§¿¿ÿÚµkì„8 ¶ðwxxx€!jc»™UJiP¥ºgd#1Íù¢ jÕÜt“óò<׿éÉW~:í…˜‡Sn#k†††ªª*PÞ––èð^¾|™Š Dº½W¯^…N×ÖÖâ±]'-g¦".—.#»™æ|ѱʜÇNl¤ *vÅÙåNO™é´bN¹¬= Ÿ{âÄ ¹\Ά؉w»ºº@|¡çÛÝÝ­Ñhš››ÛÛÛ£ô¹]öýÙìüO  Úùt4¬Óœ‡1Zê7=¶ÁwzòˆL§½ópÊmdíÑÔÔJuìØ1™LÝÞÆÆFèöBßV¥RÚB/øÌ™3ÕÕÕ&“):çd`望i©ææ-ç™2ŠKX§9£ìν<†÷–ZÀôä+?öBÌÃ)·‘µè,tl¡“ûñÇtèÐéÓ§ÇÆÆ¾þúë蜓Ái32qm@ÃD0cEÕJ£mA¶†cšó0É®ïôØfeÏ-5îôä‘™N{!æá”ÛÈÚº´½½½6› †Ê§N*))Ù¿aa¡X,†þo{{ûììì·ß~ Ù½ëÏí: ¤æí´FdšóEÃo·¥’óTƒRšä‘ Îô䑘NÛ.ÄRì‹Î‚›‡Sn#k¶·kg ¾zõêèèèäääõë׿øâ §Óé•Ý(Ÿ“ÁAlšS«ˆLs¾h‚YE+EžQ¿@./ä}Ž;=y$¦ÓNž{1]ópÊmdÆv¡Ÿ šëp8nß¾mµZF£wf†ˆÊ.þ8x¹0³[;Bi˜ßôä+8öBÌÃ)·‘5+»ÐÃÙýòË/¿úê+ø;==ÍÊ.è,1Èî7ß|µ±Ý5Çjšž§ÜFÖ¬ìêõúÙÙYVvA^oݺ,È€óí"‚,ol×áp°² :[YYÉÊ.H0¤@oVElA$’²ëííöõõ=þøã­­­Ðeƒ ÛE §ìöôôpewÓ¦M »¯¼òÊÔÔdÀØ.‚ HØhnnfŸd`eW¡P$%%ì>ñÄr¹üÖ­[Û]q¬F3‚ k‚¦¦&o„õ¥—^zê©§XÙ}öÙg-Ë;w¢ü¹]‡±Zš*`IMÎfP!œJæ· ¼¿©E$Ze×ÛÛ=vìtu½²»~ýz‘Hý±]vŽa6ƒP(ª6FÎýC*Ee+q¾YYs²Ë}€ìöíÛìs»ì“ ÜÞntÆvÙ›-áñÑ0Lsn'Óf+h<e÷.ÈîÝ 2؃L›‘iÎm¾SÏ ‚²{+úc»ìüX± Â<©–ž»µ‘iβd]œmAPvï†ìÞ­ ƒÓNk4eµ”}ÇT7Oÿ5|Óœ;”"2uo5ο… (»k*¶ËyÓDª,t6|Óœ;522¢ß$† k ™Löé§Ÿ‚X)ŠšššªªªÓ§O=z´¬¬¬¢¢¢¾¾¾½½½»»{!êŸÛe^K“°Ð)tÃ1͹S‹AÁÞîZ‹íÒ£ÙæpØ ò‚ŸdÏ{½"2Í9ó6Ê.‚ ì®¥Ø®Väî›JΓ[½é˜æœy€L¤ÅŸ¨!Êí:6«Xø„ÝáÃJ:Ø©…•APv×Ìs»w;­ÊKŽà«sewíÄvA"/»kzNAËîÂg ÃùvA– η‹ Qõv Œí†»Y«Åߨ!Èš“]|—šËª•§zÞMÈ®Ž˜: RæçÅ…8á.‚¬AÙ]È›ƒ£u¾]FûѨUÊó «#ú ­M‚/5`—AÖno™˜˜˜žž†tH¼sç¬ŽÊØ®C– ¢›·„þf¦9w¹œt5/ÑáÏ%d­ P(zzznÞ¼éíí~ñÅCCC&“ÉjµB:.û0/¨p4Ævºd2éy‘ôó¹k"2Í9›Iþ<AÖgÏžõÊ.(,üµX,F£qll :¼6›íÖ­[!=c»6UE DÌķ̬ 2­»ã‘iÎYÙà[}díP[[ÛÕÕuãÆ P^èÏŽŒŒôõõ o‡qvvþšÍæ(Œí²¯–€þ¦\g¶Ûh™0–¢b!çß4çî(3Éo!>Ѐ k„ªªªŠŠŠææfÐß3gÎÀW…B¡T*U*•F£Eîíííï÷LlA$j¸b»‚ QƪŽí"‚ í"‚ í"‚ í"‚ ÛEÁØ.‚ Ê.vøA0¶‹ ‚±]Ac»‚ ÛEA0¶‹ ‚±]AŒí"‚ ÛEÁØ.‚ ‚±]AŒí"‚ ÛEÁØ.‚ Èâÿ45úþ¾wIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/noforeignkeys.png0000644000076500000240000000632212536324522022321 0ustar philstaff00000000000000‰PNG  IHDRÀΞ†"…°PLTE€€ˆ  ˆ\ˆ`ˆdhh˜l˜l p t¨x¨x°„ÀŒÈ ˆÐ  $ $($((((((˜(,(0$00(00,00000408488888<8@4@@<@@@@@@ @D@H@HHDHHHHHLHPDPPHPPLPPPPPTPXLXXPXXTXXXXX\X`\`````d``d°h`hhdhhhhhh°hlhplppppptpxtxxxxx|xx|À€t€€x€€|€€€€€€À€„€€„Àˆ„ˆˆˆˆˆˆÀˆŒˆŒ”˜Œ˜˜”˜˜˜˜˜œ˜ ˜  œ     ¤ ¨¤¨¨¨¨¨¬¨¨¬Ø°¬°°°°°°Ø°´°¸´¸¸¸¸¸¸Ø¸¼¸¸¼àÀ¼ÀÀÀÀÀÄÀÀÄàÈÈÈÈÌÈÈÌàÈÌèÐÐÐÐÔÐØØØØÜØàààààðàäàèèèèìèèìððððððøðôððôøøøøøüxøüø0¸ø¨ð8PXÈø»Ë^ ÝIDATx^ìÀ Áïn•Í!x¼Ük…=ûmmŠâ8~ˆl¦½­§El)+LšÂ,óf;6ñ‘"è ÐÒwsÑ×ìɽY~Ä“´sŒIèùvÍÞ-O>\’tÜâ¬ßô‹oše€Öã¾Ôëõ\·Ûít’GÒ¡tp»îÐG£Q0@çܾ;Z̸èÇCn[È'ëyʱéŠ[—f_—/3Îû¼à¦|H>PË1¤æO›Îh×@ÝN@^¬Ò)KÓSˆÅ¡‚i ñ*”ÑO’ÄÉ. €2oH¥(Ž ­/_/™¿Ï‘'¤qŒ?U ,ÆQAü8~O2À¿òóÒüM¤yº:{Ëϲ  ¬ä!bÆ |*€ú GHå„`ôӀ狜¥Dˆ6>Qý5P〠+ 0hLý¾úÐ@ì?ÈÇÙÉŽmB°^jôz—Je°bH{(;®/w¢N;ò€2+€´°V€ßÒ‹/Ë ‡(&†ùKG*™ŠJ´jÚz{(QHÂÈû:Àã9óå«÷ω]è¶€^!Ç©€KG,Ҁ𫿠ýyÄÒùrž0ÚÕ:õ€zÑK\ü·»P{$ìÐò@|ÿrõñìM¦Ÿ­»½ •é†Ãa'çsÎ&IÒ H×mÇ÷/O>Í'ü¿3@ÝÀ§§\´Ï^pÛ2À+Œ'¶íÿ÷š´2 €Ø£C#`‚/£Ó=¡i€š#A0óÛÀ‰“‰Èï@ÌCöÔï6Êpر¿Ö´¡8Œã!È® !¸„I/f-Ь…U˜E¡¥³ë.êEËV™cþà‡’ïõÞÀØ^ó@‰Y¡`R7w~„\=<|8œ“¬ñ<¼§¥GgØŒÐfX@ h- ´€ÐJÿ @’5ãüU@¹&§‘+$rÉU N©Ëƒ£-‚ùzìó¬wr4‘Ó™ßõò{YÒ¯þ€@«ž )Á¸â:åÔ œ°wYt¢pâ95³aFCg¬ð$I#¹ð4Ì °~Îr’#×}›€´¬ $й¯½.0ñÌSN¼üé•–uÃÛ;Ó¨ªÓvkÓ*A«<5‡Çføš®—U]À*™õðÒˆf%ŽËÍ{€µé¢‰TŸñ)ŽÎxJÀÄÉæIšƒyšYÞ Bìm˜áˆuÀ¾"¨ë6ËËñG0òS°´Nú¥+F¾agV É«‚þž+¥‘éM‹É~òZ_Œe×Ë•¤~Âu‘zgwö@`ðÒü®Á¬úS€ ÷Àð³Þ|Ô%d¾®V Ù O‚äIO¡ oœ+ ï…ëd\[lWÆ jfÌCçÂ,N¡¸DNÉK²yùâú®ÇûM(µÌô~ÂpØÕ‡ú ,¸ tÖ9 œ°»a¦9òÊ ÁYAºR;à  NÔ…»C×=Jà[$ÿ~SW+À¢ý“AFÁo©Gåjs@ x£Æ–z\„l híÍ·¨ ¿ë€6ÃZÀßìѱ 0Ñ_Z»Qv²v`fÎ"‚`ñßWÜ6ª± ¥?»vÓÒ:…x¤¸v‚ ¥‹J’MB\¸hèª\´Ð ½T ÅEúA"%„ƒ÷7{Hб«ÛIŠä=›Ãéæeò0Ì$ôXÿuœÿw2¾î=;ª* @€ ‘@ !@þ¥j@‘W ÄåÆPíÚKP‘Õ:ÖT‰ªäVWÆÌŽc{¦v]€÷£2gâ70èHkÆãƒyâe<Í“þ–ç©%{‘¦ ;$ mµk\^¤ENÖŽh>f›;$q|¢ÑÍfëÝóÜߤ£ËC3 ÙóÐÚm µktæåZþxÔ$À¼ˆ¬É&Ï[­,—D‰Éó;Q*_xt=(#Ô®0ìQ ØYRwà›kZ»1c0)¸t<ãrá±Qíì†%àÂ¥&rç_v`L\“VUg z›î½6ðv•&îî ;ë,êk¼²µëMó[§Úõ=ÜÜ/°øÈ¥¼rÕsþmËÎsq M‰-Ù]h\tåù ݽ÷ù¤vÍ€WOþ#ð%€ ëX8@ ÷£~ ÷Ö'ûæ÷Ú4Åñ{âµõÙ‡¶$¡nÎÁ Ð>t„V¦îaC]AØPi¥ÊêÔReÖ-ĩþÍRcñ´—„›lz¾}8œ¾~øpo.|_«pp1ÿO; bå?>UŒAub¨Ô@õa€là9È2@6²l È2@Aæ¿l dîšš¼vŸ<²dmÓ-¤!T¸2 Ãá ìO§O!mfOLÚI^K6ž”põáëý;Â&­wÛ±.:@€/{õúÞg€­‘aŒ¶RgövRÛñ¼ÍÃÒÎÀ#!—ÎÀ@+ àÄ®hÖ¢èšâï‚9²ñ<—Ñ%€Ë!Àh`c”:3'&í¤Š‡è­—°+Ì%€ýÛE¼þ>ð;mDÑvÉ‚¸=+,å2ðíNµ¾óà{ :MÙCÚIr°VÀž)ž-7¿*˜dî{Qœ!YõY]"—Æ)â©€˜:3'&í¤–ãyŽVÀGR<^¼…~lޱ(?­Ëy!‰,Éå2p8;‡ $í$÷žlìê¥Ü«/Ë-=}Œ…4{>ú 0²ó‘Ú3výÛeÜ­ÈÎR7¢kž`qkƒhÒš$˶íºvÎ[hõ÷-ôArÛL›ÙCÊ-η ož”Pü ˜üápÐÔš/æÉä¾…®‡áñZò½·i3{bð@—Ö˜_bø-”ò[(Ȳ dÙ@6 d/t;‰»ÜNâübïŽ]›Ã¥8;E$‚Œô êÁJE"N¡è"8 8™*©A‚þÍÒrÂyu3/•óù ·~ ßezóþwÓI&tƒ @€ @€øú^Ú￯~(Rþp X>ï¤|¸¬v@5w&œqÍ€½Wóù¨[ìÏÊrr 8xöy{>-¢¿xvuwRÀ×ÿ ]¤æ+t³ ˜ÊK€ÚpÒ›Nº»<½“zŸv ØÜÑFÀùÓÃàæä(°üñ‚°64ü²9Ù¯V&í°¹±¥…€Y–¿û0Ë‚§“¾¾ìíÝ—Õuÿµ-éò‘v ØÜ™ÔÊø¤Û¸å¤ˆÿP«Ñ 1œT=ÜÀü¦XÀêjé/ýN—³G½:àñêÛzÜ,¦çÛõ¸¨æ‘"›;“Z8édùѬ8í¦ƒè©X ótk´®æ‘‚³‹v&]9Ãl„3 @€°íÓIM'™NZþ©í?•@@€(€Q@(€(€P   lP   @@(€ @@€  P   @@€(€úÉÓ€0ã䯯0@@3ç°°dµÐX„ÍHHJ®=:(A h{kf¤€¹­°Œ…‚@?)t Ä|ßIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/palette.png0000644000076500000240000020146712536324511021102 0ustar philstaff00000000000000‰PNG  IHDRîÊú¿ÅÃþIDATx^ìÀA0°^ýkC$³Þ𳀿< Ÿ;(aäÍþ™5ľƒëÆØg§LRaîÏëJE¤PÉ\4ÕœFÌ•R(€¹ 0†=Ãî®}}¦÷§û:ÙÖ ߇åOç÷îèÌã+¶3z½rû-ôïøÇí>!(ì’I Äðÿon«¸ ¢ˆx*’@SF’Pw@Ób%¨¼öÍz^vÿù¦ìj.ìãì¯ggîp†/Ü~ þ_zW}€`•È^¥Ã0tÅûŸY³‰ÈP¢(ýȃaÛ ‰Á­ –´ˆÏ}äE<ÖÂÚûãlÔ ×ÜËÁYƒçØ¿~? èú{˜pí_Ÿå¾æîãþ‡w².À“o/Fíºd) ¯$|¯ö#ú7Q#ð÷ç"Ø®äbÚ—‹ûßáþIq{¤ÓvÕÛ}œãæŸÇZãÞH… ã’à–Ç]Í;ÅFMÎ{|ü!¼È+ì.Íz2¨Ïù–òÇô“žWI>”¿K?CÂSraä›®RC|Uþ Èë"gôö—1¦yø—±ƒkq¥øðzÄ¥·Ë½pöö™Ãýþ\ü¶él.BCßYèâµ¹èýê}/\%»ø’ Űr ä°Ñº—Öô2?w {Ö,›ZžyürÈ&|¶Ôi7ÿ{£vâÞ~*“‹KwÓfÂ(Ò‰PÈÍŸ&{´¯¯¯o-Ÿ¡³!ÌÖÙh–f-VNH|áÆÖÛÛ›½¾¾ÚËË .Ë}QV¡x~~ö²¬ûþþÎ\løEš ž3Êv¾–ŽšCS.|\2~1qZ v§¥Ù5{Ò‚ÝôÍ`‡n¼úQþ÷H‡gÈÁ lÁ¼á§§'FÙâ}ÍQƒ¯Æì°/¹?çú¾²&̵Ö/cJ÷>†#å¿ê‘‰Yëlœ±¶öÃ^|dEåÈÙ7§ÓhÖ%{hÜññÈǘ ¯)ß„™—2aå#Ï}CëñÆ7š¿æ«µ“a0$&Jl¥WƘ˜5üšðEƵbãR\ùý‚‘ùþçGèJ.ŸÈ¾Öß™‹Ó…\4 ÝTÍÅ’Ê8†ý>Zú¡|î•›ÂÀû¶ÄÆQi×ËÁ^sat=ö`æ}ËÜ2±‰Cž¸ï¥˜ëb²šK5ú—3ÛM¢¨ deýÿ¿¬èžõqz¤¨omÅH–ÁO}„׊øÍLJž&²¹„¶ëºP–¥‰Tr¸«ÕÊ*+N,iŒ¥€‹9XTX­×ÉSÍc2H°2è:—ŽgŒIêc#\D01á ô”}ªg è–{DѳsG.nÆ lRÀ~œG'"fÃwe¸®ŠPÌÆÄ8hoŒµ‹ë<§G6› rK{1¹©ëZ{«³ö¾`ÎÞáËвŸ ‹Ýn‡å‡1¬Ž³‰ ™ w\úʉ†z“éü¬¼ÃèAÅ;çºÛ6 ƒQÇ®»ëèû¿äîi›ãávAXí¢ C²"‘”>jl?0g+Wá>¯ù/“oñ7«o{Zßê\׈u‰dýb¿¿´ßLS¼™‡‡Cìâc¬ÙžÒê’-Ö#ç3ó²d"ŒLÊe'“lÙÌD“¶öÚÇ'ý«9ã™@"“Ed©9Sú•‰"2É2Ÿ¹5–‰¸tfâfœ9Õ¾Y–Â/2‰Æ)û»aLì¦Äp;p+ü†lwÕ2}ñÌ/Æ\&WÎ\ “,5( \Ÿ 72qsö` ¦<ô}Ä™ùèBOá†8ŸwÆÁ4p`OÌkuêúxì_Úrq¤nãQ}|Žïî“9Ø5F3bÙ=¶ûÛp‡ÙëR÷èpØÇýáÈhÜÞLù¬1^Ç/Ä»s/扸yÆîÅûˆüç>Š8yö̧}ÐY¹V¼xü` ~¡/Wæ–®ü¡}¼«ìõÏqî}»?ýíãªpBÔƒ°vžgb}¼‹¹ÿϰŽwZÖjó]ä,޵v÷$wQL83ðÄWâ\ð—µ|†ÏâÞïA<Ä 9΃óÔzÁ˜¾z=›Þ&˜‹­6±Nï$ÒÚtú§NçÓ¾1ö7çé6/^’«\åùÖ¸_¥gŸ÷cÔÑ.§ìõÍ<ŒÃa£ð~°íòe•~+ø š[ÙSY2Æ`ožqÇFGfLŸû¿„cݰgê{-k±Ô9Í·Ó0%«7ñ{]‡Ÿgd…a<¼&[†Z¼Ú¿a k_¥8 «‡.y˜@7ØOõX7ÞÖ½¶vZ}bÞöc 8Ž¿êFÔ­ÈË£ø×Ç™ŸólôRöÛN)Å8ÜÎKâuÆóxmù2¬uÝ}_ü¼– õ÷‘wØQp‚yåöUõâY1NIK ¾ÞMZëœ-ðžcê3âA7þ¢[0¼Œá󹸂¦nôÒÞÝÝiGÙ/SÓ¯8öÌŒíwq­/‹Oó4ÌÓ)±]žâ.¶5úôû8t¼÷1à^¬¹¦ÕKÒÎ~QЋ¸Na>hý¬ÑçÆæÙ}ô_ˆ<–qß^ã~•k©Ìö΄),ˆã4{ë®1Gy$ùþ_H#ñŠADAD§w~³ó§zk8]k+ÑéÊËœïêƒ×¯§»Õñû‚´ðd 6÷§zÈ•ÿœ£ eÁ~Æb> !Îê„rzÎ÷ FCéŒ`yyjfù¿yóFb,ÀÜŸšUFAlkkk,Ô>ðPç~>¾¾oãY»ÊÐ.‹9Ðcib’”9pÎEV§L† øg*ޤ€_^^¢È±xåjµš tô௽rQä¨E…k)R¦¤ÌyEÁ§D”ë€ò©Š»÷¯G™ãZB”CŠÀõíùì?ÿ‘§8‹Q!‹“…D^¡Î!o%H„¼9¹FùB™TZ¿™¬G®-àU s•b.ŸcäŠ{9y”b’+?qè]æÁJ´\`è_>ðƒÆçéèyLs;==å¨÷xF»)]/..Òñ®¯¯S,_mnnRO¿Ar‹anl.¼r+~£áŒk6çsÉ"›hèU^Jdl)ÆŽœh«˜r¹—'Éâ´ LrõñŸ>ö€g~¢»—Ì‘ßfðB›>¸Õ'0Èõ hÓ£ÏÓâäpÖ7žÅ:V@œZ§ÊÇÝ*>’?—µ¿[÷=`OJ¶/Ð&*øåö®;½E¬êW>•XƸž©¸³X·Z-‘¥ ÈÕÕG½›Ûˆ¨Ÿ—ä‹6”wO» Üû)fƒ›RèÞÞ‡Þ]ÞE@ø”"=„ÿIŠ»to™çM¾í¹ôo܃¶ò™n6›#g€£ dƒ‡dõõŠ}ާh>RÛÎe-°&ËŠÌ}ÆHûô7†ÏmuW[Ð Y ¤ðÉ›‰^Y¥@—w÷ÃÐîö4¯yÚ‡FR˜9çȦÅãFsŸ^µYã¾ÞS¿SqÅ=`Lf'ÚB™VP+øg<¹¬0¢!c–¯4@]ÍÃe@™ÉW´ßPW›”EmR¤œÂÌG}h#cf ËbŒ,ÿ-‹¢­AÛÇÉ¢ÆÎÁ§§­ŸeÜ„[µ%™¢€?}™ïà›z¢·‚˜s}BCÑKGÅGŒÛ@ëH=úPlçÌi é -üÈP@‘² 4`OØ&–s¬BF«ÒØsþq‹ÿ^…vwW×颼±±•ff /,p,‡‡‡Z47VÑöŸËÜØh4xŸzX 9NŒÚ×õR 6håâ =ë R^½{ ­›n¸étÃúë5¼; 3lX8kµÖ9êyEÖãšI‰HúÝÝÝ”OÞ½{7R’ŽŽŽ¨›¾óþýûœ‹ÇÉÉ çð V_Ŧt¯×ëÔW€¬|ªOÉñõi‡ºÇÇÇ €õ ×Ôaž(¼ãÝCÆmLþ½L²F˜Ñp¦è¡Î/‡Öu/\^·ÃïÂÕlÛ 2ƒ2 ÍÀ?øöòž™—‚¹ç•]肦ú²ŽOÄEà79œë¸¿¿/üC?îçxŒkèåÛ‘ÂÊ;fF]Yü±Oâ+Ú—r‰5]Ê/×Ì‘º ’” ŸÀã<£ÞâYDâL3zæeq) åÐlµC»s^Ï–E¨òt…v ¶4pȸ5‡œ|ø6Áï1o¾¢Qzó%ÃAÀ Ï…{É9÷ ËÙÙ8æ9uÔG®OÑ[ò(Yöô.@Žî~t( PÜ P:G“¯ùÂ>î”Ü=,¶(îL³Qö˜ri9Ä¥¥Ð»ÃUjiý'ƒËÊê* ºö‰Ÿíµ°¾}û–ÅXÊ ÷ƒfÁgQYÀ>}úÄÑ+ŽRÔžžã~“S¦¸‡’÷2@9Æ3§aží¶È©¼úqÑU'µî•¼½Np³²²:÷ß@±ûðáƒ\”RÜ{šmooË*.à ; ”žQºhQW¶Ow®¡·îózÓô•UWÏDwx,ÇSj å…P?Þ€q)+ · µýt1 È[ z¹Ì16¢×ÐÈä1 Që&ݤ¯®¬ (i¬ÀTyÛÚÚ’|Qrxœ <÷¸oº§Ó<¸<€µééí@nL¹>¹æ>¿þ÷ÁÉ¢}ÁyÔB®[Ï-í±>îÔ…Ÿf›è ( ‹„Ž­€ï2:½ÝéÚþqÕîîû6è÷­Ÿ2*L*þf³içççDõ› ž\תGÖ¾<¶F­bƒî¹ÅÝoß]X§un_lïó®PŸ, D»3&ñIç:»ý‚ƒ¡%VÌ„N5kÖö¬wS·h׫Ùð¶igßìKeϾ|©X½^·N§Cv‰ï·׸ó§â£úyú9%VF‹U‹ê‹.ŽlØ­[|[µ‡^âfÍ÷+‰¼}æ=kµZÈ-u¥Ù´¹þ/4ѳ(ŠlggG÷&Íå‡ç3Éb·ufêŽu¢ÓDk9Y¬ìíYµZ&‹”yøø±sðu=÷Çyåê¥ü®ûy±N²Ö’¡:k ž¹VëØ¸Œ¬rø•ºSñT@áoö®u'y V5âíûÞÿ™ˆ·"E±T®ÛJѶÐ2:9Íš€Q¢а“l¶²I™Îž&391#°R0 % ?…cØN ñdŠ,K‘¦ù ¸¿úYƒ–&h¥‚› YÓãgÏmªÛD–øˆGm¸-WW—`17 þæEÖÐ(î61Ð<°À¶m¼†Cø½&&‘Buà÷Q¯ß€Lp]aʽPw†/­á†ãÀv1<`¤Ú˜% cßEÓ©‹ÞùóýH’ø/ó¥¯W®¥V«É±þÖW‹·ˆÆ ªÓ@ö‘ŽOZ _ÎÞÖT‹FçøàƇ¤Öò;]§—Öj=÷>nîî1屩·ßÁ`õ£2&)cÍ9~•á<7>,âjUr‘¥äE!}?Êíâò.íË3±Iu7ŽÅ–xz.´¥Åâv<±æK*"'ØE¥rH{¼*ÖùbÔ0ÜdŸ_œŸSož¼Q³\*“ƒÀ‚tF©0Nòß:ÎchëÀ—Îë˜ÅhñÔjÜ·%²V ’\‹µx0§E½wn†Mûæ_¶ƒ„t[ƒwöÎ¥aÂ5Á>À«Pÿÿ/k zð¢à3ƒXÈÁ)¸…²í%„ ]È|Sq&¸Ýé ~xdt…_¸£¼#„Cä³ûDô˜!@ !@ùO×=í„Wò¯›°¥ߦMׯh|Lýfê@®èmµ”‹e†MB˜’ý2l˜ùúm¹©2Ž*3J ½²‡œóœò™sëõ#×{¤ýmdŠ¢ˆ ø!ñj>Öç V>–P0 V«Eƒh@£Ñí¿sêtÚ„Áe[ù«¤Þ¬=­G±SÜàŒ±¶âåi`Õ¡~Rß~aØ'ü_ß }ÊüŒk…g1ßÔÒtÂít¹–eð )äê©`E¡Y¤ij¡›XæÈåÔÊqUSœŒ#ó¿r±Ûë‚zxÉØ–.©Žêzn¹wþ>G•J“¬Æ^{u¶®Õ:ž]\ÓAûPΧßwn9ªŒ3£©Vt`ŸÞ€IýÝ](UcÙó<Ñ$&‰\÷ýÔH¸Â¾QÉîR&:Û¨* ã+w­@I¬f³É¿ežåc¯UUGG,RY »éL;{<«µj¥ñ›éN°Ë$@ 1¢ô+mÅŠŒ(*™Üá‘cß÷¹ú¬•ßo‰™Êhâýd—<Ê€U26oŠPFªïpL6Öz†æû0ŽUÒ±ˆÙü|­`Žï*¬ÅÍ…T§¼¾KÈÅx–‹Õ_P ÚÞµ墯üŸÏaS0²Ð}œ(©E_ƒ¢L³Íœ9{eïÚZ›‡a¨¶f[º¶iœm°§¾·üÿ?“§Á.¤[lÙýú) FظÛ^ ¡´ 7¢–zLN¤Í—Ê ÃÒÌ1¸&•ñu²açJ¨œeðQ/—4P–¦Lä÷é¡ëH7wü9¦ÓcEgç•$®„/ýËäßüÐȵ™/æâݲÉÖó’Ⱥ®-e!¡Dë;ì»±ù¾»¦„èï‡Ī® ©eüh¥5Á¨ùŒæÉ”øî ]WÇž5Ö*娾1aì@pì\d%´>¶,+O_tÄ/Žcw¾ûƒßǤqƒ»+†É/“:tE#R©ê1’—Ì{ÂŽ9m£é¾{B9Èh—hÕ¶”/¾}%×ËkøsìgWLBvy}9Ù:'±È2àq2@Ó®uÃ’‡ƒEäß¶sÆ¢’X”X”±Y;7J,ÚÝ©m¦yZY–TdNŒ›½ Lö#ÏóÞ·Edç¿_kÜ¿ð_ Ù*^;žuÆ0¢ÿìYoÛF…­”,YŽ-× Z¸’òÿßÙ›6Mƒ6]â¤ÛX–ÉZ,Q,?¤0¤ØHWºAгp4wÎÜ3ƒK^}þ²|9•À1Ø:×Ë©fÞ>ÙU¥RVscM«õ*DOQÁS9*ê¸ÓÑîn‡`*ÕË#…¹h„ÔŸw×?k ²Æ#K³íÏ¦Ï ü”­›óÇ´/›–íÓe?­Ø³ éWeø áÓ¥µšßS>ˆU(äÈ™úJ¿V¯7T©ªZ’jå±Z~L—tÌcˆ¦‘x§üÔûÓôeõN­ßˆ§{}ÑÄÅ‚NU­Dª×+鹬“®'¥ |!§öA Â.ßóT)úªG#%“‘¢©8ã@ì›Úsch6­þiúXHÒîbQz‹ÅÆê T!˜¸XT¿?T.T+ûçÁ¢•™W¯Ó>.½¶X øës=kdq2³ (®­=ûË©“Ù‘S—²_Ÿ½,™{ cO< »¼;>€©}p MFúæë¦Ö׊ ÕW)G ¦^î쨵×V>Öª¾š+•ƒMÆ'*ȼkÀ¦5Üo?~¬{÷îéÁƒì6NtJÈìÔTwîÜ¡ ;Én:eõðáCê"º§s!!šàýû÷y6;†îŽuã^ GQ§ž>}JÄI«“ÿITAÊëîÝ»J}R-ä¿íNAÆHWú.yéãÿd÷‘¶µööôE³¡Ë[5‘r‹®D‡í=íì¼b¦FÅW³–¨QÊŸtO5IæÓÏà?ÓèkWôÅóçÏI#éô¹ú"õÙ¦é;ú˜ÈYÃNEÓiÚæ·=â>s}q……òJTÔö×ëªWC…I_Qq¢aÿX/^ì°ûªrÞӯЧõÊHyuú|M*«Ÿ©c‚}H$zòä té⌡/¤»Dg†±¬‹:·tô—!(‹'†ÅÍU}u¹¡¨˜(§A‹ª–|5ëÒjið‹£÷°È1Õ%Ž¥àÝ1—ñ\ˇÞÓOo‚#ÎèÉÈ:s c³Íe`Í­lWÊ1¸ïbœ26^ ãœÝ¨»ÌÌ¡´!;¶ñ‹2¶yt[æ/°,eIÜ—Ù:O4µÖÀEù^Oã‡û¸$è×{,´Q Ô¬OT+ö¥¸#%cÞ8žégÏ=Œ d¿y\˜Ä0 ,qçœkÁGÔ"'BŠñ×BÄ__ ñMÝ„Cw‰¶kÌðÅxàGL³ ¡$/ÏÃÀalp/ uQ'Ϥʒ’J—¼JÉòª”<%ý}õŽöùÔ ~{ñJǾjQ¨Íº§Ftª0é(‰û ßIÚ7Swè#}Q’¾`g>À ÀúG†ßzÒ9èȹ‘TúâhÑ {OÿQ?úC7ÜC×è•ñÂaíC—”s®/4Ü*QNjÔm©½ÿF¿§„ýMëH¥|ê‹r¬(w¢$>!ò亸if„MðÅØ$% ÒÅÙÅ#»ª`‚³á‘tƒ±•ù€ç»õ£;ꇴQº¦üâŠaÑWÒoé´ÛÖ›¿wS,¾t±¨õêH¯û‹É{Xœê¶éf~+èœA”W,ÖÐ óøWp‹à½A&™»Èov¼¦ëgÏž1†\Œ3^ˆ† fm4¼Ú5Ï ½´/;¶Ô­õ̶úñ9È¥,]e–Â*>v}ÜÏÿ9È‚9ê´{¬ýý ã¼Æ±§Kõ®Êù}%ñèßì’ï%ò$^šÓ<»r劅·6rËAxv×ïž3B7oÞÔöö¶ „…¯Çà@©Óêb§CÂ}s°ÿh>¾ø_.ŸßölBò“—ÐÛ[[[Bc¥Û·oCà!ªDÈ ~ò<*´÷Æ„‡ôÐ^ ¨677-Ü÷'žŸöÔé¨wê©?Ä¥)§•(T9?–7*'òv}É›ÿÅ'tE¿Y_Ù¾uëáÓÑ»­\ëêÕ«„B§\×È<}‡Ñ‡ B !zôy!º~ý:aÓу<ôŸ}ŠÔê³ë ¿3;Ô=é¸;Ð`*ðC5Vsì¼+Ð@ xo>ú¿¸×Âø èƒñƒLAú¸Ç˜žŠGpÅ yXŒ¡Óe¯]»†¾Ñ);«”c ÀÅb[ƒ‘§ÞÐS©W­ò‹'ò|/=æÇ¢Õ nÐúCÌQ67’ÆÐ ÄžqÀ¢’ ‰FØœ`.DŒ °Ç¦ø¤~ƸdŒ€=“,Æ™9#äsæzê·y=;¶Õ]æì>îÿV~)Kù‡½3ïM¢øØÆÐ½/!õŸªj$$¾ÿ·¨Úªê¥Þ÷’`¼® OÚ&m@‰"Å+YÃìš};ofg7rQ¬.ÿcåÌAÜ sÜu.|R:¡ù5ÞµN¯mYaÝsQ¡9éÃÐxÒÍIDuAøÝ’è'DYF‚èÑ ä–öô.åQbü‰ !ƒÁé÷û"ã-¢LDv04ˆž—¡ð…v‘á;"íªbˆ<Ž:iˆ$ÆŽ¶ *9 2r>%FLKÈ1äy(‰‘üiÀ)ŒÂ± Õ³JwÛÖh]°nÛ¬›™5£‰³ÜPýGÈ¡¿˜eX”óÏU˜Ð顸=èCNïÕ?8>üÍ2<ýÃßô™H$Ñ?r >ñQÿÉãbƒ&Eg˜w½×X Ÿ{írÜéú~\·IiYû¼mTXËÒ)„Lƒ·êòxé¬ºŽª\€°A[ú‡N8IÂï!SôuˆÇ£0HÝ"l¤„¸¡_t ŽÐå:èåt±ÈŠPuýÜ[œv­“¥ÖË K£‰9ÅpC¨-Å¢îI¯8Í£ÑHaÁ–¾®ˆ¾CàÑ;:‡ˆ£Ka‘{š!çDÏÁšˆ;:gC*õ‡N2uÐ6GŽñà_…IêÓZ% ÆÖH— ±yrâ^:q_÷ƺÔ÷ºhù¬<þq‡–ï\é`G–O÷l–ç>¿¶Uþ0—CÔ12ÉœD %fIÓ"K©ƒ§XzÒÆ€¥zH2|ŒŒ"5aÄÏ0L|8dÃBD#Å}"H!ä0D¢D $õ‘Çè)B„¼r:ÉÇ„8* ‰W )Œ$ç!ªE„XGhò¬aÞ7†ßrꆪ\8^n6o(îÄ–%[Írs‘Yâu·XzïpÅ&ì ­´á'GÇLrOy¬ê×ÍÍM–Ã! èŒWõd‘Kô'£Q§~OõŸÆG8^¥£õ-r>rÛß›˜•Më´fÖ(*¼yL³10jž°;ï-7Í’¥¬Ñûü Ãž w8˜Ü÷Å øe܇Cð,H—j³ž›éGšÞÔö'»•3Ö³v:±(ß±2ŽþÄ"ºµx,†E…£á^奃;meµL8’ž4Ï1?2_2o"Ë­ Dˆ]æ_a\cŒBàÕ–Æ©6̉´uplÉwÊqŽƒt GpåR—ú8ÈßìëSWÆ{vvA‰¹ß/¯! æbB ÞŠo~£ü3ó)4q11”Š€¢UˆD“Œ’Èíå¦"ìN§ÅöÖT-+º),·˜®šÚÝÙÙ3³§Ï3ýÌÓ=güõ©´äÉ©… þx.ŠßœZz13Ò¡ZÖÐÓ%  µÖ…@HJ‚°V‚š=²´“%SxùHMÙ)1ê( G…h³žÚ8Á‹[\Q%ýKéÁ‚ÑÙÙIúâ‰$ +ÍÍÍEU¨»»›ß _CCƒ«Å(óìŘÆzöKJ·¨Òæ¡C‡ š‚ÁÉÛ,¦£>L0b´Ëö´Â,¨Mñÿ@€Ýö'Þ²A®s¶à»<%MÁºõMdþÛ €AÅw©Œ„éZ‘ˆ‹ûR[—¬Ü1ºÊÇ…M[[>Œ¾Ä§nnú–¾‡ öõõá[ú‡6ð!}Šêîjº§îéoRó¤à½T&Þ%Š^™Zàª2'Pëkë’“€24ÃXÞ–tQ‘Å_±ËÔ‰¤wù™52´,Ø#L»Èø$SÞÀ Säx„XáSˆã·)ñwOOïñßlj{Ù©ÿvš…r&| ‰&Û%QNÂ02߆’ŠaQ$”pW]9,n†Gð€BF8à³? ÙïÏaÁO^Æ‚ß7Å·Íö"”RáC3üwìÇ1ŽªŸÍf9'BÜãâ¸'“#ÇŽã%c+6FvÔ“S+°‚âŽ8Vý¸J,QÜÅ]󢕗ʔ*î‘’Þ•|ðI2锄‘Tö”h*mï3¢™ÝF¼ ðVª2uW^5ºմ_^jBºr@@!°qr÷í!Ï ,¨ó¨ÛÔX #EQdV'–2Ò»qõ>>¯2ÛSša_rH‰+ânÈ ÇÈo8È&íxÐ" àXç5¾êÁŽY  ~L쇋Ú{5ÓÌMÉL&äÑù¨{…t<û7ßæ»\>#‹ó«ò×Ĩ,?ÈÉÛ{_Þ2ˆBø_ø‹~ózgWÚÊøRAÀ÷þñ¶ñ3”µðt~SS“`ô)Š=eH¨yÚ¥ƒ²Úv…¾ø¾š3.xñYf6ð¦ø«PÞÂQûR^nŽËôì}p€¯ËŽ)Ç!˜AA3`ȯÉò1˘¦ìòåxt‹a@þ¸8Åî÷½c¥6!1,¢¼‡)øÕÞƒÅPßf¬Ï¥Öp±öXX„ŒsËüêàßñŠh€!óø”ûsÀ"ø'‰ß!ÑøßÅÇ ë\˜!f´··ûyÓÕ{Ç8Ÿã~ÎëEßcŽg¶ï“­ø&Ê*¯q<ÖW£%–÷Ä\_WuŽò›SKŸœº¡H:ˆ$ò«üÀ‚Ì.Ñt©@&'–åæí™]¸'oXÍãâç(;Ÿ37¸±_ŸæòbNPqò¶oß¾xp‚hCùNŽ9RTh¹aŽÀ!ÀPÆÒÚÚJ°ØTÑa=iˆåü†»8¦xYmBføžca½ÏOŒÂ’ŒŠI»(úüÞKuü†-Ÿ …cõ÷¶ß’ JZ:Èã;H»`’ %¨Ý#‘ÖÈÿçVe|rNfæîÚö*_45ËÿöîÝò(ø£¥¥…¬Ê9}£ŸŠýC0ëßÓôo}}}1}ÒKJž9Ø¿?ëØ7äƒm!…(ÁîóxÿáÖ•¼wW«âž²Z‘À‡í-j¬5u¢©]FæÔÆÓ¹51/÷î¯È‡†ÆÆÏÝ_ê(x€ÔùMÛ¨ç^Í÷¼2^ÁõËŽÇÍ0öÀX/ñxqŒ$¦øU¢"#ƒ éJÇâ3¢j û’‰ †Å¿mÉG²ùìBXñs)YÎàÐE H<ç9! íî.žKÚÄÿàÍgÍrÜ»¸iÇ8˜å›ýadÊ0?×3öØ–ã‹­ 0›ÌãÎXÚ2Ê'–˜šEfúTYbù‚Kþ™˜ÖlWŸ.Þ[Ö++ºRXLõ(»ø6F¢ÔÊÔfaQSOÕíÊа\ìÒÛ×»ôÚ¥¯uyêŠæ¦Ï«.þ¤+3ÃúçH¿ö÷žÑãÇ;´««KoŒÑ®ZbQ.Où°‰§/þù¿¶ÿDÿ ~8u*«Óc—täòWº0>¨ëSç5ší×üâ°ÎÜüQ‡zôä·ßèÉlVt~nNM1ÝVßÑ6feE,¾Î÷U/ªÛâÿñìÙs:6Ò§ vèØÕtuz@ó3=-^Õ;CúËÐí>sZ;::´¯·W-¡–epÅ}Vñ8Ml±xã²_øR'Gûu}ºß°x±ˆÅ«½zúûN=~â„–Å"Ë£œ·X*ñ1ßW«ç–õR{®‡šÈDìõ8½e¬ö×k×GõÄwçôÁêêCý‘Xbió/{WÓÒ@ DŸíf6¢ TÔ›= êÿÿ!Š„âÇâg ›ìÆÎÖuËØP(XÙ0¹äæeæ07èìï©R4:å®Â†æÀdÍRê‘juˆ¤5ölŽyÞÃtöÉí ¶¬0žc4ºÄ`p,»~!míà¤ÔÆ„Ï~{*C•ƒ5*Õ E5wI¿@Q^^-®oð”qçë”Õ"ê.™ÖšïËuñYÜ«ì2~’ùk"q%×;§*Sƒ^r€~š.ç“» Óûg)îlóâŽj×ē>üæÛ˜‡Þ«/æ1|ì/[ÍEc,(݇RT×Ó„ ã~rñ1[þ(]Çu·œˆ|¹èÛó’¹S‹|¼I¼ö-†¯Æ¯Åe‹®õÿ_U†¹Ø(Ü7VYE¨ÊtÖÙ;gÿÒ,Åñ‚þÿ¿bа–L[Qárc“ešö¦ƒ±Zl?DVÏ3?u¸”1ú)å¾p¯‚ßs¸ð½r¥¢d>Ï‘Âe4žPÛj2»à1ËÈÞBõEQŒ‘ÆA¤ ß÷@=O‚(ŽÙwvI"—°c3Æô£=ìú:šV¡Ýn![îj¾Œç#?“*%y®òAékÛÉÉhg1º íMMÍàÀ‚£ Ž>øÊà¬b–8ŸœÍ’J"c(Ò¶yœ¡–Ù@m]|΂SÁrjÁù…òÎb±´DSÓ)*㾩¯o`Žp#ÕÔø‰M’‘䇾“djíüMý%ÇX[§X þÅX*æ$Œo®¨¤@K+¸àR©VªãžŠÏø.âQr†J^ê׬ø¿¶äT‘‚üË ÏúâTk²f9îÖ0©›™«‹W®«ÔBZ-¦Ó*iü†žµÉ1àÎsǪŠ“Œ4Þœ¬ƒs Žð’9ÉM±Â„â™Bæp^UOžÀÂxÀ¬ÌyÆO ßS¬€£8-ÿØåë¼û%¡ÁÀeç$iÅÉÒª¿¿Ÿùð7œ˜å ˜â{bfùθŸ"&c~‰vpíëësb’ÿË¢Xu«„0¶˜ã¹‡‘£‚ø–ç´±É1ßyùèÙ„ºpéšú±dæ¸[³VFjÖTæg†ãžÑ{öÔtmY“)9¨@µë±XœFFFhtt”öÔÕRçñÌrq–7Ð÷–BF^9xš”$×±ê¢ø,U ÝŸÝjRÔ ùåš%>¥¨”B ­ˆÙuøÍE õæhHŸ:ÙIûöR2™€l/“v9òÏKßißõkĵ®õà¤]Gf¬×[aB[‡ÚÆää´í3±¥ÁÁAÆ0B-Ãt$ØBß¾.SÄ¥Æ6ô—åÅæ'5¬gPèj$ßF£400@?ÌÓ±ŽvŽÉJÌ%(‹tb‰[é_³ºn¾çæÈA:ß7÷‡5k…=p·&eµ±BÊsÓín-u Ö¥X´¶±>>>Fµ;«éü¹ÓT·»š’s³´¼”¦†ú: &p³õ,C)ŸÑ`ôööj•5Ÿõߥï×—ÆmH˜„´$–îíÐ,GÀXMü2ù†–—Rë^Ëô·%d‡†îòà A¡v 4ï§…ÏóÍRÝ.?ýZv^ÐÄov«és /àuUxº}Àµó‚uwwk~ËñxAéêê’mšŸÀXôù5,³à™«Aâ ’y(|“J}~xAæm 4 ³gNÐÖÊ›¦-åäÛQ|MõÜý…ª§ÙúË^ÃÖ¤cà&Eà8_ˆ¦^Np<¤PÇQúý3Mñ÷3|õ‘ßÁ8â! ¸š÷kMÛç%îuŸ ÷eýXOOâ:[\|(ÌëWÇcíÏkRd4kÖþ±wm/m5A|Œö4±Áj47#iD[-‚U¤i¡Ð ”ZÚgŸý£}_ûX­omi­IZQ©ÐÆHKcâ…jo9šü¾Íò ,ˉb‹…óƒa7»{fçììl`vö¬ç6ˆÅ"p\¨j+IòcOJ}B_oâR 66ŒhÄß²X}ŸÄúÚ:ôF0ÍŸ•ŒãLç° ÝV$™¦)u¼¸øMnz"]Èf3|¸ucA¯ [© $–ãØÝÉ¢»£A¯ •`]hü«Yu[ä:+^ª-UÊSÎë²¶ž”³_Ο¶~œÇù[uxKAþ×Ëçÿe›´a‡ÊØJT¬Ö¤”ž>ñ庥‡÷ctÉuL=!7]è ã_9á|Gñ䊼¢ýZÔKaÏÕ˜Û„b¨¦2¯p "Æ“‰ËÕ itO…lÇÞ=D@奖3¬>u¦–q‚‡Ìs_Œ‰‰ y±ƒë˜7?§Ëý—Àá€-¯‹ÿ"vµߣØh?yœyŒ¶Ó•H íæÒ´œˆÓêÚ¹ ºì!¯3KÈ¾Ê—n#ºÝñ¶Á‡Ngffh;“¡ñwèjÔGÍGÒ&;¼õ´¿³EoãqJm~¦`»‡»ë©É‘!˜{„ m‘õ¦¯\ÇÄåº-²­PçÕÁØJù±wYïƒå*ûúºÁel—–ŸWÔù©ýœT†ˆÿß—N† ŽÿØ;×—¨º(ŒŸß8‘Si¢d””B~¨ÿO¿z¿‹×H" ƒ(yQ´^*¨>DC*aW*‚Š5lÔqš™ÓÃ"Ì€Bá‡Ù°™Ãpf]ö³ÖÚgÎétDG`bb"Ï>ÑB¼JÆÇÇUÆä477#ºÉÐÃoГ<Ý6m v,®;³³³æƒìC4¢q˜m®ãŸ ÷U¶e¸xþ4‡S”dWÉm¯°¾ú™Å¥%^¾zOåÑ2.Ô—r*¶Æ‘H‚ LfÓˆ?é킽j}l=:;;Íg}Q@|]´©Ø9j¾BcH{{;ÝÝÝLMM!Î6€a¥õGMxŽ—ðÌÓ§8@ÏôööÒÑÑšhF;ú}í 5ób@”Ó)9#Òå± Z¢ÚX<ê⊞žDO±÷dƒƒƒˆûï~ý ,-ß¶R4ÔÕPSE—qéU¶Ö¿)î—y¾°L”€Æº N¤)&8¬ä¶É¸ïžo»ÕóC´!ókll 5»æ}FTÃQ˜2::Šho{Œáâ(Ä$“ùÉÆÆ¦a|²º„hv…0å9É¢0ådŒ³•IbÊÉH$ƹl®×Â\±Ú©Ø¶W³tmvŠ[‹çËSÕ6TK]žè~^{[ZZ˜œœ4ܧ§§M–âßê¥òÅu©ßÂâGqdñ$ºËÓ/´Vÿfffhjj"[¾I¢­™ѶvòÔóP_^]§nY=ÑM$_KÉòýBµÑL†lEÿÈ`µ<–÷]ìÊÃdO#àwmÏýѯâ(Ž_ì]ÛOMݲ[@­1úÐDb,iDSxÂ;$…’>®yiú‡ù¤‰}òþEQı¼Ç"*ºTD­¶Ç““Ì& !<4Fú0餓ٙýÝæ7»gÏìy¨Lõ•lI§¨Z•3”½Ú¬¯c½àb3¿Œ×„ÍÌÎ=DnÅű¦ÎD„ä±ß·«¸.°ÙGP ;Ae TB_Ö3¸¢¯¯|â‰ÞÞ^&Ç€m (*ºÂ >íÆøø8º»»Á.Á„]í\¨ô›L&133ƒŽŽ' ÉoàºÖ½ë¯¾ .ä¸D"‘@ Ÿ°#N#«±Ð‚T˜ù1y/»—þþ~LOOƒGÁƒÉ¾Úþ=Xð;êìï(¬¯€xYÌÍ/âÁÂSضgOFsh û|¥uXø Ëö »À.$?1_D"ŒIN¤'D&“‘ÙOuÊCCCF01öjcRl6«ÿ&''ÑÙÙ)†nä¤#.Øb+¢ eƒƒƒ“I†àFþfŽÔƒ©Û-ƒ¸® nò4×®®.Åé«yñzÆÄäF155%]r\ð#—¿¢3›úª÷Óž¾}Àº»Œ'KÏ0{›D‡Ðrä7÷¹¨³ò°J´ÁÞ[ó)îÚö7“hmm•¿Qw E¡ _”—`qL~$‡‘‘²Sö^¹ W¡2Æ'ÇúZêxkk«o±ðè1æ–(ÿZœjnDKS‡j]8¥ÏðÉ'eÇ(–ëØ+lÄŠ‰´|¥§§£££`²+öö9Ãe²gRÁ‚ ´âÛ=v0¾q’;Žn²AŠJÙû\’ »lƒI¸à>±XLvÔÐÐ~Tkâ©b2ã®þO¥Rhoo—ÿѾÄ`611x<îù)‹îsRìP;7 à†Ûóiú¤âC[[›Æ%}*HŽ ße¬F.—É 4^Oòàx{Í~+fíb7–*T¦Zv/ûö®-6ª*Š®¹3}b j#P­"1*,¯(1RH|E¢FÄò ¯o>~ù¡Ÿ&>Bü“¨?ú¡øˆhŒ¯ø >¨-T°´éŒk­d'77mŠÒ˜Ùɤ·gîÜ{îYçì½Î¾ûìk‚©õÚ pnWTÿÕ5Æ]<(”/bÙF¾øêägq‡ÍV\>#‡¦üqª§¥6œk:Ÿä‘Ë'’ôk¼q3uDf*~D X,úû™3g:ë •3V¯^]±Ðp¨LùâC¾­­Í¹¬%$ò Âöw_‹†É ›HÀÒa/ú͸¹o£ŒF4: xGQ°¨G:ûHº½|m ×F‹-RY¶ þË~á:—NŸÄQ..ª\„BÃt,èâ³5¢>÷hò‘ää ypÞ'`À?~²z» 7lØ ð’ÈÛïœþôVƒ†œè/§\ÔnÇeË–E›®®.,]ºT¿3ž$ÖÆ~ñâÅ v˜'P Á4&K–,=øX¾|¹®™~…ÇK„ K}´´´`ÅŠ܃à÷’ÝKuÍf•ñó¬Y³†¹Ó¯žêK#‰IÏyË›ìg( 3Œ‰;iö¡RhAçÜ6Ìj© xå«#ß$ø`dB&ÄÌí@Ò£1çïW®\é«$YèììÔbI·I“vñÔs«OOÚjræa,£¥QŒü…£ßüŽcÇ˨&E,¸jZ§Qwäú1Q4‚ÐçT2ë“Æ•)$±nÝ:ÌŸ?õs÷] '¨kÂ^ýªIM ˜êR³NYEU‡g½S÷¤ZvÚ¹Á“C¸ú²".N~FsBƒ3V²2´I¨8òu@¾™°^êL*ÊXÊÖÙ$AŽÒÆ.ˆ"=ó&Pô Jù‹ÜËPIñ[¹3TÅ$„žY—1TÃ$DBï-èV¥äE¬m,²±Ða$Òñ™)I—¥··‘’pñªŸeöìÙ2 64Bª¦c(“Dk{f4ž@±nôG t„]>ç‰W%1~`„“€?d¬:¤T“Ñ–ÎíCïèÃŽ„&PÂLd_çk(`ë¯É5=í‘ÍÈYŒøÚ^˜EYÄÆŽã®OdûÖ.£Q×V™~:Ž{Ö{ô9‘{ŸçÇdà<ŠqµRÂÀ‰~Œ”ÑÑVéÉ1pŠÂò²&Çj 7ä€B¤?®Ûäâö±Šxk2MR„c¤ Ô³Š´ë¹Ó›;ÕHûYµ »ÜÕñí/¿:Š‘á?9ÖÐÜTÀÜYyt_3MÅéÔÄc²š«Iöí‰1þÂГ_J8'79CÔßÕw„»¾Ó˜ˆT¶ÂZß©<ˆ´?ñŒÑ¸=ÜÊö¢òXŸ¡¬LÒw1‘~ö³G?J;5(NoÉP•YЃ®‰»Ÿ!¤½½]ý3ÆëË9rDe¾.Cï¤ãåй"ÿª‡t‡'ÿ .ÌÆ’OÅÌ2ÿÌV»?P'à!5©¥ƒ¬¥ƒ¬çjªóÅ–ÇʦçtxxIu¹ò Iû0’\60üäò ¨ÒÀ ÐŒ\]3•Š|ø‚.ì³Ç½\Âi¶ *Ĭ|(Ÿª"@bÒnr@üš€º"ɉZfaÛ8"Œäýö…¡Kؽ{76oÞlœ³ŽŽyÐT®6×DJD>ê8Ç=ä¡7‘‘g vîÜ)LÝÁƒMü%éÊAèë}ûöé£ •û@þ̽⻉ºîç=·sy¬„!âU* _9åñ†Ê(òÆ«ÀñÖ$¼<ÞPhoì$˜ùúj‹ìB¿h‡ Içv!nMÔ÷œþ±‡oжmëCïÆûpç¦>ܵé!l¼ça Õ¡`õu~ûEŒë€¤Iá\ŸÅ8‹·p`›Á͸ª¿§q iVÏN” *Õã’á.رc¶oßî±Éu(òÀgÇSöšql‡ÆÞ½{±k×.éËØX:!îé:Ç„!„o¤k|_†á€±ùvP¤‹ì¥g8ˆ»î1Ewœ5Fgmë'“šÔäoöÎ$6Ž* 5ÓÝcˆMˆYÌ–°ZB,ÖAØqFb9Âc$_€"ð!6Y9° ‰-ŒÃf‚ !8 `BpÈâŒ{Šz²«Õ3šØŠe#uI­™éžþ[ýú¿û÷«êåθgá UaÜ5硱Žsó·G¦weŸ=޵ϊ†yÑ €Ó 4 `Õ|AUûhQÚôÛÆ3<0ÍÎúŠôáá‹ IPtÙÇ›!=\XÍá+áŒ)«¡jøÜ$ù$ì9Œ&iÙ+Äa¤a5Š"Ž« èpꜫ†Y°V¾&’ôaªùLçí¿É·!Gì >̧s¶RsIý–Œq÷v7‡8ÛŽšîTô‡îì lÝ):Œ4,­ÔòD¬;wíÓ×½Swè6G°Ò°êÔ¶ÔÏ…ŸFdžɠ_EœY¥Íi38VtAZp¸¤ÅqøZ» M5lƒ6E‡0®õ:ªÿîºfK8Z[™Ãw‚|áhÉ‹¾r,ý°ß·úôOgè+žÒ 5ž±·<ö6£¯H5iULÅVk뢎~¿ð¬ê2›ÎHƒ6@'´¹¡1´öÂqtÄ1ìŒüø]êïø$×ö‚ï cÒ‹/½¬›7?£æÀ©i5«ðß DÇ|QÍ…f“§èÁ ÕoF÷˜OH¹aßs[B‡ø'0¢;ü79ÓŽ¿ºNë½£££Þv|kø›z~FðæìÇÆ sÖÓ>CsÚå`,æ\ÆL~“cm…à·D9É“ó`íñ3aÌuûæ7~Þ©ý—ñ¤³³“ýË–q—yÍÕ´/sýÜŒ{&™,sT&e¸7Õ™ÐW |³_²¢Y©XÚy ó*M…@¢*<{N„Uö EòQ³T›ÚäDZ#òÞà6ÿó‘iŽQuVÎ\…GÁ¹rð øcG#øžœÃ£|‹& ˇœæì’Bi?P|Ð[ÒÌÉ =Ð>à)ÒÕÕåǬntD vA¯0»àO¬ª¡ò@^.úyÕw]ûãtôdΰ¼¥’·ÂÞ“¬¯ÿ½º=¤¿»Ð/Òé/*Ú4%¢±Dá´½…f{Ø›Íl’/”¤’o•£ûeëÇC’‹JØ[‚mÍ&´x /«r=Á5£êÄ'uEqc+Ëä¿Ñ-}œ1¦½}•õÁ#bírý ë%'Ê“K‘¼%” Ô*å£-²ý£ÝòÉŽR,­;kh“è dŸ±ˆ,Ø<9¸ž ØÔ–-[¤¯¯ÿÒÿñípþ›'•ØO©¢¿×äÁqꎲañˆ1ÒßßϹŒ e°éõãbúÍÛž‡ï¯á¼é—===<9•M›6yšœ“ø á£b‘o³) õ[0ÀçE|a˜?à÷é× y䱌1™y 23g\•ÿ¹d’1(äBw>ëŽÿ:–@TšÃªDaN‚8à1®!¶+$WÈøX¶}:"ßí—¦–“ SXË é\pÃÉÆcýâÜö€SÂ…;ˆ‰O¶b"!á,™€àß¹ƒ‹Ä±Š‰rs ‰cº­@‰E*aBð¸ô5N¸äÃDÁ`ÏDC98‡t˜4(?Ø,&Çá£ʃã¥3Ü^7ê‚3莪“ö’N l… *Ó]ÂGDƒ’äZN–ÓÍ2øán“É)nf֨䏶tVç)Ž1s±@Ñu÷›!ö9÷{ kŠþ¸™b2vTÿ0)œä8´†‰ØÓÃá8NfLüèŒ wҪׅEò¡Ü5ÄlèÜ$‚3¡OÎÇñ”þ†®ÈÛ"y_á;ý!I Ù!/ß·ÏàQ.ÑW>ÁÐ$_l•I=QÆö–eëö!ÙûÛ!Y¹ªÝn²Öb'i[nhoˆEs€eG'pÏ´'6ä7«Ø ûðUà¿\Œ-™ÉÄ¥·ð ±¾~ŽX$  ³i,¦Ø&SöùÅÈï2øÙç2Q®È¹«×Èå—]Š­ÔØd}ü}leãÆ¤ ƒ-bK§ß‹Ef c‹áÀ&¼yww7x™ >–ÑßÏ8ŒÛvÇX[ݸ=ù¸˜Æt0BœË‘ôbGºÏbÿQ†:0þbëÜLºÏ妬”Þs³WhÒc±L’ºÓÞé6[ŽoÑ'ãº4w ŠL2ù—½«kI ˆ¢=ôkû‰›‘D¬Bêfi©` (XXIšD¶ëCP胑I_æXч§ËÐÀ"Ø‚°èø0{™ÝËÝ]æÎL€Ð#`¬`AÐ[®*UÌ+a<´Ú`:Æh¢½Ì9M„Vex)W ½A"¦ RPÛÑ®¥ñ]_÷Ð,ï"¶îƒsÖZ!A’Îm4n…,ŸÖ³Jì#Ú‘±.Ü®ÔÔ8rñi4/Søª†Ð»ÛÂç}Çû›Xt9!I‘(4McÌìØq* ¤BÁMøú$ÒL›‡~¼þö( §¨­‚8?ˆâ$9ƒbƇ÷ë~n"è=åP.¦\’álerùânå"U{@•B.wH|nÐ%§„x½¨ª†hȃÊéê;(2$» ~ÿ2J%MŸ“ƒb$|†Ç„acmV^êÇ1šç ëê}í±ä4NªR yLÃï4™èÃ¥;³…38ܰîÛ¿1°`aò—½«ii¢/m¬ÖÖ~iŠAP«Eð X<û3ýÞ…ª‘ö¤‡^#ˆ ¢k,ŠT͆e³Hé!Â.˜evf÷ð–™á † Ø%Ÿá±76Ã½× `¥ÆP˜r¼¥/Ï¢ûðŽ“#í v&‡¥åUÔë+ÄÌcÇ:´K𦲬W* ‘ç’¥ˆcؕ͡¹©›Ët]÷¤^ƒFž«k±œ¿OŒb[¨ê@x±Ã)z˜¬<¡PªÁ¶lt®ºh¶Oqsÿ Ï[ÀÞÎ:1XÄf“?÷yÿdÙ3UÎÏé2‘årµOê /äj\0„¯µ6{bõÿjLÁ ÒŽ‡Üèì̲ÅÜ^ûhž£sy‡Ry›[T‡Vb%¥­ª^9šöAÚ'_ßþ0Ž“r”8æäƒL¯zĈGŸëÖÐ:;ÆþA é‘qd<Ý(¿R­ÊýÖIé7íycüªÞcº{Wê4ê#},—ÿd,ÅÙ ëèkŠO©ƒïZKÕ54ɨlà `Æ]žq#$Œû7{WÓä…_@qQ4êH4zánt1ŠáÊè…11Ä“ÝÈ¥1»0(?.iA :Á틦øVo„êR-kR©Æhˆ?CJýÙ‡º, º¡Çó|åuË›v¤¶$ß—¾'9¡yyi¾öyMŸï9Ï!S†fÜ< Sí'h÷‘h”¢±£ž0å êêê"¯×k âÆÁÆÆ£TV²‡j*K¨©¡šj«ö‘Ãn§ÖÖ³ ƒ¿UØ 3°íšåCã-O¥ï+JÉVö­¯¦ÃŽR:h+§¦¦cÄZQ4~©8IW®M×õmBfôQ™84Ž:ìÕTQ²›œö jtÚÈ^¹ŸœÎz£6Ÿ>}b4æªl¢Zæ ]‹ÀŒû ¨®®Žxâ'±+ ñÏ2b§$*.ÞEŽšòù.£Á󿸪,³õñÕuަoÜÝÆ,Üížòs)÷°Ì:ƒ!²5·:ã®C7§ê Šù®%­qOؘ Ýâznb ç. ssá aè·¡¹„¦Ü`7ØQlöƒuÇz\æÓ"¡2•ÒçXaîÍ}íЖBc>ÄÔì¬lÖK³Þ“ëTs …vÚTh¾1ÄúTàæZRà?¯W>Ί²–.q1²Zð„Vñ7kD¹g€q³YŸŸ—‡zƒ>ýðGÝA Qñî˜æKÁžÛ< ¸ \ræd‰E[EaÁ7âÝø¨è÷‹`0¨ö$sމdD‘éÖ²K<ð¿iFŒ¤VZ2äÊÙL½å”ß1¶F õôªaÃÂöB[›Á´/ûjÉd-æ'¬E¤5"1îjßNÒùaÒúÙ¢¶2:ôäTÙ»š–6¢(zl±]Zh¢HKqÑ"HÁf!X’•q#¸þ-Mp!®t¯1ÚU>ÆIðF#A‚…"” ýšC9p˜$Óè —wá̜ǻwî¼xï> þnN¥á›ÿ®-•àGkëúkl9©ãþþ¹\wßn‘œN`ia¿~Ü!›ÝA³ùŸ§899öífGš~ X;˜­=¡R˜ZáTÝCÌò ŸÅ…±µ'iZ~áÖ™L†5Àu­8þËÍAÁ¥ŽSfÝnÆñøªÕ#8eïÞÄ;¿}…ýý]K%L|ÃËÏày§W»ØÉ§ò‰õ·p°XÈáo—t:-[x«U_âg+ >[=‹—ø™_õúëcóL.“@£q|þ ž÷÷a~.‰ÔÌ'\]ÖàWÂÐ` ã£ïQ©TÑJ¬¿<Ï£)?È/ª©OU|„Ùk©²ÅMšÓþÐS•G!1±œ6Ÿ‰…ñwý\ilÖçò1ù‰¸øÌ¸#å"Õu°²ºŠ³Zå qxx ÷ÀÅðÛ,/¦0ùq§€B±5ƒï>ÚíÞ‹Q}fs£þ(qæšÔöoÇÖ«9„xØX:íÛæF°?Ýßµòý<Ê£üaßü^›‚8î?ò}ðI¨>ˆ\Í媦SlÚxÈQD­âÕ3&±`ÁzT üméÅTEª~tXʱÞÅ;úá†Ýa˜|¿;³äööÀOö•ŒEšRÈÖ¥RIƬ‡>³_Àt£l~,“±ô ±b(ƒ w±Fp®¡P ª0‰R¡P€ŽÛíYqøè²ù5lïÝwçŠôcTÕ©~ésI•77Õ_lW6¹KímÍ*žmÑäý#ª î–ÆS:Ú²Y™ŽNÇNlqv‚1Î>°f¬µƒ€±‡ž_)“ÉÐ¥hæêvü™H$ÀxãÆø¥¡¡]þÜ¢xqÆÑƒ>b q;Œm‘¸"°E¹\NFX°ù÷qollTç±6ýš“f‡T5ͽïÑH©K]™½J[¾éØ£¡bB•G­ÒhTwó´­i;ªy°˜þp8LN€V4ÅF(ãå‚ý\ˆ¯ëëëA.Ï56\êG þ “\FŒ¡–.*ø•\ñN)ŠD"\þܲ|‚ÿñ‰±+S¼fÇè§s’sO,+®¸¨w·ÌíqëB-ðuÛ‚n?Ƹ+ûøD¿Ûý¹xYš©êôÀŸ\¼å¹¨L¢YNîÓXÏaÍÔÎE®šç ŽB]Ä&úÄl¢NRg š³L2ò$¹P3=þ“É$ÏãzŒûœš˜˜1ãSê0úXÇ¿ë¯íwâ ÿ°¾tÁr{jîÄÏC5q(æbNæÆFlEêÙC¼fäóy|MŒc«ŒEýıÿÏûÎ*Pãˆ%ta 5Êc˜w&ŽØs˜_F8‡~þâ#pëuaÜÏ]º¡u["š®Ì,¹ÿ¬Êª¬ñßìklTÇ€Ïî^/ &!Nj°±H…Ô M A„ƒ‘ñpA¤ !„@ RÊ’ÐVmÕV•ú®òîóA}?(“â¤@ ‰Ák;` ÚòXÖìîô|G=*’ǛȑöH£½¾wî¹3ç=ã™3CŠ "!þgä$ÆßÞuð{zR^¨®n~-ôž9._x/=òFøË¾C!Õq6Œ¹gX¨{¸2<46¢Þö Ùk!J$˜žpޝ³‰Åb¶vïÞ½þD€ÀàGŒ±åÒ§ñÌŠÎR`qº~ Nš- _ss3ϼ>9N#>î‘’_ "[ZZ¸Ï/Á)Á ^ÚxŽQ÷þà­ºî´ròÓR9¦2T?0*ÈÅáêùö:õvØà`h>|äûÐ]h#×´ße üȈ· Yd#*Ïiß³ÄQ9O .Î{÷³1(BqsjÂÍkÜCÞ~Ç,¾þÎ!«èréK"RÒÙÑ&ÿxó„8ü¶D‰¸Ì¯/õfeDö¨äÓ]’°cÚc’ˆ"[k±æÖSŸ±öV .kKíØz!ñÍr¬óµ#¯Õ˜ÊÖ­[©ciÕÔ¡ŠÎŠNÑÙt¦\êêêD ©áÓ™#;–[„¤ª$M"±Ùo×®]ö®ok‹5€7üê¬íxpº°ÙV¯Ý_¾|9G€“ÒÐ÷ Éô ÙÉþç´œ;’cÇ[åÏûH[ç9ùÔc¤©n”Üg»d¯œ’x>#%Ê;e ˆ°ù)÷kwÙ@©³¡²aÃÛÿ ÎÐŽA×™';ZÐÙ%ŽV7~¨c (--µu¡‹-2úë’K)ªŽü¶‰Rg饢¢žS‡cÙÁé|qyísÍûl0ôCXtÌpÌž=<¬‡·4ŠêD½>í±£ÿuVMÔYËæÍ›‘Ö„ß²MuYÖÂ^9'éÚRràõ·ä·Ú¤rÔHij¸O&WõHòú1Éez¤$D"6ø& j´Û¶múa2¬Šè`TúïÇÚÃChFJQ ƒú##ð¶SgRER©©©1ýÔ—è’"dùC‡}m>ïô+W| ЀÎìĦM›\neñâÅÈ•¥Ú°9ÉdÒ¯mmòÂ… ‘Žä§ئÂuñß§åü™”¼ÛzRþvð˜œêìv]”ñª‹±kïHþÆ•‚tù†§Ø.è§§[¿jkkÖôÝh¶{÷n{¶~ýzxÆ> ·‹Ð›4±èŸé…Û\@'(Œî+V¬Ànšþ”—— 0üЯ_¾C{ì‡Maó±±ôÚR¸¦`;HްsçNö[Ñ7ÓY€o ¿7n´ok.]]]|£`âv ™ã[Èmg}>ø‘gÚ-l­ù69ÉqÔÜsÄÀGá4ç¬ÿv§ƒ¡µÀ~åÊ•àâû8CÚ‹±7£½nÝ:ihh ýC>¿2í˦/Ë¡–1Nî¿·J&TÆä®’K’½þ/íOPz&%Q’”|î†è…0/ ôlC88=º^‘ÕÄeȲ`è,µäljâ°ÀÉý3fÌ hÙ³™3gºã‡' ”pxÞ|×ø 3ƲeËxÛ'p§:ãE1§;}útœ2íÂÁ‚“@Åx«ÿ¡!xñvõêÕðÛÚ3gÎøélŸÜ*`ÃY<ôÊ‘£íÒÑÝ+e£ÆIã´»¤jdZréw$Ärr[”Hùeú%á—ò.7è Ù&ÿ;}œ5k¯.óæÍãžË3'ãÁªU« |#pã9ƒc‚t‹òñ ªŽØÑ/xýÉ_nï;ø5zGæpÁt8üäNÚ‹®Ó6t“m!hbP/ ©³dÉÑ¥ýÊA"rÅ ]—¼¸Üz›Dg­½í@–]N×®]+S§Nõ<ø…ŸMẘ¹*ͯÿSÂmc¥bt…Ìœ\%r{IoµnvPºè€,“Û_—bHYY™õgþüùÞì+ƒ-hAš ¬Ñ êY«ªªdéÒ¥ôÝtkÊ”)6|²C—"CœøŠ,p0øý$Ó>|gƒµËÈ!z ] ÆÁCAFɼÃÀ‰6€‹k—#p1˜¬¯¯§>HÞÁŽlÚ‡@_2wî\ ö(l$fPpíþ‰I!©‡´‡ yŦ€Óm“ .+++©Ã©¹$ (8[PßÈÔø"á¿ìIhdU†Ï›ª*QË$šn‡jÇa¡¥1F¡Ûy#Áe MC–‚(éECLÈ"…îDÄÄ…‚nZE^¨à®WÎ ­ÒÝ¥vÊTUéWžï¦Ü\ž©d¡D¨»©éÕ}÷ÿœ:ÿûÏ­{Ó¨yö¸3Z¯ùp@˜×)ûö!2"굎 ßR"ö‡,­¬Ê¾á’ åßH{)—DÏ›•2§°Gq*WD²A‰£jgQ¸ÌZ¸b ‰Å‚¤IB€”“ÐÜô¯•$` Ã_ý”?!? U%©P555ˆcÐl£¼:…CFFFøìŸ¶ÅßiŽá]£±"¿+~7Ôú¥V9)ýÍ%i+#(¥‰³cœ(~IYÚQŸHeP¢´ì'„;#TØ  g«¢@ö,ÉÀ L3TO·MÿÄÄ„ŒŽŽò}ð6 À H †+}q¿D¢…¬*î>QAõ¢ß©©)7.-™£”¡êî$ûЯìu‘ŠÿïblŠt«©d`Ar©ÊµÃJòï$_Ž%M"ÃKbH”DJoåF8ÆBÌÌΨ²¾Í9Ö*þ(øØÍ-Ï}…¢!gyI”m6ñ‚°Ð ΦÚ{ã*üá{`¹â}JnŠy4ò Ö^?¤qv¨ývŽB¿bã#>Ÿu—è”;q·Ï¬¿ÐxÜV,65Ï*iÛsãMrÝП‹§5cÅxÛ˜X,I;îï‹aƒpB‹ìNLaÃû†¸G#ÇøÌÌÌ «SAˆÝûcccްÖj5lÛ­^áÎy-®M¸¡ÒƘyÇÌ 'çàµnûÙr W»2_Çî¯Rãçú²|Ôr‚ù _! m¾ý\Ý&×oðÃÿ+-뵞âÞ[V Y$”­t¸Ž»ÿAâZZmkÂ\‘v 2»*YâvGÚcMÒ'Qy@¤z…,ü”ËÂÙsšxáz!qG‰E9CÙqJM7s‚|÷|‡„ …”Ò>Š„ƒÏP;Hja©žfI‰¤I"GUãœ?Jž# ¨A$T-Ôx;vï¸Nvͦ^ÿŠäödQâ켤Yê®-NK%ÜpU%©\$"R¯+ñÚfÊ"‰‘) ÓÓÓ¨µîß‘#ITUP²yîz« qTN=¶#”,ȽMÛp7Jº%<˜r<ý¢à‘2 :$¥ß%‘SÚ§¼NUUØ0åflCÁZ0ýæ?­4×Z²¸¼*ó©´×¯¨)YZéÄ[&Q¬ñ–ö+^ƒ"•]ò˯ß*Yv×Ñu§bÞc=mIì qEýÃÎþuÛÍ+¶S¦¨€O½^Ç~ŽDËìì,q†ŠhS'œ«ÅÞ(©bp£ââÛ“˜sÕ¹¹9*FÂ}â_>&†-ê*Õ|Ê×`dŠï¢Â†~eb€»›ŸŸý&Ê0ýb¦Îp>÷ÐǘØ~,¶š²¨±Øjh,¶–%)«fåN,f"Š­dZáë c±['*(ÓàÂký¯ª1ê9j/±Får îàÂÍN¸ç-|Û:<&''é›ó_wˆ;ØvíßZî×ô-˜Zç‹(æôJOQ g|¿Ãß °x³÷„­æ^‡xov¬ÙÛ2>·-yŸÜÁxÁÀ–šÜLAçû[&Þv\î°É»êí½Ök³wæ N„AŸø²k.­DQQ<#*(FÄîÙ%"‹Á6…U´lm­<ÅFÁ Á'‚ˆ'âÕ¨(ú<˜Ëùx|,§¯ÈBx›¼ìì·;óÍügæÿeÓ"»Ûp›šÜÁ¡ôº¼ÿªLððî|Ú¿½ElËgÓ–é§-Šy@Il©¨àÀ/oålüGÖ«`oíÒØKÞ‹$sày ¦jYãq¾ðqz âÑê8‚»ŽW›XŽ>µ(’Ú®p«Õ—<9Jªñ€p¸–´S‘ÿ—v¿ªH´=K£Ñ ¢Èw©ÓNfÜS…2€7÷–ÛFÛr*Q¿n1€‡d+=ÃRqÁ¾wüÞ¿îÛ­‹cöêÍ«¬?Q^¢|î/—€Ê>U7ôHëXú€ö@`®ì6hé%è!‡î€Lßc^*´‚4€€ßjo6›t)À¦ýÄ`Keàß¹\.<±;®ET™Ð®B™ÿíá7’«qc£¶'ÇQÞòè«?Â|sÀžq}ü•³îˆâñØîÞ~dWn>ñªä2Ñ\$3Q>×B‡›Ì¡/t§Îƒdh^PU'‘&ùˆz¡ÈÎXßA’Å|…Œ<6æ|qø¾TQY…zóHò‹Å"òщU*’1c^¬=Qrꄹ¬Î ëR´Ö‚s1Nì-Ñ®êõºuÆØBï=8ÌJâB½Ë¿$ùÌIÍEÖ/ Ûn§e™xšë6V×ËRÌEte­Õ/x×ѹ(9‰òñSèˆîã%a\W«Uè%üÎ&÷{-…óNÔ;Ç…I«>ã/Ç" pŒ G~h2ÜïAòõNÂÀg#“$ý„ó 6…/@§tVIæ90O øÃùÐ+@¾V«é:ÄÁúÖØµé=6§xS*•˜#Ø7´:|žb6Š<+)YøkªLo2ÏnCªÌöÎ6ª2‹ã§3c[ -Ý]Dcp£ß»ñù~좔WV1j} i$ºÝ" î¢nŠA㣒€Êñ±‹/\Ÿ¢€J|PE@±º¥e¡A ¯Ú.ÐÎýü~1ÿäæfî´ ÉœæfæÞÎ|¯sÎ|çûßÿwn>Qe "J 5"È5pÏhë ÿWzˆ³’⤥º¾&—s«Þ\¢—µï.·ùkíéÙó@_<;$$!’ Ïàš@L\Y¡gš„N€"ñ*áÿB` ¦§N —•:9g’P}Ú즲è/íd‚ñ=¦¿\£\Õ¡ÍjL. ïl¦bÂ$èWóÎ.˜€‚t—'‚…_¨Eðg}b›¬°ÿ»J[¶f»½6¿Ñ>ùì ?n›o…`Çö‹ ¶¦¦äŒ ^zL–è_H(¨+ÿã`2cŠÎµb’‡ŸÌ†2FP%¤ÚA`e>|Ra8ïŒ{T/ _zyÊ`@  O9Pg(Ô™;'á l¼Ê6ÂåXªŒ×W*@_÷þ–²d':ðÁ]I³T ’½mã%6{î ûÏÛ‹lð Aؤ‚8µ?#Žq#ðáNûO(\“NÃtÆÌ§ñ³Ñ£G´±¿Ce£c¸ÀPV_| {#—Ð\rƙŒüOß'¸ÄϤ]ö ˜Ï5/ª6#H— µ,ž¹»Fðº ÊL¥À+“]®kArLÛ8 b`gøÔÑ»ÊÉùb _´_ÀWMÍûb¥¹d¹¥¶º5°¾ø¾5.]é}qlw¾ˆÞÑÁ3}ænö/ê.ãŠÿ8€†3>Üý‚ï-½‡£¿½Ø 2‚ °ÙLÊ&OQ±(ŽYËG¢zg£&` û!Бü:JM‘Mq‡WŸVwΰ]úÍfSæ8åôÙæ†ìsH¼¾e³ó}ùã‚Pµƒ2£u¨íHxBÏ;ªG7™¶âd\ZK–TZ¢´¯í¶r[½>m³ßZh_¯Zoýþ­ÝW?‘ñŽÕ]Ôf Høi ,¸4¤( Qü_úår…¾Ì§ü#pCW*KœyPw&jqëù õDõÿ–‰Sõ¨ízÍdk”•É®¨GåS¦®}pb‹Xlyûõ:K&zY¢ìpK'ûXë–„5®\g¯ÏÿÔJÊ*¬®¶Öƺ¥r¨ídoÒØŠ»Ëøéóù>AúÁÞ5öؼ|”½$ÄÒÃle&êÿj’H·n²£úí}±>£/ê}Tßô‘E-”‡)eË ×”Õ; ¾‡hü#IºFp°¢1Ó¸ö |ô›Mï*×Lý‹Úí‘rúÎÕÖ·úÑã9Dú–¨•ꆒ ’½GêŠö+¬Ë½¢Êúf®wA·›S R<}SAººÒYòù—®ºönÝ[ÝmmäÃæ ïrì¡Ïœ‡Tðp rìJ¦?>ÓM›|»ûjÞßÝœ†«ÜŽ–»à¿“\Gó,÷Î+¸ªGºª—º±cÇ‘k™|»zh†òjìˆP2½ÏÛö"m^¿×_wk^<ݽöØ·aÙ,çš'¹=«¦¹µKg¹)õcÜÁUnÔ¨›ÈLeòqï÷~’ZâÐ5I¨Þ}mGœÞòJwò¤ö¯cÜÂ9ºOU»÷gwkžr]Í“Ýæ¦çܳ3êÝðˆ¹aC‡úœÛ/Ÿ‡·ä8V¹Ûm%:yÎ=ÊËïE´ ¹ê$wŒ·«üñÅêk\ˇO¸§ tß,jpAKƒ÷Åï‹Ïx_¼Ý 4Ðy´Ö=9s&yÀñÅ|¶Ý<öÅüŸG<ŸŸ]9Oá"×;9䙳šË·úÏþëÕyǻöŽíYý½ ÉgĽ Ê€»çÎqnÌ!Ãã¶]ÅÖÖy˜¥SÖ¶«Ìš¾KÛK [Só:;õ´3¬ú†ø¥ sBÜ„ Ä!¶º¦º2¢JB…´":WÙˆêë®<µMïÃmˆ¶QçaÄ'º‰W’¯Yehs Û¸³Â:“ý¬}O™íöû>XÞjo.j²DªÔF\yˆ)\eP*õ-ÝI¤¯¸ÏÄ݂ΦÚ§µµ»vǵ%j:-s f¾iG™•Y?+-ª´Í;{Ùò/|®èw—Ù¦-ö§—°z4’ˆýÇÚr¬‡_9Âþ-Kï¡´ÀI‡'\WW'ºDÔ?¢ß‹Öß¾xT'q¿žÚUX×qˆfOì*'_ô¥x_,·ÎÔ¶3èm­mi[¸¤ÅÞzï]|цÉfO(IPFrõŨ¾âí"^ï*S¾§§øòs׻ʋžçÚ·½žCÂï‘ÐØDϳÕ͆ãè2{5Wwñ]ëF RŸÙ9–†¡(Š;ø‘ÑA[5Õ„¤IŠâî¦êàd¿BœÅÍÕ:8[' èîV—ÚúS°úÓÃCU¬›Í!y¼GÞ=‡—û.À‹À¯BŽ~ÿ™™“Ó3‚ÕM®Zmºw*£þÓ1ºXˆÊPÇT_næQf€Z‰ñ1|wß[Äu,ªÕu }oñQ™J$Gºÿ* Bmï(¦)ÍÍú®=ÏòR…(Šˆãsz½ÅùGc§5ÌšªÃ5Ô3z÷Ÿã•¡P C S“žMÙxÎa«^§Ù/Ì~ “zéºaþ$IR«ŒvÀf^ùZtìçET’HȱKS‚ªèÍ©zQÃUðòj Ñ¸hƒƒzè´”, Þ¶ßÕöüß× ©öõj¯j†þì畯E{¬™ÎæT=~ì8þàó.Š»>ƒ(í£äçy¬”v~c¸?mîD›$¦”¦b8'W] ùVåg½Ø;»Ý¶Š Ž?J¡.M);¤Žñ¨Ð¨@Å=*½./@ï‘àE@x>%.øh“r‹–V)Q?·îE€Ú!MZÇç·:#-GgEqɦ3’5g÷ÌîÿøHž™]Ïäó9™=J.]MO§•I5¨Ù’¤•UN›œ»,P8»«%ñ‰Þ‘Zs³Ì‰ü@cèæbNÅ€ƒ 6ÏÀ8²oøÏÆ|)>s†0xþòŽaD^Clu‘®weÌÂà·hïj÷1˜ RZ’ï=Å>mN„×quGÊå]eã••lãÚQÃVQoRÜ>"îÿ—ž‘åq·kFà™ÇЏ£ˆ(”sùò%Éå÷Êk'ÞD‘r_\‘µÏ/ƒ/‹~èøë'Qšñ–µ"éÅN_m]8€…âþé‡ï9ÎCn`°¡ôÁ;ôg*dÅ G¹ÓÏw€3?\.J>°þŒXp愃…ñ‚Ó†¼g •Ê× ´! ýú½è‡ë³=:†aø§#„ÁœÃõ® #ôT,{W»ŒÁ{g1@UÝ¥¥%yõø2¾} Ù·ói¹¶|E¾ýæk™,O1žgU}¬ãRm#”Ïï‘_.žê¬Ë±c/c¯ú¸ûí'y§ÆÈ"îFª©B76þ‚œ˜{#®b÷ìéy…ÅuHcu•¨†[Tgªò‘‘nW²™l\ª¹§óЧçò£vV²±òëÒŽïûm>HôbÌ»Íf¤ˆ·ˆÔPÅ‘l3Àá¡ †SÞ)¤N‘/ ÇùG±“­GZ9ýp•T ‹¹8‡¬Ú;C£X)>2C‹a†a†ÁÂ{ÆNðÜÉ·¤V;Ê`“zMñkËW¥ÝnËT6'õz5š³‡\p¿?—ËH§óP..ü,Åâ˜fñ’¾ÉÈÈw#¼o8xDŒì—{®ã„{JH‹o¸íǤ‚’V»ÅµsÄ·¢ûímç¬7nÝ(#†©Ôä`¤ï6oËÆªŒO”d¢T–æí†4ï4ddä ©ÎÊz«%7®ÿ=Ç™®¸rîr}eÙ9íÕZÝ=S«uµ‚FeØ"EI+»U™$×-YŒQåôÑ 8N}Np ¨j Ã0 Ã0 =*³¶¶á<ÉÉ22DÌé_»DÖqþùø÷ÐÑÑ<[`»€Óææ¶îF#£Ý¢¾MIwæYŒÐ‡½¢½Ûdd”߉I,R®\?•U&“Í8¥ÕyØó33-pŽõÂÂyùlþÓ(ûż‹rû‡œSb‰\¶;Yo·¥X—}"øâ…èúðhQzݹ¿A» ¥ò4m­[$L”¦¤ëÊ;÷dóþ†ÌÔ^’lÖe·‰‚òDa2F+¥þ›bG&É1ɳ‘p5¾ü cÀõèáÅ´q¡Â0c†a†a`âÿíe:8™_ÞõŽ’÷Ξ•Óïž‘S§Þ–V«åäÕÆé®±WÆc+ 0-.^>ü@¾üê;p]¿:õŠÑéls¡cûÍ*“kd”•'†¬“r< ôØf¼rõ’œ9ýŽÜºyŃRTÇ{)ÅxøSOyº"ÏŽÅ‘âr¸8.¥©i"óÚvN{.¿ÇÉï+¤2Sw‘ý®SÒ©TëRØÿl¢P”žvw"(iǤ2IÎwÔsè>§ß—t ¸žMbÑ aÆ0 Ã0 Ã`!ŸqßÂñƉV›…-qú·8vHÎ{_¾ø|{¢N¹/÷7;W¢0 E_µ¸.z-zuO!½3±õ$BW uãÔ©’X’Ú…  ]|~Þ®ïñ’ ¶>J-:¶YŠéd J%ëÆ:õÕoOƒƒƒ3î„@'ðÒGÑy¾Ãb6—G^<êé™ñXF^¾!žÃq8Çá8ôN'Q?ŽVJßWGHV ~ÖZÿl}3Smu{[Ýÿ‡îféËï/pÎ@¥æÕë¼8¿²wv¡qTQÿßI¶ën»Ù»©1~`0¨ECúEú ’¶_Djý¢¨h•І¶FòTZ¥â‹¯’¶Q»£ J[}ÕÓlÉ~Ïîìn¶­ñžÃÌ0㦔B• ç—ÙÃî=ÉÓ¹—³ÿóßAÙGsE¹Ê$#á‹«þåTøøöïÛ…ÄUœ‹»Êxň Úüü<1ö¼}Ó¿ë‹E–Çd³ŸãÐqòä Þ3>~7²_-²¬Ðt|¡ÇâB–m!Ÿ~æ9÷â5³˪ãšôKdêu•rIçîC_²õZÕj Ñh ™kY'X*® ².Štz#Qйl$¹ŒŽ ø2û&''1<<ìkî]AÁµîæójnn“[§(_¦øá¡÷qðÀ~<%Žý<8”ÊðÙsâøøù§ã¸õ¶Mxô±-0M“r³?ÿâ× Ôm÷-"·n{ïÎÌ"ï¡óË×É/.ÃèèzHöWlÞ<†‘‘_+a|ù)›5|ñÍ÷8zì[þh‰ ½ÿ³±ÄR[Bñºt;Èð^ŠY›G‡/ó=ñ8’É$|Mœàׄkþ}ƒŠuó+轺‘îç¨VÊZCßF,ÇÕ2ΞiëÎ~†õë­fµj7Ý|‹+É9‡RaƒC7øú@(åþŸa×AAèpyqÏ €¥2žÜ“ ‚.5AyK‡º·÷}/WÈä!•JÑÊzO´¿s]ú9­ÄRáTN .ϦÑA£Qǽ÷Ýѱ1-•ÙÃsŸpWá¼MÅŠu{âhëˆ÷{OÖ¨§Òi$“ýn—㜾ÄoÐŽ b±ê6pf´“M‚:þl#9xý:÷ !ÕŸñW)7=åÒ.‚ \´[>ßèÒMúö¶oßT2…·v¿\.ÊðùÊÓ™Ãñôë¾Æþõ]oâ•W_£³‹›N.î¹å繬é‚ v‚Û-`Ý8 ù<÷ìÝ7ƒz­†|!Ƕ;:î9è3!‘H±Ÿ»í~~ýú^î|´ZÍPl5,ÊËC©±Xfƒb×J««íUÊÁ1u¡Ž» ‚ ¬u>„,sˢxèn6½¼ó%–´8Î?Ï7Ã߯ÀùølÓºÀ{F|iáŨTªœ³ =þA†S¥B_Rñ!ëGÖNïÙ‹©©§hßë6øK‡P`B–W¥bËK ­÷(e°ûÒŸ¿‘Örûq¹˜çâØn·pjéwŠý£Ó¹%¬œ>,¦EymAé¸.îó­«‹ç³&&ÆÌ{³¸nhˆ/ïaÉŒ Æ 5¶èIŸå=ïLïÁ³;ž§y.ºÔ{R™«Ì‰ êŠEpÙóÙ¶£tq㥠”Þ`(«n©D¢OmÙö¤ÒÖZÁÏðë €RŽãp.Ó,+Ç>¯ CqܰêêÌjKEº»•ãÅí–ÒC²zôë¶²j¦Z‰p[ï5«eÕ¥༌ú›½kkm" Âs²ÙÝiê%i›t›¦¨}NB^Š?AÄ_!â­­`!ïm±Iª©×z‰¹83›“ƒ+K°ÐÅ8Ì™s™o¡0szvó ÏóÄÆucÄȱ€?6Yãj ¬äË'›Æíu—Ãõ™Œíê$œ,c(†b(†bp~_ÆÚ’·$¿¶gz½ž¹{ï¾ÙܼiÎÏ¿á:yî[B¶ä=Î…QT3>2HØ@ã4ÏûlÁ.<÷«¨äà¿}¥³Ôä±åˆSm¢dqTiý÷}“yi|Ãnù®÷…Âب߂°°@¼íèÛ‡µõ:VQ-Å…“È^«C¥ºƒ_Ú å• ¬¢Í\¸£13ÐÔÐDë?†ç=é gt‚ÈW ™PˆÙ¼ð4Ÿ ÑâS0H vâ¾É:†b(†b(†PKò-x0žÌä/êsÎ:ëŸÉ§2öüì›^Cmb彸ÖÉiïTè!i/ki#´}?à‚„“Å£¢¢ß¸kõÕ¸ Ü"¯>t:ªfš‚­…÷K•8>dc‡8ÙqÌcNöåÕ*üÄÀ‰ÂöÒ2F¢žäCûõØ&Žx¶ýEŸèv$å•*Òu1=¶<„!Ä)WîÐ Ö´Î~vé§IdÛk©„— Ö¶OÁr±],›RÌý»fC1C1ƒ}„aH{¸¨ÓÑá!æ „…7ÁŒŸ W«€kÙ×h8½8â(ǥɭü\''oPðƒ€}Î%**Ê*£¬2"RŒ¢Ñh0ûîÓÇÕ6`ˆc)î´†ÒKKÅi!Š]ð<Àýñª`ÎcÛX“1‹EêÛE<ä¶Æ ìÒ—5¶–Àîú äAãv¹ì®Ï$lW»<Âö[“Ìb(†b(†bA@¾øRj{»{ûû\©;ÏôÄã4ùí_‘<¡Z©âs`ïÙûo9–÷¿~õ¶¶nCEÐn·•Uf~QÑw)"ÑívÙÞÙ¹/à]÷­ý¹FªàÖl6Ñ2p||ÄŒ2Ƙ +¨Ñjµ \.Sá Ò¿Ù;caˆ:ˆÖäÿÔDänº+d )¹{[ÉVœ|ÒLòGWGÕTK$ÇÃÝ»¶µFd:ÓßÍLõŸfHƒWDà-¹ØošæèBëïÅ(F1Š‘™{W[Õq…Ïà€± Ø€ 1‹YƒcL”†-aߨ†²D¢bK$ Q”²eýAY“T¬bI@ì4QD¡a±ÁÆ$jCE‘ÛÁ5„&€nݤÄö³qç;â Ñl^mcÞã|h4s·™¹WÏÜïœûÍ9Û’$deeJTzpò¿'Ÿ¤Ž lÞ‘Ñ¥K_—›4Éëµúé§)>>ž²³³±ûôŸt+JÜBÈ.Ρóçϳî<4´6ÅÄÄŠ‡ûWí#›Õ¤J"¾¸c𦧧SyP( …B¼ßQQMøýäÊ!!aŽnQf(d{r˜ÀÓž‘‘AíÛ·g§“O¾hW|{¯ÅÿÚ‹»}¯sïHrš9U3§º(7¦çŸžÎž=K§N‚çÂTÊeÿ¡U2Ü~õY¡P(þCßo(~_ëêïñN‹‹³’gX$똀‡œ9Õ½Þ;OIˆ¶—({Ÿ§¬ÕãFŒ#9Çÿ¹”¿y îót‘€ƒjÜUãî]˜…R9DX¡P( …K¥íÍIòÐ5îBÒ!)BÆX‘à6lع€ Áq쉜Sˆ¾{̯û⟓“ƒš·E%ϪE‹T§N¿œŠr®wQs@ÒYã®qÜå:kU{Û\W …B¡P(ä}JDÞ6êj‰ã.yB¬ÜÔ´mÛÖŒ9ÒŒ5Šë&Mš˜Å‹KŒ}.î˜ÖËÎs·ÒXóÖ[o™7nðöÎ;Q$Ž>®ãpÛ–4£Þçæf±ëÌ‹/¾h†nFŒaÚµkgú÷ïoÍÀUðù–Ì£æ"}èÓÃ.Jæ¹XîGâú?61ðƒOã®ðêÛPûg)+ …B¡ðg¡ê#%ñ©ËÑ£G)22’=ÓÛ¶m£I“&ÑСC©cÇŽìñˆ÷Z®ýøãiæÌ™?~œ[ò-¹Kä>E~‹¶HpÜþ°‘â°n¯ËËËc ïG}DC† ¡‚‚,6F¿¨åz\+Þ~‰ÄÆÀ˜ÀåË—iÏž=ôæ›oºœG§&^=<Êc …B¡PxÕóƒÄ ±‚ì…ÈR@ˆëíÆ¹,£¹xñ"mß¾Þ}÷]béÒ¥ôꫯÒ믿ÎÑèf̘Áå’““Ü‚ ÷Ûo¿mœÇrëÅgƒ eË–¼Ž.--Ç]³f ‡ë\·nYO»KÈ]#Aô騿ñW¯^MŒ†¹sçr¯¼ò M:•çríÚ5Z´hÙ¯8Ÿ%8“'O¦•+WBn°ä]5îªq …B¡¨ú…{ Wc-u…5î^ ½hÂAvAtQÜ/ê^Ý=ˆõúõë9l&/÷èÑ£©[·n´{÷nÚ·oŸwd‰e/ûôéÓ9ïËÞ½{á•G‘r@ ª^nîã7Þ ±cÇÒœ9s˜DŸ9sÑçx{Ú´i”””D[¶l¡‰'Ò7ß|R}Ïçƒ{‚q±páBZ²d Ï?~<ŒÌÃZO˜0Á†£þ;Œ ÚµkWЉ‰¡o¿ýó‚£÷À…jÜ …B¡ "©ïjWвžm…ž±èÃEOŽ6tÜЦ[Ùo_¸pÁ|øá‡æÈ‘#¢ñÆu^=·r“ššj¬ÝØ8󨾏xçl ¶±ÄÛ4hÐÀ¼ôÒKÆÊjLçÎ%ÊfÀ€fë֭Ш³¾uëÖÆÆscIµ±ž}cI¾YµjŸóÚk¯™úõëëá÷Ž#5î‡5ìÖcn6oÞl† ÆeÙ²efÓ¦M|Î{ï½ÇcõéÓÇØ·ÆÆ#fܸq¬Ûùå—%ÿòœL°#È=îêqW( …j¯áÙD’!È$* xµ-Iu£œøŸ9õ‡a$À '‰¾ ]Nšî]8ÊãL™2…úöí‹¶)F²ÌƒÍk °pª_¿~ðV³G[€ë¥ˆö]æ"ûDWÞ½{wàù†7¾M›6tõêU;::t÷ Á}ïYîžzŒy <ù8†¹aßõë×yŒ P—.]h×®]¬™œþQ—/S»B¡€}%r:Ô²ÈP(ôoµ´_ r}0äHÊÂT9PÃÚoW AE·mŒ)G¶„ëKèVÉІ|-i …øà–î¬X±‚ „ ¼è?°~Çš€I0U?”±r½ ²m( ¡P(\C%àbÏ$HPff&[’øÂÈÑ–ù*þ.ѯâ–ÜÖ¤/>Oåg €c1(È´7Êà&A²²xêoïôc~­Z½Š>OK¥“'ÿÊr+Y¡Þ½{³ö܆NqwÉÿ}3¢‘FòEèËA¬SRRèܹsL~pxòá…·Òx·q~/)ÆË9Xß>xð`:qâ7nĽÀ ͼ—§Ü7‰£s„±Ó£G:|ø0šŠÆó@äÌÙi‘žõù³fÍ¢µk׺st9’zÜï†B¡=‡:ð‡‚bʹ’G_—¢TA…zQK)<ô êûsŠií€&ðL" _a‘yÁJ "*qÁª.øíÝg¥:ÀÏØÆN'ÀýçÃS O6+"»œ:´£gZ5¢èFõè–CŒQ*sìØ1ºr5—FA´Ž¢Jº%î‚?ïþ”š7oJÏ>û¬Ä6Q™DÙ†.òx–¹dee¸2ÙmÛš~* £][ÖPófMÄ+ïjűR®Ñåõ d[ú)F8E ..ÎŽ¹Â°¡gMyFFî ¤ý@) ˆ9gd•l¬€g~eîö;Ÿììl =¹‡!!±Üe ù"C²¬Ý€ãJ”‚¦x$‰»w|:ûòÄé*%îÞØ°ÞöÝPà^뉔›w“þ˜rš®÷OúÝo‡QxíP*¹íÙ³Þ:ädVîÍW\BE¾’ ¹O…þ}×®B9WÿMŸ~‘EÝÚGÑ€Î- 1 Hâ¢STä£ãÇŽÒå+¹4ê׿¹+ñNÅ ±ñ}¾"Ú÷ÙŸ(&&^c}¢1†7^ux‡¡åfùËsÏ=‡E¢8ŸÉï¾´tÚòÉg´cõï)¢^xä…¨{Éz…æ Ò+a$QЄ߃xù«©w·ÿ¯9º_ÜE¹îWרð&ºòJr‚Ç]£ÊÈ8Þ?>EÙÏ ¾ÀWÌÿi7jIáa¡€Äîþ2‹ ‹à0ÕøÂ–ÅOn»ò tSPXL¿|ª)%´j쌸P(äwÜà¿ÅTdɃI.‡€ý¿ ÿnÝ®eÅ ÉJEþb½¾aáT/"‚ÂÃÂà†zoxÕyQph(Ë_1´AÞÑ2‡Z2“òYÅWd÷ÝÉê%ÎÒ®§‚-} A–m7"ŽK’ݶhéÇ%Ô~ÏÑ;¦•Þqå¸ÔÞ¶@£ÊT'ŸÙÐv½0n[>éa1ŒÄNËŸ½ óÄ‹S -™?|êýp³_MªMwùS¡BìÜBk…°ÔªRiž ›ü (²N(ˆ;ä]ØKÁ…w[Q !4¥¿(Gj!:U ŒgWzW˜>)rœÈ<ÂïP¹J!ÔЩ‡Û÷eØmùË÷”’’L;­;33ÚkYö¢'&&r˜N:A³ 2éÈ:‚ ‘Æ0| I(ø‡üâŽa~ÏqÙ®Êù¸(kÜàà/JÜ5‹ôiЂ¹¤±|Q걇î±açÏŸ/Ǹ”•Í-n ¼ì놇âù1q®Àx˜8ð”›÷%¥çЈîOñ\ÓNM?«]S®0j0¡1Ö0x‚#ï B£Ê0yC1Ø0RËý•V¹wšY&¦² Z{–аW•çÏÕGNþâJ7àÔBèC´¡§>{ö ¥¦¢C“-Y?m6Žs6Ïyóæ‘MT„EŸxïâžñN…lFôãòî•11xU܇xÓ½ZrÙWæ3p½Þ€{ %îŠÿ±w%ÀYUɺ;;˜`Â"[X*‚ «(0à ˆ²<ÔQôá >AÑÁajF±PdQ\âB€ š0@d5, ¤ßw¿Ê©wß_¤Æy‚…ÖíÔ©{ÿÿœÛçœûWºû|çt÷EÚ"¥À1ÎÄ .®*œNN©  @UÍó§gøêÕ«åé§ŸvÂä‚¡–üB Õ¹çÜöYh{ÇÓÏÏ_ê<ãÇþ¯øá™ËàŒ¾II©•!wÆ 5s蓉oÌnœZGÃØÄÕûÉùt1ëümÄבƵ“$ˆÿÉÂ"IedŒR)ÂY× 0´KÙ0´/Ÿ@6ª]^iY?~\œéçy Á¾\{ ìÏy®C¸‰p‚<ØÐ òFlÏr>ƒÏ¬wüÀ‡» ΃}±Oðò;á\zC¾<%¨òMÇMáx=äF³o¨+E)S‘ÈðpOÀ+·e‹PÂqï?##Âéë§óÿâ2þxè7p¸x0£ò,u÷@W\_xžcQöéJÂ19'TðáXé€+¿ ( €ôg:*ãç½3w‡<;á¯Rèóõín|8òûãXÄ$):w¡¡[™†7Ž ÐÐt¨<âÌ—E¡ñ ÝëÓ-gœna›Ê•œîàçâ’ê–ð€ò¾§Xo|tö[±Ro1ÁöGpŒeõª•²ví',»rsËBÖ•¾·Þ&Ý{þV22šKRR €n:uRrwl'(väÈ§Ãø èçŒ/î|Õ¯ýÉ'Ÿä{Áw|¯ˆþBpÉ—ø9Ä@wº˜ÏìÞ½›Ñn0{ Ú }‰tãÝ\½{Ùy4 0½l) ÑŸJR ¦@ñ\õÁT8È(’(Â.)’F°3S¿daÃçÞyçE¼TíÙ³§N›6M!ÐX'"¬wÏÁ°ÖÑ£Gë„ 1VÛ„zë­·*R3»6 Á¨-ÅþQO¾“&MR  ê]9¾¹sçêí·ß®½{÷Vxâ+v ø}¯^½äòðƒš“­8C®Åç‹)Ë‘ISg̘¦·õ½E‡¨.[¦0ôÙOAÁI}hÔH]¶l©>0â÷Ú·Oo}dÔjÖ–M £_ccãa uÝÚ5x&J “22::Fá ªU«VS±h¿EŸþ럵kçöÚ¢yº::e‰6Ëh¡“&OÓÏ>ÏÔõ2õoS¦kÇŽµB…JЏèú}~>ô×)-µRð`qúÆéžŸS÷›ŸGb%]²d õcŸ>}íÑ£ç'"ÔíÏ>û,ïñ®œNg×§Ÿu0êù½ßføéP˜]¶ˆ\0¸Ý½©ªweÁ¹v{÷Ýwy_Οõ’†¬h¶hÑ"ƒÑo<£ÙÖ¯_opþö¼Â˜gݼyó ‚Á¢ØpÐ 4 ᯠ¡±,77×^}õUòÆgïJžk×®%O ï¶téR[³fÁ(7 †#<†ÅëÁ÷YYY†]ƒ &xïzÃùA~ÊàÕ³¿·ß~Û 8¼1²\**8v˜NxD„‰†ñ}‡©Y×këZíäD+.1ƒs¨¥U·æW]a8cnpµz)U,£nuóFVt®˜õj%¡m±ÅUˆ²ë›¦Y£´jh[l±øÜ:ýJ« ~î÷«]#ÁZ¥§Xtd˜ ·ºà× ü€ê[Iùó5Áø”¿+:'o, ¬AZU;˜È:x'ÚÕõ“ÑFÙ¾N*Ö²AMŒ+Ú 1¾tŒ«inèŠã ( @ö^¾D‰@¯õ.,ƒ¿È…rãìÙBÛ’µÙn¾¹»%Ä'رcG ;®vÇ ;í@^žÌ;`1bìó ëmÁü7í(êãâmûö[öáûtÞ¢¢£ìðáï¡VÛ'«WQ7üp–øådkÈuÝqÖV,_fâ»’Ò¶AÌqèƒÅ¨;g»ví´›nìhcÇŽ6€L†,¡¼ææî´9¯Í¶úZófìænlê ³èŒÇÆþÑV|´Ú6ffÙœ9oØ!Ã,9%Å ~€îɧ¾ÁŽtŸzcà|EärÑýNGó]Üu×]vï½÷²¬[·Îòòò¨ß=B&R×u=>SoÞ¼Ù°cáéWêZ8ÜPwïYêT8Ø@:{â‰'<½K@U©§ßþrpΰ`Æs‘ÞQ@¿nÄ=@}ˆ,@X*ίë3Ï<£O=õ”>ôÐCŠlm Ú¡·n¥î!êDBþXgÖC݉d4H_{í5Å?3… ûDÞï¼óN]°`ˆ'J‡Wm'R©/¼ð‚bA óçÏ×ûî»Ïkçx²À¹GgÍš¥sæÌ!:!â!óla¢8“ï¡íDãa¤sN#ù!a›W8,8ñœ×Oý Ü{"/^ÈC ø¾z©véÐN_Ÿ;—è ¿FWŒÕ¸ØJºá›ýúÜüÏôϯ¯ÑW–oÖô´$MMŠ×S…ç´qíê@­ctΊ-:áÍOuÅW;õø… "*†¸ÑšýÝa¶ø }cåVÍ;Z š×&Rc3Úñê:ºcÿQ¼pƒþeÞZ]ðÉ6mV§PûÊz¾˜¨{(eGK=~²PO œ*:ÏŠó^_{ŽèËË2uê¢/uõ¦ÝÚ¾i-Ž$z¤¿mÓã™÷qê¿Ð϶}§XHp‡ÏHJ@ì½Ì)LÕÉ®K^D²»X8 µj×&Ò/âÓôF銉Zp²€»€ž ªZ¥ªþ×£éœ×ßÔÑcÆê6Èï?þH«UK‚Ì_¥KÞ[¤Ã† ×%K—èü…ïhºuô­7çÕ…=½¦õëÕ×g&LÔ—^~UG?6V7gfB/¼¥Cß¡ˆü¢X(è˳fèÃÔ6­¯Öí¯ÓÑ>Œà\ìòÐ ßÓM[¾Ñå+VêÈ‘£4£ysΠŢCÏ-¢LE_¼Šüß9ëE”~}ƒ+õ8!êWða¿ ¾B;ê^+âÎ;t/õ>’DQ‡2Ä=ãý&ÜéÞ·oŸþéO¼óuìØ±ÜÕFXKO—Ó~q|üøñü}±Ûíµ#$ù¢DZ\ÅâIŸþy"ýþqýk (@ÜÔ‡È*ÎÝ…Àñ^ŠÊ¡ñ¼úûÄö‘p$Ž0üÎÉBOÞ¸;”[o†ã7^áÊgá,55ÕCÊÙqkmàÀƒÜ lâĉ䙓“ㆻáXWúµjÕ":ƒDèkÖ¬ÉzôC~p"º¤†c:†eff‘G=ûF."ÿÆ{ô£ón\DüÝÕÍŽUk•â,1)Ù¾ÊÜdC‡ µzõêÙïnéeW/±Y ?²p5Ø¥™ÝÓókÕ(ÅR’âˆÐD bç£vªð¬õiŸnÿÑý«iÛöä{è êñ›ýpÚ¾øö€ÅUŒ2„]´µ[öØ•I•h¹Š]•’h5cíÖí®×ZÐüzWVõ}"!²¤¼º ¾©¹ ê–a[Ô6Áß±‚Bûrûƒ¡D%Ìr3„‘tˆœ5H­bßîùÞŽœ¶øJÑöy6Úâ÷ÀѼ—¶ ( @ö"PÝ.¯_™°ŽN7VTXh½ׇ:#(|›¶×SÞgQ¯f8_n›7y²}‹úÃÃöüsÏó~ë×YàN¹ gR»­ÿù%*Þ½{êIÛ½kû„k?ö¨-}ÿ=»¶e+›üÂt[¿a£­ûï/lâ¤)Öþ†ø ôQ~O”ûD“c½¤»2Ð<|_çäãJ¹êô ÆOýÌ]ùÓß(~D›WŒ›ï¦]»vÖ¬Y3kÔ¨‘Ý}÷ÝÔéÐ]Ô³î·q@wÌa¤Sø·Ù³g9"÷Õ @u/l ês€i†£´ÿ2OWÓ¶˜:uªL3†€ö‡CÝ:ô+wN B‡ÞíX V¿t…à÷HÁk(™S°EFG÷ÌðáÃé(êœN…xçû3±¹ïè•?sæLòs¬@è@JþLi ²ÿéh»wï^^AÛàÁƒ½ù2n.¬¿rC^ù‹ßé÷ä!é7G¾tùnß>ÉÊÙ%™k¿ü}¹ÿû®Q·ò‰Ù iÚ,C¸užTMª*Åx‡EçKŠ•Y6ï8('½EýdI®+0ÊeǾ£LÞ¤øcdclt±²H5ºB#ÆTŽüè[µ²q{ž:vŠÎ£¡îgÎIGc$¥jeÔû?|ü´ƒÃHfâú¹ß@Ù¿Ò™Œ5ªrùS@dN (­<Üê%sNua«%%É!Ä5ONNáw ÈìÝÑJàðNÙîb軺®Ž¼`J^Þ~è‹B1+å³}ûÝÆˆ/n¥Lƒ_JÞS&O’õë?uzÈé$éÒõFyãÍ‚cbh|Oœ8îbÆkHðw½PÒ'·ÆõôKY¾h‰ˆŒ’H8é*s«¨{—t.¦¼{^ŒKvv¶Œ1B^|ñE:›ºñø3¡.\¸P`PÓ9€õ81vðeÐ WèÕý~Œ>×µkWš€þf””Ù¸q#Ûedd lc¬Ô£|öGQ@AT™€œ!JÁ¢×»™A&;U@þðZü‡nÓ¦ “Gôë×Ïó¸§Á Ľ\AåÞop;Á€³s²råJ³ ÿ±±-'8ÓÎ s¾Y¡<Ë냂¢S§N2nÜ8ÆË1¡|Žˆ€àh ,þÈ6 C×Åçåœü1u!Œø¾ ÉB’±{1V&×Àùy I¼*ÂJñ‰àN…âúiÚ¶›¬Zò¶|–“/sÞþTÎB ]U³Š4L­*áeZ€Ž3óê¬6 Ύ˃}¯“ÖM®”k·1Ìb•ʤYÝ’ùσR=¡’´J¯)ù0²i@ão÷¡ãòUÎùôë}rºð#ÎàøUÇxDhó›ÄžÆH0Ÿ³_pFÂTÙ—kêºð\(øÃNª(?ï9tBêc¼¹yÇähA¡´l”ÂÈ §ÎœýdK ( €ôg éŒÚ˜˜hi{};$&š y]SêÕo€ôÿ;äo“žŸ‘Ô´ZÍ…Ì<ºrÕ?¤ý H;äl¦ä:$@ÞåLQ©§«nqÈл¤sçŽ}"¡OrÁk'û1z>ª?G‰$&V‘¤¤$øÐT,8›ÍúlèR4b]ôèòŒÖòRó³@Oº˜ô¬ã8|óG›Q×À¹Uba’`®¿Ë±#‡%ú¼Œè}Ã}ÅÈ0ˆ Cƒùž{î¡‘ìÌBu?Û€&8š ü×h|;*ϰ óìøbáäG.Ú‹››?œóÅ¥€èV, ^/ (4“Øÿ'KYhÜu^¾73Â#GŽœU§±ŽÕº'\h¨â,…GH|w?¯ ¦=ÆÑiÒ¤‰Ì˜1C°Gä€F5ÆD¡âg¹ó€Ç;ê1cÆP0ˆæÃ gJi8Å…Àö y7wöƒ…ç'&÷=Cg!ê ry¿°Dô†Æš@T?åŠ_#U>ý6_öïÛ/‹gŽ—B„«‰þÿ2a¢ìÕ:’›ZªÇW;ºfÐhŽÚ_)†ÞD%)¾¢ÀÁS®­Ÿ„œaÏ$+÷Dq!uMƒd©}E¢$Y¯‘XI>Ù²[Š‰Úˆ¬ËúN•Fê$WaÂ%ÀßK²”wô¤„…+šEÒ²~=¾ ©*‚³öþXò¦ž°5ñY—Arù—;α‚c=rüdúL”¯wåË! õ­")¨eI» 0ihùEfftc§q«erb—Ôpg,ô^½n‘É“& "ÂÐàÂL£}úô¥¬†“#Ñöí9Ù2륔µ]¼:†‹„#¨tìÔ™Fàô©“eÅò<Ã|ŽI2ØYåî þ\ßC‡ —Wf¿$÷Žx@nº©»àh  _oÍb"$ð§ü/i.1gˆJô}(‹/’§O•—g¿ ô9Ží€”Ó8‡aK}ã_L PÇ`á@ýNwuú†cßöÙ ©V­õZ‡¤E‹’––F8u‘oL¡™MýÉ’X\Œ›ï:Žü]Èf×&¨ ¡ïœ^¦Þtý¸{ø’ÉäÉ“DÔ î¨ãh ¯nÞŽo@ÈR î¹ÄH 4   Q:ü®aÆ¢@@; 3„Q”nݺñ˜ Â3eÆù8nÉA°R0”Ó‡_€=13÷ÏNôgßh4;D¬—Æó "O6ZNƒ1¿Wp^]íEòŽœ”ãe÷@É9îp¢KÂ{-3RΜ=Ïã54îñ§*Dü)@;*ùfw¾TÒÕ¡EmìTCßGä«íyDúˆ{@d"‚_ ëÝeœu€Í°áwËßgL„c¤LqÿH€8M]WÃm®<˜'¿úmH^½”ÔaÜuøK¨éÉ#-Ë—/“¢3ErôGÇŽQc$"2|Bfº]Oogù°\™šF:::Š1×[µj-zç`O¯á9'·ìGg!…‚>Šçbcô£Èœ×^ñø3þ|ô [¢ûXxÐ@Þºu«ß8§…Îñ#çƒ4Ñ(ÿ.ÿ„lÉÙ+s§?-µÒR}2Z/˜Õ¼Ü.thb)§‡9V8œz÷Ô]JA{èСÞxˆè0@àƒ&8ËÎq¹#@Xh0æ;t6Á6ˆ8©Ê¨Q£¼¶Ôáð#“)S¦xºœ|ág&ŽÊAóÿ‡½s²ª:ïø–Á0€JQÓZAD A@-E£V ˆTÁÚêòQ­V­¨Ä‚‚ >«PQ*­±Éàóý@ŠÊ#‘”GŒP5µ¦F!˜¦8ÌØýÛíosÏœ™;3wæNöÇ:ëž{æœý:‡»ÿûþß÷5Ú¢o‹ÖŸGƒ}¼­X½ÖÍž÷„ûÇ›'ºn•hë͸‹-€m¶ÿÑu\¯ ¥ag$‹•¤¢‹“äÀ,Ö;¯•Ÿz݆¶]åQ/çð)­ûb T·4ñÔ¡ïb1h“÷l‡Å@ÊÂ'?èísÕëS€ç> ?V°èL.w%zR» !iþ¥óã KñlóN÷ý…?v¿ÚºÙ?j°:äˆz½m»›ñ½eþ5ïnzr Mº’ü)nÿŽ6Ý;¬º£ûÿ‘ydo7í¡%®ƒÞÔ‰Ž½‚ Ø”äÂÂæ‡1ÙS†X †Sëˆcì'“hÕìi×Ú¿Q.²éÝ)?TΡ-,ªwìruüán̰¾ÔÊ/g‹…1 î½_ü¯›ûÜ*7ìÐýݨ#{9©©Üw“Pg·{cå݇¿øÈ3PÆñæª3%MÔ<ˆÓ<Â8CÌœròI0ã^Öx štŽÊc,ÖWó‡Íj¿kN’d…ïY½ëÝ€öòeKÝäIÝ;ïl܆òGŒå>«®v>Œ%l¾@5 fpé8g f.¢-´3Ì÷O/Xâ}òEW5÷V×­kÛ»e¼…N·™'™Ñ•äPúÿ#Fróá—ÑLJˆÏ±Âø{YÒQa.ôÚœÏÅ0ù &€ïƒKé‘ëØvE0ÏŽ{§U¿¨:ÎaÌŸÔÁwþÞ4I˜¢µpw­Å¢¥bìÖ°ëåPiujÚHkÎfœ‚Ò¨ùu¤Êè…aWùö›2«ZI ÌeÃ^ÀÀ^ ±‘¤E,†ý¡ìÙ³§4h»à‚ ë0ï‡5׿Ú@Ù{¥¨ÎL«m¥FDÁ¡oÎ øÎ8~’ð`†þ+•ÜÎ]ÕÎûÑ{0ð å¡E±“å :¸Ã5f\+Ú1éU„:4æú" Na™k®Õ8²PÐ~*Í·êѾ=†é¹ “L¨K@êY-‹{(Jn娗º¶æ®WóŠ¾Û³(ùÝDïÃn3mZ µó ›æ brþѹY2Q}æƒv~çü¿oO諭ÿ½PžÀ6˜8p;Ä¿â¥;¼ ¤ŽÎ¥ûÖXì5²AžT{ÐŒC®Úd¥6Ærû z˜óðñ²·} )Ž@vrngþÄ‘UÇ«ªªt¿ ¾ôº7Z 1DzYò·÷©¹'âE©L”É4é~ý˜þ$»Á&ÖœO똣 `F¾"–œ$-ìÊÅ|ÔÃÀšÃ` iKÒÂßõC)ɵ”Á"DHõƒsSûl ËÔîˆE€ñùÑd>ØõûnŸýzºÎ]»Ù}>õöîÀ"åú+´Ç™ØËW>F§ÞŽÂ3Æ?ûs?s4¼ùuiMQÞ-w]Io¸\ù[膚€u³¡$3v,Í>Ç_¸ƒ{÷†Ñüé\ÎÒõúT‰sR5ë³Ð±bz|vlßáI }ÝàÁCüÜôV­0^ãÜeã¯tS§ÍpW=â%;ÍŒöŠ ²ó¡¶Tô¤‰|wõò ú·þ¶]züY3ïòíó2£Žû¸>ÜüÍc\·^‡þµl9™¯éÑ¿oúŸOÜÛlEŽ‚¥U:Å ÈXd°•¿E‹†s6ò0€ˆ±ÍhÜ € 7÷H4½¯¹aæ¬Ù{èjä¡\™X@e–aëH_“>V”Ñ6œ0'Mžâ&|û÷î;ÿéÃ*.ñQÒ¹Õ«Vùylûå–ÍnÛ§Ûܧ~cnƒifŒ`¸¤¤æåºLÙB¦y\†¤'ç:ø:¿mÑ"p–kÖ“Ö½¢˜tG˜Id'„`Œ¥9 ^ôxªsL Œ9œè5„´ºì²Ë²Àšó pWÈ,µArê@‡—%iÉû¡TŠ õÙ÷¿ƒÛ§sG×£]'ïDô‡ráÃ-Û\‡½¶ºý}´ÙÎÏþÏý׆ºŸ­_áúñ-wây‰~Ðf~À߰Ȩö޳¿üõgnûç»Ê^ã-ZÍž< ŸøˆI;´÷yøjSŒ»¶Ö0ß’¹´:ŠykëÖ-~¿ëåõêý½síEw©Ÿç6¸O¶~ú ÃÚjJD¸D‹á P’º¨äñô~šE̺¦ˆòòÛU„e•[W_’ílÍá SãÉf÷-kމÅXšùn%-Jx·’…ƒk.­Ì8‘b,I Q8£.F@m‘¤gšVàÞ6XÅóí°·3ÿ‘ûÑÆÛÔ-‚÷J¿(íóõ¯º{¬Ì•y8ÈÚOþµàž—ô§Uú Ú}:à¼_¿þ®â° "¥…¿é»e[^ØÑüë£EçÔ¬,aö¸6v¿®ø§éó²ËKÕ—Û®4 U= aWU·ö³€»);×’íJz‚ïœZ¼¤0*æ<)iáLjpV)I `I‹Xs7@vGБ#GJÒ‚ç<̹bÙjÌ$iQÖÓ"$-yÎ9ųèz“À¾¢ÞøÔ×$a ΰo¾ù&Ñj)ÉXP†ï_¥ëÕ³—4p€ëtüwÈ€¡®z›DqËÕ¡Žî°¯;÷Š]ÿ¡ÇºÕÛxÙØÖt~J:¦ý6aÑbd™N•íÝá}͸oW9"–Y2Â麗œhÅ-4›Åâ·s1•vÐúz„¢Á ˜hQ*c[€ŠMîg9Íe×€òòÛ…Õçµ³Y43xŽå·¹ñ–%i|fJZHRx€*J‹HqÛ-fI Þ焃ÚK’•™(-Í.iÉgÔÓ,:íUö:¾‹AÁ€Î¢eåÊ•èñi燰07n\xƒ0pà@úïÇÁ'²hWá>÷Τ´–„!ß5Õ}ôQî;ÿ:ÏÇ÷Ý߇ ÛæÇhÿ2íÑ¢EŸ£U@„”ëbÛÎCÃi‡EÈ”(ãhŒ†\,<Ϋ¿Ùù¹œê€X´(•Qð}XÖéÓ§»ÇÇ ±¬!áÍš5k|ZÞï:7€Ÿë®»ÎÆÿ¶^É€Ç-#R99P1DùNêÞÑ£G䟧6þª€!ç'5Ä ½ûî»I@#n)1½É4& ©r,Ûl³»q=Ì0I£Á¹rêÔ©T…(Ô«±(aΜ9ôU Ðf³ÞÙª[IÐ|ü’YG3%-˜$lµ!Ã/­À²┤…×v€r±äVÒ`û͸dˆû‹#( $iéÝ»7ã`ÕØ%%-8!iir`^'‹Î¦vÐN´øŒ d°èt,”Áý¡ïdH=묳ÜСCY¸ç=ÄÀ•)>|u5q‡C°0!ÃéüùU>Ûßñ®Òß™®+£m­]ï-Z4E=ñŸ{¢¡\¥2ÌÝü¼ú‘Ÿ–¼¾Ð1ä(æ€Fô'š/¿æÍU;tð˜¤c]Z©L´È¸ 4ÂÌ.\¸p" `D:Rãb8 4 X³%e0°˜Úè„™eŸ¿ñ‰­ç²ö-˜å:úó©ä€PöaJo»í6™êSøÁˆW{Uî¦M›ª¤Ðga@æMÀ|Ü÷Ýw² ¢šXoí¤…º ²àD:!žêêÕ«Üí¢P\u¿É{»½«ìØÙÇnŸ½YTPà3N+iQHE³#ƒ)ì0‰È¢sLÿ$i¡M´§¤……R®¤Å2îųçÅkÑÅ¢ó,p¾Xt²ÕákYt¾+¹`€~ÆgÀ¢³Ï81&ôI±ƒ ÆÐo“x¤Cz‘°ˆ ª§œ¤@ÛC’“ !©ÿe/1Z´ˆÊä§’ök*7ùù¨Ä'gñ6a_"€‡lìÓçPÆØÌ‡¥µh1ªLŠ¡¶@ÍmÎÈ&K×c=â˜> ²ja«Å‹»GyÄvÚinìØ±)Ý;à‰ÁpÏ;7h­/ºè"€±»9Ÿs›<{öl‡]sÍ5®{÷îã4W¬Xˆ‡:Ÿ~úi€*Œ?,½À5ma@ú_Ê …h'çž{.×úpO?I~ÆŒcYe˜fÞ CÿN8ÀC€ -çòf‚úXìp ©ùu$f(ÏÛÆBݱ3¤ª÷×¾å6®û‘›>e’ûùûï<猋À¹Rò‡zO<ñDÞ8>aŽ‘´Pµ€)$i¡ßY’íëÚúóR°è6I‹L$?)]cĽEÞƒƒì9çœÃ3I’&îuA]Ùïlÿ13†)Gaë[£’´ò:^Þ-ZÌ…Q®¦,¢Ì‘s›â{7Þ¢‰$0c¬%·h¸‹y…ÉÅ΀R¨˜á[n¹Åa€Øùóç|æ™gºxÀþù¼/_¾<€£|öš•) 'ç .© †=tâìBªÀ>˜¥K—zíðѰ™dô"b `=µ»îºË=ú製ñÆÝ!eï…^Xc?,*–-[˜Ù¼V­ZÚ{É%—bÚ´iŠ ®O%… Fê¦_€<lâŒ)Ð¥—^ê^yå÷ÜsÏÁðv÷ÔSOEjÄpÉx…tÇC† Q’+¹aŒÎåzŽ{¶¶6ÉÖÿÞàºv邤½9 ”û!IKç˜aýçô¡xIK>8/‹Ž‰E”À®dŒ‰d.°è$i‹žŒûÎ5™,z¾Ä'?v®¾G‹-Z êÛE®AV°5½ô'†PÖÜÕr¿ýÑbT @ïx¯ÕÕq4Õh¤Ï2¡3f¸;ï¼Ó]}õÕœ Éž]ìn¸öå—_¦\€3L8À]`Mu°jü  ¶ô‰'ž`s-@ xG· óüƒàæ¹m àh#{xsö@ DN˜SßÕ·$ëríµ×‰É‚ ÆåôÓO'cfé¼úê«¡ ëׯ'>9ºx˜}â•ó&–WÚ÷THF-°µ0ø,nŽþ§î½Ÿov//YãæÎºÉí÷{ň'%-\WÒ(-ÅÿÀå³èŒ,ú† éÜ+d@Ü/üÄ¢#Õ‚=çpaÑYÀøU/,:ãÄød±è›œñ(K‹-Z4Í VÆÑto£“ª%z4Ö¥*-2î€@ òXr@8r À(L§óò$0¡°Â0Ú×"7¡<éÜgIãZÊCC“ 8ã@S€3,¼ÕXëz6 y m‚ñ~衇èòÂúÔÑzÚaÐY,ÀŽf:ËôdІ)S¦i/õP.,>ãEû(?œƒ™ÿÐ…â‹%GSoÎE—è™çÕkÝ¿­|‹¾S_ £´4^î‚å±èŒ9‹,„bÑÑ`¢KócNd.È]`ÔqšE¤þKòýáy³,ºýÌNûßö-Z´hdbÍ #ß-w-Lr9“"{“‰åob“¥ã¶úítlÙlÈõZ@P.u'Sÿ=3~;`ƒ©5j€¶ÜÊÄ>(J àPrn¾ùæÀöbH9è+`^‘xdŒÚVÍgMp(êà‰&óEmÿ=Å8æÈ5°t}O±è<Šz£¾sBY€».íeß¾}ñ@âXôƒ:-z1,zèÑ¢E‹-Z©ð@z‘X‚0È1d*‘eNe4 Œ¦-Z+Î}þùça¹S’ «©¶³ ™ á1Àß³Ï>«Tù¯Ñf#Ñ }ìḊ¤#Ì# ïˆ#ÜÙgŸ ðcúðÒK/'ØBc ûKtµ¦ø¦›n☤3HvÐÛ‡ºï½÷^éÙÕ6µ;õPë`_ ?*ÚUØll-žcY,:÷™ m¶,:€œ±!ô¢Xt˜u±è8ÓâD{ì±Ç¢£E‹®r,‹ŽœÉÞ“,-z€ôhÑ¢E‹­øp Vj«ï2…¨6„¡æiëófËñU°mÿ®²¤P›ê !aO×7ôÛrE,ªC8ÍžŸU†ð‡=^Ÿ2²Î³ä-÷É–Ñ Æ]%i›•Sá"¯8h¤ñ6«ó3w>mq†E»~ÿý÷£ Ç‘½¸´ò3›ê!„™Gnqûí·»n¸r…ĈGâ‚#+,/ r6Îá8¬/4ÙÿÔàÝqÇhå‰ÞØ ñìÏ;ï<fê²x¡Ý0ÆDÁ'æŸx÷ľ êÁN.ZzŜɢÌÒ­“',:ÎÁbÑ×®]KìxŽs,:¹hýqfLÈ® ‹ÎßT—"ºvÓj0 ýà÷¶!Z´hÑ"+ÊÖô h[m¥[‹,¶²õ '1o똮虠«g° )"(_~càƒì1É/¯©æödä¾Ì:*ê§fHŽwCÊÈ;Oddn¿ÕòT£ˆÈ^›ä<ꤒ(áTŠ‘I“ÂÅ4dçÍ›Ç9€Ó°Ë/¿Ü’»âŠ+ÜÝUW]¥:qBEoÎ ÇÁæ:Dý¸çž{£HHG€#‘W$¥á“h1t-<Ž¡Z8 §MèÏÑE£u3ÎÛ¢ÁÀ ÓvÚMbùÕWœNíƒ {ŸDTÄR¸>’–q õ`€Õ×^{ñƒi§-DÀ‡±É·–gÑi·ŒvãªdNo¼ñ,:Ò ±è!™Ó Aƒph†EÇa˜¾"+É¢³ÁÌ[fÁ>ÐM›´)Z´hÑ"h×üÆœÔtšì¨iWheŽ•¼«|æP| !! ÌE ÉÅ|K HFðø†2¸ÁVý 8†®§Û§TBKa¢ö¡hxæ™gx“Žª!·O>ù¤®±$ ÆFu'“YB‚÷(ÃÖ+Œ*¶º S-RQ¸M3¸† '¬øPâƒIà‡€+‰‰Hù–,ÄÔF”àü=©Gcñú믃 ñ«T[Õ7Êã\Æ8àǪª*[—;`W²¸s/ëÄAí3˜K$ °”´¶šM ˜t>7‹H(€cW"©g]çi@õÀ•Áds@|âĉè¡a°‘œ0èÒ‘'^õr<0ó2®³ÙÅ_̲7—}tû°ò©WdõUf¤<´™¾¥V±'t’nÿQôð36l¶¬VË¢ÿP‹ÎÛXtd.hÑ9¦œ˜úÇw!9yÈТóÌð7-çm‡EÏß¶ÉbE‹YÔr¹j¿¤­.€ƒ¦›ƒbÄAæ@IEJ&e &[$© /MRÉ“O> Np؉¬ÇÏÜÀj—.]$Ђ¿¸Â5OÙ„–òá£n?²ààŸ6yòdÊ”LXy’x)™hÓlÈ^ð‹Õ£z­Çö7)÷Ie·ÅPJ€)E ÓV¢2¼jOŒ¾s³ó’gS¾½?¶oj8*Y—úÍbÅ ;þ9á s´SÖÒj™¨üá‡fˆEN#p.D†"&WH²»v_u²*„Õ&F9l-l¼€¥ÎOµSõ`&ó¥½™0Û²6µ)Ù×db Év,K¬Õ—ŽÛ•$㺰š&Š-Hæ³è:ÝjÑùΊ¶ëa„=gQ"‡eüÔ~Æ‚Õc‹n'¾¶rQÏ cÊÖºœp¢E‹’bä ÉßyiZËõwÊ‚<¢­yö§®Ç~¸/v×4‚ ‰fÉ(E«ë×ïP¢Á C4W8H£úSùw( ×Àf ~ܸq(ÀáœÑ£GBÁBDÖoA~Ü-xv ᮟzê©°P¹òÊ+!ëÀj` p Â8S6ªµeçAºB¤ Ð?gÎ0²bÚhå89€ „!ââ…^@Á€$âÐb=HFä¹ UNÔ 6!e±ˆ!š d¤êÛ0”ŽÏš5 åáÄ9n¥á{ÚcòÛ#š¢ÚDù¼´ ™†"‘u«.T!Œ9Ïc„ï%yˆP(²b㞣*`@ )£2À¶*,äœZh߆uDãN\x/rþfýYí³Ÿõ=Õvcy}MëÒ2£¬ïì'dz± Šõ°¡1-‹ÎybÑIVdYtd.H‘¸¦öœ£Xt´èbѵ@RD—ºXôß ‰‹}ý{õ¾ö5Á·¸E‹Á;àà­ï fQ nз_?柲Ï4 è"ÿÉÛoot‡>Ð øÆ7|ŠìW4K®[÷cÈ/|·^„KÖ‹ÔI”­!›!Tµ˜z®ãS„' ¹ïÌ™3¾(8.SX‡¹'`d*ªÀ<,2L1 BV $C䜠sÒ¤I€h¤"j$5´@Ë"© -À’œü?þµ’f”´‹±FæBô—ïø’Už¶R.¤#}æzBuã+IûÉÅCÿ¨Y 2ÝCº 9‰/"9‚h¿%†S˜Ë’ÒÈ»É囎ڀ:éؘðà$¥`0Õ…Ì ßN|Q›° Ç,­q/Þ¬\D™Ù‹’ƒX™ r•m5W¿{ö¥Æ„0‘Z80Þ)Ý=·Õ¢‹E À^ØsÂcòI6V±è˜Xt…½„™¯?‹®ïmÀR°Âáù€¯Xû|Ö´ ã-Z4éP+Üîßìr<€èÓçP··ð5¿kUßEùÞnËÖ_¹Í[–2±ÃJ–§\FcâÁÍvÏŠÒ…þ‡ pŸnÛ¥2W#ÿíïÞþéOМ'"¡”ܤ€xƒÄC?" —$˜R¤"Ùa½zõâ¸Í­ƒT ;(‚FÀ‰éÓ§£ÕŒø‹/¾È¢…ùPyiˆ®‹ qʹõÖ[ÜàÀ=‹IÊÃÀ†Z€ Á< ?~üx7vìXÈ\ˆC$8Œ³ú* }C6Šñ†˜äÀf›ëÙHÊX Ç o!.\Öaá€D™8Äq±Ïo%XD@fÓ7´ÿôEDw².=ÔÇÛ ´‡{$Ì–²xæWŒ¸ dµuõ-/+ ™6×f½ý­ÃFûöz»P«+ïþÕŽn/âó`‘ºˆE óÀŠEgEÇêS,:«TlVr ‡Ü²èö?u ¹hLš=tq7nr‡xp0舡 |)}c´hÑZêMʃ…ÍnØðoñ \óR½Ëvwù²Åè‚bQ)§ü r*ÚAyBæóÚy¤©ˆ–h~Lw:g°‹¶f Éñ¬O6 Æa³aÈ‘«ÀòBèAøÊ¥IÀ§ˆBþ‘›° è„ä/ ÉFâaeÏ"ÅòÑŒ(S=`ušz€-eÎIÔ™Á'ÿX,ƒþ6] êâí$N¦¨=8úÂpLÈH;¦j3m¤“ø§!÷Så1.,&èí“&ûÔÅâ'Y—®ÏÊÌkð—Ѹ7¡3O£õË:?¿¼òêÚ¬¤  XÇ*j¥'œ¿ë–½ÿŽ´èH^x•#}?,:‘€xðÅ¢óö™QŠEçÁ™ÇT¯Œº»Í5öêw!M~«Ö‹Ó.&>,âíyÔ04~æG!·ÏÙ~ù}ÎHÞ0É·âïžÓD©~qnMê¼hÑJÉ.ïܱ½v’ôŸá‰l pgëØ±“ˆÐÛmÚ¸¾œç„váÖÆ-;w“ÆwÓ´V½95îYŸê’Xqä&Ô û8QZ ùXÌ $ P‚;”í¯ÐükΦ(z” ñ'¬– :%ŸÆ®¿þz´ì0Îèë­Ï!‹|è,.܃w`ïa¢‘àD†ÂQ‹u|,aþ!,‘çÀv“OI þ–I²ÙÎÃ…°†ý›¶úbQŽ£cW9´ÉÖ—Y}¶e[@¯¶§÷hÍГZtm©‡ˆ—Xô0é«ýªmÉÒeîÝ÷~æžÿîLÎge‰3>,:`],:«èB,zÒ¡7éO Å×ëU_É£ÐúÆ>+q+ÊNÈÐò €vçÎ|Úû™Ê†k™ég½,ü~gv)‡ó’ 9ég&iï¾ô,CWÏ”„(>þØ^M|pÀ !ä`,¸ª#5VV~…g‰ç~ê¼hÑJÈ0gnõ4Mê_ðʃ‚öåüÆ×2†ˆ4ƒœ“:4ß„T*Ù`K<ö`x+½M9¬ °çyöÿìÝ ¼Ve•ð÷†̤pRkʬT oÙX™”‰Zæu¼ `•&jjeZyÉÓQ «Q$!D“.fi^2Â,Sì:“f:‘]t2L“tÖkzÛ}Ž9‰9/¿ï÷}çÛûÛûÝïÞ¬÷YÏzÖz{›q¯ÇÐUYp×Dˆ5l9Mz`’úoÕVü¬"£Á™š•UdAXÓô#Ê^·•P“0U_@-k¢¼õ”ï2ÅÝüúüXwï¾÷YÏ”wΰ­ÐÕYcîܹ®E˜+Cy¹gžå%sìûƒ•Ý(èIåi‡2Æ  öü¸¶Ÿÿì§Œ}ÙæuÛ•ß>×äV†ËñxÞÚËf¼^¹¾«Ç둈˜¬còç¸çŒÑœïΦi,/ -_ŽQ/毨/¯ûÂnìy½±­ RJ,Œ1cäža9æÏ¨l²É&aèék?ãÞßV»Ü|-3 óV±¨«ãžLï_K‚v@#I¶HîdFÓ<µR÷ѯÙßùv×Áeó¡C<}\ž#7ÎÓ7÷ÄNÀ2Vœmf³c]”ãÒÝUgò>©#ñجÉ"÷nÓM7U…ÄC’) L¾ˆ¶2ŘîiÓ¦™›”v,W^y% ­* NO2œ«~£ôw:ôó΋¨,cÇŽUöRâf¹ñÆËôéÓkŒ’š~/ÀßñåH @´õdšc ÓºS'¤œ®iGZwX„Þžv?U ®VžÊë–\K~ƒ\%5Òì›Çj9'Șºv}mäJ÷îZ¿Ï1î-žKë÷mŸÛÕý~mÉù}OWôê¶üX–Ä¢ó|±èn6€  ÓP:žHÈI¨ÇC*kú„­ÆïæÛ~Z&|ñe÷wîUÖèøKy"ŽçÁ|&-zÝ_YÜœ„d­Rá´dc 1{î¹´g¼¼Ú±icšQ„ËÜÖ66ù›¦ÇÊk·–¿$$ó¤þú-nÀƒ–d’×Ñ̇ðj®×ì_wZ«î{GH}{Ž™ ì'¡}à?–­·Ù&®í…˜èp¾†2Õu”ß6<Ö>˜â>• &N.÷WF0¾‹{ý@xëW•¿,~\4Ö±Ãk_³¼9B 3¯™¡Ðáeý`GNûÄIåèWö?`dœã¡”à4eXm×Ýe½jŸóy9çì3Ëó"é福ÑÎLúo0{²¥ü×=wG2Ôä˜0*8’3™ Šhý­¸K÷Î(åßϸ{O›¾Š0îÏ ã^Ù™ŽH8ü}Tù@ g݈ opJÛØ¥DT«m _Jë¼bV¿m^j=¾ã":N>é£e‡7/ŸýÜùA¦Üß;R™üÜÑ7÷Ì7”-4)iT³¶Ž…,56eÎð Ô7ÉÉ$=ǸÃ/¿Ló1ð*ù’4·h ¾€«(C_¯Š‹’MóÚH_lCfIqóÔÃI$?Øyçå€`éí$]ë¦OdÀ °á¿ÉgH Õ$¹bæ%ÈÒÀ“îd#1²o“×üÑiÌê:Áød$ÚusZà<×Ì91^”†ësYÀJƒ}T™Ñ'MªdßÄ'}•q×9‚:–¼z§ Ùd‘|eƒ 0,#×Àu%ÁÀJÞT³ö"sOÈÀ)åûsSóxm@\¢ƒúòJjÕuÕ«x9¾‡.ëÝ 9)4fÌרcПn%mIxY‹{¤,X¸ ¬·–} ~7ZtçäI /aö=T¼6ì6€¬ÿ³gÏÜkÀ›Ÿ…u¼|Nm| ìx‡¹°‚íYó¸ua¢”ùMeVµè;ÆÅ*k¼_^µ~¦D†AR£S¿5kÆjú” >kÓú­ãzÇxk ”óÕûê“cÙ×D“÷¾]wÞ=«×d©}ÿé³Ã!™ ]\^vÚyDŽo«®å÷ƒ­,ÈOË‘G†ö ÆÂ‹! Goë`®/¯œ!ÚÔ¡çµ¹öŒ&'טÎK²bJZ>㳨.yW¯¿ÎÝ=a4o+gœy6ãn,=O UùÄ©'s‚Eyi³?”=öÜ+*Üêœ2ü-oÕ‡¦®¯ï·þÖϸ·k“^g´Ic¾»«\<õ¢°wÇܵ$"rƒ‚´Ø6˜Þqæ{›“Ìa‹Ø]²ÑÈ'm*k„½þsàÀ5t¶)澎”à„í”Kùۘብs¦ß­á\¹°hg^sƒèÑ÷å¹î§±O9ÿ×ÎÆJѸ³Ý)]—lÕ’êsäöæPÏM$+ðB~—¸F^]þ&Ê´=µÞê”×ÃKkÙ–{9ç¶ó¶êÕIs´Ü®_5 oåvŸó¹ˆhîì{5#ƶÞpJ“äÒZššóÇw¼ªO€;,&ѾˆÚ¶sÁäB¹¶Þ|zô¨¯˜c¼E,0ÙÀ‘Ëôª‡éFª*„Áv‘ube½ðQ½UúÉUªƒ'wÒI'Ñl9~®Ô• §qûžeB½Ltî]¹OÍæ_ügYøð‚ò‚uÖ-[Æ8 ²¾{é\åþÙêí:þ‹Ã1ŠÑ"ÚV?;&½®»64‚» ?æÿÅò£÷Ìûõ=eqŒ½s}ëêo–õ¿(Æp»ˆæìPfÍœQf̸*¡朗vWTëoýÀÝ ùBKt´j­º«VëðjϾ¥Ÿ6éŠ+¾ïF)ÀÏ——†½`ï¯53aØ¿*®Ñîg;D{öV!²(€øêÏX~u×/ËÀxºÅа=/ÏJ6(,o‰¹çÞˆ®Û_‹8`—Ì•å—Aèýêî»ÈÍ’¶)UQK;ëU=½Å¸'¶ÈÅø§ìqå‘ Y¡®ŽÎw•;Õ–w×Äu‰Bãݦ6h+2Q/v™¤[s›ýs[öÛßÍó¶äºµ}Ðêk×*lRŸ£&g+;ÒmÞZóÜõq9JgÂ'HRä£h@#/¬õ\µTÎêë¾õ]©LÞÀšõ«kŠ ¿ ;xµ\BXhØê‹Oy‹p v@Ѫ%iiÌ3ÏÕUN  õ¡µŒ‡óÑk¥3À™hJKœ[) Ú£õÛZ¾Ñö0'ãÞUèÍç‡àhk©m7BAôbÀy1ý`pT¯™4iÃëÚ„:•aâÁ½Bcôjd@þ¦-S§T¨§®eëp² IÈÔd94sJ‰&î©å—‡®Ëï¸Kì²…ö¼”´Ò/Ò#Έû“rÙæ¼sZ>a7R çÇÚû]zº¾—¼Ã™HaI,¢œDãdÿÚ·ß“–ÉÏ=þÒ´KËVÛl]öÜkŸòÍo\Y¶Ýîõ€­ó/ [HcúXj IY¸`A0ñ‡—+®¼:¢RÿPOBBÕeÚ¥—Ä5üÈw¢6e细|eTyɆD‰»ïF„#²íÛÿkôÅõî¶ÛÛCÚrPj×K6cç8cßó^’÷niE‘1öŸŠPæo9>ÁììTv± Ǫl)ðíÊ-1ArÈXãWVpëoýŒ{W:6%·5KÚ§L8þW)©L¼õz…ö@‚ý]´ï¼ãåc?¥ ~Ñ`vÁ|[}÷XvÁBöWnŸ{k¹/òe B©8Ùï€òöw¼3˜ÚW†vù²°ñ³#B¾c¹#æ Gƒ86lˈäíSÞðÆ7±%åæïÍ)_þÊ´²¨“T‰9i»rĸ£ÍCÎ2„Iå÷¿û}\c§]?hÔÁåm;ï‚4ÉÕÇÝÛ^îì"bB©‚ÐB0¥=}[{bhûÂZÛ~ZÏ¥ÂÝïï|=?Wû¶ìwOÏ[Ýx¶‹b¶»ýúz’§©ú Ò˜=AVÖDfóž5Ç#·Ã-­ûè«Æ7ÁT}ÓüÍü±Û´AŒ±„ @ð#E Èmò7’Ô2Õ€NàÐ9ÒHcËCX‰lÆ’¿Ž‹¥eèiìºåóŒ3Ô%%Õ±¢€k¹`@Þ¹­ÆeÕ«ÔŠyo–{ì.ŒÖë <Æ€üDÿÈô‡QIO³é¥c·«mÀ4`Gª"Ù‚T…1z1ÔL0&’'€øÚH$³Mª„U7&öǸ؟¶MăDÆ6Ì:€­¯yÿU+¶ؤ2"1î ý˜0’ç@”„¡Ä¸Óî‹npèÉüç! òÛì¿v饗’1éa™0a‚ç3¯î­ë7îmw•vÜ¥¦†6Š>ÿ°¼s=ˈÍNœ“Éï÷¿l/­Ëðþ“ÉÜp4™üsÑŒi¼°ëÖêúë® §æÎò±žRÞ²ÓN1®3ʔɓ°Råð#ÞO—^¾}Ãuq¿R¶ ©ÍMsf—¹1¾mì£c’Åž‰Fä³ü‡ûî'µ––<[–Ä÷Æ„eì9_±“{²²‰û[?poþö-H€ß¥}ÉýR¢)¡š}³½:ΪÓ2ÙÖ§ÞkŸŽ°yK–À³º¦Z²Ë{+ß Råý1O¾±¬äÑe_ýrùÚå—Å µ›[¥VžLùc°ñ¶ŸuÖ§ËòãrÆ'ÿ%´Â—”]w{{·÷eÓ×lVŽ?ᣑ¤ÿHÌ-ÓœG °áÓ™ÓÈšT^²Ô‹Ä_3㪈¿ZÄ0¯½~-Gékìh'¹ôÂxf´óÏŸÀV¿´ÖŠkï±äEë¹TfÙ‹|hÍmZƒ]n2ÌM7¿{¦bmû=Ûb%M†{YÛdåŸë ulˆ93#ðIж]Kw÷¶¹½ojÜ“YÇ¢w “´zíZôeÓY.ãxÑ¢s&È…/à å%û_Œ½æ-úÌ Ú~ûíe:g2 #è8ö£Û—õ ȉT4õoœ±e̼ӯqtŒ™cŠè¦"«É¤qÈúóú {ìE1H©wá¤\M¹*ï’lœc Lbà­Ä–R!,¿¬v}–ü!’ Á¹Éìî¦ÒªûTU б¾ó\^õêׄtêÅ1~o¾ ü‡p¶¨ïe¾êOÓ¹¯R˜_†ÌfÿýöÊh V§|æ³çgWö£<ŸÆ**”ÿˆ„1,I¹¯78¶Ýj2-ëG„jô˜ƒõ»5Obñ¢ÅµfÔçríu3ˎÇǤxuèï·7qѶ‡µO:Ú™SPM+¯õ·~{ ÿvæé"`>³ÈE³;sêiÿzÔcUFbƒV9{©Ödèåy›¦½Ó>„3ÿXØ•ª%ëÀvbÌ ʽa£—Ä|¾Ù¦›cæËƒ1Ǭ> ÿAªíÅö,üéØvrN96î—¹$¤8óË¿œþÞòDܯW¨Þ¡$ƒærkÔ(Ï{+óиçoí¿5™f}ncÛ®Ãù`ü>#»é”ô8Øñ\·f\V@¹âI[ß׸SÀ¦–@°B'MVÑ û’´dÃxWÉ ÈúïÖ*¾K `Ôdúyüú²,'ÔÔßg_´ªårŒE¯hÜìåêeÍ™Í}]×,Ú€‰vÍ®Ÿqò{×*œ,àJu¯ü^™)£f$9&É -F¿*m2w¯$ÙÞ~ûm4Å–Õb¿ÿGeï½÷-/„Ê’’-ÓúÒçµÃøåê«ÇXçæ`À0ñûÔnº†cù`9j´ÅcŠf<0?Þ[ã%Áòç/8¿Lž4QãZ3!½yž*åŽ;Q†„–^NBgr÷@g™ô…©Bâåá…Žß¹øÒ¼y¿]þBßôõ+´÷·~ƽxut½¾Â…“§–£ÆÑÓYØör‰/Ç}ðÃìF­_Õ4îÆä9‰ ØÔ!ñúNÔJGhÖsÇ„³IÀíøñ甑*‰ñFÞ<úè#åàÑJØ.JŸ"íhy«ÊéJVz -ýÚì5ÛóôËÝËbó•´_Ù8Ö™8ö¸•mþu: O›€RáoÌçòw ãË—¸¶SÈᒃǞöH­?wÞ=¯üüŽ»ËȽw-k)ÎÐêjF!7mM66©˜‡Ä” Vw¤œòÏ T óTv¡Lhæ‡Ø—UIFÍMV^•cxòÉ'#륳–`Ž ÷›Ü¯N.Õ'sjw `Ÿ†É4Quû)f‘L½È¸J-Žá¼MYPž+ÆTÀ®]£:¨$,~Û­ì'÷µ_óšëkk2î~W§…¢ÃV¹Ïï–¡õ]ƽð¼ðWª è2ñ4=°Áì&Y£¹Íw 2É.œ3½I ðlc…õ§¾ñÀQíÝõ©FŽeÝšÓE -¢·¿¿/vÛpš!ðN²‚Å7>uÕRŸ­" í8y ’$^Qq’ z·Ï‚íŒ<A% ,Ûù9ú‹Õ7ûê‡þbÔGŽiâ ƒÉj5®¹Œ7ŽÖžƒ†¥gÜå>H°¥y—ÈšwÞ~{¸³»<Åh,5¤³f]Cc±Gùü–K.žRn›ûòkH¹‹ôLá}ÿ\“04ƨàÀ[Bø^Ú# í¬`üiH‡ÅÔ_;s§I¢X¹úªo†Q¿UÍwÌ”{$L›·dËäàŠ(Õ!‰ºùk¹I:ûaóÁ¾ ¡—'¯‰p÷ú³Â÷þÖÜýÓ¼çwµ-ä¤)SÍñ|‰JùþÍ7˜þ`ØúNöýÑpø‘$@ûu!;Å’## u©ëî—úŶ-*¿rczõ2qÂyeôÁ‡8oùÞMsÊûB7?(¤»…m½búåH޲ÁFX_„< ÂdóX€a˜"ÀÙrhÜ;*ççÝcßɯcÊׯ˜+e~ºüöÞ{³·Ju—Ke¾>kNYòµo•œpbYwA¹­Ëù<£Ä$§ÍH©–¶W 6>çgŸ}§™ÛôUþ_‘ü&ÙÄöÏÒ‡5èõÞ”¹jó©”ðÌ$pOl×JÌÚ¦‚`æŸó$Ñpá9眓•›  ^yNïM ”†÷îró÷mÇo®žÚ”,µ§ÏË1/öa» «Au]Ž(÷ÉÏDé±ÝHÛ%…¸¡¹ŸW3ñµ¹Í÷ØRÛyD2Kh…!ÒêcÕ ~ztóæÍË…–1 Òûw-A/ Ûd‹|—}h}Ê$u¶€;Í>;o—öcÔņ…±)äI#FŒ¨«4Xo’#Û1œ·Œ5Êç¬/ü– ½yÝÀ°}O>™î\@7yޱ§w?\™Œè€Ê5Ž¡Þ¿>f)LNÃCî£_>cü.™önõfÍÆ«.AꞨe¼ßþ#£<âàÚÓŽÊ.»•Ï}æS˜wÛý²$.× Œ‚D§ú˜Ø"åÐGß0Pº“†ãb{¼ÛÏ>´¥‹ÃXˆó¬Ö±šÒl¡»œÈÈ`ÓË1>žåÍBÂ#ùÔ“?Ž) vj»2î¨cŒs^_Ükó–rÑ&;ó³²q£N® ²rT9IÁÈü€-Ãw|kôgqßÓ·÷·þ:;«©Òôÿ«Ž{ïF TAc[÷Ú{/½L8ïslAÌ%Ap`Ø€æW/ãŽ<ºLûâ%‘»vÛLì¾eóÍ6·¸[O±…ìÅR‰]§m[gРغœÇñ6*c,OštA9þÃdžÍ[3lí$3ôáÁæ&ʼnúÜç›·ÌM Èóñû2äÅC/H, ¹»‹5dÝrL´„NI§éÝ»Æ yÈIS2D”Ûrßæ «÷óÎ;¯Þ?£äMÝ÷ÜîU{»Bsî·í~‹iàœé;ÇÀË6H.Ú$7â<)‘)ZöÏB^Xøz¥Ó'IÌZŽYcì[_–þW•â̳>E¢’!º’MÏ:g¼ã…´è°¥Ñ¡ßDþE'x ­­û¨ŠÌ›vx3í¹ûR¯C`Öp¬¾ºTþ²0ŒÖ…KÙ¬Gì§üY€õ¿-N–×ÏPcÞ9ôÝRõ/Ç'÷m.ºFq½˜`ÿ9*Ñ\2´Í$ÝêO3¬)\U"¾$úø¾“ê^®ØÖßú›üŒl-¡ïÌwé>Q¬cU’ʬfLž#Ý<¢ARæ Ò–½Ã^<•÷Òæ1ö¶ }†×6·Œyסì嘴…úá:÷÷;ª÷E~‚¦ZÌ'NûdÎlWÎ=ª\…];¤8r´{Yog'CÚw±ï×9—cnf;8 >Çñ(OYö ÜÜÃæ^@³'÷Žè»9£#ú´z8 9ßvÜóÚº|68BKu¸î>Ã;rÜ€V¸p‡]`rxy©"‹#– Ó*§0à©´ «ÈÄ‹Zû^ÎYX‚¤†Ò'ãK%yØÆñÞ p‘‡$d©h¼rÕò Œ§Ÿ~ºó¹…GȉäáéST%šž8ÈwÆži²çZª<¬y‚ÔEMa*d¢2Õ$‘Š€¨¸—‘~…KšãIÂT—$÷úûfÜÓ€ò¬ Lþ BMm‡Ï@rjš%H*óÌi<°×ö¡çMCáyù[ëå3ÐMS™†çƃÒ¬./ÊÏ%h«pßå„ œ ‰Á©ub+ƒqozæmÍ âë$¢zŸtõ±êR¥ºm ïÚöÏ1ÌmÝý>µíuȉsA¾ÈÒá{R§ZÆd¿mö¯«>y5Ç&·÷dåTûb~ºZÐŶÚí<ÔÆ¹yïÒùi½—Ùþ¯^uö¹Šfäx:U&ð5ûZWÚ/X³E-Â|ç6™•Åš,'Ø[X…~¾ïÉdú[?ãÞ^å"¿[…÷'ýUÛÔ^¿¦´-4sÒ’pŸv©îG~nÚÂü®ÉNæ*Ùm÷ÇñÒ®7ç­V»þl›ñÌ&Êà‚š?_•.dT½Šø ]9µn¢¨ª§¨æIÄ 0 h“6%â㧞zªMr ¦µäE«eÁ0¢Te/¥šÓÉ‚Ÿ‘K–ºrútøHÖNAŒ¦¦«J*­€àöÀY9Np­!å¦L™’ é0Ÿˆ@Ê|8VH^RX3ïUW÷ †2@xb ]¿«ˆ½1È¢° ïEó‘‡õx¦µ„ÔëïXãÞ}ýÑúûdj3´âð ýûÞCéæ´Õ„o#?gXŠ·†q§Ë1Á™È×ö 5YuÀ±6RÿÃÞ}…HR…QsÆœ³øæœ(ÑaPDQPQñIÔÅ𠃈(‚¢ˆ Æ‘ÔyðÁõIñE…*Š1æ°_ÃÁË¥¶¨aÚíݦÎRTuÝêêª{·«Ï=sþÿŸ1êü­mûWXÚ¿BI ›Úº_V§÷§äÿôô´I“±ñ`ðe(Aa¹ª ÔçìÐg-JSU¯¡ÊZÓë <4µµ·K}Õ4¶!ä–Æ6¨& ª®Æª¶¢¤Œ Ò¾|û긑¢GŸÇ½kºµj{b<ó¸w# ‹È¹ýwÛoJ½Ïëægaû³­+¨«µz„Ï5‘çZȃÄ"‚´Ü,/ì°& Hæs M®¯ähˆ5k¯ÔÑIB¾PóNŸ!á‰þCöÙhÙ°REÜûñF¤½˜­>PÝŸ¶ ¬¶Ä½&U:¤m¿íø•Í(Y1ø®¨ˆÔñ”·¯‹ åõvf{ÎiFÊeP>°çÔ³ÿÀëÂ7lôÐß",.Æœ—"Ù7ÿ½¶<˜þG¬ðf_…‡¦¶.ç­Uð.×Y·A]mÒRÿ6þøF™©[ÅУ'îÝÔ̯1K™{ÚŸ-AÕÞúüéòl³niïtþá÷N3*„t‚ì|ì*8 5´5Œ…z9±19ž§×ýžÉ%\ˆ—Ûþ6;t¶›¸X“èÙª`£86™sc|U1–U¶æe±¿RúUr7©aíá—/ù]IÚõƒbŸì7Ö¸%¢/¨¶œ Õ÷a­­©?m¸ñ\›q±À”*{:tAŠAŠ?IXî«•ÐÑ Gf²R²G!Š(ãÎ?ÆOÎæ+aÜœ\‰P·âaÍêÚjÝ7=zâîßø H˜Ì*=ÝŸ vÎËUQ å-g#A8 “PÛ2saéÒ¥¬5\¼ïTú¤ÇÎñ€ÈËxÝý\…s¨¬'øXë÷³ÞFfÙ“% Á­' ¼øÔnm³³³ì'ò <èÔv¶±ìÍmNý®™‘W†ýE,{*cԤͤÚ ílšlz®§FD^ýé:ùâÓŸîUApêˆQæÕÔYy]ÏÐ:"A.È¡jÌñi†œ:þˆ‡Y÷ )Ç;–<ØbXhR¦¿¿!{yñßÿ™´õèÑcԙɤ`¬KáeÊñšQ©Ç)8uHžýµ‚_2[: ­†‰¥…4¯³¿5°¯Pˆ)ÔCAæ•XBðTž%$öª´û³ØAëÄ“ÍḬ̀ »2¼±Ƕj_ŽËûBZ)×Ü ¬ÍŽ#–JîAx KõY~ö³R0Q-B Ôu>zYeÜÓää$»ÿ=7Æ £KÀž±£ÖËPÇv+û‹dÎëzʘ»‚KíׇDbm®yjjj%ˆ}›p(P™·¾èOV™²èä§.²¼¬¡ø•‘èí_ÒîrpjrB”E|I,[K%Wm¬PÃ@¶•6Ü`böÅç–g9Q.âÞÒ£Çȉj–5¬Ë¥3¨~ ©}üÑû/YBñtI Ð÷áYƒ «.m f^yÁ©©é26oÙ²eeÜŸ÷àX@.SqçG<ùÄÕ¼Iw>1„8ñL–*~‚DÅš$✠bÑ%DUjg™ëL ùCšlĽŒ™ ¢ hMßÄ&»OŠÍÏÏS³dŸ•5§œŠ_~)àe¬‘Jï~Â_?F-—ö‘êïúL~$2!ðÚÖ—9¿TÈeCÊÙvšú3÷²øtÿ²w%@V\UôÞ™†‘D‰b„DE Æ0&¢‰Åš˜DE ”bMÂ-PD+P($¨@)KATVY4*D¶ b˜Á°Ž€Š€D2 *¢*Âóô)nùêÿšåCS–{¨®ùÝýúõBõ»÷ݾç\I¸çS‘3ZJ@”ó„D(eš@&¡1N'ênò‡×'3i”*/ßn:ëy†Ãá“zpŸ¨Í^^ö2'øWðÞ³FÁ[áT@y‚Ç×ïˆ{ ©*šM£Ôljô¸SÊ‘a5 ùޏ›3žÝ_6×϶e’wØi&ÛÆh¬› sç'NœÈp(¹Ðñ‡Ú[,±G£ãŠêT¡Á~«lnï·eÜSæûm×eëŒhÛñpÔ)\« ì^âl 8Óœ„@ʘšòÖ°6œ˜D9úç$EU³úWÕÚ>OöÿLŽüGܘÆ\9{ñPð€DUðL“=•¨¸©Á¨s†]YùZĘÏ7wÞ‹nï@u#[Ï}dY}õ,…¦ú†‹¨ºÜ÷Ѥ¨Pv½²CÞÝîVŽWJåk?‹Ó5/n†´ŽëjªŠY…J^j÷D²ÔZbµ¼Ø®N>“ùæ¨{B©GÔÂaŠ òÅ«R‹û2G–6KU¯îùÅŽ¼­³/û+Ú>U­êÿÏÞwÓž·öYÒ©Ö§d§Êæþ<eÄÝ#îŽ8M†ŸîS9!1%ž™+g,ð«¾Âák’"á"r—ïŒõÛ¹Te;¬°¾Ú2Ť ý÷ø]àí·}Õö™½/û>ÌîÂi¯bBRíyl‰e»sá£Åmxl„Ì(xï;óâkÈŽügŸÏÚäò<µªŒÃa³[:æeee”_RUÓ…e.È'\u¿jç:ølŽ¥a8í‡#6Úõ^æWU¸ÏT™¿ŸšT®Û]z Š…UDw3$IØ÷ŠÑiT·¼êÔe9ã1¯³•ólÚ•L’yýM¶þsމ¯#oïˆý¾ÆpÇÝá0 ~ÏbÒM$ã Ú΂ ”€bÆ*mBƒ…Ãá¨Ïïxf17#zÍ‘d« ™-í´#/œ¤Î9sæ0ÚŽœê´E#Uf9¢&Ò‹päÎÝÈ.ÚRkü<âsÔ¦Ÿ¼ð÷ò î¸;¼0ÁȰaÃhœ É”^HR9}útãR|q8Žì/„t2‘”þXè_gªsÚùÜ!žÀèôôéÓY0èñÇ ¥ã`1)C*š p!¹^sçÎejç™3g¨Ù>a¦ìØj nE…÷2e—¹Ø~ÊHLEa'J¢ŸLõ·øšâÚ81¹ÔÎáé¦NNurj=½ï˜ÀQëU$:ì¦ó ™&Ê2aPà⃂Ãáð±rIÎG«Nž‘6 +:ª+V¬]»vɨQ£’/Ã,‹¤FNµüyp½X\ ฤȄcÇŽ PìÃáp8ŽkmÏT5À‰ pÚ×€â>î€jšBâE‹Jà_¶Ms¶ý"RÕ_. "‡ýû÷äÒL¸ ª7áÈ‘#Eh[ᜤ–T “&M ýû÷g;MJÿ‡1cÆ„íÛ·‡¡C‡†¾}û&ûxª©†'Ÿ|2 fJ@*jرcGÀD€ûQæ?Œ7.à«BxðÁÒ‚’í<Šoü/5Pê«$ël÷ì³Ï&¿ù̪‡£®ÑÊNòayc p$í `„š\ŠY厒Ê\¯¨¨fÍš9+m8‡Ã‘™ÃpÚYóðáÃLKŠ ‹nܸQg;QM•ïë……yô(ÄÔÑñãÇ[jN’›Î<û~ýúÉæÍ›2A$ž¶Ž8Û½úꫬªzèÐ!ÓÍ{Cº E@Œ2ËøŠmi··lÙÂcÑžUS±Ÿyô¸¦¤5ß*½,^ˆçþz÷î-@-$ué 9Üi§&úªU«dÈ!tÚ1°D%“kÓooÓ¦ I8/¿Ìê‰×ºxŠÃáp8Üi'A3vÚ‘ Bè<@§}Íš52zôhAtš¶ª@5mE«ÑDµ™ƒŽ(?+›–––²ÞI‚Ö­[KŸ>}`{¤¼´Ú¹sgÙºu« EF¦L™B{ ‡žý¢** ¯°©$ÖÞwß}¬ZŠ{fÕò{ï½7É™gû®]»Ò¡Ç„ ¹W’e÷íÛG9ÌÁƒÓ±Gº'Vé´Ž;îî¸;ªj:í+W®”Aƒ™ƒÍDjÉ©àF)¸Ö¤T‡Ãáp¸Ónê1t€g̘AöôÓO34oÞ<Ù°aƒŒ;–Î1ÙËDNI F]¼x± ‡N4òéeÚ´i,éŸi)Ü®ª<¿ÎwâÀ3Þ©S§Äѧ“¶Gd=qØ©BcíÚZ³Ñ™û°N)æ^½z‘ »lÙ2AšŒ 8Q~Lbx.;ÆáäT'§Öƒ{Ä,žä 4úÐCqÝH*ˆ¸ÇÕ\û&AõàÁƒŠA”Dœ4áp8·ÓXŒ´I¢&œ_Å—c’OGŽ© %ö$O¤€*ÒeÑi]ºt©£­HH›œJò'ŠÚµÙöX¤¶ÕŽ5› ~™Îž=[;vì¨øZÍ>ºu릓T(ãè-·ÜBò©ˆP@QtÞ7$˜“dÛÂQçu ·^á¬+œxE®¿bÒÂ>‘oÏç‚`“RœêäÔúDâÁ ðräß‘,£ªÜ."LtMm[.ÏΪ¨–š6AÕáp8#ƒÒ¶Ày¥8ÒaØðÔSO¤Ž8Â)&)'æM›ÂÂ… C‡ï þ{!é$5r*ÎÏßÈm')ò‘’DÙàŒ¨Úä°³-f‘º“IyýøRÀ{1•DR(Õ”ºvíZJáÔäÈ'ÇSbĈ´ç=zôHȦ$ÁöìÙ3@&’m¦C» =ù§?´jÕ* Ý& ¥†ûU5Ô G^#î¸[”ùè ö:å²P…Í¢züøqÊR¡].}rÁ€  ¨*Àˆ@ÜoZp8‡ÛjD¯)ùˆ”®_¿Þ$uæÌ™ "ªBIE¡©® hr 风„„1eS‹¸[tN±‚PÊkضmL"tçÎÚ²eKFÈgÍš¥HQá_(ÐÐÞ>üðÃ:yòdaUOœ8¡PÑ'žxB÷îÝKiIôÅö µ*”gøõÕxÙ&(Šœw>LTé:fwÙœm×®×q~öëa³ÝÕÑ÷L/ÀDµ— ÒdR0ÏÉP_¶|¹à"óOž<)‡Ì5ÿÄôI‚*&$ÃØst8‡#%F…ümª± >œ•D×­[Çi¨æ ø` !3°òȵžø Š>0 D•U{³²ËW‡Ãáp8‚Ù&ª  yä –KáÈ©“.  vƒ²Š­ß„@ÒÜ9shŸÎŸ?'T a“à¹Â.©‰5ÔXáÖœupÃ8€*‹Ù·X’1Ȳ±ãÎíXÌFrýÅëæø›CÍýöÛ*¦b±k±¿\âsZ{»ìËÃDD¯z’B]]DëÏŸý‡¼´f‘”vþˆ´i{«\ø÷¿Dó_äÁáp8î¸_Î9o*Ï|q”Ü~[;ÁV‘úeçqwÄD.(•ߘÊm ³jª %¦‰t|ï÷d@ÿ~2oþL9uê”åÁ]mÿ¬wgé‹r×mo—Y³§ËŸ@vµ¾‡Ãáȳ-¤Mº±Õ "õÓiw¸ãîˆÙMç}s›Zš aD•Ý»wˉÊJ6l¨”7Iî—Û¯F¶ñ…ÕŠ½{¤yÓBöo‚ªÃáp8qÚK¼^¿àpÇÝç«™j/3×bû’%Kº³,m÷g÷œ‚ãÎ’Ê(@!(.A¬õG8‡Ã &Ôœ«îpü½;8¡„0œ¾·†3¸P¯Žé žî7{ç²C!Q½ÿÿÉ fg@•»iæ$ 8‘´¥Û¦ì©0*)k­UkOÃÎÚ¨ ='ñ M¢›Ÿ@ø?æ¯Ý­öX¿ÜcŒ1æ·dÆ0Y…žoú»/š¾¥³=×<$UJ¡ß]Ú?GkÊW“;÷s££Î½¾÷È?5ÃÐ" ?ô¤ÇcŒ9Ø;cE‚ מ©O`䘎‰bªï ‚*h`b`*F‚ˆ‘ú&‚ˆbä(Êãœ{½KüÒ;p¨àîQ ]]TuWÕdSóO•ðZ!ßÐa5å{îÁþ'דnüö÷ÞóP¼ˆ@Æ »Gê ‚ ‚L•^ûc#þÉÐh4¢T*E®ëj5ëÚí6¥Ói:ŸÏÐQ«Õ¢b±Hóùœ²Ù,ëÌÎîåránµÙµ…^s<)—ËÑétÒ¾èn³:Ïè^þfçwÁö©wÔ£V«Q©TBŒ¼ ªT*,£óŸÉd¨ßïS§Ó¡F£¡íx<Îòç…ø=ÏcÛÅbAår™e䉚9Böçx×ë5Y–Eñxœ’É$¿ËD"A±XŒeÇqصþ[=±GΛ͆lÛfïô‚ ‚ wóËg³Ï/_­VzÏO4eÝr¹¼ê"‘ˆÊçój·Û©f³É:߬uÌ?÷wæY8T8ævðÑè=€ÿýÓ;ížçq,õz]ƒAåº.ï·Û­ * )ÇqXgÛ6×g2™¨étª†Ãá—Ü5þ¼PÔ}<+˲0—>¨ë?ëúí÷{Õëõø¼jµÊ±v»]5 t\œ‡áë“W<ƹ:6>ñ}AA¸~œúÉÞù»¦Eq¼¥jHÀ„`qË`PÉÔÁEƒ’ Ì‚ƒI )Š©f0ýº%$`°œ¬“Š¡TB¥t°U(HR5? i%PBE’þþöœïAéh)÷ñê;ïžs–ï=—w.þKÔË©TUÇÐж··ÁT«U8N¸ÝnCB}}} !æèèL³Ù [ÐáEÒ²qss$ütÛ‡‡‡X]]E"‘@½^Çøø8::èñx\Ú/’øsqqªèK+Fæää•JEÿNýÜÑjµô—U¯™7C•pé*Cg0 ›Í†|>¦T*ªî E hAóI|Ÿ‡Cb Ù/è UòÙ±AÕlFLNN‚Éd20 l_b2<<,‚¼X,bppPWT©—qÇ‚LbŸvL A¹a;|¯øC»`Ñßß……ÉQ8ÖòʾŠ`g\.’É$ç•ç*½ówvv@Èóÿm …B¡PübïlBª«Â(¼ú·ì‡ QÓŒ0û1”Z˜heabP'E ŽÂIƒèH8 ¬ Â!’ lRfý :mT”fEÙ»ì ÷ÒG“ïùx\xÏÝ÷ìs÷{&ë]g½ûœ†V™@µ=dvv65448H333 ²œ éèè(A\DµX<ºººãûNÍÍÍÙ^aËFww·cH`B±uÌÇöIŽ'''d¾b¬½½Ý1*tšžž.önZ]]Mxä¤3moogËÉÉÎG±±PȤññqÇ ÕÛkCu÷xOOOâ-®ŽQнâ©Nì_ÖywŽ˜7ÕÔÔ$Š™2F±“ó赓ƒ<æÜP 8®­­µiww7AÜ}Ÿx2‘Ø×>aß©°·¬­­9_Œ—¹°ËøwÜGzH¾)¸ý ‰§" O¼¿;^V™@ Ñœpã!pSãÁÁ°a%W}}}‚ì R.|ÜÚÙÙQoo¯€›3PÈ…*.”_¡ª ríLÈ£ðÄ+ƒ—(©±±Ñc\GÚҀɘ422"¼õ²!Ô`MLL‰677ÕÔÔ¤ŽŽŽÒ@y’Q0Eàkò@ÎJ¶°ë‹ŒSužó066&P‘ì(â­¬ÎMÀ^?dÞùÀÚâäy( ´µµå˜b@XbœÎ¶Aäý†ó@apµpmß§¹¹9Q`h~~Þ÷pccCÀ͵ä^(í‚ä‹B z޲æñF Ó”¸ c…ü¢ _»Ii“ãL`—––Lb!ªB&«ÕÍÌÕóÿç1q!‡ÄžUØ…>qïØ‚j/l“xÔ_ÀäòTååÙd›ˆsýÄÄ›™ø²FïڪטóQ½/zþ¾WŸÇ§b,Ç£££¢@¨õ.jÈ‹)¼ïÒÿ {žXx— šƒ555Uî' ·Â¾äx¿üOÖâ<@ â0©Ã^!,*ZXX°¢[WW' ì"Â~aÒ×ßß_(¤®‚pfäm!ÿVË•_ÛJ5cjii±º›ÏÁÓîyña ÿ¼°rxKJeUüÜ. ñùº§²±ÊÍÎ2¢‰TØV ¡§¹Smmm¢y3¯ù„ù`M&Ë¢¡×J9 ¼€VVV¼}$ù0I§ñ5_ß$½µµÕ1~y«üëëëeËÇååeííí ÿ}Îa¾~õp®ëëë]p`÷q^i8ÞyaÉÞ|aùÉO è7¨xAÕñF Òœúo;gïÒf…qÛM t³s;ZZ\Š Ž:œ2,…bK†ŒB‚£S‘,N. ´Dè`A[J‡ô#j;QTü¼žç®yÑ!¢åüàåMî¹É½÷ÜåÜË9Oø/ñUÚ 7®xù–bQ£ »ù–›M»¥^„b±xÎf9î´Õj5þŸž(\E1*»U‡2 ‹U-·*+(¨dQ*•ð[ªž;T°ˆÒn‡ãbÒŽú£P(`PX‰•_ÐÆù ¬~ð |ÙT¸Šuâ·üni1T¥Qqªpàô¡Or¹\h·ÛAØ­°´¥ì,PgÁ¯k4g øQôÊ>6ËɇRŠNQ<ËýTQ¬¥D±è €ThkéQTòÑ8ׂã8Žã8®*ãd«©XŽ{¨×ë’T;$)‘(,Õ"Xî·ä`ÊÆ¾Ânë¡hÂ`ÕòÖƒåmS9@n/N0nRf±ÙlJ%X޽ÆÔœ;åÈJ®°Ôk¤8ƒ5QS`ý:``ŽðAdãŠ-TŽ©T*ÁŠM)½(àËç§OZ­–ü‘¬Ÿ@IR›’iŒ÷~ãX²©½\.ó0R­V±Ú[%ùNJ{ìW>ŸFãîŽã8Žãxàîzî ñŽmñ£¶Ë¤çžÚ4V:úësæ:¸ëú#ÿ*þ¸h}Y¾Šý“åØ3çú:mKíi¿Û‡ã8Žã8gõ†¼CÞ)®IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/pangesture.png0000644000076500000240000001576112536324504021623 0ustar philstaff00000000000000‰PNG  IHDR݃ @sBIT|dˆ pHYs  šœtEXtSoftwarewww.inkscape.org›î<nIDATxœíÝyTSgþ?ð÷%0Aâ°%# Ç™ :u׺!¨—â—ö[—i¥Ó*b]NÅRÀþlk«¨©­v´.¸‹ V‹Š…¶"à¶ Ö•!3F„@òùýÑ& $dçu§’ûÜ'Ÿ›ðîsï“{s9"B{pg`œP(œfgg÷<¹)•J—êêj‘Z­æµ«S†13VVV*@ ãóùeÇ=T(?Éåò$—‰¨®=}rm Çqþ"‘(¬¶¶Ö¯OŸ>u¡¡¡Ý½¼¼¬zö쉞={B"‘€Ïç·§†1;J¥¥¥¥())AII Õ‰‰‰•6¶¶¶d2Ù":Û–>uÇq£E"ѧb±ØsåÊ•Ý!‹Ûµ! cé¤R)NŸ>7VJ¥Ò_d2Ù›Dôƒ.ë¶:Žã\E"ÑWvvvÞ›6mΙ3‡ã8Î …3Œ¥#"Dt³á²FÇtǹ …Âóûöíc#ÃèaÀ€Ø·oŸP(žç8εá²F¡‰D_­X±¢Gg9†“Ëå¦.1“'Ošº„6›6m·bÅŠ"‘è«F ˆ¿ïbދŕµµµÔ$''“@  äädS—ÂèiÉ’%€–,YbêRÚ¬¶¶–Äbq%€Ñ¤Éšæ"‘(gÿþýjÓ–hÉÉÉÔ­[7Z»v-uëÖÏ‚i÷÷¿ÿÝbƒ·ÿ~µH$Ê¡†¡àïååõD­¶üÌi§ ÚÓ¿3–£á§V«-vÄS«Õäååõ€?iB'‰N}þù禮Mo-ŒÏò´0K ÞçŸN"‘èýþi¼´´Ô¨ETUU´¿Ö‚Å‚×qNœ8aÐþZ –%¯´´”ìììäl`â Aƒ³COrè(<Ã3ttíσ7hРÇ&B(nÛ°aƒÊXOlèI޶‰Ïp =ÉÑÖ YZð6lØ  …ÛàäätáØ±cFyRCOr´w}<ýz’£½ë[RðŽ;FNNNàèè˜ÿÃ?tøz’ÃTe ?ÉaªÀÛ?ü@ŽŽŽù°··¯¸{÷n‡>™¡'9 ˜Ž ž¡'‰Ì‰¡'9 ˜Ž ž!'‰îÞ½Köööœ••U}MM ¯£¾b!%%!!!8zô(¦Nªw»ôôtøûûcêÔ©xþùçõ®ï§Ÿ~BJJ Ξ= ___½ûKIIÁÌ™3qäÈ‘gn‡% CBB–,Y‚;vèÝnùò刋‹C¿~1y²þ¯Õùó)øñÇ\„‡‡cóæÍz÷§ëvèJ©T¢[·n*0X’Ÿfè,==$ ¥§§²Lƒõۙτ1ôN(4t]¹r×`?¡¡‹…‡‡d{ }& ²Ö;¾-8{ö,‚ƒƒñî»ïB  --­ÕuÖ®]‹àà`œ^xá…6­ëááÁƒcùòå=z4<<<:4p ŸwÔ¨Q˜9s&F×mnרÓÓC† AHH† OOÏ©»£-_¾Ÿ~ú)&L˜ŠiÓ^Ay¹\çOÏA¨©©Æ‘#!“É0eÊDDDtXà4F‡ªªJ|ñÅÈd2¼ôÒK:¯ûô.%Çq€T*EBB¤R)Ú][tt48ü¶{ÙîNžf¨€húY½z5>üðà \sÏ«ëóµv,ªë±ª92ÔˆƒÄÄ]cì"Š¡ƒ‚‚áã3Ѩt;ÆkËöΞ†¸¸½Ž rL×Óô7~üx½ûkgãµg{õ9f4¦Ž\bâ.„†.»ïn2@…m÷¬c¼öl¯>ÇŒÑÑÑú‡®#g꡹ èSŸ¹¯#gìîiÍEŸímoðôžHéÌkHS׺uëk°I"sÚÎθ†4u 2ׯ_7Ø$‘®ÇxzÓu•ÀãM:|ðÞõiúËÌÌ4‹mí*þ8ÆKLÜ…>}úé]Ÿf}Îë´k¤ëJkÈRêl‹®¸† ]§››îî¢VÛµk¤ëª sæŠ9éªx 7†6…®+N£³¯+NÃTÁÓ9t,p°ôà±ÀýÁÁÓ)tÌÌL‹üƒÕ°ÔàuÄÉÆööÝ-2pÆ^«)–<"ƒ%½>šÀÍ›·o¿eêrÌÎÇGcÿþ/ÚõúH$HZm×êDŠ%ýA™Š¥ŒxšÀ½òÊ?±fM´©Ë1Kkׯ€Çã°wïçàñ¸6½NÖÖϼ¿jã¶--`Ó¹O¸ ^Cdd¬©Ë1kQQëÁãqøòËàñ8_/kkÝï¹ÓlèXàÚÎ\ƒ§ ÜâÅKµÞÔåX„˜˜ÿÏ _|‘ÏJ§×ÍÊJÏÐYú$‡©˜Û™& ñÚkaˆÝ`êR,Êûï++"ðù­Ï7òxºï^ü"VÆ|(J(JS—Ñ%ØÙñag×ú—{ôz:Ƽ(•õ¨¯WÁÚšgêRº++L¤0–K¥RH 8cáñô<¦³TEEE°µµÅ_þòS—b2jµ,r„«+-Eun.EE°ëÝ‚a#‘˜º,p\Ûînïó3¦ÜÜ\ "ÒÜWïÚµk€««+ÑÍ›7M\)ÓùÍ›TD×$Êšü\“H¨0(ˆää½üýoÔrBWWWGëׯ'>Ÿ¯ ؇~HD¿}•y`` 9::j—ÙØØÐ7L\5Óu]=Œ‰¡«|¾6`9NN”ïïOw#"(ßߟrœœ´Ë®òùô0&†Ôuu¦.]/È¢f/W®\‰?þÇá­·ÞBxx8þú׿6iW\\Œ;vàܹs8qâz÷îm‚j#¢F» 2™ §OŸ†B¡@mm-jkk///m›`õêÕ¨­­…B¡€B¡ÀêÕ«1iÒ$m›òòrDGGÃÖÖVû3cÆ ôïß_Û¦ºº—.]‚H$‚X,†D"A÷îݳáͨ-.FѬY_»pÄo½ÉÒ¥°}î¹fÛ–nÝ é¶m„C‡¢÷áÃͶµš¿g_w_~ù%ùøøÐŋ۴^EE9s† }OuµZMeeeTYYÙèñÿüç?4kÖ,òõõ¥Þ½{“P(¤C‡5j“ŸŸ¯‘5?û÷ïoÔæ×_¥Þ½{Sÿþýé…^ JKKkÒ““ …B²¶¶&tøðáFm~þùçVŸ«¬¬Œ6lØ@ÿþ÷¿éܹs”››KÕÕÕú¾DM¨ëêèÖС” Ð^½Hvé’NëÉ.]¢½zQ&@·†µØ–¶{Ù^+V¬ £w_R©”ÆO={öÔþ‘öÙgÚTTT§§';–fÏžMááá”ݨR©¤¢¢"ºÿ>=zôˆd2Õ××ë]ŸJ¥"•ªñ=>kjjèêÕ«tþüyÚ»w/}ôÑGTXXبÍwß}×$˜gΜi²í[¶l¡o¾ù†>žòóóÛ]›9©ªª¢_~ù…¾ýö[:tè=}ú”””F¡tpp ¬¬¬Fmž|Cò›7;†ã8G¸§É.]¢LŽ£«|¾EN®XDè‚‚‚½÷Þ{zõ³téR@¤V«)77—òòòš´spp äììLãÆ£}ûöéõ¼Í£GèâÅ‹´mÛ6Z²d •••5Z~ðàA‰D4räHzõÕWiûöíôäÉ""* ¢L€î,]Úbÿ?ÿü3mß¾öìÙC÷ïßo¶Í¥K) Â  Ãm˜‘XDè$  ¢¢"½ú)**"Äçóµ3œ!!!MÚeee5ù?<£»«W¯Ò›o¾I/¾ø"¹ººÇ#™LFD¤ýX@zý:Õ5sLÝh$µµµ¥ƒ6i§(*Ò~œ`i`î³—>„»»;œœœP^^®ózJ¥wïÞmr§œ=z ¦¦sçÎÅØ±c1~üøfg?Ã)--…D"òáCÜpw‡µ“öÌ›‡Ý»wÃÛÛ[û>äåå!,, ÁÁÁ˜|x«msrrpêÔ)\¾|™™™pvvÆýû÷›ô—œœŒüãpphý*_F’ßÏ(‘çä„#F õõõøöÛo±nÝ:ôë×Ož<ÁàÁƒqûömäå塲²<ŽŽŽˆŠŠBjjj£~…#F@vö,ä99: S¸-züø1½þúëtåÊ•VÛFEE‘ 5ŠV­ZEÉÉÉM>"ˆŠŠ"M&G˜ŽWòᇔ Ð݈ˆF———SBB 1cÆPnn®vÙh„  ÉñÝ݈ʨä÷“#,:òN¬† ‰´wÀlMxx8V­Z åoÚÍÌ̈ÅbƒÔÇèήo_@ÍÏ?7zÜÉÉ *• Ào'j0@»læÌ™øä“O·o߆»»»v™¦M¿–D÷ëL¤´´ùùù­¶ëÑ£Ç3YYY€aƤ6FwÂß_sùÕ«M–C 4yÿ¬­­µ—Ìܹs§Ñ2M?B |/Í>t³gÏÆÐ¡CñðáC½ú)..FEE$ Ü,ðÀÒñÝÜ`#‘ ¾¢µÅÅ–ÉårtëÖ­Ù=ï·«%ª««µÕ£¾¢6‰EÏ™}èD"jjjðÑGéÕÏãÇ#FŒ0DYL;ØÿþÚ—nÝÚd™Z­†³³s“Ç­­›iÖ··Ð÷ÒìC·~ýzðù|lÛ¶ —/_nw?Æ Cjj*vîÜiÀ꘶p‹ÇçCºmž¤¥5ZÆãñ““£½žn±–ùÍffº"22D„… jºuUUU…œœüüüØ$Š „[d$@„_,€J&Ó.ã8AAA9r$ÂÃñ`ÁŒ? .Ô¶QÉdøuÁ€n‘‘ hŠÍ0SÏ¢¶ª®®Ž&L˜@}ûömÓziiiÔ«W/@©©©TÓÍ]eðú믓‹‹ ݹs‡Š‹‹éøñãtîÜ9ºsçeeeÚ¼|y§¹ÊÀ¬?2а¶¶Æ… ´£ÜíÛ·qùòeøúú6{­Ü“'O…-[¶€ˆ0lØ0>`g:gmÞ‡k¯§ËŸ0•ýú¿ŸÅãñ0tèÐ&ë•ÆÅ¡¶Áõt\3Çz–Âìw/ÒÌdÅÆÆbáÂ…ðôô„££#&OžŒøøxm»I“&!..666X¿~=®\¹ÂÎ@1#¶Ï=‡ç33áÎÆ5·nZ9làx<¸ÇÄàùÌL‹½€UâB§±bÅ ÁÕÕÿûßÿðÍ7ß`ÅŠP(€àà`";;k×®mvŒ1-ÎÚ=×­C¿¬,ØöêÕjû?¯YƒžëÖYô§a‘[п$%%îÝ»‡ììl¸»»ÃÎΰfÍS–Ç´`à@ˆ¦Lwüø3ÛYâçq-±ÈÐ5äááS—Á0:³ÈÝK†±d?Ò1]ƒZ­FNNRSS‘——‡Ñ£GcâĉèÓ§©Kk3:Æ",[¶ õõõgggìß¿Ào3Õ§NÒÏ[¶{ÉX@€?þÙÙÙÈÎÎFZZV¯^‹/"22ÒÔåµ é‹0þ|„„„hïÕ«••…óçÏ›°²¶c¡c,BK—cI$äææâĉHMMEjj*„B!&Mš„)S¦`„ F®´ul÷’±xååå˜1cöìÙwwwðù|lÞ¼~~~X·n©Ëk‚tL§ðÎ;ï`áÂ…Ú³är9¢££±~ýz,X°ûÛßL\áØHÇX<@€E‹5:ÝO(",, ðÝwßêëëQTT2ñWN²Ð1O hO†oÈÞÞpôèQÂÑÑžžž‹Å˜3g.]ºdìR°ÝK¦ 8uê<<<0mÚ4ôíÛÙÙÙHMMÅñãÇ‘’’???£ÖÃBÇtzcÆŒÁÞ½{µ£áüùóQYY lÙ²Åè¡c»—L§7qâÄ&»ŸÝ»w‡··7®]»fôzXè˜NÏç7û¸µµµöÔ2cb¡c#c¡c#c)ŒYsttDFFþô§?5»|åÊ•xë­·Œ\•~Xè³ÆãñÝ8äi-…Ñœ±ÝK†12:¦ÓâñxpssƒP(4u)°ÝKÆ 233!•Jáââ‚Q£Fã8S—GGGíy—æ„…ŽÑÛòå˧ýÝÝÝ3gÎĬY³0räH³ 9a»—Œ^ÒÓÓ‡yóæ!99qqqèÓ§>ýôSŒ=žžžØ½{7êêêL]ªÙ`¡cô¢¹ï_hh(úõë‡éÓ§c×®]ÈÉÉÁÆáàà€E‹ÁÓÓ ¨­­5qŦÇBÇèEó-\wppÀÌ™3qâÄ |õÕWpqqAXXž{î9lݺµÑU»:F/“&MÂØ±cñÁ ¬¬¬Ù6¾¾¾8zô(8www,[¶ nnnˆˆˆ@ñS·Bî Xè½mÛ¶ UUU˜>}:òóó[lçííC‡!)) ~~~ؾ};<==qøða#Vkz,tŒÞˆË—/C­V#$$/^|fûAƒá“O>Á•+WðöÛoÃÎÎÎä_¡`L,tŒAŒ1W¯^…§§'/^ŒÝ»w·ºŽ££#þõ¯!==›6m2B•æ…Ž1wwwddd 88111xçwtš­´¶¶ÆØ±cP¡y`¡c J àÈ‘#ˆŒŒÄÁƒ€[·n™º,³ÂBÇÇqˆÅ… P[[‹àà`lݺU{Ïø®Ž…Žé0/¾ø"òòò0þ|lÚ´ !!!øõ×_M]–ɱÐ1ÊÁÁ»wïFRRJJJ0uêTìÙ³ÇÔe™ cAAA¸uëüýý…U«V™äKÌ c4ÎÎÎ8vì"##qøða,^¼r¹ÜÔe ct±±±øì³ÏžžŽÐÐP”——›º$£b¡cLâµ×^ÃÉ“'Q\\Œààà.5ÁÂBǘL@@ÒÒÒ P(ðꫯšº£a¡cLjøðá˜1cF—ºÔ‡…ŽaŒŒ…ŽaŒÌÊÊÊJ¥T*M]ÃtzJ¥VVV*+@ +--5u= Óé•––B Ȭø|~YII‰©ëa˜N¯¤¤|>¿ÌŠã¸‡,t ÓñJJJÀqÜC+…BñSaa¡ÚÔ1LgWXX¨V(?YÉåò¤ÄÄÄJSÄ0]bbb¥\.O²p¹  ÀF*•šº&†é´¤R) l\¶"¢:[[Û §OŸ6u]LVYY‰ÄÄD£\u@DHOOÇõë×;ü¹4NŸ> [[Û DTÇ8Žó÷òò:”ŸŸßÝì1¶äädDFFâÆ …x饗àííáÇÃÃÃà Ï!“ɬ¬,œ9s<€««+–,Y‚èèhƒ>~ÈܹsYê“ÈÎÎÆÎ;qìØ1ü÷¿ÿˆÅbôéÓ...prr‚““œý›Ï磼¼¨¨¨hòï{÷î¡°°D>ŸqãÆañâŘ>}:ø|~‡o×è7Þ¸þøñãa  Çq£Åbñù{÷îÙ£†i áÇDzz:222pçÎH¥R::š¥Ž1K …B@Íkkkáêê ±X WWW¸ºº¢G¦.¥Ü²eKÚãǧhk:Žã\…BaÞþýû]¦M›Æv3FIII4oÞ¼2¹\>€ˆiçžþyŽãÙÛÛg|ÿý÷ö 0z¡ ÓäååÁÛÛ»ªªªÊ‡ˆn6\ÖäÒ"ºY]]ýŠŸŸŸ‡kΡӮÀqþ"‘(¬¶¶Ö¯OŸ>u¡¡¡Ý½¼¼¬zö쉞={B"‘åS~†1¥R‰ÒÒR””” ¤¤………êÄÄÄÊ‚‚[[Û 2™lmKŸmvE޳0N(N³³³{žˆÜ”J¥KuuµH­VóÚÕ)Ø+++•@ ñùü2Žã*ŠŸäry€ËDTמ>ÿ?†Ç› LjÆ"IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/parent-child-widgets.png0000644000076500000240000013532012536324477023467 0ustar philstaff00000000000000‰PNG  IHDRÚ8s ¥qº—IDATxÚìxE÷ÆQz±!½ˆJ/bï°¡Ÿ¢þõû,‚•ŽÒAé6”&½H)"]ŠÒKr{rÓnnzOþ¿Ý“;,÷& ¡„gŸÍÜÝÙÙÙÍî;ï¾sæœ"YYY™™™Yf2“™Ìd¦‹šŠ˜pl&3™ÉL&›ÉLf2“™L86“™Ìd¦K ŽÁ⌌ŒL3™ÉLf2ÓEM&;>ë$·ËìÆÌd¦óOê%2È+L86“™L86áØLf2“™ÌdjÇçߟ§¦¦ÆÄÄÄšÉLf:$/‘¼S&™ìøÅ à8**Êc&3™é</Qtt4@l‘ÉŽÏ‹ó0E›ÉLf:$/‘ÉŽMv|¾ìØ„c3™éüáØëõšìØdÇçÅŽSRRL±ÂLfʱ"==Ý"“›ìØLf2ٱɎMvl&3™ìØdÇ&;6Ù±™Ìd²csˆ Çf2“™L86áøJ‚ciž|FFFªŸ…Ø^J¾åbIò-lvœ&›Ú±©çI;“5Ø!8¥§|Ôæ˜ø„6Ç£X­l‰Ô“ú™§6v꺌—,WMè>>...ßaK*Œ•KžNÜÌò9câ~rNÓ¹œÀÚüú• :tˆŸË—/?zô¨‰È&›Cy¦X‘×5€Éét.[¶lýúõBëúHeŒdÐo»lTŸêÆòôÛ·oá…l6'R»Ô±dvïÞýï¿ÿ÷ 6@µáŒ c}äÈ =j$Ú3þüŸþyÚ´i3fÌX¹r%7A]~àµÈQª6#GV Øô=¯½öÚš5kÜnwýúõgÏžÍÿK¨·ÐpU•©`˜b…)V˜ìØn£%JÜsÏ=@’€ O*Œ•'•5|PpJÎ(ÛAO¶“WœW±Qa»B6…QÒfyôÙά)# þî»ï~ùå—< ¢lˆc ¡ŒäÕ‰·ec`ÃÄ/ Û9»`ý¤I“Ú·oO墠“ªÖ­[W©R¥;ï¼óÑG}üñÇŸ{î¹/¾øâŸþQg‘;`¼F2“'OVµIx=ñSn)ç…jÑp¹Q£F¿ýö?c¹-ê¢L¾l²cS¬0á8‡pÇ &/^TZ¼x±ÀVXX؉'\.|ðàÁƒ‹E‘Y€Ô¶Z­  X£¸§ì¥ü±cÇ ‡‚‰TÅ7» /ÛëÇ#_°wÿþýmÚ´yã78ÇÚívÎE*—“²…oÿãÇs¸â¶ Õ0ujZŶsg§y½zõjÕªUpp0mPPË®µk×Ö©S‡¶­l_¸paíÚµ‡ ¢F9‡S§¦‡°åóÏ?—Ú¸)pHOœWuoìB² ·Ývì˜ÿ%)pPO4R.ÄDdŽM±¢ÐŠFÅ€ŒXY“Ú.Ï"| ¡àÍ7ß|õÕWÿ÷¿ÿuíÚ²Ì.„‹ºuëöîÝûÞ{ïå£ûé§ŸÞ¸q#‚&·ß~û;ï¼¥­W¯„ú×_U0·téRÈæ-·ÜÒºuëo¾ùF÷?þ` ¶uëÖÊ•+¿ýöÛÏ<óL­Zµ(À^Î{õÕWßpà ժU6l؇~øàƒ0¬l×®(Ù½{wp­yóæóæÍ“—ÿ¿ÿû¿&Mš°½mÛ¶6l aÔߢE ÎNÛnºé&ÎÂÙGë¯X±"§{å•W’’’m)׬YŒæV€¶T;vìXF#¹ô è÷ß?-çúé'n8‡”×¢Hp‹z衆 RæÙgŸÝ¶m8K'Ѳe˹sçÒÔ Ìš5‹ÚE§Nn½õV¶téÒeç΢• ÷÷ê)ÆLŒO{Ž‘)V˜bEA±cµÆ „!:rJl‡ºJ1êv@àEÇv0”oy@ìƒîÁ^_|ñEò ‚8 0èn‚€ŒYñ¿Ü´iøÕ·o_°læÌ™@UÿþýÁDd "ù×_Ž:t@@C²8 »ÿýïé¨Ð¶@1eg¾÷ùåðëý÷ßê©§h<åÿóŸÿ€¹0MòßÎ;ïÝ»ÂÎ4è¼bÅ zà•WEæXõAÀÈõÖ¨Qæ+Cm”ܵk= ×Ò§O8;ˆÌ^ `šž4ïׯßwÜ!œà?~<_tQ´ÿ¥—^‚ƒï 3íçŒ7ß|3ª4µÁ=öç¢ ÿý7eä„ûœÛÿÈLù•¸ÃB rü"1Ù±)V+]¨e\¤øöÛo¿ Hl9r$Tø£< ôÜwß} LP†-’¿ñÆ)&j,`è÷ß§<€jŒ †¢ü‚° 'O?ÔDFŠAIX$Àƒ_a0ŽÆ¦"­BEaŽbj ÎŽ;ÒP3ˆ9pàÀ¦M›’áŠè38/]ʵA?ê ä¥ {¹(04Ky^h5u~ýõ×Ð[î˜qäÍŽ…2SUaÂQt9¨ÉP]6îØ±ãÉ'ŸD¦`;Œ^jyQ‚ëâ&L™2…‹¥0ŠFa„ãnݺÝu×]:WÍMƒór-£GþÎL™ÆÇÇ @ f˜p|vpÌÙÆ]JMÕýveo—]¬ÓÒ´]¬Õ–üºŸªBÎ+ÕJFíº4áX/\HÅrè˜ÂÅÞ(„¬=üðÃ_`ƒÐF%/”VÈ#¨9J D¥À¸t† » ÙHK §HÐà¸zõêTµeËàú‰…°Õ¸qcê»áË|ð5P! xï½÷ÈSÚ(Æ«ê1؈xŰ¡B… 0PG(` ª‚­‹† °NžV!¼ÐÈÁƒ ÒªÜàXÆ©™öƒìœ8.W®`+NÏDc¨qùî»ï«8Àtæ#€~i…2Çô$ì^àXÄŠ}ûöÑcñ5@ƒ?þøc>2„S&Ç™ò+Á‹¹Õ°¨ «ÜvŽÏB;–Ÿ:Úf¨üá§*ÉÝcÉ2Äñ”åWA@ªIê¤Qf:vÌÓrÁĪL¶{OM²EÔ^0~Z¦Lˆgs=Á(­:2ø²zõjyj/`* Ò…PNND=x(4–&}ÿý÷ Gå|¶C'©2(ì$…-ZTàØÅ€cL€N´QرÀ1Í9)…9§ŽaǼThÖ4>ƒËd‹ Ž‘§€Ž%/ŠIµt’”vL3ÈK¿ÂEq-€2gD††¤Óx.„š9m€³>œÚèÆèE`¾¥J•p)凛Îéu„‹vÌíå%çX¾XscQN DÃdTþÿ&3åK’÷‚glÑ¢E|Û‰e½©çU;ö1Ð ^³þþ;yÚ/±3fÆY,šÅ¾ŽÈééBœ×¬IüyZ윹ñááé:Fgä{Õÿ=™h9iV[ö¯mô¸Ù1€œ~R¼ b @`Æ€> ÝCóRÁƒÂm‘e¡·<µˆðVÊ‚°EÊ4òñ޾Ág8yD[ z1pÆ8)z-h|"V+VL±c*òˆ*ýú믋õLY ™Æƒ}T"pL{@aÆë “¨´@6-áíâB@jP¼Ž…§¯Ï?ÿ<—F5 Y³fj¦‰Ñ²å(:6här@IÞ^$i ¾àMˆ,L“ç˗˧㨩S§Bö¡ü´9›ñCšÁuAŽé·„þs.à y]i6\€Ä‡ç„rÉ’%j,×dÇybÇÆ}¯u‰(RÄrçÝ!·Üæ$3flŒÆ u˜u§7ká*VÂúÐ#¡ nu–.k²}œZ–ì;KFt2¬ÌZ•×þ”’))Zo9pp4ç¥þú œ×ßh¯\Åöçæ$©!°Z©A.!55{cÁQõÓ³c@YYÂæhýÎCI Œ’¦€&ø:p¸ !ƒD0å>úè‰'ž€ä"h£<»ðDôÜø–§ä˜1cĦ äýá‡xàä¶ú駈ªŦ*d(¯H‘"ÔÃÓrAEZ8q"l”Ÿ´\†éD¬õƒÂÔ ¯ÅtÛ¼yó[o½Å`è^ce̬pp`®ž‹¡y) ce´·QMef;ßt è!TÂp"ì˜Iî$<‘Ë?.„î ÎN¸ó0}jg¡Þè<Œ.‚Î<òƒu‡p”\—hÇôô7œ”.¡•/ÑZ]„{sƘåÁ}8&™ìøì\)à…—ÂÜbw8!ÅÚÏ “Ê”³Œç%Ÿ””y[CÇ /¹““³uÊÔ˜"EN@¥+ m•š¡[ãÏSÐMWJ ÷ìÕ°¡“£"#Óù—½Ü9¬FM»Î›3 h{JµJ¿.¸ÿn^à˜µÀñiS ø€Ü”ÊH¬wÁ;ж§€  ´Q Ý€6ÆF8`eˆO&³ å—Á\ž{ø %eüvÉá´ !ÄäÔ|æS†þù's‹AÕôÄFÁD¬ÇDï£ ­â(ù®G~…/óù 5¦‘œ—2TÂv9VfúzìÂd‚oU7vQ4ÚNS¥š­nšÌø K£B  ±Z [÷")ðî»]»FÈé-ŠoÕÊAæþû]eË[7û·¸ò-=?ŽbãÇŸzÐ(æÍgû¤É1uê9ŠfûâÅ %K[Tµ 6Áb6z<é Äßp£ŒÐó‚bÇXn1ó‹+ßÂOÔW|ü¨~`M>»k&ž%&FD âEÁÏ&kQPB…É*g p^™Ý$A<ýœ0ˆµ€˜m]I}NOmÌ+Ǫ=ò3G/Ê ›rDçw-~y)èöS¶lüÈõ;…_mª*ù9ØT™ÀÛbú¬0áø²ã?‰j¢ÓRAX±šˆò¤-aݱ#éÁ‡B?ì%åwìH®ßÀÑòvWÍÚŽ‰“4vÜ¢•KÀ”ôô3îwßËF^H1(Iæ£Qêp€õŽ»BÈ4oåúß{‘Ù%d—ü²Ÿ¦?þd( 5t¼þé'ímÛ†«­VÝ&Í~¿k䃇Rá¦M‰ÒxÅ‹µK;p ~úô„yóæÎ=Ÿ%~ÎÖ±³g‡ýüsø´ijágÄ/¿8§N]ðÖ[¬Ég 3ujä¶mÑññž3镯YÈ|}ƒ jF“ÂSDX³ð>óm7“ Ç…Ö²Bô„/¿ò\{ƒÝgó›! ¼ÿ@ ìxß?É?ú̳abJ•¾bež}É϶wwë¦Ad‹–ÎE‹¤ö»îv-\” ,5$4½VqCfß{?Ri«Öî³&jÉŒÏzE5iêTĪՉEŠàT!õáGBæ/8Y¸ÞÍ·[3ü@Ë.W>øïFèù“Œ ²Å;x°¥H{ÅŠö²eÏg±•)#kkéÒ¬Õ"?Y/®òÚ®òå­EŠ„~ñ…s…¼æ+Áo"“äåËÝt¹`¦ËŲ‚'v‰žLËŠ³³¬äݱ3àÛ³'Y6þ¹9qûŽä)SbJ•¶ðsÔ(oÉ’Ýìì¤-ð}†|¤‹-oY¸0[ÃmÙÊ%öœdß?)ˆÚÝ'Q]»e³ãŽ…Y“ÁNct@É^½=BÒEž¦-Qʲm[j J±*\åZ[xXºèÔõov4nê}£n½Í.qݺGÜ}KŸ±ùðÚ@®{{kg«VÚÆÛ[»n¹Õ‘˜¨ºËawÞ¥mìу‰UÌ*ŽKu¹Ò9NŠy°úPÕÞwŸVøð‘ÔJ•­qž‘÷ÜëÒá8C]šdòå_ž­§¥ñáF-üÄs%7åÛñãY“—ÙkÓ©£™Lvl²ãs³;†¢*”*kmÔÔy[cgÍ:ŽÚu;… ;žŠÚ[²ŒµÕ®ë«Ú;¿>qrÌ}œí‰§Ü+W%JUÀ뽄\s­^êr‡ˆ×ßh«QÛѲµëîûB:½ÎƇ ½µ!–ÎZuTøÏ¿ZÉá#¼e*ذ ¨×@ÛN=b;1?YíõÙÕvz!¬¦d1y¤acços´’i§NÌ—ÿ÷§|÷í·¬Ó@Ìá#3™ìØdÇçbw,k‘ ,–Ôu$bÀ@†­Â'Ÿá+ݧidb;±zM➽ɺ) ¯2Fö‰Ñ™[·%I bªÁ.§3mÍÚDÄl¶ÜyOÈ’¥ k*±””‰× ññÌËb­YÔ)9øÔj55ƒŒrmp,ZÊÅšrF»c3™É„cŽÏÇ~>+Ô®ÌSf^øû¬ ý¼Iøy™0æÕ<\ÙØºµs>:'{s«MDä«¥ˆ^möLK|ˆ™Ìd± ÇyõwltÛ&>ÛXà¿F·júdåSœ½åæ•ÍèõMU+z‘5ûQ¨Å–ùôžÛNSí¥ã³ÂO¬0“™LíØÔŽ/Ç~n—¯¿cŽÍd&Ž/W8VœúŒÑN”Ÿld—27–kÐÅît¿–ûQï¼<W&+oDxVÛý÷ß»vîü{×.s)”‹öÏýûï;vlݲeÛÖ­§_(³}Û6P<ð™Ïw8ö \eC^(°Qu¿¼ÕøÖ¹}šŸ[$#e –÷js`ÇjÆ„Ü#8É«- ÝTa#ä©Ru Úå›û§eð­…ÿY<çÊ…‰ÊFXÆ[”ËQ8Æé8¸ [t¤Iþ£l”ˆsÒøÌõÒUmƆ‰#12œ6àÌx &b±r`4mÚÏC†~3xÈ׬ͥð-Úöëaýú÷=zÌ´_¦ÿøÓ´Ÿ~þ%÷%{/޶ _k|T Ž ÌÙíiG¦„…¥ùŒ²´ø§ÌÅõeå¶âôWFDR)pCŽzë9°cÝ£qŽÆùÁõ-Q'¸k‚}$o³ÄnÀo¬´Œ»IaöÏ‚×UÊà×ß²Šã¿\‚G¬ÐŠqÔUW]…ƒsÐP/ŸHlÇW™äŰ: â¸`®œGÀ¸ý¥Ú{Nu›yYKÆô©#FŒX°ø÷Tý?eZ‰Ê$°vÍš¹s„GÆXm!v‡û4‹ÍÊíM˜Œ|º{ÃÆÄû ý}Y€GæŒÿ}7¢n}Çosã„;ç‘ýÅ PF±c‰uFzûí·ù‰:Ah¢TÖDk‡Bx³ôxò앨kˆäÛ¶m‹ND„v¥/^œ6pŒ.AǨ8)N{5r^¤ðªT` “ éi‰ŠFvB´Ab+á5 $,pLx42Ò|hèÈŽ“‡;s^¹â³±V¡®ùì³Ï:¦M›F^„f5p,\Û(sç—XÁ¤r‚RD¬[g¯WÏ^£†í¦›ìÕª±¶V­ÊZed£dŒ‹ÚhÌø•)Ø…6W­ê=Ú›™âp§¤¤*mG²qÈT~‡ao ñ¨ÜJž­¹KnM2Ž7n÷Ýͯæ]ʦJ: ñE{¥JÎZµÕ«»t{ÝuǪT±W«n­Ê#ʳWMËÜtSx½úž[nuÕ¬e©Zõäv=s¤råàn|DùIǯ½–…Là^Öl'Ò¢¬OYj×¶—+3j”ö¼e áV!hD£FÇ(?º®èÉ6î{uobš8?ê)à+hÈ®ûÐÜ–=úX4Øû̳î  ‚žÚ@tñRVô‡¹óâÑ5m÷ÞÒ»§xI‹» ÑÕÅ,»v%ãÈìС–Ç5e#(8µl9Ë#…~ÞÇUÇ»ÑéÖ®I¸÷^§Õ–zó-Îrm8Ò‰‰IW—ÏZ;Cš°  pLFðP+W®(ŒÚ@œJ 6KÜÎ^âž)ÆZ¡BÊ æ;´åi†·‚zˆJÜŽÙNFcáæ{öìaû'Ÿ|&`;'"Ï‚¹)8æØG}ŒñD­¦~ÎB%dâUËAóQ£F‘¹æškhxMÌcBX*8Ƨ{iǧ¥…/\ˆ«åÐÏ?wèî×/rðà诿fñ~ó ëˆAƒBûõs÷︨í6`@nÅ bá\¡_}å6ÌZ¡BH÷î<û!vûÈ‘£ŒpçÐ8››Û&µÅ8Brþ>ž«5ÖéçÒï4Ûýš”_Í»táXÿØŽŸ5Ë;p`Ìðá<‰£GÿýöÛ¾úÇ_÷úÜÒ»OÐg½-½ûòó×ú¸J•]oÿ×ÖçËà^}d/k[Ÿ/Vwèx¸{·À‡™ŸQC†lëÒ……Là^Ö¼1ÆÉú”eÄoÿþI›7kÌ]³¡ÒàØ^¢”u媉m/>j$–[cÝ=:pŒ[G™â+‚C÷¢ð¨Î ßKà N/gÓæÎ… ãtŸÀ®ùó5±‚hœ/¼à–½Û·'—-g͉QÔâ­ GfâËL÷ú›ùÆ›ámÚ†Ja†u8ÖtŒºÇ`¼··¾ÓåkaÆ9å c1x¦WNKå'‘(3¢gû2nÙ4$ƒ^Ì^12–*‘áAL´ ‚l’(ÁnaÇ‘XÈp:(³‘«Ä:uêp®o¼'\1å«T©B°K+P2-f;l—<£ˆ"v“'¢0a0ÛõlGΦŒá$|ýôéÓ‘\¤6bÝ,;Ž,°•,­›ƒÐáMsÕºÇbÙc³ýërÙbc9½W‚<ÒI/#k ûD‡ãNIñê[¼†²öúÖù¸h§NO'ãhÑ"ä½÷àX»Ü7”úczBŸ‘‡GlfØÎÀ© ÃúË™ÿ8ÿPDkÂLJœ3äÉQü¹å û5IÎÈÐ4»øœBçS×´„’”gd‚+>†É\m;ª'þ¡2z\(§*û¤týž¬Ü¸áוkœ)™G=qÇ¢ãOxÉcfÌ.RºT‘âÅ+Ö¯¿b×^{búqo{Y¬ ©c§ÏØ”¤Ç$3>Hüä°pÖԀ½òÜJ0høÿêpìM/VÜ2}Fœ ¦)ã?¯G4m–33š×¬¹¶+2*/êV¢ ihÍÚ `5–p°Ú.oFtx>ìåWÂqLð#„髊ZÂÂÒÅ£.ÏXkŠó.q0)?›4s¢,£Z4k©¡0Þ~ÇI8ÎëP^Žp Õ•!2(ÊpíU«V…]¾ûî»HÉl„sˆh èr¥üÔ©SES–Q; õ+xy¨ œ]³f²u“ “P"Lþ¥—^"ÿôÓOKýˆ üCfD‘€í’Ë ôC¸ ¼\dŸš+W®ŒÀÆk¯½ÆFš§”hÔä²;Άãùó­ÅŠ#š"BCß|íµRÅŠ5kܸiÆ÷ÞyçG]»nÞ°!‚`Ì8ª_õÊi=ÝQhèñÇ_èÐaÅÒ¥ø¼§˜¶×èù^òAU¶3çºh-á\))ö† ]þpœ"@Æ•"C5kÖŒ€öíÛóm$#¢ 9pc‘³(!VýîÿeºC]亮þñÇÏÊÜ0ðŸ¢{^Gâ‘kª'šDÈA9;gDOã iÔ¨Q‡8]ŠÏ= b»víš4iBÇÿÅ_ÈSŠõ-|Ÿqu(fݺuãš÷>û2Bâ“Æ·Ü(¦ $iŠêºU+gϘm³º:~äð‰Ç­£GŽÑƽ¯ºª˜þNU,Wnùï+ f/KÐ û¤ñöîÚÉixø™¿tÑ"2~{yÌ¢Ñ}õSgèkÿE·P=¹˜U4iæx½K¸ˆØ-[´6#lȘ þu%~¦ æY«–ý“O#É9¨C§°±ãbŽM…/ “`aï¾7dÔhoŸ¾žaýã¾ú!¼¥óžÔŽ}cw­]?O‹Ó»ym×Í·: Ó¡àvœop,ì˜11^*,±óEÑâãéìÕ«ô5™÷ŠÑ9B¬K?Æ–^xW‘¾?þXÞ1žrê¡õsçòú! ïÛ·/0ÍËà§W—ž:…Y£ÁóæÍ8þòË/UUÒÎ…šÈR›ë>úˆ4EBYVð‚Áèi< 6ò¢ZúƒÚµk Žäåe;w8¶Z£ß‹Šzî¹çèB¨„Mìöí¤{ƒˆÉÐ_¬/Á=ż âXÈ9©TNH(ëè‚qlŸÝøôt{£Fpœéƒcþ›´“–ð¡Ó9s¦tçôŒ²~úé§F8VÔ˜‡¤qãÆ|Wécœqô¬`¢ÓGc,;wþàƒxl(‰Iϯ¿þÊcÀ@4O&£Á‚ò~“¡ qò½€kfÎúÍjÝð˜Ã1íיʞJ¥ò*ìܵïxýБ ÁÎ '!3r¯r´¬È/»c1>[º4q`ùŠì pŒË5ká¼å6'ÚP^3W=\§ŽÿôÓ¨Ê×Xá°+WƶB!ª\•ëí+ôôÈp z̰öí³ÅŠþIÑMÖ2‰¿\¬¤޳Éx÷îwÜé”Â;w&ÑÂ:ãòWà˜èqwÞr¾b…ü3š©ø#_mjV§ûim3” ?Iίk0[ÉP߀ÆcÕ)óÆI%Æ©(ê„­wïÞÏOíþvî,Cy÷~ S=ÐY½igå~>G8†ñþ *ñ,Âàè°Ããkš~t†¦Áßy瀘Of0©§~ýúpI ðLOš4 îä@ CÞi@~…Ñ;-g‹hîœNn;#½O¡ÃbjÂg ýqŽpŒ|ñTæÞ\8— ¬ÔD.}'×(–ü€û6mÚ`’òÑ&¸o´î‡ÿ;]”œ….ŸJ°s—n»˜]R'£ÓŒaLÓŠ):mà™Çž‡ Ï *w[™]!NϘ9;Øê:pèØ‘c–]»ÿ·`É¢%Ë,úeáâe,ü¬Á⃇O;a›0abAñ1°=ÔµtY+šÃoEÜÖÈ bÍvôXŠþR²”•xo˜Xõ¢z-ǃÚv‡3µZ {Óæ®N/„ƒ•˜[<ö¸†mÚ„Sb¢34™( ßõýR£h«WkÐÏ)6v±nÒÌuãMö)Sc™,qÝõÖZµíèј9¹Ê(ÿñGb3]0!C(; cÖ‰`û¿Ž@÷<úÏþÃäÕ"?Ù.Ë‘cÁã žRy"yùùAiå߈€Â7ÄŠ›o¾™[÷¡il×(À.LG ¢Œ2!k0 *¢94Á”'>_¢ä… ð9rmϙΣ0QÁ±àlàkC¯¹Ÿ\/l—ÖâQHM“ƒø‚cœbÉFÝÜB\üdèóD²7ªXE2¦¨b!‰`-ñd‘orca}»rÚ“éÓ2D8wv¬Xoþeç„Ô¨!Švè=î¬ëÔ_þ„5k‚‹ñĈ#bFŽô :h{ð`µð3lÈG¿~Ë;t`Mž-¡ézýukéÒ‘x½òiÇ"¡€Gp7TW¦´ÀÝ8Œ ,øj9r$• ˆÌPpÌÓ æâóüݼy3Œ£`‚ˆÁ äèÉ%ßÙ±¼·( PtdY£o?î?Úq=dpÕÏÎ×øŒòoâ; ‘—«ƒûÍU>nØ%߯¼ò }’HU|óòs‚•âÅÆ&‰Éš ß1" /™›Ÿ2Ë Œ@€†ÓrJ¢]Ð7(U´ S†»­F ®vü˯3³îýçÐ?ûœfÙ÷ïaäãïÆO¸ì¸p§"æ]È '®^áp†þ–ŠQAZ€©/†ºPÈ„„‘?ýÄ:VLwÓÒØ±zµµhQ%V öb "8"c@ Ú= Ì”)SPHG0_'"VP†A<àXFVr¸¦‚hà5¬XçÉnx.ÀPž )ÀǨìUã”<~bÖ"–>Z8H±˜{sÕÈPTyqQ’ÊH,‰’2þ†\Àx&”â;©ÁÁ(VÈýÄ(ˆï lÛU“_8‡ÈL" N:Èp4±H¬V¸f q“ùÎà&¨i¢ðt±Ð¸BàxÍêÕ .‰‰K q{Üá^ÖØW8C"Õ"?CâÙËGBS¦~ÏópááØèø×Ï(@&[3ÆçÐoãMÚkð;i>À±é æ _FúÓ©Áq±b鑚ébâ<Ô;11êTÃ^~BP]vûø±cYkdULw¡´sçjCyV+V]an7_ñ¨ 5pùy=Ä ŒïbFê°Ûc;VÕ0_ nˆd „-2–Åg8C|¿cS³†Wò óX3ÏP.ࡼl8f|Lü™¼¦'.Gð³”f·£·0.Ǩ£Ñ”E$oà•Æs]Ü ®£7™ êÈì¢Ëa/æ%Ó(ÅóYÀõ Œì‰û@£ «}wÜqí¡*L¼¬0 (7©Ú.ŠÆØÀq.n8åáÎlgJâ†Ô€Å$ÚˆÂ÷+Â…ÐÚµsæ.p‡Ç[CX\¡Qq‰éѱÉÞ¸ÉÄÆ§Ùa[( p!´wïžÊ»¬¥Ô5輆.5Ó)bŪUVœoDGk“5õNòìŽãH¯7)11qâD $àz ÜV鞀2öŒû3œ…ñý÷ßÃÅ2DÀØ‹¯xÐDæ³Z qÃÂEpC¡|A‹ò0atL«0æ…Þ"­ˆí‡ø<¡©lçV ‹û¥q, 5†Ù7 ·R†9“Êî›5p\]ü—SÈlLz/ >8‚¯€¬qOæÝMÐuR ͇ú…\ëãàNfcro¡i¢)Ëé¸ul¡<r{¥*Úô@%bÈ|ÎST.Kv¼fÍos懆y9 ¿+W¯ªÍÓ¯wy«ó+ÿayõ?¯³~þ…—:"ctSž4iÊž=‚†È¯(Q“Œùâ”õŸWFí•kÜ¥§3ϪªÄPÝXƒ:i ¿±ån˜ìø<ØqñâF±"¯6!˜ééL’.V,‡%?}ÿýÓmÚ¼ 9ìÒåÍ.]^íµŸ¾}»v=úègŸ|’»ˆ‹“ÿ yþíÔ ,jÞMôÇ‚É!xoågzZöÔ{2±@?Oydd¢n½«åÁâó[¨D£ÿiiކ sÊ+Ö£ 6ÂÄÅíª1¤@^ŒÏŒöï~–‹~™ÀY'¹µêJ`ÇÀ±+Ôsì„Àݾso‡ŽÏó%Ĥ0™‚pôñ'½°oƒ;Ù6Gø¤ÉS.;üoÊØvGâúQþS²­LF/Ð÷EÎR`Šu“lT†˜9ΖPæ³¢¼Q³Ú\ùóù“ÔcéµÃÏü—qï“㘰 Ç ŽqÙ«„¬¬üñqß¾_ ÜwР>²&ßïë¯{÷ë÷ýôéqiiqq,‘,ññd<º—Ë(=Ž@¬Õ©Ÿ±±‘¾2¬åÉ{ÎÏ“§VC|<ú¸£I|VäÇj°KFØŒ¦â²] ¨ºõ‘T{ŠÛß.IR+f±¬+@¿À4*/g46É»êŒêeÜ®Þ%Õ¿æ]vÇk×Îþm®Ã~ô¸Ìu†D`k Ѐ¸X1¦¶:,,‹õ1@XÐ+&Mš|ìŽÕ`åS†¯98gd´A¦³§#1#WÇ…c+)¾Ô¥Œ1˜œ_2vrjÎÂ7(W$íldÈG7£eø“à"L_ s1.i kgÍžcs¸ ‘1œ`†ÆÅ/¼øòMÕªýv‚Å"H-kôЉŽ¥$s£p¢Ë&'b$㦛nÂ¥;C# cn/# ´‡SãÞ„q†¤Zæ‘â+/˜dd*Ÿ8¼D«Ì‘Mí¸àµãÔÔðÅ‹q°i½új+MðŤˀE6RÀ¢/ÖKd)VŒ‡|ö™W׎ýü_0ûÅÌÂëâòž$ý˜ 3%PfêÅæÚ¾sϤÉßGDÅ27D¶³f9vŠϊ½>I:ÛÅ)>Åðú U"ÉÀÜ1Lb#c*ò!…!æŒ #5pj†y™¹ª¹øY°€òŒp¨iJd`¥ûV©Ù+óà@|Tã>}ú c{*¾y±ÉÁݰcœaI{8Ë(áéèH\2à ~€ï n3j-6E×k²ãfÇ”!ãtFlÙ¹uëå¸DlÞuìXL||hHãZ /pp&'ß›OlÁ³ãu3fÎ ²Ø÷+.€XJ½eö©lĬ²Lƒq&.°^'Ã,|1ð@Áhx’Le35QS- –0^bÈ8f/£»è!×^{m–îÎDfJ®0€Uk, T{ Â"(CÃùåjƒœ1J v³ø>Xa2ŽeÇÙ±æ¼ÞhæL#È"Ë&'_F‹4X&b+6ú1õ‡ø„$¼¸¤¦e¤1CÉ\ ׂԯYV Ï™gw…9n9dc9zª­[ ’Ÿ²?|,xõÚõ< XYpìXº ¦×Bb€Uø2'³+…ùú±cc,Ä9¨€µ å©á „Æb,(ƒ¤¬Ad‘#àרkâQð—^G†òðb(þÙi4‘уkÁ.˜¦©j¤ Ì%i-NƒÅ5cŽRµÉŽ žKèRT Ýøá²[´–ëï WÁ'!¶_K–®X¹jÝòkV¬\k.…lY¾bõÚu'Nœüíwã—-_½hñï‹—,Ëm‘½ -Å.S¼AÉsR ì0Eº%„¡ýï¿ÿމ§¥;üLc Ì%z†€/ ©&ñ+Þ {Å]_¼ÂÁ(È¢ó²9F“Ä‹uRÏž=…àU{˜/.¨ÄÏL–.ä(Ž‚…ËFs(ï"ÀqtaIêZ>þí·Ù3gΘ5k¦¹Ê…îoz"7ëL‰2 ý4¤5Çg>áXPŒy›ŒÅan´18†¥@°0eaǨ½ÂŽ)òrvaòˆP`å´RàXj–ḛ̀à,=®1yLÝ¥*¡Òl÷Žñ…µŸÈÄ8ãì˜yàVÅá„’èÿê X—ޤÆBߨ»˜bÅ+ M’Ëá•c¶h²6S!Kꟛ—ÿ²*#@œãŸßݲM͘B‰…ƒoȲ2†&¬e~‡8Õ‚ËÀÝOz"Cªë‰Ùð”™={vÖ©/˜ÿ¼M íÆ°ž83 1ÙŠÚ„çB«q,C€|Á¬"Ü™,ŠXŒíÓô³tç‹L.¥…†ž'éaV˜—k–Æ(?æXa²ã³¦Æ'gë龊¢Ìd¦SŸõœ´Ý±”÷‹;qšÃýæòZ‘NÊÑîØxjU ÌŒ1@‰qA‚;3è§ìçÔŒã<‘´\ÃMvl²c3™©S¾³c5sGÉFo>Æ|  !@Cµô+¤<^'(ùU•å‹b!˜ËÜ?4,ÛðKN˜f”ÃgõœÆdÓ„cŽÍd¦ËŽ/9|ð‘_œW0ZHN®èœ­òM±Â+ÎN¬ Ã¥IdÕX3Ò$ÿ\‰—{Re F;¢+Ä£›qZnÞQÎ*™plÂñÙYV`}Ì”Pœ[›©&ùç²>~ìØ‰ãÇO¿H™ÐÐб¸Ð;ØÌ<1$M¹79çÉJ&›pœ7ßÇúµ Â`E4lØð¯¿fHy˜¹¾Eþ³C† Å™*툺4~ü„Ó,ÀY,¶n˜9²éïø’©›Úq^MÜðV…ü7xðÐ%¿¯X¹zÝò•kV¬Zk.…láߺöøZ²t1>ˆúkùÜÜ(Äj öfp¦³ÐŽÍ»P°p,eXŸ:ärZˆi‚_:¯ÊcºÀÝÌtQ|VàBhÞüEQÑñvgÞ5Yp¶)ë38ÛœˆõÐy^¢çaÏ당¹¸Kv3ôãûØêv_x›fºHp¼vî¼…áQ±V{(ˆŒ§MYã–Ð0p|Á‚3ù…&ð‹``Š&;ÎÅÁ&\ 11bÛ6×sϹڶu=ù¤óÉ'O<áÔ3NÃO×SO±¨Ì¥²´iÃ:lútoZZˆÓyQlšéÂ;ØdrÚœ¹óÝ^ÜãfPf-•7nw…F+ïÂD’–R¬±-f^›¬U|%2²Q-òSÊËyrÏ¥ê”3ªª˜Z«í¦XqÉÀ±ÄÊ[´ÆÔ>ý4 òôÓ!zƘw¶iÃbÌ\Ü%»:X¯º*¤gO¿Xy~“Œs–ÔÆÜÌÝ1L£5~V@´¤ÀrdI§?íÏ´XS—-KàÀi¿Ä&&fèP‘qV ÇŽõÐ¥aÇŽ#¿ù¦zÕªM5º¹n]2µkÔxí•WV뎭[5Fév³Žp»#ÃÂdK8É3°¦ ²Ö6†„°V[òqO;‘ÛíIIÉ-t©Ì%nÍ<€-æéc|*7(ÑGÀ8FRY>_‚~è¶oß>¬´Ð…ñu‹z©-8d¡˜FŒA£1«b/Þiq#‹ DñÏ"ÓR™å×$#=¡1 ð>CÇÑŸ28®Å­Ì+¯¼"žpI˜Wz‡K qV.& Ãã­z2‰ ükõ;¹nÕÊÙ3fÛ ÈtèøáƒÇœöÐ…óW®X‘À¥Åôè¥6Ü·wÐqëÑÃ'X‚OØ'Ÿ°w×®ø˜žRãƒÄϤøø¥‹±ñÛËc‘®ŸZà·h}“,”ÁÏ>_x®*üÆ[ß}óø“¡W³Ì_Ïvpó¡GB_~5¼^}{… –_ø±P`tý†Ä'ž’‡![¯|jZ¦oú†d4§Ïê)Å©7è{¹rÁwÜézþŰgŸswìö𣡳fk§KIÑ.iÒ¼ùq÷Üã$Ìz‹Ûù8Î ÚðC‡FE¥çcM±â‚ˆóçå(ÒjIH8zä±d÷ÂÛÎ$wÜ÷mܸБ€›"ðòã%Kþ5À:ŸÈÈIùâc»ŠJ^}êçŒP¾~ÎǸMk|zº½Q#×{ïù‰òxá®›ð 8»‚áÅ ÷Þc;¾‡Š/qˆ•"ϬÁ™¢$lÞ¼™·lÙ‚ŸCJ ö¹sçR'Þ³¸3øÁÂQȨ´ñ5No‡»B"’á·;h\zãh‘j¹i“&MÂá,‡S3°¡Oኆs»89üð“KìüØâ%ˆ¹å–[Ä  )ÃFÂLdåä|«P=䯏±zo·rãÆiËWZâRö‡FØRg¬þãj° .Z´ÈÕW)VŒ;S­q“ÁŽcž¸ƒhÞ„1¿Nß”¤Þ?³øÉÿlᆠ,©{eÔZ°*3w:ì{~2uš5v\ ±ÌŽMÕÿ5ú£¸0¾ÈUÁ;v& ™eýñ§QÍ[¹„ÀÌiÎäíÙ¾3‰Ž€gꮿ“„ψÙž¾u[ki…×›^²ŒuÍšDíÙH?EÅÒÀ!!ƒÂQžtØúw‡èÏënwZíÚvÖRm^PÖdÇyfÇÅŠåŽ¿Ë Ž9Üc³yôù§Éz³*tG|üäý\\âëzÆŒ×"ƒ'Y¦ÃãH‚Àœ`1‡ †Ð2 à +îYå#‘½d@“óŸ’Mí32°ãl8Æ£+~`q:®½!cÇÒÂeË–‘‡“âû•ÎFàXN7¾`ªˆ-Û¨Q#FóùùÆoP§@0µ‘aùò功ʚΠ—²²;Æ} $0ÿ®è ÜU9OùÜdxtÖ©Þ¿ð (Â)D¸9}øòú믃æ4 Xÿ¶¸9GE-äìX0eá˜Q£bÇ÷Ž—n±¦Ý~gHÑVvmÛž,½‚ÉŽóÇQQóõD@ûÄD?q€Ÿ°Ën?v,k Œå{?99|î\²ZãH>ßtŸ„;vdå»ì Ò­õˆ‰‰.® o¤%̱‚Ì=äN+VŒ; ‡Ã¯‘2Ö¯_Ÿås©%ì˜:ÅU9—Žó€¡’±&5'µX,ÔGstÁ åðÂÊ‹3tÂÖ±£­LGÕªöë¯wÜpCPåÊÇ*T¾æòlôÔ­Y»vT:,’‰¬]ÇR¥ {¥ØÑòå-×\c¿î:۵ײV‹üe¹é&¾J½Ã‡kªæ€M#°Þèôb%-ÈÁú“–¡(ó»ïG6kîŒfÝ£gdÓfN,k?-ŠoÙRû¹jUÌzÛvM“yô±ê5l¨ žèôŠ•¬7&Z­©%KgW-f9|$… Ë”³¶jíz®cXÛgÜÏ<öÈc¡ÿü«l­Ú¶®jÉ©7Üh}ð¡XvÍš¶ðð´;’ªV³oب·'O0k²ãsÔŽÓ¬ƒ£õ9þ#þ™u¬Œ†¥¥±+‚Ë…GÇÅy|naá’_v i|‰,èŠe² pà‚Æ|'8 ßÑÈ©Üþ¡‡E…ý‘'ÄÿGð…oÐ Xœ®š?ìxþb° —­4›ö¨8Œü$ä¸ýüŽ%øŠÔKX)/&ñ#ðN?÷ïߟÆÓl*QÑk€u*éÕ«—þR%s.\˜¥‡g—¾¢J#zvÃ>L¨`¾!dèLÍÜOé|Êc:¤žðÃpaz;¨1ü—f}î¯ ÊO:•Þ è-Ç…•ç6”·æ?fÌ[hsGvEA¶8ž° ²«E~²]ö9ÃÇOý~Ïþý nDVŒW ?“32¯XÁBÆo/&ùÞøøŒ¼ v‰à‹,[¢´uŪD%Dð|iøûqT³.%Vð³is—þøéñL—$´º#D—5î¸+D*ü°{ԇݲ#-A™5Ú[·¾ÃéÒÀÔjK«QÓÆö—ÿ÷^ä”ïcÇŒó~;>fØoLLÆŸ›“ª×°‹YeØxÇÝ!œ®fD›¥V]‡(RÀdÇùÎ׮ÅRÍýÄamÛº±ÃmÓ&“áÇs=þ¸Zä§ý‘Gv6lÈZ¶hÛ´q4kf-W.ÊbGùHk§N„ƒJÀ1Qi>ŸaÇ5jÔ8qâù~g4 ²óe ðǘոqc¢ 0šð9Oü.á¡T%bÅùÏÏΕÏ[”¢»Ja¿êø‰žËO)‡ ¡@Á±Qô³¦@¬ ˜#ô =K~#˜K@0ÃkˆEÜ–¤ 1Ê„´r Zí¡gBßüeò4xªÐYNJ=„xÀĦ$«„á™ZVAŠ[ùë€ÑÚ‹™¤i‡¸wßÒöéPýC*v|»K8oë;\Rÿû]#?èš ÇÍ[ºþÜœ8fŒ·H‘à[9ë7p4¸ÕÙ°‰óûb9õUE-«WûÄŠLm¸O«sqÜ]÷„ˆ|,5ß{MªQËîñ¤£&£x¸\i> Óî8_á8¬}ûðNÂ:tïØÑýÜsÎgžqµk§ùioÛv[³f¬e‹¶±cGGëÖÖ²eóÇ„ž…šñdc¢@ZòŽAaø2è2xQàÔðbØ"Ä—q<*,è¡+æÌ]à ¶†°à¼-.!-:&É›Ì"™˜øT›#Ìbcžt(`Óí³Â8‡Ìý¬·§FmÇ- ­îpí½ùçÀÁÑ çÌï? ZÙBìÙ›"{wïI<Ô+ΜÏ"y6þ½[[¹*¥‚¥Q'lºõNF·¢:½Þ¡SXÇçß1ü©¶î/¾Òj ¶¤Þ{hõZvl‡ õ~ûvS™Ÿõâ3X»¢×ºD`YñÏ?)¦eÅ%gwe³Ez½‰º, d‘W]>¢ãb8 ‚Iä, ݀⑧6X–pÐÏ=±‹ŸpdÀÅ–£(ÏóÍ UЖê½Åü›0 $> / 3dì=è00œP!~±Øã…–r½XŒ /³ž>}ºXËù¾”µ:Ù¤*n ¡¦Ë‘Ãå“•e[@$-°IÆY$’˜'Bç'— @@†p$ÊBM¾0è*Ä9Ýh¼z¥ø¬XàŽˆ ²¸\¡žÍ[võêýň‘c‡~=‚å›a£¾þfd¿þƒ³‚Ȃד&O¹“¤åT”ÙnO;x(Ågä›8uÞ/“[Þ8‰NŸâqºIÒÆfdåóTµÙÔŽ/18ŽNLM]¾lŸðýûõÃ×7$=AmTMZ‘r†/¯=µiiD‘ð½1ئû(åcõí4"± ‡òr÷YèíÁo(Æo¦¿±Œ:6/uúÅ¿1B­"¼9VØ ?/~o¯é³‚IÒL^»nSӦ͋,íÚµ?xø^„ð_qÁ|VY³oS )£ÅÆA3qô£Ê‹k!cFʨAåˆQa²2‘Úw®LãœAÉKmiibÇ–)ÐRXŸø'õœ…Û S¬¸p“¤#,êúé§Ÿ~ä‘;>Ý®Ës:<þĽz÷ŽOHþ@^½óÈR#€nȳ&ÏÉË.a1–Gèî‰ÉËÆs[´ÃyU23s+Ô·¿ K£$6Ê$C µ«äcHsã*Înà.c¨ãáb#!eŒœc“üÖ²÷TéJ7VelÀ볇(Å8©¸ïþb|V\}uÑ.o¼#Æm…8µ¸0>+rT-Ô“£¦>}œã”ñ¼ùíýÔ«‹¦¿ã+D¬ ÈÌY¿Yí!‡Žœ8|4èȱà‡ŽÎkÖmüä³ÞD 9€k!};k–ãA6"æ]ǹÙMgæâñ2{Ï¿þ3Ì~Ô‹ÉÈDnG™p\ÀpL&F=6iRØÄ‰îñãÃ&L¸œ–‰ÃÆøë/obbˆËÅèÙü…KMv|%XVLŸ1+ÈâØðèÁÃÇÁbÖÿ8ò‚Ñÿì?,[dK°ÕIœÓ £爕FïTcgâ}ÐolÀoãYÁqn'=X7µã 'VdïÀædÝ‹ñ¥àË8¯þŽ}Ѥ$8“;Ìýí·ßý2}frrJV¶CÂ,s)d R¼À±bÇP`aÁ²‚)–”Ù±kÏÄI“ôYy+Vd\PÉÄ(K÷éÚ¾}{5I6b•„{)2LìóÒw¬Œ¢ËF5 ¡ÆdðCò2óèc=©8K–î¹PN*c’d,Ä8JaÆ`*Þ]rÓ7L8.`íX/ãÑm/ÓÐ¥ZË‘õ÷ ƒ0œmÙºóïÝÿîܵo×ßÿ˜K![vìÜûÏ¿G~ùe:3Ÿ·nßµ~ãænÉmÙ°é¯neæŸM -Ó‘ÀV¿÷¢ 쎦/2*‹Ÿ™Ú#„W8>Ýú‰6Z÷Ï'`ª骧,ßüû@35Ŭ¥*’ÂnYc¬)'5«†©fÙ.§¦¼róbjÇZ¬ð–¤ü,3ç˜)Åx|Ÿd¦BšÔ?7/ÿeÊ`¦ÉÄf´çøÌç£X¡ly%y˘d„§üö ëÄ8§ÀW>²eFÆøø¡8‡4’)BLbæ=ëä…Pgé¾ ˜œ)3Eñd¢b0?€J<ˆç[™jDßÃT~ìå'L˜@IiP ƒÆ¸žÆÈFèó#z?*Øã3ŸiJÓ pæ½ Ç&Ÿ" ©áêdm¦+9©'AxnŽ|þ±[üÍâœÄÚðŸE |·a„×¶m[ú<º0Wžb ¦L|e « /.pHì2”ò"VS n¤„ºÊ^™jKE¦›2÷•`üÄá ÅsÃü{Êà§…L  =ldò F#à‹Qàgz*Z´(—ÏDÓÒ¥K7oÞ\dŽM86“™.\Ê_8–Ï|lƒF(Sñ+ßò`¸¢!ச ŒD&óöÛoƒ¼4rªü&ªh5‚ò 9”™ ñù/F~Á·”™’ÌÞ¢Á¸f…)K €/ØJ¯Ê^ïºë.©—DB ÖŒîãvÁâã˘ÚqÁ劔-‚h²™ÌøåøÌç£v,Ř×Ydy •Œ+>W³|ÿD£vŒ7+¼»03šœ¥»c©7^¨L²‡Þ2úDZ8 ÄQ »Èãè ÕBðWæÓ#J}†‹yi¨(ô&\ N©È<¦'2eË–¥$Žd%<‚QY6‡òL86áØL—+׬YSœ™p\•ðÎ*NSìØŽ…CœR)—Š©zL2T…Ó(œ¢l ;Crq.(¶(À1.[ñ¶¨ô ¤sÊ@®aÇ´G*áŒk]N k Éâ<‹òx•1áØ„ãüÁâÜÞ:3]™ÉøHäøl„ƒM<Í×#6ñUÈc„Y 8G8La»˜Fà·1Yz\.„]œpeÙ€8;ˆ¿TN¬/‰Š€ˆñÑG‘ó* ‚q<é()íኮ½öZ(0y]⊉ز!b… vcZV˜ÚñyÑɈ“ûH3™É÷$‚ÓŽÕ¤AR£á"04'ºQD±5½¡E€È‚Ë2”‡ËVЖˆˆ ÷¬ÊY 8x'O1´f±¯€G‹mÀJ‚? Z€¼”ÉÒƒ§TªT‰ö0Èvc¬M@üÛõÄèžcÙˆWØn¸AE¨1µc“Ÿ;âÝ#(#È„LýÖLfúö[ž콘…X£­}ÁÙKa&S`YUÄ@BGJžP(°8ÑV^[Æýh3lZ“Ÿ±0“>l6›€>m“zŒ5PyÇñ9N (' 9Œ›£pÜŠdSY±ÁÈÔãù$Mƒ(3r,3gGôPb²c“Ÿ£Ñ1£ƒ™öë̳æLŸùks¹’y~1«_ÿþH¢<ö‚¿éï8{~³ÂîÓ{.ö˨¨.~¦Ý"çæ§ÂïÔ’‡£JƒÝ`4ŒXl'Ô¼>å5ðŒ^[MvlÎÊËÓ¬<ç>nìØq3fΉ‰M"ÆD")É\®äEž¸øx¦JãïWýíÑÍ8çÍÏ«"›*¯übdËÄe‰<àç5ÛÏ%¦*àWƒñÔ‚ïbDgÌïЋUôHUR fù)äv½&¸X¡­‰^®¼@\+Œž+´µî³"Ôª¹Z°Ät!d&£zè„Gzu÷ó{.¼ƒÍ‹~ù ýsüi:ؼ”<ºñiF|¼Üºûõ ýòK÷W_Ü"õ³ùâ Wß¾’?¯“öëçþòˈµk½„òt¹ ÚÁ¦Ñ—ò+o>Ÿ—îÛ¡ÿkøO1DÎtql^ô; 2 q òèãíÌb…Qà€#€°H)¨Ÿ53ó´ž›3üóŸIžÏÌ{¼ÕËI¬ÐÝχ/YŒ¿ã5ì,Õ«;ÞZ­y[õêvÙx>Kõê6YW«FÍRmX½zÑ·Ýv>õs¬vxݺÁº¿ã@÷ó‚˜(óŽDmÈ1¢Œ¹–A62W çÀYºß,Ì6Åñ•:Üuʨˆqo òÊ œËø]™Ç&©äyhÕXPæ©1R³´`Ævî nƈ¢-X&;6áø¼´cýÖd&$dÜ÷@hÑ–ç_ ôñP,£?ìžmv·jUBñâ_ íLŸØw’G'%i÷·k×È÷ßÔßL ßUˆly5d{r²Vòƒ"YtëŒB¥"I ƒ†Ï>û¬x*CS^y­f¼:Ê’¹›úóÊs/(Ÿ’œ¬PÃŸÓØ7âcP,l€3‰'-I|­rÛOÆ¥NOçõ“²]]Ž ·Öª#IÏ[$ ˆ)%^0‰ç5“¶á€- ÈòY×öÖÆÔJ£ÈÃ~³Ð,_L ?J›™K0éÌ€@–™¹D“Ì1uŽM Œ“}šïSåûS¼Õ`yŠ©?÷0Ë7¶ÐkÇ!îȉ*’t!N9³cÒÝ÷¸î½Ï•êCX‹5õ†ª¶kˆ¼bebñRVoŒXøžõ -˜ßáàxºÚZƒãnQâÞ˜tu«åùLIÕJ’X(ða·( +^(Ùq”ͦ…ñx`O⻄7VÀ‘ ßæLådr=aÕ•ßB_æããܤwïÞØÐ0_ˆZ™wÄì ¶°†Bò>°…™B˜Ú0ïËs¦‰óVy «Ä> f&/Ñ6œƒÚ@RZÛ·o_ü±Ê{Â%ö³FZB—ú±ãù‹…BbÜÃ<¨ÆÓýÀ°¹Ìò™“Š;¼ʳ[äÔœÓw¬ Ô ‡C~¹(<2¯D˜5ÍfjXFù£G2³3g¶ÐrrT û¦¯HåîÍ™3gèС˜Ù4“™²¸A=Üüœ>}:ÿÜ@NDöâ5‘õïߟ֊«\©&1WŠÚ¸¥[·nx•pÞˆÿ0Z˱œ0ÌÝ¢Zã笹{ü;ø÷áwFà8ÐÔßdÇçÉŽ # %mdKÿnÉT€0~!¥ó2Ü•SýqÔydvÞ8¾å7èå×íæe¦¿ EŠíÛ§Q*Ø«PÝI“bÙãY¿>±h k´W±cZ¬èÝÇsÍu¶ªÕõnvìݧ¹ØèÞ#ªãóa:…U¨lkp«óÀA*Ôš8sVÜõUí×Þ`²­ÛãÑÝ uüàC;–&q‰ú;ˆK†>E2aùrèmzd¤Ö4:¢¿@`O5%æ'|Øe·;–µW·5Žr»=ÉÉásç*v Ì=÷Üsâ÷v  |æ3±°~òÉ'qb-Hʼ#L9œ‚Sƒ)ÅŒOÊPXVp®zÛm·1§³sçÎx®1b“G ÿøã8ÀÆ1 þP˜eCX,ˆA¼âkŠ™øÔOmÄãjƒ_A0ZËs¹³cà×à cÒ*—C%=zôà,¬µ.ÜbéÕ«ÓFqಆÀ­¢Wxæ™gpKkñjHgÀ‹JUx]iÓ¦ ždqõÍuÉÄVÊ`Ήf¸Òåˆ+î.åé8;}î`ðK«©p[®o‡´ §àL“e2wþ©§žÂ³MBR€Ñgé^i~úé'¶sÒW^y…™¬ýõ—ÔÀ5R’žæþÖ[oÑ üÂ<ñÄíÚµäjª«` Ç2yWº(“ç÷4Á† ?xÕõՌ̪]ס?L m3-–T$‹;’¶mKºª¨EÁ± øðÑ¥JoÛž–þßÿE@®ÙØ÷KNœžk·§¶{ÖÝà­Î¥¿'/a™13.$4íCîº[+ ƒÈF±â4ŸŠ‡—(‘¡ûåvÌÖè](dHbâÈŸf+†ÆiiìŠX½ÚZ´hŽp ‚ðó¤‚8P?&YÊLúјðŽûj™DÙd#` ²ˆb‹*ð üÍÒã€VŒƒU2M“)C ʣϼ{ fGŽÁw UšpdiX •fû™àØI›é65˜øîÝ»i å·“‚’‚Y´¹gÏžèªrô"t3"þÂm™ø/AtèB@j2¨Þ 0‡é0¨&¬à`–Âô)zâBðò%ÓXóæãJõ®-ÿM\º çìß¿Ÿ<ùGð9B†^­ZµïtAÈà.qvÚRèôXl¤#„øÙÜ"þ 4Cn»Ÿa%éœêÕ«gÂqÁ1+ˆ*÷6(8uààèÞŸ{¾ýŽ™Iò‰£!Õ)6[ª Y‰ô ªìÙ›¬ƒ[^½*k{ö$oÚ”´~Câ†I7%­Y›lIÐS¢®ÕšÊ¹øIa©ÿ¬pÿ b…h=?ŽjÒÜ% ܷ΄Æ^]ܺ}{ÒöíÉW;)VWß÷Oò‘£‡*ƒ¡¿V­]ÂŽ[Ý‘=é›Àr¬{÷&?×ÁýÎ;‚u'N¤–(•þi/Ïû:K2õOŤM›<Ÿî2Ä;hÐÅZ¢ ðÑ¥‹åê«£ûö¥1Ѳ=ªÿÐÏ?w÷é£~†õíëøôÓUmÛ²&Ï–Ð޽ݸ^|ÑVºt”Õ*bó)ų‰°cP†oy€ƒGY¶ðYV2 ,&À\Y^o%¦ÀP‚4qóÍ7CB¾ ñÖÊ×"Å€c„]þ³ /ÞÿÄ !Gá6ï8¬â,œq '%ª‚PQéò"VÀ4Q*€czœÂvùœ?~ü8S|_ƒD^€§‹NJ”k!­Â i0ß )róºuëxWÁwñwÅ,[ê‹“CšJ—#ñÄM ´šGéTú€<ܼêT dùPÂÐÅ ç˜Õwæ'}s[@¹4Й–s‹@d¾9¤*‡óJÂI¡ö’¥E‘)vÇŠ²Aª@Í]Áñ¤ÓÂñÒ%K–žŽ(ÁçŠ\eiÖÒÕå͈«Ù¯¹ÖöïþidÓ¦Î=²•OA§ððôÚu¬ ”ëA6AX…u‚õOF… ÖµìÍ[¹7s²®QÛ1aR¬þðdèÅ´òï¾ѳ§v®jÕíà½ÂÛï0”“~næn9³ãÁC<+ÙÐ t´ÍnèîÝ)ˆ%ÿµ%éêb]dÈÔ¯MHAÆ«ÿ ¿©ºýÞBª×´ß÷€†Âï½!œ7>^«¶õ!k×&tìš#hÔ¬m¯[ßQº¬õàÁäÏûD½û~„bÇ2€3fŒ½R%gýúÎ:u.ââ¨UËÙ AH«Vκuµk;dcíÚ¶š5íµj©E~ZkÔ8xÍ5¬e‹¶±N[•*Ö "ƒƒ…ƒ/ÂŽa|¼ä<Á €ëñ°ŠšŒZJìH+,8†ÇOÙÃkú ßÎPQŸÏà¯d -0¥R)hÅÿ_SÀ1*ÈÂé ¡à>n³© }8%g‡ë €>ãPÎPè3€*΂èA, •PEFÑ(@|ÚF¾> ž ÷íÛwÝu×ÐŒ›À.z&ºDZˆ2€Î« 6x½Ô#(Lï%r"ú-ù@ùwゆ\¦‘*vL e¤Q3é*TK3¦ñYÀO¤a<„Q^΂X Žs[h©Êù§ÐT9üå—_V¡…ýØ1‡Ó‰LQø©rÂÇôðè‰S¦îÝ·/1ažà˜µð“ØÎK—-c!ã·WSŽajy2¬\²TSS—.sÖ_õóTªlµX´oÙ&Í\2Ê¥%gwŒT["Ñû@YLn°íI÷éΙ^o:#d«×$Ê)Œ‚µÖm²ëÚ-R6ÐðPÃýÚv÷OZ.œ»X!W ÛG—øc}b¶)ÅêÄE‹ã‡ ®\EóK´fmB‰Ò'Ù±€5ZÄËÃÜaér³Z´Òà¸ÛG‘<ê³Èd0vüàÃ!ÿ÷NÌßåJ›7?^x´\Õ¥&VäF<@fØK-üŒ&x½c¦LaMž-žÄD4p]zVb…€XÜ÷1Tpð.\•÷½2‹FLƒ­@37±‚ 2¸kßkAAhš¢ÕRL¼¯R ì¦LSë‡èñk¦f¤O”À‹Ïmx:¬À1ª‚°c@")C.g„cÐS˜#ò4Ô¸©WÚƒ÷Bz Ht¦/⯸ý¦®»å~ÒÙÈ^è¶T4ƒwRÌ]2Ü.D๚ÏZ"뀒ô:‚§F8æÚEýû Gm½˜[ ÃH¥1¸Íý„k糃“Ò*°‚& s—¸ct„ÁH(*´ß—;þºø…ìÂ$Od³JFPxWõuZbbˆÃ=yüÄ=;wÆ{½‘Œ—ð%ç[ø™·táB2~{£ÂÂøîK7Ôæ¿°Qà0ãä0U“¦ÎvíÜ‚䯻Îö¡Ž! ;{ô< Ç‚­ï¾ ¸íÜ•ôi¯¨ÏûzªÕp”¯hûuzœ<ƒûö%ß|‹“-†¸öéã^ÐÍb%ýáXξrUâÍ·:+W±=ÕÖýÄSn*¤†÷>ˆÍÚ>ã.UÖÚ²µ mDÄ“óµ¬xE¯(Zܲl9}J&t¸\y *ð‚…t®\I×üû²ô”?Ö'-_‘9¿ûn_öúSžÚ¢•«Y3-tJß>Qtbˆ/ä¿üÊsS5™1c½dÜn­48º^}»ÖÉ qR¬P½¢ôV—Ò"MÂÔLð*aŒ!\NçwºU—1eüÀòÌ¥¦bè&–ѱ±ØùǸ€/ätÆŒ`Cù¼ÿp7Þ| @+¢R%È…p Áã÷ǃð FˆgUKb&ŠÆŠn ^`É@\à´¢± !®ZÁ ÛÀ<±‚2GûöíÅö8Æ6¼=g²¬PÌQ†³¹ ²Iï ÅkôqdDVF‹ ©\;Ê œ—ž†]àûTN©‡¶ M>+¤MœÊpA[ÚÀݨZµ*ŒÞ(Vp]¸µ5²cL5¸ˆ'r‹ádSjƒ¿óÕBaEiž\€®jàÎ Bà›€Ë”>U‰2ÀÈ5¢Ï0®È½EôP&†…D¬qãFk‘"öòåíe˲ØÊ”±–.„õk©R’g­ù\²$Kn{Y¤©ðäR±"¸ãÕ¸ëöÙóŠ•°Ìœ/ʃ2@xýˆ¦Í4´QÓlvl+˜g °oÞœŽ}úolúè1Þò¬l M¯|3L½jâ51Æxcãuºj¢WJH ÎF$ €ˆ€QÁ ƒ2Dæî†>ÝM7Ðs7=žýýöþw«÷>çtÓó9ýÖ³ŸsÖ^{­ZUµÖú×[ÿzß-kí»ïÖ¦ð;>nr¿ãÛ—-[±|9L1½Rq ðîpÃK€cŠ`²¬àdË@fÓ1i‘ ŒMÄ+8Ã6#†ðâZY4*Èìï—¿üeÄ›˜;Š™@cËÔ‚c½VDEÀ–@¤ª–&Ó‘8ÅT¨r$C8>1Q307%¨/Éã¥Rr†njÊÚ¡:*®Á(&¼qüÊZ;  £^õâb§I‹gy¶ELV2·fÛàÓ"·æ[Ö¬c·ÀESÂw ¼æ¿mÏ0ÂuÓ=$$Cå4m(·pÍÖ-Û ˜ynÕÌT^Ü·ÕkìNaŠ wÜâ¬0?c ä@Æ[o]õ•¯¬þÚ×V|²¿+¿úձϜtú›þä꣎Zò¥/-úìgîsísëI'-ûÊWþý]ïò±ák÷ל|òw«Ï)§¬úâ×]}uüýãS°léÆû4÷¬³V7ó3®_ýÖ;XÍ}8~ ëxóP;§,Z´áq¿8;adÿˆGÏ ¿O!›[à áÐÃúßúUû¸ÇßòéO{ÞǺßÜÿ·…ü'·½îõ‹1ÔœÄ-ÞpôÑKŸ3ð>ˆáø¬çÌçÀ:–Õ’¥"6>v3I½CdÅ„~ÇÍFÆLßtÓúÙ³ûœ:êÓ+–,Ý4Y\5&û†Ö/]šð¤õñ`KofÿÊ•™ÖÜüÛ`o0ºªUlƒ¬Ø¨¼9sV¬Yó“Ë/7[Å4† þD–Zß]Bkh%À*äÜDpØð«~r@9½ä-{$ÇçÈäà'{lå åB™?qXeÊÄOSEåmKÑm²¸äîþɶ·ù$´ø—¡ç^hsM°oÂÓ'¼Ä„Å-UCoÃïxÓ¦wnüø¾xÙ7èÄîØ¸1â…ùøj€pÚyçù¬ùu‰^s||ÓÝñfÏÞïsÿñèåqÃô…ýý¿ùÒ…/|á‚XÇ=˜ÊYÃy<È Ä åNœ ŘƒÀçï>ÌÈm6‹ø„_š'ó£Žê?HÜó.²¢áï_½åöÄR¬XÑÇ7±Äù˜y Oޱ»f*¯±Cþ6·ç˜´-*zËx}ó'Û¡ÈbŸ‡€Þâ…w×þæ ÒßKÿ¶Åp|ß7#¶iO•·è†Xÿø÷ÿȇ?ü)ÆùO|â“=ô±zÔë^ûZ°zŸŠ„GGbx°±dËWûooû‘$Ù‰zlD’Øöí#;»9Ü‘<$‡þÆ–Üî:¾`Boýú[;l+븣èÖ`pkt7úk~šðø¡Ì‡Äc2óqÖø$ «–›D”œðÜ /ÑÚž°:“mOVøÑªÍîxÓ ÐË«;ø»aíÚc‹>ù‰.¿ä†À훎?¾¯w®ZõÓO÷±1ô«‡Ïƨ” rþØgÁAc†—àÙŽ=ré5׬;äs?þñå83@ï’¬ãÇ>ažÐ³3ÏZý¬-pl'Œ¼öÞ÷ÞñÄCÇ ;¢‰¡å»†¬¸k*oãx}¤ëKþÛÂéÝÿúk/YøÎÿÓ·ŽýØy PÖñãqÞ¢E[E,Û\‹m\@6çÛ˜„Q_è¸[¸þ­-`=¾µDÀ]p?Œ‘±ŽIÝ÷¾KÚYÅÖd‘~[Ǿå¯A×’s÷osj^:òÓ²­›zç6s˜t›ñ²q£=óžñŒ %„†Âˆ'Ôµšð9™âšÂè×Þ`Á4̲·Î‘Žá?jØMoÏu·yÌd9OVþlbïᨼ€É@âf±ËÇðúųfÝð¢_ßìSûŒgŒ½â·^vùÚs¾³Úç‹îtï§¾u|æêÃËa(®O\,®¼rÝ÷sÞyk~ kÀú 7®‡¶|p½X ™|÷¼5g½úg׬»öÚõ³¸éØ>îŸým³h7˜3SªG>òfÖ18æK…NØeÖq¥]oŸq™Êy\åžýìy‡~Ë3Ÿéo>Ù{Ö³òÕÆ>òÙ\žç?ß\Êü·½-ÖñîÖ;Þa_«ñ½¯´óa {F︙znø-·lø—.<äA7óˆ`ù"v‘ÂØTßqÛ“ëOnùð²øõ—,¬!6•Ì+á ´8ØŽ\}Å+Åaõm‹³üÀûÍÅT<à›OúìÊxVÈßô˜É0“dØŒ7þ¯þäÄ1Ç.»Ç½ç`'xÔ½â,úôg–+ùËþ¿?÷ Ìæ]yåyVl³šÔæjºC°&s• ú<áE§%{ø< —^ºàMoZð†7Ìÿƒ?Xðú×O§Ïþ¡¿‹O=uÙºu ÆÆë8ÿ¦¸ÐïáÏ»4Hÿÿà¦lj?핂퇟<ÔŸn]¼ä„>µ§¢òî|Ï_°Al^Ü´8z1`[œÈèÄÀ(¦u‚Az(“oZ?ˆà¸+ÿÑÑO|Ý ¯ë.³o§l1I&ŸU«·+ðnÃñÑÙÛsØöuz›¦Þ¾»‘滾ïo^÷sÅŠi½8Sß{zÉ®Ê<¾úµÓº®]{gŒ¼åï¦Ág¼³§Òž'+ð·Œ-•‡¬ØSš}X¹w-”ÑÚñ6¹5¡£l7«|rz7«ÑÓ³ÝhódÝlsõÞä‹“Þmî¸ÓlV‰ ³ÃIž{fhÓìÑôG}t¢­¢ºSÞ~åB›S3Œ-«HÄÆêÉ;ß.Úf„†ÈÁ²‰ÏÂoVw’µÝÓÜq[ºÔ FÇû}}ú%Ç€sï¿ýv~ ùè‘?»æÆÙsçß8{ÞMsÆê³?<ž„k®›ýÑÉ·’·b["r·êo=ÕVHÚÊÝ` ³lBÿ™6›µ3Ý™ºÞðÂ;Â6…£Ûf7µÐ}»g=‹Ç~˜ûüªe9ÒÇwêq{\W3Åcªíì.Î:jl&+žü‘€‰ g.Á?4"q§ïf5¾õZ>9 d(g¢³Ú*­:;@®ï$/©õ+ÂRÎ:ëÌwÜ?qÍýøÇëSOÂqÇσ[l`mJÉÏïùùÆÛD*.c "% aÜøÙªvjÇ^g±k.ô¼ß¤¯Å#ÑI⾺‘ûZ×tÓ}ea¦í¡õ·]ÚµfÒ\qr{*¸Ëx‡ýÛ,tÛœ°WIÐÍ_¹»òi¿îØb‚;OVÌŒÔê"Ô‚$ˆn^¥J[ž„ªtŸ“=&?ßyéJëµ9ÆŒÔÛÆòQwç6§+GsØÉ…J·Í‡è»7ÿùŸxàð”"xÄE+‘¦%``ªà‘è²t‰ä 5+²!üŸ®Ø$Öqà8È+Oá^6(ÚÐâœ4¹>€‚QVmLia¬to¤ŠÎ"ýMºæD^”G›Ì£x€!!&Í_1¸š†;/-›?øÁœR †ÙO Ñ_"âf)8ÞDv—ª/Ëó·ÒþœÚ“;wÂ~¬2õ”ÕvþºóùïX>SKõølÛƒ>8*±‚ô…{†7€˜a*VQD·%ÍJ V[ ?ùš¬„üÞë^÷J Tà&ʶ/Ž÷¥/H¿ýÐÆ¿þk±¤Î%]æêOA0yšàý #2 [ïw¿û¥<„iì$I4j i‹ ªk‘ cÓ..¬Ð+8&*·B]c‰Wª´'Ó.‡ãfŸfZ(æ#pˆ^`[Û°/­þo„êVÖ-€>p)•U“giü­‹²ÛÈ»ÁK×»¬Å@eOFö“UvT︢ˆù–†˜làØŠ 9ŒÊÂÁP8#²‚Ö­¯YG¢ÃÀJmŠàÑĺÿýïO‡¬ |dY+7~d«ÂcÍD±Úd“©àž2Ì“­ÓÁ1€&ÔÀ¬v9Í™ÌDÅœ¢‡ˆvûZ߀ëµ²«˜©áŽ7ÏìMbGTª4ÝGN£Ïü® i'mÕ«`+Øœa`.ñ™dOè½ T‰ÿ,ªúƒ¸Ïf°žÝEok:Ç7HM_;€f.-¢Û;m94ïƒ-QÍ›{úÚd$nc*/¥µ˜‚vYZœ©<‰ÒMàö¥MÑLQ¼$J5lÄ6•—Ëã‚qÌaOYFx+ÜècYi,;#ì— Œµ3q‚³¤Å€G扗qøJÂdÍíróÐ%ĸF€ÐÌõõ÷¸G ¾Mýí8nÏk^FÂõ©Ï4ÿÜõO‚È»ŽÛ_&X²V¤ümÄ" Ðþj²Óš” x1î¨lŽë¼Rù0C³íȨ³6¨e໊)ó[fÔR¶¬Á^ÎÄXvÊç¼AZ»e­a€â´»TîòóëBdÉ O6¦  ”pÇcìpºG¨jÚý OxQ®ãàƒ:(dEs\Ã?0x¡g_ãø-oA4g…Ü‚¬FfÌ*ÉoÀÕ¸ä¢r+Ag;ÑVÐ\À#Ã_ ÈdÖ”&ñ¸ÙåJ];}ï’ýÇ‘¦Ïò¥+W,ËßúÔgš~Úc¼|ÙâŽccfäMÃÏ|’ úë_ÿ:iAóL@¼%)Úþ"so{´gÍ<Åž£€=é0@õê˜Òæ$™n†Ý¶)Ê?z­°ŽE\0zª`ͼ¸3ÇâšQ‹¸ ã!D¢ÈjeœA¨È–âÏÿüÏ?ä!xÐb4®Žbå—Ô¬ò©¸ãt5pPú‚à< ذˆ蚺ܱ _ \O[è7ðËßÍVÕ`iHÛú(ÛQ‡_Ú‚m«'±“¦":abþzí.sÀªþvZsH¯eR‘ï+î¨v–o@=ë*Ìõ9L#úU7ÈlO°w¹ãþ¢ÑË–Þ<¶ðÜ‹¯9õ‚+Oÿ÷«êSŸiý9í{W~ýûW]|ÕM·.ºmÙÀÞ}p~Ö[l¡¯ 0 ý¹Ÿû90óËû¦z"Bû«q ¼’µà€yþ(\õv|Ö‡\7©·Áš$3Û—·ÊSü ‚ ø2þw Ù߷źBV0^Sºµ¦Çb2Ó4§ÈÀ䞺•{]òɽ&ð;NÉ vBÿÑcáªdfƲ X••2ïšAÂäf­¼³.Bo ‚K'ÐvI!P0àÒ¶= LžÃüæ` ôÔƒeÊB“úÝ”Ê LØÔlv;©âê",ÛʦÑM58R>ZVwrõÕWO6@Ø“d…)è¹c ¿ý£kÞvÌ)ÿï›ÿñUÿûŸ^ùÖúÔg^ñ–c^óŽãŽ?åûß»ôº[÷y÷‘9,&—yûìÄ2!W 1²ÇtÛ1ìpU€•0Ô ;˜1kÖ^[ƒ±‘´,El†ÓÉa;ÅÄ••úk+ÿÅ_Ànew6„ßAV¤„ÑmÎÌ"ÁhÆ( dA²Í~rÈ!qŽQÛ¢"¶áw<27™Æà„‘à“ » ‰W´ƒ‡2R‡‰µ.6ŸFJLyQœíÞÅ&½8¡²í.”:Üaë˜æÊåË.¾zö›úʱ_:ëêëç^|Åu—\uC}ê3M??¾òúK¯¾áŸ\ûö¾ý÷_ºàú9cˆ‹Û‡û]f ›FÞ,žð Á5Ì ›1}×:ÇÜj‚¡,––„ÿ‹AŠuœL`:ëlÎÉB°mËÈ}mu~\™0ÌÌ–ñ}¼ÂPÊ“Lp&´ÔþâC”„½È””§x.@°É¼¼fM¦%·çæ½Ñ=ìæÕèîF‹rîNY¶x¢"Û0¡›CüWréÐ:YG—ˆA6vøÄ'>Ñ”¤ù»äôæ¹ÝòÙ¢ò<¥«W.¿ðÊÙ¿ûÎþüéç'Ø¿t*MwÍŠÕw®ËÇÏ~ï§¿sí챕+–ß±›§ò@¡ù'Vgv¾á o°ðb!@Ùõ²@/dÉv®\øÀLkî73ÉÛÖß"l¿\2uYTº  o n°dÇW`Mù†e!±d›¥ÂœÒÊ£²k¯³“Ym¹¯8D„QÙ.ëxßñSPLˆjðHÄ]7öf_Vt²ŽW­XvÑ•³ï=ŸúÂ×û¾ƒëÖoØ8#«O}¦ãgÃÀª]±fí_ÿí÷xîµ³ç­X¾l÷YÇÍá2Bdcè$¯°2ôqŠXÊCÖ1ÜÌu :±ßÿþ÷7î89[à³ýWéš½C¿æ'µ3Q®×MYFÅ *…f…ûÛžª :ë­)8„…ýؙǣàx/ÃqÜkÒMêH¸=ÇFî8Bà_þò—›ŽUw”ÝŒèɆޣS£“¢6H‘¸¨yäÈó7×ì g6F³Ÿ(hh|$nh²<·¹îýèñ£AF v§¨¦"í)V3:WšjO÷έ"6ÚžÛœó)8Þßàxצ‚ã}Ž­ŸIŒ²UÿùŸÿùÝï~7w{x’gU”\šó5‡³£š %úÔ¤­¸àU­ÎÀ 3Q¤Jë`B|‡ñÐDMä-ŠuÌ5'pÌrq/îœy΃ґÜ}‚>.„Ö°ÓÂF¹mÒpiÓ ñ OÁœ«`*‰¨©YW¿ùæ›™üø'í,u—ç÷¾÷=Í%ÆÝ67#Yi:W±_¥Rǯj´ú”P]d•¸¬öô¶j:‘«Sñå ú•¯|Ea¸‘:ÑaÊ©‚ò?çœs˜ÉrvºªYl¡uqlR*yÚð“À-5mÔ»Pp¼+Ḗ¨Ú»Žn±àÀ+ÈࢆrÀ'@ˆ½,ˆ>b =ˆØQá`8“M/I]ÌqlŸvÏ7—L¹eá8(0Ÿ<“Èr²P¼Ð†ÉpŽY‹”Yð€Pœ"ÅG„H^üÕ£ëd'‡ pꊄ·cov &0TÁ„–FãT‘œhº™'¦_ñQ iŠ8€Ò /N×uuNBæ#Öå²'™ÝÖÿK.Ÿ4Ô…bÔýÑѸéT“~Ê Ô5š^â\3ìdn›÷þñÇY/f2œµ-àSÎÚ_Õd"Ú(÷E™Õ)˜Pb,¦fЀ¤ZŽn{ÆÑm毕W­°ïÀ1DcôÅL€20wEiÇÐ …§ÀH]'êS‘¬‹T©mðš ºˆ2údÎ)®ò(ÀT†0¢VÀ×Y,q¥…kYÅJd=´r0ÎHxâ‰Kq.ѹ,ÜåÆf¤MS0ʨ‚ R0ÚRméq퀘hx†pŽô 9@Ì’.D¥‚˜vº l"`;X™ÅSQäÜê+ Â:RáÝ‹TSú‰‡?¼V¼¤”G˜*^ý ö£Ž:*“

ªUÓ`¶_õªW¹D^ûÈÀ2ð“Tf>½NksgùU½€¾_ Átáxçµ³‹¬(²¢ÈŠ}—¬È\˜\¦%cŽIøSÊRŽ_ŒÖ‡l5Oe@€¿¾¢žÙqÙ¬PÀhõ¾8Þ‰Žšef‚SàXσ1’ Æ#rV±Ža_¤Zu6ÌÏòÏènƒƒ)èW…ø0ÀJtG¯³K^cm‚w0{œJ”º;ÒñÑ_¥CˆåaÖ  †:"ÛéZÊ€mgsy¥»Õ”P7ªIÕÐåRM= ÍÕÓIŽ™Ïiy!°MŽ•*pœ6§oµ æ-«²ŽË:.ëxfZǬ@Ë™akç`àLÓ$T/äu ¦Âô”i%—0=óCÕXyYé úRw0óÓØí"%ëL‚Å:†àÊIn*«n‡Ç fí†a³Ž÷êeÎ `Ù£¦~ÍC‹üt0TšÕß¼‚šuÌèÆó*j8‹‚»ÅLcÈY,<ûWÉw)¿«˜lTÍ¥ç£aØ­&æz¨š_m•ù½À±k58Æ5›£Óì2—RŽC˜( 8äŒñ(븬ãò¬˜ápœ¹2Ô¤Ñ1á(V*úÀV •‡<ËÃDÓb¸]0Í6ć6+4ë¬AŠ‚‰³#ÆøÀ…µÍ1 ~p‰¯­a98ƒªX‚Çx?³|®.\¢Á±ò˜t]¶$¢–ÙfƒõÚ ¦ð)X ð¿ýÛ¿u"¬ŽÂq¬c¶2Ébu0в€ûr wᦽÎÃNWÑDü¦9M§ ­šYŒ‘Ížðnjto!»ý2ÿÌ e’}­G Õ®Gä÷¦Àç¨~¦òÜe®€›»ˆ&³°>~#EVYQdÅŒ²Ž‡r»c<¦xÌ8·vƒ€#Üi6øhο±…S¹uok–ÈMt²1b'SÅø½eâ§Vl™·c¼ccI:À¥£Û¬7XÇ%œgµ¡˜oSª,–îG:>¾kþæMu’º%tŦöÒ­fÁ‘í*Š‘ýxvÛ~ʲŠÑˆI “•’¤Hé&í§8nDw•YJKH$ózqÊ:.²bFÁñø”šã[/g5>IÛdÁxSÄÔm3œ¯·e‰–fª›éꮫ2áR^S_b¨»LXž ë8T©í©æÐ^tèİ4¯xÅ+˜äœùpÐH”‡ëÞ–Åqê](8.²bæã#ñ¾]½…Q€î3 amÿ(¦wÓxguÁ!À*ÀYÁ÷®ÉJLˆ˜C›ð£Õév9]YØÑ« Us—GËÐ=«±½Ýc†rë^ÇÂ;ïŒA% íã<—Y¾zkЬ(²bZÇû¾ùÓ‚¤Ü÷†ÈXN„¸15¸rdt;¯W¦¬ã²Žg u\í9½îû+J”u\ÖqYÇeïöÊ6ÌýG[rH½~BíÍJe×TÞ~Ç ÚR“ݲ®ôêøDÂêCò¬j±ÇÞ„îu÷:¨m³¡vy&Û Ž‹¬¨´7ÉŠñŽ'CÐjhÞW•|Â)µÝÚPÍÀÜùíò ÷Às2¾ea·];ïÞÁ˜í£™ïæ*²¢ÈŠ™iz8 9E˜V’ð³Ÿýl²x°Fk £ —Ã&´Žý$ÚlozÓ›"R±›̺•Êu…ç½ýíoßáå †2Ü"B&b@x°MØPÛY07E&CÛswmkì’æ*븬ãýË:ÎcÍo”‹÷õÔyªÙ ²#<Ì3mÛ]¿×¶"QÜ„¹@DM"¸“`‡Œ‘‰„-ž8¡kÍ¡¸ÄUÓôèÞĶÆZ»èPÓuóivn·Åàû×¾ö5‘‡y&Õ–Ij®”¿;k €uÛp;Oe—u<Ӭ㶌oªÈ’ÑgqfVÒˆDŽ ™Ì¥·ýÔÆ­Ìh˜%« £9&öŽOuÒµë¾W­^„ UÚƒSÄt LJ”9»N]žñIÖvÊ‘îÔ _øÂ¡‚mg“à k7™ q;s[æ»>µÝÄ¡€šnÓ {|’P—üªG¡ 8¥)¦hÿñ)ƒe¶Ê:®©¼Çí=dMyä‘´l¨ˆ‘ÖlÃù–Äõ’F³tS‹¸Ë.kRx”ÙGvRÞyë[ßJKˆ­ÄBÏé^Q–~€†÷!ñÇ p!vâÍXÇ8·àŽ“O>9Y ~¦ P›T­"B iy²tÞùÎwZ)ƒ[ô?ƒ¼Q0ç²£Œ ä,\KËPd&êµ”E ²ïyÏ{¬Hbk >Î2'“ä*KfE3“e+C$çI_&˜[±Õ]øœÊ¶õœÚ-ˉJ¢Š¥‰ˆ$%™(‰Ökšmè3Y“‰ ’° çxõuì,ÊZÞñ¶,J«xV-‰é ÌÙÚÊ }¥[ÔLuÃ×rEØ:$€×þ’õ ’çwÄv®«*¡õ¡^Pž—´Æ”³Â˼µšËN2´MãîuGòx–\NÔ슑…¾¶‰ ÇEVÌ4²"o£7òŽW‚Æ#u›¼Ý[Ža­5*ÃÞ+úëÈ@ØCL.‡ôOp yǼŸa¾úÕ¯ÊÖ ìM³RÑ)§œ ˆÍƒc²ñ±-#!ÿë_ÿz=€­, ÍË)[¯º ]7âJH¼M†P㡾‘"pÂŽb@S̓¶f @"p”™‡A!-õ4u¡­ÌU2q¹H¾1x5&…<¶üQ™þbF{O÷I[êÉ\Éå¬À½04Eòö ôA[ÐÍ*= <èÙDìÂ3éêBF{~ð!l٩ǵ­»jí¯?ФcwÊWaN<{´ýÒ¼QY*î¸àx„ã¼<ÆÝìÊlÃÄæ~Ð^lÏ1»/‘«C4+näe6fÆæEÊ<öšÑ4uc¶0ÝHøÂ"#æk@íeËúplïŒÍ¼ù,A„Z°aÁhËÄ“£Œœ&¦…•Š[`]ú‰½Ãqñüç??yh Ó)<ë¸è0ìd¦ãàpÑÄ´‡;-Óà8…4†hª#õËXÖ‰iVæ {à8¨ÊZdسšéJÒ>äqj!«©+hÂdn™dƒ•j]]ós”A¶‡Ž3Mç䎤:é |q³n‹^ö×ý×Ótº("¨†&]¶7«æe㫾#©þ*UšH†ŽÔ»°ÓeÂŽÎb.ì÷4—6Çz íHp¬J¯¬}<~:rXW·Ç+®à¸¦òfw7†Ì}³SŒq©^$F Tjü]›ÊkCKµdüë«cL…öºŽ„o¼ç^K¯7³j,0'ÿ¼‡]‰NV¾hv8ŽUæ ye`,›lLžLr&'OžòñnC—p-ûýr¼ò´É.f¬å?BV€Ñ† ¬³”GÓOÄ«AyX±óÞ¶)8°²åÃÒ 8‚Ý@hÓæb[[arL›¹ÇéotcÜQ¦® ShI#m»pìD5Šô>o&|wvN õ@é!”S§•›è`ˆdŽÑ&ºUW$§éتCs•þ^qÅz8å¯n}VðÓ‹ä1ˆ-ïaȽ¶(ŒÂµàˆG?Z³CÉØs¶¿'‡ÌwxQÜqqÇû‹uœš=H/ÍûïUdyyhÞ“._Ï ÔgL`Ü¢±3ˆI›·:¦n#+,óahœv2 ¨yÐЙ"ë’RÛ*bÅ ë8Æ#å-Ï\4 &Ä:CîwöË'“]!+è&]¼ˆ‰gˆÝÈuG,¤_Áx¤ÊCÖqË0ç*X–7UNàÑ2Ö%+ðÈ„ˆ±­¤nCmgµ°K™å—2˜»ùS+¹Ú aŠ#a(eN@ëµ”§N"­g‚ºÉnTú«ƒ+æ€Þ@ZëâÁ«±TZ# Ô¦F0:&¶nµ5—~…±“¿FC\°2&ËÃc."¹j”u\dÅ̇c¯yåÕ¯~uh¾L%y@4ÓCqæõ&3?½*XN£Q£Ë¶àŒ0‘ÕÞŸæN ¸Mâ{çÁ„q·ý£åyh ÐåŽX“•¯Îmù˜b„‚³øÈí A^3¾²vœÑ½5“P–Šg®ÌéY“É~‡}f:‹'8†wÈŠNGžÄftËŽ¥ÆF6õ„åŽáˆ ]BdåÆ)†+0»²9W´þFIR5çj‡tE݆ڞ f¢L&ʦIcB*j2‘§ÉÜÄé†É1BÕb+è`”¼ÑDŠ›]ñÈZï_É#”[»Ü1‡9t“jº•ª¬3NtìegY´^A±q,z²t6®ë¢*¢¹Cët´<[lq÷°îþîÎdÞL¡îLQ»®†b÷10‘*&Äc„Nx•nuZš"HzT's‡+8T»Ñíö´´5JÚÐgŠÖnW’‘ºôPÌzÛÓ=¦ÝwŸ®nvuD+Hºàxÿ…ãÉVT}±'T¨™bỡ³¶gå½)¶Gó™â° ÷O- *aЇN€OبM7>¢f9ÙuG«6Y#ÜÝ N–Éèàf›ºé¦¾•£×ÝfÁ¦¨Å„ Xp\Üñ~¤YQiH q¹|@s±Šûø]+ãeOMeŽŽ£w¾üÛϨî*®¹w÷Åvǧ\ítû3Üa~v·fµ›2Ü+ïBYÇEVÌd8ÞžY ™×ª“‰™ÝÝØ3ýÍL}°‹¬(8.8žP<¦òá+Ê)‘»Ð:–9·ßíT'˜õFßÞ¶ów½í ºÚO£7œ:ÃÉà87h'­ã¤Ïj7e¸‡Mõ‚ã‚ãÇ“Íääõø jxØÃF¡1Ò_'?eЉ»î×fuz1Df7ùÊí½½»ÓAºnj ÕZ,cǦ%mˆ³H†CÞN õ:2•„ "µ“ÐÄ©›±7‰_¤ÓÕ™›¬RSLå ÝèV¶)2œºÅ&›ä˜¢Ž“Íàm¿\p\Sy3p*¯ëwÕ^ûÞ \M$Hšg2ìu´†NßZª¼y2J°·ý]Œ†P£ù5:ó6ê¢×Ý©gâµÖJ>zÀP±ó•Í.>B\C¯—6éf8a1Ú¶€=QjQª”³ ˆ&ôq´ÅFµÞ'kU!”‰iá£®Š£¹Mx¹ìieÛf†Sü4äÀ7ZÇ ï×Ðý•Ä5¥ª©ñ¡¦òj*o¦‘úfåAäÞÖñ²“ùÆõ&Z_cBc-Ö19›&$´ýkÛ"1áÜ„ñ£&pVb&¨l›Ê “1ภÅɳahwu¢ÉJ5Å(Áº)[г7eÌÅ­Ôú˜!|Ÿbþ`jŽh{¸àÉæ$ÚS'To;[¾¬ã"+fY‘g‘˜ÐXR/¢™©ÒÀG῾’Ä$QF (Á¬]ÑH±¶BoID ™MÜmo æÝ¶Óˆ^8u"†{ƒð Ò<¢*ä)—Ý ­HŸµŸ .L6"ëÝ×U01áJý€ }†Qq´‡¾™Ø‘X,jYiGUÙëGçAðqÊ@»’D52ÅyŒîm‘µF,Ê™øƒÐpÝÃH[»Q„·¨<â ”mpIxMßRM…G«øPg&+$.‡ ‹O6i áÔ0šks7™¬TC½…ÛA%­§¡èEDÓÒONgØÚO-ªöjmE,S„‰µ˜ñ¯QuŒp7Èmúá˜L׎ÝYO‚VÕŒâ˜Õ=å1 p–yAÛZI…Éä¶æÜÜDAðÓ•‡3-P£´ÔÑ*-äüÅ@ ¯WGEr!sHËšèùpG~Ï%1º-_p\p¼_ÀqDo H%CA©‹z‹×ƛ咕FyÕ¢:ß°Ø› û€© 5´£÷*ª’D¼™VW梮 ša–Wïq¯•0W™Å\dˆÚ+vÄ!)ùb®áˆc ‹÷ÚRŸq.LT¯·g¥jj––€5`E&”¢) Œàcê¨`«ãZ°ÑÂ2Ó‚¶"`+ìÓ&:¡¶¸jŠÔ„” Ú‚EgÐT üµÂËÍÊt!ôU$2\š€ ×Uò(Ñå-U›5mÈŽ°v LWÙøÃDé¢y¦1u6Nw-P¨mPœ°Di”øµ³.ÁåÔTçämè6¹#zÓp)”‰¢kªcSkp,C¸”ᣧ¸DöÓñ*KôÇ­dÀÒúð\ÉéD:CºA@Üò|ãjÒòº":$ÕWG·ÊGïX½dè9ñ´P¸×ø:Ú¡–/8.8Þ/à8ØêåñRåäL‡ÌV¥­ÞÖnè WúêmôrF(Òå€Dîu–ºðΚ¬³|å¼nL±ƒÄÂõÕYYs¨·µ”¥7œìd^ËXˆ &C&˜5–|mÃmf0 –1å²^L‰¦0 P˜¦ïÇYµ,tµ4pËи-ÒÌÄ¶"iœˆ©ƒceˆNÜ$åê­¡ NÓíÔh†¤m×c©Èd¥ŠPŽ!³:-³œ’™7w¡)S»¤Ö1ôªðéÞœB6ÈR‘ˆÒÇhðñ-ròº½‹í&¤§§ô$Ðf³Í¶uQp©ÁUSÇlÞ5窯"ÁtC¦Ù­WN½¨õT¤.¬àÌyªX÷t¥a}…¼J˜¥I´§c\‘òg4òåé¨"+j*oÿšÊ˃õbñ…:ô³­œÎB!k9±6Ýá ÷X³w¨ž{ͼ½lÀ‰qï$Ì6˜ —nÍJ%a‚ø‡ƒns÷ÀË(>2›vzG…ÞaG[—³̉Hmë¿b/#YOaë¯7ПLÆïN æÍW/kåiFô¬2ɦ¦ºZ“[ëNå)RðÉBÏ gÖJÛ,Ä7Më½)ë˼)OXªÀz›ÝJíÚœgDñS¶ð!˜§» ‡rJ'М%ø”Á†¶Eï(ç'“Ë‘œvnº@¦kàO•'ÁU"û©›ñ$dñ”VAD«Þq˜ekË‹8FwØ­£K·:Z”@à¸Ýµ1§ëBO¥#l-_Sy5•·‘H Àš7*êšÞ §³‰@êuƒÿëÄÐcCáò.±˜¨ Bœ 8€Â‹Ag[Ú묚©¼Çà¯Mà4S´-_Ô-˜Ù¿Æ`¨ã½·ö‡|t$0@ÈÊÞ`e¦ 'v˜}ŒÉvC§¦7°È„[à8†^ë2è)k„H鮪×m(Þ|Ù: üIƒc™ªFK¼ºWè¾·ÚÙ†)F,4hCS´ÓSeÀ¨8ò§¬¦Ê¦²€˜íÉ 5’p×)h™ `Êæ†æIЪÊ)„Ržp¬›R#ŽæW¯m^ÑML£usIòäöhaæ9€N7“%Sx • [;”u\Öñ~agü‹êmCEXf¢‰™ã…aá ºF_¦•|µÜ/Àj:¼^ÝØt´Õe•±°·ÝHÖC¯0PÕ¸8ç*LQ¤f)†õO›‘ÕLQœ©µœã›¬` à ïZÈ ¶y–ã Ój¸m*2L¨Šà‘±À¶±±ŽÕ‘än[ 9žv¶ƒ «Ê ´`¨ ùU횦~×ù¯¶˜\« ŽYÇõ‡J9Ü„¬†jX™ÄŒ-UÄã»~½À?B

§+°±­²ã­?ïröÀŽÌÊ j‡œY‘Ŭ¿ raGÀ—Un¼Ÿ%‹šÝ £Á7 Vª «áZ[õ9ŽÀ^~ù°ãÈŒƒž!ý°°žÔsX¯ŽhE¢,5ÍB×Ô±ø\n†²Æ‡cÀ¢LΤ4…LâFu´T½­ãúÒ5‘(¡NÈ:))UN4ÚÇéP/w!ýZœëZ;7Z‘t$n´{¡²ñ¾`–—Û“àšhÒ h˜ÿ¼D@³Î5÷› [UVñÖDí&*@·Ž Ï8@ ;7uÌBÝîT§"ÛŠ4ÔòÇÇû‹ßq×Uv{d\Æ'Z dê»+¦Ó…ã0]…õÉb‘ÇG–äÈb}ˆ‹Æ!l³lÛã°=…Ÿ:“Ñ–Ÿ°©'Ëjô.LͱNØJS—§ûwg¦ÎênÕqôà»õœw<£‚¤»‹gÑân„kãïFåÚ)í¬¡|²Ñ œmg§í†³9¾8Ûuò «ÐNLÁºk‹¦k—î –|f\c<·çôîüäPÙr‰É®Ò6&l¨Ñ"µ…6º—k9a©†‚ŒÛ1CYMvZƒe˜Ó‡ŽŸ0ÃìÌ0`ÂÆ„^wGkº9t'¬c· £@·©‡Z¾¸ã=ÄW+ì šû`ó¦DgåÐ! í9Ý)˜ ŽÆì½Ž”O¥¸¦õÎCº%ûBñ Ž Ž Ž÷P5{éºÝ­Ów8‡JÝ–œìkÁqÁq½» Ž»,Ä(G±ç«™’Œ,¶¶§wÙ,ëxçoÄÞ}$ Ž Ž÷G8Þ}¦P—TÝïv˼^°ýä](8.8ž™p܆ç¬ï×ÝÈ;ÃBìÅÌ+WÚ½p<¤nަѻ1fÝ¿]ìžPŒ¼{ð¨Ê¸ÄM‚KróšÚ¦~ùxgvn2úîñ\k£:T¯YÁqÁñÝ€ãr÷ÛGüŽ[ò•š¢Øè!†ñ)`»û§ÞH $#@1µ“o"ÁòÞvè—S;ŸÝÛUûJ3à](¿ã ™9Qy-C65£RL”Àª&ˆ.+þb¯X¸œÇׯÌg‰Ô`kj/ 9ÈG´Úš{ŽñÜÛI?l -7{)§7dñ 9Ë1J„þër]ƒEuDmÙïø”YÙäà+E›Ù³gG½Þ¹Ô5yeE±°‚ã‚ã ™dE›+Ox«ø7ò1dÄ§Šˆ ƒ?" âŒ(˜5>ˆ6&@Q—ÂÝ ¿ÒÉÏ?('hà`Š0D$DÊÆÜ¶¾9š2”²È­ /v–’ƒ¬èå•!áÛ²¥ Gc!qŠa)Îû¡’Ç –´%i J‹8òt# {Ú#D¸+‚Q©ÈŠ"+ЬØw­ãp@“09I4àƒƒTqåàñ»äfè38Œ0‚¨ 6,|´äEúK´y ˆ×З`†x²8‘ iŠd|©&z|e)CÕèÅ($<%%ãD‡rš;„.íìÊaÖ° $”j ²-Ú»¤ÿúê«?ÐÐÓé ôÏ¢FÔ´xê±)븬㲎÷õ©¼À1ɲ¶À+ùS~a{XѬZ¸‰‘ÀD‡3:jÐÁeî"9.ŠhôÆB Àq`JËÆ‚I£–ËòÐyèÌå"nËÐκP±‚!)´ å‰Oö‹•·§»¦ z ,‡b@vb†+|o âCŒÞ,5Ô–“¨§«¬ã²ŽË³bzÀq“nk@øKÜ‹¦¸×˜À` ó½@`¾7ЦµÈó”SÌj ,_˜ˆŽ`ÿ¢ èŽ{ÜùQ€õFFÛhJÇ µ-“Ñ]NBÁš~}/üƒ u@<%_”3³:2Œò4ýÙI|H“|¬¦à¸à¸ÈŠéDVÇ„†ÿy"iCRxë˜i ¦=ÊÑñq NƒIÛ¬csn¬c‚¶¶­ÌDÜ"{N¸àÛÏ:fn7Ï9¯ÄuÜàxh9‰hcZƒul0+*FBõºë‰È¼Á1븭O1ªÖV©ÈŠ"+ЬØ­ã˜ÃVƒ¦Ñn‰¦0ÄÈ œËÏ ­a‘{q[“r€ÏîÂF${@§wîú³Ï–Õ¸Nñ¹/XðËO;ôWæû<ù©óþÈyÇ"RÈ/ô‹ñÝóÖüîÿìÏAýæ_xæY«mœyæj™Èa¯Ø[{}5±¬TÖñ~AV †–ý&þÀ—|ÈœSO[ÅvÉÒ÷‘¥ÞwÎ9çôaô?.¾óÇ—¬=ïü5÷¼çìc?¾ìêÿ\÷ƒÞ¹lÙÆ>Þ%ú%Ÿjl†øÝÑÿõôÓW~øØÙ7xàì³ìŠ+û9\ô£µÿþý;o™·¡™áCÇŸñõÕ³g÷yR_í jÏ îx Pï• Žg8Y¼êêu³fÝxÊ)«‚‰Åw¼óö‡üüÜAû÷Ñ\›îsß¹ç|gMÎʉ?¼ðÎW¾z‘Ïxç€ÖÜô¹Ï¯\¸°°¶¿zòªk¯[ÿ§GÜþ˜ÇÏûדWݺhãA÷ߜÆ[M¹/'ž´â7ÿû­ï~ï’“>»ây/èÏ×_x¡{¹ñÜóÖ<ê±óÞðÆÛ®ºjÝÀ 3gÔǼÛ>¹Ä:Ã.–'oËÇWajóÇÆŽÇäÓ Ó¶>àöÛn_µ|éEWÜøûÿç„/ž1pt£­³%Ãb*YQdÅV¶a`/yÐCn† Ø4 z?ùÉÚY³fÿðÂ5Á%K6Þë>sÎ>{õ <¡ÀYg¯¾ÏAsÞô'·ùÜçÀ9ß:³ÿÓo¿l¡|t鳟3èå©c8äæ×½~ñ¼yëïwÿ¹'œ°œÍ+ó+¯\篞ÒÁGüÅí÷¼÷œþÝÒÿñªE.úk/îÃñÓŸ>דּVýÃÑËP(¿|èØ¿ž¼²È­ {à¦næŽ7n\²fÍÒ;ïl_—¯[·`É’úä'ýµ=tÀ«×¬Þ°îÂëæÿÎûNúü7¿?脊v¨TÖqYÇ“ãÿý¶ÛŸú´ùÓØO¡’ûTï}š{Î9«JK—m¼÷}æ|{ð5¤ð/þâ-ŸùÌò`ÖßÿýÒ'?¥Ï0èùÿ„[þïÿ]úôgŒýôо={Úi«öüA׆Ÿ{à\¬ôûÅ_žaþÈ[.ÿÉZÖôA÷sùåk“Õkþ碧þj?«g=gòÄÆ3Ÿú«‡°X)×Ïž½î†Ößxãnýäk®½ööË.»ãòËÛÇ×%r/ºèÄ÷½Ï_ÛCÜvée+®øéϺàÍG|è”O}¹·`ìÎë®ïgxýõÆÆÆ·,ÌQ/y¥‚ã‚ã»àøï¼Ã Þ–¹²MŒð7­g¨ž{îpì+"øçtó¯½x!¦âU¿³èE¿¶ààƒçÜ>ÉpѳfÝðù/¬ ¼žzêªg>k~fï}àœ³³sw®½kîîŒ3VÜA4AÿëÉ_Ûüõ™ÏZðo§öáøéÏœŸÈo%ï¸ãæ>pάYs8`®¿{ã3g’í¡7w@ÀÏšµðÅ/î9¶ÈWªTp\p<Ÿ ä3'+ëŒci-Cñµ¯­ºÇ=fcoíÙ ÇÎmp¼dɆ<÷Oþìö£?¶ìƒZúñã–á‹+W¬ì3=rÙ=ï3çÏŽ¸-p|úwÁñ½ÜÂæ´B@㫞tØX¨ç¾ÃI+žöÌ­àØé§ü[Ž·XÇëþó?û”‡âîÎO.±ú'?¹í o¿è¢öñ•”ÃØùçî=ïñ×öЋ/¼pùÅÿqÉiß~ë¿ïÔã>Û»é†5Æ 2üéOÙõeW*8.8ö¬H?÷yóŸ÷üù™Ä»à‚5|Úñ¨[>ü‘¥ñf‚ãO|Ò-dz,˜ûÉO­xã÷ñ—ËÄc{óÏ®Y÷¸ÇßòéϬèõåÁVr•›Žã˜±hцC8'¼„ô’ßXð´g Ãñ׿±ºëY±¸ãM›–`„×®m_—¯_¿`éÒúÔ§üµ=tÀkî\½qý…×/xõû?û¹ow\©à¸àxJ8˜¨}lÛð‚-xðÏßl2í·^v«9·Y÷˜ó¾÷/x¡mã{Ïùö·û°¸vmÿ®Vóo/ù…>Ìažpv>ñÐyÇ¢O(Ÿvúª=xîªU/ºèÎ{ßgö[ßvÇvç>ü·üÊSÆvØ“Çõ˜[^÷‹3—8kÖM¿ý²[ùTÜÿà¹/~I¾ŸyøüÅ¿ùÒ…Oø¯·œÁšÍìv7 ®ÇÏc·}6 .±ÎÔÜm·yÖÚÇ×eK–ÌŸ7ï¸cõ×öз/¾mÕ²%ý4žçõ í”y|çB+U*8žqÖñæVoðÍo­æqüá.ýÉO×]sͺßxéÂx­%TDÀÞŠq7Þì­ü“Ÿ®ýÈ‘ýã9´ ‚ú6^qÅÚæ{Æ¿Åìø/}yå?~ŒzäÆë¯[wéek|É—\ºÖ‡Gó5×®!½sÏ]ó-ååµçôÝÇoºi}ü.Ì~½ÿK8Õ |ì6íùGp|¯úWªTp<3áx4Hz|ó"Áw…DoOänÿ”-.À[Fß9½¿¿7¾Ùþ›:Ãv@÷Ò{Œ…Ø÷ƒ¤+U*¿ã™ìw<Ú ]øc¯[?î³aË0½ ¸CÛ?~ãæãChŒß›·9·d¾~æõ[æîìlL@¶»—^ßÇoÞÙ.'Ëuë7û{ìù[Xp\©RÁñž©TdE¥JEVìdÅ\ÄÔ:¶Û”ÐÝ&A1*ì;tÑ}Ê"(ë¸R¥²Ž÷Žu<»ã“ŠÖOðë6óŸì੯5a&Y¢¢+ì[Öq¥JeOWëxBã×WKþXæ²k±>‹÷DZÌB™míŸàkwçÔìÐÁíN·‹v ½6xYÇ•*•u<ͬãÖVÕ´‘å,Fyê©§¦Ô67-Åf}âôr6| NåDduúìLï—s•,PŸÉªœ’Éá‡~úé§÷ú®Ík[ÁrÀø‘Én‘”Äjžþöv[[YÇ•*•u¼‡ÝšýÛ,Ð 82RsXÔò”À4 7$Ú9/œƒýud@ÛEÏ8ãŒ^g‰øn!»jpyè¢eWªTÖñ4¶ŽƒƒÖcž`Yø×¾öµú4{^ð‚|èCzÑ‹^tðÁ¿÷½ïíõ£<–¾ç=ïIÇ:ž2N-J-ÿÄ'>QÜHoËòšŠÿÔ§>eÃñ¿÷{¿g)û^_·ó'o|ãöþ÷¿ß±ÇõÖ„ÿ…_ø…·½ímOúÓO;í4;¿ùÍo>þñô£ýîw¿Û óβóúë¯g>?âðwΜ9,V«Ùßÿþ÷·ò¼¥—» ^Öq¥JeO3ë8ík6 öÿð‡ò“ŸüÛ¿ýÛv>ïyÏ{ðƒüíAzÀ`Mx ÓË=êQ‚P õ ƒ:g çýîw¿ ¬Ÿü=òÈ#Ag¯/Qtö¬Y³¬…œ°ÛMzÌcc½úóÎ;ÏOÇ{,Àu]Û«\²D¶ÊsÅW<ÿùÏ·ó‡ôíï¼ó¡}èþá"ý•3üØÇ>öÀ>POuäv‡\Öq¥Jeï ë8f,ˆ|æ3Ÿ™#n¸á†, ÏPýÈG>’Ï~ö³¿õ­o98ܱ&¾ccc€•›c`î¨ÅÝÁ˜½ï}ï yßõ®w=õ©O•‰¿õ[¿å«Kt‡½ìe/ËÉ!‚ïu¯{]zé¥'œpÂÓžö´ì„Îàøª«®²“õÝ0×¥?÷¹Ïéfõ!+ÚŠÈeWªTÖñ4°ŽÇ‡õŽûfì_þå_¾ùÍoîõ—ùXÓ¦æÐ¸á $`Íp0 M›þÒ/ýÒÕW_}衇B¢dÅB„ÑÝ©¼€æ—¿üå¿øÅ'žx"8¾à‚ žô¤'ùëB²ò÷…/|a& W¯^>þ¾ï}ïCPÖÝÎ8à’K.9úè£á2Dv™Üã÷Ð[¤HÍ4®©¼J• ާ+Yë˜}ú»¿û»ÙY>ñ‰OØxîsŸÛà’‚cc2âdzgÏf™^|ñÅ9†Uû =¨99Ä@~Ç;Þp;ì0û_÷º×½üå/ÎsžÚÂ>ËRô£m§`/»ì2püªW½*Ùº ÆZ ²±Û@ßüíXå¼â€`óÐhSEVTªTdÅ4 +zÃK—öâûßÿ>š˜pàxVÄÿ,pÌmܱ¯¯~õ«ŸñŒg@"Çô{ÞóžÙH¾õsþÑ~LA°mlƒm lÛT(wŒçLÄÁ5\~ùå˜b¼Ç5×\c'³ÝNX‘íÌœž¯yÈC®»î:NÊzˆ[o½µëÎQp\©RÁñ´ô¬n2Hï}ï{ãþð‡CC{^ùÊWž{î¹9 ì~ï{ßI|–«vÅŠèc§rÈ!ЙÆK_úRfo¯ã”Ɔ×üàmÃÓ‡=ìaxöìK^ò·Ê6úŽ3–>wŽóÏ??t¶ÙEHa2÷»ßµóoþæo‰¯0ÑwÌ1Ç„]ùÕ_ýUS|Èåò¬¨T©ÈŠiLVŒoqéí "âX O§è¾Æ;îÀZrÉ:e||X3³ÊÜÝ)™?d‡>–ôguËÆu9VH[!˜]¯oØMýmYÇ•*•u¼‡¬ãf#7hîº(L=?æÈæ[6¤81¤#Ñòʰ™ç]Æ™%n¦î¯þ꯸$ã"Âkû©9>ï,.5^š•*•u<­­ãÞÖk]xíÎŒM–]o³òÆ¡¸¾Ñí w]ºA¼?øÁÌûñD>ꨣ0]kº{¹nÿQÖq¥JeOcëxì~ÇGD‚º–õÞ*RYÇ•*•u¼‹­ã}Ž›ZкAjúA{«ØÇ•*ï!²¢R‘•*Y±ÈŠj…‚ãJ• Ž‹;ž®´"+*U*²b¿ãŽ Ž+U*8.î¸R‘•*YQÜqÁq¥JÇÅW*²¢R¥"+Ь(ë¸R¥²Ž‹¬¨Tp\©RÁq‘EVTªTdE9ºU+WªTp\Üq‘•*YQdE‘eWªTÖq‘ÇÇ• Ž Ž Ž Ž+U*8.ãâŽ+w\ÜqùWªTp\SyEVYQ©ÈŠ"+Š;.8®T©à¸¸ã"+Ь¨TdE‘EV”u\©RYÇEVW*8.8.²¢ÈŠJ•Ь(G·‚ã‚ãJÇÇÅYQ©R‘ÅW*8.8.î¸ÈŠJ•Ь(²¢¬ã²Ž+•u\ÖqYÇeWªTÖqyVWªw¡à¸ÈŠ"+*U*²¢<+*WªTp\Üq‘•*YQdE¥²Ž+U*븬ãho†ãõ<õ©Ï4ýlܸ©7Þ[¹fÝfëxvYÇeO/ëøŠÙ¯y× _8ãü"+*Ͳ‚uü7ŸùÎ57•u\SyÓŽW._öWÏþÓá“_;á’Õ×Ï»ý¦ùKêSŸiú¹qìŽÙ –ülÎâ·ÿó9þÂù×Ï+8.8žpç˜åË–Þ8wþW¾sé±§|ÿøSXŸúLëÏqÿöƒN¿ðÜ‹6¶`ѲS<ôÌï»pÖbá¢Åc Í¿uq}ê3­?yŒ-¾-ÏvÁqyVLÏŠ|ÍSÈŽX°ëSŸiúiñ²-v{Î˳bG<+ªöwyÔˆ¨Tiú¦<Ï£X\p\p¼ïÂq¥Jû[*8.¿ã}”;®TiKÅ×TÞÞ„cÖqÁq¥J]8Žu\p\Sy{¬ "WÚÏ9åfYQÜñ^€ãc=Ö#è!ó÷ŽJ•öï´xñâ 6œyæ™gœqFÆ”ÇÅï ²Âãåá;ùä“ÿå_þÅž5kÖ¬Zµju¥JûkZ¹r%"â /4¡rÙe—­X±¢ÈŠâŽ÷gÏœ9s>ÿùÏCä“N:éÄO<©R¥ý5yþ?ûÙÏ~ò“Ÿ¼à‚ š½\p\Üñn'+šÓ¥ÁîøÒK/ýñ|I¥Jûwºøâ‹¯¹æšLtOøÊYQdÅ®·Ž»þðHd#5dEþVª´¦<ÿ(‹¥ÉY”u\Öñn·Ž»sÊ5“Si?Oy &‹Ù+븬ãÝhWªTény•u\SyÇ•*Y1sÉŠJ•*Ý­TdE‘»À:.8®Ti—À±¿y§ ˆ Ž‹¬¨T©ÈŠ‚ãinóf[Q©R¥Hy‰Ê:.8ÞYDÛU„W¥J;3 Ó}§ Ž«!*UªT©à¸R¥J•*ŽË¿¤R¥J•ö G·‚ãJ•*U*8®T©R¥JÇ•*Uª´OÁqMåUªT©Ò¾þí§0(™×²ÇIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/patternist-wordProcessor.png0000644000076500000240000002403012536324470024503 0ustar philstaff00000000000000‰PNG  IHDRºn©ŽÒXPLTEÿÿÿƒ¼¼ª¿àà“ÀÀÀy²²£ÜÜÊÞ®ŸŸŸÿÿ²™ÑÑš®~s¬¬ÏÏ‚MMª¿j;¼)f;ƒ¼¿¿¿‰Ä“ààn?Z‰?f¨“Äà“àài¡¡C?ª¨Wh¨ƒU¨fàÄZ5r€W5WP¤¼¨à“/t}r¼¼bUà¨CªA–¿/ƒ¤r%r¤5(P5ƒ¼¤h5%–t(UWjª¿}t¿ÿtÿÿ¿?‰Ä‰)rr57…²H7tAÿßœy²…¿ÿÿ/(ÿ¿t€¿¿tHfnUb¼¼t¿œßÿHœßœHßÿÿHœß%5y…QJœ²¨¨CM(œHÿÿßQ…J2yœl2"lœÄàny²œ"Q‰Än;5[²²jl2;‰‰ChWÄà?‰Z[Q‰¨Z¨àn‰Ä%UMj2lj²²MtWff)–¿}MWAÄÄZb¼€¨W€¿jr¼¤;rr;UUP¤ffC¿œHfZ–¿jœœt?fC/A¨à/5"2;UhtA‰ff¨h¨jb¼¤;UP55UUPU7……¿¿t¨ÄZ?)¿ßœb¤rf‰Zœ¿œ5(?)€¿}f¨nPrUf)[²…ĨCj²œ/5(ff72/5WJœ…WAh5(h¨}jœœhW??MW7QQj……J…l"22MA¨‰)r¼;U5rr¤¤P¤¤JlQWW5AM5Îj Ç%{IDATx^ìÀ1 û§¶ÆXgŸŽQ ×xàÿß+Ööpò„![i’åDù«™µò ʉ¤+]鲡DºÒ¥.]éÆºt¥+Ý•³ê³xPwºi6ýEº›}3Xm›‰¢pÑPh¡`ë¤ ³¼1Þkaô~†,¦f…BŸ tW(íÏO7}·úêZǾµ* iŠ%Î@‹g»ˆc²I£Ê9?^u×+çuÅîwñÜ@Èœ¶KȘÚÁYãQ!¹¼YvÈ ?Q]ªëÔ½IÝÙ¸Õý¶MÅ¢Ÿ?žS]ª«TüßT—ê†*€nÞk’¥“=H;ùxNÄ ”Ë›ÍÍ~jÝŒYÝyYÖâÿ@&KUóÝëV@A¼ýàê&žßîñxaäÕEhŸ`«ê¦M®™>Zum Ü-VÛ„( ò2غjQÄÅ #”vK–B'/Ó?ªKu%AJ7w’º ™ªÊtXæA3ï–ãßuCÞæÉ·2]ÙA¿2•ŽU÷’Œè,§Sº‡ku˜½×N«ºÈF÷Âaµ>Ÿ×ÍîÌÔ‰‡±a„ÒCàþ[”ö«Ku%S‚Hò¥|5}m§n’MŠÌÐw«)¨›<6Q¼M@,‡gùmÒ±êZÝ,zª.®¥-¯ïeÀL­ºÈÆ!î¸ZQ š«®Al¡TËpR80S]Rè Dd õª„»¼Ó¸× ²7ä‹ñrNÕ…‡æ)éÌ@j'à?£.®…úp6}œêÚhä bÖn gêĆJÛÀ)+©P—êÊÞÚ©‹LåN›¹iÃŒ¼œŒºrG–yWå\ýnÙ«.b HÃêâZÎÙSQÙИÕb§•LyËNÆ bÃ¥\¤rH]ªeþl×H…Y¦SÝu£äñó÷4€dXÝKwÝîZà|W7SQ’a×9¬8Þ~ܦ–ÔÄ耬 \^ß ¡!u©n²y߯kNÊÓ¼×ÝÿÛ=6­š¹Ø•»Au W]õq-mÕâíÊOD]Í^±r¾#ûEg›‡,bÃÈ&N)ÞÕͰºT7Êœ}¬ÛÝV ä©>a–ÅUS­s^ô©kô¨»^-ŠõJÕǵ¤!¨ÓPÙÀf“¥Z9þ'±a„RN0ƒêR]ÅŠëÔdé@ùN¡b†¾(o¦p`Vq¯[¦Y™ €‡^u O]qÕÝêŽk 7©€#WЈl1·[W«#áxª¶uqa¡T§Õ}¶Æ¯ðëÔŽ~-øõª{@¨n<÷zréi•¨.Õ½J TW϶.ô¾±(¨.Õ¥ºü¾.Õ¥ºT—êR]ªKu©.Õ¥ºT—êR]ªKuGѨ.Õ¥ºT—êR]ªKu©.Õ¥ºT—êRÝ_ìÓÁ Ä@á¸Çöß°øð¡°+&%æºaùénÊÅ3]Wêãªú^ÊâŸ³Ž J9Ÿ  ]èBºÐ….t¡ ]èBºÐ…î«é¼*],rˆÎÚ*îÓdçŽm„¡ "yÿ)X€ ýNþer @Écp8‰:N¢‡u8 '넃IØá`ÂG˜°ÃÁ$ìpÞòhpË:á¨uº²N8N×:áhór­ŽZ§+ë„ãt­Ž6/×:á¨uº²N8N×:áhór­Ž&O×:á¨v¹²N8N×:áhòt­Žj—+ë„ãt­Ž>wºÖ LJ²N8NWÖ v8ú‡’uÂqº²N8¹’un''ûtpAPð•<Ò¹¢]ÎÔ°ÛÖź1¬‹u#YëF²n<ëÎ÷v=ê cÝÃΫ¸­Da¾p”"·H#²%©5.ôÒè¶Ýb“ÝjaË%°¤Ém„&m^/sÿέì…åÚØÞÿ‡,ã™#¹ú˜ÑÈ“äµGÞhH—!Ý“ é2¤{ø.é’.é’.Cºˆ¤™¶œˆ´É|fŸêª\ÏgbiQºÊ¥ÐjÒeH7jÔ(I¦Qm¤÷Bv‹.é2¤ë¤\+Érm;Y,ëj±ôþ„6¢ÈÐ%]†tapþKJ‹¹ÕÔ.–‘nï[·’ÞäR¨sùà´‘^Y… Óq¹Þ;]ÒeH×fX$ì¼ÃÆ; f<õ–Ÿ•®Mšíaè’.Cº£µð*7‰ê¹×õr¤+‹Ë™´VQÔ•i|]h›¥÷Òa8ë?‰Ø£oy­ãf3ÆJW±ÛšzаhÁÁé’.éòYxõs#÷R„QûóHé’.ér‡Y)ë|¦½ãYwç‚ù!]„!]Sj)Ðcè¤J?Ýñ6Uú \¸÷m*ÒeH1X`ÒHºP º[_A.éN‡tI÷ØRWû¤Jº¤Kº{[j÷{çJº éþÏ3.ÖÉ{é2¤{’!]†tO2¤Ëî†tI—tñjkõßÔ±ziÑ|Ñyøƒ+ý‹àqøÛÎgQh[[Nv%ÄýH—tI½xM«íí¿¡pÍÔ“^eµÉ]Eû,]û%éN†tIwÂÎI«ïÍI¤»M2aº›¢+ý³tÓÛrí»ª×G—tIP/$üðX1…žÁ¬ëDÁFÕ¥W³~x“¤²C~v´~#Ö…›`hé+?),Ï÷‹îDŠ@7½M3|–æv2?ÈWº»ø»Ñ—¡ê¬é’.ébù膞H× ø…~Š'[å‹¥ÓîpI]áRÐD­â& k{µKÝ«™ÞÊ@‹Uä¯r_Ó&]ùUé>)CÕyÓ%]ÒmmÓhH·°ÐÕ†¦«ÇùŸ>iG¸DGÇN˜¢q“è©mì¸QšiI ›uzóò·}z ÿ}žÞä}âw¾c>.ûˆªå9Ó%]ÒÕiÓI膞@ ¡0Ò ³.Qo8†bbWŸÕÆù‡jÕne«·ˆtW¹GY^`v.žœê½ñmçi÷j¹—mP•‘îcH—t­¬þ–5êG°tØÐ}\Cé:¥ßƒ.¾5‚oäá9ºŸ] Ò%].˜uÙ錮´ fuv˜j¼«@&ÞÅc·]×Â'nbCai>MW‹dÛ‚ÙøkûÞ:¦Ìç¿ÃLº¤;ØY’ÛT€‰:‘bü¿¤ÛÔª½Å¥ÑÅÔ¬=Ã!EÕIy±…n]Éöm*}ÖÍìýo½c›ê5<ë’._–t³ûåRäSÞé_¡²±Y/ƒþËA6 ýÖj›¦«¬§_Á¤1îñè=.CչϺ¤ËgÝ—¤®Šä„Bº éždH—!]Ò%]Òå¡?Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]†tO'Ù§ƒ@ b‚ø¸þVìAÖƒL A·[èÞ„nËÌ©•ì¸É‡®ÐE÷a蚃.ºBÝHè¢mÎú¥ÍÞÝ­Ä ÅQ/äÁ¢7C‘23Nçª}œ‚¯P(ôEûŸ¦Cˆ4éèoƒÇñ°]dqòqTê¾ï€ìàÀ$°ƒ“ÀL°ƒ“ÀL;80ÁŽÀ;80 ìàÀ»€ìàÀ$°ƒ“ÀL°ƒ# NÔ§ÿD‹y^X[ÞZþÅ|ÿ©ß,Çu©ûîøS×¹ÎF'êRW¨‹úkœ¨K]¡.êÔʼnºÔ'ê 88½Au©+Ô=5•¶ »¼;5?M÷wM;inMºBݯ_šäñó íèé\ÝkssêÔêöYG»¦9GÑsMÄ͹º×æÖÔ©+Ôר®ÜŒ?vûãåÜyÿsWS—!¥i³oµH×pk¿ϧû¿¶û¹Ý ÎœFecÞ1ÒÅÃR÷êÏ!ÖN›WuûtÎÕ©êã·j§±*uS—Óã\ȶñ²>Ô=äÜ8׿QwÒÕ­b ]Cuj*¯Ò|Mu©+Ô=ý¹Ù¼?C÷¼º]“ìéŒ^·Ë¨3 ^~ÂÜ´1ö)su§ÍQÝzÒ¦“¹û»׃Î]ppŠˆåhÛÕ™ûKµnžÿ¨[ŽêNšQ7Ã)kñõb¹>ç{MS—º+§<ò©¡Ö¨9WwÚìkÈÕm¶q¤uÓª ò t¨Ù–Œ¬«—7ZÎÕ4k6™ÜaŒí¢öÚйûAp:›¤ú²t¸»|ž«;iÆØ< Ÿ'êÆÿ­©SWÞ §Ûþ“f¤¿)èŽH $[9+B—UàPW²qrû£“º²œ“€P Ë[‡C]G'8@½ñ_E ¨ëÿ+‚uê®?8@ù;ÌÔ]G¨ ú­Áêþb‡Ži†‘àß3&ø¶Jhir` kìÓ± AÁÂ"ûïë Br?ÂÃÕ§{fõ‡® ïíhº)¡‹.ºè¢‹.ºè¢‹.ºè¢‹î%ŸŽN 0+ú“ì¿¥”$r#\}ö'FÖB÷úLÒõkÕ£õtƒ{wmäŠÂqȆ¶Hmš@j4B¨”páÒî"5³‘Ø?Æ®²I4ym“.„@H‘"2XÎýr>ÜDZP0ãÑwaîÎÝ9Vý|îŒämÌwuüOtŸrt<.ÝgOlø‘îã Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]Ò%]ÒŨݹH¹=¢íi†‚Qî…¯h׈›NüåBzû»ò˜¡§{%²Ùññ'"Raqr,"ç—/_œ_býòEEºqt;å.”ã~«5:šíˆê mŸ·_·S'ºû,=Ùa¢ µ˜²˜C  Œ›]¶×+5 ¬KYhÀÍzõÏ þ‚tßžËüôLgµ[tåÁÐmï ûíEßÅ}ýåº1æ`èîÀ·T¹ˆ«må[-VNñÝ=éb@¤Èé«‹DØð* ëŽžtÝäCé ÷þŠ.ll;ÒE˜¿Š•ˆÌb«1©³$ø·¸,øq®†ãϤftQ¸³îVNYΆx‘½ïÉ¡¤—Øí¼>r+cèÆÄ 4‚.6Ãç?þü— ©ŠÈÆ)}s¬''nJ[âß½÷ç0«ñ±e_éÂb÷½þåxQ{ºùØŸnoâδq_ɸIÑ‘wSŒûJ®ö믔ˆÅt}XÌ„0%èÚÔY’‡Ý¨ÄÏ"íšvÝm•S–Ì–Žä0TC¦ª™˜@×” V 9]W4Ï¥¸ÓJõJºi½2]y)U$¿ˆYyož]i ¯Wä°éúö yX¨²EX8Žèi8A˜¡k2™]¢I% t‘ú•ÛIúÚÒÝV9e9ºÕÎyÑW’:?x‰±j)ÆÐM%hݺt61-`Ô6éKWöËKmܫЄ—‡Lì`Æ*L–®®a2‹ tíU=±tMê, ?†2s?ê#¤®t·UNYN'Z¿ÞÀ“,DÚâšK%HhÝXúË0Yº@ëú16ÉéÚT.Ã+Ÿ‡t±´t¡'˜t½ž ÁŒ.ºh̤‘[èÚ$–.ú :2Õž.ÖÝÖ|¦{aœ‹œ~”Ñ51†.J*ÐHºX[ºXØ] ß°“ŽûgŸ-ìºö1•÷=çt•ð[v]›ÄÒN>;=CÏÁõ'Úu[£Û¯¾éÇ’Œ2º)&§‹Ä J×ÅÎØF„ˆ@ôæî'½:ñoªØw]ÒMwlÆ—ùp¨Û)ƒáòßé"$»×ExöƵI,ÝyïÓIYÿ{ݬr–®^y}{æH®ˆ…dtcLN%ˆhÝt¯kè¦GQÐU§ø¤‚µ2Þð^7’IÏI-Ýô• <AÿPÌ ]ûÄa¸Ÿë ¦“ì›%1˜õݺ¨5][9K÷«¾ëj„€¢¡c]S_æÑMO˜±LÓ` ®rwïæ ,ÿ©‹#p^é‚tÃǬ֗ù"¤ÿ<2Ī­f¾™}®ëôÉ5lšÔyÑVãßÈJÞgº®õ†ÙVÎÒêp¯;îÇ}|o*Æ™˜X©)¯@ãè†Ïu-]¶_„TŸhµ^p…Íú§}Óü óþ¼{Ôî^·^௜.é’.éî=H—tI—t;øûº¤‹Aº¤Kº¤Kº¤KºünH—tI—t3Sn·.Ó麭ا£@ b‚øñö_X‡–Bn„ƒä”÷Öô•õ£ Ÿ“UXÆê ‹.ºè¢‹.ºè¢‹.ºè¢‹.ºè^jèà˜àëö_¸KÅŒòlŠôa>GA«QÇΤÃP üûßÙYÕØÀÌZ°<øÐ…8?Ýë%µ’8B™.☮éÎG(ÓE¡Lwž8B™.âeº¦+”éŠ.ŽPˆ.ŽP¢‹ƒP¢‹#¢‹#”èâ ”èâ…èâ%:â%º8B!º8B!º8B‰.B‰.ŽPˆ.ŽP‰è¦‹éŠ~8B™.☮èóÄÊtÇtó–“OåÛW:¢ÿÞó›®éníoº‹¸Š#”èäÿ:¦‹èêè$º:è$º::!º::‰Ž::‰®ŽNˆ®ŽNä(LÓA0]ÀtÓLL0]ÀtÁtÓLL0]ÀtÓÓL0]0]ÀtÓ?ÊL-tÓL0] [.`º€éÝrÓLè– ˜.`º@·\ÀtÓºå¦ ˜.º`º`º@Øø9äaŸŽmA€™8ÁÀÿçýlh^L«‹ºê‚ºê‚ºê¢n}odzzAÝþë6na8ÀnФHC”H d±lTèÈ7à\ëÂàƒíÊÀ•Á‡4I›‚äòl™YÎh¼òJ2ä¤ÿdxgfGj>ìr—¿¿v¹oYg¡ A@èBкÐ]Ü8Ö²ñçËÚ¸Áÿ‹ZU®ºÇ]W”þl…šÛ¼ŸÝP' {LÐ%h’é=k£´ñãùËwꛨºÐõ}×®ý¨«fàUxNmFúüìÚ5¥kÉΰ>tTF9·¼µ6VÐ~ LÕÏT(aêè¨Ù>Íœ÷‘_ýYZ(?›Z]讪¢kb¦"?†®S-ɺA’ï]]u÷ ªävî»9šïó©“¡«?˞ʮ ºîϥ?Ö`èxljvMq!%XÝà9"f»N ¸×‚+wá¯_¾ÉÚ¹¶6œó&  Ýb+kj½¸ ]ú03q©“%¸¸ã,Eti¢P.öã>~è8YæûȹÙKtùË­ ]tùÁôºËæº< É“è–ýÌn¾n§î›Ýà¦E²a%tuÃL2’‚¢K“’Ý0sNÂ"š’ï3ºa†5d6Ì@7'÷ºÉ1•žùº}t9ËÑ[CNGÄUZLŸÑÕðWùº|Ÿ¿c™c*)Ä1U"oSí_ñîµØ¾B×R·Ðí£^¹Á ìrˆrærîžïóSåÜ/Ed`—C@ºÿ½”.Ø.Qкt.taúƒ   t!è]èšG]v9§Ýh&ÜÑ ç=ÃöÝü:UQfÌ‚nÇQΡ…Ñ’Ä{p¸¬ºЕ¨:†ô}‹<ºÁæåRÁM<}ð9t©Ûit— Õݬ  ›áN_Íøï4È¡›Ÿk©HÛ²èºé$ºÅs»¦Ð—î:Ñ…€®ºßÍY [uÕhod¨ŸœÓË&jšW³=ê·1¤M$ÕPågîxöÕ¶ð\”©ÓŸ'}$&ՌϮ¦8ùwF÷U™T].ºÐ5kž¡«CWŒö;O­ñWÕ² ¶&æò±W–%¥M]O‘u+QtïnfK¡9ýÓ·œ‡UE5ƒÛ_ÝWeRuÉèB@×Ì<†n#;tÕhÏõºÉåDßM4®½Yy$›8É-MŒ§Ñq6ñì+ºåÈÍÛÇĸÄUjÆ¿¯Š§jòaù‰‹ý²©j.]誅ÖÐÕˆ¢«¸ …†®®vÖDŒ·Þ Ü9åSª¹ÑLëKϾÍZUej¦¤9zŸèÿ@hOÌòf¿l+U%ÐUA@7–õ¿•æGìxÖÄ+»†®î¡÷Ñ Œþä ’ÍÚ¸/§ÐÝÐêZ]fuÑs$³afÎXAµ´. 2ÖD*j SDòÚDòº5Ï£ËE.»a¶'íx¼ÝÚ0_Ë 3„c*qÑ>¦0)2«f(™ÁÉšlœTšÙ~4§|’š-óí‡<º¼X>¦âgÝ2ÞÿöGŽ©®áYÂå¸èO\±„÷¹ÚÝéZ5Í›Ù~%Nynb©¿¸:æòè2ÖùË!a2b<ùþðå%.]Ϻç¨ïjØþ_A@÷ºt!  t!¦?  A@èB@èBкt.t.]  A@èB›ýÃ>Ü‚@3¹ð`ÿ…4í}±.tMJjÞguQW]PW]PW]èQIoqÙ¹ŸÔ¶Á €â9˜Ò&yáZµÇ)ä …B/ÚéÈ(‘bhœHîï-”äcÌ#Ï#;´×+±b€tH€tH.é. ]Ò ]@º¤ @º¤ H€tH.é.éÒ ] ÞÒ…tá™î =­I·×Ë  —þ@/7üÑË ø£—þ@/7üÑË ø£—þ@/7üÑ nø‹9qÝÔX\3æñGð¿êÇ/]éþwþ¥ë¦æ“à†?éJÒ¥WºüIWºÜð']p#]éJÒ½érßtÁ ó,N‘4y°iëÃ)žž§_£y\€^éBºß¾Fq<_¢­NçéN&?[¯t!Ý®öè6¢¯Dû<È6çéN&×§Wºˆ kOwܱÛ\¸uýÙîîw¿Ú<Ú´ã"žLv±Ï%—¼Æ%ûÝKDÔLýûëEü›Ü‘¾1Ù*ïPÑU‡™nŒì«Úéäkº]ÍôyÇïyTôZ7FºÇóå%oS]æ×Cºûº7®×¿•îdrLwÓfÐyÉ™<ªÏjrÑz¥Ëßý¥{ßlÞ†Ëöïén£ØjæÒu,:][ƒÀ‡;ºaަŠ}©ƒyºÓÉ1ÝS 4u\g_s^kã¦H·ŠÛ´Í62Ó,²Ï½Ùéfƒcº“ÉJ·«tk/pó{~Ä~‰z¥‹û²×E-ÑȇÅZiÎÓNvyÉÓ}Î\ònMí‹L×ÖÀ]éË-[ {5ne9Ow2™§Åäæ¡Øm¥M¯µ!Ý›sŠâxî²Òºç~žîd²Š­¿Oº¤[ý/S¯tq—ö6mó.“ý2Óµ5@ßÛáFìW¨×Ú®tŸž—ª×ÖÀ:õùõä©^XÒ¥—þÖ÷o6¥Ë ¤ûIz!]éÒËÿdd%éJ—¬8Ýz­AºÒ7±4® ]H÷7;upAPð!y¤ÿv+ðy„¹–LNÖÂèúŒÚDÓEW^§7Ž.ºòjƒ.ºèj£ºè¢Û1Ûõ†î×ÐE÷²s/+nÃPÇ+¥tÑ!~A `mì`¼ÌØ»¾ÂÀl³-ô²ï¦·UŸ¤·+GAL§”0#‚gVüI‰3î± y®ãÑÐå_F¶y’tI—yÙ¦0º¤KºlÃ~¤ë«‹ïEDâµ qt˜cT+¡k»¸€®ÞˆÈ4Çy{‘Q«íwñ‹tm=7ô# nlcš‡^ÐÓ˶џ5×%#ÝzóPcÐû¯=hkÔ¬7¦lùtm×¾þ½z©Î™ÜQc ý4“n¦ÞÝ&†Üá¢@kø/tI÷8ÍXMºX¸;ÒÕ2ßíx¾Õ*ÿ@—t¿Þé¤þüñzº¤‹ŸFóØ}ç@xÛhM3‡npvG‘ýÐ/‰®í«Ê5šÅHÓ_¿›D7Sh-tm½,Ý1h"¿ý–èÞ¼ßÓ_u½Tqñhコ›Ö4sÞªY·‹J¿8º¶ "`ìe´KKZu3…ÖC×ÖËÒõÑlÝ+û‘®¶Ñóݧ†stŸÞèVëŠ/®íâ4Vµ(Ó'†n¦ÐªèÚzC/tÛÓì껡»¸é*TpÍÓE{D 2bããÅѵ]pøw!’UÒ²ßåèÚBë¢këåVÝ¡¯œß6†îUýHSe7ÌÓü°¬— ¢A¿lº˜ ¡8³a¶…ÖKÓ]w]蜡[@¿Û¯ºöe*¿8мŸf¬)« ‹uÇx ,qï%º‹ qÕuíéÓ—¡[B¿ÛŸu¼9¤¬ßöݚκ ¤Ô+¶"°Š›0Ñ5…xÖÍÒúw§ÙÐ]Út»ôZà‚G2€ÝO3¨×›éÚ.H¡a:/:÷¢Ù‚TÚ#=’‘)´*º¶^Ž.δ†î²~¤ëBz.ÿ $Ê¢·Nµ;~õ¾¸ ³í‚­_:⊔"֘κ™Bk¢këeé·^N7Ûmúññ2κ·-T>]ö#]Ò%]Ò%]Òe?æ]>H—Ÿ×e?æeÒ%]Òeöc^Ò%]öc^¶!]Òe^¶a?Ò%]Òå„d^¶!]Ò%]¶a¿¿ìÓ± €@DQa1Ø ®ÿNM ˜;Xäý|’÷7ºÃšB×7þûè®ï´×\Þ)º¾ñºè¢‹nºEÝó¡‹.ºè¢‹.ºè¢»âªÖή ߌªãªzg;w”aTýûß³¨ )æ:ß³t;™’­ÓÍ­zÆ~¦+6¦kº¦+Ó5]6üL×tÙ˜®éš®L×tÙð3]ÓeÃÏtMW¦‹×tù™®é²ágºbÃÏtMW¦‹÷zlø™®Ø˜.^Óå'¼lø /~xÙˆ^6ü„— ?¼lÄ/~ˆ^±á‡— ?áeÃOxÙðÃËFüð²áçÑ6]6¦‹×teºxÙð3]ÓeÃÏÏ\ÅÆt»jn_õèÍþ~þþÅç7]Óí÷7]/5^øÄ/~ˆ^±á‡— ?áeÃOŸÑÙð^6)~xÙð^6üD—MŠ^6ü„— ?Ñe“⇗ ?áeÃOtÙ¤øáeÃOxÙð]6)~xÙð^6üD—MŠ^6ü„— ?-©Ë†^6⇗ ?Í×zÁ€ ¿ÂfgŸŽM 6 ¿ÿ¼‚S¤¸ŒpÓ*Àˆ_<¼løõÈ_#¼l¬kÝÉ´ïobïÏûØ7ƒ·a( ›B ÛWˆ7háÌÂ`Œ²Ï"ä9C–…!ír6…ž t×c´½Vå_BOy‘a:í ü‚Œ,éÉàoôåÉ6)^K)ßÎå…ñ’ ùQ]ªKuÉx©.Õ%?â%ò£ºÛqw˜ën½ zûê"`«}[Le©2Q·©K[€%Ò¹Á%%!ÒÈJ]Y:S©°œtÈ žDN a~ŠM†¨n©…¿€¹TݦVe]\’4 Â)-é 9Þ ÕðM×ÝÍdd9ƒËÉÉ´ô ¡ºßöí³Ô­®[]ª»º1pšãißß?S—êêI{°}9oW7ØÖ؆ÛGzR®wÞ(§ýéÛËìÔ›PšZY ¡º~È|>Öˆõ“šãÙÚ©ÑyrS™¶_ŸÇ T„ r èbr»ORSßšãÊ2¼·Á fXu©.0lo85µ¶`¦¡5ДûϘŠ q£C–YW®};ªb2dÒ¬ aq©^0œcÖ-:mˆiTz‚FÈ-¢‹É…è†'3=®Q=TW£ ¤°Ô¢Bcw÷@>ä+F§<Õ•k7ŸÏGt<~L¥dHÛDÐSÉfÏgªn¿ÞlÇÊU=æ¹Ç辇ä"t Ûqô¸FÐCu5|4ê‚ È0ÒØŽƒw×÷ÞîÛ|ïuĬª^¾× ‡`lH/QÁ™ª‹eplç ô"r‹èNá„Zþ÷P]ü"ê65ö¥-X¾¨Lñ!wCÆêʵc¼¬®::B/UÁÙªkr­É¸®z%…Ü"º“{¢ºT·èT’uãG­ÝÐ^MÖÅçnwHÔ•¡K³.‚óTËÇ>êÔ¨<½4ë†èžŸu©.ð>,Þë†åk»×E™ÖçQ%êÆC ÐKÔ•à<ÕíŽð×oS =‡fwr‹èÎBî©êRÝ¢+ã'Ì ^š~dl©¯í sÑÁB\:€ÄêÊHT!½*^¿a°ÊQÝÕ™ÖCÑ%ä–ÑEä@,QW-ªKuAIÞë:“Ñ0€ñZmh„ôx¯›©ºîÚ!*Høœtx°Cþ壠ÌðS£óä§îvTBïm&&×v º G-¢¢çžêþÍŸ@Tþüà £ºT—êR]ªKu©.Õ¥ºdó ù/ÙP]ªK¼dC~T—êR]ò#^ªKuÉxɆêR]ªK6äG¼T—ê’ñ’ Õ¥º¯¬¼^²!¿?ìÓ± 0A ÷_8MVEîG8øïwªÊ5ò²á‡×ºÖ凗u­‹— ¿;Õ¶¢+6üN•ÛŠ¦Øð{íÎ1 û§ö]H@np•1«&GO‰IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/pinchgesture.png0000644000076500000240000002355612536324504022147 0ustar philstaff00000000000000‰PNG  IHDR݃ @sBIT|dˆ pHYs  šœtEXtSoftwarewww.inkscape.org›î< IDATxœíyxUºÿ?Õ{ÒtöN&HÂ*«8F6EÇA/äâ®èÅÁç:â8¢ãfÜ—«ü\p®ˆ˜q\Q@ÁaAB6B’¤³wÒtº»ªîEbBVB'0õyž~ÒV:õ¶ô·Ï9ïyß·Y–é ‚ è™f³y®Éd-ËòÇÝÐÐ`•$IÛ«NUTF v † AN¸Ýîl—˵ Ø)˲·7} §+:A®´Z­w755ÍNMMõ.\¸0$%%EO||<±±± †ÞØ¢¢2àðx<”••QRRBII yyyÒæÍ›ësssõF£q»ÃáxI–åO§Ï‹N„ ­Vëó6›-yÕªU!sæÌÁf³õꃨ¨ vìv;¬]»¶Þn·ç;Ž{eYþ¶'×v+:Ab¬VëÛ&“)mݺuæôôtA¿®¢2Ø‘e™M›6É+W®t¹Ýî=‡ã&Y–Ë»ºFÓÕIAÆ›ÍæÌ+VÌ*..¶,Z´HœŠJ+A`Ñ¢EBqq±eÅŠ³Ìfs¦ 㻼¦³‘N«Õ^üÖ† ÌsçÎU•¦¢Ò¶mÛ&/Y²ÄÕÐаTÅ­µéPtZ­öºÈÈÈ··oßn7n\Ÿª¢r6‘™™ÉìÙ³]UUU7u$¼v¢a¼ÅbùfÏž=Up**½#33“´´4§Óéœ&Ëò­ÏµYÓ ‚c6›?Û°aƒ:©¨œãÆcÆ f³Ùü™ 1­ÏµÕj}ûÁ S×p**gÎܹs…|0Ìjµ¾ÝúxËôR„ m6ÛgÅÅÅonßuׯ(+súµO•ÓYKvön´Ú.á}‚(JŒ}K˜_ú‹µðòËòK_Íx<œv»ý—Íûxºæ“V«õùuëÖ™û"š¤¬Ì‰Ãq¡ßûU , ¥œ8ñ:6¼ÉðáÃûýþGŽaéÒ;2äV‚ƒãüÐcö¶O ƒÁÀºuëÌË—/˜ '§—‚ \i³Ù’ÓÓÓÕi¥JhÜ[o½Á >œ·Þz…'^§¡¡4 6ô„ôôtÁf³% ‚p%œÕj½{ÕªU!êÆ·JO‚kf0OV­ZbµZïЂ ojjš=gΜ@Û¦2H‚kf0oΜ9455ÍA¯f¦¦¦zÕàe•kf  Ïf³‘ššêfjÌfóÜ… †Ú(•Í@\3]x . 1›Ís5&“itJJJÿû{U ƒApÍ dᥤ¤hL&Óh,ËCâããmÊe0 ®™*¼øøxdY¢ñx<ѪèT:b0 ®™(¼øøx<O´®¡¡Áh{-üðÚ ¿#I"O5&“‘ôôÅ?Ÿ%úÖ’Noiyïv7’—÷2£F­ÀhŒ UKCCƒU'I’V­ir&ø˜0áâ@Ñod~ûÛ.œh3:eþ÷“<åw6£C ’$ `NEåßUt**ýŒ®û&!´©†!õEÄ4”Rlj$êŒá6KEåŒP¢‹u犢÷ZWHˆÇÑî|½ÁÊO¡Ãø$ézÊ,çÀB•Ž˜¶ã·ýfÖ²~ïo 1 D§‘E.)þˆKŽ}ˆVR< z Å!è0Çí*!¡^â¨Êý¤Tgòeâµ|™p5’ “,þu÷õSßyºç^Ïßu﬙uþ{=îo pÑE6–³$ûâë!#°{èeìrUA1¶½èÄç¤ýô—}Ÿ1•ûØ0úžÛª¨ TêHÑÈb‹àjLQ¼:á×|8bq§"ª ŠáËyu¯©1E_Œ%Ù/ ‘Å~¶\E¥÷Tt—Ô"¸¿Nù…a#{t]aØHþ:å-»¤ø£>¶´ïhl¬£©Éh3Tú‘€M/cÇ¹äØ‡Èümäm¸uA§u½[ÄßFÞÆžæ’c’9q@;W\®Žý§³š¤¤‰$&ŽÆåªfïÞ÷0L„†F“”4 ‹EõÒžÍl¤»¢è}´’=C/íp„kjª¦¬l7'Nlï4v®0l${†^ŠVòqEÑû}mr¯e‰cDzo_••Çq»]ÂÂBˆB|üp ›ÊÊãìÛ—ÓYh³Uú€tCë Ø=ä²vçÊË÷’›û¢øóã¿’’®#)in»¶»‡\ÆE?}ÞÒß@£°ðŽÏ 9y©©“0›­hµ:¦OŸ€Óé  àeeEÞ¨¯2¸ˆèB›jñ8hÐ[Ú9MŽ|²³_fòäIÜvÛm|öÙglݺƒ!”øø¶qŽUA14è-„x„6Õ ¸ ôÈH5Œw11O-+&ÌfP[[KIÉ1"#‡ö“¥*ýE@D7¤¾€âaíÎ;¶•ððpt:{öìA£Ñ͘1c(,üˆ¸¸§ì͇ cdõA†Ô (ÑRS'š:á´¯-*ú‘ÜÜï9÷܉$&vù˜öÈõ„…u¾rðx$**½ètFŒFóiÛ¦rfô‹è¾Ø¹ I·à XBŒ‰L©Wßej[—¥©©šêêl.¹än»í6ÒÓÓyì±ÇxóÍ7[ÚìÙ³‚´´gÚo¿ÞB1àªúW ƒ!}«ôŽþÆé¬æÇ?%%e2aa½«÷?ŒÜÜï9vìG"#zì\¨'55 ƒAße;·û;w}„V«÷‹çt6¾ûI©®ÎD›E7>¹ŸäÂ'5à“¥FDÉOt#‰Mˆ¢Iô Ëzàå>·±_DçÓziº½ŒÆª2ªªð]Žžv0T|Å×^ô†‚Mqè$E(‡ƒ žžÎÈ‘#yøá‡)**ÂlÒn¤Ëuäó1@é(ÝVkdúôWÚ´©¨ØG}}áIAZ1ÃëáÅéRT´¯·‰3I;‹‰9‡ääIäçÿÀÑ£?0nÜìn¯q»« ·Ê”ž°2>ŸŸÏÓrÞ`0¡×e“ÞȰs‡‘_OeåqªªN0yò5X,§Ÿs6B±|B‡B^@6ŠÊK/ÐÓþoë÷ÏõÏZºÿ¦—F ^ye'záŒÖùðÜ_‡§¡WÕ 8 ÀO ÑhÐéÓRSSIMMåþç(+³dC–%áçéÓ½bË€gÆÜC­,!Šžv·¯«Ëçĉ/N†™ ¡¤¥=Û¦ÍñãSS“Á`Å`ÅdŠ">þ’Óþ¨uu•$&ŽnwN–å'¦¤(¢«««èQ{“)‚ú’Ÿí(ÇåSœPz“F‡„ÜæX­ÉĤÉ×’’z–9pŒ2âeî@[Ñ%YÓU„B•"0´~Š‚»¿§Õ¶§´ÙlMì®o©ÌÚ iÐh $iMDy]è´F*¼µôaÛhl´£×‡¢;¹ÿ7|øB†_ˆÏçÂã©CÛÿÃȲ„×ëÄå:×[‡ÑÑNt99¯S]‰ÁŠÁ`¥±±¦Íù¦¦<žF #z½’Òj%ÊÈdÐ阃±˜#G£iÿOa±X‰ˆˆÅãiÿ#Ò.Ÿ—½ÑÓÑC±”Çd©—ÏKÝÔFÌ=U™L.SË=Z;p*+Ë)*Ê!88­Vßò2™,h4j&˜?Ø–Aö˜ž 7î…uW¶=×<ʵ&** Y–‘R¼HלÜJðÁUÊ!3¶‰üÔhë hêôUd— M ÈZ´zC(FC8&]$&m4nwu˨f0XIH¸š„„«[î)ŠMíì KE<ž:<’äms¾±±§‰mÛ^BoÔn gâeÛ´«.­ÆçuPë©ç§C‡2…= «5¶ÍH8kÖòòâóyÑéº^§µFo Å` G§Ñƒ¤3[ô„„èqéD$ÉGEÅ1Ýu¸=u4¹$••åT–Wb‰ ÁfAôJH¢„»ÎMœ-è>°Y¥k&º—/_Àÿ‚£à‡¤ŸÏ566RWWGhh(’$±oß>4§$ºOú nü¼ZxùZÀ&#Ò„H{±à…Fg9¸'NÀ¦^•pÉà9)P­ƒ!£>£.’ ] ½ƒÁJXX*ÑÑSÑj•¬ns“)„àà,aAX¢-xÜ AíËa9p„p[8#& jDn‡›ò²\ŠŽÀh &Ä…%8Šââ|ÞKjjqq)]þ?u:«ù©à_Œˆ<Kùwè4z‚½5ÐÁlÖ+6âÒG­#,8C°A-µPùQ%®'C΋ǪŒˆ¢O¤êH r³‚UzMÀDW`ƒÿ?îø ý–ÜÍÓºå–[˜5kãÇÇjµ²{÷næÏŸÏáÜÃ-×[ÜÊu‚¬ôSÐ]j=~òÈt!P4:í T(?9‚zO Ôóó/}}%9ù»Hœ|‰© ]š3vÚØ6?"&« “Uù‚{½4ÖÕQá¨äøO¹””åRSwF‹ hÑj´h ãö8q»¸êDh ˜4:&KµÊ×ÉòQgÒžØÞ[Aâ˜DŽ:FéáRνà\´:-1©Ñ?ZÓî•Ó# ©=oL‡™9Z ^†ûFA10uêT®¾újrssq¹\Üwß}hµZž^û4“ŠÁÅÕBnœÒ_1'_t-PÓKŠÇµ¾¾ŠÃù;IúÅ9huZ\fkç{`A!;-ôAzôAzBm¹Wyrnìø4: ²$#‰²äE=ÈÈ„™Œ‚CÈÙîÄöÕÉ%¯S™ »½>´¾Î33’Æ&qìÐ1j:m£Ò{*:Q¿]Oþ¯"¼…ÿ„ÿ×ê|jjj»kÎ+†÷)#\nœr½Èõ½Ng 9ù;H¼`(ú =ßÐXÛÈÌÿ˜‰1ØØë®ëñ6yÑu‡wÙÖëöâkòQk8rAû‡$ʲŒ§Ñn0œkÀb¢³pA!AX£­§íÀQéObý)n¾–} á;ér®•`xø´Ê”òé û$ç}EÂÔ¡‚•¯±V¯E% ,dÔ…£zÝ··I™º@“S…Ãb‰èúÑžFO·þó¯:ŸÂìBDŸˆV7ˆ²óeÐÈ Œ½ú ¸è@Îë3!Zvuݶ, –¥÷` ×Oˆ.ç¦%`0ÿÏéÐÓR ó¼‹^Z"|^¶ürcáp¼òú×p¨íþw«ß¢k¦"´ëó¢¾= ‚0ZÚN!M¡&l)6ÊrÊÈÚ•ÅŒgtêÐèÑ'âªuáÓû°Dõ,œM«×’010k÷Ïß¶%ÙÐéuÔW×S_SOù±rR§¶Ê—+¡zb“ˆèÑ”ÑΧ¨þucÏ?L¡‘•åÈ]_6blµk# ø`â1åŠàÖ^ _Œ Œ­§2 Dw6“ƒ³Ò‰ä‘NKpÕ¥Õdîʤ±¾‘áiñD÷<†´ÑÕˆ‹®8!!ÝNAÕŠ/¹ôp)¥‡K1Gš1mDméKªàwÀyÇ•ÿÞû!;râÁè…Q%Êë‚#J»5ÿ g+â ô¨§Š®á G–eªÕ0à°; '8´ý¿ºÏë£`_EYE…~zaY…{ ýæÀ‘$ AGâù‰4:;]{ e[%eö‘ôq&RR%¼ñ*y 2žšßœ²}é2*Bܯ͂뾇ŸÁ¥‡`ì Xt·Ò&PNt•@!ð 㬠v&OGö¡ª¸ ½QOhT(¶$ £”ý¼ïþñŽ ‚FÀ–j#&9æ´ÔáwND0–(KçSÜ”¿BàGà<Ú‹®°‘œq¤ŒpAØ;™u=ø]Ú:þ9þ¼ †ÛáOà‰öùÐýFÿ‹ÎÂ&ùˆ¢°ðˆpjžÜp=‹Cû¢†Gáõxi¨iÀÛä¥êDÕ¥Õ˜cÍø$ÁÑÁÈZ™¸Qq-Q §K¿;pfµzß@û‡ÉÀ»€å›LN?½€EßÂØŸ Æ ÞÐ3Á5S¿»A%ç쇯F)#a èÑ} ÂQ‡~ýW]u‰‰‰TVV²cÇ}ìQœg熬)ÔÔÝáiôÐXÛˆÞ¤Çs2õ&&ùÌkwÂÓBgë¤;€2À~òï©?¬"° EÍÓÔ(à”]Š¡ÕpçWÊû§æôn]v$F™n.ÿ~›×­Oæzý~Km¡–³fp÷Ýw·‹ŠŠbþüùòâ‹/ö·IýŽ!ÈÐa<¦?„§S úäk\'mN†ÚqE€sÖñá"L8 Ÿ²~ÛÙ]¤:Ûù; ®>‰•0² €\Ÿ‰îË/¿äÓO?åóÏ?G¬óÂG(ë¶zˆ‹ëðš!C†ô•9ÿ6ÂsF„w¡Ä‰V¡Œˆ§ ¡þþ9üÐW_S€Ö»#Nå¸pP@–d„y¶ ‰m»’4Ч3±FŸ8‹D÷»ßýŽ'žx½^ϤI“˜>m:ßîý÷wnDÔjÌýA:pü‚†ŸGÅS±ÂâpÔÃvE}­GN7h^Õ iаà?`³Ùx÷ßžюt«¤L][‘=æíSDü.ºÂÂBžxâ n¼ñFV¯^Ù¬ìù|>Ö¯_Ï“O>éï[ªtA8púC0ÜãA_Ü…²Þkõ» ü]@h˜;w.ÇçÈ‘#ÜvËm¼ôÊKT}R…¼´­[<;^ù;º¤ß>BÎØ_(Ë2ø|Šëj÷îÝÜ}÷Ý-‚%1õÖ[o=;J "š8c®è_Ž"ij#¦Àãó I1É1œ{Á¹Vp D"‰%È]+¡|k›EW r–ÌôiÓ™:u*_ý5_~ù%•••Lš0II[9%n[r²å PHi¯E÷ÕW_‘žžŽÍf#99™ˆˆæÌ™Ã{ï)1sKû…¸V«m#D•þÅdÀgíQõ@BÔ@¾MÝÈSG§åO]]=ôf³™§žzŠÚÚZdŸ¬xM[1êd‡äBèÕôrûöí\uÕU„††2mÚ4¦L™BNN»ví¢¸¸Øß6ª¨cN(‚ÙwîÏÇ…#ç?—±cǶio6›‘¤“Yî§ŒhÍ¢kžfö7½Ý3ÏEÊ âÉ9J¡â1?ÁE߀ÍÍĉy÷Ýwq»Ý¼öÚkìß¿Ÿ¿üå/£‚åÛaýk_£8d^½¸ûûô%ý{™‘‘ÉÔñžÐ¼yó˜9s&½‹ŽW9û©…EËáׇ¢ £F)éàƒ… ¶´ËÍÍÅçõñà~¸Ñ¥L)ßISê­"ȹ5ý~û¸¸Žã.Aqó¶}¯Ôa™F€Ã‡£Õ ¬Y*“;$ð£[künŠÙlfÈ!>DEÅoœô\ŽÙqžONNDkÈLx?ˆ~ݼyó˜7ož¿»í=2JIÀLŸ×ðPé'ìʾðˆKÊ>œÝâ¹h  A×ÈÀ àh³µˆŽVÿó\ÑÉu*ƒ;$$%t¸/\WW‡½Ìc;¸npv‰N‚ö-b•ˆN¯cÆŒ\;çZ’““Ù¸q#ï¼óŒ¢]r£ÊàB[®eÌ…²ÌÉ9}æ0ú„³Ct>àhwkkDÆMÇâß,æòË/oyÜÀÂ… Ñ ìuªt‡Äj±S'J‹è¢ù¹„ey1Ü¢ó?€v2…?y<ÜÿÓ§wüŸf7ò ÿÔ*å€ÜžSJ7hô¤‰¤Ñ¶ÌCœ_¿jà;ÐÐ"6ŠL¾`2÷¯¸Ÿ´´´N/©¨¨`Í“kÐ$i†~¯Iå °+:Ý.ÈQžcxã‚=z4ìÚµ‹÷·¾´OB¾M†Î·‹ûœÁ'ºCÀ>Ðëô\{íµ,]º”ñãÇwyINNËn^Fm}-òœ…mÿÝ(S°‰sÎ鸪P~^>—^v)O?ýt˱9sæ°råJæÎ›KŧÈË÷=T¢Ó !&$†ÿ¼÷?IOOïQ¸Ø—_~ɽ÷ÞK“§ ½Ù€ð75Üt°ã«ó::µÃJ¥¥¥8NfLŸÑî\\\Ϻ˜-ïoAû\ûç·…þ©µ>¨D÷—¿ü…´´´NÓŠNeýúõ<ñÄŒ?ž?ü¡CÕMº³èèhFê¸l|óz®³õ^}}=©)©ìß¿»ÝŽÝngìØ±ý÷pƒA%º3ÚÿzuDSS¿ÿýïÙ¸q#7Üpo½õÁÁƒ«.ˆJÇ”••QYYÙ­ç²³óyyyb4‘eeŠËŠ+¸ûî»±Z­}cx+•èzBVV<ð<òÈ#<þøã©ã¨Ò'dff]{.ccc;ÇãáèÑ£qÇw0tèPL&ï¾û.?ü0¯¾ú*?þøc»Šþæ¬(мð <÷ÜsÄÅű}ûv.¾8À‰S*~çàA¥VCW#]W‚E‘U«V±lÙ²–ãW_}5;vìàæ›ofݺu¬^½Úïv·æ¬ð*=z”ùóç³nÝ:–,YBff¦*¸³”ÌÌL¢££;t¢ù|>Ž9Ò©è²³•¬™3g¶;7kÖ,bcc9zô¨ î€A?Ò½ùæ›üñ$44”mÛ¶qíµ×Ú$•>$33³SQ5=îj=DbbÇ1€ S[[KEE ÝnGõ†A;Òù|>zè!V¯^Í•W^IVV–*¸³QÉÎÎîÖ‰Ò™(sssIIIA£iÿµ/++ÃápðÒK/NJJ &L`Ò¤IlÚ´ Qô_ÆÂ é\.÷Üs;vìà‘GáøC MRéòóóq»Ý]ŠJ§Óušî“““ÃìÙ³;½ ))‰¥K—…Óéäõ×_gÑ¢E|ôÑGlذÁ/ŸcЉ®²²’›o¾™ììl^yåî¸ãŽ@›¤ÒO4{.SR:~„êáÇ6lz}ûïêêjªªªº]ï­_¿žaƵ_¸p!ýë_yöÙgY¾|y—¡†=ePM/=Êu×]Ç‘#GøàƒTÁý›qðàA4M§¢KLLìv$ëʳßFp† ÊšÑ ª‘nÙ²e¸ÝnvìØÁùçŸhsTNŸÏÇš5kØ¿?6›[o½•©S§žV™™™$&&vZMî÷¿ÿ}§×6{%»ššvåÒ\ÈÖ_UêÕH×ÐÐÀõ×_¯ nrã7òØcqðàA6nÜÈ/~ñ .\xZ.úÌÌÌN(ݱhÑ"8ÐéVCAAA—‚7®³g8ŸƒJt*ƒŸÏÇgŸ}ÆM7ÝÄW_}ÅÞ½{Y±bŒ9’•+WRWW×eN§“£Gv*ŒžÖq"]óVCWSÏÐÐÐN·NUt*}Nnn..—«åKm6›¹ÿþûÙ¹s'óçÏç¹çžcâĉüë_ÿê´¬¬,dYîõH×}ÐõÔóÔGq ªèTúœÔÔTbccÙ¹sg›ãÑÑÑ<ùä“lÙ²¯×Ë´iÓX»vmK rkº‹¹<rrr0 íœ(Íäææúmj ªèTúN×2µÌÊÊjw~üøñ|üñÇ\~ùå<ôÐC\y啨íö6m<ˆÉdòÛ¯5………$''wX«µººšŠŠ Ut*ƒ_ýêW 2„Ûn»­ @y\öóÏ?ÏSO=ÅÎ;?~|Ë£´Aé’““;Œ&9S^~ùe6nÜØá¹æ(—óÎ;Ïo÷SE§Ò/ÄÄÄ‘‘ËåâöÛoÇíî¸$[zz:Øl6,XÀõ×_Oiiéy.»C„NóèšE§®éT%cÇŽeóæÍdee±råÊ×nÉÉÉlݺ•ÿþïÿæ“O>!55•êêê>YÏuGNNC‡%<<Üo}ª¢SéW®ºê*þüç?óüƒ?ýéO¶ÓjµÜ~ûí|úé§-멾éºÂßNd)*g÷ß?‡æ…^ 88˜{î¹§Ó¶ lܸ‘M›6ùuŠ×$I"//Ë/¿Ü¯ýöZtû÷ïç믿fÚ´i}^Áår‘‘‘A}}}ŸÞG¥ÿx饗hlldíÚµˆ¢È}÷Ý×eûôôô~²ìgŠ‹‹ill#ÝwÞÉË/¿ÌM7ÝÄСC¹æšk8ÿüó™}ÜóßIDAT2eŠß »óÝwß±gÏ>ùä\.&L`Μ9~é_%°h4Þxã t:ëÖ­C’$î¿ÿþ@›Õ‡5#rg Ú®ðx<|ðÁ¼öÚkìܹǃ ¤¤¤@TT‘‘‘DFF¶{ïñx¨¬¬¤ªªŠªªª6ï+**ÈÍÍmq+GDDpà 7pÇw0eÊ¿~x•À#Ë2wÝu¯¾ú*ÿõ_ÿŃ>h“Zxæ™gxî¹çp:~+Ñ'BïE×·ÛÍÞ½{ùúë¯Ù»w/¥¥¥”••QQQÇãéQ!!!ÄÄÄ`³ÙHJJbÚ´iLŸ>1cƨռÎrdYæÞ{ïåÅ_dùòå<ôÐC6 €åË—STTÄ¡C‡üÖ§ þq¤˜L&fΜÙaÁ—ÚÚZÊËË)//Çn·S^^ŽÑhlXóßÎÒ5TÎ~Aà…^@§Óñì³ÏÍÍ7ßh³ÈÉÉ铌–>÷^†……Öi⡊J3Ï<ó eee¬Y³†Ñ£GsÁÌ·ÛMQQ·Ür‹ßûV÷éTëׯgÔ¨QÜsÏ=”––ÌŽüü|$Iò»TÑ© 0Ìf3[·nEEî¼óNšššbG_y.AÊdøðálܸ‘¬¬,~ûÛßĆœœ, III~ï[Ê€äŠ+®àÑGeË–-ìÝ»·ßïßœ¸ÚžsUt*–æÜ¹˜˜˜~¿w_Ä\6£ŠNeÀÒ—‰«]Q]]Myy¹*:•?ú2qµ+šsèúLtFìiÔˆŠJÒ—‰«]ÑW¢óxøà4MKýœiÓ¦ùµ"AVV×\s [·neÞ¼y~éÓãñà´Ûí¿”eù[h{)Ëò·n·{Ïš5kÔ˜0•ÅŒ3xï½÷(,,äÁÄn·óøãóË_þ’©S§òÀ°eË–Lr:ô…çrÍš5·Û½§YpÐj¤!Æl6g¾óÎ;ÑsçÎUKp© XJJJؾ};Ÿþ9Û·o§9ÀcĈ¤¦¦MTTÑÑÑíÞkµZœN'µµµÔÖÖ’——ÇÁƒÙ±c•••Ô××û%nÛ¶mòâÅ‹+\.×8Y–[æÅ©ÎAÆ[,–oöìÙcé«(k“Í_|Á_|A~~>åååÔÔÔ´{H‰ h4DQlsÜl63yòd®¼òJ~ó›ßœ±=™™™¤¥¥9Nç4Y–lcCGK­V{]ddäÛÛ·o7«ÂS¬x½^***ZJ?6ÿõxŸ;^gݨóYeГ8a›/šføïŽñ—…qTT„A)zlK®üm`Oÿ¿*4{ÍRð°Ï™k—úÔb\¶Òù”uk«¢‹îÄ5Ý®ÔY7ÂÀ)±ÞÖ7Í:#ðÏ‹ñO•cø• ½ÌÕ¿£ü œ2'3luÎ_ü†3F|ëVÃVcn<°‡ñÞIimU;¬f­áÿÝ#Ί,sÎíM³Îü÷%ø+ÊÊÊ*Ê*A)Ú`°®ïï··e߿Ġ§ÍvUwj0<¦Çy<äˆ{›J3«Æ³šIëÆ3ŸW<&rÆÍ:ÍøÆø¯«˜P6Qm„ ½î¶úCqüa_ÿ7ÖÙoE2óY`Ô3.pØ8Ö{Û¾Ôãv;i‡n?Øé`*Jk«Z´Yëªî~G-JÙ×÷­j‘uFà_”Â_m‚‰ÿkÞ3¬Ï;lX3ï?jÀ÷æÛd->³ÙÏæÙ ×8ûÀòB£>qÉb½Ö¤b´¶ªÅŸµ®êvÙãÏÔ}Zªàl<¥nœu†_ý= Æò½7ÿyæS¬©ßœ…fþü‰gŽ?ÇŸK[ñ7›ùäøó«ÿÿ‹’~@§Nºâß[ˆ]ªëÚš†º(6©—ªWK’.öKÇ«÷’Ä2º(£OGÓÐ[â—Î/ÑמCPçÔaò–9îl=M¤%þ®TäøÛ…?Ý÷çøsü9þ€‚Nñº+Çßüµœ3øÓKŽ¿=ø³¯[R> ɺ3Çßüµ/3øÓKA.S/©×ìÂ,þ@GR:tä¬Ú ¡(ý±IvÉeê%ªùÌ*Óa5%—©ÇŸýȰ~,ÊåÆÉß”ÌML&›îIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-colordialog.png0000644000076500000240000005410312536324502023740 0ustar philstaff00000000000000‰PNG  IHDR#¡³º´ÿX IDATx^ì[PU×Çÿûp=î(b(7EkÐTcGS“t4ibÓiëLÚ‡Îô¡“‡¶Ó>¤éS'Ó郉Ít¢‰“©Æ “x5(ˆ( ‚(¨Èíp¿œ½»ö7À9î gŸ³)3íöûͬٛuù³ÎÃrýý¾µ’"€`å¦7`†a†a˜ G>Á8ü pˆšdZZÌÐÐÐ@O{x8,Ã0 ÃÌÖ^i m7ÒxQ¨¸ß w¡Lš›ÆŒ :‘žž³ˆ±4YGD,Ãqw„Á%ËÃÃ0³µWZCÛMcBè¡v/i2'TÌC¤k&ÊŠ­k2ðljB‚¡ÒÝ7„ò«wp¬âdE/¼ÿóèù§}§ÐÓ?„™nF`€ ýC£sÁ¦æÍ0Ì,ì•ÐÖ˜^0HÓÐÏTL Ó° ÿƒ³û¥•HŒ GÿàîµÃaBJB46.B„#¿½_°‚4mÿõ±kS>Ò“b±÷ØeTַ¦æÍ0Ì,ì•ÐÖ™}‘¡A“¦ñÍ5]9_Š¦ë—¡²`I–8Æÿoæ™Ä2"C£øó§§) ¡’·(olÈÁªÌd|yö\.yrý$ˆþ6 ÷;û0FõS®ŸûÏv!èpÐï×éé×±ß1vD„£w`]½ƒÞÖµá õ!ˆ¶a„…QD©S«Ë0¡âKýÅo¿BëízLżg¡àû?œ‘vDt笆'u—ËÑÛÝá›¶ÞŒÈÐ#y‰ŒhTlTtøð4Ùe«‹¡r£²õU娾û=z x†¡3"*²¢P™X/Õ ÷ñÙ7W! #!Ë@ê¼ì\ŸƒèðP¨ ŒáÐéZTÔÝÓD©õ'ñæ 9Hš99‡s×Zð¹Ðüå–4^åµâg1': '.6ÀC EQ(%LiMÐü ûOTãQÏÀTó6c ÂÞ~*Ÿž¼‚WŸËÆÙšf.»+À0ú½Ò¼†$ù¦ÝÖT¯ïën#-³ÚQ1q(=´6 XœK†uUåøæ‹½(~ù'ÆÚz3"OcJ$Í™ÿÒ4Õå'ɈlÚ±¤fæâÈþqå\©0(%–LÓ0LK»SVÐùŒßíX‡wÚqçaZ:QqãŒGÞy±ÁA(­l$cQ’ŸŠ×K–¢«o ­žëðÓý.üôÅ|ÄG;PÛ¤þÎn¬ÎJAQv töáÂõ»ˆ‰E\djý.Íš#“äU£\˜’w6ç“Q¹÷ÈI:Y âñtB4~¶¹ù¬Œ>»Ç¼…¦ÍpŒç<¶}/ƒÃ£…êMÃ0œ¦Ùºë7˜Š/÷|@:fµ3òŠÔ”~þ1=dNŠ·½…ŒÜÕþ~vIcDÈœ¸Û4·iüHÓPjfYQ‰®>³ Õe'‘[´ÞŠi†¡s"{ŽTbKQžŠ GÁâ$*Jݽpçj[°\Ô…¢òfÕM,ØM+ ŒÛm]ž Ù°P€LD0&]EQŒ]ýeÈH™‹ŽV¢0s>™‘ëÍÐ|¿[·æ&ÅyÓ wa*È,üýp¢SÕÍøíëk(¢’ùt<®Þ~ðØ¼ÓæÅŽihíÀÇ/ÞÂiѮ©[ó0œ¦‘´kHßfV›ÈÌ+"×pB•õªunL¥ilš§¤Žøy›F‚ª×ÕToÙÛ4 së^þz ŒÎH¤ÄGaþÜH5@›ï¶u™hëì%£¢’šƒw·B%,$ˆžOÅ…?¶$À¨?µO¤?J‘1Å2ѤO4iP„D@Q•áÑ1js¹pón–g$!QÌãZ“‡¨ÎhLc›ÛŒTÖ·‘îLa¾M£­Ó·™×ÖgJ$m?cmbjBH…Œˆ&2bÚIËÊAí¥2¤gåÁQGm’VÃ"‘†‰°Sô¡ohm½¨é¢ÔÄñŠ[øÕ+«NÑ‚àÀ¨8†)2EDúÅXõ@ï†ýmÔ.Y™~-Q==¦êc¤AׂUdY~¬]qÏS;o߯À]ïÒh3 §it{¥oÚ4uº6³ÚDmeŽÿë#løÑ.¨?¸G¡ˆ‰É02BÈšwIS´‘ÉðpKþÚ b¢åøjßßU°*×.žEoOµ +ä‡&}~œzî¾Wä3²ŒŒº P#tKE@é’Ÿ¯Ÿ›00ÔG¥½g@7ï‡ÝýþŽ¡ò$ÀðÖs'ãnC¦b~Úb¬*Ù2Í^i¬-AS§o3©M2?ؾ ™ùE ~ðõ=ô¤:­¶±Ñ›}QüþÒ³7ý{\:{U¢¨¤gç!ÍzKéÃÔ6=TÏqЗw_.¤ǘ,#]ƒäø(2$×›ÛéüǺœg°bIÝ(Aq^¥JÄ-:ìé^stÇkÿKõ­è¡3¯>ŸMi‘uË`NT˜z΄4Y¿~-ô{ÐáÔ¤—:½j4¶vÒ˜¸H;ÞÚ˜‹*Q'ÒOêϱ©ki÷\ÇôîËŠ„èRHÖ‡á4 Ó!Í0•’œ–ƒÿxz¨mFÚήlܾ‹‚ d‹wU±G´k›Ç‡4ž‚µ¨`•4 ÃÐÍOŽ]Æ+ë²ãÀó1©˜ C˜ˆCgjUÓ@å ñ¾uͼ´v TdYÁ©ê&T\¿«Iw€ ˆ·þ €–^Á‹—"'=‘ŠJÕ­6œ¿Ö¢êÑ ´¤Xf&Ó<µW{].Ù«†¢ûO\ÆŽ’ejdƒŠJWï ]É“µóöe ³'ñ0;Ãiš¢ [ͤiþgµ³—¯õ=^Z±q§òÚÛ¿ P=q>jÓüsH'rN"¬Ãùaµ C¬*Î:ë¡à1è;6’ã#!ARS!tþCƒýé\š Äî>]ô#%! ö5òB©$-ÆôÙèP®HÑí¡–ö2FzŒÇX†™­½ÒÚ÷[QóÝ|wt_ Ù×2iF:lF†a†Íˆyí¶;æÌÈ´iš°ˆh466ÎäÏ “éZ†a†™­½ÒÚæ™ö6MˆÝ1ù Í`R5þÞݣVæŸ`“*Ez!à²q7nÀ%اM+¤M5hwÛ@ŠXØ…Ë È9`;V2c äß•˜-FbçêæöçÙv»Òì —‘Ò.à¿/#¯/OñüxðöžâóÃedð›@Œb@Œb@Œb@Œb#b#ÔuåçœË»ªªhÛ6†aˆ¦i²„Á²,‘Ð÷}”LÓ뺖ýf·÷8F6¿ÁRŠq£ëº˜ç9ËÜü€oöÍ$® ÃÿÆ%Q„à_h'’Ø v6‚ [(â S‚ ]D|àúH!"j@ÔJ‰(ÚÙX¥ÑÂÊÒG#¢FŒ“p \öî2ÎåÎøsÿë½ó7çpÎ\âëî.€4ó{AšÖÝï÷ñœò¾?bþÑ,ÿN½Æú¿€ÿ÷±ÆH‹³\R[d-ò…ÐO¶Mó2228¹¼¼„äúú­­­(,,D~~>Âá0îïï!9>>FMM rssQUU…ÍÍͤU———D"”——£¤¤ËËËp£ÖÆb1ô÷÷£¨¨ˆÇÀÀ¯¹PkùýVVVPYY‰ììlÅ~LÄb ¤šåHªq¡¯ñŽ÷7rµÆ ‹ÌwI¥´ù†ºã µi$²2²¾¾Î­Iss3æææh“„ÙÙYŒŽŽr…èééá¶N}}=')óóóèììD"Ñh899A(âÿ#ÑÑNNNâöögggBð󧦦x]¢¡¥küœ¬¬,Å~ Ãb è†ïÎ_ôŸ,ghÇ,2ß%µEÖ"ÂãþÌ'èó¡OþGGG8Û5éé锈PÅÀYM¡€O›«'‹‹‹HÆÎÎPPPbff„®voo‡‡‡ÈÉÉA‰Jcc£3ÁÐÒNOOS"¢Ø©Xl2’8àÃìʧè_hÇ,2ß%µEÖ"0óÏŒìïïCBUƒ¶¶6þ§¢¢kkkH%Üî©­­…‚>¡«D"ô›+DSS'.ô´ªýügïLR¢(˜61^çV^ûºLÖ9ineaTôo‹<¢*øÐbIµy¢%ñe„ûF÷q20œ=#˜Šò-±"ÎÙú[ çóù·î™¦éÚ¾\.sáoǹ‡ã·VÀsO§Ó<©t.¸f×¹ð<éˆsFVÚPCãq!Õè8õßÚå[E*zÞœ{Fh „u6"ÎékÏÔÛuZ_¦ð9˜7Šò-±uàœ¿*âÒ^ho!üWµ«3@Q¾%aÛw~Ù'"r8,û“Ç;Ù9rƇh:r¡·m(Ê·ÄŠTô¦ù¿ˆHƒéÿ¼=3¼M{kK>9w`;FQ¦%V¤¢N\M#"ÓtDt ¦rµŽ;æ§P”o‰©q5Í>‘Öz‚©¸×RQ¸;ÉžEÙ–X‘Š{FvˆK{oÕVFþ©° #΀°ƒ»áý•§P”n‰©qΈˆ¸´wY÷ð1Ä1ZáXד@0&(Ê·ÄŠTĸšFD¦©G ǯç\‚r%@Q¾%V¤"ÄïŒì—ö.«UªvL1Àøc™|Î÷ÕH€¢|K¬HEˆ_`‰þ­íïxƒ'ÍS”oIEu宦—ö"­£þ†¶I(Ê·ÄŠT„¸šFD|ÚŠü¼ P”oIE×òÓü°w9 AížNÃNãlæ.^‡…àÌð0j0.Œ&üJWA~佤ã€J¥ßæ7©ž‹ÅÈétj뺶 v»]Ûï÷Ô£ž‚zùãàï>Fèwßv Ù[ÒŠP¤`ÏHåBäx<¶ívÛ*¸|Ö…_C=êQ¯œ>8ò5ÕÕâÃI‘¯%ùía1²®ëW°ÌóÜ*8ŸÏíp8\Âåj½MQ½%Xo~-šßKp~Eõ–`½yS4¿%8¿¢zK°Þü\4¿·àüŠê-¢ÞÚ4#áU'½*+Rùb¤ÈØŠhÓ°gnئQ3pV‰NŒ|€ ræfŠL-¡ˆ6‚ÅT†VâĨÙs«Áç¡ÈߊŠÛ4œÀ <µ·%ÎÏï'P!Vš·"KZŠЦ#""†bC'Aâ¿DåX(ÊÙ(ò·¤¡HÂÖǦÈ3V§Áç­êp ?~¾'ZýÓ¯÷§f Èß’V„¢8ìö‹4:øF·jTåøk=.Šì-iE(ŠC›hÓè飯"±]]¿–9â Èߊ*$l`ní½r-†Ž¢Á(ѱ^+DÛŠü-iE(’ЦyL ‹dŒECú:M¦º&ŠÌ-¡ˆCϰw†^Ÿ™Ù¹*2´„¢üD¸›æ1€."$Rú÷•“ŸÅ•a ÈÝ’V€¢>ØÀúàÖÞËÏŸ×=yc¦Žú»¨¢‡žñÔŒùZÒŠP”€=#~À'{gp1 Q)¤ÔÉö’>\AZHvJ1›Á’ƒƒÇB|’÷ÀxÞÕ»ü=¬FãÈÝ{YÅ›6müd=‹äîÝŠâ[ÒŠPd@«Åº®í˜óZkÁ¶m©”"ón“óêëäõMΫ·É뛜W?&¯oBž‹ú®ÇLžÑ3òƒú6'V•£(ŠmI+B‘ ¬.£ÍÛ1ç#(¥´Ï$<y.Ùz¸éawv¢ÑSÔDPÞ’V„" þ3âÿ i—€<òÈ ÷Ÿ‘þÞ_ON™·±Å@­¬îF5Ä/åø…·¤¡h ôŒüI@*cȉgüö„QߊôÂ54°uðçFŠ?:|Œdu+€¢ø–´"I(=¶öö›3ÝBï“›/³33ôˆ4Û¼ûï Šb[ÒŠP¤¡(=ó«¦ügÇ“z qPÝ’V„" ¬ÿp+sž#dzƒ·~AQ|KZŠë›nÀGycøbï R"†Á0Ú™Ó¸õ4vÓ»xÞà ŒÞE¥«. ¾Äüà}C6“·ðƒ$³@mbÍ!ð@Ï ¯°ÄÏ#=Ú÷ñ9@Q¼%V¤"Ä=#Eì3{°¬ëçTÁý¾í/ŒÚÃå×þnEýmý­oEã{i_Q[cë­h|[ãøŠúÛû[Ÿ‹Æ÷Ñ8¾¢þ6è™á~9&8Rø*gLûôh9Šr-±"!VÓ\á:_ƒ¿§ßÙßó ávjaŠò-±"1¾g䚈ÈÒ4‘>:ÙÁGphõ®Ê#YŽ (Þ+RâX¯‰ˆÌãq Ͼs P”oIEÜ«i®Šˆ@Dàõû:ù‡_£(ß«Pc5ˆ83R¿Ã±Òÿ´þÍ’\4 (ß+RQn`÷Œ,Gë/Âä`ãtàЂ'674¢(Û+Rbi¯ˆ83ÂÉßí*Ь[`|…Wy(Ê·ÄŠT„¸gDD,íí ŸÑ˜aøN;åQ‚¢|K¬HEuXÚ+"–öVÄ STȹÑÕt|Po‰©¨—iDÄen\+'ñ6mb­¡RðEˆPb»qÔ––$‚ºI§n賈8œü‚ƒ"Z\ÍàP§6útqi¥i•<F¤‡{®çääšç¥á^Î=_.äÃsÏ=Á©Brpp€ùùù^!ùge¤Û1`1¨×k°A»½ËF±hÆ ,×9^ýµ¥ùýr~–Æk„¯Xš_#äü,×9^½fi~»!çgi¼†f¼È(ÍŽ¦¥S1ÑfTƒRš­"("/)1Pú”b‘×Éýšþ\/$" ‰AöÑÿo"N:$&úÕjSˆADNSb@ú”†8"ÜxX3;!Œ~QÄPBÐ ‰¡p ÔìGä1¥w3–÷¼ù™žj뎳ˆâ#ùp½d³Y$“ÉA“ADF—ýßX%…0_½À\if©þÜÑÛDŽR² ¼EƒÉ'!lD#$[[[˜žžÆìì,wFÒé4”Rƒ##‚ ˆŒü‚†¡*ÀåV.ÆP…B$à7"‡)Ým=ÐpÒó÷è·ÏÞÎ<ÿyìÃÓŽáR1ˆÈÏäçmš^677Q­VÑËþþ>&&&066¿ˆŒ‚@d"F_ûzÈBWÝü ¢ÍÖoDþSb@ú”†:"ó »›¦Ýnóc™ÅÅELMM¡P(`mm ™L†»!©TÊ{GDdD½p˜­™ˆ£qE™½Ïˆb˜’D¤)ô§3BDØÙÙáµ!sss]áÇ3¥R‰·X]]E>ŸïJ /bõ/$"#‚ (ÍÓ}ËeêS)Ä6"«¥ô)Å="÷¥¬­Ñ~¾½½ÍkB.Þ¿†OÍšÍ&°²²‚õõu^°šËåXD‰ˆHdÄ3‚ ±ðEª¡ŠHÓõÐ0”éËËÛ4,"ÿ=¸ŽD:@¾\@«Õb©T*XZZâÍÏ:ˆˆ+žiA‰?îe$þ8—‘ἑÜÛÈåG·Ñ%È¥ ®œÇƳ Ôj5Œãððëøø8î;° ‚ 2¢ú×xwÔ-?1;ÇD~R2‘‘!ŽÈ ïÀzãiG_¿A $3ÎdGpîÖ”ËetY^^æÇ4J©XȈ "#QÁêJBrÐù0?g€"ò˜éÏ‘ˆ´ç¸›†@PAAN *IÜ,)Þ+áË7ØÛÛc ™œœÄèè(ˆh eD‘CápÿÖÌ÷ˆòñÝÔ´ÇùÈJ HŸÒÐE¤ŸTß÷aH(P<E€I X,ò~"DÔ®¿íŽˆŒ‚ðƒ½3:m°äö=‹ä1] ;t€ŽÐºG&è }.$ ¸³«T4„ ÂG¯‡N¸ÿ%r}ÑGáÎ\dû‘³%U›.ݡ覕´y(§HEñ–ߟl|‚¥`Eãÿ#ùPp1WÇåiJ›Í&-ËrÞú»þ6Ín·«û˜çù#yp8Ò~¿ÇxOãÍ/××9ÞüÔy}ãÍ×çÏ¿™®^¿ìðïeo7´©ó·ýÛÏÓe~|Eñ–X‘¹P–ŰƒªÛxÕ#çG›×Çœ;PK=§â) xF2$%N†ÔÀÙ |nXåžxEã[bERäCI«‚‹{AR_ˆâ)žâÅ“;Ïñ<¯<^Ñø–P‘ÅÖ"_ìÑiÝLF¯~~\܆ýâ^n® j Ø Xé% û° 3,ƒ¢s@HH7w¬óò]evW—jÓ´'À,ëëkŠ€û×W[0ª…Ëa½—¤z[°Þº&Ýß=xIõ¶`½õ!éþÞ‚÷—To Ö[_’îo Þ_R½­×Ëþ1=ˆál7ˆˆ!ÊÈ‚!C31û~¼VHQ]K¬HElÓˆˆ³i`±…4:à³tÇòd Θ3§€¢ú–X‘ŠÛ4"â:#°ìÇ/è=TûÑùƒ¿–¿£€¢ú–X‘ŠgÓˆˆS{Sö7.¦¨¦%ñ1☱MÃÆ©ÌÀç'ÞêNÇ”=¸UPTß’Šp ☱Mýˆìеx¤,K?ÜbAo2àËX )ªk‰©ˆq9x±Má5×!&úVx¸=h@ôë¸VUEõ-±"…pV±M3npý„wÒ`¶ÀuΓŠê[bE*BœM“ÄÓÓS{ÍùŸ·ífðþþ~{~~ÆzÛÉõî÷“ïïäz÷·“ïïäz÷íäûK®—ÊÏ®t¾3ñï·„ÜàóÕ·ÄŠT”ƒX™¿¯6o¯9O KûNëY°Þ4Ë2vøÇÎ?mÓi}Fžôªãî½ßÏ ç (ªo‰©qÌH =`ÚXÏzÖ«ýÖ^j^$DD¯… YAŸásñ* ¨¾%V¤"ÄÙ4×DD–%P¤Î?¹0dÇxGœý¸†¢â–X‘Šü-âá6MòÆñßy¹SG$ØŒgjPTß+Râ ¬×DD–‰U›x}Mü\Ú$¬ÌëZñVÕ·ÄŠTÄ8›FDœÚËqÀÇü]'Ãw× (ªo‰©q6ˆ¸èY•8€ªûpŒ¯áÇU·ÄŠT„8€5‘ÛççgÖº%ÃLëYÏz¥ÞÚË¿‹™z›ëø—Œíý¾_Ž (ªn‰©ˆpjoæ‘¶ÈÓããcŠ€ö]1`¬g=ëåOí] > Hø ž¿ùîæà;Æ».¤¨®%V¤"Ä1#I´'À,ëëÏ÷¯·¶`T —Ãz/Iõ¶`½uMº¿{ðþ’êmÁzëCÒý½ï/©Þ¬·¾$Ýß¼¿¤z[¯—=f„â¢a*RÒµ.µC Ÿ) ¨¸%V¤"Ä1#×DDþƒ^CïI¤õ 2sc€¢ŸZã‹W{ã¡ï (ªo‰©±MsUD$ p>%;8[àüľ†¢ú–TÄ{Ƭ"âÔÞøž›áù1ÃßÚ÷;Wãå$úq Eµ-± !¶iDÄ©½0´0­û?ÿ#„ròd?È xø- ¨¼%V¤"Ĭ×DD–ì.¼é>?£†+íÜÞ{{hû—RTÓ+RÑ4Žÿg$~c"Î>ÇÙS@Q}K¬HEˆmqÌÈDD@\$¼k—àÊC>@– × (ªo‰©q«ˆ8µ7mÍÌÏå=¤òqŸy:nûFEõ-±"űM#"Ní­ÿ³eæxænÕ·ÄŠT4m±M 4¾Æðb˜Pqhé‡Õ·ÄŠT„8›æšˆÈqÁ~/ˆ”™Ü˜°%œ-…յĊT„8€õâˆ8f$´,ž7úç˜8 (ªo ©(m-âbä§µùÖæ<‚eYºvéÆ3žñ™!mÀsH)GâóËüË罉Šê[b*ÀFy! ’mÆ3žñªíÙ¯£Õ~èL‰™éGìh©/ë÷ïèNï. ¨®%V¤¢8Ü3""ž9ÂóšÇŒD‚ÜCûïµÕ·ÄŠTĸgDDìMÓ3Ãx>Ã?rêoó (ªn‰©qÏH"r8¦ÖZÚ5¾Lóðì©‘Åx‡.Íì÷յĊT‹e@D×?…ˆx+#"­µì…O@™&w0Ö÷æò}Eõ-©ˆï{Ór¹\¦ëõun ü¡@<ã¯_ dÄÛã$-F¢à÷rYÿžš‡ (ªoIE|OØ›&r!²òt<§¶wíç5Ôg<ãµÖ²âEî¡ñDõŸéçò¿0Ç÷ös>¶”QT×ëQâž‘ ¾Ø;ƒÛÆa Š2Æ"}ì}NnC{I/êÃìA ¤‚4^Ò‰¸Ð^e <*œ(³Ð€‡–1à»|cÀ‘–ŽÁ,Óï!y0¾åå†Q5\6ê Nõrc½irÚߨ¸?§z¹±Þôè´¿çÆý9ÕËõ¦Ái¹Ö³‘Zopª—×õ–:ß1ÒÛ1´éÏLPò´%gH‰ (¾%V$Eˆ¦i„:3Ò{û)ŽL²³e#+ äI(E1-±")òAX…?bþð¹\êí7üÞ œ†€ç”­ÿÂDæl¶@QxK¬HŠÝõ¬¡Î¤#¬qDð?»Œ¯…œ©»Äõj fQEá-±")B4MsN„PgÄFHïÃà;¢Ä!+øÎ sMEñ-±")jCÓ4BI| Ç Ã=€½y²37ª•Šâ[bER„¨3"„Й3xi>3-Niþ¿ Ę̀¾X˜ÍɈú>€¢è–X‘!:3rB„Pg„gÛc€¿÷Il^àgœ3 ò¦Ö  (¾%T$Eš¦QgDuFx´·=NÜ"Â%[(/à:΢Šâ[b-R„h´÷d¡Îöò+áçö}¢õîÌ(͉yõ¾vÔíû€ŠâYbR„h´÷Ä¡ÎHÚœð?6ºäeó\¢Í™‚9@QtK¬HŠÔA.é¿DuFº±qá±Ö7 IÕ\°#¤ÑÅ´Ä:¤ÈRv¿‚£ÎˆêŒ`ÐtD…owÄ®AO`Ý ©³³Šâ[bER„h´÷Ä¡3#É `îÊ„(§‘” 6íZû\ÌZÅóê@Eñ-±")B4ÚëÄõzý÷˜óñ-'î÷{ºÝnX/\oÞßÁõÆçƒ÷wp½1;׳‘õþ|ë}ᙑDÑбž`; ß·Š3hc=€¢È–â)úËÞåÖ CQð¹êFºˆn û횺“GÅGt¥"4âšX§aFB8@H5?§¶¹v®"Æjšy>¶6ß·9¿=Xöwú÷ô™ï³FFø¼md$ *Y¹ÐÈÊœ“ëŠÒ-±ÝÂæ4 Q³ ðïuÑç‚©ð™ºk¿³ñiâÄÍÙ=þo/Èy]P”o‰Õ¨qšFDܵ·_°â³CîÄáN,VeŠR-"­ž¦±´WÄjšçû—‚ç~h¿ê†'à_ØxÇÉ‘£(×+RÑ}lãq##"ŽŒ¬<Ï3.¯yÙˆ±®¼—;¯Gp‹‘Eù–X‘ŠnaóÖdDd¾´wgœ¶ûÇëBD­}ˈ2°´£åZbE*šÇÒÞ/‡ˆ Ü/â¡ç'÷0+0{€E™–X‘Š«iŒˆ 8Nb¢±A<ÐÈfàHúü (Ü+Râ:#ÏDDÆÉ@8ôuaux„á!3è˜nô,fK¢\K¬HEˆ##OFÄoFZ«BîÏõseÁlÂÓûeá]í*FHP”o‰©hž÷Û‘‘/†ˆŒ“˜(ðúþ½ Pnð>gð{œ9Šâ-±"1ŽŒ<iFÇ€k €Î/^£ëQŠò-©ˆ¯3~3""NÓðÌ>_kÄp1 F«¸¢ŽãõEù–X‘Š—ƒ§iΓq~€ž›†‹ ò'@Q¼%V¤¢yœ¦‰GDæ÷¦¹)ðì²Qt^þîÿKÝÏP”o‰©ˆqVñ›îÇÂïžÅu¦`­ª²‚Þ¡(ß’ŠX=ãȈˆXÚ{Gï5h,€Ù›ê¯öNµ¥[b*º„ߌˆˆÓ4Ü^½ ^¿=ýŽEù–TÄmÆjqš¦0ó?‘ÍUm¼ÏíEù–TÄmÄuFDÄiŽÞ½ã}ŽœËÓ¢ž»ÂñýÕR”k‰©¨»öŠˆÓ4­9¡ñ|+"ëŒÏÐù Po‰©±šFD,í…óòˆ˜ÏºÇçâp-@Q¸%V¤"Æjšo¯#"!li6)óA5æÏu$(Ê·ÄjTtÛvùø_pdDÄÒ^<óÞ©£›ÜBˆ¢×å¿S?‡(ʶÄjTÄXÚ+"NÓ´RÎ óÈ‹j6GÕëçEù–X‘Š«ižŒˆßŒtc¢3Ö½nº*3+g([bå[bE*b\gDD¬¦)0Nè>\+°¼GÛ¹“Úw˜¢PK¬HEŒÓ4"â4 µù~ñ©#!óËIpæT;@Q¾%Ö¢"Ä‘qš¦%â„Ú ,”‰9m BQ¾¥¡¢6n”÷`Dd¬m÷sƒŸùŒv‚¢|K*âöÙ»·Óˆa  RHî¿Wç 6)@°3˜术X~.,3XÌîw¾ô 0Ú;Âñçî=Ôd5¢þ”rD"ÊlÓ¶i 夰^˜ÂŒ×®5&­åÚÓÑþ)­+"*°Mئ)žË÷áÎP3nÔ“´ÞÑþ)‰(¬g¦iÍÈê‘óõ‰Ì\Kr=©×ŽþˆöOIDuތތdó¡ks=ÈOÎÛýùùýíŸRŽHD™Ñ^@3R(Ý[or}‰×7Dô”D”™¦4#est˜Å·Ù³÷Ÿ•’ˆô"šÐŒ¼Õ/$%Ù¦yà<ÏÑð™ÕŒ×u]>³?c€f@3hF4#€f@3hF4#€f„ã8FÐŒü³w¦±5­_Ps¿R.½Òªø †$RD*"†˜b¨j‚Ä<”¨"„”h.¹bJÐPGbCÌ=·ÚÜŽ´Zá¶iƒ˜nž7y“ž{N{ìcý’vŸîsÞc¯ë±öó®e³Ù0`À´k×={öĉ'¼“àAA1òàÁÌ;k×®Eaa¡æsãÆ xAADŒìܹS ‘˜˜4jÔáááØ»w¯«ê†Ë×®\¹‚>}ú ((ݺuÑ#G®áOšOŸ>aþüù QÇ‚ øšÃz»víRß#::.\PçêüêÕ«¨‰ÏŸ?cõêÕˆŒŒDXXÿ?º.1ô÷ïß.]º M›65ß÷‚ ‚ˆ‘{÷îaРA¨+³fÍÂòåËUUåâÅ‹xôèÈû÷ïõOuhÖ¯_ââb<|øPUe °aÃT§´´/^¼PÂbæÌ™êüùóçø7‚ Ü¿_=ÎõzôèÁ•/‰—÷ÅÍ™“&MR‰¼_¿~xõê«Úü©LšÉÉɘ7ož*›®X±Õ™6m£¨êÁ·oßx8T]²³³͘1c°jÕ*ìٳ߿§ÏB½æ (¨–-[¦>»yóæ|LC‰‘u\ëö>ø?‚ B„¦zšÙ}zÜâQR’“@üNH¼|_ŒôêÕ‹IWí¨yùò¥ò;,^¼z(Dø‚‚…â…¾ « 'NDnn®€†ï8p ªªª´‰•T&mUI £FR‰ßPˆ¬Y³†¢Š"B­C ¬kôZ7÷ÁŸ&¶ &ÀÈ/,Ái© ••U0JLìÿaËH÷?1"ñò}1BbccÕá nS宑êLŸ>šÑ£G«Ã‰‰‰êÐhßP´8w¤aƬ†¨ƒ_×øµÎ÷ÁzA¾|ùW„¡ ¨‚ÄË"1b¼C*“îO‡ ‚àÒìú›NpÈÍ/ö‡1ÌS¯ŸPŒˆØÁ_’O'§zõêACïÙIOOW»îîÞ½«Z <IIIº5Ã{û÷ï[·nñwÉͱ2ñ»S¢Ëù»Ð²`ôõÑ€É{À†–¾À“'O”ïðæÍ›ô<ªvS§N5«âe½±A‰J‹WЇÇNÏgÏžEƒ ÔF±cÇâöíÛ¨Njj* ñ¦*#ÑQap^Vv¼‰‹8xð f̘ëׯÃjè™d?)vü>}ú4Û9ÐKI1b>ÖÇËz1"‚ Õçט¬ÙY9-- •••4¡S¨*…pmÁü>ÝJaݺuªýBçÎëü?íÌ¿rj½Î Z¶l©7G¸‡Ó±hÑ"œ9s-Z´Pí<ï3Ňöþq…‡™xX/ß#‚ çrql úLŒ,Ï319zÝÀ‡)))jFXuØJ!>>Þðc Ü}VF¸ë°k×®?M›6©jÅÓ§OUebΜ9õè-¿:t@yy9Å¿?×DÌpìØ1¶Wɇ0ñÑ Àäg·„C6éCp˜Fþ}û`»=ó§ˆ[ûöíqéÒ¥ŠÇÉ“'9¦ƒÝÂõ,2ni¥ÐÉÊʳgÏP¿~}5zdöìÙ3b4ÆKĈ ‚·½f gI±'‘öwÐ@aàuƒ?×f•€­èO B7¤<|ø°ò“„½'|:n¼ßìÉÄ*Cff&‰¸¦†††B£Gvx(^4ÔÒ/ÂYmºR£×3+â%bÄzAŒ²`ÇË—/«ÊˆÕÐ?AÏpjîܹãÔ)”É™‰Ú º£g]»zz£Äq4°rj<§ »‹ÿî4¦Ãƒð^;™yîxX/ëň ‚à~”«œ ¾mÛ6eVÌÉÉQ£0:äÏ;6¯\¹’›9œS­Ý·o_‡Š‰™ÄW^^£¼~]/ÂŽßìÎG0îâÁFŒ!G•è1õŒL™2…fXQi–,Y‚áÇ›‡Uñ²^Œ‚ îGYðœ eäÈ‘())áîvŒö´Dÿî”иtܸq°Ûí Ä!CèOøå ‘“'OV»hl6[­ñ án^¹›†FR¾ÇS°³8+/:u‡0tèPU¹q‡õñú—½; bÍ8~ŒÁ÷%3ÑŒæšqAf|p—Á\ñÁE7ÜPAÅu_ÐqÁ…¸?Š¢¸ Š*Ž¢Ä\ãMœLrs¯"Š$F5q8 ê6Ý%ÝýuèÿŠ$]M¾®:çô·•[#˜/â=ÚGYx“õˆÇ¦z1웾Áÿ_ðäÖ%+CÂyYú›Ë¸é ";TøxØc:´WÄö¤Ä&^V0jQ¤G¬âá2^­­OñËrÉî’)ž×õ}î¹ëûM¼Ü#@ÏJÊ=›¦è—RÉù)+ôo}÷œx%_1òðáC{Är è3|kÀiöhp7¡ðy‰äåvÕŸvÄË}1âO,Þt±ÜêØ—`höh/Q@·¿_Aá ;╌ňöXb™2eJÌ:táÂr¡=Ú£½º^—šßp¼£§m¾e×T§¯ž3ðŠK+4ò'©N$^#@AbG*#^HŠ@1@1(F(FÅÅ ¨³;°‚?ÝÙ=¶ƒ'^©PŒüOwv¯¼¼\þ¹`‰üˆíÛUGŸ.M¼\KOÖ§æççËàÁƒiö|hÏ5Äçiçî•ýúZÎÉU]ýQ‚2ôúжÀÉx¯ô$}š¡&ß ¢=Ú£½Ä¾}û&$óOm¥¼âĈWºƒ§ÒíÑ^’jjj|'²:u𜔖½’ñbμzõJV®\)·oß–ÏŸ?K¯^½dÑ¢E2bĉF‹-äýû÷KõêÕÏ÷ïßÞ7þ÷Ùç™3gŽ\¹rEš4i"óæÍ“uëÖHnß$T׿üÙ—èJþû«üˆ‚‚Ù°aƒÜ¿_¾|ù"½{÷¶Ï7räHqÀY¼š5k&•••â€x¹G1Ó§O—~ýúÉîÝ»¥iÓ¦òàÁÙ·oŸ#nXB —Ä¢JZsçεk©¨¨ÚÚZY¼x±Î=Òk Ü3Ò-»³øY“Åÿ“ ŠŠŠdܸqV=zT5j$OŸ>•ýû÷Ç©q/¬lW‹±ñŽc¼Ü£€ÇË¥K—,1ªÚá)++“U«VÉ;wll¾ÿþrèÐ!iÓ¦õŠ(ï§õ¸§="¶ÒÂû\{÷î•Q£Fi1¸gä碒ï‹ÞöíÛeÅŠ2yòdñôéÓGNŸ>ÚÓ$›7o–ÈëׯåíÛ·–l7nÜ(gΜ‘êêj-\´`´^á¼ÆÇŠÍ={öØÿÌÍÍ•ƒJ^^ž8`÷áâÅ‹@üâåÅôìÙS¶lÙ"3fÌN:ùÎOš4É’ÇñãÇåëׯ²mÛ6Y½zµ9rD‹?¦ñ^‹§V­Zɇ$++K¦M›&Ë—/—úõë‡í5yöìY oÚñp÷î]Ùºu«DòèÑ#-þì•Ož<Ñ×txà šµk×ÊŽ;¢8oìܵk×46Ö³`Á¹uëVÂâå¹|ù²A13R‡QŒÀ©S§ì›øðáÃmÎÈСCmNCûöíEÝ»wO<Ú{¢…H=œ xI¨°°Ð渼yóƾù+bZºt©ìÚµK‡iôwë1ˆÆóç?Kœh·#´h =çÙ´iSèû¬çäüùóÒ±cGQZh 0@‹¨Î{KË–-EÍŸ?ßÎ9`×vâÄ @¼(F¼éâ´3íÑíÅ:tè`ß”•&tMZÚӠߢ•ÆqÍš56·áÓ§O‘Æö9\£=!V;wΆ¼bäðáÃ2{ölMÎÚS`É·uëÖÛ{"N¬øx÷î´mÛ6ô>Ùë¡Úµkç›d¬Ãc^!¦–Æ ºóÆ OãÆuÈ-áñºzõª^›Å*6,^#qÚ™Îþ—g8Ú£=Ú‹+h’´Â£sçÎâ™:uªõ” 2D»õ0dff&ÛjKÀ-ÿøñãÅ3kÖ,]±bC7nÜÐß­§'Z••UÔï¿WH$Ë–-“±cÇêJkذ¡ïè|‘ÎݱB°¤¤DvîÜ)ÇŽ‹tÞÑòl¿›7ojÑhY”ÄË æŒÀÌ™3u_WÕXÑÑ·oßÐ$¦«:t5®DÑI‡šôB{ldРAòñãÇX%4MZ¡¿û&¥Ž3F ]*«½ZPéj’Ð*V¼VUUiò³ÏÛ­[7×"mâæÙ³gí³.\¸P¯I÷u±a¦ðDçÄØ}=z´®†±"lÉ’%‘ÏG–ˆxy½":É8H¼™Àš*`ذav„¡“Aõð}S÷hÒÓ#vsF"'¢ &؆ÎÑ#&«3ºdeH8/Kû‘9Pº”:Ð|›´´4Ý+Åô¼ÅÃÿZ¢âå­æ‰oñrb¼‰“cê©­­OñËrÉî’)ž×õ}AïµëûM¼Ü£’_ðnÿ¢_J%秬пõ=uï^¯:YŒHn¦ðy‰äåvÕŸvÄ+ÎÅ€n¿‚Âv®Î#^#›È©{ÈØÒíp¼£§m¾e×T§¯.F¶ôÖ{‚«Sþ$•B;/Š  ±#•/¤Iª##€b =Y—<åççûwM{´G{@1’¨%O–XìzhöhïÿìkH–gƯB,:·XnžrYA°…?$ƒ´ >ŒUÈ̬‘ÙÁ°Ø™ŽF‰Q¸j¶tÄEçàB Š(ˆrËÖ4—²•â*0m\7Üäµ—”çñyªë/½½ÔçÿÂÿº¯ÿuß/„BbÄ¡-OúyúyªŸBeF„B!1"„BÏBqóæMܺu >CÇÁ«^ŸŠB îº1büBuu522³Ðòórm^JõR½>1"„‚ŽJ ü@Õ“:üZô3Hcãh/‰ß&ñKÛ>|1¢zy/F„Bˆ7oÞ -"¿ø Õ5ÿB¨^>#B!úôéƒçÏŸãc ¹¹KLÔç¶ÁáqU­®·êå¤BQXXˆ«W¯âðáÃh‹ôôtLœ8iiiè ºtéËÛ·oƒ>oéÙ³'êë냼¿=Í­µ3ûe@£«üë‰ëbÊQ£F!77LJßàiË(++7nòóó1dÈЦ àôéÓèÑ£-Z„õë×#ÔËS1"„bÖ¬Yضm› FFF„ËË˱ÿ~tVT}žØÓ~oܸäýwF⿊F[°áýñðo¸‰u>^½z…‚‚Ì›7ׯ_‡ß˜1c¦M›†’’S›Ý»wcæÌ™¸}û6ÈÂ… Žšš´´´`Ù²eækæÌ™ƒ¼¨—÷bD[„ÐV<Ñ­[7Ì;׎­[·‚X8`œ‘ºº:¬Y³W®\13úñãÇ›×0^³cÇ;vÌ••öýŠÊ ¯ë ÂÂÂ(DX›÷ÙØÇl³Þ¼y3ŠŠŠÐØØˆ)S¦ //ϸNPQQA1h>GdíÚµÆÅ±Ð¡¨µnÏž={(^(F<¨—ÿqJˆ¤¦ýwBüRø“‹[ñÅHBBV­Z…^½z444Ðu0ÎÈÔ©SMÓ?tèššš°}ûv6®Ø=Í3œþ¼õaþüùCÆ™Y¼x1ú÷ïïA½|/F„#"::ÚdsJKK¹ƒÃ8±±± l6›6mBbb" W¶&ìê%ü}¸ºw{¢g‡Oõt:Q©©©ïÜBÁb^Gž={b¡`»pá‚.ÀñÇe­2#½{÷†…ÂÃfz¬ã6iÒ$ÖË{1¢Õš#‚[4—,YÂÆbvØXØì(PØðFܸq£§g`\ºt‰ÎŒÙFê4õõ h/OŸÖÀ-xí9>‹ŠŠB[ðdTŽJè8¼xñ«W¯p.˜ç`®ƒ²²²»ví¢óåH½˜Ùa¸–ã=Påïdaø–BŠã¾‹/šûçÎóo½¼#B‰íZb€•;fF ˾}û¸›†; esãj×ísFxßÖ?ÀÉÎÎîàûýˆ´"Á:lîw´£"t‰è‚Pœ8qþŸ×aúôéfWÔСC‘••§(..æhψ2fÌó˜…Ÿ#f½ˆ¦x¤K‹¬ÂXC›s`³"êç¾¼ÞBœ9s­1!DÞVܹsßmáÉÑ@°÷;ÖÜÇDà]A¼Ú xL F@ŒxLócïGçãÀÁÃñoË/—ò¿91²ÊÁA/ž-ÆZ"¨Wâà ÀÙ4b#b#bðjïp8ŒÑhF#šÍf€YCˆôûý ‘†V«ív;2EAÒív£×ë6«îŒÖÄôù)DNŸ½i˜»y-2Yd1R"3'ÎDîÞ¹™êIõg°&Ö#M"³§ÎE­¶)Òpìøl,ÌßÎcäò™š>™~ω‰É©xܹ_á©þŒÖÄzuOu"«{^þܺ>Àš!FÄæÖŒb$‘õ½Càž‹3ˆ‘qëp†À=#f#e]îùî;âý‡O)gî6þ\ZøÎÞ¹EuqüïÈ¢@y ( Eš˜„];Q ¦°Š¨¼’4Ä6¥"„§.ï—,°Ë>x¿¶I­B0 Xi Dl“`M&éÔª¬¯DAH ÎøfisÎÌeæÎÊ\z— ±Þß Ãœóݹßw¾¹ß¹çžï;0Sý?NxÝ]B­R@«€‹‹+Ò3³áãã—E¸xùΜùb¢w@®PÁËËû‘IÓüXôötC£)À¹³gáä쌸ø] yé|¹ iš‡#àó¢7ÆÇÇÑÝÛÇ×—Ürý¹fæcÒpûfv,Üϵ€°3‚Ÿ§OŸBZjÊ+k ‘üýýŸBº3õ {ñ¬§XÏÞO?ù;RS¤¨¬ªÃÓÏzŸ¾¿õãÈá6$îŠÃ+¿É“ŸÑv"Ç:?ä1NÝÿ³_|~šÎ'Ö66D社ŽöN;7GGaiiŲÇÊÊ£££¬¾œì ì?Ђ… ™~áh¯žÿô`M2ä Dš˜‚µÏ¯b]O‚ÝÊÚòåHž‘·¾×ŒwöÀ‚ dïÎedtG¤iïÛ˜¿`ä jÓÆõdñ#ìŒLK\ ?þW¸/÷ qOxòÉøàƒNøû€ÐÖvûÿÜkkvËòл®›ø‘K>Õ¸¦/ì}?è°±™‚,WŽma/##s7gLrëÐï3™k‚ÁÁk¾NÇ­T™!öÑ:l FzZ2«•™Ftó ·njïT¯% 2qúB@HÓL;–¸qã;&m@ mKKK–ªBÄÇEão½‹eËÜ…‡†˜[XàûïoŸ,ßNw™¾úçW¸sû6³fÍbÙBvD˜öܹs¡Ó1m: 8;;?ÔöÁÁAlò÷cÆF¾üÖÿÊ û˜ùT$éµIº•ïX¸uS{§|­ÓæðÅ4# ,FÄ zº»òëtX,aÙú2Œfá7¯½‚7÷¾§žZ!üVÉJtÿ‡âaÄžAN'Ñœ°¹¹9nݺÏg~ι``ävvö¸té\]ÝôtÛÛÛã`Ë!f×Dï~ÂΈ0>CÿËxooººŽ#5% ³gaxx¶¶¶äù¤uQ‹»yVY~äO)NçÙÚêé º‰1Ií¿sç}¹ /{–Þ+žF}C½½ÝÈHK†¯ßzCìclåns…n>vrøB@HÓL3;"£‡…Ž$ˆIŽ’EV×6èÓÖÀ ˆDF}öÔ¿ ±dåcŸ¦¡þ‹{ƒ~Q<÷Üj\»vµ5UPkŠA¸{÷.DF"š¢ùúë+(.Ò€0ÕÅHPp(òssH]S3BS5’»ÍÊH£[ßNNNÐjµ¨«­FiY¥Á"¤iÚÚZ±ek 4…%,AfF ÚÛ!<<›·l%5Pôy'®Säç²b“K®¿SkíÀ\ÝÜÀ°JE>‰F)¾$:xŤ‡‡­ÍÚ‰›7GQ ÏcÙ$ÝظúÒ×C§'2þöq/>øeêºùØÉá ¡€uš‹Å¨ ÏËÁ… Z€ù %<==‰zöúo  [‹Q‘¿GEe Öx=ÿ8°Rÿ)•j”8žæUcbã't© ‹ TÈ‘Zr´ã0#ç,¦‹OØIOÓlØ@ŒØ¸²È¨hš–ùÝoÃèIœ¥K—!:6NïÞ| Xµ¶ +[¦ç“À ºÀߎ„RÈr²ð˵k`ffF_ð}ÔÃø‘C®•ÐÓagÏ_Aš˜Œü<|×­a£vI“ˆ^1©Pª‘™žŠšêJØÛÛÑ8:vìè„Ü××±1‘¸|é2–,Y‚âÒr"3Ð>ª{²6¿±L]7?;'÷ÅÙ»{”ˆ0Œã`k‘ÆR’Á$Þ@D‚…•X¬669ˆ½ØAlVQwbµ¼€½Dʰʦ7*#†°ÿä/“—ùàUûhF¦–V{{»šŸÑoE!k­zÛ;ªªJnP–¥†WŠãX¾ïë+išjcsë2'ó<(Iu[û5€5ÑÞ=hÿðTYNÒè§S{'bj/¸3‚E³ &ϯïšwFðÿ™ƒÁÓË[Ë‹0¦ö2µÜ¦ö¶cpLÓ ý§½ài/°3Ò>vFÀÎÐŒ€fÄuK  ‚@'ý#Åkërƒ<Ôy~' CŸky%–Üß^×yvW÷kkâ´xž'cŒÆìðRpoìŒ1u®M¢(ÒØMnçŸvg§5×Èg;÷“Wp¸{˜E¶a–A²ó†ÜÁCx8½ÃHŽcñVR Ò”ïÏ•ò}PT+ÎFD~ôèk;~'~œ9N-eäì ¼éûº$9j?#€çŒdäìphŸ FÄ FÄ FÄ FÄ FÄ FŽ¹Î¿Ú÷«om/€?OÏûbä÷ù¾ý¼½kï]ÑûC{‹ã'zÿòo¦^þ›È½0ql¯‹2ù‚‹Ãå\Ì„H”¹ˆãLˆô¹dˆÌ À"13mÚK7#)†woó15L¶ßŒ¤>|q ‘é<ˆ$5B¦óÚÛ4)Ú¤†Ho#€Øú6ÍʰÖs‰’œ@lœ¶p3RÃcvvÄÈúÍȲXŽ@Œ¤ý7#=÷b„Lç@lˆ’›þ›¦„H ’ rVâdý9#%DÊ~@lÝǪÕrœmIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-dateedit.png0000644000076500000240000000236712536324502023232 0ustar philstaff00000000000000‰PNG  IHDRÓ!tƒnù¡PLTEÿÿÿ !!!###(((+++111555666888999;;;===@@@BBBEEEFFFHHHOOOTTTWWW[[[jjjrrrtttuuuwwwxxx†††–––———˜˜˜›››¤¤¤¨¨¨®®®°°°²²²¶¶¶¹¹¹ººº½½½¾¾¾ÇÇÇÉËÏÌÌÌÍÍÍÑÑÑÓÕÙÕ×ÜÖÖÖÖØÜØÚßÙÙÙÙÛàÛÛÛÛÝâÜÞãÝßåÞÞÞßáçàâçàâèâäêããããåëåååææææèîéééìììïïïðððñññòôùóóóôôôõõõööö÷÷÷øøøüüüýýýþþþÿÿÿOŽ6Ñ"tRNS "#$¼diãIDATXÃí˜KkAÀÿ³‰EÑXE*‰˜–P4KöäA¨o¥'JÅ| o~ˆ¥àÅ àA#ZÄ|"j›Å"Ú&&Ñn›Æš4Ù]ç•uv³©·»8³3ÿÇÌNæ·»“y ‹ÙEp}ì¸$XèìÂjB,GMf:™NvíuRáStY´¿)·¼Àô“*7†©øá ¦2‘˜ä‘óJÒ†IŽÛÞ,˜ Þær]ÛbÝ ?›E¡}¨E:Ǥ`q‡èGqZTÆq®Ó¨ýÉZð`KO-U‚×…AýùÖþéÓw€»Ì8°¤Ü'<,hS>óU tƒË–7õ…m™H¨]ñPdf·Hç˜ ¦.)“¦é8ŠLÉÞ]õ7Ú~ÃÑÀDéx[¦©üA¸2¼*É3-Ò9¦œh7”Ç8×4UÃAµ|{µ›§@>½j‰ÑvLÞ alTíòùéÓF³CyAF’ªª$ LÓŸ‹U@…bezŸÙÓ OVÏ+ÊÔh`¤†Àt=^·”ˆ¯Ì49ëÁ¢óãÉìHO0¦:Æ™®Ev—¦g왚æË/ý;éc)²ÿ9«tŽé—h—”)ÎD"gª'F ýQÙL™™d’Åÿ0Qέџf!4ˆç%‹tŽ©"Ús6LêdþØŠ´¾:¶Ž˜¸Í Üó² ÓØæHÄek£92ª‰~§ŠÝ·ç¾õ^‘È{CDV½Á”§ÊÃTÔ½ÁdYG¤øüTÇÞçnwá>7g^G('"“GÎ#"™SôU~}>¿Žt²§ÒÙŒ0¸ðüC:ËX!Õ˜Ÿ8ˆ—%®³¶¨Î+ñFûü–æoѯ˪­óú:ëbwñ~ÐJÆx2˜ü^`²¼§ÿLÿ>“yƒ©gòÑà~&•îŸhS˜GÂ—ë™ø>—1I’„“ÏåLì@‚3I"ÑåLƹcB4H.gjžï±I¸r÷ É8‡EÍçäðbÐS‰PAIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-datetimeedit.png0000644000076500000240000000335312536324502024105 0ustar philstaff00000000000000‰PNG  IHDRÓ!tƒnù^PLTEÿÿÿ  !!!###&&&(((+++,,,---...111222333555666777888999;;;<<<===@@@AAABBBEEEFFFGGGHHHJJJKKKLLLOOOQQQSSSTTTUUUWWWXXXZZZ[[[]]]```aaabbbcccfffjjjkkkppprrrssstttuuuwwwxxxzzz{{{„„„†††‰‰‰–––———˜˜˜™™™ššš›››žžž   ¤¤¤¨¨¨©©©­­­®®®°°°±±±²²²¶¶¶¸¸¸¹¹¹ººº»»»½½½¾¾¾ÇÇÇÉÉÉÉËÏÌÌÌÍÍÍÎÎÎÑÑÑÓÓÓÓÕÙÔÔÔÕ×ÜÖÖÖÖØÜ×××ØØØØÚßÙÙÙÙÛàÚÚÚÛÛÛÛÝâÜÜÜÜÞãÝßåÞÞÞßáçàâçàâèâäêããããåëåååææææèîçççèèèéééëëëìììíííîîîïïïðððñññòôùóóóôôôõõõööö÷÷÷øøøûûûüüüýýýþþþÿÿÿçIH"tRNS "#$¼diIDATXÃí˜iLÔ@€_» jÙ ºƒy¦¤ÑöC’ïOnæõy§?05’ÂÚÝD¼÷¦OX&ìÀ²NÞáƒIrù –X…šQ͹ܼõ¬[èÜ P]eBä|A—®Ôý:b´v¾æ?ìËjM±Ì¯û°éCAZƒ´9.K¦HlÀåmèh³pƒ$+¿b꨸üàç²+|œ§¨. НPsæêÒØ Ckv™§œ ™B,æXæõ¹¤z HCR™•ÖLï6S% =*9óФpL5…Um£—$•5„Ì 525¦&l1] %á¤GM€Û¥›ti`2ÄКø=½ ñÀFb1Çj^­ñ'AŠé e5W¬™^óºGÎÁLŠ¢¢Ì3­ŸÚvÞ“Ò¤Ù}‹«ÒŒLÇzÏ2wåõ;ÉàÜÛšsu)õòô?Ã| £çåYˆi].Ṉ̃Z?]{Šúiû¡ H‰K±fzÎë­òatV¯‚’×ôßkI<ÒÁ>ÐâÌ30Ý»¼ÉabzP0剠ÄåëÀ[é| Ï”«œ+Ï#ZçX2ž‡Nê÷‚Ê5’%Ó “á8I^¯ÓÝÒNÑ«ë­ÑBúŒÑ¦±rçÌÂ0ßϺ~#•ÆZúœÿ¨{dY6±Xô“W•˜‰ÖLfK>ajoGHíÓêiá=›.ŸLä}ÜJŠ–Œµ ɇ¡sLÇí¹_­üéx¢RMrd‚5“qnejCX<Ӫ؈÷+|3i%M+,_>Ë Oè;K“9F¾)ì½ :ÇÐóÑ)A·‹â‡Íkd‚Ÿ½Ó7^+ŸaL83¦Vç (/® Ž8mdâ瞉öÁ‘@õT9D.@s “×Jßö7¯k'&­bwó°¨1ÔfŽý3¦/¼þÁ“÷ÒÃÔßšÀ-§±¿¾Ž¨H¦J&Â>˜ œn³µQ-d nů_ÿ=û­÷d¶„ ‹‰&ÿ`zI Û6ÐiÕ?˜Lëˆ6?µ¡Úç†ÚpŸ[m\GÈÁûy&?ùáä™ð¼ v @ÙáPï©ToFh ›ÐBŒ*=ÑJR¢vlÀVz°2m‹”™óÐÛg!Úµ@oùR½uæ¯Ò›h»â¤')À˜LýôŸéßg @DþÁÔŽÆä ÉþL^²"M!ýlÏÄö¹”IEt8lÎD?H0&Qp¶9“þ݈2 $‰6gÒ¾ïÑ;Q•ÀZ°mÒ¿Ã ÚsòŸôœÔ‚bKo¼IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-dial.png0000644000076500000240000000566312536324502022362 0ustar philstaff00000000000000‰PNG  IHDRog– zIDATxÚí‰SI‡@ÑVÑp&" bðßÒPACPD<qPQV /Å[‰™XuÃÁO$XtQ¹å¾ïS}Û¿œ¬™²¦¨ê¦ëÈnª#^¤ØT‘_½Ì÷ò½|ÐÛÛKŽˆ!®W€'à šÏžÏç£àéË4¡à+$ˆK —ï¸8ð„7‡Ë\Þ†¸d¶KfÉ`þЗ>\OO½ÿž éÎ;TPPÀäÉ“'ôôéS*--¥òòrª««óUxa ™'9[PlxMMMôøñcº|ù2>|˜6mÚD+V¬ Í›7Ó‘#GèÔ©S”••Eǧ0Ù½{7¥¥¥Ñš5khõêÕìÿ®]»F¯_¿¦®®._€®ù. uÉ÷ €ÂÁóAÇà:tˆÁÄ>0Ís÷^Ð>hå™3ghÛ¶m´téRÚ¾};»_ss³¨ðsù·‹\²@¦…sø*¼ÊÊJ6È«V­¢ŒŒ 6-­)ôâÅ :vìÓàÓ§O³B0xçÁ[@\(ÓÀ¹\û‚l‡÷üùsÚ²e %''³é­¡¡Á’¿‹¿sñâEZ¹r%Óò²²2QàEq‰æm$¸ˆœÇûàað°Ž%%%1m°k°ÚÛÛ鯴víZºwïží†Ž ÇO\bxÅ5p1_CùÔl9<¬Y7oÞ¤¸¸8¶öˆbD _ôå˱^ —%¼æS¨4}†Ù&<¦È={öPuuµC?MNN2Á¿x.OëñÑ£G>áoŽŽ2-šÙÓæÕ«W)11QXm›JÀ±±±™ë,:8×VY‘FK__MLL0™1Ófww7Ûù€SÜÒÒâó{Ž€g…Ú¯³³“öïßÏ 8Æþ°a „ƒµÐ¯§Í“'OÒ¾}û|b/ÑS€Ÿ?6Õ•°Uó°™@­­­~²@1ÃÃÃþ¯¾¾ž9ߨÁ÷ç˜ü?„5êÓ&,K„brssgDÐþ¦P¿€‡­®;v0+s¦D½a½þY>m¾yó†bcc©¶¶vF¥,HÓ'ÖAŸÕ~üÈÖº¶¶6Û×¼°ûaDÀ3Âu° ²·rrrl×:8Ì##c44<âDóh½µÏˆ½OK¦Md_-_¾œ9æö›ì“ÔÚÖE5uMÔÜÒá2 &hbrÒ'ZoçÅ'àåååQff¦0æzm}ƒ'IGgÓBhƒUqø}Þo-™6ê±3qHñîëüœ$u Íì=«òRÎÛ¸ŸéðòY¶l™áh×§ævUx’46µÑðÈ(3*ÌNkðÖi7|»­[·Ú&:Ö;-prÁºˆß‡v˜µÂa÷æ1Þõë×éìÙ³¶ÃÃ@uu÷¹ ‚µ±«»÷Ü£gLãÞlM‡ÇüÁƒÄÕ¾R}c‹Gð$ÁuEÅÅì ƒ‘»CÐ:o¶ËL·6‘Âg·‹ ùvÓ))}É6ŒNs‡eëÍn‹©ðŽãS"„cÚ:º§®¢²Êõâéþýû¦ôíëׯbÂ{ùò%íܹSß®Ùcpªhë¶Ð¥K—LÝ*›®oiêšxéé鶇a‡¦¥u¦ŒŒšñÆâ4Uóp|™av‡`° æ)¸_~Í¥ ÉÉìd™ýƒ;ÝýUS5¯¨¨Èõô´5}rò³ÇàîÜ-°,Ú/,<œXÅyp»àa`zz<Wúì; kÕJa§MXh'Nœ°  •†O­nƒûoå{ŠO »wïZºyà<ó4ð²³³mK·÷ȲLII¥óçÏ[îÆL7-ÂTx8_‡ãȶl‡¹¡wá9šÉÎKXŽ(,<°A»¶ÃæqÜ¿ró()iƒ-i÷8"$<øGXü­Îƒo784ì¸û¿=d–¥]e:°. é¤CpXÒêÁÓÜÒÚ© îÅ«röpÙ(–v„*`ÍÃi +};8æzàÞþ¯šÖÒíÛ·m=ÃàM4Ýtx8—±.ÕaŒzû´}»5”šºƒU5²s÷~¨7)¦‡„ u¨ få‚T-x™Ç²XÑ8»ºx›¿i:_‡EŠóÁxñ¶’-Kcý3ýdöVœÇŠ­8O *#§KÛk¡†4÷ššCÒØ¯çÿ›Y–B“*àšqâÖÖ’(¦³nݺi ¸<½ðq û΃·oß YõϬCš¶KÅyõ7zì‹Iiìeå•Ç|E¬7ffÅ[!Ê_¸p[÷$µ±°ºú&JÚ°=¢iœµ¦…(âÞ½{Ý26°ŽÀ·KOßKGf Ɖ‘5Æ„Ö<öq(¢—‚‡©('çJIIʲ”J›][Z(Í“WŽ@†5¬F­ ¸øÚµøøx¡,KÉ€²òëi„üFoñF%\eÎ'¾Ãï!J! 8X“fÖ’ö)xœcG)ãÔÔÔoŽZáÌDmƒQbT!8¿'2W®\a CÐ8‘ Lηx¹!ïÞ½cë¡4X"ÔË„5ig?|Þ·.ÂËÿø=Ûo™‰‡ÐŒ¬T;£àÉ׸ € À`š¡R:ºTÉŽuÍïà)5N1@B+0ÈtOµ¿ë¤"ÞfDYÅãç1­J9"|ÀJ[U€2Z—ÀK¹”f÷zæ÷šçŽ6(¦U HŸl:êÀsÄ™6x<ž#ΚçˆÏ™6iÓçˆ3m:â½æÑ7Â_Áü—ÂøE?ð' ZöT,QùS£|ŠôZµkµî§w­ZßbTú:Uÿõú¹Dc Üù,KTúã™æéÀ åðó' JöTĨˆü©Q>Ez­ÚµZ÷Ó»V­o?©ôuªþëõ3Fc Üù,1*ý1Tóx<ž•ð‚\â’y.ù›Kñy7’ÏÃQ¼UJ”¬Rü¬×ª]«u?½kÕú¥Òשú¯×Ïh1pç³D«ôGù^$wŒÿ|Î#„óÑ„7Û%s9íü?òFðV)²6Bñ³^«v­Öýô®Uë[„J_§ê¿^?#5ÆÀÏ©Òå{?òq_À•¹œ‹&¼@—Ì┿çÎçÏbG,“…|ÜÃ8‡Î%P^0§<‡««`8o•.kÃ?ëµj×jÝOïZµ¾…«ôuªþëõs¡Æ¸óYªôGùžnžLë‚õà}ÇUSÂ/– †òV)¡²6Tñ³^«v­Öýô®Uë[¨J_§ê¿^?Ã4ÆÀϦÒå{´¸ ÎG^  à,Ä9ŽX&´Y2pzð$€D ¤Ók$H,PÆ$@žóüõ_¶E¹ÇìƒIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-fontdialog.png0000644000076500000240000005643312536324503023601 0ustar philstaff00000000000000‰PNG  IHDR‘}Ku\âIDATxÚíxUúÆ¥JQ¤Ñuù»°€X°¬HuQ—PÁ Ø  (¬RDAPT©‚4A,$„ž’Ð Þñûç=2ãÜÉÜ;3·$÷Þ¼ßóüžÜi'“É=ç¼óïœï2¹d·þû B!„D»Ì —iâàµ÷'Êä%!„% o7ˆw>?hœô›°”B!QÆŸ ‰÷aøôßäÙas !„e<ýæ¸ÀÂsÃçf£ã[S¤ícý×Z•I!„„šPö_‘V¶&.»ì²¢YÉâòK¾D¡, ^¢@ùš@x~Äwh7Ùwü~¡Ý¬¹\B!$”„²ÿŠÄ² ¡Ø%4¡PÄ ²‹M t9σÇúŒ•˜ ?Ê0—KH¸ñÂóåµ±‹¥÷˜…|„D¡ì¿"±lƒ@¸"‹â—(fò(d š@xáƒy<Þwœôÿli@  s¹„„ PÜqI{å̹óú ßŸ–ù+·J÷Qó—sêìyÊ Æ}½>n±ªè/¼Àë9野ë¿×LòžƒA}NNî‡p"”ýW$–m%²¸Ò |‰„¿‹Y ¢‘ö1ŸÊ›Ÿ/ ”a.—p Ç‡ß˾¬NvâÔYIØ‘!;÷ÿ.\ ?oÜé¸,ÍúeUÎ`Ü[ÊÞCª¼Ï®ózΑ,!;{þBv°÷`PŸ•“û!$œeÿ‰eBÉ,®ò"²‹M  Á4Ò¡ßx8ñGKZ?#7ß󀟽‡2ÌåŒüv¥êôNž>'}>]¢ïÿbÑ:µÿü…‹ÒsôB}ÿË-!_ÿ"ïMýUzöÍP9œ¯ñöW?ɰi+<~?Ð:ä/²:do÷äÄŸá«ÅëmÿÖYuqØ7+ÔOãþ—²Ð¦Aá3îÃßû!$œðÕ9Å[ÿeUöƒ{ê}¢ ´ìv/ ζûœ–m¥³(åE$= ž᥾÷ ã›ãå­/ÌF­ÛÉÍ–NoŒPà3öY‹2Ìå|:oêôŽŸ:«\èÚþž£ÈÔe›¯|²Hí5s¥zÐìtÖ[: Ñ®ÑlÀÄeŽÎ<é'Ù›yT?~ñ?ä×M»” 1¶5ïÀüU[-ï_“–¬÷ú7B°lK;l\EMyIÞþj¹:þF–ÐlÞÊ­rá⟿?gü” Îqz?„„Þú/7x뿬ʮßðŸRvû—K¥jÕÕO_û|•me "¡¤I$hà y4€ÆÉÈS&¨†ÄÈÃÏÇ(A`Þ}8fÞ2ÌåôÏê<á%ÐDbfüœ < xã×Îð:xt’?ÄoS)bÐe~4kµ:G³_üh{>!ü~Ba«“åè‰3jò¤,!qðèIµ½fkZ–ØXeyÿš@غû ü’%.ŒÄLXªþM„à'~ÏîGÔvFÖï‡øé3þýÞ<#+²®Ý‘þ»îAy}ÜÇ÷CH8aÕ¹Å[ÿeU6D€·r¬Ž¹)´ïùΟ‚ ë§ñ³Óû6„r—DB ‘Ý‹  4(Fžø™¼“õ¦cä–¬?´sß‘ÙöcŽ™÷£ s¹„„ ŸÌSÁ~fð÷ËÔ9sW$©}ñÉûôëæ¯JVûÖ^Ú§Ù /—Ûž?6ëwÂCÐ{Ì"u|âÂuJT@0`;5íХრ^ï]VöîäŸeôìXõùÔ™s*x× Ã×<Ÿ/X§5q© À9špÒ†GœÜ!á„Uÿåoý—·¾Ñ[9núF_÷Ýá’0øìæ¾ ¡B彈„ì^M àÍÆH—AŸË¬†ÆÈ- ”.}?ȶûp,Ûþ¬2ÌånÀå±ü×mWoך}˜õ¶»e¯>»aWÖ8È<òçõ¾CÇÔõš½•%ìΟóëõyCjº×ûÙv©CÆÛ»·s4°|ý™ð}¼:˜õK¢:¾iûë´û[›"ý>ûK ô¿D?çØ©³jßðé+ß!á„Uÿåoý—·¾Ñ[9núF_÷ýd¯wu€ÏnîÛ *™D‚1&ÁìEøK ¼úÉ"žyk¢ ýúÚvë'wÞ÷H¶ý؇cæý(Ã\.!á*Ò§ß­QoÎÆýoŒ[,ûÿéUø>ëÍ}JºúŒŽ« \£Ùà¯~²=ÿ»ß’to‚·{Û¶ïϸÉ?lðzΑKÃS–n´<®ýãþÕ—Ââ¸Tyó³¥ú½Ã› sü’@yéÙ8¹B «þË-Þú/«²o¹÷A¯åXsS6x²÷?…AÖOãg§÷m•½ˆ³áÏaM `¡#Ï ž(ïMý%µ4–»þýˆ<Ûo”Ÿ±Ïê\”a.—pàÛŸô7}¸àÇ´±z¼…/ßöç´Ç ;õã˜}€7ux°­Ù;“~¶=_›%8„×/—%Tö<¦D¶µùë6z½-nÁ”VÇñû`GOžÑÿ>x=u©³ß(>_æ1ES»V|»ÒñýNXõ_­:÷–[³:k+pÌiÿeU6ʰê½sSöS¯ü)ðÓ×>_eBU“H(gj0{þˆä6Òõ/dØ´_-i÷â›úƒÅgoç¡ s¹„„ƒ¾øQÏ«Îúð Õ±/ŠKÑÝégÏ]PãyÿY¡¢úh8óçD5k@‹[˜ýëU–qìßî|tÄZ¼.eŸ*ÚQ^ê¥i…+v« ouÿš@˜–%¬ŽcÈ@ˆ!˜¾|³$îÌÐECÿÏ—ªYša[»V3V:¾B «þ«uçW¼ sÚåFÙ²„€y?ö9-;`€¹ÏFº½û¥jìe˜Ë%$\ødN¬¼Ô9 ûÆ}§Ÿ‡ÎU ÜSÓ³Æþû^:®ÙЯvt>Ê>q©Ölm–XˆÉzÓÇñE±)ú~ KXÝ»&¾ùq³×¿oä·¿eûû;¥<8‘dœ¢©]§ í<'÷CH8Êþ+ËX ˜“>¼8ä+5(Ãߤ„䘈é‡p¹tŠ1ça˜Ã_.Z¯†ìʵ;kL˜¯ÿP©ÍÇÇf‰¸ô1“ п³5ð·a( Ê Öý’„²ÿŠÄ²æ„݇~%d½Ê4ñ!„â†Pö_‘XvÀÁœðáõÑßIÿM’Q3Vú®E&ž „BÜÊþ+ËX X%}ÐnÖpm I'!„eÿie,¤D!„è"`€uä !„]P B!$¸aÝÖÝòûï¿B!$ʘ4ã{ B!„P B!„B!„B¡@ „B!„B(!„B@!„ B!„P B!„B!„B¡@ @ „äU²A>Bj€Šf†•˜èíXõ¾»¹žmKä’˜˜(-[¶”«®ºJ.¿ür¹í¶ÛdÊ”)ü߆«@ Ê'„oÞ$'€ èÙ³§lÛ¶Möïß/sæÌ‘ÆóÙDš@À?¯C‡rå•W*ž|òIµÏxíðáÃ¥jÕªR¨P!©]»¶üú믖o*ügÞ!'êûôéÓåÆoT×£œ#FX^¿cÇ)S¦Œ¤¦¦ê×fddHÙ²e%%%Åãw==Ýö;êÍÛ•—þßa-ºuë&M›6•äädÙºu«Ü{ï½ò /x\ WQBB‚ìÛ·OÞxã ©W¯U>!(r¢¾£ÓŸ8q¢›6mR‚ÄÛõÏ<óŒôíÛWßþöÛo¥yóæÙÎíÓ§4lØPÝמ={¤]»vÒ¹sgþ¿Ã”úõëK÷îÝeýúõŽ¿££FRÿ×¼öÿ넊+Êš5kôíØØXµÏx-ÜDÚ6‚ R 19Qß«T©"ï¾û®v:Ê•++϶Ÿzê)ùì³Ï² OÄÊ•+õmˆ›òåËóÿÆ1íÛ·— *¨8„6mÚÈ–-[¼~/^, 4нYyéÿÖ„ (w޶™™iÛ ÷Q 9„œ¨ïK—.•ûî»OyÐùOš4Éçõ=ôŒ;V:$Õ«W×; 㹸GÜ;ÈŸ?¿:–/_>þ¿#tîÏ>û¬ŠK°ú@8`( ¢"/þ¿ÃZ àí!>>^ߎ‹‹“J•*Q …!§ë;âŒo~V×/[¶LêÖ­+ ,'žxÂò\ ¸›ùÿL?€¸óÿbžƒ… zœŸ—þßa-0þµ  ŒK"ÒôÅ_tÜ`À}7%+!á/r¢¾·jÕJV­Z%iÓ¦©@3»ëï¼óN¹õÖ[eÞ¼y–¿·_¿~ê^!nàõ€ûkü‡'Íš5SÿK¡öîÝÛ2–±Š5_Ÿ—þß5‹ŸÍQ;ʋ‰‰‘âŋӓ@HÎbE}Ÿ0a‚*€›¸fÍš2cÆ Ûë§NªÆ>lù{1üп}vE­ZµT $ÿßá „!<Xß3ž®]»Öñ,†¼ôÿæJŠ„âƒ÷ß_Í›ç³ \!‚•B㺄pqÁ¶):ÿ§üßÒƒ@!®:Dª6ŒÏƒP P B!„B!„B s€å+ßyçBH„ƒºlWß—Å%Ɉi?ðýbŸãý +€~ýõ×Õ|TBHdƒºì«ÒÄAÇ>ìDB^îsìêgØ ¨Ü8F‹|CÒ$Ôioõ]4Z¨ì•1‹Ô÷Œ}ŽûúI@£Ñ(h¬Ÿ4FÀ>‡F£Q „̰`! ‚Õò—¡²½{÷J›6m¤dÉ’*q²¶Í;—µFË!€ú}Çw„u§LÝaÑ¢EÒ´iS)R¤ˆ”.]Züq•íÓlüñ‡ê#"íûu!§ ÿì>}úÈÁƒåÌ™3²téR•n–F£åœ@@㌬Š´ÜHÿüý÷ßˉ'”0èÚµ«4jÔ(ÛyÈŠ,a(°Ĉ*Å&ÖG‡]¸pAMá(W®œ-ZT{ì1õOÖÌî8Ruž:uÊëƒÝ¾}»´lÙR®¸â åa€x0*KÜÓ˜1c¤Zµjª¬ºuëʆ ôãøÒÝtÓMêÎ;v,k2ÁT¯Qgn¼ñF9wîœe;púôiéܹ³”(QBÑ¥KµÏWÛ€}¸§R¥JI… dÖ¬YjoˆØÆ[£›zN‹^`¶“'OªïÑâ߯¤¤$ „pèà333õ}ƒ ’&MšÈž={䨱cÒ±cGéÖ­›ãã·ß~»¼òÊ+ª°2tîË–-S"âèÑ£*å+ÜOÆ{ÂÊÇ—jàÀrË-·èÇË–-+Ó§OWÞ‰]»v©FŽF£@È^ߟ~úiùðÃ-ÛÔ»-Z¨N{ÿþýÊãЫW/ŸmöõèÑC½Œ?^Š/î±ýüÃU=§å0{öliذ¡Ç¾gžyF†‘߇<ƒ€ŸøC†·òÍ›7ëÛh<ðvàô8b:uê$•*URqíÚµ“´´4ŸÊÞã½bxÂx¼`Á‚úö5×\##GŽTâ€F£@ð.PÆu×]§:hs#|õÕWKrr²¾·8ì3–an°o}0tó¶æipZÏiyC ¬Y³F®¿þzIIIÑ÷­^½Zn»í6呦@c‚ÙУ¢ƒüùó«sòåËçø¸ÑÒÓÓ¥{÷î*.A³•+WÊÝwß­Þ>4±b¼ÞꞌûbccåÁTž¸§àæ¤Ñ(¬ë vJ.þñ‡Ú÷üðïdÁê9v꬜;Ab·ì•î£æëר¿pñ¢¼ðÁ|¯_¸¾ãõ©éræÜyåa€xè=f‘Ç=M^²Ae)5”µûÀôårýø‡3WIÚÁcêΙ”u.+2 gp óˆ+‚!PgÒ—®#æY¶/|0O~Ù¸KNŸ=¯ÀgìóÕ6Àfý²ENž>'GOž‘1sbÕö‰KÛ|»ÒU=çw$ú=ÞB:uäÍ7ßTe>|Xbbb¤nݺ¹"BU?£B  ƒï5z¡¾oîŠ$IÜ•!¯[,=>ü^~Û¼[~\·ÃññíûË¢¸TÕ@XýNtîÿùM‰\¿dÍ6Y¸×ãž0Dò_Ì:¿oGúïúñãYÂdìwqÊ;ñƸ%ªacE&á,öí?” 4œVûA0~þºi—LYºÉ²@½Û´ýÏNkîÃã°xMªÏ¶¶4~›z!ørÑú¬Îÿ‚ÇvZæ1Wõœß‘¼+Š)"gΜѷOŸ>-E‹Íªúñ1°W?Yìq.ÞÊNüQßF㷧ǃ°"«a:râ´ŠCXÕȼ:v±×/ D¼Æ{Åð„ñøÅ‹üõû³Þh¦e½Ù@°“H{Ò2<0º_ÍÇ@°êvæ‘“ªƒ6wÊGŽŸ–~Ÿ-Õ·û¶Lí3–anþ¬› Ôgtó¶æipZÏùÉ»¡U«V2hÐ 9räˆ*gÀ€j_n„PÕϨð ˜÷¡3FEdûÃpžÝq#¯|²H–®Ýî05äë_$eï!õö¡™ñz«{2î{wòϲaÛ~åI€ûnNVdÎaמtcã£a<‚%4b‚ÌûQ1\¨ŽøÎCˆÛÕC»mê9É;aïÞ½rÍ5×èuàºë®SsC „ª~F¥@@§ ÷¾·/ŒÝq3p?"^à¯ëO˧óÖÈË-ç²¶ñv#.‚Ä#=q†™„µ@ؾs¯ÂªñÑÐÎÁxs?pø„òì™=1Œ„¥ò»Éƒˆ@ð§ž“¼#š5k&ýúõÓËA öå†@UýŒJ0û×-* Þ*0œ€±H§Ç7f½Ý›¶B'%%åŠ@Uý¤@ „Ø 4(n¡@ \I1gB¨ê'!ħ@ð§ñ¡@ 9#BY?)!^ñ'•¬1¥,¡@}6ÇPÕϰ4-<òÍò3šgZdX4C]?)h4šWÛ¾}{@!rë'B.Ø”)S¤|ùò^§ÏÐhô f¬[4zòÁnÊI0 Kh¶iÓFJ–,©¾¸óÎ;eîܹAk°ªV­*+V¬`ͥуࣾÒÙz=õ3ÂBNAŸ>}äàÁƒj¥¬¥K—Ê}÷Ý´òóå˧瀠ÑèA­@ Q øó\´h‘4mÚTem,]º´<þøãràÀý8ÚðW^yE½H–*UJ^ýõo×éA°©ðØ?bÄõV^ @µïÂ… êŸU®\9µ€Åc=&'NœÐ¯±;^¨P!9uê”׊ÝõV÷¤ÝNyAh´`XNÍbðVß½Õ¼9µlÙR®¸â å僀76ÞÞƹsç¤gÏžR¶lYÕ°6Œÿd Ëï ò*|ÿý÷ªmÇw«k×®j1$Í>ùäiРJД––&·ß~»|úé§ô „›@@™™©ïC Î&MšÈž={䨱cÒ±cGéÖ­›ããøGCâá[™ÝõV÷D—'-M[ˆÅܬƒàÖƒpÓM7ɲeË”?zô¨êôñ†gw=<ƒhøwïÞ-‡–=zðŸLàhˆáäÉ“¹ à]Ö Ÿá}¦!ŒbðÓœb³Zµj²yóf}{ÿþýR¡BÇǃЩS'©T©’zËh×®RˆN¯·º' Z$ „ßžr…Û…’Ü «Æ=»ë«T©¢î‰FàV Ìž=[6l¨o—(QB‰SÍŽ9¢ú zẪ`¶‚ *×>ÈŸ?¿:ãþN-==]ºwïî¡ í®·º' Z$ „ÃGNº"ÔaåÊ•r÷ÝwKñâÅõouÐøuöüùóüÇR ¸kÖ¬‘믿^RRRô}hû/^¼¨oã³6¤LB ŒýÃýïÍ쎛 cPˆKpz=-Ú¡ßO¨˜€ÏvÛ¡ðL:U•À0¼Éy»† „@†²à5†H0=*¬‚– öð¶€áÄ8=~ÿý÷ËòåËU~oÄÄÄÄÈ-·Üâøz Z´ „ÌCÇTç¯}¶Û¦@@£kÎ’W¦L™9s¦še„FòÑGu$úöí«b ðñûá¤Q x¡•+W–øøølǃ¡®”Õ‡7ÿ:uêÈôéÓŸ7ožr_" *ñÔÔTÇ×S ТM d<êŠ` „·ß~[ÍV0îú$pùb¸ïºë®“Ñ£G;˜Å€ÀDL[ÃÔ4Ì6¢Q X}1Ãåšk®‘ÄÄDËrÇŒÃY \I‘F£@8yÄ -·‚U`<8~ü¸:Ž¡­Þ½{+xíµ×¸–÷ÂþŒÃzŒ>ÛmS Ð"] D‚у@£Ñr] ìÛH1Àg»m =4Zié]A@£@ FËaï¾LWP Ð(èA @ Ñò€@Ø“v@1Àg»m =a+8­F ž@ؽw¿c€ÏvÛ¹-ìê<Û z¢Ìƒ°nÝ:iÑ¢…Z›)8±VÁ¬Y³lE¯ÆyÚ´i£¦©`Ý,t9Ö4í/°swº+‚±‚FáÂ…U½Ü°a„ìÿ,¬Vˆ„H'NTça•Ã+VÈC= 2¼ÔC 7¢aF»€7¹^½zY^úü*ê\ˆ|  ·C øEªÛãô „P æ… <@b:uê$•*URqíÚµSëjûú˜óÎcxÂxëÃk†µ¼Gީĩ!eÛnW3ÀƒgL˜sõÕWKrr²¾dNØgUç‘lǘ¦÷D@àV Ìž=[6lè÷qzrÁƒ¨@0ZzzºÊîfÌÈå&ï¼Õ¾ØØXyðÁ•'i¢A•4Z¤„äÔ®¦Þ;ˆì{î¹Çë ²ª…¹ñz«s)(ܤzFr0£Ðtsœ„ ¸ñÇRÃxâ4s“wÞî÷a¼ªbÅŠ¬±´ˆ[Svè1øl·ìÔK£ûÞ³Wž«ëQ‡éA @ðW `ˆñcþ§!ÿ`4yòdÕIŸ={V–/_°@ÀØ$ÊA€Sff¦ÄÄÄxĸÉ;oµ¯mÛ¶’ îi¤Ã4Z¤„¤äízŒ>ÛmÛƒ€Ô»5kÖÔ÷!Þž9Ä qȬguý«¯¾ªÇ hçR P 8x9„ð4o¹9NB®ƒ°jÕ*iܸ±r÷#"®ÿ9sæ$Ði£¼ úÔÔTý¸›¼óVû¦L™"5jÔP×ÿãÿPSch´H‰I©®f êÎÍ7ß,qqqúqó,|ö6‹û1‹¡hÑ¢R¾|yÎb @pô„(E Ybb¢e¹vÇéAàRË4Zž [R\Á¥–i‘.̲˜rëä8=4ZÔ töþ@@‹d †a=Ü¿?¨x! ® ë;!0Ÿ?8ð4Í«…zŒ“õF¸@øýè)W8õðQ Ðh4¯ê1NÖwBàáð‘“® @ Ñhô Ð(~Ÿ67âСßOèëà³Ývžþ.”D“ >{Þ=¹!r3›#¿c9-2Ó×!Ág»í¨ëÖ­S Z0ï)6±~qébs1`•FäaÀZXfkäVçeµZ$V`ÔþoSk|ý ,:uêHáÂ…å†n/¾ø‚Öã÷ß[ÔKc–ÔP „@_.ørBÓ!ãàQWD@ؼy³ZIqâĉê<,~²bÅ y衇ª¤hxúôé£.aµÄ¥K—ª•Ör«óÂ*ŽÆuãaHâfIg£!—Q-\¸P­æˆE °h -œ=ælŽC‡U™U#M Ð"W |ðíJIÜ™!çÎ_”§ÏÉêĽÒ{Ì¢lç=—EjÚ!õ»rK È<⊨<òˆZÅÐåî«Â"ï–rõõÕ²eK•Mˆ,×j,{̘1j-n”U·n]7¼ý£aÃ1œ3vìXŸ÷%d?VŠìÖ­›ßá?ÿùUÞ̼"]—.]²­Hçë‚àÀÊ–pæUê v^ýuµÄ4V²{ì±ÇÔºúÁx~veÛÝ-¼=FÃâ3Æ\ N¾·þ~¼yëÜ´ VŸÏ;§ÒT#q<–X‰¾!!K|8s•t5_ ƒåëwHÒ®Ìlç}±h½lÛw8WÂþŒÃzŒ>ÛmG@ð–Í1Ppûí·«|ñ¨ôV†Î É8 "üñÇ÷(C{öìQo:ôÈ倯`úô骑BÊg4j¾î÷Q«V-• Ô«WO¥µõW à÷/³áïÁ° ÎÁómÚ´©)Nÿ><;m{\o^ç~РAÒ¤Iuý±cÇTC ÁŒçgW¶Ý½Ñ"ǃ€Ný®»îrõ½õ÷{`×v8i¬>ÃSÙ¬Y3Ù½{·>|XzôèÁ/X 1¼øÁ|9á¢Ç¾ž/ÃÇNIÿÏ–åª@Ø·ÿc€ÏvÛQ'Ì)[­”½¿1:uRnx¨úvíÚIZZš×óÑX.¡l OÓÎb­n¤ªEçæÔ5‰|3fÌP aóö78éìÌÏÍlÈŠ¢YRR’ÚçôïC¢_™òðÖá!ÍÐ@ã-.ÏÏ®l»{£…·ÁÞÖ qœ|oýý¸b°j¬>#«$~7-2ÂèÙ±²u÷A}?oØ)3~NTŸsS ¤¥tEžñ 3ÝszzºtïÞ]Å%h†1|C"A”ÖXåË—ÏgÙÆ}±±±*ëÞ„«V­êTéí:Ä ÀsP»vmY²dI@Ù(ñæäT@œ?Þ£ƒ¶û½V×£,œòçÏÔçgW¶Ý½Ñ"À7uˆÄ{î¹Ç¯ï­Ûï]Ûá¦M0ß~7-òÂàI?IÆï'$fÂR}ß»“–íûËóÿËu°w_¦+¢N À máLÃ6Æ»ª)=qopùÃ¥è&›£Ñ0ž^±bEÛ† ¿³ ýÑŸßc4»¼u™ß®ðÆåô÷âùøz;C§Ž!'±ÛçgW¶Ý½ÑÂÛƒ`®—Æ7ß[·ß»úí¦M !òÂðo~“CGO)‘`ܸƒÔ·sS ìI; Çà³ÝvÔ ®Á}ú¨+жm[IHHP÷‹ÔÒFW¤›ß_€™>Aši«Y ·Å:¼ ÏÅølïÞ½ÿÞW_}UßÕ®7ÛmS Ðh4zhy@ lÛ±G1Àg»m F!„”m»]A@£ÑèA Q 䜺Ó4B5°5e‡c€ÏvÛ4BIÉÛõ|¶ÛŽ:€ùÄV+)bu=Îm§ÑèA Ñòª@HLJuET ¬phN<Ô°aC -¨‹²!Kh‘"EÔâVÈØiÎŒ»~ýziÞ¼¹Z¼ËO˜0!WB–WD¥@ÀòªÆcXEé}Í«¦Ùå‰3fŒ¾ú^ݺuÕ2ÎN¯‡Çé^q-Ê;v¬GÙC† Q«µa¥Ç§žzJ-Çj|ó•GÞW¾x£×_]-5Œá°¤0Ö§§ÑèA Ñ‚/°,6Ú{´³h§»ví*5ò(Ùf‘u=‘qÖ¸Œ}N töþuU­ZµT‚€Œ‡HùjNòÄ#ñÖCÇ?uàÀ¹ì®Gçå|Ññã 1a,×â:mÍw¬¯™]y_ùâ $Mš4Q÷}ìØ1õE„8¢ÑèA Ñ‚/̆þ˜0 /i9í10â pÿþ £I À+Š ‹ñÌIžøƒzüÓibí®‡bDêYˆ«{ô•aÎê gL>ä+Û¼HF¤D’WÑhô Ðh¡³gÏVCÚš¡ýEÂ8$ÃƒÇøá‡V/vÑT?#N ,\¸Pyj×®-K–,É&Ü䉷Úgw}ll¬Ê"OÒ Ïš5Ë£_×Úå‘÷•/åà8ÈŸ?¶ki4zh´Ð„5kÖ¨]Æ@´Å:tP/œO>ù¤ÊìMõ3â†n¸á•ÙϪƒw“'ÞŸë†ñ©Š+úô À+`ôøÊ#ï˃1‚á-熅áÁ…H0bÔ:¤oã3âËèAÈE`eÆcnòÄûs}Û¶m%!!AΞ=«RE‡P†=pvík¯½¦·Ë#ï+_<\Y(^ 7` ŒF£F @À ^ããã³»ãŽ;<† ®¼òJzÂY ¸ÉïÏõS¦L‘5j(—?¼˜ c,gèСú,¯µË#ï+_üŋճÑf_Ô©SGKÒhô ÐhÁ˜E†˜³ÄÄDËr±.† PN§Nrü¥„2®Ç@£Zt-NÌÌñãÇÕq Ãë Ï0^1;.§ƒéA @ ÑèA ÑrX °~R P Ðh6o(þ̵Æ54 „È®Ÿ4Í«i–suƒÓ…XXßiá[?)h4šWó§ñN—re}§Q „oý¤@ Ñh¶ ÐïGO¹‚Fùõ“A;@£Ù5@w!òëgD­ƒ€…)|uîþvô9)ð»0ÖlX•17… EÍWt óˆ+(h‘_?#J ³"’4»cËi€ì‘Æœ 0$¡@ …k´oÿ¡là;cµP Ð"] `<ô9EŠQ‹×!ó.VÈ5–‹ãXà³·¥ò#µ~F”@ذaƒÜxãjÅA;>£,¬Hˆ¬[Hª„mü£±m^qÈ!ú ˆO=õ”ZÙWçi܇·¤rÆ ‡XépìØ±>;b,çlüçÌ™£R7ûZѱK—.ÙV„3fŒ¾²bݺuÕóqz=ÍM´'-ÃãÂ1æc€éËÞ£m?qâ„]»v•FéDZší›o¾©ÊÀI111ªަúqK-?ýôÓòá‡:X¶ÿÜñãÇ« ŠÆms²§-Z¨ÊZ…W_}Õ±@@fG,{ Q4Ðè˜}uÄXÜ¢V­Zj%.€ì”H1m,³gÏžêžp?¸/¨S c9X¹ y6zàÀÊ3áôz š›hמt«ÕåŒÇ-Ò‚ÙÐÎ^~ùåú6< ÆI¼€-Z4ªêgÄ „}ûö©<È„h'´L[ø'š·‘ªÓxn  ±^÷È‘#•8°3íºx@ —$x2—‰¬’ š%%%©}ÆrfÔøå5¦–¶»žæ¦Ú¾s¯ÂÛò³Jø^:P ТM Ìž=[ kÖªU+4h9rD•3`Àµ/šêgD&kÂÛrŸ>}l‚¯Ð|®1&Ù­@ˆU áI@Zf gØuÄ .TžƒÚµkË’%K²• È=Ù]O@sÓ¥lÛå Z4 ¤zF¢=ã‹äÞ½{ÕË¡ÖãÅ/°ÑT?#R àm¹zõêê,`ö T©REßFÇzêÔ)}oîÞ:TŒYU¬XѶ#ÆÐ 7Üm¨ÃèÄ«aw=ÍM””¼Ý´hË–-S±^ FCŒB¿~ýôrƒ€}ÑT?#6ÝóĉU0a°Üü¯×b^{í5ýøÍ7߬¼&%û7^ß¶m[IHH³gÏʼyó¤\¹r~uÄÆcˆ€W"##C¿§Þ½{;v×S ÐÜ4@ [R]A@‹0uêTõbŸíâÌ1Æ…h¨Ÿ+.^¼(õëך@:t¨>‹¡cÇŽÿk×®UÑ©ð$`á£>ò¸~Ê”)R£F uã ‚y>›g1r½Õµfh4­Bƒâ Z$ „aÆ©!„ÄÄDËr1D¬ÍbøŒ—ÉhªŸ\I‘F£ùl€üi|(h‘.¼û?~\ß²e‹šöˆ™ Ÿ Mõ“F£y5RÉSÊR Ð"U °~R Ðh4›7”@ @ Q Dný¤@ Ñh> ÒÉj9ç)h‘[?)h4ZÐ Æ Ð("¿~R Ðh4Û(TùæYßiá[?)„kÐhv P¨òÍS Ð(·~FÔ:wÜq‡ÏÎÝߎ>§Ó=k\qÅÒ¸qcµÈR¸›“çogÈxöðëµ&°,5æ S¸EFª|ó4 „ð­Ÿ%‘ɂ݉ä´@Ð I>Þzë-•64B ÏÿÑGU‹PA(`¹ê'žxB>ûì3 „h€Œ9æ½áO¾y Z¸ ,›Ï=÷¨ÕK•*¥Ú/¬¤k´õë×KóæÍU¶`,o?a„¨ªŸ%6lØ 7Þx£œ;wÎÖƒ€Ï( ÿØ *¨JØ.]º´Ú6®vˆs‡ ¢¯¤ˆ%œKhÚ­Zˆ/ÒM7Ý$… Rkv;Öq§‡ßS¸paõÙ¼úa—.]²­žèôoBJé–-[*/¾àXjK.Ë3fŒº_Ü7VŠÄóõußvÏßîþq/š!»æ]wÝEÁ[®yo9ç)h‘.î½÷^™9s¦:çØ±còöÛoKƒ <ÊÅJ‹xiÂ2üÈæ‹ hªŸ·ÔòÓO?-~ø¡#УG9qℌ?^)<ã¶9IR‹-dÿþýzÞ‚W_}Õ±@€»|úô骳Ǘ¤SÒ…Þzë­j»gÏžê>p¸¼±#§‚? ’Œ ÉRc£ìÇÜ£,䔨³gúr#×Ä-·Üb{ß¾ž¿Ýýã~Í¡dÉ’ Ìùä}åšw“ož®Álhß‹)¢o?öØc9î1Èéúqé4‘Vž@@¤ýcÍÛH‡l<7̉P‘#GŽTâÀ‰«ÞÜR;vìPÇð999Y?ËvbŸ?“Ù ŒI¤p-ÜüÆãNÒAûzþv÷ߺukéÔ©“ú?ã¾á©a êÈÆ\òÆÜóVûÝä›§@ E‚@ÀK¼ÌHê§¼¶ƒ–J•*)Ï3⫌/@ÑP?#2YÞvûôéc+|u6æs/\¸ oŸ?ޣ㲱±±*s"< Hæ׿]§‡tÏ%wß}·Ì;WíCïæ>|m¯\¹R•·vMŒäË—ÏñßäÏó·»ÿÌÌLy衇Ժå¨\pÙ9IMË}ª|ó´pZû‰!hã‹$Ú»:¨-ƒ'Ÿ|RÅ)DSýŒH€·ÝêÕ««€‘` ³¡J•*ú6:9¸ê5ÃÂ[ç…x7¼P H‚·m7ž _Û¸¤*Å3…Á¿ÝŒ§ÁÛó·»³!ew»ví("@ „*ß<-<h?1Œ—.Íg¥ypaøŒ8«hªŸ›î \ÔÁpaì\‹Axíµ×ôãHቷftŒè1vo¼¾mÛ¶jªâÙ³geÞ¼y®|'^«V­T`#Æëá‰ÈÈÈÐï£wïÞ~ýMeÊ”Q6z@À"”m°‚·çowÿˆ_@ÌÄÖœ9säÚk¯õ™ýŒ!|B¨òÍS Ð"A ÀÐn!à[3Lû6ÇT]yå•QU?#V \¼xQêׯ40tèP}"QÑ÷k×®UQþð$`á£>ò¸~Ê”)R£F u‚ÆÙN:½… *bž€ÏæY Nÿ& [\ýõêž30zôè  «çowÿAð®à#€ÏÕ—YEãÒrG 0Ý3-¯ „öíÛKbb¢*Eì‚°1³A³qãÆ©a”ƒø*.FSýäJŠ4Í«iédýi|˜î™Éá›o¾‘Zµj©—,ÄLA §Šcè¶oß¾Ê[‹—x–s:H1Ôõ“F£y5ÔIrÎã\K@‹TÀú†7þú믫'„D6¨ËZcÄúNøŒ¬gvÁ_ED ?œ4>¬ï„ßÁð}6a'!„¾P B!„B!„B¡@ „B!„B(!„B@!„ B!„P B!„B!„B¡@ „B!„BÎa„ R®\9ü–Û„âlCB˜ TR+´ã•+W–E‹yÝfAH䘘(-[¶”«®ºJ.¿ür¹í¶ÛdÊ”)„P ¸¯¤ùòå“Ç{ÝfAHäAгgOÙ¶m›ìß¿_æÌ™#7¦@ „Á]%õæ]0z<(/½ô’”-[VŠ)"­[·–´´4½ŒŒŒ éÖ­›”)SF½µ¼ýöÛ–ekçOŸ>]n¼ñF)T¨T­ZUFŒÁ/!Aõ*==Ýëñõë×K‹-¤xñâÊÃñœœìÑ&ôïß_J–,)åË——I“&©íR¥J©í3fxœûæ›oª!É¢E‹Êã?®D‰UÛc׎B†óqóvŸ>}¤aÆ’ {öì‘víÚIçÎõãx[iÔ¨‘lÞ¼YvìØ!Ï=÷œÏß !1qâDÕlÚ´I:tèÀ/!A¢~ýúÒ½{w%¬ŽCœÏ;W‰ˆÝ»w+qÿðÃ{ÔYÔatÞ£F’bÅŠyl׬YÓãܦM›ÊÖ­[•È€ØèÑ£‡eý·kG¡@¢@X¼x±¼óÎ;–¸‰A°xË_¹r¥¾ÆoÚöÕW_-qqqŽÅI•*UäÝwßUâÀêo!Ñ êr°ê;bÚ·o/*TP½6mÚÈ–-[¼–»oß>õVo¬³Û·oWŸ!âÍÛ ð87>>^ßF;P©R%Ëúo׎°î“H®Ÿa%´Æ"'< TÈŸ?¿:Ž8í8ögff:þÝK—.•ûî»Oy &•&ÉËØ5Bnê»tÂÏ>û¬ŠKÐö-Y²D4h <ÚË‚±>Ûµæ— hÛhÐ^Xk׎©õ3ì‚›Æ"P€NnAo×»õ A<‚ù-‚¼Ú£¾›ÁÐâŒõS™wîÜ©‚‘1ÌàÆ£h>×ìA@ùVçÚµ#„DjýÌÓ¡_¿~jl Þà&D€‘v¼W¯^*•ÞX´cpqÆÆÆz”תU+Yµj•8p@¦M›æáÞ$„ P`õ½Y³f2oÞ<5šš*½{÷–zõêéÇK—.-_}õ•:Ž8ÔÇ@~â´"Zk׎BK!„C‡©(fŒ!âM¤V­Z*ÈÐ8‹ALˆrFä³ñÞbbbT´´±L¼½T¯^]¹ðdŒŠ&„ P`õ¢C˜¡på•WJóæÍeíÚµúq¬‰pÝuשúW­Z56lX@aÀ€ú,z›Å`׎B ’w‡¸Î!„  B((¡@ @ „ B!l€Xß ¡@ @ „ ë;!„ B((!„P P B(¡@ @ „P B@@¡@ „õ“B@ë'!„B@¡@ „P B(!„<(–Å%Ɉi?B¼€:B@ÉSAû|Dñ‚[‘@@‰x ‰æÝ^³HÕ BF£@0³xñbu¾Sp>lB(h4 „(8÷âÅ‹ŽÉiïDÖÃ`A((h4 „ÜçÏŸwŒ¯²¥eË–rÕUWÉå—_.·Ýv›L™2Åugo_@Ûçí~ ¡@ Ñ(òŒ@8sæŒc|•]¿~}éÞ½»¬_¿Þñ9ö¡cOMMõ9Äðå—_*!0uêTýXŸ>}¤aÆ’ {öì‘víÚIçÎõãݺu“¦M›Jrr²lݺUî½÷^yá… zFçÂéÓ§cƒÐ¾}{©P¡‚ŠChÓ¦lٲŶCNJJòÙI8Py–/_îq^ÕªUeåÊ•ú6D@ùòåõíŠ+Êš5kôíØØXµP Ðh4 çžý8öcBÛÎÌÌT×P  FààÜ'N8ÆMÙˆ@\B CûÛß”'ÁxâpÌÛ >>^ߎ‹‹Sž£À0ÆL ¸’P Ðh—Î=~ü¸c|•ݬY3™7ož DLAïÞ½¥^½zúq ;ÀÍïV à'†*ªW¯.ýû÷×õë×OÍ’€€wà ˆgÐŽ#Þà¾ûî“””‡€s_|ñEýx:uä7Þ}ûöéS4¿Ûê~ ¡@ Ñ(òŒ@8vì˜c|•=mÚ4iРZ³š7o.k×®ÕÇÄÄHñâÅmßÒ½ǰŠ7Ü ‚±}èÐ!%‹OE­Zµdâĉ^g1à³qÃO?ý$µk×Vžx#Þ{ï=ßgu¿„P ÐhyF =zÔ1Ìó@FÀ\ ¹š‹Á¼×% 4³9B(h4  BF@@¡@ Ñ((!4!„F£@ @ „P Ðh„ B@£Q P B(hah²páBÙ³gÇ~¬r;kÖ,•†F@@B²~øAŠ-ª§µ¿ãŽ;äÓO?•M›6I—.]Ôþ^½zñAQ P B@Wì?þ¿ÿýïJüío“bÅŠe[~>þü²nÝ:>,  B((òŠmÞ¼Y ( ÷Þ{¯Ú>yò¤L:U|ðA•qöꫯ–ñãÇóAQ P B@@£Q P B@@£Q P Bò‚@ÀýLŸ>]gùòå9~III÷àyóæÉêÕ«åÔ©S>Ë;pà€~ÍŽ;"ê¹Mš4IZ¶l©èÔ©“?~Üò¼Ã‡;zf¾X»v-B$„Å‹«ó‚óÙ`B¨1Â#ÈîŠ+®Pcë9iï¾ûn¶`?_*TH~øa%,¬lÉ’%ú¹˜a)Ïm×®]ª”WºtiŸx\\œ«gfųÏ>K ç^¼xÑ1¹áÀ*7¯'„!øV¿~ýlÇ”)SÂZ h 0b 7B(žÛ¿ÿýo]ØÍ„ @ÈcáüùóŽñU¶·Ž8·;xãõ „!÷ÂÖ­[õÎsúµÏˆÊÏ-ðØcÉwß}—Ù³gË„ ä¹çž“%Jèç_uÕU²ÿþ¡xn_~ù¥*£L™2ަI9rÄò9ùâå—_ö#Gޤ@ˆpîÜ9ÇDº@ „!÷BÿþýõÎâù矗… «Ïø‰1îÜo¾ù¦íù»wï–jÕªé×¼ñÆ9*‚ýÜ3aÖ¯_’gŒUË•+§ß÷< Öu @ˆpöìYÇ*ðyøðáRµjU5žW»vmùõ×_õãPäíÚµS+†•/_^èqýÁƒ套^’²eËJ‘"E¤uëÖ’––æQ>î±råÊjÞ°/‚ݽØý.B(ü³ë¯¿^ï0U§¡m7.l‚̧]sË-·ä¨@ösÃK¾vÁ—þúŒÛo¿]¿Çë®».G B™3g €(Ù„„Ù·oŸRàõêÕÓwïÞ]š5k&)))ÊÖ¸qcëûôé# 6T×C™BLtîÜÙ£|tä©©©¶C v÷b÷»¡@poÈ u7ß|³‡› Î¹5tp7n”_~ùEV­Z%Û¶mS1S¡h ´kðráD à^pOøÛѶ¡- ‡ç†ûزe‹üöÛo®ž›SëÖ­›~xÉ ÷Ù çž>}Ú1ÁøjÛè˜ ,¨oWªTIâããõm- FÛF…DEѶ!"ài0–c'1v÷b÷»¡@po/¼ðB¶±h$ºüòËõ%ƒ÷îÝ먬ùóç«ÕQoÍpˆèСƒªãÁ¸7íšÿû¿ÿó).\¸ C† QMã½a©äŽ;ú¼·P>7ÜgÓ¦MõkÝ>7'6yòdrÇaeÈ1qçwºbûöí9%0EÆ)¾ÊFÐÌ¡C‡<öÁM/®/a܇a\£mgffzGC€sÊÕ‚uœ–o°èæwBàÎè¬G£^a \3xó´Îäý÷ß·-ëµ×^s1Þ…` ÌЮÁzÞÂèÑ£¥I“&>ï­T©R²téÒ}nÆ8Ÿ›aihÌôÐÊzúé§=O§ AB „'N8ÆWÙxûÇ¿q_ll¬Z'Üi§Œs}y ÄáòwãÅðW Øý.B(ÜÙ÷߯7ò˜Zg´¯¿þZ?†¡>_†”ÇÆ$ExãÅ<ˆ!Z¶l™Œ5JjÖ¬©ŸÓ¨Q£ ¼¡cçãÂØghËðñTxûÇýÍœ9S e¢óÕÎÃÔBsúæœxnxÙyôÑGÕõ?ýô“znÆ Ó“Bùzn¾ ^n¸Áãžà}öfvèÑ£‡Ožxâ ½<ˆx0€˜ƒP»ßE‚;CÖÐÃm4´/Z:c€!=o†ÅŠì‚óàñÔ:;¼uãÇ—@xüñÇeÁ‚ÙÀ0Æú_|ñE)Y²¤.JÆŽkéº7¾ébZ$V`4†3íJN?·>øÀò”wíµ×ú|n¾ ‹ÑCèp)_¡•ùá‡2!'±cÇã«l¸½ÐÁÓ€/~b@FF†ãNY›Å€€¸Ô̳0„™6ó V­Z2qâÄ»ßE‚sCG£¹½­þgì\|½ÑW¯^]ƒ6Æ×”9ã¸½Õø¼? %áÞ1nîmlßxîGyÖ¤Ö¦)úŠÅs«P¡‚¶ðfXóÁ×sófï½÷ž‡‡KTjÏ<óLŽ/°D`8.!§0Ï!þ˜qzà“O>iyÎ7ß|£Ÿ7µ¯1nx(áeôexaÑʳrãû»’":X¼,øð`šŸ/ÃØ¼v¾·tÍáøÜ¬ ÃÆ`ј˜˜€¿3ÆÔÊ»çž{”7!s18©Tlè É»A[ÎX-S¬ ƒÛƒä¯!þ©J•*ŽÞÂ0ç ¶mÛVyµk^yå¯çÚb´ó1„)ÏÍjȤbÅŠú5˜!ètI ïÀ­­Ÿ€a^Nsd6GBH”  ?jo—hôßW¸Úø7@ü’aátœLÄ:*èP1,h~A±Ng1à +j×!ðÏJ `xÒÎ0%[;ÿ¡‡Š˜çfžaq×]wy¬ hgŽE ´@N «„zÖ!„!—:!\ù˜ àíM‘ýwÜq‡GN#èX±nI°ìã?Ö¯ûïÿk)pŽ!˜[;¿yóæ9òÜ0[k òÜŒf̳€˜ « L7†g¢­‰ØŒ9sæäø÷•BCvÛm·éˆ¶¶ˆ/Œ–Õ:ø›ç ¨ùî»ïVù °|::jU÷êÕ+$aÇŽúuÈÍ`%pv†ézÚù<òHÈŸ›qL`¡$ü%ºynV±NE‘› øÿä†Q B(rÀ­oœàdÝŒßk×`ys£Áݬ-\†s÷15ÏÊB%àž×®Ãl++€…œì̸|r×®]CúÜPžöÜG¿™ýyn0,Ñ|å•WzL Ôºt颗‡Ùl¹e„ „0mª²›NdÖ¬Ysé³0ïtN|Ïž=C"°6ŠvÝM7Ýd)0.ogÆß?f̘>·AƒéÇ ªyn˜z‰e¦µs0Üjú¥1b„G,_‹+Q P B¢@ WÕâCN I„0MP»nöìÙú±öíÛ;ZfÌvL`|ÓÅg+€±|,øæÍ°~ƒ±“5O= ösòÐÚ~GòÜŒž ü>»i“nf, ~YssÓ(!!6L™Ó:Dþ»™ÇŽå“­Æç3²7z3Ì.Ð\êÁH¾„|Æq÷5kÖX pß}÷y]ÈXŽÙÛŠçf̬è+ÿƒÝs3Ç1`ªf 34Qƒ!™¢I@@B„ã‚;„scxkÖ®EÇ¡Å`A!mÿ¿þõ¯lãèpM:T_¥ÐW‚£@øç?ÿ©"ò¦!š³2bz ·u´N¶E‹*¨Q3BŒh³ðÓ,tBñÜŒ©¡4h VŠuûÜ0ÃÀ¸DÙ²e}>3o`M Í‹¢ÍXX Ú×ZHMM@@‰P€·m¬8¨5þXiÏmD;ÆÑµëÑÁiã߯ùúxûüÏþ£V%¼ÿþûõùó kÕª•Ç89%!ÀÐJ ¸·Ù;`Æ™pŸc™ãÚµk{äM0¦nõsCŒ€±3FÊé|0ÛsC¾ cÎãsƒ7ÁßçeI¢´5ü¹ÞÛŠ’„P D€@X´h‘Çâ9¾r&x3ãRÄp×k¶aùæšk¼v XôgÛ¶m²sçN5ÒxÌø6ïF  ,F„Ì‚ÈieF€ßóÕW_©Þr:X%| åsCvZclƒ¤ŽÆ}CWfÔþ  BBØÞˆ?ûì3騱£Zd a†ƒ9óo¿ý¦f@4`*!rÊä¤aUAdN„°À=à^0ûÂìâÏ)ÃtI¤xÆ4H#"N3&§ÁhˆÀ³ÅIn<7Æ P B(h4  BF@@¡@ Ñ(ÂG h)œÙ°âÀ[šu Áo‘@‰l|‰ B(h4  BF@@¡@ Ñ(rJ Ô¬YS~øá}ûÀjÍŒŒ }Ž#£˜ÕõX±Ê곯}Á <°ª–ÿDÎ÷Ûn»M­ÁH™¡¼_B(h4 „ˆýû÷—gžyFßÖ–5ŠdFCâpë\!“Ë¥îß¿_æÌ™#7¦@ „F£@T `½òòåË«¥>±ýÖ[o©L]ÚƒýåÊ•“7êÉE­ ‰EŒªylo†áÇ«µÃ‘í II°^¹v<==]åG¢Ü–öôÕa£ \cÞõÀ‘þ455Uß²Š!÷úôéÓåÆoT×ã^FŒáóo@v²—^zI]µÖ[·n­r‘ÿ.-x^pß“&MRÛH†‚í3f°“"4BäÅ Üzë­òÍ7ߨÏXwû©§žRk–c{êÔ©êM]ëÑ9;^7C Z¢$Ù·oŸÊþU¯^=ýø /¼ ’† ONNVk§ûõë×W©T±®ºù¼"}ûöÕ·¿ýö[U>CbÚ·o¯Òž"¡M›6²eËu ¢ž-–¢I[ð¹J•**CÄ“!<‹•+WêÛ[·nUžã5Û·oWŸ!:ÌÛš·… !¢<È‹Žœâ7ß|³ÚW§N•á û5Èqt¤pçkÛÞp€NûÙgŸÕ½ࡇR©R‘ yÖÑYcÿÒ¥K•§žˆ øºGˆÜÈŸ?¿:'_¾|^¯±Û&„F£@ˆ˜iŽMš4‘ýë_Ò£GÝÝߨQ#iÚ´iЀÝqx/ÜxÌÀ¥¸m{Ù²eR·n]Y°`J£ju âÌÞó9^pØH@(h4 „¨xÓFG†±z-öÛãÆsÜÁÃÍë·@èÖ­›z³‡Çqøì«smÖ¬™Ì›7OypMïÞ½=bÀwÞ©b,pž¶Ã&«V­RS:§M›¦‚}ý ÈÙ,ðj`¸±„F£@ˆz°wï^)Q¢„ú‰í]»vÉW\‘-ZßW#Å‹÷9‹Á×õˆIxä‘GÔLÌœÀÔJ£GÀ :÷ ¨50‚ D£B:ˆ!8|ø°¾o„ jÈC 4Î2°ú0DY Úì‹Zµj© G B@£Q p%Å\oòÕªU 8k%°“ 4Baµf@ `z"f è®]»ú]¼ ðh3¡@ @ Ñ("”÷Þ{O /ÀÍi‹Ú‡?â³´)š„P P Ðh„B@£Q °$„P Ðh„ B@£Q ä @X¼x±ºiBHdƒºL@£Q E hâ`ï¾LBH.h]´ 4‚«›Ýµg¿¤¥"„ä2¨\ŸœºËgD@£Q ¸|{#$ò=[SvR ÐhÁ;w§Ëž´ BH.ƒúÈõIÉ;(h4 „à „Ý{BrÔÇ@®ß²u;F\€a#X¢Ø¼Ï V×ù[!y mÈÏ_“¶Q ÐhÁ;víS"Á:uó>'ø{!$]ìþ’°%•F£@®@0ƒŽÞjÿÏ¿®’¦ÍšK±âÅ¥páÂrOÃ{eÍÚú5F¬ÊÂç·‘Ê•«HÁ‚…䦛þ! .µü]„ä5¼ÕG§lNL¡@ Ñ(‚+¶ïLó¹y¨~C ™Zí7{çŒÏÛ¸ykв¸$Õð¡$„Xƒ:‚ºÕ!uûÐð˜÷ogÌ‘[n¹UŠ+¦7PùòåóyqŸÝqBò2¨ÞŽY‰ó96%M E!Ä7â bBʶÝ ñ1ï+V’‘£>–øu›Õªmë6$zœku›ã„äeP}7Š«ãë7n ª@ „ä^´°pM¢³7‚ȼ”,YJ>=N ,[þ«´¸ÿAsK”(!‹ÿèµ,«r½ý.Bò¨vçøª/ì„P U `‰V#VîLì3v¼\sM57P¥JU0ðmý@Ða±bÅ=öyûìk!yÔÇ@®_»> „à ,ÑJÉ]P¹C„P M ¸ K´BrÔÇ@®_³v!ÁX×€’» >r}\üF B(‚+°h!$wA} äúØ5(¡@ž@Àô(ÌJ „ä.¨\¿:n=!ÁX¢•’» >rýªØu„P G ,^¼XÝp\üBH.h]Äõ¨Óvõ 5!¹#|ÕϰÆFƒÙ8i|Xß ßúvB!á !„B(!„B@!„ B!„P B!„B!„B¡@ „B!„B(!„B@!OjjªÄÅÅ‘ çÉï!„D…8˜óà=s B ©@8@$1i›KÀgŒgN@!!py“Àp+òÚóÉêXCòÌ)!$DaÇ®}ªÃ >Ÿ8IjÔ¸Q *$Õ«ß >ÿÒã8:ãöÂÅËäo×_/“§|“«÷°%Õ±@å3ÿâ˯åÿnºI=¿ëþö76bTXü_Íÿ·`=s B ¡@ر+=,˜9{ž”/_A¾žú­lMÙ•ÕéOWÛ³fÏ×ÏAG£}žöÍ,©VíZ™3wA®ßûæÄW!”Ïï‹/§HrênYþóJióð£añ¿5þß‚ùÌ)!$„aûÎð iÓæò¿÷Fxìú¿áÒ¬Ù}ú6:ü3v‚T»öZYüÃOaqï›’] „PÜC“¦Íä½a#½ÿé—Uê+^\ .,÷Üs¯ÄÅoôx¶o "•+W‘‚ ÉM7ýC¾_¸T?Žužîü¬”*]ZJ”(!}cÞÔ¥lÛ#Ï=ÿ‚”.]FŠ)"þç¿Yxj¶ÿ[°Ÿ9!„„T ¤…èxââ7xì‹]³^u:Ú6:š·ß*×_ÿwùeÅê°¹÷›·º9óüŒT¿¡†òÊ`ì~ãæ¤¬ÎþiùßVÏöß-î—ßV®Qîû—^î-µÿYG?Þµ[w¹ûî{dÅÊ8Y·!QžêÔY?örÏWäλîV×nJØ*mÚ<"OtèèQv(ž9!„„H  ¡Ý¶coXP @õ–j܇í êÛèhòçÏ/Ó¦Ï ›û6%9¡zæVÏÏpÑC|ŸmüÚMÇϾbÅJòòŸ-Ë‚×aá¢eúöê¸uR¶l9²CñÌ)!$„!uûž° T©Òªc1îÃ6:1mÍ»Cß—ò*È÷ ›{w+Bq%K•RoÇ¿1Gn¹åV)Z¬˜zŽ _¾|ÏÖ|qÈÖ”–eCHà8€€sRv0ž9!„„P ¤lÛ4nÒT†þo˜Ç¾!Yb I“fú6:ü|ïý‘R¦L™5g~XÜûú[\ „=¿÷†{=ÀÈQKüºÍÊÓ€aíyŸ­ã>\¿ø‡å–eWªtµòñö»­ÊÆ3§@ „ ÍLýf¦”+WN¾œ4Uã'¶§MŸ¥ŸƒŽFû<òƒ¤dÉR2uÚŒ\¿wt¶NB¨ž¹z~åËËg¿RÏíZ?¬dzúxô85t°lù¯Òâþ=ž§ñ³Õ¾ç»¾(wÝõ/ùù×U²fí&éðäSú±ž½^‘ý«¡,Yú“lÙºMæ/X"<ØÒgÙÁxæ„R°3lødÜxµþAÁ‚U ☱Ÿzÿ³£ùkûãÑc媫®’‰_LÊÕû^»>Á¥@Í}|:þs¹±fMµ¦€Â#c|¶×\SM T©RU |ÛãyšŸ­y_bRª<Ù±“\U²¤zæ}úö×%%o—^½_•Ê•+«ÿ]Íšÿ'£>í³ì`#»fƒ+ÀgœgN@!!˜Ož°%…Èê¸õŽŸyðž9!„„P lNL&²*v+ÀgœgN@!!H®Ccåêµ®ŸYpž9!„„@ Lž<ùÏN-~ ÷öÜÜ)·fOÊï#U †´ôêÁ3‡Èô£é¥3Š¥²§eM̲3¤gC{ºhtê{ËQóîÊË»cÊ䬉iáHßû×sysN4| 쬨6£U•#­•|âZѹq3D6½püf3¤gõ3¶52ñ’»^»~¤S§Mš—{Û-“&„%½ï3Ç–Kt,<}´PŒ½qJ¶ý4¯ål;0«º¼ýý•¹ZáØ»Ö ‘šÕÏø¸Öüì]à¹~¤3òg̘vgnNVfº ½æ4l±éŽýEs_¼!H/¶Ô~÷E‚æßŸ?=/7'[’&|˜Ôì^îi„{Ê=åžrO¹§LÊ»—{Ê=åž2éºB“uIýžþgRˆÈ%zO »É½x±ø*I),]#4ÙŽt€ˆÜn"HrÒE~HñY4š”ζ þí<3…jSêˆÂy·u#@Gs«¸UDÕG VUŸ.XÏ÷´¿ßMþ¸ûûCHÏ»–¯µ¹È¨7Ây·Í•7ÁE´ððïK|Ÿ½ñìi__Ÿè¨ïB*ŠÓ%£ÞçÝ.—uàá¿äMpí‡ÇÿñÆ“´·Wö´·W’^™ ë<@Â’)ÕfÔa½Û—̪ðÈ›à"‚üÄ“ô‚~O/HRg#€†RÙÓR TôÔ¨7Âz·§¾~ì^y\dHãùžöø!{ü¨=’tù[[»¶ºÞh¨¸Ø5 ,òÙ2RêMX´°Þ Oþù¨¼ *² i·›ÜÝÝâ«$=¾ÜéuwôUËàLñ³w^K )!',ZXï†ÕågäMP‘MH1)ŒõWâ³åïÞI?­Ø™(¶"6Rò^b[Á¶‚Iy÷rOy÷2© äìe˜”IÙ˰—a/Cöò2&±ÛŠPR Oqè选¤ã@ºH'Z/£&ôsHž‰RE‘ÎFI¹cåîíW‰Ú˨ ½À\’g¢TQ¤³QRîXêed¢÷2jB/0W@žÁÑE‘ÎF ¹cíîíU‰Ú˨ µ@]©·3 (ÒÙ()w,õ2:Ñz5¡è«é©)Št6Jú+I{t¢õ2jB/0W@«RE‘ÎFIŸc%i·N´^FMèæ ¨sUª(ÒÙ(ésÅ˺ÚÂVXèe ©ímEb’òÙ &eR¶LÊ»—Iy÷rO¹§¼{¹§ìe‘Ô2/Cöݽ±{™ØI)䆬;/cwR»{Y U‹41ºGæ´ŒZ¥e ù2–±±‘—QFµÿw:sZF­22†€±Œ¼Œ*0ª%ø?™™Ó2j•‘14¶±±‘—1^µ 3˜ò£W™©±MÔ¤VxQ U‹î©c°/T¯2¤cyY U‹61óO¶½½!T­RâQ‘ŒMÌ=µÂˈ­Z´‰yöˆ£ì¢!…^¥ Ä£"›˜{j¡—1I8/“Ü'’Ÿ”m÷”Iy÷rO¹§LÊ»— T¢†{Ê»·>yQÿ'§ Sb ¬   >P,Ö]_íú¿÷?™ óí@ÁØ4Ì̦“„Eê4/n:ÎÓ¯Æ<.nºØì—k÷|Å‹w¼Ë ÎâI%P•ÀïÄ.S E!Rš*Û82ØCÜG²Ù`g#o½é½¯ññ ggñ¤¨Jàwb—)¢)M•mì!î#Ùl°³‘7Šý´šßt…7ÝN·®/µÔZJfpFO*ª~g³ÓZ( ‘ÒTÙÆ‘Áâ>’Í;Ýà­çSÞ¹Ø6 Ã@´õ'Ž“HuåH÷_´8ð´CJQw$Á8}‹„M·G:Þ­_ýºz—Š»¸ûÉ ˆ¨…|”t—vmÚ&*—Æ4¡Žž ŒLhL¤¦º/æómæßwmµµZ¥â*®~²"j!%Ý¥ÕÁ@›¶‰ÊÁ¥1M¨c€'#òDþ¸Ħ붿òQÎrž¥HÅE\üdDÔB>JºK‹ƒ6m•ƒKcšPÇOF&4&RsdÝbÓiY·ûã•rÊ9%©8‰“Ÿ¬€ˆZÈGIwir0Цm¢rpiLêàÉÀÈ„ÆDj|Û‹Mçe½m÷ýó„{mlú5Mó¼,ë 7øØôÈ*¥  èw«IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-horizontalscrollbar.png0000644000076500000240000000154412536324512025541 0ustar philstaff00000000000000‰PNG  IHDRÑÈ’ª·´PLTEÿÿÿ†††ºººÓÕÙÕ×Ü×ÙÝØÚÞÙÛßÛÝáÝßãÞÞÞÞàäßáåáãçáãèãåêåçìæèíçéîéëðëíòìîóíïôïïïïñöòôùÿÿÿ³ð ï!tRNS "#$0!q*>IDATXÃÝVËnÛ0$%»jè%hÎõ1?àÿ¿õ'’CeX°M{ˆAqÕ}1^Š®¯’2ôš\’–f0+™ÕvóÃb“§veû8Z»Mr³õÕ±°èóÔ®ÔëÑÚm’ýÑTýƒMñ*.Ö£µ’d®!Ëœë h àt*ùñÕ%Éaž)Zþ–Íîû•Ó£’ä%£Üê«ÈÄQ:Qôí\ÆÈ IrÍ—ˆÅ¢®«Š=¢É—o.1²G×H:÷¢ù‚@‚|¥Š^³½½•1¾GIí_­G(È'Ö¹¢ >GC’Ú¯“¢ÅR<ò©êVÙæ¯ʘÀs´*­4¯kÔƒŠÔ#~_ܹì5Rb ïºIw—¨‘GK¬:ãÀSuçsSx×’—ŒrÔRÕ\uî¢&ÿe$óœyÔäÅ£òÌPŸÊ˜ô™AΨØÓ™Á·ƒSÒa‚ÿG%I›€ÏNA÷>#î=ü~Dn“ô÷É+²¯úùôüüô«=ýþûb„ØA¤&} Ûíwm³oÚFC#ÌqL­mìe$;y_»“±®ÐÕxFö¦ßì³®+DŸØu4Ä^Vuî³AõÔæ­:Qä©Í¶êz®Gˆs+@£RÕÉi~³Dº*l?c§…I²ZÅúùP!s– ÁD6Å"ã$Yæ&Xà"o€£Üc»yEûš°Óô°ÂUž+Ø ÒÀ  e^wÅ\¦yÈ  ÑO/gé^s›§Lr‹ŸeOe1²¼d˜¯´qž!e†§˜¢)”y°ÆE ‹au‡ýûuðøVnTÅŠ.ll$°HÀV «ðâ–ÁC_ók\ÁçÕx¥*ÌöqÅþ·b–BYØ$°"†•V°Ôa6¦âE Ó×ü˜©h¦:F +ß%i°R³0‰6Ê÷•˜éw3rXaîú;q ¦·h£üÛEV8{´0ýkÛDñQÚA@Ÿc|ÁIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-lcdnumber.png0000644000076500000240000000072612536324507023424 0ustar philstaff00000000000000‰PNG  IHDRL?à(æÏIDAThÞíÚÁnƒ0 Pèa— í°Ã»l¿T>¡ÕO`?×óÍcÒUÓ)±ZÄ“i’1Î`k 5·?1Î5b¬ö7ØYVgØ`_jaž¸¸ËÞ&Xò°gž\‘s¥ð[°žôꙆ!{ƒ$9=u `o ëe™…!{Ÿ`=Â,á¬Ø'þÔ!©£Ñf˜RØ Ÿ$âæÏªVC|½ °Ì&…ù…ÖêÉØ³t^Ìtä/åþ2–a›ËhÍX¼à‚Žÿv•eÌ/¸ŠVþü¯ü˜Ú•?ß’ö–±&z†mÂ+1ˆV²:<(Êfìtc_¾%eX†eX†eX†=S{¯Ü†`»;ŠÂàNÆø  Â8`”4V|ÀP‹wŽö†f6öÀtœ{pÏêÇ¿„UÓV fwSx)K¢•Ô=/-lUKšÃJb L »Ž¨¡ú`Ó ÓÂVõÊ9¬ ”!VjØXÝíÇ o€ ݩan¬‡5ñ9,Ž´mõA€ ü§…-Þ»˜Ãµ´ƒiç4ÝIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-lineedit.png0000644000076500000240000000176712536324507023254 0ustar philstaff00000000000000‰PNG  IHDRÓ"oÀ$î¾IDAThÞíÚoˆTUÇñÏuvdMjS£6KH RŒ@ÁwÖBAÑ Q ¢õ"Ã4É Ë7».®ô-",z§½HPú!%H˜BH[F"•I²3s{±wgçÜ™u7RfÆÎïpî¹ÿžsž/çž{î=ÉÙôk‡E5_‹-qmÒøZ²?=èΣнîSz‹•1F- Ÿí¶1bŠ˜¢.¦"¦¶ÀTÌÒ0ç0ÕÂLQmx6ê’aºªŠ&Hu˜.Ž!bºÌ˜®©bª¨HGó˜oØlÈB»-ªöµe›ìt΃v˜ŽÄV¯RgÝê˜n ëñ«=åC¬²MgÐÎÈ^h]ß2'­wÀ°»½c6ý¶˜êMÇ (z×ò^µ¦YYx+**ÊYY™Ó [Í4`Ÿ¯‚ë/ûÜ.]Öšn;Ù¦»j¹Öl›ð‰íözÆ÷vI=b‘†˜Bëú–´Ô°—œöëôÙcÇõÙã5GxÕv˜®«b*++gee‚±)ñ›Y8¯ËpÞ¹>¶§Ýá$†\_c}Ò2?(zB¯•z|j>Žëuª!¦Ðº¾åQ7ׯHœ1ÓY9]©Wm‡©§ú°*+e¨ÊÊö¦|8G‹ÕGh¢¢Ñ¨µÊýv»ouêpA%Ór¸óõŽ×ò!ÏùÆ_äÚ Ë¼Wm‡éæ*¦R–ÊJÿÓM¾tcÃ;GuØj[íö6z|fNèõŠþ0 gtOÓîÕåO]EXæ½j;Ló2L%%ÃY.)ýKL3rè÷…As×ç}ßï2¬ß2lpÂN©G-´‹=`ƒ³žöÑ$1uÛá>C6úà"˜ò^µ¦ù¦*¨ Ǧ0X}6;—q¯xË^´bLû¬qR‚¿³7½•uâˆÇu½ç­™$¦½ÖûÑÏzò"˜ò^]¡½éÒêu§ôµé#èƒéwKpCŒ+cJ Z£ßê½)*bºR1÷¦·?=hmŒQ h›^ËÇëMqÉJ«h±%fŒ‡ilv¢C‡¢Ž,M•æ&/#“ª± N’Ý1úblª5²_»Wk9v. jV­§Ö&©;ŸÓ¬¤Æ2ÍMü]K«¤æî°Æ¼a½ipgÞw9ï“ «û†PïÉ$0#¦Á466ELSÄt0tèPÈr1bj"¦üŒSmŠ˜š‹)ü-X») ÕmGÄÔDLùŸì¦ÚTÕ< VBL‰)SªÛ¨fbJ3D# ÀLaŠjžòË)k I.G5S¸89ÀÕ¢úåqL…Ù¶¹IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-listview.png0000644000076500000240000001143712536324507023320 0ustar philstaff00000000000000‰PNG  IHDRû¯;m¨GæIDATxÚí pUÕÆ!Ö° ˜ ‰&Œ{[A Œ:ÓqW¤­Ô µ- ¸°´S#*‹¥\j[lÛ)PÁD"`„$È’°‡%|½ÿûî}}¹ÞwϹ IÞòýfþ“wßy÷¼sλß;Ë=_^£òòr¬Ì/ÂÌ…Ÿ2Œ(Ñ«èÖ ‘Ÿhd }ÈøÙ # ¼o±ÛBwãõ×_Ç€\cìØ±X±b!õ˸W—›‚¿ bQ»qö\ö•”á—C‡bõêÕl}BbAìUUÀ¹sÕcÿÁc8þ<¾Øòˆ¼¼¼z«h£F\Gõ]®HmR·bo䕨OŸNVVÍÛö¡ÒxþDeÖçoÆÃ?ŒÏ?ÿœb§ØIýн©#šX‘`Ec+ôÄ~â4pøøÿ£â°¦`ŽŸÊOGNŪœÏðÒK/Qì;©_±·0¢¥ò¸¹ÍŒH BPð*±W‚.«¨Ÿ}Q†)sW`Ìó 0gÁ|±c?xà­‚ž½ÚÅZ\\Œþýû#)) Í›7Ç]wÝ…ýû÷+Å~Θ_Œ?;wFË–-ñÈ#àøñãÕ^;sæL\zé¥hÒ¤ .ºè"8p ˜~æÌóÜï¾ûî{e–4Y”sÚ·o3fÓ*++1tèаõQ•ˉ*?Uú©S§0bÄ´mÛÖŒG}Ô|N§.$êÄÞÆ­he ¿YˆàõÄnLϱÛÐÄ7%¶í©ÄêMeX–» «7–¢¸ô„!öz7ýúõ3E%"¾ï¾ûª]¬×^{-V®\i~)9rļ0 ¤ûsÏ=‡Ûn» ß~û-Ž=j bäÈ‘Õ^+B³þÄO`òäÉÁt¹³ eqcâĉ¸ãŽ;°gÏ>|£G¦=õÔS¸÷Þ{Íú”••™_N~ÊåD•Ÿ*]Úëž{î1ÛVÒo¿ýv³ÍuêB¢NìŒèh…ø Þ~ûmTUUáÊ+¯ wí÷µÏ‘<¥œ5©ª\~ó«Iº”!4=\]HÔ‰=ňnVÈã®F\d >ÉšË7³†òj±o7¦Ë¹FG²f{ø×èŠ]z¯ž]zž ˜Ûåöž åà <ô±ôÒ2Tö³ˆ•ŸŸo¼999>|xØs½zCIóêiUåò›Ÿ*]Ú×™.£öì1)öT#Ò¬HµDßÕêáÛZÃùæÚbßR üg‹wÈktÅ.sJ™³ËÜYæò8ôbíÔ©–,Yb.DÉPû¡‡Òû /¼`Î_åB—žK†Î2GW­Xßzë­èÓ§çæ I“&™ó\­| 5*˜öôÓOçÐ2OvΡý–K•Ÿ*ݹ&"éO>ù¤V]HÔ‰=݈ +Ò-Á§XCúÖp¾…5oW‹}ó^`éfï×èŠ]æàƒ6W¦»té‚)S¦ 111˜þá‡"##Ãz^~ùåxíµ×´Ä.Cñ_|Ñœ#K~×_=-Z¤ûG}dž#£ˆpȼ^²:vìˆ:˜«ú¡«ß²èf×ǹ:î·\ªütÒCWãå±s5>\]Hœ‹=7ð~>°dC ä±3ä5ºbw²mÛ6SÔ Å«¯¾j®PG2¼NêEìëŠwÖý?æçÂ~,å5~Ä.·½:„ÒÒRóvט1c¤Ñ***pÕUWaß¾};¡Ø‹+€œ¯«ÇZÇqq…?±¿òÊ+æT6ÎÈÞúcÇŽ5ˆ€deZ¦ ‘ÅNˆ]DÞÝŠ k¡®›u+Οؽ,®Î×BbPìô³Cb§Ÿ8;ýì‘3Ÿ¾ïÕmÇ5ˆ &ö »@G?;ÅN±Ç‰Øég§Ø)ö8ÆÓÏîí÷SºeggwÛõèÑ………®ï¥ò­«ÒCóZ¿~½¹>++Ë<^¶l™i5–2HYæÎöó¤ÿ>†zvúÙ½=à~Ê S7is9_¶gff¢W¯^®ï¥ò­«Òí¼/^l~9ɶa–lé¡îÞ½Ûc8è¿!±ÓÏîí«wÝ­n¬–jOõã[W¥K^ÒËÊçQPPP­\©©©˜5k–)tÏ“þûÆÓÏîí÷S?uSÕWÇ·î•.y¥§§›.8'2¬—Ñ—ôðò…øÁÔøó¤ÿ>ŠÄN?»~Ï®*ƒŸº©ê«ò­«Ò%/)k÷îÝÍ>2¿øâ‹=ëDÿ}Œ ãég÷ö€û)ƒŸº©ê«ò­«Òí¼Ä$£±áÚÈ­Ô-[¶àôéÓXºtiØi”@ÿ} ‰~vo¸Ÿ2ø©›ª¾*ߺ*=4/q^}õÕæ£ðî»ïš_RÎë®»Ÿ|òIØ2ÒCÃxúÙ‰_x=JÅN?;¡ØãDìô³Š=æìô³'=;ýì„ÄÑ0Þ úÙ ‰±a<ýìõÜö’õŒ U7ΟٳÓÏÞ@¨î¥Ë.¼µk×ÖéûŠÝUìô³×½ØC‘½ò^|(vB?{úÙå\Ù';¸¤Ìb ‘cÙÕ%Ç¡;̼üÙ¡·z„K·¡wœÔ©Øégœ+[6åËcÞ¼y¦k-ôX¶”ÚèúÈk2Z¡wœÔ©Øégœ+;þìÞÓy,#yMÅNï8©S±ÓÏþýs½Žu|ä5;½ã¤NÅN?»?±ëøÈk*vzÇIŠ~vbWù³eáK†Ï:b§wœÔ«Øég÷'v•?ûùçŸ7ï4èÔ‰ÞqR¯b§Ÿ=²á}tŠ~v bÁÏN±ÇµØùûìº"‰?;ÅN±ÓÏNÅN?;!»Ë0Þ úÙ ‰±ó÷Ù9of[°g§Ÿ=¢/pÕî:ŠÔ©ØégoX±³g'õ6Œ§Ÿ=pîÔ©SÍÛ…RîaÆ™ÛyÝÊ¡*¸ß>WyÝ•_]52Pµ‘úçã¬g§Ÿ=p®øÀÅ6kï)—}ènåP•ßë·ÏUbUùÕUç«ÚÈ ýóqÖ³ÓÏ8ׯ“-\ù½~û\%V•_]u¾ßß§>ÎÄN?{àX×£®*¿×oŸ«Äªj;Õùª6òûYÑ?cÃxúÙÝ{v)§[Þªò‡âüís•XU~u’Ll<諜Ð?g=;ýìsen*sO{ÎþÌ3ϸæ­*¿×oŸ«¼î*¿ú 7Ü€ÌÌLsê°wï^ó3©MÑ?gb§Ÿ=pî´iÓ‚«ñ²°î·ÎUå÷úís•×]åW߸q#zôèaæ-½¸ŽjÓFôÏÇÙ0ž~öȾw\ßeã}ô;ýì;Å'b§Ÿb§Øã@ìô³B±ÓÏNH¬ ãÝ Ÿˆ;ýìÑ­¬¤Á{vúÙëçâ§ØIƒ‹~vЇb“a|¼ûÙ»wïnnüÄ©&Æû¾¼pÝòxùæý~&ô­ÇIÏN?;Ìa«ÌSeš È0Uþ'ÝÝwß­½px!}à:åqŽNB}óNè[§Øég·ÈÊÊ2{Q±¹ rç¡]»v˜={vÄ^[¸Ny¼|óô­Sì®b§Ÿæ|TÎ/((07oÞü½ÿ^ãGìµõë”ÇË7Oß:Åî*vúÙãÞGÃ:úÙ)v'=;ýì;‰ƒž~vBâ¤g·‘ÝPdÔ„ Яß}xï½…xóÍ7ù íb—^ÙY&«èœ9sлwo¼õÖ(ù¶,^ˆ;ï¼ÓsÓ!$‚Å.÷ªW­ZeÞ/•9öÇlš]&MšˆÝ_oÅ™c%È_³ /ÏšŽiS&›6ï¿=Ç÷n@Ïž=¹ðCH´‰===Y3gàô‘bCùÆ$}=N•­EéÖbá™õØLÏ‹Ÿf¡|Ý8œ,zÃü5BH”‰½oß¾@ÅV`ïû8¿w Žnÿ^ð'ŒùsL; ùËg¡w•OÞÏo“«ü߄ĔØ÷oš‹?Žø6}2ûÿ=ØìÍ«òlþðå`ë³@q6N/Áì?OÆW\aKêJì*Ÿ»Ê'¯ò»{ù¿ ‰i±ïÛð¦Žüv伂#9#Bÿ|l 7ß™eÌéañßg=úÑ·oŸj+ãu!v•Ï]å“Wùݽüß„D¨Øk¿ƒNľ7ïe¼<öGÆßlT®èÍwüØý7¬[ž»ïü zöìaþçTû_G í“'$jÄ^ºñuÌp#J6þç Ÿ4†ìs°3ïo:èøÑóÉÿlËÍÍýžI¦!‰ŸÛA÷©I«ê‘áñ9ë^_;ÅN±Sì;ÅN±Sì;ÅN±Ç‡Ø›Ñ܈ÖF´5¢£µÂ—b­ø¥Y;§†Iw†×ëTy¤jž—ªxΫüºï›êÈ;ÍåýÜŽS=ꮜ©.._¯6JÕhÃTE¾ieLS´«n^ª4Ï8Íg;è^#5icU=Ò<>gÝëKVâ»ÑÉÒmkKÇMTbofDK«wog ¾³%ø«§w>N“î ¯×©òHÖgÝ뫵¥Óæ!BobéÙSì !‚O } ƒ‘a‹<1Dè *±Û‚·Eo ß?ƒÁˆ¼h"ð„ 7R‰Cü3]+Z_î®1IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-menu.png0000644000076500000240000000743312536324510022411 0ustar philstaff00000000000000‰PNG  IHDRÁT;éSlâIDATxÚíyPWÀQ@ÃaAâUVme­²Ê$&e²Ùªlò‡©u#Z[ÅþaL)"º žk%k\àz’UƒÜ%^ˆ¢È¥‚º Fs ¦D0˜äRX“EM‚òòrxå•W ¥¥…ñúë¯Cii©E ‚ƒƒ¡¢¢îܹÑÑÑìÉanݨ¨(¬IIIàååe’;v¬ÅƒëOÀ˜˜˜0a;ncc#ËÇcD üýý¡¶¶V×óðÁpãÆ Õ`W“@KLô@‚ßHDÊó­Aר@kK€"„‡‡+>9-ZÄÖÑ"þ ‚ôôtƤI“ƒYº|óæM1"¸¹¹™]·¾¾ž-ß¿¿[Zxb)ݘÂÂBxçwØz˜Æ–çÒ¥KbyMM kMŒ(Ö‹¼;¢E‚ªª*MÁ®&–˜è¿•ˆ0œã%¾[äËw‰<5·Z*o^}õUxúô©¸Ž °ï‰¶ã¶GU•ÀR¥ZZ×RZº|ýúuÖͪ¬¬óP4 ¤ÿþlý~ýúR‚ÁƒC]]n Ôî‹9¬‰‰^—ƒ U¼¨yóæ±uq=-à¾pÂ\÷Ä‘à“[€Ó§O›¬‹}]ì õ…±¥1µèm Ôb¢×%À¦rúôéÝZ¹x!Z$P+s¤Ø×ß²eK·cÄÅÅÁĉ¡¬¬ >|ȺFØ6¢gΜa³C8q 4;äãã%%%v•ÀÓØ6•àñãÇlöGxlÊóPÌs6 Ì5×x-8³$ÌJázZZša[ƒ#GŽˆß¼üòË&-Cll,x{{ëº/†”[ ú °´7kÖ,–‡Ëj„#±ywÁn"¤‘˜ä‘„á$°ÕÿYš-°4{@½.AAI@$AôI ð7[™ –€ z"ÁÒ”sa8tI¹¥€ ‡. $æ„áÐ'ÁÇ Âpè’`þæca8tI±é(¡~”– ç@Ÿó‚ôÓÞÑ 7ïªÝgU·±÷y5Üy·î=²xlKça‹sTúØó>8êž÷&º$ÿW®CÀ°¼ð‹cpøìp³éÃŽ¯Äº´¯¡‘Ïc}Ú9³ç+]¶t]¶¨GÞ#£K‚yŸç8üHÓ(¶ÒògÊàîƒè|ö¬Û6øÙ{²šš[ £³jo݇ø]…by俣ðíÕ:hmë€æÇOáPÑÕnÇ”Sx¹ ²Î•Ãᢡ¨¤ÚìùšÛüóü\òàë+5ð¤µq¶¤†åi­Ku¢¶oKõdî|ˆ> ²«t~9js.*,ƒ_n4™”—×Á²­Ç·ÁÏ¥ŸnÂ'Élû.x«î‰å'.ü% ð·mǸ,Ý^΂9ð¨¥Vì8'å³eÌ3wl-×%pòB”VþÇrŽ«ÙùéÙ‡¹:QÛ·Z=Yº#¡K‚¹Ž8ùç)÷[µëŒI9ÞTù6Òå%[ŽŠéÈM9ÐÙùLLß{ø>ýò„˜^™rÂd{9ÉÙßõšÛbújÕ-.¯Øì±-]—<ÏeeÊI1½ó$ËÓZ7Â>•êDmßjõdéZŒ„N 2BWåw-/ؘ éÿ-Ÿjo+–+å©•cw!<መÿüˆâ6ØRüçØE1½3ï\©lÐ|lKeJçÒˆÚ÷aí¾­©G#¢K‚¿®?ìð#MGr"à˜À\¹ÿûŸ4ÕZ¾Ú¾ÕêIé|ˆ> Öf8ù·ºá.¬J=eR®´ÖòùŸg·e5ÐÚÞpvèL)›Q:œ1Ù°¯°[>æa™–c d•±ñtˆ„L8{ù:´p‡à2æYª­ùjûV«'¥ó5"º$˜½æ !Y¹ã8ܾ÷Ȱ×gV°Û¾uI¶:Ý0œ¼ð3DmÌ„%›³¸.ÃM®ëpÍP×g$ƼýGøsä:˜·f­J³ùþõIðÏý†aOþEh~ô„5÷ß–UCĆ C]ŸQÀ ~líÁá0ýÿ†Ðø½6=†. ð„‘„Æíeà¯]ãßßO™­øfÆî±Ù1tI¿ ÊÌØÝ,øñ‚oO…iß!Ÿí¶É1ôIÀYIŽdæg»D LDâDø$Bbvõøº$À&ˆ IHÌW&HEø]ÐLøðã$˜ýUŽ¡K‚V¦„C™¶bG7 ¤"ŒÿÓGð—e›àÃÉVƒ~|‹øUsüøqE ¤"DFF¡C‡àرcôã[„ñÀ»˜“@*ÂÆÙ+|ñe0ô[¤DŸ’@I܆$ ú”ÈåË—Ùz/^„[·n±÷â‘„á%ÈÊÊêö ¯‚‚¨©©aïÅ# CJ€]ŸÝ»w‹ËøêÜí۷Þ={àðáÃpöìY¨««# ãIÐÚÚ*öýß}÷]QŠ   f/Ç—‹×ÖÖ½{÷Ø ã{]‚úúz8wîkžð/¦é¦Ú†ž¾¹Ó™Þü)H ôù“““Á××—=ù….¾\\ˆ1\_v‘àÎ;°wï^ذadff©S§Ø[Ð1½oß>¸{÷®¦›ÔW^תöÆw=o„7²Hjj*‹¥… ²ï„ÖÀÃÃÍÿc+ §d P€Í›7Caa!´··Cgg§H[[ËÇr5úÒ;ŠÕ®µ¯K€Aç‹_š!Ø%¾@Ãwa_»v-çääÀõë×{_l0Ð;:: ==Æžžžì/Z0ÿôéÓ––fõMÂþ^XX¼øâ‹ŒÙ³g³<é¶ 0räHpuuóâããY3di???–ÎÍ͵ë“<11‘ àÜÝÝY]+¶xòíÕÊ… Y¾|9°'âÔ©S¡©©I,¿ÿ>„„„°û€×Êßp§’çþøá(//‡Û·o3¦M›&ÖËŒ3Ø·ÅÕÕÕ½+öÇÖ¯_Ï0(€R—›2l¾Ö­[ VI°hÑ"øàƒXÓ‡Saï¿ÿ>,^¼Ød[ „7n˜äEEE±àHJJ///“ôرcí*Ü***XK ãÇ·Yw(&&&L˜ÀöߨØÈ>""B,_ºt)Lš4‰Í˜`}Mœ8Ñ©$Àþ=ŠŒsÿø°Ãùì"¡ß}÷äåå1.]º¤ûû›K€üÿ ìöàÓNI‚7ß|“•gddÀùóç­ 6 JKKÅ46˜'ݶªªªÛþ„9V¨<-´ö’o˜´Ëèææf3 °…ÁÒèøÄÒLJ²²21}åʧën¢ÜÒoss3{â½ÆÐûM±Í%ÀY üü|Ö`Ó«ÈÞÞÞ¬ûtJÿȤ¥%À€•6yxáz‚JKÚœöØö´¯ëéß¿?+ëׯŸÅú2ʘ ÅÀkC¬iìÒà»;o¼ñ†¢o½õ+Ç>9j¬‘Ÿúò'>íì%„Ò>>õ)Ž}°+dîüFŒáô-½±é˜`íÚµÌÊtŸN8§‹å¸žµcìÿOž<™õqq\€}Ü%K–ôš(<öó±›SYYÉúÿz‚ØÇLJué¬-‹‹cu€ŽOyìá˜H(_¶l™8&ê‹$°óìvs°ï†ã`[€ììl–]¦ýû÷Ûlv—å³CŽ”g8Ÿʛ6mÒ%All,«#sÛ¨•c7gº„Ù'üâH:û†uƒƒeœ92dˆÓÍ9Ø-À Àñþ_7Þ LãXË¥AK†’@¿^½z5{âãþÅíñ/ @^ìóã4(vpli @†”€ H‚ ‚$ ’€ %ÎòàÊa40¶5I"ÜNjÇc0ÇŽ¡#øàŽF„“!0‚ç!||ûðñî!—À“co‰?G Ç0™áL ããÙŸïA|¼¿ —Àƒo"Ð?¾Ù”µáL-@ Ï~||{óñ>P.Á |1È‚áL( 0ˆsŒ÷r òvÈEðçûR/„“1„_¹|¼»Ë%ÀÛá)Á—L„“1˜_©žb+  »D¡Eð–É@΄üÞ’à¹..nr Ü$" ”µ ‚ áLxËžþMpqq•Kà*A.ƒ¿#‚p&<‚ÿ¹..ýÿ¨) aÛð¤IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-menubar.png0000644000076500000240000000200612536324510023065 0ustar philstaff00000000000000‰PNG  IHDRÄ)ÀuN¼ÍIDAThÞí›=U…Oü=ÞÝìzý•Íâ’Pð @«¬B(H·HKCG iA Š B‰”‘J‘í ¢‹”(*ÚbQ!"GY4?ᡘ;ãñøNbg­hsu$k4ö=óÎûøøÎØ×òqš§]r­q Âxé%O5UUUE•URIETp æ ¢®º<ÕTSu…kÍœA,jA F…kÍœAÕ’ÇPLBù–s[<Ù«V´ƒ1D‘f*<€2•÷/zZç_8E…׸ñÜVè@Û¬Y@¬ªC¤âY òxk†Ó×mºì0à]nÏ=g¹hiU ­uy&“6xÜç"-jœãß láÑáJÌÓž›ÎrÕl}Ç»fü—´ñø€AÂIæxÛ,±Ä‡ ÌÞoèQæ îàãó+')ÓãÛL ’½¥&‹O[-5#ÃLLâsÞb—Øâ£ >e“G챑飩IßlíÑ2#O³GŸ .X?š>æ4}öx›ófï{ìò˜ÏxÓ8^cÀC¶3HöBÖšÆ|ºêÄP 31ÝÑã®iE'ñÆ||þ̢ȾÙÚ§dF†~kVÇø Ÿû3{ÿÆÇç±ÿ _ó0Ã|gï…¬5ù¬Á\f¢2e"J)R@Ɉ°•OgLD?JDèW²‚(>çù?8C“u~Ì”ˆd/d­iÌg=†"ÌDMÕ)A¬³;Ãd}|¦D¼Ã÷fë*gï¾ã)‰xvb|3St2HöBÖšÆ|zE[ÍX&¦q™ 𔻜Ëâ›<¢Ÿ˜#–¹?ˆßè°Ãvèð»¿IŸ>\L8Îç9cŽ÷‰ÄûÜã ?›|M "Ù Yk: ÿñ=ʼε sÄ€-j´G®š|.±0a*®s’2'ø)òÿŠ6[æ eè4zÕ´]5žÓ¼J‰SÜÌ"Ù YkšÄaº—}±jš DúqÖûjÍÜ4Yü4ÇöNz6¹‚p‰xAát€ ÂÉp œÂÉ8 ¢•f5Õµ¨£ZѪZꨫ5­«ç”³Ò¾ð´ %-«1‚Â)_¥ý0¨Ê‹2ÑP3BᔯÒ~*31DÑV×)g¥-ˆ@T¢L„(VÕRÛ)g¥-§‰@”£L(‚¹¢é”³Ò˜Å@TTUMõŠ5œrVÚ’ËD)BáÀpÊWi‹c ’(Nù*mY~¢8‚"€àpÊSiT‰@b(*ªšd8å/û_·b *F0†8œòV€ „`8ò?YÆýos=LIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-printdialog-properties.png0000644000076500000240000006611012536324512026152 0ustar philstaff00000000000000‰PNG  IHDRLÁ¤7‰ílIDATx^ì›il×uÇÿ³?’».ZR›¥R«e[²åÈ‚-Yu]£·iÝ:›¦MQ)P mêt/œ|HS$ 85šF­«zI!Û²l9²eY›µ™Zi‘¢(Q¤HQ¤È·Í̹˜yPn‡ `:@û.4¸ïݳÝáÜ÷ù玴€Z¡PÀ”5#åØÐ4 5Ó˜—Bû_?Ûq©ì¢>jjŸãÎA6UÌb;UE¯ŒÉm|É1“õÇ¿7EKzFªg•8O)K˜£Â.¡%ü-'4'ÙŠu•±Z’MÒsïï”´nT¶ã=c•l"ÏPe—GCÕ&~²Ÿøor¼õ£²w}i 9€\¾€ÁC;aÙ–† 4óêÀuüã_Æ[¶aÎìp]ÿf ˜%`–€Y&÷–e¢ëbžýî øËß iZMÛæ mýg0­µ ¾çÆ9Õ˜¡Húÿ˜%`–€Y¦®ëÆ&¨Åñ £ L ™È>j1«’ É)!8žnšhß·íÿþ͉e˜e)MMMè¹> /Ÿ…¦p yú¬ðCEÞ¼ž*‡e;<‘Éf ˜º¦Éõ![øA¸ ]g™v¤ Oêc;ùõY&ã" ñPÏ4té# á‹O˜\’sÒ5˜ºÎ÷‚àgÌ0c_bEÏ&ß·d…Q–†iY!+˜s:Ü|>Ùë¡C5#Ø’5vÌ]#V r™ñî—׳ÙÓgËB}}=&ÚÌ€çypÌrßõ?¦æF膞4ß÷ÑÛ×6LÛ&1ÉÀ,s$›‡ç H,CGEÊ‚AýÍL¡"D(´-å¶É²‘±<ˀЯCã$c!„–y×£…V4DþmÖ×ðéSÈLÂÐud .näò¨­HñöÀ,SÓoÁ.<4ÎjNLŽH—ÁÖÛ?Ó¶`Ð ÀÜ YÕ8£†a„± w¾1©9¾ð®ôõÁB{Ý0‘>ÇšH35Î*ÂËÐ ¸^uU•(//£Ï áaÚ¸ù\” §µ•iZÌ$¢Q* ån“*j`&ë¨bÆvª8Ê^ð§ÐIÖO¾7á7µaæ”Ê(cìêÆk^ÀL_Ú܆¦º[2„²¾ì<ú1FX¶Íõiï8}y»w¡àù4.ÊLÞEÛÜ騲r>OÄ4BX½óQ7Žuö1€õ(ƒ•€Ðå¼å:ò%¬u9Î[% å¸ð@ÈlÖDô£UXŽf°~ñ,l[5Ͻrc4GË4XýH¿Q|<²fk+ÑÙ¶aàÁ¶ùX“Þ9ÉY™–Î"ÙooA…”ý`Ï æäv7¬Ú†ÕS¶‹dš|ö@ëY MÊ»)“;Hà£Ú)gŸßø÷pŒ²ÁßݲŠÕÿtû»œ-~ëÉM ³÷Ï^f½× ÊõŸûðØº…xfÛZ‚í",¥¹Ô}áÖÞ=€‡VÌcߤÏÙâóoŸ`Ÿ—ÎD6p¶IrÊ>«(“lÆ©‹lÏ%‚ẇúàX&Zpm¶gp„KŽiò.h’¶ä¥-9óB‹2L=^?òXç*ÙÄ\a°êСI{]Ú X–ƒêúˆ€ÙkZ Ř5`;Åöž‡òt%Ö?þ4^~îküŠä/þÑ7aÚeps†q4‡hK¨2L†cÍx2ÃŒ^W‰.Cç‹ °UõSqõãvLižÍv½í¨ž:©@Dºº,&LÖ¡OéЇaÇpëÁŽýg¹vx}4‹S—8“2Lû‡iû{Žeƒ7IÖ3Àu>œ‰f >×ûî˜9ý^'mø¼åó€ê@×µa–ë½Î@NYëõ\Eu¹ƒÚt ƒ#YÎ$S¶‰ËC£”•ÖrýÖzI/€cyÜÌ8ó h ¡¦‚ ºˆæââ'í—¢íÙÅk#\‹JY!èt]À1 êu–W•9œ)ÔV–±½ëûØwº_Â7^|Ÿ½{þø±»ÐCÙn¶àèÉá?ô)ú0'⋳«@ðóSLÁ~Šuu~×@ýmö'•â(:×7ÂVö1£ÇG`’¾8þæ4·.g ßµ«¶|¦i²M±½³Ê¼ ->÷ñ¥Å“çåàEԮ݈#¯½ˆ#;·ób/dǰš&áGz`1™5ÌR Ó` Œd°ûDoc&\·#1L®Òéw'?»PfÁƒ`ðÕhîliä'ÿäýËùô¼`KÙ(ƒÒäíQïÈ…«8Ôq…};–ÅÓÂL„ë•×çíïƒmópeµgÌëZš0L> <Ÿu­MØ{ªk4 >"½X9o:éâŸvÅg–ÍAe™±|ýZ¦ÎA®GÛ4`Ñ¥I(ÜÍ!Wð ¬ÃøÖ«±añLL«®@S]š²Ðz|gç^û«±uå<¼Ó~‘ýŸ| ³TÃŒYÄ|H€º|þ$ Ófá»X|×hYÍ廟b…ùào\g¼xâÃN¾£Ép‹©Ë-y10uÖqœN½ÿ&Fûpïç¾ Ý0°wû÷pvÿ[Xv×0‹æË°VlÉ#@Ššf¨Ì‰a€ÐAœ-r†àº.ÊÓUXÿØ“è9’!ÐܲŒú°f`šë~:À,“–|÷²¦Â‚/ÌèE!bYu…ÍcRÆk àûT÷¬ÁŸ?¾xÛúí‡Ð? &ñÅõҋ뎥áëT/8Û$l©·-F2†gÊ€¢TK|z\ÖÉ»>¿ÊCÛõèÉÊ2û©þxœj„£ÙêØ&ž¦¡lÁc]òÝÛŽ£}è# ÷õñg!€='»y >¿¡ßó¿‡ ÀWÿy5OárÀùÞ!\ᬘËDŸø‹ë¥×u†¯;æ@ æ´pf‡ ®azn뉖es]ó¶edJÖÙ»>¦6Ï!­4.ã@ƒWÈK{=Üm¸B²‘='wâ–ýlø¾áûL7ÛNÑØ,x®Ë1H—ù¦IÖic¢Ídhg‚ƒØÈd²¨ª°L3‚‡—Ëß´œ,O,CãMŒ=©5ÌR ÔÈ™Ñû‘2 œ%Þî›3À8£`¼]—Æ€2×|HD>`Æ “XÎõùd^Ö;a˜„ðá ùäõB>‹ká8ÜÑ‹úÊ2XÒ—I]gÿ0ñ“'@1ù»Á šÿÇŸÄ;–;¶K7¹ ë\à¹Ð¼øDò]?‚å$¾¸^ªaj’c££H§Ó!+nÁÑE1ŒC=Ë"ðÏça;ièìp˜5TUU‡ö¾Ïs#ˆÇP4ɯ‡\.G6e²†ÉöÌŸjßgá»òµ%#ž­”ùB0×lÛáø|ðn¦†p$\ÀtR(ä._¾\Û³7ùY€å0Ƀ@ü{W\Eu…¿}?ä?%üi "ê!H€j¥ ¥¬Ò¡PEkëL«­N´3±ju¬J­?e©¶J«ƒXQù¨H  ¼$ï½$///o»çÌþÍÜÉ.ûÒg¦/÷dvv÷ì½woî=ïÛsî=÷\À—F“\šäºÙj¨Mø}c†R(ÛÈ'j'z¹zq~øl«ÚËa?6ø¹|â™þxAç i¬y>³c¯¦ 6£¨0W_™cY7¹A… !¨8øƒ,;FÙT*×Þfþœ ƒ*Ë?†JÚM1ŸËµÚ( ~˜Ò$Tdgç²³y]}=i“FÿØÓäñB—~9ämcÊgVVâíIÔÖaȘxˆ)˜M€g>ók¸OV²ùÛZyíù™È¢±N~¿_7ɽR€5E0:.™=ëU• vŒVd7„β&˼ðÜ…[Ìïþܽ<ïuI½~©××ÝÄWÚWÊà3ᇠ¼‡ï»+_-ã¹6÷«ö×’F¨oÙËR9y±Ê¶§Hç+I3ňŽmRó}ÏeÑçþ.oò-’{D07ŸÆ )úsÑÜ÷éf¼!/Šž&`Ãè|1Z[M&ß.¿ tUVØTýýÝ MÐs?7Øä7ƒÔ¨N«|ÀdSÊï㱟¸bh= ,Ç0ex7Eá%’}"¼›Œ‡éÿ¿Š‡I÷¼R Ú‘À•ÇòŠr„£Q*4SKÀ”ñ0%`ÊÂ|äçåâ±:ÔÀ±†©;DóZÏLL ˜0%`JÀd¼óqzaîG±`…$ùP…TªÎÈáÚÊÇgg¦x‰eº×A¬³xÍ$¾G<;Šcy.ïtOïþ¿‰Ç>RDžc=áÞC›ŠäÔ–žêQŽœÞ%’Sç~wk'G¹ó­ÅgžúÉS;Šï(åÿAIñ7é.?b>¸Ë—‰wœ. ³’$I’$yŸôa\<º 3ï<£›þYr9Kî½îuû·Ûþôªaв"¦wk'¡îV›$I®XÚÚZíšòòòI74IN;hÐ`<»nbí¸ûžß£¾¾Ž=ˆ<©*‚dL× ˆ×M»º¶£“üYäÞw.e§ú›dr”1L°„ /Ôs“œNvžÊ ¡…†Bˆyã ÏøÎùÜÓš‚8胰~ý ؾíxæÏÏs°Ò¢¢"<üÐZ̘1S.› " –Jfgss3uÏ «P‘§k4ÚŠx¼äöjj ‚Íérrs‰DÐÞÖ¦› žë+òÜÛÇ ÏåÞýÚÒ–èPÝûÕ½NŽi½çqÖãvT·o§NžÄÍ·ÜŠP¨‘ú^ãçáOO>†9sæbjÙ4$ºh 5ñ,o 臯Ӈ`PÑ?Ø ¨š PÀ]JÃù FÑÚÚJeºµ—÷6)•þt—Ÿž÷“ ƒâÑ$Oe-9ʦM×ý3|~äîà!lÙ² »ßß…’É¥šû"Vƒ?þ2ÇH3È$ “E—µ¾­a²ÃVÇ¥—NÀEGÕÎXñÃU ¤5ÕU˜Q>[·¼FZ(X×­{ #Fóæ‚AÕÿ…7ÞxW^5á–0yèA<ûÜzìÞµ ›7¿ŠiÓf`ëÖÍô"LŸQN– ½³k˜€jE%rÃL«†i„þÏDÀ¤‡ú~"À7­Æo~u—„óhüˆÍèY³/ç}G:â1Œ¿øb6ÝW¯¾…òöÛ‰‰Æ£½½ Q-í=wÿÇŽŸÒw—ýÊÆ (+›ÆÚçηß›CöéˆF#¤}f`‚IQ!MrÈT‡›±ø»Kðà÷aÉÒeøê«/ñŸc_àÇ?ù)ΜEí‰Z–³ššjÜ€­™XGŒ÷è.( ! NÖÞ û÷G~~^Ûô úk×cÆŒÅÞ?«¯l@EÅÕˆ„ôwLSþÒ§aÂe®†™L’;o”4nÜ…šiô-¬{æid2«Ù„zù¥¿âÂqãÑjDW¢‹5Òìž(BcS”®y¬2ÔÜÊà™—“KixP?ÔÂû»Þä’̘^Nc Æl^Fi˜€ñ…‡L&•ÇË‹‹1rÔh¼÷Ïwpæì\VV¦a!Ö®¹`? 6ŒÍr@Õ·<æm®YÎ sÑ¡•‘èL€¨#Þp$‚Ý»waøçkfú$»<É1L(Hà™20Ù †4>s ‡£¨\ô ×ãÅžÃõ7,Ç»wóL÷Âk®ÅëÛ‚††³#™˜°TLE‘&¹mF˜'+-šûîåë}÷¯E¸¥`K¥xä(¼ðü_H³ä#Ôâöá#‡49Ü€µÇ±wïÇüž;w™_5çÛøüßGk'y2” ˜ô×k€)âÌ<“\Q|dvÓà9ù¾Ñ¬#qqmåbÔÕÕ±[Èâï-A´5ŠÇ}„áy,ª­µM3±®£´œ¿tÊTø|TV”7\Zª=£²–.»žýŸxü1š ÷°Ö¡ªÈH ªX2"SQ\< s4°+,(¤­eÙªùíݿÆ—_ÂðañrÕ>ü|Ó ·´héG²œmßö&k‘wüâ.–§ù ®á÷ÓO=‰!C‡’œqùD}0E´r'c˜Þ݊쾈˜ ZZZÈŃ„˜\5øØ…híƒÓÏRÞvÛÏx†3¦kˆ¤5®úÑM‡Ã,àåå³4>èš4MúPÖ –ÿ`nZ} ™ç”žÌ­L4É Y‘&¹Èã}¹W¬XÉ`‰„YÆ&L˜„™O^N–Éâˆ>~444hVÉBc "Ù¡4×V."ˇW¶D",O}0Å…PÏÅ­(½¦5û™¤#SÜŠˆO« ±Â@³æ8}ú$m54œ!GlÃQ˜ò_ÝsžÖÖuñ©}LŸ;"òÉll4Þúd”[Ô¤q¡+™I#MŸt+ËTY&¬E *9³“Üñ˜%l²(¯!nFKs“Á'Yd ‡[ô1OÐDññí³nE¢“»Ú›“>f¯Lžô1ü"í«S °ÔA•€Ñ¾F×\³j×®Œ²ìZ¸µÂG¬GÆ™ä|²Ë‡Ô0íò"hCàYd—#Ò6 yS„|¶¶ŽëLFû¦Á$?w?Lƒa_ò–YK#Ås·tŽå9vn.4eÂ0Éù^§>º4Òày_V(>sìC¹4ÒL›´—Ñ kÉ[tÚ¦"+‹WÅ­¯›=@EŸV$£qàÒzHh¬W;'À”þx˜2¦ŒVdZrœ?©òÙ…Òà¸ÎZe’ƒÃF"-8°ïSž-öûüPù!_ÏÑ\IA»3`r¤vÄç2|Н× ¯%gó*<¦L«O$I6¸-}¶ î_i ï&S¦9„‘•Å“¬>?cJ¯ß Y=^ì_6u2ΞEnvWC¿¿÷NJ§”"»_˜ºo(Ýç1€ììl°sn"A3|TVo&e~þ@öÁL$ºRL¹E…âG"Ǩâ˜^6•——ö * ?|-ñ0%`Êx˜ «â˜>}vdï·Yòt™ä*k¥¥¥ (<“&M„:}ú4»Dœw^^æÕKÄ~–+W®ÄÆ9:Ñÿ†$5 ½E’$m;ð.b/8®3Æ*¦óm0b=’[„î›É¨Q%'>qíÛ·wÞy'-7$ äû5kÖ ¢¢‚4MÖu !½¦Ô0¥†)hŽÿeçŠU„¡èiût÷‹ü¨¸ˆƒkÈê¤K6?D7QgG‡lù ÷B¡:•{!{K)]8\¸99„Ît¸„o×oȹa¥¾^×ã8bžg Òrݶ͘ñ]‚àyž#,Ë‚®ëøL†Äa³œ¦ I’ Ë2cØ,­µˆãmÛ¢( (¥°ï;is·ª*DQ­5¹â~]×R¢i”eÉwéûB¤iŠaˆGú´ç*õ>ƒÇÏßÑÃÿ¿WדkW ¢“Ù"iì„~€`')$mÚe!~E>ÀØBØz·4aAac£½……Ú(‚iDR$„„<9AÈ‹M³x@.̽\†+ÎÀœé”àËïFô†ªŒ] †aÀUƘÅbg ”ZK°Ÿ_žç”¦)ˆ1¶AG “æ|>'Ó4™ŒË²d’̲ .&XUUY*ŠÂ2i41IÎf3‡TM§S¾#Š" Ãå!ç"Š"M&äÀŠV–e aE._õ³-Û‰¬bæ÷èû0ÿú¿û‡½5ò§ãÝþÍéÓiÅ*”Ô­e êp0€@[êHcÄVuâŒmÛäyïù¾„ʶ°¦i(I„ËêR’$þêº&Àu]Ò4,Ëâóqã^äÂq]× € ®ªŠÇÁJ}8“ðj¢GË÷’°wíªAtò"MŠˆ’ˆ°ÿÀÛj-ø–VVÿÀB,,ÄÂÎ>¤ ¤×.`iaŸ”7o΀¹\!Hs÷ÀÊî …‡svÖå*ù·•&Ý0 L’–e„ 2¡Üp­ûjµúbs]×ù˜«4M©®k&Â8Ž‘yQtá9¾ï“ªª†!išF}ßÏÕ.,4æ°:Uyü<löˆEÁ6½m[(V\Oï5øòˆh‚ö›fc;ßíïMüD´bþÿW•|Y ƒˆÇak@µaÓu]Xò­qÓffY–©iŠ¢ˆ<ÏÂ6C12QA@]×Q–edš&ãHI’`.l?b:ô‚(Ë’ò<§ªª@¢¶mƒ·~O4 ÍÖ^’¤éœÊyn»ødïN`­ºª7€Ÿâø¯³ÿªˆÖ ¤ÒAT„Ĩ´Ö‚C•:• M¬ÐV©8@µB ˆ´ÚF‘ÐjÔ¦Æ`M¨¦ÆhÕj:  u@ÐZ'µŽu¬Zßo'_²½ÜÜwßåщ³’{Þ¹{X{ßw¿ó­µ×Ú÷€¤F¦P€ÀÚ³gSØ`zåšH]¿fqÀiæÌ™C'K PòaÚ„Á"õéÕbŽ_wÝuN â“Ä4ùÝÃ$õ«½¸Ðr}Ê)§0½™îê1±Ýgz×Xü¡Gu¶Z^gÍšÕŒ?¾è}íµ×ºV—ž‡³õa¶>ÌÖ‡y`f(íá‡n—ˆaØ%à:Ø[Ïpœ€+ØYÏ{|£Ìøˆ{|¥S§NM=æÝƦN)5«=òÈ#s–ÉUP ©ëO›6mŸºK+­´Òú0IpÄŽxjÌh;æý<«Ù ¤)著öÄQòÖ›Gù»ÖU?1]|¬‰ 8*LsÀ?ê&yt‹k`8¡SXîÁ æ[qߌ‚´ÒÊ蟇©Ý¡O~îmX±´™÷üg6üó-ÿ :CÙ=÷JƒÜ¶û×͇·|¹ÙüŽ×–ƒMI}ð5×\#ÔÓíèúžÁØJôî‘FÙw?=~ྣ_×¹ßU%ó¿=¤•VÖ]öÕfÊø‡7Ó'knùû­Í˜ê!å÷?´Y½é²æ‹æOè0ɱ¯[½*÷Ë0å€ó[ú½äA€Ç‹r€9\&Bî…)bSÝÌàzrXŸeÎä~_¹äа'1šØð‚ †rý]ClP ˆ?ú裛cŽ9†¶+Ö'3aDÜ ô¶éEï‡-åaÂ=q饗ÚÔ*fNr¯%¬Ú§‰¥×I'$Èß{™{Ø*¿ogÚÇOÜ °ôUEO÷k=X¦O-9¹(>gúßÃuûöí%.vÙ²ebcˆÜÚµkÕOÚˆ3}ÚLŸ6Ó‡Hå> ³Ïx(§CþÊ€(ÜÏ{ÃÀ¡¸K`›v]룽{÷ú2 H/;ñ»wïÀC=¯)Úä^®3^ †¿üòˈqó*±œ;wîH]ûJÉ—] è–-[J°ü¶mÛôWÀxýúõy€x¸¸/ÌJú§ë®}{õ°Ñ/Ÿ° ­üd% ˜³¹ËŠ¢ctQÇx²l–%›*cèWbSŨš+].ºè¢ºnJôqÝy ’õ’v*ËÊÚÓÉ<€#WÎo†tÙ´i“ /úª3ð˜mi œ* ÚgdT¯2 `Þ?\gq?ï¤hc3' ³k ¼êª«¤=úâ 鎾€…寊]ò¸\Ç/éžÍ$¬Jh“11:÷ˆp# 4qØö˜N­¯úBÖ¬YÓlݺ•^²€¹M&q @B{ýk'¶´kßÑÓêz=ì°ÃÊ{míö¯[·®Ù±cG³jÕ*@1jcý ÀÌž=»9ùä“6ôŒþ%»é¼óÎóÐ)óŸ4iRsÖYg%ãÑ'ë—”Fm3eàÏ—Râ_=­Ó9çœCOã°djñ-—Ï`Μ9ñU+é«-m_ÀÖ~Ë€aE#J)R§Ÿ¬kØ>MË—/Ç„˜8qbsì±Ç6›7o$Å^²d j…ÓO?½9âˆ#0H¬Tܨ¼t÷ £\¼xqa5õfÐ…^Ø\qÅ€§|¹ÇŽkS+¶LÈò÷%—\Òјڮ]»š76çŸ~sõÕW7«W¯fŠûU»ú@ *–Ä—Š*À¾d)yë*ó‰9š ©SO=•;,1¬óæÍkN;í4€TøŒ3°p)ãÒ³¬Ñ™gži%„kéÒ¥þûŠºV¢J¿'žx¢S›8Øà?aÂóç `é8â0ë%íÕš[gæ7à$> ‰abÒ\ÆŠI¾_aEmXQVÔÜq©‘½\Â$ºú!€T÷ <  £ÔFlÛÃôø'™yا÷€ D2€ ¦%_9 Äc†q^y啨Í6lÀÕÜb>º€0+åă¾Å4Ÿ?>àDX²÷Å{bŒU «±£@P0×|ö$ˆ{5Òpb Öc¢t7g im*À5Wæ;·Æ6ë°ÍE‹5 .lŽ;î8î£;kÀF NyÐB ×+f,¶Öß ¸9&&?¦vLH¦'FD°#¸€€ 3¦û¤q½µb‰úW\óE®X±BL øba@ˆð£¬b&“ .¸ÀyšëÕ^ôÁ`l,“þþæ‡V€1€h‡X¶æ)×>kVËT5žq¹èn>Ií¬w)^òøN®é¥¿Ä¹æ~vϳÖ×iG÷˜â#Î%×—³þâ‹/ÆvÍÅ5 !ñ©Ñ?mºí8·¹äm.ùc/G/—|ÐÔÈÑöa çbb‡]ÃHÔ :Õu™Õ ‹Ã¾¤X J˜·çž{nÙɾá†Úc9NA² Q|Ž'œp‚>´®°p„œº|Ìà33(s’IÍ~E&p²˜ø[±RLèb“å8¹ë¯¿ÞÆF<¤$^_ÌS¦~R4•°L›3 –KWÀo¬}ŽÐ«Û)Är#œ}öÙÎ µQÐë8ÚÔ7ëܤ’&¬iPŸ—þ¹ l’9ß”ÎÖÛ™¨|ÑÑ5ºäZ…ÔÈÖ‡Ù¦FÞÍ|˜€¯f8µdÇ ä[³ÁãKÆ|“SDðØ%`ÅÔ€Ÿ…'Ož¬NÉG'Ìkà†)MÒ†“X¿@ˆÙ°%àý—k tåÊ•ÀÛ}}GþSý9 ˜ÿÒœ^ t€¦Ê·ª¾µaó¥brÀh0ñÍ‹ÉYÒÅu½Äg«Noîܹ1smêhol'2¹WjÊ”)|©RÚòш ®˜÷ÜiÎ.µ.#”°]î §Sy@ÑË6ëaƒÍge³ÊšÒûNéÓJ+wôgXZÏ_‚Ã@àÈbz€xh©5ŒŠ( ¤× ØÌNm¤ÎÌõ¾~õ‰YºÍv:¢/À €ÒF=:¡œ ýRO{§0…ù©ç{Ì\’.¨nÚãï­ƒ}ÍÁXaµê$@ŸŽD\{x¸Î'}œàDÄ‚bóB‚¶:ôÄo™5ÍzYó0Ûègíuæxg‘VZЇٌ¶3×]ëÔõêìžH•o°Å>ówÚ%'ÀðTêñŠzÒ®ú¥¾¢ïzLý¦Ÿè›ñ8ú®Ç–u}R¥É<¼Öu¢[êfž7ºf¾Ñ—¸—6\ÜÎ%Ũ­c7ú¬i>Ÿz-2‡<̲ŽuXU¿~­}Û´>ÌÖ‡ÙŒ~¦Ï=ûT#fsJí°¯ßë'%*õ¼Ö¥gzT~Ĭþ‚8#£sÌ·@Ó_­c§î¤Ã70ìì;¯iÓ9¾2\n|7ý9’­W ]­_ýZ· ƒ¶ÛÄ5452Þ –‘nŸ?«WnŠ~S#1ëÚ*0ÎA›ÙþZ“LŸQ—1:¾˜à˜!³í¡L7&]ŠMf û ™û½Š:LM&lÚõª/xœÙZ÷móÀ½áÆ3ŽWÁíLÌd‘¸×ž|”ÆÆC÷ïÎ%ŸM~”Žvú³nÖO±–úïõy‹T°YgãM]÷ê¸ªÇ ÆÔ¿iæâõ +mS‡Œ9¤\„aþ—½û­¤ˆÃ~öÞ{ADÅg-„»Ó( ÖX°Ë)Ê%*v®¨HT¬ØP¬£ŒEР"*ˆQNEì…³÷Þù>–W$ÃKvà±/·7ûvgØoþåûþóߥ‘€1Ûìé#~bQmZµŸkJ´üHß===9%ÛmWI–k5-¾ÅÐd¿»ºº¸š)OW­ Ô¨?IBº‰ÀÁt,϶QÛªF¥ ““šc€‰<ßÐ’a‰š'ª,! [/ë#¶Ù¢¥b¼kJbù®˜Êä­T·ÑJ#ÇÞ%w¬V+*]×´¦xé§_CS?/`”õF¢F:wŽJ†Âm‹þÚËR&@L¢CÆ<²Œ¯éã¥LMÆ¢‘ÊNKNÈn“ z‘³0H<ùír,J÷½¿£ŸçâúZdÒ/ ™ø;y_ò2þŠ q¤/ ¦""²ææ#ñMntªá§²kưѼV­ Érš ?Öbi¼'K^W+ŠK>>ÄuǦIÑ'}Ú¯eòUÅAx±ú¨hRîŒGõÃmt)ÚA†'c­tš}Êq(¹j,4 Äw×GµéîîVÉ “Ú®—‹«€ã+¢áEÊÄ+Bréz#{ i€?Éž•¥éРü=7K×o¨ B<.dî£S7A `²ôð:ÓP¨Ð‰úúúŒ½±C-‰³þþ~´/^'à“±·_¡2NÒM—# Ågµ¨™c 4ѹŒiÉKlIŸz´)‡¸ž–ŠB­VàÅ(ôÏJªá/²L¸õÔ#¬ ûš#¸#‚1G|Eq4´$‰´ñ;)o­Á;Vë"Ç# LÀèvÞK RË‘š€æ¾½ð·Ð½)_ÆÚ%7îø’€øqÀÈi­Ý«ó÷ô SÁ‚”:¢ž˜égì-bBöfbâÄš‹ Uoo¯º và*nBf+œ×*™yá Y47ï¡Ù3×Äõš¸þÿH#µ± ÅZã:UQ²Á±äôÊæ¥äÖÒ?KèPûè£ØpåŽhÌ5»Y¦È±X<Å TyeÕú–:ÜD/³êFÀ™u Wí’×Zòömü]òX“qý[Ó:™©YªW€neö²‘yõr–/K0j¬6€DS>ŽÕKÅõŠûKRF1€ ej°~›‹™¥>ânÀÏó¸ÄOžßßKdœ,àP”­û´€°¬Ë Ú:Ö%ϽK¼ 5øcæZ¨YôÌà®XL…/Œ‹¢Èñ8Ä=8ÑÌye­&N*Y<ÛÜoí’×.yÇiÉCK-yUÍèÊÍÑKm²VÐeù[Õ͹¼ˆ-U6e€[ÞëÒ÷òß%nÒ¨‚¢ý.A%µ=}roéÛé.9‹Ñ§÷ò;ÌdNõ-ÇÊ'‹húñ.ª2YÇèé}Úºãu«Û¿ìÝgˆEp/öÞ"ŠŠ"‚ X°|QA‰ bÇ¢øÅZPP¢X±"V‚" 6,ˆàOQìbí½$æx`Xó/·{á’Ü ,{»ÿÙ½YæÝ·=Ï;|Ч{‰Š,ø¶&y9^ Ó¤ç}š0Ì^0¬üÖÆÕ¼FËqHØ ¸Z?hö˃IžùëÇ%°¸wМ«^ð¸^ï|Øÿ«šäµDÅ’ úÄ4œbokjP9?¬7"hq%y ÔÆÜÊ=¢éŒ•bØ{¶yÞnã ®<î2§¥+K*7û¼`¾Çò¾º‘þ­ë¼tyŸÎ s¯¶î„6ctùº¬I­ýXÐ]Ãì€ô™¿0§ðëýF; Xø øó˜WÃ"}R§Gžb¿:Ô1Ûbë+©¦ªÀ>Õ5‘Xç~˜î"‰ãõ»ç°×/ëHŸf®-_£9å»-…e*iBTù85Ç®uÉÛ!}*ùÆ|HŸî5}ºÔ%'0š[ã@þìûnj}®l¡•€Ë©)J-ªJ@ëo‹Ï+iDö%­˜kܯ¤^Ëqù,úʱÄL.EyÂ3ÅÇÜ+ZRî¥o|gŽ‹ç¯[ò)¡ °®§”ˆó‚}>„R»ÀMs~<î[·ºug+êN¾ÑÏŒÎñ0êx¶Å—×…êK5HÔ¡ˆ8ˆM“0uMÊᆩ\dU(¨‚²Æ^^f&5Ô`P'¬4Yi Ñp)-®….q¿Ô<§uZð„:†vÑmZ”1ú¹Ú˜_Ëlâ: Ò¼ÀÏš5 ÒÇÈûñžR()LCÁ›·4kMŸ²U>ÌÎäÝÓŠ–P‹óu ©¤Ú£Tˆùy9 }7f=|1b ‚•6É!¢Mjmhú§PÌ~Xsp:0=M’5Á*­H.&È¢ȼyóZXu÷§e‚ó©óí“=:DíSˆªòÇ’ö}ÜÌA*Å*ä$\"ãź^[mà }ÆèÃd’O`#d’t\nÎL%óm„`g´ØRl ž›©Ž½ˆÙ —-Ò1áeØdˆ5Ài§rÿŒb’Ñá”±ƒ_Bá$¸D(ÆòûlÕ P‹\i_ù•°ÎÉ÷œÌ-sJ³÷qt‚÷ÞX´sïÄG áFò0ã—^[mécßé" &µ…e±4K´&ÐB( ‚QZP$s „ÿËï‚NúÁc«\#ølKM:‡PvMêÎ0½¡˜Þ|m4GEžÀᬮ{F{2.B BòÄóÆÐ™£-³HŸ2³aîܹ‹\!3fÌôñ¾ ILB‹\(³gÏ&8UÔÄ@¸z'µjdEúŒÒ§{ZQ÷ºäéÝR—†_+Á´Ôw¡‰T„!“š‡°Œ/ <ÿ!Í‘ÆHΙ3‡c"Ç0Ȝʄú 4”æ>­ óŒÒ5¡[‹_”9oñ :y&¿©wãZPF‚)‡ó“݇™äq.H*”k)膕ÈÇ5Ÿ9¥Òö‘ Ǫèèì>ÌêÃ\:‘>Ì'š˜ â‰&y¯qCbT̓&H[ô;AH[a"3½k\Š(€’G:ç7Øc¿—&ƒ.AØß1ã0õc–óµYäÈ!hBèÃE¼—Ó§O§åzý ƒIoRÆBð‘A@•á8å|}øø‹iéÈL̵&Ö7Í´Új[ºë’G(„Í<̘ì¡#[X"T@†€#DËXðÙLvö„¯=mÚ4÷dN§¤mê|ó]ZÀI°öL‹4Û™3g†Q‡~YÔ©;n|çlþŽI9Y[êÉã-ù¼+Á;÷JÌ"Ö¡÷=Ž~ÌÚj›°ÄõÉÒÝë’÷¬IÁZâµËr²ñA–ØrlÜ£££È[‹7cÙ\_>³Ú`´Ûäl–( ­bÌ\—gÔ§.úX Åœ”ï-ï*-µåÓo\Zmµ-˜° ÏH× Ï $‚m¼®ß˜\‚E¨Òh,´Mçšõvš}!mšÏ3 vy²}ÚW£§{Ч}jÐgdÂèÝz&®çÆmèÝJ­¯¯£7(#-tn=°ëkb *Ie{ùQóü¡“KÍ"þMæ¦qš¿ÕÄõÿÏu渙ÜZ¶ñM\¯AŸôYÐ=èÓš­ˆ9?uêF }Q+7™€ _Føûa]{õãßê‡QmJÙXÍkšÉÏÑ.]›ãfŸŒ•}sR˪˜1)ÕÂ.R^挖.…&¯ådÄ’gž{ÎcùκcÉ+–¼VÔit‰°Mù½û ­­ˆÂ|½öÞ@_Ä‚ÆQ±`‚µ@⣢Q,(&6+jTìŠ16D ŠÆF°<ˆF,ÁоlØ{/¨X ߆ ÉÑsO8Ù †Ü3gÏœ}gÿךùÿµ€B³öwö «-™ÅõÍÖZP#=D,WFB±²ÔÆIu-÷Ç¢ûNÓ_\’üÑœ%J<ÅŒ‹'[àõ‘JFÕcŒïŒ (gžÜOú—JËÚá¶*nf_YŸ–uF9RU²\ëmu«[áaÎÝþ«-Ÿƒœ>çf‹„w-×4½6¹#Îåàà °J™ZœLô!Ò»2 ù:=ª8×Ì'‘†¤ùm33ƒÌ.jðôLÛYR¢¶Ú4$tû“¥WN#€¨@Íáo…òH,àÉÛ\tÊáX*Wk>¥qy.šðˆ ýx“lrËîînß íýï•—ØóÞÞ^^&`Ìýkà÷xKp»§§'…½â-9©w(äZukÊòZÇŸ’'`¤¬Q 9 …”µörñ2$ŸTqÓsõ‚¬¥‘µ4r‘Õ%o™Ý<Œ)‰ìåg{‘¤sBä˜ÌC@Ò¾ÏÏþ¤1ÀRÆ"¥Xy›ò,+ài2õ­q5y‘Bs!3}:ðr¤‘¼JÞ­Tq²%Ùe´è²%F€mnɇÉ-ýžîÅw:%`+œÃŽåa†¦e½x–Âñ˜u–±HåGûɼMÏ!Ï<ãÿfÍì“o´ ôiÝV4„ÂapMë’K¥æßÀGãù‘ÝҩòG&às* ¯p ³$OƼJ³¦t®ky“ÀÏ!“y'ý9@Î ×I.Ý34Þ}‘úÙ.ห«kÙÈÈÈ2Æ“ “J†ú:ÙÂ}u@F_ŸìëÖÊs£1çeJv­ x‘¥ÔGÀvBò:$¯Còö×ç;$ozã™# SõÌÒ° øNLL8|áµð&«„tó$½œ1¥%Ëj]t¡%@•Dh@Ï\€|Ö¢£Ŧœs)H#ó®†ÛUP´v ’×!y]f·ýÒH6˸V<œVÊ“–$ðòa¯œÙ®Ÿ5éGUrYU-8Ìqb^X ¶ÆVUñ´Ò¿4¤‘ÍÇ¥¿Ú×^idë¥d«KÛ=ÌÚÃü÷ÒÈØ»Ï;Š$àKÎ9L4pgD™3"ŸÉÉ$ƒ‰A&ÊÀI„ȈœÎ¤&ÚÄâ1cƒIFˆLΙÓïIÔ½ÝõÊ^=Û–F;Û3ÝÓ¯»ªºªºB/úÌÎÀ‚ÿ“yÑ5Õ®‘á,Ò®Rò^³¼ä!v]òH»f޶t›ú§Ã,#êTõp¥8™,–•E¬ÓìvçCžó±¢Mæ×4û~àÎ;ÕqO›c8ÿÔw;ùޏœ¬*¨sºs,£ö“BXtDrIÛ¸FÖ®‘=¾Ñ{yɧLù¸š—œNÑHò’g]MTÄ\€©]wyÉq1}—ù­!Z¸Ã’¸V£$ö²A2IÒvš{Ú³¡ô»>ƒvBÅs•;N¿U‚®®í &]sÖA(<Uˆ`ŒÛÇŒÓ1pàÀÌYÙ¿ue~–ÀÎYsmó<ý•’BÖÜ:æ—1¸Ò wú÷:UðÅ~ñ Q,Õ+eÊfêŽlN¥1#eœ×–Ì:/yë ×§Uy¢ÒeÛ$úí\€_Ù$H}?m&C¢ ~ÁþQPr—÷ŽwãK^ºRBÈ 0 œ˜}  ×N??„‚øFôÚ3WçY íZ¢’à\àÀËÚ1/ʺYWkdÞÌ­âž™›WÏm”l\¶õéÓ'‰ùÎ;!^î­UBúvŽƒ rZÏâ„~ƒxÚéK~¹k‡±:Ì·Œ1mlÞÙ(m´Úf\œ80d¼-ñY—)/ù´®75䮾”#FâÄt‹è‹ ?~|‡b úöíÛ1`À€ŽÑ£Gó5g ëtQlx 7NN%&eˆ”:ëÅlLZŒ$S“\|k,WVi–Áˆç¤©R\ ë9Spg•DÏøÙãÆ{mü°©O¿-™Neå"küìrKUB»ë0ë¼äaK©mʹFl#FC.䋘LdÈÒÈÎTðB,ÄW!}.Û?„‹¤v §À£GþåÄ1DYsßdˆ0N˜0A›†Ø5lØ0ú-ϵ…€Nå%Hãæç;'Ÿr"}Û¦«fsb¯êÄÈÜ!jL²p}Ö„9 Ö¸N¾ú6¥¨GôcN,„’:O°ä‰á"ya^c~† Ûp9 ØÌ½H,ÆÃ‰í,‰7jlª )¸QIö´;v¬ºÆ¸‡^q›ߨÀ ò}þó ‚Ù²R—^ðôi]´(ûíÒ&AÃ%$Û ¢6iÒ$‰'ÏGΤAÐŒ TÜŸ8•¸P>ÜÚØõ¥{…8CÀ¸F´óÝú`TÍ“='ÿgˆO×é[¸ã†tB–ŸˆG §Ã(¡Î†Ò–%zj™ùC„pfÄssˆ Ì„D€ó4÷ˆ›F „AÔ7j#<»Yþÿ6DÄ“Un“ä‘,£¥¹‚æ;t‹6ÝpŸâ°Í¥›ž8q"î Á»6FÜeT2Öߘ˜–© ŒÇK=6Âm7^›ºú6Ø4ëœ>½ž B"îs8½jš]"n°µ ÎÂp©ƒ\êq"œ+$î€Ë$À‡„ˆÞ!CþÐa*8ï%NfNQË8—žC®¸3ªK²4âÒ>×:+F|ä37íN0+Ü¢‚“Ämr-E¸’f9ëæ·˜ÔÆQ™ø?ibà𬉌úÐÎ"R630”M9ºQýÙpÝç°'ÈÕúÙd…çKzeâ6ñÚæj|9,ÊørÐX6é䌚ña .=ç0[Pb4Ž“Ø¢Yäs@ío¼7¤{"2#jOÚÖD¿Ñ/nF¸0HBœâÒHt"rõïߟxÍ™^LŸ'á„“î*A7|Ÿ¾”¸æ»8UjˆFÄ•BTÏ!5nÖ3ˆªÞXÚa²næÉ!ˆyÁÑû‹àð³OæÌ—:ÄaÓ6QŒH 1œ*"Ç›‹îQ{}"T9h*Õãhm°ˆ!BKQâŽI•BêH_àÂ6‚3j¢;xïØÌé¸éXý6é–ý¦‡+p÷g?¬KëEòò°ÁêÔûò@¡Óè ìðꤻuzŠ€9¡œC?ôMê *¿r\(ݘn naèС¸ ¾ã‰l„;ef„ã‚ „Q§Ê­_¿~Ät„Y_‚ ܈«vúÄù ´¼‹âÔö¦M‘*#Þˆ—5Æù‘FŒAÒpàgˆæDhÜž¶ÉàYš{5ì¨Q£ÀˆMÍJò@HÅÀ]J•ì{•ÒF_NöÁˆç—VÄT„x0&XDÈõíÐÈïò›Á`T 5§©Ô"ùt!´OS Šˆƒà9ív…º㤙Ð’!t”ïôcжÉUàÍ( ö?ý#‰8‡ãq@औhnŒk@2‡ ô¡Ú:15#^â0 ˜gújWd‰Ï¼MÅ: ”Y– [ÖÂMÒýšoõˆŸ~÷žkoݬ‘Ã=R"«?sL÷©]œ |ÛZ ˆX*áõá»igÓÓ—1àD:YKÄÛ·q›Ö7ð‚¸Òg*ÚéOß6c ÿŒ:¡Mu˜µYQ/”nM["V!ze$šg :Ñxð$6fê3Ž4Hì w£÷ƒ¼A6œÎÈ}ÄÅDLrØTz®ä{!â ’¶sÉ\V確žy'DžGœ7—©W©=륤®G3"yS§‚ëi'ëkí˵,#g•0Ó±Œ9;m’kªMK—媦Z¨ôÓ­§Ò‰›€ ’U=jʺ¦ S—>]IñêŠÛZÙgé™SÖ¥ï²^)ëÓ^)ûr_»Fvd.:3;*ßñ·êµ“úòý¦žTéóê÷ËRö_öU®_ulJê›ÀXFÊþZ’5²öô‰kd/dìá:1£z•™s©ovyÂU¾—º˜‰Iòlz\ô¤t îõíTÞý_óª¯úª¯®÷( ‘üÿì]9 €0ô –"ZZí?ćø†Ô>ÀüÖ'x2ÂÀ’4-3f³lR-Ë “Ä6LXûÌ˜Šš¶4(™à~À3}æk 0‚˜·ÖBe¤½Ì³R†~b'Æ»8çÀm‚;ƒâùŠ<"ÂX:ŸÝê=ÿÜà>´ã1ÎZz¢Õßøê|N³ÿ !!!/âæÃÞ‡z:…qŸÕ¾ï,ÙE“’f„Kn–‘½Á?Šh¦±”BD‰(KšÁMÍb ÍÈEÙCD„ÿÌØ÷µÏß:ÜÞ;÷wÝ;ÝÎS§ß{Ï=ïyÏûûãû{Îó|¿çéò0G¬ô)L(µÂ,ÜÃGÆ—÷Eú&¹‚_)¡’_ñÁÁA…ÇΊe(eHËg”@ýŸýe+.[.x¤, «-p_ƒ”ñ©#^YBåsón%àÖëÉ\å½Ù¶Õã'Þ–¼{KÕ±¦Î­äš27ºN8j­]ßS½öØømÉÛiEÃQútfÉGR—\ €<¨n€Þ" Q8Œ|- P¿`ì¤mølè@F]qzpœ7%Xyª ¶Ñæ2¿J¨kÃå¾dxÊúìh%QæçES%%í½Ý—úENù¡S"Ƚ£aÍš5ÇfZI›!'$mä½!z.rDäîT “46œH`Ð$u¨$l‰Å4õÃi“¤b$ŠÀ’·iËÍ㨱HãMÚ#ó4Y2ñ‰)`ò:ÅÕx†”ÖVzÑÖhNï!c_Ò¼3™%/9œÎÚŒ P8 üCã}5P~à]úÞÄVS l”¨èÛûš:Ƶ"h­Zo1Ìžê’§/¾$Od²õñ8mm1y_u‚(RG@"~çÐãy]ÆéGBw_2Ë4Þâš<5ñ?‡!«Ú#5…í<àÖdmÀ/'ñ0{ZQ„˜zï–—Lúèÿ¼L–cº€œm¿{sxï“T<ñSšä¾¾>ëxâ¯äuîçAòD½/½2pÎöž”Îû:Ž']~Ç¡Zl$E³Æ¢Z+‚Öê’ÿ¿ev–5ÀÁ[c9uX¢Õ9÷ñ`ÓÏ£”mw €Í%É200 ¨Æµyv””60‡£½Ì'~)Ãîp ´!ñFk6s¯kÙw€§¬€ø¡õ (t–1䘮…ô›Ç5oØ91 P*€ãÉc”¼âÍò=?éÕÍ™ÒÁ@¼SÀëÝKR|Ïfó0›‡Ù<Ìq*‚V+w™x]ª(êOA1€—ñ5Ø"£±Zm¡?VŽŽZMåq ƒKé[ýXæÈ|õµ3µúɵŽf¼†Ï©Õëámke?¼Zµ&[z­?¶ev›‡Ù<Ìæa®9­h˜¸]~ò yoj¥øLK’cÈúâ‰éù¬½Ûu[e`âÚg¶ÇîÑJi\ú% ÜÇâùfëŸñÆeLJM”s—Ÿõ÷S?7sæÝ\»/ý±¬§¼¯oÌ(XY]³’‹6««“&d´ÖZ³Ù»ëX9ª( à +îîî-îîîî.Å‹õ¡ÁŠST‚6xðŠþ HðÁµHÑ%¿„/¹¼å½nÛdžì$“Ý7ïʹçî|óÝsÏ™3êGÇÄt¤ÝŠÆê¾èZÃ/n;ª¶Óz+Õ¾ÿqèKò?ÿ^›h‚nµ—Þù²våOÖ®>a—DúŒŽ#,´‰Újü(ô›áˆ~£GKý?:òš9gÿ›lÌ5ïÑ:ÎéÿTmɹ¦­-·ÀŒµ¡¿« ü)ß/1ÉÄÝkg^Õ¿vÒ»ÍSOlg˜Ï|/ÿ™HŸÞ 3n½è‘|ïTš]§å»6+G{m–Ñ1aRü$m iƒ3ïCl$ª ”« U¬—3½ºÜH„PR¸ve^òä=’šÍ” }Ù¦o›KtD7ŠÉÜ8ØX颓:íh¬]é“L ƒ ²ÙÈßÖen`¼ØÀ€Ð™HÌ´ú»mîHŸV¤O×çôI^ò!C¾Oá¨fò™Û‘õð¹VWi>³©dw;`kgÚF‹Ýö¾}ûr÷q½½¸rg€6ò—@Ö@7PÀ—]+qªàŽÿfÀŠ£ºù|W²– ™”¯²ž” û)ó¨—±èí†aF§y÷£ 3¶Ö^½zÙ…£ð(cßµS†’&—w"’¼ÜWª[åʸ}gÊÿk<|Æ£¯*x”&„È=•ã^¢S×ËßQ—]•išÈ}‹¿«&("¸øá Õ5¾ÔM½ê\ø;iumòÄHßNår–ò”ó×|€ÙÊK>ÆB#ã9ºN퉲R*ÇM ˆ”J¾ÊìR ;çLu±,MÊ8ò¢倊ÓH˵dû“½P²+HüD´ö1íi×!âÇwÀ-' ;.»¤¿µ­MeWÞŽ>¿UõTy”²Ü«”÷` o2óu-zÒNþÎxr&‡w¿~ý¼x(°’eäíñcÑ– Ù"‡k€×¼%?}~Oy˜·kÚq]ÙFïŸÖÙ8¾Œ‘ÐÈn Æev¼ËÚq™ò‘u—šÉˆAb;€8ˆ®‰¿&“¾@,»¤gÀËÁy}ðàÁÞ¹ñ3á’œá–ÀInmñ£T_($ðKô_K ˆ©H°†+£þšÂDí¶sÂêø‡!~¤B4"'w²òë©M@†ù ùÔ?¦L&QLndKjòë‹K)¿ ¯;ì€ønîTÀ_¾"Ù,%€Ô‡¸wã–žÃø´o,È@B6¬‹Î±e€ˆ¼¢¥ø¢J5!ë&—)ådâô ã[ 8Ìr,`у%1°2Fó <-ke|ä;+ŸXz©9“‡ ö'Š äVÆDÀ=KÿÚò&*c3ãå~F÷Yf‹UHX)9@ÍŠ“ND™]ŸBVõI~;¢½è–p=ŒMÎrAؤ,‘t` ÉUn®¬q ºææ¤ wÉ[»äŽÿ"/yÝ3Gß}Ö[jg¹S—êcBÀƒÿ#à\š†‘teLÂ*áæ÷C¶sL0uÜ`ÊW1àì{€Ô ´0@ ·Âü„G’Å ¯MÑIÚA.à‚‘ª«€Î¹¸Iu€¡ ŸŒ ‘È'`–¨# ¨•~–{äÇFEi“±”4^¹…ô#0I(ªï)πؓƠ;¿Qc’  ˆn`(¯ ÖGV9sœ’ÄallÃ}úôŽ€ˆî¤ÁéÛ↥©>’2d’Þq»JD—2ÆäÓ;åÿ Œ.°˜æ:sªž>üý 0~º"^C7 µ¾È€I&ê̼Ð9€› 2û0ð%ÝøîA%ÀÁ¼ÐÀ %ó¬,柫_ò©'»©ùÌä4gæÎïÌ\a?Ì–¦âMé3ú¦2e¬uyÄV•T­˜RlKâÐÝ$ndu±;@!—hàà,C-O©ÍÀ„YZ‚a‰À ;1CŒEü9xìÑ&¬@–ƒ;– d0"Ë4ËS‰ý1 ÜÉj9›üÕÀ]6J‘H!yô»°&3–øŒ˜c€Æ&€æüîÊ 2ûN£zÀ‰Œl–l¯tœÝä–”úÑ/¶‹¹aMÀUŽw¶NíˆÅÇŒ6ÐRHÅÜ`¬>Íóˆ±bÙþ®nž%ýðà‹šÜñLN¦O¾¼@S¥Cí©ÐÈc~P% àe–ñ ææ#câÀ@›?ùá͵6Õ3gÉác¾D‰)Çü€iYG3oZêxˆesÝbä“c ó‹…Ó™2ìôôUlž6ÃlEú4?ÃŒéæ%”ì?ÀÊѧrØPÀD%@ÃW“X?yaÉ!ƒ©aOֿĘ«Ù€+Ì€e$`~ÚwÄ'Ty@®¾3z!3ÐNÙ2ßK{‡vÓžvbgÔ¶úN¥e‰¹€Ðó†HU?WLʘʴÙÌR—N¤‹U†>"CŽä wMdÊ8é5‰ÍÒgu§XycÇ€Vîa \=s”qçЦ>+»õÙlIÒºØc*S‚²V$t–XÿøÖÆ‹"m•¹œ¢s¶b'fìAê¤-:ÐVuƒÎõè)gõdn«Ì¦‰f‹avt4à ³Â:§]­Èâ˜î Ž9È@Ȇ7)S1`c?UÇRœÝS=e=ñ-Á-£°<à¡O7;!{'ö‚™°+' ’PO›mmmNv=ËBýæF(laX‘jïÌÌÍŠÙ`•–²ÚPê%ÿºþ•䘔%¤ï@1˜¦v1"cÆ}ÇÞ´cÙPŽaiXp¤öBf ËIò胎•ñ` ˜a˜TÚŠ~-_‰ „K´\ÆâF`˜&ó‘ÕÖ͆JÙXêÝ»73vÇÆ |S7¶_ß­,ÿé-9Í韱K¼0â¼ØZyãHFÐx[èË’[:e¬g‚Á,-ÛÙ¶ýVÔÕFùËûNó€ÈdÐ6ï¡« sKsÔ|‘>-†Ù€[Q×4oªërF-ÿ°Là,ÉܤØ%û€±'L`dCÆrÀhÇ &i¿%6¢-Ø+yl,X^LÈ Õ&§õ€½z–ç˜ ¼d²TbìV˜©%>°’ÇŽå(+Ë–¦œÝ5Œ ËÎÃÀf‹å¢ €AstD˜'¸Êcb–¤€„y‚þ€}ÙBЙúIg <Ìv›kÀÌ•:ÚOÙd_l7Í®ëÚ÷ð1?Zy‰qÒ=ÓaœÓa#E]óÂ@äL–Õ‡±XúXr‘3@2Õ‡¬ì›æÒ†NX¶M2ѥ߅ Eæsàw†ÑGßt o¿I¿ cñPT–üäó;ñpô°W¶QFÓ:ZyÉ«ŽÀu³šj ÂŽ\*X°Ìÿ•ÏM•µI£œòy}Ü@ʇÍOlØYÞašñû ³jl]꺮-`„€ ŠèO¿loúðÀd³€ì˜\–s@Ú (ɬ¼úØ—¶‹‚¸³dìaâù4võãîCNâšúÊȎ ±éfYª/zÑ.yE| 1@×Éaã(ºÃì€3°ðäŠ<™72©Fèá  Ñ» 1‘+¾¯1oГ‡ÝèOûxm†ÁÛé7²*dÎKU”¥ýäUzÉ9O^ìT›6“0ͰYcÔ^~C˜¨~Ø‹]Ó.àµD+` ˆ*ýÅŽù7{ç®I…áÖ¯— U02˜ÌlÁ@0MÍ6X“ Cñ ŒÌÄtCñÄ'Ø}Áûý~ã >(zfhmh¬Í8v[uºŠóשSþç|:f¬Kžda¦ß¯É€ ëQkŒŒqJ Õ´l¦fÓÓq›çVŒvúضù=,°&(c ö „ÿ˜Ñc(dÇøÐÍ< èAÌÑ~Mw‡§èé²ÀÂ}QvŽz†Œ'Eqël.R½E}mŸ¾ñªÕ‡Ïpë­§'^=\dðÜðñ lŽM(ö8fÆ]<õC´ 1–›1NÛ”}ÄÃ4Åyógõ`9H£/v7Œ•€™_ 3Æ0¿$pS×ÈD\òÃdmk;Yž›ÌÎôùøw° ê¡f¡F¦SäÒ)~ì;Í£%ĶWC.L4„÷ Jõ÷¹ŒEнlƵEÐ\çðÉV_þzŽLŸÈôÙØù—ü¬ö'£Õt.ù⟙á4.ùûïÔ%Ç8R®x ÄMͲ^ãyA*&Ïí]Y8=øà]üýg´3Hi‘ÆÆ‡xÈ,šÌ¯c“ß/ë’g–LuÉ+•Þ¤\.D––(Q¢Äºäùú؆‰J%·]qKžÒ^®ÙŠb]r%Ö%Wb¶¢º’odÉVôÆÞ£ƒ0°ÿÿdÛ¡[Ao’Ù| '\šöL@Ÿ6‰ÓÜ Â}¾—¢BŠŠ:ô‘¢bâ­ˆuþFÓËÞµWQ^áoonBȃWÈ‚h Fì8†жµD˜R¨L[EcÔ™j;ÖZ^ ¯¶òh;U(ØŽ«("ÕNŸK Ó µÑŠáM[ MBnî£{N83;ó·»ìÝ›ÈzÏ—ÙÙ½û¸ÿ¿ÿÍÿÍyýçP+rÍ8&8î‘sæsæ9ù×vf›Æ»í˜{—qpý>÷6½ï÷~7÷_Ý}|娵Ÿ–ñÙǘšpK?}8ïõ—dÛí÷ßÝkœŒ¾Ã}¬¼~cóš¯ßákÍ6 ¤ýVzsÒëÿÇÿÿš·„<ãzQÏ\xó6m¯Ç3+k+‚Ë …B±æ¹=¸®² GÂù¶˜[Æu^r÷ŒëÜH<žDi>_n@”l˜ )ಳaª Sm˜jÃT& z„ò’BtĈt×ZòHÄBÌnðÊÒ"ÌœX…¦wÎò9ÁåB˜J˜J˜J˜J˜NÍxˆ6o#Ö‘…#©é*aÊ‹uÄ“¨°>¨¯4Œˆ¹ÜS S S S “5àöŽ8‘¥³íÌH˜“™œ<,ÒÆI´·¶du9¦¦¦¦¦´¡vÚÓ¹n +¢†,‹÷)gŠ*é„y,–óÆ9ã9ó…Œûpk×ÙŽqì\ºæLì¡„©„ %LgŒÛú8gìÝðÑ2&þrAÀŒë&HiQÚÂ.aÒ»H²]yÞ%wÃÏ9¿ù}ä ð}>Οý÷ÑOÿäw жÿ~yö~þr͇)ÇRpöa–0% mÆïÊ|˜’ñ`Cö¿¶ß‘!\„i±ÇŸË®rò[IŽ+f6B¡(rv­ƒ.æïŒ„–0“ɧü<¸‚ÞEæx—Ac²”ŒàÏl}sæÎ»X€^8\^òD"‰¢‚<›ôPy JòêTdzm¥®ôÑ•>B>âEæÊ}û•¢jDÚÛcäØ a‚ÌuøÃ+ÈɉR BŒºÇé#ªxcãë¸ùSS1nÜX;;Í9‘2CD˜r_ ³+¯Âòº%xÏβӯ¤DÙ…BRr]©”…ëÆŒÃ…¶6†N”«ÈÏŠJ*HÇI%ã}:ð­’KB×D‚Š`µ¢å?ç !a¢Ó Í™Ô£9Q£oY…BÈÉ‘,ùmtZÂa/7š“ñ9½4uE2ÐQz‡‹3v7ÂQ‰Ž$«P(i2R‡H¦Š Ñ&µ§œöDq¼:i XMŠžÑæ©vwUÕH+PÕHfûÜ<ôî]ˆH„ÊJ´Q‰?žé`žIç»ÈŸe¼sVzÉÕK®^rsž'é8„IDÉf½‚ÂB$ ÊÌ/N&û|Í-ô™¯G:ë.©&LIð!Ç螺äòܸÅ’ëÞ*¹„$àô©“v±¬ˆµÇ؃uõˆ‘tÔÜ¡½<ãöb Nˆ)íY)Ø¿[6§wS§:}ŒyÞ9GR’ATr‘ÙžøöÛoᇡO_*­‡éŸ™icO´Ù$Úøz#«åk×|?|òi–kæÍÅ™³gP}ËT¬^µOÙ¶k¯ý×xîß¿?Ê]û¿ø%¼Û|”ì!ôâXòåô¿’¥*¹ªä¨J.É7d>PÉÙ×PV6½z÷Â3?Þ‚;kjqâøq[XÚ†™ŸeKŸ§Quõ|}É2{NßÇ%‰g̸•xB¼äATrÞR0x­kóaÊqÊJ/¬HŒ¯1Û–±OlÞÄ/QT\„ÚÚûXüþèØ±XQ· ”ѪzQûx€½ Ä«{÷`ÝúïÚÄz³gÏe5üûaÊ”[0zôµiH˜¸(®CUrUɪ’[²ePÂLrMö;ïªÅæïo@}ý.ö7Œ3“'ß„¿9Âó½²r¾õè:¬\þ:b1̘y+ù.¨/ÁTrë}TÉÅùžFXÇYUÚêóÂÅKئaÁB‰--ò>ôÕä1cñü/?H^2’<í¾ŸÿÂm¤ªóöéÛ~åaº—ˆÒÒ2´´´€àWÂ4Cð KdÉÀ¦€#`**†`é#+püø1ÎKQ>p9{y÷Š•«ÑÜü.,ÇÚõßAKK+?Cêô?þ>©ä–\O%}I˜²[P(ÐàÁC¸ÀzG,&˯x0†ýâñ8½¨£þy“¨dŠÅÚy?dÈP¾.kÀý®«—\UrP•H–0 ¡…„Š»¤9NçZÛZ%\¾<—;ïɵ…¢¾lï4ç5ü&]w1»9¶®‘09l±ÓëW”=¢ArBö€ÑÞH+ç¸OV Ƚ×ÿ§p©P(¬”„e*¦Ì[šÿF^ZÚt=ðZr¹Nß c¢wmÆu³P°åW íÉe~i$ˆð \…B!Þ ¯%OGC ,aš5âÑ=ÙŠx ‰TÒ°a†,½o‰dB ÂF;Y…ÂpðÊcÆuA2Á‚àí€ÍìÒH§:]Ü+Ÿìd[¤8ªÐ&d©&—Ùàã¬&K…Â(@Ë“%Õ[h 3BÉ¡d^i3¾Ò‡6l°Ý±ã%öl‹7Í Y‰ŠN²ÌǾ}¯i–U’m%ëÊ4¬HÊ$çC*ÇBq¯>H&âtsÈÓ‚ÜyòÄ1Œ;†„½n +"i’CwÆÏËëwýš¥LAˆSH“ûï=÷ //ÏÈÄœ…P($ÝÏ󆆜9ÕIäš>œì|Ô5#(Û: |V7U”†¸ÑiÓ¦aúô鄺ä’!ÉI¤ÙV¤aEV$ª7k[½{÷Auu5qÕH†„s¼«òaÄD‰=¹‘ð&ÙgŒg³T%W•\‹ 9ªGRØ^!&LiËœã¦Jî߆éÁ¸Fƒá'LÇYZ—\%L•0…TüØàƒ»Äo_ÜÆ«Ë×’{K/ÞÇ>®0ÄвÐ飦J˜^ý?ašç3âô‰@¡P(—ì%÷VÉÍÏ™^é\åõßGUÉU%×µä.} ÝJïþϸû^ö¦¦¦¦fzaEçß;‡hNr{䣘V¿D¬ÿã@a|0œ>f;ÆÞÅ€ìõ}^mzßo¾›Ÿ ·ñuó\ºy)ÝÆ4ˆ1ÞWŸ`:+üÚ0ÝžqûÝÝÇÉ#£¯iz˜Í¶½ÇKàg{Cî%w›ãœÂ®G~GËøEtzõxõÀ!mn–ìAHÂTÂTÂTÂTÂfýNó ÿ„ùÒ†Uÿm×lWa(‹{ÿ^›íGÆ ÍÜr„¨ \A.!mK\º+ì2ä>”²>Ìk-²È÷øÉºMœ“Ž=ZËÉï•kðbn÷“®l\kj…Æb^kÌöWë÷‘k¨5ÖçoìK5þGÚÿa5>ñ^ÚsZr*£†™æfðƒßŠ0Lè–ãÇ=öữØÃ¤‡I“&=Ìð»kä=<Ð#¬”qÊsVÌ9笠ègÎb˜?ã¯b@ED@%¢$É™»ûû©ÝZú†Ý‹{ÇôH¹{³==Ý3ÕoWWw×›ïŽåË—ç×ݾgþFöËßxçýòuì­ß“}Ú÷T’,mô{4mQùEïÍ7™¤*W4ßT÷Kv¯Tå)NÚTåK•oqò(êù¦ªOaץʿ8ŸE=Tå*ìÝ¥*{iô¦(]Mõ\‹û{ae(N›*L {%y…é^ªgWœr¥Òí°£Q§ÞÅn7E½×¢ô¤¸u- ÃLÀI΃›+~ºCJ"Ù³þùWn~øyéÙû9ö¤“¥ï1ÇË‘Ç$H å*GUⲃ“à%¸yãCÏIIìv½Ž”¯&ý%U›µ‘i˪ÉÌÜZ1É«í>‹MãÒ®ª$H %’é̯¸˜•›³Jqý´¥U¥JÓ­äÍáãK¼5kT—¦M›Ê¬çËÌ¿çȬ9óä³dêo¿É´©¿ÉïS’ËTdòd™æÒÎt×Ìp–óÌæÉ4™ûä½þ5w~™ýï¼”×üí~Ÿ¥ïuuIóŽüFzòýÛ¿º5g^åy^s‚ÞTˆü]ö<w<Ì›¦M²^qnª~Ÿ"ÌœǬxÛpúÊ9ðlj!׃‡üνfÅÛÎ,§+n¸aÉ7ßýoÕªUR½JŽT¯VÕÈ“jù+¥E³MdËÍšK‹M›ºÏfúéoé>·h¾‰TÍ].9’/5ªV•jäQµJ ’jUÜgµ*’%‹–®…N,‰}®ÊÍ/˜¶j,mÕœ™·x¹*HM÷wõ*Éó&]Õ*¯'ýŠUy² ~déŠU.m¶æ]­<뚆<´N99‰üª*7©QfÝΑ>f5ß$†OîÓð*!Í ³K•fUÑësœžƒcàYK½ÞáܦÍ4/=çðpK÷ɽ²Ÿ–ki¹y¹’••U"ÉÎÂÑ›%*9Ù®8«VHÃúu¤V­š’oXUÜgÍZµUªÄÏñ[íZµ¤AÝ:’ç®áÚlÍ0H&IÕìl×±æËfÖ“ëûî.·Õ]ú·§Ü|d7é¹] §rñtUr%?KÖ®!ž¶´oÑDV:EÁ«¸ßª¸¼øÌÉŽ}¯W«ºÔqÊÇwòàsÅÊ\9¬K¹õèîrDZ{¨œÚsGÍ3Ï}ŽK—ãåÈådÇÊÀgÕ糵à -Ÿ(¬–#'~¿øw+WÕÈßYñ{ùyf{÷7±{ijV—ºnHY8—¯[rì²ça˜µaýºR³fM}_ÕªW—5kjÕ«éoµkÕ‘†uk;]\™x¿à8V»víÄõUªÆpOÅáçÀzç)7Á"—?Ÿ€äÒxY³Ü½»óåâ–5i)ÛRWê±Ê•‡<—»sXù<“Owo47á>²´~9Ì¥åN¶ÜiWYé,äqŸÿO~þâY2oŽ´êÔÍ¡¹1Ðõu"‡ÁX‹·j«wM‹WMoØ U²W )çÏüCZº‚à×­Vµº´l¿‹Ì1µ€̆™A2XÐ.wœ´×òò…Ë='÷’9 –Ègc§©køÁFÊU/|.ËÝ0¿±\ssã–²ûíü§>–éÿ.”–MÊ×?OWëõ§ßÿ–ÑSf+ˆ£öŒ‚¬[ç{µœ˜ Áäõ|§–›H3çÆ¸óíoåòç?“g¿øI-Õ=¶Ù\òõo~‘^ùJnìFXÍײsŒ & :wäÆù÷FN–KžýT¾›4Cæºò\ò̧òæ·¿*€îî\t£›-?ÿ9Gf¸²ì@K†kÿäG9ç‰ä÷[ë&¸f—ì&Ðܲ2&Óùh”ü6Û-Tw“nŸŒþMŽsd¾N̽üåx™<{®ºvÞj¹ÿÔ^Òkû-dø/ÓeÒ¬ÕEpæ¾íu°V*jÅjY¬\Ù¦Îùñ²Ç¬àÉîÚÇü&ÇvßVž¸—œ¸×vZ¶\§×~}³â  ;õŸùn²qcé±ýæ:!Y%èOfKN–·1æmÝa7§¹ê“Í/kí\¤Y’›Øh>v=×4mÙVºÿçôØ4äÝŽ8E6k»ôUI¯—Â-^„}‹7?ÞÛÛò ³|âV¯S>εڱ³l¹]']r ÛRÒÆ¬£ì (îm©õ9õïÒï‘å«_þtÖkŽžgxÍÊQÎG{ú#èDÏs“[üýósdìÿè÷ùη ˜ÞðÊ—òЇ#5>Ôi.oÜRäÉ’±'‹ Ÿ»æ´‡ßW¹à©Oä“1Sµ”éQç[½Ö¹9^ýúg¹Ôùgß9I6¨SSÞûa²þýÚð_ÔWû©ó?/Zê–x½:LïõøÇ£å¬ÇþOî~g„Z·Ôoú5å>·Zã6ç>iàòyÿ‡ßä¢g†è’±ç>'·½þµ|0ê79ï‰e¸s5Lš5O¯Å"nä,èo}ã\/ߨ.útŒÜÿÁ®#˜§VoÐí —¬Õ˜¥ËÅœNoÔtSi×yO7Zï¦#öv]ö” 7Õßt½z³²£œlÅ·FîúnM0ØÖUs®Ššn3_sV»Ö²ìú˜7+…$ß¹¦vBVla;°dbÉ’¥êJÐÍñÅæ¹Ë–Jîò¥«¨»ßò\š%K—ºIÕbÖCVV ÞFÞ|7ù´jU^béýÆÐ{þ¢eª'ê?uÿñ7–e®[sË÷¬øo¬‰eí,Ê·ÀínÃ*5oQBIÃZÛùî7„kø‡kºñ ¬`ë‹qÓø-Ö]ê—s.ü°CÇÿá&ñéßÕªfk>¸ þt6koéºá,­6Ès‰;ÇÚ`¾ã ŽÕG´1ýê\ Ü‹É7üÔö,òã¿SÖøò|¾ùuºLwåH¸3‚d¬èªŬ% ”`صjéb'Kâ²Øùmcx–»Ò­ó^ºL1++î:ã;8–Ç<® m…®Î]•ø |Ô¥e[”eíä’xiT:Y†ò;GnvUùs†SôéÓãŸ3eúÌY*|·ß¦OŸ!ù9Õ…¨’|½™éûйlKlô7Û"këùŒ¥íúò4mùŸµkĶMÚuvÞ¶„Öˆoí,8<ËV f¢­¦û=Ç~sJÌ߉óñÂîÃ9ÝÚ¿¿_ŸjÞù‚õ‰Ý«®Ë³z|r¤J¤NÑk±ú«W-X§ ™èB‹­¼ª^½¦¬ÊªÃ+piæj¼Z-3x–Ç,ÿósà™]ÿç ÒψɌ™®ÁÉœ¸«Ê¶®•(VClZt¦ÏÃÏ*®"Uj7¬u%»V=I§nAÑsõ¤JR¥FM½&_¯ ’y’ï}æ{ö[~ ‘5¾cü­¨ëã×Å¯Íæ—ê|sÉË’êþ¹ÊYÚ:ÉD‰áNžâP•Úõ—·"˜;WOq­Šͼ˜{ þ¾óôxVØõHN­úŠ\ãësɃ下˜±f OÝUU긅òukVu 髹½ëÕbŸ¾ÄÏ‘FÓÆ¯ $HbKõôåì$X³ê¬q}Õ]¯âîYmõìnñ—ýéÝÛ5•;ÚEn:|g•›è,7^L9"H A2@ÊŠY%¼¬¼óè®?›•|rMi(Â’° A‚)•Ä–W–pr oIù‚‚ $Èj)±«Aâ»–‚ $Hé¤T®† A‚ Roè­‚ ¤ÌoÉ] åyXoà÷ ¥é!ÂŽp„#ƒ’ï\++¨²ÕÂL> ,â6y—ß÷žŸŸ¿FÁ9®  Žp„£’çãÕ]ohëÖ­+5Ršcç |-$,X àšl¿×©S§(ǧ|KA‚ÉoÉ—“•Vt×› 01|øp4h<ýôÓ2qâÄøš% {'¿ÿóÏ?. zÕËçòåËeäÈ‘‰ß|`ZÎþ÷à[ $È:éãõ­Ks%ðiî…Z.6ïe—]&£F’qãÆÉµ×^+£GÖó0`:þ|¹êª«¤I“&z=¿ñÉo¤¯¼òJOžXÀÞ¤!š²Äó3ËÙÊâ—)H •C2µÝúå*¯y©ì¢@×ðÃ¥€õŠ[€ï$…Ûd“Mäæ›o–;ï¼SöÞ{oùè£dÖ¬YrÐAI¿~ýä™gž‘K/½TxàÀzî´ÓN“#^nPâØzë­¥}ûöÒ²eKÙj«­¤M›6:±f~^\L  0@4h .Ó kþ>j¾¦6Y†µŒ‰Ï/¸S§Nòì³ÏÊC=¤ Î5\Ë5æâhÖ¬™´mÛV™2 ¤òH¦¶[ÊÎwíÚµSüëÒêj(taZÜê5n"\ ¾ØÊz¬OܱMqÞœïÊìŸ,‹‘)fëoøRðc1ãª8ñÄõ·ã?^'îðÿråaeØ£e $HtI‚»0Éþƒr]Çh3r8Å}ä‘G<B~ÇÝ€áÆoTßïÂ… åÁÔU ×\stèÐAÏÓ»à¿%»ï¾[ýÁ䃕Í*ˆn¸A'ípM`áâÛÅ2ögÃR– A‚¤[ 碘¶u¼%Ù¡ýnÃEà÷ æÆa# ¿qÿ®ífã¼MàaâcÒà˜ûÍ›7×ß¹6ºÉ"áG8Êeÿo ÌK›Å[ÖÂùþ[cƒùs­ñ}¼ÉҮ˖-ÓOqþ6?±Ÿ6l+G8ÂQ™2ÉIÖ3$3ÏKÒ£¬tÃŽpTzà þœ A‚©à-Ã!ÀE A‚„@èA‚ RÙ,ÞŠ‹ÇŽp„#áX “káG8ÂŽ Þùä'ö$HŒ“!ŸÊ»ï¾'üq!muˆkϟɇ~(S\ìÊ,C@wÕª•òÀ÷Ëí·ß.ýûp±³K'ýûßYêkË.ý]ùoÓP„80ð­0WCY† Æ1bÄ©]·¡ìÕ³·ìºûž²[·A‚É0Ùu÷½d¯ûJ­Úõ¤C§]¤ûž½ô\²tÝöè%:v•FŽ’y.66–/ímû¯¼2Ø!G5¹üÊkä̳/³Ï½¨TrÖ9–úÚ²ÊgŸ/—_qµlب±5øte¥tÇ”ÌÕPÖeÞÑmëmÓfk v³bÅJºqE A2Trór m§lÓ_¼x‘ÔkÐPn°aÂ"´íüPuí·—v•;EΪJ'ùyù²xÉ éÑso âe [i–“Ù—-_æ¹:ò‚ ’¡’—WxÍϱ„ç:—ñQ¢°á… ÄóÊŒÉ1ãJ+þÄ_®–Ðõ#.Vºåd®Ø‰Š¯\¹*Ñ{®t=+/:H ™!1p*êwNæóÌ’q°ãCåDZ#=@ÛZ–!{IÜœÄýæ02#H(~k/ÒaZ¶ ‹~Zϳ*ؼiSiÚ´™4h¸Áê^Æcò´‡ç3{š÷\ AJ.RL«0Ÿ´’ªÝ‹m²fÍZŽÈ ÖÞ¡Ëáˆ2€§jÇÉÒ$Kë[²-Vw]G¼# !eGŒøVæÍ›§à»:¿¢1$Kî*n9Yt…½]­Zuܬé;rþ¹gÉ9g÷“§ž|,‘&Ç9èyHôN<ü|õåPíµxéaØ$H)$?æF0+#ià Éîv]¬E'@w•LX¦²Ú¿K»íÖ­»°ß>rÉ¥WÈÈ‘#¥Š¼ã=J¿¼ó¿·o¿ý–Êõ×_-_|ñ©sC6”SO9An¾ézyÊÑzÝ|ã æê==õ„£úzTrë…~ɱÿn$7Ýp\rñòÒ‹Ï»µÆË?ÿ#=ú°³€Éùç-“&M”ŽR¬ÿ·ÊàW^’;ÜýÆŽýIA¬Á|â±GeÈÕš¶¦Ò†…ÌJ|_ýBýõ·p¬¼òò JéCo× A}¹ôò+å¾ûþëο¨én½m€ô쵯[}Ÿº¾ö¥[ªr \áÖvÚ¹³)~=JþsäÑzíVmÚ* ]a÷A‚)\L¬Atû쿯rÐþrø¡J¯Ýe Ë:uêÊJ&QwCöîZ¹qW  7fì¯òì3OÉæ›o.yîZ ¤3Î:Gc+';G^yõ 9÷¼ å¹gŸ‰íp†ÕñÇŸ¨çëÕ¯'Ÿ"Ó§ÿ)_|þ™‚ø…—\*Ï;¶q¬]Àü€”'ûòŠ+¯–.]vqkp)î02®_¿[cü’Ô¬U[n»ã.éÚuWyä¡ÔåÀˆùÐÎе»Ûm»½º%Ò‰!keUC¾·;77¶©âå—^›n¼Vª:0=å”Óuí_Óf›jÏ5cæ?jñNžûD.»ôBç\ oÜXnºåvµŒ¯¹æ ™á^ Vp˜h ¤”˯òbnÛ%K–È–[¶”}{÷–aÎàúÅçJB{̱'¸µ» u¥RlÖhMWƒMÐå®r“kÎøî»ÿ“믽JæºÍgŸsžÌsù4jÔÈq&n&³þš+ÿÌ™#­¹í²¥Ëœ!¶•[í´B±ºõêKÛv[kY¶ÚªÌq8Áã™3gÈ=wß%w9KµMÛvjUSš­·ÞÆå7ϹþÒ%¬³fÿ_&ºzŽ»ÏÇJ~ÉEçË·ß—íwØÑÏ’; ”ÿ½ý¦\yåÅ2õ÷©0¤RG'‹ù„b½!/ï²Ë®’^~U.¿ü*©îü¹T2¶P9W—›µiÛV¶Þf[¹õÖþréeWj/ÄŒ_~/×^w£ôèÑKÞuCfNñ ßy×¥m›vòþûïÆzcç³ –K e±Ò²`Ï¿à¹éæÛdçÎ]ä£O¾†n%’¶/[ÑÂ≬9ÿΑÓN;C^~õu¹áÆ[ÔòĈbãpL¶µuà9üë¯Ô2~ýµÁÒ¸Iµˆ±d_{õ™2å7:ôsiݦsuÔRÀ<ûœóåî{î“^½zé½–8 FX€xÁ‚ ÔY® „-X´h±l³í¶²­“þw”ó/¼Èz;‡G ä7wß[oë/:v‘wÞ~KÝ¡æj¨üÀË.67ÖrËVêë9cºö€¶ü£­[Òàïéåœá-¶h!gô;Enq>Öü‧çÃïƒ_ø´ÓÎÔ!î†cŽîë^Òßrìq'êß¶“&H %Ýp_³óñþùçêÊ{ô±§´­²kM‡áú{l gÍö.ñö¾L6s®ÜÓÿœ.ÿþûob}- 0cˆíºënÒÙ¹.¹ø|ùÉMˆqæ9ÚÖëׯ/ü9M.ºð\ÙqǤ³ü͸n¿íf9ãôSdÚï¿k~[:ÖqüÏpXê0Ÿ{Ι ìí°¯\¹BwÔqý)'Ÿ wÞq»³Èc#ð¹Îw|ÂñGËĉääSNuòobcHÚ¶2Tä–áQ‹Šgž}Žö:Kݰ€¤÷¤‡¹êê뵤 5Žè{¤<ñÔ3òÀCÊ{í¥½ïáGüGžôœÜ5ð¿Ò²U+òN:Å{^n¹õv]/ȹŽ2Hô¬jàÀbdŽeÙ²¥‰e]y‰9œí=¾}ø˜cŽ—Ýwï¾F°™k®½1Á N›=Òû §ŸwÃþ»uoÅŠåŠL_|¹<ýÌ‹rÜ ')h3‡Ó¡c'yÐáÂcO ’“O=]ýg™o¾y ½`zõ57(~0¡vþE—Èf›m.‹ÝoÇ’<éÎß÷ÀÃÒu—]t$}ô1Çé½owy6ué–ÇwÚVêÉ5ŽØK¤¢€­­Ã5g~l›áj0éè½\ü=v-ç£vça’f‘;G¯æç$H®Ío2ÜûÍÖÖ¯q]VòÉ$kïX®€¨ß.ù¤½ûŸhÛnÄÛá–/7n?¿@Ûy¢#px`çÚ6Ä\ºÙáÉ"÷;ùéoêÖX¿Ï"Å Å•eË àÊ¢8®¤CJ¼Ž7mœC‘Ô_'ç ˆŽõY®õ{UÿœxçÖµ`ÌA‚Tœä'wmS±k©G¸¥nïñ<°lovç¬éY÷ö*ùëoãùø¿%\)p%Š!~>•Îâ Ãþ A*‰ä•tçZþl3élï¸ Öö3ÉJ2W•ÑËÉ|¤õ"a‰W •ꦸ±RsY’ˆ}Pñc(¬ ‘ôÐþT<çà«pG•*Õt!A‚ÉLÉŽoÁ-*iV­Ê-’O¿q–3+ ˆÕPY…òs¬põ±úUÎ5z¬fÍš¹}ÐÃd²[+7qÂ/2iâ¯A‚É8™ ýY×ÎNq›—&NˆK–nÊo“]L„ï¤JN~b]/@Œk S§NnçÙ â¶í~þÙ2ȧe¼¾ôò™£*cwÜ‹/>+íwÜ1ä½RX¼/3‰,ë°ÓŽR¿^MÙpƒú²aÃzA‚É0i´a=©W¯–ìÒµ“[–¹‘4lPGÏ­‘vƒzÒ ~mÙ´YéÞ}ü2`bBlÏ=÷tKÃúº5²n ZÕ,·íW*T¯Æ’Ö%r`ŸýåÀL„!¨°èdéXÑ€«¡‹¡°ë®»ºýÓ]¤K×®A‚É4éÒÕÅ/è*ÝYÚi×ø¹5ÓÅ~ë´óΉ®>  µÛn»É™gžéœ*§žzZ)¥,×–UNÕò÷ìÙK­ø _ÕPV¯±-{‹t½\ A2WXw[Üt¶»Í§?„iëì$eEe¶[½*•×>yø€øÌ±Þ(Ù÷L*g ™*QÊŸ©A1&ç*ƒPTu¬±вŠm÷Zy,Ý(,o¿·æAû=w&þn üµ´Ä¥4eõ¯gêQžå­lÏ"å§fÆ@áD”ìÎ_nfûº4hº$SÜҳ݃¼£ ê³¢’7û½‹»l$ÙöHêFmkb:™­©çx¤JÛAøïƒ2&{é,+Ñ¥ðFßi´<>¢ª¨òø×ûáûŒQ Yý’åiåµeD©t0Z6ÿÝûúí§ñŸ…OqSTÞáX玒¹Ê´ãÃÕ7Þ8!6 êoõÃüÑGi ?–®¥á ÕæoŽZ€Hûâþ&®ù¿ÿû¿5âô55~œK.¹D®¸â ']Lݪèooô=àxâ“|Rm‹\cëe!å÷I?y6Ÿ~ú©Ft£.ÉÒõ>HKGC,T{B´¬ÑûGËý-ÚA¤düøñŽJå'}þs÷ŸÊÊÛßùöŒ téŒLob<]UôŸ¶å4+²4ZÞ±cÇ&Êë3˜ØqCLj`d‰ÑwÏ{G¸§M4ÙH‹²ýêbÀŽ5j¼­äm@*ýN¥3A*CˆÍ \Õ`Ö$Nø3Î8CN<ñD)=z´6~C)MépÆ£´('¿c¥r`øñÇÇ' f ð¤¡Ñ pYn¸áWtRè±¢¬.”©JœÔ“{~^V6+«õ!=œ­þVÎh¹R ÷&-yÜrË-nÆù¹ð åóÏ?OP_ó>ȳF7äÞ{ï-`ÍÓÙrÆöÞm”ôÖ[o92骔iÖ¬YrõÕWËI'ä[_©º[ì¿*ñ|­¦”×¥ð\íý X±l° 4Hg¸9gHù¿ùæ}–ÜïÚk¯MDá2=&=m€ÞÞ½Õ‹<Ðÿçž{Nç»ì¢úá· Ô$ó¥Âc5 Ä4„#FÈé§Ÿ.;ì°ƒãVº]‰îP´?ÿüS>øàæ÷v‘îQlHè¦8Â;Γ…{ñťǓŽóûnï¿ÿ¾‚*‘ü¸ö믿V05+%íÙ³§6<¨Lh¤\7}útÍ‹²Íž=Ûk×|`¿àÞ'NLt4JH÷,¬ €4ÄÑ‘Üu×]ºÄæÈ#ÔÆcÖ;2nÜ8ÍFmÀǽi°_|ñE¢qïß]lQÊF½iÔ4bÊüÃ?h½úLƒä¹’χ~¨yùåJæ ±wA=/½ôRmÐÿùÏt±;÷á~Dîçþ<þæ}pÿ_~ùEïųáyR/ž çÆŒcpu ü¼êO|å­·Þ:í k4‹Ðø¸þ÷¿ÿiÚÓN;MßÛ£>ªå#Ýwß}§×ÐSÞ˻ᆱºÃÒ%ÒÓiB¤ÈÈéºë®“-ZÈQG¥Ÿäo®êeõ Ê;yòäDyÑOô‰gÊóþöÛoõ9`<ôÐC òF’h@Î;$/ô€E¿©yÛý¶ÜrKÙɱ¨ çèï“çÎs ,äýúë¯Ëo.¨?y“ß°aôS´ŽŸ2qot‰woà¤RX¼%Þt­ãÝf›mdûË—ž¤—?ú裵¡3ÌÃ"¦Á±`ùž{î‘7ß|Ó1U\¦žFfJ‡µðÕW_ÉwÜ¡Jõ¨p ܘÆÈ`)ôíÛW  o¿ý¶×Ð` QèË/¿\^}õUµšhT”‰FˆõDÙÍGÝ=nŠ#Ž8BþüóÏWë—t4®»ï¾[? ’gAcÚo¿ý´Þ6Vu‚ð¶ÛnS¸ùæ›$il=zôPk‹rž}öÙ üF9_yå³NÍ:2ÿªrnœdô™gž‘=öØCÎ;ï<ÙËÅ8æùSêEþÜ—ûßzë­òóÏ?kx¦O?ý´¼ð ZOÞ@MšwÞyGëGç@~øázžNì±ÇÓ²q_ò}üñÇåá‡V0²á?BG¢{:.ÊEGH¹Ÿu\Zýû÷wœ\OhžÔ 0Xy/ä PázáÙÑ)“ù£k{ï½·‚!é)ò½êª«T?Ð=êÌ;³ò~Ô‘çË:Têvýõ×',j::ž“±ÓZ‡FÙÒãbáܱÇ«£t‡çGý]êJž<ð€>;ôšçùå—_êµ”•:s å|ä‘GTÑ[,kÊ…žZ‚EY),ÞŠ[Næ[ZX½€+@hk+ìܹsâ†uî[l¡V€Ó§OÊa…Ñ€»wﮊÍßX ('ŠŠ‚ÚŠÛð44nÁöÛo¯â‚ .}öÙGnºé&¦–.’=Ÿ¤{ê©XÔ}¬€Ø†‹ö@^þVŽ/Šú¼÷Þ{ T á>êvðÁkÞ Kvv‹Ïé8@‹ á>4^ÀІ8P~£c¢®øù<':3â4yn€…¹88°ÂÚµk§€ ˜ðüÙØÂ;"¯&Žr…ûóï»ï>}nœã¹J< ò C9P£~€7V0uœÉ«á?n:ÁƒkLjÀ|õÖQ†Î°æðœé¬x—\GY±¬ pœuÖY:´ÇB¥³»øâ‹µ¡ <{ʵÿþû«û0ãyò bêyÈ!‡èû¢3¶òì”™gÓ¡C8p ê ‚~"Ô“gfÏÕ¨Å1(?@ ™#ï€{R.Þ=ßÍ¿‹ÞÑ¡P¿¡C‡ê³Þ}÷ݵs:è ƒôÝ¡GçœsŽ– Á GŸ;ì0­Ö9EEnc G®j(«ymcX& –&@Ç$ŠÃvbE6Ÿ(ÀK|ΓeeˆFzv1ôÃB ÉŸ†¶qœLÜp÷£Ý›“†Fà o&^¸C=@å;ypðIãä:ÊѾ}{MãOžPf, ƒF5ƒµNCä X¶”s“M6Ñ<¹Í&ƒh”|R'¬2Ò2dÆ‚¢N­Ó†1uØÚBžÏŽƒa¬ù¹cÁˆª(0å²gÀäçHò>ø2v4zF¼/,bÎÓIòÜx\ÏÁK €£~€yn¶Ùfúœ¸Ÿ¹D8Ç0Æ+½À#ÜpE?y‡ç†M'ÃÁ;ÃÅØNÒý÷߯:AY(»½kF7ÔŸNó€p$¨×Äc»wÌÈ‹gË{°ònºé¦‰òðlùÝžmÓ¦Mü]èÏO<îI9?ûì3SÞ4yÓiâê°gÁ5œ§“¶•>”ÝX L¿è$è°¤éì(uãY˜^Xržús¾SêÀ»åzF!ŒÚÙÑ’ÖvŒQÖ4DË GeÞ¹Fcd¸JÃPReg¸„EÁwžÝ@y×ÜùÖ­[kCÀg‡ÒâgEñÎ=÷\m@ ñ—auTX\ç[$4> !o³±F°v°zÎá_Ôp3Ð(¶šeJ¹}…·}éXX ·ÿûßÿêu ñÈHõŠ;ƒrâ—d¸HD£?â~<›~ýú)È‘–a½­dØÑEG"-Â3â9à›ä™R>ž©™“dˆY蜣<\ƒÈò:–ÐR Ûy~äɳ¦>Ô…< žÏ€û^¼+Þ9Cwêjσ´þóÅbÅÒg⌎ëã?Ö{˜OÚò¤ì'@ÍoÜ6“h\Ç}°ìA†át ¸^°žyö:n t€w `¡#øC™à=aI£ÌXP—hy¹åà7~tŽôÜß+>p[5ãë(ïQ‹-#ot•4Xü¸Í°øM×L×yG'œp‚¾sŸrºtžÔó÷8™#ºm«z2q“O8Ò¸Ž·¬Ne” ËéÆoÔ†ok€@LôðÅe’ƒrçw&Ö×¢xX”XL€``6¹Cáz¬U€ëÌ*°FÌ0–†Ápû“Ç¡‡ªÖ( …Ç9€‹ï6ið‘€Ç°`´¼ „iDøÞh8X’4Ê‚•àz@¬^LúwÜq‰á1eÓ8¨î7†©¤Å2ã¹áßµ -Êh2ìpÙPNüß¶ÄÌ$e´ÉE¿âùä“— Éyö¬'òäYˆXz\Ü0ãYÐ)Ô¸*°Jñ§’† îKZ:Vy–çLZžÖ,åµttÖ¹X™yv#$:VžÏ·ïðE¬3a’•²óŽÑ|ôÔËØ:9:@ß*uN¦Ì#àOîØ±£<øàƒúNaî®2¢®Xžæ‚`Âð§þœ£üè=“©¶ÚÆEBxoÜô”‡4XóÔ¼¸ÏžºSVžeå:Ü]6z ²/'+««Á´¹Ìça4h`¶(݆Ô|ZŽÆÅßXC–¥gØFöÝO(¥OËlà˜,oŸ¼[ojn îE¾fÙ?êW³‡j>:„tÑÈ|ÈvÞ6‹ØÄˆ_¦µý‚D(bu¶ÎÈÙórú ±°Ñ‡Õ›û[™ó›ÛÃîon{v\k$£ön¸?é-l^ôùZ=Í?Êïþ&ËÓ÷ùúµ¹Æ÷«ò<¬ì¼3K‡Û„wÀßœ·º™+Á|üÜßæ ’•×|ÿt˜¼Cò°ÏûØ»õ¯³òùå÷óæZÒP~ÓQ? y’·ùníÞˆjñŸ}p3¬ã®†tp­Ù²è®'ù“ŸÆ·Ò|@± ;~z;gàâÿî—£¨¼ Ë7U¢»Ø¸Æ®‹ÖË/{t†?3½·ßhù£ù÷}øA‹|hqïïÇ·ðóHõ|ý´Ñg½&ú\£ù'{žQ݈¾‹è;LU^›S`¢Ë g´ä×'Z–h=£ú]˜®ùi¢yGK%k/aÒ*¬ã ¤Ò‹V©oÕ†g¤R²  RY¬’¨‹*X–AÖJ¬†àm G8ÂŽ ^ÕPæ»E"- $He£»OÃò½Š³xý²Ì³ŒˆÏ A‚Ét1¼¿RÅ”.·U eq(SXÖH²q€õ­¬«ä3H A2] ¯ˆ§Žùq˜3~/ˆÅÎ"";!E}ç3ú=•صɮó‹J²|’å›ê~É<ÅI›ª|©ò-NE=ßTõ)ìºTù糨瑪\…½»Te/ÞV¾Âžkq/¬ …=»¢t¬°wXÒ÷Q˜î¥zvÅ)W*ÝNu¢ô©°öR=)¬Ìà—E‚«ëx-:AWØqÆŽ#>ƒ $ÓÅð ü²ht•b¯-ú&‰Å ®€}¦úM[˜ØµÉ®ó‹J²|’å›ê~É<ÅI›ª|©ò-NE=ßTõ)ìºTù糨瑪\…½»Te/ÞV¾Âžkq/¬ …=»¢t¬°wXÒ÷Q˜î¥zvÅ)W*ÝNu¢ô©°öR=)¬®ÆŒS–5ݲ6èݱ H A*›€_>že|t²p„#áGûxƒ $ÈZعVó<cŒZ™¢”î™\æp„#•|çZºLJâƒYQkâl°¿«¤¼[½ ‘ªŒèÒgA@‚ ’‘ñx¡íI& 5rPµx´Æáçi;⌠”þuÑóÆOVØRŸ šh_à^cY ä>P8ÂŽp‡æj° 0ÈZDö œ_,P6F]&lÛÔ<¶†ŽßŒÇ Šo¿ýV#ø• `hà 0Û5¤œ'o®÷ƒoÈû€lD0Ÿ•zÀHˬ=åN´ƒG8ÂŽR»ÒáX†êhÏ¡p±OJèPXë ð`ÐípP¬@Çèðå7€Jø¼ ”-œT!ß¡U!OÛkm,¹l„¼¦_®CŒ­×˜ uøÉ ‚ Î/ÒXÐjrò2 7à$Hµ2öYLc±ëªQöø­±úÌpƒ1¼‡¯ €ƒF²ÁAƒ)(vB( {.„‡ä3nÜ8o8¾ÆŽ«–)î ¨T ý&Wf±ÂÆ.žs”‹ü§M›¦9Œ¾_}õ•7šUÌ'®Ž1cÆÈÀu{!׿o AÖj t¨Tò)f|¿*ÃyH ºã?^]¤…éõ7ÞP †Ú°ûå—_䨣ŽÒ]&€#$ƒ€<Ê–e€Ýî‡Õ˵”‰m€¸w&'Ož¬„–øœmòŒôä% ×ÀêkÜ^ä(â”÷ÕW_ÕŽÂ&þ‚ ¤Ä>Þt!~ªX—þ„™¿:ß0*`Y ¡@qK@Icm"€#. @ñÉ'ŸT¿/¬µ°Ï²ÏÆX#ÄzÞsÏ=•¬¿üòK¥3Çj@‡ ¦–4ä‚0̪ £m·nÝ«0È‹4XÂX¹ÜwYÌ¡§$H…oöW ¤ê |ÒGÿpÒ¤I2|øpéÒ¥‹Rwã®ÀÇ Øó+ ؤI;,\Ò`•š˜×î…»7‡MÂaã3æàZ~3kœÎ¿ñA[Z „c/î@ùØcÕ2ð[8ÂŽp”æ(3˰Y±€V21Ë7JíÍr­“N:IÝgœqFb¹h~`†ÿ–0`j^¤10ýàƒ4ØVª•‰I4|¸(ø¾é¦›ªyðàÁ2aÂéСC‚þÛ(Õ¹'yâ†0ju¨¹™ô±¸±z-]˜` $H©'×ÒµŽ L¶y`Clhh1ñÖ£G]JÆpŸ /³2ûöí«y“÷®‡–-[Ên»í¦ç8þóŸÿèw¬d,æñãÇ«Mþ€5ypÏ·ß~[Ï_~ùåz&ÛX&ÖªU+uMÖäÓ»wog¾“7ehùàÝyçåŽ;îP×ךO9áG8Jeñ¦cç!K²Þyçyï½÷t" á;QÞY•À$€˜á8âˆ#Ô‚ÄM@Ûšà .¸@ó%MŸ>}d‡ví·ß^¿sŽtøz±<Û·o/Ï<óŒtïÞ]—ëÉ%eL¨¸œçïèjü¹X»3@Ož,#kÓ¦~¿è¢‹xûõë§ËÙ°záçŸ^ýÄt¾k#H AJ<¹VóðÂÿºÝvÛÉî»ï.]»vU-Ÿ&üͤàGZ»Ž¡ú¨r¥ÁWöþûïënXø^·n]ùé§Ÿ”¢‡¿±|Qh#¨ÄZ~饗”(ºš‚<n£g¤ùÎ}MaIƒpޔݙt5jÔH°LPfËÃÒú/Èú)¦oè˰aÃäÒK/•+¯¼R¾ûî;Õ3 Ðô×ôÈt}æ³è )c3a´Gš¨^"Qê« •ÖÇ[2WCqè,|+ÔÛJ ‰äÖ[o­´é|g2 oÙo¿ý¦ {Ì1Ǩe of£G–iÓ¦%@ù®»îÒOŸ‡ÍøÐȇ`üißÿ½üüóÏ j ÒÀá6räH™1cFÐi(P¼Oš4II+É›r1„$íôéÓ”C ŠuwÂ#ÙP?•@¾õÖ[òàƒ*Éj‹-t=ú°¦ŒÜ0 ÐxúæÍ›'S§NM0]³Ûi¿ýöK°Q“ï¨Q£T×¹†ò ³XňòÂûª:T!Ô?þ¾e@̬G¿·Fqš6mª´è€+Œ¼€$ ¶×^{)»ï7ß|#§œrŠ*iÿþýåÄO”Ç\Î<óLùꫯdĈªÔ¤Å ¢ìlÕ;ãŒ3ä¼óΓ'žxB~ýõW¹í¶ÛdРArÍ5×è¹ Èe—]¦¬À=ö˜œ}öÙj±àòxî¹çäâ‹/VÆaèṞ|oºé&¹ï¾û䪫®Ò{ƾuœŠ?.Hå{‡XœÉb‹Øïþ'iÑÏ·ß~[®¿þz9öØcåä“OVËý7nœŽêî¹ç¹ä’K4-¨èÕý÷߯éг† êïŸ|ò‰êñ­·ÞªºvõÕW«®c1ÃV¡q÷ÝwËàÁƒîŒõMÿ2µ®”ËÊîù:T!>^³¸9=:n„>úH­¨ÛIK’ß±.Q¸¶mÛ*­:”îìé§Ÿ®›µ¹÷Þ{+hâš,QÔwÜQ_¯Ñ§›Ïí裖§Ÿ~Z}n½{÷V¥E ·øûï¿¿òI'$¯¾úª– jy£eÇg‡uý¿ÿýO£\twÜq‡Z:XáV?¨êƒTNA7MGgΜ™˜äò- ÞõÇ,|ð|öÙgªCè(úÄè P\±ZÑ@õ°ÃSÝšE¯èÜ10&^{í5Õ}Ft)zLÞ0]ãŠ;þøã5å¡l|° 8PvÝuWXfÄF›ZŸô/SëJ¹t„‘µoZc5•°d(5qâD¥jgë0ÛèøN¯ÀÁëÆo”+®¸B•öÈ#T¥ß~ûíµ×àwó§bp=àÚ¸qcn\(8 `C‰Û·o¯ŠÉ:t¨æ%ñÇh:Î[žMš4Ñ£6ªCwè˜éŒùpå@GÉ›ƒO€}ÛvÛm|Z\i¸Ål^]ÃÕÆ¨ £‚ûÐñÏ?ÿ\Fa6çA› ï/s„÷›rÊ”)‰y« ^SFfhQ0€…Ds5 8(þ1¬X›ÄBÁmò ¿Ö1ŠM¾žM¸ai`a˜×\üÎoÜÿÁ+°.öÔÜÇÏÅÆze¢ŽïX!(7Ö Üºukí°´±8vß}w-u°z©¼b¼ŒÐ)s9 [#`Ëß®Á¢E—Ntã†nÐŽpŲå·6mÚhG ˜¢çÛl³êÛ—_~©>ܯ¿þZÁ¹yóæz-Bpò{衇äÞ{ï•=öØCóBï¼óNµ‚ə‡w˜‚~€w¼gðÏt¨Â¢“™•Jïn©‰­yÌY›ä"ÊÌä„Q¼“Åß|ó͵bœ£—ßl³Íôs—]vQ—y Ð~Þ(&LƒéÖ­›ùž}öYµ ÈŸûÐ!p_òFù)3. Àçh4¸$h”Gq„œ{î¹Z^{¿nA*·ØÄVtÕzA‡MÏŽŸuÖY اžzªê>;sŒâŽ:ê(U¡«¸Q=ùä“:ç€e‹.7kÖL2IÇ5Ìgú€rß¾}å7ÞÐ{ؼF´}Y»Âû@'üý¶ª¡°Ý7fÉ2I€…iÃ~ ÷“Wã“@™C9¯ì–[nQ • |²XT–|Hƒe@σòã¸öÚkÕâÅ_†BZ®Åº =–ùu×]§é™ôcbƒFAa8HƒdÒäõ×_×%løÚhˆ<ܰgÝÝMæÆ©¢ð1*bÔöÊ+¯¨~à’BgèЙ+,Ñ'ôÀD‡xൂ{õꥆ:Ž+}<á„T__~ùe[ÎÚèÆ.2ô/U™‚dž¥eUC:Ö?¾~`JŒµ`³4œ3?®Ÿ†ßQÀh>œ·@|ò7 ëPbΧʓü62‰Fˆ7,]‹Y1ˆ¥ Kg‚˜Ž¡#èú¾™^Ùy>m)%î,#Ó)  m;1¹>ªk¾þ‘_п«¡T½õÖÑžó‰ÅÓDÓZ>“å“,½ VG²46œlÙ²¥Z¼XX¶]ççöÓI¥c¾~øzxâ÷eä…€¥ìë²å™,¯Tù©Üº“ÖU •uû'«ƒFB£Àºð­ép„£¬úeóA§Â!!,d~ÒµÈþf°K-Hy +ó :Qa®†Ê¸8 é‚”‡~½ "é¦þ $H EZ¼é'» $H =áG8ÂQ±ÂŽp„#aUC A*ÙŒ¿­.bù±u¬ )¯UMaUC’m~Ñõ»Á'$Hʼn("ŽÁgˆ«’N!ßâ!ü]±kuEº{´¢8ÏŠ“—õŠeé™ül¦ù Û3ƒ©XañZˆHŒ[â§SÈ—èƒ&ü‹«û‰ßˆ¯;lØWŠ-~ÄJeñ&œžEÉÃ%Ám|ÐóÓù g×Epa• wò7>¤¢Ï.¬—µ=öP¬P>¨…Ê£· dmP¾GÛ`:òO6R,K~€[õ¿øâ ýN°*aALPV!x–Fs®ÔÚï,mÛm/[o»£´n³tÚyWÙq§.²U›m¥;ß¾CY±2ßï׉hcéÄ‚ YÕ`73`l‰ÊD´v‚“[ߨåÉ'àÌ^ þlq.H¶õxä…^Ч€¯Ñl#f “‡Åâõ•Îhâ-„¥± @ÿýÎ?ÿüÄ5áGt×úþøVLtVÒ¶b´>~ˆÊ´Ìæx„°´‰täŸl¤X–ühç ¨G\œÈm0oöÎGëÚµ«tuù­X±Rjש+Õª×8G6Ýt ùæÛo4€yã&MÝó©êžMŽ´Ûz; p6¬ímÞ¥v5 ˆCê”áÇ+¡$ÛNÀ¹À8£Ì„Ö»ýöÛ¥OŸ>´†x¸P¥ 8pUY uâîÓ”ó„r$>*Â} ?IØ=zãQãê»ÑòðáÃä„㎒ã=Ò‚ÓÜ3¯å¢Ä-ND‹ƒkÅÕPZëÀ `Ïž{î)x ’\ÂLŸ¯ žŒøÐENs›aõ’Ö8³Y³f©AbáJ-†/i3ÎVP†ßÿ]ó§l¤åoÀF ¨-o~·6ÈõPÍÓžl>ÆÊÏý¨ç5(3eg4K›´ˆFrK;ÃÍh€K>ÖÞ¢>T+# Ø8 ¼5ëºÔï.Ÿûðþ`ŒX!ÕÝs}쉧eÐÓÏËÓϼ ·ÞÖ?ÆF’»JÓh'P™w®ñpq@Ýã÷f6¼âá¢(¼ëmÈAä}ÿ`øÅ퀲â¯!h9~ Ú‘†b¨S]8×à°âž°HÈ _Œ á†XÚ ïàgèƒ_7Åõm¢OŒ˜ÆŒ£ø Nþ’þ”SNQP‚Öç¼óÎS+«“OâôrŽxЖ7£6\Ì5ˆè8ÌÂŒÞ{¸Ùp‡1ZƒšŠôL  ÆmˆQCn:,G‡óüm® ÊŒËt0Áà¤ÜÏ<óŒòR6,eÎ1¢„NkÀ€Ò¯_¿„u~衇jyÈŸ{Bh{óÍ7k{š1c†\~ùåÊ,#åÀ]ãîF³ö£þ^Ú(mš²ú“y¥}3µ–E±k§::ó}e={¨ì·g¤µt²Dz‡Ö•wE*Na~›°ˆýðZ¡`ô¦¼`³^ÍJæoãg#=€LÃ0Æ ¿ÀÊÀâ…È/­ þ°<OYwú£›€„ë ]3òVÄ÷Ÿb X~ûí·ŸêÞÞ{ï­K˜0, 2dˆ¤ÇGh±0>¸þñÇ—+¯¼RGgXÖfùÂÖ;2Vt™v0nÜ8e'&GyDÁÊ+î Ðz¤¥ü<ƒ R`¤¤Ãbè¹7ŒËË“²í´ÓNZ¨°è\ÌWLÝ¡<„)n@ž‘*ùÝsÏ=:*ÅÐÁZfä '=›TóCä“>ß|®ÌŸ7Wæ¹:ÿñÇïòÛdÇ üÛd•É“&ʬ™3Üó˜£Ï&KÌJ®¤(x!LpÑ;ÚPÍœÞ S°:ùN/È ´‡ÄpvUzÐÞ½{Çãùj={°1ûC-Ò7Jâa5˜EK”<`@Ù¹åä%ÛgXN¤(6RVhâ± 1 |¬ ãùnn.Ümè9“ÂŒÞÌo‹Ei«ueÒ3;ÅÈwæ)ð)sÌ1š÷Âp`Öžßiæb€í–Q Œ« °CÇ9Ô¸Û@†kpÊ [.÷´‰jÀ‘ hsOàž³²Y[´g‚Ë—C9DŸ å¤C`ÔI[f^†{Ñ™ã1ÞÄÂBišTÖ¥u99Ut'MüÅaÎt²:\øSfÇ…ï3gþ¡çŸ2Q–¯X®Öq¥Ý@Áƒååó5z²ÿ‡È.x˜ÊA!ûö>Pzôì-Ý÷Ü;n¨å–‡Å›>–á¢&#ŒÂ •áÌËá%0¹æ9 xéya¼lÕ,|>¼XÂ(DÇŽÕd“Ç{¬~ÐB1gŠmKPb^>— 8O¯Œâò,» ©]<°žÕ6áHâë=è ƒt¸5É5œ3ë#½7ð,ùÞ¢E :|©èìqǧmc`àÀªóì®â# ïO:qMëÖ­ÕpÁÀÀŒÿ'½¿´ÒÊA[ÀÅP¡”+ß,>e\}6ùŒ…LÞL–‘/íÃ…Ñ)ŽUŒk„kÇHdÍBg5y™Eë?_ÃÜ0,+eΆç`“|¥‰ÕwîÜe±«ãßç|óÜá÷ÊС_¸:×ú/\´P¡°œ&×ÊßÇk®sâ3!†R²Ú€a>“\ ‰Œ\Ò®ã;V®Þ@œ¡’å‹ÅÀK2KÂÒ’Æf}é¹m]žŸÃ1ká|ÔÕ$H²m­è&h˲8ʲ'¨Ûé¼<–,òÉð› p²’‡k0Dðyò=øÐÁ믿^gññ¯’ž‰%ôwÇw”§žzJ©ä#ôË£X,pèâñcô0áÅH²Ø:UÒâ·e3÷ÄýA{ ~IäëØ¿¹'çm‚v¯—:P7& É‹úà¤ÁøyñÅ妛nRË›òRG,bêµfm™þs&¾y®ŒÊdõfÅ&×òró¤ª+ó¯~•½{v—ž{í.=öÜMŽ8ô@™ûoldœŸÊ*Ÿùò_Õà© xðø‘èá9o;Í¢×ù ˜ýµtþ6¾(ój4 ¿ó“åÃyÄ\Ñõ–áGakÓ1&|ÿ¤Ñ½› Â(ÚÍ00Ku½Ñ·Û¤°-¹2k–ó¤· 6ç“húkb4Kcà¦Ë¥¼%\Öv,oXÏ56cå6«—ƒs~ÙŒ4ÖüǶ+Ô6/X¹ížI²²DC Ø$›¿.¸´k ôò¸uð!‡É ·ŒŒƒQÃo¿';¸Îmþüyñt’¶ƒeZÕŽm–¦p¼TÛnÍp„£²n#ŽN %;_œ-¸ÑïþµÑÉKvô•UØ;ß¼ù¦ºcB¿:v•íwì$ÛíÐQÉþºï¹l»ýN²½û{Ç:ËÖÛíäöÎt[¨g%¢G•vb„í¦f!ŽqÒU'¢€Uuù׫ßP:uÞ=Q—m¶m/Ýöè¥uÜnûz¾s—ÝeÞü… ´õ ¤¼°¦B&×üA?™›!êóä`÷ˆ±UX¸Èòò×ù Äi¨~Бò´x*Âb•™\f]£B!ľGKvž(Q]»v‰Ç(ÎSK–w,ç zê Ùhc E#ò‹‹Pµ¡4Ù¤¹[DþO &Žâ>{«K€èPXä×É/kT ûݯ»‹˜ø¨®Ô29Z·¦ÍšË+/¿äÊþ¯Ô­× î.Ë–6m·ÑNÀ¶•§û(ŒóË\Vÿ¿Åô-oýG[¼e©4®* ͨúÜTÑPpìŸÆj"–/ñ¢J_\B½¢ÒZ~¶7žÀ%?<Œ{-œ¹¨uŒÑF—¬±X}4Ê~á7àT…ÿ%Îå±E{i‚Néâ‹Î•K/¹@ÞÕ_ŸïòåËdÙò¥º•ÒŒ[ùȃíÉÞeô™úï7™>$›‹Ö%ú›m3åÍ»ÚÈ•ÿ™AOʹçœ!gô;Y‰ é8øm¹Û–îÓÛ¤»ÓäY&*¬AåӸђM¦&{†Ét½ç“weNE2ŽÌ÷hJED'óÉôˆKŠŽá5t)„…´àä~ð&GðéA­á%‘‰,4$ O°Ž¨eÆ5üF: ÊÃ'iý˜ŸFGMzHz†¦D•"ž÷0jyë8hX>hò›M蘓{Ú5QŸn*vòÄBø¡:²ò—uXƒU˜—‹ÓzÀþ{ËÛo½¡ço¾ñ:¹ìÒ c_+bq3ò ž—µt©;Q¥x®þgÀ¹è{¶úý ;ˆ`M 6+!}²RÕ‡èRÆ;í{ï(gyšÞó»ßJ/mŠˆsÙÙn'”GXZÊìO¬]Bœúñ£ÅàM¶ÛËtÕt$•~ðî ®ŽîÂø`qw“íó'FÃVæoF)w¯ÝŒFÊÁ™6âÏÜa‡t7 ô'~ c^BËÑ%“D(!þP’½ÕÆŠŠâ?^C]@†ßødË {²ýYn<Ó0| P!—{`•#£GÖ0“4ÎÓi˜»„µ†±IÊK¹¸'×ú´õÅ‹’Ÿ£ñJ; YÖÅÛPZÇ"g-rÜ_§ËK¯¼®ò²“.]ºêùÄbq}_«Y`1¨bËÇs5ðåùÔÚg¼nÿäzâ°r 1 -h¡ Ëâ;§€ù® Xñ­[o¥õxyðúyå•רŸ›»Ê{îéõÓStÂJâÞâÇFŸMø›óþùg‚GÐï¨ÍAG,œ£uþmÌÒz=&¶­…r$‰ECçüÿ~^Ñ¥ZAÖº·bÂB¢h°@ € ñF‰ Jðq”eeÚ,(SRü“PˆË4~f¯!ÚƒÎ˶S,“¿‰ÊŽî…uŽ …Çêb¿6@5 7ù@ò‡õÆýhLXàXâDÙÇÊ&š>ñEtÀ߈üˆ‡jÜmðX'•û#г`´>åPqVSPê»ÝvÛ%`نɫGøw÷Ùw?×ñuu€»‹ìì>»ï±—k ¹«‡©YzE¢ó6l˜‚ñVa ¥Ät…\‘úÑiF‡Ôþè@€T7FZXöù‚l÷¾–Kç®»¸‰´X]:9éÑsoç¯ÞÀu䫼¡wzÝ ö<©ºÛªU«Àk£ÆEf,ÏýA¯ÐOt„¼pOàúÁ¸°køÎ3çÓ˜q;æž'4$•–ÖÚ.:Ò–Ó&€pdº«àÚvÛm!Öp±$‰* Šõþæã„ºz†þX4^†¬-à I ЇûÄ:CéPbF£¨ø,š`Ìt,;:ñÄx .m±Fi(0Ã@ƒp°Î±>¹Öǽ÷ޫ˾(–/ C½wÀ—Ž&E7nÜXËe1L‹ó¼Ì§iñX sSïùgk´ý¿ÿš-¹w'üâƒLôd’ÛÇþ—ûý/÷N–',J¬4,ù£>ZY<}°í’Î+ŽgÓ3Á¬y—Ñ!®MPÂäAgK}‚Í;)Kˆ?µðV®þž-s\¹§ü6Ië1%.“&þê€l†ÖwáÂå6ôö]TèÏÀÄâàúqrd•çˆË€NgAPqž53î:]sɘuk“k¤££sßÿý•‚4tЏ7`fá:À]Å ÀàˆÆë RÉ\ ¥µPòtX¸L}¨ß|óMä ÝiÈ(¥ÏeÖ Å5ù@3Bà èÛ¡ÁŸ†B€7d€.@ˆeA` \!€hV$t"(=TÛ(²ùÇòBy-(4³ê܃ûÒ8°d(Ÿ¬Fà 1là߸J"6º¸»v,”]²X¬%·ÎÄ÷®³Üp4Ve¶Ìó—’ÿýóÏß’“£V²Yh€/À‚ËsÔæVðDËg>v¸ö 9í´Ó´s¢+Ë$!ýþq :}úï®Ãý[ËŸ¬Nÿº:ÍøsZ‘#²N§âå‹N€ÙR;FP½ó7Ï*–Éa °F™Î àdÄħ•ŸOþfDìtè ¼ FrXÂtú:9V0ð">Ûv8ÖêQ1œk€ ‹—^0ØP„ž={ªrAˆ4>Ë0>-†dЦ@ŸÂÐéÎ;ïTΡ°X»PÞ¸°¢éýmxÖˆ0„…R`ÈŒÂBC„K…ö­‹ŠõBh0;ÀŠk÷ôÙ,3?°Ò…¸Æa¬Ç\CGb~¸¢ü´~c¶û€ß˜KÎ –']vé&=zí§$~z¸ô99L?<ø0·¦·—ôÚg×a´–•«Vˆ¹jšŠï¾ûNý»o¾ù¦¾3sÕD9Éx&¤e¢‰gÁè„5½eñ7®tÏf‹[Ê>½û87I¯X=>,^GXxèaÒÓÕu¯žûºzï^.,±¾õ˜Êrú½ý•*þ¤+ïšç„«Q#0 ôËŸ0FcxØð 3YIF^è?ï€ö€.CV‰Ž^wÝuú‘™u„ÁÇš>ÞŠÙ2L#Ä œ–O>þH>uŸì.›7o¾³ÿ]ƒÉÕƒò°²„m=öÐÎ’Q«Nö¦Z¢Çõø±À˜\;v¬úÇ ³‹åj`2éŸõ}ä,Å!Ÿ|“!Ÿ¸o«žQ'~ÏÊ*¿íÞ6‰•L¢Ë½L'pÛÀa†Þ ›Œ¤Ð?žV*†¼Å0€Gq/>]#‚µuîv`Ý2òâ‘’LÓñ0Ô_OV5Ø 7–‹éq  õ=–a]²ÂÁ)fäšk®QEÅJEip„‡ãZ¬X7×±³ ˜<\¤‡ej†]°œÒ|¬5ü“ ÑHg÷ÄšFaù~Þyçé5F¨‰ ƒ¡òÛo¿-Gy¤‚$>j@ÅV00aBùÿ&“ƒ|·™íTbV&CEÀúÆ*·U¥²ÌÁÄ‚èû¬Ýíã–”õ9`]Zö¾¯›òlé•ί­¾ß,õ L¼ 0®|¼¬2¡C5ot”Ã{çw\;\œŽÈ¯oi,ÍÕõ©&#ø^Øoo­ õºâòKâ†Y£å<æú¨²†˜›È_wk´íÐÀ3ñ k/úňŽñðÃWtæÝ‘Pu1~2Ú#:0|Ŭ,áw™6€®ätЏÌÕ¡¯LlÚo°8דU v3'$/™ôìXˆLÚ$³¶|¢?;‡ò¡dä‡ÿ‘4¦ÔÐP£°¬–Àà7SX®1_¤ãwÿ¾ÖI1 ñÂùuàZÎÛ}ÉÇòµpv~Yý‰§Âv(EG¶¨¬ÖdDÉîSØŽ¹èN¥dù”uHc Ç®.¬ï[o W]}œ{Þ…Îïþ{ès= N¾Ý;Ú™FŸ_²ÉÂd\`e­“®Сu¾Ï9î¹é–Ûåî{îבKŒ%6_ýÛé¼·ï×Å‚DwYâˆõi‚EÊ|ƒ-çòç-¬#fM3î2F¶”‘ôœcdÁßœG¯Í·nî0Fe踭F×Y7Œû‹r²€9y1g›‡ÂʆõhUƒ¯ð¶<Æ(ž±–l[ii#Hù–*1¥Íôu‹þN=Û¥Vy_2¿TÄÚ1U‹-UŠÑÜWÕøÄÏ8óäyYÚØ»Ð½kezÉ £eM5Ùïþõºô*¾íœíÍÔ埿ÿr#“¯½™Z‡Ä¥ÈÉÉÖ-Ðþˆ)ëxy_€!–)àæ î!›(‹vPæ~àÙc±[Àm3L8çïî3ZxÒYp#0Ùi#®åwÛDÁ³±¼¸O”B=•loY·®¦òÌrGcø~¬t“Ô¥[lA= î±ÜØÇìvT°ªûý-Ùy&™˜›þ§Û¸2ýOùéÇQŽäï'ùåçq2nìO2|Ø—2á×ñ1â?÷ùÃwÃeÙÒÅ.àL3]Ï[¬–VÖ!C ÔÉ/kT ûݯӷߎÐv?Ž©eÿyÜO®ü?Ë7ÿ’ŸÆŒrd…ã´žÔñ—ñcÔ*õ¥3’>Ö(ƒ`i«R¢î¢Ký€ÛÉ‚p[Ü ÿ}D;dÿÚh^éØ)¤’F'K¦xe)Hq@»,k_+¬Û‹[™€ki¬æ.«Ðøi|,©«[«º4i¼¡4Ýd#Gö×È}6r+?Ç¿o¤¿mºiSçß#±Þ³´ñxm½)¾|ö¦«NXu ¯›lÜÈÖ–fM]}6i¤õhÞ¬±W¿d£Fõ5:ÛV[µIø¡Óî{+d„Ðp„£Ôëxƒ¦|–$ ìÈc‰]4¼cY„¼ðvtáwr-;í”Z:t訠KYJ»ÔËwû¾„qLW]L¨åíØ±S¡õéÔig]׊»!Ý,±A‚”ÑÇ[2WCè¨Òïãõ']ʃ¸Ë×> —Åiñ‡úAZÊ«>Å©“YÚþsG8Ö«kAŠöù¬ R¿¨¤ËhydJ‚Yo}¼áG8ÂŽRÌ%ÿL A‚T’u¼áG8ÂŽÄQqëx+‚!8DÛR‘’Š?Îß]zXÙôß/£…_]ŸÚ¬TD¬†è¬raæwªí¥Ñ=þÑ´>)cqÈ “‘&+g8ÂQ˜Ù%‘Æ¢%»ô·;'‹Y‘J/“}F£Ÿùúïs¯•Dÿ+Rß}$¶6ǘ°sKÓ¤’·Ñò_N ¡gœS(ˆmñõÓE•”tÆÞji£/ ÊBB²EÒ”¯¨o‘Ð|Ã@“Žâè4ºBøI¨ˆ7ì ;9O¸Óh¬eÀ AL÷¢i’é¡ÿ·O‘åë?ÑâˆNfù–Dÿ+Rß­Žl}&d%QøˆáRØÆ?>tq:—LW!)ï öpQ£Ý&¨ADØNJt'€ØïÍ ¤ îÌžt¢ö#|÷Òÿb|b54Tž…`ô#|ù=¤OÈzO"Kñ7÷"Œäåçíß/U¾AÖ1²ËI“&)« » fcÂßœG·j:Ëuè!?‡ª1£Ñ5‹Õ‘`Nvá3!  ]X¬]Ÿˆ<|W†í$\*ñŒv)ª§F€iúO[$šZ2+Ò"Êù„™>!'â[Þ~Z?½÷ÓòQyóª- %j×Dó¥£ ~à@enw2¹fe \û÷YÜN°r” æaØ d4êüÆ 3 k–ø¼XüÆ ch…ص¾«‹‚¿éIm'–BDè@,ˆ‰-ÀË$h4q}¦È®7‹¿-_,ð`¯§3#q*<úÂ9>MìoôÛ@ÎbRƒÀ! >d¡° “D¯Ð'BE’ºìë«ÅÔ½à‚ ”;ÊÿfúO¹¸—Ña™þsÎñç‰ KE4‚Ÿünm]7 À$Îû–·?Ò[›·zÑ1øA¡('ñ‡‰}MˆKÚ6¿[ùø$ yñ²sžøÂXÈäY^[Á׉É5ëé[‚œ{—˜£Xl%4 5º1PØÐ‰Ú¤ž!È9/Â+ûôé£ÉPSn»D–Dˆ"R?–J‚…B¼^øÚÝ 34$^.A© Vý¹žü¯½öÚDØ>ˆ áÄ"¾)!(+K0ž éŸTóGrÅ!»´OFVX´/¡Q¡°"®4qvÑ/دá¦Ã²# quáTƒtëÅ kÕp¡û*±©!Ä„-…üA‚ÿ«úØcMèÿW_}¥úo×Rfò¤S€(]‡0à¤n\CHJÚ‹Ìb'†0a)i£Ä $iÓÑïÝ»·|üñlj<c 0îMY ²¥½q_â ÓfÉ‹g@^€Â.Í\s0ŒÓaøî‰0¹–Ä: †ÔË’žÜNÎË&Fàiq,ÊìøËxèÆ3Q"€6 \6¤Â"}öÙgèáøâ%c-£xšF‘PFüK0ñ Pt^:‘°(T5pVqž|`¶ _X`¦á|úé§ÊgH×OoQd—5ÌŸÁ÷‡ßƬ‚ŽAÆ áóÄ àH»€g æ7ß|³²04Çj¦=Y|_ËpC Rë¬)0Q†ëH,j@0'_ôÜç3ë’¶…¿Ä@¢Ì¸4‰€ø–9û \|Ä$&/Ú $§ÜÀ8±˜qb€Á‡ˆaƒ!0cðÈ´YÀž{RÚ31¼é´}â Ó1TÊÎëêQê¢D/ÒÀÚ·JøåFY9 ‡G‘ì7‹±j~ªÙýŽ,W\²KûÄšd”Æ0‹ #HÖ æê²É'ôØVùú‡NÒ6hŒèp[ŒÝ†ã¸p_ÐNÚ£çHȷܹ±µ>më˜v…un“x€ ¥…ÙüÚÐoá&Á=GYlþÄîemß1rÞhïŒàVdÊýÞèª@vY) “i8Óyð<< /+–€3?-çy™8ßN,·½ V+ʃ ‚ÞØ^ ƒ•€ ã&<p¬øª`ïÔ¡g€IoN,cüRÌ:s_†U\c„—f­£Q¾¶ ë—Ÿ—Ö7"FLê“]ú<|¬z€ÜKÏVËÛ:w~óÙ#pIÐN0,ÐQF\¹¥1N@Ff´xØðâ§\• àÓdæ5È‚M[5à3"²¹b¬À݆Uʽ|ðA%|å^ŒLi'Pná£ÆGY°X¹–{ÒÁàö£|þ31_¸­°ðÏÙdgV%Ð&ñ¿R?Ú-m ¿±ìuÊK¹È“çÈ| uÃOÌõ”—†÷£ /s2´M:Œ´õÂÇ[–!°ãA¶X”L"`¡QB>S>ÊÂÃ7 ÁzgÈ2ḲÙM†6Æzk+¾.^”¹ ¬ \ÇËçÅ1„"×£Ü(×ÓIp—£˜äoC:~÷gUÃð{ýs…¡›øÿ±±,Ì„¿ro²É&‰¥Z6¢B‡|Í- {¶Ö–’¡c6y‹^s-yŠ´ Úƒµ»ŽrÑF&Ò`D`Lð;m#kÛ¶êr çÌmfÆí7y ç´îMmF‹´eÚ-LJ~¨î&Ç_:Òs/ÒSß:µòÚª îeŸfȆgÌõÜ×HqiÓtH>ƒwp5ÂÄËËÆzäA2› 5V#//Õ–A† X«ô¦d–Ë“ó¦Ø6L1_×Ñsúeào®³!×Άv=ß9o¾µèpжWÃú)  [ú‚‘Àyt=jLøD¬>øÚhÏOƒŽY» 逃nF—«ùCwŒÒ¯åM~œã7XÓÿ(8–-yázó-Kk´Kk/%,oHY5èµ½_Žèª¿¼V·(Q­µc ç  ãâðÝ•ÌÕP1 þKµ‡%@ï̃õýX…ÓŽRŒGÏGƒy' ðìš(¡ Þ~³kýûWn·p”ÏÊ#»L%èztIYT“éV4€{4M2½Ž^ _”þûyÑOßW¬=Úut¬‚À×Ëj Ýh;JU^û^XNV†õ¥í•ÚÇëìÙ6Â`ᨴ "Ùe2áʶFÙ)¸Æ·^Ùð`$«¡=gÀ:ÞdbºX†ÃŽp¤×’·GEDQê*ëlÂQtÿ&2áG8±,Þp„#áGl° Þ=áG8*ôH¯«a‹Žu]û‹Éøô8ÅÑ¥òÒ•ì’ñˆÆK$ÈÚŸF§° ¤ ÇAŠ£KQ*+Ó×_ κ>vã ’éB 6ðDÛúT žU¢Ä‚µ©ªÄo¡Þâø‚r¶5²m’Њl$@ ‘ƒÉ4A7 ŽOÌgÖ­ À!ÄìÄb{{Ðá … 8Þ{àŸíL›«¡(àµ}ä»í¶›néc«ŸlÑ $ÓÝdK,ëOaƒˆ²9–(^ÄÁ Ï+H*!lºDŒoðÏB TðÚ®4ÐËa—]vÑ@A‚d² §DÆ3‚Óh~‚¶T)<« E鑘 ÛíW.¯/ LpŒ A*‹ø¾9+,†ÖLxFAŠ’hЬ [N–*¸E ™.ɶ³«Ò{[aƒ)®¥uEeŒ{ɧÍX¶Ä#HòÒA[nô/H…Åã-*úXyÓ³ÐùÞ§HI7G4\ey×+HæÒ¸Duc9ÁÏËCÿ‚d­ûÔ?éBy?žfyZ܃0uлCÑb³ÖÑ{…ž}Ý·Z|2Wß?lºF‡#6üaƲd½×Š‹NfŠIpe"Ü#(¢qR{ª?ÉÁ‚dÎ#¾5Áy?:¿3ñï1ßÿýßÿ%Î[~Ñ Øò°²˜«"Z¿¼þdŒÍj†cÝ=L¿Ð]VC ËfÙàò>Ô=ð‰A³Î"{cŽêr2½·sáX¿ìÒº ¨ —<餓”@JhBX¸Ž%Êú7ĘCQR8¢Œ]Ô§Ÿ†Ð’´|ÙîKkÛø üé§Ÿä•W^‘í·ß^ƒ57nÜX¯5ë—†×ñ<¹¯•Å/›Qq?Ò“ Nª¯¿þZžþy=o\Pá¨|€ZØßþh`µTêè2zý /¨> W—]v™ò¨qp½âxÔ|ÊôÝ2âJ_ïÑ«¾•S‡*Œú'ºÝÒ§»F, ޱ^{í5=(ÒãÃR =4Ì¥(€ùøãË-·Ü¢ ¬Æ}B¹NZ®ÆAãOL«(:Š ¥4ü~ýúÉÈ‘#U‰¯»î:e†Ù˜4n>óÌ3ʼÊwò4h²¢¾÷Þ{2qâDmD×_½n¡.³fÍÒG>ùä­u"P­ñEŸAÌÑ×áèA2]æX§ÑIt†k´é€¡:ÿàƒ䢋.RpÆ*þî»ïäæ›oV¦lŒ ®ÇA_Ñ£áÇ«.£§¸Æ`Ɇ*MÖž‚džøøWÄ$ZÉ\ E± Ûð‹Ï¿þú+!#½9JH/Bµk×NÃR„:è×_]·hB‘âBý÷ß+ q ¿³=ïØc•/¿üRÁ¾øâ‹•u®(#¢dû–4×€9NÙš6mª pdK(ÊߥKµF`èçÙ…õ5×ð k úä“O*{*ôYîËý`@µ=þþ3’™‚þÙîµè:^s‹‘ÆÒ¢‹42>Ù"zå•Wj6Z@eþæ›oªn`Å¢w¸ÓÈ÷ÓO?Õ]ptÚèºüÐC鵇z¨vÚèݯ¿þªº wybpp¯ð®2_|ü+Œý8í/ŠÅó˜1ctó¸qãÔze!:ŠÌBãÛo¿]®½öZµ8ृ†NzòäÉú‰ò¡°'žx¢‚ñm·Ý¦y¨\C^äBâ¿%-ì®(>;HHGÀŵÁ1uêTUê /¼P”<°2N?ýt½…Føyä‘Jc, +™rQÏSO=UïÕÌvÒ)S¦è6i: ˜“ÍÿLÝ:û$s„ÑàùÍ7ߨE껳ø‡ØG}¤ï!=:`®3£f7&_:w¶¢7Б|ðÁ:BÃ×˨«OŸ>jLpOîñÆo(°¢?–?z‰¾}ôѪO´ÓŸõY2µî¦à«ÅiH«Å[ð¢„(&`và*öêÕKz÷î­=<Ê Hb…6oÞ\‡ýl×è°:ðµšeL~°•Ú„U„'-÷8î¸ãôZ¬]–©­š@á¹–ÚÄ…åi½ÊÎß܆blX6æs¦P?òÅíàZyɃç¯Û¤žÔÂÞ¾É1jvÁj±•è‰QÙ~ûí§ïpß}÷Õ˜¼_ô}`ôÅH b¶ÕV[%(ÑýU<¦c4LF}vü¹ 4P£ÑzÄ\iqSÐn(çú®G™ZwÊ…Eèø‡^Tè–a‹—I'£¾üø´¸§ôàX˜XLxvœã@é±"IO%°nñÝ^pÁº‹ù?ÿù¦ç^3gÎTË“JÒp¢Ëzø›Fè6kÖLZ·n­ µÍï[o½µý(£0€JüM#à^ÑßðS[y±V{"Yá§Ãßǃ§¾¶•üÖÊÌÞ ï½¢µIQÓÞ!º šó ¨ŽŒÔáëÅçÏûÇf!%q)§ÝÏVð GÜ󨣎R÷ú‚ÞÓh7è¹>‚evÝM/xoèŠéP¢é‹Çëʱ%U¦4z¼ÓN;MÁÙ/G8*ÏÒŸè¹dŸ¾8vèÐA]Oønq¡¡gèÍèÜÑ[tŒ½ÀRFÇùN>tÖXÍXÏè8>â C•O—J«¡â6P˜%ÁäY4J;ÊŠÍâžbtìØQ–açý¥>œÃÅÀyÛ|ÁðÌïmüûYC!­ÍsOÎ1L0%çwÒ›ÅÌ}¢¿YèKòA8€sÞÊä—#ë.`›åk:凕Dwl¦Û†¢ü(›qà ãz>9‡.‘>èP8Ò¼¦¬XŸÉ¬a[OÉ'`ÇÒÜ XÉLBø×`EXzcÞGóŽÞÏîaŠoÃÿw;Rýæ—±4öw1{½p¬‡é¢¯SþyßEÕ#_}ÝŠêr8Ö½¾[21:™õüX þŸ A‚YUTw`n‚0Ü G8Â\ áG8ÂŽ2Û–RQ“káG8Â=Ò·e8áG8Â,ÞµÓ•y›I‚d–„UᨌGÞb€®­Ê`}ò”:ÅNËFœªU«ð GåÞÀ—T4Ç›mñí·nïþ×n;èpÝÃ$Íòõ01b„“ØsN–Æž=¡?gÏž©ëe£1wƒY œk™Ë2ì×ËsèžÎûØ®¶Ï?ÿ\VæeIà ›HzH½úV˜Ô­À{­-©ëži£ÆMeî¼…²`Ñ2Ù°Ñ&î97L’.þ<4rÔ;Ãeº‹wËF…tðî­¶è5é|fE•-Õï…+Ã2ÝQfÑŸ,jYtß¼™¿µ¸8yGýy…Ýß·R‹{ŸÂ¬]†³lÿ¬Q«ŽtìÔÕŃhµ”fÍ7w²™~nºÙ²Ùæ-Š%¤m^’ôNZ´hé¾o)Í7å^-Š}me“-¶hí×Ñ8mÔD¶hÑ*u]Ýók½U[ÙbËÖò»‹Çœ.¶i­y*))ã´¯ÃÉÚDº¯+nKÒ6¢íÃvî•u´á×͇ÉòMUöÒÔ©,Þô1P”drƒ‡fLÄ"¡}g÷šO^Y –Å;^ç“`’†rØ~{?~Di릟®.U«T•åË·@–,†æ%GƒìT¯Îvhväb‘îÉO&üÆ®=âI¬Z¹¢Èô1Y¨÷úë¯Ù.ý|­ÏÒ¥‹õ|á×UV!ŽÆWÇ%ú}qéu+®×øÓ¥Ë¸•Ð éhaN-Ž¿ó’ƒxFöj¤«~žÆˆŽFËjíÄbý&»®8 åÉžm÷%Z›QLˆçQÖ2ùù›Ñ-[‰—T¼Å›¾°Åí±Œ„’ð‰PþÀ a!Ö¬`(QÇž{î9e¥0 µ‡íá9Œô’½0MøCJ;ø›ó²!_ãpƒ‚%˜Ä¿.Ù÷d†þ®çÝ}óòõYæ¹4ŸùÄ!>'o;8‚açææ%Êç—3Ætãk›1s†üñÇ‘ôyâÅ®~f¹®.5OÝ£ßb‚ ȼdÉRW¶líL×Íá°Ö¬ètî]äÅàû¡eÕeX+ðÃd2zôhe&\é„ ô<ükÇÀ‘HzF¸J43_—Ða ®%ŽEä‹‚à·²=:thb›½]TG£+o’#Œ""³ÚÈaS¥÷Ý……†¿ OT¿?þ8Aè™ìþÑ÷â·5_ß-*Ü_|¡¿ÐF1>~@–-!gùÎ{ ]ðЯp)7bô9T€Å[q«ìeRYd~£FRb@“Û aš4X Äî%ä"VçŒNÛ¬^$ Áy>½ •6½¿8é dICöÅ"ªA¬y!Æ¢AZ®³›2áwS0ÎàX·ÅŸ¹ù(I–‹É:W.¾è<™ü®»îÒÞ”‡ [L¿ô°üM sÁ}÷Ý—ˆ‰ àr-V p%ä$4Ú¼t{Á4Àšüx©4ÊN¾€<½7×ó"Q"˜…ý<++¾ùq0À=€µE^ ,•i¿OsÏ¿ ~ð¾Œwù<þä³Ò¡ÓÎòàý÷J ç*àÜ;ì(¯¼ú¦ô=òh×@“[oë¯Öì/nH»sç.òècO©5Û¶ÝÖ.Ý®ÎË“O<¦ƒ’ñã~’Ývï&vî,×ßp‹kŒ½µ³S·GÜ:\wÄ@7æFÐÿv¹s@¹{àxçgõ_¯Ï^]iœHñãHPŸ ç€ñ£éèM,`cbñ¯ƒ-F ´Dïa°€Tõá‡V Äð„øKp‡ÑâÃ?T¢L@ ãÅ€—û ·fUb¤œtÒIò–smqÝû￯ÀäÏ—Ð> &âÓ< ÜN`ʵ¤5žDîË+OÚ í °ÇŠÇ¡}“ž6Ãýq3à*£ýò|,t&冹…zq?®§ÞZfÔ`p1*¥Î”ñƒ>Pã—`ɳ£ã£î”g…ëê-ÓƒtBtlw`í×h™h·àíOÚ¹uRëÌäZ"“¸ÕÌ~c¦à¥ð"¡R‡ô/6¯®€ˆbÂ`¦r¼@¬À÷=>=9Êa~>yùLF`]¢l ÂÈjimöØ‡æ˜Æ¥Á DQPTc¶!‡ù·È‹—ÏP|XxOzÎû3ЦŒ¤¡Ç¶ÉñàŽ\ã,WÎ%Ò²ek¹½ÿ@¹ó®{å´ÓÏt׬ԡðO®3ÉÉ®âÁ(u3ðˆW­\å”c™Ûüø=/Ngpc/Z´Ø)MCyíõל¯ú+yü‰g\'Ñ7ôy Ò¤]ျjÕê®ÁÕreÆÍ úûº$jõæÆ&Ù.\$^|¹<ôðÚß|ËrËíwê#¿çåjT”X—ÍuÀD.4Tè¡YâX_6Ä.—äo,9Ày‡vБÖ-C~¼c?P:ilRˆü°ö¸—éd²I³èu6*3Çø@·mÎÀc$Ú²eK½ p4&nóõøtüÍýiÏÜcF|´€ ÃˆÑ:~câ P±ž© Í€ŽûB†À³Á2§3j¥îѺ’n܃ðÙá²1L€ëŽz1ÀšëÉ›kÀŒ-FÉlÆáþÛsùmr­PW/’+ @Ŀʆ3eJg~'^°MT` ðpêÛ°ÅgšŒ±–ÙÀÀÄŠ µüã?®“y ?x(Ö,|nä˵XÑX ™ð33ôáw³í>æÏåÞôÖ¦PYqë4æåÍOXe:ãìîe[·n§¬+ÝÐòogõÖ™ö¾G$Oz\Ž?þ¤˜•«y‰.EÛaÇä‹Ï?• Ï?G­‹à‹–u§üXÄW\~‘|ðþ»’S%6ž““­KÖºvÝU®¾òRyïÝ·ˆbNÞ:+<³i¿O‘ýœ%õèãƒäÈ£‘?¦M¯èÈKëðÑ?'ºÆp˜¡>Cæ6mÚè›!otÂÆú¾òÊ+ª£–€êëql9`Œýã:Þ;80„®Iç:¾û×˱•àÁÂe˜Íê Ú–;å¦ÃÀ@}¸—QcÑFmÒ†ø@3²+·?‰gn[Ffí†öÈcY3ǃ[Ç%H[6mšž‡ï2Ðvé¸'܈FñEþvêin>yî” 2ã&1«ŸÉ<~ã™À—G'‚1i)ŸÄ×™U öðy¬T`ò ÿ=?=ƒ̰…!ã0=7×1¬çá¼Gy¤¾,,`£[4mRë–I.“läÀ3ÔTy! °œ¹ yÀ 7Ã@šò±š€ï”´ ©PR€—É‹Ìõ—*eÅ +–0-_¾B•çÆ›oÓÞÕk %¸äÒËå¼ .’›nvÖSlÖ£ÞÑÿ.U$îG#pçÝn¢â0uCÜá¬æœœ*êïmÙªµ\}í ®ž§hO<ùŒúr¹^‡šîšëo¼EÚ¹gMzuY¬s>^&×VGOæÎç:ß.²Haµ_[Ò8Sm“6èzÆP•a+Cbâšk®Q$²ßàOô=¢Cç}¡;èÆ¿#€@2”ç ;͆éX€X’6¹DÀ‘ßÑt×hèɛﶃá7eÅp`HO]Qb1ü§3¡½Q6–6{òÉ'kçñƒ…| '(¨sù²íÙp/Σ‡wrù—é4 ‹%Úm ÷¢­AÆONypÕÐ~)“k¸N(»åK¹x¯€'yòÌiò¤#y¸;¸£jǹ–çAyÀ‚fε‡’vm”Këܪ³Ñ——ÂâZÃaØb…—a³­¼´víÚ)8[ŸÆ†}€)š´ +¬÷âóëøt¤ élvÚ: Ž¢ó·-7‰–‰ïþr²>œ|kð¹ÚÞmýb^Þêµ»( ×¶rŠë€!±ÖÃåiéV¬ˆ¹$6ßb ýÎê„Øõg¬­'[µi«cbËerõ».gs÷Ûb‹®ì õÚÄ*€uHò#uŠ5nIX<ÿ™§sEƒñ2rc•Œ€) ÁȉÎ1÷€‹[‡Ík`ÉÑÙ›ÁÁðØ`Ç9 &ˆøÎpš +@="Î39eLÚð[8ÝaŽÃ–rYûcX+¼ùÕäûôÓOëu–·±ã±?9H{ ®±´Üsˆ³òrßíë€ü¼ý:‘ÆØ–ýÕö X’†ßÍ_l\‹°ïš±tÜ›ºYYüûX}HÇõàŠ1:Û9›òËdå@üÝu댫¡¨=äÑ]+Ñ¿ Û·*mqï•*}qËäûÙ¬1˜uQ´ä”ãï9Å,C%†üYŨ£®uÍVŸztÇciõØ–=aU!ŒÜaæb12:òc ˜EÕ_Ÿ%ÛO÷`il§g4;ýÍg-ö™½£ù$;gß-ÿ÷ÂØ½ý²&«¯¯deˆ–?šÖÏ?Zv›Œ^ë3‹'«³ÏQa!C0í—ÑkãþXàv«;Fæüó·Ìr , ’^™éfÑ縅òÿüó—>ãÙIÒÌV™%º ›?§MQ·^Òñ¾U,+‹½à‹Y\!(~2o !‰ ?hhø]»tí⬫å.pËÙbàûµ#büiìÏ2sÖ?2íNfI«ÌY³ÿqÁfFËèǺçü—ëàÖ|ÎüéÄ}þ>mºF•c­¦ì>á¨oºIê¢ç-àreõÁ¤œ=ç -‘½zövá»Hç®»Iç.&»zߣçSý$*;wÞMvÝmÇ£¶•Ûù×V¿wê¼KÒtÜsݽ{OX~#ݳï3)TV²KÿÞþ ‹t—­<ò ²âñúë'öY€{©l“L)ÞÚ^ÕP¯^} EÈ:ÞùnM/ŒÈ‚óõ“˜¼«?çh˜GvÝè¹xÚ ©…gôï¿s5¶ÅB'ÄÁ˜7wnÒtsÝo¼ƒºîäGvŒ¥#&otq²MååÒŠî³ %­Ÿ¿)Äß@P–˜ ö‚3Ía Ñ- £mÝ圔Æ#™I«b<[;2žµí‘.z;|\Ç_Z"]ð­¸öÝßYH:ÞrI'Ù%zWÁ¦¿íÏL¨]RÞ¬ëüª‘y„†$àÅE]¤‘ÂPR".1d÷ׯJÝÒX×ÄšrÚžxÙØ^qÒò‚ìåd€³W». JC!¸Í‡¾/½÷í!_ ûRjת­çssó5Œ$t>}]@sÜÄ(zò‚)¹!?oulÞ\÷ìVEÄN–Ÿ•žÍÄpE§è 1e9OÌY º%»D¯‘¨îúTEQËÓX/нÒÑ"1rĘ!ê˜"jÅF-Z~ç9ÑîŒÖǸό<–´3s¦Ê3JÂêßǘ,zîÓùùñ7q.Œœ€X¹. N^\Gxòáž1é)?iy~¤ñGœ§<¶¼p]ß23PÄüŸõ´Ç'4JJ8:.±Aq=ì±Çú‹.5 æzÜX„Ýã1a¹ùŠ×öN@¬ªÕ–D,L#lnØHc忏 .£F”zõ¸ºÏpõøX;ü?Š +WÆÂHk¶x’›à]‹Y½C‡~!£ýà:b>?wA䉉Lš覧Aúh²x ÆFa¾X?”ä»ï¾«ñt‰ãKÜ]Â*jÑ€+0…Xž€‘´X.g~c˜¸iÑ{¨r° Ír¶íÐü1¨‰ÐÞS˜—ˆË¶EJc¬€ù0—Jæ~ xÉ(+Dü‰J®!H:l\}ºÑèP>Ê1ƒ‰Ì= zNì_kËÔ à¥ÌÜ·U«VúŒðáƒð°Ág£ÊÃýx~\Këd2}É¿TT¬›x¢Ç¢×çà¡C”‡Íã7£ëàá¡XÄÛä;dw¼ ÀåäErÄl °+€²£è-ØÚƳ4da,Ôc®|üчÊ$qûm7Ê—_~!C>ª†¼üÒóÒa§Ž²½‹ºtégTQþ°ªÅI€î*¥·<ø%Ù¿^Òç€}ä€ý÷–ÇyHŸ)¼sy弿:K¥ï¾[ÃWñ{áø‚C»°QpÐAÃÈpA &†n£B‡€ÃúƒÐ!h9î ŸÅ—8ÁŒicŒÍ8¡ ˆtÄÚe(ϨÓâøÂ@AZHÈ›¸ºfñ2B…á ä¼Q×›ûƒx¹Xót\5Ïït4´qò¦£YxذaÒ§OM `Xœ¸àpy†7Žò@ F™áN£ÍÓÀœÁ¨á³Ï>Ó¸ºŸ§6/6Px!äx ¼|”r?¢àã.° 3”JhÎ4šP{¼X€Ñ=zôPkØÈó ¿ö)Ö3cò'_¹À`‹øã?åwg±\pÑ¥.@ûærÑ%—;޵‘nº@~ÿ³k :Š÷£Ý÷ñòÚ«ƒÝp¬~œ#-?HQ’¿ú;ä~øIå´ã8üˆ#åÅ—_ÓQ„ŸüÒË4\œ¥XÑ™z‹½ ˜aÕ¢ÓÆT¨0ÏÈ@fNÃïÛ„ºŽ• cì XÏ\ka(¹/m ƒ`‚ Ð4P2Ö`ÒÃh‘'mQ&t9X¿çw‹ëKqÀ’¶‹ñš‘XŒbF¯t§žzª– «~7Ú2TGæ6 ?Ú2†ÁÊ™÷Ì °µØF[…1[ ÁÎ\žå„”–ÀN ®3«Ê‚Ú6ÌDéi¡ô ’=“ &¼@”É‹exÅ Áâå…B=2aÂe¦·ÄúŒ‰pÏÆ 3Æ6™PÝéËnxµ“ô9ð`'9 “C#F[yú©'äÁ‡•ÿÞû³hnq>Þæ²oïýui™ aƒ…‚Ê òÊ«®uúsÜxÓ­:D…ãÎÜ7é²x} 6¥5±íÓ®šòð5Ò!7ºÀ ¯9`MÁE`×ùqcío†í–0÷—~a%b Ò–˜CÈ¢soòźÅêÆ‚†… Ÿ}ÒÜD9`i©¥D¬¢mkpÀÔ<8­L07 #s…ðNÇîK§€Q†`éÛhˆ `Œ°ø„9pwX9a—ð—Ø¯§¨±°‰uu5/ˆ—}5=!ŠCïG(OàCBIÃË¥÷†kïáÝŸ‹…ÀÐͨ£3Á{[.–¯“e]wÙU9ìp?–¥ss•'ë˜cŽS÷½6Cäzõ빡åU ¦ˆ0iVr±I´… H¿3ÏQÀEbÀå:ý46Fß}°³‰/fFÝ€®ü›#“Ç Å$@މg¬Q|¯ð‹aáb±âJÀÂdŽ«ÆÚÅ@Á²4î1k Í»u릠 ‰¤M<Ùó$kÇe€ïÀ ™ „ Ëß,×sòÄBE8·÷Þ{'V?ø“ޏð»RÊdyòLl¢Î–ÔqÞ:¾©,D´æ77Z0:QëXx†œïر£gÜûúŒ0açš·ÌÃÀ—²<–”1t‰ñ‹­PEáwzb†*¸Ž?þx} .Ë9ÀÚTéÉÉ/k Ó&ؼʋ¶Üu0;:`­›á•,õG6rÀ6Ûl§4îLÀqÍN:&¸ÑÖ5öò¤wÏÍóÿŽQ½c1™ "ñ[|UCºÖjûf€#V¡‰¹|F£›,Åa‰2_qÒI'é0)¤¯è:† ÆD¸h+ø/ñ‡2´&O†Þ5¾`îI{¡Ðv¸í„Ñ!îü¼X‰“ßqááÊ`ùÖ/e6²L:òg©'y¶\Kžø¡É“ea~ž6ÁÆÄ9~jc áw‹QU­T¢IŒ)/!ó4+ØÊÍÈWÃèÑ£ÕÝ€¥‹5l ÎývÝuWmï`|u¬l ¬¾o=¬ãõ„¹ áZ°á”õdfØï|hcó·q2O”q)eÂC_|~^|•¯»«V®Xk¨ùFt¹LÏ›•†•Ë®¶`¹–Tò“žÏÎÎZã\^l²ÆúÓÒºÍ\€†‰0†ßLþš0±Åì;ºÉÏ~ì’I+Èñ¡âfPlÕn8ü±°åÆÖzçÊQG¥÷aR‰Õ@Ü€b2 ð&O®ç^L^ÑN+&Õ˜beã8ûå°¡;yñ;#I®Ä!—ä;“[äÍ});.: ®atjLÆöL±ZÉëùçŸ×ë8CÊdÜi€1à‹EN'½0¢ÈÆ#@ˇZ Ð7ß8.JêƒUŒ/‹ŸIKŸž=¬jH1#å9ò—ÞDù“ Pí¼?Ù±¶×,-w•œ5Ưîñ¢4Rî̦ë®ú‘ØD§¿e¸¬:ÌûÂÝEcÇW `ù‚ïàˆ±?¯^Z†¡ñ€UÎðÙvjšî`Tð; eçqp`ãÓ-¹ž|̱ë¹}·ß£„“¡]oî Ÿø’ïv­åIÉò4— `n;4­LßÍê…3 LÌöª ’©b:ê³Øú>^Ûòë§ $•.YætoÒ)Òâõ‘>Ypè A2Q|Êðèf›€ ¤()¯#»¸»·ÂŽÊºí»°¿+zy’Ñ·¯ Wü(h~-ÚÙº°¹ÅÞ•ßi‡kA‚T¢£1 å„ÕwˆcŸøôÓÏ”…¢r‰+³£8‚¶ˆxÂ>/€ Áã?s,…Öï³ ­»–‹ú}"ßÿ}ÒXá府,áGú,oüÎP÷,YºBzî}€ìÞ­§tÛ£§ìÞ½W¥’ݺõž½zË&ŽaÚ ?/~õߎ6í¶—=÷•ݺ÷HW· ­»–«§ìÙc_™9s¶Lœ81ÁoWa®† A‚¤G‚/\¸HZ9Fj–¶-[¶4Ü}i¥h®æÏ_ ÍÇš &—˜Ä4öàê5jºß6s¬óeE¢ž•K µ…^ªùf›+Ùª‰OÛ–á0 ¤âÜ €Àµš_®|â¬^ð_>÷0žÅ,Ï›Xåêàf Qm€,êÙð[Œ°weîÇ$'HÊHp*cKcÃ@ÌÚô…sµÝzåØò¹¼¤ÛaW­Z™–-µIèæg•8¼€ÑÃËGyn'·üc±ŸSÕϯ“vTB ôp„#ƒ}½q”J*l°¡l²ISXˆmùŸ3ñC?ÿLI(£Ë@mMjýú LÈ¥)‹I2hÉÏŠ±o—$êA}7n’ˆ`uòËžêœ>Ù9݇P»–Œ5Rn»õ&e0^±byÑõ+¾!] ’é.‡Ò Ê$Ïÿ{—œqúÉrf¿Sä­7ßP å¨ZµšÆ`ñÿ¬Y³°®ÐØUªTu;öêêµ %~åçž}ÚÝ&e¶.]{þ|)‘ïûÍ7^—³Î8U.»ô"=z”ž£l5Ý&@™ÕüˆúROv!š%Êoœ'­±˜k±ËËu£gQ[‡T˜Åu«¤ì2 ƒ©8Éò|°%•Øöçy÷·e¯½dßÞûÉo¼&Ÿ}6Dÿü®Ýwßp«öV°%.ÅìY3å‹/>•ŸÇS°úöÛoäñÇqç>wä¢KJ]«Ï`ìþÅ,Þ¢­éjÕªËSO=.ŸùDèsl³í¶òÍðaZ@sÔÈô·¿þš­ÇüùóÜJƒŽþGùòË/V;V2ÍgŸqTò'"‹M›6M† ùØLúKª9`Æ·žãÀ;/îcO]¶ØoùÅt ‹7HL¶v‘2øxñÍn¼qcÙs¯rôQ}eï½÷uŒËãÀü.‡r¼ðܳ2uê9÷œ3Kï"¹{àrÑ…ç¹ AïËõ×_#Ÿþ©Lž4Q£·½:øåDð—R‡ÉLZÇo^aˆ1Э&S§ü&£G’뮿Qºï¹—#”=LN:ùTM3hÐòÆë¯º5ÁïÉí·Ý"ÿþû¯üüóxWÏåÝÿ½%=x¿Üs÷]j OøõW¹ñ†kd°«Ó³Îšté„ÞÕ_>üà}xg™>cº³|åìk°xƒY&ز‘Ê4¡XŽt–àûqÖÜGÒnë­uø¼U›­äžûãŽ?IÝ €L–›ÅésÐÁòäãÉgœ#ƒ_yYN?ý Ùz›må©AOJ7 gBKJÑäå'¯‹N®ºEnƒ¹óæJN•Ù¸qcg™Ï’ æ»ú-×2uèÐIAøò+®–zõê«åZ«VmWÏ6rãͷ˳Ͻ¬Ï¥y/¿ô‚ôì¹· zú9ÇR}¸ÃlôÔ²ÓNäško”jÕkhš 6ˆMHÓÍ %\-–“ ’‰¢ ”_ú¡½»|¹›ÂUðèøk»Ê¾ûî§CñV­ZëàׂÇ'ê¨M›¶2ëïy¼êªôŸ9st¹×ìYs«"JUžøäÚÖ_–((5Áf>kʉ^Ëù¦q=®€òo“'IÿÛo“›n¼^~q–.åd[¶låÜ.«tr¬^½zê‚™ç¼ÝÖÛ¸Ïy²Å-´¸FŒøV.¿ì"Wße.ZݲdÉ☿·¸u”b[¼a9Y +e\W X¦÷Ýÿ°<鬻£9NÏå®Ê•nû.mÐ]ì€ÌA‡š%Îå°Xª8ëw¹³"/Z¨ÃpÎá)Gvæ"¬Ê¥K—*HnÒ¤©Ü9à™ã|³cÇþä,Óç…ZÝM’C=Ln¹õí0(s dç%l±³ôl¿c{yå¥5pù;ÿ{ÛYüË]Û®Ò±c'8ð^9ôð¾²Á†Ä7G,-Ñr·¬µÅ¹Žp„#márÊ4™ÈnãÜsæü#3gÌÐd¸ê7l(­·j£àÊ0}Ûív`½Z»X…€k-UÌ,ÿ.»í&W\~‰º(Jb¸[!+I ÝÜ"êb†§õ;SêÔ®#×\u…<ñø#R¿Al©Û¹ç_,/¾ø¼+çE²© jß´iS­ÃV®žËœå˳ØÁ.uëÛ÷(½îºk®”n§Ùòå+œËåDµzO<áyãµÁnr­ººVx&°ù¶ _NÆò¸ôkAÞp„£‚·,»Å°Ö®¸òOþŽmC^(Ûm»œrêé2ßYƒX†W\yµ®çÈiΟËÐüßç¨uyö¹çë$Õ9çœ/OzVA .µEËDZ²­%Ø Â$[¿³Î–G$÷?ðˆ b¿·,ruêÒ¥«<þÄ é?à¹íö²ÛnÝdË-[ªßwž«€{éWiè|Î=ÿByÊŽ8â?úVò^*ƒžyAn»ã.Ùhã¥E‹-¥ßg¹ŽkNbGZa>ì˜_¾Ø=jˆN$HfJ~©7PØäÁVハ<Å×§Z~”úˆÏ… èï Ü'Cv?Ÿ’[àyjU']½!ůeXè&ÕX*F™ðÃrÐÉð7nsçÎU0¥‹œ»Dâë…ÄŸyñ}^¼ã±|ÄóE¸VŸ{&űvuəĭút“]¿[ )RêU ¶ òÇ,³Õ`!»zr.«k®ÿ[©-q)¹ׯOt#†¹b¢±VÇXX³žþ²/ß›lãJ±—ÏåÅ—Å«‚Éààá™8¦¬Áròó ÖÏV5TúúåZ âñ†#•ÂÍë‚×äå–)FÂÚ–ØðÞê“_ SÑé¶ø–ÝÊ\Çz÷p„#é9 ǺÙxâ'°ì«2JŽâB€+¬,ðÝ °"MN%­£ ua—[1È.Ct²p„#Ó ¾Å[È„_ÆÊ¸ŸÆÈÄ ¿È¯¿üì¶»V.™èÊ¡¦û¬ç>7pŸÝg3÷¹…“Öî»/­ü¿ã¿·rŸ*v.þ½•ýni’åáýÈÇ¿¯}÷~K¤‰¦µ¼üûZ9¬LÑò{ç[EÊÝÚ»Oüüúx×$+[Qui¹_{&«§_/ïV~¾ÞýÖÈ;RÏVÑ:úeŒ–Ùÿ;úýûøïÔ»ÿŽý²µŠ>Ÿ¨N%Ñ™ÖÉÞc²{Gt¢µ÷lýgÙ:Å»+ðŽ’è\«h£yúí ÚN¢å‰¤i•ä9$}‡Iêì¿ïÖ}]ã¼ÏdºmCþsJòŽ×ÐC=wö‰Éô$™¾¯Ñnýs¾.FuÜ¿.ò[«dÏ: †µNÒ–câÊÍ™'´zâÖË[‡-ÃáG8‘é[ÈÃ#G8ÂŽÌÞ|ï3H A‚”LJ¼þ…DÀÈ‹"«‚ $H¡’‘<Œ³‹°vóè $H™À7ÏÞbY¼>ð’ÑJ'+"’êÜÊÈoþß+“ü,Ïdù¤ºOQy¥ºïÊb仲ù¥ª_qî·¢„uXQŒw‘êž+‹QוEäYØ»_QÂwš¬ÞÅÑ©ÂîêY¥OE½“T÷_Y„N7ÏÅÔÅ•ÅÐâÞQçW#ßÅÐýÅhk+ŠÙfW³Ývß•%¼ïŠb>‡dù¯Š€n±-ÞüˆÅ¬Þ A‚)™«¡Ôo^Ý A‚)³«¡TïªbE‚ d}–U)\ %öñ‹7H A*Ðâ à$H i]ŽÿpEVøÈYIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-progressbar.png0000644000076500000240000000202412536324512023767 0ustar philstaff00000000000000‰PNG  IHDRµ%3ëXØPPLTEÿÿÿ $$$(((+++,,,---...///???AAABBBPPPVVV]]]___```g²jjjl”»rrrsssxxx{{{~~~†††©Â———˜˜˜™™™œœœ§§§©©©­­­®®®¯¯¯±±±³³³ººº½½½¾¾¾ÀÀÀÅÅÅÆÓàËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÛÝâéééîîîïïïðððñññòòòôôôõõõöööùùùüüüýýýÿÿÿŸ"¤X!tRNS "#$ëÇ¢RIDATXÃíØÍKAð7³-"1š­Š±Z,V륭Bý¢ÇB Ð£ÿAÿ«þ½I)V±àA¡Vš¡j«Mšsmwg§ó•eÕ‹‡Qw$o’ýÞÍÇcÃôö¬D¼ã]hÍÕúLPâïÃêtßßêîêtn™ÿt^}RìûÁÖ…c)'rê+°Û†oY½`¤z™-¨¾Aê®–ákSªÚÇ-$[‚7PÝ­$G4ó _“zø¾OÙЧÎö&ñþÔ@®^`굞_Åéƒâ¤®\g9„ø<ˆÖ ñ>¶¤¡´óâ3SHÛîâ«Õ§]ºÔ[<ׄþÕª>Ýè|é®õÏ3uÆyxø;Q×V×ÛLMˆÇÌÄÓ©®mÖÇS_És˜u]v¾—“OZÔ;\íùžG<ê“íc`eòžPóøÒZéüYšÖ¢þ.ÔÜìºúÔ‡946L,‚³Ï¶f—xu¿Ö¢Î 5!.ckSïå[Ÿu«m•ëÍäÐú}VÝSÑÍu(ÇJ]ØŸÁå|EW]_O…\÷cSÝTßEõå7Ÿ ½Ìµ!}ã¹ ™«˜Ð£çã™p®™Y çñÆ&fÇl‹ H\Ã×T~Xk)VlIE£IÅ©ÓbK^¤® Žƒ<~¨GAðDu’¿Lååêh¡ŠpImÇ,˵ªf®o8×¶ÍSm„š'ÛSj‹gG_ÝèÅ9fÆüuuУK5aEý­̇5ƈ Œ#¯nÌ=I5’uu0Ï'«³¢A}ucNUª ‹ÿz &W=¬:IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-progressdialog.png0000644000076500000240000001424712536324512024474 0ustar philstaff00000000000000‰PNG  IHDR{éÊËþnIDATxÚíxÕú‡C¹”ÐQPËõ‘¿þE@씫ôÞ;"Å@éJ“K‘&’R „Þ„ÞC„R€Hh¡H¯ßïdgÙlKvçyÞg÷Ì™ùΙÉî;ßœ™$d(eþ¿7GQd¶s²C Ù{¥ŸO!}sá˲oÐr’ ÿ©=˜¾ë9Û)p,u|Èlçd‡>²/(QÀ€§*Ó7¾,ûF­~5áëº?R×^sœÇRÇ€ÌvN¶èãoÙ–(¤¾%áÿ-ûÆm&›P½ÞOÔ½÷ïNc©ã@f;';ô¡}Q‰":Ò7¾,û¦m§˜P³Áòúa®&-ڠϾhBeËW¯\×[—áXêø`­slEÏ9Z}Ô¨Û]¸LnwFÕkwÑŒÃËméC!ûâÅt„¯ÌðMe߬½ µ ¥ýæ™Q¥Z{*ýæôyåæT§¡·xå:/×ZŸáXêø`sìAÏ9Z}”-_ƒJ¾òo‰w4ø·hw´uºR‰’oQµÚßIõ¹†åsE—s»µ}(dÿ²BøEU—§tþÎîeÙ·è0Õ„:‡‘wÿù&´ê0Rˆ½Ý·¿˜,ç:/çvõ6 ÇRÇŽÃåÖíûn1–!ÒghÌÄ•ºí|Iºik%§Ü¤'OžJ<£Ô›wéDd|†÷Ùq€}h9Ç^ôœ£ÕLJjPçï}4ãðrnw´¦º$ö—K¼IÕjuu~å:/·e?²/aþKÂ7ÏîeÙ·ì8Í„zM‡Sï Lø¼RSú²r ³å /çv­6Ž¥ŽG–½+ÇЦ³Ÿq,—“oj®ã=`Ýùë½xA´mg$Mö[O|ÖЂ%;éÀáh§½¾]؇–sìEÏ9Z}°Ì»ô˜ª‡—s»£}¤ÁÂï,eòoÓåþ#^¹ÎËmÙ…ì_‘(©#|óì^–}ëN¾&4hþ3ý0x‘ å>ªI šô6[Îðrn×l“b©ãÇár[’½²Î² \uþ’äúàÁcZ´t7­Zw„îÞ{H÷î=¢U¯¼æ0=xø˜.&\ÙD›o}iqÀºzí={öœR®Ü¢¹‹BM¶ã }ÿ¡st8,Vù‡™èLT’Ù8÷ˆmÜÖ~XÓói¾xôè -üs—±MÙwWïÙâj÷÷éÓgt.æ2õ´ÐÐ-Y¶—’.¥Š6¾Âà¸üÔƒÖ>Œ›¼šâ¯‹1=~œ¶n¾óðÙË ´œc/zÎÑóZמ¾šqx¹­^Ko?>(÷•ÈèùÕžýPȾ”JøÊ9|uvÿ·ì9CSÒ°ÅHêûã&|Q¹UªÚÒl9Ã˹]«c©ãDz¿sߤþBJŸ‰‘²æ]¢þüyZ}¾”Es‰ŽMV­Oz’Öm>&ꇎÆÐ’å{Å{κyjãØñó¢>gÁv“íöHŸ8u- ºX,cY÷’²õ8yŒ\ú ^¨¹Öõ÷‚"O'Ќ߷Š) ¿î>mê¾½Ìñ [B¿/Ü!ÚöŒë­>d<¿ú®§qSV‹u»H'­}àqó óIú? ¿Y›©K¯ÙøìeZα=çhõÁ2ïæí§‡—s»£}¤±ˆjÔí"2ú²’èù•ë¼Ü–ýPÈþu᫳û´©Yöí¾ó7¡q«ÿRÿ!‹Mhßy ½ñVYêÔ}¢Ér®órnWoÃp,u|à8²ì•uÎ|;tNí»L׬svª\ÿFê_R›?}×c–¨ß¿ÿˆ®]¿#Þ‹û1Òz‡.õĤÆí®ßHÛNërÊMÍq>{þ\´óojµ[ÓïÇ7Ýfˆ:gþ\Òë[ÞgÎî¹Î1ÄIGÊôõާ2έ[÷ŒSOÃF-Çg.ƒÑr޽è9G«òkÒ÷½ý5ãðrnw´¦Výn"£¯Y¯‹¨ó+×y¹-û¡ý*á—PL稳û¿eßž…  iëQâK§¦z­ŽBì•¿jE›ý ^¹Î˵Ög8–:>pYöÊ:O¯Ø[çé %òòŽßÏëÞ“NZÛé-“áû \JÙ¶V»­ýñ{.Z}±T\É\¹z[Ü'3yÑtÒa,Oe??ÿ(Nr‰Š¾L?þ¼Ÿ½ BË9_ViF¯¼úŽ.Ün‹s´ú(_±uì:Žzô™a/çvGû¨×ÐK{„–s4ñžÑƒÛmqŽ+û¨ßÈK3/·¥‡eÏÙ”’íLj,Æp,u|à8²ì•õä”[6Õo¤Þ¥¡£—ѦQ_¾ò- Ügœ¿!e·aisèóïÔŒÃð ÑûÓÈqAfãì']ŽÊóö'/ЧpfÎ 7’9s¶µ?~ÏE«ožË穨_ýÖ‹›¸ò ŒOfAû±¦ÏÙJã¥ßÀöê;Ws6l §_}×ÑQËhö‚íÆìŸ½Œ!3œ“úpXößzýfB«ciÈȧÀ±ÔñãȲWÖ“%±ÙRç铇žˆlxãÖ1¯Îm,}>ð´O‰ü!IQ/ŽX?ø€¸q~â‚æXûýô‡ÈŽy®Ÿûä§a8ÆŽ]§lî/Ù0g¯Õ÷ÿ ¢~bg÷¾3bÙÓ§ÏiÒ´ubÝ%Ëöˆûb¿>O õ°@sNŸMSA<&~’),{‡zü±±±ôõ×_‹8 ¤š5kRTTTºcPÇÑ?Ç®]»¶q§Nj²¿–޽-ãÔúÈ}L™2…^{í5_-}Æd2 ±ãââtשW¯µhÑBüÌXš+V¤¡C‡¿à¼ýÀéÆ4hÐ úì³ÏŒÓùò壤¤$Qçö’%KÒöíÛE½mÛ¶Ô¼ysÑ~éÒ%ª[·.õë×Ï$n·nÝ„„uÆ©Þ8˜:uêP›6m(%%Eìk¥J•,ʾqãÆ‚„„!ryÌŽõø£££Éßߟ.\¸@×®]ǃûLo ÖdÞ<ÆV­Z‰ýeYþùç&Û¤wì­§žìù¸äÌ™“¶mÛfüœ>|ß9È¸ŠˆˆÊ‘#‡n{bb¢h?uê”qÙŠ+èwÞ1‘ÛÅ‹E}Ïž="û“×ýâ‹/höìÙâýêÕ«éí·ß6f–¹s禳gÏ×e1¼ùæ›&qYTzÓ Z²×‡¼gΜ1n¬+L^ŸEÅ'+gô$½cÇz饗ÒCzqä1ž>}Ú¸,00и5ÇÞÚqêÉžOPƒ¯ ø$ïd\ K‰åÄSZíáááf'ƒƒR4/ÝÕ¢ðññ—ýüž§!l<Ép¿<=!ÃÓE‹ÕÿMOözãÐÛ=¡i­ïŒã¡%ÑùóçÓûï¿oœ"±4fkeŸÞþZsì­§¥ŸŸPyú‡§‚>ýôS“i5ÙÍÙûùùYÙs–¨Ìd-Éž3s®sVÍR9räˆXÎӼǷöfŸ½²—÷A™ÉZÊìylœU+÷ÙÇC=~>Ñr†½aúyó&…††Û-ÁžÌ>((È$vzÇÞÚqZúÈðMÿÑ£GSéÒ¥ñ}ƒì«ŸÆáu .4>b¼!Èó¹<ÿË?3–÷'Ÿ|BC† ±Jö göüXg¹råL–óÜo§NÄ|®<7¼lÙ2]qp;KŒçƒm‘=Ã7+Û·o/æþù*¦J•*…É7–›5k&„¨ž³·÷x¨ÇîÜ9‘aïß¿_Œ‹ï)(Ǥ7u-xŒò= ã—_~i6g¯wìm§ÞÏ€û\¾|¹èŸO<óÖ[oáûÙW³yófã<%ÁãG1å/.ßãËw~„Ÿ¦áuÖÊ~Μ9BcÆŒ1YÎ"èÙ³§¸iË}² øÆ¦¥,‘Ÿ áqðU‚-²gñI‡§Þ}÷]šÁp Þî£>¢­[·šý"–Þ{Ùà8ë”o {Màl|ïÞ½â=σó} ~>ÇÈd#ø—€Þ{ï=1ÃÓ"<ïÌÏ—ãØÙdÙdÙdÙd²Ù€ì@öÙCöÙCöÙCöÙ§ ÿŸÌ &°ùŸ¾gÙË¢=ŸÀJì¾Ke/‹þà©xò Ü pþ.¡ü3 û3ËÉž?¤=¦®7Ògæv«Pnc ÄC¼R<²Ï2²ÿ~ò«¾½ü·Xõå@<Äû§Äãü}Bì!{ÄC<Ȳ‡ìñ {ȲG<ăìQ {ÈñÜ9Þ0¿tøè1zøð!Ý»wŽ„…›Åê鳎vï;hüB ñ6n?m~ݾs‡.KŸó‘3MƸf…„îìQ {Èñ\ï'ÿ•ôàÁzôèmÜJ+$9Gž:ckÚ¼åôôéS3Ù÷¾Ilºg??IQç¢ãî·”RoÞ¤>>A= dÙ#ž+ãm _13–êÆà³Lœæ,6“ýþ«Dý‡™!4|z¸:àñõòYMããiâ¬Lã @ö=â¹:Þ•+WéÅ‹º{Ÿ5gâÁë6“·$kyúæDä):q‚¼~]­ŸÙïÞO'N3û€•ëi§”ícβ‡ìÏ â={öL|A’.]¢ µ›Å+—u›Ó~™i~À*º{÷.õ÷Y!âiÍÙû΢;wþ¢ä”1g?Ü9ݺ}›úúÒ¸™K)&6Nœ0~šÙ£@ö=â¹"ßXå2Ò/m‡_¹Ü¿_ÔÅWÎü¹>Nc[a¯ïŒ-wž&ÏY&¦r8Î(ÿ¥4sQ:}²Gì!{ÄsE¼}hÊ>55UÔ“t¿TÓ›Å[¸žö8lœëçâ=u”Õ/ÓD= dÙ#ž ⑲s­iœÅk5ãiMã᜞öæß•bý^>«èñãÇ´gÿAñ„OtL,dÙCöˆçªxf-"~òä‰ôYM¡ù|sÖ6ÙóÓ8ç¢cÈoAÉøø‘M1Ÿ/ÅýÙo)dÙCöˆ‡x= d//â!dÙCˆ‡x= d dÙCöøOUˆ‡xøOU(=þ-ø´(}FÈžÿ;:Å6ѳ?³Œì•Â`¶ŠÞ-d ã첇첇ì²Ù€ìÙ¸¸8 ÂDz¸µèhôèÑÀNøøÙ#|È)(E)ù:°¥ð!{€[ÊžE•t….§¤;‰‰KDz¸½ì/%ßvÙ²†ì“._vr.æ"dpÙÇ'¦Pâ¥kÀN¢¢/@ö€¬!û„¤«Ùž»öS®\¹œ÷ì¹ó= kÈ>>ñJ†¼jU­ú*T˜<==©B…Èú¬ ëÏ¡Ù;;8Èàþ²¿˜,‘ât–SÑ¢EiúŒÙ—Hç/^¦À 5ÔªuÛ é/=vìÜ'dïì¸§ÏÆBö€¬!û ñÎçÃËÑø “5ÛŽEœ¢ÊUªRÁ‚…¨@‚ôÕWÕèБã¢m{è^!åaÃGŠ“E©R¯QPðZã¶'"ÏQÓf-¨páÂ⊡U«¶Æ¶Ógã¨]ûo¨X±b¢½u›v}Ñ$®³÷óÔ™È5dÏY·39~2Šå%¤®Õ~$ìM˜4…Ÿ¡èØjÞ¼Õ­×@´mÛ±GlÛ«w_qEлO_ªøñ'Æmy=†¥Ïϸ¯Z³ÑØÆq6lL‘§£…„kÔ¨E^=zã²ì½¯Üdp{Ù_ˆgi]r*»v 9rX½þêµ¥l¼¸x¿mÇn!ûˆgD}ÃÆ­"ûç÷'OEQΜ9iïþÃf1Xî¹r妃‡Ž—­\µŽJ—~Ã7MöÎÝד§ÎAö€¬!û¸ IN%üøé´Ì> *d„c)RD3®³8Ù²†ìcÏ':²e?¤qã'i¶ñôgáK—¦b6¡s[ȶ4)Ëër]n;yVdö{ö2‹Ém¼Ýñ“g5ûTÇuÜdp{ÙóT ×Ù,ùs9-ZŒü¦ÿ&Oäß4]´šZ´lM†‰,œ§høi–¦M› ¡óv[Cv )Ëq¸.·1uëÕ§úõŠiž¨èó¼j­±­Y³Ôºu[q2áúCÇ$™Î׌ë,x= KÈžÿ¾KF°<ˆ*U®"¦S<= Pùòhšï ÑæÕÛòçÏO¥J•¢~ ¡óò-!¡BÊr ®ËmLXx$5jÔDÄä'nZJ'¹çÏ¿íÜ•^.QBôÇóõ=½{kÆuøÄ {€ÛËžä'b€}>z²d ÙóoŸû€ìn/{ùއ…Ÿv‚8pkâââL„ìC=OÈàÖÂŽa«è!{ø‡ÙdÙdÙd²Ù€ì@ö {€ì!{€ì-Ê€ûÙdoYöC‡O¸7ìk»dORá d ¸Ø#{¤’OÂS¢ Da‰¢Å%^–(iZÊÐÉ\‚Rô% Ž.npvaƒÃ= Nו}~áá QÌ‚ðd>Z¢×ÊêÙéy´dŸ×°‚:»/f¸DP @棽<}£Îêóœ®+{uv¯%ü†Îd>%tD¯ÎêÙéÿÒ’}ì^-üâ áÈ|”S7JÑ›gõ:²ÿ—Fv¯¾rÿ%.A9G¯½yVïá‘[OöyÂ÷Ô¾œåÈ|ŠêˆÞS!ú<–dŸ[Cøù-H@æ£%ùüš¢÷ðÈ¥'ûô„¯”>€Ì§ ÂÇ–D¯+û\„¯”¾Rü2O•äõEïá‘SKö9u„/K_™épù^Σ+z ²—…¯–¾–ø¸¥àÕ’Ï¥ðyŽÿp"`‰NlùÔIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-pushbutton-menu.png0000644000076500000240000000643212536324501024620 0ustar philstaff00000000000000‰PNG  IHDR‚‰o¦wi áIDATxÚíyPGǵ¼Jw]ciy_èÞUZº±¼ÏõØèz㮀xA<⯄òV7†„¨‹Á]QA£0€ ¢’¸QA ¨(¢"—€ ‚û•.'ãÌ›ã=fÞ›Ä߯~Eu÷t7=¿Owϼ÷~ó›z¯I õÈ„„0CLLÌ~KÖÓcp—ÄR±˜Ä;ÐËM’:#¡†_ÞÊ|@Íú ÉÊÊÒ Cjj*úM%1G˜Å4Ã@­‹h‰!-- lÓHÌf±{÷îi†!ÄRÑ ¢;°%›š%ÌbZb¸Eb©Ü¿_ @š‘‘¶ÒRï­4oÞ|Ò¤IñññV—z³fÍâÊÃÃÃq—‰ÉÛ¾}{777>“õcà·j¸’c Ëw»aÃÔ”ÊÊ ^͹3‹=xð@3 ÷´ ]×úÆÍ0àrÏ `{_;Yu­o}©'f11h>h5gƒcŸæææjƒw]¸ùÛl%ápÓC‰j~Vc `K&6K˜Åòòò´Á€Ï jýÒ_³þB´ÄKb©hƒyíe’X*Úxí½&V#ø°â Þ$ú ì,‡5ž“è/°3a $„0 |f¨~Þ ‚/åõ°õo‘‡ 0èÝœ0XbG®‰;wÂ)±~ýúÈž:u ®‰5êҥ˞={+Iªgq²²2ø,µnÝš¹<~ü˜«ïííÝ­[7øXâÁ íÀ=zô@ŽxW¯^}1À_³,ü0Ž;V\\ '''Å™Îï‡_¾eËø¹à§\°··‡$WmÚ´iøöíéÓ§Û¶mƒ£ü YM ô;Ç ˜°|óÁ£„«Ù©S§]»vÊ G Ó7X?Ã%’«†/¢Y¦dá&üþ®~9|u§L™‚5'Nœ° ÊÏv¬Ïž=Ã…WiÂ`ÿîÝ»³G9BCCY¡‡‡®¥2wJâ:åååx*WÜtõéÓ' €0ÂÀ­t±Z „„0Â@Ha ! „„0†ß„í»,Â`6ÖÆŸŸ¿bÅŠ®]»â÷œ–-[Â7QŒ¶¬ÏÃÚ†±ÁîCx^500pøðá„ÁÚàŒõäÉ“‡¤üºJKKW®\‰Ÿ£hþd¬°¨¨ÎKª•Å‹ɳ ûɳÿþˆvÆÊQNJœ”Ñά‰fÏžÐTbR~]ˆ¯ƒ`JpäzøðáòåËY!‚Üá‡~DC€ëZ­]»–3 B_¢“‚‚‚Í›78•£")aý¡ Ê_¬ïpfƒkÃÆ1Y0³:wîŒiŽvHʯ î”pÑôƒÈHˆsÇÒ8Ú¡CÎ4&½¾P‘$Y ÍÂ`‡3›Ý)UTT\»v “ •Hùu!|[ÍQˆ½‚¥q”;g) A}³0XÁáÌÆ7¬˜5ØIYZʯ «AÛÄ«›Ý8Ê_ &mÁ_ H˜…Á gÖÆ€û"x aicnâܰ) :”’òëÂ&Æ"ŠbûÂ%¢!\+Ù^?a„իWËÛ×Ô‡Ÿ2šLž§¹úÑIOŠË_¾ªÎ-(õü.ö¿×ò Ÿ!‹!¹ùÇèaNU`ð<¥¹¾1Ê»ÙÄ[¹}£Vî MËzX$¨†Ä•´œµ{"XöÌåŒä;ùŸî„¦ÜÉô&nË/ÿ!6-õÞcü¯O¼ÃN¹ÿãõ»\µky(_±;ìÔÿR+_¼LHÏeY4¹›W¨‡8UưäËÍ= ²«¿9ÍÒ˽B««kÕX·7’«_ô칫ßY–võ‹ô&nË//()ß|àKº7¢¤¬Ò䤆¤“ªÁ¬¹ÖšF9+N0­®©qö aiç¯BGÚV×ðO°F¢š|VsUưxg択ÕdÅ ¦EÏ*>ÿ6Š¥‘•oû´´bÝÞ‹‡¤“*cXôÅIÍ=«ÉŠL#ãoÝÈÌ[å¶Ú',évžà¨ Iùó*W¿(®<ø§›É·nòÅ´õ?ÑWRsÌ’Zý×÷fÕW=j­oÎJEVœ`ê⛜UõòUIÙóï/$ Ž šœŒI©¬zÉeq2èÇ”‚ârÜ•å<.ö ¹dÖÔhÏ'ümå— <Ž.Ü~\ee wœ U¯NÛ3Ÿa3?ž¿åà‚SÓJ†íÇIÕ«“Ç10€¯?þùhá?\,p?ªØJƒÓöï´Òע῰¹:z@ee%#ñáGNwõst”o¥ŒËŠT½:¸0 ‰?ÿuÁ¼ÏýÜdZ©Ààq”T½:¸á0¼Câ³o¶‘j¥Œ ŠT½:l;ÌÇð+‰)Žv›öÛo=l²• n¤êÕaë!†_ILv´Ûèk¿å¸•2,%Rõj¿Å_Œ#1x²ÃÜ ÿž¿Ù_ÐJÃ1ØöiF†rðàÁ`•øøøððp0HLL|b0™Pa&Ûò_[)^[RÆÄ]éH $`hî"Œ—u! Þ,ˆuâ DFÁ *L ÿµ•âj&ŒIuÅ/×)¨”ÕŠxèÚ *LÊvü×VŠ«)Fù2Ú›+ ±Ì fV£3.©Pa0 æKcöYƒ­Þ\i R¡Â €Í$`l÷R¶3 ƒAÞ\i R¡ÂpŸ‡[¬ LR///) ‚``fa0È›+é;%Ca oW4Å£Õ@Ha ! „ÄB øít‰þ;Ëa ±•CÈÿJfxž”aFIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-pushbutton.png0000644000076500000240000000260112536324501023650 0ustar philstaff00000000000000‰PNG  IHDRc)&g­4PLTEÿÿÿ  !""%&'())))**++++,./0556;<=<<>==?>>@??ACDEDEFEEGIJKJKMLMOMNPOPRRSUTTVTUW]^`^_a_`babdcdfcdghilijmjknpqtqrursustvz{~{|€€€€„ƒ…ˆ‰Š‰‹Ž‹’’•’”–•–š˜šœ›œŸž £¡¢¦¡¢§¥¥¥¥§«¨ª®¬­±®°´µ·»¶¸½¸¹¾º¼À»½Á¼¾Â¾ÀÄÀÂÇÁÃÈÂÄÈÃÅÉÅÇËÆÇÌÇÉÎÈÊÏÉËÏÉËÐÊÌÐÊÌÑËËËËÍÑËÍÒÌÎÓÍÎÓÍÏÔÎÐÕÏÑÖÐÒ×ÑÓØÒÔØÒÔÙÓÕÙÓÕÚÔÖÚÔÖÛÔÖÜÕ×ÛÕ×ÜÖØÜÖØÝ×ÙÝ×ÙÞØÚÞØÚßÙÛßÙÛàÚÜàÚÜáÚÜâÛÝâÛÝãÜÜÜÜÞãÝßäÞàåÞàæßáæßáçàâçáãèâäéâäêãåëäæëäæìåçíïïïŽ)HÍ!tRNS "#$ëÇ¢ÛIDATXýV]KTQ]ûz'"°‰,›²`¬h23 %HB )"%¨_ÐKýè©?áƒ%¥eHØ—‘2ÚCŽ=˜$>LfΜ½z83νz›¢Î´a¸÷ìsכּÖÚgŸ##¹,œG2Þù¹ìRÎ5DÉàÐÏ.å\c …‡>r—=×çŸ&Â]chø?}›rŽ@„ÂȪ`P”$éiµ´òAQU*ÿ!nF%Äb±˜ïûž'Ð躛Z¬o¹øÛof4PÄ€`…ºš1™á_a«•HË#º®¦Û:ÑÚªxÿzÞ4^8ŒÛ=Vv´cíA&ßчüýÌ÷Tïžè—ð@¡zžJ‹]6ý¬}`u|¼øÒ»ÿÅdVúãÄïýu£O®WÔ DªÀ4ÒÌo özëÌÎD׉î¦]gȹö WÉé¦ú¶OddÁ( 6 •xÔ~>˜|»¸ !pˆØ] VR€åÁAªð ß·mó¶w>O÷í[¾kŠOÔeN@]oʾi¢ë€ H‚¶®éyóØö–ìÌUüðvd¦ EsÇ^m«}yMëGg3×¢=' V®ÊZ^7¼·™8÷f¸¾%QˆîÇCLÝc£ƒ '¡Õ&rgîÒšë^²<ºŠ)˜B¡ÏW«ïnòœÎ1°Ås÷}7Âsç<Ì­Ìð#z :ÆÐ*øö<>rÜ5Æ|<Ì# Ì:?'&ÂçÄx‰*œwƒµ+€1?«ñ=ŸB!„€BP@)=! vrcbŸ°y±¦„z Êg»É 8¸Ñ7M–¦Y¶º¼Òë(í[ˆýŽâ%t̘.%d#€Vª~Q)5b(Žý0jTYÒŠj…k £Ê2RgÜb¨ª’ Ôq“W£! Rèœ5À*Çͱtˆ·ë¤\ôN÷[h £ªñ¸\/O;ÊíIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-radiobutton.png0000644000076500000240000000320312536324512023770 0ustar philstaff00000000000000‰PNG  IHDR¿#ò+ PLTEÿÿÿ !!!%%%((()))---...000222444777999@@@AAABBBCCCEEEFFFGGGHHHJJJOOORRRSSSTTTUUUZZZ\\\^^^___dddggghhhkkklllmmmnnnppprrrssstttwwwyyyzzz|||}}}~~~„„„†††‡‡‡‹‹‹ŽŽŽ’’’   £££¤¤¤§§§©©©«««­­­±±±²²²´´´¶·º¹¹¹ººº»»»½½½ÁÁÁÄÄÄÇÇÇÈÈÈÊÊÊËËËÌÌÌÍÍÍÎÎÎÐÐÐÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßàààâââãããåååæææçççèèèéééêêêëëëìììíííîîîïïïóóóôôôõõõööö÷÷÷øøøùùùúúúìÝA?"tRNS "#$¼diIDATXÃí˜[l QÇ¿ÙN©[PÕк¥ûP¡M­"¢Zt«7× "úà¥Ú`D«¬ëƒ¸R‹ˆí‹†â1ë·o¼ñôiÀ/Úz| ºé„¿Â]º ‰û;½­þ ®i?Œs,}ò÷ûþFþ„Ÿ™.¯ w±Ù4uñ œ7sPKúæß¹Gú£ü›ð¡# éH×¥"ŸJ*ÜÈËS¨h[-µŠÆž)ÙƒáEu‹æÌJö_±¿ü¾š2”¥u¾èT'ÅLJú>•Þ‡øŒ dVHýPšoøB”˜Ðâó£Mµ³f!EÚ,ü¹HMצ뚔î"øxé÷øp::.š”7Ú2†•ÉKàd²S­ì]ŠË=Ê;Ò†T-%!eø­'9F|©¯äM&*ʜͥÓ4×o ˆ? D‰ -ÁO4¹ã^×-3¥H›Åò0¿ªã`“rÝh+k>•Œ¿óæ“ÞØäH8‘¾³[h[ω|PòF]>‘2倞»M~â;²r<½¸”‚៊ñá)àçE…–à'Ç'EA€i³ØVÊï×UMS¥ÜTü¨JüƒÁwëÕ(Ä ]Ú kŸõ.éyví’­9Mù©¯0Ô=»†¿ñ!DáK-Z¶ÜiKvIY­€ò«ªª©„峿ý`òC÷¡"8¶z SRìÐû¹¾%fAüGV‡¶‹yßä¢ñ/Üo{ Ö¦ò-ARVÛÁâ¯ùýªçB)Ëÿ´fžÿç¦9»ëŸæ@eû¼±íõ«à੾Ú®íåÂ!ÞÅ_ç¿ò.]‰È´òï[;Éä¢`jrÎ~ïmäúfD?,Ë’²Úv?Þñú3®’õ' Uóõ§ñn›“<ôšF_Tb"4ÔvF&^âúþ²{(%éëüdшËhå÷VõxŒBL­ÖëÏGͼ̻ܮ눚$õÍøãõ?ž­ÿº’ìqÿÌO®¿qšÍëïŸ2…}¾°åÏOÞÿüM³òÛÍ,ùc;³{üûóçâ'·î(T–Cå°†ð£©-ñF*ÄÍú. ý«!VgÝÀtñ±ñDØ8ƒ$\’¤ßÙÙ’ùÃøñdÙ^üAñ·;¿Íó‡ßvñÇO*ç¡f¯ø“ÇGÎÙx·?þeülx öá7Þ?Ðf‡C"›øÉÛòþ‡ñKÔöá×Åû7ÖìÀn $ûÜCï?ÍiÙÒ>ÃÒ2dy“»]IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-sizegrip.png0000644000076500000240000001775012536324512023306 0ustar philstaff00000000000000‰PNG  IHDRppÆàôK¯IDATx^ì™ëŽ#¹ …Ï!u)wÏb“¼@òþ¯·»3c—$ ˆ"\nöä×a[èBd ù锚f†¿¯ýß üí!€Ïi†çF¼o/„‰à1•Ä˶Ö˜ ­¼ctxÌ5I2=cF€ñô¾…®òçÙZ é#,–$ž×8ÈSðìLñ%Zö¢‡/L`Ï6Ôǘ¸Þnøöùao*0_Ë(|$öëú´c½Ù!_„æs°l99Gžç%äX'Jø|˜ÃKö²t –™@žÏÍŒ%Civ?Ñý ^µ¹&nû¿láßÿþ4žÐ1ßJH‡ðÒ5'„ÿÀ!¥~ÏY¡)ù]Ë̃EÄú³Š“_Ü_/GòõT×XPQ| DUñªýøyÅþ…ë¿v¸½´­|•‹[kœ˜AL $!"o\±kåp˜ÍÖ‚¿W‚Ï ¸ÊüŸ]Ý"p*ÅNé8ÕN‡Í÷k#5lŠ”/JƒaÌZ+^µ1 ”ŸÎþê@©"Ÿ En÷E ¶¾•FPh¶°lRD "ÌúÂìÌ3w-”ŸÃ¢ˆøœ„ò%BWÚ\m 8ˆ(ŠêñÝ0Cr³øØ¡ФzŒÏÁñyV·‚(Zï–5PK…Ö×xݧû`$¨¯ &¼P`Î*„‡Cï›Æêìn²Ø`Úp˜¥ŸòBupJÅ;jQ•L­–õÓáMC«ʲåP Z\ €f1lù3ÁPýDAuň„K>ÿ¹Ïïj]X»—”RC ܉® ¨|=…^wˆ:@9)Î^®áh*±<&"P¸çÚ=]|¬7‰Æá5as¡õ†^Ôá ªFC=aÚ:¢·‰z©wŠ"ÌÓªŠCñ`îTççZXkB!`¦î(ŠË"žC$ï屿ùûV›û¿ï74m(¢°Š—­µ+( ð©úÒ,‚°„*ô”å zïá1˜HÀÉe±¶/zËLäµaê@­âN R (Q»<Ð sÔ( JJSŸt²ÆÌ©óK%z}Xqd) HïÍGƒ%ÌCß °P} %±i‡¯lxÙjý 9ÌqÇGúR‚"$Iõ¼b¾ka`ßzYd€LevŒyƒÑ<÷ß[fŒªt-ëTHm€Ä‘`-‡\­€”lô¹£l Æ<'€€P}ÏCM9g.E"l¨*²|[Œp’ñ=´àɰ«5ŒûÑ8}k¿äû[…¨¾ÚFÙ  í{B)þ4æ`] —më›ä=Än®ó¯#•æ›sÇG¿`_­)Jªµjì>d÷ ѼÐ?ZöÙeú‚Iц])²ø;5u(dÀZâ›é Õ"S4)yŠ*~k>ëûüm«£+ 2ZzÔ¬ÃÓ ›úÖ"Ç%Å„Ì}¡JHF‘8;ÎLú¢@¢Åš;Dê¡6ÒßgÁ;΋ækùP v3÷¥±¢I\ý-€™BŸã×5ðnWÌE‚ÊÂB% P• …”Ðlâ6¾;D襡·Ohí¶vl¶Ð[ jF°¸­Í…ÙBfHÃ>'´ZOe=èÐE9™iÓI‰øL‹È}ÇšZêÃ5bX* ŒšœJ5ðƒÀ* ºöƒízG-¸|Nã}L€y\2cî~Üe~¡°Ja—ÆÖZ3}3ÁHYؤûNŒ,›6  —rtŸbÄnV(5ødírc Ð.ÅÝ1³³ýSÊM¡¢žv B5&=Ó™ìRÉûžíÒ·í:¾{*iRÓë4|Ȫ„(±¡xÛOD,s>D#y <µŒ‰P Ã‹NÕŽº¹–AÕP¤–­Éh蘥( ö¸' ¨ªƒËNô£Qp+7ü£ü†. 0øv }Ñíü®à R< Ò,ÿ-ÎUÔ"—oÛ7È“¼Õâù'J e æ@ÉÊ[+ðã6ÑjKígõßc_*P) ,ç1êyüå›âï@¦áV-žÚ‹–< ò!‡.Æèµã÷þ{°ý5f M8g;à €¿n<)ì:¯è­ã²y:ý`džÛm€2±õž:Ϲ©Â¼BÇç焊ºÀ âq.¨,WŸ8±èOé­½9D)’y‰ À0÷›«• Ãc&²¼ gþawÛ6lm{Îü…›˜w­œ‘ü—š+g’$ÉÊßs÷¸òìªêꮾveÄÑøÿ3`a%Ø¿¡b0¬¶ûGvg™é꣮<âvÇì=7÷ˆŒ©MzƶŠõ´¨ÌôŠÃ2>÷÷b¢>'!äáD,Öv‹çæ)Ïäi6Ã=ãܜ⪽õjÃhCª<ºê@È‘Î9¡Íj4òR¼gÙµ‰!Š8ÄNR2刱çª;JÞºA¾³Õ$9]ÅG†…KO>·Ú÷0Ö\]!Ð÷´F¨àñ1„˜Ö®]Éx¢â)³,ÿN%ºåÔWºH (¨¥X\unta“&ØljÉXyj…ãÐ!3šm  7 0¢q¥hçzaE#'FkŪIùy߉`{)Oe&CK-Ò"eõ=ŒO•À߀4v8'.5è\‹ÎÖx‘<›8.y–ÍÏØu‹dɉç]s‹t–Àh‚#·’oïÛ2}Á²z®Þ׌€´Ñ Ds‚æT† •éâïf6@ß‹}L´Áöj“Åq ”ñY˜8ºO´¤¿7€îXì‡ÿ¿sª~gÅÙ½,¬<Í#ˆDhT(yºæ Å]uÞÒB$¨­{´M/¹I‘§%bÊUy“É~°ÄjÌvݾw¾HP, dÊ.ôîi„%DË$ı2,¹  çî0Ø©V09§ùšÔïqº8Á¶ÞIô Œ0)n\ÅdÓ»­–€¶o9Îk» ­)ÐuÛ“t Mú72ø²,[xñEJ¯ò,ÉYªæùûvƒ}µÊE’!/4H«‘6u=`ã0Ädi#l WXtu‹ò¦D:K1[Ïð£ÅIrœ‹j“7>¸Š"ž¨ÒT–Ú_ÞÜÜàlqŠ"¡ƒ…vtàÈ8tŸœ‰Qß@ L­ž·ÎµÐ>£¡µb,Í2äYÎÁt’&\W)!I *× k®±Ò hcpŸæÈ³|55¨¨gïÍõe»e‚Ó|¹„1ILûM¾ÚM‰âÏ­X©D‡*4“˜°)”×%æOæÈ眜4*&E“ã<ââ´À*ÏMv·%Û»Óü„ñ¬l‚ŒäÉ ýäL̵$›d@«!±ã.Hdç ‰Ê8]–§™€š$üc¯Û[´I‡óôl $‘1[6jëjŽŸnº÷èT‹“Ó3!UyiˆåØ)˹pê¾d°•&Ø A¢Èg9úΡٗ¨]ƒåÙ¤(†PcOÕ©PyoZ‚QR¯,wê}ƒ¾éÙ&{mÅ‹¹S= “ÃX…ž±S3ü½:sF¸PõóÀù —ÆØ²ITž¦Òò>.KSHў𾾂Վc½Ã±*˲®q×~€Î4VùZªN€ƒ“mZ<‰ùÚ )j[³Èž!"!«‡@3 ˜g¨¶ö×{œ\œDºE´‡‘¨D*ñõMfß /f8Y,Ù õ¶F® ÛÄ}Sò‚%C(²¹Î'ø`a„¤†h ˆJ^$›öÒ¡„ ;¦ÛÈL4ËRv÷«®Æ»ú ¯Ò‹ñEIƒ V³b"û+9¡Y¥”@9@;ŠôøÖ ·B^±N€£ ¹ÍQu%Lf`²$’œŠÅ^ëÀ6¼ÙWØð ‚b¬èÁܼ¿C·ëqñòÛ$(‘ëzW1‰÷d¾òq.É4}‹3sŽŒR¼+ßBÑO³Si?X1ͲQø3;»áÜäó<+€Ëê=Š<ÇÇæ.Q2ß÷˜ÍVk±«Šh ·B_÷gaA%;NÎÍ8”±C6Ï@,‰¢F#ðÄ꽼ݣÝ6Xž¯FÐ݇ t¯ñâÕKôʲ§Ûv-êÛ Ê)œ¯OAN…X‘œ,Ô¦n±HçHu†Ïò?Àåþ[ìh³ìäÁ$pšîŽ LQtJjP§‡„­8ïÓ_Öá›ò’%áÙꜽ8×·ÐD0ÐHsÃR òàµ}Û¡ï$ÎÓ¤`hì€\KþZ…™£êKÔ› dˆ%’´öû)8æZ¾ža÷áù²€ÉS>¾Ù4Øß–8v–jæ¢U ,²4¤Ž)©;o9=…ž&òÂ6x1‰_o¾FNRÌðÛ qD;FSèh(y£/QÇ #vØ™±°vh($PžÛÁ$Ù“²U“'P‰áþ•hAȷî% àEV$!Ó9gw´KÐî[ÔÛ}ÝÂõ`x×DÈVs\s%Ç[àöòëå ª²Äîj‹¥Yàåó—xvzÎfÀµÖÇ’ÛfÇ¥3)0Çýl~·õ<Ä5b»‰¡Ò¸àçãˆâ~‘âîPµpN41YX9B¡r4m‰ÕÉZÔžµ‡Š´Ôò,Wò­Ù¬O»YŠ4z%/žË“9,zVƒ]Û¡³}HÁ±,YàÝ]òyJÐ7­­Q˜óbgcÚMh”ý¨Oq×”\ó4“àÛ!U)2“? €}ut=uüŒà¥é~΃êÝ•{¬ÖK¤&åÀMÄ!IG“~MgØÖ0N6‰¤ÁaM ¬, ™®MPg•­}û˜Fª‹v‘¨PèösB×ósXêaÛy’£mQãÖIìçb;A¡îjt¶åÚ&ÌíX–Z§ë‡p:hÜü8,|Òo:bšºjÛ–A5&æ8|3,ÍU]"M3¾Ú2„²c Îâô¦V½hºeWã,=ñEhF® öamàý½U ÉØ&úI?¦`¨êF˜h|\j”¶ mÊ©ÓØ—[Ø®‡ë,\Ë4À¸çоÃ!’ÅCLTêÏaCÔ³0bOuj¸ÉeWÞ1ŸEûÞŠ¶iQW ººåÏ}ÛóyʶDÙV81k(˜XD×z˜¡†à¹#=åtˆu¬³MK†.JcÓµ¢Ç…<¥ŠY4=öû-{½í™Cjí¨ñ–׊‚³þ{ —‘Ø5çáQMÄ’h¤¥-JbèÐ&aS³ªÍ+•|)«‡íÎZÜU[ž;KOxе=XüñãêP7øà3Ç`hN©j’ÙïÙöèÄHÇ#hÊ6X: ê ¹J±k*ì» ²DÜoÛ RŽ‘¤ ½Šôû¨éÝÈ:g:Açz¸™‘%R–€CnÒÀùd¦™Ú¾ålR×wœaÉL$üÀæ1è1Ì™;;®þðçø xSôÖÚ„tμ·®ü}ì7S)¶m‰]{‹"™ûþ÷˜§Œ^` 5Dõô» sR"Û—ëŒìœH¸õý‡Dì”HWØ[eàÚ¾á"íÌ(bßã¸û;Ÿ¦x–óCJ ;P£SÒð‰­kRÆ` TJ I•hÛ÷6¨Aߎˆ9ÍPö%nwטe hfµ,C¢ú 6Mö‰ê]®ûx µôJ ê,zE¨Ú ©ó s] MB¦fœ¡yëjDrжŸßÉ uñÃP™Nƒù{þÃi…AÎ+EÒÖuÈÈÀº˜‹-tÎýwíª¯@ÐØwª¶ä› –%'ãªýŒ‰H €U^"•H#9©¸×mÅÇÌLEŠçª¸ce–²L$Uw ¢$hÊøe@Ý#TÓô¸ð!çh²×Á1›8LDCš0{×à —ÓÛ:þEFÄû+–¬Yšát±DªÀ·xõ¶ãÖ³²©q»¿–úl-Ìj_Rj{áëôVº¦´‰O²P$š ³­ qecÚÙÔ7ÑÁ\°ÃqÜRè‡ðžwÌ%ô'Lšd$ù;ÔÒüc£­ìÓP$Å@¶‡ê;ìÚ=Î ÌÓ‚½E©óÕ€Ó|‚â@=™Í°œÍ°¯K\o®& {˜–K?)¥œ®ó¶r¤j•#æ³ í÷A½Ðwˆ971VîÛú ç8´@~ÚBQ ïDÁ~I)Oƒ1ÿGÀ•Ê÷Çß(X\VW¼Ç›'gB9ô}}Â93áé–!E e‰ÁÙz…»Ý]Ûâ¤X‰vã6²‹mXRíɼ䆪QŽv¦8ªÄ‹(q¡—úûnÿÈ™ºÇ79œŸ¡Æ†_+B×GÐýJe!¯VƒÝx¿»æk<_®$8—½1IÞ)IMDp™t™àz»ÁMy‡õldqÄ6“poNÓ5Þï/ñjñ&€ÈÁñ›TÁQ\QÀ»í[<Ïž>"€Qü&ŽÌ„Oã}(ÀãÚ&ø¶!#'7æwMÉmØ/W'PofVø˜°ƒmZ€i„3±zˆi—7W¨šŠ¹71÷þ¬ä6ER—kna»Ü¿ÅóùÅPâ&«Ö!÷ s^¡2¬’šÈǨú<Í)¨.’˜!YéÄ0[X'ïJI²Ù’Åuu‹óÅJù ütìô ô¬€JS(c€ž‹aÎ…j ÔÉr‰m½ 6Ï£êûµ¬B %xž?…ðv÷mð4§+•FùOPT¤Ö:|»ý†—ÒElßÃ莠¾Déºÿol¢ ;mÛðw„Þõ!3²©w(Ò”C »ßIÑTJQŒ H\å…Aà³Mƒ¾n`ÛŽéι! ÓH7¸¶ïÁŸå9ÊZŠqVÇñ¢Zéùè‡g§x]<Ǧ¹Ã×›_⦺BÓÕ¾¥›Acð›¾ÂUõ¿Úþ7)^àiz ’׃¦ÒîtZÛU½Áåc©ªš†3/2/%šÔ¤¢>¥Ëã‚ô]]Cù¬ ¸6×Ç¥r  ÈŸ&á¹4,ýþ …,Å|N©Á+êƒãÅÏf/Qõ56íÊK.OÅÒšÔçz†×ÙóqOĸô1ŒÃMå+âDÇŽ“1Ïs4U…¢Èa^úÕv»³Ä1i&0·-ƒ¦Hl |iHâý±Æv°Ñ3´€¥è4­8™«,Hh]–Ì»?á댷sœ§Ç‡ãû2êÁ¤P}߇|»‘š=~Ž¢(8ÓÒquB@R$Lk{hÒñœ’„}ðáÙf 8¿“™Û•ùAÙP‰'Ìç`i÷Ùg-ÖÉß5þòïŒÿÏÿ@UWœËõ`ެ“×±EÿøW‘²…™¨Æ¦¶„å|ÎÜLîSvsx$T|BSïbÎÃÆgÇÄw¯€‰­Ïc.©$Ê]xfiYîq‘—”0ÐÿøÏÿ„?ü“?—?ÿv»ç_óà¶o àTMNÃQIS§îp"Jg‘©÷Fk´Uƒ„LÌ’t»Šä±ø„P CÉŠàÐ@}9 ôzÿŠêTÔo䫺bÛ5¶}Ó÷ÕW_áÏòø—Ÿ‰»Í“£"xSàŽùø8Wb½£š—(ÔùfRï¤2à-—–ÒŽ€Bœ« HŽ`<¨ÖçÇAüñOÿ.Hb×±Müÿ àý,˜IŠtêÀpE•pB¹‡à"æ2|CÑYìvdIŠmYŽ%…=„¢Bcœ@t4˜©» `»ßÁ8Å’—(sÌ3;bT§¿8åíÞ“­‰½Ðaã·»Ý]ÝáEþŒ%!±}?*^qgoY•hÚm׉ôï2†ˆ@yPI¤ñP}|ƒwû Kïï/~ô ’÷»¢9÷M1‰Ö¦ÅÝX¨µ·›;,òžçðhpÜYú+3Çÿ”—¸ÚÜáÉrÔ׿HYн)!R L^}Çýºîð*¿˜Ø« â_|ÁöÇŠåbÉ™¦ÇpDA–šT}«¯ªªPV5žÍÏØæsç€D%¬æ.«Øìv(²FÉÃ[•–ž‡èÑÆÐņ§ÜK®4Ñ)–Éo7×|í™)ŽxúÁ ®–+m À¨ý¬ ŒèiN¦z¤ €óœûªBU7ÜÅútvŠÂÌð‰ƒË:T¶ÕOçsXHÍ®TõÛÊ|9Èx"”aŽÌ·wWXš“pÿÏcê•ý/{çï¢FÄño²ës/« ž ŠxؘFˆU iµÓFAí­üClÅN±­ì¬¬- Ñ6…Ò™K¼»ì̲päÇ%…»d>Ç0ûØòã½Ùñí{þRâjµB¡PÀÇ÷xË@èI+&Wèœ ¨ÑŸÆaï•§Lc]w2=öëÊAņáä§ †Gã‚Vp†•KÐ ÃÞ~¬ÙãgDqËñ7¤ã&ˆ?XP}&írù¹Äù|Žjµ 7Ÿž>#lÆ ßÐ4ϵÂv»Åd2‘Íf‘ÉdÐëõ00éÃz•ÿ<øûÞ•äq­‡NýËçóX,H§ÓÈår¸»»C8&‰^(l6–×ï÷±^¯1NA´Ûm躎H$‚h4 ¥ ÷@Pƒ‰šÍ&–Ë%ˆr¹ŒÝn‡óùLßÈ8 ô‚#c6›qN&“(•J¨T*hµZˆÅbÔ&QpëâàÂ~¿Çñxä”x<ŽT*…Z­†b±¢ÑhÐJuÏc–bš¦}ÀŸR”¹7îv»èt:8N$ާ֛>ÉÉce uÄÑ5 …BÔB8’Fò(èžÇ Ž8,U·ßšsDûk þE˜´‚‚D  E  ZŽò³@‘W¯×}.PäùX È£c y>®"Oj È»†@‘çã(ò|\EžÔ@‘ç%"Ïÿ5PäñØ;/5 üËÖ$æ%c©ÿ;:%{‹²¼5úÂñX×÷ß¡Ô=¯¨€••J¹Þ\VÎ=×õ‹îýhçŒR*b(z“vÿ‹Ð=¸—!â TéÓ(¹Êõ½86ø•¡Ò¿Cšö£i€»û‡¿ <}Èc`lŸžaþ÷ýï\óEòýìZÓû`Ëgîgk;ÍíÍÌ®1ƒE`f ߃ ÿ¾ž¥ÎÜp”æ`þcÄšìg2]Køm¼3¯Øœ‘€T"D$%–l(O¥©‡5‘&Hi"¯V` •™w Jä9XyNáiB%ª8é@ÂLR¢É‘ÑÁñIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-spinbox.png0000644000076500000240000000171012536324512023121 0ustar philstaff00000000000000‰PNG  IHDRÓ!tƒnù&PLTEÿÿÿ###777999;;;@@@BBBEEEFFF[[[^x’fffhŽ´jjjs•·†††‰‰‰©Â¨¨¨°°°¶¶¶¹¹¹ººº¾¾¾¾ËØÉÉÉÉËÏÊÒÛÌÌÌÍÍÍÍÔÜÍÔÝÐÖÞÑ×ßÓØàÔÔÔÕÚáÖÖÖÖÛáØØØØÜãÙÝãÛÛÛÜßåàâçéééíííïïïòôùóóóôôôõõõüüüþþþÿÿÿÀq!"tRNS "#$¼di/IDATXÃí˜OO1ÀÛÎîa˜Npà°$ŠnÀˆœ4ƒßÂ/è×ЃFQÄ .BlHvºnf?õ½¾7cgƒ÷iÃë´ïO;ÝùÍl§ÓÊ×ýXø'YÕm-¾q<ù*ö‘©¹Rq»­·.ÓËxÔ»m¯¢•ÔõúSL‰5>oZ5 ƒÉŽ˜¯BÖ¨w5D²”ÑL±j.|«Qp5DŠ¥Q5>Ö¨~5Db­j$‘„È@£^‰$Dö%’Ùk¤Iˆ¨‘D"´# ‘–Ø‘‚f.vƒÝd íVkí6»ÝÙb¶[¢(k/¦¤¯¤Ïó;..îÿC?¥#-üyîQWQÄÓd‚¸“¤)ŽI%EYL£xªFÞÉ•FŠòW•ÜÅ:ÒBOr5Þ)Ê’c›ÔR:R\[’¢¬lCJîHüq¡’)Š·Jigv©Iú(Ê •RGR”w$íHŠ’õޤS;EÉÁ©î‘eÅ÷H¿¤2Ÿ¨ÂîÄuIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-tabbar-truncated.png0000644000076500000240000000565212536324514024674 0ustar philstaff00000000000000‰PNG  IHDR )"F Û qIDATxÚíipÇ€…$Ðn!aI!‚Ø\±!)’J‚ H€IU0F‚!P›@bŒÁ*P•TBL…+È †ŽS.‡›C\$HÝ+íê>÷ ^úµv†ÞÞÙÑô¬’ܪúª¦çM;=ým÷¬vÇãæÍ›pôèQX»v­„Ï ž‰¤=13öØkÓüäÏC¥²æëw$ R’g%ŠúÆB(צ»ù…e¡ˆBvž#§Ò3éI•çBÒ^(ýÉ“'B\¾R¨ÎÜÉ/eÑÆ²tœeaW|]8Ø?~,/ ³ù¥,ÚXxn®^»í@“Bs Í·h¸Êsꑦ§Ô±¯å¨A®Sªê[¨R¹F©¬s¤B¡¶™RÎa«Q¸ªbU¨n¡ŒÒ¤RZ匩lT)a©h„bJƒJRþ”BJ} ¶z(ÐûbÓgé]Šç- ?‚/ÁÇN;Ý Þv¼ž) }YÔ’A(yþ`_|ž–Ó¥Pû£G„àea6?€¿E¾Œ4œ…ñM’yÁ²¨©k–t°/Ê«ê»Ê`øð¡¼,Ìæ'ã!€ÐÓŽ?7Óp†YY¤§§Ã¸qã 00|||`øðá°wïÞ.'‹êÚ«’ö…­²®Cד;ù;€,‚Œ4ô„aN™™™ )))PYY päȘ0aB—“EUM“0XBÏž=!.n4œ} {÷î0tèP8{ö¬P~l{LL xyyÑ}¹¹¹0~üx:@q¶3vìX(--uK•ÕÂ`=ÊvNn,Zü 2ÔTY’°/JËk…ùü‹ÿBll_èß|öïÿ˜*ÃØÏîäï²#„º;Ã0/ À‹E÷˜U«VA||<BMM LŸ>’““nBB×××ÃÊ•+aذaBùQ V«UÝ7hÐ 8xð 444@uu5,Z´¦L™â–,*ª„ÁzØtIi%x{wWÓVr¡,üå¯ ,<œŠpbB"Ûò¯^ó{ˆŠŽ¦"Tö-ÿp%“óß¶“¦CBBhúÓ=4ëß¹ûŸ0`À@ZLÌ·`íŸþl(Æ–íÿù´H™öö º=ö\GËÀ²^~ùøúðqCõûÂb«æí3á½¥ËaùoV‘vÿÂ!†í^FÎaxx/ðóóƒ¤ÉS!ŸôƒH\k»ÐRsæÍ‡ÐÐ0 ‚«Ö¨±ã§2`ìë?ÿžê`¿ÿ¾¼,Ìæ'mîÅ#„†²$y:»0# ¼€ñŸ„ Ê>œ1àrEI£\péÂæ±Ùlj…áíí-”¿¤¤D·X&ŠÍY”“µ¥(X²“Of¿†WÈÌBÙ÷>¹x_122/A~¡&“‹pæ¬ÙùßœøÍËî›37 ŠÊà£uëÉÅæï0pfý¡aað·”mdpWÀÙŒ,2è§бeÌK^ñ£ÇÀÅì+u)FŒÉóßq8ögãß ¯§°Ø KÞ_C¿÷}Cõû¢ÄZ-D^‘•È4NœÎ„ôŒ‹t÷)qlw\ü8w>Î]¸ #GÅCò‚…Bq­íw.&ý; Nž9YÙù0kö\5ö™áìÞ{r JÕÁ~ïÞ=Mðú×ÚÏË‚c[\•Éæ'ÇEØ…®! çÙE[Î,ØÁˆ¥‚xzzÒX·nÝt®»ù;Fo´â@RäÕZžÖda#kKQXyb[F çhÚ)5Žï®‡œPÓ.^¦³6æ…§2³/ÐíbK¹SÏ{¬²Cf)¿ƒ3ç.8µS/Æ–Ñ»wo8~òŒš>vü4ÝçÐ6"6%óòò6TQ°/ŠÊª…ؼõøñO^UÓ¯¾66mùXMc»§¥«é¯Žž"¯ë¡¸Övï¢è±­µOO( ÿÌÈBOŒ,z"]ÃyvaF¸|ؼy³î`Ç{ ¸„¹Ùènþh2mOMM¥7]oܸA—"ìqfda-¯†ÞìÒ‰ã@Ò¡^~~Ÿ^šÝþâËC0fì8:%ŽŠŠ†?Ùa(Æ–í´”UªiKY} FÛ«WQ°/ K«„ˆ=Ö®Û ¦×­ÿ )(ilc^q¹šÎ#K |]"q­m<_x¬V›öýëKøÁD–5þê`¿{÷®Š(Yðq^|œ}³âcl~â„ÁÞÃàgæd7"qI°}ûv: ›ššàСCƒqõêÕôcvv6477ÓŽ÷ŒÊÂLþ02ÝݳgýtovNš4ÉmY”Ùª…Ázôâ8`ð]V$?¿O/íªþÿØ †bl‘d‘v"]Mã, ßaEÚk¤ z`_X* “ž‘M6;pÜwúÜ%z ¦q ä9tä$(i#q­m<ÕjÆÖoú+d^ÌÓì¬(ÚBZÂ`dãBüì¢e)böÿ,pÊG§Ùxó§ÿûöíSãׯ_‡5kÖ¨Ÿv 2víÚeXfòïß¿úõëG—0±±±ôweQj­†Þ%׉/ý`9Œ"ë_œÎ[lð¿¯Á„7tóóûôÒìö&ÂW‡Ó轄mÛw¡†бeÌ7ÆŒyÎgåÐå¶ïcm¯^=FÁ¾È/©0Ìò¿…„·’œö'&M¥1ÜÆ6Ž"3 ”2bdÌÿ®z¬‘¸Öö‚wÓ%OÚ©LÈȺ3fÎVcxß—GÙyu°ß¹sÇ^|œ—gEÁÇØü$Þ‡F³ág>òß½[‘N¿E¡wÆuâxaéB4Yj¡Øþ.lÙš¢›Ÿß§—f·7nÚJúúŽÚÀ@HݹÇPŒ-#¯ÀS¦Nƒ€€ nã>£íÕ«Ç(ØWŠ+ 3pÐ`Hݽßiê§h ·±K–­°*å ‰“!+·D=ÖH\k;;¿ fÌšÁÁ! ËW®Vc[Rv@ŸoÇÒ¥Š2Øoß¾í+ >ÆË‚+¢Ð*—Íßî²à§8Zt%Y””–K:عEåm ^«îÄÝEOŠ0ÌÊÂU™ÏTß´™.DhM¤¢åIZÀ¾¸\h3Lký ÓZ"uŠ¢ ö[·n¹ÿø}¼,ôòk!eÑN²(*±J:ØÙ¶6…~äëFÜ]”Á.zmò²0›_Ê¢eQX\&é`_\Ê·v)¤,º˜, ŠJ%ì‹‹ùe] e°ãÿ‰ÀËÂl~)‹vøAUü—lÉóû!+¯¬K!e!ª]"ú NüŸ"xY˜Í/eÑÈG#HÚëq8ØñK™"ð²0›_XRÉó}€”…D"1$ ü,Ìæ7µ ‘H$ÏïY(8xEàŸHf6¿°,øg^H$’g‡Ùg•¶E~aY8=u¨åë¨þö¯§Ù¿®fÿúj¤½Ð({%}$I§Eì+ê.dág7J Ý0¡:ÂH$±¿Ñ…ý~vjŸ¢ðÂH$±ŸÕs! ~v¡%Œ{e‰¤s"öƒ½²è¡1»à…ÆC"‘tNÄ !‹î³ Vì=Œp‰DÒi{È Yô`„áïBÊ,C"‘tNÄ_¨! o aøéHC"‘tNÄŒìB­ ƒ•†D"éœ0ãYO.eá¥# V¬8$Içß“„kQxxxjÉÂÓ…0i°3 ‰DÒ¹ñeÆu—¢Ð‘…" ^ZâH$V¼$¼tû?¯$g{4øíIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-tabbar.png0000644000076500000240000000524112536324514022677 0ustar philstaff00000000000000‰PNG  IHDR#)~ÌOÿ hIDATxÚí‹S×À‘7WÞO‰¡m 6vœI§¶*¨µÓú" X‹UCb#ij4Ñè$Ô6M%ŽV_Õé´M‡& JP|¡$áuy¿Ÿ¢mÿ¯ûî^ÏÝ»»wwÜ~Îüföì¹ç±çÛýÝsÎõr=îÝ»%%%°gÏ‚Çdž cÿ<ôà!Šhxä ‰ ¾b‰"¢ÁsäbEAŒL!#Â<Ëf‡¯×¶Éhœe„c3tç¿ Š 20üú‡¤Üƒ>dð>½<w¡GB7Ò/2Âèé¥ÓÎFG¯#í"=ÃŒ6 ­Ý"CvZDºFif ÚiêtÆŠt Øiäi€F¿z¤í>uŒ¾QZû V†ñ‰…-C掃ÞŒ÷ø×)Œ¿^!yxxø øÙðµá#àmÃKÀ“A2R—Qpsî‡baŽ蔑ņ(%NJÎBz˜d$\°nu÷&€bá^Œì¡ Ï[ ÀdÉLÉYHFeTQQ .„   ðóóƒY³fÁÉ“'8uõ &ÀŒ±ÀûéaÿòKWŒÈ(X ˆ“’šŒÉ¨ªª ¢££¡  :::```Š‹‹aÉ’%œŒ:»uƒíˆLž<RSç±`©Ëhûf¨c<1 ä›ßz ¿1¡ã<^ã%WbQ~é²… „(HÉYHFd”‘‘{÷îU}Í;w`Ó¦M þþþ°|ùrèííuC~~>$$$€¤¤¤@ee¥®òØ÷øøxðòòbçjjj`Ñ¢EL8[[°`455IF]ºÁvÄã[5õûâo 99ÅP]Ä(FcñÑÇŸÀ£&ÂôéÇÿ*×>ñq6sãAÙEC2 S?C2.#„ÕjU}ÍŽ; -- êêê »»²³³!''ÇA ééé,¿¯¯òòò`æÌ™ºÊ£ ZZZìç’’’àìÙ³Ðßß]]]›› YYYc’Q{g¿n°>ÝØÔÞÞ>ötK[¼°ñ×ÁD»,=êZÊïÚý[ˆ‹c¢ÏmÝ–!!!ÂøGÁ¡ÃÇY:44”¥ÿZølûÇß?ÅDl?>~*ìùýÛšòø:°ÿ?[µƒ«~¾šã_ûæïÞbu`]O<ñ$|zv´b4¿X³¶¼ò*lÏ{ ²W¯qŠÓ«ÛwBDD$@ÖÊU`mîÔ•/wÜÜÚ9Ïm€°ðp†¯½nÏ«¨¼ ü°o˜¾¾¾š6nÞúÒ^™bQv±ÒˆŒ"9!…J„$.ÙîÏŽŒÈœ¹ð¹ˆxg<¸œÓ(/\ÚñeZ[[íi’···®òªýÄ:Qœc‘Q[G¯n°ñ¸Z¸Ñr_| žfFâ¹—7o…ΞWªn—uVX±b%¬YûK‡òK—=ÍÊòçžYŸµõÍð‡·þ‹Å!=ýñ$Ùöñ8XpX¸aÛ¡òÊuáFÎÖ”Ç×ñlÎó6o>ܨþ®ß¬Ùs沇íO-f×S×Л^~R¾ó]MíhÅH,°½°°0øìò5¨ºv‹ã9¾ßx]xMxm¸œÞð«ºòåŽ7æ¾sæ¤Âåªpûóz'1ï1A§Îüê[á‹ÚF6¶éOgÊÖc¦X\(7$£(›"d„ä<;Ï™ÿ°£XPZˆ§§'Ë›4i’ªÆZ¾´´”m¤ãƒ*ÊÑUW2jmïÑ /gìËìÙs¡äüE{>¾#+.³§¯Ý¸Íf7|y|x¤uVß®eÇ Ö6§4ŽÿZñ8..^˜e½ÁHi?Õòø:bbb„›ñ3{ºôÂ%vΡo‚8Å4 ÒËË[S;Z1‹?‚ïÏú=q8pð=‡~ã;¾˜>_V1S¦èÊ—;ž2%–½VKq¬ÂÃ#dë1S,°M2ŠˆV’óìȈŒpyµoß>U™à^.±ôl&µ|œ°¬9vìÛT¿{÷.[ªñ¯3"£–¶nÝ`;jùxsȉV­¼ôœZš?þð£"˜¿`¡0+‡ØØ8x÷½£šòø:°ŸÖæ{ÚÚÜήAkÕÚÑŠ‘XÌŸÿ#øãÛùöôÞwöüy úè꺴^·óxµËöéÿüžzê{ yÃÔ:–îŠÅù2C2Š•‰ßC’ÎŽŒÉ7šqÉtäÈöÀBQQ‘Ãþk×.¶\]] ÃÃÃlÉ…{9wží>rœ- ´äñu¬ö96˸zý{±ï¸w¡µ¿jíhEo,òvÌNçWd­dybqÿ¯I¼®ç7¼àp ®òåŽñà \VT^e›Ók×=cÏ c{6¸|Â%à¢ÅKÊâ†wqI¹âXº+x¯Q‚DHQÜrM:;ò£¯ƒ¸N‰õ"Nï•À=žÍ[¶Aœ°EqΘñmØ @µ¼ôœZš?Îçû?68#ÀÍÓcÇ 5åñu|QkeŸ$2ðÏií¯Z;ZÑ‹¤¤Pxò§ó…§þÆòÄ>nݶ"""Øj¦ /éu¹Ê—;Æ}íºõ Á!!°cçn{Þ»‡ŽÂ#Lcc1uj¼þÆ›eqÃÙb™¬X·»baJI§½r2³#^HüRA„ú~ÄQAF¾œ, BgIArèûykyË)@EJArÈI(@VD^J2r%$^JArr¾P‘¢Œ¼T„ÄK‰A„‹DBÊ"òð𔓑§‚D)ñ3%‚ 5ü9oø*ŠHEF¢¤R’A„¼€¤òâ|3éÿYæ~¶ì­´IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-tableview.png0000644000076500000240000001364412536324514023434 0ustar philstaff00000000000000‰PNG  IHDRû¯;m¨GkIDATxÚí tUšÇKH„°š€É ÆÜñˆ#BÔAmºÀ €=´:ê6Ðb;ÍæÀt+}‡ÏÐGìQl—Ó*ÚŠ Ê¢(’¬,IØGÑoÞw©ª©W©WÛ«¼÷n½ÿwÎÿ¤Ö[õîý~ï»·òn}ç577ÓÆíûié«A$˜Wæ6dç¹Ñy*è“æ<ARw » ú{ï½GÏ<ó ”â¶@{·=8*{)Ïásg.Gïv.¬¶¾‘êš 8ŠÛ@m\´G0ÛCýÄ©ÿu%x_`ç©©; ÅQŸmÿBs.´G0Ûà 謯÷‹sUØÏskFØ«k@q”ѹP'Áköæã§]ÉövµUÔFÑùŠÌa?XsŠ£ŒÎ…: ^{¨°m:éJ&°w ©“"^îRûRtð·Ñ€o û!(Žjé\¨“ µ‡ û¡#Ç\Éötƒ:‡”ª€ß^¼9ìUÕ ¡Ð­%̽ÄRFçJÆ:z{¨°×54¶û½Ùv– ì!uSÄË]tÐëoc {åÁzM|á]ü»°m¬Õ|Yì3n÷*³²ü,_&K_‘ë{L¦¶‰Ôzååõ§~ýr—©Â^]{8Lú65îc™ÀÞ3¤^Šx¹{H]àÕŸöŠªzM|ÑË.¿‚”ׄm¿îºëÅ>ý¶hdV–ŸåË$£s9­¯X*™ÚÆ®=þüú_(çoúÑ€—Ðú?¿å¨LöªêzMf_âúý,سB꣈—{‡ÔC>MË·Wºò-a/¯¬ÓÄ|àç¿ ¥¿_¦m[õ‡Õtÿ¤B±Oݶ¯¸‚îºû^JKKºûžûÄ6}9 -¦>}úR»v)4pà zûÝ´}z99'È2:—Ù1úzúpË6=úJíܙڷoOÇÐö_…ûÔÓó(33‹Ú¶m+¶í/§;ÿaVnäÜqÓøGQ02äd»éó_Ò Ãn }IL+çïÇÜFŸnÝA{÷ ~ü ÑcÐï×_×É9AUKçª5­uùâPDyù¿×….£¯öìm1ö§w†˰îÜõµ¶Ûæ¦Q£iÇ®¯D›¼iTX™Ïø%ýÝ ÃDݳƒ7!ô?Ų½’±=ö—TPFFmùä3ÚúÙ.±ÌÛÔý=ü( 6œ>Ùº¾Ø]D…SÛUØK˪\ÉöÜòå*Àg)]ú ¥;ßQ··„]…šÅÊGŽE+VþA¨`äMaûX½{÷¦6mÑÖßÿàC±M_;›º¾§¨4eÚµ¸ŽñÚVçUFç2;Ƭ¾ôõÄY,;¢þ˜Þ^H›6¢­oÜüqX™Ü›zwÃÆ°{–ë'S{,[ñtÝÐëµõn¸‘þ}ù Úú…fÒ_7~Ô¢Löý%å®ä;ìÊ«5q£òßÿZ½††"z~þ¥ôÇ—þ¶ÅÝÃâÒJm½¸´B€i,Ǭl'û­¶MFç2;F_ÿ³þ 2äZꔚªuýÎ?ÿ|Ë:3k¯ðöl'ŽaµiÓÆQ™ÉØÿí·ÏiëÏ.}ž n2ÔsE‹2UعÇêF¾Ã^ZvP7*ÿå±?m䇯}¬^¡(Îß`êú{ÝŠìšk¶Ín¿Õ¶ Éè\fÇèë£ÇïŸ_N;¿Ø#Ú‰»‹vuÛK鉩ëÜvúãx|Ï]ÓH÷˜ í`×Û>ÿB|)ÇØ¼{RjÛ0 Æ2UØ^·òvvU|óúõHû¦Nû¹ø–Ûöù.ñAo¼q„;Z•£ßÆ/6¼·ÉöÚV÷Ë®î»vÍ å+V‰î;wÇÇÜvGØ~³:+œz®½øZÜf¼¬?nÆÌ_Š6äáØ¾â2úË;ïÓíwŒµl¯dk_Íý5ýìÎq-Ž7~‚ØÇË>ôˆèÚôñ6Ú’Nš\(¶sY^@7!ï¯(OyP×GùWœØ+5s€JSé÷ñMŒŸp7¥¥¥ ñ2o³*G¿íñOPjjç°mvçU-˺î_XõŸ”#"Jß¾Ñoæ-´­ÇÝ_c&ž´wïÞf>1›Úµk§íçñáÌ'f…Æî}ÄöK/ý[z~Ù ËöJ¶öÈ¿ôRzéåWZ¿æO¯Š}¼\´ÿMž2•ºtíJ]ºt¡'ç>-¶G3]V?ë-jØy,ÅOFçŠÅ5ßÙðø¢@ýǦ=vþ×?«µ®3ñþÉâZò¹ø·é”Âi¨ÿµ‡×)®êœvß`ßW\ÅQFçj­ëüúéy¢ ŸššÿD<àCýǦ=TØŸüÖ•|@Çd ø©¥s¡N‚Ö*ìÇNœq%ßaç‡ Püdt.ÔIðÚÃGØ£ëÆïÝW ÅQFçB¯=||SMt‘}OQ G u¼öHع0þpPü¤6(Ú#¸íá#ìÞºñxO9ÞÅ®=ö¦c߸’o°ÃǶnÝŠJp{ø»·n< °Ãb {có)Wìp.XòÂŽn<œ &ì'] °Ã¹`’ÂîC’Àç‚% ì³Ã¹`2À~¤ñ„+!²Ã¹`€°Ã¹`‰ ûá£Ç]©ÕºñüÊ!Xb9×—_~I·Ür uîÜ™²²²èÅ_De%7ìþDvÀžXÎU\\LÙÙÙ´~ýzúæ›o¨ªªŠ¦L™‚Ê’öc®ØËËËiìØ±âe’:t [o½•:vìÊ•+)''‡RRRèÊ+¯¤Ý»w[~q¸-éÒ¥tÑE‰wq÷èуŽ9¢íÿî»ï¨gÏžtøðáÀ:×=÷܃H0Ø}HÙì?ì¤7ÒéÓ§éøñã4cÆ ºï¾ûÂŽ7nUWW‹¨3oÞ<2dˆcØ”ÏήþÈ#Ђ ´ýï¾û.Ý~ûív.ΰ³hÑ"ÊÌ̯’?~<555D©aov¥¸tãhޤúc=¶Ÿ_Aìv'å×ÕÕ…õ8ÊsDg›>}:½úê«v.îÑLš4IÔ3C>yòdºë®»@¢Ä°7nv¥˜ÀÎvذaâÁ>ÅS˜íö{)„ ôÒK/Ñ?ü@—\r 9s&ÐÎʼnµu^æa °û {ß¾}é•W^¡ææfúñÇEWÛ Ì幋®G§hËß¾};]sÍ5´eËš6mZàëúë¯ë¶3ìééé QbØë5¹RL`çW¿öÚkôí·ßŠ.4wÝÀ~õÕW‹qÚòÙ†. ؼysàkÕªU¢ëÎó—âÔ©SÅs ` vîóSqÕÞ|óMÊË˺_¿~´bÅ W°ïÚµK<¡çóy¬½lÙ²°ý^Êg{뭷ĸ7tçâÏ8wî\í]ïü…‰trÃ^×ÐèJ¾Ã~öìYzá…èÚk¯MøFX¾|9=ùä“p.`÷;çãÎÏÏOx‡;v옸ÏÚÚZ8LRØjï·ãe»õ¤ümü¹<ØmEwΓöÚús0«Ëvë˜â ç‚I ûWìp.˜¤°×Ôq%Àç‚I »:&W¶Zìp.˜´°ÖÆä¼l·Ž—WÀ¹`’Â^]{Ø•Ùá\0ia?äJ€Î“öƒ5‡´19/Û­£ç‚I {ƒ6&çe»uß"; ‚Z_*ìUÕ ®„ÈŽH“4²v`OØëµ19/ۭ㜠&)ì•ëµ19/Û­#²Ã¹`ÒÂ^çJ€Î“öŠª:WB7ΓöZmLÎËvë€Î“öòÊZmLÎËvë€Î“öWJ8Ø‘#°£=$ƒ]MÖ `Ÿs½ýöÛâÕÙüÖߌŒ ñºm~-7L^ØË*j\)áR6öÖq®‚‚ñn}~gü‰'háÂ…4tèPT–Ô°W»RÌs½ñ«¦çÌ™#r±uêÔI$*8uêTØy‹/¦^½z‰÷›ŠäúýúŒ¬‘®•ÌY^8×iÇŽA¢Ä°(¯v¥˜GöùóçÓ¨Q£DÆVŽ0œ#üá‡;o̘1ÔÐÐ €d0gÍš¶_Ÿ‘Õ ìÉ–åÕιøË•¿Po»í6(5ì])æcvÎÀ²gÏí8†šÓ ëÏ+--ÕÖ‹‹‹©OŸ>aûõYÀn´ gyµr.µ-¸ç¤¯g˜|°—–t¥˜wã9Ew•YœPÂ,ã*wõUûþûï=¥oNæ,¯vÎŽîaqÀd†½Ê•bÞçˆÉ]x«ÈcŒìœ¥Õª\dyuï\\_ú||0Àî;ì‹-ãpš£6wéõÙDù<Kòx]³Ïž=Û²\dyµw®‰'RQQ‘¨s²ðs ~B“ö’U®ón~Ú•L`G7‘&Cd?ÚtÒ•þ ΓöCG޹`‡sÁ$…½®¡±…ÄkÜL¶³Ð‡sÁ$…½ºöp˜ôï)0îc!²Ã¹`’Â^U]¯ÉìÅ$úý,Àç‚I {yeP¤·‰×¹+ǰ;œ &)ì¥eU®Øá\0Iaß_RîJÒ> CN7Àžì°ïÝwÀ•Zöüü|ºøâ‹}°»s.Nê8|øp‘ßßÈ˯쮩©AeI ;ÃëV­Öß¶mõïß_äsûôÓOÙãè\âýü<ëéĉ´páB:t(*KRؽ€Þª‘ýÁ¤ Ð’%Khúôé-`]¼x1õêÕ‹RSS©°°P$ŠÐï7foEd÷Ϲ¸®9W;L>ؽLoÕOsõ=²³3q¶—ÊÊJª­­ËF˜ÇŒC "E3§jž5kVØ~cöVÀîsqŽvþ¢UmÂä‹ìÑÈ÷ȾnÝ:ÑuTmôèÑ´víÚ0XõYD9wç!Óï7foìÑ;—úÿWîQ!‹«Ücv/j•1;§j^½zµ¶¾fÍš°HÂwöìYm³²êS+Û¥qìÞ‹“gΟ?_dÏ…%ì­ò€Ž»å ®ñ×<¼»í‘";ggì±q®Ó§O‹'ó0yaOˆùìÏ=÷Mž<¹ÅMN:UìSaåHÏ_ ê˜}öìÙ€½•œkâĉ"ƒ+÷ xx4cÆŒ°aL>Øb>ûå—_N›6mjq“›7oûTXù)½ú4~Ê”)tæÌÀÞJÎÅÏK,zW½{÷_Æü% “viæ³Vyœ –˜°ëç°G’Í|vÀç‚É{¤¹ì‘æ´Çí·ñ€°£=¢ƒÝ8_Ýj.;æ³Ã¹`®ŸÛn¶óÙá\0‰a÷a>;ÞAç‚É»óÙÙá\0`O¸ùì0ÀŽöHØùì€ÎKäöP§¸z‰á\0‰ÚÃÇ”ÍÞ`÷zêMD3!’KªÓ•——Kù7^¾®Ö[´Šºï5g´:Ç6š9º\â¶V#”Œãåë~5ìÑαUÏol>Xj{Ë :ÿõË×½žŸ0°{c«ž¤ñD`¤vÙüZ‚Ôö–9²ûåë^ÏOØ#Í¥åŸñYͱõ:m/‘Å ê?S´ëAP"{´¾îô<ãù>Âîí¬êó­_=¿þP`)²GëënÎ5~Q&Dd7Ëm6·Ö8ÇV=¿¶þ(`)²Gëë^ÏO˜Èn5ÇÖ*gt¤œÓ2Ksûµ)²ûíëNç£' ì^çØþÿù ‘:æök= RdÞ×½Ÿ0ÝøHsl#ͳ5V@EU-`)²GëënÎÕŸŸ0‘=Ò\Zñêh‹9¶êùeÕP€¤È­¯;=Ïx~ÂÀîuŽ­× ù‰,uÌí×z¤È­¯{=?aºñ^çØªç—VFê˜Û¯õ (H‘=Z_÷z~ÂÀîuŽ­zþ¾â2(À RdÖ×½žŸ0a¢©¯9§!¹${d—¯·ÂDLq…ZŠ«Ì‘=@S\ÝÁ¾qû~q"APâ‹yen]ÃÎß*ð%¾˜WæÖõ˜=Ô« “b픃Ҕ“øäÌ.2n\ΰß(«ãìÊÈux^®Í6«ûwzÝ\CÙy&×3[ϵøœ‘î3×D‘ʵª£\u˜kSnžÅ=æÙÔ«Ó²ìö9iã<—õàÔG¼Ô±Ýçȳhg§þØ;`쀰vÀØ;`OØÛ†Ô!¤Î!]R7å _–òÄ/G)ظœa¿QVÇÙ•‘íð¼l›mV÷ïôºÙ†²sL®g¶žmñ9#Ýg¶‰"•kUGÙê0ۦ܋{̱©W§eÙísÒÆ9.ëÁ©x©c»Ï‘cÑÎNý‹ŸÄ÷©»Âmg…ã¶v°·©“Ý»(À÷T€ÏR"½q93Â~£¬Ž³+#Óáy™6Û¬îßéu3 eg™\Ïl=ÓâsFºÏLE*תŽ2Ôa¦M¹Y÷˜eS¯N˲Û礳\ÖƒSñRÇvŸ#Ë¢úW/ô. ·Ž-aoRŠò­ªtôÀC”xb>»*¼¦*]ø…gKØÛ)ß •Ó”®AA ©.ÐÛ+[Â~¾úUà;(]5ʧ+ð—Ó"ì7Êê8»2Òž—f³Íêþ^7ÍPvºÉõÌÖÓ,>g¤ûL3Q¤r­ê(ÍA¦Ù”›nqé6õê´,»}NÚ8Ýe=8õ/ul÷9Ò-ÚÙ©uV8í ½­Â³%ìmtÀ§è ïAPBJ…p9èúµô^„Ë„É – é¥CèWé[Z»€ïzé£%†Êðr”ĉHÍM Lß髪ª(77—âââ(**Šn¿ývÚ±c‡O"÷·ôçÎ_^:ü ¤n鯒&ÃË1ò @‘_ßwéYòeË–Qcc#uttÐÞ½{);;;(¤?ÛÒé>Æ?¿¸ö²í[ÿù–Hó¥L'¯Ý—å3‡ éƒ[úñ2¼'ßbeùñÃ|–>22’ÚÛÛ %ÖÒÜÜL#Gޤ††uŸ .Ð5×\CõõõÒwwwS~~¾H‹ŽŽ¦3fPkk«š¾k×.?~¼xýÑ£GÓúõëKæ\‡cøoºéfjlnõØþ‹;~)Ò|)3(ýÒ¹ô.‰—,ÿpøÑrSßwéo½õVZºt)}öÙg¶jï… Ò³Ï>«®ïÞ½›î¹çžËö-(( ÌÌLª¬¬¤––š3gååå©é|ó(..­‹S§NѼyóKß|¶Ý1|Œ üžÖÿõuÛ‹¥×ŸéÆ&oû°ì(åÜ}/ÅÄÆÒ!CèW™Ytâä)r ‹þHIn7…‡‡‹mÕµÍ4}Æ,:t¨t³sÑŠ‚B2½—ŸÿÓ‹”œœB‘tà 7Ò¾÷KÔô-[ߤ뮻^¤ñ>/¬yÉÖù•~Péƒ[ú$ ·L’Fü8¹¹¯Ôöá½êÓ?úè£4jÔ(ѯŸ9s&UWWJÏ7‡äädQÃóúüùóióæÍ—í˵wyy¹º^[[K êzJJ ­Y³Fïkó¾éL«cøTN×K­ŒÆæó‚oÌ ÒCe"MÙoœ$Ü›;vQUM#}qº†~—·ršîQÎ>DÒ@Ù–·`eß•#ݾ ãŸÓ”ì»<Êô^þõÔûè“òTYÝ@ùXN¥ˆ’>">ž^yõuª©k¦²OŽÑofϱu~%‡ }K?Z"Uf´—øW˵}T¯¤×Âb.Z´HôóÍúéÓ¦M£ 6POO7NÔÖÞûFDDˆ iƒVÓKJJèÞ{ï5>ßD¶oßîXzEZ'ðqðÿ)Sî¢W_{C5%Û#MÓUõ?Ò£œò£'=ö•˜H‡¤æµ²Îµ®¶Lïe¾ahËP×Ýîd©%±š>úø¨£ó+9ô¤n鯕H—¹ÖKür3?Zî×ûç+;îws?ÛLúÒÒRºå–[hß¾}4wî\Ý}YdnÚÛyMîßk[v¥ohjq #ÿßR¼njøñã'ÐÖmoy¤1»÷ì¥Ûn›LCcbÔ1 ¾iy—£…opµõgÔõÚúfýŒ–õ¶ýëßïJ-…1"ž’’ÜôÚ?6Ú:¿ƒ¥Ò[p÷ÝwÓ»ï¾+jk [¾|9Mš4IMç&ÿ±cÇ.ËwçwÒäÉ“E^=é Å·ÔÕÕ%šú<˜§¤OŸ>Ž9B´sçN1àçTúúÆsŽácäÿu gi̘kE¿Ù;ILL¢¿üíªøô´Ø÷ÓÏ«<ÒµË R‰kZeý`釆yôòëmc6nÞJ.—ËÖùñkBzHo wÇwˆïè‡ &åNž<©¦¯\¹’bcc/«ñß~ûmÑoÿòË/u¥ç¦QQ‘؇[bàNIß´i“èp7`„ ´gÏÇÒ³ŒNác´“6|øѧæf77Ó§Þ÷€Gº^9ó_ º GJGŽËFyôòk·ÝwÿƒôÞûEÿõ7¶ˆ®…ó;PrÒ·ô,ûX™t¹oï–Góãû¤yo——_~Y|¿%Ã妴SX,;i¯mØH©©i¢Ÿ’2šV­~Þ#]¯œÏ¾¨¦s§‰¯(y¬âéåψ›š^½üÚmëÖÿ]´DøõyPqÓ–m¶ÎÒCzˇiÌ0ÊwöìYQKkGù¯„ô5uMÍ{ï7Œþ|Íý?€ôÞÿÏ×ó€ÕÚµk¯ønªkau“SpZ®–GçΓšöôÑÇG(3k =öÛÇ{UžS =¤é_ÙUÕ4+ WQ¼Ô´‰‰¡û¥~9gߟ¯ÿŸ‡ =òBWúÊêzà¤GMÒÒŸ®ª^¼¿¿ÒCúÐD™ôTe-Ðé!ý€€P™ÛÒÛ Ô§ûî Ú¹A@£ˆï“ô\šIç8¤ÒCz =¤Òã"ééWZzç?¸ô ¦ ¦@zš÷Hé~—®üÆ7€'À OïTzEð÷öí§Ÿ~ú‰~üñG¯+i¾Ê××RjËÇ  ¦·)¼"»Vø~øAðý÷ß«òºô ¦·Ù¤7žùî»ï,›úv¤ïîî¦üü|³Ž#Àp\;–©¤sì©S§ŠZb‹ãàÕÕÕ©ékcÜsìwv¹zõjÚž—×­[§†Ôš8q"•••©éííí4{ölòÉš^¯I¯'~üxzçw„çΣŋÓ¬Y³Ôô¥K—Š`›õõõ"¤6ß̤ÏÍͯÕÖÖF+V¬ðʹdÉ&›Ëâ Çïƒô`@HoGøo¿ýV`%½Uh,®u9r­²Îâš…§fYµ‘l“’’D\eýøñã¦Ò766z”Å1å´eiƒtr¹ éí ÿÍ7ßôº¦gé8¦Æ{WÒ8 ¢çÆxŃWÒ9w”um&½Ù±X•@HKoGxHŸœœ,šÛFe¸Ýn¾úÌ™3"ü57ñµù9ÝIMov,‰‰‰¨éÁÀíÓÛÞ}úÂÂBÑgÁ¸få¦>æ)éñññ´mÛ61`ǃzÓ§O÷ÈÿÔSO©}zî‡[õéÍŽ…Ç ¸OßÐÐ ÊãeHB^zeôÞJø¯¿þÚ/£÷===TTT¤Ž¨gddPqq±š¾cÇ3fŒè¤¥¥‰¨¸ÚüÊè=ü»\.ËÑ{³cá>þÃ?¬–õÜsωc‡ ˜ïéÍ„·ó=}°sìØ1q£Á‡ ˆÇpµOäé5éí<˜cE ^ä… RSS“ø¿²{â‰'ðáxö>П½ï /½ô’hÚóÃ@3gΤóçÏãÃð+;¤@z¤îï逿=5=5=5=5=5=5=Òé!=Òé1‰†?ÀÄ™ d¤÷WKž‰†gªå)ª!=&}_°äi¥—-[F7ß|3¤ ¤÷`ùÌ3ÏxÔØ¼îkKž®Z™RÚ*0%çåò9Gž±“Ç*¥/erž ›çÍãryäqÚt³ ˜¼ôÚZÞ[x­øNXrMÿôÓO«5½U`JÎËA/8Ÿ²Í*UJ_Êä<999bv\%˜ØÐ¦›Å àŸÈÓ°4›¾ÚiKŽE—••%æ’×Û×;0%ç©©©1=V½`–fa©|)“óx‡Íâ×Ѧ›Å (jz¥o%½¯±ì«À”zyýÌÒÉqx—©•Ú*jA#=Ø™Iß›–ŒU`J½¼Vy¬PúR¦^MÏy =¹>=KoÖ§ïMKÆ*0¥^^«}~~>¤¡7z¯°Ô½ïmKÆ*0¥^^«..Î0ž=¨éû(€¥Y<;;£÷z£ðZé9Lô¸qãDÉ &О={Ô´•+WŠH5¨ñ¤ïã‡sB%€%ÞÇ'òüÀo$xö€_Ù =Òé!=Ò€'ò¨éé€<¤ y€ôH¤‡ô` ¯ïò0‰¨¦÷W˾š.«/¦ÞÂt^`ÀJ(,!=€ôý8v_°d8vÇ­6l˜à±ÇÛ줵xyݺu"&Äœ8q"•••õªÌîînÊÏÏóñGGGÓŒ3¨µµH:Ò÷GKfñâÅ”““CuuuT[[KYYY´dÉÛézeó¶ÜÜ\ª¬¬¤¶¶6Z±bMš4©WePff¦(³¥¥…æÌ™Cyyyø@‚Ð’ÞŸ,jÐÄÄD:q℺Αlx›Ýt#éÕuŸƒhô¦Ln5”——«ë|³Ð†Þ $¤ïë–Lxx¸h:+ë]]]‚Z¥Io¶Í—29ó1aaabŸÁƒã BOú¾ `©ÔºêúñãÇ)))Évº/ÒûR&GÒå¦=>€ äûô}À’á¾4‡¨®¯¯}ìììlzòÉ'm§ë·´’Þ—2 Å~|³à–7õy0Hr£÷þ `iwôž—ÍFï½Óõ‚[ZIïK™===TTT¤~#‘‘AÅÅÅø@‚Ðz",àOäù3€%€ €pƒgïÀ¯ìééé€ô<†‹7 ¦‡ô ¦ÇE5=Ò =Ò0@M€ô4ïþ®é•¹î¸@ð ÌIéXz¾cMr \”IhKODÈòNÃä>K.$MSpºÅòXe£<ÚmFyÌò•Ÿ®scm¼Žsk‚“}Íòë£Ù50+Ãìú¦[sºƒóN7(Û—ckãý3:«ÏˆUYVïgºÅöt×ÞÎ{kÇHé!=¤‡ôÒCzHé!=¤×J.%+qµœ‘ H–ÅO•1[NÓY6Ê£Ýf”Ç,ŸQù©:Ç‘fãuìœKš Nö5˯wŒf×À¬ ³ë›jqÌ©Î;Õ l_Ž=ÍÆûgt>VŸ«²¬ÞÏT‹í©6®½÷ÖŽ/Þû*”ˆ“=Ž’½6•~ˆÄP‰«äŒ\À(Y|·ŒÙr²Î²Qí6£#VeY½Ÿ.‹í.×ÞÎ{kÇï}ã5ÂÇÊGÊ^›J!ßñ•  ¹Zö5Föwˆì³©ôƒå¦€"~”ÜDˆ•ï€À%VöU+|¸ìµ©ôañ#5òGš(Ù×HðaVÒ+â+ò+7å&\Â5¢‡i\d%=þð‡¿üû?’Á·¡U¤(IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-timeedit.png0000644000076500000240000000247012536324502023246 0ustar philstaff00000000000000‰PNG  IHDRÓ!tƒnù¿PLTEÿÿÿ###$$$%%%&&&(((+++,,,---...///222555888999;;;@@@AAABBBEEEFFFKKKLLL[[[___bbbgggiiijjjkkkssstttuuuwwwxxxƒƒƒ†††‰‰‰ŽŽŽ———˜˜˜ššš›››   ¤¤¤¨¨¨ªªª«««­­­°°°±±±¶¶¶¸¸¸¹¹¹ººº»»»½½½¾¾¾¿¿¿ÀÀÀÆÆÆÈÈÈÉËÏÌÌÌÍÍÍÓÕÙÕ×ÜÖÖÖÖØÜØÚßÙÙÙÙÛàÚÚÚÛÛÛÛÝâÜÞãÝßåÞÞÞßáçààààâçàâèâäêãåëåååææææèîèèèéééïïïðððñññòôùóóóôôôõõõøøøüüüýýýþþþÿÿÿ][¾v"tRNS "#$¼diIDATXÃíØÝ‹QÀñï™3›·‹-¥•‘%¹±–’H‘ÔÖ"oIÈBså_p3Jj/½ð.¯ ¡„ÍK²+´J̶¬õ²ØÍ>sÎqqæ™f×l¹šÌd.žßùýæÌyæóLóÌ™#v·u‘û­jâ®D&¶vË!¢·®_z·jÒÔP9'¤OOëú’yGp¦¦š6Ú¼¦n€Ã°àkp:Åäƒð¤-p«À\%¦,q¬Mzà×ÎÝð²0}ެ¾ƒÁ ×É÷ÎŽ¯é»ÝÓ@s°Ä\77ŽƒÕxÙìÖNÌ* §Þebê„S6Y ½Áe Ænz   Ô¸€5ÓyÖº*ŽƒÕ¸4Ôù¹ üšQshùØš‰©#™÷×0­6:ÕôðÍJ|öm®¤çж8¦Õ Ƿ¸øë®®çØü“™˜‚d®‚€ÖJk­UŠéõÍ¥ÕøìÙá ÷îŒcZ àÁÛœ;ß;_Íûz? SuÿBÐŒA+¥´R)¦çwL¶­´k’V;?ºŽ{õøÞãV=sF&¦•{´ C¥Tø‡éþãE“¢~y?ý8¨¹i„ï™&¹LLýçÜ}`M%†˜n¾\<¡œÝn·ÿmå˜Vn}[\9?ÂdcêMæAKd Ka)ñ|/Šlâ{`®½fÊ"Ç´pdÖ4àE˺LM?“yWª)wóˆ¯pÔ&k¡»¦ÏÀq€ÕÀb˜>œ†€_Å0µp®Þ>õ‹a0x=ŸJaX[;'çð=·­ÿ<"¨ºš4d=¢1i€©p+Ü )]# Œƒma„ûaw L¹Ý#Êm;‚¸SÔ#?:¤ü]Ä#D}m—xô¨¿±'%ìQÑy@ò~ŠMnL®ÓÓ¿or]Wê0ŒLRJY“RJE&)¥#¥“{SôžkMŽãHÇ‘97Ù‰Èä8Žȹ)^7²&!„Âɹ©¼¾gÏÈA ùž!Åë°¢ü;gû wÆñS¯¿¿IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/plastique-treeview.png0000644000076500000240000002040512536324516023277 0ustar philstaff00000000000000‰PNG  IHDRû¯;m¨G ÌIDATxÚí] xE¶VMVq jÀÀCQtdÉSqyÃ0OEDÁ}EÀQFPPGD?Afx . Šƒ¸£¢ŒŠ Š „°/!$ÈÂ.‹xÞý‹[¡oßÞoß{»oŸó}ÿ—îÛÝ•îSõ÷©ª®¿ê„ÊÊJšK£§ýÌ`0|ð¼ Ù vp‚$ú½Oe0>€$¼m²K¢ÿý÷ôòË/3<äçGêæ¢²“ôp ®üæ7‚ðŽÉŽÄJÊvPiùNF<™Ëù‘šù!‰¾gß![„w…츑âÒ F±({yUáâüHÍüpBt`õÚõâZIöìššì[J¶3’uábŸ¤^~H²Wî>` d?I…êaT ãÄ0´É¾¹x#‰P.öIêå‡${Åν¶ AöÚ!Ô ÛµB¨B ù«U>šì[IDtábŸ¤Z~H²oݾË4È^_…º!œ&~MáµÉ^´¥œ‘D¨ û$õòC’½´|GB”ÔüÐ û)!4Û ¤W¾š&Ù 7—% xÐví25Oæ}%êÂåÅ{üeñrºîº¨AƒT³fMjß>“Þ}ïý”̯xä‡$û–’m€ß$ÔÇ ²ŸÂa`ûÔ… /#| ]²o**KðW]ݑƽ=1ê÷dÞW"¡.\^¼G»ÿ_Ò²9´>¿ˆ>šò uìt-ç‡EH²m)«‚’èÊã€Ù›„pvØ>3„Ó„¯nË× Wå£É^PXš4àg~û#5oÞ‚ò6Eü.·çÎû…ºtéJ'×­+¢JÇŽ×RöÒUç>ùÔjذ!vÚé4~Â{b¿Q£Fbÿý¦T›¿q ýåá¿RãÆ§RíÚµ©Û7Ñšœ Iõºp%ó^ôpÒI5('·À0å_5¼ê÷Dæ‡${Aa±€–ŸŽû«¸ dO¡iéaÒŸŽð ÂÕùZd/IŽ=\ ÝzÛ4løKQ¿ÿÕò|Irr7Òª5¹ô`Ÿ~Ôý¦›#Î} wŸPáɧWGü“N>ùäˆý–ç_Puîマ¤+¯ºš,\"Ù³ç­tϽ÷'ÕÑ…«ÄshÓ¦-õ{èáЋw¡a>*ßÿ^õ{"óC’=c‘-h=#„æad„ ß$\¥?%\¯n·G“}ã¦â¤….ZFçž›N+W¯‹ø] 1"„2¥Ë׈íuë ¢ö«W¯^uîÙgŸCß~7»j‹èŸL¨ W2ïE i¯[o§3Î8C´Ûoì~-øeiT>J|úÙ Ê̼Løß«~Od~H²çæØ‚ëdßP°%i@!‘ÛL?òhÔïÇ ÎSPÄ–UO0’uábŸ¤^~¸(q­ƒ&Œä!ºp±OR-?$ÙwîÚo ®“='w#‰P.öIêå‡$ûŽÊ}¶àzoüÚuùŒ$B]¸Ø'©—.N^[d_““ÇH"Ô…‹}’zù!ɾ}Çžª™k±m¶ï*Ù‘Ž‘<È åüHÝüdßV±[Yn›í»VçyÊyÞxFâòãØ´T•¶àÙa&L ž={jbРAôí·ß[ª›${ù¶¶àZ5>RkّߎRIi9Ýwÿý4gÎ. l ;æ•“µ9ϜѾïÈ~ô(Ño¿EbkÅ^úý÷ßÅÃÜyç´hÑ¢„gÆm;µ)S¦m·V±¤Ë–Z&Ë‚${IYEU›Ûfû¾ªÆƒì‡Ž8‰ëJè`è÷ýÒâìtûí·ÓªU«,;͵͜9ÓÑb!å¹çžKóçÏ×LËM²¯X±‚ºvíJuëÖ¥&MšÐĉ-?üyþùçÓ?ü!L˜åÊ+¯¤•+W2c$²zeA’½¸t»-øŽìûíÜw»öe--¤}‡‰*íþõý4ïúÇ?þaÙÉ™™™¡Âo¿wêÔ)adÇÄ ¨™¸®ÒÖ¯_OéééôÙgŸÑþýû©¨¨ˆî5{¬<Ïܹs©yóæ´xñâ¨cHkĈtÑE1cã\3T“]kY#øŽì»B„.߉_V—Ó+oK¿4•ÆOÍ¢Õù[é–[n±ìäÁƒÓ‡~XõÛŒ3¨ÿþPPP@Ý»w’ÌZµjÑŸÿügÚºu«ff_¾öÚkb/’§Ÿ~šN?ýtªS§ÝqÇ´oß>Í7ºQd7JÇÌp®Q$×+XÓ§O§-ZPNNŽnÁÜ»w¯ð ›ûd7ŠìX0B¶ÉåFû¾k³‡šçT´hÓöcu›Òœåå4sA!ÍYVFeûCdïiÙÉ òÅ_,¢+жm[ÊËË‹p4"×ìÙ³éÀ´{÷nÑû×]wEe"'Èøå—_V{á…èü#mÙ²…öìÙ#"*^&z­Gv³tŒìÌ3Ϥ¿ÿýï”––&&ÑìÕ«íܹÓÐ/ãǧ .¸€ uï‘}äÈ‘tÕUW1cLvL-Ûärºh£}ßEöÒP$Ï-%Ê)9öW ùÎÑë¹×sæ 7Ü ˆ \ýõ¦U+rZ™ ="úÒ¥K#ÎmÚ´)­Y³¦j¿¼¼\Ï.ÙÍÒ12Ì×vï½÷REE… ù}÷ÝG·Ýv›¡_0¿Û¼yóLÛ—¨í¨Ÿ™-þmöÂÍ¥¶à;²oª Z 4K7û«~/ÚaŸìøFˆ~É%—ЬY³¢½páBºúê«Eç–r¢Je:4tèШÿÙT´&H´Kv³tŒ ³¸îر£jÛ ©‘_PíGGÞêÕ«uï51cÆPÇŽ™± Žì›ŠJlÁwÕø¼P3yA>QVž>pŽ]²£úÞ²eKjݺµ¦£Ï9çš:u*UVVŠsQ•Wgª×hß"«{ÛqÌjFë‘Ý,#ëСCDµd¯_¿¾é=MžùÄ6ÙÍÒ12ÔFÐÄiÑAÿ˜uÐ) /ºSN9E4q”íJø£]»v”ÍŒM0ÙíNAí;²g}*WÓ—¶ÕÀ9VÉÎÆæ7“d·;µïȾ°€èã…ÇñÑ‚cÛø‹s˜ìl©Nöõù›ªÚäØ6Û÷Ù vÍÛ‰ùªý‚]Lv¶Ô';æÏ—mr¹ž›Ñ~ÊH\ÕÐïÎÆ–Jd·;Q%ëÙÙØ|Jv»Uú®¯e¬gg "ÙíNTé;²{MÏ/9*›Ù“º°c¢Èî¶ž=(dÇ7uˆ_ðý´ÓN£çŸÞòsÁXÏîKúZo‰"»Ûzö #þ ’é!†¹çž{è½÷Þ³ô\¬g÷–a'FAœüõÍØx·õìî 5"d×îTÇnG{ŽsG-Æ»CØoÃý«ÇÆÉRYÏ_;|ø°èTF-«Q£Fbȱҿ¯¾úªÐ$ \>ðÀb˜¶´Xˆ ¬žWtëÖ¶mÛ&H ©«»zÛŠ†/€íÛ·'ÄwPë©ÉŽBfDvÖ³ÇÏžyæúÓŸþD›7où2pàÀÿ^wÝuBÂŒ2‰óÔSO/²»­g‡þ|Æ Uû™ØÕ±km[Ѱ—––&¬p¡¦ñ 2DG´À¸v#²³ž=~%¦ Óó=Ê¡4œ‡r¸Èî¶žUhåüsP“ÙÕ±kmÛÕ°ÇÛPƒèÑ£‡hRà¥óÒK/ÑYgeHvÖ³ÇÏP.PÖô|¯.“ʳ‹‘ÝÛtnëÙQ˜"»»Ö¶] {¢mÒ¤Iâ3¥Ùý±žÝ‘ç.²»­gGmvD>´Û±íDǮގEÃneß®=øàƒâåƒHŒ 5›5kF¹¹¹–^F¬gwß 7F›y0 Â÷˜ íuÙfÿÛßþ¼6»Ûzv´Áï¾ûnQ½E{å•W„V\š»íy¢ÉþöÛo‹j;zw»téBË–-3<ŸõìñïG§\ãÆ…_ñeFé{|Δ½ñèÜýõ×_ãÙƒ­g_·n 5[²ÌìŘÈ=û£>*z¨1à >½=þøã\âØÈzöXÒ×[KÌêñXõðü’ˆí9•ù˜tAÖ³ÇJöXŽÇ¢‡g²»CöÀEöTÕ³#Z*å®a…k1„Wy͸qãªFåµiÓÆò 1±’݉^K“4ôžU¯faæË™3g )2|ß`´ Èn'/•þ`=»ÏõìØóâ‹/VÇ—Ü‹:Ãᤉa¾Ã‡§ÌÌLË… C3Q°°€%†ò*•UfÇèáõ4ÙFϪõÒ1ó%^ŠŒ—IQQõéÓÇd·“—Œì©ªgG"Ê#ÊÁzè!š6mZT†£ ­¼#Mº–Àˆ ×^{-=öØc–;ÑÃëi²žUË÷f¾LOO2[ÝOÕx;yÈ6{*ëÙo½õVúàƒ„ˆ“;*Åz×8mãbh°QdVw¢‡7Òdë=«Öó˜ùsã¡v†—ÈçŸîË6»ÕEFYÏžzv(ÇÚ·o/f‡$5ÖbdˆŽ 4p|ÜŠÞH“­÷¬ZÏcg]z´ß^B©@vÖ³û\Ï. 3¾tèÐA ²"sµJv|ŽÄŒ3¸¼ÜОV’Ìì¸=¼‘&[ý¬ÒP›P§kæKÜûÚµkéСCôÕW_E4³8²û¸Ížªzvi_~ù¥¸µ7ÉŽ6qëÖ­Ås íŒ—ˆkõ¸=¼‘&[ý¬ÒÐ<@Ï¿_N™2E4pïx†ï¾ûŽ#;±žÝÔ’­góÍ7ÅÌ£A° =«›ÆzöгïÚµKLÝ\RR’ò6HÏ궦͞ªzvTÓÐÛŒfBª[žÕã‘õìllÙYÏÎÆÆmöDU㵌õìlÙS°ÍÎë³³qdg=;¯Ïn`Á†ïãøæ-¿•+W$ÁËòÉ'ŸƒZ09TfÊïßFÏ ãõÛã_Îâ06ž×gOE²c &œ@†C½öì³Ï Y¥4¬ØzÅWq>‡]~ùåôÎ;ïXzn^¿=±åŒõìгc䛳ôíÛ7jTšžÕ®];bo\‡û’¢ÿøãUûØFD6+|¼~»3³›—Ad=;þ7Ƭã>!TAU÷oÅn¾ùfqOÌ‚L6l˜øM žOÎãõÛãgvó’õìÓ³C¡———WµÁ~³bÅÅÅB÷-Û}¬üÿŽb º4l£ÆaTøxývçf7/YÏ0=»Ö½Z¼+†>÷Üs"ôÙñ[,‘×ownvó2‘=ÈzvÜ«Þì/f†6³ºÍ®lG;m³óúíÎ#»¼ d›=ÈzvuÿÒâ‰',=gÛ¶m«zãlc©ei˜üÐio<¯ßnßìæe gª ²ž]݃‹m«½ñîvîÜY<'€må$ø(l¨º˜hÂÎwv^¿=¶Þx³¼d=;ëÙÙh‰ì¬gg ºñúì¬ggãÈÎzv66Žì>‹ìÒ0‹¨Ò0Ö{È!Ô­Û ôïO3\ƒŒ#»OÈŽOYY†^t˜püë_©tK}þÙ4êÚµ«/ `cãÈ®aøVýÓO?‰ÏChcýõ×Bì2tè3T´1‡ï-¥ì¬™ôú˜‘4╟tåTÈl‰ïƒ`ó|dwgÝ÷ß/¾3ëÇí¼Éð9ªC‡+hAÖÏ´dÑ|zlàZ¼à':\™KyËgÒøÑÏQÿ~wÒ§Œ¥}ÅKÄ .”‘Ï©µîº4«zvü†‘u±® Ëùq|FÓa¨ôòåË-ùÂscãAh ,ÑŽ[µŒŒ zmô(:´» tÇKCôÅôkù|*Ë™AÓ&§ýzÒÈáƒhÃϯQåÂÁt wbÄè06ódUÏŽñð8ÉîN>€ ð÷رcÅKV9ìØ7mvUo ŒÈRîÛ!»£½+‡¨øSú½x:íÉû˜fM}žžî3 ôe3†* ¥=ó¤YwÓ¡Üñ–É®‡û‚Ó¡PC»ûXÊûÊ•FÌtîf:ùd­9®G&+cã1cþ1òÎ Ùy}v{ùðú믋2¥W6åüžŒìè5—Ù•ûvÈ~Í5×ÐïåßÓÞ•¯Òò¯ž¡O÷ ÇûÝHßLI; §s¤ÊÙ·ÑþywÒ‘E÷mšä˜ìéÝwßJ7å>–’f¦s7ÓÉ'kÍq=’ZQ½õë×OÌ:c%óúìöóµ*<‹^Ù”óx®Í2c¬/H®~·Kö£›§ÓÇ#»ÓÇã†Ð'‡QÙÂW©2ëªü)ô–ÿù:üË}ôû’‰–†2zóTÇdGô‚¡à¨÷ôÝj»™N>YkŽë‘ÔLÏŽIYkŽ;m³«ÛÓF=ûz‘×g7o³÷èÑôlz2²ƒz°Kö­Ëߦçú\LË¿M[gÝ-¢ùÑìÞD+þJ´fQΰÐ+o(˜Ncÿù"µlÙRD§x‘ÝLçn¦“OÖšãzEÏ®wœ×g·ÖŸƒè(SÊ¥°}ÙÝüβ—,y‹^íÿÊŸ÷íž×çÑW :Í7¼jÓBŸMŠè—„"R‡ˆžñxÝLçn¦“OôšãfQ9V=»Öq^ŸÝùlÎÍ¢©cî¥shkö6äaºð èÆoí4ù‰ÌKæ¼W«°¬ÝçÈ®iÀ¤¥E™í.¥—gŠ¿7ÝÔ>úè#˽´llÙ}Ðf—Æë³³±ñúì¼>;GöT›ƒÎkë³¹ÝÍæûÈîm²»½>{P -Ôf½zõß¼1¬‹DØ9î–ßø%Á‘Ý2Ù½¶>»_ #ü0°¤®¨¨ {î¹'b®>³ãLvn³û~}v¯êÙÝ6Ü'ˆ, Ÿ*•Ë(›×òëÕ|…—«^ùPê×¥ú~DGt`Vqu{}v¯êÙÝ6<‹šÌJU›Ùq-¿±^ݹa 0hP>àCøOO¿. £ ±ò.Hk6]oˆz ×g÷ªžÝmCM§wïÞ"³ñLˆÄJÉ©Ùq-¿±^ݹÁWjÿéé×¥A5ˆó$Ñ÷ì;d ’ð¾i³»½>»Wõìn"䓨&ƒHœ(¥ fǵüÆzuçfV>´ü„kä”nv‰àk®õ ÙÝ^ŸÝzöxؤI“ÄgJ§ÇY¯›ÁWf‘]ëœ'É^¹û€-hÝÛÕx·×g÷ªžÝνX1„BÃŒ3¨Y³fºq³ãZ~c½ºsCÿ†l³Kÿ™‘}èС¢Í.É^±s¯-ø.²»½>»Wõìn“=؈ˆèýíÒ¥KÄ$ VŽkùõêÎ ¾‚ÏdùÐêWú@Ða,ɾuû.[ðÙã½>{¼,ˆzvÖ«Û3«/pIöÒòQ{¿¾«ÆÇc}öxYõì¬W?Ù·”l‹€r ƒúà»ÈõÙãeAÕ³³^=1d/ÚRV­iÇ”Ç_‘×ggc;Nö‚Âb½™y2dg=;[ÐÈž¿±È|W×2Ö³³‘ì¹y¶à»:Ö³³1Ù‘}íº ¶à;²»­gOFK2 ߦñý¼víÚBÅÑŽÑÜúêg?ñ­û‡~ˆhÖ¬YS¬£žóœ-þdyíÂWÕxÖ³;3Œ¼ÂPS(ø@òGy„:wîl‰ìsçΈ0F]} ƒ‡0¸*@¶Ä‘Ý Ñ}Ùã¡gwKî…%•ä¨0¬=ç¥è’âÌÈŽ!Á-Z´ œœݨOŠFi±E›Ô¦C܃!Ä£FŠð¯Ö\ÒœÈ[•2WßDöxèÙÝÒ°«ÉŽûÅxs +Õdffz¦°}ñÅÔ©S'C¿Œ?^ Œ),,Ôúx6 õ4šè‚-Ú¤6}óæÍb”9¥õæ ‘=ZÏî–†]MvLï¤<×HžH[²d‰¨–+UWZ~ܪ5­cJ ¦³téRf° “ 6=ßëÍ l³;¯ÚìñÔ³›í›iØÍ„ ^èÀCÍM ÞÌ/'NRÝÕ«Wë>j9˜X 76ë&µéz¾7š+€õì.èÙÍöÍ4ì^';îÂJ–÷:yòdÑvT¾ÔÏ&·ÙãÙ•s°žÝ=»Ù¾™†ÝÙíJXc}Q Ó;);Ú¬ú/ <{VV–fdGÚ­ZµbÛ0©MGŸ‚Ç€"|o4WëÙ]г›í›iؽLv½±ÓzâõÿÃK_,fÍšq=|Ñ®];13 ›½ÞxtÊá«üŠ™d•¾7š+€õì׳³±Ùy1™ZÏn$„1ѳ{›ì~Ò³³±Å“ìzZv=M»ïÚì~Ò³³±Å“ìj½º‘–õìll>4µž] µ†õìll)@vôì¼>;›È×ggcóÙYÏÎzvÝ{S¯žª´X×gg½{âòÏE=»·ÉÎzöø¼bYŸõî‰Í7)quBt_I\SUÏŽRXЏAƒ}ûöZa%ždw²>;ŒõîÎÌn~+}êâ’ÍÎÈîôäMÄ"Ègx²pá%™J“UÖ¥?cEÌÕx§kFKm,]†7<•‘(•þ&«¬»Eø˜É«ÆV^¿£r# ó5ÕˆŽ¿n•u§×{†ìN5¶òúí;öø²šæÖ¾_!ó5#»[eÝéõž!»ž–VLÓd ±u*Ûó@TåsĺïW!²ÇZÖ­^§¾ÞE²;ë 3"«ü>hT(äõe[w2RAˆì±–u;ת_ žˆìZëEkikÕ[y}IY#„ÈkYwz½g"»‘ÆÖhÍh½5§ýÙævk߯Bdw»¬[Õ£{†ìN5¶Ç¯/÷5d›Û­}¿"‘=ö²îìzÏTãõ4¶z:[µ6•0RAˆì±–u;×*¯÷Ld×ÓÒŠéq 4¶òú›¶0RAˆì±–u«×©¯÷ Ùjl ò½Ùævk߯Bdµ¬;½Þ3Õx§[yýúüM¾†ls»µïW!²ÇZÖ^ï²;ÕØÊë×­ßÈH!²ÇZÖ^ï!L,pºæ4ÛHÕÈž¬²! K\îI\S1²§ÄÕÙggçŠ ‘ƒÁð>ÀWðÖ6Ùñ¦„g0Þø ÞÚn³cÆ%ÂvRø¤zá‹pqZçªWogèWÃè<³42,^—aò›Ñý[ý¿ª´›kü?­ý ƒçÔ»Ï è¥kä£ >Ì0I·¹Á=67ñ«Õ´ÌŽYÉãæ6ý`µŒ8ñ±Ùs47Èg«å‹ÉÎdg²3Ù™ìLv&;“ÉÎdg²ƒìÕC¨BÝ„Ð8ÜÃ×$Üã×4œ°z;]ç¸F癥‘nñºt“ߌîßêÿMW¥ÝTãÿií§<§Þ}¦k@/]#¥[ðaºIºM ‰_­¦evÌJ7µé«eĉ͞£©A>[-_è‰?3„Sü­æqu3²× ¡N8º7 þô0ᛄ#½z;Mç¸F癥‘fñº4“ߌîßêÿMS¥ÝDãÿií§<§Þ}¦i@/]#¥YðašIºM ‰_­¦evÌJ7±é«eĉ͞£‰A>[-_g„‰Þ0ÌÛ:a’½Z5Âo…“ÃÕ%á †÷~6 óõäp¾F˜Ï†d?)üV¨¾°^¸jp ƒÁð$ªˆ^3ÌcC²Ÿý’ðµÂUåë‡É¯Þ®§s\ £óÌÒ¨gñºz&¿Ý¿Õÿ[O•v}ÿ§µ_Ïà9õôÒ5òQ= >¬g’n}ƒ{¬oâW«i™³’ÇõmúÁjqâc³ç¨oÏVËWÝ0Ok)ˆ^=ÌgC²WS¾†‚ôµ †'!I^CAôjfd—„—¤—Ä—äg0ÞCuÁ«)8|‚ÙÙØØRÈþÀ BÇëÓƒ°IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/propagation-custom.png0000644000076500000240000047712512536324477023320 0ustar philstaff00000000000000‰PNG  IHDRw¬–Îð IDATxœ,»Ç5长Þûˆë}æMŸŸ)Ãb‘ì"ÙÝœiµ€™Yè_ÒNK-´ $‚FÀ,Í g8Í&»ØE–ùêóé3¯7á½7Z·w‘÷fÄûžóœßóðú_þÇ›wýw¿e8’$·›ÝâiU•eše\¾8·M»ª*AÞ¾z'7äóg§¶i¿󑢩4I‡“AY–ðx7“Òôä Ž’4Im˹x~úp÷ôîÕ‡ÃãIÅŠôúß$Y̲œ¢Éízÿt?ë ºM¾úö¡‚$ئ ÃpU­N'ð(Œÿðß¾þù¯¾¼x~ê{ÁÍÇ»ÓËcu§¿ùþíéå ÍP?~ûf0îKŠØh)›åVÛëýQfè¿{Ól7ò,o÷Z†f>Ü<^¼8;<>Øm÷QõG½,Ë0ÝnöÚ^¯ªJ”„v¯‡qUUI’ú^eYUU(ŠVeé:^–å8A”¥ÙñùÑÕ»ëï¾y%ˆüåËs]5ší†Ü¶«Ýb¶Â0AQ‚Ä/^œÙ† €`žç4C+ é»o^‰’ðé/þüõ÷UUÅq,ˆ¼¦‚È?ÿôÒÐŒoÿøÃ/~ýe'$Ièš¹^nPiuZƒq/ކªªz÷ãÇ4M«ª:8šð<»ZnlÓŽ8ž{¼{M :¶Ûì4ß½záE‘~Ûu<–cA(òâñ~vp4A`]5Ò$•òÓÃÜ2¬V§áùó3¥)o–ÛÍj{zyœÄÉß½ýõ¿ú*ðƒßÿöë<Ë_|þ ‚ š¡qß,·Y–éªN3ôÅ‹³ålmVEU(M‚ ªª’899?*Šâöê>K³ýN+ò|³Ú½üüES–i;¶;9Ý^Ý3,sñâl5_;¶Ûí· ’Ømö4Mýî¿üáánö³¯¾PÒýÍ#ÃÓã‰ëx½a§(Êõb3>6Z š¡¢0–q9_«; ÅÐÉt\UUF(ж»ÍýV½~;žŽ6˭ܪªêö;ÏÎû­ú³_~¢èøßÿãÉÅ‘( $MæYn™vÐåxv½ÚÚ¦ÝtIŠ4t³?ì©{íêÝÍñÙôñîi8àN’Dà‡êN»xqưôÛWtÕ89Ÿ:¶›çÅd:‚@p9_c8#pY”½AGÝé·ƒqÿàhüpûøáù³“,Ëï®&ÓQQO÷óǻٯ~ó‹FK¹zw†E‘/΢0*Šñ8ŒÖ«ín½ÿ»ó› uUWwzwÐQwÚõû›ÑÁ0 BЦªªúñÛ7‡Ç“úfÛõîù§—Q?Ü> "/JAŽí¦Iút?;>?jw›×ïoϦüŸÿÛÿ}zqôó_}éXÎ~-7¤Þ°[•%˱a%IBÓT}»IŠ44Sxš¡}ÏOâäþæ‚ ÅÓò«¿ýE»ÛüíúÝd:nušY–Uu{uÏrÌôäÐÔÍ»ë‡éÉŠ¡y^  Ãðr¶ÂI‚Àùãâg¿üéfµåxŽ8×ñ>¼¹Êó¬Õi ϲÌfµ+òüüù)˱wךª°ßªÃqÿüù)NàWïn¦'³ÇEàín €<Ï·«]«ÛBQ$ ¢ÙüÙi6ZÊvµ%H‚¢)Š&@`8Ž Ç`ž=ÌÃ0àôâ8Žâïÿô# CMI²è:Þ~«"(RäÅz¹žy1{X¼üüY'à®îu–¥ó¢¼`4Àò篿;>?ʳ< £Ã£±¦†:¶»ßª—/Ï%E\Í7Ež/çëFKiµWn{ý‚ºjšÑh)§—'žëAT"Ó°”†ìºžc:ŠÄqÒî4EY¬Ê2I3×qMÝ’dfèë÷·yžOOŽþãïþ„ ˆÜhšò\Ÿ ðï®_~öL”„ïn£¤Ûo7ZÊz±éôÛËùZVDA Í`8&Ëru«OޱL{¿Q'ÓÑn£Ž‚È¿}õáþæÁÔ­ƒ£ñÑéôÿú÷ÿÏÙ³ÇNΉ7 «È £0–RÅ¿ÿ¯_&ƒ¯þö¿û‡?~Ðõʲ,‹ÇqœÀ•¦œ¥AûÍF¹!Aôõï¾é :Ó“ƒ4IuÍŒã˜ahŽç²,A Ëò8JÊ¢ðý€a™á¤ŸÄéø?þãç_~2™ŽÃ $)RW²(Y˜ÝÏA¤YÁÀ `ƒE‘ã³éÕû[u¯ÁT”å‹O/ïo¿øÅçQ}ýßœ??åxv¿UADÞ¾z¿^nÓ41 k´”Ç»'×ñDIhvéªQ—òf»1œ IŠ(‹bµÜô‡=Ïó-Ãf9A(Œx‘w¯Õn²,Ã0t'¦njª¡4•FKá® C}?Hâtþ´%Ás=ä†$+"Š¡êNÃ0ÇqŠ"%ãÙ$N ÍÐ5“a–cÒ4»¿yØoÕ“ó£FK)Ê’ ñÙÃ" #EP ¥(ÅÐ0ŒÚf’f“阢ÈÝvOESC=;ɳ\Ýi‚È×úÀu<Žg7ËííÕýWû‹õbÇs03, ‚€¤H¦a±,BP–fžëÑ ãË1çÏÏFCß $Y<½<¡i*Žcß ŽÏ§Ãñ`r8Š¢(MÒÝzßíwšíÆr¾à‹ŸÁPž“éÇvŽNã8)˲ªªùã'ð,Ë@|¼ŸyQ—-I´½®î4œÀC?Œã8 ¢ãó#˰|ÏG¤7èÊŠ”ç9ŒÀi–!0R–%E‘’"åyN³´m9³‡9‚—/Î9Žºj°<£í½Þ ³ÛìE‰Ç‰£ë÷· œœI²`ê&Š¡ÛõA‘þ°GÑ”iX»Í~·Ù·»­ÅÓjt0ˆ£øí«÷¾ë#(°Œ¡™ÿåÿýo$Mö]E^ÿŽå Çjóáí5aàΰÌ¿ø|0ê/ç«Ål•¥YžGŽgË¡ 'ð<Ë!šŽh†.ËòøüèßüÀïûu»ÛÊÒ¬ÇçG·ï´½þÉO^À @–f$ERº… È‹Ïž$žÄ)Š"ËÙêüù)†ca!0\×ßN¯Í°´çù†fô]I)šb9¦ÑRÚÝVÝmÓ~þÉ%ÃÑqœèªQU@}äÔ½†"HY–‚È_¾¼H“4 £(ˆXŽÁq,M³§û¹ïùz^@³´çøßüáÏVCWõV§Å°4ºje‚`FëÅæñî)‰S Çps,g½ÜÂ04{˜Gaôô0·Lûí«÷EY"0\‚¢ËÙrt0,Ëjö0ÇqL׌ªªþðÛ?b8Vä¹º× DÃPC« €`A ÇLÃZ/6‰›º©î4u§õ‡=†cÖ‹çùŠÒ ½š¯%YÀpl·Ù/çkúÃ^à†n)M¹ÙnTUe6ÍЫź;èp€¶×Vóu’¤eUú®BŠ"°sùò¼*K Ý:<> zö0wm7 ¢ÑÁA`M5ʲLÓÔ÷ƒáx@R„eÚ½awþ´ì º‚$ÄQ\U@‘çeQ¼úöuÅ?ÿÕ—Ž:–@’$ÛõîÅç϶›Ý›Þa8úìåEY–eYeiæ:žc»¶å8–ÇqQUUí·šï°j Ša(ÅPi’¢(rx|eÙíÕýäpäØn’¤ínSÛëû­JE‘ŽíZ† ˆ® K7šJ»×Úmö8ã¾^n‹<')†`‡“þýíãõû[I£¾©›‘$,g+–c|ϯŸ¤mÚºfîÖ;u«jªÑh)MR Ã°çø³‡¹¤ˆY–ÇI£¥„a„¢¨mÚÚ^§*ðA£d»ÞÛ–ƒa¨m:aÑ Í°LYV(Š€ höÛÞ7ZŠÒTtU ?êuûí8N`®ÅÖr¶2u‹féþ k[Š¡ÍvCiÊËÙr½ÜB0Üt ݪª*Ž’F‹À¶œÐ]dz-§(Jß ¢0z¼›5ZÊv½Ap³ÚöG½³ËI‘ïôZIœž^¯—›õr³^n‡“>Š ê^›?-«ª‚a‚ Çv³eoÐa9Æ2m‚$‹¢ˆ¢Ø÷ƒõbÓõP ­ªª,ŠÝfßv[ݦçúžë·:MÏõ|×ÿðöJRÄ<Ë›í†ÒHš´ ûöêÞ÷üº\äyq0¹Žg™ön³ëö;(‚Ø–S–e}i†îöÛÚ†]–åüiÑh*/>{¶]o9ží:ŽíT 7¤N¯í¹‚ ÏÏÆ‡£çŸ\"†Q–f¶åÈ ‰e™f»ñx?›=ÌÑöú߾ɋ¢×ïTUõpûÔl5N/Žò,§iêæêÇ1ÏõßýøAúøáí5JCÊò< £<˧'Ú^ Ùnp<7{\àF’D’$–éDAä:^wÐ©ß 'p$Ep|6Uwš¡$McQH’pm×2 Çžæ Ëtº-^àáCXRÄÃã ‚Ú^ÿíú]«Ó"i B¥!y®ú¡¶×LJC˰`®? ȱ]†ã(†aHnHÏÉ Y“8™=Î9žË³­ªªºxq–&ér¶by–¦)Çv9žA9ˉ‚p½Ü蚉a(IEYšé¹žïšaVà‡I (G±(‹I—eµ^n“8A1´ÓkwELÃ>>›R4…X–fM!"A$I¸®#ð/~ý% Ãw×JC–ÒýÍcDŽí¨;­Ûëe¡íuI‘ A‘$N­†ºÓ`^<-×ËMQ”#tPk)QÄ \†@Ú®÷Žíš!ˆüÍÇ;ÇÓ$MÓEQ†e†“ŽãýaÁ,ËH’$H<ðƒ4Í<×§š¢È¢(~óßËÇgÓ¢(¯Þ]S4@„g—'ϲc[AI’4Û Ix'H‚¤‚ â864³Ým "o™6I’EYLON9žEQ´ÑRÆC†eâ8.Ë2Ïóú’$qõþ–f¨ú‡î{¾mÚŠØ–#ˆ¡†fêªñìåEF(†vº-‚VóuYVM>ÝÏò¼HÓ‚ Š"ÇKâ$ ¢0 Ó4 ƒ¨?ìq»ßªy–ƒ Ðd臞çGaœÄ‰¶×AŒ{®ã¹¶óõï¾Qwš$‹ó§eoÐA‚à¢(XŽ… Ès<]3ó<¯ªŠfèÍjøÁn£N¦#×v¢0®¥Õå'²"¹ŽG’$Š"I@ôÙO_â$±]m“$Ý­÷(†Â0,7äýVõñް[Ÿ¥ÉtDxšf'çGy–?Þ=uûAäM…¢I ‚°LçìÙ)Nà·W÷q»Ž×ê4a"H"‰S‚@”ñŧ—¼ÀÍæž \UU-a«ªàþú±,JÇr|?(‹RnHêNKâT”†jßê4=Ï74EÑ$NªªªªÊsÿRì¶ë}FMR4µZÜ#BRäâiIR¤ïú‹§…e:UUUeE’D^i’â^–e§÷7,džAX•Õâie™öz¹=:=´L»È ?õ7«ír¶v]ïúíºÓ`®^žçíN3 ‚›ïîŽÆín«¦/«Å:ðÇrëôÛ?~ñâÌÐŒ,ËQé{QšACUU)Me»ÚÝ^=&qòüÓ‹"/žæqs<Eq¯ßIâ´?ì6[Ê+ÛÕU½Óo÷‡=’"PqlåX’&Ûi÷Z0Ÿ^kª¡nÕÝfïÚ®c;šªNR¤ ºfêª.7äF»qóñŽe‚j éÚn†0 ÅQÒê4]×%ÅÐÐ7ëÝz±ÙoU^à{ƒ.ŽcŽåª{ýüù©¦ßóJøV§Ùl7îo1k¶¢$¸Ž‡¢Š"I’DaŒ ð`Ô+ËÒ6Ÿ‘‡x¿Uw[µ7è‚ HPÄìqQ·[^àŽÏ(šZΖq "Ÿ¥/ò’,º%HÂø`Øéµã(–dÇrÛÝI’ƒIŸ¦©ÝFm´”²(¦c†c†64“Ø$NabšåØ"/-…aš¡\ÇÃ0†`?ði†ª'%Ïõ•¦L8 Öø¡¶× ÍÜ®w/?{F1Ôg?}y|6M³l·Q÷;Uʲ:9? ¼?ìÚ–c™¶ y–×êêÙ'ÍV£Õi”U ‚àËϟϛՖ$ ^àpÿðæ Aäòåùv½eA`4Ï«ªNú¡r<+7¤$M÷µÕm^¼8ÓU£¾EÇþägŸÖâ'p^äLJ#S7–9˜Ž–VwÚfµ£èñ~nhæø`ˆxQ–y–Ýß:=D$Žcm¯C0…Ñn½Â‚ ‚$@X-7»õ~t0 ââÅ™ºÓ(š ¼ M3†Û-ËÂ2¬0qOâ4 C C ’üàîú¢I†“$qmai×ñŠ¢ô\?M³0{ƒŽeXeQØ–c¶ëx^+K³  *ôÃã³)(ФIŠá( CÇq²^n$Y´-DZÝñÁ0M3Çv/PšrTžë3,çN`ŽíÖ$¿ÑR@|z˜¿}•$ †a²"¦ij›ÎñÙ”åØÕbc¶¦ê¦2|ϯ*`ö¸¨ÊA‚$tÕÈò<‰’4IÂY-6¼ÀÅQüüÓKAV‹®²"®—[]Õ}/ŽŠ¼XÎÖ(ŠAxwýa‘†nÞ]?œœÁø¡c»‚ÈÛ–ót7CPt·Q?¼¹ ƒÁo¯ò¼¨Ïíâi•$ IišÅQL„eÚ¡.žV4C¹¶ A/rA4©î´Þ {p4%!IRAä]ÇÛmö¼ÀQI³ôÓý¼ªJQâå†lh†eX—/Î;½N„0 ]¼èšøA³­¸Ž‹ °ïù^«ÝkI²X–e‘ç4C]¾<ï{ÛÕîé~Ç1‚À’"uúí"/‚ ,˨ªúþVUe™¶( 0;¶ø!'°E^àÞh*Ô“Ó³—ç¥i¦«‚’, (R«ÒÁ¸bh«Ûj¶KЦæOKš¡Y–&H¢(ŠV§ÉñlF2Û–lj$‹õ×!Ã2¦a}|{ýüÓ‹Ë—ç0 šQ3­ ³,ó½À4¬FKQwzY”JS†a8Ë2e›í†iXõÌ×j703uëàhøPUq’‚ÍÒ4C¡(rñüTx^àò,‡D”xŠ¦Ê²’Â(K3ÇLJCY@´,K‚Äi†žžfYf›E‘ínëݶëíôä@”…á¸?>&qâ{þp2ä8FW¢,y‘ïõ;a$N1íéÉÁ'_<—) ¢L“8¡iЦ©§û9E‘0 ¡(†‘Ò”}?hwZ–aqÜÀ2ål…Ñ`Ôãy®Õifi#0IQñ×h)4KE©í4š¡ò,¯ÊRV$Ç|/Nú­n‹ È݃º]ïÖËíd:DÞ4,ÇvÛ½VUûêºË23,Ýê4²,˲<Ëón¿MÑÔõ‡[m¯Ÿ\1,}ýáV’ANΦŠ"R9Wïn@l¶0 çyNxžŽùIÐv9ž3 €Ë—ç7O£ƒA­<׌0 …a´[ïà ¼¿uk«±ÑRËQšJ»Û ‚$ †p«çiC3“$qlw0î—eéy¾¤ˆ0çYæØ!I€¢¨eÚ(Š¢Šã¸ë¸Ûõþølj›öÿéO‹Ùêølúâóg¦¢îµ×ß½ÕözmnR Õl7LÝÚoÕ4I·›eØžãMŽÆLY$IŠbh„ŠÐ4•gù~«âŽ¢H‘yžºuóá6M³O>îØnUVín‹ MÕ¡h þõ¿þån³$! ¢Íb“&)I$MÁRäÅr¾6uK”„fK`^䫪J“4‰“À|/ HÜÐL¨DY0tóàhl[.Š"_üü3N`I’è »M¹ŽBÜêÒÇñËŸ¼Pš²c9I’ É¢ ò,DzÃrìû7‹¢Q’ųg'$E>ÝÏI Ibz|P•U–åÿïþUm5YºÕtÇ#Ïõ²4ç8æ«¿ù¹¤H»Z¿Å0ˆ <<šp<‚  i’&IºßîÛÝÖ`Ôà B”„f[ ‚p·Úšé:Š¡ÝA§ÙnÄa|ó‚ÀÑéa£©T +Rš$M"â:IÇçGqKŠ(Ê"Ã2$E°“e™ïEQfYÞíµ%E¬K¶×išòýPWN¯ÍrÌÉÅñÁÑx8îã8.ÜÓÃ|2Ÿ^×ânö¸¨ª*Ï œÀ9ž1 Ës}ßóEEô½@ÝiãÃ!‚,Ç¢–ç9N`ÃqŸç¹ ˆp‹ÂEQ¹!¹¶‹b(‚ 4Cµ: –c1 m¶5NœžrW3mu¯ï·êÅóS–cLþýxw0Ó,Ýl7kî·Û¨ŽyŽï{þb¶zóûùÂa™<ÏßþðþÝ›uƒ`( B×vO«¿{ût?“ɱݪª®ßß"(r0×u‚ ²ª@¢(’¤ˆV§ Ã1ÿ¥Lt[ín+‰“ÕbãûÁ`ÔÇqŒ ‰$I-ÃâxöèôPy‚Ê¢NúrCæ8f·Ù3 Í  Ã4KçyFÒäÑéaÔS2A¦nN¦£FSÉÒÔsý²,-†á¿ù»_‚ H3”Ò”Y–Iâ¤(Ê/ÿê'­N³ªÊû›ša<׿xqzvy…Š¡ÏÏŠQ4¥î4A”†dè¦çxM$±˜­tÕô=ÿ_þéO0 ?ûäBC7-ÝÊòœãÙª<Ç‹Âhþ¸$(âðø@–EŠ¡* zõí›o¯Met0Øï´ùâªÏõ/ȲÜÕ–^§vú\Ç ý°–z­—[-òM;ðƒùÓÒwýª*¿ÿæÇ¿{[–eÆžëÙ¦ópû”g9 õyŸÄ)ÃÒam–A ÊÒ”yIµ®íõšY†MR†£išpzy2> "ï{eØ–iO¦£_ý毪ªj4•FS^ÎצnæyŽ¡èp<›Š ‚ÈÇQl›Ž®ëÅÆÐL‚¢(†@°(«Õb #ðvµã„ç¹·?¾OÓ´(Šã³©( ëåöîúáðø¹|yV–¥m9ãƒ!I,Ë0,£îµ,ËÓ$M“tzrÀñl'žëm–Ûþ°‡ °¦êYš…A‚`žåõˆÉ <dz7ï—óUžåÛõ~5_+M%ôCË´MÝäEÞ¶œÞ +ˆ¼eX(Šˆ²€b(ÃЖ"J‚(‹ëåÆ÷‚á¸ï:nÆ'çG®ãÄ I“M,ÇÔÑŒ8N4U· ‹8u§µ{mÛrâ0V÷úÇw7ÇgS˰tÕ0 k¿UYŽN†5‚×öÚv½Ÿ?-=Ç‹ã„ãYu§Nq7 ûþö)‰ãf[IâÇñÍrûô0gXúäüˆåÙÍrëÚî‡×W KNEYØoÕ<Ï}×O³lñîF`Ç ’øî›WE^Ø–#)bD4K³[–U'<ÜÍÊ¢ jþ´ )’¤ˆ(ŒÛͳ\„f»@Q4C'q’ÄI U(Š<8šÀ0ôú‡w°œ¯ºýŽc»<ÏFa¤íuÏõŸz ÁëúY–ÅQ,Hüøp„ch'$E~XlÇ“8!Iâèô0ŽâÀ‘owšEn–Û4M9ž#H"Ž’p2D>Â÷¯?~ñóÏhw[8Ã0\–åÙ³ÓŸ=C¸Ùn<=Ì-… ñ—Ÿ=ëôÛ»õ¾z¤iFÑ$Aâýa¯*m¯£Š 0Žc¦aa¦4^(– IDATŽã$Žâ¼(úÃnƵvN“´?è&IBÒC CÃÌ I“ÞÎD^ø(Œ_ÿ¶Õn Êfyš¤w×eYñ"“$)ϳ AèØ.Š¡ ËÄQâûAQ”4C'IÁðèp¸ß¨E^¤IjvžåŽ) y·Ù~ØhÊ8ŽmW[S7‘aé(ˆ6« ‚x®gV%Þ\5ZŠ ¢(Bx†Ží.ÉÂz¹LÀw}u§ÑLÈò,I“½A§þ›uy]ÌV†fN¦ã<ËËm´”Ïö Œ †5[J–e§çGüýŸ̳F`¥©À0Ä‹¼c98†"( ‚€cžëwûm†eò¼ âèl:õ\Ç[ÌV›õ®ÙRƇ#C7÷[õöú¡(Šw?~ Ùþø‚ ÏõAl¶I’Z¦¥YwÐÉ‘\Ýi(Šª;a(ß Ò$EPd·Þsþð§×Ï?»T’ ¿û‡VÒÃíLVÄ4IDÞs}C3à ZÌ–¼À‹’ ˆ|³ÝÀ0ÌÐ œ$jµÝhÊ4C;¶+7d×qµ½ÃI‘an–[ ÇÞ¼zóØl7P ÍÒìÛ« qÛmÊ(ˆ|?x÷ãGŽgp‚€¡„À÷[uzrà¹Þ›WïMÝeaèë·wO­N+Ïó8Šó<_ÎWõäj™ŒÀ$E¤i¶šoN.ŽHŠèö;^+Ž×ñ$Y¨ªªã’$ ü Ýk‡0 “Ỿ(‹¼ÈãvrqìÚ^Yïß|ìô:ÇçGUY†aôòóçiš²,ƒá˜k»Iœ6ÛFKaYæŸÿñ_Š¢\<.¶«]ŽA§7èÔ0³ÞÝ]Ý#rzyÜt²4˳ܱ’"¿ýã÷ ÇšÑî¶ß½þ@’D»Û‚`¨,˪ Þ®¶µiašd вè{~žûÍž¹ùã²?êUU… °iØ8ŽÕÎÑð`çÅÓýœb(–cÔfèV£¥\¼8«És:!H¢Ýmª;AkÜMDØ«ª 'ð0ã(d!Ͳ,Í?0 ë˯¾ÈÒl1[ò"?õP Â( Â$Iêá A E gX& c^à§'‡qey.ˆ|Åq”ì·êñÙ”ùW~x„»õþø|JÄz±*àäâˆåتªXŽ98žì·êüiéyþz±Á ›Ê ir8ÒU# c]Õ«ªJÓô³/_UÕh*ßþË(†vúí$NΟŸÆq‚ãxý¶DYì º£Éñ˗çIœð"ï{ òŽíÖ¹?ì®—››wŸù©$ qœØ¦c™6‚ G¥)‡AȰt„õhQ%ýQ×±ÝN¯]‡Ÿ¿ý—,à ü€b(^àA¨ªJÛë(ŠFQ Ðáñ$ôCŽcÜmÔ<Ï@LÓÔÔ-Ïñ²,{¸y$EQ–£1 ƒèÇïÞÎ /pY–¥Y6{XÄq|0{®g™öi§Ygüp_ÌVû­J’„ ¼ÈÛ¦]7þÉtl[N݇@hušuîE£³)E‘ín'pÛ´y‘o4ÏõqsA’$$Yìt[¾z®gê–ÒTúÃî›WïC?OGIXºuwõÀñÌ`<eÑs=Ûr²,G8ôC¥!ã8NÑän³£¤&‡Žíš†%ˆ|»×^ÎW‚Ô'EQAäË¢ˆÃh»Ú…a4÷uÕ¨/*Žc®ãF!êXŽ UU!("H‚çzeYEQ–eà‡–i‹²°˜­â(ÖTƒùÚb€ahµØ\½¿aš ðã³imŽÂ0ì{>E“ÃÉå˜íz—Ä A4K÷ÝýN ‚p·Ù~@RÔìaÞíu|?ˆã„¸å|ýô0g9¦*ËýÖxºŸ¥i*+’c¹(Š„aÓÐLm¯¯Û4Íp ¼@R¤J~ðú‡wM•e¹YnYžyùùsC÷•¸š·ß^ÝÛ–Gq£Õ@Q4MRAäGÃ,ÍVó5‚ AвðüÓg(†šQóð:¥U'Wq«=¹û›GEÔ]P7ƒ8ŒIš¼¿ydXfñ´ÔöúÙ³Ó°ÔVä†c´:MœÀ}Ï_ÎWï^}Àp̶¥!û~ 4åÝfïy¾ëz‚À@Y–ƒñ Ëò_üúKË´¯ÞÝ€ ÀrìéÅÑr¾®sÈ(†î6*‚Àýao·Ù¥IÊñlžç½A7Š"AÔ0”f¨Étìº~„¾$Iše6PU(†‚ ¸YïÀ0l8Œ‡y–Ï‚$ÀÌñNàŽun»Ú]¼8«ªª(J’&Ž&JSA1´×0öHš|ñÙ³<Ï£~žåY–Ý|¼s,·7èvûAŠ¢(ÊʱœÚŒcYæÏü~µØŒGeY¸®_‡Hªªºùpû;ýïþíoDIP÷ZY”G§‡8cÚì4[í&dz·ï;½Îô䆡×?¾—©fiAäy^”å'?yNR$Š"Šœœ•eItUUJCÆ |zrÐh)¿ýÿ~÷ÉO^œ]ï·*MS ƒ ¸^nÁ ìù§—8އahêÖh2D¾Óoï·Çsuy¯ñO£¥¨;MiÊQÆ=†eî¯VË AÝA‡¸ ™¿$°ÊÚ ‚Pšr£)—eEñËÏŸ¡:šíÆfµM’´ªªšE¡êX6/ ÷7޾üìdz†n©;­?욺µZ¬ó¼ÀP”åØ8Jn?ÞÁ|wõ 7¤ÙÃ<Ï I’¨#Ü÷7ó‡Åj¹Ù¬w·OßÿéNàõÙoU]5n>ÞÕæý›«Ãã‰eÚëåæç¿ü)ESA„aT+§(Œ¯ßßâISE¾ýQÛkžã+ A„¢I džãþh2 A`ÏóMÝ¢ªÛïpkvíšE A eØžç'QB„çúWïo:½Š¡»Ížá˜4IÛ%br4Ž£DV¤çŸ^â8öÛÿüOÓÓâ(ÔöéO_‚ à{aF¡J²ˆb(ÍÐUU-žV(†Öððáöѵ½4IÇêª ð=¿,+˰Ó4«}Žûë‡N¿ãØîüiøA£Õ˜ž‚ €á˜k{ÛõÞÔ-†cêœzw´½>÷Y–‰ã¤ÛïÔ˜ZW š¡ÆÃïnj~.É"†a0 We)ˆ¼¤H®ãmV;Çv9Žé »ÇqœeÙëïßÞß<¾øì™¬H¶i£(B’PUêVõý Ûï°‹b(Æn"0B3´ë¸·W÷eYî6;E0u“øùÓr³ÚÁ0”&éÇ÷78†ÅQøÍÐ8¶ë{ÃÒq”˜ºé¹¾m9iš2 ‚`YV˧¹ ñMA(JÃ2ëå&M҃㠂µ•5¼Íó¢ÝmŽF½A'‰C7£ ‚ ðàh¢«z–fU¸®aèJÛ´:MßóëE†c䆔ç Ãiš]¸‰ÂX׌éñAU¾èšñí×ßðåW_ñîõÇN·evYVq”@TßḂ ŠŸÞ|¼?½<M† ²Ûj7ŽÆaVUÁpØUwZ‘çƒQÿôò¸,JÇñf‹Á¨wtz¸œ¯ö[­Õi”e#pÅÏr<‹a(‚ ¼ÀUUU–%E“ r…dzy^~ˆ ‚ºª+MÃÐÚž©Sr$Iô‡ÝºúOGÁ0üüÓK’"ê(Ðç_~zóá¶Öï’,0,ýâÓKC€aEÑÅÓRiʾ<Þ=Õ:wö0×T£^â24ÓÐŒÑd@R$†cëÅÆu܇ÛÇ,ËÔÆ‹<ºCpAÐ÷†O/Ž)†Ú¬6ËùªÎ4ZŠeÚ$M*M¹?èæy±Ûì ÚïTC7O/ŽÏ¦¾0,³š¯IŠTwÚìqñ›¿ÿµëú¦nvûÕ|}þìôìÙ †¡Äq¬4$–cÊ¢plw@²"5šJ’$¦n2 Ýl78Ž ü'0‚$ÚÝVwÐI“TÛë0 Weur>¢ø^¼|yNRäfµŒzrCê{Ѝ['ðÑd ÓA^‹$‰ád «E‘/>{–gy«ÓÐöº ò¢,b(Ê \½ÜEÒ”c»Ó1Ãq[¦-7dœÀQ Uš2'p¦néšé:n–faá8Þê41³L{»Þ>ÝÏ Ãh³Ü Øê4øÓ«å|à Aà4C!¼xZA0G±¬H ÖÑ÷‡ÛG†eªª¢J‚À­‚/ò¼Ók‡Aˆb(Çs?ªoLÝ<>›N¦ãë7¼È£(‚ IÍvCWußóy›LÇ$E¾˜­N/“8eYz8(M9 ¢å|Ýt_˜Žï‚ÄcV–%'ð“é¨ÑRLú¿~88š€ øêÛ×½A·7èàfhF·ß ‚Ð÷ü(ŠÓ$3u3‰“§ûù`Ôë »µGNÑ‚"¦a­kš¡Ÿz™¥YUU(†bæÚž¶×Û½6AU¬–[ßó ¿¿yœLÇ0 yŽ—Ó…ë¸êN+Š’ã¹ª¬lÓV·*†cŽíÖ K‰×Ú²,ÛÍÒì·ÿùŸh†ýPiÊ®ãÕîŒÀ³‡ùõûÛgŸ^Ü]?ÌínÛ2íú±£‘ºÓv›Ý»?:¶K’D§×†E Í(‹B’›8ﶪºÓžîgžëçynhESê^“rØ}¸{BQ¤ÕmöÝZ€z®7:Ea˜e9‚ŠÜ^ÝOdEúù¯~jh&ÍÐA’y|6žäy1œôßÿø‘ ˆî SUÕð`Øê4EYŒ¢¨7èüü—_°ÃŸîç§ij[Îf½#Hâ÷¿ýºªWóµ( qœh;]”„(ŠMÝ‚ ˆ pC3/@P†aß Ô½†cX†EÕ¦ÃÑIœš†•gù_V“1TÝkÝ~çñö©, –c-Â`ÈÐÌf»á:®m9 øîÕ{Š¡Ê²ŒÃxx0¨¥RMhXž… ȶÏõŠ¢ÐT£È‹:Jjh&˱y–n–$‹‚ '^äïoPu,GуãñÉÙQš¦8Ó ¥4¥©X¦-HºfÜ]?ôݳg'yžÃ0TÇd”¦ €`„–Òîµ!.òAàšÎÚ^¯)ºS•¦R¯éª.H<ƒq¿^šïôÚ$E¢(:@ÌÒl1[^0÷Ã0²-‡¤H†¥[f'µ¡ƒã8Iu:Úµ=u«Â0Ìñì‡7ó¼`9¶^8vlW×Ì$Š-Ó¾~‚àøpT‡Ii†¢hªŽ:~ýï!êôÛA>=Ì£0ŒãA‘v¯U#«ÕbCR¤c»8ÿ響cXZÛëÏ6Û Eâ(Všr½´…qQ8Ž "¿#ˆþ¨»^l^ýùõ_ÿÝ/!ˆ0u ÅPC7[Ýf«ÓȲ¼Ÿï6{k,ÊrLUU ö]š¡y‘ãxvñ´ª7>PÁpÌóüFS&)ª,ŠN¿í{ÁÃÍ#dz0 ­›f§É ÜWóóf»Qï£ÊŠ$7$Š&ó\@Q‚¡:Ö3˜ô%Eì ;uº¸Þ¨ô\|8B1”ãÙ—?yž&)˱4K™ºÕ"p‚Zíf%Žå C€ah–åêNK’d·QË­³d Ó ÃB,ÏÀ0T‹²0÷[•aÑëàîû7‘÷[õþæ±7èbf™6‚a2 ¥™eÚw³ñáÈ6×¼È7šršeíN+MÓÝz_§Ã]ÇB­Ýkuz탣qMÆÆ‡#,ÃŒ{“ÃQ…ÉÒŒ ðV·Õl7î®d„ ñt¨íõõrûì“êª`F$Ër†¥]ÛýüËON.Ž;½Ön£â8^•e³Ýhw[a²,¥‚²"ÉŠT'cw›ýôä`8é÷†] ªXޱLgt0x÷㇪ªã>†¡ž (â9^»Û%¤H‚†“~M9ïžê¥’$¼8qí[×õët4†¡rC>>›nVÿ?{ïÕ#i–Ÿù½Þû7¼ÍŒôYY¾ÍtOÏpÈ!) !¬¨½è è“èRt§K+@Ð XhwµÚ¥vÈ1=Ó¦ªËdVúÌðñzï.N‘’C,šdŸ›Ì8™ñžsþÿçù=k¨®·wÇ{‡; ¾o›v–å;{[†nQ4g9dz‚ÈÇý  ‚ƒP’ÅFK%I2I’,Í€¹¾, C·Ê²ò\O[i(†¥I¶Ykóé¢Ók[†å9ÞîÁðŠlVí Ç}Ýó«ª%QmªÀ9ÙÝJ’´(ʺ†DIœìmik=IËt£^’$’" ¢0ÙÛÂÝíñÁñÞf¥Ï/ð“½-P">8Þ Ã¨?èæyNQ‚ ‹é|D“8yo0’î Ñ‹/¾Ù¬ôÅlÉñìz¹©ëz÷`²w¸ã¹~šfo¿9óŸ ˆ0ˆÙÚ§I’Š¢ÃñÇq†Qi¶£ím: wš¦i†:?½L“Cуã=E•Ó$ è*«fK]ÍWÀ#äûAóûÅx2D!MSÛrÖËÍÎÁ¤*«õrÝê´š-u1_Õu-ÊÂÞáA/¾xuu~óðɃv§9õžüÀ |Ïß?Þ ƒp³Úà8~ð`A`Ðþè{åù Ã1,ËÜßÎv&eYª EV$to+ð‚¼(,Óf9†fè5ègyè‡uUçyn[Nžçjs€ã¸ô¬k×ñ®/nÆÛC Ç@iýí7gŽå Fý­É¨*+ a}eC7ã8YÌW²"íNŠ¢˜ÞÌ€ÁÐLà\-ÖE^TUÅ ÜônÖíwx×5Ã4¬åbevUU¾<|rœ¥èãÐ,Cøbºt8F”EÓ°IÃ,–÷7Óå|½{°¥9ØËâþì£'úÆØÞÝRT9ôCT•P‘d‘ãXpY7ukz7'H¢(J^`y‘gyFmªs<‡¢HY”à=Ÿ¥ÙçÇ8‡~(ˆ|^Ø{¿MÌ0ôx{è:ÞÓ?:¤êòÝu’¤Û;c‚À«²dy–b¨î “ÄiYV4MÎ Š¡†Â0œg9Ë1 –V–Õr¶:{}G ð±ø®ŸÄiŦn¹¶»\¬Os<›Ä I‘¶å0,³Yi‚xŽË üôvn›öýí̱Ýn¿Ól7ó¼X/5Q€„Gß–aÏï³»9ðà —wŽíò‡¢èË/_Ã0döÛoÎÀÁ½ÕiJ²¨o `a@x½ÚxŽ_×uF¢$¼~yúøÙÉ`Ü9 Qð=?M2ª=/جµp,×µ]µ©`EQ²“çÅéëweYöÝ$Š%EŒ£xv¿(Ër¼=dXf9_¥iŠa¨ëx®ãUï›Uaè‡ÚZOâtw»ÑRµî¹~à®ãRJv²*éš‘eY§4C¥iJRdzUUq;»›WuÝ鵓M†QY– Ëìîè#K3E‚ ¶qЦ@çÒÐÌ‹³«ïþà;¦á[¦a­upÈÎÒ‚ 4Iâ(õÑö€œfÓEÅaÎï—A^¾»FQä³ßþ„åE³¥çqOoç$Ey±Z¬ëw?kušéûõ õ\ŸãAäÛÝ–iX0 oVºeÚ÷7ÓÉÞ/p¼ÀEQ N'ËÙJ[ë/¾xýŸýÑï^°YižžÄqœE£¥.çëÓWïÚ½ÖíÕýf¹i÷Ú’,µÔf¥¯›(Œ³%Ão¿9#E1µ©ÌgËålaoн½¾O’´, ]3³4›ìms<»Z¬£0º8½lwÛ8ŽåyJ£ÀPe§_~þuoÐA1 †a°Äb8ޤY·×ÕEQº½N–çIœ¼yy *N¦2½›ïìOÚ¦ï‡úÆH“ŒœíQYEžƒSˆiX8Ž7Zj’$Žå$IZ–%ÃÐuU "/+Žc‚È—ýNàJCÖÖFY– ð òÝ~'ðÃv·õì£G’"åYžÄiš¦4Û †¡ëº^ÌV^k0î‡A8žŒ? æøáÁz¹e!ÏrAÆÛC€4!¼Ým‰’PUõƒÇGÏ~üèÐ1Ц$E²M»®ëþ¨ç{þîÁ¤Õiú~&Y»ÓDQôó?ûÅŸ<ëõ;UUƒx]×C•E)«Òp<€ ˆãÙÉî– £í!T×7WwIœ¶»MðYÍ׎íZ¦#ˆ¼çzUY…AÄ0´iXÀðîÚ^%_}þ¢;èZ¦MQ¤¬ÊAÈ˳—g×à|Gq]× ó7LÝ‚aˆa™ q??½*‹â³ßþtg»ªêÛë{œÀ ’ hZm*²*ϧ ’"¿ÿ»Ÿuûíùýb1_µ»íç?iw[jS)òâ®®Ÿüô;Ÿ} C$‰ "oh¦ÚTpow[4MEQÜl5²,³omÐÝ (2K3ðÙo“8™ÝÍg÷óf»Á° /r³ÛùÕù ò$E¶»-‚M•9Žci†BQ¬, E•Ó4eÚ÷ ÇyÇ0,IÒ4M9ŽÍÒ¬Ýi Gý,Ï¿ùò5Iu éýøáa]×8Aï¼À…AÈ ¼c» Ë$WI–e¦aY¦óêÅÛN¯½w´ ÃðÛoÞù^`ê&Ãгûy„Iœ&q‡q'óé±ÝÀ8ƒ (Ž“$Nh–ö*†¥7+MQeË´{ƒ†c`+*´Š.ç+ÀßñæòîÕ‹·G'@•ãØnY”u Ç}ÛrxÛÚq«6”$IF[ÇvuÍpwÿxA‘V§™eÙÞáp$¯ë$N˲xüüd0êß\ݹŽG1Ë1$E‰’ÀòlUVžã$ÁñÜ`؃äüí…¬ÊÿÅÿ$‹À^¢h£ÕˆÂ¨ª*œÀ[í¦$‹$IÆQœe¹¡[ÚZïŒ@£*˲»›)PÂÕíÕýr¾j¶»‡;§—‹Ù Af»a–¬Ê?ýÑÏ[&Ã1u]¿~yj[nžçUUik,·4Kû^pw3¥Ê2lÏñ!B1Ô±]Žcÿä_ c3v IDATÿé~ÿ{A@„xY–†q<'ÉbžŠšljÚTꪎ£$Žã(¢¢(v/ŽЦôQ–%†cYšikÀÓayv³Ò¬Ûïüü'_Fa üŠ4C~ä˜NÅjS%I"MSDz,w,GVåÍJO Ï–eãx–¦)’¦/|ùÅ«4MÓ$«ª*Ï‹ Ã4C‹’&iDãÉ´l—³•$‹U]S4Ùëwâ8Á œ¢)œÀ%Y]R %+RàAfY>¿_’Ðj7DIˆ¢øòÝõÝõýh{„¯¾z}öæâüþg‚ z?v _1Ž ‚F<ôlòÝ_õÏЧÇ?üå›î}ÿ/¾?|ôþ»'y‡ú¿tï“÷_?ØýÞ_ÿ½Oß}þKÏê>ùUO°óü÷>þ£_žy¾óÙ/ß|²õ Aüû¿4õì/¿=l?ûÝþÊCtôGÏÅ#ýmão<÷¿6~qñ£0ˆ€üxg»Óo« e~¿Ø?Þo‰¾&ß dU>~Dfi–çEY––aeiVå_ÀÂ0 e!Ͳ4É–‰ã„áÛtf÷ Io.nMÝpĪª}/¼¾¸K’¤ÙR1ƒHV$–e0 Mâ$ŽbC7?¤ÑRO·»­Þ°{3+‹2KÑ›«»­É(Šbßógw µ©ª èÿ{Ãîj¾Ò7F³Ý|¨ÃûYš$úˆYšsû‡Ÿý×X×ùB| AÁ0AÐ/ÏCô{Ëüßvÿ¿1ÿdüéÔýÿÖùÿêý×òÃÿæÿ×ï ‚þûÿî?æþÿù_ŸÿãßûoÿûO †?÷ïÓeoØ•d‘¤Èn¿ƒ¢¨¡›Ã0ì­-g+P‚Çr³Õx2ÌóE×v?þî–iã8†¢ESC/fË<Ë-ÃfXfµXÅQBÑ4ÃÐa%qBAàFA”çE;$I´»­«‹›Þ°[¥¾Ñ«ª¢hа§=Æ1Œ¤É£‡‡EvC3ïn¦‚üöï¿ÙnäY>»Ÿ'q,ˆ‚çúu]š¹^nš­Ë1–a‡A¨­u@‚I®Þ]·{m†¡ƒ LÓTßè ª8;¶kVU]UÏMïfè ºš¯‘‡ ( ¢ªª Í<~tHÓTÆ—gW,ÇNogžë3 MÓT'®ãiëäúâöäñÑpkCÍ2i’æYEq'@ ×tqv7üü¡ òu]w{m‹$ð½Ès€7bY&/ 4ÍÛ7pé74s9_ïNôA/p›•v}yGû~šuº­,Ë6+Xša²,K’„$I n Ó$q,E‘Ùý°M‡ q°«˜ÞÍVËu–fi’Q4ùâ‹o :y|Œ¡èÍÕ]šd0 ðÉSpé1"KQ%Y•X–%‘å˜f»Q–•¨ˆqœ„AäØŽ( I’°†š ËùšåÙÙÝœ¢ß×WÕ¦ª­õ(ˆX–!(@gAš¦Ã0%!ôÃÓ}š¡gwóƒãÝFSˆfEB?ä8öäéñp<üÀwƒH’¨ê: ¢Û«»²¬p»¹¸ýìw>U AIœâ8Ž ‰ïE^ÔuM’$AœÀb(&H<Š M^h&ŽcJCŽã¸*+Nà¢06t3Šb|7uóùÇO:½öÕÅ­c¹[;£ÕrC’äz¹Æp A`¨®AMYV÷·³_üäËßúÝÏŽ^œ]-çË_µ"|;~ý#I‚-Uø$NV‹u»Û´M§®ëŽc+ £ùtI’„ëz$IØ–ƒãX%_ÿâåj±é»Që#ðÃÕb•ey«ÓLâd³Ö/@„¤ÈÅ|èë«ùñ$IÀû9ŽcS7âÆs}Š"‡ãÈr©ëÚ2, !4tKmÈE^Ü\Ý­—p ‰ÂÈЭÍJc:K³óÓËí1ðbÎî×ç7®ãñÛî´ªº^/7gWç§Žår<§ëï7¦ïèoT;¿ÿ5Íïw>£¸ÓkýÅ7 CoíŒ)šŠ£¸ª*ŽçÔ†âØnQ?üƒ¤i*ˆ<Š¡ãÉðÁ££f»áXÎx2Ä0ìæòîOÿíOŠ¢€ ˆå˜V§eË1ç§WÓÛéìnñü;OÖ‹(‹ûG;œÀ&qj[NYeY¾½;褪ªUÞ¬t‚$Y%az;£( Ç1싟}gy'(Š&I’&à4çõåm³¥²,c覮ò¯~8ÚeY’…1`pà8¦6ÕN·5ÙßÎÒ¬;è@GÉÅÙ•©›Ÿ<9ŒzËùªÛo×Ц{‡;C×Uµœ¯}Ï'H"Ïrš¡´µ>Ú‚º1AŸ<À ¤÷„ADÓ”ÚT`†`¸,+AâÓ4ãx¨«ª&)¢ÕiVeé9>T×¾®«­1‚¼ÓGaœ&`wtPüÚ–3¿_pëÔÇs«Åæôõùdw‹ù(ŒC”ÅÅl‰aø³ãŽ 8À0ø Ã$EðÏ |wЩ«ºÈ‹ÉÞÖÑÉ> Ã/¾|Õí·}ÏßÞF½­ñì~øUU~ 6”ÙýÜ÷‚£“ý²¬‘[.Ö¼À3,­4d@AJâTQ%A’(¾(r‚ ¢ 2 ; "×q/ß]ù^P× òžëƒ3=€u_至ûED(Šà^oŒ¢(n/ïx‘ÿèÓç8Ž-¦K†YŽ¡išá˜,Íïn¦žã÷G=×ñ¢0ò<Â6}£{žïÚ^_#Œã8Ë5|ÏÂø ÖËM»ÛeªëÞ ãÚÎ`ÜK’äÕ×o{ƒ÷[¨N¯ý/ÿÏ#üöÞö Í,Ëj÷`°«o^ž‘Ò5L”}£ƒ< `_ä–cµµ®¨RØ[@‚0 í{žô†]ÀЫoÇo`ô=Eh†Â0Üu<†e ºBß ([[ëŠîîX† \YšMö¶(š¼¹¼íô:ª+Ã2YæÖU 2zÃnUÕ²"Ö5”¥Ùì~±Yk$I:¶‹¢èü~Á°L–e C+Žb˜¬H§¯Îx‘R’ål娮c»óûyU–añ7ÙÛº»ž®+¥¡Da¸7ÚFGQ´Õi* %‰SE ÉG‡O>|äÚ^ŃQõ?þìÃû›©¢Ê$Aü]¿ðÿX†¶1(ŠÈó"ã,ËEY$ ES·ªª’©(ÊÞ‘d1Ž¥¡P4u#0‚Œ¶¼À÷‡½¢(DYÔÖ:`É'Ë1À*Òî6Ÿ~øxïpÇ4lZU ÃI4‡]@Ùtl—ã9^à‹¢¸8»BQ”åX’"<ÏÏò¼ÙRmËÁÎO/{<Au†ÃÒŽ…lV¨Ûp6PÃ0Ì‹<Œ ‘¤ivùGÏÖUÕõx³ ûêüf½Ôм@Q¤, µ©nMFÍv£ªj‚ʲº»ž"0üðÉ1A‹é2MÓÙÝâæòö{?ü.ÃÒžë#b[NoÐÕ7F%ëÕ&ðß úÃ^³ÝPTÉ2·¯ÎŽvÓ$K“èÚ}/xòÁ#C3ÚÝVUUMEÁñŠb¼ÀR4 XTžë³¡(òÚZõâ DZƒQ¿( ×öª²"i Èð?d9æäéAàó•ïI’à8F’$I¥ d?Ÿ.A, ÃТ$ (²œ­ Ý%씵µ~p¼ßh© Ë,æ+^àÕ54÷EY»{š¦¿øé¿ÙÚµÚMÅhšzöÑ“ÅlÅr,I’Ó»ùîÁd8î/ç+×ñAs>Ïrµ©àÞl7³¥¡‡ŽåÂ0äØnÅÀ°{0q,G¸áÖ ‰“¼(†[CÀ‚Œûi’¾ýæ,/ŠV»Q–UÅaÝßÎÒ$eóO¾ÿq·ß^-6ÚFo¶ Ã8¶ûæå)I‘€ªcöj¾%A”†eMu³Ò6k­®kE•}×ß=ܱ9AFQlöË/^ÝÝL‘7 ‹ pЦ ͼ»ºß;Üq,×±Ýf«á:ý0u˶œÙý|z;ãx–¢©ñö°(Š¢(6+}~¿Ÿ´4I Ýô½@Û K/çnàGºffUUí~³¥‚EaâÛ‹àoj¨M(-êº^¯6ínSQe€,Ž¢äð,ÃÒiÂ’˜¥ÙÍå­¤ˆuUÙ–CE“<ÏyÞíwQ ªªêÀ Ê¢„ ȶ\‚`ŒúE^4Û“ÇǦn9–»Z¬=}À‹ØßšŒXŽ ƒ$¼vœÀEY§„n¿CÑäå»kÏõ›íˆOYÐ,Ë´ºÍ­É¤v\_ÜÞ]O Ý,‹B[—ýQ µÚͲ,o¯îŽ14s½\ ¢eùì~ ˆëx¯_¾µM†!Cà zŸ—„u]'q øÝ¶å œçE»Û¢ªÝinïm©Må½~ ÇHŠ\-×€˜º¡¢PVå‹/^=|ú “,Éæ9®k»eY’$Eñr¾âx6Iš¥%Y¼¿™‚R€ÐfYžgyÇIœÞßÎlÓ>?½ÉÃq¿?ì1óæå)@Q®k†¥WËÍéëwY–¿üâU«ÓÄ0F/~úUY”‚È/ç+–cLÝ:?½¤(JøÙÝ‘/Ëj³Òîo¦@qÃÐÝÍ”ah}c,æ«Ãûß|ù @Â8 ¼$õæyª¾Q‡\QŠ‚r«eÚyž÷Ý݃Išd4Má8¾s0%Á±]I;½v„íNs>]"²´×l5h†F¸Ýi2cèfÔoó¢UAŽcY–é º“½­f»‘&éf¥K²Ö3¥!¾„¢ÊEQ˜ºà^œ&«ª.ò"ðE”†œeYšdúF7u“¢i /5 K[ëUY=üžiX¦a[¦adžnò7»›s],¦Ëƒ{ôwß³üÇ0ÿÉ÷?Jâ„å‚–óŽã’"nMÆÝ~ØÜ?¤iJR¥ål¥­´Þ°K’$8€®—A0 µ ËsýËw×Ý~{v7Œ^‚.Ï®,ÓÎÒÌs}ßóË)ŠØsWó5ˆ:þù¿ì»ƒa¯,«_üäKÏõ£>˱o¿9³-p™êºÆÎO/Q%~z;O’¸kQX/7ÓÛÙh{¨oŒ8Ž¿üüÅîÁ„¸ªªÀ•† –câ0Æq,Žc‚ò,o4•fKÅpŒa™Á¨—e90 Íîæw7ÓáxP•åp< YEP}£AQÔÎÞ6ÿüa£Õèù^¿AÐj¹)ò¼Óëô‡]EIš¢(bz;¼ † í½-µ¡@döpÜ_.ÖŽå¨ ùîê>Žb ÃlÓé»÷7Sã8±L;M2È€ ÈöîÖbºd8¦,ÊF‹£('pžçLà ü (ÞÇΦ‹ŸÿøËf»¡6 Ã$ŽûÛ»[‚$ßv˲ñ¢’¥­´8Œ>y°³¿}ûçdà²,»ýŽc»è÷>Ä FÀ €DÂsý½íFK}üÁÃGÏOxƒ°ÙnÀ2Ÿ.†ãA]×(†¶»-Š"-Õ÷š¦ÆÏºY×PF²*³<ë:ž VC’E‚°,‰Ó²(gw3×ñö÷PŒ· Er’"¡$ÛˆÇÏNò¼¸¿™b:ÜŒ'#Žg9cXÚ6m†¥‹²tm×2ìkøVù&ÇÂ0äÊí¬ˆy–We¥­(Œ@æn'Ö ¸?<ϺYk¨MÄU"(’¦ioÐq-7K³Ír#ˆüå»ë݃Ér¶Š¢Pczƒ.ÈtZ-V Ë~X–•¢Ê¼È~8ÙÛl? ) œah€Ã üp÷`rúú<Ž@Fªz÷àWw¾¿þáØ.‚¢ ¤TוçøÏ$Ñl7À€¢(Eʲò¼`0ê%qø¡¡™0aº{0n dUâENy@ØFQyz7?~xØõ\ÛD>IÒ¢(€c˜$Iß 0 Þsüªëª")Ã1†A¾g»ÛT†ó<ý0ð‚·¯Þµ»-Š¢@TmYV¦nõ(ˆ83 cÏõMú8½²ä<Ë•†’e™ëx(†a8!ES„òwÞ³üÇ0ÿôëÿ+I’ªªŸ|HzŽ/+Ë34M#Œ¡(Š¢ãÉH_ëŽwûí,ÍPݬ5àˆñ\´=%! ãíÝ-‚$î®§ïì>|œ¦éíõ}‘–áìnNqÓ ­6ÕÁ¨¿Yk϶:Í$Iµµ^×Ðp< j½Ü`8Öt—ó8PaÝ^†áÿ¿ŸÛ–£6d¥¡”Eih†¡u ¹¶K’Äõå-DZ†Ÿ Ã8ŽCTU5‚@oøF§ßaX: cp0EP”f0S7×ËÍz©Ñ EѤeØ4K—E¹Ñ6ÚÆPT¿x‘¯Ê!p€ÇCPı\@ˆu,—å™4Iëªj´Tµ©Öu­­õÙݼ,«?û“Ÿ~øÉ3ß%EB1,ÏsàÑÖ6º ñì8Þéw(š¼»º/Š"°CEËÁvžëÓ,M’$Ès]L—ÀY¥4äûÛ©¬J»“ÍJ{ûÍ™ï(ŠÊªŒaØ|ºˆãd’#|3ŒzC7Z*#ÌÒÌÐÌḿš¯Ã ©g@ö,«òå»ëƒûÝ^»ÑRÛÖéÍJ?{s†E‘0 GQ¼˜.y‘'I÷îú¾7ì²,Á0‚" U—fh~ŸDFÓÔf¥½úúçùÝ^0{ÁÔ2lS7y×6z%YšÉªôøÙIF¾̧ ЦÓ4‹£Øs}‚n¯ï±?|R ‚ UU‰’Ðh©,Ëèƒbè8Œg÷óéíüøáÁÉÓc×ñ^¿x«­µŽ\ǃ ”1å8vµÜèƒ$‰á¨á˜¡™à m™öz¹i´o_¿;>9U'ð㇇eY1£6–cJ¸Àªª:<Þ{ûúÝôv–$)ТUŦn.¦Ë­Ýqži’,[QÎß^5ÃëÕ´·¿¿Q×P'’,>x|’Lö&¦’&i£Õ–k ÇÕ¦"+"ð°¦I*ˆBYUEQ‚ÆÄr¾}÷$IQ(вÛïpWÅz¹ñ\/ŽÏõÏO/·&£8ŽE_ (Ê÷ð– ’õb Ê- C{žqv…aØx{TÕÍÒ(Šî씋.ý IDATE¡­uö ŽGÀ¿Ë°4AÓ»Ùx{Ôh*édTU5/ð¯_¼¹§qœDQDQ€ƒÝoÇo`šIR„e:$EÐ EREQ¶i)(êa(ŠðÇ‹¼ @ÄGqY”¤HJÒéµó<_-ÖMNÄŸ< ƒ†a–e‘ïz‚(x®w{u?i`4Mɪ„¢ˆ¡™|ò ÇqÏñ£ÞÎþ¤Õi‚•,˲4ë»$Ib)ªÌ ÜÍåÝþÑ®©›Ã­Aš¤ÝA—¢ÉN·í:ž°1ZÝøxDA乞 ‚ÄWu¥Y³Ý@1ôæò4A®8Ð+a&Ê’ë¸íns÷`‡çYŽçÚÝ–çz—ï®Q}ðøH’ÅÍJëPYU$EEá˜Î|ºèz’"‚ˆ4AÖËM«ÓdX:MRE•9»¹¸~’ÄI’TTéæò¶Ómᾘ.9ŽUT¹®kC·‚ ÜÞS ýúå)Ã2²"~`›öîÁ„¢HÏñËÒñ\Oi(UY6ÛMË´=×WÊ“1 =½~øá§Ï@Í‚ ÍJ ¼ Õn|(Žciš%q˜”¶å:¶[×µ¶6À£ ¢ «rYV(†íî`Úîµ ’Àp¬,«ÅlÙíw`¢ž<˱gkg¬kŠ"iš–e5žŒÀÆ®,K×qEI¨ê °„ÆÛC†£^'ÀfÀqLDG'E¾øòU–e½~çÍ7§[;ã0ˆ‚ \/6eY"’¦9I¢Äƒ8‡0ˆB?TT‰åÙ$I@TxǦnAÔéµC?¤hRm*¢$tûAàA¢ê`Üoµú/¾A¤Ým6ÍÒõ‡=Ûr@+®È ×ñ¢(¾¹¸Àwµ©ìízŽww3ìmÛ¦EQ”$EÑ4µš¯‹¼éßeUEA$+’¢Jñ=ÅPtµÜÔu]Õ5ÀÍϧ –edEŠÃXV$Q£C¶i‡þâïî²ðkîESaÚ–Ër,I“eYÿ,˰ ‚pm·®!Y]Û#)lâµµ¾š¯A’¡™ßýÁwx‘ýâí÷øÝÀ×Ë HÊûâ§_UUõðéÏõªª¢ÊwpqXÍ×– xg¦nɪä{A„¾¬’"(íÍôäÉq£ÕåDÂÁtšIÃ"ÊB„AŠ’@ÑT]מ= hŠçYµ©¾üòˆ”¸¾¼­ªz9[ý•R'oz™ÿæö?…F['i’6[ª( EQr<·Z®mÓÞ?ÞCPDÕž½~gh&†c'OŽeE ‚ªkA€9…åAäqãx³ÒzƒN]×Eq“Dñöî¸ÝmÁ0dhfUÕ‚(¸¶—ç9AgWE‚3îÙ›w–a!(Š¡¨©[·WwÏ "ýâ§_ï•e•$IUWeUº•D±eÚ|òÌ6íùl©m I‘<׃(ËóÁ¸_%ˆ´muš¾ëÏî8ŽGaŒÀðW?ièæ~ï³Õ|½˜­lÓ–E1Çîn¦·W÷žDQl™v§Ûâx†áóÓ«"ÏÁÆa³Ò<ÇÓ6FD×7eQÈŠD3‚À†ft‚Àa Ÿ$)NàãQžå@*%J‚ ÚZßÞÛ‚a¸ª*mc°ú…›ó›n¿}øà€¤ˆþ°AÐf­gYþç8$±ÙnàÇI‘†nFA¤­´$I³eQÛ;cßó“8)ò<Ž’$íÕs} ÇÀBõîí¥mÚ†n¹Ž×ê4I· ,ÏrQ²,ý9×»Ûoã8¶½3¶ + £þ°wòøÃñÕbE3L]×jSíöÛ¶ålMFjSÉ‹¢?èfY¶c0 ¦èÎÞ6/ðIœˆ’ Ê"†c{® 0Í28Ž‘¦™¶Ò{ý.ESAäYΰLà(†Î¦‹,Ë8žk´ÔÙÝ‚ã9Q@´äÞÑn«Ó|óò¬?ì:&(¤c8˜´ ¶F’p šÙê4$¾*+’$}Ïç8v~¿d9Æ÷|š¡Â0º:¿Q› /ð†Ž¶öÆñ¬ï¦a+ ,ÀŽ=|ú$¯—Ú|º”U‰$ñ¢(i†ea0êÃÒt ”Tiïp'¢ÓWg†±,3XžÕVÃ;ûÛ,Ï^_Þ6ÊôvæØßöeCc9[:zØŽûEQ¦Ifh†k{u]5Û –cÔ¦Z–åp< IùÁ¸¿œ¯&{ÛEá®4Çì5š*‚ Ëp|oÐ-òâÙGAz#I‘?ú·?>:9àîúâ–åX~¥µ»-‚ ,ÓÚrEó•k{ `ú-Ót*°™»¹¼…ªkÙ.8²Ýëw†† ˆ¢H‚ÖKm½XÛC päÔ®`›Ñ¿óžå?†ùíQšf†Òt"J"ˆ”??½l´ÔV§‡±¡™²"•E)+’ ­N3Šb†¡9žHÑÍJçxŽçYŠ¡I’DQ$M²þ K3ô`Ü7uA`]3C?¼¿2 S–eE¼À#øÍP0 —eER„¡› ë…8Ûr”†²¼A ÃØÎþ‚ ’Ä wLg÷`úaš¤yžÛ¦ã¹þz±Ž{Âw}q“¦DZŠR4Åñ\'óÙjv?—i¸Õ÷\ß÷ƒõb“¦yŋٲÙn`öú婤ˆQ4™ç9 ¨­Wš¡™QÙ¦b(Ïs‚ÈÃ0Üí·]×;y|´{0 ‚°(Êéí¼,KY•Z¦¤H,Ë|óÕ+}cøžßíwX–YÚ+ÏõyÂX׌²,9ŽÅpŒã¹÷ió’¥(~FQÄpŒ§™IP)+Òj¹áxv<ÁŽeX–iã8ÞîµêºÆ0l¸5l4U‚$h†± «?ê½{{É‹œm: K›† |®%q!&¢(¢m ‚$ZfU•AœŸ^ÅQd›vU–ŽíÑî¶ZíF„iš!(𦹠áÚJ Ãȱ]‚$8Ž143‰@Éó" #°l#(’&‚À—ï®ó<ïö»žëY¦ýöåÙÁƒ½­ÉèúòîôÕ»8Šß^B0äÚ.È­£j½XÇqÂ04Ã2²"Ue5½›uúmQæÓåpÜóât÷`²YnP©ªê«Ÿ¿øð“çeQZ†uöúÝb¶âx¶®ëÍRÛ¬4 Ç´µ>ÙÝ¢jz;òå| ÃÍЂÈþg_Ȫ¤¨2˱ 3Kß¾à8APà‡u]_œ]}ú[3,ýö›3‚Ëy¿û‘I'{[YšjÕãç!*ò‚¸“'Ç®åb(FR‚ ³éb8êÇq¢4d^àʲ¸TA–³°ÕþåàÛñŸd`8ÇÉÙ›‹ýmÑòeaŽÂ¤ÕnÒ ]×u–fqœhkýêü&Žãº†ºýN„E²Ûí·ó‚ o¾z-J¨BÃ0¼Z®I’(Š2u<ß V‹µk3a1,£¨2à Š²à»c»– ÚöJC©« DmòÃ0Iâ^‡¹V§ùæåi»×Â0¬ÑR_~ñJm*~¸µ3&Hœ À+O/¿z ˆiXIœ ÆS$çú~[Qå÷ÿßË^æ?¤yà¥Æp Ü\ÎWIH²ˆcA¢$¨MÕuÜÙݼÙnPY×PÆy®w÷b:ö?hw[¼È£*)"MSóé‚¢)m­ƒÃ24Cy®¢Öû£Š ŽåÕˆ‘~üüÄu¼»ë{’$=?)‹AÑv·GÑË/_÷†]¬?ì²»Yi,ǪMG)šmhšƒ°7ìöúªª8ž=:9À œeÏ Pé{›•6÷ûÃn–å$IÎï—Ý^{k2šìŽo®î>}0÷ëºÞ?ÚÅp¼ÑRÏ^ŸS¹³?±ÉÇ”EÑl7HФYœI’^y8©~o¿9}øô†á4NËIÓüüôr²·mêæ|º¼¹¼«ª²ªJ^à@U¤'XLÄ äŠüþñž¶ÖASÃ1×ñÒ$Íó¢Ùj4Z*Ë1§¯Þá86»_,¦K`¿ŒûeY®Žcâ(†aè{Me´5)f`!§hz1[]¾»î :‚(¸¶«¨2EQWç7EŽwFEUu…¢ÈxB!BÑäz±©ÊüùÀ;{u~]E’¤QS™Dñz±f8ƵÝ$N ÍÜÙßNx¶(Šf»AÓ´ïù@ Ùíw<> ƒè‹Ÿ~E³´ ’*5]uz7?y|¤6ÕÁ¸WäÅr¾e1Ë2~ssqËrl§ßýhïp'ð,ÍË ý0Ž]3N’„åXŽc–žÏ–u]ÇQ<Þ6Û ‚$‘ÿà“g¾ç~˜¥™( E^ìî F3´¢Ê@ºyø`_×ÌV§±YjÀ-ˆüîáŽïùúÆ9‚È#/ðb¥I:»Ÿ“xÁr¶jw[þÉ¿þ÷¶å "«2AâÚZ%Ñ÷’"1\*ËJm(‚$p<È€r£0D1ÌÔ-Qì+ ¤€};~£Ók^0Ú · ž«ÈsY‘мÉá¼ÈQ4–¥º®a¾|w=@âÅŸþÛ?x|TEFŒ~u~ýá'Ï”†²^®]Ç· $»eiƲ̋/^© $qÁðf¥ÅQR׈¨ëäšåçÑÉÁ|ºDx0êGQìXnD –q>]^pð`$l^ß$Ib›6`¸,Êíñw¾÷!` Ç}ÁEQÿÁWæÛñkç§— ËôŠëxyž“™ÄiFÓ»9Às‚l±v¯½˜-ïof0 ¡(ú³?ý@A€ÔÅv·]U —E™&ÙÏò%Žc‚ u~}òäˆyd±?èæy‘$I·×Ž¢X’Eß –óõÕù5†áÝA‡¢(`÷è :óé†ažç0×ö€ýð”³,#I"ÏsC–e9ÇsYžûî{ƒZšdÍvÃ0,Žç6ËÍlºxð袩éí Äμ~ùö‡ðÓ°EIà8&ŽAâavl7Ž¢²(f÷‹$NlËa9ÆóЦ–ÁqÌÔ­²,=Ç#)Bm*®ãñ)_×µ íN ¨UÓ$™…qmMF½A§ÙR³,Œzy^@0Üê4Mµª*S7-Ëjv7eÄ(Öf¥íí†A4·jSÅqŒ¤ßó×ËÍì~†Q¯ßYÎVúÆõð8NÞ½½`yô€/ß] °c»†f¬—š( –G±¡™G'Ï?~:»ŸÓ,øÁì~î¹^F‚Tų7çÝ^;MÓV» äÁa]œ]© …f( Ãn®î|/ (²Ùn˜ºõÿ±÷ÞÑ–¥åyçÎ9žœÏ¹9Tî@7И¦A Â(‰A,c…Q2È Ô4“,#À£€…0£QDP‹ÐÕoÕÍ÷ä°sÎÛ|,iÑ¥µüþuë[§êî[w§ï}Ÿç÷ :8aÚw‡®ë€’$p ›Ž¦$MAtdz/DQAÐl2·L›¦©ÎRK…j£šeYµQ¥h*ðC†¥WÖ—ªõŠ®êœÀÙ¦3Ïh†v,7Š¢<‡Àý®Þ¬BT(:K-^à3…eÇH’n¥çÝ÷Ü,ÏX–ñ\¿T)Æq ð( v}1S|?»ä,Ë\ד‘ ЦX–Áqœfi Ù‚eË´£0*” ¼À£( ¸ÊÝ¥6Çs {̰Œ2WLÃæx®Þ¬•«¥$Ig“x+eC7—×z­n¼#"(² Ša€Ž+ˆ<Çs•j)ð|p9ý¯úèëÔÕ$N|שQí\Û=ÇYÏóÀg†'#‚$j 'p» ÚÀ×n#®íÂ0<Íší†e:išퟔ«eI)šÄ0,MÒÉhÚ]îTjå Ç}âѧ†eã¹0A{Å®ëš ¦WIœ$IR(ʪ¢/fŠçy7¯í…AX­W€lJ”Û´ÇûÊ—¿ï›Ÿ¿º±Ì ¼i˜×.ßð=_.HA"†Qš¦†føž7Ïiúùe¿AëMy®Át4ór+¥(ŠêÍ*ò³ÉŒº¢(ªÖÊRAŠ£‚ ^à(š­;ÇvÒ4[ÌU’$J•¢T(šä8ÖzG&qâXަè“Ñ JFaT,Q M’DWu–c mì:Þh0‘¯Ù^öÐ_>JÓT'Øñá A EÌ0´2WJ•Aãátp2§À Ž¢'°'}UÑç³…çúÀtÃðb®îíì_»|ãüg­Úh0ö=ãYî¿òÔ5Àí3u †áZ£Åqo¥C3ôWÓg}©Ⱥ8Ž3,PP¶i/¯-‰’Ãp½YaÀ?^mT$YÔ5#K3’$ÉÂ,Ïrà%œŒ”…Ê0tàùë[«‰Ì OEI,UŠÕzŵ]€CÚ¹º»yj E–c\Ç%Hbms¥ÕiLFÓ{^ðìí3 A°ÝkWkeC7o\Û¨»Ü¡iªT.Ô›uÓ0«hÅ÷Š"×·VKå`þ)sÀ•¹J3IQQ]¹xm}kp)w®ÜDP¤1™¯¬/MF³ÝýV§y¸w„aØÚÖ ‚ i’6Ûue¡Þ—>ÿp«Ó$A 1ÓUŒsÀo Çñ  ’PæÊx8©5ª$I²<{¸{|õÒõ­Ó†fVëU ʲLg©M’„®™4M!âÚ.dz†íîìßq÷…Ãý“_øàÏ;¶™fùC_xø{_ÿêµÍßó1mvišÁ0|úüv¹Z¾N`]×C¤Þ¬B0l™6H,¡iª»ÒɳŒ ˆ(Šò,C$BMÑ;KmQEIÀq,*ÆQ½p ÐIžzür©Rluš¥Jñp÷X.Jý£ ò®íyžgYÎbºe‚ Û´ÂcÛ²mËe9Æ2_Ô[µz«¦©†¡Q‡S@3œ OŽ 'x43,Ó]êt–Z¶iÓ,3Ÿ.@›åÓ°ÚÝ&€ì0 ÝhÕ?äN*H®ã’É[è…di å9dz8£j[6E“®ã~Àr,Ë2“Ñl1SŠå"Ïs8wzíédæÚîc?é»þÙÛOÇQ<N–×zIƒÜ\]3Ö·×ò<'ý£àh3e–ç¼À]~â*ÅPgΟB0Èþ¥ÔSO=õSïxû|1β¼ÙèüÌ»ßsæÌ™gú ¾Ö*UмÀQ8ž¥Z’E^`YŽyñ+îKÓ¬4p¯³Ô®T˼ȕÊE¹(Ëi}kE’Å¿üó/Q%ªÑªS458Jòsb (Š—×zqã>›,HЬ5«[§Öïxö…z£A@GR©• ÍȲ|c{µÞª« U™«ín+Žã$Iò£\”xŽç?$HB†³,ï-w†ƒñõË7|ŽM³l}kÕu=€ ß¹rs2šv—ÛK«ÝÍSëaÚ–ÝîµæÓÅ™­S€Èì6O­Ï§‹$I¤‚TªA[qû즡›8†¹®‡É)IÓåµ.EÓÕz™ ðí3›³é‚x–ch†D¡Õi¦IA«ÛXY_æEœ»€ó <-[g6€f:™gYÒ_~ð‘ÛïºP«WÒ4ËóܶìþñPy†a,Ëa8†áÀi†$e;uHŠÜ<½qóúÞàd´²¶”ЇûÇ(†‚,Õñ`¢©:€¯o­Vë•J½²˜)û7NŽÓñÌÐŒÀöŽÖ¶V %y<œ\}j‡Øîr籇ž˜Œ¦³éB.ˆ€ŲLEQ{®§*:MSžëµ:MÇò<¿zéz»×ÌÒ¬³Ô†8ISÛ²qÏó§#²Oš¢ý‡w}èÆÕ›¯ÿÑ¿ô;ît]ÿ‘w?ðÀ‡–V{/û¶o†aXŒ"C3–×–íº¦h Ë 껾çz‚È~¤é•‹× \^[*WK¥rÊsÏóÓ4#iJSuŒ“&i–¦Aðb‰¤ˆR¥h–¦h¼È×[5’$­Ú|º H\W0 Ó4ã¸4 hÊ4­BIÎÒÌ÷ƒîJ§P*LGÓùl!JB­YKâ$ðC C!J“¤Ö¨$IR$Hú,–‹iš,fÊ…;Ïð;AäØn±\ I(׳,s‚áéxÇ ÍÒ ‹ŽáŒ šª/¯ö’$ÅqÜÐ͆EQì8®$‹¢, އ‹™rûݲ<$$‹’Am:,ÇlžZ8ÙÀú¯á¾˜)êB]ÛZ… D6ôW7V–×{åJɶ’"€ò~ucF­ÓëÃÁø¯ÐŒ·x ‡ÃwÿÌ»¾øÅ/üÄ;¿çÍ óú­OüÙ+¿û;ï½÷ïø©Ÿn4Ïôþã%D‚)šT”çi–ÉEéÎçÜÃp¥V>>ìK©ÓkEqœçùt4Y:ºªëšé9Èó )Ò¶le®K2ŠbI’ (,gÀTª ß:³ø¡ïAºéyŽãy–™†åØN©\`Y&Mu¡MÇSA]ÛÕUÝuÜ¥Õž®“ÑD.Ê |z2žíÝ88Ø=juš½•I¤Eކ]5Ò4½ûyÏZ^펆“Ýë{rIB×ñ²4 Ãp4ÿKé7ô!èí8òßúò·=ðÚW}ß‹óúä¯~æe/É7áÈÏÆYë™>¼¯¥övö—V»Iœ€7-Ïñn^Û½Çva¦êÔÙ­,ÍlËœŒI’~Â0ðn2šY†i[n’¤qçy®,ÔÞJ—¤C3=Ï÷<†ae¡î[¦ $uª¢a8PKŽxlßóQPæjžçŽ ¢p¼\0Ød<+UŠk›+õf]× C7Ã0R檡›­n³Z+ç9$Ä•Z9M3 Õ dI³ìi‰`ÿxè{Žc,Ëœ J•’eZÍv¤î]¾ÂñŠ¡'ý8ŽŸý¯îÊÒ4 ¢ãÃ>ˆÃ³L«ÑªË…8NXŽ&¾ç7; AmµàÊD„«Û–³²±dvµQDá`÷0‰Û´†FPD.H/zé½wßs'Ã2‡{Ç«K¥6‚ ®ã ’PoÖV7–ý‘\:K­ùLq,·ÑªmŸÙBQ‚ Ó°ä¢\­W4UßÝÙ74£Z«€‡«¦Ê\)WK0 ëªñö—=ôø+_wï›ßó£ë¹ŽEÑ=/ÚºëykŸøÅÏ~àÿxêÜö]÷<ëÔÙ-‚”¹º˜)ínÓÔ-QβLý*ÅP’"¾ôà•,ËQýd‚ % U³<§( EÑ8Š£0ÒU=Ïs†cËAeÀÀ<׫7ë8×U˰i†^^휊r’¤‹¹Š¢(/šB¥ïzYAŒ¢H’EUÑQÃB±<{ãÚA0‚Ô5@¡žŒsUS´­3›y–~ˆ8IS®ãBÁp­^Uª¦êG{Ç ùµP”Ã(:9쯬-wQ-Ó ‚†aß €J¹ÓkÑ øÁ|²(”d© ¡(2ÌÔ…zúü6/py–ù~pýòq³ÓâÏíµR¥¡çú€PÑ[é,¯ö¢0 ܵ=Žç®\¼ª*:/pÊB‹Â4oå²mûÃÿñC¿ök¿ú†ü–/|ôY–ë¯yýK¿ý•÷þŠ„K IDATâ‡÷žç=çu¯{ýÿØ¿å8î™=Ô¸€%ŽbÃtͨÖ+a¦ixþx0Š%9˲ÙdNQTEá+–a›Çs…RÁÔ Ó°®UÀ†ÕµÝ•õ%Š&?œŒf–iOGÓ(ŽuUÏsH’Å(Ž‘Wª @´ùÉ«ÕzEÌþÑ ‰“í³› _oVå¢||p2›Ìg“9”ç^ëÜg¦£YàŽíLFS`àEÎ2mŠ¢&Ã)Ša…¢„aI'Gƒ¥ÕÞàxT(Ê£Õ ê–™eBdYÖ{ ÒÇŠÒøÛvÙ׃uèûþõ+¾ëèÑà/;÷Ñÿ÷û1ä­ºÉóü-xüõÇä]?Î ÃкfÄQ A‚"A ’$ÉêÆJ'4C§iJÑŽcŽã<ÅúÖjEqœèªŽøÉa_Wõ$IÃ0ÄqE8I²4‰^q "ï: ‹I²X°87Û•õ^©\ ü0 £Ålás¬¦óÙ‚ Ç~2Ïs¹ ai’6[uÀ œ Ž`<œÄQ\­•³,§Ša˜b©€¡hžç'Gš¡ ²MǶœBI–‹òÙÛNûžŸCù|º€xi¥Ûî5fµ\-5Û05Õh¶«˽åÎd8…a(Žãビv·‰ Hw¹c™vže ÃQ498BTkT7O¯O†SMÑ*µr­^%)b1Sz+ÝR¹˜&i¡(—ÊÅÑ`ŒaX',Çž¹pÊ÷Š#%×õ@ګ븂(žÄ ¡ú!'p¥J)ŽŠ¢XŽ¥hAÀ öG¦aµºÍÞrg2š…aˆ (ÃÒrAJ“¤Þ¬=þÈÅÿô¾_¸ç…§~ës?ÕêVLÃ"ªE`T-¥0ˆ¾åÕw¼ê /øØÿøûïyÝ«^ò¿½¤H‚`Aä+_z¼Z¯ìîì¿èå÷A„8ã;}n†a?ˆÂ(&c`„åyV™«¼À!ze†nêšÑl7ÚÝ Ã†‚ UÛr%Ù#)i2žÍg ò,£úø°b(ÃÒyžï^ß»¹³ßl×)˱] 9 ðÔ¯TË{Ç’,R4ø>IÇJѶœ«7£0&ñÞÿï¿éeÏúü­Ö ë,G¿ùßó½oxñûßõÉ;î¼í­oyûk^ó Þ‘£ýG+Ïó8I”¹Ú]î€LìãÃ~ÿh¨Ì•F«ÞîµJ•¢eÚµz•¢ÉËO^ó\O*ˆ½•.x…ÚÛÙG1”<VU†c8ŽD>Ï¡Épª.TIqgy‚ e®â8&$EBÀ0 EQ CÁ6MÒÅ\)– _üüמ¼z÷=wR4ER¤ëz¾ìîìWëÛr²,õÇ(†òŸ&©Tò,ˆbhAÛÃ0ìÔ¹-Ûrv®Üô\Dû~pùÉ«àUE‘ wžyÚ*öLÏ,ÿÎõ8Š>þñ?ðc?ü’×½âK¼¶V/BÝ?tÿýà ö=ï~+½ö/}ï;~}½(Ýÿ‘_xÃÞ€áø-rük}uc¥Ñ¬) mÿæáx0®Ku¡»ítšö ::8ɲ EQe®‚ZµV.UJ“ñÔÔL]Õ•…Úéµ·ÎlÈEY”MÑTE'IBY¨åj¹R-a8FDg©…8/ð¢,¤i¶uzÝÐÍz«úišZ¦EÑ”ºP³4kuËë½Jµú¡m;+ëËØ]÷ÜQ­W®\¼rÇ’$…¾E±²P÷Ž%Yd9†¢È?øo¼¾µ æy’,Îg UÑLû¨BIžO¦aÎ' ÇzË4I¯]º>Ÿ)i’Œ‡S’"mÓÖTc1WMÃf9†fi𥧓”ç,Çø~0›Ìó%EÑÉp Œn(‚¤Y:Ns¥P*8¶;NOŸßFÄÐŒb©PoÕ ŠÂh6×Õ(ŠDI¸òäµÃÝ#Š¦ÆƒIF•z…b¨,ÍŽûCƒv?hÓáµiÚi’ø~ åÊË¡iªZ¯€>~’&ŽSyùÉ«¿ôsÿ¹Õ‘?òɶ}fù|þ¯=eÁB£Yþȯ¼ùê~û;_ñ¦Ÿû‘úÀýÑKóüœ`·Ìϥ̕BQeѶ€H &›†•g™i;8'qB’$‚ÀŽãÂróú>È=ê¶z³&ÊÂd4s,DZ+¯+sÅu¼ówžFÀiš¶L›¢©ƒÝÃÓç·qw7ËòÀ ò<:ž±,C14˱Ûg7 ‚ŸD>Ïó$ޱ‹]"Iò‘/>FÑ…;κ™&IFÃÁ˜åYAäišZY_ë­ÚéóÛ,ËTê@_ò\`¨Â dY&K³Óç·‚ <_‚$ªêàdhÖ©sÛ¼ ŸX¹Z2 ‚øg=÷$DÓ´eZÃþ¸ÝkKe®ª ­Ö¬ŽúcË´“$%Ã0œÀ]Ç£h2ð}Ë´@ÍÁî!ˆ~¼ø•K'úž°{²> j÷Z¥iÚ鵋%y±P³,kw[ínS.H0 ¡(B’¤\Ã0ÊÒ4ðCß ÌÈJ’äú•kiÛŽïrAzòÑ‹Ÿúäïzžýcïø¶íó­(Šu̓A8N€dzØu—:¦aæùÓ–AÆúï|ê+‡¿ð¾ÿû¿|ü“¯øŽ—qW(Êabvñ±K˜Ü°?ÞÛÙ÷}}k5 "AÀ&5IRÏõ?öÇŽãb( #P/ϧ ǯ]ÚI“”e™éxn™¶¦ègo; ÜÀŽÍ¦‹z³Ær Aà„h¶ëÓñŒ¢É(Š“8¶mw>™‹’XmTIøÜg„a8ôÃõ­Õ<Ïg“ÙC_xáSç¶Çí­tavlÜM’¸qm¯Ö¨dY6›, ÍÌ!ˆa™õíµR¹`YÀ÷ N†iš…~¨«†ºÐ®>u½·ÒM“4J£aÀk´ºM°«(åZ£Â°ŒTv®Ü@‚¾òåÇ ƒðÌ…S,ÇZ¦Åqµ^á–ah†—×z4C]xÖ¹ë—o "JOgWáÎr,Š¡“ѺŠHœ4}þÀ_÷üÝö5þ­Sg—ëxðÏŸø©·¾åç?Ú¼…Qåjix2–d±Z/ó"wåâ5Žçä¢$Êbµ^‰ã$ð y\Ì•j­rÏ}Ï ƒðò“W¥‚DRäésÛA,¯õ¢0BQĶlQ\ǵ-›¤HÐÙ+—‹b¨Š68ñ"_«WtÍp,·X.€ÜkE‘ï.w%Y$¡T)ž»ýLÅ(Š˜ºåûP5:Ž—YöÆö*IQaºŽìi’}h¹R*• Š¢(„ä‚$¥<‡|Ï/UŠåJ ¤7®n,ÿãÿ5ߨzâ‰'ÞôæWÔé{^¹ý‚:ó5áés+Ÿ~ÃùÏïkoúw?òÁµ?øŸ?þŸûPÿIÅ Ülº`8áR¥¸yz½ÝmZ¦M1ÅPÊBÕUC*ˆµF•¢©áɨZ/_züÊÞ $M³8Žo^ß‹¢h6™öó,[ÝX ÆIœJ²c»óÉ|og èz+A÷ŽGv÷ú~³S7 ³T)]}ê:†¡Âš°˜. ÒU}p2Ú+˰Ò4»pçY¬Õi"(ºqjM’ÅJ­ ‚&lË&I¢Z¯¤iG1†cÅr!MÒrµD’äÒJ×ó<7mÓ†d}k‚ éxžå™\ŽöŽMÃÚ:³ &"¼Àw—»Ý¥6Pa-¯v‡ƒI–f4C£’çùt2¯7k…¢\oÕç“9È‹¥YºT)Z†=MXüz³† G󩆱$‹åji4œôVºRA:9ضC ú~&)†cºfˆ’P*aÖTƒ¢(Ã75Eƒ ˆ¢IC7§ã9ÃÒ‹E&ä¾ç+ µÖ¨^`êÖáÞ1‚ ‚ì\¾ñð9:8~ýä9÷m„AhVÅqgyFMSY–I)I’BI¦hÒ6ÇÌ8Ž“»Ÿ¿}Çs6~ÿwúÄ/þÆêÆê˾훑÷½ÃP^ä¾õ•//ee®*såY›wèª~æÂé$NŽö!ÂpŒxŠ&ÛÁ0Ôu=×vÃ0Ú>³álºØ>»™&i»×4 +˲Ûï¾Ðî6Õ…†áhò·ºMI5E;Ú?nw› #WkTóÞ?™Žgi’2,c„AŽãNFYšÂ0¼º¹"ˆ†¡aY¦ã:îÅÇ/'q²»³ï8®eÚ–i‹’pþö3Ýåv½Y?:8IŽí0,òŒ¨+¶ %™ÀqßóLÃZ^[j¶0 ì²,#JNàa‡“ÍÓ€$Ð[î¯/ðãá$MR†3Å÷n!'Ïß’8Cö×^0 ¿àÅw<ï¾ ·¦0jog:žÛ¶ÇI–e–iû#Ïõq%AYhyaZ(É,ËTë•ÁÉP™«»;ûî<AŒÀ¼ÀçyN3´²PuͰm§R-5Û e®ºŽw°w\(€HA‚ò<ŸŽçåj)K3à°!T¢$$>›8 * ‚ ñ`â8.AµFŰ4IX–QZÿh°}v³R-•+%ÏóAãÇÔ­J­¬©úb¦¬¬/³{´}i­PP³ñl2œjŠ~ñ±Ë³É'pèùݳÌþÉÉÛò­ñŸÛ¯}ÕÉ#è»ÞAmó ê¯ïeÿæ:|ÿý/„ ç¿ó§?Ù¾íe/É7}Ó‹ögÞÛj·ŸñŸ |Q«Wã°Þª™†E’dF[g6hšºqm¯X.@/p¾ï7Zµb©páYçX–á.Žbßóã8¶-·X*,­v»KÐÕhw›œÀÑ45Ÿ.€‡8u¡¡(B8Ë2€ Úê4=×£ŠãØ,M ’HÓ”¤¨ÙxæºÞ]÷Üi[öÁîAØêÆ2‚ (Š0 íº Ãåj 'pA*µ’çù Kó<…Ã0œ,¯v5EWæ*E“•z…åY ˜M’Ô±\e¡eYêØŽëz=ôÄl2ß<î%Óñ¼Ñª1xþþÍÃv¯™f™ pÊŸg“ñl<˜A°±½Ær¬eÚ8އA Äv·†áµK;'‡ýKO\ªTC3uÍ(• išºyåâUД%A.Ê@¢…MÓÃþÈuÜV·¥«z³ÝýAQ†MÃƸ$I•¹:Ÿ.(šl´¯¬/åY¾˜)§Îmq<÷Ÿ?ú«_~ð‘o}ÕÝ?ñÞ—ÖeAò<É9 É¢¨ =×±»‚À¾ P™$r‡<×ûÖW=÷;¾ç_ýί}ùÃïùÈóî{îë~àÿÈÒŒ¤E)Š$I¢Ù®¯n,# ð® ÂA0Šî¸û¶Ý}†¥;KmC7ã(Æ0¬ºTAÄ2mš¡(Š"HœãXǂղlÃzËË´PœŒ,Óî Ž™Œf(†ÎÆóR¥˜e9P`©Š¦©z±\$~ûì&/pÇ'Iœ´»MÇq«ªT”P Sêt4Û8µ¶¾½f/òK«]†w®Ü¤h D²CPÞî¶Ô…6Œ E‚òS綪õÊáî‘mÙ4MWëe`ñ²-AÐþñ ÔçxñN¯]kV?Ô Î’$õ]?!@¡(r2šR4•&©²PGà †arQZÌ•8Ž?,WKq£(šç¹c9àíGye®Ú-Á1þû$N_Gazk £ÛëôZí^Ë4¬ad™öæ©õz³Š¢Ø|º4VÀ”°-‡fßõLÝ:unky­‡aèoâÿ¹ó9·™ºeÚ£þX*ˆ¶éX¦Õ[é "¢ˆiXYž]¿|ƒ¢(A”…fhA¦nzžïØ.AàÏåYæ9Þ|º(”dS·ùâWtÍ\YïA|ù‰«µf•ã9‚ÀW7–mËv¯Ýk"(:LŠåb¹ZÂ0T”„$Mq´â,†Ã Ò}4«ŠV(ÊožZËåzæg––e½÷moùØêÒòûý¥_aßÿ>Mÿ¿OÖ¿g{à]ßwÿýßuóW?òþO[î~ÿO¾í­¶Íóü3>£u— q@ç•d‰ ðf»Á œ¦êI’°Ë I‘q›š A‚"žëÇQ 4¼(†‘¹´Úó=oe}™¤‚À?Q%ŠÒ,ƒ[ÎÒZ$ÉBQî-wÚÝ&Ã1¼ÈWëà—­7k0­n,ï\Ûí­tkÊÚæ ISçn;=8êªÃ0öåv CUEgºÕmî\¹ô5‰3 `œÀöÝ¥¶¢h»;ûf-ÏóÉpÚýÑ|º  ‚ Z£šÄ1‚"YšaFR$EQ'GÇ䢬.´$MOŸßê.w³,;Ü=r·P”­z­QÕUãö»Ïqé‰+I’¢P,—V»»‡µF• ^àWÖ{V}6YTjå(Ç£)AwÝs§mÚ Çø®Ÿç9ÁóɼÙnX¦¢ˆ(‹Õz™ãØBIÞÝÙü »Ô.–d‚”…fêf£U—d‘¤HEËÕˆfãîsòàg~ÿÏîzÞÆoüÉ[ŠeÃH’Dš¡’$Íó Jy‘Gâ(ŠtÍp]/ £8ŠGƒI¹RŒÂȱš¡QÿÞ7>ÿî{—í#þo¾çÿúŽWû¿zásyÛ¿yxóú^–åM£(bèæòÚ’ïùIš$!7mßó’8Ä Ë±8ŽÃ0œ¤Éb® :NDY\Ì`ðÆ©Éhjè&ðÿ~Ø?¢(ZªIŠŒÂ|‹k—o,¯uyGQ¬XftØ5²šeZ8Žiоwãàö»ÎKE$Y ƒÇ0Žç<Nj¤Ò4 ¨¦nÉIùV§I8†¡Ê\m¶I’Ò4n@g/œÆ |iµÇqLšf¦nš‘e™m¹VCWõ$õ– ð4IH’órÐ?À0L×L†¥? H¢ÞªEaäØ.”çIœ¤IÚîµ²4!Œ¦nfYF3ÔÑþqo¥[,Iø‡Ÿ ÿÜõJœ¾¾º…Q+KyžŽGIœH²H’IMÙ¶c™ÍÐþÔèì$I0 km®Ø¶[*`¶mçìm§ëÍ*Çs“ÑŒ¸»î¹s:™~‹(‰¶eŸ½íôòZÃ0ßõvªõr¡(¯®/…a4›Ìƒ äN…j½ Am9Ëk=Ó°önxžã˜(‹­N†á4IfãYÇIœô†í^; ¢§»ì:Þ ?ªTKžë;¶Ãñ\¹Z<ðDI¢EÑ<Ëg“9hÿ@ÄÍÇ37³Œãøãÿøï¾ÿ%¯¸ûK'¿]ûå@ïßߨ¤BÇ,ö]gï¿ÿ­0ôÚ£ß|ï;~}}cõþŸ~à oxöŒÎhóßù(ø…~˜gÙÉQ¿·ÜáÎÔ­ýë[«Ó0Ò¢)0ìòÑKQ¡,´j½¬ÌÕáÉh}kÕ4¬ñ`bÖÁÞQo¹#¤ÅLñ]o2ž]¿|ãÂç ˲ë¸Bœå™ëxÊBåyŽ p€sÈø Ç#C7© ܽ±G±ªèÕZ;9ð<7Ÿ)RA\ZéB@¯q·º£ýe®2 CPiz®·¶µzþ޳Œ<Ï”ýÙxö™ßûl£U[¯®‚¨E¹ © ¹(!\®Ë•"Š¡,Ëèš9NÓ4­ÔÊÏÆIØßQ!zúÜ–T”¹ÇÉÒj†¡ùT &¶åË…z³Ö?Ôµ,ËA\«çù¶éQkTyÓT£Õm–«¥Àl«€áx£]ŸŽQ]Õ-ÓÎÒ @+õr©RœM憅a¸sõf©Rlu›û7¤‚8Növö3åÁÏ~¡½TøèoþNfÕF¢H#Iò,óÂx1[p·E‘ïùµf-:‰Z&ØÆIBÑ´ëŒïSÁÉÛß÷Ý[çšÏîÝ8ü† †¡ƒ Lâ˜eQó<ŸOÇE2,CÑ$È|ƒÊí<Ï ¥AIœÔ›5A€ý Ã1×ñÒ,£i*Š¢ZSøùÿúƒ?´÷wþ·/|ö‹?ò–®Eªµ E“7¯ï‘3ˆ%'I²·Ò¥( E‘b¹hÛn¹Z’dEQÛ²–DZÝ}e®^½t]”Ä0]×Ó°–~ü‘‹š¢o^§hÊÐLI³4Edس,8ûyž‘$9U¦f­\-•J…(Ž'£i­YÍÒÌs½(Š!âxV]¨‚N†…¢\ª”öoš^bPíôZR[&‚È/æ Nà¥J EQ¥h AQp£Tæ C¶åK2¸OQ…ã˜$‹‚¨ 5Ž“•õ¥rµAPàùÇ€w¹ †a¬ÌÕR¥(ÉM×õgZ’E0Ü]Ì”4Í4U?sáTµ^Qý¹#|}§¯¯naŽc KÇq¼´Ú5 Ës<A_Zí)s‚aE€µñø°Ÿ$I¡T§yž_¸ó,‚ $Mb6LVÖ—5E›O0 wzmEºñÔ¬ IDATDI<}~Û÷ƒZ½òÄ£Oµ»MÏótÍ ü`2œ¶{-‚$3‚ 0Ý')ruc…å˜ãƒ>Aâ+kKÅ’|°{Ô^ja8ÃPÅg.œBQôÊS×*Õ’Tpk´ë ÐhÕ,ÃÂp\y‚f“NàAR©):E“ÀaðïúÇþV'¨þ™å?þ¦7ÿ¸òÚW¾ç·xÁ‹ïxzýþϬŸ>·òé?{ïçÿô±7½ú;?øÂ{?øŸ&f´ÿòa¹ .¯-}î3Vje0¡ŸO(†*sÅ0K/– I’îíìךÕ,MjÄs}‚Àü ðÏñXŽ)UŠŽåî3ã¹> N (êÚî|º8>èol­º¶{r4p]Dž H’(•‹'‡ƒ3¶Õ…ZoÖaju›qÓ =Ì1°÷ú+ `÷”ÊË´o^ÛÆy–ßuÏšj(sUøz³ÆpÌÁîááÞ1dz C“$!Êâb¶(UмÀfivæÂv±Tð=Ÿ9†‘OÓôøà$Ú‰—V» cJà¸ÐªÁ Ã4CJr–e•zÅ4¬<‡’€aØ2v§AÑ$I’†b8DóùÙ/Uëe Ç@ÂÏîÎ~o¹DÈãÁäèà„¦iŽg£(&)r:žµ{-Ïõ€eªR-gi¦ÌU“DR$ÀbMGóßþõOíÝØí¼à»þÏ{]ÇKâDW ¤Š Èt4 ȸRµ„ Žc‚( (‚¢(Ë2I’¢(,H<ÈÕ"H"IEÓ4uÏ÷|Ë0MÔd‘Àñ8ŽDž¢¨ç¿øüÆéÆç?sùÿö]­në_ÿðë×·V¿ð¹/³+ÅÐY–Q4ɲ ÍÒ¢$@y®©E“<ÏŠ2 CÛ–MÑTÆ‚ò"Ï ÜmÏ:LŠ®ë:·…È?¸óÙ·íîì÷V»ÇZ¦ÕYêÜùìÛ<×»úÔõZ³*<Ã2åjie}‰f¨(ŠVÖ—aAQ´ÙnÊÉÉ¡·´ÚÅ1 †¡éxvúÜ:˳8Ž9¶»qjÍ4¬åÕžc»¦aY–sr40t³·ÜaY& #¹(Y†í{Ažçºf` ì“Ñ´X.’$a[.IYš5ÛuœÀã8‘ Òx8Q­R-eiútªÈÃ0잌tÍdºÙiŠr­Qþ¥ÎR{6™cZ©•£0D^’%]Õ–Á úÆÖÿ¤Äéë«[AN9e®*s•娋vmËa9†åØv·†QèyžßuφI²8ŸÎ;Kf»E1Ã0œÀŽG$‰÷–;Óɼ֨Ö[µÁñÈ4ÌÀ(Š\Zí!(ZoV«ª2WEI$)²ÓkçynhÃЕZ™b¨f«.åþñXžçâ8ñ<8oŸÝ¬Ö+yž“þÑ`ØÙ¦“g9EÓišÞ¼¾GÓ´çy€Š Šå‚çúª¢çYE± ñÀÎ&pª¢É ‚¾¡³Ø> ¿ý5¯~šâôÙw¢ï~7ž²_ÃÌõë^‡aø…üñóð41êû^ó³0Üú†ÏhËÕrņnV]̧‹ãþ$‹¥J1K3© ­o­ŽG Êøø°ïØîé Ûi’”+Ep'qGq»Û|è Ö@XÍ& ‚’8‰ãÄÐLŽç@ÆE¹ZâxnïÆ×Cd&Çs r}{Ís=^à(šüâç¾<ŸÌ9žaX'p]5 ê.wNŸßŽÂ(ŽbÇIŠjw›`D×[éhŠVkÔ'ÃJ­ÜYj‡Sðƒ˜º‰x§×ò\¤H^à@ò ;ôqOâä?ôñÿü‹ßõÚç½å}/#HÊ!×ñP%±Õi‚i©(¹¶‹c†¡qœ`j™ÃІ!‚¢9Œ qR4ÔLa§IŠÂ(†¡¶ekªQ©– B14 C0¦Êò,ô"Êï}É©{_|æçÿýï¾ùÞvÏ žÓj7ŒK,ˆš¢~Á0Š¢¦njªÞ?Í08×Ô… AðÑþ ”ç”Gat°{ÈñÇsA€i%ŠaãáAQÇXŽ-—‹a/¯-ô´mÙ(†¾nuy–1 M3Ì|º`9'p–g€‡çøðD’Å0 ûGƒ4IYŽ©5*aêªa[Ž òÏ¢úÕ—‚¤H ǪõJ¹Z"pÇ0ÏóY–aÚ–a!Êb«Ódñú•›†ñÎ4,†e’$™Mçõf­ÕiôVºÇ‡ýQìØ.EQ©ˆa(ˆL@ıÝÅlQkÔÒ4'¥JISõ›×ö‘*?Qä×ßúÿQâôõÕ3+Œ:>ìOÇó£ý^à\Ç}ì¡' ’(– Års¹Žäiš‚K†a™þQßu\u¡ËEe®ô‡µf:yæÉQ?MÒJ­œåù|¶ØÝÙ—aÇ+ëKÓñ Ç1CËÕR'c(Æñ\'I{ŽGÓt𦆲,EqžçׯÜTæj«Ûì­tw®ÜÄ üêS×ön:¶³yj‚ 0û@Q”¦©Ñ`||ØŸMærA‚a‚ò0Œ®\¼„6žë ÒWyIÿü³I †ß‹Â+Jo\¥ý¥_yúû§Ï\¿îu £^ý¼ÿSçŠÒ÷cÈ[ÓœÿFÍhã8Ž¢èÊÅkW/íð†Q¥Z&) E‚$,ßü°P’÷nض“ÄÉÒJE‘F«¶˜«qœ$É \¡$§iÆ0t–¥rI ͼôøåÕ•éx:ìO&œa†eÆÃi½YE1´R+§iŠá¸®êA°<Û]j‡aD3” $‰šA’¤mÚ0 c+kKv]׌z³Ê0t½YDÞq\MÑëͪk» Á´P”Ë•â]Ͻcyµ·´Ú[ÌEQ˜Nf¼È<~…¦éBIœúþQ?KSUÑÛ ü€ pŽc•¹Òê4(šª7kÇ'¼À#Œa8ArA<>8™Oæ¶íîúEQ$Êb’$ÓþxÿæáÞÎ~šeiš–*ÅÀ¯_Ù±Lk1SØå©Ç¯¾¿ó°R«„a.We®œž”*%e®<õø•ËO^íôÚ$Eø^$I±\ÐE‘éxþð}ø ßùܵü׳ºÑžŒf¾çãDZ\(œoš¤ãÁ„¢) ÇÓÙu<˰€ E–c’8ÑU½X.в>g9ˆÙA1´V¯bœ¾Äq‚"ˆm»<H–åO½þG_üݯ¿÷w~å¡O}òÓ÷Ü{Ïö™ÍBQÆ1, £ÅL;ï4ÍžõœÛVfè<Ë bXZ”…ÅLql—xe¡á8βŒïúË.HB¡T`:˳k—vxž•KòÑþqÅšaÛAàŽíÍgŠ òq’àvõÒu’$×6W4E$áùlaÖh0î.wXŽé­tÓ4EÔsýý›‡…¢DÓ´¡›àÀÒ$a¸·ÒÁqûÌçT:5öLÓt·\Ҁċ8›P"1O¢ÆpUÄ¡ '¢ˆŠ´ñª¨Ñh| (’( 4=Tuu×têLûìy\ó<Þ?Þ²Å!¦G†Üß§ö³j×>µ×^û}×ûþ¾ßÏ× ƒPy–c1ó]_Q%†A|=Aƒî°×ÜyïíT$IÂrÌÂb# #ÏõË»½ßI’Ø´­:†b€š’$ Çs–åÜ"A¾ÄõIœž_}©„Q`—¨Óî.¯.NFS`¢h´ê¼ÀÏ&3‚|/d±R+÷:} Ã@Ö¬$‹K+­h¥Å°LE¼Èke•ahÛr¢0B„¢¨RE(Š*ã8¶smwms5I’ö~G’Eß @æiX<Ϲ®7Ì¢0úôÇ?Çr /ðCÛÑgº( ’,‚54 CZY£øÜg8eXfuc%Ïsš¦Ç#IÇñ4Ë–Y+«Ãž( k›+† zCŠ¢Ö­¥Yj[Èy©ë–Ä G:¦}æcï»EqúËÑoç¿úWo}Í»^ýï7væ~ø-oyËáë¶û(Š410ö;œÀmÓV4†Imii¥å{¾(‹Çú¾øáÒJ«TÑxžHyyG3t†8ŽsID©¢AxÏ}wÂìXÎ|ªû#ÇvAmym hŽf“¹ °i¦Ï E?$~Ðâ8®h ÍЕZyãøÚÁ^{oçÀ6mNàLÝBPÄu<†1›OçIîqƳ©Þl5<׿~e§TV³,Ïó\”„ùtž¦ÙÊÆ2I’$E ºÃ,ÍÚûE•=×»Õü[^ü ^à”fF}îbQË«‹¥²vóúž17—W‰o,Ô:,ÇòëÚÞ\úãÿöáÚ‚ø ¿õ¢Lâ8–$©ïùMÁ0 C°ïù(†Æq2Ÿê€`†cª¦äYæØ.Nદ°‹ 0 A ¥ †að:IÀ0dÛ.Ë2@³ã¹Ø AÒ4óý #ŽcaY‘z÷·ì\¹÷½?þÇ~à'ÞúÝo9~bCŸŽåyÎñl³U'Ü÷ƒÖRñ<Ëó<_Xj*ªL„( ZYcXFV$Q,ÃÑè¶å.,6†NÒôe÷ßµ~lÕ2mAëM¸rµ˱¦nm_;uö`bœ:{âÑ¿~B’Å•õ¥½ƒÆB-IS^àWÖ—À&˰é¶{—»œeÙ‰ÓÇà ŠÂÃ0µ¤¢(¢h I‘Ýv ð^§o[®¤ˆýÎÀ÷|S·$E$œãÙÏ}êÑz³æû¾eZŠX†½{c¿TVë 5Q¹1MEYˆ¢HÑäÙdưL³Õ¨/Ôvoì¯n¬,,6<ÏG`¸Ú¨:¶K’$X°¼¶$É¢¬ˆÝÎ;¾tõE8=¿úâ £ZKMÓ°*µ²¤H’" ’°¶¹â{>Ói†®5ªÇ¶7g“y“Ѥ1A˜&‰ëúë3½×é ’˜¥Ùt<ë÷†«+{7ö;í.hr‡Ц½eEÛ=:è@#°c»GݵÍ ÑgŽc`dPKÊÞÎAÆyž7žãáGñÓ—®t6O¬Wë•8NêÍ*¸·6ÍÐ ã8¦ÏMÐÄ0,I‚¶ÏlÕ›U}ntÛ= `„ —ª7YÅG>ò‘ïûþ·-øã[§µçú¼×õ}ÿùéß¿ryÿG_÷¶[¨׼†á—®G+J‚ïÇ×?ÉÙLÇS†! P‚v®íeiZªh‡ûGkem<œºŽ;ȇ€›¨ÏtŽg!¢iºÖ¨vÚ]×q«õjµ^%¸pCQÔ¶ÝЊ¢ˆ“DV$ǹ±}ú¸m9qœÀ‹a0‚dYÆóœ(‹4Ã`·¿ì\ÆúÜ I²¹X‡a˜¢É(ŒÓ4+WK(†NFÓrµŒ¢(Ã2W/_ktÒ4Ógz§ÝNóåµE^à«õ ‚À|ú±ÍëEÙ–“eÙ|ªÓ4%H‚iXãÑ´w4X\Yh.6lËÖgF¹VD>Šãöþ‘©› ›HÓT£UߨZ—dñ`· ”~,Ç@”ÄIÀV8Š"ë 5’"ó<¯7«²",ªeØ“ñtqya™Õõ%’"ÿù^ͲÌmwYZ[,ŠByÇvg“ÙïþÆïù¾ó#ïùÖís­8Ša¡i FàÆBðT[‚  ˆ. B-)I3Tà‡¾€%Zš¤ŠøAFqœ~Æš¡a ý¤ÈÀã(fØ8 £(Š%E"IÃ0Ó4E14I†ó<÷oëôòÏ}ðß\~ôàò׆ûÚo~}©¢–+šï½Î8qöÝ4Í:‡=AHŠÆÀ|…¢H’¤,Ϻi™ŽVRÒ$5 äWOÆSÇrã8f9¦TÑù¸‡ƒ±¡[4CQéy>IEQdY†ãˆ›Œ¦iš™úÜqÜkOÝÀ0 Œ,IsÈ£Ò$eTE‘ùTôGZI1uK-©8ŽûC†gÌ<Ë2†c?ô<¿ßFaT©•DIÜ¿y`›Aà«ëK–iƒAPVåÛî:ûÄç/»ºz³b-\Û[Xl’IÄ 7ŠãôidUBQ¤Z/ϧóÖr´ |â ½dõÅ”8=¿úb £²,Ù…išt–>:è&I¾†{;‚ăØéåÕEÛvò,K“ÄÐ-ë±·³ï{> Â(Ȫ„ ÈþÍS7à *WK“Ñ”¢©ùT \C7ã8N“T-)ó©¾{}¿Ú¨Tj¥Z£6Ÿ­úá^ûWÝwîÎÓM9– AÐÙ;O“édVEF‹+ ‚ij,¾¿ª&wÚ=ÇrÖ6WÛå‚ #ŒÆƒ±ã¸,Çdi:M‡ýÑÊú2†¡vñ`O^šÞä0ü¶î›ÍG?u;õàoÿñ­ã/vÏõ…ß>½ú‡}üßs‹õ—Ÿ<ó’õh—×1+WJú¾O3”$‹€ú>ŸaŽEŠS©jòlªS4‰ã8[feE <ÏóÎawiµÅ° †aúL“ĵ=ßó)ŠšMæÝ£ $Æq$ºúLÇp¬½w”åùh0Æ0 ûÏ?ý°¤ˆ C×U‚À=×êâU–c ݼôèåédþäãO!:ÀÁ0"Ê‚c;jIöFIܸr“ùWozŽ#0|Ž‚¨Ö¬ûã"Ï×­&I*JÂésÛZY;04Ct›‹ CU’Ä ¼µ²À Ü ;̲,‰“ñ`lvš¦Ç× ‚EÐ$I8CÈJ=Ç#"Ë2µ¤EÑ=êMFÓ~gAÐòÚŠ"Šzžï{mÙŽãúã£Ã®>Óÿûþéáîá[ßöšW<´¡hÅq’°,AP‘yžS ýLB/I“Ež;ŽKQdQ ç AP–e$EzŽç{@ÏŒÇq ú`Ý<ìišÆqŒãN‚´a–e$I0 ã¸-Êó‚y†eâ(¦(òäm‹¿ñáÿøÑ=öð/|`msõ[¾í›ŽooÆQ|óúÞ}_õ2š¦ÚÐ$UŠ£8Í2Û²MÝÒgz³Õà.MS×ö¶-W+)0‚Ȳ˜$É 7ʳ\VDßó8Ž%I ÞQà¨/è´»‚ÈŠ aqûãÃý#†¡W7V@Â+˜ãA.ÓéÛOê3£×(ªtòìV³Õ¸y}ïØöæx0Ã(Šb@$Æ0¬µÜDäì§­0œã8¶ ûä¹ÍÅI’ ŒOV=ðC–c®_Ù¹~e§×èsCQåñpJRÄS¯y^©WŠ<§h²×y~ýÊMµ¤l_ƒ Ș à†á,Ë<Ç;Ø=„^‚ú’Hœž_}Ñ„Qמ¾AQ¤ïy7®ÞtmOÕdÏó»G}‚ÀOßvr>ûCš¦!&)ÂÔÍRYS4%Iö£0’iiu\3à§c;$I‚°‡r¥Ãð|:ïw‰‡A¸{ce}ɱš¡o^ß“U™ ˆrµT­WLÚŒ¦õf š¡ºí^¹Zê´»µFu:žeiª–Ôr¥äØÎ|:g9vucÙu}Ó°¢0¢iªwÔ‚Ðó|€¥5t“á £Ã1^à€ÿ aY‘Xž})ü²Nç?ôöO4*?(Œ¿ùUôĨ/b/ö{†áWþ—_¼ÿGÏÿΓý×Ö˯zóò'ÞÕl6ŸÓû}6Ç~ö'Ïnçyž¥él2/•5–cô¹é»~š&Ýv_ ÄA1¬Þ¬ "¯•5ÏõWKª$‹Š¦"_ªh¶í²<;Ï\ÇMæ'No.Ö1 ó]ŸaérµLøh0ÑÊš¤ˆIœì¶×6WV×—­z¹ªó[þ®$I`n­¬-A˜¥)‚ ØmwžÏ †EYHÓlØ…A4OOœ:.)"AEžßqϹ8I,ÞŒ&QíÞØü@”ÄcmDa”¦YǦa]½|]QeQé:¼À7ZõÉpr°Û‘) C ÇÒ$™Œ¦YšfYÆrlÇÎÌéuúæÜòè~w0è´²ê¹>Ø àyVVåÎa7Ë2C7Gƒ1ˆñËóbëä¦ïùY–íÝØŸÏ Aä+µ2†¡¶å$i*Éâá^{·MĹ;OôO>öÉÿñ©×}ãïx÷w³,åº^‘‚È£ân,ÓŽ¢4w³4•d$É,Íú(‹¾p†a’ ØA‚ E`Ž£8ÍR.@Rdç° AP–eŠ¢(Êñ,‚¢q ^Q%}f ¶d)ŠâÖs¼¢€pÇpœaè¢ÈQ E$Š"œÀ¿éÍþ__}ö7~éÏø{ßùÊW?ðò¯ºwyu‘aèÉhºópa±¡˜îõ&Š¢Øt2D¾×$Ñïÿê/>£jJžg–i7êy–EQ’&©c»Š*‹²¤ÏM†c|?‚øÀ/=þŽãëÇV†Ž¢˜ah×vã$Ù>³š^Ç× ÝŒ£XŸÀI%¼¬Hׯì@„¢XŶå´÷æ3]V$ª#J‚e9úLwˆ4CϧóÀÀzE+)EQˆ’øaÆÓñìØ‰ ß ½Qà…zžå¶i;–òŒ¢)I’ø^øNà ÎAÑf«F’$Œ ²"åEnè&P‡^úÆâJ‹¢)–g%E‚^Ôú’Kœž_aÔë¿áþ_ù…—Jæ$Ûr.y ÇÆÃÉÊú²c9²*[†uæŽS¦n¥i:›Ì)Š ‚À2íÛî:«•ÕÙdn[v¥V6u‹¤HU“IŠL’R–fqWkå0 §“¹c»¾çOÇ3E•WZÏV•J­¼´Òx)(GñÚ±˰!6tóÌí§’$Á0¬\-Ea´ó0 £QoÖ¢0zâ‘KI’;±>è÷ÚM5;×v]Û•5y:žá6ŒLÝ%Á2,–gUM6uk<œ0 }tØ (ŽbÐ9Oç.,-`þ³W„a䨮ª)7®Ý<¾½‰bX‘祊6Ì õrµÔZYˆ£Ä/ù¶åd™Ç04Žã,ÇØ¶séÑË·ÝuhU—@<œ©[ZY…ax<œ¾óú¾$‹8†ù^póúþÍk»“ÑD¾·–`šMæÆÜ̲|e})MÒõc«Ç×xŸŒ¦Žã&VÒ9쬬/û~€aE‘(Š.­´HŠ%fé8ŠGƒ1Ë±àæ´R-ñ"ïûA–fFaD’ÄÁnûƒÿöË<ñ}E¡‚ÀfY&JBDQ4…I‘³é<ðCE•²,³mgi¹…¸ïù4C‹²@à¸ï‡y^@EF14˜&ó¼ (* BY‘YŽ„,Ë€UÃÐJ­,«RFŽå0 ¡m;išÊŠ6Ÿ“8ñ3´²j[¶çù€%Ébš¤i’^|ì²( <Ïɪ\kT‹¢°Lë`· ò ÛᆠÝûÓñ À‡YŽåxÖ¶l’$<×S4ea©'ÉÁnû‡E£^ùêûA¬ ÃÀ¶dèf–å,Ïb ¢àYY_>sû©(ŠæSýÜ/ñüËJâô<ª( –£ßöÃßú­ßöлìÅFq<—gY£Y“T)ÏrE“}×W5eqeÇñ½ûÓñ¬sØey–¸Z£ AP¿3à'ð"Ïq+Š¢ßÀ’¦)Ø4{*åjép¿ãû~­QYXjŽã~gpâôq Ã’XZi¤“N»§¨’¤H¥²Ú\l\{êFÇ0 ¯¬-zCS·Š¢öǪ&ƒW­QeXæè°‹ Èx8q,—¤II{þ|¦ ¢Ð9ìDa,JBÇíƒDZ–i{ž_«W|ÏŸÏô0 ÛË/›$ɯ"ÈU´‡^w÷gžþÕjMýRõ\Ÿßñ¢(Ø ~àÂ…7þë×¾ëGscsíÂhú–$Á0ìE9?ÌŸÿV¹ZšOçÓñÌó|Žç²,“Ë1µzEyEÃ0þ” ¡c»ŽíB´suW”„íÓ[¼ê>×q—V[aš†µº±²óàÆÕÝrEÛ¹º;†\ˆ IDATŒ£0f†“ÉhʲŒ(‹¢,Š’øÔ¥«²"îÞØ÷\¿ßÜ}ßq“<Ï û‚?rAì£ò?)š´-W¹k{ 3ÅÐ$IIŠœéó£ƒIiš zC×q{Gý;î9G±¬Ê®ã‚ÍëéxÖïXŽ… ¨V¯diš¥ES¦aM'sÐXMÒ”á˜0ˆþBŸyž÷»ƒ¥•EI‘´²ª•Õ4Ié5:M3ŽçÆÃI§Ýc9VV¤(Œišrm¨¿(ŠÄ \+«ño[¶ë¸IY_¨Ðè|ªƒøöþÑg>ùÙ•õò{ûß;Ù²LǵY•|/H’D”øÇ³®íb86NU®5ª}ö‰õc«0 y®ß;ê¯l,§I :Ö8†•ÊÍÒQynj™6@Vá8.+RE®ãÂ2êÒ4$>ËòÀ6Ë2íÙd°ò/°¾l%NÏ¾Š¿³ŠªÖ•÷üÊw]¹|ð“ïøà‹(Œr7 cÃ8Ž£„{>Š¡Ç:Ž»~|Ís=ÇvöÚ–a-®´–WmËÁqìÊ“×<Ï÷\¢(‚$q,‚ á`ì:®ã¸€?NØ™®•5 ò,×ÊÒÞÎþáþщSÇ}? i*M³RY5t³{Ô?Øk7ê`7tkïÆþÆÖº>ÓÓ$m,ÔURK*‚ÀMAEá8n·ÝßÜZ—1Š’$x»~¥4O–š 9Ï‹¥µÅ$N@#,Ž“3·ŸæŸ؃,òüÅé¡»þp9Ùzÿ÷BЗ¾çúœŽßºÀ.\(Î_¨]8ÿ‹¿öŸþÎï{çÁâ{Ooÿì»î5øüÂz´qësÃÐM–cEI š ×ñ|Ï'¢R¯€;ïRYͳ HMŽã„¢I¨(NÛ>¾½É‹E“M‚C7%El-/Ȫ|ê܉Ñ`bêæÊú’(‰|úQY•9žŒ¦…š¬ˆM<»}ù‰§WZw¼ì6–e,ÓÂ0lЭ¬/%I’çÙöÙ- ÅPÛr&£iç°«hr¥V*WK$Iº®ç:nk¹ âúDI‹­SÇMŽÂ8 Ã8Š!bXze})ϲr­øÃ1’")š\­•)Š\Z]D¤æºŽ'JI5ªõ2†¢ÀÛ†!Š¡#(bèf¥Vk;1$«2Iâ’,?y¬RÓÁæöáþѹ»ÎÔjÝvß2¬Ñ`œçEµ¬ð Ãac’¦~æÂÏ9¶ùíß}ÿë¾á>œÀó,'<Ž sö=?B–eò¼È³,MS‚"Ó$uÅÐÀô¹…e94Cá8æ{Ë1ãÑ4 B‚"I’ƒ°cÙ²"‰’8›Ì<Ï×ÊÚ|:‚0 ¢¼(0 Ͳ,B×vÜœ¤ÈRY+ŠPÜŠÓ ‚PKŠm9‹Ë 0 sÃ÷‚4M ƒ¨\ÑÔ’‚¢èlª ·°Øt]'ðÓç¶i†ÖÊjÆ ‹8ŠWÖ—p[\iEa”çù3)“`DªÔÊ@F`V„0 G8A²"Â0Ü>èŸË1ýîÐÔÍÍëI’>s–Ÿ_ò‰ÇÛWÝ?›~ê½ßñà3|‰g~>S_N½Ø¿wüï\`ÎC.´ýË?óߊâ{ümß÷]ïù¹Ö{.]:óÂz´ÏscØîµ*Ö2l°õ¨¨Òx8QTøãó¼ǰ$N¢ ’ãÖr‚ Çr=ÇË‹„g‹’à:ØÕC$‰E“=ϧIˆ²@„ï³ÉŒø<Ͻa–e‚ȧI’¦é°?N’$MÒ0%EâxNQelãøšVV ÝÆ4C•*¥(Œâ8‰ÂXùñp2NXϲ|>3\Çm,Ô†½‘( O_ºÖlÕ]×öFEQDqŒ Hžç‡{G0\€‰‚¢yž­—ëx'N¿en1ñhÂq,Çsq£j™¶çz4Mòû°?ª7«ažo™‰ ãá€9Ô’’g¹13Žö;ÝNŸa˜(Š÷², ƒHV%A>÷éG/>vi<Ç÷¾úþWowzÓÉŒa™<ËÓ4õ=4a Èu\}¦Ã‚ã¸ïzi’QÄ‹<Aíý£•õåJµd[ŽçùyQX¦PŽåZ9 Â(ŠËDAŸé‚äyÁ²Œïù‚ÀO'ó8ŽYŽ¥šçYQä âYC±(Šf“9MS(†fY¡¢)M&qE±ïiš©Y'YBìØv’¤Eùž—¥Yž[g[?ÿÛÿúcüÄO¼ã]뛫¯}ÃkÒ$éuúžç'qÒ;ê'I:Œâ(IÓŒ qUSzÝNà4Cy®7ŸƒÞ0I­¤†AX­•i†¢i*MR†c|×ïõµ²º¿{HQŠa£þØwý,Ë(ŠZ?¶:MÇÃɰ?r¯ßy¾·s0NXŽ€øåµE16ìÒ4 ‚ Ö¨º¶{k„Ű˯è3Ý2ìZ³øažgY–Ó4å9^†Ýv㹃ÝÃ$NÆÃIk©éûAç°kÃСb¶¸ÒšÏô<ÏOœ>Îr,IÓÉl2œ.,6XŽÕçÍмÀ§iÖëô­:EQŽíèóçOXü ’8ýõN±à Á÷¿ê¶{<ýû¿ýßøM_÷ÀýþÈ<aÔæ‰<Ë=×çxÃpŽg–eXVQ%œÀEIxìs?ÐJ*0­–ÊêdóX©¢aÕz…fèùTWK ‚ I’p<›ç…mÙ4CÑ ¥ÏŒ(ŠÓ4½óe·Í¦sš¡i–¶m·ÙªWë’$8K“FY–9Ø=<¾} , ­×Ô­Ao¸¼ºØlÕi†î´»‹’Àqì>Y­W8Žõ<>˪,Å ¸m´ ;IÓ8Š£0¢(ª½dè&x‡ÍÅÆ|fˆ²hêæl2_Y[Z?¶*É¢çx ÿÙÿù_~ô_ýõw¼û×ÞÈñŒçzª¦p<‡ H–å4CªŒÀ¾À0İ Çs½Î€aiŠ"ÝØ“@†YŽ)W5 7fXøšP%‚ãÛr`RÕ”<Ϲ!ÉBÇ Ç ’eY–åjII“4Ër’"ó,K¢„à‰(Š‹¿ñ{eYÎrLàq%qR®”Ò4Åq, £(Š¢ ¤hZ”ù4M°8u]7‰­¤Æq°tšfoø÷½êugÿ×?ýîwþü¯ºïö»ÏÑqÜZ£zî®Ói’"BR$A@uØõfµµÜœMæ`;: #­¬EaT@Eû Ã²ÌêÆrŲ"­[eXA`Y‘@`­¢Ê²"ìEÙ6F«¾º¾Œ¢˜¬ÊE$A’d’"îµÓ4cX:Ïscn®[q,7ðÃúúRQ²"õŽú ž]Qe· j Œ úL7 ‹8ESîyÅ]†ÊªÌ°ôþÍÃùL¯7ª¢$"_®–©5*yž«%AÏñ–šyžÇQ¬–TœÀy»÷»AK&I^x>ú‹¯P‰Ó?¬b„Š[ (ú­o~èÿþúû~aT£YK’TŸé‹«­8JÆÃ‰çzõfÍu½Àq§hJ’EE•‡ƒ1‹ŒÂ¨Ùªó7›`+kKjI±L{4œ(šÁ°7$)Esn²,ãØŽ¤ˆiÅq†áº"¦YG1ª¡ÀJ»q|õøÉMS·’8)WKÃn§ÝeXfms š´²ºó€ ð…¥F·ÝãØ2F«.Éâx8%Iüè°ÛÞ?b9V-)Ip<;ì¡¢¸òäõÆBmk{³\-ñ"/©’ïú¼ÀOÆSIo½ÿçÒk´mû]ŠôUzëw}íçã›ì·¿æoŸÿeÙsý_/Šâo@·.°ó  ç!‚Î_(.\ØßòÚ7ìö}äC§åÃ߉!o7¬¿F=ëóöWñiESNž9‘ç9Ë1Iœèsƒaé(ŠÆÃ‰©[M¹ŽgÖd8iïwÒ$ÏãkÆÜp]¤ÛvçÓ¹>7X–ìtcnP4ÉóÍ,Ó^ÝX‘dÅÐÑ`AÐñí ‚–Þ<±áñ“›i’ö;õ%YÜ:uŒx€ö;vb£( ôMÿæ_8–óô¥«ýî IRÛtP½rùZ’¤íý£^gàØnžç0Áì¹…Aˆ äM†@ßXÝXvïæµ]@T±L€9¢0r]8NàÝÁÕËׇýq„+ëË,Ç8¶[®h$E2 E1E“¾ë[¦CÒ$ÃЄaÈ <Ë1Õz…¢Èá` ò0 Ÿ¾ý'p’,J²˜gùÿøÓ?üÞÿwy]þþw}ݯ>Sm”)Šò\6Ñ ’¨ÔÊ4Mž¢(‹E^$iJÓT–e†~¥Ë2 o 13h†âEÁuÜn»AA k«h2Š¡‚‚g†c’$!)‚`×q‘§(Ò2mAâeEJâñ(ŒŠBP„ ‰ÙxFÓ”VV ’Ìó¬( ’$!¢hФHúoâAŠ¢pØòlËK“„ F8Ëò<Ë Ïq!¨@Päøéæý¯>ùÔã7þè¿þùÒÊâÙ;Oy‘eMQ{;–aáX¯3`Hy™fh` fFÕÛ²Õ’’¥™ ò`Û¶Z¯¨šö~ë*N È(ôÃ0ˆjª(‰›[kŠ<7/ð ˈ’g¹ ò Ä©TÑ‘_ZmÉŠä8.Eåj©\-ÅqÌñ\žçZYµm' c†|Ï 'îVRDY‚a¸µÔb.à”EÅ0ñ† I‘ô¹‘Dq„ƒÞHRD Ã|?H“DZý›írµdèæd4%)DZÅ-èYW’$üàßôæ7V¨‡÷í¯zíÄ„übÕ³™bŸy Žã÷Ü·ýúo|ÅÇþìã?ôƒïä8~{{û9uµGf×s=ÇJ“›»7öó,/ bÔÔWÆ‚$9›ÌªõŠeÚãÁ$ŽãñpZ@c»Óñ|÷ÆþS¯ŽG“(ŒÔ’‚axï¨OÒdA ‡e[E“¢(h-O3Çö0 5tsuc¹T.aš&‰çùk›+QÁ0¼º¾\oÖ?DQ”¢©édV_¨3,3M$Y<{ûÉRE3ç¦eÚAt{8ÛÞÔJjž£Á†áá`äÚîÊúØ<¼qõæ ;²mGøƒÝvžç/»ýg†¸p‚á[Ò?8žüÐ=üðÃ_ÿU÷WÞüº_ÿƒyèuw¯ü*èÂèn=ç™™ì¾Ìߺzx 8zà~è §Ø*xºp¾¸<ÿ<þc?vïý§ÞðÍþ©î½íßÁ—«gΜAPôYž7èÂ…‹W{àU÷•«¥~w@³Œ¢ÉYš•k¥$IXŽMæŠ"?O%E ƒðÄ©ãÍV}msñ,ËI’¸íî³ K3 #«Rs±Ñ\läyÁ°Ìd4ÃpÜ4¬ùLúÒµã'7)š²L˵ÇqGýq’¤y–ûCC76 Û¶ìåÕE–gY–EÏõ†ƒ±¤HØþÍ×ñ‚GŸÍņiX“Ñ qG9´Ñª7[ Ç>ûWŸG1L”„¢(æS=ŽãÉh:è!.WK‡ûG{7Žéõ1t‡¶å̧ºã¸['7Ûݽ¾GRdÇÃþLÀ¶åÄQL3tàÃþ,¼Â ìõÀ™²-Üв‘m»®íIŠ()’ãx¾çwÛ½¢€†ýÑïþÆïUjü¾çŽŸZôFY–¹¶†1°«'I†‘17‚ Ä0,Šbpϲ Nà@Ç‹áðä8¶+J"pÊÂ0\ä… ,Ë0,G PZADцcI’&q¬´ùž¾Ì Ë`(V`8CT…FÓ8® (†¢(:MyϋǑaTä¹iX¥ŠÆrdz8Ž¡(A¹e9$A’ພeØy–³<㺾¬HqœTªÒ8ÿúKÞü½_ýćÿàOo¿çöúBµÛî…a<Áv?plÃPš¡}ϧÏje­±PëõæS}ogÿpï¨Þ¬¡šÄI’¤OWÇMâd>Õ‡½‘ïù¼ÈóǰŒ¡›À1ŒãØÅG/ã8FѤ¤H‚íw‰/•5ð9êsh/?¤êè ›ç9V%aع®Lߎ ¿²¾,‰“ñìpÿÈs= E‹¢¸~õf¥Z¾ýž³aºŽNïáþQ½Yé¹qÇQ\*k‹Ë ƒÞà‘õ¹1M‹¼h¶ê{;ÿ‹Iá©+W®|û[Þü•+qúÂzNSì3Zµ¦üôûþݵ§ßõÿõË¿ü¾_ÿõž8qâYþF wlWR$ßó›ª&ãˆâõf-‰’"†ý1˱ÆÜæò•õeÇvPÉó<Š"AâÏÝyÄÕ‘1ŸêIšâ¾~lÕu*Iœ„AtóÚ®mÙZY#H|<œÐ ŲÌáÞp{Wëå…Ŧc;A°CDàW._¨Šý›‡¾"…1†¢Ý£>/p“ñlØ-­´P ]h4VÖ1Û¹º;ìî¸ç\©¬–ke’"£ ܽ±/ˆüÆñuU“GÃI¹Z¢iêÙûe/?ùä7qôB•½Eqz¦¾ z«Ïõø?Ú‹ýÛ)üÍyðü¢8ëujuõç>ð®þû¯ùñ×ÿ?¿ð]ÿî÷/_>õ…¯ÿOöh7>ô0¥i¶²¾\ä¹ ’,kÆÆÖÃ0ÀSÊ04‚ ¥ŠÖX¨÷:}Š¡X–é´{G]ÇlË¡IwªûccnÐ,M8†c“Ñü ƒðòÅ+Š*! Ø,Ç^¿²³{c?K3AæÓ¹¢Êõ…NàÿاJe­µÜÔg†$Ï1ƒAÐ)ñD§Ý-ŠÜ±ÝÀ÷YNe¦)”÷=oç`2š¦i:›–>be}  Ç$Y üМ›q“$!«r©¢UjåÏæ1C×­6›¶iÑ,}|{“ã9’$%EZXlô»CÇv–V[€åkèæÙÛOÉLc¡vÛ%E‚aPy¡¢˜Ó$ØiŒ¢(ÂR¥ÔÞ?zúâ•S·7ßú¶W‹’PªhއAljk;,ÇæyÔEEÁñ,àl+P)#ä3šLâ‚ ahšePq<‚䌹G1Nù^`™ø<Ò$Á0”ãYŽç ¢Ês}Cƒ ŒÂ¨R+c8æØ®ïú C“$ ú¸Aò"ÏñœïùÆÜ ýPRDAH=ð‹$IqçEC±† 5ð²4«5*Œ~@8XþEqǽ[wÜ»õóþÐuÝõc«­¥f' ˃ I“EͧºiëÇVqçx®TÑ|×êâQP-•5‚‹†aŽgà ZÙP_¨á8.)ϳ½îÀ÷ÇvX–!I‚åœÀEI$Iܱ–cA`I÷wÃ0œOu0/./X¦DZªÉÝ£ÁÂRãÆÕ›Š*³,ƒÈ¢eÚa‰’p°{xêì6I ¼¡TV½á_2%åØZ£’çÅå'ž&颀Hš$H‚8¨(‰/òAË´ï~ù¾˜ºõœâ??ò‘ÜqïÚϾÿ{žý?ùò¬ç7Å>ópk{ù7?ô#ïøž÷øÃ~ö³¬$‹£Á¤R+µ–[ ×Á0¸§T5Ç1^àH’øÌ'i.ÖF†a†¥a=Ž,Ë‚ð}¿\-‘aèÖ§þò³£ÁXùöþQŠ款PËó|2žâ8ž$‰Ê*úÜ„a(MSQ’°-;Ea2ÆÜˆãdûÌÖæ‰u†a0 Z<Œ ¦nâ¾¼¶…ÃÒ0 {žOÑ‚"Cµ––×—)ñöþQs± E“ŽïÃsú\>ô¡ݹ]zï?߀^‚,Ø/f½À ìÄÉ•ß}ã‰ïûèÁýÑ:õwæÙ¢:‡½éx¶¼¶¤Ï«—¯ƒè¶½ý½û-¯-¹”‡ ð|¦_MC?Œ£Ø4¬ùtŽDàO>þÔ/»­TVÇ¥:K³¢(ò<#iRV¤J­DR ü,,6 "Ibuc… }¦/®,ئã:ÞÆñµ;_våB„"h¯3dqûÌNàµFuyu{Ã7Í|:ÚWC7–yùƒ/›ŽgŽ!‚a(ˆo³ Ûµ]–cMÃö†i%Çq×q¹äXEQlk[ÆÜ˜Ï S·p×ÊÚú±50Ê`©mÚa&I"+˱’,9Làù‹+­ÍëjIñý€a DÃñ½ýÀ1 õý@QeEp÷ý "cnln­ì¶qŠÿ8Npƒ J”ÇÓ4M“t2œjeU’’$0#I0eÒ4ãEÃÐédN8 ÃPß*ÿÑçF–f ¼†!ߢ(.U5‚ža„yQ ††a4M!ëx®ã&qlêfÅ‚$ !œÄ1Fàžë¥IV®jy–»Ž—¦)A4MsSTDQ(†Ûú4ÃèsDZ4JaÁP$B’ Š"/ C×ñÆp̱†eÂq¬ÖTwž²HŠäEÞµÝJ­Ñt<[XlrèYŽ­7«¶åض«•  Šã¤\+ ··sàXNš¦Ž-­.‚ˆÜ(ŒŽ ýÀu½(ˆ@xgše ±<[®hÕz5 Ãæbªj ESãá$ISßõ]Ç=uîŒ Iœ€qÖóüÑ`BÑ$IQ•Zyu}¹Óîɪ `s’ °Ÿa†c£Á˜¢H^àQˆãÃqßõašŽgIt;‡{Gy–ã6›ê,Çìïx£Y3tópïè¹µúKË=þ"Ô ¡* †ájý¹!éŽQ59B‚HŠôý†áa\*«¾äyaèfç°gêf³Uƒ ȱ]†eÀÚeØgiêXN–åŽí (zí©E…A •T’$=ׇa˜¢)Ïõ¹‰x¥Z²LEÛ´¦ڱݵÍU’$öwÛ®ãì¶K XÕËÕržgÕzð,K?»}Ð9:ì>Ó×ZúîQ¿ßû£«—¯s<›¥Yš¤ÃþDZÇ?wick‚ cnûãkOߘMæ['=¿ì;ßY?ÿ&蛾¬z«Ïõø³éÅÞzÓÎßZÅ^¸?ÿ·Ø…óð… 5ì¿@ï|çßyý²Gý§˜Oç¼ÀÛ¦ÓÉ;jInRI‘xžc9ÃÐöA§}бMGQ¥…¥æÂbãÆÕ›4M‡aAª)²*ƒˆk‚$\ÛÕJª(‹†nú^àØž( Šb8†áømwU59ŠâîQ/K³(ŠPa9†y&«˳Qݸ²Ã$‹¼ÈÑ,H²¸¸Òª5«ÍVçq ÃÐ2m×q¯Ÿ9~þü­Ç_8{}E=þB_ìߟb ¨¸pºpþïO±?_€×) âÂyèÂ…[ØùóÏê¼A¼Àc8.JÂɳ[0 ¿üÁ{îº÷¶ÆBme}9IÒ0 IŠT4% ¢•õÅSç¶)ŠLâDV¤,K ¯T˼À†ãǹ´·³ÿè_?¾ó`çúޥǞò\ß2m€`Ôgúl2·Mk>Óÿ⣟|âó—@”xIMql÷p· :e;WoZ¦­•ÕaoôôÅ+“áôʓװ‹>©hJ¯Ó· Û¶l^àà ltLÃ:wç™8Ž[KMESÀœÂ1N=AÄáþÑî}Iïzùq»Ž;Ÿê= å6Š¢­SÇ?¸öô0?ÀqܱÝ"/–×–(šLÓ ®²4‹ãD”­¬E…Qà‡{G¾ëϦz„¾¨š t4EÕêUàD¾qåæòÚ¢( $EÌ&sßóãÌ ý$ À' < #Çv ×Ê*ÍP’*1 “¦) A Gyš&óÈD1”ãYF LÓTÕ”$Iâ8) jQ°dYÃIá¦aᘫúÜ׆¡Q˜E#ˆ$‰CPQQŽí`8Ž Ayš’4EŽã0K²˜ç¹ë¹EQäYÎqlš¦óé<ŠbEa&)2Ž“^§_­WÕ’ÅAÒ Í°Œ>3DYØ8¾V©•I’ðý`8keuëä&Ã2Óñ,MRO&Ê¢ëx‚ÈGaäûAà0 »Žo[NE“ñ¬Ö¨îÅqÂó,°<2Sä…>Ó)š’1320’>ö¹‹«ëË¢,*ªì»~žç7¯ïž½ãt–fQei…1Š"$EÛÞ˜Ou!HкÓ4eÛN¹R"H†aŽci–F˜a™<Ÿâ^«Wò¢@Q4Ï *¶Ïleiýÿ¦^Ô)ö¹N²ëú¡ŒG“<ËÂ0eqöÿq÷&±’l÷™ß‰yž#çéηî­é͜ՒZB·h½h´ ©Ã[/¼°ø¸qÛ+{åa˜mÙ’!6ä6Ü­–Ú¦$Šlò‘ェzU·êÎ9gddDÆ<^œ"-ŠcQyVy£¢"oäŒçÿý¿ßgÚQ¥I–g9d„éM}gí=×›‚ˆ’P–¥¬H½AWÑäål•eÙÆ´1 ˆ¢Æ‚ÎÆ ßóÓ4#)²Ùn(š2¹™ (*J‚¤H0 Öu¼(ŠišFP4ðÃf»AAài’Þ^M†;ýFK¯«J¸¢(³4«ªŠåدß}ñìR’Eca,çÆÁ}­¡=xóA[Û¡™²"¡j[[ÓØÌÆsÃp·7ÛÑÞð;ãö}þ õâ_ãí?™ûò{÷]ð…wkP{Šýž õGiÛwÜ9ûèE»Û¢@Ó¼'ÈŠDÓdUÕ;û£,Íì}xg:G ÛU”D½©}ðÞ£›ËÛÞ û÷þáo…A¸¸›$)Aöf›¥Y,Çð"#¤H’FQä3¿þIY“ßné¾*ªì:I‘,Ç´»ÍMÒùlùÉϾ=ÚTU5Üíß\Þ.熡I’ÆQ¢êê|º€6a¨û6šúl²¸x~e[ÛV©ª ÅPšÏs Ç)è—:{|ý¯ÿ¯G,Ç0,o5I’&QB$oÁÖǪ¬`\óÖr´Æs@žå$;ëºþìoì÷!L$Ž’²(!eÆÝºâ8ž&)Š¡eQ&Iä9ÍДeE“AÀå»çzª¦ (z{5é»ÏI²„  *«´ÊmËFǰ(/4Ž.òJ’EÏóDIäx.K³¢(’h‰|UTEØ’)Ë2/ŠÐ1ƒ…qE“ÁP¬ÕiLng·W“,ËZf³Ý išåÙºªò¼€· ÇŽO£0† •dº)ð‚8J$9GQÔ÷üFK‡ëf»±œ¯ìÍVÕ^àâ8q¶@wëÝ}xŠDD¸[wgTUu]ÕIœX»*+wë>vqÿµSÈ•Tu…¤Hßó“$ ü°ªª>|Öé·Mc#JâÕùuoØ¥Z’%Ø…?Ú@2—ª) Ë4Ûë‹[ÇÇ7“ÐC?Œ£d½Z__ÜîŒHŠßL)Ьk 7µ(ˆV |üTÆtlüÑïÿÙOçXü;ÿÑo F­ŸÖÑÀÏbŠ­xÔ|²@P寴;½VFð1ÃЫóë¢(5]! Âs¼§Î´†Ê° ÅP‡'Ý^ÛÚl¯Î¯³,_-Ö®ãɪÜí·išŒúÏž]UÕ³'ÏEIXΖ‚À-f«À ŒÕšaÙ§žù^ÈñìÁñÞl2ÿÖ×?€Ã8Šã(I’TÕU€ïúçÏ.–±-DZ›«qàeQ.fKEÏ>zñäÃgpÏ$I8ŽÍóœ †e– #‰œÀaWNYVZC“dq|=u¶n§ß¾÷ðôùÓs‚ÀI’„‹È(Œn¯'$IR4BDzyž»Žçl]I‘jPGAô§üþ¿ü?ÿúoVR說ìͶ, 'h†B”¦)Eʪ*‹"M²º®}#0:K³¢ÀUM œš$ A§üò¿ú˲(ßüÔ]Alk‹¡(LoEQÃ0‚$(š‚kè$N6¦MÓTUÕ¶åðEºEU`YÔ७Hy‡eßõõ¦Ž K3ÈÌ\- Ï –Éó „¢)^àüêeœ@–äŠTEI¤em /ò6ð‚ƒã=Š¢’$™Žç¦±aY¦Ók/¦KÀÙG/¬-ˆŽc0ÇsýÕÂˆÂØ2­Þ°ë{þze¢(ŠbhFxž_Wµ òyžKŠôÕ?ÿº$‹EVUm,×i’Õu©ÜzS»¹¼=:9Uy1[à8!H<ÔVIŽ„¡ qœønàl]š¡ ‚xü­– c¸Óß;Üu×÷ŽçŒÕšfhÇ!c¶àÑ e›tŒbhØÛ¬-QHŠœÜLµ†Ãê øæ}†¥9žßLIè{uUUUµµŸè–ò}ÆýþŸýÑÿôŸÿüçÿö‡úƒ?øÀö_üûCÁñ ¿vF²*¯&(†ÕuíØn»Ûì º²"©Ê "H§ã9‚ ,Ë vtrÐhêMµ:"/0›ÜL×+3 ãî #J/ð4M’8ÔÆ¢(W ƒe.鹎cžë‘±^™Š*7[º¬Ê§÷︎¯54†¡“8©è:½A'ðß /_\×u ¹o×7˹ñõ¯¼·œ0Èw}Y‘ž|°fXRà šŽg[ÛiwZzSýÐs=ÇI’è ¿ ñøq|Ÿß©ƒï£}þá—þäýÒ—w<~¹Û¿ø]ûçÇcû—¾ô%ðå/ÿç_þ¿ë~Àûþ8Û*ZìËUì·_¼ÂçV×€Ï.az A^À \š¤ÆÒ(Ë*Žc¹Öš±\¿ÿÞ£û¯Ý…Ö'< Ãh´;ð½FÎ8[÷Ïÿô+§îð"ÿ•ÿ÷«÷_» ÝŒOŒÍøzB8AàÝAg0êQ4µœE1s|z¸œžë½ñ‰× {°ÕiÔuýµ¿øÆéƒ;IÊ¢ÄI’$)ðÀ(Š2Vk†¡Ïž¼ØÙ¢ª¨òݽ¡eZín[yQ,Ó†Óžï…Õ+ÉÒÍåx°ÓïôÚ†Nng7—·ÿßþíÑÞÀs½Ã;¼4VÞ=Œ£äøôððÎÁhoøáb¶¼ÿÚ©³uq‚ I"˲áîààxïųKAà#1¢(r¸ÓGQ”㹪,뺖Ui0êϧ ¨¶*ªÄóœ ‚ ‚çyY–$E’$—P†½ñ‰‡ÿÉúOX–‰ãäƒ÷Ü»³YoŽ…—"/Â0â8v6™3,Ûhj4K‡~È \³Õøèѳ(ˆÚÝ–¢)8ŽÄ^ÎV†±,s^)š‚õ¢ª,1 • ƦGQ„XEUêy^U•eÚaµ»Í(ŒpG1ØZI9[ ÃðÔ<Ï# @P½}u]ÅqšD‰ òI”˜¦%I"Çqy‘GA¸ÚPPAj¤(Š<϶å|ðÞã4IÇ7SÓØ$ñþ½¨¨²çùÆÒð\† ð(Œ&7SAdE‚Q†0„Îsý­íl­m»Û–±ÝižY†a~àïí–e»7»ýÎëï<ÌóœãXÇC?dXúúâF’EIla˜é…qD«…Ñh飽a«Ó0(óÁw!Q²Ùnœ>¸£êjU–æØ$Å#â:,!2,½µ’$†;ƒf§Q'ï}õýw>ó¦¢Ê°»x5_Á¾ÐýQÅÇ{PW†¨“Ÿnnùç?ÿùßû½ßû©ª³ŸÊqÀÏfŠý fÚ4ÍTMyúèŒåØ<¯;½Nà8Ž_¾¸Þ;Ü…µ¥ÇïDÑÔƒ7îaše¹i˜†GIQ€n¿Óê4Q€Ù>PºÊÒ,Ëò4Ëô¦öìñóÁ¨/)Ò`§S`«ªZÎW­v3MS½©ëMÃPAîÜ=<½§Èó$Ig“…ª)a~ô©Ï½åyžå(ŠÆQ2Üí oolQ:ýŒô© i:ŽbH7ó=Ÿ$É{ON’$¹|qøáp§ORdà…¼ ›÷ ¿À÷Ó>ß}ð»ãñ»Ã'ú½Çùq¶ñ‹ÉïþÎ÷ÿ½ïßþ]Zì»_ßW‹}9³~ûÝ3ëËŠñ·'fðÅ/þ¸Ÿ[] ØÙ}ý+ßìôÓ$Åqœ’¨v·•ÄéÅóK†c²,ë :EQà8F|YVª®Ð ÕhéAx’"âa, Y‘x‘ïôÛQß\ÏÏ.­Íö³¿Ñ&)2 㪪˲äy¶ljûG{4C]¾¸ÖtµÝmaºY[€ºªË²èº²*ÛÛ2m¼µµÙbvs9†—l·×î º~[ojÆÒÄq, "I•xžCPÇ18íéMMo¨–ÞéµPôa‘‚È›ÆEÑã»G^ ‚þQaªqUU‡AØ=APþÞál´LK”DŠ¢?$\xsm½ÿG®ã’äçn.Ǫ® F½¢(å 6ÆrÍód@—e‰áT]×yž—eE$‚ Ë (b,óªªP½x~QˆeYY¦åûáävFÑT–fE^ â9~Q”{#è!™\O×+sk9žã¯§ Ë)‹¢Jskcó<‡b<ŽÐ©Aí¹¾³u1ƒÚ¶çù–sÚ«ªBPD”…4N“8Éóœe–gɳ$MSkc'I š pA’¨ë*‰³(Š}ÏcYVø8Šã ©ë:ÏòOâ(fY–ïs4M9¶W”¥ÞÔ(Š$¼Õi`KñÇ6; ÇÏ>:‡ùp¥(JÂÎþö©'q‚áxš¤ÖÆîôaHœ1‡±BZCÝ?ÚÜ^O>ñ™·XŽ¿ 4¥Y¦xoÐ$Z{ÃÎp·ï:Þþë{¾$ q” vúÆrMÑ|êou› à vz Ë6Zz'An.oU]eXÆÞØ,ÏòúðÙg~ý“$IÂõ$N}χdÔ,ËÒ0¥h i1¥)†¦)ÈÆËóœ$ESŽ÷`–=Ì q¶.†¡Óƒè‰8JÐ =ÏIŠôo:ž­W¦Ü(9Ž­êʳ=$F-ç«0ˆ`ŸEšd”U!‚¼d.²›eyÅ@h–¦(¢,Ë"/1 ul‡ Q⫪ìôÚY–'Aˆ¢ MS^:½Žc›µÅpŒ š¦R4娍AâUYåY8M“‚ÀÛ–ƒAI–(ŠšOU]wzmßóã(¡¨—ºÑÖÚvúín¯}}9žÜNã(¾½š0,í¹~UÕÀ ÃTMDE‘0‹²4Z QäÇ7ÓñõôàÎMÓ0G½7èl-ÇÚØÇûq#ØÚ®»õÆ×è,,Š"M³,Ë ’ )’f™4MQq¯?ê-gËÍÚê{y–Ça\寴´†:Ïwv^<;7×Ë1ϯò,/ËRÓÕ4M/€‹˜Íz#«rYV«ùêÙã窮"’Ä Ç±‡wöa™‘f~YÄ?r|¬î€s½9vq}qóÆ;¯á8¾w´»˜.Ÿ>:KÓìõ·8[—y˜ðÈr,dz‹Ùrr;;:9ÈÒ¬7è~8Ÿ.î>8f}Øñpp¼çlÝéí ª×7tÚj7U]yòÁSUW4]m´ôúðYUUu]ã¾Y[ßUê„ãûeÁñ˾ûÏ^É?ú#¶áwþÿí-öåÿûù¿¼Òùþ?ýŸ7¦-üîÁNUU(†±,óÁ{/xøÖ}¸rͳÜ÷üó³Ë"/T]9:9˜ŽgwîឥÙù³ C«ªÖt¶øËu–æ†E))Ìøz êÊjaHŠ(Éâôv† H£¥ÞÙo´ôN¯mfž«ÅÚ46$Iº[O”…8Šó,Ç?ÿOþqž×·÷^;‰âï|æ­å|á×wž@Òõå-äa8†c8Ë1ð‹1ÏåZ”E×ñDIU9Ïó4IQÕj–e$IÒ,Ͱ4†cÝ~‡ v 1t·ß±L{0êžx®W–¥¢ÉQ½Œjé¶êª^- wëb ;õGûC{³µLk97övpüàÑ·>r%óùtÉ œ»uYŽ…âf½Y-×išºöúêüƱŠ&£0vaip~v©¨ÒzµAÓlºƒNY–qwŽíÆQÌqlÔD¡7ìÕ¨Á‹<Ä&P$I’¤¢ÊŠ*GaÄ0 I’¶µm´ C‡Ab’$ÍÒŒã9†¡¡í'‰³º®ªªj´ €¤qÇ‰ë¸ÆÂäE^VDÃ0 eXÚ±ŠaP‹M“4Ž–cëºF¢·tEêªr/Ë2 ÅHŠtÇ1–g]ÇD:˜ëª2×›ÑÞ°?ê•e‰á8¨kP×ûG{­NKo¨ÎÖÕ›zžH€ð<1Ñí^ëörüèÑ3˜ €á˜( ÐûT@]ŸŸ]aol˜ýM8[Û=½çññG3TY”®ã^PUUš¤išŠ’Ñb¾zëS¯³,†”ïǧ‡ê32¥ IDATÅW–|ân¸Ûï:ÿüû¿NŒåúâùÕ;Ÿ~“f™ùdqùâZkh|—e©ªjžgÙ=Ø‘dqkm ÿÚ_|½;èp<Çr /pàWqü<¦ØúÕzŒ)’lwÛ$IöG=Žg‘‡bÝ~›a™rmÁÕ!LnÏÒŒ¢©»NŽN<ׯªês¿ùéõÊLÓŒØõj3Úâΰ †¡ƒ~³Ý˜Mæ}ø EÑ{O)šŠ£øözòk¿ùév· fš®šÆ¦?ê±Ûéuâ(ê »ÐØã{þävúÖ'ßpJ­¢,Ȫtu~Ë ÀݺÍv#‰c–å9>¤x^@3”±\à¸öe9&ðЦ)š*`òÝÒ_nÿN!÷i¢Ð?ú#ó#·ÃÒ4øað/L‹}ù€úÕÎwcÚÝ~;Ëòv· êº?ê ÷©_{g>Y(ªŒ ˆ òUU_]Üx®ßíµ»ýηE:@Ó4Çsa±,£jÊÆ´yîô»ýޤˆu]c(–gyoØ‚¨?ì1,ÝhjŽønps5&HÂ2mc¹n÷Ú¾|øÍ'Þ¸·³7¼:¿~úø¬Õi¦i…QÆ8ä 6ZºçúIœ†AZ\ÇãE^ù(Œ³%Œ†­ª*°ƒf§©5TÛÚn­m–ç4C{ŽWUl^ý°,KcµÖÚÝ'I’Ò4Õh邸^°´+ˆÂÖÚ&qBQäÛŸzCE“o.Æ(Šˆ’˜µ²<ËïÜ=¤ºÕmqÓ¥ÖPq¯ëúèäÀ÷|ÓØà8~zÿxcZ¢$ ÒhjqKrv|z(ÊÂÖr`è#˳’,!)šQé »i’6;MA“$©ÊÊ\ozƒ.ÍPÖf‹á8dzs½9<9Ø;Øp»{°Óéµiš’ ÃP‚fàEQ^ààW” ð(Jh†Žã˜¤H†¥–Þ÷üÍÚR4E‘$Ió<‡@ºªó<ƒ>ú8ІF ˆçzu ô–Î ,APl÷ßu}Pׂ(Ô N’Ôw}œÀ(šD¤ªëª*£ Ápñ$J`È+‚ ÍvÃX®‹¼ØZŽïùžã ÷™…¤3Î&s ÃF{Ür¾²76I‘µí¢P–e£¥[ÛÞl³,¿¹¼½:¿î º4C_½¸Ö›š¬HYš­M–å£Ýa£¥ÇQR×uÇín[ojÓ†µ>Š¢T]åyÎsýÉÍ'ð4Éô¦–ĵ»u­-<DZÎÖ%¡Ýk­–†çøqw{Ñî¤Èv§™Ä)„”%q*ÉÒÃ7ïsúa„;û#^äÛÀY9IÒºªÜ­‘»u$Yò½@Õßóåú‡N ¿”ãç2žòj6BIá£}šfçgWeQ@Ð4ŽcE^˜Ææµ·à.\]ƒ­í´ÚÍ¢(²4«êª*ËÍÚ:¾{ˆã‹çW‹éòÎÝ#CeU†ÁéÎÖ}ý‡ÆbM„eZy^Ì'‹'>ƒ©Ž­Nv&“$QW•¬HÓñìöjR–ežç,Çê MÕdšeP¹¹¸mu[išÃï‚ Óñìúò¶*«ÛëÉp§O34lµL[Ñä0Œ¢ ju[0 C„ª« COÇóáη“Ü~ õ­#Ðþ›íîÿ½ÇÿÅj±ðÅ_ÿmìóúü§ç·>“gùº§$MÒ݃†ãWç7ª®¬Wf–妱¹÷ð”ai½¡ú~pñü EÑÁ¨—å¹ÞÐXŽhºB³ÌÚ0Y–A‘®ãñ<'Ɇ½ÌXÓ›rUVq'QG‰¬HeUUeé:ž¢Ê C—eYÜÞ¸‹á˜µ±1 Ç³åÆ´Â ÒtõÅÓó¼(´†º^™A¾ùo> ÂóE•?DäɇÏîÖuž믖ëFKD^­¡ ¢ðÁ{̵UES땉 ÈÅÙ囟|âÓ$…uÝËòÁN? BE•÷”ºªYŽm¶t’"QQ49ðCAä?0×–eZ~ÇqŠ"G{ÃÞ{ì:.ÏsišŽo¦[k+JI’ÓÛ9Œºó\¯ªjš¡¶¶»Y[I$qº˜-T]%H¨“¡–®ê¥¦«€(Œ\×»x~å9ÞôvÖîµ Lƒ¤HŽgaäät<¿Zãç3ÅþcÏõM ²"AÆjUUóÙ²Õmñ"×t²,ƒ^~ßóUžO0hRøi•eyu~Ótïì'qº66(ФIÆrÌfcÛûäþýÃÝ÷¾ö~]ת¦<|óÞpwHÑäÖÚît97ší†$‹—/®-]”…¥‡AX–¥ÞÔp‡ íŸøìÛEQp< 1€û¯ßk4µiÃhÛf»…áùÙUØŒú¢äEaÔéµIмx~u|÷ˆ¢(ESdEB^%¶è—b|l/°»î"Ÿ$©ÞÐúÃ.†c[k;¾žfYv{5ùÔçÞ‚0Žân¿s|z8Ÿ.>ztFцcín 6 Ln¦–¾Y[(ŠŽö†$I^ßtÕ¨«Êu¼º®eEº¾pvöG0Äl6Yœ=yáfm…Ah™v–åyñ"O1ôr¶4–ëãÓÃYÁ \àq”TU%)âKs]uúŽcy‘cX:ŽX% ¼`:ž§Iº1mŠ¢-ýùÓóýÃ]š¦`åy´;@¤,«ålus5n¶UU}í/¾Î°L«ÝD„ãØi#rs9†ab­Ns0ê•e•¦)dzÍv–©(ššOG'Þ¼G[&Aà°[EY–eQ°ƒ¢ÈÚ0q ߬7÷MÀOÁ/û}öU-ö¯oÿò—Á«ûeæZ,øk´ÅW<¯£Óƒ²(5]©ëz9_ŸÆQ"J"NàÝ~'ðƒ“ûwU2–¦eZ›õæúr|ïá) ôC½©EaÄ‹¼ ZC›ÜL¢(N’v«à8Ž¢h«Û‚ì^ß -Ó^¯Ì$I‘ϲ¼ÓkQ4¹Z¬¢04Zúv³5Íl²88ÞGQtr3Âhk;ЦàÿáüïNoç7—·ÇÂøÙ㻇i’!ÒvmkKQToÐ…Ý¿‚Ä¿ñ‰×Ž÷q˜a˜ ë¼ ‚$‰4IŒåúúò¶Ûï(ª Á Ë´:M–c)Š‚ì±­µ…-q”œŸ]r< ƒ/p«Ê 'p’ àúr6]Z¦XÎV°±Ho¨Ðí³œ—ç7išfYn¬ÖkÃl“˱V£u‘(†•Ea–冊’8Üí‡A¡Ì· ‹0·Î2mŠ&Ó4‹£¸ÙÖ‡;ƒn¿í:^YVW/nâ8EAÕaª.Q•UU–¦Ž Às}X›¢Ú÷|UW)ŠÊÒlµ0FA Çâ(©ÊÊÚØ­N Örõ¦Þí· 7ÍþñžªËYšgYÎ \§‚È3,]•l¦iŠf(2/ ÿ‡ÀñAŠ<ÇP,#Aä1-Š"ŽâFCƒˆÁ“{ÇÍv£Õndy.Š´ú5Z:MS¦±i4u–c’8…Ì’d´†ûƒ0…q„(ŠÞ{ý4M2ca vú°ü€ã€¢)š¦ï½vZä ÌqlGk¨¦±aX†¢IÏõ þ-+R§×â8¶?êõ8N6¦Q³Ýðý°,KUSPiušqSÉq,IŠ*£(¡ilš¦¤ˆ¾çÃïÚÍå˜a™‹çWÐ"uùâúüÙÅ|¶l¶qËŠtÿõ»i’6šZ'aeYf®7;Âв¶’,ÂÐø_ñsb¿sä{@krDÆN34Ã2‡wöá3«½Ù¸lQZíf'(†Ü;†ÿ4¾™NogQïíRU…c»MžÜ¿S–Õå‹kš¦ZÝV]××—·³ñðN¯MÄl2')’¢ˆ­µ¥Y†a™›Ë[US²,/ŠRÕ•8Šiž…6¼,Ë›-ÄÉrn”e™Ä)˱(‚¬kAä£0ò]_RDP×Q‘‰áØlºxúèìþëw5] Ãèàx´7Àqü½¯½/J¼ÞÔáÉÿ¸êõ˾’ô‡m‡mVß{ü_¼[¿Üb_å|†)Š¢,«v§µY[·×ˆyB¤ÝmF!ŸD±ƒ€ñõ„ ‰8J:ÝÖþÑ./r‹éÇpUW0 ˆ’ 7uAäÓ81VkÎ#ˆühw`oìñÍôèäE‘,Ë)šâ8–¸N¯¥I’§÷ï4ÛFSCŒ†æˆ o~âõ¢,ð{¯îî¾ýé7U^- E;ývUUÓ›™(‹ƒQ®¨Peša’$6¦ålÝÅtÙî¶|Ï×\lñWeè‡M!(²µÝùtqñüŠå˜O|æ-š¡X–Y¯LË´_{ûÁîÁŽilXŽ¡h CÑ(Œ–óÕÖr:ý¶³u¯/oi†6–ÆøzúðÍ{0wAß ¯qš¦Ï?ÏÒ Ôu³ÝP5…¢H¯ëºN’$† D1^ŽãÎÖÅp¼õ|º ƒE±FK7 `ߘöl䄈ÂÖÚ~ôáLÊÛÙ28~éu]¯kAUÆ0´ÛoÇq2ϮίÃ0âRÊ¢Œ£ØÞl?|ïñÃ7ï—eY•åï=F1´ÑÔa‚PÔ¯Êr>]ÂÇ{c×uÝî´ÌõƱ­¡EÉ NG'ýa>~vº-U“ ‚€Ín"»µøYÄq¬54EåºÑjäYND‘¢$6Û œÀ‹¼È9VÇv³åziÞ{ý4 #Óˆ¶¶Ã „xŽ'JB% ’®ÆõùM«ÛÄ0”fhE=7ø“þgð¶foì(Œ’,†HøáfmÑ,Ýt³4ÈŠÔhé Ç¢š¦éjaÌ'‹$Nëª.ò¢ÑÒU]¹x~… ˆ»u)šX¦ÄÉÑÉÁ«}LËñKq­æÆñé!AW·/›1—k Çó•çú8Ú‚€ñÍÔÞlïì›ëÍùÙål<×tÕÚØë•IÓ´¤ˆîÖ£Doj[Ûé ºQ•eIÑTàiš…a´œOŸ<÷ý ®Ë1E…A¼áÛÖöözR%˳UU]¾˪ÌÌ­µ5 ^”ål2¿½CÖ(L@ó/BEY–Y. Žç¢(¦(j|=!0ÜX¦xa»×†u!Š¢(šÜ;Ú£äkù$N´†öìgU–eQ.¦KÏõn®&(†áv~vy}q£¨2Ã1KÌr¬ëx7WãÕb­¨2†aq‡AXV%Š 8Žñ/ñYšAÖšçz땉DžåeU½ŒÙ* Цh–FQ„ ɲ(1««ªÓkËŠíGï„¢È݇'ÇûEQ°»Z¬³}üœa¨9¶›eùùÙ¥ òœÀyÁ–q3“ÄéÞÁÎñé!ÃÒ˹ñôÑÙÁñžÞÔã8i´t×qEI”Ui´7l´tAäÜ­;ýXŽQu…¢HP×a…AHRär¶j÷ZA¸Ž—gy³­§If[NšæÇnm’¤TMN¢d¹0×·Ëùªªë½a»ÛÄ0Ü2­ƒãýÝýÑO¨1~œÆ/Å@ÑÔÆ´zýÍ2i’R4Õt’8OAL'sI¡N¯ úÎþhr=±6[Aâ÷wÌõ& £N¯•$©$K[ÛÑtµ(Êv¯í:.MÓ8Žs<‹b(D¦lm‡¦©Þ°›çÅävöâÙÅáýáÞàn½§ŸÃ” ÏsÄ€[ߊ¢\ßÎÒ4½¾¸EQ¤ÛïÀî0ŒµÅòñõÅ-E’¼È·»­³^lL‹¦©'ÍÐqÁÛul7M3­¡¢JÄze>|ë>Ã0Ëù ðánŸaéf«‘¦™NS­v–|?€ÙDžãÅQBóœQò<¯ªª(á¬")&2,K3ôr~Ëñ†ayš§iRe§ KçY1/Ò,o4U•â8‚PþF«QäR¨&ʲ„Œ’FP×uDy^LÆÓV»i¬ÌFKO¢$ B†cª¢Š¢ ,R#$M`8¦jJØmw[×7­Næì>ÿèÍÐ[Ûî ºƒNU–8AÔ5è{Yš,fË݃QÔCäüì’$‰áN¿(JEâ(þÜo~š ‰n¯ýüéMSÖÆžMæG§‡ª¦$¡êª³uçÓÏs®ãž”E‘&ižç0sêúâæÙã窦èM­Ùn´»­iK²8ØéÝ\Ž]ǃ]@:ÊÉÝ£v¯moì0ŒªªªÊR„÷¿þáoüòŽ_ÜûÊÓ¬±\ã«ß’iïp—ãÙ¢(¿ñWß‚ÉÊQ(yÑëw0ÛÚλGžãږðt]UaxUÕ’,æy…QQýQ¢(’$ ;NkhçÏ.¶µ ý0Žbkhm¶8ŸÜ?Ž£¤È ˜°É°tÆÃÝĆók4ššÖP·¶S–U]AäæÓ¥eÚ$Eîì Ã02–¦çz‹é²ÑÔ‹² ý&^ öâÙåkoÝO“”¤È0'7Ó8Jž=y‡1MÓàüØêÇÏ/ûó×bë¯x¾I’žŸ]Ù[ÓÕ8ŠçÓ%I­n3KsAx‘o÷Ú¢$\ßäy…‘ÖÐ`¦ ôÛàû&7Qû£l_=8Ú¥hj|3eYf6]dY6½6Ûý£]US:ÝÖra,g«—yQ”eÙr¾rïν#AŒ•¹YoDI|ûÓoö‡]š¡qÏõÏž<— Fë(ª\V¥$‹i’FýÑÞ@…ºª(Š" ¢ÕmY¦Ë/ƒQ?MSß h†"IÒX­I’ŒÂ˜ ‚À{ƒŽ¢)ÍN“aiÇvÛÁq\ùFS‡ö\Eó,ñìbgêÚ2m†¡)Š’±×ïE9¾™Nn&A¸ŽK‘䯴 ϲlk9U]Ëu]×Qu]š¡ó¼À2 cHYƒ%ʼÈyƒÞž×4[zÅa^å¹ÖÐX–µ­í³'Ï{ý,ëã86Ïʲ”dq1[ñWåb¾r¶.´Ä0BQTDeQ2,#+ñx®omìýQ]WŽí8¶‹ HÔ‡ÒÑfm¤&IÇ0ÃP4OÓÜsý­½ ü0Ëò(Œâ0JP”aþÿãîÍb-ËÎó°µçy>ó|Çš«zâ(’jI„6Œ ±@ÑDÀyÍCR€lFä%yu^BØ!6òÄN)¤$R¤š=°æºó½gžö<+«šTÓŒÅbWÀn¯—:wãÔÞ{í³öú×úÿoò)Â1!÷þÚ IDAT ·;-Ó´9ŽQ`˜¢Êyš1 0¬*!†aYšÓ Ép,I’–ÎñÊýžŸ^>}tÌ0”µµU]©5Œ( ­­0Ìܘõfm´;€r<‹8TdY6 #A6«-š\Z&Êê~ ˆühw0Øévª®$qjn,ÛrŽŸž"‰.Ûrhš&IBR¤,Í€€fh†eèãɳ³ã''_üõ_)Ër0êUU%ÉR„¶åÔ›µZÃpO’I?\L—€²¬h†V4¥*+£®¯›»¯ÞB~ÃÝÁÉÓÓÙtÑëwêÍz«ÓÐ ­Ö0ò,ã„ç9€¹±Þ{û>ø½Ÿ/J|üÚ/1Äþ)€ÍjÛvŸœ"wôf«!JB«Ûju®ãݼ{]ÑQnÝ»A‘ävcñDzL§×N’”$I@’$IœE©¨²¹µš­AàaÈH’ÈÐ4IH+Ô±]USö¯íY[+Šâýk»yQ¨š"üj±A5×þ¨7½šõŽçf“Åho°³?êõÛÓÉÂ6m£®#¡PÄ;h´êX¦Cø|²¨5 ÍÐÒ4íôÛy–ó"oÔ´V§±³?Òt%Ï‹N¯-J‚ª+QïŒ~üØ?q|Ù_B-}øÛ÷ús÷k9_µ:@*}Ž2é:ÇOOUM!)r1[ªšªjJY(é»>†ã®í>xï†a­N3MSŠ$£þfµeXf³ÚºŽwz|±³?d¦,+†aaAúÃ^à‡q#sñÍj«h²c»EÝ~åfUUª¦x®Ï‹üz¹Ñkš(ò¼ÀWUE¾ý½w’@£Ç6I9ŽÍóÂóü4IIŠ\/7eY–e9Üé$E±çú7î\›OA ÑÞróîuE•Y–½óÚ­N·}~ráøbº„æyÁ0´ëxB—eÑu_Ŷë˜M‘ÃH‚ŒÂ°(K^²,3—ë£ÇÇUU­–›áN?K3–c:]§I’Ôµ¢(\ÇÛ;Ü-òL”Dß ž<|víæa'^ ×—óÕÅéeoÐEnÕh<@QŽ¡Ùn°,[äE‘’,|ês¯1 ãØn½alÖ¦( š¡.fËv§É°Œ^Óxøí¿~·Þ¬‰¢àØ®c»’"Ž/§Žc¯.&VýèÉIžç«Å9Ú.f+£¦1,cÔ4†a`Ñ[‘Dq­®ó"¿YmW‹uFÇEQL3t»×Ú®Í,Ëʢܮ·ƒQ'ˆªªî¾v|2Û/9ľx˜EFu4Có<ï{~„ÝA§7芒°Zlâ0†\Î×½aDZÜ4MG{Ãålyy>¨šÂ AFݘOÈ×DZ²¬¦Ws„3*Ëj³Ú’9Üéu£ÓkÑ4!dYæôø"ðC´T…"¦¬ˆ8ŽGaì{>Žã$Ieim-ß fãùÝ×okºº]›‚Àó<ç9> Þi–EQ\oÖêNè?')Ü}ýÎþõ=$.KQ$ÃÐ,Ç’$Ùl×{Ãî ?©GûÄ °k7-ñj±Æž[‰TeQ\œ^õ†ÝÁ¨/«R„®ãEQŒÐEèËVÝs}£®ŸŸ^V²;¾8zrbÔ4d¥ÅñlèG“Ëéj±nwZEY²,kn­Åt™$évmÞØOâ„$É"/NžEùgÿæÛ½a÷øéét<£¸Ñ¬oVÛÍjÛhÖæÓ¥¬Ha]œ^ºQUDZVݵ½å|­êêñ“ÇvgãÒ·y|ÿI­aÈŠœ¥YÆWUSÒ4»<÷Û߯7Œ²,«j´;˜Næÿû¿þ·;ûCß Ø*ŽbD~ó\ß÷‚4ItC_L?sø„ñeiµØŸ|øàüÜýryA–fžëEa4Ïq‚@ì'ÏÎNÏõxŒzi’º¶+)’ª)›µ©¨2€¦)†¡1 ë º¾ç3,»{°sëî ßó9ž{|ÿ)„P¯i$I6ZuAšíz–åŽå _kÔDYج¶q”ÈŠ˜Ä©¢ÊЦ@ÑV°Þ¬ù®¿{¸CŽö¤i¶]›ëå&‰Óánÿìär>Y´»Mß Â Bo ÍЖi/kQ5C{ž4NÒ¢,`¿ðægeU6·V½YD~µX?=ÕtU„þ¨ xô£§Ï Ï0Œ( aM¯¦¢$Š’ˆaØpwpüô„ãX–e(ÑÚÚŽíR4UoÔâ(©*UÕtž<—û‚» skE¹w¸†„0ÏrE•·3 £ÁNOQeŽãʪÄq¬Ñn@£(ò]P«ëzM+‹’¢¨Íjóìñ1`w†ÑÞÁÎçõ3¼À놶˜/EQhvš4C'IÊñ/p@†aÚÝV§ß.òÂÜZ¢$¬—Qƽ¦U1êÃ0ýQ—ãYäð!ÉË1žãé†jn­ÅlÁ°ô­{7†5¸ÙtD¤ ÉåôøéYày–CQ=/M2’"9žàÆ—ý%ÖbŸgŒßz ¾õu_¬¿«Åzz5;¸¾‡á¸e:EQVU…aÏóóéR¯é4M=~ð4ËrMW‘ÜôîþÈÜZ„­vãêbRoÖõš®éjQ,ǘëÖÝÃÝþÙñÅ`§/+ÒÕÅDÇrhš’Q„Ürã8† 4IžåÏEÉ œ¬HŽíE&ÝPwwfã9Ñù镪)‚È5½,ËN·…dí|χ¢¬ËvmæyAxFÏwy–“$±4m’"à Ìó‚ã‘À/<=>gYöðÆ>Aïüàý{¯ÝŽãÐé¶ÊªÒtURÄÀ7k“aYÝÐ?X-ÖQ! 'Úzn7æpwÀ²Ìfµ©*ˆãxU–­N³Ùn I6ÄaŠÂˆ¢i Ë8žeX¶È Š&%Y̲,Ž’(Œó¼ >P#º:Ÿ$qÒî¶‚pgoPV•¬Ê,Ë $d',Ç’$±ÝXq“$áØ®ë¸w^¹Åñ,†a ÇdiÆóœ(‰iš"Çø(ŒÓ$)ò‚åØ"/²,‹ÂØsƒϺŽGSt’¤y^à,áØNÄ€$N(Š$HÒ2mçq’pmϵ½$IŠ¢$pœ É,M‘Õ˱žãW‹uÆy–1,]楘ÃÓ)ò‚¸Ð/üòþ;(š¢i IYa8~u6Žã1šÊ²”€< %Y<~r¢×tŠ¢6«mQ<ϵºMscá8æyZÐh††cXAàYš!/3EW4]%)òú­CŽçæÓÇq¶éP…Ê´óéBVeÇ)šº:#3dI–ÞùþûˆÐ}ztÞê6»ƒNY––ië5ͨi’,UUµíp³Þ5- "ËtÓñµÏ¼’¥Ùb¶BeÏõºýÎÞáN%ŽíR¹œ¯Yê»UU-ç+Q³,;=¾8;>GòÔŸ ö ±€z£!$Ã@ž$IZoÖ>ÿ«Ÿiµqœ¬kY‘ ’Ä0lïp·;hwzm)"Ir>]äy.ˆÂÍ»7’(ìöã0¦hªÛïdY†ã˜¢*¢È#ݨ0Œ\Ç[Ì–¶åìì”e¹^n;}sk‹’蹞Ótª²*Š‘°woz5;zrLÓ´ï‹ÙJQåéÕ\ÑË´EI_N“8]/ÖŠ¦ô‡Ýåbm[ÃPŽUÈŠ4Ÿ.à ô½`:žQ4UoÖ>Y|Ù_r-ý·¾¾þøÁâ…ú{óûç4C“a[®¦« Ãìì mËQ4™ ðåbÝéí¾ñÙ×ò,o´ø^PUUYV¢$ÔÆãÏʲ¤(2Š¢‹Ó+Žc‘Dïi’~@Äz¹¹~[3êº^ÓãóÉäjЏþÖÖBgë »óér1[yŽ¿Ym1 ôG½éx–¦éƒw­W[’ ˆ½ƒrGIÓŒ¢ÈÅ|5Ú(ªl™„AØ£h*ôCЦHŠ”d‘$IMWHŠ<;>¿<ë5­Ûï\žÑDÜé·9ŽKÓÔ±Ý$NZí¦ëú4MÅQÄ‹<˲ÈoU7´"/öwŒº†Ã0µºÁòl£Y¿:{®_Å+oÜm´ê(a ,ŠÂ¨éF]Ç0̵]Nà£^§ÛBbú Ëâ8–eRÑ‹£$ #š¡‚`XÆ÷|äU„l×È,÷74TÀv½¥iº;踎wztFQÔkŸ¾ h i rGÄsPU–“‰lâ(¦š¤H'U%E¢i:‰“4Njõ/°$Ir,K³ M“ËùÇ1œÀY–ÍÓüé£ËGïL ’,« –IB’"ó¢ X%,Gû^e¹ ò²,y®O’$Çs¶e}úK‡¯¼Ñ )BRÅÍr+Yhº*J<DZyžOÇöl2ƒåS ‚ð=r5ûÍðÛõv9_Y[›ãÙó“K†aG²ÆÞ}äØ.Ë1y^8–ƒ@'ÖÖö½@ÕI/ÏÇ Ã"ϰÌþõý8Œ&W³íÚ¼~û0‰ÓÅlåÚ.òÀ@[Äð 5YòÁ{›í&Žcš¡uê­ËóqD¾$IJÓÔpwÀñìj±N³lÿÚîlºÈó¢,+Nà!$IœŸ^Õ›õf§¹œ¯ŒºaÀ±]Y‘Id)Ž¢(Œ‡;}ÇràS…,ËaUAwö‡iš&Izu~¥êª,Kß |? H"ËrÛrºý¶ ò$IE™§)Aà¶éP4UUYš‡adn­¢(H‹£ie ! Èe¤] !Œ£˲̳U£×Ë-„ðòlÜé·O΋¢ô\_ÕËtâ0NÓ'š¡=ÇOâP”å [¡,Ë«‹I³ÝèôZy–ã8†DY–išU$IÌò ¢ßà$!J"MS$M>7¿Ã°w¿wþÝ?=ýâo|¾,J†cp‚NâÔ^$É‘‰x‘3xÅdI’KÊY°’+K€±â_ý_o+ªò©ÏßFr¬EQŠŠÈó|B&8AȪLá"îÈÒÌ2mÛtPêÖ½µ†!LÓ,‰cÏõ†æxNÓÕªªnìu#ðƒÑÞaiáz¹!m+·ks|9D¡Õi¬—Q7ëm³ÕP4Y’% ÃZÝ–çz§GçÈà¬È‹v·)JBI¾ës{üô´,˲(ßýÁ{­N«(ÊñåôæÝëëÕæèññÜÐÖËÍWo‘é{¾c»¼ÀŸ_Œ/&I~ö oPÙlÕyK“ÔÚÚL.gõfíö«7†^L(R«ëhžEÞD<Ï!2Ïû?|°w¸Ó|bÀ)¿Ø.ö_ýñŸÿë?þÞW¿úÕŸ}Ò׺îoùÖ·¾!øÏþËüï΀¿À4ˆ•Y–ãNฬHš¡J²äÚ.òŸØ=1,súì<ðžç®ÎÇýÓîµ.$ŽbÏñ^yýN­n¼ÿö}–g­:Ü Cè_Ц,Ó!)òàúÞëŸy%K³íÆ¢šeY‚Àà \L—È#–e™ÁN_øª,«²j¶½AçÚ­ƒ,Ëwö‡fíÕOßÓtùfvz-´[P5e»Þ–eUÁªÞ¨q<Ëq¬çxóÉâúíò(à 37V&‹ín Ðê´8žýPªóùCþ8òe±ZìŸ{ÿë¿ü«¯}íkÜÿ×?ôá'ýúÇ¿ùoÀ?üÿü¿úÕb!o½ßz üwÿË õ7ú£ÿ‘¢)E•Ó,“ ÁNyžƒUõ%¡Ü=ØAV+U5]U5E3´ª¬ìô'—SÛt6«­(‹,ËÒtµYmQÍ `›¶¬Ê›µY–ååùxwHRE‘qœ”eiÔu‚ *X%QœÄ Ò8¼±Ÿ$Ià…Q5Ûw®=x÷Ùê´|Ï77Öj¹éöÚ“ñlwÔé¶’8ýÑ;šíúÙ`·ïÝl´ê‚ª,ó,ã¸,+žçŒšÎóÜÎþP”DŠ¦Ê¢´¶†aŽwúÛµyüô4MUSÛõôáQ»ÛD.M2dµÍÐ4I‘‹é²ÑªÇa†‘$‰Ó«YY–­v3M3€m¹½A÷ìø|µX«ºB¤m9ÓñìɃg¶å´øb¶,ËÒµ½å|%«r™aQ&qâÚîÉ3KQåÑÞààú¾ òg'õ†±{°SUU臲*ë†VåéÑùÍÛ×8¯Õuš¦Ê²ìöÛã‹ ’­aXVI‘Ï1 c[Ž 8ŽEaGqQT¾ë‰"Ï0Lže<¯á8E1R–p,'˳ªª’8)‹2£€ú€[i§Îf½-Š¢ÓmA\Ç%HBQäY©×4äÀøóÖPy|Ù_¼ûåÿôk_û§o½õÖ‡Îÿ·ÿü÷ÿú×ÝôøyÆøÇµXbÑw^¤¿‚$”eýÐÜXYš%q"ˆ¼ï–ió‡T;ýÃÒȽB¸œ-‘â:ËsñgßýÜ—>ýù7?KÓ”ª)ëå†áØñùx»19ŽÝn¬þ¨ç»~šdýQ—ù<Ë/ή¶ks¸ÓG5ˆ,ÍMV4y³6Q–4 £4MiŠÊÒl³6Í­EÞØÏóÃ1𢂠tl×÷|>;Ý–¹µ=ǃBžœpk[NoÐ]ΖœÀÞtвü`»±Ê²²L=“ýk»óÉâé£#ßõšk>YÁ <")•º ‚plwïp7‰cUWuC;zrŒVcE^ wî¢(]Ç-«Êsb_ôä¼È“ɰ NàæÖbY0Ÿ>§ž·»Í,ËŸ=:ò½àðæ¹±DIàÞ¶\Š"³4C ŠíÚ4êº àƒW`½Ü ƒ;ûCßõ“$á%Z¢(fXBÈò,ò®F>-¾ç£„S'YšÑÌsC †eÎO/³<ý0Ž“n¿­éJöd©eÚÇONŒº~çÕ[ª¦\ž^ ’€|BU±L;ÏrY‘«²¬5 Ц8žÛ®·?þ9>¶|ÙT‹}óMðo|¦ô¢ýE@µX~báÏYšE9óüª,“8éôZ–i7Ûª‚4Cïî¢ðÿ~7ŠâéÕL’…V§ ‚0Ëó4ÉNž$)+2Êô&IjnmA䵚vu6Nâ¤,ŠùtAÓT½Y³MçøÉIoÐõ/‰‚$B?¼?{¨¨rwÐa¦*«0Ožž" [£nDa¼YnŽŸ«åºÛïH²¸œ¯˹qçÚù*šœçE«Ý8¼±¿^n8ŽeyÎs½p=ºÿ„¢¨þ¨×í· ‚à8y x®ôø„e™›w¯yÑî¶Æ£ t Ø IDATnئͰô×nó÷=?Ïs ÃDIXÍW‹ùªÛï<_ GIF®íÆq°ÌôjšçÃ0bÐ~È0´¬È ËuCR$×ñ¦ãyUUƒQÏu<À|ºàx®Ûï8–C3´ç¸k†öé_yƒœçµ†A'TÆ ËE)IÂvmV°*Ë"M³4Ik #ôC HoE¯i(÷]UÕz¹aXÐî¶$Iüpû•›q”LdzéxÞì4ªªÚ¬M Ç%I`X>‰Ó£§'ãó 2Kƒ0ôCœ â(ª*h[Îl2GبÍjƒâIœ<¾ÿôúík–éÔIB¸z.ߘÎ&sÏóu¶bXB€¬~X–M“P–†cÞ{ü/þ§oÎ/[Ý&Çs‹éòé# VUšfóÉâGïýJ£U»8½²¶RÏ× U¯i®í~øìñÉr¾ìô?#ÉbƲ"A„^»?ìÒ }yzáj±1j†a é †¡1 DAä9~­aðw÷µ;­N#K3ß ,Çú~€êîç'—Ï‘I’/ò{‡»’,Õ†¬Ê$ùcÁ“*‰ÓõrCQ$ŽãoïÞ°;Ÿ,juåQp— 9‰Ó,ËÏO.ʲÜ;ÜEØ–ZÃ%1‰’õj3Ÿ,²,Çq÷Z·ßA„Zscy®Çóafy^•ÍÐÝA‡a†e4Cc:Ëò²¬xKÓLQå8ºô‡Ýî ã{Ávm&qòúg^Œza!a»f«þ|ƒªÊ;ûÃ4IÃ0¢išf(òÆkh˜Î§‹F«î¹žn¨qœp»mÏ2mèð"ï:‚ÿ1 cm­³£sŽçsÂv¢$u'¾ç›“f¨ï}ûû_þû¿Ž<|fÓÇq­N#Ž’8Žã(áNV¥û³•¹1‘ŽÆ—gWeQ®k¤¯!tïèÉÉÕùب4M…Aøÿ÷wIŠÜÙö‡=AäÏŽ/`•mV[d­ŒŒ$ ´”`9ö?þÝ_¥iÇ#‚$hˆaK„ †a<„†A˜ UUŽÇ$ƒÑLD3%$Rƒdƒ"‚¤È<úÂófY–¢$2,CÑ´ïY IL“Äs}Y–(††baUùl² h* "žgq˳ÜÚXeUfyžÅ €ç¹w~ðþbºÌ²\’%áýwà±m·Õn*ªÜî6ëÍÚÅÙÕj¾2ê:˲žë©ëX.Ë2Mqã¹~œ¤lQàVA˜ç"ómV[š¡oß»Y«ëýQŸ¦i×ö?ìöÛ·îÝh4ki’Š¢ Ë"E‘8A°!´-é„Õ›5E•š¶^m ’`9ÆÏsß |ÏÇqìÕOÝs¯ª*„ ƒèèÉññÓSŽç’ô½ Žâ²,ÏŽ/ŒºÞíµ]ǃU…hmëå&ŽI]ÇKÓT’D£®k†¦jÊ`Ôí ?p. vö† ǪBJi×÷wF^ ÇqÛrôšÖê4Â0zó7¿ˆ ’àöäá3Qy7jš¢)Ç.fËÀÁKj¿ý»_`úNõ{_úíßýòK#í|„ö²B,€ I½¦A’I‘†ñ<'ÉÒýwQY¥$KÏ"EAdE.вÙn*ªú᫟º7ÚEamm'î¾~[x½¦Y[; "„!'Ir1].竾˜P¥hòb¶€Ä1Ly‚" /Š2IÒ8ŠAŇaä»þv~ÿ/ßfY&Šâë·¢0Êób½XOdzõrCÄho蹞çzÏŸH²xxcr5ÓkÂŽÍÆsUW{ÃN³]—$±ªª,˶ksÿÚ® ã‹IžçUYî¿ûpïpg÷`§*Kscb.Jâ`Ô£h*ÏòùtáXnà‡4M;‚kn,€aª®¸¶çØîz¹)ŠÁ›9“d ÇñW?}o¸Ó× ­( Š¢<×·L{°Ó¯ªêê|²w¸‹¬ pG”pY‘]ÇCºðžëϧËf»QE’¤‚(´{­"/’L“4Šâf«Žxo/¥õ‡Íÿâ¿þ'/ël‡ ~rÁŸy/Ö6«­,‹§—eY ¢@ÑÔw¿óƒk7÷“$Åqb´7tm7 ¢õr]oÖ/Ï®$IHÓÌܘÝ~aþmÓY-×’,!¥°4IYŽíôZïÿð>MS¨çƒ~„zMKÓìé£ãV§¡j MSq”5MÑäv§ !äÎ÷‚ª‚‹ù*K³½¡ï®ã¥iÖí·×Ë-Ò0')’ ˆédÞhÖhšn´êëÅ:Ï‹f»‘&YY,ÇXŽm´êh§žM3Š¢:Ý–m9žç7šõ—Å—ðH­é'í÷ŸóÅ¿4^ì?û£¿»_ÿžþþŸÿÄGªÅþx;û7ËâË~áß|SV¥Íj[oÖºýðÑžP4%+’¦«g'—ˆNSAÊ©2IФ×4sc­WÛõr[E³ÝÀq|½Ü\ž³,߬¶Žåwú†•EYoMñ<§¨² ð<ݬ¶UY•e5¹œºŽ×l×­­Ír ²¢¹<K²¨×ô‡“Åvc"’!‰aØr±þàúÞvmšíº¬ÊYž/&½¦wz-†e¢0¦(R7´goì#iˆ ã02·öäjÚíµoÝ»á:AýQ—fhš¡?ÀqLÕ”™?'\”„íÆD`T†c%I(‹r³Ú ßî4ŽÅpœåI5Cîôßøìk8Ž%NšÆéá}I‘ËnQE^ìî¼ûƒ÷«ªJ“4ÏJ^à¤EÊ¢(²4·-›ã¹"//d&ÏrÇv˲ÌÒLy†aìÀγ…Ñr¾†5ݶœ4MqGpÇöŠ¥jŠçzy–'4•Ä)I‘,Ëø~˜&Ižå,ÃTR4‰7ãE!ŽbAŠÿz£YËò|´7ȳ|r5-òð·)Š”)“4Ë(Šju[eQt–e?–$Yšø$IÐ4ÕhÕwúmÇ%Eœ\Î0 [-6žëûž@.Ë*ðÃZðLûéãZÃdi¦ê ÇóŽíšK¯éeQ~p~z9¾œ¶»-IÃ0*Ë*ðB úƒÎɳ3MWË¢`Y&MÓ·ÿú]Y‘zÃîj¾vmÏÜXÈ?á¡$IDaL8ESƒQÿäÙÃÐ×o®—›ÁN§L´ð\Ÿ¢¨ZCÏÒœãY^àxž#³º"9–SkF]§( Ç1d™Î0t­a`G‰f¨<Ï$“Uéâä’¸¢,|/$|»6]Û窦”e™$ÉbºÔkÚhw`›Îäj¦×tô›RI’äoýÃ/÷GÝ,ÍÛ_LË¡hªÙnöÝÉÕTøk·?ò,ñ’ÛËWwúÈ7ôÓ÷ñ e‘ðÁõ½¢(ª²Da´7èôÛ†¡ýÃÒ4Eõ†ûï<îöw(šò½Pùf»GqUV‡7Uö\ÿèÉñîÁÎîÁ(Ž’F³Æq,ʬx®'H‚f¨Q!½œ :½VšdQQ45½šAjucµØpÈd"d’™3í“ôVÒ›´ûÀ5‘"bΞéé£îÊÊÊ;3îût=ø¬H£ ¨•ü)-»:Ê#3ÊÿîÿßµÒºm9ÝAçÉ{ŸLÆÓ“‡G­ŽÙîµEQÀ_ÐW£—ýÒï5Xìç=Šÿñ þàðWÜ×ßs¿é9øû‹‹°/¢—E w¡²(k„$YÌÒ¼È ÌÄŒ£$Šb¶pÿÉ_¾ë9ÖY´ÚÍ<+–ó•ïy^4[ œ…mã²(±Ößs¼û»i«mR¹Y[ÖÆ*‹òõo¼*ˆ¼m¹›µ5Ü04MAŠa™Þ°úIu]sg“9I’¢(¤q²^ndUÞ¬¶ýn³Õ`9vz7CE™gy'eUíí%qÚꘊ¦0,3¿_Da¼$CHyÎ |Ó4dU¾½ºCI’(JB–fïÿäCUS:ýör¶jš ^à?¼¹K’È0̯U"¾–ñ)±_~Vàï*±_ìêÏ?y™eMÃÀ’8õGñÎîPoèUUɲxøàÀ³½,Ë$YjwÍ0ŒÖË Ë2Š*‡~xAwÐeš ˆïÿãßé º'\Û-Êr¸;e‘ £i¸Ž·Z¬;Ý6 ðš¡[Õµc9÷“Y§×.‹²ÕnöÝ0ˆ:Ý–ÖÐ&·S³Õ0ÛÍ«³ë«ó›$IÓ$½¿›æY>Øé7L#MÓwüÁbº ‚ðøôp´7ì:4„·×“íÆ–Ùh­N7QU9>=üöï¾…qFaÿükújô²_âý¯ ‹ýüö¥õ²èg¯Ñ~øE‰ýÙŒ~M¬w1[2 MQöQG8¥3»_°iú“>5[MHÃÀ Ξ]Œ¯ïõÍWæÓÅÕÅm]×uU'Qbm,T×QOïf†ýA7K³ŸžåYžÆioÐÉÒìâÅ¥çú¯¾ñÈÚXqœ\¼¸\ÎWôOHäÿâ§Ý~DZÜ<ËÛ]Ósüª,WËMY–Xu}p¼ ‚xüÆ£VÇL“ôúâ†å8ì4ø!ªëN¿ !¼»¹—dAoh»û;žëm7Ö£×NÓ4»¹¸=|pÄÉvmáhš²¬F{C†e0ËÀhhyQ„A(+rY•óéÇiºº´w{5fYöúâÖs½FÓy|3)ò@Óp½Üà]ÏõŸ~ôœaè$I;½¶¢)Xk[NÆ«Åʶ\ßõ•âlWQpÆ ¤!,(Š"UU8¶‡M×,Ç’44%Š’Š+Q¨«Z3ÔÁNŸ¢¨ºª@ʲBumvÌíÚJÓ<Ï2–eQÈÒT”…Ùý‚¤¨<ËĆ¡¨Šç¸Iœ„H’ "IÒ8NÒ8U4%Ë ADYHãÕ(Ï‹¢((PfYŽCm_yí4ð#ÌâxŽfèû»)ÇqÏ>~!ËDZ¾`> #Ì<Ê’´ªjІY–ºŽŸ¥96˜´.I’ƒ¾ïùÿÇ¿þKš¡Qh÷Z¥U”EÁhŸ¥çby™c9®ã©ºªê*ÍÐý¢§*`>]BH ¢ÐßéYk9_ã­RFÝ~s2›­&Þ…`“&ß T½ÀsUU•eÉr¬¢*f»im,ÇrÞþö›I’¶:̓ã=^äÛÝÖþÑn‘­Ž‰Eó,ÇDüÑÁÎqtˆ±j^äišö]_Õ•º®±u’¤í^[Qå4Ͱö 'îÝ\ƒŠó0 IDATBAœ<<Ú®-ìÒ¼œ¯Ë-‹òá«À?Œñ›(±_¾Ò~U% J‚( †$IÆQ\×õáɾ¬HŽåX{9_;–³w´Ûö¶û~þà…ÑÔß|ç5T×8¸x|uG’$vÛ§º,J–c£0ò/Ï ’$¾õ½w²,Kâ´ª*kk7LCQe‚ pï:M³Ålio–c5CMX³†'pÇ{eY-fËÍjk4tŽç0ÞOdè‡ ³‘ÅåÙµÑÐÛÝÖýxº^mºý®¦« K‹’8›ÌmËÉóܶUS®/ÇRIòY RÓ4ž~ô<˲¢(X–mšÆøzòàѱª©zC;zpˆ>ëãæ øËú¿Íî ‚$tCëöÚÖÆ0,ƒíT·k+B†¡9k4õ,Ëã(e‘ãX×ñŠ¢à¾®kMWByVÔu}sy;Ÿ.Î_\ý£~/M3ÇöÆ7“¦Ùðo÷p„Mš¦1½›‘©ZàöÖ‘ Ë‚ðÕ5Ã0¾ëCH%I²^n>|÷ÉÎîðá«¶k !ôÊë§ÇaîL§×VTË6«­c9Yšù^ Ê¢¢*w7“Àf÷sïÓh?ù?ß½¿–U…C5øêòeÿ!`±ŸgüÅ_|)½ì¿…Å~þů„¸÷ÙöË-«²i6ʲ¼¾¸AaØÎî€øålÅñÜÞá(ôò¬Óû9ÏóeYÝÝLêºRT¹7ì²,#ˆBU–E^8¶«¨ A7—·ª®I²˜&©½uzƒÎñã<Ï%I ‚å˜òÏþx‚›µÕî¶|ÏßÙ Gý›Ëñhxþâÿƒÿè²4»»½G1 Ý0n¿S–eD4McÞÁl2߬¶FSç;o°r(MÒúû^@EQgÏ/£0Ò gʬ×PY–²4³¶ßîø –دŒú·Ïî –a–‰¢ØÞÚŠ*?|õÇsIœÄq¢éj£ilÖVoÐåÞ¶œ$NúÃ^§ßI¢˜¤(USÞª«ª®l×–½uºýn»ÛV5U`»¶pLgšf,Ë*šüâ陬Ê4 ÇWw«å† €¦«‡'ûÍV“$ÉÛ«q–åØ[BØîµ5]½¹çYZ/Ö³ÉÒ°;è<½~E1olVÛ²¬Â %¡Óos÷Ñ{[Bh¶š¦9ž£!¤ ìït†ÁÇÙ˳k¾º|Ù Xìçób¿œ^üéŸüReÅã}ðEõ²y^¤IF„k»I”~P–ÕÇï?$fh ÂÅtÉ |ÅeQ®—›Éøžã¹Íj++²k» Óhš¼(ºý6Öýã$õý£=†¡ñ"ƲL«Ó<~¹´;õË¢¼O ’ôlO…½Ã]ìIüð•“¢,†Ž³m‘×t•eY^ä¡ ð²"åY¾´goí,Í?Ü=ØÙÝç?¤Ú±]’"M><9ÀZ1ÌDõ½@Qåó—ßÿƒßE!Ër¼éó½ K3Ûr[fê$Nð±ŒfèÞ ;›,6« „0Ï‹(Œ(HýëÿíÏ÷w]Û-Ëê­o¾î{Áøú®Ýk/klׇCg ’Àé€OŸ<ÿð§'I²š¯§“y]W<ϯækÙH^>;k˜ š†Ø_¢áj±æ®*+;OAr½Üò<Çr,¤éÏþJ9–ah×q ‚ÈÒ )6ß i: £²ª‚µ]Õ%Ïó‚(&I\•BËÑUU©šâ¹^–ø:ªª$‘Ä™k»qœˆ‚Àp ÊÇqŒÊ¢(è{Ë12/·»­<Ï)Šl×Öé£ã,/Ξ«šÒ0a³,+Ê"ÇqIDQLCøú7^}÷Ç@˜ÓÖ U®í`/‚$ ’lµMlþç…c9Žíb6/AínK’Åûñ¬ªªVÇ$I’yétÛERzøÊI'¾¼ùÎëØua™²(Ó$ó½Àl7†®Úz¹Ñtõîöž$IQó¼øË?ÿkQh†n˜„TUÕÏò<ǦÍín‹ãYŽãh†æx¶,ÊþN‹(¿þ¨Ý5eE¾»½¿½cÓ ’$ó,ç8®Õ6±÷Èt2ϲ\’DESpèXà‡4Më e™íÆÖ UV¥ƒ“=‚ dU ¼Òôr¾2šzš¤ùo~Ühꣽ¼õïÿŠúð›ÿÀK,ø·'õùÙ}±á¹~’¤Ûµµ˜­pîÓ'χ£ È‹ÅlÙ0Wç7^{»¶/€²,#HÂävÚí·³Õé+ÇÓÉŒaèf«q?žâ`USFû;¾ë7ÌÆÎî ª*×ö<×矕[³ª*MW¦ÁóÜÙó ’$9Žef9_é a–c†%áÍo¾ÎóÜÏ]ˆã0n"„³C–‹Õ`§¿³7¸xqQ£i´»­4Iq°æGï~|tzøàÑ‘ 7—ãN¯%+2„Ô`Ôûªô²Ÿ½ø‚ïÿ&°Ø_Ê‹ý¯þ対¯¿ç~ÿÕÿâ³Ïc±?+º?Bﯾ^–üïÿó²HÞÿɇzC··öíõ]š¤EIŠ„- ÿÊúñøzb¶›¢$`7 ÏõUŽÃøäáE‘/žžÕí솾˜-?~ÿé÷~ÿ»E^$qGñr¾juLI‘&·Ó—ÏÎEID8‰îrŒ/kcçyî{½µ9žow[øHVU®&‚ÈüþSø_þgÿÍho'ËrAä9ŽÅ±-qö†I’bÊü~ñê[U]ql÷~<ÍÒ\Õ„nhÃÑ`°ÓϳüþnŠØ=åY¾˜.¿ñÈhê ËȪ/ò¯¼þ°×ïeI34Ë1UY}úä¹*)²*§iÊñ¬ïE^„~8Ÿ-YŽÕI’ª¦~8ØéÓ4½{0Z/7€7Þ~\×( ã¦iô†]Y‘ÿÍ¿ú ŽG4Ã`ûx–c“8Nã›Ë3 SUAØ P”‚$7ë-I¤°W"Æÿ@EQH²È°lUUϱGš cAò<³6v‘—š¡ GË2E‘×5¢ Åq,¤¨¼(Ê¢ð?ËsÇr9Ž•T‰aÏñƒ äŽD A$IEa<¾™¬æ«v¯Í0 Ïòåb-ˆB§‚Àß§˜úQ×µ$‰Ûµ…;·®ãEaLóˆ¤ES$Iªë*MФª²âxVš‘× ¸(ˆhÞ^OÌv“ ˆ<ËKŽ%⃿ù+ëº6ÛÍédÖíuZÝö!cXf÷`”gyUVb×*Œ,0 #H)ÍÐ?¨«Šfè$NÛÝVƘÈ'É"I’’,Ò ÍÐô|¶„¥vMÛr½©{xri8¾ºc–.À°Œçúïýøƒv·e¶ÖÖ ƒ0Žì÷”¥dzžã‘$Ár¬$‹ØÖg1[uzíõrƒc «ª¼Ðhhت³,JAàîî˜¥ÖyƒßÞø:J,úòã¿cv_°Ì^_ÜM}0êë !dmŽç(ŠÌÒ¬,K–ã(Ьk„ôqrfÌa‹v–c1G4Ž’† ªªÂ±T†Š"%qÒîšEáF—ÑÐUM98ÞÛ¬¶¾ž<< ƒèæâ¶Õ1×Ë¢){‡»Y’®k€ ò/?=ü`ïpÔëw ¼½¾S5õøô°Õ1EIô½ #žç=×7:Çó¼Àß\Ïž_˜­Æì~~s9.«JQ¥"/Îï.?øé–e¢0"»ý¶Æ×ô€}ùiþ­³û‚W>>=œŒï;½v»ÛR5er{¿{8Ú®­Ë³ëîéaÃlØ[;M2ŽgEIl˜ÓÇš¦‘ÄiQ”Ï>~1¾™Ì&ó4Íâ(ö=ÿîfáz¹™Næ›õ6K³Éxúƒ?ü]HC{kã…×±œíÆfz:™eYQEšdq”àôY©ûñ´ª*I}×ÿË?ÿñäö>M3øÏþä?Ä ˱Š*üþÓáî`÷`‡ã¸Å³sŒžâ³‚çø×ç·u]±,k¶›²"Ï&Ÿi3мXÎVª¦$QÜßé)ªGqUÕÏ?yé:ÞÞÁȵܢ,“8Å)öØ ŸÇ{ƒ.öÆFƒQß±ÝN¿‘nh­nëÅÓ3’$vv¨®£0ŠÃx°Ó× m½Ú$Q§a¼À³ƒêP†¡i†FE’d–deQâD×ñ0dÇ I’¡b„µÌ †cÛ†–çEÅUYÅq!4Ŷ\Š"8ž£ ”©(Jß xž€J’ŒfT×ÞÖ¯ªŠa˜"Ë ’¬¤YV×µ¢È­®)+RšdÏ€8–-«*Š’<ÍŠE‘Šª¤q*É’c{u]½ùÎk ³¼ ÛkEùú7“$E’ä/µ:ñøZô²¿A,ö³ÿÀŸý`>§8ÿ —ýÓ?Aú'¿Ô1?Ëçùoÿ—/¤—uþå¿huLß (Š!«òü~A’¤nh»‡#B”‰9•’"ñ<çØÞù‹ ¼-˳<ããÓCaà‡¶åò‚Àq Ë2ýAWÕ”ÑÞsÔÓ4=>=¬ëš¡iÍÐ0)UYBHY[_khI²»˜.{ÃnFª®ì€!Ë1pïh!Ôv%I´¶öîáHV¤¦ÙÈÒLxI–p¡Å)„HNà$IÄpAàB‹ù²(Ê8Nм¨ÆS¬ßØÝÕ5bYVÕÏõç³%îÁ*ªœg¹(‹8kãY{ëØ–ƒ= ô†Ž? „Ðr±®ë:ðY•ã(Y/7óé²Ûoçy~yvmoíÁ¨O’äõùMDj¨šBAX%–Õ¦iª†„}/ÀÄ×(Œ@(ŠbY†¢¨†ipËqŠ*úäùÎîà·_Uuew‡‚ðâÅ%/p Q|/€ž<< ƒ(I’ïý໊*“$é¹>ÃÐyžûwßa& Âë‹Ûî Ãóœ,‹äYþü“í^ûèÁ¢ÊŽí¥i*IâîÁ¨,KkkO'3Çv§w³ãÓCŠ¢|?üxŽgÓ¥¬Hý^»ÛRT™a¿ô9žU5ŶÜJ¬)²4£HGìAªšrsyË I“”aŠ¢<Ç?yxÔéµËmuÌánÿôñ‰c¹zC;8ÚKâ$IR^Z!„£*ïnîñwñ5ëe³X,þE¡ýüð??<ú÷õwß/JÎú%,öçxx>¿>Ö»YmvFØÆ‡$É¢(uCóýPV$Io¯ï¬ýÊëó¼ðVÛºF³ÉÜÚ:ª®†½v¯m4uHÃV»Éñœ$Kf«‰ìôà Þ?Ú%áær,JÍÐq”ˆ’p{u7õ»ývžåÃQ?Šb„@‘aµ:&CÓ‹é¢È‹Á¨ßíwxžOÓ”eÙÑþÞ\ܾøô !4Øé×u½\¬Oû^°^nΞ_ìîïȪŒ) ‚À'Išgy§ß¡ %H˱¾$9ÜéoÖVš$´$(ª,Jâr¶¤z´7t,‡ ˆ0ŒMýµ·^Å´7—·UU7M£Û祥’Ä©{9Þn¬þ°·Z¬o®ÆeQ6Lƒ¦!EQWç7Aˆß‚íUMa9v³¶®Îoºƒ®µuô¦Îr,Aä ËØ[ó’0k·,Ê lK„ÕKuªªPT®ªë4NÍvƒaÇÎ’<Á<#š¦ƒ 2š ©ª®×«­Ùnp×!@uYU4M×uE3L–f$I¹ŽGÓP×5E“‹¢ !̲,ËrÂŽ@4¤“:ó\ŸãX‚$ʲÄl(ˆÒ45šz–fu]“$'pFSÇ‘«­NËhèFC§ 5Ú^¼¼æx¶®kФdE$)2 BY• ’€•Ä)ÃÒØÃ™ãYMW«ªDáê|: $YÄ̦ªª±ÿÎÅË«²¬hú^@Q¤ï¡ö†]˜Ã² dzIœ®Wkc ¢Ðéu(Š2Zà$EjºšÄ)Ã2X^%Ö¶ÞÝÞcAIQyžãüZÇviÿàŸü@…(Œž=yñèµSHÃ<ËeEÏrìj±^Ì—$A:–CäÉÃC„Àj¹öÜ´Ñ4æ÷‹¢(±Š!Äñ\à…€"/²4D>M²(ˆª²%1I×vó•Þпû{ßÊÒl»¶lðõŽÿ·”Xð·ÎýÒ¿ýú#ðCII’¸:/fKAàõ†þÊë§‚(ûF¾6½ìo‹Ÿ{À¾¤^öçÆbúE‰ýÙLM¬×l›ALïf‚(à#f'›Õ¦?ì=ûøÅÝí½ òy^XëÝ¿þà·_%H²*˪„IÎ&ó—ÏÎÖËmY”»‡#^Dz4%!M3lLAR¤ÑЖ¹¾¸yñé9Ë2ǧ‡WçרeµXËŠÄqn{l×Öb¾úÌÎ(Œ­­³ÝXóé^ßl7¶ª)UU»Ž·œ­â0žNæ¢$l×EQAdY®¨ŽƒÅƹ˜ë<Ÿ.–³U§×¦(RQ¥¦idYŽ·u C'q²òüºªÇ7“º®yOÓ´*«8Ž1aÚh„,MÛÝVoÐ)Š’¦á›o¿v}y‹jôê›Q]÷]³Ýän»¶;}„P§$I¾óÝo - ¢4Ɇ†N'ó²(4C«ê:Iš¡Y–©ë„¢ÊIÆQ ÀAEUY²#ŠbUU®ãñßt=×—dQVd’$(Š’$‘"IAª¢j˜L]WA2,S•%Õ¨,+H‘$Eqo$/òu]Ó4$(R7´$N}?X-×IQ4$)Rše\Ç ¼0Ï2²N=×÷½°ÓCóérµX¯«n¿‹JÓTQÝÐ4]%àØîb¶ ü°ª*Y•x¯Jo½Ú®æk†¡‹²ÌÒŒ$È,ÍªŠ­ë: c𦋢L¢ÐéµÓ4õ"Ë2HCAäq† ¶×™ÝÏO‹’`mí0Œ\ÇS5•‚”c»ª®ú^Ñɣ㋗q?ýèYYVuU±;¹â37f—è zöñ‹Éxj4õÓÇ'ÖÆþôɳNH‚lwZoçͲ¬?0ÛMßõ½vJ°YoI’Ð íÚ.‰É{²iZ…˳kÏõ;½6EQ›ÕLòÇñìävºYoq°F§ÇrœÑÐ}/èö;,Ï>zü`»µ‹¼Ð ­®k†aмXÎ×­Ž ¾Þñµ–ØŸ_ùËÌ÷ó³ûÅYâ _6ôC›e[fÅGV‹µ¤ˆeQÖu-)Òù‹Ë£»û;Ëùªª*žçм¨ªÊµ]Œœù^pñòêÁ£#(<Ïã –cŽO³åb¶äyn™¬ ¤¾óýoEÃ<\ÇëË"NùäÃg^;eÆÞÚ¢(ŠŒÂÏ(-ûG{ϦIvu~³^nž?}©Ži¶šÓɬÝiù^€º¿›½üô¼Ý5‡»Ãíz›Ä‰fh¸Êޝïî嶺ùºÝkq‡ãzF{Ã/÷ùáñÿÙ¬Ým­æ+IR½A×±œFÓüp»±›­Æ7¿û Q=Ç3;ÍÃÖÖVTY”„ª¬p χ¢,Š¢€Ã=±âüÅe«cÚ[»ªj†eʲò]¦é޼rì{þåÙuuXAè»A'~ûîvJ’Tøª®Ã rmo´?dZø½ßÿît2cYöío¿9Ì®/{Ý^§ÙjdY¶w´k4t„PDqœà6¯¦«£ý!Ã0X¯FQÔÞÁ¨a㛉( £½¡ÑÐg÷sÇv9Žåy¾ÙjTe Ð ­(Šª®°‹aš¤ÝA'ÏrT×Qá:Þho()Rà…¯½ù˜fèV§‡ñϽˆ;ý"/‘ßL0hÇ I’I—eEæEžåÇJ²DQ$ªk!öFˆ‚(IÒ0ˆÚ]“åX|d¤i:K3kkS >ËòÛ«1BÒP’’$ç³E–暦T5bXšD'zC-òr9_wº-Y–Ë 6ò-«ÒÚÚ¡ÏQEšd®ë±+I" ’$¦ã)Ã0RuY‚@>>Ñ m|3ìôuCÞƀ8Š›­Ævm±cmlŽç¾ú ?ìb-J'¬’()Ë’  ëË I IDATtÇqBÓ0Ëò,É Œ¢X–E×v) Š;¿_6«-YóðƒùtÉq,EQQ÷]ÍPã(¦˜ª®+IUÚnì8NDIÄÏÂ<Ë«ªÂî»Ø´ˆ‚”¬ÊŽåÔÅQLÓ4Ūª4]‰£4K³ºª[­fQU$¨?äyn9_y‘¦YF©¦ ð1½ÈsË1qœæinÛ®cÙYš?|õ”ãÙª,[ÝË2I”Vei˜†(‰YXÙ['Ž“8JªªÜ¬­ÉíôáãÍТÙꘘ¡.É’¬J¢(pËql§u]×5[MQA¨ªj~¿P5…a˜ª*yQhwÙ×Þ|¬êêvcc‹†,Ï©6ÌÆbºT5eïh—¡i×ñ.^^±Ûê˜iœâ@Ù,ÍŠ¼(Š2Žâ¢(úÃ^š¦uU=yï“ÝÃÑÞ᮪)‚Èë ““;Ý6BˆåXÛr^>;oµ›½aOÕ¬R£GŒá½vEÞÙÖ5 =Bê•×N'3EUšMc2ž2 CRF—˲Œú‚À¿õÍ×í­ýÑ{Ÿôwzi’Õu}|z¸¸;»_dY†‚4ìö;yžGa”eMCI–MŽÂøòåAÇ{/¯zÃîWÕXýuÆo§Ä~÷÷·–Ø/úÉõwºFC?yx4½›Éª¼ÝXf«9Øé~ÂÞÚy–¯뺮ëªò½`~¿8:=¤(’ã¹ùt…‘ ð—g×¢$ÖUU”eÓlˆ’¸][UYf÷ ßó9ž ü(ðÏñ’8MÓúÑb¶luÌùt‰yò¼ÀôîÇ!‚$%YDa»µo.nyåõ‡B𦱽¶¬È›Õ¶?ìö×vï‡ßÓtU–¥ªª(Hµ:fÃ4V‹M„ËùZùVÇÄôU•i†Þnl¾&½ìׇÅ~†¡"ô£ïÿÞ¯u_×ûÿüø%,áš7 _D/ë9^»ÛR45ð£õj«Úd<ŒïEIxôê)BÈsý³gÛµµ´[WŽ€µ6öäæó`>zï“ý£]Y‘êºÎ³ruCÃ9w8¥† ‚$êºÞ¬¶ïÿäý0Œ†nuša%Iê¹) Ân¿óÑ{Ÿp{x²úÊq]£À&ã)|ùüëGg÷slÅp{5®ë!€5!¶å|ð7M=ÏrHÓ˜ë9Þr¾:8ÙŸŒï?øéG Ë vú‚È~8½›ÕUÕ꘼ÀÝ\ŽC?¬êZxQ£02ÛMA‚`úå³ E•|/¬ë:S@Q¬kQ³4¿:¿ìôB$‡»ýþ°»^m1'[ÓUUS³eFq”àckwÐE¢(\м¨)’ã$Y‘j„‚eÉ÷Ld­k„2Û&dzX‰[–µf¨ýA×κªE)ëJxHÓ€<ϰ–FoèIa?B€ËÑ!TŽgi–.ò’f˜ª,)Šj¶š$E.¦Ëª®qzAš¤e]ó$S•I’«Åz»¶^>;_-V?ÀÒ쇾^nÖËMQ»û;®íùnps5nšþæ#ìA³Ð±ó"/‹¼Èòœ$–cÒUeÅ Ë1‚Èo×–f¨Š*£ñ'ÉÒÞÑ®nhf«¹œ¯êº~ðè[ŸtzíÐq+/ ½Ã]@‘ûG{u]Û[ûíï¼i¶Í,Iï=ßhè’,Ñ4캳é‚ã8^àxž3[M£¡¯—›(ŒöG{žÞͲ<|ë{ïÈ²È |]U×·˜wf„ÞÐã0öýPxkcAHq<Ç |ÆIœÆqryv?+Y‘V‹ „ÔÞÁh»±¯ÎodUžã¹Ål i¸ÝØýA×ó‚$IdUÊóœ ˆÁNÇ ‚Àî›_Ãøw®Ä~áK÷‡½ÝƒUS]ÇK“4Kó]¬W›²,OöÏ_\žÔuEq‘zCk𠽡¯î0t²Z¬q°Š( š¡îì’8­Ê*cES|×_L_^ökÅb?ïÓô_ÿÏ¿ú¾þžûýßÿG½øE‰ýÅFáÏÀ›/¤—­þ‡ÿ¢®ªíz{ñâ²Ùjìîï¼úæ#MW5CãxöâåÕ.µó½ßÿN%„ª¦”¥³œ- ‚h÷Ú Ë,æ+ì¶d¶›Q×5¨šº]oo.ÇÛõV34ÝãX.E‘Â,ÍëªÚ;‘Õt/^^mV^àŸ¥PxÞÐ$Eªª:ôCÛrú;=(Š‚(‰u]1 ƒHâd1] ¢°4òÜ`»ÞÎgK,±ˆÂÏæ!ˆ¼ ¢,NïfÏA6šFš$š®Ò4Ýê˜ÃQŸåؤ²,#!)Bšd‹é’åÙþ°‡Išfš¡€€4m¶›"Iˆ£8 c×ñZ]³?èåyF–´:f„¸$k ­ÛëäyE1Ã2EQx®¿œ¯:½¶m9ÇûEºŽWÕuP&8Œ PåvcÅqGŸµßßýëpà$ Çv›­9DA„šÞÍ’,‹Â÷ü¼(¦w³,Í÷vëºPU–eFÖÆâxîærŒ­ª!„š®*ª<Ìó,/Ëòöê®È‹†i¢À°t^uUé†ñf½um÷èÁaÅÃÑ@Q¤v¯…Q'IœÙé¶×ËMU×eYn×V’$QÇQ¢é*Ã2“ñýl2—UÙµ½Þ°‹õ?EQà•ÔµÝÍz[×Õþánš¤ãë‰çú”EIA* ¢Û«ñj±ÁŒSŠ¢°E’à7?~{%öË–ÙÏ_ãË”XÀ»ýµ±Œ¦1¹½ïö;¡Û«1Ãн÷ÉîÁÎù‹K×vwö†ÖÖiwÍ(Šã0¦ EÄû?ùÐl7f¼Õ1qè!ÍÐín+ðƒ"/<Ç?}åØ÷C³ÕàþùÓ—²"CÚ[§Ý1]dz-§Ýk?|å¤Õm~ Âb¾TuµªJ’") âi>]>|üóö˲Lâç96̆c¹ki[e'aÍgËéÝŒfhœt»œ/OvFª*OÆÏB?¤Z74ß¶këK~¿Îøÿ0ÀõÅ­m8Š&eø¡µ±³ÕåÙµÙn~À°Œc»,Ǧi6¹½j¶šRÛÝî¶Â ô\ïÅÓ³º®UM1:B!4»Ÿ·ÚMŠ¢’8yþôìðäB [3é†Ö˜,ÇMC3T‚ Ξ_”EÙî¶$I\¯¶ ¢wu~ã:I’u]Ï&sÏõ¿ñz®¿][FS_ÛrΞ](ª|úø$ËŠ8ŠWUåXÎbº<:=|뛯‹²xw=é{ÍV£×ïÜ\±ÈD34U•=/ƒ°,KŽc“$u,wgo ÉÃК¡I²´Z®– Ãx5_ ÷†i’^ é*Çs5ªÓ% Ý5}/ˆ§ñÅ‹«4ÉdUäE‘ÄÉÝí½fh/žžµ»­,ÍÇ7“ûñ}Ãl¼úÆ#ß ¸*\/65ª†€p,!$)AUY:¶Ë0Œ¤H Y‘B C“Y••ï‡ØÓBJ”¤ªªB?Œ‚P74P]#BõvmÇQ¬Ë2i–S’$”Äiè‡$$UFuí{AÇLN+š"+€ç®íq+J/òFÃ@¨N’”¤È²@†ËùZ…N¯}òðp|3yúä™( išÑ4ÝözýŽ¢)UU‰¢g9`ïp”e9ª6›Õ6ðCYU]¥ ”d1Ïó,ͳ,§(xtzȲLÃ4ò¼`¦Ómy±Z¬Ïž_[fY.iP3Ô¢(³4«ª:MÒVÇ”)IR^•)“(ìôËEI’XVåϲqJAà ‚ iš‚dzib(ªÒvê …AH FïaY¬  ½!D‚"IÕP˲ÌÓ<…4 Ë04Ë~H„ëx?À²,Pšå–E‡ñêÿbïÍbeIÎ;¿ˆÌŒÜ÷¬}=ë=ç.}o/l’MHjCòh ÒH°aÃcøÁ¿óÂ6 Ã6æÉÖ<<6 y Æe#Ë%RCv³—ÛÝw?û©½*«*÷=3üÝTw«I±Ù=PÃV<Õ©s+OEݨø2¾ïûÿþ³%BŒaê¢$^œ]½ù£wò,7LRToÐYÎW«…}$‹Q»ŽWoÖ¶w6Y¸Ž§Õ ¬HW4M ¢à:^U–‚(h†ÆñˆaÀéÓ³þNïèö †¡Ia !4Øí³»{°£jŠçú¢$*š\Ë-«fö‡=ÝÐMž\O‰òÏÝz7_8ÎóüàÆÞr¾ò\eÑl<ìô“8¶j† {;I-É’zïVQ”»;»ûÃZú<¿>¾s£Ûk“´³ç†eX5ƒãÙ«³ëÃ2eY²Ê‹‚fèÞ ¡»õ¢(^Û›ªªdEìõ S'­aº©ù^@Ó4b‘(‹,ÇŠ¢°];¼L³,ª*¬é2aiåyÁc@Ä0š¡hººœ/%YT5et5©5¬þ°;Ÿ.EQ íé²"mÖ8ð‚<ËWK›À/9žë º b¦ã9Ë¢7ju+ "Ïóï}å…V·iZ:/´B4ÃfÅÅé¥U7uCƒªº¢jÇê‡ô€¼¹OPþ‚Àû~ jŠëxº¡¦>ÏìպȋV§I3L­nz®×î¶ÎO.ã(I“ éj£Uç86ÏrÅ%׫‹ëÕÂ><Þ$AÓUÒ;}öüââôò'Ÿã®—ý«Å~t}û[Ÿ×_ö£µØæþrýܵÞñõÔuܲ¬Ú&bQY”«…]EDEY6šu"¶žOW×¼À[u³ªªÍõ†åXŽçæÓåùéå{·Š¢œŽç“8¹º¸¾8½êö;^ûÑ»O†{ƒZÝ<ùÞhšj´êÎÆm¶y–»ŽÇ0L¾qhšî­Ú|²°—¶Y3_|õîf½Œ¦ÄŠ*ðC†xŒAUVeUé¦ÖlÕó@¢(ÖL‚”$‹Âð'&Û_ôø²„ØÏdæt>ÃxôÞÓå|y~ráîÁŽY37ëmš¤{;UY\’´›ë¸ bž¼ÿŒ¢¨f»¾^­“8Ž§ÎÆ¥(ÊÙ8ËùRQUS8ž#:´×ð¦$‹7np»wc×Ùº‚Èc ®/ÇëÕ†`Ïž_X5CVä"/ˆGESd5FA!ŒÂ¸,K\á$N³,»<¿6LÝs}M×¼ùÞ`§·s0$ÎÞª¦Ì&óÓgç×#"d×tµÑ¬¥IFì“UUö\Ï÷‚'AzƒNžåY–5Û E•1ÆU…ÄÄQò£ï¿AòdQ¥I*J¢aé—gWŒñÑíY–µÚ €½\·{­³gQ1¯|íEÄ"wër·³?l®§‹Ùª*«f»¹{0œM’$6;Í8Š K/MÒE/¦KÃ2ì¥ýþÛªªîõ7k'MÒ0Œ~ôýïߨUT…~çÓ¤`§1õf-£ Ÿ>|Ær¬»q‹¼èö;ËÅÊÙº£«1EQ‡ÇÇ×Sš¦ó¼àE!KswëŽ.'‚ 0 -HbQ–¤qw»q²4—:Ër”æš¡eiVU•¬HDµIÓ´ òYš…ATU•aéi’yžó¼,Ï ŽEŽãⲪ,H¼çø®Š¼Àr<·±·ˆa²,/Ê* "žçDIÈ’œf˜ðbÒ@Ó´³q»ƒéºr] É"±ñ ¼°˜-5]ìâ0F,ºûòžçYŸ\–.ˆ‚( ç§—U…ÏžŸ×ê&Ã0y–¯íMš¦UYÅQ|ûÞMš¡ó,¢øsnŸ:þ¿²þìé|¶±±7auz-–e­zYVGû„¶Yoã(9}v.ˆ<ù¾¼úÚËEQ–>›Ì]ÇÛ=Ø)Ë"‰ÓZà ü "ßÂ0’É÷‚Þ°Ót5S]Œ‰Xš¤º©oìÍÞá®nê¢(\ŸÌšiÕͧžw§ÏÎÆWS×qÛfD„s7ºœÔ5Ä¢ZÝ’eéCS2 ›zÐ_M’8YÛ›å܆þÒ¯|=Ks1š¦8[·ÝmîîÇ@Š¢(êν[Û͇.î_¨^öo¸KPˆä5Ÿ_/ ÀǦó“CùÏŒ{‡»äV©ÛïŽïþánD£Ëq‘ à ©š¼œ¯$Y ýH”šaò®pF‚(ºŽËqÜlºˆÂx+D&à IDAT>[膖ç9Ïs̳ǧª*«ºZoÔ<Ç}ðæû€‹Ó˲,Mˈ£¦½´ó,ãBHhc×ñˆ­Õvãð"_•ÕvãyAÑbQ»Û„2 ÄIà‡išÊŠŒ«j½ZkºjZ:BÌÃkEA³f¾ýƃV·‰´³7îõ—ó„@„½Ã0ˆ’$ÁUµZØI’í¢jŠnhc„ÎO.4]0ˆøžO‚Q%I Ȳ|1_y^&ét<ëö;!,òܪ›I”$Q\kÔpY±EáABœ$+Ë’eQ'qœ”Uå{±!6/r®dœÀ#DY(!̳Ì÷‚²¬Â |ßó‚v» 9E±ª*E#Ž•eIÕQòˆ½ûògã\]ŒÂ ìõ[Ýf»ÛbY4›.Š¼Ð M’ÅF«NÊH¦ex®§éª½°i ð/)’DzDQ”i™žëC "5Û ÓÒGW“v·iXÆÃwy^Ðê4öw³,ou[VÝbú¡f¨¦e\œ\–EṞ( ÂZÝìö;EaŒëÍš¢ÊeY‘îZê7kUUÙËõOøqœäyÀÞ¬·g'—«ùÊóü$J{}Aˆ: ±h³vòøœþ²ÿÉï|òŽáƒyÝà³ée§ãyU–ª®®Wë<Ïg“Åf½U5uµ°‡{Ïõ) E )¢ÀžÊŠ<›,Ìšø‘ïùÄEf»Þ~åµ—b¢ RTI’?P’²ÂÆÞ ÄDa8Ÿ,ž>z~ç¥Û†¥ï¿?›,Žv‰ì0¾žÖµwßzÿñ{OÞyó½ÃãýíÚÉóœØx3£ËÇód›Ó ­¿Ók¶†¥§i–g9Ë!«f’ú«ïslÇIwÐù¥_ym9[Þº{Lr³ä0$ñðæÆ1LÆŠ&wµŽªÊA’þ—$Nß{û¡ï­N“¢¨v·¹c/ðBÄ¢0[ÝæÆÞAT”%°ÝmæYÇ1±¨Sšµv¯í¹Æ@Õ•Þ°«j „ãXÀ€A ¡Û˵( ikbVe­B7´Y–HŠ”ÄébºDQV¤<Ï}7ÐtÕ^m<×óý`9[²,:?¹4k† ^púìŒåXbÔ||ûÆùÉÕjißzá8Žã'ŸÙK»Þ¬5ÛÍÕ¶WkQò¼èöÛÓñ!†çù,Ë– Ûj‚ Ã$IZ–¥nj’"AË¢\ÌWŠ*ë†^Ešfi’´Ú$ÉÜ­Ë04®0ƒPFˆe‹¢¨ªJ”$ òÏñE:/ E•}×'¥Š¢ŒšYäİުWU…« )ËqÀv‡ay6Íò<ÍŠ²Œ£¤È ÝÔªª ü€ø­½Mâ$ò˜‹“+Qž<|ÆqÜ /Ýò\t9žOæYž—E)Š‚ÿ9ÌW4¹(ÊéhvqvµÝ8œœoÖÛÕbX±Lè‡eYJ²Xáª( RW£éd¾ZØVÝ,‹R7´Ùd }R«…MðÖÓÑŒã¹À Ú½©}~xvr‰1à8.M3³f ’D ÁÚ­WëÀHª™Üîܸu…ñË_½ÇrìõŸÛï°,òýÀª™w^¼É²¬njžã__Œ_þÚ½v·…Câkšeˆaˆ—˲I’´{­V§iÖLÍЈî“÷ŸAoÜ<8ºyøgòÏõzƒã,Ë8m×Û4M¯Î¯‰¤2 £ùtùðÁã"/TMyöè¹nj„· Pue¹XaŒÉYç‹_ºû‹:?e^Ÿ¸Þ/"çcœç9I8¥Iº^mvvÚ½–½\—e9º__ŽêÍà ÝÔ’8Ý;®–kE‘ÉÆ¢hЬHUUUe¥é*ÉÓvzY– ¢¸œ¯ €ª¦$IÊ FQ•F³Öê´HɃãØÁn?MRrúœO—ÃÝ(‰_yí%Ïñ KŸOÛã¹ ÕÃZ£Y× •M¢0¾<»%‘ØÛɪL 4ã«ioØqØéµ¦ãùé³sY‘À“ëéÞán­n±þ5þvýŒÑtöoì5ÛõíÆMÓl¸7 $|ß ­:MSÍvC…ªª³%€PÑä½Ã]Ápàn½Þ°G‘ajVÝZÎW M·: Š¢d]6-]Q¥å|U–• ŠõF-ŽâN¯uy~}tëPQå[w›íº$‰gÏÏ_xéö‹¯Þmw[Š*˪üÊ×^¢(8Ÿ.‘Oâ4I¦Õi°ÛíµË²:yzÇqY”y–po@šf ÃLG3IOžžb nß»¹ZاOÏž<| eáýÁr¾R5¥Ùn‰¡1 ðƒÐNŸÅq¢(2Ù^_}íåÞ°+¼ëú¸ªÖ«M–å‚Àß¾wS”Ïõ®/FÃÝ~Å­NSV$gë~$1Žâµ½µ—kÒ²XE–åi’ø~b/×${Érlžåžã9QÊ"Š¢\ÇM“, £V§ál½ÕÒVIÓ5ıi’ø^ [zU–E.Ä Ís–e«²Ò -ðÒà9ÒEªÄ¼$(ªœDI„Š$*² !À”EɲŒ ‹’$%Q"ˆ›,ò<‡ž>;e1 ñ0¸ºͧ‹ý{{ázµyõµ—›&Ç¡"Ïßùñ»Û³w°“ç¹¢*i’Ž®Æ4Mz³U3ž>:±êæÞÁp¸×÷]¿7ìÖ›µ<Ëó<D~t5^-ìV»¹{0ü´ˆð™Ç—7Ä~§O±Ÿõ¸ª6kä{97k&±Ë^.VÄ”p2š½ô•»µ†U”e–fVÝ,Š"£4IÝ­‹1$W!túô¬Þ°Îž_\_Œ¢0¶j†çúÄɘA!fco‘ߨ[†a’8}úèäëç+Qñ‚‰X¤¨ÒÁñþÅÉÀÙº?üþVÍ%±Ýmîi–eVa˜÷ßy!l¶!¡( qS•&iš¦ñ6ꦎX¤º½´F¬Õ-r,aY¶,Ë/Ê_öKU‹ý Ä€ïß¿þÀ¿~ô×ÌëgÌ7x ÀGk±IwãÏæ/ )*MÒ«‹Àªu9ŽóŸ¨üÌ~a½ì—®ûÑöíoÿ>ÑË’N㟠 ɃŸòüïÿþïÿýðê‡óºîçƒÿšüœµÞ(ŒÊRoušóé"K3¨/ò¢Ù®÷†Ý²,!„ÓÑ,ðÃn¿ã»>EÓBß «²äyîùÓ³'Ÿ wûQ/ç«8Š BÈñá ƒ 9.¯&V=µ½=nÖì¥MŒ‡~íï|%M²ñõ¤ªðþ᮳u·‡¢JÄ0Ì›?|;ËsÃÔ˲<<Þ'®·îsWájco/ήBE ¢0ÏËJ²x|çˆà=‹dE"¡B34B–'Ð`Œ1áò …~Hålj¢€âx®7èô‡=wëæy¡¨Òzµ®7kÃÝY¯y^`Œã8I“tÿÆ Ýk%QüÖëX)šbZEQ C“¯Æ #Ïóyž7kFUUišm7.MÓQ³ʳ¬ªpàǪª‚1@ˆ ƒ¬*+–CeYmì-Çsˆ¡Íº‰1pÖŽ(‹Ûõ–AHQeRì Ë*‰ã<“„A¢$…̃ÐÝzE‘KŠÌ0ÈsÝ4Ëòu ôý Ïò$NÂ(®Õ š¦Ó4Ûn¶¸Â_ÿöQže^xžæÃÊJKB 2|Aq,¦™0I+˜{aÅó¼Ñ «*‹³qœEµ6þ×öïüÆï¼FÑ´³qâ8â®,«¢ÈC¿‚°—ëÕrÝßéÕ›5–EÏŸœò‘K~žñ%_`¿õoÿ]ð½ïmÀñÓO.©WBwúØ{¥Áã¿ÿ^ý7÷Û_Ôƒ¸Ž‡1ö]c¼±·óé"ðÃ݃á«ßxeco<×ì±aišv{QÿË?{Bxöü¢ÝkŸì0ßüÑ;íNóÆ­ÃéxFnÙ¯/ÆG· Öøþ÷?®7k,ÇJ²T–E’¤o¿ñn½Y«7k¼Àó<‡1xþäô­×ü;ÿðwnz®¿±·¾çÏgKæèöašfº¡ ¯›úí»ÇÃ2.N.gÓ…aêÎÖ%òÓõjÓé·“81LãYY‘ʲ,òbt5_]ŒêÍDZW#Rÿ88Ú[¯6ËÅêüäÒݺõfaY•1ÆÛõ6‰“åÜ&/Isõ-þ•|óçÝÉ+7ëm»ÛÒt¢éV§øAoØ%œ†eôwzÇò<·\Øã«I„¤÷ cRPÓÕ$N¬šÙhÕÓ$MâT€ïÄ=L7uUS$YZ-lE•!„¡†~8ºšgLE•B¢$ wûÛ;ŸÌû;½V»iZF§Ež¯öîþ°Èóë‹b‘ª©4M]œ^=yÿ©¢)²"“óMš¦E^„atöüb9_EAd/׃ݞ(‰W#{¹ŽãDV¤"/¿÷Tø •âÒË~Ik±9ÎöþûßûþèŸbð‘C0ù÷¿þð÷Èûù$£øÿ»ÊÉo>™1þ´Ïç§}nò¢˜çÍN#Ï ßõ‰gkš¤4CŸ>=Ͳ¼Õi”ჿG¬ÚI?9ìôuC“ c¼»?„5¾šÜzáHQbu£i yó»ûCžç²,ïçEAÓà(Œ5]UT™ã9buúìl6™Ë²´¶7«¥M²Öµº5Øí3ßøÖ×à ¬5,š¢xQˆ£8 ¢<Ë%EÚ¿±kZqO\ΖÞzÿàhogo ˆ‚ïúnî½ýúƒþNOx^à K—i|=ÝØ[^àw†,‹®/G¡v·Õíwˆt‰åز,)šîôZ‘‚ 3‰’„« !ôÎß% ;VÍ0-# cÏõ8ž{çwÃ0 ý°*«²¬(Šeq1[Ea”eYš1’"é¦.Jbšf㩚jXz­n–%ƒ`5_%qŠ1ÞØ¨D,’…‚xÀví mì­ïû¡îî ZÓ”0ˆ  ƒí„Ð4uÇñÊ¢”% B@#ÅsüzÃÂDa,+'p@]Wi„<Ï×4•FLâŠ*·º-†a8Žu]Ÿ‚” si–‘b¶çŦ©—eø!˲µf- ¢4Íju3 #Ï ¢‹Ê¢r·k–Cƒ$N À¾TfY6Ä!9¦õ¯Xus:š•EÙtB?l´E^̧ ×ñ:½VYVÏŸï7Ûu–CˆE·ïÝlw[Äx.ðÇï>Þ;ÜM憩·{­Ñå¸Ö°xQp6ÎñíC² DYÜnœ$NˆµE‘gW{kÕÍ7®/GˆEÇQÕvÝ­;ØíK²tyvEÓ4„À8Š"×ñúä(Ä0gWEé¦FšK·gmoöw·G’DI»ýŽ¢Ê’$†A¨éÚ`§!̲ü—~åµF³f¯Ö²,]/G{Aî ˆE?G€øôñå±í«>õ-þ\!ö³Û?ý¾Ý8’"ï‡~4ÝN!„ç§—óÉ¢‚vÙ IDAT,˽}üÞÓ£[‡¡ë‹kŒY3AXÌ—ÿòÏ^ŸŽfw^¼‘¬ˆ×—#–e³,‹£äìùƸªªn¿Ýßé§iøát<ó½!Ä œ,KÛSU•½ÚÔ–¤HIœÜ¾wc¼Z®1ÆfÍ ´–,Ë=ׯ*<Ü6;M†¦ þSV%ßó{ƒ®Y3&£BLQ«…MìÙEQÐt•“8¡(Š6V‹Æc<Øéð êe¿¼µØï|Ü¿ÿÉÈzÿ;˜?Ý/ö§éb?^‹ýàý|€Ï¦—-ò¢ÑnTe%É¢$KŠ&sÛé·iš^¯6Ûõ–¸xʪ’¹ÙnüàO¸˜.Ë¢|ñ+w÷w½ûäìùyšd›õ–åXš¡i†Ö4EVeAàç³e’¤g'£Ë±¬ÊU…E&Æ©Ä"Q%Yt¶îb¶Lâ˜ç¹o|ëk7ïxž7-# #wë2‚È_ž]åyÑt¶ë­çú,Ë:a!è{$«“eY£ÝØÝîì XŽÂX34ašfeYš5³Â¤(†a¢02,½Ûoy1YÏò,—dI3T@­nÅQLT1‚q/fK×q³,K“´(JòÝp6ÎfíÜ{ånoØÑtÕ°Œë‹‘ë¸EQ2ˆÑ íν[EQl×Û0ŒÃ8G7uЦi†Q5…ãÙ(UÓ Ë0Uèƒ<Ϫ& ¢HÑ4À±@Ï󜦨8I×öFÓT¸¨*¼Ýº¾ç—E ¸òÝ8aSŽç8Ž-в*Ë,Íʲ@GSt‘ç¶½N®§,Ïj@åxn³vEQX¯6Ï ’PäÆXdyUUëåZÕä(bÜ[%'p§OÏöwQXÛÃ4Š<ü¸áBHÑ4įW[A’8ÖM½Â˜CL…(‰¢$ŠGqY”ã¢(«²âxNRD{iû^ðæß%q>]4[õÕr}}q}òôì…omÖÎÙó‹F«!LÓ4Ëàja»Ž!E34!>вø,Œ³àôù/ÏÕ›5Aà+]íôÚgÏÏ7öf9_…A)¨éêøzâ{ÁÅÉ勯Þ=}vŽ«ŠÔ€ µÎ^Úúžßv!„ÂÉõ´,ÊåÂþ‹ïýpÿÆÞåÙ5ÑGN'óN·å:^–fª®Ú«õèr²¸óüÉ©çzµ†EQEQEžû^Ñ[?z êÊäzJ̺IÚƒXãݼsct5þöK¿þYøÿ}ˆý´ÝA祯Þk¶‚À3 óäáÓÞ Ûî´(HEQoÖ¬ºÙv³,ìò,o¶ë¦e@[íF­n¾üµ—‘O“TÕÔª,i†™Œ¦VÝdYÄñ|Øesúì¼Õiê†öú_¼Ùl7DI 6_VÝTT¥ÝmŠ¢ðøýgoýèB̳ÇÏ÷OŸžAŠÚ®·õfM…²,) FAT–•iéyžW6k¦½Z+€‚PQ•v¯-HbY­N“ääîÖ%Æ´4ÍHЇQ'¿˜^öK]‹ý è‚^?˜þt¿Xð1Fñ‡õÓj±äFáõgÒËjðß*ŠÄñÇsUUÍÆsAà7ëmY”Û‡q­aU~üÞS{i¯íY3ʲ8<Þ—U™aè<Ë5]K’dgÈ ‹bÑõŸÛoEñäáóªªDILÓôö½›Ç "/Jâøzº]o SEe˱š®Ò4eÕ {¹N’”¦iŽcÉY–e,Ç2üþ?†eP4õìqè»>ÍÐõf½,Š MËØ¬·£Ë ±u$…岬ˆ5wQ$$ˆ|šd N·§7ì"ùnP–UUU¤j«¨JàaRxAšfY–Ï&‹õjÝvU)ËŠxUS4]Åõ¯0ˆ]NÞ˜¼Éóüx4•$±,J1µ†Õî6ß~ãï…,Ç:I’¦™¤Hÿ¯þ£(Œ1À óc¡ï’,rW”%ƒè,Íâ0æxNŒ1EÓi’°,K3t–deYbp…à ây–a˜$IÊ ËŠTdEšf<ÏE)ŠfhPªª„ˆaÄ 9ð½@Qd pšf4EQ4U–Uš¤ä¤¥(#^àÉ}FÅ¢8Ž£i BX–eÅBš¦}/xóÏGˆc¢0–$±(Ê8JI  L’„eƒPàЦ”EIÑT–¦@š¡É^Àrl’¤þ/Þÿ¥o}s6žŒŸ=>é:q»®'I"„@QeHQ¼ÀYu˰ìåÂŽ£˜¢¯/Fç'—UUb j ëàh÷òôŠ¢(Ц|/ âÂþN¡iU“UYÎWžÀÍ' š¡ Eo¶E^ð_kXµ†•DGEQìöìåºÓmm7ŽY3§ãY«ÓîñD<®éjUUîÆ}ûwû;½½Ãb)†Q­aõ‡½À–óUUaÓÒ]Ç ƒ0˲ޠ#ˆûû‡;EYޝ&ÓÑŒ¶DL\±[˜\OÉÝ@Y”ýnUUÍvó§E…OðÏþä/w¹7£ŸlJå™ýÛ¿|üáÏúÅOv‘O<ó±`ù‘ã¿òÌÇ^ùWúô}2Š~J\ýÃÿíÿÞ¿ûjÚV½7è{8Œñl²à8nïp·ÂU­a!„êÍÆx2š²,R©È‹¢(ƒ eqï`çðhc<MY¯WÄb‹eÙZÊ£¸( ×ñB?œO C'a­n)jÃší† òVÍ,ŠÒªýÝþbº FÕÔ»/ߨšêl݇ÞC,bÓl70ÆI”\œ]ͧ‹$N÷wÚÝf³]çn»ÞŽ®'㫉aê‹Ù c<ÜÈŠL„¹I’8ÏÏ?¾û`À÷ÿ#ÿ€ÿì þÓÿá“ ìû×ðŸý³=‰øÁþóÿñ“ ì/&ð_üOŸ\`?œ >jÉþÁûÑ @Ð[¯Ïø¿úƒO.©/à¿þ_>öW1o®à¿ùçŸ\`oÙðOþù'Ø;ëÿãÄý~êçô)ãâìêðxŸx’ÆP5…åØÐmÇ'ùáÃã}ŒÁû5[n¿ èö;¢$ÊŠÔî¶¢0ZÎíV»Ér¬ª©š¦äy!+RšfÄ"Ï‹ÀB?,ÊRø4M§ãù“‡ÏмPuõâärµ\¿ðÒmßõÃ02-ãù“Ó4ÍU6kæÅée–fóÙ²Óm1,ÇFa!qy4-ýìù91Z)Ë ÀrìÞáÎøz…ñã÷Ÿ{ƒ„ðéÃgE§‚ÕÂ&CÓUß œÃr¬U3¦£˱eQ°;Í|?dY4Øí¯+ÃÒ Kow[«…mÖLŠ‚VÝE1ðÃ4I¶ëm‘BÏó9–%}Õ‚(°,ûΛïýø‡o–ñË¿òÅ|Iüd~ów~ƒeQàäeY²-¶çxVIÊó’M‰yÁ"ZöÖeUU<Ï9N‰šxø  ž@Ó¤XP&¡ã+B¸JVÒó8dƒ3€+ŒX¦(Ê<Dz*mì-ESˆa¶‹D@†¬JU%QBàé<ÏÓ8¥0[eŒk/EI* !&J0ƒ˜²(Ó4Ë’ŠfhA²€bdQ`%= ¶X$itÅ…A´±Óv¯æ:QYhŒZ‡ ¤ª,K³0IW˵f¨U™ðóö _yíeÃÔã8¡iZ’Dgãܼs„ʲL’ÄÉx6¹ž†AøÁfdh³É°Œ<Ë‹xóÝ€êôÛ ÃH²ôôá3†¡›í†çø/¾zWVd–cE*Ê’fèÕÂî{¾p/HÂv½ ýxA½Ys]ß0õ<ËUMq¶.MSµ†¥é ±dž¦éÀ $Ezí[_ãîàhcÙ4Mã0žÏ–“Ñtïp7ÏòÍÚ)ʲÝkíì vö‡ÄÇ@hÿ¿ì½ÉeizÞwæy>÷ÜyŒ9"çÌʪêª.6GQmÈÖ€ÃðƼ7`zç…þ¼´6††·–-Sf³›]]Cf噑1Þy¾gžg/¾"!Y´Å¶ÈAÕ» |dFœ¸çœï{ßçù=½;èø^Pä9ØW>ûä îôŠ¢P*rà4CS4…ü*)îÿøÿc‚ ìW¹õÿŠõ¯¢ þ:a#õŸþ''ß_¿ZÍ'‹»ëá»7ú{]°G}&}kLî¦ÍNpÅ_¿xûÉç1º;YBËùZ’Å$I¾ú³jE¡ L ’$]-V¶é@0œ¦)Ë2JEÖ·†iXÕº6¼o'ÝA'IÒÍj«ïLQA”¤ÈÓÇ–aåYG1Iâ  {·Ña™öéƒUSÖ‹5Ã1 ûÌs=Òí·}?ˆÂØ1«*AÍNƒx^äÀîÜu\0òÇ ü_ju‚ú™5þg@© AÐ_|>ÿê:ôwý?ä¯<£uþè¿Ô·Ã0‹ÙâüÕE«Ûl´ê¶iAøðɽáíØ¶ÐÎÕª•0!A«Å'ð4IÛɳ °ùê­Zà•ªzq~U乬J›Õ–xEÛï8ÇöÓ%E“yž$±Ym¾û&[ÎWIœvú­(Š0~1[¾úö ÇsÝ~Û¶ì·~ÿ7ò<ßNò¢huš ·6Ž’"Ïqk´êEQbú!ÍP†Žn'Õº†ãX»×ʲüÁ“{Yšç¬¾3|ÏG`˜åY†€@FùÕ|}uq³˜­´ªzrÿ8Ž"I‘м€`˜f¨<Ë ’ H"‰S˲¤f»Þuú­½ƒ>Aë弆ï®GYžU4õ‹ßþ¼Þ¬òdÌaïý7ÿݵYm¿ýò»F«f[I‘Ý~;ŽÏõ\×h·½ÃE“·Wʦn7;š¦ªum½ÜP4usy·4D~·Ñ}ÇvöÇöãßþŒ ‰—_½êïwó¼¨7«ëåf2œµ»Í AÄ’$K`XøÝ7¯Ž÷Oö¿þÅ‹4Ii†%¡Õi²óáÝË2•ªŠ (Š"ÆÎ¬5«Q/ç«ñÝ(«ÛÉó"ÏóN¯EèxDaDR$Ã1àö¾÷è7?þü£0 £ SÆ0ˆFwãV§‰a b†¡¢ÊõV¤È£ÓCÛr2_/Ö²*Nµ®iÕ ŠaÓñlt;FxpØ7u«ÖÐp d²ÝÖèÚEõö:¯_œ—e¹˜-Qð\o»Þ¸ /ðçß½ïïu1 Ûmõj]˲< ]^äy“U9ŽâÛ«;cgÞ^8žîþÍz×é¶Ò,7 k1_mVÛÕ|-JBÇ®íaºÛ¾ç~AÅw×£ [ÆÉ½#š¥!Ib2š‰’e¹¾3p $AQe CQ Íó¢,ŠÝVì÷ÚÝ–±3}?ˆÂèWJqïv»ôGôWÿþê_,€-<½,ÉbžM¹ÅÑ,eyàqs+)h®à8æ{CjEÎó¼kŽ‚$†~pp¼_Eµ®í6:È8kuõfEQŠ&µjÅuÜÞ~A<Ë<×£&ÏòbÜro9[&q‹Üà /J‚ª©[¦MAâ Ç„A”g9DZÓh¦jŠ¢Êžç#\kÖ\×ÝŽ‘òüѽG§,ÇüòçßÖ›µj]Kâ†á0ŒÒ4£ZVŠ$Ny‘_ÎWw7£õbS–P’¤ã» ÍÐ4Mc8f[Žc¹0 #üüð/+üP½Õì4ÊêöÛ@ œ$‰V«X† œûøþ>xSjµÊj±–dq»ÞùžïXES¥išÄ‰¬JàO©oõ½ÃÇsY–'I*ˆüb¶"A`œÀ%EªÖµ*“$m¶,Ç$IªVäÀ‡7#USIŠˆ£d6]<~ö £F«žeÏsÇg‡JE)‹drø~`[öáÉþíÕ]FZ­R©ªišn×;I‰ÿòO¿®54Y‘fÓÅà°oì p¿c–$É_Èm è_3Süaýß| ðõr“e9å<8Þ[Ì– $𞊢¬7«‰'qúí—/k*Aà8«šòáü²Ùn’$~{5Šãè¡h†2tK”DŠ&ÕŠrÿñYQ”4Cã8nèA¢$°›ey§×¶ †aCëÍZš¤ Rs³ÞÚ–í¹~­Q=<ÙOÓ̶ìåW¯ò<çž$ A’8D>Ï ŽgUM© ‡\­WZFY$I€#”m9½AG©(“Ñ”e™f§!)b§óé‚ †YŽñ\ŸùgŸzÀ²Ì«oßìíQ4u{=l´ë{‡ý‹·—,Çví4I‹¢T+J'8Ž]¾¿¶-çèô@«V šŽæýý.‚ ë妢)»Í®Ùn”%ôþ͇ùt ÜÏý艬Ê$I^]ÜdY†aè›—ïºý6I‘’,†A T€&ôW˱3i†žÏ–Ý~DZZ£ªÕ*jE´wQ ÝÌÒÔ±]ÀeŒ‚0Ëó²(òÂqÜ2-†/˜Myž "ïØ.ÇsD“ˆwHây®Ñª×ÕN¿=Í ÝR+rY–w7£Wß¼ ‚P’ÅñݤѪc8æXH¿ßMw[}ï°_–%E‘¢$ÈŠ˜¥Ù»× 5O’Eè‡úµÔÑém9í^Ës<^ä<Ç›Mæ ×Úv£;¶;¼=yþ8èPåyÃÐ<ÏÏœz˜f†ê/©w¯/ʲüño–e™(ñ–aMGóZC‹Âp9_Ã0ìØŠÉÕºF˜MFS@'\/·€;΀|ýÍwç<ÏEQ„ (Š"E1Ÿ.H’ˆÂ˜åXEÀ0b·Ùùž¿ÝèúΠhŠaè4M-ÃîôÛ¢$ˆ’Ðt1 µ-dçaŸýäS}«#(ZÑЦ´Z%ÏóÅt™çùf¹‘d±Z×.Î/ó¼hvÃÛñj¾öýàÙ'OpÛ?x®'«r­Q8oÇvmÓYL—’"ò9w=bX:Ï‹éhFD–å‚È£(ŠáØv£#(2Ÿ.j AÑùd‘¦™iX CgiFÓT–e‚$0,¼¶4CÿÎ?øM–e*ÕJ­QU5ÅØ™†n˜àåöÑÓûžëOF3Çv¦#èòýu¯ Bѯ.n€AÍzË0´ÀseYŠ’0›,6ë-EQ·WÃÞ CQd«Ó$)r·ÑÇw“‹óËj]»z½Û÷ž¦izõþñn¿ ð•iZËó|>Y ²Z¬­º ðyžã8Ažç’,ÆqáÝÍǰF«Þéµ6ëï–i‡A`™öÑÙ!à’hµ /ð–i§IJR¤¡›–a%IªjjµVÁq¼ZÓþ|Ì)H²(Éâfµ3v†cÙ{‡œÀAôB«Û ƒÐ±ì<Ïâ(ÎÒ,Ï2ßjj¥ª² ø5ýý^ESÞ½ùðúÅ9¦ ‚bسOYï×o¾e8F«iP ™†ߎ‡×£,M ‚ ÃÐï:¦CD§×,ŠÒsý‡Oï“Ùt\ÇeYf½Xϧ ÃŽ)ËpEE\ÌWMeYÆrl£U˲ì»oÞô÷»£» Ðr[†µãÙÅliêV»ÛäxŽ p’"û{]‚ D!ŽcЦ“$éôv[ãðdﳟ|¢ï̲(”ŠÂòÌj¾æ86‰“,˹þ‡ú5ÔÝõ‚ }«kÕÊr±¾|söà¸RU¡FU…éxÖê4%Y$HâÝë‹“{"Aª¦ïeYN’†ã‚ȯkS7íz£]_/7Ž÷Ц@ó_”Å"Ïo¯†ºî¹~ñ}ÚsýáAÓ°Vóµ¤H'÷ŽHŠDäâíeF,ÇDaŒaŠbï^_,kÓ°1 … H«UvÝuÜÛëᣧ÷/X–cã(v,×¶‚n®†»­a¨çùû‡AÀÓr:žÿûÿªŒßÖÅõO¿ø8Y‘²4Ë‹¼(J‚Ä'£ÃÐeY&IRoÖx£: ã/~çŽc$E^œ_Â0 bèZݦc»’,’)Ê¢ë¸À‚¢ˆ¢ÊÃÛ±¢Ê^{6™³"àóà8V–%IâÓñüøìðöjH1°¼&qÂ04 C†nfYž¥)‚ÀX»×DQ¤( –cý Ïs†cPeyv6™ã<ËÙêë_¼`X'p€ï7us6^4ÛMàÒq]‚ S7EY” ìa!Z-7³É<Ëòý£( n‹ ‰íz7¼óç:^­QÅp¬Zמÿèéz¹¹½Ò,#HŠ¡MíöÛEQ¬¨rD¼ÀÉŠÇI§×BP„$ÉN¯u{=,Ëòðô ã$NË ìX–©7k·×ÃÁAÿÞ£SÛ´}/ý°Õn°]p<ÛéµAzÌ“âîºÞn£ƒÈš8J\Ç{ÿæÃÓ¥Ijêæv½#Hbx3zñËWGg‡’,NGs‚Ž÷÷ûi’†Aøí—/LÌ2m˰=ÏÂh)p¾ë›ºI„¾5Î_¿þ£§i’~8¿üåϾ©5«‹Ù è*–&bcnõÙî¶HËÐ-ŽçÀ¯Zתu-Š¢0¦ã IßÒ$m¶ŽíFA‡‘ï^»áy–ƒDØ—_½ªÖµ›«!†cv=IÒ÷o>HŠä¹žRQ?@Q„ ˆáíøé'“8Á œf†¥Ž÷h–þ ÿŒ 3øìÁ1Ã2²"P Ïõ~ô7[uÀÛÆIQ¼Àµ: E••Š"+¢ç’,~ôÙSß JêôZ4C“$A(‹‹éòöjø7f𦣛‰çùI’ òèÙ=@êù¡~=%ÉbQ”%훬ʠSÈÅû7*Uµ·×' ÇʲLÓ”¤ˆ,ÍÖ‹uwЂp³ï6º¡[ÇgýƒÞÕû› #‰“,Mã8ÑwAq/k–cÁçªÖ¨*ª†E“Y–"(BQd–f‚$úÞ²RUYžD^øv·Ùê6}χ$K³ Úf¿§jJQÛ1Ç1†Ú¦}õþšåÙ“{‡Š*ﶆ¤Hí^ËÐÍ4I‹¢€‚þ1~Xÿ׎ ‚`x3Š£¸„ š¡-Ãî:IhUÕu= ÆÍÒŒ¢I×qMÝt,çøìðàx/ ã  R5…¢¨0 Ë$±¢©/~ù]£]OÓ¬¢)½½.A(Š@¤jªc;Š*e¢¨ª©ƒýžV­½wÔl7/©ÓoíýÀF·c’¢ÖËc»ƒýÍÒŽåÒ ]­kÝ~; £‹ó+YŽYÌVeYžÞ?FEÑÞ CR$ÍPe Jpµ®§ †aaµ»M€›`8¦È‹þ^Ãñ8Š«µ †c®ãE‘&iQ–µz•aéÉpÖ´-Ó>>;¬ÖµõrËp Ç'úVGQ‚F}gbÎñŠEúVMC7!šO0 cšçE§Žízž?ºkµÊd4ûé?ûy„çW½A¼Åq¿þp{uqcêÖn£Q苯_9–#Ê¢©[õf5Ž“8úëL¾û¡þ?J’ŇOï®ïŒ(Š– ÄÛ«aµV¡ÈÉñ6«-g* à ¢$H‚fè"Ïó¼88Þ«Ö5ÛrÀj¶ïÓÑÜØÇûA`8~öà¸(ÊñpbêÖÑÙ¾5<×ó\_…õr£Õ4 Ç^~ýfµX5ZõN¿&i„Šb ð¬JEYúžŸ$©±3=×Ã0ìøÞQš¦Žå®–ë(Œ Ûmv¯_žÿÖï}‘Šaq’ È|ºÔ·F'¦a/¦Ë_Á/ûÃú¿ÁúWÿýí9^o¯Ã <Œ ÛÕ–¤‚À%YweQbº]ïÒ,“i9_Á0¢TÇvišZL—M}8¿ù² Ëð;Ÿ.£(F1´(ÊÍj AP–åóÉ¢Õm’®·]ï’8ÛrFwÏõašO$IÎ&óËwײ*¥IÊñœë¸žëù^€©šJ3TQ”¢$ªy·5’8½ì¹þÅÛeQ@$J"†cÛQ¥ªÂ0 è*Ží 0¬V”«‹ßõ_¿x[oÖ(š\.Ö Åââí¥çz®ã[†õü³gI’–EbØý<Ž“ë7`LM3LÆa‚W&/ðïû^¦é£g‹¢0ts½Ü úõf-BAFw“{O=Ç_/6yžö{Š (¢Õ*@K ’ÿ’8™MæÛõn1[µ{­ë7jE™çœÀUªª¾5x[ÎW£Û¸Ñªƒ‹BÓT„·WÃ4MË¢äxÎÔÍ8Š7ËmÚ¾ ð òhÜ—ÅPýý.˱®ãÅQLQ¤RQ <¾w(JÂõ‡Ûj­!HÑ¢hòÕ·oÃ0l´ê¾á†añrãX޾3]ÇÃ0TVÄ4MQ¥JÕÔÀ â8Žã¸,Š{OGwA‘CQŒ¤H@öDA©ÈŠ*Í&óF«Gñj±&H ÇÆÃ‰( ‚ȃ¸ø0•мR‚P4å8®k»ïÞ|%A”…ÐYŽWi³ÞqËpÌr¾Ù^0 'q’ÄiQXš9ŽÇ°4Žã®ã•EAR$ÃÐËù ÄæHŠ„cPo–àzÄ Ü¶Š¢XŽõ\ïòâº,J€%‰Ãxx3Öª’"м¨5«–iyî:înk ’¦én³S+ AûGƒÁ~( .Î/7«m%8oÖ»Àô­bh­QkuKfÕîµdEÚ¬¶Ð}è‡ú5T'ëåºÝmMF3cgEÆ–aEa$«òf¹Ùnv@å´Ýè4C•E‘Ú©çßüâ‚  Ï&óÓ}Ûr.Þ^Ò,½^mß¾zŸç¹±3Oö+Uu>YئÍrl„€"w{5ÌÒ¬Ók„žRQ¶ë­c;eYž=8éïw ݪhÊx8Dð›HŠŒ£¸(ÊJµâ{¡›JEAQd1]‚tQ­‚À,Ë$i 2ƒaXV¤õrãûÈVáð?Ô¯¡Oö1ì÷ʲܮw²"!\–%†ã‹Ù²( ­V)³òèìP«ªy^dY.+R³Ópw»Þ]¾¿iwÍNñœ§Ÿø~@R$Í0‚Ä‹’àX.Ë1¼ÀƒØõ0ˆÇsŸþø9 Ã$Mé;Çq­ZÙ;èA0¼Z¬{{@ú¦(J”„<ËËÀœÀ9žÓjÚñÙA$‰s<Ç04/ò€s+Éâ§_|¼YnŽÎ˲ÝŽ)¢Þª£(2Íiš"I­Ö¬ATÑÔÕb ìEQ;Ós}’$öúÀ¸IRd½U˲œe™<ËH’$IR”Ä$M£0%Ñ÷|}k@´œ­Œ¹^n´ZDÄ„A¸YoIŠ4u“åY–c`$4À ÝœOŠ*Q”¥±39zñä& ü¢i‚ ÊZ-6¦nåYvïÑÙù«÷’,–e Ãp–f¼ÀQ4eÖx8… (I€”#b2œî¶zY–,K‡AXoVPe:žÝ^ =×ôì~½YÞŒªuÍØ™óÉ¢·×µ-0“=×_ÍWI’$qše™ª©eQÔ[µíF%A«U¶ëÝj¹Æ0,Ïó8Š04< I‚ 0ƒÈ²¼¿ß$áàhP”¥¾3Ú¢ÑnÔšµÅtÉñLo¯{tzpùîZÕ”ÏëG ¡È‹GÏ0 ½Ýê‹éRQeÇ´Z%Ër‚î=<¶o×ñÀAù‡ú5Ôb¾ ‚0Š’íz‡ãØáÉ~YYYÜ]$EŠ£Hâ?T5U”µ"¿{óÁØ™yžÕ[5×õæ“EDÞ]¶:Ͳ,Uf9Ö6íJµB’är±>°]Y•eUÆ0ôîÆ>}pG±çúYšýçùËùª¿ß0äÓ}IÁö”ç9Y•hš*Šr½Ü8–+)RESÞ½¾h¶êûÇ{`:8ìK²x ¥ >}püôù£ ×ˤH›Õ&MRÏõ÷û'÷ŽPUTù_ju‚ú[3Ëü»´Nüoÿ¤Z×0[Í×o/Ïžø~€À†aE­–k†a Ýܬ6žëžì‹²à:îd8]Ì–Ží¢("H¢çz’"Õ[õÛ«;‚IŠ€!ˆ~êZžç$IlÖ»(Š)ŠÄ ÇqÇêÍzF8Žc𤩠‚È“å¹~žç,ÇŠïØÍ2còüLßAäyæØÞ͇[Y•Àpn½\‡A˜ÿ¹ ©Ùª»®•Ðv½ãå8JV‹5Hxån½ÜÈŠ¿‚È»Ž»Ýè‚(¨%Y•@`N§ß>½ä¹þèv"Ê‚$‹(ŠPup²’:¢ :¹TmTµj%ôC‚Dç“…çzI¨šÂ²L¿‡áxeYÈŠxÁt8ó<üï†nÁ’ç9A`søáv³›Žæ²*dwÐßM‡·c^à³U½Uƒ h1[Ù¦Mшò° Kù0ˆ&£Š"ËÙŠa‚ÀA:Rà·×C–e޹½"(òæÅy‘窦FQ´Ym-Ónu›çß½¼Fð³m7»å|Õj7DIDþý›ýýžçz¦a©¥Ùi@”$éÕÅ Žã•j…eÑÙd®¨r·ßÆp'ð8ŠeU.Š˜yˆ T+ 0¡y^–¥ª)jEAQ4Žb‚ ô­¾Û‚(€È¹<Ëv ‚ ñp깞(‰0ž!˱E(ª þÄí^ëøìÐuÜÞ^÷öj8¼ßtVkV³,'ÕºFRä`¿NàÀ]“çÙ|º¬Ôk‹éRÕÔF«Ær¬¥[»­18è,I®ãݦ( IxŽ·wØ×·ÆÏÿ¯/1 =8ÙwDZÍjKà8Ã1ÆÎ˜MæÃ›ñ'Ÿ”¥™¢Êƒƒþ|º0u3ð×_¿*ËòÞ£SI³4–JAâmÓ©Tù—_½®Ö*¼ÀM†3Ïõ@LÇõk¨§?º¹¼ST E÷n¯†¾Ì KÕT‚$@6™çøŽí$áXN£U7 ;Žb‚À ’é:8†ÕÕn¿m™v½U[/7V-MS–cö$E¢† 0Çsišr B²,;{x*)¢çø“»év³;<Ù'œ¸f§‘Ä©ïù¼È!(Jз "?›Ì‹<ŸçeQA¨ouAqgyÇñj]C1ÔЭ›Ë»Š¦6ÚõF³Çñv£o7:†aIœ€ô”»éè7ÿÛŸYþ»°~q~¹ÛêYš†ADRänklW[‚´ºf›6ÍÐ ÇDQ…±ëø†ÑÌ÷>{E/8¾wÔê4&Ã)Š¢«ùj½ÜBeÉ €ä ¢ouÃ8EäðdŸe™0Œ ÝÄ ¼Ö¬º¶G„¾ÕI’dôà !AàJEÙ?ì»®O3 A KcI’æyẞc{Žå†aÔ iЦÍ/òY–ù^€ Hµ®™º©ouŽg‘gY‚ 8N¶ëmš¤Y–£(Ê0ôv£“$xÁÕÅ Nàïß|À ¼Ûo~x±3}/xüÑC7†æxÆÔM†¡Ó$EQD’+aù~lÝ0 Ï&sÛr”ЬVdÇî?¹ÇqŒ¾5@tAÕz5 ¢(Š‚ Ü?äEAPR.’$!+R’$ËùªÙn@†¡;ò’8yüüáfµ ü ¿ß%᫟ƒ8Š"ß~ùØŠ7« ‚¢EQHÊ&ôCË´ÛÝ&˱Óñ äÝšºùé?~ö / †MÝBXR$pJ¾z}xzÀqlš¤(†º bÞi–ö¯,Ëíf‡ hÇŠDQÃp£U'I"ðÐWô†ÎóâÕ·o–¶ kïp¦¼Š®k^à®?Üy>8ì“$b˜V« oÆÏ&IÚê4&)²( I}?h¶žë^àû¾5}†P½ÿèl·5ÔŠìyÁ÷AxA8ÏÏ__4šµj]—ÇñålE3”ª)<ϹŽ÷ñçaš¦™eÚ,Ëœ¿zao¯Ëñ,‚ ¿p†q÷4Õg“9A’,Ö‚ Ž-f«î Ýtp—UùÉÇž~ü8ôƒéx†ýgŽT)ÌÂjMƒa$ŠâW/ÞÆQ¼Ûè»âoqïïuÓ$=}áXN„ÛAÞ]iµŠçzz®çy¾ïú@œüCý*K3WQkÖXŽbc𡾸íIŠÄóÜù«÷‚ȧI ²«g“…¾3dE7¬( Þ|&ˆº›Ì§Øn«Û¦½]ï ݈³‡'w×£÷o/“8Ù¬¶,Çì¶ÆßûÃßö\϶œáí8IRŽgÿœìˆQ9¼›ú—$ELGóÿâ?† èoé,óïÒz«Ó„ ˆæ¶ë븳ñâàd?£áí˜$‰(ŠÓåÝõè·~ÿ7:½–ï×·Q%q#HE—ï¯Áàl·Õñ'¿ôúT7M3š¥Û ü`x3~ôìA³Ó IR’"9žÝ¬v¡ÆqŒ HwÐAQ$Ï ‚À}ÏW5¥Ómî6zÇ’"é[# ìóßüÔ±A!p<Ëòf§aÖÕÅ ¾Ù=yþ¨¢©ËùÊÔMEYŽ™MŸÞ'HÅ0s¹I’ôÞ£S†¡WËM«Ó¼'Qš8ÕeÙéµ·ìIû‘mÙ’,’$éûAYB†Á"ˆ¼m»ÓñL”Ïó‰åÙ'ç³%¹cS‘çišÉª<Ïh†Ù;è½}õþV7ŽÉ²Ì±]µ¢x®_­U‚¨5ª(†Ú–£¨r­¡eiVäFAäÚ^¥ªê;ƒa™ã³ÃF»"q€£\ÕTµ"{®GR”ë¸,ÏÞ{x T?Î/IY’EžS Ͳ ‚À¾4Zõ'Ï¹ŽøA·ßIâÄØa}òùG¼ÀeÑéµ}Ïÿéÿùs Ã(šÄ ¼ÙF0 ƒ Ès½0ƒ $Å0Ïõ9Ž5t pã ¢Úu\ßH’l´je ÕZ½Y%! "Cßm×»0!Šãx2š-g+Ïõ]ÛËÒTUS¢0J³Œe™Íj{sy ÃpDMUëZY(ŠŒî&ÕºÑl2O“T©(iš}÷í›$N?©Ók7Úu ý£Ó}ÀUq¦)AäPDNß™,ÇZ†…ax­¡õ]C7Aˆ==óW–%Ã2žë‡aD’„ZQ`¾¹¼+ËÄ?€š¬ÊŸ|þNà¡ºŽ»´×îµDI Yz:š×›µål%ˆ]~ø‡ÿáïû~à¹PWô÷º SËÍÉý#FʲÌòŒ¸F«&Éâ“çóU’¤eQööºµ†6ͳ4;8Þ«7ëV#B °:>;DPdÿp@³t¥¢ÄqòúÅ[¶mꦪ©ÕZESÁN±·×Íÿ‚Jñ·r–ùwi}9[FQŒãXo¯K3ôÕÅÍÁñŠ"œÀåEQ«WYŽ­Öµv¯yp¼—¥‚ÀÝA§,ËùdQ©ªY–È“(Œk* ˆA´^mqg9& £f»AR$Š¢»…±mÙ‚(dY.«üýÇgÏ¡êXîà Ï l%·WwV뚬HúÎ%áøì› §·Ww²*ùe£]ÞŒŒyw=ìïw»ýŽçzo/eUŠÐ‹óËz£J3ôbº€ H©È4C± "?{{Ý(eEJ³ (ï{{4I%Yx^æQñß´ÕŠâÚž¤HVMRD‚€Mx9_mV[ hm´ëÕº† ˆ( ›õîæò6KÓ<Ï)šêô[›Õ–¹0Œl˹½²#)’¢Êïß|Àplx;&Afƒ¡¨ª)ÏÄ'àu‚ã˜eÚV­RUß½¾eaÿh¢Hßóã8ŽÂXù0ˆò,{ûêýíÕ†áÇg Ç´;M ˆÝMô­ñ³þ%ÃÐYžë;£,KNàò¼°LF}k¼üú5˜†î¶F­YK’t½Ü€ÏfµýîJÓ“Ñ”ã9Eƒ ¨Ö5–cÁ°gz~¡çú,Ç€3+p…Þ]XŽáxn³Úfr–fžëEÙlÕµZ%ð†c–³¥¡[(Šì¶Æl< ƒ¨Õi~8Ÿ-׋Mš¦Õ›5×õ¾ÇZ©rYB–aI²ˆa¨c»€xNà•ª†AÝAçÁÓûëåfµXy6ØIºÉq¬çúeYfY¦Td­V)ò"M³íz—¥Ùb¶êö;ín“fh’"1 ÃH$DI Z”…ÑÍXß㻉eXv€G‘ÝMô­~uqë{c9qœ (ªj I‘@ÔA¬H¯¿}‹bho¯[åènò‹Ÿ~uzÿH«iIœ@?Ô¯¥®.n€^ýâüŠã™³‡§$Ié€ëzÇ÷ŽÛy÷æÃf¹i÷ZÇâÎ œ pŸ~ñüîzôñgÏf“Åå»+–g>½w=ª5ªí^ÓwýÛ«ál<¢ØØŸ~ñœ ‰N¿5NñðéƒF«VkV7Ë-Hã`šåXÛr*šJQd¥ª2ãÚ^­Q=:=ȳ\Qeš¦MÝÜ;€Pdßó<>ûÞõx²…QžåŽí"(:8ì§IºÛê(†÷Žc9“»é—úõl<ß;üäÑü[ŸYþ»°þöÕû8Šíú|²ÝM–³˱y–™†Õt6ëíðv|sy;º'IzïáIQ”Û±¾ÕóÕènÂ04Œ Ûõ‚ v¯5Ÿ,xwlçË?ýú£OŸëãv½½º¸¹¹¼;{xÂrŒë¸eY*ªaÅa ϲ /rÕºvùîºR­ˆ’¥Y†Ží6Ûõ¼È1 Ç8žƒaøèô€ ‰8ŠEIÄp<Š¢£ÓCN` ÝLÓlï°_…븶éCËñÙa'ëÕ–¢¨j­²´·Z¬:f{·Õç“Åãç³4#¢(ŠÞ^7 #p}Zf† §IJE#ú’×|?àxNQ¥(Œ‹I‘–aÝþþÑŠ¡P m7º±3û½å|=›,P]ÎWõfm1[ÅQ’¥)‚ Ï-¦K†eÞ|w~þúýÞá`>[î6zY–¢…ÍÐ$E,ç+Žç¨}p,+ÒÙƒc‚$V‹u¥ªnV;’$ê͆aŸÜçÖs\ÑÏ H’€‹¢, US´ªZoÕëÿìá èzb&ÊbšfŸUë@äZ¦mêVo¯DZV­ïXîÕûk†_}û¦È‹Ï~óSC†D¾RUó¼€ÿÇÿõX/·–aÜ?žŠ0Œ|Ï÷½ Óoišúò›7?zöÀÔ­‹óëåöwÿÁoI²¸YoyŸ§Z­")ÒíÕðÏþä—Ÿþø£j]s]¿Ûo/fËå|Õî6!6vfQAi†c,Ël×;Q‘ ƒèîfÄóAÇQBÒd³Õð\Fµ"‡A$ÊAo¾;wm¤^àŸ~ü…þï IDATèû«ÝFüÑCË´¿ûæu£Uo¶–iS4Y«W§ãYQ”Ež?þèár±þîëײ*I²!ŠaÇÎ&sàÆáŽùw¯/Î_½ÿ‡ÿÑâþí—/AN­Qƒa8Š"ŽcŽ÷6«í|º¨5kZµbÖlºXµ0ˆ.Þ^zª¦üâ§_iµŠ©[ab8vx²Â'÷¢0N“A‚Äõ­Q­k8ß^ ³¥±3OŸ=8)‹b2š­—›ã{GYš¹ŽÛtâ8 ƒì~\ÛÓj•7/ߦiö“ßùFÙdö ‚È¿üú5Aà~¤—c8¶˜.-Ó&Hâôþ†á$Et”¡›²"¡(2Ÿ.UMÝ®wq÷ö:(Š‚œ"`KH’¤,ËÝFOâäìá A0‚€4µ¢QŽa'ûÓÑ ìï²4S*²c»Ží>ÿÑÓ4;ߢYN¯»^nó,;{xâº>ðx4Û x6u³Z¯jµJÇE^˜†¦ 8 é˯^Uª*8Ѷ{­ãÓ×_¿ŠãäÁã³á혢¨¼ÈI’T+òv½ÃpxÒA€Æfµe8©Påv1]FQ\©ªE^dYæ:žª) äøæòN’Ån¿³˜-ß¼<ÿèÓ'{‡ƒwo.  Üs¼F»G1ˆ=&ܶE1 e8†øéhZe„÷EùúÅÛ<Ï»ý6‚ Y–s<{þê}µ®I²Hц¡žëÇq¢¨r†Qß]Ó$íôÛýýÃЯ¾}“¦ÙÓOei¶Zl­NS«UÆÃ)E“н{sñ‡ÿè÷ó,õÍ›«‹›“ûÇ~+ ã(Šp +Š2Š¢À ʲÔj•åb]©ªš¦Â‚ãØ7_¾¼|Ýéµn.‡ ½†a˜( 8Žs Lño[6/ðw×ò,Ïž‚û $G‰V«ŒnÇínKÕ”?û“_ʪôüGOgãy’$y^Ô›5Š"çÓåáɾçz/¾zÅrlÇE­—0–Jâ¤Ö¬­æ+Y•AC‘¢IÇv•вš¯ͳ h<ÇëÚ²*~8M?¤hЦ)`Nìw·ëÝÿÓŸ¶{­õr“ÄÉÓnÇÓñì÷ÿýß-ŠâúÃm­Qõ¯Ú¨^¼½dXúÁ“{E^_Þ;cpÐÑã¾¼øê;AΞøžrÏŠ¢@àþ7«m§ßFQÔs=E•_|ýŠ¢¨²(¶ýùgOÙÿ›½÷·¬*¸wï§÷~î¹uîôaÆ JÑAQb%úøDÑ# &MlßCò1D0 ~6ü(p@`˜r§Ü^O¯ûìÞ÷þþØz½™rçÂD½¿¿ÎÙe­w­õ®µ÷^ë]ïKS¥b!q@à×{q®äó{ÝõÇ|![«Ô)š GCÓã3º®'ÓIKÅJ,ÕTÍuzœÍgB‘ Çršª¹!žTEMçRãÇ&MÓZ;pld¬o '4jMAà\!«È*ÛéêºAQäÄØÔìÔœë˜jnjž ‰n‡óù½²¤È’âšca8FRD£ÚGC3“s ɲÌvºŒ‡îE‚l§Ûn¶AlÖ[/cY¶iš¡p šˆ´›Ó4©¸?èóú<X–Ýl´¼^Ʋ` ÈÐ ¡l»{üȘ$Ê£SãÇ&6ž³ní†5$IX–57½@Q$ESÍzsrl:_Ȇ"Áé‰Y]×qŸšCxvzÞ½ìú4@À0L¿ß«išaͲ\q¾Ìx’"ÓÙd4EQ”aèP4Ü7Ø‹ p³Ö4tc`¸O‘•ù¹âÄè4Ïñ ÅÐf½ c‰¨išÇ'׬ŒÄ $‰aX$ñù<ªªÁ0„ H èGQDà‚¡@,Sd…ãøj©‹GØN×ç÷Z–ÕípûsвlE’ ÓlÖ[’$WŠÕf£Å¶»Ží¸N Eóú<©L‚焟=€ã˜ªjÇŒ™¦I’„/àSU­Qmš†áø(†¢hŠñ0–eÊ’Òn²cGÇ]·Žû^Ó0i†î,x}ž…Ù¢ã8^¿×ï÷ ëºmÛ¡pÐ0 ЦLÃÔ5Ë´r…l82t“ AÚÍN<õú<–m÷õ‘éxcɘª(ífG–×Ónu^E‚4C[–)‰2ÃP]–Ó5]SUEQ³ùL<Õ ‚ Û²Y›–D9‘ŒA0\Z(gò›õ–ªhŽã“%9MÕ+@Èï_")jìØ„ÏïUUmìø„û‘Q­ÔÇÉ÷æ RUÕëatÝpG±™ÉY—‰'cŽítÚ]ÇÜÍ Q4‰áŠa¦i–æË†abªªZ£ÚpWe&ŽOʲbè†k„U.V Ý`;]®ËNÕʵÒ|¹Z®w;]†ÜÀ²¬t;ÝV£Uœ/WK5UÑDAšŸY8>2:ràè‹Ï¾Tœ/»þh,ËšŸ)>þ˧º.ãa^lÖ›­f„@UQ]3ÈX<âø0 ;zx´8_Ö4= ùü^ERÚ­ŽeZÑxD×uYR,ÛVd5‘Œ%3IIRf§æÇŽMŽ›Èr¶¬kÖ[kÖ®Y7d™¦À‹ tY¾Qk$ ú ýy¯ÏñÍP›·mD„ 0 æÆgP u§Uƒ¡EQ|—w-ɾ8BÑäÀš~ Gݲúó‘høø‘±p$tÁ…çùƒ~‚ `â9†án—+Εb‰ãa‡û‘ÅP–az|w¥‰ žš–,É^Ÿ×]:-/TdIާb4Cá8‰†HštãGUJU7ªh(ìé˺‚`0 )rxý (ˆ¾€/‘ŠW˵F½OÆ®xÇåáXˆfh'ŽO:Žã:¥Ú4ÍP8”HÇmÛ¶- ÃЈë_E²=™|oÖãepãºB«Ñn7; ÍLÌæ YCQ mÔš Ñ4… ÃÐÓ³º¦ƒÀs‚?èï²Ýc‡G}~ŸÛ;­N£ÞªWÿßOGP$ 몆cå…Šiš±DÄ öÇx‚ ¦Æg8–3-K×u7Z¥TÅ#¢(¹ÖaãÇ&8Ž…¢(ñœކ<ÆqUQëÕÆóûöëºG¼>/I‘º¦1&‘Š7kM7:ºašÝçúÜh(¦a*’’ɧ‚¡€¦é$I„#¡T&áú ݘšÃpÌç÷Ò: 3„ AuM‹%bl‡Íõd†ÖP RÙ$ÛælÛ‰%£Ý‚ ^×uBÐe»Ž{ý^Ó0$Qâ9þÀ ‡u]ÏõdxNè²]÷CÖq]ÓuÝè´YÇv,ÓÔuC‘•j©OÅHŠ” F`G^:êz+‚@Ð0Ìn§‹ãX§Å&3 ÛvægŠ0 ¹[fdI9xÇqŸßcfi¡b&Ûî$Š„zûó0ó]¾\¬BþZ¥á øâɘaÙžL¾óù½áhF`žÇ×oAÀãer…l,QSõH4äZDbaË´*¥ÅPЬ„ca¶ÓešbhÛ±;-vrlŠçlÛAÃ1EÆŽŽƒ H’¤»ŸLU4DZ©¸(Jª¬:0´n'Ó45Mg_À'‰Çr¾€/“KáQ+×eIv†!C$ARmÖµî,Y¹Xá»| GBl»Ûi±Žã 4U3Msvj†¡Þž¡uÑxD¥v³“Î¥ŽŒШ5lÛ†`¨V®£æøµæÜì‚Çëaxa¶¨©º»Þ¹nãšB_ÞujíF"C1Ô±F­‘ëÉä ]ÓYµmÛ0 ÃŽŒ!ZèÏ×*õ£‡Ž;<:7½Nq®ôÒoº6¢¦aBTš/ÏÏÙv‚ †¡ ÝäØn­ÒDɶm„PU-ô+²¢kF»ÙáºA^ŸÇë÷Â0”Ê$ݨš‡÷´[lO_ž q¿ß‰…›v(,ôå ‡a(Kyý>wžÐ4L…{zsM œÊ&uÝp÷a7ëmI”,ËrGäÒBE‘”BAÃ0Šs%I”dY%ÁD2FR$Š ™|AàH<‰†À <™N¸~†a$Sñz­™Ê&mË*/TÊ ¾Ë†Ñe»[·o …ƒv×5“6M˲¬|!Ûé°‚ ¢©¯'žˆÂܬ·;mV•Õp44~l’ërM ¼èÚÍÔ« ÇY•D©^mNŽOWŠUUV=^†cùV³MP„,)’(Ó Ýl´ Ýà8aôȸ®iÝW-Õª•š?à¯W›£8úÜÞŠóe†¹®à~;<Êx˜V£Ýe9œÀg§ç%Qr÷³ºHR™„®é•R Š"YÅÌç÷‰‚h™ŽcŒ‡ñ|†a¨Š6ztðF­)KJ­ÒpgÇ…ç{|ÌØ± D^ÔT ‚ Ñ£¥…2ÛbÇq7¹X¦uüèx6—6t£V©ç YÀWš¯ÌN͹¡ÃÚöèÑñ\O#p®ËWK5I”’™D$á9F`]ÓÓÙT:—v]ƒ%ÓñMçnpl‚@‚$lËn·ØÍçnȲM*²J’„®~¿ÃPžHšê´:cÇ&aB²=UQÝUÑp¿ðM;Üp0{¼ ÇÊÅ* ÃŽãH¢Ôj´ƒ¡IªªB4´n0 ãÎvº®ÓIÒ¹´?à³L³^mtZ,mÛ=2îú[Í‚_i7ÛI¸žoÏ9o3Œ ^/BÐüÌB¶'A ;vZ©ñ™L.eÙV ä‡ HäÅòBe䥣oÞs‰?à“ee~¶hš–eÙó3 ;€ãñz4Uc;] E ’@Ķlžã ’@PÄð!R¯6P!¨R¬$‚bZš¯p]ÁZ¥‘ïÍ&Ó ÙN—ít%I†axí†5Ó3‚ 9Žƒbhÿš¾|!+ ÒÑÃÇu]ÇqÌ2M×kD”Žèš ù†û»í®×ï…a¸ÕlóœŽãÇ'1 ­”j¢ õ &ǦEAÌ÷æ4Õ/Äð¯Ê* A¯ÇõJcš–*+íf»8W®W›ÝA†aîæT¯ß[)V#±°ëʸYoáùEq¿ìû‡z=š¤)I÷|ËOMƒ H¸kÓû«_>éø’éŠ"îÎBIP å9AàÇ=^ºÕìDba¾+¨ª† ˆ$Hl§ÛÓ—gºZ®WJUÆÃ„™É9¯ÏcÛ6Š¡ñdÌ0L‚$h†î´ÙP$èºYv]ICþ.Ë…Ân‡ëèa;Ýzµ‰†"±0Ûf#±p<#) K{hwJÅÐV£I“­fÛ2-YMe’¦a0A‘ɱé™É¹D*‰Ešõ&†c‡öx¼]×C‘‚ ‘hHä%Û²r=™Bþ¹g^hÔš>¿7ÎÏ,ôÜxõÍz«Ðß“ïÍçK•b5™Ž;ŽS+׫åª;¦7mwÊEwõAMÓm膡z †a‚RÙ¤")Ь˜¦Éx™-Û6–æË(ŠhŠjZV$Þ°y»O× †TE;ÿ çú>š¡;­†¡8Üßiu’p7%÷\/šª±íîyo8ñɱiUQ;|§w G×\!‡qo5ÚMNŽMû>}ßÁçÊõZ#žŒv;]×zÐ` )Âãc^Ìöd≨"+l»Ûi³®ëʱc Ö«õD*656ëÍ:073¯k:×å¹.úUUs·€C0‚à¡G6n] ;m6‘Š÷ôåÁ0ŒÀ€ œÐe¹Þ“cÓ¡p@à¥p$è8Nq¾Ì¶YEü?‚ ²$xþ°ã8kúlÛ¶,Û›«©šeš›KçR‘XÄkaÛ,ÍÐÍz+‘Œ5jM¯ß›É¥`öýî|Œká8€,+Étbj|:K¹U496…á˜eÙŠ¤¸Û$TEÍ2™\š ˆ`8Pœ+K¢¼ùÜ ¡ppnf$ MÕ¸.o[–ùÃç÷n8gmÙîú®i˜f±¢**Aàñd”¤ÈlO:‘Œ›†‘+d1 )ò§³) Çf ¦h2„#!×7 ФC˲dYa;]Ƕ‡ÖöÇQ׉1ãaxŽ†Ь¸,H’(ô÷x}މ㓠sÅ [ÖgrÉN›%i’cyÛ¶ØÇuy¯ß+ Rœ¡ÃÑŒ ¢ f ™¡áf£í³tÚ¬ë@Û±CEArßÿ0 %)2›Oc8V)UYuÝVÔ«M hrâød·ÃÉ’ 8zèB‰3 índ?ç¶`8ྙ©Šªišªj–iAOFMÓpcå üo?¶RÙd$Æqüù_¿X«60 [»q I0‚´›©‰ÙX"bšæÑC£±d†àF½ ‚`·Ã5êÍH4ìØ¶ëÌ(–ˆÊ’b¦ešÑx„ qÇDAÔTu®Õq¿ŒÓÙ$ã¡Ý]sî E‘ÁŸb¨í;·)²BD®'Sèïñ¼0°áœõífÛÐf½Å±üкAÛ²JÅ Ûf‡×õ öºj©kz«ÑR$¥Zª†ÙÓ—“©´Pv_Q íè?>™ïÍQ4å:guÚÎLÌ$Áv¸N‹å9Á vnèÆÌäÜìô<†c–eù^žMÃPU †ád:á†cJ]ÍäS'ˆ‚81:Ex2GPdj|Áp4„áX­\ë²A I¢Ì±$Mú#nü¥™É9MÕ&F§Öo^×Ó—£ڵ͊Æ#(‚8P«4dIAàXF`À`A1”¤ˆƒ/ÖT-Û“EBíf[7 E¡V‡¦) ÇTEk6Úl›Õ•ñ2†aTJU ÇÛž›NfSã3†afòiÜ]œ¢€ ÈðÑ4åó{=^,+ƒÃý/>ûR«ÑÖu=Û“¥hR× wg4a†`E\w"Ð4ÅxÇdI‘iäÀÑ©ñép4L3T¥\ëíïá9Ç0¶ÝÅ0 AÛ¶+Åj½Ú0Lsã–u´‡–E¹Ýê\|ÙNÛ²ãɘ,môW" IDATÉ¢ ¹®WHšÄq‚ `8Ð?Ô‰…f‹nЗa<Œeš¾€f¨P$„ 0 Ã’(¥²ÉÍ[7”‹•Ÿ;àú‚0Íó}~/‚l9o“¦jCk\ÓHò½9 CC‘ ¡¢(yý’$Ò¹T«Ñ6tCQÔX"šëÍàõyh†ž8> Cp£Úp€$‰Ùéy Cµ&†¡ó3EYVLÓìv8MÕxŽ7M“¢©þ5}Žq]Î0̹éiÓ´ÂÑP4aøù_¿ ºA’"Ý€Á"/6jM˲!ÂqlëöÍÍz‹m³îÞGUU#±0#ZÓãeâɸ¦iî'2×á’é¸Ïïug8“éã¡S.Všõ–í8Ét¢ÕlWŠU EÙN·8_FQ´§/ކ,˪”ªó]ÁýT²m‡ïò¥ù N`šªJ¢,ðB(ê´:Œ‡áº|»ÅBHRD³ÞB1,% zîé¼xØÝdAR„,É\—o7Û¥ùrï@öÐõj£Õl†™HÆ0£hJ%w{AÅùÒìÔ|¶'³fÝ@,åyá…}/¥³î>CÝõº€ ÈüìÂÂ\)דa<A¾€ÏvÀúò±dtjlE‘â|‰ ˆÍÛ6È¢ @"•°m»ÕhÏLÍ„a¨»óž q]ÓÝ ¥Õr}üøäÜô‚»–‰†î¡iJ’dHŠ´,›¤IσX¥XmÔš^¯§Z©/Ì–Xœkt×Ñ[ÍŽ;!?96Ê&·ž¿yó¶My¼ ‚¢ ¶íp4äÈ6 A¾€7“Ï€ àzŠpíFÝð!;ÿâÆC˜š˜Áq, B0LѤ$J“cÓ•bÕ0Ìj©æºˆØvÁ9(ŠvYN–Q‘D©^mt;]ÚC{<Œ$JÄÑR±BØö“ì­U(ŠÖ*uE,˦hReY’S™„eYR­éŽçþ ïòàWÿí‹îl€?èw§|uM_˜+…£¡x28ÎÖþ]À*«¼6üäÉÿ†ü³Óó€ã”‹ÕD*þw~ôl µÊ ÿï?p¯uÚ]wÁì­»®>ÛB­òçÅ×ïüŠã8>¿× ‰…]“@]Ó7n]_š/#/†Â7Vv£Öt}6-¶Ó5 S••Õ§ì*¯ÝN×u‹ahï@Á4W3­ò2H¤b]–ÓUsrl: ’4y¶%ZåÏŽþ¡^†)š¢hª^mÔ« ן».i™òÓ>œÌ$|~¯»nÁ±œ$Jó3 ¹žìÄñÉž¾üÙ.Â*ʸ~ª]ãðT&Y¯Ö϶D«ü1ã¸ë‚ÃÐÕGì*gÇqêÕÆð†!—AQ4 ÷ öâ‚`—å<¹d÷_œÿ†­MMÌnÙ¶EרD×õM[7Dbá³]„Uþ”qÇëó´­H,Üj´ó޳-Ó*<Œ8‚„"+?™ŠŸà h•U^xN8øâˆ×çq-|1Ud9Œº“Æ(†"áH'ð@Ðï.\7ê­™É9žr=YUÑægŠC±-g»«üÉâî.Q•U’&a>Û­òÇDO_¾ÓîBD3ÅPŠžm‰Vù³#M¹UEk5ÛºfH¢lšVi¡"K2I‘H£ÖÔuÝ5€ž›YPÕu]«ÔA?¹&l•×Q”ÜmñdL$7`ç*«¬œ@Ð7;5ï†yiÕŽd•ׯCGb‘.ËÕÊu¯ß[-UkÕNàSã3î®Y(™IH¿ÛjÝi±þ€/Û“I¤ã…þÚCy}Þ³]„UNA£ÑívûäSO<ñÄ›ßüæW“8˲{öìÉd2—^zé+¸ý’K.¹÷Þ{Oyêºë®{ðÁ— ‚ Ã0*¥Z—å\O[¨ìvîÜùÃþðå&ø±TÎÓýþCñªà.Ëhì«áðKGûÅ“cÇ&\HórSøcÑŸ?.^ ­þ?Ë¡ý#sÓóþü 7 K§Ý-Í—µ&(Š2ÉåB’„×çaÛ,Ï />ûÒ¡GF^::ö¿˜¼ôÒK×]w]ooo$Ù¸qã-·ÜÒjµ^X_|ñý÷ßÿŠKõro¿úê«@ ˆF£Û·oÿ¿Ös^em,ÅqœÏ}îs·Ür‹ûw±àñx|Ó¦MõWuðàÁ3&rß}÷Y–577÷Øc½JyN(Ú-·Ürë­·ºö\r=™L.½uû–MçnÈæ3n,nî¼óÎÍ›7/^öÿñ@à©§žrÿªªÇüqþú¯ÿú¼óÎ;ev¯+Ìb±æ]®¾úê¥ržñ®`0844tûí·»ñjVq9¹òAêèÙ¾k›ýZ$÷øë£?+Ï€ý× <ðÀJR~þù篺êªL&Ç/ºè¢ÿþïÿ^¹T¯/k]‰¶ŸPÛ't™@ ð?ÿó?ÉO™Ý0T6 ÓÙäúÍÉT|Öµ¶¬=oÇÖþ¡¾5}k7®TEUÕq ÇB‘†a³“så… I“áh( .¦õÄOìÞ½{xxø©§ž*‹>ø I’ØŠxíøÈG>Òl6§¦¦®½öÚ~ô£Ç?á‚¥Cÿ/{÷î•ey×®ßOš¹ŸýÁ~‰D.½ôÒ_üâË'R.—^‹%Ò 6„B¡Ÿÿüç‹GÆŽM”ÊŠ¤ˆ¼èÆäq_xá…sssÅbÑý»wïÞ¡¡¡§Ÿ~Úýû›ßüƶí;v°gÏžÁÁÁ?¸¨¯žn¸¡ö;xàÊé¶WµZýîw¿{×]w}ï{ß{í%ý_üqu„â|ÉëódóÛ¶ŽŸq¿>ú³ò\lÛ¾çž{Ö­[·’}üñÇ÷ìÙ³sçÎC‡ÍÎÎÞxã7ß|óW¿úÕW&ä3Ž¢‹¼²Z]ÚejµÚÒqìÿ2^¯'lÞ¶1žŒBþ.Ë…£aÓ´^¤=4ÍP×åaòú¼l§kšæäØt«ÑN¤±D4–ˆ¿Û¿è8ÎßüÍßÜpà ŸûÜç²Ù,Aýýý·ÞzëUW]@­V{ï{ß›Ífs¹Ü?øÁÅÜ;w~á _¸úê«wîܹuëV÷‘üÙÏ~vttô¶ÛnÛ²eËûßÿ~xž¿ñÆûûûÓéô•W^933ó²nÿæ7¿9<<œÉdúûû?ûÙÏž²"@DÄëõÞxれŒŒ¸éßvÛm{öìÙ¾}ûÃ?¼L)>÷¹Ï]uÕU—^zé\°øbqÇwœsÎ9©Tª¯¯ï3ŸùŒ®ÿ6<øüüüW\‘Éd¶mÛö_ÿõ_‹e§¼~åµQ,÷ìÙ“N§·mÛ¶ø‚|?üðE]‚¿_Ýt N’äÐÐÐ?þã?~ðƒ¼é¦›Ü¨>§Ì蓟üä~ðƒ|pË–-ÿöoÿ¶L1‡‡‡«¢R©Žã– srѸøâ‹~øáÅkLÔEÙ0Íf£Åuy’úífŒ¡¡¡X,¶wï^,ËÚ·oßg?ûY÷/{÷îݺu+EQÀ’¹©SfW©TÞñŽwÄãñ-[¶œòðe•îä,N§3À0ŒÿEW8‡æ¶Žã;vìØºuëØØØòrr÷‰O|¢¿¿?•JmÛ¶mÿþýKSSåºë®»æšk$IN¯™+ì§kñSöS`e{ÊÎ{JÍú³ò\ž|òÉv»ýï|çÅ_]FÇùÛ¿ýÛn¸á“Ÿüd("Iòíoû·¿ýí¯}íkîãüåGn+œÜè§kÍÓ?À©FÑÓeºTÛW8Œÿ»Ë¸.Ìîºë®;w. 0?? …–‘såÙ-ò*•°^m8Žƒ¡h—å¸.ïºÐç9žñÐ4M™¦ ¹ÓÅÐ4Õj¶Q EP$òç YÇqꕆ›ÐÄÄĵ×^{‚|î½×]wŽã£££GUei1{ì±»îºë™gž¹å–[>úÑ:Žóå/yÍš5·ÝvÛÜ7»|àÍfóù矟››;ï¼óÞõ®w-N”ñö±±±¯|å+?ýéO‹Åâ‘#GÞýîwŸJuÏücÃ0úûûÝ¿¿üå/¿ûÝï>÷ÜsW^yå2¥xä‘G¾ûÝï>öØcÿò/ÿrýõ×W«UòùüOúÓr¹ü«_ýjïÞ½î3 €ë¯¿~```zzúñÇÿÉO~²˜È)¯_ym¼ï}ïËd2ÓÓÓ>úèé¦k:444´LñßùÎwV«Õ©©©ÓeôÍo~óšk®¹úê«8ð±}l™bž‘“‹Àððð¡C‡¯ééËgzÒ C'’1_À—Ê&Oíڵ˰:Fßüæ7OMMu»]ž~úé /¼p%ÙÝ{ï½·ß~û»ßýnWN¸ëe•îä,–Ñ™WÉÌÌÌÈÈȹ瞻¼œù—Y©TöíÛW.—øÃF"‘ÅÆîÝ»ãñø<@Ó4pzÍVÜNÇÉýXÆž®óžR3OÙ¾kÖ J’ܨ5 ÃD1´Ýê,&þúèÏ sùÞ÷¾÷Ö·¾uhhhûöíwß}÷25鎴×\sÍÒƒo}ë[ ‚Xœ‹~YÃÑûÞ÷¾|>?55õØc=ôÐCËd½LåŸpÍâ(ºÂî³’§À)¹úê«'''9âþ½ÿþûßð†7d³Ùåå|YÙ½z%Œ§bȲҬ·j• “Éwùf£-p"Dцc/Ê"/‚þõ›×®Ý°†çE2¹”›û>FO®ˆ±±±ƒ~ùË_¦iÚãñ|éK_Ú·oßÜÜœ{öýï¿ßïà²Ë.«×ë®B,ezzúÉ'ŸüÚ×¾ ¹ùæ›Æâòáo'I€#GŽ‚@Ć NÙZ÷ÜsÏàà`&“ùÌg>sÛm·sÎ9îñ÷½ï}ápøŒ¥¸þúë]1.¸à‚¡¡¡ŸýìgìÞ½;NÏç?üá»3E£££ÇŽ»õÖ[1 óù|7ÝtÓ¢ §¼~…µ1>>~èС/|á 8Ž›o¾ù”ÅdYÖçóò”‹Û‚Ngùj_ÊJÄ^9>Ÿ¯ÓùýPèÆTiÖ[ªªŽ£kúâ©‹.ºÈÍëé§ŸÞµkŠ¢Û¶m{æ™gxž?|øðE]´’ì>ô¡­_¿ðn¸á”úójJ·¼ÎÜ}÷ݽ¿ãW¿úÕ Ótµ··wëÖ­o|ãßùÎw.#çäääÓO?ý­o}ËmÖ|>ŸËåÜëGGG/¹ä’={ö|ýë_w'ÿ—ÑL`ÅátœÜOW¢±§ì¼+×L²=i‚ º,×ítÝ@:‹§^ýYI.µZíÑGu?Q®½öÚþð‡ªªž.Gw¤ÅbKB‡'V>>|Øm¿ß¿h±q:–¯ü“GÑvŸ3ã.K»Loo/˲~¿ÿ-oyË÷¿ÿ}ÇyàÞûÞ÷žQÎfçòê•°V®—‹•ɱéJ©JRD§Ý5L³Z®uÚÝZ¥Þl´Ç2ùt*“˜Ÿ-2^@]×mÇ!)ÒÐ žÝ„ÜØh4N~ÐÖj5Ç»ý¼^¯çóy¼ÞßÚ³`ÀÉêU*•@|ûÛß¾xðŹÇ3ÞžËåî¼óλîºëãÿøààà§?ýéÝ»wŸ\×\sÍßýÝß!–N¨.¾û/_Š¥¥ŽF£µZ €ŸýìgwÜqG±XDD’¤B¡àÞâñxÅvUÐå”ׯ°6DQôz½Áào—É]©NÆëõŠ¢xÊS.F€`0¸|µ/e%b¯· ‹5MSU× MÓUE-Εö\üÛù’ /¼°ÑhŒ?ýôÓøÀعsçÞ½{a&bñ=iyÛ×íK'ëÏ«)Ýò:sÍ5×,j¡PèŸÿùŸW’¦«¨T*•›nºéoþæo¾ñoœNÎJ¥‚ãx*•:9ûï¿? ~øÃ^<²Œf+î§ãä~Z­VϨ±§ì¼+×Lº,§H †¢½…D2ÆuùÅS¯þ¬$—ûî»/ ¹ßµW^yåM7Ýôãÿøºë®;eާimÛnµZ¡PÈý»òá¨Z­z<žÅ7ïL&³|y—¯ü“GÑvŸ3ã‹é/}pÅ~Ï{Þó‘|ä‹_üâ³Ï>ËqÜW\qF9W˜Ë«Wž¾<ÍÐ¥…²,)†áÖíp©t"–ˆ zµáF±0 CÑ@( ªª¡ãÇ&2ùtOïo_²Ùì~ô£uëÖ-ÍÀqœx<®iÚ¢Z¸“æ'¼‹ÀÒç\"‘Að±Çsß>VÂÒÛسgÏž={t]¿ÿþû?ðLNNžü=G’ä)?ÄY¾KßåçæævîÜY©T>ô¡ýèG?Úµk—»~àÚÆb1Axžw[ºT*¹wîúÖÆØØ˜(ŠŠ¢¸½Ý}XžÌÚµkÝÙàÓñÐC%‰¾¾>ÇqVRíËˆãø¢ÛažçOyû -ÀøøøRòú<Ƕ› 笣h*þ½µ»Øó裾ð ÿùŸÿ À®]»>ò‘À0¼cÇŽSîù99»åy¥[šÅò:CÓt2ùû 𲨨Ñhôúë¯ÿÌg>óo|ãtr&“IMÓ*•ÊÉÝzë­O<ñÄ•W^ù£ýÈmâÓiæ ,S¨•´øÒtV¢±'wÞe„“Û·Ób;­Ž$Ê0 »aO½ú³’\lÛ¾ï¾ûX–vo±,ëî»ï>ÝSv`` “Éœ0Òþò—¿Tåâ‹/vÿ®|8ŠÇã‚ pç‰Ký”­¹üh|Â(ºL÷Y '×ö)»ÌE]„aØ#<ò‹_ü⪫®"âŒr®0»E^¥†Š¹.ß;PHeª¢z}Þ@(0;=O34ãe [×ú{@"H„ œÀhšÑqEVEYLúë_ÿúwÞùå/¹X,jš699yûí·?ôÐCCCC›6mú‡øY–Aøüç?¿}ûöåß|ƒÁàâbõÀÀÀÎ;?õ©O¹ýP„‡~xy¯ñKoŸžžÞ·oŸa†…B¡Åeæ—Ëò¥¸÷Þ{ÇÆÆǹçž{fggßö¶·É²lÛöàà A<Ï/.õ¯Y³fxxøöÛo×uçùEËÀÓ]¿ÂÚZ»ví¿ÿû¿`ÛöwÜqÊR\vÙeÏ<óÌÒ#Žã˜¦©ªêøøøç?ÿù»îºë+_ù ‚+¬öeÄÞ¸q£»Õgy–Íå™gžYº 'pŸß‰‡û ºo‹ìÚµëŽ;îèíí lذ¡Ñhüä'?9yQítÙ-Ï+(ÝÒ,^柷½LÓtÍøûúú–‘³¿¿i#ÎÍÍÍÏÏ»§ùÎw¾3<<|ÅW4›MàôšyËj%-¾43jì);ï2šyrûjªÖípŽ!(R-×Ç+—×ZV’ËOsxÿ‘ÒB¥ÕhWŠ¿ŸÑ~ãßøðÃŒŒ\xá…étúª«®RÅÕ¤ïÿû‚ ¸-Š È­Õo¼ñƇz(“ɸŸä÷Þ{o0ܹsg:>ï¼ó~ò“Ÿ,ÿ¤\z»¢(Ÿÿüç{{{3™Ì?ýÓ?Ýu×]K'$_Ë”âýïÿ§>õ©|>ÇwÜwß}Éd²¯¯ïæ›o¾üòËßò–·|øÃ^jçöB¡ð¦7½émo{‚,sý kã¾ûî{ê©§víÚuÅWœnùùòË/aéúÁwÞ‰Dòùü5×\S­VyäW¤e2ZÊ2bß~ûí<ÿüówïÞ½víÚSÊsBÑfgg'&&×Ð5½o°‰†£±H(´íÿe]rÑE5Eƒ~†/¸à‚F£qºEµ²;#¯ t'dñr5ÿŒ¸í‰DvìØA’ä=÷ܳ¼œ÷Þ{o8Þ¾}{*•ºöÚkݪ AßúÖ·víÚµ{÷îJ¥œF3O–át…ZI‹/åŒ{ºÎ{:Í<¹}A$i2_Èz¼ Nàšª/MÿµÖŸ•är÷ÝwïÞ½{Ó¦MÑßñÆ7¾ñÜsÏ]ÆêòË/ÿñüÔSOmذ¡§§çë_ÿú—¾ô¥¥»'^Öptß}÷MMM …K.¹äÊ+¯\<~ºÖ\ùh¼L¦+áäÚþÎw¾_Ââ—ñ{Þóž}ûöår¹¥óü¯æ©±ôø«WÂçž~AQÔõ›ÖÆ“q‚À5MO¤ŽãÄ“Ñþ¡^’$ÀÏ~ñÓ¶mûü^UÕÎݾŶmžæ¦`Þ0 ×¥·½¬ºûÓcçÎÿøÇO°ú[!¿ùÍo®ºêªb±èšù¼<øàƒ=ôÐ 7¿¿Î|ìcsc,Ùwì [v"+.T¼^æç¾õ,JøçÃ믙¯ÿüÿ|‚¡t&‰b¨ªjÁPà-oxÇÙêµåÕ GFcpppjjjq‰w•WÏßé¦õ›†yNeeÝÆ5åbÇqp’`º^k =}y5M‡8A%š¦$Qîêu¿ÖÙNHŸ)“Uþ7###>Ÿ/—˵Z­/}éKo{ÛÛ^Ïìꫯ>£×•³ÅßÿýßÇãñ¥G,Óìò¢$Êí‹ãØìôYVPííï9ÛEXåO™Ù©yÚ-¶Óf%Q^µ]åe1~|²RªFcáV³Óe¹z­¹µÿ#\Ú*2¨ªÖ¬·ò…l(ôù½¦êº^.U‹ó%ØNüéÿü ôkªV)×z ¦a(ŠŠa˜"+¢ eò)Š¢ÊÅÊ¡ýG!ÿ¦­ëyN¨Wª¢¥s)žãù®@3IÅùr,-Εë•úå{.‘%ùÀ ‡7ž³Þ±íãGÆÓÙ$Aâ†a*²ÚiuP uÃÐç÷½Š×m>zøx*h·Øj¹:5>C3ô9çm …ƒ]–›™š[»a( ûƒ>M3ŽŒæ YEVÇñx‚"ÓÙ¤(HªªFc]×'Ǧ]Ç3SsùBV’d„ExÁëó`êñzj•zß`¯(ˆGïéË$>~l2 òœ`¦ëˆ$IQ@1Ô¶íòB%âÞ¨6<>ÍP(Š ¼úi}ôà±r©Ú;Ðãø ’%¥Óêô öFãáÒB¥RªÂ0¬k:NࢠeòiC7`â9!‘Š×kn§;0Üßi±šªÍÍ, ÷®h7;/p]~xÃÇòíf»^kÆ“1†ƒ!09p$žŒ“#Ž¡ $>~|Š ñf½EQä–m›æ¦çKÅŠÇÃàžïͺ15>3¸v`rt*$Rñ™©9A\‡Õýƒ;íîþç^yp¸/ áV¯4¢‰¨¦¨÷ßý£õ›‡†û§Æ¦K •õ›×Ê’¢*Jï@¤ÈZ¥Ž Š"4CK¢¤ë†/à­W _$Ûq"Ѱiš TËuЦ 2 ƒ$‰ãGÆù.Š3ùt8š›GC½ýù.ˆOÆ«åZ:›l·Øù™…µ×”‹Õj©º}×yº®kªfÛöø±ÉLO:‘ŒçKZsÛç Ês ÃzAǶIŠÒ5ý…g_ÒTõÍW^* ²e[G›ŸÞýŽËCá ®ó3 Œ‡N¤µríù_ïß²mc¹TyÑãóðœ€ah$ÖT=žŒO…Þ IDATÎÍ,‚~Š"õf&—ÖTÍ0M‘A$)’¢)UU)Š„ÃÐÙ©yË2ÓÙT 0 SăûGÎÛ±Õ0ÌÒ|) oE‰mw«åZ8¦iªËrŽ*’Âvº¥…ÊÖó7›¦…bh,=2GØNWåt.åó{Û­ÎÈKG#±pß`aäà1Ó0!jT›ÉLÂ4ÍžÞ\¥T«”ª}ƒŠ"§'ç4U5 ³ViÄ“Ñ|! ‚`®7kæ#?{<‘JÈ’,‰²ÇKGbaUѸ.oÛ6×åÏ{ÃÖv³Ó¨5ÖôÃÁ@Ð739p-ΕMÓô|¶m›†IR$‚ÀÉL¢Ýì´›ñã“kÖBdÛ6Žã/ÃðÄ膡ÃÁlOZ–]ÓK e˲©˜À‹†®ú{^Ô4ݶ¬ùÙb"ó‡ü8†äñÐ^ G‚áhÈ4Ìñ㓹B–f¨f½åñzØ6;¼ahï¯ö©ŠºnÓUÑ2¹”;›§*ZµT!HÓ´Mç¬7t€'Ù»mÇVG-ô÷ÌNÍwZ7\¼Áâ|Éç÷±m‚¡µë‡Øwldt˶²¬ºAÄÜÌüÌäÜæs7Æ“QUÑ^ˆ'c¥… ÇrÙBF‘UÓ0ýÔs¼ùÊK|~¯mÙª¢ÎLͺqÙÛÞĶØf³MÄÂ\pœt6¥ªZµ\Ó5ݲ졵0 uÚ, Ãåb5ß›å9A‘•Z¥QZ(§³©B_®0Ð37½°ï~Ó7ØÓ7Ø[œ+Q ðeY²(“4Ž„Ç™ž˜Aè¼7l¥(²ËrGKçRŠ€ ȱ|$RUåB_N$¶Íš¦åñÒ•R­§/_Z(«ŠÃP£Ö\˜+ ¯ŒÄ"º®S©ëã¡Çi5ÚáhHSõF­™LÇýßÑÃÇQ\;pôбá~H’eÅÕj¯Ï[)U(šZ»q®Š¢Ð4Åvº0 ‹¼€ã8åRÕð­Y7¨È I‘ ÎM/ùÇÉöd¹.ÇsBOonï¯öY¦Š„lËb¼ Aà «Šªiz¡/wôð(IŒ‡‘D)‘Ž¿°o¿m;ë6®E™c»0‚°mðþ¡^YV*Ūiš­F[–ÆÃÑÓ›ËäÓ/ì{IÓ4ÇmÛêê5 ³Óf'ŽOñŠ„ ýùáuƒIpœPœ+ ˆ¢ˆ$É0 ÃçnßR«ÔŸö%‚2¹ÇrŹ2ŒÀ­F h,R¯5*Åš®é E¢auÍh6Z†ÞDQTmÛ¶»Uo³.Š¢‰TL×t˲pƒ ¨RªFbaÆÃ´›f½é øN€@ˆah]Ó/¸ðüH,4òÒQœÀ=FåžþüÅ—îÚ¸u=NâŽùýÞM[7à8&˪"+\—GÙ|š ðh<‚ 0ES0 隊LÃl6ZAø¾f½åø4U3 Ã4LŽå! " ñœA ªhñd” ˲uM„Œ‡Á <“K™†% ¢×ç „$I #H"Kç’ÕrÍÇ¡=4Š †nèºKDI’ i’ahEÛÍN&ŸB1L×4˲ÙÿŸ§÷X’f¹ÒÄÂCk‘Z•®_â*4n–œ¡Ñ†|rŹã–ODrhöô Ñ \àê_•©3Ck-¸ˆ6îjSU™îÇϧŽÛàäü¸(Š8ŒUMyº‚‚ @à‡EeYAÐìxÚík‹§•eØZOU5@'p¢$ (‚„ë¸×nÛ¥CS$Åоëï6ûû›Çºª;]5M3Y•+ã`Lfãn_Kâôéþy½ÜΧw7IœÂ0Ø®wO÷ Š$xOÓÌwýÕbÝÔ ‚Â0 E‰Àˆçùy–û^€áØ_ýݯãþj±å8öí¯`ÄQÒík‚dIÚtyžÕ÷†¬Êª¦®t¥£àÆò,Íж鈲¨j ES¼À$QU•¤ˆJGѺ¢(‰Y–åns€A@’…(Œ£ÉaiœÀ1 CA𦴾†ãŽã‚$¨šQY–×o1 ç®È‹²(9žmšfµØ¬ž×4CÕuót÷ÌrŒ¾7qEÑãó£"/ž–4K˪lêÖÝõCš¤jG¶-‡aévah½Ž G'³²,®Þß|öÕÏñ‚ \/6‚$´#* ‚ÈóœøÁ¸ßík§—'²*ó"t2»xu>ž "üâåÙÉű¬J$I¾ùìåìhòë¿ùz0îsG3AÓ£qÔ{ñú‚ãYš¡._]°ÛÔMo á8®¨²(‰$I¼ùü•ÖUƒ¹Ymó,o«Žo–ÛOï®}7 H¼(J†¡Ó$ÍÒ,㲬ò,?lu¥£Üß<<Ý?£ªtä¦iB?lÈ2mó`ÖU Ãàé~Ñ6 $E!|óéÎ8˜›åŽ ñö†ÄÅãÒ±½ÀÓ$-òâáîùñîéñîi8$qR–åþ¿þ 'ð(Œ“$¥hjñ¸l(Ïò?_mVÛ  lW»$N®>ܬ›ÀQ ûî›eEô\8îgiEñòi•Ä `–c«ºº»~ ФÉÕó¦®kQ®Þß(Ié(ŽáöñÝ•ÖUUMùáÏ?3,SW5E“eYv{Úg_½¡h* ÂåÓÊuü,Í‘·-çáö©®*Ó°I’dXæêÃMY–“ùF`­«¦I¶^lªªò=ŸãXŽç8žýü—oQð\ïâÕùóÃâîêþøìè/~ó50 ËŠ\äÅéűÒQÃÃPŽí}úùš ñãÓ9†c¶é$Á <‚ ¾êö;8ñéýõÝõƒc9i’æYÃŽãZO-ò’å˜4Éh†&)òäü¸ÛëäYÎò¬q°’8y¼[l×»ËWçŽí’yr~…ñýÍ#ŒÀi’’)É"ŽãI$ AŽcŠÖU]Wµ¤ˆišz¶ç{Ažª¦¤IúýŸʲ¼ªª4I{ãéaiè¦c¹?~ûEÏñ{Ã÷üõóæýŸ6«Ý7ÿüg¥#Ì|?Ȳ< ãÍrSÕu;q7KóÇ»g’"ã8Æ0l¿ÓË¢T5™¢HÇv«²*Š‚ µ«bŠ`¨ òÃñ 7è¾ùâEà l †¢©Á¨/)R·¯5 ŒÓùøôüX¸ªª¢0γ,IR–cPãD’Eô°ÓEI`9¦,ЇÛÇ4ÉöÛÔ4m7T´—lE§×AQ¤ñXU‚ †nަC ÃF“‚"‚vzYV_ÿö—²"m7û¦iò¼P5õ«¯?w¯i n¯ƒãXY”‚$@$H¼Ò‘1»ýt/)Òñ霸Ï~ù¦È Žçz ‚ E§ó1@DqÛ¦3šEI hr½Ü‚ Õb]Uu]×EQÄQ¼zÞ¶ºÖï¤qEqà‡PÓè‚ ¢¤Pulo½ØyÑnß3÷ÛŽc¢,Eé{þnƒ´þñîyr4v-WTDµ#çyá{ òÆÁlêæ°;tûÝNWÅ1t2­—[ß TMÁ Aº®³,ošæêÃM§Û9:'qÚ6ÎÃñ@ÕÇr0›ÎÇ7W÷’,ŽgÃ(ˆ‚ Jã$M2ß †Þ®v³ãià…ûÍFà–ˆ£8cE/_Ÿ·§Žï?~÷α\Ïõw›ý¿û/«RY–Žå¤i*ˆB–ç?~ûA–c%EŒã„ahÃ0CQÔ6íÁ°—¦éÝõƒÚ‘=ÇGQ¤,+šaUrl×2ìÑt8;žò,ϳb<Üß<ÅQLÓ‚"›õ®*«º®û£†ceU!(j›öÃícYV/Ïʲخ÷ƒqß6S7UMuo³ÚN瓪,Û {“£‰¬ˆúÞ¸ùx÷ýŸºxy6š ó¼°LÛ68NB?%Ás5S7ã(>:§I AÐn³¯ëFV¥À ÞÿôIV¥(ŒÛÝo¦nö=‚ăyñòŒåèÓËã7Ÿ¿Äp †aA0 ;lu‚ $YäÎ2˰†æ®Û×:]†áögß‹¼€aÐíkŠè{£,JUSô½Ñh_üÅg޹ŽgL–c Çq\í(0 zÞ©[úÞ8>;%ÁsýÀN/ŽeEŒ‚h³Þ)Ù±\†e8žÕzY‘’8½¿y<½8MuÝÔUí¹~Ó@í¿s/M2I!êö5†¡õÀp¯È‹íz/òÇQœåù~{ð½`»Þµ´ÐâiAP'yQ™$)Ô4–a•eð( žëùnÐtÛêXŽª)²"•e5M·ßÁ ð›O÷ï~xO/p‡Ýa½ØÎƳáìxB„( –aY¦sóñ–¤Èן¿’dÑs=†e–>qQØÃ ¼ÅwO,Ï’4‰¢¨m:’,ò"¿]ï¢(ÆqEQI{îÖëLŽÆßÿñÇÅã²?ìMæ£íj÷Ó÷ïa>:!ÂrlQ”úN?:Mç“ñtôÍïÿ¬¨rY–u]ãnLЦ‘;>ï·‡²¬:]µ®›Õóf<Mæ£ßüí×EQÌx—UÉs}†»ýÎòyÝÔušd8÷‡=µ£4uÓ^7[VU§óã ÍÒq~è¹>€á(ˆh†Žû«çõn½oË`šd¦ni½N%Šê{ÃÔ-ß ÆqŒfhý`ì·‡—o/;ãáö1ôC¥£„Adv–e Lj’°]íîoOKY•(š<>›·—<Ý?GaDDUUûí!I’Ó‹cE  HéÈçyžeYžë‘¡ï Š"yCQ4ŽŽc ƒH„Ó‹c†Ûã¶®*Š&UMùôîúâÕ™( ¢,BdèVF/^_ÌOfO÷Ï$EÒ4õñ端/‰M‡4C "‡aÅPUYÅQ")Žc€’”dáæã "US j¨õ² ÇýަÖMC’„ïm 'ðçÇå`Ôï»w×¼ÀåY>š ´^‡¢HCYž ®î!*Ë2M²(Š{ƒ®ï‡EQ˜†u|6ÇPôöêÞ6mŠb®ã¡ª¨rè‡MÓX†¢/pUUº¹^lXŽ­Ê²*K‚p ˲ÌÔM^öÛÃn³gY¦7ì! ð~0‹¼DþÝ8Žõ=Ÿ¤ÈÕóf2£-J««Ú2ì¦,ÃÒzœÀà 2uSß@¾ئEñædÖtó,Ç <ôCœÀ9ž«ª*Ïò–)R5¥(в,wëc¹ÛÕÇ1^àó,~X°S×M–çY’µL‘ç®ãAôú³'çÇuUáþã·ï?t,'Ër–cY>­?˜ÌÆMµM›¹"/–yºVT©(Jš¡Ë²Äq, ¡åóê‹_þ‚xÃ\Ë%i †Áéå AŠ*'qâØžk»/^ŸEy{uGä~{øÍß}möf¹ítÕ²¬?ꦮ“(yzXLꚢÈåÓ’øíza(€Áôh"É"†c†=Ý/v›}Y”Ó£É~sH’´iê$Nº}aAädU¶-§Õ['-/òûí!Šâž–EéØn{Kt„ݾFDÅ®íF½ª®’( ‚P†c ÊÒœf(–c·ë½çxß]Ÿ^Î$E<qá~«³,£õ:–a§I† H»vçÇÓ–&ê 4µ£xŽ÷êí ‚$´^‡¢(Y•޲Ûî)†Òz*ES¦ak½I†i½Î~÷§ùÉ´mt’Àq|v4é º‹§ÕÓýBQeÇr³,«Ê’féùé¬%¯?Þ¡(jvUUÃñ@é(í)… pçA (zØ<ÇÓºª ,ËŒ§Ã·_¼6tÇñ,Í Ýª«*ÏrY•MÝdXf8 lL†¥?ütµx\Eñí¾ÿú·¿ä> #†¥7Ëœ¢I†eîoŸYš­š¦»ýŽëxúÞ@Q´iš?ÿëweYºŽÇñ,†aWjÀfµ¥hrñ¸âEÎ÷‚çÇåÛÏ_=>­Š¼eq¿9‘1Šb–†š¦©kš¡lÓæ.‰“–dQ”€©[ÆÁOGUUÑ Å04‚ €$‰%EjØmëÝžy(Š"¯jJèG›õNßIØ–CRäõ§»ñtxwýÀ Ü2í–ÍÒUYvú·üáêýÍéÅñåëó§ûg’$Ï_ž Çýõr À8–cÛWÃq,Aà‡ŽøÇŸ¯¢(ÎÒ|~2Ýo¼À †=C=×Ã0, #ßõMæº?ìuûº®w›MÓí2à.ËòÀ ¶ë]žåÀ0 YÚu¼“óãõbAÐíÕÃßýûßR µx\.Oêº1f{q<Ûv9ŽÝ¬¶/ß\ÖMC3†¡è`ÔG8 #œÀó·¿‚ (Ëò0ˆŒƒÙönšæöêaù´:y&ˆ<Ô4ßþáûº®)šÂp̱]ŽgQ€ (Ïó(ˆž–žãÿþ¿üDZ¯ûKQ׋­ë¸E^ô†Ý"/h†jå–c%Y¬ªêòõ9ÃÐeQ„aŒ¢ÈÃíÓìx")€áªªMÝJÓ4K3œÀ–Ïë(ˆpß®v¢$ÈŠtr~Œ ÈóýBëuôƒY–åg_¾ùÕ_}•g¹e:ÃÉ`¿Ù·N¯?ÞBM1ËÑGgsA 4tk~<=>›Ça\䊡’,¢(âXÎ`ØË²œá˜ÙѤnšíj÷éý¬Hi’ž¿8MÓ, c‚hš^/7¦a!ÒéªPÓÔuÝöŒƒ±z^·Ð§%-Ó†a˜e™²¬â(üp»Þ7MCR$A˧5Çsau9ÅÐÃNß,·–a_¾>ÏÒ<Ž@»ëº®Ê*Šb‚Àõƒ ¨7І“ïzžëöúòqµÝì?H¢äêãí`Ø;:1ó§ù.Ïó$Jʪ2t+˲«÷7ó“™Ú‘'óqQ¿ûÇŽúÇÚ–lj¾7þþýÙå1E“wW÷U]ûž/ÉbDßÿé§²(g'Ó»«{†c; ñç‡åíÕ½©['çG$Áñ\§i’öÝV±†aØs}}oàÃ0Í0úÁ\/7UY!(²Ûì׋( ¢$ì·‡«÷7 ÇP†Ža‚,$øát>V5¥®kËtªªî´_|ùº,«À ÆÓQèè º8޽ýâ ÃÑ K¯ž×8Ž&Ã4MIвôvµCQ´ÓUûÃnšdEQ$qjFvUÕª¦Pø!Žc×n¿úË/0 »¿yd8† †Ÿ—E^¸¶wþâÔs½LÊ®Þß$qš¦©Ú‘nŸúÀá‡Û§›w¢,AçúÆÁ¬êz2åYG1I¢"öG=/ß^ÖMQ]×í (ò㻫£Ó9NàMÓHª”&Œ g§ó?üî›8N†“A]×ûíAù£“YšfýaOV¥š h†fy¦(J}o.—qs<+JŠ"®JRdžŠ’$QU5Ë30€EIX<.—O+Çr^¾½¬ªZëu–€ ¨ÅÊíľÙÑäõg/“8©ë‚ †eš¦)˪iY•g'Ó£“NàQWU½]í8žûË¿þ•( $IX¦3;žòwØéÛõ6Ï ã`nÖ»¯/úÃ.†c0϶ø¾®k×ö:šÚh­¹ßTM!p|8”e©tAõ>÷gG“ìôó§~útùê¬7èÙ¦ÍpŒï›¼èö5¿øòõz±Ñz,Í€x÷\0A7ŸîËéöµ8Š×ËmUUóbÚ^¿\••c»~úØ4 ÍЎ划ðô°ètÕõr AeØZ¯Gqšf?~÷®ÓU—O«²ªò,G1”¢È¦iмHÓlõ¼n…IËt âøAþÇ?̧žëµÍ»¾7ô½1»}íãÏW0C „ H§†FPä_þËNg¼È#(JÑTš¤óÓ™¡[ÔÔu-J'Q[¦mêVoÐ-‹2BÛr0khz4Æq|·=äY¾|^WU5¢0.ËÊ÷ü¶„ Æ}ö›}Y‚$"Gq–fÆÁüáO?mVÛ“‹ã¦i`¬CÇÓQKPø^áìxÚõwë]K%ùžOQd–f¼ÀÍOf¦nÞß<þò/?GQl~:[>®ÚÓô°Óúþ}Q4MÍOf4CµÇ¤ëx¾p<×e¨ªª1mõ¼Ñd¨õ:–éÈŠX–%Nà’$AÑdD0ŒÜ^Ý[¦Í²Œ¢JEQœœ\á8^•ÕïþóïÛ]QUU<Ïʪl ÃëÅæüÅi‹JÓ$åîüÅi–åy–»Ž×.IŽí¦iJ¦ÿ&`jöÙå‰c»eY­˰LÃ&H¢iš8ŠÛ%}ñò<Šâ8ŒŸîƒQ¿È ­×Ùoõ²ª‚˜O†ãAq‡A¸Ym•ŽÜíiIœ0,£täV¡Œz†®—[¨i Ó %ˆ|ë½§hÊ2í– jbȪ¤tî³4#‚ aVU…Qà‡4C "ߊÁ¾ëû^pr~œÄ‰ï—/ÏHŠ )òâåÙ`Ô‡a¦9Çs®Úík’,¶ÌA³£I'®ŠáXUÕe )çþ8IDATQ+™fiQ›¦aYÆ4¬ÕbƒaXS×M1 [ßë¦nåy~wõp|6ïöµªª–Ï+Žc[C§(ŠÔu-)âd>ÞmöO÷5ˇ%€á<+(šjš¦?è$qr~ÇÉÑÉ´ªêÁ¸QÔS5å_¾¶MDZݶM<>ù^ÑåË3‚$Œƒ¹ßé K³CPä`Ô;ìtÏõó<¯ëºý²«Å&Ž“¦®MÝ|zXȪŒ"Èa§??.ŸîŸ¿þí_L&uUY†g¹Öë<Ý?ÏŽ§0gi¦¨Aà(†fYFRdÓ$q8nêVÊ¥ ËÔuðc»Y’¶Eôýÿ7 ,ËÏæ¿ú«_ein[íܲðùa¡ïÝöÑÏßpl7 ¢8ŒÏ_œ¶b@Øçî㻫þ K3T%8ŽIŠˆ¢hoØåxŰǻ§Á¸?š 8žÍ²|8î÷‡]ÛtIH’”aé$N›¦iꆢÈZäO.ŽEIÀqL’EY–1u«ÓU%YüÅWo/$HµÝËWç K_¸O=×G1ìälî¹~’¤ßócFY’QùOÿÏ?“$9™Ê¢ìöµéѤm©XŽ}~X2 MÑ˱Óù˜ ^àŠ²„ ˆf¨û›Gµ#·j†cYšýæo~Å œïZ¯ƒãx‘u]yŽË²Ìh<ÐúÚÃí£( ,ËÐ,M„¬JÏ~øùÃ2³£IQóã©ëx K$9;*x‘?9;º¿}̳¼Óí(ªÄ œ~0Qˆã¸?êuºjoЕd±=›?ûêmÝÔPÓÜßOâd·Ù§£—o/mÓyºÞ®÷€“ó#†“(áx.Ïr†c^þʱœûꭢʎå|øéÓãݳª)’"Ó÷‚$ûÃ.A‚4u3žŽ`ƒ°,«º®ó,÷ªJëuº½KAä³¼@1ð,ËÐÿø¿ÿ/Ûõα]Aà%E*‹¢¬ª0ŒÛe‘å­¯Ýß<&Iz¬ˆ²*˪ì|ÿÞ8˜i’]¸©ÊŠ ‰?}jE»Åã’ai†eÖËMš¤«çMëPHâ”å™n_X<­´^§,Ë"/ªªÊ³b³Ú2 =™£0fz4tÝn_Ëóüùa))Iω²HQ”¾7Û´/Ii’|/ hñýöøáOß¾k¥º®[3ØÅ‹Óùé¬u¦$IzvyŒáXYeYʪ<Û µÝì!’ E@ÆÝA7Žß Î^œÜ|¼kñvx ÈâqY–I4KCMS••q0y¸{Œzi’:–xa·§•UÅ \QŽA`Z”%Ë1a•E™g¹( CA (š¦iØOGï~øà{~+]÷š¤ˆ$I¬AŽMvzkÚ ƒÐs¼8J>üü©×ï&QLREQ»Í¾,ˇÛ'Aä“$Õ÷FÓ4­BÆò¬c»O÷ÏZ¯Óéªßýñ‡Ñth›N]׳ãév½ãŽãÙ4I}/¨ëš$ ’"˲2uKùº®aŒ¦Ã–zJ“ìû?ýØ* -pä†Ág_½I“¬½ñÉsý,Ë»ƒîj±M‡‚ÄgyññÝŒ m…êz’,ʪŒá˜m¹¾ç§I6÷·«çz¡¢K,‰ã,Í|׃ЂžÖáâ:^UU8Ž`l–Û8ŠÛ'<õ lËå8æ°=\}¸mš†ãÙë·/ÏʲÌÒ†Aë \>­¯?ܹÛ쇓ÍÐI’pÛÊ?ó“©h ¼À·«]Õ”Ë×ý¡ ètU–cZ+œ( ¿üË/ ÒÆd>>:ù^€aèâqõæó—ª¦´™ AäÏ_œ"(òx÷ àÛïE‘$i]×—¯Î]Û%H"ôÃþ¨×:êa–‰ãYAdEêöµ<Ë·ë]]×,ÏÂh½Nص »\zÃ.ÅÐŽí6M3™ª²Â ¼,Ê6ÝäXÍÐ,ÇŠ’ ï²,ü4 ÂåóÃÐ6s5;šäYNE“EQ8–ë»~š¤,ËxއcÍP£é ðB C–Téèdvó8;žô]@žçm°‡aéÃNO“ÃqßõÓ4£iÊõÃÁ¨ßr¼í)[•e¯ßm?*A,Çø^pûé¾Í&5MC’Dûõ÷ÛC'²"A(«’©›EQªš! µaã8†a(†¡û­Î°t‘ KAØ'€êºAXVÄ4M%YL’0™¶«ÝütfvQ”Š$®tdÏñªªRT©?ì²ëXN§«ê{£­þýA(‰ËtËéz$E6uç¹c9AWÅ1l¿9`8fv’¤‚´öAPÙ¬vÆÁœÌǽ¾¦ï ǵ¾VUUà–a'qB34‚ ,ÇìÖ»ªª[Ÿ#†aEQô†Ý,͆6u†áÖ²úáçO€8ŠÛ!”­Dútÿœçùx6Ž‚xãx¥iºz^3£t”åÓ²,+AN.Žq ‹ã$ ¢£ÓYà‡nV;}oÐ Õ¢½6X‘ª)0 dEêö»$E*ªø©[JGÆ0LQåÕrS%Ã1eY­žW–i;–³x\,–u]?Ý/Î^œpÛÊ+ Ë\½¿¡ª5FEaôü° ƒ¨u§gy±|\ê#ÏŠ6†wþâ¤ÓU‘ÿëÿæ7‡ñþ§I”¤Iš¥ù›Ï_Â0ì:Ã2ŽåyñéÝ5AG'3Y•YŽÎ²üåÛËŽ¦ºáÑ霤Èó'IÚ¦Ý\ƒé¹þa§WU­ï,Ë’(q¯ý$I ǃ$NÞýø±¥d<ÇÃp ::“Áó\Ó4AÂ0,+Rà‡·õ·iQ¾úõ8†é³e]hš*ÊA ’"Ng¼ÀIŠøÁüdºZ¬Û… ˆai’&1 mÍMÆÁÜoq”ˆ’ ÊB]W†n§#–c¦G“üOÿT%Ai’nV[@D²"ò¢€a(E“ß]é{£?è¾úÅ‹ÃNgy6B–gËQ:2Š¡»Í~0îöÕ[^à’$=l½¾¦õ:ƒa/ôÃ$JF“!Š¢×ñF“†c’"æYn[dz®ZeYU€–¢Áqü°Ó ‚€a…I²,oúawD~v<Å EѶ׃ˆ$ žgó,GPdµX—UÅ \D†!Q¨ë: B˰o?ÝÑ Íñ¬¬ÊeY´^×ö8ž¥iÊ4ìÃN‡ax8Ø–“Ä Ãqœ¼ûኡg—'£é ©›ýöàÚnš¦,ÇK²¨jJUW0€›¦Ù®w4CgæiŒƒyñê †á,ÍÛåy®õÂDQœ& AQ{®G1˳ª¦¸ŽEñd6n[Îþ  ÃðÃícD‚Èc8vt2“UéñîAY‘öÛÃoÿîת¦ÈŠ˜… òŽí¶¤Ö-‹Àr ESë冢)AÔŽ²Ûì¿øÕç´~u^àž¼À³Ó¬8޹|u¦LAä:šúx¿ hr8²,s,g8¼ýòu‘»íaõ¼>½8étUœÀ$EœÌÆ ÇȪ|ùêÌu¼8JÒ4­ë†¢IAäË¢%¡;Ð<ǟ̤¢(`”EG/rÇgG§—' CC”nS ÇIèö5ImË­«*Ï‹(TU…ãdz K!ˆBÅ(ŠNƆù^G Iq”ìÖ{EZWá¾SV¤4ÍŠ¢hE ÃêºÙ®vMeiöéýõôhböt>Nât½Üà8…Q§«®’" *‹òÇoß)ªt|vd[Š"EF±Z¬÷ÛC+²VUEÑTUՇݮÛïDQ¼[ï–&)J”…$N÷½Pøvw,W—¯×vOÎMÃâ.Âýk{­RH3tQ”»ÍþæÓÝ׿ý%A^ãGQŒáX]Õ7Ÿîvëýéå ESßýñ‚À7ëc¹Ÿÿò-ÍÒûíÞ2 E ÝB8ðCË´›º0xùæÂ±ÝÍr;?žÖM3™^¾¹t,‡aèî@˳|µØ¬WÛ,ͳ4£* ãvë{#ŽbA ÝZ<­?<¿<9:›·:zXÇp,ðƒÃNe†á¦â(ö/ ¢Ö˜¥¹eØÇy‘gy†aË´}7hç¿Û¦£ïº®eU"ÂÐÍ›Ow- ï»AØ-«Ð4Mžç¼À‘$yóéDZ6Ü̲Œ¡[aQYÅóÃ’¤Q%EÒ÷ÆìxjêÖôhrþâ´õi÷‡Ýþ°ÛÎ$`X¦%Æ?ˆãÄu¼£“™ï‡OwÏóÓY_¬«z‹c¾diÖ²M“Ù¨®›(ˆLÝjš†aï?µ|\ÖU幂¢$DNæ#’¢Ž¡hZß‚ć~4œôó<Ïò¼È‹—o.µ^EQÓùÄÔÍ ˆ:šÊrŒÖë œç9ŒÀaÎò¼È³œ¢K†¥£0îô:_ýåíR ¼ MéÑdˆ ˆëx4Ck½Œ y^pÜ>$Ùh’,²k̯/(š„a@Ñ4N`JGilŽgaβ¼Å¸m`õüåiY”íãÝfOÓ`·=`–ç9NàÈÛ/Þ (G Ã20 <ÇCÄЭ¦®ã>À4,ß ‘çn½Ú†A”Ʃ΋¼èº­Ž=O‚ üþ›O/ŽÏ_žfIÖík¿ýû_k]5Ks ÇdEÄ <ðÃ(Œ.^ž¾úÅ †¥K’$¦G“ª¬Ê² ƒ(Ï C˲Äq|½ÜÖUÍrŒ¬H‹‡%Š¢mp¥Û׺}­nš4NeU&¼××h–i£Q87uãØÍÇ[S7Ó4kŸÅûŸ>í·ûã³£¢(¾ÿæÇ<Ë9žku,S7‹¼ðÝ@VeÇrùðÓ§ÝfØë0 ãéÈÐͶø7ç=Š¢0?)ªœ¥Ùa§¾[êª:}qÚ骂HŠ„aØ8˜§ÇŽí*ŠÔÑÔýNŸÌF(Šî·: Ãç/N ’ÌÒ,Ï †¡Š¢äyÑFlo?Ýãþêí¥(‹I’þé_¾³MGÕÔÉlì:Þn³wlWÕ”Ó‹ãñtAMů~ñ’¦©4I7ë¾3Çíõ5†YŽ!)*Ž“ç‡eSײ"^½¿Y<­D‰$AV¥0ˆpŽ0Qµk7 #†–i?Ü=yŽ'Êb'$MmÖ;ã`z¶çX®ëøMÓ´®wßHÓôñîùöê!K3^䫪âx®*KAî®î[f˜åÇv[®X’¢ÚxÜf¹… ¨È ¥##’ç¹ïM~d±(ŠÃ^GQT’%˰’8ÕÆÃíS]ÕÃI¿,Kã`¦IÚh-ì¦êæêÞ÷QXŽ-‹òäüXé(ŸÞ]}öÕÛùÉ‚ ¦®eUfYŰéѸ£©û­ž¦Y'¢$E‰¢Èd>n :–gh†®ª* "×ñnUM‰£¸®ª¢(¡¦¡YÆ6íÕbsØŽå$q’ÄIUÕM•EÙö¢(Ž£ˆã9–c‚@QıÜþ°ç{븼Àµ2AƒQ? cN`Ÿî$Eª¥®›Ö'¥ïŒåóz·Þw4µÓëà8VUuUÕYš9–ûêí¥Ò‘YŽ%)B”„$Ž[ïúŠ*'ƒ4I}×o#³y–Ÿœá8¶ÛìÏ_ŸÎ[/‚mÚ¦n¥iÖŽmq,7ϲé| #ˆq0X–%¡Û×î®ÞýðÁÔmŠ"’$ ¼€fè¦i~úöç?üîOU]s<++Ã2m†§?ìõ‡}š&y‘§hj8 (²ÛDIŒ£8MRŠ¡0 Û®wMÓ|÷ÇË% ‚á˜é|ì;¾eÚQ7uQÓÔ(Šþëý&MÒ§ûÅ·ÿú}oÐe9F`NàÛul×2Ïõ1 à œåØ$J\Ûm3]íü™<Ï9ž[/7øÝŸþÛÿáTMiÏ€8J/ÈÒ¬ÅÀ0´¢ÊE (Šãا÷×EQžœÕ $)"/ò­þG8 ËrI‘Œƒ™ç9DZY–©šGI{×·Ò‘Ë¢¸|užeùÓý³m;†=Þ?®¨Òn{0u ÅP’"ÛÅ0t<fY`øôü¨(Ê(Œ We‰b¨Öíp<»^l;]?-é 5Mëlm ÀEQÂ0캞¤Hm©‡a…1N†fiGÉýÍ Ãaá6™ZâîúAßEQNæcI/TT)ÏsÓ°Ó$Á "ðCÛrÒ4˳âã»ë¦®E‰ogù^@’d·¯%q’&)I¶iºå{A{êF½ùɬªêÕb3šNÏÛs—åØº®/˜ÌGmæb6{®Hâdñ´bXf2ñŸ&i]׃Qßµ½<Ëò¼ð¼àé~qØé0ã¦tdS·VÏë6ã—&i‹©Úwá:†††ãA –îo—Ok¥#7u@P¤íódUæÃ0Û°%E%¡?芲°^m)š:q ˆ ­«β4˲ùŸÿãÿ¤jJÅMݨšb›Nài’ÖU-HÇsÇŽ¦£0‹¼x¸}2u«®kÇ‘7uKx¨i’$íö:wÏ7Ÿî_¼½dÑ8˜?}÷Žaéõr›ç¹ª) ˬž×»Í¡,J𥣠²Lçã»ëªª0 »½ºGQ4ðæŽN§ç/Î꺖©××"¢Ý@eYb8fêÖa{(Ë’$‰ï®–ƒ‚¢‡Ý!ðÃýVÿñÛŸ»ýn؃†Qžem¸j»ÞÿþÿÐíw ~üóÏžëoW;‚Àõ½‘gÙ7¿ÿÖµ=Qæ'³Élœ$iY” Ô´-LÓ4÷7­¾X– (ˆžîÀ,ÇTeYÕõù‹SE{= £n_˳̵]EAQÔ÷|×ñ“89ìt–cN.Ž%Ylù«v?g£4Ià ¬«Ú±†¥•Ž#ê¦$AÑä—¿úLQ¥ÞS™¦Y·§ 'IÓ$]<®–U9 ãÕóš$ɺª×˵¢Ê‚(´6f‚,Óv,·íå .^ž‰"QAŠ*çYîØÞ~«·U˜¤HAàoí£ïüØNä üðéaQ–Š¡æÁ ¼Àu¼ë·–é`:0 õO”š¡«²d8¶*«Öbø!˳jG‰ãÔ8˜8Ž'Iê¹>Ã0‚ȧI")Ò`ÔgXº ¶Àöï÷]EîoÝ~·7Ðî®Ë}óù«$NdU"|·=X¦Óª’¦aé;c¿;Ü]=´ _žçUU· ÞÃí“c»>Ü>=?.[•áþæ‘冓$$~¿=X¦ÓfÜo¯ï=ǃØ2¬ýö õµ4É8Ž5tË<˜úÁìtU^äµ® `PW5M“4C‡Aøü° üp2·OÕ±Ü4IOÎÏ.OX–¡hªÛ×x{~XÎ^¼¹`šáX@§­¨7ÐQ`YFé(Ýž¦j I ˰;ž¼À¡Ú4Žã³“iU–8gYΰL·ß©›Ä)€E“M±C3Ôoÿþ/a¶-gõ´þÿZ8³¥¦¡ ·'ûzHÛ¤ *ˆ8•qôýg¼ðÂAÔ§PBÛ$'9iN²5^Ä·ø·ïow»³é)ÇsÈè·»]ˆp–eÆXeBu³ö^ŸMl‹ãÙ^Ûó=dL#m³rEIŽ4m ñoîí®êƒ,ÍÝµË Bwƒ#ŠÂÙ‡SÃÔ›º Q˜’P Â[š¦Uáy®ª*ŽcŽŽ˲VTYÓ ÃÐÓï#aQ–¬ý1#š¦Qˆq¬ ÷_;nUU†©ó<שÁHtúúÉeçÏÈ NÞ½Ùâxvy%+òùçéØ2žó"ÞÆeQvÓD€’,eéÿàJ7†ž‹DIDê¶G§W  ¡ hJxŽç¼ ¢hŠåª}Ð÷6~W#E8Ö{’,’-aY&ËrŒðù§é‹C»nj' ”“89|uP×Mš¤Yšû.ªÊª,Ê<¬C*dK¼W%M3 I«ª:xi[³®k**T$QUÙwQ„ã¢(oç,Û%! £Ÿ³,Í-ÛlêæÇŬ©çÁ ¼j°ÃÊÝ•ûõË·åâѲͷgÇmÛ†&qBQÔâîžjj]UîÆ§iúi¹š]Î1Â*Tucô䬖‹G–eæ¿®νƒÃm’¤ÎrEbReY”w¿ÿÎg7Ödœ¥ùìûU¯ß ü0‰“Ûë»8Â1"ª¶mUIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/propagation-standard.png0000644000076500000240000024266612536324477023606 0ustar philstaff00000000000000‰PNG  IHDRd’d'AÆE}IDATxÚì½ ”e™ï[Î 2σc;·¢â€Ckƒ¨(¢JÛŽ¨‚2*“Ì3$‰$@R©Jª¨"e*ì©BH•V4d€L$QìIÛÖÖî³nŸs×¹çôºkÝßÿùUöÉ*\Më½{¯Zµ¾ýí÷{çïyÞgú?ëY¹ö'÷þèïÖþpÝÈÊM£?ùåÆM?¿ÞÒ9C£ŸýúGë^ÉÅÒ‹ÖÿteFVqÝ}çí×ß|õs»×üäÞæ’ïRŨä'¿xàk—.þÁü[»'÷ß5sdÕм{æðÈœ…}S:'ÎúîŒÁ¡;yêîΧþ©3&S¬ï®™‹¾×í3oé™3ƒ¿ï.¸cúSùÚ;gÆäÛ¿=0ÿŽ©]“/¿ö’9CýsõM˜|íŒþÛç.[sõðìò #tûþ—ÓsÚ¥­ù#s¹É;çõÐUú³rãèðÊ¡þÆ,ºMÓT8£ï¶ûZN¯¨ê¾ÿÿôŸî¹wá]wÏž»øNê§0†F›ŒnÃÏV¯þñFï_²`ä.†ÉW¥'tudõbÚ¢!Zá‚7–|—ë•›—ÝûÀ÷øÙê¿Ï0¹³dù:ã2Š1¥?þ‡uÓz¦Òî÷ï[BC4Ag ½½ùÖ wÜJý»ŸÚhŽù¡Ü¡NFÔuçíL3I7;£¦oË×ðž·ún*äWêä'¸ö'+¨‡ŸøãAºÇ£þÁºa 0ja6fÏï¥ÃL80´ÒUSÁ„ÓÊÌNzËðYÜ…ß»kÒí7±L¦WÔâó8ýäA~¥BnrÍü03 ‡ž3ùSfLâq†Ÿi컽Ä#ÜaíøËö¸gN*Y2À´0o,4rMý pÉòùÌ2ŸVΖŒ?ýö”˜=FÊÚ͘Î(†–Ís˜Œ‘3|. ã¢B60[‚‰b³ó©Áò ÁŒÍœ=2?þûu<ÎîeÆÒÉáAzKUôñÒî3ítøÎæ,6w¨“™a'³iùʈèóƒ],7õðŸ>Ó"óÆä3Qt›;½Õç&3“uY?Âfãµâ‚ud*¨Š¦¹fÑv)rÍôÒÆÅ|Þ2ýfÖˆKÍÌ}p«Ü6ó;üJ%l~*¿}ÖÖ”Î0]<ÎkN=nfZ¡­ð‚s‘N®¡ÏlZúÃ&¡Zººùo×®úQv5Ð+ ;~b+2ç,[†è3ÀOŒŽsZïTæ‡ÕaºØTŒÎs¡¸ê†Ëè?Ý€bPŒ2ÔLÇè £pzékÍ|ò•¶¨™þó5pͯÌ6}f†ÙüÄêgã1æ–¯ ÿÌ [‹1ô¹b˜<õè¯ÌMâ&_©>S[ŽqÑ •Ð+žu¢xIkÍΡ?Ì££]ºÍT³Ù(Æt±O|³Ø“ß™v32{\»£¸O1Za/±4WO¸2ÈŽ¢“Líòo‹E'i(4jQãb*×u7_uñð–±Ei…ìmI åùé¬sOgÆê}Y@µìžbçSŒ©cŒo»‘ 9–ŒV¨–²yèŒ{›™pÞz*¤iÊ0?ô–!ðšÐb†3Ú` LÏÒ4-ò¯ 3¶éçkØ!T˃ÌÅý§ •°^4Dg¨‡Ég×±¯è¿ï>Íñ“ûœæ QÔIWE^ºæ,È ]åY.X8úɈè' ~öiç_üMÆÈ&¼öÛWñ\tù\ÐI®yßY&Þ}ÆHßèO#}褫¹˜=)¢[±ãÁXOQÈúÚÚëÿÓFž=¥xäŸ6±„4Ì~öÏ?b±ùJ“üÊŒ3˜p—%!Çõ23$ÆÃJ°ã¹¦fîS†î²ŒV™Sbš`¦s”ç>#oÖ>foe36ù£î3¼ÃÅtY*dÊ(̻͜ò2­'&Ë™r6é-?±§Ù=Ü”!ñ¾É*¨0+´a$”bÙ¼pÜÍË(ÃStƒIgy¸†²°ZN¯Ž5X~^–V¾ÅÌ2ÅlÞF<Èh…¡±´_ýú)ìuþ˜qFÊT|ë²óéjO½ L¯KKI¾úV\vÍÅü±Õ˜U¾ÒÊÓC:Cô–þPžÙ“†J¿~òËèÝ !ã'ôõâ>ýä+}c5¦¯“¼œ‹ª>¿Ò"S-½Ëáã¡åŒžAIÞ|Þ&ÖÙ‹LïH=›F™p S3³Jÿ™+ˆ‚ô‚;”¡'¬õÓ"m1 ð Æ°z±ï‹îa‹0áì1V™ÿL‚UÝ<õ:ðÐ?n`Ý™1O9 œUãMf2é ÓEçiˆi?û¼3x!ˆ/ü×]BIúσ,T†VZMÔtúÓU¯7®½éJ^*žÊÛÒ3µÞäÎÚúnƒ*ÑÐÍS'°-ÙŠ™ÞZDFM=l’fæšQÐ Î芣7˜+úpÕ„Ë=ú0!Œy„ s„ݼ̇ yc)æù€ n2´NW!Œ—Wg™¥ maýáE çìf€þH=¹æ Êv¥f *ÉLrŸid2i¬##¢ÃwŠÑ4¿BØðô‡怚3Rh+áÜÅeY ¹wèRqâ&SçD±^Ì!•ÐCÖˆ.ñ*õû„01ÛüÑîß¹î‚KÎe-رÃuvøyMŠ_z\æW6 Ãç&t“ÁòÕ“„ì‡vM3?̳ÔÌC›Šåãmbé$U]sãl~erŸ%fxðÒ«/bZxœ]AoÏýÖ9Lýá'& gÕàñç]ô ‚L2³ÊOµW'(0ctƒ©f'0·{ˆfí=‰³ùØ yæõ0ãL« ×cØ4J‡¹ã42¡lAO²ð*~e®x‹<“²‡¤×P4&)å…äB±8<¾Ø0t‰ù¡ólÊÐg.8yðç Ðh_qnÊD€[»”û·Ù¯ßCçŸå`5é0ÕæÅ›Û b,Ì‹ud~¨î±¿é€BÕÖAµ“Ye]õ6ò?o×­¢„(ÑÕÙP’tŽùËæQ=¡iŠec Ê/êƒÝ²m˜¥â-—ý×¼‰Jƒ¥¤ K·•ÂYwQ •F•´X)æ]³ŒÐV„›nó2°.4ç)ŠñÖ5¨žÐCže~Ãw¬7† >­%óC÷èd£Ž±Ðv o2 ððÊ1’y W ‡ÝÂ}ߎéUC¬ýä‚áÐÎgìå$:Öô=½Ñ(ýdþÙl4ļ)¨±4Jüâ9bױؙ<ÅO´ÈiV†«Zâuð´Îи€°¯Xnf€IcªÝBL“Ì*3u ߣ' GŒü·y™ÔœmÀ~fßR‚óIoYS51LMÞhÊ»Ÿé3Ü’3uhîÈ\é8££Ktƒm@ýô„ñ 7³W»è-K@…uÞjÒ&Ã,ö)›Ò*Œˆ9aY9ÁhYúãäY¦—®RsΗëG ‚2WžeZ˜ó+¯¿TõÛÛMjXÔ!~É€ Œ·†ƒ…gßÈfOó ÎìqS)– FyþS­/#5s iU¨–â}£\(-ÑÚbÎé!­³¦Y¦]du Üsªœƒ©‡±CQY2¶_èç£÷±âì ʸ»d?l**ç/li^›Š}È;ÕjšF]‚ˆV-gÒ`ðt†b<ëœÅe9˜^: PÎ[ÏèdÍÉ|*¡õHxóz<3ʳpæ'ºÍ}ÏÊ™„E}4Á h—JBçõ°(PkE÷¸ÏÎaÅUQ0jÞAfƒzØç° zKIj©ŸúêÄ@E>žetL‹§=ÌÃd¡}³˜"g;gÖeóB Ö ó6ñŸV˜~•G0ÞY;9kϰ)Ä2×h£øB ` œ&†·0|&K/] 7S(ݲy*X Úg¨µnÌb]é¥gZa 4êO/Ø£YJeʳ´BI¶{4<«3rªeÙñth·Y7Êäà9<È,@ U‰0×¼]tÛA»Î¬gd©ƒå­öÔFµô?ÍA^—Í£p˜è@'/O4NÝï)›F…<ÎÌÐ¥hë…d6T¡x§ÏuðYÁ’0F÷@)Ó()E£AGØ7Ì ÄEq½EŨԄNæÙ8êQƒ%Ï,m^F‡Œh…a²´âùš‰µóÝc6£‡2† £¤Šå040}Ʊà†I×P[–Ã5¯ºúd…!)Ô NOæÍÞ@›±£ç üåêg\,7K‚ mŠž§ï6–,Ç·NÿÌ3Õ^pñ¹””ßðŸëˆ+‡JÇ5Ÿú¡Ô¬Q¶h)<˜:ˆ8¯bN]wÏæÝË p1ÔïÞ£NºJ´°9a†ÕÆ3Ï ÄƒoŽ|—>@¬Ù-ÔÌü39Ž—aÒ[ªâqVŠÝÈìQíö¦ÂwÉUߢo¼cŠSÌ3ªuH-.•{²¡6:¦¸ÏrpŸ™QçÛÄÔRø³mèÿKŸ™ñj q·H7ùʳŒE};Í9L¾º£è¤B:L» ”̼êAả ÎæLH¨Éƒh]ï’YzJö…U#G¯¢ÌçX¯<Å¡@¢fv‹Z_-8ð¼pâbêü1R–##zì~æÖC0_ûSk+ÎãÌ Ï¢ß‚8xRdW0Î1wxPÙ7¦ãirÍ¡“Ñ .ìcM}ºê”FÓÃe‚2Üd˜V…ó¬@'5p0‚f¢[¦ÏôŸéb¹=Êó}æÕ«°ô€RÊüh³sg´Á&侪MzŽÙ‘ÎP9m1@Æ«¦“ÝÈéXÁ1˜h®ZÎÞeÌ̵§Ú‹i-AèÛQÉ] CvçP?¶hð°®O^5œ„F¯òT›3æêÅ<Îe 9jÕëÊ+–ãìsÏàš-•µ©ƒªc 0 ÅäƒryQŸ‡jv“AÅêÕ¨†ÆÆrÒCŸZ×8ñ¥6ô0E==ݨ£ ~Îhçkõ‰ZlaŸ]~¢çžsµîDì˜ÎR¡ »pí¸(Lm”GŽ“¦ó çz³,mÙA2––§4å¢À¡Œf9EêXzÅhªîˆ§(R÷-A‰¼ ¦*&·Ñ#‚úó2?ªã$”ž?¦²©ŠM˜Ñæ—&\ €#ëaåᕞj=lòŸæ˜"¶T-_ƒ¦é ¹Ÿ˜ºÜ«GÝ¡²aÝð†høWМd”ŽÉ,>5óõÂËΣ<•kuŽ™°1+Úæ:Z2É0ï(‡ú¥ÚLŒŸx¼Xïôˆ,««Q3Ì[¡ß`hTΨ›-ʦõäH1á>¯ ¤‡Ñåì_MÓaîêmXYÚbíXÚåý¤*º§P¨ð—%Ã~Ó˜EÊ:€Ù <¨’YÖH¯r|\5DÍQš•ΟÍ2ÑœE‡=PÓG£K(í"SêZšHW™|&‡ñ2.y¡v2í܉*r霜ôË|膧¶˜ë6Æ”H1 ·ôˆ8ýá=¡¶5¥ bªy{2KMUvt˜éehjÒTx00!Þh¦Â}ÎHyÖ (Ïò+;™1êë{Ds›Š†z,bY•¶ég/OZTS4Ç ¢ïô³Q¦ˆxL6CýTNr.¤ÆèVñàH£ôJ¥Ÿ'QZ§´%ÍŒÉêT9€FÔ¨“® žíÊŒÑ%f›¯Ô/›çÊOÞ¤\3ÿêNTq±ôš«£N›×#såÙJo¤QœÙW,û$[hQŸ¼1Q—QÃÌ)uBl5]kœ¢­WÊLw³Wyú+·Ìùµ÷2(!0tJ2 LçúøàÌåº+ªzrh%nÉ¥ªâ)^ ECÚ…#²Ð,‡‹¥Äå(³¡^BÞ•Æì|½Ô(R3CÖO’Çu|“XGê™Ëƒ®j=ß^zËV!üGÊÍ›ô¯¬ˆ”%ÊÃþÛ9SS2¾r³¦È®xaar,V,y˜¦»˜4œ6ÎøÆ×áÖ¼ù14gIëüÞɶW™ÉerO^ö º¹Òal»K©Å=²ô– ÀÒ{¸ÔOŸRøÆKå¡3¤-Žƒ]Î5«õQ IyÎÓ¬£*\µY”¡?:‘Öq!üƒÇy$tx¿ˆD›—AéÆHi8x8?±ëôJÓ`ml°ø[Îí¦0¡0Û•…ЬC£|¥9ÖÈ£631´TͶEä<;jÿã>KÀ}ß>»¨6&sšGu–á&#µW1¶=zŸÖýGè¶rVýS½Â²é€»‹YÒ)RWm=e¢Ô]?BUžk£½{d%çBFQ9¡ò¬G"8.åYAfž³ê±H7(µr­2 A?)ÉÐ'Ü"F/£÷> ñ.G˜1‰zâV O-_=ª<[°Í4Tiªcµn† Ü9ÇouóÄMzé·•úõØZ (YPÁI<õÒî“Ç=‚0òMÅL…F@^IçÓà &ŸmÆ[Ìxõ{R¢¯ŒSÄÜÉügÈÌdϳ :éΪءµ@å2“¢AQÆÃ¨ôuÖ¼Ä"Ñ$×ôÉè-ºÜ¤‹YòóTÂ`"à v‘iåýDmÂÊ ×¤³k½¦v¿:qùŒ¡·Ø›î©*~™/t5q´[o7j NEè¦Ê.•þjíJpFö™·ÄÇ!’nC£Kw Oü4\4º¿Ôž°|¼‚)ƒ”©I‡Lê¯]bŠ•¹cö@}Qê:ìY•‰UXW¢½Š 5,kî‚++C›hšQ¡"²lOu4cQy„MP*Èèê¸vùtCeÆÖÖä3KlV툆Ä0ŸêNs܃6òƒ1Õ™~1Yf•yh yDm°>Mš œΩ(Fb­zü*EÖ'™ÿê^Ô¤©–/1k¾ç!5ÛLWg“(lKÙ«ÑKŸØ2–³Cè3/³ó@ ,bœñÊ=•žóŸ^ñµå‡Éª‡ðÈÒ_oꉥ3nv2nD«ëO¯®R=„‘KtOœqi˜äBr£A¡¯¼X)Æ+x1jø®.BíÐm˜e}â=1·»'GïNWGk«BI£,¦Ì– r=d“ÈßH¤ ÐT©€¢äª.[ˆÚô&ÓæMý¾eÒ¬Hk¸øùo‚ Ìø"–Æ3>;ÇP%Í ’¹Ø¥Z®/"ÂÒó¸%UZR9É«Š÷DIÒ4­‡Hì&ëG4óCè¶‚lúV:'™·‚Sì_ ÃÆBˆ=ìR»4þ8 £>áW–Is ¢~m|•™YlÌ }^ó©ržžèg+yUÿ$Ý`*Ü<¨û’¡PôŸÃ–ÚEÔ<æ)Sïo¥î…þDmóè}º¼ñšÄ’·i”WUóG³$KýÅs£B+õ,HCjã C¢oj\)ÏSÒ„z[è¯ÄWfŒÃ§«î öàEà"AV ã¡™_‡·Æ,ßñáŠdc½tw¢0û³™xܧ>þÓ%ÆËBèXOÀ“KT”³§qnæÑA3y=Y6W¶(d-ÏYFï°4ô¹«úƪEYþŒJo´›ÓíŒÉj)ÀÒ#@‹<ë¼U”N§:^OÀQ–Ñ„x]VÝJ˜(î°ÓX”2ÉÍWå³¶B’ C…Êð§ì¡ì.Ïb{3ê8±¯é°4iÔ $‰V©:ñXk—ÒjøêÈ\½<´s°Øl8ºÎâi—!G.©ƒ³'>@ÿ˜ 6(›É`½%™Sš€±‡<’«²ÓKžã<Ìêd˳T¥X_yn²´0?VZe:5³¨z·Çx[Žº5Ò64{ˆwÞóˆÎcÌ-ÆéC&®íuzÒížiåŒOë28E‡«u–³§¦È`JfC~êSƒ®IáúŠ'©/} <8´Éñ,oõ·TOt.Ñ™eãøæK˜#Õª1µv|£tZéª!x¯´BoZÔMå$Ń5æŠ:×Ô¢ÚAI:ï ”¹B¤3 J´GNUL娲1>c¬TGaØCÌåßA1öFT‘.×ëž3:m¤û9ˆ”¦E×ü„Hb{êW·É(X_ Æ:ûä,\ÏÆ_¼N ²“°êò‘ê19j­‘´Ü÷º;ökŒpPâ¯~nôŠ•¥LBÊq1ÎÏufÞš¥æmyßðz;?ÑT/Œm›ûÆ9«”@Ši~æWV‡ø+®¼Q#‚†X8et<õÆSßéõœªžPFUtUFA¼¬–\O)¸!ŸZhi»§¼«Nïãw»v)k@lбL´ê8V‚•S{©Ã?QÒ z^'ª•ÜÇ»}û„þ•wî|-üqö©g™ýœæõÇÒjŸW(I@a‰ä:8ÐgŸ%šz»±w qÓ>¤}T’>op#Çé†QYu¾çAF ;§ -j?ðt¬$‡Òáèk`œ1*â/»…TÔ§ÃsºÎ® RÊ|z…è—(ùˆ©¤½È˜"à,­3±ôÿRºA‡é$%Ùè߸àlîC ˜öþÒVÑ64ÅhšQ?¿R“o¨¢ó¯ú—¡²Ó&Ä@DŠÐ–ú9RpŸ´€uä”ÃþSÞ DéñpnÒF}šë/U-ÝÖ£ÇP5ù2Ëh¢êO$6wÜÐ6ŽÒsý*u±.¡Ä?IìhÝ`!­˜Jö¡†·Nðˆ­¦EË÷çA©¡.‚,–gúÃö§úIµ÷J¥¾~´^âW§ï˜±˜vIYÇšV'¡"ޱðNö—óWÜ(êB6¬¨¡Åš†Ø*:õ rf’yfÎÈ ® Z1á.ÚØôË×Ù„è^H«$‹¢aOn£t3½¥¡e€LE½YÓǼs»1Øqñ e«@Fã 3P õÃ’xOÌ% S3ìA¢£áœÿ<UуL} dŽNúz&¤¸œHÕÌÇ"þËå)ÙBW€Ø±úÎ<ýa¢X;W<šÒãi ì‚­«´Ñ_NJÿÚ&=Ñz ¡<•k'2N×Í@iEsƒ¾cº%ö9fi¨D£‰øñ .í},뮌ˢóîëÆ¥ßŠ¶ô0.eìˆ ^q;¼›ôŠ™a!´Jz>6¸³§v,ŠÍ`à?U¹ÓÔ1è-¥Q#®Âu,Ð9v±ÒÇ:¡0jD?•xŠU®Ð î(ÇbsR ÏHcäjBì½ø <´<¶ä£tŸâF^ŠF^^Ž;±SVxÅø*aá)f‰Ý ËÂ>õ‚®#U£{íHE>PD€Y5Ê(&™¥±[ Ü(aÉ‚±L"–P›3iœzÙ2›­}%Üc÷'˜§ä jf½ ‰Ë ”€c3!aÚ9leH*ØEGa PÒfÔ¦* }ðæeL¥ú"Úà½ò¤ÉxÜò!ùֹmc5¢zX.Ûä˜êLéljcv”Q„D ÷9º.›'RDÊ;¥CÕÖš4XŽ !'¶Ô¹š”c«H ˜Túë>Ã}¹Üd¥­Ð¦ári É.nx³Ag _êåTÒ&ÈoFøVNô¬Ô•ÑÓ.A†bšXØšžEr$lÌr™…YƒVX##;T8ƒrÑú¹¦„'Ž&bâ0hTšõj3_ò(QË;Ó¨¾éoåi­ üv(Ê’°ª•ÔI²»¨ûJw¡¬ÌƒCnh(ú‰-û@ùZ«T§€þ–ñ©Y7ì¡[ŒÄæÔ&Úõ¥™š[Sž4ʺ¿\*t4Ó,GµüÊ01]±1܉"¤´ÇP(#"´â"¥_Œr!¯‡ªf˜ L¡±1¸†4> Šòµ¥«¼yyX¬K®ŠÃžà=f!ŽpîçrëZW=‰1R“3ÌX@²êš¬æFí}"Þ– °Á®šù–ÿ­nÌ:: B£üg~õ˜×ͧü¼@ÜÙ3œJÕqÓƒî$ u™dW¹” $]ùôᢇê'…Ù‚×v•qN»—g|ÍH *d…_´ûôêÅq8Ø0¢ÝËpÜI4èZ’udqUÓ1@æV‹»®Ît>ÖŠrÎT¥ÜU˜z®*ÿ±½5O¶¼•b!`ÁXpè–¨0ŠWCXoŒ¡~ÏŒ—å~"sÊÝZâ?É "¢ŸP9žU²çZß1†EÕN M3ê)šíRPï)«¯&y«˜Â¦ÎhÔæ¢¤ó&óC'o_Âó+"3 ëCx Ö^£§a|&*I—4]º”;…§ÑÀ©q`:¤!ýœõ‘¤ þŸ¡QxÁÏûq8ˆÈÊv ÎÐg¾&:®"Uäˆús #é 9c1óêUôí–SRJª•{ º¢W¶1ÁzA2Ìr†šïy—_uÌtJ!PlBI´ú†árETª¡ 6*„H =¢ÍÞâ;à¥à¬C%ûØ3:©¨1mâSàBuÍu(rRH .úU¢jìÍî/×Gõ– Rço Õ“Ñ4@ä™nĪJ¸I=e©ž¯eBÏú=g³i”VÜß*yèH$2h,ņùjŒ³.a<뾇ÌÅZV 5ûê*5ØRgܱ*XEÿUºá¡^{‰úŠ €µg6è¡`Z:Iìlè®\DW7½Q³<<È&٢敀êQîg:\õþS¯Ñ †@·TùL)ô…ÖuÉcC$eæ-üi¥èˆTQÁ£Û°.4c/Þ`x»o£Ž”¼!<OÝw›ú5Ï*T©?½­¤E—©A‡MY ò{x¥Ž!L I^ÚFÙTdêFªÃ¦®©Ÿ„Cšóˆêlè…Rßm3‘ózŒèÿ¨TIMÍK1.Öæaþ5ž =A7øj»šx™w©£ÐéN“•®^2x.z+B+–ªN ôŠuɸ– °¾Ñå85¯®Æ[$ÄŒ$ §Ãõ#rÊ„+”=†Gø‚îëÇÔÉûËg»Á,¿aXzÎüD'ÿKûÓþ´?;å£C¯–£PŒ’ÊMPÒ<,¶CÏãÏ b£„€#Ý«¥†ri,BfÆdíÃ:M‰¾MçL­iÇñ“Œx…[ð¸ÖE#•‘¡ŠÜ–#IÉ¿ Lqñ(áC¯Z•Ú‚V¨ŽP1=\apb4hJ1ð™V¨S¹Íà\ÚŠa—3&Çw£Ð4tÏd‡Ž—M‘‚ñ…+XD·8"—¿«POÊ—9 ­¯s9é 2òp—ûvS—éê) ³§5E=’§r]!ÊŠ;¢¶-Ä;£â hkÙùI»¯ ˆ¬3'J’ÿÌ:ýVtEÑ¡Ãð>Øy‰ƒ T¼¬-%˜”å¡“QÚýé¯6·*QÝÁähSQ9¬T1†‹T†tÏF‚Šþ£¿_|JP3VSÓXh‰§† PƒžÏî7jËá1±‰Á¥B!+ ЋJgÏ¢AC&×Ô]¥e)ÑWŠ£ÎC7+£žÄ|ù‡ÿòÓ¿ÿ·‡›ÅŠQɯS®á†*Œ `¢bïÜ‹‹ü}¥Äó§X2À4ªÚ’†;F IC»êáE°›×CÓmÖþ´?;ç£c¤ –‹ {ÕÔ(´/„¥£·9a(¦.y PoÐhéx°Ë¨DÎÑ^K̓ø:ÚêX9§E…ûè}|Z7Œ/2×´ª?…Á$†µJ%!ù)·AU=f¯”oÔ¼¥–•¾r*7äN›¼!þÖ7] o…èŸ"Ê+$‰€VÔÂ:ÈJ©6aà«Ë,åB™hŒù^)0,³ƒìèQ€AE)±zqœ„ øTÖåñjË5Z+…Ø ¦†¿,Š‚zùŠþëzE ž¢`*‘58,Ž£%ˆS›b_ Ê.ž–zâŽF_y|O…ô¶|4 Ê\¹VGÁ™=ÍŠL¸ð"zNóŸãŽNÅ P‡^Z1ÆQ…Ž‚ºDéùl4ˆ‡#£ -ÆH ›t¢]ã´4\Ñû!m•;r§ÇêDŸ‰Ú„ݨ¡ÊAáõ-Ò¦Ži–Ü[1ÈnTº„ãS,¸*åŠl¼¿‘…Q×Ç%}¾‡¡T^ááBzt›^TUÄ=f§s[]¤o-z‰‹àÃ!Ò=\z¼¯€Q°ÚE´h­¦ÑiîI&„íÚ&aíOû³s>zÉý ê¡åzæ0 •èh–û@ËÉB†ÇåÔwV(0f¸ko™#Ò•¨ÔUºPÑ tèÜ!"’*=šp—2ÒQš.Œªº²òuì~ÝÞ”4·¶à•c¹\:'„…¢nPÝ&Ö m-z7èÍ«_™jÞ“ÿæórz!<^Ìfj Pë-¶Ð¯ Rˆ2j"Ùš ^˱7…L”èËÊ‹8á•´bŒG¬Ä¥}Ejè ¿0è<•ÇýõÁåb(3)Q­-§D¸¾A»%ç­0(;_ l“ŸŒÛ3x¿Òç«©÷Ì!À?ó¯Ç³ÀÁÚSƒ2Q š Zªæ8¯O”•zy±WtÖ¥*Šéz.ZºhDt;Óeü fmÙ{ ö”\8j&ôiR‹ë&“a‹šÛæõ­ÜCbåÊɬ4œ‰X/°l¥OuûÚG &Ñ#,Î,Án¾A‡:‘®´À ›GåN”èhô'°…Î¥¯|Î=oFÎ F[&÷¬)£rn6J9Qg‚ùÚ5™xžÊj·¨ úÜW‘gBàZxI‘>7/Óƒ‘¶hP.]ú×8FƒÃ4™3Š6 kÚŸó‘I™ìˆƒ¸ä—WU+u| ªêEÍ<Å]$Eèâ…NêÐ4ÿH¹LHC9ñët ËƒB¡#ƥʢ ÍÐe³«têsÐð¬)Dô‚3†¬„­5r2~®hšH' ÷'ptCý¢6@€(/5ÆšT‹J°v'˜¤"¬™7Ž;mÖþ´?;çcÐ TB——ò½×8A6:TŸšÖCy;Ÿ¸pôÖ¿†¸ˆ •›nH>v ~… 3¥¢P·6õ†Ø˾¥y¬"ü&˜7Ø0†dy­$PÂ!Š¢ËL”¥•¢H¤Ž‹kËûÆè³‘ð¸Z,Ãbø5êâÊl˜|bÿ+Â7è!ҵĘQ¨A­±Þf/ÒD|d©1”ÔÒ¯ƒ¬`@«0˜BQTdZ þŒEÇt²…š’Åht!ýÌK`â |=(¨Û’?šPsÚöô²V@ZmcJÆHQr‚¸/­"nDNÊë]%НñÂB‰Õi¾¡J)é£Uÿ[y§-w¤±T‚K()”]Xek| b~°qT$ûG×2™¢8R %¿Y|{K_ʤ±”Âê¸o´Y¸WÅ"3‰p͆dDª”=÷ð“úsÁØ{šÀU¢²ô&kJÛÔžæN®\Ç×Z»Ô¤K¦Àí*h$ER‘tŒM‚)=Ñt†±Q}ôÃbº¹³·©AtM¼úͲs8ÙQÃuwà›áViJÚ6Ëö§ýÙi¨.d“7Ò()Ê „–É›;4PÆ~Îg!KAµ!ÓÐ "@ JÂô˜´Kø•¾Jbeo5$ÛpŰ‹ke41ôEU­9E! †r‹õÕƒX‹ã ES §hæýæ°­`jsfi„8ªe(Ó -BÍðÀ¹ò*ì¯PbÍ8fúhYBÒpÖ©ßh‘…×Дù¼ô¶€ÞA©D!Õ|x:ƒ˜©Þ €²xcÉ:ØÅÌ´ôŠG~9ÖÈn•ÂÌ!ÜŒqýxRÁ%©‰I<Ù3ÕÜÅÚùø¦"Bi³â,ÇRÂVD´•éGÂúEiVÒL£Žóðf×p¨DůÒtÆc¶^Ó²kÏÂXÜT=TÕEÒèq°$N‘—©‡jé!8DÁ¼¸{¶Ç@\„o•+Ð A·ªtÊ11âÀ¹i”ÃÐ0‚\˜eŒGª z냆Œ˜q/A•´Œ+ò\áŒÑ_§Ü„±¹L‚c±®âЉ€L…èô(Æ¡êÿ@鑾Ê6NǨA¨ Tçi"º€ªßC~Ôûy¾h¿Zî UÔ©’½á’F›:_ų5®I.°a$MåâÁÂ=§Ÿh9Šé;#¬®&ó–á30ÍYšœYkÆK¯ ?å^ÅÀðói>dEZ1\+/CSy\åãÊãî`°‹¯k’/pã¨Á¦\^»Ö˜m­@ÌÉŠel®1µªC˜t üd@ˆ^³ôŠ3š'†dz¦(—›NdzÛŸ¸£Æ ¢ G_ø¹sç¾öµ¯}îsŸûêW¿zΜ9OYž×m;_ÛŸöçÿ?è‰èöê&ÕŠI… ºn Å+Açµ—R dªS¢.¬æš€ŽÌ æ –Ej0NüÆ[®ÛcÏ=λøœ¬YzK×D®OÿÆigèDÝý"%ð‡Ü‘j"T L—çì!êžþü}ÞÐâÀ¬L¼F´{‘Š Ía]…b¬Èhæzh™3§ëפ+°’µy-Dƒ¶Ä|#t,®|Ó(%ùI×e\Ý‚ŒÖ ^V'ò¤¾Åü2ûL¦ Ì¦H¥~þ#…¸ æÌ2œF×ø–JÍË}³A‰Ÿær· °Y#ÅII¶©âDûр帟ðÊM£"òêO?O¯c‘;jJsRÁrÖžJ(s¤CëcDöy=f®1@EÄNšäš}Bý&å©Üo*ÌÅ‚1 S8\ªb• UjÁM]$4| Ó*ýº Ͱ!hµ¡,¬²(wø Á(X6—RZ$«%…è«°-ÇpGŠTŠÈùÌ_­õT7oÜÔC["2ª¬æ” €Iw5sÂØô·¢!<ŒÌR«‘ž…c m¿¬y¾H ‹0%¨+-ÅÂ>³¾ˆú´Coû÷¾÷½8`Ñ¢E¿þõ¯.\È5wvˆY¶?íÏÿo?‰xûrv¯îàö•üfNª¨ae›â:Eë-ÔG±ˆ ?7S+ÅTj‰oiŽ Qú jö­G~æ¹_÷=‡|éÔ“ßðÆ×ëŠÂky꙳×Þ{>ïyÏ=òýïý~!ûtlõð hÉ…½<öý»ìºË _¸ë±;¦on7´†38.¾êüÜÿÙÏ~ök^÷ªé}·:’K®¾ð%/}ñ³žý¬:n­~R£©‰‹51&Ø£ÀÜu|õ€/¢’˜W7ßDnPOqû¸oF=sß(¦“à¬ÐÜ’)>¨•’±]/M£6Õ| ªd^·Àá®DXïòÙð`ràáźn8†½Õ‹YÃ.Kw:_¨bͨÖ|¢‚+bÞÈ< ³Œ•h®3¦“š Þº%ÑTÓ2˜1.³ÊÀP;«ƒ½njöMæÇ¬oò·` ٴ˱ ¨IÅ?L€°‚§9Ó‘*’ªZ7–1î9Åné CcìJÕ­8 †ÜÒŸª'ÅtJ2*QôNÚÔZ⺙€L{9ñˆA¥'czÙpÔ«Õoønˆìcp•U&[($È5ì":IUœKK£à‚ù•ëÖ9Ôóª ø§gÎõ1)‰¯Ðëûf\æ¨w@¸¿rú—^ùêW$=òCË‘b¿uÅùH´ß»oñ '}Œ@† w›x¸pxAEä+ÓaŒŠè”æ*Éé¢9P3£†¶Â%¡ûc>)…!g>fJgÒídš5Óš¢\˜ß‡±¨jÓÎGyMqñ“¬¼?d–L‹]ø™]¯+¥gÓ³˜ÅÓÖiBÛ-KnišeQ3RSH åT¡/¹Þºoðo±ž|`Æ(FLªn½‚ÃéîKUrûŒ+Ve¼2£Pòï»_Bj>Å ,g6%2•ˆÞ1×­L¦ùŒ"UØ'ÏLãüdø¬`Ù–SCáÒ,å¢R•ÞJ&£ÛˆI—MõÀn7zGCCäÈ¡~Ž)ž4öj–;j0kË*..‰‡xSÄÞC>ÿÁ,­¬…(Œ:èr¡øH‡Å"pºx\ØInšw“;4êÔ™Až%¼ûêÅ;ô¶ï³Ï>?ûÙÏZ_úÓŸî»ï¾-&÷|€;8úè£Ï>ûìí«aO?ýtÊS˜GŽ:ê¨3Î8£Uàøã衇~õ«_]tÑE‡~x«éÞÞ^xêüc¸l›ò¶?rŽÂ¿ÉŒk‡[ñ"«6ë€âôÄpVØt˜ LKpNʦµ9 SÓÈÈÈõOø˜ÓÝã3ŸùÌ…w˜E!þ& û¸#ÐZÉŽ†uOžvÓ¾ûíc([l–k—ŠÃ )ákPtMÞ{Ÿ½nˆO`4¨&]½ç^{Äs²s"¦õLÁâ…štûÔµUßmȬ;ñ¸ÞÁ³,Á˜¯oÚŸ?ʯ‡ ¡ƒÙ«¼nkÊÀÁëÃÁÝ>z¡Ç½ÏÛ|ûZ¿>ëYÏúÝï~×úÊ5Ú—“Û°aƒ×ëÖ­;è ƒ¶Ï,<ðÀõë×{½víZ¾¶ üüç?÷~ÙªÿÐC½á†à”ëp{•ÛŸ?Ú·ïñ/WA± ÊoÚ‰ä”ìªãÒK‡A$…ï¾3•—ê“æ¢7¦±Ðâ^_ï*Ú*CJLö@%O€rGŽì¼cª¼¸*,Ÿ¿û»ëôÈkÖug\3 áÅŽ_ëÂ>îÓ–^<0f¾Ò¼.˜•®Ée"]@yÎþȯHU¢VŠf¾bäC›tû„#Þõ¶Ýwß 6|ÚY_‰ÓD÷ùOWÅI1Ï%L—L>% ¹pÛ™Λ¯Z’‚ sÓ•ÂÁˆûCÿŒ òÓJ7R166«jâ‹J(߈¶’˜BV°l‰ÔI%øà§”,wHm}0^î¿ÿþmZÜþüIðË'J–í™j`:ÄÄS&¾í0퀤:=\qå|åÕ5‰„¸q¼ðXŨk¨t$g”Wy† tÍŽ:ôüK¾1xÎÅW]€XyîEg›ö‹÷ê]ïyÇðÊEÐ#l–Ÿ9ùSh®qá韗38´LT‡É}â8Ü…núÎuýî×¼îÕøOBc7¥°| KXÔ÷¦·¼ñšo_yëÌï\}Óåèl5 AjÍè-\ 7uqäAm Þç¼oZ]ú™0‰JÆÆ¡!Î5eìU¯;\§~©[Â1ïžÍbaÌâ)J%”DÈ@DIß“€R^¯QV¥§‚,ÅKܵÀÜç+‘ÀæMºfZËÀ\Å[‡Õ™M:™°*ç‰ Òœp Ï_ØÇ¡G"%ÔŽ>´FøÀ¶›e„FØeøâö%Á^åæäÙVnË$ +¸>êiT^ÇèL¡‹Ø 0Zr¼4ë E+}=¡`Hì.A P3*½xcº5Іúd™a¦¿ÄÓzxm¢F0–’•ª¬ËÓõ}5Öˆd85l®ä ÔG´~Ú™_Aö+Ž‹¯y*.'cŽó&©`DcéSîž-²‘Ú<ºÿK.ÉÑ=ç×ä1/o^\08„‡õNma20]q/ªÌ±BŸWJñÜQBYW(vh¥®:t€éí*áOH¹½Ò'ylÙ†ú͹͜ë¤øe~ÚåZ¯c-¤=pèö™ !e‹T¹Waþ÷&,ä GVšOÑC€Ñ#"öµ°à¸©™(Êc¾BP{c%ƒ8Q€8B¸qÍq9—À¥ø`¨LNI Ѝ¸NFÍ}X5‹bÚ§«1†«Á´˜ÞîJ,,N“Úò Ñ …©aMi€MSe~Í0ɱˆÔ#Ö¼¸BO$”³ÒŒ‹B¬¦…u4ᥠ^¦0[@üÃQ04gÅv?ÿéœU!lL“b±ˆ*^r¡0z¨\ßQx‰!Vþ3À¬™J‡c˜Þž Ê8÷Ä}–5Q”yR´²›— ¦£Ë¹ÄØv&ŠúÅ "GÈ\˜«ÐtúÁªPUQ`ÄžfgQrh·0îUçlžHMkð#ÿÔC ­n,°î¬W@@ \2 s¥?nÂ2i”¥i¡·‹¸ Ï®„ÒÉx¡‡É `„ëì9çŸ)”i5àÐ9Q!ïäÔrÖ¹§ãGÊ °¸Ìª¼L&|…‘*k–ú7વcË$`ÃäÌìÑ[]š“B|ó2$Bm îþŒuÑ]‚,ëË0¥›Ì›wOŠ×’ÔéȬü ŽÏ_²Ì—òÀ$äêb'®½jâL&Í”ÑÙÒ•ÉDþD5ŠWDßþWâ…J Ï–´ÛƼò,3f¤ÓŽ2Ë'û´ã)ÛŸögûÌ2øÛeÚã}4×rE`yŠu4¢áGK$o{ðTgLâ}Ftæ7OçWhÄŽÚ5aêÈ à&Ðeü(û“Ælå:爻g Õ­¢29(ÐËýý:‘W}^fU8K 5Q>±ö+‡ŒR‡úÀPî%Ö³ ìÌf¥‰ F­¤Ñ±$›FÕÔ‰W§ÈHý‰Ò+Ñ$h…”Í}´B'µS ‹ªöOðá]¥ƒàÒ4³·€ôË2!÷ÌžQ"Ý%¼ÊÛgRèÞF2Ÿxzž”KKS Eܬ E:C\L&ÆÄXþÈ’lZ ^]‡ ãâÐpé¡¿b…+ž #J»¸†¦© ¼x¡Pœû&A3ósÄ :‘ôWbfIã\ÓÎ(Œˆu¡Úá5ŽVjÒùLTa9­W%s²†ú‚fNz%Þº'!¸‘i–»*…{ÕTVìÒ€Ð6fõ¾’`°ðo¥ëâæ4JbVä_¥âbZ¨‡¦y0`ñ¤¶?‡’»fêïFC”¬ß8“ÀM¤ydÿW.:N)Á‹ëTÀË’ûè}̆V 6/”§œøÐ6ÅWbû‰#ψÆÏ,·óöµ™eûÓþ<%³äõäÕ3O3¯6üˆ·[+ŒQãuãY`"&á`›4Rd’´âÒ‚c¾4Z#ŽÞДäm€fÓ¨‰Ÿ¢Ž»{6ñ›…kÌ ¹©3¸ 5IR1{¯+M$»æ†Z„û&‰nå/ŒÕ­’]¤£¥§’ÞÁ€…°ã)›z ûÉÒ0¯j"™æ¦ö0!L£;-f£ I àhŽ›q»­t¦O¢!¡>ieCÜ#×ħÒoÉÒD°ã)F_e)±æp ÈïžÍx9X¨•EˆáÐ(£N.tšÈLB7C.GÚ¨e°~2\ºõqó¡˜ÙCÍmZGL ÂM&õ”YT£‘…Ìká$pâáAÖ¨XØ6`¥ëŠ2]¼¸VåHÍfÂb6Ðó5µI·ÇÜRJÜ—s  J€•BaËÞâÂŒ§0Bå¶JW¹ òt6M ç^ÔõZ•2õˆ³H+TbŠGŒU]¨Š‚5ò¸(¬ôölþTNfÕßSF§Ÿehä'¹…ZVaN52- Tê¨i ª,Œ®Fª¬5#‚10±´¥±îÂ#°7³j«ë£Zº]Œ¿! äLÃxÙŒW´wÖyќ̞'L¡eæ©þ‚Ýóé+¤ËšR‰:mz¢M]4™UæJhx‰C jjò™Êë£Â€£U«¦~³$د`ôG1Ô ƒOÊòàr1o=ÐÀƒ=èªÍö6!QÅë† biÔTs?¸óEa‘Ù †BªäëßIïh‡Ô›p†wA¿qºÇv⇱hÞ:Uà¼E·Ùg”L˜GèØšê• çiL½%êoy0iK7¼‡ž˜îÑkóãJaŠ7·Í¬¢¼Ø˜ÝP§î©(˜Iœº˜FFg^n„fúÌx….¯ÔiêiCW55«7„†¹ ‰Ÿ<Ÿ 'äV.ã5¯Œ~­ñ"¶ríRaiË]Ä •ä_X=72¦ag® #akµ™eûÓþìf‰œc úš:ÔB@Pt™Ê0ÙQÑñ0„^›p¤RWBw„ù©|# (¼‡Ú)3Û‘7+àzo¸fîóžQ'.hì•R?%!ƒñ­'”¦á ºcÖ\hM¢ï˺öóßþÖWš…H°z1;ùZb%%ä+ÕBe¿W¹!!m8›è%ij\˜±Ä JZ+¡Úòפ1iÎji bõro$cÍ{ŒÂƒ¿R2j=T„…þƧ°°£µ+}©ñ—Š£Ï/ˆù¦>¦M€z„ _Gÿ¹©št¤ü‰"¼V ¨ª˜vjíhE±5iŠçv·ìg&‹_I…Æ3^ª2Õc5ÚËÂmØ‚ô»¯(†f£˜ Å”>ÀxLº¢ßšgCDL¥âêk‰4Eš[rZY[ÕÇXPÜN9s/›¦N‹¬ ^úÀH-iH2¬‘Q0]<»€:i]vŒTî{Á4²èxöR'/óÏ´O±VÜ,°jÓ‹Š^Ë(Ø ¥±Ÿ@I^(°ºn!¬›H/èƒå7K%mfÙþ´?;‡Yò‚C9yñ5ñF i‰Ðù#ÉŸ“(–ÅîLi¤ÁôbC"ë <½0 ï…AGB¤JÔˆ¨òä#”¯@ï …T¨Â Dµúg Êʃ’TFB¿ úÚ±5Xy0´–ñ«v;ñZµ¢%Kbå2äA5” îPpÈ–" 4]‹"ÃA86k¦ŽŽQc|œ3:¨0‡-*®­÷Ì9ûÜ3 wÍŠÑõƒÂ´E8 -J8#:ÞˆÔ…DÊWålÑb!ëN0¨0ã-ÑèLKR¦!ÓWK*7¢çQapiE`[sžègÔ[.“¡A•»ëŠ ‰4¿ áƒ†ýi£ÏÐMúÀ4qsÒ;TE¢1ˆ‰Ó(œ£ §–ó8_a'zRÙ©õÎî™ ÓTÒ Ç 1ÛTÙ;ƒ'g’ B=Õ.ò,#ê¯$h2Ô°Æeó°¢î›×£ÎPzÒF&NŒÍYâêч–’?ˆu ß ¼[E7Úòh¤Zn?ù‰òÓ3êª!ØeèžÐN X™ç‚ü–Üë¥"Î*…Y8ó˜š,3.ÍËæ¹…à|Ü)CãëÙGÏ^xŒiÉ©ŸzÄ¡úà8¥ AÏê²ð`rnQéj8lû¥ÔÕ1‡iÊ€É\[1¦A6®`r™³“šš&xMèIrp–q±Úmh-Ž»à!ÙBæ¿äWd÷ðÅÁ.^‡àùÌÕXÀI«§Lõ¦ç…2-ûX†í“ÕXP_i®Í,ÛŸögç0ËàŽ% imÌ„@†à Êl^Öa¾â¼™ÍY°‡”(sîè Wƒ„A, nJ–b±—ëf"2 »&(³Þ Ÿ§ébw™y j@Ôhpâþrý‡î‚ð'¦îFÚù¶PÊi5¤€Þ=IÌ‹\<2Wq–îÑ+é`ÜP7„¯ëXDµ(Á(+…·QÆXXà¥W_įJ{TKÇŠ7irIyÁÞt7¥W@Ž1‘Š=¯Á&ËÑ‰ÃØ8‹=T d(MÓáŠÃkð¬˜ìbµst€† n€DÅz(H•¬ÓÉWÅŒÁ¾e8¯Ç,`M˜ØàÂ4g•p“0†J9ÙÐ?‹28@#Ð0v”ÆL‹ZbÜ’y$%³§ù,óOñóâ µ0Â"I‚Ú%ïä°:†ÊšÂãtƒ;9ô<’ ¤äçªÚpº„¹ÙÓÌ&˜ƒúQð.êƒñèê¥K³h TØJþÌ„˜¿ZhÖ˜Ëï”á0ÃzºÚG$#L¾ÉΉ‚Ü2inetq0¸©A‘¥áîplb5é|R~V‡ÈbPÙ¼°yMàezWåc¥Rµs7ÊùÙ7H/$³U'Æws€–";. x¯&Î ÅêP§^%cTZç6†Üf–íOû³s˜¥ùys¡!1Û-ŒÓ(¦%ø—ê¢H0.üAõÙ2Ñ%ÄšŠÁ6’tâ¡åÐM,¼ùz¦pÓ„|V ¯w^ΞP{ é„dk‰Ñ›­á@=2W€ꔓ!= .ù–3!¬ †¾PßËÐtu˜töF+ð¹fELF(¨U˜=åaŠ&ãÕ*)†@³Ü>©'£Q3­)Õډ᩠ƒÄðwÿú¤(£&ÄØÊÔĤ*TI÷™1þ æqï,àúÒ_ó¦©R7à‚2Oâ‚’ϲs¢8m–F/¤'«âKO”•Y‚ÐC¯íªÜNWþtmUŽP^YÊ€wXŽ~=ååí¼ÐƒÓ ÖÍ×çH¿'Mqª\”ÌÛPd©B¾}˜_uJR×q! 1“ìB&öÌ–ã0Ä’Å!»ï6ŠÁ«t¬U,B¬îÍ<â(Ô3³è°|]Rƒµa„Ù`¨úf8Ö0 œçô9bQ[B5»Ÿ ¨÷»gG [â20.‡ùXôg¦«ð0ó{3 —*ž$©…Ó¤aƒÊ•æÅ—×#ÚÐ&ZjÀ\­l £`Û˜~ªWà…2Ö–ªÔÀ³Áœ.¤[êl3Ëö§ýÙ9ÌÒTHA(‘‚Wƒš‡˜¿ä·2Q-d2 âŽbzW>“Ì]3©Š8õ ¶IIè®>“| ­ BÙ"ÖéYd¡(iò[hlÕøN2n®†ÿ‰o•‡B™Ù*håxÙUé®âÿR~IÒš‘BaÕÑÔø®5©©KĪÈÔú”“ › SÉØ`vS=ÓC§&8\0}‰³,t4y’¨ëØ5õòuÕ‚ux°»#9yŒ(­—ñèF¤A±¢_;•BºÊ‡ˆ‹`ßñÕq¦‚úf´`-¸Og þœ<ÔÇøè…°ñ¼¾îÁåÌÔmœF_y—”§kb!t .‘7Joh7T“¬ƒU²§ƒÑ†-WÌê/„[ªâÏxs¿°ŽQ)o5U–ç&IÍË-”«¹ÆTþ³ â¬ÖéŒ !3<«‹™.Çñ j& ˆºŽ*ê? ª0 J3o 2âR  TÀŒ‡2lÔ„$<ÂzÁ/á¾l{ºJëÂ9éÆÌR¶ü¹¢á/ü‘˜´æõ˼1«Òš–y£M+(»ÜÌ0µpLÿå…»CUU‰´Ì´Ù·™eûÓþìf 11ëT ø…“£|bçŠ u­Uæ™û#UT.'ÃÛ£k*ðOj7—´0fzcB[ãQYxžP„QöN5õ•êç©ã%4N’¡ÕT¾Â·Qê$³„±(FwÀ0讥‚Á›hÐ`Gÿrœ/!"ãPaª1¡s ¡ [æâ&§žD)DOáC7i®qÂ&í*H ¢%-5TYG64êUJÉZ¹$¸ÔÜúE} Š '*DÈñ¶Ê,MïÅœąBR™¾eÇ#̶øj ôÌR&p “;…GÓ0 5kH¦«“übà”F+3%,J±8¹eJ]LÏiK‹5•Àeãí²v©ç ¥g.Ìè©!YT}õŸŒ®Å×M•ųw/°\.Ì%"\Žæ^z›GD˜êÚ¥œ ’QW)¨“Jo–C›·˜GÚ1äHcd¦,#.Œud±bkŸ×ƒ}Ú`ÜøsUøo¼„JG" ‘ë¢äªùµŠèçú<³ÏU&û¬¶~bS ’g¾Ê+ÝfçWÞfC;±ùÚ 2;›=ºVE”¯ü¯4á ¥Z(++dâÙVö?íÏÎb–¼ï†ÿµŽ¶ÐOÞÙnß÷•CRg^ò dvM† îiº4r ÝùÁÇL„P ÊðVó8 ™z*QQC{¢dÎÈåg/Ú5TFe&ÍÓÍ“ÆN(Dš²BÃIÿÜoC O=ÅÛTá Á¥†± à>†ª3ÚhVŠf‘<éMÓ,Dʈ¾Í…ù,éD‹´‚x„’Yø:Ш b°¨¾JËU.¯ÓéOÁ­Ù%zÙÐ:Ë̓h…(‚S²î –NÒUºÁžA(ç)º¡Ž8yB– ²*ÄO:_I°eÿŒH¾«,ú†gÎÂýp‡zD¶ë~SïÚ…™o*üéktÿÑRÈ¢D¾âƒauÂíêk¦‡TÜ‹6 /¥`ª><˜>³§Ñhl±µ(l†`ܰ Û×t‰ Ê{Æ2ȘbŒÂ¥ï¯¬5†êfÝë°2–Ƨ2Æð¾ð‚eëkõ4’?·?íOûóô˜e².8oŸN‹¼ËPü]LÒ!Ԝَ’ð–µrgU‰ÇóP™`š¬âÕ”f&ÌŠèØf˜Ò9^?"ˆ PÕšoÁ€9>¨¶€¾Vp”Ö ÄäºÀ2#ôI„Æ=ñª§'Ü¡† .=×è‚ ¬œ’ }0„Z¨LáæeУ(B»‚ê÷ðJY©Qhò·¶¢H¹à«!äª.!jQ¾QÀ1b 0-H™ŠÚ"…BÖm20QÀò©M†GœþS ŠÅt:5é&ÍQ”4hò+‡è'1¦ˆÈ†šLd8:˦1  Å}ã>vPÅGëºäŒs!8/¢2~ T^Ǭ“ ^Ì¿>ßàBÒ¡”óŠ ¯N¾Y´T³ç˜ùànñLf•E·á§p‘Bþ_q–÷ÌCG\ ‘L²Í P’.1!̳*¢¯r¿¡:™.®U›¯¢lêá ¯ «ÒÄú¸i|>Óœñe!þßk^kÇØÒ´ ¯eÎiÅð*sR @;eÁ?±ÖZ‹5¦&D¯ØTügàAÐ1É )Øv:<Ø%\« º=µÉ\µÓÓUqØwˆYŽsÑÛTòýi/ÄŸ"³äíƒÜAÆU/ Éb2î/ÐÄÔŠÌ­›—öÑßüXZÌ»ÍjR#/!%Y㢌h?A1Å*šÿ÷S}ö)1w¤×°7NÓFš®Z> ÍõÌ[ Âзæ ‚…@Ñð&NuÖ.D¢Ñ"qóz¾uÙùð°ÄŒÌm1~ÚÕ}—Ê»ÊÅTçÉfeT‡ ãO´™is`‰¨Ó Oe’?—È+š+õ}‚iiE¬S|š?Tij‡p˘[ ^”zňô6S&ÓáfiTíò•G̵i&Q鬙#å=šBǹ:'k¾¶oŠD¢=ô•™¦aáüÄŒ1ç-Dº ë-êÅ&(zú cà¬#ö}¦<üÏ´”îhÀ«4Ñ žÕÑ”yà× ÁÅÚ7¯Æ,! Ò[Ö—¯4Í…*Öˆã‹ñ²†väPŽ»llZ§Q”ùFà˜´Ò &ÐÌkœŒ¤Z­ïBð¨i0ë–.¬nöÃdõ¹p ‘nÉ©²4ÇOÐEØ`àL…¶ ƒôÐÖÑIP*ÔL Û9­žÅ@˜Éb–ã\ô6•Ü Tø´ìç?hùßïç?·õ§!YŽåÁÝ¢ S}Åj€x@ âbS_(ƒ„4{–ç}†.‹¯Ý¨0pjףʰÖJš!Î ¯·@ÿñTŸÌÖ#Ð3yq̧g¾sÍ«_÷ªç<çÙrÐWOÿ²6B@ù•‘ÐUX»^ ÔY-A¡à¨j@…p g*kiTö¸û–Ã{CÎTGû¦ª¼Vv$žïM•²°Ú¦X1|žædu̘£VäWv<¹„ qÃé£à+7!‘ú­Dºi´¬­ ྠ±°I¸‹½¢KŠ8&4."Á… ›‘GÄ{+ˤ…¡Û’Ýq.„Ap2†[:ôE‡\}Óåb¹õÎízán»Þ1· ȸ.ºò‚ýØÎÁp‚©;ØÅð¡òðù:ü†#K0l+޳NDy¾FЯ¼"XØŒà üÁQLr℆iõâ`gÔòE¯Ú ‰Ã“74ã—ŒÉ1ø‡®²IŠã¢xR>Žš¥òr·’¶†=È0³íùÀL™f—‹ó6aÊ3o¡“Æ`™JLk4ûDC€`ô4D ¼AtžÞÒ Ol”µ t'¬×,A’œW…Üç4À#ÔÀ›‡§v”YŽgÑ·ùl£ÑxÃÞðÜç>÷¯xÅ´iÓþäøS‹.?Ž@ÿ§Ðë§·¯}ík¿ÿý1—®ßüæ7{î¹ç¿üË¿ø•û¯{ÝëÚÌòÊ,y[ÉÍM$©q#0‚)ˆ“˜zÛ¾ÊhÁñY_È7œ†Ú•Ò4y 71„€7œÿó©>”Ñ•4ºÇUCjŸ®œpéž{íqå ŽC@|÷{ß)îL”®›FimêJèu£ø|ú¸c° 7Eà¤ÃfeTÔlÊù:VPÿc“)š’Ît—c#Šî±h(íŠ=„)®”f”Ô×"¿’y=øcô·ä0ùZTÙÃ%˜dá15e&Ò³¤™Œ(l;'2ÿVÑí·dôÏ, …ª1ñú† E„" 4—Fƒ`>k , %ÃD=N+ã\ˆàñâõzëSdýÁ£Ž<ú½Ì›æÌs¿Î@.½æ[pêÏ‘ïþÈñŽ•»££YbºöÔžëÀ¤W“¦ŽAœõ’]%ïf%GLޕըÌã‰E)þSÒÄ/ª‚uœf§º¨À ˜‡1Y¶Ü¦FÊ ŠUæÈÅŸ§Š©ŠàšÖaόєsüļ1Øøø– AlÅwCÇfuû¬^Ħˆy Üšb},¬H¡uwR×Q\|vY!8%4+¡7\“ó¼mO%ZÁþÄãù5šíÙÓØ™ðZžÚQf9žEâƒßûÞ÷8àø%4úøÌg>ó§+Õý1è§·—_~ùW¿úÕÖŠ0ïüÊW¾rÅW´™åZ²Ô`eà@Á1¦KTxA!g{úùR{Ú_ ›æ2˜˜’±ôæ "j‡vè e1"ûzýOõ¡ mAMô¡ Œç=sÞõžwœÉ9¨Ì¦„ÀÙš5gú_ýžìò‚g?ûÙozËa&æE®½iêu/zÉ¡Ü<ðàN>ås†_sÓ9þC»ï±;ä£92ðu¯Ôõ¿»’‚ÑíknºüÅ/}ѳŸý¬}÷ß÷¬óO§­òž<þ“Çí±çÏ{ÞsßòöÃõ<‚¡²Ø”Ùoÿýžõ¬g½ôå/‘A2›—_wñÁ‡Dëû°ßß|í‹:IQêÙ±Õ‡™$Á!óGyÑÁwÝMCêß{Ÿ½¯špÙÂï7ŽÿäGwÝu—ç>ï¹ïûà‘z~W¥Ãðή²ü™ö™ 7W6LÎ|j&r)ϬÉű~ÎÇÜŽs!Œ©UÊNïº×Þ{­öÑû¾|êà)_ÿbÿ7~o=wÿÎô 1œ3¾ys¯/yé‹…p6£k–÷ñ³Rüw±kqU-…0å#qA8Ú<îãÇî¶ûn¬kúýûî6×X2ŒÌ¥•Üú·ÆB|ë„g<ãLtZϦºüŒ>ö‰¼àÏße×]Nú̉‹—Åw&©::¾~ÎW÷?pÿg>ë™É;=Ð _g>÷ÜkÏ3Ïû¿2K4tóm^ög/¥Ïûî·Ï¹Ÿ­G.«é†7VU4|ø½a0´ÎpX‰Å¢¢0£ÿŸv%0ñÝS ¢V¶«RT&pvn7Ç !ô„隟Ucsb”@:*§‚|b¯>ÓúŽ2Ëñ,úüð‡?|ûí·?ñþ¦M›Ž=öØ]wÝõyÏ{ÞÑGý³ŸýÌûwÝu×k^óšç<ç9/zÑ‹&OžìÍßýîwçœsξûîûüç?ÿŸøÄ?ýÓ?=±Âzµ›4i%)Øa‡­\¹r;•H—·~ûZ÷W¬Xñ²—½ìßþíß¼ÃÅK_úRjO‡Ÿ6~ ±yóæý÷ßÿ·¿ý-××\s ¯‰e¸³ß~ûýèG?ÚΜüú׿þ¾°[}N>ùd¾>Ž]=å`_þò—¯]»–‹ÿøÇ¼}?ü0×Üáþöë§“‡rÒbœ´^ð‚0«®ºªÕú6—ìÎfYÖ@ÞGH4/ pÓZ‹*?R#)º1ùí«82ëhÃK+t™)¢TBjΤöxþâ4¢Òýû?)5ìÿõTÊÀŒ‹€Êè‡(%4Å4 °úz苙𫻠Üä„¿:Žâ‘|÷=vûò©'÷7gÝÒùí#Þõ¶ÄºÍí†XÃêàI Gæ~øcÇœô™Ô ‚eœ<býÍ‹Îj,øÎ´oCÓõýħ>þ†7þyÏ`×ࢾ÷õî}â8ÈXì·ñ–&_3óÎiŸûÒ§_õÚW èC%W\1Þx˵oxãëUÄQ:Kvk.ÒøãÁ %j؇W¾ê5¯øúÙ§š‘ãòë/~ù+^†qÖù_ó[ß8° ùNpÜ ÖSzšÈŠMÁ!2‡3_á…h (è¸Ð;”UˆЦ8 *7·ŒÇãYýQõŽÑöÏ{Ýäé7qLA¸ÿðG9渠0¸nâ•oxÓëi…éb8qä»zçv¯Øôý/Ÿvòk^÷*£€>þɾã/Þιdò´o¿ýoýôɇ`Ú)/.Ò™ç~ûó–â=û¨üå'>ýq7zlfãøOwÎgp}ê™§@).¸ìe¾ø•Ï}ìÄÀKŽý؇Þùž#&O¿ù;Óo~ë‡sìû{+öŸúßò¶7Ÿ{Ñ9ˆŒHÕGó>ZékÌ\4Ú`cð+Ï2'œ„.¾ê|8tïà öÉšòð£±by“•Ű]QtŠÓ~)Ê¿øæüÊ}Œ½‘ÏiºSefűÄŸ¨”ºO‹ËÂqÞ'%`Â\ý¹>ê}öjBS–Íó´´£Ìr<‹þÄ÷ÙgŸ#Üú[´hÑ?ÿó?ÿã?þãé§Ÿ~ÒI'µÊ÷ööB!¬ÐPo^|ñÅGyäC=ô‹_üŠyÊ)§l³¡ñ?ÈÚüñÜÿÕ¯~uÑE~øáÛ©dûjXøÊÂ… ½³`Á‚7½éMãìðÓ¦ÂOo!Þþö·Ï;—‹ãŽ;îK_úÒÇ?þq®çÌ™sÄGlNX|à,âOúÓ£Ž:êŒ3ÎxÜl<å`jaÃ\Ü|óÍœdi'N<õÔS·_?¬÷±ÇóëYgõÁ~ðÑG¥§«VëÛ\²?6f©?¼Ù/xÇ¡-G£ ±9÷ã»ÿŽŽ<Åq< Ã{Þp(µk3EV¥HÆà—›Ñ‚ÿý©>”Ñ[Rˆ“xFÜ3ç™Ï|æí=· ã5îB"ýÆùB%^©‚çÂS9}£Uãâ}ï?òª‚¶ìÓ¡Ý{Ÿ½¨„±ñ×=0 úÈM´—-`t*Ü{ß½!ñ“n»æ*H„lï½÷ºîæ+aHA)ºùêÝv{!„ Ìbw L㈕¼¥s"§§ø wNÜgß}¼nmêÙç‘tTe›„XËï¸ñÕÈÏ;éÓ'¾êÕ¯ òxÏÔÃßú¦Ïù3ÌðíÙ5ÑP\Oûo…DaD ° `ýMwu¼dºh mŽBeöS â)úCIÆ5Î…`ÈÔ&®› JŸûògŽ|ÿ{Å^{ïyÛ¬ïpаw¼ûígž÷u(•Õô¾˜ßû¬g=S .›p6ê]ÊZì-å<@×ìÛÅ`a|½^Yw8% ¾¾ñÍoøÌÉŸâšûïü‹#.¹æ[<²Ï¾{÷5º©“{êõ{ÔNˆÕ½£ö,ö1+E» ¿7—£ìjúSt/bÝÑœ|Êg9Z$”ÞFQŸ¬^\©]–j’΀!$÷d§Y9µ50-"éªÃt%¼¤`îÍ„ÊZPÀ^4äÚ”­©™21Ü5³rbǶ«TäÒí² ÏO¯ ›ÙQf9žEâƒll$íWuF.ñúÐC½á† |[@h¸ï¾û¼†V"[<±’zµûùÏÞj­Àv*Ù>³¼é¦› éÞ9ñÄáãìðÓ¦ÂOo!èÝãâÀ|ðÁ顆imN(¿~ýz¯ùú¸ÙxÊÁ"üÙ4Lñì³Ï>æ˜c¸>á„PÎo¿þGy¤UÉA´aï׭[×j}›KöÇÆ,M,¡/;üÎ }¼Âa‘-ï0Ðw;8…G•á]…<b¨º–*¸#Ÿë-ô2n #zs˜Ñ—ÿçS}(ƒlJàåé\0?W¡å,kSG7¥Î@¾±b"{=ÿÏWµ‚~Àd#ßžzâfÎýÜ{§± ÏÜò¡˜… ‚&2F½1¯¾ñ2„×BÜ/»ö[œë/ºü‚'>uCHâ:áƒwÏfÈ\Íof»îb•ì³ÏÞg÷u,êa“½ ㎎¥Ö 3Hm$ÎrÚD?9@&ÈÎC‘Ø{W7½‚H=®]æÙœš0•¾b,™©ŸèÃÍËôBÒgÞMCP4g! R„è³èæéºó6ºwËŒ‰öÊ—ÓÊŸ½âeœèùÝÅ-˜úÙ(à@vD?JæáAFÇ(Ä­hËJQtZØ-ô|Ë`ŸÑ,Â7ܽ•»yÏœhb{oE/½tå¢Ýváüá9pëŠÊåIv£ÎAËÖÞCm㳩漀 Œbë^Ḛ́?{ætñkÐéš³nºå:–l×î Ó=åë_ÒäiŠrv] ™3Àî•$]mŒ†TÅÊðkrŽÎ˜¤Pkìopq+¯ˆ+žl„} <Ö=­ìÄ]È|é°ðäH!3AßmüñBò8«ÉQ€!­l¹e–ãYô'>¸÷Þ{# lÓ–ùÎw¾s—]vi½}ÞýЇ>„¸€þíÎ;ÇòˆA¸ŸU–`ëÂ[vèÁ'sÕÙf%Ûg–÷w·ûî»ÿíßþ-œf=öøû¿ÿûqvøiSá§·ˆhè9—/_þ–·¼…¯HÀ«W¯æNKt{²9Ùú¸ƒÚ¶ÅD[žr°è^ò’—À€q,b~öÚk/®_üâ«q}Êú·Ùí/Ù³Dßc¼d ñdDlæP /6tå¯1T@°#©y‡¹óºe³DDÐyR狜©+àÿz ü·§úh§Ó È“ÒbÄßüšyšè1]ò¼pÞÈ`!Ë 0û0|h¢I7‘}‘a™¨1éC?h&ÍïCËãkNR|”vw¤ð}ôDådpñÕ < NãD¯˜LÎH„CýÑI>¸\¶g.ˆÄï“¢¥£î®×†À¤—\}!ò+*⌔B Q°é3ü€¯æZA>;í¬¯\pù7ßÿ¡÷)¬ Y.þAÜ^è^p½«Ã¦n–Ë•þÆpáh—ÃÑ)‚Û1ù\Ð%$IÒï©e< »9 *F5:Þ.¾o{ÓÃG>þaf(‡Žr˜›A$|‹ÅºÆ×`Ñ-ìÛkŸ½`±ÂæÝ6ëx’8s ZZ9¶· —ÓIwAŠ3W=äcn/£0ßvÄ[¹ßxøa,}øëÏŸDëlbê¤ÂÛ{§-¯9«w° R#õ3ê± ek—*€ö—¹÷¢+ÏwQ˜7§‹ò7L¾ “Æ*ê6U ²4ŒÇ€Ÿ œíŒ*¾r©²…„ (Ïh\Yš€-,>CúN2ºQGÏ5x’3.j .ÖÓd‚C\®ÔÈ51&° TÖCËéUœcûo§Ž/¼;Ê,dzèã·Y|ðÁ3g΄tbçCûD Ä‘–ŒDË7N:5žŸÒ¯uëJžÒ! á†áò“Ÿ|ÞQ*üô‚Ïûßÿþ÷¾÷½Èv\£í|ßûÞ‡¨÷”s‚¨·µH‡„÷¸ã,ŠS hk¹F׊Kgý­ ³MÉr›KöÇÆ,¡W hBÒ Ž6"rKRÔe¢«„"ÀÑê—¯Ç _EiZÁبݬ¼šj„Ä,›ÍõWø¯Oõ1‡_¢éÇ^Æ=õæ[o€„ÁÀâï:s2¶IÁÁÑL^?ùê{7|:‹ÏŽìŠûï}ß_ðÈ÷ï_‚9m÷Ýw3ßÓ_î“ïþËw6ÊÈ7¸¸ ^Ю šU0XþàÊœ~¸a?O*kí‹_ýüÛÞñ‚%¾»ðT…G½ÿ½P4îÓœ¨oº2´±¦õo¹Ž!\xùy@ÂÇ—#Oâ2¹Co9y„ûN½¡Œv1£f|ÉË^ŒÄvöy§Ã•9”œqîioçÛ¾qÁ™Øk¬©Ö}T…Áÿ+èÁ".$oSºÍ¦VØÖ9 VÞ¡~Vͼfòq.4ÚU5¥•˜Æ+n¸$^<ç~ pý¤°C¬}B3÷œµKé*h¾šÍês_úkæ¶{vàìávØ,uÑ•›'ås¯{ýkošr}ä¹»ºŽ=þCÔ@Wa*Æ_2„¯|ýK/Üí…_üêçØµøm!b~ý§²I¨êä¯|–ÓÆßAò놧~â¯?nÊIêÇI‡CI Ô7ŒœpÒÇÞüÖ7M™1Þ£­0žFNcï}GÏœNxÞ7/<“&àúèüé?ÊíäÆÍ¿ÿv1]MÍòñ”ÈS*ù¬Ú<çjb’UaÇ#¦A ̧¸H¬çV™ÝCdduŒ¡ ¼X½p™OÞDQþiŽ]‡5dG“?sÑŸøàðð0Þ°ÍfóqÞ°HœýýýÈxú £kÑ>®ï¿ÿ~ ¶t³—]vÔZ‰HƯ¥öÜú³C>cØf%­_uTyÜ}Ô‰¯­6ËñwøiSá§·|:;m¥òkeÔT3f<%³„­"º¡À¬È Î<óÌÇÏ`'L˜€Xyå•Wr}õÕW#‹ßxãã¬ß<^›¥Å¶¿dlÌ2I÷6šƒƒ2¯y9cÞ9–a ¡Ç˜9^TÁk¢è«ìT•Øo¾é jqeÑUl¤(Ш9¼þý©>”Ñj`¸h×D\fð8}ösž›+Ò¤I˜a0ˆ_H÷8¯Bm™}ã+Nü«c8D©ûí»6­w e°JRþÅ/yÑWNÿú¦P]ÓóåÂËÏ=äЃ)@+p(WqôNùìÿ ê…W¼êåxÀꬫŒµåÐÅWåÈÄ]vÝE| .²o› ¿WpÓè×ÎþŠzc¤¨á-ò(Œ§«ÿ6,gøv"é3„ÀÑ­\|Ò§O€ÙSL”v‹Hêìr¹W]«¸h,ñ0žQ¨DOX…Y¢˜7Hí8B˜õ„*uK®j¢®„ƒÂE8Ž ƒý>ö¹‘¹œHП«ØY“¯†¢Þsï‚|øèç?ÿyŒýÝù.„K#@\²döøÁ<\xöÝo_B¯|õŸ}ûÖ8EÞÝf [óFB¦tMä¤Â#a*KI÷–®Xø¡ã>ˆ/Zâžø&<MËæEv\½XÀád›éžô¾ü%^ÍHü§žu ¿ê§ƒ¯5+Î<ï·ÿ¾§ù•FÅrôU¶Ö×Ó%[xôâ­‹bAaÃvY8 ˜Á›ÂéÒ s{™NŽ•E:7ºÆ¼%¼lç^xv"X ‰ÞÚ¤ªÆèLòLì0¬Ê‡¶vG™åx}›ÏâWòú׿¿*¼[Ræw¿û]üHãöü’—`6kÑ>ÄÍW¾ò•܇÷Àb½ù¯ÿú¯?è¨IÈ&Ole‡|2ưÍJZ¿^z饸ï>QФ¤+ôŠ-·ØñtøiSá§½¿üå/áRüçúþá^øÂní¹úds²µ·*Oô†Ï`±JRþ‡?üa8ÇŠ\·Äħ¬¿UŒ“/)î»[{ÃnsÉþؘ%ªÈZ‚F–Î1¶[ô1sü…’C!úCŽ%Ñ-@êà”ú½»d3M‹ Q_”˜¹‚åôìAäúëÿ§úPFp3›‰2­T²¦[¢BÄ23FQAšwž¾Ûóô _aõ&c%¡˜ê!uóQ¥¬ëŠ¨î‚—jZ3PAPSÆ (]AÏHé÷aŒ3s839ú4™S¼Y§Ð;Ê›Ò.‚¸ÃX˜(½E¹°O|æ ¡0,á&Øf•þÚ‚þ1¨#@ê=ADœJ:R€«ò?(Sz‰¾fVõáãY&S¯fþÄV¥8“8éÆ /¾Üp ýlá̉Å#ŠDD¨¦õ|1y¿RŒ &:UéÌÂè*fMAÞŠ&vUBeáRMæÐ¨†/‹HÀEƘÈÅ:Ì ‚¨n|L²a|ï³i.Œ'(¢z-šàñàw/ ±+AXZº¨3ê6?4¤? q±ÐCáÑÍÇ É3:^Pº€hW.Fù®Â zt;ù»f¢‘351z3¼a)–2êÆ1•¨»‚e×Ò=fLD:¥@Úm™ßêTÐ1Åœ?xÒ, „ÔêªC7z œ]4Þ :¹`ß"Ö AÇõÀh5ÓÄZÿU±'̬+"ÆÐ8‚Î¥¯œ‰¨ êo.ëÔùàòÜʯO¶"™‡Ê¨ ãôÀ$˜à ž!x×bý(1{Â|ŽòLˆ2“Ï0aðQý%r™ƒ“’t•bÂÝé,Ãì Ä.“Hàjº ÁÄ ja”d¶PÞP-ür¤P"ÿàr‘úa–r¸áJí‰^”åcBØBž{X/6mypä¾Xð°‚KχÅd`;¡„€1ÓUæJH¬¾:‘˜#Œ)b•¹_°Vw4ùóï’ôÉÖºMdŸòó†m¯È”YúF#ƒA£ô{—SŠhÆá¸CE%oµ°šj„#1äºcF@=݃n³9TÃŒNÐDÅB?CqÌ„ŒÈh>,ø 6øV_åúHFÌd´˜®2J_tVwÏ6ù­©Ì©©5.F×ÂíÚÃÝa‚åM”çêÅÔOWi‚«–.Å{¶L°Œ”v5¸ }\˜¥æÌºÁdÊ‘Ü×G—Ô R~‹ä´€æ*Bt:ì*¹VV/ÖÛ¶T…‹ÌDÆxÑ1¡4•MÅ!fd<Ú> W¨„h9%0Õ` Â)Í­Mµk*—5ôÝlÆ #àRvÂÔ‰4´¦Ð½ƒ;<ˆ _MV¬]ºt¤ÉaÂXú (ŠL?í@>šRr7†?QUpóo¾ZVý_ÌVÖ(?抚M6›î`Û†ÅB@ú7fs¼¦ZcAõLÓm5x³0Fž?äLö¼»œTG*A-Ò+þ(ÆmV "Fôð¡æ,QèôAÕ,¯¹ÑãÇ‘«²wì‰û~eÛ8ŒÎÐIÏloºGÏfO9µÅ€A»ÒÒˆ4Ël3ùAWmPÌæ¨JvQmƒQÜœ•Tq3&ÕIh3C'MþÜ(3sT˜¼%¥>Iâë¾ÛvˆY¶?íOûó´™e:+aƒ9ŸÕ¾{6DS0 ád [D²%P€¯Æ,š)Ó,öj_),g¢{c‰É„MÔÇý Ð/Ø3“ lMIñ¨b\ËçTüBʹ_A/ð ¥´îJ™œB êÁL/ŒÈ€ Žt’ cò €Ç03hd)š£c—]s1ŒÓce´®E‚)yË@sÃx̸ɯ²y]‡èŒÉ˘1Ãû XN Xto%Ì!¢âêG³Õ$‡s¥bf8´Žªœ¶ÌÓ)‚<’>ðLJƒƒ ­NI—!$¥èÒ9xášèFWU\°pÈ£zo›îc,{ÉÈ\ÇÈnzAM†Ç ¸¹¡PŽlÒ<3ÊmügbyœæPð³â)ŸLLƆ¤Ï¬ŽÇ¦‘(s€(kq8ñÈÜRB4á‘ð³(+|ýˆ¸nØšõ71«† YHl”‡hŠ£¤H3oY[©áB‰S.,¬²H–Ð;ê~“¥BH-_¤jY¡õPLSEŠÞ¢%Uåd˜‰Ó(èù›–FQÛc§?D(cÐÃï‰õw€ÉË1{ž€Å»f¢ctÚvÑ‘ÇØ¾$¯X7¬–€¨4 {0%3ÃrVZL=Fþ©3‡ËÊ¡™CÓ[ ö ¡7}о<*À©Š_ j%]¡–ÕsÃÏ~ý#4‡\SÂ3*7§Ô-™ÛÜŸIªøE &Ç$°_ùŸï75)•°:TˆAènÐ_õèÁ÷nÍï Ž#HØsµ¢XYÀƒ€“œ]LZ®’ù¨µhšÛ’¡ª±¶ì”ÔÆEFdÒÜI¼CŒ<¦dŽbë†Ùxz³…ŒA2ñ‹ÊpºÍn¡BƒLT±ô–•¹oyå /.{/GŠ1E¼PQD¯f¢ÌÀ…>·*Ú̲ýiv³„A !È¥4ÊËÈ ˜—:òe%Ìè€$ñ~ŠJjÚ©D¾¯2xNSYÜ/‡úõG€ÖÀK`³å:˜Ä“fޤ-|”Œ“ `åEË ,æj†zÂK :T¥nj¤Ð‚0TYŸ¸V¾EúBÚ` †…£¯°Fõ}à?½7¡1õ@é PPi2GCæ·¢!šÐ¸h¨xK´RË}}S¡k†Zš¢2Ø.ÓÍÊ ™«nÀõ!»å …Á W/ꌞ0Å=¥-41SD·áÁà†Ó…Jj!ƒ ¥ãò¨ê4™s¬¿å!µò…1„–ƒ—;”g¬¥GCTM1Í}³p˜“™ÞÂÑŠã]IÍž˜£gsb΃µÄ+J3ÜGÆìÓ¢Éó ƒó ª èF1R×ÙUÀ#TÚ Є,yMá’³:0ûlª¡~ý³èó ÿVWÉ>dkhÉ€§,í Õ_؇” ‚ sd¥Z±ÿô<Èò=SiTI—zFñTa&g3Z3 À®ÒËm#›‡ÿað«†èƒåY¶Ay-`•Õ© ÌìÑ%#”ÍŽI…xW™Þ„†x æ¤Y®³”d®¸cdމÁM]ĉE½ã%4ç]_Õo&ÚÕ™ÁtGã,ÛŸö§ýyÚÌ2°éƒ]ýe(„:ñ=ilÉ <ˆ/*jØ^E†A†Ì ̳:@•xá¡,Fæñ{„§ ¤„[·Þ1¿ªrŒOÇ#‘ åsÐ/c ´†Bu'2BY Ó`dT¢lÚ&*‡y›,PßT“ ïfHQ’Œ•ÔCýPCF ÓG1&Ïæ,}FP`¢ÝR ©ûâHÁ’)4#k‹O—™3Ÿ¿¢ÜÔsÝðôÁ ÄsgÆdÑ Dò„€šW‹G”ÅuV½I+æJóîÙzù–æ+(úI IÊ é‡Bg4€ÁTÚcçá L‚Ê@QAMu ð»Ù4*äqJ“$+2æv»d@çæ™!G]6Oû¢éÇü˜†ÿ6{š‚/[[Xä\$òµ$0 piÄ¿rMáoØ?f’ Ë\Ôgmì+D³ØêÅÔÌx¾é¬ dôØ!F’¡GúgÅ-ÔãÊB7Æõö©#a¢´%sÇEW&f>é 5Ós˜_OåFQ±•’0oåEögŠñ• ™jOEeêžÐ,Gq6˜IbãäU€>lH¾ÚMï¼YÜanp§ &ŠC†aΚl¦‚)âÐtßmfÙþ´?;‡YªIÍàÞMók%aÕP‡ÂÉ7 §&v—âDzÞBÔfÞ…¥vQeu뀞&!ê°IC> þ eæÜîf‘f´|Ьd`nÌÒŠ .¾Ð‘M´é%K‚è¤'9•– ˜ƒ(/‰2;Aƒ´ó]qÝ%Ì¡kÝ[,O Qÿí"© ÝÎ}#UT~R¡þ¨š‹Ðð°CÝ^ »Ü§chu­TùfrDŠið3sJ<ÃE‚Q[L®©Ð–0ÖŠ]4cƒ+d\å%d>n& ’{õb(ìǰ !“è3çÿ÷*ö‘G(ÃôÒ%Ú¢ŒB},“Æ$Эdž•nx0Q³ë†ùÏ<€ 9yÈ#µUÇo¨œw€Q <Žg&<¦Q{ˆá$àò—ñC60‘ `J ][ûkÛx¨â?S!pÖ®´ëqÖ­øŠÊw6¯HQæÛâh‚F]WdãUTÒ2É ’ðû—«œ7 ˆ4Â!:k\²N0 ÎJ ¿àÎd‰éIäÈy=ìmN<¢'³%85Ò1ÄÂ_ÄšN¾—Á.:åjó2Á|ÌÃEÇxJ4%½š™%U²Ú­Ù”äZ=9/Lô’«.„óxoÙ,oÌØ}·q³Í,ÛŸögç0K^^Þèá²ËHµÔ8ÆXVî“JR.!ïq,à²wô1,¬¬>fÇÍQ½\* ÐT‡VMp™`²o ù0‰ÁòÊ. él8âºaƒ@ZÉ©QQÚ¡”›"‹0ÖtškxŒHo&¥‚ÀQ¸/6¼qâôV ƒ!v „b:÷"43:c#R7ÆS“F¸f*ðÖóÍ`‘98+(¾(eB1Ñ—»¬"¿2­ÌŒDÏÃe@½ß£Š2(&܈>bn·™¡4,Ò˜%,¸8ݜ̪c 0a×dqõX# ¼ÔCýºÈö–ÄŸLk,F³¢qôž5¦ž;÷$½ZMXŽ Z"é°ìS *wdŸqìÚ¼Lç)àîPErÑqZ0}óRQ¡q¦¬醿¢T$$Õv鮩ŸÚ„5ç‚zÔ…Ò;œNVh£©Bräª16*🳓lÈ ý¡Î}(Šé`iœü5¥îVL´6“?k5 ¶ ‡î± ú ÝÐèõÐ ;°À­ˆe×,=“§T¨š}Ìð_ÑØi…ó–19Ô#Þý*ýÚ¥|åZ<&Óøp³Í,ÛŸögç0Kó®CÞq‡9\ø\Apã7!{Lç+õÿdiÆt‘0%=¯±Ø°E÷›üAe”{L?)•×/ʉъx§ì]0«_…|jø”r¹¼‚˜ÐwÔG›¢*/)|ž_!jÐåRÙ•òʦj5!ptFͰ±ƒÌ‚ÉRøƒŽëÚÔ(gŒt .¥GO‹{%Ooó@CšÃøÙEñ6ZY†ƒ¼H묅,?jÆ:Uð‹~j·æWj ‡a¢Kç„ûöÝÆXb3ìRÌ2 „yc»´Ê»Ë¤Üð6«ÆDeq1Ù¬©µôҾ˃qš"7Ѧr¬LçyDqßKËÆÐîë@Ô!3FOBl6–†>èî¤ÞÅa&Ê¥s¢@‰\°•€îXÎn¾P”ŒJyå|”C• nWf¬Í,ÛŸögç0KñÀ!_ -Ç»¬gC˜¥IøYäNÖÊyü7ÈAù€?³Ž@\Diñ&¯ze™˜çY[Õße`ƒ¦ÀnQ1AJŒlƒÐ›’‚ÂOÚ× DP¢ÒÉK4èÌ[°êÁÛTI‘iëoNýRe€j¶À65—ª,Õï‘V¨V>Á¯kÊ“ÈøJB$÷™ˆrAâ?¼²Åx=ÔX®”œ0Kæ!|´ÒzÐU”fø¯ç‹-Œ '*¹£€LKœkfÞUEÛ&Ž ÔÓH´ ‘9:#â #ÂëµbI›S5þÉQ}MÉÞB?PÓÈ,‰àJ½¨OØB ¨¥HÁUTªª¥ÿôVÙ€U K¥c»W›(ψ·ô|CéyŠe¡UÕ'YÏXUÁ ”ÌžjUs`–ñ~h¹Â£ó¨”ì]õ8Ë!Nq{>@UHÏå¾´ÂèØŒ¨ âᱸ”gû ä(P˜ÍêÅ0l‘øã‚æZ¼"›Ó–ÎGLµÎ·óô—Î\6Ϭ6ÊhÍ^â?KƲš» ú &–5eP°@–‰>›vFTQó^”;0ñÇ+‡\;ߣ JU¬ª±XÆ“èôD btpŒàtØf–íOû³s˜%Ô€7÷Ž—]¿}ÒyO¥Æ-•¬óòÇæÚ‹µ)F|y(N¤¼á‘ áE ts—¨fŒïåæeT"n€zB¡Î 4D$iB¤AHð¤9n³§ )±0‚BgèR@J?ÆÙ\K!r ŸÛ€!5g[’¸Lü*o @i•// ¢n˜”Lƒ]bê—*Q§h´²á:,`8t†ÇõgÐa#÷Dz%—5بA¦•Ê!Óñ1)Hºª½–šÁ 0àÊãåSÙteV+ŠÙ ±&Š$7œ࣠DKßèawáù©ýãYz µ550Ãt™U∭¨„ ß3‡5âÊݙبçõÐí˜Weá(CgLfrâÀüØý \$}ÓXÆôX±( ‡VÌ fnB[¿t†9¤Û–°‹„ëcÛ*Eg@ŠK 3—‹éY˜„ÇþåAÕ ê®™j¾òˆ›aZfa\‰ÞXÄ2³néÜĵv_mðWQÑÇü}  ·\{X¤Iêgç°©Ì:‰F—y3T”;8ˆ±[˜ù%‹ЫUñ£æ ùÒžxOLZpnK¿*N×êE˜É e?Ö+Û <Ý í¯¡ª&ÆÎd ûÚ̲ýiv³ ½ÆD®m ðj'«4QxtѹÊê³BÊnÌFÒ •ƒ%µó†#çá0TÀyÔ‚\ówÔ ͺ¦ g:fð[»TdOú1e­Jh‡ª6h¢:@º!nµÆ6è÷ï¨ìZP^nÂð pƒBˆ¡Ýá©åÙ@åÐî /;;åµß¾Ê CzkIÖÃy=ütÁ¥ç2_ ‚\˜› ÎÁ°bøЬH+Át-Ï^X;SÇH)ƒtH7ø‰žˆÆ.þN™ ™O£L8"]¬¡#sáZË þ !‰)YÉ#þÁ¿¡Ý⬩¬¤\ˆ}Ïý¾Â|ÑeˤQô™™‡ýŽ7"%ŠëáAREëÇ®æÉ€ÙÓ.¨“—™¶dŸ}DmÇé’¦NÉ,žŸÅ5Õ`3Ý•ãØ‚+vcViSs®?A$EóARs€+2ŽÁeGÔv›È u BSűFŠ¡Z ©ÊèÒV(‹‚^þ’Y¨*} XæEáW¶AˆjZ2À±úýxÃâò`”½Õ4\ÍìÁ#¹`•iÝ|mýkÀþ7z‡UìNyq¬Œ›¢vuÒó°êÃ"þ²¬º&éàc S5vúNiÇeÚ6Ëö§ýÙiÌÒ 8È>eµYª*µH]ð9^õd‘욬J`OMM¢c¯-ÚJíðX“ÈóbsGŠ ÚŽ¨]IdQ±%¥‚[ÿPð¢ ê„(ƒ Ö”b‚›@M¨ÙpO]ÿ9§ó,ä8¾D[±°…¸ƒóÜè§i~!XºÆàɃnyªZG€º¼ÂT £¢‰ Ä£&䕯ôªå ɳô²Ný!Npv°“­Šq(otjgŠ3í='‚È2Ó7*cÒ`-Æ\@¸¹ˆmuõbeM¾êËSúåBßÍB ;ÑQˆñ2Ï!è\(N1¦bšç8²zq¼r½OÇ3räÁò¢JŒ`s–HIQ<ÖØùÕøÚDMTú0aÛ¢.G'ø#Õk”^Ál ñ鳎¬—Y;ç¸N ÂÞšÓŠ.Ñ£'sZÚ‚w!&ŸhòpV·ŠFõž²ü1|5“<.Z£f¤X8ó+Ó¥ŽZÏX¸©Ðüb?±yØcœrdÆ&¿´åéaáÅw bÇ`&ÙTô‡:)iï̧aK‚é—{E‹½À,À®É´h!›Y˜¢‡þˆà#¼“#(<=áYf€v9Ç´™eûÓþìfiA iF›¼’œkÍkÝÆQ^ÉbÏüæég|ãë(šÎ8çkÈaúyªRã ×=A‹‹ÌfÝì]3á”×ÝÖIÈ_iAƒÁá€Ã!å[â}ë€ÊHU¹¿þ6%‚”@>ô¤€ÐõpÇâ^kÂYQó• Z‰}ÑÓ:ì®Ò󖺆7C[§Z*¤¶ z¯4x?°jX4¡ÔÃ¥$äY¼üé›ŠÇøš.›G&1á %ráÔ #Òj¨Ár,OEY =a0Ñ”4Z”_©6bw!ÁÚñŒ•Ù˜ïŒþ‹Í „‘3Éü7HŸ±ã2#Ó¨®¡rÒÄ—ò|þžßhƒÿÔ ®RÔìQúmFàž1 þß™YS¨Pt=SW*ª-̪¾ƒD±1Þ1h4d&ÉÆ£÷™…<‘\¡þBäëûʤ±ÊˆÔYnÑæÔÓŠÞ_Q±,Â6lÊ•µ† éÔ(¼¡VtõRnm˜“»‘=F7<yt0öÉT¦&HѤo”È JØ -5¾zTö’)MŒØ©Ü# ÷ï… ÿTHØ?¥Æ8gLÀ]G_¦…;¼P±o^FD¾€Õarx›Y¶?íÏÎa–(^|œúÌC=`[+ï“#Ç{Ä-ŒMc ø™·ÚÔSé „G?B…íëx"lŠ [= ÇH&GԈѦžPìÐ33i‰Š «iNâ²¾iÔ¤KÐÉœ¶…DÁeCápB õnÕ%¡®C-ýp°³Õ(®fttÉÓ€M4D—˜ ¸×—œË5tYÿU‹üçO¡Šÿèi#ZÅ2Þ°®R'£eÍ8Qè£(ú@"d@5X‘µ4Î Ô¿Rmt/r|NÙšš™UÝ£˜À® ŒÇ X)\øŠÊU+çWj3!“cЋ:LQ ¬¸‹Ø)…k§J¢" òŸY5ÕexÞÊ! rZ EhTndzHßLãd5É4‘.±—X2xƒe¢?ôœ ™ADYÑí©ÙÜã#?˜l’B5·2@¬Ôn%sh@ï$æ`âOÊ­ƒ.´0ô…W‰l¢J;žñ¡DÔÞ›÷ZÓ¢0uV I§±ªs%ˆúõ@¡PÍ>aúÆѪücõÙÑᓾ)6ñg¸‹*O ”4:……¦ /Q zJUæ„áÁ Œs`D2þÈ[h§ƒ¨JW#C~w…lB7áp»x¬$€¯ï6Zg™RÚ©hÓ šS(ÞqâAÅe¥4zä|j&é-zv ت»¦À*ôÈÕZL%*ÃsàOqŸQpR1*¢p4ØeYdDJØŒ‘k5«¦?ãYµšt[(&J¶“r°¸€0NŠ™Lˆ(äxMuE¦°˜¥4¾·åœÜŠAä`$òQ\޶¶à~TóšêK{0³! ± ‹šÌÙîhMÔáùÝÜ3‡I(ëÀç²F#eAl–ZÄ`*¡Ûyº ©‹«Ç6¤‡ÿ0?&$¨ç¦2kÑ@tæŒE÷xÑôÅ>‰Ð׈Mè¹3…âîYß6‚OûÓþì,féJÅ;mLlêJ½ÜlX¸‹ê8häC0Ÿ)ã•?xR|jçµï-ÁŸvÊœÐGæÐ]sœ‰Ü 6Ž0ôƒ ÓGóÆ c¤9" @8¼@R9•Ãꌑ‡ 'ç_E}@ÓÅR€ÔjóƒÜ0*i×¥·¶®8C?ƒøZöªár!ÑÁògÿü#½MdÁœ¨Õ”ñ‚kCœ#:,‚OáDš4ð@JrºªB‹Íõ{0hÁÜdŽNdAÆ«°5RAè“iKÙ7:äRú%Ö°@M«“3™[Ø@S¡…×eœ aÜ¡V@.¨Î Y@g賩?`TÌy°s+:–)+Ný¤:d¹i®lݲ†+·¨VjV3ˆ…á×ò e/ªñh1 XHÒ‡ÕÀ)“€ÔBŸ71²‹¦•®}2_W&¡Œé ÅØÉ„¯P€}¯[²˜y´®r[I.ià 4Q <ÁÂÛV&5Klú9]mýXNFB%È#YGºº¡\… h¡¡ÞÊ ®ï.ç$Ýš4`áÊr÷øîÙzÊŸÇ«Ä}Ž5lÎîÊHâ ‚Þ!fùJ£Øþìè§½ŠÌÒ¬|¦Û\:A§S Ó;8íšaÃûI! ºé±s¢6Kè ¹-¡/Aµ.ãFÿû©>±ÓŒ6Å£/Ý%èƒAœ1©|^j¥à+Â{BzÄ­…äsÓ‚+ÆXS ÒáÈÁ«C(uüMþËŠ"ï+—Ê.&JÕwÌ|¥r“dA²¿ðåÏî¹×”W7)«Jõ路Æ)jeTiÖ¬\½< ÐäÒÂ…¡¦¼!|åÁH“B@mk)o°¦Ôh]ÙŽkñÖ WÐcÅç=NégáÀÝKaWj< ¡× FDH6Õj6Ö—ÿ§œú%ÃEe°z1מcLf‰×åX±ÒL2• »á›ÿkW8whQ¸†$gìÒLJõõFm½•p”æ†+“63 ç_>Qªƒ]DÜ2u4ÊO¦l£Bæ”1v… uLUUKÇ„E6÷éß8õ…»½é5tG8@úOëtF›´¨CŠïì7Zd’Ù$" 1" Ønêôø¢wi^à fžáì´£ò«ߣ¹Ë4²&Â3õ·æS£SçŽæ³ç¢ÿçR¨ñ$+ž9sæ~ûí÷Ÿ›ÖøÿMë ñŸõùcXÜm¾PR9ÞMƒÍÌ}d~‚Ât L¿O!(´Œ—²Ûd *|uö4µF†‘P/3„I£šdÿñÿqá…2üÿ-Ÿ­ïPFâ i=î–Λßòö7Cžóœç¼ò5¯¸üº‹arPQÐ,X°Ú2îà…ÅDF„('~â5Ÿ€¤‘m”—) yCž ¹(ôÖ‡è<¾#ˆ¸c ð7%¦(#2¢HZ3oÙ{Ÿ½n9Yœr3IN H¡fÚàÊV "2QR:îð+ín(-t–.!åȳ~S"×c–¦™| 3íÃågÄÐÖ–¯€ãôS¦¤Vßq œžÿŠÑ “Æè¡åæ=v!¶ÿq5£4êWBMàíÿþ¡*]|™C*·86„Y7á‰0Ud£Ì¬¯¤aÊîâ )‘Ã3¸ÃFÁì‰ð@sÖ#¨M+é&*hÇ˯ì $0¸Z¼®60–§DÞQ¬ÔHX]õÃf¢fJϹà,vÛ†cЗ¾z2lRÙT0BvU±Üíb P²EY ú@=…ºÐ©ÅšI0Š4Xc^åÁ€…Ç7x¾jt*vôÜaÒt=ÓPdž1Í,AdÓ‡W*|›klG™åxÞ¾'>ø“Ÿüäøãßc=ž÷¼çqÄßýîwÿs™Ð!‡2<<üÇÏÔ·¿Oùöm³Ñ­?üã}O=Ùâ>íñ>í·Г8»Læp ÿƒv!Qtœ}î¸ ‰ã³Ñ‡A±Î¡ƒf°ŠæƒË©R"L°ÝÔ‚A í“XÕøŸÿó¶›÷“¯¾«~øjZ"(KP{€2Y2@U¯~í+?ôÑ.\Ôÿµ³¿úÆÃÓõÆc~O񪮮£âûˆm !ƒU‚‹ùúû@X¡P‚q3ø`ˆ£ç¼gN$ËM£²aóúšôƒ!PÞ\ÓÏxÆ3FV-å­@Rý])i¦®¿Úk ¡ÑRJš4¦NXmy˜ù7DiT0¢PãfÜTOkvCZ ó(Ð;êª^±ž A[ºéZ(™£†ÀºÛÿä7R>8b«Ò1ELgÒdNšuU6äPR0~ò$•¢ R ƒŸ×dÿ^اŽ]˜um¢f Ð\a'&ÏÒJ͆CÓlBsËè›jm0$&6R&–àJ}Å&„»ÀW`K<Åñ)Æ…êzS¶ê;FsŠzÜç€Ââ&®wݰx¦)õÅS|5„ƒÎ#q"RFh£`¦‡-ñ9kò ‹ÂÅð~a_Š–ÓÛE—_pÖ¹§ó–1Øì¡)Y`A ÷…³§·°sÒî(³ÏÛ÷Äaßüæ7þóŸÿú׿^¸páÑGýŸK”Y û·û“f–ãyû~¿þ©0Ë'[ÜÿtfÉkˆ:­"å’|nÂñ:y$+‰ïl‡ánâ†@tP·6 üêi’a  ¨0ùsAqÆÇ²œqtïìÛñó?þÇÿØúý|Ü5¿êÍå¨NÍ­¼Ââ]pÙ7<èzK[ß¼è,¹f”Š#sU]ÂÂõaÖp s!¶ÿ¡Œ6?–6÷R¼ciÄFg wht¿ö£“4z{Ï-ïûà‘/Øå|Þý—ïšÑ›àDûú9_Ým÷î¾ûnLïñŸüè.»î²Çž»_5áR![pKhûѼø¥/ʈöß÷K§~m=ç¦æžÞwëáo{ÓóŸÿ<” \’ ìûµs¾êoý”²»9¹L³5oxîGO÷°7½Îyë‡_tÅyÌ ›vâm{ó¶~Faív•æÌ­F\s eŠì¸(™b=}:-bfé«e&ý™w”YŽçí{âƒÌð?ÿó??ñþï~÷»sÎ9gß}÷}þóŸÿ‰O|âŸþ韼¿iÓ¦c=v×]we¯ÂYö³ŸµÈõ#:°²|ý—ù—ÓO?}Ÿ}öAf½öÚk[e&Mšô¢½ˆF;ì°•+WnGºâ+üû _øÂnõ9ùä“ùúĶ^þò—¯]»–›?þñyû~øa®¹Ãýñ÷–š?ó™Ï°«÷ßÿ«®ºªE‚ïºë®×¼æ5ô–>Ož±•'Žè‰âìx&mûBð6»úd<ñþ6÷ÞQG544dùóçðƒü#ˆ?n Ä–Axà”UÜ?v™¦±êœ?”QIÑP ®8ÑÀ<<#kƒØ™$A6ý xOÂû( EŠÿW}¶~K[ïª?QF@;t\t‚j¡V¨^!¯wÜխ߬ì¶ µzýÿ.¸h´yô1G½ïƒGåÙ•C/zÉ¡^v.’èÒ•‹`‡G}à/ņ§¡£9RS*ÐþêcÐÙ$+žùcÿ¨â”y×{Þ1yÚ·aÏð¤×üù«Õs2vá[aáÊ 2*yëo)³Ùàßü†“>s¢nMÕÖQ³ætRæã'}ôc'| øÜ‹ÏzîsŸóù/†2gœû5îcÜzÉË^|ñÕÜ>ë–;›=Ÿúü'?ðá÷ѽîtt|àØ£¹ÏHásŸüô è¢ÿp^c&²µZP:ÃYáÔ3þ¦±d.K‹Ì¹ZÖNQÏ<æbi˜½ÖBlçCtÈqhª8 =KiTM½¸\sçØãé»k–QöŸ>ù¯Þý—ï\4Úè¼cêao~ýÇ?ùQÃI)öáÃý³Îû‡˜žp,£8뼯ÿÙ+_.NúUNg8…Â9vßc÷o|ëLˆkX/ìÆ@ ƺ¨ÇfÒ`´hw3ÿÄqGý^Æ(Wc~¸~XôZ¾Â·D'Pp7£5‚àÇ>qÜÛÞñ–©3&]tÅù¯}ýkŽýè1Ôo›z,I:KºM2²’,™LW¹zâ_Oç'Ý~ã„I×¾á¯ÿàGÞÀ7¥kâˆtˆd~í¬¯ú ܆gè‹æRí¦ªŽå«Åzá’f·€0³¤«t›ù¯¸‘ ú¼‰>»£ÌròÈ#zè¡_üâ0’SN9ÅûÚE‹Á_ÿñÿvxÒI'µHtí±Çó+ÒêûÞ÷¾|ðïþîïN;í´VT¾Ôù«_ýꢋ.:üð÷Ï3¨ÿøÄú§?ý)´òŒ3Îxb[_ýêWaÀ\Ü|óÍwÀĉO=õÔñ÷–€ø>úè£4{hõfßÛÛ ­‡CýÇI…Çóö“YnÝÉíÌ3 G™2eÊ.»ìÒº~ík_ûÄV¶9¢Ç5=ÎIÛ‹ÚNWÇ# nsï-_¾üÏÿüÏûÛßr{ýë_¿~ýúߣdé!ÙFg=l E(9l à‚0RÄOãÜ)!k–¸ !ÒšÚ¡k¼ÛÑn^¦ÚͰU2Ûÿ¾åó¸Smë~t¹ózÊdºà;Ž›o½ñˆw½ !àÍo}ðëÐ,X×~ûï÷Íol”Q”ÍÜs¯=5šÂ°ñmš”Á¬ÉƒQ™‚HÔÑAµŒ² -Æô8eÆÍðñ²…¡‰°øNݰn)G$cFEûcÊ ¼”‰cç’ŽT2ýŽ)t7á;×îµ÷^šßBsËä a=ïâsÞøæÃè¢á_þ¤7¿å ðï~û¥×|KôšfDZ6oÏ=÷ã›ÔÂ1Ûgß}nòÎyé§I’÷?`¿¯œþå;æÎœV'7qÚåê™JE7ËÿþT| x5 „u|‘UÖœ³(‚,DŸAí·ÿ¾&f +™8®v;dÁIkR …£_}7ò_¢’V Á<`BBDí»ß¾Çÿa6ý€d–zëËØiB+/UÔCŠõ5f1X“ºÈÝ…rÀ%Ô@µ¬Ô·§\ ÝäèîG.g¤ÃµIxÐhQ3kê"Ä}°ô £8u2í×Þ|%õ°ÄhAXµµÖøöw¼•Ó×ÎþʇŽû ï/êäwßE}œ;YM~2£*TÂYAÐW!ôD36Aìp¥µ‰»\ #—ÅL׎2Ëñ¼}Û´Y~îsŸ;à€?ùÉO*™ñAò¸ï¾û¼†ä!©<ñYxÇÿ½{ä‘GZ?|ðÁëÖ­{"MDßÛz•Òöéæ(MTXäëÛBT:ñĹ€:Ÿ}öÙÇs ×'œpB£Ño:è  6xM·[}8ôÐCo¸áøÊQáñ¼}ã±Y>®“Û™¿ýÛ¿UžÛúZyôqŸmŽh;,g;“¶§¶ÓÕñ0Ë'Û{°m¦E‡›ß¯Ö\¿°É PVJ £¹"7.›ýïÀìvúY^Qh ¡#Ð1zb¿œ5…ë¤Jž= jBí¼À ¤ Ò@ @sGÊkˆÿg}¶y¶õ'Ê4*c‰éJ’ÜcK°‚.ëúè‰áDOµt—Å~f}žñÌgP :S^7ñª×½þ5H0VÎ}„cDU®!»â  KäÁXÈ*µÿE6iª2)B‹‰í“¿ÒØ6$±†©P¹ghTò½r[Mά é’ù“%‘ÔÉäΚ¢rù#ÈL롳½÷t§®ìºêÆËlž÷¼ç¶z ?ƘÌuâ ‡?ºé–ëzÊ‹q“_ ™¸}ÖwÛ›©sŸýö9ï’o˜>ÚÄ&®„R+K6”³µÛùPÆGX\“”Éó¢]?"(„¬Å´*Â㩌å/ˆ²³§óÆÓ¨Y«Q¥U ã¼c*+Œ¨r§Òé7æÕrí˜Æy‚#Îîå —ð«"¬šct×MºúÏßð:…Ö¤1™Nš!šøšä©¨y5ùS‡úalômñæ )€j—…3˜×ÌH_íµôÜEÑbö4¤áÿµ÷ž1¶÷tƒúÔgO‚ïxð=ƒ¼ ÓC5Ž©5Ãm, ÛŒuôÀŒ1ÆÔF [aZ-¯lS¥š˜ #ñŽ2Ëñ¼}Û©ª„4† Ó¯p²gÕG730vÿÞ÷ÞùÎw"Á´–f›d‹¶O·Ié¶¾I%h伦¶sݺ ÐK^òh:zÈ¿ÿû¿GÉõ‹_übUãïíÖ µ~ýЇ>„4†î ç8©ðxÞ¾qJ–Ûéä6gãÉ®[ŸmŽèq%Ç9iÛaTãéêvªz²½‡LüêW¿Vªâý÷È,…«„ôéáSè*41#Ð † »{6„@Ch TFò‘Ä{8;”’VÜË£”‰ÅtW:ø@§TâñÕÿí¿ý·íXMøU¿H†žÃ‚:@‰‚"öƒyÌ”i¶ ¦Sº&EÚ0¢q”NÒa,Ž_?çT³ìÞYÂ"=„sëQ™|æˆÔuçmÆÍèp¡Oh™4šy¡fÆyÂëI¦Ë 8 íµ÷žßžJ¹aò5J†Ü*ÓS¼ F‚ºí+<€yƒÊ# ¢J5Ž…n\~ÝEߺü¼ò]—ô7ÝžXX#X¯]*>ÅÐòÉ8'OKýæMÔ¢œ†é71pHª C¸iz/QOuÇMBÐþÛ]ˆí´Yš¬QøXHNåÎÃ$34=h\ ªe¤ˆ’p¬)’‰ó–ë˜O C+7ýÔÖk$+×TÚ2¤=ýEá¦üjþ$ï=öØ=~@eõäWÆ¢ü‡œýo5qê„[:'Î- 2g²UC3ŸLwÙ}al¦Ÿd9d̲ÓU”¨0iÆ£bêúËî•@!ï{JX[Zb‡@=ê?Ñisúo1 ô–¥ç3ûóC9á“;÷â³?òña¨VwÍV ŽA%w3FYD¶+ÓÂûÂ$“EGS¥¿Šàc¨Ov–ò.d9˜¨e–ãyû¶_ ê;¬Y-ÇEô`O,ƒÈHl O Ôt-jõ8²õd’å1K$’­>ä¿m>ˆâC#Š;-[W\qÅûßÿþíí6%Ë­M}Û”­Ÿl!žòí{Ìr<³ñ”Ìr›#zâlŒgÒ¶/YŽgឬª'Û{œäP/ßtÓMŸýìgßÌr¾ú*êt-Œ+”¢r;ÁË‹™MÄQ8(¾ï¼í¦0¤v.”Vî?0+O´÷MKò_ÿëÝúýäëÖo,_)ýÒÑ_ü†7þùEWžVsÁ÷æ~곟xù+^&ÒØ—Oý«_û*ØLãžï^?ñªw¿÷06IJ]wÝå”Ó¾X@µSþòè÷(ýp®×=DÉ’ÿ;ñ¸×½áµ“o¿iâ­7¾ç¨¿0y²&+ Ôß[B¤)º?0)I%½Éa¥£ŸÇp,†O¸æôÞ©tì>škÅ2fAΠkŸþÂ_átÚÙ§ps~%´}dööØs ·DvGo‰žVýªìAÿU&„UÀÆ—5šåíï|[~­xž÷ùî®Ù·/[»tJ×Í0§ ãŽ6 î¬Ä…c±è@’^i´ ±ýq ðæŸ"Nr[Ÿ±=³¦è…¤Ÿçy}I .ß{î]Ð={Ú›ÞrØIŸ9n°”×M¦ÅV¡1ÂoXJÆ &aÖw§3ÌË®½ùR'ÒÝv{á-3’-™ „ñàåté5,¼ƒ†`KZ4euŒmÉ1‹ýÜ.:È ¯P^5·拟¢«4×=0ý]ï}Ç '}Ìü—š9u!¦,4&€[g%_¦¸HŸÿ›Ï²îpÙïßw7G®¿8ò])wñbh¬žÏÔ,Þ/'$8åšÊ‘n$.K@·7Tè°9¼l;<ÈèôÜÞQf9ž·ï‰b«[¼x1r¶¨óÎ;¯eG¼ì²Ë`B<$tb«¼¿÷Þ{÷÷÷S3'úÏ'£¤çž{.6KH4WóáÓ`–غƒ0%bý¢3gžyæ6œ0abå•W^ÉõÕW_½ûî»ßxã;Ô[ô·Ú,m¨õ+Üÿý¿ùÍo[ÚÈñ,ÄS¾}OƒYŽg6ž’YnsDhà[²Úø'íqOíhW·SÕ6÷Þ‚ ^ùÊWþ®>oxÃV­Zµý>ì³ÔKÚàDûÊiÞ¼­a 5¯H<6mcI¿nX„CÝ•ðbšÀðB–Ú™|Ï)ðïÿþï­¸®ßòÙúe`´’hÅŠ‡zÆ)¯xõŸ=û9φ`½éðà š”®$nœ‹eã²&´é[WœOÇèŠÍC^t0B:” 둞 I9FÝý¤’ã>þaÈ.^šgœ{Ƴ(®:ÝÓpøÒiŸ=…òá•cYe’å{aŽD¢×Šº\ÇÐ{}é˜7– §ÒM£‚oPŒ)bÓzÁYmG™åxÞ¾'>ÑDç†ÆÇE ~<ð€÷ÿõ_ÿ¿J=W¡MhÀ¼O æË^ö2¦å'~4OFIñÂÀÓ¥(l¬ÕîŽ2Ë­*¹ØÚÿsëG0åˆöÃr½bEÞß–X3ÎÞê Ë:2¿µ7,šÇq–Ù¦sé“-ÄS¾}OƒYŽg6ž’YnsD—^z)¾¯­ò㜴Ç=µ£]ÝNUÛÜ{ïz×»î¸ã àkŒÓvú°CÌÒp>óe™KØh@£ƒà5ŒPYãhPÑ]=Í¥ðGE’ãb§P("âE-qjÝ­ò¼Sàÿxªe y„ž&54ü…}b¬ˆ3n3éý*0Ä Ó¦)EªƒT!Ð@vMí$ OÑ1´8ï|eP‘9Y)6ÿé6ÜÖ›÷d ž¤“V‚ [ºht¶±öW²FêQ]É}Õqæµ6¾‚˜˜Ñʯ4¢òPe¤™¾‰ÉÇ@P3XH!äEyÄ„ÌFr@ ‚€S¢ïí­³­›¡ŒðM…š©A|ÅðIF]i1šã\è2• 6dípéc ¢6j{Û4Ú¿p€ÑdÂò1@®³z¦š;E8u¡êX7º‘¹¢ kÇ:2:ØÍL"TSôËÿÖÕ%Š5 .yÿí9]Uü«@sôS8Ö+0úå›ÍM“VÒ«ô¡”´sJl”¡;^ÅÑ„jÒsR†_ͪÍT˜w“ù¤ÿúO±Ô¬åŸI |î/ ‡Z»ëÑJù1 ž…}‚›î†ÉAÉ_‘ZMaù‰%9•®ˆÏlH6O’ÐNÚa›åxý¿´?àO{!þT–éc–Ãð²JÖÔ„øóöñ¦Ëì ÂѱAYú+å=ï6A^f“(ñ'ÏÆÅçÊ< jzuè @|7ÆŠ˜8‡Â©‰ò°òÈCPLî O˜Yh«?(Zùk¬0"LÎÜHcz]Êæ1 ?a´iJgâ¹åõÊ@Ôþ%â»ü…I ðP =zº ‰§èÙú6¡š zçMWš±Å¼K*ë}"güÖ"¸<”]BIçE¨Ñlf2 îÞ—t¡å(¬Ÿ¿5ýõ[Ö_ºm& E`œ<«# é¶…°œI¥fBC:nlX|Xz9±ó¨—/¾âË}öóƦaê@¯–/ø5$ñ\ò]Ø3£fÁÞð¦v9N?û´¯~ý6L¼‹ A µ6:: ×±­•ÃxX/!æ°°)§aŠ¡"˜c+.SÁžÑæÍB3ÛÁJ\:‡bÁPœ=M°\ ¨¦ùdÒØÌî)k½(üÖÀÞ` <_¶áAJŠËÈ{Áô²MnCëf3i6ã5—™ 0xtÚìCÞ”Þ‚YgãÑ%Vß$ Å £ lå…5ÛƒãijvˆYþ’ô? Âæ÷øùc^ˆm¾}mfÉ'I— À Àúœ Èé)‰"þœñ?\:'¡|x¢¹­\.©ÒYÂMSYÃûìq{¸<ï©ÈLIõ—ŸÀ´Ci•¨°ü$ÔŒEëGh¾òuÄÝ©‹\!•4mo£Üv*60: ÓfJR’^ˇDÓN¢±Ê¬ƒÍèµ›¼(x7ÍžF6f/bµÚ8ª€(;_¡eÑmŽ6iáµmÜh‹3QŠð.P‹î†ãRz_1þPI{•"óz’Uêž„ TŽ—K­¶á…Õs~¢'ÔÃpàLÉ5ݘ5\¸Û¢¥¬Ç¢è1Q´®±S˜V–ƒòÎX‰¤qTæÁ8ˆn^æb™,Ì,iôܬÜ1ó³ 8:Xé–"†œ Gð-s°0LxjPJ©X¹·š2 ÇBß艘|âû(˜Ò„I:åèIK9#) •†MOÆñ‚ÖÙH”4K‰BŠk:mé×c6òþJD#„lÂù³4Xê&³Ì)¤t4¤1˜úqÿ¶þ'ä/3/>~v*ÖSy¹çÜævsXedG)7Ó˜bÀŠ+e ÷y9’aR'׿¹ H^em3M˜Ì’~R[RL¯6ÕO"hZnìé1Ëö§ýiž6³„4‰'–¹a !âmU1K“ŒRÂAØ ^Wâ1)¬É44Ê Åá­îŽJQ¦%Ô¤k²a›ÐÙ5™’·nöÉ#TË#¼ùÆ}#H!ùA} sD!£ÐbD~ê®>h„9¨‡§ |å§€¡Tà’M ZGÇè#‰´–ÍCDˆ„ ”¨a0£€¿*Ç´²Òó‡`¤p#†}ï®ÜÌ‚.º†&3IïT“‹M*é4ïJ_ˆ™`¨œTÏ87ÝV£+Ì, 6Iç©Ð\ÁtQ^¡›vž±P¡N¤4aÆ` D½y™y"ãKU§»ÄJÑw¸¦?ñ^~x%¿ŠO…#sƒS¦Gˆ›tÞ4[Šõws23HŒŽgpìúùo2m“Ã×dÏê‡ï DZÃÐ{ê _¬Èܧ~ãL°e:Rj`•Uöʃ=ŽˆB®Â<*ëîÑø •QÙüÒL&³èO€Ú+´¨ë “Eä¹e­•Ù™&)ˉវ3¨Šåf陽o]v¾&C–Fä[&‡)2«k¥6c£Ò(C¨Ñ5ž¯|«÷Ó ªb€ægï!ÚV*Ÿfbcê %¢>4´¦4MfBgŒïdòMþlžsB*4]„r¤ö6³lÚŸÃ,•Ç”m‚ læžBUô‰Që)Šc&ÉB¯nwQX¨ü’7\ËÈ¥t·,1›FÍÍÛ(Ñ _ûÊÔíN> RïRló²îJù$*õ@d¹jHå›Yù/󆀆‘¬â)èôòÄSP%}¹©0T÷j&4 ce£lTTÀ ýEõ ¦é)â£ç…1Õ2zU¨\CŸ(³!ò¬J6ˆ …Åü4Éb²¬Ü“À>H›!ç̬™;•í Æ6©­éFÐã–Í`0‰AJÅ5‡7³*¦1é¯äˆT›˜ŠµK•ž™d³xŠ¿*ã¼wݰ”öÆäS›‘0’)Í0£`hL²ìßcÊXÖÆ’«T/›5^ÒS‡º¤´•‡}&ª¤\T¢‘XØZ[¬­•<‹QP3@+†ý$íåúÍ~<%žŽ²¸˜ïLÅ®Z긋«Éô2™,¿|¥u³ƒQ@x#îÐ"{€‚Éqž‹Ú•@%é¤-¶Aº¾2Lu¬H:S(ôÄìÖˆ¿cYÇ—Íûé¯6£?P5"˜­!Jó ÙeȃN¼v)ï’Ùrr8¨xze&Q*TFOòóže‡³ kjÑÙ½tÛfy3«Rîtjˆ”€­’·¯Ï²ýiv³ô$P‘÷ ZKÀTn²4Þ^þëL/“0&]\˜x®æýç|ÝS©¸€ôk§¡vÞvÅZ=õò.Š&îW ò6/“œÑ'®M÷h.$½:uuÑòÄ}zOU9¡¯2~?” ü „Å’—Å×ø}d²|BÝ’À«\=ùUXNLOX’å½ñ1Y˜dIâÞ™¼P‡Vúlê‡'Ñ:D­«h÷a“‰‘/7Äz*½6YX³2o0X΂%™'’s¤2Zè/K·ƒ x4A$BTbñxŽ¥$JÌí¥W_íÆKc&16[!4×LÐ_ZŒ¿L¹ä(:;Ÿ&˜Ô9…qmþÅ3§ÔüÛq÷]7LC/õ9b¸`Q`cus¶˜Š’‘Ry«Â]ÌC÷ z—ÖÍûfÂ/3®„¡nQØM4í¦¨RÍ"Œ”«Ì®0‹Â.ûX„}Ÿ>‹³oÌ»šëÞÂÄacˆäŽ&9Ùiš³b2(wb“‘ª¸ÔO˜>ÄM:žÛÓ5+0 æGð`¡•1¦Qˆæöb¿Ñ ­›&3g!˜¶¢Ç5¶œq–A´¨¬mzèm$¦#7Û̲ýivšd@æ¹ÝPCGPP%×CÉ:’3(².$& à•æÚlîò¾ÀAìÌh°A\óÁˆ¹ùjH3&…f‚ ›iAb¥à¦„Š© “Ñr“¶ät‰j!v:¯6 3ƒJŠÜe4'nJý·s¼P.oNÐxcÿÒHwºÁ$À½˜¨9z]¦HéŸaÆ0<·›iáïY•Ïû»Ÿ0¬#}ŽSϦQu§<¨¯²ÁC,1XBçôâ ÷Ó…0è2)†a0ÛRº€§š%ŠoÇ0² ÃÍ3e I+s2ÜŽ…€â³a ɹBPº$I®s'¹Aî™ÃXXS&0ÚéYS(ÏDˆ/“*Ýeˆ¥3l!:iúr1˜ÄÄ¡žJ‘@h7*µ2 Ò×òN7jˆGØ´â )öK]ìl3@ÎpMáq…Ù´ðݼLG_•Þ¡Y¹]£ =xòµÌ %q ƶªç—¢9{†‰Â¼Ía‚iÄ$ièÏάT6SxDÿ,Zi3Ëö§ýÙ9Ìb•¼òZ€C·¾•C¼ª¼’5^K9%xó ¥2Éÿüàr„ 1ÔAÑZu£R)éý4’AË´åÈBd`Èp]"Guµjü kð¾N*!%6®„9È.&ºî²Ûñ+†t2$ˆ=‡°F[­$[HéÖâ{÷l*¤~ºGC<õ´®”©5T„Xˆ ´•¦EWf!#®­d„ÆÈ$¸NúâJi¯tª†v˜3N¿¥Ô ê ‘… Kýf’‚…±ªýU…g l«Iü8«Y>¨&u1x´§D±â ǪFi] ; ‚/®ºÚïèïž ˜°æ§“ÑA²õX6(Ó¤l¬ %©<®¤K¨ÊàWþ+r¤`C©šÉ׃IaQ=gœWŽÒ¤$|±¼`Vp € CÂM¹‘0Šê«Ù”aÿð«ËGCnˆgVFH£lßL¾BÆÆ9†•3Ÿ¶X 4"‰¡\:‡-Ô]n¨å†Ý 9fC~ÏlS†ŸXDÆÈ_NAöï¤BŽY4ca`ž|#ôVe'°ñ*…YSʼn'\ú 2…¦HFîÊ“Ê[Ã5wXk÷¼IÄŒ9N²‘òîÑÁMÝ ½â›Y¶?íÏÎa–PB©½:9(Œ@È ç “B¡ Ð/ÞÒÜêjè‚®.ü…­Y€Ý†Ž@ +‰Ž7VZiÞ"4ÉÆäª=©„¶5qA ͤ<üœÁU‡BÔà^vž¦¦Ä¹Ïë%ð?BÛ¬)A Cyáƒ8r"‹²”¸D: ‹Ü1ê/pÕµE%ìoQœ_(Oýff†Ôö–ȨþPO]8%?‰f .. A‹ÂBb ¸:v2{| ,jÙz™F&Sº ŠvZ!»è»2·c‰dÉÇŒˆâé†æÑøÈŠ0“q:/.üIÏdŽe}Y7 Éæâ‘Ř?³TR’¾ÉË‘E¶KœÌ¦Ñ@Ì”× _¹ˆÌ·v©‰—Ùr\•Šp/îØ[JÔX=Ë¢¬Š•æLòûäîG¤NT⽦Ca*XeêGb†˜NYë¯üƒ¹Õ1JÑSçgñĈ{×¢>úìlˆCËÒ¨êðp–Xþ“Ñ·Ÿ{áÙª:¦•x×E£^aÌ›JZÑ0ú ÞùñebªÙ‡Qœ3³°O°Ùøm­]Ê6Ö…UOf7´Â„èת*¥¯Rn1.–€&ÄiJ"¼’׎ÉÒ…Úw2YúÚc4m3Ëö§ýÙ9̲ÀÚF!ÝÚ§` ¢ ¸;niÈáņë@ B §áA*ŒÓcÉgaKÐe$Hè5c¤q “ï©b@5§1?”4C¥¨>–[Äè*XQ„¸i¢@‚é0Ku™oê4H]+k§Í]ÕÜ·ty@µ*_™m&ŠÚ—‘E-‘‘2tÉIÖJ­;Kƒaõ¹¯‡3•ë{e7„Çc¤ù]»4bq5Ĕʧ5K3dd;L¿ô„?†l@ =1‡õÓJj˜Œ‹Míy†À %)ê-È=ôOôG˜«èŒB%ES®àA$VwÂ;…ƒÇ=!q‡ͳ©³Lo%~ JHi}ãœÌ$4ÂãÌI›Y¶?íÏÎa–jFÓ‹3T·‘s­`2ç_üÍs.8 &ò ï'ÿa™F…‡îŒ6Ëû “w˜ƒ³@ê¼êF’„3-›1‚4sS3•y°"u¹P x‰Ê=«UQ*狦*JóI÷ I‰ ™W€&ÒcáÜ„; 0›¸x”±‡>¾¡ŒW À:Yt[çIø• „³)LŒ¹,è$}åŽæ4±aé§jÉfyÉòuh\ Ù 0à”W6@'Ñ •6 òÇQ€>@‹a¼{¶‚Š4‚Å jAO2ƒfª+Ù &"ï‘©4Áˆš0Äpèí‘åT!r©¡{ñ™*LfÛ¼ZJÿ0NaetQ)“mpj¸H¿845yPH[ƨ«Ž²iwa-±˜.3‹Q˜ÎÃÂ{ÊnjFf›>«6G'ÁÀa0ŒÅCÀp…ü3–ýë†eHYýáÁ€4UL£Sµ+rÜE‹©I¡©Ä™OØk!TÑ–õP†ùWÕ©¡žÉ»ßmÀ@Ü]t@­8…zJÒéâ‘4ÍиÆH+¬žYLõ+M6£’™Å@­Ê˜u‹eY» ‹1ø£ô&æG3­ijh]݈ZC ZýÐÌ%Û̲ýiv³ØKwHü ¢åˆW[…?ÁZ¦s‡ê»‘ÂÓÁOç=½j1»«A-Èž±ò¿wH°:ª¢ ãÏøÉÌM¼Fh–JB-O⻋¤ ƒÐÀN´Tép$ü4?A˜¨Šcø6|KB¯”!n(Ÿº>ô¨Š o‡PBé§5±†£6d ¦j”Vüà1ÐV=þ¥ÅeqÔèr?Ο]‘uèMêGg†ú# &®K­±˜x©(²®.bfÂ2©ÒlÖx‰ÓåÝÐäÅVj)OgbB½/H­¥·„.˜—˜~(’Bȸ7“²])Áh *wÉs´n¬!– @”i”.i€•€Ò„±˜Te½:dk&&O®@SÄ’T¸ØR@ÁäDÌ1s¹tÒ #Jùƒv‡š—5—’°c'´ð)yðºÁŸüò¦®Q.¯º8ÒtœlkÈ¡ÂÕ#j ×îÓš0úUN)“ ü[Ù€!²±´œQ›|eÂM¯meŠú §ÿ<^öÑâÝ”í3éˆY_ê‘?é]ÅzDÐe¢¢Ö~x¥hvæ{ ülBèÉÂO‚} ¤ØÄX`Zô–ˆû¤r–½\pi+zìr«fh"]Ð¥3¹dïëš® óÏëÑV-…ÉILß-n*ÕÒ =ÑSר!}PQÆÂãÑ+ˆpkNM±m(Ž‘rýHqÃÙ8* “¾?lƒ,ÙKñ}% JéBdàp>WŠòÖ<(r‚Áš¢Fx&˜¾V¹Áƒš™Õ °C4ôRƒz—Ø,K /¦1sªJ+Ðq›Y¶?íÏÎa–Þ}Û W¼Ú-aF_„J¹°O—EY£z!J@µ‘±b‘"hoÝp_™X Fš¡ª–yŸ5Y™M^¤º‘Bàfo¬5gý­˜(EÈмTU*uì¤tÂPs"Új }+­„¨›<®јá°!7ÐA=Ò´Æ'Hd€Ð»ŸG }uÓ>›Ñ‚qÑYÈÙ²yÇéšlØ šŽÎÉ[ïßXdIR™ŠÕÓ¦%$ §}Iಂ˜ÓO÷PnÓù(Q+6C’Ja®´j¯¸ønf4ø«h±2(e_z¢ —£€ç~å£P »ó{.È$¡ðc믴*üªÖVpmùžè¾d°‡H¨¥„‡q³»zɸ|JÕñ´⧺°OžÊ´3v$$Æ"¦G.è°Á'\3 ñmž=Q3¥jÔi({à®™LxwÁëë®Íãɬ2ØÅ¨ùo2/ÑtþŠë.ñ(Ƹ”°©‡¿Š…Äó¯çBIåøëmTP>} ©„ÂŒ‹%‚¶ï6âfˆBeU Äy QßáìÃ8ËÙ‡C{/ ¯TrUAˆ¨‚,V¯­ÉÒ‡ËCþ0cnŒÞRq÷VU›Y¶?íÏÎa–¢²$¨aÓ¨ÞÙø¢> /{ôZâÕT¬ÀÇ=›jƒ_õbÑ«RÏ𓪕$hFïý\ "ºËj¼.̃)å¡ÔK "Tw‰à¨ÄÌYª¥°ôGH6fAŒ gˆL>d®5ö³«Ì·ì11xƒûSÖháïÑ‘°sh†íîelrx³øÀîv&G~ÁŒhǬàÍ樂w Ï•HMž,›µy’ík¨ã ´«æ´«¥s,KZAEM+T¼†Á‚ t+!I«ž?qN'î)VÃd©›š:î›2‚cµè˜#pô¦f_¢ÙJ¨²ÎDÇêÜtæ¤NzHœ n)ðîÙc"où1"+ž$—%Ú™*§<• ‹˜ÍŠ›zµÐ[HGŒ_] —ŠñºéÍÁÌ2ôq‡via—“GW‚jÙRHgŒÓàñ^놩 RË–Â1¤Seµ®ÈF»s-æËA178R@hÜHE½Sy–n˜5ÅH ñÐõ2™F_i­iWÁ±La ®Q˜úÎ(4+èó• Ï"&ÉÒBW¢Ç†éYG$BæQ¨_I¸è*­)«öRI”î™cDÜ"ÝYû*­˜ñ?œÒ˜Xp¨µµèÌ8®ÅX;IM×É$S¶aK>ú›o( žµÐÔ*` Šžß}¢| N“oX #ËfS!¿&`õ‰Ï³Äœ#•&é'c¤p)Þ›L)Ý0¥3û¡»Rc",ò?€“ä¹\»”Jø•1ŠæÏT÷„ÅØ{çœ&p[hÚŸóæ˜‡QÄ»¨›³L±âkÄÔ·w,.¾Ø 4ÂØJ#¾¡#P:Ø,ï³®Æf­{xP·Cp†+µ2ÄÞ½HnäÊ¥ÅSòÓ}˜ÌË| BŠ›Q¬“~@ MÑlG…‚@ã²_.<&1ìžúÈ?m|Î`G®Ñìéí9æ`R9“#zÉ4Z¶!zŸ…¤¡:Š\),“CsÔ¦S}y5TE\±Þá`€4Mm²B0­]Æ¥ W(ðFÙSÅ‘‘¾KIuÔЀ§ÛK+†G¸ŠQyÌ•¡“~6+˜g $}Ù¡´[ ZÕË\u¢ÿAÒ©€ÅbÅ}á„Ä‹$7óåÚ Ä®:L‘þÿü·?i‰æÎ+À‰¦+NE³\–èËdvîh¼ ~îÍÍY¦ë2E sÎú™¼%óz¨D?ä€ÙVJpÃQ*—õ|“63 0¶®¹µ9É1QTÈo\p¶QŒæ)ãYæ„ÂØÍÐÃ3±(ź+y žbì·œ]õaÇSPiþÔjÐUþ›9@goQx„6[¬* Óšzà`ê´dS†:“l$éÞšÁôÙ8*–žP>æ'P2n“°ö§ýÙ9qR»“£S¤UM$(¬ªƒ·ÔHvyÉšÒM™j¸Ï”-7U=w$(P#£L[‡R³ú™ìB Y¨aàå*ÔÁ\}JTÆ-˜ÚIÑÁ” ÑG¢†£(é* ¾"K–«°ÕCRв®Ì ­è@KëúèË “Tk¨?"æ¦Q%ZHòÔCÐ[ÕüŸ¸i„—ϞƯòÃÒE½¡ÛâáèKLï·Nfà‚!Õ9%ŽNÅ)õ¹"a"3b%¸ YywÌo¨×Wp¯¸²\šû…’*É)Ë'"¹I­Íªh*né ò4Ú¨žõlá‰D4[4§Bø ]eÔaá›Fã*UÜÝàQ3HëlŽj3o‡ mol€h&JßÀ¯<Ë5C6_U8†‘îqÜa¿À¡²KмÏDѺé;ÿ3ÓÅ&æ+ç$*QÏ©B¨ úƒn€SÓÒWÎÌ3\Õ°(ƒb• y„ÊiŰWZDý««³B§ŽÇŒNO1®M<àŠ{*šÖD­L&qŸì†Ã&ä=dÑéXË“ÙÄŸÉ4RêôJ¬ÖfÁ£$½¢Â6 kÚŸóÑOSm“ä: ÌtÆÔQ@\ÁLèS±"†Ãé¥3½Î~-|î9¹Ã'L•DWiJ¯(£Ê¢#ë¥B3÷ZtÇÔEb“¢­2»/ô n4\©§ùІMÈ4Q 8A<ŠL¶™€÷ˆ+ÒÄÁWyœõE:5^B=¤i_,À}‘9zŸ1”¡QzC¢˜&7ù%MÆÞ=~™7ÝÖ.e*˜U#˜ A‚˜(z"γÁ#\ +Cî!µh/» b^#÷LìÁõèPŠÜ¸f! 1·¦·ð$zΜ“Šf>ÍÁ3c¢˜[RU²h•[¯0I Pf, …FŽš³Z+5seD ƒÊ£aìºà’s=y˜®’þËaXLT °ñøAÞß8šIÅSf :ØL#¥l`Â×”õÔÁœ7ZÏÖ*)Öy˜†`0BM¼,\Àë»Û$dêZÌrM/ت †£[^¡ÐÏSíÍs¸øƒ X; $ióð Ær¡0hE@ zÎJ9«faò-~!“P¶<ÎQÀTbjã]ÓÚˆ%¦.{@Ø ã† ëj¾V^ \~…ý0Ï “üQ˜éŠ& âwMÅ7v¸\ÔÇÛǃ<®&¿YÛ’g!Úœer´Feá¦!¶ ­_dŠ4–Xovå?s.0![ÎsªƒbÑY‘þJZ ܘ]3íð=÷¤Ë|ª'àf2±?? õ"¼òF‘± è¶èÁ& å-`Ÿ«aR=Àé bp™:ºÔ]! ‚¢rè)'ˆ¥áÐC;Êž»g»‹L »ò²yJfQõ(ĨŠ÷5´Œq™FÞŠ0• ¨»f²â T“ð8d8ÜO&Ú @7}‚†å““W‘FòÀ 9RGmOêìN“L #Rºˆo<Å«ë+îÆhY ¬S}†®—lQâ ¨1¤B5³¹ˆ™)œ)«8WÃi@ØÇÛUÉS±«ù‘Ì8EÏm^€‰6FIÀ°y»P¥"È›Ú]"~”2‰ýÈd]Œn—©P1ÚÎ[ô™ñ'Ò"ÂéîYüvî tÒì&‡(¸Hçó=Dï3 ™ç†/`:KhùIFJ'§Z™w à øûw‰ýæ†+Û׳û ç6îIÎ]@›­èÀ²4§<Ö£Ë5>[‡âY&2*q»}Ó=šâ‹1,J²ì,gY>Ó.-‘¡À@âÎ03–Õá~öAÁZúŠÆIîg•…çMnLë§âo†EåpéͬY)ÇíÃ"£n¾‰ôIš-¤äÂuÖœ«åsÄ<ã³TË1a&q4ÄYcµ«O ´#©s œl‘ð¬Ž)TÏx¢ ç¶«>"rê„ðne7^gr· ›ÆŒ$Þì™â‹ÿñ;ó#È"ŠFKƒP]ÊûºÏœQþµ´ “ßTœýâò»r³þc“Åeäºá™Þº@Ú$âý-À!j®8½p–†&§Ú­9ß“öºm“Y7Lk"h©;VÐR £z V^‘ÏOÂuIõûBµ()£V ál ‹€ó{¦d¼lbîx41KÕâjq„Ó´ûƒŒá-,¶{{JíxcóùΫsȘ¹]{¦4ÄИXÍ ŒÝ3èl-Ø9÷4ž(HüI!gõlC´Ü×,÷aTs®·ªsò/ÇŽÓ1-ÏA~XÚ[Øš±ë%s>c3ÌfJ(k:]t O´ÆfCZ¬;Ë!E ˜@ Zˆ4‡­†z#º +¦‘¡ÅZ>{<À+f_ ݦ<ÈÖ[Ç–0­‰¤VŒ‰6ÓPpƒnÄï`~ï¾í¶€'q+άZð0RL+º:tź¤Xú[þZ,'mï0‹B4•2AíÙ;íKáKÂYÞ'©–&"·ÐQ‡“é;wç €&Exi/S!虩 q›ip¨ÛÊ#úY¹9…pC4"É8gKÍx‚¤•g±ÌŸÊùO‹…)½ù–¿Ö<“ ´¥¹µujCéKdÃÁ¹Ìÿý»x<ˆ¾ 7?yŒÎ¨üY@W‹ôÀƒ)C D—•pjç cŒË@k&ß ¢zñv^GS º— ¯¦{Øå' 7™58‘‡v©g»ÜÁ£úÏÜnþ·¼O—¬”Î<˜Ó©›¸jŠ:±¶wÕn…yQ\Ý9I w±´DØPœ›lztBóîÛ‰µ"=÷sZà%4&íè‚}’…ÜšB¬¦ÔpÇ»Þ:ÙàëàÒ74þsŸáO_—„õV•0ù·G Ø3ÅŸŒˆŽ1@»dº¹€b Í¥+<àßpK£ë•FZtf1Ÿ¬8Ç *âÌf.jð°n„䔸ÒZðÎÃFfh#A¡‘UþÕûc¬h6¥3‹â-§ìуÐ*S¿ú½¼g6ã9ô³h²®»Xž(O–@˜©ÅÂ@H3ž¹!a÷íä-‚íp}‚¶˜VVb¡KÕ+Æ™5葞7½…¼à„‘öÐSü|M@¦‹°T.Xyª’«”iŠì^0ö¨§•UÌkk Z'Y)Í ‘ ݳ ’×SˆžHíQ´Æl6©cŸ@ܦ#ÓêÊÕö¹x”^htx.VôתalmöÜh#aÏ<‰j–Ñ Ì tÃðb¾™éÌ¡öFÖ†e6Ält¬ÃFy•;QO Zª¹a*A#ÑÝ4iUâJVÍ5"š *ˤ©ia&=4d#>0KoÀlÍ©XPåUZP\¶´—çõ™¹î•´,þ8zjI|áþQ£r ÒÔ^ÃÝT£±x‘`=èf €3û};ÅàöHxXÁWµ ¨i1ä8 ÏkþLªÏ-ˆí©á“X5øDÕa‡ $6Ò*ØÅ㥽¨&ôŸ;i“_ù‰˜œ™n@âÞ™¹äµßŠ»›Ó|£xØ58+ë)gQÞû‘wò§&\S˜è¡å3µóð¸Ø°Z½´„+‘Öú³Õ™dÚ9]?kÛi§ê6±ÏóDÎØ ;= H÷Ú'²%ˆlÇæÔ-‡é[ž!4«@ÙnÎ.Ò &Aí: ÐMS¥0àÝŒ§,®ÁÉ2¸c’¥OÚ¯?"!Ŷhé‚7Ѫ•[´©fžÓµ«sQC·0L¹Œzsg™Ü¹,¯Ï Su™=YòÏ(?-Þî‰BVYÏÕ†y;© _ &É P¬3H4U%È徿»ýEçõPQÐБ zßݵèX«ßÄèÂUì4B°W¸[¾ÿ“ïæ-Qº‡‹O~ü,1Œ4@ücæyоñçô"‰¾ItÌ‹mâ~"AÒI¨Ží”}[ä Ý4B|7ìs¿æÀùóæ\ œ`Æà8˜µ<0‡3ÝE¬ÕGc†Q.¢*Fƒþ¬¦ÜC÷(Ãè¤X(,± 4Ë¡(|”9$ªÃè:)03£æçÈù±syÌËæœjc´¦èQH$ ~jÁ’SÆ@вՋ¹­Q&Çé˜9üË‹|ÜS”¸;í39’ß6¿›?ù‘>wçTƒcƒ1vïž7ÕÁ(F%“f@©Ìékd6Ó0ækÜÈöÝ•æ ƒ‡Î¦wjª“Kus “ì‘Ô}Ï™š—E'7ÆG‹3]MîljCs… Ϻ†ŠÏ+©ÕŠH±qU{bßä6 ó…]’ÿLÈu·›"á&µ…©X.wuïKZB7x«›¡IP¿ÅÒÄ ?À¤åu[¤çÖÓ–©ø êd8¥MSñhßÐ*‰UÆÖbÆ”°Î•Ö6^a¥íø<«5Uâú~,ãáCEIJjˆ¾q¡Vaô(¤›ûctuÙRYô^û¼Áy 'èɦ?¼ÅZZÆ^kÁЊ%X’}0%Tp`½"M ýOÍlªuE»ý™““åŽÍØa,ã¶¥þÁ{¹3¹Éƒµ®âSç+q2äl‚¥FACØtf3@IGxle»'uzi𦨂Z\{c|´¢é3clßR`#MgúÛº#숧$Ôà4J"¦Ëè'Õs,Ù¸–I§ÔHøß…zÎÜTþŠ`a[ÉnÛñ|E‘°Éu¥ïOØG`sáE0ã2A‹©à¶Ø©ÎEÍ×Ãw鄘7ż‡]‹‹iÏꬅ#šËr³_Ó lÅ#õ jã»ÅÕ™vM®0™îÝ©3Ú*ÓëdíY°z¼^X·x½ûÁ’m7‰Ñ‰¬§™%crñÜ¿+QÜgÕ! ätÇò;ßßûÑwºSÞlÄeÔ‚mñ>Ú£á©`IÆÊµ8NZî£ZM[¡ÇزrÚ>´K'¢Ä&T™fm“Œmä¥l t›Þ²x%R—Œ»m›œpZc'1k1¦JgÄ{ê1+¦`:̳²gÍA0mLU)Öæ&X«Ð»a2Ú½¡7 køá»Û”•êÓÃâ‰JÃô–+ù—Ä@ŠH¶pà¾ïz+o:À´À›V] ìZõ°eµÄêöAÕ…^ܶi@)7ƒùŒ¾™ëš»4,³”9ÕÔ¬)”y K1âq°‡!žNð¼¥%½Û]Uׂd'Þ¦§f%›T°o¨»«×z¶c––Ö˜;ækªx¤N‡1®œY3OÀMÄGþSI4Ä`¹0V‘H¹9v¹ž,ph ƒòãA™YÀóDh/ªQ‚`B¹B™e [œŒ5¥•ž«øè!3ÝÐ…‡2LpÔ¢°äì¡æèð¸ØßéˆÐn°ºp‘Ûšä—òÌ"ÇÈÏ¡Bµæ#5Prb³YZ²±*[™íþª?æçÄæÞüBã• Pz ^_ÏÖ>MîÜãQU¾’Xå‹›u¨¸.:Š £—Üpmì6'1Eܯä³T²ìd”h·Ì6=Œfzp®öÀýP¸GÏ9£“Y8á/¼]#¯Æÿ¡ìŒ¹7ÖWϺª±¦zDôYÊ=VS1‘#§“ø86D˜+€Â@q5«5Dy£ìD´À¢eaüzèAþ2Ãу‚?è-†„ýQ7ë“3’nº¼—Í_ Y2 ‡m:™KÅq¸çDFƒ›¾eß´0É Pœ Íãêš¼ZW dePf‰M–‰oOï»üËÂÑZŽ•ãíŒÍ]6Q/ÀüJãÆÀ‹Æ`·ÆeJ˜ÑÐ wQ…Ŕפ!8¥>×…nÐÊEà\ËÞAôPÃ@Kõ&BÓiy¾™9¼(eaΩ¯#u'î¦õÕKa)y…ÙÏі΄ÀœüùzÈxc×Ä}hÇf–X@cáY#Û!!T4\9¸!ÅAä‹ùåA+)ƒO |çö·±"<°!sŽvkzÇpÝr¼Ë( Tl ìŠÆÜ™°u!sµ•µ`;JxD«…ûcgÓ0žÃk*0"+¿Ò¥Ó)`®œoy(–rºšÓ¨]©£;†÷š‚laKÇdmWž5~¨¬Dp»V•5nÒ+d  -êbjÙB‚©+ =ÍvºŒ(y4§(âÀÜ© ?f^õQ…‰©ƒ§t]é‰ÓíʃÉÛ±™™·p2ôÀíƒs¬à¯{…A'MPܪÎÁz©ë[¤{¸ y{< E?ÕQÍ^çy†ÑMXµØ"ª˜ø¥å$g‹³‹CÜ—$eø¢ù”4‡‘ÁWq¼5:_·¹ðFAvÆ3‹¬–æ‘øi“W Ës†5+ h”ßø©µGŒv#¾yãsu?q­ÅЏ_#-D®ãJÀKÁ@öüɾ ©GÎï*ÖôÈÛ4’q}œªq³5< ?©«²•hý†ÿS–È&” ëÓibÑŸ¼ÒúÀع”gÓ­Fט¸ãäØŠ¾U÷¡5½aƒ6yž lž)]˜1N®G/[+¦A/œ÷+³uÂblRèb&ó» ›ut‹z}àeC‹Í²îÛ7k=Þ ¥Ïª°8ê|–xj¸éaK,ˆ0£‚…”MñàÑvˆÊÄ6ÎÇž.Ls Õh°^ DF ¤œVO í4opÜú<«K ª¡iE›ž¾ dGnãº%­T7M…7SÃhpS&ÔôÐ&¦™’: gš4ÖúËe’4p #g ‰ טfÁÞx·Öu¶ô,ÙÒ¸¤¦q$ [׫³Û—8×ìÜÔ`¦ø²A|Ÿ«ûë´i‹SM>Uß’rKçt àÓ ¦âÊ™”&XIèiÏü%ÏèCnê6ÜOwI lÌÝiÁAC>×½ì$‚‰ &[ó'äw¼°”ܯåòÖììÁÏ8©!EPLkðo£%¶Z¤/gîÇXS„§|6,,ZêL’ZÄ­óœÚ~ îÈi7Õ‹¶ïíÌrΟÁ)¨Ær»&ZÀT°·AYZhSe⾚=êÃдKw¹b|³Á·Vm„õV3þX¥tgL¶ðoÄ·ñ¹ºˆƒ8-­c`',‡ê¦ë=vïºóçjÞä6ÎgúöÝxËU—öÂüǾ€¹Œf±“Óšª¡žØgLÒk¶TÑm÷N+½ “Ak4šÑJ™f ´O7šýÂb3Ò+8ÅèMÀtxÛŅÛnS® ”hЦ~„øËñkÜ¿†ùüÊc’˜é[ œ‹Æ`%µ¹‚ž°lÐÒÆçâz2MQ»‹B1IƒçIŽh i»b^š|%bÆÒ wnÛd’‰þI48r"ç?l¤È)‘w8­aG’·{Òšðæ·àÃd΂yYÜ`¥Jbn°įۅðñ_ Iµ N®Â“bL›?Ž6jx F„Û6!Þ ?á(i8€>KÒ„€™ªy_Íqà›ë¨-Fú2q' fmz±0iÆß«˜{ÒÕKgUÅð†öºñ¹Ê80‰VêÒš¢%Gœ%™eìô©Xë Ž2³Ð€ÞÈñvƒ5Œâ¡©ÉæPçÌÚ )=ð‹ø‚F“%༶Ð!Ä‘ ÅènAo¡¼ÈEÓ-ÈLí³.ÏI;ø'®Vx§,ükœ?rÄDäBj3ùÂÀ@ôHBè5%h¹Èvâõ˜*fÁ]1·„öÇ•Çf[™•”ÔÔR¸E,4ŽÀ¨°ì‡òHCZ„dWäYÔí¢9Ð ZD& šÅ0Lä OŠôÀUo›œžé¥µ5ä ;bh P4¢^Ì3¦ÍŒo‚.­\†Ñhô#?ò#_ôE_ô½ßû½›7oþO¡+}|âüçË¿üËù—ùäÉ“ŸܲêSøÀu?þøÊÁ|Á7ó7#A>|Ùf¿íÛ¾m~~þênpïz×»¾æk¾æ©§ž®E¡Ñ†2¾¶x%íŠÖDF“÷$ w'ü!$jè  Kü‰íHÏBÖr:Í–Ù§SÄœkãú¦‹&5‰Xkâ÷0%‰*ìŽ@šoÄ¿©÷VÁ3oÁìd¶aÛ8¼ ¯oVµ±?ƒÂjÁŸør óÆ+ˆö ݩԤãfÚYh4¯AÆúÏà Žçlʶ¨I’Ã÷Ð=ÎçþàþÓ?-â}ìcûê¯þêüãþÉõú¡Zcu>›õ:Ûœø?«vrå?l>?õS?uäÈ‘ ay©P1$œó@O–;·ÀM†Å@ÛË` {D[Ô׈dBí#YûJN™ÍaãNŽj«85ÁwÉ(kl­¶sDšÓ0¹Ôàx–WXÀ€ï† [¢qÌíÄ~‹*c ïEÎ~@}‘ a"–Ûo3u&-fÛ&¥#¢Îl*³†…lýYT<†ÍQšû­aŸ f½%I-INý&ÑX‚AŨûV§º­ÞjhCÑ Gn4q«,íUK¸vÁ!¹XƒüÇü¦oú&ä% yúôég?ûÙÿ¿K¿<ùä“/ùËìÇ~ìsUXR^õ¹Ï}î÷|êSŸzì±Çþöoÿ–=ôŸÿùŸ×nöó>ïó>ýéO_õÓÀŸüÉŸ¼ùÍoþ¿*W•jB[¥`g²•ö ¤ Sg¡Éø†Ë.cø}è4l …›èb¾‡É¸´`1N“AsxU0‹+¦Mx€Ëzä:Ú*üÔ¡f}Ì—WMá÷ت)â¦üçÎ-ð¶ ÿ¦â˜˜ã$‘f÷¤Ù–3 c‹Ñ UÈÍÜ †'  ™÷¢˜#È2l›Ì¶­·¦L',[óëâ˜óùÚ×¾ö/xÁÀ¤Ìÿ ;Ÿÿüç¿îu¯[ƒrþs…åúiiøòáøõ¯ýüÀlËKµÐªºûÄ"€~¬{a`šU– lòH [¨ éÀœ@§Z%c­Qñ‘ü±™[˜Š»Þ ¡.k½Mñâh”h’}‹O7Ý ]{°¢×ðî±>•ÇMCV•¬fät`‰¨g äHHã L[.´´¾]©GÄt@4\¾XØÂO¦‹ˆV%‚¸3Öǰä,m,Üh(|0®šÓm¤ÆèÜ=ià !H}E@ Öà7ó7ï¼ó΋Wë£ýè_üÅ_ü·~žóœçðç°Š·ÝvÛw|Çw|á~áþèª ^ Kòùä'?ùÒ—¾ôë¿þë¿äK¾äþàþíßþíŠûÛßçpwnÚ´imb¢oÜ9\Gºp–zÖ³žµö(Øn8±}é—~éŸýÙŸ ×Ïž=‹‘Óêñs`}ï{ßëõ|ä#ú§ÊÍßøßø†7¼axûª÷¯6x/ÚÉÅÍ®üüüÏÿ<ªÌ¥¸qEÖx˹Ô/µÛ‡ƒ F¤Aâ—~é—†?ÕIÑùâ¡ÿài=0‰Wæ ½+@•A"FŠ™‘[$Dex^˜{® ?ÝtÕ±vÚåpV€þA1m½n”èlgõâsg;ø+E’‚¹4Øžj’qÀ–ÎYˆ4ÁîM_᥆E„Ï-ûfÌøÖfKg8­ØóÐ.XÌ„6Έb¼q+°9§Lm­&Úò%U‰z°ºGO?EòäY¾ëåu>Ï;U|âŸàûßøFÎ^6ß¹ݾóï\cuVå² >WD ¿b ÎZ¿Œ\yó‡>ô!z²vß8[_{íµ_÷u_÷U_õUozÓ›.hdqqñ[¾å[n¹å–5výûÃ¥†°êÄ®‡‘WÝÓÖó~¤1«n¤LÞ¶Û 6¨WüÑ(£uù‹`l94êf!Â_›‘hU‘tvh¹1‰1&¨‹ÈÒ&e¦œÃ¶MÐgͰ[ļոrºK¦lÁh®*ûD}2Ù<òÓÍ3ôu"˜5;6 ô`qÇ 6@NX^±'Ü’=ÒàØ{…r(î™WŒ·ÅÌÓЄag(¡%Ö†ñNê¶t—s-,'R+CJ8ß¶Ûô%_¾†_qe-—1¬”7ÐâÊDù«¿ú«üôž÷¼çñ¯»îº\~çw~çÑGEÄkõã?þã«’×7Þø ¿ð ÜöÁ~2zÞóžwEÓ«™™HsÔ¼öÉò†nN–\‡æ¸xÙQp‹ü7^ýõ^‡š8§ýë¿þ+ÏþÑý‘×yð7~ã7žxâ îÿõ_ÿõáí—º³ñ’—¼ä×~í×h–žÐUy FZ¹@܃y–¹ºìœ÷¯³ÃkïkÃ̳kšúDc@êȉA˜™.¬_œëPcÐìZ•AËwVDù%ÕZ¡bñÇ_À#‚e¬¾bÙTv„÷}âQZ-`¢/i[X!§{BÐAÀSð2ZÄ(¾`µ¶»ø·Š:aý‘mÜo´}°»šÇÅ ìYp:†%¶þåA”šË_=13?£¢êˆ'G?MîäEÔþäOþäž={øòÛ¿ýÛX~÷w7'Œ]»°X®½:—ⲕŸgL —å¬g ,é'2æ§ú§×î6$ô³GyßÄ‹^ô¢•ÌÎÎÂ)LÎÚ »þýáRCXub×ÃÈ«îiëáY?P£åâu¥ó%g§Jsë…±Uƒœën/î†ÑâE×½ÀJ#a¦R^kB(¤/È/.rF´ºbÒ. èÆ!­pŒ g5Â\&gê<6ú>#cà-Cš£–q1´?}ˆ°ä•†*‰ÔäÅÈsQ¼³ÞpØF;-¶°ÎØs±EOR3³y™Œ37ãídXÂ̺v¸(h8×Ù8ÐÐ [ˆ ·QììAìÁ†¿ýæTtjÙÏÝ MÉ{‡5@ÃB»¹xiq‰=üðÃ~?qâ«ø¾÷½o qœg«®.ÚÓ;Þñ¿C@(\Wôø·û·ß|óÍPÕe]#_öe_•ÓÃáúàÞ[{§NZÞåOžD!½øtöó;7`£ö;®Ê +ï_çlÐìÊn¬Ú,S48«.n™sÆ0‡kÌùªs¸F‡×#,!›á@ÏGl”P1µ#BÎ.´O ÍÒåìE„‹Å8Å”A(Î[.°bƒx´¬¬bðZæÂ&áÀ‡L þF ”’L H vA‘BÂÓÀ¤p¥eÒS{®qíÅ}’ô4pq?¦'tmQþùSü±´`yþµ’®\6ÁWS öÔÂ0¥oyË[~ÿ÷_2FB°¾|çÊ­·ÞzYa¹*—]êsE”pYÎz>Kƒþå_þeí¾}ë·~ëÅÑ <‹ …•V>~)†]ÿþp©IXub×ÃÈ«îiëçYkrˆ¶ŸRö»'‰Q³4gì*-´Øoíâø„ÊH=ز7PM„E îîÝa Á8Gжksãáì…Ù ^÷Ûïâu\”ñ¤riY=K X I„ ³­”hQO÷LÅ0{vQD… zâ,S$8“‰ÆVN\ܹªÍ6³¸—@ÆÐóú‚Å„í·X;O‰PjÕ‘B‘aª~ÐR|Hëõ˜ò²œÙ]—l*{¦KltëŸóKu¦eÃò;ºóz„%K³Òg ñ#B¨)ˆ¶ [ãI k¨=(Íý‚nE?Giã?Ø^¬,¡>!r~‚½›Iü Å5«ÀJÉ6.Dµª4 s!¢,ya¾–%#´AitM ѳË%Ï,vÁ‹h_Ç(ðj“–jJŒÏŽÍìG˜¡„F×N¨Nñ™ákø¤b¸^ó—~ 7ËŠ“ŽüÐ`ùì»sËLC àY­d¢¨ó/“cݘ•“ü+¿ò+?÷s?§›#!ŽÙpý›øÌòŒ)áŠö‡õû,q× >ËKõíR'KÈþ{¾ç{8_®ìÞ¥N–ëÅ:'aeÇ.ËÈ«îiëÜ'ù@¥kóŠÖ[Öp-¸Ý1øªCpŠälèä‡U#jŠç´Òƒ¬:/ìrr~2þèAR0±v( ¹Mç(Ï&NçÜ’® áÇ-$ž8ÓÖ@„Ñ—„dÃqaR^ͳj¸»?γ)¶ :°äB$s¤å&KÖé¿´1/HEÙ¢ÓÁÏ*àØ CÚE£˜øÕ¢%p 4è‡5»åLv"¶‚ιMÌ{«+Xù…ŸÄ3UÜú|´?¬IDÃŽÇã ¢aWý±Â¿øÅ/^›\p¹¶P>7ÝtOA@èYØð\ÑãØšŽ;F—vïÞ=œœž°\cøÞÛ×ñ±çì¹¹9ü „Ї¡5|´ƒFOS|®_êþuΛ ®»±ê þæoþfÕhXΔHJ:ÀÉcýs~©sjÁƒeéÝï~7^™‹w‡ Fd4,á¸ÃŸ">?çüwkœY¥\DÖÚ*ÕW7šo ŠÄ僉\–cã'왞A­ÈFX[F­¦ÂmÐörqPª5lG¼V‹á¤Àò‘ƒV?0×THk쵊ÜÈa–œ³9g¨§Ô彜[A3•ÿ;ÂÞA ¼Ž-`ÇŽclÊûñza}ÊS&oÑTk¥_ÓÉ·ºÌȵ0¥$äyðwúf‰´•“¼uëV–@m ‡ß·mÛvYöY°¼RJ¸àëÜÖ²$`çû¿ÿû×îÇGÔ¤ rô…/|áÊFÿ¾ïû>Bˆ×fØuî—e‡ þ\#¯º§]Šg/f7‘Ý„Ô7‚ÆèV«ëÅ‹,Ø3eBð_¾úe¦5[ö@!bð wªø°¬Šejáß ¾°„xJ¾T ¦RV£^å@¨Y¢ÒzÝVò²fŸ˜!0 À®ô–¡D³6/ƒþLP§èˆ†ñÖà™0$fˆWãC§-ci$ËFŠÉQÆã~ÞjÑZ~Åá¿Y1JÍ”g­)a5sãú´n%†¾Ê=ƒíOÔ6Ó¼T‹ßZQ+èšÝ;V.A?üÃ?L¸ÚÙpÊ\'Æ—ËÆ‰½æ5¯Áë0üÉná6F'ží+z½ÒG¿#Û AþŒ…å£ TÝhXôƒáú?üÃ?|÷w7ïýÎïüNK^‡|ZZZZ»o8ï‰ë!ÁÚ36xekøü·„̬Á°ëÜ.Ëü¹F^uO»Ï^0Û|¬œaÆôoù#«d‹Ýs<•‰sÖÒN Ô\‚T[ËÖú0° '®é&MzxH>U ª2šëeyZ¡,Fš»g1¥$uä‰wX‹Ð¢³–H³x3 "oxÕK‘ÁæDéI…7‘D·UM&ø Šg€=€Z8ÞêHÜ$”¥@!–DHQ±'ÁŸ&A‹Åee¢ù–ªQÕU}æ„jU†aH½¸<–;Æú̯Ó-⪡9ÅSz6ewàqÉ!xz-©)¸õaù_ðóïI„Bデÿ#{ ‚Ÿ=Ÿ‹|¬À“XÇ Â†N×/(mܰ«€,ˆ‹ç¢Î ³J„ §ížLÛ&bYØ%Ьû‚UÆà A,y#R“+ÜIøbUND •±iV² Þb,+AwÖL‡þ UÅ’!†\U·`1ZñJ)âaQºåO¸ÑS&wÆÖznÉ2#ûJÒ"Ú-M^„!M¸ j·<{ÃDSåk©ØÆ²ÔÀZ¸†þΜBèísJ‚4~ÕJügȾAƒPð–É7äG? }Ð7“@§£‰N0éÙ4MÞûs2¡¨„¦ Y_6ÁJ=•Zšqƒ–®ÊçsŒaM/æ?ˆ_Ö€ºÐ!N«â ÀA a;´ËÒžÁ:nH)´j¸_ ExÇêôP)䪭! _v—ÂÃÛ›C ÿ=-—«>JÌ¥æ½(šò²ñkÈ=&Üi„ âÜ@o'à_¯Ý&E·¹¯©`ð’Õ`º~N£òDNg EÒhˆä{´ò5oU¤[ºHèû —HX]ÍSâìÙ3´uzOo4º¦ðˆ0Ð #l½¤±@GL#T}CX^é#Xc°±`ùÃ?üCÍbŸ•ƒÚÙú ŸÒ`$cÜ‘"cñ/¬bØŽIcŸc +4¹F”­™¢SAfìêP2ôCŠ3§ÉÏj;4\ÜÀ Úúġ MrB}ô+bZ½©4Y‚Ô‡°äÊL‹pêƒS–³3ðkÖ]=‹¢+ÅHs`Ö&‚UYÅV~å¥<‚ÑeÂw@ëꪆÎà,v27í‚Ux1Œ7®×Ú–ŒALì¨ :‚ÁL)5dÀ|O1D0s‰Æ+iªeGE¼|%[×yµÙ) ®6!ÆŠö]º—0ßê¼´ñ¹ºÈ†A¥ƒh!?>³#fÓ¥LCU-Ù!ÓêÀ˜ê¹3Œ°wZdœÔ…^؃³T\jþ΋օßbñdcÅy„·/À´ (ôfÙþ6„«<Ï ü€»vD;p¨)bÜ©âli07”Òš»3â¶x]¯}Ó_YG~†œèsK1U5öþŸ/Cç:#zÅkn`w0þÂ`Bqné!¿¶(îÖ€6ôHªÏÉÌÔ |–Ÿáè`ŸÄ„ÇS˜zVˆPÌ)­‰¨¡Üc½) ã˜÷ŒÿôJZT’“2K‰»\ŸªA3¼Å“¢ál-=‰ê50è6‰O¤h|ð¢Õ“}@Ï ø íðR8šÀ¢ Dœ Ê)\W÷yÃ3æzdTk4dBUòYŠ«n­°™$ ?8§p]³ ²~ƒVQTÇ-`Œ–™¨ÑsK<c ”·³À#桤âb„¹¬=„·Î–¦ÄàEIÓ>•0TBtÒí£®'Bä~Ä6ê&GF¤,¤îWû6PgXŒA™Ggt|˜÷¨”űI&°'oÃÝY‡¾úüþ ZÚø\ülb<»h6³n(_ä,U@kàÀØftö úÏž)¨ËHš1˜¥<Œ;6Gž-ì‘Ñ,I MË{ëg~7R%Ï> ¡$Úï4VHÔùzÍNÑ Ãª)¦öÜÂ8Ea<=ÆVw†h—?qøëb¡Qà,È!TŸ"#Qì SÂÍ:6Ë3Þn‰2ú‡¶*,Š3³@SÈT¦IvÁæ›e_` ÀÄLÎ%m¢ä"­i‡ÿ2)MÍÎÜ ¾ÏÕý ¨A̪ƒ:ö`lñN¡=“©a =›þ,4 4oR?ôl¤7bRDŽ'98FËcQQiP œƒøRÚÌÍGÂÕ‰kíùO5afiXä1Û„~ 9Q¯*<’ÐAŠB·”®nH$ßàÈ0ŠE–dD:eyötct‹pÑ‚$…`«²r­Q…°­ÕK‚dýôI6;øš^ñ÷óç-m|.þ@ºf$³·cY„hùnYHÑD©d7Þ·ÓD,ë+ }¥t„2¨ÉfîAÿyÜJÎzåù1¹Â;P)÷ýó^îT+>[`䩎„eÝOô€g¹8Aîz+-p†œgC-ÇRqÌé /@\!¨ b0µ½l©tÝoižÔ‰%²‘xqd ßj·¢óñnzlÎ%¬‡e³²° kÄ[aQ3o¸? >úÚ:sÇ­†Ï¶ä:½ÙgãsÕ?B¸YÏU$IˆÜR¬æS[·=.EP%êýÄ¡]5¥º…òyÆ4Ù©Låß"Om1ô’NÈÏâÈ0ÝŸB³&H¯'9h9 Šï ûèc¼mnâ-Öä5Ô¯­üCkH2ºMİy…µ£}íÃÖíS-H1Îò»QxÚxµÊ5}£'"° $-Þ´f!kíé¯a+„ÁMÄÜ ¥ÏÅ|Pš%kœèSZââtAÅÕº´pxƒ0ŽPìÖáP/D.`¿1v]²L•Ù#e^•¼ÖÙ§ß{„Ü¡5«´ò:˜ RW©åŠÆT.ÒlrTîÝÁKáÄlNÔ[ò,Eú1FÎmž0€ð¦<ó 9”*¼Ö$¢Óˆ‰ã4üë†àkŸñ ÿñÃÔjz£lç~,Q܉”5ZÏ h ti¹Èû¡À} JB#bWéGÇ˜Ž”É>·D[ s3÷X#-ƒ­ àú€…J€1£“L!e9™5®èõUa–9ì¢xÎ@`³s¹­pÑ]#(¸>P\{îN:ãŒi‚¶è¨hÞË¿ÖfƒX37âdéžœg?¥KÌR‚/G4ãÛÒ^~·“A¡¼3RþK)ð¦ ç …ÁF«zìˆÚ÷³jç+4ÅÌä0F“ГAnIhìÓ-d‘Žõ$Á\¹4ÚÞõ£Šg¡–Çè¤: ÁÀ®„Ÿ°·|)´Ì›K`¶¢ãÓ͸2 TÜ #Ó$NWÒ@TL8+B'YµÀKÍïÆµ€<€vÕ15¿çÜ’îF–I÷³ÊT«íOçh-©Ón)š?ëeI¬äû>ú€<̆ÅãäFE-èDgþiÊ0WKViáarè³u+éÿtý…Ì#7Däqú AÒ%­=Õ^Gs-¼¥®É=,œu\ƒÝ©Þb\'}íì2%°ÜôÐ4 R2‹ ѳÖ4§üˆEg;Ÿ¼æ?èÙœñds¡<œ2æŸÑˆÆØ™’x?GXЬ–ÕñºÑC°„aày@ߊ]e®h“nÐU¾ó%9æ%­Ø¢Ó”Ñ=úÀé†Ö/Á·¿yPl›KJã¦ðF8Z¤Ù¦¨ÑÛqé_Aú¯¸ñYnµtTÊ¢0™¬£•¡ ^Ñ$,çÂÔt#¿Ø.H®{â£ïb˜R '™¯÷ídȈóŒâOtÒ’…qË ¸ Tš•zôc¢>1-,+ÅqŽÓH1p'ÓËœóÔén4é³1BbPÈ–AfJ + EéF d*  õ9‚·èÛóÁqÑ-èÆT}Š>+þª—.6³Egãqƒ½ÅtԸ´c>‘ü8‰±dìKVü¨îAm“ L›A‚¬Ã‚u„_—E%Ýfe r¤ž‚‘-M#,„ÄëXhIÚ²z̃ÖMË»B¬;7Ó†OÞË»hÙO ~Ac‰¤%KjúvZÀÓah¢µ Ã\Y3=-¦uÔ˜:ú§­Ydvþ4Ž{h…Ÿ®eFÜ鸞G*?x%-Ô @o ’Bª1ìWfкnõ]:Ç+<{„e¬™Jn`$âDKmV5²îtNÀR~_á=¬Oµ&S¡`™!zÚ¤,$K'[ð3Äw¼õâSÞ¯X$â°Ð+뼤ÏÕô¡æD<7ˆ™{ì$½‚Ùx;Doù_ˆ€9ÒÐ:JhÖi‚þØRµì¡0|î•%¦%¸ËÀfL¾²GוœÏb„ ´£òNÁЇX`÷«)Y(ÑÝV°_æÄÍ…‰¥{lOÊn‹¿½yNZ"·–R:1,x‡v™ {Xþ…;™yV“áK'¼]Èÿ¼nÈÐL® y’“9¼ËKÆÅZÐ[® §ï½±™@S¬Nw÷daÉ x»^ ;ÃêXÐÇ„ýªhû‚SUX ×ÝsÔh'YÂí*Ýã¥lôbˆHð4"€ª@ntÒ*²Ê`&)†üd•잌ä>³hMVÆ¢2¯yT¿C P<ÚÄ@ñØ:$âuø øÈÓ¡ÙcZŠÜ—«qެÒ`$9BÃJSî„Õ ä±-sê¿rö -Kºïx 5¤‚Ùe<æŽú+Ý0 = øA-f—¸h]{Õ²„ hÌÈÛ™fT3X†l›©»´c3ÝP$ÓˆêƒsÙú*¦Ä…ö(o¸‚ ý7ü>¨£iÜg¬_F;Â*© ÁƒtCt\‹C]day+is¿Ž/Ø= CϤñ'(» ¹¼í¸Š‚ÇyfѺ‰ÎÓëÕöÞü1Él€I™/J(ß1à‰£ß*xÂ|aà*+l ¸«5]¨›ÒyvE bd¼;˜hž%xÜÌŸ^yýµ×¿h¦*›‰:{‹QÓìE³Í©àŠ^yCºÜ`C=«ñˆQ tŒ69! Š´‘@í ig\ˆ ȶIUçێ†^ñ†„ôÉlwî`´é Ï“¢ÐtÅL¿9ÅÏçîdQ¬«¥•ÕŽâ*+tee8t›©¦Ÿ9Ô5ö;Û€s ¹Ó 3–ƒ©ëXn‰¼¼™ü`¶«óÍ5áŠ1 §NSqd¼ý.Õ_œ>X;ÁÒêü—Ú`TH“Žò£UõSGfÏ¢÷ íLkƒyc6îˆÙ÷df•ƒèSGê‰tIºelÕâMÕJl9—g"±Ø¹BÁUÁ˜zO9"V{Ò‹Ë='Í+PUO^þÊë-­bl±z±ÑFªH¼‘YH•–ò$«K—h?"mï4“èd™ˆm´!ë1Yk€‚Ö›¨'"3™N ÑáÖlºÅ¼R¾‹ŽÄn…+Ȳõ©eÑ&½>æÞÁ h¦–¿Öt] `„ÜC»<ÀQtCo1wZÝÍÔš—½âzvdLÂa¢ÌOeRì­¢N±°î¬a¡>ׇRÞø™aóâÍL—‡ ªVO‡—øA¥KLxa˹Ã*QâN¯Š­kÁ2°qXs…*8lg‚¯òREs•ŒÀCAð§ÃÙ¤jœ0[ÝŽ×vÊ”rEƒ÷Ó¬f•n˜ 6ƒ½¹È|Zf™G¸º—ƒ_ù—ÙO‹<• Grò°H€TÁ¯¼”]ÃXtÚdz™4¬¼‹…f2ù‰a&Ö¦˜a9š`¾ÞP#à!BYL?¥U¬™Rêm9™¼™'-ìͯÀ9•¹ZðþeDÖ¦%XAhY’U¿{2GêaÀˆá§R…  ÿVî³l!¤'r?¯f (2Šøw²òRà1È#èеl ?Æ3­Ð+Ä ˜Ò|°mµa"jßé-3À¯â×»M3±¶Ð˜µ¯(YaØhg’HÈ"D LÁ[DÊe?åíØ½­ÜÀVàB0-Ì-“ÏŸˆ(†ih%ï}ñ˯%¤ƒù4á‹3-5h »Zˆi©Å5›>` (G¼7î‰,iª:]ì4%÷L1 v-ö:ÿfëÀc‡qö ôġG Ã[Üß “!XÄm1.ŒU‹²ÛÄ'õ€ù’47ë ªTOÉè(\‰½g´];Š|Áº—Ãé•ÉH}wiãbØâ,0ƒçC÷ÐI¨‘‰µ}–[—Ößem=‹Ëɽ;¸Î‚ZRôóˆ‰ú ݲ"¶wnµš¬ö*O#C<)}óH nÍ òÓ[@’}îZÆ¡–ñ:wËàÇÖ03¡0P¨ðLbç ÄDó°»¹Õ›éSl½…œl Ü#iš%Æð´°‰‡Ç$j±dýBm]ËèP$Ùœ]4-TFŠºÚÊDžÄ³­×1Ã#|§ýDÌïžT€¬[;z«ãO†Iáä¡{Ð:÷óÆD-öT$5¬2ÝÝÙ$Q‹œp?ëDã©ÆRQ?ëRTˆ-ÀpI$q†GÓ“àVîHË{ Äj hÑ(¹Ì;ßyEÜ´…e© î°Ž[~ezZ|rž%aÚYrϦPÚZ¼½Í5´çùúÒD8KêÒ¶Ûà ±¼ÅÚõÌj޵|H ¶Å F7È·åJrÛŽášAѾÆXVDÄA¦Ú@#-Ù2ô"èÕcPbªý±dJ õh:^õÐ=&ùM6ÀD9ÊÇìÑIæò8eȸa2LN3ö["#’µ‡¡cCCCßX3Ù”y•Cs‚í ùˆ§Õ"Ä`– n;ÑZ•òØü`m}ŠaHTu,„u"ÐùÁöôÆmzûrâm×0 O²èâ˜[ÕÙ@qže›Ð#hm þîÝ!$s.N:sÂ>˜¡adë ]½)©º'ºF&U¦‡´¬µŠGŒ3dº4lˆrÀðé÷Clf†ÄÖwf‘ÉaqÝž¨S4e¢@´nO¹Ñs³y,1Šœ[2ŽŸ©†Á‘¸üªt±EÿŽj%· ’ Ò£ÍI…8ºøY‹o;n¯p oÂE S•á¬Dô0ÖˆÙ;bÇ:´Ë³š†%ü;UÉÎ=¦Œ˜[XšDÙY_–[ËŠ¡’&9¸‰šämý 6V”ò5GÅaq÷¬³ÁOŒÂÅ¥eÕ/Dfx$fM©‚œl*Žð„ÖVÔ¶o8‰˜5ÕÆìÉÇŸâî¡á„/žR¸ê” ëX(kMÀ_¨Ÿ[ß¹ñ5nüÄãJ1äøÎœðRh>ÈãgYwñšFÍ2É@hÝùÜÌ=,Dv€›YAhŒ}Ϩo«2jF£Ú4c˜§®1Å›v uY r‰¢J›žJ=,1í‚ÛiõQj 48Øø_*J4°Û=áç’ñ|÷¬.vºÊ :’xJ/†ÇªSõûœîAQÊq_0ˆHÕX„‚ú‰ðg ]r65w@ú‡¨›¯+Õ4†¤ñv³;Ù”4´“"Û߯Ø<ò³GXT%p· í©™k®úˆ~A *£>­Î{ùÉÍó²µÇ,:  ªÀô: dÂh£bW)æ]lmP†•† ‘7¶hp·0 ,Þ¨&{ºÇYÐTk§[/‘ìÍÛ™‘ìéBNÍ%° OŸ”£Õ% ,‹þú ­Oˆ¢˜ÑÎÛ áœT÷\Ú ¥æPRŸ™»§ÕÍRP­±ÎŒˆE忯FyiÜã¥,pp½Ÿ:i%]Œñuƒ`N¼ÂTô€ V“@)Ö/«]N§Ý@/ÆñÀÄê‹Ð+À#J‰® æÙ:ŠY‰ììhF~ËuÚf¯9õŠCm†kª¹›aÆßÃ>¸°Gа¯ˆÝ“ÆgzJà(£ŠÐvŸZ§¾R–†UË&ûôÉõ„Ŧ}ïŽþ“Ç´ÜêNVî²Õò/]‚Ú—3 ¯Åã$=×êwžTÓ¥5Î{DïM›¼q@ÜÌlˆ¥.PNWgVżålÚ{fIkÞtè’fjþ¥K¯ºérv¿öR(Y»}üõèÏÖ´À³.óãDÔ "iÝåCö¹'EôÎ.Ê즻Alô¼©_#–Œ{ "h•)ÅE§‡j‡µ¡c…ÔèÑW´|ðv ñæÜ·“9r6ñú1Ë›/¥ÕÄX#«FðÒÂðŽØuÁÂ}PŽNnÈ I=&&³f¿+޼`i–=Iφˆ,Ømtd;#ª+˓҂vX ~bñAF›¹o§áŒH7- Iu0eºogâ¼Î-ñ1’<YÂt¾3P»©áê…ر™np3Oé6£Kê0zjßÏ”s9ûÞ»ÃIÐPŒ~QÄrE¸lË3ÿ 'ê~“‚Ëßc“èjr:8 *Ý4¼‘Û0>G'®ÒÒéUµOá&hœåc‹€ïØ´·auPùæ_z j󔢂ìÜ‚=ƒ›u€«êT¢óðSÊêЬÞî¡}AÏEgŒ@Ù¹†ÒL͞؈¦[®qªï¤0¥-&5)†é˜<Í+_$B® dêä!|‡>W­ªZ1îQ°Uv6mxŠ0.òe‚ÿáÃ`ÌÝ)h¢áŠUè+ã§g…Ôñ«Ö¡äM·Ã]\áOè#¥¡ â ññ§¥;Eäjøûè@a#3XHÄêÐîABîZW…”ÕÔ` i‘NÕ q{äu“ “tá¯ÿËëôŸ³ºbFè ˜l ¯¦W˜qµ*³Š\KùrD°É2(¾#Sõ]ÏuÖ‚ X0ê´èBœðìlm°–$dàl+¦ï@@ÌÃõD¨Ñ†¦L‰€X0ý Zó¾Ù¸°æ:¿öe«v3Íu†Ñs:ÉÛ¥ªÆ‹ kHŽŽkwžW_÷²kx¶‰dÅÙÐ-Þ-û¹Ïί{oá̉29»ïØ<>_éWëJaq]/ì‰ ´ààÉ—züˆš—§¦W,˜A«…÷´-«Áð'‡Áè¤ ÅuîwCTŽêL§¥éޱÖb¢*tõù"º£NšÒï ¨o¥HNOéoKìC3š™VŠÂjDgøÂŠ3ÿæM2L-º*gvÏU0ˆ âd¤tÌí@T^Í,1'œW¸¢â]L—G6_±Æ€V8aYÝ0Ú9áÁô¡±âôḬ́¦ˆÿ‚êAn11=h1#¡(Sžz™uÈñ«çWú€k@}‹/f‚2?¼Eç´­è¥FŠvB‡é!½µ&C†M XÞ¥YÙcÑ…¾ó¸Óx†{ÐQØÓáæY?±‘_*ŒL¡«¼Æ5GÁ2PuönB™îžm—ɬ–”gT/RÚìþ]ð”¬ç–œ?Àiiñr¡dšµZ§Ö&æP[—i£ü˦ÓH!õ™p,ɼW‡ë¸Š™ZŘyƒüçê Ñ>Ûò“AΞ¥`y–ŒتðK.ïržOå‰ R¬g‰yl:›u 5ÝÍÖyFÏé'LJ'Y”Ĥ´BpRw>xžª0ëÚ„TÌ;Ò4¨gGK©v UpkÚ,Ç»ÁÑEäO½tôG@Çq=ñ–Á±äË(@â„Ó7f€“ƒ!ß–éðü£VDõVã:¬ÙÉ£ªKÉO†5(2ÜÑ$+š«[zâGs ”…šy‘è¡zj þŠ9äì"´Ç«y©!{Ú´!­dKœÓOsñ°t¨Ó®¬!õdjÚ%5ê;ŸÐ™,î%=pfÙ¤,§žMííw%X®Þ/0“§ÐC銪) ÖeØ)ŒCQÍÔš!ôã´,µJhñMRä‹7Š­`x$ƒ± m¦ìeŒ9L°Y3ˆÝ-¥”ŽÒG?y2bï‹BqniºøR;¾!< ¹{6e†õ>b™M,£Mgy¾.OkÛåUmÔ†§é#Ð2‚M(]-ŸBÝ:“¬} ;k>G—‘2pí4>n¨š2ƒõ,èéÍÃM·õT«Ù&„Cbh ™wYà׺a¿–Õê£ÐÁ9³ti¹¸kûÌ,Êû?ùnŽSº7þg,z8CÐÃØKÏ׬àÃAam¹nß±Õúä®g¡žu Üip–Ñß̾RX›Ïà±Óå üM¬ú{§Sx$ѪÁŸìïֱʳ´W4T¦Ñ¡™õÝ )v:fž­ ’ˆŽÕœHÁ>`Ïd›,þ6– ¾¥[Ô 2ÌÁxã?ãèøÂòMž¬ßb 'HaÏ”ñMðœ‰A[«Œ>ZÚC½ßJ˜+æÇ‹ Ó`vgF—#æütû†% møƒöíx »Åxê?]ƒyÌV÷íô\«ÈQ°y'ãÀ+Á PϰÇ\&913„yËKk×ðn#½V '&3Æ’Æ‘™¸¢ë(±šÝµµ»²h 2OtTز[·9 Zç L„´&µ:O´ZÆ<^s“~¿wÇñžÅµ Ìµt<]2'Á\SÚiaX&Ù3¨E˜^6 4cƒfAãH0YmÕbO-2|˜/ Ÿ‰Ý7 5 ÏqJcü-abci«YØH7“Efø5‰Xªn šjðG[ÖΠñ8ÈÇšŽ%]ÅúwXkÕ÷rý>hª^¨_@2c»Ð2™hz£5 hÛÓ˜àäT°ˆ…6•|Ö§3z‚•âܩџ\•!ÁjÌèåu,+ûÔ§3À^KC‚EÞÌù›ÍÁJp¦sDm­Gp¡ZE|çUwR¨qÏ”˜áÎ$¶¦Jnë1|–Ø£'(TŠIsôàTe¿yL…{”Û¦4Æü°•LÞhƒññ¨)Ñ3aH’¢ËdϤÆЊ¥¢Ýîµ°™–08®ÙUIŒ4‡Á½Rg•1+Ñ[®_u72fÓ¢y*ö·VÊNÙúuÃ2õ´Ãu!‘ $QÒ@ß©T¿4?Ñ;;0(¼”Í+ûÈàÛïÉò=>w¢‘ëz%—c´’:’iFêƒêþN«+°‘Ѥ§*XMšÐ /%¾Ž1ºai®± ¦Ò¸Ä¬²¨“­ÍftFò^ ¨ÏãáÞ.’téÄ2“¤ÁÉ ÊráüwfE»š#cr€‰"º7ѸN¸Ù`¢¤Ÿºë’Ìtô ZžT­ó)ÞôÄ;¸m(sÁBèquÜÎ<°™¬ž®°ñ”sªƒÑZ4¼‚‰¥ó–rå_î§X+“ɾT¼V‰Íûëœç`duë­[ýx®ùÎ)âÓÀKw=ñÙæ4Òû¡}È!ƒ8æsyc>bß…ÃÌȆþó.7‘„˜¶4ÂÕø5äÖ®Ó>Fª¦<î7¹‚ÝV¤JK™À,ÀZ1½Ô>ÌÚÑa”Yú 'ϼ…ˆÛÖ3°ð–áT˜© ðfPV EYí„õ²Ú¼Ã’™ …*iäù Æ—KõÆd×h[z¥/\ë\¨ºµ ?î–,¨ -”Íw;w?d®Z‹ah€Ç>ëWÏŸÏÅ„•˜Ò–6ñ”X%4¨çIlO÷J:¼ wÐ\¦”az2f,L„Å;…‰Ûð­âºŽ0uÊÿ©&yÃDzÇ?ð©wsõJÙ¥nüi6ù{—!Êê%º»àŽPZ©ÑTƒŸY#·øýkæâ–ޤ¿{Ö“–z­‡ÅLì¶Û ÆØZšÆÄA\ ÝlÜïBa(Ø 0P—Ò”3Aã̯ã6 ¤tOQS¶ÐxL¸Š‰îîYSï¬Ôì[·¬á cл“,!¡Ð0Lï Ggb·;0+õò¯Öf-+¬aœÚwò'©¿´Æ™~²Ö]•!VâOC;áVÍoüçé6ý?º|àf+°ÜL\aø¼ÔGsèͪ>QºoHêÖÑÒ÷©ÊÕihßc±³çíg¼zB·“Åß­gÉ»EÅ4@CgÌPN]߃wÏZ*LÃP§ö\¢©¶ ™‚·<˜"Aw½Õð-¾›3d֚ġÞ”Ä(\gçT$ŽKƧ1<ƒ_f]«NÌýì,Œí×Y¶gJ2@ŸõBwaN8”ÄEzrG¯TÁwóüØßQËhPÀt)„à‘åݳ}ÐÊjag’놜ˆª£×MNÔšGZ e?=W9*D‡‚a¥ 0D»´×MP€Ñ%µarEþOæLc4*wlv‡5xj¦éG¤ôá÷|°Õ«#Ý`7¸@[½å-:ªÇÍ4âO#c¡l'gºAkÓ̬P`,çùÞõVÙØMƒJò6O#¹Ažš YM(ʹ ‰›H*>@Î(5ˆÝo†«ÇYO´z=­gø.·™ÛÛÇ2AíDv$,…ãr…9v¿ïJö¸ÍœqÉ•+ ý­±„þÀ·b`ÞʇڣèmPèšHJkì,úº z꤇ƒ…´ZÞ>ƒÅhÿxÃqéIl-5<0{™„Nä[A¼ÌCoè|ÎktptjgI3€U“ÐRÈ顉U9ýŸ=¶¥Ù;=¾õV,«ž–䈄óÌï69O­m»@ÐnVÝ ,{MÜð»l_B#±ö ›~¬©§”²ÚÓØ¡Dñ°˜ä¼3‹Æc\lïìôiÙ}M±7jV{”fms3˜=1YÂËÝy¬$ÃõòNœ¼Û½Ó œdJò“º>{Çte›Ö -O&ÔB`ÚXwM£&"NlÒvL—/.çYMSL¯Y^ÌC£±Ž+±šÀ 4H³ÉXx숩Ï&¤šÚoi R¦˜‹a­ÇmêFAœÙ»ê¡œiiq£l¸È«µYßÛ|'ëÞ@)/SýÉÐh%Š…á´C,gOí™J$óünqD¡±c\•õÍéY4‚šÆ‡0Y-_<ƒ­`Æìgµ¨{²·œvZ½ÅL×Íkô€‘¥! vúOß„Z¤ R“$x >xŽ—ÂŒVV6ðB»àòɤH#jÆdб M+CؽÀí¨$æ· ß‡dÒ\#¦Ÿ¡+F{N9Àf="¨²;ôøe ™ÆÖ'x¡'_“jE`D„¶ÅÐj¢®S_³àô<¨Ù„÷jä:2õX-]2$Ú¤ó©1TG¦ac¦ ªh. ?aRඤg=¼ mpÔÀ*¶™VU£õÆÜ < “ ÓK[.3HîGÚ£è€ñZLÝÆaÝB ª÷ؤ(ÆB›¼t¾…ìUÍÌ‹'ôÅP=×t \IþËö·E ¨Ð0, e ôÚ| ç™m(P ðÉit±fv$SŒ´<=ÕP7øh\‘o*´ÙŠjH,o÷Œg6éÞð D¯êÞ|O'¼B7¦ø!Z¬‡ïÜF·å%‹•Ñ`QU®¨ ''¡qþlG'YFÚR;®µ>uèS¨ n3ÇÀ4>Å9sk¶8ñh¼\4ª¯Y?. M³w˜ùªjƒ£wÐ/ÒòÃëâ;i‰yxPoÜog­Íô 2Ý5e5™:£±Tªr†£T)ê7ßä¶ÅmŒE,˜l@µë&ý¿1†…Ç×[õß@bþô,«45A·¥6Àùf¾òï5JœéÕ¯cØ,£ƒ–áÔÖ-,µAR4’àç{wÀPhLˆ”qm¼bÕ9¨£Èz)»s¨×j¾årióTwXîXǘál‚“Mé3}B7Ægs¾Öl-‚BÀE;c­ nÓºOἑvÔ& ŇfŒ62ܒ󀛤PPšÐ<¥hŠ´„0Oa©Æ…¥Yö=EÝR4«@{,!œDaÕKrª*š›¶ú*ôJzO·Ñóš·܃ ›¹—£pMk‰it!èÍ9'Á+3çdLW€ *€=²­Æ œC¸Gë«§ˉ°XzˆÌVgL¼aþ…oÓ!ÍÛºVVmcæŸx2L†ñdüǬ/«ÆuC%xk ™ÑaNn&,p,Ô²ˆ^õdÝUÚç\ÉŸIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qactiongroup-align.png0000644000076500000240000000673612536324501023250 0ustar philstaff00000000000000‰PNG  IHDRôÕW-_PLTEÿÿÿ÷÷÷ îîºíííïïïöööðððJJJäääââↆ†nnnÄÄÄ...”””¬¬¬ôôôòòò®®®ßßßÞÞÞ444vvvæææªªª111õõõ²²² ÚÚÚèèè¹¹¹¦¦¦ÀÀÀFFFKKKÜÜÜÕÕÕùùùVVV]]]óóó×××333ñññŠŠŠÁÁÁ///QQQ¤¤¤ááá999‹‹‹¸¸¸àààÑÑÑìììúúúååå···WWWøøøÆÆÆ¥¥¥………‚‚‚üüüççç;;;ëëëÒÒÒãããéééÅÅų³³¿¿¿ÝÝÝ***III~~~§§§«««±±±mmm ___‰‰‰ TTT'''lllqqqÛÛÛ€€€ûûû°°°===ÔÔÔÊÊÊ›››GGGxxxSSS£££ ÐÐÐkkkooo’’’"""‘‘‘¯¯¯666jjjdddCCCƒƒƒsssÍÍÍDDD‡‡‡###ÎÎ΢¢¢ØØØhhhwwwtttLLL}}}888&&&+++žžž™™™222```ÇÇÇœœœÓÓÓ———ŸŸŸrrr¨¨¨ýýýfff\\\YYY©©©$$$XXX¾¾¾HHH¼¼¼“““%%%[[[OOOÖÖÖ!!!|||^^^AAAˆˆˆ???„„„þþþBBB´´´{{{êêêMMMŽŽŽ,,,>>>yyyNNNiii:::zzzÈÈÈ­­­(((uuu<<<ÉÉÉ555UUU)))»»»aaaccc¡¡¡ ½½½EEEÙÙÙ<ˆ¹tRNS    P3i tIDATx^ìœel$W…g’,ÌîP&É®Îm233ó 333333C˜™™a™™™™™ÛÕ.Ÿn§œê­?~Gj·ëv=ë}zª–õéêv ät•Þ¯§[ºJrº ´‚¾¾O·ž½úö½é] ºw÷öM] úÆkzwo¥&ô’Bf :‰qXĺ_ºWßvèÂï1…:™ ;5ô-GBïÉþå71†‘á3/v„¾¡_{_ß§gô'˜vh”¼*¯9zrFãÄQc;‡BË·u„¾ö†~ï SwëEè• ¡á—" ~EA°`K}¤’ôz“ˆÝÐÏ_ÒOT™•œ !zämMQG膩{\Ó½OOBŸe]ÿ¦ü Ø"¹¡½²"ýœóçÚ Ý’E:Ș4¼ :”óëŽÐï½.L>ê(èù Ÿi‘3o§¥r:]&sPi7tfI4t:B‡ã{£#ô»Þwݵïu7BfxÒ‰7Ë‹@¦Ô£D‚Z%ra7töºvhþH"ÿ¬óq@/fL• TJA¤’,sPágšÐo¦çÅ &æ¤ TK®?WNF ÿ Çn·zsÆ&íÛ;engÐþ¿:‘á3-ÿx(}¨,3y‡þí½ÿ ýßÞ¸;øã—€“>1„ Ömˆºž)„7b]ÂhÐÂx ÚøoïCÛ­ ´‚VÐ ZA+h¿®LX€6RÀ#ûÈσžâË`œ­€Í ;WÀKŸ&žñCϯ€qº6‡6VÀ{Dš„SS+ÃîܤÖÖÜ4_MÉ8]›C+à{À C~>0á£2Ž?Z‡¬¯ÿd}ó?‡+`shcœ´/ToA$ÿBe:^9„g¾Ɖ ˜oVðà:—Ëæ«Ùäŗ[Ÿê²­`¬€XQÀ~ `ãq`Ê _ýE+ñ¢KÎãd XQÀÓþ àÌ[@S^hwÆI¤Ö¢j3¦üfÍ×®pº`E—=  ÚLøxJvîùsÈ8ŽYøÓŸþú7RÀÖ¡•îºÿ{;Ìþ*‰  ´‚VÐ ZAKׂ>üY úÿå7C?úø¶Ádè"П<ºüþö“ö¥iYŽrGAÔ‹€¬8±¬vÅ©e›€’çú3¯ý# ǵÐIÙÿ­ÌNÒ¡oº.+U™62ôÂ@ŽÌûоðëe`Ç÷Gþhì3üÈÍ'=è;ÀKuè²QÀd Rƒ¤ÖW&Pð00cYûG„89ÆÐ©—€o@G¼Û8íÚ_ÁÌÌ'd?rñIg%œàŒ6ŒÚIB'O@OúìŸÔ†‘;4mÝPcè-C.Œ{x ¡Sæº: òÛCŸ>˜þ`ƒ´ÖðÞ?ˆÐš¥òŒD¸õ–®&î«™“º·«AH÷-Z£$‚S£ ´‚VÐ º&o`^ :ÉSéâd… Ö CÓ'•ñîIKýÆDÉ›Y‰±K.n©Bhçà³ávªùƒwú ¡‡%²B»äî–*L¼²±ÊWÕ¸òóƒv?$m1·K.j©ª90zFµgñ·WôCzÅÌ.¹¨¥*¯x~•]5÷BÓÚÄ.¹¨¥jàìÑ> Ú7za€ÐôC„6±K.j©ÊÛ½¸í¤×.!4ý¡Mì’‹Zªj+)× ËK‹y¦é‡è†Lì’kZª0=X>Á7¡m ymtÁæ ˜;Kë¡N¼°ºØ@òÚé‚Í0wÖ­€›3ÖH^]°¹æÎãQÀˆ$VµÐ@òÚè‚Í0w—Ž„ ë $¯.Ø\sç°ÉËÛ<¡€Í%/oó€¡äµÁ+‰  ´‚VÐ ZA+h­°AG°§»€Y­#˜ñf0#ìvé`EsÌ£=·­¡ P7®Ú{KPÚÛ+š+`B· Jjþ; ,ßwhLuÝ`EsLÊÓ³šèñÉ¥¸ºë+š+`Ræ mI®ÆÕWê_Jpá`Esô 4TœûU,ô†×þýº+š+àºB[§ ð—''–÷§qÕàÏ¿pÛ`EsœPüvJ0y„O½|y“f\ ý»‚DVÔwXé.ùRÞ1;«á¸pçÖð‡'ã2àp%œîܺF§‘Ì»”Dp~´7¢ ´‚VÐ ZA+ÌxQÓ³ÿ}‡+`-0=«´'0Œá¨P5ÿêLÏj<*”Å1ižQÀô¬Æ£BY¬p¢ÖbAÓ³ eÑC ˜žÕxT(‹RÀô¬Æ£BYô¦g5Ê¢0D‹챘+`ûc°3£$‚‚VÐ ZA<uÒ ÚsQÐ ZA+è­ÓRŠf³ ±¿ˆÉ*ãˆÃ¡gV/HZ8ÄÚl•kOºÁŽsŸ£¡9ÚC¿#f•|7½é›IÀøûІd¥¹-)ÀUâ(è{ï8÷9Z×ÿ¼#z•|aFÖÛfû×ç~¨~äøª#à*qÖ3½?#eQ%½¾´¦ÿyGô*¹¬-ƒ–P`êÚØUâ4‰0ç¶™ôúÐÚ;ïˆ^%%À¸ 0yõ>i]9Ž«À!„ƼzýΠyWµôT`êÍ× OšÐxÒÛ iW&Ðë§Ì5†æÑ«d{VÖ‡€ìÏ$?$À³Œp¡c„ðe;tùê¢{RGÑëŸôE»tBóŽèU²<½ilP|gð–»(=rêÄ,Bs@¡ÝoNÄ€Cs@ˆK %3hg QAA+h­ ´‚VÐ ZA‹›°ˆï?k­A[WÅö+à´ê:ëÐà_w—NhÐå®Öo­_pð3‹º¦üµ¤ŠíWÀiÏÖérWë·Ö/8ø™E]SþZQŶ+`‘}ÜÚ.w¥Ð/8ø™E]SþZTÅö+`Ê]á½®°H,\mEÛ¯€)w…ôº, u0¡-©bû0å®ðôº,RÚUl]šrWxz]©ƒ mƒ*¶.¬y]q‚*¶mÍë̺*v†–ø½®Ø¤Š•DPÐÞŠ‚VÐÿ#Nn0 £ ŒKXNt`ÿõù­a||yô¼þÒ|ÑÌ\R¯Í:Ú”GζÚS ‚ÎËz@=HyfŒÎÚ`µ—×ʃÙc´‰‚jy­<|†ùî–Žn ˆ‚ã.†%ö_©ZÅM/™ s4SÍe¾o¾]rMüÐXê~¯/3(G›«Ûd¯äæf[hÙÏŽÝO6 GÉH  MÏ Úïê²ï‰IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qcalendarwidget-grid.png0000644000076500000240000002260112536324502023514 0ustar philstaff00000000000000‰PNG  IHDRQÆkb³ %HIDATxÚí XT×¹÷­ Þ ñVãc“Ô$Ï×6‘hEí9jÕ­Z??ƒ’&©õ«ZoIA[=—˜4ö4z0 ÇSbRÐSKCм£rPñrxÁ ß³ÞÅìqf`†½×è?Ïû0³÷h~Y³ÖoÞõî‘·Ó‘¬ý„@ ˆæ!ŽN­E'~áª+°ˆ6Kôê• ¥ƒ9ÁFðO>HŒ`ø\ ÑN:y‹è)¢‡ˆn"ºŠðÑE„§HŒ`øìKô›"|,dÚÝ$ÓG"…DÁFðÏ®D{‹èe!Sˬ´Q¤(Á>ðÙ•h_~"|­DÚÝ´µ‡DÁFð¯‰ú‹è'¢ ‘6f£(Áh;Ä‘Ñ|öþnw?gþ?ÜL¢vDêmÎF'‰VʦûÿwôÐÛ›ÈÃz÷¦ºçŸW‚Q›l]ºt¡œì¯š\Ë>yLžïÈ…Õ–qÔ8ì…Þã8`@üïfü×ßÌçr³›yN|uÄ|~oFº<ÇÆ(‰:2~ªIÔÙ÷»#%êªõ,e8)Ñ`“HL"õ3ÕH}̵ÑÇI¢FýPVuÒVª<_J_§ý…îÿh¬bõ¤7bæ4¹37ZžWE¢zeLŽ2þtÆ4É·j¥ùÜûïý³™í7kâÍçû›Õòÿ2Q{‡ªUi§áªõÜN‰~ËB¤þ¦ioS6ÚX}œ$úÐËKVUΉ6 ¨õ9íùÍß½Oõßþ‘\Ý3ƒèÆŸw´[¢¼¸»uëFyÙò|¾ø´åç³ÿ߬fùÊ¥óôî;Ë(((ˆ<==åÏw—/•ç­ÿÞë·+ËøÁšj‡ÕuäÜÿ\¾@ñq±"™ž~úiZñëwäù¶¾×ýaƒü»£Ä¢ÒÎýýßýˆzõêE}ûö¡áÃ_5Ÿÿñ„ñòµügÚ±:>VŽ/¿fðàgè÷>ÐE¢-½oŽŽ½Õ®¯ýí9†"3ìèLÔ‘õÌq{õªÆ5Û¹35ˆùp÷§Ó©²¸°ÉZ¶Œ6Jt…HŸÑß´­ïeÚÒ÷x¬$ÚЯ¯¤??º'duë½¢*«­³Èo|Ã!‰òßQyö4UoÝ,Ÿ×‹…Ø^‰=|PNÀ_Ì{[žŸ÷ó·ÈKLÞÒ[OH&?ëÍ7è|y‰üÉÏY¬¶ä\&X+?µÃê*‰~Ãj ­_»ò×\bBŸ+;C‹µ°Y6éè8ž‹ˆÿ¬·ØÖ]ª(§‹ÊäãŸLB³þïLùS|:_¾¶Ÿ˜üÚS¦…çg²|nœØ:äÊàÇzH´¥÷Í‘qÖ[¢<ŽÌ«ÇvÞ‘õÌqG¬“ëûöPå¹³tóý÷×®˜.ÊDŸ,‰ÞHÞNu"‹hòÉ#>áo­ÿ—¦júmM¢æ7ìB¹Mù:#Q~üÚ?L–`¡öìÙSnçmMÈÀÀÀ&BÐꀜ1Yÿ½Zõ¢`µµø\-Q«1´~VÇàÔ{ÍYÿù¿þe'}¾ãOò1‹çOŸüQ>þÿ~HGŸ4¨M!!ÁòÜWÿ}Ø|Ž_¯‡D[zßg½j¢ÚãSVYaGJÔ‘õÜ,.žkoïÞh{&Æ5±nýãZjÛ=9 }ú8%ѶÖU•hÖL±óè,·E¼•×&¦õ„ä ‹ŸkÛ÷Ëb‚ðs>ïì–O/‰jìÖÁÿßμ×s¢gË?¿|ÙzógoÈqãÌ’³Roš0~} ¿æõÙ³ÚÄ¡½†ÇW;ǯÞ5QësFHTÚn[ùZZÏ_§~Nµ/ÿ€Š9ÀIŽY¶Fh;&Ƶƒ™rðvíÚ|@MbâlSo‰ZÖîx‹nï5O8œ‰ê-QK¹s6eý:Îôø9×|]ñ^oÝ’ ÿ¾W_ £AÒ~4Æ|mòä‰2£Ÿ4éÇò5oÞÔ&#3ÑÖ$ÚÚ8? mi=k[þêm‰rÇXY^âÐz†DíDí°W¨úß>’_¨JõÇÿ&ïþ˜Ñæ×Ô‹#=ñcª,-¦»3g"QG^óË_ηY}gùRC%ªI'IŒa¹Ùb ­_÷›Õqòù´ŸL•[h®£}*¶g?9©÷º¸(OfZÖÈ7d´k›6š³6ÞŸ.<Õ&ëš(ÿy½j¢-sdœg‰:²žùFŸûz矩²¤ˆjÞˆi¶Ve–*ž_3•t Ñ–¾5ŠêÉO*y§N¤ý÷Äâ© Ã\gùüSy§]¬F)T­­¢D¹N6ÿ?§)Þþ/[ºØæÝy=%š"Æk”,4^èˆ1´õº÷þåé;ß"¿Ë[îQ?)æì{=ô»ß5ËÒR”,F¾9Çמ{îÙfξƒÏ5hþâLwÇï.QGÇùq•¨CëùÓO­gñþñ¶ßz­ÞŽ]AŸz wçñ/mÀ>ðð/– Q0‚|àƒD±øÁ>ðA¢Xü`„À‰bàÁˆE>H#Á>HŒ`ø Q,~0BàƒD1ð`„À‰baŒàŸÓåŸxŒ3QÕ0>Œà{üù QL0‚|($ Fð…DÁ €…D!(0‚…D!(0‚|(&Á¾ÇF¢Üb!22œºvíJ¾¾¾4uÊk²G£×õèõë×)''‡öíÛG¤ÂÂBª­­5_¯©©‘×÷ïß/ƒó9='GkŒuuu”ŸŸ/ùøzYY™îøÚµktòäIÉxàÀÉsÿþý&¯9{ö¬¼ÆQZZª$ãÞ½{Í¡‚,;ª&©ôôt=z´ì¬êççG³fÍ¢ªª*u$º{7QD·éÝ›hÚ4¢‹ÝK¢#"#è“íÛd­ÂüÙ?=""ÜáëzH”åÄ‹«¾¾^ŠéÌ™3”m¾~ìØ1)%?æszNŽÖ ÌbåàÇ—/_Ö•‘yxñ1gyy9?~Ü|ýÒ¥Kòùƒ¤¸ø1ŸS‰ÑZ¦*eR*Jt̘1”––FwîÜ¡ÊÊJš?>EEE©#ÑQ£ˆví"ª®&ºu‹(>žhØ0÷ÞÎspnæìu=¶ó¼¸8SÑ~ÜÐÐ`~Î-¯19¬9e1h‹ôĉ†2ZËê믿6?çǪ1B¢í;x‡Æ»Je·ówï’H›Ý[¢ÜÚ5,l˜Ó×õ(g*¼åÓŽS§NÉŒEËDù1Ÿ3rrX3Ú’(oWbdÉŸ;wŽrssÍç˜Ç’‘«Æ‰¶ïHMM¥#F¨É'²eZ·ŽhÜ8÷•螌/(44„ÚïÔu=$zûöm:räH“š'o=>l®“ñcë:šž“Ãc^^™EÏ333 aÔÆ)++K|ðß5Ÿgž‡šŸócÕ!Qç.• 8Š‹‹Õã3µB¦~ýˆJJÜS¢©)ŸÑ€AôezšS×õè7¤ oqíĪi]åsFL{Œœy²HykÊbàl™™å1ƒåv]ÅLÔšuîàyj·¾¬D&ÊkfÍ¢ðp÷“h¦(Àßß® [»®‡D¯^½J‡j&'•j¢-1Z|S‰o6¡&ŠšhGó%''S`` ËÚá5QÕlu“h|\¬à¬™N]×C¢.\Ù½¯-©pw¾5F¾ïÞ=)®—¶ôÚŽbdió]ZÞ¦óø±m²¬Ûªpw¾5FH´mÇúõë)88XÎ?W.¿™3ùMçmgD‹¹¨f«›D-¿ãfegO;t]‰Z~/Ð2x»×X¾#ë=œ±pð¢ãszNŽÖYF¼}çLÌêH¶êjFΔùÃ…ëœÌ ‹EeyX~O”«Èhkœ”¨­õ¡Š¤ì­_®Û+!Ñ;ˆ†%òôl¬‡ÎžÍ“À=k¢øK¼M#øÀ§+$ŠÉFð…DÁ>ðA¢(!ðA¢(FðA¢(FðÅä#øÀ‰B¢`„À‰B¢$>H… À>ð¹B¢ü@ ÈDñ FðÛyHŒà$ ‰‚$ ‰BP`$ ‰br€|àƒD±øÁ>ðA¢(!ðA¢Ÿ&o§ÈÈpêÚµ+ùúúÒÔ)¯QQA®ùúü1‰†½ò2yyyQ¯^½hâÄ ”“ý•­ª" jlµªØä舖1¹+êØ±c©gÏžb(ƒ(11Qùq|ê©§”áãöãG¦=zÈàÇ*µ$æî³Ó¦M“ïoŸ>}hÕªUÆ¿¿Z{d[k‚[v/]JB6$„D´|yã9•%:"2‚>Ù¾ÊK‹©0?‡bæFSDD¸ùzxøpÚ–´•JŠ ©´¤ˆ–.ù}ï{ÿG ‰Î›×ØbUQ‰ªžðbç6º)))²i^EEÅÄÄ(©lذ/^¬ ß‹/¾(ÅIJâî¨+V¬ —^zI¾3fÐ믿Nׯ_—1kÖ,Úºu«|¶ÖȦMDÆ56­ã&‰¯¼B´y³{mçÏ•‘Y§½ëçËKdÖj¸D‹ŠH ±Å*$êôKJJr›í^mm- 4ˆ.^¼¨ ¯Üѵ[·nÊðy{{7iƒÍ">|¸ºeîÙóè9?~õU÷’hRâÇ6Ìæ5ÎVýîr5Êx‰ŽG¤ @Q‰öîÝ›ºtéBƒ¦µkך;ªÂØ¿É ·¢S§Nm²àT“(gPÑÑÑJñMœ8‘V¯^MÕÕÕ2‹‹£I“&)ÃÇÛxk‰rYNY‰r©ææÍGÏŸ’¼†ItOÆ"¹ ¡Ã‡öÛm­Ìu•£‡+ÑŒ ÞG54(+Qí`qæææÒÈ‘#iÁ‚J1zxxÈ­Þµk×Ì[=®Ÿ©8Ž â½2dˆËú§»Š³âóúàÇÜ[¾)S¦Ðܹs¥H9øCȓ۫*ÑέëÆ7ž'ª{H45å30 ˆ¾LO³û®‰._¶„^yùÆJô…EÚÒ›¡X-ïÊ•+.É\ÉÈ7h¬³Þþ©8Ž;vì  &(÷>ó¤•+W6©‰Ž3F¾ªª*šòòò¨®®ŽJKKiüøñ4gÎ¥·lÙ"™´­oí]±À\-´´41çÂ\:e\}w^«‰òc•îÎó{zþüyº{÷.¥¦¦Rpp0ñMYU%ºq£ûÝ·õ=<޲³§åõÍ éÙg¿#ë(\ö“©T— ‰:°ý:t¨7þZ¸p¡œÈª *66V¾¯*ßXâŒyçÎJJ´  @Ö»y»ÌwåGŒ!ϩ—`¾qE'Ož4~üZÚEòwB—,iÜÂs,[¦þ÷Dñ/–ôÙF|àÓ—Åä#øÀ‰B¢`ø QHŒø QH‚#ø QH‚#øÀ‰br€|àƒD!Q0BàƒD!Q $ ‰BP`ø\!Qþ‰@ d¢ø„#øÀ‡í<$ Fð…DÁ €…D!(0‚…D19À>ðA¢Xü`ø#‰~š¼"#Ãe____š:å5**Èmö:>÷t@€ü­÷†H´µ^J.êµÔFËÎÖGzzºljÆ¿ýÜÏÏOvÖä&b*1îÞ½›"""ä\àvÏÜùÓÙïŨ[]"T¿œœ;v¬l§Ìc˜˜˜¨¯D[Z«¶~ë½½Ét•èˆÈúdû6ÙS¾0?‡bæF‹…Þìus¢gËNŸ†IÔrÛs]‡OX[“—;@r¯ ;wîPee%ÍŸ?_¶kP‰qÔ¨Q´k×.Ù/èÖ­[²3ä0îw££vÌ›7Ö¬Ycˆ¤Zâë¤PÃD[,ÅÅÅJ)))TSSCcL&êÈXmØ@´x±{mçÏ•iÖÍ3ë`¦l§Ì>!Ñö-~íà ìlWH½¹'gΪ1r£5óA¢mããF„IIIjlç[«ÚZ¢AƒˆœØ *Ѥěuó5Š6|ø¾¹±$Ú~AqçEnj¦*#gÌëÖ­£qãÆ)ÇÈLšT”(—BºtéBƒ¦µk×R}}½2|Ü{ž™´æuÎ6'Ôe-oÝJ­~MÔ2öd|!>áCèð¡ýæsŸïø=ÿÜståÒyHÔE‚ÊÎΦÊ­•ŠŒZ=­_¿~TRR¢cFF†lSÜÐР¤DµƒÅ™››+;.X°@>ÙFùÚµktýúuY›çÚ·rå÷wÈ¢ÂB÷‘hjÊgrËþezZ“óÏ=÷¬©e‹eHÔùŵoß>¹=~ü¸Ò¢çš(×ÃÃÕb|á…¤HÛ»}ÖkÇqåÊêÅ­á{ê©§šdž,Roooõ$ºcÑ„ íZ#ºJ4aÓGàïßL -õ¥‡DÛ¾¸’““eúöTju[{óQÕ1¼zõª—*|Ço&Qõ$úÒKDYYî!Ñø¸X¹°³d:ôzd¢ÎMÞõë×Spp°Ø¶ûïï(Æ™3gRAAÕÕÕÑåË—iÑ¢EJ×mUÌD§OŸNyyyr KKKiüøñ4gÎeø¶lÙ"yX¤¼µç›MJI4-(,¬ÝkD7‰Úûd/;{Z-‰ÚúþX[®ë09ZÊìóíÛ·•aÜ!¶PC‡%OOOY={¶Ì¤TG$êèrr²páB™Ñ«4~±±±Ô§Oãn,µ¶VE¶L;wºDñ/–:àŒø7à3œÅä#øÀ‰B¢`ø QHŒø QH‚#ø QH‚#øÀ‰br€|àƒD!Q0BàƒD!Q $ ‰BP`ø\!Qþ‰@ d¢ø„#øÀ‡í<$ Fð…DÁ €…D!(0‚…D19À>ðA¢Xü`ø#‰~š¼"#Ãe/___š:å5**Èmñ7ßþ›í­îš9z4QÁ è¤ÙÒob¿qã†ìªØ³gOù[ÅW­Z¥ûNOOC3Zö’÷ó󓫪ªÌ×>|HK—.•Õx.,_¾\žS‰±µq6šÏ~#ùvïÞMr½skgž“ìëî$`ãú| ‘­ñásAAíêP¡›DGDFÐ'Û·Qyi1æçPÌÜh1Èá.i¢[¥_$b) Q·:X±¢±Ñ•AŸ°¶7÷±á~6ÜLkU»•ûjëÈ8fÌJKK“=å+++iþüùe¾¾iÓ&6l˜ì¯téÒ%zå•WhóæÍJ1¶6ÎFóµ…ß¾Q£FÑ®]»¨ººZvt—ï¹nëDðÉJ‚O’$²5>óæ­Y㵎segÈËË˽$Ê)ïßôüÞ½ÆO:…$Êmi­»,rçE#·R555MºyòbÚ³gù9?~õÕW•b4Z¢másäºÑ|Üÿ©›kÅeÛyÁGÖ|EED¡¡ çžMJü˜Â†5‘(oïºtñ¤ßþ6½ûÎ2º|ñœZ8‘hõj¯Ùh\ѤIJI”·ñÖu¦¹+'pjjj“nžÜÚ÷æÍ›æçœ­¨Æ¨šD[âs云|œ­®[·ŽÆgœDYó1OR’ýõ®²D÷d|!>Bèð¡ýÍ®±83÷|)2“0úÙ1jI”k:!!j¦üXlGU’è”)ShîܹæVµÑÑѲ#¤QŒÙÙÙ4pà@*¶¨wîÜ™ÌÏù±‡‡‡RŒ*I´5¾Ö®ɧՔ¹«kII‰1|°éý‹ŒŒÆòœ6ÝI¢©)ŸÑ€AôezZ‹¯ËË=Iß‹RåBõÊ•Mk¢\{QH¢\ÜŸ¢± [(GA^6ùøx«%Q/¯æ5Q'êP)Qëƒo*ñÍ&½“““e?t[‹K•šhKŒ*H´5>Gù?­&ª{ÍVð ÀæÕÖwk}éU“h|\¬ð¬™6¯OšôcÚŸ™A—*ÊéØÑC"é‹¢ŸÎ˜¦æÝy­&Ê»;ÏwæÏŸ?/'-ש‚ƒƒ©ˆ è:2®_¿^þw m^߸q£áwç[c4Z¢­ñµ…ß¾™3gRAAÕÕÕÉ÷yÑ¢EúÖlŸ$rt|Ü!µõ=P޲³§åõÍ éÙg¿#ëwœ­¾ù³7è|y‰±ßµþt“‚FŽ$±Wn¼+Ï“‚Ïé,Q[㨠@=zô_99yò¤î ÌÞ{}ûömy¿ºdɹ…çX¶l™îßm±µq6šÏ~#ùvìØAC‡•ë™ë¡³gϦ«W¯ê·NìešöÆÇïÎã_,ñI`ßãωbr€|àƒD!Q0‚|($ FH|($ A|($ A|àƒD19À>ðA¢(!ðA¢( €…D!(0‚|®(ÿD 2Q|‚±Ãùæ¼÷Ÿ´èíוü‰LÛyHŒÊóiÂR-˜ …D!Q0ºE&ªj@¢($ Fd¢ÈD!QHŒÈD‘‰B¢(Fd¢hÇIôÓäí.û¬øúúÒÔ)¯QQAn“×ìÍH§‘#"åoe: €>üÝûúJ4=½±ÿÖz??¢Y³¸óÛ£ë.èÉÒÞÉ‘.G Fîáí'g Æ*KFqäääÐØ±ceûä   JLLTŠÑÖoDçæu*1rçJ¾Îs‘ƒ;ÛMÓÁ­ÿüœ«¤Úºº}÷.¨ ÿÿ‡/Ì×ñû¿ÑŸ¾D÷këåõ]‡‹uÍDwïÞMr=÷îÝ›¦M›F¹®éàNK—.• x½/_¾Ü©î®”èÞ½{Íá–AŸlßFå¥ÅT˜ŸC1s£Å›n¾Î퓹 hâÖÍt®ì eŸ|_­í¼P“nž H´9bM“.ŠÜÙ3))IiFË£¶¶– Ô$‹Q‘ß·èìzïÞ=™µU}KÈ´®¾Áüü~mýBÈS{Î"=sñºa5QnŒh9>®êè ‰¶I‰SXØ0óó¾}ûлï,£þýûÉžé?ž0žŠOç+ÑÔÔÆft–[êÒ…hð`¢µk‰êë ]üÜÑÓ²‹"÷š_+¸´fuS§N•™”JŒ–·tŽŽŽ6\ôÖŒ'N¤Õ«WËL‹³Ñ¸¸8š4i’a5Ñßïm*.DU7k(þMeÌ7™Nœ¹BêêéfÍ}Úyè4Uß¹oH&Ê5Ñ5kÖPxx82ÑŽ–h¦dOykr¼üƒï7“(/~Ý%šœLغ@ùà>Ú:ßUnDLˆ6å4|øðfõññQŠQ;øFMVV–am‰‘ëõÖ5Q{uÝŽÊD7ýå8}}û^3Ú ¾©Ä7›Œ¬‰ZŽj¢ Ñø¸X9a³dÚ¼þÁûïÑOgL“"åà­=ßlÒU¢ë×ÙÛ^NŸN”—GTWGTZJ4~<Ñœ9º.þõ‚1X0ÚÛoÙ²E Í‘"åà­=ßlR‰‘¾3fØÍ¯Öµ»óZM”ëyw>93Ÿ®ß¼K¿Þº×æu¾3¿8á¿è­ßýUÖK[zmGd¢3gΤ‚‚±êäøE‹5©)oܸwç]-Q[ß ä(;{Úüš_-Z ¿sfØ%[ßå¸}[Û JäéÙ˜­.\ÈÁº.~{ãx[cGll,õéÓǰKŽ0rƼsçNÃ$Ú# bäÈ‘r.ò]gŸÓ+µw¼ýaš¼žôeŽØ¾ß£µõò«OqÛöëú=Q.Å kÁS¬®‡Îž=[lÌ®š¯ówB—,Y"·ðË–-Sê{¢®ú¾(þÅ’Ÿ Fü‹¥Çÿý…D19ÀØÁ|ø·ó($ A™(Þ_H“ŒÈD‘‰B¢(‘‰"…D!Q ™(2QH… ÀˆLï/$ŠÉFd¢x!QHŒÈD‘‰B¢(ßL}ç!Ñ&åŸ@&ŠOX0‚|ØÎC¢`ø QHŒø QH‚#ø QH“Œà$ŠÅFðï1’è§ÉÛ)22\öañõõ•Ý<‹ r[üÍ÷ܼÎH‰r¢œœÙÌìàÁƒ²•÷IWirpWÏ“'OJÆP~~~“Þ@*M`»C‡¹¼=ƒ+ŽŽø­ç®Cþ­û<÷ïß/Ç‘[o¨<~<Uá«©©1?æsn%Ñ‘ôÉömT^ZL…ù937š""Âí¾þ·¿YM?ûMC%ÊÍ’ª¯¯—8sæŒl¯«Òâbžªª*Ùë†9ËËË[lg¤D¹%1ó©*Q•3)^ð‡¦ÊÊJù>óeQQ‘²™^EE={V¾cÇŽQYY™\'ü˜Ï¹õvþ\ÙÙQÑÖµ‹Êé[ß ¥œì¯”ÚÎóäåŒOåm ÷÷V‘Q“óA¢m?¸¿ÓnÑíÛeî¥täÈ—ìˆ\ÅÇk‚瞫׉¡MJü˜Â†ټö»ÖÓŒé?Q®&ÊoU¼,ùsçÎQnn®rŒÌ¤I@U‰òö333“Ž=*ÇÑ™ÆjÅÇ­¥™‰òv”Ë6œQ©8¹ÌàŠ,Ù•|§N’» -åÇ|Îm%º'㠡Çö7»våÒyzfÐ »­•’(×£øÓÕu”Ž˜¼ZŠÙ]';v#wå­“&%%j™Eñ{Íe.ߨÂÇr×jòü˜Eªâøñ‡j넳bÞ ië„»*SÖ]¢©)ŸÑ€AôezšÍë›6Ò˜1£•º;Ï}ÇyÐoݺ¥ô6J«‰ž8qB)F¨eÛf•%ª¢»åøîóÏÓ_þ3E‰ò¤à;¡®è“VµuçVÅ»ß*K”?ÝA¢üY]]­Ü:y,j¢ñq±Øâ6ïÞÿûßSæ{¢.\¨«¶&19ø†Ã;wä6Š~II‰Òu[U3QÞkãÈå®áªt÷[«3j™oçù½Wé=æo²¸jÔ»!·¿;oë{ egO›_óò¾Oÿž¸E‰ÚË xÛ¬ÊäàL™'×̸Ê‹‹e ‰:?޼óà#ËÌE…1ä…ÏßWVõÆ ”o¾ª(Qþ€ä:7gŸœhð9·¬‰â_,u¬ À>ðéˉbr€|àƒD!Q0‚|($ FH|($ A|($ A|àƒD19À>ðA¢(!ðA¢( €…D!(0‚|®(ÿD „“E Ä£h“DÑ<’(™C=E|SDo}Eø‹4ýü=ƒ@ OPh 4ù°¯Éß4ù²»µD{ˆð1YÖOD?V"E ˆ'%4˜|ègò£É—ݬ%ÚÝ”¢²e}Mik?«Œ@ ž”Ð2Ð~&úšüèmòeWk‰v3¥¨>-ˆ@ ž”°%P“'Ù—^Öíj²«µHýLµ€þñE_“ÿ¬ÚÝäË.Öõ2Ùµ‡•H{™Š©}â ŠÞ&ÿY ´‡9 µ!Ñ."Õ2Ro+™"Ä“š<½-2ÐGíÔÉÓZ¢ž"íj••j2E ˆ'%¼­²Ï®MÚ©“‡µD=,Dj-Ó@ ž”ènCžÚ©Sçÿبài†Aì¢IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qcolor-cmyk.png0000644000076500000240000004467612536324501021712 0ustar philstaff00000000000000‰PNG  IHDR!Ñ š“áI…IDATxÚí ¼USûÇ×9· i ›Ð 9…$*ã«2¼xÍcÆ"¯(B2Ë<†?ñ¡$¥(³LÑdÌJ¨4iPÝ{Ϲÿï9Ͻu×Þçtç!kÎç|öÙgíi­õ[Ïü<&Øb±˜~;u_·Ð³œÁsƒwt.èœhï87²OžbÝIó¨Áû†¶IÕ{ÁÎ ÝIubès:WNõ.Á>ííà}ÓtBª»§êüÐf¡3$ý<)jO~Lƒg¥ïÞTèHó^rÄä6þÐoç îëz–Ó xnðŽÎíçFöéÁSìã¡;i5xßÐ6©z/Ø9¡;©N }NçÊ©Þ%Øç¡½¼ošNHu÷TÚ,t†¤Ÿ'EíÉÂið¬ôÝ› iÞKŽOÇ<ót¬lé˜Ç˜Ç˜Ç˜Ç˜Ç˜Ç˜Ç˜Ç˜Ç˜Ç˜Ç˜ÇXš¾-Œ¥M1±ªŠ1[?Æ‘œœœ¬¬¬ìììôcãÆN³Tà¡YŒ9Wc“' í1±*†1[ݼaÃ9âh®sS©ÅCûÄÚŠìЇÔ6ÒLð¦eÇcÌc¬ô1–Ê Y*›Îx™â|0à»ï¾ãàâÅ‹|ûí·¯_¿>ø‚rß¿ÿþûå—_~çw‚‡T,¨´\¾|ù„ ÒÈ{´Y´hÑ Aƒî½÷^¹Ú¤I“zè!Ž ôó+[:–Ørà¤øde¹;Áã©Úäÿ›mßK&18õÔS™ÓK–,iÙ²å™gžyÀuÔQŠ@§ghÖ¼yó³Î:kÿý÷ÿ÷¿ÿ-ìbO;í´C9„ã° ÎPrq¾X“&Múõë×¹sçSN9…¿Ö¬YsðÁãÐóó+eŒõèÑ£U«­[·hÕª¹|Û;ÎOvRµáÓ®]ë–-›?ðÀ2ã•O;üðÃ_ýu~^sÍ5Gy¤ÐºfÍš}üñÇìäÙ8‹#C‡=ú裥ð˜9s¦4³ÁÃÎ÷ß¿ï¾ûÖ®]ûôÓOWÚo*W»ôÒKO:é$¡Z;ì°ÃܹsÙ8pàÝwß­Èôó+}Œiû¦M›Žc¾úÊ|1Ë|9Ç|9;ùÑç眔mæ~š¸È1}Í%—\Ç•!2ʧí²Ë.þù':è 'Ÿ|Rˆóþú믷g¹Ò½îÝ»?óÌ3ìsúqÇwË-·(híwDÀû믿îºë®Þ½{‡bL ¸Ï>û¼ôÒK‚·>}úÐ^HkÏž=•]ôó++:Æ$lÛ¶Í7_Drs£¹¹‘}b|WpaäÒKoH(£g(BZ—.]ÆŽ+·†yCFR4Ú¨Øk¯½DÄb;ãŒ3®¼òJi漩€rm åe÷ÝwŸ6mšüÏþ3|øpvæÍ›·óÎ;¯]»ÖËcceNÇZ·n5{†aD²×™Øz“óWâ£;ÎOvRµÙ°š‹dœw޹ôÒByFމð#7Ýo¿ýžþùœävöÙg ÆÖ­[§R™ÀÊ3~üxi†¸%£™óŽr}‡ŽÛ©S§×^{M8Òã?^0† ³úÛo¿Ù\¨Ç˜ÇXécŒ‰Ææ|Âp$p߇"Ýq~²“ªÍÆ5\$±ó0&€yâ‰'zõê%7=ñįºê*´ iÿ÷ÿç(è…£ƒ?6l˜!°—¡ê~¹þ=÷ÜÓ·o_…\ðjP¹#FÈñ:rþ‚ƒmݺõ²eË<ó«Â…ÇW_}µçž{ ­€žÔ«Wï“O>5jTƒ ˜âÀ2õí·ßŠ‚D`ƒn½~ýúŸ~úé£>Ú°aÃ+Vpµ!C†üðÃvŸ„n½õVÔ6r:öšýøã6U„;å^³gÏFwÎC$Ãwß}ŽTÎòó«ªÓ‰Žöï³Ï>"ÙA}ß¾}û·ß~[ Ó]»vE'¡êA&–±-Zìºë®ï½÷?Ñmp‘‰'J3›Ž!¹¡;ÃÍPпúê«ÚL®vóÍ7sµÝvÛmÆŒBÐ@æ\ÀŽªR<Æ<ƪÆ”ÔÜpà +vÄÁB/d~ü½ùæ›A§ Qih³gŸ}X*å±MÌrŠ€jôèÑÀÒ¶¼Iy½,ÎY³fy:æ1Vå1&®hêùVÔ)Õ‚ò Þ€š9/(xäˆÂƒf¶4þŠè i¦Þ¶òC®& Ÿ:uêe—]æý<<Æ6Œ)QB¦'AO¨xŠ\Ž3”Ó,8j¡þ\©FvéÒ¥â<éý=ƪ<Æ—ÈгëÓĶ8Îõ©:?´YÛöÃxŒyŒ•!ÆðTc¸h”ÆÎÇõ¶*´ã>~ÌclsŘvÅ C–sü<’t,R«vîÙfÈÛE±‘-îÆ–;¢ƒöÛl1&ÓÝ‘[IæÍû¦Y³¦ŸÍ,-:íéÝçT<•¾éÈÍôóÛL0&вç:>D“'O¾âŠ+ð»Å¥=33³fÍšó>/-Œ™!—›­¶ªÓ¼9×n‚çîíÜnáÂ…ö3¤"nccUc§Ù4“NLø%aÿmӦͱÇ‹öÃ?rù¼b©é<þûß׬Y=}úôûî»q;ð†Ñ™¼+D{®`³å=Æ<ƪÆàÇÔ’‹cNIxš3Ë·ß~{‚¸î¿ÿþŸ~úÉÑqçë"aÌØä½°é‘؃—}øá‡íp˜ôþ¾ccEØ0‡"ýÃG‘|f»í¶Ó4B»Šçœÿ3Þ¦MëY›ììÈÆµ&û/“µ.ñÑç';©Ú¬ÿÓää$ü5/U10T–>õÔS;î¸#¢¯oG”yŒyŒ•cj2’rÈl±ÅäK[¹r¥g(‰ß}¾‹p¼]»¶?~›‘›[-77#íÇ$s¼¥oSsà€ŒK/½©„‹çÇAK?`­&/¼1ÁÔÒ!vJF1±â`Ì^Ë¿üòK8ömÛ¾óÎ;ËTòؾ·ß¾Ñ»›îÝÍû›îÝÌÉîÈ>ŸÃ5={äíÛðéÖÕôèaê×3ƒ_Sl^1ÔsEYGÒ{LêóÏ?W9Õ0yŒyŒ¥;•.äš¾ð mt…Ö/ÞÌ`ÃüÌ3/?õÔËÿ{*ïÛÞáóÄ“ãùÙ¸qû3ÏÈÎOŒ¶‘ÏÓOO|á…—¿ûîÛÐ/ÆdS¤áÍŒ3 Bìäcc…ŘÍBÚ@ÌÊø­ÛçÆÅu[ ¹rH—^[Œº-%ĘmOÖzŽPJ „(ßš\ÀcÌc¬ÀévR—9s憞´¤Áæ'+Œ9ñ/YÉ-¸Ã†ç!?ɧM6RvÄÑicÙä,,^ü˜>-BnÔ?¸ó‹aP³—zŒyŒ¥fÛ¯—ìe5jÔÀ±ÈÎ|/YŒf¬5þäÀfƒxÁ´ò›œ¯¥ˆ1%õ¶¨Zµj¢eu´ cc6Õ³Cõ F.A[5_ò8èÍcùêÐ<ƒ5îc¨[/¹äÇ’á1æ1 Ú^™%81cÄ,ä1悆ޕJ:R«ÇØæ‰1øXŠH¡).L Êaí´ÓN„3*;/zŒæ?cúS: ©•ÐO©À¤yˆ ƒ±xÁtq¶Dç1Vé0¦ƒd‡†Ž™0iOvV­Z©o^è¼ô 5!\t*" ‰üñ‡8=Æì¶ö¤ÇXÙbLkXQdðÀÁKÿXª®i˜F9…ØÄ=ö؃ôëxú¦2øxŒ¥ñ»·èqÄ8^ Ìì|÷ÁÛ©%`ͪU\~y¯ÃÏ dÒ÷«\tL°ÑûÈÞ¦¶iܨñ}·Þ—“›ãÄÚçª/u\=ôP›É‰—o=誎1Õ‚HïQ¶qãÆÀLÝÍœ‹K4tøcO?Ý yóýŒ©oÌÈ'žƒ=Æ*c*Lž0Ùd˜Ö0/ÓÂt٥˴)ÓœøyfYDLn6SŶxŒ¥SÆA¨ŒwÜ*¥ôyã­·:x`ScþϘÜêÕÇF£[7múçÊ•:4c•‹Ž10²6´ß¡½¹ÍDs£‘ÜHFv†nL=sRþúkÛÒ¥Œ VT2±aNÕ58tD=Æ ƒ1†µ'Jn¶k²¢ëÇùóûž|rc®1f]FFn$’Ì22:3ðškTáä1VY0¦ƒ÷Àí˜F&#+ÃdàÅ`‹.ŠšãLí:µ_4xÕšU2 ÈÎËébÈÍ$‰bœµÖc¬x³™F<ÑÚµkGâ )z¦¢×å×]W¿nÝó3¸ŠFsMb¸²ÃefD£Ñ-¶øéÇAÚc¬‚1&#ºlù²mªo™‚%ÆÐÅŒìdäf˜÷élZlßbô¨Ñ²”âÃQ½zõ_ý5¨äð+ Ælm- }"©  5ZF½}‹]Œ™ž¤Z¹Éñ‰%Ç*.c‚½CN8!U]2± À˜±‹N»È쟄“,‰‚±xò;;i£ŒÙѶßa·ÜtKƒF ` ãùeÂãQ·esÅX,¿j&?ÉrµCÆ×Þ©GMb]ŒINþøÈwNòû×h´š1ï¼ÿ~ö7ùŠÅ5*³Y³½EôBFÎGWnjŒÉød'ÛÃRÖmÖìÏU«Tï1V1tŒؘ½±õ¶­#wç«:âiéX,œs,uÈ#Æ44‡î{èŒg„æðÛ¤/•­—ŸúÆí÷Ý·±1½œ¥/c¹ºfd´1æ²aÃÇQ±òØv=ÌžÙÉD³£¯“›Ä˜î$OIi«¢æ<“±uƹ'žûëï¿Úi€=ÆÒ`L÷]ß|óMßSN©kÌ0cÖD¯x!0&0¥ÕѨÙrËŸúIíÚcå‡1õÒX¼dñ6ÛDÞH±ìüQ*<Æbë÷²ÜçÆf¶«¿Ý]7Ý¥k§í<î1Î+Æã«ÿüsàUWÕÝzëSŒYÈh„‰^…ÄØßc4Ú‡9ñÄ ßc¬<0&D欟ezZúúX±0æè÷'ÓÎìÙyÏ)¯N±-¡c©b[–,^Ü´E‹½ŒùزzÅ¢Wá1¦ºá£Ñ†é™3=¾ÇXÙbLWµ™ŸÌD#ý!__Ÿ[\Œ©–ô$ÖØPƒ+?òà# ã1– câäÙ­OŸ³¡]ò­^ñKY!1¦z|ì,í»uů§cåGÇ„;ïÖ¾›`éëã%ÃX>’¸à¦[‡nNh†ÇXè”±øyÁS«ÖÇ‘Hܸ<{ñ0˧fë’zü§ÇŽUw±²Å˜r‰cG5[™èÊhW+1Æró”È÷°'fƇ3ô^céyE饋¯¾ºS’ò¨›M 1¦züÇ"‘ú-Z¬ÿë/»¢€ÇXÒ1:zý†õ-ê·Hô½ª:b¥AÇ„ˆnNí}jhñ±Tö16,Î523ŸKŒI$»4蘭ÇomÌU7Ýdûã{Œ• ÆÔsýëM›|UG¬4èX>‹y7²•Ùjᢅª/ö+Œ}LHÙ½>šiÌúh4'ÌÜ\ :¦œç{‘Hµzõ~Y¸Ð‰Fó+MŒ©Ô»`á‚-Ì‘÷#@©ðŠ9Iж27 ½ÉÉXê1V?œdlsÓ=ö¸ÞâKˆ±¿9ÆŒŒ#Œ9ö쳃©V<ÆJ“ŽÉbyÒ'™#“L3Œ%ÑÝg']«6­¶mµaã'rÉc¬0ù<òr-N›5fi4ªú÷bL¯3ŸÐ²Hä“Y³÷±ÒÁ˜áGÓ?B!™) ¯/!Æ’^Ž wÇ-Í‹c^ô9sŠí¯(ýv`߾Dž‘²bcLõø³s2·œ°‹i²ù{Œ‡Ž%º5ïÚ¡käÆH‚ˆm ˆÕÅÃXr¼Ðtß­»í1VT¿{麯çÍC?ÓÒã—cb¹L x4Jò'ÆŒ àô+Æd3fL"ðëͤà¤Þ%‘ÇâùúúoúúY3Ãù±ÂǶHï1`@§)+6Æ’8‰«Í‰DÀX‡Îéc¥€1Ù©¼r蕵ëÖ6§šÈ/Ij¦ÑêÅÆXv±Ñ^Ñ! arPÅÇ›WŒç—¼a‰Úr»í^°|‹m‹'ѵ$9טZ^rÉŸÊ<ÆJA‹ç'ž÷õ¼“{ŸlðîžH“ÐUää¯uEÂXžÆÊDßCJ7'Ÿrò²eËäFÎé1V¤ØŸ=úèÚuëî’dðrŠëœ“4@Ç22n1“@×ß3w®ÜB=ý=ÆJYw³ò6¿öÊk[v$ƒ¢yÖbsŠÛBöx}ýå/?²Ï‘™™™wÝu—]IÝÛÇ ƒ1-,J ½‹/¾¸~ýúG}ô—ŸÞ´cÇÛ’T(4¬/Mü˜dzn¾èe§ [ºt)ÇlúŠ¢ ëIzÿF9Qªû:ylC“ ÙÐ⬙3g:‰¥‹Œ1{1V Ř̆T…'Óð»©^“l_*çµmveÌScªA˜šâ,Côû¢_“ǯÚÜÙsm}½=f̘ѹsgøŸG}TÕÉ×ýOØ-z±Õ«WŒ¡ä°YkŠg^rɾýñm»‰Š^c’¢—!ëý„ Š.ôÒígžyæK/½ÄÏß~ûí¨£ŽjÓ¦Í\àPW'!mJ›µStÙº´óÎ;oV҉ĩ5£wÿðûté²óÎ;?ðÀ2ñÎ9çœéÓ§kƒ¢aÌyûgªidWÇ µäÚ u.xçjÚ‰¡%ª„Ócgò”É-Û´¼ãÆ;Ôm`þeÌW¦€~?· Û×\|æÅ‰±ÌÎ *Wi .°©˜¡ó쟃±¸U2SD¯í·ß~ï½÷þøãCóyŬڿ+W¬¨Ñ ÁËü,Kô„ vØaÄ}÷íܦÍäW^átaÝ5Ò‚ýO>ù„r0r»Ã?üŒ3Îøâ‹/Ú·oË-·ØäNOá›! wΜ9ñ@¶FmÿÎ;ïœuÖY4ã‚Á•BvV®\I%šÇü£>Úf›mÞÿ}ZN›6MJ‡:•Ö61Ó¬·Þz«vî‚ `¢‚ã¤=Ë΢E‹žzê)Ipm_*öã?Ò,HÇì«QÏòé§Ÿ^¼x±¼çž{(·ãJÉûƒ7XULÏ?ÿ|c0(&–%Êáð/}Á›ëêâŒ7 ‹"Uƒ'NœĘ\L}ô)ë%?iÏ•¥‚ùØüÔN/ÀR³ÐÚúÜìä–¨S¼nõ-WßBæms´‰ÎˆšêæÕ‰¯†rÞiÌ&6n1Uo»í¶¬#Ø ëX¥1¦¦y/øóí¶ÛŽ9­¢—Sä2=ÆTqÅ ´ß¡‡â8 c›4¹ïÑGãùV/U8 w€ uòÉ'ëäI~ùåøC‘ fLÆüùó9.†S½‹µ`̤ٞ2N‚1ÛaUãºë®;õÔSå_ˆäGÎúïÿ{öÙgËà cì°;î¸Ãæ¸.^¹Îë£Ã¤ñ”òp0`ì‡~ÐUÁáÙà<'L˜äåj¸]wÝU®Æ*ÅÚ†å•ìeÞÜýÉ'Ÿtþ²µßÿý)½Éÿgúô퓦"xE[áÁ BçRø}Ô’|3ŽÚª…1‡9D gigÓ«6µ jÉÓcL»eîìÙõvÜñ¼AƒV­\©ÝäG˜ÜÔYya^€ ’ûÐÕ |õÕW‰Èë{ïeéW±0cL$›Ž¥²¾p}›ŽéÕdþ¼ù曨¾´à5…µäЩ`P-2“{@ QB 8Ψ¤‘UÄÆ¼,DYŽ(Æ8KˆŒ#ì±C×¼üòËjOt®†Fˆ®‘#6Æ€=¤Ìæ­eÔÁ„Eu-AÛƒNœëÉ|³êcÿÆØÉÒƒˆ8n;a¥w#¨œÓ.bú2½àÒUôJ·Z:¦këš$ÁIÅjÊ‹ö±IOJo# ‹Ï>ÓºiÓ¦(HxÈ)S¦pð¶ÛnëÑ£‡ Éö²HK4ì ”"wØzoy$„¡Õ¼á†P]*Òä»W¯^”…̲üþûïr"ÂËÔ©Sƒ÷ÝÆd–3u9QrD0¦ƒa?%Ú?ÔM+“K\;Š Ù·I³­óŽ Æt¾Ú¶8®ÀÕDw„²÷‡ŒÁê$SRŽä†Ì´¤²YoÒ\žÞ'ØNÖH’5vl“&M ¤¨Ýl†ªYÚ+c*RÂ#` u`&Á¢;.‚ÅÆ˜£itV7ûâ²b¢ÒÀ< ¯)ïŽU ¢¡is ®`L *´a‘E^r4øò èE‰ÂÆ\Â\{¥ÒfóæÍ»ð ûËÍðáÃÌD·,Šw ÈGEöó…ÍòžòLPQBpo¨ ¢§ÂLºØ\qÅ4F³‰/G¨ï†ȱƒÉÕÐȲ$„ÆÂ–A9Ï Lc¸V´ø‹ºòÊ+m†Pè$wvY~¦™²ÎŒ)ÆT1¥N=|_ýõ,«(š´öt!3HWÆìç¾ «ÜJÐêUrŒ…ŠÁÓeø.ºè¢c=ÖÑà^b¯nÚÉô9G¼·Õ†`Õat]¶›}öÙg>ø £&±ýr5ìô²ê³ÏšÄ‰º¼é{Â"ru% †LÔ r–Ã+¢öÄÊ¡46ý”M?ÌňS!µå*¸Aƒa<±ÍÙ• cUGô‚χbXS¡«TèXúÎWÀ°ø" Æ™Rqòxã7T›¥«?G˜!ГP·!NH2.A/§4“«…Uõ>açöÛo×›Ùσoø4èbºØ+ûP9X »sÅð…2;_e$Ílm{ðÍeŽB¸£s5^€…G5ãPEVYG#B0Z{‚7®òÁ˜Ã:"a£ˆƒ[FU˜ˆŒòĘã±A§!Æ B–Á ê)FtI0¦XB·2M’I¥ t܆Ҙ"œ+ý ÆABlj/Ôñ¨“îFC )´×iÄIÖ<ÓŽ÷“œ-U»Í‚;ÍÁ¸qãlÓ„}5¥N—^z©¸(a”6ð6ˆCÂ:'Êc6ë¨H5jȇ‹ß-¤U Æ”@±z"rÔ¬YÑKtE©¼Êc:ýÆ¡®ŽQ$4ÕJzó’Ä¥R“:É‹ãwo{ÇŠJ¨_¯ã†¤¹Ž«²³$ØÜ°î¯fŸ‚jUŸMµ…ìRÝu.OŒÙ €:’ÂñÇ/ó8HÓÊcÊÒË3 :B Sɵ}¡‘ÅåŒ1yÈ}÷ÝW<§œD—é1Vþ1šiäÌ"ûit0]k¨—Ch¼@¨Á }®‡o‘qrÁmGb,Ô.‡"uåÇlײƘ#za÷Ç„ž±íp˜Þ¡¬Ü0¦ƒˆÚã´ÓNSÃt¥ÅX)Äh³ÿ¤qJå4PŒ¥ºZ¼`Sç/53èšêÓT!s„4ÔE¨‚Páà(´I'¬RÁ˜Íf‹ÃaÏž=ñ|Ÿ¤^¼›,šQÎSާ<I‚1]›!Æ*m´ý˜šÚ* ÒÐ/ä•Ù–#lšÁ. Æø aó€e=ýôÓÙw\R⥚û­ätL@…öÕbÐðí1VÞŸ¬:vt]¥Â˜­Â‘<›á‚¶Új+æ½Ìxµ– ÆlPE/l´k‹^•cbYÅw qzhyŒ•-ÆÔ=¯Ø*-Æ‚¡ŸÌxæ=Jó;ï¼3è„U<Œ9ŽËhtáN±1’ (TôªœÓH%<ªP8§ÊÜì1VÓ 5¦‘íÞQ91fëlÿNŽ0f «5^`â ãxµcŽÕ‹©Ù½{w¼( ±U7'¾’cL|y5úÉc¬Âè˜x£áäT{VNŒÙêV™ô¬×^{-xÀ«ÆÉ„UxŒ©å »-ne0¢x–9¢W©äó(Œé>b¶z¥{ŒU$#8ºcÇŽŽkY%ÇX¬`¡‰"j âmq‹q\ÝÓ`LùOÃvk J DPuYU0¦Ò)¾ÿûM2cå‡1éz†¼%¶—p˜£ß'šŒ Ç ÙÒ—UŒix‘f_E ‡©-z¥²)W~:&/˰±âéXÅÓ1ü2%ÚÅöŸ¨* ÕïcÂF,é+iŠ1q}ÆqLKB¸`5ï¾ûîì@dq¼”òRUÃpm÷t¬âéÎĤ‹ª¢t,•–d/¬Q£^ü’–KXG4¸A º½ðn!š†¨*Q«:Á Uc:²¸S ‡¢a¾cƒ1\Èè*б 6"‚ÑïßtÓMŒG ñì@½)݀˼& .1UcOÆ,3¸žŽU$Æd$ˆjCO°бxŠää#šHbÚQ 6$BŸ,›-³•0×@e£cDE1¸žŽU :&’±Ä•msTö$’øm™ÜˆFѰ´`ž1±Ò§c°ì¸ámNt,È4béB8A߈G/Bt[°R¥jÙ xEb=Æ*Cõ´™Éc¶òƒwD#.†üGäœü׿þEö;r¥`e&óaÐCj3£c^«Ã]HôŠ›Æ‡C¢`ÆbF~ 9Òg‡è/ùKmN:ÙN8AFÖÓ± ¶!Œ‘èªóŠ:·08j` C£ˆÕKŽHat÷fJâ¨ú…v‘L€¤²Ült÷jëÛ·¯æ«õ«`?´mUŽ)º°zájˆSÉIÞª:Æ  :ne¢=Y÷$eÌÊ„U¥éŒ¢dªö~LÇP²¡ÈNÕ•ß—JãʘX”DA«qðÁk†F%ÎA_*[ëH*Oò~ÚÕb«®/•Ò1Rz x:Vñ~÷„?û)´xEeƘNFJæ`K¬`¢ì Op¼`HËC=„}š «*úkÿ` o÷+oŒ‘Y‰ä›šJ²òcÌA—T@%T™L{v°f‘b[T‰Ï>ŠGXGNê-VÅØ\b[|üX¥ˆƒÆUÒÄVò8h‡Å•x€M™Lé“2Z qh0œ£©ŽÂ±‚¹l+9ÆÈÈÀ°’ÌÔÇAW$Æä韘Ž>ø ^‰óyÄóË)¨ù‹¸Lh¥@ìäø±Ôé ™kÀFl§äPÕ•È5 K'Ir >Ð Ócƒ±¸U¿“Üñ‚ÕÙ*Æâ3"zQ­ÑKR·;%•c¥‘3Ç®÷0¬#E}ÈýVùsæh¢.ê•’2ž:w¯ÇX9Ñ1™yx?P)+^Ér˜Æ½öÙgÔ”QÑ+V¥$³yéX~Ù*nSÉšLXj° ¥W*:&oJLw·n݂¤ÇXycL<(™¥!d• cJ»HžE¾7è QaRX5–"Ñr)bÌA8éñH¾[–"Ü¡Ÿ• cÄêׯ_üŸ'¸0vÌxÚDÂÅÆØ&W/ydV‘¢›¡cY!SÑ‹J’«É”«‰[õ¨ƒÛ‘e¯XŒ9š˜e©¯©¢W]e±X ÈnYdÞ‡ õîÝ›šåAs\b,–_±’~“Rƒ›g.n©¨ì`åãk#…òŠ6&íJ¡/,øzA§*&Éì|ˆÐóJ2¦ ˜Q>s3¬vdË¢6É·m«—Sì¯Ü0tÚ]DŽÔªU‹Ê2Rö.Xɺü1&]DU4˜:I‚í¼cNžbðDöæX#S)ØÒü[:&+11KêÖÍÆâÇ„„Îl¤Øh¼¥âŽ=ÝífŒ.®hðNŠ GO Ù˜‰ c­•’H˜JÎ>ûlelôÊò¨á‹o›í[žSÚ…!ãÄžàϪ¤5Tc^!sôûd§D+‹žWã Ö±œ1¦tþá‡ÖbWA–JU¦¡+‚sA§¢ŸÃ¦Å¬*_iÞBndÓ˜`u¿¢aL®8cÆ Ÿåµ—)h='•Sè 1ðkf®“›r[ñ@ÎC6$þV­Z¡¤Ò ˼ԇw‹5 «FHꀓ͸/£°`ܪ‡ ñ|LhÔŽãy(¹r¼%Á˜ÍƒAö½HbC@*«W…cÌñ‘‡|ì±Ç ¯–#SÎ¥œé˜Œ&ú!9Q-Ô"—¤&l„ÒQZe‡àÛ‰ÌÂéAÞÇæ;´¢Ö¯q.e—Ńº*'BvjžA_dŒÉ"GÞˆ‘#GrF‚ÉË)rE(k'Ï7zôhÓò4L2ÒE9AMÒŒõí–4#¶Ù1óÚ y—ù$Í Œ’M€ÚYT‘vj™K{ì­ÄSÉ„NC¾týÞ¤ t“s\¢x/\º¨oëâ«fVŒÍâ\Ö)4ŸhùÅi&(FUŒÙ \*Œé>¹"±"ÊH#Ùbx#Då²LC{'L˜ ¯¤º2¦#ÅmÐãQék7!yÐlq”‰S ßyHÊRèœ0"þÅ xÁâa…Řâø?t :/aÕ¸‡ÓG¶²õ¼óΣ–¬(*x1lVNL—4®DaHßá¡©tfŒ4c%£h¼4`’AáÓ-+“c®×Ô¢¸ ²×¶¢ïÏu‰­$¼¢“x«×^{í…@¨>ï’ĦðçŠÂ˜%$OùeEƒaa‰´#²Ó¨BÊ-A5¦sºtÚ‚ ðÃÑL‡’ÇÆ.~UL-æ#8eÊA`‹œÛÉõqtd7ÆH(PÐs_†®ž™Æ¿¥g³KUÙ+8,iöh†éåC‘!lO…âè<+™P°x~JZØE0ÚBÐYÿŸæQœ˜.iÆ"$öâx2v0ôKšñòÇ—#@©LšÁÏLבSelàà ¿w|Òñã™Q£vªW¡Ñ&†…ǘC»ub·PÐá†Ë¨; 6Š?V±sz owx"†„P+]W¤ß–þ¾44Ûm‰{b}[!áhe N•5‹„­pLr" xT²"@è(Ö>áÅ‚…é$‰eË–-Q"°/²‰ˆ$±‚y(¾…?ÚÂ… ¥®ìÍâÉÔtPþÐâ›À˜<"èèbÛ½R 6ÆìåMºRÎTÊxc0ÐN3 ‹6Œ›X›Ž Æx0FAJ‡X" áþç”6ÿÛÇbúôž;›í™;ï0[mõaÒ¡;耛cªDøùd•q¥+hº`YM´àÎù ”Çtre’ÉpqÀY¹zõµƒÕÙzkÓ·ùñû(èÊÍ2×g¬[cj×~:)>9zÈàrc‹+h“àH1ÝË]91æœØNP 0ú¬¶V!1&×9¨ïAÇ›r3rùì€:aãñ[ÍmuL6Ú|6÷3[Ö•;’4^ç·}‡Ž|_*q0"& 2è0Ã6K%jšeô²°Y*(ÄÜñ’+Žß}è‚mÇÿ¥÷>m:MmûX* „-†:äkôã·hÔÈtél¦¿g”9Hñ.´d‡áN·œÈüïL$òÑûˆý@+±D!zÁ"Šè%5Sé?c¡4 :/™°œê¸º&žyñ™û˜}a `-Á˜~ä/Ú,ËX~ž9¯VõZç_vþKþPT )#A²Í¹(¤*®P‡[2”Grfµs51½s41‘V!šVL_ªÊ£é8¿ýæ›uêdš46£+ ØP€…bLþÍZMêñ÷iÓF®†Þ‘.·ør{Ò”zî·*б œ¦X Êà[$åU™>gîSÍ|ý:fbЫT“ƒy¬c$w–™µÙ'³qæ?˜›ãšFlW¸ )•«±Ã4…Î@û²©F3h»*¦OpåĘëÀŸrÔQ¦ÎÖæê«ÐÅ'D/HcÅLE¾‚;9Y‘µ«M:Ï>ùäÓÏ<íbIFß±e{Œ…:pèpˆýj:‚]ër¦9K‰XzŒÉqZŠ6ÆŒiiZî²Ï.¯N{ÕÎFž*8¨~ÞiÎJt_ÈôMUcöR´ ‹¢×±Ç˜ŸLŠ^ÙyÌalc:ÑÙIHeëKçSODŒiÒ¬™– ò®cii¨æpÂÐ4õµ©^™PÝT_Y–“º]©0&ßñÄXæ iYѬëÌuuM½>'÷™÷õ<[£ëóy” ã{ÍÚµO<ùd³† ÍÞ{™÷Þý[/o3‡…ÇX)CGóСŽ;o¬lò+nN :a±ƒQ´Y“f[fŒŒŒd„`mt¥Ç˜4Ί'õû¿DkŽ­S»Î€!Ö¬Z“FÙæ1V"ŒÉø½ý¨‚=ÆJ_w/£øõ—_Ö2&2û“ÄpØ0+6ÆòõøÑ5Z6þÙ1ŽG¢ÇXaè˜èŠv;p· ÌI×Ä,NÅÃX,᧓ͯ4W¶Ý§ îÞ¡)R<ÆJ‡Ž))»øŒ3Lç½\RVŒ%õø #ÛöÊÌ\¿qcÐÏc,^QÆå¹ñÏmi¶\].úúxŸ­¤K¯có#ó‘Þÿhz§õ9Äêø×—cy\b$÷±Ècõ[Ôß°~ƒÆ {Œ•Gm$Ú#»v5gŸQ@ùQŒ%æ$®À¥"+—› ÏÏØb‹Ç{,n¥ñ NÁ¼h÷iSY’~¯¾87iÈ ¥HÅ¢c9+¢+·2[;:¨éõ+Œñýå_ÔÄ$=ï‹äˆüU4Ÿ`[ ËYú$ƒÁ½ç.³]ÃuëF¾ Â”ÀócŸT™õ2{›ÞŸ™Ïr“>Ú¢¸/¶^1Ï‹*š;À\ܾ[ûP‹¥ÇXÙbÌæRœ~:âÓߤ¬ð±-|Ãaf­MºéäšIMÛ¶{¶i3aÜ8 ³uJÕxŒ¥JLâ0Ü;¶ÎØúsɪè*xý$ÔóÆc¬Ì1¦i$–¯X‘ÐãOšQ˜mc"z¡)É%À9ëSs`÷íê×»ëæ›³ò¯œJ‡æ1¢WÌ‹žñÉ 2º54 5&×­As¢37Û’'‰eä’Nçßg›ÊƒÔc¬<èX${GBôZ—'zMoš5Ý:™2qbšœScEŘÍ\$rþô3!Ì;ÔÞá–È­k¢k“þ9ŽæÐ±„ª#’{wän\FHÌššÉc¬\1¦\ hëEÞÒ~g'I™%•ÅòÒãä‹^3M÷2ëÖzÙ m23Ç&Õš2Vz5×ÿÉsXÇ+†\ꢙÙé1óXPHs\“úú5MÍqÇËg{ŒU ÆT?ëÓ™ÕÐãûµDBä¥UÌηz-]lÎíW£öVƒ.¸`á¢ERˆ±§8 ¤‘tÊ(zŒc1+÷Û|P£zqÏûßóÿkд±ÌÓÍû¶æF=Gsû™~zuRÿzOÇ*Óí÷Ÿÿ˜ý÷KŒ`öú„bC­^·ÞbfÓ³—Š^’M‘,çb s–L±’Ð1!b$«¢{%S|"«ùª5ý÷'3Çiæ´E‘EÀ)‰«lÍgо~^ôSÓ|ñåñ‚y©=Æ*cy^s99ä4¯Ÿ‘™<1’Pç‹^­ZîѺõ«ÑK`IBéjÕª‘ßܯ=ÆŠ‡1íFº´zõêÔ‚6Á.ÕyäIGÖ3õ†›ë³2²ÅI?/¡@FîþfÿÓ.:ÍN%à1VY0¦˜qí0Ó´iuÐõÙÓã 6¼oĈìüOÛÒKä8eA˜ A˜yŒcêJJFk*3ÖI¤§H›ôꤖ{´laZ’GQXGR LŽL©¾MõåË–«~Òc¬aÌÖã·Úi'Óyïšõê]vî¹KþøCËD„^AF=fcE˜²ˆ¤—¥ +õÁSUuÉS‡d玸oD掙™Ÿ›Ïs«çb¼ñÀ§’ŽÇX%˜.¢/ŽßûÀ?˯°j‹Î¡;*ê£Ö¨QÆ™ÇXá1¦z#ŠËÑ‚  rUÁɳÈkîeçÖ¯Y¿³éÜn×vzfçd‡Îo±ŠÇ˜^Ð.±á°Áy„™èE˜1±@íc±Ðu'ž_c%ìÝZ1(x;eç|>çÀÞNœ01XÀÑc¬raL[j}MÎ]fÔàa–P—PëByŸàMú À¨rJåè+òË&Ƭ:I©0&#å’ ]=Æ*ÆÒOÙTâ„ 6 }4€M+A†ºJzŒéZFG‘WÔÎ.dÒÏÅ+=sªùí1Vµ1¦‹®,É”Q„i<ÿüóm?F1ç½”þP‰UIêD;^i…ÁXšyâ1¶YaÌq€¤þUë)ù{Òßf~þá%½´bÅŠ.]º4nÜxÞ¼y¡F-1±p+ªü¦Ø%ÿ¨ù­ájñ´[Qg†]‚$7í&,Y÷îÝŸzêi;~4Í·ªf—ÆâùµQß~›ä}ûö¥2¸]EÖcÌclÓÃlWv¿çž{àû÷ï_¦5דuPUWù pvølØð?8 Û“OŽb‡ŸÁ6Ö‘¬M΢bÌ©±ˆnƒn¹ñÆu e1±”ª–kv>ÿüóV­Zíºë®³gÏVEH(ÌŠ±=z´hѪE‹ÖÍ›ç}Û;ú³V­­23ÙÇ6|Z·n×¼yËx@YÊ’cÌ&_ßÿý{ìA‡H hÛ@â1æ1VŒ9’=ßHöµjÕºæšklÓ¶ƒ´¢Î mOíIcÆó•1_óeêÏwÆ|¶ÁÜäE޹îºKÄlUBŒÅ VʼöÚkq’:ýôÓµ[biSyŒyŒmz<ìšßï½÷µXÛµk7mÚ4»tjš*Ý…£c9mÚ´D¾‰Fs#‘tc6Ñ€Oõê|¸ñÆKKHÇl݆¼{‡ _ï¼óŽüêžæ1æ1VdŒ9k9ûÆ ƒ {ì± .tVl:ÖªUkcf3&;ù“üèŽó3–ºÍ†Œ Žœwà —›Ž)„äíÈ9ÅËb_2dˆtB1±â`Ì6• –p{EŸ¶Í6Û\}õÕk×®U¤9ëBc,'‰±9ÆÄ“8‰ç£HwœŸñÔm6fdÄ“XlŒ)ºx5´uëÖ=ôÐC¿ùæÍ)ä8pxŒyŒ•ÆT·¦Sð­·ÞêÔ©ÓŽ;îxóÍ7;H«ŠÓjÎlëÖ­ã¥xµ=÷ÜsòäÉvè]ÐÃcÌc¬Ô0fk±u:Ž?ž‰ˆÁúÎ;ïü#JcÓ´*±ìä&O¾zõj^¤Y³f¼¯f+xBûÄcÌc¬ô1ö·¦"_HŒ5yrÇŽá/¼ðB|DÔ,Ó·rbÌñÇE¼äá4hÀ‹¼øâ‹jøR²\˜8h1±ÒÄXi¸>yä‘;ì°CÏž=qÞ·½1Ò€­œ1Æc¨%]PÄ£b ]<¼8µ¨°HqÐcce‚1EšÎZœ÷¬ÆäE80"ˆm B›ØmËcv”¤ÍÊöé§Ÿ’o¶G½è¢‹0µ«–ÃèzŒyŒU<ÆÔ%Jç1ó›ôr‡~8F[¼f/¿üò7ß|iÇžå´IBnccsKcçƒ1p‚'¡Í JB.haåËÌÌ<ì°Ãžþymc[1±Êˆ±P9çtœå{÷îš®Q£FèÁï¿ÿ~¢­%ÿœlØ ¡c‘H)`¬Zµ»õÖËõâ<ÊÜô˜cŽdñ< arË–-sbÆãEŒÑôó«Œ9¡‡:¡*ï¾û.Þ´ûî»/ÂÓ*wï½÷ŽûB“&øR}VztìÂK.9}Ê”×î¾ûnnÑ¢E °™DQxiˆ›¼ ­bÇA{ŒyŒU0ÆTT ÊBhùQà2Ò§OŸV­Z’àÀ˜oJcÉ#C4¨ß®]{è·@ \ºtiG ö†Ç˜ÇX•Ę}a#ƒÑ_¥. ~±s Q{ i´Úº4/˜¦^”M´c…(¡ä¨+ƒºV1±Ò‰ƒV¼%g|NëÖmJWÃ'X¸SåíHÐàÏM:F§¾ÔUà cµÛhð«VQ´ÃO=Æ<ÆJcaö±RÖ+Úö1Ê&·x~¶¶åË—§J dûÝ£Iåç¡[´hÑ‚ lüÄÃÒ0j3~Ο?_"B¡â1æ1Vê+[4;µƒ>øÛo¿á²ß~û…†¨(BØ ]»v V=·vÇwàMÖ¼y󫮺ʦfN3²}Ñ ³¡„áp$Æß~û-ØcccU cšlã‘G‘ ¾€ 0l¿ýöLw‡´ŸëÂàÁƒÑI6Ê+ –(|Cbb@KÆ ©‡ä¸çK³Y³fÑ `CÊ0ÍAN%èó†nVðó«btL!¦ð«ä'e _xá<ëwÙe—T:É⊅šðò,„ö‰ƒ"£«`xÀ€NŽ*i\Ï9çivÁ`H ¾&ݺuSzŒyŒUIŒ )£–ÊÎ;ï ©QÈ}÷ÝwmÛ¶ í[;TŒö8…Ä f¹’ö’JùÄOÄB G°Èáô(·Ð~“fÇwp•##FŒ ƒ«V­ç*ÈyŒyŒUIŒÉÜ%á³}¾f̘!à±›ƒ®að~z¢óðŠ±ë®»N’Æ Ë&¡6Ænºé&iFá¿£Ž:Jp‹›ÿo¼‘Êà1æ1V0&Z ¸2¨–íò;sæL›@Ùj}»ÙÇ,sš‰Ö‘o² áR,§ :ô„N°ÕýÚŒÀ©HÆ>Î.'Ÿ|²4#ËÕÔ©Sãù B<Æ<ƪ*¯¸xñbÄ*œ'u6 êô9ið믿:tŒ?úè#›ÜÁסŒ[Y ñЋ¨P¢<óÌ3ü‹6Rî¥Í(:AÔ4kÒ¤ !ÿpÍSI"OÇ<ÆÊc’3g¦1Y$½I~oL~tÇù™•ºÍºŒ ŽœëäÌÑ4ÃøU©q :&:ùýÿõ¯ÙôDéXûöíõ'ñÑÂò u’ƒÇ<—Ú}÷ÝÆäiÌa5¾F’{‡K‘ß FQŒ‚oÐ1§¼ºÇ˜ÇX©aLE¡vív®VíÒ¶U«VÒO­Z|ºùæ¹ßLzQú‰€„j¢¤v0öѤ}5PBªNB²˜ Õ.ž(§“˜@jJÉÏ×_}äÈ‘N=1i6nÜ8UÖßrË-R¯Ìëî=ÆÊ–Ž5hiÌqÆ 0æ"cú—às¡1ƒ-øRÛ>&„gp¯^½¨’¡¸²å.\.H1`ëBų'Ÿ|&ÓqPTL›5 ƒ˜£J±Å9Ž£êäy~úé'¯»÷+k:'ÂeذÆõ¿öÚþòmï8?ÙIÕ†ÞÀ×^;øÝwß³ç·R!‚kÐÅÛ¡nº/©µl´}‚Ù$4&8 â{iû”„Ò%; ³µ÷¥ò+[Œ¦bK±7Ç¢êìP˜ø¦jJÄÕ1ƒ†5{'Ul‹MÓ¼O°ÇXyб¬ä¶1¹w‚ÇSµÑ#ÁhU:\Y9w ^'ØŸ…yààñ4ïìóÐÞÞ7M'¤º{ªÎm:CÒÏ“¢ödáÇ4xVúîM…Ž4ï%G<ótÌÓ±²¥cÿÕ$Ž~] ^ IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qcolor-hsv.png0000644000076500000240000005106612536324501021536 0ustar philstaff00000000000000‰PNG  IHDR9Ñ8ãRýQýIDATxÚí ¼ŒÕÿÇÏÌÜ›ˆ’%ÙSHE‘$Q¤"‘P)¥…VÊV–h¡R?mä_¤Ð^úIEú!©(iߥDö{ïÌý¿g¾÷çžç™¹«ëÎíÌk^ózæ™3Ïržïç|÷ïW…c¯H$b}š¯ˆñ2˜;ü]L<ÌÜ£Çx_ .É:E®ÇLpyÖÝyÇ;{¼kö:ï¿âË÷¼¾¯x‡Êu¤ïæ:¥Þ™ôN¸÷§ÄÓ˜x¶}ïÑ;±¾—çüx³êïåù>¯¼Ÿ"/ËÜ©dhff¦õi¾2—9ÀÜ™àïzdâaæ=ÆûJpIÖ)r=f‚˳îÎ;8ÞÙã]³ïÔyÿï\¾çõ}Å;T®#}ç0×)õΤw½?%žÆÄ³í{Þ‰õ½<ïäÇ›UïÙyë­·~øá‡ßÿý¹çž{òÉ'ßtÓMš¯Zµê¬³ÎêØ±ãk¯½&l–C3†ƒLŸ>Ý•¾q“WßrË-,ÞGfy/ÇÇ#X½ì²Ë¾ûî;óP««ÅÍWc2!fÖ{×®tß·9 á°tó2*K–,9çœs^x!@1cF£FzôèÁž'žxâàƒž9sfëÖ­(Ø$ýúõQ‡rHÏž=üñÃ;ìÚk¯å×O>ù¤zõê÷ÜsÏĉƒÁà»ï¾ËÎþýûŸxâ‰ä ƒzúé§E‚µW.fÍš5×_}ùòåwìØá ¶zõꫯ¾ºråÊšsdö°n_uX-n¬ Ù=òÈ#õë×;üð† Ôkذ^ƒu}ßü$oÙöÓ¨QƒúõëBÓÍ!Ï?ÿ|ÀÆÎO?ý´Zµjšý¾ú꫌iÙ²å3Ï<Ã×ßÿd®_¿ží×_}„ _}õUƒI ÊA.¸à8°ìüè£Ã_jÔ¨ñ矲göìÙǼ¥mê[æÚŽ;uë V}Ÿ>à¼âŠ+Z´hÁê 5Û¿þúë„N@&÷µ*;¬:¬îY¬"7BÜC‡Žïz¦úì3õÑJõéjõé‡qÞ«³ßú[³*z17©öí»é…€×Î;›4iòù石ýØc~úé÷Þ{o›6m†ÎÙáœõêÕûñÇÛG}4b-#ï¸ãŽ… Šè·ß~C²E¾2d?ñ_Ž£ÆÈÕ‚ùæÍ›Ë`$ÕúõëÿóÏ?ÖÌ‹Ê'fÀ¶mÛ¼ 1Õݵk×6lØPÖaÑ\Àÿû_ùê°ê°ºøêðáw ¸,™™šæ³ïŸ)3¦:vì%lM°ñÙgŸ5mÚIJîš’’‚(‹Ü{Ì1ÇôíÛ—k8ôÐC×­['—äÿ0`0ðpäÛråʽøâ‹|=âˆ#Ÿ'OžŒÌNxõ¢E‹8šŒ~1Jy'„KúòË/ Ѝ¯KIä^¤å ,e¢³ÇŽk.C««ÅÇWcX½³?žWhç?*¼Cel÷ó“¼eÛ;`×|äÕ±cOí˜acùòå‡~¸œqÊ”)Z¦Ý¼ysÍš5¿þúk¸.$á« šñì¼æšk#W(˜g?ò3²+c`¹r8-*îÇܬY3† _­S§7}3æ„pp«Z©6±Ê'Z±Æª\ÆUW]%â½|uXuX-n¬Åj$l‘»1i½ùIÞ²í¶•ƒ§>¨N=5 «‚1øh”sad€$0à ‚’‰°Šf(ú*Òi¥J•@ÑÔ©SçÌ™Ãx6à½2~ãÆUªTᘽzõ‚?ËÎë®»q®8`Æ ì™;w.`¶ZsB¾ùæQÎâuüšn.›%ÆÄ꥗^êøªÃjéĪQ@²Å$_‘fÏ8ãŒ'Ÿ|DõîÝx<ôÐCU«VE*Æx2†ƒ;È«J©¡C‡âÔsöéÓ‡ño¾ùfÅŠï¿ÿ~‘ß{ï=và¶mÛb­=ðÀ}ôQö<üðØˆ´³TógŽ °ÑWe'¬®Ù©†ÕŠC™ú*W>þ|§¯:¬–B¬j;0šÞ< TŽA(" cæE‰` |âÈ3 €=Ê`ùé­·ÞêÞ½;¿âÕ”—^zéÔSO=ûì³Å¶ÄN…€zÒI'=øàƒÂ4ŽYª9!ÿ¾ûîÓQP ,8ï¼ó¼O¶Ïr çбâ8;°Ãj©Åª0+TÍÎ;‹é œ0ã1t†o¨†• ’INúóÏ?Ãxå¼ÑŽZîýá‡&MšdN—5L–›»ï¾û†npþU‡ÕR‹U-RÞ|óÍH•ÂZ­ø^+X#\ÇîZ¿Š‘9A<° /põv-Ÿ‹:ý믿ZI¦œý0íÁƒ£N»¸%‡ÕR‹U3^ŠÏ{>MaòlÌ8AÓ¶dÍ€5,AÄ¿¬.Øaµ”óUÓÊjYe÷hþª/q'æ;]–‰ØåÙ8¬î5¬²=tè—^\dXöX=F$Oœ¿N†\óxaë«{«0 /‰13æþK.f)EÕ±gœq,õ¹"®.„êÃj^°ª1cÙ`‰òéÞý’—GYbQ`50cºjÚ´%ŽŸ~úÉ:—Ø~âͤêÃê¿«ÂEMÀà'$8žÌL’? 'ª]»fùò‡ fª(°ªf?¡*V¬BÎ 91âwíÚoá '$/Y5´+ÅaÕaõß‹UhĨÀ°råJR· "½“Xy¼„"ÀýÈ&1⮢³-EeàÎÏŽMÄÂÈ‘#I‹!ÓÐ_²Ã‰$ô׭êÃê¿«f^o¿ý6Ñ<ĠתU‹@ÜñãÇ¿ÿþûæ^äÙÄlK)Eg[êiI¿[·n%†X‚£Ž:ŠD3‚ ¬%.×u€‘êÃj)ǪögòúöÛo‘rÉÒ$ζ[·n„³ƒ<ÂÐÈYá/ølŠÚÜSŒÌZÖ5OMDÁwÞI U`¹dº“c±Y‡U‡ÕÒ‰U ‚“—Êî¿ÿþÔF xÜ3òN‡õ§UkÎ:óF^ÄÐß~ûí7F³%……Jú:½Áñ««ÉURP2/¡{DM‰æó2«½ á½SS¼**‘ïF"ËË/¿¬ý=–Tì°ê°š”XÕ¦#HP€(9™¤§hyRG½îõ¸¥HœºûÂiµ ‰ãÜȱÇKj›ÉcVV“«f…[vR”­½”‚`šèEE,91†‘ÜzdH¾.ÁÒƒ±š fóæÍÓwÎC— ‡U‡ÕU‰GÕÎRŠŒQsˆÊCl˜%§K` €U-ë"†]ºt¡h‹^›ÌF8««%«ºÒ/*ýÏ@1r£½Z\á°:ñê¡ÌÌ2™™¡„oJŠªÜÆìóÔÌP§N½ U-ÕËÍRJŸÛG$¦ a¼{wXuXÝ XÕ†\IѦ@¢à]wÝ¥KÄÓ¹¬`20=úÖŠû«TÛ6ª][u’çÝy¢:µƒ:ý´è¶¼½ÃÚžHoU§¶êÔéÌÂÈÀÖTˆ¹˜ë$¢ø’K.ÁRrÅœ‡U‡Õ½†UÓŒDcL,Tå¢2½ö:ZyÏƪl|ûí7Ï>ûò¬Yóž˜õòO¼<Óó~|Æ ìïßÿúCiòDìëL¿a¼ùuΜ—W­Zïz œ§å b˜ñëtêÔ‰Â+º€pÕ~‡U‡Õ¢Äª.íÅåöRSS ·ØiaòW­s…óÜ'žëÔ©CúÄ VMAãï¿ÿ¦²!z»Tè7ë69¬:¬Vµ‚ ýѯr¤øµÙ´Àù«á\úÄí~¥y^Ø´ØOg7*zJqZ—YÙ¬¨°ê ¨¤L)¥ƒÉFÐM\#qZ?;¬:¬1VuyKÊXSñÒÕô\2ÍžÈ_Í«á<ô5~N­m°ªÑ/ïÁ‹ «a£î!²téR¢&h ©+n'ž"‡U‡ÕÂbÕtÌhJ-y)¯ÑÎgþj)ƪ%“µÓªU+ÂB$KAv:¬:¬æ«ñ@æ±V…ýúî8¬&=V£6# ÿ¬ª˜¨*-öÄ>«T-u|Óã¼²@Vtbñù$> J«_Ó˜ä°ZH¬j™åúë¯Ç2L[G=稦S}´J')õÏ'âYÔ°Rl„B(5yêT¯®ë°Z°ªÅªË{]®NŒ“‡‰=ÿô( 2¡!5N©Jêü®çKJym•r›¨á½Ñ{ªTbUÄ' Ë)\¾e˶_yõÕ¦­[7Têéœ(ÍŒ=®(k æûU¯þ÷_YÝÐV“«‘ìe«?X½Ú'øe0k‰g¿³¨@3ƒuÕK•Ý¯ìØ¡cëÔ¯3úæÑ’>ž—‡Õ|ñUñ™1·ltëÒ¥c§N=.¾x¥îŒ1O0i¢4bÂ5:J©«GŒˆJÎ9îVKVy®í¨®‰2*úFrb53¶¡EâeJ¯ö“=™å×IK×ñI«E‚U@‡¼tÐ D˜¾J­‹)¥‘Ø£g£Ô|‹<´2T©©4ògwdwXMz¬jšxnösª‚ n fqÔÌœXdo˜ˆ¥TUÕî˜vKÞZ’Ç|7‡Õ\±*O$ `»vMzðÁªW?Q©‚ASèøaUö¤ÅðÜS©ÓÏ?ßôß8¬&1Vu¼îδu*× <€=1 P´ùj$çv¶øÜTC¢žØ+λ⇟~б«ö¯š^ӆ͛×WjN {™Ù¼Ô»ŠFr>"Yl S”Z¶bEįèœÃjòñU¡Œñ#Ç«º†I)1V=J¬úF©ªòþ•'Œ™°mç6ßR}«‰c M¯) :õ칟R”ÚJcªi†çQÄêf­7)Õ°eK+4Âa5)±*vÂ_ÖýR)T)øFPefÁÏŸ"¼XÍÔtÃùëJ¦×n<ç‰9fp¢‹ÝÏõ!F7b3¶qÆË®°ï¾—+õ+(±S¯Ð›«™ÙÜœWVjú¬Y^aÇa5™°ªòþ=ûí°›©FòŒUsdZ̯ÃAîUê`Õ¥m—•ï®ô‹pXµ’%dÑÄ`;å‘GªÖ¬ÙÕÔðÇh»^$?|Uûož *Ö®½m˳(‡Ãj’aUÚUï¯ †‚Áïb&¥ ƒ©æ«aÃŽ"6¸1¨®R¡ƒBƒ®„‡0/×üoæ«b?ïÞ»÷AJ½àç5䫦ÿ¦©RCÇóLtXM¬šO>êdu½á§‰«álÄfªÔÌTÕSµ<¬eZzVû`‡ÕxQÄÃ=V™KIIÏ©ˆ «WaË+”òå© iæß8¬& V…>žzì)U^·wG>«1þø4’šòÕç_邆«‰e`6·m{mÌ&”Ç“/¬F #Sw¥ºôíëë¿qX-ÑXâØºmkÝÊuSc~štC+* VcÔÕZOV×\por–ê÷!Fg)3sÙ;ï¨PèÇ`0ì§Ž«ÚósÌóÎ{ïEâ”pX-‰XÕ&¥[GܪêÅp•‘Ó‚Q`¬f{qý¯R¦ÊþA2€×sã°êKT"étíÛ·cLÉL/ ¾júo®WªQëÖ^ÿÃjÉŪäÓÐÒ·|JùÀÒÀî°´HQðÕ Š„T5uß„û¼IÒ« b!D«ÿiíÚ`ùòh˜û¬`XÕþ›-Á`¥›=Û[ÖÔaµ$bU¯ßýÎꧺÅLJé~´P¬F²Ü6d=7®ÑxÇ®V’‡Ãj®qKòh†Œ×Ä£µ†¯jÿÍ#@åºu·mÝjUwX-qXÕ&¥eo-SA\›3Ÿ¦0XÍ^½ƒ2®æ=7/^‡ÕxXÕF¦íÛ¶í_«Ǫ̈!`†{«ò™­ë)uãm·™"Ãj å«Q“lf¤e½–ñæ`ª…ç«i±öW]ÛtÕ@u1†ù–Åô±9sª(µ-ÊÈùd ƒUyÔoªB…Ÿ×®dçß8¬–8¬j“ÒÌGfªÚ*”R»Œg^H¬Æ<÷Áƒ©ÁÔÏ?û<œ]\ÏñÕäÙD—¹ŒŒ#Ú´“„Ó ·dbUް3ÆZÏWê¬ /ÔÁ0«%‘¯òÚ²uË!UÁ¡’²5%ª[fìPX-ÚQ{òQêºK®óÊW«yÇj–O%Y¼dÉ>))ë²ý7…Ī˜©@þ$Ê)•Z¶ìŸ¿ÿž˜žV÷2V¡ƒ¥o/mÛª-¦Z5#0IµÊ(¨Ï&+|>بZ£]i»¤`¿«9Z`¾ª³mN=çœî9Lˆ…ÈJFv…B¤ÝÊߥwoj§g“9¬–DXWdJÂÎlxHCÕB©%Ùˆµ"PóˆÕØ¢H ¨CU¥²•^xé3…Õé«ùµˤњõê«®ª^£†JIYiøoòœ] *÷ÎTŠÆfmÚ¼+GjRB)Äj‚ÿä«ñRÌ>±:þ³õŸqÃÆU(_A§?¢–!Óךǜ81)ݦZ4hq×=wU¬X±mÛ¶¤_ºœ¸|Å-ét_¶~øaZ<žp k>üpÈØ±G¬5/XÝí¤‰¡t©Š.È54˜+a§S‹÷¨5^¬EñaÕŠA×#ôá¤K¯yAÒƺ&™)©›ný*ã-o‡ Ë VÃyk÷f–lÿêë¯zuî•FFkG•Ø C$N€Õ̬ÐßàïAUF-~}1G£Õ*}iŽ|ùå—ôÂa5Á¯úYü÷¿ÿ¥­cݺuŸzê)Ù³uË–²Õª=™í¿‰ä«iÙªéZ¥0#•¯PaèØ±[7oÖ݉,ÖnðX·ÐxW-¾eøÉØÅU³“¾,³M“þj5q1÷X=ÌNA£¸· Œ¹Ç—‚M‘&¿’ yú¾äµðµ…'y%¼Õ3±x†Ì¬R£>‹yÎÐß(S½PõhßCªê²íÚµ£=á}÷Ýgö׈Äyýk±ªQúñÇwîÜy¿ýö»ýöÛ¥Îh´°NlƒRÀUñ߃¹Ö…Ðu²v£•¢Jp÷~ý¾‰U‡5[œ˜Ùš#~ív-ÒòÅ­&-=Ì"3MlÅU̧Ÿ~úµ×^ÓÕåé“ ëÐ×úÃ?Ìš5kþüù‘ìj‘|~øá‡sæÌÙ¶m›žº}ÿßÿý_‰òƒnä€ú®þøãvJ {½ Ì;W:¯ùòUOêÇR°W/o¾¤ÆkóæÍ\¹Œyî¹çÞzë­,é+3òð½×:°–ꬂDK(³Â«1±,¸*X.PîË/¾¤}†,ÒzÅyòÉ'aG}ô믿¯rÚ¿«¦j:`À$Н[·Îœ¨,D…Ç}ô8Ãã[aR ½Ïƒ”h¢†ð[Ë–YGãó×_½ë®»ä‰oß¾¾fÍšxõ¾5ÿ "×–€CÊ¿ýö[+ÙIƒ Í`‹¯òú믿ڷo/—Âe¹ÚµkñÅBy@î€8þøã8∎;NvÂUêÔ©sâ‰'6mÚ”G"ðÏ>ø œ§|ùòè$õë×?ûì³…ÊW­ZÅø6mÚp¨n¸Á›6mjÙ²%{jÕªuçwz›”˜l™Ö}cyOVý{ScdcàÀ—]v™üÐvëÖM·Zeçúë;´ìm¸uëÖÒ È@4T.^ †‘ÎÙ¹[5=:úäÔ‘#­š‡4ˆž&|]»víá‡ÎTT«Vm–Qä%ìé¬ËCdÁ}ñÅ­K䄿¡s€ W¾xñb¡F“iïY¬ê›*#cSÀÞ[n¹åC¡#ðÚXüÞ¤I“䆹bÌF÷¨îҥˈXae^W^y%KT‡ähü½zõêËbK`Æ }ôQYƺwïÎ':å”SØøî»ïªV­Ê¢¨Ù¦føl°€aÑá! ÂM÷¦^žÙøàƒX8Æ©ù*"+'Z¸p¡\¹Üiã#ß;éÞ>ûPb_ÝdVÒ\F‡jT…š8x߃7mÞd­f/²œY`£FÒ"†6¥üK°ª-Z5*‡vØ3Ï<£qe‘µ9§ôèÑ3§‘ÉTM¿ ÎUŠÎ7ã&N¼°oß‹/ºH0f]6 ‘ /¾øâ~ýú±±dÉ8Äà â°qãÆÐ ÃL&i ô^@ÓÖ=… ]=yÜÅÄW…ªàдÜ,ƈ€G«!ú{ï½ÙRfáœsÎa½~­Zµ’ åÁwÜqŒüóÏ?…§½ùæ›ðLfI˜™BT‡Íš5Û°aÃã?¨„Žá¨ˆ©rpußõ/ZPkãF®çª«®ºä’K|±*œaýû÷g½à+"Ÿ\*{´¶‰H\¹re¡ž—ž{©Åa-äó Ol¶Ÿ&¸#Hqài÷O3™ªW‹Ö* í±ÇËÍ"%°—V¬îîìöé§H•*UB5•'k™$ÍÿfÍR$òù—_ªrå>ˆUñNÏ6&°Zn‹+$¦[ß¾_ÄZT½»bߺukÄÓ…yÊ”)}úô7iÒ\É@xÒ‘ÈäòÁ:ËuÔQ¯¼òŠ/Ve° Õ‹-Dð9tèÐ1cÆDbyŠ«r3ëׯG¸i¦U©Aƒ_}õ•eC‚»"Ö‚[ÝÓO?]‡þɪÚ&Ož¬µpT”`0x~¬à2“…8ÄŠ%Á…ërRÀ#§èÑ£š††¢)Ë%Ý|óÍ]t‘L¯ ,Ì ¦Z=¡@1›Ÿx~|½ôÒK{õꥹ]wßz÷•TdU~¦²”رqªeÖ‘ -yÝE^J‡R<Ä–2¬ê¤¨‚õžÆÒlÚKã¹ñLñõò!CŽŠÉº»²…ÞéJ¢WÇ&‹&D;c‰×•* 9róÆÉZ`f;FJËóÏÊêìÙ³ZGy$"›\×¶téR“fôµÉ‘á‚U¯[Ѽ~øª‰UäaHºø°*×Ê:Ä ±ÖÈ$BÙCõ;0Œ.1}úttwØ#ÀFZF‡D”åA5ÿE-„ƒÝKü4vìX$‹ÕOûY–°`±“EI‰yÒˆÁÑN‹(ÎpLX®Å0ù6lBŽ<0–ƒçŸ¡Ë¼OÁ0Haœ±)šS½ÇíÀY…pºv}öÙg5ƒÐ1ö0elÃ]Y™¸PÈî ¿ëTËרQƒà ?~¼¬:üF©`0Ó„ž)§D:b9<,ö™„{îÙ³'F,Žs †åb$0ÓYdãî»ïF•=¨C¨…˜¬´0¬ëöXm[BûG*–#ãmÂ^mÊNzFÌvæÿó÷»ï½ëµâæ«–\'A>„ 9»øú|;â$Vµ×‚Æ€‡a­DËùñ‚ÏòÂW³.Àˆ705ó%ä …Þômfµ{î9ÈX¦—uœxVI(õŸ|ò 'L@#\óU ·(H,ú ¤%—µ¦Cço¿ýv$»m,¢øþó}©ÅaÎ*ÏùÔSbÒtlÍDUà'ùÔŠ VÜ6Œ!ÎÁtBòwfGÛä3•Uì:ZHf²™ÙYž®ÞpÜ?b@·Kó1ð+LCš†¼˜¸"9»Z¢Žf‰flJ~±j…[r²†¸¯½öZä“ý–|¬Z¢â fB¸–¶Ÿ™6›‚aÕ4¿é€^ßar›,ÁØuÌSó‰qiVL¤ra'þíeAúCÐóšôutâžx˽¡æú+œ?µXc åZÁÖ„^_±õòÆ!ZK )÷ëÅØ7ìKïŒñ‰SGOoŒ¡DnL›6ù²ÁL&õʼôr‘üõ’?ƃŸäœ+~ò‚U˯qO‚ s±éuÌ•‡ï-¬ÊsÑ×.ƒL„õ /XÑyωK0‰“4LÞŽÇÎËo¾"3†LoçƒqD &a[á«Ð^7K’÷†Ê"=Ú[‘xcUGŠ„ëœÆ3߇=EzÍçxÒLŒ°"-ãÅÖZ1œ^‚“ÂØ§Ì&“+0ó\ñÒ€òÂëòž¿j±a5Á<®Þ »½ŽUËT†‘/‹Ý„ ¬à­üæ¯æ:‰g[ÎÎcE ™Î¼ .˜1^¶š×¶ä]X-y*ž-aMXÅÞÝ/þüUSJ@ô^š Ò@îHìXùÅïªÝ³Å†U¯_i ¥£4² á"¾¬êHÜÂ^É^ĪéÜ’ \üd> RtBk† ¼E…UmÙâ¤Rõ‚`¬¦–jZà.EŽUÙÛŸÕ M<÷›Ãj’aU(ÇÑKVôvIÀj$gk&):A0Á^Èxf!oõÂcÕô™q:NÊ© 0{®Æÿ½‚U ­«Y³¦•ðí°š¬XÕFàë®»ŽH+Ÿ®DaÕòÄCFä_¸ˆ}‹N«¦‰)&d{âcž+Á´ìu¬j‘„ _ôꈧ£ÃjóU2*o¼ñFÓ\Ò°jul-Ñ­DVÚöy,uÓ7— _Xµ ÑøŸ© @–?ñ›fU‡ì´„`Un–Ø)ò½¬ˆ\‡Õ¤Äª¦KŒ%„C•d¾ê-° \” M‚Qb©N"árñ\kyÁªfÎxMå°µÜk. iÍÑ=‡U{2f­lo‡Õdå«BÖÈxxD̬׎U+o~‚u ¡öëä«RœA83\”ÂQÍ„øÄO³DaU«6WÇ^ޝ–¬ !â'”þx.ì’†Uß@?âTQb‰×ùŸQ'Á”l½XµrMQƒñsI‹aÜ.º:†ÅÃWIábÅqX-%2°ÎY…Øa5‰õUø*X-M|Õ*ƒ„m‰ôW€JU¶©ú/±¨&…×ÍZ{¥«²ò¢œbVpXMn¾Š¤„φ" ¥«–)˜dW<4¨¦¿èâÆ` œ2ñI4Cб¬B^ÉÎW-g²ÃjÒóUL/RG+Ùý«&JqAÑÝ(d'É®"S®òÕÃh†Kî˜tèK\t"é°ÊÍbwþÕÒci’\¦ Ã&#V#F]/6(ƒDš5¹¦RÈOhÅ-I%gù•ŽtÖ¤v®î6ä[t"éd` zÕ8¾Zzø*ÄMOir•,±ûæZc† ’®‰^J„ÙtCø¤7Ø4>Q@üú믇ý•ò“«¤%S!ÍñÕRÂWE¤‚6ø"É“çzIµÁhDØ¡HfØ}^òl4ÔQÝuÑ +*8‰°ªólè~BƒˆË‰+|U(ñ=É…U3…•y˜ÇÈÕÔåݼ^ÓXäL1Ç\ g†?›Ù6‰ŸfÉä«4C’Gޝ–¾*•BÞô‹d÷ƒ,ÉX5óÔø¼å–[ˆÑ'B]Z×&( ‘k®y$gé–‰'Ò—Pa]t"YrÍõB†¸Dž ÃjiÀª¦?ú,K3»’ÌW-¯)ó¤äõ¬îÑÂÕ[ÒÇ¡X!ê+)8“7ÆšFr.,±|U¦ ·¹6C8¬–¾Š×‘ºûfÙø…UËkJÿ; ãå‡õyQêKá|ÖF3£ÿ©&L:æâ¤¨&SAé*E‘˜àQ:¬&_}`V_|ŒÞ¶â%«Z5…Ñ‘kе“ å‚u‰àð¨låë_ÆÑ5XwÄ*±5Gå9’=OÛ^’ï]}àR‚Õpv[1ŒÒ-»DaU›aù¤Î=1§Ÿ~º¥šú65+—)tøfG™—”x¹ôí°®,Ìœ9s6oÞ,ž+Ã$c‚ÜmöГ.¶8=#¬ÁSΣ¥$—?›ŸÐáË<çÒ1è¾k’ž&L£º+¹o¾˜0ÈK—ÁTÄ•_ÅÄoš—`ÕJÇ) V­ÞXD(Ï OxõÕWMã7ÊoïbÕ’ÕYS:uê<&L˜ÀÙ[ X•Û$bT–4iaÐùºP”f½¦ÞˆÑìÓì4Ç~r —-[Æž-[¶@½Ú¯”&­êsY16–r!€ò¸â=_M Œ!‡Q~¥VC–EêéÓ§~<¬ýÒF ÷Þ{o­ZµLÃÇ,pzJ636(|ꨠ ŠwʯèoÕª8ôåZ¦Ûarp^„+é2ÔL`1Òv_¬&®š›/¬Z^S¦ˆ©ÃkªÝ˜w*XµDbê­~€ TøQ«V3xX…ÉÅaÞ&†kLÄI¨Ž„ ‹’Áp‹- 32qŒÉY TH—€&{‘ª7èÀóæÍ{ûí·þ)ƒûo–IÊã°Œd!ð&]š•šX>ø 7rÃZP8à| ûxà×dž•)ˆÙ#zÁOïÞ½)ÛsÛm·Éà„hVPˆ?÷Üs4ûñvìØ|jË"'§'x•)`­ ”ØçàSâ¸Ub²l0qò¼©"Ïì0ã]»v½òÊ+ÍH7óžYΙ&äFíOó%5nŒ©'_L¯ú8úñ‚Èž.%°-Ë¡¹øi¢üõ÷ßõ,«¥äµÐ<†‹gÆXq,¯i8ÿu!Š «OÃ6ð-8A;/ͦÌ¿‚aÕZv-jöN8ØÀè%“,OœÀ'D¸"IŠ ^v¤‰Ý˜‘<1[€@t"‡À’?²RàߦoT4~üx¨—i~å,HÝäô‹ÎÂàdl@QØ¢9,„ÇB¬H–ÚLŸ„³Î: @qRkºLˆV†‰àÉîBxØnXø8ø‘C³ñ7n«½ AWûÁ¸bƒù"ùC®å–Æ¡‘XÉV¦Œ¥K&Žˆ¥E?±@I,E’*A9/©ZÆWÖøžN˜°ˆ a`òäÉÀ•É'³AÊU.FÖH™,îvÍš5 xæ™gX}u«W­ê| ©ýýå—O§à¼`ÕL^aU¢œ u1»téb…Ýš—Q±öëˆÅjN™–W_ÓQ¬î–3Âô±¯×JÓ´®ˆl"» •C™p )ýñÈ#hç0ÊAÈ{"Í2j„̺w(Ã`ÈÄKwrw85ÉL‚ 0Ìmrkð-n–ÓÉ ÅNÊñå+âäàú’̇üÚÁ¶:/_ÕX]¼x1 R§4•y–âÂö•~Æf\½Vùx!=b;Ä*¸ó•R ¬¦Ä¾qé(¢º§¤½\œI hµ* NRSS_Yx€+/ ̙=¯½ö|U.wݺuÜ­X ôâdÊÀÌ5´Äï]Œe“ þ¥ê¼Ü ÷ÅÝñ•§K¼TµÖ&>}¿ë~ûíê‹ú¥V¨ F Sçt?;Ve7ž36/þÖ;H„H{M½&™äª Ó3ÆJºT?}út3M/×ä'ïíȤ¡…ÁU:œÝÁ›¨ íl€1LÓæšˆ<(„¤%IÈL"÷ɯÈírR8t à õ ž)=Ž1‚m°D¶œ‹‘0òeËBÒ|%Õ‰‰…†E†9ˆJ.OB¾,¾©ÖÂáà7ÞLKæRl«|±aõY|Uî[+Šèœ â|ˆ×ˆ rnf‡þb༡ǚXåV1 3’[2ëŒ@¯È$ôÞãD\Ý{±MË3&èZXµ\GZ–€Û‹Ð’' c@%–û”[Ci‘$Y/HÝ”Ÿ´avÛÎo¹åÀJ•T§Žê“5¡ÌÌÐúßT °èõ×µY+1V-"¦n-DŒ%}Ãjñ”ß\ó…UÓ¬ªo–GŒ¨ ÓÀ%kYËò‚U½Î†ÓÃ5¯1Z¬§î“zÕ°«þüýO³‡¥†4žÕ‘#G ­ ©p Ò„J·®åbÕ!ZèäÃå *‚2M¬"CÒ¢RŠEJ¢¸Äड़Žgº Â9Ù ÌWv²{±jÅfêëĸ=h¾êµ_²‡‘ZD3*š# / «²kÀ€ÂE¥öÔ˜¬rÝÜ _å€ÈÏ?ÿŒÔÁ §„•Áè1 É"Äì Nh2…!#‡@C¢‹ÒŒy Q™? ³°2•–‘Mß ë‚ÈÀÖ¯úyË0‘«M¬²¡BËÈ;EQî"Ë^2wnãZµT“Æê•—A©â½ãŸ Ÿ·ŽmV«VºádK€UM¸L Â!Š­ò ¥«¦Ÿ\ žÚ°aøkÌ?ýô“×›˜¯ÊìÝqß5UÍÏ ˜ùŽZÑZµ®R³Ê>É4mé04ÈIš È’ÁX÷¥± uáÂ…š[À9n¸áhÒ‚ÙØ… À6,‡0rýèÞp<ÔTÆ‹„¿téRí³Û(hèÃZfæìˆKÈnpXˆȩ̀¦y«8ŽvÁª¦Ë&"aY1±JoL¾J!¼¾}ûÊD„rŸrDôlÀ-ÛHÕhÛ\èÙgŸ-Ö fô²Ë’ÈoØ/\E„gø-ÛyÔ¨QàS‚,"ÇK²”#a¥`nÌó¶´1¦ÃÉEŒ,¦ Qa¡pýÜeò1 ‘Ë*“qJ!8~BjÃðÉ6@’Öµ,ÖâìA¶Dö‘®´„aEôIl7Á`P <ÜkK0úG“%1 &)dŒMGše¢gVÔikåÑð—)S¦È]°ºro½ 1ý˜20Â,«Vån2wkN«“îQ¡LáHXY%ÁéÍ“ý@áñ€v>…Wƒm$ ÐüŠbÍNÐ…œ€^q\ìű' (“‰q\,@¬ Z÷0i¾ Ãd”¯ Ê[QPðUV&™S¹ÎE–™6Ê·ëÐá¦Q£† ([V]qypßQ”FvÅ€º+ºÛfg`ö5Ê—ß²u«7:Ü í`mbá²yÞVØ}©ÇªÛÌ Ïa6 ã'Z¡rüÔçŠ>íT;ð™¦ÒÃ*ÂgºÊ·iÁô›ÕÍT…n}»}ñùŒ$9^@Sëƒ>!N©#±.‘x€ Æ`2ÀT!ÔˆšÍõÀE[Å^°\$/þˆä(Í…Q1¹šÜ#9ÚlÂæ/à…ƒÀoY ^\åöÙæ¤^¾ 'ŸM$» ¹ Ñz¨‡bñÆçÏϲ-iÿ§ÑBIdq-pÒ˜ Rn&³ÏöH{lVÀfÚÁÏĉQNÂé¹% Óᤠ“n¢ CÈa­òÆ<ðlà·úà ¥ÅóÈ¦× X“+eþ¢JHZÚE={FÛHœzŠúø£¨¬›™¡Ò·gAŽª?ÓwD=ªÙ¨ë™Òòš¾ûî»”ÒC:˜ãÀÚj/²ªôaÕT·ô´À@ Ef^­¢3šˆÃ‘ðGk>RAõYðsüý 4}$áŒè™Æ6"ñwïzªsá~× ¿¦fõšßû½©Ê“E|ÕuU!9æAG›%€C‹!ܯǬâê7Ÿ2úš¦mmé„»b|MM†±@pXñåH@+œE°žÎ!HiùÎ" þ S‘p>T6L9»}62ÅHTôѺ¯©7j“¬%Úyã°¬ˆ +üÊ<ˆ•Þ¡EMæˆ+1ÝÊæh±û„•k¾jé±Z:á'Zðé§›Ô®­Zµ ¾úß ¨¦iÛTÆÅj.ÕXåp8°rE9¥~øþ{í+3½¦H×øcX•y–¤ðõ–’ «ZŠÓÄÜ`& _ƒ á>¾ŽS™Ì£Û}¹ºLN˜*oÁªlƒ^‰—ªeGª#Õ¾j朙¦KæPáƒÊ-mÐÔ͈WkƒeѶEð:ÆÐœŒf%@ÑtÝ›¬:¸¥™ohÅÿÈIYò°펅0'¦§—+ÄlêÞŠ[é±WØèÞeÖ ±*GëñÞaú+üÙ4Å z–ZòÖ}ZD̲$å¿Þï½.mÛªƒT÷ßÈ GQš±=ŠÒp6õb5ÊZ·G­Mçtï}Zg ´×–NlR "w¼Ò ÿB¬š©02-H‰HžðX "–H,cž~ñ鲪ì_Á*|ÂH5V®Âf³›’9CÍÀul‡c—.[jx#qºZ„§-aÞ:æÚÉäNѱ Þz1âSÐ9ÀV]H_2UÑ×¶¤ó^ø õ¨—#ÆÐ7v¿øs⼑÷ñèÞÆVé¹—­Û·¼ oJùýÔµ×7nˆª¦QÓÑöèz-˜Œ‡U˜mÌéÁß~¦¤,YœeÞ ¨ÖhGˆCJÃ{ >p’bÕrbá`GƒÅÜ ]ÍâÆHÛ™vðá?¤B5ÝÓTM¾ªY«¼Ñ`£J¬ÊÜÜ:H .£ÊœÅù?ýø“> W²+Μ8‹,ÓƒÅ|moqc÷M%x/æ¯&ÈVÉKþª)À# Ý7aÂTV§uT_|–­šn‹¢ÑzðU†¥m‹þqÔ'5iòÆ›ob¦ÂâMdŒ×k)ꚣIUÓ+S$ŠÂî¼1úŽÑõUýp¦ D`Uö#'gƔد_¦:W®Ryü¤ñi;Òä^'v Ì_Í5—+QN\)È5·ÔÚggÏnT³¦:²©šÿJ–×4}ûnÕÔg¬ÊvÆ.µõU¯nù}÷½vÐ UÓ¶«ð«\ °êÍ×A£þ+~\ x×Bû…Þ,ÌŒ>•,“R®Xµ”ØjJlݦuŸ}ñY+vÊÕ…(¹u!„^—-_Þ±}{Uåuï¤Pf$`¢T#0ïX±ÖèAfL¯“Ýî^lÔ¹æÜ:¬Æ NÄ B«ÊV(‹u7Ô4 Š °j+±(b'©IåU…v]Û½¿òýæ"‡Õ„UPT÷ ƒT‹æ)ÿÊRMª ÂübU¾¦ïA$5h·J½ÃjóWµ»‚9\óÉü4_¿†ÓcV¥|aU•ÿ‚Ø?‚^¢ú—K)wýëþég߆€«%EAkÎã«Ck\wnÛÆÂ`5fV°èÿ-ÚO©Ÿ~üQ À«¨ ]é2"ÍÚ5»^Ý ý4Æj+q(óÓÀ§ûª}»žÓÕ·žÃj ª&:á°FjÈà Ä Z ,_Õþ›ÎÏ?óL+ÿÆa5ï|UÖÓ'Ÿ}’P$̹ÚOS`¬jÄWdé_‚¿ì—ºßŠ÷WX~Q‡Õ‡UÐÊ+T(\û}LDÚQXÕþ›µß•ZK_Öù7«yÁª6ÈíØ¶ãÀNSÆü4iÚ¡Z¬fY›‚™mT›ó®<Ï·›–Ãjɪ^¹û‘†ß­KP KVð`Áøj,H8zÀµiÒ$#gưÃj^øª<š¡ã†6R¡pZN‡j±ªÍ„þ§VN%FJ¯«%º>°¸¤ª,Ÿ’X¾$j2´Â} †Õ¬ü›´ÐÖͪü~sfÎŒ' ;¬úAž >U>°8¸Xûi ‰U‘ŸŸvwÕT‡ÜyÿfYY‡ÕUí¸uø²R£JfFv`C!±ÊgÌxô‘Z*ÎÓwXÍÕg#LµKß.UÇX>Mš×qZ0¬ŠçænuOµÃ«e¤eXE}VK.Võ*¾uÛ¶º•*žx,`IÂ…á«Yþ›tux£»o¾Ù7CÕaÕû£³”YöβP(ôcðÇŒX´ fª…Ájì±1øwŠJ}iþKÖqX-éXÕ†Ÿ§{LU¬ܵ-{äõī⿉Do,Ø?\¿þO«–ê7¢5+n)’Ù¸mãêFñÓ˜@-0VµI©Ÿê׺skNaÉ:¬&VµÐu|£FjÄР¤¿™@- _ÝûOߞ»œÑ«Óia£ó‚êïC”ñè¬iª77ú/x0_Xí0gH˜ÄW•ªV¯YÉYùÙa5izOÉûÞòå*%%øóYþ›üÆ›’3é«QøáUê:tØžì°š€p×ÿ¹>T)85e½¢ª8AMØÚ­Wƒk±Ë­ÉXÚRÁy æyý4«IÉW5‰<úÀªR¥PÚŽ,ÿM¦_ —œªihé[ªi“ÃkÕš=c†·ÿ¢‹Ý/@ì>k4b¼¾ aó†Ô…xJ=«õå"nÜ\sâ(XDÏSçŸ|v;¨«ÉU‡…´yݺjäˆÝþ›XAW«¦ŸªÎ<ƒÊ¤ƒ Ø+䣋b%Æ¡Ãj®9qáì cÑ%/-rÏ÷T«]­G¨ÇÇêãÌàn³“)[ÕˆŠ¬~H |ûÝ·”,õm>â°š”XÕáÅo¼õßüòa½»óo¢XMÛ­šnÚ¨ReËîßÿ¢~ýŽjÞ<«€n¶TrX-$VÃÙ5æå¹¬x{Ëbù2娤Œ#KJª…U1ãžEæi¦š]=âjÓ¤ä°ZJøª†ëÙíÚ©>çæ¥Û³¼¦S&«êÕÚ}ôŠwÞ9­I“&´ÐÒo®8tXÍ;VEN¡ÌòÁU¾yÔÍT]?¾Óñ¨*w«»£#`ûu²LJ̹¹ûUßïï¿þö6àpXMz¬êè"šˆ¤Ò«dõªè£Ç£½¦‹Þ ÐÿˆC}~γ(&ÖéBAp_eÕaµ`XdWèãE' *êŠØO¿ðô!9B±P-¿ŽŽÐù4é¡ôʪòä©“u…a‡ÕÒ†Uí¿>ðJJïS6-Ú` bøêsuV—ƒªT¹sìØÙ… Ë'݇hÂIKrg[*¬FŒRš4Ñž÷2çYÅìwfŒ»k\•ªUº¨®_¨/µ»+fR£ÆÔ?¶>U`2à€ºv트aÆ™Ä#S‡U‡ÕbªåBܱcÇðáÉ—2dˆv÷[ˆ-_½ë®áÀ€ÔÔÌ@ —·R¹ HIásF¯^‹„¯jç'J)¾Óý÷ßÚ´iZ¸0c6VV÷2V5b5Õ¾÷Þ{-Z´8è ƒÐÙ´áÇ[f:ï|•Ï;ï®TÿP(¬ÔN¥øÌˆóg¿3â Û ²ÿ‘ž=;’¯Ê *Ú¾}ذa ´W¯^ëÖ­óe§««%«–ëŸ×c=F˜Î 'œðÖ[oi‘Ø—å «ÃbX6¥"&­w$ûŽ3,-dÿÔž=O-0VMmüÉ'Ÿ<ôÐC›7o¾hÑ"o„êÃjIĪöèè(VÄ`„a¼‹-[¶\¾|¹Éc“«Z:ЋQÃØ‹P½™ÅnVVK4V͘8¡`šÁ^qÅ•+W>ýôÓçÏŸ¯iÝ H.ÉX5³^¸/À D±!ÝqÇa³Á”aìuXuXM¬šî 1½€ØjÕªµjÕ =V“¾Y!±¤aUÄ]‰ñûï¿'X½zõúõëÿç?ÿÙºu«ö3'γqXuX-ÑXÕˆ5EÇ¿ÿþ{ôèѸvjÕªuà 7dgY{ «¢W›‘Oo¾ùæ9çœS©R%lfÓ§O×èõF88¬:¬&+V½¡ËçŸþÔSO%ú¿uëÖ=ô˜OuV-Ò̶x°ªOj!’^¾M^8âq”K—.ÕÁ‰Þþ1««¥«±ZúUö–[niÖ¬ mß¾=žIàa…ìâBwÜA,Ä¥E‡Õi`•‹Á!l^°J‚%'Mš 媰c2µyófsÉcNœÃªÃjcÕÌ­3™Ø'Ÿ|2fÌÌÅU«V=âˆ#Èó|ñÅ×®]«LžB§Ö±Í>ø †rJÏ>û,ûI‹;묳 cÇŽ%1pðàÁ QDPKȧvštEŒÀ/½ô†hq Õ¬YS2õuÛ}mD8PššÊgÄè‹cM,†ôŽ;R6±{÷î’¯Ç'W2eÊ3„ÃaÕa5)±ªóÂï¼ó΋/¾˜ýß|ó hÔR+$Y)RVá½DJòÇÕ«WƒU®a_ý5åaຠëß¿?ï¾û.\”_ái`uæÌ™HÂ0OFRÞeáÂ…lœR„ ÿ¼ì²ËFŒá-ãʸfÍâááñ°*6Òï„ @¬Hã|¾þúë|õv¬rXuXM>¾* Yôá‡ÖöÁ èE†~ø!‰ììׯßm·Ý&ehå:‘xëÔ©C PÉú øœHC?þøãÅ{\£F B7G²^‰1f'(‚åÊAÌÁå®-XV 4Oþ›@–a¬ „sèÙ#¨ƒ5B:è$xX««%«Ú«qì±Çbã‰dy"’ \ÌÅð+x#êâ矺(­FE%òË5VÿøãàÇq)1p²dɰÊN¸Õ÷A¸0@rñá½~  ÊeÜxãÂØ9£i Ò—Š¥ )]°*È´ü12ŒhM\Çz B&7ˆEDþâ°ê°šÄ|UH Ú£À ¹+æ"a0%Š?4mÚÝ}µJ•*ãÆƒ—‚OÑ “DÛ俤þ!ú²GŒÃ"]ôÁ üM[žÑf0% Ñ'eXŸ>}Mב¶Ë"QDÃ5n°]a­Å²…åI› O6Â9{m«/˜a(±¦ú*Ãð û•ÙcÅá:EXpXuXݳþUêÆb÷)n¶C©ôX¨ ï;=ûgØÎPˆƒ<"±º»Œ8lPóÄ|JéPRáàõ¨5{‰MXÈžÑ<ð€Ð=öáºuë2 ™tøá½X›À'ˆBee$;1D±.ªñ ‘Ћ* ì…OrX°LË­0LØ>ø×WrÆg°4x®Ÿ$>©,É×Ù³gSÕÙ–V‹«'…®.S&3*ì{Ÿ}ø|ªwïN^ zð)çåµ+öÒ±MV„ àf‹,Û½ˆÄfÀˆáÓ rúì³ÏH»7cŒP&¥•†‡ˆµ ÑGcÏŒg4OMz«F$gñTs˜¬AÀ[‡C8ÿªÃê”cÚãh¥**ÕA©¶JµSê¤8ïvÙï“â ãï핪sæ™|c!ðvàñFFŒbÈVÜŸ©4š˜4 ¡.²Z°šYø2Ÿ­·áœEÃ#9»Ì;Ø›2°9L… ƒ³7ÙaÕaµˆ±*ß|óíË/?;oÞ¬—_~"öžçý„1à‰øcæ¬\¹Ê7Œ¡±Ö´—ÆË1°å}gÏ×Tëûµ-ÚrìLßeÂw&ù5­ØÄ³ÃªÃêÁjûÄàÉÙ'ÎdŒæ©ó›W˜üUx&´ž‘ `ß+ÊßÅî;¬VõOéÆ+-ÎË`˜Na‹øõ‰‹—ÝVl¹æ¾:ÁÎÄù«^Æî°ê°º§°ÎC_ó<>þi¯äˆ« á°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°ê°º7°ªCɬOoЙ7>ÓÜ™àïÞ°µxg±¶ã…ÅÅ»$ë¹3ÁåYwçïì Bù¼÷þ+Þ¹|ÏëûŠw¨\GúÎa®SêIï„{J<‰gÛ÷½ë{yÞÉ7«Þyð^žïóÊû)òò°Ìޝ:¾êøjrðÕÿ9ç?¬ÛNIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qcolor-hue.png0000644000076500000240000006430412536324501021516 0ustar philstaff00000000000000‰PNG  IHDR²9zf2Ph‹IDATxÚí]˜Už™»t¸4"‚  H‡¥ "%ü%¡‚„Š„ H)!!R-Ò*Ф Ý¡t/,»{ïÿÎ|ìáìÔ.²qã›gŸÙ¹sgæÎœxçýZ‰1¯ÃbýJoû•8@,Ö³LW±nXëo™îÍöúNÏh=Þúà¶bÛñžåòC.æÔÖ†uê—®´žèÒ8¶GºÜ^¼#Êö:Nãͺátñ>cÂûÑåmoÛ©¹œzÊ©I]æ í¯XO±½—Éh»í~3î?ïxv™æ.MmáîÓÍe”:ý´BçøëWâxÛ¯Äb±žeº‚|ŒuúXËto¶×wzFëñÖ·}ÛÖˆ÷,—ry4§F°6¬SG¸t¥õD—Ʊ=ÒåöâQ¶×qoÖ §{ˆ÷Þ.¿h{ÛNÍåÔSNMê2mÅzŠí=¸LFÛm÷›qÿéxdzË4wijëwŸn.£Ôé§f‹Ì™-2[d¶Èl‘Ù"³Ef‹ÌÙ"Ã"Ã"Ã"Ã"Ã"Ã"Ã"Ã"Ã"Ã"ëY·ÈºEÖ-²n1ºE†E†E†E†E†E†E†E†E†E†E¶D³n‘u‹¬[dÝ"ë™-2[d¶Èl‘…h†E†E†E†E†E†E†E†E†E†E†E†E†E†E6¹°É…M.lra“Kr™\ÙÍB4 Ñ,D³ÍB4³Ef‹Ì™-²ͰȰȰȰȰȰȰȰȰȺEÖ-²n‘u‹¬[d¿E†E†E†E†E†E†E†E†E†E†Å …E±eÚ}óæMìÇÛòei§¼ß ,ýº2Þ.fXd0¹ÐЗ¿’÷`¾Áq°í~•3›\üÍäbíJš–´L”6u1›\Øä´l‘>b`Ðc»W¯^'Ož$@¤i°uëÖ¶mÛ>öØcÍ›7ß¿¿üÕäÉ“üñFá¡.oKf‹wÏÅš(¼“Ì/[kêÊqãÆÕ¨Qãå—_Þ¶m›ÜÅ_ýuÍš5ëׯ¿aÃ|´þ"³E¢ƒVˆÆpÇ _°`¢(ÇŽÃvdd$Ö¿þú«Çã)Y²dÇŽyä‘lÙ²íØ±ƒ^tï¾û.¾jÓ¦ 1]ºtëÖ­£ið˜<°(è¼õm”@X¤iܸqΜ9;uêT¥J êâ>úHUÕ–-[Ö©S'UªTK–,‘»˜a‘…è ¢‰|ÿý÷¥J•Ì¥I“†`dë§žzªråÊâc“&M*Uª„¿ÿþGnÞ¼™.Õ¹sç *4}GB´Ìz\º‰…hÓDDDôîÝ{ñâi?éþœ†´“xKïÂ1cÆ +?NGV«V­L™2ØÀ¼íV­ZEûûöí[¢D ¢Ù;$`‘ø¸¦Ç!C@ Ž=*pðÉ'Ÿ4h6.\¸€õŒ3räÈ(Pׯ_§Ó3fÌHÇdtE1-…Kl0,º÷#ad[E_´êÕ«ïܹM¼`¬ÍèX„¤¸DÑãW®\!UÉøñã³gÏŽÃHnؾ};P’^™‚«2,2,³É…f8`XXÁ"M°ëÆe,øøÒK/•/_Ï<ó ôPb.¼dΜyÑ¢EBýä>,ðstÁÈ›‘ìß¿?Ƀlrñ: ‰/žÏ_ xüJïa8¦iÓæ•S§ni„å—;,RÇ…‡‡ÏŸ?òráÂ…! ¬Y³†NìüôÓO‹.ÆAïEÑÅ ‹ ‹A ‹ô‘†> bþóÏ?Íš5Ë’%Ë–-[ðñÙgŸ…Fœˆ5`ñÇt‚EYj“jÑÒEòÀ´Î!Þ={L28âõâô.4¨?í“ÁŸOùsƒV¿®†Ù³çüä“Á—.]0À1JÖK¸¬Á sçÎ béÒ¥‡ %IêÔ©©Ñ¿èe,N›6a‘-Ñ¡erÙ¹s'`ñÈ‘#Ä;„™òã?ÆÄ»ÿþûÿúë/êN‹$aa}Ï=÷üðÃ4‹œV™}÷Õ­[W':Y•ÔíSã³—š™,6lr1]œúbÿþ=iÓf}¸ŒyM‰¾¦ÄD+Çïç{J> ¢sçγ`Á\:’¼ \L78æÚµk«V­*0÷í·ß†m ѹ4]såÊE°H]Ì&6¹„œM{଩9mÚ´ß|ó Íœ«W¯b£E‹>ú(6nܸõ¡C‡p"É_4­Ú}ºà•«W:vîèQ<ºb¬¦žQŸ¢6Õ§ôŠU+L¢4³E«V±M›Vh«oçëT1êÚ­?¯OñF©#†z²eÕ[²lÙ‡7oÞh«p45Z;S¦Lo½õ¶/]º„5Þm þØèÚµ+(¤`‹§OŸ€~÷ÝwÌ™-†[„ E°HxתU+xçзòäœ9s&¦Ž¡³fͺ÷Þ{ ÑLÏKÚ.ýW¼13gÏ„_ÄÒš¶Q *QŠ‹GUàä÷?q=B¾³ESíØ±MQ< êë 1:B‰¹®ÿyoèÈ}]ßyù‚Ú¡­.S«ªÖ¸ñ 'Ž¡.üNþ Â;¨‰á±(ˆ?”ŒyòäÁÆâÅ‹1Ο?OÞ9P¡@èÄl‘ýCNˆ&}k°®ÐgΜ G0Áûî»8˜5kVÈÎt¦JÁ‚5Mç&°ZšîYHÍgΞiÖ¢™Bî$ïhêU]jÖјè5ÀÑX«ªR@É–!Û‘cG¬^>É DË}ç‹Â=ÅV\J !šðkÑ¢ïц];ßÂD_¤Ž†´¦?lƒBê25fP´²b‰§r%½w .úÕWSoÞŒ”޲òäË/¿„cÞˆéÓ§ÿàƒ„›7^<ð 2¸ÈóÏ?Oì’ýÙÍihí¦ è$ Ó{÷î•}Ù„óMTtÔ˜ñcàÏhø×iÚnCjŽ11&  òèùV'ŒmÛµµUP& ,ʯ¢`”ò£XpК6him{ŠÕgóîa1Öd|ùþûK¡-ÿ=©úbn1D‹XË(yK¦öêÇ{îÍ­ƒcÕÿýW£§¼Bá(”¹ÿþûïÆé(”!¤KAd'^Ö÷Ã"ë9±˜¹¡ÈT-¦–˨k×ý¶®ôC¥u©¹°ªý¤ÝB@’š½,ÆH1·QyV'•¿³WÎås7B´WŠ & ²¤Ó$ÿo&ñQ€¦5Ñ ÑB8bÄp´Ìg#uK „e’o‰Ï×oFÚI{n^ÓÉ#Ž¿~U{÷m-M½m›5{ùÄ rÀŠ GÙ›G¶2[»Ø}è²ͺÅη(ki©Rð³Ïð–JÑjj¤zKí`QÛ£óšòåʃiºëõâcDe;¬ õ°×®]ð—„3s¿~ýúôéóþûïwëÖ­\¹rÐ$<»”‰]Äž²eËBi/?X'4bÄAâRб^¼xÑ–bË™Ù\&¹µ©I=”1cÎ’(Q7TûlaQÞÀ©ƒãÉ#Z£çõæM“&]§Nà.+¶u«2a"Ã"Ã"âÛ0’CV`Gî?°êTº¢VWSIjÄ &Š=b?Ù^:ê¢ôÌofZm/î°(’Êa4óÏ;·bÅŠÕ«W#œ¦]»vP“!„Îɤ¥¥H‘"ˆî®X±"­iƒÚF2(X‡*\Á!H»ÛÔúõëa›~²âÕ–KZ›—¨bûöípñï¿5SEwX”Ðކ‡ã¿håÑu…ùòå;vÔuÃôoµÆpZ†E†Å»b‹Ä¼/[\¸Pa]j.£j´[ªC z`Qì‡í墪äTòåÊwúìiYvs‘Ž =e‘–”žS¦Lyýõ×óåË'` Öƒ´Æ“.À±{÷î Š°³Ã=SvBr¢i ¤ƒLðˆ‡3Óܹs¿1Ä)·nݺV­ZP§Â|!~>IÈ@7ÀéÓ§ÿöÛoäø)ÇY“¼Êm … ¢¤†óû-ë³v ‡E¬!P“L}#Bùzš§`+”¯ðÓOKé-b+ò3,2,2,Þ,ê²UŒ.âíܽ³jµª:èdTµÏµ[Hg«Ft‡Eo,aœªÆî=º[ÓXÉ¿nŠoH [9yGb<=øàƒpZºt)¸Û¦M›¬Qò¥H¶«8™\d*j݈ Ø.“ .MøiÄ >Ù‰è–àïY»víáÇÃÄ'Ù³ÚD!I‚®S§¶®o]§ X”/!°(u’¸ŽçN©ôö„ßcX™6DðŒÍŒwT0,2,2,šoIdޏxùb×wºªŠ>µ´–šz.®óŒ‰ñ¢ü.R]Ñmëö­&#¸!A `¼È’[¬X18—î MR@BëjF)u­à%Wb°êÎ\L7°Dp$]Ú¶ÍŸ†´40ÙñÅÈÕ†pºUH܈¡œ:uê¾}ûäSpr§Ÿ?kßN5QÅÿ‹f…£ŽöjŸ'M‚úÎ;o]¹rÑ*S3,²ß";èØûåsä-盨¨YsfåÊ™KŸO5Tu§zÛùFòF¼í‚cÚã{˜OúŠl/[õ¹úÄOÈ&‹±pBFê ‚BˆÆp6F<"@&”Ë—/›\2öÉ…Jœ<{î>øO¶ù@±hõÚ ÞŠDèp ‹$Ç@xBÐFt4¡ô+7n\/Z´Dª0åÈ!®6jä‹#Üe“³Ž8@öÝkǘ(wnÕjTÓï!<<ë¸qŸQXù¸—ëD³ß"âÉÑOÈ6nx衇t<Ê¡jßHjÄè¸w§°(¾5"µ:2~·ð;áÏ 4AR@Õ Ý©RA^ž8q"|î¬Îä ]ÆF’ÆD› ™Þ(Öœ»qh'ßxã äõ"°¾}ûöÐ2‡|löß¾{X¼íþM!Õ^=U[NòưÈ&—P¢)IÁ~ ;‹@Çä3"ó¬QÌI*D‹ —ärP2§Ê|øèa—$Wkr¡÷ÐéÓÿÞsOÎB•KçT8åXí!É [Ô$}J=½þ˜ºnÝj§ o,D³n1M."·vÎ{r*¹õ|¬‹b2âðîþIç/­^ie*è°([ZºwÏøÃwq2å$,’#~zé"›Ã¥ÜZ…‚a‘u‹¡î·Hsuâ—õçÞ±©¼vâpÒ ÑRD ú”n{Y÷ë:¹@`  ÑÞØÊÛ¶mF3W­¢ø¢ã UøMB!ŠÅH‰ÃÂ2#†[NºÎºE¢™-JÅ•b¢«U­¦#ã.í6aLK´ØCÒ;Œ@éGŸˆñÆ[¤×J‰áéV¯¼í”“lBô­lÞ†¥eâç:U5êS÷ZcÌ™-†"[”‰Ì†?6誦'c}t’Ím‰{ÑzèÈ8mÆ4Ùö¸lQ<Å?,ÐU-o…?{#“•-DÂ)çÔI5Cz%oÞB—.]tla¶È–莉¦yÛ¹KgÝö2Û#*R%+,Æ~T/«Jn%g朔6 d!:ªB…ÊÈ”³gW§œä¢I«ØÛxë Ä`¼N9 ‹,D‡¢m²½;q,Ò² u›{c,š.(œx""®–,Y\omM}¾vâ°¡p¼i¯p´Â¢ >åà~œ­”.]62ò†u°®\¹Ș.]ºU«VÉ¡/¶MͰȰZl‘æCëÖ­eL¬æêúßÖ«Šª4TÌIjÝaÑ$5ÿ«†5 ÃePk°gïž—¯^¶•šC„-:g«ýA/!ýÆ«]Œô—(âݳ»ç߆ÂñÆ-G³È,Áb´QÕ¯A}‰¯]»Ê”)ÇŠŒiÓ¦ÈH;݇.Ã"›\‚¹ò­i&|þùç˜EM›6%”Í" Ìëo¼~;PÚÖöbÝ#…¬h#5%-)•%Ë– [³­¹#˜*ÿ%pä AŠ/ž)S¦cÇŽ£‰~þyyµjÕÑbÙ³©S'y"¯Ýrÿ&…£ÙärãVøóÚÕº «n½ºÖäCòoÉȈEpF÷¡Ë&Žr NX?MéËIQÑQ>¯Èޏ®píÚµ%J¤OŸb£)StHÁ¢¬º…¾íöË/¿ÈU½œBªñqöì™Å‹?`hlÕÅßë´ñä -u*¥jÕGñr™ŠNOGo¬>ú×lß¾½é6ƒ–-Ò¤‚›%K–Ì™3˜AË ”P”·mͨbªuÔvÞ=Î]8';ߘŒ­øjéÒ¥F ƒ—¬µýB ©5æÏŸÖxõÕW­UV¬£W(‘ýaÀ€¾™3‡ãÜÿµÖ^l¤§ì]¶l±èÓ„L`ùêßzõêá:½zõ’“32,²É%ØL.ò1W¯^¥L*˜Š&'^µÉöò‰QÞÓ3ì–³Žö©¦†ëRó“O>¹c×Yj¶½ í¯U«NùóOsm¿Ð‰rÛeË–…-˜¢-c¤ºØ.3¡pD¾‰–-[x<©Ñ˜-Z´°Jt7ÈÛôÓÔ5sæÌ±ºy³É…M.AÂi!ñ¹K—.ñ}ûöµrxÙ¢‚¯^»Z8oa%‹¶8L}HÄ{ï½wÞ·óè,Yj¶}ÏÓ|þûï¿õ´Z•*9õZ³E™8“áëã?¶MÜàÒ¿r¸äöí[;th·k×.kùª„°E“â°Âs‹Ù"³Å``‹ƒV¬X *Y²$åM1eîJ8[tï©§žªól#ǎЄ”óÅ:=‰0âN²gÏž-[6qK ï¬@g‹Ô)ï¾û.:eÞ¼y¶Fy÷"_M‡7Ÿ;?rg‹V7ï©S§>ä%ȧ5!#œÙ"³Eg‹Ba„õ?ÿü9ٶׯ_o¥f g‹rgëƒæ5óÓÓÉ?D÷@N! &÷ãàf‹Ô\;wî$§y"Å;æ]¸SK[´/o#Jت¡™-2[ 0¶(³’:utO·Y³f9©È½–¸@SuÙ¢|Ô‹¸7`„‹oJ±Eê”ÆãÁ7oÞlkŽ¿#¶èÎÔîˆ-šdD…â&gΜië´Àl‘t åéשS'Œl$µx½SXtë¶á‹²'síÚµ<™ƒ o9Æ/YB¡èN‚)‹²›¤Zó/äŒððpØaL>Þ ‹,Dž-'ª[6'*&'Éȶ#\º’š{Üäbä !Z,è ” €Nc÷îݶ¦’¢­Š¨>Ñ;/¾ø¢ˆ†r½,D³í§lQØ4òåË“â‘#Gl_õ)ËÅ}"Ü%cÆŒ°{­ÒE»l‘4tcÆŒÐôéÓ'!™„’Ÿ-ÊÇ2Â{7‡ŠÒþ‹tÛ5ƒ,_¾ÜçPž!P`Ñ4Þ¨¶Á¯¿þjËèSiŒbtÊ5Û˜Ïß`Q¾ ÊræÈ‘ɫϜ9cåYþ ‹V ÿ /¸^ºt å«`™=uê”ÕY*øØ"­åÌiãÆsqže¶Èl1©Ø"QEŒ?ŒÂùóç c‹ûYÍ…í¥{÷îxêI“&ùâ&©MY¶(nê𠇯;r—-z¥òAð(\¸0ò§ÉUm™-rvîä¢IfIŸ>½‹Ì4°è[N¤P¡Bááá'NœðÅÍq‚°Hú5 ùxðÁ]&y°Â"½ÈUóûï¿—_Õ ‹ ‹I‹$° Ý,Æ_§NLT1ˆaQ02d-ij¿ûî»V˜R°H7Fî{sçÎur– bX¤ª# #)vHù˰Ȱ˜ä°(f`×®]1á"¿ g‹búÕ¬Y .¶ŽrÉ‹²¥åçŸÆ-! °Õô°(ëvÈaÓÊåÙä’T&olndèõ­À5¹ø,U ~ûí7̽zõêù, w“Óä"{¨€"‰²b&ÿ¡ 7¹È†—E‹‰XÖRBlra¿ÅćEy ,ÀÈ:t¨ÕG,ˆaÑ”¡€$Ö¯¿þÚg©÷’<°(ßÌ”)Sp30YßCIå}åÊ•L™2™R‘3,²%: …hšrÈiŠIøÏ?ÿøJ˜«nQ¶8¡hTöìÙK–,™RB´l…ÐÖJ§¡#DËrtË–-1>nŸ,D³ølQq—ƒ˜-Š š~Ÿ~ú)š¢ÿþ>©œHò°E™*’§”]†b³EYŽF$8düøñîŒÌ™-&[”=ã–,Yb2ö…[æ—òåËÃô¹gÏ“—RR³Eaü9zô("µ‹)B•Nmé@è°Ejø´gÈähf‹Ì“ƒ-"[5„GSåòb‹²íeÅŠxI !£­š5Iu‹ÄŒy7€Û·dÛ¡ÀeÂØ¬Y34‹µ\*³Ef‹‰ÉiÊ!¤ £­~ýú¾¸…ABŠ-šÜI“%\ˆÝiNb±E9«¹é™”¼!Èe™æÇŠ'¿nf‹ì·x·°(6[²°(‹l;wîD›TªTÉÖ•è°(Û¾ áÅOã¬"|È¢l~â‰'\üºï ÅKa-˜‡2³jmB±FJZ‘¤˜ˆl‘ú¾Ar`—Éj°HíóÊ+¯ }Ž;æä×ͰȰx·°Hc qøðªF—¡ô°(s“k×®/^ô'ÛK"²EÒi”(Q5¬)SŽ“›T(Ã"åÇœØt®ÍY›~÷Þ¯öèžÉNž XôÅ­÷Be‹á oëïé‹ôYÐzè!¸˜ 0¼Ï¹ül(ÀâOË–é6åÔ©}aaÑÖ^iM^Ó~ÚPU¯¢`Û+}EnÛ¸ Ç‘6­GQz¾ÿ~¨Àbˆ˜\ˆùŸ9wNçŠ+*>Ÿb(Voÿa­éÏ´->ÊÛòGÛ+àïæM}{äÈTÈoÀ¢5Ojð™\ä¯h2ïØ± Jr¬ž»ÉE¶´ NNïÕ«—)ü9¤L.ÔË–,ASü¢i>E‰Ì)ŠWZû,{¼ÒN¯ÝF¼ÛXGl±»Áa{ ~“K(Âb…ò:Tݼ¦DEÜþ‹¾~kM¦mñQÞ–?Ú^×/ë¿õéÐ…E‘°¥Ñö_|ñE¼Ð&>R¯8qN9(_%¼‘ãô!‹QlÅHk¯eOŒ´3Æn#ÞmüÐ5†Å`‹t¨rÅܸýç¼µ¦?Ó¶ø(oËm¯€¿È«úoš°è[ˆ®`Á‚¨ vöìYŸkÊXU|ûí·ÑiS¦L1%ž`XdXdÄ0¹œ?eÃŸïæ­5ý™¶ÅGy[þh{ü“êBôpÀâÑBK·h5›À¯Í»¦Ÿ#0ݲe‹HSfYjºÅå†É%…hÖ-2[d¶x·lÑt@5ÐÈpîs-Ge*_Gz9{#³Ef‹,D3,6,ʶ—?ÿü=@µè\Š—ÒÁëׯÇÁmÚ´1a"Ã"Ã" Ñ,D°mMÎFºBTì³æ“ ²r díÀ>‡êï,D³Í~‹ ‹ ‹rÆ“'O±@dYvŠœ>}:ú EVmÑ“a‘a‘a‘a1`QÌíÏ>û ý0hÐ Ÿ%¬(_…äÞHã†ðN€a‘a‘a‘a1°aQ¾Iè§J—.íñx:dŠZ¡ÉÿÞ{ï¡£¾úê+Ÿ¥Ò)Ã"Ã"Ãâ-P³f¬Á9a—|AÊå%§ÛdXôX¹(K[ƒ äp@ê¦;wâ«êÕ«û,É·ýå)éµËÕÂ:‰f‰¶ýE²TÊ­ œà€Šýl‰öK´é`šá¯¾úª¨hJ=Eû›6mŠýK–,ñÅVª³}R¶Dûƒ%ZÎdê•’ý8õ;èüwX_QMØ"ùåA+ã>¼l,ÄhFQrS¨ä¡˜ÇÔš;w®@œúõëã«|ùòa=nÜ8±Ÿ…è¢åû¤žýè£Ð!cÇŽ}(_%ü½MEÄXˆöC!ZÐÌ51ï ¡çòÔ¬[¼cXôÆæ¤B¸XãÆÑÐ:t 7ÖÐÓC[OÅš±tíÚ5[¶l¨òAªz`%ò*Rš?x½g¤!Űè°(ß- Í”N—.e ýGÿ¼o$°r±´0,ú,&b–a®aÆQVSÌAщ¬[LL!š’ '0Ø_xxøÿþ÷?Ê»‡õêÕ«1‘±€Y„……A"Ã6æØÐ¡CÅ‘eË–¥î¡b,,Dûƒí› b‰!¢ÑGY²dÁ…Gä¢ýYˆ¦»BApªˆIóî“O>A2[%#ëïÊä"Ïœ† RuB·Ë—/cò`çÞ½{‘ȯbÅŠ¥J•Â~|Dç!¼L‰€ŠjÕª‰W\ÊÂâ¡cÇhTÙÖÒ2m˜*d™k!-kE-ÓñòYÖËZ {ÙÖÿ²=Òåö¬‹é¡ˆþW©R/¶_|QT§Ãì²Þ€uÃéâ}F—ftj§"hN×w:ÆÚ³¶MjÝ&ÄY²h‘_Á"±ET12Šy÷Ç 7IÖêf ‹wkr¡¡ÂH°HåÇôwæ²eˆ”3ÔèrìÀGr…£îùøãé­å°ÈB´õ'H,@@*&ñ裺D,D›„hÿÅûï¿ðàÁbÞAtÃLܽ{w Â¢?ë±&6 îK/½$t‹ŸK”(m#¤l$ïC’òq[°HG XLaÝâ¨O‘ó}Ü„ (x5kÖ¬Ù³g»ˆmÓÆlc{L‹|$‚‹g̘1sæLZ‹Ò"+ÓÖc¬§Û9òÌt^L'b _‚o¿ý¶råÊè™¶mÛb{LOá´átñ>£íaÖÇ´ýÖô N×w:Æt°S“Z· ‰Bi½zô@C­WU?Ñ-Ò‹MÀ¢Ðþ£x*5Š7ëÓoQÀ"±E*ž‡<ψ‘-Žc`ÆtBÄ:oûöíâ­…¢þøãB… d´G˜-6üyÔ¨Q@Q<×ÅK,eÙbßÇŒ3ÒXFÅ.bÛ´!6Ò²Ð~<2ìKpƒ_'ìN»víÚm,´±KZÄNy1`=Æzºí‘»,ËnçE¾Üö‘#G0©P–ÝJIjÿù稌­7`Ýpº‡xŸÑö0ëcÚ~kû Öë;c:Ø©I­ÛÐA[÷å¤I~e‰¦ ˆŠŒT¨‡æ'ŒÑü—L°HªÆ~øù‘2dˆ°´4oÞÚ_A†Ú‘Ê Sç]¿y³pŽJ¹²*;èøn‘ˆúQÛ,S¦ ¶…NŠu‹â ƒw3 ?fÞsp›cd¢ñ‘º³Ýÿä§æK\UÐ3¢X;ܰⶖ î|ºZu¥äž”0¹4êDCÊ c´0ÅÚnD‹ØcZäÓñth2VF‹¼GìߊÅt€õëé¶GZÍÍÑ΋|oèb8€VäÌ™ ³aÃôZݺuiú™nÀºátñ>£íaÖÇ´ýÖÔN×w:Æt°S“Z·I>]j_ÿ^÷ë×Ç`Þaöamä࿤ÊÎÆ…œ%jÏ‹(:ܧO(z…f—öƒQÂ+øÝwß]±b…| u^ªÕ”R)‹ì·(ß'½¥Ns 6! @Ãü(1ÑBȇy‡ÙG]ÉÁÉšXŒ¨»õ£5׎œD‡`Qg‹‹,D§\ð½À …bžb¢… Ij3dÈ7o^9Ó" Ñþüg’"Ü6PƒÿüŸ-R‹›ìYÄþHœ´~%¤Kùca±ZJ ÑÌMb"[ä :‚‘²˜lhrEif‹þœ*‚˜MINih™-zý& ­œo>§r¾E‘EDrÿþý¶uP™-rZ.ˆš•ÿ˜-ú[”UÃ(ýŒ™¶yófSU?ê&h©¬éŘ-rå?6¹0,,Ê––)S¦`š!bÝ*&‹žzî¹çp Ò‚¸Ø^Yˆf!:€…hñMŠ-Šd9'Nœ°–%ðÆ-]PµjU“ˆÍB4 Ñ^®å°°è•RÏ"2Gd¶­-ö“wê—_~i-ȰȰȰȰð°HákH}ôàƒ’k›ËcR¬gþüùá¯C)ª¬¶†E†E6¹°n1 u‹²Æ°}ûö˜`(Ø"´ŠN÷CÇ#ŽïÙ³§Ðj±n‘u‹¬[d¶ØlQvÊA|:f׳Ï>kªÓâD©ˆ`"-ˆˆy7¹ñ3[d¶ÈBt"Á"±Å¨0Š? ¤ÌMÛ⣼-´½þn\¹†ödèÂ"ÜÓO?Ù%‚5ã…ELq®µèUÈÂâZ¯+ÊME‰”Ö7-{"¥‘vñnƒ0^bX vXDLt)ƒ-êTùööКþLÛ⣼-´½þnÞ4ØâHƒ-þj°(ÛO(S•*3•¯rÁ:ÙáDÎ$÷s™-2[dX¼X$êñ$²ÅÓ\<vì`ØñCžØ¿°‡iM¦mú¨;¨Ú'l:׿¬#ûÃ".jú¦S”c¡Çeã WDF÷k=ýÂ… 9rä@²a$cwgšA‹Ë X|OÓf* Ê$NV”IÒz²eXãïËØÉÒÎIñmÃÅô {0,-[4ä8äaüo)¤ÿs†mäpI€B½±Um±8p aذaV§wXÇã\\×× MX\jÀ"j£ßaRoín’ÇçöfKtðY¢‰-"cÕ§Ÿ~:n̘±£GãoÌgŸÑmÓNëög#GN™<¹~ݺ}>ø`ÂçŸ5Êz®é,ñqÌèÑãÇGnA9]Ð[¢E›#—â=÷܃ê”ÇÅüjr¼ J<"PÙªm úAo‰¦F@FQdë>°wïÁ½{ìÙcZ´Ûhß¾ý»wß—+WÉûï?qä¶ÅWôç¶ hv*¿ž@»3ÿ,Êg¹¼Æ^ײ³9—X‹»Û¾Lo6÷ÙL°HÄ,^yå´ZOõK8,Šö_¹r%®CyÚåpÀEÓv{¦5”x£téÒEt-Û²n›F²mï°ƒN ÑB"3e·ù®m“fÓ¶(óˆiùÖ[oÑ8³žk½²|5§{J!Z(s·mÛ†F«U«–“NÐEˆ–w2¢(®¶hÑ"§™ ¢å†É_MkÓ~,ôfúõ×_Ñn¨jOÁ—â0Z\¶M×O¸È̺ÅÀ€E—@ÝxÙ¢øX¸paTJpЏp:+Þ{Á¢,ôUƒé_Q¶lÙbò:¼SX¤«A”ƒ^¸R¥J2;X´kñ"½<.\ˆ^8Š^¸#¶èt3¬[ xÝ¢Óº‹H&yi]Ò¤ICæTñ:u’\ÈÐ ÑÔ\H1‹ÙøÚk¯YÅÞ;Õ-ŠköíÛ×DùCSÜK(Ѷ²ª»ÜJÕ:wîŒFÛ·oŸ¬–µ'žÈi„°Òl‘æäèÑ£õâåë×ÛF\0[”O°†rÞéÒ¥Cýn[ :álQþóÅ( ?¶ x˜-ZçZ©R¥P Î}22[d!úŽa‘4eýõ`q„ ¾Ø<û ‹Ö{#Á „N¸ÔØú`ß),ŠëPEÜ7ÞxCî†Eë·"=š«uëÖÖA˰ȰxW°H#ìܹspkÔ¨âӀ£†CÌš5+ê[³%Þ%[¤÷jäbªÃ6mÍ9ưhòÕEf6´Õœ9sÅ„¯R¥JöìÙ…G1âé:Ô2òÃTœ9s¦‹ÿöÝÀ"ªàúO=õ”/n)†E+,¶jÕ meÒ90,2,&,Ò„G%\ 29 âéÍñ÷ß‹òU2=IXÈÛ­[7ü ªûì’Ô†8,ÊWFÎJØî}ÅÂÙýß-ÑÂMNÝÂ9™-ÑòuˆÊÁKQ¸ƒÚÝ”¯%Úº+_ºt >gΜÿþû¯ìÀ–h¹/P=Q¡~ï=1\ãµ>³%ša1¡°(Ä7#gð+fX4&í{çwäy˜¸°(˜;l_z ƒ=¬sžt¨‰F…&Z¶lÃ";è$‰;·{ì18ˆˆgÒRB4ÿ)RÄ”#^),áB´IÕ‹uõêÕ1íá!àä.²B4½ÅëÔ©“9sæk×®Ù ¢Y·˜°H„y0á«lkAXÚ=húôl}ú˜,-I‹4í×®]‹_lذ¡Uâ°Ho©ôéÓS_Sp Ã"Ãb"³ÅÇc*¶lÙ’aQn¨T¨P! !·Z‰‹ÂöBõafÍšeÅâ…EzgP(ô!CÄ@eXd“K"ë½R©,ÈÑ™2e¢LYr4U¨ée5Ùè©~©)SN¢›\¼Râ²S§N¡ê4B_œ^ê©G2=ÇÙöźE6¹$>,ÊÊþÅ‹û¤ v¡‹²¥eÆ ²#¡Ó¸J\XˆúÈVÃ4lQ¦ŠTQ<²íÕR„- Û ŠÉÀI _¾|T½Ö–h [4™J°5mÚÔ–&3[d¿Åä€EñòÈ#d̘ñìÙ³NÖÏà€EB ´W°öR¥S'Á”‚EÝ“&M’â:5W0Á"9´“¦›a‘…èä¢ÅGŽÃ† Ãpœ={¶/n‰Î ¢éa4òÃ:uzŠÑò(,_¾|XXØÁƒm«;MïfUtŸƒ,D³%: a‘>^¸påáÝM4(a‘m÷îݘ{eÊ”qa…)‹¯Q1w[¿~}Sîî EY«ˆxp<ìÖ­[mY·˜B´øH"Û‡~(¼UäÈü ¢åÇ|íµ×Lå«\n/E„hÓ Ã7üÝwßYÕ A D›BQ­ZE¢YˆN¶H4j×®]"{¾©¨H ³EÁG–/_ŽglÔ¨‘ILóO!šú©ÆpÏ ò"-¦{3[$X´¥ŠNT‹Ù"³Å$g‹‚˜´mÛVdÏwÊp l‘`9É5MsÉiè'lÑD䑵ý‚xVÛK ³E™*»ÞDá™-²%:%a‘Pxb&ȇJ¯ëà€EoÜê£={ötÉ€í?°è•òT_½zõþû€©¢t@â,AU” ÐN÷À°È°˜|°(°ƒLÒrŒË# [ij Ûî}Æã’)©¢?â7n’ÚfÍš¹'Ç ,X”}‰*šd†EÖ-¦¤%ZlÀ§/wîÜáááäÓgJ pºEaÒ¥ìT¾Ê¥ºžÿX¢­Êß'Ÿ|€`Í;Rþú³n‘:¢yóæ.ZEÖ-²ƒNJÂ" J¬§NŠaÚ¿ˆˆ°( "É<äPªÐàÒìþ ‹Ô/;vì |?2DX”›¬U49å0,²É%%…hÓO£¹‘ ZUU*D)k²Hˆ–Å4Ê”³jÕ* Ô…h«M¬wïÞ¶%[Kˆ–¯”Ç!-¹“V‘…hÖ-¦<,Ê^ÄnÜÕ=~®[¤gY·nžåé§Ÿ¶Z9‰[;w‰ÄsäÈAÒ„ØÄü ­ö÷Þ{Ïe˜1,2,¦$,š´û¦×x¼³Ë`QìšT­Z²gÏ“SN`Á¢°½Ì™3G.R¯M̯`Q†ø}ûöáAzè!\s ‹ ‹þ‹Tn ˜bMáç°(ƒÈôéÓñ:u²J‹ò‚@i<¢ºÆÏa‘Ø /¼€§@ÖKke1†E¶Dû‘ÉÅ$~’&kÊ”)²íÅÏM.&!f$Ë¡Ì@1q“÷ÉEì$žõǵ@¼®þcr‘­ÏdÖC ¦Õªî~lraKt À¢œUš,äûË”)eϧ9éÒå~‹bîQù*¤V´uÊ 8X”­Ò;vģ͛7Oî†EÙ1àèÑ£2d€©É Œa‘-Ñ~*D›„PÊ QÚ)­¿¿ ÑBu…€Dì”+WÎ6½B Ñ^©@à‰'P›,þüT2Ôÿ…hY|¦Sd“t‰ed!šu‹þ‹&düàƒ0ˆ?þøcl í¸?â\ºkñâÅVÏ€†EoÜx¤O?ýÔgW`Þ¯`‘>R¿,\¸·]¯^=§L9 ‹ ‹~ ‹òW€Â²eËŠ8kÎ1¿‚E¹neʱú].,ʧ߸q£D‰p/=|ø°Ócú,É=þ| A:tHhÙäºEk(Âo¿ý”Aaª+bû£)®[”‡àã?ŽFXˆ5©u@›\Lý²fÍ<æK/½ä”ŒËt‹x¹bݧOÜðäÉ“¨X·È&‡EÙ|1`À è.]ºXýû,Ê· Cnµ{÷î>Kùùà€EÙöBÅO~úé''›X ¢øVÎva›iœa‘a1`QžðÁ°^±b…nüé€K—.)R$kÖ¬&§œàƒÅ˜Ø$µÈ iÚö]•â°(Ç>£¦Xž»*†¬[d“K€™\ä8fÌŠ•&%ºK;$3,Š4ºp[A]9ž,XaQäõÀ[ î¥xð“'OšRI¦8,Ò°¡T€o“3Ã"Ãb Â¢lLÄ ~ ñáÇËCÜýÑÜqGLopR“i2á°(—¯"'gwJ°hòz?`B’ÔºÀ"™òÉÝçî-ÑdfA­Üt NÁõ ‹l‰<“‹én!!¼}âĉV{âéÅ‘˜?—/_ó<&nQÖxu‹DùåágýA¦[4í§æzôÑGñø7nŒ7I­“.]I-i«“M¸nQ6­^½™.1`D@‹KlëÙä`°(«Ï!«’Ô&<ºÜ½GŹcǎÔîÖ­û¹s·* ˜Êò¹Ã"M6”¯ÂE6mÚdJhô°H‚B(xüZµjYÃé\~‘6¢ŒÛ7®ß˜üÅäÿµþq—w§'¸Ò ¥J•jçÎ.AŠ ‹lr `!Z–Úˆp$Ξ=»ÕÇ;B´/_¾R¤H!E S-sæôcÆŒ§—ejÛ^–•žK—.™r¬ÕŸƒXˆ–¡k×®h„¹sçº'©5]GÔY]ôý"ÄJ*ÆÒ¹sgŸ¥,u¼B´ü+(Åì×_mb!š…è a‹&74L? zäñ†X-0ÎåíçäfØ©“>™Ã¦kÚUÍ‚íâÅ‹ÿøãƒõDË’Ca–ϤfìRM©¦fT÷îÞ뤎pb‹´Ð5á⊠ÂÛ·$·d¶ÈBt  Ñ&d7N~ŸyæaI -fòþý3fÔåaE‰TŸ¢\Ö4hè³hgÕÙ´iÍLÔlºUº äÈÁmŒ1”)'t`Q<øÈ‘#eÿ$§FRóÕËWû~Ð7]Ætª¢6ךïÖvûß*m5.òܳÏ9©#\æ9™YW¨]»¶ ¢ñÃ" Ñ)D›îæÕ›o¾‰ €”\ZÏ´ÐéuëÖÃéš¶ÖÀÄŠ M;ªiH²âIŸ>u—.]?iR8ÊN9ÇÏœ93¦m’ç ¢M‡¡AH&užIŸ@ŠH‚K|5{Æìâ%Šãà Z…_<¿£•èå:6ÞTõn]0g­Mß¶g&.X°çÖ¬Y3""‚ºÉ]ze!š…è€g‹òš€‰ u4H¨âe‹tâêÕz•Um``"Ñ«(1Šr3ÿÔ4ݺš6mÚO>~ãF$MfÂSIï¤Oà |ΕNƒ›-š k×®i2dÛ ©é˜MlªùDM–CË1Ö3~n€Â›ÊÍ(%:ÚØ>¡žW‹•*q5"¼†0‘"/óæÍ{æÌ“™Å‰¦1[d!:H`QÌ4¬1(ÅìB‘äÞtb­Z5 ªxȀޱyÓØãóx¾WÕ‚8,_¾ûæä…”bDyàBR¼S’çÐEù}Óºuk9©š,5Ÿ;s®k§®Zj-µ’º½§ýqõ„ˆQøó*>f±sL˜îºÿ~¯÷}–Üì¶.VBÝŒ \0‹[ßR ‹ ‹!Á€Žùu„4Mb—St3Í–É“§áx§«ƒQ&Šu”ñ§£¤¦Ae–ŽânذQLT ÓF†Eù}ϘtéÒ!I-¼Af]¸>aÜ„|ùóé®öä_Ú’š#•›„†X‹?|¼¦F”TJ¦Ï–þıî® 2O”lóV0,²n1u‹Ö'¥ d¤ÒKýû÷‰QmÁ°G”,YXQò¨êÕXª#Fy;ŠdjU=­iºÂ+MšT-[¶:uê,…vXËW¹4NÐë…³N¿~ýDÁ†oÌšŸ×”DïüZ™ž™D0ŠHCjBpÆ"mà+³Ä£»=5y±‰­Û“¬O<‘0Ñ6#:ë9ø/$`ÑŠŒ*TpAF1i{ö|Ï Šc L¼i˜¸{b pŒ1Ž[5 ºH¥@¼ùòåÍ!#9 ‹§X„,zã&Fy/$|]¿v}Û7ô"•L===Ï©ç€w&@4Á"ý‘(ÝRi…s—-^&{§Š…0‘j´Z1Ñi2,2,?,&œ3’Ä}ìØ‰¬YS+pŽSIcǽ–ýÑ=žåšö ~^zß~û#1P²'Üig[D# q7äë_ë­0ëZÃCÚaÀ\”ER³€B+,Ò¸‰ã÷iûS)©ËV(O¤’âVÚΰȰ¢lÑ–3BŽ3!#иqƒ*.µPEXß’ÂÑ HUÕÏŒ¸¢)¶nÝ![Ý3(aQ8ß@dÖk“}ûc©‡J¡qô<ø£g¡OWÆ8IͶ°ˆõ %'ñè¹Ú>þècõdžˆ’³VÙ™a‘tBÑäbûÔÂ###¦P´±`{Æ?è²V’Sް±Ð†/îë·ŽŠrIÓz «<ÿ|£¿ÿÞC÷@XìrçÞ Š‰69ßìݵ—BV²*Y(]V®©YØU„ÑY¶´ˆòNœ{^½OÉ—-O6X±©yM˜(x¢m#°É…-Ñ! ‹²¡5¦MœÑˆqŽ©P¡¼á”³Ë┓X´GMC†êqYøu÷ìùþéÓg…‡£%šH:AÒÙSgßïù~ÆÌѯxZŸRO“ólk&ìK , gùžùzµû6¯ùb«² &„&º#Ã"[¢CEˆv—¦Û´iƒp]ì™5kމícÅ瘸vwÝbŒ„’&…£Ž’Ï M«hx8æ›6mæõë7ls8-¤f¯Ï ÅßÌi3ñಲֳV8ßÈB±”åm!šö“’±¾Ò@Ñ”õkÖ£UÛ·G*uêÔÁËÏdЉWne!š…è¢MÒ4*«P­t”âûå—ߊÁ¼Íªªç]edw¶(ÿ‰=#=žqªª£C¹rÿòË9“ 7Uküœ-ÚJÍ›7nF¤þ>PóóŒ‹4‚ˆ&2xGlQ|E°ø§ªk?*U®ôh =ô¨Aƒ×®]sòOd¶ÈB4â}ßS36zõêeèÃTÝ(úq¬ÿ¶/1`ÑkuÿVÕ+Ò·¤ÁÕ­[ÿر“Báo³û3,z-™oŽ9Þ±Cǰ´a©”T]=]/«WDÈŠÝþ3,âDéÎjgF,¦ÿxõ‰ ‹ ‹ ‹qnI8‹Lš4Å0ŒT‰+û Å11"jPÓNhÚ+øÑtéÒvéòö•+ׄLíKXòp?d‹âMy#rìè±Y³eÅ>éyr‹¶E–še(¼KX¤5JŸTÿɦdË7÷¥‹—D aB†Ã"ëCZ·h}4RÆ¿ñF{çÇuÊñþWÝ¢×îùDú €ãïªú¸¡pÌ=fÌX¸NZãØB·H[Ú¹bÉŠŠ•t-jQµèBÏ"á|#+åH>ÙEñNu‹¦¸—éžéø]DU»»m³n‘ýa16•÷_aazY¬ølç—X°hµÆDy<3Tµî bÅJ«V­òÅ-çÿ°(¨ÙÞ½{Ÿot+_쇞¾‘êMYj¶…¿»‡Eùˆg)C?±eÓ_ÜrZ ‹ ‹ ‹ ‚EšÌ5jÔ0 Л%Xô&,š® ŽÞ4iž3ÂoÊNæ‹ôv™>mzXX˜G {ÁÓh¯¶×Y‰&@t‚³Ä…EÒ0®÷¬×³=ý Ã"Ã"ÃâÀ¢,>ÿðÃ"{ÅuÊIjX”?’oãA„W©Ržn3°t¨%¿ž®󽔺)¢IjNXÈØFm£'.ûq±­wÃ";è°ÉÅÍärñâ¥B…ò*JU=eñßö%ªÉÅgwŒÈÁXled«ýÞ%[­?›\ˆw7oÞOñ“ç'’lͲiåîM.ò1d{9¤‚í»h‰¢°ü¸ØäÂ&f‹·7ˆàŒ1ʰ´LpÈ”“ l1ÊH-±·Ñ¸q#Ÿsuy?7¹,îù{OØ=a” ÑFmSº‡d`‹Âö2Î3^×Hôéozf‹,D3,zÅÞ»wæÌ0µ”ŒÍ2kE±$…EÚO¡Ó¢fÖæÍÛÅ›¦_=‘âÏ`Ó )NòÀ¢Ž‘(„eÛ·{Ÿ0aq” Ã"âcðMàöí;Tq‰”;&yÙâMƒ*þˆÛxûín¦\ªüGÉ/¯!o‘¼¹”\Èà`ø*Æ$3,ÆÄj—y–ëEc^h$LX ‹¬[dÝ¢ýÊòUFLK½¸™r¼É¥[¼µSU/)Jáœ93ÿóÏ)Séä@ þ#­(Ù^:x:ÈÆäÑ-š")p'ëV¯3`Ý"ë™-ƹšºµk×1 Ðëãú*&[ŒTQÓ>Åm|öÙX“ ,@Ù¢hÞºõêâ¹6h“ÇAGÖcÞ4`q—ž I)S¶Œ7&AC‘Ù"³ÅP´DÓ¤1c¶‰oÛ…?'5[øè3j ¦{øáCìÎ ‚-Êd|릭JZ¥¦R“äèäg‹^#~ým(úzÔ§£’6‚Ù¢—c¢CPˆÆFDÄõ%Љ!ŽÄuÊI6XX¬'ïùî»…Ö‚Åހ͠#’v[Ïx8Á3ÁI”NRXIj¯¨W‹+Å3çÊ|ÒHÉ#U¦fXdX iX”©âÀƒ¥òU¶T1©a1Ú°´ü†Ûhذ¬öòEZ²½ NixîðÂJá5ÂTË4y`Q$©ýÖó­žø¶å+¶µ¡Y·¢ºEá”säȱðð´(̧(×ãV:M6ÝbLlÕZ˜«”r‘ ÐÞ JCK„qÒç“ðŒï†½K “S·hJR[[©­„)[7o•[›u‹ì ê•ÿnIvÝ©²ÊvN9I ‹¢¨¢žüÍ7;;Åí4,ÞÞã­ñ¸o¾]Û.l/É‹Æß-gd6ÃmT«Väh'TbXd“K ѱå«6¢Ô”¢Ô’bZl%è$¢ÅÆ5E)’9sjPW“¶+8„hÙö礆m 4a1yL.&Ûˇڇèû©“¦ Qš…h¢Cš-Ò­SçiLŒT©ÄRÅ›®¥M—-ÆÄ¦Y„úÜÆ!ì%:ƒ¬– U›jûšnYšé™i¥“”-Šmü"ÁâÏUÑråÎuæôYŸËl‘…èТA¨òdhMkgøQ‹*+ÞdEÊ”sFð2et§QÕt%®èш”ÁöCp)¥T”m¸$¢)­™‘Î'j‚gbv%»¢*5Ÿ¨yòäI†E¢Yˆ¾}ÀÆË•+ hTÕÏUŽeŽQvÂrâ Ñê×ÝÈ ÑôÔ©S"¦E€ˆ“@íçB´0@[K`ïÞ½ûÓO?Í_~=qƒ:À ŒQVy9±„hÚC$‘tVj«ªiÕðë Dåh9”ˆ…hvÐ ]XôJ‹ ƒæÌ™Ÿ7o6B’}±a'ÑNQzw ‹tå? ć…iªªy<žJ•*a¢^¾|Ùt“T›Iô7X”¡nX®'…õ¾}û† RºtiÕ±¼¿Øý9óäL¯dØ«ìÞ‰‹´@Œ2Hâ!íP3MOt–>CúÞ=z_¿v]¸œÔ¸ ‹ ‹!ç·H C³÷ìÙó Ê‘#Üdžªú—T‚ÊkÁ¾Ä‚źiÒ(Ë—ÿ¼aÆ&Mš —5PøX®\¹=zlÚ´éêÕ«r# i‚È”‚E+Å[¼±EPQ´hXªT)CY¡äÈ‘£S§Nk׮ŷK"%‡Ò\mnJŘ(%®hCHÍJÄPÏÐLJ&Å£4¬ßpçö¢ü–»u‹a‘M.ª[ë(c‘ÅOÓm[‹ÓÓñÄO:Û²ek=Ó¾ ØMUÏI ÇÄ*q%2å|_i×®=MQ,°HÌ;·iÓ¦yòäÑ4½”g† jÕª5qâÄýû÷“G‘a‰è¡l;()t‹‚¢édY¯ð¹sçÎ/¿üðW¬X1BÃ{ï½ýõW|+ð·j¡§ÚýÁóƒÕñ?ëeÓŠW߈þÞóCiµ4~è¡Rý¼ìgÑt¢õ¬ú\úJÞ/Æ8Ñ}4²n‘u‹)Éņ©Ü¥\~ÞºÇtŠ(…J“|çÎ=U«V3hcf§¿ªÞtP8þ÷:ѪŠK•Ì™3ã¡CGÈmŠÏݾ}ûСCk×®)S&ãNT`e›6mV¬Xû$µ¶.è! ˆiš¢,= oРA/¾øbΜ9•Øå¡‡úðÃ×­['M íÙ¾e»’Z©¨T¤â¨¶.5 g‹q¥fÝg{§ö÷sš^'KÖ,C?J-&¿EäÞ§ç^ ¦ýÔò°´–œf¶ÈlѿآÚVõì³ÏÖ¬Ysüøñ¦T£DO>þøãqãÆÉ£FŽù裶hÑtŒæ ÍX|»xñòÂ… TÜãùZJ‰}lQPÅÏpåáÃG§A£L¬ðÒ¥KË–-ëÙ³gÙ²e nÒ¦M q»B… à•£GþþûïOœ8qñâEÛמגY’0Ž6h›ÔÚò¶B4TŸ§OŸÆÏï:wî\²dI’ý ¯x]=Ú¯_?ÜÒñãÇe ·2,zÌú}„G{FË„ñNÙ¢øH5q©‹êÅÞž÷R+©µÔZ«æ­8¬‡¨hqX/]ºŠ Œ˜€ÐÈ›éƒ>@™³:àI—ÇÆÂ… ëÔ©óÌ3ÏüôÓOâEë2¿˜-2[L1¶H°ŒÀaiÕª&*¤6ad¤ù¹h‘^» 3™d=¬A¾Ò¤IóÚk¯=òÈ#Ù²eƒôG§p¼råê¨QcÃÃà ™º¶¦mˆ%}B¦¶jÝÙbŒAÿE‰Ð’%‹]¾|Åö¡LÚ:ñÕÁƒ/^üÎ;ï4kÖ,_¾|™3gÔ,}úôÀMÔN>|8&<Ž„Í÷ï¿ÿ&ïw·p§ÂEð¶(òÉ'x£)*W®Œ†"öj´‰V¨P!4ø¨Q£þúë/¢±2Õ"Àµf¼ ú/y H¸~B=)'×I [k*¡e`kä ÏÌÂjaÜ^•JUþÜð§šiœPÏ´…üq8ieÉ’&”O>ù$žû‹)R¼xqxÐ=O˜0AÏbÛ¨Qýúõñø3f̰MÚÈl‘M.)‹4ÿüóO½”’ñDzk—žVoåÊ•"} ¦7©º±@ñŸ.]º#GŽÐÇÆ×­[WT†“­1‡íСSš4© h§iÇãz8&Pˆ¾)GÓÞÂ¥¾ÿ~¡)U»m×*µ]¸pO:þüb®‚¸¥J•J‰»à ÷ æù«¯¾úÖ[o¡ºtéÒÙXðþèÖ­N/\¸pÑ¢EqXÞ¼yifTË d /?J¸dÉ´žé†šÛšÎMÝ} ¡¾Öê í ÷Ì:ñ9ß襬~÷üQ]«NÚ̉ã'ÊV5ÓËŸ?÷îÝiO‘:uêo¿ýÛ8ð˜Àwú ¶/4qv ç×_- 2wîÜV=Ã" Ñ~!DÓÔZ³fMÁ‚¡äÂXo±“|̘1ظ~]÷èZµ*¦HH%uè@ùòå±AÇóÍ7˜BÁ$kßE¤à“O>e¤Ôš6\U#â*câ¢cb1QÆ­^½šmE÷Î"Ð!É×*äbϹsç8"3mÚ´Y³fAE¼Ü?÷ÜsØÒ‘¥›ÍXh#­± Ñ6lˆƒq ¤ÅvíÚ¾úê+ÐF&’4­ÄÖj…HàÈ¢tâM¶y¶SéÔ„ ÑBxT;ö¦çM\$M†4o¶ó”‘ÛœX¿©±ãäå—_Þ±c5Öèz˜‰°þH#„èÿàƒbcÁ‚h¨èxpp¼o6oÞlÍëÁB4G¹¤<, ¼ÀXй={ö`þ ò8xð`ÐlÔ«WÈH;!8_ jõjøÄX+¨È"ØÚµ¿”(ñ€!Eæöèù©„Lm©ýâT¾ª!ŒÌ«¼ùÖÜ-ñv–©PÚr"Ó‡áaå5-´ éœtd[¿ü‹Ž‰!0rè­¶áh'”'Ô'ˆ0ºÀbÜ]jFš²QÚgi”4zpûSµPkP–š½Î%¡q [·nmÙ²eþý÷_ÂÇÉ“'‹QS(36 m,S¦Œ°Ø`ò5Ƶ*Ã"ëýÎoQLZB®ï¾û.kÖ¬mÛ¶¥SÖ¯_;Æ·]GÀ"¨"|…žl(„qSºCÙÑæ0¸Ú—_NÏž=‹!SWñxþ”<£íÔ”)ç;œÕªUkYZwiœ„§ŠÃ½…µW¸+™œiœ~N¶Ë&Vkxî©"\FŽ¥{¾Û-3Í3Ý*J›œ…ó ŽüÙ³’œo þCØmR8Xo†D„®]»’~ ÿþtDã©S§ Xüã?ð~ÅFŸ>} @Í/%J”€2AXÌXˆfÝ¢ß9èܪJ¼g”Aå°ÛÒñW®\‰ÞÿX Â(!ÔFt˜€E°E[X”KL9” êÕ«wºt© l+MÛ ŽQÝ¢íW6kÖ´{öìsÊ ýŸaÑilÜߢ7‘2è¸ëÓÿžÎ]0w^%/tò FRómo OKݵ3s†ÁGÝŒTΉ횘/ÖçÏŸ‡­æȰ,aOöìÙ iT¡d ¶(`‘Î,Â'‰a‘aѯ-ÑcÇŽÕ ÷Õ«G¦C"Ö°b'¼FàC‡aÙXÀ1èÁáŸ!”ކР wX”êV‰’­;^xáÃóZÕ´¾–|¾¸áÏà b2Ð6)tâ¢_%‹·©5&1Y¯ëy‡œuL¶á|sI½ÔWë«søH*¡aÆÁ!æ$>âý/›A\2ĘŽ‹/C´¯¡p̦i3cé¡P8RòíóŠ’ýþû ž?Ñšúô?è.±˜S?Þ6¿DÞ¬P¹‚Gñì×Û‹p¾Ñ…âýÖó9ß”)]fÙâe"†ÏV¯gýiA89á °# VL„Ç+6àÁZ½zu!D¿þúëˆ2Ò49·bÙ²e Ž=* ëY·èGl‘@ !è€ExN|þùç“&M‚2µÉuQ¢1¦ï¹çž^½zÁæÍ#Ü/àš'«üÜÙ¬p¤ãÆ}‘=;ùô=èñ¬—Ž‘†Z×ÍœùÏ¡à\ȲEY ²jÅ*òkõ,RsŒ‘O{k}­>¾Í–#Ûã¾°u¾qR›Šýôƒ¥zdXZ`gƒí6h|„³'i¢á¬ÉÒœÒA)ËÈpiÄ)pè©R¥ ls3[d¶˜òl‘Þÿ€E¸ªýa 9xêÁ½>7$ QÔ3¶áqBÖgœ‘ ¢yçAûîDã¥9²û7ª h¹:××´ý¤^ÔŒòÄ=V#ƹ玳mÿÝ “è×M¾ã0G N'™ÉÐ×Ôþ­àÓAž‹Î¯í…?ð»r’ùåø-e€ý»ö_T.¨|Q>P~Hþºý+òyǃ ·jÿ]Ç1fÏ>9޾èxŸÊ•=‹}ÎgÛþ»A&!Яš|ÇaŽœN2;“¡¯©ý[Á§7:‚<ši>¦ùXîò1111111111111û:/Ã¥¾jcc(ÆdkIMMÍðS­Wpð¤X¯äädþ-þ91±HÁ蘈ÞñÀ~>Ð>#ÿ:SüQë…c@‚ñ&#A¹7\Ç>LY ÃÐ:xðà©S§4Ó‹ŒeèpË΋9 ý"èþöÛoßµkýuïÞ½cÇŽexË(ý?þ7nœP>&_ÙU­ZLá®Q£žÅ• &ô&Mš¬^½šðܾ}û„„°5’•$ð€ƒµk×.>>þ®»î’‡)ÐíÑ£G¿~ýˆõá)/^ŒƒÄÄD°2º1±pbŒÇƒ”W/ÉÉâÌ"ù„H:îûÇÊGsò(.âêÙMô+ƒ«8÷ûï¿×¬Y“PAÊØ´iÓ®¿þzG`è‹S§N½ñÆåa «W¯Þœ9swÞyç3Ï<ƒ“ß}÷]ƒ dIUcLc,œ| ´Z¥J†Õ5Ì3›,¼IÖ?>P>&“r‰êÓK 0š€AJÑG}Ô¢E No¾ù&”(G>FwEÃ^yå•6mÚ8ò1:¾úê«¿øâ :Ù¹sç'Ÿ|»wïO;r䈣AEcLc, |,!!~ÝÏX‘zJfžÓ¾| |ÄA 1`e¦é~°0–ÆÇH\|ã7 Vɨƒ%cŒÞŒáýÕW_•1Fß•ùøó±N:9':T¡B M1–hŒiŒ…c ÂÇËŠŽ| g&OžLà¡ö¸uúâ믿åÍq™7`Nd}¬R¥JóçÏÇŸ``¬V­šæccÆH¿K¹òÊ+I#l¼üòˬ2á ð¶jÕ*†ƒjüøñ5¢a§OŸ†n¶nÝ:Ù7½bÅŠØØX ÆZµjáR8¹hÑ¢úõëk}Lcì‚ÀáïàcpdñI êƒ>`©ï˜={6;µø[€¬#4 ºÿþûçÎËÃÈ.òå—_^wÝu°RþùçŸé§žzjÈ!Ú®¨1v¡ð1b_`5½zõbOpP$ì‡Ë—/ghÙïhØÛo¿½råJÖ²ìqøg7üÛ·o×þ1± côC8îß¿ÿø™eA¿rÌPHxÀ#³Ç+˜¿ú꫉'Þtœ‡ÆØ…¢1G"-K¾fA”èøDö-ÇåÀëÌ™3Š&¦1¦1vþó1¹æ„ãÂÙm÷Ž++Ûîí³§Iê¸{±°a,ý³§Â‰Œ­_•cëÝSôë÷ ð–3¦ÎÑÔ;_1–â±V­ZU‹9±¨^ÝÅã¿(Û!ð[²ùAcLcì<ÄÙ÷+HãÆ3f|X²dÉMksŠýûŠº×4ûðÃéëׯ'íHþEº 1±óc-9Iì¿ÿþCp:bŽÜ„€£Ò¥/EHD~ÙSƒeÊTlР^Z¶lY8¯ðsˆ*<|ø°lº æ¦1¦1vNbŒÄ3ÙÑ„ 'º¿âŠ+Ú¶m;fÌ€íرcøkõêÕrVV>|. P-[¶ì¹çžÃÏÕ¨Q£X±bÀB7~ùåÙœ(ÇÔkŒiŒE:Æ€.rÑ ¢àˆ#ª2eÊ\sÍ58&Woz¿­'l£èžå‚ûqñ¸ Âùã?a’ÿJ2¤Æ˜ÆXäbŒxÑ+¸BÝ‘÷!ñ~o½õâŒ9^,=Èmɽ˜`ž‚×_ý…[BtUñâÅk×®À_Ôù`…M)¢1¦1~ŒÑöϼ± ÝÊ•+#aqÛ¶mŽö½<öñ}*v—¿ÿþ¢#xZ©R¥ºv튛g’U51±pbLFBc‘‘… ôŽ;"ð\6åÙÂ1~F;ß$*| ¦¶†–-[~öÙgr˜¢Æ˜ÆX0Æ;=Ñ""Ö!‚@~øaÔ{’ÑZaÄŸTl3ÈûêÛ·ïe—]†Ç¡0|Fšcí71±œÇ;‘‰þèqÕUWAЂ‘õždÆQ±T0&I±©æÄ‰xœÒ¥KCUC޳¼_„BÍccÙÂ"Ráàºä’K°ñ³Á@I—:‡0Æ/iE‹Eù·ŸþY)ÖÓËyŒ™þÌ_Ð"'€+ ‘foóYŽ öäf=LaŒÏ0£F.̃>˜/_¾îÝ»Ÿ†\ï>›c¤±À}úØ£5Æ4ÆÒ½äíÙVHEÙ°aKAfæÂÄÿ‰`†.J¨Â ã>mOJŒ‹Æ˜Æ˜Göº¢jVW¯^£X>ÌrôùŠ1%ðÉÝhðW¥JL Ï[f1œ¾5Æ" crßä 1Æ„ú@8,ÛÉ}ºÌLæh^PS‚Bà?„ŸšÜÊöœY—3¥Šqc‘ˆ1ÙòÎ醎kf'Pèãæ›o¦•VÌc Y-X° Í u‚eC¥¯%¼Õç%{žF±ÜÄsž~üáÆF7®øß {À¸}âè+›7oeP»dÙ>¦1bަl}â‰' ðÃÌþsg¬×¯oЦMùøøÓ'O: c±´”ä:WÕõ„»¨»ûíÝ÷þ¹7Íß•â°ØDˆë‰‰>|¸¥1:Æx<5^Bß;ÌL[YbŸ|Ž˜ã/މé'Du!†Œeî׋Œ±N5ù•É¢°ˆñƈ­B´q…ãÆ%Ž;“z†Cïd—UnBör+©1û…5Æ2‹1Þ›f(È“?~Ä^qs žöò㧤Œ}å•—]ÖBˆ5BxÝîÿ¹\îØX´JcÉSc,‚0FFŽ#ÇŽ”ÌWÒøØ0LCx…Ûë_ø¶Ç+㯜=k¶œE †òƒ7Ýt“© 1–5Œ±Å‚`öÈ#ÀrðàAZ Y8œ·paÂUWÅ 1ÇB—WˆÓÖÁÍBtèÚÕ.djŒ…cÌÄ÷,®¶ •"DªÀ»á5|Ÿ"N´¹¶ —:#–3=¢Èåœ(ǧÖ cŠëìÖ[oMHHmX‚–;–¾51.ÃHµÖ ÿæ[4˜Âåu ÑKĈÔ{С#‡ÈÑ\±bEJ ÔHc,³S,5kÖlÞ¼9öÿõWïAƒ ÄÄôâ ax].Z(o‰|ÿ’±h.× HVw\¥ŠÆXØ0Æ{äÍMo}pò­-šÇ¿€¾Õ³þÁ¿©¨|YåN7wªT¥ !d;´`cYÃÇéûÜ'))—W¯Þ¦cÇ’åÊ5%ÕËåòZkâ‘–ˆÀÍNº\±B¼?k–lüÐ ÆØ×¹è«E"J¸»ÎŠ2ÆL뤅4Ÿè8Cˆr¢úeÕ}½H)S¡1–#²¢œÙ9{þüŠW\QQˆÏýªW²µ¦ ci›¡a¼f…+Vd;¾ÆX81FÉ™ä35Kׄ€–‰)£¯ =ͧ¤¥¸E¢…Dç›;ÿúë¯2Ò´]1›vE6l@õjܶm1›ê%£K^"¯Ÿ•Š„>z´–¥1Œñr¾>þuQJ¸’\iÌc|`)i@š±×÷Š‚±‡?:üØñcá¡ýcYçÿ½o_~ý.r»{ qÀðÍ´i/fF#²èø³õEù¸òS'Mõx=Aj jŒÂØYVrò˜‰‹”,Ù̦zyCÀ˜×3°²–BÜöÀÊhŒå#&Ö÷þ¾âZKJL‘V)8Æx€¬¤½-Dqíå×.]²4­<}JªŽ Î0î^ŽýtΜ*µkWb¾“êe†ÆÇ¼~Ž·ÝåBü¼j›µ4Æòcì<Ù²yK>‘Ïõ«+ 0fh|LYg¿’æ:áOQPÜwë}»þØE‹ªs[2äc¸™ë×·h×^¯—üª—'°a#8Æd;þ£BÔhÒÄëÑÖËS>æÃ˜×lU·•è!11O–0ÆH#ûþBÜ. —,üö”· ÌcÁs[îß]°à-BüÉÐïõ2mÓ:ÆØŽÔå* ħóçÛS?5Ærc_?ö|#\ÿøíõÞìaŒ¾žä;ˆ> OÀ¼ÙódO¨Æ˜# ÒZt0 %žIï1É2ÆØŽÿªÅR¬PÍÇòc¤^'¥&%K0&Z¦Žäô‹“5Œù­Z>Vv«èÔª“\a[cÌ š?öï±cÏ,bŠ#e¥É.ìø£ÆWÒ«5Ær clêŸ8^”®dWZ4Ž'Ûóúmú?‰‹P£B‰þÖ žýÒäÉe ¸\ì@É&ÆÒdNÃøÖ0¢Š=°ª´"c¹‚1Ž—?pð@Ѩ¢¾¹g{}ö1fm›.Ó%®#úPLÆcÁm÷©VLZ‰jÕÆZ^rNð1ÙŽß\ˆ{z÷v¬—ª1–ã-³ûÝE |½™|ÌL ÒÓDéü¥á–+LhŒe(+ÒºÌûòËh!¹\IAÎcÏõïHùŒŽ^³~=›”5ÆrcÌXÖ¬‚oSÛ ¡˜‡³ÉÇR…ë´KÄŠéïLTÀLc,HœÁ %ºZJTJNÈŠÉŽÿ×Üx£×oéÕË>F²xÓË›ŠGÒ‡&fclê"®­v­ÒLLc,Œñ¤­ß°ADGoñ³²ìcÌãÏ.ƒÿ!f/X ” ÓËŒñ´~:ýSq‘ß^ïI/ŽdcÖ¥ŒíØãŠe+£ 4Æ2äclŽº÷¡‡ê[JTJV}Ðöå";þD!ŠU©bú‹ê©æ¯1–iŒÑëØÑc —&¸?qû§36µ:kc&ÖVtiß%H³± c‚}ÆçàQÅŠ}n¡ÂQ_Î,ÆÈâë3~DE].İÄD»¬¡1–]Œc™>c:XxͲvp¨ivô1IX*|öú]ŠòÖ 1·…XÙ³/¾§Ö¿?›6Jjc|ÇW2B´lÝš;hŒå¤>†w4bž9kfÍ 5Q´C|cCZÖøXªï:F5ãåç^¦^Ï]û-|,MSJI‰‰‹{Q²ãg!Îß¿îC×0x`åË¿5ujª¿Áù/+_‰×ǸPó‰S'Æ>=¶p¡Â¢=b³-1–YŒùË~Ó}šXÃk.^¼Ø±‹ŸÆX†¶{¹æÔ‚ ª&$TIH¸Tˆ#BMLcièr¹v!ÃEˆ"±±}‡=~ÌÊñóÇjç ¾šaÀ˜’Ÿ§”ž tCrµ½@“¯fJa×¼;ÿØÙ¥CÄȋDŽû¤¥¡±T:C¸ý ÙÐïNy÷‰O •±îÛ·ÏÞ…Uc,È6/'>7iÒ$..îÙgŸ=yâDÝÖ­{[8IvÚúå¥-£aœt»GøRÕÅ-]ºPEzð@ól¨¤ÄÖ/ÓUn7ÓÜ'ÆöB:LZÚ•[Xy$ŸQLÀt¹¤}ÓâE]²xIóºÍEY!¦úEÇ[Dªã%ˆøxà£âºË¯£«ýþûï­[·F7­Ñ£GChäšpc0Æå~Ñ- G]tÞ÷ïßOó¹výzWtôïé]ÒAbE=’ê5UøVµNóæ‹—,‘{,Ê0Brä®LHŽvH;½1̦̔0`Œöøÿýïè¡H÷„=ìÃ?¤Áž »¸¸<:âcô`(ãŒþz§NÂññãÇ'L˜`¿Ožtx+]Z ¹Ìâ'Z"!’ƒ þ4@×6—!Œ5«×²wVÔ©Zeá>ýôS^]ÝãOy.®Šƒ3Ï=÷\‘"EÐŒŠoÓŒÑêtîÓ§Yz;¾`Éþ¥ûÑ—•.JUªôÎôé,PÐÕ.\8˪WE‹…=xôt„œ­[·NŸ>ýŸþ±w–„š.3fÌ8zô(ýè ”N>fú›¡Â.`†Ûzíµ×Ê—/߸qctîBñ]ǽ„öî݋Ҽ`ý²¨Ä à Aâ5ºâŠ+0;8ZÙ€œ™¾®¥Ç__AôÓÈA# .dô0\{|iLiëØœèã{ÍE÷NÝY,ä«áø¥—^*Q¢hš:ýÙ#å.LŒÉf^¼>ûì3ô«P¡ÂìÙ³•ýˆšS!7ºX±oÒÇã+cÕk‡at1ŒâEŠ 9’T/–ôhlÕª0C„„·ZµjK–,‘£«B Al?ˆSòV6} ‹†ê0 çŸ~úi!WÆèξøâ‹Ûo¿Úv¡d<Ñ"êÂ0ÀÞ~’æ}Ĉè?„°´ý8ÚHP!Ä©ÄEÚ´i3lØ0üøã(9* ¢ò;34iÑ0˧„+Å•¦¤¥:˜:|kþ­ëŠÝ³w'}47K ØÕzöì ùï¼r„Á…†1šYõQ–,Yrµ\^……+–î'L(Y·¢«”¨´3†ñŸUºé˜"~f†Œ.zöwß} A×å•WP~Ã×­['køò< :-0óÕW_á+h¥{×]w)EþèÑ]tŽ_´ÈW‚nçÎq°cÇL5õàv4qç:Æhîºté2vìXœLÕ Ašåo¾ù¦víÚl5`î˜Al{»ví²ß‘/N<]mîܹõë×'’ºæšk¶mÛ&×Í–ß1øúÛo¿]«v­o¿þ¶^õzÅÔgJö}9F•œÎåÅÄĉJ—îy«^µjîÄôâ‹/ÊkócüÔØAëh%%o=J¥,h ½2®J•WÒÇã§Jvyx½P¤ vÓ¦ß}ÿ}«®š2e ~‹*æËL ›,¤>ºp›-[¶@¤ÇækÇA}ÅŠ(QLÁ0øôéÓJ¹ ûé§Ÿ .ÑEÖ¬YAŒÑfÍš}ÿý÷Jö<ÕÇðÃuëÖÅMà ET§1€Fö](²" ½ƒ‰#+²"‘ÑøñãÑh¾‹ç¯Q£]íÆoüàƒL)$Ôcërtíµ×¢+6žä)¯N¹,î2ÑPˆµ~û~Jšhâão/‹*qU’R’”nW²°.âüä“O o`ïüúë¯e«£‚´óc<øøüóÏCõÂrsçîÅaÇGÀ}¶`A«Ajzt-‚U«Xñ>ðZ9r$6SY) K—_~9´&Ùll,]ºÔ.+ÒG4ƒ§Ká…^0 ºcÇŽÉëESŠ•‡ 3Pa0 ò Žï½÷^°hžê¼Æn!îμñÆŒ1ìú„1& å»xNppæcò0:€,c [}÷ž{î~ˆe9*â0masýí·ß˜&öÚÿ؃EçÝ„qÈð!ÍZa×—ˆ >_ „äØŸZ°½=ùä“… ‚< †È“vÞ`LnÛGòôì2.dtŠ}“! º®Ù¤I_<>Þw¢? ª*4è©§þó[0 ».¹Ohû£g@6GŽ1¥ ~ø¹(oÙ´(sæÌÆèN@o„1þ+cŒ¤0±råÊ„±!C†<ðÀ2½å5Æ`ñÃÝ€ q"/ Ð¼ãÁˆóÊfVyó@sn|‘0Æ’Ì‹ppH:;G:uè‹ð\5JÞWd} $° Ì—˜8Ö®[{KË[|âÈ8á6ÝQÞ(@î†z7˜Þ êáØƒ¹ðÂŽ´ÇÆÆBí$³§=üê\ǘ]Z†ý©X±bØþxß R…Ay|¹jõj¨O»£¢’Ün¨^E\®›î¹gÇöí²øMÓú™FÆøVe‹âÆãããéxåÊ•Ô?D6÷ÓŸ RgÒçAœØL c†ÃÆÇˆŽ±Þœp¸‡Û&&ÜàV¥d3]`¥!(á°Ú£¯9ÉŠ8³}ûvØNä‰Ã<-ZôË/¿„x€I3f =?äcü„]VdwÙm·ÝÖÕj]EM"ëè_Ìù¢VÅZzò›"**jÝêuv$Æã ÌYP;Ñ\ âkޏç(ƘdAÙк (н{wÙêc†ÐSB¾>]ðžîÝkŸš|MË–?.[f5©aU¿~ý¸#œ,þ´ØÂA—6Xe‚z[€2c€%Àíù€UWøöÛoåúøQh“&M°믿¾·•mëtêÔ xØ0F¤6hÐ ÈN€ùóç9x$(¦äXWÁ–`Ü„Éö(ðñ½÷Þƒñ—uVÚZÀ¾K—.ç–[n¡yÇ·jÕªiPi .ë‡0¥€ÚA˜junÄO'Ÿ?jü¥/}´ß£¡ÔÃ±Ç )JfRHØM•Þç(Æøé0íðz!ðærÐ¥‚‡Ìḃ ÓÜ»{wÃ-&O›¦XùÓÕó3Mì_0SCF0ÓWp¹ÿþû_}õU™èœŸ­NexW_}µâ_"-Š:¬ß8ÿ /«,XÒ0,L‹`zR!y'!g’ΛÝl5l¤¦¯p.3ËÆÉÄÄDò5Û¿.Ë`vâÄ Ù@ŒwXðéjtq(¦ØWÕ'€é/%gš#¥20ŽþwÔ·H©žÐcÛì¢+i}Ñ-;=Üpý)ŠÊ¹‚1šFæÒ3gÎÄþ¨¨^æ$CŒÙC.d¯—ý‘.ì°Ë,FGôMk‡hRøräη²½ ß‚*¡DZ‘ÜÄd‰“`ưazƒ,FÃèäòåËÁÓ̵SóÈM •BYÒ¥Û yFXn”ÍŒØ#Áµd€QŒU\ ¹™¥$Sàø­·Þ‚ð&G?™{PÈWÈÆìö}Ø»`ö„’É–~"PïöHØ2-P½°—/^üõ×_g;°bÏÆìу¾NS õæe™eÑ=@'gì)Ñy8O¤(€$Å–z¨! YÊôF¿Ø­[7Ra”>ƒaÈm!Þe7ìÈXRlJø¢BñŠ{€`ï!qÅñQYC,Y‚“¬£¿2³“W«"ø€]I‹LŒ1º zÁZm⡇‚ùN¹ÿs[‚`ÌQ4µ–ýÚ±gÉݪðþù'™²åEt$$fò¶(Ó¤L–22ñÔäsܽH¤ %·EŽ»µÇ8âÐ>•p œG)ˆdƒ/sès´qc†Í¦E‹›6m "h…c<í>5õôi¨^@Èú—_~Q¼9…± ´(/7ý.liÐíeºwF r¾¦²«L©5óÃpÆ; cŽëJþXðÝÂÎ!¦„È„_Qúƒ¢FçÆdŸ5­ ø¬XpÖ!„çàÁƒ,ôFÆÕ ¡z°ŽÂ½K‚V F‡yƒ1–îÀTX7‰,ÔÉL)øLf?Ì1lżêRÙ—Š¸ ¸0BÚÍ!y‰1;Cƒ sÜJ°†)AXaÁ˜Òäš n¯páÂP½M5aÁŸÑ…­Ä¡[t­œÇQbäA.Ž¡Œy‰1ÙêȤŒÐo˜FQ§Âóc ~h50Ò 6Kª‡#f³Ö@Ž`ŒîÂ6…9Mc,l#Ê: è^Œ¥s ùu äJ@tDŒ¢uB ÂÊAŒÉw‚ ‚wÁë%«^òýòc¼ˆð¾ÞqÇòšjŒ…§4‰ïõêÕC² B‘€1Oú^„¸+„¶Üyç¨EÌ Áƒ°rcJ6 eIÁQ;ßjçÅvùàM3òc¬N›6 atŠ>¦1>FdŠHdÈ*ñׂ1EIƒ*G²¡‚aecŠpˆpÈÒ°" °ÈQ3ŒŒ±]:6¼ Ž)’cyŠ1¼#ø$ËA!‘†19~…‰´ŠØ–Ia{Aî<³cÞÕ ¹‰P½Á|,}fq6k ä*Æ(öqjd•µzÐË#ŒÑb Ɔ{ÎzˆLŒ)áÔ¼3pà@P?H˜ªíÙ"YÃ3(¨^C‡…U¤r&N ÄÞÈÁ B['ò,³ÆXžbŒ$Ãï¾ûyMâÊ" cŠìqq0BPckÜP0¦x½i &€„#„¢Û}Ê9X—*70Æ26¢À) Xc,ÌCL,ãŠÓ)b1&fÑqÞ¼yH7„V©TÂ’!cŠayÁˆÛc·;岜÷|ŒŽ1'(aW³5Æòcˆ]jذ¡Ý7É“í~Œ4xù„…ÄNã—E»@ã¯Ãn Õ õˆ zQ 3%¸äÂ=,2›äewÉhŒåÆhê± ìH9·0&aÑT|øúµ…øfÄ[ËÞac)Ö‹U¯áÇÃ+€Ô¥BŠð‘,+ÒÃvìØ‘3ß5ÆÂÌÇP`Ãtj¯xN`ÌÎÐw,!ÁD®„EÞvœGæ5“‡T/dÇBõ‚”¨x½BÏ‹4>F+ —=âQ4ÆÂÏǰ…Ÿës ‚Ë©ŠˆÖ]â/FƦNʪ¼´rçì>ås["™q¨í/caÀM=2Çc稬è„E< O„ª¯PÒ 5¡<‘¯OoÓ¦ˆ”ݳg,þ°û<)äJf±™™ü±Ä¥ü’ ùXDð1,•9?0æ±Õç7›*¢¡,â ›7oÔ¡ª Ut•ëEŸã•E ÍÇ"cèÄc¨ƒwîbÌã¯M@B… a½òçÏO=ÈÚaf2LcLc,Ó²"ä(NçSX\±ˆ{F¥$¤{CD+£šgŠ}ÿ<“±ujY1"øêötèÐá<°yÈ_dt¡þ$6àªÿþ(½„jg06Ẫ‘è~@á|ЏxÞð1¨ca»7nÜùaW4Ó·n€1&   ŘØë…‚M¨‰d¡ü|b¨„E2*žOò ¥eÅðc ]Îi´üì"ƒ9e6Å^/8Ä0 Q pˆñ0” B¬&ê,ÀبÄcÿâ<À±5‹ˆ8䥟»|L‰FÍZ8”áõ–äØE";Žó ^Pä ƒ½ ­eË–J%¬à]É#Ÿ¡¨&„¯~>†¾Ô éDr¼¢ [<òP`—G[C2'²è(^‘‘‰²Ê¨„… ¬^½zÉÁŠç(£;¿êª«¨G±ÆXØ0F+0êsÅÝ{Òü*{ì1„ó"¨¡½JkÜ ã]ŸíûhŒ {T^pŒ«:WøM âîÑHc,ü[»v-TÔ7Ï…ü1æ2Ñȉ*dÕË^} xþ˜™>y Œ°ïPƒ»èù|Œ„aÔ°·ÉÔ C42 ¡½(õ.#côbá ”@²}ÕKéMz4s-J‚Fê'T*íêØ§&21F·Â5¹ÙŸÆX8kæ€Ú°á9&ÌFÆÃT¯víÚ¡ÀªW n¡cÌžQÿjÎAÁ£v„ro¾HƘi5=7æ†>ca®ý†ŽR(fFdí73}®êEey1EõBÙPTzC Qd…*³‘³cçÿºÝ¡ï¬—hHI,”)8r0æ‘  i­©kq‡c´£Ý#\dŠ>.Œ)Elôtà 7ÀüðÔSOÉ^¯<®wÏhGßdx«á…;v,IŒdä4#¦7Í!¬AˆÓ|ÌÊ€\ÅQ ú¾Á~À0‹1V½Ð8|ª ²ê•©Ü–œÂ˜âƒb^°}þùçv“fxù˜iW„Q‘Û1çÆ[˜1&/ËÓArrårW± OÂWbä$+Ø Ð/Ø G?–Êdö…†Cˆo‚þ]8Ì{ŒñMÊ=ãÑ€¡!`kJ {߯¼Á·ÿ^¹r%êC2**¾@Q,ô¤2D-»+ƒÓLx0¦t7ô¤ï«mÚê"9~Ë Ü\¦Ëi H†–l†Ð«6Ç1fïX‹"pÙ±êEx°÷ÚÍ{ŒÉÁÇtçÿý÷}÷݇&š¨„Æ+‹Žaácô˜¨ƒ„€Ù0#÷7j*?-w‚¶ë½ÊÚÙ 8•8l²"Èzôèш´ ûC«uØ‹•––vªÅ·Ð—=cŠÂ0:ƒ^P½d‰‹óùP÷j‚ˆdíIYƘ‚.Ê7ê…0e¹3KQ'\SL2pFåâÎßxã@M'ò cøQ¤Ì±Áƒ¥GЈƃÅ!:ˆöHÁ ðèPE«ãžnxêéOÈ`€@äèP ÆhF&MšÔ·o_ü „…Ý  ™/:Ù»lɬ „Š”ÉÅþ£† {p×Ò΄ºð(!û˜<žHàåÜ{GËršgBÁspðpƒ.]ºpñúУìòcrT#úÖ"ª‹¶H;ÎÆdU ŒÑ ·T¡Bê‹ñ´dȉF7º%¼Ãw¯¤o*úðÆÑZ±Y³fˆSCL/–"pÒ.‰a(«L瑪‡Z)JÝŠ°aŒÙžZ×!ùð8€ùφRJrì#þPt»Ý÷Üsç¤(ÑwxG 0ÞårÁÖŒkR¤²žÑUHŠå}...Žœ?rª¢ÝзaãÆ?víò¤ï1)ŒÉ‡øÕ µ›4i²jÕ*…4#c¦Ô霓Œìc04Ô6ܵkW yf1&‹a²Sù:Ýz‹)"’SI”…]“€º&°'™Rú¦ªÝ†\ %|Ù²òÏÃp “|*¸ÚÌ™3)Iï@/µhcÝ>l£A¾ý ™ðH.¤Ù„câĉJÖ ]S“¦ }ûöŽ£+Ð0.ŸHIŠÈJÄ·Is*üñÇeƒï3Û;6¤OŸ(!䯶™Â˜âØ…u>t.F®½ñJèÖ°ðbLŽJãH@.T¨ÐO^v¿¦5CAÏèçŸ/[²¤hÜÈXú½(Vô“>PÂdƒcÌ”ZãµnÝ:¬:Œr r’f¿Ö@1¦ˆÓÐ~Ñ9~Ñ1+DŒñ&ˆ¢ àíïi¿ió&¥ ‰²Wr'hzjÔ2á8ºPò€ìÔE†¶¤€`ÐZÑLŸÅ++i C#¤üãƒQVÞúÆ1z<¤Bõ¢?Õ¯_Ÿ1Ö½{wÂÄå:4³h¡€à ~r{¥:ä@ná Rëåpl-DS8£ Ñ5™V¾˜7ïÊJ•D|e1ë#·×ëòzÅË*)rêÌ™•ǧ‡àðhø!ì£T¯scJ¶?wº@ühötûÃfˆ±³ ó²¥Ñ"z…{åÝâîè3¨ÏGÿ“åfAÙ3F¿…šH°4Ò¥HHnÄ2Uð-Icàc„1ÓêÿB#“‰<4°–ÁØÃˆ…ý¥â°ÁÇÀ¯PÚ…þDsA+`3’ÙÊ¢-Í”72f0ùÊÃxâ Ke§hŒE˜>"nE Ä;J£!0ùØÚuëniÙBŽ£Ý©IЕrJ$Ÿr{MQ¾Ü˜'ž°Û!팔­t3 è(I¯ž7“Í!œB ›¶•nݺÁÖÏAX!ò1Ÿ4‘œšpMÂ01ܷù½ËIJú¢~© ¥¦|0E)èØ졼÷q<*àhFRæIˆï´­ã"$*ð£@úUHQ¶ZAÇ‘1†Á/Ož<¤][žb L!ät÷(Å_0ÌÐþ±$°m`²ÀÙöïßoÿ"HAŸ4qP´0¯ð1¼ÃOŠ)`>! Œl#òHµ±½Õ«_w²ÿàÁ½{Gç¿H<ÐÕøs¯w™I"õ”ðœñÁÌô‹¾*ìŽÚ³w¯l^W »òvŸúƒ¡@ •…rtמO“wznGˆŠ=ØbPZ”EqûB(!Ñôõ7Þy#VÄ&¹“’Er’Hö ÒÞï•åê\W{ÑâElì…h]‹]2ôÔ#GŽ$ >Òyf¨di\ 1l2†~AÇ «þ°¡½37Y<Ž2ljÆ`‡„‰A±Š…Óæ ¶DVE :B‚‡Š#Ù©€:ØÌô-³ð‰‰Øif±gÀjÌ}Óe>†Œ ع0ÓäÉ“aö±7P¦‹ïûë¯ÒåÊ2¤L‰¢A}±vµ]àZÉ'|èò&ûÞ¶”ÓEóëºßq‡]ÒS¼^ðÎA–@ÐT/Ũ˜µ<ès c Ò`ˆƒ°€í†•<ì|õïÑó_š†ñ¡×À¤˜ÂÄ;þáã)÷©Abp!Qè¦{nÚ³{×ãE¶õ§¥E¡yFšœ{nà<´t‚"Ž:iuè[DŠ0f â‘,R°jàO}`ëÆî/Ë–tƒåFÁ×§OŸˆ°y0!‚a]d\±0éð—ô—_~)wa•|‘Y³f¡#¦by—*tqìOòÕ”^' çÍ+-*TÍð¡ÿ’O¦áJ~÷1´T×¶_ !Ö¬^­D`µCþóà óäa°b9P=kyÐç"ÆìJ™þ°éÀ½‰ È1RL&G†?RKÔ2]>€¥ Ñy0û†f Ÿ~¼Cìl'Ú+Úæö6×Ö»V¶(ò¥öA_Ç,oÄpç@ã’Ut:ï%‘(äwÞaïŽbî§3tq”9#åSÉIšžD3ÑǰФƒó0>ŽaÄÇ¥1tYìU°&ÉSÉÜZò­-[Šq⥣¼Ÿê•zÚ'b) ZŒ1:H>écq÷izù|A¹·,WØö@ÓÜÕ28ºÎoŒ)ûOß¿ØÎ£>*WÂR¶ªí;¶‹|b±–Ø—03ÕÂ°èø­ø¶Ž¨S:¾ô{3Þ“ þÐOŸ>ýAeÄIJñpp£=–Šî7‰a€œlZ”…ú!"f»i'̱T¸!°`Ù¶#;"ì6@)!ŠÍÃ.ß#¾2€ü¾²g‡êÝ;¦À%¢WOãà~AªWÊI QI*´è[*˜šìúç°(pɧVw̓fˆ8{wæ A¥Æ” ,ì÷p6b3Rz ñ˜æ·4¿SÜ鵘Š1ÆHKÁJ@t´öºx½¸(^¿UýeË—)@c§âyޱ¯Êž®lëv-š¿ÖGîïŠ –py‹^޹-ò¶§„¥+.iþV‡ðÿÕqãÊ”,!š7ó«^ˤ‘}ñÅÊ ËŽ_¹H^E¨õŠêÜO}¡aÌ1 Laò(‡(W5öyM¾þ®ƒ®CÀ€ÉÐŽ1úgŠ4IJÚ¿®ûˆ>];uïôçÞ?•Ä%ìPVÚ³§«Êb”c|_äÆËè¾Íô•ØVû2‹DåÊâóÏΪ^àNX,3) ´”ƒÔ3„—Ê•F6`àÀ˜˜¨^lž¶;‚4Æá‚¥kÈ`ˆÈ¡v„T"Ò“ê)se™D1š™˜#cnæ±ÞӚ˻Yln+Ú.Q8q|bjR*149Ë)ÐügjO´“Ÿ=àBɃ–÷°uk×¶iÔHÄÅ‰çÆ¸=)gU/6†ˆ1ŸHyÊ· K#þàšzõpe{­ ± ãîÙæç/œ™(gðüsÏ{i\IQòŒqLVÀaŒÞMŸ(b²’¶@|QMT¿*þãÏ?´4ºÖ@Î`Œ^ûþÜ×À÷%—ˆž= z¥y½R,¯—G‚Vè|ÌoÇ7Z4þðÃ$äØ3)5Æ‚cL±ï£¸/äFl[ ] ½BÕÄ‚cŒÿ¥)i†×t{ŸÏqÚ4Z¿a½’¦1–cK³ù,\èë$¹d‘¥z¥ú„C6lÈÜ)SóÙñ=Æo[ÜB¬[³FI»Ö =ŒNR q¿ýІ`D °LaŒO¦)i.ïã`Oѳ`¾‚C‡ Ý»go†yÐc™ÆÛ‚Û6n,éã"íË” YØlÇïݳMýúf€¼/±Pr[h6oÙ {ý&c³Ç2uØ:Æè˜•´eÂ×°÷Ý÷ÞU‚à4ÆrF#ö²~Íšh!Œ_7ù–jXö1æ³|øíø—\ü¥ÕÈKvIkŒ…ÎÇ|ófz´nÐUt•íõYÆœI¦Ë/&ÔlP“\)šåJ]*’øûtîŒ8)7øæÆØŽÿâøj%J&ûoc¡cŒ7¦y_ÎE|ý!×áT‘*3±ì`Œ®sÀuÐ0Œ¯¿ûšKc,‡1–æ­JMÝà@Ѩ(cîl+Žþ¤ƒµ0³óÛñ]XÓre^zvLèet5ÆäøUO²§Dµ/ˆ±°U`ß²»›³€±4ƒ¾Ë _v‹ŽÍíK£1–“|ŒYÙøQ£D¹².Äp§œÉ>æ·ã´ÆW ŠçËwðÐAOzŸ¸ÆXp»bJ²±<÷Ò˜2¢l’+‰89³©Qñ2c9t<”´à<&±\¬aŠ)NJM­R¼¸1a¬ÁÆìó1ŸÑŠÇ¯W÷«‚ˆÚ¯1–!;|èptñè…ÆW_/£%k#ˆ»R\ùð°‡íE`5Ærcl[Ÿ?{¶ˆ‰q>`‰ý§sc>;¾kˆ!6®_/ÇãkŒ™ N¥•xðîëÄul¯'or6ù¹È>4>¼¨T>äÈpÀÆXîò±´('äÔÔ­‹ÀyÕŽŸŒY£ï‚÷unoÕÐ̰v•ÆXZ7Óuk…!~3¶’½^AKÖ0FÖŽ3®¤"¢Èä÷'sŠŠæc¹Ž1Ö­^m¸\Û~ó-Gjæc©”ŒŸtž˜èÇà‡ùdÖ,9íMcÌ‘)^±NË:‰‡ Ô±©#›cSÇãâñ„ú ö¾c¹ËÇØøñ JµhžÎŽŸ5Û½¯ÁIá ÜñŠ•ËEÃããçÍŸoÚJÓiŒ)1ÁX…÷§½-é@ôÒÄXËÆ,fèÙáÚ‰+ÿ¸ìG{ܹÆXîb,͸”šú÷þý>;þ¢¯ Èÿ³ÌaÌ:€¨éMˆhìÙ-ºt.;üÑGQXI{Ó³“ )HK–,©W§^¼ˆŸ&¦y­$p³ìØ™‰Ý$nn}wë ¦±\ÄKçãž~FT¬àòeŽùE¾P1fŧúLö®ãÿŠ‘O ÓîÐ5ä8Ä[Ûî3”ÓŒ©ž ¯O(Q¶DSÑt•XeUØ;[\ S£\2Øë2þ'ò‹]ìR2¬5Æòºÿê\&ÀŽÿÚË†Ýøc¤zù„CkÛ}{Š(sYÃËk.² ŠèÜ–,؉á9tä¡!ÈW ‡èyÀ8àõí|iq½¡ç¶X‚b ¦ª¨:ä™!ÁMc¹ÞsfÞ'Ÿˆ‚\GˆÔ¤tõ§ÓŸ©ü›×W¯Eü°T\S·|\ÜÔI“<»„iŒ…¯È¹-7llܶ1JŒclÙñOàciõHõrïÙmt{ @¡‚Ãúö=vüøÙÄg[{;±Lå¶p‚Oæ|’puBQáSñ™×8+:*JšŒ1ü)Ųu- L›5MfbcáÁXšÖdš«þ(׎­Ö¶Õó Õë´Oõ:ñŸxò ávp‚ÔœÒËln‹)Õ6õ©OIžÄq‰*Ü.nß(6¦WÒœù˜/Úå}Tô«Ñ¸†b¯× c)¥kÇŽâú–ßÊy‘%FV½¦¾ Õ«~Ÿ~üq|ժܪÃzr®ôŽ1Ù¬OëÒ¯o?QH»¸X/Ñë˜ë_ð4ŠòØ0–œf¯ßíråª•Š½^c,lc òîÝ»cÝncÉ·"ÍŽŸì·Ë[èúñQ¿^¥K/>u*•ÞC#F¬%èçæ€c9‚1Ó_‰eC£ÜQ›ÖoZ·a*ºAI{E¼Êö}Š!)1Ms{¯×w| £c¦ÆXØ0ƬlÔС°ãûZF€•ùU/XÅí·Å)òôàÁ¬zQJüÏ–„9ËŠç Bê^­ec¼(P‰éEƒl.'úþ‡ï—¯Qájq5*–Êž´´øzÃ\l|ç.âFTÞ:5Æ"cì=yút…ØXãW|Y*`_§NøT¯B;wè°cçNEõ":@Е+U`¦1–5}Œ8*ãcbQGž‹À¦µê<~jä # Åj/nÚ.v@û2-¤«$*;’Mc„1ÆÌÌ÷Þ±…¢ï½+Ê–mV§Îw‹)=Wytà3±ÌbŒ±æ˜R´ QD>¶ïïܱ³CçEÁbÐI÷I¯µ)¾f¼^,¾Xò™ä,wKÔË]>ÆI6ù/ª\ªÔ´)S”ö‰#˜¡k0h-vd˜iŒ™™©5ÀBÉø‹/¾M³h2íÔr¶Uçw‹ê4«SV”.f>#b>™ó±=sOc,R0ÆñËW¬1dÈ¿VDE¬w¤KfÄÍì]†5ÆÌŒê+Ò4bŸò•Žz÷]`ÊÅån;S¦M¹¬òeèÔâú(¹#÷÷Ñ‹8>F/Ö°{;N‡ ³3fÈmµ4Æ2Œ¥â üøã1X½¶¹S³ýâ|ÆWÊÛã“/Žÿw|ðˆÁ+Wœµ×kŒE(ÆF>“{“[f¢cú!¡Y1¦Êõ•5Æ4Æ‚-³Ü—k].Þí¶Á˜Üó)”W³f->úhfˆƒDNaŒåÉ'brSZ5Æ4Æ‚-3‘&Éßÿ=šD6jÔˆzÿÉ f9ÈÇйkûö_¶oßèßÖ­ð^¯^­ñãGóGÇ;vlÙ¾ý·þ9š³|Lî ºU«VÐZá sŒŽ×ÓËx™e˜¡Ÿ÷-·ÜKn¹IqaÌSµjU—«œÛàrÅ»\ô.¤}¢’aT¶ÎSÍå*üì³£XmËŒ1ûB¿lLÅÍ7ß|äÈv‚Ù]öccžPÖƒE ¹B«è¶mÛîÝ»—Ð%«=YÃbµÉBœ±Þ“¬|ÀåŽcNº\8Ó31±?YJ³1ÎDþ믿ڵkìÕW_•÷ÇÜ11OˆëA;4ËHÄÐДÀ;ÎC&ùXjBB!6†WSo6þ¥DEá½ÏèѲÏÇdçÕK/½„-ì‹l­äP>šÇ$¹Ý8ó`bâ€,ó1y[Áë믿®R¥Jùòå)ÐLVÀ‚ähjŒiŒec²Z‚-ö´âÅ‹·iÓfÆ LyŠÃ:dŒ¥æƲ(+r¥¼ðh·Þzk¡B…FŒAwòn<ZcLc,Óó¤ïÈJúI×®]!AÝvÛmŒ4ÂṈ1Ư¶ÔÆx(<Úý÷ß›§crƘÆXnaŒ‹XåmÛ¶í¾ûî+S¦ÌÝwßMk»@ÉS"áVƃÀ.‡Â£)‰­ccy1Ù¸ÏHÃfï½÷bã‡'mÁ‚|ž’8‚ƒ-,£›—ïEpó ñ rÅ® Á£1¦1–+“‡1¥"ÐqäÈ‘0ÄÃB0xð`¦TÛâÂ…1º ¾a¼p“¸Õ2Ö 7¿gÏ™g*ZcLc,W0fG(uxš7o£8ÃóÏ?¿}ûv9ʉ¨\ºfîbŒY–·…°•I“&µhѼ·ŠPcŠ9t,Ê 1¦1~Œ1—YBÑŸ|òÉêÕ«#¶¸eË–ÛêÕ«•BŒOJ:cal}Îa¬÷¨QýpeÀF‰‡DÅ;Ünø¿üòË‘)Ç=4d¯Wˆùcccy19Š"ÓÙL÷ôÓO7lض„J•*Áœ€Âƒ›7oæU«V3ŒÀXTÎôš0a8_|ëÖ­ÈM†–U£FR¥Já6p3l%hÙ•F1±ˆÆ˜ìO“ÁvèÐ!T¼xðÁ‰Ü‘¥¼ 4°D‰BlÊ>æráÌ£wÜÑæ™g+¸K—. –7’”<(sQÎCËZ´Æ˜ÆX˜1&‡üÉF¦1!|ÌDXÓܹ3æÎý`îÜ÷ýïòÁû¶óƼ?oÞ´¹s?ÞºõwÓÖÍïPvïÞ­˜+£ ågwdfJB©Ÿ:–Jc,ÌËlß–L½Ìô}[”˜`; tÛÊÙ+´:Î^ ”jŒiŒ…™qâ •úPìçá3~‹E>Ç… ‘‚ä†9¨Æ˜ÆXø1Ê}'‚ Ó%íÏbæNŽ¦ÎƒÖÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ»`1(G ð‘?Ê7çø-e€ý»ö_T.¨|Q>P~Hþºý+òyǃ ·jÿÝPBŸ”_±_Ç>Ÿ¡Ü°ý|g±Ï¹ãlÛ7È$úõ@“ï8Ì‘B‚ÓIfg2ô5µ+øôBGç¢3ši>¦ùXîò±ÿ##%þÒBIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qcolor-saturation.png0000644000076500000240000000414612536324501023124 0ustar philstaff00000000000000‰PNG  IHDR>PÓŽù-IDATx^ìÓÁ Ã0 CQÊðµC{¤ž3›Ä.ÐÎ ç¿A@U7l÷—™qmw¹§OŒè϶¤÷&Évœ>‚¤×&ÉLõ7ç”´ÖúÏãÙ_U}óWòh@U)¸îˆn|Ø9£ÜÖA ŠN+õ£ûßZö oڇŴ‘E¬s4Bô “«1\;:n ½w÷»D©ô0?ºH‘”‚O)õ&•À:û¤|tÕ­H<Øu­›m´2v©ÖÊMŽ­'°„¥El=÷ùùU^¼ÕAJÕŠVJ%ÆêàWåvû£MÇÇÅ8h)¥#LÚ¶í¼Ù&µ¥œ×²d˜]¶2=–lEg`ljÅáLJ»^Ýû»¿ÜE{”ºêJi(UT웵”s“¸>¥&7g‰y幖懠^†b ÁfÅüÔ]Íd9¹;JáÒ¿Û–Ø×e²ÔÏ+ª\Ëä -…`ÜÅL(ûλÛ@‹šTŒLݬºç19o Kë›üà^~aÀ¹&ŠÜ á¾0à\E î €{]îuïÇl˜ 8à^x® l˜˜ºÀÔ^„à¹.ðpxr6ÌBý}©sn˜€ 3fbXu¹òåüUzÿR¾U—+ß^„`à <ZV]àßTÀ¿©øúð7ÀÔ€‹ëÄ{‰}½Q&KÝù¼2^†P¾‡)¥ð]yŠòcÏ{±[™·´mRÑmj³%çÖÀ7“Šî|Ìäþ,Š„¡”Šm@èRª”þ+¥¾mƒS·š¨j¥uºVRj}§$a+1m¤ckàv«ŠÝ¦ˆQ°•µ² I m©ÃÀy³rbµ±3ÐkÒÎ@ÞO!¥î©[— ãB%]n[«¼½ÙS7g‰&q†¢Ò{ßy5±?nª6i[²ó6™IÓÀñyÓzOîÀXÎÒdÞ´âðûuŒ ÂPÔGïܦC¡‹‹kà¿HªÈ÷µÇ I3} ùê»Âß<&‚3=íw¯më´/;p@ƒìØ¿³Ï!läÖÏÎãPQõ»vÅ YKa@ÿ-x‘Ɔäžb2ÌT/$®ú3Wû¹ K¾ºöMñ…WOösœ CôLƕ׻é«÷ív“ßͬÖêK)}x(¦!ú¢=noo—üdµÜîD£QZâ½½=¾ÀÑÒÜÜ\}}}~•¼¥…ÏþO]‰uÒ•IÚ~òs(ŠV ò±··%“IêÓÓSjhllÄŸ$åùù9êÉɉ­zyyi>¦vØÞ#[¢U\þ!Š¢ˆƒäRF"7‹utt¡2NLLÜÜÜ,..nooÒ¡b`[õøøØìMÇ–íE°>þÈ¢(b-ÚZŽ…ûúúhtñäþþ~?™‰J–& Ì)ßÇ–Á`pyy™>w||<¿W8Ár¹\²‘}Ã̹a‡ÃŸl˜E‘Cæ³³3º\b/ ÝÝÝ!Èq±ù<Œ#èÉÉI³Ëò«ŒKäz½^FžaÈ÷ˆ{εøgÀöüìý'7Š¢à7\ƒo›››8X¦é­ªªÂGÆɵµ5]Pˆ3)ŒN˜z}}ý½Jm}Øœ5!—ClÜÖÖF-‹¥óž¥–í³9PE®m¹—á}õ_öÍ·A ˆÂvþ É]¸”>r‘2Rš¨"Ñ!ƒQYH‘σ¢üÿ~òHc;Á«.ç«]Þ ª§™7|íB4…e#5­^ªÌMð„Tg”%ù•ø_W>\×5qqWU•¦)û(ŠÜÙ²Á`Põ}j0‡°Zó<¿Y£( ¬Ú®ëhš†<$ôEK Ç0 ™¡€mÛv”×w|†Y¿M{:^ &¦hÖÒ׃Á —dY–hÇ÷}V]+Ö,Ëõ&IâyžP¨lIu¬ÈS¤;åðË‚&šÜ˜Öþ/V²6ÍÜ.‘Á`@&ŒC¡®M‘Œ* ùkàÍÊœ‘@m«Œ ë>VMŸý¯«Z? û›W:GUæf7 óOûvŒ ÂP´÷?s´„’ApþÛ¢³‚Ñ©[”$À8;2¿è_í”ÝŠ'ØÛ¥Ç,pÔ¨IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qcolor-value.png0000644000076500000240000000233112536324501022041 0ustar philstaff00000000000000‰PNG  IHDR>P¥ÚFr IDATx^ìÕ±À0 BQäsë¡3’kφH²‚)¥w+|佦!㜠jáö†¢¦!Ö‚ŠšpM<ÿEW2¿±¤ïµtÒÑ^vÍ5·a³ ©ú»§è5z²^¡gmÆf«1®WXIÜ6ÍgiDÂN+ðK+I&†?DL †{ÆÏDÆé«SçFÄPÖÚ´úL?¿Ô\vó‡^ò†¹mnèÚ`Š! 2ƒ~¼?ïÅ$Š…˜†ƒ†¢±µKPÕ]m·î¦ÞàÌ[t¶p¢Áéòß·Y¹9¸™Äþ|@¢!c1ŒR4•AÓASQkíÇô¹…:[ òªÙ8•l±…¦Òá5sZ»›Á 0ËÚ9Jw_óq@±@ÿ¹SPðé³ -} *2rD±¢Vî#ŠkÁs¹Þæåæ%ŠÇ†ç>Þ÷©7ïmÃô1}|h#ØrßGlË Qˆnxh#-›—Ø­o^¾q!\}\}\}|ã² Ú7//\}¼t^:X¤Á—õLÓ§4ÄË¿ÌQ£q$aLF,‘Z£ß©ÿê•ó¯ÛvU!kì†ÕqjÐ8ÓTGXûÛ¼ä_]¿Î òÕUÖ/Ó'x}{¦_ Ù­š5ÌT ¥»…:Ã¥¶0o;Ãdó¡U[кA;†¾ÍÍG¾Û¹ŸÐ*Ž8àß™]ŸIÈCŠ`ÏÒC-ž¤ b)D¬'-Ú<&L0B ¤ùc(­iš@±P -Š-ô˜è%JIÀ€'A¤´G)4¤/yvf~ßîòf³J!æ3¼ù}ïðøÂÀ¾…]Ù¹€1<åœâî=¼·kOÊýï~Òö~dçjî•ð¯#Ðj¯„‘Zí‚p¿OÙ¶%(jj„*RqáBc)‰P¼ ¨å?z!Zà ýî¾–|øjŠTÔGËßϪ·n'…€–/.”:ßþ1q gˇ:Ëñ‹”cÊÆ«'Žö®÷-ÝxAVË“jŸXí]ùÉàuµGK¼öŠ.eÙýn]ø3–hÄyåyÜe«Xa­í2>‰K$Å L°*›c"¹€U}œI¯0εôS7Ö6Xõ©Ii^[º‰~´ÛŽo'ö ¼@•zÏ@E(CxÖs/:ûeW‘œ& " ÇPc> ­µÂ‹xÉGÀ±ÁKQ{… >-Ó 52 ‚Q `œŠžü˽#XÆèÓé;¿ÖçQñé!ÐLP ³ ÌëO»æïf1øç(¥~îÊL2üG+Ýhì#óûÎtŒl;¼åb»úKLšé~ž5T$j’À¸…ZÔœj7Ì.Z<ùÞ«éÃM¡ù~Ö01˜Z‰Ù"\ŠÑiVð›â¼€µŽnJÆp&\Â0û}aâ¯ûÇßMâT’ ßàÌÍ©ë׿Ì9”&oLáÄ&øÔ Όð>ö ¯S¶ ¿AR1®‘s}ûÿM³•…Ê!¥\ܬë²@¹@Wë%M@I[›P¥Ê'Bm»ßç(ÿ. iJ«¡"‰®EœÍ6/È;±©tHºò†Šä²sÿ–Tð¯žIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qcolumnview.png0000644000076500000240000000600312536324502022002 0ustar philstaff00000000000000‰PNG  IHDRÁȧª¦åPLTEÿÿÿþþû¹ŒHñïïì1jÅ=Ü ¡ÏjîUÝ=ÝFàCÏÿßœIIœ>ÜßÿÿÉÉ 1Ù¡îíå>ÝΕ:ììäëëãððꬨ™›êêâììåîîçññëííæææÜççÞÖÕÑ¿¾·íí먦œ³²©ÊÉÄøøø¿ÿÿïïé1ÙååÛææÝâèã1Øþþÿ1†ãÄį1ØI^jÅœßÿÿÿ¿èèßññì2Ùu¿ÿu¿¿uÌ̺óóîÿ¿uòòíááÞééàÌ̹IœßœIßßœõõñuuIœßuAØÿÿßIuœIOêþèãÄþÿ^†ã1jÙI„jÅ¥†ÅããØââ×ääÙuIuu@Ü4ÚþþìuI 4Ú;Úâþÿ!©^ºöâºÏÄ¡Å1jÏÏϾßßÒ÷÷ô¿uuØØÉ÷÷óüüúÒÒÁ××ÈÉɶÍÍ¼ÆÆ³ÄİÐп^jÙÄþöÓÓÂÅűôôð¿ßœÚÚÍœII1¡ì>Ú:Ùßÿ¿œuII¥èöâþì„Òì¥èÿ£8ØIIuuu¿ÄºÏu¿¿âÒì5ØIu¿ß¿uuII¥ÒÿßÿßIœ¿u¿ßÄþìuIâèì„jÙuœœ¥¡ãCÜ„Òÿ¿ÿß¿ÿ¿Kã.Üþþö’„†ãRå-¾ GÚTß IÙ7Ð,¼Äèö®›™PâQôUôhújùJØ\ùlü`ùMãf›õXæLódùeñX÷jþWö;àMÜGïEÐ`ü`ñQðfûeýhôXî[òSáaö`îTãCÏXëPà=Ì_ò2ÁÏKëKàYøZõXó\ìf™óa÷DÐLï^÷júf–óåìüOò‹kû8êåíýFêf“ñ6CÙIDATx^ìѵÃ0Ñüÿ™f†23s綨»¥ªo¼õ¤™;Ï‹¼ˆ¢n† !œó{ö±péïJT©å©&_óv'³ã¹/ï«î¿Ó[uPékÚpÓ›˜¦™•ð©–†,Z(˜, Ùrµv,ËAAˆJñ!FP×ýZsÐ]Œû  ”zž7RPQþ>ìÑ1 „0…aaÀ]œK¾-ă$mªœÀBñ&½À4ŠÝtâD0­í øñŠ¿µu¸¢ˆÈ88ïƒ!¦ü «þ3Ue>gOŒ±9¹•Æy*êßç[>Ó«j»ƒ]3ûM‹Âøí·êÌnGbð#"R8%!KÕ"Yª¦3i–®³OÒ5RšÎDê¦îËÌh^ª>Îÿ×s|¯P#'•,ù"çrïÓwôÓw||ÍFt\œúq÷Zu£äÎ&H®E45¨ä󺞚"É”ìv‚‘›ãCåH(¡É)rÕe’­=}“¼¾Î!¨ß)#¿„‚7Ö@éä^Eàž€’m&øèe®†[Õ¡r$ EUU•ur‹þK9ÒÿXX‚VÉvüžô¾("Á ¥39Ï£÷ôm•À™°‹`8Ì *ØŽB~U†ÐÉ 8窔^ð>8gÚÍŒ{“N+·J¶à±“_ôæÁRѳ+ÍäJ£[qÑ|îîF†H0‚ý~9(uò+ì´Èüæé+OÔÎ+¡«dÛ z¼cX<¥£ðÍÖ° gゆH0ŠDüÁ $%`ÈyLíwY"´J¶ ©üãÛÆ»a‹ +\8‚¦uÓQD¨¤8At'È Ae’±J¶Ÿ`ÿºTZÜZ(H·¤Tà%4²##€é9k%çã¬ÐÎ3=Ç•[%ÛO”F}Μ ï©>1gј–€š¬ø•a Èfœ» ¨43í,ÃáIÆ*ÙF‚ßuè}2ªADå 2œO’‘Γ|@PŽB¨A ¨Ï“‘Ž“|@pN Ê2òËë©Y2è*ÉV‚R íãËÉX,–‚+™œŸ„h•l'Á€Ônœ&8·kyO U²­ü2z{²<-œ&8ôóà/·O›ñûoŒ‹OÐ*Ùn®íÔ²‚Âz°ëÐîèbG2”÷?DM²]Ïpö~ø¿)¾3_!XÁÀëp¹ˆàq$È=¸¼òß €[J§kY3O÷¼ZlÀúcSZÆM39íÁL&³Ás÷sìíu•Ò7Õ¾nr Al¢››µl}jÜ·næé¥U©þ®ÿýÙþú„©á¸1ö&ÈÎx-áÏMÄ®YßhBFb­ŒfL/þ=µØê˜$ç=ˆ±'AäÖ"ˆgÜF¸ÉƒËiˆ A¸0꜡ÈäM“$ÆÓ‰¸›<¸¶³*I›µõ ¸éñŒ±«‚?Ÿ@“ýSSàû Ÿd'Ø/\äAf6h£›éô³ž,fô ŸlÖ§ÀžuLBÏ¢¤Âž&Ø«lÜäÁv# zKÂWenò`û!Ó$H Á°K Úº‰‚ ˆ­µÊ‰/^Éýÿƒ„MY¶‚Vù9qK0™½`ÉP*íÄÁdî‚E ¥Œcíß^°"˜Ì]Ða hrQ‘K†`ž¦©l§µIĈWr/Hø6‘„ÿ„Ƙ¡ä˜ì× fqè'•6Ã"#zÉT±ŸÕ^ÐÍĈ\2§F+Õú.ŸˆŠ`2wÁ&K’$÷O–M"ñL0™¹àtîøkÙ%÷‚×4ë—êõû²ÛÇûçØ2Lö‚Û{dOÏŽÏnN.Ø&C‚„ !8h„“!ÁÞ!HùFAB‚„ !Aî,\ßd ¸ A‚„à{t¯ ÄXT¨·tPèk9ø–þ?  Hn(ÇB¿ñ†ä nÁ,ß‚k?,Ôæ£Àö.¸çLÑ#$™H÷E’WXäK @:ãW‰N–W×ý´?Ç(Â` … ÿòré±{õxn¥ÃÑMðCdTÛ!82µ9odá1}ÁDTw>‡zÔàÖÛƒ.ŒÕÎú´ßÔ¯5ˆóXüZIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qconicalgradient.png0000644000076500000240000014712712536324501022754 0ustar philstaff00000000000000‰PNG  IHDRõ(Ίÿ·ÎIDATx^ì½É$I–æ'OÜcÉ%r­\+k¯¬¬Ì¬%³ö}²ºÙ5·9 x™+Á yã_ÀA ÞˆÈ+É?€Á ¼Ì ¸`8v³¦Ñ]Õ]Ý]Ýáîfò3 õž~þLLÍÔ#<ªRpˆ©ŠŠŠš…}òì{ß{Ïþ—ÿòV)ÅÝËØÌÌÝ/ÿr¶”Ë—ÚÙ°q ›Yk›ƒîÅŒ©t6™‡;Ò·b…Á^J-¥m CÃä^¬Zá¸ãô¡Ì†y†U‡ÑÃÝýá7³ºÖ§âíâ^ãQÜ­”6©VÚv†º™³È›SÆÅø¶cc§„™Í«[³asã1™'~¦á¾Û§vwÛtt~3³Vkms¾Ö‡çÝÃ;yùY omņwŒ7§7ÞÒMÇÍ1,Úl¼ÍøhÅ͇ ‹3¾paø\ÆãÃ1ŠÏy2ãÆÃ[éu»À¶é”ß³2>róR·‹Ú/<¥o?~ãF>ÞjüZ)ÕÝ/çgv«ÛM6¾´Z‹{i'2Óÿ±Ã§iÃÈí%LÂ…ÃÛ·=8®ÂêvȰ*o>|ðˆ`ÕÜ1®¹ÚöÜø¹¯Å†‹‡¬(ì<¼¶Ž_óbÃUmx†í°&_F&ѼÖ-j÷omš¼¥¡ÃÆD(.)Ì* ‡™{®Y9¿ð³óRËu´˜Ë6ÛþóÐIOïj Ô#±ùxâ æL×]ú+tþÒòçϧdüx‘± ï|Žàíð7]Ë~Ÿ]1^ìhÎÊya‹÷õÎÇO)¼èM‰qCʟތψ-¾óŤ“5ïý0¸ó̶Ïg¥/wì|]]ŽéÜó[Ä+úOBcýu»æó‹rçvùÆûKá;f€.vØñ°N?¯€4°Êm&“;ßF=1ÖóíÆd5Ä.L5LO.aV†Îð€éüÉ×b XX#A:d®“3|ý-]Í yD‡'´ýl©ˆÚo|7Åk/>õžµDgç ?kúé…tFTq1æ7ÞÞOPëæ7ÖyRËźœŸ—O¼QþáOËûï.…ï »öÅL8Ú V¸·Ì.°{–DœÐ-B }ÑÅâÇ£ÆRéˆÅ§8µaÄhˆ•bXp¡ ¤ ãMæï%&|öÛ…çÚþe$HçË]öÅ®I¯–_¿ýÎû¯[5=m|%txBïÙïfRt´[a¤Ù^Æ{ep´·Õ¶¦#-ƒÜ°3dÖĈhãIøÏjq_dNú7¸®u ä¿}P^{¹üä»å{–[µ¬,h¿óé׌þ‘ 4Q‡4ÍlòZ´nàì/•i1]G2¶2®!ǧ‡€xÓK†&ƒÁ Æø¡&¼6S°CMyB;ÉQº{|]k²šìüx»0(‹–2c’ € ¬HJù ÂÀµý~| p,Û‘å ÓŒˆƒ |8™ƒ{ÙÜí(N&¿™M?ÊZËÙù¦óÁ{åÇß,o¼Z|]Z+µ.Ì¿+©§|Ö±X ¯¬™©9½Ÿ¯SUý1c7v xîI/Ìw–8µùÕÄŽ¥ûcœ BjÂë×{ü} ï,X6Ò8Œ±=ùwÙ$:ƒc†¥çç-bŸ .éàûyJÄ žø»‡ýÎH^¦\hdÞ•H2Ù•sœUÆ.­—«:à. ¬Îª~S§Ïü7´±ÂZKó²Z•×_)?øFùÒ»›ãëó- výõxV±"ÄsühˆÏÙó°†®Ï …x™j.Ä;zßüçžd+Y­†0ã¡hS(—íYâÊÂ3,#H‘8ÌÄ|LO'‡~ܲ(ôé!·PÇxÏQ;Òî}‡D1˜À]h·¡Û29‚]é1æ@Üþsßý„Vr÷-#Üé»ßh³}ÐJ=8+·NÊ÷¿V~úòúÇÊêþ`Î)•+…xP¿ë‚æ•Ò|JÇçÙžÔA­xŽT™ê8ˆW–¦Ã“¼ñL"^)Gó°dÂÓ/«ó"Q5±´®å3ìuÑñ šô­çÂÍH'!;â•Ð,ÞƒvˆxAíd¥n€¦Nž‘4ÉÏGef”‚$¤YÁ¦^&ÂYÔ;ã×›èA¸ßtBÆËWÞ)?ÿ‘2û®¿‚o ¹²,ÌÕ(Êsjq§+DZ¡2®fžn2âô\ˆ§¹jBpŒd¾Öе•¥±”O”{ZI}™?gØIG.ìSû=ÏB“ÄÐ-©¤‰¾SÏV&ig„‡KPLô³º”:Ç»Éþ,WsÒ ˜žšá nøÒ9Ÿs7¥Í3ä—rºÆgᦹnéT`«Jãý@+f9˜´})&+­xÏݧ J6ƒù&¼2ìJö1‰(™;9Á¾dÀ¢1té=À½$%K ãÒylgfDïÊs0Í(ÙOÿż¾ÓP&η»—p(w¹v¸køÒÌ6!d>,?ýî²t”ΰbªy·nèòt$îO3GìØ×;öJM¤ñ‡A|QˆOHv­x‹“ÜJø O¾vAÏž ßõ²¦¦ ¶¥¾Åù;ŠÀåñ“êCÖK]תf1=UÖû|1{ŸÀ¡EA¤!PÁ£'¡LinÈ>LZÜKËý¸ð%³­) ™—õ!KoKµ¸ü6W5 ]«!¯o˧$+žq5É&Øê¹O§¯ù‰rSfƒŽå_¶œˆ‹Á2ÒE¥s˜ ¯V»4¤hHt‹n×ïú *¯õ„~ɬû„Ü s‚–b u…{8Æ?„ž®oIhèd¹!GH2ðUøä'ƒÔ¥Vƒùþ%!s‘„,n¿: +öo šËkäéût®@ìr5^¥ŠŒÝ ½ö‰ Vi”‘™’K:Ü:_³*qL:ÒMâCMxŒ&ƒ§f€fNÎ-t/òSãšù™ˆ¬¢ÉOܪX^÷–‹g2úeìDDtUžÄØÚsç*íà$ï îݪ5ܻʔê^’KzUÀ}ØÔ¥p˨C-Ž‹òækåç?-Ÿx3#d޶ßi‰^ÐMˆø,Ï×5òj-&,H'A猫€ÄIÍp÷pˆ˜<èir2¹À1o¤Í–™Ã« „Wk.©ú¤ùƒ#ê?æš}–Ö3оÊ@ú±`åßíÒˆÖ„bú-˜‘.8¿›™qñÖç1· 0íÂô:#¾[¹³Yž ò¦ft=¿½_^}©üøÛå_߆,­!dÜKjß>ÇõÊØëØä(é» ˜s5NäÉ72QNÏ…x âg„\’7Ƹhi)&¼¸:;iò•!rÃo2O¯Ø×Èk[^=éyfë)²c¿û0Àâ3ëxDê9Á5¡Ê3f&eÊsCòŸ6Sp~b¹Î½ï¢Ì™º›Uuµ*·N7©üÍñÞÖÅ[©@‹ª-õ›T2tó$FTíþ…Qž§–¨¨E yØÛDß/¨Ï=ŽJ3YŠÕšCXßCØ«{ð¬(û î©pÞ:i:Õ8-ápBßI¶<;Ÿ=°àh õ—ߘ1ÖÏ4 gçhfH䙿!P»Á{jHón“ÂP%%‹}Ž7UcSÝo"!óÆkå~X¾üîæìê,`Ý‚œ@bWp"õ¨ÒÇûÚØÐytÍü–s5Ì©68Hê&e¹™DŠÌæ<‡pà:;Ùf\üA+ɰ,¼XèRÔÉè £•30ðH›ä±ñ'<¤2¯Œ„ÌÝÛe}N‚E9Á`zàÙ»º™±k½œºŽâ®Ú_†«) ¹:žÃiôÐvˆ»Õ!UÌt=2~l3MƒZ39|¸z ¯›\èØ]±Zž¨à٨ل„¡³lcÍb¿s`T(p`%C8;·tj®‰Ìk3E·×Œ4RL‹Ä"EK8w÷¢Çžèd9!sûÖ†ùÉ–)!SYí¢6{`ój‚1ÄêÈéõ¡ Ëç&Ë‹».ÁÕÈŽ’™á ʪ›t–:â1 ¼ø%‚H‚±¤^+ÇãiWX)àçIµ¿=K;q!–¬eü]Q É®WÈÚDD´ÜG$:Hänv¥2áî'2åGBf(Žº !ã\í÷>øå¼<Œeé øÈŠ».EÐ|G¯¢×j«6KÏT$TþKÇ+ÛiœsÁ÷€Ýd°a˜@m¿´“4I7–ææÑtwéBÄéìÉ¿›RÝ1X¾=sK‚§öH4…w;ñšÒéj"çkfôCañ±§ÞQöK¶ïPY©ƒÏT±ŒÎ!d”WPÈ@È”ëµÙé:“ÅȈ˜¾-ïÜÌMFß}y®†ž;Ôñ–ë&æ$Á^ÖÔ½¯U¸l_Äå«ÔfÊÝç, hÛ7á]u¼“åV¡(ˆ žI­›~¾:ž•ÐÛ{ ]¡n2G¥Ñ‡‹ëø„3·ª‚~O3ÍeÌù“'èHH8w.pßÛV¥Qõ†)dNÊWßi2‹óìÚÇŽéã{ßûÊ)xyEy™ë‰„ñ«ÙíY¶ÈØÏ@3mwkž.¡­ŒOKrç:wÅn†QsÇœ‡êšðfI:)èá¢øt@$Qà$Uº-µßç§œ¡7cLxL=5hØäÐ5õ…"´\wÑ×Ì”D™‡2i¶0‚TõFà††>ÉV7ŸpoMò<Æ22«yµüÁʗ߃!aõØìª þ½ß<¥«UÛà(4òØ©ë‘Ö¨o¶WÃvU“ú|Êh×cá;4K1鉟§.`:¥_»¹kˆ\ßgáÕ6@é¬ÂüâRs<+LH)}aorƒwy|ßy¹3ˆñt¸ :iveËêïé˜L3ƒçTMmõåp. vÌÀ=‘B ¸/–ÆÝýñæùØKåGßÞZº{{£}„ñEnÔ‰ÑÕO¿.Äe(/Ï-;zË¥éš<¥Á1ϧ¿~:)…©ÈÃq`šI³$•«Žß#gd1¹EôÇÆìð´. /“Is•Q²Â<Í0R·×Ylì¡üŒ$v·\Jê©GDeï3ûJÍ3~Wm&À}¯P&°¶kUÊ]¯Ï×O©ýÇh¶“Cæb²ô•-!óqQÈ,e³G&Iƒ[5AÛÙŒMnË£Áˆb²lqWå£t55½ú|ÖKòîQñMg¶ï²Oä%¹5“Ø]1¥U¥¤/œÙ…Ÿõ‚u¹—€xèÙÒÚG§—Œ‘²á Êw%gÏŠ“vŽñ®èЧšSÍL^•‰ •ÁÔ À§Êy?¸>_ŸpWP»µ8Bæ¼¼ùjùÕ¯¼·˜BƬ£nªSŸ/§Åç lÔJwÏ !-&£\¶ZH^ŸÏ%|Iʼn–' —Ld‰•Þ+Ìm°Ÿûl-žzPC]YÔyÔƘ”…WЇZl<ªgÎ<šðVM‹kÒcŽò!êY—¹Üg{VeÀlÍLÊ”8H½Ì÷n}¾>'s#w-Žj¶ YúØ‹#!s+2edvªr5}nªš"ìl”XO’°“:D nÑj!‡çøï×ç²ÄJýv¡Ñ÷+GÃîºÝ†Wº4^4 žòIJ^u´ZªJ¦£^Öaž‚)g'¤úSM(øëGÚ'¥¬‡gܽÓ5Ù¢½ç År‹µ_èÃTð®[×P¦\ÚH´íTàèsÒøH¸GßæÆ‰ÚÚ†ùñ7ËÇ_…ÌÂÈPÌe›kÉ*4ͦkúJÊXT†ˆÅpÊyt|ž„ [h;×M&yÞ燶B¶ÄzN9šXñfQK#Û@t´†]/«EzÊ•YNª…è¡E[>¡–õPf·ä\¶(dï@â.æÝ}G@SÇ  Ìz$¿atkõxVIuFúƒ“Aºßˆâ¨«òÚËåûß(_ùÒ–¢9;^!#e*|œ[_[`+­ßÔo=”÷`¹XYž”ï§4‰ŽËW#wI ,/ùçyï5@üØ D<§œeT,Mä^æ$qŒ:&¼°4ÜVQÛ–ŽPðûrZ>EAb¤ƒŒ‰Ç;àÉ3“Ö,gÞA½½53ón“…%)émª† `Ýú:w¡b‹»Ùãó£RuÓùîå|¯¼ùJY?8^!“©—øW릎àåûÜfä6°…S$’›"â<%™(oD'—é&u‹›cÅÒ€Žï Xé1ÌâxMÌ{¸Ÿ "~Tf±È$P¿F)xæÊ m+1½ˆýNnHÞjÄd¹&›+ñn¬»/iïk"ó™qø—]x‡Ýc¤ãÝYÁÊ‘NÚœôù–öÈ90³ýübÓÿÒ6ÅQ?õñҨű !£®, V: U>šå5¨^_ <ÍS&·>:¥ò³SÉ«L«ö1àcG ÓÉHܵâózO¹b2Ï[ÀTJzÑÚ7áÍd X¢^Vøýœ¢ÁÀtŸˆ;i‡…8õ…LP=" v]È™|÷5‘4)¼ç’‰^C™œ†9‚$L™˜ÜÙÛÔÛg'Z{Ì¥õˆï¯¥ù†yu dÞ+wïl3¶Y‹ƒGV›=×DÍo«ÅR4¶øÒååiB×Y†-–Ïõÿfzêˆ0W@6«ßÔÕMÆè§r(Q£o“Ô4ŠÝ¾9¼#‡è›ðÖAÌ<—¤¥øîšH’³Çáû>54â~b0å$§ =¶*1Þµ’Wúý禒ÄX53ž„2M’Lg • ÖÜ%mƒÏJÉ3>.…̦óଜl ™cKȬ‹2X-R_»h‘¦œ?Ø9ˆ—ÏRv§¾T$Ôü ”Ÿ.ºŽ¤~S¢›Œa‡5šîÄw†®xžÀÀ_CÞÆúBFzb ìžÜÊÝõÌ|8?C3:=ñ ÷•ÈUÕð:_Òòd2ý$ï¾S35”…2y¬^ÇŒ¥{‚ûiÜ…å{´ÈŽBf2îÇ2Y‚eë¯FâŸáÅcÊ›™’ﳤUssÙH¨ÙVƒ'0MÄy&HþZh†g‰Ù8™Ì`âàM}­¢¥iÈ%!‘¢™¾ûÞ,<÷a ËJYC\{L’#„ÒÑU¶½QB¨¸Ó,UÉGå>‹ï´}5‘F;ÞE‘j? bÜÙ!ÜEZ3ÃrOÁ.w0î12­@ȼ¿!dÖ+!dCöëÝÏ*à. ÊÜ~}ÖâÇèåé«ÀFÅòrüpR~1F¾äÂèx–.˜«ê‘1ëK7ï‰æðÂYZÃ{”úZãkCf65ó¹u§(ïpÂ;SD|甤։®Z[ºÈ{2cf¤óøÑRVàæ­CöîWïŽy°^8««.¢™)ͤ´»Fî1ŽIGö-÷=3¦)ð=~…Ìw¾º%d^Û(dZ;˜Që ÕãbøÎ?µ_-žËçÖ×ö.cY„/Ay_L@©Ÿú]M—«Qš ØRš%!Ó½ÝíJnÊÌ:1”…ü¹¡=Ñš,JXx5ë†Ùè8à…Â$©õÁ‰oy|Ï ü¼àªêÊ;²Åa63ã¥J1~ad%8,ª!Eþd¸[JËøüd¶aÉ]@È”O¿µ%d.„Y¦ø†RðË7ƒŸQ„UZÜ:´Œ@РƦoË÷jIqj¹”îG§$sæ÷°D6,§Yð¸ªûŒÆ|TÆËÝD6®¾VžW"žäǬ´ oÖuj‡¡`"; 8»HS~ÆT‘MZUj¥B)‚GXQôÏ53®š–6éЛ¬–c€uR‰é@˽Å»Gɶ…Ì+¢©õHž=‰A•xaXÖ^Ή«½Ù/»* 0_’’ÛòØJ%ÛZ„øã×äºJ8%Û”¥LºgÙÞ½G9;„×Di®ðVƒ…®,+KÓÒt¼¬Å’%5<5…Ž- ñ@]øwcIQ©Âþz5%˜pIfªI…&ÑÌiyÐ˃3I—£†4Ôš–nWú÷Ür§£}÷G¨±Q!!2î ²1šãwyd7akk§HSäµì*ç­¯Ý+!¦à}Í6Ë (çs5®\ 3Ëg’H£¿T\sˆÇ×*qOhòÏÅéÅ„¥©³ÄÑšÅÖg^VÞ%T4þZYŸ¡q?2E{§ôùRÍø§0ÍßÅŸÒHâZéÖמ©^O§#é üÃNaù†|ñœÇÕ a_TNt“b‰ï—,>ŠÄƒ™úZ‡{!°ŠÉß0À8Z­Ë³„´œ χ`4¡àq!.ÞÔîFæÈq"–õ÷2×;áQ]潓äˆNCU3©;îXÜÅÆïåŸíMåÈ5#ûXuµ©ÅñÚÇÊÏZ>ý‰ÒV23ù.Ý€M-£D|© í¬¯ûk9»Drybn#~ÙŽ€ª£4òªž<‚«qd‚2T­øHO‡bF²xQyÇh¢ò„¥a€K­–³ð,/+OãÂw‹o?€•-o¿k:—˜óp6AÕÄ`BÎ:XppF’wüR¼W€2÷å0·oŸ«¤ #œ»è&÷ÒA&΃GYµ”¿¿_^~¡üð[åGßÚG]¯K9ª`È®÷õå vW»9ôC™:[N6'àÍOE‘®gõWM.O£l˜Ð5â 8Ôï  #?WW#¾D¥ã˰ģ îƒ¬²ñµ²%¨\’Ð'²Ã­dÐËï†Z¼¬G8è‚7 bY¬K–‡ » ÿ®ï‰ 2æ'[¤M$g<Ætô¢„‹hÂcàÏoâS5$ï^–Ò‡jÒÔ‹@çÇ£®Öåô¤|ù åÇß*o½±ÝÒZ©l9GÌcy¹¨ï4ƒòøá’GÄ•?Hå’“6á;ŸS(œµcÊ¢6ÉU=ô k@«¹t ¡OÞG•Ž4^µíýd‘ùzô‡W&—ä—8ØÍÞc½¼ðÜfÄîYÖv*‰É2×”–ó1Ew¦Øw!ß Á>·0P2.’Ç63ã ý%È…«Åµ…»€ù<Â@»µ õdÚDç®ànó‹b_sãý¬µ¬·ÅQ_ÿXùÖ¯¾¿Aùõ9ú‚£‹o¤§–WŨÁ®ª—ɈÞÓz¨¿Vž¾Š)Í:éÅf¤ îÔ!8›cIàë¡2ùSx¸xê„òÊ`åR¼¤Ÿƒ µIAœðt¼ÔÃ3FÆÀ÷Ðñ~Fšø\ŽgXZX$ž‚Yã™üh{‰ŽC#ñ O-úĺaá–ßÕšHw43X?ãZ_n5ä²Ý:)Y@ŸpdÞԘסlŠ£¾42OÝÞ ûAÅQ»Ú˜…ƒ•”[.9ÃÇ CUñÆÒæËu.P>Ô_•á*·ýAÙ\î Êgs¡,Ìe”¬÷(C^ Õ9ùjb>/%°4;.S‘*&šË+ƒq$9°©¯uR¢oJª”ÄÑš°ðt2/+IiÔ ““°(‹%ŸÉÅ0à"á©Ñ³È¼+9£ºÒî5ªC‹¡ªøŸÂHhÙ"ƒ}¿üÀÞIæžAáuǦ2ó@µo2[Bæƒ÷·š™3øè…SÇp|ñ¤GªŠÑ=s¶†—L|>8¤;O_¨yªÝ?Ï–ïÜÔ‘QF”O.=:7æ@<»x­õTc‚ft›ŒïA<\yð£&ÙÇ”¥Á‚VG+þá^8«zY£Ìò+ÑhÍÛe‡ã»'Ô ä»ƒ nL€U! #qo${’JL3áÍŒ9ëi÷)˜444òlT©Î=õò¸ïµ‡,AÈ<§„ ë>"uŒÌ[Ì`ÏZè8èŠÑMÀÅJ5 sR+Þ¨òx”Ñ«ÏÇ¥3õòò¿ò 6Kòñø|餿ÖzªÔWIÕ¡–C|$ñø¤2§sÈÔêh¦·<œ•IèðÜ·˜f’[c>³Úl¯ÏÏ€§ˆ8¯´‚ðZ#86ã~GÏ<™™ÊÎ!‰ò¡e¬±aû8d…dÜg(ÜeǺö¥­B¦n ™o—·Þ,¥ „ (|tŠv bZÈ`W ÇÕ`W*,S¡cHÍ‚NŽ"m:!OîYÈj¾˜Ã’Ë )oYXîQJµf†¹F]i=ÕõWâÙÔŠÏ+`Í!—Äú7¬G‹çá¬\*¦z)JÑD;¢ˆµdžc(榈8-Ä™Ìãêõâ­P†áj¸ç æ™é„2E“kªsWÈf><®*WV={R¢¦2Ç%XGƘ&eiBï³ð á¸ë€ûh•‚Wsäû]m.g/„gW‡A|¯rÙ»ºO9hzŠ”S¨Ý¯ eÊrCZ£à^\<{3¼©×¡š2¢9ÒfçÇ—.“ìÐ}™††—]iåf™„qýHÒùa‚²u$²Ãá3|£ª2ÊÄõ*›Ü±Œ<ýYº–§ù#âËÄÈÕ@~µp]¶4O}­f">aiJÔJv’J&±]ÀN-¡.¡0¬Ë'ïåTÉ$¬íš„í'#!ó„LY£YªÈõbž…º< u–ÁgÌ[M ÉøWÉ£9rõ~ŠÊœÃÑ:ý Áýä”ÞCy‹(oè5U#ßaäÍöæjLòG‚ÇòΈWc÷DAŽj1?ïdžð‰I ˜ÊžÕ¹P4RX#ËžD·.ªò)LÈw@å "Ô±#ø"ÇÕ,v$K#<‰„+˜]Vr ‘Å~¯ü‘>Ç›ê~=ÅQ·Âö¿ ™' ™#}I*豿Ánj°”:^µõñ]é6¥¼SÁê^Ó{tËzÌê$§LZï^ #0¿\g‡×ïÛm¯0×NþH¡\ˆÁ‘XÓ$î ¢”O±+7âħia¨“î°4ÊÂÃ](”›)¨M¢œxVrm\ସbA¥Ò3Þ5…ƒšäïUC™ 7¹ ‚™ŒswÆd:wÇë _b¡Çj]Þ{ƒìs ³È~¬ÏðŠÁ^d´¢ÖüVgp*²z‘*_ßmÊ.)i£Ô<–l†Âå0ï+˜5Ov‘e y=Þ)ôQLdhI&…xýH”¶3zÉ”¨¡´`ï§,Yk6R! -z`ef«À%¸7Ú–é—Q;`#‡›B¾ó,øcy"‡!ÉŒwu«ŠñiwO43UkäT€éRÎ’­ÑúÚӛʮ%‡Œo‹£~ì¥òý¯—¿RnÎ d€uWd_¬ø†‰‘-JÇ8àJƒ½‰Á®,ÍüUÕ¹¬¼MEXΛT„’úM i>£¾GÚäe~.:˜‘W´¶T ý®%™2“93¸¥w1—rHé¤+j%øôLä‰lEÐâàQ’‘fçÞiIíP:òŽmÅ;or}ªÞâÍ⛦:Y}3Z 72gaÏpÙc¬“‚;3Ï‹M¥³|qÔ ÕnV¾õåòo~¿¼õzY?H™ŽûT\Kå îzœ¹E[¤o°3ò˜4ÂUêªõ› †æ¾Y^Òæÿ^PjÞ“„Àsê{äʃF‘Æf?C¾_¿{¯Õ‚Óz,[!Þlº¡­&¿iâf jŸFÙqª0íF¢˜â·„ñàM`«˜mU0ÒèLJ{Ã8‰=æ’F_ëhGbJœÌzœO o-Hm¢#йÏìR i¥9šZ³„s´¢•]É Í®·8ê{Ÿ/?ÿqùì§J[•Õ9„ÌLdW-¥wT¸+*r± ŠÁn‡ì–[ᕮʹ·…ñM…(ý;xŸ´zœµƒõ™B²¯\aœgèœ%àíòIу)Éb¿&xR4É%ard!¥t5\XÔÑš&•ddÅ QÄc&Ãγì½R$.\‡Ë.ѹéoµ¶9kÙÞ/,pḚ̂qF‰zK¹GOš'RHÙé3©ŒÖœZº8j-í’ùFùàKå©;¥­¶g+·›“ÈW…ËQ1»S€Y°@I1Ø§Žµ‡!W8p¨½ÝVòÇ[ô%Í=P0ç{•¾Ž;u§“Þ×ãkòŠ™õ»u—‚„á,p51ß/KŒØG§ñHÑCl%£)Šš@TG+ãép-Bxçî¢ìrpÊ.‘ ãW¿óü;LˆwŠƒ•à¥tú1§XÜ ãRÕÌ“¼ 3ÃÂxÌ(Ç ¤Ë$·LÄÁÁÊÔ›ºCF™Øòbȃzó"¡2§/„ôP®ÆÄ›*p¸²›I8¸ï‚Ÿ³4Ã0‚ñ€'t&êl„ŠL¡ÃÌFç*¼º@¸) ߇㪪õ"£èÕ:Úy†wõÁÿ3c *pa¢†´àAEÖ)à.RÈ}½©Y–Y­¶„Ìæ2¹•—G#{?@ÉyŸÛ>›®»0¥=„h‰B°K&8BâîI ¿%hë‡ò ÁÓTbÎsF–™(¯ÞWL3eüP†¾,-çjÈLÀ8ÙÉ7 l©A!>>TH\KƒÝÚ|CbPŒ)² yIJF{„‡EíÞ­²Œ”øNø.ø.rÉ(‹tIè˜à¸¤Ÿ•OY’ˆye7 Ü:ÌL#²Z&—Bæ:HŽ\+!óôS³™Ìƒ*,üqTŒ%Ø ÃN¡•Ì{&Xïs–Á_ݨ6ÿªn8Uö™{¿&s'^„y™”èÒ)ÀÂöºzJë$—§ï F”!20,óÐj!C>ájIˆäË“M eŒxƒ˜ÉId‹u ©{Ãb€Ê\JÄ8R€Âóæb¿Ã¤Šï‘u¶í’éñ#ÝL,ê Vœ ‹ 둌•03"˜ |Nãa}„rÄ”‘ËR#TU%µª7õº™oLÈ0&Cö¡¿˜*pÆÚȸxñXÜ£1Ðà[ÀAøŠ¨‰Œš<°ŽeÒ8+E?"¶: ù£ÄˆñîeüL.ÜçFÄE‘ûd™¾+0UWb6õÓFf á‰$Q³{ƹƒD9'Ž·¦N‚‚Q•ù£•Ïm ™õÅ1„Œ>ÂÈnÝ\1Ñ»îŠHÑÄã Ï€u03aØM7Aì :ÀuªÁ®<ºγy}*;¸èvÉS‰S ø×!ÐÓÀר]0o;›w"¢È y:bÝ*c”*!ϾŽÜvâ#2 žÙ06#/ü\0”êñTÞov|žàÌrßÿA'k®¢IqügmE¡ í^²@'|³d†™I~+XÝi€{±ð>CËÀ¹ „ɧ p¹P0ªCȼ<2ÏŒ„L…é;QÍ– VR…¦;~šì2Ÿï;UXº)aÝ9ÍÐ:…Ô°Jõgæ@ïóy›¼ä É°2£ôvžñ2’6cëTìëÚò.éýÊï—ŽM¥5ýo ޝ)Æ ããH40þaò±WcÂMm†¯µSŽ‹A j+ü ƒ¹‘«æ]¶èfFÖòd Áƒªa´\œWR•ƒy1Þ:~L·É2qö:oB’H—”ÈZ†±:2_RB†»Ì·Ùwü‚0™OLW½£ »¨XúÖº× ëª¼Äa¦Ö'—UÏ•-Æúh•©·yBwÏœ¸Ì-/cz%¿³ŒóR6MNI3ÅTEyMk>0¿Ï k²8Øœ«áaH×Ä‡Í ÂYt·êS#Ï€|ˆ¾ÖÈÒ`uFõ *rVƒ/ ‚3‘íÇæ`Ï~HSQ Œkc ¼–ø0”„q9ˆ‰À„¡p«h%=ªòÛ?çÜ=Kã® ylv\õ^¬Ëj]ÞýÜ–ùtq!dæ•ð9^ò¨TLLsMÎýžÁÞo9 £°Î’vDX—õ`–*<£gn "κç±}ÌÎ|6Uôކã.ÍÌ’ú©Ê°°ÀâD`3ÏWT<êåŸ)’OF¢"ŸGòŸ…Ç‘™0 •˜&ÄÂþSžÁDoË%(P E¬;sЏcg<%Pž$Šþ å2I`×vL”§RHÍ?cêMU½¼/æG5 ™Ê÷¾¦„Ì|›þ›åT g1P0DĘR`šS¿‰9Ö¥<º§a®z ÃjÔJôxDÌ\)ß°&ë;’ÝaNþwÎã#%uWêøåÒ¼´7Ô6¶<0í‰À¦gÈkŸNÎÕ`ßñP“:´XFšl2{8¸<²4Z«Â=jl€1áƒ?3gj¬iaNÚ«lƒ¤¸ ÄÁ0>¯”Ñà³ ${šsƦUU1>Àôð¯ËÏ<~=ν#‚\Ð:”Ð ™”O¼QÖg]B&çÙã©y-5vùõŽpY\£æ4ÀrHý&^*ùnÀºëô׎Ôç3Í1 ÿ<ÖÔWäÊ Ó'èua:lßTbY¶¾¢Î_´–‘îLUæ6A‡\`3G@©Œ¼>¨BÎŒé‘9L3ê¦Ê*Ú·ø ©fšØ&ÀšêhúåáU‡Ë”±9$eN;*—Á0þ[Gˆ/AjÉ`æiXñª™1˃]ýj!•„A•ŸCc£Ú«JŸÚ±ö€|I‚sUÝñ›4Ťùca05¬Y¹þ¨sçoÇewÝDû ¼x¯üà›å'ß*ÏÜ)ëUq'difñ =5“ã–¼^vLŸ.ÃNËÖ X*ø¬‡Ø…4› 6Ô¾)ÉjR?·Ã¾(ïdÎ=Lö,ù›Õo:*ó‹9Ÿ ù-Q•¤F½@PYß°žÿ1“Ó(o³?ÏÈiy¾Kw¸oËã0¼ÏÈ«½#¢LájbŠ»^Òó‚ûÛïþ²ù¸†9Œ¤öž™=Ä 3ÃÄMËÜKá¾€;d›º'/_­68þÞ–ùäÇ·ÅQ×øQ{<û±NT°H‘Œx‚ì-C´Ùùr’œÍ‹Ëèp$7sýšð½ïªÌzA$Ò²$Wö–ÞVî˜GÚ7$ÆH¢®ÆFRE‰úØOäõûò*/K40€ÂÃNàÓY K $OI!+žC}ª,•ƒ 8Ëea`bÁÞrÿ¶:‡!ß]^z8®Üš««fÆbÐi”¢îe îøÉcE@5“•2:¬AÈœ?$d¾vIȰβèD͘nþñ&ÔSð"Q·$·ËáÊ3’J}‡ ¦ó$s›-€ïЇúü ²Äa‰ þðdÅú$/• Ïkp÷ª÷aõŠ©§t `GPRäåÁŸ™Œ ^æ»FÊzë5!8`óübΡ](ŒÒwþ&)²m&ïq5øú\Xrf# Zñ̃o+˜™™6P:Sq‘²á¬|ZÜWì˾\Æ…xFªzX¿s!IËýŠ„¼—b ÏAÐÞX0fš#< $s/KƦÆ7V™â!Ã÷¨sF¨JËp#"»:ZBÀGàÔ·Ùól_ì¬p†]©åñ™~|oÍÿ~ Í“›© Põ•·&ž•Òë×%èë»W%“Ù-®Ï>køÊY y!®D²šÝáxŒF‹{Ó”f ¦ÒL„×ã)E¬]G2”“E‰¬&<ÐÓ>Õ±E=Ïœ…C 퉿4 À§úÆûæÙ†[™–ßòBðLªR†))­ÇÁ£B–Î"!³>cÁîólöþbòÐ^RpŸ ]‹_0ÅŒl_¾Ö-ÖØt¹ •Áj°ë:e>߯ åiI¶ÈDPïÐg¦ÿö pÊìty)ž\16°jb†£ùSßRBÇŠÄ¢dͺFû9W£ñ«‘âÃH6NSû:øZ]j}˜qï+‹Ïí·@ÑhÖañtúš'VSÏ#4 ä ¦½2ïš±6¤©êÐ!~Š·Hjggœû¶õbSÝ Yrß2/\IÈšj³wxö®Á+ §“ÿØYë}­`ú ë$Çå¦Ë_¥§l‚v’ùRØ‹ëÆ÷Ž>EA*7¨=4YqÏ·4,¸$\•n–“6š_ äÑ8?îå-f Âg©ä»Å]yº¨kºšŽ' ŠS¬x‡s‡[°8¿o‘ïËA±‘!zE2Þ £4×£@UÂÏHãnÊç+â aÞ…`W›d¦„ #bKˆZÀ]9÷ÔEI‡SóC–Bæ' !ÓGvú³U1&@í {¿ä\È¢(Ò¾+¬kڙΥÔs2(ËKrÔòˆ[CÐO9Œu†ëL¥ô3ü±êÒ¨¼)]ae"’²iÀ*¶¼ÇõÆë4¹¼Ë<Øò–R^Šæy}¨xC8eèø"S‘Ì„ÝXÂwZ}>Öc…‰rI¨g“"«bòŠÍA¶UÆZ20?„rɼ Ä[AFf{­zS¹Ä¡°œªUAJÔı î@Ë„ÕzLl*Ÿl%d©CÈÏ~(“Þ»챎•²99¼ê]r?"%û[$Ï6 wŸ‹é\—åŸõp¿–ÇÔ¸ÏF뇑Ûò&/Øvó‹ XÔ«i»NaUÈ"F>q¸™B|àjˆ§4ŒB<`m˜`,Ø@ÛÁÔŠ°4\®&|¨§cj¶mp±jD¾¦>źÎÌà¼EºŠ O’¼G—@ÜAsQc;Ï+éæE xl*×ÄÎŪ¼ôBùî×Ê×¾RnŸ!KL>«ø†Yà²lZF鎤$}¦N«#Ew´žÚö2u¿%¢Áô<ý ~«|NЬ뎼™»Ùùñ˃ˆP&Kxïae'¿˜%ÑXŽXÖ•Ðâ’2Ð5¦yÊèäŒ<DZ…fÑLè0W!^rQ øK\øw2Ó¥&|q:¤{$ÜTK‹Ð¦øÎÁ`ønIèAÇ+#¦´ÑÁrG¶ëvlÜ¢¹8TcFe}.Ö3«ÊRŠ£Zùúû›â¨Ÿ|³¬/ ZÇfW¢†–ªT’´5Ý"B¬ó/Ei)ùà k’$LÏæÍôH?ŸX^®n~«1S3ûsû;AFBu¦Í¥ý´Š 9WÎËdÙ¾¦«y;ò3üÍ÷û\sfë;¤ú¦,•*¥ß£.”íoRöF·W¯÷"aMÁ Œ O¨(OH”†ðä~WJ2ÌD>=r ò°ƒ@%à>rÀéä¸T…ðê³Ï0»Wn/ÀàƒàÂ„ÂØ†h¬ŒˆÇäGg‰ç€SÃx*åܳÒz³22Ÿ-ô¡8jé#»ö3XpM 9"¹†ksä[£¬ª"u’ñM®Q›Û͉wÍŸW ô/ÑTâP¾ÊÏ(›6úÄN±$/ùã3íù«û܈#$ ™(ut:7at„>J-ŽQ÷­Ã΃žômÊØð[~|lçh˧‰k¢/QÄÊÕO5d {È^Ä+ mƒòoªi±ð€P%®ŠõèûŽ.V ðnó‰w- á ²wšï(dj|^p¼…esvb¹[¯´Þ0ÍÃVÍêЦ„̗˳O—¶ÚNU™³¬Ä)ZÎm ëÄ%=¥z˜¯žá)$ ß³*dúl}nªëbÓsgé"‰’VÍR(Üë?­ ÌËÇè›õTd©¶6æX(s!oeô ¯þ«»%òÕ°&al4~uœ7Úò˜®0-Á–§u‹»:`ª“u’mSÑŠñh^‹©ÕŠ]FºZÈ+‰L0ñƨÞ‚ž»oshi*7q0Hƒ§ã]CUÛˆn˜-˜óêP…ÖÛ!óÛ.ºµõzu¶¾8oÝ̪oš]2ÅÊ×Þ{HȬ@ÈŸY|ƒã‘{á%d£ã Û^Ò8só^þ,–¹õ"°žD uòG*IБ¾Èǽ䕫¥‡8 ëL…¬Š)&G¤82ì1dDÈe20&Õyö•Ò#hë:Åœg•y"¼©PóbÎó¢Ê°á‰-o;©ä™-$*€æâT°âÇÈK§š™Â*™j˜L¥“t"y‹Åc%­+;…öS¬Ç‡~aafMôï܉áKVlÀow__œÝ¾{ïùWß{ñ­Ÿº÷Z[Ÿµõ¹ÕZ«¯V¶UÈl™/|vBȤlL?XIí'öu vã­Ë v%aTCe LRå.áÅ;Í’âtÇb s kà¥0÷MÖÚÅ÷Ü´¢©ž39ücü£òÓæ>Z¤;ÍAÆHˆ'oº#×ñާVÒÈhX“1[ÑøU£)êöíùÄ–—ïœ~§&ªs [H’i äg‡­  "#‹q.,ê…åÇôìw¤)²I —†yÇ™’³cbÈæôI™Ó2¥¾äÅ#½ã½ôÖ7þ£ç?÷ï>ûÉôúWÿƒO~ýß¿ûì«ë‹ó‹U}ñyÿ!dž „ŒäµÞ/X)ópZ bÜæL ö„„ÞÁOèoW§n§ÏϨޗ¾èËÙ-gt«Ivd‡Ÿß40aäóîÚytNZÏ x˜üBŒÂ@*Æ; ÊcÆJ6Ê$óÁް&‡´É‘"Pÿe‹ äN”˜ Eܪ‘P2Ÿ¸¼ÀMÎúÁ×ÚÆ}´y©ñ‘ëPN„ɧi<õÿîe¾ø 4¨Ò2ãŠ}t¬‚Ú8EÜaFæÅÕøÞÚ'¿öïÙ½¯ýÙŸü_ñ‹þ«ý/þìOþÏßœ=ýúWÿçžóƒw.~öCûÔÇ}uVÖ _}‚ìYS"õâœðhÙì—OI`½xŒ{ƒ]—þ|E£,<Å"uÐÈØý¾²ßÍ—Î?)Â,,VË ¿ÿÈåöªmâ¶*¼ Ñ:ã_Ók"\IÐ×üG®;ZxN”îEByCh¾©-¿+’3ò¼qt­Ð¦z#,™Büyu /¶Æ ÄsÈHHžš¥ò ,mQ9 ‰s%<<¯h"l |pW€YP= îL«áK˜^Ö«‹W?÷³‹úú¯~ñ¿ŸœÖÓÛwNoÝ®§wþî×Ú.þü'?ÿw¾øùS_ùê dæóì  R1eúËÕ:A§{’0ÀºY0A<ω ffíV%ugf}Ѧ\¹z.®”t0•@ÝG›@‰š\‚y¥ÜþÚƒiu•®‹3St¢¿–…ó©g^½÷ç÷Û+íÖç¼]X5ö­ó’,^ KÁ‰3ø…™+â±Ö£ñÇ}ÛW¦âj%gâäï| ]í¬&s/–ŸsþQçÖÂòâÓ›]%ôýõ+,Uän.á¾N ŽYa@d8eñ«À\à^òø&´ÆbËc–ŽÏÉ{yrFÂÕÈŒ nã“jê™®Ñ×:À"A­ ËWJ9hŽGq:“5w8™©‚»ÀÔié»èöh¡æ2)m‡?^ªêÜ¥­He@¬´Õg^Y{-¾2³Öܽ¼ñª}þSåù{¾nvq~ßo½¹E^Ë4ì*ˆ 4âǸgÕ. ‚Q v÷<‰£†›æV£CëVcîI_üé‹õ놀ìm¯´¿&+V»ßvnW§å1´Lé…>׬#A3#óÑõEW¹Æ h’zÔ$+†­0õ32³¨Ÿj¢ò¤©DázPЧ{ð†œk ©OsTÿSIð¸ÃÞ™"V|ù¥ /ϲ‡ÓcƒÍu··ïˆ{¨lWU,JÆÀ5“@õø0À#+j{A÷3yõ*†ê6ÆÙYéšÞxÇþÀ%!p:€Žâ8G˜8#™3~æ±#¾Y7ºJ-%î—o¾«z_”ß(ìã?ëÏE)œdJÐs#×0û¡ø5»¤±aË«ŒÒ¡b¦byÕȃ HB'„ äƉµ(¿'À\xv¤“>¬"rk!KAŸ—ó$ó. ‰šàó… ´;”‹µÀ¡ý°L€(È«’es«§þþ—çë§žºõ©7ü3Ÿ°M•¥µo/´æ~zúT=ÿÅæ÷¼`#FÀï5/E vÈù¼øL£R‹1a«lHŽBÀL¡Mmð£Ã¿¹9¼^¤÷ŽÃø-îâoÓI'f€õµÜ¸¦ÙéÄSÖ^G^G$mNÒE‹Æ”1å4ú˜Ž]¹°‡êOr"Ñô}¤ ‰ÎD,Ïx–†º\M?Oñblx™Êfh½†/Ì øÂѹ”)@àÍ4¤a§kyëf­l0š7°¡‡R 6/ï”Ö ôfîÖ*¶^[Y¯_¹õ¿¾÷þgî=}Ècfƒè}ýÛzûµçnÿ²<ø—^o¹{šŒLÙpX#>b*‚VliBéƒ#Êaº²Ì2}ÝKBÛøÁ€žð}å¢çùÍ sX–Ž·U.‘Oð´ÜÀ¦¦ GèdÀ­cZ».”W÷zöFYãÒ‚nÇèj–™dS—{&°~d« vS _);|•YV™lª›Åï»÷=·î]&'«YxT‰AµëIŸ­É³J”`‡Ì…c_«ˆ;Ö.®!àâG%®$¼µd~GŸ“•ñŠÎRϬøøí*1k’‡ÀЛ‚ŒÀb˜¨d&ãC2/ô¥ÂOú)—Àb¦÷ + «½²JèýÉCB]Èø(±[/ K6È‚\O8JH½xGSmŒŽÏ2k÷Êž28<¬…D¡Ê}çý²"Ú²ÆÇÛ°?Õ¶Í %£9®<†{‡×¾a~Ý]%Jjílr¢á™Íb¹J-cÌ Œö&b=›˜µ€^Šä‰>R%’”ä aA,/–o& ´b—"÷¿¿!±AdÕyR蚨"g<ü~Ü`@1É • ‹[ð½ ’&j®„!Ÿ×ÉÙœ•Ÿ/?ûAùÆWËÝÛe}> ²ƒª@j(5‚N¢™œøÄy½ÿº¥CŒ¹®S1•„+ ó䙩Lðv\E¿¨¹ÜH¨ó&†y7ÕûÍo§ð×ûTÎ1ýðÔ4L…¢q˜d´\\ÍäGOßë.ÅéS+£ªÛù±²ÈÈåk@ó¨Ef³¥ÈÅÕ‰Á‹>²ŒŒñP»ÊŽ8,t‡çÁ©[!…'ùÄœ/ÆÛÃSúÙÄ¿G5=b29Ð9>FŸt(¡NE¡:Äw¥JÔØ$m¤wÜÕqÅy+¶%d^~¡¼ûvùÄë[5ä™Hû=ô1! B‘AÀ×"/7‡ÑBÞG]Žªþ€áoN|<;€†Æ ${ &QfLíF„­C4ÉÉÂêUG‘Î×N¯Ùò`:E|p_óAÆÙêf€êÓ+qÏ“jŸµ¥pÏ#ý]²üjGL,QÃ>šØHÙʸCOCÚ\¥mW67<\XŽE‚]#OSÖ¨cá¹_ëðì¶éµ:ÙÁÛs¬¡±/^W©Èè‰çÙ¦\% ‚{\Ƴ(¸OåóVÊŪ4ß2ï½]ž~¦´³²ŽÔ¥šP¤ k)/[HÁ?æÑlÅM4ø•¤›• ¹/>Ddï¡NSæZ4 S¥ç ²ÃHl||‹¼¾³UëLÌAÓ…ÑyR›™àûu6­8C'ŠO©è¼d™Jîûè|({["Ÿgd Ã:©o¢éƒP¥|Å2µSÞŠ x5,> £/¨ ®(_D`S€~¸ÆFˆ·àn Â,/+6@¼7µRäÜ‹N„Ù†A£L}4ü[H¥²í´ ·pàI•f û°ž‹Õ†y糪ÝWB¦EvÑ á3PÞ°pù\&u +W´ó‚޶ÄpÈ{Ø»éP4²¢© ±ø`ð6Uä°1†@ˆû$ákïÇñÑ’R¦X ôO¡*QP…bp2RO£·Åºî³ûJÿ |åsÂÓe˜ó&БG–o—ê,:Å9ä‘b3!F´˜·²m&Êd6xÒ˜[0ÊÐØ±¨Ó†ýÇCÐÆÈ&È:ØÒ›J¡1p×K«ƒ MB~µWê–©5EvR‘ T¨ªB´˜M>„(öÂH’”‹Ï”¢²ydf„e¸ §h†tEâ‘ÍsÈ"  gVΓK­€ ÚÇdŒˆ¡qµ¾G®1—N…”KÌÛ®¼]Ñ“m`Ù–?Qú#&®Aß„Œ˜¢ÄOúh$¤€T ©`å¤Ç—Îü$ÜÙŒ±‚G+°üv‰ÅÃ(» ;Î;ÃfcÁ±âPË£ÇuÖK¹Än„1È3zü³]bò©ñ¦”Ö®ó‡u ¸ÖjKȼý™ò…O—çî_—5f–5$b,÷BÀ)ƒÙê€E·Ñ7uÍùÜÑ¿+DŠô{B’`e·+ÓœF@góÀÍéIPŒý yŸèû“â P¢5v„Æ~¿™™ßU·S¬áë±zhz$ŸÜgé/»¥¥¦½îRy -¦}Ôðä.YTqü'V¨aQ&4TU ‚E0Ô¦9¢#””‡ 5!ģǨŸ°óýSp4áÉR·Žê±TCóyHÒ}œd¸)àÄĵ…}z!Sʺ´•˜¨Ê¹š³c›¡j«›.dtðEã:?øð–'ø¤¶X)Ì]­€Á2" Çp*„ª'I‚–òÄè€8¤…ð- ô@KÚÓ'ã-È÷ŒÑ=£ãËuÏŒ}Ý!–{¥˜ 즣תÊ^iŸhÃ&´ IƒBl‹‡XGB j«#óŽvsÄñVBJË ÊcP£oƒV£žV‹µ Bïbf|þÈMˆašsŠÏ‹,ýÖºF=GMr¼0!úS‚"T2@($´ê /(/ï9ù­Ðx`ºâ Ü Nä…ðÂá²HŰU'ýaÌRЄNâX‘Ò¦UB‹äi0ÛØì B¦­Ê#C±€u²lÐpê&Å{©2"ŠQRNÒå3§P4αÈm ã%ðÕ)3:o¾ %ûòH®æ Ý.%êDrpW˜ÊÁ-êñ$áJf¿ÿ.7å§Ô—+øžìúH¡0eGˆy¿1‹ëÅo®XŸ;œM\\P¢€¾×ðßÇÑ] šÑ¿ŠŒŒ˜pâ%ƒºÆxÔoÔÀ‹› ÐX‘Œ4í›|LÂ`w„(LiÀtJj12j…ùÂgËg¶„Ìú#CTƒ ”ü ‘w˜½Ðù,|¢Ÿá3ÆÜVç<è]œ(—P”óÑðàØì!ï€Îin  gòÈG«\4›Á¥ë1Y?5Ò‘9èìh˜ŒWøýÀw}ì<¿˜(ÓJj ÜŽï4þnbäÁ„ø¢ïÃ٤Ф{ãåf2>”‚ιc³à­¥¼*Ã&à2­¼ýéò…Ï<$dVJÈ@¶Äè|¼5 :›àƒ€àMíô øN”ŽS;QRßR)eX?» æy(=Èå[üQðæJ’ý•§œRÏ1Dä+ˆ³õ$¥bÂò±;§²Ô2¬çH&TW®MÍv¶ ˆõn|Ó '„ÞEÎ*¨Š¢Z:Á|wRÁË.RÛ4˜Ö ‹5-jË‹KƒH"Ä‘ñÚ\B½ÌNl+6]š[5Hã'{­øÆÝ „Ì'KY „̰Y ßS7WjàR­ã† †ÏŽ2&áF9'ÁÐ$G8fyÂËò‡Z‰P@L“æl±ëæUø T Ç‘DìA<}¸¼šé÷KgxÄíT¤Qù„ƒ4í„þЧ*TWnôÖæÛ„Öï«K…Ÿ‘§‹ƒÁ,Û±Í8X$£/ â¥þji¡¦>(ÏS‰#üå7“(Ä+‰ÑJ3‘ÐA+Ç\:Q#?`›SQpW:îaÈÒW¿XÞùüÖŠ>_ N‰”"Û0¢1ð½Xžu“Fù qjàWø‰fR;Ðñ¢ ÙâZÔŸ>—'ÄÕîVK9ÏpEG%†lŽÌC_­%MèÿÛ©«ýþ†¸³š„Š){k¿‡TO¾uç¾õÐÆF©/77 ëôètM‰{J¬gtÇ9p‰µ¾P6a°7kAèâxÖ¸.Ê»33õé /®×Ñ+à$&ï1ˆßY:qýËU¿o­¯t:ÉÁdS?Ó÷ÖZ×~Ï–”ÐG¬Gç×#7IÁ™3*šAAe‘j¿K4¼ìy²3æÌã ˆSŒ.ždÅŒ¯øô¶# W>‚¾Ù¤ú7eÁ…XIbHBËÀ¼»hf‡äýûBæÝ·Ë'ߨÖ]ºHˆiø~‘$F9¹¬:R–ÎW£¼¿kiðïƒaNt‚‡jŽI&Ç®¾0«Áqßôs;]A\+zýjˆ|Ôßûœ¾œ8ruÏæüLM ©tßõøþö{úÙñºë.ù{óH}¹ÊÅ#€*³ßékb}‡‚óÍS¹éRÝF~ƨAeÇ£«Ö{ŒÌ1èAže :—ЉeŒh/ämšßÊãNy±*'u£jïíò̽Ò”uSdŸžŽÖ:Üü»Ço%MÆL -©˜-qΊç5áÊQÎhÓ2 ©‚ o•Óa©õÖqÝEzí#|ï4žœ…/iDA;ÄŤ댡þ@¾àlëÒD=a–íi¿÷~¬´¸  [èðWòF.Éð(q©¿j‚Sâ2·¿ôFIvò#¿1²õ– EbŠFQž»ÐG 2N¨ÅÿÒuMÔAÒ©¶acBæ;–çŸ+¾*«ûòv‘h!â;þ‰‘'¬ìÊöKe ‹”‡ô/ @g –7LŽŸV³µ„m¾[y†ÎNL—S´}~vœ¥µ™ñí³ìwïØï¹¶RMM+¢±åúisí÷d+T¾‹‚«ºK傟Q/7uaåѹœ“hÐOŒŽ¶HVÞ¥E²R`Ö-R1\S ˆŸGăéò_ŽU­Våäd“úñý·Ë3Ïnêç­=â”l"Çr—è˽”´ÇÇ÷:N91AoêV }:LZü‰Öq +!ž~vz Úï|ÏOM|Ýz{èQˆ&ü \ƒ–¶7_>_¹’kàgR-)>ß.e†¬GFÀG ÕUÎxY´s²W:ÓÔKw…¸:y>¼Ó¥š²ä>Ã~'¸ŸƒDêêérP‰N"Zc-ÛÄ¥–{ey0¤ðï±iÀJÊ |;K­u½~XcÐm½9^ì’úh­<8//>·q¢~òõCuu¶®bt›Bg‹o±”¨ R˘3ÇQ@óˆ†$M3ÛÉ*¥Þ;yF Y.Fm­Gª@Ü¿µ~û©Ûˆû(ÌUtfÆKöñéß3¢wþ0ÝrB:Ó·K•,ª=|w½6obBêVÓøÑÜ¢Åí”›®–‡SaoƒÃ#¸%YÆ$›Å%©@S7‰IŽ«­¬$6 øNCZÔÀïhïØŸŒÇó €$BB‹~Œ¨¼ågëu±Ó¿X¯Veÿ؉{ø‘‹ ?9Ùâxÿó…Ìú¬¬Ö²Uú%†¢E 3g8@PƒN¦âpR¯£ìL¥S’÷ªCˆ_s,]R‡vq:2ç ûè©à;3~µ¸Ù$—ôÈÎàgÔ~_¾-ŸÔ;zÆÔ´÷âŸB¿'©éoº$×Ë7‰‰êaŽx4·õÆ,3qåM x˳pe²iRI¾iÀ}Gd­z­^3+²Z)†¦žj„nÞÜWçϽñáÝ—>ôzÏÛùÙoþ¿¿üWÿóƒû¿9½uû|å›L#!ÓVåâþèÞ'nKÜl‰SRÞ+YºlBw$^ë "ˆkZÐ,.ú°’j§[uÒô’ygÖ1ZsMN·ÚÏ<|§åWtTt#û;\¾æ}~Iü×oêï(º «Ý#îu« ŸknúB—#]~Pgt—±©ç B:I ¸@m’J§C>´íFÒÁ~Ý*,ŽŠYb'FèøÃ{ʹïãf^šy­ååwÿñêî»û·¿Zß÷rçöÓ~üßú‹þßþùŸþ‹—^ºóÞÛëO¾nÕÊÅÙ8Ì8‹ç°BÚ÷âÊŽ¥€¥5xg(bóÐe:Gœʇd}ɬ^ú9¼DÿÃôî}~F[^Ùmqû]÷¹ê{<Òêô<Â]¡txëÆÚ‚†œÒæ;—iñ¸ UF܃TnD_Ûæ÷0‹ÏèiÌ»Z…•à¬Ç ©á]Ú¬º¿ôùûìö;õ‹fõ¤ùI[ûƒ¿ûóßÜzñ•wþñ+÷þÓ·ßú«gŸ?Y=h«‘YkR›uø™ÄÍ£g¯Í~×@“åÛÍÇ÷¶Šù?,òÈÚ}¥¢ ÙêxÀˆ. *u‚ÀêètUÛݨZm™HŠø,. ðûl¤ÐMx¦½’µ¯—®këóg^þtyîkó§ÿÇí;w[³².ëâÍnÝö¿~îé{oÿúŸýñÙoOÍŒ=Íyp70÷41ƒz ÜÕ4Îðtòίë;÷.€¬ŽWo^.×± s žg¿ç`ý;3õ¾Û¾™æÓïÉ˾L4¿P-Üþ­¥Ïë`'ì F7Rc0X€“RÜÎß@ÐóW:BJ±b¶ÃAÉqü«F󚙯ýîsŸ{pöà¤6«VK¹Xùé©¿öB{þÙ;mý—}ö‰gËíRZsrŸévë  0ÍeÀežþNÐ¥ºúé È Xl¿k¿3þ£vmùéÏ1ö¡óˆIÊAaDm¿Œióé÷ürZÿˆ¾¤sŒù.‡<ëG-¹'Ÿ| ¤JÒ¼˜üEù3Ê­FŽ^T@º˜’¤\Â’âå#¢”“;/¶ÕƒzROª»•z·¼ø¼=}wÁ´nmÕ¬<ßÎ~UìV+^ “ å¹¼&IÊ •èŒOÃYÜ>½ûT-­V3+·o¹¹ß`'µx©Ûìíã~jÅ}¤&jHÖ¨{›[ ¦EÄÉj%ä›<ì6Îožî”-h¥x_é±ß%shµìw¿áö;ë¼1ME•ß•·QRÈZ•$g}·ýŽ·3ÄÖ§q´`7Lé˜- ΈD„mNÖS[ÿý¿|ê…Ÿý¶ÖZ½š¹Ûª•Ó“º¾¸úÌ'NW²Þ”O½cÞ 4qˆ‰åF‚×NNö(¶Qï6Z£ÜaŸÂ%ÜרdÂJÂdy™™}§³\{âÊ÷Ä¿›vn*?c7Å~g=䡼&~F–ë¡Ïâ(¼9´J‰HÍçh{‹»~¿‹Åi‡¸mp¼± œ¨:õí€ø wì·nݾøÍ¿ºwöOž{åÃßüê«§'f'¥ùº=°[/>ÿü å—ÿõÚOª»7·g©ùGáV¬oñóa°ý4¤A i÷ÿ½ÓÛõÇ«¿¬§wZ[›™‡Z¯ÀtØÞ&¹D¢õ=bÛÓ¸kâgÆäç^6~5eÉA= q3˜gN$•,aM™³Äý¢“Ç„N»æmà#þþÍ+ýêx0»ÔÔ‘N;À€"£q°ÆÖJ!¼Nä¤X°Ôà"«m›VU5hb*çކùÉ%¶í4¶#<—Ë«ÛX53¿ÿÿþñÝ}øìóz}椞×Õ?ó_üO«ßœÜºÝZ33s ¬qÀ=4IÒµ >²¾€µnT¾¾D(èu@\Õð òRuSÍ™Óu“0¼Uk]U‰Xö±Òzê,Á,€\êüŸíÁNßúäl“ƒÚ|Ñ­Â~7õ‘ Óï]Ëyô<~U™ …x?´DÐ÷®|W1"s€ÈpÏÙ SüGŸËÎèsº"mŸÿ1éŠÿ­oÚ¾^Ñú”N{;>ñ±ÁÁ|O0‰ ;- Þ¡— |ˆ¼V¨åò"Ìᯋ ^â<G1³Ì¾¥mÖ…Mýd¨Ýó4I¹ºØB.¨çol¤n±ëÀç¢j7·ndwð!sƒ;jz ¬.Bã;Ào•/&nO(Ïqßןôr¤OEi@R¡š]8¬½o±ÊןqÃõ¾×“>´,5â}Þ|½“ *ΑÑËmØ¥&°×>n¶\ݺDìýéf™CñR¥$d§ âTƒÆja`v_œŒ Sñ»XˆÓÂy#‰ìe×ÛâwõŠé ŽÄÛf[wawÅ,{Y&n3S£3Äë¸í_zgê¯Zœ ÃY„Éó0’4icxö¶LN:—¯@ïn¢mt(”ïÝ_3IväèöŒì™ÉÜs›&º n‚Ž+ÖLLðHs,Ï·ÉF­À½\ÑbP%÷Šë_û%®gu¿/~7{{S<Õpëß}\Qp”¨–Š˲´Ðw#׿W-]ø½f$uua”ÇÎÓ×|W—긢K•Ù¶#¼."þ]±Þ‘ÍtÓ óþ¼ñÝ9Ù»õ¡;%L)10jý¿t: \MÌu‘ ‹U%‹HG¯ìÄÛï/y{$0jQk†-GõMLH~¦j° û2z·6‘/ ;£<© 7úØð.z]±+TË`7;(¬‹Ð„ÉÑŸëõ±2Z(¢cæ4 ìš åNê›Åó7èßÓ”z_ò "H…U>âç¬Â1èùV…D(‹ÜôÍñ{?¿+B_„r2Økª,P>ýÁ¥ÊÞcÙYcIž,L÷1Ô¦ÆmˆIójøûŽ[_u÷uŸ°(¯ç9=âSŽ„&ÄK°Úwÿ¦¾ƒÄ†”e.EëbùcØÞNî·i¥byžêˆä/VpGßÙÐJ,ÔÜÁû×÷ZqivÍïà£ÿ` |=š& Øûp ²ß›4‰ú¢Áï[eÌI8Ü—èxrµZÛ£1ÁgO†ob—¼èÏåÖA[iÁã>ÇdѼU‚~ÿ_‚ºSu‹tuÛVVª¼Ø¥¯h« ÖŒûáψ˜ìÙ²Þž â†ßÜ¢ã÷™›r¿'lßôǯFÐVèÙ½,Åoöp§“ç­b2[He¶¹ÊÝ|ÜcFvò%TQ–[oÐvÕ«¾±¾@½êàgµ;L7RŸ7¼‡ˆø|'>–ˆ[(e€‹'v¨7¡wG°Èü™sLd·c0&bq'Wã†Ë_´J4ëŠZÜðòâèoô„®™P>Wæ[þ߬a2fEÝ(‘âlHkÀúÛ÷­R^ üÝC0NPgïâK¤1Ö;‚ñ.JÒÚqe3áu…˜]JŠ ¡ÁÌ{ûÅ’Úræ¿m³ç™¸ÖKñû€¡cß8…ÀS¶#!{Wí|÷¹.£òÉ1¿“ !–ܯK{”qœõÅf o=bACxþEõrÅzË…ãÑZš­}rëÅÀ Ý8…ìñ×›Œ±Õ{’øDú`tÁDå( 漎Ƴ‚x¾=xÂåÓV¬²^¡¿ÏŒ‚+ÜǸi§Q¾‘û»¦<*jYßAò„f¼¢ªîÏÞÖ×ýNËn¨ŸàµÌ2wˆs6j³FõœZhs'sö›{ÀnQåØMüûLï½tX¬U±º»ä‹²¹úïY†½×d½ VCj¥)e%%hÙ·ÔK ¿ª ÏZƒlaW˜&Ö ˪Ϋù²(È;µ!`‡–© ‚”Í¿^®e…úÞ®úb9AŸr$²#²¸•‚"GuÎ î‡@~Ay«núÏáêu}³@…`÷:ðQ#<å„uœ>½;VÁ!¬”Zµÿ–‚Œa²¶©ì ´±-|yKœ¦d„GC™¿ýçZ/lþ¿Ê²Çïf’ÄOlò—áýÖv¬Ü¬†©µ.c<ɼG)-¬ç¤ÖuLÞø^ @o’ô;^«üª2 –€›òÇ‚„yëF±»`õëÏ*#}Û î—®x±'h¥Òó–M‘>k,â¾ðµ€7{²sBòÄÂlÔ •×8‚Q:åÍЙF&Se`^–L“6ˆíí6bNÖ©¢²Wö³p³ Ë7‚ÞtQÖE3gQš8ˆ¬¡Ô]²*;Ϲߘûü¿°Þ˜…Û^Ö^«àf¤î‡ä’¬Ì¼ÒK(W[~,ôš¦Ö³”ÒB]¦æ"½jV‘u¤»³ti6­'* ôK (ß……„IþýÙy'9\DÎS·Ì±Þ_¥žlr[}¡s\‹Ù_8DQn¿ïË%‹ÒÅNNËAšk)LÚ¤ÙNßH]±mDÙ÷“™ðF7 Ö¿1B{ü8\¼zW©¼ž"í°sÈŠtÎÀV1é[ÖápÆ£Wf8ñªÏ7¾´Ùú{û7Õ™|fÎUþ>vïºGÓsq–¡Õ-¨2GFšq`Ø\p꫱ò‘Ä%˜BLíLÈïý ÀtÂÕ&̼ŠÀm Ù|dÂÁA=»Î†ì™x@¦’à΢Ü41ÒLxóî¨Ï2Â^QLDòúþŒ¬#èP÷Eßw/Rá‘€SZ“T¼ïD«N¹w.Ñ·`©Y(°¾Óƒ¨Þèg¢t"ˆ^ê›5=1Ľòî¾ !&É)»B°[œžK3'köþS'‘üÝV„''!ö)_A:íL ±dBê?¶[+'EE°Ó3®§g,“ò–bXÆÞX‰à;eäcá¯ãÐ#¾úöÝêÀZx|rTŸ™\Z‘Û¾˜ùß%79óþú¯›ñß|Qó&ª§ Ú¹É̃ײ\2 €ãK â6ŸJŠæÍ®œ¦u%i¹$Až¨õ X*¸Kˆ ššY³¤yVºS¡Â ÖˆÍxϱY®cW³Ï]Ù9Òîn2¾ï’»/y¯~¶>ÛÂ<ͦÑç°>‚òÞ±ÎÛ9€îð|Tû ~¬Å›&qEÉ6®-¢ˆ4œÍ¿·ã÷É L•-+ʾI[Õ¼ DpØÎšÀ Ñöïzÿ–mrš`öÐ;jþºƒ}º Ý7ó ñïoº†NÙðiˆÏ®Á$2\SàŽQ~ªâ5º¦&÷ЉÐ}ÝPØà/° *Û¼!1(#ú ®¡ì‹¸0w¼jëžý#?ÝsÛŽy|jtZß”.ýÛ…LÜŽ©Wñ3†]·2Yâ÷½ †ÑÔ£ãüÞÙ4×2há†øbbyÌÃ%ª_w€ ‚Da!˜îC¸›+ŸéòÀúÁ;…S]èçd·ßÝD¶–µ‚ÊK’ªnÔ.Hî[›xaîøª¨ ¿õä³KL€&Wï ã`ÉÔõý–œâÍ› Aš»å^!¾ ™`¿çüjC¯ÍÁ¾ÏÈ[}øgG¹ÐV]£l‘²-á`!æ}o-Ðýæ1öí®/ 5›øÊì¡êë@N$ŸKV?þ=•mÄ“^pTÍ 2ô#5‹òìðVê{tEû];%²ëÚ¾LJ˜ K€&¾èFLð8d€Úw•Ü:z²|§ÊÐô:o6ó«âÓâaµÂGö'~q˜ÖÐ;Ë-]¡BÁ¡°Û¶½¹ Aÿ¬DMº1§ÇV‡ X[âͶ'/bâú¬êhT-)j|S&Ð,¦Ì”ˆàZ}ý4É&ô\¼m”ò$l‡än&¢â[yÉ:î—8 ½°¢ÑoÞZ¾V´R˜êx†!Ã04å|tП1—ŠyÅç¢$ªjsú÷d÷ÌÏÌËLÀ;gX¨ /`‚’/³I/Ý’ôo¾~ŽÖ“rq×$‘£uA­e¬!¿šzì1mbùñ9) pœ ¦ÙfìQ“]¤!Iê&¬pøšw½^ï+s&øï›‘ÝÍ©B ™Pê&©>Ívòί&Wæ§.¶aËr mÄÎÎb·¿mªh;슽ôψ’âÕ¤é#Æ| øÈ· Žik§Ÿßëž²s]î%xmê!±tG?'¯3†0}0‘+€1=瘟áH`[ñàgeϯ¢ªp¯FX=*snÖ»êÕ_Hz]·˜27HkÞ‘EPLÄ ÚvÃnìÔåîãž­Éd$Ä¿®4„!?ÉfsW¼qÙ(ïX@'ËÌöMZ7üºnÞ©¦ÚØTC b&#fÃáÔEL´DÕ"OM:ʼÁñÑ-€,ÑPÀª“Î.êJ~<÷ÒðÓ£æô†7š˜ÿ%}»²øcg?+^hOüVSMú3€\ Œá:8\R â]M‹GÎ`æ7ÖdFvâš¼w¨b`ísEý¼É{ñ“v‡‹‡ÐøšõmY„ÀäW‹Dœõ[ç~ßáUì îøÊ¨û¾;¶{cñªwkr:á¡ìL ‰¼+¶-#ç^å*žÆ†'©;=¨ ¸Ó UØ´à¬AÖÅÌN{š Þ‹ö²²sÖqì.‡ƒü½W`è`äèžÖƒœcÁáÚ®óô猂~ÍËÏŠáÖu’ð;›éîq}WQJŠSvŠÿœäÙÛÿ9¥’ÖdEë2á ƒæ;røSeJÙ³”‰©º´Bé-êþiFA”÷%{K×_ó+ÅþMNئs€×­¬‡¢yõ½°“¥qáWÆÄ“Þ,î‰Ë› ¾šu~E2vÑψ“‰w†ó™ŒÅ»âöY£¦”CÚˆ# ?èF÷’É"±§.—ô¸Šo¦š’Ý{`¬©wäíÿºWL>"&—·ó¾ÆŽHÛ€áøõ Ý6,¼ Ï)€Ö‹Ùçr¾_€¨sÄyÂøu€ JëÕºO©#eŽR¦w™&]ê$9‡€¬+R޶æø&ö_ë…Q"¹špoÁ@ôïÁ{R¤ïX®Â©&g K»£OSe*¡p¹é éNÇìt++½£õlD)á„iÒä^² ç#M‹“ˆ eãá·À †;ÏŒ¢ê[uŽ‚ÌEŠ»*-q¡­rÙÇh/ã̼SµžFM@s“ÃÙIú­?«ï/®ß£YVtNøóëp¼Žö¦Z1c:Q¹þV'vsÖYú²Ã:˜k ŒA?Á4ŸNû 1ˆ±í&Pmö%€2Z‚–¢:Çõè“7¦­«ÃÝ÷&…é"ý.`¢”«,%W0e¬ªk7'Z€+L€³ñôMñà>¸ÀƉʞv/Çï! Ò´Q.ÕÆ™tF{7¨  ¢Y”v€†>x¤ŽTñ E¼`}Y*¾œÞÒƒåg¸ Ù@•ž.3EÞÜk·¸>î¦ñ¦A\´Œ·®sW®”—÷Ê(1ÀtÂFI-sÙñ>yÕ™šhškšò#úg³G­lXbGØN€SLØn.[Pnp= çLWq‚w? zëy`&Œ ˜7y]ÐJ&Óòy¿o(!þQ<q¢ˆ»ýgo²€u=ØYs©ÂñOG³§fæ6*¥?V×Mr·ì=Hf t„õ=ÜÒzoÂn m7wÌäyîiê…ЄDx­›ßïlÍëYÞÜßÇ® åG+øHû'o,ÆôB¢uÛ‘Çç¸NX÷ɆP}¥×gXçý„lçWý[TLž-—Á¤õ íC[BØÎd©;£õ&`qä~]QsX¥.e´¸DÖ¦´ŒYxlc1CŽý†'ë¦C ýùFá†¬Æ ^\¨>7/Ú—÷÷9+~ëwOQ|â~úÔ7î÷H<ȳpûŸ_r8NÀæ!–öÅO=Ë9V iŽ ÏÇÌÞÎçŽÖ³ `½N4憃Bß¶EÙÃ|ûh2ø}€Çá>Œ±½ô ~ÎŽÀ+±³û0ƒñÔ߬š0]ç>O“Ъ'´í°^5ƧV×𩃈/kÉá¨w“ÝŽÐ’ P§Í}DË ‘ûUô€†™y1“àÄÙ»«ºöˆLͱ¼&¦¢Av­ˆŽx¿Q ¾,šDPÀû•› Δּ¸¢¡ÍÏ0”«÷!Fy¡açI‚þ>Cº ôuÎÞLOò1ÍÐõ3#±õ$gcºÈ&af%7l,ÛÒ¡\~†¿~ÐbÆ80 dïöcºýÁžõ‹» ëí×Ü)8(OÔð†gÚ’ŽGš#öJ$Óþ2¡:J´<ôS}«&Ú-ÿZŸT_( ª+RZC~5Ë °Q,ïß±ÿ ³H)ð…Ä‹„³ k·®õ0ʃ$l™¨r+•êIêhÁÙŸò Æ3YÃ× 8$»|îuŸÞ«пʨ7'ºûêY½ð&Ü) ÊI6‡ê¬³üý§ÕDÂLÞ¼‰>û™½O,±½fI{èý4[¡o}dÐ÷ô„ƒ“WeAQë×7&*þ¥Œvn­ãäj§r?†týa¨ûR˜ ý!<¤Ä·wDüý‚Íì¾lFñÙc$|{ˆî+©mÖ°¥¦®&3d›Ó35Ïô3÷´ÙГÇ#aÛBÝœa[e‚\*¶¢ VH'¾ƒÒLQÇkøýŸ ÏWYçdµK„QºySêLX²çc±\ǤMÔÙ§ÊÒšæ¢gI{_DÊÀœ8™V9‚(?69Œ[o¦l9êû3`ê.±µ8Oо“(ßÍ¿sBÔuPxÅ”Û@—ô‘¹t@§¼yoqB¿`üߢ9ŸÍì✿€x°1 s,/!/™×jÀ”3ÞØ÷öŒßs©hª}¦œO¼÷Ö¶âÙ)COtOq@j"YÌì$[tœîaÉ£*Z‡c”?œÃx \Ð#q˜qôx< µÑ*߬nx9‚ûiîÑOúÏ”^‹xÑÆm/¥Iæfx z~Óràlüi ¬ øæÜ©ÏéUOd箳#+b1!d ë9€)#Ü£•¾#wà@(úB•ªê©¢¢ãv˜P6<ŒpŠ”û._N Í+‘¦ÅY5yït&üË;j¾O_z\ˆÉœÖçéÎ ò$<åü3{Ì…`‹õÍŒÚ("-p±wHñ\8¿ùhõdŒóÎ >ÜäÏ÷¼É.ÏÇõdáhy¡õQy2?`zª_vÆþ147u°„ÕRø9Àñ`¾B㾃&¯:AœÙ6ª‚K´[Ä;¼å}<’«éÄkòÊ»úIkalçç]€=ËÍ•|߈E’©¦ñ…ø©!{…Qñg†&W½Œs¬œÉ1ŵîĺ#aDsÝGñÅÌh”Š%,Pð<|A\®&¥.ù‰®1”¯(Ï0ǘ™dgnweH™Ø´®dIÕöÚQf=Šõ[•+4=® ©rªÕ…ªu†ïëÁgÀ}5¦"®$îˆEÙÒ¤KR&¦[Z°ŽyÛðÁr怔æ`PÖwÓx(²Ö dö™#lÂ'Á¦²`â¹N&bœ³Ø ·ò>V͵œ\­TþôIDœ[EØH[®Æ™ƒàHx“¥Ivlå¢@<`AëÇ7ី|Ç8³#nö=Hïó°¼~s—`rìŽõ‰æm52WoêFˆóô»>zÅâr!Uqÿ5¤gG¬¯ß™1<àl6/¦ƒæ·´`ºÒ¤Ïk ëÌÌhý(`wåÈà¨Õ+“È^’3RÜMÀãÃËâ\®p¨3Š| û#‹T•S¥¯ü{ÊÃ3x…µ ˜¿µNA„4S±›*WtjUД)bV, o:6<Éi€xdõ¤¦.äíQö•o y °2ï¸a(÷kƒ¸®µšSÇyNe°Ri&“m#ßúb= ºÁXOÄC£¡ëUQ¾IÑÉ_×ë]Ü8˜ÞFmÿLuUŸt7#5¬êÆó€}ª #¬›!þ d&[˜‚Ÿ%Æyñ{mÔÓ‚¸û™,t—ëâ<Ã\ßÌ»‚º$g|!^”:fÓ£QFrÇõ’GfߨeážÔ;FåYQ|R@¢Y€øðƒËl3y`èiäËé¨=õÊ„!`ß{À2¹o}uH§8R@o†ù±!4›•%±%ÓÆ™!Ž\°¾xóšO\¾¡E*AAL™¥/ãVü©Q5@¶˜bK×OÆLGp 5»O«¸4ËP¡ÂPž¤äÔ}¨_Á¡~!ƒªîˆöÊà(?Òî@yº{Ú! ûȘÞi¯0gàÆ÷ðÂTãÖÜW@R¢uW]±zP4A‘ƒì&âYLøÉRÑ¿C³P¯0úd“iäÙJÕ o Æg^ÞsâGýû˜µs ›"þåè§ÎDŒOPö3Ü31!ú¤\`ý˜ž½FâÅ;Si¿cýÝõE‘)ãwÁýº¢"I¶0G û¤$3ɳŠ•ú8‘]I3y©a;‘/©Tq2%¿IÀ]zDXÜ[+;W¼ë†þ/çȃw~’y¿‘ƒ}qâg”ËKoDfqr›IÍ eÄbQÌÕN±uÝ.Qq¼sªfÛ3èVJ†¨?¼ÉÈ×à|XÙ4I-ÏQÞÐ1º½R$Á~,dTtýy ÷.µÉ.Ý ¸ëQЪ?_Í^—¼Ž§”ôÔõåã°>Ygð>T Ó×ÿ0=ë%“ìû·oŽú-cvùôFÉR!>Áù‹@@{m'cü"rôì^IÖù2‚ßâ6Π^ï |É*ÃiðÌ=&0´œ°HF÷Êùð%®£”ôFn §¸” aÜ:>7ü,a85Ö“ugç¾ñAüLŠhz¢_fL×_?9¶æG|4%NŸb{Ø<ÎH|2°1âÍÓŒ Nû)îH îp8sÕ?¢“†7V¾+QfFÌ<Œ« m¥rö#S±‘–ÈGÔ©â'® øÊ âöò ể‹kC¼è{òr ìBÏôâÅÈ‚÷sºf÷9°È!JÎÍFÞLWA“t¢ß mÌÔïRæg馿6šâ„ió髜‘ŒÏ+aÀtGëÝCQÒñE½CLTÌ~¡ËP€;ÃÙÞec?€j‡žÓ|xîì"÷‰·È}nœLéÙÐßÅ©Öɪév8 zsÌ£Ch¡R|glWÊÒI˜\"â±1 wm¦‚¨`reäbõ_ébé»ûMbdäAóåõ °ùt6ù¥YoóæWNéè-Bù”~çØK»ÜÖŸo–3~~¬}ïü§=ð`~’ߟ¨¡•„±‘Ë€¥æÊ-ñ’1Ùš› ìïį֙‡<÷t¬”š;ºy0šì¡"‰¨qü¦˜†Éš°™Aa¨×é.¬¯Õ;!µŒ¤Hb=÷)kC|tÿ°w[ò3Àܺ¸²ñò–Öå­ ^}ʶp~§æ€Þµ£»°²F ×)úß‚{Çõ#ÅþºšÉõå×åŒ5€»¸u‘¿ü<ÅüðÎêµ´‡`ßT† ö„L pvµŽOA …DÁôrJf9¿ñÜE‚‡v¥GËá–’ÖHñŒ‡åðå}¢á²Õ0“ïˆSiëè€Q¼Sœ’pÕð\<Ì»Bû9ãÚe›»¿²…$]ã¼ëÞþÉØ­±Xo»Å9>n0@O5)3 ÿݬ£ ÞÔËåzÝ2 2¿:À©±AÒÂÕü¬ƒ‡Ï¶ìGNø¸Á$ÏC•!à ìÂ!dºÔHFùdo }M¸{;ßÁ=‹TA¢·Íâ;#å›ëðFTªÃEʰµp“C®jÇwIhZÅ*õ2”gº|ô‚™¥)¨°aã á|R1©ì„“á~Øhƒ’,V)ù5ïê{^Ë~@Í ŽÇLd¿™»˜á…~héýùaí:e©Ðƒ“ë ÇÿÚÓ:;¶vpü ­o¼°9ÌAÀ.6†˜hÒ§wça !„ ‰>×vÎl;‘i¥q˜ ÷Üyáx-s¿HáXòÎ{T‡ª”Žx_fñÄ“æ—y#Âw¾ L–L*6wè—Wá¡} „’´lâÉߺ¾ét‘C³ H›ˆ?$­Ñ¾cö'ØN ÇÔü$M>“°’²'h¨n ñ.ÔøÛhúVÿÕß’¾ì»Ë`2Š|àºÒö94pÀ¾ÓJNW€ìe^…©ÕÒÕÔ_X:Ð ÈpJÁ ,¢ØK€þ]-ÃÉ#r· ×°äm€õÖêUœ3åqQÿš;½ú<¬X0?Óœ;û–R©lNÜvºŒ¥k´4%q-#d“›7¦Œ+D\Ì ^‚üªŠkˆ-ÄÈoþç4K÷Ö8pÆG·†nÖ¡WvÝ»Žüò¸z1Ýýø0»2›8NžRÍOJg½;@Z±1ª<@sJtË·¤Ë n±¯t©‹p‡6¸/æõ ¡J™(æln¦ß¯vߢW˜ªù"ô­Cé‚ ¸Žâ .œ __ n'§Š˜Ú„LC—ÕìÆ"Â'ëB´æ(¾èÝÐJý&…+®&Q;ÑYZcF>Ç™ÀÆc§æwcËsùù”ƒ .‹>9o]G~åÑlÿ˜nX_ݾ8ä©pÓçª%Vý ãÊ£ä2gíŠÑ±\qàd¨o(îM„»–eül‡)Û™¼Hj)ëØ)s¸ù–>’ Mä¯Ñš•©Ó_ø‡Š&ÓX[T4 yït‡/±ó\Q_G§‹Ž¹øtMx]?S WcÝô% #_Kj(?‘?î§Z*`Çb“% § Â&_6ºQ:îƒøþ«Ã_QcñæÃþ»‘}îWpÎÆ¼ÊlŒ…IèÊ’¶]ñ¾Ü9*:¯fÔ_®“â.\n‹3!ò«Â›”PA¤€#ªX3x/|ÕÁ÷29æ$ÅïÇ-×MÁçáò*è‚ÐÈ÷ïcÙæÍÒ|OPE‚å4!W¸x)}T¿šégZÔ½¿] 5r`CêõåççH£<“OÇl=Ó’jSvý©õªÿZ|O {è§a†™O݃E/‹WÌ:LƒØ˜tÙ%Ë’Š‰°¶d·ž3 ž'CùÜhV½TH9ÙŠe‡~æ\Ñ™ Ÿ´ð¼£Î®ð`©%xŸªþ¬£9è|ºxV¤ï‡7HwÊäsaÁý¬(6¨qˆ¹xׯ’$ Ä ˆ‡SÎF‡µ¸j‘)Iª¿‰ÜË©ª€õ0>9(Qy:¢wÍÑ ¾;6ÇmX·‰ãƒ-UôŽçmh£ò6&{–ú€rØÎ4åQ;¨Åk4„7@ÿ;®»¥L{-q BIÿÁ$Tëí¶­±Z—% ,ÐÝöüêT9~ga³/k¥‘Kg[’lZ’9UÉ2UÆ¿³œF\¼êWÁîÈâÄWã¤k‡X(ó®‹´fõŸù “n/©´9f®Ä eÐz}ͽ-ê‰ïôîöå”)°þÔè6rM<ûqØ^¦­FI»¾ÅRg"…í¤‰pƒ?|løˆøkAvÛ×÷ܹA÷ß÷ Ã,s÷’ææ_)¼ÑÕ½…ç—ÚŽñ;ÂJ_"Ñ ¤ {w‘µœ¶ ¿Õ¸*Ò$jÆ-êL@©_¹7$v·íÅY îÇ\MCòQS µHkHùS±¼Ž:Ø6ÎÇ$84b èsQ&ŽÞ¾ –ýgÀúGuô®]2"xì¾1ª9²1¯©vðÁ¼y„í܃H01¸7ùž@dà°¼ÝÁ«•‹¦Ýo áÉL*x·ýYªþÍM_p,ÆÈñ»ßÝ,¡i2‰ïÙÿ"Ò¢¡ rîØŠY.&|©žw‚‹wßcwˆPãÊ:¿6] +ÙZòByáòDÊŸ³+æßW7›a}/N\NØÀhÕ Ç|ÐŒ÷úœ‰cÕìö•?Ï .7S1ñé±ÂR¸,d—+ »£HÕàŽðSÂ.&ÙŒR¸¾óóꛟq÷(‹ßÑóí,›3íXá’ÆÚ†^ÐÔ"Qð””»e‘ò-(A˜|Þù"f¢†…7çNëàþ¨« Ρ_‘øð£»às”_k£ÌÝ?AÐ+ƒª-£Fg¶¡¯ßÃ÷£h}Xʧ©çXLÕ2ïVè[fy $\;ŠÄØa»ƒn–ÐòvîA#L 6sîL`0-À]¥L73óŠp»D˜÷XÏÐóÈcrheCZ—Dí£à›‚—qqE^ —°i ãk% ðyìà}4 ãö8•!¾i*p5s‚ŽÏxÅBS–ANÈ.~ Qæ±xœ£¼s3Fùƒ3™© ÍÎâèï6ëJàþ1|·ÍòpGë‹Ù°s?§Í¬zÄÄ7È>Ëc :%q™ ™p,1É®‹öá¾»9w#¾yX 33åÙ1ÕÌûý§›—V2ïÚ„ôýž™Ï0¶¹åWRI"‹Ï…XY·ðÅÒ€¥›YŠ&s‚Xæ´E5¹ìâÜ+%­œsÏ»î-¢´µì#GÏ#ÝÿÄ˜Í ¼Œ@ÖèÐë°è¯ˆaÖI€û£ÃؽS1¦äöá:\eÜ8ÉcÄÐqWmBÆ—L¬Qìß¼Ë À}PÖÛ{Àœ{ÂGN 9Œæp Ø (5¡Næ=e”KMœ8He´¯ZîVCü—åà£{ÕfkDÚ3L%ã¹ç‚~á#¿IÓK’âÕÐM¦INJã!¸DÇUæ@ž0È\ÍÏbùóp[(¿ÔÓ>Ü{Ïîd‰õÙÌ ¤ ßûßÏõ…æ=óOß@‚ÔDÁ"û@Ékª‚#ùe›i"¾ÞÂvËÛ¹t3£ 8’p—ýgàøð¦½!™ û„‹½ ”y‡²>)év‡U¦UšÂ—*òg‚Ð'ò“ãMýl{ º%h ³D=÷jo| ¶˜gN¦[ݕ̀hã ífø”zö§!¸l:¾ã*Òç@ ©OÅ‘k"xåýé“X_›|6·QsåwyÒu¤F|7^›ßœ&|Jã¥wÀn)Åé’q¿† ê¶OÞ˘)ycØnd¬Û„;»ÅÌɬ‘û¨/"rOø@a<Ó²‘V)°;zXȱ[~Á8¿/ÓºóBmM¾CÆ…/Bƒ5š^t?\ŠXš);pFÓ‘³-iÞ\-z´²£˜jà**ÙkôZ`ÛÈ/-¹Ÿ´ƒïÞéþîG#ú™ kM¬ ç˜±`LßWÕs•'ˆõf|”a·WÌjK‘Ú¼Ýl1ÁÚGo¨ÜÈ®<ê¶û:e¦æž/pï¸ âä3k%måH$ Ø•ªøH«‚!›aÜt6Éä!£¾òçøÞ=’Æ„®æoR½¥*SF© 7&´‘Ì|ACRjÙšŒ“ü Z©T¹Õƒû(ws¡L+ƒÁò"rÝyªd”‡g>é%û¼c¥ô`ý å G ™ÒÉí‹9Nœ~`ì »ÝØ‡qn0@ÌžÕFò“öq dR‚mBÆa»g‘¿ ÷wÆä.à7gpÙñ&ÌVÔffJiUnŽr‚¸2OÛà ‚Ï ágöGXâw4*T'kJŠ„Ý͒ĶƒYl$ÖÒ†80qDe±`7Q<ß…j\9‘´ñyòÁÈ1a`äk¯`zÒ?r&|&”ˆ±ÙÜhš}JG3fOýåç”ÙrÝn_¿a<÷Ù8Jœž €˜·ØBŸ€@Ìø@ðçß<+˜#´•A¸Gtcî’jÎÝà.¢¯¿hwf†ŸL«Úä$ÁÞ9 Å̼ÏNŸa¹¼.ñ»0¹{œN³¤!¦’8.Öй5˜OgMm:§ß È@ŽŒ†®X$ú8ãÊ8FçBÞRÒ#/”Ô?’ñ€d^Ÿ>:ƒ9ë†|© Ïï×é±Z®ë¿fì€ýû:Wƒ"Üî!Üž‘Õk2íó˜Š÷[¤Ods6ÕË»ƒ»‹Tý8™R]™a"¿X7²`w.f8Ò´”3ƒÁˆß¹ïóÍÞ'Ïiiƒ˜Êµ¬ì1_Óì& Í##ÈÛoxy©¡24Ãóÿ™ý–¨&"åây?.l%¥yëÄ?21ú”Ï Ò,…ˆëO6ήÑù€L @Ÿ‡]¬Q¨·¯O޹â>sÛ-ÝÔIû`ï2Ÿ* Ê£Îþbs*ÌãV‘Êî¾Á…rqBÕžÀ föDV¡x0ÛCâþA{)åÿðïa¯}Rs‹ßÃÔé“ÃÂvø;wBz¸_«yÁûņg¹$M±è 9Ò²£|×™qM.¦•±Îð¤;„Ñ5Ýç6;ЯÄê5øØ0Qã žUè“¿2r7y÷ËTŒ”Is«~sS0 Ø,e ÛËŒÊ(LÜ‘¿Ø$¥1éÓ#ánp_i™) qN5M¾Þ¡â73ƒ|Ì ­wI+ –E7â”]i`?Üó¡Y (îâÂ}r1=ÉçAàd‡¼¨ï§Ê@·q¼atpÆwTˆ¶}TC ý¨Ñ3„ç:"Hïóž4ò§tMÕ³©×ÅÏÜçž´ITñâõ8cç+ïÏÄÈßEÅe~ÊÆLAd75uÌ^‰ì“̦&ù£¨sþæ1“¸Ù ÷ Üs=üg¢ÿœƒh33²@xÍvBu6ˆ®³ÒtDà×IüÞl0=_èñP?‚®ìÔQ±a6X< ‚QìjNj݀¬^’Ê(- mQ–PçÌ2ÄÛ’ÌIW¢‡ê ä-Ã9Q>@×lª%;Œ'è42ØÕtò3¿—8­Z¨—/ýdÔ` "ÃÆ ÅJçìz.l»•¬³Á/o°î‹£¯fÆ4/;9Uºö j™šrØ*2 Ü u<\›EX@ðïîs„üxe¼õ’]ph@V™{]‘?`oâ áM3.dܼ;XÕ4±>θñ£%Y"õ$_Ù¹€’á@û `Ž=`„zšË´\ óû`@ÌÊ˵ d7ýbBga»Zç°ÝÄMC¸#“Ÿos±kgìTQ:¦·øÆÌDµê òM9M³¸^1ÿ.kt–³ÀÄY¯Â¥è»ÂåJ‡ttèΟ¸;âX¡ˆÜ%g2ÿºjŸ‹–+=ˆj ãʼn™U÷åA÷´Yö±ûÿ,HÝ/ñ‘¬jPRþZ¾¥@éÏ«tÊ&º1ûd`²£†@;qs–?v8ÊxÌëÃÉ à¾(ÜÇf³N$åÃÌ„Dõ÷ÅÙ*â Ë"%ÎqÃ&'M‘Ïq»‚aß÷ut¾MfY!<ñ¸­]á”ÙÉÒÔ,—4„™ˆ3h&ýât뤛tÆU73ó-¶KdÖ@þå]øZõÃXÞô²©ùñ6NhçŸïâ{ò-iŒçQSU’v>=‡é®²UKÎ-"xóúâdJ€¥eÁ=ÑÊ»úÁ"h÷®°/—ó5¯ÒuKÆî¥ÜCÈÞ£’~t‚ø†r­óɘé×HKºA˜±2µ|!ç_¯di²ª®àN’ïßd8´˜w»Ëë’qíjàjDwB¦!Íœù:þÖÌË?`? bÏÝ‚ø#ÃæÁ¿ÒŸoöŠáõ£TÌT”oI;±ý³ƒ &d@vÑ;ö\S©/‰¦ƒ“Ñw9.û¹¯yײƒ*ô‹Z9Hy¦!ℚ¿D!(óNÆ¥²ÖiÀ÷Ašb|•ù^0,£ !Í­¿"[k%%¾áqä–,’u»Ú¢ÆŠyR‚æ‚øÎǵQW3[èbŽÏÝžÓ5ÞävÒ\ã(»Z—oÁý§ûó¹ôÔ‹þ ïož}”´3Fdà2l!³±í½„íú ºC[´ì'œûàÛ´ŽèlRðžÇ€é-W¥ã®UIjµj~Æø>?ÐmüLéeÎô…ÜL6g¤fìeÚ ÅQ‚8Ï>Zñ¼ðWoÀµ¿˜ÕîmˆoMæ$qÈB©KZS`bòuL×ðâ Ýë°¾‹G>7úéþ|Ö¢>Z ´2~_’ö5fŸ2‚Q‡ívÛûrج*{“ö ánp7-6K˜Æú^˜å ®FHޝ)ò’ ¬[óN@ŠÄO¥a7ò“¯Ãjî§7;É^ò¬ºz9ñˆ*šé üóQþÈ?2Xo :Õ9v5 3éÀÜ›@ê&“¦s)êTÁ*è÷QH•z äëˆ?êÿn¬°àûŒÚ(ívÀô®å1ŽÙsôäð2²3ì2¶¥RͶÁÌóÄÇ*`a­Nª ÛÿÒ• Êedff‡‹x{ÀËŸàá\‚ÃêCñ»+ï#_¬ˆ#tN›e¬EZÈ^Dæöº/ÇR[K³Ô⥓Aõ¨žs³8yXdièž³¦=IkÈûÎÏÆîÿ^ÐÃ…gܾss³ÞqÐf[´Ó©â.igŠ]¤Ó_2w-qÞ³#|^áíà³€»¾8Ïôd)~ÓéÞU*vw”‡ð&3'{ÅR6[¢·‘wHþLü¼*c~VH ç÷}þ*¹8öH9Ï6awÔÿNâÿT4°Ô=Yoˆ·BæMAó%娫aª¤5Ïò ìC›ýBNÀ>bAühÿÕYóQW²D ÷Í bZ„:§1eÌ£ºŒlÞ$¼³LÖK6UãÜfá îà2b¤¼Vf¦*­Ä:˜wðE BÁ«p|~Ÿ•ô¾zîÔª­…F!3ð¦ÄT8Jå—5©çš¦¬6` êûß“³hr†xöbŸv©”¡Wü^¼3&iM™‘gúq”½;̰P…óþ¨êMå™þ«.=MÜÿHµ¬i±1#Õ¾³áT?±Ö“üqöž !oH¶kɦ  ÈÖdwRA-]_°ü®‰™I:¸¦ÕV.¬sÞ6-Äžó\i_X¤WX-*xbvÞtÂSùÉ‚¶jî6kŽ\ÓÔyfñmÒËeÉA4Y#ßN“´¶„zþÚ]ø@Ò§XÆ}âåÁñö÷^æXþ‡W\û¯î”>©wœ2¨ÀÄ«Çøú$f·ü‘v6Ói—Sé}cIò’.s]"÷5¡jG/f’Š £dfÞ3SR‰T”à zk9-‡€3 ~ÿPçîÉÀ“‘È!ž®ØéƒŸMËŽ À·n4ÞŽH¤L´€‘ý.ñ»ÖµZQs¸ûG²†œA‡ˆÍÕÌÒšV½h¾fç(ÿ±þ»úÃæ”ÆwG+ŽÐ#ó‰˜=‘8㣵XÉÐÚ³Alò~ZoÛⱚ[·w–PÝÁ=¨dsô\ÿ²ÿÅA¬fffX–`’ÍYP6'k9ÙŸã»Æ…ÒñÝF¥`^ÜaôH1wq^°üm»+b|AüX ì±+j:ï„§êܼo¸|u*b¥5f&§§Ó1YE>*£ä´?Øðš‘} ص·<îM¶dPE‹ÈccŶïòGâWS7ïÖªTîÙT'Ä î‡þ‘¾¢sªtç YiU1ï,½¦ÃØ2,,’‚xgÏGH潞ó¡¿¥¢ {R4¬Cîî &þüe5äDÓÇ!êÅd»‚y·Ó¤¢(eÿ_3®»?°72ÏÌ~@Z3¸†™¯¼»‘cyç{Oð}®tÐô1qþ³›ß—ÄP‡ùÌŽ2+4 Ï3V·Š 2¸›pGû¼eSç`|âÜÏý#S…¦€~K®.f´õ¦„œL|lX+/ITã¾}t±'ñ»%ó‚EšÕ8-Ž»\H¥=Ë6%æÙo¦aiª£ûÕ{)x^<&Kºø3ˆï{þžq‘ájtÖ–ÅY¥‘ ¯šÒ¡Ï’ò\e@ùÓ‹â|ÐòôñQsèZW²‹žÁÝgæÅ̶sfmiº4ê.a!Â}Åk§IwŸýYá§NàŠvÇÉVßS‘ÍÀ¼[JÔRÎø·0ôXm6ç‘w4G‘E-<êh?«ûqÜšÝbKp ÿ3$ZáÊÓÖ<\¼Y¼ÎCT>rñÃü¨q X¸kéV ~RìZµØ?ËÇåtÑ€kë·<¦J%KÚùÌ€ºßŽÁ…ÐJlû¡ÿûB¸çTu^ÞÀÝ^¸ëŽko©q&yc Ð×Pu±¤ßÍÆÖó.¥3¾cúÈ™ƒÅø¼AŸ£ÿf\k'…”]law²ð¦q†žJ×8§Ì#%¶Q|3Éi  °uñ;Ä'O^»¨Æ› 'òÁ\EGÃso2YBò¹þMÞt9³`}¼ôeÿ¯ªÑúò±a\ ÄgI»ÕÃ’JàhÕK¯þï»S˜]€‰Ì¦újçL‹ÛÑ1ØÈB] ]™(µØ’;ÙÚáWVs ŠÖV@žmù^~28/štÉÇžƒÖ‰Qq‡ðì‚tÿ€j%É› Äø¹2±zÂ}ëyv]<_Þä”i=£·„]Wã;KW°ü‡¼i™G­(wÕæ^jkjþÜDzÀ§‘ÝÑÕ˜Dµ¤ÝœÀªQQsÖ@ÂIØ® Y!î:|O埃;ó=Ù¥Lii2kf:¶.ï.ü’¾B³%Ú¥wÇ`Ž.Çïrtßw V³L—ä¯=¸!¼o&Pµ ‹Dü ¥Q®u5 Ûuñ»?p‹¾·dÝ¢ø%Ë :º¥?áMƺ-ù£tÍ”bÝ+`/ÄŽæ€ý£zvs&òP@¾PíÂâðR'u ½Y)œÉ8{iîkeeÕÞ†Éówp7yŽä?ô|1GRkmÔƒÞ¿‡üvYöÎœÙžÉøî\T@ðà!ºFOüÌ,¡aä¥!Á£ÓwN :e¬v%¬^CG˜ßq˜ ~­áâw]üîlÏD5F\ƒöÎÕ BœpÚ`e¦k>PõpêÕCŒº/ ˜_³äñù>+ƒ*¯©ÑÝBÈô¨™„í†ê¼·5l÷lgS›³\ ½¿·à¨ZæEªYÊÔ¤Û‰¸ÅÌ Ï_ÍK3ïís…ÜgÙ`º9ó—A …À¾·@CõåCla¤£W@àûh–ƒÐç-¸3%ZÛZþԞΈ¶+&ñÁYø’jˆïù(o…ÃDAŒùFt´ì‡c$å»7Ø;}»6êr¨ÿü0Pô6´YÂê•ÊÏ÷Á/N~Þßc¶'`ØW¬`? Üß~NËÌ»¯Ñàî/â¢]IÜ“hwÕ[Î3ïí ìã&YÒˆPöç•Yì±ÄㆆóN=lB=ï'÷çÔi°ÅZIÞK@í·ý¼É퓌ٸ®8ûñDÖbǵ׮~5›Ã0b Ó5?ájÀÓ5Ùcyo0D“Ÿƒõ(Ë÷gYáåŽf¼»üQ赜SüüŒš¸ƒ›Ãáç´Ì0öùîÀ[!„ÈŒ‰^à>¨1ï>U¦“œ™Å“ðcª­?Ç÷>n<Ùàe>:Za$ß3÷žÓ Ç]£',MG£˜Ù·`$ç4Ïà „ vެŽgâÞÊ91#?X< wùtóÇò‰Þïö×{«ü>È>nkØnB†QÈu~Ó+A]h(i§Qªó9_yª1 MTûNŽœÄú¦çÁ,e¼Éíû¼!,Þ×!#û6§°Áªw‚{ÍÙSNæªsð×uï*É®%FÞ+W½í>€ï¶¡÷ímîÄ­7ÿb|O8&;­Æëq´Ìß…ÝÌî¦UÈ@Ä)Ú½èÕÇ.%ô£øVd3A<ï”§ú˜tÔÊ› þÐÏ›¿½ÿªÇ³S5s`§~¨¡I?—Xä¾ùÝéLGŠ“7?0°™»ÍÍ5Vÿ÷E•‘;q 3µ8cZµ‡Í€ âuÜŠ YªYW ߟàgæ½aQ Â³{—m()Sþé¨Tƒ…¾—¸ðÄnÕÄRÔº2‡³Ùžn• ÙâÿžSÆÞ àünc2;.ÌtÍù˜3Øs,ÿËø¾‚ Ùê‰6ƒ—yÌ ®Ò½){?íNäÔØÖRh=Énæ¾hB˜¿´åób ¤³Ê$iéùƒ:mT<ù º0Ï­V÷ÊÕbêùtpÿç{‹”AzWR4å¾ÛÞ#5ˆ›ÌŸªU¥4n‚î9„O—:ÂùâSþ8öí.Nr[(ö®†Ñ>”:÷X ‡ŸBùë1»GëÍI¢zƳÏñuŠy£ÞµÓîk´Ûa‹p?÷= ÷QA»óþ&ô¼^ÀŠ˜™YðîÚE¦„–áx¬³é]´7Z™Á‰w‰"Ç1ˆã×x2ã7¼ <ŽhSä…ÛØ˜ÇuÑòŽP¸—m:Ô4œ)ÏößÕP3ð?BÇû<âÝÈ{‹ùHÿUôq|7àξ]/±1k@í±*d*BæááàDÛ³Ò)Þͤp'x9ˆÜOÁ [ó, M»‡ºã=” e¢CLÁ;ûÒ7änµ„9KrÕ£žK,íöÜÌOQAº”t¶Ò튬—ÞFɧâ­"q'ˆìʪ•øµä^!>¢É¦S7‰§È¸ ¶—*sÈ3פñ£&ï{êõy|ŸkCvU¢Á¦Ï }+d:}ÕÎ3e¢z¦ã8&\ „]<6p?v Þª ¬i¥ç¦ Ç‹uÉù2ö™¬Þyq´Ì`K°ïŸÄ÷ór'@zD„»À¦¢é&ƒUÌtîš4&$¯Y‰¨º‡icþÿ e«D“#Ä[ÇØ™§-Ãöf?#[näûcŒ<¤üî`ó(¾þl÷¸«O” ÍÄY§š¯lûüMŒÇí-øXë!›ºŽª‰@ÄH’ÑYÊÔíÝøŽÍ¬ÓªŠÂ¡|Ún)åw ¥ÛzìPÍÔócWÁ#àikØGÍÜ×ÉjzEÜ‰à–ºdªm%â3ÿñ}Ößê«3ª=ÕÕhô´3¤{•í'Ÿdä?Ë_{ê‹@Ì¢J< ÛÁR5=èSbÅ7²( wšÄâã`ÚÜiä¾B)S)ù)p+w¤EpðŽEm )G²w‰'žj·ö.Ì=?Î)øØS¥¢BƒòêäÌâe¼`uF¹´ä’×_»\ò@1ÙKwwiün@ã¤ìî#Ö³´) î•PÏ´ˆz¢¿öb½e˜[ìvÏÂöÉCfv™ÙÃæ#¤âPÑšÜÆ5žjgÏ÷È1©.|Úþ·ÍÌoU;¡5x—,’Cxï@c0« vqäç‡QBÔ «7‡“bŌ場’“8ÞÜx±yÆSm{²â[¬tÙyCü$Ÿ³¨{D¾s5:,µ œçaºÆn”ëÒbâûÜV P(µÈÙ± »ŽXÅ–GÎÔ”¤LƒÂo­ÖÒ¤ä†`÷-Ø“ÆÖ¹“!~7!`?;¨[í3®†|¤ùYwÿàXcy>ºzDvIÚ†ä¨Ë’ÃöÀ‹#ž»S©>,ßΊáØ¸w/à¤vŸÔëî¹Ñ~õ™ö‘öd›Å^ k²ŠßëÑÞcÝÃ­Žø.—Ç\—¬çZª±Êl>“™¡;tîe×°­q Ÿ³Èºx±AüÜ¿éÈ0ÒBÍOÎ,ɦ#ÑÈ׺y<ÉËÇ›Î]õ‡v(•¡þŒ©‘ g(l?&d@˜Å„f¥rìÌ´ÿqBUàþDÿ&nЂéÕDÁó!ësŽ™÷:4<5iÚm#½ÃõÏãwpÄ&9îæþ†2(bµRÏ óÖ¹!|~û5øLu­)§Ù4÷þM{…jëu9Â…"Y¹š%_y½ò ¹l"ø¸Û;L]f¹âYu;ßHµïa»Ù’ƒ}aΦªq§Ÿƒ»÷[Ã"U;ˆUT JÓ¾èfm,Çž™÷bšcC8÷¼¯Cc™s@>çߕۉÑ]ï/NÝV·[œï§þºõ‡uî3÷Â¥[E­K““Ár£ê⡳!þ¾[¸šY ÔÆ®=´ttÜý #?³šÎÊ^ü ÏÎØÁòÐZùã¹ G+µÐ9»ÍoÆ#§à¾×š²úFîÆkê[—²Ü˜lôuðîSÄÑάæ¿{Z —,zBØc‹ðçM ¼3ͼJ´=ab)T5?¨Y.ï?õ_%0r/IÄ_¯öÌ}ŸÛå4 ©b”nÝúói%œqÝuéj]ÖÃe^¨j`“žDy;Õàw÷çûÁÀÊm•Q¸,< €$Õ?êËaýŸ²©š{â*3êÜ÷MbÖaN•,™×è@™ÊBïfÞ«wŠ1á¾wg±AŽòù±¨àA[EžÀF;‡™úÈk‘ó[p©ª"êFu£n¡I’òçQ|-\üR¸ 8Á8k» ñŒþ)oè¸ìvd?·~ôùv;˜EÙG©Ô9vM?GêvÎ#w ê(¡ ¹©¯ËÞî½hfbqôY;x÷´e#ähµZÝŒeÛbØ>Q¼Z{ ëî dÖhP僞“0¹¢ÃÆÖàf“f Lô˜Âïṵ̈íÁÍœn­×šnõ ë&wˆo>9w{¯yX4ò!廓Ÿ™‘øŒ1+Rzpê|þ •:üA Ÿ›A:Š××Ï«¯ï+*8_43c`ÏdïξÎ&ñS¶3~f‰îUÿéè£ñÝ @N'ŠF¹oŸ$ Ÿæ+âÎ}¥)­2*6¾Jù\v2¹x€o"jv3²>Œâùpawö¤k½|?ÖÊXÇï®Ûé‡õ)f_úXŸúi¹–/…ÁÞJòœGîwÓþ|ŽÜ!Ðk'.š™!°gcæ}ˆÅçbƒ³,Gt–‡Š'ð}9ß"  z•Qn¿œMákf"‹w»‘à 6M-)q²³4ƒÙqº•„¼•†»4o†{îv’>jõçQÓÁÙ×N×<<®Y1·6½®PLòÁtH_2ºO ø™Ã°] "é:/’2àž`Ö瘓9ßãq MÀi{‘ê݃Ú}D*¦â¨K¯|£ôÑV€¦Œ4{sÁågü+øXŒ$W+àQEcgÊ)„w¹å¬•ìÙ”&å’/OÞ!~yðÚ£øèÏ·óyB|ÕÏÎeìæj|Û¨'?/ ¼Îƒß2CuÆU¥ú-´¡eŽü7¿.‚¸p·ÑóAâ/k3×]Ž{þÌö±fÞ‰‰|ˆÎœ§íy_m øù.¬{nÀ(ãÍÙ¨WÁžìÑÛ Læ[+9Y˜ß¡üu˜|ܲõ0ÝZ‘nU Ö¥05ÍÈj\[uÐ2cb£¼¿¸Çð}ÒØÎÁo÷b°ƒû¶êd Ü—ÚÔmewõ™Fž×{!J޵öœƒuNÕ(¬°ÞÁûl4éÞ `ŸîÊ™Õøóø^0`']ð3Ã^–É«¢x€ƒäÚ„8bioRþºøœ¶l=60 ß3ÐNºÉ^m qêyí͘ø†‹‘ÎáÐã»b¦JV;‚#Nfﱺ»D³!ƒ» ç˜–‘WÌ2NMÇL¥€˜Jnnjwl>ÝÉ[“xó£à?úh׆ïÇãᇑeYçøn|vxÖgHH7ž»Ô ijòçŠÖtÂY #¹Ovë!ùã–­óÖ˜Ôåñ:ÐHÞgh žBpt¾›xÄÛOJk®C§¹dÉêçr+ >Àà~ncà1FîÝëçàîz1Òñ¶ÿÝ€ŽÜí YAï£Ö-ôqáÒ¾DœVMz0D`Ÿò3†ôÒöãÉ-¼f.·:Å@J´Ž¾c˜ÄÒÔ¾6Çr† ±Zy ¥}ëñ»DÆK»òÓF^ñ½¾Ûá»ÑÜ_}{ êâÅQ¹GO,Í¢yENsÄÅdk¤K¶3Ì¿Óñ‚rCðñd.¦f:çüUÛèª×ýS_/:>ÕÔb^u¼¿Ÿã¥ Ì›¯á“ÓÑ_ña¾®×ëìðëúÊxqùehñ¿ç-//ËÅ—0|çõµúžÛÓ%8¿?àå¸ ùƒåÝ×y¿ãOÅ‘§õ„×ýIk‚&Ǭ?ñÿÏŸ¼âøW/¾¦ùÿÔ«^}ÏhýÓÒÐWv'z›1|lÞ\¼õ®ïƒ·§“0o>ÏÆ\^ÿ;ð Åõ‡ßï²þ/&ÀÇ r_IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qdesktopwidget.png0000644000076500000240000012253012536324502022473 0ustar philstaff00000000000000‰PNG  IHDR€OËމ¥IDATx^ì“Á€ C'ÿÿË›z꺊‰ —¾™Äµ³`TUfN+Àæ j~äw ƒ£IàÞ æu°Ge@×Òå)Òîöµ&ÃQ`emÁ…vÜÒ…\@&ÄÉêÀÛˆø[}9µjí®oàJ£¸»¤¦~®G>¬›0ƘqlÂcÆùñ©Ác.v®-$Ê- ë̯xkÓF+ð!*|#|K¼$vzPì¥"gc¡Ñ¼E?#Ñú)ôò é÷ iF>¸‚C«è°;+ ƒ,ÎÏAdd$u!9Ò+Ó« j|Ç&½„²FDD¾NOO¿xñbhhÙl¼¾~ý¯`#þ DŸŸŸ îÙ³§°°p×®]ØHÀàõzív»Öc„†“7rZëHê=YÞºk©_³ÞÏå´~:ýìz\ßQ»`ΣcÖw×΢Áj„é‚Âú|ùòåñãÇííí½½½êpLLL$c´1!Ö⛘˜õ7¦¥¥•••]¸pÁårQtF» ÝÒLB0 ÁôÔOè%tÆåæÍ›MMMSSSÛ¶m;~üxiiivv6¶Pð$''ƒ™'ŒLûsF¼QåWÙÔU™úš>ñ‚„| |p>² âW ¾Ó+qryùÊ„ cr˜Æœ™™ùúõ+ZFFF>|866V]] ±VUU]¼xqÇŽdƒ¨—µx@â\waw`}ž?^QQñìÙ³;wvttÀ{‹‹ƒ¦...Ò¸óóó~ƒµÑ  b†(#W1aó())Aä… º¶¶¶¦¦¦±±±¹¹ùôéÓ”¥þa >œR­œ¶¶¶ôôôññq¨éÓ§OOž<‰Oïß¿Ÿýöíô•¶MpÚ60 aÁîÌÍÍA‚ð†rrrží¨ðqúúú° 8pàÁƒT}Çsóyã(9¶07(qÞ¸qcrr²µµ{Ï©S§æÃÆ?óº@ `e¥Š„ÔÔ®¥¥%66öóçÏJVrsBÌ¿ˆ KÔÙÙ™’’RYY‰D5Ô6H)öY :pýC¡ýåË—HI>|õu´lÍ´´´äp8êëë±ñõ÷÷ÃQIÔZ$$4ôÅuäžNgyy9hD^Ê9¢ÍINc¿ãƒ£^‡ÌËË»uëOû*ü6hý!$4ý_bww7 ±8òƒ3‡80¾õ 3úa¯ªúýüù•pŒ²E–¤¥rij±111ÅÅÅ8åLI­œ= öîME)Ì펼{·íèQ*eP’uñƒßôàòà¬3R?III8&¾%! k:PÈÍÍ^Z ;vìß'Œñq¤³ÙV Öè ¶0¤U8•Ôcnn.;¼å 9i¯×çñd‚~õj¹ À—šŠêÄ_øÏU¤qVc=ÒIBÓA”<ð„„Ê+4ì§¾³U2Êké»Z[@_œ¬‚øU‚À»¨+Qð¯¬Íø«»á04PGÈؾÝùæÍ?^/"²ïNçrF†mxx¨§§»°ðb4‹PO÷áaƒT5 U9ºFÕaíE+¼÷åŸø ~p6Ó™Þ@Óááœ\”êŒÚŽ -ØD¨<êhôã“,¨LÁF^Û•¬tÖy``ÀårEEE©vH÷ q†ó?öÎ74«*Žã§§?kÙÒ6ÿÌœFc嬭*df¸YŠ/† z£ ‰¤ˆi‚"½°&If/œ I’„0 šNÌÜ®NgFS3Ë,·éÓ‡û£—¸Ïãݹ6é|‘ËõÜsÏÙsι¿óûð*"ƒ"ÞÕAtõ%~…IÁ--}dçÎâE‘eª»ú2räp2±46v¤@êúµkfÚ4ÓÔd–.}£µõE1’&—Lcñeõ“”êðáÃü.Iþ‹IŽ…š(ôPêƒ_ØôéÓ%/%áÄunR²Jî–lYYÉU»»»é•GñRLô£¸A겫gÏž ^6抩eÜÃ]ÞöÜÜœ°ð{Sù4Ê·ò$˜DXcC–Ž)SÌ¡Cm--ÇËË+ÄuÞmJVÝÉ%,‘•ÙÐаnÝ:2Rñ4??æÌ™ú(QE¸‡Çq ü$%uuuäÏ$?÷2 Ê.98CBáê:¹=•›öc LRð{Ég99ð³)·vL–™Ð ÊÊ;›š®ïÚµ«¢â‰t§½¤ÃÉð8ì`Þ¼yGŽÁ'`ñâÅìÀ'N,**Ò0}j&-‚yŒ¹hooommeÒ·X°`Á:HK°,XEã-K”lÈu:[Öù€º¡Áh!n(-Õ¥$tUh!0Ö#«mÜ‚Už¶·[Vh/zc=²ZÐ.´PñÔ„è6Óé¿àZÝÖÀR:B€ÌèÑéÜ\³oßWk×ÞФtn©l¼[¶lÁ›Ø4¢‚ˆÑ‡ùÇ7 7‘sçÎ…uíÀ èí¹YÁÉ%%%µµµÂä'\™ÍÛ¶mã4 QÆ`EïŠZsîA›r¥ß»"@žÁëP»ÞEØ Yš†¼,%%æØ±ã.t1JVž[c›ª¤â$ù‹¼±¨œ9 *€§RYܲ…¿Î’y$#¦%ÑH½ÞIÈCh„œ¤Bº(ÎÅY±bÅÔ©S‰Ü"Z>(,‹Å!@É#-×à éM’y¤C ÜÓ ±ÂBÓÒÒ'ró˜ô„eË–I*Î;v`Á@#©tG‰‚Šö¶ˆ  '@2bŒ•~jåŒ)}Õ&‰ë–,YRZZ:wîÜššìKäóU}P,+˜}4@+˜6Ú–‡PBð`leÊUÇ ^ÿ^…Á±yôpÄØìÙµRcàV0Í˳qãF| IÅ™““ï#Éðìõ&o­ZµŠ}˜M8#)ôÞíŒä¤I“PâÈΑý§­¤M’"™PA&hþüùõõõœòÄ™—â-A5Çò8‡j³Œyߘ²u;ç€<ıÆ`}W™Ü=úúLq1Þ¸råªÌ¬“oCì°×Á‚Æ»yóf‚¢É™¯ŒO?P3ü™3gPQ0~üøŒ;°wÑ8yò$I/q÷ã 8 öŒ÷!³1À–bŽÜ´ióÅñ–Dq1#Jƒ²â€,+©fxmVÛ o›$á­`t¸|Ñ: qÍð ¹›ÃÒê- ^Í^˜x ÄGò*..ÖtTáWì$Â!"‡f̘_"‚€üaZGÏöB»\?N-´Ù(ìjZ.…ÑÝé}Dïý:Rhå,_$±jcÍr!ãdÔt¦Z†ÖØØ¸gÏÂ'V¯^MËa÷ÔhrKE0‰} l·OáÕêü`B0! ‰¯¯¯ëèèÀs¸§§×¹¦¾×Zʼn&º < ·nÝ:yòd4 šŠÓ~Ë&c™q”xý¢D8ˆ3ÈɨھhßV®\‰3Äöïß¯ÐØ±cE$¯ ŒácÞ„ E&IxÀˆz81iZoœ­ aÝQMä*×ÎÎN®ý¯Úå-´E4bWëWÝÞGônwdõ˜ùE(jc(‚Û¹ãÊÎaXøX÷ô–•Ý3dѪ¸q陦n­Þî(¢hƒ±}Ÿ¡) vy–?6¢»]D<÷VÚBfx®Zß^×±È5£ 6€Õd‚GAAuìO[o´)u€`.™B¢fÆ”•jnÆåzáÂ…âäÆ ï‘„Éë€ø®Äahj¯„¶›•Á¸´Q؃ Ĩ·wؘ1æèÑ!@‹ ?;HE0 Õ„Ìè„ÉâµÏµ/€ÎȦÍhGËêöOV"l¾ù¿‰`væà/¦²€G‚ LH*0`‚Èb9´°Ü§N険ý0(8 ¥Aጿ@¬w1â‰$â.¬ù·úŠ‚&Ývl§ÜUÊ- ŽµÓº‡Ç?ì=KA†õüµI“&’ÆF°°±°±±Ì°±±°1¥–Á*Â] ©ýöÁFQÁ±JVBªCÑÒ¨ò.QÁ@å¦Xö–ÌÜ^`‡áwú#£­h†¹hô©^Ç»B´œa¸{ëÔ H§r¹œ’[¿;Û¤$Òb IЉÀõÃÀ¼£šægˆíkKxÌçó˜r]×H#{÷>x4ʾ¡ø£ ¨­l6«ÿÃQ^(¡OS£1‰ðtS.ÅÙâ ¼¯.µZdU&“!KO}³vl°iqœ|鲂XðbE.Šu)ŠÃuÕ,ÂæI£!¥Å\¿7‘‘öWà¼à^‚ôæ«Õ*¦*•Š<» ¨|¿áö<+÷2(oR©\*¥R‰nHétšKÓÕVƒv:¿¢Ò= ý/ûU…í½z·l'Äipé*P|&0 Œ„!Ôj‹EJKXW`@Íš¢òê ¸¬]',Ê÷}£°¢©h(&j?­ L0M1±tÜœpðµè& L%“Ió#ÞeÃ2%dz úSÈ&ßqÏó¨a· Œ*îVÀ(b±®Sµ|ˆ&Æ e-j}xnL¡„‚¿qš— æP1vE?:ŸìÝYÌVWà:m‘:A+m•j¨´B5QZQ©Š"ƒÐ^ T€€i“¦4©R bR¥UI‘R©E‚JS†ŠB5*tP:@é¤B[i¥Jç:Oò&+'üØpñ}1g_üÙgŸ}ÖÞçû³Þ¬õ®uÖîøF ·nÝJQ©ºNc±0’¶mÛ¦$ÕŽ;|n«e‹KGýð¾}eþtW¬>b­¨hÇš`ׇ8aì!‹ºœ“'OF”(82iÒ$Æ‘7a(9Ò-•x. .L½4N êG‚æðáùcªZ2lØ0ª ƒFÍ pЗ-Á-"M§ú2`ÈZ,”;w®ZµÊrà,$÷òåË9h„(»š={v@¡Üæ†çΛÓÐÊnÒwº€²ê„¨äIåÝù«úºT.ؤ¸œ™FŽOÈ™9s&%Ü)'4e·^Í[ƒº< Ö&¸þßÿ\MÉa9ù)<—=çwتmáV NŸ>}(dïÞ½8€p‰Í×iãÆÈZÐSV¬X±víZ¶ÇÊ­uëÖÍš5KA:ììXVŸŸÔ;Q³J™«)S¦ ¨‰Ò1ÁwøçÈ£5¶ƒ!KPu{ 6>”É<£àZv… +€½  .[¶ÌÁUuP2¤›8q"ÓÆãJL@œ`Dø]»v0`€Šë&[1Ç]qñtÔÄ1Ç`ÞNÉKd,ªÿÄìB“¹”Šæè­±feÍu¾µ­m=r]v# ¦ƒ[N>ÌŠjÑWc­ RðeýúõpG H𯩠Ølá³Í›7S`ˆàAª›d¢´Ì|1Ô sDIÐ:t¨»Û·o§Õ¬$3b7lØPpø±ÉjãyÙ/L?’IÂ8òÑ YåPÐ`2B7^›i<5¥×Ø&J‹º¥¶V3m7ˆƒNÊ ´•EªXoÝÑ}Ô´±^½z$ßùb Ãe;÷Ö+W®ŒyÕ’ÐÝÐZZ/—ϽVç9 °6ø}àÂL`ƒšÕ*‰+QHß¶TÁ­”>Rà6æΨgÁ·0/né;H„LšL{Ù>ü,TrcpîÚYqñ Uä°†bOïÝ»WßIàÆêlø)%a&ÓÌ-¶‰"žà]½f¹Á‰âC4sšqwÌÑAÙ±cÆŒ1Y¹o†a˜<¥uXdˆ}䨬dÔ[wk[Û:ÏUx ìÙ³‡zcUèçEï‹Í-Ul$`¤Z•Nü2Ú[¥Èõû÷ïï’MÑ3“0rrKNTŒ ¶ ±h^þš0aöïßo$²J³ª•Óäñp:Œ/”Vݵô+ó½™`âxb|L«%2Q±¼’ãV"'óÙD\¼ &¬Y³ÆàîÝ»ãýµP—´–êÙº‹*—ùÉÐîá‰vé‹þˆj¹;(ÇBéˆ %ÈUªˆ]NZ %tIÔ! ÍYŽ2냛 ˆÔÔÂGÊYD  á÷¬j~Èt˜é  " ‡ÕäùÿׇÁü´ Ë3 ÉÇßÞ3mî93KNeÐøb¯ì`¡„˜cbj•Ðý­mmë|¾â}ø_ˆÁft;(/Ð:¨.‘¯±cÇú‹Gw š$þÕ„é’ïPõ^î€KV›_LTž¨HnIè·–„>¼ÖùLè$óƒØè–K²é0­ö—Kw­L:á Dôeñ x=rl9¦:al'Ñ"ZŠ®’KÉW† ¨\®Êœ9sÔî4‰s¹+ùˆȆš?>i2¸À--ÁG°I–¶|"’É&k ~å)41xrÜÊÒå@™ï²IEÅRw]TnúôéÌŽDuqà-‚¶:|=5?'¼žó2¹\`Ö!ïľ£ÁÔh´WŠé”G-¨Ï[oŒDz ù埑c‹­lFØbiÂ¥Mµ ¨¨ (Ô;D,}„¡ú™Râi"ô! KÈN¾Bn†ÀÜI•À‹Øl‘)Í0¥'Á,½N]½`ÿ(äëÑØJSv¥šÃ´â7Æš¤‰gž¢—¤3G'xbîiRo“‘ý–…ø†p_°Áá ø‹)0†óš ¿´3šèÊìTY%ú‘ò‚}³wß U~aÀ5Ö‰ ë`‰ D\ÔÁ"’AP,8‰ãr7¹è⤠¶ "è$V° ö‚XAEQAA±öòÿÿà…ƒ ñ†ásÞ!|÷œ¯eyxËó<_›M•õĤŸîZ-r‰Ï‘K°F£íÅp†BŒ°h¢šÌ›Î°Òp_ëëë•NhŸr¥S¶Ð¸èÑ58Yß…IoLAmúéo|®y„ ¯¹3LÆæ°N6HÅkà qœr\WW‡€ænf»jC˜ztÀ_‹ÿß,Åhý4¡É’»ñVŽ-ÿ~9‹Êˆ¦›Á:bšYGè]À†„&ö†Ò‰>oÔþ½-$AKa«—”n›L~“ަ8d\XA=eä‚N”ï*ëŽ=ñ‚1&t#ôzh%݃Zy VþÈ‘{@a*7A+çe´J$œÔËò¶ŽŒZ]] P0Nmá—Ùr<’˜„Ç€2^ÉqD‚<DZÎâ”@‹zCOnæ¬#‘Á2|7gRà|A»h«À±•íÎ<+äÈ%XÔ_%hèL`ÐñÕ;P‰!gº-4ÁÀª­­%Ð+ ‘1a¥…‘“Ùˆ¶.˜T(lóR/²´U —üiT“úIeèúo]ÕÆr×ýÉ}ŠÅ¢:KÆé^£¼F¡—§`¥ °íg@9Ë’勉BǃhÜN}h( D×&&!:;Ð'mY±.ŤC.ñ†vf?¶mѸ ºYԊ†Wý¡Ý“%»$ž(ëñzÀÑ ídæ5ÿÁÏßM…祭²G;o]ç ((äxŠ 555ÚÌô}áÊ”¼¨Â¼)•NFè““Sz™Pä/ZNXBŠ/© Ú½^Oõ®˜ª0oå’8¹Ñ#âg–büÕã„KP+:VFKµPÙ³Ræ^Õ»*M¯Ê‰ÜÑn#Ë/ X2qá‡|¯1$Šæ±¬0™¸;3aUs(iYpJ›•YÄGâkQ’/7—Ýû°Óãü+âëà‹Nfáž‚¾Zg:Ëvÿµ&ôÿìMhIÇkœ‰šŒÆA$Ê.²ᣯ„hÆüQÈÁCÈAô ¢àa— zŒ‡œB$ÝEð9(=ä¢^"DDÄOШ‰“öÇËPâ)`LˆÐÁ“E¶˜uàXs4Nšp’õœE zj±"ÁH·–b“=0 %Îì(Àz BD8`ŸdFGOŽžÙL¸ðŽAÇHx€©ˆåLÖtÉQXâ@D¡?£/GÁ jS=€3zˆ…”IÕ™º‘#9“3³. €ñŒ™± 3‚™¼zLM9I,þ‡Í+ <è„êàCÉ¢ˆŒ8€ éhkkÓcÉ¢©Ø á=‹-$a¹bÓ2±¢OØ“âJÒœKèì>xß8£±ˆ@æ™ö¼lá°ûJ)qF¦`˜Í@èÖdkm®vÜŒ‹Å€?q|ÊÕPéºk–½Õ–ªE¨ÊíA;Ÿ4“U¦jØ w›îd"‰”yðt< >˜@H¢qåÂ8ã™ìð#'°P’ˆ“.Žùyï øà¡9£ÜÙÙI®N€¿É<*YQlgæ=°fH4Ohˆ9ÄÝNº;Au’†³È–Œ‹t‹¥ŠÄkàXùXbÁЩPŸß´¬e{×Õ Ð`ª*øÙ P %‚ß@P0HP.ÈÙpé~A•\ÿ D_+ÏQþrtŸŽ¸‹Š”U¯ýDœH·þ1û†ím<Å,?ö»XŽåEs~ ¦`š!ª‚ÄæÈ¶££ƒpDØm 2òˆr8 R«¢{S[¡·uKÎ,Ъ?š©Rs5!ѼØ.†áÉ^Šá¹Èž[H¥à®{HäB\Ïž»QdFÜðÊN&zƒÞþ ¿/è› FÒô ƒÆŠ±é'vð VVò®J@‡²f @Iè# UK™*Øoè/x"¶¡Ì¼(íe¨ì"vªj;x'µ¹Uɸ᧙ úTU‚ÖÉ¡ÔPå¢Já sD BI“LKãæH¨”ŠÍ2(‡zSç·f¡B#yrhƒ ‘*Á ©RBmŸt¨eût (èC»R [5S҉ݸ4PÊ[Zò_º»{޽…y„®×,«á5òXpÿ%l]¥ö£ Üÿ™*ÝñìA;7r£T¤ºnvñjcÍì¡=LýË:ÊèÚ_"¢¶ø£G 6žâØŠb@ua}LÊ1ŠüjƒN”ðˆĺvÊ 18Îx %–c©r{ð|qmìLñ7Uô-ä^.·žñG÷„e6ŒÐ¶ÌÉDzqÚÌÑ):Óiÿ£5–X„³¬Í‹Í˜¤ Îx¹Š–XR?Ù»w€A ˆ¢f’üÿ›ìbaa%¹§´ÚJ-–™îû]ÕrÍT? [+ñ¯ hÈ¢²¨ êÍ/Qd‘ÛújIn|HPÍ,Éóv_žCOÑ š™b6PL8 ¡ôéoÐ 7{÷޲0DØç¶.ÂéÝD:’Æ&Ý­Sgâv,,}©#Z¢àó?p`R‚’Ì).y§»$d2ß' ѻķâ¨÷²@+_’ë#(®R±XŒfÑœl!Šz"^ZÏ1…E&F®hrŠ÷ÊsÁ,Ö”^°$øîèr€~pÍ1B 4ÂIÞ@Çi𠧝À¿Ù5®è†ŠÄ•[×Ê‹Åhf6¯ô<„9ܨ&±†!*’i°' ‚ IN@ æ*X˜$¾ï‹£¢‰äŒˆ¦·kù€O^0U °W壉Á„ƒ 9k°á.–¡  z=Š"ØÎ9rn20o ˆÎ_ΞÝÉv?3òý?g=j‡Ø Ô8!ΑæÎaš¦ìˆÊ²„‰ Ž>…¬—€¤¨7ÉŠÔ¡ÀÄ1Í‘ wC—‚Š@-.Ã^#Pâ8øEÑy Ãd2Rô¤¬À%a©dʲ v#˜„áy‚ùF&7{.zˆ\lĤVU•Ðsõˆ¦ +YÇ4ÇdG¥˜˜˜0.©u]·( Çq|ßç  Wé¼ø÷ÏF¼2™Ì€TÚá#bÐçä->’9¡ý!ï8$N<σ,ƒŽVׂ€6 _)J·Êóœ‘ UI’ÀÊå÷u]‡aˆ…áD\{“ë-œ 8 ¡Xö&i¿ Ao2™¾Ù;W–¢(Žû|€ˆZd‚eªlGì û!Ä,v§9L~‹é“lAD bÑ"ÂÀˆAñÅ®âë8˜æ‚aYÖsÂpfï½{7ý9öü:Ùð“”$I¢ ŠŒ “›ÉžÈÅʲ¤S¦¹¼¤ZÆüg:Þ'Ë2êÖäqòA;A’#óâÛÀ¶!=Q±„xqÀÀr|Â¥Þµõ6|›cy‘PJÒ=1((q¹àWUEàC5G"¥#ÆðL%âÂÄÜ<Ï¡šFQ`V E‡Í6MSŽØ6ü÷éíy@ÝŸlº¹ uÃ$à¿HL&È APQ¤T„6Úiº£WqTÄðF}(ë!7Í~-A,!nORÇ Èý¯ò³›› $Æfâ¢p×È’X‚¨m2ÊÒT‚ àƒß‡ÃO«2œµáµMQ ¥K1|žöàm¼jOÜèRŠMl°+-sQ«5WÔ¬þ픤–ºN— ®›[`$ë{çR]Äñ._7*»g‘¥t¡‡‘ÌŠ}´‚Þ‚RñA„zL»A•šö „è! º!ödÔƒPhÝoôuý¾.?Οþ,öÄÞG>ý:ꞇÃ>³gÍÚkŸµæÌÌšYSU/ ^9ÒRÇŒ+3ª½½ EHtj›@†§2Ì+«0VšššT%•'4†ÕÇè…G¬6ÈСØtçbqqQ­â@üTl–íáÓüðÇãïG4—G²nÕ¶ )`R0´âîŠ{Ä呬Õf¢*º§§§ƒÝ«¥¥%ðT8Á+ŒF£L1m·³lØcåPmr}}< OöL(½Dñ6|Ìýýýìs-,,°ùD òh||¥‰N(YœEMÃ4Íæf(`}òH2Ùö0d„rcc£F·ïŽì+¡4Á\ŸçPð›144¤à£U¥³³“¤°×*@ÌF±ˆ8¤)ÞdòQ_ í• À Êùùyø„P›šš¢H.øŽŽŽ•••ôI°Úàƒ´Ìže•’kFó´T¼>±Ná¯)ˆÞ™[‘ƒ˜g†x7âcñ®CP÷£*¡@RjP1FFF¤Åh‘P`€Rp¬y9˜ÙJGÐ n¨%B©933ÃNüêê*žiô”ÑÑQ29Ô¼»»üää$ù«lº㇦#øƒ$Õ %ˆ FÊH²ÙϪs©ðÁôºe£  ÙÇ×X®Ã˜Xo#|û"ꀑƒ)4Ä»ºÈ»«±ïSéSB)€0TÖ:…ô`ÁÁAë÷T@4h4x©uMòªäo¾¾æ&;…ˆj–#vßAbŽA\__ï%Ê6¿øX¾ø ½&€J(¡ DôªÀ#ƒŒ8ô/($ÚbH•!…áÚ$Zñi#ΔÀÆ ˆÔª¨•8 E³„,bùXGdˆMªä“OÏ º¢v*y=ÇgÛÆT ºÐþ=âM'¦‰‹|iý_¬B²Ø8±Ÿº+&Š­rV°aÁÇ}®È³Ê° ë =ƒ ½Èk'H&9/j``@/JË©ö5 OÎ-i@…Äžö\GJÏ:ÞþY½®œ\"O9?ðÎÆ)2°¥¥…Ý(6§XˆÉÝ¢„k‰|= @–zìô±%7==Í»b Y žÑQ ¤+•ÃÒÈéííÕ_“Æ‚ ŒˆhÈ/A<1®Ló ókÎÇÝÖÕÕ‘µKJkCC]“×È_ÑÆÆ:;LèNµ¦Œ‹,e |· ôÇÚªÒ$·CÇÄŠtã‚ “$%ƒ¿½øÇ–¶Ru@R3·Ýž8Ž_Çzq¤ŽsµÀ§&D|€HÃ-CPM[ß²åh2ßÊɆ/dþŸ³YoI’.#Çuؾ§‚_¯Êi²fr$»Ðòò2d­­­È)ÚJ1!ä°á®Sæ4‘¦“V¦†’&œ7°¶¶Ft"R|æü¾jxðàÏŸP!¹hItBÇÉ`‚ˆŒ?w“UnF¤˜05.€@Je#ˆŸ \NÈêëëó¤µÊé¾¢ì`ÊÍÍÍqÔ á,Äå¢AÛ­Cd q¼Ä¬(ÕâÉl3¿¬ïÆ*é7ù4PíÛÚÚÈÁdZÂ'Ó$çô‹B9p ¾J™ˆ…Aꃂ‰KˆºÏ?ìÝ °WUõðAFåƒÂÔ,“\ÌÈ ©”(y˜•8 )•S£ãŒM´²ô’6MO´Ò©¬4ÍLíišIR•`YêåJfiXYYiYÚŸ¿Š}†¯³æçïp/?.·™{±3w~³ÏÙûìsî^k¯õ]k¯µ©[½!”"ƒ‹0‘@¡LÚH:‰°P•Xp“‰TÂ:%âÛüAqà ³$Mª[§è¢¥Èoüá´œëN¥ÂÁ­‚”Ã(Z¦Êv”]tQRçl Yó¤³ÿtä6Ûl»ýö×pŠIþ‹(”×áÖjÆÐ@mÖb‚?Ðí`Ìã´6ÕK›4n³šŠ1b¶;U.°ƒ ¯¿þúsÏ=×ÞçÇwœë%Èr{Ê…ÜýF ÕSJN©Å$Ò¼Ï?ÿ| O ÎÇsŒ8¾b­ÁÁ°Mr«Ê×]w]!ÿ® ácÀ.Õ" ¶èG{<ÚÝ1x! š<’3Ï<ó¬³ÎbØsÖ]ÁJ”žÆb”ìy饗¶2ÌD‚0åܸdÉU® Ëd±2üʤS«sEQ¥^rÉ%:”"§V• ØÀUE;OÁî:w±ÜFÉZÿÎêÕ7ÝsÏ6†ÃÃnÀ°ýOc9‚)Œ?º+¤Œ‘J»dÇ>WB»º®MC(x©ÈÞ(*Uî¬ÐËotLÈ—'¦\"Æ-zŽyÕZ•ß}ºm¶=ôP ô Ú‡:mG…ÈlêÌÚº¹ ƒGE!/[¶Ì¾¨Ê›ê‡.­kÄ wâj:÷uÒUŒ‘rÜTÏ›*³bl¯Zµ K‰ÉöÉ ÒÄp埕O kLš4Éî" ur-/„´J* rj §ðÈTÐ ¾Y¾|9Ô)=MB 3þ|ðJ»¯ÙTK1ßÈþc·F¾³æ–9sæäŸRå‰ÄŸ´;Ûõ{œw#†êm–Rî<âAãµkÿc[޳£$ŸuÝ×( Î@ ¥‰±×^{yù-i;„{½ÈO.t¤ªÅcAC–"J$mtÁ¸‘YmßtRõ-Jdê2Û:âž7omDdhI¾ðôÍš5Ë0ÊëÆBZzT˜’}ì)˜dT&¿thÖÇ£¤1w„J–¾÷Äx^2œÓWÜm£L¦*$¨tŽ>’’Yãñq­o¬.0ˆ C-l…i=€8í£ÊÈ $´©Ú˜ê¤ åk#†ËJ"öbÌ¢4þÐ8±BN‰°¥ŸNá&Ê h¢jt«R2äPÀCø/›±Y½ ¯ÐQ8Ìtŵú‘ìFlIa1ua+µÞªUÖ褔U‡kö:ìí½ñÖ[ÕÕE4¬‹ÊŸJ¼bl'Àoš}‚¶ уÖ>ƒ(&6Ñ€ˆ4“™…vhM ÎÔ©S B êaì{ì±f‰`º…Œ ¤ˆªìh¶‘zÍ07h&¬–:·íkìs ÈG/êvï½÷&tÈ&}šÔxÇj‰gx‹H¾pÜëY˜6ÖŸ»ˆNnÓ„„ÂdqC̽Í]Ã|NAtÁÁY+ 9wî\©›°"m\ÒG›WÁÌCFúܼîF=‚uZÏjú;ñó5{hº$­”h³Ýøl,^Db[ÑBp"o¢iS"CnZv8B?œAóØKä ±5Ø"F¸f`W²[\^âwß}÷¤³ðêÄðÆžÒC¼ƒ Ú`¦Ð±HV…úíg07ßqÆ'î¿íþûûוôARƒ§q-ÍÊ*˜Éã²3û!Gçø·CÊ6ïí|Y¶ÿ§”‹Ýq‚IA^˜Æ„YƒXÐPFš1c®°W#šãfFk’‹‘E@lsIð„ë°6<å‰Ü‰E°²‘L< ŠšTž6mšS»Öx"HÛp=Σ>Ý~ÐAQ~¸—…eü³BªÃ‰”}R銴"e4hãœð0½þãåËG2ÚG®€¬®‚u{9«ƒÝÝÝ'œpØõ™Ü¡FÒƒ‰áƒ9N=ÔPÀ7ðÀ¶‰£®`T=Q• ]³àšµ3 • [¤"‰8 rT=º’b`Ž¥wVXQ«LåH%\›Cöµ;—ÁÏnHŒ¼âŠË/»ìò®®»ífßîÇd¨òX†õm·)ù¬ÀãªÄN$¦Mž{aÍ!Í“,’41úÙº“$Btå °à: ¡ñ•I®6¥CÍv1&_€»ÖTü„*®ÄëeU4¤Çù%³4 \ð¡G§ãFR óK{é­bÍŠ"„)IŸ9eìCÙ1ÙªYñgÖ^n¾å![aioR*ÐÑÂZýEBç7‹‚–ÜäUI.'A©÷ŠédÛ41Ä)A”£5¢óHèÜ‚ØT¹Ì¶‚§¨,x–WÍÛ(¼‚Z´ ©< ´Q¥ß° 4.”ù=+©v™={6§« !ÍØÓÑu$pKM8†‹œ:Ç ª’ çA 48™ê£Ž\oÆ­v¡öVÞÍf)xÉ®‚1jý‹XPð y;)/aÖÍŒ„öÜÌ¢£Ž:JN«„¾…©/rôs}¨íˆØ¬-/d©Š ×0ÏGù21Á®¡±H A¤T”•„ÜE: 2Þ#žS®4})¡f›–-‡q_vn¹Æ¡x†fð&àR<ÐÅH­Žc®rºÃz«ékÊ8—Œ^sg#Ùðõ~¬Dó®f‚޶Ð~ŽŸ#‡öÑÀ‡‹ïüðöÊ>ÈAA±ç]L·‚§ÐÛW™Ö,g9±¦“Z†bg„ÇÈr¯É†l! {J$ALB•¦Cžl¢ŠHÂÊÈ Fy¨'NÔ‰ý2[p*ÓZKΠЫ™·]¬ßé4çI'½£§§wêÔ»î U!è#¼?~©Rz½Ô¦ßÍ9ÊüçzH.q›jÖGÍz©ÉE¾ uÖÐË‘½N<ñD#`Òá †–œA"¨.º q)¢‡V=ÏšÃZÆi“<ˆlŠÿ˜‡žòáOš),§à:wë0ß¿rcɬDaoªÑÓ™i¨àeZi]ê*ACÖé;fÌöcÇŠ²M5(ÄÕÊôÂýöKË&ÚP:Mà,±g8hÁ‚–ñâ»Í[ö…€†×þ{Êä‚¡’œwÞyìp•Úò0"ƒ&­?â_DÄÆg|@:„TIgJᲡ²JC6ƒ¸ÐŠZªÂsYPË5ˆ]Ò2+\´®r%ÏŠ%_Q¶Ä¾LU_+>p{Rð[r1ùÐ8Òüùo=ûìÏ’>G ‡{mx‡1è÷a¤L«­YCÀAa/)–@.E˜¥Ø"ÛÚsÖû1ÜÃŒgpâ²Â b²€Õ ;D™Yw†8°¢#1 úAÍ0‹Veƒ D#ËíԌѠí”)9óQÿºå<¢~ f¤Ô­§P –Û÷úÁHQ6f ݼ¹†µÊÏ„·=¥ˆ»¬5OMW(Ö±¶5j×}ö‰÷§ÚÛlô_wÝ¥ü‚}÷ºÜ]˽MßpX3hÍN+Vå©_YvDuѽÍ~£ e'tózç[²¦Y[ûxûªªU@çhêÖÔÙ ˆ·:-ë¸j7èa{SV|“®u‰tƒ JEš2¸â’@åk¯]qÊ)ï]¹rÅ„ #9Äúµ6²&AÏpB»eáBÑq{öö®"øšY×ý±I‘æ°'vÎΖT·‰J÷š~²¢ú¢øPNF õc “òÄŠ0æI‰+Ù;ÔÌ7Ï+Óuå(3Š-ª%iù΂‚SSåöw;7­Xñ¹kW^¹hý×eGΜÉHú<Œzêü²¿t)ûëÁîî÷$–²ì>8H·ò˜Ì@À/+•—!ZÚ1Œ\5•*¥+¢•"A ó3¡r1å¤(×äú®qH›³)—%‘ÍI4Sn ¸É~ꩪ!-äMŽ%22á}§f…‹ë'Ò'KïÅ`ÜwßÿÝ}÷«?œôé‹O¶îdàÑáá™3gr^08&<ïàƒ§Ïš5£«kâèÑ£ðqrhkÓǽ ~[Ë9Ô¦Móbµ¯õ[-Ûîm«jöÐÒyûÑ|‡fç͞먧T¡­jƒ=T˶aé§¶®7%‹Ÿùóßnðe 6Ö›#6ߣÂÄ«Vݸxñw¯¹æ§K—.ÑL àôé#vÞùA|î(›«¤éJ) ê^ºtsòÈ#ç º®·¬ºÊ$·ùÑÈ Ù Ô^R4q—¤ÜTÏõ¸šó5ãZ[ºÞ|b®w²%kÊ5‘“›Ê|Ä*'¾¯­ÑÚÀ>ùèÐÊ•+tw[uµIÂø)S·ãŽ‘>á˜ÜHܹzµÂœ¹s]é3¨Cá7. b¿ÊèÜ|ó ½½7,\¸püø‰;í´£] õÀ_Žü{WÛTùÅK«ót¯ÌmHª±ŽÑù‚l:ƒN7(# †8ñÃüâÌ0ûÐÀÈŸI"D^ÜüB „EC‹A‹ƒ2 l²!Ë–µk&+œ5_ðß;»'9©=ÜÛlMg‰÷—›åÙóœû<·íÉyÎsÞ®iº`^Wì^¨Óž‰JìvŸÁêñôRgA©°Ðl³ãl“än—º ×áÃf¬µ{÷.ì«8Ä£t/s*œAP½Qé >>7`ÿƒmR '0á¤Q Ò³' ž²^®ÅýðùΜ={Úín>xÊvêüù9‹Í€¦ƒÍ@-X3E©êÏÏ03!¹¢)¾–‡…ªÌÀê¾aÃú††ޤ¥KC½½¡K—úFFÀš!§N}cJlHM«@—ÁëM X22󥬸Rú°I·¶ZüþPMÍ{+WV@úÄo³aîÇ*p"MþcÄaÒkæÍË++/gïH3èvjü/wÊ~y¯’“0$÷S§þr’FRŠ…LõFnCUI¢jy·o317äÃå?FoÞl9rä–zŽ›•™ù°Ýþ ÕŠBA:"i¥(¸ôCÝÝH*Û¼y3$¿0^.˜~ê9çab®M›àMlllÊȸwÕªôvÚÁÁpÍòæI÷q›ÁMÙÉôLÀÄŒˆ{#†ä <¹„|9¹œ™Á«pƒ!n ’ÈN†•ý 9§„üÆÀ³gC P¿¢æ J9+S”çõ™‰µhŽ¿Y“‹?½sç.Ò}ÏL1Œi¤ "k+ì&0 !"fVJÊÌÌÌÁ@ ±©É4½00 nY»}fJÊ}ÉÉ`gVW Üúúnˆ`„ß,åwô–Š@Äh\´mÛöîîž¶¶N8øÊÊB0L"Xre«YHQ°I°d¡¨BžWäO ág…/ÆÔÖfq¹&¤Okkñ“,'cQz­BÊrB×çÛX_î/(+C„Rˆ„ h$èÿ´²_Þ+‡ä$ Iî—sjÑè°‚Ö¯«£äu-–ÏîO8Æ@5P`€Šop 3h~éï¾|‡/„³‡¿™†Ù`Òô‹áü‚ººöíû •³ªªL]ŒÄSˆ$z¸IL¢^ ˆž±1óþýfd>={ôè×VUñ¯+' (|”j]¯w:}^ïD¹µ`0O’“aûd²èG0ã&æ‰~cbõ”Α>µyÇ.¨'×.^öx·ÛQ¨ˆŠ=«hÉ ÌQ“Ò€XA+†!àÖ­±cÇÎ¸Ý @l8"JÆÉ]¢(ZZo³²S6ô‰µæ×jhQŠõt–›ÂZ£±ÞÅÐÿV¹AK(Xˆ`ñAPQW—åÀåúu¥¶öýææÏ©†Ix4Z¼5 f\Rv>‘CÐÞ>28ˆâ£X­À&Œ+ü3üÁø_î”ýò^9$'áK’q?uê/'i$eäBbÅè7ZÌ ¹÷«‘Í‘¶vò÷£¶,NÊÁ ¿³óÆÐPQqñ‰övÄI’íY°D µÙ¥‡¶oßJ°8qYû(–d·[æÎW•µÕ€ ˆÿÊUÀc°*Â×îñŒ»\pŠ….t8uUUou8-™ÏóqÕ€¤g D'>‘Ÿ¿®¶ÖßÕun~>¬¡HÿW¡ë3¼`ò£{Á´ˆ‰`iF°Ï5¯w4@T>’i¡Ó ´õŽ!1Ø€DYbÙ²ååå¯:ôÅÖ­;\®ï]®Ìœ(lo³™I,Á!€…Š‚#ÉKA6>êPééYNgu}ýF¼dˆ¢QDÙøj@RXP8ß;k×"Bú“={>Ý»…i1šœ’••„Toª>࣠Ñá῟ü•••=¨Ð@'2 -“vÃë3Y¹×¬ysõê7Îû®¥Å¿êèðvtðù\1Ý50„`¿êêå%%Å%%/Ì™cE¹QÿõÔ?Z2¢s²³a㬩©A$ÜÃç{z¯^5M; ø´ 7 ë †ËV¿ ‹Ü\ƒ)Íg"ÖÑb¬¶`ÌKöx8* b@ØÚa^ÂT)F)í"§Ðc(.|œpŠ—€» Œƒ &N'N­ ZV6RÊqü`V®º¿ªˆ„ý€ƒ+çÀ Ó ò×ÝÝ äAõZUÎjµÝÖ£©B&DPYVótFœÞ¢,öÐ0½ŠfJcHAs¢ŽVú¾ŽhAð¡È‹J5‚>K ðK8'¯ÁqK}é“3–-cà7É ®3“EòÂ@P¤QèàVúûû;::Ðò"j¥q‘q`ç‚/¼,,,X­(H"DcÇd'Ì\™˜o Âò#¤Á]†€YCCCXŒÈV€Y7T.#‘ü$D«L–âïbÁ d9>ËŽLJ:k0ľïD—,2@ˆÈ6©‡uQT2’WÑ fEµkI:+½ðI;œ¦ ƒ°Z*5`h«üNÆÛüNñíŠë¡(†Òvú‘­nߢk4†îàä9«Si²±˜€qbîJbEÑ q£,pzsssEAÅ …cazgg'j°FÀ<ðæTˆ¿1E¶¹··—a¤®B¶rõ¬†Í0;;«b¥$D+‰”.ëwuu‘+àóYã³,MAÎ v_ÓUè,Ÿ.í^™þC¡”ÏÌò°.jAÜFÑ &E­W„®Xä+b~~žP$LE˜”`›Ô+8&§ÜSOMÈI†…‰3&^Ƨ2ê 6·)þwN˜øµâYTs$_î„H©¿(!y°é‰ê݆×ÄRí‚ðOÇ‹Agq fAyH êW©e›PûÀÀ€;ô# b¡ŒY•$ˆŠÅ¥À$BUçUUÜ{zz´Ó5‰OÞîêTæ¨þÅr¬R!J¤ïæ}oŒ!`©¹Ò+] ^;[Gý3|-@vÆõr®Óº6êu@"óS ;ñ¢\,Õèè¨40æŽH¹m]¬«.¢ƒõB‹é8+ ‹L­òFÑ0ÕìØìöî,´¯" x[÷}J£ÐbZ\¢ Ú‚‰RHi¤n /JI]À´$¢ÁLÚJ¥R}QZ·´ A!(*.Ò&­T¤*uÁiÝ÷~0½%}éCáÎÃe˜;w–ÀùøÎwNþgoôkˆª¸D{FRˆÊJf³çbçÿù«`qgp}‹ªs¢€ *:ØPHµ; ËÓ8¼Ð‡\bp£ÉUOR…?%URçŠ0ÌSôÂH¶nnnö„ÊÚ/£aa+©í‰"©Fm©îînè˜,˜-èëå‰"%j ’œÂž<Õù1îmWW—ÏIB¶° ç/©ŽŽâ\1Ç« `ϵ½ŒÕ­„¨©Î:J0?V M¦ªúŽ"Ë&D`(/Œ–$´GKnhh ÚŸÄ¤øD­ÃÚàQ__Ÿ½ &<ãPâÕÈÈñ¨A1»¨¿Ï“È qhC¶ˆG†”€dBuvvRŽ(_ùñé]¨]·Z„®¹O´Qmš‚555E6žaz0h`Tâ\̾8A%Ÿ0ýh.½½½àƒáé{["OÚ0ÞAsaŠ–jii!›êéé!ëŠ[ „ãݶ¶6èàÛ<ŠøMëñm¹Q ÄxÅÁQpÙ av™†ïƒÁ>äÎy€ÒDtÇ­ÈU‰Œ o™q*xX^kk+@ϼ#!93lâU9•ÁâØ–}­Iý1ˆd¡cV&lK8ð s~(¹O¬[ @u&´H ÜÁ}ô{c< ^xÛ82b\ ÿE4šmË9æ"#ö¢Á€V‚ߌ`äùÜÛ"B«¬â¿®ÌFpI<)Ó¸?æH´Á­ðvkNGG‡ü£êoåEô5¿ZVWl ® ÛÙ Bpð@@Ñ'ýž‘;.˜D9J>t)Y…Î&f5š2üaO6•Ëãg¡…®xpî"È…õHr;Ÿ› •€rÂðFüMDÙá뀪#:·àZ¤|N`*òüžjuû‡½+ŠòHâ.Âr ¨(DG<<@£àALHÐx‘¸*š]Í1˜Äbv»ûÌ]@\5b$Ñx„VÀ[Dñ†[Û‘ášaHØ_­ýÆ™e"¾ìÊÔûÞ÷zª»«»}Vñ«ê®þž–7"B(g¨àe¼áb ióY®Î:;5AA'%GT&,ƒî”QÕʘˆjÃZÁ^Àr!J¿‰àÚ %ºã'ÛÚG„(‰|4v!2´‡X—äŸ5Fè,GØé§*âyçӠƨ"Q$Ÿ–c„$ UX |K›b´„(6Ý€×7‡9ÈþqhDØ&¶ŠÿëˆÆÿ{HDç͈1A:eVÕS&¡'™úLúÐïËø=I`}ú͉ýOɆÿõ$AŸ 2\«ÝY%*ë[R&Á@3’FZ§C´« œ…3€ ã³9°Ÿ:t–iÀÈ¢U±é1¢*0auø:ó×YÅkéÿ„@4ƒ#†˜vÙtFìIBÿ!uÉðNÚd NKÃÿ§£ ë«­>dX¹ Ø“y:R1´>‡IwâA¡¯å+³Ûˆˆ¢2ã³0¥>Èe|*°³¾å¢6èÎlN{D-"Å&©]ÐGvìJsÕ"hCÃQEÁÁ§%Ÿ‰Ò_ ˆÖÂ8èN–Ä>LY&àf&ÂL2µaËaü'P#‚v²mYƒút ÆïÒ"ðHúb|Ã2õI þ‹_‘iDyá1~CS50œ~—ž`¦>ÐЯÕçèw$K„HÖ…ÛdžtVaƒÐo(]ÏëÒüä÷Ó¯Òof€¯#\¯Šå4vqR¤¦n9y2´°01͇‡_~d$‚!ö†Í#b>K#€ƒ€7Ö…}zâ<­ÙÈôÖ¢^|§Ÿø: è¾Á*Q06x`S¾¸téã³gyœ{‘ŒJ­!ózHÿL-~7“s‹~¡*µ¬Éì‰2yUè6 ú2 ÎñM’’‚¾ûnUrò—ii_ÇÆ¾ZRr ºÁûûl”‰¹6í=K 2w<,â<­ Á›Ómµgæ€J¨F™øXs'ûVë¥ÕŒ)ñ© yÔÝÑŒUQA÷¾`î«Ìù÷ï””ôuFÍü^ä‚‘•¶sç¥Ã]¦x¡†«Å.ø BÁŒ¤£ˆ2øTEãCF‡ ,ˆ¤éð¹Û£xŽM îÑ Â¯¢¶öVFÆn‘h€¿ÿFw÷™è”œ¼¡½]Éõêú]ÈHL-M9b?Ÿ™¥ÑEex?½ë‚RÐz r¤JP<Ò²>àBƒ H(à!ÛÄÃm\3<$Uèø®ª |Â/àò%>5†êÂ%É4+²t§JJæ8à»?ÔÛÞÒ’Møq?ËìOkkݱc+""FÇÄLÊÌŒ€žÃäa`œ KHX»sç„èèI_øª©¹óëRé!@’;&55UpÇp·DG{ åÉ“›`:)ŠÖ/~=üÄÄ Ž›•yüø¦úúܤ¤ aaGŽüU4L ݹMÙ4|ïÛÝ}‰¿ÿŽÅ‹ðù¸Ò¸D¥zÀL^_ #‰¬ÌÀ?/_vŠ±æ§Ÿ år(bZ° ™÷îùÅÆNŽŽ~aïÞ3ee°Êöö­g΄¦¥>x0gß¾\¾ŒÆÅ ‡MÚ¹sÚ®]¥R4ëäŒW]k+îX‚ŠzÅÄüëêUða2**ÞO”É~ÎÏ÷رÂÁACXT8|çNÒ¥Ku ¬N;·/A~܃ˆ¤ðÐê¸8?™LjgÇW«57êë¥ ÆÂú<è/•f %’KKo`€éÓ7WW_KI =ZÜÖÖPYÙ lrêT þ‚¢YIÉ­––ò%KŽÁ§¦¾Ÿš†1q°§ƒƒ :ÖÞγ´œ8t(:3ÄâsÁÁ{, =f8sGBꊨP—@°÷úu¨ââÇñq8$¤À|4k4àÿ˜—þÂC‡Ê‘ÈCñxpÎ66´f›¡8¦¶ö‘5¡­¨ÇWÉGvÁ€e ùcƬ[—$O€Ë#—צ§ï‹ˆ ,ÍãYp«A8L¹ldÆÀB¡M.nÓ ÷`ÖTU]Ń¥Q£ÜTV©ä0LJ¥œøDÉxîóvìˆAü)ص‡Ö”à•é6Ï0ärävÁœ¡}»ú ÉH¤ " '(hé”)ÈIV)•™EE‹cböä䨅0p,Åxô4ù0 ðàðÐ|^}}Nuõ劊a––ãï55Á¸@‡«ÀÇV €w¯¹¹›OqeÄ¿Éí2¸·ÕïɾŠAs­¬ÌBs`à±àà›¯½!‹Û+*Òù|KH®¯¿Ãmóñw‡a23¢#;da1T£«µòƒjñ¼ûnéúõW^y%X ÷|J$¯„†vóß{ïnPPœ6Coò§tfBDfnðàÑè^Ww Í::Újj®™›4dÀí™'#‰"¾% eõõ¡³gKCBŽ®\¹pâDÜØ‚Zܹ¿õe šÈåîáá¯9B„ŒÉ åÑh–-«Ù¼¹.44ïí·³ƒƒWxx˜#â«Vï?Ÿøù!!W6l@pºE£ÑÖÏßN°x²¯b©•™þÙg^))›†õ˜6 Ÿ ‹Ç³>|0Ñq÷ïË®\‰ÊÉIP*K‹¸Ðu<4'„ ènv÷î’ øä—ë×÷I$óÀÏÍ=ޏOkkmBªíÛÅ.üÌ3a"ÌJû'‹gatìô76ޕɕʑh[_ûnœ‘Œ'EP¼##½wïF”g‰›Û‰Ys¨5çñ<‡ C<5"+ mÞOK»]TÀÂçŽtÑé*ø89!Wñi l¨»EF:õU}k«ßÈ‘°=&ìFMç®]â/¾À†= ÝàK°úÙ¡ƒõúRzè>wñÝÛ66ý¤Ò{÷N‰Ž—›{Y"‘ 0äêúª­­°ºº,&fLbâFX¥™3?âñÌÛÛ›‘ÖŸˆKMÄM}S<<æ×Õ5ÆÆÎÞ±cxff‚‰‰|Ô¨yVVS§¾ÙРúþûááâôôµJÜ¥-À9Y Ü2ÑŒ[%P`Ž!ÞãÇÚÛ­¨(ŠŒ”ÄǯV©:ǃϷ “Ð]}€Œd$.÷E—1‰Z¡˜²gOlìF\)){y¡6ØÓjóݵk££¢’q‘®­íÖY³à@!¸ƒ 4iÞŸÞÚÎ.=/oDd¤Ï7ßäÊdcD¢@7·aNN7 %QQ“vï¾–›k7h›\¥BweGÁì—á§Zï6v(µØéïµ F±xÆÊ•? æ^^~µ¶6oܸo¾yþ×€ƒ–-‹wpÕÕ%´¶¶Ÿ7o‹·÷‡aeåäææûÜsÓæX›-Zëé9·!òÝÝ_\³ævÇ`íæÎÝéí½ÔÌ̾¤««÷Úµ©Yhòus›ma1„ÛíâK$þ®®¾¦¦B6/ÌJ(-_žàäÈcÆç[¿ôÒ?¿¯±RÔþ‡½+hm"ˆÂÆD×’Ý$IŒh T"lDðcs‘BõPjÒ<û/ü+yîd jaßGXf¾÷&ÞãÍdÞ„P…|@¡@˜€%Õ1nŽì÷?Ÿž¾øêàài·kæóa¿ÜÝ­®­áÏš^»ýz8ŒÆìlnº]¬°˜«q¯V;î·Z¸Ÿûf¼ØÞ~³·¾†Ç£ÑÃk°ëRéù`ðöð–‹“D[½ö¹šÍ­8{·?*A€J—O:¾ÊFº ÀšR&I&Iò$»`lÕNœ3xvöEªÀ,+Y‡N—?9žâÞÊd|þgG„Ùét"ƒóSLølÞaéÁ$³gIK¥J2¦óŠdü¦ÞW^‘Ùì aîóR$“„ra I2µ±†q¬o‚£4(¨b ùE $¿Íf0EœŽåä1‡¯Ù¥«$»š°Yæ Ÿ(ªGÑmº –ŸcÍU«5pÅÄÜEðø M†]ÈâCßAGÉéAV*¿xª¥]пh3µÕÍâÁH侻uÈæóÞn…&ë1гhÀ¢( t%ÉËØ@¦Y­"Pbv=DÜ…˜ X„)Þ*—gxÉå ³É ðPbÈ[RÚHv—ãÿínxZ{QjTqWX|“¸›¿¶ñ}2v%už›8' s¡I4åH!yé‚à“™„ÔIÏ%þ.WP(h·t´´ÅÄŠ–ç+´é¶8^LŒ˜øN#Ø ÿGÊjÀ“.8oÉrJ¾tw¢…ع¨_ãºaR䂼ˆð˃wIïSæ´È’Ío†B/h¢ #×+­Pˆ ¸Ç ­Ý \ýËL5ÍH÷2^ͬP(ÿíŸB¡P\X¤P() € …â'{g¬ Ñ*æÿ¿X,¼áN:µˆpoÁ\¯%ƒK Ù·!„£Íàzœ(Wq< ôèQÊZ)¹æÍð3¸¹;»HéÕ¥´ePõ& <o±@#=YMǬÿNuRU퇄þÊ^ÆE‘/"„›½k‰2‹âŸ“ÛDÆ(”Ahi.Úd8aAoœ" 4Û°?’ŠÔ­X ª¥¢HŠõŸT‘IQ´ ô ˆ”¥©Q„ˆô’eƒð 3vƶ²Ç®ío=p‰¹;ßi¦ùv­9?Dîܹ÷»w¾{8÷Üóºa2 µíSêÂþë€l¨Ám“¸NÜ{ûömºXj`J@"áã”)Sß…‘#GÒæA‹¨.P¶” ±ÿzbRÐ+U™"5èö¨ÎÎÎÖÖÖ'N\¿~ýÉ“'ÆçAzzú„ /^œ““3|øpbCê®Ô2Ð zK*2éb²í±õ 3õÌœõ±˜ŸÆÇN0ïÈNXoÃ5æ»3£„-)ÖsãÆ-[¶\»vêqõ­ËåÂ¥š ]§Ó™ššúæÍ””$–Ïn·cÛ¸ÿ>i‚NöõwÃOœ8‘NÖt©±ñ¿C G0"eâ>÷îÝÛ¹sç‘#GP?gΜ‚‚lžiii”Rž¶P`À*¡å–‘‘‘ŸŸOõëÖ­?:}úô/ýXºté¦M›Æ‡»ŒÕ]µ†õâ¹Ï±cÇ@ ¨\°`AEEÅäÉ“ñí?yçŸ=S”J–Ë€„a)©@mFŒ±¼mmmëׯ?zôè©S§öìÙS\\L)`"΃‚A[·nÕÃ[xîSVV¶qãF¨-Ïž=[^^ž˜˜øüùsp´­J-­ž£ÊêcJ­ß—‚Þ>”‰ñÝÙ.zK®ß’ýuæ¯BUª%ƒ¸ÚÛÛ‹u3fLaaáܹs/^¼Q(!!aêÔ©X\BTYAµÑ>jM»èпb§d¦^›3óæ§ñÃñ£LGç;²ÖÛpùîì(±™[É>¥¥¥‡r»Ý»wï;v,DºðŸØ“càC gi u,˜(Ïš5ëܹsK–,Y³f , ˆHÁËø>Cç>óæÍóz½ÉÉÉ>Ÿ¶[¢Z¥~ÿL!PËGŸîînl0Ð?~|ïÞ½Xk:‹E Íà ¸Xq(€PóâÅ P¤¢Ý/ZP¬8ŽcøðàA\‹9BVœÌóF$ 0±`dqÇ–{íªU«’’’8€zÚéØó…B@¢Ðëׯ±Ð€ ðB÷÷èÑ#ð ØÅ>8¸…ÀÆjˆÈV¯^ ñ»¶¶^jPU‚4¿ì !ñ ’ƒàTUUÝüƒÀ’LqŸhlæ$HzG(š››á&;sæÌžžeTqáAOŸ>ÍËËËÍÍ…³û¤I“àwŠJÈAØæâ¤E{mÞ¼yÈ!0Øc÷ƒ$ª¸@ÆáOÅŽŽøÖÕÕ®XQ‚ý‰„GîÞ½ÛÒÒ²lÙ²””HãQEg•µ®^p7…Œr\\lqqiYÙøÖ*E˜áÉ÷¬©© ÿfAæh3· >‡óóó@¹¹ï³²ÕÔì//ÿ‘lóáQ…@`37‚€ÚΜ93tèÐììlˆ?ä2…`éAnwŽÝîèèø«¨¨/==¶ºzÿáÃuă”½"ˆŒo¿ßãüùóGE1îF´BÎbHl0ztŠÓ™þð¡ñò¥áñüépØ  jnn‚N:’þA9‚¢$UðCSv÷÷Q ²ˆ¹\™oß~̰aâ‘m6£´ô{lN*ºõã!µ‚QªÃ;wî  >F³¢Q Nåii_£Ânéí5’’ú¦MÔÒò«×‹ôËa˜‡ú/§à¯O•Lž.ýUê_éQЛ˜’͇ÓÛ˜äE–ê€í¨Êú„UAKFªl¹þñãÇ(Ϙ1â·0‰Ï^½z‰‚Ïg$'£l¸Ý}íí1••?/ZTˆÊR{¼ÎnÀï”—˜£a=$֘ѧ Ö<œŸ64åû ¤f*µŽA*µ|_þ zûP&Æwg»è-¹^|Kö×™¼Š0æCÔ†£–әЮ®¾ÔT0 Ãáx?{¶íüùß._¾TPð-è4c²ˆZ_Sâ8©»¡­‘‰íííÖI@"¡@Œ4§ØiëîOå«c/5Ðù@МÐT°N@H‰cCMÄ˦æŸÏg«åÓñš7`† qîÛð{Bz«æ¿‚rþP&²Bät.^ïÉ… ¿£ÆV䄯è8âA) ÒGx‡ 9,$< õæfXq²²²àŒ §°éÓ§;ºR…Ä”Èå„Ö»E=äFqÈ0ãÝ;#>¾DZK—êý~_||šY¡~÷ÁèûöíÛ¶mB‚Ðc‘ÂÜn"—‡{Џ$€—… ÄL¼äúúúª~ áöíÛKJJ …—º—÷ë¡IJ©¸Ñ**²³m==Ýmm­ê¦¦ˆ àØ…|Õ™™™k×®‹‹ÃUˆO¼yó&øQuuuQQ6dlËn yÙ醰¦¦ ê®^½ŠÐ,ÍÊ•+Áý¯\¹ä7wˇ« IÐèÌ@@Xbb *­°ý“õm×®]›ðŽ;Àw6lØ0~üx$fèêêB¬,eé± ¼^¼d¼jÜ»9ÔårUVVÞºu ÿ!!MX]]6 ŃBõ„æ% ¿Ù»v š?Hz/`H#h‹ÄÖFÞ@Á¤ ¤°´°Žì]R$] B¾/ ¬v1’bÂn!Î0ûæ­ûd0j)AÉ=]ÿÌÊòJ™×ÖS¨óÂÜu]ß÷mÛÆiXÏóè¨;t2s`Ø`:¤ú£Šb%@PÀLш…aˆÔ¿p€Ÿ3 3 Ò¤1T«_ 7¤{°ât'Ë2Ã0@‚H’¨ÔŠNÀPo›:qê¹hÒyž[–EQÇuÛÌÆ–¬ßÁ`¨J„›ïE!ÛúGU˜1&I †°dŒ]˜ÿÙaë^„ š¦iišš¦)„R’]‚ØP„~³wm?Q\aüìîÈ{)·R´h4Á´OFÖ6i- ñå¨&}¨Æ×öÅ—mhyhLmÒ‹%¡>Y4ñRéQL*OÕŒOP¨P¼´¥eawì/ó…/ãv²ìÎü~YÍÌ™Ù3{æœóñÝ¿‚"˜@D0þ8ŽŠÇŸnÙ¶|a½ú§OÓÓÓ¾à{rúôiÐ5s3U%¾âF!ÃæÌ®:t3¤–QL "}h—d¬—ðE¨··jfPŸÆÆÆùùyÐ C$g˜¨ªªªÛX³C4|̘²û÷ïwwwß¾}›d4¯-_GOhïñóì -žÐy8 ¦G|1žÐÞÚߨ€Å3ÌÀ°¿è‰€sÎÔÚgVÿîêäj6A©µ¹¹¹ó?yò­½{8€›)ɪÿd3Àú;uêÛ-kÑœ ʰ»`U2°ý ÔÇíííàíy•ç"ÁÜî{4|ØEAÓ5F©L¹ˆ.¾-ë+íƒ/¦S©WvîüíêU(†PLaÌœº×$: t:Õ]:Ýã8hÃÄyþ'ðTq{By¯2¸g¥=¨àS¼·}©ÔªŒ@Xp@‘H–{à P†( ¸Zˆ}n—w"èl¼¾¾y÷î{ÃÃÐA©G)ë¼óåƒL¬`)U\ÒOG‚~ ×uÃɲ‚јð¯H+Ÿ^»ö“[‰ìcح٭VßÑlƒÓ[¸{>åF½]ÿ®~Iï„áf&‰Ã¼¥¥…ŠÇ†m¤ú†ZÍÛX½Ý ÇER ïÊŠ`"‚‘ÁéÒÒGJE˜C 6î¹s­J-‚ÑEÒÓ›À9¬ŸÎ¥`fÆ ð `"D¥PµTÁ€Ë,[¶K“““8õ_ -"˜»^î¥yÀq‚¯ç ÝUõðaîseÁhcG”H*EòTˆ%4ùUšK€hÌÅd‹`Bdù²¬‘›7ÙÓÝgL@UFG'“É$1¥Aö„vÿè…ü±?îfsJïôá`ˆ±“‹ï ^B„[±X¸²2¢• ð‡ x«Û¶F‚ÿ§X¶¼†Jÿ~l¥ž¤Ro(CÉдæd·eµŒ,ã%§15‚â«ePBÃZ”H$Ξýï†t+tDd ÔÁôÁ@R 5¿š"pHfE‡ôζíîî”9@..ÐMÁê‚ }·Ì=û¡–u;Øl´¤AoÏú Ÿr£Þ®÷¦_Êß è3w) Ø€º`ß-soÞ]Y÷EŒsµ²€RC ˆ&ÌD¬ôsÁEG¡ëõQˆ\H8 ¶‚SFd¶ÓêŠúA6_˲üä€Â© BÀŒFäÙCšæ€ÔÁ!<Èã‹®Ð'-_¾|yddDë³|‚K€$¡Š òì555¡F(øÎ¥’‹ö”¬«wïÞmnnÞ·oŽoݺÕÖÖ†ò)ä ¹JÖÚG‡)}¤¾w[<¾é€ÄÚk0(¸Iä&&&À°\¸paff†ùØ;÷°\ÆÎÊtJ4‹nC jôóàÁº ²”·îaAŽn„°Fý”Ó ŸEhP Rø]1h°OËÙYÖsévì4<'qœ!E«¥=<<ŒS*ãƒr·`[èf¯Ë?¤*.€F`á”;ü8È\v%²E Û¶q2¹ôõõ!w/? _G$.á~f‹è)T€5­P Š~]9ëùñ/äq1¥(F¼¥×p#÷¬Ö1ÃS£¸‹d<™ˆ'üýüOÞ¹†DZ…qümÆeÝÝZÚÈü¢H›Ðµ1LØðÂ*yC!2õS©ß?¨¹ &j”¢‘—S4µü·¬È Ž!•N¶t±š±>ñ 3ú²$:<ÈáÌ9Ï{ÞÃy}þóžw8j”¡._ºLÞöúƒ×qr\KsúfÊ3== ¸ÄÄÄàÃÃÃÔrH;‡Zeffvww#¶I`e³Ù¦¦¦h***âcJJJHHHNNG·ëQvC3/--é}Ñ NNN^[[“#fggccc™$,, ÅK®d8‡$´ ¦õ°ÐþæçççææîîîžæÇGшŽp^^3×ÖÖÚív:Ù¥sû·7“]8ýœ¦E ¼›„¾çÉWw}}ýÐÐÐå`ßµ§ˆAƒ¶õ£ÔÚ# éÑZÄ^nCÇÎ@CÄü777µ=k‰¬N+’ñññzR§¸ˆƒã¡N¨¸¸xllLßd ½½½@[°ç|L´ß K‘‘‘hrƒ\èss1ÔÓÓ³½½=99)tF|o}}½µµXAÅþòòr\Q–ŠÜ%¢º`0”žžŽÃKss³…³>ˆ}à©utt´··¦,† 0uuu¨ª …”ˆL™š“ÍdÈL ODØ3--cýt%mmmì0BÃHé<²ížV±Ò­xzÓI6 µæÊÝæ,[ë“æT<2¹Ëý»¶Ir?‘ÚÒo'•;77çkøÞ0n8 '(àE¢á2\WŒ+7›wgïîû¸)PÏÌÌЈ‹‹KJJ‘VWWWVVÂÃÃ1ƒÍ ßéëëóóó¡È1£tˆÓâŸ;;;pøï¹Ca(((ˆÙ”r9–ôlll€>ìRSS|'!!ayytCLôÁKÇÇÇKKK]‘-=íFV%H•X)00`-`Šd¦Ô^%gÕÙÄÕ˜Z-ðôá„æ²²2î¼r;8ãüüàEà) …ýýý,Ф–„û³··G&+55Ux ›æp8èá*ÒölQÛQj ÖÕÕú`6:: À1„z':ôÐR¨¦¦†;‚Àõàà ›••%0Ä’È匌pG¶7**ŠmdÁÿ)˜õ ÛI§§³³STŒgOR—1Ò#S‰Íát4†Ô’¯%Þ«ë)f23gP.„,õëH[°âÚ†ÕbX¼@Òf àÉzгamž‡Ãw¶¶¶p~üpqqQhbbÑg9’0$11‘«pZu6ÜI†Ð`¶hK¿§ˆŠ˜‘Ej™¢ÈJðFH\¨ôù¬ey€s¹¹•;¹¹™3gÎÌ™ùfžyÞçsÎ ò(†©®!—^éξg÷}VßYcáÏœÙwæùןßvrÑr ~<\óçÏ·Ìî߿ߡ›¾“œaì­ ’О\Ý*Žò”ÞÀ…D›7o^¹r¥éG ò²› ÊàÆñvÃútz˜+Îò¢‚™¥Ø Ä/^ }PnAƒ$O#wŠ®lªØ»@öš3gŽsÊ·Ìck HŸ={¶¸S™‡Ôw‰åìÞ½[ÿÓæ¤À&è¯@\ ú,—+sÙ²e¬{ùS~·AíGŽééé 4àžî$ô'Í|Ò§i몜’GŸ”‚DëׯÖÄø+Ô:t‰hòU”ÿ³¤‹§¯B*«ê Æ¸¾k+̦üŸp¯ ‡ÿ}8d,„ð£¾úNêý¯k»äÃ8¤GÄ/.PdX>®–žO£¢O³ŠJ MøQ|gñaôéŽ8×Mœô®U}õêÕ$$wêPHµžÑLV'+Y¸pá–-[J°ÃÇšIZØ Ä„ÑÐaÇŽK—.õ_c*ºf˜I“&ùŽIHÜ °–¼"ÒW¢~¦h¨DQ¨ýc/(FƸsH¿W²{ðŸ]¶wï^è¼gÏžn·”CÀîÝ*Ü÷݈ƒb¯î^¬Y³ÒÙ;ºdÉí%ƯX±BEwß¾}š<[·n:u*ù †³ØÔ‚¸®sè—UTêÝ´i“‘ÃýÇÛÀWÂŒ3ÔE˜ç”€ï:\™Œw] m-ðÝj¤üîŒÍq,‘kÿu-Õ¶ç'=7Eú©¥.©Ã6Q¼J䛃ØÏýKhsfJØÝsÊNé å†%Ø!Öܹs 0 A%6–žyvRÅöíÛ]H?41ÄØ/œ÷œe ~§IÑ/2@ãáV¦*à‹ˆ¡LŠ6íIÎ\o¤nå8‹p!óœôòGC,†až>ñ¿öX†Â¤gÀôÑ3pйÄg‡‰€hÉÐA÷šW,¦Áê[é‹6‡2”Ï õ3lœÕpÇJ˜¦‹¡-0ÑœçÐ?iB·&Xê¢÷;«PÕÏ fΜ)@7‘ @WX l¡È*Cu`ðH–ê§»™üJÖ.$"}TZ£víÚEe›2e €ƒPUõªU«ÔµvíZ…Œ  v¢0 ÀÊÄ[LS È8aâ„B¨B%°‚ïXy,†Ð!ÜxúôéädEœV2ƒRH.$ÓZ õ\îZ‘(D³fÍ‚t0ˆ¼+F<ûz€Ž¡ÆT±Èad#Á(D×B:€‘üõväQ~®ÃK PüÇJJÄEP‡¾›fÖöÂv$˜„¡3+ëµì¨º ªÊ‰ÙBì]JÐKÀ+VÞð[W®†(YóæÍcô ?1ˆÉ/ž2.HßVGI¬+H= å5ÀòjN»Æ"iQEÔe¡6ât÷°`ƒÈÊÀÆTBƄڰaƒz7nܸnÝ:œ‹ùæ>ǽ`]{%K·S ¨uĶeZÉ-‰hÌàNf„Ÿ$‘]ѱ¶Œ<¸€lYþäØmÛ¶RhŽ­XŠ 5P¾üâö¼„ð|)·‚} ,ÀwVEð6²Áœ*¸TÐþžž_ŒòÇQƒ2uX°bæhlôQbÒv{ÿ]y%¬Úm@ÆF'¹¥(GóሜP>e¶5Ö–éRš4fš-¡œ]PF_7ÆG¦M›Æ‹ÂÝ0B» ñg¹IN+€ªXWÜ9^Öú@Á“ÅÃ…î$Ø:PçbZº[ Â|A¹2)ýâÙ%ÍÙ­ª¶?ÓYØG›G0Ñ.N‰ô‡þÿoD¬ÿ7  ²Æ’6…Z'ƒSˆŒ ±Ödó„õÁz7"‹R á5„!ò!dI91š“l¸ºx•›è>Ê,I®¦H¾Ä¤)")Ä0† Çu#b»‘Ç oVs, B;"còHarÒ\;ྭ¥ðˆAªùúæ2l%Òtô€lp¹ ¯…³TT:d¡RÌXÊ4ªèÃ܈˜œõ¨ Ô£Ùù±¬7 :-Â5r­mîÀHá@Šé‡.Å”î’Íâœ56¬=@ǯÉÄVÄÑá€L~-•YÕøŽb ŒÁÊ”6Çæ£ãïUÉ(©÷Ÿ·C';w`Jí…ËT±èåîIÉŠ1äTû˜eÊ œ‰ íà 1{…s¡ÿÁ Æâè<Š‘V¢£sñ@¡øwÐ@CÜ>Ô++?#Tsè5ÈBÛ;t–JÂSXt4E‰`š°žKÞì‚Ë‹-Ê“q)§%A ‚©Kýa! ØA7ŒføˆäN Ž ëqpt’® O9@åI“cn§ŠJÀ:´ £‰“ÈdÓÉöé:òVoo/¬Á£Qìzk]ÿªŽ8Œ] hü5@a=mb :áKpAJ6ÂÕãæI‰"IÏUåamgW)ÂÕ&†ŒdNævFg#¢IŽvq<Ù Äïø 8RÊ=ãF$ò¸SO3a499‘@m;mê5ük¦ºM‰É̲0„Ñ%²Õgv …C Ðyµ£ø†¼ˆ³J¢°ÈÓ•,À eá€B˜û‹ß èëášP*±/>P’§c\•üœxšoxˆ0èÈãîiž,{Z'¢ 2™›ÔFvåÛ2àªô¤ G N7¼ÐÿEÈÓé•yÈ/)פ±Â­‹¾8€ór茠#”îÓB» ¹é²–\È9:Þnøå4!Ù8òIïA¢åË—W!éÏ{ •E¹BaDEbBë—Ìx ’eÝ_*ƒ2„6%4|7¼üØ+à€t%ÒOž¡y”2Âß‘GC á¼Çôº“n[ϼE üggV§CˆÂªP¡\ õlòüøÑlÔ†a ãnøîBY݃ða¿:Žm(pm$¥£„ŒÎÿùÅ1^)§Šê¶œÒƒÚéÚÕîgIæûk!³n‹W»r*èP«ˆP¶gº·=L9ºrL¶t] i»7ÕÕmô¯ºE·¿c67Ûah桪RHUÙe´²ÒO‡€'§P³H{ñj %‰4út‡ŠŸ-–«ßÑ+€…yž¤£~ò¨ÂÓm2ijùèp‡1îøC©]ÑGÒ ööî4ä¶1Џyʘ”eH2‘1³ y>\¯ E¯¡ˆJ”¡Ìoâ2$s¦È”d2|Aø@„H2wÍïó¯ÕÓ>Q÷º_Þ{žõawÎÚÏÞç½íÝÿ®µþÿµž  <3]R!xUù uVš÷0ŽQ|&®.ŒˆÐ*Ú÷0 ª3»~bœ•Pþi×rg^Ê­Àû· ³&ÕîܾÜíâ9=»€cüß•³-š´)g}ýïÖÍÁSÐÕuªð«ÍhÚ°z!€•Ò¢&œT PpšñP:JE½lH·¬ñþD>Úr ¢báñ7¦¨mµ”ÅTæõÖš’4²¼±º3 Š)4Úý§@åå¡:‘ù£{«²Àz Öm\'ñòà4ËYG¨SŽñôQçŒ%°¬a(l<éf­pŠ€ø³a1fà]mH?^ÂÑ¢ÀÔð(ÄHÚ‰úñIî(DdË&WY ¢4ÍÍiûéééi0—Á<=·nm‘ˆ•³%éøãé{ÃÏ=9bÀY‘Hj¢_€”=áÈÒS.««„NVRjøj~ ñ›‰0ZŠ|¥mSê–j!&D:týšB[%»”BÕèÂ[·V€ÎÎVOO€æŒ ´3æ?•†­¨ÍLlâ ÊÍÎΦ¬“,ï„TrÉÎB J9©×³!)ù¼SF¸‰ŸÔóµG@ÝúÞð“b5g·"ÛH-ÚQx,Ó‚1bhrØ(eã‚ÀÚ`@ˆT=S‰˜ø3ê4ž‰Þñ®[·¾7<4@20Á2žGMÁª^“‘.e½9JTš®VI=£Cº+9ûàæÎ¦Q0 .M=2²ÒhLœuëÖY°6©Ös_ôR!‚mx:­£tˆ"[°C(ƒ”l´)>*÷²„ËÇj)E›MC[zÛ¶ÁÎKM fÔÃxà`£»Î‚uë{Ã/æÉWæûÃRÀ8«Å.CUyœEÏi.MÂØŒá³‘Y‰²éB`áÈ€žË`~(£“X¾¹ô|¸í5#KÌå§ÛÎ ëkLÄÄFFݺM Ÿå8Û ·%·’‚á°2ö… ÑY‰•äK× §n™f?â@R†“[ƒ; …€'e ®²'ª‚>N!ÅÌТà z!øm±®rUêNÃ/þÖ‹Ð] jáÅ¿íÌ!cbñèÏ€A€‰ÌǵóæÍ‹ÿ‘å3^xz#£¤lVƳ³ ô±“IæxšÝWªŸèÄGíÈ;Ç ±nÝþaïìQ¢(¬¾×¸±¬lÜ…ˆ0¥‹\€õlaZ±´r[®ÁJüýðÊe˜ H 9§If˜"Ååæœä›–þ oMŸçÀ|ù1§R:l°Àn2D FÇäĪ ø¢wî@{¡Š1Ò"á Áôõ¥l›/súÇ%É„þ„Ë¥T¡åNíq L5JsÀ°MãèÌ’{Û«~ µ‰O¨ñ¹SJŒ–œ*™Ð’Lèö4A52ûovãÈ9êv Ã8„@@†»¸ U‰Ú”³,%I’ûÐÔdË— Ö監؄$I)˜”³>Md틪ù•‚IJÁžìÝ1À PÅÞÿÊíÒA'ã`Œá½C|ÀRp믅þ…iЄfþ?v”|Mè(‡D¢dt;0ûØ;ŸÐ¸ª(ŒmGÇ?­FhâØVk"(5P¨ ¥‹ÆED$ÁE@ë" M B(Y„B‚É"šˆµÄEYë2R¬”ÑÉJºIšF3vbÚĽó¸'Þ—Ûé{É=‹ÇûÞÌ{Ü9÷»çœwîùÒK fEÎÜŒ‰ñøåOL¨ûÕ# È1mÒLIˆø¢¾ÀwˆÜ·/Z=[’Ó4Ìñ“ á5¼Ò¿ô‰¡@‚‘†ÿG’!ííílõ€“ƒ”Þä(BI&O›ìÁ• 2 –§y^Ãë¬_‹Ö6¥ 'lCeç: )¸aå Zåhzô¶ m^™†uJÿ‚a¤ƒƒ « °ýÓ†Y…½¬B(– ~*AŸ ¾¹øšUºÆ:곺Óë‹:§ß}¾X?ó]°(îüü<Žá±Ic2 èÉ^PH» Í‘é}Çs Z^ؾÇÇÇ©%deK'á%g£.ôAn;)d^']r¹ù^_Ôq¯¨¥‘¦Ð4·è‚ûÑÁ‚‚ÆÒÒ’Ú2“ˆŒcáV?•×ï[á '0D; $D+Õj•TêŒU¡N¥'vļÎzªc¡ù7PÒ”aÙ:Ƚžë¶#UʱDÇé@üyØ ŽQâ°nÀ)n'u¢ú£•ÐR‡rtQ«ºV`ý$Ò¯/ªh‚ÀBì?ˆèÎmY@Rq«aÔã–éMç5®MBˆ£ð’2HúS„Îå2Ù,0”q¨C RR8KeB¥}Ï£”»²TW5|\0]©«££†O0»éÞA°Æ…iײf•^ª~Ÿ³[êD¬ñ¯¿." ™ÏSŸe|»1  †ñ‰ᔯ3ìÞ©áb€U(êµ›I‡±“½H<Øõúúú`.•JÔà5„t•æfà Ö3·Ýö³¥²ÚªrßκØaüë[k#O»¶F1l@\¹õ»ù ‚ðÒJ¹H fÝv<Œ ©Ÿen„¶ˆÉG›®Û BË  €fggáAg¶„ ~Ͳ`Y7˜Õù| Ob kuð ”Áu¸AèÆ>fQl®ÉÀøD'‚U˹Öýú»ú”ãG˜{n§Ã  !?Ú;i;(ÂjÁgú}uõÑ#G? HÇM¨NÆ üÂÔ÷ã§Ÿ-AX\Z(4@s‰ $1qÆ+•_.^œ¡Ž~g' "u½BMjµMè`÷ï_kpë¿U”2]Õ²yZ ˆˆl9Œf®î È„·48Ñuï¾}›¤DL©¶¶¶¡¡!øg†‡‡7‚áÌB+V(,µH¦ ƪ“Ëåß§}üø]­­›ëëàN€°Á——o<ù,¥ðcã“ qnnN:’o,dºÂj¹Ë§†€ìO¥R´Ë…Úî$)r IñôôôÄÄ!´l6+1'÷qw"î hƒ±R«íÈßÁ½`è«A$$óÝ¢^¹òãùó:”9vl£VC1ꉈ4ˆ¤Ó€×ˆëe6j¥r«‡Æ‚ ÝÝÝ™TIWW—¡ˆÆe9zµg=’€TÛ­À¾C5pKÞï×33¨È=X@¼ì“‹•HgË6™$ÆÆÆÈÙî j< 2¼ç™F2- óï³ä`œ9ó.Htê”\"ÐcÐ'sýz©VW›âȰ掎–Ëåb±“´‘„o¹q2- häR9y_œÙ•")þ?—Ë?\¾üà{[[×k50ÉxjÞ.˜¬fŒlOODÆhlŸ8bÌßaEŽƒh0"Orpð½K—¾?qbÏáÃ7nˆùÃ…û€*V)Œ£gßM"3cŠ×¯¤àã×ôöö’ K¢f’ÈÌ@HF`7ˆ†`è« X«ê씕ʜEô¿³'–vðÍLMM¶  W:ÉAˆ¤Ïí8 b,_…Λœüìèѽ§OÃI]ýDí bCéþBáUÑ–ïÎÚ†÷÷÷ÃÍ«ÔØXõ+++¿%^@ŸÝ9#Œ±ük¥òéäd–`X>KìVÎ 7o¢=ˆÁq‘–¿Ø»v„a(ê ¤ˆK§‚‹`†Î.~FÇL‹Ð1:å EW¿$ßÐ/è¸)bl“z %®Q3dêÊåžsϹ—Û !CbÏŒïûaEÁ9ÇïFd˜Vº9öMÞ*Jè>p¾âx—çGÏ’²%>vCk£@÷˲!då8s‹Iï¿1œ¦)¥ûcÖýødôúà—ŽUâ‘"öI~ «~ŸR¦þ­«ª‘rMˆízkP÷Q€’ëºBøÇY–EQ„|„4.‰¥KOö®?¦­ë ?ÛüBãJ2T Œ”&#Œ&’ˆ„mj“9¤S+-É4Ö$UøcÚº4kÖ²6‰ºþ±5]¦Nck‘f €R&Z5¤‰‹BJKQS `CA MfŸ}´³'_Ùb S3½#ëéù¾ó®Ÿx‡s¿{ÎwÏ•¡¨Âؘ6ðHHHqoÛ¶ ÞgåJÍ“ONGEIUZ¦×K7oj‘+-µÇq^2)èj÷îÝYYYêZZZ`ip‹h`ªÇò÷ßÿ··ÞúãoÄY,±VëôÝ»ÄB„Kf–êCiiä€f›ãF¶‰ÌÌL$GKJJ‚Y ,]\\l6›±2˜uĉÄQµ•Å2p1:„ðûüùçýúë§ÆÇGóò´[¶xeY"æ!! \Ï™3xÝ2rháôè²`"è0cbLññË጖.] ô.G¼¨‚ׄ—…É^œÉd¼q£¯ºú/……ß{ùåcwîŒ>õ”Öfƒs‘˜õÃÀ‡æ_X•úÑGZ·{¦¼ü™ÔÔ‡˜43B‘Gl¨°#Ä;wî¼xñ"pÁ´¯}?k5JÈSx€’>ñÄÄädrv¶l0xií:iú=Ñp_ŸÑ`øÝN+¹ŸY! ‘Ê Ë1º¨¨(==½«« y ƒÁœ•õ­íÛ¿ŸžžvïÞ]%x"æø†ž‹tû`ÌNqšpIì;¨ÕðÜøu¥á ­Ü¾ýÅÕ«]²Òh Í—.9%é®Ù,=ö˜nͯÉäõx Æ¬î’_ êhZZf¬Ö°4örl^Œ ØÞf³9$ŶnÝzâĉ²²2ØVÁú ) #HE@l?œì£Š@8ÿÍ /¼TY©‘åÔ b-–)u:(iüö€#Vî|14´yãÆ¤ÄDªCÂÿwTwλÃÈÀ:G¿#G¦8bµF™ÍãNç…Ë—/ü[ר×ðq“‰¢ LÊ÷%i‚¢£‘G—22´(Íh2MƒmˆL… ù ξSô§¶V»÷ÚkÏ&x ̘`óGŸè,ŽŽð±ËþéÓ§8ÜÙ"&þHƒýš,ÇÈ BaZ-Ê¥Ê26c„`3æÅ åàÕââxŽÂR-„~@Ð>>~ÑEGuuáËöî PyÎu$`pf‡?×Övîwþ™Ÿ/ïÛçíéñ¿¤±±I¯wRŠlQf°l™6)ÉGeÆäF¯Ç„ÝGtVRSμp+54ÈW®Ü;tè™§Ÿ>€ ¨F‘BŸdi ?~üرcmmmùùùDòóQ¤:€ÛPÃÓkÃStëwM\¸ðÁùóÍMMí~ÄU«–§¤€vˆÀ³–K”ÑRU,©¹}ûVwwêƒî.-%^¡òIäÿ¥²$¥ÆŽ`ÁªÃqºuëà±Z#'¿ÎÀB \Ï\ld}Và#KÀ½—ĸsQÄg;{V éó ‹p‹òIYÄ«b;‹Øg0ÿ|äµÜ8Ç‹›˜ %ð!ÈM'x|Ÿ–ùüù©Í›7UV¾äOœqq¿°äæˆþ(bët:[[[Ûüä¤$(¬^½:ÞbÁ“Ð-ª„cèïïîîFCÿà µÇ§¤XÓÒôqq>`úМ‹§J4ÍèìÄɪªp¤ë¬J²ò‡(aM /0ekjÞ¶ÛwÕÖ~:8¨Û±ü#Bá¤"Ü©ˆ< k2ØQº`>ÀÞXo´—ìtÂûlllló•¢?‚ͽ$k°$,…"¢‚ šÃhÈ©(Ä›¡DÀÞ—4h’eWw÷­ž¤ª~÷Ê+\{~ÈQD6·¹ù,ø#••¿}õÕéœͦMà³!Zޤ©„™²×¹Hu@ÊFjÇlK–} .—¦©ÉûÉ'¨‹¨?uê÷{÷þ˜+o,÷—ób………o×Ô ¦pµ¹9%7לœ Ô S“¨hlxꀰwÝI“.3z…WB–Ýo1ƒ®Þ^xŸºº:D¬Šü<9 å³Ä_¬D°Hªp:ÁZD‰¬`ÔX­“‚fä; Õí4n7˜>Þ?ž¹yÚZ»½øÙg™C“ù…Á>¢±Á•–”DGEŽãÒ¥x—‹"ðAø@ ¢4/úÊb;7Š—ÄNXD5n§ÆÐ?'êšA+‡¾‘Úƒ>0Ÿˆ¿Œ5¢¬š@×´Zr=žááííS;l¶ššƒ^¯¬8øøŒBÐsD)~åx&U±«¯?ýæ›ÕgϾ711Jû( yùrÔ3ǰÉŃÕp£/Ýß/ŽÂ ù">ÄÄ”-[ **~¶jUW§Œ, k"ÔAæb”!Þ—BÐÐ \¥^ooïÏ+*j4&¤¥-{à,ƒD:nȧFw©(<µ~Äô÷©ÉIÏȈ«¯Ïãv›ŒÆ_>Œï蕱©ˆdîAhñ)¹€Îm¶ø¸\Ãï¾Ûúþûm×®}êñ|ÙÞÞþÙgDˆpQk6‚ôí%Kbóòr òÖ¯_o4Æ ÒLJm#Ah±s%B<ÈñwŸ€—Ô˜«§]ŒÅ‚àÔ‹EDw³Âœ"J1y€j1üÐ?'ê„ÃÁðmèE´ ËB¨ç+ücƒtãñÜC ðÎÁƒËËËñjha ˜ ˜Ä'¬O/ 2Óøøçˆ§2¡#´ –¶+;1ÑPÆ·³òB" Ñ2!df—ά««q»nÝ’JT1 (—“›kßµkÝ£¢–)ê,›€€Â±ý[*W\'Gh6/“‰¨ÂÜb­‚âiÛ.ûNN>G2ê¼r¶Ã…€TDƒ×»bÅ «ÕÊhƒãƒâ/Š&ã࣒ ƒ^,HE@`qŒØº—üH°u²{šš!6”³v­´€¢ ÿýu~\OP‘l˜¢¯‹Ã©HK"OÄ ”Û(ªiø…Ù–‡§;8ÎÅZþÅÞÙ­6Q¸ÙßÿÞGñQWA¼A“þ =p§;­" ó] “œ³™1Ù%‹oI»H(äú!-ns`ÑKŠPÔS˜h~Ø•íT%&»ÒíšÝ Fíb[èÄ(bØißT“YÙî1ÞY»áÉé×¢°ONÛŽ¹ínŸ905`û£­[m;¦. árŽã8áó$ÇqÂå¹pô/n‚VøÐ\LøOÖw:…ÜíÂcÏÇñ; ‡‹!°d "DLreY&‘ÏLÃË|¶Ä»­aDq7€°»ãua5˜>Nxy^|gÁabŒ}ßã„9‡¶m«ªDZ,Ë<Ï‹¢€¾½ Á|6.OPŽZÏó,Ö]×Q„¾,Kü¦®ë¦i$NÓĵÂ!—u]ÅEê<èf8ÎW{w³ÕQ…¼uߨZQAˆH+ 1!ˆÈN\*­,A¢l ‹ŠÆP@AŠˆZJJ(¤¤ì‚iÒ(QYºi@"iEéæú‹'9ùr¿”Öäígü2ç›yÏ;wÞ?æÉsž3wNã ÁЧP=ɶT_$[öjYíjKØ&ï+ªÃ‡+öï”åìÏò{‹Ý»wÏž={ûöíõá©~»B\8àÕ HX‰»ÇçoÓ¦MëÖ­8o& ï,^¼8j®DŸ°òºôçh޲6Z·nÝ çµ'Vß*·Êhxkœ ¨XÀãܵOœ8qöìÙˆ†Ž=Š©¶Ü¾}{•”bûLA¢²J' ´ûÌJ;±¿R3ƒ©@«ü§[¥Ÿ5iÒD%u·ðŸ­]»¶.i³-ß~m–£e‘ íœdžÂâ‘ú"TD‚y«Á‹k³±1Z±€ä¢U«V‚”#GŽ@þýû÷»vêÔIx…mÛ¶Í&z?óYhõ!_–ßx£ÈÈ5·™%ïЮœ n²Ê9~â5†ªÈÞ•ot8lÞÇ¿´/^¼¨²ÓÞ½{'L˜àÌy¯‹GÌÙÕh® ºK—.i´lÙ’?ß’Å Í$‘ˆÓOEå‘>ÅΔŽG•@Ï[`±R?” ºH±ÆÉ€ŠmQö Ö Ø·oŸŸ–zDC .TØ@›¤þŸ tíÚu̘1K–,á_µj•28Ôè=zðà N§è¬NN ݦM›œ ¯Ž;ØjVV§¨B†eï Få›Ä€8¤8t軑J`ÅúôéCÀ 4Ù³gO‡Dm U]Ì3gÎä[²ŽØˆ#˜3fÌpKµŒiÓ¦_”o JµeË“WPsΜ9æÜ®]»E‹Ejx!©Xã̂˯|†‚Úœ—/_F…ø{öìéJÞ±c‡ na=jNÌ;7êMúiåëƒqP‹`™n´ªu&`ëLåÑj¨ Glv8´PhçÎ*åæJ¾F‘Ko ”‘°&p €0##/Å´ûöí œ…®N´™ôîÝ[}ðÍ›77Ng¢Ž3þ|q`=z4çÌ™3` Õn“'OVN#ÎäçÍ›§ž”§Üš8qâš5k¼1(RͬXÉ‚•rïÎNÖ8vìô¹pá@ÁS"¹DWÒ:êM:ÅN¡Ë©S§ôÇ‘šŠ±XÆxŠ>Áz4xŒ¼råJ(à)+™âÑç•L/@ÄyCÚâ/ˆ#7'\RjJõ ,ICuæ­[·^½zuøðá¤qõQÍYClõâAøˆÔñâ´zU&£b"œE…t›>}ºAhOü qÓ-d2bÍd bE*¹­-Z€Ñ\@üâØ‘Yy–uTÄ/?Sy.®:“xÜ ‚P©(O»AFw¶˜OŸ>Í¢Ï+Ϧ{EÄe”Ÿrg"#ž‘#GJÎácXˆŒ»ºy„A ~ò“tžéa=(’9)èé¿›š†ÀÍÄ&¤ƒ8ôV¥Cr»õüùó$'ƒÔ& +VÒðÅÀI˜|ŠåñWåkøÔ˜1‘¨zÁO}e¤BÔæ^¶lä"x£™ÅgÚ×ÞÄœ'~Xÿœ™Û¸q£P£Î€A“øË ¤ ‰JP‡"FœègŒ@Ž;BCÉ>¯èܹ3Oì9ÒPG,ê¸Ò•Èrgc ¬XIÃK”éß¿?Çúõëí9´üH°üõ ögÞ: ®'ÙÉÑ| >~U’Å<~üøuëÖ½,}¨ûˆÍ;ú§2(å¹4П~ýúQ¨9q¸'‘ûܹsâAáUhêth ƒÎİü@<éfbQ¯YÀJÓÎíNiÑÓ5Ú5 ÁŠ•¬XÑ"y„PDþ«K—. ûÈËV[Š,2D®ðj€§PyPË›¬§ýŠЩS§"_îzméG#‡ÍâA“ž]òqÞ(22y…ÀÐì¨BB³“'O Ízõê¥Ê‰DÆ #yØ,YÆ/Óo†B ßÌÊ[ ”[€þ‚älò ¨ZË,X±’+„ÅNa’° x‘4 ¼pvÂjÀ)ñ$gk‚&ØšHi&¬äƒÑ™L"qê(“}*û›ù©6:cOØ™rïnM™2Èôk/_¾*Ù ’П]»v¡<„äQ£F‘º)Ó€ —±ÈÕh Ë%³< ªd¾„i¤;VÞB„g5kÖ ´£ÈNš4 zÚímJÞK02Z;)+V¾†/”«‰ °&jGÀ,жVµ¯\¹’+± Á`Çš:t¨¡ä¹ dÁë,õÑh+ºÙ=äë ¤M²Iiè/r&L#h8Àe–.]*ņŽa4ÀÅ-ó„Jæ ML5§ã 2Z©|‰¶˜ Ü¡vû#PÃøFC޼Qé|Õ`€ Ã¡½qÆ ÕQ %δbDa(’NþÖ†þØ!X[±Æ‚K•ׯh40WÀᘽ0<±5Q¶ˆ<&b+3DЀ2F Gv uõ ÐêÕ«%Ë=¸bÅ Ú³€È’(üPŒÑqfÍšÕ¼yóœ \ã~2¹°º¥#í%­N®r— ¤ô È€n6‘xTç·WHbK¤ÆhÀ%„gd H†üYû$ÍД"š¤ÿÿ΃ݻw_°`þM›6•;ó§¼%9]m¬XÑ€Š…”#–=¥3“DL#róL#äžP$›R¬…"£¿?õ¤sÉvÝ7f] ‘Nú+ÊtÏ48«¼lÛ¶-°«ëd¢K£åOËG>ýËG R O1Še!‡W }Š*¹°¨±“{Ó™i¯hçÝü˜#iTå¤÷x?FÖÈ1à¢mU>FµÚ+r¯ äTu] ë–xªëÏÑxâgŽäü³J]‚]ÜÍsþ5M„«ý¡ôåPúr(}uœÚJÏ*x)ÿ{(=ÉÕÖm ƒ(…'nýŸJ_¥/VÎ{Ívͯa·´”Èè¾t#i¥§œTDèbŨˆ‰š…çsû77ñRŠ×jIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inback.png0000644000076500000240000000537012536324472023366 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ªIDATxœíKLIÇ¿6ö0nv÷°î¼ˆcMÂ3`'88±H¤D4ÉaW‚Ë’‘YÙ9F"H“CNŽd %·=XÊ!ÑH‹¥Ý=DZFƒ[È@œ ÁE¼ۉ”ˆ†@èÚCA»ÓØÆínÓö¸~Ô]UTU׿êûªúá¢Þ½{Úáóém¶OV@stZW ÒQYŽ£ffªÔÍó÷ CÐ}þI±y|&öŸñ¸.ßT±½}CH‰èð©p,¶Níí4T»ˆrF†4±,%ü‹…·Xx`Y*×áãŒâ‰å!ȆgYÃl°ìf[‹ûuŽNÍqø|òŠ«ôÉ0&ŠÇu!Ž£‘_^¦fftííŸhqVáÜ>ÿ ø˜¦Ñ7ߤ§üB¸¬ hËì¬ÞhDMM2Æ.ËR‘HU“+Û ›L|$Re2mššššÍŽÏ²”8Ùòrº@ÓhyYš¦¼ˆÇu’ÖŸÍ5 q,দh4ëÔ\¶M`43£³Ù6€¦‘ш°aÁ.CÓÈbá%áí킱ª©ñh( âñ´ßÂSšš¬)ű ƒ ¼¦êíÛ·E©o~”Ë­–¥‰*q§Á&7[7’Äâ‰bÆ YäÇQ‚Õ-ì#3Fvš†•"€vp*Í‚*šF©T®¶šÕ w¶ÃqT¶i¨¼u@1мù`2¡H¤jyysÎë‰*ðùôŸ-/CC¯e{,ËR‡md¼R²4Í—C‡6âq^7`0,K™L¼ÐÇ·ÇÂçÓt1Äå‹Å¯¬P‘H†%ÇQ “yŽÄ²T4ªol̺x&#@Ùfý9nA2 b˜õy’P8SSSÓÓÓ 3ÑL¿ßà÷¾?ÿ'|ðg“ ‡—ÑÁÿ‰„üKÿ *•J)ÌB ~¿¡»;×-YBgÏžýïãÇ|õJI>ÄH,ÓëõxùRa>¯Êëy€˜P(ÔÑÑŠ×1dÈ“'OŽ;fb…ù d~~¾¥¥%Ų ó!Âêêj"‘8|ø°ò¬ˆ…F¿úê+ƒÁ@L6D"‘ææf &HÂáðÑ£GUÉŠ „P(êììå&ˆ¬d³´´¤×ëkkkBì›7@Ö»ÌôôtGGE©óŽ@6X|ÌìÙ£07"€<BbØ7ofH¾wðàAµ2$ÈC∠ÚmÄöˆ Úe$@È:@âÙ³wï›×¯•äIF€ fffÚÛÛÅ+…­DY¨n€?Àž½{fKÈ—Œ+b‚vééi‰P"@¾LNNZ­VI 1A»Äû÷ï=ztêÔ)I¸rD¾È‹tvvÒ4­zmÉÈ‹ñññ3gÎlß»oŸÂœ‰;ƒíÏÉ“'·G½Vöb(òÁëõvvvÖdû.[D€ ƒ»?´ „ð- Œ±ÄÕI ì@î°rDžìÀäää¹sç²UòÕË—ä½ "òáÇp8œÍ« ;N@÷í߯°"@Vxž¹páBŽ4¯#FÈŠ×ëÕëõ'Nœ(j)D€¬Ü¿¿¿¿?÷b‚ŠEžî—˜ bQÔû?bÈ: Øý^¹reǺí?pàå‹JÊ"# yº_…­D€Œäã~Õ‚ »_›Í–Oâý(,Ž E–û%&Hexž÷x<çÏŸßµ‰Ÿ‘¿ûŤ&<Ïß¹sçòåËù»_å&ˆ¬Òà›?V«u7«DFÀ&¸û_ºtIÖìó@m­Âr‰›LLL ¹÷>_<®°\"@¡Ý_ˆ…v &H”tb‚T`||¼°î¯ •.@8¾uëÖÕ«W ³þÊMPEÀóüðððàà`kkkaÕxþìy/¨p°ñ±ÛíÖ¡r…B·oß.Øø`j¿3Z¡„B¡7nܼy³µµUI>ÿù·Ò_MÔr‡ÙÙÙ_~yüÛoé]¬VkKKK±ËZ¿­­­Øeíˆ>¨Öªì§O ¯_ë„N°¶¶âñ ~ûíyƒá˦¦‹:¿ )aqqêçŸoüðÃ0Ç ”æö׿1 õìÙ3¥µP@ Pmµ~Nççç>|¸ºº:::ÚÛÛ[]]­î˜P½ïKê_¥µ‡Lss3þEÚÓ§Oc%ÕR¢¤,•L&5,~Ç4??Äc¢««K®sss^¯wllÌét–TëCé °] È-ÆÜÜÜÔÔÔÊÊÊØØXoooOOOSS“ËqÔ⢶vûnhX7Ñâ¢ÁhD©”ÎjýÈqT8üNŒ+)¡itäÈz¶ômmk4‰ªdR·µ­INqÊÒ2A9¬SOOO €ÕÕÕk×® bHÚÝh4‹›^€ã(ÜR©”naÁÐÖ¶Æq”Ùü©¡aÂá/ÖM&>‘¨ZX044¬ !bñÄé Gެ'“z²°`à8J|*Ô¡l”‘ÛÉÑî4ðöwx«Ú•Ц>Æ»?âc“‰‡õâqBzO)qÎxˆc…¶ŸB9 F,F±É¶­€Ø°`pǪX­%§8M…®„%¤R:¼=»‚·`Æ;¨¦R:“‰Ç–'Û¾ÌâôŽ£ð–žVëGlåħB>å=Âq”`4°Ƕµ­Iœ0v8dûö´âôx4„ÃzìuÍæO&¿°P-œ ÿ^6³ ÕÁ®Rb4ò$•Ò¥RUbS^0•û^B²K_X0FÆjý¨JÅ+×m÷™;¢J——@œ°Æ4† 1D!h @c*wP" 1D!h @cˆCИÊ à´XœŠ_…SÍ¿HüëïC^|lwùïõ›3& :ëúÜ¢óI³Jp·ÍGÀ¡þ{1¿Ëv—?¶C“:<±M<ïÐO#Z>ÊS ÍtÖÕ9GFê0™[Ùüµ¼O“I!e]]]3(¤È‘Ž”jD© à…›±X,ó» cGOúF½v×Å.°ÝŒ¥‡…» –èjÜ/~×g_À‘×»vézrRŠ$?nš"³í;ûШ/ÙÏÝ}u‚pxî™ÀlN­®3p?M$ïyž{[íkî¿wp:»‡Àå/Æ(M²áðlõÚäÈ@wŸ&Gº·¼8€ ¹ûw½‰»¯ì.¿Lï]TJÑ팹ÿG¸ BÐY—66ÇNÿçð”œû.O ¹þê‡GbOÌõØCg¢ëºÇáê.   C¥ˆŸ dŠø,>þÙgŸ íÚµ«‚m&P<Ï{<—˵k×.iºÞ`À,™P×®]Óh4¯½öZNz*™Ä,™LCWf||üìÙ³ß|ó EUþ±€Ï+¯¼²ü*qA«Îèèh^çƒÀwAD€¸|ùò;ï¼³ÎA(ÆãÇC¡Ð eÀwAdPŒÑÑѽ{÷Ò4]¨‘ɇ¯ýÄ Âóü¥K—Ž;¶ªµ 2::ªÕj»»»‹ä1lÚ„Y   —/_~ûí·‹‡ßäǘµòóøñãñññ"á·RòÃ0ÌÞ½{ë }û0qA«Åµk×:´b6â‚V…ªù 뀼ŒŽŽvvv™þ‹lÚ¼ùáŸâÔE, ׯ_/Åÿfï`9Õô?@XÃ0+Λ6oƬŽKéþˆ ª8Uö?@È¡,ÿÄUœ±±±ýû÷—žß‘ßdáöíÛï¿ÿ~5›D, Ëôô´F£ill,ý–Í[¶`VJÈ ÍfsY¯ÿ|ð³R"@–Û·oc~×\D€4‚ (ë.â‚*†ŒÄU "ÒÈ ø.ˆ¼H7# ÊX<˜™!ß ªñx\­V—* ãd€-[·bVMÈD`7>˜™Á¬š sP)ˆX€¸  ;qAabbâÕW_Uªv²€H$òæ›oÊkÆÖ††™?þÀ©½Ö-`nnŽeÙ;vÈ»³÷‹ÅZZZ´Z­R ¨u¢Ñh{{»ìÛ·64`6à¹ú¡ö;w~þùgñÔjµ¾üòËÅo‰D"y\"Äe¹yóæ©S§æççÑéÜÜÜÇ ‹ß‰Dp,ŸçÄnÞ¼ùùçŸùå—&“ILìêêp»Ý…V¹˜È,‘·÷Àl6»ÝîBv€ñ]úäÉ“˜EàH¨·mÃÚJ#~ñÅ9½hhhèèèìèèhX0úé'•Je³Ùp€Éú¶žç‡††N:•·÷f³ùôéÓƒƒƒwîÜɹ„^|çvXïüøãZ­Ön·Ïf6›Ož<ùõ×_ç,wñøãþ}œÛa] Àóü÷ßüøñRž£õôô‚à÷ûÅü\Ö±høwuu•’™¢¨ãÇ÷Ýw¢LNNâ¯kו5üû÷ï—æQ».¨¬áÈ1Å—`ˆu)€ŒáAEÀwAk÷÷9v^zé%tÌ0ŒV«µZ­2ÿÖ[o]¹reÏž=,Ënß¾óãß¿wï9ü^ÐÄÄÄ·ß~ët:¥v>ùä“P(<ÏŸ?^ÆðG8p  Ž+ûZdÍ= ‡Ã.—ëèÑ£CCCbzWW×àààéÓ§S©þòÊá…L&Ó§Ÿ~zøðaüÖ¾ØØxÿÞ=œ¨{x÷câõFgg}â©Åbñx<ï½÷ÞÁƒ—g…B~ø!EQçÎ[ñ9s~ÿý÷7n¼þúëF£Qv!ˆ@ ÎjÇ)AInݺårýçØ±£uuu077wéÒ¥ÆÆÆ‘‘‘BîåîÝ»E)¾z©€?ü€ûŸ/es÷î­x|COOö 33w7l 7nÄZTþËð_¼TØá eÁoÿZœÕä{AXX,s˜Í_sÓЪÁqÔä¤2»}·¶.ètÂä¤V§R)•Õ:ÏqT8¼eF~FšBÓÂÎ …ò›LOiZH$Ô,«A™M¦§9§(gí G¡žJ¥T±˜ÖdzÊq”Ñø¬µuÂá ­­ z=ŸH¨c1mk나"Oš_ÔirR»sçËjPJ,¦å8Jz*¶¡¦cM hû;´Uí“'M èíþˆŽõz>•RIS¤%ˆù ¨ êÂá âæ‘@´¶.䜊%Ô´”E¡ýhE¤ŽÆ;êt«u>çå©i I¥Th{v1mÁŒvPM¥Tz=+¦JJÊ^ )«…’1`ø*ü{äÁôô´ßy:ë»ÊØ=ïZ¹¦¨Ç Ãï‰öŠ-ÿL:¿X>ëíïv¶eLÌï±CºpH§´9»W.ºr()€ãDÚ Öh;bg®ú2 ÷¦c·“qœè3°ÞsÃvÏ™Œç2öñ؇ϭ4TѽKÊ»àd#ÈtqÀcׇÓ2€å†¯WOµøNØ12î"ÖÛßÝì™>ôm'$ÃØÒÌo,”ùo6Ø©(Ø—'2ÃÝÍNI d¶\kQ€,ƾgïõ±R7¶“r“­5¾`§¢È/D§Ø¥éöe÷XÆpVN¬*¡š€ô@¾ KÒœ 8zö ûzŒÓåM ä„×ådô6 ÝGìÌUJ¸{‡W(_¿Ç>Ü눸Ýa_$‰ ¯;SQ¨š bGÞµ9`l-W=¾ŠdîkɬÅìßT¯,®)ï™[KÚQ;¼S. €±×í¹jCé¯×1ÜW¼ÆÞ >x×ÖÒ’­ÀèšòB‹X«Ýãë•õå@MMMU­²åŒýÍb™S°гÆcÀó@aˆ CP"€Âü,@óÛecýIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-incirc.png0000644000076500000240000000505512536324472023406 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ßIDATxœíOLÛÇSZ¹’uFoùcž¹ÑÔÛh.•>kž É»1y/‘»©+IžkcWÙ¡éΕº‘5Ñ-&74±I›âùó$×R¢¡üË $&TèÌ]†BK§gÊ´ô|8sæô7§¿ïùýÎ9ÖC-,,€~ƒF§sYÇèŽAïT: ÔØX•¶6·7$t† 3Æü«¢ô"™hüŒÇ ñøŠŠv{Z®‰Щ|¬ÌNv{š¦%ÍÞD9£Bš–XVâ8Jþ bCƒGÅãt¼!²xJy*–9ÎÀ²iŽ[ñµ²_çèÔ‚@@0¨îv•€Q’T¤†‘âqƒ$I‚f³˜JQcc»}™¦%A ¦§«µµÓ´ôóÏ«S~¹\Uôe|Üh6K‡©ˆ]Ž£"‘ª)Wõ Ì0b$RÅ0+©¦¦f¥ãs¥¬–J­¶hZJ¥2ë”ñ¸!Ãûãã¹]eYéСôôtÖ©¹êœÀ²ÒؘÁéLMKf³„ 4-54ˆåv{ZNV55 Œ†² _·ÐÔ£¦&kMåU–• GÍ ¨ùùù¢´7?Ê壎£‰*e§A)7[7ʸŠ&ŠÎPÈ: /’³n 1rÃKD€­€¦aq‘ ‚f³F³ Ê„¦%žÏå«ñq£ü‰ÀzÊ6 U·(º7 FŠDªR©•9w¾þ*¬¦+!)(_ÄÅE*Ù`I%Ën‚dY‰e—rØ$P8£££/^¼À4¢›¡)2ýë׿¡ƒÝ ƒÊËèà¿ý‰DÔ¿õ5P<ÏcšÀ!2µ·çŠÐRæúõëgþã!)¨pxžÿáÉL#:¯Êëy@<ÏïÚµ ³ý$ ‡çùæ'0 $N§R©å÷ï1í daaaçή‰2??¿{÷n†e1í „ã8†axŽÃ´C(øvˆ2??Ï0 ~ "ë€yóæÍ‘#G¸¹9 ë]xõêUkk+¾"@!|ùò%‘H}±F"@Êü˜Þ"€ZÀ±cÇ´Ê?@P‹ßï?}ú´|º§¶Ó @ùH Úb4Ï?@ÈQ>|xîÜ9e!IA[G 0™LíííÊBüD~¢(Þ»wïÒ¥K uƒIäêþ'Ö} ¨vï^LËD€ÍEñþýû/^¤¨ÌÚ}úøÓ8`s²uM lBŽî$m~¿?G÷ÇOAä'J¹˜˜˜èïï÷z½vM Qoß¾}õêÕÇg«ƒŸ‚Èó€¬ F—Ë•£…?| ß * ###^¯÷òåËÅK>"ÀLLLܸq£··7GòAìÝ·ó^D€LDQìïï÷xp¼¯ -¾÷÷ÕÕa¶¡rФï“T ºg™J@Cïã§ Êz óòåËgÏž jÕ÷ñSP­FGG»»»;::¼^okkk)¬? B"`jj uü[·ni›ôëöïÿí?ŒŽŽ^¹r…¢(¯×«ù‹é}ØÞP¼Ž¯!Û3¦¦¦îܹS¼Ž/S·?¦…ír¯—Û¢ÞŽ¤ U¶ØõZ±ÐÑõø³ 2þ}ÀÔÔÔóçÏŸ>}ÚÑÑÑßß\¿•ïèÝÛ·˜ß *¿Èð»Ùl–]_Ž”Èãè¸Ôü¾ÿÇß½}‹c¡äPº¯®®€ñ»Ì“Çœ¾âXÐS€ñññ?þøÿŸ®îŠán(=kõø1îÿ|Y0¯_¿‡Çkk×l?ÑÚ꬯ÿI¯&©åßÿaŸà9z‹—Â0 ‡«¬ÖüöoÏ"ʈ zP ÚÚ¾`6¿äfA[† P33&ø¾Û·Õºd6K33&³YâyƒÃñU¨Éɨ2Ê3Êš–š›—²Õ·Ù¾Ñ´”HT%“FTÙfû–qŠjV® òÏ¢Q“ÍöM(‹eÙj]€ÉÉVëȉDU4j²Z—ä¥xÊú²N33¦ææ¥dÒˆJ¢Q“ PÊS¹ =д„¶¿C[Õ..R4-¡c´û#:f‘ç Ê¥¹>„ÃÕápõääyóÈp¸¬Ö¥ŒSÙBEG€*²íG+£L,Ôß‘Óޝ§¨NEG€ ÏÐöìr Ú‚í Êó†QæÉ¶/³²>B(´¥§Ãñe9å©l§¢#@(Ԣʫ6Û·ŒA ¨dýö´Êú(&'hÔµX–FŒF«åSùåT2™,Æ{Ëbh¨ÌHyÂóž¯R¦ò‚©Üu€$©¾{4j’“ŒÃñU“†Wn Z?fnŠ&]>2ë @gˆ:CÐ"€Ît¦r×%‰!è @gˆ:CÐ"€Ît¦t~ô¹Û=Tæê tZr¼h¸§ñü]Åyף؅Yw»§åQì÷¶¢5µ”ÎóKç@Ìés·žÍÇù®¾PL®•ô¹¯ù`` Ö¹ Õ–’MAÃ==>Ÿ»áö%¿—Ÿ¿› –ÎNËpO£Û—ôÏpOccccÏ0@R¶²ZV2”¬wáf,‹ÅB}à¹æKÀ°ÿ.¸Î:sE@ÀÓî?‹Åb¿·¡ÌÖò([1äÚš¦çMI Ðui¥Ÿ[œg]Á`’³Ó-M¹ý®¾Ð÷‘`ø'ÐõH,%6F”´ø$g§Áõ÷MôÒ•2ÀÒÔ0=«ç7i4¦Ì€¶Ó] æ«€¥©¯KY/ƒTR€ò!Á~¹æë xÚݾÄêÅ„Ïíö%¾¿bÍ q÷¹îžï ?÷¬—¥³H>ºàô àlì þ7kŶk³³ÿ¼ÙälòÈE®¾àKòæFµ-çႳ©iµª†Æ‡šÕñöÃÃ?´µ}ѱºSncÀ¶ƒ 3D!è @gþR‹™rÄÃIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-incubic.png0000644000076500000240000000524212536324472023551 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ TIDATxœí_L[ÇSZÙÉ>lGüW*ÉÆ"‹±¹D#•*æúblv£ÙM@“‹¼H¢î›F 7òtAˆà»¨ú 5ñ>ðÉ fÛ¤¤(,¥rÓBLúOEjBÂp™Ù‡S†¡ÐÒé™r =Ÿ2sæôÌéùžóý3æË—/@¯Wïp|'XâèHW ØÑXA`&&J´-s{CGa¨„ÑgŸÙ‹3QüŒFuÑhRÅÚÚ%9g0¨C§ò±Òjk—XVÒìKleTÀ²ÇI<ÏÈ?Àb-xž‰Fuèx]dñ”òPT'ò¼Žã–x>ÙÖÊ~¡S ^¯ºÛzIRa&“ê$I0ÅùyfbBW[ûe%A`B¡TÚꟀŽYVúᇕ)¿œ®ªdñûõF£t𠊱ËóL0X’ÁrUa“I KL¦¤Õ”•%;>Ï3Êlóó+5–•æçSól-¢Q]Jëûý™4ºÊqÒÁƒK¡PÚ©¹jOà8ibBçp,ËJF£„Œ…ËJ‹˜’^[»$›UY(GÖ ]‰[hêQV–6§ò*ÇI±ÈQ3æóçÏy©ovl•G<ÏÄb%ÊNƒ,7]7J¹Š&ŠëÎPè: +‘]7PŒ\÷`3`YXX CÀhÔhTœ°¬”Hdj+¿_/?X‹ 0馡êÖù€x²Ád’‚Á’ùùäœ;ÕÅb%àõꫪ¾sœ4?V«ˆ¾ËÚ«<ÏTT,­ûMéÒ4[**–¢QZÈ`<ϘL¢ÜÇ×^…ÕÓt%Ô‚²Åb˜`p%• 0·þ‰ç™PH_U•vñLG€ ÒÍú3<‚ä8‰ã3”IG@î¼~ýz||³bŒŒFF ÿÇŸÑÁ_L&”¾…ž·´|üøQýW_“H$0‹ÀadÄP_Ÿi„,sssN§óU0øíÓ'œr¨åˆÛí>zô(fëñuÀÖz dxxøÌ™3ø•§# æææü~ÿÉ“'M‡Y ÿ”••%x³(*€jDQ|öìÙùóç5)  ·Û­×ëëëë€Z.^¼È0 P Úläð«UTuÈáâ[]¨#eúÏúxõ§#@sss“““úPTáñx”þÜΘeR²EŧOŸž;wN™Èc? ¢d‹Ûí6 hú¯!T€l¸pášþËP Ú$Ò…_jA›ÄÚð«t°1(ü^½zumUw–—Â{+IGÀÆx<žtá³õ °!¢(>xðàòåË)áW+¨¡ûÀÎòrÌò©™Ø°ûS Ê/™»¿&PÒ’ûS Ê#Ùt| ¢–¦¦&Ès éXôìáĉ™³•ïÚ…y#*Àú 9rdÃg?|À¼`&''ïß¿ßÒÒ² ÷¢¤"ŠâÝ»woݺUSS³afjAÚƒ&?§NÊ&3µ EñáÇù{ò³*À*P÷?~üx–ùñ-ˆ¾Xuÿ+W®@Ösÿ³³ô÷‚4ãåË—z½>ûî¯ T€$“““}}}7nÜPåþ»vïÆ¼/@ÅÞÞÞ¶¶¶C‡©úà‡ÙYÌ[S<^¯Ïrê©-TEñÑ£G¹M=©iNì¥„ËØØX±WCŠznß¾ÝÝÝ]SS“[5vïÙ3ûþ=NŠwÈ3›Í–s!˜­Å,²þ††²Õ(RÆÆÆîÝ»wýúuLëß½gfMŠQ€±±±ŽŽŽîînµË®µP RÜú8Ö¯!Å%€æ­O-HùèûøT,ë€ñññŽŽŽ;wî>|¸pÞ@@‘Œ¹õ5÷ý={÷b–°ýÈ_ëÀûwï0KØæäµõ5a; ° ­oAÛó?çNMM¹ÝîÁÁÁ|÷}| ÚnÈMït:ûúúª««I×h¶•ß¼y“a˜¾¾¾k×®mBëk`AÄ'Åø˜ššzõêÕÂÂÂÐÐPWWòœÍù^ïÞ¾Åü½ ­mAÈp†††œN§Ñhìíí-|ÏIaë €ú; .ït: ¶ûÞ}ûÞ½}‹SB¡ 77BnôÒÒÒBèò¿¾àíð§’øýþß~ûßï¿§ÝÈMÙÜ(¥][˜/pÿóeμyó_ŸÏ_^žiƒ´êjGEÅß6­Jjù翸_ñy‹ga˜ø|¥v;Ö& ~ý·Õ:`+R,ïòD]ݘÕ/ôYPþffÆË»}[­‹F£43c0¥DBg·&Ø2#ŸQ¦°¬tàÀbºü6Û7–•b±’x\2ÛlßRNQÎâA-•H覧 6Û7A`ÌæïVë";¬ÖE“IŒÅJ¦§ V뢜¢O™_ÖifÆpàÀb<®G)ÓÓA`”§rŠ:°¬„¶¿C[Õ.,0,+¡c´û#:6™ÄDB§LQ– 矯Ôç+ vÈ›Gú|¥`µ.¦œÊ%õPEºýhe”Æ‚@ý5ºÝþ5åå)ê “HèÐöìr Ú‚í šHèL&9Oº}™•ù‚À -=íö¯Èå”§r9E=AýPU^µÙ¾¥aPÊÚíi•ùÑhô(êšÍßM&qzºT>•?ÎÄãñ||·,!¸C¡2Å4²$‘Ð%%J+Ï™â]H’ê»OOd“±Û¿jRñâµ µ1sC4éò)Ð L*a¨„¡† @*aŠwP Ð@*a¨„¡† @*a¶¥¾N‹¥ÓGºÙ¡“ˆ{ö“¥±q—Åb±X~zËœÙ÷‹e¿ø2d `ùiÿêûeþ ¾07=‰”uµü;xfäI“9CÆÑÎýý =#9WÜÕÜîŠ×eüÔº÷kʽºy¢p,h´sÿþN—«y?¢Ù_NoìoèY­‘¹éÉ“&sÜÕ¼’-YÀèêÉÔÑÎåìqù6ŠËd(ú¡+‰D"#=ÐÖîŠÀèË~h8ëPÕ×ú_žŽD"‘Häyk£B'ˆ»šëÛªž£‹‘‘²ÿ±©°h½šìçfÇÙÏ 7ñp ªRuûCëóŸëÐQÝ¥Tbôq›gå"˜›žÈÇ$(,òƒ¹² gÁÀÐÐÐ;ï¼óöÛoß¿ÇÌèë0vW¼ *öÿœ;44táÂ…Ï>ûŒ¢¨O?ýôË/¿d£Ü¬¤µì‚D122ráÂ…?þØl6¿òÊ+ øÝîüE–––° * Éd²··÷ƒ>0›Í@ÄÙ³g¿ûî»ü¥Ò>Ï+€ ’|.UœN§R©<}ú4[Ó§O_¾|yee¥<ÇúH‰D‚¦i’$Ù"<Àï !™L~ñÅo½õ×ãWTT˜Íf—Ë•«š‰ËßIð¥Høé§Ÿ”J¥ÅbI;n±X<O®R™ÀÓuu"kràGA¿üòË;wÒZ,–çž{.Wtû¿ûî»™÷²Ñh¼~ýz®‚™ßgó5eGük½…”x<ž¼÷ë¯Âr[]]½yóæ™3gJJJ؃ñx¼»»ûÌ™3/½ôRVnݺ•õö€'NLMM­­­:t(3µ€ȳ(Jvε7LL(çædân‚ÊóçÿU_Ÿ~•5š?ŒŒü÷ý÷»;;í /r“ÆÇï~õÕå7ß¼<8XšÍ`ÉSOé¾ý6˜i<žX<~„{Åþôgõ7_‹úס ‹ET ƒÅòBCË…¨@º‹åÄÙ³'<žS}ÔÃm CCCýýÿüä“Kf³!³¢¹ÙpèÐ}‹¥!3é·ß¨ÒÒ*n…¿ùšYÿßä¡©©©··÷Ö­[È#%“É›7o^ºt üsa2™¼^oÖ¤ÅÅÅZѤñ„?0™L&“éå—_€ÞÞ^“É”ÿŒƒáúõëYó,,,¤oi‰‹¬þ“ÜX3þÑ?MããJØ\íÛ`X/+cÆÇ•ryãääÔÚÚÚÆFÉÈHª+F~†¢gfjQ@’ÌÉ“ëããʲ2&–Y,hš`ó›Ík$ɃòPH2›Íki»(gQ š&Е ‡eccJ³y¦ ƒA©Ói'''ÍúJ• åccJƒa}zzñ…ªššqÅÓj7 †u9„tB©'O®‡B©.vlLIÓw—­C‘b’dÐòwh©ÚÕU‚$•*i2™îÝó¡m”ËhšˆF©gŸ=’fåAÍh` d` ddä»x$j.ÃzÚ.k¡¨[@.ŒFãè¨×hÜv0KÆãtžwR¸ŽîwtÑ-–Gi»(OQ·–pX†–gG»F£qrÒGÓZA5–©TI™l¡¼üp<ž}ux´d3wÅUš&Ð’žË#ä帻ìúÎEÝhš`£*Ô‹¢m76®ŒŽV°©ãã jõ¶›Í\žÖl^㦚Ík## Ôëjµ*Url¬„Ýe‹µiNƒÝ---Õjµ33‹‰M]XXÐhŽ ×ËÂayfñ´ ,ÿ.â òž:ßÙFãè訑Ó„Ãa¹\uûöÖÀ´ /ÞÙgr1™L>Ÿ{dqqñ™gŽ|æwÂÙ1 i/ªLOO׈þq™`²ÃÎK³GB¡V«-ø‰°ÙAýðää${$ Õ‰~þ•  'F£‘]__‡ÃY:/ ,@Nžþyö]¹‡ÖÖÖÊåÙ£01`rÒÔÔäñxÐ85 Õ××ïÅYŠ7Ø­V›H$H‰×Óº“›áê$5û]€œ Úô[^¤¿ Ôv\EÅÙÓºÛÎDbªžÿõÇ‹pÑv\EŽãɶqô¸œûDIâ†aR3ë[›Ù`{7CmCø¦Ðð>èøO0LÐaslFÁ 'õu Ή ·,sªÓÞÖ×ncã›M²Ø@’8 ÔÞÚãçß?Ю¿åÉêì±ïÙÚm³»®è޵Ûì7¬(­Ínï'hõ°•½ÍîºÒí6û kÇñ>èr8Pš¶ýŠ Î[Ù ž6{Îoƒ÷bjjJªsÀà`iKK¾@ì‰ç öO X‰ÁH @b°ó§åºBIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inexpo.png0000644000076500000240000000516312536324472023441 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ %IDATxœí_h[Ç“?v3…E6cµöÕÔ®B¼AØÄVú \Ùõa/›ÂDÞG…–­à‹´RÔ>Þ‡€wŸRð¾Vî…Š‘ÔFì¿lË5MIÛ¤ño' –NÕÚ9ûpÒÉ4MÒLfÒÓ˜óy(3g~ùÍÉùžßir˜>9ü~C{ûW‚ ŽŽtÊf|\¯­Ïo„¡Æ¿)N/Ò˜‰ÇÏXL‹%U´ÙÖ%ËPH‡O¥cyv²ÙÖYiö&J°,â8ÄóŒôêëÅúzxž‰Åtø8#’xry( Žy^Çqë<Ÿlky¿ÎÑ©¿_ÙíÊB RÙŒb1BHÀdWV˜ñqÍö•e‘ 033zìmó_ÀÇ,‹¾û.5å—ÊU€,“ =ª vyž …ô9R®âAØlC!½ÙœL5••ÉŽÏóŒÜle%U`Y´²’nSZÄbº´ÖŸ˜ÈÐø*Ç¡£G×gf²NÍçŽCããºööu`Yd2!œXð€aYT_/¦•ÛlëR²ª¬y4”±XjÜÂSÊʬ–ò«‡A5Ó`Þ¿_”úæG©|ÁóÌâ¢^ÞipÊÍÖÒ®â‰bÆ ]ä… 0RÖ-ØŠ 0Ù¦¡ÊÖÅ€xòÁlF¡~e%9çŽÅt‹‹zðû --_9­¬€Å"â÷²õ*Ï3uuëß)]šæK]Ýz,¦Ãëé Ï3f³(õñ­Waó4]MAùR_/®®2¡P†%• 0—yŽÄóÌÌŒ¡¥%ëâ™F€²Íús|ÉqˆãÖrø¤P8ÏŸ?S鄘ÃÃÆáaãßÿñg|ð³——ÐÁãŒD"Êßú&˜D"¡Ò…†‡mm¹"t7séÒ¥ÿüöÛ‘—/Õ8¡)¨@BsssÜô´J?„×¥õ<@ÎÒÒ’^¯ß»w¯ÊúÓ(¹¹¹C‡™9N¥*@ÌÍÍ577'x^¥*@D"‘ææfõ~¨2??OS1ðˆ¦ bð<§@ê]Q O@} ¢ë€BÀù!Ä/-]ì<‘H¤©©IWT€BR·oŸJWTÅ „æççñ"€_ZRé   §@@()ÿMADÀS |LS¦¦¦ZZZ´òF×Ê@]½zW{_UÕÒ»wjÒPF45 555øTeë@)ããã6›a4û¦ @SSS'NœN÷UU©tHPÆ‹/Z[[¥Sš‚v”OŸ>ÅãñÇkè“  €p8ÜÔÔd4¥š‚v”P($Ï? E ¢ßPÀÓ§OÏ;§m…iäËÇ'''OŸ>-/¬Ú¿_¥[*@¾ø|¾“'OVnþrð»·oUº¥äK Hëþš@È „^§•Ó´C¤}$ASÐ166¦íG@T€¼ðûý‡ck¹úDŸlÏòòòäää­[·¶Võí›7ôÿ‚ŠNÆ ¨VP¶ghhèÌ™3/í?p@¥s*À6,//ƒÁl+€·oÞ¨ôO؆¢æ äFE¯×{áÂ…l4ŸÏg0N:•Í€¦ ""Šâýû÷¯\¹RŒõ—]dw‡Ã‘£†ª«ß¼~­æ.42ƒ»ÿåË—sw•­T€lФ†ÑÑÑÎÎN†aîÝ»WXëkB9F€úŽ/Q}ð Ê (£ïLOO?{öluuõáÇçÏŸ¿{÷nkk«Ê»¿zùRåÿ}ûÖî&“ 7=éz%ùÀ-Ž‹Ýîkj^©ûíèÒ@Þ¾[‘Z¼¢¢ŠÝß}À;à³$˜˜˜øý÷ÿýñ‡‚ÜÒÚw+»-Ãl óàÚ_¾,˜Hdldd¢ªJÙi­­íuu-R•”òϸ_Õ5 óR] SÉÈH…á*„É¢¾þå»Û%Ð窰Û?©¬~éÍ‚´B˜ÙY#lìöm±¬™LhvÖh2¡DBçp|&܃qž‘—°,:rd-›½Õú…eÑâ¢>7`c«õKÚ)¶,_@ÜR‰„.6Z­_©­ýj±¬@0¸ÇbY3›ÅÅE}8l´XÖ¤¹xr{I§ÙYã‘#kñ¸—„ÃFA`ä§RÊz `Y„·¿Ã[Õ®®2,‹ð1Þý›Íb"¡“—È=Hö02R12R î‘6©‹e-íTòPÖ ˆlûÑJÈ ÷wÜèÇç´SlSÖ ‘HèðöìR Þ‚ï šHèÌfgžlû2Ëí1‚Àà-=ŽÏ8ËÉO%?e‚Ààþx•_µZ¿¤ ÂxÀ%[·§•Ûãh xÔ­­ýj6‹áp…t*½œ‰ÇãÅxoyBp!†‡Ê´¤‘'‰„.‘ÐËSyÁ”ï:!Åw‡R’q8>kRñòMA[ÇÌmѤ˧AaÂPC €0TÂPS¾ë€]ÂPC €0TÂPC Ùu@üQo›+ˆ}Ãÿí¨Ílæ½ØÖåÛT”ú´ û< öL÷Û‹ ÿjü~ÛæüfZ<]•‚= =^ïÅÌEoî§¥ž†††ž@ò,ñ’@OCCO Гô“²I¾fk19v•žAèF£Ñèptuç”À~cÀ žŸ½qˆ{»»@$×ÐÙh4FÜ—$Œk¦o8šô?ãÚì:Ü?%Û°¶ý{§oп¡€¯«-Õw7‚Ã~cÀíëêö¼Ý]Ð×+OQîv|dÿwŸÓ7èǽ?{œ)£ÚŽÞ>gR>‚”Ì3á,c€ýÆ€»Áåò9û†³Žµ-à‹Äãàƒ–Ÿj·”Zv]”¥.@ Çåqä/â 3à>k·ŸuÃÌB|s¹óá™Õ.x:@›‹¤ h³mŠ@¯Ëãö.ü­»«£ÛÛö‹«vã•æñî.ŸÛû BpÆíJm”×m²c@üÑívO|íƒ}þ«9L}]í]©SgŸ¿ntxœ}~;€½ÛënìhïmXèÆc¯§£Ñ“´u{“…öîoo£äG*' ³°°@ðöÀŸìöOš{ímì€ÝкyPêc@ÉC Lɬ”`ï&šWA#€0TÂü÷o]kõWCIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inoutback.png0000644000076500000240000000625112536324472024115 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ [IDATxœí]hWÇÏ裶ư„JIFµ”¸q캩±ÝÔV¤VĬXvlu tÒÖ§Ý”LÚˆ¶„m vº-.-þˆ‚…üXȤµ¥D“6£”´dìĶf®4Ë’,yf4òh~F3sçÜ«û¿çœ{ue ö믿‚xLM©,–e : ±Píð,Ea33J~mJÙDF@dTÅEá…É™(ÆbŠX,¥bGÇ Sr~^™×ìèÔѱ‚ã4oob3S‚8Nët4IbÌ_hhH64$€$±XL^ç„-L €N—$I…N·B’©¾f냚¢0˜š*­ºj@EÓ%„­–ŽÅ4MSh4ÉDZ™EGÇ2ŽÓ……BJdmõ_@¯qœnoÏLù™ó%5@\•FC77—à»$‰ÍÏ+ „Ü’“°V›œŸWjµ©PSW—ø$‰±‹=~œià8ýøqv™ÍE,¦Èêý@ C£«:Ýܼ åš—t:zfFa±¬ŽÓ  J §’Yç;:V˜`UWloØÄb™¼…¦uuyK²¯êtt<LÖÌ{øð¡ í-ŽÍòQIbñ¸’=hPÈÍ7Œ²®¢‰bÎм( ŠÂ˜¨»PŽÌyI Ãììì¹sç®_¿Î»e‡……ÜÈóB€ÙÙÙññño¿ýöðáÃÇ·Ùlµµµf³ùå—_æÅ>EFÃÓ,Hb„Ãáááá÷ß_¡P|þù烃ƒŸ}öYmmíÂÂÂñãÇÏœ9ƒÇéD¢P_*æµP–oŠ% Žï >ŸÚl^«öd2yôèѦ¦¦þþþ—^z)ëê?þ866öÍ7ߨl¶žžžGÚÛÛ—Q?ÆbŠx<5£Û³gY§£}>u«€ê…VrÏ‚ªY€ï¿ÿþâÅ‹/^ݼ F†'NïÚµ/ç*Œ$1’Tä[ ­A±©Þ>ùä“ááá½­­­­­­‹ÅáìêúÓþý=½½Ù¾BQ˜N—{ŽD’X(¤*°è©R@ÁÇn·÷ôôyKVDâ+?W©\¾|Y¥R8p ø[+:thllì½÷Þ³Ùl555¯¾újgg'—–ˆ6 òùÔ>Ÿú¶? Ïjµè|^lÑjÝn÷±cÇ´:]©··¶¶þã£Îœ9SSS£9}šS@u† ‰‰‰óçÏνEò¬Vû[VÝ: ™L¢áϽ÷€cïC©û¼Sþý€ÉÉI•Je6›+d¢ê<à믿>zô(/Ø,²aªK€ß~û-¼ñÆ|L$G Õ%ÀåË—÷íÛW—o'E ªK€ñññC‡ñhPA%À{ü9•Dƨ*x?ÀGª–uŠ?N§“ßêÈ€›Ájñ¯×[ñªG¿ßÿúë¯ónV·u+G U!MÓ×®]ãø¹qNÈ8Z¨ ¢Ñ¨J¥Ú±c‡Ø ÉAU€†?_Ÿÿ°‘CPQ\¿~½­­MËr*й¹¹µß:©¤¿X\\ŒÇãBT´uÛ¶÷ïs± }‡Ã;wîT«ÕBçØûP ÌÏÏ·´´ˆÝмH_€`0ØÚÚ*ñ­Û¶q´ q„[‚!ä´•¼CH\€™™™ŽŽ!–`9­Ãüüü+¯¼"œ}î!Häu¤ÿX nݺuøðaÑßc¤ì4Mß¾}{×®]ÂU±í¹ç8Z²$I*•Ê-[¶WÅý{÷8Z²B^²·nÝZ9"¿øâ‹‚V!‡ BÌÍÍ577‹ÝŠu¬‹‹‹AíÜCd÷B¡ÐÎ;U*aßཻwåïå& U~ü Pžð\}=G ’ <û0÷îÞåhAš  ÜØØ(vCÖGšºÌFA¹)[–CPnÝæ ®hšž™™9vìXÞZýöíwù…‹ z@,S*•åÙæØû I„ÞæÉ Pžºê·oçhAj P6ä”M9/HM€2'9eSÎø|„ I­P°Ûí•üE ,$ååOÛŸž£I píÚµ2¯~ùùgŽ$%€Ïçëî!~ÿý÷`0h±XÊY©‚2\¹r¥³³³Ì¿!‡  Åÿqå D‰?ÀG’Èÿx½ÞÎÎNÇËüv~¾sGþ^$“IÇc³ÙÄnÈF‚W®\Q«Õ&“©üU?ÏyÑ·éH&“çÏŸçwDÙùï¸þj¢˜Ï?ü0ûÓOË`2™6ö{"^Pùý5bÕ}ó¦úþ}€êéÓçﯽfÛ»·§¡¡„'SÐtò‹/þuäÈߦ§k…kgþòWG'ÀîܹÃWk6€ß_c2=€¹¹¹‰‰‰ÑÑÑS§Nµ··yûØØØ¥K—¾üòK±v€™öo˜Jy„IKKKKKËþýû?øàƒÞÞÞ7ß|s݈tõêÕáááÓ§Oo–ý÷œ(Oœ8!bõñ¸R¯ÏƒãôîÝKùÊ·µ=Åq:W„ nk{šuˆJVJÊE¤LNNöööÖÔ¤& ß}÷ÇÞGP†z*‘P„Ãê¶¶§…éõËMMK >ÓÔ´¤Õ&ãqe8¬njZbΰÅc—gtºqC½{÷A¨Ð™pXMQûiC… €`dðûýÌIFóé§ŸòòÝ[§ÑÃÑ£j0§ÑkôôGôZ«Mƒ*ö¶¦<°§”È2rq¤ÐÚC¨pH±[‘÷y´ ìÀ‚@ã©b2=É:De6ýJ˜ z<;s=‚=A5‘PhµIyò=—™]AQz¤§ÉôE9ö!cgx€pPÆ ”EÙWÛÚžf%a”Йµ§e—GÞ ªPÖÕë—µÚd8\Ã2·Wè,¨  T™4Š$‘P$Jv(ß0’ú^P‰U—\{8¬f‚ŒÉô„—†WoZ›3×…—!Ÿ…œ„EF@ddDF@ddDF@dªwP!È 2²"# 2²"# 2²"# ÀÆïlhpú×/Ç# ZXâ—ÞjHóÖ¥xöeH/²KŸòiœeÔªa9ê[ hX¿íúþ QŸË V—/z¡_Ÿ¿ 12`0 ÁÇQÄÁqƒÁàœ.¹>»'e ê±{C#bn÷E™CдÓ`pŽŒ ÒçÍpù2uŸŒzìî>ç4 m2]9í4œÓ@Œ ˜^ð:ÌC.±ôVðÞ$RÒ2°Êå½¹¸!P""ä÷hjœû\pîŸÿ&`zÜ öw³¤û Üãy{@ß!íZÑh4z2ëÿƒ‰©Q¯Õõv7XÒnzìî>¤%12`vìIû‹Ïe]usúb¶UþaK’éi½åH›ãSÄŸ-‘X¬‰OúF+ŒF(¸Öàî3¸™Š<ô ×g t´ƒû&@|åðÚ=Òý«ï¿pÚ)w¾ó¤·'l÷¤G-12`68Ña*\¥Ë¹%p÷õÕå+”¯ø¤"¦¡zã®WCÜôÂãF;Bßÿ. aÓNC&ØxìëÝg÷”5}W„(2œÍzÏÓãn°Üx "!ÆŒ'+žä‘<Õš“»×a>¿ i:õyæeŽ ]CS.p˜Ììßï4ô¹í#C]4Mï0±zG§â© }n¶5ïÍø*sÌÿ+‡ì=];­Š Bñ‘³©›»\Vw»>§?c¡khÊeu÷ Œ”º(¡=€ð¼m´8¼àuXŒo{ ¸µ¾ï«H¤g˜b¢'‰ u§¯9]à°¤.ŒØ3÷8]Vw¿Ñh4?Fã5ud4ûC®©ÈP÷ª›OÂ{¦¾)WˆUºQ¿º9N—Õë°l3`‘HDØ 2=]Ûݽ(bD§2r@# 2²"# 2²"óH0IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inoutbounce.png0000644000076500000240000000647212536324472024475 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ìIDATxœí[lUÇ¿qìv=+„ÝK7*ML5Mµk£d ¤­@»’#$‚T„UÊãBŒì ´.r›J%¬¶ˆ¾Ô‘X !èKPLmlrw¯vB¥øÒ&¥vA L즙هcO&¾ÅÎL2±g~ÖÌ9Çßœ9ÿó}眙±ûõ×_?Ün©ÑxŸÇ ðŽ„ï Ž l|¼Š[›•è<# À3Òâ‹¢ðB™hü ‡%ápJÅ––%ºd A»ô63:µ´,á8ÅÙI”3%€ã”RIÅbý uud] ±KÐvNhñ˜òˆ” (•d,&Q*—b±T[3ûuNM¸Ý¥NH)ª„P PPá°„¢(‚¹œœŸÇÆÇ%--÷qœ",¬BÖV~ÚÆqjÿþå)?^RøebB*—SM ¾‹a@U[ò ¬P@•B‘ 5ÕÕ©Ž‹aÌbóóË5§æç3Ë”á°$£õ'& 94ÊU*)f)Ì;5/9&(•Ôø¸Äh\§är 4$ pœª«#3Ò[Z–è`U] Lo( Âáåq M=ª«ó–dæ*•T$ô¨™v÷îÝu©oq”Ë¥ˆX ‹Dª˜…Ü|Ý(#MsÎPÄu@QFGÝ5€ÆÈœY¢ŽÃ‚(ÈåÍ‚„ ŽSñx¡¶š˜ÒW²!,ß4´´uÀzÀ{ŠA¡ ªùùÔœ;–D"UàvKï+•Ôü<44è\²sc1l÷g*.M‹e÷î¥pX‚ÖôD,†)$Ýdzsaå4‰‚Š¥®Ž\XÀK*‚À”ÊÜs¤X ¥yÏ¢”@¾YKJ%¥T.°) P2—.]òz½h»­­­µµ•5ÞBÇ#óxd;ôg´ñBÒ7xcvvvnn®@™Û55Ÿ~úé•+WPÊððð?»»“É$ÈgÛ X<goeÍx<2ƒ¡‡®+$I>ù䓆ŒŒ`XŽ…I’/½ôR]]Ýøøø¡C‡H’üúë¯Oœ8±ÿ~Tà!…â.»tr¹\†$É‹/>ýôÓÙ†††¤R©Ýn¿víšÛí€þþþ¦¦&ºËÖÞ×üÞzñÅ Å'Ÿ|b43œ€$I‡ÃñÆo@SSÝîÜVXÐÓÐëׯ755™L&Š¢¾ÿþûŒÜï¾ûN*• †J%Ë:W€D"‰Dyä ìVë‡~866Fç?~¼§§'çØ@ÅXVC¸ƒÁ‡~X&“€V«µÛíV«i0<<ÜÛÛÛ××÷øã¯w5„;G}”ÞmmmE<ûì³ß~ûm__ßO<±ª…RÉÒ „ëh`¦´¶¶~ôÑG>ø`1­\„ ázÀõë×ÍfsFbsssssóFVC @À,í°Ÿ t€F`©”íéÇîÜvê#0T€ÉÉÉÇ{Œ½å¶m,-QŠ¢ÆÆÆX^FFÄîÜaiAˆ„B!©TZ[[ËwE„)Àèèhkkkák E"† µpñâE½^ω)1•Ìï¿ÿ>99™óê?/n044ÔÖÖ†ã8'Çݶ}û_~acAp088ØÙÙÉ•5–­B`³Åš.—«­­­:ß/+JgÛöí,-Knãˆ!¨$6aüA Àyü1I’çÏŸá…¸5Ë> å÷CCC2™ìàÁƒ¼Ÿo‚ð’$OŸ>ýÚk¯qrý‡Éö;XZ„ƒƒƒ¨ûsnù—Û·YZ¨ü›ò###}}}'Ožä¼ûsBÅ pùòeŸÏ·°°ðÍ7ߨívNîe³}Ç–NP™!hddäÍ7ßL&“r¹üÔ©SE>ä³Ä”ƒÉÉÉwß}×n·¯_»sH¥yI’'Nœxûí·7¦õÙÏ‚*í~úIzâœC³ù¸=7'>´ I’gΜYùþúQQ¸\.©Tºóý|ìØ¹“¥…Ê€—î{nŽ¥…Ê`ã»?'TŽ_}õUWW×G1¥øã?ü~{{ûW A)ÖãfËÆP!ëŸÏg06þ\vÖÔÌÍβ±P @QÔøøxKKËÆšeëCe‡«ªª6ÉÓÎ¥R  îÏËêwgM K •#/‡CŸ'”½übâs.BPÙ¯ÆÆÆžzê©Íö´Oñ”·P511AÿØÆS³kK å-ï+€Ù[·XZ(oø8¡ žŠ¸råÊO?ý„¶u:óßL®^½ºoß>žêP³kK'Øìà÷û{zz‰$‰·ÞzëòåËt.ïùÀ>mj I²¯¯¯§§ç™gžA)æäÉ“Ÿ}ö†a‰D"îÙ³‡×:²eS{À?ü “ÉL&ÒÑÑAQ”Çã€éééúúzô§o|Á~´y€n²9r$£ÌáÇOŸ>}ðàÁ@  Ñhø­ÿ­›7+ö¹ Ôý³ÿS ½½9Ïç+‹‡ ³‰Æz¶£×ë5ÍÙ³g9’=ÅÄ0ìðáçNúí·ßÞÿ}>jºÌ®ÚÚ[7o²±À³„B—Μ9síÚµÑÑQ«ÕšL&ÑTç½÷ÞËÙýííí³³³<ðï7ÿûE9ÿkâèèèÙ³ÿ~ žÞß߯Õj ££ãÇ|õÕWó­°0 ûòË/¥ÒMä¾kû‚µ†kæçŸGÃá-ûnÝšÂ0¬¦f/_5Y3ÿ‡’¥`7Ù…0–x½[õú$` ûúoÞY@(ûûü¢Ó%XV¿ƱµAØô´ ÒoûnhX”Ë©éi™\NÅã½>I˜ß¿Fq†™‚ãÔÞ½‹ùÊkµ÷pœŠDª¢Q)*¬ÕÞËØE%…+†Z*—LMÉ´Ú{©T÷ÀïßÒа¨P‘HÕÔ”¬¡a‘NaŠÇ,Oë4=-Û»w1•¢”©)A`Ì]º‚pœB¯¿C¯ª]XÀpœBÛèíh[¡ ãq 3…i.^ïV¯w«ß¿…~y¤×»3vi ‚ö€’È÷>Zf`A þŽ]¯Ofì¢2‚öšx\‚^ÏN§ W0£7¨Æã…‚D‘'ß{™™å¡WzêõI嘻´A{A`¨?E™¹Zí½ŒA (%ûõ´ÌòÈü~)uUªû 95µ•Þ¥¿ŽE£Ñõ8·"áq!††ÊŒ Q$ñ¸$¯b†ò5#ÜuE•|ô©)dôú$'nÊ3W…“.Ÿ8óŒ(ψðŒ(ψðŒ(Ïw°I=€gDxF€gDxF€gDxF€g$Dο\—æåó‘¢KÿÇ é¥@áâ £ÞÿÔ­`õãmn8ñU×¹Çn“Ý:×¥Ê_0êìV«{áXÑ9h6ï°ùJ>že e 4`qY{|ÞÓcËz„ ŸM­¶9ÝjDwº|6ƒìže‰tï üë¨ÃlóÒ¦{¹)}6µÚ惨³Û`uËjP«Õju–Xª=&p݈.'Mºdn³*™úN–¥eãÝœ ¾^c€ãBªŸ{ìꣾAXŽf8Hó_-àÌ몮si× …B¡wt+³£î .“ýøljs0U,ä±ÍÙjSI$ycÚÅjb#$>YL$êÃ&’ø /[÷ÁÄ@²C M«á %dÓBLúO꟩&†E`æ>œ2 …––iç´3óy€ùsøÍ™ß÷œï9§ ñåËÀÇ䤶¹yc°£Á]¥“c†xó¦$·1åÚ0£ €mæE‘½ðc&?ÃaM8œP±®nƒ/é÷kÐ.¿-t§ºº ’ärvÅL$GQMüW¨©akjX i"Ö í]áÅÊ£’…@Q,Mk(jƒ¦¹¶ë4ša˜œÌîrJ@ËqYXÁÀ…ÃŽãôzvy™xóFSW·N’Ã@ жý+ m’ä~øakÊÏϪx™žÖêõÜÑ£Yô]š&üþ’4–›õ l0°~‰Á°š²²DçiBXlyy«@’Üòrr™â"Ö$ez:]‡Fg)Š;zt#H95ÏÚ(Š{óFÓܼ$Ééõ24$ H’«©a“Ž×ÕmðfUVÂÞP„Ã[ãšz”•¥,)G³ eB’\<ž.WÓÓZþ0 ‘jšÝ: `¯@& œß_²¼œ˜s‡ÃšH¤&'µµµëÅ-/ƒÅ¢{Ùy–¦‰êê]ïT]šfJuõF8¬AëþMË·ñgaû4]ˆjA™RSî¬~ÿ.K*†!(j÷9M€¶¶6åâYíYjÖŸæ#HŠâ(j-MLU€L™õx-&,6 r»un·î_—ÿ‰6¾7Ðñ‚Ú˜:|øÑ£G÷ïß¿ÑÙ¹ºº ú_Eeø 1ñx\|”}ãvëššÒõP\ÌÎξ|ùòùóç—/_.--€óçÏ?~<©Ø÷Ãgq T-(aê>|¸3éBDf°¯ ê÷ÂÔ?xð¥>ßÕS{@–­^ˆ¢â4-æÒªðúõëîîîlS™}P@Ùïïï?uê– (z%,>ûŠYå “¶/Þ‚*vçáQ¢9̾x RÜ:àõë×===}}}V«Uü¥éOŸ@\eõ€™™”}ìÎã X–u8·nÝÊaö©DFP/^¼Ðét/^ÌaLúÓ'‘”²›™™éëë ˆÂz>žsóAˆ· EðìÙ³+W®šù ä¿øúõëÌÌŒÝnÏÇ…”—úøQLù÷—ËU___–êYrqˆÌ>(A€±±±ÖÖVܵH‰Ì@þsáÂ…<Å?P^.2‚̘˜˜ÈŸÿ€jA{â÷ûÏœ9ƒ»é¹±XìСCù‹¯ZÐ,..æUñ$ç¿à8.‹UTT`¿Ç4ȹ,--iµÚüÀP^Q!2‚œÈ·ÿÀÇDF³±X¬²²w-ö@@ª¥#‹5üÑÑÑÞÞ^”zì5€ÅwïD>Tè477÷êÕ«•••ÑÑѶ¶¶þþþcÇŽá®T.)\ø&ßÖÖ¦×ë 3õ‡ªªß½¡€@mK“ÿã)Ý«b"à`zzúÏ?gÿúkGÿª¼`›|Î!ž>ûŸ/÷ÍÛ·ÿóx¦Ë˯Ÿ8v¬¹º:»ÿŒÿ‡úC\‰wâ,L$Oic£¨.Œñõ/²u€üÉïpÑÐð·ÈêÐ,Hb†XXÐÁæÛ¾-–5½ž[XÐéõ\<®il\eÂçûF>#ßwüË#=žR°XÖ’vùŠîY‘ê}´?¯ãM¦±q5'W®í3÷$'M> uÆŒ*fT0£ €Ų`F¹ë€Aí˜QÀŒ*fT0£ €Ų`FÃIDä÷Ÿj6ùé÷ǯö(}Ç“að­  Ø" ÆŽ¡¡£×nêtF}óÚM¼¸Qg§i‹¬ß?8Ç€Áøïð‡P(äv€­ÛïØ tý’ÔAZ»`p,eNŒC›]+ …z¼cƒÐr©9M/—­i¬•GÖó}¥%'·—8èú¥½ ÖØ|©Å52…h0-‡wdÎx¸ÁLˆµæôù‡‡{Ó‹¼Ol®®aÞ™ŒCº”: J¥ºD–Fs-¸ÞîhêÑ·®½›ô¶ YtÌ–ÈîsnOžwlºZ3w…†Ö.pLfª@ Õ%B²uÇq‰þ·6w9q¶{Ò¶&;?W÷ØMíƒ]Îî³ÇU5]jqLF'Ú…Ñ\oùuÀÙng—ËÖÔé¬ "ÎÎNgdó²Û®~¶ÓÑ2Ø.¼¤]º¥‚d= :ü³¹Ùæ—­Ùüópšöfl þøÒœàåÁ`°»aóœÝ¶æÄ g×ÖÏØ-ƒf³Ùlîõ@Cw0è¬M”4›ÍfsóÈ%{{ 3¶?™t:6‹v$ˆ`0(ÙÅvâõþ£¡áoŒÀNÊC3ª˜QÀŒ*fþçݿчÜëIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inoutcubic.png0000644000076500000240000000556312536324472024307 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ %IDATxœí_L[ÇSZÙÉ>ÜŽø¯Ð&÷ZÔ¨x‘Ä"`UÞ4Mî&ÔÝ\|1M4û²˜ØX}Ðbz%$ºæfÅø Ù¬%ñ>èI®PCÓjX „ÜPˆIi«¢L5Ñ0\Dföá”a(´´LÛÓvæó@¦3§¿ùÍùžßïwδeˆ?>úû•uu_1:€n¤Nš`bp°(½6 90# €eòMQzák&ªŸÁ "ŒªXUµÀ·S —ü¶0;UU-$—¶‹ÈgR€$9Šâhšàÿ@y9[^ÎMÁ m¯ /žP™ŠbiZAQ 4íká¸N0¨†€þþÔN'”—B*Ðh¸`PÁqÀZÍÎ̃ƒŠªª¯$É1 á÷!kËÿÚ&Iîûï—¦üüþ”ÀËÐR­ævìH!viš+JrS. ;6V¤ÑDSMIItàÓ4!l63³ä$73Û&¿1½?4”( ÑQŠâvìXðûãNÍSÎ Å *êê€$9µšC‰•IråålÌþªª>Y•”€0ò‚`p©n¡©GIIܖ£Å…BÀW͈>dÄßäÈ—[4M„BEÂAƒRn¼asMW¡È뀤`‚ϺëÕÈUÉd’„ÙYY|0 ¨ÕišI’ä"‘D}54¤äfflaˆxÓÐÔÖ™»É ÑpccE33Ñ9w0¨…Š ¿_YQñ•¢¸™0Xt-+Ò4QV¶°ê•ÊKÓd)+[hÀ߀AÐ4¡Ñ°ü_y–OÓ…È)(YÊËÙÙYbll•%õú‰¦ ¿_YQwñ,G@ Ä›õ'¸IQEÍ'°) °6###gÕCÕÕÕû÷ïc[ r»Un·ê‡Æ?£o4´?w6FFFîܹó¯ï¾kii™››Sÿü3:´rC D$oeݸݪÚÚDŠ…‘‘‘ÞÞÞ'Ož466×××ïÚµkÕ–ßh4Äu œ‚–!ìú[·nÅëw‘½Ø×9õyÀË—/m6[ccãÍ›7Q×gÁ79¢ ÞokkÛ·o_òïÒPT„¦ÅœW^¬·÷@dïƒ,ˆèý´ uDö¾†¢D: iÄ}9­ŸááaŒ™‡G¢°,ëp8l6›ÈÞŸ‚$ºxöì™R©<|ø°È³ÓÓÓ Î‚×ÃÃÃ7nÜhoo'üßS’\ BÉçâÅ‹{öìoÚ¸Q¤É Ð××§R©Ž9’kôô´H Ò€eÙ»wïZ,–\H>i €†mmmº Ê)(21üå”iþiA*ë4üÏ;i½Ë¿±´túý{1¤.—+Ã_dïƒtxôèÑ©S§rgòÃ# >}ú4<<\__ŸvËKKEZ„.—«ººº$Þ/ZD § µaYöÁƒ'OžÄíÈê¾*¿9­MF˯øTà¿@å÷ÚµkØ/3™+¿ˆÒM›DZ(pz{{2gÿý»w"-²™›þ§‘B Óù䔘LçSPò"ÿ@ …üéHA…ùy˲N§óìÙ³™¾ºwSS"¿T˜àr¹”JåÁƒq;²6…)ÀãÇÍfsîþoÚ¼Y¤…àóçÏ>Ÿ/;å÷ÝÔ”H (@vÊoº(4Pù=qâDvN'§ X²\~åKÖÊoº(¨u*¿W¯^ÍÚEmÞ²eêí[1 *²_~Eö>’,Ëvuu566âv$5 G€çÏŸgõ»yË‘ D–eïÝ»wæÌ™,—_9EéééÉ—›?1‚>Ÿ¯½½ýüùóÙŸ}Ê)X–mkk³Z­»wïÎþÙŧ ¼_ äsèСœýæObò;PòiiiÁµôݲu«H y,J>.\À’|oß¼i!èííU©T&“ ·#¢ÈWð&„DSÐÀÀÀåË—¯_¿Ž1ù ¤˜‚øÞ¯¬¬ÄíKÈ3r­÷ŧ |ú}ÀÀÀÀ•+WZ[[÷îÝ‹Ýměׯ%ñÿ‚FGGûúúº»»[[[sdì§‹\OA£££·oß¶Z­ …¢­­-×zë¶m"-ä\ŒŽŽ¾xñmÏÎÎvww?~¼­­mçÎx[•_Ò50'ÆN†††~ûmä÷ß—žŠÀ÷xqq1¨ÕêœíútA<|(ö?_®›W¯þçñ •–.{üÄÎueeküÏòÜáÇ¿P¿Šë@âõë×éòfx<Å55¢B/âýÏõ"\ðäýçx1ÿé~ÎÍ‚²Ã*X|Ú·Á0¯Vs*µš‹D55s Cø|Pc”g„{H’Û¾}>^ûÊÊ/$É…BEá°5®¬üóµ”®À0ê©HD1>®ª¬üÂ0„VûÕ`˜ŸoƒÁ0¯Ñ°¡PÑø¸Ê`˜ç÷Ŷçuš˜Pmß>+Ñžñq×¼’®$É¡Çß¡GÕÎÎ$É¡môôG´­Ñ°‘ˆB¸GhoO±ÇSìómàéñ€Á0ó’· éH‰xÏ£å&ï¨Ókjæb^¢6’ŽžHDÏÎïA`FOPD ‹2O¼ç2 Û#†@ô¬©™CYNø’·#é`G@UTx´²òKLFeíYùxZa{ >ŸU]­ö«FÃŽó/ù·áp8×–$b¨TÆ$$‰D‘H‘0•¯é®8.峫ø$SS3—Ç¥›‚VÖÌ5IËA.˜‘ÀŒ,fd0# €YÌHw#È€YÌÈ`F3²˜‘ÀŒ4ðØËËíÜ^€‚Ë¡?•/òÓƒPÜv°¬õ5O’ÆWõ\+_FBKÀ,~ãtR¤‘ E€ÖÜ9év˜ÀäpOvšµñNÿ§Y§³Aë$¢¡G§ÓÙ½)žÍk×éšü÷$ÛáÿÅ™êG}Zsçää%cŠïIvR×®ÓÙÎf¢y±o¼ÿþû?Àá^’Èxi²ËÒÑd÷@ØÙ¼Ô2jà ags­Õ.k­N‡ÄòÚ›:LB# 5wvšµ«[Xæ•nÑJtG´y˜÷U·ž‘Ù«O£ãÜí«ÍoÏáܹ˜16X £'î%kÍ‹¡5999yÉèíéÓ±ºQÇŸ¦ž.]–Ž&NHãŠ.>˜2úCäì `YìimÝ1“ëiÂ?Tn_ÑsÚoMà$›?Â?@…>åþK×b¶1žv ‡ÞûV×ÒAК;3™–¤9 ŠA«¯×«¨S?˜¾M]Ðu‚S­¾|+†zø•+…!­ÕW@ “s`cÃðKìlÅÛÓ–†äƒÞØ`AYá€é”›…áy2´à8.z›is•þöÏv°ÖÚù¹·Ç®kê°8m8ŽÛV{ÌäzÚŠhêZs½â×lN‹ËZÛì¬ BÎæfg(¡ ´ØÖfuYŽXtó@³ÃÔÑ$ôÉžÁµA†" ÜuZ_guËZ§?Ý•`8müëý@àh¯>JïÑ@ `‹ŽEm“ÝÖºè§eñ=Ú&»ÃÔaÖëõz}«Œ¶@ÀYm©×ëõúº§ÇìMÚ¸àé¥h[k…“?'²¿ßá7/Ú2û3Yˆ@ 9ëkâõþÉhü£Ø‘gA˜‘ÀŒ,fd0# €™ÿ#¦)c÷ÕoIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inoutelastic.png0000644000076500000240000000660512536324472024644 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ 7IDATxœí_lEÇëØi¼¥UȺÿ¨c[ õŸ’‘FmL"µˆ"ªö®U"PSă; Q*sá¡É€(º‡ƒóC¦B¸¨:Q‚¨ÚJFIc$Úâ$MdÇNH[oÓ¦õæ_³sãl6vìØY¯7Ùìç!ÚýÍx¾;¿™ßþÉ£££ mmêÚÚGV@rTRW`µ“c†èì,È­My£ô‰QuæY±{áÆL<~ªã*VVÎp9Þå¶ùÞ©²r†$QÎ~ÄJ& Hét(%¸¿`0° Ñ(18¨ÂÛ Â‰Ç—G! @§c£Q•N7ÆÛš]§¹¨†€¶¶ìŠ[ ¨ÊÂPT!„´Z6#:;U••H1 ÑÓS€­Íÿ x›$Ñ3ÏÌMù¹ô¬*°dhš¾wï^YY™#]]j­Y­YôÝh” ҸܬaŠbŠŠ»šµkã~4Jð³Åbs5’D±Xbž|òî»ï9rä÷ß_²…ÁAUBëwu¥ëÐø¨N‡¬Ö™žž”Só¬}‚N‡:;Uµµ3@’H«Eرà!C’È``Ò++g8gµv-ð{CyñÅ¿þúë;w.ÍÂààܸ…§kצÌÉ?ªÓ¡p¸Q3¬ IÄ¿yÜqËrƒsªóÉÄÄD8v:üñÒ,D£××À``u:”êºN>JQ,à °*„žžmÛ¶•—— LMM-ÁÜ×]xŒ\ðЪ Øl¶¢¢"ƒÁpóæÍüW€$a|| 0<=“ !4M ·²dÚÛ555éz¨p®]»öÑG}þùçx!´ÿþÓ§Oëõúï¿ÿþìÙ³gÏž%ˆ%Þ%,¡¨»ÂPþ.ˆ?AUUUW¯^5™L~øá©S§–Üú °õ!Ûç9Ï…E-‚¦ip)õõõ‡ƒ ˆO?ý´¼¼\Ú¸wï¿ÀÓO?ÝÜÜLÄöíÛ§t::baU@ÍÈf³9'ƶ>¬†@ìÁƒ=ö˜ÔµHɪ`ýúõ"§t:ä/ÀØØ˜x(.hqîß¿/žÂ‘¿ŽT\PJòÓ„£ Å-LÞ>Žî‚äpsÐeþRȵ<|ø0?À–'žhAžäíˤ?‡‡Z§+e ŠQ\ÐÂ(.Hb$1yëÂ]ÐÊþ>àæÍ›>ŸÏn·óÿ7ܽ{·¬¬,?mxhhõ¾IJì{ï½700pâĉëׯóåáµÜ\±‚øá‡4ÍÉ“'_}õÕ––þ¡<|€ybëV–û?n½víÚ?þ ~†eÙÓ§O¿þúëAìÙ³ç‹/¾@qÿ˜)oG¶œÚaRˆ)èêêºxñ·7R®î6>>þÝwß8p!tâĉ<÷ÜsX†+W®h4»Ý¥¥¥,ËoݺByëÂQwtdºXAÎéï×ܾ­J{¬;vì_¥¥;`ÆýÝÝ—Ž?±{÷!–eþùÂk¯òû‹p¾ÒÒ]çÏÿ¶{÷6˜š'õ/¿äcú×ú–ó‚þu(144”«Ú,ŽŽ5v{]ø?þ¸zõ*<ûì³6›Koiiéëë{ûí·`hhè­·Þúꫯr^Ûd²­2Ë} HÀf³ñÛÃb±\¸poß¿¥ø<ÈÕó€²²²`0899YXX8::Z\\œŸßU]=!°œÖRQTT¤×ë¬Vk†S †!úú40»Ú·Ù<­Õ¢¾>V‹hZe·O2 ÑÝÿÊû~ I¢íÛ§S寨˜"ID"jœ¹¢b*a甉€WɳZ­™» †!pKÑ´ª·WSQ1Å0„^ÿÈlž€îîB³yš¢Øp¸ ·Wc6Os)|ñøù9úú4Û·OG"jœÒÛ«a‚¿ËÕab X,¼[0Ü’Ù³r’Dxù;¼Tíø8A’oãÕñ6E±4­â§ð-pù £cMGÇšîîBnñH<É4›§v9 òé‹åÛo¿€@ pøðáœÛOµ-ß±`ðõŽÝnŸLØÅyäÓž|òÉ`0866644´mÛ¶¬Î¥i^žKÁK0ãTiZEQ,ö<©ÖeæçÇ0 €Ý>‰½—³#Ÿ€Çá‹/šL&F³ø Cpq(EùG+*¦a< à”äåiùùqoèîVãQW¯DQloïn—;]>€Õjýä“O<˜aþ§‘¼›dQ‹ShZEÓ‹æO¿‹‘I€yå•W6mÚô /db¡¬KïíÕpNÆnŸÌIʼnp8œ3KEx(¿Ò‘Ï ¼BQE‰QE‰QYÅ+¥HŒ"€Ä(HŒ"€Ä(HŒ"€ÄÈT€—á¨7"u-2A…rOøË£†YŽ~N—ærŸìÈÐ8Ï(¿,^‘€fcŒL+ÌÙ y4êä1žˆéšCµÞÆšÖ—Ú›ôi2F¼ï×;‹Ýí¡Àï2ëçBïTgW^;©¶užCßÐjXúéÙ’äw.¯·Ñˆiœu ~Wþöó\ÛU¿:çðÔ»üñ6ÎåŒÛðCÄÛXãôÏYc4F×"íá —Ûïâ'&Ùô»fKNq~NÉÓài…÷C¡P(Ôîg“7þËpüeoé¼|Õû๜ò—êšÛÝuPçn…B¡Å»J-.4 …Î9<õÞ€ßUïqœ ÍÖ&)lF¼5NKg/Þ„ ×Ï9¦ê}ðõÏ–O×7¼“ÊGúÏ8}Žsœú†æl=cfÈa4{ñbæs^¤Þñ+ÀY3_©dFø:‰‰dèMðõ'-é÷Å”£îwç¼È9G¼à†fìQ|ΚETÈÒõ€ê}ðüïÊüw2ü—=àØ—£¾ÞuÙ¢ø™ƒÛ½$É[,|öìÙ••˧Ÿ¢¨F¤@”J%éV¶L"a¨×C•fnnn||üûï¿lkk€W_}õرc þüY«õž´ Ô® WýgŸ}Öx¥‹‘Xû€}€ëyÀ/¿ü/\¸€ªW=h±\¹r%ŒŒŒ¼ð MY)ªÄ0R,hnÀq\8Òk$Ö>hP€‰‰ “ÉôÚk¯á.Hm ÀqÜ—_~ùî»ï„<G­%Ñ‚¶@Í``@.ƒº jÙ›¿,hHÙ›?Èá‚´²à8.‰|ðÁ 딟Y\iÖ´Ò&&&Ìf³¼Í_´"À?þxúôiÙ½?µk—D š€çùééi‰÷«Â,.J´  òù¼ÉdÚ·oî‚TA æ¯ÄìSwA ¡ÿÝ5‚r€,¨ËåL&Sgg§íêèXüã)Ôßfffúûûºý ±öA \½zU–[ÿ ¡~®]»vôèQ…ŒïêèhAå>~òäÉ–e'Ý©j€üÏǼ_ª@U=àòåËÇo™ÿ€½-¨GŽã¢Ñèàà`+3ýý·ß$ZP—/_6›Í¯¼ò î‚4‡Jà8¾:sæL‹¿„¢» 2ãããXš¿î‚¦¦¦ÎŸ?öìÙmõ! ÙñLMM}øá‡Ÿ|òÉsÏ=×úÜ¥» ýÿSSS}ôQ(zþùç±\Èo·oK|/h§~7t~~~bbâÒ¥K¡P¨¯¯wq¶ÎÎsAóóóŸþ¹ßï7 ###xk¿SòS‡íÞæççþùgátyyùÒ¥Ko¾ùæÈÈÈvxëä»o¬H±€S€ÙÙÙ~˜ûõך¹ Õ¾k‹e›T½\ß~+õË—[faa:™œí訷AÚÑ£îýû·ò]óÖpúÔwÒ*¸}û¶\¥ÙÉd›Ë%© ãEzùwÞ ¬2Tõ< õ8$»Ï‚”ƒe‰ë×Ͱ¾Û·Ã±j±ðׯ›-¾T2¸\+,K¤RO¡ÄÈψCH’?rdµVú¾¾‡$É‹Fš6¡Ä}}+NQJí ,K š*• Ù¬¹¯ï!Ë6Û#‡cR©§ŽU«•+Ù¬ÙáXBÄâ‰Ó :]¿n>rd•¦M($›5³,!>Ê é1€$y´ýÚªvy™ I£ÝѱÕÊ•JqˆØ‚’ɶd²-•zJØ<2™l‡cµâT° éеö£;jï¨Ò]®•ŠS”FÓ=@ T2 íÙ…´3ÚAµT2X­ò<µöe§G°,¶ôt¹V—Ÿ v4ÝX–@íÐ(*Žíë{X1£a…lÞžVœõ†TÊ„F]›í‘ÕÊe³m©ðs‚¦i%®­A0.ÄÐPYá4¤T2”JF±+ß2Ú]ð|Ó¹g³fÁɸ\+²\».hó˜ùDdiòèƒ0ft0£ €]Ìè`F3Ú]lô€]Ìè`F3º˜ÑÀŒ.f ¼R¿y»k·¿)VOëKÔÿL6h\dTœ×“²Üf(÷<À6ôuÞ{#ñõ­NB::<à‡p"Ÿ·Lív¯o4ÎÙ\~žðòÙž´ÌMíö`4:lG GËOBÿðƒ¸îœçò£¾ˆ78 ttx#eÙÆ$R,1ÿ€Ýn·Ûƒ“õò܈¦£Ãëù"C“ÁraÄ&6ëY––Ž‘1åóù|> JÀÿþßû-×yÊ‘Ÿj^½mèëDØžp"ŸÏçëtç¹QD¾ˆÒ@G ñþt*ŸÏçóùQ_Ä+ãÍ”ÍæáŒWy Z*€PÓ6÷žØXœ†Å»×Àsh“ã°ò@&×ÜÛëâ±æ<7ê‹ùÑÉhÀáXhßèºrÎwžØXœ¦£_D<‰lC¡°§,Ÿr¨ç™p1ÀynÔg÷zcžp¢æaëîØMC zÞ·m PphÁ< ݵû(ºÄÇ¡bÐÓ½óFÔ-€{ð·¿ ^zƒÉŸ"à;Õä,¨“AoÄ7º1èTƒÎeÀwÊé<å{ÜñѹL5)+Ê­xž/ßéß8¬á ÄÃà ³ÿdÐîø¢—yžß7ð†'6/–#¼±µØBq³¹ ’AdkŸ÷=_̈Eé×Ó£Ìwòežù¤8 Ï»ObÔG¹1€}Çí@ÌÝ=Ž¿W3¡Íûïœw2ÔÝ=¾h.؈ †ÇÜîn?ø¢Q_dH>ÔA?€˜%+ã ǃpn(â ÇÎ@Ô×=äÙsÔµ"è×å,åD¹h¨[°#„+‘Ëå΢““q:´>ÛP÷´ v÷ yt0£žu@38X¯½`F3ÿ¬ „”¨K±IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inoutquad.png0000644000076500000240000000551512536324472024151 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ÿIDATxœíOLÛÇSZy’·¸­(ZZ#ˆO­MlS•¼æ±y/ÁÍÕ•]¼%K‚›[´¶CÌ]T]èæ–Ä»3Ü'„&íkE´„wbRÚú—©®®3oqÊt,´·íL;ÓÎ|dþ~sæ|ÏùþΙûüù3‡ß¯ììܰ‚£ºR‡gH›™©á7fu#‘eþE‘½09åÏXL‹¥TlkÛbJ.,(Ð.³Ív§¶¶-§y»‰J¦pœÖji‚À˜Ÿ ×Sz=Åb ´½+Œxlyd ´ZŠ ZíA¤ÚšÝ¯stj’ÄÀï/ìrR@IÓXFCÇb š¦IÔjjm ›™Q´µmâ8M’Øâb ŠöíO@Û8Nÿ}zÊÏ/¨Â2;«T«é#G »-,Ôä°Ü‚“°FC-,Ôh4)«©«Ku|‚ÀØÅÖÖÒ5§×Ö2ËT±˜"£õggs htV«¥ÙZ\Ì:5/Ø´ZzfFÑÙ¹8N«Õ42”8NëõTÆñ¶¶-Ƭêê€=*‚X,·ÐÔ£®.kIöY­–ŽÇÉš`Ÿ>}*I}ó£RE×°; ²ÜlÝ(ã,š(î:C‘×yA’ãºE€rä®§dÊŽÃúº,€p$¨Õ<Í‚¤ ŽÓÉd®¶šU2OvB’X¶ihaë€R xòA£¡jÖÖRsîXL׀߯liÙÔjéµ5hn¦Ð½ì³ ‰¯Âá°Ýnw¹\F£±ˆš««À­þ’E9Î[·n•ßy$-À‹/T*Õùó狎 Ý»—c¤»›ššr¹\CCCVü÷õˆÕUŽÕè‡Ã}}}.—ëøñãÂÖDŠðhýÜ-HŠp·~î$¹‡¹[?HkÀ˜Ï±cÇx¹îÞúúÕ¹D–ù|>•JuîÜ9¾rl}”E=|øðÚµk"1„„@¹·££ƒÇ˜{ëë9FJ‡Ãn·›÷Ü+[P^PuïÞ=”{…®K&’€÷ÜËÀÝ‚ª_€’æ^îTý099©R©ÚÛÛ¿Ó]©ò@QÔ£GJ7õ¬ß·c„*¹{{{‰âüðc„j ÔÝŸªY€Rw-(åéþ²e¥ ÝŸªS€²¹?w ªÎÏ&''•J¥Ùl.õÝ}xÿ^þ^P&E=~üX䓆*`||\©T–Çý÷íßÏ1Bµ ‡oܸQžîÿáý{ŽªJŠ¢Ün·ÍfácçlT•>ŸO©T–â±s6d J#Hî•-(M9s/TÉ: ‰ º\.(ï? ÚßÐðþÝ;.ªa˜{9¶>T‡È|,‹Ð)†Š ‰ ]¿~]uïþ†Ž*[Á'þR· Š6D ðêÕ+Í!] ŠD"ýýýwïÞö©w ªÈuEQ.—ëæÍ›'Nœç·}ò§"GÀÄÄ„J¥ƒõ78À1Bå 0===44ÔÛÛ+†Ï[Þ½}Ë1B… 0==ÝßßçÎ zàœ›J€i}£Ñ(t]RHÈ‚DØú  gëó‚ØÿDi~~~rrrttTœ­ßpàÇA 꿘žž¾}ûö¥K—Ünwkk«àUÝÉÛ7o8~/H¤#uü±±±v|]˜ŸŸðàÍfS(n·[ä­ààAŽÄ2æçç_¾|¹¾¾>66ÆxŽÐ•úc~yF˜á —B 0;;ûë¯s¿ý¶É´»Z­®”¦ç ìÙ3®ÿù²h^¿þO08[_O@kkgcã.ÿž\äüýÚ_¸5 öæÍ¾jSÁ`­ÙÌi ÷ú‹. KŠü<@<˜L¿s¬¾XfAå‡$±åel¿í»¹yC­¦——Uj5L*Ìæ/$‰E"{Paä3ì#8N>¼‘­¼ÑøÇéx¼&‘P¢ÂFã׌]TRºIb¨¥’IÅÒ’ÊhüJ’˜N·Ùܼ‘Èžææ †ŠÇk––TÍÍ̶xìòŒNË˪Ç7 %:²´¤"IŒ½ËÔAÒ9Çiôú;ôªÚõu Çi´Þþˆ¶5*™T°°#0å ¬ k#‘=ÌË#ƒÁZhnÞÈØe"HzD¶÷Ñ2°ú;jt³ùKÆ.*#éÀL*ÐëÙ™#èÌè ªÉ¤B£¡ód{/3»<‚$1ôJO³ù r9ö.GÒ#€$1ÔeQöY£ñkFFiÙùzZvy4"%ʺ:ݦFC--Õ2»Ì¯c‰D¢÷–'.ÄPªÌ0[gÓÕ‘ U×ó$½0Ñ”bâB4µ›¶Ï9œ`ëLðZÓ¿ãpZ<—›ššššB`²G Â>Ú·C›ì~ç" Ì>\2°h4Zêkä ú“Éô;¿1#W;G/úŸô”3—Ð9 è -à ù•רBÀd÷3æ2 öÇÕ¹Ðõ<‰ö]‰ü¨ÆPQÈÌÿgRHuŽsIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inoutquart.png0000644000076500000240000000555512536324472024357 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ IDATxœí_h[Ç“&v3…}¸‰õ_Ú”S±ÞX11©Eû¦Ü>¸ Õ]n}P"¸û².X6‚>xS饈¸"XñAY¼)xd¥…‹ím4!Qú/¥\ú!ÿüÛ‰‚Òé­µ3ûpâtš&mÒ™ÉifæóPæÏÉïœ9ßs¾çœÌ4C|øððá÷kÎ/ € î(‘ ibp°DܘòFí˜QÀŒ6÷¤È^¸1Ÿ±˜&K©hµÎs)ÇÆ4h—Ûæ»“Õ:O’¬hQÌä!I²F#KQ÷*+™ÊJ(ŠˆÅ4h;#œx|yTòŒF†¢4Fãxð ¸aU ÊŸÏ·oß¾²lÏÓâCë†aîß¿öìYÑóZ_^>õîŠè>ŸO¢áW`íƒBxüøñ±cÇÖÎâ‹ü`Yv``@àÃ#ÙX_^.0‚üˆF£Z­vË–-RW-he¬VëÚôP‚OŸ>µÛíW-h$Zq· ™ÿ@___mm-I’Ø/32ï¡P¨®®Nºøå6Œ gX–´Z­Òeñîí[ä,€¤P±³¨ùK:U-h9¤[s¨”• ¢ [ 3· ÙÞèïïGÍ_Ò |ûæú\Pfü~¿ÍfÃ]Š•‘§Ÿ>} ‡Ã’.Á6nAžø|¾ÚÚÚÜ~ûæÀò §§çðáøK‘2 `þªe¤`þªe¤ˆüä·@þsùòåÂ\ׯM›Þ¼~-$‚Üz@!ýÖ>ÈO€ÞÞÞ"ò™ÈœNgÁrܸi“À² Àþªña¦³³³±±wAòC>­Vk·Û×ìó?ÙC@ÍÿÔ©S…tÓæÍ#ÈA€ÞÞ^NW`÷G¼~õJ`„¢ _½zõܹsköùçå)n†ioo?þü®]»°@é„̧¾¾WmAýýýEm>ˆb ¿¿ÿâÅ‹W®\Áe>áT”ÿÐßßéÒ¥ÖÖÖÝ»wã-ÿ«—/>Td¿œ;::Ú×××ÝÝÝÚÚZSSƒ»8"P44::zãÆ––FÓÞÞ¾Fj³àG×t}öìÌÌÌtww=z´½½}ÇŽ¸ËµÀÏ(;Ì ‰€S€¡¡¡_~ùí·ÌoEà*½´´T¯×¯µª âÁ¡¿|¹j^¼‡Ê˳¾~bÇgEE¿e^xþüãÏÂ*xùò¥X¥YÁ`©Ý.¨ ãExù‹f–+2¹€ ›íwÅ_Ó³ I¡ibrR_ßöm±Ìéõìä¤N¯g“IÝ>KÓD8¼%F>Ã?B’ì¶msÙÒ×Ô|&I6/I$´(qMÍç´]”R¹M¨¦’IÍÄ„®¦æ3M&Ó‹eÂáuËœÁÀÄã%:‹eŽ;ŸžÓirR·mÛ\"¡EG&&t4Mðw¹2(z I½þ½ªvf† Im£·?¢mƒI&5ü#ü\zKƒÁÒpx÷òÈ`°,–¹´].‚¢{@^d{-ßX¨½£J·ÛgÓvQE÷ŽdRƒ^ÏÎA¯`FoPM&5ƒœ'Û{™ùé4M WzÚí³Èåø»\E÷š&P{4ŠòÏÖÔ|N„Ñ0€Ž,}=-?=ê á°º&Óƒ™˜(åv¹‰DBŠkËŒ 14T¦™FŽ$“šd²„oå«F¹ë–Í;÷‰ g2vû¬(W®-3WD”&Ÿ†:cF3ª˜QÀŒ*fT0£ÜuÀAí˜QÀŒ*fT0£ €Ų`FÃJBü§ï+¿òýOñ¬é`Qê‚9_4øCe>Ar!sFâ"Q0¿ ´ÕC}[ zï¸){©ûÍf³Z£ˆ†³Ùì å™[Èc6›{¢‚‚`¢0ò˜Í¯·ÙŒhö¦nƒ†þûB[`A"Û…h§«£É€„·y!e*FÞfG‹|-³ÕsÈÓÔQ߸ÀýJëÊAÐñ¾ªò˜›½‰Çl6›ÿÝšž‘$îŽXG¢Q@ÂÛìp{÷Ž›B=ÿƒ³iÄÖà‚¦žÐ[æ~c:~/ÍŽ®#_e yšÀ•gp¶F£©“!¹©yk*ž¯ÅQÝ^øûŸøICáa×ÙÔu˜œGê}]þ$"ãP³mÉÅ™¶ÖÃx$×G‘q¨ßšw“iá#¶ø^¤Ò.êK@¹÷„¿šY ¦Ràœ†šªª!<¹¤•&^ø º*×^oªª^h¾¹ yÌŽ–êN4jwâª}À¼°5|7oz×^¨§\ ¹»€­Áù õt€«³ ^“‰Ö,˦¾æ_ØÌpbÿßþsZnâô˜›:\^÷~–e·8ŽÔûºüñÔ‰¦~4ß nz¾ßíuùò ²ek=ŒGÐѸ÷&zq9Ó2’‰z@¢ód•³Å¾gÕÉÎeÔõ½‰î­JÑ{8‰¸S ÓÔäiƒgê„—ó S“§­¾ãxUUUUUklîHžAøG/À‘,´$# "‘ˆ4‘s"úƒÍö»ˆ']Güw›$œ9ŠŠÜ¾ 2™«Á×Àù¼k~ÈM°¹ýœ¹Heb"Ãu€©én¤ w!rFv= ØPÀÌÿÕ® jôîIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inoutquint.png0000644000076500000240000000540712536324472024357 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ¹IDATxœíOhÛÇ“?öe oqë¿´©\M[+ÄÛVnbS‹ÊÛ(¯÷AíBÝUxË.,Ä… 7…^‚ ‘dz®t¡¼  îÃ’HòR¥¶Mí»MR„üóo' J§ÖÚ™·8qó¯Ig&§™™Ï¢ÌŸ“ß9s¾s¾çœÉ4‡øðáàÃçÓØí_1;*Ü; @ÓÄä¤ZؘÒFi˜QÀŒ¦ô¤È^¸>õŸñ¸*O«ØÖ¶Ê¥ …Th—ÛÎt§¶¶U’d»ˆj¦ H’5XŠ"¸¿ÐÐÀ440@QD<®BÛyáÄË”G¡ À``(Je0¬RTº®3ïë"75Màó•—аlV ×³ñ¸ŠeYšŽY\$&'Umm_I’¥i"V£hßÿ´M’ìO?­ ù¹ãe/SSŽmn.£íR ©‹XnÙ°^Ï„Bj½>m5µµéŸ¢ˆÌd‹‹k%’d³ÓTñ¸*«ö§¦Š5htÖ``››WÃá‚Có²=Á``''Uvû*$«Ó±ÈXP—€ I¶¡É:ÞÖ¶Ê™Um-d¶†ª _ë·ÐУ¶¶`Ê̳›H×kfA¼ÿ^”ò–Fµ<Š ("‘PgÞ4Èr ÝFYgÑ@1ïE™”MœënÔGæ=¥P H––ðAÓ Ó 4 ’'$ɦRÅêjjJÃ=È…¦‰BÃÐòæb€½¥ ×³¡zq1=æŽÇU‰„|>MSÓWƒ]\³™A×’{–¢ˆúúÕ¼WªLMK¥¾~5W¡y÷AQ„^Ïp÷xîYø~˜ž‰bA¥ÒÐÀ,-¡Pž)MCþ1Eá°¦©©àäYiePhÔ_ä¤ÁÀ +Eb*d333JLÜÑÑÑÞÞÎ';lä÷ký~íß{þŠ6~ÐëÑq\333×®]û÷ž=ËË˺ß~C§JÙà‘J¥øGÙ0~¿¶³³X ­333ccc<èéé©©©éêêÚ·o_‰ŸýA¯ϯånAOŸ>u8===W®\)½Þ9xÖ>`Ÿàý>Õ¾Ëå:pà`š‘ÈwšUûCo0ð,†L¤ö EQ¤ßX–}öìϯΠÁ³öAÄb1F³k×.ÜÉô˜œœlkkééÛÖº:ž¤/€xþŠ­‹¨€ H\±;Å‚ÖAÔ„° ‰ÿÀóçÏ- ök,‚Ä[ÀÜÜ\KK‹xñë¶mãAÊ|þü9™LîÙ³G¼,Þ½}Ë3‚”ˆD"»wïÖjµ¸ R )  …š››EÍB± b„B!Q;P,¨8sssb·þHV€ ôÀ „Iöû€p8¼{÷nFÜ |ûæò^P~Âáðæ÷°Á`°µµUì\¶mßÎ3‚4`Y=;£·oÞðŒ Mâñ¸Z­Þ´ß‚e"M&&&ÚÛÛ+ðºbAùñù|V«µ)”‡OŸ>ƒÁ®®.Ü) Î<OGGI’¸´í;v¼yýšO ¶€±±±£GV&/žµÒùÝnÇ]R‘š^¯·£££b¯nß±ƒg© PIÿÅ‚²¨:ÿ‰ PaÿÅ‚²¨°ÿ€$yòŸK—.mæ·€r‘N xüøq{{{…ÿ fÇÎ<#HD†aÜnwOOO…ó}ýêÏ`llL«Õ:twAÊF ƒÁË—/ Tþ7P †a\.×ùóç÷ïß_ùÜ J›Oww7î‚lê`bb—ù ø[PÿÀÄÄÄÅ‹‡††Z[[q]Å«—/y¾T•¿œ;;;ëñxFGG‡††, îâð¢Ê,hvvöêÕ«ƒƒƒ*•Êåra¯ý¼_¼¨‚0;;ûäÉXZZ=qâ„Ëåûµçùý.eƒe>p 055õÇ3þYl!7®Òkjjt:Ýæ©z¡ îÞåûË—æÅ‹gÀT]Ý: ¤µ´ØëëËþ]óÊðË? ¿ó«@âåË—B•f56¯&Œþ寲NXzHçû,X­Ÿy¿ FA"AÓÄü¼¾­öm6¯ètìü¼V§cS)•ͶLÓD0¸%F>“y„$Ù½{W ¥·X¾$›H¨“I Jl±|ÉÚE)å+Ð4j*•RE"Z‹å MFãW³y‚Á-fóŠ^Ï$êHDk6¯pG2ÅËLÏé4?¯Ý»w%™Ô #‘ˆ–¦‰Ì]® ²îH’EËß¡¥j—–’dÑ6ZýmëõL*¥Ê<’K@M P ná jÀl^ÉÚå"Ⱥ”E¡õh92îwTé6ÛrÖ.J#ëÀ‘J©ÐòìÜ´3ZA5•Réõ ržBë2g¦GÐ4–ô´Ù–‘ËeîrqdÝhš@÷# ^4ó¬Åò%«FÝ:’»s]¹å³P:aÌ(`F3Š˜QÀŒ"fä;Ø$(-3Š˜QÀŒ"f0£€ĘX±HÜ>ÝðÓ·ùÁ·©ÀZê_%Ï øµ¡ô ‰Û§‹¦ËŸ…àˆ×Œ§nÆüÃÝÐ=ìÝc29`(†8öÈd29ÇËÌmÜi2™‹•Äxêf,v¡¿kV”ŠYиÓdrºÝgLˆ3îô7¡ÿuv°M"ë…Øþ‘^ç8 m¸”éãtŸéô‚w°ÓdBõ<îìéö¯UçúAƦ3îdþ‚åf!íF¦ïsÿ0 :ÜIøßF ÿŸY Äz¬F¼h㩛ߚV,‹]°Ž?*?Hñ‚ådQþÅ–HEà*Éh?Þí}èKÂÂÛ9èþ1ÇŸŒ?vC8ZêÛÉh˜gÜ‚U e„ÌlÝÖÞ97\ò…š‹tÜßallâ¸[@ëßúaä_îïkoüÑô+Ýw­Ç‚ ñæ,˦Ÿô¯mæ9asø†a°ÓÉ ÈNSïH¿Ûñ3˲»:w{úé½#™Ñ¼/¸AúÏw¿·ì é"(XVb!^ HÞ9Ûhô‚wÐÞxöN‘nÍØ{#=:Ö˜fìh4uX¿sà=}ÂÝ¿öçp÷È©ÆÆÆÆÆ¡q°:¢e)NNâ@D£QÑ‚¯Ïøø_¬ÖÏÂÆLÞ9kxÜw£w³Û?àïDÀhjïC?ÎW^Ë@‚€Õáã,GDói¾jì½íÅ]ˆÒb ¨*0óñýÂŽL&¦IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inoutsine.png0000644000076500000240000000551312536324472024153 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ýIDATxœíMLëÇŸAh/crj¿Ð1iªýŒ=¶I±š`?V§¹nîMpÓžIÏÒ6¢˜ØÍEKAÓ˜æ.H7í¦˜ôìMŽÕ”Dµž Æ…1á«ßC»8q<­uæ.^Gxf~ 3/ϼó>ïóž!¾~ý ø˜œT·´üÀØì¨pw@îäÙ C¼yS‘_›å˜Q€uæM‘¼ð9åÏHD‰$¼ØØ¸Á·\XP¡]~[¨N$Éåí&J™,@’œ^ÏÑ4Áÿ€š¶¦†š&"ÚN ï<¡{²pèõ,M«ôú šNŒµp^ï2©†€ÉÉì.'Ô—…èt\$¢â8Ža@«eWW‰7oT?H’cbq±YÛþÐ6Ir?ÿ¼Uòódzê^fgÕZ-wâD±KÓÄÂBÅ.’›uÖ騅… .!5••‰‰OÓ„°ÙêêV€$¹ÕÕä6¥E$¢JýÙÙÝÕë¹'6Ó–æYk‚^Ͻy£jiÙ’ä´Z J ’äjjؤã¼XUV‚0J‚Hd+o¡Ò£²2mKáY½ž‹FÏšI_¾|)H3£TÞŠ i"­N$¹é¦QÒYT(¦¬P”u@F0 Á«n ™ò”â€b@’°¶¦8 Zmžª yB’\<¾ÛXÍΪùwvÂ0Dº24»u@!ÀÞLÐ鸅…ŠÕÕD͉¨¢Ñ ˜œT××ÿÐë¹ÕU¨«cѽìuDÓÄ⢺¾>íâY‰€,HWõïò¤^Ïéõë»ØTsss>Ÿß½páÂùóçÅÄ&ASSš©)Í¿Úþ‰6~ÒéÐqÉn„ŽyðàAGGát¢#Úû÷s»w!D<o%g¦¦4ÍÍ»E¨˜›››˜˜xþüy[[Ûµk×N:ÅŸúI§û"n Úƒééi›ÍÖÖÖ644$z„ÈÑìë)ÀO|—ËuîÜ9(Ì’E)CS3==ÝÑÑ¡R©†††Ðè§D§×‹¼"A)@²ÃOü]ˆÓ´Èk)L棟l#ÛÑ/AжÈaî+”7@1•‡Gq˲‡Ãf³e;úy¨‚”uŒ©ÕêÖÖÖl;Cþ âú¯”¡0==ít: Ã×–ä.AÓÓÓ===N§óìÙ³9¼\à€ÈÈÚ@~Ή—þüYdäë”x»»»‹\ö$!_¼xñB£Ñ\¾|YŒñ$Ó$ò’x Ê^|rK¼ùEŽë€±±1F“CÕ¿“UUŸ?}cAv\.W¾ª~‘£r“ –eïß¿ßÝÝ}æÌÜ}I / Ê§µµ5_TU‰´ # ʯø  Ê ŠB.È»ø  ʈBˆB¼•ÿÿ ñéêê:}ú4ö›ÝIùKÐøøx!ÄQuð H e.AH| ôa˧EZ(ç`YÖétvuuI­òRÎ(¨ø  JK¡Å¡HPjJB|åé¯×[hñAäA‚Êïó–e=ztëÖ-(ü"ãã‡"¿T†0>>®V«/]º„»#QnwîÜ)η¬:$ÒBY9€eY—ËeµZ‹–{?~ø ÒBY9‰Oro)Y|Š%(¾ø  JPŠâƒ(‡u@0p:Pô_:tøð‡÷ïÅX(ùÀ%>‘£eà$>&“ wGr¤´ðúõëÁÁÁÛ·ocùç8tø°H %ì€`0ØÛÛ{ïÞ=ŒoyÊW‚xéohhÀÝQ”ª$"ý2• ìÒÏ#^‚Jo033ÓÛÛÛßß/ÍïùdK‰E?ú‘þÃGŽˆ´PJ@etFÞ¿{'ÒBÉ8•=Òý¼P2˜˜˜Ðh4ØËž$ä"A333ƒƒƒØËž$ÄKÔ¿˜5??ÿòåË‘‘‘þþ~éÉ'$333A HSúÅKtÿ?`ffæîÝ»}}}hè±÷3%ïÞ¾-Ãß B²3::Ê~#- šŸŸøð¡ÕjU©T.—Kú£äèQ‘$óóó¯^½Z[[½~ýºËå:yò$îNeÄïÏè&ø&ÆNÌÎÎþñÇÜŸþ…Æ]«Õ–ÐÐç âÙ3±¿|™3++ú|³UUìÉ“-ÕÕÉ?L^üû?úßÅ ñöíÛ|õ&|¾ýMM¢B/âû/­$,CJïóIa4þ-²û’¨‚°À0Äò²6Ÿö]W·®ÕrËË­–‹ÇUMM߆÷¡ÆHg„GH’;~|=]û††ï$ÉE£±˜5nhøž´‹ZÊ×À0©x\µ´¤ihøÎ0„Áð£®n‚Á}uuë:V,-iêêÖù#Bç Ûó~Z^Ö?¾‹©Ñ‘¥% ÃÂ]¾²Î$É¡Çß¡GÕ®­$É¡môôG´­Ó±ñ¸JxDho>ß~Ÿo0¸x¤Ï·êêÖ“vy ²Ž€¬H÷½Q³É§Ñ­°¹HÝú¿¾ o3ºír‰+FŸÞÈÐ\‘)NÚŸ„§&09¦ÂOÚ éÆ<7)Ê}aÄÕqŠ¢ìþ¬®å·SÍÖúáð&ÃïJ íOÂá£Èû(X$Èo§(»Çs“¢ÌæƒuÓÛ<ÞlÇÔ–‹Œ=áa‹Ûl÷ò ß2aÃ1ÏÍf«¼ÖfŠ¢(Êî÷»Áäøuk¨=á#€ßNÝôÄ—¦(Š¿Jq´Ð`Ëîè ‡‡‡?N9ÀjóÄÀ?îËoIb¼j÷xÚ 0´?Ù ­pxsŽ{Wv@tép8¼uiðÛ)3$Âf¸ÞÚœeØå6ð#mhùÅ䙌A,´¦c;ôÉpÌ‹¡Œ§¤±gØn3•ˆÌ. þq÷VØìáóüR†U±'¡ýpÄÞŠ -ò*FQ”Ù]”Ž€¤>”7ÔÖ#ñر/Ôÿ¶KâNƒ±'îAÚb}ìo¿ºW{“0ù)E€ñªÜÿKš®þq7X®æ^¾Žeðã¼ï‹OqÖÇ%ÞõßÚLqâ¢mÒÖf;_®ûì”ÙmñØ.rw´ù“wd2š8av ­yW¢[/± Ê}ßc«,W.ò×L}é‹W,à6ó/ŒzìᢀG‚bÿ¶X½àm©qLÞJÛÐ`~2ûûjkÛÀâ …l[ç쎑––Z+X<‹»]x¼½Ö^pÅÒŽ¶&ÇdÈlØ#§m!Ôò/49&͹Ühö¡P¨8WJ‰ßÿ£ñoŒÀŽ”r€,Q€Å˜Q€Å˜ù?uù.ÀÁÁUIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inquad.png0000644000076500000240000000525512536324472023422 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ _IDATxœíKlIÇ¿vl²îH{X7€GB8°<ÌäB¬Dr€h÷²+…#„#-Ú“¹™¼ÃÐŒ„Äœ‰9nF1$’-9$Î*å!$¿x·á”Î@’î=”iwœØ±]—õ;Díêruùû×÷¯*?ÒÌ—/_€^¯¶£cƒ`ˆ£!ÝjGe™­Q·Íʆfa¨„Ñæ^Ù‹VºSkë&ËJª½ˆr&XVâ8‰çù/45‰MM"ð<jÐñŽÈâ)å¡ä!pœÈóŽÛäùd¬•ã:Ë ¼Þü.W h%)+0¤hT#I’ €^/®®2³³šÖÖ –•YZªA­mý è˜e¥~H-ùåò¼:@–¹9­^/;–Gîò<³¸X“Åróž„ qq±Æ`HZM]]ràó<£¬¶ºšê°¬´ºš^§¼ˆF5iÑŸ›Ë–Ðè,ÇIÇŽm.-e\šçí 'ÍÎj::6€e%½^BÆ‚¦ËJMMbZykë¦lVuu Ì†² MÍ[héQW—±¦ò,ÇI±ȳfÌçÏŸ÷¤¿¹Q.oEð<‹Õ( ²ÜLÃ(í,Z(î¸B¡û€œFvÝ@s䎧¨Å€eam @A½^¥UPu²R"‘-VssZùí“išß>`/ Þ\0¤ÅÅšÕÕäš;ÕÄb5àõj[Z68NZ]³YD¯eûYžg7w|¥tkš+›Ñ¨íä7`<Ï ¢<Æ·Ÿ…­Ët%Ô‚r¥©I\[cwØR Ãq;¯‘xžYZÒ¶´dÜ<Ó ÈƒL«þ,oArœÄqëYÚ¤P8Á`ðÕ«W˜ÀçÓù|º¿ýýÏèà/*/—QÿóÓO‚ ôêS0‰D³ |>]{{¶ -Yž?þøñãÿ>{ö/€Ô‚ AE—ËÕÝÝ} ¾(¯Ïd^¼x¡ÕjÛÛÛñ;O3 oDQ|ôèQww7Ã0ŽÃl 7SSShø@‚ç1[£ä‡rø«Ò  ?&''åáøDwÂy …†††^ÿiäÄÔÔ”N§“ç^¡ìZzÚíöíKOnÿ~ÌÆ©»“eøóŸ>a6NØ…,Ã_¨»099™Åýñ-ˆnIJ …†‡‡ÇÆÆ2 jA{Úyõôô¨»óJƒî2‚æÞÎÎÎ,=Ü__ÿéãGœ«Ð Ø4÷^½z5ûÜ‹} d"ûÜ«"T€…B###7oÞÜu鹿¾óZT€tDQêéé9yò䮕©©2ŸÎÎÎâ\Ž °…ÜÍA-HMò2¾Ñߤ@æc³ÙŠÙ%šIùܸq#¯7ÝêÀ¼.@ÅáááÛ·oçn>ˆ>`^š àñxйòQB(Ð|Ô‚p)Ø|Ô‚p!h>ˆª  l>| ªÞÏB¡ÐÝ»wNœ8Qp>¼O¿T¢(ŽŒŒ8Ž3gÎíI• àñx´Z-¾õ8x³…j  ŽŽŽâX¿Ì‡÷ï1[¨:‚Áà½{÷ [wªNu G_-ë§”¡PHÝèµ Ü)eOÕ²@¿íRý½þƒ ïß½Ãi¡*2  Ž]¿~]õ/ØbFªA€`0Ø××W:Ëž4*\9ú‹e/Ú?ØÐ€ÙB% °×ÑjAY(BôU¡2(Zô©í@1Ç>¾UÔ>`aaajjjbb¢¿¿ÿôéÓ¥ó£,TNÌÌÌܺu‹a˜ÑÑÑ¢ù~áC˜-TÈoÄfffúúúúûû‹<å¾{û³…JÈRÑW…òÎ¥é‰~áC˜IPÆ@ÄôÓÀ· ²Ìâ_EÊ,>|H|à˨° "¾XαhÔ?{öìÒ¥K###ÇÏý¹{ÇÛ7o0¿T´cè+†Ò`aaáåË—kkk¥úC‡¿}ó§…EËq×ëõ¥zįOy+|Åi¤sss¿ýö¿ßßEÄkkk Äã®"ÌÓ§¸ÿù²`^¿~å÷ÏÕ×'o?qüxGcã_Iu¦0þñOîW¼2oð, ¿¿ÖjÅJa²à÷¿Ìö•GE}P|ÚÚþÀì~ ­‚ŠŒ 0++:ø~·o³y]¯—VVtz½”Hh¬Ö¯‚ÀÌÏïC•‘Ï(KXV:zt=S}‹åËJ±XM<®E•-–oiQÍêA‘J$4ËË:‹å› 0Fã†Ù¼óóûÌæuƒAŒÅj–—ufóº\¢OY_ÖieEwôèz<®E%ËË:A`”å>TõÀ²ºýºUíÚò:FwDǃ˜Hh”%Êäúà÷×úýµóóûä›Gúýµ`6¯§=”[¨ê È‹L÷£•Q wt«õkÚCT§ª3@&‘Р۳Ë%èÌ誉„Æ`‘ódº/³²>BtKO«õ+r9åC¹ªÎA`Ðx4‹*ÏZ,ßÒ&a4  ’í·§UÖGÙ0?¯E³®Ñ¸a0ˆË˵òCùéL<ߋז#7bhªL3I$4‰DÒÊ ¦z÷’”÷Õ——u²ÉX­_UéxõZÐö9sWTòiÐI˜0TÂPC €0TÂTï> D @*a¨„¡† @*aªX¿³©Éé'Ý ‚û€¸ûJ»cÛ}¿\6f«pšº\`ÜiS£ùŸÌãå_"»ÏmÐÉý€Ód2y.D’\ð˜L&g xÝSJÇ‚N“Éév_1!®¸ãßË»\¶A_jз݉ŒÛ]]ÎÄÝWR5“m|/O¡PKq"™P„)\p?‰D"¾Apôºãð¸Àþ¯´i»`—'[tÜÿž0‘q»« ‰w_iw´ŒËå{ùRr¥´#mì¸h›žðÆ!^Û‘mþd®Îü¡•û™°rްÒòbÖ™ž¥•Û16· á»•øëihiÎÌ€Ó”2›Òðš ”ºÈîvo• àqýBf/ x\°ÍlŒÍ-{ÒC<4a”Ÿ l-I’¤³½nû´£Ýéÿ~Æï4u¹ìîÞ³’$n¿h›žðÆ’'º\èI‡Ø`)ŒJc¥gÏÛ§O’í¤ŠÉB0âã?6ÿÛõ¦Í?Žgù~^[o8>ÿ¼9Éóóáp¸79º]ÎApt$O¸íÛKïÀE»Üwpérsz1Q˜p8LðòÀŸÚÚþȽ~|üÇŽ‰‹Þ']¥6—LÉÏ[1šZ`zÂGòë¬*Sf@[¯W6—û•ðvDùíŒ]OÂ]¤;¡å–€0ÿÃ&Õqy<Ç6IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inquart.png0000644000076500000240000000524712536324472023625 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ YIDATxœí_h[Ç“&v3Ý݇ÍX­M“²bªW!ܶr“&¶p "Ê.Â]H}¸ñÉ>ì¾]Á²|2ŠPÝ·ûPðáúb Þ…­p±—ŽmH´ic¤\ú!ÿü?Q(tzµvÎ>œt:Mš4“™dÒæ|ÊÌ™“ßœœïùý~çd’êãÇ ““z·û‹† ÐÖ ¨uT€ç©™™:umînˆh @côÅWÅáEÌ™8&ºD"£b{ûšXsnN‡OÅcitjo_£i¤Ú›ØÉÈ€¦Ã Ž£Ä¿`±‹G%:|¼%¢xRy2†8NÇ0k—éké¸.0¨yž€ÉIy·«ôÉ&J$t!ž£QX^¦fftíí_hñ<5?_‡­mþ ø˜¦Ñ×_oLùÅrY ЖHDo4¢Ã‡eø.ÇQssuB®ì$l2 ssu&S&Ô44d>ÇQÒjËË-šFËËÙuv‰„.«÷#‘B¯2 :|xm~>ïÔ\vL`43£s»×€¦‘шp`Á)CÓÈb²ÊÛÛ×Ä`ÕÐRoØ$y O=òÖ”^e”L‚˜5³ >|øP–öÇNù(‚ã¨d²N:hpÈÍ7Œ²®â‰â–3²( ž§Ä¨[8Gny‰P hVVˆÚÁó`4ª4 ªMh¥Ó…ú*Ñ‹ŸäÂóT¾i¨¼u@9мÅ`2¡¹¹ºååÌœ;‘Ð%“u09©okûÂ0hyl6¿—Ü«Gµ´¬mùNÉÒ´XZZÖ ^ˆÀ`8Ž2™qŒç^…ÍÓt)$‹Å"¬¬Pss[,©xžb˜­çHGÍÏëÛÚò.ž‰È ߬¿ÀG ƒfµ€Mâ¥óôéÓééi…F4 0†¿ýýÏøà/&.ßAÿóz“ɤü·¾ *N+4¡„@ÀàròЪ!tòäÉÿ>þ§·o•Ø!!¨Dâñ¸^¯ÿã›7 íh¼ØYϤLMMutt€âu ñ€™˜˜èêê21ŒB;D€RXZZŠD"ÝÝÝiŽShŠP ãããÇoÈ÷DFD€R…B'Nœ‚4!‡;;;€„ ÀÐææfU¬d‡;::(Š5BYÈæñãǧNÂÍæÞ¿²¨$KKKÏž=ëîîVË @,ËJ' ÌÞ½ ä ñý¯Ð @¡ééiüZd;%!¨¢H' ‚*ÊÄÄ„ÓéT×&Y ž€ú|>iƒ÷66¾÷N‰YâŲlgggÖ'  {ˆÅ366ÖÛÛ«ºY"@Qä[ïmlTh™P[Æ !¨2‚p÷îݳgÏ–Ã8`{X–5 .—+÷ A•àþýûçΓ®¿D”‡ òû€mÀé÷êÕ«ej'ñ€mÈ—~1ûö)´O(„ ~¿¿@ú}§ì‹¡@( N¿]]]å» <èëëÛ2ýbH*#8ýJŸåBBP)œ~Õ‚°5Û¦_ŒòDžlÍøø¸^¯w:…›÷öÍò½ õáöíÛ.\(~Õ‚°,ËêõúbfŸûöïWx/"@6²†ÿ[Å¿#dSüðW"À&äF‚TFîð'!HM*9ù!ë€ =zTÌÜ_Êþ¦¦7¯_+¹)ñ€ ÑhôÖ­[/^”5üö>0‚ ;v¬Â·&Œéõúžž¹/ÜßÔ¤ðÖD€ƒ†„ ¥h|0µ.@ÉÁCB"¦¦¦J>å!¨v×ápøÊ•+ׯ_?zô¨†P£ ö¾ÝnWb§éÀ…-©EÔê}xýê•B 5'€Š½¯ µ%€ê½¯<ÕÊÎUwì“TápøÒ¥KEݼy³J"È.÷€2 |‘¦:Á®ý}îú‡ž9sfhhèÈ‘#å¸Ñ«—/~/h·yÀììì“'OVVV¤]¯u£ ±KÈêw£ÑX™®?ÐÜüêåK%vž¸¯¥%•ïw‘ŸïqNø¤Ä‚–D"‘_~yþÛo26rûº¾¾^,¬|¿«uïžÒÿ|Y2/^Lƒ‘ÆFy¤9âniùªLM’Ëwÿ`~VÖÔKe!L!Á`½Ó©È…µEyûkb!VÍÔîóUp8~WØü7 R ž§ °¾Û·Í¶j4¢ÅEƒÑˆÒiÓù‰ç©ht®ŒãŒ´„¦Ñ¡C«ùêÛíŸi%“u©”W¶Û?gâšµ+ð<…{*Ö-,ìöφç)¼¥§Óù G9é©h§¦=€ç)<gQéU»ýsVÆi—änO+­½!Õã¬k61™„……zñT|9•J¥ÊñÞŠDÃ…N•YA£HÒi]:]' å%S»ë„dß}aÁ §ó“* ¯Ý”›3·E•!ŸIÂCÐ"€Æ4† 1D©Ýu@•@<@cˆCÐ"€Æ4† 1DÑ!mHÞýÞb±X<ž}Ë÷w“ÛÔ^µd¸T±Û߸ühåæ¾;ñÀ°ÿ'¿ÓgÎ_1ä³Z­c½ñ ½cV«Õª\CËM•„ Ïjõùý^+ÆëO­—{†{n.;Ö+:.ÇGú‡=¾¤üÞšë嬫òY½þTÈgµZ­ÿ¾æu °À¸6UÑ‚*z"6< xÜ ò{]ƒ~÷>shlúG²ÄÑÛž±ÐeG^¿q_‹Ç3C>«Ç{0€ŒpµÄã—þõW¯kôt  ÷U‚*ñ€þf:Ãì>ÝÃŽN¦ ›‡žƒ9=d>Øó±üß%0›7^âèíöE¦î&_ªªÈÔ$å÷ºØõ³~-›² U乘[Û6†ï©,´µæ!ŸÕ5Ð6‚³öH5÷>T¹àèí‡áý›% CoþP‚GÕÅš«g¸ß?ø B¨Ùuº‡Lf.x†ñ‹šöÀ| —&ý?¯[Þ| ì‹Ú]¤FηºXˆþàn=?RàËyŽÁX,öí¯­~ý6‹ fF·Ùã»îÌnée8'™=¾=Ã}­­­­­×4œ†R±XL»»C(ô‡ã÷"+§FλGOOþäÑxæ¨*Õ6c¶¶;Ðò»¬ê³“Çà¤\´ j²ÃÖfÏO1ÖP•å»"€Æü~öòæ‡ëxIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-inquint.png0000644000076500000240000000510612536324472023623 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ øIDATxœí_L[ÇS¦²’}ØQ¡´˜‹lHš[I.„ìåM³«Én,/ê‹rÍ&û¢‰$Üħ‹†Ù—Í>øp}±&Þ0¹Y\ªmЦ€Ý›1é?ÿO5Ñ0¨Èœ}8u¦˜éL;­=Ÿ2sæð›Óó=çû;§- õöí[0`îëûlbLÇbvêƒja¡Áؘ_7d˜ ÀdhõU±½H9çÏdÒ’LfUôx6¥š±˜ŸJÇrwòx6ö"j 0 â8Äó”ôÑá€ç©dÒ‚ó"‰'—‡ Aà8‘ç-·ÉóÙ¾–ë"ƒZ(µÝ® Ò`,‹’I BHÀf×Ö¨…‹Çó™a PËË 8ÚöŸ€}ûíÖ’_*×ÔsY\¤m6t𠆹ËóT,ÖPÄr5'a–c±–ÍZMSSvàó<%¯¶¶¶Õ`´¶¦¬S[$“Eï/.›Ðø*Ç¡ƒ7—— .Í5{Ç¡…K_ß&0 ²Ù6œ0 ƒQQîñlJfÕÔòÙP$“[y /=šš Ö”_å8”J”5PoÞ¼)K{ÕQ+oEð<•J5È ¶ÜBÃHq/ó®PÈ>@‚@I®[8Gæ½D¨ ëëDó°Ù ZÕ' ƒ2™b}µ¸HKïä"T¡e¨¶}@90½j`Y‹5¬­e×Üɤ%•j€`îèøÌqhm \.¿–Ü«\¼± ² Šâõë×Ï;·cú%TTC û%xøŸ?T|V±w߾ϟ빙Jîß¿¯~øëì} (ÀÃÿìÙ³eÝ|É!lCÓð€½ûöé¼#`‹†?± #™™™©ØâG‚%NNN^¼xQ“û 2Q'&&FFFººº4ý¢~ "û€/æÓßß_ùÆ‘HdrròÂ… %,=÷µ´è¼{½ ‰D._¾|õêU­æƒy®ïÆA õ¾Ûí6« õ+€!½O,¨DŒûú-¨îþuñÒÒÒìììôô´¹Î#Q_3 ‰\ºt‰¢¨k×®Òûú-¨^þ>ü»wï^¹rw½!÷}öô©Îï}ý$uý±cÇ&&&:;;ÍnÑ6¾N–––>|ëëëeíú–ÖÖgOŸê‰PóH}-!uzcc£Íf+ë¨ÿå6ï…z"˜)Àââ⯿þï·ßJ›¼¯¥Ârwº±P·oëýÏ—%óäÉ|8¼ØÜ\úÒ ³³¯­íF5I+ý÷‹¾¤žê³0„Ã^¯®)l.úÛ__û€*„| ‹žž:›_ó« ’juÕ _žöírmØlhuÕj³¡LÆâõ~*Ý…+cŸ‘—0 :p`£P}·ûàTª!¦qe·û“â׬_@(ÜS™ŒeeÅêvÊnÿìrm@4ºËåÚ`Y1•jXY±º\R‰\!Íw_Y±J&ãõ~4¤áõkA¹9sG ò H6"€ÉL†`2D“!˜Lýîª2L†`2D“!˜ Àdˆ&C0 2ÔÍSŸoÃáp8NÝLíP;ü“#ËOaU¡‹ÕKÝ<¥â–ÁÄ`º‘ø×‚ñPâÆ½pŹ1§Ó93˜È28ãt:Çæv ø±Ç藃걠¹1§sÌï?íÄœö§¿”û¦ÆC[ÝÙócâÖð”olÒþÓ[5³1æðÁi:Ì´ÿtïH#½NçŽR–ê`j®$‰D"4#£þ4ÌÍLÁðߤgp¦fÔõ\NLûÐÐø Œ‡‰„饺zÚÞwt 0LC:¾ ßäø“ý›XŽ«ú:An̪¢º¨Cª]{{žäŒÚô“t´IÜ5Cµ €íþßþíÌÍLÁð`M¬rvÂÄ}@þ©Àör@¡ïFýÑÞ1iUsú¦†ý£ß!„Z{¦ƒ©ìßÔ—Ùß.@àI½ïҷδÿcê¿ék?s«HnìÇãßßkÏrïûx<>šþvߨ8Œôe/ø‡ÕÝÚî˜joooo¿bî2”ŠÇã&Þ~nîw==Ô×Oß:Ó7}4ø³ïk°¨°»³Ó¡*[Jê¡Æ€žÑ d9&›‡1ÔÞwCí¾Ÿã>³aµ6¾:ˆ&óóÊ><HIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-insine.png0000644000076500000240000000500712536324472023421 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ¹IDATxœíKLIÇ¿6vX7Ò¶;$dÀDZÅ„ÍÃ.c $ ¹M´{ÙEJæfi6×(†pZ †Ü}›½„H™+‘& 2‰YlVhÄC‘ðƒ„„vrr3èÞC9MÇøÕTÛe»ëw@ý¨®.ÿúþUåvÒ̧OŸ€³³æŽŽ}‚ މtŒŽÎˆ"³¸X£oÕ ÍÂPc.¼(²eÌDãg4jŠFS*¶µ(%WVLhWÙV»S[ÛËʺ}ˆJFƒ,+ó¼,Œòl6Éf“@˜hÔ„¶3¢ˆ§–‡¢AàyIL< ©X«ûuŽN-Š ÌÎj»0˲+à895ɲ,Š`µJÉ$³¸hjkÛgYY™ÕÕTÛ×m³¬üí·‡S~带%2[­òùórW˜••š–«yæ8ie¥†ãRVSW—êø‚À¨‹%“‡-–•“Éô2•E4jJ‹~(”+¡ÑYž—ÏŸ?X]Í:5×ì j„ímÌ[Ð ÈJ±ÍAÈJnóAP *yÍA-¨(”Æ|t—/_Z,–®®®¼m;Y_¿ýáν¨¥‡}>_^óA`F¨¥!IÒððp__ßÅ‹KsG*ÀW ™OWWWåOÖ×cÞ‘ZÐ!šÌA-H7Jo>*@ ­æƒ ¤Ç0¾Ñ2ŸÞÞÞ .”¾1Ô‚`jjê惨?u óîF· `0èóùFGGµšâÃû÷˜ 0t„Ãáx½ÞÏ|ÔWI’FFFz{{¯\¹rìJð-ȸàX¿¾t À´~1bèhý:Ì‚Œö<Y¿Çãq8ø·~¿µE¤©©)³ÙŒiý:b,‚ÁàèèèÝ»wõ²þS§OcÖ` ‚ÁàLJ††tœõ¿ßÚ¬Á(„Ãa}œY10„’$ù|>Ç£{ô©Dñ^jAùÑ}àÕ—*_ƒÁ¡¡¡"}׺¡aëÝ;œª9”è;Ž"Ý3úPÅ” úºP”,ú§0k¨BJÙ÷©¥S)ΣPU”>úÔ‚!Ò÷ñ-¨JÖ ?¾|ù2ñi¢2@‰~é}¿áÌÌ*^‚Ñ€woßbÖPÙ¾.Tê¯"–——§§§'&&ÈF¿áÌÌ$¨È XXX¸wïÃ0£££dû>¾UX”IÇבJÊ€òéø ø³ Êø÷¨ã¿xñâÑ£G(ôÄ›x»¹‰ù» r· %ôׯ_÷ù|­­­¤[¤3e*Àòòò«W¯vvvÊ<ôg¾ùæíæ&N e$ :(q·Z­ezįÏìâÔ@R€P(ôÛoÿûý÷}P½¶¶¶üã®#Ìóç¸ÿóå±yóæ¿@¨¾>õú‰ÖÖŽ¦¦¿‘jÌñøçü¯xd6ñ, “@ ÖåÂJa²à·¿’ÖUI•< …ÓùfóËhTbD‘Y_·À—·}Ûí{V«¼¾n±ZåDÂäríŠ"³´tF>£>²ò¹s{ÙÊ;ŸYVŽÅjâq3*ìp|NÛE%+ˆ"ƒ"•H˜ÖÖ,ÇgQd÷íö=XZ:a·ïqœ‹Õ¬­Yìö=åˆZñýÜn4f/>ØÜãw?‹ô;•ý©kÊ^ERž4?ØÜ<8>~»q{=6ŸòC§÷§Ãx;û#ýN€ùÁæÛãñlW}©ðèÑr <ðOÀ£H$‰ÌyÁs_ ÛÌ›œÌtÕü`s<‹D"‘HäY‹§}p¾è/œòÀý¯”5v|ß931pö?sƒ¿uåÌaÌpÕü”ÿ0mœ×ÜàŸ*#ÊW€Œ8ûQ?vCJˆüŽßX…Oû êñ—¤¡S™åý‘H?òÏ/ó7®å+ßéÍ9¶“¤Â2àkÿÚY@¡³-ù’^|¨Ÿ=lTM÷¿xfÀ}õ;¥x櫾»êral|p<×B£Ä”‰ÅŸýÔᙀ™Ž³ÞÙŸ3—r^u߸qöÐÄ;½³=yÆTçýq8«\ØéíѧÕzÀlll¼½z!fL*z ¨¨„¡† @*aþÖKÿ¹b'ÐIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-linear.png0000644000076500000240000000441612536324472023411 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ÀIDATxœí¿oMÇŸ] >ÖÒ·'NXzœ*Änd$KÉ[t×ÜIvóú:Šû"™Äi^’§¾‚2z¥KyÛt),Ù²åã÷$óÉï&ë×±Í\1xXc À.Ì.;ŸÂag‡‡áùÎ|gì ÷õëW ÇƆ3>£Øêð´`w @U¹­-‡±1G6(àŒ³ûªØ^Èœ‰çÏR‰/•ê*ÎΞ“šùïè`¹=O¢XËç¢X·šññzÇ—eN[­Zm´U«Íu¬E©Ä7e{»Ó€Æw% Ý»w¾»ÛviÞ³'HÚÚâÃásäv#l,xJÀòzkMå³³çĬÆÇA;,A©Ô˜·ðÒc|¼mMí]IBå2Y³ îË—/iowXå£YæÊe‡¶Ó`Ëmךîâ…bË Ût…ªrÄuûÏ‘-o1† Àñ1€ª n·A« {"HQ:åj{ÛI>¸Šªrí–¡½íõtƒ(¢|ÞQ­Ö×Ü¥_.;`cÃ9=}&I¨Z¿¿†ßËÕ»²ÌݹsÞò²­i·Ü¹s^*ñx@>€ÁÈ2'Š5ÒǯޅËËt-Ì‚ºÅë­sù|‹-•ªr’Ôz$ËÜî®szºí晀h·êïð¤$!I:í“€þÉd2¹\Ngjlnº67]ÿÇŸñƒ¿ˆ".·ÊƒL&Dx^o9EQt†ÐÃæ¦kn®Ó5'™LfyyyuuõÑ?~Ñ—@fA=C²?33£3û@}`­ïà"û¯_¿~ðà!-g# ´ÙÇ%¢$éŒÉè–«ÙE–u†etEËìàûtÈ>³ Ó¹ï3 ,ƒs -Ýd_¿±}@k2™L4]]] Z(¾ö³Ð’ýÁ9 ÐLOÙ—®_×ùrL€KôÚ÷å£#¯Èh0Lç!0êô—}fAÆÐwßgdTœ‡`÷}@6›F£¯^½ê¼ÞoÇõ‰‰£ÏŸõ4ÀÖ#€d¿ï¾¯3û`gôgßl*€QÙ¿>1¡³%vÀÀ¾Ï,¨gLâ<{ `xö™õÀ ú¾~ ²Ëßd³Ù'OžÄãñþÖûƒÃ#€dßpߟ¸qCg„Ñ`pـϟ>éŒ0â 4û†0Ê !ûÌ‚Ú2œ¾Ï,¨5æw 0Ììë· Qû> ›Í>}úôåË—ÃYï:aAfßär¹•••/^Ü¿ßT¿Ïc¦$û&ìû˜É[·tF0¯æÏ>|üðAg“ `‰ì‚°PöGЂ,”}= ²Vö ÁDX1ûú-È,Ëåž={öüùsk­÷?ŒÂï‘ì[¨ï},ý[·oëŒ@ùü€½½ÌÚšU³¿½•Cp¢'Mr¹Ü/¿<[]µjö {ûVïÿ|Ù7¿ÿž+•®=|xŸVôóÏI¿éK wpp`Tkú • …t aºèo?ýIØæ˜ýû“ þ¡³ùö=EIU¹½=\œöí÷ŸºÝhoÏåv#EáC¡Uåvv®áÊØg´%‚€îÞ=mW?ø&¨\vT*N\9øÖt‰kÚWPUgJQøBÁ|SUÎã9óûO`gçšß*еrÙQ(¸üþSR¢O[Ÿè´·çº{÷´Rqâ’BÁ¥ªœö’´ÁÖs€ |ü>ªöø˜„ãÓñcQ¬) ¯-ÑF õ •K¥Ævv®‘Ã#S©1ðûO›.I[€žhw-Ak,ÜßqÒC¡“¦K\ÇÖ#€ (<>ž”à#˜ñ ªŠÂ‹b ;O»s™µõ1ªÊá#=C¡ìrÚKÇÖ#@U9ÜÏ¢Ú»À·¦IO¸äêñ´Úúx4ìì8ñ¬ëñœ‰b­P#—äé\¥RÄ{ëŠ1´$ÞÁf±è¨$—æ–“á7‹HÇ| °V, óÍŦŠQOøy±èÁÏIÇ| K?l¾YôÀúã¹éµb1JóM4cú !òŸEœVOøoóëï6*é÷‰ùø¿ƒø~ðQïÓàñxÈs‚"°þ¿úp™oFƒÃnõw°Ò¸JeÖs¾Ç¢¾‘\š{¼~¹ÌœX[€ùxÝ`é˜o!Y+¾©ûÒ¥–u…•,è*ž©é†Á\~Ÿ€Èšé¼¦ ”÷MÀ¥ÁEY㟦Š}ÄBìbŸPNÆ’åÛ?ÌÃî~¹^ðßÄÅ[Ä6¦³ õÇᩆ¥G’ÉÎÕƒËûI˜ZœJàËùøÆ‚Ç‹¿ ã(óñxÖ;F  ·¿¿OñåÓé?ƒPlu¬=ŒLÊ0(à €2ÿÿJìÎÖ±ãIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outback.png0000644000076500000240000000544412536324472023571 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ÖIDATxœíMLSÛÇ×é‡ÐCò¶Š½m_ˆÀóã"j±˜FщÉ#&÷%ÅÁåÎJr' ‰ujMª&7yuð¢iòÞÀh Ò¤M#-ðâ•BHúå'§šh8 @÷ìrz()çÀ>»ío`Î9{wuuý÷^kïìa>þ ä4]]Ë ŽŠ´•ŽÌð<‰¨åµYÞTgaªF³õ®8½5×ÏdR•LæTlk[zNM©ð©p,ÎNmm+,‹dû4S‚,‹ ÄqŒð/˜LY“) Ç$“*|¼!‚xbyª”  YŽS +—‹µx\o2¨yž€@ ´·«4• ôz”LªB<:]v~ž‰DTmmË,‹xž‰ÅÔØÚÚ³,jmÍ/ù…ë%9@–hT£Ó¡æææ.Ç1SSêMRnÉEX¯ÏNM©õú\ª©«Ë |ŽcÄÝæçóË¢ùùÂ>t‘Lª ¢n6¡q«Á€š›Wb±¢Kó’s‚Á€"UW× °,ÒéN,¸$`X™LÙ‚ëmm+B²ª«ñl ‚d2_·ðÒ£®®hOq«Á€R)ªf̧OŸvÄß­AËWǤRjñ Á)·Ø0*hÅ Å W(Õ}À–àyFȺÛ×È ›*eY299 …Àf³?~|—ßeaa¡ò‚Îóü“'OzzzB===µµµB·]„çA§ÛxTžLNNã ×ÖÖ²,{÷îÝ£GÀ¥K—€ÐsaaAd%X¥RêM¶™Ñ¨F¯ÏëÀóL±e(“ÉdJødr jm¶% NNNŽŒŒàÐ_¼x}s^½z?~ÜÓÓSSS³¡Á ¶µuÇ1™T¥R¹]SÓ²Á€6oF5?ý´²ñ*¨œxñâ…ËåÚzè Ø\‰dRÅó̆»0Žc8NUlƒ¶~%¦|ÀÑ¿}ûvkk«DSÅ”(¶N&Uø‹²õ¦8މÅ4ÂäXO™ côŬWä.Úå ÀE_ V Äèèèhoo—b™ØF,ÔƒÚöü ìÕëñõRpôÿýú5Žþ¶íl~pìØ±k.WÿÀÀÀþüG_wë–ô8Ð=vaìoÎ^½þ“´RüUD4%}}(õ~€ìlû~@6›õx<×®];yò$EwÖCë xöì™F£9þ>~ëÖ­;wî0 á;<Ž“h¾€“Ëå:qâi_d€>FGG•|0ÒSed³Ù{÷îõ÷÷O>˜ŠKAxøÛl6ÒŽÈM(møƒ,« ŠöÏŸ?×h4gÏžUΟ››iÎP3ððw:Êþ²@£££Z­ViÙß°oŸD t ØáÏÍÍI´@‡Êþ²@ŠþP!)HÉÿ"RУG®^½ªÀá/ Jß|ùòe||Üív+gí/fßþýs?J± ôà÷û;::êŠý%8i$F.@6›}øðá•+WH;²ƒ(Z¿ß¯Øò‹Ù·¿D Š@ùå·œS.¿çÎ#íÈ΢\^~1圂†‡‡»»»I{ñ¤§ ÂûXýïÄàüsãÆ âîí4 TäØ__/Ñ‚BQ~þ€>H´ D*dýƒQ¢´ä(ׇiþe˜‚B‘H¤­­´#»„âH$æðáäÙÒSâî¼|ù*vÞ¿/·¿ V«•´»‡²øúõëÄÄ-êhAYP´Å|xÿ^¢e ‡»ººH{±«(H e•‚’ɤZ­¦eŠ)«466ÖÞÞ®ä;‚ö‘HäÔ©ST,ÿ<øþÝ;)”2h, 1ú h,² ðð§®8xP¢e @Ú‹’)“DiE@o(“Di9R"öccc§OŸ¦k ägB(üÕ+)Tt `Y„Ÿ¯†U»°À°,ÂÇøéøX¯Ïf2*ñ±¡?„B5¡PÍÄÄáá‘xר¸Tp*X¨èPÅžG+ N,<ÞqÐ;;¿œâ>=2~<»p?‚9“QáV½>‹3O±ç2‹ûcxžÁôììü†³œøT°SÑ3€çaˆ«¨¸µ¥å{AÆe_YÿlHq<&&4¸êËz}vzºF8^ΤÓéøl[„àF —Ê‚¤±E2U&£§òmS¹û„J~÷éi­d:;¿Éâx妠õ5ó‡È2ä ¨aÂT LUÂT LUÂT LåîBu¦*aª¦*aª¦*a*Y€Ûdr‡;¡BäH=üÕá¨7™L¦¡­u7ýú0µzºaZƒ¨i‹X½)@ B3 =Ôg6»à¦Ï÷!‘H$º‡Íf³;\²§/‘Ãçôº†HÞÜÛ&D»mƒà >è5æ.X¯'|N¯Ã¬M_>”a·ÙìCz¨Ï6èÿ ÍlÞH,cƒü³éœ´¢~EòÛ’!!@xØ Îß…èc¬ÝNð€±÷AÐc»'˜H$‰ë¿­›<õÛ=¿Y ëf"?-¼¬ez¨Ï6Ø´:_‚ûš¯6ZÝ Ü’LÇc`¿l,¼ll°ÃÓxÖ5l‚×aö®;}Œ`4æ X»àM¤ïú¾«ñ5ö>¸XíÜt$|Úï ;}«£6=Ôg3»ñi.]­ö)*9€×á»'Ø[Šì²B -M8]¯%=ë‡&Ëvaìý§°°ÛœO6>ç^çô.ß$j€µÛ Þ? >sxØ Îîíçt<&˜ñä“"’ç¼¹îsúm$ 0¡}ÀWÀƒ6·°ú¹Í¯sÈu!tØvÙîHå^Ý6ðÏæû 4 „B÷ýà¼pæpƒbqÜ)5ôGîÅgú¾ò(<9Mg#¥ |©«£<ÀB¡U–T$‰©Õ«Ï‘ ‡ÍÍYÏR@¶YŽKj5­V/ä°)E@šp8œL&sT˜šš:{öìõë×Ù»ccc?—7|>¥Ï§ü·ù_hãY• •º1;;;==]ôéhc¦¶öµ×^;~üøÆ,uFFFþ×Ýý÷ß¿÷Þ{Î;NŸ>ÝÓÓƒõ÷so,•Jq·R4>ŸÒhÌ¡kÒÓÓãñx¾ûî»–––¢œ8q¢³³Óív744X,–½{÷²ŽŒŒØíöþþþýû÷߸qÃëõÀ¡C‡vïÞý¬J5Ë­E/À±cÇš››§¦¦~üñG +æjë?ÿüsôèÑ_ýõöíÛ¿üòËùóç‡N§CGÙ­ÏÅÏlð¼àx?€¦é™™™wß}÷êÕ«‡.ÂÈ•+W^~ùeÇNœ8a4Ožú製{÷rô¸w£G{`À0Ìf³}þùç9.“]ºtI©T9r¤ÌæÅz^zé¥S§N}øá‡«j022ÒßßÿÁ”dê©Þ´‰£±.ÄVŽÀlt:ÒÀl69r]\›ššºråÊàà`ÿ‹/¾X7ˆ{÷8Z«‘H$cÎ@§Ó>}zhhèý÷ß7›ÍE šÍæ3gÎìÞ½ûiºš± €FàÜuÐ…ÎÎNŸÏåhzõ¦Mƒ@¬LNN¶µµåS3ÿ ;EÀ=‰r¦izllŒ¹d/jDy? *ŠmÛ¶ñë<lÚ¼ùÞŸr± Êommåñ&ÇÖ‘ ðÛo¿å¸I".D)@¶%ØÓgÓæÍ-ˆO€ùùùd2™m ö”©Ä´æL\ˆO€|–`OJLAÁ`°| «Báž‚Döû´{ûí·yw»Tˆ,b±˜B¡¨­­åÛ‘4›Ÿ{Ž£‘ œ%âÏ»w9Z™ë惘 iEߎ,SY)HhTZ ÔPÄ$€×ë5 |{ñÜShîÜ¿rròÓO?Ô àî;ÀÍÑD€Çã9pà@M¶GĈÑÚÛÛùö"“ç¶láhApЏ{çG â ËårAM@K…8Õétœ€VJ òz½z½žo/V¡"RÐýû÷ƒÁà¡C‡øv¤,ˆ`0<<|àÀǵ@lÙºõÎíÛ\,ˆ ._¾ÜÑÑÁ·«Ã±õAø ü#À@©º_oÙº•£¡ äüë>­ûü@àùÖw ¢(Êív›Íf¾É÷$Üu€ÇãQ(ƒA€Óÿ"Р(êÛo¿}óÍ7xý‡ÍÖmÛ8Z¨W¯^U*•äÛ‘5¸ýÇ-Q±tÿ’ DÄÒýa]¦ quÿu˜‚DÔýK‚°W÷‡R¤ aý>`hhH©TŠhîÿÇ­[ëçÿ‚FGG¿üòËžž±tÿ’ FGG?ù䓾¾>áüü(¶qþG þÖqýúõááá‹/öõõqy7/üüa€‡\,ð)ÀÄÄÄùó`pðèÑ£ÂùíãÓûé'®O¾,šéé1¿Âd:¸}»€ž Tÿù¯úgn ˆÝºu«TÞß¿Á`àÂüÂÝ¡ ‹p~ž£ûüÏ‚ø‚$±›7•°ô¶ï¦¦…êjúæMeu5JÉ †‡$‰ƒÏ Ê(ϰKpœnl\ÈV¿¥åŽÓ‰„<™T Ê--2vQÍÊHC-•JÉ"eKË#’Ä4šÇMM  >ÓÔ´ RQ‰„<Q65-0%lñØõnÞT66.$“ T‰(Icï2>Tô€ã4zýzU탎Óh½ým«TT*%c—°-0õÀïßà÷oŸa^é÷o€¦¦…Œ]ÆBEG@Ad{-;± PGn0<ÌØEu*:R)z=;S‚^ÁŒÞ šJÉT* ežlïef×G$†^éi0iæIž‘àIž‘àIž©Üu€@"€g$xF€g$xF€g$xF€gÊþ>áĹ×ëŸùW…¥¥»úëçK»þÏꞀuhPÎHººµZ;ôÅCZ­¶7P°«;m æ¶zlvŸwðJOùômàðýÐ¥Iè?޹­NKo6ÝËMèÕj{tumðØŒZíjbiLà™N.Ÿ³ÄRÍÕÍ.m¹\Ýéú¬:¨›dZZ6Þ]fÁË&@`È Öw˜ÖGè;­àÊš®|˜¾X,‹}œñ˜¾¤÷‚ÇäxC^­%œ®ó9–,RÒÕm´5/…˜Ïa‚´qH—¹›mÆ"¢6Ê%@2Sƒ&³XÓ`‚p´°>å´¤;£ÑæA’&]_;M޾%u5]}“ó뵺*Ó4í¯˜<¼I€À÷6ÕÍ­éúác=†œi™aÍ.Ãܶº—b!éê6j{ݱÎi4¿ÃRWSß žé$ø`¡d4 ¦W4+ =N£ÖÆò HÏó¡\,5 <ùõ’™MW˜Ñ®w¬6ËP “»¹1±Ç®òR¶1@ßi…i!0äkgñO`MFÃK¶ŸHdYÞZ0½dÍÂòQ¾u@›Ýë›±—™ýû{µ§Õeo£iºÖøŠÉsÁ›H°8uoÀ3½<Ù`­üßÛ<`íh£Û:¬›Ý•®–pÙmëqKmn³¬¤wÛº&§…íb¯Ÿnë°«0áêu•qñQÎ1@cù>j ôÕ×w€ÕÚ—õ:.´·w¡.«³‹]ÞUïD't€í˜Þ¨Ez{ÔÕWß^ŸNÔVWÔ®g™­·e˜Íá¢Þh¯¯_þ=ê‚zæSM¯…[Cä‹F£å³¾&@•^?Ï£¼#] âIž‘àIž‘à™ÿ ý9(½¶ÌIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outcirc.png0000644000076500000240000000535412536324472023611 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ žIDATxœí]L]ÇŸ™¶²t³q?+mB,hLê‹$¶Á¼Ü™¼³›”ìFöJßì•Æ à¥¼I7Â&&½‹µ$»7.ñJ4MhÚ”iãE 1é~ÑD^™Ù‹SÆ¡Ph™Ê™içwAæãô™§Ïÿ<Ï9gZ:Äüü<àclLßÐð £Ø!q;PêXŽ#&&t…µYÜh€MÌèsoŠÊ‹8f¢ñ3'ãñ´ŠµµkbËp˜D»â¶´:ÕÖ®Q”P°7¡fò€¢†R)Bü ••|e%©“h{KDñ¤òhä!0 ŸJ‘ ³–J¥c-í×ÛtjŽ#`l,¿Ë•zAÈ£д“‚ püâ"11AÖÖ~£(ãˆHD‡¬mü h›¢„Ÿ~ú>åçå^Þ¼ÑBMM¹›Já°n›’›÷ LÓ|8¬£ét©)/OwüTŠ6[\üîP”°¸˜ÙF]ÄãdFôß¼Ù.¡ÑY†jjÖ"‘¬Só¼kÃdCÃP”`4 ¨° !AQBe%Ÿq¼¶vM,Våå ÍU·ÐÔ£¼rD¦  ÆîÿéãG™$ÀóçÏ[ZZTÔý ‚RXXXƒ¸Éâ)A§®®®<Ûϰ)•")A<Ï»Ýî+W®àvŠX á×áp¨bî/åÈÑ£?|cA0::zõêU5¿2£J@„‰‰‰ÚÚZÜŽà¿ñx\§Ó?~·#»áÈÑ£2-àu5Ö(Žôöí[›Í†Û là Ÿ:u ·»Dõ%heåk2™¬ªªÂëÆ®‘_‚0¯ff‹E¯Çÿõ$\`΀d2\SSƒ×9=vL¦ÌÌͽ7›Íx}Ç÷ïeZÀ,À￳ôú/–&˜XX˜;xð ^ä ú´°ÀªZÕ— /_´„µµµååÅ`ôA&òKÎ øüüüþý"B½‹€÷33*þ^ÐÜÜÜþý* NX–=p@ÝÀ1ÙwÑq 0??¯ö øïäþj"æ¤ö Þç+Ãwõ³F£«rùó_™I@ÌÌÌÊ›]àó•9ˉ|ÿñ Sâ(â{A‰ÝþU¦ûªüɲ‚ÀqÄô´ÖŸömµ®Âô´ÁhX–t8–9Ž÷¡Æ¨ÎHP”pòäj¶ö6Û E ‰„.™Ô£Æ6ÛJÆ.jYºÇ(R,KNMl¶Ž#L¦oVë*ƒû¬ÖUšæ ÝÔ”Áj]HÅ“¶ušž6œ<¹šLêÑ‘©)ÇÒ]ч’(J@¿Cª]Z"(J@Ûèéh›¦y–%¥G¤Äöàó•ù|eÁà>ñá‘hŽgµ®fìŠJ:ò"ÛóhE¤…ú; ºÃ±œ±‹Ú”tˆ°,‰Ï.A`FOPeY’¦yTy²=—YÚÁqz¤§Ã±ŒªœtW´SÒÀq„¸ D£¨ô¬Í¶’1£aÙüxZi{” Á º&Ó7𿧦ÊÄ]ñåD2™üï-G0.ÄÐP™Q4r„eI–ÕIKù®)Ýu€ ä}õ©)ƒXdŽå‚8^º%hó˜¹#éòhƒ0f40£ €MÌh`F3¥»PZ`F3š˜ÑÀŒ&f40£ €RÀ ‚xv­qߗËÏ®U^{–ØxÐw¿r÷}ÈlN1‚;fÿÝj6wÀo1Dó¨ÙlîòçiÄße6;#.oLÄëŠ?ð¼×ç;ÜmžöúV·dep·¶º€ø‚ï×lu5 :¥—ì¹TÀ=Tüõi4úó+KšW?G£ÑŽt÷79»\ÐÞ>án[ÉÙåjl±X,Ëo~°wD£îêtK‹Åb±4¼¸ÔåÌRÅLΧc®HËzÓ–ÖˆF£/ï÷ÿÁnÿŠÑìà΀’G3š˜ÑÀŒ&fþ!àùøP?IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outcubic.png0000644000076500000240000000535012536324472023752 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ šIDATxœí_L[ÇSÚËvHöáÎø¿¶M¼ãjð[ ˜}1Y^v“öEöEã#/$›hìM*h”‡›PõáòbMv_Ôø²BliÓ änB!æÖ¶*ê“%L¯"3ûpÊ0”¶¶ÌÐ3ÓÎçÌŸÓßœ9ßs¾çwÚÒ!>}úø˜œÔ··ÅXìèpW Ö‘Y–%¦§ëäYÝh#3š˜Ñ—^Ù‹0g¢ù3‘Ð%Y››×…’óó:´+l‹Ý©¹y$yÙnBÍ”!Iò4Í3 !ü³™3›9`"‘Сí¼â‰åÑ(C iŽat4½Î0Ù¶÷ë"še ˜œ,ïrµ€žç˰Šâ Ïó, F#·ºJLOëš›¿’$ϲD,V‡¢mý h›$ùÜLù…ãeU/33z£‘?v¬Œ±Ë0Äü|]Ë-{¦(n~¾Ž¢²VÓÐíø Cˆ‹­®nÖH’_]Í-£. ]NëÏÌÐè,MóÇŽ­ÇbSó²=¦ùéi]{û:$o4òÈXД€ IÞlærŽ77¯ fÕÐâÑ  ‰Íy ¥ KŠÏÒ4ŸL‚0kæ@,//ïJ}KC-oE0 ‘LÖ‰; ²ÜBÝ(ç,Jóf(Ú: $X–\w 92ï)M€J@’ÉhàƒeÁh”) ªMH’O§‹µÕÌŒ^xG`;,KJCË[ìØ+P ÅÏÏ×­®fsîDB—LÖÀ䤾±ñ+Mó««`³qè^¶Ÿeâðáõ¼wª-MKåðáõDB‡ÖÂ0†!(Šúøö³°5M£YP©˜Í\&CÌÏçYR±,AÓùs$†!b1}ccÁų6Ê PÖ_ä-Hšæiz­HLM€<ÌÍÍ…B¡RJ¶¶¶¶´´H¹6 šš2LMþÚýG´ñ=E¡ãX6âŽŽŽŽŽŽŽ9r÷îÝÞÞ^bh2ÞºõÍ )étZz”35ehk+6Bw¡›g2™gÏžuww×××£SÇ/%È÷µ,­kÑ‚æææ&&&„F7###%¶x[°¯*üy€¸éïÝ»'nt\íP+#@Üô;îïÛ¡h:Í0R"T¿»Ôô‰­U/@$ئ—‹jµþððð©S§véšåG°]m}ªð½ H$ÒÛÛ«ÓéFFFvµõe¡ÚF@lGŒ TMë€H$288844ÔÔÔT™ûb>~iª Z_ù¶#¦JÀÕúôž=#Tƒ³³³¸ú>óñ£Äª€ã8¯×Ûß߯.çP½/^¼0 çÎÃrué¤î44‰ ݹs‡ ð|í·¦-H°þ“'Oâ®ËÎQë:@°þŠ¥üyÙ³wïǤDPë@ÖöìY¼ÕØú Ò9`vvvxx£õˈúFÇq·nÝêïï?qâîºÀž½{%FPŸ 1DÍYP5™BM#@Q惨- Ê1„ „ýëù%V€ã¸û÷ï_½zµô—¨ÕŒ€ññqƒÁpæÌÜÙÂÞ}û$FPÇ$ŒæÞÛ·o+mîýðþ½Ä*Ç ]»vM9s¯Œ¨@νÒ-Hép÷àÁƒË—/+Í|ÕoA¨û+mî•E  ðî²dAJþ<àåË—z½Þáp(6ñ¿´Tµß â8îáÇJîþ² \€^¯W¸ûïÛ¿_b…  –îÿ~iIb…  Šî/ àÉ“'.—KáݪՂVVV¢ÑhGGîŠ|›ê´ @ ÐÚÚÚPè7ñª Å­8ŽóûýW®\Qlî/fÿKïÞI‰ ¸ U4ýJl}Pš(û¼té’ò§_¹P–êêþ°ÿÀ‰”%€Z²Oª² ”}¶··ã®HEQjÌ>«Ê‚&&&ºººp×¢<¤[RÖÈnܸ¡Šô_F”2‚Á`KK‹ºü<(1‚"@«ßîînÜ)›woßJŒ ‚Á`uò^EðôéS§Ó©¢ô_ ,HÕé5XJ§_¹À/€Óé„yÉü/^¿~]¥éÿÛ7oÔý½ _}YËþ؈FÇqýΆ,Jn=ºiÞÂÍP‘ÀðÛ®“|tñ¯«•)Å2?½Fœw:÷yÂe {,gÌ;õZ`ÊûÙ_î{&רë׃ö2_%;• ìiëïԘ˔=`|üÏ«>§' H›žÍV {,ORþž¶¾úÚ,‹Åâ CØãôuŠƒ€É56æ2åâ}ËF”ìlñ”¿Ç²IÙ=B <î÷UqÃÀŸþâßxÁ[6¹Æ¦¼Ð™íïƒöð¸:/´› ½ >çøy4\»}N‘NHãÆÇÂ`ê,7´4*'@*ƒÎ#ÛZîð‘NˆÅKõT<Ðh-»ýÁýxÃmìÿðvžOn\1üK_`ó$˜\c•µ¥ZÈ‚r0Y!ð*+ÀRþnQ9*'À–ûÞ$ù*PF—6Y¡Œ£*8ìçÝàËÍVþû¸Ï—>èíçÝ 2ŠÇ6/¹?·¨•\œ˜ôB_›GȽCçŸÝþÓ<Ïj»Ðx>™Ü8áѧWÉÍ ~w ¯­Ç/Z$ý==þdѱxr£ì@_ÀÝuþt·Óç×ÉSѵAeç“ó—x¼kše¢Ëï_°oœóx¡¯}ã„{ó5o§ÏeµZ­ÖŸÂ`ˆÇýÙ’V«Õjm~Áã4ŒÏ³eûýñû–:Mzc®X®Xeg"Wòz9„ðÛÇXìÔ`¤,40£ €MÌh`æÿ  ]Oä2pIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outelastic.png0000644000076500000240000000653712536324472024321 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ IDATxœí_LGÇkLÀKRÖI 16JÀB¡© 5-JÒ§ê‚ݵðpáÞ¨Ô‡6jOBM¤H9«º}HËCuq[Ý5i"Ý=¥ªÔ*к2ªZ(U“ð§T`;”Äë¼æO¼sc–ÅÀfmÏ.ø£(Ú™ÿ<ßýý~3kã¡?~ äp8Ô--OÄ%ýýýŸ~úéçŸ~ëÖ­o¿ýöÊ•+¤lË*ÒDãt:Ïœ9CQÔÉ“'øá‡`0Hڢ̒f8Žʓ҃Ûí6  Õjív{šL“)²ó—ËU^^Ž[ZZ~üñG²ödy °¼¼Ì²ìÁƒñiMMͽ{÷Èš”iR€ã(‡C-œâc—Kåp¨ñ?Ž£„–B ŽñåQ-£˜™™)--ÍË‹\k2™~ÿý÷¥¥¥Ôß—bPoÞdšF:bYJø Þ`à€e)—K…ã24”‡'<GŽªñm\.N˜ÂÂBƒÁðÛo¿ÕÕÕ%o§²HAÐéx–Uéta–Œµøf§i”èB|Ë‹(.Q@mmí½{÷¶³%µX¹\*„ÇFÃÔЪ±ñ M#Ž£ÆÆòpoëÿ|LÓèøñµ)¿P.6`vv¶¬¬L\b2™&&&R22s «5tôhßMËR££yáDwgÊI˜aøÑÑ<†‰„š¢¢Èϲëº0}Çå4‚Áè6±<|øpß¾}â’ÊÊÊÉÉÉTÌ.—*jô‡‡7rh\«Ó¡£GÃcc §æ©… ÜãЪ¥% 44„ N šFUÞØ‚UQˆ½A€eÙ(>,„¼år©\.UQQ–âZ¹Ý dÍ(R€¦‘øáA¬?â‘’s¢ 㲬N§—0 ‡?~üÔSO¥jjaYJðu0x%º¯ck†ç8 Ž2Z „¼^o”PuäÈâNÀq”u·Î‘q«d$@0T«Õ………Qåò‰B[†¦!’½^¯7*þ`ªªªÆÆÆ²oOá8ÐhÒ4 Ê^¯wÿþý±å555£££Ù·G M#Ÿo£±V»\ p•hšÚ: `ˆµ§ªª ?صkWÖ­‹À0ht4/Œäa—Kåvç€Ã¡®®~¢Ó¡`L&[˲Tyy8îP§< ʱS Œð@¢¶¶vã~ùå—ÁÁA0›ÍÇŽK¯yååa—K…g}Qs<–¥†Ï‘¢jaý4]ŒŒBУGJJJâVÕÔÔܹsgƒkÇÇÇ?øàƒ7ß|siiiqqñüùó===¿þúkÍ3øPˆ3õä8J§‹?GbYjlL]]pñ,#‡Ž[U__ÿóÏ?¿üòËqkyž¿té’ÉdêééÁ^òâ‹/Þ¾}ûüùómmm§NÚÔ’t¸‹GØà¤N‡tº• ^ZFøýþâââ¸U'Nœøä“OBg2÷Ýwß©ÕêË—/ µuuuuuuÈ Œ8„B¡/¿ü²­­ !„$ió‰'ž~úéÞd ÄBÐÀ@þÀ@þ™¶=ø „a@qqq ÃàâƒÁ‡ÊÊb«xž·Ùl·Ûñè‹«êêêÞxãß½‹GÖVYyõêÕ«W¯þ«²+Í{ï€F£ùÏÝ»¯¿þ:nŒGW%y ÊçóIïeË ä›Í}å•WÞ}÷ÝDQèÂ… Ï<óÌÙ³g£Ê¿þúëëׯ_¿~=®sܹsÇáp§Ï?ÿü¦)=Jæ‘´TF€çž{®¯¯/J€ááá÷ßÿÊ•+>¬¥ô*Bâèñu€ðyBÈï÷kµÚDö¼ð V«u~~~÷îݸ„çy«ÕúöÛo;vŒøjfËÈeº¸¸¨V«óóó5ÐjµÇÿþûï…œ{Ož<™ãÃÄ[¸¤„\Àxã6gÏžýâ‹/ðÍÎóüÇüꫯn|2Še%ö ü~ÿž={6nÓÚÚŠêïï€Û·o«Õj³Ùœë2ˆ\’p Ø»wïÆm(Šêîî~ë­·~úé§o¾ù&™Ü›iN¢(É ¡¡áÃ?Ü»woOOO}}} Ûé!HFŒ± %)d䛆 "}$—u€ßï/))QÜtžõzAšÍrñ€@  ÕjI[A¹0??¯Dtë¿Ã±d$@’IXV°^¯Ää"@’ÓÐí‡\È… Â$¿Û$…ÃáÅÅEš¦IBY¬„§üŠ[ìÛ¿ßûð¡”dá €ÄÑ™ Ðd!€B§@°/Þ—YSB(×¶IR®HG(×r!ˆ0ÒC,þ> Fâ–A°°° Ð°ÿÀ‰=ÈB冠‡HìA.(Ô¤#êÛ$)w°BÐN~ r`aaa÷îÝÄ¿d¸5¤‡ òŸà ÐEÀƒÙYÅ/H¹ -@¹S 8PZ*±ò(ÚÌÎJ켊öé@ѰB¢ŸCl‡477Gö÷àÈB~077§Üu@iYÙìHé¼$óçy²Eâ胘››Ûô/„·1²@¹Pºú.[†°<…BE‰~ƒVö(>…B­V«ÐG¡i° Ž?° BÇ);KA„× sÅÅÅ ]¤…œH¢lu¿¡-“Ë’øcfFbÄx¤h¤CX¿?zÃe¡øÄÿÉz¥ ø4?Ï2«?µº3!)B(ˆÿ‹éJAz"¹ƒ*•º  @¹ë€™û÷ü½ ¯×»g‚oÿ´@RŸÏW\¬à)žßаÌq”^ÿÄdZ€‘‘]&Ó ÃðnwÞøx¾É´"”ˆÅ·tš˜È¯ªZñxÔ¸d|<Ÿã(ñ©`ÃŽÎ4ðöwx«ÚPˆ¢i„ñîø˜axŸO%.÷ ´€ÁÁ‚ÁÁ‚‘‘]Âæ‘xŽg2­D =ìhH‰DûÑ ˆ ßïxЛ›—¢Nq›í>Ÿ oÏ.”à-˜ñª>ŸŠaxyíË,ná8 oéÙܼ„£œøTègG{ÇQÂ2gQqmCÃrTÆi—ÄnO+n½adD³®^ÿ„aøññáT¸œòx<™xoIBp!†SeTÐHŸOåóå‰Cù–Ù¹ë„R~õññ|!È47/¥Åð‚bs榤å–"—„ “€09“€09“€0;w r@˜œ„É @˜œ„É @˜œ„Ù Z çzI~¬!Ê.îç ˜âÀ¦ÍÏÝpÇ^-pî†Ú¤›Ä}ºoœ‹˜Bˆ,~àéí4wƒu`zZà´íg.=hjJ­›VëÀµýº"çÖÒw\›îØúåÒÉZrZÌÝ »¦‹Ó7»nýã²<½ÆÎµ â´'VÌön³Ñh4-›Œ³§·Ó¸†ÐÚiÆôé´¬¾r‚ë3L¶pö٠뵨;·éôø¨/á;Õw\°¶B«u`zzzzúâf®ÒòÎô*7»lí½§¥ÝÖuXa ôééí4wWGNX[%¾ß¤É’ž©1h=¢.Öl€±©ÔÒçêÍ‹ù^¿ÖÓé.°OzÖ¿®¾ãbGŒ çgÝö®›‚úŽk›Ê&”7 Z½y1ëÓÁZi·€¾å¥V¬XçFÓ¤Ùø÷G6È’úŠj°OÆ gfª+ÒôÆãZ¹ÙyáŽk8¢Ø»Í›¨@†ly@Óé.°}õþ}·àµÓiòõá>ˆ¢ˆ}Ç5Øí_9â*PÿþÈY[<{Áa…n³E˜rZŒí¶?]ºô,Bèù¥VûWw¤¢Ý¢ ì“Â:rÛ9À#­06…›º{?Â]¸{-½«W»'íPm<Ý'z¶ÓÚjkgÉÒÚ ‹9@ßþÙÔÔ©þŠý§¦¦¦þZ»Zg±BwK¤¢·k틵ÕÖQQQQQñž.Ù#Í"üífäÆ-uq^Â]è 4ï³:.4Åí@ßþ™Ã:ÖQ!´ÍVF ¦¦¦²óJqq: ›š @åÍ‚¶9“€09“€0ÿŽõò”2›IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outexpo.png0000644000076500000240000000536312536324472023644 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ¥IDATxœí_H[Ç“?u3^–rgl­¦‰UŒ¶—6½QhDmèõ¡°ì–]ˆ}¸½oÛǾ„¦w_,äZJ[– ¦ìÖ…aw¡PîS•Ì&ê?z!‰íÕ$S[ë¤Á±ÕšÙ‡Ç1kœ˜3'™ÏƒÌŸã/¿œï9ßsÎL’¡Þ¿ø3ôô|˜vt¸¨vJ,€ PããúÒÆ¬l´€MÌö^Ù‹4f¢ñ3•Ò¥R9Žu©d,¦C»Ò¶ÜŽušKö&H¦hZdY‘ç)é/X,Y‹% ®s8>Ñ´(T<®GѶþ´MÓâ×_oNù¥ãE%€—‰ ƒÉ$¶·ÑwyžŠÅô»Xnу0Ãdc1=Ã䬦¶6×ðyž’[^ÞÌhZ\^Î/C©”.¯ö'&vëÐè,ËŠííëñxÁ©yÑžÀ²âø¸®§ghZ4™Dd,hH@дh±dóŽ;ë’YÕÖ‚¼7A*µ9n¡©GmmÁ’ò³,+¦Ó šyPïÞ½;|÷)—"xžJ§õòFƒ,·P3Ê;‹&Š;ÎP´uÀžJrÝ}€ÆÈOi”š†•M|˜L%šU'4-f2»ÕÕÄ„Aº"°A  MC‹[ØØ #ÆbúååÜœ;•Ò¥Óz3´µ}bYqyl¶,z/ÛÏòŸcÕ— "@µëÖ­³gÏâÍD¹‘w)B=µ¥° ÂPUí—’Paí3,«01ë€ÉÉIŸÏ788h·ÛÕ3¯çAY2dô€l6ë÷û¯_¿®ž¶_*ÈàñãÇF£ñÂ… ¸ɇ­«S€ièäääàààíÛ·)Ju¬ãFP{ÌçôéÓ¸s9Ô.À“'OÔi>å¤j²Ùìýû÷= ÍQᄚww7îDõ®Pó¿zõ*¨ø‚~Ý‘#‹oß*‰ Þ …ÔßüÖ>¨Y€‡^¾|Yµî_*T*ÀÒÒÒäädoo/îD>CÝ‘# #¨T€P(ÔÙÙY[è;(ª¡b-hdd¤¯¯wå@ ÿ9þ<îD>OeZ)þ¥° 5~?`ddäâÅ‹Ø+ªë¤ÌGŽUAuä?ðvaAaÕ 0::Z%ó„º Ë ò,ˆ,ÿʳ h4JPó/ *@Åññq‡Ã;‘"PnA*ºL&õz}CCA+€…7o*çsAÏž=ëèè¨øëÏy¨HâüŽÖ×+Œ HY2Ô"@*•Òëõ¸)7j€Ð r,èùóçgΜÁEÑTŽÅb1¢¿êµoT±øðáÇqÍÍÍ­õÇŽ½yýZIUô€D"ÑÔÔd4q'R4 kT"@<oooÇT!@,;yò$î,öCý±c #¨EB{@%X[ZZp'‚ü;CeXÑ#°r ¿xñâEkk+q+€R¿ÌÎÎ677ãÎbŸkhP³¢(ÎÎΞ8qoûæõü¼Â˜XZâ ÃáÇñ¦Ì,,üF®ÿ@XÐÂÂoäúT€-.&›ššðæ€Ìð|Úl6ãÍA Ê-ó:€çÓä.æ_½"øsAkkkKK‹õŠo« Næçç®×ë ~þpƒâqà€ã¸º: Æ”óŸ“ü«‰DZ,Ù(ljäÿ®{ÙX]=õÅFŒ (ç/evêÕ«W¥ÊfD"5]]1& åùã¿Zåà¿@î"œÎ Ó'àWA ffŒ°ñ´o›mÍdgfŒ&“˜É躺> 55uF>#?BÓbkëZ¡òvû*M‹é´žã ¨°Ý¾š·‹JV¯ ª©LF—HíöUA ÌæO6ÛLM²ÙÖ&›Në £Í¶&‘‹'//é43clm]ã8:’H’ïJ9Tõ@Ó"züzTíÊ EÓ"ÚFODÛ “Ídtò#òRyˆDj"‘š©©CÒÃ#ÑÏf[ËÛ•"Tu(ŠBÏ£• µwTé]]óvQ™ªî™Œ=ž]:‚ÁŒž šÉè&‹œ§Ðs™åå‚@¡Gzvu}D.'ß•âTuJZ¢QT~Ön_Í„Ñ0€Žl<­¼<ê SS4êšÍŸ&›HÔH»Ò¿SÇÄ{Û#bh¨Ì3=’Éè2½ÜÊ÷Mõ®D±èWO$Œ’Étu},IâÕkAÛÇÌÏR’&Ÿ‡6cF3š˜ÑÀŒ&f40S½ë• õÌh`F3š˜ÑÀŒ&f40£qþù[‹Åb±XÜÿúß‹ûszÛo";Ke¿À¯t{ÁN&Íý‡ßjý³g8yÃY\—?ü Ÿà¯ÖH”Ù‚¢Ý^×ÝW?$‡=÷@¸àë• ·YÖjˆ"ÅBòv[­V«u Z8¶ü4¼bÍEC¢Ö²›w‹|”W€èH2à€ì†AèåæL@:³…ÈŠÕèþÞòú‚iYù2é Ïò|sNÏ}#/„Žïn,éûý<ÔÜÜ\™5€èͦþüñ¿s—ýb:7ü]7à ¡¿‚s>gÞñ¹+É —lnôxÁ?öO·Yz OpÎ甽ä"ø6ú›ü”üxùÀ#€D4ú;§óÃA¿ÈÍ&IIÕ¡] ÂŒ&fH]ƒÓ‡ÕfwGë˜ÑÀÌÿnžÿ/ÔÞIIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outinback.png0000644000076500000240000000572212536324472024117 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ „IDATxœí_hGÇ«?ñi}wÕæ¿"ù0±4œ'!–¥D }(¸î@îAÜ—V<–‚JÚ·VÑ–¾”>(ä!yHd¸;h‰óT']*E"ŽÿÕ´gÙ¬?i“zÕB‹×vïÜÃÈ«µ,É’v¥‘¬ù<˜Ý™ÑÌì|ç÷ûÍìJ^æ·ß~r„B§ó9ÁGGºÍŽÆˆ"39©×¶ÎÝ µÂPc(½(v/rÌÄñ3‘Ð%{z6ä’ss:|*+½SOÏË"Í.¢‘)C–E‡‘ÿ€Õ*Y­“Hèðq^dñ”òPÊ8NÇmBf¬•óºÈ¤EB¡òšk •á Ìf”HèB¢&“´¼ÌLNêzzž³,E&ÓãÚ¶þ|̲èäÉì’_N/«d™š2˜L¨«« ÛfnN_Äå–„ÍfinNo6g\Mkkfâ £,¶¼œí°,Z^Î-ÓX$ºœÑŸš*fÐ8—ãPW×F,Vpi^¶Oà849©s:7€e‘É„°cÁ!òÈj•rÒ{z6dgÕÚ Jkh‰lÜÂKÖÖ‚%•¹‡’I£f̯¿þZ•þ–F£ÜŠ&™Ô+' v¹…¦QN.^(æ]¡Ð}@Iˆ"#{Ý À12o °,¬¬PÈ!Š`2i´ jNX¥ÓÅÆjjÊ ßØŽ(2…–¡åíªñ”‚ÙŒææôËË™5w"¡K&õ :;ŸsZ^†Ž _Ëö\A`ŽÙÈ{¥tkZ*GŽl$:¼oÀ`1›%yŽoÏ…­Ët%Ô•ŠÕ*­¬0ssy¶T¢Èp\þ5’ 0±˜¡³³àæ™Z@Zõ¹ÉqˆãÖ‹ÔI- r<}útZTVE¨>¬¾**@%`ÿÃ0 uAdÀuA€&µQÊFÔ» º(å@XZº¨1rÐ*@y „”p{÷ª¬ P9;aiIe…T€òÀ€a4ûŽ% <¾ûî;»Ý.ŸRTS~ÿý÷éééóçÏË)ÔÕžçÏœ9ÓZèK¹A÷¥"IÒÍ›7/_¾¬ìðÞ}û–~ùEMµÔJ…çy£Ñèp8”‰*G¨¥óÕW_½ñÆ®0T€’Àá÷ܹs9é{÷íSY3 $xž?}úôöðK]P-$éÖ­[¯¿þz5*§ìLÞð‹¡.¨êH’tõêÕ·ß~;oøUï‚èïvà›o¾1}}}UêgÃ|;zvv6æÍêëë{ñÅ«Ñèôôô§Ÿ~úÙgŸZ}îÛ¿ÿ—føjâøøø»ï¾»¶¶¶=kuuõwÞùâ‹/®^½úÃ?hب$IŸ|òÉ{ï½wâĉBeTŽ>4„ŒðÁ~¿ÿ¥—^Ê[``` c%[ZZ4±‰±±1£ÑøòË/«¬§8õ.ÀŽ£Ç?~ü8äSB.S®$ãããÅF½ bžª6"5Ü¿¿§¯ïY¡ÜRF?/?þøc8–OWWWoß¾]ºqTÜnÔ¯ÓÓÓ^¯W«QÀ’ì¨Äììì½{÷FGGk3úP·H’tñâÅ·ÞzëÂ… Ú¶¸] 9keeetttppp``àØ±c¥Ô¦ÞÕéó€o¿ýÖ`0¸\.Í»wìØ1<¸ýýý÷ïßWf™L¦Ï?ÿç–ØîÓ'OT~/¨ƒ°$I×®]»té’æ÷~•È¡›,õ¸àyÞ`0ôõõ‘îÈÎì?p@e u'žþ…î½ÔOUÿF¬îh é¯ õ%@cMØ}.¨á¦ÿnsA_ýõÐÐP£LM¨£}Àü133óá‡Öù%|òóÏjj¨# (ôໞQ9úPWܽ{·¿¿Ÿt/jM½€ýÓé$Ý‘ò8pð ÊêE€Fô?°›\Psú¨ÔÿÀ®qA ê@ Tû€h4êp8hù¯!ä-!455uòäIÒ©„ƒ‡©¬¼‰DB¯×kò¯_jÏÏ?ý¤²òLNNöôô4Õý%õ"é^THû †° \ÐÒR¼q€&àÑ£‰†ê]á}@<>{áÂßwðÓãÇýÿ‚R©ÿuuu‘íYH °ºº*Éööv‚}PÉ!ÕÑ‹¤ û÷ÿÍh4ìƒJþóïFþ¯‰±XÌb)é;°»C$Ò²s©ê°²Òù 'v@=ÿø'§Ò˜ÇkÕ› ˆDZìö<¿üjÔ÷Ÿü­ˆ&§.žì€Jz{WUv¿PD‘YX0ÂæÛ¾;:ÖM&´°`4™P:­³Û×D‘™™Ùƒ c?£LaYtôèz¡òÝÝÏX%“úTÊ€ ww?Ë9Å%›WET:­›Ÿ7vw?EÆbyÞѱ33{::ÖÍf)™ÔÏÏ;:Öå¥xÊò²N Æ£G×S)N™Ÿ7Š"£<•ûÐÔ1€e~ý~UíÊ Ã²ã·?âc³YJ§uÊe ryˆDZ"‘–™™=òË#ñ¯£c=çT®¡©- , ½VFéX0x¾ãA·Û×rNq™¦¶™tZ‡_Ï.§àW0ã7¨¦Ó:³Yž§Ð{™•å1¢ÈàWzÚíkØË)OåzšÚD‘‘·8Š*s»»ŸåapÊö×Ó*Ëck˜™1à¨k±<7›¥ùùùTþ8“J¥ªqm%Bp#†CeŽÓ(‘tZ—Në•®¼bšw€PÙ­ÏÏe'c·¯iÒñæuAÛcæŽh2ås A˜0TÂPC €0TÂ4ï> N @*a¨„¡† @*a¨J">«Õ©i“:T+’·.Z1EäDØÜ ä-~ñV2ç£V9-‘¬[(R´€P¡U‡šX@*8l³]ã˜1›ÍæËÿ.€¼X†nÄÃ~¸üáø!K±¢ž‘L#ñï½$ù¸¯$j @Ôçð‚?œ¹Þ÷ã#ž€Û€¥›Ã¶áì0E}6›/ ©à°ÃËïuØlÛÅŠúl6_08là çeK» øG©Œü2Šº fd3Ë™&•Q}¢cð\Ι·½Œ¼:ËÐÍÇãï÷n+¸“1¨°òNôTèïò¿Ù ÎMÓ‹ÇG<7,vx;7í%ìwmùðffž–5¦ê¤càjßæ6,í.ˆ-Vî dI-ÎW]üÐfMwfB;¼|¦ŒÅ’m½wÀƒÍ"zÝË{Fäñµ ÝÈŽuÆd«?ø»ï™°gdsÖ¦‚ÛŸf\Úf™Ì´x5o4 ¸Ýàò‡‹‡í¨ºXÚ:ñœÛJêmÕ¼HËÐeìæ¢>[ÖÙŒxvúœg¤¦á»ú1 wÀ/s®':Ï@um<µ“›Éñ'¦¦÷ýïuT?ÔdpöJÈ^‡O^ýG|6wÀ¼r!ÄažÌd¸ xHÀ?R,ä”Y/cKz亗OÿÙÃí.ˆ-f6Á/3 œö»neŸ|‘l g¯„ü®€{8XîF¢|j,îë‹îèÇmmCà ..^ÙÌ;âöùï8m^ðƒžÀÐæg|þ;Ρ¶üËãºà€w¶Ýñ‡.i*€?àò‡Ý€Þl.¿ßüfŸB𦳭-[ k¸y¯óM]wWÓS2‹‹‹U¬~'¢Ñ?õö®ìqè½ ÂPC €0TÂü½ûe™ ~²LIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outinbounce.png0000644000076500000240000000705512536324472024473 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ßIDATxœílSåǟӵ Ä6¤´s[â¶VeµÕ-ÁÄdå’ ŒãïŠ/QÄ4›ÆhÜ–ÔE4×ä&C“K—Ü›H¼áÝ\¥K¥í:Hh‡Äõ: Åld‡±sîowv诵;§;íz>,=ïyû¼Ï9ß÷yÞ÷=çtû믿€;ìv¡^ÿ€C8GÀµÅËà8æv—°ksuÃGÇðpŒ0óª(½Pc&?ƒAA0SQ­ž§jú|´I}¦g'µz^,&Y;ˆB& ÄbR*%#Œú r9!—‰`Á }N %]ž,©”ˆDRé|$;×ô~¦Sã8v{vÍB’Ì"H$d0( IÇ¡´”˜žÆÜnZý@,&qóûKµ‡ÿú,“õõ‹S~ª<+¸Åã––’*U±‰`>_Iš”›õ ,‘>_‰DK5ëÖÅ:~$‚Ñ«MO/zb19=_§°qgßãIÐh¯TJªTó~Ê©yÖ9A*%Ýn^?b1YZJ¢Ä‚†„XLÊåD\¹Z=O%«uë€ A0¸8n¡©Çºu)kÒ÷J¥d(Ô¨vçΜø›…r)"ÁB¡z§A)7U7ŠÛ‹&ŠIg(ü: #p£²î2@cdÒ]¼+X ÷îñpŽCi)K³ âD,&£ÑtçÊãRWÁq,Õ44»u@.àÜLHHŸ¯dz:6ç¡P ØíššR)9= ÕÕ:–Ľ‘¶mÛ|Ò#å—¦™²mÛ|0(@ëê "Á$‚êã‰{áái:>eŠ\NÜ»‡ù|I–T8ŽI¥ÉçH‘æ÷ kjR.žùÈ‚T³þ4— ¥RR*Kc“€e2::zêÔ)—ËÅÐg ‹†‡E-û6 J$¨¼ >üòË/ÇÇúú–wìt°h4ÊÜʲété"4ñx<ï½÷^___}}ý£Éf'OAÙA„Ùlîêꪯ¯†g8_Öýøé§Ÿ„BásÏ=Ç–Û|dA§OŸ>rä†Å.ìH¤R†6y²`hhH(êt:ª$‰0´É )‰ÝŸx2%±ûŸ‚V’óçÏ:t(®ûó)h…˜ššòx<{öìaÝ2/@F =ýôÓënÃ3OAü: #Gccc¢«‘Û·™ÿ|, I’.—K£ÑäÂ8/ÀÒ¡P¸uëÖÄ]ÒM›çXÔý“Nÿ#·o34Î 0::j±X®\¹’toîòðÀÈÈÈ»ï¾;99ùÎ;ïŒŽŽÆíM?0OAÅ~K]^îììljjª¯¯ÿôÓO¿ýö[z¶I3Ÿ‚˜344$‰žþyhnn&IòâÅ‹ô iV(öuÀùóç< 'uttX,½^Oq—ËõÌ3ϤrrÓæÍ·oÝbâ@QGÀÔÔÔÈÈHcc#U²gÏz,¹`xö¡È°ÙlO=õý†a¯¼òÊÀÀÚL?°BQ àt:éÝ¡Ñh\.Ê9n·[­V§6mÞÌЇâ Uz‘Ëåóóó7n܀˗/×ÕÕ¥1§ å“*½`†‚®^½úÄOäÔâ Mz©­­½råÊÌÌL8®ªªJc„OAË'ÍôF¥Rù|¾±±±Ç\$¥1Â<Ñï._¾ìt: ©©©²²Òår½ñÆI[¯ªªúý÷ß½^¯J¥Êµ{Å^¯÷ĉ³³³ápøã?N?¿\»v­L&ûòË/—¼¹¹¬Œ¡cÅr-è믿~ë­·ZZZH’loo?vìXúù%A÷ D"·nÞdèØ*¥]»vŒŒtww†a}ôÑàààÞ½{Ó|ñôéÓ÷ïßÏÝ% ŠU(@8ž™™©ªªúõ×_?øàƒ½{÷¾ýöÛuuuÔŠW©T*•ÊôF6lØI[›ËÊAÁ F'''+++Ñ&AG½uëÖ~øá³Ù\WW÷òË/¯_¿>­3OAù>ÿöÛo‘´?uww @õnFãv»Ó:I’èŠ&Þ±Fþ põêU$À¶mÛ’Á`°¤¤$§÷ —¤¬¼œ¡…üÀçó¡y$†ajµ:ñ7é—.]Êé#™°jS5£M­Vk·ÛãêØíö†††wed^â÷û+**„B!Úlllt¹\wïÞ¥*LMMy½^½^Ï‘ƒ1ÊÊËZÈÓ Ï/`ýúõuuuô H|¢„&þü“¡…<`tt4n~ùÒK/;wŽ$I ¢¿¿ß¾}yÇ&ù(™l~‰~!444B¡ðÙgŸåÆ?å[¶0´+á¤óK ÃNœ8a2™Ün÷?þØ××——Vg r¹\Iï>ù䓟}öÙÆOž<¹k×.N|c|Œ»Ýþ /$ÝÅÉŸ4”oÙÂ0ò.îÞ½‹æ—\;’ÌSPÞݰÙlF,sëØŠ‘w088ØÔÔĵ™²å±ÇZÈ/ +ÿÀŸüÁÐB~ ðóÏ?k4Î×·+I~ PXùVY *¸ü«,aþü€ «ÕZp×ט§ |ù}€Íf‰D+ùH+üqãÆjx.ˆ ˆ3gμþúëùp}m…É Q÷çÚ‘¬yŒñ#Ü péÒ¥Ï?ÿüøñã…Øýÿû¦ÿ5‘Ë«¡çûï^ïÿz{{¹}¾ŠC„Ǯھ~]49¹þðáâø‡ƒ+/±ÿoR†A€¥zîuep8Öhµ³:Àæþs?9yw? °hh˜aè~>Þ’\p»vM oû®®ž+-%¯]•–’Ѩ@«ÅqÌë}UFy†^"“Û·Ï¥ª_[{_,&C¡’pXˆ*×ÖÞÛD5‹WÀq ©hT06&ª­½ã˜Lö ºz¼ÞGª«ç$"*UWÏQ%tñèõ)®]mß> QÉØ˜Ç1ú&åCQb1‰^‡^U{ï&“è3zû#ú,‘Ѩ€^B·@Õ‡cñÆë}„zy$šdVWÏÅmRŠ:²"Õûh)è‰ú;:éZílÜ&ªSÔ@ ÐëÙ©ô fôÕhT ‘(ó¤z/3½>Ç1ôJO­ve9ú&e§¨#Ç1jŠFQúÞÚÚûqƒ0PIâëiéõQ4x½B4êÊd$bll µI} ‡Ã¹8¶ áp!††Ê¸¤‘!Ѩ -¡§òeS¼ë’̺õ±1•d´ÚYV/Þ”8f. +]>~æ^Žáà^Žáà^Ž)Þu@žÀGÇðp /Çðp /Çðp /ǰüÿ‚Bç^“#º™Tì-{í\(î«rùBYÝò‡HSµ `/ÂÖv…¢ zˆæ…BÑãÌüû²¶³a³ æáÀÙ¶$ÿ£rc¬‘@¿Ñfê²ryO)l àìÑ™À<¼xæÞô-­=N@Ú´/ž&gBÑã„°µ]wÊ 6“N¡HËÙ£PôX­í D{ò³,SÀv=¼ø•¬%o:½ý0UJ³´h<…+Ë„%œ0¾×oš`H²¶³ÃGjÁ`Àû‰ÿþÍr!PÃfHÚÑÃö 6ƒùp8{­þ˜©À°ÙßšAø%³¶¶ëL5 !6l6@Ì8ÄÊúkLºl"{ Ø <îƒ2!mÈ”ð/¿¿P’Êô/lì –,­±Î¨3ÙP°õ_ƒ¹w¡ÈÚzÍË¿–êªIì;¿1ÙŒýTgµ}¿œ–˜Ì°d·Ê–‚¼'lì_ˆ—°µ]§èé4_·AÍ›´ «¨Ûõ0dù£ãð¸ /Ê mÂDó`™ž'ÂŽ ‡ »Ž?-¬#k{Óhjp6ç° 0ÐÇ76ai hh6BBÈ;,`lÎíö ûÚ(Ù¥HŠKAõ¤% Ù‚­uÀî.»LºjöïèQ´ZŒÖ®Ý$InÕ½h°]°‡b;Z-°p'€°]§Mä€~“ ÙŽ‡Êߘl`lÚMîn2ÚL]Ö˜©µËd3mÝš¦éäöw·› –Vúaô8ÈÝMF †¬=VÖì²ÖoÆ[½m`´Žw-îë1_Ðë+L`´Z–¶XyÓßOúÿÑVa€CFÿ-6°é+.˜íGÓ4eAß0˜íã­2hè·öV &Pó] éšNsv8¬¯¨Xl@Ö5n… ªUƒÙÞšÙIYl||œ-[ËÀé\ÛÐ0áœÃ_ â^Žáà^Žáà˜ÿcn¨,•°NIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outincirc.png0000644000076500000240000000540612536324472024136 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ¸IDATxœí_l[Çû ÙM®Œ¶U„&7RÍjªUcˆ;»/»I¹›ÜîÉ^ŸLˆ5ú`ÄmjŸ|À'ûàÅÄ}1¡/ÚZXHP+áÞ¤bÒÿ€&5^­Ù‡ÓN§ÊaÊù<Ôùsæ7g~ßóûsfF†úôéàÃïWY,ß0V; ܨw*,ËR¯^)+ksgC"3D̨Š/ŠÒ‹Ðg¢þ3SÄbk*¶·¯ %§¦hUXg§ööUšæ+vr¦hšg>¦„¿`0pé4‹)ÐrNñÄòJ†K§ ³šN¯ùZÜ® 4j–¥Àï/ítõ€ŠçKH:‹)xžgYÐh¸¥%êÕ+E{û7šæY–šžV"k›ÿZ¦iþøñ!¿°½¤ àerR¥Ñð‡•»é455¥,rKî„u:njJ©Ó­¥­v­á§Ó”¸ØÒÒF €¦ù¥¥ì2ò"Sdyr²P@£½ Ã:´:=wh^rN`þÕ+…Ų 4Ík4/^¼xùò¥D#ØÔ€ºëïA »u:´]F ÿûé§ÙÙÙÒ/}T&“‘hB €Úl.¡µÌåË—{?>K1BRPù$“É??.Ñæy€¼žˆáy>™L655I¬?‰€2Y\\T«Õ£Q¢"@™¤R©æææL:-Ñ L’Éä¾}û¤Û!” @Ç0íÊ$·¶¶’„‡ÅÅÅÉÉÉ3gÎH7E(‡ñññS§NiµZé)ˆÌJ†ã¸‡^ºt‰çùô‡@æUf||\­V›ÍæŠX#”Çq÷ïß·ÛíE³gDƒD€ÒÈjþé$$”@Vó¯D€xöìYVö—ž‚È#Ébyýúõ;wÅÍŸ¤ *ÁqœËåºråÊÑ£G+k™ÌŠâéÓ§jµúìÙ³YµÝ³wï‡÷ï¥X&)èû„Ãá¬äƒè} )軄Ãá«W¯Þ¾}ûÈ‘#ÛaŸPÁûÇŽËY`ÏÞ½OAÈËw½$mÅx¿"N8›h4:66æõz‹ñ¾ôQ‰€M„ÃáÞÞ^…B144TLÛ—ž‚ÈÿX#>þÜëõº\.äúêT¬ÞSP4 …BËËË^¯·««khhèðáÞ·±ñý»wR*P¿M¾««K£Ñ”êz„DïC] €;Z.»ÉWœ#€Ø¿[<ÞÐÐe7ù,ê= NÏòïV*åñ,ê7‰3xCCÃ6ù· ÈO±ë±;½)HFÏ¢Ñèøø¸×ë½xñâÝ»w‘ëñÖÿÝÛ·ß ’GätýÎ@„Ãák׮զ뛚޽}+ÅB­ €¼ßßß¿Ýw%ËC¢÷¡ÆoÆÕ¸÷+Bí ï765I´P£ÈÂû°SS\¼_jn‡¯_¿ÞßßßÖÖV# ÐÔÜü6•’b¡¶" ‰ÞÇ]—¢è}¨)8Žp8rñ~E¨!FGGU*•ÕjÅ]‘hjn–h¡VˆD"ƒƒƒ½½½|õ¾ ì$$Ÿmzý¯–© &&&d—|;$=yòÄf³É+ù ¤§ üó€ÅÅÅH$rãÆÚõoø#`bbâĉÚ|¿_Û4KþÁüŒ;ww-Ê$•LJ´€Y€ååÅH$b±XðV#˜øí7Ÿ|ó쀴°0uòäI¼u‚ìSÐÇ•ùá/ù‚]€T“ä‡J‘ž‚pÎxžÿô)ÙØØ(ß@raAÆ¿ôùóg¥R-߸"à •JíÞ-õ^ ^öíß/Ñf~øAÞ=ðËùWS©ÔîÝò@:ª`0÷ õU`uõ¨V» c¤ó2ƒ€ZXX¨TmÊ lèìü‚±‘^ü7ãêüÏä; €ŽŽ?$V¿ÖߎÞ>X–šUÃú×¾M¦†ŸUk4|&£èìü²T$² FyF¼…¦ùƒWò•okûJÓ|<®L$T¨p[Û׬UT²~–¥§2ÅÌŒº­í+ËRzý7“i"‘]&ÓŠNÇÅãÊ™µÉ´"l‹'./è4;«>xp%‘P¡-33j–¥Ä«B꺠i}þ}ªvy™¢i-£¯?¢eŽËdâ-b By‚Á†Hd—ðñH4Æ3™V²V u%‘ï{´âÄ‚@í9½³óKÖ**S× É(ÐçÙ…-èÌè ª™ŒB§ãPæÉ÷]fqyËR蓞_P–¯ vê:X–¦¨ïmkûšÕ £nmÙúyZqy ‘ˆ õºzý7Ž›™iV…éD"±×V$'b¨«ÌJE’É(2¥8•—MýÎx¾ä³Į̈…$ÓÙù¥"¯ß´µÏü.iòYN3DÌ0CÀ 3DÌÔï< F €"fˆ˜!`†€"fˆ˜QðU'þëÏÄÍ ¬O ÿù×xÖ¡a[^‚7 ›¸DÇß Vä2*Du# áé1ûàÖ<âühww£3ïnoEož¸¬`uæ‡múüCN£±{Ú˜¸¦ïyÀ6‡Ùh4Yb…œF£Óãé1"„ÃCÎn·U|"ÐÛ†‡múÓØãIú'äܰ™¬ä8ÏvREB£n°ÿ’Õnÿú7;¸Gó^¯Þ6¼Þâççs6^÷ÈZ@\àèó$ÖNd½`) às˜GϯÙLxzÌŽÖGB¬TóGCª'@bn¬?nñÊ­0=Wþ‹‚¤zË«oÄŸ€ÄÜ4@kKaÿƒÕX—3ôÀá³?ÄÕÛ†«˜¥È((_˨Õ@ßÒ ¾7[šzüïû͵äI ªªRÅè8o÷=ÏfÇüþÔ öó•øŽóvðø‹U O˨Õœœîó»Àav ãð ³ûÆ=»§ï4Ïóûͬ¾|}‡DO |oDc~ñ.ȱãtŸÇîs˜{<¢£âžžO|ýˆMžîqYÝÝâj9«7U¨î{AúîsÝ¡[--6°{<ž¬ísºF,–ÚawÛ@´ÝÖâ€Ù­Ý>ðYZF\þÿä=QGßÜܹ[-ÈÂêò?Ð'nå©–þmiiÙ(*ñB‹‡š››«Úɶ ýi]€:…Œ‚0CÀ 3DÌ0óÓ?ã·ÔŸIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outincubic.png0000644000076500000240000000547012536324472024304 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ êIDATxœíOLÛÇSÚËë¼Åký_Û&^‹&¼#Hcñ²ó_4ï%%&rïÂ4¾çÒEèÂäÖX$èê-ª.d!5yoaŒl„H›6í4ÜE 1·´õ« „á*2ó¦CiKÛ™afèù,ÈÌ9gÎùõ÷=çwΙ)âË—/ €Újý.¡’£’Ú€jG`(Š«¶ÎÍ ƒuéEQxaçL4&ªDbYÅÆÆ%¶d4ªB§ì17:56.‘$#؇P2e@’Œ^ϤÓûŒFÚh¤ & :Î +WL€^O§Ó*½~)^ö5·_éÔE@ P^sÕ€šaÊ:“H¨†¡(ÐjéùyblLÕØø$Š"b±TÛê¿€ŽI’ùé§ì’ŸM/ËiWkµÌ¾}eŒÝtšˆFkЄܲ'aŽŽFktºåPSW·ÜñÓi‚[l~>k$3?Ÿ[FY$ªïÐ(W¯göí[ŠÅ .ÍËŽ z=36¦²Z—€$­–AM ’dŒF:'½±q‰ VuuÀ Š ‘ÈÎ[héQWW°$7W¯g’I`g͈ϟ?‹boi(åVD:M$“5ÜNƒBn¡n”“‹ŠyW(xPE°Q·Ð™7 °$,,`¤ƒ¢@«hT$“ÉóÕø¸š½#°Š" -CËۈ䔂NÇD£5óóËkîDB•LÖ@  ®¯ÿ®×3óó`±Ð賬ÍM§‰Ý»—ò~R¼5-•Ý»— Ú°7`é4¡ÓÑl_› «—é\p*£‘^X ¢Ñ<[*Š"ôúük¤tšˆÅÔõõ7Ïx”A¡U‘[z=£×/©€Êyùòå«W¯xV"™Á &Ôœ9ûWtð7¥+èàñ¯¿~üø±ü¾ "“Éð¬‚Á ¦¥¥Ø•-³³³§Nú_4úíÓ'>õàT!###GŽáé}| ¬ç,4M?zôèÊ•+üÇ# FFFÔjuKK‹N¯çY ž>~üøqAjÔ š~ëêꇠ†¦éóçÏ£S‚6vúªB,@y°Ó/:å‚ð>  Ðôër¹X›ÓŸ>?ûñ(ŸÏÇN¿B(´û=wî7Q¿e Ïj±¥222¢Ñhr¦ß4ï{AX€’ iúÞ½{‡ƒ~… PCCCk»?‚ð#Éõ™˜˜¸}ûv__ßÚîCèÐ4ív»;;;<(Fýx°ÏŸ?×h4­­­yíܲuë'~O%q*ÆÄÄDoooÞàƒàé}À!¨4M÷ôôtvv8p@¼V°A+ŸÖÖÖ"e¶lÝʳ‚ò3::Z<ø p…ÑÑÑîîîžžQƒ ëýC‡­[˜Â¬¢,ïƒ!ÿ@–ÑÑÑk×®¹Ý† ³ O“““/^¼xöì™Ûí.±ï#¶nÛöñÃ>MW»¬ëÏœ9s÷îÝýû÷—u9OïC 099‡ÑñÂÂBÅ®ŠÍ ×§Åa=^[[ Z­–§ë«:!¿çø´8ü=žC•† nàܧŒÂà9g Ž!HAÏFGG¯_¿~úôé;wî ×K¾‡øðþ=Ïï)f ïߺu«¬uºüQÆ­ÙzÛöí Ä¹ gï ‚¬¿÷7sš˜˜¹÷a‡ š¦{{{N§œ½/2Ý ©Õj›Í&ùJ¿8ÛwìxÿîŸä8"‘H__ßÕ«Wÿ&¬àðô>ÈP6ølÀq9 ;ü~? >RRÛwìàYƒ¼ iúÁƒ—.]’ðAl¶„ºÿ±cǤ6d㑊ëþ°ÉB»?ÿ$—}MÓ÷ïß¿|ù2Èà.ÿF"—à÷û5²º?ìØ¹“g ràéÓ§v»]AÑñîí[ž5ÈB€¹¹¹H$bµZ¥6Dd!€ßï?|ø°°?°1l†DÓ´×ë={ö¬Ô†TÂfA ~…Bz:ý"ø‡ ‰÷ ³‘HäÆ ]û¿}óFÙ¿ôûï# ~…Bb"‘á'NHkvîÚų)˜››ûãqE/ÿÿû%ÿj¢ßïÿñGLq¨C¡õ¿V/Ÿ?Æ=ÀŸ¿ÿCÏso޼ʚ …j››¿JhOøÛ/ý> Ê‘Ëó…ÒÔô'Oóóÿ‚CQÄô´VÞöm±,jµÌô´F«e2UsóWŠ""‘Pag¸)$ÉìÝ»X¨|CÃ7’d’ÉšTJ 74|Ë9E%«W (y*“QMMi¾Qa0|·X ùÁbYÔéèd²fjJc±,²)\ñ¸åY¦§5{÷.¦Rj”25¥¡(‚{ÊÚPÕsI2èõwèUµ I2è½ýëtt&£â¦pk`Ë@(T ÕF"?°/Dk<‹e1ç”­¡ªG@Yz- 7° PGNonþšsŠÊTõ`ÉdTèõìl z3zƒj&£Òéhy ½—™[AQz¥gsóW帧l=U=(Š`·håæ64|Ë™„Ñ4€RÖ¾ž–[†HDf]ƒá»NGOMÕ²§ìåD*•㳕ˆ„14UæÉdT™L 7”WLõî¦ìÖ§¦4linþ*ˆáÕ‚ÖΙë"H—ÏOƒ,€Ä`$ 1X‰©Þ}€LÀ#@b°ƒ,€Ä`$ 1Õ)@Èe4ºBR[*Fd’ˆßBksae+À-~q ™s©‘M+Hè7ã*òµ–m–` 759pqëD@Ìòv˜L]psÑ6l2™\%ýÈ6ÂÐÞ?tÛÀæÎô·  »L&{Ìœa ºcÿö–û¨ÏÐÞ?3ÓÝTæU<O€°«Å î`ÖsMÝ3»+ H›Ž¬‡Â.“Ɇ”·£Å音ÅdZ+VØe2¹¼Þ‚½<ì²{l܆ÀÐÞßßnÈßʪ Mܖ®•â)¶™<†Šh„‡=àøWN¿mjs€g¸àÇ1´÷¯ôø™™¼Ñ3¸< ‚npvySË ÙNZ‹ üxìÃmh¸S–Ôk_EݵxC¼•Ĉ6šÚàÉ]‰„‡=àhv@7µ9€@*!eÍÚž¿ëˆ…xû€£]78[\ìº:ä2Ù=o×Q†avµœ´ùÉå »8Ï|¯9k~näÉ8Úåuøœ-^ÎUIoG‡7Y´•X<¹R¶Ëésü|t¥…£n›ÇεÛ%âÞ@ÌïìãöðM³¹Þx¼+›çrZ­í(Ãëð´sÓÛ͸à°=òøÀg5ºÿ,ØPSW<þóM³Õìd“lîÀCjÅìÌi»ÍNߊe]œai°? À/V³9[W¥.X"‹Wûº„ÃijúSB$¯‚$ 1X‰ÁH @bþ'š±A¢^YIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outinelastic.png0000644000076500000240000000754512536324472024650 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+IDATxœí][LWþǃ=àâánl $T)ª›U! ¢†´ÒVÊ>t·E û’¢f#E(éK+ÅP¥6OUäæ%yØ:Õî>Tj^H–ŒpUÉ)MÔp)6N ‰M àñuföáÀñ`01ŒÍaŒ?!4—3ÿùç|翱=Ô‹/€œNº£#NPâP‘V`¿#Ãpåv«3+3·‘·ÂȰCD"‘x<ÑkpåtÒxm{½*§“FGá–ØámtyRK墵µõÔ©SòåЯn²†YVôû)üL&ÁdÀï§¼^ÚÞn·%<G«,^¶ò„¡Óéä ÙÀ²‚߯bYÞï_kédg1Õ…hÊK ( ×ëå ¡E1å¨m„Á z½*Q9t:!¤Ün•Åg‘㨉 5’¶þ? m†ß|3á4ññm)@÷ïÓ:xät...~¥ò~?5>®¶XøT³sÛAØ`ÆÇÕê«)*Zø~ÿ:· &4†ƒÁä6ʂ׫B£/_¾€••­Úß¿OËŠGŽð)Sómû–ÝnUG #êt"r,($ 0Œh2 IÇ-;«¢"Zƒ"àõ&â–Û=¯Ñh9n9UK¯WUT´ºË²âì,ਙ„mÀ0¢tñÍ)ÐÈâàœêBeÁï§°­€ øšš?~ºic“I`YQ:ë ã(€MÈ×iã(ìu`nnîðá&Ž{™æå(Fnz*OÀN°°°PYYÇÓ¬ÅB¡<™ÇqEEÅ £_Ù:'ÚƒN—¡,h‚aÄ@ 1V+++EEE £_^^Ã÷ïÓ^oÊÁä8*Uº½:  ®@:0Äñqu0ˆsnnnN¯ÕêÎЩSÀ²b0º¯W5;«§“njŠ£…ƒÚZ~Ó;Í©Ò4«¨­å½^ÊúaåøñÂß~+nhxÆ×`ðOÊQõ³i y”>L&!¢ÆÇÕ ‹ŠŠôúUÄqËn¾æ÷StSSÊ…¯=a‹‹‹………YÛÊ*pñ ‹‹‹1[,A²¬È²±-dî èêêêíí%­Å6ÀqÃ0z½­IÈ1FF4##šÓ;08€†‡ÑñƒÃÞß@.è¯ÇŽÛÑÝ'@™"ä`dD³°ð¿¯¾úª¹¹ùúõë5I<Ï·µµýüóÏE4ä yäñxÞ}÷ÝçÏŸ“V$]„B!†a(Š™£ÄëQ9Ž3™LCCCŠ(`-Ê”¶ä- —••ñ< …Hë’PŒ¶ ,+SyB¡N§cY–l4JÇa~¿Liä à8à—}3»ƒ`0È0L¦¤‘' ëtºòòògÏž‘Ö%- €¶sÁa PJ"”k.(kµÚÒÒÒ¥¥%Òº¤©ÈyP>pà€ü²~w ò]О¨´Z-ZWQD)ÀqþDÿùs§3y ‡Ã™ZØÚ •¸LI#L€( ñxœ¦i¹ ifËÊdJ#L@,ÑjµE)‹üèÂ/;s#L@8D7S\\œæ' ˆ#§\P4Òjµ ×ëWVV„QÚ†¶ï‚¢Ñ0ºµZ­Õj9Ž#«O:ÆÅ» h4aÎJI„Ðó€LI#\D"!­V‹t@q¸²²’ >é  êt:¤sYyùsyKXÄ- áO•’Ic€ÌÑâ @ÛøS{<ÏÇb1F“)Ä뀲b@$Ñétè0”•—ËH¼H5(%«Ï+‘T(ÞÅbaì‚JJJÈþrH:Èl{€€Haa!Ú.--]\\$«>Ÿï?þH:(]‡€pAñx´ÒÒÒ½c‚ |úé§gΜy¸ö‘=„¤"@¾ "\Äã1Fƒt())YXXHÒgjjjxxøäÉ“‡ÚMņ‡‡ ÃÇüÃ?¼þúëøx0Ä…KF@Øx>VPP€¶7º A>ÿüó_~ùå‹/¾ØÍ‰"Â7>ùä“ÖÖV·Û-í: IŸG–WTÈì‹<[¸ ‡Ã¡Ñh®_¿.Š¢ÓéÜ5­P¿'Nœ0™L<Ï?~üŸJŠÏžnþMÕôAøûÒ Õjãñx4Å6q÷îÝ?üP¥R;wî»ï¾ëèèÀ 8lii‘6–?Ð[Àb± ‚“Ø5 ‚ ,..–””À‹/^{í5|6.ˆt¥é„¥¥¥@í>zôè£>ÚMõŽ=І>©Ó†††ééi!JJJpƒ§óóÊþ\ÏÇ¥À²ìÓ§O û|¾].¾R¡¾¾þÏ?ÿDÛ‹‹‹R òkARL&Óìì,LNNÖ××gpÙ]L&.’¨ýüޏ¬‹F£ÑçóÀÄÄÄ‘#GÈéµUUUsss€¾ÆS\\ŒO=Ÿ—)œøb\b)jjjæççyžÛAm•%TWW#–——õz½´”âD¥@ÓtYYÙÜÜÊA *&EUUÕ“'OçB9à‚âIŽÞh4:NµZJ°½½^ÏóüÊÊÊÆ¬xÄóÑ$jkk¯]»öÖ[oeÖÒ倢¨ªªªùùù¥¥¥$ Âu@,S«ÕRº»»KJJÞÿý=õ1Eä…8 U¬²ªj~nNŽd’•° ¢Z½î75kkkÏ;GJ¥T@D"‘ÒÒRéq™£d]Ïó4½'2ýW¢¡¡áÑ£GSSSÕÕÕ™•L’€h4ªV+ƒôT`cnVYU%S2I‹Å”bµµµè[´I¹™²]P,SŠ ”¬   ã¹I P €ÁÁÁ£¯ì,(k4ÛxŽHÒ% ù.ˆdFÕjò?\J„cM¼ºÝF•쬔xÞ¿›¹cÌ=y"Sá:@é Ä]b² M‘.HÙ l” Ä-@ÙÈwA„ëšÖ(ºxòø±‚?” „ Ðh”„«e?¸Î[€,ü÷?JþÕÄ @>èÑQbë‘Í_hZCPùøû?X™F@I¿µû-lk‹T@&äëOþW÷9Èÿn¨¢ë€ÖÖ°Lõ•½,GMMi`ímß1NœšÒètb  jk‹p56¶š%#?#=Â0âáñTí[Z¢ #ÎΪ}>5ni‰&í¢–û—à8 T  šœÔ´´D9Ž2ã1+hlŒ Âì¬zrRÓØÃG¤äIÛcž¦¦4‡Ç|>™œÔp%ÝÅ:ìëÀ0"zýzUm(D1Œˆ¶ÑÛѶÁ *é©ÜFG GG ÇÆ ðË#QŽ×ØKÚÅöµl ©ÞG‹!u,h¾£Aok‹$í¢6ûÚ0z=;>‚^ÁŒÞ ¨ yžTïe–¶Gà8 ½Ò³­-‚¼œtËÙ×Àq.Q•žmi‰&aБ¯§•¶GÖ06F£¨k4Æ ar²ïâË)ô,R Xˆ¡P™ä4ÒD   ÔRW¾cìß:@·Ýûä¤;™¶¶HFß¿.hcÌ|%22å“„‘'€0òFžÂÈ@ycÿÖ{y Œ<„‘'€0òFžÂÈ@9JÀ¨ÕtÖNòAGÚP‰ÙÄì÷gMWF7mk¥n~öûÙ¤KMøØ–=¬k â:Ái¨‰û˜ýþlJu³€¬=ðÙ{Ûûa`Äã1¸¬fswßmÏg­i^oì¹åé°÷¶ßù`äVq˦š¸v¤3î¸gç—oYrA.k{?HÇ¥õ3Ïí>[·Õ>{¯¹7á \V³ÙêBŒ9ÀÑßn6›Íf«+I ÙlµÛ{ͽiùn¿N¢Ë*=¸¡_—uM|Šë3Šìàºgƒ¾%ÍÊÖ®>°ÝKyÆž[#Ð90âñx<›™Ší|éñx<ž‘远¨½ÇãñÜî³u÷Ú}.k·­ï¶gMÐ ¤è×gïmïoZmèèÜÖ¤¬à›™€ÎCü†ñP'LÌì<4bJt:î8×$­MÞ Æ_»ˆ~Ç´o½nÆžÏR¹7×Í~GßmL‡±çVÚÞs[È…,hmò"¬ /Òm€UòúÛ_寿7ŸC™GV0Ö5czÃíù¦ÐT· 7µ—Õœð"·ûV•ë¹…<Š£¿=Ý`’EdÇZ»úÀömÒ½¹îÙ ¯++v¼9î߳ċHaì¹…»Ä“­Cåæs(óÈRðöeçô·[q:=j5wÛúì—ßE±¦ýƒNÇ'Ê»G¬Ý6<pLKr~é)Øì¬?!mPq¨&fVË û·¨›Y»Õ¾ÖÃì´šÌ5Éýˆo÷tÚº¥7`ÍJmµ:ÀØ}s¦Ûõe]Ê©ûì33—ç¬w::êúà¼ÝÞgë‘侀À™¾ÎÛà註3à<¿EWŽ~$jΛf€*I7}à£Í;œ7[@ÒoŸÝŽoÀ ÿ쨫Kˆ•5 )@ÍÌÌdCnšp¹´­­a‚ G.dAŠFžÂÈ@y#Oaü—ÏD1µIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outinexpo.png0000644000076500000240000000555312536324472024174 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ IDATxœí_LGÇë?å¼H'tÞüw° åß© )$Â(ŽÊ=UMÕêN2ºªœ)VÛ÷È:ÞΨ®"%O}p”‡ËCc¤»ÇDª.·)–Ü8ZÅ6âÏÚ΂H•X;÷0°,6vl¯ÍØx>hwfü›Ÿç;ó›™ÝÅ˼zõ È1>®ëë{KÐâhH;Pë”XQd&'µ¥µ¹¿¡#€0TÂèò/ŠÃ‹••Ñ©«kƒeQɾD5S€,‹8%“Œü¥ÆF ’I&Óàã]‘ÅSÊC)@à8)™ÔpÜF2¹ÙÖÊ~£S‹"ãã…UW è* (Ó „D ie…™œÔtu½eY$ŠL$¢ÅÖvþ|̲è÷—ürzAåÑ#Á€ÚÛ »É$ks„Ü‚'a£Q ‡µFãf¨©¯ßìøÉ$£,¶²²í°,ZYI/S]Äbš´Öô(׀ƹ‡ÚÛ7"‘¬Kó‚cÇ¡ÉIM_ß°,2,xJÀ°,jl”ÒÒ»º6ä`U_ÊÑPÄbÛó^zÔ×g-©Ìå8ƒTi„˜€>Ð_øô÷øàF#N¯¢ƒÿ~ñÅÜÜ\á_}L*•RiB €¾·7×­d.^¼ø÷lyòD‚Š!4??Ïýò‹J;„÷Õu?@Éòò²V«mhhPé?E2??ßÜÜlä8•v¨E277wâĉT2©Ò H¢ÑhKK‹z;T€"yüøqGG Adxýúu<ÿý÷i"C$ijjÒëõêMQŠ!wtt€úD÷Å055ÕÓÓƒJ./Ýì1¡‡vww—Ä `AÐétÇŽîÀ•Ö¨óóÏ?www3 Éåe•Ö¨óÓO?Ùl¶RY£Æo¿ý655uîÜ9|JCÐ^Ãóü™3gê·ü¤!h¯¹wï^ Ò}@àøãñxdŸ<¸üâ…›tÏó§OŸ®W<–®²õ ?’$ݾ}û³Ï>+­Y*@¾ð<¯×ë{{{•‰Ti– ’$ݸqãÒ¥Kxÿ%CCÐqïÞ½Ìî_¨ï& ]½zõòåËiÝhÚB¡ÐÐÐÐwß}÷ÁdæªAôÿr …®\¹âõz;;;Ëä'}:zwfffîß¿çί×{êÔ©lÅ:ôbiIMET€t䦿páÂõë×ñ­Çl¨l} ÌÌ̃Aùtuu5Ϧ/Õ'@Z“©An:œb0 júZ Ar£g6™ mîLöRF人:õMViT®M†¤(AªÌû¡Phxxø“O>¹vínúÊÜ.,=®ò¹ JSSSÃÃÃß~ûmŽø¾¡â.EH’tõêU—ËU­èða•*Nžçu:ÝùóçI;’KÏŸ«´PYH’tóæÍÌËîû˜Êwÿ³gÏ’v$_öUªÆî¿¯BPÕuÿ’P)ûÜý¿úê+¨Ô%ÿ®>räù³gj,TÊxðàA5v•­•#ÀØØØçŸ^EÑ¿TT„¡ÉÉÉ®®.ÒŽÌá#GTZ¨b±˜V«ÅÿsR]ì“„» ƨ(H{Q û!Uï¥Aä÷‚ hµÚ£GVÑò¿„U=9zT¥òüúë¯'Ož$íE‘<{úT¥òÈ¿»P›`míu"‘hnn&ëFÑT}zú4b±XJò»/D¨ú”H„ÛÛÛÉú@Â<{6[’_^#…úDx°´´ÐÔô§êÝ<}ò¤Š/!´´4ßÔÔDÐâ •Ji4Ú††‚>¨ä¨ê+¸$XXX8|¸Z ˜ÿ«š5qaaáС¨t%xо8ÖÖþØÐÐIÐõüù/œÊAÀÆoÄÇF£”Ji”)J ry˜˜¨›˜¨›ž~O~y$^ãµ¶®§ÊjzD¶÷ÑÊ( ÷wÜè6Û›´S\¦¦G€L*¥Á¯g—Sð+˜ñTS)Ñ(áÈ“í½ÌÊòQdð+=m¶78Ê)Oe;5=D‘‘·xUævv®¥MÂxÀ)™¯§U–Ç£azZ‡g]“é­Ñ(E£uò©üq&‘H”ã»å Áž*Ó‚Fž¤RšTJ« åES»û„ ®=ÕËAÆf{SÇk7eΙï¤$]> : † @*a¨„¡† @˜ÚÝTt† @*a¨„¡† @*a4¨üÄoÙˆùÇDZlmÒŠy;žöÑF9-g ù”®(Ê|? áìu7 &€ Çlv8G…!kžŸ7 Üúüƒ½w?Ü0å,j÷¾³H%RÖôôº@Ù.Ö!aÔésx‚ðšÿ³¼]Ölö±b<ð®^³Ùl6{‚iÍfß?hÆ úsßN z”&þÁ­àÊ‚žM;Êj¶3j/ å 8æç7i½ÒÚïßXÖof¸ðÚÁî ‚ ì6T|waDAxÁåÎ)uhÔ ¾ïý HøÝ;;ƒÏ1Ö/‚ £NŸCÆÙ¬Zx#ŽòkPF‹°7gS³"‹Å? KjêûØÎßß²´5hv ëШ“w¹ýA¿ÛÞegpŽn©ký›×ÎßO$üßûìÛ…L#^û¦|åcÿÜÎ2X‡Ff‡ƒ·{Yg“¥ ø¹DxhûÆ”‘PÆ©¥Œ#@v'‰9Ú,Õ7[–‰rÎÖ~9oó³?ßUz‚‡Ï9š{¾H,FÀÙoµö;wÇ,A´¤”uÐã÷‚«×#¯þ'»wÜ `uû–¾ó¢?®aÓ-÷f¡EÿˆE¶#§—fqq±ÌUä"üÕúz﫱 À´nÐkA„¡fÿì Áê&x•Ð@*aþ·§þ±Z #ÒIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outinquad.png0000644000076500000240000000545212536324472024151 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ÜIDATxœíOLÛÇÏôÜÉ[¼ŽŠZ[cѨ·^’[!©ÊÎÄ·y/ÁÍÅäš”ä.5ÒXÔÕ­¡@ÀÕ]ÔH¢›[’÷–x“(”´ic#ÐÇ]ð'&¥-þcª+†«ÈÌ[œr:”¶´f†žÏ‚´çœžsæ÷;¿ïïœvtˆÏŸ?ù‡uííßdœ€ìhäž@½#²†˜™ÑŠÛçÁG€Ì`ÈŒ®ò¦P^P΄ù3•Ò¤R9/¶¶n¡– ø½æ«SkëIr¢]„š©Â$ÉQGÓú 0›Y³™Ð4‘Jiàë¢ çñ݃©ÂŠbiZCQ[4³5]—YÔ CÂáꆫtW…\*¥á8Ža€ÁÀ®¯33šÖÖo$É1 ±¸¨…½íü àk’ä~ø!¿åGåUM@^fguwæL±KÓÄ‚¶ŒäV„FvaAk4椦±1·ðišà7[_ÏÏ@’Üúzau‘Ji ¬?;[. a-EqgÎl-.–ÜšW­ ÅÍÌhÚÛ·$É ˜ $É™ÍlAykë«ÆFÀUJåóÜz46–lɯ¥(.(k@|úôI’ùV†Z¾Š i"Öò ”ÜR˨ n‹îPð9 "†@ª[0G­ÂØHll`ÈÃA¤]P}B’\6[ÎV³³:ôÀn†(µ ­î ²O ŒFnaA»¾žÛs§RštZ ‡u--ß(Š[_V+ ¯ew-M'On½R|4­”“'·R) < /` 4M,Zã»kÁÎm:,A•b6³ÄÂB‘#ÃU|DÓÄ⢮¥¥äáG@”Úõ—ù ’¢8ŠÚ,Ó'Ž€Ú‰Çã¯_¿؉lˆDô‘ˆþÆ?ÿ_üÝh„åjyÁ²ì“Ÿ~b¦¦«ÏCd³Y]!Ñ·µ•‹PÅ GFFÆ~ÿý³0b ª–eý~ww·@ëÙÏêú=199©ÓéÚÚÚ„OG@Õ°,ûôéÓîîn‚ Œ%°7쀪‡Ë¥i½ás@uÌÍÍõ÷÷„8¿îᨖe}>ŸÇã¹pá,Á´¯LMMétº«W¯¢á„P)üÜ+b·Ø•ÂϽá„ÏsïÐÐØù½¶„ÍGÀÞÀÜ{ÿþ}”{E;`oÆÇÇõz=?÷"¨Ã‡vŽÏ{077700044T4÷ÒkkûÇPIÅ‚PŽ2âÁ$!¯^½*#>,AR177×ÛÛ;00 ø@ð9 Húm6[ùé>rdíãG!cá(”þ+W®ìÙR õλ‰Çッƒå¥_Dpì ÷ööö÷÷Ÿ?¾’ö‡8"v@dý‹/Vøá„£ë‹v¬/\‚ê= ÏÏσÁ±±±ÚÖ¾» Ù·á2N ?xðàÆOž<9{ö¬,3©Ó˜ŸŸŸœœóù|BDÿÈÑ£?|2“ºs2=ZøBzh}P?˜ŸŸÅbb™^,š ¡ ‘Ý ƒ¸¦Ç”£`744ðkE·;KÐM—ÎÐÒ¡nì#÷"HJ˜ŸŸŸššëëëƒûHY.äÃû÷õx_P<¿wïAÃÃÃûüÕè¨O‚âñøÃ‡Ñ——£MMÞ¿ÒƒÊ"@QÖP‚„¡&(Íú¢ (ÓúG›šö (Óú N$H±Ö¥Ÿ‰´þž·èÈBÓ±cïß½Òƒ¢#€eÙÁÁA·Ûm³ÙäžKqZ(Ü:ÎétÊ= Q®âñøÐÐÐÝ»w÷ç©Úh:vL` u@"‘xôèQ___…7HÉÅÁ” åK¿ˆ(Ñ*’þ(A‰DBùÒ.AÊ:°,;00ÐÓÓsîÜ9îú¥@Y0==­×ëU!>cÇ ìAA`YöÙ³g·oßV…ø@Þ½}+°9  êõúË—/Ë=‘}E)€¹÷Î;*ZþàÀHÜø÷ôô(üص›"AªË½""¿Ô˜{Â%Hþ …ôz½Ãá}&5ðvuUÝ÷q;22¢Òå/ 2;àÏ?§àò—w5süÄ =Èé–eÿøã©ª—ÿÿ£æÿ5qzzZ«Õ©wù‹‚.mØ»•4¬®þþû{±ØwrM@8ÿú7%0ˆÕÕU±fSÑhƒÃñEÆ Døüå?Ô9Êú=@uØí œ¾únO †!–—õ`ûißVë¦ÁÀ-/ë .›Õ8_†H$ÁÆPgø%$É>½Yª½Íö•$¹tZ›Éè`c›íkÁ[ز~`Z*›Õ,-ém¶¯ C˜L߬ÖM@"qÈjÝ4ÙtZ»´¤·Z7Q ßyüöÈOËËúÓ§73,YZÒ3 Á‹æP×9€$9øø;ø¨Ú ‚$9ø>ý¾6ÙlVÃ/á÷€Ú¢Ñ†h´!‘8„ 7™VëfÁ[ÔC]G@U”z-‚/,¸Þ¡ÑŽ/oa›ºŽD6«gG%ðÌð ªÙ¬Æhd¡ò”z.3¿=„aøHO‡ã T9þ[ÔO]GÃè ³(¿ÖfûZ„a€%»OËo£!‘ÐÁ¬k2}3Ù¥¥ô}œÈd2R\[…Èxƒ©²@4*$›Õd³Z¾”×Lýž8®êÑ—–ôHdŽ/¢L¼~%hwÎÜQ–|8 Ë v€Ì`È v€Ì`È v€ÌÔï9@!àì™Áì™Áì™Á(KÔk6{£RŽ á¤'ýÛfÈ/Ñ‚*°}(hþão邚QYi¢¿˜K T#€€Û=E‘82.‹Å¯@:&,‹·ðÿÖ.ƒéæ‹•ˆÏ œ¾ÈÊ‹›¦Ò c^‹Å2ѱRë@²!©bÞ67ðEò–³÷®ŒºüÞ€¾é ®åÛZ,ÞȺÚÜ!r·Y,»móZ,Þ@ Ëé d¶Ë;ýN_¤×J È ”[ÞH¼ŠN¿øVÙ‰”ˆMøëç‚ukïpÿDɵiºùb{ů¬¬¬äMŠð¿ÌTÄÜž@¦ÆíÛ¹²2êòwB'e]mî–QT^Íׂ„È$óÔ.Ù0r‚Ådíw K›Ú¯;C/ÙZ2™ò±w¸@èM€ØswÈ5ZÄïRQ¿¿ ¶/‡+·h®—É5¢#a˜š[àªÚIæM´4‹y5óZòb#½Ö”@Ê`ïpÿ¯–‰Mø«Cܯi Ø„ìSs‹¨3ÛIÏ—ÇQòl‹‹kM‹‹‹Ùy*‹DB—ÕúÑh¾RF~ü¨I¼…Q)_Ep•LêåYn®n”•ŠŠ›®PÈ>  xž’\·Ð¹i`; iXZ"àƒçÁdRiT›Ð´˜Nçk«hÔ }#°ž§r-C‹Ûhö Álgfô‹‹™5w"¡K&õ06fhjúÆ0ââ"Ølú,S9Ž:p`eÓOJ¶¦…ràÀJ"¡Cûé ÇQf³ õñ©°~™.‡XP¡44KKÔÌÌ&[*ž§fó5ÇQ³³†¦¦œ›g2Š ×ª?ÏW #2Ìrž2É(çÏŸOLL(,›¡12^øûŸÑ‹¿˜Íè|½xÜÕ•L&‹ÿèë Òé´Â"” ]®|#´lEñܹsÿýå—?½{§¤bA%Ç Ãß¾UXæ}@e]‰DZZZ@ñ>†Œ€yöìYkk«™a–C(…………h4zêÔ©4Ç),ŠP ###'Nœ¨ÏuE¦ˆ¥0<<|öìY „É€XTô ”€ä? †‘}@q ÿñù|(lîà û€í$ ªè?@(–¡¡¡öövéÙ¹SaD€"XXX˜œœDë÷áƒÂ2‰E ºÿ pAxøðáwß}'?I,hû1.—K~’XÐ6!ÂÝ»w=E©|ƒ7Ùêþ­­­YÑîܵëÃû÷JJ&#`kP÷¿råÊÆî¯°õPCCCÝ_-ˆ[099Ù××wíÚµMÝç®] Ë'äC„ÞÞÞëׯ9rdÓ Ä‚´™ÏéÓ§µ«‚“H$’Ç|Ä‚´"‰ôôôôööæ2„r "¿Ø„H$rãÆ ¿ßßÜܬuxäîèuLOO?}úôñãÇ~¿ÿèÑ£[æßµ{÷{e·&2HMáÂ…;wî>|¸w)l}¨q¦§§Ãá0,--ÛôjQ©HmW2R£×ÕÕ™L¦Òš¾æ,µ»¼íJ.ªäF—SC$÷hUÚ®L¨ к‹GçG *ÿë‘HäæÍ›·oßFë²Ú7¼{û¶Êï Êjý꣬(ÿÖß½gÂÊW€òo}@¤Œ2`rr²ü[_ÊQAúúú¼^où·~uZP04 š^Q‹*´ AîÝ»·é-UIÙíP÷w:eµÞÏÅž½{ß¾y£¤„ò¨û_¾|¹Rº¿ÂÖ‡r`ttÔ`0´¶¶âdû(#*®ûÀž½{–PFTb÷¯* zôèQggguU(>þ<55åv»qRÕcAÁ`ðøñãêþúgPnAe±!\½zµ"ÖþêR#`ttýüw E³wß>…%”…ÃÃÃ/^¬Äé÷Íë× KÀ/€(ŠÑhôرc¸Á~‰„^¯ß¿?î@J¡,hbbÂn·W¢ÿ@uXP(r8¸£Àf––*qÿ%¡Ü‚0ï~ýu¤¥¥…¦é ݼ~õª²ï š kôóÏJ§¢(¾|ù?»ÝŽ1…ìS¼xÃ)@"‘Ðé ûÛ(FþóïJþ¯‰Ñh´±±¥B ja/ý{…üöÛßvï>„1å|ÿFá  ^½z¥V4%0>^çt~Á€B”Ç#Vã”ÅõŒ(Äáø]aø•ñ -àyj~Þ«Oû¶Ù–M&q~Þh2‰é´ÎéüÂóÔÔÔ”ùŒü M‹.çÊßÜü•¦ÅdRŸJPæææ¯Y‡(gí 7g”LÆéü¢JàµkAçÌ-Q¥ËgA&aÌ0CÀ 3DÌ0S»û€2ŒÌ0CÀ 3DÌ0CÀŒNÔ˜äÏ?4 ~ߘ «[yö~Nf½µA:—›ñòTTò`´BË t±l7ÜŠ#Ú‡Y–õñ·-â!´ùCñ–ÜÃ>–e‡Ûã¥V„íû\^ð‡ÖZÎÑðôwøÂ€´é ¤Öò²¬/ ©@—Ë„ ×ŲÛ0ìcY_ ÐÅ"¤·‡}ýmþPô;³­+Êt‰ÕšÂ>¶+ ûX–e¯ßÊŒjhvE,<Üž¬~ëh÷@Çp¸Ç±yw¶t>A—kðüšlY¬û![R.WwÀý ÓRJEà¾gÃ>¶£«1SgÐëjˆÇ{þõ×õÁhV# ›…¶Æ [Û`6VúmžfÃâ>ßK•Z‘ŲöG»‚/3y×¥m v¯ ¯^¦(´kÓZ¯Z#õ2MV5Gt‰…}¬ËÛ4€fí\­NÂŽvôÿXß2áá~ð´«;ÂKªMÛê59Ðnp²{Ì^—OZ”ûØŽ~O û¤(Šû]çÛ‚ƒcÉLBG?È® _Ê–Þò$Ø$ádwÀ,²¢ým0Ël7?IÕ¯¯bC0 å>ÀÒq?;óÄšáÉ™X,ÖíXMóùÁëîìÜcµ>9ð¬½Ççoëï´Z­Vk÷­KV·7A¯Ûzi ÏÌíèŽmUQ&aµ"ùÙ8ŸÃ‚äÁÜÒhJÅb1mJ.ˆpøÇï*˜¸äM—B,¨\ù•*/°¤â8Ša Ï‘X–š›³47]<“ ƒb³þ— F`˜µ1I¨œ7oÞLMM) ‚M€pØ[/\ü3z±ÇnGû ôbüÊ•d2)ÿ£oƒÊf³ C(!¶z<¥z¨ž¹|ùò?B¡†÷ï•!T!«««étzo"¡0æu€±¾Ç9bµZæOz@…ÄãñÖÖV;Ã(ŒC¨X,ÖÖÖ–eY…qˆ• ÂÔÔTGG‡òPD€JH&“‹¥¡¡X¦¦¦N:EQ± <¼~ýúÌ™3ª„"Èfii)ž={”[YÈæåË—4M ‚À..Yì2ããã½½½jE#Èciiiffù0{÷* HG0ììì¬ß¼ëŠ]\T uýˆ²Èñ ´Ëäø ÚeT÷ ë€òAþãóù¤ ïÝ·oñóg%aI(—`0ØÑÑQ¿ýžt…­D€2áyþÑ£G—.]R=2 ,ÆÇÇ­V«ÇãÉÙ¿wß>…‘ÉY;333322r÷î]ŠÊ½ÅœXæð<çÎëׯ·µµiŸ°È|Î;Wð(± m™œœ,f>åD~P”ÉÉÉ7nøýþãÇk—$é˜}ñâÅ“'Oü~ÿ‰'J”Ü·ÿçOŸ”ÔE؆Øô.\¸wï^kkkéò [ˆ0;;‰D`ee¥ü¦W ã ¶—*ˆ^WWg³Ùä6} Yjwi{©¶‚F—R$õe…í¥Cô.š î²/— ¤çï&''oÞ¼yûöm4ÔáŠáÓÇU{_PNëW+:À(­¿ÿÀ…ô(ÀÌÌŒ!Z)Cwð<Íñ\®µœM1BM÷Y{­ˆÔXè|GÞÝý=g•©é ’ÍšÐãÙÅ=èÌè ªÙ¬Énç‘ó{.³´<‚ã(ôHÏîîïÈ夛bœšîG‰Ë@4ŠJ¶·ÿÈ„Ñ0€öä?žVZõ†XÌ‚F]‡ã§ÝÎÏÏ׉›âÛ©L&£Åg+Œ 14Tæ˜F™d³¦lÖ,µòŠ©Ýu€ È®}~Þ*šLw÷wU¯] Ê3wD•S>2c†€"fˆ˜!`†€™Ú]èÒ0CÀ 3DÌ0CÀ 3&A{Ò®4"þ˜È9›KœâW¥sÞÚ(î+ÎÄÅ**’U‰rÒ44Dã 8Ãp+‰è}æt:}2þó¶£ÿa2ìï8ù°ßQ¼`Äçt:Ÿõ&˯ÈÑÿ0™ü½«ü\´AS">ÏøÃ[-×õ{rlp´Ï¤ÍÀóÅ­²N§/™À€g(Á!ә߆ŸÓé œˆ@fsßh?¼Õœy29D|Î@¦pÌÒi¨‰–DžÂàßsÎÛ®ÞA}Vô9únžñÉdÁ3tôéF‡ ûah8©°¢Ò1wNC-4 “˜ƒž£y¶á8Ús‰Êï[Úá=ß|ʨPQ~Ì]ƒÌ‚0£¡Ž¦f¾Í;™2oƒÐÜTb<ÕoEZ eèê„Ѷ·LäÙ( öªë©»V‘hº8=òÃÇ'N¶'|ξÑÁÀðiA<ç{‚‘ÿ¦6ô‚äëà[É@z 8= –¬èi(WÑÆ»‹ÄÌKC4}‰ßž7mðü·D"1ܵyÌç‡ÑÎÁ­÷øü=£ýMMMMM÷®6y‡‚ò6]+16v 'JW4äÍ«h§Ô·Ò¸¥Ý4”J$šß™HäO]]«êÆÌŒ]õ>=zЧwû€ªœ9œÍ|ÆyË« ªP艖£¡y¨CuÞêè{èÃDyTc0DÌüFIúç•Ý!›IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outinsine.png0000644000076500000240000000540112536324472024147 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ³IDATxœíKlIÇ¿öƒŒ;ÒÖ 0q¤3¹àÈ&p-{Ù%B‚½YÚáF,b@ÚÕz'Q’Ó|­#íÎeNIH#[iDbY+å!4‰íðlÃ)î=”Si?Ómww\¿rWWW—¿Õ¿¾²šúðá¨G$bêèø¬bTÇ vê…àyêùs£²mîoÈ P"€Ê˜Ê¯Šì¯™hýL& ÉdVŶ¶-\saÁ€ñk©;µµmÑ´¨Ø›Ð3@Ó"ÈGá ¹Yhn€ã¨dÒ€^ç‹'•‡PÀ0Çf‹ã²±–Žë"ƒšç)ˆD*»]=`Å ¬Àj“Iƒ(Š<‹°¾N=nhkûLÓ"ÏS‹‹FÔÚ—ÿzMÓâ·ßî¤ü¸¼¢¨ËÜœÉbOž¬`îrµ°`,b¹/ÂV«°°`´Z³VÓØ˜øGI«­¯ïôhZ\_Ï­£/’ICNôçæŠMht–aÄ“'· ¦æ{Èϟ::¶€¦E‹EDÆ‚–M‹ÍÍBNy[Û6«ÆFÎ]Lî¬[(õhl,XSz–aÄT ðª™õþýûªô·<ôòQÇQ©”Q:håF9gQ¢˜7C!û€²ày »î@kdÞSD€Z@Ó°±APž‹E¡,¨>¡i1“)«¹9þD`7‚d‘a6‹´IfÀÞ™}öì™ÌFT`fÆ<3c¾òç? ´ZQ¹^^ÌÍÍù½^ƒAn©L&#³ 9Ì̘Ýîb3T›‚põêU¯×ûý?¼—@bA{ajjÊd2uvvÊŒ>¨¾Ð×÷AB¡Ð7@‰M ™3>>n2™Ün7XFfk$ ­Œùùù‘‘Š¢ Ãq2$3 Aƒ}}}gÏžUªM"@ óéììÄ%Ä‚jGŽù ˆÕˆj˜‚P»Í¡€‘}@Iù îğ{÷äõŸÌ€ ó¹}û¶âæƒ ”`||Ül6ï6sð ÌöITŒÙÙÙÁÁÁááaiæ#…{÷Næ-È (Èüü¼ß﬒ù ˆùÁÖîܹ"Õä[ ?Å­#߂ȇ’Ö¯ d ˲~¿``àÌ™3%ûvðСwoßʹ± /ÀÑ/ný™Ñ"€”ö”}E da`` dÚ“ÃÁC‡dÞ—¥=/^¬è*ùD² –e‡††j“öäPï$‰ÉÉɱ±1”öTz9É‚dÁ²lOOÁ`ÝÛ«€©ž†«Õ–eïܹ QèÕêF=ZP"‘xòäÉØØŽþž9tøðÛ7oä´P_àÐ_¹rettôÔ©S2”}¨‰D,ÛØØP0ôJ±ß@±––à¸[,ÅCO,h©½444àòjÄC,  Î^Kt/Ê&Õ ½¤ßï‰ÄÔÔÔØØX¿Z¹ü›×¯ëôwA,ËöööR522RËOG—IJìÝ»wñÀW‘ÃMMo^¿–Ó‚þf€v¢È‚ä¡34}EГŒþá¦&™-èF€ùùy­EêÇ‚Aòù|šŠ¾"èc€þ>Âãñ¨þíEMG޼~õJN :˜,Ë÷ôôÔþ Û’ÈŒ>h_–eïÝ»×ßß¿‡/lu¦ˆÇã(úN§Sí¾ä§éÈ™-hW¼ðj6ú°¿-hbb-¼jw¤ºhT€x<®Ù…WÊþ´ l>Ú_xå[÷È|.\¸ µ¬¿hn ó¹yó¦ÆÍqäèQ™-hKd>·nÝÒ¾ù ^½|)³m 099i6›÷}æ#ECèË|ûÇ‚tg>ˆýcAuh>M GóAÈ· õÿ>`kkkhh¨··÷ôéÓªw¦R^®­éþwAuk>•øí·ù‘‘=šâè±c2[PSA~ù%ˆÌGÅnÈá¿ÿÑóÿšøôéS£qÿà\S4ÚPºVuX[;øÍ7½±ØWju@>ùž‘9 ¨µµ5¥z³¢Ñ†öö*v@&òû¯~Tçhñûárý.³ûºüyº"ð<µ¼l†í§};›‹¸¼l¶XÄLÆÐÞþ‘ç©xüªŒ|FZBÓ≛…ê;ŸhZL¥Œé´ Uv:?墚õ+ð<…"•É––ÌNç'ž§l¶ÏÇ&ÄãŽM«UH¥ŒKKf‡c—HÅ“ÖÇ:-/›OœØL§M¨diÉÌó”ô÷¡®×šÑãïУj76(šÑkôôGôÚj2ƒ´DÚ®ÑhC4ÚÀDI¦Ã±™sˆ[¨ëP…žG‹‘ wôöö9‡¨N]ÏL&c@gÇ%èÌè ª™ŒÁjóz.³´>‚ç)ôHÏööÈ备¸ºžÎìDÎå_}äýõÒæz8½S×nÄ ¾îöMôÏm·Ûíö@,§A»=_·#¶/M„ÀüëN¨]þU¿ °_§ ]µÝàîÒjS+b!ðþ˜3n]—¯Àϱ—€­ûÁöˆ_]Í;~C³j&¾>¶éE˜ïªXÀÞÙió¨Õçì•ÂÔH€ôÊ"x¾Þe¶£NX\ÙûpÃ’Ú:¾óL?ޤ\þG^uÙóMšÂWÅ&B;ÓÆuÙ ¡ÂãBYöaäòg½²B”v”ôÊ"v:»ÝÞªIG fØZZóCúeZ[ ®§²ØÑaÚw¿Œá¼ítYjµ`×j¸.{!ôsÎPŒMü ?^®î;µ}]Æ_@µ fû€ó}‘ øÜœŠGö®ÐŸîÝ;/Šâ1÷wžéÇ‘TöDW$_L¿äüÒS°ûD4`HÒýè}ß4x/ÇÕó_uþ’B]øÂT8.¶ÑPþ.ÈÖu¥+öSKK7xÃ++}ÛÏÛ±u‚;:Z|à ‡½¡niywK®z=ÿMÀtGËã`äoùïâºäíFõž`d¥ËP„\}+ahÁz‚‘®=¿ÑŠ VVVjs§¼Äb_¹\¿«ØÕÙ‡Y¾ ¨ @eˆ*CP™ÿudCÕ-°€˜IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outquad.png0000644000076500000240000000531012536324472023613 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ zIDATxœíKlÓZÇ?çAo\i׿’Hˆ1è  -*¢š Ò°™‘Âæv@³†”ifqƒ”ô!èâJdh¤ÛJ3;ÄâNSMªdµR›Vw¤>„”Wy:°ª{K©=‹“ºnúJb×ÇNü[TÎñéç“ó?çÿã¤5ñùógÀG,fjmýбØ1àn@½#³,KLLåYÛè33º˜1•_Ù‹3QþÌf ÙlQÅææU¡æÌŒ½ŽÅîÔܼJ’¼loBËT Iò4Í3 !ü›³Ù8`"›5 ã-ÄË£S@ÓÃhz•aŠ}-×; j–% «ìrõ€‰ç+°Šâ³YÏó,  ·¸HLLš›¿’$ϲÄì¬EÛøÐ1IògÏ®/ù…òŠ€—ÉI“ÅŸ—!k–@|úôiOÚ[Z¹Á0D.gd¹Û £’³h¡¸å Eߔ˂ëVÊ‘[žÒP’„¥%]|°,X,2­‚ê’ä …újrÒ$ÜØ ËÛ-C+ÛìØPÅÏÌ‹kîlÖË 355}¥i~qœN½—Íg†8vluËwªoMË娱ÕlÖ€ö ÃÅ c|óYظL£[P¹ØlÜÒ13³Å–Še šÞzÄ0Ä쬩©iÛͳ>*`»Uÿ· iš§é•bê”Ëôôt"‘()<þü¹s礄ÅfAñ¸97ÿþÚoÐÁ·…ÊUu0==ýâøñ'Ož~”¡–P³óÔ¬Êô¾nA[£ØØ×-h 4á<µ¶ïîî…B.—K·¶ÿÀ>H‰PS3@è}ÅÆ¾ÄÞ‡Z •J)Üû²P#p …îß¿¯pïï?p@b„`xxØl6_¾|YáëJ· Z¸=>>ÞÛÛÛßßOÚû4ÍÏ!ñž>}Zù«×»aO¼2Xö¯åTÝ”x;;;•Yòïž‘HKâsààA‰´š„QâíëëÛx?¼/1‚&g@*•zðàA0Ä’xåE{p×ÓÓÓÙÙ©†¯t Òžj°~餱J¥Ô`ý2¢¥ ˜z¬_†U†>6™LmmmêYõ¿÷®^¾”J¥úúúîÞ½[3æƒÐ†Çõööúý~õ˜âà¡C#hC€H$b2™T²òóþÝ;‰4 @­šBí¨Ö|µoAÑhT惨q â8îéÓ§·nݪIóA¨z€þG= ÿ>üîí[)Ô;¦¦¦úûûïܹ£æá/±÷Aµ¨<÷ʈJEwp7d>,1‚@¹÷æÍ›j6DmZþ/^ÄÝ%PþP“„nûheøK· uíÐÒ3 FþŸ¨tT4ÐÒóÞ½{Zz>rDb 0::j6›Õ¿ôóö͉Ô"ʽ7nÜÐD€†¿Vr¯@Xv‡XF‡¿,à@»Ãä° üFÍf³šoúïÀ›…m/ˆç¹gÏžitøËf~ùå?høãmFÕ9zTbœp÷óÏ×ôðÿ×?¥þ×DœŒŽŽ&íY0% ¸®½°°ÿ»ïþ’L~ƒ«ÒùÃi‰“€XXX«5UH4x<Ë éíÇ¿¨sÔõy€æp»•Ø|ý‰’Œ°,1?o†µ§};+ ??o¶XøBÁàñ,³,15µUF>#.!Iþĉ•íê»\_H’ÏåŒù¼ Uv¹¾”¼D5ëW`YõT¡`˜›3»\_X–°Z¿:+05µÏé\¡(.—3Î͙ΡD,ž¸¾ Óü¼ùĉ•|Þ„JææÌ,Kˆ_ m¨ë@’‚e ôHOg¹œø¥§®gËÂ>eQñY—ëKIFi•l~<­¸>š SS&”u­Ö¯ÅÍÍ5/…_'òùü^¼·2Á¸C©²Ä4ʤP0 F±•WMýîx¾â«ÏÍ™“ñx–eixýZÐæœ¹+² ùô$Œ]Ìè`F3º˜ÑÀLýîT‚>0£ €]Ìè`F3º˜Ñ‘Øl„²×4ð8Èýô½Íf³ÙlÞü·Ìêßÿ”+)Mü`+òCBžf°ö)R(>òƒv{<Ìd2™Lfèì¿ív{ YadÀn·GÚ3EÚ#ÕQ ´ø!qÝZ,øí_3C¾°7¤MÇ`~½®ÝHB~°£Å…¨¿ÅnGýœ xÃmÁx·{­¦»{· EáDj‰NxÃ{Þ›PV€d$ ¾? ½p·û ÙvüZ¯¿ˆÛ -Ïd2™L·»š ÐúpmÂd†|a/)?ØÑâoÊ¥¼¹êPT€|zÚŽ[K‹­ÇÛ`6]îwª bµ®ÿŠ»ÝÑ×y€äsÔ7´>•0POŸ ͬˆ¯¨åÕMZ*Š¢3ÀêhB#o#ù×Qhr”ÛUIìëfƒÃk¶AÙàn÷AøÇÁ½—Œ„Á×^¾ T$ Ã&³±:šÊ¾ê^¡ð>àBW,þ–€°pÿßßìÞ°o°ëÏóG[®¶E_ÅÐz?ð†AôAôun=È /*’ìäèñ6˜M£ÒÜàÅÒ W|Qÿóbœõb%Q|`õ>O§¯Œ8×'~—N§»ÜkçAð·:‡cäÊ oýwÁ¶ðu‡ÃápdæœÓßüz~ç|ÏùMK‡úðáàcbÂÜÖ¶ŽÑìи¨t4€ PSS&mm–7Æ ÀŒ̘ oŠäE^3Ñú™HЉÄf]® ¹åì,Nåc¥:¹\ #iö&ôL`‰ã$ž§ä¿PW'ÖÕ‰ÀóT"A£ã]‘ƒ§ AŽyžæ¸ žßìkå¸Î3¨€‰‰â.W ˜%©)`Y)‘ %I°ZÅåejjŠv¹ÖFjn΄¬íü è˜a¤³g··üryQà%1[­ÒÉ“EÌ]ž§fgMy$·èE˜eÅÙYËnJMuõæÀçyJÙlyyÛ`iy9³¾H$èŒÞDòMhTËqÒÉ“ss9·æEkÇISSt[Û0ŒdµJHXÐ’€`©®NÌ(w¹6d±ª®ålЉÄöº…¶ÕÕ9[*k9NJ&A^53 Þ¿¿/þ†^nEð<•Lš”ƒIn®a”Q‹6Š»îPŒ<  ’Uw 5r×*#¥€a`eÅ>¬VvA• ÃHét¾¾ŠDÌòlʵ -.ذ;P,+ÍΚ–—7÷܉Lš`bÂÜØ¸ÎqÒò28"z/Ùµ3ÉNi¾Œz *“€¥÷Á ®Þ×Ýoï³§Ò‚¾ó€ÉÉɾ¾¾ÁÁA§Ó‰åðïÞºëêxȽ¯Gå‘Ñké}îàA•t€ééiz©CEq``àúõëØ{_ô€'OžX,–óçÏãv@ ÒY&<===88xëÖ-Š"â{¾•%A²øœ>}·/š¡§<àéÓ§‹åܹsäÜÐ?xèл·oÕXÐÍ EñîÝ»W®\!D|*{t€@ `±X<nG4F søÀÁC‡TZÐGˆþ!AÄMÐAˆþP DøðW/A¤ÿÚû·¶¶b÷sŸ zˆ¢xïÞ=b‡?ª©Qiè õommÅíHNÞ¾y£Ò¹ øk¹ øCyKÐÇ»»» þe+A?~œžžnooÇíȾCh@sssu®ŸÃ õDâç¢(ŽŽŽ^½z•ü½ÿ›¥¥2ü^P 0›Í„/¿ZAbt±ü"jVi¸|úô)êeù}³´¤ÒqÐËò«ÄÀï÷_¸p·…Rn¤/ýò“ JÓ -ðûý/^$û/søÈ‘¥×¯ÕX h ýikkÃíH¨ì} *¨?@TÆÇÇu´ÿA>rD¥R Gýr’ ÊÔ 'ÏŸ?'ó›?ù) ’$ijjÊåráv¤hÔKy@<7™Lµµµ:Ê´‚ˆðâÅ —Ë¥‹ûÏ©­UiˆƒA·ÛÛ‹½ðúÕ+•ð@§P­À€gÏž555étZ‡õ;üu/A’$E"‘³gÏâu#˜ðî]Üd2=z¯{F½aÎ_ üK§À«—/õý½ ÅÅ•¬?€7’$-.þWw djU‹'Î$ š6ת–QŒüû_zþÕÄH$ÒÐФÇ;b…ªp]û—_Ž×ÔœÄè€zþôgNå$ ^¾|©•7{ ªjiYÅè€JÔû?®pˆø<£*q»Ué¾Î~²LCZX°ÀÖÓ¾Ž5«UZX°X­R:M·´¬ @‘Î(KF:qb-W{§ó3ÃHɤ)•2£ÆNççŒSÔ²r‚@¡žJ§éùy‹ÓùY(›mÝáX€hô€Ã±Æ²b2išŸ·8kr‰2xÊörœ,'N¬¥RfT2?oJy*ûPÑkÃHèñwèQµ++ÃHè=ý³¬˜NÓÊ¥¹=„BU¡PU4z@~x$Úã9k§²…ŠžE‘ëy´2JaA ñŽ:½¥e5ãµ©è “NÓèñìr z3z‚j:M³¬ˆ”'×s™•í‚@¡Gz¶´¬"•SžÊv*z%§hUÖ:Ÿ3a´  ’ìÇÓ*ۣٚѪk³­³¬8?_%ŸÊ/§R©Ô~¼·Á˜ˆ¡¥2C4 $¦Ói“RÊ÷Låæ’TôÕçç-²È´´¬jâxåJPöšùE4ò‹0fŒ`ÆfŒ`ÆfŒ`¦róB0ffŒ`ÆfŒ`ÆfŒ`Æfh©ä$þ¶ñc¶RüÍ¿ý9™Qú±N6¢¡_ÙÚoJ;R£—íö^¸Gtú½Þšþp‘FÂýv»Ýß—Øíö¢ÇKu­p¿Ý;7|ÐmÛ.úÇ€÷‡õ±xŸ;5zÙóø’\î·{a,þ]ì²çZ@nî‹wú³Œl5Îe•o›ñÅûܨúNCðûEwþò׎ï¸P_iþq¹„Ÿˆ…ý#àSv|ý{üÑîsÛv}­ûA”î÷fqwúÀ›Û´ÝˆÇ7+Ãývïå†M{kžÆ±x¼ào¿Û½Q: JÅæ £!ëÍk耹X¡_ ÈaÄö#6ÛöKÜ>,n¶í–h¤ç¢b>ÎP!œ®ì t3ÀV߸=ò¶I. ±¾ÐYŸÃHê FÂývϵÆ1´j‘ÓûPÒ<ÀÝ郑;£;{ïÿ_gá*°«‘°?¿´ú`Öš”2ø¦wb®yúå{¨ßûÃßhï7’$õ\ê<žHnUŒ€âÓ‚ÀbrÛȨ/°ÓˆÝ;’ßÈц˜‹¡ÒäèÙ4ÀŽ4dç…JDió›÷~,va¼~“ñ ££K½î­ºþ¸Ö¶UáÛ~Mÿ@ÇHw}}}}ý0¸{c;Äb±üF”¥}p)‡e]¨$P±X¬T×Ú…pø7n÷¯{~yjì»¶Ç—&î{KºsÔ}ß ²Ù!ð8ˆóÛ­jÑwÀÝ;!‹KédCKtŸؼ÷c^ÜN¨@ç3@ÿÀÌÿPW¨ÅDlIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outquint.png0000644000076500000240000000517712536324472024034 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ 1IDATxœíKhÛZÇ?ùÑŒ˜E¥¾]ÛC¨“v¦uë®CÒ&̦0å $]ÜΪ.Ì2›Pw1³¸¾à›RÚ,’®ZêÂÌ"º™&Ô`MÎʵ ~¨o¹…–ÈiÒH³8¹ŠêÄ©m)>:¶~‹ ÇɧOçÎÿœc+õáÃÀG4jééù‚1ì˜p'Ðìh,€ PɤYÛ˜Ñ0c€KåE‘½Èc&?s9S.·©¢×»!—L¥LhWÞVº“×»AÓ’f7A2U@ÓËJo€hÔÒÞþ…e¥•p»Et/ÛÏòJÍÄbÖîîÝzhÍ –^,§¦¦._¾ÜÒÒ‚Ž÷ööž:uJ««ìg˜÷ê*°Ñ,¨¤Þm6ÛØØ˜†5^‚ÊÚìëm¿˜ ¨ÞïÞ½+×»ž— Ògff¦¦¦nݺuöìÙº]—aÙÏ«‰Ðë€ÙÙÙááa“É466VÏÚ•µ ÐíÔ¹ákÙ={í3,«2Á`¯}ЂH@µ¯ D  ŸÚWoAä­æççÀèè¨ÇãÁ>Áçß½u9ÖDQ …B7nÜÀÞöµ‚0žˆf± š¢),¨QÍAÀ:àéÓ§V«õÂ… ØgýÛ9pðà»·oÕDÐ{EñÞ½{×®]Ó›ù TÖ>è_€H$bµZ»»»q'²Wè]€ÉÉÉ+W®è³ùÀƒUFе?~œŸŸïííÅHYÜ‚"‘Hgggk¹?jô+€(Š>üþûïq'²lAD ¿ê-H¿099944´KÆ@§=@ÿÃ/âà¡C*#èTR†ß·oÞ¨Œ SfffpgQô()þjA¤ø4ª5ÿ€ È@ ÒÝ÷Èhš&búÿæõëF{.hzzº¿¿wõC_|úôiaaÿ€C‡«Œ /šÿ Þ¼~­2‚¾h6ÿ] @œÿ@ƒYqþ fA‰D¢§§wõF/ëI’’Éäõë׉˜þË>räõ«Wj"è¥är9³Ù|ìØ1܉T‡ÊÚýL&½^¯n?Ù;ô%î,ªæð‘#*#èB4(@ƒX¡€&èBr€± Bý´° üëQ“ɤßï'k ø{ÑÀ‘£GUFÀ/¹¼zùReü<{öìÌ™3¸³À~R©ÔÉ“'qgQ#Ä[ÐÚÚ*ÇqmmmxÓ¨â-èåË´Ëå²Z­xÓÀf8.ÕÑÑ75¨· ÌëŽûåâÅ“ä®^¾xAösA÷ Ñ=@=8X]]åù<¹#0U½~Ä)Àòòò¡C¿#zþÏ¿Iþ¯‰étÚn'u –x¼×µ‹Åöýûÿ€1õüù/¬ÊN@½xñB«lj oéêúŒ1•¨ÏÿGMþïÈ]€Ï·ª2}2þeÙ^ Ôò²~}Û·Û½n³IËËV›M*L]]ŸZX؇ #ŸQ¡iéĉõrå=ž5š–òy3ÇYPag­d•l^@(TS…‚iiÉêñ¬ e·q»×`aaŸÛ½Î0b>o^Z²ºÝëò¥xÊò²NËËÖ'Ö9΂Ž,-YRîÊ94õ@ÓzýzUm±HÑ´„¶ÑÛÑ6È…‚IyDA.ñxK<Þ²°°O~y$šã¹Ýë%»r„¦îUQî}´2JcA öŽ*½«ësÉ.*ÓÔ=@¦P0¡×³ËGÐ+˜ÑT ÈÈyʽ—YY!z¥gW×gärÊ]9NS÷A äe E•g=žµ’A èÈö×Ó*Ë£Þ°°`A£®Ýþ…aÄ¥¥yWþuŠã¸½¸· Á¸CCe‰iTH¡`*ÌJ+¯™æ]HRÕW_Z²Ê&ÓÕõY“ěׂ¶™ßD“&_‚1cÆ3†˜1ÀŒ!f 0Ó¼ë`ôÌ`Æ3†˜1ÀŒ!f 0c’pøƒÃáp8ƒÿú_…Åx˜/9ÿѱÉñÊ®¸K¹/QêÞ¸ðU§3?e³Ùl6ûèÜNg0QeDÐétNd7˜þfûЃlö¦OEâ{DH»G {0dß<ðû¿gù'ƒ @Ú\ s[eÎ`¸ðÕî‘DFºNTωààD_(¶U¾›ß :¯†9´_u"PÉí—¨õ 1=þ¿Éµð øabºìMÛ‡ÄB}Њe³Ùlö¦¯– _1ñx³ÆB0sÛ/QíÕJ]à2ièk³—¶·õA:Sé³êƒÈêÙ{.õEGq>•`Ì‚pSWì®vˆ<ßÖà¸çhwmkÓ{D?Ô·øü0ñÏð×µ—˜žÿ@徫IÝPçuÀwhFºƒò„üÙ?œƒþpà;I’Žu_ê‹<Ž¢Éx<88Š/ "Ïó[AÂþˆ2HØïg2ý3.ÄPò™L&àûõ\0#=.—Ëåšéû·~'ê›r¹\.×O ð2Š ®™þ ‚|+­’KÔ *“ÉÔñr¥$¿ñùVÕDàýµçñ¥èýAòì`dw¶Cäq ëTR Ä ¾@T¶œºš‡64³¡öÁû™AÜIÔ ù=€p 0óƒßéíÆFàIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qeasingcurve-outsine.png0000644000076500000240000000532512536324472023625 0ustar philstaff00000000000000‰PNG  IHDR€€L\öœ pHYsÄÄ•+ ‡IDATxœíKLIÇ¿nÛø‘ö0Ýäé`¤LL”Dã ‰ˆœÇm¤Ív%sIæÉ+íœà×£"8-–r˜\âH»#­„rÂD -³̉‡¢1¶É³œh†º÷PNÓ1رiÛÕíîß´«««Ëõ¯ï_Um;E|øðð15eììü„±Ø!qW@ëTXŽ#fg •-³¾Ñ#3º˜1–žÙ‹8f¢ñ3•"S©œŠmmÛbÎÅE½¥îÔÖ¶MQBÅÞ„š)CŠF`YBü ÍÍ|s3,K¤R$:ÞQ<©<:e ó,É0Û,›kki¿.Ò©9Ž€©©òn§Œ‚P†дJ‘‚ p˜Íüú:1;K¶µ}¢(㈥%*íË¿€Ž)JøñÇ)¿˜^Vð27g4›…“'ˈ]–% E,·ìA˜¦ùÅEM符±1×ñY–f[_ß©P”°¾žŸG]¤Rd^ëÏÍ ht–a„“'·—– NÍËö†fgÉÎÎm (Ál± !AQBs3Ÿ—ÞÖ¶-šUc#H£A¤R;ãšz46Ì)=Ë0B: ⨙ñþýûªÔ·4Ôò(‚e‰tÚ í4Èr u£¼³h¢¸ç E_”Ç¢ëî4FîyJ PllèàƒãÀl®Ð,H›P”Ík«¹9£øD`7Gš†–·¨Ø+P 4-,.Ö×ssîTŠL§ 05elmýÄ0Âú:ØlÍ02ë Ý@¶#³ãË· F@EZ¿"hQ€ ¶~,HS뀅……çÏŸŽŽ»Ý.ÿÖì»w ¯ E@<ïéé!Irhh»óˆheŽÇã^¯7T¶é™¦&öÝ;9%h"ªÔú€,Hõ/@õZ¿"Ô¹óóóUm}¦©If õ,Ïó~¿ÿÞ½{ÕëûºcllÌd2]¹rwEŠQ·ë€™™™@ 088Õ| ßtàÀ»·oå”PŸ033ãõzûûûÏœ9SÕÉl}¨KÄÖWæ´'z Æ­ßtà€ÌêJ4é¬eß×-hžçûûû«:é¬õ#št^¾|¹–7•oAuò0nff& DMˆ)ß‚êá÷Èúý~ÿéÓ§±¿rQ½ñ<îÞ½‹Åú<(³Õ ‰Djoý"oß¼‘Y‚ºÇdý5¶þ ¢â˜ŸŸ¿ÿ¾ßï¯öó†"hׂðZ¿ˆ| R«x­¿‚¨Rdý·o߯nýò-H}Ÿ ëðàfýo^¿ÖÖ÷‚xžƒG]|Š 2"‘ˆÑhTŽõ…  |óAÔ§©Â|ò-HqëôYcoo¯÷×ÅEÀøø¸ÉdR¾ù 9"³e €Ì§»»[ùæƒxõò¥Ì$šùôööÖýÌGŠ‚˜œœT‘ù êÇ‚xžôèÑ­[·Ôb>ˆú± 4ö^¼xwEj"PÝØ+"ß‚ðÿ>`{{; Þ¹sGÿ—kkªÿ^º&þ³¿ÿ>ÿðáC5šâÈÑ£2KÀ)Ïó¿ýæG惱røÏ¿Õü¿&NNN *xäYUŒÑh®{¯­5ýðÃXì[\Ï_ÿÆÈ bmm­RµÙÑhC{û&Æ ÈD~ýñÏ‚4Žâ>PÇ2«¯î_IÊ㈕|ÞíÛfÛ2›…•“Ù,d³d{û&ljÄ7(3òi E 'NlÊo·¤(!6d2F”Ùnÿ˜÷åÔ®Àqj©l–\^6Ùí9ްX>Ùl[H|c³mÑ4ŸN–—M6Û–˜"Oš_ÔieÅtâÄV&cD)ËË&Ž#¤/Å:hz  (m‡¶ªÝØ (J@Çh÷GtLÓ|6KJS¤%ˆù mˆF‰oÄÍ#Ñ$ÓfÛÊ{)– é(‹BûÑŠHú;jôööͼ—(¦#@$›%Ñöìb Ú‚í šÍ’4Í#ç)´/³4?‚ã´¥g{û&r9éK±MGÇâ:¢Ò³vûǼA (e÷ö´Òü( #u-–O4Í//7ˆ/ÅˉL&S÷V"bh¨Ì3ÉfÉlÖ µò}£Ýu€ ”}÷åe“h2í훩¸v-h÷˜ùU*ÒåóÐaÌè`F3º˜ÑÀŒ.f´»Pz`F3º˜ÑÀŒ.ft0£ €RÀ ¤ŸÜhFü3ZÂé'7šok‡§õéêgžº'^dÀÒõxuÕë¨Rµ+ Fb¾üý»,¹‡wõ©;äòÅ ¾i½ÎìäµZ}1È„ovx&`ÂÓaµZ­V_, ÓÿóNS;¼«^@Ìg½ΠËÂá›V„¤@ˆù¬{¤Ö|Ä"!pÿåê±/×ÜŠ K×ãi¿œþéÕÕÕÏ}|âEÑ =Ë…Ø´<}¨±c>« raó´ÕÓQfØUld’Kà<¾k"Ëq',%Kî’ïS7„\Ö\@ì•Åý\ˆY:rN<›ÊÄ"¡°ùŠæÕFõ³ ‡7çýâ뎒I.‰.fµZ]¡šT´Ø°´´ÂÄ‹]›@e^L@k‹e¯+в£Ã„ç׺ógËoÀÆŽknýw<ýEb,÷µý·†åx ¿wBÚãy%`\\è›òÃÈyŸ8]ú¬®;ÜwA„£?9'žM¥s'\!|x0ñ"½s‰O2Ýþê™÷Õ è#AüG/áÂU7„\â…é°/,]XÔ¬ß ²¸î…†ñC-]à'“};ç|þg-p‡ÃîP—4½«%„.¸êîBǧ*é²|Å„}É0´ˆ:ýS®J¾¯r ’É$®{@,ö­ÃñÆ `Gõ³ µ£ €]Ìè`F3ÿ¬þ*9'MltIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qerrormessage.png0000644000076500000240000001567412536324503022327 0ustar philstaff00000000000000‰PNG  IHDR>½¥ †¥ƒIDATxÚí tUºÇ£àq›§, î(èSϨGGï½9OŸ€¸p|n ¢Ïe•‡EE $ì ‹ H€°„°Èš…„ÙCB6! »aKHxÿôw*ÕUÕÕY:ÝÉÿ¾“ܺuë«Û·¿_Ý¥«ºý.;ôçWþF£ù„ ³~ÂíÀñA‹6¦Ðh4/7 *ôúáß?üg›M£Ñ|Âþ·Ç`[‰îÄÐ_?Ÿ°†F£ù„ý}øì¡Ûcâ­}üÝ’®ß̲i(¬;œFóB«•¨ö'UÐýǤµÊÄï9Q6M¼k=ÐhÞfµÕ^⤠º='¯SöÞàYCçF¹e8DëFó6«•¨ö'UÐýrÊ:eï™ýíÏÑnÑz𤕜¿xîbÙæ¤ý*gÖÚ8äûý¬õƒfG¢Qþ9=¬.j…‹%ꀺÙ)Ükʺ¢ã§Qþèo%½¦®¯ùÙá †:èÒîš®‰jâªÞ­V¢ÚKœTA£ìƒ¡? Ÿ·É-Ã!Zž´òŠ ,”ãï˜EÛ$gî†äë³ N Ø¼ð¤º¨Õ°Ÿ£¥Vv O ýõòUý°rWÍÏ.®P¤…·¡s£«áG×D5qUïV+Qí%Nª Ûç‡ Ê>6gdÐf½ÝcèÓÿý: ç½8DëÁ“&èBˆ3Éù9,Ñn©*óÏia‹·[º£ßŒp•)q9?< iô$XsïëØÛwzÒÈ‘bƒfoÄæ€#Ô#‚6OX¶UÎW?lU{$ÿ´ ‚æt¥@ÿ™Ø‹ 7| ;R¢ðŲKø“ž¯­¶: LJìTõ·Ø“A~U±iajï÷ ·NÙ‰zjë0`fÚùßhòµMdèÊeS8Ÿ¨¾Ì0ª­Í9ªuN:ÜW Ð2ÝuÒí«QÚlZ;©‚îWÓ6(ûxøœïlÖÚãÏýϼüîß¾™C›º8DëÁ“&èž>{ƒÂ‘3ï*ºR`êʘßΜ—h>± j#A)˜õ»2s O"½$zvoLAúÒ¥ò~3ñ‰¡,6Ñ“# ¤¤(ïðoß/Ü‚|„»äàØ²K彺‚.öœQx¬ÒɆ]YÎõï7# UÅÞÛÒñ÷ìùRäÈ.ÿù›‘‡Q ¹r}ÂËœþËnë]0© ê K ÞZpì”ä n¸d`0Œü•ÛÒåÂ!ù;Óò›HçÊeS¬‹É¼T^y8þ®Øš^_áaÕ.Í9ªuNžyáuCsËÉÿug›‡ð×pÓÐItñ*ûdÄ\¼ ÊÞýÇPàªÍÁ&2µ98DëÁ“&áº%íRyùÉ3翞ž$èb/Àe⦠¥e(=mÕn0vüÔY‹Ï,œºrv!½kï!²ÝÑBÇb²WQQàCß‹nMâÃvgåùiÌNÑ!ž¥. @>Ò΋ž<íÀ¤·;8q¶ŸÖÇ‹”<å¸!Gv}·`‹r»mOÞâßäu‹]8Pv¡Útÿ™áG~+A:ýÀQÔÿTIå¹Õ˜ÅÛ*WM‰û#âràù¸ èšHëÊNS v¦”ŠÁ9°¾"Ä0ªí˜sT뜀Rç£t™.À>è;º×¾£Uº&UÐÅ›¡ìï#¼UÙ³/¼Þ}Èdm6‘©ÍÁ!Zž4A÷Ç5qˆ<$|ó#’®v_ákvîC:!«H ¯ß•…ÍDÇfNaåhpad Ò—UÎ6ÙHç=õ»£—^µ}ïÌÕ±H $ògüR™>w¡cil"¥3Ÿ–„µ‰×Õ;3äDþ´P·­ÉyH¤äƘٰþIÙE(°1>i9«ÚŽZ¸UÜâa`Ÿ8#£‹]Ø”]¨ƒ6=kMxiR\à@)0žúë¶”¼Íi•~fFtp(~´M¤ue§)&9‚ »À-6e¶R¦‹j;æÕÎh8å Ú|耆„ËšTA—deŸúÏ X´MÙ³/tþtÈm6‘Y%ÇžÖƒ'MÐŪò9Ñk•–]Zûë>A{c3 F`!"aXvÆfÑ‰ÓØ•ëˆKô-H˜Ž^ŽÐ›¡Åˆq™Y¸Á:úd”ÉH§î?¢N-ÎÃc³‡ý¥¦—²KõŠ¢i +:—:Fªà ÇÊPÿBé%tžØ‹ñ-6Q+tþRCH³Ø…´œuЦWïÈp\DŠ«)ºîÜ¢“ÒåBK7¥êšHëÊNSà¥É.,csbèÎúŠè¶cÎQ팆óQ.Ñ0¬ÉGýƺH¸¬It¿þ1BÙgß.Þ®¬kÏaÿÙ©‹6›ÈÔæà­Oš ûÓÚx¤C6¥VB{¡TÐENrv1Ò€±¥ QŽ]ˆTìZ•"~0,ĦtÝè‘2çè”*ÃnÙN+B_z·#^#ãr†;Ö“!ô9²KõŠ8uyy*9©j#‹-uTØYÁ‘ÉØ‹5óJ>+*ÍŠ”òR= D-v!-NPmZꇮS–Ç`® vIi–e›S›HçÊfSœq ;Ùèå{ÒtQmÇœ£ZçäÙ;;¥ËtéöQÿ€Jhû¨„uMª ;pV¤²£‚Æ-Ý®µ'žé¿^éòù°©0$°©+€C´€AZârqÔÙµ8zÂÞþ–hÇò> ÁœP ÈgNèØ1JÄ&:Æã§Î9"{ÏÇz²|#…G_A 9˜B#Ó9Wì“F±ßK*Gž˜c/VÅÅíìµñR^f˜è?-v!-»PmZæ˜ r”ÇXÃ…lKÒóùZ?Ë6§97‘råVSº¸@ÔW„Fõ[ÝûÿùÅÎ:C¦uTëœàΙ.|2 Wü5Ü4tR]Œ»”}1zþ„:ëÖk¸¼<$œ÷â­Oš ;g}¼lN_µ»â*ºØD‡‰þÃè•ÛöoL– á/;2°+ÇñÉ>ŒAÓ`ÓÁæ ‡+¬Í`s¾c­ ŠÛW ž1”Å «b{óŽJø~;/ZÖ“!¤¥°ôЍÒ£‚·Èú-ÐÖËRù)+bT&®A²®3|SÖsÌD¼[†C´8‘’‹¯ +›2šEŠ ­ò&ÃN8Ô¾œ¡s¢p3 ò—oIÃÒŽ`¼'÷°øÇÄxad2ŠYì|õãÔA—ž½6®Ä’(1»§»d»|´VÙ'Ÿ,Ù— ¸un"­+ûM!èÊÞz´Z‰j/qR]ííνbfâ–áû·S{Þ0NÆpqAD2{Ú|,n¡'ö]á.¬fcdˆ'ú±:­öø«|0œU½h›Ë]Ö†kÇÜõ XyB@¨Lð¶ 2yÎúçWdÑDžlŠš[­Dµ—8©‚®ö^çÞ §,ÿÕ-Ã!îÞQMsiãC®òéÎ.š¡ÕJT{‰“*èjïu4cmŸ±ÁSWÄØ4Æ!îÞQMsiè…O·vÑ ­V¢ÚKœTAWw»³x·i(ìîíÔ4;†OP1Î KrkÍÌj%ª½ÁIt±¨@£Ñ|ª ‹Si4šOÑ¥Ñ|ݤÌüß(Šò¯Ø@t)ŠèREt)Š"ºEt)Š"ºE]Š"ºE]Š¢ˆ.EQuƒî,ÕÄgddähŠjÐB׺ ÑË&ª6ÃxIƒ ¦¨-¹}zk]kbͶï$¼°ËÕ •™™‰P÷ºnA«˜èRTý kÁ­Ÿß¿Ì¼ŒÑ¥(O£k“ÛšÓKt)¢[kèZ“í£k‡^¢KÝÚA×ÎüÖ&·vè%ºÑõºn èZ¬ZÙG×ÏÎu¢ÁÉ;_uã|/¼ÝZçÖ%½Îèú©„Kõê_+¯ºÖ›®A¢[§/ªþÑužèÚ3ÛG׬)‰.Ñe¯[Ó^·zèÒëº3gÎlÓ¦Íu×]÷ÔSO¥¤¤Hþ¥K—p«Êí·ß~ã7¾÷Þ{%%%†®&Mštï½÷6iÒÄâ .|üñÇ7ÝtSëÖ­ÇŽ«*`v1ó³aÆ?þñ¨'j+MªAT£Õn Ý©|ðÁŒŒ $l6 61"@UÌÞ;; nØPu0CW{®{î¹í¦«Í ±¨Ñ­µ¹®ÚDà6qèÚk¯E&.]™‚Œ¬$]VVæ]3?FvîÜoŒâV­ZU+u¨IShËŸ;wîðÍ›7Gû·hÑéûï¿_Æ¥º³«‹‚óÛ¶m;dÈ›“a·Ê~ óq8ŽÒÕÇ­ 1¬Ñ­}tѾ¹µ¬bv.؆=ÞxD¼¤ÑÝÙ?5º¸;VêP“¦Ð•Ç8}&HcDðÊ+¯¨O{vô«fgĉ0=†Ÿš4¸aC™ÕÁì]Ð˰׭FèjåíèVã– —è*nëÝQ£F!ñfãZ‹A¦=.]™‚¤Ì31ÑÒÎ3Ÿ~úiL)Ñ;`’éòÔ]»vMOO¿xñâºuë0”L¬š`øWí:Ô¤)t§ÆªºÜÀÀ@¤Çwë­·N:Uvab‰G½ÿþgÄ×Ã?Œw°Ú nØPfu0{tçÂXs]€Šè’ ¼»AbX+¢[ûè–——É,·>ùä“X`péÊì ±†EÈV­ZiWw±‹«>.ÞÓ¦Msyê%K– ¦Qþ±Ç‹ˆˆÌï¿ÿþøƒËcÍêP“¦Ð3I¤eššœœŒ´êå´«»H¸\Ý-..~ôÑG±T½7l(³:˜½ ºsa…«S˜àò„•çj‰a­|Ýj|º[mn½üFH~zIùÌ2•’YÔÞ’a°–[¢K]=¯[ÃÀµÃ-Ñ¥ˆn|KFµc×&·|rˆ"ºuõÝTÚ{÷lBkŸ[¢KÝ:üFHà§»ÿÖŒX´v¾¡ŠèRD×_æjȰ3±ö¿’èRD·Î¿B]‹¥–Þjt¶^‹®ËÙùÚ;×´(oEW7„vF·®¼]³Ï÷‰.Õ ÐÕ­?7tÙëR]Eo­£kñŒˆá#æû÷ïã7p¯ßõ×_[Uqï+îïk×®]EE…@Oº ¼sI³^×¢$î×Ç]Šxþ“O>ÁSºí<ÕMÝzFW}zä1t 1ÇwlÚ´ •œ:u j¿ÿþûÈÛÑÑÑR ** 7¯›•4D×¢$žtÅ3Ÿrs<žÐhç©nŠèÖ?ºÚå+ køˆ¹VÈ—§=~øáí*øR³’.纺’ÖÅÙyª›"º^®¢×èæÇÄÄüå/¹ùæ›e RãûMð8Û‰'@;žzùÌJžÂ¢¤õƒàvžê¦ˆ®· [m¢kó¡jµ‰§«—.] o˜Ób|«òñ½-ø¦<ùÕ­[7ë’Î ‹’Ú^ÅtÚyª›"º ]›U«Í–-[®\¹+FX[Â/©üðððÇÂ\׺¤s¢$…?âæºÔhöT7— ‰nÃG׿CÕjsÍš5XOFy|ë¾ÜPûè9<à‹—ÔR³YIç„EI|¿„¬0cÊùat³§º‰.ÑmøèRÑ%ºEt‰.E]¢K]¢KQD—èRÑ%ºEt)Šè]Š"ºD—¢ˆ.E]¢KQD—èRÑ%ºÑ%ºEt‰.E]¢KQD—¢ˆ.Ñ¥(¢Kt)ŠèRÑ%ºEt‰.E]¢K]¢KQD—èRÑ%ºEt)Šè]Š"ºD—¢ˆ.E]¢KQD—èRÑ%ºÑ%ºEt‰.E]¢KQD—¢ˆ®W*22rРA™Õ … G¨7(t…ÞÑÕ eŸ[_B—¢(¢KQD—¢(¢KQÑ¥(¢KQÑ¥(ŠèRÑ%ºEt)Š"º¶î‚të&2Š"ºžÈ,w%û\@~~~¨¶gÎB]¯F·¬¬làÀ€Ë®J›cˆîÞ½{ßxã[o½õúë¯î¹ç–,YR§PéÜš…HóÚ׈Ð---õ»*°ŠMáV„MCtkß¾}sss>¼zõê—^zÉÐ¥¨F„îÅ‹µ¬êÒØkˆîu×]W\\lÈØÄ‰ï½÷^xâ‰'vìØ!ù üÃ?ü7‡>úè#l"³mÛ¶±±±H¤¦¦^sÍ5H#ù:ŸJÖgQBCCyäìE™I“&ÖóÛo¿mÖ¬Y«V­ðeH7oÞé+VHãÇõÕW·ÝvÛ 7ÜðöÛoZx6ÌLNN~õÕWo¾ùf LpiËÊÊ’|´[×®]o¼ñFœnäÈ‘ªÎfgÔÊ]Ÿfå]¶$Ñõt/8¤%Vq+» Ñ}æ™gz÷îÈpFéôôô¢¢¢o¾ùæOú“ä÷ìÙ³C‡<÷üâ‹/~ùå—Èüì³Ï7HŒ?±%A?a„Ï?ÿÜe¯kxU¬eË–AAA¸@ࢀK†!º=zôS§N½é¦›TúÑG•ƒ~á…pŠC‡uëÖ­{÷îž 3óš5kU~~>^þ»ï¾+ùxí:uÊÎÎFk¼üò˪ÎfgÔÊ]Ÿfåµè¶$ÑõtÏ_•®¿UùfsÝ>ø uëÖ˜î¾óÎ;ÒaJ(`-iDCÓ¦M%}ÇwÄÇÇKý*6¥³zë­·Õ}úôAÌ!ýæ›o._¾Ü%º†gQÅî¹çž1cÆ$‹øþýûe8 M7iÒD  #Љ‰‘4.7èÍ,<»<*‰îTÒwÞygbb¢¤TÍÎXŸfåµè¶$ÑõtÏ:dØëÊ.ëf:IL}­'¥@BI;vLB½A›6m1¸æååaÈŠô}÷Ý'Ãiûs]m J"::½:ûï¾ãaëɳa5lâе×^‹LŒç-<fnܸñùçŸG—.í©<èšÂåµr×§Yyçã"‚ï¡[RRb1×Å^—a¨‰™’u( ›Eo 鸸8ô’Æ s3 ‘Æ@zøðáíÛ·ww™Ê,¥c7ì¾\¢ 1Œ´xÕ†žµ™wÝu×ܹsqI:yò$ƫڦ0ì!]ž±>ÍÊ݆€î™3g´¬bSK/6 ÑíØ±ãºuëÐ=æääôïßßy¶©ÛÔNÆ€k¯^½$? ]îˆ#ö÷÷¿å–[O‡a¹,hÙDãð]»v9r$$$DÝBwذa¨'0@'†q,Ö,<f¶hÑbáÂ…h"¬ €òŒ9'ší†Ö@Âåµr×§Yy¢ÛÐ=}ú´ú÷ôUis ÑEŒb$†µ%¬cŽª.ùf¡ ]aFB ‰1F™-[¶ ½}ûv¤Uç¬ÕСC±Lê2àT]ÍC=„!(–Ô¢±[èž8qËβôúøãcʳa&>ë~à‰IÖÞ”gL ºté‚eäÛo¿£ 5`1;£Vîú4+Otº§\É­»©(·„¡ ò~ŸD×ëT½{˜ýLÄwݦð©Ö´±Â‡Ë_|áµ>‰.Ÿ¢ªhܸqÙb €ÏÕ ¼Ö'Ñ%ºEt)Š"ºE]Š"ºE]Š¢ˆ.E]Š¢ˆ.EQD—¢ˆ.Ñ­3á·¸Æ*¼vÑõan-Z4¢ñ ¯šô]_•â¶ èXc3E/Àèú$ºˆàƒ‡Ÿhl–•s¯è]ßF· èxc³Ìì<¢Kt}ÝC…Ç›íË:@t‰®o£›—_œ_p´±YFæ~¢KtºG›íÝ—Kt‰®Ï£‹1sc3¢Kt}Ý‹@¯gl^PðÃWþ&ØCýûÜy T>¾OO¥Ã#7µm×nÑ’euZ“ôŒ¢Kt}Ý‹=`+YתUëÅK—gf\´?qÐzÕ/ëeЕDȲUmÚÜ¿zMX]W&mo6Ñ%º>îþ¹E‹–’ºßl×îÁí;w{¦2{Ò2‰.Ñõmtǹ <`ø)=Üä6‘nÒ¤©¤.~›/$t¥gjKIÝGt‰®Ï£›³ÿ¬yó»ã’Ô&Òèu% tÇŽoÕºõ†ð(ÏT†è݆€nvn¾ì¥öÇNP›ãÛ·ï(i ‹¿ãÆOÆïë®Z½Þ•IÞ“At‰®o£+cWØÒe+ñ³ ‚—âƒüE:$t•캒˜îÞ}9ÍbãSˆ.Ñõmtñ!gzFvc³ÝqÉD—èú<ºi{³›íŠM"ºD×çÑMMÏll³;‘è]FW¾‡ô46ã÷0]ý€¿~@t}›^þæEt)Š"ºEt)Š"ºE]Š"ºE]Š¢ˆ.E]Š¢ˆ.EQD—¢(¢KQD—¢¨zBwÔ䟰A£Ñ|Âl%º—/_Æ?æClÿª5±‘{:$IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qformlayout-kde.png0000644000076500000240000000324712536324504022565 0ustar philstaff00000000000000‰PNG  IHDRŒ \W~/PLTEŸßJˆŽ)– “Öeœ ÿóYöè}Ÿoå²Ó0 DQ4qÓ¤¸…*í”ÆII(W‘XñXBÿÿØw& –#N<£ë#¯î&³«”Ù_ê·  ‚’¹o1¼>•ºx/ËG`8)’£CF*È£‚À#ĸaÛ9W–÷M©^& Êäu £05ÈYQF †@Ôß,&®‡n³¿[hã}<Xeæµ@aÎʈ„Šw˜*Xžhއ¥:>  £LÑ2D VrËXrƒ… ¤lÝù8þOpúi“ Œh¨äQZÁj¢{9Þ¾»•6Þǃ€…Qƶ)–± (¸lz@•0lªªqîRÆ{Ìia”±= ^°¬ŒhVV2§¤Ä I&è–á®í‹£êœ/q7è7jï·‹+MUç*)ñBüf°5Ñó´7¥½Ki/$NP<Ð)/q‚Õ¬ù Ö³Fü'ø±C'€@ MGÞOÜÃþ‹²Œ¸S¬{úk;U@P@P@h T#ȱÕc×nv(Œ~y£vTÉ‹òþïT•"ߌ1ÍZÉŒd_ŒW>‚ØNCÔûéï œÀ œío$ö0-˜†€; ÈÛUf · èÇ È­ l'LG°FÙÔw4 ‡Z‰ÙF®ÖHüJ¬ ˜HSh$€%Ø#DMÌKÀî(ˆMZ1#&ÿ !¡ C€Ÿ Ð`°÷ˆÆsØ ˜ŒÀŸ ²Öd> œÀ œÀÿ>ý–ÓÕua‰CÔâ«I±;888A¢–Ž!œG¨º„s£n!p'prµ—m¡x” §íM‰n±YÿAe?AëCB@éÆ,#¡ À@BÁzÅ@Ê}À%«‡ØÔ2Ç ŠPfØÅÃ’yßúÄpðoQ›!Ðqj ³&H(d¢^K@:ž@© l`&Â5‚Òœ =ê¨$y6PǿȢM0ÄohT·½÷ŽP$t"Á> <ÑÓ! Ô÷2È ÝùÒ8”â¨wü5)½8ÄÆèH°„!ê‹};HAˆ¡0ün—R'*æþw’¡”iŒCA™Ìûíª›ÒFRÿ¹G¸óû‚-.ÔH@€$îJ2‘'¶O$‹3±Û¾9 œÛĘžÀ°ˆ Ú¶ÀŸ6UEMkãàŠmgäNkCîߪ}eߘo[FOËKàתÓÔAí•øÜ5OPûD`®Ñ°?? ¢»ÀœÛ Á!˜ ò È80bmdèsL‡îÓ„#º èœ?“´‘ ÃhDĉXœ\öI2‚EºK·GX\Âm H@€$  H@ü¦g9p@@@P"“áõï$ˆ ¹fTÎuœý÷XnW ÛIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qformlayout-mac.png0000644000076500000240000000325212536324504022556 0ustar philstaff00000000000000‰PNG  IHDRŒ \W~/PLTEöô_Z É©”c(Jˆ¶JŒ=PQí*FλfºZÝaæ8Y'“AePª1€JMB‰“FÐ F?,æg·#˜Ùæö² G²% BfP¶%P™mjÕý fõéfó70†`ï (EÆ l%¨ÃG±‚<Ò|̯®ëÜæ\,W7_²O€"‚ qIâ#A+(ŒnZ‹º»(¼a–……3¡U¨5Tj*à®Fد`µÐyySûW Gƒ{áȸU’ÖCá?A ˜‰”ÊúùøðÕ”¾0˱¡Ÿ¤'“÷>“ßÔ¡ö*xš!ï^_žËÇ7;tŒB! @ÔK!Ù­¬¢X|~c£…`o%ÄûÃ$È’°{_9å(›SBâ…¸`™Ük=öÍ•FÛœ–/^\€Á€äÿ›±4`Æ”)ñâÑ‚âI”x¡]Õ₾j~Á·àa׎vÛ‚( ÿ~0Ú nzŒ[ußÿUªâ¢Ãhm’nìs$kÈ¢Dʧ6øýãrè|{9˜À&0 L`˜À§V²œ¾·Š ^“@¥U¾ŸžL`˜€©°¸ @8‚4l$`ú¬© øG×#˜`´W©ˆ‹`.×VæuLEG…l] ß6H<$Ô𡔔ꈷQy ¸ÑJMÀ½’‘@ÿú… –¯¯þX2î P3ÄgÄ}Ä+@%âÝ¡ ˜Ãó Ü&0 üïÓ,s„áÔ*yæCßìiR.˜À&0 úV²ôý¹Qú>A.Íòß L`0åþø0•L5®–ÂÓîë4 Ðhý êÔÌËaŒ„N, ‘ *Ì(Ó°$`V‚/&¨_.¬ ™Q("àšÔpÑt•çerTSÆH@Ù/A«–@E@Y!ˆIߊvAH6¦Âã{ÁZ”à–” z"lØä&ˆá»C®ÉL°yƒ¼Ýax5á3#0&$P>O02” ÿÖÈ&X7èÞC0,ÓíŒà­ÛœÝÍÞÚ|‹§I&0 L`˜À&0 L°=ʃbRyJqúWÄ‚p®•sö‰_&3é$ŒIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qformlayout-qpe.png0000644000076500000240000000334412536324504022605 0ustar philstaff00000000000000‰PNG  IHDRŒ \W~/PLTEÎáé~¡€”é¥ãÔ€â$—$#la˜Àš-‹‚h»ºn¤¾´ÝJÃ@…eØEZŒi¤MÚ›JÌOMªâè…‚à@ñÂ÷wçl—.z9ýÈ™Ù|ÌÕ©†\jአ‘(18 Å ²=—c¿Ül3=˜ÃdG§ø(T˜Ô²²&P6H(Yù‡qH³H³¾¸Ÿ)ÂŒ™„%ø ˜v€{ E°*oai«ö|·;~q9”+ Û%Ø ¡’£¤‚bOÿµ¾¹m =˜]0c’å)4È»”Š Ê8³?rHe`\–eÓŽW¥Ì>˜1qE©@>4r(4TŽ·xÇa›Fæõ]«Ý¨[½‚ù ˜!0‡""ã# 0±‚JØ>b??ýô•,ÈÃÓÞ ,>Sÿ©¿ÆqPÁË ûáýíµ:(CŸ_vè…Bˆ¢¨›‚™€VVñó ±±ÑB°w!î&*!aÒNc<å-^ñ„މD¢Å_`œñgӺ̆"Ãh¥cU*Ñb](§UÞÐÿ#D†Q]HB*ÑbݼȤ-þ‚:k×MÖìß';tlÃ@/–´4–(ØÆp$þF¸u÷ùZ¥ ( € ( € ( €à`z9V ~ìÛAŽœ0…áF²`“ àDS÷¿J4€(JnB÷(¸ì¦ž„ «ùdÀ=¦¥ŠüüøÿAAÀ\¼@ÈÃ`ö ^$`ÞN hi°À²Ì\ÔEc.{š#ØjÝôHÊTAæÒ=¡µQ ­‘ø'°1`Jš$Б–àBä@»<連j‘@/þ'.A7 ¶Zœ ƒÁ>#æ`¯­Æbv‰-Ä(‚ ‚ø÷iò#>ªˆë:ªÈ«IÉ ‚ ‚ ‚ ¯"ƒ#Aß5¤ïÝúQêÈ3AAÀœãåC´¾K0·=*‚A:̰0ÔH¿(ÀF,e–‘ØN˜Â€ …,A™{6%ŠØtÏ|ÖbÊÊŽ»x¸6"½b€~ ð½€¤›%ÐÏy)ÔV ¥&zÔ å ´uC H¶0ÂÁºS9Áñ…W&Éû€%€¼¾q/@-N¼ï £À< ìÙןˆ0GO]çFÐâ”N~ïsO‚´Ï ¸=P„€gø*Èê:‚iš˜¾r-‰sX°u)KŠ€ùµª?Á¸ÏõÙ*£%äm ì²êm %È ò6…GAÊ ˆÉ•ÌÅɽÀaHÚ§AöDp™øO©lvÈ’RɃÀvJ]ÁLhê$˜˜ª'ðA”2èÄ'Ù³C@‚,V4¢$öŸ‹Aq?ÂÙy…_Túr}QºI† @€Þrà €€˜TžRœþU± œkFå\ûу*aÛJUIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qformlayout-win.png0000644000076500000240000000331712536324504022615 0ustar philstaff00000000000000‰PNG  IHDRŒ \W~/PLTEØÜØ8„Ø0€ØÐÔЀ˜°€€€pØ”*ÀMÔçí 'p'`ö#ÖHÎ@€} èǨî&Ï`†‚ß ŒCDÈÑ'˜c:d%üž@v !gõ] ß6‘(IÌ $mÈN€Œ(@ ÷€!VwA(EÀFèÈÅ_þBˆÈAB@&úd3¤Ïˆ2}¤W€„6w‡N˜ëܾ œÀ œÀÿ}ôº›‰R#tÁDu>M êNàNàNà‰ê š¦²PM£FÐTÑF=CàNà¬Í~˜'!ñ.Àù¤5‚°Qå  0G°þ^ÁLŒ‘L?,ƒ”"Ì߈ð$`Vâp‚ü½!$˜„²HwA><œ’ùéäß rdòyc=Å ADBLd5#ˆÇHÊ °N]ÛÓ‰i‚í !;IÎC@F÷ñƽ±Ø$п@‚üQ }õ‰0I²Òç: œ¨;DY»Lƒ ±xòÙ!`*Žú€ÿLŠ×!p'p‚Ð46 ºÆDiÎþøûfJÀ œÀ œÀ œ 6Q•"A]W:UÇeÕµA­6V­ã÷²®I–ua.OŒ÷†ñÞá½ð~¼÷8a…Bn“NT¤2ï½yîÍ,Áƒ*:ŠììªêV~}Î=™Õt Ï›Ûnì­kÒ¤¹mÒ¤¹í…4<ÿü¢@§eÎâˆ×ECßtúGOOwi&!UVIZ¯3Û]øêúõ`!!zl©8JJÁ€"Z¸’²wÍ«$… é³Ï.'q¾p\¾3›"gt==aûö šÛÊ7d«—¢èÕuëDHàUÊï²#ˬr¨‹HxTRÓòK}OX}à~®ysÙQõ¬]û{Ò§Ÿ^§.¿"ÅI(H˜îÒ̧݈˜dN†[`<æF8)˹n}ÊÆ‡4yGJr<‚ÆH)<®2E_2|g׌€”¢æ˜5kHŸ|ò­| BKF%Üîã2÷L<Ý!$bwÙD†"ÅCúøão¹sT_ U‰B’^º@ºY€ç¤ùó N¤ã‹ßÙD‡/žrƒ¶zõï$HÚËÙÖ&ð…"²&Eé éžnÜîŸ œäšd›ºªŒN°;ðªU ¤>:œ¯b†,F¾Ç‰)*HƒçáöÇÒ¦Mú^È;Ò»«T ¹E éÃÏs^‡¿v"†R£ÿX°`iÓ&ÅAÂC]v¤Šò ¯\ù[’íŠíYW–‚àéñ,¸ú4tBÒî8¯ ? nqxù¼*éƒΗÀßXµÜ'ë) !$‡Ä±éì—ÞtSOÊ) ˆ†Ê-.;žä++VTê©R®„\Nš^X¦ñt;<½½ÿrû§žÐô¢I’©Äߴ圱åËCCzÿýsæ«ãŸLe€ä‡B1…2êíßÛ{’o4œ²^gËo†’ƒ¸”ßXHï½÷ x ÕÇÊÚt6S¾çÅÑ@rHn¾y¾{ôõý»¯o¾ç”B  þv®z½A.òÆ"$ÍÕ»J‚9P¨O¡Ý9H}} -rÿ,Zt“çä+SH(]þ©ëi#7Ò»ï~ÓÞãÅŒû? ‘°BÓsŠqºY¸pÁ-·ôÞzëÝÞµ}|hò7—âTÒ1 B—iÈ^ý×vH…›¡¼‘¿AGÜcpH˜Å‹ÞvÛÿÜÞµ½ŒÂ•¹Þæí Âk¯1Þyçì¼ëºi=$dæõ´xqß’%ËÜÞµ› $P©bMml,¤·ß>{C}Щ©)¦Ænç““Scc“CCº½kOLLú—ÂS„Ë’oq½¶W_ý•ÒT½/\)z—”Šo;0®íöãã“cc/Ž žw{×¾|yÂqš˜˜êlóš½Ì ùû¦ÚgøÊ+ ¤·Þ®;ÖqD‡‘¢iöÇà9$̹s£gÏŽº½kŽŽ{=¹Ãü£91åý$Õ†0f!½ùæpuk’ÿ*Y1á †Îp_wGÈËhttbddìÂÿ¸<22î°¹~÷ª;Æ[Ÿ?‘T÷µÈ"U¥%úòË¿T@RIÿKdéDÃù[HÈ~Ò¤Óçäð\ºtåÑtåU÷ðš#9¥ïH2ÿrcôg°8Sþ ?–ð§rõ&‚”j(‚äxNÇ•†“Q)5=߯ª*ëUÊÛK/‰@öø'=M`q ]eÐpê šðFçzB»sûiH3ê‰:aa1{ñÅ_Ðöï?SåÍ„¿Aø’’å'Ú‡„š‚äxÅøøÐa3ÉÈs ÅÄÕ'Ž– 'Üe÷ _d!íÛ7Ôj½áD±ISœàu)§éÆ5‘52òœÂK‘Å Ñ“6âó ¿½ðB’öŠò§Tù[Öèüà6ƒÞ”¥Ð÷ úé')7=0‡¯²vì8i^;ë—šÈÑI‘«L0*/ˬ‚Óf•T±>…¯>õ” /Eø—Ltäš7§$V)X´JÊNxµ´XHÛ·ŸT±1à‘çF¸’"ÓCäEYI 3­'Ÿü‰ œŽ•àáB]VI‘ã¥õ‰¤•âÉ. •Ä<ª”ÖO0¶m;aXJÀK‘Ê벎G¢Š ¥ÇÈ¡N»úP¥8‘ý¤–’‚ÁëÊ9‘„¸i¬îÇËÆqíªÄ²e?¦!mÝz¢¼áë ÙümãAâN!+Ÿ¼8¤ã¶Êä›,¤-[ŽVµ³«sÙj$9%†6Ñ\–NÙ…×Âñøã9HÙ93>o•$”ÛRmZ:æ‚T+‹ƒ!‚…40p¼¥°ÂË,æ!ÇîôÇCÙàPbwY—zì±IÌSWð·sx´ãd$(#„”õ7ALÜÜxÚå×hØYH›7«»²F;„`zTCRhtò2«-ˆãuäÑGEHà… ·$ÌvG®ètíIN¸ÝâÉÚ-A°6m:V²¸&ººbb0HlTKA…v§]#oš<òC ’ ’m´„ä_u ´8H‚Å y¡ÜîTe)vÒÆƒ<%©DL" ÈÜ e¤Ò( ¦óá‡EHHHX†Á%•BÊ ¯FÈd¶p¶ ; iÆAs¢Sâ– bbÆ]ä„ü‚¬ e‡B{—ý¡‡~ Aª kwªe’áÎ^ùÚ]•ÒúõGÍ‘A»d.âi'¹$$í^z!§yâÿm:|P„d^ªÁ 2ªIPs­Ž×$ Ra¨3²eñŠÒw‘¿=µ¦J²xàû4¤u뎖ܕ0פrÇ3@"õ F†Vk’ÿW‚¤šv!ÓXœPÖñ46¨ÐÖëª×$RR÷ßÏ@Z»öH„ÌŽÇQ´¥l(E­Ö$ß#Aj)5”8ž •»µ²e‡ûîû iÍš#³9“•Ž âäA !¥º×£“Ô!Üñ´aÁ ;E¶8$×á·*ÀRÂBZ½úp¹®b‚€õ¤Îo Å!TN÷Þ+BÒÞßÓ ¿9- èÍûdÉvkæWwd.æôŸšK—e9ø²ßÑ Dò‰$’/ét:Ý>¯×ïwXóé—_ûòÝÿ^.ïw/É„¾þî]’;†ý0ú…äŽ!B.ÉC„^½$G ôÒ%9ú¡Û—w^’£züsçèBî=Bhó%9úx¡m—äèS„6\’£ÏZ{IŽ>QhÕ%9ú\¡ç—äèÓ…ž\’£'™*B¦ €© dª™*B¦ €© dª™*B¦ €© dª™*B¦ €© dª™*B¦ €© dª™*B¦ €© dª™*B¦ €© dª™*B¦ €© Ô©,Ô$U°…:¤ ¼PùTQA¨vª("T8UÔªš*J •LՄꥊ‚BÅREM¡J©¢¬P™TQY¨Fª(.T UÔ¢§ŠBèTÑEˆ›* ASE/!bªh'„K…X©¢©(Uô¢¤ŠÖBˆTÑ](?U(”ž*JO ¥§ …ÒS…Bé©B¡ôT¡PzªP(=U(”ž*JO ¥§ …ÒS…Bé©B¡ôT¡PzªpôôTáèé©ÂÑÓS…£§§ GOOŽžž*==U8zzªpôôTáèé©ÂÑÓS…£§§ GOOŽžž*==U¸czªpÇAB»S…;ŽÚ—*Üq¨ÐŽTᎣ…¶¦ wœ ´)U¸ã¡õ©Â§ ­Lî8ShMªpÇÉBOS…;Îúé|~;øÂÞÑ DòýÃû\\+.{ƒIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qgradient-radial.png0000644000076500000240000000446012536324501022645 0ustar philstaff00000000000000‰PNG  IHDRŒ Ú»âPLTE€€‚‚ƒƒ„ „ … … † †‡‡ˆˆ‰‰ŠŠ‹‹ŒŒŽŽ !!""‘##‘$$’%%’&&“''“((”))”**•++•,,–--–..—//—00˜11˜22™33™44š55š66›77›88œ99œ::;;<<ž==ž>>Ÿ??Ÿ@@ AA BB¡CC¡DD¢EE¢FF£GG£HH¤II¤JJ¥KK¥LL¦MM¦NN§OO§PP¨QQ¨RR©SS©TTªUUªVV«WW«XX¬YY¬ZZ­[[­\\®]]®^^¯__¯``°aa°bb±cc±dd²ee²ff³gg³hh´ii´jjµkkµll¶mm¶nn·oo·pp¸qq¸rr¹ss¹ttºuuºvv»ww»xx¼yy¼zz½{{½||¾}}¾~~¿¿€€¿À‚‚ÀƒƒÁ„„Á……††Â‡‡ÃˆˆÃ‰‰ÄŠŠÄ‹‹ÅŒŒÅÆŽŽÆÇÇ‘‘È’’È““É””É••Ê––Ê——˘˜Ë™™ÌššÌ››ÍœœÍΞžÎŸŸÏ  Ï¡¡Ð¢¢Ð££Ñ¤¤Ñ¥¥Ò¦¦Ò§§Ó¨¨Ó©©ÔªªÔ««Õ¬¬Õ­­Ö®®Ö¯¯×°°×±±Ø²²Ø³³Ù´´ÙµµÚ¶¶Ú··Û¸¸Û¹¹ÜººÜ»»Ý¼¼Ý½½Þ¾¾Þ¿¿ßÀÀßÁÁàÂÂàÃÃáÄÄáÅÅâÆÆâÇÇãÈÈãÉÉäÊÊäËËåÌÌåÍÍæÎÎæÏÏçÐÐçÑÑèÒÒèÓÓéÔÔéÕÕêÖÖê××ëØØëÙÙìÚÚìÛÛíÜÜíÝÝîÞÞîßßïààïááðââðããñääñååòææòççóèèóêêôììõííöîîöïïïïï÷ññøòòøôôùööú÷÷ûùùüýýþ Û¾R IDATxÚíœ ŽÛ6…MR7h{ÿ¦¹(U$çç 9’½Û"˜‘liƒñ‡÷Þ e‰ÜôógK¿aþ?0|öosN)_;o¯±·×µíÕwÞŽk?ãüèÿù˜ %Jf†iÂ9>ÃùÌ@aš~x±6ƒæ|1L§°|†ó1 ¡ ú$º°6Æ%QæœOaòØÒBáŒÌÊ´í¿€IY¶di$4‘9XÚÎ “sAeB#4#Á™QJªL}瘤,b”SÜŽK$ *SŸÄy“ ²,4¯´”¶Ð¬,¦žß†i$ ¦ŠÆ–Ò¥½ëñM˜B0eRB£]Ïô¼ãœK‰Hš8ß‚¹Xf-( ­& ŒIsGó SÆehÈ'…Èe†IS¿ “ ï‹QSÚ62³I´W¯¨ž`Êfaš©çQd¦²”êióS Œc·„ÆVÚÄ8l’ÂÔ/À W›”çÐŒŒ*3éâis ÓI˜Ç1JSã”¶i2+Ìf­©;˜2k£F ŽN02Mã5˜4s÷»I‘Ühc[ ]]ѵ•Ûd<]jÝÏ`R‘ µ™Ê[‹{ª¦Æë uiÛù¦˜-3ŽðPA ìzÒó¨É ¤t{ “ËVÞh£­†C#0×{n2wºÔÝÄÆƒI†eÑÆ”õ F&SJ·º\4ç3 ±l( ”¹Õ80ZJÕÀÎNÇG˜aÒæjâhAI×Óž‡¥¤Cõ¬Ë>µÂ¤bÅ!m ŠC£0[ÖTՂò´×ySf[µÑÞÇ£ŽL\Js·›eé§[˜´1ŒG´Q£RÆÐ@5™RÂnÇ8(Ë­o)f»ÓÆTÍ€ÈèøªËn`ê Ì%ÌV&q Ž Æ¨Ñø´ëž§WUhu’¥í§S˜ÍÑFŒš|²…=w»Yv‘f‚!aVqÊ–-Ž¥±0à¢{õdQi&DñÄ‘!¼‰Ó Š®=©´ùг—’˜„ ,€ãÀ€0Ž8h• ˜ NIO²ˆ4&o–`¶U› ­†ûŒ6™cÕe¯Õ%©û~¬0×Çw†Å,'Æd7df”™äGWqø°Àä‰Å‡´a£84Ãñ%“L§sd¡Ã1ÔͥYÅam˜†»ÞˆŒŽFeeé60› Ü˜E@¬ áPh^M Ó¨,«Aã¼O0™9<Ö× ›ÕtêeŒ[Ñ»ÃÂ>!LÙ,kÖ8`ïÓÐpd¦n‡²X|U à 3 š…×›”{×k=ï8OSÕ ã,,t20 IžÌjh7RÜZØÐ`YN'Âd¡0@K¥Cÿ“òÖsY›NçÖ‚Œ¾0ÅÀl~š‰Gq˜†`41]cÐâp!Ì`xšÅa£zh^Õe’åd„Fa’²ÜMÑQm¨Ñp“1ÑuYv8ư<æGyØ(†A“ ÷ßå“™â È´eÕ¦¯1˜èšÌ>´ã¡0eA–»¸ÿõw.ëÉ ÉýÁâT„ˆ$Æä'ÆÈòý¬0–Äulê†ÄÓ‡)Ê HÆ ÏÀ„™”yÔ㋦Á°. ÆdöÄžæOä^&èzõ ˜K—! ¨ò$†9ý­0ð˯xœ™j£òV >õ³¹Ãy’©›UÒÖaö³ÖÄ%ñÿ8Á¼Ãñe*yËæØú Æ3Šs÷ñO6˜+4Wd:Ì“Og…ùëîÃ? k_~ f„÷³Ï^þâGH˜P6 p ÒÔô ¡ÊX—¡.®B]v†º õU%Ô—¸P_oc}ñuK$ÔÍ¢P·ÑbÝ` uë5ÔMéX·ëC=Èõˆ'ÖïPC=0õ(9ÔCöXÓBM̈5e%ÔdžXÓœBM‹55.Ö¤ÁPÓ)cM457ÔääXÓ¶cMh5Õ?Ö"ˆXËCb-œ µ¤(Øb«XËÐb-Ћµt1Ö¢ÎXË]ƒ-޵D:ØâñXËêƒýÂ_ø«~ÿÆŒà0ÿ²ó{Ó6”IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qgraphicsproxywidget-embed.png0000644000076500000240000000422712536324505025003 0ustar philstaff00000000000000‰PNG  IHDR±Ñu|m’PLTEÿÿÿìéØÿ3fÐп¹ìÌ„ÏéØBB„±éØìÒÖAbBiÖGÕÌØÏÌ„œßÿÿ¿tì¯bBt¿ÿk¯Øìé¢Ð·tÏÒÖÿÿ¿l¯ØœÐ¿:Wìé×A<B„BGÕGÖlºØAÏ¡ÖbA½ßÿÿHHHœt<cÒØtBGÖHlGÕœH·¿AtHA„±Ì„k<ÿÿßB¡×ì¯cÏé¢iÖìé½Ï<=lÏ=…×ÐÐÀkiÕBc±…ÕkÑÑ¿lc<ÑÑÀìºÖj¢lGÖÐÐlB±…ÖÏé×±ÒÖB=ßœHBBc5k¢ÐœW:5t¿_A„±jœœHÒÒÄÒÒÂiÖ¯„W_5±é×l=B…ÖÓÓÅÓÓÄ_œ¿œ_A¢…Õl¡×lº×BkcB½BHHttHt¿¿·5AAbkA¿ßœl¯½_œ¿œHtÿßœH¿ÿÿHœß›ñ–ÀIDATx^ìØ‹ À †AGÿûÚ»…B]@…”»>H4m iK ˜b(†b(¦Š¡˜b(†bŠ¡Š)†b(¦yT*F^eŠ‘O™bŠueŠ)ÖÕ(¦Øúh Åä2í± ¼ñëâæ¡˜»âLIŠM£XªS¬'ÛäjƒíÛùïb7»eךF…ᎃa·¼Öé–º~܈ˆTŠŒšBcR’\„”&´¥ ýü¸k e~zÏ9;Ãn6A‡b5Æspfμyg >œÙ#æDŒ²b³ J;¬!ÿÐsfLÌ!Ûî-Šó×׈áGëëòUÝ,€ð\ëFió´"Hç€Ü¤ÚA=é×ïºùE¯tãc+@l¬”N``¶þðE)Í&eJ] QŸ; °ÖòÕ.H²Ô+¤`„ª­GRu@' p ò â² Äì±{O¬Vñ„8ö¦£¨E7-þ¿3Œà'7lÞšFÁ© L—x÷âíàþd¼°ÜwbáÛÌTBÏ_ÿ¦Tî*µUSªÒaG©¸%04¡±•X¨Æ ëOŦ3í„僂%¦1ŒbFÕÞtYµI|q'æ«@Ìo{®‰ÚkhÜ_3U3†»QºÆÀvtuäAšXXžqìM¦E#é”O–Ø)èTÖÄN:ä%'„ŽÓó³§òÅ«?¦ÏòüÝæÆ£M cã%ÈïiE‚dSXì€Sò <ƘäÏ34ZÄí//1ùA!ƒÖmÄüv ²Ĭ$ )!0sìîm£g{E[7Û] ³QJé^ÑKyõ×.éqηâ'¹¬ÄÞ\ï<®â[ÑkS Õú't+ÂgÁ‡ˆY +§×átdâÿqrŒKJl”j©»§ÎÃ{jkO©Ôf¨· Ô‹ÐÚO,ñ­¨À± bÅzü.sý%%&ÅÌcQ5v©5@sÉÄÜ‘‰9Ä’cbLŒ‰11¡cbLìŽËår8'bf—]¬Óý ƒ3½½õ góŸÎŸcbb…‚‰Ýµ`bLŒ‰q¯ÈĘcbÙ9›Ö¶ Ë­eé²–L„A¾ô˜Ôˆ %û`ûbBo9Ä!C9äœöÐÒ|þïÌ»û*R)Z›¸²ÙïÌÎÌîåaƃ±Ô¬ƒØsļÿ/Í ™< ŽØ*ÅsÄü õfWI˜¾bŽ˜‚\9bk3yÍšsÄü-5n‹aôÉ‘R=?8”‘,¤­£8¡·ú\IòŸkÙ‰– /:ÌÂ!æº"‰u¿‡¢¢`dôq»1Ìö·zá—ѤטžúÆF¥d¶‘˜:y8nËNM™Iü#kÌCi)•íu«Ñ½87@°Îàñ åC\eû’˜_°AÄøèv½ˆŒˆúbñ/b¼ ÆÄìäïìÅ^Úªð´ü—Eܲ+NzÚQ·^š»bn¿"6 ¥–ˆI".ZbUßft0H€m÷qĬ&FFË’…Ú­=´ÜN•º,jLÇxQíˆQ b¯ #¶Ç½X?¤K¦}Øe§]s¹51Ù7?wu;ë/Ä—#f1¨[J­‰Ù½¯óu›VÚO¼ «Ñ)ú¦öcrúGîäÑ?²Z)úQîj?&'M•QåØð©áGsd3þ–/²fñ‡’Ñ?¿¦ƒT~öó'>È oÌc\¬ßГpg#/;Dd±öÛÚãáÎ5Ÿ‡73:Ò¡¿xt{Ä«;îj ˜£;x&vº}"¯Æ@ÔÅ”nst{Ê9‘×Óê—,Ön-öy×®öÍêÚùÑÓãÓÿhb×Ë÷±î²×YòÐ5dˆ"ÈjÁ?$ŽÔ¬[˜;i;>»ƒc05e佘矼‹qiIÄFEŸÁ]+¿£ùØóµìç£y×sÑ ú H'æ»T4zé½àþ°CO³¶6`Œ¡¹â%ÆŒœÅ–ƒiúŽÕ\CFr<1ñ)¤ç?ÀòJ›÷öݼÒÉóc?ÄÆçï {˜“<Ö”‘›6ž÷K“š@ò¥ÏPns#£Þʰäw^£« Ö”‘›–GYÃöŽË:;½¤pé·ÝÕßËWpUæÍ|PÝvÒú¶ë˜<æn6Õùvûê;ÃÍß²ú}¸þW©wXéGÜE㱬_Én[û¢ºm<½q¯ÙÎÞCûرhë˜Æ§µ-T¾9ƒ¥gSºí[¾Û²’‡Ó¿ä±E;hÔ@ÄÉ„$qeJ «·×a°sxˇ|d?Ÿl:@+vj¶S;øJ’CšØµx*ø¥;ªØ_ñ/^¹ªœnà. @Ý^Ü4„Y«¶²§CÚÏ™½n8‹7ÅÆW~CJ«Œ*Ãé† v8Šn‡¢Ð'›2þü·+i>Ñ@³{ù“”›ÂðpßÎ¦ë¢æ­^xÓ~þy8˜s"ü®÷BpíçT7·Ÿ‡ fêS;0 ?H̾”@­Æ`lßPôçƒäeŸGL‘ùY^6Õ+^ggƒzDnÍzê©3µc/ì÷0_Ëî1õ|½êƒ&§R³æ+jíGØùîú^;˜ÐÆ Þ~§‘‚Üô ¶b îKzþ¢ËWSé¥ZÏ{=ÕÃòг™þô4~‘‰ÿ©y4@H*·ß9Ža$¦„au•Q/fØ7ò Ô|LnR‘ù'μ\fÐÙñq\æä8ôšvÀ ¿Ç\IÆô^~’OkìG?KW·™g_kã¦I©ûxûêÆ‡¯½4æko£Én°t:žkm_×þŒ##&àľÓ~YÃ`šö±a׿œËd‡g°ÄŒåÞfƒ >Ýc¾ŸñêìŸÈñŸ+1—øâ‡Te]y…]Ê™kØ}0‘’¡Œ(kó.>=leT°õø~[ƒhøš:/8õ ¯Ü9,ˆ%½³´Æ~΃³ÃYðŒ8_zSÏçøîüz§6Mñnñ?ÏNg‚{Ü/KD}鿼+m²×’Z/šÂwóÇ,¡Qí½ù-ÍãÕ4Ã#ó}t¼›f^ÏÒŒº|xD¾ŽrÆÏÓÌãYšËÓ¨ÊWæûèø7Ä—ÐÌá|Ù»ž;r#þ+õ{Ö &c1!G/Á‡IÀäÈiIB ßÅÁàk`ÉÅ—òrÉ-dI‚YÛ»þ³ž™~ÝJ¼¢„¤¶žè÷<ø~ƒ\Ré§’Z¨ ©ºÝ/3«Œižçc&Oú7OšÎtÒ¼gýÜn×og½=IøÐkÀSêGRlx§Q©y"‚¤a°Æ2¸—×ÉáŽÊ"ßoMÿ&KƒJ‰eu ´-»êHż™¤eJ¸*±Né\©1±Ú7Úά>J³izfÎÆg(ù&9¿î ~zéuE;¬×ƒYìDå5¡{­6×C9?„ åô÷µžÏmNÛˆãÉ61¼AD!¿xñBHêt$ëZV¤ÄxQ6Aùe;ãkš! åäåT/×$íÓ¾Lg<Ãrå}”ý›Œ`sÛéÓ´h·ÀæYH»~8ñ2ó®?‹Hì¸Ú5³q¬”+ú(ÖVçØêÍN´‘ú›¨Ó>¬~ÞÕŵ útn̶¡à«Ô~D:¤vl¼Ì ƒÔ*(°8`³9AµÌH×W¹vëk|‰ßZß{¡‰r\uäkmß±åöUÿ^›¦+1Ž#nݺ…Û·oœMê,DNÓo°çÏŸãîÝ»xùò%¶Û-3@øäÖMÜ<݀È“›“€0Dæ˜êNÀŒ•«§È×m-;Æ ‚òÊ~µ^$Ìᨾáp ¾Ê’O-8NZ,¢œÆãÈØž‹jƒoßœãâb+´#Á±ÙlâfåÁƒxüøqt>'''VÏÌ‹ÞWœÎ;wpïÞ½hD±à±—ÊMN¬]!€5¶öƒ£sùÛߟâÏþ…Ÿÿò§¸ù)ihމ@‘8 íÃ6I3VÇldõ¶+‚"i«ã¶z»‡…dʘcíÃêE2XwgªÏr|•Ú‚t°àô:ÁG‹Äó0àÿù÷ |ñ§§øÉgŸáG?ü1ÆqÒ1õ¬×}ëúùË÷Õ þ1Ç[BOxôè^½zuš”³@»•zŒ'sÿþ}<|ø°¨–/um´mÔëZÜ2_—×EýceQÑïÿøüå¯_áó?ü8yG¯Þ<Ã8½Ã4O`õ2˜ ìî£ÄWÊ)‡+yå(OÕÌÕzb€ÕF¥_­RC*‚~çpl )J¾Ê‚‘ƦÛ@™E‚ †›¸¹ùßÿîðÏ|‰?ñ”~û»Ïñ‹ŸýªcÝv¬½¶¾ì§´‚cúƒ­í¯_¿¦'Ožè”Bï?RiRœEÇ3Ž£8¡4ŽóãÐØ†Ök9µ¥:E½êò3¦ö¡ö4ŸJó¤Ë»<T=Ÿ«ME%F•ÏAÞ6·m ÌÀ8csCäNN_}ý%Îù9¾~ó_\Œo±ÇÝ–„1ƒ8¶µm‡‚ÙÊõ-N‘WNÊ×ëó>šviٮݸ†?·]î²ë´mƒX$ŸÍÉæŸÜøNŒ‘½|ý7Nåfø&ÆÊÎÎÏe›o¾ØÖCºfSæ‹õ“Àʆ”¯áŠ%®ÖIÍLɯÇë÷^3†¥üfŒRÞ—oß¾•ëÌû)TK2yZ%kÁ¥4º¹®°Zš¬VjoÿêdË×ÇØšì{‡‰1`ÑŒa@ŒÝŒÓ¼_àõÙ3œo0M#3ìÉí$Þ7¶¾àŸñ–ê[‹­Õ®díågú²]t6òÄáÜÂÌζßhÄp@0 C–Æ ©¦[{DQÙÏYÏϯá|剔ÎMy¤ê1¸ŽYþxa† qǃqûmÜÝœ‰Ã™/ÀŽÅrîp2}Á#P|2çï$œâb|‡‰§èÜstôG£8I(šG*AEZ¾½s‘Ôt\mŽ¡=Æ6êm–óýºöx‚üQÀ @11‹Úbš·˜ç1îpÀ ýÓË¢Ãq‡cóD’fLóˆYæ“'0I¶K;–Æ)ùXÚõ¯¶ÙÀZÛk¯±(oj/ö03gë/þù‹l%’ UÉ<Ìên@’ÓúÌû—™kœV½–ûí–ú’Óϯqt 9 _ ‰Ø¤$ I—÷â€ëüâ_~Œüj ‡ˆPÓçL·\ÎP³QÓ·8¦+ëúíºëÛ}”õ¬ÎEò¤ó¦’À$’+ôú8Zåžq5l4íöÏu?¿Î ;©N6¤’Í{a»½Æ{ÖAÿÚØ-ãZe §4>žÃq‡£sEÉ B "Ï âÈÁafââa$ƒ‹²q¬ÞòÆ1ÞûëÍFÉm·«p ½ü\o|Fœ» ¾9˜£a}\+ÜáÙnËá|èŽÇpHÿô:VfïÊ,UúžK¬³ö pVÎ9\ä•“ÛZ®7%·Ý®àzù¹Þø: BÐyÔùe‘ †ž·Èc8‡åÚ¾áÒŽ;œ¨ÛílÀèºëábw`¼vÙò%§Qßè·Ý®ä:ùíþõj&Ž’r‡Ã—èpÜáf¦< *òPÉes-‰éÀpèìrÌ€è¨kÙ“@¥"ç\v Çc8°˜ðAá°½6É—ÃñN "Γ "•n—-_ã´êµÜk·Ô—œ~»5C­µ÷'ùß4ö7>8Œ«GÀG‡ƒpàäpxÐØáAc_;xÐØßÃÁ1áp8ÚßÜ1T¿:x°Á1áp8Ôìû!¸êÇÍ® üMcÓøØð7ë(ï-ÓY=€ëô¦±€Ëc8kà1ÛØ¯vdÈ?ʾßz¬ó¯ú¸ŽÃq8DÔþx¸éWÜð×þ”Êw8møgñçƒR©»œòwÖÖÇcŽ¿Ã)h}ÌëÿkƒÃá¨ßxê4Ò±åDÒrí{Ç¡m@–>ŽµËºR_üó/þI"Ê/þ-?5j®gݵ0ó¾?«³ö÷ïó¶ê´ýÅ¿Úî-ûá¾ø‡Ã±ïßsDIoÚÕG)íÿÈKáà µæp8ÚñÆËr+lt3Í¥ïîèÕvõ8µTË—º6Ú6êu-n™¯ËŽë¢î±R6×’@hJ¸¢±¢VV˦kä;Ê=}X¹Õ¾‹ßî'=® t^±c V(wÏu[™Úã+b5VUÎY¿c ³½êÕ'GF±_»ª8ÝÚšHíå×迼Ùþ=ÿŽv¡N¤9D”–¹Ð6¹m‘‰®ç{8i{®Ø×²ÚgÕ%×tØ_ÞôÇâþXÜ‹£úTªÜdbÌv=¨Ü3¾|l–¯Û×¼&ÿ!<Ju@øSªšéy'¥l³å †¦ÓGïû¼³ö¢ýß2[ýO©®þÇw8åÂåT¿[áñ,e€Í~;úéi¯’DTœtÊ#­k#òxý‡ˆòÇá;•ÆÍ¾¹CÛ«ž'P‚Ã’ßÛ9®Úáú püŸ½«}£ã¿gvowïry7I«!©EMUB!R«6-‚Š X‰ ~-~ü ~W1þJë[Ä/Jƒ àK¡Ø¢ жZ”6æ¥É¥¹¤Í%—ÜîíÎãÜln³dSÎ#¶DéÀÃìÎ>ÏožgŽý1óì S·`í@10È0‰,GPÊÖŒĄ…é8A Í&YiA,Yce -¦%ô}\ÌTØblÖ©ýW"ŒµƒÓ€0>!HÇf¥ã1r¤g¦6öSˆkÓ§6ˆê¦¾Þb%ZYåM¸úz5œø‘ÀòºÄ¸Õw‹ßØ-NJ *€ÉðâeŸ/œ)rn¬Ä†)˜¸V˜¥d>ñIž¼>ʧFæØn0xê|‰¾=Á¾9Æÿ\áåB ñ—Ve!ïñÒŸYnb7{h§ýTÄ 0Ë<úÛ2OªþÜå€-Ç`)CEÓ&ö=æ™ñŸÿ¥È³“.†PŽUà3æË‘J´¿W”Ÿ^Ijs·xrÁ[­ˆK_ü^­Õµ'c#&aD¶5Êfw‹Gìˆj-„X¿W„þá’ªŠa­+Tç’Š’:QÛ†ÏöIœ¤I=]'q#›}$ìâxÕ³¯)ãŠðU>‹sØ_Êøùľü`†ìŒÀÒB€;÷fñÄËÛI q%@b훫” 0¥³NÌãä§yêßß„tÖD¹$ñÙ»S”rú²øüýò=ŠGe –N ϾÖM-)ø^¸“2ZéT/Öbg@2hÕ—PÅy®¬øŽs?,!ÓdÀ]–°lGŸïBßž,ß¿_¤o?žU±ùä4XÈû¸ãž,± ?þøq‘Ž OFù.È0¡ï‡n¡”]ŽÆ‘uÒµ¾¼z‚5ò_ mœ¨ÿ³}ÒÔ÷W“$NmäòŠÁ Z§Ô`Öy ªo| GëÇRÙGí«Bÿ±¤ñ¤134Ù\št1r8‡}Û°ïÉ6äÆ]|ôÖÚºæðÈs(—¦M(Ç’õ ÍšÚMÌŒ•°}§ƒC÷¢0ç+)c~ºŒCïôb÷œ=]жÕ>í´ÀÈ‘À@…l‚2C¤Ú ‚à—YÛÄó ¦E°”iR%¬}M„Ûz <ÔŠÖΔÆýZ‘ËñÃÓx©g:n± °÷±6ììÏÀr.Ï”qtx_»„§_íFWÞèˆÍ´ÔlÇßË¡«×^%Œ“ƨ/i|ö-©ëë[t<5ž×Ì…&r?Õúÿ“4¾‘4ÖíÂ$œù®€L³ÀàP;RŽÀ®=êåmÖí>Ó©Ñò“.ú›!ÙŒŸ+ê™aÔ nQâ 5Ëp2B‘§ñúf¡2³Ñxv °ÆŸ¾PÂì„‹§^¹YÙ‡äâ­ÈÊ,3ã.ʞĶÂÊ.œý¨¥þ:»ŒbÁWý¸ëþ&E&6,xà`;XϺ€t£ý*–_O0Ÿó´Îí0SPXÐýíº×ÁÀÃ-:Æ•¥@Ï̲­&@Ð$–Q§GæÐÝçà¶ÝYø^ô$’ƨ#i|í oáó#(N*µÕqÝú’Ƴsþ MEa?¯Æg˜hŒMÿ€U‹âTÔAD„NÅ¡ƒÕMÜê ˆ³‹ŠbqÁ¢"FjѨµ`UÔü)MÒ$/éë{¹Çï}¨ÝtЂ•^¸\îûîpáœ÷ßf8+ ç;®Uæ‘ìi£8å®côÛm–  Ì»×r+3 ±”wyëâå2^Õ9WðY¯6ù&]^3ÏÉg5ÍáôK'ØGç|ÝÐ[ ܜᦛ;úÖ©&Ñ…£Wr|t{–³_]ÎÍx¼w=ÏÔÕaHq5œš¨ñÎ¥,§3r“™ÇŽœû$¼©A»7DWjoÈpš'£EF«)gØô~üßÐ÷œSë_ÓÚ"üJµFǧž;̤«Ü4&|È¢QÖ´t çÏt.÷@×ÿôÅ¿‡c¨‹SIt‡‚¡î‚ ºßS ½{#82”@êr[w‡16R@goöŽj¤rª>Ê'.ô Vô!ç‡Þ¡ÿT;¶÷E4b‘Ô(•}ßÀÛñN'!žk´HœÛˆx§-ËV—4q¿„ßqp ŽØÉm­8v¦Ý»Â…´/Óxñ°‚þ“aÝ„Ö&NIÎA?Û…X»8i .+, '+®íuºŠCƒqÑTÑ•„Æ»§©"6wÙêÎÜú¢fY¥ño b•žËlüª'éç\ÔÿŽõs £ŒâøÿÌìdk6&›¤&u›4±X{ê‹Zñö õAÑ íCEôAQ_¤>´‚⃈R¡ Å *^ªR¤R©E£X¯¥•ª5´[›&Ùtcf“&{íçù¶ãƒôaËRbÙfç¶3 çÏÿüÎù¾Ù;—ª1—ŠGTcųS£ƒžA!ÌLVpÙ IŒüYÀ«ÓBX³¾å !gQw`™­Îá$¯¦Iùiã0°Ììa÷¶(EÄÑkUÈ8v´€ýƒ!ï'ÙjZ¦®Cô»‰NES«ƒ{§DyŽ#ñ¸jOÔóqÉõmX°äü4bç[cXÝHkG@ñ²'–ħU ß}J ¬¸¹÷€x"#‡òÊ&eõc)GPä ¼ºÍ¥Š‚¬ŽÐØh|šû¹]+4®y.•‡Y?Cœ(¿ðX1x+U× ¤ âd(ŽÂ€eÊTŠy‡ÔÂ8Ú»›PÒó£âƒˆm‹'Ñ>n‹ ï#ê*ÌÝ_‰Åª`Ð.u&£xãéÃ`%‰î‚îU@M°}è×i¼¶ñ°Âía|»}ßïøZ¶†˜{°ªè[ÖŒ·t(žQŽý_†|{‡x³oP{ˆ´9Ÿ;NÙuÿ:GØûjj§ ¸I¹O‹ ¨‰ŒÃ,r6-Õq6.OÑ "Aׂ8á®ÁTñĪ8YýNqnGÌΛ™*ãÓ×3X|E ÷L)l )T ØSdÔaÊ ý×Û²èL5a1Ó d@ þþ˜ÃÀÖ¬¥mëžìÓjQ?î|$U- \>6E²;À}zlíú^<ðl?«GÞÛÒ5¡ë2G–HÆ„û˜š¨èž“ðù+O‡†Þ‹š±æñÖ®êŽ(lñ9>†R'±òÖNþ¶ßyg(ž£&±ùŸÍoÌnVœ[ze+öì Ù‹‚åZÆž+2%qä4­í Ÿlɾbí=Ð&?leÄÍ¿°Yƒ>f?%~Ô  …(H \…»ºwÛƒóTÈ|+iƒ±ì‹¦REĬ޵ R†›+™Ó¡øÞܱ²V­Z‘ì À¦ìaý@ð݃ͬ€‘Ý89Ù‡TÙâÿ]á/:^ã¬ïúÎ?ŨϳվʀˆœÖlñYÎp Ç „pµo‰¦!«’øàÅaÙ÷yÈÒ´¹œïž+Îê¾î¦åD{uÈRðÞóGä¡M ÙèG0+–BIÔ(hìEÄÄ»ÞÎH[g€‹W¶)31ˆk |ÅBE)XfŠ´ùÑ?ÐÞÕ„ìpAèº@Ç!óN/ÕtîýMCú¡Œ)„Ò67@&]ñ‘’òš >ÓÏy½qËÆ›®»«‹.m‘’ ¥V¸$§@û—Ý9{GK×èàÔíô¢»?.éÇ ¡5Õ:Ÿ®Iò¥êz¿5­‡ó{×bÙQµ¿U{Ÿsúôe&N®c’ “8:*Á`4/?D AAP/úªøñOÀW|Ð'!/¢|ñ9 L‚¢ÄÜ0‚b¼Lf¦gúœ³k٫؋½»ªzWï>çÐÝv}‡=u[uÙ5µ«W­µªJ3ì\†áŸºGU†£øŸ>'s8†K.ê#Ÿ¿w¼k Û[pþž œ»{×O–N úæ³c|éá3|Óm#™\'ð©oÜ̯¾|ÕÉDîûÌõ¢î–¥ 3;Žf›ºB_M¢Š~ß§0^/xDZ ƲȎNŸ]ÙÖ(Á‹Ï^1Xìn¾c¯<·Ék¥ÔÉÿêMxë»×ðïW§xç½'xÛJX&ᆜë‹aY‰°Yê¿ÿË«¸ùÜØY0Û-ð'¾v“+W3l™‰á–Uk' gg³ºQâsߺe›sCÞ‡ˆ˜ˆa]ÎÏáxgû/'s8™Ã± 25{/ñçß{‚ÎßsÇyˆ™@p*pfv“OQ§UZÛ(¶¹Ž$*c‘¥˜‚H8âÇÛî^w[ªzÙrûëTͬS_×Ëb&ÇéÈRíÆ3+8}û¨¹#É+*xk‰¦W+'§¹ë¾k`ˆˆ!†‚L¢’¿öôÈÕ+܎ȇTMm­ÐTª}ÍAÂÞ6È„æ4cÂ]]·]†¼'[&x-äÄ?=UOéÎádçP#ƒ`ÛØF‰ [f˜Â@ êm+aÓ˜œW•ε- Q[­él_ÈèU$ª×2à\ Y^ȃ­ö©þ9‹j¾`­ÛêàÒ´;eT3‰ƒãd¦“àý´M:‰g½ÀÑÀq\2ñ‰ŽŒž#õ|¢idÎ8b–hC¬@§ôê’ŸÞNÛI»£ ö¡éúhžxû”¦MkÂt"ÚY¾ Ío7ï Äàù ¸÷¼/ dðǼ}Ñôy¦9ëÉãÍ?h_ãïlÞÌgç3)±µ!~~oÆ1‚ùŸ„Û7‰jÝÍ›yóæüȘoó¦Bý~‰Ç ÚÁá]ö³y3k©ò½TŠ|/•–¹ûY/L-U8~™y!Z*ÃG ÅÇŽ»I 32æ3s4n™Ð¸Ë¯#QßòÞ9[ç›7óÍ› ¸%Ýz¹,Kc-_Ý¥XûKEk-×`¥÷ß¹ë»X„¥q–ádN–átœËM-²¹d8ÌLªíiÅuLóËp"šø;‡ˆçÎ/ÃÉZª¬¥ÊZªøãÁK[¬öGcŒ¸þw¸hÃ=­Oëî¨+ÕWýµTFâüGqõ䇼¾–‡iÁÈÐÞÕ›K¨c,[kƒ8mš9¡«ŠÝÚ"Ï"å(©oXÓSyú–Ðdddìå*¤E^ß«e$ë‘gÉ®ÿ]& 222ô7ÿãë”­ô@ꎧÝHªm!osï2Ú`8##Ûá°µ6¶Y¶qãWì.ÕÆEé–¸ì€ô˲ìp22²_¡ò–9íTúçÕz—‡ð,­þl‡ºÙ'Ûáø×¡ðnMmÑô²Ãé»,‹7#]Wà¸ý´œ…Ûádddô>1€ˆBòòÛräëɆÙð/þ%Çm|3c(pMþõüæ6üKÔ×olçÍ›{âŸÎõÄ^ lhxð(=ÛŸ»éJShšN©ùÒ4 ÒmL#–§Óß?.ÝÒ_û=ä!,Ú»D FÓÉ û—Ä ÔÚªRï5þ4oºî3¶Sjï%Ÿíœž 222–~õ­~x̼ rCf@é² 'ËpÒá,ÃI=ÿ–Nc 1stÓ¥¤û݆4”ƒŠ¾¿§YR¿ZNV‹gµxV‹÷kêú»ï¶Õàê²µvá¥Ï7ÆhÙœZJíqÌ’ã)2‡“9œÌá(ÚrÚå`qª¹ ^Ž¢ÍAEÒÚõÄúèPq8Yhœ…ÆûCûU0A„r›ôW¤–NÚ·)ÄêÔeÙ Á51ùš˜|M Ò×ĤÇxjœô©qšš S“?!ê³hCÀ¾×Äd's8½9œ47Òõ¤´N©%UßѸƒW‹sFF6ü[”a=€‚ÝÝâ?d˜Whœ…ÆYhœ…Ɖ¼‰qØË‡ZþÝίI·-«Å³Z‚¶†\ÉT£¯SaÏФÒ5Ü·Ü0>¤Ù7}œÆyˆ´]ÊÒÕâi€·?t7wB^˜¨#«Å3‡"°<`bª…~âZ˜a “±€%Ö¼ÔúÖ‚°ÒhØ÷+M›®+ݫë7/ mЗ>Œoè]œ‘4±aI¼¸ÚÕGà e!¤þÈV‰t2‡“9b†af˜À çcØ¥LÄ‘ùFØ+†}¿Ò´èºÓ›2BÚt¾€úÐ{ñM>r®x`Hû‘$¥ápèès8òDŒ ‡s È`&ðÍ@–|ú¾š¾„¿G¸_NåïCŸ®Pí£ðÎ9ìhppÈ(ÑöÅ{ìžý"ƒÕ•1 4‚[“!k ,jqŽKgÄÔ­ì…}ŽøÙÿ`é6/ õЇÞ÷èÃ~$cœ\)„%#ƒ"÷ôŸpÀ¤j’@Ð#à`â%q¨ÜcE„}–ÓŸËN×.té„z`-P Š Ê1*;ƒ±S0ÛZ;Á`¡'¯+‰éû•¦MוîÕáÕ›ÎÐzèCÄ·éuj6ò3å f¥˜)*«…`aÈðÿи¨z¼R¿Ýâ²Öb6«h:ÀF °úQÔkgËLÖ«E[ðã4O—ÁE,(IëÒ¸:œziþˆšQé´lêØŸ¢y‚:¼ggä×ÎÙlŠÂ0Y˘MÉd³NãÁI”¨ª©òBR޼0زVo[¨ÕôàÝšÖ•îÕáÕ›ÎçÓzèCïÇ·é¡®ãoÜ„3ÆÊ`ƒbàK°3WªÙlû™À„MPÙƒøw»Ê…<ú½ fS{©Â 5JÓƒ:úx¯Bc}÷„ÐX¢Û²%»3É öÆW÷Ö-„+ã!ʲÜ~Q–ß“[’ûiH¡qmpà£ÈüÉÒºâ^¹äÅk[›6¶âb½ê¥kš_ñƒ½´&½ 0 !sËõ§n…-®ÁÆÅ“˜Ì6QÙiÝÿp.Á;‚@Kr4êàp4=‰hZ7T—¡p©Í¨éÎe?_’à éÕÕz$N‚ÃQŽ¡e1ÂÊànºö,®üóï¨&ÀÆú:ÊrXå"%û×^Ö²ci=¹“¢ñÛ1ýüíåD¼ñhJœXc8,aÀñ­ ±kgxá¥çðÓÇÕÉ&ˆlkÕ 2Ò˜zÛø ‹²æØmã[j)!ØEÚȡ۵Ôè½ì×€ÀÔLÄlÃÑ ^~ùϸry†gž|Ã5ÆdvÌ3XX3˜ôDÇ’*/©š?¶â¨ €á7ðÊÊeüåÅWQðÛ§ŸFQ W¹‰R²ïüÓ¾k×{%„ÚÑq¸Ÿ æöšgž¶uô¯_f#/³Ô⭸ŗ.maëêE J£äÁnq®+r.€˜Yd «k#üâ—Oà©ß<Ñ*a0,P”*ùgnÕï7˜ÛþŽ ‡‘žp8'®_ŽçÑFýq7^N¬M^ž0˜‰áþe0¬ ø‰ÅÖ–ÙÆ|çáïr94(˦40…2Qñú‰~Þ7UVßwC:_@ }èýx¥oC•wÙ™åÙÌbzµ‚06Æ<ö£àg?þ!ÖÆ%Æ#ƒAI0†Ê RãWt½€€ó_}'œtž°®H'è£ýÛ5. ±•&S‹ËW,.].üK˜ã‰}—ởå 0>öÀÿᓟ¾Ÿ.m½Ž [°æ.µxH¯®Ö£P™møÿÍê‚ÈÔœJ‰r¸Šrt §n8‹'O݈ïÓ#¸û®sxÿ‡îÄìµçAÕpuÖV Ò-ã™ãÿ¿‘×!B€6=…ã<-“ñòtÑ7cowÓƒ°maùÍ*5¤Ñ.'M'ü—½«mn·Á(ÙÞ$›K_>\Ûÿÿ«:ÓûÔ›i{×m»›õzm ¨`‚Ñ`¥“ãŒ{Íàñr ’ B dŒBk »ÃêîØñþôýS°>:I‡ÁˆÜ‚<±Ú4ìøñoÁ§‹ôùë?ñõ¸ó!B$v²“Âa ÆpŒùüNT²4†3Ò1ñ¥¾/ŒáD¡kÖýn׿¤Ã~Ø¢u‚ÿø+†Õ#þ‡Ý¿ÀÇ/c†«,äº1œ4È‚ÆÊ¿0hòMSk+ôï°¹û#x`<~ü€Û °ß~Àþ§ðéç?ƒŽÿŽ[Àœ{ k·Ñ7f˳» ™M‡Èw©¿I2üóºå~³Ni¼Ì¯ñzµù Ôߣÿòˆ¾Ç¦gw8 n⽕ü8=ìcff´Ž@`àöÃg쎱;<ªÃñ·µ†*z½]aöØ ‡×œoÎØ¾<Úî!²:Kc8¿Ãy‚7żÞë2¿#Úc ‘øéÉŒâ^Ç"h¡Ik=XôÝoÑuŒ®oï…1|ù ÇíßqÜo2øbgøm¼pÈÇP£LÆp¼}"Öbmó±XwÖaGo×’äÅp‚?rø8ãMØÙƒÃéкhø"ÜoÔ©t4^Ów:Ù¡ñÄÁ§|F×L‡XÃQ‰3â$¿Œÿ'1Qæñg|k£&$ ôdo&4þŒ¾Ûc½&tD„Ó½;<§ðs­5]ëƒqä=ŽÃ×SÚa`?'b)nLì’¯µKÅ3»Tœîì©Îå“^©(ñOÜù“NIæ›ãÃN¿rŽz ¼×oDÞ7 Çý'vÿÁpø °:œÙÝÚ¥ÊrÔ:´n­?«ÃÂ{@­šˆÅÇä<Õóà#ò|»Åܵq"a2hœåœw!–Ê\¦[ú™æ›B¢üÍ<µuÜt$Ï7ÿfÁøø†ÃÌJûc‘¿U ƒÇ˜½;3[zB¼*“ÆÑÓÎt8ð‰æ:Í“Ã×%ÞLÓdŽÜOÖ)ë“äÔJl± 4 cp;²_cf¶¸ÁÃ)öw8 “—_Þ¯“ÆÜ@2Xìe8‚ù) 0Ì‚¬¶¶oàÉWrŠ9ft¼È&N–Sz!–Ê\¦[ðD9ë|Ä!4ˆÛ’-=¾ÃÜŸ0?÷‘w©ü!õøšÃwÎE¬Î–ã‘JB>ÑyÖ¹-õœª£ÔO® Þ)s>×OÐÓúd¹f€xßø³¯Ú–EyIXyÜÖ š™c./™ïD_çÍm‰\⠜˟ëƒßmʺTá6Œ—âÚ;‚Ó‚&§Éû¨üÔ%Ïó<‰o{œ$¼Ë°TæÝÆ<"ÓóUó¸Ém&–Är"1v%–¼žÂ=M¼«Þ1Ö™€œŸ hl9(óGt^ÞÑ6 žTG¹ŸT7æE¦'ò©~²NÈ2YŽàÁ€ŸVg)Îìðs~]Á`4Q7”}DR9x¢=èà ¾¹ö4Fîw^.óÎçzd94iò¥K,šKl«8§Ódm±ÑÆé5šÖIžFBð§u´Ke.Ó-xFåÌ#4ËuA·x ‘`ôD°0†£yx.u2š¡ØÍñoüqfŽ=3gÁ,(xR¥~R]âMô\žø’NYŸ™ñ‰áùýîbm[YŒßm “QÙôXšËQ7O//Ÿ=F”çå—ó/×Ohð5)n3_¯ˆÅ 2ÚœGû¯÷m8˜Ç5߆£¶Š#á€|ߊŒ‡Œ][¼P(üïÿ¶xä‰@AÒˆQâl[4ÎÝa¾¹¶yÞLÏåS2gë9ȨØŒ²RÞïæ rú54O//Ÿ;F”çå_ÈŸÇÉz¶3E­Gp¬¨”N‹3ÍÅIœÕó©öerN/ÄR™ t zÉ| ÑÿGë5ÈŸümqH‚•Ò²'^ …±]%l}1 ’J"Àx["#.FÂÚ8Ž’~[|:†cEO„×C!ìê»c\Œ¥ùšVÄšBð*('O»™á@R wå òZ(Œí‡™.G©äN¯Û;ñZ(›ÇCQä’ýJúv"ò¤Ô+¡vµÛúr$•Ô¶âõ±¦ƒx=”íÍwDNÙ¯\ñ‘ªPTõHUTW@¡P(\7†S¨NÅp*†ƒ+¡P(J)È<^…°« å‹Q@*©máõ±¦ƒ¸Dn¾#rÊ~¥¡P(*†S1œBÅpêN¡ÎáÔ9œBés8…:‡ã¨_m(Ô#U=RÕ#ÕÕv© µKU»TµKUAã WÐøí¡þ …BÕP( µ-^Ûâµ-þöPÛâ…Ú¯mñÚÿµ8œr8xû(‡S§ÉP1ü·ŠBä ,?‡z rþ9œBés8áÇX–£@çŸÃ)Ô9œ:‡#ž|Ëñþ#AÀ\Û,‚oqÝUA“ºž?G\‚ËuÞÙ¾rÛùý]ªã¤üÛA¡É¢÷W¸+c¥ $h­iýRÄŽiQeDË:³@XFbÚmó€ •_ "—£o ‚ç0›^1¾8ÅüÆC–|ŒK㘑]A·ÀÎDª¿æ­Dà2¤eÀ£1ä¨HØÇ®[®“«¯·!DÐuÖ‡ó¸ÑìšP4kóv ®‘Ñävn„‹ý&Û/¾F›ZƒÛÄôîZð,Dü è›É²R_¯­kàì¼] Z+"Zó¾£ÛûŽnN‰=×4Qž®'jOü,gî×D¬¼¹iO}¦tª·^t6B/ÓaEtûê¯ùúÓ‘Lã±ñMg‰9$ß[êzã;?†“õ@÷·=ÜÒiŒ¾#bÊÈv>ñjÜÎÑf­+xž‹‹ÌB¢ß‘³Ž£º=œæþÝ)…Þ­›ÕGÒrßÅün6~s¯sÔ|¥st;w¤2£tgùfÕHä¥1çqþa±@ûXm<ó×H×ÅoïM÷®™½o7~ÿÐÓ¯+-…Ùí$k²Úçûí[ËKÄ„c^6Ïã Öî|@̉7Ú“ò^þ//ßfe‘¬]uæœÉ™‰ CÎW1좲bvּРÌx…5Dt•UA],®`Xu• ¨€°J’89çtæ¤úßç}N`á¿>Ã}î'Ÿ_ê®®®î®®z«ÎüZ GUíØçQ³‰ÿu`¤s¬ߢœ«-÷Ú{OÛÂlëçu›eß}Vg‹î:dKþrØ~ÜØh{¾m²Ý›y¢^ ö´ZÀO>¬3G¨&±5ÕúlÇ× ¶ne•m^Ske‡ÝæŠQð¤/b…{ÛìÛOjYfçºóz ü+ûÙPíµŸ66DxĹ{ øþ®ß|æptä±£\ƒ²þøt¨‚W‡mÜÑdK×VÙª¯ê¬¹5`.'ùÄq\9³nm£ßþ[‰]:뀽öÏJÃBµ/ÀßÕ¶iO²Å««ì¯Ë+ “ÏÔ!ÿ£×%auM>û¯E%¶¿ÐM>¢]kO®«³¥kªí«ïMTLU(烥nûm®ÛÖh_oʼn+x o Çr{ ܶò«Z[²¦ÊV¯«·†æ€ÅD;(Ãú&?h².ϯHƒô¬°¼Ý¢Ž%g=jŽDætð¦ã|A=P‚–Š3!Îa)N¶,sÜ1 eânØÇßÔÛ'›¬±Õo ±QèS›ýãËZûñ@+Çâ×vH“òýé`ï›ÛüöÝ®fklñ³¿¿öê.ö1 cŸ•î2(@öÊ|9@Qr.$  ¾‡û®Çc>’¿¹Ú/õʯÎ4¶ch^j+¿èšÅeºba©îÿ¡…÷ÿXP¬ž¶€ªƒZ”gDƒò™ š{ýÊj­¯òè¤i9Ú{X‚V·ë¯Ôa§'ëY“3uã‡5úÁ %ºú¥2]õb©~ôJ)è—ê§KÊÕb!š<;´×±ÍÈÀ …¶½ºüÙ"ýmØÑ¢[>©Õ·-T( ò‡2úÍ?kP¦X¿û¬^ÞÞ¬½Z¦ïXBúcÈ™;,¬³Uëêtëž½{jŽž5*Yë}úüû:¬oœÞ9%GÛ=¦˜Ô¤Áóh9†iò[È`û[µ¾ÙÏ]¸´Ú«3Ÿ-Ô—VTèæ[tö+%:wi™ú|¦˜¸úáºz}hq©>‰w½Q¦ãÄU»55Ñ©k7Öëý/ë{ŸÕèÔÿë?*ôÖùzß¡ õp©[}½”uxâþÉ7ËJO¿ÚÖ¤ÑsÀ:‘i´ØÑgZ}K>ªÒ3nÞ­gNß­w.,ÐVw@N--‘cÎ-®/úyÏ :õ/ûõÎçŽhc“_·ïmÖ‹îݧӞ:DºPbl'ÀÕ/èuå7¯ß4ókáûå:ç•"MDÝŸ ÝzõÃt÷áVv)¬“cò¦a¡{ÊÀ0vùVëù·ïÑ ·íÕqèçÃÃzõYØbF_8Y™Ñúñ¦þôaŒu€sÐÔN,ÓX:wW‰Ž’ÖÕË®MMríCùÒï¤D)?ì–Wî=,ß~Z+¿ûc–´· WØOÄ"ŸÇ$15Jê*=Òkh‚œ3%SküRôs+ýçñ—gHF^Œô/ÁjÄ0yåµÙ‡¥Þ'¦:¥­Ù/®X‡8]Æ]~w°=œøæW´ƒâ•_Ä¢ãò»«²$¯_Ë8¢D>~½\¾x·RúŒH¤4'ø‹—§$Iv÷bK°hä•{ ”¡\v{W~|jr°=ôrùþóZùjYµô–(°øN=Ž…ü~Ø×*Ë¿¬“‡nÌ• ÏH•ŠZ¯\÷èayíÃJyìÏyÒ‚þ$Æ8¤Åó3\¼E—ä(©ªóIŸn12ãò,Ö­©÷ ¬™2!].—*ÛöµcPb, bX@ÒêUÒT\“ð Å“]jër°þ‘—¶v¿¼ÿxÉJwʦ›åÎçŠeP¯X¹ýÊl‚’3G%Ê3ò¤ãÆz!FÓÐâ—Á½âä)|„+>¡í€ÜôäY´¢RÍê!CzÇÉšýÄÄ8vP¤²m<¸¸TÆMÏÖ)ÙTÅ¿!-Ñ)/P!w.,”&eHoÌ?(=9\Ú.ï<Ö—¼3,ò°“bЩIkGΞl²ûÛF©,l—³þA,jX œDê*0ñË<Ò\ï—7)”$LÒ‚Ý­¤¿ba‰äˆ“±“ºPÑÀ}`"²Š íà}ºxÛ‰ÎÉ‘]­òÓ7 ç„ÛcP¼Œ¹ ]bâ8¨ÒXë%Ÿ‡w·H;Ü6~ï98Ê¡ÏðDñbPÍ„môâØöE•RRºH÷ñíX}ÈéCeTQàæ;h~òá„Ï`Gž"é¹ÑÒÖ„I†I×™ÃLH®„äg¹düÈD©½\L‚ NO‘O75HcK@~:Ô&~h’›/ÉìÆ˜ˆ*­¯ã"‡2‚Âjáýô§H×L—ìï8äùe²å§f–¥$ÿ k7Ô Lw¹èŒ4™86™‹<ˆýzmuµ|óŸfÉ/gŒLÆØ0ÚÉIýÍÎf¹éâLÉLsAùäôáIr 6†¯·5ñ=Öª¸\*9é..(¯×¸UI[ôˆ ÓÂâD?ë¤$ùdsƒ4“? ÃÖæ>¿õqŒÁ†5´Oú`sgdl¤UÓè“…ï•ËÔsÓeÉã} ÌŸ2$QΛ¹O¶în–1Ã’¤´Ê#Yèôr`L”¿²…‹Izi.ö¡Ê¥4çpñ{›Màΰ½âJzúOåõ©,Êk¼Òˆú£úÅS±F’y•e`ñQy–{$ò„ˆþû)×—ƒ›J}#”ºS ïh6&íà)7#Z–ÏíùM% :#ÐÆu’{¯j“у¥°¢]n™w„¼7&EŠÊÛÙ¸™ð¯œatÚ„;Ÿyå+žÇŒ[¨R³VµËÀÑIbÔ~B%Ý3F ÷¶B‘@aw[³¸\b`Õœw]¶lY[+ëVTËU³ó¹ @[ILqrñã$y€³XüNò#6'­Í~.ä“ÎI•´ìq·ø©ˆ6`ÄAp½‡'КØöe½Ôb .›™' eïçM²wk­"Дƒ;šeÙüb¹þáî’þ` ±£ÕØÉê+=h£V†O–ÔL˜:FÓÚZT”]chyܾ`$|cWÛ¼¶–W@FŸ—VŠjáê(׬1á.w ¸]z¢=à$Òæá—ž¹1X°ÆE0 {¬<±¤„;Ùãî&ëh”…ïWÈÓó¤¶ÁO%äÃ*I‡µÐQ’ƒrN¸`òráFŸÞþ¸ZN‘¥æ“§ß.ç‚¹î‚ LÖ€<óv™| á’3S±y˜KB=.Vn>Ÿ`Â3R…¶„çÉPêË¿¨¡’d?ŠÚdÉšjZ8ƒzÆr²{ýd… uYÎ!Ê>˜dÂ’…;A‹LƒòJÿë¡ùÈËWv§ì…¾µt”3ž;Îqž¢¼‰Xëñ ÷Ã>lŽõ^¹ô¬4iA¿¡„iUuω`E2nT’Ì\pDúçÇÊ3·ç3æòñÆ:XE•rÞØT(«2Ž×äÙäìß$Iú¼~gÛxÅNy ãröÉ)rË3‡i=ˆ‰ôÀΛ™¥™„þ²ÿòÐâЬ e;nd’TÖúÐ_‡øÍÐO*Yúq”`«ÀÝh™?³‡L åPÙ.ü­˜Ö%ÊÒrÕ?Až¿»Û21‰Å\¨¬óÐâ‰ö9î5#h±1Êq΂UÿÕËeÆæÑ—‹±9µ…£bbvìÄH:Yä*¼†äÏk§AcQãZq$„2!°¦¦l%6.ʼífPÖµoœMº9Ç6¬ª±ïÿUgpU .Œõoÿ”céÙ.ƒEbß’k§]˜nçLÍ"‰7䨏K»˜ªÌ‚"²74XKƒßN9?Ý|Æ© <_>3Ï®}°;ëL¾¯›ýþ¦ÍÍà!€rfÃǧØõô°KníŠ2Ù6cA/³€Øá[ 8 ûëAÙ¯—UÙ-3XJ6fR:¿YH#’&–eÛ¾¬³ê¿É£ˆ§Áš±ï>­3(,ËÌ‹Á÷ë›t4Ž”'­æt²&AÊÈ݇ìþ–›á²GnÊ`Ù`+º>÷~…ýá·i6~d’M»$ÓF`ò2]öд<»â·év×sاë'eØ­È"£öäŒ<»sJ¶=1½›]31ÝÞûW €[Ÿí:Ø¶ÙæÜk÷]“k÷_›k÷^•`‘Þ¹0ý»ÇغíMæÇ»nh ¦¹mþO‹Aqà .x5ò·fc=çb{î½rö‘À¬ˆ9TV"Òcv6ÙæŸZÈ#hš”e¸/vÊàÞ/žm)it4V²P® >cОA& \ Ö¤Aá[,à;&çØK++m æ¢eo™_`P vó%YöìÌî\_soéf³¯ëjÏÝÓÃÎÀ·îÙѶr^34Ñ®yø •Vyí‹—Ú–¥Clä€xƒ‚²’JÜ7þY‰±+·—îëa›ÞbçIµíûZ ’‰ Ç ¾ßÓbsoË·­o ÅØ&Ø”Ùû­¤ÊÃ1…2fý@;ƒø~ö¢"KÂ{ô‹s.™½¸¢Â.º{ŸÍ}«ÔÝ×Óúv‹5XIÿ3R]hÿ%XÞyÐØYñà5r«¡SôQòà6Vz„où¾SþE©´Á¬~F2ݪ•–áfpçomô“€_Zµ>Z,- >¶ÞëØŒZ@¡Ñ…ß6­©ÐÒÌ|º)l ßh=mÿº^ª =’RQäÕDk €­JB’…íĕЮ†rR` ¨Qo™ÆÀÅ›xc޶bgÿ@õòy°€íA Çç p5$`§ÝõM£~¶¤B&þ)[ºõð¥tù‚GÉv¸#0‡O»°‹x6:(3ãž}T¤¶cвæñ‹»i°ýóPI^ù‚ÏÍï“&È­Wd ÀX=.î4¸1Øá“TÜØ¹°H>» Â!M8q(,A”ˆ.Mfª á[v?1š3OJÒw ³²¯Vx¹ ž:4‘&¥Â”'N„1T|“—e ”ˆÜõ|¡Âz5Ô¢ %° æ?]•‹Æ§ÒZÁ.Mwà¯ôï§ã=&»L Owîo•_-‘k'v,ZbSÁT¸Q Ý,;÷·é˳ºÓª £¤(‘sG9êQsš÷Ág® ]9}³«å@_‰£pH=÷”™sCWój‘ü ˜Õ0¸r÷]KWqìðD6ö›‰2˜`T’WGŸ™&­¬P¸½²úÙ~’‘â(Û0^Ë>¯DædΟòä…åt‹o¼$[ê±n»6—ÖUE æ4ûOLOž¹5_.ŸFëüéÛòåëíòÖ'Uòè´<] ,FB+;Vú¥hûïŸÖ¨í­tÈŒ˜Sq…G¡8Å`ÞäÉ%¢Ø@G(Þ0FÊ“wÁçÐU;æ„òõÿ†cB ‹9JZ1i±ÐÃy-xމ#PK³.Úá @,Œ•~6± g䥸Ç{ž‚ƒRtà=NÙöï:‚µ°‚ H¸ôX§ zõK%ÒÜà§û~BÆëWÕ“©(**à4tÅ4’LF|!%Ã)YVSà»>ËAùج)¸Lè'\¥­m?~­œ®áÉÒ¨ƒ‰t¼BÁȆUÕ2âÌéÒ5ZÜpöÁ8 >¦’Ž~Á’ÁÄ8¸-ôÙi³?YF*‡T` ¬¸_~&ŒQÒªt¢¼†åLxI‚cŒÄÝ·|èê8X—´paÙÐ s{MFö‡éž/«¾®“í{[©\Êk|‚P>Áh”¡œ[ˆW(ñ_ÕÉ·À&K!Ø™’èFÔ$s^)–+—.7^œAlB5È£P–pçj€¯ÄÓ%þTÃæÕ(c`'Dá c¶Jh$¨ „ý¯‚˜}}Wù÷÷ 8e÷òa”Æ….â_pÇ$!ÊOœÆÀ‰oGJ=¹§––°<åï ¦E—¶õ`ýÐÃx’Nb“|…6cq!ŸÍÍ~â8Ý ¬(ùî¥BY.ƒ»µJ¬ºÁÇõw°¤]º  ÛT£;œ·zî­ù¤óú?«ä¶ùGTˆF˜Ìñ‰ì‰ÙåNüè´KÅÃáTËíkÅ?·Ñ­ lP4V‚g,ZCÝ’C»Zlý5vöä Û¹¾‘9+ñ0!TÖœ¡ãhˆCEi&{`.o\]m#ÎJ±Œ ›b"ÈÙq¬«)÷ÚŒù½ìÊ{ºÙÔYù6úÜTóy…m#ìMWiÂÕ™vãã=íŠ;óèZÅ&:Œf3xFÔŒe%@÷ü8¢Âƒ‚²-ŸÔØ—ïTÚd´qÆeäÀ7Ëê€ô­Á`™Ù©Ó™‹$”!It2'r êÇ|ŒvøPˆˆÐ<ðË< €{t ÊÚmÁ»åpAºØž‚v¸CÕ†:ó‡óLŽ#g%̽€ò2¡4Ë AÏåšúpqèÆ`·¶|ägÙ@˜¶ñ¿<«—-}°7òÌzÛk³{ÙêùýìÏ—f”“A¹PΜ{F:¤‹#XWŽ7žxk„u±ÙØ»UÚu´žùMgÙ¼™= QHk…Ûí -¥<|>¡»ä÷Ó­fî"St#ÅñŸ‡#Ga¾LEA»~ÿy½`Õëê™3xl2sTàú w¦\‡œ–¬pCŠ®}­Bk*<ÌsÒ阣By ¯˜`¤ñŸ Ìy31¹7áöEÀ³:]ª·)€bÝôQ ›Ã\ÅÂWºwZ_íÕ‚=mºì™"m©(€f=°­Eÿ{e ë¶Áý¨-óè¿Þ¬ MD«ØÆúUÕÈû©TDÆ4¹‹S÷~רˆŒiÙ!·ÀOÜ ˜¯ºym­=-E³{Ä*0!¥ pâñ¹¿¬5 ~}9*mpÕ6îlÔ5tü¨$dµ:™³1÷­2Ø3¹6ÙzËå™úú‡ÕŠÅÁÿñåÌ‹F•zàBU+0æ¾¼†¼D´+ò1°ë2ƒöEäÆTÕyn•`†9nÌ·‚u ?AkÖ×kdS]ç¿[¦·êUçuÑ%íºhe•BI*Ü8ôÅ«H6T¸jú;ô ™®ÙP¯yµTÏ;5Eá’éúMŠèšî>Ô¦í>£<±¸ôïŸÔèÈqzÒ€æÈPÎvBñ2…Rg†ðg›ëî³fb¬ уÅ7"íevÓ“‡(w„ÿuÎËEŠD_ÔØÓKJìŠÿÚoH-°IãÒ ÉGe·C#£Ü’Ó [8‹«2|DŸòÌ+2dè¸dAäFu’Œü  6wI`0ôÝÍ/ÀzD&ß›OÐ@±LÕ V žÅ؇Kf¾Ô‡ÊÒRŸz7>»Ž&‚ƒÂurbà* ”1#¸xÌñuN ñ,~AÔJ~3!•ù;YHÞKË!èL°€²L›ÛSj˼LBŒKŽb‚_Ll”@aošñl/úÔÆvCùä¹>P|ÈËI”™/&òÙï#(ý ©u&,Î6Uh^ p,§X¸Äjúo2úÿ–½p\*s:§á&/Bž~žwLÉ&F‚P-éÆÇª|ðt_»BÐ-b&±.•ÝGÚØîÀ±ÄˆÐ6q DYäïô–ŸÑ>\5é—Ëܸ!Ä“&ŒN–Óèëˆ)ýQÖ¿!ÿCÜ‘Oð`·%ÿiøÞî%®ü§;Ák±~ƈˆSµ¶p†XYùt†öÛ=ƒºÝB’Õ_ܰ>±”úfŸÜ15— ®^W˹}êy|z7‚ã‡JÜëN?Ð éN&OBñ¤à§ …Ÿ\ ¿%¦ `îAO^f ï¡4‡‹Iúk¿©'Î93穲¼àôT$¶ö”E++eס6¦( "Hù`^±ß×þ¾‹ ï/Ÿmi€<½L‰p,¦DäÉî¼[&°`âŸ~Y¶¼‰üüCÀ#è¶ ~b"ííõôÉØË×çqÁcæ¸ žžˆõEòp¬ÓañN+6N¥câÅ™žã’LL f=tc‚Áb ÞžázÉfQŽIxbBaá`„ä(Ò13‚È )áçà¤ô{ŒÊ¨/ñD•JÈã0G„¤¢*LHT5ÒAòs¢c"Í fÈÂw–¡² Âq ŽÈ{™EöëõëéT8<Âôྠ©Ì‰Å›ÄÅজ•'\»^ää8™„eÁ«ÌÔ&°¬ãˆ‡²çwUœ#ÄâÀ䃬˜ØHð˜y"H\ã"QNHà;” ¡*¼ÑƒÅ‚¹8mn?êG²saE`F³Ïà•Ê’c*‚ºT6ýCÊ!Ä'Ág%½ˆ²Ñ£$Û‰<.$S*>‚Â3'gSÞ™7Àz×yY1²ö¹þUM`1p^‹¢âFÊëÓÜöÍEt÷U¹ŒtÕ5zÑO%ýYˆjáç$LŽ„+&ɉNF aIJ;¾_31S¦œ›Á6°±p¬ÍLšÐ\fYò`Žõ-—ç0_ "¢8iûު̛ÿN|JÁb³ây+)ÛýeöÞkk¯ëì\¹wDœ8¹&ªÉÀ¤ÜÍŠ(p6y+#99†%5TTÕ–+LÂ¥Tz¾Ê«õâÏ#·fÏrÚ¸ Énãk“u$¹MrÍ&¤£ŒA[÷Fœ­µcKûÉ©ã¢&Ö6¨áæpÅÎVœ¡µ9k.õ2†²‘2VÆÞš_“ Nù™¤!ð¢/‰aÀRÇa`ãÐú¥öøÆA°$ëYÇN!Àóª? m¿6's{šìAàe옷B!fx¶÷hß¡ö!͆Ðâÿ"Æä/€ÁÂÒRÊvùºï*Õ~tðö{©ú÷RÅ\zŸÚñQƒ-sÉ©cT9ºÉ{Žï¥ ?ú3;:ú íDhÚ‹þ?·££ÏðØû\ñˆ‘P ùЊV‡YÐÑÑñÎ_ÓÑ¿&æéè_Ó¿&æ™ÐW8AGGGGO8=átttt|ÙÏ4~:ö–j?:ö–j?:žøLãçAGGG¿çÝŸ‡ó$tìÎ~tìNEÇWã‰O@ÇÿÅÏRõÏRUt<ßÿ:ú §¯pþÏ ¯p:ú §¯pú çÙ®Ruô«Tý*U¿Jõ|[ªŽ¾¥ê[ª¾¥âG ýNãŽŽŽŽQÄ\6ß¼¼Ä{CGÆuùˆ§£C¥%4Ë•±÷\y*:LWHYBýR€˜kõ…’-ô¾ÐÑÆe¬ŸŠJ $˜å9§³òDt%ÈR%¯<ÛUªŽ~•ª_¥êW©žá‰ý‰ý‰ψþÄ¿ŽŽŽŽç=‡ÓÑÏáôs8ýNßRõ-UßRuô-Õs¡£££ßø×ÑÑÑoüKŽSrò ©Ù¶ÇXïÛâÖúz¹¦³Û‘§lXê‹<ÛÍMSN]PZ•D¢´‹¬ÖÙÓÞg#Û›úûùÛvPÆYs½Þø§zã_cO¬CíÐû¡]œýrmû-e)Ïõw»ño´-@Œ•×Ï…µ¼œg…,lÏê0 b‚)3¦©¯f³!¯É„šqЬrkÕr}œêSÕYµoã0Ø`I–1Æ6– ·÷‰L x,ë¬pi·Së&Qukc£ØÝÖ+ÜÄ^~•'ac! ìå%l#I²°Œµò¤LHˆH(Ë•þm½”í¶Î|Ëú†ßØ [8P ²‘mÍ%’ÕÞ‡cÆí;Ô²aËHÂLx2ÂX³Af´õ:»›¾u(9E¦:N‘n­¯—•W|*þ¬ÙH±$ëÌ&^8㫹4F8x,ë1–vËq©×¬´ÑŸ6*w[¯r{ùE^ô6²‘È8çL@õÚˆ„¦ 0vmg¹ »”»°ßÖÓùö:Gž–`ƒaPFÏ[*#rn©°d$#Œ,l!En–AJ/¥ê½´3ãháT™TÆ)²Â­õõ’Â+>UŠž°±@˜%ñȉ¥O" š bdG!Æ¥œìÏzrÊX+ýi£r·õ*7Á^~‘' Pa¹¤Ÿe-±_VðŒ#°ëûèvþbl¤”Wÿª~ÕKî6ÞUçi¾%'Û«Ç,ÑÄ 6Ö’í²¥òêG°ÀÂ$¤h^àE ¡­}}ʶ±=Æzß·Ö×Ë5]þ¿¥ŽrUƒ P@ (°1ØÕ.í–ãZÇ5ëý)‡ÊÝÖ+Ü‚ü”»èYFÅ0¿æx’§„°Š9®ÆƒÖçèþsLÛóp'¶uöû¶n[0Ç„s^# rlm©œû(¦ÉØ"40ÄÈ CrQjCÜN»©¯Ãöfð’ÓÊ$•qZ™ ·ÖµZRÇ©>UVí q`± ùÇ#â”Ï`ÀGlc&„0išm P4ýå8€¢[ú%ÌlcÁ8màôÏE¯Ä¼ ág¹ØI‹å½Hý@ Äx`/ˆñtÀÜ2Mfr€#Òˆu€Â`ƒ ÔäJ»š…µ*Q‘|”:ÉݶNµe ¤M~{\­pd° ÐqÀ1b&„'3Ab´sbä@Á4Mâ0žq2¾àôä%Rpœîc{1Ž{Â!AÊlAÄÀéøâ1–‡ñœi ¦£‰á”a|ÉÉÅ×b<}‹=áiÊ?‚zŒkqØ<Þú~¬÷O6±vl°ô?–*z› §ågYø†"¯ï[€DÄ ãùŒ§?Îxx\óð`&ˆ3ˆs_"ü™,kÒ±³žï'øNË—Á…» {S§µe ¤m¾”rZ3/ ¤4¼€áâÀý½9 0”Ž#$˜W5÷â„{ñ }øò‡œžžqwÍ4=ÆõK°‘¤’pjÆÁ4|ÛE¶ØjÇÉñI¿´”)k},<VÆ©>Ql½%®ˆˆÃxÁÅÉ|íòŠéÀñÞ\\¾âƒêŽ·¯9oÁŒÕ¬pÒGl#õQ@Óo»úžºµ¿çj¬³¿ÚJü¬Û6n9ÕÎ{„ea¤Œ‡KÆóW¼øà§9œ\ñöçŒ/¾ÎÉÕO¡ã>^ãé²ä%Vë†óÄÍ\ ðæ• ä i’­UnÚu£êT~ÚZ‹±IT¾„Òž¬ä”\3G*°NÐxÉáâ'9úCÝÞÁÃÑH!ÜNŸQR³Ws!bäþî®!.8‹WèpÆYÜ2MƳm¹¥2ÀW|…c€g[ádÊ ‚a<á Äñ’Ûk¸½9rõ68?\r#3¯pÜçC·³¢ÌêÌ,ýõ?Uòxµ¿Ùf»Ùïå¥^›…ßÚsÝR9åéo–  †Sb:g|{›«[®nà͵øâöœëé'8‡¸Ã:"rfkïu»B¢ ùu½+¶uª-jÂÙäkcYV7$̈}Êýñk|~sàõÕ¯E4¶Çê-äïýÙ_ðé§Ÿr8‡SHšÊY’¨ùj' æÊ„l°ašÌí¹{k^ÿ÷ Woîùå_ý.>“ó|ûö&DÂ¥Ýr\êc•þ”S¹Ûz•›ØÍ¯rmp„‰ÁÁïýþðñÇ'\^ \œ‡Ñ„”Š,¤ý GÒÿƒ„“q‚ ¦£¸}˜¸º1o®áÿé¿øæ·À`Œ¹¿ÊRCŒÜ¼}à›ßú>úè8rO„PäXÍIEä %·S6£­ºÞ(ÀiÃdÂ@,2ðÆ_Ú/>¢”U~£Óذ›c.þa»f Œ'=¾ðÙgÏ¿üðßøõï|‡““³²Ov¶W6Y¯HîVŸ¶ÒAÑYIeÌwõo}œšJÖQSV(øþ÷ÿƒ¿ùä~ñç~žoÿì··F2¢],¥áL09o¾TÔ]ÁÓù%Y¾?ä|·á8ÁÑÁÕõÄ?üó÷¸»P9‡S¶T’°Ì8žðöúŽ_ù¥_ãã?ü#îW e"$ûŒ¿ü«Oþ7Þ¿Ëo|÷7aº‚x€ÜR-í,œóí5•¿Î­´V€6ø™° ¤•qµsm¬”ImÌtÆÕ›ðçý·ÜÝg³eKU¡ùÇÜ\ßq<>pkbˆ&³NÎ%×r…Á6!Á܉E¶ 2ë.rB©1j®„4¶šÒ6 Aê—%䬛²…G´>fú”ÇØÚ¨þ4~ˆÇã‘áìÈíÍ÷G¾øâŠóó‹Gy&1MSÚϸ<Ê#¢Ô+j?µo‰ÉÖ¶¶Ú«Ëî¥^Ú+(ü¹,vÊ}ÃWIñǑןÀë7×LÓ‘Û·r HÝÀöÖ §^±ÚFò§ ¤¯ð §ß6%ÇÆ>¿ºãææÈdQãÿ°sE»’ Ä»»ÿÿ¿3ls#ƒÌ 1ׇ]NÒt¤OimĆYEÓ>¹ðI›Ø„Dvúõõ›6‘ó@õ­ï«¦vívË#e]@qªÆ8x•(ÓìÌz\ç>gÙ‚FN±=ÉZ<|z•ŽõÚ^$,´Ǹ"¢|6™óý>›Ä‚úïoÄvçì|Ó…>Ú­Žs侪ùE}««û˜~´£Žßýðí&;1 É×’}sG¤ ¶ß¸½o$O ×_›¨ñên ô£ž‚ é§ç·æÀzæ+ò}(rœ RùL~ŽÅÍÂA.v(ƒl裫ɋ&ëd”sq¯”Sf5Lwu‘ïGÏå—¼¹¸'â“wQV#à>®Áè¦÷mþØ.îß×ïÝ4_ÛZÛõ™àš~ ùeû|îǰ;Pèqàfº8ÃùÏß÷Lnùƒéžõ7œ…$Ëmo«¯©û× #@7Ý¡ËñÉþ"F>¾â…9c®`®à8‘?»ü:󂸂uâ~nŽénšNÛ×XÿyÛgY¿ëµ°é€Á€ˆô§1À>ÞVáXªúf™ò¼§ˆè)?Ïšv$Rå¶û!Õ„TUý3!Õ„T%× ©°~xoØè! ƒÁso8ó†3o8ó†3o8úƒùh<ð\*\›Ìdõu@e£’šŸ¡k' ;†;ãÉuÖëðër½­ç2¼°mEýúö0Ï+¾w¸4ôÿ)»Wþ³¶çBª ©&¤šjBª}þËÞ¬0Â@´-ýÿOnZ(e¦é §=˜KóP7ëAÁì¶7Ñ·€°=ž%õb»Ñû·jsŒœzŽ}‘ó‘)8PqT ÆíçÐçÎÙþYL7Òð˜Æa/ä{´»œSí¬m‘ù5²vj©âñ¾‰­q‹L-0h³ƒ6nw|c<·…+E›Ä)h¤²Ô‡ÁWnÚöþŠë©_æ 3×Á qýŸŸSÚÈw8æÇ÷š×C–2½&ûcí󕘴¦ë+Æ_g‡sv8m |Dì>1æÃà« #¾ÅuŒÔ/s†Á‡Qm<æBÚ®ºÃ9;œTR¡,UÕh;gW{f}*§|³sF-‚06éÿÿäÁqÜÆð!!î{+ç”Y:§<Áˆ)2¿kg8¢«Å•rVù©æXžl"¶˜Ñ¨“=’[ ƒŸÁÛqM•;kç1~k•ý Øž}g¶8¿d£~ý©ì”ú»ZGeßÎ"àŸh¨Å%ѳ¯Õâ@G-¾”á@ÌCÅ«TØiS•ÊU*ŒÿÆUª=~é»ÕUª9>ÂcæøÆo8ÆóT©nví ˆ(rÿ3[*BÊbÔ{+3)»)ý‰˜RI©æþ¹î½Ýù¦¾|ãÙÎêÞP¶‡#¥*):À— ÀÀ €ÚØ7£ €aŠ®±ÿÿäly¡)Ñ–=‡«ZW"4D~»KÅ.ÕðLéݽY¬$ÆTÜø=kþÜcOÇïR±KÅ”Š)S*¦Tfzz£sQh6ÇÛ€çÕ¿ÚªZ¦¦àUm½ŒÑ¹(4›ci»€çõûi«j™šv‚‡‡§::œ«`µáeßj@ˆ 2ÿš >Z{\@4Ÿh,{mþÀàôØ»ƒÕþ3KÐ Aôð>Žá¿ž#<`º¢#<ßâq@’š½;6¡(h‚û¯œà‚ÂÝ–¿yeh[\µÕ†…wûª FcÀÃÈÏ΀@ ÿ–ÁÅO©&p¸\.×T2IæÍgßj`ˆ±ÿšgcV’{oŠ7Å›âMñ&€Ó08=öÍ ‚ýÿɱÕ!<Ì‚,Š(‚×¥‚¥ú%X*Xª’‚ iLÂÝU~3«ûëžôEÝ»úxܹ¾ëiX°T•}3Ta¨‚ÿÿË»4¸ ‚¦…¥)2®O2/-®ÐôY$û2oÓxÿ›ç{`ŸWó«hñ<ÕGf‰BsͦÅKó>hñúœF²²Z­ ø_¾-(â—`·Û:¤ÿ¦Ûÿü¾°úúçmüsŒƒàžø¿²JŠe¤žyæÁYH¾¿E)¶3¨ŒÛ£·Tú™kÜ'—±Mž-•Ë r-<ƒ¼ÍãOÞ²°? –?øžëóÁ¶¯v1Œ©öµæVÉ&—du}üÛ;]ßî¯DˆI‹«Ø“±%J”(Q”­ú»—7@àmø%À'Ÿ}f È}ƒøIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qimage-8bit_scaled.png0000644000076500000240000006027112536324506023066 0ustar philstaff00000000000000‰PNG  IHDRžxfE‹`€IDATx^ì”á ƒ0 Û²÷â®Î­ ¥GO挑û!‰æK“M÷ZëaŒö‰`œ2\˜“ªQ8Ýq9ûb˜§$Hhy¤BvD—S-7åônÓ]Tà£X½Vrº<¾xÒûªeétÄç)«"s–•£Ê¿–Í&d©ÐwLÚá¹´ß]Œ’ÿŽ ‚²-H)mgAÐZÛ~à–sN/v§”ÒjÝ8uC`$èö«K¨‚P‚MîB©VRåiy„¸×fåZ/ñ"¯LPâƒýü‘Hä«a‘ϰ/ô±O[TvçÁÞwÀÉQ{ÏôÌlº½œ”# ÉA lMNƒ1Ø|cæmÀ&ð{6ÁF€Á~†‡‰&šŒÈÁ‘•ï$.éÒæéîï?Ý{ý[ïìÝé$ŒÐjêV­žšîžî¹ÞÿUuUW+,PpÆÖƒ|òÉ'Î9¥©ú‚)ü*àèÿaò©à/áB!BˆišHÉ'Ÿ|Rß%ä¯ä(ÈþO’OŽãh‚ÔúÑ<„{ííímmmëÖ­ëèèèÜ"I\¾äÕ«ØbI½„ÖÖÖüWá¿“µk×öööJDD“µ,+ " |¥ä“|±Å  L™SDéêêÚu×]1ƒ‹. x™ª9¥Ïz +¾*–ŸzË«*ÞZº³âÈÌzV—œŠ©¼a˜Á` “ÉRJÁ–7óåmD’w\õ°èˆ .½ïû³(g𺊩.x:y 3É0H&“aŒy‡//é¤÷U ò\UÅKƒO0ŸxÝ;¼ý,h "[6›=ãŒ3î¸ã0‹.Rƒ‰7öÐC¥ÓizEç†÷¡Þ×å'"’ut®q÷Æßަ«býmõpð9¦ªþ›ò4åA¤‚¥‹+¼Òd29uêÔÙ³g‹ïiŽLÜô"Kww÷ĉ<ðÀT*¥~[[´)&c, -]ºô™gžÙÿ9Ûm·]2•DYãG“ ©KÚ$¤Ir‘Häé§ÿÞÔÔ4þ|ä)¥¨²eB›2»Aºë®»€Y’#É ñxüÌ3ÏL$ÚWM>A^ƒ6zøá‡KhÒåøÞ¢ò¶Ï>ûüîw¿“œA[šÔ&ßÑ“O> hûþ'Üa+[Sžr˜Í5¦‹’ªÍÒ…6Y‚˜FÈ"e¶íìjïì\wíµ×Ž5JÎ-Vj“—øÛÿý÷iú´Í;÷òË/À)Ùmä6ÆXEEÅ¥—^ºpáÂ뮿f×;u÷vi:s £¤(#ÿ—˜Ô&ÄR]ŠD'H‚ÁH2‘9ý´B)„¼,ñ”R¹ö Ü¥6€;îPÌX¢kU×Ë[>LÙÝY'É8•²ŒÆGõÒ…6®¢a™¡@4¨ —Y™lóËqlMCêl±Ð’Ú¨ÔÍÕ]Ð@þ.Ð[GŽ9kÖ,%.l°BJ)Å£ÁÙa—){ì7µiÍYš°i†s&¦$>²°ª¥.½Ð¦Ê@LÁt*ÞNQŽ<ÕA…ù‚þäU#šûc˜F0d•×VŒÎÄ¡`XšÔ‹-®rAj™`ËTH¥X«k峉LGw¢¹/Ý–µã”Ù¢9ñ7?ZÉBFHtbp ²*’If·âœ¡š[8´©yD!U).ã6^j´Aì§7ÖÙÜúå²5&³ë²NšqGÔb¢bÉIm9eB'ºa™‘òP]²6nfQ*»Š+¤ê1¾ @7¡ÜNec‰tW,Ù–¶c”9ÕØm‰išµH$cÇ…2BâS>MJ 0@mJìpSʳµÞTK,ÕšvŒªÉYz )H Ä fÐ*cÜ®´ë"¼ZŠrë«‚ ¼-a7‚bBÔ7˜sæ°,¤}›¦¡Rf ¦Ë/íµ60@Œ;3ì0Ç e%57¶äÝÞZ õ™öm>æt•žtæd&KfzRv —`—ºÔF±(³ƒf…m§q\¦¯Ì¡Ü;|’8Æ8§œ³ÜGÛÝ ÷J1’Ypé¤.¸ Ã$ÄÐ9㎭ »¤œËˆÎe†a;òifZz dàn6ÅÜ9 Ê ,ÑsÊ‹ŽËaþéE nòœ:œQ´âv Ð n¡qyê ¤¬ÂQOÿS¤“C•‰¦>´_›w­mð2Þ[ÃÂï!ËoÌ~Ãþ¶¨€ ò‚äD5]‘àsBH©Ækë—#0ö Ó(n L½eª»1¿Ía ;Šâ$­O1¯)¤4dØyk)dË™±ENñe+H½´§Ó.¯2*kv– ä&啇;W}™œ¶gÅγ«›¾H¾ûl1´½¯‹V™Œ29 CV€hª!HEµÓ‰©¡?}ëlÓ"U &ºçظƒ~êÔæ½v²–UuF¥­N³m&ß šQ`êýããH ýÚdN}Ÿ• "ø[.´©LîÒ·Jà2+3>´ySIE‹ Í+¯!5MSf$ÒåËYªš«$¿}Aï>ÛýÒýŽLŠÍ<¸fßcêåø¸¥‰|4.ñ‡ÊÈëw¾õtפÊP7w¿­%ÖÇl~à¦ÕÝ­61r¨ „j<ê¼ÑÑJÓq8“Îw¥+’— ]øÜ0H6Ã^¼§ý³7û‚!’N²p¹qð#&O/C™%$^¼·=Þm[a#Ñãl»{ù¼SËk­å'¹_srG„ü‡Ôì{T=0Q0å¿£ /â×FñÊþZãR%+4ÔÈÂ¥§æg”%AÓsÊ9Ò_kó*§µée*„R–±…ÛB_|ñEBüìg?“16ˆÂ b\—Rã<&+>N>û§öýŽ­ÛyNÕ²cOßÕV;2€<@Á°H&IQE¡u2ÆËkÌæ/’§—óÛÉ}]N[Sº«Õþñ-“&íý蕞TŒJ­Ö “§îh„AŽsl†Î„"ª+ºfÛ ª+Hî<„X¡Œ·o2¡³òjóÈsGÕŒ`L/ÜÛþäí­§^9®fd ›¦Ûï]±ÍÎQt{]KæÑ[×¾ü@Çá猬i´Ž½` P]âZO§óÔ‚VT×ÀaRRÃG­µñ¼"z>y!c &µÖFtŸŠÌÿUÀÍPÅT¾øû<ýôÓï½÷Þ³Ï>ûä“OÆ.ú«¯¾Z kÜb1Kÿøµ¾º1}ެ-«0ö8¸vü´ÈG¯ö¢”\ôjßÛÏtÙ:²íî[ï¾Oe8jBªÚûðZ Èqøgo÷½ü׎çïmÿüíú# lkμùäºçÿÒöêcëúºlpBcö±õÛ|«¼zDÂàÜ“b]κ–,ÚÙv·ŠýŽ©11T^cí¸_ÕÎs*—}˜HÇÃ)»–ã³Í.åÓ÷®joN˜œ:£œÚxÐïdeìð×Ú”J¶Åë¤*Ëýµ¶¡¦sÈB-Zô° çqñ.¾øâ‹.º(ªZ¼:î å«–¤ÆO ã&l@¢qSÂï¿Ü›ŒQêð‡ÛräGMß»rõâä7¬Þ~ÃòâÀ5ÓruØÚQŸ$Р䵞öȘ­Â¨.å^y°£a|J+ڄ쥵½)S=2€6_}´sƒªçßýwÑ«½/üo{e½ŠíMi¬Ùð_c!m¥“"?¥<§ï½ÐS^mÔŒ°¨Í©Í€VÝvx&ÍÐ8143 ;6·ãŽXŒ#Ë?I,ZØwÀIõÐS1wDjDùͽ‡Ô' ÿjÚ0ηt…T½ñqƒö äà&µQBÈóÏ?ßÐаûî»K1mï½÷FD¼×^{mÞ¼y*™§º›gKéMñª¬Â$¦.Ë#o§X¼×¶ÛÉ¿ÿ±m䤴ËI;–í2§r¯ÃjÁòH¹ñý«ÇÃòÐÝž½åÜåÀ£BÉ> #¤eYú‹wãÇ_4Ú0t[ÀåîÖ@Ôª„•o<ÞùÈÍkw?¸¦¢ÆD­ã.3aZÄ h©×Ÿò%¤ÂOk´3ŒqQî³7c@Ã/[7:˜ŠSbˆNRŽv:×d>{#6óдŸÍ0à¬ú{ÏwÔvا2:¯$µø[l;Ñ65ùä“¿gkÕªUÀ2 ›TA²ææfU`øÍjÀe¿$D—[íÒ :ëȺ‘ƒ ~¶œy§6fRÜ5žâ‡j@ÇfNÆíƒ“|!Î^{´sÔäàV;G3)*ߦîV޾-ý0þñk½‰>*=E¨ÍÇÇn^³$õÙ}MŸ%!sá¡Ò·Ý­|Ö‘µ(³ð‘ŽÞNÛ ä|pQÌɲ‡~³‚á×Àô!¥ È’Ð[?x©gŸ#ëP%µèm>ù䓌-B^*¤Ý nCu-q%&θtF„¢Ù0áØÜfU¦â +h•µ–0 ‘LƒM³ùËäÒEI€ 0.gà%Ú‹ÿ×~ÏÏ›ž¹»õ¥ûÛß¹\FP(œºûMÿvÍË´¿ô×ö¾uŽaæü½°xè~ÇÖsþèæ/ÒX4-H þ’ôO¿hB'»p´Nd,DÝ}z˜¼þä:X¶Û£ÜN«®M›ÌŒà›|3‚oFPLˆlŒ1Ú_Æt“L¤Ãœ.Ó u£í«2œK 4:Vg¢Õf8j¸¦Æv{á#§GÞ{¡†Ñ`ØPQøtI$çLD@óöÓÝXÂßzgw• ¥ÐÔÆ…wÎ9¾~þ¥ãN»zÂçŽÏÕ!ëýíæXNº|Ü û7N59Õ”`jle _6Î8, ßþxE>æ_6ŨãG¾­)óù[±óª¡/3*£‚¾Ùfߌà›|3‚£ñãÇ#°8ŽOC$^0q”ä80ea™p²Õ”å¿«­uefì”pW[öË÷âÓ÷.T˜Œbµ«=2N½rü#7¯yükO¿v‚aÊýt…1a˜—Öi@ay0-WgäÂ:Öd`ÐÜ倪L‚Á:ñÖ“]¨bÔÕîvû9!ï¥ý³‹tXwënË®Y–Þz§2Îuƒ©6ÙqÛ†‘oY–zà7«'lWvØF:ÇíKÖ ½Ø ÓÄŽ³*2I¦÷«Õ o®Á'Ÿ|RΤ86á /|óÍ7:ê(0_}õÕT*5sæLY`¸Ú($£í÷¬øâíF(€ØZ­r]@s·,ý0ñƒ_gŸ÷½Æ;.^ÿ²“.kgyå3…n þÜÿ¶ÁlŠ•µL*·®€›¸}Ù[OwßzÞòŠZ«su¦¢Ö„¶ „Ã-äA8ú~¸k9ÖÈ!†…î6Â×£·¬)¯2Æ…àö±êËÔîUñÏ}bAkw«c§ã7ü`1p ƒÜ1Ž1>Ôƒ#ñ?h€d1†!`lJhóÉ'ŸäƃiÓ¦wÜqßûÞ÷`:èëë»òÊ+¯ºêª²²2¹™wø ò@õ“QŸ½koÎìõÝši3+"Dª‘CÇÿlLÝ(×#&'\<¶ue:ÖíÌ9¡²àðWVeÂc ,Ú.¹Û¼(Òg[8Âr¨¥¶œtùØÅïÅ S›ñíê1Û„—}‡š X<âœQðŒƒÚ 5<>ÀÙÆL ÿª MŸ&»Ú³Õ#¬}®C ÒóNm©8c´ÿ%ápw<êpbêG7 Xi笥Ãð<Ôöx?ʮڠoÑÎrf«‚þöøüüÛã½›IUlukÁ‚£G~à!7ÝtÓyç—¿<âmŸ«É B¢HÌ[ÇaVÌøN5®G@(ê¸O„Ó¬Ø!@Ýu1›Aƒ¯F*N'‹-V™$Eå@PßeNÊ ðnÚÌrÇá—ü¸ ÜÆo™8­ ˆÃ¨ vÛí^îØ<“¦X‰ƒ7‰‹SD˜ÖÆ#‚P'‘51èE VMœµ±Í.QbäUè–N1;Cá ×8Þ­K©à«ý~\*)(Óß¿>Ql›žï£ ?š¿‡tð…é!‹„3Ñ/Œ7ÜpƒD1É)(V¸UQñ‹ü!£QqÊYª´ hH'Ѿ.Hxxd\>¤ýA>"ÑëCTán#š¨^‰$›¢²gò¡É8E«†A¨Ã“¶£žË(@ õ5;˲Ȉîá‡0‰ÆÑ%*Î;¶Ê…E‚¦lŽZ„ä?]E@)”Îí4Cî›µÖæ“O>)ð²m[îw'/òÇ`¤ç‡›â‚©dËÐ@J×Ðô‚ØÜý 9ÿ²~«Ó\Ä%fª­û:‘0•‹¡¤Îs—@›—ê’Œ¼äHsP]úwlSr•lDÎÕ9ŒI12‰ê[HÁP‹©¾…”÷ÿï[H½Å6ØBZùCÙ¼'xªó<©M|T3Å4F–¢õ»[¼á¶Œtc—G`z^äR²úä“OR”ú¥a³sÂŽÄ6%½ Žºôºxï*ÈPw‹¶S”£**¦·:¨ _ÐO^8ýâÂÕO-0AŸ¶þ @ÜjÄ՛߂I½}£ëóˆkÃ¥âu%ŸNLBLuŒ,Yš‡õéÄ ‹Œ]l©*vXß×K>ùä“w_ÇP;j 8³Œ`ÀŠ„(*0æÈÓPDÐíÒ‚6)‹r F²¢3b¢‘oŠ_›O>ùvoºa‡œš$X¬©ŒŒ0 #c'¹ÆJ^j ¸Vn«M;(Ã6ÿ ]µMOX¡)á·TÏFP—ŠÔ PªO^%ÔK¾lÒú™<Õ'Zy±í(»ŽIBÑP}MÙ¸H¨Úq2œS†«”R—E, *£:æ0ÞM#µùñÚüxm~¼6Ï# *@Ü0h8" ‘6ÖŒP»GUÙXMw£Ò)Œ—(´IéL´&1t«,X¹®#I.¿vçßùÃwþð?(¥@´gŸ}öÐCE¨"BÈKm %ßyçd~v᥎íèbï8ï/R¢Ð&9²^.G™ÝÑÑa¦Â«¯ÏBê[H} ©o!%„tuu}ôÑG2rÑFBZÃVSd–¯XÙÒÚÎÐ&!ªbéJmŠ“S(Ñ BŠSõ—Ú|©Í—Ú|©‚HGqÄ=÷܃àE†aläZ[uu5Z{òÉ'ï¾ãæys÷ìîhÑuG×(*h²5‘)5h“õ…œÁ5SÓ­`¸¢£;;cæ~ŽcCjóOGN$’¶l3‚"Áö¥¶Toyµ»Zd8Fº‘Ð&OK,p¢at—“•‹qš¶QY‹£x‰®µ W>äfe00&ŽÄôzÕ|M‘?üÈ~ä?ò‡ZwCº‘Ðfš&c¢µlLK¬Îö-Õíuœ&9w¤7[‰Jm¸Ð¸2t#¢ˆAœt£˜ÃüáGÙ%r.ßR› !÷-ƒ!!QWÞýÚ¤6µY‘¯zñNÒàÅLHZÉP©àð¬f÷h™vžmã4Ι#PD 8\…#Å Í{Wõ\Ý-ÚNqŽ"ÅôTä úSÏ‘Ü1OL͈ºz©Ó¨iÕê ­ª¼/µ)~6U@?^ž½ˆ|:Á¾ÎÎx_€oFðÒ06Z}UЦ‰”Sf8Mj4¦Ùq;L“ )1hSŽm†F £IÎ2§^¼ÚÎFðÏFàš"Kþÿä­>æðÉ;Eº?$):¼ùàŸ I©ië󈂨mjFŠ”2îèÌј͹ÃuÁ+MhÓ8²:°ÌÔ0^wÔÔ‹Wßô(»þZºA)ƒ¼öÁ?zžøCëÄí#¡¨ñømk»[³ûSg§×7˵6?Ê®â÷¯60p‚uyW–°c¸%¶Ž"! Y’ç›øEª.)¦÷®ê†jÁÛNqŽª¨˜Þê O>¯?ž¼¬L$¢î9/üÜæ´ÖæGÙ•n;©}ù¯Ó÷©@H{àík¯{úζfUTÖYÔá›i”]?ʮĩA`K‚þò¡dgùQÁË]JmZi‘Îû=MÕL…Nrè›O”])º “%$2 ,K'™c³­vŒ†Ë:W~šÚunPD»ß<öú{HA^p,ÊR´ÏU‘‰JåGN&o!•)¤¡ïog¸-«Ë¢ùÁoqa•p®çØjè›ÑöxŸ¸F ½o Œ«n0Ê.VD«ŽU”¾øÄ9ïÊãÀ18 t±À92\ pà  zô/ÚRÆe¬GBÄ¥Pp "SÕå*Í‘âPQé•bˆF¼ÅTšoÄåâ\†ŸSweßTa|ò”úÍø°>Ÿ¸ˆÞâdã<$rj¦fXz&-ä5^ ò“O)¤2•GÀ oÚ‡]ÆxÀ"¦©;”g³x ø„*ª 4µê¨iI:Ec)²ôh™ ½1J™<9¡ˆÔ¦ª©“dšÙ”G#:‘Ì0ÔPôS䎎ºfY(®SÊ3Ž@1·ºTÆ97 &e9þæ}©ù Î1t"N–”ùÁ|åLvj3ˆüáGþ¼˜B.%— mM¹‰š¢ZÎK÷’¡²°ÑÑc¯nÏ6ÖX£ê© Sö ¯ÌhÛüú‡ZÞú$~Ôœš“æÕ½ùqüŽ¿µ/9eÔˆ:ËqØ@]Â#¦ÞÖeÿùÞÎc¨ÙjLðÿž[‡ûÇì_m;¬ÀùV¥ù2iYÈHgÙŠµÙXÂ]¨¯±²YFEW)FÂx4lô%ÁàáA*Å8‘H Pµ¹™@›¿ÖF„Ñ+\nê†ïqÊ* N5;Ã3 V^cÊl¾kmþZ›w(MÉqƒø÷Ãò¦¨Ô刦3Y"h‘;k¿âöÕá K²Ÿ?â’SGemÀ¨‹ ‘-sJ]Q¨*J®ýSËoÿÚºß.ŽÃ»cÎé×,„ÈN[G¸˜ÿ“Ë\²bn@ғܦZÈ"=öoþoíÌ¢Ó'G{¥›RvÜ܇r]¨·é/Ï…â)›2ÀÑÂAãÉW»/¿}uWŸ è]½ôŒÃ~qúhñ*8úPVfüëÓø-9ã»õ}oT_‚]’ZkÓ7¿µ6?^›¡c˜«—¤'íulÖ¹&ÛÓaF^ÚŒ¥6_jS·òwPe³YDõ¨©©Q mÑÚ8òå²ðý¾óÛ|é©#O=¤þ¹·z‘Ÿ<&ô½ƒê²6³,â„ÐX!Ù! Õ^ý06ç[Ý?]ë´—.I.]YôÀôé»Vv.Kfm^[aZÂÞw*Nÿs{¦——!–nšÄ2äùîÜ4🠚)z‹Ó¬ÃˆÀŸòˆ èT6%D0¨±ß?¤þ€Ý*ÂAòÚG±³olÛ8ç˜Êô¿ý£ëöGÛW´dZ:mBÐaõ7g©Í—ÚðHÇÖêÆ·Ú)úê#•uf$jEúKïöAuÝjLhò˜ ŠI˜üZ¼*õÈËÝÈ>«zd½«DããØ_&{ãt\càཪ¬© ‡°ˆ-<™¦oýÛ?»_Ø}Áü‘™,ƒZ]aœuô¸+¬ÎØ\ ½>RѾÑä+;š“áß9µaÌ”ðSw¶>ò»ÃÒ¿{ÖHC¬µi%D¾…´¹¹ù°Ã›6mÚc=fYV>– ËŒàΪ½õi|Ï¢hèI2ä—­Nwö:€˜“~±ü¹·zê@«£.^‚Ÿ;o_¹6³¤9}óƒkŸz­ûî'ÚÑÎÝO¶?ú®Þ$=æ’%?ùMÓÂú~yO˼Ÿ|ÑÜš ˜z(¨ÝxoËw/\üÄÂîÛj=û†år¥Â×Âc'^±ì©×znüKËÜs?ÿdY²¾Ê¼á/-ó¯X}ý£¤Èï]µ<žb¦¡'Ó® KPÈ’/¼ÞýÁ—‰ýw­ ”'RlþwêžüŸ©‡ÍªÎØl¸^z„ç“w#ÈLÊJ½iû@) …ÉñŽùÁ¯&œ|ŸÓ~9¾ºÑrµQ}uLóçFñ/ËÆ“øUUUuýõןyæ™ét:_]%¤Ø÷T¥…·8¥¬½Ë®«²,Ho¨6ãI—yè~5?:¢á¼ÿnZ±:}Î+g«âû‡Ô=òÛ)»M‹Î™Qñò=Ûÿæ¼ñÞ° Z~ø×ÛüéÚ­o}°mɪÌG÷OåÞéËÛÑ úϬª¬0Þý4yã½kù£Ñ‹îŸþÚ]Û9»Eˆœ<•f¿ýéø·ï™öÙ;š&¹òÎ5P„¿³{å3¿òÆÝÓ^þÓöïþe{H|o|+ ÊäǼ߷×éŸ}ûÜ/ç̨¼ôT¬©9è94ÙÎ.»/îèRó,N ·¼xE¼‘È<ù-”4Ц~ ýKËZ&MË«M€šáÔá„lÂ>ùs£ø—eƒ‹Iäš4iÒÝwß}ôÑG‹€E LU—Þ6UZôÁŒk&‘wJ@8’^‰¸£çö“»ú‰C9€ ¢“æO9¥`P&Ãвms𤼰n«±¡g^ï¹îÖæûžî]xcQ|]·óÆ¢æQ]ŽãhGή<1¦áAPWçìZ1k—еvUÔ¸àđӖ®Jï7³rÂèÐ;Ç^øg÷²æ4ºÕsˆÛ?B©­öœcOüNíÂb÷=·N¬Ó¹c3 Í0ÄH„#‚{^¼2 ä^Ã0”ìo´Ò¾I«æŒæ:#Ë¢‡_©Ðº\fýV­ eWñ½Å Îs® ô8OSÞ¯<_'­(3bIJ©,Í‘‡©4 ›W•ß;¸þÙ·úÎ>¦ ö«Û²Ú›RÉ këʾðNo:Ë K‡zTBƒ0Ào–M<:žtô¼Ý 6‡Kð¸5ÐðôÄK]¿X°ÚÎhœõïKfœÛßzlhûÉáPÈ8ú¢Å?¿cõ¡ûTY¡Lž6ÏŠBBÿ¼”Ð0èöxBˆwEÙ?qmžh¥þbƒ£2 ¯5¥¦¶Ç»SÍß_:CFÙõšT>K) /&8^qG^çv𜑘ú”ñ¡ÏW¦™hôeSzd]N†¡Ë®ûS˾»”ßùxÛwö¨ÜnR¸(tÏ ·{0\ó“ñ½ëlôNv=Rf@FsžHSÑeׇNˆŠ’´ E`î„¥Â2õÖuvc¹ª-óý«—ñãÌ#PÈÛð÷€¨ ³)2YÇÅß1#ÉŒiÑßíëèv»àó|ø’¤b€ôOF ‘ßÄÓã} ©©o!-~¤üðýÚÓrèÞUçýwóÇK’»O6¯Í>ñj ‘õÕJùn[pyñÖ©§\¹ìÌëW¼²`[Í$°ææ8As‚À=ùÀºÛj;ñÛu[Ë`…xÿËÄN[—í»Kŵnùß¿wžwÜÛ᯼ßÑ,`€¬Ûø»½_4¥·Bùß?ÒºÏNå@wŒžw|ã¨Æ ”âkGy”$ºþ÷7ºglW6¢Öª(#míö½ï.OL¦™Zxž+vS f!¾Á7#øôŸ4#øfoa•*nfC\:zÿšýv)ŸsöÇ^²d÷Ó>…áÇÇŽ ”_÷ç5ϼÙó‡ÿš€ü ?×sÎúu“fiÀÇ‘ÂwhI³Yzþ‰#wØ:²Ç>9ñò¥ßÿåò§~rñ­« ¢î9=úÃÃëòßÍœýùç}ñ?÷·ºåÎÒõÆè±—,>öÒ%;žøqK‡ý³“FNÛhÁPpòKgžþÙS¯vGÃä³å©t–ÞõxûNó?>âg‹çÿ|Ù¶Ç}KÑ›/OWºOQ4ËY ˜|3ÂT"fߌà-lÊ—ÚÔ¤Cš {QÇõÅýËU“¯=kLu9@­á±·YgÅtÚ¤È×l5e|¸'N¡>úëmöŸQë´¯@ ÍŽiô&èÕ?{ßÕ“·ÞF%Ú¿÷ªI[ f²üôï6<˶¿»`ŠðíÚ?uÚ¤pE™ùÄo¦à²2bœˆ¯ÛÍbó¥Ú—N¼õ¢‰Ó·Š4T™Wü`ÌË·MÝ~R$#üà0B!ÔÔo¹p¡{». Æú›´MIþnÿôx7Bá\J$pÜ¥”JË©‚³Â@»yí1”é_‘’ç=emÝÎ>zcœ=‘¦ÂåU;lŸjÊy_œ™&•`Ê„ðÎSË` øÎU¨ '8@D4bžzèJZPKª?éÀ:¯z2Å2Žû@›rȆøap~%Ò,íðÙß*ç"p줨"mºæÚ@¯þÑ\C¥Å³àËVYf?·aÆÔãI–ÌPbˆšD¤9zN úŸB;¹p&\ ÿ›¸Á_kó×Úüµ¶|ë4žþù===ȹ֦ˆp—+¿ãBÒq¥ê0lÉ[>ÂÑ;ºûl2p[”I¥d’&é‰Ùºàã.sÝâÓâ§Lëê¡êô?p‰è/ã¼§ª¡bèhnh\¥KýhŒTÊI¦rèLŠ1ùD‡²®G*R‘4Ü2Tç¸fyæЉ‚hP×d×dû˦ î÷ëóˆ+PcŒ)ÝsêÔ©Š)3Å>RÇùƒ+³28—WDGU9)ýp)R@Œ¬a≲}hsæ¿â ÷l•r™‘µ$Ç$‰$ÿŒ “k.ð©F@²'LöÐPÐ/º!K §—M=' Éà訌"ù/œoVÄýÃú†…Íî°>ÿ°>oqÒ=‘‘ÞhùR›é<¤TåB¬‘*i?¸¨¨¼\¦^àVLÏÝ‚]«¼h;E9^|÷Vä úSW÷ˆ åD šÖ¿)Ä}òɧ‚èlE½S2¡S£–Ê!"壌D…#Å Í{WŽº[´âEŠé©òäy›R·„:,ë nŠQ#Õôoh(JŸ|ò)_"CZÀL~$–fF4«Rçi]pÍÑó °ôNçºF\ ÊÔ­2ݬÐ0½8´ yN¢¿ÑŠ+Úb-¤Þ±û éÐ_–âÅŠ@Ã@ßm/ UŒé-P«G3È4áŽûõ/Qh“Õ…½ÄÔŒ°fÕjf•¦¥ÃÛzÚ¢7Z÷kÛ²-¤ŠÛßh5ð—¥ø•mÊ4MÃ06Ú(¥ÊÍÍ ThÑqÁÊ´Áœe8g¨W¢R›:(¢‘€fDÑѦcá68›`£•ï׿ûµù~mHá­–L&{{{n)µUWWgÒpzâpª¨év&ƒKƒ¨(kMí¬DF¦^hSL•ÉçƒÔÝ¢íåx¡Í[T/èOA^‰m‘ˆ¨sǤ"ñTŸCíM°Öæ“O>QJC¡Ðƒ>øðÃo¤BZÀ9òè¤'„tÏ‘eJWjS –.Ž›&±m²ð× m¾Ë®ï²ë»ìBÇ™öøãOPJ‡mFðãµq‘Ù²%õ¤ðæÇkóò‡Ž×&¿~Ùlv#ÍŒ1@›cÛà$ú:b-Ÿ¶5B³½ÌIᦀ4&P D¡ b3d…j*j&Æì*ÕrÓ˜|òÉ'Øcá͋,í¤:Ó}ÍvªÚ ΨÀ4¦i¥'µ©f Í´ÊhÙˆp¸LÓC`ñMfFð×Úüµ6{üWKÙhÖÉôf“Ùd›“‰sîèjƒDŽ’€6°Ä¸úµb™¨¦[N6ÆÌ¬îÒ&‚6ßùÃwþðƒ}Õ)sÍ0'Mí”ÚáaÁÜDLS ¥ µ‰Ê"Otbê:¡4Ãi–´‚ùR›/µùR›š çTÃGcH…¡‡a¾2ÆrPRІ¼PE ²:'š²\[\ß Fù?¨‘âùf…g¾aPüzÚ¼þ0üé*95B`8.Ö1¦Šyœ‡ÖçnÑv†Û2Ò øu(_6Œ *”¸|2:¨QÇj¤|¤·Lò¾Îý FCDS4¸sÕú‹rÞ}ò^/%™!w5¢Nt,¡ö¹À6¦qy|úE½|¼Ú”R›/µùR›/µyãPzƒ)&!¤ø«O6%s*¾62yQá†ê¹ìg"d7`QŠ€Z.P˜J‘(ㆊséñÎ P Ãz…'UW•Ì»$b¨Ê¨…Oq©mÀ÷Aþ‰V\™|*v–’ÿ*TfƒO´*0#RAj™L’Ú ~Áä,hŒqžà£$jé¦8}ñ~EÄCJG)ÇÙ Õf$d °e굕fM¹QƇhCU—‡:âæ%d!ošHu\{­Q—j¤(i™šA¤° *¬"ñ]hÛ¨Bÿ½EÞí&3#øfߌà›ÀÌÇéï&ùL²**ižì¬Z×ó%&ÀS( §Ü³ßê¨Y^FÒY^4 9.%ó¡—º>[‘Þ{Ç(ŽkYÜœ~êÕž`L¼ÌÚ©À¢Ð¶Ž-÷hú·vã¼Ñ†j = HoÜéK°º*3$éLά‘ÿú=:´ å¦½ ŠOUÔÀ)0Y[†2Wþj¹SŠþ PçZÿ”߇†6ßùÃ{†Ê~ÉW#ÞDjç+vþð?(¥|ðÁnjРØmºÿþû‡Ãaï^ú¼T¶ ZGÂúuC´Èóo÷ÝúPn8ŒŸrPÝqÔ¤m&§.m I!Íñh„üß³]|²sêø`wM¦ÙÕwµ¤²lÇ­ÂMk3ñ$Þ1æÖ1ˆÚÉ©1ñtJ9¤³u½öuL]o%ÓÚÍ´=ýzOÀre±sŽm˜½KyÀ"w=ÞqÿóëÐ1& ¼ÃY‚ûì}}Qâ®':p¦}À$ñ=pfå‡×WF÷¿H\òûÕjড[†~äœêùóê3Žœ‹ò߆žhåKmRfáàåÄ|Ž©¡1µvPZ~mù«3îÔç<‹8 ÿ)©Í—Ú¹òÊ+o¹å–±cÇ–——¿÷Þ{³fÍB˜/’wógÚÀRAÊ8‡RùñÒäu^{ä~Õ‡íSõúDZëQcí¿[…í#´DZyÅ]ñJã®îùög‰]·ÜÿËÉ]}tÙêôò–ì½WMœý­ŠsÓÔK[&‰„\TK¤˜í0ÃÐ%¦„ƒFÐrIbèq» w?ÙöàKÝ—Ÿ6b›q¡_ìþå]kkÏ7ç|«g-¨ üà°úx’ò(ãc€îÎ{» á3«‡h¹|Mæ7÷µ¡ý‹NÙX8ç˜FŒJâN¼íᜋ*áU×¾©Í—ÚrG„‰ELª #”PÑ\vÉ)¤*åýÇ×r1Úÿ˜ÔæKmHçÍ›wÒI'á8+äW®\¹Ã;\wÝu7Üpƒã8PT½µ¼R[>=÷V_cuÎ1 ‘í'‡ß\”xòµÞv«ø²)íPtÕP€4µdû4̬뱣aãï¯÷ 3Ë[2hù_Ÿ'(ã¶ÍQ e ¢ÙÛ•ÕW™¨‹.CÓülEê‹©Ñ €£DÖdŠ>úîùójŽÜ¯&‘¦—ž2í<öJÏÜÝ*Ó¦Œ ðíšî˜ƒîâ2•¡}Igîn•‡ì­ƒ=tæöÑÅMéW>ˆýðˆúºJãˆýªl”jUåÆõn02°ïÎåé,Ó8áÚÆKm>é Òÿ1€m’Ùb«–dz.‹ŸôÓŸçŠSpéÍC(^”3x]ÅT—Oﲡ,S-ø$ì|g# .ˆ”P€e&LØc= œJÂpûC)ÿhIbç)LϾ$EÈ?óF/³ºb”ÍëÏ3s‡òåkÒü®ùäkßþ4ÑÜj[&Ä¢ö‰£‚ï~–@;þûº%«3ñV®Íü×­«ÒÞÙë@vûÕ™£qJ<óá—ºQ¾¾Ú ô`@«c®òÛgÀ d†!CÄì]+^ý0™Ë2uÙ²Õ@[u¹X†vlʲIwÆs!rq†œeh¶ÃQ …’Ë[Rþ³û´Cë€qh*°æ!Ú6ÄíƒÓÄG7u“9°nƒ}Áå@^ÚH‰MX4ST¯)ʼ®bªKÏZµaŠcøzÑÓƒüÙÁ7ê­x=×dÚÜܼÏ>ûH>¤¶áBíº^ Ý zR°HéO7ÜÛz×e¡ÿÒ ’N†?õê0qÞ|Á8ÀßšöìI¿XqãÇî¸u䆿´töÒsm˜»{e2Íμ~åÿÜßvÇ%ã¯Ê@É=i^í™G5¤3ôÎÇ;>_™!ÄE¥hX_Ù’‰ã@c%¨#D­PPúĉ?_üÛ8ãðºÝ·‚ѡûvýÏÅÚ«p–±©A€˜hD|a·eéïUK2©~Ðæ@-h–E•6M O™£©mzøÑJÚÜ„˜†V†­hÀãòߟí—šúW1͈ÙÀm·ÝÖÔÔôØcIþp7i¡7”j€U Çn¸ ãŽhXѲ X76¢S$< Jf²|‡É!àŒ 0³žvhý Ö´uÙ-N¢·ó¬')L±‡ìUýðË=6š Gï_ý§§ºÆŽì´uäO´?þJO}µK°c¨Ùa«HC $.ý¾çÖ]|Û é[¹ª1š ˜.b]uךºjkþ¼ÚdŠ ðõµö£ÿèr ì‹%]¼ÛphS®.”ÒÎÊh›Øàç˪bù©·¼ªâ©5XQdÖ³:ÒÁ÷Óaà–eÉ—`èU 6êÄÈ:IÆQRãKÚt‚Û±BŠh°!hVèAqF)gu²(3øî¿¢Ï¨·*-hÊKƒO0Ÿxž±}2|ñÖ4SLŽlF(ˆ1 \¢þùwß}7ÖÝÀQ†4#HÒ\]B 2X$3ˆlAKX$ëðÊrô¹ì-?ܧjLc u]U4š¦ò˜Öü˜HQ¦¥³²«²» ‡RÉ4•óÅvøñsk³Y~û#6e@®ƒö¬øtEwGÕYÖÐ61´)ãGŸpŲçÞê…`(UN‡ò o^ùî¿26”ÓUÁdP<Ú@<`·rt8/ih3‚B„Ñײ,¤xÑê·²…@›ò'”ÃGZUQ7±q£šMcM3±÷˜ƒJÚðCˆnÌpmlÕ”H(bZ++Ä´ç«àÎ¥ m*¸ø\Ìp(¼Ðµõ:¬Ï{z|þ-ƘeY÷ÜsÏYguçwΟ?A+ÁÐÔÎs,•U"!:ŒM­Y&ÎBWµf¡“–Gpºªsß³]SƇžxµgÖÎå£ë]¸Q¡PXÚ̸øé46ÈLCô„‚.ã¤þ‹K"ôrÆð8ýìcšSø›69|É­«GÔZuU–㩘#PZ Ъ+F)㨋fÏÿÝ*¬ÙÝ|Áøh„@KuUQÜ æÖìso÷ÁøP[iõÅ)!…Ëýn C/oà–,YòðÃ¥RiBÈ$µ‰0)£e‘È[o½ æë ßÕ5ÒݳŽk”×Tì(Õ`‰B×x¿ Ø šùaÍêæ¦UœÛÏ<ù`mM9¤6ƒpÕ´^êR›„muZc:1¬TÚÖ²$lˆeA=Å4Í[o½õšk®yöÙg÷Ýw_‰tÇ¡‰qÍ2tx¢ýîöÕíÙmƆ€e ?ˆí½S´ªÜD3X,³~÷å.¿}Íõ^ûû‹Æ†+Ÿ+ÔÐûSé÷»dUzUkf›qa ëñWºÇÀ/Èè8ÚËïö9»Š2íóédÚ©ÐÖæ7"óý/â0w^tòXK—¬Êì¼M„3WF{ïóø¢%ésŽ©w­´­™+¬ž82t壦¶Ã flΘk„}êõ^Œû°YU‰”µ¡È»‡Tm}€´²P˜>ýþ¶ÛñAÆ'LôÊ2ò«_\X^¦—…Œ E "¾ÇR?(ih“”OeŒÛBId4šæèùt‹«·}×^{íe—]¶`Á‚qãÆÁ¯ eàà6iÒ$Ü*®aäR]yAH/•¥p¶€»Æé׬œ;£üÏ»Žÿv-ãüþçº^|·ï– Ç›¦~þ‰#N¹j9L ¿>g ä¯2škÆaRäŒ1 3žâ—ýaÍv“«ڲŸ.O_ûÿFãæö“CîYñ«{Ö¾¾( ú¢)*( ¡þÅwzÿòL×ÌéQ‡r@êþ3*ܳrђ䥿_ÝXcÂÿ£/É~ßmZdÞÌJ”¹òΖ/›²ñ$?úâ¥@IÊxm…yùi£&Ž `SÄŸŸ^wöÑõ•eFŸXeSʲtþ`\ǵœ2C'„@ž={öYçžÑë¢Z–R›«hëRë(9©#/Ê€EˆI¸YYYû¯wýúúú“³gï»GwW»ÎÎ¨Žªªø¯¥6UA^bjºY[[wûí V.ûä—??¯¶B×iÌ$ŽÎ)Ï![)+¤ª¹6t˜ÉHYÒ^tÙ¯MÃѸ#µÒ pÙ…¼‹Ånºé& Ø\H$ ¯A…ÿÇ /¼F‡µÖfh:¥î†ÐëÎýô½+[2—ƒöªÂR4ÄšJóç§‚ÌÕ‡ Õ¸áܱŸ¯LA¬;i^i’TÆ}L«§j+¬¬­aïÔnÛ•»_~¯› Î<¢aÇmÂ(fýÇÇ6NúhI ªåÉՆܭ6kçŠPÀXÜœ2ˆëy»ÿ®å° l56tÓǾóibMG¶2è$ç…§V¢©ŒZè^®…<¡h|øÐ¦ÔRªeRvO<ÓKud4ç ŸÒ†6wÔ°l–4HÀ†HB$Î;Üî³SíN²ÕÉÆ8uDa†;¢’´j¹D7` å´’–æÄ1«ƒWˆMðŠ^EŸÆ²D£Ú–m@ÁM]w+ãzÊš0§þF+Æ˜Š½¡z¨¶ñz#5Rí‹Dµ9§²:LB˜ÚŠEt-ÜD—€ÌdÆrc®qAJíÍ{ºº¥ËZF®“ʔĉZüÊ>‘†©\ª¬½¢°îyçª)¢òšè 1Î%{ VƒÈº2,M¥±À—éÐFÑV©C¨ತòx™â–Ü4Í&œL/ QG°¨«•¸B "€6‹è„†’ (¦3á0 p·9Ër–ÁGË­ÃrΔ¡°˜9O=ËÓ[ÉQ©ª.ó^Ê/ì…¶üö xoyJ NQ…¸ÆêB²4fqfëÜ1ˆF$¦ç„<úiÁ¥b*øP6=É)Z=œÚ¨œ—”Sެâ¹Ì'ÉôÞ-3xÑvŠr¼àà­*È{ú£y;¬¥å†,Y`ë…fƘ7rÓÿgïêcì:ªûœsïûÚ]{×»ØÆÁnkŒÒ „”&(Arâ ¤Ñ6!i¡Ð¨U+PšªU4D(”¿ŠJù£­„¢6Aùë˜|‡µÝ(ŠššJ¨ –P¥m>\ˆ¿°½^¿¯ûîœÝóÞÌÝ;›áÙoûvyw~ï½ÙsÏ|¼7swÎ=sæÌŒÐZ§©NRÝËÂ.Q:ñR‚ˆy\eM=­{r¦‡ÝÓ)¿â7³@‰·È$Š6QÂt62PJªOiªˆ@1Ÿ€?¤¥™:‘Ê“˜9RŒûEËùàÄ‚áç³ í¢ØC†.$p£œ”±ôòÑž& E¨)(U:•ž%ó‰ zÙ®^èSâ`øBxvÕÚÑרع R€h`6’ü\;gM$¡Û5 Ó–/°%¸å¬Èq{¢›Q  ¿§@ dBT5+~+è«TX¬»’H\5í'M| ¤äåÀaú’åC7½?—‡2»›¾_¯¬ÇÊÛlT8èÌÔY¬"ÐÖÖ¦\9—ž”áá{Êñp†Ík]@AئÈM@¡´†3 @`æUHZÅ­¬•àÄBŽo’™,.ò‰ÝZ@vrÙ(÷²PlQkSˆÒ@ÔïR@"À¤Ö~€;uÖ°G,K'Å Š1¿k˜vIÇö°¾‰;byàh‰€1FuÄjV}”<¶6SœéöÂ-P|øH;‰v"„…óH´Éò¡›Þfqs©|Æå5LöBF›Ðd%EI¬ÖзP@¿EHiH™'RÞmVa.9tM˜k8Î¥CÂt9þ¼¦ý^R3R4SÊi’¶Ñ2úÓYD—20Û”PŒ2|“Ì£´»Ã'C; œ(7%hµMÊW>þ—û'Ü3% ^ñþÁ¬ ©Ÿ·×7Vëó@IO“î‰ÎdŠ6£µa\©NW›âꆫY yXŸ<¤À¬^¬ú·Šy,áÂåØÐŸÅå¸-=|v—¹l]@Óá¥[3ŒnÇ…üa¾4¿Ó½t9B›Ð½t ÿwùóú¤„Y‡FÀ{-H̾ü¥™€|º°|òò-q1…C›kÈr@˜ìÏ Ä ‚‡®=|å Ô4w]¶k™ù©Z[¡‚0£Z\SmÃŽ¸6“&m¢ÉmÒë”Â(ªLÅõùJcs'©‹ââqÙ ðHSp™¾;4 Š"g]ö¥ˆ6Žq¶ kfãæ—½]«*¥MÒ‰ ª²\¤&J´ Ì:7„¨ÂZêôÆ­ê<ø\v]-€ÀÞœ[<™ÿºVK‘F€ƒaæaÀ'ucFP¶‚ãí®$pD‹çBÉãÑÂýú´_÷dÉÃ-aô(±@CŸÎ@ `žÏÚ&zÖ¡C‡öîÝ›$ Œ¢µ‰||þù癸ïþ?Ûö•­NAõ$ Š›H[›™ç Šâ^ªO:EÑ;Ø#ƒ=ñËÒ”·A…}³¥LC©ò¶ت[3³ˆ³o°,žtÁ=ëõ×_?räH𦣋6D\\\dâ{ßûþ~ðŸDÚCjâD[Ž#ml ö±¬‰@>âHÇ*!o‰ §ÍÍXÔKÛ"y…Öº˜xlm,×Úíöm·ÝÆ{µZ-¾ÑÖÆÇÁÜ|óÍO?ýô#<òþ÷¿ÿìÙ³výDH‰À䓵hüÀ¸úê«Ó4ulm^W‰„s±‡*¹ÌBèO?Ê9Onvÿ¡S¶Êʺ¸È#¹Ð &ûäh•'¤İ¡$ÙfM†ir¸eú›Â_k!þZ ŸkÈr¤šFÍ®僌"‡#Š6ÑûdË£ééiDœå°\Z[DäýQ8TrÐZßDy2!‡ ¡|PڎÅȸPR¨ìcg¡IöPPj(Zîk*ÂÀDš«GGaì^¯Ç—iùàœ¨o¤a@¤—ˆá¤0€¡]ϵáýÚÑÐ&ô”¶â×å1L¬§O^5]ÚåuÛÕÄ! àÿÝÖlmÁÖlmƒD£ÃV$Àߨʀ€€ µÙ7y¨œyȺ -¡?Ëðƒö‹Í¾"mQtÙ]+ɇ11\¬½Às9B[]Ü´Y ¬ì²‹ ´ÆBëqÙSøo«'‹¿aGˆò¸ì Ô.»’hu |þÖ@µNlmÁÖlmÁÖlmþ…V®_[™¤~¿¶2Hý~m%ê\bÏB«Þ8wºšÓˆî6&­Ìj~eq0îÕFMK5©éž]ì!ªZ5Z#­H _žxòq$Új¯F°—Zk£Ë‡ÕëËÖ ÒMa /~çü7:þOwòÌñ¤R­©„¸hŽŒ‡ž9ý¡Ïþ÷]_|õ¾üê¯ßó_ÿ¤•uš 4ÑL·,TŸûîâùþ?¼°8UG¢0'è ØÚÖäfÅ8²ïäsOüdÇ/ÕÏŸî½pð'úôŽËÞÚèuu —€‚T“ø›7¿ã­j¾}tñËûNl¯¿jö|3Åòµ‰ÖÔ¨ãWž<ñð7N¿üãΩs)ÂÀ|±îåct­Íã²[N­Mk=ôòx«Oˆ ÓXWðõWÚ,×núøÖÝ7/tšéC÷¿úͯž¸óO^uÕ˜AºoY»ÓØ ÒÕoÞ´Àa’‘úÝn>øü¹£ÿÞÜsÕìšôNÓ@}–;Ôâ½k{í®½[Y“íöh E¼5‰y–ÇK(±8Ž]SŒ„&‹+Q†6¥q‡•2åÒ¤1ÙóséVÁ~¡L·œ9o4á㩎[ýíþZ†´ »<^ä'Ñ*=†i­)ª¨žß0¿ýÝ.œëÕ§ñŠ÷Ì~ûá§Žuæ¶TÒ„ŽqÁD Ak0L´:)˜j·Kµi"¯Ë.3%‚@#³Ö`@]h¥¿¿wëÆM•ÿy¥Õîjȹ͎ßeri<Ëã…n·ÛgΜiµZ܉è’E›ÖznnŽKcØl6Ïž=+e–M´U*•Ó§O÷z=wa½80ÅxâµÎìB\›Æ´G½.Ín©h­Øâ¶y{=í¥åtþ`6¢ê¥ja6~òÙ³ÍNúÞ«6$=…Ì'*—ó!"K´ôtr¡™äoÍú]h¥µ®×ë8tè÷CSþ%kmˆ¸´´ÄÄwÜQ­VµÌ—H´Ù2ã8>wî‡ëÔÖ&]¢ÓÔQ+Ô=ÍœZ©n‡8ЉrÁÎSšÒ¦™ø»?l~ñá×?ö+ ïØÕXjé¡´ædP*ŽT„˜‘c\ôXÒ4ݾ}ûu×]—$‰ÌfŽ2 eqvøðácÇŽ]sÍ5;vìèt:ˆX&ÑfE<·çþýûµÖëÔ¯š•Ö¤)ƒ"Q*—_›ÌjM³3Ñ¿üÇÒgþòØÞ÷Íô¦7ñˆ ”ÒºŒ~m6Š”&ùú±H9@&†õk3=pÏž=>ø hXŒKÖÚXJÆq|ûí·ïÛ·ïóŸÿüîÝ»Y£[yD›qy9yòä‘#G˜^§~m?=Ÿ8ÖIÚZ8­¥P5f"E °l~mÙ Ú8ýãwÎÿéßüïoÿÚæß´°ÔÔAnVÙüÚr'©ñHå jH¿6KˆIˆ5¬Ñmm,ÚºÝ.sØÐÆ!ÓÌ)§­ënT6a®3­MQ/ÑÛ±ñÃ]j.¦›¶VkSxòµN„°y{-éh¥J§µ1jUüÆ?ŸûÒcÇ?õÑm¸vnñ‚8|€&2]¢|«ìmˆ£¾HQcžFP»Á^roQ´¥ijpQRf9E[”aØÕBZÝ›ÆdhKºtù•3‡;ydÿ©nß¼x*yá™3—_5³aSÜâ.0n?;bØv¡±»:Ô*ðÚñîýü8Bõ×NüùcÇ#„f[¿ç—g>õÑ7¹6„$ÉGþ¬²egt¡¥{=Rj¼~mòe`º‰q‰q´6Gž®¢_#øµy'~£v”¨±tf6Å·|ò²'ÿêG¯¾Øì\ÐÛvÕoøÐ›ºm=X«c•mò2Ïê±£§Fï»sÓDC†^JÛæã±våB_Í?ù€ƒµ‘kÝñ”ñ²óo›ît5ÂÚL#вG¡o@*ô*.´ .»nÊ<a9ÌÑMƸ4.(Œ0MèmWLò/výêïm»ã¾ŸûÈgvÔ¦""…ˆ°F?‘HÍLE<ýÀµ³·Ý0ÿÁëçoyÏÜo¼wþÝûƒˆPJHãLÕ£Ûß·°s[-Õj=7…RÊ¡W§L–þvX7;Pÿ•tu¥ ;ß>­‰’„”LjÑ›J7Cš¦tæ|/#ûñ&F¾dR—q†4×8úô9T2_<¶?lÄ?¼yÃΠ麲ú!éèŒI!“kåš!µÎíÔç“%Ì!Såœ!µQqlÊTDãœ!•¿°~wþ;¸'Ä,{ Óø wˆŒ‘ ²—i‰VáD«òÁßCØÚJŒŸQCF@°µ[ªIA@@@@8¬/ÖëÝe—&ö°¾pX_@@@@8¬/ ˆ¶€€€€ Ú†\CZV¸kHK ÿÒ²¢„kHÃÒà×üÚÂRzA9O÷e==~í?ÂR?aÖºpù%\C:Dó–w ©§Ra iXCºÞµ¶ µ­-hmAk Z[ÐÚ‚Ö´¶ µ z|™à?=¾ŒðŸ_^¿‡?=ž±Úˆ[„ ÄG8=¾lR÷ôø²Hý§Ç—x ©òôx‹ÕZ~!}¢Zÿ«d@êb0Ñ“åƒÔ>7a`¬äåH W¡E¤î¹Â=3¤†}@jÂ0CêoÛø Æ«B”x†TI„ö+õ ©òÄ3MÑOXêÒAb`)n¯n]ìÑÅ¥ ½†”y®W„5¤a iXCÖz˜èße·¼pwÙ-3Ü]v¥M4•Ãï²+`º·W-Ó4•2Ë ®¾´†‹XÕj•ÃZ­ cÉ£›Ì­ŽÐnõ ´+ŽÊÜž\÷agHA„åÅÀ¸bŒIPf¨ìcH´ BÉ¡ò¶Y/¸û½ôÒKO=õÔã?~àÀýû÷?~©øÚ×¾öÌ3ϼüòË\ì·¾õ­ƒÈðx™ øÄO|ýë__\\€qûŽ} Ǿ„c_Ò4eÅê¹ jUñ¹Ï}N•Qqór8îi@@"v»Ýk¯½öî»ïn·ÛÜehviRÆÌÌ̾ð…£GÞ{ï½ïz×»–––¤Ìò H)CǬ²}âŸ`évi¢- €.Ù¸ïíÚµëÖ[oÕZnk«T*>ú(‹¶o¼q÷îÝÌ)­­íäÉ“÷Üsð—]ŸÓjÞyg`€"'ͯMêÖcK›Hâ„KJ!“è×&TdlIöî’ ƒ ÊB†äëàaNè¤ôe±pK=J Mbk E—]øi.»bþgõmD­MkÍ¢ËaN³Ùä0Iæ—Pk“vHÓtøM``V[4zÀ#åÀez“ÙÐMïÏå!†Îå]r»7 ¢€²Fà(-ÝœÁ\Qeù&™ óQN™n.µ±»Ù¤`ošÙ²uþ­SSÓ­îbšvI2N®Ö&C¬âjuzºº°0û–zí GÕêgçanËYê¾9íµˆôÀ %m€ce:®mš™{ AµÕ¥¨¶©Z«(J)](Ò™8gžïGzšÂ­µg@êWùóå{î‚[÷|2§k2Ãp¦0†¨QilI¢ù mÝëe¶5°Áüï÷ û¹g# Ýj7Iu6ÖuÁ‚Æ”‰¡`‚µ6æ`¬«Q·Þ]ª,oqÄùVz¶UoÑVo"HÌ–ø &[´IÀ\„¨ º¶Ø¬-5õâRz®ÅÑÆžî"l$ìi%ÅL¶h“ªõå[DTíöæÚÝÚési7E…1h´ó?îÎw«¸奜¶¢LӴѨïÛ·ïàÁg˜F™Ó’ÑØ&K´Ùd‹€Øë%̼ë>ý‡üYÒ$-çv¡ m’žÙB*þP%F¥;Ó5õáß=7ƒÓu¨U Béó S—Émv<*v­)éQ³CK-xùµ³W¦±ÂX)m„ ZS¬|XŸ, Ù¹sçõ×_Ïž¾ˆ®?á$‹6)LkU­V_yå•C‡½ûšk.¿üòv»…ȉË$ÚòíFjjªñ쳇O?våÕ7lœ©¡J£H æKÕd‹6ë#ßœ’Òµ;úß^|¬“p²ˆâÿ©ëí°¾pXŸ,åݳgÏ<_ïVÑ&ÙK€÷KaÑÆKšo¹åY¦PRÑ&ëïü­=õÔ÷Ýÿ¥m—mÓºÖ÷…Ê2 U )²,õV³ùÕÇþ¾›p2@“q=HÀTà®w+‰h&W¿Ñh$IÂÌv»Í!Ó[NÑÆ²žE[§ËÍ@ü¡T']ŠÐTt²µ6›†úò-Žu§“t»©&Pë ñÿ±w¨ƒ0Mãöþ7®û¿H@ º,¥[š÷Ž0‘tœ:wR!`këÆX“"lk“ŠfÙ4½¶´§½N ¦6“§ŒoUMì-› r&ÌÕxÉôrV`¬;IC›—íqþ0TZr5ÙVºÈ^™¨Õ­aX†£â„òÂÓ¿åé^*œ Òµ¤³ ÁátC¬†fÃuã^øFij>¯ÑÃiÌKд¶ã8¤€d&‚½ ±]‹Ët“<À™Ôa «°…!EÇwK‚ôi3J0ê ò$Ö66Âzvã“-s=6666ƒ¸¿€à—3„0áC‹ét'ÊIePw!­°~ø©˜ý £én )%Pq?òÅ-ðΓë5·K#FèÕ¬t|tp¡¿ÌR‚Ÿ¶6¦6¦6¦¶ aj{³wõ¨A4É·[+½ƒž@Oag弄u +/`çQ,lü!óÿÈ‚ îç|hÄ@v^!낳ÀaÞdÅum© >lÄñ*&ùÉ&á§­Ÿ ϳ¶™æˆC‰ 7óÑ B¼n­Õ¾$édP BwlÞÿf}·ÕA°CÄ<\Š’m_f£Â«|õ°éŒ/¹ |{Nü¥W± ÂËX(n !°¸˜UÔVç«“D „]ŸX“çÓ=uagô)Žã vÆqÄ¢ë:Ä¤Õ ñ¤5 uÓñ5A½µ iM@„TÖ#DÙ–e¡Ž=S¯Á`(+%Û¶‹¢¨ª ÿ¡"—]Ô&[•a°HÓ&Rèß$jS1Áé}ß !£6lŠHH+%×uÃ0„=ˆiw×&×èVêºnš&Ïóи!¦IÔ¦(´^–%^Ϧ6¾!e‚ã+ct`Ÿ8Žó„t$w¦nŽx½-–¶þOž§}þ枥íõI!Ü­V Z´ú“dHeHeH‘!•!•!ÕùÃR=¹Î2¤ÛÊ ©/™!MùµeYæF{ÁAÁvLæ;Ô=ÝS^'÷Ÿ—}E,ySc'ŒZ¾ _²GDz ÷íºÙæ¼^[ÃúB,…q¢OÙä¶u«ð’œÚ À © Õ.\#¸Fð® À© @iPÚÚÉ[ÄΈe?†Èfì®&¿mIJ=ÙêßhßNß1Æ):ãÍ®™yö[¨rü]°'[¸FPÚ”6­(µ¢ÔŠR+J­(”6ñxñxñxñx§6¥ p C*C*C*C:¹ÌÚ“oUõÁÞÙã8ÄP8»G‚3ÐDÊh8 BÔœ%· K•k* BŸÝ§ÉBÌ6 »¤À_aYÎÄB/oÈXü7‚ ðôÞý~ç7*pbâД>eqä>ÜÍD^6ì6ª ;3\äÄö†ÜÁîókÅ~ÌoŒòÑõŒrûj,ˆyåÍÛfHe†TfHe†t½^#Dõ*¦DÇqMQ- s¡qH p¶^ÍáÚA,¤§,Ë¢(š¦A>ѵ¹®{>ŸQ9°-u]£ç]UU¥µæ5ÌsÒ&Ó¦þ2 ÓPŸÍfSü°úSÒ4]-h:Äqni“#»rdWŽìbÇÔuÝ~¿O’k¢kÛí6ÏóÓé”eY‹umJ©¶mã8†ºÍ-mâÚĵ‰kƒ `éû~EHX_“¶ÛíFD‡ÃÒ†án·C…mËB¤Íü‘‚ߌËåâyêï‘6A®×+"ìÛôgmD„>¨h­û¾WJ-е™û`[6 ¾Ù»£U…a ÃUÏû¿±z  ®t4b.Úï¿ ±Ûv™Ž»ÌP 45óË£­_Mìjé1¶Ë 7F+`´ÚÙË" u, ËÊĸåÍép#p#¸t´ÒÑ ôFG8Út´âFÐÑJG+ðòjû¢í‹¬MÖY[@Öd©‚TAº¤ k£RH)¤ÒúiÅ& mloÃõ/}ÙO‹ö?8:òƒxËCÚá!íñbÖ{j"/û•TÂeCÔœ¥mW6ÞãxH¤ R©—?@!¥RH)¤²6YdmY°Ç€£ €£ d2Œ@F #€Œ02üE™¿våÙ˜¿©xâõuÖÖ OÏ¿íñõîò™£ñò¾ÂŠm0v§9øyn TÝc+ÖYsŸf^=ÏêŒîöÌì‚ÔÑöϾի*Äà]¯ >€`#‚pÕNKŸÂWð§Pl}[äê­kKÀFŸÂÖë/jáßÝýØ,á03'+²Ýœ¯9™Lœd’9NPBö(ÙìeÕkUí…‚•ç3DjÊ(§%ý 0<Ùd5§5Eº ú(»Æ£F;F‰^Jút@áu÷™7®ðù|Â…Tªí7‹Áÿ:&þÍzp;œÃb-Î ®OP£)Á`Ðï÷ƒ^¦ÃÑP(J€M b#à8è³G´o·Ûñxü²«Õê|>ŸN'Dq¸^¯®×ë/‹q¿ß”èápØívÖÆ3a»Ýn6>³ ¿ÙlV¯×+•JµZ-—Ë•WQ«ÕÆ|>‡åv» ›ÀfÅ& €pŽ·Z-l‡~òé jHâñxœJ¥²Ù컕ÈårÉdD@šÍf"‘€„†¬ H<ŸL&8׊Åb:Îd2ïvA( x¢^~ü ±Xl¹\öz½áp8 ˆ¾†ÏÏÏN§ƒ·o4N§Ýn’MþA¿ßFo$‘zm8ùè+n©TÚï÷ÎK²Ü\P4ue–+·nÁ¸nJî&óät’jLqw@#o]¡S 1Ím…F”GÑã¡Q"ÏU„ú¾0C<Ý¿PÉBwFX¤ – »Ã“B9ñÜ|wª)6:Ëå’Ïç…Õ"yp- jq(®½Ðk#iÉ; 6ôÚô¬FB†Ã´#ÆÃhP˜æ¤ŒoxTWVäO×M±?*’ç§‚š°ZÅ)fd; 1uctSF‰ÄÜjJöE—q”y¹:„œ7Žºm°B9ǘÊ;%©°­Ê9æ3¾dp'Å»ôê< Fˆ ?[¡ÂsvÿRÄTý‰ÒïvË B ‚ËüÿÉÊî-,)ºÀ«t$’žDZpýµMð¯€J¯äzÔd×jLŽñöÒ¸D h:2!7â‘¥BÆz™L·OÌc*H&‘i“‰›Ç'»§•}ÓÁß§[%ˆ›åØå_Çf © ºÇdÞËø©1Îçu”RÊù¾ŽRJùÈ¿4îÉÁÃõIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qimage-scaling.png0000644000076500000240000010374112536324506022325 0ustar philstaff00000000000000‰PNG  IHDR0z.Ïþ‡¨IDATx^ìÓ1 0Aÿÿç )$`sý´’±VÀ‰ðâž2M–åhùsÝÅð‹Å¢üœËžë0ÃPðÿ?œÄ­A±pºt0T¨Xwƒõtx2‘j†t‚yž}ßw]×4MÃ0†a`6 CÔÀ¶m4ÍÏ¡„p£ š¦ÆT~Ó u]çy^E–eÓ41;Žcš¦eYŠB û¾ïºŽ=/tû°¨£(²,Ëq”»ª*nkÛ¡çy¢PÂ$Iâ8æù—4੎ǧÓi!“SÐî )Ï'D!ð/à÷÷’’í@N‡ƒkYæÕ g¿Ø/{„a( +Úªs‘…€øýy†.©Kq-y€|¹‚¯‘±—Õ’ÚjñçŽ;A°MSÿVY^8ç( pÞ8BßßPÔõRÊK’BÂί¯*B¤”"„ÅɳÛíÛöxÞZˆ3De­GØuÏ/{gÕqÅñeíõš]{ר Ìá(rEœÉ@T*j·J*š—P‚*‘ÒD­«>D@_¢>!E*5JñT9}¨•‡¨©R ’ö”^P!„H¥F`{½önbŒÓßîánnw÷^ìâµ÷èjÿwîܹ3gî™ó1½:44´wï^2™ÌTÑ–ú†"òõƒɂ榦XW½U»$?7‡-þ6 L~áY¦æ5hEB!­”’]jD;ÈHoPÕaã9tÛ0C†ÚÚÚÞyç/==;Г°½g2™‰‰ ø /üLê ¨Xoh2Ÿÿ܆¤úPPªQQÕ»zÖQ!· ŽŸ€ª€V1(ñææÄ™3gwíê•÷ "æ2)‘bk”h1~eÁH*C°sç®-[¶(‡¢5È9G˜‰¥AÔÙˆó¨2` T "ƒƒÄ«„=FhåQ ät§ “µªeO@ë›QÅe%S—i O>|x`à—ýýߨ?j$Œ„÷¢¯¯/kôb§üpíÚ§(©TJ}Q6ZÌÚ „¤<Èp«<œ€¦N’R wP•UH Ä{ðÁ߉¸¨¶¤öê;v¤£cëÑ£¿Êd&e¹€j¤±©»w?þÂ*~•nŒuÅöIÞIåm쀫ƒ°Bœ>}úúõë‘HÃ}¾u̪<ðŒ-˜wïÞ94ô§––G ÓrH¤%5¨„T® ü²*“Ξ}ÿ“Oþ.Ωë6]¬H »6Ty†Õªr ¥À4ZO‹©ÄòŠ™&%/@èÿº¢ C%@Ï ŒÍØ2æ})ãYç‚”Ñt€"_{íwW¯^džíyMK€®PhY½&0™ju*]ºtidd„ñË+ÃщuÅ7©j$=¢è­·‘ñø\™#˶ñV”øe›»ŽJI…@ Å­˜á^»‹X¢ Píë긠0%ÕÄáG£”zHCr¯>@ ø%ÕöKõÿ Ô·ImFAã Ûƒïë4Õ’áºk)r5^ûG[Õ ¬ÄLËçs/¿|üá‡;»ººÄ‹«bSOÐL ¢¤³B‡Ku{« Axß(I¾_Sš)iU€E)2ßßÿ] j°o;/”É=A%Žzà^Q8ݳR½J@KN¼”™¤Õ6ª½ñÆë5<ûìApË–Á\ƒ]9Ûøjàž¢írŽ@&bðtÆŽ)ŸKº‰˜Šx±…k­•Ï»H³xŠñKÑÊy©*(h# eäݵ ô¹~eF[[ë™3ïoÞœž™™^,R`§û±³ã„ooß„íÎâ†ïIQ)% ê½vn ²Iãâ‚/­ˆc)¿XNøYǘT£Å.ø>$OÛ”8Šä°«|>?66™Ëå`µH¤>™l"Z:©ƒŠ5a[Ui–5žd2ªâ,­†¤j$â!(8TÉ>$QŸûû¿Ï®zD㔬’ǪÐóéeA­A*$µÒ”F©•”«´Ì†ò`’ôì÷á‡ÿÏLNN’·CiGð^£Åéòn’‘u¹Fü¾¦ÝúV ØBìCÒ28á™#2Övé©Ö”%U2h‘Ú]Ü1&aß˶ñ‹¬!ÉE fr!U;ËF>Åã^2è&3ùd2ÉDãX›<Ò€Z@'²¢ÊšÒï¾Ö sÃe?w¢ûì‹-HMgŸ3°[öð“3ëb2úÖ•5ð1;wîÜÁƒ?F$ ÇØ"法ñQyù-ìÖùéŸ+U[N©Ñ±öÔ ' ôõí=räØ+¯ü†Ø0Ù{kIltc¥‰4“™.Û˜G,csF±üL$š’ɸÃJu°Œuq­  V)ïjw)ù[êª 8þŸx û°#¹Ú&<`çBç®k*¹ö–i\ìW- „£i¤iÙ6~5$«…©nË%RA&54DȨ؉DÀêÈ0±9‘Œ(¿P€™Ì<„ø‰Å†îÉÛØ)8åå¨ n炤~1žÈ#¨ÄØ[ Dý\ª˜S†rï'Ÿ ŠMÄÖãr¥«¦IMe5¤{þÃ$z©º£ú¬Z®m ºÐ ‰U×V‹ÉŽwgdÐ2ß|óõçŸÿiww·œ˜@CB~”Hø‡²‰D,™ŒÝ¹Ó†[Ô1>øVtè¼Ëù´b|Hd ëÅ1欅4.\¸°}û·:::(éw©Kªaf,\)eæU~ÓávÖ˜‰£ ‰Çÿw@)è¥G3–%ªÐ‚JÊ—–(»ß§ÓéýûD”»</x@ )TŽtN Ñ \ß$ðŠgŒfYu"Z\ˆ"ž"°¹¹‰}]¬˜Š‡•…1–À¬íí),dbf&ŸÍNs#8’aÆ£ãñغu L”ÄÒ’Í29~BÀPwñhÚÀ‰~×Í —i€À›žžáÜ\uYÇbÑD¢ †©ªt¤ÓÛÒ+à@"½#=©¢_»ryïV ©zDØ7ûvìèA ‰(@UºŽ±¤ý©z —²øI§7nØÐÊã´ÀgŸÝÏÂB\Êþ®Í’ñ5®©²ÇîóÒ¡°2Ÿ~zŸ„}û?]Pþ%,¢Ù£1dªÚh#ÁçIlçÛˆ(µ+ÈTrìW²Ê‰àààû~p: ê{he‘·ÉÎ5rV3°v-%a&„ßõë“--qYZ~üñÕtºý‘G¶64Ô!{nܽ|ùßè·mÛœNw ð<}þùM>éôרJÈ•ÑÑq$âÆ‹3geŽO 6mZdBÂá¾É´´457ÇÑ´#ñx”bh,{Q¢8ð”{)CR©$væ7ŽŒL Æ6nL!–xº§@+i²ÓÐdÞ4…¾µ55=í:7Ȭ(†M.þ¥‘º¥,…´æª…}«ÝÕ—ÉNîå'ü–ƒU<¿¿Ä‚ÂW®|z󿨓O>ëÊáÀ‹¯ÀMMq€b%ºg"#\J­Ô­îIÉs—Ö"¤„ž>+íäv-¬îÕ.m’>ÝeÊWаh©¸vÙÖªí÷e²ðÝwÿ:;{‡sƒ¨§²SÊ,Ñ`H÷ƒsi˜¾Ba](³ XA[óJ ĝзY´}Hÿeï<€óº®;¯ï Ö^ÀÞÖ^$RU-Y¢š½±¥Œ%K²Y{².q²™ÈN,ËŽ{âÍÆ²gm9ñzfg×%ÛqKѨØÌ¬l5’*¤Ø)R¤ØÁ"A‚Øß;~‡ï ð„$‡w>>>Üwß}÷½{Ï=µ¸ˆÃ™hfWd5Z±øŸ»v0 ÷ܹSèØž9sÒ°aƒwî$ÊXø›™3«Á+`hÒ={Lš4IýСSŸ~z ¸ Ãq¢;|ܸª_ÜH¾üôéçΊpíÚ­Û·ïÂŒÄsìXÝìÙÕ#Gݰáµ5k¶Ð즛WWCM}ìœÓÉ]»jyú°açÍ›•·|ù*ƶté¼±cG¬\¹~×®}&!dáºüšâÇöŠª%âõräÈ1ÉsƒÉcÜ)¤´h<•s‚FjdãNa =¬€†£sÎþö5$æ$.ùç?ÿ9FÆ$òls3‸cÍ:$“¢JÅ`™]s’­ñM;lâçNœÁÔ}î=û´Fc?ߊ9¦×*iì °¿”-b =%¶·’§2ÝÜC/ëFúÉ­µìádîܹ̈“©QCkvùLE.g·`Ç!Ë£Ai6Ù>ÿãÁ9Ðÿ|»5x½ ñy­·öà›.RpUÍ(@é ØB„+_Àóþý&R T9RÿüókIfq啳¯ºj>Ò³ f¬XñÊc=sÛmK§OŸÌ Ã^± ¥D¢UÙ,^ziã„ £YaÕÕcéjß¾ƒô¦NO`s®îܹ¹¡åîݵøB™õ…ºº7Èšœ9s2Ú©çŸÏ°{ùåÞ·Üreuõ˜w€·Ð\iÇ “QNI?½GXð$Äfbˆ‘sÜÉB¤e/ÛbïÞM.õ(Á¿µEöƒ ^¹ò…éÓ§Š ,WÕ™¦ÉKÚ¢6QkOjH‰›˜c ßÐ¥ˆò-Ï:”îJÜ0¥‰¢½’q,$AÑíBKÎT©ÚÚ_¯Xc5÷[¢‹…îfn7äƒT òv ¦åÿjéDÕwÞ5sæŒN:,·±€ÝxG Cñ‘‹z“úÔ©ŒšSø$š¾¼iþTP ¨96åðº€ýí?óÇ?þ {2¢ßVGã 58]ãpÝâ,H&S§?’Eî”ÍÂÑ£Ç>„µ…€Ž„Cü æÐÒbmÍ5Wh„8…ÝÙ±c/ðG¥ötÐÀ†°®ÿÞ#F ÁÅ2•ß2½m4=jj&¬Zµ¤µxñlÍjÞ¶m7*+¥Á=uḛ̂aH [R®w?êQƒ4¤€[¶lÙŸþéýwÜq'nÒÜF+2×€Ã` <´¾þ ¸=ÛãmfÓŧèß¿1-+¢Vƒû­ Ò Wç:¾-*)…hÁÕ¡ZlÝ ‚“îŒÙ÷³Ï>ӷ'²BÔy$ØýÜv1¡‰¼ðÙ1Óõ@‘]¸V8…‡ó§.ñFšGa]2›òÓ #8z¾„"; i¹è¯d•Ó Ò!H+'`4¥–›À]œŠéq ¥… hóÉ8ˆ"•­|­‚E+ýG!~yÉ¡ƒi_ñýïÿC¿~½l°<³ï÷¿ÿ¾šš©<ð í¡ÅÔ¨_Ê\jüÀ52yýØ ø™œAŸ‹Î3CeVz²ÉدJØl ñÕ¼$¾"o›JÁ³9yrµ²õ jºyHNj_D£†T‡DIEvvEvM¹i–7M\«„ +@ˆOhPƒ*H¶y.¡´YVä@D¥Ã0!Ü–† éïyH“õ÷áA²Gײwí` J“ÃHKtH¬WÀTd#ì BA–„ìü"§?Ûeö l¬\¹òàAD‹ú8ja’š&©ŽDô1BmpŠ"Ž–)W©Y.É:£-?–VO@¥oziÊ>EæÏcPuÒìûöÛ—E³o 5ˆ(èjQ‰(ˆM¦â2‚Q+–ÕK·ªòsb †Tž}ú0ø‡åŸnÔöÁ-H­±ÙÁ”†sF"(5“4JB]q!ØÝjøÑ^\šµgS¦4¸úŠ~øqÕH:7}AçœÐÀîjà. Ñ7gœ ˆ½Ûú×3‹1©¿‹…ÝN¾“fß«V­ä)öîg£;jØgò8C7:Ús"Øq>I¯Ã Ë¥a²–7@t Ħ8Ô‹¢PK]Y˜åÓVº¨=ßY;i—È®ë;E+y´o—ÅëÞȧN niÍITP;Fe¼Åj Ï<³iú¤%KæÀâ·ÆŽ[\…´mß¾C°PZ”¦Â9ÿd~$=a¡@˜ê¢"+&Oo äÏ ¶™^†)EG«¶.5ûæÄI½ŒR®ªTU5X$qÑÈpC&!îMVÌ ¡”:( Íò&ÇQ•˜%ga;á2zè ýèG.\ȜҲ ‰~ ëãŒD—_±^¯“Ôè ꇹ<¸/?ˆÃ@— V¨©7jÔPÓUÀ ,Hø~ÓÿXºÕÕ£Á Ì,—pÑCž MÖÔ4„JúÄí‰EK' °¡CÀ;ÉúßìK³€¹%+Æ¢¬vF^¤^Ñw0äág=gDÐAW’ðãé0à27å˾‰§`4Yß•ÅUªGM 03íÈ¢ „ËêŸ|òÉùóçNžÂ©‚IJ3ù˜8ºCY´ûèžÁe­Ø%˜O#‡ÕþÒ—š8qÒ}÷½ßr°»Ë}WÑ—Œ^ÿú¯Û;#g yfòê¨3Œ%4GþN•~ ÿ+å¤(ð¶`ÁÔI“ÆÔÖyæ™—¡ 1ˆPoÜ…>Ķ €ñ˜1#¦L€ 8 [> ;ˆŽ°5:F|õÕ(åAò,hp8$Ìód1y‘̾©ÓkJÍîÃ8!N1ÄÌGo °`Uˆ¦ ݳÿÅyòÿ;jgì=¼¹aëRÇ—;Ož|ãïþî[×]w-©lº’UŒŒSÍv >à¹âÛ"¬ì¦1'Ž*A"ÁÕÓ¦ahScº¢„UUÃÀ=/¾¸# y@®„S§ÁîÝ@gÎô3™9è™ F²Ô®ÃLÚ˜4i4#çêöí{wïÞo,B?žj¦§YÞ45jR„Í›wP9aÂ(ðbcãHZºÖmóæ×Á:œÐCÜ‚Áêþý‡P¾¢dEY;thýÖ­»öí;@YxJ\¬·K;÷wïŽÑ¾Ë˜±€íPTçåL£xS m:bÄ`§"™ýïÈSÀî*'¥{b·…„èòXvÌÔ÷¾÷]̾ï÷þ³ÔÝã¾–z­ukÆØÔðIl¯ x}ܱ8ýwR&û:jIé.É1 õÚk¯]Y[{øñÇŸ©¯?œM‚—Ë!”àê?ýÓï~÷cÆT-ZÔ÷ÃÂ…Dݱct%°ËùZ—ãÆÞ¶m“!C‰-ƒð4‰NÉÙûn4©àˆ+Võï? ®.³éŠB?Ž-Á“±õ¬]»oáÂéì#qêÅÙêÕ›Qg`¸Á[DK-Ÿx'œ†î×»8=H Z[õ›éæÊˆ!ò£ê|\mÞ÷®»îª©©±æ.$t³l _£ùY9¯šistçÍ­·^­–ðm‹ÍÀ?éßÿ}kŒÙœ2%31g§Æ”‰†‚…Ú±c¤ÒìÙS4;Ó¦M`Åò£sØ#¨¥Y³ª‡¸eËëË—¯4µGN®¹f´«”5üòË›@BFšä1oÞT(*þ|õÕ×7mÚÁ†ñ¥Ñ4Ý•YÈ ~@W0póæMz££•Èñ¶Û®Œã^lMaÅÌS@púúè‰ GŽH”ZÙ¹ØÜêC>(7¨‹cÇN:t„߂ӑ‹H¶ ýù¤«WoÂu ¶ì 4šKÑç·h¥ýb´ÈU·¶,ÝP"òîI×®Dr²” [±®tŠu®#– §hÉh¶+ý"‹í‹5¸Ô4jT¤ÔÏç)úµ©RÅU²ªÔÊ!Ñæškæƒ98z¡'ï£ÔÔX ޻喫‘0ûÛ?f/07Ø"¶8Øçôy žÛA´ÇôœNL ?NÅnçíöæC’‘ñ¬Y³xÄPÞÄ¿ìŒ¡ÝØ&0 Ä\d)Ñå¡CÇ'h•&‘Ôê’*Š«Óã”çZÆ?½ŸTMC•dß9Ì×ÄÆP„þgz»ŽzPIJI‡bÙ~H5#?øÁ?°;£øÍ£P(%Nt.wKQ݇‰« ¤=5ú8,HÎc=ÍNåé§_&z eƒ;qâèåËWÔ×£: ‹rŸIÁYÕ;wîç…WÀ™³na©Óí¾}õ7n…ƒ¡+8 Ù5$š¹Oœ˜5k6ØHö~¼Œ3ñ@ǯŽ]˜åu+šWð äáP014¸eëÖ×ñ„@ÅÅ7Á骪j_nÚô:dÃ6”“‡z‡ˆA)ÃÉqFMÍÄŒDVˆ‰È.>:†øRPYyô@n¹e˾6羟ˆcà+Úù˜\bÒ%]AOŠiÐ µQ¬¸9ˆù•Bk°åäí#­  s©rÓ‡*Sœ9¨xŸ±²á9QQl$p›ê˜šTd§_×û!åð$p(+X!è$€4àuƒîÑg‹zÂ/ YðN¨ä‡Äæž:Ö¦¸’ø: ÎUŒå¨÷œf «9sjæÌ™©‰'“`ž×–¤+¤pQ7n§ˆAn|ç;¯Bʇx½ªj éøñSÀ¡¯¹2ü¼bktÛñD…îÁ–äýZ!9x´ç(ŒÅÏÁ&jFô”`å’óÍTqHŽ5b‡¹ÀµMŽ?¼x'¹[ÂàœD—ÏÜHR˜O38xQ] sÃ|4À¬]»¾ºzbg̾0>9ýŸ[ SÒ¸9óhÙàQNVgDDϽC¢™üèG?©¬ì…‰o ÁÙç}:ôEp &g⟎„¡#G݆XÃ݉gºþE¶+¦ˆ§Š³V€Pù@HcÆ —‰R9vì `–²J=z8¾«@#PafâD Dp¡%”"€ 5Ï{ß{3ÄàÞ½‘Bð'^qÅlä!½™Pbø‡?ünÁ$ËÑàí$4#›‚l^yåÕ3&ÌÄ €Êà÷ì9Ä%˜'M?½ixëvá!:9xðàµ×^ûÙÏ>ø®wý'7ûöí^sê~‘ÂI‰¶)z±ºÀO.—¿è‚Nq$ £K.œ¨z  ¸™€,"?ŠnÔš£Â!ÜP¾½´`x¡[ Ð 'Üà’¸dg\EŒ¿‚ ]½{÷)Ã,ÐoA ?hа©S§B6¹ÊÓMç9Ñ£3͹[o¦K°,Wx*ŲÄÛAÐ:=zœF)èr7õ–R“õ fR à`,õF†fPYEæ’6¥š•D&…– Kóétm¬Œ³Õ'€xúÀ0m òôé~´%r¥%CE¸—óáå'¥l‚*þþïÿ=‹ûìæÀ¿ç=¿3uꌿú«//¼ˆ`MGÍŽèïh*ó€pà®¶ƒ˜¸}E-mé ßh#Ž0åf„žr^3žzÐP=Ù¶Cwö§ "þÐiÔ;Þ±„Jɰ)ç¹L€´ÉQŒ°b—ù!¹uݺu˜£K†‘Ƈö­0‚Œ3©î.¡' #í@¡TÆ+à(,]5vuv÷/ÂNÏk¬ID~oËéc‰&‚ñqTjð9¡‚‘rÒé«…«?q ­"^‰ñA¼ˆ¥É”»1†^òñ8Ö‰@çÈ5 Þ¥~H-ã7±Duu¨( Í\gþŽ 2îõ×÷Á¾ðÉM-™! ‹ås†y‚}ÁÊ ˆBhæ „Ú°,0Là-LÎvìØ/,5ztÕøñc¸»#s‚ë‰h{4Àˆè„»¿)š8˙ɖ-8äö­©éP…IH3†7bÄ0lo0fÝX^,» ʈÏß=CDÚäТÐa£93Š8*y86Y½°ŽB ¡JXjEÛS­wïÌ£ ñ&r~B9ÌQ0†ûHò4G°çÞ¹b“Év_X¶(ç’çf쟟FÛ‚+bš‘/çþûÿÛ§>õG‹/æÑ<¢ƒ±ì´>+£ý¤@(Š,¢Â6Yçm…ýä…Ôñubàž¥1¤¶dúnؼ8pPôz ÓDžqÄ×  ²pC*CöX Ì˜5f‡ˆ$z/f„´ä˼«NŒRìË-uu‘¯1Nڰʨd é² ê¦Ÿþô'‹_ŽÃ2ê)ÔKŠÒÒ8Îäœzs1ÉóùçZR÷z¶:5 ¨ADj)¤"ÀTo4T?´Ü̇Y³êj•¬?õÌÑK"Ö;ÒOA© Õ§X¥ˆØ¼+~\ÿüç?‡Ù÷½÷¾Ÿ-X2†DnŸc.cX¿ËôA€lBr çj©{»y^@€™§‹ËNCnÀê™ñ™¼P‘)òéñ܉v%Í™€Ã!mš±%¼”£ÑPT~¾õ«Yeeö''¾àôeœBrª¢ïûßÿÞwÞBê„Ùwö)r«—âl\Î0•-¸@¬Å’’±^âTçô‘Rˆ8~îÃv¼¦f¼R\®[·•xZ—N›69Æ/ÍõÉõë_³0öý-4þ°×^Û Š‚€ãœIa$`Ì ”!ÁfaDô¹ví ð&N,éD½a¤ç™ySÏ|ÒÆßÿýá ŸÿìgË7ûì I§[гbª2‹$‡sQvš–æ{<çºk2[üZ’0 Ѹ}¯ôOv‹g¨ÉrˆJ£¡H1et¤¥ˆEQrì„¢*+ù‰,zX)Q–­ä„ :×{ L(" ›ô\½,7•Ê3'ôÖ¿üË/-ºâî»ï5mE½yÿúžBl‚>ýÄ; £r¥<[‰)£Di~Õx²{m‹v•’SçÅêM—ÐEÙQ¢lÔe/²¨N„¡j™KW! ~¬TÓ˜:Op^ˆaG}FÃà ˜·mÛ…‰ZUÕp3ž Àù¾}‡iŒˆx“G3áâN•”ô7m¿ÈŽ"³o”ðä'%Ú·@Ý÷Y±>Q[¨’*w5ûŽ,•<‚~0‚lÞ/øF/¸!ž>ÀèÅ­ò'z•Hæ¬çŠZDƒ'-Á&(+ÌFWz5©‹iÃ0øi$Cl…],‘]_®2BÉÊÜ…Ç # Ò±þ¨›Lûaä¥ðe„¢ „Ÿ5k&ã`±OMì¢INJŒyIA+Â^¼7}*¢KB'hkƒ¢š2e<_K¹'žxւПD'êJ”/n4C8`Â?Êg}-Ÿ~ý(f 6&<ìBRµŠ”v;xL{ 2Ë\.èS‰EÖ°n#èå,çì¶ô¬—ê¨ÈNåñÇŸ`I=z˜g%";ZFSææš æ P«m³tZT”Åj03«Œ¾rBŠ1èè E¢I0æB à¢GVŠT› ¦'šŒÇÉ‚N¢MìÓ‡'²È· éStJŽ´ûG‰ŸŸòZ!”2˃J¤yÁ¿ ¬GLµÉ¨êéAâ+¢Dõšžø˜C†X˜t7Q0,a8'Ñ<Ρ¨vûÙ‘bŸKˆœâZ´qEv©RÊ"uã#ÈUz"HmD®ƒu½wh+s¡¥åÈ&$ ¥ë®[„4H3±þY¤y³" §’\P¢”&®Ý˜ó?ê9Û)²·7iÒ$V4G45q Ò‹äÕU5H £Àרdý,»‚è5Ì:Ö=AÐÙ}èÐ'÷@Ôƒðš¼/š Óº}Dç†]Þ0$w‚wO³@J*b†0“™d¿ÓiŒ`d¤y¸…Jƒ·JcÅ €ÄôiŸ>\‹£°Ò'«™9V$jèDY…DµEÍ–‹â—µØ³ïoû;¤©¯?£}{¸Û0b[àÄTϬ9G•Úññ/室“Ð¥DFÏ(0åüùÓàøb½zak`w6”L0¼¸”9~ {hƒú–Í%Ç6CFÜ`qÓaÛE!4lØÁæè" „v(,zðuzÆgOt¢£Û˜%9³³s<º:iöMr?V&0¢ú4VtJðEhÇqm0Í´ LÏQW²‹¤¾N÷ŠÓbCð'ƒ8ENXäÐ[L${PV ÝT0éqnRjo̲,¦Æ ¸R` D5h0 ¢Û0tÈÂ.ÃI˜_ýj%¶$x€áËÌtˆ[ @U(¢Bõʃ@¸h)=TòR¾*ÄöY®Œ¤±|]@!ü@Ê$&oê: L Ùkû÷áÜdòh¸C¥´€Ö@R“zÖc üØ~ô#Ï‘? àÏQbyú¤g—ÚÉ’ º³¢â •JmÊ"äO8È úЕfŒÖòÞAòÄžÀ£ÅÙ9„Ú»G >®––§¥k ªó %t)±ø×¾JíGÅ V2¼ˆ3,¬r¯#†TX+0‹‚IÏÕï;jÔ ®\IeÊÜx|Rwp%P‡cu;ÌÈå—_þÅ/~é½ï½…¼ç1 ¨.z½é¿4¶tvTöwèe’ÂÂÒ¿±Õ € kšõá3‡Ý<@ÂÞ6r&‘ÜV…˜3² …¯*¦LËεk×~Ú¡žà/:65Ö%ÒXÈ7½ƒ•JZEp!Òžõë·ñt@)݆„˜P xÃHˆdóLšz”mˆåYè? I+ª¥åþÚ†$à6sÍá´däjÖ!£ %~þóŸUUš={eòäò%ºˆ_ZºP¸š]²ès²IùZiÔò¸ÏUÐ\RÉidA¡x‚v3ßÊG"!2½“b+€æÙ×Èþ…˜šÆL1;µòv¾ÕÊ]É4CÒžfÌÓ¸q#éY!ø®¼rC†.±èÃý™¬d=á²8·ÀŽéíû«_}Û<)/9–‘ ïŽ;nŸ9sößüÍß/ /M+§]²Bq¨QiÓG[?wÖÉòVƒˆù$@ˆúZ¬±`Œ*®|Ü ´QE³ðz>z´û^P;Œ‚ k4ðL õ€›T¤&EGÆ1©Løcôèa&hB*kQÏÈÛ}!(ÓN.fùóµ×ö0³®‚P€/…14î9n\õÜB,– ôÒ?±Ö¡OJL™†ˆe÷î“Â…Â7œ› L_Fa¥X±„±Æ2™Øf özëÖÝ⌥x)ãORbðîtŒM9$Ý7(ê!Uéw¹e»+å€vÊ4âÏÇbz`7w–¥Š$§¢$Ð]mÄ'U¥ão5l?‡ÄªÝ±c $wFóÁ·æ‹À/­u=!>ŒÈÄ ^Ýݘ-–ˆÈ(0"Ä›º´Ž_Èa ¥ÝŸf2¸Z'mRE1àƵlÚ´ý¹çÖš´­qûöÝ×_¿È2_ôͬZµ(µAŠ@—x”5ä$ß´ª“Ü`ŸT*z£¹õ©©+›fBºQ&»õÖ<R”4ÁôÆU)-„lÒ¬©²‘ëœÙ÷™}èƒDû^²äJ¾$ÃN{DKFÂfo’)‡ìlåí†`/ žD¼£ë¤ù3$4Rnþ&]Õ¹®FI*¤>zb^˜æQ¡ë™Á{îy'Ÿ Ìä.½ê–Ta<ƒ: (DÒÄÔˆû˜qù‰Ë ŠÛÜíÝ[ ¢‚Gаÿ¦{öìæ‹Q¿lÙ5P¾Œ*„‰xýõZ:gÍä,ÒJ';·mÛ6lت›ÆIK‚øQí›U}Isÿ3rQÙüÂ&º‚…ÆJŽ+„Kà â0AÚnÚôÜSC$L Œ6nJ€± 0E'Ð|̋߄余/Ö°3[¨qÇ„IbZyA‰¯MûG¸ :§WbLq”»X"=!‰JÃH1€‹ùe<°eŠÍa>3z£{Ë(Hô…ˆJ9´ ` ‰Ù€NHÒ]]=Þ%«ÜáR(Hrn%Ë-Ÿ:u”"Íä4¬.MS0~€Ï5ó kxºLõ(œ¸`Éá7 Ù7¿. ®Èyç±o‡ó[˪" Ä¢§Hj˜˜rHQ<è•Ιv#!„¦³„ -†‹ ¡?ÿÅ/~qï½÷‚ôyËðCRìµ Î/3fĉP¸ÎÓ0Zù«‰ÿëPƒ‰^JŽAгµµG¹ÚF\c¶‹à쌽CQg¤k%21ºu÷Uf„-¹MŸ>¨ôŽ¿øâ&52—7#…:ìAøìÄ I°™²÷QÉôq;:òý+9Ni¨'&=WÙA¸­rÂÚŸ]IÜÊã0èe¾ØIY Ñ£35p‡Ùøä'?N´o’ñy=:è‡”àŠˆ¸¶M“„¶¬„ÑyAl—ƒ¦¼ÉŠ0:pDÈvÅ|RVËp(P§l¸zõ”Ö@¹™SܺuçâÅs€GY…•‘õ°)ea¿~ƒs–ˆ†„ à†ÜÂ}NiG Œ¸Ù=!ï ’ \²nl韙u£Œ_ÿú©FÜ~{fý$Ô ¾¤¥Bhs€Ú¸Í:aö]xâ‰'-Ó!ƒÍVóÄGø©ê#à´,²+•4Šß¢Wc~W¯Þ?fÌHÎõŽÌëñn•æ õ'{=s 9S3ýÐI¦Æ‡ªÜƒ „öt¨]K‰¬|Ì܈ I†(j­_¦,uheÖP8dmº•V4JÆ(1C·lq‘jØúìë“‚P Ô+‡ (€Aˆâ·éq¢„LÈ솠Àlƒúgx ­ Õ=F´óðdŸ²‹!²K9$½pÞ] õ!P)£RÇ V–8Ð|îT¡“Ø85Œ™Ô‰¿QïűýѾéxÔ¨QС<‡G¸ÝGãQT‚ŨÈÅ!“ÓøÄpަº'ë»ÁŠŽ"sØ%GV¢w¿”×65’h;Ä™3l¦lo‰÷ײ³W+ÆpzwÈ(-{«Ö¿ ;`dòhµ%~€Z%.ãÅ,ýúaeÔ§3fß?ü0Ôè‰õŠÿœŠš ’M0bŠ ý˜Ëög€$1—›¶6z¶oH[éΆb8ÐÖ«ÚY<ì=ð îBs#ÿ0ù}³©Qx(í¹Äô I¡h¹vVü–ܳJ®'=‘ì³£4QǤ—ˆq¦S|$„ìz¼.®w¼ˆü™JÐçü–W“D&È.¯èûx0'™Û ESnÜò;‡Î[‚1é¹X1ŒX 6)^R‘Ýy;µX4…NPý8çòËMU‰#Œ+ƒ»¹ÙɶçéÓT¸AJôP:GŠBð²¹MÏ.ÈÅ_+çÙ°ƒ€ÞˆId„ñÈwÜ«[§!JÙ×¼«&ø˜u¦žë,$4Ó6\ÒË`Ìb0ÉHÍuÄî:A…亷–à7ç·6›\ëúH :I9¤ÎWRÚSé11=视ù•œË}ÚÒŽ±i*(ˆ£m§üPFÒÇ•‡ÉÊõÉIŠ_ÓJ¡ÏN.º«Éß*LÈ ñ:%0¬ÐÖÃ1Bˆ‚ˆdDÈA}#k–? \\ãÏaÖøñÜ¡È E©  ÿÒá)ÊX- ý%š@уÎå“¢þÁm˜}Þ¼y Î΋öÍÈ…ÈËvŒê)éœ{¹nU%kÝMR܇_%\jŽBæÆ'”â!tã–;to>£ÆŒÕ ÚZ<úèSè3ؤàoøþR3­\q1ëÀX†“z(ކIwU|³fÁh*¨‹|—ÑÊñDeüÇBá2¢};Œœ´b @=§.ýñXÈÅŠŽì×§~£gEÐ<¥E0•} èÏqs,"2¸jÞÁg¸E³™á€5ÅØJÀšV˜*˜€…ÞÀ@æN÷D @Ïããú'±•^€Û¿ø‹/¢‚äbü´o-¾ŒÜ- ×9Ôb6E+Ùºº7*+OËD9û‘h ?i¥q¢ù<Ÿ L@,9éÊhßÝ`ÔÐ •©ýBÛF íŠ"®­­={Ö_ÿõÿ¸çž÷9rÈHãxstªpsÞ¼,T£°ŸÓ8͈KŽÓ ^§*ò7€–~¿äÝ›F½*‰s¸otæX‹š ®€D äÂS j™FI£-Mç·bnFÆV•”£s¢¤1ü Ê]¤·ÙÈ4+—F%ë©VG£Jç(áÇ›´hÑ"TbÁDE±Ÿ£R'.‘öN\Íî’dß]#a—2ÅHÉŽl\¼æE/+½cTsF{3ŠÂžÂýÈgˆY3ƒ«ã•àô ÕÌ.éI[$G˜l¶o¬¸Ãs–Ôð'²2jã†ø2ûþË¿|HfßåÍ eÙ²[gÏžûõ¯xq³o?&Þâ¹ìDMc¥VvµêùsFC>Iþaõy+ª9ŠsMôjY4¶8Sæ Ð|~S³@Ĥ`˜ÇÄÉZ@ÑÖ’¡Ñ!vIL«Åãú{oBNâœÖ¤æ%FÉGe·¬²Nh£Å TÊÚwG#»päu4Ó‹«æ¾áóq|SB $fß]ŠºC‡Ô=•Q]Ô>R’!ÕÖ`ãy峘3[X•œ‘ÚæDvå0 .ù’GCId} ‚’ÁªrGà'¨6h%¢Yv6zŸ†ú„­ñØÒŠS'¬ˆ"JÍÄV’S) róÍK4' îUàVÙñ±O|âS×_Ì+pë»n.ÍhÄëVP›V+£.*w»J®YîöÔ‡×gÍÎc·J¿DéKE…_xa}¤ìnÖ¬šùó§Ò [/SÔ÷±ˆïήHÚJºÕ´i’ÆÎ$¶Ñ÷îÝ3vìxÆ“ÈÌÝ"+?ã.óñ¦2Cpd‰äÚ”c•:V4Ö‰ÃVh–Á—D¸±e*ÔYSê8:0 q0`…*ÑR&jß6ŒJ 1M¹×÷$/’¯â‹áµYß4˾HƼ+œÂñÔÔ„N²SžË©Gd Œ³¤Œ-‡Ë`„žãBe9ÁÕ­øwöÒº¶KcÙñl =sn:¹9ðm´£•úè»2}º×¥•*"7Úé‡ÔÜeÜ”H0@K¡ÐpÙ‹G/檚Å^ÝÉQná@ı¥q³ ÙðÒ¨©™ÀºŒ½!ûCA à AÜPË‘ð– 5d@LdfE$ʰÂ@Y*¡™ëíy–:QR¤M É—óÜ÷ùÏ?xà 7È컣F Šz"ôœ~丒£¥ºqèj£’ÅL§·«2ªIr·çb7xeD! ö9}†|€a¨'#6 ¨¸¡¸M1àYìŠÌ,¼– `#´S|g&%jõ£VÕ7 È¸¥«SIyä‘o¼þŠ+®î¤£~Hí‘Þ¤ £øŠ6À-±ð>S€J[kcÈ'б_Ú,ƈrgÞ¢ â5‘ÙË€ŠFÂu8?ùØ‚®ÐÍL›–ÅG;rRH@ 3NÐFÈÙZñÍo~µ®®ñ¶Û~Ç¢ôf²nHLå2¦¸8{n†Ij"ôód’Z Hç°Äƒ+²LZ•‚O¥ˆ‚bF"tût.7jÐM/¿Ð(žÎUúp»¹Rç¬LmŽãILŸL iwâs“PâL‡,ëZMìŽñbÌòÒ”‹Qäáˆ,àqfZ'Žûù׿~ÁÓdé«]Ú ×%ìSYâÒƒ„prBP–žŸ1OáF%븾¾IKÖ‡„+ ÖD¸|ËÜ\|v h×…*Ü4?Թ˗ÿê#ù/Ô”mö­Xé­ÙžÆ¤·Áð²;*ÆKë•E‡Ã4Ô™†3›7ïD+~b ó@Ô«0Kß nnÎýhÃ$ —GÜŸ>]•cEÂÎÓVýùŸ³oRfß::t(®ÿ.[Ë-`-ׄ}ÔÏÅz-—Ħ®Ð>3q| %ô†úùä¦1 õ“"–ƒbù0ضj*P^í8ŒãÌŽ!—ð½Èè §¸[¦€#x ‘þZÑ«W¿Ô«×`ce´`ˆQÂsûÇŒUðšå´ŠQÁC3“l–­³rlÙTèºhîxÁvâ¹£AæE4ûnQï'iÛ6B‡u¨’Nº¹’“Ö+S‘K[ hߘ}ãÌ_WW©ò\ïXÒàªQp#£#´ø]é%Woä"ª)’1ÐÈ…‘Ñá"ÃÔ¡+V¬…z!Ñ0ö')ˆÄôÇ}àƒ>HÀÓ©0ÔQ&nÈ0ˆH‚íRn˜46ªªyeƒÞœéñ1wm¡”ð \Î[;Ou?‘“öJŽÝP=ÓJ÷Xp,%/7LÅbòFf\¯Kr›×§îÓ3téÞ{R8$™™ExlŸã+»È;*VUÄ3Í'IÑnâÈ/–Lh`žÞ'IŸC  ëÙ‹€èHÆ:´ç Ý( ÜŽ»ž|òÙ{î¹…)_t xjºsL’'ÁËA\…=­X#$TÐÇñ©I¬ìΖr 5p à7C¼y1‹PÛµë eÑD¢œËwž@xsæåi„ÆÂžLsà —ÿã?þÐ" Â)ž«+ñCŸ„Ø47µJP˜ bP E$º¨£rÏÂx’˜IðRæúÖ¨'zÒX{®Cn‚&¦vLOºÌ1V'*©Pj±SF¥?¥›+uÒùJãû÷×Θ1í«_ýú}÷½Gt™„†Yá<,1+nÒæÇ’¡Œ¿½«f©=«?"^ríHÿ8YÐÑ9nçîÝ’3ÿõì‘JÿEÈÂJ™í©§^ÀîN¹®Õ ¢pŠôo¡ ÀOCd„üšN€=íq¨™BÂVçŠÑÊc(ÄšŽFûæø­o=RS3íꫯ&)õ‰$í­*²SU²áê¥hcÈ*†ýÿ(‹O!7^ulϘé±þìÏî/;Ú·Ê-·¼sþü<òíÚÚýlÍ9gŒè~$‹ó¦âË’Ó(2 Çæ62Jr×±ÔÊ®uAº›ÛDÍnZR£ù¢ŒÓä]ÄÖOoäáæ±~Æ5Š Uòéqª#}URÐ ý_ô žãdݺW‘ûY4‡JSí4Y²hW^% 3\r§ ž¦‚»‚¦Z-áçiƒ>øl™¼‰i(*ò”%Z_*mŲ+W‡TV¹Ț³žl.}r‘]í{Jü„bm¾TòKÍGߊÙwrIÉtoz‰»Ä¸`. `p.¸UþÊfp EÅu:Ñ<çÏŸŽ=Þ¿þëS/¿¼‰ ª´59rO.q"…ä{Ä„@C> ÛÃNa‚l|jXîê1p ôJWwì͋섚eæ×I³ïÏ|æ~¢}ß|óMDaWˆ D˜@y*sWÓÊ’C~ våþRÚ#¢Izj¿Ó³ ª…< ¢ªýCâØy³o¤PôR‡·"²£ÄïQ‘¶g‡–‹šŽö†Š)L•Š{ ‡– xª‡´CÕÈœA©ù†8D˹9Ëœ:F jqxî+¯ :Äzû#ŒÅé–`ÊO=õ"öFö–<Í ÞÀ£Ìá¤_”p¢I‰²"‹[0Ì¿»aÃ6ÈJÚ(¢ý(0`ËÏ(F7J¡‹(²+–{ã¥âœP‘cüåØpá›4o­¨Öúµß¡Eh,Ä´)ÔѧqèQòòÉ2.¯Ή5‡e÷zcÏ& ¹oDÐ_Ήÿ²A –‚ ¢pTæ.¥T—G!’@÷↦ž3g*]¢ˆ"B"2˜ÈÂÇO§·À#žÖ7Üpý¯~õKÁmy“àŒYü¨Çue|Ó6*å‹Ú¢ÙX;÷f$FÄOa¼ýC K_ùÊWž~ú7>#e—t:¼Æi)ÚtPD–µ†`(ZŠß¨(>)4å˜$y9ðIŠs-Mm·tð¨µ=eÉæ.äøQ€9=$2ׯp.Z¨FÊUˆ0ÒÉ¢E3A`sÿô§ÿgåÊÿÇÔ¼ñ I[Àô4?úxRd•§PŠD‹Ø±c¯KeÜ×âŠ+fã’h1#–?| ­?Á“ ݃Σ 3‹qÓµTè2’Ÿü[Ùu¾R0_UUUŽ· ÑØ(&½÷¡)÷¢ˆAúlÉ€‡¢óp)”žÅ‚衞®ŸàÁÔÌ;•ô£)rô @…%ˆÇœúœ6mD˜;ÐÁû—úìÃÝ0I„ñÒ`ž„\ÉÂ@3,ñ,Ûæ(;3M>…´A#iM­XñüÞ½û\ÃT†*döö-1@0¥ÝVã‰ø®sE$ð—¿üW/K—^S†’ÊèÑc† Ú¦f:Í ¨­ÙKv.š¿µÕÎEŽÑ$–\ôÞ¨êHz‰aj¿ž“d*4¢w)0ÄbÁ‚d`Bκ"yáAQ¹¬[Ф’¥ ¦C°¦Þ¸„ùñ㇡ހ»S§ÞpAˆÄ/ÙŸ=¶o߇xÌx˜Ð@]Šù!LÃ]œUHÀGñ1\zõÕ]˜tÓ?È#'Ôvv4”tÖʕ둰²Á=À9Ñ$ó ²‘¨=ïÅð Ù0pP8ËeäEö©8u½òÊ:À[ øxuyjãvYÄ…£›/z¬¯ò‹ÐÞW¾òßQì•ÝÑ„<šH"°ÙZj  A4[¯Aƒz³òÙOa&”ë+ŠyÄ»ã$G\%6PðÛ=bÛqㆠ4=Wtõûö1³·^Àiìeƒ£lynøG·pÈ?¶:Ó¦G„HÃ}ˆÕ'( î‡ÞDKD¯¿¾Ÿzø U¹Z¨#»ÐÍÄV@îMÈ8út1 ÀTâ/¨x’òiåË{v ^í?øç ,žÍdÒìŽ]Åëžøz|=z¯`„/¾¸Ù~»Àš>§ðØ=|˜äUu õ­Ä1òŠõ¹KTo ÇØK H›>}ê7¿ù­|àC¬biã¦ýT€  PX¯²´‘'£¨*¦\ŠPø!V! JNø½Õ2Hãv#g2£Là“#€JABÅʃ’U·ÀŒÂ ñhˆP”½Ñ37j?ÀiM9b^,f¬:' FxÀ;† E™›Q‘Ÿ”·äœfHöˆ‰¤ñ\)`Ñ£bË¢7go÷Ù‚§çÆXS‰€~Ö¬¹7Þx#!ùÔÃ¥Ò GãÂþá%Ú¹ 0Áì{áÂEßùÎÿÞ¿_fßII%±VÄš”ÇcÅ‚odM'd©ˆº•u™-~¶ïžÔ¡™g5J”£qKÂÆO~ r  s™Ò‰I¥O¥Œ‚ŽT<:î… ?yÊ¡CEø¶8[ýd¦UyTBº)QËby7⑊àŽs`–ˆ6J„xZnÉ¢Rc€<@ZÐ|DÞ’!_c©UUOuõX™#€˜Èz6,¾ r K^Þ‹÷’8]ÆД¼,m¸KÚÜ16Q"vq¹dÔP~¥x…Òr/$Âñ³žaÏ0Á)Ä\è]XaDhÈ4ƒf˜xs¨œÈÐr6`»©TrOù °¾åô£8ÐJ]Ê’Qæ!»tÚ.UPÏU-&Ö"…dÓØ©„èŠ6}R/’G0N^´¶¶aÅŠWššfÉí.F<˹qà‹œ!:Êüõê@i Ð@=€‡§TjŸÑ÷)©7ŠÎ)u}"ÊÈ D}éK}üã´lÙ2löØ|h¤uß›T)^SÇ·z¥¸«T]FpU–4{±lJ0‰ÉY|fÏñ=ndKef­rÇÀÆíVE¶ÃVbPC”'‚zh|…ꙃÓ'a ¹iÞÓ-ëð”P£^ÙŒ­³VÊÀk˜ã,=ÓcÁxVs“èIš)0xŽÎŽ10•àš–¬d 9‘gðâ$@Êh[ihM#]^bdî\„·Rôkð€ Üü2-Bå@¡€›Œî>lú®×”LBÀ"îGBikÙSVãB]Îu‰ÒRŸ\µ1ôfrâË¥ðMz;ZZº^¬ge¬D3~êyyÙ 8úð(f/;UføÄŸ„›Y¼x6º†ÿÁ~pîܹ<ð®¶Q*#]å2vÚ´$3,Š(äÉÓ§ãðšôt}CED¹S$i×€S;‹Q.YÙ•_É\Mœ8‰€ß,-M™·™˜QÓLö–Ù­ú&!$‘xžéöF €C_"ÊÍZÚ÷3HðàðòQµøðgŒnRµòGJÂmÍêSƒá‚&‚öT{@Ôׂ؛o¾ròä1èE—/žÞ˜örTBAµxñú”P…Ÿp!ÈJ§F¹(@U‰Ë:š5ûœp²oýúu˜cu&Ú7 (#áV8žûÔ;r|»T²l¾ñÿIÜB’jʈö]]]=räH[’ÉOò1i´¨4múî;‘u¯07ž2Œâ–Š´*¢øò°F "G(J(SpOì"pˆ}Ò¡útkA1Í„ilÇ÷°ßþtZjœn ›}~Ý–’Jõ²kEË‹Y6R;$ Û·ï~á…+V¬:vìäÏ~¶üøñ:pœ?Ž»€3ì8ˆ’cT¤à#)À$Úq÷[÷åÌÒ’â¨È™'J´1¾P>$~—¬ìº×SdøðákÖ¬A3¤hß©œ…Çn/ !`𸠲8¹‹ÂžÒ&*ļ®Û½º¤b"µÀdÙÚBÒ]SJ|%±.x‡‰{Ñʘ Ë"UÐdzÏf–x@²d æ HÛ ,Ä¢—Ÿ®^#+žgÅÁGtJètù¼|ík_»üòË}ŽZ“øu¥/Œ·K¥Úˆ}ݿýÛ£µµxIq“œ¶íœj¡¹þrãy¬xRF N9{5×[ªMl¬çÜåzvl#uE_Zo)Ô¥ù5g¾×ÁÓ\åÆGèRA¢Qœ IŒÇÎ|LúãgžYŽY0=8yò }RËvx#“Nnß¾äzÝu‹JؽQ9!Wñ…—üûÄ´ŸÐ uþö®.6ªã ¯’–\ ned×`cþ‹l*Ú†`¨ Á­â!H¨ÏEâ¡M¨%€‚"•@M¥Bœ"¥(²ú@“ŠR5 R5)-`À@lHÒ~;ŸöódfíîÞëõîÆstu5÷ì0÷:3'gΙs¾Ž£üŠBEÔV¸“ÆèO7DTH\ÐöÑ‚#"&xKÊð#¥‹‡®‚Ô”0 Eòbd' •ŒcVõ>wCg€^A°8BWsŠW($ºÂ<ÂÎëò嫸ƒw_~¢Ö‘NåzÕ6“wß\ð9fÆŒ(Ÿ!¯S¦ÒöíÛ)èCâ_ ÔÛ˰ïèD‚òÙ(0»iýßSúÒ*¨˜&ÿ„›M¿‚»ƒÐ*q252ÁjãÆ}Þ4x‡¥zhñ`VE2â~úþ!2@ê wœï:ж+×K¦î…bÚÓ]LžÜ:t'q¾?úècÄéLš4‘:ÉY«~’5}l'í¢!íQi44ïn¿Èé)µ¡q¼žúUºD_çJ¨ºñIü£ôa^ÂQ]>§$¦ƒ÷F ßÏdÝÂyžx꩟㌱®ØRy@~éJ™DPcŒà¸q€@=Êh4:@Fm»GŸg—}ò¥ä$:ÚHéœ ÍjRûž3gÖ‹/xòÉötØ· Û/IÖÜiâ5 ÚT yØmÉ"îšr •$YµmôkÏ—U§í¡ŠD fk J¨±±îƒ>ŸéYŽ'¤8ÀOn  1æ‚6>‰ñ>ÀŒùFk¦é#é‹@¶±¤7ÂåMQ.aÙ²emjµ@qŒ›M›6¡#ìÑ1?hnžÿê«G®^½B´o@/½¶ûÍ#G‘““^áÒg”[RÊdÑU`K“ßSv8kƒ™MÇO¦»)·ZµêíÏHh@[ 9ÖžDÒ—>u–j–ËwÀd:0L¥éÓ¿ Ç“…å–ÐëLè]2ß’õkéòåkpcÀÏÁt¢Q†„–ÂWK…«Z±Ÿw¨oö~µE8)|Õ‚`Ù…°o݉Ì+¡´jMV<ì£"+örGG­‘DWgüæÍ2±%W4ƒœm¦H‚š1/UÇžåÚFÒÔ rr™ªn`B!K™í8^‚«ºª*åÍãé«mõS}Õ˜„Pú›˜˜8aßÛ={ö`?H…) gHј2^ã‡}`?zhß"ÛÓ%½’1¤ÈE:W­(…J:²î©˜Ô4Np:¹c¢§®œ’à+$NýŠñh1û!é@“<ƇСÒ&"`¡¥œ87öÇ&J ÂUUß@N:$ùˆìM§™]£Eö«©?|[y#É®„’í;Z=¤¼ }"n£´ž$ ù&½Hg¹Òj+Œ‘MG?¬{x¢?üð24’Ì,˜=o^Óôéµ8Ymh˜ÜÔT;gÎT,wT¥DN$Ä/UøYÜz‘RÐD1½Î¤—WܼycöìYèùÜB‡ð1)øˆü´cÇŽS§Nq“ž§W)²†w™‚áì,‹YÃFÑ&‘©Ïæ7,ÂÐ2_ @"A‘ƒ_RÎ/n~á…_½õÖ.œ7uêwj ›“!¤³fÕã‚úaà`l"¯ÿã(Ì] ÆŠbu†ý_^â©þÃ;j×®]|“OÒ¥îêo?fÏ„Év|&GŠÜot,_þÃÆÆih;‘‘N2šÉCÇ$Ÿ÷ܘŽ÷L–“Bn8; š ΗÈ&¼Òp ‘Û1l¾LJï…tkdçídúvƒ½A†À£öé§ÙÖÖ†C #•eMÒ…»wï^²dÉÒ¥K!E¡HHSPBL¨Šµk×666â¿'] Æ<}út}ý”GyùLÆôw‡2O_q¦-ƒäø˜~,6H:@Nܼ™J™‡jØ»÷ù‰'¬Y³)ºLRĬ K˜àA¯¨ÖLQ!e(üÊoÈòãmoÌ æ ’|‘c‹v®‚q;¾'L˜ðî»dkÁÙód9¯ôHg4U,füb¦þz§BëÀ#ÇúüH®ÇâFØ‚F%Yr†'±@_€@NáW¶ý· ŽšoÏÓ¼Ö4‘ñÒ£1#=©ÔtB¶P!Ýoçyky¥xNþŠ$ñ–––êêoE û¦ÀlÞ¼Ù2ÔâR ¤¶ÄtÖquAFtâM¶uN¡Hd5ÿª2T:Š!ÉìÿÊy^]b°‘ReéÙž={Nmm’ Ñ“iŽVýC¥!‚”åêØFziöpòÜPr¦¼øIq!‚BPƒ˜Xï½÷·±cÇUU—굫‹•”-Áå%# ©XÒÐ4THT[–¨à*°Šñ:8¼´W$Û ú@‘L„}wvþ™8ù«œ‚tw²,CPC&fáøñãÓ¦Mc;§1剺xñ"²ajjTxÅjs¤Nžè*çnJ°IL Æ ªÄUÉéçžÛK TàyÛ¸ ì,B[ªH¤÷ªšQ–¡ò=hX±ì‘ïµk] ´ìÛ÷Ò–-?Úwi€V‹¼É4z o°èU(ÓÎ3W6ƒ­dƃÕI•¼„B"'ÂŒ@hwîÜ dÕ+V@b#ÏH éÔU«V '-¤à¾råãóç·¾öÚÑ+W®„xo¦<_®yçÄ:%l8BÈliHˆ´kþ 6c$ÂÜbq¹œ#&éX¶etÛw§?Y2Õ.M¦ gwP·›ù`êQ÷L’íÚ’Õo[ uLÍ+Måþ©H’ë'išþt8wŸ)y;pàÀÙ³gÙÎØ³€LPI0ý(žhcj²y'Àˆeú²#I´å‘Å2p1Àùå´™tá‘’iz–[Œ2D18 ¤!Ÿ½4² R,RÞu)’ÚB¿¶1‚”Ëíâjšž°é؈f!Aœº»¯77ï•W®^½ö ¤*Î!|| ‹sëÖ­?6¤¼®\)Xh0ÑóOœ³%Ö‚lk{¼¹¹ù™g~ÝÕÕe@&ûƒÝêcݪ­GÉ5ܧDb[øƒöÝéÏF–LµK—É5„ýHkk+bí€/@·†Õ-Áf>˜zÔ=Ó™ÛÐYHÞ̺ëÇUõq?@HK%×O"Á<êêºvûöm{{Õ ÎäÛï™zlgìY@&¨„˜\Ò¨OzîÜ9*§\Çä’hiimhhÀ¼ ­yçHlŒP¦EÓ!”ôj;Ì Êê¿oÜø¶Pº8!~rÅ 2ß–Peæi:´",ÅÜ,¤@²$úöÛû˜jóž+S:€WRò`/Ya¤¾-$~åv(Ëå“Ê *y òáX\’d¸ûÀ*´ï@°þãc4HF4ïÖãeJ¥E$Vý, I)n‹/ž1cægŸÝwðÅq÷Ä“¤qD|—A;”Ó!¹V…ÀU“ÕwÞùËĉՓ&Mb=M?‰µhcK½E ÚÉWR‘¶èL? ~¶ñãÇ¿ùæ)Sd¡€Á?dqÉ©¾¾>‚Å©õ”Ú”)S!/šw?ct&ÆfÌw`myd5ýûƒ-ñ“ŸYh‹§dÓql(Ë>&i8RûN Ô{Ù²Gí°o?‰µhcEΠΈ‰ã›:c}PH9ZØ÷¶mÛ`$á~H¾CØ7 Óc†}?ñÄZ;ì{ŒÑ‘—‹û—2r†„yòÎ;ÜЊ²-$»§äÑRE¶œ&ò÷g¢M*@Øwû6|cí¿‹“7&®8LU@aÛÁOü?QãÔUªÈ'¥í“ÄÁuEÖGŽö}ôèQ”ñ-ž°ïömÁzºW¸@–kY5úàÊ#„&lMÎÒ ×DÁ Ê|’àçõ*LØw 3×°`,'U\„‹Fs>˜|Ÿw\¹2 [ƒƒ\—ÁM9øyúI,•=º«ë??ÜzøðaGÂÖ)†$Êö½aÆõëׯ[·.rØ7ML N4çwË'‰Ð!ѹCÚ¥>@§4ú,}¨€›uòÿàÑÑ8![î·d¸$$pî9äºF H;íûí÷jÒò9À?•îoåÀ/D‰^§?€ÒƒâxÙ¶»¢8ÆxZ*µÍóGð[`Ó4Y–ý.ûfŒc”RX@¼—¦)çÜ/´ÖþD º®“R !œÑÓ§¬ŸEÑBk$+|AÊr]U —¬ °®7$û~©½ßíéüB†alü`çŒQ(ì=„mÆF™x ±õZx‡`Ül– Ø„ë!à+ß”Ãgº›ãùfÿ˜ŽwVþ¾Ì˜¸.éÛZ³Ö–RHÖZ1ˆÓrÉœ35ïg ôÞ…Zk’)%Æçü€”rN.©”¢õSéÁ÷Þ‡hzÜÉõzo šý~|ƒå(F³žÆ¬(ÏÏÏ+âL<ô^?‹Åx¥c7•@pl„ÕÕÕÅÅE2;ü4ö—|à§é$±Üö›Ëå@tgÏöö6Éš@Ë% Š_˜Í$VkÓ’žX¨!8CsÒ‹ÏàG¿Sî’=QG-Üßßg€\ì|t “1t§uÐücï>ƒ-+ª>›ÑÁ@PT‚(¨ (ADD$I¤$Pt#HAP ` /*Š`csÎ9¼Où«ê:uî5ÔòÓì§úöéݽz…ÿ ½ÏÝS—7úˆ=½Tf§v¸ò ¯“$ÂÙô•W^¹õÖ[CmJ£³ŒÞ˜m·ÝÖ-FÊ0ôxÎUW]¥þLKØöÜsOHÊ6zj53x{×ÕxÉ´¬òBŸ^åð”ÿ^çœsŽN×)§œ"Ö;÷ÜsAç^{í%Å6Cu±¶Þ€0‘ ÆËC½\c›m¶ñöU9­-Z´ˆ‘\wÝuW_}u)¹XLƒ.rŠ®c=V?ú+ ‰»°ýöÛ âò”çw#Ç®h¥•V¢Ç½û¶f­wÜܸwžÊZWCø¶ÁxwâmЊB9ö³ÿþûc¬„v Äà)†ÄOÐsÈ!‡éÁLˆÇ<‡—  ñ^€5×\óüóϯˆá[ssÌ1öµóÎ;Ãýæ?ì°Ã”׬w|±.ÑKLÒÒGu"÷Ûo? ˆ“guú/¾øbBÍ–“kjÈSWXaò³ÓŸJ¬h°J‚€žÜtÓM^L®LG`œ1šCZ‡`·X×ê·èM‰1VC* –vÚi–HxÍÝvÛMð~Æg¤êíšÉì°Ã(´#ýE¼{èž~dë«é¼LRóýHŒpì»ï¾ˆçqF‚í¡‡ª¸Ç{èwKDýԹ뮻^ýõÃPÎx-Š9 ’ÂÏŽÜÙ¸Mçã6ÃñXηþìv¬Öo]=×^{­ípùå—ó%MuÑEÉü1$ËMçÙZYïŠ+®xÐA±¬£'HêÞ¶vöÙg’X_U„YH'Ê/½ôÒXG ÆCnƒ:ÑšæÂLÄ$ñ£‰~5@VÉà “Ñß„Ê!¤‰Ûô2ЩáÆ+®¸‚Ñ-\¸PÜÀ ÜåqÄ[n¹¥Û™ÃÔSf_~-Ôƒ#€ƒl¨]² Lÿ™gžI*þ\o½õ䤞 pÀ‡~8›3gŽN@c0™7oô‘Úv ªë®».mÙ¼Ûå"Þ$ÄÃÉT,Äx²g¥ ôxå•W¦.òhãi'?´`Á¸|Ùe—mºé¦t©f6¿Û×Zk-Êa|Nâè£fÞ«­¶kÜd“M®ÛÀXfþ)oQ›Öj£Sл]«†€l;Òé¥GBK6À+}ðÄÀ Ìq£?é=Óµ‘Ôzö5nHÍìz£6âé‹Ñ€ïâŋ틗…n| ÓºêŸÉÞ2.ùKP˜âbwß}÷‘g›¤ÀW‘oЦŸ|Å묳Äßb‹-Ìl~ï´%D>~íµ×>餓`qÞ>n·Ýv4 Q†ÓO?½I´‘'¡Á´Í6ÛŒ h;²¨žRWÇ0‹°zÏžaÏí@Ó®÷Þ{oqà 7à0ø>ñÄí‹£-Í"ÙÍ7ß\”°þú뻑cÚ¥·` ì8EdïæïÝÛHÂþƒFY”Ô虌%€)߀!‹ “k¤Ÿ0Ý`±Nï¹·#8N°ÅÈK.¹dPˆÿ@£Éâ9VÈ-Hs5¿ÐÍe]S ,è§”NŒe0Å09~JP»Ê*«ÐI"Ǿr®£Â)–š<ÎÉ„éSùšÃp»µÖXc ±f¢…~ã7ò:è¡óìÔ`–(s‚à1Œ×–&æA úù›åK¤Y¶–Qà-%ŒŒ’3ä¹ÅgïÈ ‹À€À‘GIKÅ‹òcoú×6?5uYzŠx´ët[ä ¨1VðaÔÕÆ5ð€`‚á„ø ²ì¹íð‚¨2 +m°˜®òcÙ°¨(ÃS ¦;JvT tÂq_QY î–î}«_-Ðc®1êWìD­c0‹Ê™Œ0%öÎæY¸ ìç7ÞxcK@±ú+×ð|®3c dB3’pÃziSýpA?´Š™êx ¶X[?#¬À"&€G HÔÉ h£'n~VŠütðZÿ…^èO¾A^¥òêçÃ’¦@¸’Ú PS"‚°#Ñ1›ï€Á›ÜÐ@E»]d #4$.19“¦kp]n¬SDO9E[nÞÐ*¶TÅu)$zê©£rëš;w®¬«6ŸZø‚í¶ ë'õJaP?Pæw$µ 6†cÓæ2¡ycܬ:Qjì²Ë.x Ê –LÎÕa´[êvà’`eªu ¿pRãä“OæÝë,Òßj«­`· ÏÑ«}‹{ûì³OmÆ.S‘shËó‚…3µYD¢t‘;íâ´Mk ¦AOœ iù‰Œ]§Zd‰v7Æó1Hê€Ð¥–è••V¤0ê4¯VÑŽÍWÜ9Ç?“xQl%ÁÔ þЇ´Žg Óãl•:! F´¢#ON€2ºUW] LyŠÙfH˯²u6)@P-ÉÇËú50Ý'E$o£Ý©£‹~h“Y ‰Y¸¨¬NÜè …Wt—ߪˆ³„çbŠ‚_¾D…3l›¼ ÛrÁ§%ÇŒ+YPÊÇÔÐ-7²F†GáÌ϶)Ÿ9yPÀ‡$„©ËQk––€I^i™Ž¶L/i?úá ˜ã‘-Ê6ÌNéû¡÷îEþØ×d6™]ipW`…?C|n`!ÌZ³/Ùq™¼8·mkü«¼çÓ,ÍñKàðÞ±´ÕW_ñ½)†5Æö^V„N[0&yͲjÀ /¸à‚*`Ö¥üw+­”µqó$`ÁÇËtódະ¨™U¥ä+‚V.M4áØ( «nL—I¸‚gÐS…Ç.ê—Àe{Ÿ?¾ µsò„ØU¾XL -ˆ0ÜØpà í¨ÁKÏm²èàŒš¥­ú$†Vâ!.%$=¤f=€ç’}ʛۣ-W,*2@CO‡R\5­chƒe.×ÔÏFl§— p9b¼a”¸­“â˜1Âu/bØcç¢Ä ¢…†$ºbmw‡Ië lJ¿ÝqÃâ0),Ó%jŸÄ]Ãj8W… –ްzTS0D„ašÅOÚ#nes;RÝ2’Íš¼…$¸œn·[Ãá€ËW”Ù.úJ̲$pšÛš½SÅôGÄ&v!zÕcfok3m[¨J‰¥VÁj&ÐÓª ô©m Q¢¶nÚèt#0I"´Ð…0ñÎäóß—áú+¿Ø»ÜB@2xAa8P`]jb°µGÌi­IÇVÈ‚ÃiuMªb,MgæÄëð¦&çP%Pñˆ·)ÐÏ+';1wïCøKijŸ„¦Mp˜\ÝHÑB^Á¢ØW† R"S¾`Ï ²ê¿Oýæ©í€ºZ%Ç4$£4wu§¡KØ.Ré$Às`WÉK)†ë’Fp´Ä§‚dõŠ9K¬…ÒØ±V ‹oÆü';‹Ÿ@Œj­6¸”XsEˆIšò0«Û¥¡.ä•ÁPAεÛ`Œµ4=ÄUcH“ÃZg#úKèa.ya;Í·kå/1™P#ÉÊ4Ú+s#1t…ÌXkèOÄq@>ª=Ø•ÍZ¨<)n«‰I Iør!<ªð™‘Ù›ap²¤Ó·ˆé[جΦE°D¬Ùs›\¯¨NÉËZX^BÙ‚ÈkNd‹†²ë.̓ž±k!²¤V?éCàñyŠxcð°i›9›:v_áa’Œ™ gÌб6>iÙŸ!-¢!u¼Y½%¾OéôÀt:!£RÒÍuÉvGD˜`“å@Rµ¥y¡%«. ƒ8”U@*Š÷­äÉ„üV%#ù–£H‰6Óå±’½H<’е+ÐwÄ%ZäÛ”ƒ(@‰¯Š¬¡žñlÞ¡TX<62©Ã§vÀ.F*ö›xíÞêïS.mðA~`›£ w ÿ2ùI­ÈF¡¢¨ŒAñ$nˆÑ:9š"V9¥3Û,dŠ!@ó  äÜl•ïé¤>ÀÂɹ‚_ßâ&»Jˆ” HFd ¾FaÔŠÜ­KÊ”AK,©…qÞxUa,挶>ò^'JÃt=Çwõ@9®*Ùƒ]«Ï”B*çÞ QÞÒŸØsÃ5è'èW :T·;ôøä¡¥ 9*‹êÁjPë¬BÚ¡_–ƒ hë9()=²Á >›Ç“”b¸(›ÔÐ`m–"˜`SRŸ¤ÆÖÈ”ƒÄ.È‹±.¢G€$ž/4XO›‡Ü äãÏ$·Óù´wôóFUç’»»qXM§³A<•Ûµ–PÒº¸=%šÔš¨BHDÊ.q|+Ö 䬯ci‚?ØÓrMaÑC ¾|&ñ3±ËÌ‚‰lÁ$Ù,¸« 2EÌ‘¢@"7¤.Ò²?Cªú/_Pkpà°Z¿ËQ+€YÝÅsÀ ŠN§Y/|ÔaÐG™®Ã•N\š_ELQÕ5æÜÞÁ¦Îó龜N“1uW؉fiŠ O£ú€œ@›B‡¤¥H½+ª V)ª,¯âH¨šX¬ÓDvÐâFq]ãçãäC¡ƒCbfð¢cóÛžt†ÄBÚf…{öÀæµ6{oÚr½ÙŸ!¡ñQ’˜D¡1¬ì^»G¥m‰ (á«d!p°³ãIA½±-·b‹I±K@0Øí ¯§äe9€ôøµ1h(Våû} ;s¦]ì¼ßÁЬ˜A0Î +î6âh¶ûÐf$¡Hõ«Áßq2AI4¤Y/"ŒP¸Òô|)Ïð'ÙQ›)5“Ÿ9¬’ÓkóU=ª®ÍÍÐLºx¹h]›w7€9ÀP*5ËÚ#Õ1OÒL¾j}FbfG¶©.¤½¬#3‘£+p¡­•ua¸~{D9õ–wJÔS<œ™¶Š7nt†d†ñØwƒÛ=SÚq, Êh¨OVü„Ú!w~‰ACˆÆÓЙÎÛ¬e›6"뢖BŠRçí±OõyEÈ™8E{EÇ'udÕažÒ"ÿªad•:! ï.•t™ hËLâÝL4â™¶S@5´b@Å@ÆKü}ÒÇIOœv£ÂcfhÎN°†ê6õ?Gfõ;¤å¿C"ˆO²C?ˆBþNIT?ÙÈä×±Æ!:ð]°–Ìà~+†×âzL÷)´Ô©àNƒÅà“¿`èI°Ü.¡Aƒ°g@sB Reƒø;E˜\üLÉo|fQ.(Ìx˜<¿ä $«Æä};b‰šZ.Èÿñ¸èd®Ú#íÅ«Öòé,!è_šß!¹¢JÒ™JD§?•mŸ„ƒS¡KT§l©ÝÙ&…´e©†¯Àe&Уø†'Ú¼~ò^=2~_Åcá§Ü·°O¸u¤æ^°(zp/©A[ó[E‘ u§á¼¦x@OIàç„ÏHr£ZÙøé1_kGüAŽ|˜¿O€®Ø¥-ÉNç­%¤F`»‘õ '²á5ù0ƒ]y©P3P6›% _1«´\GƒÙ]Ï­Pè’ <r‹‹¾Yš¿ øã1›mP3Š' Å[—}A$$Ð3‰×/JîP"‹WÁN®ÑÒ¶`ûÌD˜Š—Í!YZ s<¤C ã&¬POFíÿ³s'9u1€#åd‰‡à \…kp)ëDÌ󜈙ˆ!b1gü¤_*ZtÓXR‹Ò“¥g»l×o»$w‚çm0öÕˆö㢆·\E–6œÝÝŸ@ösùLͨ¾ÖF¤¨sΰ4õž“Š5SÓuwd…éØzÇ€2Qøªë“·T:ÕaU¢)€¿ªÒýW¥ò2xŸQA JõçìlÑ-<•Kà&­†ß‰{ˆªv`7 8foÙ_H$‰B„tä¶$£@JÓ£~ôÚ® -ŽhDê’ÿ@>à€Ðbª|¥ ;náS‚Ë,à[èñ&£Q5œS¦@í|¦¥1O¤‡ds?:”…yºmîÀSÒ ‡²HA'1 ´ƶ£*:í!k@Õbí„õ„«HÌb’¢`Sµ ‹Ãð©ÇF4ŒŠòŽ>Þú ªäˆÏ¼‘[JI‚Þa•]x£—O]ؽ%¢äõK“ @€À7Ë'w ‚ŠþVúHá(Ö®ö£YŠO¼–GÎ'µBã_âÜ'È IH6IQÌîìáߨ|B¨îèª]Šê$r{0ÀBÅd>×â1_už³?&¤ÿí]=KœAö# &M„"•B@‘t¦°ð7Øû+ü Á>©ù–é’ÒB%¤0`•& "øxföå¼[ß;/ÌÇÞ²ÌÍ>3;ûÞÍå•]å¤Ð@ú€æp¾°`”±È ¡ÑÈ3¶M”Ý8¶v>v/Õz­,²…Ý3 ñû£IkšøË_Ø3ì$E]s½xj,·Â¡š¢„Çvˆ°À¥€„3,iµAÁîôÂ5±7ëiñq 8Ùì<…Œ0b˜e&¹®mAo§OhûÎ$â®áÙÅ3¨—‡ÆN¤¨MF/zXäû -ß¡*äA"åç(@“¦š,$"Áœ6e«i¸ÔE ¢•N¤¢÷°! åÛ¢ðÅìh ·5¨¨Æ¡aÆ*ĵ2RÕ¤My`ú¸²C ‹¼ …<ÂMÁÙYÌ}˜ì¸NýLµâ;°1Il1à]0Jxæe΀¸Fü£lVø¸,  •®“yj2â૎@…°;K'Ü©"a§³sÊâ â`ùË“âÎ5ù4)¹]'¤ƒ‘¯qQ‰ 2O+¶䶇—ÔíÎf&çˆôÏ<Ñ[‹;µãˆ6*H<º`¹©þèn1(ž5§‚&¬@M8„9i9DuGã‘oaõŒ±†‹Å+‘Kð„‰!Ín³ |ó– gÇSYG„˜¸*Dz‡+D<Ÿ³2RídñdžÝÞ¶ðé]d`‹Ã®¸% .ªUŽ£’OÑÝ‹r’e}M}fù ; $Þ$ã׬Œ4ÀDÌûˆ4Âäå¯îÝš#Õ”Õóƒ_Y†â1£^#ƒ"È >{f&© ùJµÖhù4ÙFb^‰’þ9|†d€#L¯Ý›WQ?ý°ÿ®@m$ÙûŽ­ócÛrúlcÊFŠ,Å&§ì½zS­£mþÿ"z•LúŸé㔣ƒØÍ„óm¤Ì£–0Öä}­RžÔ옊h¥hóCNrålÏ¡·5>JÒ w¾J¤{’’’’’’þÓxæQjQËIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qline-coordinates.png0000644000076500000240000002236312536324473023067 0ustar philstaff00000000000000‰PNG  IHDRM8P}6á$ºIDATx^ìÛAŠAПÊܸÜz9" .Ü Œ"^ÆÅ<‡£Á#x€ñétûMc6•*—šö½EQt~ª?Ýùtu‘Ši榣aüíì‘SûÇøþYêëNÕ¯bªZ™´Fë¤Z§‘ZÖþëlOÖGsÛú¨þzÿ>žÍ°uGêËÒÏ¶Š¬iœ·•|ÿÖ×9wÎ8wúù·‚û¿Ø³•Õ¹¼˜þ‘:¸>i‰¥J,P¦¥J,PVK”ø×Öáëp@Y-P&Àó°ÞX‡ÌÛóvÀ~5@eìKìKüï0o¬·ÞÏïç@ À¼0oìKìKìWÔ9 Î2ýoÀz;PJÉvÇa‡Cv²ÍjÉãö¥^6ÈzÎ6"²¼³¿^¯¯Ž²³Ùl"b¿ßÏyyÏs "æ'ù\᱊ݷݛ›·7¯o·?ÝÝm~ú½{÷Ž=š''§E‹#FŒ0™L¨ïÞ½ûòå˶mÛZ,–‰'âV\åÏbßò‹%ÿm^_[E_³óš˜‘‹ºûï‚Z°–õ³•^‡«¯à¥xS—p®6r^ûÍEåjp"—æ‡öïß¿U«Vþþþ ,8räðã>‚F:öâÅ‹M›6mݺUXñÇ6ULVzSû÷ï7›Í×®]‹ˆˆ8wîœ$Ï«W¯^¼xqXXجY³äw1+F\’ºZ;«)ÀM6\8™@þ ^l\±«ã\9EVµQëÇǽ“ øÑ®‹dReee¯_¿nݺµDÝÜÜÜ:,[¶,**êôéÓÛ³gð2dHÓ¦M“’’9Ê… W„&U<Çéç}||„ߢŸ>}Š)"v§N***BCC©‡­[·ŽÂ—Æ ãdLLÌDr —|«_€/nªô?5Þ!žuU¼‰Ó!PQ×ì¥ìÆw,ºè¢ºtä²qéýeÜõíÛ·ãþ8®ÚVU]¤]/º›XTœUUùÚ^Y`ÏM{iNaÁO•É“cÇW%ýÑWÓE… gffîܹΟ?ÿÆdæÔánݺ%½qP*F-àÌÎÎ@*jµE‡êS“GyàÀî>zôhÅŠLFáA¤t2ÑÓš}öìÅ?q"ä@Ý¥Ö 4çÞ¼y3tèÐû÷[ÔbGÒ.ËÕ¢ªš24>ž~æ(ó_7®ý>ò{@Îëñì·_‡ÓE™-lOŸ>„3¹4`À€)S¦p‹Ž<f>a„I“&ØÒÒR¶Õj¯4hÒìfÍš¥§§ áWŒNN&­2”©©©³!¢aïN½ÒvíÚ…„„Ð~Àó7oÞ hÓ¦ qÔöÐ9’á)ïÓWÇzÉ«ërÚ~ ää&<.^,4´½z%”lÈÄ÷jºè"ƒåô± ælºeñññÀ€ï4Î$ AßçW®\á s ðSœïÝ»·ØTð»}û6siÔ¡a®ŽÀî8 )<œ¬Ê<é:‘ŸõŸ®;\^CM¶Ê‹ ÂÈP<×EŸ{U_zÉž¸Í^àáȺ%ºö©ÌÓߦñ¶jÕ*9ðêÕ+ÊéTѱ£à·|ùò-[¶¬Y³† lÊ@»ÓD8zucÆŒ!í§Q‡Ë€&P]9Y ýr9æÂüì7‰s]tQ0*Ê9~¦¢p®`|}}™u%÷†ý¶oß^rÐa¯’|”äP}fèžÞœlÊž„‚rî€N¾bæ‚ÕO¹æ’è8×EÇL›Q96̽;|·ÒpŒ$rΦ>öù ¥yóæbÊqÒþ ùÙ;“œ6ƒ “AbÃE| “ì}ÄóÀ<ŽáË$qlÃÖS†#8‰SRG%ËeyèÇ÷-,ñ#Ø Ç«zUÝ€}8]À6)yÿ¡áßMOR;àÿ‰é ïœÝÌÞýæ"·à-ŠÜVödþÏŸýÓüð;XOàžg\†q‘Ûœ<:¹ðEâós/×O‹<ïÎÔíÀy›(r›·”ëIí™AÝàåz¹«Ó,שÛrÝEžqºNÝÓu;yyDžmºÎùs€ýutŸ“ÛÍQä ÁçÏž|ßÉËåò‰ž\Ùº(×­'7'O"·³tjå:y;àäQäîä‚õ#~8¹Ôœœx¥q¹`ðFoâå:u;0'ŸL&²Á9àä.òJ¥"åäì½KG‘Û•5š§ÐØ{Êu¹N¹NÞ¬µž¹ÂÞÓŒÐì}ÌAä¢#4tˆ¼Z­J99ós ]w‘Û ›’Èooo¥ÒuæçÀõOQäOh­•ù9àä»lÀÏprüpòZ­&åäø9° üææ&½‡\ÜÉñs '·/œ?œÜÞš\,Êuwòg¹ƒŸNn"·K#¦Ói¹•ëîä¹ÎÉñsÀÉ}'÷rÝE.âäø9àä.òàä=9çÏóä"¯×ë&òív+{žœs,€È¯¯¯MäV®ëˆœ{&€ž<ŠÜžÓ“ÓŸ‹@O¾ÙlŽ:¹HON¼ºØDî#´X®Ÿu{Ž@*×]ä²å:÷Ãw¼¹Èg³™=l4.òŒœ¼à„ÈG£"çÞ()Þ¢È ÞØ{„ž<:¹ÂQSús '§\§nׇr}½^»È›Í¦—ë"§Ð˜Ÿsr¹ÍÉ]äÃáPa­•¼‘;ìɈÃîz¹È2 9àä¡'w‘¼‘ÃÉAð6ŸÏíI«Õ2‘«oäp@Oî"7' ôäôçRð•ÕjœœeΟ A¹n"·àÍEnNN¹ÎÞ«¤ëQä"é:y;ГG'o·Û.r…žœ=`w=мßïKÐÐ9àä¼¹ÈuœNî"¿»»{bNŽÎ‘ãäìÃ¥)‹Àˆ…Z9#´s5_™ò/S¡-—Ky§ÓùçäŒÐØ“IÚ¾¸¸Ç…B!é|—!8¹‰ÜÒuy¯×{„N/*žµrîüü¼T*¥Ò.Ǩ†Ýõ(rv×Ùo?¼Ð>SÝžcÇEŽQä¶\‡óóôižp–!ÌÉ£ÈÕFhäí@OîÁÛÕÕÕAO¾Ëòv€˜®ßßß'‘w»]©r¼pò(r©t?œ|±X‘ ]ŸNn"·à-8¹DOŽŸo.ò¼?ÿËÞµ„ⶆá½Ã Ée@.e‚\Ê¥8‡PŠ0I”RÚír/÷3’‰K¹”JŠ”R.³½Ý:"„Îõ©·ÞVgíúýÇZýužgð÷Y­ßÄûxÞ÷ùÞïýÞ‚JÞÒÒâ(%ç¼W‚×$iM®$dÇÏ¥ºîÑHúæ ú܃íÄ?H¾¿¿O’“çî©RÁççg=µb~áåå/<>>þ7‚‰$'Øß®2ŽÐñ^ZZ*//ÇâõõU_ù…Ò@}}ýÍÍÍðððìì, T€ú{»ÿRj¼™Hþ-ã 'òéíí-!z___c Ñ×°žÏÍÍAÌ### '''søÖ_ž7#Éi¼Ñ‡s‘«ƒ¨OOOíííiiiÕÕÕÇÇÇ———CCCˆ*‡ÑÑÑõõu¬GFFJJJ°HMMõó󛞞ÖYvƒÆ›YÉ[[[™®³>뱪ªª±±±¶¶6„ޝ¯oOOÏöö6h|xxˆk·‚ƒƒoooŽŽ²²²ä»ùùù ìa$9”\I>00`$ù3Öç2þmgggeeekk«²²r]QQ‹õ é333 Àüü|\\\JJÊêê*ø-¿»»‹5rþöƒw¡™Iî˜*„—ÝbޏINNމ‰…އÅÅÅræ¼´´tyy °½¶¶ ¼®%}bb"Þ”oÙ NkÕtÝLr×é:ÁóçâÀ]]]a!ô>??—çEEETæR“‹°(°áí¾e‘Æ›’üàà@IþVã 'ù^vvöÅÅÅÄĦÁSSS¨Ïñ<""¥xCC¬u¨=žÄÆÆžžžBÀ%ÂP½chweHãMIEIN%g}îFáÒÝÝ]WW—žžž³-,, Ô s%zPPÂN ÂÍÍMXq"ìíšâ«‘äýýý¬É¹î6d®kSSÓÞÞ>áÃaØÐøø¸Ž …àcðÂFZffæââ¢ÀÆÆFYY™­·80]‡ñf$9‡Fð\ê¿”tÉ“’’°»–››‹¤[h÷÷÷0áqò©¦¦ô–°Ÿ›››×ÖÖ°€E‡n™œœœä–€p¡äîv¼Ôsuq¤}a$1ØÞÛÛ…þ‰*xìØQÇ>®ïQI±V[¨ä 9•œ÷4XÙ€¡®„‘dòÐp趬ÝlǺ±±Q‚ObÂb¡Ç‘ÌØþ0’}Š}}}l†¡g‹ $FØéÆîybùý L×ArMוä4Þ˜·ÛuMªpب!zîEžXh¿bsjºŽ²HIÎ}rúpNg¼¹ProÔsÇ€J~rr’•œÆûáo ¹¦ë4Þx.ÕÉ É¡äØÎtÉ òœ½ëÿS%'Ès¦ëPrGP!Ès*¹óINç$9Üu’\Axyj„°îèX5¶™oF%Ǥ=%¹:ÞîŸ+ÃyîßrŸ$Ç8]UòÎÎN!9;ÞäíÒÁ~ww———‡sé:.ê ñ’«’ƒä˜¨ëIw`Þ.$1àlg2ùž Èœ®+É=œ®ì{U‡ÔXx^…éºYÉ=Ÿ®ì{Eºþþ|’îºóÓu‚ûj¬ÉUÉ»ºº@róAxýÍ¾ÝæDÅ`öseº-àÂ:AešÑF’xÇIæ‡ižóƒœ´}Û{­ÁòÇ÷"<5ÝJßEò¾ïO>5öWÏUòùØ®×’×í:pÍný^ˆà-õc»Þu]Hž*xƒ÷çfòÐ{[ÉK)Ifr˜ÏµÖ’×3ùí)€}õíÚõUòº]ÿíOû¨çÒõZòRJætê¹J’g Þ ‡¼Eº^Kžg…9œv=$g*!@ù&Oðw2ŽajÉ£˜/’'Y¡Á};ɧi:#ùÍÞ{8Á[HÁÛVòT+4Ø«9†©%7“Ã^M%Ôóÿ®Ÿ¯äia o¼õ}Ÿ3xƒ¼äó“”#yØí:ÐÃA¦äÍfÓšä€çH>™L6%o4H¼7ÊÔ÷É%¹ÚõMÉí5α0'Ï‘œ$æçFÚu_r#í:зӮû¿É[­–Íßä@Gñ6›ÍRÉëõ:’=œ©7_rSo@Ç)4_r¨=œ­âÍ—œâ 8Çbÿq99pŽÅL’Çc'y»Ý–䦎šs5Fh’\sr'y­V³Ö®s5$W’û’›*ÞÏ‘|>Ÿ›JrÀsHrúö-Ûu_òN§#ɳ—aèÛƒn×äÕj5§]`~Þyr_ò¼99y\’F#OòÜ7ò|÷cÜ%y*¹æä[$9yn!Éå@ž‡’ä’|±Xèf·ÛÝ"ÉÈó’ÜI^©TLý&öÛÙxó%h€.&[rŠ·èáx\žÛ!óq½×ëIrS§Ð€s,H>ã8v’—Ëek’ž#¹’ï¹°UD oeq·†FÇW][YâuEûR~ÕÌItnÞ– >¾è¯?-ºð‹ï•%ïÛ¿oþ¼ùô±™¹aö<„ÁJ£Æïw{?÷ïg .ìØô§e}¼î×ëOžü[áÍ«Y?Éâªfª††aö\#¢ê1Ñ1ÝÒºeÿìÃ%ËÍùù¬>È`²N{h#Í0Ìžë~;I5Õàh;¸ ÃìyH£ÉäîÿfÆ ³çM•”¦ó^píÐX+-·« §" †a¸¿ê}oRnQÑŸŸFÏ·!°…'®¨†áþêVÈÅÖ%niç‘Ò_Öüj ªÄÏuLDZ´½i0 ³çš=.H H»¨ôöíÛ‹‹‹E? z¡›6mº{÷îŽ;._¾,å¿hX.!ˆ¬0•+W<(÷Ê¢÷¡C‡Ž;öðáõk×ÒAÆ|S Ãìy[úz¶)ˆpòäÉ¥K—rUK>ìܹ³S§NqqqË—/§ê–»ê̺E¾gxéÒ%óÕ«WÔuëСC»víÐÿ3gÎÈïãj Ãì9CPP íåèø!¬¢¢¢´´´G™™™•••¢·bœW®\™••…0räHRÇOœ8Nr)pXrË‹ŠŠD·ËËËyòš5kâãã1Ýe…Œ#É­¤µ Ož%“)!3ð”””óçÏkðLÐþ&LÀÚ‹ÎïÝ»wÚ´i­ZµjÛ¶-Æœvywà8PXßAÌ;iíŒvîÜ9]-7 Ãý†+ä²™ݼyóàÁƒ§N:`À©®š¦ªûèÑ£Ž;ÆÆÆŠ–¦¥¥1µFQ5äº;mРA\½páo‡ˆ·/=eî-§Ïž=c@ÒÑUHJǤ‹$n/³Ãh\X*×ÏÑ(¾R¤.·4ª†‹(DGG£Ò¯¿ 4PÙÇáOOOß·os<ü6mÚШ‘¹À1Uo!È®8u"´gƒ†ìλù¹XE*ÃÜ»wùùž={ˆá3ãN‹þ¨ð·±Ìš4rç΢th»~ÃTX˜4i“|ôœèš›d°ù§Nb–Ž+Á«DÆqšÃðù ÓõsŽ:sÖ©5íõž"«C½qõGŒ!ílªÁÓÕUç gK i—E·Öjç ôîÝ»E‹6lpÞ"†aß]SÜÜFX_jŸ^ï†=—ÓÇdO^ ?l¤á´Á[êÄ0ÙÿóDý|¨ÓøúÕ:‚ÈÁÇT¥…:ý Ãx;õÛ9­7_-°bŒ¼³¦Ð5í×× #H¤·Õ‡3¿Ý0¿Ý‚Ò†aùj†aØü<°ù¹aós'Œ1t©ƒíú4lýÜâp!ýá P9°'²vm ),®bÃ%Û_e'ŠÈ$5!dö&6?·ù¹h¯€qîß¿?iE´kYšŒ¹páB’´(10kÖ¬kØúyøa~»¤ xü ,å€të1í’}HR}É œîÓ§OÉ)Íòøæ·‡†(956اOŸýû÷“€†“AXXX(öœj·nÝBX·n}¤qܸqÔÕvB ã¿ì;¨SA@ý¼BðÆ_ ÅH*ƒ°°t !Ø b*› iL¥Ä&VZ ¬ì$ v‰Úh4 F"Ió y~ r'»Öw¯S„½ûgîfvßåLÒãv½U O4]ä`ñÒ¸eà…B¡Z­‚ÇétšÈ¼V« ½·Óéd³Ya(‡›!ô™ÏçBûqqW4dLÄÇ,nÿ·#š’-<Á¼±FlÏ‚.y$I9mpÎÍf5À¶€"Û¬×뼨‚{_.—ðså<P„ÙF£‘<®¤k²¨æœLļc·'ןc “É„HõyˆÂ¡W<›Í"b9xc½|„Ò Þ#ŸÏ“B‡GÌ»ÛíâÕËå²´¦R)Œ_Íò‡à½V’¡îUbi$<}r=¨±L¼d-±¸/Xðd·*’Í ê - |\¶-ßtì"R“ëí”R¦ ›ÆüîýÛŽöÎööäýþž|9>ñb¬èÖñÃ'†‡=ϵ}»É,"µ·ГÇb±ùÌü¹3çç³³gì½4èJ·uM´uN']Sãé±d²ccsÃ~#ÔX@kmzòõ/ëW._-$¾'S­ûNÅ\×ÛþVØúê–bÅc×w_Kd2™þ)«±ýsvÖ=ùpêóê§ £­Òä¹%qD;Ž3§õÖš·ëˆ>9¼gæß™……7¶Kg_-€ÖÚ¦®ëÚíŠjyžgR»ºƒÓ™›ô¿ÇOöÿ%M´—×*ngàb8J©¸ãn–v4K‹<{úÜ~5°ÞÀV­ÓÆÆF“6TÉ^h&Q•*Ö;‘­íüêÚjâtCÉÓŽ#ºd˯5ö¢VMÒrT^¿š³ãvæçDD)•ËåFFFz{{{zzÊiúúúº»»S©TeÓÙ €m·b~”˜ÀÆš’ÛÌÙ3ëíl'œÏçÓéôâââÊÊÊÒÒÒr•²ÙìvΦµ‰( ÃgÆ6­iEJ]]ˆmº!´] Q I ùÑtçR1;—®RÜIóñ¤ ‚ŠâBE7»ª¦ÐÖ$cœ;ãi 2IZ Áv¦ï³¸LÂ]æá¼3÷ÍT*‰= ›|aZÆYd™2Émì&U¿ÒXpL sÖѦ éJ©t:‡¥`$ùGV"j¿hÿ’%çôN=Ã0üƒþP(ôêåÊDL×H±Ö´ßI&9«¯û´æ–e®ÑÕdØñ³ìz¯F ¹8çöÊ’Û{¨Ú™äƒ{ÏgVÖ_4×}MEšÕRyWr:¡ œê{÷x{dxt.6GDû`Ño—:ëz°yÞSpL”!ÿ÷êD§Ï]ã³5Ãl¶æÊIþèŸÒ;¯§™Tàl@F” þÇÉYZ>Í)•JÑhT)åëïÿ°ð³¼\ ÆüÃç}ªan~þµ¶Ô4¾i©…Ô|b^î7ñ~¸®‘c=\:íÿJ^«ÕˆèÉââÒò³ËW>>ü]ºócõnõ{npæÒÍ7oW“÷“2Éíȃy± \»rHžÉdøW)ucv¶ü¥¼½UÓ4º8~atä g{éÀ;î4Ñ“qBDŽõ?€ýÆˆŽ’' .kò¥ÌàøÄôôäÔÔ$KΆ³üòØ-gº˜ç÷äθžÍf¹¸Å’síRöÈ ¹TbØp×=ÞËs 9#É\š—öG¼Î¡í/¹7€ç’‹ÅH$ÒQr”¯à9€ä<Éëõ:år9oJn{$ç#4×Çux€—%G"’ÆÛ’ó÷¼Aó(Ç©'P†é>ÉížD'×Ýûà ¹€nq=ŸÏ;⺬^¹ ®‹äñxÜSq¹ ® .ôKNÇý/{WgFu6EC@[ j¢Áµñ "¨×,ínæ¢ ž¼‚zPQ¼xËEÆ-ƒ‚÷%ÃxAqC<( Þ”™qÉìù ¦±cÍ$¶Ñÿç½ÃÏOéÿÝ^¿W¯¾ª2·o'˜®ƒäPr.¬Hn’t÷±l†]×\í÷0"¸ÿœ @W’÷õõiæä¦‡ù};A»’¿xñÂÌvy;A%’+%7¹¤žTrë9s8‚Kh%7OðÆŽ ]ûö­™í:};A»’çääh‚7M¼Èúx:ßzéd¸»âù™ÃTòþþþ+”\w?ЏT_î?•qyG©[ö<×™`[«üôôTH^YYyÕ.4¡=Fð}–çÑÑQSSÓááa```KKË£GPœÇ‰qøëãÇív{WW×í\¥Æ¾W‚vÝ•äWÙuuú:ž¢Þª*loo?þB¦¥¥íííäxïííMOOOJJúñÈoóöO‚m­’»^Ÿ aûÖÖVGGÇôôtVV¼ýÎΪ ïîîNLLTWW¿yóæþýûíííÉ!ïáááxöìô\êð|¸O‚Kh‹‹‹’ãéú-k°å­­­"à™™™ø<** ”ööö–fØããã{÷î¡æØØXjjª@·ººzrr;@žß B¨«Hî É4Jî oü[www}}ýòòrPPÐË—/ãââž\äÎf³õôôlnnŽŽŽÂÀKç8à’­¸5pýœ ’ÿ§…ôõõÝß߇bCŸß½{Vggg/--a·¬AêQMœ¿ŸŸj®­­É¯ÃÅŲ:¸w•êÝ-PÏ *¹@8¨^[[›ŸŸ ýáÇååå 9j"‡3nkkCAÌÛ‡TF2ïïïXNh#” žTò……EòÁÁA’kôüüü¢=33ÆbmrrƒUUUh•yõêÕøø8N¤Àxii)þSƒøóv¤€î!õœ DEðJHž››«HƸFÉ55áÀ‘®544`ýî ù¡äðØØØÄÄݰ0ŒƒØÔÍÍÍÕÕÕ¹_Ì©ç!ͧï%ùGÿ„Ï}||$B‡G&v± ª¦üµ¦¦«k}ˆyLL ÄÜÍÞ“zNPÉßKr±ëZVöääddo². °ª‹V ùAðôéÓŒŒŒÆÆFð_Öç¯ê9A€Kz%—àí#ö“«@^}«ÿ\ÕíÁy<ݯäÔs‚J>??¯‚·¡¡!EòëÇÓùå¦ýJóÝo<©ççäèZ%/++sVòë¸Èu¼wÉý ¸AE)9H~IÉºÓ îc!¸ÕTH%W$‡’“䂽ëz’{ÜiçA%'Ï *9.7¹’“çIŽur¼i”œ`?œñÀŽ7W’q í_p] ÍË…µžÆ!!KhW’œKhì“p8V«UxNy¼!Pɉ/õB£7E¨Uh“h’‰{±¸€ˆ"‚ˆ†âBrApIRM“4ýãÃ0ï0“0™Ì÷žü~W/“÷ö—ÿsžóœóö `MîMrï]§ß”ëïß¿W{E’G$¹ÐoŽšZÉm¹îTw<.¸råŠ'ɺ4‚<Öä’\7#¹7É{üyL¼YÉÝOròHrI¾jÕ*’œû^ÁÙÖNÌV[.¦ vâÍ+¹'Þ 4À’Û²Ð<ÇA üÜ 9çÏ“J -ä”÷ïßïêêò ¬œ× OŸ>}ýúussóË—/õ~º$GòË—/#9óí}»ÔÕl®Š––uqÚÛÛ#ÿÚÝÝ­g…†~ß¹s§žŸœqÛ¬ÆC¡VPèÁ&¹}S†›—+++óòòFŸŸ¯ß/]º¤H7ÿzR7%¹dŽ’|åÊ•4ÞèÃ%®ÕÛÚÚJKKssssrr***FõàÁÝ+d¾ª§6n܇õþÉ“'U+êA?~|À:s4Þ”ä1%OP®ës“Ò{öì¹víÚõë×ÏŸ?ãÆçϟϘ1ãæÍ›ºTïܽ{·¶¶vÁ‚úýÕ«WsçÎ5>zôèíÛ·J’@*^J`}®*]a^WW§d˜9sæœ9sŽ9ÒÑÑ1vìØ‚‚‚Ó§OK€'NÌ›7oüøñ·oßÖïcÆŒ15¼® Pª(ùmà¤ÆZãK¾Ç’ð>Pòˆ#¦L™bì:uª”Öó† $¶Î6ž;wnûöí&üu“”y™™™zS/R ·µš5¹Z!¶»^]]-ɹ­•óç}hídeeµ¶¶ª&7—Æ<{öLÛf … >|ïÞ½z¡¨¨ÈôÛõfäý¶-ß“Jh¼Ir%¹ê,Õ_Jò+V8ÖxƒPªwbÕu›?þ¦M›t¤QÏêÃ)(T(Jr•îGÝ¿¿‰qöÚ3Wþ9Rn755©Q7mÚ´Ôµh¼Å—\o&žSÖçæÎæcÇŽ)´gÍš5}út-¿Uš­2íÊJÓ`WnÈs­Ï>|h¸uëÖìÙ³µJ×Ëý¾aË¥ñ%ûç½GHà‰'Þ¹s§±±ñÞ½{555§NÊÎΖɺÔyòäɺ×Yoó,ZÏuøÑþ èp(×Y.q.µ·\FøI“&M˜0A1¢ß¼y£•ùvïÞmæá”'zرc‡þÈyýGP- þœ™± ö(Éû>ñä¹½›]È^ýb*y-Ô)ûöí+++3cí&ÒÇW^^þâÅ -ÔwíÚeü³…$¿xñ"IN®ÿ©EŽ©K]eÈ¡C‡lCÈÞâ.«ÕœÓ³ÂßTý~”…*’\bɵJ’ð ÃЇKÕº>àý“RÝÆx}¿Z=¡äA nOÅgRCð~/5ÒížäÛÂŒ#9ûäôáü ûgñ“œÆyî`$¿pá‚GroœKuo’\³I4Þ8—ê {£ä€ç$¹ÄÖ$¢S’ž“äÞ5¹†ˆ¼ðÉ%¶$W’#9ž§!vDÔC iÀ+¹ÄFriÏQÁ~‚‰7]Âg%7å:o‘–!-¡ZÓMýrò¬äj¼E%9o‘ÆûLtdåðáÃfÖ=¬É½’ë[åt× ‘Æ©Lݧ‹â’9©B¹žPò`æ^­ÞÉ]r@Å+yšËu nOþÈ0ˆÊu`ÿœ5¹n¿·’Ÿ9sF’ÿm¡ësK°pÔÔJ®;s­ä%%%1šø&ÏÁ^Âå•\底Ü{ã:@:ûp–ž^1ËuGoÀùsˆ*×õlËu߯Éõ9ôzM?Õíì“744˜r]ÏVò„×?ø&Ïé®Kr%¹yvª»ä9DInÊõeË–9Òxúp Ãx“üìÙ³‘’ÜèÃQ®Kr“ê¬w9†aÂá°WróG¶Ð€ùv$_½zµ-×#$÷7À<Ä–|éÒ¥FòˆKõü °¯Æ0L|Ƀnì«‘äŽ ÃyNwÝ+¹¹ƒÝ‘a ßNã­¾¾ÞJ^[[k’Ü©£¦@¿É׬Yc“|É’%¦\÷«ä€ç uãH®$wGrÀs$÷–ënJxŽäúR…‘<ª\÷åÄà9Ä”|èСFrs@E¯!90çc¼’›5¹•œs¦Àþ¹ï'Þ¼’×ÕÕÉõ¬`Ÿ˜‡sáú'‰mËu=/^¼Ø&¹¿g×{&X–[ɵ…f×äVr´Ö> 9à9×?!9po”£·x’ÛÆ›çXØ'—ØVr o%'ÉýsGºë’|íÚµVòââbGºë@¿0/¹+IôáÜ–ëHôáÜk¼YÉ»»»­äNM¼}8N¡i^=¦ä|ºèÃùoã-JroÀ9Êuo’ë°JT¹À9ßo¡Ir%¹•¼¨¨È©£¦À¾c­VòaÆÉí®ûjH®5¹•ÜÇ7Àsè­äxŽäú\qbɘ“ñow]’¯[·.jM®ß#Þ4Ðo÷awÝ+yaa¡í®G7ØØ?w É­äÁ˜çÎ$¹_?] ä9y.o“MròÜ_In»ëÞ$ï‰yî‹$¯©©‘äòY’‡Ãa¿$9yž8É­ä*×­ä‹-rdMÌ·3 “Pò@0'“æ-´„’ýu{li¹Ôí”ë ’Ü©ShÀ9$¯®®Ž”¼  À5ÉÏ‘|ýúõ’<33Ó#¹[ž#¹Öäþ–€~»í®'”<èGè·{‡a¼åº?ºë̽ڶ™Ðhº>„Ôý£®ÂÈßµ×Úk¯ ôW†È5';"OÉ›•6qÈ:ô¬s°ïé³g݃ÞazÊ® è4›öí±£9buˆ|<»µÂ{‘%út ¤Íå©réÚ‹Hâí^uÕþ¯ÿ;=Ý;è=½ÿ‰Eƒ•!5Ë€õY—%ö3o-@»P|A ¯¾Õ8@×íp˜¢+¸PŒHn;FŒ_j£×«¥eVíyäG“ŸwZ 3Ü´ü†É°Ùt?kÌ'~Ì¿ð¤õqÈ”©H¼1&7óí~~~§OŸ^³fMzzúŠ¿>…{vïÞ YÊf¸Í•*¿SQ©Eh>¡&äxµ7ÃPÓm–çÖàŸ>KWÓýfe0>Â:™åË—'%%uwwC¥ƒ®‚ÏŽákÀ¦5(ºüyÌëšM7ûÃÃϱCë^UJVVÖùóç‘å>ïh·zåÊ•œœ|+„èK–o€õ±féG< sÿ7Ó0¶Ø /­·ÉË ÞÆg«œúsœ‹ÇsÈ%äãJ䎮I8LþkÅ?µníéŸÏ½| ͪÁÖÐ I§ÃCì&/ÓýÒî9qI‰ ‰°Ç§ô±Cý9ÀŠBúÍä*ª<%¢vtÅÌŸ??>nÎÝ3ÈútË{xr+"ú!Í;ØÔþ‡µãWm{æVÉüÓ¥ús’6›Ìg¿?cj ¸¹«Íd1{™Ì>†1Q÷ 0ùN6ÿuÃz3ëéÂ÷nü|# Òþ„П{ €wÞ~·¨¤P¯ ¼¼¾µ*¿³óÞ`Ïý¡–«½7rÛÊÿÝžº0µà»]Ó=2ÓNý¹”¾ ’_üáâªÚªŒ­_ôýTžÙ}s{Wý7úôÎä‚‚‚Ë—ž ‘32'ôçž ,9¿à·‚ÿóÕ— êîVÞµ5¿ßùmø˜š+]§?'ôçîÕåØ9Öð(ΉŸ?kÖ¬ð°p3’ÏcXNèÏ=hXbu¥vË0j†žœÐŸ¿!È6»hÈ+¥úsBýùk¿‡Ü>Š–@Í«GBý9Bh‘´}Ã6û3¤j~„à ãgÍ™‡¤1k{{»2“›š››;::=zäîñ6!ôçÊ!ñÒrª\.©GŽ9pà ¤ ùùùÇŽC› bïêêrë=pBx/²j##ç[DóжT¹\»v-##cÇŽ¾¾¾bm œ:ujýúõþþþÉÉɇ¼ì–ivBÜKç---h>qðàÁèèè)S¦ìÛ·O–Ô×××ÖÖN›6Mܸô–8wîœa3gÎÄþüìÙ³˜w¼íb¸URW&\ºt©°°Ï={öìܹ÷aÕ©EEEK—.íééQ¸xñbJJ ÿ¼yó0¸~ýºZòJIŒÏÇZµ–——7{öìÍ›7oÚ´éäɓʫ^Rn·oßž;w®úê¤I“ÊÊÊäÕÉt€Í Qi#ûãs×AF="""!!AÖç ,@.]„­ž‚Dï!!!ª¯kll,¼½ó1¢E‹>,Ù¾QŒ ©¨[úÆzÙ×툮[[[>|(ayuuµÞ±F2„­^{{{_PÁ¬©©Iþ£":_µjUvv¶ž÷4¸äö¯{÷îÅ9¹£G®^½ZŒØ‹ŒŒ,//W:¯¬¬LLLT¯£ã¼!jÍÔÖÖ&¯Ì·»¶ÊbbbWu rüÕ„5552)¾“Êw¡:üøøø íJEêŒÏ¹Î5˜4ÃÇQ¨=pFHü³/@᪲Oœ.))Ù°a¾Š’äýû÷K<ÏXÏຠ_BTTº÷à „£~ÇÏÊÊ2 “™™‰žÙ0;qâÎ ¡''°råJ4ÞÅAÏj¶IþÇÞÙ³8Dax? ¤IAP¶H'`°[m[ÒØ¦K~@:Iv7Õ®ùXÙ°Z V6)$ ÿA°ˆ`¡¨…AÐBÌúõ°†åœ{'õ½ÙS ‡3sçã3gæLæ¥^·»§]~Ç‘p¹ Ü“ª‡+$¨v»ÝƆ¹ÿ;™LÀÒÅ«‹EàñÁØÇÀòÉe~ €Þ3ŸÏS©Sa`›È¥i(~*•Pååº=J$v.èT›q$†ü†CÂW÷üêé÷û¥R (¾Á`@y^¹Æû¯×ëFÌl =0"p`ãK ‚á#`›Tº§Qš†â§RÁ;;¿|w)$ңѨÓéSµ;bP\ȇ*læ±ÂzÅKo“ø«jµŠ ɇå…Ñnܽe2¶ôÖ¡É ¦R«ÕÚ?§øé“xät:e"‹¢?ßXZôÜ®IKXBX1{ ¥rE¢²”pᇶ]„Ž Ìri`žg6›a·ÜÛ•¸ÚÅQ c ä°gRÜD"n>årYÖ« ö¹nÀ{væ¼~ÇꀪTÿm·P©"PÕV9ê%µmY}†)߯m™é8t`¦‹$€”Ìî'6+(qéÂòþVl…–Q¼-£ROOìç–l=£SY–ñhÛuLX–­V ‡Œ—FÈÊ›Íær9öä8v¬ÇÞëõØœ³cç«B¡@ø] ô ÔÁÈ9h|•J% ŸKYZü(ºÿü]¼nÿßÞÝ«4VÑJ®È¨eë4ióTiS¦ßFÒÆÒ²²µòwp +ì±*šãû Yr—lRŒ³»ÌíT)xhÞP¿RÚíKu£n·{i_jvZþöþƒ‹Áy¬MD´Kky^e$êæ ÔÍf“3öår¹X,boüxKœÕu]nÝ“½Ôª’’Ÿ}·¾vñýŸ\7Ú=¶¯V½ìq^¦gCóзñV™ŸG;޾ɢ—7gG#oˆàPÇ“Éd»ÝÎçóÏÇ@`÷!_á ã¼üüÿÌs,”ãå?ìá?H󕜯×ëÑhkéÓét6›å[ÞØ»} 1aésfb}”ÇÄ…Õj•™¿$´P‡ÓëÍ6リ‡ƒjÿG§£ÏA>äs@>äs@>œÓ8_ ð ð;ùð `0?ÌÏósP÷ ¨{äsÀ: ¾ç€8Ä9ˆs@œâPߨ‡Ô·ö“ì'¼Ô˜wŸK¹ñIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qlineargradient-pad.png0000644000076500000240000000432412536324501023347 0ustar philstaff00000000000000‰PNG  IHDRÈ&'aߨ›IDATx^íÝÍn\å€ñçÿž33vbò)Bù* tÑ °DìUJn¡«ÞHoî*Ä’%T­ "­BHùqb{6^çN¹Êæ7ŸP÷nÂt«ÿÔý›l~û)wÊ5Øx­‰('d-b ÊŽhÖØY¿Æöæg4 ÐŒ ˆ¦¿nšd{ó:;ëW‰fÙqBˆk) Ãþtº"d&3ýuÄ ¿·?= ç!§+AÔF@ÿáø( !Û‹tÓ"‚>ˆL2èEB’ý½®; Û DÞ‚ÕpGž6fŸc£ LïЬ ÉLJ5ƒHz ³KšfHìoR2!Y2% …%1–ÃZ³eƒ¬"‚è¯ë¤¿·Öì’ã¯!ZV[‡Úš0û'ûˆ†èö9µ÷.ÿȽÛ£‰1D@ÖŽ.[Î\z…S{oQ»1YFP+«¡šÐ’0û%d%cÛqáìÚ§®°½½Eì@@iNsæÌ9ÎNÞ!·?†2œÅ‘¬ˆrIkÅ, †ÄÖûœ[¿ÎÆÆ›Lã´ùíÎ[äÞì$½Î'_+ŒÄ5H»ŒDÉ"’$c?Ü$vßfØÌºÊüücÕqËAŒ¤×A…œÅ@ÓuGÐ#Y1GX^ Jz‘•¤d@>£†r•¬¨$é>MÔF =Å’œbýÚHîbIîbIò€“tIøKrŠ%¹‹%ù<ˆäó ’σHrKrKrKrKrKrKò­&’σHnóJ>ÒK$÷Ÿ¤'’2îŸb$’b±ìh¹/I‹Êº|³bMÈ„:/ERêbеÈFäü$=~ê PRοÄsQÌŒ¤Ì"Há!$Ÿ94‚HŠÅ. ÉÃI¾ÕDRr ‹tÉ],É],Iã"9Å’ Dr "y’.y’.y’.y’.éð[Mbˆ¤øÙS,É)–¤„ä×ÜÅ’œbIN±$åC‘ ¤p$ImrÿÛÝ%‘qô÷ƒHÂ/ Dr "ù"9Å’ÜÅ’ÜÅ’|DòyÉ)VÌ™“tô»y%%d>0É@ ÉçA@.®{yèÞ äK‹ˆBD!³ ¢!3!ë¡hVÉ@VrPè¨ÑÐMÇÔ)4zÝJ M;"³{ÄFßjÒËäXGLÇcN_|óϽA]$€éþwlÝúݦ ÉL W‰˜uAËQÌâ88àÒËWØxö2÷îm1ÙÞ`0z‰K¿•[ïqûßÐö‘@’¬€H(ÉñS@¦“Î?û:§Ÿ¿ÊW7?awë&“ñVÿùñš¯n~úã½kœæ5&“ˆ5§XŠ€Z;šáç_¼Æ··>£ˆ‘™”¦%sÊí¯®séÅ«Üýî“þw"‚LVÅEz,!µ›pêÌsLYg2Þa0\£ÖÊ ™I)&û;tñ"ëO³óý J3ìï-™"¡Í€@p<4†ë馔óEx½Lf‘Dÿ3ƒõ äæ "‚åR½KY¤+"‰€ƒý;<Ñ©5iÚ‚ED³{C&{›³x’LVÅE:ÇN™IiZö¶¿¡aÁpƒZ'D3³8& F”ÜeoçëÙº$Y–B Óƒ}¾¿ñ.O>÷;j¥?,ÌìÈÚõ×µO>ó [7þÂô`LDÃj©e)A ög›·>¢]à™ß^¡?ïÌÎANsæì9¶o½Ãæ>žƒÔ“2‚ˆ‹ôè×·?Ÿ6¯sþù79µqŽ èÆ_ðí?Þbgsq’ž™óß}lˆÿGOšá¨?¼÷ß·iô¦hZú{Y;€“‡ ÐPš!¥-ƒµ²ö÷f?wââ0#™ } YYD3%5 D™?}}\‡Qr›W2É@$‘ D2É@$‘d ’H"ˆd ’H"ˆd ’ ’ D2É@$‘ D2É@$‘ D’H"ˆd ’H"ˆd ’H"É@$‘ D2É@$‘ D2É@$ˆd ’H"ˆd ’H"ˆd ’ D2É@$‘ D2É@$‘ D’H"ˆd ’H"ˆd ’H"É@$‘ D2É@$‘ D2É@$Qˆ G iєȄ !‚MZ´@dR(-Ayb#‘æQ ¥å"|ë4nøIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qlineargradient-reflect.png0000644000076500000240000000527212536324501024232 0ustar philstaff00000000000000‰PNG  IHDRÈ'ì= } IDATx^íÝKo\ç}Çñïï9‡J¢e] ŽíÆA/Ùt“fYxg£€ýŠ"o¡¯¦oÁÙv•,#Ë.c£@\Äè²ìÈŽYŒDŠ·™ó/:Ä3¦G7ߥo»ÿNú „ÇŠËC Ç hÐ5º½ßÒ§ž„JrIƒ!Ç)BȰKŸ@( À€dP¡HBŸ‚H! H1‹DOŠ© i> )úRÌ‘ ~öA@ @`6¤Ÿˆd@§“´¬‚HVÓD2 ’ÂIϵŒ¬ d.2’˜ÏD ÅŒ¤Å’ "YAV0ƒHn±$·X’[,É-V¸T$[,ÉÏbIÞ‘¼"ÙbIDò$]rÍ+YAâ"  }{îû ’÷A$å9ÏA$¿zôD6$ÈÅi±$[,ÉKò Pòù ’iœ ‡¤Ì é-PÌ“¬ г|J—pÍNCrÍ+¹æ 'HVÓÌ ’÷A$3Ò^\‘ÜbIn±$ã.ÙbI¶X’…’òü‘¼òt’ú¶xDRæOÒÂŒ¤p¬f3s$->¤¦$YyV‘|Êm!i1 ô ´0GR $ÞYBNéOA$ÍrÑx&É“ô9’f¹X:ƒHÎ ð¬ŒHÞ ‹$‡ô—5 ’[,É-–äKr‹%¹Å’ÜbIn±$ª‚H¶X’9ýKr‹%YANY>$¯ÜJV:ÿDŠcáX-¼·Z @kÑb¤AM˜JUÀ°šKÇ5¯U£è`8 ¤cª&PÚˆ0¹ŒÕÄ“tÃH£ÕÝÕR[ÿÈákÿ4}ÕÖ?Ð]}kúi ó’ó>ˆfáL©ïñ§µwyüh›a¼ @ëÄæõŸðêèW´í_C·u)Ú,ïƒ(F&ðÊOyпϣ?|B— •€aü€‡{÷˜l}Àk¯<„©n5\†xÄkBë7عúïÿ޾2‚¡H×ÓטŸquë}6÷?e¨ $/y>ˆäšWò>@!)@}÷$½PPùn‹PH ÌrÑs" ’fyh's!©æOÒ«`($mþ$½žºÅ’l±úÊÓ %Uf[,¾;¤KªZÉ€4–“ð>ÈB‘”ù-Ö Å³I~«‰¤â †tÉ-–äKÒËXA$[,É€HÎ ’'é’'é’'é’'é’¿Õ$@!  NÓbI¶X’é(^äK²Å’l±$Õ3"Æ÷’Ô>þà© ²üù ’3Èé"9ƒHÞÉB‘”‚S<åVò$]Òi‡tÉ-–d@¾¿Å’TK†tÉtœI‹%ÙbIn±$+'"©˜j|I«o±$ %"¹æ•\óJª—â£&’÷A$[,É-–äKò>ˆä}É+³€Ì‘´ô»y%+H- ˆd@‹ä}e®\‡cµðÞec‹¥Å0¤‘4ª&$U5,„f• ÈJ ­IÇd|À0†n©É´º~DÕä¢U?‹PÅ™2! ヮÝþ!7ßü;Úè6Æûß°ý忱û𠺵uª ¨„Df¹è9‡€¨È,‡‡lýÅ{l¾ñ.msôx€µÑØú›Ÿ°ó寸ÿ?¿¦Ÿ†ŠbT@A+ΞiŒ¹ùÆO¹öÖûÜ»û)»Ûw9:Øþ¿×ôç{wÿƒko}ÀÍü-GG‡„—š-–† Ýú7ßþ€?|ù;ZƒdDUкžª1÷ï}ÆÖÛïó§o>þMªX‡ôœC@†ÉW¯¿É˜+ì°¶¾Á0 ÌT­­q´¿Ã$oseóuvÞ¡u³yä\© }Z€pF4«ëWn3ÒZfC8 SU³dú;kWnQßÞ! çK SCÎ¥‚( î?à•~a(º>@˜I Çï­s´÷- PE//+ˆ*EëzöMÇk£M†É­õT0 Çk›´Úeoç«ã¹$EX+È9dCiã£}¶ïü’­¿ü_}þ Ã䀤އø¢gëõ³ý_29: _QÃÀùRæþí pÆ)QA Ó³‡¿ÿ k·øÁŸ¿w|r°ÀÚèׯßàñïÁÃ{O— Åê˜>œ[@ü˜I¿¾Îýÿþˆ'ÛŸqów¸ví$ Ÿsÿ·²ûíÓß©*H‘•¤Ûbå¼Z,Õ,$PÅÚhÄ“í»ìüñçôkPsŸÅê×GTMÀêÃa‹•@gÏ5¡ëÖéúÇa mtP0!Yé§yÌÍ gK@Å ³0PŒ!³÷ŠÕQf¹BÎ‡ŠœÍü{«¦aÉ.Ùb-ˆd@–eC²Åb¡‚HÊ\@ÇÂSIž¤Ÿ. ’3ˆäš—“)‘¬ Ëgɤ (IfäUÉ-–äKr‹%¹Å’œANl±$¨ ¶Å’ÜbIn±$·X’[,É-Vø‘l±$[¬¥‘ Hã{Iê[ æHVºH[,É“tÉ“tÉ5¯äšWrÍ[<¤:YA$å9gÉ€¼ˆlHn±$Ÿ");‹K²Å’ÜbI¤q2’ÂTŸ@ ó$+Èô,™Ò%·X„Óˆ¤ÓbI¶X’÷AÂ"É òB"ÙbIn±$¹Å’l±$·X’[,ÉKr‹%¹Å’l±$·X’diùœAB!@!)$„>U„ ‰ P„*ú!=IC"Ĥ¨ôäëþjòÚè?9š\!sÙIU=kÝßìÿ5ÿ #î»ù ~ºIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qlineargradient-repeat.png0000644000076500000240000000503612536324501024064 0ustar philstaff00000000000000‰PNG  IHDRÇ'6Wð åIDATx^íÝMo\åùÇñïuÎí™$6Nç¡TUj%D´KÄŽlÈ[@êûè¦oáÿ"àÐ ˆe—mW©Ê”‡bÅvìñ̹¯?Œ¬ÌØQ=ƒ¿i$K³õO×Ã}î9ñô“_uËå15 P`Œä¼ÿß741¢ýËŸ›¿¶ I2 … @É„Œ$3€Êù&%ÐäA8ÆŸD@’@!H¦$Q’gCRÂÛ*~ ÉpHŽåG’TjÂÁgJ…3>‘Kn«$rÉpHn«$·U’Û*I³3‡$òåW¹’Û*Ép*‰¤ò‡mU" !ã‡m@")  LJCò„<™!9ׄL¨“”Hj˜´U³Û*ÉsŽ8þPòñ~â@.I Ç“ð>Ç¡Ê!)€B2•Kò×G$9K†Cr[%Y9$Ã!É™Cò„\ò„\ò„\r —4ýõ‘˜„CR¾T[%ÙVIÊ“ØVI¶U’m•¤<:’Ž$©$¾‚`†”'ù~ÉpHÎ’÷9âPåùro“•‡d[%ÙVIn«$Û*Éû’m•d8bŽ_Ém•d[%yŸC²­R9ý{,g¾;l«4„hˆhÈìˆhÉLÈ:˜sÃC@«EDK7PGÐ.1Ö ¡)Ж>™ÝYª"¶U™Ì•Á"‚Ñ`ÀòúoX»ýMF{OØ|ðwv¾½O»Ô#3\T@lz §%ÁA0ö÷¹ñÛ;¬ÜzçÏ7ní°Ôƒo½ÍöƒOxüÅg”q@ I@ M2 ˆ†ÑpŸµ[bù×ïópã;› ›ßÆ?Üø÷wßÝeíµ?2îC4@°*s¥è(ý ¬½~—Ç_ÿ‡¶húd&M)dñäÑç\ã}¶žÞ#³#" Y×&eoQ˜W[¥ˆ  Y]¿Í ^dwg›Ò»@v•©$b‰Ñö6ûë¯ýWÙ~ö%m9˜?N"€„ò‡ßA‰¹®rAÁ¥ëë VöinM›3ÿôIí‚Õ•}n¾y•O¾¤)§^9„#Ú¹C‘P ÏxºÔã"IÛ™1[aºä•k=®]þ/\š4‹Pv÷ ßBMæÉpd¡~ÃÒú.£ºB­»2§µ<‡ÔX¡;t[¨Y€E„CM@át&r5-Y÷XÞý¯\û€çÿEˆ–±ÚÑeaõÆï¹´û!YÐô!+‹`åàŽÈ••Œlýƒ«—¯RnÞakk“:܆€¦]fuõ —‡“[ÿ„¦µÉ¢yŸ#™7OȈ±ù)W.~ÎÊÊ»Œâ ”üвý!¹{Ÿc‘'äJNéÙ*%Ó€$}x±Aì|D¯ºš>,üÙ*å"*‡è éÓ§ri[ Bvgå©\ç%c‘•¤d@ž¡ja8@I2vè 0ÏEµp —œ9$·U’•CRrô ¹¤“h«$Û*ÉpHJ áH’JM8øLH:Û*Ém•ä@.Ém•ä¶Jr[%yÙIò>‡ä¶Jò>@")~üÂÌD@BÆì«–%dBáøpHž'3$òš u’I “¶jv[%yÎÇJ>>ÂOÈ%Ã!©áxÞç8T9$PH¦’cIþúˆ$rÉpHn«$+‡d8$Ã!9sHžKžKžKä’¦¿>“pHÊ—j«$Û*IyÛ*ɶJ²­’”G‡CRBÑ$•ÄWÌò$ßÏ!É™Cò>Gª’"_îm²’'ä’Nd —ÜVI¶U’æ7~{‡•[ïñüù&í–úopã­·Ù~ð ¿øŒ2$É(¡IæOÑ0î³vëO,ÿú}nÜcgsƒá`óûÏøï‡ÿþî»»¬½öG†Ã}ˆC%€`®¥µ×ïòøëÿÐ6MŸÌ )…¬#ž<úœëo¼ÏÖÓ{dvD$ àÚ¤ì *ój«t£!«ë·Ô‹ìîlSzÈ®2•D,1ÚÞfýu¢ÿ*ÛϾ¤-óÇ©QPþð;(1×U®"¨#¸t}ÁÊ>ÍÍ isæŸ>"©]°º²ÏÍ7¯òâÉ—4åÔ+‡‚ƒpD;×`(*páO—z\$iÛ 3f+L—¼r­ÇµËÿ…ë@“†cÊîô[¨É<Ž,4ÃoXZßeTW¨u¢@æ´–ç+ôb‡në5 °ˆp¨ (œÎD®¦%ëË»ã•kðüñ¿hcÑ2V;º,¬Þø=—v?$ëš>d…`¬œÂ¹²’у­põòUÊÍ;lmmR‡Ûдˬ®^áòðcrëŸÐô V Y4ïs$óæ yÑ#6?åÊÅÏYYy—Q\‚’_Q¶?$wï“ã`,ò„\É)=[¥d$£/6ˆèµ“ÂB@Ó‡…?[¥\Då0 4=`úT.m TÈî¬<•k8àô¡dŒ ²’T"€¬#È3T- Ç(IÆ湨ä’3‡ä¶J²rHJŽ>!—tm•d[%I 4IR© Ÿ Iço[%¹­’È%Ã!¹­’ÜVIn«$/;IÞçÜVIÞçH$Å_˜™HHȘ}Õ²¤€L(Éòd†ä@^2¡NR"©aÒVÍn«$Ï9âøC@ÉÇGø‰¹d8$5OÂû‡*‡¤ ÉTr,É_‘ä@.Ém•då ‡d8$gÉrÉrÉrÉ\Òô×GbIùRm•d[%)Ob[%ÙVI¶U’òèpHJh8’¤’ø ‚Ržäû9$Ã!9sHÞçˆC•CRä˽MVò„\Ò‰ ä’Û*ɶJÒœrɶJ²­’ÜVIVÎr8$ïsH¶U’Û*ÉpH®r%gI?û’m•d[%¹­’l«$ïsH¶U’áˆI8þ’Û*ɶJò>G0F iš…’™d‰/#— à %£™$@&pÎ"ƒA@&%Ûkäð[ˆ>É蜷XR2‡Öï’÷ÿÈ]ˆ–Ì ‚sCÊd," î’Àÿjë“ô·>ôIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qlinef-bounded.png0000644000076500000240000001012712536324473022336 0ustar philstaff00000000000000‰PNG  IHDRRŒ ý~Ø pHYs  šœtIMEÖ "W)ètEXtCommentCreated with The GIMPïd%nbKGDÿ‡Ì¿¿IDATxÚí]{¼•c¾ÿíKe—’&Êà‰¦h8bB.ƒã`>œ™ÃÇ`Ðä2Bärð1ùfŒádŠšÔcÆ0êȨf«¨D)©ìví½kíÞçy~ßïùãyo˸´¶½Ûk­ý¾}Ú{­õ^×wÿîÏï"PÔÿ€Pþ—B£ò{4µ¨ UÕp¯jê*^#}º?3¾€¿Ÿ†Ÿi¸áE““ãGñïâ‹%OþÓøæ=lr³Ô#FûâCûAãM–\Ï¿$H ¿¥ÿÏè¥ß‹ÔÁôûßáAd´':!¼B|vxM€ÉYÑŽÔíÃÿÑÕ‘œîL?]t©ämú>©×ɧ~Ä7¾füÄáwBô:¾Mô LÝ:ƒ´ Í¿Õ?ƒ4“¥™,ÍdiÆøãgŒ_v„³Ñ®Œñ[ƒñÕ8¦±È ýŠB~05Ç ÒÖ€Ô…rÕ}CDÞ¢Í ýJªÂGB Ï–~·þ=J3õÔBõ®˜±‰ÊõKÀ•©§Q©åò{y†FA5.O=eTZ•RG–#¤ÿ˜ÅJPC *£ÒQ)à‡cæÐpM-`2ï©%T 8*WŽ=¸Bn¢…RCæã·œJPÃñ2àgK*Ô…;¿€J h,2*Mky¯ßï|…ŽÁ&Kl¯OXcKdm)@8c©\ó³Ur-@ç1*$l E)¨Æ‘ ãë2ðÎ÷<ÄŠíŽDqÓ™'Ü0i‘ÿjŒ¦í¨Œ`Å ·ÓÑ­³ŒÏßÞ´2wZÿ*éUO‡Ü–fªpƺĆè8ê êŒcÝ-UÊÙ´P8ãâK‚v[þö2¡ß¸û}/ 5u›í¥R¨u  Ž¾ëûûôXGËù“ŸßÐäƒÖØ4i”;•.»q4Õ+”ؤ*|¡„Pµ6”'¶´!ÕÒe]L¥„ÕØÖ*3*g@ûÓýEŽ h¢ß¿ÂB @lZ;ûîÓ—ÒðñãÎúåŒF{gl9Bò;â~½2¤5Öž@hü¥:N°O…ÜKÃÆW?.0V5³%©ç<è;7ÛªH»£­´œªZcüçÁ†§—3àãRÑÿ¤itþY, H­±øÓ>Rqø:* ¡ÏÓfëø k•„*ë¹íd¹ˆÛ¸æÂño5l£ªÒc£XbÉ©'UX¥×éøo5£mÛu|o˜ˆÍs†Žïu“*9>a|€Î!¶¸JJA¨'ÆE7\LGtJìÐu|ª1ÆËÙú¸| ÝA]úð ¡sa²D %à…*Õ[*¯ Âš0^× jüÇ@ʰ.¶43.0΂ Ö.xð—Ëp|õ)·MYAo*„NW»AJx~7oŽê+GMXKÐeñç—BÃ/¯–/Ûo'Í€›g­ 4>^¨;žñ­àÞÕGª†=´Þ;ô‰H*î\}¨º pPuÃG›iø¢Tí9l FZk‡ÊÒH¿Û7®ÞSª‡M\GÐËÏR+PX«Þ/Éͼã¬ý¯£eÓ•wÎÞ¸Í?PÇ ÛR¯Þ¸j/©8vâ'¡@-Ñ,èHuEF”²~_©” SAµ±•Ûê²”‘ý9wäÒùøG7„ô™ÄëJ4 „ ¬sØüÁ_ÆN§‚Çô>÷?JªiH=žƒ×Ü[*OxlC¤ Êªü!vºØ8úнd÷F:®|-çWºl`´•_5´ç_»bétâ¤:Ö_¿ÌJɠΪ·­þØÁñDé<èÔ% Ws­‰ôðW€4ÒGÁ«—ï.Nœü Akʺ¢„0‘°h Cû×Òð‘Ëž}ßGgm`Bã pÆùݼzéRuòäúß#.ëº'ç? õ¿]!ÒmØõÓW˜Ð÷y›QiDŸfÎ¥»J—“WçíyÄÔ^þuO1Ö‚ëßwþ"=¹núŠÐg$Ê단4¦Ïm¯üh7©:eêÆ|}Ôêžk-‚n˼/<°F¤ÇQ×=¹Ì{b.°qtûó ñ´³ÔKvú·©õ¡>JL‡ŽVJjrÓüñ¨–ÊnGzâ½-‘°w>¤ Ԁͳ/é%Oý}‚gVÕ0¶l?á¢EzyÍï—Z%çƒÛy&ö笋þI:ŸöDC¢²²Üd%Àyz¥6.xøâ5"]޼fêÒ\˜Ÿèí¬èQ¬ØüòE=¤æô§6´6µ$—µ8H}Ku!½²qáC—\!ÒcÈÈiïæ|þV`"Ä3÷× v•ê3žŠèS³Jçω—ú ”]náÄჺ‰Ô 9eIÀ° ^¼ »týÎŒ†ØÏ*¿$íe¥ñÙZ o?2bpuEE×½ü±·7“M¾ ‡TŸ1£€ ñÌZlWpO½ÞRÔmµÔUªúœ|nérþCh®Ùhš3ÆßÎ…¨‹l©º{ºŠÔTH§ošR»9ßÎÊ¿µ'µ†`ã³çô”=Î{vãâIW î,²óàK«Í)jlgeŒÿ¥QýÈ^Ê=ÿýéþ½™›Ã˜ÜâÉWÖ]¤jðˆ‰µ[óí¬Œñ?—JA¨µ›ž?§»Ôœý\“·—b;kË»SFé,RsÈðGj‘Èÿ üÍ­ÏÝMºŸóÇ­q<$ô·‚j–L9¤‡ÈNxa³_ 7Ɔ٣¤ ¤ÏÆg¿×Uºÿן¶ˆÕPâã»ÈÎÚ²lêUGv«êA?´p“Oë6ÆwuÈ %5–`Ó3ßÝYv>÷OÍ1žøTp„Â…±'¸w§úÖÎ"]\4aþVÇ8o;½’×Õ“†ôÙôôt–]þû…­¬M”Ãg-”h*ÿ-·üÉQCw‘oüð· 6çé­Ž¨ž¼>"Øðô™Ýdçó^È¥éó‹WHóäÀ¶åO\{TW‘š/øí¼‹1¡Õq@¤ßgœÙEzþàÅæ”üܾEçÐ/œO4~oúuG÷©:è‚qóš"í4‰k—;¤j,ÀÍ3¾³“ìrþK¹Ø/<Í,M¯¹÷§_?¬{¥têÿƒqóêC;ËXW¬™{­)b<ž:£Fz^ø× Á³…™{^o™À§½`ÅnÖK¤Ëç=0·Ñ…ùpe­ž<}>yz'éõ×s±>j…Ì=¨³Æ×äV>}ãq»VŠôûÏßÌ­c”RXn!h'ÁMOü{ô¸xV@h\ýÓJYЪpÖX€ý`æÿ?H¤¦ïÔ$¥°œ õô9íÔjÙí’ÙÛB}Ô&å>åÅóùªgn=l8-ƒŸß5·ÞAØ8>PºFTdÏoœvJé5üÿ¶…ôÙ¢l“í A‡zË„J”kzI… qÑCÅ5%(K}e:ÀM¿;¥³ì6â“ð{›Wç)Ô¿ˆå¸êùëî§O?ý×s6QU^¾–ãGü^7åäjÙ}Äœ˜ßwp=~\V¨ÜòÝ]:IÏ >í ¾VÆÅyÛÅ i¬ê¦œÔEz]þªè³=Z(œ ŒO)\ýÜÏ·ÒòŒ^gßóR“ïtÖwæ^HŸ?±B¾vùkAž¿Ùž8¬ÿ@y÷I½«d.-W¯æ§¶‹M–Æô¹aÒ d÷ÿÍ$ôÙþ8Qmõƒ^-ûžuÇzÿ5*+*õå\`Ý£'TKï+_·ˆé³˜šƆÖÀÒ[OÛ[fÒp㬠Qu²ušT{9¤a{0pý#ÇUIï‘sƒ¼xH±u3SÛÌG o‘N}O˜–™…O8ãn˜x\'ùÚÕohÊþ,æÎXï]­|éŽÓöLÃg¾¸¡¹©4ÑGë>F¤ÏÕóL¢J Ù¦:$·±œ.ä'4í¨ž4l?Ï:¦Zö5ÏÅú¨¤ZÂ:„Yk_»’®íR5àúñGWHßkßrˆü£íX(ȼûì@H½¿Ipíø¡•ÒwôüØž/é&ðp6pÐoDÅíÁ>~ph•ì}ýß¿2Õg5NT •zýþѸ#Dö¹~¡%4 ›eƒÞ †4Âkþ÷ˆ*é{ÓB%ÕØlÞSËßÛKàG÷!²ßMµD^šb6ï© H#{þÃû¯”}o®u¤6…\iAúî”àêû¯¾eQJe¶ROŸ«î;Tä_n]äá™#l™z‚tõ|³Rö»m1}»tÍF»¶R8…*Wþj°H¿Û–Äãe²i¹-TÕï@À›¥bÿŸ,è‚xÜDiK¨—ÖÑò•›—ÌËgÈæªžœtïÝ=Xî¡õõ.Ù›Í!-R¾I¬åã"Þ¾’J¸tï‚lqŒ¯ ¸l ?yò0Y*Ά¹ ©Âç ˜ec–óh‘½”AÚYêá#àø‚T ûC{)ΧÍf:J¥ ógÓ²nâRæg7eTZ(•ªµðÎíä›áœw)Î&¨ñ#ÿÊU5rÈÝ+üü‰¼&µ¤…1¾ç÷YTèÔ¥Ìc6Í¿0¯ gTáþ>¦ŸìÝÌ|ýžAZ¨,è/.ö’Cï}â‘…{¦s ß¿­½«‰Ê…+"~Ï&·ˆJAX‚ïܼŸt^D—Œ‹Ì&·dÞSÈï„ã·åˆûW)çwpéöC1ÿ T.YÏÇÈ&·D–úõw8.½È_h4lO«Ùäñ–ÈÒIJ¼RŽ÷‘t6Mº•¶€ñÝÂ+æÒqËz´á´\æûºå )”o]ûõ ™N ¥Kµ[k#HSßµ\!µ#ÇMøØ»ôI‘zCÊ|qPfŒÏMkÒ‘%îHH?-˜aRÑ™N½Š î?ßôÌÏÄ·m5¾B•Ñx™¶©{â—Ð)¿””[yksï‰ñpá6+Ò)º­Ô›#¢åÑÔ¨Ø`-ƒA£‰ˆ‚"Ü@AƒÑ((;†Â&²#û¾Ê¾Ì 0ìȾ 3,3Ýÿéw»‹šzK÷À,=ݧ>lß¼®W¯^õ;uϽuï­ Kœ•„ŒŒ ¿ß/ŸÆ*úŸn•ý¡¢;žÔ4n¶Æ…Æ-Œ–Û W¹uÉñ)»Ñg·º5vðÝFƸµ½oŽÍFò˺= wåHÆ-lïW"ìŸÃëöÒz¼Žïžã {¼·n-xÀÍírûŸ øè—Oã@ýO·ÊjFÑOê 7 Û ãBãFËÆíŒ«Üºäø=w|v£Ïn=tk*ìà;»Œqk{ß›ä—u{@ïÊ‘Œ[Ø:Þ¯DØ?=†×í¥õx+ß=ÇAöxoÝZð€›Ûåö? {ž°?Ø“ä“ä“äÇɧI&½è7é)qçlïWBj¦§§_¹rE.‘9Ž_“aOØç/K¾€9¬%ßN›~{#ñ{®a²ä—’ššºwï^i7noç§OŸž?þŠ+pabbâСCÓÒÒÂj±¼n‡ÏŒ³¾¼éV1ŽÓµ¢Ë½¦Qͨi\¥·lÜÔ±µ°-„}ûåF;}slVÿÊqLìÏaåÈÇíèÑ£C† ™:uêž={”´—¯<`éÒ¥÷ß¿L™2õêÕ;xð`£F*Uª´sçNþñë®?&½°Ä’%šË¹sç¾øâ‹‘#G>\¿ÒÒmZÐäñÕ¸qãn»í¶¶mÛ&''Û&½¸²ä£¤¤¤€ï- •%V1ìªÊú½xWS7r;ãø­c›Ž• Ý¾Š°Köšnƒù:öeÞ¼y€ý˜1c¾üòËV™2eJRR’øŽo¹|{øðá„„„O>ù˜‡ü7 ~t׉åu{±èàWœ*­bØÿT•õ3zñ®¦nävÆñ[Ç6/4*º}a—ì5Ý!òtì9ÊøñãG[°Çç°aÃFµråJçᄎxñ"¾½ì¡Õ‹ðW0ãº}ìK{ù„ugÚ´iäÌù®À2iÀ½cÇŽ]³f ˆ›É7ºAƒ5lذeË–8Þ°aƒ›“BIû¸2æásÁ‚ ‡®;t׉6wù}úˆ-0n×Dâ öòKöùÔK&½µkמ?ÞîÓaoJ|rf̘Q²dÉÎ; Y¨[·îoû[¬Þ…õÿ‹}ØÇn/¬O`ïáŸo¿)}ò£Ê'__—qœ°î@a_*êö±¦ÛSÚçSiïótÎuûV-×é­Ñ’Òþ›o¾¡´í<ãE×]ú)í ûh„½nðÉ‹«½¯„=o³öñfÉÇžü¨í¥_~æPÜH<ŸXhÒËw¨–öJ»|9`|^´èüÆ?-íÔ[Úœ67¥½®0_¼(íIòIòÃÂþªiÇÂü©yóæ-ztüø@Ï/_vü ¥„ W¹û«#¬i%„=I~t¹ëöÑÙ7…ùý}4/!anBÀ/ËÐ^×fV\-9Yf"–¨%ùq•fC‘|Y·÷h9—Ól\E¾u˜à)‚Ͻ}úˆ´·¾°ø¼|òäÞ~ý‚Â6”‘FŸS®-͆}yܹÊ~#–ˆ}ýû§îÚ¥Û s"͆½fg9ÍI~4ü ‹¥#Lt{»vó‹ Z\¤È· I:&,’Œ,=wî»ZµŽM˜àôj¶‰ R’ºJf=pEþ—IÂ[÷ìwué¢l$ùÔí {WØ+i¹­M›é &$,¾áHû]]»¾¼tÉQ÷ΰâɶ?ýôÖ'Ÿ < „—ɧ5D¤Ûkq,v–`MÑ2ô6¡°ÎŸüöÛÕÕªïñ[HØÓK/½ôÄ[K-àE•—žó³«VíéÝ{Åÿýß‚æ[ºýögžñYxv€¥ï³kÖ ÚùM›pêÊÙ³;ž{nMõê¶ ÛË+W>»nÌ^^zÚ§^ŸüC›gÎlöÙµ÷݇6SѦ,.èDupéèÑÕwÝué‡Ü’^\§—ž[fÎ¥—^þ$ùZ"×Ý=zó›š7Ÿ_°àòòåý.ƒŸaQ€;.)]:Éá€Ãôt¬ùáÚ2ÓÓ—–)sröì€î€šÖ4ahݺ´OOMM¿páJJ >åÿ2¬6aV„Þ‘²mZXZªÔ© ­]¼è³ º‰³ ú|nýz1CRÚG¯´7“¤½À>ºLz–´’´´%%JóøêüæÍ P²ÚKÞ®®Z5ÈðCêôÒ%NÌœ™¶ÿ¦‡öÙ!¸.š¤|µå±Ç•*µ¬lÙeø,]zI©R«ï¸VaìKŠøS÷ìAÇìz»þ§/õHÙºUÑ~šô˜0;a/ŸQû ´·àtt„٠ÀíUk™U’É’o¯¬ReGûöJøÀèÞ¾}ÁNL›Š~xÜ8À5-9ùÔÂ…>S-ƒÀŸ]»ÿÝznݺÀÒQX³, ‹o¼qßÀ¾xbÆŒ€ÑÒ¥'gÍÂòÁãÆAì+Ï‚CƒaÎõÈÒ[HØÓ’§&½Œ ßP¿>D®ÿ Ë™ãI Kûª*UŽŒžÕÂÖÖ­ç,xÀÊwùÔ©ÄW_][£LëëÕ“«qlâD%¢ÃtÞjsËã£ÍƒŸ.†Ã3Ë—¯¨Xqc“&I/¾˜ž’¢Œ‹ëî¿cãÆR‡&=Zò {OÝ>„@Øá°h—ܧ¬y¾@ ¬ûÐ!R_øÂæV­’^~9ð¼’+òâÅUwÞyhĈÊå[ŸxbiÉ’¢·_µä[Ú ˆQð¼©Y³:=,ö¾©E‹]Ý» ÂEݸxäÖ Ö„Ð,@ØöÑ{Eò£HÚ‡4s,zÏ+T(59Y÷½s…½øó}øá¶¶m– Ën'sÇU“W®lnÙÂ’ÒÏŸHîÕË’ÉιªÛ´ ˜GNÍŸ¿úž{`S8>eŠL2@Ýðgn–°ç^T,àEcš éÞ… KÊ–ÝÔ´©Ž¯Á·Ž/Ÿ8°Á(ß›ÆÉÏŒU½äÞ½·©»wüì³àÒz¸4™4L^øáÃ74mzfÙ²ÕÕ«Ÿ˜5KêÃQŠ€ÏZáçÖ—\À#É#í3B|þØäÉ0æœ3Çðrs|uFû sžœ/¨¾˜x`ð`¬Šæøá!¬´÷龺ÖÒq Œú$ù$ù„½3ì iÂëk×^V¡Bp=ܾºîçˆióØ×_'Y $}ºž¢6caؼ«'CÀÞ™ '=ž°g M­‡/$%aÅ*·_ ³HÚgŽÆwü-ô0øë ¼µ\ùs ×!ì©ÛÓ9×E··øùînݰB–và€2æ…×íÝuÔL··¢÷|1‘B“º=uû˜ ù2¥¦Â+‹dŽfð°ƒïc.=J{¦Ùp+†%?JИ7iRÀ3Ï²Š«ÈY–*q û(Ê®cñùõuêÀ3/0„–åXXrö$ùyEòÅwA<óz÷QŸÁ<ù$ù4éåÄŽ·"íóܤôÌëÚuŒyû÷]b¸+Mz9mÒ£%?Ï`¯Œy¥K#BV ž°'ìcöb±ó$|ÅZi#ì ûÜXÀ£I/¯zMk}ݺËÊ—Ï<óXhÉÏþ-yòC‰q‚Ƽ÷Þ ´ò}d¡%ߟc›aå­s®J¤³ë7f c^Pø;meEK>-ù>úä_ÿ^ÞÆÛ‹´Ľ§¤<ó,cž±é aOØs/ûãíópOEÚÃlC¹h<š¢I&=}ò}ù7OÆ=ä™·¼bEGc¥=¥=I~öÃ>ÏH~(;õ…;ç( ³µ2Þö„=I~Œ®Û‡bov!Ì6!!íàÁ ðw¿)I>I>Ýuò7ì…̃Ø/)^|Ó#èa¶„=aOwrÉû\.þPz\} •ƒ…%÷Öíã3'ÏH¾5ï¬oÐ`Y¹rÁ}/ÂݔҞҞ–ü|kÒ yæ© 0ÔJž÷MiÒ£I–üüº€wÕ3`(¶w¯ZÉ#ì {ZòcÓ¤wÕ3a¶™7À É'ɧI/Kž…â„ÂlOžè™gm€á ícC“Mz´äÇZà­Ì±â–³äÖ[±½hõN "ì {Â>Óläæº}€Ï#Ìv„90æÍœ´ákJaOØö±Còƒ •eÃ__¿>6Àði[Pö„=×ísÕ¤—;i6ü!o\äÌ›cyæùœÒãÒ¤G“žx±cÉYìžy… §&'ËJaOØÓ’³º}pŒ ––-kxæ¹ I>I>I~þÎ¥ç3Ïþ”ö”ö$ù±»žµ\¿¾víåå˧§¥)Ï<ž°'ÉMK~И—”³•œy¡ÝlIòIò¹€k°W ßoíf;×ÚÍVŒy²nGØö„} Jû µ›-6ÀhÖL7æö„=Mz±¹€4æMœ³5K7æQ·§n&½8 ¼iŸ·Á…Ù.»ýöÀ ó~H¾ûl'ùjB½’–¶°dÉ MšNZÂßèI>I>I~Œ˜ôüÖ–Õø<5aŠ„„Ôŋӯ\¹œ–f'Ò$ù$ùôÒ‹í1$º~vÓ¦ïÞrËÖ ÔD{Y ¼#ì {Â>¦œs¯XëóÃ?ý4Á*=ôÐäÉ“/\¸ à¿bž°ç^ìèöJ½Çß­YóÆo”(Qà/_¾<Ž á¯~ êöÔís[··uû5é)›©ü?%%eìØ±uëÖáߢE‹ÿýïiiiªþ†à"ì ûœ…½/žJnîx‹{]±Ì{R¶oßþúë¯+V à/]ºô[o½µcÇõ-j¦‡Òop\–œ.´äçxž|ðya(gΜùꫯêÕ«'¿Aƒ'N¼xñ¢ÿe§}¯©ÛS·§»Îµ»ëι9Š“)/C6ÈÈ$ü7oÞÜ©S'ˆ}€¿B… ýë_uÍ_1û-è®Cw#ð¢6Þ^¿JMä~%üaáÿÏþS«V-þM›64i̺æ¯Ë4ž°g^´gÎõ Ò²’§ hþÅ‹øo»í¶7ß|óûï¿×Íþºå$Ÿ$ŸëöÑ®Û;BK_çWÂÿüùó_~ùeãÆEøãÀÐüuòOØö\·Ïº}îïxk_$ËÐÒìˆæÙ àQ¿cÇŽ¥J•øË”)³ÿ–-[ Íßxe¹€Ç<.ày-à©ÀÛ()úd¯›ýÏ;³:uDø7iÒº‰ÒüÅLà!ZYX\ðâêi çÜèìžÝì¿aØúÅá¿GIII†æ mfa¡nº½ÏÓ'_ø¼Òü¿øâ‹† Šðä‘Gþûßÿ*‡?™)¨ÛS·tÝ>ÞH~îxéec7%Þ·nÝúÚk¯)áß³gOœqôögaq%ù\·Ïéu{£Ïn=t»©hºÙãÇWõÚjjª¡ùë6?{ûŽ}ãº=³ëÄf Í(±äg5»Ž£æ¿~ýzP?åíïËìöCK~¼[ò)í£YÚÛ[P ‹®ùÇ?eö7BýtÍ_%’…#ÿ'¥=¥=ãí£KګʺyÆÐü·mÛ‡¿›o¾YBýàðgÄù åQo€è”öÌ¥³–|•0;Ïss"»Ž¡ùcÍ¿~ýúz¨ß¥K—ô5?L ?ýÚÖ´äûG’m$ßcˆ²ê÷î»ïâ$ì‚‚|·Ñ Éga¥°×£/í£H„ú=øàƒÊì5ÿªU«°Ê¸qã ™OØûcî:9º+N’|G¢hxûoÚ´©K—.’ä˜Ç' âö§ÖüI~$D=»H~$K’O’Ÿ5i/ x±'íš}ÍQ}ü… *\¸p‘"EðY¹råÝ»w«5N;‰Ð B?÷õK{ý¦¾P~QJ{Jû¨Þ/Ú¤½ñ\bÌÛ¿Ñ¢E2—›nº ç=„ ¼ r©x Ò^äÈ…|J{ÆÛÇ—O~NÀˆä…y¯fÍšÕ«W‡žŸnݺuîÜßÞI•ç°Ž='ÁÔzü¸v/cù ìê&I<þøãÐG¤šXöôÉÏB1ðâ°ÈìÛ·=n+ávµB°÷Ê+¯<õÔSÞZžãM#Ôø¤È*ã‹/¾ˆ)ÆXb`É6Ÿ|Jû¸’öº¶¬¤+táÓQ ‰oΜ9PŽ?Žã³gÏ.Y²äСC8Æâ¿˜=P5¸lÙ²U«V¡2bV¬XÊ`Ÿ ävàÈ/à Å RÚ“ä_ ì±´ÃÞ­…˜„}ä>9:ìÆF!Õ§ü œÿù‹?_zé¥råÊ9Ρ½GA¦Ì»víÂôxù¬„âFM|.^¼¸bÅŠ˜‰¨ÛÓ’½–|;ìíÏK–üëÏœ+Ô(…Ùذa8#A~pïƒuΞ=»yóæ¾Ðv*áq/E1),Ë(˜G€m=;°T¨÷ëׯ`Á‚²ôÉØÒ’OŸ|ÓõZ½¾òØÊ]ÇHk—|òý¹µ–ˆzàÂùü”1ïßÿþ7Îà«Ö­[Ï;×~G]¼èøDvà?þxݺu>ú¨#†EøwïÞ„ÕŒ@Ÿ|?÷ÀË*ìå僙Ai<6¥Ã[ ™3a„¥K—ް7`‘Y¸p¡À^¤±¸ýTªT Kõ‘Ì?/¼ðBß¾}aöëß¿¿¨èŽxnÕªU›6m`±Ãî`'Nœxæ™g&³@»v턎‰ùK ŠDxH{ž°÷‚½¼šcÆŒ>|8RSÁb4jÔ¨Áƒ'''{w)Îa/ ܸqcµjÕÉò {&lé)J;(T'Hò>øàÀb|ûí·ÿ«–úd¾øãÿˆ —/_.3xh?&À^–÷PŽ;†?mÚ4=@°g¼}Öt{E¿ûî;(¨ÈEü1búôév³u{ûÈ#nÿî»ï7>ýž={Ú·oó"qûy ÷hþ’Ûÿoû\€@'ï¼óŽ Jþï~÷;‰’†O²ÅÐK¡8×hÒl#" Ò°þa‘¶»‚öÆWB³á?ƒè{CNB]Gœ/ä?²ýàÌÉ“'1/L:U'ü†…Oˆ®…uPÍ Xá»ýöÛ¡×PÖž°Ï²´Wj$?räHõ±í“ý°×—?¨cXíÌcÄó"«7Bz¡ÞËJ;þ%ÂרDw¼“vžþy8øBùB:tèæ¯è=}ò ûë’öòÎ…"uèСJÔÛCM {ã+c×M½MGi¬°êæZ+†ö^£F LÁj6±ÇáäçìãÊ5ϼråJqabé,¹ôºÍÔÊ—NùüûÂíÕ#?ò|‹ÝN9ê àe²à¯CçÜlpÎUï+4|,y»jŰ—Þ5lá/ë‹8O—÷¨;’|fÎõ1'&¥½‡„§´§´§´§´§´§´]iOØö„=I>I>I>I>½ôbö†|°ÇÛö„=aS°WØ6â·=~ž°§snŒ¸ëˆ[˜DŒú´Ò,,t׉ÍPœÃ‡#ÌóŽ;îøç?ÿ)ß"ëÃG}äÓ9RÚSÚSÚÇH&ì,Z´IÚ°Ù«ÏJ ‡Ðn=‹ K¼Hûøaø¢á#— ’Fà]õYca‰ ØÇÕº½$uþÍo~ó³Ÿý hoÛ¶-RÁøB©à¹nïãº=ÝuböÂä‘þ©aÆ`ûHö¦Ó{ž°#Øûc=s®ú”dC† ¹÷Þ{‘êàÁƒn-3s®ýçû˺= wåHÆ-lfÎõ3a¶}{ )²éRA"gó¬Y³tQOØö~&ÌŽ½<µhÿá‡>ðÀ8œÍzâ .àq^z1{)pÑAò6œùÃþ çfõÑ'Ÿ°'ìcö’­ [¯€Û?ýôÓ_}õ•_ËÇLØöqûøÙèŠ=vÂA¶l•ÂM_´£%Ÿ–|.àÅì Û†>¿ö„=aËÒÞÚw…i6{Ól0Íu{êöÔícÖKÏǤZ”ö”ö”ö”ö”öq*íãÇ9×îûEç\zéÅ©— K\’|/’¯2ðÉŽ®†š¤;üäÉWç»_'É7R†êû|‡%ù/õ‘|U_<)Ôv·$ùôÒ‹ÝÞ‘`ç‚n¯\ ²E·—v€.cù,Á^¦<êö´äǬ%c/X°àÌ™3z½{÷®[·ÎÛÊ} &q»9÷ìÙ³K–,Ñ“xXò#oÜ>mEbÉ·¿gn·Ë’%ሒÀL´k×®¥K—†«°Ë´äÓ]çÚa/`KLL„3?2sˆ”»téÞø÷Þ{¯F~+†_‚ùð‰ou·_!çò©WPçÕEtQM—»¯ZµªhÑ¢))):J¥5ÕmtIÉpýF ™ê¤´‚#C‡•?¥3r‰J(.W©~*ŽÏÍ›7?ûì³ÀªôG.¹©1¿È¸é¥:&-ïÛ·#œššúòË/(P@FÕs]Öé­ö\ÀËf’//ñ¶mÛJ”(÷ò³Ï>ßx;ñÕûï¿_§NÈ,`èYb³z¼^$Õ×ÚµkË”)Æ¡Stǘb»!WP? ¸â³y󿝾ú*ÐÇ‘t<)]Ú¸q#f"ýöš†îàÆ]¥o@^S|žJn’|.à]Ëž¼ÓÈ·W¥J•¾}ûÞ|óÍ?üðƒ¼gýúõ«]»¶üT ¦O<ñD­Zµš4iŽ*ã»gÏž1cÆ@ÀìpèСqãÆá¸K—.5kÖìÝ»÷¹sç^{í5„ý#Ÿ_rr²Üù¼Û´ió€U@zµfÍšR¥J ìååFLÑ?þñ+€}üñÇ ¨|êÔ©?ýéO¸¼eË–ˆ8T°ìß¿?îûë_ÿÝÀŸ£FªZµ*:ŒÄá"ÞßyçšVAM5s >Lç÷¿ÿýÀe‚ÀyL‚íÚµJßzë-ˆ}œ_¸páC=ôàƒ>ùä“xj(%©_KjÔ©S'4ŽŽuîÜó¦ñ³ðÅ‹à1P£G– AFvìØ!¾òÊ+ª2Z{ýõ×Ñ”mãv\À ¿€G’–äãå¾õÖ[ñ¶U«V­E‹‚jÀ°ÁÁ‰'*T¨ð«_ýê“O>ANÞB… Þ¨3sæÌ"EŠ4hÐàá‡F¼¦?úѺuë†d^¨S¾|yÀ SÉ 7܈¢>ÀìÝwÞy' kûôéƒöW®\Y²dI|Õ1ÀêHODY¾|9¬H†–ÁD ’ÜtÓM+V¬@àÌùí·ßîСjó8ƒ©¤bÅŠ˜ePáÏþ3¤7ÔUS¤(ž«zõêx„±cÇúB¹‰`hÀâqœÇM1ûà<Ë¿þõ/TF›0‚èó&zŽéˆ‡†qßÖ­[KûŠäïß¿¿X±b˜ ‘¼"ÜGzˆÇÄ,Y°`ÁŽ;â*LO/ Îc=†ÇÁ8ë $ùÔí³ö[¶l,ÂKA‡÷LÄÞE ßâu}‚ÂÉ?!ˆ€Øåüý÷ßÿ—¿üEŽóß}÷É1.G_ÔŸ7o^ݺuÕÄ ŽdÞ8è{Ñxñ-òüH²·$áOúSœ•øÉO~¢ZÀ …!¢ .Œôr³ÕÏþs¿•5¼k×®8@BA<ÔÔ©S¥jb rØ£«v’y3”œö0ŠðãÚÁƒ‹LÙއ…<—:&Løñ¬YàŠoo¹åÌsçΕoQ³téÒíÛ·—«Þ|óMÌh8½Lð[¨g„-@ž°÷1…fö’|¼åà´Ç޼AòÉ]¤ß60”V¨ý¿R¥J8ÿí·ß–-[Vìmø’ˆ+ÔóÏ?ZŒRÆ ûå/©zûõ×_ƒxã[´çž{g í…ä+3¡t X…õ-£&˜9@†AƒAøôÓO}ôQÌG¨ƒÎ=zTEc¸5(ÆK/½„““&MB?A¼Å¼wüøqàjõêÕ¸K¹rå¾ùæTÆ”'w“’ÃÜ \Ï…óØzu É1¡(“‡š Ñ õeš¦d„EÚö4Ì5r!f–9sæÈˆ)n…Æ1¼¸#ôê…^À8À"(Ÿ$? ^z4éy›ô„äŸ>}Z~ì¥å2M`¡ @&>‘º§råÊ8W|[ñO°vi—?õÔSrŒvî¾ûn‘º¨ƒkëׯߣGhËHþ¥H¾À^·ê?°€‰Û0 à|£F0ÜkL%øÀF7$QËuO˜V­Zóã{„@`*Ø€VÒ "í§OŸ®Vé•p‘A™ÎÀ/0qÈã£î(°“œÇf$˜Y€vð v<¦/óÖÃ"í¡¤öP…äÅèÉ#cݶœÇ¸ÝxãêAg0Ñ€Pø2'J¢Iî:× {@ òVÖí…CÂà%nÚ´)þÄ‹…\ÝL^P$o°bnЇ  u ÆaÉS¤Ö5œ@¾-8 K¾ tˆ†27ÀvظqcÕTÈê;w‚žÀè('gϞݬY3!ùÐp0þ|<Î÷ß/$õØöíÛefìÕš‚šÂ{ˆbé`/¬D æLjbÿ“«ÑôAtØÑm– ì1a ì…+á+ŒžÀþýïi©PF[ æ;¤KÒ—6 {Zò¯—äË‹ $ÀÀi/o3>!f Ø–d Ç Õ°Û! 7”[Q¤¼ÊJÆÞu×]j¿M`ú¿ÃHmà«÷ÜsðÙ…Ö`öÃ+íÒ^_·×Í`¨ƒ[Ϙ1C~NÜ‚n`¹“ŽÅ †Ì@>.A7„¤`΂ͳ ž8„UTuÀ5êÕ«'¯XÆ”)Sü¡ýÔ€Àt$ƒžÈ´…S@;À¼†ã 6¨Å|T9r$¸žB–3 öñ‹_@!ÒÕ(ÜvL¬@¨$r/Œš•QêÙ³'´$@ûÀ-@ï¡¶ˆ‰ºŒ¾ŒG’©%Ÿ°÷Öí! ¼©ò6‹u°¡¼AŸ‡ý28”¥&q³–ù„ÍrIêÃ@•2q‰ (ìa~Ø`/@;`³0« ²â, Zäc{tL'&½zõB` ƒ„}¡ŠÀ‡ÑôgÕe d³‰\Žu2˜ñ-ê &êË]`S„Ý^I{ÝCSú ¦€óPpS<>áóÏ?÷k)‰…ä‹ÉxÆŒƒ¢š óQó&&X0;ÈdŠo1zC1,%‚DÈ1&´€gÄX‰×#𸀗m–|ƒwÙ½SÕÔY‡…4€v2iøð»9½ã 'G;rÇX‡7q›Uð^´ ØÖ«IË:]Ä™¤¤$é?>ñ-θ`Ã9ÔõEñ–Ž?ál£žÑ+ðT“˜FÑIÇñ´SScÄä¹»RL<Ìï´äsï}òíÖã[†jËÆçöK±1ïº12öw]y­Ú{¢týÜ8cŸ¤ÜB Ü&>ݳP]kW>ív‘Ä2èÖogö\À˶4量þì¢sc+ýçTɼ½£b<¦T½'ºñ_}e¸Ä«ËÕ…v[5,Þ2Þ`à ×þ­ÑIÃllа·#É'ÉÏ~iÏ\zÕ1—I>aOØö„=aOØö ¼Í/Ùu|ÌœY·ñ1»½ô{ž°ÏØÿ?uóV^Ó­ IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qlinef-unbounded.png0000644000076500000240000000763012536324473022706 0ustar philstaff00000000000000‰PNG  IHDRŒ¿ÛJ’ pHYs  šœtIMEÖ $¾JM$bKGDÿ‡Ì¿)IDATxÚí]mpÖÕ•?Áº:¢(•OPE–!‹ÛŽ»Ô "긻Ó.m•Ýø²Ûµ#VFAA!º¸3:mwUÄPumÇA»F7¥èVR’Êf–u«&‘@ c @BHÂóÜsÏïì‡{ÿÏ MÈ“äyMîýr™LÈóüïyûÝs~çüI~‰@ ½o@f²°ÛÈób#„UØE€ú(½oª™mš…­ØÖ@ž[@Àˆ—€HôI"**½oª™mš…­ØÖ@ž[@Àˆ—@ˆEa#‚ ä×üò`%\’ò{#Kf%pfëæ£6lCV"OY‰„œM4vV;$á—à…ò€…’²>¶ççó±–.y§Åˆl Û¨B°!Ø€zTAÇ7‰hÒHR9ÝùÈ­ ˆ0h[ݺ<‹ÊÛW¾}à UÃ&Ø@nm@ÄŸBd b±h:}¤ŒX,ñ[(‚ d¦ÉÜZc@=ùÛwO ®\4ç©_  ªÖX ˜5h´—â¬õÆðÁ3¾BU0ˆ·3„%x¡ìÔÈúÎJ@ Ö¸;t×G]jôM7sŰPUµ¬‚•jV"“:±Z‡“šÖÎ/¿àgÇéw‹³ 6HÜgnÔ ˆáõ”Œj¢ 3ßðÆ lX’€5DâA¢Ñ ¸jÙ@"§j×ßýµ…jо¾ú û®†ÙÈfè5;íÒx‘ëã"š0kÉöfãR{ƤBÚú¯V1,³n¯ywñ•D4fvåÆõbàdÍÍ 7)î‰úÕ ÊˈÆß¼dó!o ìkðBÙõBgmˆ5ì¢hgÍš{¦ÑØoUnùÜýaw©= ^hHh´Y’CÛžª;¦";wYu‹ûs2Ãl`0h4TåÅÀì4¹³ö…ŠéD4næÛ9Š Ö€F‡ÊÜŽÄÐV»~ÁÕeD—Ì]ñvsÆ€5Ä¡s%ˆeãtº£þù…åD4>SÀÐhu'á”NÖ¬«¸*Öœ Ñ~s£6¢û¬22¼äÓ ¥oÎ)™(Dÿ1`c¶^¢ÖXÍ-Í >€Ô{C `}»å´“˜eøÙ€°¸pg[Es‹F3H|öXÏÿúCÕž!ÑÈîJBÔXO}ø¯Çnœ@oÀä f°¥Öºª…7\ºR b¯Õ‹ê Ñý­Tm€Ùx¤whsŒ>5fÚUõž‚C°ª‚ñ"š´(ª7xÂX1XÃÀ×£FßM‰Ê®ïN‰cyÎf‹3çîÑìYü{ŒytÅìÇ~Ÿ„¬y Ò½<*`9n*°Ÿmòº•!«ž¯íT@aŒ±¾¦0¹Ñ¬Uê•­É–µ ¦Œ©S£M¯5¶yc0ùºÀýÔLqÜûˆF]½8 eðø¢Ð¹Ñì0¶|V)%|ú5øâÚë~TµÏ¥¿„Me,{ ¹6ì50xŠþôÞ—8†تK¥>ïÜio/´}oÆE4Ý ôxkd!Ù‰Ñ ël€±fîåD›ÕhÏÑèŠhm±UêóÚÁá²{QÒ÷}¡V;/§©ó—õ¨Düïj¾ûÓ …*7nýçS0x¢ü¾{€ªe#@qWêóÊU tW¯ú›±×œÕ¯7ÅT¡°l|KÍ„T\BTö?° D²]¾/ù©`ÓK±©D£¯9š–mê²z£Äšßd¹Õ{ç¿XßD˜Ù‰'Ìê;l2³C'Ç?Úð­0úì/ï=ì‹aéÝ#¥Ã,ŸHD×ôhzb-AW‡ù|!”H––^LD›}¾>J½¦»³u½ë-›Ÿõ]Ë"¿\½÷„zŸ?D¨©#p¶Š«ÀUh¼iÛãM×ׯ½qå¦/|Œfö|+)7 &¢)‹ÏHZ…HQ"¼ÑâìäSîÎÛfœOO"®ÒÚéDm£œSÇ[Ën»¬BݯîióV‘¿K…7Zx/ÔKˆ†$ ¡Ýuj°ÎŸqÇbÿÛ¤ÛˆÊ+Ö‰O»r/»ôx£EØÅ$² übÑœÉK4.5+~0õü§מ#­[¦äZмÑBÆ>ŒÁš˜KfhÛg4Ž5DD­|6/…à D9 Ʀë/&ª‚žüð¥ŸS‘®y?^»¯Ð>yaÚåTßó’ æÐÖ'[Õè«3ï^]8yÊ‚öoŽ"â,¶@*d “þy1H)dÉ—Ñ®”ÂŽƒ¬ŽÐ]ÿë1X½÷Úï<»ë„ï0aI½‘4:иë*:0-ÕÏ? ÖÇæý|O[tUH ¸ŠD–uÝ­‰aµ»õt:/  ÑÌn*;MºÊ‰hFëY ¢´hëyÖߥÿð;…ÁýtáתxÉ|x@£ý,ŸBçÕ+oÿ‘ˆØ÷6Ô÷IÒþY.jÙSLv¯[xÝ¥»Õ觯||LUÔ[íËç'”<Xm.#š~O·ÿ¡/ #’t^ÀCD4i-L ý[‚€FÓªèE¼ûÍÊ9ݦúþ®võªo\;vl%Geí:¼õ‰Š÷Ã7-ÛðûUæ¸M&»G,õ×ß±¸½ Œ}œ÷gw¾ê\ìP(,éF#Vv~í+D÷©=•àø>õ‘‰Fë“n¿[qã8º_ãj»ºÓÓ Yʲ TT»÷ìh£±ì?üÉnëh¸–£QhTØ«¾ùU³ÆõÍ ¦Ï_»ß;çDâ9»œ9XrêÑo_Lß`+Úþ¥ŸýiÙ©tY"^(ºd%x²ïÏœ@ôS('Ù×¹¡¸»Ó²FÜÇóþFe´¡¯Îz.JbX‡r‡3µÌì¢ßÁêõ‡×W'ß½¾®Í‘™E‘»•òŒ v=ÕkL.·¼÷Zc›ª(,GCL†õÚ|øèx"z&½Ÿ[uj‹ `Iµ¾’ˆ&žÒ}å¦ôѨ#ÈY @¥aãS³?׸¾rßúÇÛQßîWG)R…¨mßÿÖ€ÑÊ9?ÛÙ,þ»±@J"e‘ï˜MT6ý³ôô‚¢pýª®E&‰ZÅJå$"zŒîžè®"®{²´Ð(G†Ì'[ž¾þ–8¬þûó»;]y×£Ð<®~ZøÄ²‰»uüÃÿl׸þÛ…7ɰ-¦£ÏV¥^áhæD¼ig=Ëò…F…Ù±˜¥¥zÙܱD£¦ÝQµ§-µÔ5Üg-FsWRûísî…"ú¦ûhnÜþÄÌqD4½â…ÚNÏ£bÏÖöóF,[äÍ 9¨é5_›ß^1÷¢²«¬¯õšïo¸’SÎ\Á½PA2sjF·yû’Y㉨|áóõN±Ø½w1¬Å‘'t¨Ù°±rö"ºªb]ÍÉÈíXŸÖ _³FÓ¡æ¡ÍKnOTV¾`uý ¯ùqÏBË>c«â@Ns£Ò'Ô¬éLq;½û0ý> hÔž j²I)f‡é÷ÙÍBú…š‚þüNðBƒòB’Ö')Ô ïàÈĸt±ÍÛ—Ìš)Ô ª"zkä8¿&¢+¿[ÓžÔ MTSÞ´ô–+V!†C«÷j†80¨8à f¢ýÓë¿M­ØèûÒÅu¦ Öï4Ú/º ;–Ý2Ž~ƒxóqWû”AÍ€F€FÎ7ÆM³ µƒ‡iÆ=/po°Û³gùj¶à…¢ ˆ¦ˆ3^šs)ÑeE£Äà¡fñ÷—ˆ1*ªæÀÖgºÀºø/þþ…ÿ>êˆnÔjétt—ž¨èƾ;†hÔÁ4¶ uï¢ È>uÅL†b‡¶<²"üwß[]7g%ÔS_‚q :i™HD7¥ä$¥Y·ôæJ”EÏ,ÿþs°°o¼²§M€áxâ}a¥<ݦ4ШÕcçÑ´‡E¢¦)w ”èdÒóB€m=æ"°a “é6¥ƒ…ªÂvó…JF€ˆõýjAΞ[!ä8+1$Å60/4˜Vè¾Æå&>ºÏiÝçøºÅ‹F‡ Á eÅ e×Bƒ¸Êî— ¡ÈÊcbàÿÇÚ<4×w k„Ø@ñ{ñ£Ñ³‚ ^(H H`X "H`À‚q`˜YDÀàj!&kÿ" µH¦/T$³×ƒ‚JC9Ÿðâ@‘Ì 6P$óF£7 ç? ‚F‡íár¨þÞ7¬2sAA7â@¾€gˆÅê…Â*èúS’¶%BÒÊ¿IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qmatrix-combinedtransformation.png0000644000076500000240000000325312536324510025666 0ustar philstaff00000000000000‰PNG  IHDRqqÕ ¼âdPLTEîîîïïïëëë888ÌÌÌíííÑÑÑÕÕÕâââãããèèèêêêìììwwwªªªMMMbbb}}}---111†††<<>>lllnnn¤¤¤***ppprrrãþCCC®®®ÐÅÕÑIDATx^íÚÃókIÆá¼ÝG±ó£mÛ¶m\۶ͱmÛ6þ©éN*USS³›Û§fjú,²Èæ©oò©,ÞŠ…šýü×D)Jñ4¿þE4á:óÅÓÿ;‘ÊOU¶ú/e«²UÙªlU¶*[•­ÊVe«²UÙªlU¶*[•­ÊVe«²UÜØÕ4 Å}1¯Òœo˜Ô*†cãB7-–˜r#¶YÕÒ,JGÉצ´ŠËÏèàÀ{ä,Lh é®0„‹¤Ô„ñhzµOø÷¸BE|Ÿ^æ¿b˜¿¹ [Ŷþ£¢„´3z7bl:ÛW~ ƒ? m5/N‚ε—&௜›š„ÀVmjvTÒ|»øNܼÈH„;£²‹Wkà &·CH«ÞcœóŽ_{®0°aÿî0ع¤>­“ý€í¡vØÖ:ù…¬ÝP ãÈ1]Ä$}eñƒ·û5þøÛïŸpÀ¦-‡’t!­ºçHOÞIksè»sìÂËJJ¦J?÷hù°WP«ÕÄž˜.Jý•£hË)`rG…ÖÒ-lh=ô¹ÞÄê& c)­KkyCäïj2yŸƒç1³%J¡šNêºĤ0Ð{?p(%«O;¸Á¡=Æ@Åî¨ëgX4 QÕ?óqhÚ <%*I|ÂvOÆ-Àî­ß±\ ‡–6{êSË„|Á¯„áFêêÕ4Sú(µÅìF€'c+íå$TxƒCz€ûÚ#¸²BDd¾¼‡R‡–4Léð^ë±ã¹šØöAРÌs0f›Zˆ×߇€o+f§H’ÂvÞ·Éq©wâ-–%RkÀØHHcÅ=‘ðúz´¦ßtÃÝ”HÎ30v¡âùS; pàÖµÞ{¿(cpÌ%p¼ÓWÍÁ®â= ª~Ùr ¥Ý¾pu7Plm*Ë=ÚQ*BÄ7$ÇÙ*â`ËvªSd³.p¨"öÔ‚¬"ÞIÞ“;¾î#;ÀÓgZ}ð ‡t¾é¥ë >…8‘"´1pó^&{ÂàEÌ7 l8þø8²×vr°ŽRÖåoOÜ:4«#`e-º®à$ 0°-þJ¯ÎCÜfU~ÉV¬–FÀÎO%Àq7þ°À)ëIµ*ú‘RŠW§îÆ{‹œEª4FÀg9èzwÙ{¤Æ)|³â`ÇÏ’éº,ßå¢ßáÈõ’ã2e ÄÑàDÞ[W/ÇLÚW=È .ž™ºmÚډ̅Z7’ƒ#0K¤Š›ÒÙ#×a꾊² ÝÔ Ξoé߉âþ‰¬|ùó/~GþŸüIîíäÎZ»“-kó’;;PÓ^Ûym笇7²ÞÈz#ë¬×v^ÛymçµÝh»8Ø‘ôÎ]áŽi\wîJïØi^IhÚ™¢5a—&§f–Ó™kÜnÔhKkÇoHedÅUmËlqݨË1ÚkdÅuBBg­ÝÉ–µù®ˆóí·¥5²T“83·¸¯$4íLщ eêS3ËéÌ5n7j´¥µ ‰ã7¤2²âª¶e6ˆ¸nÔåí5²â:!¡‡³ÖîdËÚ|§ä$Jð³?F–Ðܲ-¼}|xÓ=é÷…#Ç:®$4íLщš°K“S3ËéÌ5n16y®é›ï34®™Ä½å‰kH‚TF–£ê™ "¾I¤o¾'ÄYÂ`vK\o'÷ð>Ôî`ËÚ|•²›¾åþðÿF¥çþ;uÞ~Ù ˆ²×¬ «·SÅéT£0Õ j¦¦S Ô•„¦):Qvirjf9¹Æí¤k§SÕÂTÍ0’¹AÚ!O\C¤2²âª¶e6ˆ1Ý]ÑÕéT³0:‹ÙçV·Äõvrg­ÝÉ–µù{!¤$¯š1*BÑÎû » ÏšõaíŽaªMºö©a£é†ÝÂâî{]IhÚ™¢5a—&§f–Ó™kܺÑé颣ӇU «‡Å=À“¶å‰kH‚TF–³j§ÌßéFÿ“®×!}ÄÑa¥ï†õ;Ax¤›Ý×ÛÉ=¼µ;ز6_¥ì¦‹NÂ;“¾elv»J »SC¼¿y úý¦p˶ôæ­{®$4íLщš°K“S3ËéÌ5n‡õÜÁéT*l×%\lÚ’¶å‰kH‚TF–Í'³A8«±aSÔç̈$‡ªž· jÈÆÍf·Äõvrg­ÝÉ–µù*%½mGzõºŽÐ|#“açR|á.\½.¨Ý1€¶óP4Nܹ«\Š;#zÀEa*œØ5ˆÆ Aa¸»¢‡ΜIžª,Yee†GàRdPüÅݘÝ÷E‰;vî§Kah»ÑEÿÃ=FfæöÝWšv¦èDMإɩ™åtæ·ïÈŒ'ο(Ò'žfž\Ú–'®! RY6OœÌá¬ÄÎQŸÏœÑv5ÂÅK£†ìÚevK\o'÷pÖÚlY›¯R"á¡ùŠ»çNÛ~px+ø*ÅŽ‘¨çÙ£í 0 b•"3ŸÑvEÁâ¥QC  b•"ÈfóÖœj»1ío_¥ ÷4@i;¼ˆ±JÅi»9»µÝ’eœƒ(ŒU ™qÛ'mçaçaW°óFÖÙr0²vvvvvvvÞ“õ.…÷d=ì<ì<ì<ì<ì<ì<ìü¼w)¼'ëaçaç=YodýØÎÃÎí¼‘õFÖí<ì<ì<ì<ì<ì<ì¼'{ .Ew`ĺ:Çš³|]Š’/‹£#Ù¥Äæµì] ÖKœnÄ!êÉ&¸~ö]qø(O6N`IÇÃÞ=\ò¼3rîü6ƒ)¹1°Õɨw'¿Šyd‡„'+)è‹O>ùdãÆiùÌ0FöØc¹‚è$CHçxH² ±(çO<yÎ:ë,v¼ë7Þà#¯^½úÑ™£Aƒø·qãÆÿùÏDµçv< O¿~ýPdøîw¿Û´iÓÊ•+ã߻ロoE9Àî@ŒlIgíBï[rHx%¶c§†ŸŠ6OÛ·o_»ví]wÝÅwqÒ¤Iѧàd²mÛ¶óŽ;î ç_ÿúWt¬\‰ÑX"$³d<.IG!ò¼öÚk 6„[‡× ‰<ðŽlTÐ ^ùTø 0äÂèc­ä–gŽ?þxÆ ê厞ô”)SÎ<óÌÃ?½P©R%'ìÈ9qâÄþð‡9K ;-9¯€þ§Ÿ~J!·nÝ*è›o¾ù4s`è&ã6>ηß~û‚ .hÔ¨‘Èsúé§kØQ>óÌ3dX¼x±h–гgOdýú׿æ]9‡ŠÝ´iS“&MªT©²råJ=$òPõ!C´À…;6`úôé½{÷~þùçW¯^ݶm[ÂÖdèС[¶lÁÓT ÄUW]…ôcŽ9ï_ݺuel§aGÎK.¹„œ-Z´¨S§ÎÀŽO¯Ç€~ûÛß"åºë®CGq®Ýºu{óÍ7ÁðûßÿžÖÇw¾ópRUOÿüç?‘Žáäá  o… »çž{Y}úô¡¶¦@9þ3g²0`È9ì2ýuÚŸþô'TqÙe—Æë$l=²  ø2 ìØ0‹«¯¾º~ýú5jÔà3àèá–[néÚµ+ˆæÍ›.µk×]\\¼~ýzíÊH½#c;ÛÈj΋.ºHÆv¥€_ú%Ý»w?ûì³A@rÈY³fM"oäÈ‘  Ì™‰È3fèE)ÂzÊØN`Ç,8Puxg´9c+þþ÷¿ã®sÏ=7ÚŽ¯ÖO~òTqýõ×]ŠO8ád-]ºT{µ;4‰ú–cŒr˜Ø¬Y3€ƒ`öìÙLüãÿÈ^(_ØA¥Qž6mÚ<ûì³,üøñb4áý­Zµ ‰ëÖ­kݺ5á¨R2ì S®e€ÚCâ•W^‰»~ö³ŸåÏÈr Çç"*ƒdÁ(égQ0°£y“c;ùž~úi>Q(yyËŽ¥i`IGÄÁN FÎÜÂ^@cÖð¸ãŽC"¼?>*27‰=zôØÉ "RP¾ÀŽz޾úê«EEE¸ëwÞ)ñÓs»ï}ï{v2¿ñÆ!=ž Ç.l-°tÓèº Fñ‹_ ý¡‡ÒS$†¶{øá‡óvqÚ®(4@ .D!œlÃ`KZtÎ9ç ý…^àó Jþýï ìdÒÁ©íŒy;= dù_ý5܈zõêá–?ÿùÏR`>æí´¶“O14ìôFEŸ@!’†.°ãLІÿf:>ø`EÐvÛɯ ¹8Ô#ìD9½òÊ+û«í´úaspýå/ ï„>1'&;Fî¹h;yxù ØÈv÷ß¿†Öa8ç33´]‡µ|s ;­íövÚxýõ×á¾pàˆ9#¸ÚÉÈùâØ>Yø‚ode~ó&ZÛ s…5²%fn—ad9uÌ¡X)Œ¬L—Ü~ûíTr§vŠ’õm³ògdñ‚i±)3¦‡ÊÍÈzØåv¼÷Š+®à\æwÞ §XïÑXÉ-ìX5Ÿ–ƒ[ƒÙ"daGZäaw0ÀŽ7bÕÓ™È:u*çlq \——%ç°cG¡3Qõ Aƒèð‰‡‡©S̄ÕÆ2Œxvì˜õÈ# 9:« ¾ãƒøàƒ¸¢#vV[Xxx†,ØaN À,«†–·‘ˆÍ쮹æYuµaÇéS™êK€¦XeÍ Ô°[´hWè ØõíÛé/¾ø¢†ÖûeùˆÊàÛÚŽë4X¤ÁK±ÿ7s`ÑWØ>¬"Œ;¶9ÛQøÎKa˜¥Ç €8lذªU«b% wFs¼¶;HŒì©§žŠ,îu0.¸å%{srïR°P84²,Î°ÌØîbJ í ÌqߘìKÃ& e°KÀ`ÆÎ30ã…“‡§×æ1Å€Ü>úHçÚ;u¹Ð ýŠ!Æ2ö¾o|ÂØ»0aÂ,¨[K¸?üá˜báLÄÛ„°†¦'ÀDhwèιH.kAùÐî˜¢ÃÆ…¿”¤±M½ÄÝPùØø¤{;;tè€ùl¹Ã惷Þz˘¾)ÈOq{ŠâÒ“w"Ù]`·SsàÆ'{§{B‹âúÝ)±½*î§ò1]l+£výÚÒ¦výqŠ¡«9')³A _²è«3×ù ÷MÙ_@í£‘ÕBÚ»…sÆÛfNÈÕ¥eVú#¿•Gx²ögòàű°9ýo øß@Éýo èÍfåùÁ¢ÿ<ÛžíhÌk;ÿ‹O^Ûymçµ×v^Ûymçµ×v^Ûù‘õ°ó°óFÖYÿ³ŠvvvvÞ¥ðc;?¶óÚÎk»r7²£&F¥lÛ=BìÅ—+ M;St¢&ìÒäÔÌr:sÛ!äØu‰`‡ÇiËשŒ,›'NfƒpV_ˆCòOî†ÝÂ%™'·Ãì–¸ÞNîᬵ;Ù²6_¥DxÚ¸9W°ë¤‡c&E¥ìÜpƒ\IhÚ™¢5a—&§f–Ó™kÜŽ >¸¸h¶ãÛhÈשŒ,›'NfƒpVbWd’™svÃnIFÛá‰2Äõvrg­ÝÉ–µù*%¢·l Š»8ìÖµÚG¥\sGðÙ§á‚Eè‹pñ[{®$4íLщš°K“S3ËéÌ5n‡Ÿ|žÙ/zxǼû^°hIhËשŒ,›'NfƒpVbáâðãOÂ{Ƈ©Ã"Ø=63xïƒÂ2Äõvrg­ÝÉ–µù*%\º,œ7?¨jjޏ·t.EæG,׬ «7SÕÓᦪ¥SÕ3t5u%¡igŠNÔ„]šœšYNg®y{FÔéT­0USî²ä‰kH‚TF–Í'³AT‹éÆèšN¥«âL±Ï­n‰ëíäÎZ»“-kó¨V::L5K¸·t«»#3…V†òÈxXæ•„¦):1t•#liWQáÞe¦cŠRYx`µ3OÎ!­]Hzïºâ¤ ÷©j‡Ì¡••ެR ì·û$¹·“{8kíN¶¬Í7{ R³'PÖ…µÚ†©úé‹® _x1ýجpæìôãOд3E'jÂ.MNÍ,§3׸}ú¬ð¹Óψº EÛpÎ3áŒ'Ò¶õlÂ2Äõvrg­ÝÉ–µù*%=kNúo3Âz¢·÷àšlç0Õ$=f’Ÿ·óóvû6o×#'[:†©âô¨‰Ñÿ[·E]“™Ø}%¡igŠNÔ„]šœšYNg®q;„„¨ç ÉÀ®k˜™ƒHÛòÄ5$A*#Ëæ‰“Ù œU€ÈüÂg¤Þ;x™Þ3»%®·“{8kíN¶¬ÍW)ÑÀlæ°a7?]ì§‹ý𬇇_“õc;¿&ëµ×v^Ûymç7µ{ØyØyØyØyØyØy—»Þ¥ðóvvÞ“õFÖYod½¶óÚÎk;ïÉzØyØyØyØyØyØyØd°cà ?b??›¿Ô¿Ôž+Ø…%?0/ÂÛÈ3~¨Þæ,3ر^g¿аÛU&Üû×ìØñÊv(1Ü;rb_8ó €1måFükàþP™@š€Cð?Ä F\/\%(›3DùAL0‰XÆ( ™Â,]º±µB× 6Ñm4ç’%K?ˆœ7n”HQùcªGÄ÷üùó áÑ>üðô ÿ\QxÊKÛñ`wÜtÓM't’DĪR¥Êyç'2îEH`À8¼°t1Ç\ÛñmAD¥nݺկ__"zµiÓ†¢vG+! ŒëÕ«'œ'œpÂ?þñaóƘøõ×_#à:–=Œ€Ê·Þz«žV¨ÚN^,†›ÑaÍ©Òp ]+0bŽÁïp{ì±§gŽ&Mš0Ýš5k´2c ”¾gÏžàyôÑGÓ¥ Úî|})¶ÖR)³Â½c¾#0dݺuÿ'süà?À¿ÕªU›;wnIôºˆsæÌ™ÔÎçÍ6¶mÛÿ"Î,¢½§÷„ŒÏqÌ1bÝxÊ)§ :tìgœ÷•%\»ŽVÚNZˆ-¶SÏtœ!Ï”˜ƒ­!æÆŒ³víZÞ»|ùrD¼”€…".èM›6-^¼øòË/ç]W:m§‘´AZHÂE1…Y$Mõïßÿ½÷Þ#ÄCðÈ*™ƒ‰`FÐâïÿûà<ÿüóiÝpÀÂ"4Â.yŸ|òIÉx+ÇÚŽÂj¨ýç?ÿùŠ+Øóo¾ù&Þj$Ž=:½w”ÛBr)Fü1^__Â’`j«…F°Œ¶ñ9Í\‚´Rµ0œaqq1²|’†Ñ) –2©‹‚Ùæ©a×¥K6Œ]±Ÿè¬Y³¨ÞÙј‘ íŒB+î­vT¯ºê*°A÷Ø®–?åv@…¤3(ÓHÿéOJ!Ù"è]$Â]UŽç÷–4§TðjAÙëpâNNÏÑ!ÄéüDÏF±—Z$ 9ÓÙ‡>ø ²0“P°;p# óéï¿ÿ~Žr¨3`F‘ظqc¢JšÊéÂNL'SðØ`£Áƒg êötìÂ… 9S#ª—…ŸsÎ9Hgv 3 ¯H´Ž;-³$o¿ý6ì2tdåÊ•9"‹ÂÉhhk°aª…Sw%/^îçí´¶“Ïfjm§×0 clGØ;Vˆ•+W"†’<ÂŒFjØi¯vÞ¼y0d´ÂZɤÑ9‡ê’GBaX&N´  # ;YqC ÕXTTdLÚig™œëׯ¿à‚ 8m=WÓÅ„µ;j»òÝÙáÇ‹¶“èíÔv€ûÔÐvh°(v …`ÒYðULJÇC“Ÿ¹5²t)¨íÄnÚNl¢ÖvšùÉ'ŸlÕªa‡ñý÷ß׋cZ—OŸ> ¨U«F²B•§Å±}Û¶‘V´¶ûòË/idÅÐYYŽö äàvp Ç€“çêÜ '#+ãKR½`OÃŽ“ãfÍšôFeü$ÚKdF£ DuâÓO?58ó§í8¶c[d)Œ-ÂúXÁÙRÀ‰˜ØR:wîŒerqWõà)ßF¶°ã ÊLÁÛ Í –œ÷rZ3G˜ŠÍ™sر-£Fâ+ÕÓ+˜í*· ”r„̹pæŒÞ 1'›ÒÊ`lW Øq× 'Y8éÉ9Àлõì L0­¶“3°cGM›6 µ÷íÛ·dŽf'Á‡Q^Œ‚Ö­[WÓÅ¥€Çv8°8ƒ1=&xʺS·‚ÀnêÔ©²J!›M ™™>aÂpöîÝÛXýÌ÷6OYã2#ÖN´e¿í¶ÛˆU"c6¾`\ l[؉KAØa Ëp)°ëé'NäÚ£0þÀãìš9N+9‚­AO?ý´ Y‡iàrâR@×^ "°—‚°ã¼ì"ᎈ*’óÚ½{wŒV‡ FNŒÀyä‘GbëG×’ƒÌàÄú:0OÓÅ”¶…ƒ¬'aG#”n¿~ýÒ A lô|^!M—“Ø¥â.öC©hŸ·‚x²8@È®q0Km䬹ŠÇ©,`Ža'-%òxpqk€˜>4ö™†'K5¿ OêM¸ëË3fäÁ Íý÷Ö­P!ÜT  óö>0UŸÃ¹o…6⮊R|K!Û¨°_†½¯«xçw`’8è‘DlÆ46¤°îL1$ÂY½Õœ<„œ²E*瞬¬ƒX´hÖâ°O ã">/Ûéö_Žù/Çrö-…ñmß^ãKŽ‚4ÀþIÖ‚’™¹ ]?}8=Y]ŽÝû»ÍÓþâFÆÝö#Ô_µÙN«¦œòá–¾1ž¬Á,µËÞoÿ(þ7Püo x#ë?ÏöÚÎk;¯í¼¶óÚÎk;¯í¼¶óÚÎk;?oçaç¬7²ÞÈz#ëµ×v^ÛzÚÎÃÎÃÎÃÎÃÎÃÎÃÎÃÎÃÎÃÎÃÎÃÎî¬`·=ó /?òå•„¦):Qvirjf9¹ÆíÛ-ØáÉÙòÄ5$A*#Ëæ‰“Ù œU€ÀïaD°{r7ì½5X4dˆëíäÎZ»“-kóUJ$ü¦-¹š·ë¦§ÇLòóv~Þ® æí2à]½&(j¤j†GtìByœtÚ^Wšv¦èDMإɩ™åtæ·ƒ>¥GX¯i˜ª5NîžÐ–'®! RYΪ2D|7†¼Å !T]ªVpÜÉA‡îH7»%®·“{xjw°em¾J‰èö‚j­‚ÔQáÍ÷”ÎÈv«ƒêß RUÂT¥ zSö•„¦):1p•#l¡«¨`ï2Ø¢TVÕO.U=pIkî]WœTÁ>Uí9°²ÂXÁ*…©ÚAtn÷Iro'÷pÖÚlY›oö@%試»5AcÐá ]ƒÁ—„ç \„aÓž+ M;St¢&ìÒäÔÌr:sÛ!$DmÚ:LÔmüäbð„¶f(äJBÓΨ »495³œÎ\ãv Q¡9ððÚw‰`‡_´¶å‰kH‚TF–Í'³A8«±ukÔçÓgí†Ý‚EQCð3׆ q½ÜÃYkw²em¾J‰Þ ƒ†§ù(Þ“õ;Püt±Ÿ.ö«vvvvvvvvþ[ ïÉzOÖ{²^Ûymçµ×v^Ûymçµ×v^Ûù£ð°óFÖY?oçaçaçÇvÞÈú±‡‡Ûy#ëli´‚õH„»8ÕR1µB;0$•QB…Õv âPÑváÞqT“߭Цílá½¶+$m‡_ˆðÉpu¤í¨áæÎ;~üxOcJEÖvÉ ‡ŠKÁç´|ùr„úC ç‚ÃÃ!’,„å•WâÉVØi‚Q¦Ú¶m{Ýu×9µäF–í'ìZ´ha[«Šld9=묳 :æ˜c öe—]Vΰ˫‘ KúYÑÚF–íqþ[öFÖF›*De5Œ¬mÚláËØÈ²ö÷ßÃÐ:Ô­[—Ñ”/½ôÒr6²ùƒÆ4Ľ÷Þ {Š· ¡ë/¹äÄ'f`wÀ޽óì³Ïþîw¿ûðÃy—\_~ùe„æž>}zò`9‡°“t&„4FŒõ£2G§Nž{î9 ÚŽøÄ gÏž=vìØ§žzJ9Ë«Å,4Mg•ì(ÿäÉ“q³“¼üa—W#K5§aé+\„®ûl*4ô‘G‰,XÀ¶°9xß¹råÊrÑvúJÍ7uêTˆtå•W´F–í¼å–[ÐΦM›â…cÉÒ¥K©ÿš7o.7â¹{ì±H|ôÑGévÊfÞ¼yÍ20²¬háÂ…”/‰äRÀÔŽ/½ôïåP0= ¢oß¾HDHØôò‚äß#·üa—?#Ë'ĉ†1cÆÐãc:AÙ–-[–ÇȽ7nUà|€èçŸ^[‚}É¡‘å ƒa8j?ùä“IÈâÃ{â‰' ØÍœ9ÿ¢±â§C;}ôÑH|íµ× [.«”jÊ”)ÂÈæ v|Ýa\ÐH õë׋•Á•& OO Èó5jÒëׯë€ä½,³y;ŠAc }ú€à,±–ÜîŒ&P®¾új´»ÄP’À°3Æ2ÂDL T«V 3&Ï<ó þ?>'–±¼Sö(¯¾ú*±E¿è!"ô£iOV`7cÆ $ÖªU«råÊ!|þùç^Û•5ìˆ$ìHkÓ¦ šŠ ¹·Þz‹lp÷¨d…JbРA2`âÒ nYYׄÑ}÷ÝG†U«VÝxã˜Ï«R¥ŠÖv²Ö^§NÎöq2E +ì`v ÛСCf#KÝ£C„á‘`ÊSÇX±€V›8q"žÇøÌxàõàÉʃ߰aCëÖ­åµwäi+k‡ºÂ 2—X¸&Û°aCÚ}¬é­¢#9׈ƒK´ba½¶+Ó­œ.•ÄòÿGAMíðš4§6nÜs|ñÅËxH®Xñ¼ð ¡cÊ~+ð„G¨:xEæ ±§ëfŠËÇz—v–Óuzï{¹ÃŽâ½þúëçŸþ#<¢ßáƒMÛéãŠÙc é0€ãz«Þ/×edãlë癄¨7C6§ÿþ€Ým·ÝÇæ?X,#ØQèmž»2‡þrLvD3|ò–°•‘ÕÚÚØæÉ†_Ž‘€÷0]W¾ƒœF'´ßR_ˆÙ㳊üy¶*p*Û)*F Ìa®ÛéÀzmç?ÏÎÍçÙ²¾Ü¯_¿5jvØïd¬#ûýo äòÇ(Ä“ÀnPnYÅú„ÿ1 ¯íò®íhv׬Yo WqDô×v^Ûåæ§w´ÿáTl^Ûù_|Ê¥‘Õ>GœÃáaç¬ÿÅ'ÿkžv~lçl©Çvþg½‘õÚÎY;;;;?¶óc;?oçaçaçaçaç=ÙðΉ‘©Þ²-@A0Ør%¡igŠNÔ„]šœšYNg®q;„„¨ç ŽFHí»Dc»í;B[ž¸†$HedÙý‰ÌØ®F°`qÔmÛÍn‰ëíäÎZ»“-kóUJ„™ ›‚†~lWÀÚ®(\²ôÖv5O RÍÃ^WcÿþvB0ú¡pÔƒ{®$4íLщš°K“S3ËéÌ5n‡÷ý5lÛ5ÒMŽ îž žÐ–'®! RY6OœÌá¬ÄÂ{ÿ¹&LU Rµ‚ÿ»#øýð3f·Äõvrg­ÝÉ–µù*%3)¼ãAíSƒT£ž@©Þ.HµS̓TC¨½¨ÄT±º’д3E'jÂ.MNÍ,§3׸t0U=zx‘ÌÅ¡Cž¸†$HedÅUmËlÅ1Ý]ÃTÓ0Õ:ˆÎ&Éín‰ëíäÎZ»“-kó÷*$BH¥6Ñ¿7ߓݎÒÙú]Â*íÓµN 뜚®ÝѼ’д3E'jÂ.MNÍ,§3׸t“ÓÕÛ‡E'OÚ–'®! RYqUÛ2D|7FD­SÒÕO q–0˜Ý×ÛÉ=¼µ;ز6_¥”Ü‹QYËôíãKed MlåY³>X½.Ä„ò3®$4íLщš°K“S3ËéÌ5n_ Q×eˆ Áêõ% ëMyâ’ •‘å¨:FfƒˆëF]ŽÑ^#+®z8kíN¶¬Íwõ@°jm¸ekUï§‘-Aþ~㼒д3E'&”©OÍ,§3׸ݨіÖ.$ŽßÊÈŠ«Ú–Ù âºQ—c´×ÈŠë„„ÎZ»“-kó’«8#û »@­“|K"£üŒ+ M;St¢&ìÒäÔÌr:sÛmiíBâø ©Œ¬¸ªm™ "®u9F{¬¸NHèᬵ;Ù²6ßÑ%€q®fÛÙ³Y#öU ”„ù‚ >bt»Ý'y%0û±Jáaça—GØ%Œí’w‹TØ( .*ø£Ûí>©È;P³.…‡‡‡‡‡‡‡ÝÀîÿ!B±Ö¡€IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qmatrix-simpletransformation.png0000644000076500000240000000377712536324510025412 0ustar philstaff00000000000000‰PNG  IHDRsrWÁqpPLTEîîîííí¹¹¹ãããëëë111†††¢¢¢ïïïêêê###+++???PPPTTTYYYcccdddiiimmmqqqrrrtttvvvwww{{{€€€‹‹‹ŒŒŒ”””¤¤¤¯¯¯°°°´´´ººº¼¼¼ÇÇÇÌÌÌÒÒÒØØØÚÚÚàààááá æææçççèèèéééììì}}}>>>···½½½¾¾¾ÑÑÑÍÍÍeeelll !!!~~~888‚‚‚ƒƒƒ„„„‡‡‡ŠŠŠ777ŽŽŽxxx’’’AAA–––˜˜˜™™™›››¡¡¡LLLMMM§§§©©©ªªª«««¬¬¬OOO³³³QQQµµµ¶¶¶@@@¸¸¸%%%ZZZ555¿¿¿ÀÀÀÅÅÅ[[[ÈÈÈÉÉÉ]]]===ÏÏÏÐÐÐ___ÔÔÔ```bbbÜÜÜÝÝÝÞÞÞ&&&'''âââ333åååhhh jjjkkk444---ooo000222»»»ˆˆˆyyy||| XXX)))\\\:::;;;ÿ<<‡m½tŽ’±¬H"}HßN G“â‰|6IÔ’Èòb׉`°8á3í××Â$ÆÈü¿}M‡·š}xW‘U/m¬·È+ÛÐÜÀ"¿xÑ’ù`Þ,¢¸j‹¼½æúXhvÐúNœ¬ƒŒúÿY;åàBè r¿Ê+Af¡Ç§YdeYãFdÎeÜöM?N.kb‹ì©â|t׳èìÀ°Fvû¸øB2YxvˆG1GÈ2õ½-9"<—ñTø"dE0èþ —G[× äÜÜQȹÃHɈËa€·&Aß.3¯D^,_êÆNŽdL"£ô€È\¦È—bf ñ¨qK D÷Y '÷¦âJ•‚Zzn[ŒŒx5ûÑ)y·ìy¾ÌÄ}è:ÈáŒwƒ9N=Oà–¤°ñÍ€6¤RjÂ3ï‹Ø½+TÆŸJ5¶IY³m.’+TÆ[¥e‘Âç \D4 DÞõ[d¦"es^¼e 2ɛД5Ù“Š;«UFç‹•í[ÏË ´É"“HÝ•·¶Wú¬Æ&3Lr~"Õ_/n*2×$y8n·7ލû€Hß:ÉñŠ4ÑjnÍ¿‚?†EsÖäLƒd­•mx0)š ©º7K‘U»Ð“´×d9ƒhKôm]¢HŸD(YR@#P$~ÆÈûtTæ_'ú¨Îxª!Zdçlo—2ƒ9@•­óÂû†»î"ü'lrC~›ÐÞ7cÇl ¡éÍèñ Œ´í+´ö DËY(g?±ûø"œTC rU£Ôçù–kç¦y°H.ÕAôy£ØÞ}D—l23dòíOÝjÜh“uÄ_:ó Í&7Qùšœäšw&*iZ„\õ©‹î´±ýŽ”Ï5qélÞ;¸Çáòâ%ðÁlMÐä3!·Yd&³à¾Œ§¡»-rek˜ì8224 ìtxÑr›ü²1Lnœòíìò^“¬Ú#q2Ñw’Ìzr¯Ô>½Vd_ÆÕDÉî0‰ëÙE¾ëTÔÕ‰¡œYÀݹó3k;žéQÀö…A“kKÐÇ69&<>rÝ MpÏË9Dl’¾0Àu“Ë‚»Hžý§EæŽ&ñ½ðþÓ$sd–øž÷*0ÇAÞSÀzM2§'õ!)ù…tMÌTê M²uþÇâ÷œŸå°O,çÃI~zXÜtvì8Le±¾}8ÉóÔñ²xÎ/€é#m5?²AŸÞ¤ šìIÍyz¸[>%9Ž(…úÖù•ÑÞ ì'»0·Búî‡Û5?mÞD‹köò•Ÿ¿o²ÐoqÝ:ž:êì[ç$~l[ÖŠáP3 Y¾om´VSÀ`O”ïòð|Ìjá(ß;„íœ ØŒ®ÉîDÌá(ßsCÑÎéIU-$o:Ñi»Ç(iÆî1FñFuì~ü¿S1ó/Ú´r)´æIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qmdisubwindowlayout.png0000644000076500000240000000612112536324510023563 0ustar philstaff00000000000000‰PNG  IHDR¿žìxL IDATxÚí›{tMWÇbdBÓ‡*ˤÞõ¬ç¥EE"D+DiÉ”µZ5Hƒ$òï"^£‰Åxã +ƒ¬x$Áš¥Ó?ÊC2ß›Ç>ç>Ü—q3óý®ïŠ}öÝûwöùíÏÙgŸ›p)¯PwвFN@øÜø”}4m‰A‹ÈE 3bb:M[nžžè¸MÞCÓ´åîûœž^AKè—áÎ~3l³“ÇQÑã3l íp#éÃ'¤ÙfôuÚ8°ŠžÞ×Ҏ5Ò<1Í#‚ÆVÑÓ78^vꫬéNÃÈõˆ/Òí1"8aa=¾#âe[K¦; #×!“2ì1"8aa=ý>ý^¶–T]¤‹N§wd¤þPÓ@Ó†‘ëÐÉ™öœ0N¥ezüBdËdCé’ÚhºÿלsèòÆ?ýõUݼ‘ë°¨?ÚcDpÂ8Â*zú‡.“mˆNÅ’£Ãª©“Ò‰fšîöxuÖ‰r-HØ]VV~«äŸhðÉØ•£~·J4F嵂ëMÛú™‰fB(*ÍÇD3ªaÆ òù ;ûŒsà° \ƒr{Œ¦âEGت8‚Bü4S£‰#¬¢Ç?l¹lÁ„.RýJÕï{ô5©•k’ò‘¦»ö±¨ÏÐù‚ ×ÞFYbíÙ±7O¬"–ú‡%ˆ6µ_¯¿vëÉŸ~¾ÿï'Oÿ^pgì´5š€J(ßa_Ç.Ú zbcã<ßòŠˆYíο>Æ‚t£èÞÌo·û‡-í‹ïü|ê\áæOÛ|Èõè©«í1"˜Šƒ 6ÚÅh½™8°‚‹¦l*Ž°ŠžŸ­]INZ`Ruâ?Å#¬²\ÑRÓÝ^þŒŒz¢F9ÄÜ£€³W«^CTŽŽÂwK3Þ~§AaaáŸwçø ‰•£ÉA€Ÿ´ËX‹aS2£¾Ê¬ïÕª]ûN{ölÞ‡~SpjÑòû„DÿÀÐfïûÙv ÈuÄ´5öLÅÁíb´ÞLañÓüx„Uô„¯­¦ç9:ÏèqÑУéî+¸„/—åzQ^‘”Rölk£_¢nÕ{·½a( ØÝÝ=** Wfd¡>ptâ×K·nÜv0çÐß”oÔi(Ú_½zí›¶õíácÛø‘ë±Ó×ÚcD0Ól´‹Ñz3q+è¼p<Â*zN”­~ré÷:‚eùÑ<Ô4Ýá縈Cz”ʹó¿ÁÜòñ³7B×_×zSŽ&uÁ}çî½û÷ï¿×aÀž¿šòäŒíaÓ=¢Í³íT]”m¾äzÜ—ëì1"˜Šƒ™6ÚÅh½™8šµÇüx„UôŽI’m¸k›eyª\–*Zjº;ÄÊ”ŽI”–>¾{÷n£¦­Q/*Û´ë‚mP^^^Øøã¾\»0q¯a(<Ñ:wýhÒì%gãáUTT\ÝíW7þh¼½{ž0…’’’ß4|O}jÛÇ\Gþ~½=FSq0ÍF»­7V Ñ”MÅVÑ3$"Y¶‰7vñµ¡N¢§òKÓÝ~>…¢F9\»5÷Áƒ¿ürPØb¥rjìêÜÜÜG—>z|öba×¾ãähò¾çéÓ§…ž¾ý°>}³|ÏíÛwJKKwî9±ïà™'Ož,üîG.‘Ndó% ×fn0´Ñ—mT¶DSqÐÅhp£õfâ(¸˜©ÑÄVÑóñØdÙ/ü¶P󡦻ƒœ„gÐk¯×CAÔ(‡mº ÁÊáV£fà˜Ï*“½bÞz§Iµjnիר۠•&šìêêjêS¤";;;((ÈÛÛ»víÚÌŒÃóìzæÌ™óA…jÕª% !!!V²C‡Nx‡aH˜Uí[µjU¿~}dàÔ©S%ÊËËÃaƒ ð‘ ×èØÌ8<Ï[{¬Íõÿ$=GŽ>|¸à?~\”ÃÃñÞ+ršmÛ¶áÎÃm7sæÌN:étºž={ž={V¹†K—.É‹­|ŠÂž={|}}Ý»wï¾fÍåÓ˜˜Ñ÷úõëÓ§OGðvíÚ 4èÖ­[/<ï¹sçBCC»uëÖ¹sgôJKKs= )ˆÁÏλö ÞÝÝ}þüùÈ,ÊÁÁÁšq›º'öîÝÛ¾}{ÜÐ";/^ìÝ»wff¦¦o¯^½âãã±Á,.."–œ÷ÚµkçÏŸå+W®´hÑÂQ«)f}›5k&¦ìZ9))©oß¾—/_FìQú÷ï/ï{p¸7®^½Š„EL9o檊=¹äz”q âÞ²žìÛ·O®9sæ îMß;wZ{Þ›7oΛ7SÕµkWÿ:uê8ŠL*Ðľ;..+â‚ €/–K"·iÓ³®´F5kÖTÆŒ¥H)Ÿîß¿_Λ…¹ªÂô˜ºSWÕ¼ysÌîjZÒ×üyGމ¥ËsøÙ²eKGуÈÀƒœ>}°DDDX¹qãÆšk‘÷Ú5’Ÿb………òÙ“«ªMvF¯ kÃÁƒmÛ š?/f9Q@Mš4q=³fÍš1c¦ML»ÂÝ)Ù}sTÞ}â”^„ ©¦D4Il!<'žœò¹Å­öÊxl‚%%†.8d¢ X9r!6…Cá\á°?8|ÕeñóIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qmessagebox-quest.png0000644000076500000240000000037512536324510023113 0ustar philstaff00000000000000‰PNG  IHDR'&:‘j PLTEÿ™™™ÿÿÿV÷p¬IDATx^Ð1ÊÂ@`ÁÎÆ{¤¼@NRæ$’ÃØÈn‘#,Xj‘Êx€üìM2»Ï™,Û(8ðàã1ÓÌyè'Fc3-â œÁQNL¸D'…h:ü „Ђ„^h€ZÙ1L§¼'†S›É5p[Ùâ±rÒ¶R>zå’H–IiÁ Q§«A8 +'üÇ@· MÄeïÍ œÏÞ@‰§w™Tˆcáµp.Œîë×ßvÞ\’)ºIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qmessagebox-warn.png0000644000076500000240000000033312536324510022713 0ustar philstaff00000000000000‰PNG  IHDR('Æâ+ PLTE™™™ÿÿÿÿÿ7^”ŠIDATx^ѱ à „a×ô;¼%2…•’QpC {ºQè³G„”‰`žA .’¿¹¯¿¥Œþãó:ïƒ>hf°93ú̸NO´©`gflŠÍÌT =3ÂÜLÚ¬!ÌØÉFˆƒ©.Zè•0 ©³åì“ðR™—ÖZYk«T¾šn¿xoØ-j—EüÙIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-affinetransformations.png0000644000076500000240000020130112536324510025651 0ustar philstaff00000000000000‰PNG  IHDR4²sˆIDATx^ìZéÇu¯WU}̽;»;³É]î’&Å¥.R–dI¶ÙpdÊ}‚|°òHŸ仃À;p (ì Q,[´M3eRæ!rïÙcfçèžž¾êHuMs¸â’^ÓDZÙ7@ãÕ{¿÷Û_7^õ›é^øÄŸþ-‰6¦gf2¹œý¿1)õùClßö 9Ü¡­ä %Ó£†«ÄH`Wù^wyq‰ãÂGŸ9sâÑ'(*ØeIë‚ä1Cáõ2 "$A¥Ò FHèå@ËNÌî%ÚUx䢌¡húB ^L"N@âÃ"ßIƒw¼‹Ë‹>ʳÓîýk](E·°(L SˆD¦eš–í¹žB¦ÕºBä³¶ÊJyKU1¿ç!¤Ë•iB°išCï¾ýÎÙÿ€'ÿìµgÎü•mb¿öÖHÖsìÇiv<©l]ëu¶†§ŸF€wÞ@;écdÍ·Ó„H…+d?»óˆv-‘L ¿3îTµ[ÀÝ ‘£¤–ƒ66°ËF6ƒ!Bm©›AÛ^"÷¦¶wá=cî?ù¾eAn¬¯Y&ÕÃ//BðˆeŒùÔ°50%à,6ŒLubâÖü”²V«!BÒ¬{>ŠxihԶ퟿þu ØtÝ G0““´þ¦ãÿˆŸÁ2Œ6ÏãòÍv„¤èojJp9P9uÄzn)oµ¹Î:…“+1€”Rh­J(Œ— @Ég£ÑóB‰1îKÁ¤è+Õ¾2}"cErâüòÒv ‹÷ùÐàŒ!ÕÒ ¸˜QŒ1EQ­C11û2Ä.r Ê’˜D3Yn$’aÐî„;¦(×¼QjdtVÂŽ¶ùàÝ5øûaî™\çàÈ?tÚ(÷ÿì ½¤å(ER¤å„@EŽ D¯×më9‰ìüaX]¯K·» XãU*ðýB²¨‡©¡¨â(À˜:ífœlRÎXÛñ’Fùzç`¼ô}ØòìlIä›<ßmwô÷=,:9“{åSößo‘ä'ž;f]¾RŸ+ýëùÿíÄåáÊL!‡Ã˜__ó 9ëPÅÜjëM>R$–ÿäÉÊ[¿º´é ©êœësƒ@Ö¢ï׼ɱ\ÖÂŒ‹ë«Þèp¦:D×ê½GgÊ%´²±xã‘SOt}±¼ÌMåu€†0d¦AëíÀ åìDÆõâ|–¼ôÉÜw~|Ë…ÓÍžE22ôD‘R= *Æ~ ²³Y»¶tég˜ÁÙÄì©É¹Ç?jbWÏœà%ƒ0cÑ•¯½16ulíúÛ‡zÆ´r]Ÿ¬Ç§1fJø¡A•lü:y’™eÜh¦ß ‚ŽOf®\¾|b ½½°*âLà5=fÙÍø¹GðÊâ¥é¹éÆÊÒ‹§æ§GãnüÝ¿¼µQ\^ 'ËÆ?}÷ìsò…—Oóøö¯æf§?óÈø¿;›O?ܬ]ž˜œl×V^˜?fò­•+×¹7ߎZOÏUsKʼnbo»ùÅÓ'Þ}ç£sÓ®Óžœ¬®¬Õü!úúÙÆÜüÔìÉÌ¿^@ì@5Ó0ËÅêpt¸¸œ©X~ËùÜÉ#k ¿=0{ µ¶ôù‡áheñ½µ­íR¾P-µ­¸„ByV°¸eX±Wo¹XÏÿ»Ú¾íèqÊ+e¡F0x$ƒ@x½(Ÿq,¦þ\¡|Àwn³F¼ë1á·$–TÆ¡—F×—/Ÿïœþ1ŠQ˜Ì^Ô“ÉæäŒ;-¤$XB‘i“Ô½Ô•¹YUq%EH4?Wš*õ®l¶ÏNŸ½pñÆòð›ç®òQäzQäµ»NëŸð‹¯þe«åì‘ë k¦×Z¿áà¹áRáÈ”Èþå¹ß\¼¶ùü§Ž;®k‰m¯ùö¿}ù¥/ÈÞêÿ<øì©êÜâÕ…ºÁ¶ÆÇ+ç/\?õØC4\nÕËß}ý­¿þÊÄOzîÅžúÉçžU³8ë`Qˆ.߸Z›¶7B²˜.ÖfOÛñšÓ,}ë‡gÿü•3¼«Èù§96]øÅåº`òá :RB×kùQÌðãG‹ËñÕË­f`QÃ)ïòÃxï#ÚpœûÌ“ºàjNCÄ=‰05m»P‰B/ð<6”a, QÄQ̹`qôº½ˆ@ÊÉ|FFÌŽºÛ*™žè¶ÖK•ÃB€×í2sÆ)` €%;^wʧ#@äÜTnåº_Š!H Fé7¿÷??{·yæ2Z"Wnl8¡±¸Ñëú¬Ó¯.·8Z©Çë ÿ[?ºzúˆÝlg Sñ£+ ŽÌ¦ëóŽoä«7h·ÜÍíÙJk-ÔîÆ3c·¬¬®†0jÈðÂRýÌsŸ¨×·ÎÿvëÐt;ÆåÅ­¨åÓ«+ÝNh.¬µ$ŧõZÉ€)´~ý¤cØ@—"×|ØêÍŒÄLÛ„‰’X]YøÍ·†g1¡H“¢»Ø¾í[¿qÆ|§iPÜïQ¤[NÁ$Ɔ‰â%T" io"Á22Ù|!}c¢›ÜwÛHÄCŸV#!fÜÌ– +Ó|ÿ xì¥×ª½`D¢~þV$.&H*ŸCzƒÐ8ѽTA ¿;ÒêT6$PHñH×j”.ÑG ¤>}<Ø–ýTzwЇt«cPÅX­Sò$<øÍ˜º)…Z RRæ YÝŒÁ9ã[í8Ù¥¥ BÍÔw½ÚÝA¥l “Ø]a $4k¶Ä¿ –ºèN°H€vïU€†í- ÕyÔò#ºPéžH.„B§n)Œ0gl0|£…0¥3…svÓO…$HÆøÆ{ÿEÃ0G×þæ/>1ÙýH <\¤¥ÍªÇ”ˆh˜øý¦‚á¿kØ~0(ô kŸC²Æ:{Çi#É0" ¤fÃ:#nòH­t $c‚…*F¨M¨¡Âú¼’P~Z¥áçžL—|Ô0m÷]çÇXÀî·£:š6É |)Ú¯…$*ÅΞOS:·c4 Á¿öŸ,åŒ[²=(ƒ ÝùWW‰I¬š¡çhO&à~Ó'! €%VK¬»<Á#´3¢¥§âûAµäˆ+GAj6ÍQZ¥²Dß ˆbPÖ¿ *«ï¢/oG§ÈTªv'’‰B)à­ËŠnŸicìáï Ûm{Ã>öf{ðô› AÚ+Ê»­@aÙtéezÀ²Ïƒ%î D$@’J·d‡sþ¸2»m‚hªqI1IþtîÓÔ’n c¿àaÅ@ 1)ˆ{ÌÎŽJ‡×Óûñ\cÌʬº/[m嘵MÝJjÍu‡Ǫ̈۱jeF<…ƒ„“%µØd†ÎvLÁ`LEžñ´ŽfÛ%bÁpE³Ê±3©í7DyqáAjRt„Í+""›(Áè÷ß’ÿÐÙp»Ø ÿ¡R¿@ê‰ ï}9¹Ï¢=¡R+nµˆc!»Æåãx>¼¾6çƒ4e¨‰ Ñu^×ÂÎr›võ€Áà5Èâvqºp‚Ñm±‹`Ù„u…}t[ â»0ÄtW¤9E>Jï’±aËÖÁÏ ÛŸ p/é¹güRóØwᳫÓS–@%Æ—|ÏæÎþí]ê› ˜€._äþï…ŽD‘ÍùIÝ{ÀÉqÔiÃ&ílÎÚÕ*¯¢m!Y·#Ü‹±É؆ pÄû~€;î^Âqßk8àȼ„ŒÁ8àdË6²d+¯ÒJ«]mÒæ0¡¿§û™y~½3ÚÕ¬fÀ|µ£QuwuwMUýë3CÊzÄža‘"5I °¯…A^ÂtE@³Š šZ #‰Áói ±v¢·™l  gÚó³_”&¥š}-‰R¢~ÞÎþ¥øü -"!Ø+žä7_ÊWàŒhlÿÞ´z&º…ÊÃê ó.“• ‘ßÏÎçä4%xoAÏ]Ý‚†yL {¢[ï-¤ÞäþÞ; 1)|Tá-¦eÛ8¨ )Wy²!œú´ïØ‘‚$ÄÍ< ‹– Y!v¶TtKÂHèö9¸&ùR=D£ÊöªSA‚CuVô:Z–Å3:ÛµñíuÕõ¸6œç‡pDàDs /`ë”™žLLvww<<ó +ßÖBÀ–Ífùs£3ú±dùðÞÜ6±ØŽOÈ[9t¿žÏB™«U8…¹?GmÈ<¤]Ì=Ïä>ŸÀrWðQKË‚̽©$>¦ àÔÝ2‚s‚®Àâ9ÃŵRHP±ÔÃÕž5k8€Eu@çÕçOÙÔÕh„ó±X¬¥irp–{„¦ -(ꀖÏþ½À6©½d”ëSßçuXÀ#aa› ÏŸ©£3u(¤#Ô¡ÉYòhÀ&|‹$z/÷—xy|ù²å•å•’ËèÛ$úQŸ½G8]>ˆü¨›Lî<¶CKÚ–ÀµL ñŒ0{ÁÞG‹± ‡yab*1ãÔÔ”÷òH_ê ‡é÷×[NÑRÎ/ÒFÇâ±L’)#‘€ÈÜÀ¡ã!ý;eðöéÉi½$¨Ô)¨¦ßkÖ6Ew€WJÝךš:Úuôð‘Ë-ql›" ¿æ]`˜ññ‰Ž=0ç᫪º ‡p ©ªªòUùSãããÔœeà¹JÖTyñ€xŠÖ%ãñ8ÎŒŽ†uIƒ ¡ŽF"IO+—F âµQÕ¶¬ÚªÚšÊOº6 M ¾Y×]Ž<±ÐÇ€RPËØ9.^4_làdz2p{ÊJÍ”X'Ýh™ÍB:Àrú°ÙÓ‰”@sŽŸeDÂTi¹€ÒéiÔñM\š¥¤ìúÀi>ÍØELÁ+×2ÇY¾|ÅÎ;!«¨­­sMƒc¤¦SÓ““`Ù:–n|lðÀ»B¡P}]}ÏñÛ±[¶&©C‡„Bž éëï«­­ÅŒ?~0‰þU”—<|pù²eãcŽãW ×TWãùƒƒ55µ“““mmmûª««BN¸mÉdÈ >Á¢g555SS“- t9 {¶ºº:¬:ì eeex/€ïE?ÁHâbõ!Ÿp’ÏCÏ£‘(!™„ ÉcEŠG*)c8ž•—W4Ek^B…[©_ázüñªÁƒ¢K>fv±¬=~Äá>Ã.qwD ^ï/²'¢xy Ÿ‰WhoS7Pøvi†t¯ Ѧ‹™eeF4âQ*““îØ0~4d9ܸYßÚV ì@áåï€3 º²¢bdl„™®î®|ðö;n¿ýŽÛî¼óÎÛï¼ý×÷ýúå/ïÚ½ Ÿ»v@°200N¦:unÛ¶mÇŽ—ax=:vàÀàá‘‘*„B:^zé¥ŽŽŽ.œ=rŠþ^x²* "(d˜^wéìîéÈðPç¡Ý»w?Þƒ3Û_Ú×g<ª··wë‹[O ¼¸ýEÀ'§&GFFwîÞ øÔ9z €œ÷ïßßÕu´»§0|¸óð.”Ý~_÷ìzøÑ‡n¿ëö;ïºóŽ»îÀ/ºû{á¹ñÉq&)U†(Žw†7£0L&“€fÒN¸@†•@j¦ù ¡ÌC^å½EèÅÅúû qmG¶ƒA€ÔOC¢^YÈbèWg$C®Tjá$EäÄŸbã±1ø6kP¼”z¸Ôö ×²Ð@mó÷‚€†Öb—Ø&·Å•W°„sÛq€ÄðX]½]=þäê•+Cá0†c>22”L€–Lqß[¸ íå;šZZ€#xƒ$‘9–‰¥’ Nñ)Ï‹WWU—ÅË€å0¿innh¨… v$¤¡ñ¼§“«ÚWMðFõµMFcrrr Xº:æÞŽEbåñx¬±¯pl`¿ÈÀàžY[S›q”vËbeØ€?W¶¯„cŠ‘µo[ÙÞÞÒÚ‚©w Ð œÅî‚Î]|áÅŽ’a ‹C$Á9À°jɤ,ɶrôñeú<ÏÇáOÆÅ£Pö.#aKãÁÓF¤œX»q¸¸jQîø°{Åî®Kû¨d¶¸$ˆÅ«yÙ¢8ÍÈŒ@!¨›PêúPŠßˆ‰2à¥k8i†BŽ0å~اp%ÃD!½Ä–~Чb^Ù+¤!þ8|xÁ‚æöå+"ј™5Ä>tðH:œfÿÀ`yY ~p`øÐ²½y¡Xqtd,9‚jp‹Æä€î‘áѪŠ*`×p(ÜÛ 8’¤â„áÅ",íïØïúedx&t¸oFûAÇvðð½ SÒxl2…¿$6`zr¦ec7É 6â¬Ò>uÁ‚ÖEm‹Q#â¶–æÀ® ¹[[fwü 9ëKûÆDÇZi‹ð)UY)Tˆ:ðDÙS’•á½5…/ÇŘùKɸ?¨°ÜAÐ×’ÐÕržÁo xðﺬcО‰Ë,vȶðq© ´àãRxìšSÓF"é†Ó‘‚ TÈ0‹ub-öGŠ+\-­yŸ:ÀmëÓî¶ÀxÉÒÅK¢Ñe¾Ü›I¯sŠíT¸¾¼÷ÒNÖöñ'.fР…CÌ#'£Šp¸Ä6 ûÆgé”.$ðãC€Ÿm€ZØÊ\ ;+ÜEHC´ã9–…6tS²–(Ä{T"C¼ ÷ṳ́kZþ­Y„546%RÓ°òiim%B8!²…ÓžE~!~àÊÃ7 ̬êˆ:ÔXV¨^½èBv׃é ×nâj¢w“DV¨ðPè½TtÞÅžÿ¶éC&3‹ÌÓ™ý‚[Cxƒ+ Y0¨®ö&Ï™tÆÆ 7 o\¬1,", ´ß%n¢¨ÙI’-¤YX)¾ˆŽåÕPü: î °Bˆ‡jUÛ7}P”ÅbK—.íééÑTçx°ê ‹ÎsZ¹xr´…S[s·”æ&¿Mee%Hß´`Ó_W¶cUTTMpÜpU0èÈ`PI½k¦¸qŠ„# Kø&ábaC?Ž", cQB _¤®“ŒÄŸ‹(I‘ÚP(K¸š64'ƒxƒ°Z LÚ ¢’ ˆ Ží:ÜÙ‰ÕÖß×E¨´wTS]ÙTWÛÖ²²ÄòªJ;ÃMPDËäXL8>â ‹/|”åx8‘$&ò÷×I"Qȇ[t*ή¾HØY»fÍšÕkÔ>_>[]ê • N~¶3:©’ß^e6%œEŒm³ò†JŸ4'ƒæ¦T)™_e©8ñW$w3¯`F´Ÿv#"ÕâçFOöÐd"å±0¶w|©KuI’ÛRu8éIçS—Mæ–ý!n'2ÑHΖ€IH)Ž=úÔ“O?öècÛ·o?xàä~“€U5¶MÐJañ!²_²dñ«V^xî¦3ÖÙÜÚ ß@PRÄVâÿ5Òû¿=Q!8ä€ð$òù¥í€Þ+0ò8ª8É-Ú«{ME¸ñ[0#iH,(ˆ}tžõ-S='Ùžt# ¶7²V­yÄGûdAØà· …CÚ¬9 3 „ë†}•؃ÝbUÚv…^ œ²êCQ…oá|$àPZ&Ò§Ç …U!¡ô’ M VP ¬ ATž1Ü)¸4X‚¥yþÅçoùéÏ|àÁ}û:&¦&d°B€DE·‹B¨#êŽý=ôðwøãE ž·iãk¯¹úœ³7Ô66Û¡0­zXHØ¿Ciê¹p%å"+AY ÉçKØ+œPÏk7‹H-o °{ôFØŒøÝùŽ&t ÄUº5kR%~'˜Ò J 'WLœ×£xD%I,Þnd*ýKiv‹Æû¤¡$=ÀáÒú±q79RõP@/ë6Ôóél‘$t…reëPÎÁŒk’IðÒãß_ÙòF¦(Àwô5 Â3¹Œ( EвÊöaŒ/ȼKq 0Üþ#ðáô¢j 1ûk„ƒ£þ¨«þÀµáÓˆ7Á—9ê ×™c8Zj¢`¥ŒBhš"-ÅÏð€ï“°æ|÷lÉÉÚ±á¢ÈT $*xùhcE«eIS×2„Úúg?ýÙW¾ü•½{÷â@Ñ|û(ÔŠ:lÓžÙ²eËó/üô¿xóµ×^û¦7¶/^l&¦|å`È Y%¡"zŠ‹D ÊŸœËvZ²1,÷X†ì\d(#Whk1Eˆ#Fr-9S¥BĨøòÌ•H„’‡T'°ê|Y<ÖÒÒR/§51ßÇ) `E¡Ü]Í¡/³%&2Öeœè±pµ%Ò ìSê;I,ÙQ-VÑ9¨—F͈n'´t½$Ö‚`)ù•¢$æ)R.u ŠfÖæ'¹y-­Ñ\ÞCbÓ@þó§?«¨Åpˆ“Å÷Bã={ö|ñßÿý¶Ûo¿ñ¦¯»þÍUµ)¨ ã^¿ ÓwƒNZ&Ù‹ÉßjÒómÐ+žç×NGË ŠâºG!IûW0¤iF°”YµbA££Ä}øgíÙµ{:‘ pºL ¼Öèãá8žY ëý¤–gœ09)ŽO&²¡PxiE#‘ÈâÖ5ø~‘¤b‰»Är²£¨g©cËd{é¢DN 83¡ DûòÐâ/ @ ÀRøD¤&Û”`ˤÿ ,'£ñ ø‡Âom§gp˜Dž¢·Ñ²$¢Ú RFy]œá6Ä­ŠPJHæ6!Âɧžzêï>ñw›ŸÞL|Q AôÓŸúôý÷ßÿÁ~ð²Ë.w“!Û#ý&&ÐÈÅ!Íæ¥štVä'¨eDlÂM“Zñ’*º%b5S¨“•K{5Ë+wØ(PÂâÓ¾FŠ¡ÔÓi‰X@Vȥ˜vb€—{(6ì?° eì‡ uƒP4A3ÈêêkëÀï·´´îÞ³·¾®fbb‚Ä P~ŽƒÅðÓ_±B#ãù(êS‚Ùí@Yʶ\µ™•,Ž •µ­uxÑ&GÄ̶– K\š }ñµ’d!¥Š,™Â“m¬'õA0”Ù°¤æY)ɲÀªãD”ÂÞ(ìǧ(­ÅU@ .é9<ðÀG>ô‘Ý{vç Ì’ƒ(VÌC¿}è¥í/ýõþú}7½oAë—f2)Ï-×WÕ J )daˆ<ƒF³ü£ŸŒ¶ƒ‚ÜêrL~€–‹odæÚ¹{¬c}”)²&J×århäEÆ2:: ²ÖÈ.ÓÆÆÆxEÖð !Ü$7lØpàÀ>@~ccÃøÐxÇþ}˜X<A¢÷utX–Íͦ¿ìO£ÊP“肛➗–űAqÕ §ËÊÊòåË—·,lCŸå”Æ$dú›¾5Ã|!qÇ^D¬¶Ló¤–=]¡[¬ä4ïܨD¯AÜW÷±c0U]ÿª pæ²)ÄeIW)(Ý@ðURfØU¸’`dd¾30èÊŽ‚át‘ky­`)CòQ< 6·±H&xP5›–;p$ä{þ§—,Z¼|e»›Nñ9ŠÄ𦏖(×ü“Ajr|b²óÐÁþþþ±–ñ² Ébƒaf¾Ë]î´ÜQ$Œe]Ï"ò‹K’ÖMÓb:È[dHnÙè&)4¦*Ük_/ A%ªÏ(ºÙ?µ¤é’xNüQ\yèСüûܹsWLféQ(fä‰'žxß7Ýü•/_zé¥òÈLiJMR¼SS>zrúÝï}wýúõ³Q›Œ1îí†á0¢àR°GHåa„"†e3p#V *šï1x훜›RrZ„8 w|Яžš4-²,Ÿ(MÒƒ¶OfR, ®òì¯b^eÒâV–fÈó ‰Î³êÔˆ­9¿z¯P$ÞE;i[³%©FÒÀ@Y?êÛláG7r|IÆØŽŸ!!?ô¹ècn¨9<'ÜUO4SIüvX”rÑ c+üÖ‰«ü”n*])­†£s¸#ˆ–£«”¤Ä v¶oÛþo|ʱ Aû âÏžáãý8ð碶6€^!¼ž§È‹ZÇt)`Tò¥iÇÂÓBn(ø|ÎHÎà“Ùÿ†«§×mMŸ›É€Œ`Á£{ÅT2ðƒ¼‰.“óØ6MýDh6ò"ø¨Y¬¤äT¤3R¢¼Å$ó)üÉöp†GFÓ$Æ ™Üà2éL²ÖLIÇ kÏs²üœ÷Hvyr* YÃ"²äœ×azb<áíùOá¯ÀŒMâ[ÏŸWß‘h„˜oì׿öõ½{öŠ ýc€ÏGyä Ÿûüç>÷¹X´,èp¶ îÕäÿŸ®÷2€DÉššæÜ3šqblSpzr ˜‹^Í-…½™µK ’$=4U:“ ƒ-¸Ö=¦ÇÒuoWUKB‹`&›¡G`HþQmxI\›ã‰<ËÅÞùŒ¬ì1}ÓÂùxIkƒ³àð?;+åµb¨IP%Ð ªL%b•¨šy‡äÖm§$t©"‘Ϋ‚žœžU“c9?ô0‚Ü”\qRx¸'ª’_þüç·®Õú÷¼û½²®&•”_A‘·Á Þe)¤G¨`‚BŽ)(Í3lІ˷Ë9[4Žl¯‚‡ê›:Ï+ЧG´aƒcÔƒ¿N(*‘ð’f†£˶g Å¢ào‚iƒt¨f$Pù)›¦Ñ³E¢Ž3¦†šôœ|ÛdϨ6~¡;>ƒíkfú2±<à9É4–ʶCæ~ùR‡š3SbðT’£R|dŠ(yV'’gh§ª3$÷i¥«ó… L$¢wë›ß‚s& ô–(åååˆèaÙÖÑ£]£#£è’àfk_ýÊWÏ>gg©¬WªkåV”ÛFEŽ8HÄó°õùRœ¡a`5?О"ÁW¤à‡ T­C:ÊJ…#øq³˜ÅèÌLþÓÕÕµÿ@gMMÕðààÚuk¡h;§;TtWÂu($™s’×ô,®RõDEgt×ÌšXZâ"ÓÎ\'£|Ѧ½‘£˜9~Ú"³TôZqLd=ˆo xˆ/09šéb ¥Y4W· ~  1å¦x™t“d¥záEûîý÷Ý÷ÈÃã¯Î\³nÍ{Þ󮵫Wcô¶mé›ßüBÑ >1 û¿ÿÝïñ _´C6-iXBjJI¨DÚù…èÂÆâ {ñ>)ãEô*w |e¿¼S '™?Ѳ„2]k(guÞ î¢î«‰«l—Úh%¢üú×÷íÙS¿¶þØ–n$?xýë^'—¯YC%‹YÀ™œGÍvF/rg kìrº’$ºé¬Ç*j©¬@H´2M‹.Ò…JýȹáIN•Îó0k÷‡ÉN™±²â5¥ÂÛtA”äY!Np‰˜SZ"Ù럞NÑŸþûG?ýC¢MñØ Û~ô£Z½zä0˜üK.¹äxoß×ÿó¿R¾ÆXÈQ%ÿôO_å•W!ÿ¡–àqG›+ShA–AÀ»é4YSÄrèºk{ê© i¹Ñ@äT$ÛO¤&Hnò=3åXɳ*¬þ;B;Œ~ð—X‘N£¶˜Æ Þ^]b%ˆWçĨ|TÞ-:ÒÕ©ÄÄ£*“£R*·•â9e\^Ý1了†¾tRÜ+ФÎg .‰NOÓÊ3XÉù.JÙ¡ùI“Чö4¸MøoÁÀ0ÿ‡,\Ó^|ÁÊ•«SÉð çùòeð¯OM¤‚±¶ûûøÃ^pþ…0y‘·tN€ùaR$|4 ÖÀ1>éÑúN3@†ëAÆÉ ¦ôò©P¦=9=¦9ÒJââ1ɤþ®º®ºjaÕÀö¤¯B´É*‹ŠÌ}ͺÎ]þÓ-"ô‚›‹üìeÂìiQÄ<ð<]`ïÎWÏ =àSø Tø?{,à$Ô*ðQ) ŸÆ¥/³Ù9èêûŒ!Nrbbgñq 0ë²2ÃI1WR­Ó)™±·qUÃHìÍ‹¦NNÿòÖ_ÀnóQŸ ³ÍMͶešÃì9Ö£Oâ <þ؈¤|ñ¥©RSÅ(áܧðM"ÿtˆ2xX…øÀ&‘†ðÚNx“àØ)t”Ñ>`RÆÛÄ¢Œµ/Ìc¦Q“™ÑÓ,Þ%WLH‚©d­]»(´hÊœ„ÃHoŸã„Ò~„x7å§òÂ2¡_Þ>œL§˜-=í³2Lƒ‚xž›ò»‰¤‹×£˜.sçàV©?SÞúœú…/oõ` Hhä€O´¶4Ÿ±f-.ÂÑy‘µ>žL‹„Ѷ%àd‘eV À@y]da£Y‘·Ô˜~oÓuËÂ%±3"5K¯."ORk¸ ; é’/ù4Dÿ{öí¾ÿ¾ûyï¸Ð^ QÌá‚h;aŸ,´{z{î»ïA…jBÕ~O·ÝqÛyçŸçØÝßD×T¨z9;ˇR“’Lìk:é±TN8ò–2Ó+²×N“¼|¨8Q T—ŽöøF]ö`knÞ¼¥»ûØšÅk–˜‹XGvì|ù¿òcÓ÷ÔX!‰90‚¦¹iÔSx ÎZØ¥¸HrNÈöŠe‡PAl™N( t‡W„¼Šcap½¶_& ãD­Ã;d„(š¡ÝAC!ÇÏ–æàkbbÝhr2Éo/d®33ŸW˜3¨$F?í"s6Jƒø‹`å%¢“M S¼ëÊQ 嬓ˆW¦&¥sÂEWÄKÓS8Ï©Íû±G?räÈ+¢>!ÚyüÑ'–-[ 3Z;:väÈ-?ÿåï^ø]Žƒ¿Ô*<ô"5/]¶ÔNÛœ&ž'^š L$_(„tL7äx$-PSrÚšH£Ëi@®í™¡¥å„O¥Ð“ŠuH Ë÷ÝÊÑs ±¶/ºè¼Ç¨:Rµ°¼-fÇÎ\wÆûox`)ÍÀÒ´7Àÿ>–D]ж€v]Ùâi^öuÏû‚–…oyÿ«–oò%6 QÐßDò¶ yUgã—˜“°˜µRŠaˆp¼òJÃsr”ÿJLT™ÊÐÂHLƒ…—ýzñ‹ƒ p¤¹%N ¡)$c‡¼bÅ j’5ñ îßųýÜ” ¦|¾}Ã(lzÂòp©•v¥&‰j) ´<¼iÁj¡5:íðP±¹™z¨ÛÁn¤²¼ª¡º¹<^QV^^YU¾—/oç•ü6¨äTŸÝŠÓy·$> ·²®h×£ÜÃ7øñwe†×¢£™‡ôFran.Ykм,A!'ÎSÙ¤òÊ^’ôûZÒ GS‡€bßÎ¥¾„`ÃC9yÍyF©æ̲‘µæÙgžÅë^YKZXÕ…RHWö¨)ú‰T †$9¹)=qÈ«¢PeU ðœ³¶V€T ™ð±/¶ÍK \N AË_G¾ã S[’L8"Y@F Ðæ$Ñœw=•ðN1ÇE‰(+ñ„LÉ{hx h#êõlŠ ]¸zóÉÇŸ<Öu,$ªÓ,b~¯ð‰R ZÛºu+r`-\¸PÑÜ ™aiöh.k.Ù´• M.y¯™¾ØÅ³³ŸHâ4ø?ú fZrÝ{ÊxnâcùÂTpûZ»víKÛ¶CÕ‹D‘,¼ŸÞÂ?¼šÓµï“‘ìå fž–V®6‚FÕy•'sÔ›Á3ŠÎmOÙt,RæX‡¾!-^FV´t¾Éè9IÖ¥<ò&DÁtI6NÙqˆ3hJÑ%¯ÜDb2w¿OÂ’u€„´¼IX§Ù+ñè”]Ík]NNO>ùÄ“HÎ/õ¦ŒK`žºxñ¢…m­–ew>rðàA¡åÜ¿²xö4Èr×¶¨MfÙ ïOCšf-¨ÌÅ‚¢û@æËFþU¦¸ƒ®ß?5ƒBeZ…úÉ_mßðM‘þ 8i¬Yµ6ìD†O 647.]²À)(bžTEî&ù t»ÐoŽþF·Š!Ðæ˜éZYI-¹NôŒ¢XŒÂJA¦©€"fÈ–*’>âîP£Ð¤<‰&Á†c-c(„µJÒígòŸPZ²7ìww.M¶/Ya•?÷ÜsÚM4UHðæë®=ûì žù¸‹Ð5?ñÄüÓãÝÇÿà]wïÚ´s$Éo‹£{`ñ<§bGä8j+ô6¶_§E¹ Oh Á?Io&£hY2e³²êQa¶é477Ö×ÕBëÉZmGƒ´§•:W„ÉÛ  pŽ÷7I ™j Å®w±¦ì÷úf!…œ¡ØÌ`¬v9sºÁ0%<åPIÈZ:™R³|1_AÉ&^Ï—K"ªÕQ·É‘’E¨Ëcf6+oàù/n}’O¼fîÊ«®¸ñÆ÷,hY˜NsÜêšÚ7¾á È|òþã+„ñŠÃ'PýŽ;r½Çd)Zwñk@0t|Í—6Qk"Ë@ÈYe£ôÇæ{>Lâªþ)¹†x·P‰¡ÌÂfÒ¬ÍÐÉ+Ê»`IÀ#$A VäU]dŠ$qtž% >lgŒ.l‡’¨éSDäŽüZ”¡$EÑÙøVžQL° ”ÈS‚9aƒ{F‰Dµúf4Ù`›,àÉrµÀ ™N4”–VÀÕ×\ù×ýUÕuPŒ3[Çk{Sb]tá%;_¿ë–ŸÜªI}E ±"Í̆Û*ÉZnL\…%éž kùGyc“¯á\*Zøà™Ô[~ìuÓëè¶UéOžâbfÆð‹3¡eîijOÂ:¦38~&Ù$pÊV&4ˆÿ Š(‘iË7¶åâT:Üžååqo½SŒ˜ÅêDfòƒut?Uö†[Ê¼Ž’G“X¢a½ã¸CLÂü§D1%)”Cò½29“  ¢Lûô´ †ó+d‰÷õõ=³ys =ëUgÞô¾´,.C,ŠhþÆS“ãøC`âtÄÖ5W]õÛûF61ç+X€ÀaJƘBB¬$Åo‘\d7ÉÃE }P¤ÛÌËúÁ ‡¸tŠw[eež} ñ/¯(9dÊò…¤y[¼8'Qسذç€Èb]RK‰}u&àGªB¾25Ù…ó#ÃÍ š‰fiêÏÆT Yì’)ÛZRh]šcE{(жI\L')§ÅËeLWäÛõÚü$é–¿ÁƒêoÑá¸T8M ¶ iþê´>G„â›nºñU6557AD!áR#÷ ôöt޶´.\½v$¥¯°¶á™ ç# ¤x F©rœÊp7èNÀºX5­lm™M(NÏÉLÂçÚê*Ç2ìßïÀ:Ç3X-t'U]®§ª³3’väø£©ä xØX PQ¯t‹èS/‹œëÅËÒ¦c8- S˜ç“òfÞÕá8Ù½Åûjð!ÄØ(2ü§ T²;‚ ôÍ€g@‹á'êËÚ•ríõ×.Z¼ Ïæ_Ýó«_ÞúK¤ºìòËnzßuõõ0XY¶|žݻJ›>àö”`Ée‡,XPYUËÎáá‘Þã}°°Ç9h0R»êš+_ܺíHç‘ÂåL"ôhÌ(G£$>½Ú5‚‚Êz?ÈQI†eD%û|qŸ‹âº .y°šxðõŠ¥™Ú,;jÎ%+¥‹’ždaáÑŽ÷ +EžâS…÷ixozjh)›AcÎÍiëÁ%¿¦›E0Ò§¯q^tÁè»Ò+œ²–m:t¢ZY2œsî¦ÏG¢C'?õŸúÑ~<2:‚K<ø8ÌÏ}ás€"D(¯ol ‡Iñž2.»ìÒ .8È1Nöãcc‹üÔSÏ<øào!%F×!]X»v]ûŠå_ûê7ä½YH¡W mðŸ˜@)Š™E6PP_ê®pëAûµìÚx(s ŸÍULy¦$žâ÷xl²¢ìºly'ùÍÂv鉩DäåiǶúh/|KpÜÝYz’ažýŽ«Ãd°8¢ùñ‘/ßüµÇ{|ÿþŽo~ãÛðKx6”ÀÇœUȰèšß+â1þ§§Î¥€$à`(:0#´Igã!Xù‚Ôp½ÆÒ§éNSc}Ww6bR‘|4X•ƒ‹·eÜn„'Ë3OÛ°B3Y€¥îâ—8ÿL‘)ÏœØû¬Ðã®ÐŠ™rðÌB hZ?–…¤gù²>ÙåJl ïÐüŠâkÜ‹—*Q» –Xé@zŽ÷<ÿüóú#eТŋQ¹çî{¤&Á7²>–ÇË`“dÔЧ€ ˜šžîî>N•×|œ dûÎ?û[¯¿>^QW8€ÛHMC%396>мZ†/І5r}]ý 7½çð‘΃ûîܵk¾!ÿ`‰EÑç9Ѝ4ß5P Ò²ø£M­%1+vbtìx_ï4T!ÙÌ'/EÅâ KKÉ*¼ýƒâÚšºñ‘Á¾>AÖâÅKÁ5€üY²hÑðØ(\@± ·¯X‘œNìØ½;™JÑG#9/+#ÏgŠr–M‘¢ïé¤|^¾²"^[WÇ( ÂOì¨ BºŽ– nÆà ãeRÓ+¾3ß-!!+™4»Ö©´ddýŽ#'ÝœB0“á…ìŠNÒE')…Ë“)3#åç@¡;/½üRgg'Îpw_±b9²ww!­˜ú‰291TsÈåTŒ–}ÇïÛ·W}Îá÷†7¾þ-×]·pñ2Ø£Áž[–b¸ÝOÙ×ÛÛ?1>ŽŽÁÝ >œÿëÏÞøµ¯*VÐ<¶žj8UE¢ss.œSÅ.ÑÀ_PIÆ?­Ö‹Ÿ‚,,ãñ ŸvðÀ¡—^Þ19>fzbñl¬"áÌ Zh‘ãƒ7q¯e ôïrA†¢–ͽýƒ"[gÇYgœ942‚!uœðàЉ¾ãHÔePœïÂõÐ:%¤"ŒbL]®UÒážö”œ)€ô‚ææ ÖWTÄ9ød±µâˆ’^)~v4EQdâ—Dëæ(ØŒ')›-T†w1×U$2Gì<®{õH+ h‹œãô¬·ÅbNW¡wùß ÛeüO?õD² Ÿ‰ë.Z•uùEïeò~÷»Ã‡;/ºð"?aNrÏî݇už´oí3Ö­¼ly{ËÂV,<íM̺ µ4ï GŽ=~¼›‰Ç/¼è‚{î¹·c_Ç|ùÃÚÚ:`ò¹ Y)kfå.¬aç¼h ð°tVf´ç‘WO@¹ÜÚÜܶx¡…€IŠ­Ê°È‹ºÿ°Œ“´Oi3ˆ ][·mU7ÇÖ`¦¼éêË`=’F1¢a{tlÒ±CÈ8èØ?ÅØ’%gž±¯ ¢M B¾]\¥bÕjçîíëëß¿ÿÀÎ;7lÚ@·ìTˆ„ è•’µ 75+†BKJ¬ÃУ‚O…ÀIâL>*„¦%o1Û†­§ñA˜ Â'Nû ˜,²ÙUÀÙ¸pcÓøì3[´:uÍM¡300 ™³÷?ùøSðiÈ…±Ÿxìñ' 9)Ú¬(¯¸ v@æBÛ¶Ø äuEÁÎÃ`‡@ÎKáJècõ9<¾PcOƒ ½K$D7É?¶èýQúê4ÙY>®¯çø¢¶Å+Ú½ðeea°\S‚DÀøžA}âƒýœ£Â622 {@à¡H$ nn±'láL¹®ÏšÇûŽQâuøÃ“QaüUQ™‰‹K¨ z²ˆ÷$ ¬ó,U•õÎÎÃC'NÔ×Õ ’‰{†f0íúD/¿â’Úºz¸˜ñ±¿}ðÁ}ìãÛ·o'ë…I=qâÄç?ÿù¾Þ¾ÏñóñòxëÂ…ÃÃà˜Û.„ W §l!ª]¾b9‡qŽ)`”gʨ Zf` ”¢Ï´šÍ ±Ã!*èM…î yº>«)Ö’ÎlZ ` Õ×7œwî¹Ã##€Ý»ÿH*R¯| ´Ë“å9A:‰!Ò‚Ð!&‰{ ÔˆT8^²ª•?óД•Å‘0ˆr• Õ'XlS˜S‘e¤o4U¬¤™”ešµe B%ùÁð£¬BÖŒ€< c “õ*¸¨+ݨ…Y!ÈÝŽÚ?¥Z(tך €™@¦¢6ò„Økš€1»®xÑ”ÁÝ¡Xª–xC†¾¬RŽ=ºíÅm\—Ò×C$ë''¿ÿ/þâÉG;|ôÅóV˜gµ­5FY$åNoíÛ—®¨´þä"«ª„—¥¶§×ØyÐ|äEãÑÆãFûÊUµµ5°Xð#N}óß$dê-c£c`tßú¶ë‘Uá·þâöF²P‡Àrð Ñȼ~ÝêÕ«4/˜ƒPà_Tdk),÷AÙH³%]|8ìvñ³ÀõÌÎx––/Ó&â$gé•€¿¥•MñlR¾Ë™?‡€'—4³’)‚b8ó-Jd$WN:ñ‹H;ã|Â6l˜i%± Ñ¡‡iÂ>·aJ¦Ót7 Ô‰ ÎÖÜíˆ<ùÒ€c¤¼®Ö+–àœy˜ÓtæÀZ™ à‘²‚u™8¼ŠAŒþÎ䊡ñºÒxâ«$dm0ïÝÄ©áw/€pE]-'&'Žv…_˜íN– mþ^ïN7«Ê¨Ç^õลÕn[bÄË3‹ ZfÔÔºí+Ì+Î5^ÞkÞÿ¬ÕtF¥c¥c±2¼qßÞ}Þÿ`þYÚ¼ð Î=wd}ý}ý-­- u£eå “S…º‹.ö¤Ç@¡s@†„ÚJÁ\d¦‡–ru õT4ÛI!VQîjêE¼Cy„ÈZP+Gßl§~½v„$ÙÔK²æƒî (¬ aÊ:‘k0ΰCYwE66Ó¤„3X5%rO RK¼!3‡Ó㈦)CLJ^ó"ÿ´¬Ÿ:.3 Ó2nxØ êä-e¯ô't •¹”ĪŇޕð ß²…Xïé§Ÿžœš ¶@¢Ž};lþÁï~ø–í·þUhx[EÔô³‡`˜\ÛvÛ–˜í«Íx9CKI>€Yr«jÜ Ïq?òãâê»'^üÏô¸Ç¯¾üòËÇŽË9 õگ««2áѱQÂL¼,66>>=,8oÏ9÷œSL“Ø$77í<&gùA#y¢Âá*Q G P²‘¤Ô'YÈäÇ“³:ã%w``Z(0í Ì¨ÆÐ]ù7òo<é“UŸåu³Õ¹¡ˆÑU´Nƒ†@¹éx#Oë‚"wC*,çCPèI´~*Ûƒ”AiNÊGâbÙq‡&!ЏAÝ”·ZIb“F²âIÕû{žö9B7°clh5Û§uüÑ;Üä„ëo<’¤‡ÃÆÒeFS 3\’?21¦¯Ñ†xÝ\]1väнwÙ¯ûB_o?ˆä|Û7œÙ»g``ÝÚuðDÃû)+î=~‰´ Õ£.ô1«V­Âžšv0síDåê©¡V¨cžÃY$Û¯[)oB%­ §À=(ì›Í0:ܽkï–­/¬9sõ¾]{W,^¾iÓ&4˜®Ì€Ñ¤™;†'»K°3Wº1¥KQVlåŠ×Œ`cçކŸmônÆá–Àšð€+¤pØ@T¥á îOe{¦œ¶ ‡i/ß¶éx D©}5Izñá“ý,Þ݉Ë+Ü8̸_ÞñòÁC‡°M2Ûj7m^Ðn”GG×Ý,!Jz"5V´õM†¤‰'%#vïô®.Yj.Yî?öøž;në\‹¡Õ-ù&;K—.6$Þ S¤Âsý†õÕµÕ¸½À  r1(@¡Ü2åBOi «"Îd.ï`]!<2ž†XªBd`›7?óà®Hý&µ/µñÐÙgu{NrR™0›4»pû'ù0 ¬‚Q… f f«—æHkÉXf®I¾ÅàW„iâFEûÍŒÆDnsè¤d{pŠBO!Ø) V€Æ\T(G ¥y•°9ãç#MÐÓ›7 U9¹ùÎ %õx±ÇXŠøášÇöUFM(†Ù¼[ ¨N:šIwÝYÀ±V¨wÏŠƒç¯06ç™f ¢|Íë^ Ìé[ƒ¥ú{ïØ¹‹LW Ѱ.#Nø”L¿œ¬¾Óñ­I‘’-±™Òÿ«±,ü·SŒ’F·Éá¹JHÒД_ëÜ%•HôL‘êÈ”=Mœb±Ü¨y,|r©ü¶%rØ£p2h`d‹#3²i­·V4„b“É„~Ò¨Ëašû"ï ÐJ@Ìy Ø€·0¡¿àŸ2ž šˆ°Êkò2C¯‚)J%L&|ìØÈØæ§·Ðróì%Æ_^áÖWx£“C„Ì•«êZ¡»YÉ|lS‹••qËØqµ Æyg§?j_ýãɽ|¶Ú{Œ÷ç_Q-' Û¶oÛ»{O¡¿×Å^Pqæ™g¾¶T!Á‚oj•ƒ’9 ÏP§Ð®$JÎ#µ—$c™€>O„úØö\qúÑlVke¬²µ®µ;ÚmL¢ÃÞ6G´IÔÈᇋIÌ,Oá8ëù.á/Ï»Ä~¼J7¦d*íÕÓI¬GœCÉ «*kêkIŒdAŒ *¶ÓƒKB&á(7WЏJÉB@€zE âpM3$t)ÄC!Ï",¥·OY¸½÷oPQreô÷ö>ôÐ#0d ¡G á„õ*ê“H8höƒ™,hYôdâI®°)9>ê”±­ÿŠà6 S™Ž½ƒ'†pøÀ€ÔÓþÿ©`ÅKþ799µwßÞŠæŠ%Æ’)s ÖÎ?ûùÏ¢pÊñ ZЦBd 'izT•&Ü/UDzQum¿–íX(~´Üƒºa{uœñΙv815‰pð>¤“)`Äwî„3`XËÓNÔ§ÃfXøG~!Z¸D ”b“è•¡1^2L×¼ž”¦•X!°!–šÆ9ÄÙ€ßÜüرâ¥B\d$ ¶<·áöpqE“»´Æ[¹˜0õ ³¶^Ó\HÖ<5R{·¢Ê8o“ùaìÄióñ=žùšgBtÑåŸûâç É dŽ oÙò,œ‘v*pË[¿~=, Z¸ÈT¨ËÌ]ÊgŠŠQ³RÙ XLÊI½‰‹*¬‡™˜¿Í` ‡àLh’@I¡_)Øß¤ž¨.*³#æx.-ê±{ަŽBâí#‹ÛK†—øå_Ôƒ.À›ÿŸÂuØ›F…ðòa1â8a¯Â¥ˆÛl4å—±!¯fOLÀƒ”Lh~šÇŠÉ”\0¯dP‡À62 …B©ÐgF0YŠa†'цa&¹ÎEU&>bh2$”1=É*Å ãU¥Çfß„ù‹ɇ“ÊLxWcº±QL'MàLÛʇLš­m¤%©,¯tÏÝd|~aí«Ë—^uîy›®¼òʦæfô–{÷þ÷ÿ´ëhWáX+\téE±H üó)ïÊI…ȉ–,Êg|Sš­™bË*žx¡¶ M²PI+P³}^#ä†ÒNzã¦Z*nµTsU€þ?Þ{|:=ÝRÓVݽtéòÞ{c]m-3L,)X~ù•[2 É7ËTäZœ·t ~ !à"˜…¥;À’1Œgêo2ϱ Š_…fNj5ƒ[#½ÆÄÊaû(I’!â{=‹=mZ>bsqÆ”J$«Ô ê*· «œj)“ðPaОcÆÖƒÆy+Œ ™3¶e˺£tŬ¨t/Ød´,_rÍUÍëþ«„¤ RÀv>|ûw=úðcèOáÎ(õõuç{^á9… ñ^ ¾<8J‚af‚" —iâCm¦I ù°FkZSpÒÁÜ#á {"ì¢:¬L$§ë*k«+ª¦j§€è|âRû¨EX˜› ÉÑ‹è-Š€SƘ9õPŠ:ã8ѬIL„^ùfÏ®u½Œ°G†“ùØ¢¥À°.“:õ2—¦õ†£Pà æŸF=˜ö0Ãd‰Ñ1Âg0ÓfÉÈ*þ^Û„±ëÑ#G Óî[ÌU-FUÝ‚¼Îµ¶ Í¢fKŸ•ÕF[úСûÿCW¿æu€”ÄôTçáCwÝy÷÷¾û= k>Cºzí¤å,áÄG\ŒB±kkFnB°´â¥±z§Q¦"Éò¥´a³\N:zÜ™äMÏqlgÕªvX>"?z¸fõ*8€ H\6vYwu‡Ð° •@Ž¡zÒ˜”J}£ê+SÁÓðV.i-»áˆÃ”¬•žNØ¡‰3m—Ù]¡GEוjQÛ ˆ.!ÐL¿Ç'Af"9÷¬é ;¾(ßà3l„s”¿¤µH];PŒ~¾bA@÷Ô“O"mf«òìu_êt/YíÑ·(uõFÛ¢7]ÊâV×Únúà¡û>â¡çÆsº`¬ðëû¾ñõoõï-25ñÈ6Lr*YHcØJo,Ù5*’÷H(ΓK…vàôÐòô÷jƒÀ—Iá(M|-Ûÿdè5¢ÔM;W,` W¬h‡älóÓ›ØiÍê5^ðX?Gƒà^ù6¤úVɯëœÀOvK9ØÂd‚Qe4ù%?Mi>•ŸS¶Œþ!`#‹Ì×7R^ÜTìxð‹È±2355+¦±ó IÓÕâ;0¯ ¾á‚Ÿ¯¡„¯ó3Ï<P¹I×/5Ncz ³Ü¶Ä…#nÉ!S3^SŸÆý÷~`¤õ/ïy²óç·Ü2Ø?0ß(µåñò³7ž gb.ý¹Gñï8§W€+&Æ&0§—¡Dwøñ‰'SX‚"Uþ¢£¹ýx‰¾µ-BàHÑà­^_×€„zÈ,öt¨ºJðü©ûуÍè’ŵÂ]M+_–Š„@š‡Æµ2Ž=ý"J@ÉÿÌ$å´RH¢ º˜QÞPeW8[ê>V¸uåà{ï¹wÏî=ÁØMç]ýçV÷7é®Dai<þ^òE¢“ëñÜCO=û¿¿'Ùß?i³3óqƒöëÎÀPèM~þä•q„s…³P P¥ÔÈ».›‰$ζq•JDáºÜü3©ûƒçYh„\VÖ¦n>dûà¡ÈAåS3¾K·«ÁlùVT¡\Ëc}¾?&‡k•3¨¥aÔÎQB%¡Oû±¼B!å2£Kt¦b*œ'³$ö%†:Àa:IÅ8É%Í¥¸ùcÝÇ~ô£M'¦ƒÁ“Î;ÿœÅ«Î¶*V’;è–…6érèVM$kÁUz ¿¯ªªuÜ›ù…’´ã0êéšã@†>6À‘šã¦" ì/ø¡;ž"§—8‚' "<8zeÉŽÆPsC#à°cç=¿”ÊßÇäc“Iï(»¸•6ƒBWýœxµ„À·ˆ[ν¢( oJº¦Ð'Â*”0=þÄã_þ?_¦ˆèC$G@ÌuЇví™f¨Ê˜:AÕTO·;6f,^jB>dÛF.‹ÂÉW ¾‡‡ÇÇŒ‘cjÒt·¾Ñô#׸±¸¹®ÍxÝzãÛ£q¡JÊo<{#:ºŒìä†$àáþU’äœÔR*}˜ò²*«2>"²¸_+òEÿ˜||¨±ÕÉÆæÆÃ‡§ÒVCc-£â´¤©J\«’;úx³%Ë3»ž ãÄ â 0öwi»ó WÜ‚^NO›€ÉÁÄÝ4'ÆÁ“àŒÉd"F~S"Lo B,±E¡Î ¶ù>âùXP‡™ïx™·þƒP—5È ÎŸºJ>Ô[0¦ð¼tWãúT !YߦÙéHk•¿(•$ëtŸ‘ÆŒ|&£÷gô¥¢µŠ.D’|ºÃ—J‡¦M]É9ñMÈüô§?ýÓŸü4‡¸ˆÁ…¸ i™OÞjØd–5£]ŒNPâè øt57¨¦Ö,/‡‚Êu‚~‰iÀ$Ú˜#Ã=<5å¡DÉ Ä¿hI¥p‹kÞó;÷7ÛÑÑyä‚q,ÀéÉ¿R®¨È– Ar—Ôc©8 ΂A¬RtâfO ‡ëÉì§']‹T “u!œ:ÓöΙ¯Š iü 8apIÙÚ1/^+¬ •|2~Ïá>†cÝIû=3©½+¸•3¨b¹þøn’òJqŲ[t*sr³£…O*ùÓf‹Ç  M±ˆêRdnÍ%?”ÜE¦\"Ê BYÜžŽ=_ú÷/Ýö‹ÛhØ‘C‚–Åbˆ­èzäw 7Yåmá–K'÷ü\}Α£NN@à¥!ÇÓ…8ÊNðã4æc›3[ª†Aü2¿íïõ¸pÈdÏ•íía.Y‰Lƒ9s©í ÿWIDdõñ@ ¸+IÚÁ}Y†õŠHl%¦¸ .‡eQ[^Ñ>«µŠCi …É]Rf¤‘5Ì'†úx‰(KZ¢œüª ò-Û] »\ÏR^S£]Á5ÄIf¼*‰ox]YUü)'â@Í pÊb‚ÒZ3E³^‘dPšðªÇ™‚¡)y{àNÕŠT*JPƒ'+"ª¬^HΡÀºýÞ{ïýòÍ_~iûKùÝàô¯ZÝ^]Un¤“þÔ9¡¶k’ÇžJŒ2M[ÍL¿ðȲ<ÐO$€'q¨ÇŠÕd'Ä|š‚ 1š»ž!£oÍæg›„Zeüh%’YK>“sAþ¢xÎB¦ÚŠ'RE©nßPÔž{ûö°éi™°cͳGT$‹ MáaªÌØáCxÅQ²²ÅD¤÷îÙs´ëÝĘ›Ø±ì‰I8©˜S‰i=YfOÂÀR®8/¼à‚h,æ·ÓfOr Èéš®P ºVsÖ¹­ckg1e¬"Ì©Üà%(™qO%HÓ_s¶”>™Ûª ˆSX*šŠѲùÔëd‘†Ü5;öw|ý¿¾~ë-·"5˜øÌ Õ ¾®yÍÕ7ÝtCmCÓøè¨§1ü0¢å‹¢Ëÿ,õÒ·áEH˜< ò7´3XVrRéÚ+á¾%4zéˆ9<1o¢VÊÊãR­L«AÙiPá$3=4ƒTñl¿¸}¥”ÊJ5´YvŠ®zX–Ó èN\IÊ”Ça™¤ýq3é¸LÈ ù!%¥òJ§yö˜D•åeñæ¦æcÝÝpÿ\¶dqÿÀÀäÔ溼¼||lËfU¯Bƒ§!qãK\'`ÃÈðm¤ã8H*³sçNäP²TÍ0ã$éR<éW"øìfB†CDñ¶…ŒƒÕË–¯hhh`•àTJ8"ñ’ ßmné€Ó“îDõ@@Ó!ñ<Ñš¬«å\üâ 7‹š“•H‹ÝUšMÔ¶¿¸ýÛßþÖ]wÝ0µô׬Yýùþ×¼æµm‹Á°޼ñʪá#XÏt׎:í&'ÿÖMM+ÅÌ8á3aM0©” ÜÜé0i9–SiEâV´Î Çm»|wçÐ×|þP~ô?SK‘MçäÀ‰|÷‘ ßH­È‡^îGŸr^Šœ›–Mrù§XÔë„‘˜V'>ŠX˜…Ì2wë®®®ª©®¡ÅNʤ§ošÄ­!;²Ò^*¾HYO$ée7Fݽ¡‘¡úÚú¦†ú‰ñÑáá¡êªÊt2Õ}¬ëÄðÈ¢Ö…“جÇFGFGGµôøÂ]HGFhȃW§IZ}ÜŠÁ%j$[© Ô‰éé®c=‡ÝtΦeK—h¶È¢JVlɃÌwŒ’”dʵ,úÝÑ“b-ÉN%Í“@µxi­ð°…)˜2o϶\d¹ýÙOöÃüàÀƒÌ±wÒôï—_~Ùûÿòýà1ššüŸ“‘ÛÚ±¡Øä3þL€ÒHmxÝ߄ʗOìûYb¼èThp6R@ØÏDÍc{CåN¼Åª^n׬uÊ—¸±zÃ)Çò³CᎣ÷ì{Žâ÷`/¸èü·¿ý­>òøÝwÝ3›2s>ñÂàAVÚ7ÉeÈ/¬$ô ­Òƒ$Ÿ9A§dïãéáo›ä[ŽKH¦†ÜjSçœs^cS­'øN™2ƒuÔg@z²Î4ÒÄeÉɩ޾~è&S“SˆÙ_Q^^UU11‰\€.rŠcýŽONâñ€O Ä¦¦&´$öXnØøª²x9ÐOš0È8dìv6G +RNLr´Ø¿vþc¤¨+Ñ\À R†ïA÷âREÇÂ.‘ÄÒvg†º W* # Šèvž4JTð:Åw¤;(†I¦zð!p˜Ï>ó,"5 aæ0™ðM¹îºkß÷þ÷ŸµþUH€+/9ßG¬DNoo/ÊO{CŒ;츽ìMѪeöÛÇ·¦§Ge|~€MñÒvÊ Œqª–Xµëìªv«¬ÍWà‚ë/ªŒZÊ ó«¾ž£d»\x µ¯XVW_ûƒÿûã±ÑÑø$¡Ž)c·+>ž#ÙŒJI´Yò{–í$Q¥ð*EPÜC½äVØ èº„>µ®Þ»½}EKK#¶,"3J÷€y6ѲÞÊ©},—¢H•÷€ù<1t}€¼uH©¢Áðè0^‰Ø?ðâ¦'V ˜7dBa^ílª\ÃE58ÅÔßX¬HúZSS½ÖC‡âqèä0¹ì¦|–­´–^)¥°­£–2£Q)â3uE1òhDFp%©SZÑóù íØ¾ãÛßüö]wÝ54<„·aæC&&ãíïxëM7Ý´fìÊEVe‰I»­­m|l ´¿¢mœõ“M»fýÙ‘êUѾ—¦zKõmKNô!Ø4÷E…ذœ¸«5+–95+êuny³®5ìﺘÄKÐ^š7Š…+ªk |—·—p/Rn!†ãD®}ÓŸÁ(ì;ßù²ªäÀ'¬ö“‰ˆ1ŒƒXM€k[>4 "G!B6­¦¦Æh8œQ–ä; Hu‰7²cì¡Á‘µÊ+âUUUàœeª¥£æÙÊ‘ÖÚ +2jŒRÌMÊgë'gFÊ“ê™!IÔäBüIñ !SÚ<Û¶Eæ–Ÿÿôûßý¿û`˜–ù Óö÷¼÷Ïßýžw­Z½ŽF'&Noñ²eä3=9å­=?Ÿ†÷TwœvzÁyá¦ÖDjdj´3=~ÌMŽ›M…ëÌx³o3Ë‘*׎¹R@ƒE'Ýçú µw§ÎÀyÒ‹äxÎ824‚Æ®éÅ’zß¾vhhèÇ?þ)Wžš e$et<%KÁˆá2ˆ5Š.”&(*?ŸLøTvz™g¡¥aàñ·¬Áˆ·„¼ÑMâRX8JšÃì&È ùŠ:j™èìg€Äª¬¬²CöÈÐðôäd]m]$V ªIò gîÖ7 ‡|Ù±£o¾îM‡~èÁ‡ÚQOˆê fFÛ"G^Ä¿l\Å€”ÐBHI»PÅK4 Gn§’ã–¤¨²B7‚æGBà‘DWmx(æS8Ú‡[¢:ûXyE$rp×,f@ْ몴=Á „y5°L´I¤Šcp­N#§( ‰Ì÷DF ÉMÒ‚4óhZå픵z @~¼*ókŠ K¥k¥óðáÃ`/~ËÏDÇΙðÞøà‡þúÍ×]¿lÙòðìi#ÔI¨Xð@°øR(G wz.)3=6,R:JKb Ÿe5)“§ÅB¬¬¢¦¶¶¾¾&÷fŒŒ ltee¼¶®ÞR9veG»º(%/lk5üÿÚ×\óô“›ƒÙS û™JLQtÒÀ´O³*ÅÓ/Úv¥› šàðŒÂ‚¡bbÍDB (d§:”X·±`‚̬n&8 ì¼äÞ¹?WqEÐ<³è¤nT§°²ÐcóÔf8$ o(e(ï0y—=Iƒ-ïÐ`@ÙU…ÃXLL²§Èâ§Ué*›fª:5Vvƒ”W¾¼´Œ¥ÇÒÉôýÝÿ¥/~iË–-Ø1–³R³••À™×½ùÍËV¬€Hö”JW6¨­«CzÌÎÎ#'úÒiJí ÒWlaÌŒÅιʜ™W  ;^QÕP_,`6h즦æ‘áÁÖ–{öìÖ²&Œï9%ÐäÔ8^×ÜÜ<ÐßߨÔ–Ê[HBŠ;=9Š4™J¬*²_x€":ƶ,²HeB;¤ M¯õ(ÌçÚŽÉAä‹=-B —鈳Cr”3’ï8FsG+æâ Πâhº!%"Ó~’pœU™®›Âx„?q""£ƒ”•¦îTø=\säŠçdܽ°æO¶ð§ƒ±¦½¸DÂYÈ·KW BXš¦!²qåùâÍkÁavïþîw¿ûýï|Vì´Î›Ì ¯ûów¿ãÚ7]»xéò¹!SE^¼å+W®è=^ÕÝÝ;>6„™Ën²h¡è½ |©8 #†ÇÊË˪‘ÕU­£çù†{5u5=5 Zš¥ˆWƒúOŒûjð”íÇvMàcEµVN2 MMaq c¥uYÌæ(àÁ3eߢ·à*MÞ3qR“fÈA]nßò”0eùnáf—Jÿ“ša³¦ôµÁaг¬.6¹}è@"™X¼¤ y9ËDžZ3O™j™t2甫·Ú(dŸbÞfµJ •FqåsŒ¹a"Jdƒ=éÁðʪªTÐå`^ÑTOÆ lni‚·>¢ýŒ¦<J l¶åµƒ-]Øv¼¢çFÔøeU [ÂÐ4ªÎ“»û®{÷qõšÕŽÇ ŽÞwßC0š™h0ÙÙÙé‰Üì‚,L8€ä`2¼Â+øy[~™ËP¼(c‡B¢ {LÇJ+…fæÏ7ê 5Ÿ@Ž/L“s¨{ñƒwïÚµõÈ [ön¶ºì±Î±?}ýŸVV†ÕrQ%á­–úì9­#äÄ#M OaJr­Ñšb‰×T‘©‡*ºä&§­PÔ(®Hš7ßJ"5}ë­·þïý\WWE²…ÄÑD^ ›n¼¡¶®–P– ½‡e–Åc0Ñ—L”Ìà L‚¨ËÊ¢ õ oaªÆ¬ttìû×ÏþÛ9çoª®ªÝñÒÎm/nÍy`"•8xðÐüD}¦!¥(½¼± ©Ì¯Ð %o|UŠôrñC ¡@ÔïÓ¦zÓ•DÁ*Úæ°¥"&hý¢úñ¾ñéã“È€„¯˜ÃŸS‡üËš|©oìž¼osAW?@f9 *-UŠVº-#U†iTò)§„q…]#fs,N¯Hy“¾V† ÿê[tÂÏqÛ§þñS'NIÊjdÀ^^wý›V¯Y5c8%cV¤7«h›<5÷Ù…‹¦ž£®àY ºù’FØšÞ}ǯ Ú•‚ ºŽt!—~ì¼øFe[  €:[Åо3O6€\NgÊ™¶µâ\‚ñÍiЊ©Lª|{8ƒX†çp‚W(õ•á4+8Bzdt¸Â©X[Öåt!™ÿ®½ûj<>ÂO…êGª#ØyXÈô…|³á?èÍüÄgFt½6G[š›ÛW¬À«EÖæK.¸°¥ÝP ¡L?qgÃá¨(w ¾‰¸¥³’ÙºÒÓhÖN¤}±$–Öʦ×B~~!Ú|)~ ñÁü·ý7DõF½ðh®7n¸úª«Stføã,N(„s /ä^*$]Ê‘£G`º]ËÔ={yʳ„s…·Í9ÃfŠ>QhñcJ˜ÊËŸgý‡ÂÅŠó”£n{ü‰®cÇÐr*XðRþM'Ó°nÇè"™ÀsÒÓÉ)L/ÒáfÐì– €ãŽ‹ž½Ø³kgëªÖ%æ’ kbGÏŽ¸®°–e‡DzíPÈA±=þ$ä×í …,Û;Œ±ÑÒoÃ†Þ vv—`f(V:ö¼ùrÅhKb !¡TS1y2Vâ%Y½Je$=¶¤8.•˜B/KöœoÔ7]Xä"œbÙÖs/<÷©O}êèÑ£Àö…o••×½åZ(üטœš¤1À#p:6–77/À(œ†=ð-Ô¼°d(¸E3áLnÓ4Ùá5Ù¬£B*‰ N‰ w:£½ÊÉÖŒž‰rD,¶ˆ8{ÓÙᇉ7$½>™˜3íuØ wâ ZÓé'‹0‰‡)[OCÞýËÛ’¦c-.[|Ì>†¤O—]|Q]C=®›€.?E¯ °¼‰Ž…#Ç—ŽóÐ4‘žÅDS rt”¬ù’Î_’ÚUE²o+9AEn&\ˆf(ÏFBÇœ í)ˆõ(ƬÈ@Dº]î]à~IŽs­Ð³zøëêîúì¿|vçŽdE G››ÎÝ´þ¬õ©tf¤†‡†&'§c~Š?"Uà¶h¬±±‘„7çu/ sß¾}+W¬œ— ‡âýÈVцI})õ› SPZhè±d $û, ¸h*léW+´  ´¢¦²ÊÇì-Ϩ›%[óO=3:6ÜPÝTY^ ;8<456eˆ_S¼¯øDyu³’¥¡gêobÑÜY0kZϦù-Í9IPi…WÖþ”ßY1ÚÜ̘)ò Ibo 4F»>_| ãå±cz;ÈbfPßøú=þØãäµ G›°¿¹æOþ†TÈ€lúœÐvwY¼tiþˆ ļõõµP«ÀÀ`¾÷ÂîoÏ®=¯{Íë rþ²ƒ Zwå¸ûZ!|Rk]Y+ûÃ^5Kî9‰I,¾_…‹›\¸)¹:‰Û?©½‰çóæ”-(ÑðZ4ï5+ãå•ñÊ… Û'Œ›e!až¥çó׎}Òä+ŠëZbÓrІR®J`ífbQx-¬%@Ǹ‹ÈÁÍ„orøV8//Ī*Ix.ð'¶Ô&bÛA÷uï¯~øÃ‚‚™d¢rÙe—lX¿ÄŠ4Æ=Ç_æ(—Õò¤@ o}øfηW$=vîÚ9œ.|ƒçO\‰h’+(œ‘”ïäLS–bä´dšhUF»› )äìïÐ<‡BAQ/Q¡ƒ Ï eùmPÔØ ®«}Õ x<þèã0™\·n-c^C·$Wu‹ž©ÇªWª•hÄÂƧ¡’—8ØU˜BâzUÜ,W€œG:£à‘Ê]ë}ËUÛw“e”î’˜­Ë³ 0©·ãá\‚];w}éK_B<5mf"YQòAK{êžÓMïÆÊýLæ€ü$‡29ØâvìÙ ÇHŽ@>T«¢ò‡c°6fÍÌ|§Q0VБN¼Èi„+#3¢‚òˆkŽèWÍ„™4ü*;8gÛPä.ïfÁÆÒ¶3ÐȈ€@‚Á—XçI9l´ˆ÷•ûª¥ã8Ë–,[·ö Àв¥K×®Y‹F Z¼%É<#€ÔcyI)@ Ò±"úTx)åfò‘bPPiЉ²¼¢,§Üã¡«2ñáÇ£l:ì—TÅHkeÕ€§IyŒ¤ˆKC'†þýßÿ}×Ë»PÏQ]‚7ƒ!ø‹[· !ó¬Wõ¿ùKج§ÒLÿ²Œ$èH³Â¡wr*å¤/ñò2#GÍ ˜ŸIØ ŸŠ–Å3¿×bÛV¼,Š5tzœÂ‘Î#þPUYE½ôÜE†¯B†ŠÐÇð"g„«¥ð@7I.êYùmÓ9—,›|‡:i8Y‘x9ÏV,Ù„iN O…¦ê‚óÎ…û«ãØ‘h‡šOeËüŽò™b&É RO)XàÚü ²-Ÿ; +U !!ä†ä!.W‚8¥—|3tº¦MÐKNˆ³Uª¨Ð¢f%`Oøû!—ûÁ~€ä|üµ"П Üô¾öîÝ»uë‹ù¡ºàGÿá~ ­m1‚úA¬x,Cºx¼œ{,öq³fóƒäíxOwY¼D&zC¹ãÝ=K—/9„çÿ^9UÇvp$ä”FÒ˾޾ƒ®j_UH{ '$à!òdn\ž!†äz’Þ[‚ºiÚÙ†K†{Rê |2ô! ƒYtuR£wêAÛW,a(IÊi¿®Dís(íd9K?] ²ÃŒŽn^bE7;„EÛ·­A"¦–”$€G°êµRˆn/çB¬„q äL¤ \JÇeúäÃO|ãëß@–U!1êž‘#õÆ÷ß°wÏÞ»î¼GQ¡™+ÚW|ô£|âJ!cj¼‚;˜“| :é¼Àô®º¶îhçÑÑ‘>]–B«£GŽ@§+Ù€Ô¡ôÅÆv C‚uzl<ôœ°Â½æšk Ä´Ô“)œ,§žj:ùâaÊ“!¨r;E¡íA$2g{®+þß#>ÃAI)sŒ.ò¿YQ™Ù^q‹/ä9:/Ì‘9WZJÉrÓë$)h†Rá5‚‘%a ¢YGw“»SËŒôAÂFÉØe9åÅ›ó£ÔP’n]Ø? ~dKH‡lß]ÙDr¡/|á‹ÇŽ“V“¿sÙò¥7ÞôÞ·n¿ûλaÒÊ9ÐÕ•+W~ìc>sýFÄqª«k¨¬,‡#s.£Ü‹Ü•a êwÇKÛ'à‡åÛ}À5N!­ Ö76É­¤ä…ü ö‘ÓÕíÛ·§Ò%£ãÙHRO$”gß á%/‘Ø95Mëºsgêç+|6LÙÚÍŠ²è‡¢1”¨!’›ž”𠀡Ø{¥'šu0x5àñ7kæjù©šÙ:-5æÈzþ¿whè¤ÁÁCyJ '.P§¯‰$WX×ÁLа¶V(Œ{…kŠ,÷±"{=Ê Q`fõŸ_ùÏg6?“Ñj öV­|Ï ïÙüÌ3¿¾ç wÎ…ÌÕíŸüÄÇ/ºäb°£å•·óBt™–ˆÚ¨€õ)+¯ÒÅ^>99uøPg$V^]]i”¾bÒ09màAÓ\ìÙ΂=Iî€óA êŸéù‘t“ãWÒȹmf¥i•6—Š{J! õMÉîž»vWUÄ¢î칆s½ÃN½:]¾Å @Ÿ²n óËÜÏ籨dd€Æ‹ûûL“–«ò®\Æ‚ïfE^¹z%æÜ«¸›‚¦ÛáÚªlïRIkõ@ÆI ÏýË[ù³Ÿü õ F댳ֽûÏßõðÃÞwßXÁ9ÔìÚµk?ùÉ\uõk››-Ë̵8Ÿf^ضdAëÛ¶ vššš‰ë;ü=Â&Ì\àÍwÚC A4ÈU+W(RøiJéYgÀ>B,(q¤k?Þ1œ¹Zg4:÷¥èRÁ÷8–ÓÚÒÎl “0ÆWÿÿ¥h ›¨m­u‡©u¨¼ï¾Ê0±*A“b™¦‰HgøÝ²2m€¦å’ó gR²–¦ ™Cf˳[nþ?7y´‚Ì3Ï@ƒû~s?>‚:]=ó¬3>ùɽúÊ«›šÅÉNMN³©¹Ñqlúvà dnT\GÛ¯“sTr’ ¤€ƒÁ"Ù§ñ‚kgÃŽ«)>")¹SÊ/Gñˆ½Dv¡0ÓˆÑþãZLX’t`n×dÅ›ûÇ’²M2pÊßXþY³@E®Ø<íæÀ|\ç§šv3šRÉôj™æ¶¼,Uò[¥»ÒA¦øXŲ ‹€«LƒB€‚Lª˜…‹áµm§]=åx:µTêxe}ã"ÀÊþÚ׿öðÃÈLˆ½¥¥å}ï¿éùç_¸çî{q˜™çœ{Î'>ñ‘K/{um})¢äe$_dJÙ}bzrçö±ÛÑáò5gEÖœK2bû÷í³-ÌÌ bñ2€)fÛsaploð¥:Ÿå½0Ü9mÌ¿hY<ÿÜóÐÃÙõBBD; >LÎg@¸¢BR“Kœ}‚ÄÜÃ'švŽ"Á’ˆ¨¼*JW°‘–Õgõ32qZO6ÈÅœ–¯ºT×x›²“×'ãÇGxÓ“š²-Ë×C›9A€Š)\ Zàa0.wÝ}×¾ÿ˜é¡NÈ„Ô 7¾{ïž}·ÿòEjdž½iãßýÝÇ.¾äR„B׆R*©él–¢Ãýæà¯ï›Â‰øæg¿ö5UW¾ÞÈîµó.Z²´ëHg_ÿ‰þþ~€¢c)f€\ …¨`KbpÖ.óB&@ó&œ )W__bŽ ~ÚlçŽ;:tœ½áì¹*“ªüÅ©?ã^I¹¢¼+è”/•<ç¼mò€È a$NŠÞdtÄ]ù”ªêU:rô(a&†År=†!…¨1?þƒÐ6Â5µ¶.„“ü±ôØH–C\\I}ƒ<Ž8žç¨æ`N¥yÖ/â³ä-1*€düqqÕ%/«dÒÅ¢&úÊrâÅ­/þÇ—þ1ÚQ'd"¦ó{nøó'F~~Ë­@ª¹|æú3>öñ^tñ%µõ ‚Ìß7³Ÿìê<òð#ãÓ4!I}øÑøÚõNÛv ˆ|éÀZ=Ý=ÝÇŽ!IÖ4ɤ?3ãR˜Óä øf´MM €öIJ¥‰žžî±±ñb¶•Þã½=ü(€õBÒ„‘§c-!‡¢’d<$—Nj_P™—íA~ ž¡qŒf|xdZnŽªŠ2âHþe¼"üê¤a–Æ,Ÿ›€? âÓì?x°¹©7”Çã`i‘e,9¨¬®FL—‹xqç¸z¸üº¤‘—þ% ÞdWá¤i9Õ³Î/eŽ·ü9Må±d;Ï'-dIÀƒ{r\º&ã&_Ý”c ÕB‘FBÄ”µtìëø‡ø‡]»vÉö \ÛÛÞþV„«ûòÿûPzœž€lvÍ'>ñQ$ ªC¢5Aæï½˜‰îÎÉ¡QÃFw*%868Œ“NÛ2`—`žé¶Em•U‡DTKƒÙaIù¢šYA"Љ…­‹cIÁ3ðXw˜%ýÞùZVÝÿï½áO¡âÎ% Â@…8P»³gNû|cZ&¡É°;9Kø;ÏÚI ®‡€s-{W‹›ëê:¶õÅ­ M!»¦îW0 À îã¡.(å[__ÿ ­ßÈ‘¿~ nÚX_—rñüžÉÉq¬®––V˜U ž8|»Ø+ùØ'WTVZf?OêP Í@*ˆh±|Åò3Ï8Pªü¢¬` ©š½àŸ è9lÂËu@üÈð8…¢sÈ_%\³Â,‹iè·yëkžE#‹àk êPÁ¸Côÿ™þÌ“O>IV“ˆñŠW_¶þ¬3¿üå¯Î4yÇ¥+V|üã¹âÕWÂ`N Pé‹U^e…Àƒ¡ 9^ž9d‹1„¦1ÛšóêÐèê•G;÷ôôBSœMîjód±ü°VŽÆâå@¹ØËá3ƒÁ/RGõÜ–ç6?µù²K/K¥f…8öc4/ò ÖtÉ¿@‚`?ÃìØVB.™œJotÏ&b`3ª‹@šéùZ ,ŸÝò ½ac4`rù+R=§Å•ªâfàwGÇž}ûë_ ë †µØ1‘âÏ[²¤mhx¸¯w­§'+2Ï:ë $£ì%•ù]iFN“ÌÄ·™ ‚jГ›ê»7bW»‹‘9wӹŸ …ERÅÏ)¯Yºç[ êLæOz¤µŠ™ËŒÉó…r×yUÐñß`±>õOŸºûŽ»qIZÍåË—½öµòÓŸÝ‚£ètÐÞº}øo®¼êê ÖÄøÃ7^¼¼amûÄ–í)l–8Íë×E—¶§`a, X³"aØSã‡)àåÒå+"eeGE L‰IyºiSိŒ,PPOwWuM ò&;Ö]ìbYp¼¾õ·žþù¶ckÀUaÚ¯|—圕 «ùgTH³’±K$,ßG,è·K ž(ÉŠà™‡Rv"t Æ^P¥˜Ò’PÎ9C]añöÈÏSK• ·I"Žoyùqpûê*Î šÞíСÃÈu ½ Ä­íX°ƒÇã°“h­¯«‡ñ6B-dmd³p²',Ú¹L¶¹nó‚–†ºú£Ý]ƒýõu Áäˆ=IÕ( ¤²“=w¡Á„—wVÛHŠõX‘Ð5X‘“nðR–ævqéࡃÿôÿ„hz‚1Ì02¨¿åm×?ùäæg7o¡dS:phï~Ï»¯¹æOš[Z^oi¼®¬|Á›Þæ”W ìދú5«ê¯~]Wo§}G+ÙÄDjbÒâ¡ÌdM?žEkKkØ >¸r ÛY6‡!0ù nOœ´,ð\1ø÷?ðÒËÛ7n8ÛðãèÈK6ã f–&—”œŒ%,uSIˆª!Y RaÁ»”_Lg$ /(Þ%‹–ÆbqÆêÂUÌ4.º‚ "Ó@Œ»A•,ZSÚ‰˜`šÒ(n:˜`*1½wß>l ÷sþh°Ä˜`ö úI`GCQ@#”LPô• |X¨;­TæàW›'¦§††GëëÈgŠâàw¤D#7TxÊq7‘4èØz²™ÑkGİʋEÖH¬‹˜!Œ‘‹SñwŸø»‡~û;-7Ÿ7¼áõ¨Ü{Ïÿä¨4Au\{íÿºþúëÚ/Fý ™Ò­c [šßúÌ–UY Ö™æJ€C|‘ÁL¦`N(µL@›746†BÑýû÷"£ M̓uà“H/äÀ@có‚+¯zõæÍÏ€êã˜cpûm·ŸuæzL…TV´>yTš,ŒÔ±e³aâŸëÉCM‰š¸*𭞨ðjÐØ›ŽP´y@ä_%u`šo´¹ `Mpä¡mÚ€/ÔÒ¾/Úÿ,hnž\ÅÖ¨o@ïc^‰K\Hb©€¦³¦º®®¶Ö|¾Ñd‚4Û"œãíÜK˜T‰ üw2õ5L#‘¢pHÖÅ÷r¸8F@é“4$(hb m ‡fÛ™E&ñõR )$ϳ®í\Wóëß|æÓŸÙ¶mƒ¸qㆠ_rñWÿókãXÄÖ “÷K/½ø=ï}«á·![ç?p¡¶ÛEÖ5éqbrÈJàL|Ðçôôt èrl”^e4¼|ÙÒöOeôÝÞwÊGcÞšFFô–…m—_qÅm¿¼®pÁ8fÚwç¥ð¼çW¿zç»Þµzõj˜Âãu‚“âÁR³)ÿ[¾ܸiG¥À%1¬¡"³j… Ó¢¢4Ê&Äb¿sÅöf¡Áay–d,bå/fÒ ÁEøü3ׯWœI]ýn€aÍS½¢;‚4¥ãTuS¨ìX<Î@+tõö]Å"¡0Q±4¥~×Eæø:¥ÆR’ÆS“µL)cÎî~!ñ:#ôa%ÉáHQNøFYorø«ï{ßÿÞþú‚LA 2¼ùú7m~zóîÝ{ƒb@ßä½ý/ÿêýgžy&’Žp”Ê–uÞLM««Ã`á1§ ®ª ×Ö@¾ŽHq1×hkhŒX ¼&Ó™Dé¶ÉtU†µ DˆíííW\q#«cÚ¡æ…<8tÛm·añS])/jÂFñ6«ÒÌC*Ì”—D‡$.§^ü)*gHZçx6ŒQ˜ËHÃÿi^h ¨u‹ÆfäÇ<ªPæ}”#ˆi@E¡o}ò•—2t,‰õ¡É<Þ/TÃì?j¦m‰$k–‰=Ç<Í HòD%s‘“Àê9ûÌ]À>1Aó,“mrûÄ·<´8p(QΣ@ƒtóÍ7ÿàÿþ`|\ˆ1ˆ/ ‡"ÿsï¯1‚AÝ ˜õw¼óí›Î9·¦®¶Tn1Á8Øá<ûË*- ¬×˜Â¥ñxME… wìÙ;:<š [N(b8ÐT%ü ÇÆðÐpKëÂó/¼è'?¹êJv<ÌU×\‰˜ Û¶n/*ûÀí·ß~Ý[®CH>²…Ä]@NJ xNE91±êSÄŒn"㥢ÓKµóŠŽSÔ¡@EþF·qªôv /"ïéâ“Ö øç`c2«x I7‹‰N­,y¬'ü ±|ÍŒ ›±ûç4E- OtËA­”ÖÚt@)hv¡† 9§tÕ%#AJIŒ%W¦y¡2ùû¿ÿû»ïºkD°'8Aš½Ë_}Å=wÝ ZAûÿq÷r]×yð»ï½™ÙÙÚ{/XôÞ ‚]¢D‰ŨËJÅŠ#˶ìßqþØQœØN¢È² Å–¬XE‰’(«")6€`ÑËì.° »ØÞwv§½ÿ»ïÜ=óffË€;@ß ÞÜWË=÷ôï1>U^¡¯]³zíÚ5¸YÆdyðÁþ浩©9ñÛ \j¿ôÏOüóÿ?,,†2pÓ¬¸½‘e–ášç‚CðíÌXŒÈö¾ò‘JQTZ¸.º;/»ÐÜîëiõÍÌʬ[½65'×ÌÊ6S!í 8 ãSÓóÓS(¹k×ÃÏŸ¼Ê?ýÉÏ››÷ó¿ƒØüLä$¼ï?}¢³£S7Tð:ÇÇ®¼q*6 qôcÌXó™ÙŒ<Ä¢,}óK$îˆæT”ÌŸ®H¢$CÓ&” Û¥5‰Gér¡Û4Æm%2Õ°%ºÇŠ(L8§0Ùb‰Pèñu=Ž iG–ǹSç`è²âR»ã ÆŽdkJefŸòri²¬sk‹'Ër(C‘ÎIeŒ¹ #ú'g&¿òå¯<þØãÚ"†œô´ôýû÷>ü2…l4óà‡رcGNN®–ÔF¬ÝÀö/-/¿næ_ËQ­³ªº³ýB. .Q=„™w¢¿Q×kkë2SSǧ¦È†³ãÿýöwÿ¿ˆ¯üï¯NMNa€&Î<_>úr]]Ág’´™0A†ÑÒ./éÑ0¨ö;Ñ'12±å–0Š8Á…Ÿ9í2Œ€N¢(Åâ&¦fZš[PésVeyyeM•<¾®¡:¦ûÛ7ç‡n7¦ª "w(g W>+b¿¸L‰•âv£[U&¤KÕ•ÑÆæ Vˆ`ŠìƯŒ®Êây…bÓµ±u9ì™¶U,ºƒâÔ#¦8îQnñ,ÁP¬`HÁ.>X)À’ø09µ8íˆNˆ‘âóÃÇûη¿ÍØ1€­rúÔÍÑoíÞ½óýïiy%–Ô640022„`†4‰pýÌ¿g“_Nhê*M˜.Í›‚£37¡ %ù)–å¶} E€ƒ~çÛß-,,€|›àÓàd¯½òêÜìé~É圂¹IÀ/ “ìÎJìV¥o¢d6PÑôïºüSþÛ‚{¡©ù¹ãÏç¹øÉ+?}ãä›c£²R0Hjh`ðÈáÃ((ùÂó/!ô¢»çÊðØ(l>=]=ÍM-¿üå¯0Ýôl`pGP¬ K}ùµîžž®nä¥÷\êì ÌÍÕßs¹£ãjÿ¢SQÞõˆ‰!êDQ צ(ÅuÆvÇ·¥«-¡RÉ¢ßÎ,V.Ã&•¢¹TÙyÛ)+?ËÉ´lF'éAÉp úGoi»øí¿ûb¦KPÆîÛwnmmmƒúÇÛ`:ÌÎÊúЇ\µªàIh‘KHxº!C²~rÝ+ÏP¤ ŠË@|ó !ŸoÎô¸Kª+Jj«gmÕî,ÜŠ½ÝÝÿô½ï#°qûöm puêôéþ~R7"F;±R²ä[§ j.…“À O8‡©Pd)¾YäÆyÒʤ/"X !ðû†z§Ï”·¹[:'º1Tt[±ƒ6>55söÌ90ÅÎË]?xô?ýéÏpsâä©þË—;^õó_zéè÷¿ÿØÙó ç¹ÙésgνøÂá_þêÉ“ÇO>ÿ‹ýƒÃO=ùôOöó7ß<öÖ±cO=õ b`ûÁc?ý逿 š!Õ—à1%í©ú ‘¤I®œ(ÜÚHHÃ/Y6Ã&€¦%ògÐ#YB¦%äÜDÌèt0NQcT`äóÿñ»ÿÀ6KÌ`õµ5Î_p"ícßÝ{víÚµÏI' |ßÕ73H#ämrçõ§OŒ°ŠŠ’lí¤]IµJ-„¡ªª Ð4?¦ÛÞàú¹c'^{饇>ôf®0‰9 H¶}½}¨ð© uIŽ®ä¸RhvÙ§+Ñâñáì‚>a<Vp誢ªBjêPø#pi))„¬œ’ÜÂ]…ÅëJ°‡©‚ÔeÞlm}Ý3Ï<ƒS“EE…›6mD2AAA.b°KK '§&ËÊKt!c$·lÞ¬ãP–áкuk*ËK7oÞŒ`à³çÎ{=ÞId!ŒO––”ºM}ld¸¼¢|ãºõ6w7p"bBørz}HéeÇ9p,f|;ŸûƒÔ.†EijdhÉ´‰¡¿ñéÙÍIÛ¯í`p°bíéÅøä$ל–“õÞ÷Ý[QUéñ$ßTQgðj_zFVn4åßú„C¬ºº•s¥cZ²Â](„²¼ˆÿÊb‰Z!iþä“Ϻ,ë=‡‚šðUkÉûm¼ÐHZ‹6Iq¥H’Ã’å¥ ”ùE°£›¸+—ê! kVäˆÑÐyÄÐGrUø*Ê«*§++.UÔ Ô–¥•ƒaZhvð]CCýÁƒ·VVV"ó8în—‰9Ýï ©¥aõê­[7 ÔÔÖÞûž{‘H¬[·…ÊËË×®[››— b^½º¾º¦¡È uÇOž˜œž¹åà­@Zôxðm0½……¢@a÷|(w¢ {NÑÕGÅç˜Âd0y›ñRr¬’”Ma–Mc·ì:bšáI„2Ù©MžÜh옶Uý…ŸB,qTbóûƒããQ¡BÛ·íØ¾+'7ÿѸzuÎ,«*aÜØrFtj8rËÊ+.µ·AÕ!)蘘³%ŒŒÐ¨’9ºÞ;4øäs/<ü¯zõ­ýWzS…ÚÔŠsŒN"»ÐÔˆ@•¦8_ã1IqBa{’*T|J®`FͲ£ãòÚH8ŒÅY/ª" Îp%öÜKº@ྔ"ïÚ5k@fìGÍHϸí¶Ûàf…=ÿö;n§è€;ﺓ¬B6`êjaƒeQ B¦œƒš?¶ú~ø½{÷–€áÜqÇíJY³æÓN¿3Á®LÔ·¥<9 /H63š)ÚѦÒÑÂnâG°|^0dãÈè ¢¶qü.}Óð›HкX^¬eçfûf¦€'ÈÄp§;n¿½¬¬”ÙfµMà  >//‡Éã†7 {&"IUfŸçæf§x=NRÃVèP0—Ýzûm~;ƒ;<¯—º±@›ÅñÒ®Ž.ª!IÀâÉ!K®k—¶ ëJÃÄø#i–9'ÎȤÆLB8@FhK' ù ˜0mÙ²å®{ïFqªÒ²Ra¯ÎX>á°ŠKËX :¤b:a{5zXZᆂÀ’——·ÿþšêtP¿2½ZÄé¢})Nw1}³L-ù³Aqü2#~NrèÒd¶D`P"2-Í(\šŠ:(5” ¶45ŒJ¨ˆeŧ´Ôt@ÂB%`¶ÙаjÇ΀]'ŠJ.›D~=,1T¡ý†7ë/-+ëHÔdBýbu G=ÿü ¨Ô’Ƃċ‰mÖŽA3‰Díä·d)¥á’S3¤Öt…ìÀe Wd¨¬²äúFslÖ-±Ì$ ÆÊ+«¦œ”—‰Û¥‘½¡Á\˲Ù-y;凯µ¢òݘ£ÄmfDc†œŠàc'*“§“‰:À¯)k‹l3ãP ¡q9`ÆñrÄ(rÁ¿…eÚÐò±|„&´¸ A’g„á›ñ!jYâDº1݈¦ºqË­*«k“h¤å»¨ˆ35-|I»i ·H¶«™ƒBeUÃ43ÀžR\˜†§¿s׎¢âw„³NMùP^Ñn6æé´Wü]z‰·€Â-ø</KhÂq“Ú=8äÎÎÎÍ…æf¾ #0çq‹yôge=H ±"eZW‹©;@ÀVß•‘ñb€ÂHºãHšùÈxÄ÷‘ °ü‚,˜º,æ¡Áþ‚ü\™ÿ%é0ëjWOOKSsfVÖÅ‹-•À>Äé0ïÃìW ¤·çÙgŸÞ¶}GÇåÎŒôT8Q¶oÛŽ î›jÑ"@:Z(QB„i•#ÙÚéJ Ìfgf#Ä韓iìÂÄúDÎ „.çûgœ\Þ$ò_øÅ뚬bÈk ©z]™Øß`]?9f»¤ÑØÅðZ·~]KëEð-›7-‰“ñ‡À6MS9‚hàædžÜP•๖lÀ„âN0Þ& ÑkW¯öÔ š–)åfç %††G¤?ÚãÖ]inlEZž>Ý`™ˆ|LIaô*tò`psp?ÇE_ùô a§H©Àæ…EÚ¯‚x$}TV­­®'”™èR/×mäH Q5…_}õ¨Gp‡”—•¦{Û¶-ÇßzkÃÆ( 0>H¡ôÁ«WûTRZŒ¸<]§+L~ãûtûºeà/ÊL­"„”X«¶¤½H%•œ?8ŸÚ§Çîp=|ô¸~º.îE$ÓsìÛmÏþ…å·4<(Y™ÒSí›±<.ëów‰ï½"ž?/S<Üco¿õà§R[W[^QØ¥¤š#ƒo(#3;5-M»éxÂÌôÌâÐïÔ,).JN „16>&aSLƒ$ƒ•R¼(œ@ ˆiÈHØÐG¡K';¦Øüa[¾.†8Å_b*É;k ¢qÖõ3°dð‚‚‚ãÇO Æ`|rrtdx×®Ýtm@å>tè¼,Ø ‘žÐŒî¿ÿ~|Žh#ë7l(,(èþÐÈðÄØ’ ^ý͂¹=»÷&žÜ³T1ïEà°ù›óœéåç¤`ŒJâp¬Pš‚Ídò۠rÿŽ4¼ù8^ÅpURX„\K_¾râѶßüw¿oœr ŠŠµÊj ‡åPPŒZ]—µOì×F§µcíR²={æìmö#^¿n-b¸@eRMACÁ`8/¿ÐÀ°¸éÚ±ñ D« !–ЦèDñ5Hé°r-{LXÎct$0€ ” Vˆˆþ¹àÔ”T ݦîú‘kªÇ¢]x,IÆ jžÔ·Í^¸æ'w9%;gõG|CŸÄõvww£hçýûšAÛÀT±uËV¢´µkÖ²Þ¥‚Ï ±ª¤¤”Îø òëë·5.Q'–‚pSßÏÎ$xžœÄ©¶›–åΑœNê¸ Ì'úüS½PMw†‘VèJJUZHÓ—„n„ý¾Þ“?h}æÏý3£6eZyy¢vU¤À±éÒò …Ç#¯òÁZk¿$щÉÉ_<|èŽCÕÕ•™YÙÒK”Ô]Ó­×ëÉÌÊÐnúFrãCM¤¥Ç7Ð3ÓÓaö€†²¬gdzj¬˜½»Œ§Œ«B» Õh*”c ûAßTpÊ2!î¦H^ªëR!dÏ™€8dÊq²sÛÐØ»³XRáÎÛ¶nÞ$Ë ™CÇèêì,äµ´@Û˜¦«¡a õóªrŠéI†™-Å¥ç„+aу”êXÎIADl`*¦ÃŒaÉum7h&/½ÜòщÞÓ¡ÙQŒÌ®†7;½hcîª;3ªö¤fWãN5)¨oƒç†g[;Ž| Ę$¸Ëà™O¬w&#K”UZ¦ÅþUÚ“§äxòøq·ÛX»¦¢‚’X’HØù33¾¢’rªè~ó7ÿÜÜÈð%¦/9éÌô„‹,}ÌY»©B†Ü„J bœž0eºpXÃJ à Òä”4ùº X —Ç¢,f V+ƒJlPd¤UÎ8ãqÌt‚Œx|œ#žég1ÃwLϲ„_¾>²dšä»s 14 h*¤9„‰SªÏê~XÈ'‚ÆOl&sØIj ŸþQÇ‹ÿmn²_0;Õ¦¾áÙá¶‘–§<ÙÙU{òWÝžQºÁLÍÕ w8à›ïlya°ñ×SWmhO.;;GKÏ´¼Ç¼-·_;¸F{墟±ÀÜ¿ô2¸›vHbpùèÈsr2#ds7”'hв— k§H„@iø8Ù§Œ°ÄE 2$ÙTZz8Í 7›¬:ƒ@® Ãí…lA6Wª}81¦-áŒC@o”mƒrSeA(a‚72:ö¡\Œëç¤( µ\ë…6C?{8bôjþ^€…å¤Àé7Æ‚ËÆCgl†áfÇ?Ï©3åðËø*\ª$*c¢ëÕÎÃퟺ?ÙÁví¹43ÔÞö'¦'Ý•V ›)!ÿd`z00;…™žÅc7ðz\^¯p»ÅµWøg¦M÷ïÜ'»#S&ìyH<œ˜7e†JEYY1[D}Nû¦…% ]}]ƒZHòùÞAÕt§øÉÀb1ß IáH¹ãNˆzB/`ô÷HX¿®¶á€:óOV¸`¤h1}«R_A?l¯Šâƒ³ý'ÿqn¢WF´$Àud”®Ž—äŸóOª9€A\"¹²õœ¼¥‚Ƙžj\c½Ù.füªBÖ?ÿüÉm۶ó"Qõ“Ñ&'&» ÄŠÞ¦Ú!˜‡G—e†™™>ß,œ.‰DÈn´ÏUØÙHô@±´@£… $A1.Ði¯ÃB¯5ãìKgŒK\ã+c˜\&¨…®ˆ„ÒIÆ P½ÏmºÆvæìÙŒ´ ˜^±ÝèÄ(ª6õ^étㆠ`âNÏL·BòêOŸ9›–’¶yË+ìÌxVÔμ‘芈ÿQLêÄ.2L¢ŒÁKäŠuÄ„q DØì¡Šèº:•¥iæA§Aˆ[Ém™VV{§|pűÎ×Yì¥3x<æÖÚ:QS+€€­Írd±+ õQ`cÂ&¼šzËK¤Ü oª•‘©­)«K0Ǩ‘ñêÑ—_}õåññ±¤D½ã€´ÀxG%’›Ÿerõ®žîN¤#’*¸DËËÍŸ™I°Øn<ò-#ßè̸*×ääh#Æs³Âh!Ýë5¼^3+ËÌÊ.ØÙ‰IÿØXpƇ kŸ”Ið4‚¥ì*”iÛ󯲳sL7R,=È}EÅ>â.ÅÅ·ì»eU]Þ{€pÿíøî«G_ýÍo~ó̯Ÿi<ßtéR»!äÄÑ8š•Šlç^âC!„ÀŒz Œ¾‹U4Æ™7b\}È|ú<ƒ :_ÍM0n­j±a»8·ß¯ãªhÐŒ™FÿÔ“™]}]«ªÑ@B ì3 F¤u^†\mÀÂüS\¢•–÷¹lÉÉZ‡µí5Úé.=úèèè?ÿìWpdQ8ÉÄ+ ÙCÜ–Û.™¨½K˜a3€m'§–¦4<œòÒÈð¸$D †Žw°A¸Q£Cý邉–èS Gé XÖ•-Ð0 îZ^ÛHŠÀtŸ/83­›.P½îh^©x)qõù U»YHÊäùˆ„OôñgÀ©;‡¼ÍüÜüP(pæÜY 'šg 8lŒP³ëÖõŸœžž\Ó°¦iP_—Ph/§®ÈØÌ°ä閱̱¨´L6,úCå¸Qù8عÂD‹-É9Ââ´486¶6ºÄ˜.‚Aè ô,š¸·ŠÀEZJì\½г²¢–™­­Ù õv#÷ ÃZ¨ê7 †À[”MÏH P'ÏB„ɦ -7ÍšRH(Yzj‡¬„2©Öâ¬o:¿°ÄíywÈ´¸Û©Éñ¦ÆF« %ˆ5$sós1RAY¸t3 ŸøÌ¶ÊŒ%Çl“<¦‚"²ô<Ë0°j‚¼`ÕO±«Å öf^Ä¡¹=2Va¦?ß…ÓÓG_2K«µÚVí8ÈŒ¸¥3%ib‹E"N}}âøPzsïî}„¨ ÂÏ¡¾®.ABwÝÝs¥$¿aÝ:*þ‡š¹+0/ÅíFn ÂŽäPž›H¾5u“ŠýðC`QBÁÊÝtgn )ð¬dr¥§6ËOž‰SÈ^ÚÇ%ƒrsÃP{aulä ÄV^ÊŒe]ø WYe x#†¾ ÈÓ%¦ËÍÀ`‰2³Ým=Ï=?:6ƒu’(0êæiªñAüƒ # оݻvnÛ†ëòxxôs63G²‘R¸9ã³¢±ÇˆùižûÊþUÚ'ÆOž;Hµ«¸DŠôÑ…1œ–v¡3ðtÃÆpš Õ©ÙZËÀ"!¤^C@ºÉ”X·àØ„…jòÓaÿÙ2„g­¨RZLÄ«‹µìT’l ª<ôô“OíÛ½3· ÿm#JÏùýÓ33YYÙ0蛾q¨@sc Ц,¸mjãÆ ]ݽCÃC ?pÊöD$Ó‚8‘ÈRD³Ë 6ÇÿÐz\:xä%T-ÆÐ¥ÄëõZÝs³S3a»À¤ä«V(¾²UŽ ¦Dñv®>%…AXAÆ *¬'¦‡nÇE7Qk—|ìD¥Ô¥dë,vÞ”Ù&Û·m»÷½9ÀË»&æ ¡É7=ã†$ä}×È´@¯lºp¾ãò2jdª7õÀþ­Wz®$þ@rrr¸Â O±èÈ ÌB‰±8,ÿœ0]a¬$Ÿþµ§0ͼ÷Üoffº¾âÊL#úçÂGa29êí" ÿ‘ÿïä¥Ï@Dù¾™³Å¤72­:¶Q¤_Ò›m3¼¹ó€|ö‹:Ëb3¢¥-ËÕÖÔÒu ‡u)¤ƒÔ)¥Œ·.û9ż?‡­E„õcHj;—̹‘KÓÍ iÇ9ÕÁ®}"›,-C«ÌÓ 2´žyf¦OTÈ‚p‹’²ë7m6Í„Ê q@ ü(©^Ò¿ ‚Ýé¾&''Þ:qj|||‰{—[»~ _¿þµo»%AÎYZZ ‘ë8= Ÿƒ³ÙjB <î•8‡O8$@$Ø€(ùZåm¤gæÜsÿLýZÀ« ¢#»‘ƒx‹36¦ /þáÄY&7í´@KÁ²E fÄ´RF*ˆD¿u~Œè0åÔ4¼œPô‰+oùg†thä¹M¦••%¡Lªð÷ðÒ‹(kñÔàÀÀ5½›`Cw.5=S7$p’‚tµ¯÷ä[o~–iáô»ûž{»{zOŸæÒà ¡‡AM Ô¦™Zñ¡lhì”#AWA݆ðmØqû ÞÆmªªµ(ÙäòDU°ª{,Ú°î—._~õÕWÏŸ?¤/B¯„² ¡s7jõ]é(Žº_, öô`_æ{ïl³X•uX‡„¦Œ«}3âªM8‚ÄA†ö>äê eº^·B§¬O‰~]F5]yF–åõXëK5C¾¾(úÄæð؉co ó+ñ˜>¼:ؽ ÿ&o<›456µ¶µ m)¶Ù°¦aÛ–Ï=û Ø,u&hªÍ+È­M.B´D.G® @UV\]^Ÿn62U$oãmÛè‰-ª:–²9qô“D)0µ²¢’-”º+ÝW›:._¾pá|këEH!¤ ‹ÚZÛZZZ޽y q¶—ÛÛ/¶´ PÕÅ–‹çχrDǽMØaJà âÈÒB)¸•]qW[q¥šD\åtn´k¢çÕu†èúõi…="5MÔié)Vü ··_úþ£¡š%Á–&¸‚ìEÔÒ»¤Hîø‰“ˆ^‚mb€Þÿûz¯ön#¶É;:ÅW˜œ˜s²„¼ì $í‡ò](',Á]\ a…aÏtFu(\ …Î… Öübà› 4Ý0M®¦ü¼\¤ÔÖÔMŒMJÂ"+++3#£·§ö…9ßìððHýªUØ6<Ô’ë#ØF³LÙôÎyªÔK ’‡½éDÍcüÍeØQKÚHû‹³c=1Í´t•íu}5è¨4G+Ì>V,#"ßsϽ°cçÎB  %2‚~—Ë$C»¢õ_½zâø ¤ÿêc›[¶mAÌ7¿ù-@Ta°&N ÐÙQ„©Maç–À> %w1 ¥WÉ÷'BA]¦a%v ¨÷Z›Œ­“LZ‹yÜ[óU ¥,9;Rp2„.é¦Aà´µµ$…®7q·¢²Ò7ëKÏ̺xñ"äÿì¬l"ì맞еÛerf•¤Ïc9 ÍYLœ10BØ @lÞ4¯óŸ»ø|žÂñ²q;Þ´ëG™¤†¤g‰ÌT­®Ø% â×ðè7nZðÖCÞ´Ô¥-CX‹¢n……ŤpÞü @˜Àš›ƒ6Qa\>ôЃÍMÍÞˆ€'ΊŠrÓpù¦}Ìñ0RRSqˆ¢öz¨T?áÙéY6B^«ìçŸõSXK€QæSq×y 60tTVW¢\±¤¬Ô0°»ƒ„°8t¢JtNæ¯ à9^Ï²Èøcë®Åi¢ººGâŽ$ÙFqN;aôC„1ÞùàH´(÷¦£Ìäë6ß áŒÜ¬.Ð È5¶ÎdsSãø£êªÚÔœZN!\>ï–Z ½üòËCÃË–Öõ÷½ÿ½åe¥ù—ÿibÆ5Úªkªá‚Ãq’ßЮÁîMÅ€„Çï„5ÿHØmbÓ8Ø•1Tn¤\ã LFÖÁ:]› ‰¹‡ŠU°¸Ó^´×;[™½©LÊQ/h ½s=x¬Šâœd• ŠfûÏü,à›Ä^Löyïâ:ñMgz§'E€s¦ºµé¹îÜã駞ݹ}‡Œt.,\šYDJ>ŠwAì|›¯½ú‚VAN›7m¾ÿþ÷ýì‰_ Ê0ñ•ÄMü¦nÖÕÖc¼“³ ¯¡…BT^È9e2R;;c¡‹Ó— „H7òÓQ‡8‰Â “£UÖuå<{(&‡n¿=ÀªÒVÌÅH¹Åºãy™WY‹¯BK.'¾*LÕ u9Fé©‘&O†n–̱И F(F¤]ze é™hIJ¦àååYà~ݚˎmdŠü 15?¯«lOÔN¾ýPÕxÑé_Dnþsô±cÇÚÚÛIXh?ðéO¢­µý©§~ý6|}¨m±nÃ:R~ØtMÙßZ\Ò<‰89–ø;-Ѹàý¤mˆ•p-¸úUlgSÄW E[âÍÄB¯z«’qæÿºŽ¡îI9«Èf‹? [ÑÄ錖¤ïÀìxç«ÌM jQcÂB0]ö(]‰ÓeàÔ©ZE®vypá©@nü㟔WTׯª'l«w{ƒ?îÈáÃH”#¶+ÐÆ?ø”sý‹¿ø+À[.+ÏÇs]”R¯©ª ZA" |]Û%Îév/Xsž‰Š—Q&‘•ÄT¬ Q.zZKñîG)òY!Êhdñ‡œl<ÇŸÚÂÚ&ÐZï}ÏÝ?øÁãm­­×z§¤d®jX…deŽeŸxBóe0(7“i™®˜!èBJ­ŠP-R) =LîÐ3 ÎÞt°M>Ó0`ž$ñŽNJI¢KÊ•Züª¤É³‰¯‚k[## p*"Ì%è·HþwJ.&¯£‰L;O÷ž~ùAÿ i‰ÓæÈÏ Š·¼©ÂíÚi¹)ÈvC<êa<þø7mÞ¸%3s¹Òñ7¿{sòè+¯ôõöÑ-ÄÆyÜï¿ÿ¾3gÏ<ÿÜsl%¹¦f5üQ,5šË”i…kÏq -0FBaë ‘+V²|½@ V\Ë',)ÚJwW÷êÕ«´gã![¤îÞ´ò,/³mhbbjtd¼ª¢œ’óc(q”‘½Tà;ÓÅ7m[íxåëAˆ(ÊÌÌ„©Ú2̦«áÔ)©ZI¶–—®õŽ-zx…o½uâÈá#•UÕÅ¥¥75eZl ÐIÝc;‘_OW×Ñ#¯À°°Â ÿêW¿¾ÒÓ½ôZZÎÛ³g釜½‰…D¥ZÈ´^÷¢õ95Ý¡l“$ŠeUý :d`6±×ž Ke%eÖkj¾É(%ÕKê]ÓÂrhFFFóóò0!†) Š0 UEÏe¼.©¨L“æÊ”‰ò¨›–qŸ„,×âMA-èS\]ª`—ó›n»ý¢ÒnZÌKçÆ»çÆ{uÓíΪp§æÙsbXöÏÍóÍ7Ž‘5å"H°¾óŽ;….+as*#Ç$$Ó.YñËÐÁÙuI®v6N‚P-ð&»  ‹(Ë”`!rjy'Ìݹ’HL5^îŒ-¡mlBì.‰wâ/î8Kœ§Y½2-{ÚIÉgA#¬p$,朄NÍχætÙ‰À²rPæÍäë1]ȳòÒEïèR— º»ºfg|7¥AˆÞŸ>Ôü›ñ+ç„0Ê+­Šj‰Ž?=9Ðß÷XÓO~uärQg畤S&SÎæÍ›Q!O²MK•åb›a‚±b‘rLçDcÜO®KU¶ÌŠP)d]VG™ä”µÖR#˜È`dbäW¿úÕ‹/¾ÄÚÈR¾Sæ¹ÌW(5®3vmâñÇ¡žåŽC ö5ºQRZòЇÚ·kŸišDwø& bÞ`¢sqmS]=¡n˜È”€ÏMä!\.+Å+rÒDMueT, D½ÜtÄÉ£f°ùiT®ÈÈ0ŠKÀ2¾³r@$ÆÕþ™×N¶ÏÎ #ÉÞZöŠ™ïyÏ{2²3h$Mˆ ѽ؃ødä[Žø7¬’å^‹Ø’ûéJˆI0èC0ÛÀ‹M~ÿQÝlŒ•I÷iòAVxäø' iµROŸ>=73T뢂"+*DëЄ¢ßCRØpÍóå°Pµ~1çƒkŧøÞ(ƒ­×«¥¸$ßk­4k.ê÷zRÞû¬uþÌ…5VOONnܺ±ùB3ðÁpèñ±‰OüÛ {îÞhÿù3çqò’òÒ³'ήۼ¾óÒeÿ\`íÆµ}WúPnth Ü—Û.ô •vutæäç#¢À²‚È ÎÈʸõŽ[…;µ±9 ~i¸R²r²€\¥£YëUÁ¹ ÉE£ Ö:B4¢úœšÔ Aª¤¨wíFÚ„2–Ydµö+{@”Ú’ÉÿøG¶lÙ‚z“P&¾g}> ‡ÈÊB ЩîÑÎ70ˆöäsžžc#Ú\Pë•ô±"}Ó’^ÁmÛ¶ýÞïý‡ÿú¥ÿþ‰ñ@ÓŸúÔ§êêêØƒ¢æo¡fñ¥ÙµÅø´Ë5“ªA‚&1Y‹©B‚1Oêgн˜Ô3úg7r¥å?—Æ8µÑ ¼œ­«£ áD‡î>ôÊ ¯ ?”I’jkSëÅ +j*22Òrd0C Îžšž‘™“56:±iûÆŽÖË Õ– ±}úú+]=îjx£ˆkaF:uïm{ùø/½©é9yÙ†¡OOûªk«š/\´(1mñrÆò²]¦ÐUL¾¢oƒJGzR`t-@Ùã›Ñ:ÚQA•€DQ_è†I¹ˆ)p{ oKÉöÅf#”ùû#3 Õ.ò òì2=9•›—“–îõ¦¤ òÊÌä4È;.³2?·þæËoVÕT¡ä ^ ôz½¾ŒÌôìœLyYzp‰Á@p¤ZÓÍRL©¬x3çdYKIÙ(šìäÁMáé)ër›@ñ’bI¢ ëúg^†fÚ~ lï¹}÷ª »º»:2‚U¹yykV7ìÚ½{ýúõEŰÌÔ8Ñ´§»«·§;LS7 Ô††Ná[==ƒz±¥4ÚR_X „ÅÊû^|þE@rŒŽŒ|lWÕßÿý?È/,À0¢z;QÕÄSËâ!M2öÀ• ÆCNS?ªÀ%ÏkI•’I”B…˜néC=Nÿ$Û‡BA|B!3[‚)dUT•‡+ÀÇÌÒòRЦ*·mÁÂÏÔŒT¨â¹xfm}-…]ܶßt™;÷î0LãÎ÷Ýʺü+*)ÂÏŠê 3KÛ’y|`Å uüäËH~‚ÎÑÄã´W,ƒ`&ö„ ”p¡xUîb˜JçÄ ÁЬ*½‚ýu§¸ÈOÇ‚ˆÛ>-ú¯Z%eqT%ðºQòJ ÒCk<)ùÄÇ€iôû-ÍÀ³ËÊÈHMËp¹MæZ7\ EˆO___X9š iúñ G›A n—°ã®ÔuÎ΂ݱƟ„yžúKm—°@´ Êüá8p:IPdŒ¡!Bq°*È6¾±ÏSˆ×µ¬¹‹\©¦f’†IîMª´É(AÌéáÄO'Usãz¥yÓ@TÀöü &Z'aŸ¤ß¢¸ {‘¨ŒPhÎíuKsŽ¡ã)aÕáµÍa[@s9©‚¶¦¢%Ö'„Ü‘Ø%Q€/»ð…á`@ŸšžÁÓLAFãÜY)ÞXåt¥PS%µÉ T¸î¾é³W¦G;)õŒ½4X¦›õNN0Òþ>QR&«èº\×D »Dhª[êCPÓ×oØÈ©›ñŠø g›ÀÔ !œ…meÚ¤žhµf……SsVQšš`K–%}EY©É¹¶F¦ë³Ÿý·Ÿù­Ï`LYh¸F:GQ¹ÅÂnŒMy#‰bQ-ËɤÖáD)~ˆÊ@Œ!øpýlº~"•ÚÚÚ‚ü¢s'ÏMŒM€ÞØ”oƒ‰áá1†h6ƒ9y/G9SÀÑöH¹hõ îÐñS³è›xÞäØdGKç&™1•Éþ!ò*QHã91„àwrSu$täoúW5 {/ùëáö—€ŽáLGr°lX™a÷·&Æ5à˜‹‚DMózº6’5Zs‚Ýc]ÿfOÊM@;7;‹Š®rdZä©ÐuŒ±á á¦XIBó b–m=•Á‰…YIáýì;±¾wóÿÑïeådã…Æ˜Ðœô`Í#Xü¬s&‰ÓçÇ&KsNH1J‰ÂŸƒJX¥dafíXDt5FqW|¸ QqQÑoÿÖo_lk6MÉËl7bŒ§2®„DÃyè.‘¢~F]šà,‹:˜¹“›Sü6ø2,%•„ ½|ןXSµfËÆ-™zAdIn$k>q3ȱµÎx.R<ˆw{Êw¬~àïûO~¯çØßûÆ{!ã²ÐÏçe¸æ$‰æ ŠHôå¢Ö¼z’iLŒvŸž˜¸µ ¥@»)T Äæ!ðÉ",ÿxh¬Ée£Š|c¦óÏ*â0tmc¹öÜ9-ZùD>,Ø¡}xuãÔ…Ê/ücW( :²„æ$-h/Ò›s^ø†¦n¾=n/ó„ÎNy4ê'£emUu]u5ÑÙ| šK0Õr[D{X|/çB$rp1 ªØ~GD¾ì¸ ®E3Wš[Ëy­ºÍUI QNà”œ’}_ȪÜwåÍ¿l}:87-¢€Ô­ñضÆÇ@LJËPôV ŸÉuŠòyAõ”\ÂßÓþFOσpLCZ»)‰s&Vé³$ß…¦“]R‹1%qò€Ò¨ µ®Pƒ¢¥O3ÄJ"„dî막ÏÞ¯™út÷±¯gVîÍ_s—EÌs9s2R× Ú…ÿ . ‚U .$ƒÝ«oŽR!;aüÖæ©5Š•ñ²ŠZg.â +ÖIlKŽ>&þˆ×Dåñ ÁÑ´ñ×@ tl>#úHTá *è ‘ÝElÙyÜrHDAìE0­r甆9Ÿêzå‘É«gdj€Ð‰äØN%¸¦CÈã£Z^(¯¥o…H2‰2¨aS†ºÏ>ùVMuUvnîÍF dzjB¨ ƒ”ù5vÁ H³'Lˆ(“hIU駆´Õ÷oÕº‡5_àš½Ö<î㦠퓷hÜ¥¡‘³OäÕÆ2<½œ‡oÜ0MúIQl”Æ€#ΞÉÀHg¤ù(¶5‰Ì€©.ÆÄÛ/ÎÖ-í&#ÐV8$á%›nè™™……08ac†dk-XfºhÌÑ‚µ[˜aœÊßøpjɞƗþOÏ©Ç2õa·Û!°ôδG?C!xD!ëJ ¸(° I7HÊ+óÏ |4%>éÞðð¯Ÿüåæ-Û7fd@Ž¿©èfÀY8ˆ…© Š’‘1"Á‘&ø@®Rá4ã!qeì«×:­_œÔd]—„QdI )η¯×Þ³YÛ¾IP¯€8Ó3ј›t§æ.£4 g­IúÃäáGB-«ÂœÈ¢ é)A?—¸]9qRÁ\¶ß0gëêÿîw¾{øÈa)u‹hêÎDhÙ5®b§XXæ­¨t{ÈZÆvÎq]qd+É4J¦ú€µØ?úÑÞÿþû©Âp ɨ@üiAº“ÍÔ\¯—U['Ö(H:5¿b˾ä*?xü©o¸®¾^‘Gd¡L¢Ê_§K1züsZW‡5<¤•WÂã’s.±_¤ IÓ÷û'¶Ýúƒïüí민°·~¶¾X7@¢Ê¹hÎ ‚ÇQ«¬BxxæÄ™þ«ƒÀ˜Å‰z{úz»¯Ürû-¶n  kmØË4ÍôÌtŸn’)“ß BJ‰G¯½ ³Û“ž¾Ze©h)6E¢ÊÚoÿ›³wßÞo~ã›ûÜ/7MݹI¯.Œ"Q&bÚˆmº`U׈âRqe›¼Ú§ŽÃkfüÚlP¥ÌŸ:yúËÿë+›„@_\VFù×™DYBö‰N"Vb®î tW¬Ó),Ùº+ÿ¡€úCƒQ/_;eA^ÍöªN¶…mžE‰Ú:¶;el<«¼¬²ÍØiYÊt¦_ ´ ßr™‘9Z¨?Žû¡äišÊ•}qY ×kàÈyF]:BMÃÔÍköÙðÐmki«_» Å­QFyÍúµCýƒÃƒƒX•Ÿ_X\*½ÜÚ˜d¤˜—­3týbSsͪZDÿ¶ÅÛJ!aÚBÞY~ŽÊ§EãØZÞ“KA‡ìàŠ”:-3z7—%߸~ÃWÿæož|êîG¾ñ¿üÅ©½µapÑêBžöÆôɶܹY­­´-JËÁVhýò” ˆÎ¨–3JIbd Ó»²N<õçö_>öñ}àƒ–9Ò€ÐÏ»\²¤ùcjr8)'NžùÅ/yúøIßÜܶY©Tæ]––ˆkÒOQVŽX\ž1ÔÅ‘þÅ5ò)­Ð*ªlÝ•å+ÕkòdÕ§äTS GB:§ò8`h„ô”ÚÊZ£ ÔÈ¡èáœÌeÓA?;7£C†eÝøZÐtVßâ]øÿýƒ&Æ'ŠËŠwìÝÑ|¾y ¯?/7‡Ò©…M0HËx쬴´ô´šºª’ÒÂñщm»¶Œ`°1@$‰q˜ùÀ÷`ˆíUì!ë4©ÁtÕ[‹íä:N¨s:aê¶üc;GTá1a:ùðCîÙ½ãÛÿðÇ}ìhÛÀýŽõ$jsQ´(=ì…—Ú,5TTÁD¹,eJßLg‡И̘¥\@0™Z¦þÎή¯~õëgΞýô§>±c玂Â"$¿£$ʹÒBÞZpfzº¯·÷ÈËG~ö³Ÿ¿ùÆ[ÈáÄ÷ºÄæJ©%âÕÀ„îõ.Ü"²s%}vwJ/ž>ã/ž 5- ú‚VP(Ç1CUs³“þDzéWJ¦–`ãù:– :4lª,LQu!ËYÊ+(öeEdZî`S2;_ n*ðOަ–x™ý-;¶@ï¨_]H¢Üá}q•Ú†ZvËÅIatEϵNAtÌ Ý@¥|Xç{$3¸ |gW ÖðÌ· ˆMçh¤¶²3šh›þŸÿì®;ïxä‘o=óü ¯´ÍÝZ¯ß¹ITh4`l±›q EOhDu Š#Å(Ѽ(M÷ áÎËZß•øG!|~«é*Ã_GB½çf}O?õtsS êˆÜu×í×oDÂß)æ)M”aØFGGº:»Nœ8þÜó/½zô•‘‘¥¡á°Äm¨+”·­A™q5µ%–Ìãè¹"B!k—ò  W»¨±ÍÐcy¢X`ãÙ9‘•[ƒ$Â9Y¸’_ Zª‡ËÑ3f ·œ“‰ ’òœ !ñ˜Zè¤éQïÐç1ÄpxmáN-nÚÀÉrªÕé܆väåÄO‡o¢mŸÞèv{`mâƒÐUl­Edv¥ÎI¥dc·ŽŽUñs6É´Ä—¹üËœƒoCFå~ø£o|ý›??sñÍý=›Ä¡µZN§¨+‚¯j>ÒFbèd_¼°ó­+ÝÐTÙm†½¸Ø‡K_8›ñR{ûÿùÖß=õäS·ºý=÷ÞµaÃÆ‚‚ÔôtH&Bð­9Xßµ7ÈXð†ÏÌL ž¿ÐôÊ+/=úzëÅüÂZ²ËS¼RÃsÒÔ)‘`b±”,Ó%ªê¥¡µ÷ &/ÆŠe,ºŒi•-.Ñ…h¹û.O†ýÖjó¨–,·¼t.—€?öé±*ÄÎ@â·II¸Ãã¥ö®nXµfÕÚ 'GF0¾½[ÒÀ(!$¦Q§%ìoß":þ€›»ØÙÅ—B»ãß2Q NÛ$ÎðÔødoOï-ûoÍD"¯Åñ¶a¦› Aå‹…MÑã‘’ Í΄1‚ “ÔOÊæ!1†_ Ï—œÜ€'˜“ýï÷ß¼íà׿öõÇôãï½2y¬Õ¸‡¶³Nsxà<µÈK† Ú݉ìPë—)Ëò C— 5³> ‘º°þ3‰‘i±ÍáFmldÑl)œ¬³£ëŸþñ{¿yöÙ-[¶nÛ¾yëÖ-uuõ………Èm‡VA¢Qâ”I˜Ná`ÈçÃ8qõêÕÎŽË/œ`Öýd‡“BE¼–Ç;ÆÍ«ËZ i_Âòã—G×ÈÏÓ¦AáD|WêcÏÏa$;줿5g]¦!ÕÁ~gÊ¥GIa ì€àñéOjÃÆõñ_ÿÛ3Ï<û«Óá¶~ñÑ}Ú¦JÓ'öS$DZŒ¥@j°Žg (Êéôi?|]ÁÔq 9Ç 1@ùôöö½üòQeegÁ\TZRRQY™›“ ð˜´Tw |^©©¸A;kjvn. ÌNMûú®^í»Ò3004 ãúÈØäÄ$\%tñL“ñ*WYùé’ݰÂyM°,`Þ% oéF1•ˆynóO¤dW /!gÆ8§ÛMòeœÄ[)©“i5Y†o&òˆ,•dÂ${mE8։Ȇ¹vùƒ,¼’;–ÎC‹5ð’ÂéÀ(®ÏI€‚W¢=)½n‰¨bû€tš›BNÝÒðo‹7NH~„رcç?|÷¾üå/ë‘oïó}õýεڡ ZY®²;-ö· žX;8­Å.(ÄðíÃZK¬¶™(•’23 NØç€ÈÙ3§…*%ƒ{2¬4jAõØBcÛ+•rÙAf˜Œ„Û´ Óâ7pIHá¼n|Ì©éz°§{v´#%§Jšÿ–n„7²ƒË™RA%à?ÕÃ9(@Æ5ÿ’B¢šç|k„, èbëELŽèY–¬Eû“Г> m/ E6¬^™™Á–`eANª$×ç´d¶Å9$N¡¨Ží½.¬i[/õûqaËX aÃv~ÆØÐ•‘* P³ü/}éK¨Žþ?ÿú Œüô„ñj»†´‰[¤ÓÐEXSÄÔAE/ÇК®h¾®í~ûE"bBˆ¹ö|ÚW¿áF(LÆÛð|ej*l¹D“A¨Öªˆóõm€×v™¾‰¾¦ìÚƒ º”¬ _—ù ª§1o/ä ™Œb÷35øm B8-±·³«³ç+_ùòñÇÖ‘±à†·„ƒ‰ 7Ðeº~øaàŤ§¥ÅÈÿôô”³Ür¤Œ‘Q‡Ð÷8zjG¢¨„ ¶ ºÑÁOƒh«[a— }ìG¶” €ï _@`úŸý§?»Òsåʨþƒ×ÄáFk{•ØY¯ÕŠ47.‚J$?™6uuT{¹E{î¬58%–Ó²VD´¤>%˺©Â*ÊT’Ši•nï:78W­ÜœJ'•íø8bß¹téÌñx±Äõ3Ñœéš xÉ9ŸT¾zåY)< x¦ÐÚÚ óÛ꫋ʤûšâa¢-@¹»³¾ o`3yÞ‘ú#©'̟̓¦o–áyFyçGƒþή”ö–öW޾òàÈHOWtÆQI•I‰S(”±yQÄ¡¹$_ e΄m*%ߪ ™%¤ßÍë†èï,2Mó“ÿd~nþýá²ÔÝ=*ºG´ç›¬ª<½¡Ð¨+ ”å„ÑxL[†±ËÌLk=ÃZS¯vºK»:«bʼٛeÉ'±«VØvZåá„ÿãFµÜ|½ùâѱŽ7óW߉yx™ð=h1:4® ­•´Éáï ò`-ê}Ò ^a¦uØDN`„å—äoÛ³­¬ª `‚8]kÂ1„Äýãcã8âZC‰ÏkÑ0Ò%UÑÎ,6#8ÐÃ$tAÄLÇá-é!P QH4ÕXœýÊ>'¾$ìâú§'¦Ó3Ò/7_žŸ(,ç<¢CéÑql-¯¦ã ]Z8¨ îŸfM¶¥Ó9k¹™®,c+$ -mjF7„0ëÒˆ‘: ³(n›Ëÿð‹U×…ü›ž篠nOÐ}NKCô ð;< zäH©)|fá W†YÝ‘q ®©cå¸ æ7<1¥*_4”È’ØSÓæcënDKÏÀÄ7Ò{ò±ìš} äÑE›àx·œd9´€2¥Aó“a;þ„ò9i×Þ(˜ ¿ºƒzHr3].”-­(EÄ‹,„£Fm²†˜%£@Z›[/ž¿X^UéãoœØ´mcq©]Ef`FAÄ`‚ ’a7ŒÌžyô‰KKK“e¤G뺲Å{DNIvnæØÐpkD2.*.r»òÈ#ÿãügŸyÏHUè.c3ÖÝa¢Ie¥£$s|Ò«V•W”#“¥æá/ü~ggçàÀ âu¤@n'ÐÜ*¥w$XÚñ´í$ñÝoT¶ N B+)×.¶þªïÜ}¹ ÷j‹§V˜n3%Å#-¼º¾àXV]D•;p¡·§\ x•392ÀÊ2*ÊÈHOÏJ§´‰P;²”1ëò¸‘Šæ -ãc“£#ÃÈkyëõãyù¹WJÊK*k*7mßiăöFÆFÎ:þ<80´aËÔDA2Ã@ßÕªÚJÄ'U×W¿ôìKˆŒGÞÙž[÷PBå²Y)¸ø “$ÿˆÅ §²F(ƒÅTË!‘Kñhé… Œ™Æã•Dfë¥Âgãöš¦„ýÑMðß6"—å{ÿô½¿ÿ»¿G¾œ°5»=¬ª®©¾ÿïÿàƒ¬[·ó¨n“=„ÂÌ…¶¥¹åÚ™sçΟÅ‚nɺ@g¸nV‚‚ ±»–gu9GedÞ˜b§|ÒÌ,=7s¸ûèW¼…ë<™å*”eB¡ŠóIðyÃ5/8Å1 ¿%qúœ(X1в±ý–&?ô[×¹èu"ƒÂG(vêØ)°ÁÒÒâúµ í¾i¢®ÂEÖ{53'³­¹mÏ-{p꺆:Pþé7O×­©1çäç´_lïï»:>:ŽÀ•†u«áïFhFf|i·mÌ+ÊS2‚XÞf¤8Ó­L(S­@Ÿê1ðÛŠ±&©p2|ËéZ~dWPfù2 Ée@ÎÎÊþüøü­·ÜúýïÿÉ'Ÿìïï' *&þØí™—›‡ÚuŸûÝÏ­_·Ü’êpðf R`õf­Íª­®½çî{à,AOSSÓ[o{ë­ã¨´588†€w”’1|{•V‘'ØÖˆ2§ž”&Ór¸By•~áÜ[½Çþ®òöÿW×ÝèeILÅèa&ë4ï m9¤Q@%m+5ÒROž$dF—ÆöüRصÀ™<󤢅‚²™3!–.4à\n½Œr  7x©sssP¹>²ŽÖŽ]ûvÍÍP7ethJ&0AÁ'Q@eÓ¶MÕ«ªÏŸ:ï›ôÝ÷À}í­í…Å…¨>všî=wâüäÈí¼zåªD õ|‡æ)YD¬?ôxˆM¢#*ðtK¬ëá¤Y>q‡¤.XvhÐ:¨tbç,ÄÝm[¶lX¿þ#ýèÓOÿúå#GZZ.Bf@Ú“¥!¤ï±¬¼ìλî|èá‡öîÝ id $ü© «l¿dîÊʪJT¡¼÷Þ{'''»ººÎœ=óÚk¯8~È 3€Þ²ÞA*MOÑnY­¹¤)H͜ȡw»Xô¹aÌÓ“"ª«ÃmçÍ(Ú”¿ñ!KDêš“³$¸pÑ`ô+k„‘Éf"K¼M¶¾à›ý¢Ä7]šeZ¬â rFº² dæUFˆŸâªî¸ãñd „@ÂBq1l\][Í$]VY²Á1ëV×Ö¯©#æ¿}ïvZ[\^L–!ú¹ÿöýt*DR]ê/ùƒð”ù”ÐH(=W´b0„tÍ ¶In«•7NaQCyÂyãOŠœÃü§§ -¼{ÓÆ[· ýûÏ8/w\¾téÒðà0”fÓ4+*+Ö¯§\WS]ãrIn ÂKH@µ´ þ¼éÞ h7<üá‡ûú!ó=zôÍ7Þ„iJ˜\¡–ƒµ¥b•m âð‰LéáÔn†–“¯Mvþ WZ^fÝm4¶æÓ„acFŠàÓ&S% 8úF'—0âôb2v¯ÄfÎúóØŸ=ü$Õ¢ä&¨*" äø¼>¢Z†Ürè uÇ­R½¬÷;3H⾸@CœK\!ÄÁ™>ÎmœËTÙzðê j“ÁòdQotÅDçc2£Óµ¤!Ž¢‘!—ß4CY  + ZºKó` e¡¢~e×[´cçºRSä°ÖÔ>$Á&B–twì8‚YˆÐÀ ¢V¸Š² ȽÃÃÃ[Z^}í5ê¹³çFGGq–•óRÜœÇÔn] JË´G¼aÁXzëƒsŠly¥>çë¾ôìZõo¥—mEüW$aÐÐ’R×ÔR‚1O’T)Û“OÁÞ2ó´ÿ¨9àø¡Á¦‚ýï–½Û[ÛfÆ}° ‘$.¸æ‚XÄ*£2óD‹æô»èü›ËEy8iꌮ—¤V)ìˆvÃC–eà=Ä`áJ™¼÷=÷ÁÉIo‚OAœ“‰›‰SU³I V7G5Ð=¨‚ã&YrÁ*Å`¥ Âð·[>~¸LggõP]p;à›/)qÐ!§qŸññÍÅ9ìù<Œixÿûöïÿìg?ÛxáÂK/½ôâK/577C^‰Ä+“wsè¬Ø&õy<Âõ¹ñÕû… Ë­U]§·45_zöOWÝÿÍÔüUæ1ò/†CT3t…]ðœŒv ñ‰|†Â¢²óìCW™žÌÌ aÏ}øá‘±Qf…BðØÐ­¨TÞÖrÊ gÖYj;Ž?gj”äÀ.µ1ÉÞh*+EXÄ•  wÑ-:‘‚¦'?ü&J°á#¡Û¹ós²z£ Y¸3L‰ƒê~WÒ8''  UѸ6CŸ0 C§Ø÷‘â.@Žë ýèd*MØ ÁÁŸXVs³PHHTýŽžu³€83A¢{÷íûw¿ó;§Îœ•=r´¥¥Å7ë“ÛÛíZÐÖe¼^v÷Pø0 çÍ@ŸˆZµF\lz£ãù?_õ¾¯ir”A#J ŽXâ@ Õ‡ž¬i¤Q¬•·C''4ÒœˆfM,1‚ša‰)+.Y4€.ý.¾3ú&‰cÀ'~^eÏJDõ S~ɤÓé¼N$% ˜ðKÙ:¬@Mä—.kÎÕfkP¯Š‰2È%•ZÎÈÁåH…"°ÈŒH”®Š¦m+ÔC£l Öà»î¸ëÞ{îzùÈÑþÙ?#Òj` ßÖÂ+¼n±¹B3l•„;Ý)–g#n*úD…òÚzýÂÙg¯¼ùíêCŠ» ç0‹p| ±-) ”^CÚr (­bá–ˆ=¤ ©”1bŽŠPX Ôc©¡%Ž˜3òNümo®k¼‘Â2 eÞ1_šOÏ ¼6€¶&nãÐqU0»‚,]… t8Q¼ùÜŠsR^³ü$EE²ªÉâ,I,D´ŠãùiÕBð(ÄKÝòC˜ØœóSuka˜‹¥¥€*ÉN¤¯Û¤CÔÈì t1¤ êaÛ”–•}ôc½ÿƒ÷Ãtô‹_üâé'Ÿ#…_‹i´%8g~:ªnc!jç¦ 9¤ëArizFhàÜ 7}Ø›× C¶õ¸“KE¬…¥dZÅ--ƒªã@ƒ„U<õÍ—MNÜ´¨Æ¦s'Þ:>63¹’–0®8rœð"tƒ3KÖ|23ýÖY9”H§c6štYŠI-åíßQ{†¿„´Ò²R¹‚årgø^ L‰¼+Ë䄽•4:4[ÆáÜä¨@;Ä*ZvF:1úÉ‚9y6•ê’¹ˆ—J*³©Ôö•ëzÌ5?F¢asÆwsZ§@Ez7D·pjíÙ½gçΟûϽøÂ‹?{âg¯¿öúÈ舶8#Ūó­,/œk9Šñfk‚Œdþ‰«¾áÖÔœ:üX¹MÙòBdGiÄ-ÉÁ°}\pÞ OÅ62N0Øbk[û_ýÕ_µ_n÷"çÖå†î0.ïRr¨VR0èÆ¾ö‚P§çWr‚L§àŸö^L„´Ö´4æÝ¸xÃ.‘laAã-(sŸ­ŠÝûgý÷Ý{ßýÑ¡L± ˼¶”aÅ!¾¬­HZ}(b ¦fªPAüœ*ô*r%Ú$%Ú 2rK%ÉK-æ¥0-Š€œ£\¦$T=í“RÀ4YÐE –¯–íÉ|F²#’ó·>ó[zèClj>ûô³°ŒÇ(͹Uyƒ9$:ùÍïGÏMÄ<Ùlë÷ ã‘Pô'žaR²fØ7À MÅΜ2zÔd¥ä€Xú8†¢zÂB¥Œu íºuWiy)ƒ*Òø‰)XBGãŸØ—ma2ã(×ëüÁmCÀÖ1™••…sE¡Å˦œŽ¾§(dåú,±°ÔJ3%­ˆÐ¿P¾"[,pÖ¨lšˆÕ²©ÐNTª):ñ GJ:+Frj;H– C“.Ù y–“ArèС´ý‡¶_?õkh¤gN™öM;}¤°dçˆx¬-ŸON<†q“¨Pb€áŸž §æ•¥å¯Æc´ÜÞdEe€êØF¾ $1î%шwzÈñSý÷ã(_XZ¸i릲*§—"7)l^4%ŒeJµ )d£`ÞlÀ›¦»dÚT¡ÜfBÆà¸Ø` w #'£¤¤DØ4lÌù+X@üB‚€Þ–_œï2\†i øÞ9ì±¼³Y”YœyÓ“SØ«ý|».ØýÀ°üj{¦Sñ}\¨eð€^1}:Ш9ú„óßÐKò³â¦q%¾­D&0ºLDzL÷,ß4ñRË0uà`óxA‡#Tè Ò÷Ò¢)îÚ5k׬^óÉO}Ò'~òÄá— ‘UÖ4D~ú@ÃàN¾hwL´×µ9í6F´'‡Ãèj¯62l.oÙÎßNɬ´s4šøq% ¸†,±MCF£³±RÆíÅ: «‰¦aÀƒ_XRP\Z‚Z)BxùãƒÒØ §So]÷Ðúž×¯˜¦)CèÁŠªŠŽKi™éµõ5ÀU8þú[Õ•½Ý½ú ¤¢ÌÜL„à"Û£#£Ø~°o¸ÒE¥E)îåæåç—®.Å «ŒOh`²¤µˆž—®¿o ·½dOU2xp2KÃ"»R"UÈÆ;)[g! ƶa¹ÎYÚm6üF¯Ù¬Á˦)U¨`Hzbà& „ä¬ë’!€Ò\oÇD('›¦\»|‘œ·äÙ˺ù=øÐ}ï½ïðáßûìç€ôEì3Å%â¯qnÖè×ÒÒ±Áu£OgÝqP£4œ™Ö¦¦À*eÉÿœ.ž´Üò}Ÿ/Üú[†Æt)óŒ+$˘º’jjŠä¸žY 9w™éYQ,kdö*â2.· ~…D¥óËŠ-Ëç]÷î—(û™Æ éJgŽŸ.«,¾púBVNfM]5r ³r²½çЙ·Î<ùᔇhø¡þ!l\Ú]:ãó•U–ž9q:ã-wߊbDÝ—{tÝÀ Dñx8K"þ „!Ì“7ÔíÛg¨bc n\OܨÒ㵨”S¾bVöXÁ µäªæ—ºâ+Ð-Ó­¹Ü ýV|XaS©+d„(èØ PÄŽY,,{~žGß‹@ßââbЧ_°1þ ½¬´°ˆ‹8%—ÙðAµ¤2ðCœ5 HÓÓø ¼.„ º4\žœªe»7§þn¡›á¹qáÉ €»dat18¹U¨“H1& Å|V&É Ï5ší/.£v>D¦j>=3UÄa·ã¯ïéêÞ¸u£Çãn<ÓÒB©2ä ] øX§Ç^9v¥ëJIY@ÉÁ`‘5† ÕÝÞ|©nUݹ“ç ËŠO½y DÞÚ„8ø¼K-í8è'⥜*'䲞ô;¬©Ø _1énlÉÓ•Î)ØÍ¢¬}]‰°ôÂØ+M\‹¶d?Uô^¡jTé×Ó”Zh8lÈÀŸ†ÓÙH‚–n0®>ƒS%~ L¥yP~ƒ–Ö¬¶`§jo•»V×™¢®©Å”W$uLØl¡>ŸÍg4,ûçl+TX91(~†J*¸R²³*wç­ §öWz!:¥öI¨¤Z¦ gL\¼ ¬Xr-+¨  nY{»zÁÄp@/îÞ¿”¹zýj$CšÅ€,@¡[â®ý;2³³t–W‡ÄÇÞzÇ~@%t]îÂ28g‚Š`Ø’U¡Ç ‹R\Ø<Óé›1ÙÄ…¾µd4ò,³cF‰µV¼ìUpŽ8{R„jR÷¹n$º,Sf !ûêॾY;ÍÁ$*ÅN¬s^«Öív8ñ¦¼²¥Šd×Xæ í–F­ H+-z-Û‡âO'b2L¥¼¤ºH^$a3F`Z BZ¡qËÍæaõi(‡‰’¡–»¼9©yµå»sêïÌ(Ýfx2} dÙ…u Óƒç`€•‹µ²º‘âêcÆ|ð¶â¥–A*‡X\˜© Dïξ"3›0Ð ñY¢nBLqðÆìÜl pEÆ&a5¬Z· €ã˜X‹ÔMœØ«V¯JMKŎȱ¦ñƒ¢€Åšú:&z°Š„ÕDþpjl  6Ä,Z,ÁÙÑÿA'â»%Ø–I¡Op-N¢*«Nu‚å^I^ND¦•«»$¦²+Õ9h,;ÅT†„B ÒЬ_rzÓ ›†n¸—«ù˜(çŠD$€0Â×P!¿Ãhá‹ eÝ—áA™x#n%ȽÁ¾6ò-˜¼¹"<“"¼€t(cÃØ,@¥%K]ŠÉ†'ÕšëIÏGtAF鎴ÒM)ÙÕfJ6Ôr¡$K•‚Ã-W ¢I Da !&#÷‘ež)³J»¥Ñ¢†¢IOÖ}j%¥¥ ò޶P)äÒø,–“cJ•pJü‚Ò’"–,!…IϢˊö¥)/–ÈC\+erl²§³§¸¨`4Ójæö*‹Õ!$$“c"Y1mp|Q;ç^³œC›é2–imRlÅì^c;·³ò’FãÀ0B¦nÏa°Y/ÚòƒP,–›‚’Uªªª¶lÝÒÙÕiÚ¯ëlèB­x‹u¢x¨pœmhЖüÚÐmâTÀö ½ùkñûV{1²™.$®’o.&P‘Ôôü¢Šœ‚Rwj†;½Xwg{ÒË=9åX6SótWª°ç:È’§HIÉ÷ÀöY ~VKRckcp°.Š‘EðŽj‹bê]bzuµxÿÎ7žï¹Ø‹|]ÎàAËÏØîtšVO1ná0½Ø\¢l>NŒ½_£ñŽ_œQH¥“ÑA‰sÎÌÌäeÜsç=0iÀÉäd*qY)tÍpFº®¤ÑËA²d˪{sYí¤>–l9Ÿu%Þ=1O¶Ssn£¡Ñ¢*fæñÐ䆘›³„ öæ’¶ße©6ý}ì£/>ÿÂÌŒOh²dèS§´ß¹Cº`Y¸uLäó˺M)`€rfPÛ,P~S(f¡+…vpÃV¼}ˆ´ÄX6Éô&f¨:~YëœÈM/^¿í®Ÿ¹å–õëÖfg瘦!Ýߨh.ö!肟À²Í ØÈ%)n¢)êÄÛLJx­ øó¦ó\3Àé2YÆ“äÌÏ…gXiB¿åL±I„Çoæ,b´I%+ ˆîŽ Û %oVÅT‰°Œ•ÖYäŒ5«X:I¡‰,_NŠP„/¶Q‘õu‰Rqi<.iXãXÖ(Oæ>†CBZfæd<¼‚.J‹Ñ)‘̰¾®õ`þä?þÉk¯¼†ËòÄãojíýÚ}›µµåR‡eeúŒƒÂþ„Dï˜uörøÄW0µv×;?qßû6mÜ”••IÀÇ6o÷“œ«˜@ó¨lM`Uñýt@~ª×´ å¯7‚Ç âPŽiêð‘±ñ1Ë‘X  jÁ~†#I~cF© –i+Ê+ï»ï½ë7¬‘jŽùš)ˆ…3JºÁš|ÈÚ’S Zìû3±Ì äJ {tIñf$pÿÅzh:Whfd!±mìòÂnáò ¦÷n;4ºW~ØÐ-ù{Ó¦M|Sâñ"ËÌçóBúkmâB@ßµk´†b ~±ä0xhª1üÃS gëÄ¥PË »bÕöÿ݇î¼óŽêª*@ ‚O"æ/‚ÜD™\‘‘]*:¿SÌ+ñ©ÕhÿxìIqª¼_ƒË[ ]olnúÚ׿669ް~‘+(kÂGXˆa2]]û*Ë!z+èVd¾qüêQ~éKÿ%??—’®é8ìdrb1e;Å„Hbi‰©ÌfX"HÖ+Y[¹ ›Ó,I]a~N`t|¦^ftäÒdÝr%­‹ýë x›_»e(¯| ÁüÊÚœ,ÌÂ7=µµµ_ýêWÝqè‘o›5ÖnúüŸ~òƒ¸¿¨°×´$ؽ"Br âüèp¦€ð<›(yÀN«ëø,h!ß*¾ã_Û0|Éqư¨Ì–:Š,÷ã>o¹ó–’Єċiñ5ª9‡0C¬0—ŸtÄ1"€ éPK—|]ÊÏI›9hDžýòÃÏ=ÚU¨¶ä¤È`Aó-ç[®ö÷ù)"òävBz™ÊbÄZˉ’ÀÛ±ý†ÿcD”vLðYt14—¯¼1%pð#*°ë’Ñ79#˜Öí49rЯ:/ãÁšï2僆L‹™kKó¤üëÏ|æÎ;ï|üñÇòãŸ476ÏÌÎL͉3=úÙ+š×™©ZªGg0$ °ã>kÆ/£xÖ¬^û…ý©x°¸°˜R‡´Åò\À32ð+HF¨ÃK1ØHBBâ^nAH”Ê1,«Èki<ß’êõ ‚ÏØbôv_m¿ØQ[?²u÷ÖK-—PRDÚÝѵfÃ_G{ÇÚkÁ™6tøÙ—öÚ÷â3/¢8JýêúYŸßt¹Z/VÔT Ìañ¨'úäĺ˜øÈºNõžêÍÉËF²›:;²íž—C œ¦æ„1‰#l§íIåhfäS’j*¬$ˆµôvqF|˜uБi@påVüæÌ#ž#V~ÒDñ ÌBùàÔI´ÁÂ?Ʋ¥Ô­ƒ3"T „Zšý‘>ðÀýïinniokGy5àÐ#\>@5˜wë¶­ 7M™›Îó ³ht Œ‘§Ó–,Ô%ÔBA!ŧ¥GJôÏxhôXˆ$ØS%Ùµ•äWÀ³0ñb‹Äg C÷¦È†Š>Z¬|áŸÅeÅÁ€Ì?[RYr±¹µvU 2KPÁ´½=WšÏ·®ß²®¦¾úÖ;o}ãå7Ø {<ˆzÏ+̯¨®@m²òšrTCÒelY0ãþŽŠ â¼X½a5^¢i%dƒÄ‡—­ëQpdŒÕ3ŸÃmE¹RÂ6Ü mB¾`]a-Œ¥MG!å‡íNÔt®œs²Íƒ œqÊ ¥,6s%E¬uúÐÑH åTö8‹‚Ø\.ŒÝšÍKöÄëÒPÆ;¯â–wÝv0„»sø¶Á Ý ÁÄÀ¼\ËátãD¢DœϨ´Š*ÌmÙµè¨bÉ–ó0Éú¤S0…¨Br Í&ÉJ<œ7Oê|Ál\•óDQ ibQ»ÿ$ä€PÃ9T]Wsµg° (nXH´ãSãcyùÙÞÔ”9߈êcˆzokiC<8'æJ„ª#Ô®°°pàJ?‡PMȱ›.Ö¯­/-/))-ß‘çZXÌÿbÙ—oº#º)fž,ƒ£\)†0:—ãl£wúŽ©\) 6LÓjRá3‰3³®LÊ Îu k˜¿±d–=gTU†8qJ’XËAˆN˜2Ú>T©\êRª=HⵋSØe;¹˜Ĉ—ñh£D!ô.H!ä¤u,›œÌ°ŒLk糘K§3–Öèճ݅vÄÕ“3E žjCQ6Q••@ãD­˜ ˜0ø'¨nßmû°jiY xWiyˆfÆšº*, ŒÔ \Ÿ]ûwüìÔ®·ÀÔ¹÷Ö}Øeßmûi$A´†P]VQÊ\…sñr Á ¾Õ“Ôutá›cÎIÂÂ*t)‰”·c׈¦,‰“EÔ¨‡u_!vVRÜŒD lÉa}ø066ûHÜ¢=“2g3+æJýNkÏ—,anY¬±”©ŽÂŒl›º¤ÒÙ¶UeqÔ©0“=W".Ê`¼Îk#†Ø]"…;$-f§E#âWØJ«gaІ £ò ±„Ÿ$†… 9`™Ð<.$C„H0q:¹ïÿÓœ— õɵnõŽ`¢ml^v{ÝE©ETqw›h ß Ð'5iª5L›±Jé|éÜét‚Ða}¾Y*$Í:'­e—$¿V“Ö‘@Ù~„²ýB%øÝˆ"ŠXMeýD‚­’ËððÄXpL3ÔéËc›þVnâÊe*éÌî`p VÂz?;x%¾Qˆ†¢Ò P b¨§'2c5›ŽK×@/ž~²Œ˜*–~8¾<¯Ë\¢ !‡¤ã”ôÍ8£\Œ¬†¼Ì.¨$¸Rx@ãØÑ*«+3¼ÍgšF–šâµ£.( (F#3“ÖñèQj¡E#!h,òÊo*ØvïœÂÙ`ÃNEü1úhR8'QKðFσn#2F-Aö¡df´=[n’âJaÅÙÀ4É”ɧpª^Q•ØGA"*u+*sþ0 Ór†áV=›#1"6%=ò䨒D!Ru‡3âñÄÒ;Ù yb‹¾ìâ£kKJÒIM”ŒÃ”*¹cûŽm[·YV$ñâF!A1ÀÐh¼¼0´õ6à?)÷`ÅA»Æ&—j ËŠçT3ÆvK°µ šn)S×; ;!hà%'Eçä6ópÒ™3y0ÿÃå\“¥8ýÄY£¶„áà ±ëåZOÈç%*ÅÁ(Í™1á°_Gœ¨vî<=öˆZe)M›ÈÒŒ‹F„<2Ç,ÒbpñØ‹C¥M(ó‹úñH+õsŠù¨ò£Å£1QHý»»9Ê;À(¾êVìˆk°…4©þ»Jù$ ä6 ¹“K#±¯ª8¡iÈ ·¾`Æþ #KörûçWû³srˆ HUä*c\Qák@DOŠ›Ÿ;þb\9±@ÌÔ£ë@] mò&:>¿MŒ¨/’n€tOÊŠ/ àg±‘5^VF(îœqâ•ð…£„ ðülùIagXÖjë¢Âi¤E“¯`±*O~¿Ô{Ls¹'`çM4˜º’õ©‡”°"WÙM€¸Œ„k¥L8'ÆÇósó$… C+--ëèè€÷Τö/§Ù÷Ûß?dèzVF– #±#‚¢0„ðp Ž·Â¬‚ulbžPèÐËr;ÖœÁkœÅJÔˆÞd\¹ ÎrOŠ–b‘LZ\ÀÛ–+Fi–Z•\ÁîqêˆÄ”Åz·CÇILÿRÑ2Ü㛡+á—A7ÀO έÐðµlè\ŒŸ *¢}ÔY^×8ˆ #(¯¢¬ì[ZFZCCŠGuuö„ ÔìÝÏA鑺9Ù9ˆ|ÐÐ8ð²cæçHŽ_.ÚbY< Ž<~CñÛÇü\bU"9DK_ _F‚¿;0£×ÆgêY|,âòq®í¼ñ?£ëœó6KD«Å// %‘ÈëÓVV'–Ï•ÈÛgþIªã× Zniq©ó™Ð)þe4&ŸæÀýÿ?ëærÓ@ EQ>-PC  m°§vLìè<6{>×s¤#d’A–ˆ_œûþo®”•=<äh„Óäˆo‡ÁÆ(ìä¨ Uù­î»Œk#]b'ÜbÌÄf¸wÑ…À+³9ºˆJRËQ¹K0Ów$0Ëú´ã¬È`82]ŽÂ0f0úÈCŒ‘´oèx#x¬H¯çØ\Pã5—X²Ë‰Ø;Ædy%Ø"§TÁŸYÅ'³p!ÁßáåÐüìp·<<¾”òš» ‘šO«­µìk[×Ú÷nÞ~€7aÙ`Ê{üµI$`ÏU+EzM´Ö¨Ïžpe€¹hÌ6;“Ó”^îŽÔq–=É!›ÄÖUwŠï u³B/óÄ@_ÕˆM‡IX¥–¤c‘=\É!];FÅHS’éêŽÍœ²—ÄdI#81±“ Ò%ªvÆÀ$8Ë`*OA˜í~vÇ 3ƒj)̧TÀÿ‡’Ö¥¼å/y¸]Îó½¹¾z~ºÿ.í r¤ˆa í^qä7ü÷pâ¼…oð®œáÊqH»j«”*%k5Ú¡‰4³í¬S±3=î‰c'Q‡Ã‘8­à£6†Éï™çrÒDò=šùW tDyŠàá OÍ µ/YÕjA…é*—VØ|– ÓhÌŠé»Í©hEe²™ïË ²NŠÍÇÂÝ]ŸŒ§Å¹Æ¼o³zÉ3zF`zõ5i€WÕN"¼Ÿø^œ‹ó¥Z´ÂYˆ,±ùõOî)WX\íŠbw¥c(ƒAŒ¹úˆšÎ¬htBˤh®rãLÊÚ2´¶XÜÎüšPlò_›Z˜¤“œs!#ß®ƒƒ¨âØxá¬À¥àÙÏŸ¿|ýöý÷CUüøùç…XÀùj†ã½ýÍÆäBÄþtæáø$/Pc ý”ß)>Âô÷MF¦Dæ¥Í˜§÷ŒuøšŠääKÆ y!º$Ð7n’™Ã»g’b‘$ðð¸ý¸ÀRÖ¸ ~"T€üšýò•<ŽÌ?=>¿?ϧÀ°—ÒÜ<¬¡ñSíðW Í–DúÿBóÒ" Ý»-$iYqUb˜ü·‹½A7³!J “?eYüˆxCaX ) H½ŒYr4’!‡c0[Ú‹K˜l8ü«ä_´Á†ÎêÑ3ì³ÆTSFßá·]G1öq1X¸£Ñvnu ^ˆ—W·HñÇ u=Ñî7‡ ÀJ³­q±[Öûóñ×_ßZéˆöIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-arc.png0000644000076500000240000000117312536324510022021 0ustar philstaff00000000000000‰PNG  IHDRSTÉiûŠPLTEþîîîííîïïõ‹‹õ™™ô°°òÄÄñÏÏðPPùöÔÔðý66ûSSùIIúýý^^øhhøjj÷nn÷pp÷ww÷{{öýýýõ’’õ&&üžžôŸŸô««ó¯¯ó))ü¶¶ò··ò¼¼ò¿¿ñÂÂñÃÃñ++üÎÎð00üÒÒðþÖÖðÙÙðááïããïèèîèèïééîëëîììî88û@@úFFú±±ò²²òµµòHHúxxö¹¹òººòzzö¾¾ò,,ü~~öKKú„„ö……ö††öMMúNNù;;ûŽŽõÞÞïõ<<ûääïXXù==û>>ûªªó%%üAAú##ýrr÷76p%IDATx^íÕERA„ÑΪöqwwwÇÝÝïÖ ÃІˆÿ;À‹Ü¥Àÿ¾b’I&™d’Iæ R,dE—KÌJ•SsTŒû:Bz¡ë¡p,é«EZèø\[#{æ¬ôáN/òõ!74¬ç÷–‚7¾3³j6"A¢:_¦ÕÄu0Ò0ob"µrç]ð¡{˜kÝL`ÆÄXòèGÜTûú±4Æo&ØçQå¦S¯<2Ãf³}Ùä–j>í¶7™s1 1X3Á¤€8ÿÉÄíÛÒ n9hÏþ¬7µr”q[±hY[g¢–ÌpÛe’5|7•÷mØ7ñòzðÕ„ÚS¸£”ž £éNÉpfBN¹ &óžqǬ˜agÎMôéÈ$“L2É$“L2É$“L2É$“üÙf÷U¥IIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-basicdrawing.png0000644000076500000240000004336412536324510023721 0ustar philstaff00000000000000‰PNG  IHDR×ã™ôYF»IDATx^ìšYl×Çg93w™»Ø¾‹1666ƶ³c‘„¦E˜¦¤ˆ¦”¨é&UE•Ú§>Ey@jûEUúÐT}I«&)}HBÐRAÈxa cãín3géÿÌñ½¶‚0}ªt©?®†sÎ÷Í'ÝïþÎ÷}sƺâ•W_ûÝï_¯®NPJ5M×4¡Íµ‚«<à2/ ñß‘P2»Ûæþ®!ƒC#/<ÿ]ý•Wÿt®³?®2MCzº.É,ÚêÓ+RUÒ= 2/ê÷Åõ~$à¢Ì”=T%éZˆ¦†sºâ\LŒ ê‹›_·qÇÄ–¸çå ÐJ«"ÐÒšsͲ‚ÿ?΃8M‚(å°/‘ §”zBPݱ˜KB,,A3Ë•2›í*`šv>;LjjR„†É˜WHT9á°Ã93tù3÷†ad³™±ñŒm‡Ë…ÂÙ•"æ®%íìÅ9ªÎ=œÌX–9…®›+’Àg«J$aJ©EX*•T OˆiþeÃ÷…f€ÄB!«\ ÁgeG¢\Y¶mY&q] ”c]è±hÔÀÈqæy^!ìD¥à—˜Ñ©©4B”S49Œ20ï‰i‘¡ôêÂÇHv#¢’MÎ8å넘`ñFýnÈ ‚=ü˜¦YTã"ti¬c€” …1 E¸ù ELΨ…ÃGΩ*ÁHfòvbFœP&KaVt…ðêpÈ%&ñ¨kH+CAEá®Á8BÍ„šm˾3:Ð{­ëa'¾déFUãMb( ˨¬V,F·†ÇA÷1ˆ2¢Çb!à‘Ë»ŒaE#–¡~ 'vÂñ‰ÜÄd~ Uû˜2nYh)¶$p>Ä•ÎäTfX‡ELêcF”†JåB!'¨„šÌKâî¨jŠØh>-7û/_ì>A,›Q/M¬ÛÔnð1m†+ƈAÇ™÷êêWÔÔ¶|rúЂšf shÁ¢gèDn~CÇ6Ö„áç v£·³iÉÚªdmwÇñá¡«õ‹WærŒ˜åD!¾ÛèXæÇϵ­^Qµg¨®6qð·ÅžGïŒe`€2q‚W{nµïZU(xoýãã%MÕX‡Ö£4 þúåÝ}‹êï¼wîø¿ÏÇãa?Kj‘HpèÖ¸E& ¡£”UÄœïìÛúÇ?ÿ¤Û6ÁÊÄd®"î€ã±‰Œç1`-DÙäBÁ K¡Æyé‘Ôpáà ܷ0ŒZ7ìŒW¤±{¯ubŠILˆ3"?ºe[Mk>»tº÷ÚÙH¤bÁÂFä›åJ—à ¿$ù÷bqN±˜ª^UT%j ù)6 XCŒòù˜š^þüæ©?«¬@dZ—¼øü-Í5Û¶.ÿÕ/Ÿ^ߺ$ ©D¬2î<³wëO´ã‰kÁ2HBhþðÚÑ¿½uúÛßÚRŽÿæåOî|¸±!½g÷Æçö?ºjÅ¢}{6?Õ¾þûÛþÈÊËk“U1zð¥ý?xvûÏÖ¾zeýO~øµ_¼Ø¾÷©M™lÁ²Ê,zJœH4¯ŠD+pµY*]3ÐÆ+’ñŠT(Q¨iÈ"Èpµõ-„Ø}=Ý M«ÃᘖÈùWìm"„Ê%’ÿ‹p$¯Ht;ZYUsó‹+k¾ò˜Æ©,+e• SV^d¾eK2Ê;ºúÒ©Ø­‘qSPØÛ7̹f[$ iÓ’Éèò–Ú—¾qsð «Üt~†ƒŸÏ{†,›8NÀõèûÇ»ÒéøàÐXÛæ–ÃÇ:åäd€ÂÿÑÝNØ&~@½ýɳÏlÛ³{ÃÅË_tžï[Ú´Ào§d¡/£\¨²ÔùŽMNŒ‚ÎióÒÖTº¾P`f1š2È~ÖÌå&,?Ãá3mæ³°:äDãߨû‡'­ß¸+‘¬Ãƒ‹²v¤Øu~ ‚ÅZµåfÿ•Lfüáu_D+9cf¹QHüï†~½Úé¯|oÿ#»¾¾öLg²?’ßGŸ^=r¬sÿ¾6pI™lÑ8¶ïlí¾pãú–ÍãfTÞ¶-˶lléìº'p ÚÈ—/ õÎå\ ¼²9·²Ò¹=:é8A‹˜ê …øÂ¥æÆjb·G§°.CWV>ŽCÅ„sŽ\¨R`‰BঠŽò:|«o||6©tžhu]6Ü% a&mhXž®YlÛ¡Ím»5¡)Wª/”ø¡F©qö,…ZSój¬RÏ㜚–T–W_ˆíè]½rÑÖM-ŸžëyýS‹Òˆ°@^L¥¢y󃎮ë®Ë ®‡ ÷ø£«ê“7úG eìíÃgë%»/ô8y‰ãðÑNÖ¿¾ùÜöõË|÷HJॉß}¿#›wë*Üc'Îe§êV¿4`ˆüQˆBE‚Ü:+×l‚ª5ôÜ<çÌ– *PhI­*‘¬®^¨l¸àÔsT¹fÂTf¤¡qe.g…tºd+W Dˆ¾výžu¶kF€z9tÙh 5ì|¿Fñ”({gBzÉU0…O·J m! ]`:;dÓcDÔÁXÔDC’Ìœ-cs±Ä8—AƒHà ’»YÅ÷*'Ü?,Ä”û•°èÛˉÐ1…Ce€«tŽ àºÓ`È*¯wNê`Õó s N£¥@¦´gîFP@ ÁäÍáŠX¨¾ö4…mÛv؇ I«˜m¸2û•áýeþU¬©Ã>­r\^/’ç"c•ù”9¦%›¢Ò«â9\A,Ëè¿.ýæ“kÖµ.ó<6ãëž ñ€Ë¼”÷"AMç~/ZZ¿·+¥@SôÎá“ÄïŠLuB¦ýe^æE àYÄ ÿa׌Q€aØBþÿdMJ§–)dòpt¼ÁA’ˆàdÍ"dáÏŠ‡Y÷¬ZÌùQõ±ðk8;ulÃ08 ï?­+Á.¥5ƒî®S*ÝJ %µ/˜b¡í×Â5]öÍž¥ Ã3³ *ŠV6V€ …J°Sì´ìü"‘t1Bþ‚Š`#ˆ…‚ØKÀ>¥…à×O³;&s r’%¨„Û‡e«-žm¦Ø÷Ýý¿€ÇƒíÐ3í-´ü3øzÐÊ[%¦:QThgRädcP¢Füëûô¢•·úá)ÀFF¶¨”ÑÚ ²±M{ÉW1¾L÷¤ÊÊ[wŒT!$¤×•͇õ%}qJµµbIþâŽYsà.I‹•·;@B©Œç™ÒÑTa>¨Lfêù-b†¨†¤˜ä ýŽ­)NT]I‹•·\ ¶|v<80Q‚¡Jîî`v'»0WÝÈμïÀ†Ï¤6¦±ÐZpó©²òV\¨³Ñ¤÷OòcW‘é s7ÌpýP¼ÝV}‡—Ó÷kåÂn´º¬_õÈè3 Ìx”†™C/'%VÞꓽ³‘²¼þðuîçÙuY`wuåÍÝÁ"o.‚€mxmiôo 6ÚFƒ­Õ¦i›¨”ª…(˜ðEÄbmÿ_lÚhÅÚÚúZ…´ED ia] 꺀°°Ì¾ ;»óÜç4ÝIœÝ¬ƒ³|˜ÉóË“Éù2Éu%çžgfÎ}Ï8Ë9ª '³ée鲎ΠͼY—X§s‘¸E{º¾³»~ãÑ3ï;}âÏ×\UÏ÷WoüÞ%;]àĉ‰¨bÞ›`¥ø©bªlBrŽ™ ï±{K%§QØFpFð"(×ïéè¡ýⵌzáÉW–>¹ryÓ~¹)yÅ…#Jˤz¤™S05ÁrXXÅNSNrNᬅ6î¹ûÁ$íðà!3L-ÂΈu8dÆ{ÁšGå7s?\5ý†öÉîyfÖü®w››ÿù q:œ8§Nð^TˆëËRüT1U6¡õIvjÒßìÄ+%¡>ÿ«àHUµ|ëÈ@DÖÇ 5óÐ%>r˜—úCí)¸kEòƒûæ7$“?~¦¾ôšç^ìjo¨›8ͪ.ŠÌÄȃ9çrZ[…HSe;LÍ9ß‘¶åUøÂH>þGÀg/Ì0Ǻ5L{,™‚‡nØwjèŒ7Ê»y¦65oÉÜ’e7ÚÂER>,£˜e5Šž*¦þ{îä±GWΞ9)ö}÷ÔTVVfjúTæ-Ðí+绯n×VÚ¯@ÿJD àHƒAãd·}‰n¿iùíá}wŽhÙwé‚ÅVQ‘ƒ@¡QÅT™vjkk3³Lm½;þ_}í­ÜïÈ"bíò¯£)ÆýÛº@ =úI7¹¢Q¦4rãO~ùŸž­O<õÿ?­¿ãö ŠH!PÅT9ß‘¥O€3éó|€¶S$+›©>eÝ vNÙZ³–9ð(6nÌ,¿r3|Ñ…^p B£Š©>Ñ`pΟN «ËÕϯÞZÒãzœz=Wþß›ÏÔå?X>yþ6ê.Ã{DŒRXT1Uþ¯…Þ:ýݳl;4žÐ¼´¯!¦Pz¶gük]Éïd@D„þR@T1U.¯…ŽÜb°o/zÔ…D2˜™" ÷åUé àÀŠŒ*¦Êw¡ Âë~´6D'hp2.¤sï„ÞQˆ“¢¢Š©òïÂ@À³þÞZ‘ ²€5MAmÃßZE0³â¢Š©òßkê¦a¯ô òÊÚ=Ȱӥ;ÿú6`ªEDSåß…-+cþ¦uÔ5»d€Ú d¯ž0(…a;ÿ´P"¡Š©òïBUdç_Ø´n"Þëà d•Ô[ &=[=õ ” Z T1Uþû Á¼t÷N’º „´jÖåý~còtã_”T1U6¹ÏNDš›`Ì)…´Tl­ªòëÇ._v)7ßê"•~ÆSGSåÿ}a¯›;Ð5Í–oƒ/Õpf0kÃèqˆ+UL•M.ž¬yäîãÙz2¸ìr5†KjR¾Ä+x¸àós"¼fÿŒN¤°©bª¼Î#{oA ›_ =ôºÛ°DˆCmu´U¨ ª‰ÃW³ó+ÕË^²=_k}óÆë_>óÎÒÛgN¾Rë.‘qc¹íN’tžeÂ$33p!v½”xUÁ™‰sf&½…‚ôk¡J¡QÅTyœGîíBk|ZÔ6ýßÐûÙ?'ù­nHÅ𨦼gÔʧvQ>¾ñTÍý7­M/uG¿%s¯®3ÁÌ ¯2¼7g¨)f¡s&8× j€ˆe Èrõ÷UL5ðÿ°wþ.NDAŸ÷^D[[K±Rˆ*‚õiã°¼:Èýbuÿ•x‚`elïlÌ]!‡ü,õŠ4ÞÞj’]î²ofœÝ)Î.Åù0ûM¯ù,L~¼bù.ì|šL~6äy®©g몒¤/éJ—îßáa>–¯7xw›ö¾R1%f&B¢H5‘¹B”ª—1bUIÖÈ’%D–T˜iZheVzû¤ ¦™e‡e9í¿ÝšÓ…¤¾A"5žÕº²d¬%cTÑ©ªU´É×%Ò.+³šß…—ºwßoe ²§©*M¢ Š±NœÍHR!´Ðʬ´´Á4²¢˜¼éov`Ì 8ÇÍ „Àï&`©Vf•©1 †a]hÞ¥Æ0<¤Æ0<§Æ0<†ý/4 ¿À˜g)æºt™˜ö[™•_`Ò81xÏÌ€èO¶Àʬ’ŸNär G;“îHpZneVþß>FÀÞùÂWÖöW®w^= £.xæL Ö°¬@jÙ¤·2«ô¿ÈÌuƒõ'g¾Ü|ºÛ{´ÚwáFÞëa9;þ9 "®ú@.½™¥’Þʬҟ‘CpÀðùÃéS翟[}~vp{:èn<¼vuÿÁÅ[Ùãõb|T޾…àœ÷9"Ïì˜zÿßX™Õöî7´ª:Žãøçû;çnæ6+]´M§›MÍI+ÔÄÂÊ!!¦YƒR¡‰ˆ’0ˆžØŸÙ*,Ò©Ô2cNÚƒÈ",5›$©$óÿÜNtºMݽÞíÜs~ßoéÑáê:÷Bçr.çÁyráõË{羇RÝ1¥ñEæmÞ´wÔvÇ+ˆ#† ÑŽCI qz[M»ft-Z[ûóBÍðØÙ¼²IžbšóPü¿  U™h‚Š bQÇaÔRâ­qË8$.‘ˆL‰jAG¢ [[VŒˆ­üöi~§®ºjø‚xl.F—‘(˜ÂDäcLv©B€›m?™ EOâDÃr£Ñ€cÊ‚»£IÎãõ¨lnþ©ºù«šüº_6Å'Ù†çZ•"dJãVf €!…Lƒ¢ Uiîà ~i²¦U{å3ßl«„ÿíššÀ$ˆ“˜1£Ï©—åùÆøñÂÅîE½jÕ­ûj·u;yï¸2*›(BšHi jp:xªP心‡kHÞ°ÚnY¡^ü““\)£‡ø²‚fu»Iàõå»ÞšÛæèÚµ¥úÁo¶ \Ú}_ÕýR^¡E €f‚XJ‰R7U¨J”€[~Sxä2z¤Œ°@4è7‘BA\»@íÒÓ©zG¾|¼¦àÜœ‡§Œš?_ž¬¡Â"ñÅ|ãçùƒ  U¸*Öv´GcÊaáÿðßÈbÎÑDXTÕ.ŽEïüaïìïW.j—çyœºU¨ÊP+>qr×QÜÞÐö)0Wˆ$qL™4¡üjçÉØ«¥qË–ýó©BU:ûÈæ½%¥¸gã{ˆxä*pZ‚UÑ`-< èÎ_¶°²í‘H–©B•ÿ£ 7®ÅÎUS)œ¤ôG < 7ž3ëk"d¡*Tùÿ ÐÙó€Õ£±N†À™öYWl°4ž-ªPå¿ý"bÀ~ൈ¡/Ð鸤rÄi­X¾í¶Ý¿ ¥Œ<Kªü·Ÿ B–Rìáí%Ñ:^™¨dú#Ì@é¿Nvuž2?8e‘*Tù¿L€ç¢ÛéEA¯$¯ 8½Ì9(¯/‘³§e×ü±eæ¾P |pT¡*uTnî剎ä`j}Š/¨~ ,i`&¹¶FìÝù+=ªPå¿Ì [©?bӺ騃öØÒ<À”Æ@eØ™ ©¤tŠvnT¡Ê™€ÜN$¬À¥ 0{D…Â3;þ1ÐÛ’lR…*ÿÏHg'Pt‚lÀS™`ö°Ëda[Ø­[@ë¬P…*ÿŸBË Ž´¥§Mi<3̹ šõnyU7`“’ìP…*ÿ×B¬Üq0q¿$æÌ 0Ãälú®€RY¡ Uþ?… 0áÕ͘|„âX23ÀœpóÖ}:²# D‚® U¾ïˆmáÐ>|´ä!Ô[ÚÖF“™€b«wìS/7®[,U¨ñ{ïÄ C¤j?, /ƒÌ!!‚cmç€"V…*ÿOÅ+ì¢ñÞ¯|y*£ÌÅ@ß° 뉶pU¨òߊמîûoØí«gÛ# I•¶æŒðÂSð,b-’Jöí8Óyʔƃ® U>ÿ-‰D†•ÅQ9øõj¨L‡×3Pº ÕtU¬ )Q–@@6[-W.äJ®êÅzZ·o Ìÿ+U¨ú›½»{‰¢‹ãþý£ù²šo»«Y›¤¡¸±T†E¦„u!E/ t¡d H]<ÿ@Aý]t#ôúQBI’š K[=æÚní&îÎ9¿˜™­›E6ZVæwõc†ÏÀáp8Ìœï_¨²ûšAH  nÿüÿPGÖi/ÞØD¶¯ && É©Pû<¥£ ËÍ‘þæå˜ U£<Ù­f·ø;‡?>îWÑæsÿ=¼¿j›¡È´#¤rQ娖þû ™J’ˆEq¾ó\ª„gÞô)¶¸döZÛb²cFÁB[Ð|E©…*tˆệ‹‚ xÛîÅŸ‹¿m/©rUÔÔx\ÏŽN¼ô/Æ Îô †‚PMÍþ¡°Y2çUŽ*«¬x"þ¤° £` !X+1峎ƒòX*õH?J4bø´3DÖb®ÑÚÖ¾áo“‡?¿j¹píYèÅöÏSCñð‘¢hDÔúØã¥ò &Úºg‡&2˜EC£ÁP È´óPrT娲…€ž~/’Õc²fA…ABÀ³¥<ïæ/nlxƒñõ¨kãÉ[É‘ÎÐýWïFb-SsþÍz½ê뱯£{ñÜž=Ün/k‹}k솈Hk;iœ˜¥%–I¡™A´2TŽ*‹QhåÝÓØ80ãRWN{þ¡×»f¯÷”º «Du™,¼ü¾ê‰Õ½G{õ!Ì  yÓqÔÌÌb“ÈXUL2´ °$Á`bdâ7–„3§f›ë*G•Ý($ | Üh«+Þ}jg¢¤5oz¯X[Çn/•Wj¢&f¦®¤fSá©…bfEÉf!5!ƒ$m/Y8˼Ä9XÁ*G•^™Sºí†YiÔfVc0›w’ÊHZ©Ï¿r —#õYëR9ªÌ)Ý™wjˆ 5)f!dÚîpÅã×qª§j%{wˆÃpéÿß $ P¨%ˆ;9U1WÑÌ—Ó½ìFü:öêO%Õ?R`+Rà !‹;4awì¿lW‹@`ò3TU$ÿËS#ɹ›;ÀsöÌØ`~Ô¡—x§¾ ®£"Jw¡-ÎÍ”9kžïäCN@=b5XîDìêlöκÊjÙãÏÞ H!!¡¦¥…^DŠ€xQйxm`áªX Å‹ R‹)Ò$@è-€@¨¡„„!’“#ïÇÞ^ç¥<o ß9ßÂϯìï°Öðß3³gþ{fƒu©€•ÐvÅu¡eŠW‚2«©¨Hn-ÒŽ¿Üª³N§SÃÊd3”,¡i9L‘ßHKXåååMJB¼–©‹4rr²íí¬­­z‡Yét…¾>UCBB™«âÔ(ð*A—£-(´µµ=|øpeo_ÿÀ¢"‚&g$øgóÒì òððÀ) îݳ£ZµjÎÎ.ÐÊC¡b„ÙÙÙ¡<Ñ«hW@]XXÈ—¢i•ˆ©\ËCÞš3^œœ‘À;·±;HìöíÛ>;;ûÂÂD¤f5׆^ÃVLŸšç+€—CäH0!9€ 9ðÎŽ’Cy™ÃÁÁa÷îÝ[¶l¹sçÎ3Ïíâꚟ—÷tËÖÌRÐiz'¨ò.Ñg½zõš0aÂÞ}÷Ýüüü .üöÛo\»ººîÛ·/##ãÒ¥KÈ‹ÁèÅ7ò!@lÕª•˜3ZZ‰ðî©%?.úóÏŒjÕ|æÏŸƒ=‚Fåí]%éèá72œ]\þÌȸ~ýz^^îõëéþòïT¿~ƒE ¨qìØ‘7Þ‹ÁÁ²?ƺP¯7Ø=bùhüûLÂaÃG¶ïÐið^Ò$¦ûàñ#»nݺ1cÆLž<¹jÕªÏ?ÿü?üή]»†)ÉÍÍŽ\°`¶3Ô¸qcÀF4ȬšÔ]å%cžéѬ1“[¶j½zÕJ&j³fÍׯ_ëîáQéuíö̺µ«Ï$'þ ¨½rårÓ¸fÍŸ|ê§åKõe~ç±¶È å7hÐhÁâ¥[·l~ãÍ1×3¬mlŠ­Ì>x"VGGÇmÛ¶^ .+Œ:ä®ZµªaÆØbÆÌœ9“Y‹Öd~W®\™ç¨I___*®¡ÙÉ8¬À¦¹m|»ZµBqi¶nÝ2göÌæÍ[ìÛ·ÇÇ××ÞÁg=::&q׎ٳ¦#.Tà”ÿLrssóòª|öì™ì¬[˜24 g$÷8£°ˆ3Ë/ô~`@àÈWþ‰æ2¬W*ñ‰ÀLs­™»Ìד'OâäááU©Rœùøøôïߥ.i§NБ5kÖÄqôòòzùå—“’’@$Òçs3ŒÕ"\VÇý jƒÁðôôìÙ«OêÕ+QѱÌc¦¥u%ë–­Z¡ä×îÄ]@°Uë6XðZ!!,ø‚k»ººñIvvˆ3 õ†“ž[dÂ’ H`-«Bõ %^¯^=æ7ˆ¬U«oÁê…'c^{í5žðœŒs@@@íÚµ±ã@1æf‘‘0Z™/$(ÃmAAAõêÕ‰* œš5ƒxØ¡C'àxûö–#M¢¢Ã³²nKÄ œª#jV”,«µ : fp”••kž3ñ¸.n‘KÎjÆvi×®zÂúƒ¡²ìjò<00 r Dè`^´ YÆ ïMYUÄk×®#¤J´A›!•yÌËÍE‹Œ7^Ý©s2”·23 ã ¨ 呹…dŸ|òÉääd¨4¯¿þzZZêMQ ÅÔΚ5 ÆÃÇG|6Œ1è†Å‹óPÂÍ0` &3ƒW|¨1¹K 3|óf¦­Ý”)S ’‡æªÿ‹Ôû程-X¾|é¬9ó££c¯Jæ‘Kß Ê2QзȈ@Ÿ™7où:¼ïiÓ¦}ðÁãÇÇLã‘ÍÛµkšö?n6vìX°‹Zþì³ÏPsçÎå+X9(Hæ‡Ì¸‚ˆ˜œû3Ý»£12ÑÍð ‡"+,(€g¹~æo¿Ÿ‰]æ !çR¤W–R=ãÆLäH ò­×°C‡¼%?ÍÇ!!!k֬ͅÐ?Žý½råʲeËž{î9(9¤žQ‡ ¹K—.,Ñùêé§ŸV)í(DÎK–,iÞ¼9iwhž~¡ˆâܹä‹ÏUó©æ`oWµjúîÁ[Ë̼ ™·”ÜIY d°ò¯ý+22róæÍ®»ví æ¦OŸŽ“§ÒÄøãkÀ é\¶nÝò!æûÌ™3ÑÑÑ\p‹†àEChu‚Ä «âäsÀʲZØa¡àŸœ*ß´0»„ÆoU¢ÀÃavY˜]RÄ‚¨‚‚ ¥B\Å™]>¬¥I%’C²z[taIf—¿¿ŸTk禫%I³cºYì/U7ÍØ;Ý`&õ„Ù•~ýFÕj¾ºÂÚ–E‡cŸ'N’¼2Ü"¾òès%<úÒ Í©“'ªùøÆ7Úwbu·Hwàà¡fM›R÷¨¢Ì.¼H‰0vð Eftww—ºixèê[b7øI,ÔKýJ“µÒ23o‡2׉לœœ<å#KÕÑѾ €:>òŠ[äd«×«ñÊ‹ºŸ`(€Ü>‚5»(Aáëë§jv©¹zãÏŒ¼üuJòg‚”V⺜ö”i{Ô¤¡ívüáÁ½ÌL²&2y*Z›‰•ç΃£Etš lí–T"SDùù石庺ðçŸ&éцÉK™økFÒÊ|%d„¨ƒ&!¦%%>GE3'MüòÝ÷Þ—h?‚b´#&óêU+ú?ÿQ€ò§åËbc›2~âÄ/Çûù@Ì¢¼aÃúzõ")øÓ²¥±MãJÙ€"Ü>r;A “ @mÅec¨¨$Ó¹cŠ!t.¨Ð0{ölüj35$ÂCH ØbÄJ~™Ò^PHÚ·okaèС„¿¿?Ú”r"T®}H™/زÊFk•úockÕ$*4,|È))®\¾üë¯ÛµïH=®Ý»wõêýµZ,˜kcc;bä({[[vÈ“W:äÅ‹ÏoÞôë¥K)_D±¹ücPhX˜µu¦r~öÙÞRùàQ«–ij··£Å¯¦ŠaLlܦLƒÐRfÍ®r˜]P5¡ C™†5H¾xíÚµøˆÐ´~ùål.|H7àlĈ#GŽ„ÄËšì5#¥&<ÙàààÕ«W“Q€ªˆ½Ööú¢²²³ÐsNŽÎœ«×¨‘‰Â\ð<ìlmÃÃëü¸haÏÞ}6ýº1íÚ54Ÿ}FŸU®ì}øÐA>éбóÏë×µn^»6[Ë@ÚÖ¯ƒÉô?R(”¡dÛÆÇ?×·ß²eKß÷>ˆB ¼G U¨BˆrûF…‘X›6mêÞ½{hhèwß}³UÈ&[ÀsÖ%ZùB·Æ:ƒTÈ`(Kt2Zíˆ=B¹j’{|¿³¡á¢P§Ct;wlÇá„ ±¨6•žžFé´þýÞÌßzVöÂÉÓêþ2”EB’(Ž];Ð5ƒqA'^<âÊÎÊ6µ2dÝî ×ð¬¢É5@üçèר akgoxÉ6åªi>ÀBUbg œ,/s—‚™€šÞ±™~úé'$gÏž=P Õ ÿà÷‹!¦®ÜùóçÑèNØ_ZµÈL}CM*=uÅOËÝ=Ü xÁÕÍ-8¸%\ÔÆ?;:96²Å©S'qÕÃÂÃìí‰é`jW®`¼GŸ¾ý(gsöÌécÇŽŽ1*q÷®´´TàRÖ€ô´k 3Gä¬ÙÅÿ˜?¬±(•››cˆ:ñ\*7TÀ/ÄkÆž2M1¦\àöÁËž*fWß¾}yË|ÁŽ;J"¥¨¡û³^ÆXã#¢YÖ0’ù 4£]‹ ¬nçßîÛ·¿d¨ ½×QÜbUBëÖm¸v؇®Ýºs}ûõG ˜[Š'±KˆWÌÕ6mâ S·ÿó/ ±Rˆ5G¤T/!§‚Aýÿô¨/ü«P†ÙRFÍ®²ê]àêI¤ ²"áB®MK.ÔWb¦ûõëÚ8d5$D1Úæë‹ôèC°Ô•Lfä Qn…gοÞd-йÅþb„¥îÊ‚'<ÊðÆ q½¬ ùY„á i7f#·Ã UÖ ª•Šj\¡8‚ê•qäV¡R:O•PÒ0ÝFòL¾¾>IÇNÀ%ßלЂ·€Â–ýìÆeªJ¶™à0Q-©âR_©k³ªÙÅrØÉ@8G–æ›–bƶը)×´ª0§FHYr!<"¹UÉ{Îb²¯Ês¾´ƒ@ôJ­òÖ ×6ii×hÊo¼Ú%þ"2Äo.f ´¹AVDag—“›ëHkÃÄ3Îq %ÒW¸ šôxàš]ÅößË„.‘ÌÖþ!åWØÿpÛ“×\¤¡ÓáëH( 8(˜àØXãš]&òȬ٥ì¸ze>‰iU¤F¶,ZØ ÅŠ ª³JeSLô~²&z•Ø4sv’RŪ‰r”Uá¡1»,D’3g’)Wj±Èe-yYβ3‹l‚Ùe²^YÝð8»5'‰ý‰'2³r}}ªšÚ‡tÞ6+ÿXÕ£9q"É×·†««;¾ ±ëL 鸸Xî&X®Åª%qÁÊ—ï‹Õ=2fwÁ&ˆc|+Äws¨“¤lÒ€€àÀ@b¹¹ùÎ.N‰Ànaêc©‹uXàú®V™]×R¯V©RÍPERä9ù¤ô´Tv*Ú{:pk¢ººæØ O¤Zì"/€WÂ]/Å,dK2MMà+È–G¸ì_$Y¢b„¢ÌÃèÜ]³zµ“³Ó“-žÞ¹#GG?ÿ¤'$(†BÃdÉ¡+Ò”¡f¨P´‰f Šrj›‘I~@\ lÒ›o¾ÉFcá%¼P“ÌrΔS"} ņ3Ám4¨p¥š¶•sÒþÎ4rwíì.œ¸;vŒŸþýT¯?ù‚†G;w&tïÞƒš5äKˆhGŒ¸V+UÈÒ—­ïÔc`ÿ&-//‡ÔÊšuåUK"/G B"m}úô¡ZÔWýöÛo ¶@$/AÀ¡Áý¡hEF´¥ˆj¤À[öÉk›Ù%¹2xp­©f”˜¸b xâkV¯H>súLòig'§ÄÄ]TªÙ`â„/F¿úZýú HhO&ªZ’­íÁûG ‚{ÖºMüÔißë¥ZR95‚-avÅÄÄ@S@ÛA¨!_Œÿ×­[‡†>ÈH‰@òä7Þ Qå¥ê Õ•€2åç4Ï©á! øl$ë~øa5@˜„W¯^ñ«á_Å» …ÞkîÞH§t*qÑö´§ÍoÛví_õêÒ%‹?ûü+) j²$§¦¼>xtnjðhÀEg¸ž:u*Õ?D±ñ1B'M Ôp)0‡cŽ¡‘}°1ÊŒj>‰Œ ŽLh »`þÜçúõ?wö,íp†Øàî~OƀFpÖäœT;‘3oÞ|iÐ/ Ä“U"³ÇKu·‚¡"¶••ú®5°Âhp'µ1Q–ð«ããã{ôè1iÒ$Òʘ!XÖBµe0¢?vìIm[dÌ*Ñ, Q݈ˆÐÐo¦}wùò%kÃÜó8°_tLÓíÛ·?~ Y;¼6½@ ®¤VQXÄÉpèóó @‘øL; C(TT†Þ½{£ÛdÖvêÔ‰­'ÜJµ$º½Aì=™SŠýåLï;ÙcAa$aâð•Lw>ÑvÍQ„H†bFR»‡úZp<¥H 6i¼ôÒ`®HXX8KfU_{(3Âïð¨²ÊåÔ+¯ž " SÄž hY&Sã•·â by‚y¨†©È¢¶5"z€¨òJ†`ª•¡ ïî×ÙÕª@¤²2áÜ0ÅÆ'ªßÉÃäÔ¨h9gñ%PzøH’ƒJÀ’Ìü3㺳‹+zªØ®x7§˜èhÙ¤÷Ðúà!}•̆ÖE AzF#n §¦RDµF1>³feX‘'»÷“¥Z’NGÜ)—AKµ$yeé@öÿÕf‹Ã>Ñ…ièK«–¤Rk¦u¡Œ0ÉE‡j€ .Iw(6Œ MVK"P@µ$;{GV‡eµø…®Î„YhEu!ˆ‘ø*¶)—ÚîQ‹Cµá“E²JW̹Ð$Y²d8‚Bü¨h-B—üg“.3cØÑÌÙÆÖæ^ú‹ð–QÝ.Djœx^ÊÏòø®Aª\ˆx‰jIAž^xÌÆèÜ•°œŠ››;ÏM×f J‰(!Ä\ÌU~OÝ*ž¨²ððнâ¶Ë\)§$Õ"aêììt!Ò00J Ù/ˆá-ðBR2Ÿ;‰ Î2á‘Õ¥”‹´¯D¤DÝ*YY/ùˆò³.Î.VˆLðDÉ_Œà£0'ùOoèö•Ÿ—'¡=UMʦŒNLñˆ£H ÝM¾üòKšD’%` A°FÜòö³fÍâáJ/2(”™?>«Eä…·ŽhHúñtrÁø§ö©<îsKª%}3eY¤‡ãRÊ%7ìxË6døv¢&!!L¹ÀtpnÊדV¬\>göLä†HyŽRñòòÝ ÛÇÇwÖ¬épiÓÓÒH…yzzñ·ð!EpH¢,Ô6¿GC¤p+ÿrppd3;û†)Š"1T^3Q›D@dßûÎ;átQ¡®6¹;ê'Aœ„²yN%0GãÅF4Ü¢çÎK½±cÇòœV(”Sb*Њ‡rJde(ØÀ€Qm”°!-Š ;'›¾üIE%lÿ=åRŠm§N]¨Ä÷³k÷9ÙY?.^HÑ‹ˆz‘dú#"ê5kÞâÛiS‚‚k :˜æªçÏŸ[³zeÆð±cIíÚwg3¦»wObLLSl %GÖ¬^ÍŽæ~ÎÍË‰ŠŠÿá¿ûõЩSWLèü[s' PÏfA[·nažðxÀ /Jµ¤ŠöÁCˆ¢¨Þÿ}rMcÆŒ™0aIah I‚_ÃJ ãÇ炃Y¸råÊ&MšP¦r¹>Š7 ó †A•éûöí¯`‘© æ¦OŸN™9qµ´:D#"»B]b=sæô'޳daß;µ‘°Pà :o/##¿|ùR@–°­MÛ¶¹¹Ù7nÞx¦GÏíÛŽ9äç°õ·ÍíÛw€°xåÊåõë×¢N1p¡¡áô64 .â§fÏžߎff7^¿n5UoЯð?…Nð÷Öfàø$5üü6oþõä'>ÿ‰‰jI%)o–+N7z Aç&ˆƒR³‚5t]ÄòR•®È£œ’ä‹é‰GËÞ‚E^AÃùè£Æ‡B½j8hˆ@!F`¾5Æ7Fdäéݱî.6Ö6ˆª­×®YE3J’+qqÍhH¶uëoÉɧoW¯^ƒêÕý0Á¶6¶Gz¶gïæÏe‘ ûÁÑÉyñâ…ø—¸Úiéi={öAqŠOyñÂEH11±LäÈúõc›6Û¸a½·w¤ÊO‰û{95??ÿE‹—:t€²q÷ Û sjTè—v ª ‡Eè³É“'S›IL‘Î’Á“'|%êžP˜á˜7ouE¹~ýzšãI܉ZåÌ_Á[ͬ•9Q›aö¬µëÖµµ±a±Rp÷n~~nNNvËVm@³ÔÏßc @ MíÐ^x>@­[·îsæÌÊȸδttt rÍÇ'QT ’vdýßNr=#£:uéºwÏn@ÇrÚ°Í%‡‡°È(ÈDÅ0Ùôó·WKb½Ž¢qvvŠoOµ$µQ™f¹òßãübCq{™ÐP3pà@œh.0ðŒ¡<ä¬ð£1ÁpÀ˜‹ô*ã[ˆ±ÈOðá&2/_d>ÊïKÜH,WV¼ùùy#F¾Â,$ôDîlùyá…Î..8|$ø z)%ö?UWXãÕ±|®üæ[cY#·lÕšu e×@Ù?^!^>¯[7‚Q®Ñ([//O~Üà\Öð~5j€BÔˆÎØß‹B‡kˆÚC73LjHµ$ACL³\Å/¤Áhnˆ,lð’NcÄeÿ„´‘gå!›LáJË;æ(_¡GY¸ 'ÎaÿóJ‚8²ÈO XXþ®n„¼®Á2Þg4Ñ–‘ùFü¥I“iðNi9Y–q-uxÎ\mب±HÕÕfc: ,ÊGJT2X(dÐÄ>'ÆGŠ¿‚Ïÿöä ê\ÚSJµ$NªZ’ÀÎt]kµqô¨Ñ(<Á ð’'*‚(&U¤#Þc$ÆÊ’‡">¹ÀŽû»´²ýÑ~A!ŸtÞ@ò­d¢Eóù{"ùùæÎ©Q€3ÎJÈD2´†­IÕPÓÕ’JVBzàÒGÆ?hb¥Î7Kµ$ㆹZ’å(ÙEÕd¢Ü‚ÎÒåƒEþoêî+4³*ˆ¸½÷^°‚hÄè‚ \ćø`}Ð÷<åPÌÞ3Wý¾‡9#ôd˜kÖ/ýnK¿Î<ÊÆ¶.”É@åKH€å‘Ø dÖ®]?W+‘”NPd´á pIÂ85Ƭ@‘Ó_xïå(ÊéZûø ,²CU¤NU°5ˆhl MÆ<³ª_ËvŸÌ­1àY+Ó¦³l¥ÚsEæVhN|ÔCCC½½½Ri 4|Îx,²é‚ µĪØ("Fëx¤IÞÀÀq4‚ðñÜ›šš2óäääÈȈe‹¦)1bllLF¨Æá&ÔŽ¨ ÅêðÌ£d¯ á"’¤”Tww·*===ÃÃÃÊ_çÁÈ3RSÀ¯iEáñ«*Õèè¨Ã³ô –ö÷÷IR}…™™™‰‰ ï2 räH*äESݪv óÃÉÁ„¿$’2-´ÍPüÛí `s+ V bžÀ’Œ+VPPŠÎø“E+޼1¤îÔ¢îðêèèpKàDêè( I|§§§}aPJ“úå“QöÃxŠkÑwb¬%†ø0ù~›Öà€è!Êš›ßÈB£G} @ÁAä >Êú`9ìËTp…qáÍ´’@ÃHvA²pÀ(iO ^¤ž2K$ɵ§ê“ËLK×,YÂv´3¤ÍÃÞqíÀ…HI¨±K(„Kr§•?;p.:¬Pð)Ê$£ÓEÕ¹Å%AÇæÙYú<²úúú@““QWdßø*öLÎ|är«oº×SÅíH%hRcö)’*þi¥Ñ\¶lý¤ç‘J ÓƒÚ²ã¡<±P…V "ÅÔ¬ >û¹¹òººòrr÷¾¾ò,,üxxözzöAAúFFú……ö††öHHú%%üÞÞïKKúŽŽõääïõMMúNNù11û**üªªóXXù##ýäfì–%IDATx^íÕEbÃ@AÍ®˜efff 33ÿÿ#9Û‘mA|›~@]›!»È‘Š*ª¨¢Š*ª¨¢Ú+çsiç…t®PîùWõ|tÑd]– 9.`oº ¦¹àKºWuR8k3OwÙZèײ—¦=œ¸W롹«ŒØãJloª»Qa$ZÉÛAç*i=À™ CÑdω£NØ qÛU ¯æ·B§¼›…mjkÿ­A\Õ8ºomV§ÂL¤àN*΄éz¯×zl¼À:UÍ„)ñ gT{ª‘ñ\*R;Uþ9ï*|=œþUA)ÊÄWrQUU‹KàO)®­¨ºõÁûîÓЗÕ÷/)»|ª¨¢Š*ª¨¢Š*ª¨¢Š*ª¨þêéPÄC²IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-clock.png0000644000076500000240000000607012536324510022350 0ustar philstaff00000000000000‰PNG  IHDRtsÆý±ÈbKGDÿÿÿ ½§“ íIDATxÚíylTׇ­.ÿ IqŠ( `J*M…$$ªTbÀÊBqÀ*àH$jböãb¹ÐÀØf31H@JŠ Þ0f© Æ)˜E Æ3ž}»çõÜwfî ã™ñl¶g†ûä<î»oï÷{çžwîM c ˜:‰‚(û¬÷ÔycïU· ¾‹ßµÞ;ú=&{| r.Ÿmº¼ÂοÂ/‡ÎgñÞÌd2¥H¸®„+áJ¸®„ë.8Ìé‡ìv°ÙÎé+q•?¶®ÿŸGeg‡ât*ŠÂ>Ñœy¨q#}E=’"á‚Ë h¡XpƒÃƒBS;pÖ¯Wrràã!;[ÉÍ…¯¾‚£GáömnÔ´%î î«Ð¡$\ϳF‡Ï8Ò!Û¼s6l`Ó¦AZŒ “&±3XV,\ÈæÏ‡Ù³!#ƒÏžFfsæÒÇÛ@”Ñäñàܶ<épU „•ÿ56ÂÔ©0p Œ Ÿ~ gÏ‚Ñ(lܲÀ ¸o{;:wÄ6 >únÝbnÄžâÉ„Ë~ñ\_ºhªC†ÀªUpõªP®¿h’67LU޽%˜¿èNž„™3aÐ øì3¦ÓñzÜF= ‰ø“—‘ Ö`€ 5•-]Ê<ð`U9>vUbQkð…&v9wÞz‹‹Ii©«†nž8HòÃåo+àNþÛÜ £FAz:´´¸a=©pç«lkcF#]÷1I²AhKM ¼ø"¼÷Z´K"p+õ¤É×c³ÕÕЯ[³V|­)ä+ø^_lnf÷ïròáÈTÍf˜2ÆŒABðué{Ãå3"»i’…ƒýx¿-Q…Èp:{–ݸ¼ÝÁ ¡øäxöY¸pÁ%ÁÂáKJ¸5øæèÛ~ü‘‘Á Ÿ,ÐE zœÿ=»|™uÙüuË1?Ñ×_ÀÐÚ*ø2Ÿ³$ \²Pzíôé'O2õEn·4Xl쮢‚ýðÖAb t@º‘«Ws_ ]:Õpí—Tp {÷Xj*lÝê±ÙÎ ªÎžαeQ_¯ÛÐeà† Ä÷w¸#pâë½GÂÃ%;¢Àë¯ÃâÅDV4¥Xpùâš5ìÈ‘,WÌÕ†Ÿb±0ô4rÎá<$‰å’ às=bS-H %~èwÙ2¶?ˆÅPBŽdæj#…=ó Ã&yÉc¹d¶h>ii< ãí…7SDÉÌdååÂPBçªâÀ>üeeñ[+â W˜mQŒÂl=˜~/ß{8MžÌ6n ÏréDªŸÇãA(÷/z^É! ŠVËž{ŽÇešÐ¿DPd—^{0ÕŸS|®£ËRÈmåJxûíÇnpÃ%ǧ͛aâD¦þ%¸3à"øâË/³/¾Ûr©ì6^6x0kiñob[®Úeè$äærFn÷+,¸jø@áoü+µñ²\·çÀ¥èÕW!/Š ¯¹ü­u÷.0W./J<Œ¡Ë‚ÙbdzE‹8\ '†×ýVd(ýøeH`¸äíïÝ cƸB«>"\,£³1hÌžåò›ÔÔ„êÏ~þù±wBÂ%cY´–/%\¸ÔdÐëYÿþÊŒZ®»•È­õ¥— ª „O–¸²Àe.=mÛäoF ·­=õ÷ÆDð%¸Ô~ÿ}P½÷õPDŽž2€Ä€«¶2ù7Žw np©îÞ=øÕ/áÍ7¢²\l}à|Õ*¶p“éµÀè/á\1N5Šýô“+!!2ËEû¿~¥¤(¿ÿƒû³šW6ƒßÉï*úö¶y«2y:}Áã-åôi0›q®D1‰`|OÂ…`èP†vq:9¤xœýÙ”?›,&³VoÓëF#ÎíƒÓdÂ9x½ÁàZ¥×‹,Xµ£áÂÚªÏ_9f³X¬&‹Ùl¶TU9²³MGZ¬V»ÕŠ5V«ÕfÃõQÀ blêÄw·XzÁrU­äXÑo×é¢ÊcvÇù•ÅûL(uyÞÒ‹s2þó—Ìÿ.^r*#ã\fæõ%KNfdœ…>à…éÓ©pbúô ³fñ´içÎn™únÓ¯ûýëŸjêi +Ö¯¿;vì?¾ü²|÷îºÚZF³k×®ÚÚÚ¼¼¼Ý»w‹BMM ***ª««sss÷ìÙƒZewüÏr5i »›¹Ë&ý¢,%¥ã·}ÛVh» æ‡Z»NçD#ÕjjÁÖÞŽGG‡MëZE5X°¶µcýÍ¿ÿöJ½Õd2›,z½Þ\RÂêêL¥¥&´G‹Z£Z¨Á` ÃÄþ<¬¡U÷6´jÿþýmmm>Fs]N@kAþ•G×nR~“ª þÎý«ÒaT¥ÓŸÂ‚?åuªóÍ%^š‹>×8GÙh*,,¼uë–ú¤:Ï[pohò;ªã1ÛÛÅÅ,u ûÝ`öÝw®W½Û•ŠÈ[P_šay bËÇ?zô¨,7&~.¿+ª¨ÏÎn­ÜÇã[`§4½âbžÈ4o{øÐ;ùÃ7ÚÛ…Ÿ D¸UUU½—Zh FÕBóXn~~6­8k‡HÁgº¨æÎeÕÕ”!,Ë1†-4±åÚµk{A|b î¯ë=\u‘¾ïºRt:¨¬Ä'”iµ,\[2$±…xWTìé§YSS„Q1oY¸¹oˆ ±WV/!Öjáþ}?9w>Q± bë}YðŽçæåEÏõk¹žµjI¤>*!|â¹M â¹½/ 1û®wª¯Oò~·~‰ˆYxì9dá~C $ ½û -.d!&_C±ÜþúÛû²“¼…(ávSÞBüÈB´7ËB÷eÜÄ…,Ä$W,2ËíÖ\±x‘…è³#€ÛÝYŽq$ Ñæç†) =Ÿ/²}fyX–Û3™åq$ ~ûD ßûD„ ·çúDÄ—,DÓ›'YðíÍ“žÞ½½yâM¢è‡ÀrƒôCËÈèÞ~hq( ö  ×ÊaतÛ{PƧ,tÑ÷7'ÇOß_»ÕŽ[ž_¾¢µr¯Ã©8mv﾿ȷçûþÆ©,„Øk}åJÞkíZ]åÀ-[‹×w4T«XÞ½Ö‡‡¡C±mÒ£½ÖãYBo©¥¥Á›o8gÌTV¿{éò¸?Ÿ™¸hA¦õtÂxf=šÍšø’s߃žo!Îe!Œ‘Bþ^èÌ]e9õŸMÑ|¾†mÚè@O½×^)$d!ä1nøÂé³§n߽àㆾ)ôð7‰" ]ÎÄÇer*ǯ6·Øù¨Î^)±d!X:ÿ’nµ–mßÞˆN,Wðâ¹Rn(û¹¤¤ñÛo¯-[ÆÍ ~à&®,xtáøñ‹óç›h€w &à&¶,¸¶0›F޼ƒžmøŸy¤,ƒKaöÿeeݸrÔ¼ý°úþJYj¹8¯«k,*j¾y“àJYˆ©· (e{ö464¨) ±²\õ‰Ãÿìµk׺ãFÊB¸«ùüĉÍÍÍ.ÖRb—t ´´´QU@ÊB¬eÉJY² eAÊ‚”) R¤,HY² eAÊB²W–›<²€pŰq29r$d¡¬¬ìرcV«Of·ÛiÄ1¤ÖÛC¬¢½m,(¶¡‚Xå] “Òx "xŸ¨²pæÌ™mÙ²¥¡¡aݺu%%%X(((…mÛ¶á ÀG ùùùtK°¦¼¼¼¾¾k¶oßN…;vÔÕÕi4š;wŠBm§ÁBÄ!Xc„`¡²²ßf999F£1-W$–¡ ã/Á“¡íˆ<°†¡ÕÐ*íû ×ëÅîb•Dìå³ß1BÌêä¤n¯=?€P¬àŠìZ%þ&ïα l¹LþÏæ$\ W•p%\ W•p%\ W•p%\ W•p%\ W•p%\ W•p%\ W•p%\ W•p%\ W•p%Ü$†ûõ îõIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-compositiondemo.png0000644000076500000240000016712712536324510024500 0ustar philstaff00000000000000‰PNG  IHDRæ¸d¼]îIDATx^ìš[ŒWµ†÷¥®]Õ==»Ç3ã™ÌÅ—;qLœ8qB,@ O‘…xAB„à‰GÞ¹ŠÀâ®ä‚°BdHÈ;$ÏÄ·Éxì¹ôôtWWwuÕ®½×:ÕU:ËËnQ¤™oªK«–þµW•ô¯‘zWÓ=sû±§îäÖ„*A‚L3$Jþ’j|'è’ëW1@†4 ˆ©zC± J ã< ®4 "RJ×'AAÇ$œñ«¬H Pþâ#é§¿ôùѽß*ô˜;Æ(Æ#oQ³‹šn!¥ÒöíN„dqF'FL[Ó+T@5N!“ #[_‚Y—ô’vò±D§=‘à‹gôUD¾r=áC„5›P –– ªÌRÉGôM_ʈR–%¥‚ÞÞþB¾ @%ÆØje5Œe“C0ŸÏ×<Ñœ}œ~èÈOî~ðÈêÂÌPëO¾q‹*=µ“þ¥ù©‡9# "]×5+¥â8F¤†Á„P™‰5 ”`™‰¶É¥‚X¢eò‚M–×DÎ6]jMˆ1 ±s-ï4Ö(Æg´ÆÉR”`( Ô«ùŠbÂåŒD’vÙ]!ac΂-/¡uœo ¦7€e(6AÂ9÷}Ïo,»Žé¿S¢”òýÈ4y.g"AdŒÇqK6XUJ&"\^žs“i Œ¾ßŸÜÿ곿Ób.,¬"Ù2Óº+:ù†Zå¥ûkõ˜@IÜ1’»wgà×kGOVqÌ1ÉÛ‹þØ #$pVë-ÇÒK½Öì\ÕÉYÃ[¬Ój½«7¯yHW`°\­™[YlôÞº{höB%g¥~{­,­)CcßøÜÈ÷~yüÐÝ&¬þô/Þ¡;¦f/”cÅÆGz¼M|ógLJ¦DAÐŒèö’]­G–Š$q-Ú7 06f曦±7¢æ ȆaÊXØ ®#0PÐδѢ(È9nuyþ̉£IªÐ?¼ëއp¥lË  ©Î¿ñÌèÍ÷Îϼ0ºë ¥úÂbUJ©…¡\Z®cÜ úx(F¬S?†‰¯1O#r…1Þñ w¾óè¯O—·:°ëý+­À7„{øG¡k¯ŸiŒ ÷4ÖNîÙN °iUõç¦FûÌù_ýÕ¿ëž¡[XÙ–g£[£‘ÜÉÜp®ÐSÜjÎã¶üžX´zF9xûF7ýéés‡¦œ)ë¤3lùÂÏ¿yyÁ,Ä_yÈœ_¨Í̇v?üíô\cl÷X.jág¼Ã{ól«¸uÊ¡•·W47gÙ lB™Šƒ¾ɘÉ4;¹V*V²åû-ÛÎõúØÞ¶_~땦ï×}Uó«”b*K œÜ#·åèÏ¿¾ç¾Ï2Ým¬-‡ž†±‹h­²@è5 ÝÝÃVž^ r:GJÑÔé³äœXíÏ[2ðWh¦8;}ÚŠ…ˆ„t]§¾Ô|²Vš-ß#®-çþñÒù/?²o{ÿjÜZý×üÚÄèV“VYV=]W hTñô©G¾/¨œ"fï‰×½Ñ’=w~vÍ \ *×Àç­Ë7\×µy«å¯œ=szæ\íÖñû¦ÌçŸöøË§æZo/ë\öVÏÏ/y²ï÷ç>7=2¶£®úž|þ²ÒzÅ'ŽÍ×j5ʸ¡kåFë#û‹Ï¾ðot¦îÛƒ'g_{å-Uo© ì ÷Çf^Ÿžß;µ³ì³ß¿DGû›‹z öqºTƒžb^ã„ '€M0ý–,B)"I êIÅB!€CÛÝV¯\ôV/Ù…a¥är6Mw©T›8l……½ƒSµåsQ+T,[êŒÞþÉo'î§á% Р7„•ŠØÂ¹–µ®7%ãB!FqäónE,Ý Bªß¶­þ÷žÝrÓJ‰f£Y,ö„a$Dä8Ž”ŠsÖj…†¡†Qóê…¼«9ÅX‚iê”dMÖ^ ‰¬æùy7§éºçÕ)!=7h ¥b]×£(2-»£7—‚fœ[¬‡ý7áé™Ó³Õ­=Å-J)JÉFas$(‘ˆ›ž“s˜f¶“ £0%jmˤLË´" cœB²íÙ ºf›:續C®›ªÙ aï ôŽÏ|w`çáX„éf§j!á•H2gŒP JQF@A*N¡¤Ñ]ÇJÅÈ—JµUŒµõ”"AÆ&pÎÓ]0ší¨´‹²°ŒTÃT[ ‰8Q)¥Xº0Æ VÈ 5âÖ£-;·P­A©Ø¿ ”$l 6¡„ !dgGŸfX¦Œc%eúb+3ÕM33m¦’RÉXÐ+Œsn9=«3Ç´òòÊ‘O”?õàÁz=H]HRÞèv&Æ$¡ïÑÛ$,RÅ-´lÇ4õìù7 ›Ð‚kïš¼j–({G òyûO½øès+šˆDŸMlË7]Â9ë¼4~ŸÃ¨EY! "¢“ÿ*›të„÷‘sºÿ1…RÊÉ;}v$"¡QJ%0 àœ$`ZBí®[÷¬›¼®AzdÐ.uÝ »X¦ }w…ï=˜”$ÝV½?Æ¢»;W mP¥TË Õ)aŒ"¢Æ9" !‘dlBé»Ä™a:Éõ½fùº®½Îúø=AGÔãX´x#}3ó0Æ:¿Íé䓸ºvê”dÊõù«V»–8C)ÕÑ\Âþ_ª]õHœójµº¸¸Øiv#hšFºRH—pÎi—ž@D¥é–BbvH‚첓¹êAIL“´“ìÔ’w)É””«VëÄ×îä Ž÷Þ}OÉÉ©´M2)×ÒgæIœsþüyHK²3¥4ÛÉ΋#b–¡)Y;ùΤ»,,[31[¶Z’Ì,‘i:í±T*MNN^×Ã4åͺ‘@Îy½^_XX˜˜˜°,ëFÌ—=X>Ÿ']Çq]ù]×圓.Iª+ýÿQ÷î1–dç}ØïûΩªûèçtÏswfg—»\.÷aRIK”DKÖƒ6";Vü€+0â@@À0ò0’I'ù#9@øØrl9Vb+‰eÆ–(R4D™/sI.É]îr¹œÙÙy?zºû¾ªêœó}9¸çö­¾·»gºggw©o …S§NÛ|¿úÞ_©jüïEçf?3Ö~‰Ê“zxqp¾êõB9"ï㑖żC]“ó;û4™p:ó+u ?û»5êé x§©lå¯þê¯Òõ_Ÿl·¼jâø<Ïâ )Šâ›ßüæo¼™Ç{#­ËË˽^occ#zä‡Ãa|<±¯s...Ë2ͤKív;ŽƒAÜ¡®kfN‹OŸ>÷ñÞGN{óÍ7ã9^®¬¬cîܹ7‘,˦¯ÚÈÆÏ=÷\BËÁÊR¨ªj¯$±s±7n<òÈ#ñ'¯8é˜LJ$!{xH¤G²8RénÑ©Àî ñaPn Ý!ÊaV`2XsV1`U£`+YÀ !cò WòȱŽá <Ô3¼UŸc *rõ.ÛÁ†G#È;ª(¶Êúÿèï|çßúÅã?ñSZŽò¢ˆ\øµ¯}-r6i/D¦üîw¿YÈZkŒ‰,ûÙÏ}®Èó÷¿ÿý‘â›ÛyÏD ÌaçC‘åâSDÔét"~Œ1"²´´D®}ùå—×××™9î׳1!„µµµqÚ_/ÞŠøÙÚÚŠçøëÓíÛ·?ÿùÏ3ó=t§(Iž|òIÓþ @D¼÷¯ñŒCP:ì;;êút~0'Ý^u–ª4õ'ì¯ì@ÍxöP©Uß‚šÐþ€VÆ@ B‘úx(‰XÓVÛÖL4¹šê’ê!W} Ò¤†ºdç©…‚ Ò´)TÀ‚w’t‰rWãæuO(²ì­·ÞúßùÈÊ‘k‰hÓBÕZY³ßïk ˆŠŒ›8äæÍ›¯|÷»Q\Teßúwïž6³Á­¢w±µu¡µýz{û‚^£Ð ¬Qf5†Ø#$œ¾#¤‚êd@!„È@Qyæ™g²YUµ(Š/}éK‘Aã@DB‘q#HF£ÑÙ³g¿ÿýï//-c˜(BëÄñãÑêˆò!"Ç0—eY¿ã! ¢¸>r<3[k{ì±N»³~’Q×tŽ»xñbÄUDT[ív–eñ©ˆ·(4 Qñ3?ó3ÖÚ{è ±_ùÊW^ýõgŸ}Ö9ß@âo€:ç|8:‰Ê€à™W„ø^ü5‚Ê|p·ƒÜ-qÜQÑQ TD^òNÕ}¤ÊNÔùz„§¶ @4êEÆUR€…­04Ë-J~"t!«8P¥v¸ÑÙúîÂÆ×WoÿÁâÝ¯åƒ ¤A•ÇgÞl`_ü«««QÿIÊ÷¾â:©š"1!‘–Åw¶1†™#CG®uÎ¥ùK—.%¾råJ²§£öWF`$£%ʇäJ‰pâ1`¦2¿ªªBÜ-­©ë:©Ó{ÖZ?¦cÇŽ¥Á=Å݇>ô¡ª”åñ‡.ÍæŠ!·Û†[ŠE…ÒÞ¼ÒŒ ÐC niƈX=‘yw´rr`Ö]~ÜSG”áÞ#ûc$@ ¡#E J ({À+ypÐàIÄTùÚpý'®¯þÎþ•bp{ùο>q럭ßþíÖè0„ iЇ xGJHÈó¼‘ðûQrEØD~γ´¯Ž=çVš[™Î÷Ò~$yœšý÷£$pÚcñ’Ê~ˆ Ѽu޲^DÃ3JÔÑsCà)l€·˜—2‹ˆ$*¦4ô­Z[²žÕÝS®{Æek½¹Ú³{‡ *sE)=¦ Ò ìHT•”€…ò&¤’Vª’¨ñJN%pi×{'þô¥µ?mßY¿ó/Ûü'Ÿc S`L,£‡ ÐìkaL÷ðdDKã…^pýùá“Ó}÷On€=NØ÷šv¿'¹^D˜É B°!+²·.%-•ОF¢†_RL" ÔH ”GÞÝ<ñTyþÉÓÇVŒ…zpp‰³FâyU¤ñtÓPCšäÕô[é ñ)ÒY5…ËD2/âQ™µ7ŽýÊ…Õ_Y~é}[ûÜàÿ²2AÀy8£q$04to3¯,Ë‡Ž£n˜”±û>n­%¢:HÌɾû ‰ä”™äIÇe'-ôA_<­uÀ]ÑJ)£}À%P!±5R¾=mÖ^;ª²ív,J!½ñãA´ÃúºÜóC"2cT(DPmgJ‘ tŠMˆ˜€$]h’“F $>÷NÁ·Š»qâÇ^©þÚúÿóÕ¯±z%NzâÂì³…ªÅ—ØDåR¢Òå=4¨ÝØ»@Dö²õa‚t1˜ýaµæmè]kà¶‚U£DÛ¦Z¬Z–Fz Y¡¤$¤WYz×°±P™ìM‘beÄk·\QP-ð¤€NT«†›UJn@Äð© Xž!qTmgdZ’wëïA3“.Ó šBÞ…•ªÛæƒ_\ù;¯û_}nô×ÏúìèQÉ8z¨HzŠ"`¾ð…/D^Œ1¿{IÔÄ•QàÄ IIU× ŠQ<ïÜ}Á™þìÇÆ”|Áï9$æ› A÷ M•jOÒMaL£×šgyXßð_­Úf‰nçú–³Qg¡3QŸôÐÞ'¬WQª-îXw™„Tª¼]©ª¼îC½²Ápâ‰- `xðªÆ2aH܈òEÕ€x)ªÐ@ªIÇ¢½ŠScm7Ø{¨R0 bU)ônM+¿Oÿð:ýädzÿ$£¡(3ŽŽ <@ûà!Æ >ûÙÏFNîÿ î‰((Œd G£†Ú¹(4úƒA|ýŸ:u DI)Š!‹B>Îõˆ ¼÷ιx7 ‡ŽHñé Ònµbpä•£IŒ?÷Ñ~Ô9÷B"A‰f™ QL™w ,œ®i)E;JÐD‚bñùÅÛ_¹•]#áöâûª›Ã’£QQ4ÍéPà¶HPæºÅº j *k±TXE} Û!…º õñaòýpNPP‘ ¤&×§b ñÙÞÖìèBÀ<€]ú ûCÓ”®§¨P!­r½*¿ºáŸûcíoÉü@Ô0‚täP]5š­µ6&öÅÄÐ|ä#‡‰“ŠHä쯿ø¢ªÆD !Š‚ª«ª @”3kÇŽEUÊ{o­›[cVW£XˆzTš/Š"®Œ?%IJ‘ŠÈ|þùçÿÈ /Œ§8©j ~ã߈ç(©¦Ƚ=NüšFIî­2©6/‰iþçš1q×÷དCºJS|üŽÁlSºu¡$"*D$ˆÑèÄ÷I1K¶GŠpÇÉ”!ËÌeUÕu}HŽzÚSO==âÊ{X)¡‰Ž’{{¿ï.6xÝeÀa¡î_´/¼•ñsYµ<¤Š”ðµô¡U÷•ÒkP¾òãk¢ÛÿÁpåÉ¥ƒþ;se( ª·=np6…ªsz) O-’¨$ØÔef[±éRÜ$„‘,õ NP‡ˆtªç€¨h= ê.ªMˆ ±?™:Z…¦šþÍ"²ûR`2lŽdí·7ó¯ÿÊÙîç*Ž +<ÀûÛI:¼Q¥J´›“†ó°œ“yžG+¹¡ï‰v|ÕÑl‰qX{¤Ÿ9X3k,„½òtê²ØTŠl9ël~åz·¿ØížÈÏu†EÙZÌQNô^ÙmT/òG2äýâAšÑe÷nNV‚ö ¡Ì¥ÜðºAÙZ[YˆiÔwe2E¨ € 0Ø Îi©¶©Üæ ;ïþÕH¬G¨Á†ãoAH Ð6g7Æ£a”wØ @é!kÄ$@=$@üäЀà¡Ó™@“»!P€™s扲 £€â³¿ñsù/?ºðÙ£¡Âè„M„C“µöñǸ¡º”¸}x¥&±Ù} ì^E{%>v$¼F·7z0%¢ýsÑi€ûQçñÎ…§nnþÆ…\‹Ž;>Ün¾o+/2åœå¹W”¹{k †òµîèVU-—ÆrBEÇ1óû‘vLe´$K6-od¡]´¹Eµ«nß”[6WÑ@ Ô[´}ôñƒë\¬úIÞ…Þã%ñ¥¶ÛÝ"3SÆ…À¬8C{âa2PídVûƒ‘ én<‰ßué©A‹ƒØZÛˆˆ‚q1#7r4ÿ½[ÿèç‹?ujá+♓êÈæõ<*ŽZ4öpãÖ6³'2ˆä$ߎ&%tLGýûöVÇÞÃÁÌiÙ!ÒhýÇÎ]øôò;×­rþø‚¶ ÎYcà‘Ÿlõ»öë#£¢o†@¦}¬=j`”˜îÈL€ &/<¤cV²pEGgGÕ6 õ–ñn­jðDFÝ€ë>WwytÓŒA¢˜Ø³É Ú%iM²ËDб´ñUâøIl™-4ö&*‘¦!5Ú) "Aö±%ÐÌ*`¦Òkñ»oýý_|ÿŸ\é\P¡&¼}_óZ÷ÁÃ\4ï"%Í-øpçÆ¥•¥¢Uxï_Šû‘};Ås釳öûô˜Äqï~zÍ/[\üéG{ÿøZ›s¶yëRgïõl;Vž°ÕwT»|;ƒæ¼ÚÎ;yu¢4Í»~ÓÚ!CAœ ŸµÉX¹¹­«¤BuŸ7¬2¢rƒ4 Ôn&V…xh#w˜ `‚ "¸üh‡&W““ŠÀŒßˆf\±SmÚ¶ùqU¤;Ó'›3f'EÙÐpPŸøìÅ¿ý§_ø3–‡ªDУJ "š×Þ]J‰IÑÎþÍÿç7Ï?sþÂg.|êç>‹.å‡Ý¡éø]pÂN¹®Ì]UÍS™¡têçϾùõØùöRX²ÃnçÎBµ6DW,qûÙ%÷¹ªÝ£€À½¡½îòïÞºpÊ2 *ö€@R²& ™%gÍvg#ou·x™jò#rCÚ¾h AÇYIDO‰Å±Û7*3Â' &k` ø Á7nÖÖ LŽà¨áèY®Ç.öO0HS{Òù=¦—:±¶ »y}û£_¼øß~òÙ¿&žA €îïqÒÝ<4='ÑásŸTõ¡ä4Eþͯ½ñ›Ÿý§”›ê åéÕÓO¼ï‰T¨}€÷²ékÆÌsÀxG!ÑXÒ‡”§{’Àšñœ è¬tVÿì#ýÿíöwîòÉ^éæýÜ/Ôêµóhwë± þz ˆÂí>]É‹N«¯}œ †Ìnmp·Â¦¤P˜–ÑvFÇ °±i†m.z ¥ºG¡~DÛoÛѼ«å87)Î4RbG5î5¢šI²ñ@è5±… bè¾IMÓ|ÀnŽï1ì«;aÏePÛÊnûÊ_zôä¿zßÙ!ucT(%ø>o\UMUÑs€9°B˜_0÷fÜ;H÷Œ‹:Þ{“ÙSŸºÚ¾ZWu‘eV&»B÷eYvø YûÐ{©>4å’ˆ¦¨XyîTýÔ@_ p}Ê C–!])ºy÷“ëò½;y ønlšVÛæÝ6Úç:¤¤ª‚î®Ãyõ*br–%¢cä4»3ÈÔP÷0¸1ñJɈª-„Ý“R÷upÅ5ꊪ …¢÷Ršcƒ¬ _Bü|4ºY¦„#0ÌàaNJ4x¼·•¿\þëWÿ›3g¾ÜêÜU!@Ì–ˆ”ðàœ‹E¡©„mzÆ©â4 %ÎÆÓ"š›ß›+"íNûk_ùZ›Û//Œ²Ñ׿ùõµÿom4*­aÿ‰™Çfò“?• 5—{ò.)NG±þ龬”¤;4/²•Oœ©._—¡ã =ZhÓóíç–Üãwq3cK•ÓÛÛšgE»X¸»X®”­•Eb†èŒ }oJ àEÛ¯V4cÃJŒ;¯!°EŠû©P݃i1¨B ©è—bUó%O»•ýtRLYåæ®,mÅI¨Ì±~:Íç2isÕX š^ %0‹T„¬Þí?ñâëÿñO|ü¿—Š™°³ °÷÷8¥à]l¢QU•ˆ¤`\YU¤qÁ{Ÿ€‘Ήõ $*Ìq,ÆÇ3k™ÙŒÉZ›Î‰Òef³¼È[ÔzÆ<ó²¾¼´ºÓ–êºÎ"¥øµyfÇÏe"áúõk º Tï6$ˆéžÒºtê¹½˜C÷‘žÍÌ` ?Ÿ–¿Õö.óÝ µ‘…€Žêc™¹”¡`Ô¢£R7²H16¤…†Å@ ÃFy70œRK*×VEVhJÍp#p¡&õ ‚ÄS½…3A†݉l´¡ý+ÌVZ«M’¢Ql ýëõøRHØâÌ ¹| ¥FDÐ —Ó=ÂÁ·å"ÛüÎÿîŸù?V×ÞPÏÙ_J€î¯8E÷/ýÒ/=°¹ðLžçøCEƒÁ öçŒÅ"òžABDÓÎ+ V2Ð\蜥À¼‰ÐÎèÊ€®khƒXÙÆ#¨VÊ­18 kÜplYνÜÅ- ¯ìw¬áLÐóŒ»`z%0TaÓ6ÚWØ,?‘Éë¡Z®‹¥<ÕK˜•,?c[ª-Å3€þÕ‰—©ÉÏK/ð%©4!X‘´ q ï@<Ø¢Û—›#(tFDÌGå>Uš×#€”HAª2±(À=ÂýãÙ¤PbS_yóGˆv8ŒÇ‰ˆR£ïTž–Òûÿµ‡tÎÅ*¢Ôyöhh<Á÷£û6Ûk2b™T¼3ZÊç”o1m©]-\Y„·œ9ŸƒUÃŽ>LR)’…zEºÁÊ8­õñº#Ã0ªY K\=)8§ö-£w‰˜H¼xa j“"ÐÐj‰V»5ú~éŸó6³"¡ê©«È¶Ô—§ ˜dà†Šdþ¨Ò´ð¿±xO 4$Þœ„»F¨{š-`ãuõ%0©+j8¬iÇägýãi[ÐÎf ¸xLl2ÍÅñ0Ñ¡ñ ÀÌ¥ÂØjãÆãe¹ÜZÜÒ=€ØÇ)Fê1#ß:<&S±DjÔy›öˆ©ðG¯­K/EQ&Cl!jĜЬËÞ mæfÔ­¿°i|Þj®Ü"²*é6Ð%¶I‚+Y Nx-«W†í €j Ä9’UBÄUOF½R§ïjÓnaä馅¥Šá÷Fæ9ƒ ƒkÒß&qBÁ((P,¢ÚdR"7£è@M²·J2”›²r?¢ámÂô¯MêïœßQ“É)SRÑÆ•*^ë!‚•1.‰”î íFÒl¨¯!‘¦(J3ÄnØ[ÞÜzôä™-1¸±µ”$ö·%¼÷Ƙn·‹Ã3ß»ëëÜåÞïz”B8—ÆõG+!RÕáp˜âˆ‡_úæÀ½1ãGân»h8gjƒ2­t¨§Œ½møZFWeøof;+/€Ïy8È i'J½‰Ÿ ÉÚYžç`êŸñáK•K,0Ì=n½Ñ’sBëªYŸ†^™¸ku³Ä¦S[À+6J59Œ…é­÷k ÙhË»RÅ“ „T®kµIÞA…,[±˜ô?`@@ ØÁ !L#Û”|¸òMàF`„š$©ñ ºÊ¡ØJ} ”å…zðÊXŠ"Œ„‚2³Nt(a½s<;ï¸ö“²¯¸`C 3¹Lüξì/ö¶9Y¼Œ2³ê 1Mlj½Y¥û8]»~==œJCç* æ©ÓŒ¦ÝÀ˜‹„¤îO± <²DZyÔ˜àa3aëºNíC_–!ûQžcXüv°+EÖ"‡ºv5³5]PaìâBxó-|þ Ìéº`TxI Ð!³3ÜRQÉÈæK9€âl[‡ÜguÞPN#åï³mu‘d9£cb <)Ô Ê0öØlÔjZÖÓÜîß©uMYÀ¢ $ª܈‚«ak˜¡`$¶¦1O€ zWQÐÔ)1P”ƒAUš…†&F ¼Sï@Jy–«‚š*!‡T !ý®ª’͉ŒŠƒ<‚ˆ GA…5&U®ëŽˆ!&"ôOBrRƒ))æ!± I 9<Æ/¶Ä¯¨dYæ½?qâDÄŒøòúFSÛ²ªª0RÆ^läᜋ“EQD‹ÏÒÝÔ-}m(ºb#0YÕí½OÅ}GVœ¦9R÷[Dm·ì¤Bi4WVG²¦Ù£„~&í–^¹™}9×l]Ÿ B9P(1Ñ]¦Ù®ð€ƒõÜ1Ùj^ž³œ”¤œ.·•™Û-t$€™rR©ç-¦a¥=ƒMÛÉÚô•YçìFB "d]°U©)ô’v”4˜Æ>†@U&ϨÌ6n’š4J 3M,Q xÓI¡SÚÈ•êë”î#iž3U•à ±÷¼<>HqJûTeÎàîõV¨< !èEmι_|12ñ!CÂñË&eYŠHìÁðå/9Úèç¼Ýjõz½ˆ„U] âžÑp¸yˆ¯@žç©89šõþð‡_y啘{qâCøƒ?øƒ˜õt_u(I¡Ø-î|¤Öfn Ñ}̉1eEæê ¥"ƒ’™àÅ® ·3^\ÍMüàz–ån}I—Eo1Ö4"l±.€N ²N^¨ƒ•-U i‡pF’éçT{dN©*ÅyusÖ4òÚË@8cÎÔÞW,êH¶jrÍ—4TZn’aìhîÔ0•@<†w`,‚ƒ¸Ý\‰¨{;н’Ð|î;[éçêLQDS“‡z "éFÚ¦P"mø‡Mè€î… ÍìSU­’P¤ó'Åþ­Í>ó™Ï¤LDtÿdÏ©%@Ÿ=¶¶öäSOEþ¶ã/ ‚HEDh‰}Uum}½“1&%Ò^|óÍVQ¬¬®:çâŒó>/ ¨ž?£Pú½ßû½¨h}ìc{[›f[˜ä6Uí’Z!ä!{Ģ߯òb¸µa߸NW3@t`E B•:½pû…%šëhyñð­ÍˆèãÿxÔã‰èàLÕùÁÛ¤É9ÔÒ˜TõðIú€uÿ°H …š‚`€qÍ4$0äé@éVÐvίx¢JŽåáà®ËX4„ˬ ©9ÅüáLžgúWÙû{§ô¾F›‘}Úì `x®èGUÀ–´6Ñzh"¢)r;Ÿw8œ©ÚÖàÔ¶1Ú”j ÄZ⌦­m lÔ»ýëæŽ ;Í£¨ Pðê­‰}¥P±¨Ýn3ó$@í ù 'VBIá§2ô&ãfTH´°íÚ©ô*¸Tx½È–Ú:Ô‹µåŠÒ#J„ëìg¿` …Œ?PÜŒw¡¨°¡­(nzS½"¨á›&k³¡¦  &Ž&žUu´±UÅCeÏ÷P¦"¥Qù‰f2½'/{ ¤^@ Bµê¶¯¦ÐP«ˆŒm QEr4Ù6öãþÆÑµNfMj=H×"Qe¯_)(Núöâ¹D”jPßN.†± ïýÒå[›Ý«ƒŒ}Çˬí‚U êŒfF¤†øt[/õ]Y™‚Ø{&Ê +þ÷ÌÔ½êh© cAJú–ú6l9[½ÜÓ:G´H¼jø)àIeéP›„¤¨dÞÎé5Ko1úµ’ãšòKÆ÷‹SâæP‘ÚíRÙícMSLóùŽP(Ašªr(ǤЩÊ;¨`tgÜ÷À«¨P©Ä*ªÁi­%°Eð Ò{õk:t,€™É`lw‹N\Ñ>nF¹_¢õ=Òyrc?kïnÜ5Æ,-/dI¿³­ÍŽþἩ1=èžxµ\¶YH[‘ƒ*æ z&7-¹­;n䈙.oòV«U´J®ÃP¨†Š'fªUG^j©•„ü›®ºÊ&gê‚׈sâÇAf–BÂèYB—éF†ˆwííÜ:®’BM2ù|âÛ™’èÆ–€f$0ï›jf * ¯4B¥ƒ[ã£Jm– “J)tLÚZ†m#ø=%uiÉá3üf`CÍ$‰ø¦¼Êd€PÀªNЂñ¡Ä¤ª6ÏüSU}µ.¶¬WE‚…ëk+å-^^¤“ˆè‘œoÖîòÐ.¶µª¥hµ¸È@A^^ åª|åÙsõÍÁÍàkc¬¨õÕ]ÙV0š­.ë-oi•tIzÜñ¢•~­ÔÁ[ÐmÇThYV;âs-~Ù +¤±§J œ)íTÒÙ6Tà†i!’Æ GQÃYD@VÆ;PBLÚ¯ù|£ÈŽ@ö"™L½›\úZ\•´ô•IÀD\44Ù“f<Íå¬å*J Aõ‹¿XFj®ŠˆÆ–x§3€"bnßïÿ«ßWÕO|âÉ¢wªµÅìóˆË#µ‰.¨õá<{ætxFËÏÜ¥7*çË*\¹m¯,úµ•|}%;ÛÑœ$Ôš‡¬×*η©Íd€'Q]®äåšá©°ˆZ–êLQ±,Û´ÙG0¦›gÝVØÉ¥»ÚÊ!*ƒ@ÆÊ RíÅËÜ®.ƯŠo½u™‰´vš!"ª‘x*gSÝt¼˜á)Ò œÙëmí;™Šª/ gËöq½õ-ãG†C¾Þ]AA Mì®k2ž°Hc–˜b|ßI€‚UÁM]ATœw IŽ&j£¬T<‚W_‹+¥®%YÇTR·˜Æo K³{&¼gæ&}p"Ðëøaô‘/@±—ö¿cÆDczwº6EHÄ”8xöÙg™ùíDýv+QG“G*!JåÁ+lèä'¾ÿØÖï]~ñv¶QŽL¼)Û=sÓ^[j­,` ú˜‘ÍÌ¿,ÔX¦3ÈOçÕ›^îÖD52«ÌÔÎÈy»ÐõVü«áвÆ*”6+Z$´3/Õˆ©ÅLjU©jÊ[íÓëõÖ¶Œ@PQ˜dßSítX%+™ÎdxÆéã —0^¡*ž–ÎêÊ3¡XFÿ ÷Ɖ!ܨ){¨ÉòHjÔ-˜\ÉŒ-c¯â‘žh”{hÂíIÙj­"YÁk57ß2JIiÂÔ–`¢åíi˜HgŽÆ«J²º÷ÿ¶c%á$mŽ"%&y×Òb÷ƒ¨28¨qÓQ[›Ù–˜>óª¡Fª´³Úiý¹Ç7?¼pã¿^ñ­³wðRzáv»uf1,[òBž™2µ‚Љ‘/µÊJ¶JÊ :-ʘ»…l¹Ñ’Wº3Â@L«mZ…ô*Œ<1‘aQ‡‘š¢€ˆ A{uøxf?z:üÃËä”dXM ëTîöíº¡­ÿÒC¬Z¬ôáªRFX:§ç?%·^Çÿ<ãëÏÊí—„©z’ØQClJæUÉPÖ…'ðMŒFÚ£÷‹G“)´½:éZõ¥¨8!«l!ÓešM7Ñæý%ÖWãÍæêÖ_ø»½÷¿ÂṎˆÃØSGÓÄgú®ÐĽû¶)$EÑ úúVÝü³P!¡µ÷ŸlÿÕ¥ú•R^êU¿­Sc­”#¿Aþûl¿U^_£Ö-è@‰@…‘^Iµc/XêPa¹Ó*L7ûSê•aý¹­ÊR+“¬âºb(uZY«ñBí0ª¾ —jósÝâéÕðmÎJ`ËPBÄêkª lu­2Tñd#pëýÄA<ÚëZn18ÓPOd§6¬8M•ÕIM)Mã0VÝH} ÑÆS4‡n¸¢Ú=S jÄC®"zíé§?ð‡®µYôç^¼xáÔ©Ó"òneÂÐtSÑP…v§ÕúhtI­÷_XÚþßßX¾«0F¼êÝ@yíê›þvY_¶ mU ¹GWÑWuAzR¢•6µóÖ°+—}ö¡5¡W¿Ü+ìçV†¥!/ƒù@ªRYÁE Ù%è?­Õuªv ¨²Âj@L bhåec@–QZÊs…äìâå-Ú~K«’¯|ÝvO¢{R¶ßd±–SÚÑ %H“ÜA T $©ÛŒhš b++fMÁi¹-õ@𼦉E6Ùq1±‚è)âó—éA¨Œ´†—ÿÊÿ8l—,Šw_ÅIgó±Ï;wõêÕX!:¨ê–îfu];¶ÿì»ZhªÐ$`E¼B„Hº]­ÛçnÿÚ÷Wn´„Ôg=¿@ÑÂfÏ4äP¨`]fÉÔ ™nÔ‡í¦NÆÖê·‡^8{~½º¸ú}Ó鄌ƒ÷flŸRž±a-K(È%b½+ÔmëRÇ÷†J9H„Ä ÔŽLN¾RòL}XkÑcׯ¡¼Aõ6ù)&•w`Ȱqõcw^A €AFAÐô^‡Š$”4ÂA)=ÛCTó\Ù ŒK­;·ÇwƒªL]®7][„‰D¡\¶.ü§ÿÃ'^·³*Ó‘l‰¤ÄBÓjL8=Ä<(¥b cÌáZ›=|ßÙ®K&õ «/·ÿ¹Ýú'—–^ò&ä²PúVoç†^aQØa— h‡Ñ²è9H¶Øš%5l[¹ûn?´dϯ¹—n䆹0Þ Yr°jneÐZÊ‘É;dUòŠÚÙ"ÇЉÃ2e¤e a0Ô¢(ÁBlСì„ܦw˜›­Àd`_RÓxf¶Ó«$¯DÓˆ“$Å„`Ùé˜RpÁKpIAÂt÷D©(¥‹{gƒcj‘+‡lkåõ_ùoý±Ïd=߉ü•I³·Ö¾Å)Y#sŠúýZ%=¸yh>OÚ$+@β“ôä¡–=fÿýbãÓ‹Ï—Ýk-î²Ô…˜3ôœHMëmœgä9½âá¼öFB†[`p-úýé¶¥ký`hŠB™‚we€è¨‚å€@¾2\¨ ÙÜÕ¢)zLB!·`F鈡¹ƒ«ÉXݦÇîÞ¾½mït×w ‚ îkÖhP ð‰×ve|Iª‚›ùV±JºGhæçz³’ŠWW"MàFB<±ÉUvðÀªÒ`¦Ùä "ì¤ß±Ï·Vßø¥¿÷êŸÿ5“ð@€Þ_v€t€™Ø+äêÞx㘕.CY–9çâ9²¦Ikíé `±kS\s_äà~޲wUJÌá¬~‚|»ÓYÿwÞ·yúJï_l´¯RÑæ|i‘™ê[aT™1®>N¸ÆtÕÕ~sÛ*¸“ƒ˜îVXh›S]½Ø eIÊAƒ¢ kÎ8ø!1Dà qRC ,%K'ŽE½×:À2‘*`Ú‘›ýêÊí³7o»“ïßZyÄúJ”|9~Š09„³ÙwÔ¤…'®m|D ”¶·‹Y ºKʈèpCRJír™‚•TÉ–˜ý˽Mê$a((I±µòÚ¿ý÷¿ù—þ†ò,J8Œˆ {J‰iÕÓ˜9~0%¶ibæ¨ÌÄÔüàO=õTìý‘ºuDlÄÜ7ß|35H ‰­ b3¸à½OÞûº®8½›˜@0¡Â7ôÆ[*™ºP«9åþÂÓÕ3[ÿçEúVUl¼UH%ÜÜ–o¹ìƒËt¶…[®Òrä V»ÄЪÒ[0y+´*I…/Î"›4KÆ„jת¾&RpF†È“*HØ©ˆôGd8X匸ö †”€8)KäÌÅéÑjóØ,µõqy>1m5@CBDÇ,¢ù¦‘ˆ“ i@âF;1µ„îÆ¿4Y–ö¸GÛ9<ƒ¥oýòßüÆ/ÿM+äIgMê#)N“=©ã±ûËLk³#R”Ñÿ#"±•÷¹Ç›ò}¤Ø*uŒ¨{ßûÞ÷ï|'6wÊóÜ{ÿÅ/~±idvJûÇoŸÆø†snÞ2¡‡ =¨¦‚tÇ ÌZƉ궢F¨˜ h[Pêê“';ÿÙÊíßúAïÓ·òA‹­±l¨f½V¿I‹‹Ô±…:‡Q &Ï@ [¥Šp dV¡ì Îkj7/Š,®€³œê"cˆ¬ˆ"è„Ó|€íL RìUL¨;ÉÈœŸ»þRêÆòÓ$!ˆO-"¨ÈlÙh“”Bóæn& ”HUÝ ‘²Å4ŸI¡’ º¦%ÉCÀAöIú¡`œ­Z ùƒÿð¯ç~3tXù€´ä€LØÔÚìw~çwœs± ßÆìˆªºŽ‡ˆÄó•Ë—cr^ì%FLò‹Ù¼{—ˆ²<`ˆÂ$Â#µº‡D„#SYUñ³Ï=÷|lÒÈŠ‡Z{}"Ðh¤ Ër¬€…!QŽ4§bå“ç‡âu¦µÜ÷zT©±y¸1ô[=#-Ê,ò £Z‚pO^Ô)q µ’ T³•à¡ÊDPQ2Täð`"©@ &ÊŒa«qF@A §+‹Zƒ•3à¢ÖðÈ­ï¶¥ÿÖÒ N2 ÇvWüAÆCFÃÜ¢æLÞDse="I&`÷J"m M "ÍHƒ4#ïkR§2áÐê-oºô¹ÿè¿»øÂ¿)—3úÒ !{¼CÖÚ×^{-rðG>òc̃7×ð¾×ë™1ÅA2ÓÇ+Þºt)jMUUmomEû!ö\*ŠbÚÈ,Þzàòë¨z½ôÒKñU5ïýfÂÑ=?+‘†{¾Ô)(JÒë–•ô˜W#<°¦d¶Jµ5ÆPb´]·º{ Ï@ ª‹T³½^‹¯C߉Ra¤„•aI"d‚…”I dÊ”,… ‚ ŽDL«CâFl "h5‚WØdˆ™AÂФê8OAU‚n÷¤à²#›Û,‹ó$AmQsv¬¼ÜY¬.ò{~9£$‚ ²…¸Ã;˜¾Ä;rAvEÖ&ƒùΊ³›’–×|/BE S×í;kæ=­*Æ—ƒ…×>ñÛŸûËÿÓÖ±Û hðpH¸ÙˆÄ´µ3?÷Üs©a ˆ’êõ®Ôô{÷ODû!NÞ¼ySU­µqÀÌéRD¢Œzà¨yDB´F¢ Š>rr¸*˜IUÒ‹vìHB³& §ž5Öm’‹DÛ–V‰–ˆ/Þ$^(@sð*À¤-Åh­3¼ àl†º«ƒ Û Òé…~_ƒ÷ei[-bˆz[“塪ɰª@•È‘øÛ 5›œ$¨TÄ (‘Q€ÙˆQÏ¥‚‰‚†j„ˆ,l™Úiu²SË¢õ°w»XÏž¯^w§®ñÎB‚…88Uvë7ªû3ìù$iÂÃlŸf=Í–F*ã-DçÌ0xuz+[kWû/ÿͯÿÜÿM€ <2=GwŠˆÓÛLƒBæÌ™3{w8è»"õ´hH<°»)mwØÞÞ~óšè>IÉC?„ÒÎ-¤K©U×srQÜÝ!µl¹2Z‹ÙÈtÑp+CI€žbzኚ@ d€ÊŒÉÛ¦]d ‹a»Qá¶{ÁÕ&Ë(©)êÙæäœŠ„Àj…€‚‡ÌÆ(yaBi¢·(©«Sm: Ô^‘<7ÇòFý;u–…öR&£SþâÒzÿêÆ#wo-K f/^š‚ѹž­‘@;"‚fÒ+h®#1MU.•)&Û¢I § ;g h }V~õçþÉïýù¿uëøõ¶w¯xÜaœ°ÍÓª:'.ÞNÜ:ÙЩ åQ™½Íh]ú˜ØƒuoÎûÞõµ‡1«N£Õؽ–@|Vªô«ÏöpÍ%ˆDs›çEÁ6rs¢8Á2Ñu·¡Z$ª ‘+LyfxÉ-“wý`(õ*DÔdœÁ #V µ#¨]é ŠPÙ¶À–h€€™0”‰/Kã \p5-­è±5=¶ÌÖzïÊP•n‚ív}pÚĮ̂]˜­óçK‹WÎ ûÇ@ ãAb`j°1›²1_ðÙŒIX+…A ¥¦— Î ‰p ¡ö`1˜ú•ü«Ïý™¿ûú¿alVYz`šWœî9>êgáCàKeæ·é5Æ4Ø~¸æ²¹©Á¡T?PnAí$½IC(l›»?Õ–®üýÍêÆ¬§v–[“Õ¶°ÆæWÚ­õ5ê´L‘‡Û^;FN*.)•àë)¥ç W /– Š\NCÎzy_éæ¶ zêe©†šgž+’‚Á¢B¤ÐPðµP“‘AÀÊ@P ê†ý(tqUŒ5^ÔÊPt$$¦[¯£ÚÕyfC9$ko¿¹±}lk󉲷¦Á‚œ’WPòÒ6ÓhEŠÙ¤IQ#’þ ÉZhŽLLˆ„«1”¹å[Y¹P¶úßøØïþþ§~ãå} @.ä€Ú5›œ< 3Æ^³[U§6ë4œ7½|(Ùo?Ÿj®ûP”£òSšËhPéаËt¤¦ ³@”ƒ,(éÍBÚ?ÒÞº®ôäVí¿µQmôƒÍò,+G[®7hm,bû¯·ô5„¡dØ`XJàýàU‚0r>/Â|c‰/—ÍJãQ ÊÒooë(ˆøPf’“apFZ±1Á{Çšç€ (Á vl8 Ra,­¹¯:Jµ˜›uŒFÏž…ãÈŽÉ„Y(™©‚€Ãe©ß®\,9õƒuÑk3·h0ÆÊÊÄH 'Žs$SSËæŒ¬]Þ³ÙË–iýìøðI]Ñ8¡²\†d#µ·Vsìªý ÆLÎûºÿ~›Tƒ"fs.M\ò`=?|øÒ‡?ûßû_?ÿé_ÜÛ„ˆÀ~¼exïÑáݧO‰H™HÔu]­¹(S‚bŒ!„¢žÿ?ÿçÿ,1ô|>/ç×šH.ë2ñÍë8±|Ãmµ |s Úä;ï'Ú’”5àݾ“93Q¹‰ºóÞ/š'ìc÷: _¼Mª,âÔiKͼíWí͵‰ËN<ËÒø¶sK2¯|‹ĉHÌN˜§¯XúBÏ-Ë•ÀÞñÀæ‰wáÐM–8ߨÃ3:Ý_ÈÞÜ/§“Ðj°Õ†»‘8W/—ûq·:!0‰‹]Ÿ(½›çÐ:,D{TëÃg™ F ƒ™B2ò<ÙÒµßqO|i‘W×qqƒ.®r·àØŠqD!ŠŠ ±ê1HX«¼à®´V ¬"VVÉýlóðæë_{ñ‹_þØo½üÑß¼{ã5¢‘¨e=$ب.þ–ú»Ç",„PTa6›MÙ÷Ì|q~^2k%!­ªÿí¿ý·O~ò“åþ¯üʯ”brþ‰Ÿø‰’3³œsI/”¡-}ß_²¹Ø¹^ïÏ`.&|ëçÓîáϳkV šÎo »¶âÙ‹:¾yžø“_,/~ý+­*Eüu‹tŒ|WÇ/Œ­s¡eH4¸©“$2Rµm²>Y¿Æ’ƒô¦›¬÷¶Dæ­ŸÏ( £¶á^÷O7á !!D¢4–ó¯®Ðé«5mV$>¹é¸>µœ½ 0M–#"8À;0¦Â‡N&6rš5Ì"&«¾jœ©™' ,Jó-޾Ãïfkm5±ó}ÞùþŠôs×·24w¡aI{Ê avÁXM NÍçn¾î–%«ðàé×ï?õµÛϾòðÆí‹ÅY¢Dp“|”I³Ë¼?`ØAB ‰1šY1~þ羪ۗs¹_òÕƒú_ÿë•_ýêW?÷¹Ï•Ä\¹ÿÝßýÝÕJ”õ‡ÔqúæÈy?b–ãÅðpMÉÑ €!›u¬‰DMÙ¹e+KžiÝSÁ‹»±ÿb3kOñ%•»aü»h–ãÝípz¾IÉ)‚¸¶mÚå̇æ3iƒwœÇ„UŸo ",Sçfs"Ó~›ÎÏt:ÍDÚÉìŠÈÎùè!l†Ü'÷{ž#QdnÌ)8ÉI‡íZã(, ä”3'4朸êÞ7BhE?3K­²@ΦÆL²ËŽ!\]x ÈBHrZž¤«÷u"yѤÆAÈ ‚L=gÑ•”¹ô”ÍËAã<Ž‹a»·Úì]lëõÞy7ÛŽ~Ìœ læ§ã•À9rJM˜H*ÞÏ%ïtœ¼5ÔN)ݼyó³¿ò+ šu³Ý”,XŒ±mÛ?þÇÿø/þâ/–q‰edQ@©ó+%F9çÉdRØâbÕÁ¤—ì8Õë÷½ì€°GÒM…e®{>š}tB‘è yß–?r3{;ýå—Úm~ñUšLØyIØƘm4 ľ¬Æ7¡ìí9ß©x¦˜òi—Ï·âƒß›Ê$Øvˆ›­ /ò½üA &dF¦Èór zbåàd>ëUì¶$DŽ j0jØ7.'!c¬ ™˜Ã` jà 1® /ŒÀ¦ Áˆdºp"D<·¸Ór% ‹1†˜]ŽŸîÓ­­è„s@våÐÄšÙˆš¦ó"š%GIQ¢…d•Ì‚RUÖxÿÖ.–xwåíZN÷c?ú£¥É®i›ýþ­o¦” žþyU L!RÕRÆWSfµl‰.{=^EÜ+!H¼¼q0½º8»q|ú ÇüRj;ÎÈís‡?x}úѹ› V ‘xÆ6AÔ¸øs7ýS“Ó÷ÞÆ&ºàвdñ#ë¨CJQI²Hd/.BÛ6ÓY;†¦­ì%«’A×p1ˆw¤ÕV^œM>$È D´Ç<@Î…Ùĸa>EÃØkŸÇ¾3(;B ½„\ãØ‰#罃8dÐ A™„œ’Áê õ†'ûÜËH²"…L^˜`1+§A‚ã…³© É$ÈÒ‹´>l«rH4ñÑÂN³Â$fñF>£Æååì²´æ+Ôœ$ ‘½¯xØY‰wáèëEõc?öcµ|µ2KõzÇ+UmÂ[«Pÿ°E‡ð¶z×ßO¹ÓÎ íÁÞùkßñÄÞó'_|Ø¿´=¼v¸ÿG®¹¥P$l@F4%8'Ê„Q—Ï_m~ð;þüçãvhe."­ós³‰)Žý`IE§˜r´¡Ï]&“¦™ˆ âh)±ùÖ}tR¢ Q$ZQdyÀÔ0¦ÂɆÕFûX+QJ rUzÞ 3S0‚Qk&å¢7ï[+í$Ni_0ƒž<Œg÷¹Xª¹×ØåíXdho’Ð2;"[ª ‚ÞA›˜µd`z"À±žFØ#ùŸšÂ°lÆlˆ‡ŒÁªvíý…Ä.–(=VÙ¨¶þÔ°¡FÕzÔf¶Ë‘ÕGoS޹œî¿ù~ ®Ê¡ó몟ÞÓQI F¡iŸüô3úpÆ4ŽAuÚø@‰Œ„Åeç6÷lrtõæ÷}úá¯ÿîp¾nÚ©wI½8×Χ“y‡<ŒlæY„ÄÆ!æÞBëCš û:È)Q¯Éä©¶ú¿<'R`E|&è ™­O4e§Jýv $ö5À8xšzf9qžH¹æ È‘ `HMxÚÐ^c{F殆ÍT[6€WSqÂÃ…åàhÆ  OfFÉÑSæ‰ãHäk6“ÉD®rÎ6‘H¡ Æl,}TÂBP‚•Ã. kÀ«¤ê7g©Ä)%眙•¢½b@f³YÂ+$*Nš¦DZœË}U½‹à› ¯±“caƒí-ûÿÚŠ Y3S"€-‘c,` ɤpA¤D‰°1êˆ#!YÙ6Êç ¤p¸ý;?vòòËãùe8ïÄP7›N­iÓ8XR†xqLj–s&‚ªfï{Ñå ð> &¼‰@ Hg1žwŽÄ }l¦Óx±ÖaDbGUŒÉÇPÇΙ)ÔHiˆE˜œç1’MöT F‘ݳ¬]â“Ì“àü‘ NãZÌQ$f5GÏ·Œɤ±3“VyÌ"<&+"sŸî–Ì«’9 `UËà!a‰KpÄOÂ:ç û¹Ïn6Q!”þØûcMÓˆÈ?ûgÿ¬„ÑêOý©B4–© ¥Ò¯eÆnai_ýõ~ðƒe uQ6X.——& õÞ'%À ¯+q „`ì**PÍÕŽM!fv£“ŽI˜Œ¼8: aC¶²ü€i bÆH´U€Q)ÁrL”Á æÖþ‘®^½Ý½t7°zD ûÖ[R#%fï¸"‘¸Á§0å ‘È“sžWÝT¶SØo#¿1¤UÏ‚íÉCtcãë‡á|UU"5) 2f'â*d*æÜˆoÌ€Jð:kpÝå‹qüÓè•x{Î.Í’v"lªF1ÃAÚ†s‚‚}CY‘aYhp‚"p¦ƒbŸ¡L0ÓQAðÈÁ2*³D¾Âà÷ŸËÁßFHTo'„P{˽¢dÃÌ_ýê«eÇ—ëœó§>õ©b:>ÿùÏ—Ý_²e.ÄŸù3æ—ù—‹ÑpΕ§?û³?ûk¿ök?ýÓ?]fmm·ÛK`Ÿ¾)ƉÉN1ЯQ›Z È!‹e^ö ”‰<±#ê@Жòp`š™pÁv=%v 5ìžÒ©¢ËĆŠ%µZñ@6Å ³‘b*ަ³ù>_¶'gÈä= `È&ÇÞ;iÀÚÉ}ç~³‘«ûlŽ(‘ÝF¾ë»¾«$¶oß¾]²%—WÄ-ë`f¾œðÀ{ƒDЦY7ë{Ýø°o |#4÷6a1ˆj†0±{±á›LS ’¾nv¦Fí+­²ÖÉéPªƒ &F†¤J n¢ÉIÒÕÐNg¼ŸûóuJÉ“g&É£š8†±,&SNžëíìÿþœ¡A†R~…hÔx÷¼åAÚ¬m(x¿¿#ƒ¦Èð$Âà«V(Á‘#4T“ LŽ„«x ‡&¸MG@{CW6Žº¿h>þâxlH0&RؘlåÖ¡\ “HîãX€È){JÙXÉ%P2$<ÂIJ(s3’gâ ãmöзô/¾ßÀ»´–6†’yøOÿé?Õ‘ïιgÞ\e߯V«œsy­ ¡<5³BMr—Gµ©z·S/a½Çðäf<™²[NãÝ<¼Ò÷‡þt¤A}$VX#Ôr8 îSS÷‰ O8×0+ÙmÂÙ]Ð p¬ì@ Ç$Þ‘xÀ0F I)QÃfBF°LâqØ®OÂdÁyšÎÆØkŒÂމH@•(,)»Dœ}»×’iÓô/L?}`Ûpú ò­±íÁøàÔ6JIŒ)­{™й¶§rxÔÉã™Ù‘±Á”<3T@mËv{ç|}þ ça6.šÃ¹eX@Íš†ƒÁ‰¸À,°DÄH–%G"e9š´p†ÑCªq3X@Rù %T )EÕ?§÷©®é5NòX]"ªZBd"ªú»Ä6Uxì¦Úíˆ×jê·±±»ó–ìµMÔfj6€®¨Ž÷¿ç`‰%$ËBÂ^ ‘qJö›BwÈN²mSê7ÚGRƘ(™i™fË*γf&°1;ײe³¤œAŠGXí…SPF­ùaö“ÖÆ¡#"¸ä8Ê㬽D·ÍSWú~¤»>~ Ãõpv¶=~ÏOièÁIðM`oj9Ñ‘·¨Ìì|€²Ê€šš É0ª)eR LëŒ=fsqâzŸNO»—3íÏ7ÝjØ\È„jÿ©‰BÉ0°V"çÄM©RâÚ¦ æé¬M øÚ´;^Û˜Ió#ųê! #¸j(*$.1–x¼N™™•žéªz¿í+>ÒN:©¾S§ Õ„ÝÛB¨ùìjC*‡{9ùŠÇC‚Ü£‹W¦µž?°£pA髦wÔ¾:òCÓÍ»Q‘GÄÈÄ0%‹dŽ dæ–­¨KÁyC„É aï˜Øˆ”@2™°sÈêØ“04L)’óBÞ³‘L1GŽI„ž“ÍB&œ|ùöððžmΧ9·44³»––²<óÔËȦ™La*ÌÕˆe¨AXDÁY¡ ‰(&#Oìh³!G @\˜-&öÐVÝæ|¤ÌñNTl‹1Áñäˆ޽"‹‰3‹cç`ŽÄ0üÀ@5™Å`!b@™Øq¯õ¸,Çé±ñ €"¯TCêRÈTD4êý2¬zÇïùžïyá…ªû¤ª>,1w‘á(®T3ÃPT? K»X,Ê›Uݬ¾ù¨ð__•ŒÈÊvA8';#ÜU»—t‘F}ÐÙjÔ~Ô)fQs,ž¡ì²kFÌ¢QApÆ EVÀ2ÓÈjJf®m4À¦`ŸU2È<ƒÈXÈCˆlL’È“Å, ò0"äšPcÉÉï?hö7¯Þ¢{wöcj½4Áw¦N¬Ï© X-'æ’Y"›±‰åŒ5Em ¨0L³ÁT$u[é76oU#ÑDæó_WG];˜ ¾mæ®iáIJl""f™C+Ž„²(‹‘›6î¨W]ŽjŠøÅ4Þœc"`×nMØMбGÑ…ñ®—õ2¶¿{öºmÛ±Q‰˜¹ÈÌ”ô\Ùñço®Âºþ—ÿò_ N ÷Z&í¾üòË…-¢fß÷}ßW¬JùîýÐýûÿïKDQþH¡b  Êùâ⢔֖׺®‘o' [sU3±϶Їi|£KD±Ð Ö ©&­w7ìK/}ê.h­”Ñn·Í…` Ô¤vɨ„„H“jî09hè ëzÐbku>°c'Ž™Œ ’L”¼çlœr0'Âp¦l|çõ|rêbÜ'vcˆ©ñ˜Wnž—γlìÓ`DÉHÍ‚XvlÄSQ'…5r£1©—<œ·³p3Ï³ÐøÅcêMrjæ³°œ¥` cÐnB¾Á F&_'5r9’‰M^G@^˜ŒËªlšjÊAŒtÂõíz²—^×àm;LD qTŒƒªɳ*Þ!"Ã0”L\ © ʦ/~TÓ4E¶¨”®‰fþ…_ø…¢ªÄÌÅDä8çÊÓÒYñgÿìŸ-,í®äÛœ½öo.ª×ŽäŠ:3aAò¹ibúõ·±Ý[ίNnî¹'šxÔí‰ä1ç¯÷_Y÷o rwµ7»ÆÇ#N£´ž¼¸Æ[Ì–T³Æ¤#÷à1Èñü¡×0@q{D¤ï{"úþïÿþcU©©ñ÷nðnIáåœKéx9×1ÆúZ½óþå%Þû`.â æ 77%ÜôKLvð M¬c%Ô´[CûÔ5úÏ?yåkO}qüÝw[Lj›â®ìIçÂ}qÉ,%R#vHÈ9T•ÈQåîÆ¨:áéþAÓ„Ù£I²¼Ý*g´’ÙH&PͤdYÊ! ˆ7šs4ΘY-åq$S™‰ÔˆÉ”ÁU¦ &bSs„Ö”’vnn™RæD¹aŒª¦Òh•š4战 o–á¨î_&!c0X³™ª€È±p-K!!f"«Ö¢Ê›×Zc{‹ ³í*̘éPñ6À×#a½÷ßý™Ïx+ [¢‚Z[¯E$çüÎ}Y¾""»/îÔZëÇ?d-D\éÂßï>¾Ý›È`7Ú”@\Và”b÷µõæ4Ÿí&vä÷Zž?ëÈ3%ð”üPÓ~dNâD#1ØáÔ¼fËÍòúâæs˯S[ç¼%›;uq½VU&ɪy̨`d¨ib3Ý—f?{Ç @æL"¢œÇ”Ɉ¡-3‰ 6²JzÖ?gjb%^p-†2M¤\Um5r—Æ­Æ ƒÀÍfÍbAÒX<Ë)BvÛH,›1Àd0b qUçg0)Èí~}ߨ”·;ÍLÂûÜ/¡ß`â£iš€šª«{@¹B( ©HØá§^ì8V©îzùî0 »Ü€Ý —Ï8=>"ÙÁïPôxg#7œsÞ¾¼êÿ×~œ‰o®ËA –á‰O˜Œ‚©A5‡Á¸GѶf9cPŽ–ÃÁSÏ<ý!bÒqàEÃÒNæ3sÊ)Œ£ädš".€Yadµfzsrý&M…¶=©V%€lÆêDÌÆOXΆdMpÒ(›;°‚AÆM¤†ì f-Q`ëMa¤I•·›Õù:¢ÔRrœ#Çaìd>•ÙÕU¤Ä<­žgËÆÎ¤l$B,¨\yN©UkU#·h¥Õ-zY$l…Þ%\+ÿ^zé¥%QQâ(ÊÞû‹GìSMcë›k×DQÎU.¿zVQ_øÂJ ¼°;µ¤añÞw]wɽ×ß¼×µÃñïû(X¿±ŽŸÝúÏá ß i™yÞjNÒH˜´”Aš!J¨ZŸ\°) @ÔÁlG7?°÷Ô3Æ€&[÷ÃÝSßNDÛZÓÁαE%ñÂfI…\²q6fvóCIÔ!©9%¨xË4`¦Äe¹†4c’;r¤ OX‘‰‚Y†rV5KŒFl"&ЭÑf;ž^ ƒ.ðÞ7ާsŸÎ~±l–×R×eX¯½™‚ ©'Ç 6&f!vÕ £–kˆ0qYoßî RïlB=3—‰ÇW§20e6›T¨¤0”m-"ÿò_þË‚$”j¿ÍfSÂë€õz]ÀSÚµ ëZPêdK^ëÿüŸÿsyá_ý«U:¶›¦)V‰³KŸjᬠ—µsҾݎˆx·ïa qLÌôuþ´ǜ׿¹õ¿„+çGÚFg A-PdÃŒuù‚7ìAj䌚†eÑiá¯Èè|ôÍ´}îZ{u®£q‚ø–ý¾œº|oC” ,ƒ™yòÙŒ,ÎâÐ,Ÿ<üà§,8±ó@­ÅIP$ æ0QD’›¤ad»¦ ä…¦D,d ZVJ¬6QÿÌR³âáv|Û^!|¨ƒ©1 2ktâýrЦQÇ9ƒ8¸©èbŸI½‰'€àꀤ*|) ¦ Lo\‘AÂÄâ #Þ5oí`€z¾|Hx[ãu±…>úØÇ>NDU€£˜…”R‰¹‹r}‘)¸xSÿïÿý¿_¨Õ’ (8)¥­âüÿQÆ©†ªmÛqKãoÿí¿]PQ Rx[f.´lùS…ž*@ª!û·ÙqƒwvZ)ÚÌü×Wº¢¸Íã—tùùýMdŸ)*'uË)3›˜wS›À&$ ” bžFXÌáÆ«˜yl_8’}oxPõütN™r×Y×#«:@É@T÷®üoß%Ó}nl)kf…3(Ä”D‚Ê@¹ö>ˆ“<#£À2n¤=lú“ž.FÓ¤Û6[Ê_í†5©W ˜A‚L¤àL2B‰¨ef fao† #òŒ¤D–É prLä…U’‰I¥tH¤Äl,»"ârìp‰V_‡„­²Å,%ŽB¿æœ‹¦SɸU1ã’ª+wŠ*GáUû¾/ÍÙÅ¿úŽïøŽ²ãËÇâ&•úÙbO $Jyi'ú;çï’ªä¶ ÀŠ÷UÌH±å×vYß6v·¼»f¡Ðz"þ þl&KÀ‰[^Ì&®áCbOVJÊ9÷-Wû{ï Š ª ç²ÜΊò Õh`$Ù7…\el‰”)Ã`¤½êžðL´•ÃÀ-s&lÁN¤#ˆ]óÜÌ=l:"ú*Û©iVÕlÃso9i,£ÌÛoº±ÜÓ‹é÷…ýF&F ,@‘Ñ€˜ìŒ‰ˆ[ÑÙ„ÚÍÃÓ.Ý… &Ìt¡<˜tñ¼ÓaÁÔ€v«sH!í™uùb‚Ô‘%¦žbî,«ep9H1TLÁ¦ŠLÍátÿ™!Ùêìk¤S£ÄžÀ&`ž9[µ·æËÍG¯NŸ»î7yöªMCŸ¾ºùwx1:SÇY­Pë³jÎ6Ó¨™(S63öäˆLk;ñÀ„aj$Bä-;sž¼”ÃÍ@‘Ø ‘¢ê.TE%†1ƒø2!ÁDxç ž·EØ¿ôK¿TýŸŒÂ¢V#PHXùÎïüÎTâµÄß…Z-™ŠRù÷ñ¼~w¹\–› %Ú.¯8J·ÈÞ”š¿ÒÒ=›Í~õWµN‹,QJ@aŸJP^ª§Ê¹ÂiÎ÷œdÞ«´Ù.ùýEã D² ìœÑ­‰¿Bz{È'½nú¼µïÌ0ý£OÍ~ä€o€N՘Ѐ÷Ì9¢ˆ|jáŠØ-µC4unOú“ŒЗ2™¥žltÓ[00íþ ©`~õÆp¾56n˜¡qâп2¤í–c–,”Õ“d%d…ÆÄÊO5³«¹uº½àà•3A„Ô)¥‘L²ÝÆë?óÛÏü?¾OÂÔ-f“Yàƒ{ÖœÛi4m˜Ž¼´Nó4ØhÖi•è¯Ó9õ‰=‚31{* /DBʈLž`Î'm ïkU ¦ì05ÂÈî̓‰*9vIá5é» `Öâ𒔨2¯Ì\:ªËî/qEÙ²!„¿ô—þÒ¿øÿ¢ x/C² TÊæ.llMAFÓ4%ª.õ‚e÷¢6¥T­GIn´m[¸©ò´Èôÿ­¿õ·þîßý»ÿàüƒ’Á(äl!p ¢ ´þú_ÿë;”~Av]ïU9|‡&‚ıeèšlEv‡ôõ”Çô°O¯_h?B,'K :ø¡g—öÈÚ„È63"²#•Nè®ÃK½¿2·‘ô“Ÿp¢2|Eí8';Nù|·ëÜu#¡v1HÕê G`12h’ùÌïí¯î±j<ë“s•$dqÒ0ºÑœÁLcìµßŒÃE´õV% ÍgY`2ñŽ ’0˜3Íi´!æ±c!‚2óæ—Žï}÷+×¾ïCš ³¥§)»+ ÏC¸¹›Kmøêû³>>ìe&¡ À9 ¬œ”\fdÇ xö!ñN¤j.“BpLŽ<;ö’ƒ9#‘«¡vPà­Ò{¸L+ñ.qjõõg³YABÖœï÷~¯\˜YÓ4…N-zú%{]Ú†J®\À$”º×˜B(‰H­QÕòrIVÔäC¹.À(ø)È)¹°¥©œ½÷¥Å¢˜ U-Ƥ ¢ «ð¼ï‰ŒzÏŒÓ×}ÄBd”O‘’žBï¦ø»Ûxw Í0JÛ ˜ ÊªÌþèS‹Ÿ:R—H ؃ΟŠÁî=ÈD"×5ßíeÁãoÂzL?V¿v1Ÿ§®Ë}M∅-‚ 1‘SÆ‹À‘жûËlDŽmŒýëÜÏeÑáÎz8Û`Ì9Fí6Q7È#°±6ö±gÿÜlï€'.Sb²¼Ú ÚosÚd[77üì‰Ùæµ5Ÿ(O‰:½ø¥7>õœ›Î¬q‹Üè^>mŸÙ».7÷Íû,ÂÛ<_·‹‰ö~0&G^’«À`ªÆ00×&RÍ–FU&k;ÇNÀ”F⑘š:TLI˜I€JùìB ®Æ.#9Þ9Nï²IrÎe¿–ÜÂÏüÌÏQI;‡§Vj”i%ƨ lIº•×Be×§Þ{f.©ë‚œò•’Þ.rÎųúáþárQR×ã8þé?ý§‹‘)ˆªé¼â,£T,RùXþ¸sŽ™¿¹À7K¨ª™ý¾/0!rzÒËï¥|¯÷×ù¼Ó`£{ËIÑÇöé£ÃŸ¸F-8 9’ÄÜ3½áò…r$‰lBþSuhŸ%Þ£ñUÒ{6¼²?Ÿ‡/_Œ+ë"ÕÀµö/ aÌÍÎ)KÓìÚ,$N&!^\ §›Ô¢{¸í7›xúÐôŒd 1ñ‹<£ÈµåÁ‹æÙMšF»ÎÖŽýØŸgZíúààûŸµë“ÅqßÿÚÝáöZïgÞf¯,ÎxùÌÕÕó‡Í{îæ~vÂ>Q{õ÷š.ú“bˆRÎèV#Ÿö6ª 9È”MXØ;n É“–ØÞD…  L¨ñäE…2±ƒ 4`‰°‹ê¸ï¿ã%–Ǫ¨jÙÄýèGkïuÍÓ™Yi„‘J–§å~ÙÊ»ÞѺ˜¹Ü¬Rµ\¼¤íª?3×໌.`¨óyUµ`¬êÌÖ÷¼¿Ùk¯RL‘ó—½ÊéN7ÞYÙfÈC9±ÈÙÆL¤MpC7L?üÔüƒíŒçLŽõìKÀ!z;MñÞšo†öÚœ¯ç1Œù>ÛmÂWuxù,®79öÖ ¤Šœa*"`e³ÎÍâ ­×6ôxóÖ¢ý`XÎÜ­Ö&ÄÓ6ö1mrwïþöøe×nÂ5ÏN¸i²åá>&ñÅÅÍtêÒ°±ÎlÝëóþä8ÒyxÞ_ýÔs{ßõ䯯‹ããò‹wø§>ÔñAÿåÓÜøüÚÉöì Á=}°ÿâ5%éN·iæ—7æÍd’”8æ0ùÙ|ÓÅÙc&/ná-#GBÕ}5rˆ}9˜œ¸@ìÁ¢R03LTA£9R¦d HÈ ;â vT¸\‚ßäßPå›ÁžyöÕôB½YÀ°+¯ÀøU.ëÍš©°{ç­EæÕ(U8UŒÕu‰;ࣽ#ú^[õ÷.ÒÙEìºØ÷°LN!áÙ½ªåæW.:?L_ܧ€Ø1Í ù®C:éí|Ô!O¿c¿ùA‹Ù¹«Ý—ÖøÊ°=¾Ÿ7E£œÉ’0“'ĤÚ+F ‘£þÁ¹åÈ2kö¯O&G´˜´Ÿhý½=Mýô©«CÂÙ­7N_EâºõL†æÐÏ?x-u£¾†fÿÉ^#’*ºáì¼?;ÉÝ*çÍÞ÷ì_ý¡ö>òd"³‡ýÁ•£0™8ï÷?õÌâé+ǯ=xãÿ|¹»§Æ\yˆ'ÃÀ¸x8¦e럼5ûÀþá'žvóŒ äÛV\ï&MsHðÔŸøŒ³ÅùKÇ«;«ƒÿÛ½?z=Þ‹9ÛñW^=¿õ:Ô2¦éAä©=0™oÆaH¶§¶á‘¬Çî"õ:tÔ “'›½ï|bñëä$mzK:ôÃt>5µÉþl<Þ>ü_+·¹Æì¢¸ÇzxÚhö½ï¤{¿yswûìO~®©25ˆÆ™b}Ú¨BìgX«Ú.SR#6eSSœÌ& ¨eˆC6€AÎX-Õøºu "—@Å‚ìPç`æw&é~ã×ã·~÷·˜ù{>ù=ŸüÔ'k"¢8ý%°.ÑEqjÆ­tT›z§Jý•(¹ÄÖÅÑŠ1^Î(–÷ ¦êµÂ¥ëê=ÍŸXÎ/¡w“ÙÔM„q´Ômpv¶¾»Öëó?ùâäíeÐHö†—²$gÓ3!¶FtK$”ïp¼•6_=Þx°YßSíÏ„2{©æœ€Ìdb”,Lžøîï¿ò‡ÔÅÕ­ã1®‡‹ÕWÿýxô‘§ºÕêÞï¼:œ_°™wÁijœÎøìgWÉeñÛžTÓÇUJkçssÕï}âêôɃrOÈ:ŽqˆcìǰýfûÆ|î-Æe×]ýÓ¿?5£¡Q'ÊaJÂ’ýůžŸ<÷ðãÏ Ã LL"Ph´|«ó™r—MeÎi€o`f¢Ì,"Þ1XT lŽ`bƒ1ƒYH fä…š*N€K#*È@xLꃿ8»ø¹_ù¹ý»ÿÚ±ÛŒ›_xq:Ÿ2s­÷.ÔÐÏýÜÏu]W‚„iÆ©”Vªpµe†Ýþè{RfŸ–²ÙœsQgæ?¬#WÜû+2Ú|‹ô5£c¤cÒt>êE»u\ëv¢íS{G}ïÊw] ÷o1m(¿6êvd2І”Ö«ÓpôäôUŽt/§îA·¾sœÎOj'4 ¡ Mä:A"c`€ äÌdrøáï]>óüv½ÚÜ=é..GµñøwŽ_ºEŽ8Y;m-«±p„!231Œƒ£6§1m‘¢aTYe6™ÜÜ{Svv+aÚÜú¹/n믧å>ý½psiÚ¤X=X}í—¾röåSð‚×lç¯.?ò¤e#0ºMH`f2C;˜d09/`YÌÈ ÚÀ`  ú^(Wù[€9)7jH„ÀHO`ÆN¿ýÒV/é]×»B¦óÙpöÄO=A™N_9Õ¤âÄÔJ)xàø¯ÿõ¿ªja“JþáOþÉ?Y%>þâ¿X f ÓZìCyZhÙŒ‚œÂ8%ÙZþôþ©|óƒ¹`&Á1±±éSVš‘®,Q¤˜;í•ÃåáôèÉ«aá-[@Ð[È_äüZÎwÚF"‹}—V]wz2pºÒ>×}M1Ãö~ß•6œ³;¶=kÚùd9oÚ6§!v[Mƒ"‘ jxCdùìwºƒƒ“;wò8 Ý:a€F&j÷ì[Ö b°@<7Bv,FŽM(¨‚pí’`“¼ŽêU…Õ‰˜sGÄõ@ݨï/$@ïž—È9\9øÈÕl_Û’ÑG®dy¸Ô¬"R¬Aá‘Ê$ßâAÎæ¯þÕ¿ZPjf‹éÈ9×I%QÈÙ¶mKl±!Ã0TZéÆ}“P3$ò#!Úwa!Ì/ââ‰éäz#A˜XX¦³ÖL¢òmÒ[–ºêrÎqýà^w|·«ùG? ‹¦;$‡xÞo^ÿJ:¿;™ÌBpC¿M¹gO”¤j¾À“e GÀry±:9£™k››‰AœiNI‡HåH£åh6š•sâ6‡CÏsnÓ©g/¬‘c ç&Dc‚còb0ç™@-n»8l¯þÀ•k:ö¹Ûn©i\h!âÛ Þ¹‰£” ‘LÊb.‡#›µ“¢,§S:Ý¢×Øk-Ì–ël!aç„#)×.ŽÁÂJB^@“©ÙY&x"GpBŽQ•Pﻕx¬›'?õg~ê…ß|Aœ|â»?Qo›YÙ嵩ìûJË–,žªÖbØ9¨jé¨b˜?ð? ªc»öë÷Ï}à=C‚™]p9ª3ÇN±y ÏL]2¢à É‰•±!;¶ñkÛ¼é0Œý°ÙŸ Ç…Ôç÷'Ú*’Œwº“Ï®¿ûÆlÿj9¤ñ=zmÀ> ³lY1‰š¶G×gO=? HÔ|nÜ„·à†ÄA-cȤi@î²H”ÈE™€ç´øÈ~{sÙn¶÷þv:%vF¤îPäÈó"@( Ñ{!eq΋øiÚf8ëæÏ-Ïö§[ÙŸÇ”†~ ä2H¸™7c?䤯6}bAÊ“2Cɹ`–&„½9šl<æ­"©ªå¤ÈfÉ,ZÓàá9¢:Ãr$Uf82O` žˆMY3à@µÍŒËpœðørk‡?ô§~ˆ@šu·ÕvÚ3µb¯ ]ÑîéÎõÚ±´ï÷XÇo–qÂ[É'Âä‚#2)_1=¹ §cJŸG|)æ¨i7nNä~#¤˜Pìûíöø‰?ݽ¼¾ýÙ_ÞÜ~eyxczx…Wo´œøÁåÓµ±†ù„3çœ8Ç Ùzåz˜¶€‚Dˆ›µš†!n/Òv“ûh:'C+9ÈŒÜ,“öê²yþÐ-'¯ÿŸ_Ng* œ3twךÝ<˜8!&7 LüføÝmïœÍ®,&‡‹r »~˜ Îcè#ˆ °$›>5›>±W=‹‡ó5o€Rˆx&E)c0(“2ƒ‘AβE6g̼ÏLÕƒBƒ ðBN¸,#VvNŒÈŒÍˆ¸zbßhöÃ9GFõ¢ÊDUÏêW…A%vÔêÞYuf†· ¢Êïôë䃟xO¨µFÄ&|îp©7ú4é†ã+~/¦“>õÛ‹w×ouð`©*«ßß¾üµ»¿ð»Ýë¯.n´G® ¼çåIç·–×1Lfm3Ñͨ‹ÏÛÞ¦CJ‘¶L²šePg-QûL‘ÙU³_Ù²’7&GŽØ‹©Šk>ö$MÜíŸu¼½ÍIÓy¯žçÍ•u÷ΧW–¾ yó6ZŸXYÇa|˜Ng¦F¬ÄÜìM ؘñ4¹2‹ÝÈMlç!m†MÉa'“ý/¦ÂÂì\®!ךeæL 3˜B«/d6æÌ’…•‰Dœw`ΕuLRg5$ÌŽÙ˜± $ð¾ÇícpWëºKÓ×¾ö:3•Ê‹RÜQ‰Š®ëÆq,Í¢ªZÇ4–3íäžv‚—<ê÷½C"``Ç»\IhU\µ`:ý¢æ/l·¯­§ÿÛžûÌ^÷ô¿‡{ëá|uqûV·Þ|?Ù— b1ç¼È6¾ú3?§Û8]Í—WX¼{rÎ/zOÞŽß,›ýiwÿÄ™˜YTÀm;ß;L¤Ã¶Ë1rV6ãÀU_–4!©e5M–“YeˆÊ„d&“'ÍÕ9{a":øÈÍÅ ×6·N»“ 9Žs*¦#,Úí§ýƒ•ˆÐÕ– šsV£oïͲ¹Å”mÓ4̇ˆ¦iû¾±=mmÎØ¢0¬~ïáéWÏ»ÓhÒÈrÖ<;Ÿ¼pÄ! BGͽæ5V@‰jŒoóf"Fµ[Ø) Ê&ÇäB4 Ž(=*P¾„X¢Z‰æ1"R²ËEÅ5„àÁý?úc?Z»Jqx(Át *ŠGi¥(íÔ…P*Yˆ92ªÔØ”ú?3»Ì ðï½÷šwx"˜9ï˜y2k,÷Ž7b·lür_ºî­Æ~ 'Óþ‹´ù­¾{cÝ_œoNî­â×^ü«dúôü¥ÿãçƒs¬f’:šÓ¤i§ûW¸ñr4 œøI¸D¦¬ñbÓ bZ¢Z]kÚ&÷chƒRŸS˜±"1K 9¦4¨U<¨´¦¦Ô8šŠ[62ñå0‚¦ìØ7óéáGžÜ7ëûþÁÉ ±ŒçÛí½óÍëg:æ¶½BŽT1žõãÃ>w'ݸ÷üB{Ù“óÌ$0¸¶\YòÔ§{ýæözïùøَ›±À/{ßçxœ†óBÜm^˜›H6¤)“²dƒ‚2C™Ì±92O¨ƒ0¤ *Ôº&AÌTi"5)±s†‰/¥ÏtIeá ì® ¶mÛ:ñ©§ž$âBª–r×R±W¨ÕRÌ÷×þÚ_+Â…h*¤S)n-ÊáÞûåréœ+oÛc,¬T‰¿Ëťͪ{糖 ×pPœ˜²ÈF诤øzŸnóùZÇHIÓEê^ËÛÛënu1lÏ›+ÔîµÅêo+˜R«–™˜a–Ç,j®4“ö˜8ò̓)u Õ4ök¥˜à@ìÚåÁò©§Éèââ<“kÂŒrìs Æ€ê˜ÑÁˆƒÁAZ‘™Wu.ç Âþ”Û CT3¶¬”MUûM\½rÒÝÙŒgãÞÂ…'–Á yEYso')aÙ8¹¾45U˜b°e.žf=‹o,ž¿IMèc¾¸{qö•³í­r¶ùâÖ?ß¶‡3]E $” (L,CdÆ$R«ÁaØþ#˜Õ°–ÂUÔc'šq±è±ãKrºhp”û”RaZd—j­kÁÆ?ý§ÿ´d!J/DANy¡à¤ ¡¦ÖðUŽã —œ´þF§j ÍÀÂDì§,笯S~5§;½mm3X&ò)iNÃfÈ9Ån회'X¾öw>ŸzusçöÁ¬wÒ%ajš½CÇ­&¸‹°š`“1FM9jάÊ&“†0ì?ñ´kZÎzåàðÖíۘϪ ^h ’MS‚WSÀ,1Ĩ˜t4Õ­zcrW&Íþ,÷‘]•}%‚ï]ÿòñöÖ=}<ýí»{Ÿ?¹ŸÁ¬-iÏãÉúx¾võ#ÎI1)2§0µÍ³ñdžåHñ|<˜MÈ5jB9·‹+ß9åùÉêåž»y¼—§v忞1è¢D¼+ù6"WÔˆ©À €€ Œ ˆ‘¸Š–Š‡Ëˆ%r5‡DqJ®š™‹r1)¥Â_ù+e†Òá À£X’ÒW‹Ã›¦ù‹ñ/î” .ÁD¼“%{•°•hG†ˆC";gZ V°YoXyµÍš‰…åÕ€!¦uÙ%ISîI¦`0µÆxÂÁÍ'‹+tDFhšÉ,|tB6 ÙVÃz=v›1uìáý ʪýìÆµÉ“‡Øæ@m3 û“‹§Ç“éԵΔ '¬AˆÊf#´Œ!«*5Мۉ#µ¼Ãù–7{³ uÓÆ{ß6Šy8ít+" Å»ã ÝUËÚ‚$xÌ2‚ yõújz¾šÍö,*µvüò[¿ô†]n¦LÔÝïóv Ë– HfƒZ²ùã6o_‹|>íÞØø+ó:)Å2 uZÕð›É1„D ž P×\Cª¦±0q° òÈü_ç¤Dö§¼²/¥~»‡Ïf³]MkÙýU㌈ªSyZ€¾á2'"'f e‹°‘¨GÒœsŒj ÈiМ4«¯ÜíŽÏ‡{'6Žêœ)) wÁ5ìýìÊ cgšƒo&Ï.ÄOòu^7ݦëVÆŠÄ#,'ñíâOÊ4í9êì©öÅñKé|}6á©x1j ––ä``Î Õ©êªã&‰¤gOíc '0‹ëŽÈÆ“íêöŠÙ“xá@ùîx¶y†É^ËS‡Æ,gŒÝªëöPqQO^}HBâZÆÔy /ú‡ S#!#6JÙOL×Ò/òý¬Ø’oؘ$‚ÕJa'ä€JMÕ±ÂäÈ L$› ›#x¡Š 68!âK `wVâ±›l7ê·ÒG̼KGìøÖzýõ:jXR¿õ6~öýÏ7K€ôT2DG…2ÑŽ¦çïtélP4YRŸáȘSêÆã™)/̉Á2Öž"³imXgÌevõ)íGäLîzhn,ó òùjµ>Ë]àÉO‘¢JšlúìÕv9§þhæœh›å€žžw¯ËÅÅ©Ÿ6âœfW±ÉÜ€EÁ0¨%¢lYûØ£ú‹S'×ç¤ÜÝ>½¸sÒÜX÷Wi¼,„[Çm ry:¬VþG!S'“寉TÍl°x6ÅâÆþÞ³íÅÝþâåÞó>%Ÿ»…e-yÌjœ¶‘!,HÚZvgç4e5¶Dµ©&B™„! f0[5ÂÈr•“#& G&Wg9ÕF¢Ë‚¿[ºËµ• [Dêø•úNñ”ªlYÝßõüÖo툦ªÄQU<*¨š¦ð­/à›Š%„휺WS:¦Z;¡ A©Ï1b0mš¡†Ñ²æqTFŠ3ËS¢HÁóÂ…÷Ü, . sfÈ´”Ù3‡y îþÙ¸]‘Iã礖Ǭ}µ,˜?{Í5;çòýÁ’ÒÌ…½éQ1Äã¶G›k!3£ò6ªàË~PŽ'ß|ÇåsW'³éÉç߸÷_KY„Л$ç\+<õ~⩱´j?:Ûûøbõ[ýz8zâi’¦»Ø§}êÒx:N›ŽBŠyzm²Ùžuw¢zD¶±R“Р©ËPÒu¢HJƒÇ>§0ÂreêXˆØ‹@L…Ý[´`……Í•êàr 6NÀ1‹{k\}Iá5¾nÙ_½(¯›íFû¥Š©ý¿ÕjU†Ã—è"ÆX¼¦ª(^%mº®+˜ÙA¥(t}ØÒwZŠÉͬ¬mÛ’âøÖ¢‚ß¶ 3Ïžw¿|>>‘n²f•F˜ašóòfÔ!ޱKyä¥ùÚpu?ìÔîbq­„½fvcYÒºÍÁ4žXú/i² nO< µÜlžè0zj€œSTÍ6DŠÜ­OÕƒéÞ›#ÎÕÁ³PÚÄ~s¾/œ'l:e!瑪Í5UÍUùÌúÈ[›Fi —.ŸÉÑ|2iÅ»îÁE:ÙœÿÊýxÀ¼q«° Ž[æ ìÜlâuªtvøÉ#$'©Ûœ_ÜæéÌr·Ó`qÓÝó™wíõƒq›ýv}|na–Û³MáÂ$åµ”(m""!ktK€FÊÌ‘ëÞg'ŒÄ ‹U÷©jŸ Hœ ¡œ¨¾Î6«z±|YCˆìÝü:D¢H}ß/KfÞl6…Z-!µ™•]^  `rÎιO|âE¤£„Ú…u-wJ°ñ³?û³?ýÓ?]|Ÿýìgÿò_þËÿøÿã"ÏQêÉÿÑ?úG¥h¼ä4bŒÎ¹÷5Añ®`‚a~uJB^ïïØ1 ”ŽGªñ|;ö}ž¤éÛƒ^Ùÿð•½g÷ç×öÚYÛ =v”¹@i“Ç{iü…d_@“?çÚÙÜÛ”zÎçQÖQãvÐ •«a=t›ÍÉͧ¯»XÙ-É€LÎçÕv“V}Þv«Ä4 ÓÄcß§DJfPŒ†$H"À/›ÙsûŸx²dÖ‚óÛç·~ùUýªê–åz3ybšcìÎ;'-™sÎOØ5X²sDàÙ ³u1îVvM~š‹eëïoÍÍCž§ª¹Ë".›‘qÊ)]¤•ƉÒ-TD™Š%)žU4(ŽSi±(%½ ¥ôuÜ›Kn4eŠÛ4]Îæß7ϧ¹­K¹ó7yï£/.oì¹JŒÛîUýÁ£´¦øß4Á.œ:ôD^aš· [C4RsQâz]v÷¸îbÀ–Ò˜†í8nu„£'1 íÑÂß”ümmY އØcÂÝýmÞÄ6L¹S‘U)ßl ˆe—К›ûÉÕùäêÒO ~½}øó'ØÈìÓáC?ùqa‘érn/æ‹×WãoG¡¹Ÿ†¶¼HÃy&'™l\–Ù@„HÈ ”¹‘¬Ú½òP#µ×÷—74„á¤Kã CÎ]ÖAU¥ªÎ'dÄÌ$Mî"8[#1öžM«R›À*íœñè+D¢^Sf!¢ª‰àK0ïb%ÞKQ Q¶»ˆ}ü]0]¬s®ïû!Tð”$]9×Úï¢F3 CuÊÍRîQryåN™ÆR50kµì%Måz¼Ž“;›]úps–¥ÙzR•0<ÒŠàú2`Ä;†/†äÙ(ëzÈë˜×}îË1"™ó¬ˆ)ÚqTÇ” B@yO-’ƒpfaö“†Œ`äŸp4']iºÐÎâ°íj04@hÝèû* Êflaê'×fíá<ÌZôô•3½ïäéîÆgž†IaÓñò¹åöÕcYM] ‡ý„ó&AH 9AdD’–E„ƒ7$7 -'#¢!9bÝFd }?žÍ’ BŒËªû¼6Á“Ä*¬¬ ¨ÕÞ8¶ÝH®²„(¿ÅÓ…£¨  †]1_‚¼Ù7ê8Õˆ¢Œ†¨õ|;ú¿ë:<åé΃/‘÷nÓשåiEÎi5¿ñí‡ “Ep­ˆcfÇÜ>’ª¼Cý÷·ŒÉÃqêo¯ÓI&E*˺a³²>1)42LæMdêcȤÎg‚f‚°ÁØ æÉÔp˜l+£ÁlÔx²ñ&ŽÝЂöBI+²…ŽljgTaí@~Þ´Ëiu3|ëóC` öC®Mr]ë5çaÓÇ5)G.9iîõÚÒÀ~™ݘFöûB€/ ™ÜrÞ*FFËš©øiËSIq»µ0‚U{ûH«“’±Á"ìUÙ49ÏÄ”ü*K0b–ú² vŠíTñÀ— {< [Ç7Ö†‡ZñºS訊Èoc­ýmókFâñîûDÂî®ßƒ¦îm_fþ:"‡·™`;]¥¡Ë> ý¦½1u[Ñ‹8m~ÂÑb96vÞ¯p¾XM{¿ðåþüL@&C-ìÉLyÌùnfH*_?l¶vÜy’³P»üœI2m%56#PCa¿-¤Y)¶EïÀ;q3Î;)“FÍrLQSÜ›aöaºúKž¶ÃÃ.¢%‰«ÌS6L5^ÚæèêÕ¥?ëõÄæ‰“àmÈâZ€`X\;˜.ö|á8Gàz\OL”¥¾ILÌÂ$ÚAÉ9‘pE‘2±gœ¨GŒ¨¾ñ%¡B.í¬¾ [ñPù ïDD…;ªƒ«s…Híº®|lÛ¶B¥žwÃ%ªŒ_ájÌPîÓcÖå‘°/|tõuf“4Oaòtí¹§U£ 2¬¹;O_X§7úýùuw¥õ.¤;gg—ükÏm6gˆ™k‚ÔþÉaÕ™Á/½Ì™‚Ä×Rw±râ5'mØíM eddlYÔ Á!,|»?­vÀó°îx«ÇÞÚ!nº³Wή̳YyAg ÏŸZJ ÙÑÜ“WÃìÉ®Æ<"™ƒ›<Ѫs‹›G7?öÁ¡/œon ºñ´§~Ö8ïs‚BÙ9±h%>™uãéFf®5ãyjæ¢T; ©5^#›d7³”F]'ÂHÎ<§¼›øÈL—^?&éë½/ –¥ö»£Îª+dQ —û¾/wé&-SIM” Ž…- ©cNKö¿ù7ÿ¦ÄÙE•£„%Á÷ïþÝ¿+áDÞU'dÓcÖ¥æz¯C.`h÷šëŸ âÓ”˜¦ËEw7öi¾Ž/šÉá’3t;dË) ŠŒŒ•ùyKLs¾UƒLÝêå5ãdk÷‡±‰ÝÙ–[!ÏܺëäÅŤñÞýñ«÷üb²÷üµåsG''Ú{Þçý§÷ÆËk{û{›Ó»yÌìaîÙüìêR㆓±%Î#Ș…ÆŽˆÜ£ºpFå”ȪUjØÆNB ¢Š˜èA,QýŸÂ,©KDT‚ì²é«xi* Ò?ù'ÿäŸÿó^H$)Åá•¡*€)/`ü½¿÷÷ rJ±`-¡ùè;]zöú[µ@LbÙD‚ñ.õ/¯ ÔLfnpîþÃX`Pâì2Ö±¨u0sMl_¦ex!± ÏÂyD|) ÷»ù“~¤]ÆêÖÃábƒx‚iLH …›0ùÐÎAÌŽýSö‰åó1‘„¶ÝÊ_],Ÿ?ô —Ö}¢ŸÕÔ’¢n²„ò˜Ç16f“†yÝ“‡›3<$°ˆ<§²çŠ”ÆÑç6,§|¼f/¶Ò³/œÂxÿÙš®ýŒ}f‡alÜöÓÅüú‹Ó³;ç9“&äM Kav©ë-‹›zK9LZ(Ha#÷·íþÒ7!n#)1(—U·»¥H^88¢GÌ* ac2‚A¡DB‰Ë±ã8jØ^¨÷ö˜·Tµìï’U¨SWþÄü‰:¾QDJÿP¹(14•­ÏÌEÇi6›Ur©Ô}´”fV§ ¥”*ét -D—‰ƒ¡§œîŽð4¹² œCÊC†qÔ1§1»Ki¤^9’'b'`­÷mÓ䉃ù‡|D¶²“—NY|×_tãúæÍg²ÕíÇ1û˜bRUÀÀ†:#Z ]&GB µñ¼‹:Úà&²Ì#+ÌD‹ráô`n1ç!ºÆó$pp(žàᯜ}òpycy~çduwÛíùe銽¶<¼bäT_ÝžýIç&A¼'òUû!˜O™rOc—ÌYú»ËÒîM‡s­q#AvÊÓ5`ИáG L,`¼5”­l,ÔŒ2283Ù£  ¨¯ò%„×í"*Í@%ŒÞ}ÜiƒW¥×rÔ÷w"ǵީùÑNöX×K´€8ÏRzÅåÍè÷§Þòš¶Cÿ"5M¯îÅqXÝ>gÇGÌ®™9×fÖßý\ó´3CÚ¦ÂðÀa}q×OšÅ“W(òömßuꓦŒQ3’U6¦î¹c‹C´Of:dí<2XDÈ\Ò!\÷‹§÷¤1iJ04ËIÚŒÚ âDW ƒÆÄÄÛ{«ÍÉpåãOiÊmÛv]Ú>\uw·N\s0 “6Ž £¸‰ãv•‰ pFÕíí›O]pÔW0D €Â,P²”Í1ê Š]/ +s"½yQQD¾^%öqùŽ€¯Wì´Ë7¿r}[Â{w±;¿m]‚h €K±Äjº}iWÜöduxø¤¨»!®ú±ÛÆn›ƒ¹Ðô«Í0^›°g&ؘšvF"“éÞµgŸa"ÛRwk0³n}7ÛÃ>99œ §Ý°ê’ÆÜ%$Òj×k †‰z%¡cà'ìÚ'o„6 Û3XÍÞÙò&‰ãæ !˜4~zÕ-ž¸~å¹§Vg›N¬Îû_¼G™&OLš½¹*ÅuOF¡1ke…#䆙§WgÃENF3GðÈB@µÕŒJȳ’ jÌ TØT¹2&%d&e²·ˆéã2IX¢¯ß~í½ïû¾„ÎÌ\d^ 6j»¸LÕDˆÈÎzì¦÷Ö1ØUû¬2¹õ¯Õ;õÚ9W1v©½×ﮈöÞþ3Žû{#ßqýýsò4¿¾§'i|PÈË͘FXŸ‡®;µ< y6f˜ÌàÚi31˜EîþÆ-øa^ºí½.Ýêþm7™<ÿ”÷¡øBc²%K¦È`'° c@à1(“F…#ÆkODÕibe†p®yHf%¶Š „.aí ¯[ [[…Jµ_­X+”k!Rëk…W5³ù‘©*µ*VD6›Ma¨ŠÝ,Ãæ•Õx¶ÝŽÚ Þ5«Û·ÇxNlBAPC"kæ‹0™‰2MùüÞqþ¹píƒO­ŽÏ7o¥ífùô³‹££îÖvèû¨1÷ªÉŒ Þõ& V1Œ¨á‚Éþl»þÚ9/]iöT»xro¶¿ˆÛqÜ 0°°&m~v´<»è,ëä°u­øÆë~vx0Û›?¸u÷ìþJG]Ÿ®†ÒfýüѸI¹KCùƒ¨ŠÙ³{y”ñ¼§D#;¨É‚4j-a’À”@™È¦þÁÌŒlp1@ÈXedaŒTH¹&’wj二•^×ñ"RÒÌ\Ù’v(•Kµ–É9WjÅë·~«\”_¢ð’ (ð(ôTAHÉf”âðRXîΪ|·<*֦̤ëû¾(,‹Ò®]jŸ¾a÷×™«ý¾ä%ê›}×å5[\œßûáñv.¶«¸ÂSÁ±ôΆÜ3„³c@š¬±f6oÜ”$«çöÊl¤áäîÃ2‡e8;áL¡™ÙÀýØ5gŒÙ490‹·¨œ…(ƒ• ÄDbfh¦áÊ ×O_=Ž'S–)¤q îÎ7ý¶''L$Á[Y9·óÙìÚþÅë´ËDN‚ÛÞ?=~íþÍïüð˜ôôõ‡Ò´yHa¤ñ›õºYÎ5™^¨,ƒoüôÐ ')ž“²k¬Ýkó6²4¡mR7²Xe¨šúI€`† u$BddĶƒ„ e(©B”d¦>ïàÀqÊKRâøøä3ŸùÕ\ÈÖ]kuÑ((Ö£:Q¥©¨¤#J5TÁIÙ"ÅP‘ðb+JAx9—šÙ’Ö(9Z(ULD©/Ø‘o¶ö1#”ÞÃ`®Ý °Ç®êðÍ ÝÆi;ß\ôÍáüé~!S÷åõz}AW©üoî÷ëG ‘3G¬‘Y6 –%„ÞÁ¦2}qé›ÉéïnÞ¶1”û´=ßlhF%ƒ!;ï}ðã¶§h G"p0IÓƒpø«¢4ÜÎZÍÐnµ‘‰K1Æ1ùIÐ!7dÝv“‘M­xMî´Ý<Üæ ÍfÍžÏÇ“/ß¿þñg§“&övxí ‰ï.Fîáç,#yrÓ¢“Ù¶A(_ÉÛ4Žk#Ê.H9HUS$S'$ÎÀ™Ì1˜D…˜3˜‰!J"S5e©íCF¬0@à”ɈpÌNXŒ›åK %"Ñc«mcŒ7ʺqýßüÛC@![‹Øõý¦µäjeGq¨ÊÖ/…®%Æ(#®‹¸ÓOþäOµ›â1s©¥-6¡$°Û¶-™Š‚÷¾xPßõ]ßUÉ(ß6ÆIß\ß$ªågäìÇ[¿þòù•]k®7ÛW7]\ù£¦àd}ÿtx¸–ž1:²2ƒÂ‘@F"ÓÙÁlºÇl~âbîß4Û·hˆ•yQŸ7Q{’Fu"Í|6®:s-ÉÅ£Ê9ù…_>±líÅí³xbB!#IcÞœ¬`!¶˜Œc ÄìšP 7†ÍVëÕW¶“£†:Zwç‡/<±óhsÚ;ïâÉ€ÛÛÛáÍ^˜.[Iê|;[Lp…à"÷ @¢š£Åm¯‰½øÆsb1ÎA2ã8"Ec¨ƒLM 0€àɄȑ;°‘)XGìë/º$H8"þ~qUµl÷šy(³TjRÂÌŠfG((½5•¶¡ÝpÐ’”H)À”óN³ 3+#¢â}…*K{©y‰ÇY–Çëã2ÓöÁЇùùoœl¾zþä<5ÇÕéysÔN1=½{8]㈘-›4¥q£é¼g×p2Ž"QñL&“%kã<3”MÉf#RR“£C)*çD ˜ˆ3NYxç´Èóé—îÄÕVÇLCæLÆPäl£Zd!A0(9.Öþ0ð›ÀaŒ9vÞùÞzQã)4y›ÈñSáÔw‹¬ )ƒW7C8l4jw¶ûQ×ð\%ÕB "W7ÝÌ„]M–%3WñoLPÛöhv}™NcÞf°¤M¯™›åJí¼µ+D ìÍThÚlN¶y0D„U8g¡œ$³SQƒ({ãÚNgæ¡ÉÌ"Ä€Œj*”°ck!¬ÆR2›Á;"½D+Ç)©AvQzeæª\VÑR¢"ªq6€™ˆT¶¢EDvÙ½]•øîz‡–o¡•Ø!ð[ fª1^êr¸Xœýîq™w:)?œn~8é_µó¯Þד‘3Q°µëÉH“EE'Ì¢P6ÚÙÞt¡.­ï\8ñæÕq›Ö @©™øeËÎép~žÖ›<öšG BÕœÂDNR—ú‹‘˜Ü„‘›¦™y Vd†#b†›™0³cS#5vlÎÁÌR†÷“½ÙòêÞx>ž¾r²=îÚïgª ÎK˜ø4š0`Cr¾aƒÖgŽ„œ,³¨‘µUÿ»nu§ªæ¬¶HDÆl`'b36Ô`2yd+@Jä™=SÆe:Nßø«¿ú«eϧôÐÕFÓßøß(Ñdq–ªÄÓ.{]µ9Ê£j—Т°L¥êi÷B¹ÂÌßîJØ÷®—3瘰uñT··W)Û“ß³¹!ýqóåu>I” ƒJ` B9%µ,,Ld&É–eØü˜uÊ)0/[:ÍyTF W’Ÿ°E]Ý~m»½Ë*”±9#1R–p±pb%õ¡GÙÀØê/°Ö- VsÓ@B3|æH ¦9Ä éÞ̵ë"Ùî/uL6¥͘zu€%Š£åÎ$Ä4E T»_Á¾6†+XHÀ•{… S9ÕÀDN4‹‚ zT«"œV£mæGì(¿x¨›CÞuKÕ¤ua] mZ‹Ã_}å•’­+¬QÙè¿üË¿\ÊÂˬºB=•1¥Üµ4Häœ xþÆßøE¶£DØ…~-õáå…R7MS fKT15föþ5K<Öqzï´.*¡ÈÒ ³Õñºïúë?òBߨ½Ï?w^„‡ “RÞ®V1qVŠŽ™¸n`K^ýÍvÿڕƇéÌdÏÿß–ÇíäpÊDë¯PÉHÚÝ?îÎN·Û[î€Ð;¨'!‰9â*mdQbbÀ3±cvâCCIH™›CÕº A88˜Õ bbGÈpm€ÁT5enšƒg,ƒai3äUavÙÒ( Yâ¡#UñÊl$*T–”X…+«T%AfîÑÜEf¡š¯¿yHk)ˆPÁ4``©i /¢JFPb÷>;NùqŒÓ.f`æb `ö+¿ú«•6­å€¥úµäþãü!÷ß\Å¿*ù¸ò•R ^¬G!mͬ¤ ¼÷%GQþHAHцÁ9÷‡ºìïò!,F‚”²l¾v7ÒM¶ÑSvÄ®î6ÏoB =yWà 6°˜eˆΨ,cÊBµqná§žª¦HY ÆbÙ˜Â$,-ÛEœãátëËlêÈX»L7¬£!1àÈHX@&Qfc1±r³ú‘À‰ÁB & lJd02S6#S ˜M؈ “+PÛ³Ax¿ÇÁço€qJ)ç§dÙŠ›¤ªe뾨Ü,D!UK/DɵÅKrº4T”û ¥_¢ã'~â'JD^!å[ªZÌKι b§*Kߎå¿iå7{ ’_OþÎjø¹ŸxÖšlAm¢.z+‡1vý0ö19u„ÌìX$RON^¸šÎâÅï¸ÙÒŽ»!Ý룰¤uJ[S’d‰À"¹œ01”ˆœÔ©UÎûI‘® zLfšÃAÉ8ƒ˜-Tª‹j‹‚›‰Ÿ8S#&0 9BAlÎ{vbªŠ v¹ËãYôJ€7Ë:u¡Ì(‡2gv#a!ËlµÄXŒÍÄHª}DŨv€rÌÞim”È0˜iU`0ˆ«÷hªOE—’¼–¯³êÚüýÔOýTIÕ‹ÿýÿßsµTé/ü…¿°ûVÉ0䜋S´KgÕ™?þã?^ïÔÔ^AW '˜ùÛ;«î½'ÿ˜»õVl²}ØÑ^üã/Lž Û»1ö9iÞž®ºRÿ³ÚÄ~ÈÝ`Ý@9ÕpÒÝ<”bØîîjxù”½|B÷Í/Ù?åÇ_‹ ³êÜ[Ì4:ÀiK”™Êæà|+"¾m90œUÝŠÆ*Äľz!d.CŒY„ZÊf ¦)&‡žªóªá9³0Z16!XÎÆÂž‰$«i™e±L4”3#gxo™ªåVO `UGƒq$F¢³TI¯U³ Ã9VÏFœ•AdS… ±€ B±)Ìj^›• »âð÷Ùqz§/þN…ãRÍñçÿüŸ'"ÍZÓÕÞVï]9Ö·ü¤æzg‡´ ’úôJ|óá5€wN;6SDæÎåMzö‡ž˜ÌŽu»¹_&‡nãE¿½wšÖ}<Û¢)&Ê#9uÀÄ3Kÿêm3gÁÒ«@âïØÅkËgÏ»$M)DL"™{C¬M˜`çÝÄû ±¹6€!^{Ë S€‰AÈ"˜› ƒ›¦Í9e“³p׊F%aËFF\²Ÿz œ0˜ß<‡¹ç$ùØàÙ"Ám…‰‘”«(±¨Ht™Z‘ÆêÜÄ rF+ 9bËuO39™‘[M€2… ‰T;fLÆ\‹hëzuœøm±Ä»î$Ù¹Ó¤õ5vÎíàñÎ7߯®ŠÈ%Ì^Ùó]ÒþÖ;8iâV›8ÑßkNÿ~»‰«®€!wCN#u£äœ5‚Ž)0;a5Ip #§b6æüzj>4k&ã6™¨ F {Edãœ1€˜ÁÄ,Þ5Þ;rÞù!sã«þ‘sc <Ú:ÌçŽC3›3g²oaÏå! ÇÈzÒ.³ ~j‰ˆk¼æä'2ý@»ýR¢è‰…TØ3Ó ¤ c1†¼y6qê FžÈƒ@„l¤lDRÇ‘šˆÀdä™LX+ëɈAôæa0%"3êë5r$ìãc‰]qxaŠJñ3—À 0ª;¾¨išajc€w—á‘K;ôXÈùo0¤®×fV³-ÌÂmÎ78nÓ]í×ÃÅ:¦~<Ý`“0FÒ‘4'•”¼˜crhŒ&YX$;RMF±×ìµî ðmÙÜ9·Ñ¢¦±ßČ̽q®b^ pÂÁ±gÇÎy“'¶Œ ‘ÕTù°‘I9#JšhVƒš3>Èþ€H Ô}‚‘À`ê™Èà§ÞÄ)+dž^ 6¢² tú¡6ž¤x[ˆXL`Âp ‚ À@&³'5@žLŒA$ž˜€D€Ô~k@$Â9¼…€B…P!Ë ÒOõQ- ¼„¼ÄcIØ:¹´0ªÜ¾}»ÈøÕQŽE ¶<*eËår³Ùçª0­¥Lã=(]ü!Œ%¼‡& ÂÃO] kÝ&uê¯zßµ©ËÎ5ê”a¬9ê` rÎX™ýœf È8© C ž…¸éõTSRa'äsLýjm1QæQy¬R.êÈ„9&&Î;aaøìÔQ&6f¿+6ä@$&yúd…${Y–FÂPT7Z¥»ƒZ$@™Œ9 ‘Xf$i<;ÞÛƒfÿ™Ùʺx—œ€H F vÙL¡‚šv+  ` sd0ÔÆÌÊ sÊBµÉĨg¬Žõˆ¨BâÿOÞ»ÅXvgbëºoçZU]]]UÝÕì+Ùdw“i‰QIq,Qv4ÖLb#A$žGÆ$€ øMOg30’™d`9°,qd›¶lY¶GE‰”HŠ”(²ïu?·}[·¬ÿ_»O—»ÚRU9]rÏllœ³Ï>§Ñë[ÿíû¿?‚¾ã´»NçëqûD¥Ô§S=ãÕ3üsŸcýßùÏ}îs¿÷{¿çßõO¼$‡O+í«+èðó°âÇCj§N[3\ƒ±ð<Ž’c-^¿¶V^™t»´KùqËuUYÚ¯£aìZ$ÒvÔ’Lª:×Ö*£ƒ#l$eY”¤½8ËHÌlåt¥ªÉDå9”Õ¸±¬rÔMÅ‚ˆckb„!ׇ¡’¿×­«q¥#ç)„óT[>±±b‰¦16(b›}5clˆ9œ«ˆåX ЖS1¶P” g(²™HXû¼ibKôe5S™UèÀ#˜¥Á» iÀˆ¬,àŸ4¡ôF§í¤!'KJmsñö#@×c~`ã»Ý@Oô§î8yOÉ#áüùóZk_yð…¶@vòñÑ7Hx+áÓ¬þOkÝézþ±—?-ö˜bÚQ*²äøÇ—Š7MýŽbÎÚbTon«b¨Mm$…•%£vÔIy€ø£pH5NŸ 3Ž Ñ™Ÿã½H1e4jˆOrmjÍ+C ÇB6‰˜ˆ:Šƒ¨–0Ž[p,iFhJõ@‰HBÖTÒ)5Ì55XM¹‚UQ†FŽQkè¡ñ@R0¨“ÕÈ4mh„…?E©°”-¥ €£Ù’Èue·3±°@6qYM¹#%b’k QÑ .`ìÁT³¯‰Âs8|}@|…Ÿ ذ¶yíšÞïîw†žþØ5¤S}­Ú“½_|ñEÅ+~{H„æ!/ $.µÖEQøž!¥€Üµ/qøÅàÿo÷Œ.` ZwbÖ%¦ªÕq±±UŒ·•S6v$•¤Û‘]á˜ÒU ¹1™Ôbߌ¶¦ÝËz+Gh Øš›*Kc¦¹£ÊQLÅHbÃÚ•qN¢Á‹#žE´åˆdŒI&,q%ÜÒ6òšNçpÏàpá_ƒ™Úº0o kÈGªø(PJ"p—°¸€2[–ÛZÁò`Ì)C8nØ ¼ÿl‰©®¶#çÆP¼¦1µF6ìèSé\b <ÅåØÎ«qirgßj+¶µN‰e›×q1Ü,Ös•×íþ¬ìÅeÁª2χãrÊ^O°J®2®ƒÏE5r.8O"ð””âŽÃâÍBP \¨•â®UCÝÚ º z.ñgëÂȘHH Ñ”S£µ)+ÇÜEJ*B¡š‘‰ÖYË‹ @›äe·g¢4>çÄ¢I¸`h€ .÷P‡ÄÏ5ÒÇá ¿)wˆ¿ºpF³vHš5SÇi'¤„°Í“š|C)yÏÃõòÌ`»ž„EIú»Â kÜÚ·¶o|õªçnhng_YX>žäQ¹¾9ZÛÈWGe™WºÂ¼>™¨áÂ'Ïœzî’©ÑÛÛo­åëÛÕ°”Ygþ‘%“bµ*“ÉÖv5Þt°1aÏ„ÖÍÈÈá ´T‰ˆËXðHW-L V¼tοbiÜΤ”º®Y #w›Ú–¦Ï8õÔ­5iÒa’A^GÑIB &Â?ànt®0þ5aì¶N‡–Pº\›È9|-0º¤0¥!$܃Ñ3R—ð åJkH8þ Æ N]ÀÏÝT zH¸·1ò‰TÏëöü h„xpk­WÄQJyÿiÓÒ¾:ÜÔùÚ‘k²Ê Þl~{]WºûÐ|{f¦ÕéÖÛùöÕÅ­­¢ž¨¼²Z“Z—zRÎÖ ŸxèâgŸ‘$¹ù›ãµñxcÚ¦•žŸ—<­ÖõøÖh0Øm®k“6×y?œc‘ÙòÐefmde72‘$F1ÎÀá÷‡2Ä8—B%$ŠS.bªœH"+¬!3@‚ ;³Å!@X‹Bªžªwª_Ž¢zXqV“\•Rƒ š1%Pûå'€P×£&Ôà¢14 h+|1‚‹Šåˆì ŽH !f;ÐuÃÐh”ÄV§+7П.$B0ÝïÏxŠž/G@ÛЃsPJ}À㇃Ykÿ®IXÄ®„Äd+ièã]!Ûí~¯Tƒ+«ãõ—¥©Fc]”¶®Jš×szöCÇ.}ôáÅó+LɱWi¸6Êon«Ai´5')ýÞW^>ºxrlÇãõa9:t¥±kÔQ†õ`phB Œ±e½(R²XBƒ‹¨[›+0õÂREY"ÎÙâÚ*Jܦ(‰˜ÕÀÑ#¶Q,¦ÒÑH·–»|;®kR$F¥µÕµœi¨(}›À&„3<±Ö9¼DNÊÕXà@zð–2\B£µÑ*0ÂÅ™wè-ñ*°`ü‰6š ´™ÐØüÂ;Øp›7½ßŽÓîÃÝÃ<€‡ÁƒRz@Hëm´7€‹0ñ@¶eGJ©,Ùʇ×7'·ùÚ@«b8m¯×ñDœŽ|`ùä³çŽY’"ªs]nU[ollÿ`µZåü…?{ñÔé ßù¿¾ÉÓ(››qµ²Go¬ÿ# Œ4L 5…Úˆ&bG:0A8Y‘u’°Z0CxDy;ašXÇ™ öA>9¯ p®šœ¼®ëëî|œ&z¤„M£à¿Y.˜ &ô+iXŠš:U(}ËÀ8«ÍˆcŠ–€nKd$•E¢q‚3° •…š]ŸÞNt6Þx™4E8„»ÑÞÝoSaðìîU¡òí>¾×ÇY×Ä7ï\@ÐîûøBUñ½×ÓQtní½£õÁÊÅ3q–Zí¸“Õ¨ž¬Åö¤X+Ô *ÅæÆ­‰Øî~¬µòþs+OžéésÊM­ë¢Ö]n¾ukrkÛT*×…x*;ñÁ3ɤuôἌ£Z–Îàˆn0µ8°|:ÄöuÑÈns3`Ê1‹RSC6È¥aïeŒF<Žã™˜v‰Yw®&<Ѝ¤2ŽëaA ÎÅr6,™ch ìtàŠk–;šÆ'ÓGƒCÂC°Õ.w:I’/}éK¿òk¿ÒîµÓ,ý;¥DímÁ'ÓYøîn¸ã½ôX_[ÿÝÏÿî¿ý7ÿÖL´Ö²”VEù×ß|÷ëoäÃÑÒ#§9Iô€›!{×Õ`´=®×Ë¥Qÿö¹xaéái’¯Yíš±«íw·'c£T^OØ¥øâÿtyµ¢7GDÙáúÚHßšlnRF°°ËˆiJXÔ61*„ÚÌ…ñ IÖ‘QJ8#‰³¹G¨¶À,ŠŒ6ø¿,æ"‹£^¬Y匥œ3G¸D½|S`h '™añÇ\—Õúµë½ø—’Y®µaRÇÔ@YSÅ+‘Q~eÀ,£aqXêãþÌ©†è댡7 ‡ÛÈÌ:N™”‘6½BB…ÍÙAÅK,³ø‹°é•7ÁE?L-%Å+øÞ}ŸZg ©w¥")¥o½õýóÿÌó ÎÞ*c©*Å$ŵÒþ,¤ëÞ¿ô×C‚«®jÆ™¿'1ÄŒõ)RÐö}íÆ÷‹«·V= K)uÀXÂh¥2Jéê®'ýv{¶·u-'7¢áöV[ÏÄ ÇOöŽ÷[½6¸ àëæŸ‹…ü:)Õdcb´ÒFëîéÿáý>½¥¹“I :l­CݘYŒ0œ  ç »µqÜ¡oNÒV_f)ɨÀ–:IµÓ”9+jô)p5qÆec« £š˜agjPÌÁÕPé¨tÜßVž*åƒN+jÇ8H$]m•*uRd3RÒ¬Š ’S!$sà2a0é`¤ö!óÛPD.ºD,†qå<w5øaœAõàÇ0¹…²øÁÛsäÑê¡%i€q'® ÷¿Zg írœ@ñ2ËN=uþÂy ÆÙsð»ðüÏ=_UU€5Ö+²™¹™Áö€úú«¯¿ÿÙ÷oom/,.¼ñÚk·Ö>ü܇ˢ¤lߨÐJwzWþÓ+Bðž„MÛÙ™÷=F,MgZËgW’vgÛ7Ó[³Q¶ôðÙnb¬ÑhŒ"“vçl`øê ¯oד‚ð¹;«¢,Š·ßxëŸÿê?ÿÖúV·×]8·ðÖëo1Æ{ü±ÉxÇñ«/¿ªê:I;G½~康HhWlEÈqö`u‰)j%\ƒŠàöM¿ˆ1îñ°»•bçÀxô¸ÈèV¾öúšÑ¡Ùc½ÙSG0GAëm[u½^—£œ2üxœÈVu3ç"ƒÃQF˜ ¤|Ãó¦`‡[ÔÈ—úÖ¯3‘ª(8Ne¥FàØ ³­²Î2ÈA)BÁmeé¼.GeÃç„gþ:Ä<öÍJq¡¬‡¤fcpÁÚTḟ.`©sGLÆ…ŒsÉ‘Dã| ìâL°’k¨p’­" q•¡ È'Éø,Gî¬#À7èA¡ ¸X" Ó Eš‚a‡¡‡»opMõzA(nÕúLWþÐG?4sdföȬµVJyòÔIGÜtW={áì`kÐî´­±OðéÍõÍÅã‹‹Ë‹Ý~×cÆ"ãfß0(2\æƒ&a1YP±áÕΗw¡ÿ¼+'ÕhuL4©Ê‚¬°…ãóĸJ•Ŗ޶Ùö±.uÍ Åj•/ØÁßvœáN¹ó™›#Ðm=j™šÜ bÿ Œ‡­¯Seˆl"RG´ªsJg­ q´ -“õR¥‹MK Ú>6”¢š¿Ï n€÷›¾OmEÌ\ªì¶¦\"Ó3’4¢ŒšZS Ì)$ήE†+òg„ÆHs­àÿ6~¨A@¢JF>°Õš:Ñ5+žB!hH^Q¸3“vl\ð@Ñ–4Oî{¹ÌÝmÞæûÔÍd2 ‰ ƒUÍd$·7·¥l¶Z!Å]›÷üÑycL¨,Xª«zùIJ6ºÈ‹ƒu\8ç¶6a„…gñùç•#Àí1ÿ5e>êÚ0›kg¶­—´îå+Oç’çã\HÇIg¾µyuãºÊ‘MIçÂŒwÓ‹áˆE²ÊK‹…_ BRp¾™3!JÀå)Ðù¦Úñš(1Ù¨ñ„2†Ä ü«¢u'ŠÀ‡ülÒN!k<8¡Y‹ÑÄñ;4°\ |¢ëÒdE’¬ £¦3aüOÔ%ª¬u%QqsÁyÄ™ÇHH°Zׄi&MarÖ"ëñ¦4cf!q˹ÀÊÀ=X¯G1‚b†Œ;à[Që Îבµ*©|Æðqÿ!AÀ½3µ>þñç{ßyé‹/ÍÎÍþ;¡ýyZ4˜Òéï¸t—ÃB’„Òï÷žûÈs^É1ÞÜ®êêøó'.ÿìïüÅ{BGZ—ZÕ!^ ¡‚E9I­ù@‚9"­C Ž‚RA-m$Ö1ÇS§Z7I¸ŽU>ví’gðÓhcŸÁbRƒæXOd °bð}K „¢ºŽ5–aL‚tA#[ÂR£·'u)˜%’Iã za+õ´H¸+ å¡îhœÓŒDB™ KµÎkdƒ˜¦ã\¢F!ÙÜŽŸ ¢"Œ4®Õ’ʂظB,ÙÀOºo°8päSñ¦ÒÈWÞ»¦óÁ9qi’ž9{ÆãÙ³X¢(ŠýÊK¥iºó¥IL»Ûæœ×€'Ž¢ªª s&ŠòÑp2gÄ2?÷ü¹É0_ýÞ£B™Réל€ Ñ„«µ…Åêx YPWûn­áDò(q¶tD;@ƒ„nlŽ˜´´ª¦‘á-ª'°œÁ2¸Ø E•!™X2§ÝmÁqNÄ‚ ˆT(g€Q°uç‰Ð˜­qQÖÆe¤¢ÆN¢Ç3lW–ÖÉ$Dú¤v„§-™FDDœRS)ŠT˜T§ã §à¯0t4ár›jɰP–™4®Ö$Dã÷ûØ kmǯ¼òʯþÚ¯®®ƒ0Çþ'\;©¼”ѻޚ^ Þi#É´K=ìMŒ±˜ÉbR|ü£ÿ­ßú-Ÿ!°ÖîuV]˜¹÷ €1v)Ò9g´á‚ßv@‰RZ+•ÄÉ0Ú¸uý&¯ãΩ™¹,uæ:ë×6ê5eKUÕ$MQ°ÀÝ={$I‘­²N9dšjÉý!©’Q1.(Vä¤L¬Ò&È…I&2Î…€id\U¥RÆáöo ÖEˆ¡ÁëGÆ™®„2 ËÒ6õRáª`D;3×µ®¬ô<½¨kã¶°µõ6ŠvŽS«VD1&$²ˆ9ôµjkiBYj˜$¨£!§e8ÿ@3ŽndSuT8« ±ä>CÂM§Ý-u^¿rÕ/ýO¿”eÙÞõÈBŽ5ô0O[=«²j(L62BHX~Ä‘8†Ñ(S¡熯"‚¶‚žÐ}q`¯]¹öµ—¾öÞ»ï]~ürY–ûpœc÷ô·v_üÛ4HȨ¨T UíÃà‰Ñ&žÉZÝ(ß7ììg|r£$ÀÄÓª®ˆµ(„¨fÞ·pñ3¼þ§×Š`= éÁqð®mE’q̺œÇÜíØ «kÅQs†T Çn\ˆk­AΩ`-â‰g¡Y&¸å–h$mã?–¿â*j­&5µ…¡c”[ÕÐ\±‘‰´Œµµe–F™ -Kê0tÔ:ÄÆ¥‚£BE(­Œá4BΦ˜$jJå›&ÄLâƒû3Jèˆ1Ž¢VFo‡áÜ[GÉJлgJÄÑãï{üÏ~ MSÎù ç|<{jFÐ((ŠBÕÊI]Õ\r£Œ/cÄ»‹ä“œ1öò_¿¼zsÕó8:óÐòÊòú­õþ\Ÿ8rýêõ·ßxûòS÷ú ²/BÇÊ•ëï]§¬Áä¾Ãëݼ6æô Dv¤íœ…£Ê‹ÑÖ°3Ó»üsO.(§ad“ÞvT-|ÒI†vÅ#Ÿzº;?{^ƒõÓhÜ[äQžGLHé”IØ32+]ͱWÕ1ä›6âHTX&‰­šz¬ ¯ZÒjg‡¿KXýœ š2UR§0Â!´°!ÚE‡ 팲©©+-$g4T \#Yú á1qÅ]5(@ĤÜÁD>ˆ•º¬ UÄ`쬂0ÀÐB`M„#ŠlÙ¹Ól꧉Èí®KpÎ;}¨+#¡ƒïÕ› Ô—Þ^ûök[›Ûiš$iâS¢[[ÛÏ~ìC_þ¶ZÙ•w¯|ò¿úäWþð+ž%ô‰>‘çÅ·¿ñʉS+/þ¿_òȉ“øü¨ÈóOý“nú±üëŸxÌ3‰ön¦øc€—EÙÿ?Êá”Ò½MyD×xÇ¡-ÔáËÑdëÆZÖiûçY+«ëZ²±ÛÎr]—,}0eÿ‰ÅùsÇF7Fj¨­³LpÓäÔi΋${²Ó=9[}Ks!™v¼%Î?*B×ã6 n'¤±2 ƒð½…\Ââ“IF#1ηh…¤‹TÊ86TÙÒ§P[«)ã!ÞÅA|”õ¶ ABÐ,P&ðÌ1Ô)sšXtƒcæ´³E­K.s a c’颖Î,¥(ˆ$EšT~U#¹䔀vÒ Z™öž$vMÎø>V¤1~Ë÷ÎB¯×õ¶"MÓËO]6ÚüåŸþåµ÷®z´œ{äÜå'/¿óö;žëñ¡øŽÌÏõgúÙàS6•Y¸AWÖÿÐyÉ"I‰Aàê ûD¨š’ú(<šVr”,6_ŠÊ‡‰hg,1 5‹¼`´‰•÷0mN>eDŒÎºiÌýÈc Ü Ïð{ôÒ£EQD2êt;ÖX¡Øæés§«ªrþ\ìÓêÁ7”e)¥ÜC]â~j ?ª;Óou;þyÈDQÔ«¶t>Õ“‚G¬*Õ‡N\þÔSÌQL†Ù}ë P'‚#Ž=sââÇ/Cˆx$EGÜieÜ6a 0ùˆµ‘ÈêP"@ñF<™C.,ÓÊPK“V'ç#§µ£†q0™ ´x…/È‚' 3c Û•ÓÑlîXmÇ(°‹P4 É™Fe#.[Z—Öä Æ4ãH(·Ú~âmTpŠ@B$P‡éaÌŠ17 yñq(IX¹›°ã§¸ÿÉ×þäËðeOÚk°¹g\àBî"kLãRŠ˜?gázs›û)¯À­:¡ã­7ÞZYZñcW÷¤ÐqŸ°1mÅâx48ÁÆ{]Ú|£(Ç#ŠC,È‹?ÿdš&ºÖa«åmÉúÕ8%(êÇþñÅ8ŽÃ7ðH2×$tO¸k âT Í6õ¶Œ*‚ö_‡ÂƒöE®ê’±L»Ÿ ±ZBySÎMeSPPÎT–'T$ŒÇÌÔ¢:8Ngd$䔜6¾…V Æñ¥»m,@TéJ+Ë(åŽQ.ˆCjÊ0‚o¨}gä ¿PÁ›C¦²göPb‰lgº)Ìeôò¿ñ?ÿÆÍ[7C]âªÕ]Z¹ôÈÃ$i qXVb7*pEîÎR{ÒG±Q‚Ih9ÈϽðÈâ¹E]iÊ©.`ÈV„Dn MMV>tzñÔ"!Pà±]ɺTHYm?NVç …*˜3@XÔIŒ‚³H8¡(×\]h]é(‹³Ù^1šøç¶v¬ ¤lkJ&pP*d²ˆlqž@hÂ#®võm©p‡Ñ?N0Š¿6ÄÝÎ5  |D‡qIPȤÄiS9EáÁ¬¢¡À‡c<’`Þ& €Æ8ÌÚ4¼#{¸áµ›¢":Îâñà*t„¬À¡Z‰Ýâwá¡×¯`ÏèøÆ¨u²óðÇ.Óü»›ÚØš0! P\è>4÷èÇ.M;}“NâFºœ«òRMTw¹od¼uýfÄŒaq+ÓšïâܾöNs$<N[£œQZM*Ç"Ndœ–unM#æçÏŒ ÔpS<£QÂvŠãuÁpÕYå„JëÜ¢3f) &*Ð]ïTÓXPKS&àžð  qÂ5ä@ÃÛ wu"–;© ÆBhîvìaABŸã.æ[`tçyW¨CÇqH‚•Østáàåd­¨·LM /Dàb{éŸ>éSÝ`"ʤJÔY }t1“Iôè —ûGúF)%B"ÍŽ*bHuC©JeÎ=ÿÈp{míG×xÄ0w…wÄ´6 çNœúâÍ×ß®*çp¦W›©aEœ1J›J‹4“´Œ•ªÍØâæ”Cøb‰NzôN\à Æºø…“HêÊŒ^ª÷¡‡¼¹BS£I*QN‰ –“1ÿˆ¨S C®à !*³Š™ÊÆ©¬KÚM]q:tHÜå !nÞ¼ù›¿ù›¯¾újP 8H꣥Ÿ(ñ}?vçÏ~ö³¿üË¿ücR±‚þAƒ×4Öu™‹eïX{¹sâÒ Sëi§}±]aâ–fS²òÌé3O‡¤DL\3³ŽF­È «™ªt:—žyÿ©7þ|D Å$Êp/0&í·W;ë3]'.Ÿýî}¢WÉeÂTËè-¬8×6j±¸ÝbkÛu^—²NÒÄá SUÕ¬¥yÂ!cëœC”2IȃäDÂuÉÀ¾a4¡1³¥¦ØÓ3+ÌD…š “E6ÓâŒäׇ¡ÀÀØŸ¢¡ ‘ ©ËÊ!iSî!avsœc^´æÅ?~ñƒù`ÖÊö»p£(" ÉÖÚjï4r’uÊ+w°ãîhÛ„Oíw¶uÖ:~ûÿíôÜ?:wþÜ:7Щʪw¾}4˜sgøˆ16ߨ¨…Š5‹YoyîÒ'žŒ"tMš&¤;UWG›‹bi­ãRX6¤\-Õ•:~ñÌüñc¦Ö‹gW~øÍ7F×7¹BÆQOè1t]¸¶‹û’ÇÝáú¦“¦¹;úa®@LÖjSd}Æ%s¥q”²°ÓýÉ™!øo¨Cúɸ h«5åw"Ë•ÍY¸!th0N `"0ùæg¹Ñ“ƒÐ½äYá,Õ¥cá2â*-(¥˜“=d+±{ ¯ëú™?ãEk¦„޽À]bvëÆ-­u¶ßj·d$­±þl´¹ãèkãEe<|Â?vö›`B¡)œe$‹¼ÌìA ÔÝ&tø¿þùÿóóUUí# {h~T±¿öõÁA÷h€0U?`´Ì«r£NZ lòÌœyúôÌÑ]é³$óë¥8Cl5.0ÇŸ\r8µèñ» Mɇ.‚×eíëA§ž<ÿê­¯×cÅ…”©”]çrëE9M´â~Æ:úéÿúÒ«_øÞ›_ºå‚'5ö{†šSøƒHM7F$‰Ð„qT;H„1–Ì ™[Ô§…¼9p¨‚yÁI.ÛÚð6 ©Ç9%ÝÙå¢ëüÖBmãXo"J™ã„*M”Cx0‡U—p»}à(Šfçg}ÛgPèØ›¿D¢Hz<üÅWþâSŸù”ÿ‹?ýÚ'?óɲ,¿ûïžxh%ÌÃñê,ã_û÷¿÷ÑüQOù«?ÿ«n¿ë›~¢8ºqý†ªU’¥eQøªö¾ÿƒ?÷‘•öNè`œõú=€±s÷ì:š¶[ðõ·7òñðò§ûñ7#“õRT”E`IVº+—NZm§žg°žÉ¬¾•׺Êó¼ûHgf©GP›x$ ‡m» ½¹¥ydþÁ'Ïçtµw„¿ùtR:ÃPpì¬rœpng{’Û|uD4|ÜÈØÇ,7>o‚}˜Bâð­D0Ô¡ ¬”¢Œî=–5oo(â$>2ÄGwEQTeuãê ¿ÊË¢ôïúëžôáõË„._øö7¾}òÌIg¿z§sž{ó»o¾ú­WŸ}îÙÑ`”¤I>É÷n%ÂoF<ìŸ KñØ£qØ/~Â3KmžÌº±3w ‹  fõ¹²åÌCý£5ÊL‰4@;;rØcî–³9qn¥{é—ÈZÙ‡?þa!!,ÚYžŒ L¾H>û±gÃ=ÇWŽû‹S‡YkíßÒJ )T­ÂwîE£4Ú”m~üò÷ÔàO’d_.Óx<Þ—I œûÅóÎÝ]u¯ŠúÈñÙ#‹s¬e»s­v¯®O;þò<\ìѨдl¯HÖr£ÑÈ7M4¬UJÄ¡–‰²®:íN•µ6M2ª€›.´:óÝm7Л*ƥ˖ZfÆ2#[i«®jo[zK3G[¾ùÊ»ùvþ§R̆Rð„Ž|˜ó'‹-¹öæ ÁµÎŸ’,IRQ¬´.Ãäw*SßfŠ2£ª\r ¹¶Dˆf¢rsâT3ðÆ˜€9‡´¨ *?¼Æræô™ÿø•ÿø­o~ËûôÓ{÷J¬ w7Öá“= ؘžðw¿ÿú÷9åÇŽ›~Ï>Zˆö‘ÛÂc¿À$&£»ºêã$ê/@”öÅîŸÄÈ™ ½ãÝî| Sz¸¨!K /Z³YÖomXß6D4í¦ŒsUUºÐŒG\²Š•”´ë.‡ŠY™¯Uag2F‹Xž¸tjýzRÉiú·C2£tшa»¹ˆ¹­h«ÓŠ$Y}ó ¢d‚ÅmÙî¶ì¸´yÁˆÃP„‘0zöÁ0‘/õ ‘µQÂi/ÒãÊUÈn‡cMéÚÐCŒ%îZïÐñ‘|dœW7V5¤$BÇ\<÷ë¿òë3³3J©Pš8H Ñɽ˜³Ýru”ÑÖLÌ8½ Ä»Çi&YŸœå"p*Q\,–Öp«b¡uÝ_>Òêwݨg”±šXE«a5^©BóÌÖjh·(ýa¾©§zAθåóË›?s毼î4åGK*Í#¢ªÂÉ”rÉ(cT'8gÙ‘®ˆ9Õ4äŽ Á€:UŒj*Ѧ¡ÅSGáSÀÞ¢°ò*‘4®¥Æ£XR¡¹±…"·µ±„½Óˆ»§éÎús/üy`§}æÚ£:ÕÁÒS÷þ+P]¦;ï¹ëþŒH03;'MfýŒ@³•íXõâ9ϼt­ï˜]m&CS®žÔå°pó«•ëK§gOŸ˜ Æwæ8+¤8÷óƒ­~´‘Bc,›‰pFRŸU‰LhÐëpê´ÝÎz‰Îë(–ܬªa®òqœIB8xÀÆb6Tq+✵^š°ÌȘhcͤ¶ÎrlsÃáÅn{߃ˆ¿‡Ê"Äýd›s71Þ±äR¢¤²xñ̲5v'àê`n<—"B^ÜJÕDxZ.<µ²ú½ë²ÕÄ  õ ÃðIZ‚ o5Ê)'i;0pŽ˜¤f+ƒH¦ÕϘ5#è™ÐÎG„1JDœ†ŽSXåz l3‚³ˆ,0Æ•A·JO§Ã¯KXì~ñÅÿåÿú/?tÜR£!e.íÅYÛR—ÜÙªf$‘1‹˜˜_žáNo¼}‹pw ƒO°;±±û]ÛœJIØ,Í|ÅàÔÙ‡˜B´·‘+®‘nùêK_ýèóýó—þܤ‹¼8qêÄÕw¯Î/Îw»Ý?û£?ÆÃáðäé“ι•Ó+^ÂãØÒ1¯Üáeô½*‡/iŸ<ûP­êª¬žzæ©}Ì"r $’,ñ<)ä^þáHÜŠÒ™T¯Uq7nÏvœu;w§r\æƒ\¤òÜÏöæ ºwâÂÉ7¿ú&¡4í¤,âÖ:U×QïÄÃÎsÚJÐ:ÜâCKÃkjP(««b4·ÔQ›·¦U¨Ð£±É+B@þL"RÞ913r>‚©\à õ´Ë­«tÖ•8({g Ñ`7H¦çò÷Ž%‘dI·ßKÒ„±}:”Öù$÷:Î:?q+Ïówßyï_ûº';y]&¯tÿ/~í_|îûÜ—ÿËž»áÏBOþËǹÇÃx4þì÷Ù7¾û†‡Ðâñ¥c ‹ëkû²QÆÿ×e$÷Aèx s Î9Ð%HbGhÒM“VŠ¥:%¤·'P<9¿tn)X¿V¯•õ[ù àRrÉŒqe^Ê(º—atÓšÎ[éñó+ooŽtLçN÷Ž›MòÞö(éEI;íŸK†¥©Ëª Ì¸¸Y:žDÒi&È3îNÎ9¥¹u(Êz~Ìùð!Aï9ûÙZtëö9ÈHzbß¿û?þ]ÖμîÆK_z‰QægsÍÌö“$ž?6ÿ¯þÍ¿ò~‘GZUUžûä(=/Aàñàô‡_øÃÍMÏÛ{õåïH!Î?z^©}Œr4ÆNÙÿeX 0œIîÙˆ´wÈ‚Ö:­´_¯½ù®_Ð „¤ì-öG«Ð«  EXQŒ‹N¿û·[ßFÏ3wìH~nùÝÑ[(mF:G²•ë÷Zi"#ÎLQm_[+†cIyÜi;&ªYÍ[+q‰Z;¢)óNTì†ÁnHàƒ¾•À2+žŒµf?%Z~øâ 1•EùéúiÏr]_]‡h¡Vžëáßò4'‰‹O\ìÏÍx­TÀ?O’Äß)„ðÜX[˜t\ñ}ˆÖ8‹E]äwü—à89.yÔŠd*fÏr)¦ŽSðb£4êÎÍÌ.õ¦eKêè©ÇO]ûÞÕÑê(îÆQvOr×N9Œ²bîÄù“—e>±–No¡3ጓÃ㬗ó2ë§i,‰3!VƪbÀiâàù. Üó¢Ù}ñpÃëpnD‹gggoüÕµÕ5ˆtisyïÅÙ¬•y‰áqëæ-)¥ªÕF¹Þò<šKﻤµïm¸é¡RE@Ýp0”R:â6Ö7â$#…öõwsW¯\-ór¦?Ó”bñøÏÙJ0JCÞiæØP¬Ùi@„ˆZ}‘´¢;õ>âO-]þÄå×^zÍ»xféÈÒüßîhº ½AËçŽV7¬4«ÕÀè‚PTÚŠé‘v»“­]eèߌ (Ýišê5>Ù+NÇJL»ƒƒÄðóž{î¹7ðæ×ÿìëžqñS†]ó‡ÂóàÖÞuÏ=?²_×Ú3jÿÙgþÙâÒbh ’úÿ9Cɪ4íyx—¸»õ®=H sÛ;³Ž<üô…öLg´9Z>·ü··äº»…dÄçŽÍaÐlém¹ã@UmõˆÜ=ã„PÓw§Ïw]Ùý°äÿkïjv›ˆ°gk² ¥­€C”@ Dyž‚àÐÆÀ­—J=õ•´.Uù¯½c¾ñh­Õ*+¥+VUè~²FÓYïZ«ø«3§ûU¢Ì•7©V4$¢Cïö1ëÐ@Ýë4VÚ Û® ‘ê]d­Þ?°dBïníæÃ%ÉVHíO9‰µq¿˜ŠeÉ©LkRD’Ñ™Â!°A#=ßO˜{r‰ÐGõ2AT/‘F/ Jƒ^”J”ä}Äâ •Ýôéíd:C,>î’¨:tÏoÜ ™›5DZªé7Ë)"‡-uqq1ÍÊH‡ï¯Þ_—-(-XÞt#edöÁø>¾ÄWË}×û7Y­«”)´ŒSëB)-*êv O2‘-‰I©8¡=8H .cgØZð]T\€{A…}€.Ó¥ýqâË}ìÄ×,òµv53’6ÿB\¹ù8>§³ûÇrïv#"’|»Cþ¯‹>¾]V|~ýéããÛßNñ¹ÜËøí¾Py¼ÝïJcÝì‘"~ù\À‘ ¼/Tfù\DÇ#V8R$=bá‘ ¸/TÓ#Ö¬ñxÄ"{œˆ§å±€ãx_¨< =bQ”{¬±Âq"i…Ç1à¾PyLk¬Yî±Æ"{”ˆ§5–ƒ£øX(< ­±(J=r¬p”Hʱð(< )Çš¥9ÙcD<åXŽaàº{ʱ(J=r¬pŒHzŽ…Ç0`]ˆ=¦çX³Ô#Ç"{„ˆ§çXŽ`àº{zŽEQ;W¡È/÷3áw¡Èåq&¬ <‚ëBìñöõÜy{äÛÐŽñË×XÆ30/„æõ6ŒR+ŒI¯±p<òBè1½ÆšY"ÙÑ"ž^c9ÍÀ¼z˜ò_‡Èy”±Âh‘TÆÂÑ È ¡ÇTÆš92Ù±"žÊXÆ20/„†ÊX92V+’¶báXä…ÐcÚŠ5se,²#E/D†¶cQy¬çÎçî:î¹äû¿.pž"·ü«¾.ÞE_bÝì(¿ìÅr0Š/ ÞÃ,{±n‘ó(c…Q"i?ŽbÀË‚÷˜öcÍœG‹ìOû±ŒaàË‚÷0´‹"çQÆ cDR-ŽaÀË‚÷˜j±fΣŒEv„ˆ§Z,#X,8CµX92V!’ê±pŠç1ÕcÍœG‹l¿ˆ§z,ý ,œ‡¡z,Š¥+ô‹$.ö3 Xpk.<ØXd{E†=g¬ IêX©Î‹,/âIË÷2ì÷‰Å Wþ¹ÔIüBϸžê6ÌˉxÂ/ô {ÎXIêX©ŸÎ‹l]Äó~¡gØsÆ u‘¤Ž•8†~ñ{w¬â¼„aøm†L›"V].$¨D|‚-Ó¥–8œËƒ°ô[–„Èä@„·Æþü­XöH›Áòî«÷Z¬þœŽ®M¬ák¬ÆÏéÚÄòn«÷Z¬þ¬Ž®M¬ak¬ÆÏêÚÄòn«÷Z¬þ¼Ž®¥{ðËô½w)òõFÓ*q^ÇwS׆ËÔmcõ·Z¬þÌŽ®M¬ak¬ÆÏìÚÄòn «÷Z¬þÜŽ®M¬a k¬ÆÏíÚÄòî«÷Z¬þ쎮M¬ák¬ÆÏîÚÄònÕ{-V~G×&Ö°Æ«±Æó;†6±¼{Æê½«ÿDG×Ò=øeú~¾ùz·©&QßñÝÚµár`^°úŠ’ŠD}G×&Öð#ÖX5~¦chË»«÷Z¬þS]›XÂ5VcŸêÚÄòîÕ{-Vÿ¹Ž®M¬á5VcŸëÚÄònÂ꽫ÿdG×&Ö0aÕXã';†6±|úrŸº’LTwÔ'>u}ýUE⺰.¬ ë¿O\XÖ…ua]XVý¡ÿÿ›xÁBõ½KBçûXA¼ÀºÙ óÎdN0ïÐ],ÃÖ°‰,;æ)tš =À2±7±nX:cEá8±†¡°ÝóØÉŒe Î.Î+äµãùóÚ‚¥,§bÝÞÇš‰tNÄq"Ö0¦%tk&’9aË$™ÝŲ·±f"[Ið·ÔœŽ°7PG¸#™ÝJh)Ó“(‘Sb˜ä:te”@AÉ(pCƒÄ‚Щl%îÓË,§’#;Xè È„á‘;‚çJ÷°Ü(„†à(JGX˜àù çB!#°…U˜ÞØ4B0I,ÅLá‹PŠX>ÈÙÉ0Ë”È2dåˆ)%MIKBsÜÁ M#'Ù˜~©iN},GX·Ðc!È-tJø‚e›XÁK w‡ n¼þ‚¢÷ÄJ¢²`ÅŒÎëÿ6cy·šã>a…ø‚%x®v±ÌíKü+uõÅ!VN+,÷–øV®[XâXâ+¬Rް´Ü–ñ>–¬ì³Õ¯ÖÜ…uT­8 ËÎ`X*}X© ¶Rl‹Õ‡ÕVk‘QXvV°`eÔV[­Ù€ÕV+òsÖ‡X°Òµ•bS¬.¬¶Z‹ŒÃjsÉíåNÅÛ,wœñ¢Éz²Ý:´—;5‡‘Ü„¥bÃJ±Õ†íòüñÄØTS.ÏŸµ–a<16Õ”µ ³~Œ'§š²ðcÒ*™ñÄàTSVÉLZR4žjÆ’¢µþj(±°ÖÂZX?±°ÖÂZX ka&¼×Ä ‘Sž”È^b²'Øß¡‡D»#Ê+.WX¨"#X}X¡±cÞé¡ç^";–=°pêɶD»#)îf¤£F +ôÔvÉ›)½Xå„EžbíD²'ìq7=`µ:Ù±ú;ܸÀ"s+4J'Å G BÀÑŠe˜Â ËÈ@AIÄ€„T,”@j¢Ý!FÀ@‡ ·@ßbeˆáF¢ô`%Z6‚+¬ «c!ÔCÓС¤˜˜„âøaà ¥°%Ú‘¸Õch‡‹iŠ -,ê¤AtaELŒ¸ÄJäŽULÜhc¡h1ÙùÀŠV»#x`õw8ôa!õ¿Wéý˪y…G,Í&VÕ½cÑÂjwh>°:Üú°Ü^¬Hz±ô€e¦Qß=ÅÂIÕ¸c…þŠå8yÀjuh†ìXÝæN+45¢‹ éÄ Üð€8âh&¸§ß@FB1EA¶C¸mQAj¢Ù$FÂ@bµW yŽ•`¸tþΪx†õo}îðRGè»ú6\Xã C^é€ÿk~ba-¬…µ°CæûM½ÏzF°Öóëäi2œ¿#IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-concentriccircles.png0000644000076500000240000007507612536324510024765 0ustar philstaff00000000000000‰PNG  IHDRÚàêžïGzIDATx^ìYipÇž£{fö˜Õ®V+i+!ÂHHXŒcSÆ`; q ±S§ÊI~øGò#N*‰“TRŽ+)'.ç°ÄårRvbCƒ1—)ØÆœá â´:VÒÞsäë™Éxã©­äçRðj¶ëÍëׯ»ß~ÝïM7ošæ/žýýÓϼ׋Çq<Ï£„Œ]rŒÏ•P©fé«·­Ë€¼¯ Ò*¯M×;%µå©´•wxÞ~½Ý1*?SWî5ë ½sy/ãöøÿ˜úŸý–ódiåkÍÒ±yìs®ŽKžÙ ng`O)¹ruàoâòÓç?:Ñ'û«‰(@§<ÍŽ7áÈ—‡c©œ/G£¤!_Ž(tM]å›§ÞÑÑ}×è¸ÉsF±˜C[ÖÞ´z˜*hJˆŒÆ7oÂÑ%MË3Ôy<¡2°ÒuÍ0ŠàQã`ŽwíB(ÛÇyfÁñ†i]"¡¹L’ÔÕÅ(DAÓµ|´:à÷ CÁ²kX…tz|t4+I>ƒIJáh®ôÕ–€wJ˔֖£×¦-t$^;né’«âÊJ[y‡çí·´;7ygÊÛ¦a딘E)0%CǪ†Ðë1—÷2Ÿô°w` ï€Ë+{=é¾–ñ¤ÉùB.\¥¨ªjF©_§\.744&É~]מx}”ãËš 5V&“C†©SB …l$ì ‚Ué‚e²™‘‘´(H2…%MƒßD""„BªD )QÊ™ZÀ”%F‹"ÌŠÿP"b¢ºn $¢@DÑ–çqyW.~,t%ø9fMxR¢) P¢ÃŽN_‚Û¥¢¡ÙlPQôvWù6Z>¤ª’E²ì<6©jRè1üŠßç—&àðP"@Çïó>@Tdóç-tQKî‡À 0Å+º V¼“f Ž+±6P=:rõ؇oŸ9µïÌé÷`bTTºû‡)µH8И¨A)0Äv–¢qà3ŽáUÇì* BGÁä,!iј›­8R ú .€‡&Zî`£uµá`@F_ïØ‡­²¹Â”–ú•wÏeš$† qÛˆ;àÊ/Þû8p`Ä`34pq÷ΗÞÛýʾ]<|ð dƒ6tqL¡ |âèŽÁäÅ :öþ߇/ɲ ÔÙk˜ƒºi¢ä-ïð”üS—.m™Ò1wÞÝZ1—ì?¯( Ó&¾šEà x¹MÏ×[¹fU÷ªs&6TÊ<¡ª €¥(´PÔC!"Qã÷ËZQ¯¯ û|’­ª€TûÌÆ/}a‰,ÓH$ (ä3ëæ75Å y-ÑP«Á:fž<©ö[O¬»oõ¼O¯í¹}aÛê{ºÞhu0ÈDCTU}“šb+îê.!D/ºÎ‚Ô„x¤¾¶ ݉äú€#!x(Ý8Ä~lrÎî\vÛ’õ·/{°®®IÓsT¢Ûq¬‘æ–ÙÎÙ¿û 8Þ0A˜P‘™B'ÖîhZÞA”RÃÐ Õ%ÔP¤:ZŸÏ;FA£‘üM‰šµ+»÷‡]¿úÍö-[<úв/~~ñÖ´ÏlúÁ“Ÿ{dÓÒ‡7.íhŸôÄ×î]·j^¼>rÛ‚i›7.}pýÂys[¾ÿíõPÀÓ>£ñÎ%³:g7?ýÃ]s&‚±¨ú•G—ox`ÑâE3‹E}ã‹.õ&Ÿyvës¿ÝžÎäëj«nimøÙ6}êÖÖÇ6/pým‹¶iš‘ÍÔ׆7oºã‘MwtÏmyhÀ´Ö N¸¿.¢¶E€ E ”²âóࡵUášp$æó«—f&à0e„†‰S%ª\8w´±y–߯lPsÒžì£#¼+X«j8Š~øþŽÓÇ÷÷]=—H´r†VÙ¾sC‡mO3ŒKWsy­¶¶êÖ®©ßüî+&T/ì™Ö×7²eÛ‘X,ôÙûæ8tæ{?~íÜù¾ûV÷ §2ÇSšë’£[¶nnª=~êò±“½#£,¿Þ¹û8ü5czbú´†ï<õ翼qˆRæåH$xþâbz&WDø•(þ0å̹¾¡áñ¶[ž|êOo¼õY&¹\¡sö$Dí¾þðZ4§D”e ßW>‰•TPBNß·g׫ö¼†2ÙA’ñ¿Æï€gd¸oxðÊpòr&“f¿OdSÍ÷ÿÕçó¯¹ÿñ#‡Þ¸¨È²c ÚÖ4KÄÒ&¯zÛ¬ùõõºžïèZªVUÑ•Ÿ}ƒü>¹÷Êà`rì«›—csê˜Õ4:šÁfÉ™\rhLQ$Äî`@ùçÙ«s&/¿s6ðzö|_"Ýwà4À§HÔä9ŸÂÔ„úHm,ÄÒržC^8<’Ö4}íªy³f&#I"ïî=ý±øîe³'F©$Ê øåk}#XÜkVvÏhKPJî¯ö§ ŸNçpþäéËÇNô~ù¡eñxÄÐÍëä›%ÿŸÝ1\Š(2’7ŽÉ7 ‹€M}¼ @J¥úF†¯ÔÔÄ‘"G4ݸoZ¢±µ£{Y,6¡gÁ½„¢ÎÉ[ˆ¬íóE&²2ËG|ËÔöö9‹ªÂQ7 dòJ‡#!êšñóç¶õ ¤¦M_ëO=ÿâN䎯o9¸gÿɽïÏa·{ýÍC½Ð:%ŽdñåW÷8t¶º:Ø{ehçžããc¹·ßù¨÷rrû;G3™üß¶® ùwî>vèÈÙ_~ðÕ„¦ƒ ^ó rJì¬g/ôïÞwîÚ{b 9öëv hˆW_¸Ø¿gÿ©]J>ÿ ›(šc æ—[R p=Àk À˜6½kþ‚Ý=Ë{¬¨‹7 ìÛ˜p¶=°ÀL8\3£½§mFwÛÌ[[¦Ì‚V¢ç`¯hÕÔ<Uš–"kë&ÁÚ¸ç€ÇŽ®uó›‚¢2‘ª>ΠôÎSÁ>w̤Ó#cBÓ0*öÜ´juÝ’PK-GàK‘‘R’Ï™æòE|¸Œ§sØ2…-²t:V„.p1 ¯PÈf‹HF<(ÀÌ¢ ú>…²aÀr6_Ô ÎÔPU(hjÐ—Éæ ¦`â;&—Ó …"ŒŒLû?æ+þsÔŠùª Tƒº®s%ðdsÙá‘q‘*˜’`c±Z0 vï<ƒ øäàpÑ`‰¥V̆C~ûT»täk&“J¥¿:p­—ŸÓµ¶³{ 'È&;àÀið\ÉÓOžP<Ä~+Ã37ÚP¸UL(X%„pQÚÊð)8Óª² jmÞmƾ°Úœq¢ã`ŠÞ:¡ârÝ0 ©èKBÎùëH÷°ß%ÓúQI?èŒ ®‚=s—‚HÝ[˜29LÜ©rçm¶JÒÀµË2¬xIö›ìÁ_öÎÚ¼!ï¬oÞYó²wÖ.òØK™;kÃpÂT¹;k´¡TOQ‚—Õ÷ÌéêlÅù…Ó¬Ô;öwúfâŽ7áè^!z/v½:Ÿp¯ PwT®Û‹ÅÛ‘9Ò[Ûö"æü›Ý2jps’Åüÿ?÷6Yà _ƒ=äÇq`ha¦ZÙ%®¯[§ù&JùsKü13bÒËó3ј@Ÿ•JdVÖá]/‰7DsLäµèXÔZSÕk{Tµ÷î3ÙX1ÏkG€î¥xÈ1†A ŒÓR,}WM­ yÝ]êææêêèð„´GB¥C;$S~“ÿ¸ÏûÄCD¥#8çžÓ7Æ„fëñeä½·ÖâÔÁm€”^Ô©L~pÞ¼4â¯[Ι1&¥B>nkk›…©à¢÷‚DWXbuttTVVâ]0isssgg‡’©¼¼ÜÑÑ‘èHÍ8˜õõõ1äííÙÌÌÌÆÆ ÞÛÛÃ?¡æáá!°@\HÉ#MMMÛÛÛ<%An]3M‘"•@jÅÅÅ===VVVÕÕÕ999¼  éééè;55•îÚÚ©*..®¦¦†×àçç§j½àÖß'%ž±5¶ŸÃæææÈ^^^´ñ½èèhÂdkk+®ëââYëêê a)"//¯¶¶–Z[ZZÀÊ’4ÍãääD/à?Ńûûûœœ Zhh(zÂ!¹€!@„s„²9‘ ³³3**juuµ««+00022r~~þš‰‹\eÀ¼ááaò/ŽGeFF»‡ÄÄDè«È¼`²¼¼ìéé)Õ@Q& wwwª:ÀçøÂ³d¼šPʳ¸½Ñàdm’"¦îîîðððÒÒR ’ GHhnn¦`'e‡……0¨–°ÉÏÏÇï¹e A\UJ›(²_ `˰§¤¤dii‰j¶»»‹Ý­­-ÚjùO*P466Â`N*T–III bggçáá‘––F4Åo)( ¯IŠdjŸ˜˜0A®$¸D€ïþ íÒšøøxRQ¿§K}ɸ>p )MQX98޹Qâ¶ &A¬ˆˆŽØhhY˜ä›œœ V±±±ÁÁÁ¤ðÊû”×ÙÙÙ8vnn.É„T“™™IÐMIIqss£5DÚ'k师aoØ5’Æ¥G¼œwXTâ¿   ÚÐ hB>UæS¡s­STTÄÇÞÕ: ÉDÄy ¸xåh.X­úð °ˆ†¡‹g¤qEdÔ½°#îzA‚B;€ Œâ·”ìTŒ6£YYY²ºè9r#}…HYPP€è°¿âb •†¯^ä¼bô/;ç²²0 Da­×Ëÿ¾‰¢.³“‘·tÕëF¼ß?z DBQ¡YH< ‰iséLgzf¦4H‘POÒЀúˆÈcÇÊ3Kâôp§y”¡4J¢‡”ò•_d`èÒ×/=Õ.Á娼¡åh(ïƒd¸dqD¢†d" ä(R’ˆ3;DJÊûìs0ÓV»a&—aøhÞ¼c÷/­!É‘¦)ÊfÕhßwÔ—CTDÙ8i¨¡«~Ëë·¾ÊÊõúeY–}ê¯Àˆ EBQ:bXcŒ*BÑö#¶÷Â2­µôCݦŠm¥µIp‘”y)|øíp¾kmxø~ôÐÓÓ-̨p÷Ìá9ù`×\V†¡ ÚÖ>ÿÊu£èeW)­§‹ˆ„êþ΢ÐÕnçt2ª)q+Æý›“ò?„>Û0¤.4ß—šÒ—”Cþ»þ&:76ËÂDÜês:"ü$¥ ×CØ22YJ‰'ù¶ÂÍÊè²Ý1÷ØÀUðR#¶ w!‹"ÿ:á 8ïb¼“ts”™—ð–Z‰êWœ<ŽN‚¼-x³o÷*ƒ0FÓKßÿ‰ý êÐAìÈwvä"—y’ð»Õ<¨YdIü²^ ÝÁŸõÛ enÇúX·ì/€¶¥D c   …âG@ƒ;V„0|—÷gÅ "¦k±•ÿÃÁù8xÄŸ„~<ÖãÆ`h·ƒ$> l«A d/P¦·2¤Ñ³&áq /jú¾Åcv’w·ä4“ [Ú‹½>¡³wµ/m«qtÓ˜×&iº­³Öú^覂*轂ŠÊæ‡Ácÿå>Œá—mwî•˽l÷¥^{ÛZµ­mš¦iÓ¤i3wjØÃÈ øʯéChÎsÎï<¡‚(}b@>Å#ã EݰÚ6 ÌÀÑfFdže(àü<òN…/Ç%¸ƒÏ- !*¤t:.âê̶ƒÌ:¤àŒ—>†ƒ¢®³4Ås4Ç %8 [Gí•—l;Tq÷²qˆ¤l§§–avZm™n^!XçE—uÝs…²Þí¹˜,‡ØˆÌ  ^’ š”$–Ô dÛr4Ãjš}^ˆp€¾ˆ>öD¢%@ zÓVõ6 ^†%.,2 =DHI^¥ð+:ú2üPAU7–mZ•³CrTB_yé–éœ ½£˜U™Ãò ù?•k­B©BÌÍ0/…ØoÓƒDJŸ–8Z£]Õ@CnÕ‹`dÇéÕt°ÓV ŸÀ …x 5‚¦ð §çÖt³X5$¾! EæU­]R[•šYoX²©èþLwÐ>ë†5H Ë¢@Ç£V@kX9U 1‰Û’À3$s1 öMÞÝ>Gém a%µ Cr&ÑöÒY· FÂŽ9–bèAEâðÕ²»è§…ÓuAͱyô¶Ä1Ω²ÀÄ¢(ü¡qWz¾ÏʃÐ3…Z :±a‘ËžÔ÷~Éü•©À©×î?ÞL½Øº3»¾4¹¹<…Ï­•©ççq~{u}õßlõåÛôþç"üzf<ˆò*@ûúA@0é[j×ý’?ÕòÅ:XXþ?ÖÞüšû;SU$öÁÏÉg;³O¶RÛ+Ó‹wãQE€Xg‘Ÿ»kIÀòh#•œˆÀ1^8üøÇ1z%üÛÌt¶Á“Ô@ŒK€… ŠA£î­UV›4•ó‡-w¢ÝŠ;«Óã#aøòûý£Ó² #úÄá‘ûÅÖIwsÉ(~´4__œ<ÓZXªWïþKÄä…Ô0®p\jÀôÇbapÆMùcc‚ÑÇÿ<_Ôq›7ÂÄ ­*"·±< LìNï·O'0FÓ†\áà^pKÏí MÉ" ÊÞ»{¼ž2mç÷Š{3#Qqi.Ž68ŠÍåD\ÁÌK€å+y_UÕþ}ûSé)öÅÐÖ'%Â8EŽP¿ÿþžD–†ülîǯÌâVìIcM!–®¾ñ71åµ=ð…ÄX hl®+FE±¡œ‡ƒˆôÛN±'?©[kÒÕ?QZÓ-ÈÍl¢%ÒÞ5z78þOWEDO}Ë@uýÀàÈÔÈØ Í"Û553ÉÅNÏÌH-'Á©£"ÿšUÜ—Ñ .Ïk¤)ÒÞ;–]Ú†ãk) àk©_T€‘Žùß›Ê×½³w¹+]~EGwÿ„¥ž;ÃÓwE€êDAV;#‰ñ‰¹O‰50>&jü<Á¥#† —·fuRVcQe- å÷ºÞ˜´ú fRîŽ*­Ý£i¹ÍiùÍ–úâVzâ°ÎÏ©5öÆ’°ÁæÎ! 0fêß/j“G;,þýC€¼ °ëHƒ¯òâœ1éu©¹-2¢ìf:¢Ýc_Rê°n²â*²Ü°NØÂ.†9ÌÍÿŸ˜Å®nï‹J®E×Wì–žIÈj(øÞél%Eì6ÑY³z0€¤;í¢üÿ·&¿¹kĺƒ}›œƒ-hãÛͲ æû$X_]¨¥mÄÿE. ÅS©-¶r3ÓóÃS /’¿55µaÑŒµE\ìorq0dä“^©x^²N‰»½By]¾5Ó…§¬iø”\³ÉTšŸ“©©}PR˜Žšò×oæÉtàèø4Â(l¹©cÈ\W”•ævPNgïøzmbßÀdà‡j*3]¢…¾(ïòšnX^aYgWï8‚ …ÖÉËň½ÕF®¦iàsrmBfã:e~·ÊYŤÇo .,tE3Š,û« ‹”fÇÚ.…¬ÿ–"áßlquÿð$"2|U~E'þÇÑL¦ª¡ïÌí`pW{x»ªÆ>Ÿú!77"ÊøÜJs:ðÁvÏçƒáˆ×M ¹Îðã°üÄz×ë]'?7´ ^>bt÷œÞãð•x"ÇÙýz™…¤aùR !¶Ïi5´ÔT`Cj[úá*Èhá÷¨%’¡Ë<’h°Ö½cõ­ƒVºâ4””~O³P}±ÔË)nMoØí¤ü쪆ïãÐÂ{ß]{”OYÛ4€KáådÄ «ÒêǮ&¸ŸþÒÞ1âµWçúiÓ–öaïÉX7å´¼æÈäZ}UAЖéù-ø+Ä©ÖîòÝùoiû'_-Cä.HVÊë{Á¨™h¿æ·¼ùn¨!ÌÊHsÂ/ ÙÌ£‹VØë§ü’\E4’†ôÔ=]Õ7šI˜èø9™ñu³µœû•3žz¢B¬QIµ›=>|+h;àªÏáy16=—tr·*4Þ°3Ó!ŠÉ¨ ’îg‰ö!ŸÒŠ s–v+N 1„Ym¯–"?’ŒÛ¯r€O%¸Ã"+_þi'.Ävèbœë±Èú–AG+iûõR pÃC3M-ë~­–&r¬×½xÄÀÚXüC\•þwqiõ—ªÊñž¾ž ÷àv `¡Ï)µÚJüàtKjºˆü¬ã3àØÉ{cù=¿¡k$ï¼Î¾QT·@îtôŒ$j Ž,ÓRQ¾›šÿóWáe{ß!”Ý­e®'—Òpóav\jCe]oemo#iðIH¡ÿ“|2Ñ®½ãcqd÷ºøŒ8K#‰À?í¬3Ï{èMÌF§×YèˆÁ)Uwòr0!ë˜!ËVÐAþÝ!!#™˜ž… /®ê`"ÀµÓÓRùY‚>–ÊIrb”w8y~@–½ßE ¨#"¶&èminQ{[×(ƒ˜ëÐÈô·‚ÖÐå^×R»ºÇO¸k{í×OoØëme(vh§æ£‚Òª^­jx—Š.M¾Šú>"?7sGß(´äÛô/oÝ"¯;.(|!Âô:E>.6ú»!yØâ?çÝ|žs¾ºàþ³Ñ‚;•è©©|®§=x™¿m£üsÛȗΟm~xÕ*À×:2pK ¿ýÙCzÑÉõ¦Î!±)õ×N˜˜ë‹Úíy›‘KzxÑòSbõӷŇ\5I#YE­@îÅU] êPÂiéBd$ŸÒÊf0KuQdr¬Œ´µ ¬Ö*œjDRõàðòx8Maï}º7Ÿ~󾞺Ñ\ZJ„pÿE^Â×{s©È@ç°ûw/š;XHk)óŸÜ«õìºmèý>Gô*ëúöyÅÀX®Xóó0:üHµf÷~ÝWŸJû§\låã3fg~ÊŠrd•´¢~CMEÙÕ?þwßñ/¯Ê,­;¢3Š. íCˆÈòâ\¯£+ðCk‰ˆÄš“{´ÔåyìÝ߀<µW':±®ä{w€ŸufÄ.UÄÔ&¿4«­¯^nxµóPdlb} i$è¶ý§çNÀ£›ö¾7×ó=e|ë9ühýí³æŸ“k@ˆœØ­õ!¾rl|VQ’;¯¢>K ßL^÷_–ÁÑ)ü Z;GÍ´DL¿•´™h“²š8ØèïÖòñO‹L¬Ù·M•DyV¼ßU->ÌÅDGäñ«"‡]ïÌC=NÇ^¹±Ý3ÒrëkS±=ÝØ´/ýíÒ²[<Îĺ9*ïpPÈ[Œ7h^.“"’«UeyZÚ†Q>ñ;nü)¾*&µÎÝY5>µ±´ª'"ÐÙÊXÜótœÃ®÷ Ͷf’vilÝ ·ÙNöØ>ÍÓ´M ˆï>Wš:çu|xâÈÇøÍó#°‡«Ì|¸¼$çgÙÖ†xÒp~y»’4÷÷†^¨€VÁïþÏßxÙs°†,HŽvmcûø.ý§¤jà$p:¸ôó ž¼.,(ë­ðªÐÑZæKЖa%¦N!@K>Gõ,¥ðœæ—a¥O^=z^‘ݪ¯)xÿš%¬óKbñ¦`7'¥Ww콯¥P¬Zí塳ãx¤¤0AW]ðAHÁ&3iR÷hCë ²4oQUòwŒ¢žœú±tb+F¾.¾õøä ^ƒ±/­)Ç_ÓÔU-•–Û‚Ý30‰ôÙeƒ<Â.6sÂk—¡¡iÓM!C#S'=µ•åx2²IaÅQqµŸcj½(|ùºt|lö |YóIð9b`ªOÜïmo* žòÒݯn›”z&€Dí¥rÊÚ‘ ¡<ÛØ6ÌM`Ÿžÿñ7æá߬É(ä篟@ëÔÔ”-#J’ÜðR°59>Ð žÛÕÁß„lµ—\$*ÌzÍËøyhñÕ»×άºt=ýip±’÷ý?-îù™?½cca"–’ÑlîÒÐ4褿NÈÁí½¬Çá=š›=Â¥¹MuDüeíqRO>2:Þd² 7JÛS? Ù´²™õªÅ[>´ J¢êì[À0 b ©nèâeVÉ埪¥Â?;ý3¯¸#øÞ†²ï=.Ÿ u„MtE^†–¤f6[™Š?¾ióô¶Íý?-nYØ£Q×8pðt,©uäu€ÃäôüöýŸö¹¨ñpÑŸý3Õç>PJbF£©dTJ˜ Âhms¿„0¡¾uedxÈó–lè߬É[ )-ı=H«áAî€ëAnvùã'ß´Uz€¢bæ_öÏð>¨‹Mÿ$¨ð¨ÇºÄÛm¤;:ƲsÛ3³Z…ø˜ŸÞ¶}ìoó-¿ÍÌ!ÔÃMÍÒDÌ|s(‰©ñòí oO=˜{qE§šÊö¿d–Û†ßOÿâæ`%}õz†ëÞˆ¬Ü¶¶ö‘ÖŽ‘§AEî¢úû&Ã]µ5ø·ìùxñ¤™‘¨÷ÕTï:åšÛì>ÄT!¿ù’Z73û“(ÈO‰:$tÐSþúùkrzÁWp]pupCx* ^ùÙ2 H‹R’)”ï C#Êá K+{ÄDØl×K:¯ Í | hxÛ×|‹ŠŸ–çñØŠÊÞµk)x¹A¯"½sý#bp`æõÓM-ƒ÷Ÿåß÷µ¨¨êý–ߺg«ò‹·ÅêŠ|ÂM¤A9*µVS‘0ºhЉ~-èwÜH„«–Ìèí$ü»øÿizZv=)r:(–¡CAAVYšÌËê5«¦¦æa%À4¡‘åBü¬H~!H‘ã¸äÿÕ@Kxnö'àüû@§üÂ÷OXµc´,ŒEʼnüï¹Súîj!oËœŽ»ìm$%A¸v;óòi#P’%z‚á1UÛìåsKÚ‘ OŠH¨Þh*­õZJøE¸I·¹V„ëYzSü,¸úéÙŸ”Ø¢ÕM}DÖ’ª.;Ý}(±(Hqfæ·îrVÊ-lol²Y/·çuH[WCÐmdSóÐ>7Umu*й™Ÿü6÷à–eiEÏóWÅv«‡}¬šÚµUùͧïnNŠáÑUøVGM 9sAê×@‚Ô·µoœÆôÌü_+§î!‡Â 4`PRÀ!O˜û1¤tØ–’"„¯¹-8ááá˜)bà›]Mªš>aWg¥ó×ÒÐ<´ÉN&#“TTÚÍÊJ# À¼xûA.LêúÓ˜Äúî®ñ=ÛUž¼*4Ð^C±Ö¬§)øáK¥©.±«o{:ZJð¼,ØœŒtT“³ð¯pÌä=óOÔ¬ÉÏÕ¯¨¨øøñ#^ãAÂc`Ƀ^ƾL àÐÆÁİ–‰×x06ÂÄ䬓‡“þ@F‚ãÕû2Ħ‰‰YÜ!{ É[÷³9´šªü0Ä vR~WL\wòˆöÉ£Úq‰ EE÷oZ BMMÿ41 †GU»8ÊWT÷võŒC ‰ ÃÇÍXV݃Ž;ÐF«þgÕnvz¤¸:(`ð”+Xf?˜#@2}œ0:ð-”uàÂx8P ••äœú^Ý« Õ_Üé¶U©´¼»º¦ÏiƒlJj“˜ÛµËÆöÖ’šª|Çkms– )CÛÁ}¡ï+Ö©ò L×7ÚšK&}m’ êšÑ1C›…¡÷ M ð2Î h`5p^üÎü˜'oÔ;Âøzzzªªªðè×¢¢"< >==Ý×ב‚±.of )Tax‚âZÊ5HhÀS€Z›Žd^ج̴ƒÃÓBÌÐÓ£_Ž™qí×ì–[‰KîÙ¡’”Òä¸QÆÒL,.¡þù‹¢×o* b<â©QÍßÍI.%­qïÕÂÒNðÞôtT’D‚¦2©}„‘ñY-5…„¿€Êê×È$ð¹"ð‘,ü†‚aédCÀ3A†O6Ú¶ÎQRXNvºž¾ Ä/,àÄÔ¬º2ODt†_w÷8++í¾=jÙÙ­¡aåÉ)¯‚K‰B,ö6’ïÃ+ô„A+vvŽ ò3—w©Ès·vŽ@Í„Â}.jv‰T Þdnꨠâ‘h‚ ]Þ‹ýOƒ5ž½ÅÊÊzñâÅÈÈÈ€€€šššúúzxÇeG`BÐãD6]OìéŸüšOÚl%ŸÖ ÌÇÜÓ;5ÂJ}+lÕRã/©èQ–çŽOja˜˜c`Xk 'S76:»ÉAÆÀ@øk bGíu0PK3qXèî–ÖáññY}‘”Ìf˜`pxXL^ è“‚¤&¥–œ3èLð+%|Ä›â¦cFЃç %ê韀РgQ-¶.¾BõÝÖ1J·„m˜içüÕщ`Â€Š”Ž–@W×Xii·±±Ègyqq¶ôôf 1¶Ñ±™ÁÁi,]m}?®µ}²pè÷–.¹£k 5nˆÖ Ï€lû?GŒ‚QàÖ «¿IæÀÿ!ìH6JGØ%Ö @¹üòàÅÇÓ‘'Gà>QŸ…nn‚,¯qí€MÝã0\¼ž‚éÔ7 XiÑjÝÐ0hb,"$Ä"+Ã!)I¨©í'h›‡ÿú…6š™¶öQøƒ¥;]]ß(LEEoq! „¡/YŒ/ð+Û®°‚@Çþߎ}€9DO$|èŠ ‹8UìÜÜO|ÛÑ5 òôô<Ý¢_Ĥ \¢¥¥lkåà —•ádb¢VWçÃÑúú&Aî"FØh!‘.q}ˆU…—Å[8AÙÝ;Ž5Œ²ƒ! ^aMÄP,xÇeV(¯þÞx\&kˆ'ØãšÓ@“x½ìá°F¼ÝüÿFX!®VˆTo[D˜€b-ð›X&| ‡±”mðñ1á&!ÐÓÐRŽŒL/prr@/ð08GÆAp(TÐÕ¼_Æ¡ð_xÇ…K^<‡¥¯+;¾[ˆøÌ€f\œ$¸X´Nƒ‹ÔƲ,f“œ h¦æd¤™€Ýà’zû&xxúû'I­ÃؽÕU}hý¥¤Z«àcžfe¡…§ôkÑÃGâׄù™a¦Øá(ÿ€W¢\³`v0z,àΆû¦2äç +((ØÙÙ9;;'''SSS›±±1ÀÊe–Á /öêÃV°ú°£5ù¢Së ë†@ ëÄYƒªÈó4‘†õE°}5Ty›š†j õ…“›bbëÂ?V"j3³Ðätš‹ôL!1³P#„Á:‘Ç€›Ý`! ¿"AdGû6'+=0;n N†ÈÇ‚¯XðábÏà½qïÁòàÚ9Xi± ¡òÄ,¸4X˜v6Z¸1A>&x8fZ„T,#'}W÷˜º ORjŒ±"6¶þCxeÅ÷^ Ivðb"B¬ÈN›HC|¼Œ q…™GGg°ù±ò6:´Å-ñ p“ó?"@6êCp½KdÓÙÿ;âY™\\\’’’²²²H(ñiiE°#N%(8tpò‹\ L Î0q`pᛃ@sde¡A//=%ö[bZãkÉôÌa"+7'ƒß­,.nzm-F.” €mv¹*¥e6ÏÌüD4ïîGQl="8'·€¦ <€"…‚kÄù,ºäÕè¹Áf oѨfMÖÍp“°?<·8®qÉ—w !3 2¶ûðø ÈgÚµ”ÙÅmÈvèÖÂcaÿ21®…cc'Ð̘ˆÔ6ô£P»ÝYán@®Œ »Åz±+~_jz'kï?ÎÇoúxë£>VW?Ha…D×y£\_ÿýö‚^Ì(²ñw¾pÙ%86ðJXçþaäÚ”ä°R£±È@r° „iØÄbÉx5â,^ô O!¤öô«*𠸇'fK‰²óۭ׋‡¼/fÁ&|ø4›²”8û‡¹¯?T¤|m -›¹rÁÆ}÷Q’ëÌ\’Œ$;?/STB† _YMšïÜbîpzvåAè†à‰Á5"ïÆ)Á;RS®![È?W•ù»ˆˆœJcEÈÿµŒìEtrSÃ8àŸ`.`§‘Nbk‚¯lèÛé¨t÷y®…äààdV^Š`7d;ØI+Ês»üwxï¦7COÏ úÅs†°ÅÀ’ÛsNÖÊ+nW’åa󽓩©ÂWü½Ûpêi_sIVÆèƒ¤^Ä©¸2Üod9P˜álþùl†|§Aë`M–òh ? dp%•]šÊü¨)XiàÏbRêA7~IªSQâKåw7ëÄ!íή±«73¬,Å.ûY™KÉ€‹½tΉó¡“qŠò\³óóY¹­'ê€qD|àä khrqOÊlDN ÇŒ@¦–öäò díxÄD µ¼cdVÿ~“º÷¹˜ayš üÔ+ÉpÏÍÍç—wi‰dæ“Ì Ew ‚ôÜ¥9ÏqO-,âA¯¸ÓGt6ÙK?“ˆ8ed(üÇn{ `ÿ£Þ `àù[g´Ç$Õßó³@3rEuÏ+)tx¹mV‚tñ{ ¬º²ÓœÒvn=VF9Ø@EnŸ[5Á?t‹¹ÎFCD?Ћ¡¦pni;,FFœ#-—´ÁB*,¢8v׋×Å—½Œ’Òš_—\»`‚ÊÖÞÃÑ¡%=£‚›óNðóÏ4Ðâà¤òªèÄm^n† 7Ò-ŒÅòË:¤¹ðí§ø}M¡Òªn”Åñ¾mÝ#0JPÊ¿îc ¹q^IGà}»ø”†K·Òm­%OÖÆ>‡Ê):¾î{UŸ?ÓŽ­Š(ý= ):²wÝNgÅÝG£@¤Ã5¦d5Þ­‰ 8 >Ähô…E¤F–:”DÀ ´‹”9XÿÛÆ’ݲ4nb VAe'.Ó&Róšºh¢ù˜r³rð§²›Þë÷~ðòKy´q“Û{€ý˜·Û<Ëۼ烑®ÈgEü¤§gX¤ZLR]Ðû2EYNˆzP“µqy£¡ÌK¹vÍÝyï6¡ÞP]ßwó¬Ùõgßny›ApФÀB“]Öo£/‰@Y ЊðŽd‰] ׿(ÄÇRÙÐ ½º/ö©¶HTJíý – ãÒë¯6Þ~8¾Íÿ’¹Çé˜sGõÃ_:Ý~œ{È;ÐPœÈ&&ζ( šojŽˆ«ª~q×NIžÛÅ#òø?v¨< *pߪ¬$Ëe¹3Ìp0æû ,ð­¸ ]í€ÑÈ먬¹ 0 åÍe)~ÃÉ@$¸€,Ü +ô°õ¤màˆRï}zÏÞ½Ž*ô·3ß INÜ›mæÎa ¯zmsTˆŠ¯… ¡iˆŠj5.RBY)ηÏ7)Êr•Uõì<©ªÀ»e“œë¡ˆûW,%D 殡6ƨüB44ð¦ãi›»Àµt !Ò8’×}ÆN,® ”—ÂËÎPZÝ…&]U¾ËA9<¾:6­½ln'#ÑIèå©{äBÂã?­úYž¾’\VÕ}þ¸H†ÈØšªÚ>T>ÁV ò3Ýñ5W’ç*.ï6q†«sß®‚ꔤ(ᔇα+ ˆ›’bH¨®3FO«0?K^y‡¾ªÐ¢´ìpä² »Vÿ†þQׇPÙ´‚8gCÛ ˆhLDHÉiÆ0 ¨Ð:øúÞ¦¨¤:Ì:BûÕΣŸŸ¾)ú²é°ž]Ú·;)ܾjû ØüpãçÐ-ÿÐ@f»gÄ®CŸíÌ¥…˜wŽ43Ýl#sÂ7"j¸ x܃®ê8¶vÀ `äŠ4z¬áÐWªÕš,0ÃâÃÝâæ |ï@µ™Æìߪô© 2¼ãîZn§«*ò Ùeß©èÞ¡É/œ@CZ8‡=|™¯©ÆwùŒÑÍKëï]3‡êvŸ›8Å-{?í;­®Ìë`+õôubqðÝ Aá¥y$— P­FÇ º­£@tÂB|ŽNB´xþ/žþ—ÔÃúC0Q×2ÉI Ç0®¬"Æ4b4GYm÷à Vn^ŸÑ– õ¼÷ÍÔW·6| ws9ô TöÍ‹ëÁ™Aä÷òM âš¡®îBv_ÿ$PæÞjªñ_ò2„òåþË|ÿóf[ìå®?ùVÓ0pû¼ÙƒÐ‚“îÚŠü‡®Æ"yB7tç`ˆH ëœAJ¾å‚ÂöŽ‹ jZšÛGl %ž‡£?ßÑRúÊ£Œç-*ëú_Šìk½àä|“°ÓæèiBEžPõ­¸s§"Ñ\Œ ˆÚàP€ØÈ™ãŠÏ¢†ƒäfgá)8'ákQ › ¾Œ‹¦6œß…{éÛOºkÁ°Â>—_>i¸÷ ¥þÏrð‰ye(+€£xVô!º ‡ 𵊠ÚÂÅN‡Q>èÏDÄï™Ê+í8Ð:РˆRE).Q/ÐSÄüð‰i Wýõ7YÉ ˜ãJ¿ÜƶžQ"{11»Á@C#^„o¶’Ážc׳`‘€GV;Ã’²Üœ•Ÿ:…?sruP„&?ÇP9´¾ pü¸åúÙõk(VaîÇŸk e¾‡¡ùü\Œ°E ÅØ¯u*²¼ÐâB…š 5ø.fpäSú–. ¤FašòäÌL’Þí ÜÕ;–œÓt娑´(;&ì TxÃÜ0yÛÕÊD #(Bï;<¿aûÇV êÀ8 P ï;ÞôYß7<év<ÒÓ'£ £SóZpðG—¬Þ ÎäaB¸ÀpM zˈ ’dÜš%¥Ëò‹E~ç!ìè°óYƒ¹¶(Jimç6 ¼ðòO6Z'„éo¿|ÿ˜T}õ”É¥c†•µ}Æ[^] ÈB“WE]Ï5oã«§î\2—eà žgïŠÌ¶‡ì;¢Ë…#†ð†—€®»qz=&OÜ ÎÓU" °€‡Ã0 °*¤ÎaøHä ˦—ÛM‚öCi•1C ­èCãÓû·¨¡Á `f—£ÒÞ-*w‚r¿5Þ¥yå¸1fȹ”€ñQ÷‚r1Àcpl®šŸ¾-ò¹ žÕÿ£îZ`"â¾C×üä’ š9ýžd"€` 4†Q!Â{° ¸)äë¿jÜèÙ³Ô]Š …¡êŸRªQA~›^/$Su^°D²ód¤Š·‹ƒÂ^µì¢6à!ˆ¬Ü½¢0† Ǩg]ì.8²[sô 4QøÏS¦(9bÖ ˜+"Àz)Ã.šP §®¼w¾¦ÊBÉ àxp$Þ;eñtÃ[Š”X$—ç:Ñ$ »Ev#¼àx| ØMü–oº'ÆÆ€{2xƒò[Ì…VåË\†—Q©í®€t÷:¹¡Bb=s°vœ›·åf’Ç4.ê ¹VÊžŽÚ3R·z÷P¾)ƒSÍ’‰:-ÞDÔì,u£9ìâ‰Rs›ýN¿‡šP”´QÈD¡!ÜH÷ Áb0&;@‹Ë%CLxh==9ÌXCÄJ’H±9 oÅyÉX…A`¨“cH‡Íf¹˜¬¥ÈáÔ$w1M¢ˆ„ëÆ9IK" Z“ÿOGñÀÍ »iÙª$à‹(ag_ £î“‘Ä3Ú £G¦RwrRÙøßÒ‘µ–™—ý‹¨p’“ ýŸÒùÑ–‘—’EiÀÎòCà2% #oVÅ‘˜™ûÁi0%út”èÕDÔÈÖ]²GòÙ«ÿ£Ìßò´+–§]«K|­™:0?àMWý ?,êѤ/^±Ö /’×ó_„BµjXè¡®x.V³à‡¾‡hhx1½(ÁÄ‹çÿfïnV„¡ ŒÚ1`¡?ïÿ¨º¨i°t¤ –nbû…qãx^¹˜=réøÛäütÂõ|\C:>NIq%Û‡"îŸÓÈîn^¸@û^¡WâªM¼êÊ®dB+SãËÒ´õÓÊz£ßã(Ê|ÊòÍ2ñ±‚VæÃWûªøKû™¨k  ¦çE€V •ïŽÀî6›èÐ @õq×í¾B6 b’¼PŸ>ôö3å*™ œ? oþ3OÓt[¬—^¦œ.N—ã¸}çàÎÞÙ« Â@¸íªà‹igÁ— Y«ï¬B‡þJ ¥îõnÈN$Wõ•¹J”RD!„é ï="òF !XqöÆ[Ê¿Qu•a·“R:ç´ÖcÆkíÝ>°Sο'¥Äc,/LιÌ'{çŽÂPDÑü!‰¸—”¤há$«JáÉËç€Ä"äc‘.s‹a™æzÀâ¾ W½{¬q­”2ô‰Iæñ]D3>$jód‹Øò=9¡Ýp4u‡æ;¶s¥õ—ø(’?뚤Î]cÌ9ïûÄdJ©F]PµÖë¿ÀC5Æàgõ¶nç" ®+û ç\|ìGï½µ–MvïìÝË Ã Ðhóÿß[DhéP4Åìé9+³ñ‘\3}@ïÄr1t‹nYG(b±nj­ÏsJ)ýÕãa¡’¬#Ã%Ñ|Ú÷Æ1~ߣe›dß¿3Ì@{G0q”GüÌŽ˜Áìûvs^=¥ö¡æíŸˆ¼ß\xh\^ÇäÍ޹ƴyža¸5›ƒÁs2¦Øáà„@²Œ–¤ ÉFi·%Ù†4¦-궨j”EI”MJ•i²Tm×¥5Mh³œH×”…U¬„d¡`b‚1`r‚c;6ÆŸ0ögcg·±ú 9Ó´ýÈ ÂH6~?[ïíû9½’¹·ElÇ Ç“ÏQæ¸ô¸>ù\²ãÿ¬{+/h0[´0rƒÁ<RýgɈó]8dôØíñåxvŽj® È2Ì€zK£†’Ò‘7ÿc¸.Ù1Á‡û>RqÈi dò­××ÁèàEô*@{ D?Pë0¢¬O5Z»•U{¼> ’3ÓXk²9y+9>;)žp…MÛo?jl“ß”©À¤OãÄr£ÍSD¿bxahMÊòÿ¡Î‡.Š(FÝ9ã›°¡ìÂLˆlÞ&êV¡0¥q˜éÜX°˜±@71ª=;ë \"$H¹Yiq±1á£Z ¢ÿªx‰!73`u`…µz›ÅæJKfFF„¡¿‚ô ¿p“昫u+B‹ Ïé ÓpØ´cÆZ¿š‹¾Ðîô¸\žI a09°Ìëõç?ÜâüëÁ²Eû£ÔZ»îi¡snfbúK,§Ë­Ñ[­v¿,! éÈçš+éÉ9ÑNÌ ( „Ë-àÅ.oƒÈÓô]?^ó-AÒ¹AxArîrï'ë~*9Wß{®Nv¾¾·ò³Î“ŸK/\¹?Š»U° ÖççpîM\ùzÀ`"²xl¨€|[“_‰\ಚ Òä*#ºgì pêë·FĽ*x¨ôµœṲ̈{õ×t®íù¢©ï¾\zÍdÐØ±èp†Ô¦†–Á³u²ªÏ¥ÿlWp¥¯æ¬]™Ò?bhh´9ÜÀÏøy²Ì¯×Ï/Ϛ̋ð"¨õ …£ãîéÓ›ž—ÍÌ_3n«»ÞßyG“‘ÀKe®ÊJäsc±¸ç¾p{Ç—»<U¶“ÞÓ8]ž÷ΈW ’ ×ñ¶o TÝèÉHeácˆ‰¦hLPPl¼ãœæd{°ûEhâ fF4fÌ(¨ÎGÖ¯ãq˜[òyFûÅ/ïŽѱmL)9×aжL¹ô“Ó(Ü ©³˜á°/$‚•¥÷´ýUÂIˆÞZÀÿÁæÌ!µ¹Y¢@”®ËáàÙaµ‘—ËfFú3äSî°) ¹_ÄoÀ‹&{¿ÂÄfÐéaWoÃ7;¸ ˜úãÕ~Úpý× ¶mÉš4§/ÉÊ+[ß®#Mž­í=wùö{iÿƒ°õÃó’¥yS¯ì7…ôPä øÒ7ë{£$>úN—Ë»ŒËV›[çr$ÙÅ/¬~qžÝÈp˜HR“bÄ2U׃±üœ„êÀ©Kݨ°{~ž_R¼R¡²¼æÖÑmeÂVaµ¤¹cô–L}ª¦çH¥èèIÑ;Ÿˆ[%ÊÍyi¿ýõ†Œ´¸úëý\PC(¯¬OW[ÅCh`’㣕Z‹Ñâ <}8eA—éoj´fÜʉF4c¡R)Û âÕÛ§Úß9X„Üv£]±÷H£ÑLäåpø©Ì‚5Ü‹ÇKªÿô£aɶ­Yiœ˜oç&SÃBkª®¿ƒéçðîM[ ø'.J¿h|é“ãh(Ño-KeaZ7[‰…ù È!Õ1‰³‚VÔõŽLÓÅëÓ±ý.t@¹Co¼ŒîåʵÃn¾;¨ecÆž_¬ýýžMoí~ù§¯eïøÞòƒ»¾S¶wóþ_ü¤xÎÈÊ*EUŸuÇ2è¿ÛµaeF<ºé]íwóù·ÿ!„˜•cœ‘©ñù‚À‘V€EQ£ÙQ´°¿ßXÁg¯$Ÿ½,»Ù­Ú¹c5êuÅ ÑO¶ÌÄ»‡Š~U²šŸÂ4›]×Z†÷W4¨¸¶¯üjÝW}í/™¹}«àÔ±m8;Z%*¶2ÂiûvÈU&ô”Éì¨Âµ<Ì¡84öçH }$™ȬbÐSšb®Fc:nîTàˆûÕÒ;šÚÆÅ3~öý\T†£Um8©)ßWøfiÞØ¸íLMÏ»‹ËŽ]!U[Ë·;Ñv²º«ûîÂõý·ŠVd°O×ÊŽ|$Z-HÚ]º¶½W]w­o]óP“x84”’…7%œn O¤&ÏÅdMêâÄö_ä]uTVy·ž1(éîîî)IQp@DÁED,RÄ ,P±P‘V2$»Cº¤»u¾û0ïZ¬¹ë[ëþ332Ë»ëõ%^Ï9ûìßÞÏ~ö³Ù“–šŒ˜hsbN‹(?–ið‹RàÔ•‰©gß4CMþËǵZ;Ç“2Z2Z$Ùø¹i¥Å˜Á÷Ò=86¬ï÷ÚrŠ»µ•yÍ EÌô…k›‡ÝnfwTs9¨]ù8¦úä~%mEž÷m¦ZBœÌÔˆ=’$Ìð]œÉ¿¤ÐFÄÐxŸ}(ÀI_PÝ;·¸l¨Ê¢¤¡mô¸•Nõ̵t¬Þ€‹“‹/ãêªù¸h$Y™ÈQÄ +k>‚L›oé?y5U‡ÎÂT<ÀÝàMJÓY¿Œ6ŠçÔžÄÖ`Ù;Zʃ)Ë,é‚YÀZ ƒƒ¾øs‹õçÝZK‘ÈÑX‹hî¥u ¿G¹…8ðy Jiÿsú ™-ˆpÇö+}ŸöLuöNÿüèú޳ªš Ü uêG›['ªë†é©È4å¹íöÈÆ†ZnÙ²ÙÙ+íÄÕô®¹è>­½ñ¨èœ½p'ªïÅůé…«Á€ŠœøÓÐ4âLÿo(hpx‚Y@VƒDmÑÚ3Ñ=8­!ÕSÚ _<±_©wpöü, .WµÐˆ ä"âAW ]«¡)SZÑQí”ïq;7$¼,ãCçÂÂWë’á7vJ‰2ß-„eŒ4ùOÚ(ÞyQžÑzdŸŽ‘X‡t;”Ôö¤Â#G'æ×Ãÿ ¢g-MOÎ.òsÒֵޢ*Â+¬ìE̳2•xYPrÕ®vÐ%Aˆ>åÙ~³m¢ ©-{GÛžŽOËíe⣓“dùØ>vÈ5Éüpôí%ºÊ¼Qw÷X˜ˆ;]|76¾pßÓTÒ½:?˜Žw¹mjÒœ”äÄå ÌÔ_–¿Mü^¯„cƒ®ï™¿øeù{eÓ ²${Oÿ ÜÑn·lKÇø½—gì”Õd8ì]? Ì<»½ËT[èELýÓ ©:ÀH(H±´vÚ/¯¥ÌMOKÚÐ2âèöÎ3 ƒöy Í~ç8l1{ÓM¦~™Poo. 3³¸S]† q±{`Ú‰h-Âk«ô'ÇŽ›c¤#_øòµâ〉¦`SÇXm˰›£ÆÓ·µ)yí÷<ãÓš-ŽÇÚ'kn êèúÎÉíÝÈøç!»ƒ< Í E 4ùñµMƒo§¾°çí÷ÖDø—dpæ7Ýõ]ý2<ƒroºmç.ä º y˜šß±KWLÈvð#Ãsë£ fA¿ ¼’º>\Bx|VóahsB£*]Tá¶¶. ŠRlAWžFÖØŸM$!ÚzÝÄÃYKZ„iÃ~-(îMÍì\˜_à¢;º_áõsyž¹g®¦²=e§ì~#;¯ô“ïYxdEýÀ¡½²%µýÃcóÊ’X¥6žø ?\Ë?se½¡`¦#%&#̲¼ü DîN=aäÓ÷¹«¾øö}Srv+ò/V¶Å‘·â"ŒÅI‡~Û)ñ6©ùÊõ\çËiN®ïŽœwÄõý×w¾ù·ïmH}e}ÀBÊæTÜüüJÒãßG漂r™:{§j›FöïB›±­{ ²¼q€‚Œö&ÈõåÆ×6lGÍLO>8>?=·¤(Î–ÕŠì¡ Áv=¬õ2 ²ó×3¬å-MÅmO'Ô4 G=س×T<âMý!çä§‘uˆ ”Ä,ÌäýC³ñ)-GÝR¼nç¡”Ž}dIGKfæ Z7ØÃðqTuc똋ƒÚ£èšÿüþ Ü=.³¬$¼¿±c Çôì\‚Y~òMQš„Fwbz==91–øÌf%IvQ^Æ“ž)vK}]ùýÎór²ªý'ã÷í?f£à˜os,õMØmÓÔHë“öJ.GTTŒylóÄ‚’’Äödây¯Uhå}NÇÅ;#<²öš«^Z~guãÀ–×ݼ•åïûLÄAªósÐA‡ÑÙ7‰šfdb¥ëz©+þD7þŠF<!P‚Õ¶Œˆó3ëîœqó0ª eï.=a·ëY¦ºBêò\¿åã^Í¿o“šlOÆ“lzpÓäú%=sQ1AF>Nc]·“ê/ïí–—f½ìÿÁÍ'Ëí˜úa+9än<¡àêi-¿û´”$»·‰Üz\¬(ÉF¾…¨¢¾_Q‚­½wç€96½ðç¸øsÒà‡„*¡lUó°/Æ_7´t«Êp<­Ñ×àÙ‹}ÖAõ¶wp^ä}s«z{^Ì/¬Ä?Ûge&‘ø¾åÌ¥ô°g•w•‡>«¸è“Zj¢+÷ÄBˆŸ^w÷sNVªâÄC¯ãšZǯœòLÅOÙ*㾊ñ3âŸZP”`¯m8Ö_\úJX'ëš©™œY¢¡$A´F5#ÆÇ[Þ#-Â<>¹X×2rÊV)(¼”œœèˆµ¼³GšªÜëØù”¼âO¯î›[›ID¾m<ížê\ø.£-+¿+8¬ÌåJ:¾•fŠ{j ÎÈÜîŠ,Ç…ãêç}2…yvŠ ko××›[öIO…·¨¦ŽŠ ½þξ)€WȾ¿—ôÙð/“ì¾ ÀÉàè,ܱ¨º—ƒ… ”oÍÇa}5¾§eÛu…LtíÎ$³U©alõÊb§¸Ÿ»n\r“ý©DPîg4R¢­ßGYeĸṆ†ôð™ä ÐRkY/7m›ãñ=½3þ—ôÎùfÒQo¹x\óÖÃbyqÖáñÏHCx“]ÒÅËN ÁçůPjA@´^Ñq-‹ÙYXBÇ™¸.–+z€ª2œ»p>à b½Ïê?.Åi^<¥yúR*€¯CͳóºìN&“l ð1¸ëo|ú°Ò±ƒ ·<·= Ü!+Åråú¿À_w}A»S‰[U¸t=Óí-dÁi¤æv˜‰fv¢Ý€ÛÜ5.ÊËÐÕ? î G™ÿ¼¼vz?ae½ÆñÎ}^F‡ £o’Š‚:Å´‚0Ø¥5ÜlÔpŽ’š¾]"7îéòû¸ê8ž°w‡‚¢¡ÅËÙùåèÇ{­wK÷]ðÈö¹‘ïî™õ¦ÁT_0êá~^ZýÝü\´¾tìMu=Ïnõ ÈEú™E'FC3-¿ÃDK°ºix|j‘‡zĨ©QÚ¯—MN ›€çŽÂx±¸¦…‘úaDб©Múê|ssË)9"ªÐž¹fäT”Þ¸ÝÖB:%½Ý?°(øAiÐýÒ›ÁÅáÏ«å¥X£íWÙHp°’QWâ<ç‘é⤲²ò-%»ÝÎR6!½E” CWß4RvnYë—•o°3„BkqñÇŽÿ„×~òÒèÓCxBKEŠž,ê;j*p¯“€sK{ÀrƒÎ-,ïµØ.~É/‡‡“ÚÛMçà‰ÓmB>î:EŽç.¥#½ÊH1óðÐHŠ1!4º^ÉŒŽmôQA‡ˆ 8âÀŽkuá± „îö6ÙßÂïà"a¸…¥o]Ó"¼ôXš¨p“²Zè¶óÒ‡½®:~@1»° œ"ä*Q öV2^7ó¸8¨½ÝµN'ç—ôÞ 015§f&¿lüuƒ¶ÏÃàí³s˶1Èé»Äœ/¦í6)¯œœZ4ÖˆIjr²VHÍmGHU–ãUr4¸ý8:XI ßo!é×Wc‹…Ê*w”·ÈÔQìÌ”P(j)qå÷@¡¸…Œ¸¸ru‰F¼­3ÑØøë/‘q ¾†e•ƒ¯Þ4x^Ô¶Ü-^Y5Ýù¦1#³ üΛ&ÝSwBË®]ÔžÏ+êqvT~׈ΨŒ¦öqcmÁøôÄEH(à € (1hÈ "ÀÉ,ý†îá ÿqì¸ædxVæÔÔÔׯ_ ÏŒð}wÀ{BíoTO!Ë A£ƒü¥®_Sž ÎjG>.TwŸ–ŸqTÉÎïfÑ÷®ÉÖRêþà TÁþFÍMã×oÌÎ~¢‡Þâf`QJZ‡÷% Q&¿Û»Œ…+jIˆ7› G'|ÿæÊúÿ@-Š~~~7oÞŒŽŽŽ‰‰yõêžeDKK‹‡jÁ ñà$zzzbbb:;)(êilC' ‡ƒ#Æ¥6A«†Zq·§ ½Z|p¥p 8å:Bjè½ñŠúw~){3Škx–+0 ”%}0Ò“7µ ñ3€YDÁb®®47‰ÿ¨£ÅÃÊDùüeíýÒ–æâ_¿MN,ª)sœ?«CõôL;Ù+Ä&6Á€ß~ÿ½£kRQ–­¤²_T€¡§*5xÝÊÊw€ivf*Hʱ’ ^Ä"ùAНggg/_¾ìææÆÁÁ1<<ŒÇ…††vttÀ#ñláGŒŒØÛÛ—––žü35^ÖqçqñpJ2ÒÍÄÄ›À>"Yˆ 1Amúû÷ÿ@„"ÌO¯$ËÌ‹•õ;ØÈ¡Ù ÀO/.ʘ’Ñá`'7;ó%)©5&öcBb Óa{ùêÚ!×H_ ñ]‹•tkÇ8˜p<²›ƒ•²¬fý·©Ù/Piàp”8.ü·jþõUôÆvñ/ÔÀÀ ¨jѳނJbnµ’Ào²hÉ0’AKM24<ÇÎJ Üd!Ü k25£]I‘]Z‚9*ºaié+LŸÐŒŒfm)™šÑ!*D2kbb“•qæÑ±Ï`ÙþHSa0ï͉ש™%Ø^ˆ4ºÙãé×lñàÁƒ·oßâá·ˆ‹ÏŸ?GîÆã ñ”8VVÖ¦¦¦ØØXÄÈ¿×<öRŰÈgtfQZÃ?P?j*p!zRgt¡_ŠùT2²Í}³uM#ЪàÐP“”” ðóÑòrS—W ˜š ÚÛÉZZŠ77!Ñk¨qåöoŸ\`¤ßÒ?8[S?„(‚û Tžö¡Ç…-tTxû†f1…¸:móm5.ö Îü¾Þ£ µ¸äå¯ß—W¾¯ºã"‚"wðB„Fø(t:³s_8X(;º§8'&—p33Kl¤¤›ç$Ä™jj‡ØÙ(Íw‹ ª©q•”öqrPâ¦f–Ѫiëœà`§êœƒJŠ]H™°Ôgf¿ÀÎÝ}S(˜°D‘!ÀÈ"T#‘!N#YClÿƒ¢ãé%((($$„t øØÕÕegg‡(ØÙÙYVV†Ÿà¼¼¼x€!ÞãqV>Ú.‚E‰‘«¾¡¸Ä °>Ú3Ý}«1‹ª©0à¥…ÙÆ&>Ž- 2Œ}Æß£‘¸e 5æ èéÉ6nÚÇ…ŒÎ#ã#Fâ x Hਠø!ŽH(›—¾|ÃqÖŠ9|»þ’ð?(HüC8+œ3áûÀbøÂ™Âe!p„¿âzqEXÒ„_bâã¸T'¤d› vaŽ«ÃÃVW$g+߉ˆ6â– bÂÕ#}ã@0B2¢Ìb°áÞàSx÷ãÔà„Ñz%%%III:ÔÓÓóôôD˜Ä·yyy\\\ãã㈔ @ù$l ¢v„¹yè±ôû‡gñ-ú`₌™Â:0‡Ž¸_&l¦ÀÁFÅÆJQS7(*Â8=³DJº)©¢b µu¼¹yŸEãkphN\Œ‰„xã šf¸lx!ŽGÇmÀ±`~\1A[úgþâßðœ~8Nqn±²:¸ A"Vaq¢Î@êDŒžãç¦A)FOG:>±@I‰¤µzi`Ê>õÍHI2·´Œ#(64Œ|Èí–”`ž›_qèhI`.^nZˆ”>gf—À7CÚº Öæá¤éžec¢„oÓÑÁ_aŸEÔøqÑgtîÜ9< N‰çù«««#:ÚÚÚJKK»»»9räèÑ£âââx\+|÷¯=Xq°Dcø“rÜì40Æ¥7OÍ|Á€¥•™$æZê>ŽÂRh¹ªÈ³—TôCBãòñÒŒŒ~.­Øn*ÔÐ0š•ÝUPЫ«Ã;<:_U;$%Á404'+ÍÚÐ4ÊÉNP…XØ78û©æÀ^)¬uÜãøŒf¬ðŽd›þتtœa}á#a Øk'‰™T0ó´4d„"Å øB&†-XŸìlT#£ ÌŒä¨rp;˜) øÜ¦Ç—Ó“‰‘`{û$Œ‚/mdLƒª2ÚŒKKßPk÷ÍñóЃ²0QàãptÜ S°ÈÚ(ïPÑ£àÃúGèÅ2ƽ@êøqÑ¿fdd$""ÂT*Š(¢eeeá ‹‹‹|||,,,LLLÀ‘ðÝ¿EØGÒÁî`žÑÅ€ü¨(ˆQ¸ˆ0 °13ƒÃ$‘]MãˆþVÞ¨¸F@F ¤ù=ÇßÄ~¬k1Û%rÈ^ÖÚJÐó^XÅ+)àÅÂ’^U%ŽðW5êÊ\=}ÓHp%Uý¸("!/µ„t€Ó»„8<¾î£®`}á‘H Sá(ðX̬„¸ˆè¸E7–– .“””ˆ‡.3¯Ë|‡h|r3 ! ó­ÀâÞÁ9EE6uu® ›6Ü(µU‹çá³*ðŸú§‘Cd$YÀ‚IŠ1@³³P"õ ÈÔ(Ø¡}D·ïQäpǧwį o€ ‡šïa„C£ƒñ7xýË\èZË_pÉ_G&?ãpP˜B?Ï@Ž€~qdlÚOnv*Ô•§•ET ò3 1eåw»:«?¯@r?yT)1¹5ø~˜¶€’gu{ÌDyyi¼üóÃêÁ¡£Éü°Ìf$ü#ROSÇø6M>´Áb 7ˆð xA8Œ€À£¯£Øk—àDMI2=ÿeïç…¯pPxääì’0=Ö§š"gcë(@³]JV»õ‰¨øFffrY¶Ë¾´´¸m¬¤2²:ÀÎ>xTñºNQŽí˜“"8pdêíÆB÷W€§D¢˜žþ¢®Èa#mUn€u&ú-ˆÆ(qP\#} @–`†²µ ìóƒ$ÿ½/%¾Öÿß“ù å –-0þØ IÀ®®u¤ôeÇ÷ŒÂÎK§4Á„³³R‚PÌ.èºêºõÉËj%y65%O¿\ÌÍx\Újb(ÈÇG«®Æuóš>Ö±ëåLf&ò½»Å<­8rP’Û²>eyvÿûEŽÖrÀF=Øå§µkµ¹sP@ 3 `:gæ–˜é(`÷u˜¡HhPádÀuæ£EøÊk ã¬jÂÜTñï³Û<ЬBºÀÀ»oöáƒr@&§Ï§b¡:9ȃ;¸_Úù„2'ÕE¯ìîOS>—uŸFÖŽM,Xÿ´ÒD_;R€ÜÑPâJÈhÞ®'ÔÞ3IMI ì€*„U$q|؇Šp’?¡„‚pB ^Qd€ë†Þ±¾mjx`Z \¨ !Z¹pL#"®ž…rn~@ªœÐçUºü°ø>‡X—Sj—]µÀx_¹öáõÛ†ÊÚApãîžY!¡eh‘…™ž»š14<ÜAñÎãòcv ÌLà‰eØî¿(w²’‡Èê)s‘щ #FÂîˆPÓ`a¬ËpšЉœlµGŒ@æ«K˜‡³§üõ­#y¼téùûwKƼk¢/{Õ?÷²‹æä䢛wֱà ö6²Q±—}rî<,»^îq=÷öbyYÖ€kQñ @;·½·½}ׄŠç€…ô£WUè}÷Í¢E®"ÇÑöø4^9ôùSsK@ ÐGcUlø»ç\ÿu3`s RÀv8¦ŠP «zZ+ħ7³1S¢ûŒL‚#H:üœlTæöony€wÜeíIÈ-ãC62HFjJœJòìæ;Åž…š¡õ²×>´Ü«‡æç<3° µ‚(_Mžƒ‰‘¼¡eT^’5"¾nÿIìû‚I[™gp|A=ktç€ ×K`FxE~DM€ ô††´y°P5ºÕù•Ÿ0˜”ÙŠz}Âkw |.ê€Ð‹¨ Ù ÷µvŠÃg}.ë8SÑßʧ­Îï¼åk ,LÊ=-3¯ûù=³®Þi,Ñïméy­]“Ì¥^Æ×AY‚4¤$+΂[ ¡ÀQkmë¹tÏIþöÍþuîˆWTìPòÀóöŠå”w£‚AaEii*ví^Á~s è¢-½}´ÈZ½ëFè†>«Ç·èE=0=w\UZœåÛ×ïE¢}€™!hÏCœ¯¤½Žkxq׌‰‰ü¨ûûã¶ 4´¤þ ¯œÒ‚ãB`f¢-WÞ#+Ê‚ 1ª½{Ð*DÍ·¶³ðÏ9œ°va¨"1¨>LF˜ jSP€Øá ‡`>ñ2±>"Ь¸ª¯¨ªïIÀ®§ojK ÚyÕeëý'Ž.ï> ΀S´Ù'u`Ÿ´•Œ¡ž½s’w@þN¡œxÛ€G¥g½2 S…j cJÏn›Õ47´ŽÞ'‹Mj@4‚WjìUcAKJ ½ÁXëµ±%a÷* Xˆ •d¬iBye FœíU0æ ‘¶×YíÛ‹7nþõž¯IÈ“²ÐW•a7·²– {Qe{"!#¿ Lª¤83HG *’†–±cRܯeK‹3Ç=ÛúÂñ|²Ó~9H•ÏùfìÛ!ÁËEòZ² @ê­ŠÜÕMC˜C§$'šž|$²v†?ó$!Ή…‘³ 80· 3 5@wa¯…àËF%Õýy½÷¼M0¥€å›ñÚîkîø†„tÓ›ð½ÐfævtO}ø¢êî“rÄNŒÇ/kmä2cl„é»&WÕfEÛ‘oÆÜ§óÖùÅ•ð˜šÀK†Ø}¥±}Ìz»dQmXÔøœ²2P¬m·°¾Û!OÔàøö‹BÕõ¡¼»íÜ(ŒÆáYïtìÿز¥}Üêd,9Ñ“ ç«¡:¬myYûàieQY/h]ksɨ°=ªŠœn×2Ã^V…ù›jªp;º¿ÿºßLÒïAž¯„ã‹„ºmj|ØÄÅŒ À4ê* ²U’üç¼:Á#Iˆ6ÓR‘ ŒÎɉ°@Sƒ†õþíRm£ }ÎÚ«Ü+Dirû’Að“Òk÷óïúì8õ=02 í«0óñsâlsã&¿²²ýMjÑ»³‰ç¼3¡-ˆ}lóþ£‹oÆ [%UNWÿL›]R –Rò:,Åáw-]cJì(¤~€ÖX­õ|XÉfAI  µ…Š":°„®ﳸZ0>ØÆ#$OG•IØM¬§A»lvK¡L¶9€À&%Áb¾SäÊ9MßKº6–R*ŠSs‹G/¦C‹ 2&<ÙæÈÁ- –¼x\ãVx €ŠõIl¯œ¶Ò`DqYo,Ñ?7Qæ õ׉äÄÂ6<ûWX) Êä ·áÝ8¯5$]вÄÖœôHQeÅL±ÇYí¸ÔfŸàü+7s,ŽÆ`¾sï‘LÖž>,=b£òÒÚXOÀ?´(·ôS^ôAY Ö“^©˜l?`&uçe¹7Câ‡VÜl4<‡0S¼f÷uÄ0„¬äˆ D‹- PÊq¯îÑù:Š›'±Õ{Ä”¥ØÎßȤ§%{°»¢nÀéb2=iøíî'4Ð?|Së\pñFŽûõlÏÀ¼Ðˆ*\2„ݶªrùÞËG¶¹~^{apmîG5’?´Âõ-ŒÄ«š±2¥„™±ažø',³áß¹A®µ$ 5(YfJÌÊ`_Wl–‡¯—¥¬ÌWOlÅ&…·Â‹ƒ¯é¨ò]ðÏÂ6=h¢Àú%ÉA†šJܺj¼ªòWNkÆÛ'<Ý·™hà ” þÙh¼FÞÝ“˜Ý†ýæìöÈèªò`*è²vh ew`j NÙÝ?…̸ΡñÏd8^ÿ(²±í'ÔIàa_0Õ-C¿™J€Å>¿V;$í÷ÊÞxT\Z×~s§¹¡è󷵎îÉm=ãâ^>£u÷š±ß=_7»>F×.èØZJãÿ<ã“æ’#¶‹ÀÓÅ/]F”Åã”VzaçÇöÑÃ{eQ¾ Q`SL·¡ô†÷Û¹þØ;÷ ¨ê(Ž_,£MyÊû!•yÊ"&&ˆ©%ehYš£¥NeÖJÑlrl¬P¦œ²©¬œŠ&£RA‚PÚ ÜeamA@XTÓžŸ½wæÎwºã?5wgg¸ëÞ½0gÎïœïy} a3a„Tœ…’ÞôÍ5S½¹{Ùü„=û?·ýЪû§|°} IE;+½OŸ“J?Ëë{Ž–U˜Ýou£™ŠêŸ´n«awà xgÆçh݃rŽÒKÉKy¿ýþçó;SlX[˜Roî"ÇIÊ—27÷c€vv|P8•öÁP€•ß o„—Ì›B÷ÞuÛÞ©~da¶gf¾RRm¬o_0{ÒÎrÉ×”~ÛD’„ÖRÝáQ£Áâ˜@ðqA^,¹nò‹Å›[z€¡tñï3ÒI¹zq2»z`ž˜55„ïƒå3Z67„::7‡C%C¾FÚœô0øË´Ì1„øxì-­#ÊÙ´ÖPvÄ»+¨QÉÖ|ôŽù:Š­ÃæèZHa’9‚žÂÚ±í›v”£mdtá‹:|Ìr¤Öš‘À°Ò‰Ó@Õ…3£I¦ª„ñÂÍ–A m÷B~R¯ ñ !%ƒÙéa,… ¶†Û V_†€_Û8‹!T¦]©+NOž¸²0ÑÕ1cðF-ŠH5V1üD[/¾Y90p-=)põâ$úÖ’*ðâ’üxÊT ¦nìâ£GÁúÌ|7ÕB,…$€¡o•‰ÄÉ>B˜ÞÖÞ773â@•™X2'=”²Ø¾§`ZŸ?3*3e"{öוUšÅæ\¸83-ˆ"?&¡²ÖZÛÐW1&“t&01>Ò‹Â+¼3ä“—ß«ôó(«2aÑE:€êl`"¹ËÁ¾¦üb¡ä;Öb³3} Æ€±ÜØ {%cѲ’¬‘ í“©ÍÎäøášVê7®âfôŒ|ë&览Bäõù3"@AœÒÏ5µœ±ÏJá-9v|4v‘R>ü0ð%A†ý_/Ó¼IóÛF4:CPKkG_ÎÔP†ÿ±œÐu§N óÜõ±q×>£½ÿ 4p΋K‰÷#â¡„óêîêïÝRü=Ï!m95Á³Z\”Kšxˆ½ +Ï®ÈðïþeEÿ™Ÿ‰û#é û­B5Ç|‰R¢%tt_¤Óvjh;«1Óï½aÅ4Èt@~PMwÙ/-_¤ßòTöã…É@I]”ƒ©‘9Ì@ã±¢@_ô¤aÃÊ | {oé 8ý¡©Ž‹ô>XcÁ¡Ï5DR D9Þ@Fçy7âÖ-y™BŽ£±õœµÃž¦óGcð³h^ž!¼ÉÒûùÁFFßÑ0(MÐWúM`1"}(YôªãÖº·Ï˜ äâôcjëmp]¤Oá¤.]¹â)ë"Bײß@,Ô¯Arp$Ó…Ke¬çèIùðäX߬”àSæsGj[{« +ôi¢ÿhÚÅ¥ y´³lž±>G‹ÐHX[ÉERBÖ³bB=aï½pÙÖu]Tèâ§Ž²ô¥y®¨ ñ§ÏôrXñSKóu°—V4s ñ­ë—¥A‰ †&5*ˆ¢3ß%Â%–¨qqù[†ØiD5Ùââ.ÉÕQ«à™®.<_뺨´‘@dÀŒõl_S[ë9dGSOb ¹òKçëèÊiïîg>š†eFÒè£]ÕCÜ=HE4Ø sÃȉ^–#D³? PD8hi·#v*7K(|xÍ‘<²ãÐH€ ¢gQÒ‡`r”wAN (RÆÒòfª8úXòpWNÛ²>{óYEk²6¯1¼¼.› Cj°>Æw„‹@( Räó²¢2ûúh"§æE3©¤‹Ú9/#Ã' ’ÖŽ¾ÎÞþø¯{²£iíá|~Ui:i"± D…ŒcIþÇ%®z` •'&tÑh×¥?ðS]÷+Õ¿9Ó#2ôxd ¾]”hò%]Þö?8ÖÇ@ M äØw¸Dâ½iÎ…(zVz•ñÎѕҞ¦ù,ddéBüÇè"½\ØKì­ë<0’4°£ø[œ®eÉi)ø´:Å–M”•x8VæPÐ"•Ýhé!úÃȈœf%l$ÐN×Ùs–…ðÀqDK܇àèÞ$<¼"Ó9¦Ã¥â¯Á7‰ 'J辘&—‡æM&%$9äãîIŽó½+-¸0/þîŒPîA• ¨yÑ[ŽQa_\ŒVåæíËÄY))œpÒ8]<[÷Å›²+vêè£'@ÐÈê¼0"eæN 'úaý(3,`,æ³µÃzá¡P­Ò³ƒ.ò@Þ¢‹N2^‘©°2‚!m†Rúy9ìfBoW†Ü\ñ¶qcFqúK 7p?úG¢‡v,iÛ0æÏeC¨nµðÉJÃÄ> ’Z"åÓóýôãЄƊ¼.+þù n•HCå¨/ÆU¤/t‘Í­Zà2¼^}°Òˆ° ¡1´@€ÉK*3ôœ¿ÌgÒI–.\„ž4hážä.=éëCãŸSØ+ÈZ<^\3`4põæüqÇÝq/°8Šˆ@PTç.1Yÿÿó骜VQLõÖyu¸­Ìà+ߪ|¤|Î`äÄ…ø½Äà±€ã:‡¡þíW(ú©þ¨AÒPÞ¬¼P—†ÊµÒÒKRBáF»©Ù9™ÀÁ•žê\©WÿÛÔE¤þE¥ÖiÔ:^ÿ$ƒ|^ "¹~—.†ÌK©»Î0S–˜³ýS(ã#…›Ö’³þ‡};T„(8ýÿÖh0 †Åq×ĸ‡`Øo“ÈoÏTšJ_îûX¨°ùÏ樂ÎË ð(G#r9"G#r9ÂfïŽUa0·â9éääû¿8Ÿop â¡Â--òºÜð³Éæ’;6 ‰ h½ ŠèßyGµ]¬µ«ai çœÞAºòþ¨ô=ïhVëÆ­µÞûè›9§j‚sÍ„K½%c !äœk­ûJ))%h|˜¡ÕŠX¥Ì›½;8„a¨~ºZÁì¿GK¡¯ª èWðfÈ'ÈY´€ú 3GÄ ´»ëô‰HÛ/»f¦Ûw©2ƒ½sI†¨¿ûßÕ Œ.¥òj`(¸1uÀIê"f“ú<õA§O?é§ßÓ^B_›^Œ«ãÛ¯¥wŸÉÞ±(¶˜ÖÁ÷úë&©(btk•ÄÎ2nCl ¡Îg‡Î¹ãæQèIò­qáï”kŠ“¡ieÅ…ôÔÐHÕÉ6®KºÛ»bbÚ“S“¶£Kÿÿwtréäô ZátÈâ A'—ƒ^òI·Bèvc¤È93Ó‰ù/¶ÛnÇ”"­¥\®·{k­÷gX>ÿdï>ƒË¹†X;“@(¦)äœ÷PG³¿.¶Š7uM9¿S VÙ`bŠh/_Sùºö$gE' Wf‹bÖ) ø˜Îµ>Þž6J2e¨µIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-ellipse.png0000644000076500000240000000177612536324510022722 0ustar philstaff00000000000000‰PNG  IHDR\\Ô1"jzPLTEÿîîîïïï““õììîííî((üýççï::ûHHúJJú[[ùll÷nn÷||ö••ô££ó­­ó··ò»»òÇÇñÉÉñÌÌñÍÍðÓÓðÚÚðÞÞïääïýèèîééîëëî,,ü//ü00ü99û……öMMú##ýss÷tt÷zzöþ}}ö€€ööƒƒöý‡‡õˆˆõõ‘‘õý33û››ôô¢¢ô44û¤¤ó§§ó¬¬ó55û°°ò²²òµµò!!ýýÄÄñ<<û@@úÌÌðEEú$$üÒÒð þÕÕðØØðÚÚïKKúÜÜïÝÝïààï..üPPùSSùèèï**üêêî\\ø]]ø__ø``øhhørr÷))üCCúii÷kk÷QQùmm÷RRùÎÎðÐÐðoo÷––ôpp÷××ðLLúbbøXXùvv÷¥¥ó¦¦óww÷xx÷ ý®®ó11û±±ò;;û""ý¶¶ò##ü¸¸òººò–o+?IDATx^íØÅ–ã0ДLafæffffæffþ÷ÙÌÂñÄ1I›>®¸ Û²Þ+a˜»ŠÛ¸Û¸ó»ñÈ×ÛËMEâ»<5;F»K¢kïÂï¿Øs‰KŽÅÑw;°ˆ#Áy7>×kQt­Õs^îLãγ•ëàš €µàõ¯ÙÓžðõŸÌ ¤e„ù“~_Â0þ~õkOD3H÷´­~1„'ï{Â<ˆ®€”Ôç#ADw Gy]8Ä«CÁÁ•¸M…7¥? †ƒHéaxvý²HLåüÒ“m‰c²C€9BÇä>ZੳAÓÁàYJG¬2N,eüÇS¨à™Åo°†#\ΨàÇÄr:›â^)ZÇ‹+Ãh‚Ç¥¬ãHIñÿpœ…•„ŽN¡ÄûžƒŽ·CJœo[¦…/·ñ |¦J¨¥:£À=côð1OŽÍ\žžÏmBŽ·=·Ü¥‰ÿ\oÀ¥mšø¶$Ç[M\ØrÊð˜H¨FŒÉði7]Ü=-Ã^ÒÅo†äø e|€écaúBŠìûãßþ‘&~Û ¦¿\Ö—ûkŽý>?ÅÑ‚éPÄpœc<ˆ²¡•Ãÿœåá¿’Q][Ê–×–g`¸p1]5–ÜÇçf—Ü×Yëùos빯¦ÅûJD»Ìq*sž$ ÖPeý5ÔÃÍlõWÒªþ>8­•–R½=lRZÞóriP¬[»ÿÕ­]UYÝʲ(¾ûý¹Û¸Û¸ÿ°g•õ~¼üIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-gradients.png0000644000076500000240000005724712536324510023251 0ustar philstaff00000000000000‰PNG  IHDRš¯Š*P^^nIDATx^ì|K$Çuî9‘•õè~ÌL÷¼ÈrÌ×"i‰Åk[%¯î½0 C‚¼ñÂ+]àþ/ xã­»à… [ì, ’EФD^qÞC†3=œžéwWwu=2«2ó·*:"2;éšJÊ ƒÑ…BvTÖ'â<âœ' ŸÿßñÔ³&j5@Ì„ˆ«)‘ PDêc"|Ö˜x €Yw(¥’$aó¯çyBJ``æ(êt#öÃðÆÕkø?ÿïwÏ?õB©w5©=N ÝíòôY@)1ŠIã ”KHDƒXwHf`R«!Ö;qm+šô xûŒAvÚM)pÈ2`F‚á5 ð˵©©A¯ÓÞˆJ~õþWTòƒõ ivú»£&ÏÉ©óboÓ÷ð©“QÔÛkµ+ÕÊwBª×J‹“½›w›±œ©VÊ€€LÇŽˆí^?ñ–·@åÍî•äÆƒ­¤Ã­½xQ@ÁöY‹¢®ïEž§€‰öÚAIÑæ½«G³'žþ\³ÙGÀ($v»Û÷ˆ’‰# $êAªÙÜëÒ÷¥Ø\ó:bÐ[dèÌÖKQ½Å|¦4›·N.㘒˜{ɬž8.+eÑÜéìu~¿4a­^}÷Rçø\}o§×;ÍžÓÆÒf ¥‚bí³†ãÙi/‰ºÌ‰WžÚÛ Ê*ñ*3Rù½n/lï†QD³3Þæúƒ°Ý<3q|·Ýj7[˜8J´M³¿37íOâ:%Év+¸µÊÍVç×W®Ü‰®ßÞ}çÊýëKK¿Ú¹|»ýÃw×~ô³»?yoíçïwß¼Òüå½Þ•[HáF³½´Ò}Ðd Áî^›\KöQò^|va®“$Ž¢AÐí4Wïl.ßêµvûAÇ<èG½Î^BªßïA(Nâ Ó­N-Μ¸tzÑ`ÀLøÒ·þºzä$ЀDÅ— ¸Ï5 Š)‰QHDd"FD"kÁ#J@ffbæŠ/ç&úÄR‰˜úíû­Šðë €À9çè³{Á`q(Ž( ¤€Ì¡D’zdfá©’€I<à¨/…`bbéÇíUÆöÿzenj¢ÊÄ€ÈS°ùàS{'‚eE„”Ä}>%JÍF˜n8VÆÿïÞ“_òÇ2™Ù-5",9f!tºá?þóMüÊ7þüÿýÙ7æ™™Ý@)yâ, ˜e瘂š‹Zÿó ØÊˆ‘Î@ý×í)ÞÆ`‡Ÿç‚£€³:/P R©A?ìv;I’;v¬6Q©À=¿z¥Rµ\±úψÊÐaØ÷Kå_Ck†£™¥Ý؆/1l0² )„yƒÆœ™´òáPÃÆlõÚ©ž¡j,(yxuDn™JÕÔÔÔ>G™x§µsåÊå0 ŒùÍo"ÈÌ·oßnµöjµZ5(•J2QqO7¦;ÝÎ`S’È õêH)67·Â°ßíö¥1^öÍ @&&¦3gΜü<¢OÊÚA wØ…À”ù.ÒœÄ:Gí8æ–ñ¢Ãk%-±Yì¾îˆA°P< ÑêÊÊÑùù™Ù#‘Ù@"§4ž™hÐ6Ö×QÏó‰â0”òšÍ&"8$‚AÆI‚ˆE,pr²>5ÅG{î¹gP㊠0tFdfÁÊÊʾlMOOëÝQÙ]34º©aŠÀB‹ÇYßH›L»ˆã6çbä–ÙK“aÀŠ‘DD¾ïMOBäÜ71|%ÀöÍ&%¤Ç`@㙲S3Fë›ÝÆ~ý-Où€¹mÏÅñ<55™$Gûý¾µ¥ Ö©'³RN«Šê@Z>Óà†£P°å¾‹lS\ºÐÑc­‘kãRÇBÃÍ4&ŽIK,<ú裎cÅ´µ½µ¸¸8;{$›½ ³ß‚ •šDnµvPŽúÑ Þa¨Vñ£hEï^»­”ZXXB<õôSÇŽÎ3#Y;½û÷×zÝÞÄäÄÓcì²û+æÒ“–Ï0§ò~YX„ŠžV, nr­ì¼rÇÅ)CDÉ—ËþÑ£³ˆP # é•Juaa¡Õj!"3¥Bçõ+ÓëÌÇh]Ö;è´â¸P9ïÖæ¹®±¡ù#ß1ðPºåÓNn×`—v¤THÆ„°û½òßz…ö¥BH$f4A89 &F@æ°`\8á/Offqìû~üÆÔÚD4ÃFÕIïOþxâÄI@Ht2µ’Ê…[Åv 7_÷®±xl üèÀ KOÎÃJeÖxhè¢,Ç·lPÄà´D ñ‹Úßÿ­ÆQNbð„.Ý!‡ñMC`Æh!:PÙÜOñ€2SÕÅ éqŠ ‡ã«Å)”’uÉŒvr*iPTÑÁÒc&˜>³EK; ;ç=€žù”€c$3U«¯}E”ËÕÚDИŠúý®_Þ¹z=éõ†¼À IˆòÞrýé'w¬PÙ r" ã%iÓ­•¦¶˜~¢“Y§[6w36”3Ô6ø³æÖ?Nšg†¹Š%ÃÁZÌŸôø ¢ ¸ õg9^–ÚÑùÚ‹/FçÎÆQÔ]Yí\¹%oçgï z=4‡¬."ètº{ídqawi X<‚€Î·Â”ðkc „PT Ø“îa#ÔãòÓñÒib®ZyÜŒ"Z5rK©Ñ Ûmç 8ž]çý¹´xh-ou˜¥çÍ;Û¯Õ6W×î¾þÆqJdÉ[yýͽ}>!3áÜ\7:nÜýðø…g¿\[\è,ßoí4°õ–N•,Áªè9&¦35N2ü€•¦A¶ZîÌ&c…E0$¥½—BÙfȘh˜:=Htþà>€ ²î83×êõãç¿¿»»}ñ ãì;ßÛD)ãn÷@7l¤‘§£×k?xðù?úVÈÉÄcçVòz€(…94Àtl¤Ò†Š0”9/XÆaqúÙö»”ìxˆÌn‡3Tav÷ÅÌ4µ¢ÎY¶{•AzI¥hñÄ>óÂvçΕ«0»¸ æç¯,-µÖ7„àal;N¦ïØXߘùðÓO?=îñ=æR­:œ$çÖÚYˆœÚزgÈ”Ôçm…%‘s MOÑæ„³ÛgÎÇA01¡IáœûâËóçÏËr¹µ¹'×–—7;Ý+—.÷Ãà Å|È?¼`~Ðoýà‡_™ ¤¬=òh­1cf,ŒZsÆ*s²Ù,ÑʇíAà"+˜•z§[Œ…µœ™áPk.c\L:Ò^gHe§ú+™bñÜãS3Ç‚ × ¢f,~µ±"lÌIÌÔ>°­­dÈò€L¥¥0òÓ"¾öËÛ/;ñijÏ)OYCžÙ¬ÌÞI鼉n£&jkM¬åÉIÛ1ÇÝæÒ9€PˆhÒ yígƒ™y€3‡iri8ºÆ{“Ë7&n ñàÔ`êÂÑ/$¯H §øT‰KmÕ®'Ó‚Eß w¨9‰“¢,IñtXO¢¸äU®EWúÜ75ÉjûH碸xŽïß™òi3sS†HF†A8‚˜Gg>K~)w §£6N( BxXSžò<Ï̵r>ã_CqÖÊå/”R^É6ËžÎé0€‘Ô± ù•NE’¬OÕ[­=Nhmzý-ùfz»°K@¯ ^™‹çš•æïÎõè:kf ¦™`æóɎÂ9DÊV¡Péj½„(ŽãQÜDðJ%=™-fŽ“Äà¸å¡”zTœƒÊ5}x äC¡â1¡äHª’a¥‘–¬ w‘ûÀh:²ÛA]ÕÏ”Ï~¿ åîN÷™ò3sÉÜê`Õí‘ÀºŠlÆX0¢B™AMl½ W–dT¦xq¬æD.¹^Ê¥æG%Ù?a(ã ÔÚ·‚Œ¿jùz´|ôLåÌòúòR²ô‚ÿBËïl½Ó¥®Ù£ža7ž¢ýßUwÏNœÝhmÓA4NÀ“Èz,&Çg]\VfðœÑt:E§šõrGŽVÀtÆ?{ø)A9gŽÜöÝFØ8ŒÃÀGkGOǧoܻюÛøoû€ló¢ÖCÎ:¥-lEG¢¹pnµ³êœ¥3(†C¶`ëÙ {Þi°œŸž™?¯77fËá9Crñ&ÿà×§…éÄßAÐÐXìÜT¦éÚôyæÆ‡7ÚQ[€°ê£×@óûÞö½Çf‹Ûñ±ê±õÞ:õ @™ã—‚gÅ€˜«*Fv9çÄbaítÙNNÉo餌†ÊÔÅ*Pœ^y­ÝšÊSÄœ$1LOLŸ¯œ¿uíV»§y©owÃŒ¤ZÐÚíì~ó‰oÊHmŠ77ބĜڢËcBúLœó‹ ³)‚Â,ÈœE`¦(²`To·KÁŽŸØ%½¾Ã‘£Å—μÆá»¼;Yœ—ó·.ÝÚîl #g¡ ÷·î‡3áÉé“§çNG;QIú€i d g¯3y:—RI‰sqcĘ{ò5û,ï¸phì×]Øå4ì†Ò& ŸÐó½°xátãô„?Ù º¨qñý‹W¯^íõ{ˆÿ©íÃG?þú«_oÈéßš|bfâgj4ìË>Ê骸1;¬2Ô¬ e^ =A†à’6#vnŸ(”“@à !ž{ä¹µUD¼¼zéòëï-}xGQAß9¸|ÈUalÝötoë÷½·_þí/~îéÏù^ѦMP/§“Âôz§Éé6J/|ùùã_~Þ=ï•°Zã’§*1í÷È H˜@ "–ŠâhÀÌå²LbfÀf3‰#`æÉI\X˜žŸ[è·+q –-™S £‚³’8•Ésò[\;Ù ¾ËÇò²(émX÷}jP€‡Ž[é»ÿàýèGg_þR¿ß?õÖ›/w;X®`£õ:”J$Ô특yüÜómfÞiV½Ò@I¾x±rwIÖëP›H“_ ÈÕ›7ünÂP|á¥pmµÿþu|û-þË¿Jö4é&žD—‚wEäYµ…ôŽâ¾]\;1«öÎÊÉÒ;¨¼ê*P–MFØï‡‹'T½Ñ›œTQŒ·n10u;´²ïíQ4bP’—î`Ùç›7û“ä)\[ëÆ‰ýì¶aþXrãZ÷úµNµŠÓ3JÈD©žR~FD5‘Ê]·Û#©tö[J©<œ3ðΣa"Ž£±js_ÏÕrŽå¥*°ñ£ÂDþd¡ˆʦQ{#B"˜ :Íín£Q]_ .½×\Zê'1¹P Â÷o°9œ}!hBÂø¯Â÷¡ÛeæýwÜÜä$V_z¥º½5·›(ΚŒÞA¥Q´l< ø¥R¥Rf¢GÍaöG(»Zç ÿLÉ~úé² “8¹zé²éš~]6]ª?¢6ß–M!CˆŒÚ—jݾÝyãõé+—w¶6£! ‘ Üt¶0Ê»ž(Ú¹;™ñöÜÜ.=òh]ÈmàÓhœ ‘Ydf…ie´£ëhl™pΗ`g;òu_`Ñ8s‘GÊ£Y6˜g~S(ÆÔ¶’Ÿaæy²O¥éÁ©Sòk¿ïíîîl¬¨ý¢MS‘{®’§¦ê¿û{f³21áNèwNÜ+vy’â‡q–7&°*û5[îfÓ¼Åó±ð›Aaº` ÏÐŒ¿î 4uqÀ£gËa¸ÓíÂ{ÿ§Ù rì4HY©È}”/„s×|¿µ°@µš‡&>±ÓvY!;"÷qð#»ó0ú$ü°çÌbÃxP¬l>¶8T¾9{ã ¦õ¬ñа¿R)£½½Ý„V{†Š<GŒ»-}½¾.öZêä©é$‰mâÝ£K.€\´D<;Otü0õ%c‚!2~È1<.2gOæ03ôeÁì¤{g¥¯õ¬ÿ·º²µµyñ½K—/°×ÚÀ,ñù¢(Ḙ$Ýoª–Þ¿¾¶Û¼ý¥ÿñÜk¯]æg0 Pe´“‹$ØÓuåéÖLp‰Å+Z1— 1,)TÁ¤gŸÎ ¤ b d'íD{Ý6Ö¸[4%PÌÏOÝ[¾yÿÁ5‘gäá Ñ`ó¿¿H oln™y¾Ñ˜°))Ô8ií.v(öwDÜØš‘&éS°YÕLçÛ <N(ºä™Å)H»‰9±pIlb<´í V\X˜ù?ßþúû¿¼pð35L Ó‡8D ÌB*¢„ ‰‰AÈvFL\oL?ûì3¥’—ŸwJ;-wÇlÎê8íDΪfa»í$ÖmsEöFÌÕÁf䬀B„t½Sô<ËÓõ•Ìóó³_ýÚ«_~õwÊ~iªÞ•}¤ƒ¢ÝÝÝ$áF½Þé¶“$©×ëRJëp´Ûí0ìOMMú¾o9íõ‚Á @Jy9!vÚ)E: 9¦ iÅ–ÓÉe,VlîÊ h¦u™1ŽãX¡Uر0ýœWÑଛ›ÍåßyûÒ.9®ó¼¾Km½ÌLÏŠ ƒm€! E€I;¦'tâÄKâø$>þÉ¿ð9þ˜|ó‡8Ÿd;>–ìX¦}bK²)ŠE‘)bßfÌ`Ö¥×ZožûÞ©¥»A­§xÙ¨êªé®®ç¾ûr‹Â4³±¨8èé699áz^…xSJÉÃ0 CÎ9ñêy^¥âY¶î¼ P“$ ÃìbfÛ6ú÷¹Ž£/f, Îа233 s% ƒ<Ãv €, ¦ý‹…–{ûõëyCÅT.<©&êð½(Šñóƒ0Š#ý€Êå@aYBgŠÉÃþ‡ù£¬XQ´h™ÏðÙ"±ÒqÆÎ³l{úß4ÐÁ !’$îú>9(„é©J‡újêIª¦_‚ÐÌ–ùúlL ¦iôóÈ™D»8ˆ©QQTTÒùÞÔ5Œ¥øóȾÒb6­&Ã(ÚÛk­¯O|Õ[ÈñbÉÜ´¢ŸjPñÎI“.H›ò% $ØЦ>ìt[!µ8•MN"°H”ŠMÎôa‡“&mw›¸X•¢fƒþ¶Ó Ãü,þV3äø´[´òH£êiò¯Êu~šF¢ýëO¿ÿÁú»±JFÆÇNŸö&'äè(«V¸ã• ¾qz¢Q¬ð}ŸuÚªÙR­æøAù3ñîn÷æÍÝÿxÓ+ß9{Ö}ë­“W.­WsÅd`$殾Œ.%ýÀçI1¥M÷™ßFsulKJ¯Ñl>¸¿‚SSS“PsðHïߘ§(¨.±©© :ôÓ³cú°}_ÿ­ÂÅc£µvû˜ÑÅ#Q”÷rÑzJò샬=1Á% %«AÖSÌ*:m:ïüËšÍîÇŸ<úîw77žzG°úÙ‚<2ÍÇ'dµ*]O Éq¶´¢4 êŒ?n¶¢F#ÞÛOööÄîneg·¼³=»¹ÙùìÓ§?þñõS'oüÊ¿\úÚW—`™ ’ ùEÓ¦…x!®XœÚWqÌB?Fßnh§ A:,!íÝqË~€³JŽ9Ž‚p‡èÐu¸ï'¸èÐÙrÄ{{û@hl¤;<Ž£^¢,¦a$2?ñŒŽ½}åKÃo™ÉA¬õ³O×Þ}÷ñ£GîüÑ“o¿]9uJ¢\n¬nKW&¼„; ”Š)oÕ4¹ÄA-‹ãw„Õ'K˜n`B:;;Ñö6¼0‚FyccnõÑÚÿo?ûû¿»ù›¿yåÕWOBD)Ú Š1K%ëó3fØPsÚo·[ëkkª¤ÄÙM=‘’ƒ épmmý‘ˆT×ÀÆæÓµõÇBð1\ŒÃ-œ]B¦g×éb©Åp)¡³jµ‘z},‹d\!o•ƒXìˆS¬¶dE£pø‹Js×ÝÆ_ÿõ­ü0šš<öö/Õ–ÏY ÇÝʈKÖNT'Q~ÄÄEŠ%Š¥Š3%ôH,žX,¶YÉæÌ‘Âñª5pæà`¦»µnl¢Ûvib´¾¸¾~äÖ­û¿ÿûï½ýö½ßúÍ«Gç'²àWOÏ\!LQ¶uK®l‘áÏŸ¬­Y–unù<~Âë×wv¶ÇÇ'Î./3Ån<ùËñññsË/€7p¸=>1yîì9Ì“··w&Æëø[UÂáçÛÛÛgÏ-|z•Ÿ>ufLÎ!ŠÆg_ópU4s7MéaÉ3­¼qóÉŸüéݽݩ+—g/_²––œ‘q×l+VMŸµ"«s<*f1™r¤ÖhÒ”¼dqe ™€ÓØ"rXäð’Ë„çÚ“ÚTëõv½ŒŽòZÕjÎÈÈÙ'O¦ÿê[?»qó/ï÷Þxí+§„àD‹+Xô&C©\­èX)þ?>>yÐØ;@ÊPIg [&*&.Õ*Y8,í¡-Ÿ>Œ%Î&脳%bàìþ¾9L,ËÆ'ìíá0Vj¤6R.WRêb}¥é,K.)6²-x±ûò}†É¦Ìýmêß»óolŽŽœúå_¹tÉ>¶à%ŽØŒÕAW쇲ðV :¡ ‚$Œ”¢<%ÎqÂlÉ,Á\Yr$ww…tDâñБ¯bKϱgf t;ÕJ§Ra岄ùîyã^ùµ‡nþÁüÝþOÛïü«W¼²­ÔÀ²ª(ú†N†Â•©Ó4·oß¹ó­¿þìeV$šþè™Ëö´I.záó¿?zçÁƒR!¯¾6 æìgÐ)Ɔ>rÅúÝw¯ÿÍß¶O,.]»V¾ô²;>í5˜ÚØ^`ïvÅ^W5šQ«ušQØMâ01ì_H.n{Üv¹ëIÇæ®¥AÅð¤÷‰@Û/<©pQ­U ‹ºnÓqbÇ‘¶iîÚöùG*ø‡ïì¶û?|udÄ#Ìúã iXmh²„*Ï÷ð~yÂ;º0Ï9 ‘<¬ø>‚Øf~äÈŠW¦hgÿ"yãÆO®ß½wÝ9³…­Èüe¡½¨ÊfnîðW½^ÐûÑŒ±0оñÍŸ~ûïãå—–^¿±\©;;q¼XÛ]k»SÚmD{[ÁþVÐÙÛ0ðµFÍ9“PŽ'ݲ´Ë©Æ^UøeéÛ<´X”¨P²HY‘â±X JU€¾k#š!Å”‘Ðøžüäê#ëÿødLýîï¾U­8ýÏh õÁPŽëAdë“õ3—Ïœ8}’1ñìê*Æ€åÞû \.×'Æ„q¬yìÁ^#N⋯\2üo0Ùœ²^:‚qlô1Þ`:9©«\Ѝ¾íêŪҔÂ-þÕÿþôïþOtáÂÙ×_·._*Û£ÎfoöVGnµK[;áΓîÁFwDø#,j‰äîFi{/¶f—1„W‘åªveè'aÄU™¸2VZ¾R€A(å$Ð……6¯’’(Ûrbr„óc!­cüaóVKßüæG–dÿñ·¿&$Sª¨æqí}{˜SÆZLm¤V­ÐI^pß!$¦á½Û÷Ç''ZMøá[¶cONÏT+c”&Ë{}ØÆ…¨?Ü«” œÆqÑŸ)À˜,òîAÀrèÅ4[óéßùÎÍwÿ¦sö칯¼† wÔÙ",7;ÖfSmmù(»Ø|Ôž²ÃJ©u°ÛRqr¢^{úP4£Ä«r·š„#1PŒÂ$Žl[*V …TIfNúÙ6v€(§N0®”õñèàDÒr˜*‰çWWÃ?ÿóO\Wþê¯^Ñ~Áb( ÿ_¦2à£g™§‚ú wz—V=RˆÇ×Þ|-N¿Û•B‚Es!p Ð £gøªoÆölõ|ó ™f›G±U\qf8usöñÇ÷¿þõÕcóË—/;^r+cšÇî†à±r»­¶wƒíÇÝÍÕöþÓîüL´³»]¯µUÜÞoÚ5k~ã)#™ÄB÷þTAor@‘©ÄPœqÛ;"¦È8¤dÒæNÙr^%ZRàaaGfÞ£Hp^Åš(J*®4p”ˆH' ˆãS#…C²ØÒˆ*3Ïu«µnµ™ÔjQÃZ5ià±Ó·ï¼ÿío:wtÜuúaý®±~(ó7sÐiåÊÚH?iš”‘Œè øÂCëù5ô_ï—J)Ÿá¡Ëû½¯rX‡Ï`Eclkëà;ßY›œxynŽÏïÔíª¸›0?(.i“# ãŒË’´™årãHôP˜°4œ@Zë:"f,ø@5!=-1¬˜ŽÈ Å 8%¸“¨Ä¥çrnª•V¥¢ªUQ­&àO£#Óû3ÿð×ßxcyyù¨úâõ‹h¿ VÓýßüßLÃ͵ ư¨î›7”v½ZÀÃ÷ý, ï€]j4”?@Çõ}ðù¨/> ó/]Ló'™"ä öƒÉM²¤†Ã“õ:íø£{›µË—ªSSÈÿ°˜%ü8 íʉ‰gÞ¨À'¤£ìPi°þ0 D4v”T›e2ÜX:¨£1C1bŒÁK-§W3JŒ;Ž].·ËeU.órN]8µÚâÊêÚÜn§Õc¥vÉ2+„†ÈײØÒ€aH‹I;äûBp²ERTÍ42[ÉŒ´h¥_/%‡*Áo“R¸®ôÜÐóð„çWPêäî^ý‡Þ~ûí‹ÇO ¤ª×u*bÙ›ÄN×B|òøÑ;·+•²‚ Ö· rŒ"ÍŽ`'AÅ„ú„wÊ•r††w: ÆNG€ÜïúÀR‘Û6¢µ¾£®o2:‚ h·šœó”''OŸ®ml¬_¾ô ¨¼'$ Ô3*³8gwî®?\Q'ÇÆêll”ÙŽ€ˆûq" }nØ)ÐâÒ¶““–d]l$1çœèÒN,› '-œ®ÉÔ³HAÎfTúŠ\cr©é§Èp¨ç¸Ç \W¹.¨Øñ0½ËGïßûôóëgÄ8JÅøÞå sPé,gÀQëóçÏ×jÕô 7ÍÚáÀ3×( ’2(DÂé€:ŽH%ä°‹êãc€Àr]¨TBrqí$Uø×ÒÚ’ !ªl(”¤úúÚ•ÕÍ'gzâ=1Ñb°¥Hb½ÊLIIRìvK(dajU0!³8KBˆ©ô,ÃnqݼÞþAù²iÄÉ9Ôó)Fw£‘*Ã4‰.–^ß°Ùõ¼ÃãÑ|LJNÚIŽ¥Bp‚“YŽˆCE+b\ aE1 ÅÃÏóo'䀥I,)ÿ]p '1¢”Ä, 7ˆ_{ûÇ9Ð$JJ!­DJM©:ûÒk4“‡+›aè·D)yt¢_«/†<Ó8g´µÛHûÞq]grr’3ŽÙj–ÈBT³McÇ÷ƒ8‰Ê^9ëÁE¡ Ÿ5}<æy\Ψ]£G$É„¬sI– 4dÚ4ã”ý²úpGðšë H&)sÈÒa|åB0©I3‰6ÄËEɘGÌŠ¥Jç¼&P¡¸–\Ó%a å–ÆRZ:©»ù(F¢‹p"£+Ͱ†²dɶ*Q$­î´Û]ÛÎs9 N;ÅwŠ©S³|åq’`€0OšÍ®•BK¸Û·î..ôø1´XÝø`¿^¯ìC”àì;w+eÏvÁGMj}_D€Â Fýðï}óøôñßyçwÍþø§Ÿ âóÌ™%\…ÑúÓõcÇÂ0„ºtdföî½;ŽãLŒOæEú‚£Gça¼qòÚ›¿eæ4§/+(B¹ÎYT… A5•9Ö‹%-ì R㘙N؇’ÍÂ(òRÒLrÐ^lq)fkÁÁ”a´¶ gs‘$þ%Ñ‚õ ø%›*#âÜe\Å%æ$íz‘..EÉ" -âá‡â™œä‡OM#¦GmÆ´3ˆf_DŠ<‘Ë@‘ÕþMì–œø®;Oî|â|²»·óÎþ;cõúÆÓÍF³ÑlµVVVÀZ±ƒ@÷½{w‘#Rö*PçêzqQ‘…–L*?É ¬øÙEHU¬Ýã{{m?(ù¾“¡‚ÀÎ éÈt¤MMâ“F©b’VþŽ5ivˆ‰\ö(‹¸²Yr»Ü5jŸ%íWY KI  xbióAÒ=Âl# Y¨±T±¦TEôÆIwZ.;DXô‡Ï²9¤Ln¸6{ðð¤ ç¹.\„ós{g{mmm~þ˜%¥!J 4M5xjÕ*þJŽLãØ݈¦'ƒÙˆø‡ª˜gPííÊ‚!3’(ÚŸ,y /|‘:=Ïs76šŸt»¼ÓQhÐ ½&²ö¡3•xÄâ„/ò1¦Ñ²åuâ–ड(Œ|)Ý̸âÆFdFF2¼¦~ Â’cÇØB†:•$cÕ¸è=çâ …î*@À'z'T±Nªî$ nQg§˜¢3ÌÆ³¶[Œ6ˆi€ç¸6Šà$ü·oß™EÑîƒW€N26u™å\ܺuséÌÒÄÄd«ÙBô³Ÿý, CÜ0åF%¸ š-È™ 'Nžœžšü=~®¶¼$Qö¦‹©¬Ìöyùmy–ƒ33]ýì³½®NpÚv[´Z€¶[Ñ£JOÀЬ,F[˜(®ñÔ%Œ"uù-O‡’‘+É,1ˆ‚úI6§XbÐêìýH<ÜÀ÷¿DùÓ*€DЃiI¯{Ý´X)¯OW«îÐP}õ Eb³$àÄçÒRsnnk{ ‰wµZ NÚj¹¢³”Â,›;2;33O=ÑÀàÄÂq8üZÄŠ.§j$¸yñÆFÇzËÈ‹è¨b² ,¶ƒRâƒLb®ê¯øTF Cêà^3ˆçæFµ‰ZµNÇj·5u¶ZÏõ¤äÑ’Š9ƒH‹Lò¥0§U\à˜¥XfˆæAnö™ÂŽAñQËKP§†PbIÓ÷Áùý.÷ Î0 Ò¤:‚}iÅ3Gê£cU½º`r(ýÀçûlqMFI¡—^/œ¿°º²ŠÂ#Ô탅……ùùyÎùÒÒR_ÙWvhœìK„Y†\qÇ€R´)²<¾bkÃÜg‹ó¶-]×Éäöàœ5YŘڙ5;;7æØNUç²¶T«Å¤Rî@µœ‡fþÕˆF$Ä•f“„Jœ•Š{›kåF:Zô¶ÓN¢ñ£"{’šZdR0”·  Ò £°£ÓàU×~КJ…4…ò~¿V•Ǧêc5Û!Ÿû‹¥MCÇ(fÛ›µ--¿´lö }%|}û¦"{?{Ü)Ž¢Ø¤¬¨¡7xˆ®4'æ‚…XÛÛ›íö‘VKsÚfS6›¬Qi;ŽŽMØ„¤ÂÐÿÆL;ueˆW3!)­2K)ÂÈQ%Ò4âSè Å?É” Ò–¤!PN9ÿ]líÀïð®5u5– ‘)Mÿ ÷§¦jhŠhÙ²¯½ßóÓ¦Í`É´‘YÔ³3Œ²Dø·Ï*1ñN>üÚ`ùœ˜¨>5þøñz«u¦ÕªœI£Á'¤‚òÁÒÛèYG%µf~¾ÆÚLð³çŽÎÍ~òdm¥Ñœ©6íFCyåÄq ‰™”-¡3]Ý¢ž›ÙMflB“^ï’e’e²2‚øP¥ñû›äN:ä† …Q« 4ýv‹µ¤º\·«ièv}ÈÔÍ0Ø9}jôÌ™¹rÅy±nÓ„h¦£ æ¸.FÆæÀ Ñí)Œ¢¡g¾SdQ\g‘¹Ž£ê9³¬¤ŒLµ¬È̘æ™ÍÎŒ]º4`zã`·Z)—•çÅ®n9Á¥Œ…hÔǘã: ~ˆ%]’È©XéR¡•f¾°NFgLÐ @ˇT§±üð[V ÿ7™®kãÔwÚþ ð(6ÐËɲýsgÏ_œæœ¿h·isX”U¹óÌÌA•uûFFüß? #Xµ˜³°~É·“÷ Žo¶˜õ%Ü›N]pÓT.Ç_áLŸvñÂ…¥¥³Yu1Wý P‡ë6­°õ¸éÏ~íµÓßûÞ½½ýûÕZÝól×…K)…œÇŒí–FÈUd"Çdu詤bŠYáÕ„˜ó(YÞžÊØêB Š–QŠô•´‘Cºl¶:Íf©©ÍßXnGs]àšhÒìíöF·ûtq±vñâÿs˪‹DÙ³àS:Éhêqþ»w`5+c´ìîìÞÆGJ¡G”ç•‹Ó×öÛÞþJÑ{°!åØüå€$’[aÁâÓîWF^<œ@+ð»O7Ÿ4`>}ê4üis¾ÜhÉ Ù°e*EÖpæÔÌW^=öîß®ìïÍ{îQ×aÔ †  Ée¥ŒŒ$ø1úUdF„ N•­Ï¦˜êk%ljòðšÁyH£… a¶;À²Û–-ÙÖ@²–¶ƒ1öA8Ükµ[Vûüù—Λwë¹ÉþÅi™àÌiP¥ú+:Ü:sG@ë‚âÜ’ÖÚÚS\%„¤¾¸¥†YH%a·Ó†Ù«ÏrÀg@"¢BBDZ¤ä¬¥ Œ«Õ cÆÃÑÙ9En5à 6þùõŸ½ö•«å2ÎÿdÞ“ox-¨@šŠ ­Ö¼·Þ:÷ÉOmnÝ*—Çl§JXFŒ[„P ?¤1R‹àR¨S¦R í(li g`UE ­(P§ÁØõ~à·±µü–†PÑV‹5›ªÝ ®¤a„û¸Û];}jìÕWNÍÎÕŸã "›!Ú¿ÖŒ*ü!ùÞÔòòYÛ6b˜ ®„¡OF¦ZG‰”2 Óå ‘—Ô ‚nÖý>ŒC)`ƒak>NA¼!ÿQöx¦§§ð×l ÛHõ¤Ô2rò Ur”9!zÖáeKKso½yæÏþü³û¶}ÓS.xÄÈÂÌ‹±…mü ª³r9@e&8š’&Á9ÐüÐÀ™õ:g`RQ¤ÍKp¨vÔióVG´[„¥öfD­(•c§£±DÀz³¹R­DhÀxñÂq×µŸÍ”ë)ÅÉÚ ¨Þu§ ák˲¥t³ÓJi]÷Í7ß wË”»–'Ó8ÏßÌK ª_ÒÔèÃt*¤RæJîyÉ]ðlø’#6°¶^¹âþâ/,_¿ñø§ŸÞtÜQiÍ Aê&‹”’Ú ‹(bAùÁä+/´NÝN³ÕS X”RÉf#||x!Y#¢Ýáíb-,ãf“ã•üŽI«¹Ýh>L’­óçç_¿¶sóE{ÁtÏ\Ì&§W–Õ¸¸¸¥±ú8U*ƒÞh†â³göÌióFÞï‚^èdÞyÔÒ›ùœeÁç·÷¢iÓ@³?œö (þê;—××ÿq{çsKzœO’`ÓXÆCÀ)aü•ËÝ®çƒ>`€ëZþ%N“C.¤ë:NâòðNWtº@´Dª,xlüš-,É騚ͽƒÆÃN{eñxõ¯žE•®”ü‹&£-/™6C¥½µyO-}&ÍfIᮥ̳L¾Ì‰Î¸9]hF€}âÒ9¯dEdã…îïŒ@ȘVADIUhíû~û¹iÓ@MûíÛÑèÊ|Ž7ߺðôéÁ×ÿ䣭íÏ9™³1€ H|Q„¡æ—E×g^G¹Žo»c Û¶$m‚ fpÍW†#>"i Bhçǧá£|%Óµ“€ëuòV;"µH5š›{ð¢¼öÚ© YÇÏ|6”é|Î Æ uî/ݬªAà­§ŸÝüÙøèÄùå—0Q·„ÓÓÓR ÌÄv·+¸ØÝÛœš´„E´Ç9qÆp·-X/TµÉûÒ² »œG05ãò––²P:£4ûÒ´iÊ^ÿ¢ Ðéùw^ÝØ8x÷oolmË;Ÿ$¹ N`$A ƒv¢zÌq0”mņ]’‚Q¢6f¾‹(›2OñÔÙeáEؼˌ‹fe§,¹Ñ}´¡ÒVÍFX4î ûÚµ³_}ý 4 ˜’H{+$ ÛTSü|'MÆGzÅÉWüÁOø??ù§j§þËÔ››ûéO>õC;hNëØ X<~üú›è Ž€( ÂO«ÕÑÈ *_»ö:’è{ZV±üîúîu0?:£Nº2çìY>_qç…òÍÎÿú¯_ÝÝm|ÿwÉ[VjLg$DœbȑƲ+=ÀéêÚ<ËáOYR ¡¤L8×ñ4âè?“¯Å@:ÁŒÀ´M¦™OþX<Èé#àσ‰ ÚÓl¶¹¯±<¸m[«WO½ýK—ÎÎI)òTÓ^,Õð1O•…§ˆÝòEÎ,ÎÔâ§œîÉÉñÙÙ¹••Õ½Ý=ê:¤_<>Þ§°¬fgf©Á¿¿ƒ.…#‘e[d™÷u@)€‚Í„”êë3LN¾\!ë[ÂÈÙ³óü-‹Õ:=û¿q5Š>øð£Û››a#±2ÒQFÒ,ë§àÑ».Ø,´î"(·„N·Ì¿÷Ð5o¢Ü”æ‚@(E¤ƒÄ÷cßW”Ô~‹(:eDtÀi÷ `‰œÇƒ«W埿|ùÒq&Á¹â~êçstæ‹Àp ØR_»ôÕ±›£ãcã`°€øÒå+RHŸ\¹r9-g¯_»†Ô­[kÚ‚Á Jž†î¯ÕC–½¬!ç‡0”ûW9RYží`½^šf¾¢x¥ÚŒùÿ[W…øð‡?º¿¹ÙÂsa8†6=}ŽGïº1nú–H8y©àÆ2Ô™¦òÆ* AèJ§‰15¬›–H‚ú­&²[WZÍårçêk'å_\zíêi×s`ÈgšyžÅ2käç_R†uš*†_œžÎüæfÑè¾¶ `c2â"³:õ`×¾\¦‡„ª1¸‰:‹7‘&ìõ,eÞ¯¨:ú«!û¤ )–Ï/HË*W>zÿý{›[­ 8ãÇ|„˜mâ8@”kÙiÒ’3„qŒ´7½Krì’Ã^k¶š”`™–H‚Æp´`_¶V;GãüÚµå_~ûâ•Ë‹•ZÂ;cªÅ”(Õ?SÕN•<•‡øúÍÍ ×ug¦pÎá1€Ð¯UªŒsÂ/_•9¡|mØÌÈ“B¶˜%*@ã3¡ïC%›œ=¶ÅàÂTLÉA’cEK—eôPˆÒÄâìÙ9ϳÆëÕïüçëh¼ÝY¬v§àt]æ: f-ø-Q§’2–†:M>AÊ(’$O´!8cN\Š@U¤%äOØn·ÖZ­GJíœXÁ"o½‰6Ç@—ý,ü”jè~÷,ß!>Që+$Êu½¢Tì‘>tÖ4Ášž“ssó·nݪU+0Eð6´À¢=~wks lEa¤µž(ÖACi½òÊ+°¦8çÓÓ3Ôr(ŽÂ+0>ý Й·4S¸¹ç Ú2ÆYL1‘zæú~D‹­¾7©¦^Ù¹pqqvv|ùÜÑt÷³ÏŸll\o¶:ö„ëN8NݶkÒr¥´¨‡;Ý/ÏŸ¹J¨ ¤I¾Ê»oÁïï`„ѾcG‹ÇG–—O¼rùÄ… ÇÃgÚ™íÔ‹A†hoƒôüM6LMCom»®ï\œŸ?šeÁC.âµB fÌ™Å~ßÊ HIQÓ3F V²³Ä_ã·žŽ¼€§¢Ó…P¶Ê3ùTv¢×cÃc™;š ÞX&øÔÌØõÊéÓ3XYåÓOWnßÙÀ2?«%V•4:*eC—sɹ‰ ˜HLa8˜U7ŠàÇoÎ(‚¼ñ«qâHíÜY4®;†˜×±…Ix³ºÇ~,‹¾í‚U]ÊßF2ñ#ýa‚‘¨(I¥BÎ ~’‘šU¯—çæfŽMXœsG'*·‡±²ç~åµ*wu+Pò'ĸÁVݼuóÉ½Ðѕ˗WùðǶQ£yú äâ럟üe?}IÚtR¤ôBÜJ‚">x`ÛÎ8u¿ú½(¥Ä–eK·¢„¿œY:³µ¹¹tvivæªt¥”¨äEí"Mï™l>³˜ øhf;dÛ¯ÜÖQ;f_½ 7NcxL W ¯âLÎŒ•;+Sö)„S:l%9m4{1èe¤ƒI!CÄž†ý.úÜêS,'Áóg¾|ö’w©K_åÿwmÍqWؽ¬-ËZíêæ›![7Kk¯TÙL%U_•ü…ü€¼ð òN*yÊc’JHˆ)\!Æ;ÆrCtø¬©°-Ÿ«.A_ ¬¦0¾ˆ˜#Ø ì¥?Ÿ\ggœy©}71+jüH °®é` Œä4µ™±mði ²Job„H©æ…(æ3!5ëS¦KÑ'Ü€±µB‚T> ÊHE^Z0±[Ó&˜tR(ú^ í€a´jX¯¿w⼄95¸êxj´iuj¸ˆ,ÖD✷ƒŒ‹Y{*£Ã¦(™7gá­Ä!RÚa ÂRƒjF1áÇ#‰Vü¤,éà1ŸÊµ‰’n`RqÃD©ò˜}@IâáàS.? vJ´muâƒßF˜D¨8jÀUöéÈàyœéT»ˆé`•xN¢58ãIVEÑ\\ÍŽo ÛNPãKúqð_uMIE~‹?L-©••Õû÷¿ƒ‡¥Yq+6o¾%xJ!|¶÷Z0«—IBq“•’p %BÖ‚Bã0GÚ¸JcãZâÓ‘ )s<\MI#±ðœÉvYSFÛbûD?%ï’R ‘â§§ÿ‰ðŸðÁìkHh`š´„ ¦mkk`¸ ñ¤N>…_î5§¡Ä‡ð&”Q˜Êœœm› ´ÒGâ¬n`ñ¦7¿F§*#@s´Ó‘›çÂæºƒŸŽù[‹·$#+õ;w I7öÉj’ªóþýû³³³À !Ø@Ùl.Ĭm Ò?”‚°½TdÊhbsf!Ž#B*4õJÑÔCÎ_Ç0:‹¸ )åÛÝÓû0#ps -žaMaÙ‹ùãdV£]¹ÉÍ9×ÅZiU˜‘U‚ð#ÃCFbñ·à”ÛIjy¸—Àœ s}is½ ± ¦ZPƒËjÇqÀ‰0ï“'¡Ý%¹d¬Âà€j * gÍÑrgè)ÆæÄ½È÷%^H*r4 ß»–ÃB8q¥áöp…`ô3.¿ÜUm&,}°3cñ±ÃÒ\f²=ݽÈI/ºÀ‘äEÞ./ðV’nó@÷À˜@wzÎ}i ÊuaÓ±´]5W•3GÌ‘HMÔè ‹c?"]œ¯KÊâ–Ù]s¼¦ë’¯‡OçEyûo*Eë‡Q˜LºØë$ö0“ÙÉ'¬wE³]™œÇ¾Š¿n¯¦´ÅÍ_ ÚßÒÚ.ÁËu«öѨbš–¼b ù”zó Šx „ã›eržA=е©n8s4 N޾O.‹`1@ªÁV±=ÜôMÝ'¾ u'Äbq³ˆ$Wœ¤Û~³ªê¾yÁšØÄë[EQ޹â¦NarØô5'Ÿµw‘á›+u`ÓøhÃl­bèÔXT…¤’ÊAζ*„Tx«\“¸B1=é‰ÿýñ?¼{ë]ÔËKñ‡>??žŸøíï·ý¨l4Ïô÷Ò·§«û¥¿ü§?¿³°´€ï¥OEÛaúÉ+?½råJt9íæ.lZí ›F¦÷%ú•`bœyÊ—<ÔA´JHR̹»ŸÞíî;óƒ3JQÞŽüp ôá™ûÕôWpÍ<šm}fâLSܳ´Y2±œD'žŸþxú¯{­´~é¹ËÀQ R©­5˜¦Ïî~>ýÙôµ«×pC,‚´”1½’Ó<‰)>,Wb¾šJ¸öˆŽéÂJ@áÊýÕÒ¥ºÉ­baFÿuvç®M]»qó¹7Ÿ¿þÂsÐÅO<óôÔ‹7qäúó7úú¡?ºxmòúÍ©ëú7ÃçÇNž:}ãÅçõ%7Fó£ÈåGQÇÙ©›/\˜|nÛÏN]¿ /L]¼:Ù–i݉J%I®^ý"V,qB*/”Õhq"»H“ò¼‹½;ØV‘däOÑìm­Ç2*: º{{޶€Í`™?Ö¶¥“â› h`d¢~ëáÖñ'·¶¶cwÂÄÂÆ Ô)þêÄ4Œ¤ÄÏ[Z±é®)·ký®TNéR‘˜¼ÎbËåÝ‘#}ž„•ðň|“­÷¦â…´u¸ 4›Ü*vjÌ„TD'?yhÖÀ§»±Ôno¯£®VÒ*]ÆùòR4ˆà]@§noo ûAŸ'fàÚàµb<ÓG懤‚CÛZñT~BßÈÚÅü’¶«Ž{’]Ëá±A©sÄã¬ÛâÉ qòMo•ŠÕ4´éèѾSý3_Î<*Eñë=†mey5מìüôëé/ïþË©X6«›~•RåÒäå§?þâîXu«IïE/˜P-Ï®ä¯Z>¥(&Þ°ˆjq-ûª²Ð°÷n8*'¦¼ð|@a¢æÔ¤^ü ZEu2°¤Úç(õòK/ K _’”§W;޽sìü(xT;»Ø€aNM¶@ù>::P.:Ì>+=Ü._†'à^»Èub]ŽÄ³ä+®º½©ˆ°.ŽJ–pî j4ÆyŒîÁµª ƒ§PoÏ[ë‚È3µ ŸRª†¸¥{Ç€=}u"Uð®5ˆÌ¤»Ó„þ - ÌTBL/Ä* P K»7û i­bÃtH5(1à¬ÄE8Ö„=ü^€üóžMbj©rðrN0Á6Wч#©B&¹ KÅãjb«ü^| `Z„Þi¾\¸#$WÞŽ¡ý§ãËò ¾VÔ_ûÌdŽ&"@ ‘z<ÇðÉMm•»£›t6˜1‡šRÀ-CGßÕÕ™äóÒñ=°UÄ [ÚAzؾÈqHê¾<@c«hTÄ82P¤ DdÙFp1ÄüÓÏ.0A Ê庤¾—V©ŠŽ ‡×þåÖ­_þúmh\w×úùü¡súðþÓý¯ÿüuÇ¢âFýT D›jQÙÒ¨b³—‚ʵ›R˾R­ª!ý˜„†q>øÁüìÄå|þbSIš0D/- ˆœ®3€Á$³“Pfme .¹îÎCžimZÆÒIÙ}ÑË…•;Þ)j”=np¶¶]×±›k'Nhñ/÷+¯û&$¸`k[©Ê€^¬9¨yÎvŸ=a\Qrú!vÊòÒGéÃG– °Ö`—ňI)5’GàеՔJ¯./Ëd°ò•‘¡­mskî½ÏNÝЪ]ŸãY),>øÏœkrP&®h:Tœöl•ër8†ƒK Û æ“R"î—^‘]ˆ;€µ…¥*Ý;n”Ðêå:³Ð 8¤a*‘Óè»z:‹ë«ô6±ZX†Û\ω¨Ýa3=z¬E‡’ô”³øªÃõàœHó£Ò ð´Žâ͇ŸKêÎa5Ý—ajªé¤èþ±S#›UFâ×Ù×áø°¸}‡¶Ð;µÿlæ™Ù¬µ¹ô ‹¯TcưãbÃ6¤q rˆÑ°—KÅ2Ž&F-ü™À(¤@E¹œ-õ-Ú-:2ð‚ÑJ#NÜS·ü§HÓI ‘ôRy–ŒÜ+æín=ý5¬aÔYQµ¼'(NXõÐŒ{‘üÉÆzqdp$—ÍŠxf=•„ B|À4‡£Ðaªå¸ïó.M&E†ÕJ³Si-Ddtdtð©AðGžãWå½ú“`Y?\Œ%EÉ[sû˜Ç~w˜¦öá^*ö̪1b\ÅD%..¤¹¤Èøè/ñ8’ÄÒ733ƒ4M“;I¬Z!å5;̤×+¾ B¤Qµ:IÑŠé²Íê`HqnPB¥ß„þƒƒ”;õvË1#wª=IŠ£°æü@þ"5}4†¦›7^såNFý ÅÙ&7-q­ÃÔáDÃrL0ž“H“I)‘êçr­ˆ«(ò_¦Ì/Ì坿ó—ò¿#ʯT¤xñKû§>aÊW¶3ÞÚÆFt XX\ê9Ñ+¢Ãù3=ˆ n„Â!og'aÓ5™ XKŠ_m!„bü䥡ÌÑ*éáLôóÿ¯Ø“Ø|8"SŠ2ÊkÅâ:” ²Ö®K)ú o ïv7ƒ a{G[WoΤ ’Š(»Ö®)J¤¢TªX\¡ ÃFCPÙů¦Øî°(x¦7K5º„[L0æÅ`7KuÕs:ãÃÅlìŠØùÙ ý‘‚§kóë$µ÷Ó¡b!7åÂDþö?nÏLßã+öÏ{¨Y4¾Rœ€yÜ-ü ÍÒŒºsììX®#+.H*”;A¢"R6uÊR1ӜƑÊ݇Æ:Gäj³Ù ’PãäŒÄ¢„#µI1“©0×ÑÈðÈSOéãnñ1tž’ÅmÊnWñ«˜ (U/ ê5§Æ äN½¿¤( &ç À 䇽$ûÇ:‡0Sâ¼Ñpì×ö6äÎ{`5›âH/;‘ê¾ËÆD!ÔX4+ĆÅ7{ï/Q*¸NÑžg­§Ò ZâM n±BÑ4´€‘¸õ^LE(bÓkp´3E½ HíÉ1¨ÈÞÙw²ï×Þ0r'ƒ„˜ÙiiØ$âG­ãXipg–;¦ãÇÄ:»*öh0„ŒúHK'°Pg;¿ð íÂ…K´Üé·Ü ÒiA±."`;2ÇÛ±æ?Ü(âòL{Àì·³hF"¹söÞHùgtˆEï•;¯Ûµ „_¦ë’Ú/[m®JrŸÔ°K¸Ï‘¹ qÅ7œš9á²ÙPnË´cVÇî=ÑsêÌ©ÂâÂwÊ'N÷äÞþdfyTŽC× ttæ”ò„r ‘;Ý£–³ePS$Žjxú[& úä¾Õ>°ÎœUAx4ZÊ#êÈ@|zm} 9ÞŒ½SÓuš?|þ\ÜWxhìœvƒ¨ä'Ç£gêˆHk¶«Ã8sƒ ö`8>àã²»”;¿£ÜÉŠÞ×Olj><üáOâì£&cir÷-h O@ÈÈãù>ú`æÓ{¦;k”šax4ù•G´½slhÓ]ÄǧÆs_‹â|a@ g{Ð\à~t¯¦#°ùØd÷œ÷B*šCŸ7<<ŒàýáÓUsd¨:v³w2i•À嬴]¶ùélŸ§ì‹3e>µ4œgÒ:•dhcZ·FHYý5¡Ê¿Rø@*‘bR=2ÞöÒHéÄð&Âa<~¢`ѼRÍÏ¡UTiÚ;«F‚6w©°´-ÕÙ¨¸«Ki«e¥R3â+$ëIJïi$B²¤R’ò8n)•Z#µM_]e )±+R›”ˆ v.|QL ¼ù……È—¡©…/ÉÁXud³Ì.÷ÃWßúÅ›¯œ>Ù#"°ÌÁ‡À¸\X¡f¦þ’"`Èðvá¤Ø§²MÚIJÊJÕØ.¡1ÐÈ:âV”‘BW¦?u°ß6ÌNfçöæoýèÕ·þ×Û¬ Ã`x޽šáÓxò|ŸEÞE黬ָfû¤6.„’Cö7郥ks¾\[‘ZÕAä£3" FM–á—þ Ï™ UË |dNÛ TUœ¤V1°3k"¢$*•MÓíþÈ·W}1_Ü!ýël~Ä Ä¿š½ô¼-.€8QyPÉ;æU'¢õ·HéóV&bî«Ìk©ÕU­$öñÕ,ƒ}ª*—ÒÅ7$ƲºeF°´IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-line.png0000644000076500000240000000136712536324510022210 0ustar philstaff00000000000000‰PNG  IHDRWVJúûPLTEþîîîýííîý¾¾ò!!ýëëîááïããïØØðLLúŸŸôýÚÚïý&&üèèïééîììîÇÇñÌÌñ**üÏÏðÁÁñ::û>>ûÒÒðÓÓð??úþÜÜïPPùSSùååïææïVVùvv÷yyöÞÞï##üBBúýŠŠõõ‘‘õfføhhøjj÷oo÷ÕÕðpp÷¬¬ó¥¥óÉÉñßß﨨ó44û­­ó‰‰õ..ü££óFFúGGú00ü˜˜ô™™ôÅÅñZZù[[ù||ööƒƒöççï……ö””ô11û±±òµµò··òººò55ûêêîýý``øaaøïïïÙÙð{{öÝÝïÉsiŽ¡IDATx^íØÕ­ä`à8ÌÃÌÌÌ<—™yû/d›pæ))àÓ/E:²-üxóÄõ]ßõ]D½p¡Õ>þyàšéœÉ/ÖzlZ­ýþ§Z.ÿ>`¸Ž€íâ}Ò~ÿ>dS{—°o$°]„GÎ ø÷!óv(ðïfŸ·Ø.ÂCçü{–XY þÄ./í"4PðïzâÑZðólqÃÏõU|7v,êüü[îðóî¾›IðÝØ¶¤óóÎ….?— òL‚ïÎãUƒŸ£p&÷øù å«àøn4~iðó$„~N…q‚ï^¯Êü\ž|ÆÏë0ªñ9øn2øUá÷ t…s~o^ÚÆÀw“Íï;~ÏBG¶ùý zñßUÔ~ˆß7±m~ÅÂzL€ï*ê ÄïÝÒ}~ÇïóhX«øî«3 ó÷éösÆß5P8¼eÀw_œQ˜¿ÃH7â’¿ïÀݧ²à»ÏíÉ;Š\¦ü n+5ß}j×4þ.©Öü½f.m‚ïþ~üi^쓈žx÷ô]ßõ]ßõÝÿŽá®>Ñl5IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-painterpaths.png0000644000076500000240000007636112536324510023771 0ustar philstaff00000000000000‰PNG  IHDRÑ¢M†|¸IDATxÚì]`UúY߸kOêîÞ´” Ô(-^Jq=ìàrwèáZJ¡PŠW¡FÝÝãî¾»IÖwæÿ½÷ff'›¤H“4=v¯ìmVfæÍû½Ïß÷£yžïƒ/ß|û‹ÈˆP‡ÓIÓ4¼ÏEI/ȃü)ÿTúÈãkÒ;­¿ÓæÏ¥/È+xSºŒÖG“ÒúÂäÇi=´6ßosàí]R›]à‚=.µõ}øÍwZßÖ·¨½K•ß1ªýG{‡jýsùˆZþT*å5<¸˜~ý¿Ÿž=_©Ö)X¾Ö>æx/æþW1GS4ß.æ8Ù¡Úƒ/;)Õæà=—‹2+èøäôAî05ñ4Å96††Àkü= Ÿ‰G‡T(Ô­ÑãÅÜÿæàátÚÐ4{ æ§X… c’æ\NŽsg'àÃ(áÑ‘ …’Ðé°â÷iŒáËðÌñ”B©bY¥Õ\K»¨gƒÉérZýýuðà8Ža8“Ë償0 ÛÜÜd4YT*-ÏqèÝsâ Dz ¿ûû1G‹gä<~Âñ,‹–5>ÛåŠ9šfìv«¯¯ÚÏ××åâ¤AÀ‡‹ÅÒ`hR©tœËÅóöа Z¼á’jkë9^¡`6»ÅßO«×û€tl!GiÚl6ŒÍjµÓÖ@yMrêc3Ï9-‘‘¡ ˜@ítÚÕj½ËåÔÁsEER¥ƒc].rŽãxÝDZ¡d¥Ã¹`=áÛC‘ŸS ‚÷áS‹!×:Ì|ªT°øÖ‘÷„³45Yµˆ.š¿Ü0ç°["ƒ•*ÜšV×Ì•—W+”Z§Ã¡Õ0¡¡!N¸œ“È9ø-€EÁ²õõõM•Zm·5„XFÌbJ¼æ8J¥ñµ›ëè¡#®Iî=ªÙÌ»–ðð µZ[__^TpŠæi½o`BòP¸‹ð³Êª:„9îrÀþK­Røè5p[jjMä pw@2©ÕÊæf‡¿Ï2ŒÃ‰p¨R)à xßA+Ç`ÂÐzZ«U Íf ( šexÛnEãšyåà3çJJKëÔ%ÖP.ô‹ü²ÁÜ›%<,Ós0ÆŠÊZ„9§C­ä£¢¢KK²ÎžÚ®`•€'½ÿW©TšÚº:³Ù©T"ÌED«TêSÇ·DǤEŦ=¸>,<^X-Í!µÆ×Ü\K1?­Ïh³4©\WЪ§ŽoKG‰íe±4VV×+—‡œ¸Mægž˜m^ÎÔhYùõž]Qqm¯´èIãû,[±]§S+U @RZJÔAñ«¾Ý§R)ý}µÕ5FøD—Óá2ÍC'Ü}ÛÔý‡²ûöŽùèÓmÍV³Ùà»þÚ±{÷gÞwç´Ö>|4—aAp¡Á¾p ŒävÌe çsjµÚ‰£Ò) .‚9cNÍÇDÇædS©5AAQ0¸¢‚ÓQ1©þ¡ÕÕÕæìÍ 2AlÕÕ–dg!§Õè{õ›‡r‚ª¬¬U«|››jè!Ãç÷ê7Æjg\NKtT¸Ãa=wz÷г´:ŸÌsûAÙ"Áœ«ªª‡#\˜ciƒÁüÊ ×ïÞŸ©Õ(§LêÿÙÊS&õËÈ.ÏÍ­œ7{Ø7?xø¾YE%5uõ–«f }ò¹¯g]98(P¿mçÙq£Ò|}´ï/ÛR\R;a\ïsF¾üßµ¯¾p÷?Ôh”)I‘?¬=ôÌ×|ûã>½b@.ê_{{ÕSDFî=yàp6¨œö\ˆð N … ¹Ø„µÙ­œË’l*V¡u!ÌQÑѱ¹9ÇÃCbÀÉÉ8 /æšÍÀœÃaÌÁA4ZŸ½;¿ÉÍ::cö½!¡±6[39èÖFc5=xøü¾ÆÙœ¬ËaŽ Qkt€9»Ý^VšÝàDŸ@›ÍZY]§Ph/9gù¿Çç-(¬:x8 ¸1#Sƒ‚|Öý|ôš9#¿_sè¦ëÆ}±j÷ Ç®þ~ÿÌ+mÚvò¾;¯Ü{ K«U†û Û±ç<gPÿ¸»oŸzèHnaqMn^eÏØ…׌~õÍu7\;võûo\8îç-'¦M°i멨ÈÀAâvì:wôD¾‹ãéË saA6+ó°¡¾šU(À˜Kèï°[+ªjYV ½ZEœËÊ<? Š„ßKèç\S]ÓD0g7ƒnÕhtGý'ILrhÿÚ!燄DÛls*­Ÿ©¡‚(Ù¨è$…RYú¢YÀ\dd0ø•ùYZW]] g 1§Öøê+èAÃæ 2ÁÅ«sÑ‘aàbÀÕÀá@AØ68=Ì!œ²ËØËBÎn°YÇõ.)«+,ª`ØDúáÀ¤‹ ÎÉ­è•}æ| ˆ±}³&Oè[X¨?èÊÌìò _j¥åuàR)YÐŒ*%ÜX–¸¢à¢¶à€V«P o‚“‹18ì±Ù`‰C\‚ì.¸W áÈÕ\.±—Ãæï§ñññë—ßw†e-k}C#žwË;CBQ|Ž38º^<ŠÏ98øºD&øjz½J,¡;>–Ål®khÖè}k*KéCç6‰bÔåtØmäh-¯ý¿B¥¡pè™â/øH&2õä5ù´E8€ä8t1‡Ò:ä‡b‡"’üŠ‡Ü JvFtXF§pÀ…¿ìr_N‡ î$˜å†¨B©&y »\vÏëÁx`X%hdr[œv+  ì‘Ç‚X¦ª¦ª 07oÔ˜)JµB¨¼bö¸>š$BÀ4†ùà¼ùÖÿ¹|+Ýv¾•F9+Nˆ3Ì…rüx™ÒŒ)m3ß ÿAä¹¼´ˆ0dî+ÿytðÀP.Ôrü´·®ä·®„o¿®„’Šos<¸vëJàoHÛlÞºéÖÿ¾þÄð¡½v—Ç}÷Ö2yk™:°– ÞÐêTÙäܯ=>lHXÐ^Ìy1×¹˜Óª~Þ´§mÌ1¢ò¾L1'}ÿ²Æœ|—/æÜÕ—Æœ4s—)æÚ»—æÚœËËs8-ÄðÂã·ä$}Ïé»!æ ra³ÙH–Úc— æà†@¥02m—æÈ;d"~—œƒà²¿¿?uy>`ª Ž+üüü.ÓQ˜L&(ô€ÄÔ¹F£‘ć—œƒÙjOÈws9ƒ„ Cåq, £h}=Ý\ΑßÂ` ð†¹¼äœô…d›z1çÅ\aŽä~¼˜ób΋9/漘ób΋¹¿ æÜgÁ›d¤zË sïx1×m1‡Þ&…@h/`Ë™ãZÖ'wsÌAíº‡¸¶L¾l¼˜ë˜“oG…m|"Âø“G‹ ÎeÄèD,PwÆ®ÖA£ðø9@Þ”n½s—s.}‘[iQýž_3÷îÉÉ.¬V¸¨¾XÛ3•U2mÌÖ%Ç-î'$¨"ŸB]ññƒ…gÊìv\ü”Y}ñæYÞ]ÝéÅ\—cN¨±…KíÇdÒLFËÁ]¹»¶gžÍ*·èy¿d¿à¤À¢õ…#’züóµùx—<åQ½Ü0Gƒ”$Èɨܽ-sß¾œrS#ªbUŒ­Ü’ôìæFDú ¯ÝIε1^^¬ÕüÀ\›"vœ<\´û×ÌÃÇ ëVmœ>(9@¨†’{Ô< ÖžóCÁ¿^¿fä˜$R2.¯<èzÌÉþ$:”&“SWÓ¸ogή_3³ «œl@Š¿_¬ì…õÄðTÆ÷yý£#_~w¶ðh©³É¥Âœ,CÈ“Æ.hå·#êà;d¾(êòÁœ\‡ÊEBANõîmYûöæ×˜puPZ€O¸ÆÆÛ”“‡¶ÓViE»+,ª÷VÜ ›\ä½yºsñopÝ-æàG÷çÂ9vªÈÄ:õ ¾‰þZ?ïä(;ˆFˆÞÂù:çé箞<­Ù¤sj‘ÎÃéä…:û oŒö0:A“€%à°;aP€B¥šU«`0â×Ðv#Þ½¤;bNú“\+ì¶""¡¾®éˆ„íYù•v_‰„¾*‚‡eÌR>4½=h²좎­Î¹ë®I×Þ8Burc¼k0GN-Á%û|èÐýûrË•ÑÚ Ô}ˆZèpvŽrñ (¾xÔ]Wk%Gª™Jׇ_.*YÜ<†‘Kë.“s¨±—ˆ!Qe™!óLya^My¥±¦® v[lž4÷‚ýl*Ep°OtT`RrØÀáq‰Éars‚ìþê^˜#}¢––Ìêc `ž@$(».Á7(Ñ_ã¯B]`ž82O0I0«LY’ð)h¨ªŒ†šÓÆOV- õ•›D]€9?´¶ºqßöì];2³‹ª‘M ðñQ¨YaÁð¨aÖ§hÞX¼EŽÆ~†‚¦“{Ãõ£ß9ŽÀ·käœô58)ñÒàõÙ“¥‡vçž8U\Zcpjh^Ïha?u€J­‡MY0cpÍè7.«Ónr˜ë,Ö:;ÕÌÇÅÏš;hÊô>¯.ÒŽñK9¢€¤yDÂþÜ2S£"Rœ ÕÂÁ9»‹vÂ<áIB"wÊïáMšÁÓNý”;atÚcÏΔ6v.æ(ÜLÒ¡VÇ‘ýù»¶e?]ÜÈ:}‘ÕH:_$’Ê`­ñd,X“AáÍÇ0„šSááš¿¸5:&G»Ý¡“NºÉh.2×àÆFë¯ÏnÝt¶ ªž Rú'øê#tjR©d(8 Ø3È€gЍ$=àZ¯Â;öfGu®±ì\}ß´èGžš(MÄ%ÀœürÑ]SiÚ·‹„’g(šÕHû@Ã,,à—øÁKœ9$$ñ5ºh/ b«-Ç6¿ñÁõýÆŠ»Ã1GŽ!"ë\ùî­hÁ”75 N Ð…h‘(¶qpa êFJdsKœa¨1þЕÂxÕ*öà†üÁýãŸù÷•Óá˜s—¶cp[Ìöµß[¿îdµÓâß; ÞO­W‚ À;\0 ¼ÈirÃiaP¼ ‡—MÃ,ðîìž2¾™ú÷›×&$…y„»s’ö!ï@Ÿ¬#ûÀ¬Î8y¶´IáÔ'Aÿ:µŠ†¸<2×ðHņÍ5Qû0” !ha¨ä5ž6|Fq|GI ¯ß[ß(vÏdZö¹½(Ì çÄaM•IС%5®6 -À?ZС¼]6qHiŒ9–L+± Èõãq1¸­'[ß57ØöÿRðò[ ‡ —kØŽÅ6:‰³‰†³ç׬O?ÜUfm ÐÓi}› vO F§°0ЮTaÙ b¯+CÈÓê”'w•8š¨ÿ~tCX¸_WË9,fÈ‘È9º tèÁCyUæfUŒ6(%P¬AÈ‚’Å„t(Æž,Ûìh¦ÔÈÊcd«ƒíõN·uMÎÃONŸqõâýu„n…cãþ˜ø#è#qd_èÐgJN¼`4¾X‡:84O¸Í2/m1#ÃfCÄ-ÅÉ–º{"Ds“&"á\t,xùtµ§d™ÚZËþC+¾C˜#Ñ«ÎÅŒj÷ö¬§ý>åÆdm„ÆÕä„–ãVÜŠÆCŸòÒZÇæ„ùóK KŠ‘é\r4ivyAÒð´VÍþ¼£ 21â•7J Ëþæ` Þýu¦µ>áÊžv£æ+Sõà=œáÚP(…L™H¹N·”Üâ;‚hä`íh”lyUó¶ƒeï.»))%œñ)çH*èã~ÿ’•&­#1=ÆÙìM Ú’~g3Z˜|©œtÃ[-šˆ$‘Œ#GÅæåÎå›V|{»ÞGݹrNÊuÂG/<¹fß¹‚Ô9q.G²ôD²BÈ€Æ0¢eÚ‡¬4bë´§CÅ•'èež—lp"W fÙd¶³%ï™Í?9Õ# ûGåÜ?øö|cmü„§OÏKœ]k;ÀWî–Ü’ÝæaωxåâvÀ´±“<é S)7î. Ž }õ­…øöR­%ÝÆ‹¼óêÖµ›N ^”ÂADÒ¡D†ñ2õâžZ\ð¼l"Dü‘OÝB¥UôÅ–=E‘IQ/¾:Ÿ#d!T'û¨qC—•4Üuóga£C‚ý8« ÃŽ}O)^@®ÍŠˆEF²uXÁJfT%Cñ[yJ6xôC8ŒZ¹çdy…ÿø‹ÅÜ!ÿOÉ9´wç¶ŒçŸYÛgA$ß°´¦e—M¹u(%¢ ûØïiO$ðâ´‹V¯Û1ÇøRÒL³ÅùÕÖœ¼4gbzšœ äÏa‰m†).¬½ëÖÏã&FøGéÀûaiùDp-í9÷D¸Õ‘;8'M%œhðñ`R[l®o6çþó•ù£Æ&‘+ïŠX Ѱ+>Ú³rÕþ¡ “‘^à("'d£"y“gÝ!É2–#D†h÷¼JÒ?KA/òÌb)µbsÖµKÇÝtëh¹3ñ'âsOüíÛÌʪ>WöpZÄ<Ù:r£B˜„ááN‹“…E‡Nnt‹‰H^”…nUEa+(5ü)B˜/ñv@-Cªn(ZÉÐÕ‘¼Ú §+>þ|q|bŽÝÐÔoÅ.““UyÿÒ•ÉéQ‘zùÒî•C1- Ο f5Õʆƒ-Jú ”FŸ8¼Gá#€ Ò©×ì/à#ƒÞxwÑÅË9búüí¶• ”9uTr(w¼P\Ør3@“t+-[8&'‹¤‚-ê ñÅÌš£ àÑBZ‰ÝªÓåœäLìØšñâ3kFÌMÒ@aˆ‹3¤DÓ­GFñö+[~ÙzzÔÜ$h³Ì´ ¶±Rtž=kâC`ü±ØßçÉfâEœ‰³‹PÈ¡ô%ÔÔ)¦Ñì8“_w°¨áéÿÌ9:ñâå1ª–,\¦Œd{ö rY97®Åþ²òaÜ÷“n¨„-3R©–fÒc¾Zå¹Â†ÍÇËžeþèqÉ—$ß °Cføcû¦ ¼zøÔ8;ðK¸ã ¼;•bÜ4%Xè‚­#zO”–£dó-ÞÈO3´–EÅõ¶ÌcNU£S£ì;,nâäÔ#ËQËM:H·’†óí7,MÒÇõF–­Zžsüqš¢Wä6û Õm aœ¡Z&t5>±¬Íî*®j/e\9Ñ­&¦¤´0ÃÈ]ð‚m8^¶~°D!ž¶ÙÁWÐ*€G«1XÏÕÖ[4!>ÃÆ$MNOKëI‰ µ/>>Gþ|æÑóK*†Mìa3;âDÈlSûE·€qO„àôÐî7%’!Œj!B/-±ºžzîª!Ããp¾‹ÁY»®­Ÿk¡›^Ûºùç“WÌNæHm’•{༨’h`¯,Y$˜ÛJš ¤?euÍg‹ÊmþQ£'¤€`‹‹ë ] D«Â?˜‡ÀéN(‚wq` Ù\–¡cb§`ˆ¹ VZ¢¨¦Û´ÁE3d3M«`w2¦&[V©1«ÂdV(zî1)=mĨ¨¿Š! yñy·þôš+祖–ò‡ÄܤÅÈ<Çp åÖ¡4#•МP|¯5xÍç–·®èÙ?æ‘'®ŒŠÀAlrÏ/M0¼p‰@ÄvÛõËc{ê{õ±[,-e…ÅÑ :^pýˆéJ‘¨7O† ùD“MÕ™¬ç‹ ¹5M´fÀˆx˜§Aƒz 0©<ºëç‹&.Á8z¸ð‰V§OKð÷WCp BîorÄèdÛˆ,`‹ —]À$ÁTÙìÎ¢ÊÆ³%†›+*!l\zÚ„IÉ!!¾äòˆœ 19üÜ9~c–ãÿñÈ÷9YeÓf&Cy"0ü²B¬PÛ"f†Hé?%È“n稘ìf¨H§™²Ú¦}竌 váÍ£æ-"K_ÊýâÞ-$êÖýxâW7_}uŠÑHrŒ;ðÁ»ãàò¤™'_€I‚t °EÁ’:_nhä餾ѠCÇŒKòõÕH…ÔøÂ(ªîލe"[Ð(þùäšs§ ¦]‘èD±ÁÊ$.³œpÇÜfe³ógV5X@65X´¡>ÃÆ&ƒMM‹jôÉY:ißyÛô©G¾¯®¨›8¾§Ÿ^MÉyRÔCÉÒÜnÙ,àŒÅ•Ì*–V¡ð›³ ²ñDa}#ÍL˜ÖgÑ Ã‚C|ÉnRV(mn¿Äû!àšî[ºÒÙlž8:ªj«Î=B)@´¿ 6Ø÷QRÓt¶ØPÙlé4fRÚÄI)PI+A­uȱÃ÷ààâºëï¼eÅða ±~0[8âØŽÅút$ñCM¶ÌRcv¹ÉªRôÜcâ”^#FÆÃiú %RCûŽÅœXQ† Uššlï¼¶eïŽÌÄ~i‰A>¦¦ÁßG¥äœäý ø(€ÄžœNÞbqT6˜sÊLåMvX0ãÓ{͸ª_X˜Ìò ;—~ß—">y¼øï÷~=kbϰ@ Hu!¾ÊK®“øEæš9MÕ˹¢†ü:³2P7tT"„ãûõ‹&Ùbù£.ë‘CF±üÃÝ?®:¸pf ÅÉÒ¦RÝ2*ÝF×uN€6«ÍYTÕxù¡®˜ä°ñéiã'¤‡øëu: ¿ü…6Švl°4 xqø`þÚï瞯а|*,P Wû‰jͱyí´»Ì‡¡É^c´˜ì\£“ó ñé=0fĨġÃ┘wJR¦ÄðíF{ ¥dߋϮ?½?çÚ©ÉHHHg)j dVÛsÊŒåÀƦ Œ09T:´J ”HwÔ•}™Ä4m1Û–ÞôY¬¿rdŸpŠþˆeHتÁ UÓ'éP}¨ïðqI`t¦¤FÈ÷¹µ,íìÞòÍð¢¢Üvjvf%”9Ö×6Yšm4EöØÒ°ÍJ‚B|B#ü{ƇôéD & ò¨ÝqOµhÓU•F˜°ÑÉÁ}{ß+º¡ BS @‡6ÔX`VON01Š›%³šà —AðííjîT9Gàßß¶ùÜËÏ®_|eŠÑÆ! *Ç!FXjȪh´«}†ô¨ ¯Ä:ÔC6_Â^`Ää%¡òëù… xðZ {‘Êñåvsk Ó÷ñKö«ûW}²ç¶i©j9qȬ®·ÔYâ3|lèÐ^½"[4/bè6£M]ßs[¡%ôð}«òªnHOfqàÀbqV!?´ÎîŠNŸž6nB2ìý$¿:CRŒÔ­úÏÛQ*|—WËo*fgJ>ÛkZÒ}{GhÕÛo^ÉpãÒÂOæÕeW›*eŸÁ='b‘ "¡)µ–#]òºîÑó `¯UVŸ{ò§Æ²†Z‡ƒ³Zæ7b|Ò¤ÉiÉ)ár?TšKoÏÃK³¿•ˆ:(¾}âÁoÂB|z¤€Hèiƒ 6D#rŽu¯>›ÒnHåmÞt¶¤¸^¥Vöé5tXO¥R!ßÈÞ¦+íÅ\—bNª±†öìÌ ‹ð—BSp㈭sYôv•*:=΃”T{-ñ¼˜ëj9ךE^îÒ¦{Õ=û K™=-bëüžKòbî’õ+!¬Î­÷ {{X{1çí›îÅœs^Ìy1çÅœs^Ìy1çÅœs^Ìu¯¡—¿õ’?þŠü­^žêK%çþ¢<ÕÒf*ùh/̵9…ɃîŒ9’‚kM vaNÜMáH­PÝíÅœsÝ s^ÝêÕ­]­[½>„ׇ¸>„7Vâ•ti¬Ä‹9/æ¼1a/漘ób΋9/漘óbîs­{ ˆŽ3/l½ÂD{íÝ=/漘û½˜È´Zûµ³Ÿ=í®A–s^ÌÉo%-Oüš°3þÂÓãrº`o¢z244ÌÆz³©Ñ:.=Õ?@'|Ñ„¦Ì‹¹ÿqÌyœT"Æ?'¹&ᇿ)ç„­ðV§Ñ`HêÅghùÑh1Â?“^7ó.K¹ q ¦›ªÌ½cÂ_zsÐwÀUÁõȉ{:qOµì¦@ùGíõøka΃H½3äÜo†òáÖ8ìlm4Z@DêAVY »–É€ñ„ÿŒ–&3ôÅà] Ú™¸X 1?hJhd¢GÏJ½R™* 1d¡3­àé‚ E=´~ÿ~ga†#¯t OµÔÝŒhó € ·‰¾AÈQ­nÊNµEÛ ³¯É;dÁ¹»ËÃ…9Èà‘ï@WhÿR&S½ þ@2­“™<76ÙìÐ; CÊ¡„gú–±z%@ŠÕ!H) ‡4ci ¬ö4ôÊD}t` ]¸›Ž QÂl²èÝFønî†Âhï¿ß]'ˆ´Ã²§ƒ9ƒ%).µîj2YÊ‹ª+LM&+€L­Ué£{ÂîcÒF’4(!ßoïJ$ê:ékD!tuo×ß9éO¢ËäÌຶ؜°«.¥³äœ¯´ƒ€f O>ø]c³Õæp™Aœ)i‡‚·+(L¥Šf|”€'F¯ À‚R&x†ÎY¨™fiGMøžðkÌð‡ºNq|Ë~a´Hê&½i­h²~. Wù¼üî"h&W²ØŽ´ëƒ×À¸gKæ=¹™Ðg…u9µ´ 7Øf”ÂF)Ì\d ïA=']Ù;¹W%öüjóbˆN¨`%mÐÝu+iÑ(õÿ„•Ôfœ­(.¨-¯4ÖÕ7UV##ÞYvL3ǵkÕ^œnEܬ÷ßüùi_ ›Ž€¨RЀ,ÔÅ”pB¸ð?)&K»ÐŠŸv³É9Ü¥>ë¨Õ ’p„ƒpñâ>b¨¯–RÁžß\Äê^yoaH¨/Q²˜„ëÌAÛF¯ç ßÿæëÃÅÎf6ÉW›à£ð…L &~ø€ Ð^inÊ1©j]c'Ü|縘AÂõ®› ZÈÓÌvçnÞx&)5üÞ‡§x¬–n„9ÒT’Ü«Å~ì`á‘ygΖÕ@W-Åø°º@O˜¶x{Ù”¡©O¼p•œ&¡cu+hUý7ŸxûÛ½ª¥‰À_ˆå†Gµ¤§[ÒeKÔrG–y¦Œ‚I5 ‘"&"Ç+ƒ» ìNo-òc4¯¾·(4ÌO’vƒ9y3ñÚÚ¦7þ¹qov‘n\¸.Ñp¤ Œ áZvµèw $ȧÁQs¸Z]é¼÷ôôé}‰˜”wù<œ8\¸ë×ÌcG Í”C믪É6¾ùá ýõ¸$üíbŽhz¸ D¶•×oYwz×®¬*«™ WûÇûéƒ5*0‰X$\ެoò_úÏüá£åÄ’,çp·¥ò2Ã]7~fžBÇéi›KÞÇ]Îö$¶å§d\áSc ÚBÜÌŸôêÇ\ é¡@•è„®äéh«dOl+ÒÑvÐ~¯C¸4 àÊËžzà»|­5dz :%°aèËÚór>\Ôß:£k¦|céæ²Û—N¸îÖQÒÁó²«vÿšµoONe½Q¦‰LÑ!bôM…!ß7?¹AÞÏåÒbNhCΠ2ÀC÷ÝwîɲøÒA}ƒübôJDiÏa1ržWiU'jÙR×Ç_/Á솎Ç!•c˜gønGC…ï쾌H9Õ•@(ÀRŒØ–Ÿ–1™º{p‹Ü#µ’D`ßg)ž› LvG·+)Õkï- ðov¿sä%Ph>rǪ<%tf,×ì@ò›&‹cÜŒ ”Èy, œÆ&Ì‚½Öš½®è¡G¦˜²cK´8Êͯ¦}˜ˆ$ÿ_˜ÎÁ‘^ò¼ƒßýCöCNŸ5w $ê.q_&²æà«WünõK><Ì'\G(í#‰zÅÁ©ïófOx7æ{±wB|Ž4ðb™[2ž{q½ß’D‰¤uøÀ2xFF¬-0ÜQ2i'0Ù#z]ž HÔ®”ŒOöež–ÑW»P­dí(¡xÅëï-Šˆ €H2öQ|aÌÉéÝßxñ—5ûÎÆÜœäBâ -]F £¥h^Ní%‰as Q dÐc;Ÿ·³¬î¼!²g`3gééï¯óSƒÏÄe7"¥I“uÀ_þ™Úš" ðlûúiIïÀKÕg=&ø¢‚Ú×_øù\iUôø(¿ž>@T€ÐFè—$ G¤y[ƒ=ccñï]ß»_41æ:;=Åïº~y}_µn@hŸZ•páñ„NÎÍÎ&›'9Ž2žåå\´Â¯ðDvx*AZж»ý»ŠÁÎ|ýýE‘QmÀî÷È9²Âs2+ï[ú…ßìU¤†²š<‰f‰–Ñ/aºdYò5hÌÙ\¦òæêlƒ½ÖÞ;-ªÙh«0‡\@9‘Tã”ÄU¸‰Úh Vغ&gú¬A÷=2ÅÃáíâ~ÂȆÀþòóøUì8ÔÀ•GŒÂ|Ä7@t®Uæ¬Ô[Tïq‹ÔÁ©ó0'ÍÐ;/oùqß™ðE @T—>#£¹l;Vœ3ÊÍyÇËé;d”m5·œ]Sâ¦åüÕ?ÃF¥bÏžb`Ýù/À.:Ðv¿‰9’FƒiZþî®/7ëyŒÈ妒Çk@\ HÐÒ˜ãU­ù9ª¹ÎZ“ÓÐ\n ÖëGŽH;9µÿàØc‡ žzôû¡WÅ«U ¢X¡Ñ’XeP„VKuEÓÁ½åï-¿919¬uÈ®‘spUˆFhËÆ3¯¾ôsظ°Ð>A.³“Æ$t´ÄÇ*PÕò„:Â^¾Ï¾é†17Þ6†ÔËwv¾•xdçÏ”?tïW×Ä*U”C2ÈäÄj”œÔËÍÌŽß¶–üÕnlIÈkÉôJÉd™m½¤wï+6Ùé7Þ».:¶ì~‡œCKFôÐí_æ*šÂdž»š],#2sH4K„?œEƒ½ÉÑPÐØoÒ¸ýûŹÀð1BÓzxX,ö%‹–…§úDõôsÚ9VÒÅnfJ,È9J«Vlÿµ ªgØ+o/”Üʹb:s’üس# zðÆN Jôw™˜Œ›‘3ºéxàGÁ˜ªÌçwU¼¿üfhïѱót+&îá¸ue¡Î>>‚ƒ…AÓrl1ÌA´$-cg“èhy7ñÁ™ Nx‘è¬ :^ÂiI t® 7áàÒªÛ”ÔÛø7Þ¿ºåK”¿GÎ!Û“ão[¸¬)I”À[9]¢ÚFAɇÑ^—e²TY{DAî1д>¢EÓz¹Tôý·¯t°¶”~¡˜AÙÍL)Ï!ÀC=c6;Öþ’ûô‹s€€ELèu‘œ#þ ]XP{ß’•ƒ"ú;›1·½;ÖàAÞŠ¼t­VqzwiˆÞï¯'¹/šî\Ý*¾ €ïVzÿ³]I7&B¶J¢g%d=¢lh–Z8n›Œ#äÜäÏ2Ú‹µà6ò"ù»È_¥Q)=TReå@Ú¯Ä;ó[˜Cb:ÎÞ¶h™5YœìÏá NjÜQh† .Ø\a>µ¦ðÉ篚~u)Á@¸–%© “vÿí_ºhK¯þáÂÚ-D¼ç—iÖá…N­8|²²º™ûdåF!ߓ۩|_ÈžÀƒ¢»÷ëìšÚ>3〰š¦DJ{ž–iÁš@H¢í?d?òäŒ+gõ'dòú³N⇀›x,î¼ñ3¿q!àâðˆÚ‹]KA6{r£»9« h(½®œü™–éSŒ3NàF£æåT‚‚#I‘¬–v›—Ù¸·Þ¿²d+;Ù¥wÁX ºi÷ßöE…Æ=,Ôey#Í| ¿üͳ¿–¤D…½øÆ(=#¥Ä‚H¹n]ôILO]\|€ƒèVÊj)ÈÕ6ÜŠ¯6f]s˨[o'›t®œ#l{vf?÷.HThXˆº‰äÆ"òð¬°Bø -A%K›MöÝ¿öØÂ<ÃG%è}ȶgÒ'š—ÈI:£~ŽÃºçýñhQiòŒN³St¨yÎxOòBA·bÚgš[=t¨Hè(ò"Sb”¸Ô(ÿY%˜è­[˜à`ÍÚCÅ™ `KOJ ‡7CÎ̽ÿú¯öœé;;%ÎW¯D”ÝÄÝxºá;ÒJZ¥"»Ø°ë|ÍÇ_,ŽŠ Äwʃc³Sì9¸Ö§ú>£¢ªïÔX‡Ù)Q¼ †§ ðx–’®Ð³Íâ*Êm¨ªlÒéuƒ†Å›˜ÂvúÞÙÏ=³¦ïµ DÀÆË®Mǒ㉈@åžA˨/‹ƒ ¢äLÉbÎ2ª{2¸ü„B“ã=W\¤ A ûûS3úÂ÷ßÀœdIŸ9Yòн«ú\§õWòNÿÃÁ97O&9ˆºœãÕæçÇ_-Ñj•òã“ãåç7==h u–€ZYTœ—›Lè0í~½#7qhÜ?ÿ5—ðôyÔ›t0æÈw­·^ûIØÿ°8?ˆŠ9J¹ÑÍÉŒqZr…0±.õju5æ‚‚†zƒ= Äoؘ„qS{õŽ”w^gd#é:ax>Ú×/g{ª¢û»,.!OïŽB1Œ[Ÿ Á-A8I˽… 'D}ìŸR-DEˆ_…¬QOyD1Ú8@[ÃÁÜZM¸ÿ¼…Cf^ÕT¹È ëVyLø©‡¾;W¡5ÛøÔœ/dDêvæ¶Ÿr,qÛÝ Þ¨A—q¶ì»¾J¢s9§£ ï=˜)"ãÑ”ð*–­5Y?ß÷Ÿ· /OÂvŽœÃ%Ü õÍ‹~’:>Â/X±_²÷Cy¶¿îø²ÿ´XŸ@ ñA0RBB,¡eÔç$Œ"yEn³OÌÃJ³EâÌbxCV@”>ðü¹’†ý¹µÊP¿9×"Ù†É^ ý¦»>þÕ2;Sú‡¾ Ž×÷á²»8'Ïw *ˆèªØ_·ä¥öéñÂ+óIùSEYÃ3O¬áÍæÉ£bá‡t‹ áIS‚‚š¦DÇô•ÓÅ¿õkæâÒ,֚˺ƒu+ˆ Hiéõ˃{hâR1º¼LƒX îB FTO$†Ò‚¿çaæÀJðQ)€-ù“çûD½õá ºÄqÙàŃw|ep4õí°8H Ž‘%„»/È9^vÇiiµ°D]òbŽAxA‹‚^S$e©U¢cŸ/iØ—[£ñEh›Õ_­QRa:&¯”eœÿH-bd„b=»ÞÐÔÔDdpx‚á!¢•BÖˆ¼Ñ¾iKÁ o,>2~ãºÓŸ²'ÒO1f`h[¬ñw@d/Q–™\WÁÓB— ¥Ó j·–¾øê6 çÄwX ºì¿•d“^Ûºù—“WÎMµ£ %zÔâ$‰%òÚ!ÏT¾#ØèŒúâé¼Ú}Ùµc¦õ¾çþt?M{»ôþô¾/RjõÓ7G?|oûäyÉ$û.ÚÝr«ëPwr ‹jº-§•˜8<ñIyQ¶ î0hRÈ/3ìÍ©a‚õ³ ¹êêr´‘«û£ùV™œ߈Õf6Û¾ødßÖMgÕZ*>!04D¯U³­¢…ª5 ëÙ±·ØÂ+Â#üò3ÊG÷HŠõ‡¹síÝy#±¸†kqCÜå†DiP”^¥x_njzÚߟ¸Ä'%=vV¢®¶éž[? Vm3;PªŽ–¬Z–­Ì8yBBெ̦J‡ù¦½UtÏ’»ÆOœœF }i‘N¸c0‡ º¶¦ñö–§ ŽîáçÂÙqÉ“}LÉßäˆ+Àº¥5Å´0õøfÅ“‚9=r´ÑAú« ¾êê­€6œr <Ðö§öC •€·,5‹¿¬?}xž¡¾I«a•P8…¶ÁVH0"x³Õ¥Ð¨JJ ÑAÚ¹“ ¨9 ¯¸äwci厄Ke÷ÂèЉÁ"Òâí &‹}í¹ò•Æ/¿»#.!î³b‚ß^Ï?þ.(H5rX4ÀÙ†‘ñ!ʳþLˆúàÈŒcÑ.àéÎ-7,jpù¨§Ï4Á`VE®UêøÙ±û[‰þç?Ödœ+ž0%GÞÅL¨ ¡Å+ÎÙË’òT,%>„p±@ªŽd ж'§šÒ]5ðÕ³jqr³ÍêEîÁ‘¦w`¦ óëòr«jª-f¨[DÅcúèØ€¾ýcöîÊ~ë_?/š”ä£bQº\ÐN´è.ÐBf\2ŠÄð2öü€žU³L£Õ‘Yi:^a¨äùÄ~QéSz™+ª³ì9|kaAÍë/m*ʫꓔëïJî?r/b ôb_A ¶§Q—יsÊ•gPtà”}¯˜ÞÇÇGÓzcHÇî©Æ9 =¸/ïÙǘ13I‹n=/ 6†æ¶’§r«@°¯¥Ä…u-}Œ¶ÜW€¡mÎNíÞ&ƒÆwÎþV¢£)RæsὕÞ³Ê\R7LœÕŠXàqN¯MÊcY*š†ÑÙ\a]ÓÑÒ†|³Í7&pôĔɓS{ô –6éȯ­“j™ØÁë-?ŸÝ¸ödyQŠñS‡è|T:%*wÀÑ^ æš,6C“½Æ`1Ù¸FáÛopÏ1ã’ Œ!‡%J‡ìž—îs'íã·Ù·ß¸",íß;ÔøÜeö™Ü¿‘JBZH;N²P9*̪¸§2Ë »rªþºYóÍ™3P§w£Mž_é‚}üÄ ¶‘ã”þŸ qáÝÊÃzćè`êY!Ó"ÖMa£ *\µ 4ð*£õDYý¹úf—¿và¨x Q80–÷ Ê÷#vAͦ[£júœê£G ṦÜ<›ÕÁh‚ߤVøèCô¡Qñ ¡}úDÆÄ’éÁ½ÙÙ½#¤pèGïîÜüÓѹӓ](¾ÀËÝO™ÇCÐ&¥ÿÝÅ&þ²öO#´mv?ÍÌyƒæÌDrzhë&ýJˆ˜øï«[l8}÷”—ƒ—-3ëP †éLd~-ös¦“•†:–Nè •)cÇ$ê±:’')¥Ã@f¥qGNµÕG3c΀9óá]b¼­¥lë>˜“o^Yóýñ_Ûò÷ÉiZü®N©»¶Â`9VZŸi4ÓÁú!£'¥§öí-)²õµÍ.ݽ_ ÕçAWbލ×u?øøõ-‹¯Lee»¶d:Ô]lBR®ZvdÚLÛsªÌzp´Î7ÈÏ_ëá“¶Ùf¦ÛôKÑ8þ®ÛW†­·‰«0˜ÏUOVMj6eP‰éi£F%hpQ´|ˆÌ¦=t¨·/ÓïÅœTfFçm7,ŸØ;&Àfw±´¬´D MO Y²17£­I§ž6{À¼ùƒ Õ—[“âIéþ}6E÷I¬ãG »gUï ŸZžI šõ ãSBÃ|%JJ;½½À:¬ÿ¹ï/>»>ÿpþãl6§˜Ý¢qú —©ÙYÚÊÆ_sªLZ%FÛ`HÊÉ" 4¹õv•æú«ûkÌÓgöKI —lqbïzûÏu0æˆz…;{ôPÁ3wÇ„¤µ‚+OI¼  I³«Í®2j•S¯î?þ`è''…uHùd{Õ~ÝsBbT~©ò­\Þž‡"ç\vçÒ[V¤)˜ôÔpðàˆJ%hË©nÜ–SÕ ´õ»fþÀ`½\ã`Ip÷°–omi³é£s9Ôì—}¼{ÛW‡˜˜ µÄ I¡ØÉ¶œª:µbʬþó¯ m¼ä!kÒ'ËÛ7Ý‹¹?ÑO˜&eÅ…uw/^q× ©Á¾g+ Ûr«k•Ì”Yýæ/â+ A{òÄྷW¿s×Ãd×Ã÷cN*¤ßùj1ô1¡ÄÊ^ÌuÌáÎî4a–x×eU'L€mãï¾é³Æ©AšzÃû9÷.™°hñ¨ Ð{1×E˜s·9ÂóÔVØ™'l³÷@÷ćø3é};³Ÿ~vïÍñŒ¿ÒqÚ Þgøà«%ЋŽ0ŽzåÜ¥ÁöïÚÐLKæéÒ’‚z³Ùj(4Â/­tTl –½óÊ9»æÈÐ>}{ççÛŽ…]Ÿ&JS½ª`ÆàÔÇžŸ%5>÷8Ñå„9B@º@ÒBßR´o³J0"‘ß:ÏØž%Û˜#ÑDØ€wž;YºiÍ©Ã'  §žÍ©§ÒÌëLü Þ±‹n™Ö' §DKIÞs©»aN2æ\²ò¼¢) =’jr0*†«¶Õ_òú{× ÜCl°r¹É9©FË&€5”Ã¥h·…$'ÏôsüQä™ÄIã&¡³PgÔ “2ô‚Üš/?Þ³÷T¡½‡Z×7P¤V¨ _=P†s.ƒÝx¢žÍ³,\8üæ»ÆÒíáúuÛø´½ó†Ïœcýõ ¾”C}¾€¹ysYíûƲѤa1ù¹º'愤uŠ)'WYfÈ8S^WSQe4Ìv‡S£V†ù¤õŽœ<½t÷h ;bÁ;Ыþ„NP .5q‚~ÙÐ|SÚ‰IÌ©ÂA£&ÃpøÕˬúêPS…ÿèp•¿ (h'îAË {­^ 5k/7—n,Ó?þ‰fùújIè«u‡Æn‚9bÌÜ“ûôS?E\ÇèXàie03"mãò¿Ìûû#ÓfÍ$ñFü&æÈVKéœrFÍNÅœºEýÎ1Úྟ?SvìpáÉSÅùEµf–sh(M°F¬Ö¨EÙZe±6óê[–Ž>{@›ŒÐ ø¡»¾‚¾ýÉMMÐÅçÏ–ÿºéüÞ]Yw?>yZ/¹„ëˆý­4n¢†¶¸«ý_øåP^iàQj`^aÜŒ°#´ -ä(àÐa|þº‚äÀàß\;ûá¼n/Ú½0G"s+>ØóÅúÃñ×%ÂB’ºñ+5Šúãu|–å£UKüýµÄ’æ—ì:抗AÓF9T6×ñ˜ÃÝIá. me%õ@üTîY9U“Y¡S5¨R˜h岩ùÐ!>Ñz v5å+öTκ¢ÿONcd÷Ž´c†–-O<ü-t¤32yàО;Í(«¨§TE‘!*<ð› ÷Ê]‹ï!îÈüWžÛPF‡LÞ‘óY ¼‘èx%ƛР9gCa½ÿÞ] #JVÞq»;`_ê÷È_e9ŒQéQ\3áHW êùÕ¹s®tߣS]Ð^¸ýÒ)8&àÚ –úÚfèÔ^^ÚïϾfp›0;sR°€ í̉’ëOØ—[VÒK?::Èãúö‰ã¨èÒkÚ(oÝp懟Ž  €ÏòfgÆOùã‡&ÿã¥Ù˜š Zå×§ïíúqýÑ>ãbÎn/QéˆËÉ«YeJräŒÙFŽI”ú9vH_&â1¬Y}ôýw·«Fû æ€ÑEaFPޣϫÈ="Ò|¡&ñ´RÁd¬+L þ÷; a‘ æ…x5:s­wu€ M‘ÉF/  ÏÆœbˆ_`’?oG»ÚX¬ÁÊV©Ù¦Òæ‚M寽³(µw$Ø6» :"Ö×7êÍзª¡®Ùh²˜Œ£Ñb2™M+Gqj­¢¶²±²Ü´àúá?3[ážÖy`ÍîÄ/²ÏW¬^yðÀá¼ÚÚ&íà!=A˜.BÂÚ.“AòÒSë4©ºè!¡#0N|›3=½ÿ#OOZ1Ì™S¥Ï>þcA þõ%MyÇk¢#ƒFŒN;1Ø…EÐ qØš4âaN˜Ôt•þäí_­>ru¬¦§žs3åQ„–„róW‹üCˆS6RˆÐ ¦MA3§Öæ÷OŽyáõùíµ™¹x̵ìIc=NKE" î4 Pcµ|œ:^ü÷W']ÜU› øÙ€ìÐav8šöfgãªÎ×ÇFõˆ®©nl6Û0Mš¢ÁQ5Z…V§DÏ…¯¯Z£bO«4ÔÚïy ýŠ™ýH3»ö!äÍùáø_|¸ç‡µÇv›ÒE•¾þZq#6Q™DüfåÁÏ–ï™0?·D$L)—`B¿GZQ”g8v¸búUî}(]c bÓ å©–ð &׳üp¸´Ü?ÖG_âzáµùq‰¡r¢éÖÍcä÷\q ÒûöËC}°côüdh‘ ‹æäö’0?ÿÿ~x=,«¦&›zÇÖŒþoÍ•³S´jÅú2n^:þÆ[GK³èÁ@ðgxp`‡‹ÕùÒSk÷œÉO\˜Ä¨ʆ ‘½iA<"¶å'%–Œ¿Zè5Ž`gkrî^›sÝMc–Þ3Aê©ÓÞÿ ÌIÿåò}Ÿ/Û‰×2¼çdƒÐ6«ôJ•Nþé•J5È'd >‚‹?³*ïÅ—æ àk'Zˆ~˜ »n^AiœýFF9,˜À ð§Bíú¡Q_Y]­í¾G¦NÞWÊÄ…Öññ9â4|ýÙ>Û•rSráWyÿxbæä+û€ y… 4ñØB‡d K?qÿ·9E•#¦ÅñçàwþýÐãÓgÎ(õ­}ôo«+Ëj¦NKĘ̂9{¶nÙ—KÂ#ýåæùEêÖWþ¹á×Ùñ â›]`ÇS+ ù0¥ ˆxÌyJÞ–_|MËèÂj9LÁ†'FÉ67ØvlÌ¿eé¸[n‹(ЬIu œ+*¨ûeý©ÝÛ³*ÍMþ‚B{©}•a”s!‡½à(AD V2†Â¦ÊCµËVÝìCæW²÷åeÃp¢{rž~ô‡I3|}U˜°K§Q˜ ¶Ý»Š¢{†=þ3À¶–zkŒ<ìÎÛ¯]fMQ¤ø—¬,xåÍkûŒ%íÿ@¾ç’ÁÁ¾óæÉƒcüQ‡ÞÓ5Æj¡PÆàf³3+þ¶t儱1=büÖ¬Ï4"éil'É1GØ?¡[áEƹò°hËç—ו7ËjuF³Ånwe"ȦR l‘ºñ''ËãqèNÎŒ§x õÖí›óoZ2vñã8¢X¦=¦¼?aÏ‘’Êû=˜#‡"ÝÊ¿þâàgïš6'YYéY“}÷Sç,ŒHi¤AÞ|yËöM§^VScÞ°£ðÕw ÚSžlI²Áý!¿µµ n¶Ù*ëËj µÆòC½¡ô/„ _ ˜aˆê™´Õ”ä/£S;•ÂPoÙ¼5ÞÂá÷<˜îA¸}ñrŽÄÿH¬ ^Ü»q͉Sç˘ETß`ÿp\‡R[B'nà‡=²&oÆ”~÷>2UÖ¶=8ä:a¢ïºeŰ¡‰ñþ6«ëà¡Ò†F׃M6BÝÉ0,‰{wbî‹\JÖùЇÿöuìÌ}¨&ã‡üô!)ffëÄðoÖ•?a:a`* 7hp$½Ž«ùòÁŠ[¤ÓE|ÛõŸ¦ÅøŒìñóîBN¯}ÙÍ8ìÊ ‡Ãyh_^Ÿþ1¨‘4.eûCrNè¢àȳëfÎLöÕ)êAí)yóÃRzE§3fûàõ­7ÏHýûÙÆÌÅwO¸îæQðQ}Cóonÿqõá¥÷L¼ëþÉòR¢‹©+¡ð…14㱊.ÆF3 ¯¦ÆPSm¬­1ZšmN›“wq JQ*Ë?~DEÍA› Ÿw„ö }úŸWEÅà9_„eZ'ýþDLXŠM“5S]iÚ²þÌÖ-gk›"’b|ýÕUùÆó{«–}½$"Âÿ‚{ iLÎŽ´0f]7ç}/¼qämwO@±­8¨;sh=!F¶ë>¥b•Ñ‚]f×ñïrïºsÒ5׿0akÌIj`ëÜuëçZÚ1bH”Ýêúqcö_1kÎIv‹{—®T6™çŽ?‘]·=£úªCÌ&kö©CMceƒùÅ×®?9ÄÃ:¤~®¥ÀFâ“¡iì6GCCSM•¡¾ÆT µ&‡ÅîDMþ!‰F ‚ JAl_v-­hvÝÿ÷©ÀòAýsëŸÈCHlÕî¸$ê!vnËܸæd~auT¢Ÿ¥Éîøú×sè!TýxDäfÕâøàíí¿¬;¥Ó«¾øö_\AŠ-¤.$]QWB®õÕç7î:–=hf<¬×’“5ö2ÇÇ«ÀðWyØ’¿§fÂu óÃê£ËßÛ~í̵‚ùisîŒE#n^2šèVrÆSÇ‹¾çë…câzGùg—›²ŠêÁ€(za}󤫀‘†$ºNºBÚ J·ìËo±ØjLõU†À_¥±¹¡Ùes 1Èf‡*tUFaî³#Ó{ßq÷øP_òÚ–v*ßJµ.ð9¼?ÓúÓ»wd&¥FüýÓ“Ré6èüˆ®Bî¹ÙUÿya£±¼aúظMûІNJ{ì©ò@U—b”±ƒùO>òÝÙ jí¤öÿ}ÓMcnZ:Ö#ú›˜“¦°ªÜ¸ô¦å“EÄGù­X›qÃ]\7 h0З¼gõÇ{®ÎxWm²Õ8¸ÐžÁÀæDÖŽÖvÍœÖeä;'¬C•ÉPe4‰Q¥Ñf²¸,5C›®_OW4°ìüG3˜ neLm­'ò"sü’©9û›çdµZÁdíÕ'zÖÜA#F'H´¥8]æfCݰæäoÿš®; ®¹¤ªù§Eo}|cï¾Ñ]­[1&²”]<÷·%_6òæ>££àÊcþ±º¾¼52*@Úû»kÓ…>ùwÞúyŒšŽôûzgþ{ŸÞ+²%‚ѽ[õÅA(‘òõ×$¦†˜”FIJ,%t徯V E²·-sPN3äÊ >kµÉQßœ‘[»ídp·Íºvèô™} o“LgQ¢aÙaü­gË»õ”)q q3ÎÕ”W™cz†Ì˜=pòÔ4¬ (Rùgn²½ùÚÖ=[ÏMT`­r¼Z¹ö@¡""ð­÷¯Ãé?÷åuQÍ&qyvB’à™µãç$i€ëötl*LK‰yék¤$£y{rNÂÓýw}åg±U6õ“üä33å ÚÛ!!g¨¥ºJÎ]p¯a 4Ù Ô+P&ùÀí_𿍸×Þ½sQ¶˜Zɶ%ÛÍIYaŸ‘2ýÝmk«º/Á­öØB…9Û6=y¢<6uð°xɺxÌI¹ŸgŸø©0³ôЉqV³Nµ’å]TQ©ñ\n=§V%¥E>XÐ?ÊgÊ ”™88øK‚><ï£Tîʪ:e²}¶r‰U¦umm:æí_3§.z×}“<œ‰.ÚAìÍO?ÜõÍʳ礊‡dåÑc½w½óÉ áþ$'müôˆ>ˆ5NÔ¾Ý9Ÿ¾·3ã|ÅðQ Pñá+“¤¿-ƒ YȺxLª<¬Ùíã'KH¡`äpÒo;ćÈά|øîU3GÇûiÅʇA• ¥W+ *›6*1!õþG¦@Èúçg¶l8c*oèá7$.8H§†üƒc镊óU¦¯Ï—ôÙ-i•Wuæ¤<=<=vÿ7¥•3§%‘èü®ý%Võê[×FD€Þä[”Ü‘vtXCöç­ÿéÄ©ÃÆ&ûÈÑ Ïÿg!¥$'ÁÛ•¥;Û"Oe4˜¿ùòÐàaqC†Çý/õŽÛ¸%çˆhX÷ã‰OÞÜvãôT’ †0“Š¡U vïÙÊņÅwŽ_xÃ÷Âvq»vfoX{²è\y‚ftbhĽ­N§d?>ç×?êå×ÈØ.’sÒ ÈM=rß×Ö†Æé“POm?PRo§žzþêƒb=¦ RUy¹5P*|t_^]I}Z˜Or¤ÿÑâ†j‹Cå§O ïÕ7jàÀX(mW¡--6‡³²Ü¿Ý²ñ ”9Aó¡'®”›>Þ~%ž'Åå耹çÿo]á‰Ây Ì úT§R˜­ŽµŠ8¸k}úÅH»ï=‘ P­½níÉ“ûóÃx~\|hZ¨¯žeKL–—öf?ÿÚü1ãS<â&]±×gBÐ2‚zù=³>ûLñÐÞañ~þ>ªSÙu™eÃÇ'C ¦ÞW IU0ÚŠ kÏ)/)¬³˜,=CôSúE'…ùjq톡ÙVÖ`Ϋj¬h¶5|°>ªg°_ N…yTíPèÑl7Ö6Ö—”5€1Ѱ{žå'²çs¸¨ a4ã’ë?MôQ O õâ«VdW˜6)žÞëáG§‚»&·‚H⋤¡IÌ«¬´aã†3»·žWÖ[FENŽ ý%¯ú0å\öÙb¥Šmsks§îoEÛµìàýµ?ž€r®†*ì˜ñU)šÍöÜR(Vu2x¬ µZ µ©‘ýúG«´Ês§ÊšjCX6Ö_“êå§8¬B N­i„0–µÑ UyIæÔZì°ÂšUlÏÞ‘s®<§þ7ì¹N“s$ÍäæT=xÇ—ó†ÄÄÁBz癊“•Kï ¨V¤çòÃò¤v†*¦¶n9ÿóºSÍ…õƒ‚|·×ÞòàdÐÈò¸I—í©–…äfÕà +* 6F¤AÆhÓécbÁK€B.lÒ9óòjN/†°PaV• jƒa‹ åÓ4H>%*®Ek6Нw¹4!>©ƒcGM00ßM^Îøæ•smêVL™Çl\úÃÿlzhfï&‹ó»Š0?Ч©¸„B¾›½MF xb Tõž½9¿¬?}ò@>8µŸ®ZÚ3.¸Ku«Ç]#;à©ßñ ©hy¾’•åÆê*¸6+ðC¹ Ç:ý|511±1*ì®zÐv{ûÏ] «Éœ¾ôÏ •Ç ‡Æ‡¬>T8nz߇™ ôyòí ¿Ù&¦Š©ÌŠm¿œ›6³l½²/]ß;B^{".!‘€ãyB ÉJªYôgãK›xÆ[^Ì]ȇÀÑ¥{–|^ž].Úâ{&\5{ ¹“8²Îˆ ~sòŠ)yq®Üãîv½ÀZs£´n8êžr²^V ìH·š-/æÚë$BŒ¹Û-Kéõ„°ÐE6¿¶i_XÎyTL!êí?çÅœ|(® {Z÷ìÈ%¨Õ©<¢ôÃÑz½˜óbNHLI¹]lu‘|£—“Ä‹¹Î´çHG6Ü^Ò˃ãÅœ—{É‹9/漘óbî/Ékèåo½ä¿"«—§úRɹ¿(Oµ¼‰Õ¥Å\›{f/Œ¹6qsya®Í,_·ÅœÇåå¸ 1#ö¾ÿ-9׿­ìbÌÁ •Jõ'0׿…]F˜kaÝsmöÄcBça°œÒƼߖs—s¨Ã°Ã‘‘™IÌ/æº+æ ÆÇ%o@pèt9ãzô ‡éû½ö˜~òëò­D8[ì"×A\*ò±uá=8¿spjFsøða¥Zfñl¤Ý70«à)^ž«…­#¸§;/•®x1ש˜ƒgZ{æÌ‰ˆÈ¨  hJç[ÕY™gG¡Õj±ks’¹êãã~¼¶C© ¸ARÍÍÍ`Õ§䣦¦&i˼i6› ®Ž¿MÌÁ •R¹÷À^½Àétz= Ìf³Z,òsNoµZà\0$XjpU€Q½^+Vœbæ‘–o“zz1×a˜ÓhOž<êtÚ¥º Vsøàþ^i‰ÁÁ!°‘¼y!9Ó¼nݺœœ˜ÅÔÔÔ°°°††˜ThA0~üø‚‚‚üÀ;pàÀôôt@ LlÞ¼yĈAAAŽ`ŠÁÉ<Æö0§Ríß .!E¯÷ùyã†Â‚ ' 0H 4jõ¶­[FŽ|îÌiÀý˜±£Ož8µyó&¸H.Ì¿æZik7È%y¿³s݆þßÏýfþüy_ÍžZøûפq˜S-§r0§ùÖAƒ½ýöÛøÖÅ‹ïÝ»—­pƒ1iøÖ dggcY&<<üðáÃ2i`Ö Aƒ¸¸¸^½zEÔËDäö0·mûöÀ& æ}wáÂùî=™>uÊÀ_Z0ž¯oƒõëyüñ¾©©)/^¨[¯þ˜1cÇwé·K_tæôé:ÎÎOõëÓ·o?7w÷Ë—õz챺uëM›:eø›#>ú`ì˜÷?âP-˜»3˜³³OMIª‡€ƒ£“­­­ —q#<ÕØ¿Èˆ0'Sìbå_~ù<¹¸¸©3gΤ˜C´k׎ÁÞ¶S§N›6mÂØ0gÄ–„„„0ZjÖ¬Ùž={8бcGˆu¼=ßÊDa[lœ›»Ø]½jå±cÙ-[=ЬY4V-..–AdL×n«W¯¼xáBӦёQQû÷ï_÷ËjûjÕ8Û>}ŸÜ²y“o@PЪËsrN2ÿ8zôhddäÎ;Zµn£—öµ`î¯b.5™ÎMF,²@•*¶ÉI‰M#ÃʳsZ¬Åø ¸p %Ü%Ó=~eÄ–””þø©uëÖÌUÙ¨L ùˆYÖåO-ix{±’Øøøú.ž¶¶U8Ù›UB'Õ«ãd¯\¾Ìì(;%FÃ~ùS8û ŸUréý5jÔTôÕ®\á™á¡Ëߪ›¹s·¹ô´"ŽÅöL^¶UlÁbdDcæy|ojLXòeÐÓï˜ÛÆýk$÷[âÚŠ¿-5»P!;·yëV7/‡êˆ*5ˆÖ6"¦,)cF©„âT¡Á¢â9âò̰÷|µ±‹r<ŠœÚ¦LYL•ƵÄçîæìRSoli+rwöíÝݲE3|®I¾µŒÜ—¡¸LU‹¯1mîHîKüû±cÇ’’Tµ³/¼YGÑ’û2ÌáC/œÿµZu™–mS ÑÕ©íÔ´iSÍ=š{¾U>ã7,ÒLô?%ßjmæ +W¾Uí­´(¹I8GU¯Yó>YC«­9~Ô–æ{Å]W* æ´<µ~u™ÐJ‹¦Ò0§É†j3ýÊÂ+Ñ«°ëÐXŒ&q™ÌÇÎðËͽ^¹ì‰’t¶¾)£›î“dô­ìœÒÆ$Óntfnç85µio¾‘c$§äÊŸCÜŠ³i”/7ÜBÄôV÷²Bã9¢€‡3²È·TŽñ\‘¢Ö©S9..®²ù0]¾ü»—§‡ŸŸSi}sv=à@ÛÞ½ûì쫊ú=˜?æ”ñÜéS95jÖ¬V­º(N«R!ÖX {;[‚Så×Ch±.ø†’6i?5€¢X››«UðêÛ/ɼ•ïežl(¡a]šs)eÞÔ¸v­:Lˆ‡MИo^úðŠ\Y¤ùå±ÀÚFØ‹HÌ›Q|ηA „ý@=ÑEu>¡ ªO s$ÄóŠw­b±@w´Uã&ùš]Q5b¬…” ÞË|q梎Íþ•¼Ma¡ÁªÂ˜ÓÞ“ö'4Ô?l„¯çÞHOÝߺUK!†qØ\a¹&r­ˆ/K7XU­WßõÆëÖÖ6šDˆú’%ÕÐW•‹—.V­jLU¡Í u êÉZKǽ»+©FŽËÕÕÝ©V­\hŽÑC¢Å>1awpP£Úµë”Ÿ“|+ÙR,™››ù{H"dÀH_’o}ýõ×c}ÿý÷ÐFp-[¶ìÞ½ûuõErŒ­“S¯[·îÚµk:wî\§NpÉf%N+ ;}ú4Kò=›*é‹r_vvq±qž> §Nžøð£qK5 ´æää0kæ—Ø×¡C?q–,~}W{;{V¹|ùšz²/n'»ÐIÈ…ðØñw•‹šÏÝ"¬(ÄvÊa°0÷•oø¾tÉs“1—œ”Ö„ °àw¶=÷ú¡´äÖ­[q8}È`/½ô<N“Ç’e8€ýûk::ÿ¸x1„†î=º;–ÃYs¨ “ódŒQ»NíBy‰‰ \d__?®+ŽyoT‹–­:uêB²[cÑÞE^I·ÀÍÝ£š}5E‰«µ”sLþT.S€“Síò󭼨˜;v,ˆIKKÃà‘ "¤³F…ä‹/¾˜6m÷•›Dú•IÖkõêÕ`´gÏžÛ·oÿæ›oȆA3µeˀاOŸ7žéÑón!‰dRû®.®vöv»vˆjبÑ{£G½9bä‰ÇYåáGz-[ö3.æ‘GËÊÊܰ~m`Pp»víW­\ž––Ú±S—Ç:Ô¨Á#´qÃî·÷‹‘¥îÔ©óºuk/]¼ÈsÕ¡c'uÂe, U!;×,ºÅœofËQѶ§_¿ÿ†ãÚîÚµ &—÷§Ÿ~â¼ ô9_|kMÇÚ?üðùe_߇º?|èPúÖ-[ú¿0`ä[Ã=¼¼ :=r¤k·‡È2cÔ8G’ËÍ[¶Ü¼i#Ë;×­Û¤I¤'/Møöoæ•4JOK[¹r9òõ ÁCjÂe  vªe2¯dèСÂ+ÁBSáÒ1näÈ‘<£ñ­·Þúøã[µj5kÖ¬=zHúuÞ¼yܰaÀ‚ÖÂòLxŽÉ½Â€Â.¦¤¤êŠâ)T?[jŽ?6.ÞÕÝû‹™Ÿ3&¨jgwõÚ5W—ñqPè2vuwC GÊ·Aƒµ¿¬ùdü¿·lÙtð`:Ðá¡ïÓuÙÒ%Û¶méÕëñÄÄ}X8 @RÒþÇë½ví//Ÿ¬¬Œ¨¨f¼s$,¿fÕʘ®±…>WFP×D;Õôþ}ûö>Ü£+‡½|ùj Ï0#3#½m›Xæøñã ˆˆàÚ’8‚1÷:Ô¬5ﻹŠéý=¼IDrR’»»û•«W®)ŽØCزe+µF ‡øø8ž–ôô4lL|ìögþñ<´šk*•únb޼*VŽG÷é'{CùxÜ„~Oý8ãÙ ­åd2¯äå—_I¤ùÙ ã{áÏaç€Îĉq¯ðç<ȵƒà‰!Ć‘‡ÅŸâžðÈ›7oµØ øÆÐ‰½½½ác>1˜L6¬Á¥QÏZ#;çââ5}údO/o~É>zäùþ¾óuýúõá`ò8̽„K²fõ*f‹aJÊæÍ[p÷'&ž9{úØÑìˆÈHfU8_X äû<ÑïÿF ïÚ­V3àDz›EG{xx­]³zØ+¯}øÁؾýŽDÈnsð,Cð}»wí²­jÛ¸q8§‰CÈsmÛ° ø®ä©9x¼!\CÈ`0L“““ÀÜÜoç´iÓ–aÀIqÿf5ËÝ݃»‹îùð#_ÌšáææŽfõ^÷žóõlK—ü4eÚL//ï«W¯ÜM̵ÔIÎuëq ÏŸ?—˜°G÷Ì™Ó*¯doDx˜“éœM. îîºuë m,ìã¤×^{)ý矎»ä „]7`À€Ù³g³ž`ü)>,¶hÑ‚g´1¶ÃGØ3gÛ„{Çåf³`Zøy¥úV±sõ\<¾žýÉíÇÇÅ2âáf¨Äƒ®ŒæÎœöððÄéóé‰~O-þa¡«›[›¶ífùD¦ŒŒCmÛ¶OKKÙ»wOûöýõ,…éÎh!22ŠˆÆ?.òòö‹-ìÿÂÀϧO}cø[%Y'ÄÜ,1 cÆŸ< ós4ë0˜ãð8á@¹ B8©G}”a×'Ö¾ú}‹~XØ$""5%_Áqbª*på÷îÙI®]«vL·nÓÓ¹#çΟëÚµû’ŸÃÔ‚§rr¾4X²ws‘šš¯„hœÌ¾ÿý7%æa[%ybTDãòy%2éÀΘ1C"& Ô¸:ÂWÈ2\)ª"@8, <¾"®!•ô|–.Ð$sŠ`]§sd „< F!£zˆú®ròØžØØm”Ax{û<÷ü ¤ó$v̘úÊÕ«œ'åaì‹aÓéÓ§@!SEÉösrN­\±ìø±c/ |‘u%òÇHˆSðôô>·øìYW7WλjUÚ«åJ ¨8Øv;˜KK=¢×•8À±ì¬ÕX‰Ô+Éu+Tg<2†fÔx§Õ·òÜ˃¢„«V]‘*º’â,Ôz˜Kc µ{¥Zòkm­ÄðÔ—>Ä*õ‘l5Ïcý1—™qȯ¡¿þL ¡]¸tѺ0ÿZó<)-È‹ ~äÈ‘ôƒ‡ë»¸É®íH{ª…Ê¥®im<­Š¡f}—y%Ø×ÌŒƒµë8;Þç˜W|Ør…Oåo×¶ ÷±œúÖ²“]w»Ž?/w£>%VÅÏ®Aÿ›˜û*,N­ß›¿úÛ̼JždÃ-”³0T°²Ï_¸`s³(Ž™×ñ+ þVšŠ,þ-/ú¦ä¦Öñ›IŽ_2•N¯Äp {ñþz©ƒ’-Ce@¦ÏÃV ½’›Ï¨PÍñÓj'O;ßJÀeÒvÄ=$feçÏ©«mÊåÏéu¨* æŠ!Uh4LÊW_•L#‡#¦ñêÕkª_´ð„ÍsêŽðgñ’Eã Œùžú·§‘£Õ:èw¯‘e*YTý8F?Ÿ’_KÜË®‡`GTùêµ\wwæk6jÛ‚9s÷%+3çA#æ­Eu_j:"¦ÞÇ©b9| ö­Q¾ô»ç0¿²¤Ì I²_¯—C„‚š5º1eðçÀÜ’eË¢›Eûúx,/3~%&$XW©F¸D¦AÜ>î8ñprü~ |¨®¯€Fs(>  AÎT¼ Pc¿‘x!?ѵkWÊú¡"bE)åFS‡ó™T,ÑK’³mÛ¶Ž;)IÔ*ËÀ€^¾|…«ùy7-ZÔ©sç¦|Vƒ[;g>58ÜM``ecO>“{úì3ýºuëÞÿ…Z`AþäÊMÕÈ!EÊ•d+9.£„ŽHÅ€_ ÈcCDÏ)ô7né§žzŠt5u¯ˆ˜/¯ï¾û.'‚l¾”ì˜Ð¼­¨\ß æ"""©—=~ü¹ÝÉ“'3¥°øVsÃ4™ü2ÿ;tð’%?‘õž8yZLL·Ý»âál:9™œo…'÷ì³Ï²9R~ ŒäiÁŸþC…Ámä²Ð‘€ŒDvžˆ§§'™Pâ1ŒI&’œ!-†¥þ⣟yæò?• £—z¹KbnÅÊ•ÁÁ!ÁAÂgùì³ÏŒ;̙ü¬ìjÕ®M¾GhÁ ƒ_H«|ߪ×È!ÓÊýÞºu+ÂQ’Q:pãž~úi™¾ûî;\pß¾}ׯ_ÛFÜ„'Ë` !5!‚$<¨çž{núôé€#iV½*@9vnÅʰ°°À”ÈàJ!eñ­fhçH>œE¾•I+!9dºÇBçÏíØ¡½0yMâ2½úê«3Fr8GX$O>ù$µ>úhĈãÇÇÛB àݺuÃíÂeÂâd+Áá@1~ü »w |qÁ¬½›î[—.]ãÞÄñ'À1OŒ Ö‚93ñ­Th8+7·¦ ÿöHO;`’˜Ì^¿üòKxJÜfÜ%¹gâd°’¨1nX¸H~bœ¸jÕ*àÈHŽ‘b,"„DŒ"j:°8ì&VáW‘æ4Ý·.]¶¬E‹V{wïÌÈÌä00®ZDÆ‚9³ò­öÕpt“&~*C¯Ú´ƒÌ·}K€?Ú®uÊ÷­B¼aªÈ,_‘%>ð¥ÈÌTW© ÂŒQ:òåœ))2`H'Ü8°óÆFLñ­2oÕÆsF1z æÌÎÎYUeà„å+Æ4ò˜7¤ZjsBƒœÊ· ¯XH½ŒàôèÓúRŤEƒåP$,"e=WÅPBÚ²œøÜÒe°÷øú”ÑfÄòºç/‚´íÄžáú( „ƒM…^Êäà “ìœlHSã×·2¹k¹/ñ­7mD710 ðFÞ +ƒ•%÷evvN©©®BšM•ªðä®_»F€"lªÔYåœÈ¦ÎÍ$.“õ$ÉË£B 99= æÌ1÷e¥”s+NL+¹WKs!]úúøTV.“ˆÇ,Z`æ9‡Pþ•Ú{©Òr™*#ߗA8ñÿ \&K¿¯JÁ¾óý¾Jå2i$ÃC‘ÑŽC§RpÛs]¿/Wµ (ŸöK«›®‚¢Ö¡&Ö´­iäR/(ËËiÒ*Ì™]¿¯[q™4<Éb|Ö”GxçK",%¹£â2©u_qAÁá" 7†_Ä•çÁÚš¹-­ 4&VDâòŸ(VÅe)²YkU¦ä²TŸóÔÎWÏѲ`®˜»³ý¾nÅeb1Ù ’‡ LŸ?™.Í„PDM$™h k"–µÄ,iX&öûòöõ(lÊVÈ®`[Ù¦ì ˆ6mÚqìTÚ‘mÜ°Ž ¸h °;”jZH][·nîСKîÞ½‹/£¢šò¨HY¤TÊ–-˜«æî\¿¯2¸LRÓO²d?Eü´£6::šŸX€x4ä¥1cÆu%9¯„w1{ ÐʰVÇïíÛè¾ûi0÷þØÑã'LTéŸpÜäH>þpÌ{c•#ÊËÎfcß=öƒÿí7¬ ““#BýžRø,ìɦ7‡¿úúë#‚CBhÆp ÿ/]b)ÔM‚Nj-˜3sw¬ßWÙ\&TKÓ°aÃh…ƒþ÷ I¸F@¡ÿþH™„%{FZŒ&Mš„X  „$¢©0•?žSzÌņ„Ói1˜“'O|2þÓ„}ûÖ¬YÕ½ÇÃÈsøù5üí·K„"ÃÃ#¶mß”=&¦ëüùß!ëT²Ó¦sw¯ß—àƒÏ v‰Ö2‹­ã°ÐöµaÆsàéÁd†ÂŒAf‹ÒŒ‹ÅäO¿šýÍ7uÞªê ׫ïáPášÒ8a–ÒéKáP!*“ÏÖ8ÑÅQ:I¨GÈã%ºZš¨Äðxqä\ Ôañõ2ÆèªR&ùp ‰ÅÈO¢0l™C˜Ž¹;ßïKÏ1Ñ/À¦{Z•«46г¡´ŸJ™ é÷U]QjVä®dS"ˆQÔÔKmð%BðjC0kQð•ñ¢\ •Ò« PU[WO„¦£S7·Vú€±´µ.PlÁœÁLú}écÂù:=åÉ`é÷eé÷eé÷eÁœ¥ß—Éý¾lmi‹3c^‰ˆ:ê»ãUî~_L>D4Ó‚9³ÅœÒíô¨2’Œ›eýWû}•¡y¨áéu¬J^Y£m–ÔÖ4úRú}íØ¹‹ƒnå#禨ºª“ æî9—éê•ËžÞ"稕Â`)ìªV‰ŒŒ¨p¿/±Ö:ÙG½Ô¨`HÚÁ•¼âz•j­)¹¶ÁâÙèŸ=×´\È’¥KI9„†„°†2÷!꣆”™ÆBÖx+ÌÝÛº¯Ý»v;Ö"*\mxÆp„´¨_¡'N\ìÖ`m>kR¿/b¤~E]Ð ¬]¡Ö‰ï“NBÅØ}s-“FV“Ÿ$n"TM¯XkK"è”w©5 oâíå ‡ê !(Íp•f Rò¨Ééþ)Ý, U ßÖˆ›éZ¸p!¢ÇØŽyBÁ„¬LL ÆIò›ì—Gw9v€dV — †p©Ò쉆eRPÜšX>Ü¥"—ge¥ôÂÊÊ‚€‡%i KEáð©¾5:úþ‚ü‹üqøðárx0\8}Ç&Ëâ^cnç±ã9B ÿ3ejeuæTN›6­¥ŒIœM””fqûö «X ÿ…YÂ8á%iŒXª0\vLìb–äµ€)À¢‡M#™%qÄ|óøãã7ið ?/Qß¡'@dGXS<5C=v±dÉÒö:N™ôÙ™³gÑLAG‚uA<[6îÁ`Áܽó­ŽšŽuñ­§Oç@•v€ ¾Ï®q~ …Tkg—°owTd'Szia\_%{Gò­FœÍR{ÌIî‹b³ƒ‡;9ÖÊ/È·ä[Í–Ëtæt•…OV,vÊɱ&a¯òs_fÈe"Þ#Ä] æÌqAöR5 —I!ÃÊE\&“süfÂe*T{dY—àX0gn\¦R]–¸ÔJÃe*yæÌ™-挖,õVcîßF4µ`΂¹¿súý æV­ÞfÕ¤i¯ Ÿ Wí\sÌý͘³Uì\pãî_Î|?ºY൫7¤LÊ‚9 æþÌ:8Ðgf³U‡.ÿx¤goO—ë¹7,v΂¹¿s¼ÙÛÛ¥¥eý?©ŒÃMiU?IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-path.png0000644000076500000240000000170312536324510022207 0ustar philstaff00000000000000‰PNG  IHDREF­Ç©µ¼PLTE þîîõííî??ûèèîkk÷ïïï``øÐÐð„„öõÚÚïààïááïèèïêêîììî88û þþqq÷~~öååïhhøxxö¼¼ò44û””ô¬¬ó¾¾ñééîOOùÇÇñÓÓðÖÖðYYùý__øuu÷’’õ©©ó……ö//ü00üŠŠõ77û¢¢ó˜˜ô¯¯óµµòýÀÀñýÈÈñÌÌðýÑÑðýÝÝïÞÞïCCúeeø((üÄÄñÅÅñÆÆñiiøõ‘‘õjj÷::ûÒÒð>>ûpp÷ýØØðVVùAAú11û··ò¸¸ò““õææïHHúJJúKKú||ö½½òvv÷ÂÂñÃÃñ ý””õ[[ø™™ô))ü¢¢ô22û**ü††öããïääïEEú±±òëëîSSù³³ò\\ø]]ø55û}}öTTùUUù""ýnn÷ŸŸôbbøss÷ˆˆõ##ü99û##ý××ð@@úÜÜïii÷õßßïWWùXXùww÷¨¨óýªªó$$ü&&üþ€€öö‚‚öþþ++üccøMMùMMú..ül^ÂIDATx^íØÅ®Ü@†ÑùÃÌ<—™™™ÃÌÌÌÌøÂÉ*%E±ãi×ò~K«uÔeKn©:Gå+{ k§n;Î…ý!1ãÓ5?#žxžþnwµO;P¾ÒõXÓ7©+øÇt}º!Éå(ôÌV'ÓøëéÐJñ ¬*ê­hUûù¬&Õšâÿ°¸ÝVÐ zÑ`E©¼ù¾j ºaÞ¾üO)Ð* ›„lX6W:¶ºï>ƒnäçÌ”}Wîa˜ôÒL‰k!èòòÁD‰é–ÂÉLùhQ©¿Æ±—ÓU\¡Óʈ›Ci+r(®n.0(ßr(îe½ÑXIYVŽ„¸Bµ\ŸˆÒRJëYeé‹ û &8”å:¥ù2‡’Ç¡#ƒâ ¥¼áPîÔr(¯ñ“„:™€ý‰ çPš¯s(£q…j©çP.‰#Êu¯ûa¸ŽCÉÊ Š<šW¨©aeós ¢ç…ÚÅûö øD”',þÊl0(èª~,®P“5âo—ò¿Îþ‚Ö¯•âQñLö<ÿ!3(ê|L\¡¼²ý×Qèí¬à¸­˜ÃÞ-ŽQ¿ö%¶›}ÂIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-pathstroking.png0000644000076500000240000007411212536324510023774 0ustar philstaff00000000000000‰PNG  IHDRž¨¦WËxIDATx^Ži eWU ¼Ö¾çÞûæzïU½š‡$•JÈ™g&! -4b7ŸÒ*~ê×j+Ntƒ¢Ý­ÝÚŠ~8aâ€ÚÍØ$„†ÈHæ¡*©ñ½Wo¼ãYß^ëî½×ÞçÜûroõ>U÷yíáì½öšxñ¯twm«àÁ .vã,ƒ€•äíM¨T ä„ÀòŽz‡9#çh7ȉzð1"_0rù2Èd@¨R2ìÈ›|ÕÁî%›»S¾­5Òó‘^ê Ë7ä}¨ü2õêJÒòp'-“ˆ¨\gyLÛ¬ pëö…Ãrû“ç|àëQ*³\g-4…îà˜JE€ñ±4Â9îv; *• rnažË+ÆÈó.qñõZzä1Êfj]¸òù¯‡Û ºcûìË9tËPŸÞ íNºy2Ãe2`®Ÿ‘Á”UšmàJ0P¹†¡;äDŽ;^fÐÂ!0¦W‰1Ü„©ÊXínƒÍî4“—ºopŸ~FÊÕñŸŽˆ!Þï_&ºËE¾#öO÷eXZ¤Ž 0×Aßsävi™é#ÚÖ¼THÆÀúÚ:l¬¯É·$"¨d™ 2S©‚ •vfgg!«V¡ÛéÂòò"¬0ygbç"dÓ“3ÐÄyxì±ï@sùF É‹!›\Z]‡ v"ÚÑ;ïÀj£ wÕ`×ä*Üs´ '×Çà{ί@·¹ ݬ'Vˆ,p4°wz?C=C0µ)8³Þé‰ š­,m œ?· cÂÉÓNvÏ‡Ž™„¶Ú¨ŒžÊ÷‡{ÿÜ·áþþÿmÔùŽ6×– VãW .¬œ> Õ añ‰»r‚íû/…ÕMõú8´Z ho®@§¹”Ô&fÌ$dkë xà¾+s€}²Ù5èîºÖVî‡+^¶ãwÁÒcxíµCcã,PkŽLåpûΟ€‹w5`Û¶)˜iYÀ¦9Tàðîh-‚mSc0^iÀ"Ø;W…;Z‡'­ÃÁ*Àƒ'×àÔÆ8,o>¯lƒzÆíŒ0¶¾6ÚýôÚ#YáëFC”¯0¼3l]†~nô6ÓVu-÷eNãµ.,ÌU`s}êãÓ°¾™v7 ‡ V-†[n´qæÝìÝ= Çîû&4Ö—á¢ç¼ì(?IØm·pªùlî~ì›|N7† œ‡Ûîzz¼ S³ûà+ß|ŽŸiÝ·º™c»Qƒû8}rsZ†Å³›P·£¹J«ø»NA’; Ëk¯gðšçïjœ¼1‰ß}¡j2Ø9½ œåºN@·cÔ˜ôK¡ôÓ±@С>ìß/7¬¼”_Þ´Ô„ýËG·//v å¤Ï•Û¤wôLî ®§¾œ¶)í—tL¯+A@ÅŽD­¼ ˧6áÌ÷ÂìÎCØÂY¨Ur€¼‚D­Vn±Ü:˜¬*oeqfv©y²Øq;­àÕ¯zOwæü¡A„.ŽSÍ´€ò6t ­vªÕ*å°±Ù„,Ëzkz¥‚ÕJ…ºh³ÝA^·+Æð-¾„@背AÚ1¶§Ïv`çömXE Ëä°¶º§Û;©Vç2À€cS0|âðmH;…Ðw-¹.PjZž è[!éP& ¬Ž‚t(”O /àÙ(½m7?žù¦”)—S>L.ú\9½‚#žKå˜FZw©©¶É@ØLûDÊ@òÐ{ŸC9ŸˆhÕFû6¹¢¥Œ`*×…ZÍP§MYµÔma»›“&B@@žçÕ'IÉqËÂŒ™@a@,íGÙñ'ñM¯Ëñº—? VW×±â:K8’Ð&|R×®Õˆ®»(|z”c¹®„j« P­[p3h@ÞmC' V­BN]y3åÞ¶^Kô@¯¥/õ¾^Šò)‚X|Î}+TX.,³@:ðû·)ejµ µ6Xª§Ñ~òhŸt­MŸ-· yV™òCÑÇåÕ>rÊazz?ýÏ߀lc}“öÌtáªÃ3°±f(«ÆhnX•;Љëy=N¡ÀÌ!¦mÊóG{W;ÆíH¥˜4,e]u$¹÷©Øúlh¡"¼rùÚº2ÌR½“ýà6%_¶XÏ0ÊÏê5bI„6Á¦õ¡¨†Ådh\ ¨_!I@J€!…æØòÉn¥a‹qÏ"K8&¦¦àö¯u(3¦‚íÑb"ØlPÞ‚³+g¡›w•r‰)” &x1¦ŸP®Ëeí0Ýüóg˜ÑB¿hJAñÀ¸{Ò9þ*Ø[mâšÇ¢ -ÖQêËðS¸º¥pkc"l´) ×$pûõ·|«õuK?MÁ­·Ü §Ïœ XP´f šðÝ{¿+¼IýH Nž<Éß[žßÜlÀòâœ9}vì€j­­FÐT`çœX?Épd0ŽOÀÑGŽÂÊÊ ä.;vL®¥­$ˆç’§] ‡ž®gÒ7“X­–2}™êt;@” <ÏÛ;Ì”^&bЬ¥ âòœÒÍÃåzº»”½©¤‚ Çܶ«í¥ío…úJq½¶%Í'¥õâö÷ÃõÕ¤t¦ð»ŽôG¼ŠPº ¥†´¾}ú‚ yµÔc=*š‚«¯z:î"Í)’‡u‹qŸ8öäÝ.Y<ÃØ‹9sFú“_«fUbÌGD¯V¯ÁC=L\F«Ý’AZ¯Ö©V«‰†âÀÁƒt¹`¼fÜ¿¡Îvµ{ø¡i~nff&¥G²”ÙK¥EÊüþD…5D;¶Ú”â ƒn×xbÿÜíî¤pW  _éÄ É$åK”¿µÖˆò£˜%¥2‚‘¶œ„ƒ ZµÆƒÈS°É2^­×à /„µõu>w¤P úo%HHà!*ÿ‡üCyŽ$8©ñþ}ûall 2YR±€ïÈ.é3<èaÃbe@#÷3ý&…n @˜;)%BG} “Ý+fФHa p/Ó^š/•ñ` ßi=H#D© aØ¡"E«åºêq4‘0–áa؄ϗÆ(§þu…•nz‰0ÀW]Œ–zòLnQßôÿHtáFD·ÒE¡#±Š2]OÆ3½ ‚• DK}T€@ÊBåò:±¬®ÕÒû…­ÕnCVÍÀ˜ ¤•¹PÞO‹+ë§uK0ªŠ4É»9ä@£B×7\™¯ñ$Ò2†¯§#ädeZ²zκYí‹w"¹<†..mÇÈJR(ÑañN«éŽI˜ˆœÈ1vÆ=¡’.ô}³ðb¡bøùøú`oüÄ @ Ó¥/Õ8=‚÷ø¿©ÉFÐ&ù¨\®ò‘7Ńõ™8’"I):¤Â‡C7AIûh´É 2ê§7)‡î %wt9† ZÍT"@”ȇÑøÚ׿§Nœ€Z½uûcîÖaN2>>.œl§Ûíq×¹R¾÷¼ç¿&ÆêÐ¥<•R¨Ð˜iB¹j £LºPEËŸr?#åá’–<ЧT½à”ñPåvºû#;}Ê¿íi‹™NªTó’9t7üzèVXî€úê]$í+4R’.¶Ë·K6í‡Áð)EÓÔƒ ?Ü¥ži}Ë}ÊÅHó‹™Ð§;ï¼,3AL{õLÓwÞ +gÏÂÁƒ…јžš†½{÷ÂæÆ&8yf¬|p¬6&p[­ÙÊpááf†ƒX²Á´3Ké¤"aNwïÞma cKîÿ€²@3"•ú ;íÛTM†€¥×t¯›R é¢h ¾bÆ›7Buàƒb[˜Dw%§ÜÏââ†ýŽ•ÍÄPo‚¼·€ao¯F›Ú’Ám× ÝbHî/i)ÉpDÚ:'Ðï‡Æàƒ=ÈX y å”pº2"{âXЯÎÍÍ#/Ÿ››Âé:ö^Ä4™v:]ä·mvTkUË\`ùÊóµQ–ðGyÔÖaÌæ}ÿ*øÊÙ±ªY<Êö³(O‘µ”Å*NÑ{z.p)À¢Êk ÜâûPØ"¢šHéS?ßH°Pª…/r¶zœÖ×~bر.„œžrèF‹0úºP–nz­7„‰’ž g*~1õà¾r£¥V&Xc³s³stÞùç1³A€{&/¼1Cç:OÖë,¦<—öºAGIJ=52*“Ad 'orb’8,R±ïR"8wVÊsssðä“Oº¾–‡ñ"Z«'¡®T+aI¬D”QÊm‰¼¯´l¥ò7^fY¥¯ ¹8rƒëî§âšòûR×Jz»Ì 9<*p –åxi}½| ¨BÑû”°2Œ0C(œdŽÊžÂÁ» ŽâæL3â6ô…KT&ˆ€¶‚ SW¦ªXÿvÄ¢ãz36râ’§?ýé^â ´·jo Y©+®O[í~¸˜å„BcŽó´òŒeøeä™(\·#zb|‚…—ƒ?:öt»ë«ën}sÏi$×MŰÞË¥1|ô¢—µÕ5T—èUaŒÁÉéàpìa;¸R_U¯é—.Ö âÔôT Wa–÷\_ ¼p=±¥S8¶¾hŒ)ÕW75¾bsîgD¯?5({XXͪ¢,Kð2Êq¥‚^Dcª?HÑøÉ¡¨0ÈTLÅÈ€UI‘cŸø”ˆA¥¦,‘+¤+’ tR*$”“,&KíºÞ ¸·ÊƒC…„ýà ù©OÁ„ÅŽO{ÚÓàŠË¯„f³!ϖ畞#˜‚*GëŸ%/ÈR3”8E—¾ò2– d¢^ñÈ0‡§xʱoC°(lQœGQѱbÊ z8ÉSC—ý¾.šQÄ)©8+«uŒöI?_¶ Þ‹)ûúú`ƒ@½ð‚ÃlþÎ2@¥ˆvjjŠõµ¼ÀÝV{±éža›:6"˜²÷ Hi>ìcåàizSÀ*Æ sÉ TЖ¶pÒRR-µpLN_VTƒ•ŸUÕée¢3\mŒsÏN—áúkjþƒçj䫜´,}àRÿ½ö ß—uÛäkn_5˜{O Oõ1 î‚Ü ’-õþuÓc.è€Å\"4†öXÝm£Ù€‹.ºˆØ²X–O±&Vý]N9‘ÐzW_uµÔ󪫮"ë7ô!ÃHõ2”U«˜¸.‡žÈä“J^¿YºˆI"ê‹ÿ{j°LŽã2ˆÂBƒž1h¦¯OYs¡+Jpw\›Ò^ fU<ÀõTº¢¤¹ˆiB‰bdœ@SG³‚N53¹PUóÐG3¡@2rޏ:þ‚ãæ ·¨¹PÜR›ÔÔc­’æHS{I/˜2ˆ.PîÛ¿Ï«ÌÐf%?k^й>̹"Óƒ|Ìí±ås®/¿Ï{6ŸÂN»-ô ªšÉõ\Ûx™íé´=Íi.Ð{™©äQ<6Ö7œwQù£‡Á‘U`bj‚_ßZW+=ÐÙ'¹VV¯m¡«U5X ®ž§Î>±zÍc Lë­p×Öå¼ìTº&pÕ× DÄí`¸òÁ“úõÓaË’g*%Ÿ (ø\ˆš“òþ‘Ö*Õ –áVk{ÇæçÏ}ösafv¾ø¥/2ÓÀŽ>â1ÈØoéä’0Gƒ}3Þÿà–ÎÛu{¯Óê0w,Kq—ÄHBÛªâœTŠMZ]Åòh©%ô÷t @ÔTt–ZI‡;ØOÏËꯢ©%ù.g§K3–a:Ö/”+`ÔhÁÉïD}DDi;±è¦émû(Zò<6Lìñ (*÷‡.¥êfÓIã*2¼=ž²Úˆ(Ž;ÇO‡©ÉIqæ:yêÌÍÏY盇‰=Ìî¹çX^>K¬›¦<—U¡Ñؤjõ¹Ðl4d¢üÍ_ÿ5›7Ñ•W]/½öe c¡¬cº(¡N,‹}I.¦Ö)ER#– †›ñ=ʆØ?:‚ŽçH ˆ£ñ×$ïcÊ $L 9õ YšŽŸY†å•UáÔö-Ì'˜SŠJëꯠØ7ÐmÙyìÊ­ðã¿™y#ýŽ»ðàƒ6BÓ㌕ƒåDðÆ7¾‘-HÄ逘ncΖ¹_¡÷íÛãõ1!§~ðM?ÈæML2<£ÂüÁ²=£KlÌo—œ}Êèu@èì§œ}RÑå ©àÝã’‘œ}"'l­h?,\´^VŽž8 'Ní3c¸¼´ &\|pŸ:'QŽÚÊD±’¨ç#8û‘?ÐË”Èý{³É“Ã9ûù &…ø& ‰­N_ñŠWp5y 1ýÊ2<9ß¾°ƒ!ôží´ÅÖÎ ò@Ä ö‚uöL“€;¦ý Æ5aw³„¯ A̽%*¡Ýl¢€eqJŒŠpý¢péÕk©zŽ.žÛ2KyOE¶¶ºÎÞý,ÃSÙ( ªò@•jöñí-—CãªamYæÊNâ Å – d:SRÎJd¢’^à–ÒýPqÞåˆpÿÑã,°;æ¶ÁþÛ9>r ãœÛFD ÖSlRº÷‚娅ñz ×›°wÏN«±î²›p§¤:áâr¨Ñ÷FS‡w‚Tm§“YUaç ¶S"FˆÕµ58{öl)²*æ \3"¦ñÏuó.±”#„²€¢n^c3–e£bFN)åŒä}.H=¬hî£J®¢Â[¹«­¹Za÷?q’ÚÍ&XØ!6ýOœZ„iKÔÏLŒÛób|+ÑË,P†qÐïÕF Vß™«ÁáC{¡#‡JÝ5O\/×6JÔk®â~pУNÖË,Ô4ÀÕ)“ä`ŽÄÕbd¡Îo±¶Á”Ù* „(µôíêê ñBûÛÿíê@ð½ÌTÈ҇ɒ¬Š(»¶Ê”«%¤lPDãÕH)úTŸ[-dàFîþúú&ÌÌLCç[ß;qäbXßhÀÜÔ$t½ü)`3"Çܯ%5XÌ]‰êgvÛ ‹$*i£Ñd9–Ð19œûÆc’! …;j}ݤV>*ÕW\ÏÝo¾–U{Á|ÖNU{98}å+_“§N±6BTïTŒh8ØÅf¶Íx¬&û,ËX&Ë÷Ä}ñ…/|!ìÙ³»o€'D]p¤OKY²Øìƒ¢õ.wæ= àPƒF”Dqao\'ÌÙ™÷È'a~všß¼ Ö÷„=‡ædiÐM}1$WÛßOÖ}ÞD÷ë:›Õ>Lñ2ÓÉ»P©ÊbZDazäêE —ÊpSk–ä8½¦´U‘R*Ö×]nêD äø“Çá®»îq)*á{ÅTÛã•I8c¿ÏÔäËðx°°éÛåÉ÷Ù¶Mâžø|ÁõñGc„!†ÇŽ=!ƒÕÙØqÅm˜˜˜´EWC¥^Ñé,uÀr 4F¹Lƒ¯`|dŒŒúâêRˆ -¶íš„ÕÍXºÿ>¨Üxœwåå03w)tÖV™ÆHh<ã4Ch.Ú¯”ÕÃúAùÃ!BÑéiÉÆÈõ½"Ë¥h W·<Ïu ð2Óúo:®0j®ô/Ð`Í…jp”É1(æÄÉSpÕÕWÊ ’û¨_©÷ÜÚú*c<¡Ãήž• ;+v2Y·´¼ãcãlDÄjsÛç…ó½úê«aÿ¾½Å ÆŒ­´ñyäÈay¾‚:΄7V^€$àøä¸||‡8tðƳ<‡¥Ú‰W”?)zP@¸ØÒTkÿp :·'þù³Pyéµ@“ü…cÚT:‰Mµu‰ƒ~ê1aa Á8zvjü¥ÏvòIN(XÏéKÑ V£+ÝdQANä£\*\U»¡ÙƵsÊYÅÈð4 iiäűô&qpQ%ߊŠ|¿ \Q¯ÕÜ‘±[³Ñd§0q[Í.XæmûöíÈ!$ŒAW+V&ÖÅÖQ 666%ÚiØT4ÀBQj¶[Ð%J}+\5{²›Ò$²0 Þú«¯ÔPFÞ (sªT ÈŽÉKq4ÿ±]_Δr"4èýn©Õj?Õ‰UfŒ-#ÎI0YîÞI"—j÷‡†xápЩ*©# HÍï)“;êÜ;¢ã –cî@é 5ãžxO|ü€<•·ü´>óO0þoÿ TÊ ,‘²g¶xéú„ÁÔDV—óqÌ8h ûŸeÕs 9FêÕIèœóE¥ŒFdžÕO4‰Tb+†€Ud7ÝøeÞ?ãYO ÿØ£³‡˜åÕ(„[]Y±ñqLvé÷p+ˆ–\ ë>‰ï¤Ü{‹FÜUåG¼z#ïÚH"yb¯ê*È?SAzøa¬å9¶×78V…–îÀ -¢\ê#ÇòÏ :Üç[PÚÀ]$¢pnßhzc.õT'D=ɵ¬’‰{ŸS œa·°ô*‡äÊž}t$˜i{bÌàúeïÄ*ˆûF.Y&>vûË¿¿ûåßÅ“OœÄJ–ág?ûÏxÃnÀ|ä#xà _Â/}ñFü»¿û{¼ù+_•roýú×íõ/âõŸþüä'¯Ç»ï¾9€º/VÐÈ‘‘}¸®®j%àú”‚mF±NrD?Äñ•›^+Nw+ó!;£²K/°N']Fí²ÜR4¥%©”3GÊXÍ‘Gmˆí :ír{hˆ]Z¤µÑ‚œ\Ösö2£Ø0+õŒ£-’Ú/iÉ"Þ£tåÑH¢6»âÀåa&‘ŸÄe—]"¢“Ʀpµä8ù;wÂâÒ"H¿döxŽÅ*Œñ”®$âJ-­•Xˆ–>̤ÆêàB„C‡°P£G›©¥n¸Í?MIÁ6_Vˆ6TOœ„Ö¿oúÊ肤RÃä4¥€ì±o,>tÅI´yj¶Zbܘkˆ|5uÒ%[è!ƒbqKµªñ—SíIy¯÷ú‘(ÿɳ“‚¶ÐFxšPu¦A'®CZ›+ãÅÙT2¦×ž=û÷À;_öNÀ ÒÜ®9f²XøËmå{ëc ûĽ{öúÉëÅE$þµhbÚºß1÷“¤eçJ‹”Jæ j.4®78Xóÿý@h j6~çwŽ\ø¬guÛÜʾ93dµêë~ÛWÌôkkëÌ©Ê1wZ"騩opV•"üÎ9ÑešLà•°GŠð™³\M¶¤ãõ*ç NR³=îPõȨƒ†÷s{æ¶ å6ý à'¦×PÄ×å9‰HD_ª£w0U@ÔGQŽß‘ñ£ gèÞAý_ $¨ñ…d.àL4?øŽw lg¾ô¥Ðþ»¿‡ìÙÏ$€8ùVš5§àµå u X‰Èw rÔ£I/@UIRRWEE€ÕJ•e`@9 \MÊ{=ñUÓ¡¢ùÀî=€y×™˜ñ™@ˆq],W$­gàäˆUAcãc _c`I k¿ ö–[C.DÛÐ^fñâKÊÓ÷ó Êˬ‚HË«ëpjqö±€¼^‡'—­ÕôìÛ1OmçàDäŠU[Ñ—ás¦Ä“–¬™™Ú&¹-NY!úüEÃm·ÝFÌí³E³Õ$žœ¼¼¾ü/‡ïÜñÚ°´ñòò²`ÆóÎ;®ùÞï%g¡Ûc”êOñw HÛªK­7}'U º {y.¿¢™{âÍE¹¤•Ò9^Jʉè}i ¡+È ó¹9ÛøŠ•é5®½ÆlÈRÚ¹ QŠwÆ©í¨äÝ­lg¨§—¤dQ{Éau¢Ê)—”ö0Þ»”¿WÂA6™ÍÏ«7Xx¿¤¹ 'j0„%/³p…ûE¹k8¦n„Y­«9¿®C~ß}€ ;avçl4Z(*FoøšŸ«9zݺHø&æ›±ãcÝ"몽WIùoxýxUàÅVÊìæˆ-€ërå•W²6[20™ÁðqúKwíI J‘ºÔ¯V1^c³é½ÌúfœŽ‚-’x™¹—i«Ì>ݜء¸ÁùÌþú¯€X½svd¼ë]t–-Ex‰k4˜³"VÙtµêX’ê(¹®”88#ë ×lc’±&¶ˆõöÅ€¾î,Ã"h‘á¦6h”äcP§$tp “ÙÇÃ¥Rù” †èŽÃÚÍ7ùöw ñ²WÁv«Y¨V ,m4aïîÎóFU¯ÎìH[)@±®xþ¶;DöU¯ºÎS‚2ˆöìÙÅʱ—ñ6‹'§"ô×쾫q©<5›úµ•²ȹJ¼æ3SZ5f h`Èg*Çi’Úàà+J§X\D\]…|ï>À\:òn³g/vØÆ¿Óès¡¥Ä>[×"s±ˆÈp;©–†ž*a ºP±r1%‹atäj‚ºÃ~„+ª‹%wÙPñ hض·[-¬[ãÍí­&d÷Ãñ'žjX˜ß»¶oCŸÀN{^%x‘æHýjÅÐðØGãñrÊr7 Ý@,6äqÍæ*ÓG|­XFb²o±U„;¸?T[‚DÐiµ`}ņ®‡Éÿþß!ÿ³?|å« aC…-T ,9]‰îÄ¢‘<†SlÒ¤ô)®Gyîºû.¾Ùó4Û»þ×ÿú„øÔîܵ“áŠÈéI;È9PãÃ? ¯²u°qó Óm3"LמݻÅÓ¬ÝQØ5?•Fht jêÍÔç"õ+‡SIL),‘œ¦˜¨¸—qá­&ä´ËMåλ c¹ÚÊÊ*4~ù—Ø{2ŸýÏ+èq{<Ðhç g!µ%¥If˯Ÿé| irÊ]Çæ‰¨IöJa#1s1`v*z@à "QœÈÒUSïû˜~×» ý? ö‘ØÜ5cwfJt§FƱ±¯=&b&g)œeRN­Zçw…KåvìäzŠmݲ%{ªö¹ùíÛí {„™ä,>uútíógÎ,rÎ æn½ÏJâf`´¦‡A7‘Újн˜ÎZ„$Ioa8âÈ!ǀ鸃 {åP±Ñ‡Ú¯ü>É_?Ýû€:35—^Â9´T'ÄÔä´ ºÄ¢¼zv뺒3|è:™ašÕ[ Ê[ÙE@ú.`ÔF« ÍÆ&{\ŸßSïüE¨~ð/`ão?ù/—ÏzÖ¶ìÛ2„ÊËÃ`kxøðaö½CÏó'u¿îÕ¯¿Z^:MV‘%cõ:÷“y¼äšk"È»9I¶Ì(`Ï ¿ZõÁ¾ŽÇFÛ&+r’ÿ†ßt âÍÁ Ïhp©­7G†÷à¤Îk^M•ÏžÌúº”“ÍÍ~æ3Tÿ×o&Gœ Wëaˆ½ßkµ:c Ý¿(-öV°t@YV%+L&DùºVKà+‚Ñúè¹¼ëÒ‰²x‡VWVÉr™4>³&â4üÔ½à|ZÿÇÏtdN&ÎC`(<­ÛVõןh"22#m±´*½à/ ç>÷9䕼vpIXcŽ‘lÐØ¾«rjWéO¶Ö±K´ì1rŸ£€k øŸœË/Œ­»|‹ž €(iÆ™} d÷¥)Có$µ‘x(k±sáî3]sv;ÌÊ[»…-3ÁM0(ºGÁT€j¦®èÀ û£lLp Ö‘g”u:9:?o÷‡L˜ÛÍ‘dÐIŸYy­´xÌÉSØ}îs¡a3Âæ&£W~ßcVP«Ñ¡s™¥û#Ëî¸>"•JDXYÀH@o®.×ÝÄÑ搜L} d<'ÒÙ§°å¾ ‡a‚÷9 ¿ãjMadû¥©¤‚WåÞTÉ>V%¾¬¶VÀË íÝËš`Øà KW>}=ÌZÕT=ï>…Ã8@£Õ²3|%qyŒ‰76ȼø{öíƒî»~puжú®f~ª“MTßÒR›cÞÇ\áôØãƒM”B¦_ÚPºå+·§ =ï¼ódìØòjY&ZŠÅ3g¬LoGì’ÉéGexòøq`FˆX“Âr@Rü¢„خݻ`zfÆX5}—¥VÛáàŽÁää¾¥k¡æ2KB—é;z]ƒ-VdÖˆ1¢åî£Ñò"ÀK_ð' o~3,·ZÐþµ_‡üòË¡ù+¿ÌÌ€&à‹•ÂcÇÂ7 ©oR¼ˆa`GäD ¦tTZ_4Èuäz‡[r´s8´{4-Ø5;g,¼éÙYÈ[; 7Ó4X¢벟 Œß÷A7Ë a±¹À`lÛ…-ÙÚ‹.VÛõm“ÊÊ`¼>îa‰Ò&I±iAŸ§l!sÊ"% ¶ˆ„=¹ÝòY1m·Eo+Ú‹¦½^©ÖnˆAmÕTä:urÓµò¿³,rQàQ ‰ Šhëᇂg=ûYÖâe¡ §@ÈLÁ¬Ä|ká­2 Å „éu¢Â²!û+ ­@™þèý?b m;“2+D]ý­ß‚ÚÌtñLjr*.Šë›ë9añS,Kz/åu´ÞZßx ú¨é2Œ¥{χL-Ó¬ŠÍÜfÞL¼óráàifš±tì„ê¼êU|°Õ,[ÇœÍJûÙc¢ø2á¤y{Á _–BL!H{–––€ƒ6ò’861+k+ËrÔPÑÓ6[¶QäÁ)qóææ™ia¿ZÞ‡wô+ ÆÌxúô; w•Ôþ™Œ¡ÀÄ õ U´Rè(w¢½L˜±yNèáKB8NþC?´o?’]zk ÷Þ‰µ³Ë`ìLVív Q¤ø’®œ%éHÜhÅÕµîƒRÆ'l)ú˜Æcö^Ûp`÷>òèP«¶sV=-`æÈ‡ˆ gyË òÏÿ ù÷¾Z?ù“€ö9äÿÌ”k©¾E]®F©W³úȤ/5.¤ào`„¹˜bn’Ù0Ã!W"ú~üž§ll¬{¦Bf()çäLÞ ‚|C‰Ì`™VØiéžåwGbj'|›˜¾{·<18:?D]¶ð­X¥ŸÐ‘XàÀŒ!äЦ×^pÏ]Yй ì7~êVo¹v÷Ý@ûðú!ýjr‚Í¥E–²{:JhW@pCéµÂF1=B9D!!ûzFTkUÎPM s3€Ô¥Ífæfghr¼&ª,ƒ=ñjÎ3Ö¬ ö®ÿ·ß…ÆÕW±†{{Ä¡’èa)O.údÇØç]Œ3^÷è."«¦”"×N²ùÌÄÀ 3#šS‰ïïæèObRÂ1µQ.#_²¿ B¸ìIÊRô}.x*ß# ž>Î1)CèfP² €Å"»÷È2–YôÜzÚÅ0f‰ÛÚûßÝk®êüäÏ>´.» ÌýP¿èi  juÙc· X©öŽÙÂ…u­½µg`83€b<½’.DôŽ@l5"LFµ‚0¿{;¿ÇDuê?š“0EüAКôo~úz¤·ÑTFJŽ©3?àMë0| ¦p‰$\ÐØ&‚Á$ô‡·9tý¡Ý’Çâ´4¢<©Ï˜øÝõ®fóv·Q¤Î¢”@Ï0dúë]Ò e¯ßN1¡ÜK²zb↾aöØ0d“(ùÐy×ßþv¨^~Œ½ò•ÐÜ¿Èf”É>÷yh|îs0[«Cëoÿ„}Ë[€~îç„+Îï¿—ÑGºò-L9êFFá¦ÑQçE÷|ÿ Dô #Ä—}Ã^õ XýÀ ûô§±ñ¡ñ€“)B)š|á€îM#F…‰M˜Æ„IŸ.ùÁ§’ù9#Ëá½÷Ü'Ýõ´K.F1ygÙ¢•–IÒ>H]× UÒp¼Ž»íwäöI¤ré°ä¹3z.3й&J=%ÕZ¸é2í÷Έ-pñè1h¾àùýÀŒÆþ!´-gÕeKŠFr‹Y ‹Zì€3““=XÖʬ٠ÖþÕ‚µ€”ÙM•  Ùp^N9OÏ¥µÿ0^n™+f eŸ÷AÛÃÇ Pµcìíï€æïÿž`ql4Y„#'t‹CÙ—ÃÕR!ãzߢÑ(ý²zØz?ôàCœ2@0ô‰'­øÄfsü™Ÿ³é¥Ž)y„¹K4Qùšb>d)‡_ú¥_„—¼ô%l|‚såʈbÊ$e:àFÌÛêaÁ»J³-¦aOI*³Hýà•±1èXYR‹—X¾ÖlAkqQlír&œÛ-³+„F'”ÆÿüŸ$>‹Ípýõ_úà«_tï=@_þ2ÀßÄ@ ¬¸¹á”1•$Ú<öÛÁvm,r¹•r‰(åÚ‹ÝtŒ[ºÖ¯ý´~ægÏ,Ê s.v£äFS̬hÆë óTiŽ)„qÜHìlE*³pôØ]r÷ÀÁ}ÂÔ½û=ïÖ\&E8=.’Ô?…)’8ƒbgXJ-Vv‹J3tÑ\­êÊL$õ¤B§nŠC€á— kGW±ùPn?ªY9Kí|ª/y‰$ é¶šÁ –š '20< ¯ºšD,žq°èÄ €Ïßô¯ß °¼ÆÒùUWZ ö‡YFúa5í¾ÖSÄÞô›Âs^¶V¯Bõ 7PûGšïy7¡0 ÀÁФCøÕê%yÇaeƧO¥$õiá ‘ª' {˜™víÚ)Z{Ná‰Í¡ö8@&0† Hÿ;lå—d¢èñ¦²PC ¯i*"xòK¡úqe&™æˆÃz™EMÆ„£ŒZ ‡QÞ†Aðㆊ|¬á‰ßFòÛnƒ1«ãì¥!³Lá°Ð›H´Ò©NÑo¾÷ÈíZm¨|÷~ÿ7BçÕ¯†æ»ß dÃèÃÒRº¼•s0x‡ê`i‚|nx0€Èêš?ÿï„‘À¥e.WUa©ÑÆÐA'“ èܘ‡sÒÊIb&Hkïü]¥Þ"hWæÊ€)01­f›'÷»»"Ö5Î0¶ê¡ò eNžWµ@ÎÉÃML[L »…¹g.r׸uöÆ”©B_úÕzK–$||0æµ…¹0,G{ÆÓ¡ù‰O@íÝïÉg> [?÷³ÐþùŸh¶¼Æ %ÔYn¼Áë19»äNÖ>Œ#ü«7Cf=åÚoÿqÀåedZÒ ¢rÏ~ÐãP”©OW±¤ø¿× ¯6#Ï%4)І5÷ü+VWñŽïÜÁ—8NLN:Áq[ ñ€Û½k7rÀž•ÕU/wÅ Rîq›\Eø°œÓ\±5ò1ë’š÷Ü,Åw—ŸuíqÔ…OÄíón¹™o¦‡'ÕõŸÒhðj¥[!d0–Ò ö2Ësâ Ž­v‹g‹bõ ‹ƒ>Ò„ó2«ÕÀOBÍ M[¬÷Me ,¦b !½Ì<rçÇbspéE/¸á ÿwPûÖ·¡ÆúaÛ¡²uÚ  ]fM…óºRUâ ·ˆ_e~Ž¨Ñ„Êý(Œ¹PêH¼ÔeË!¾Ä @ú£¯—[’ÑÄàÀû§÷|;—Pñ2J,=^ó(ÎÊÆ—Ý'OJ²”_ûµ_'öÅàzl›™¥}è¯áÃþ|ø#á úã¿ZûH.ÿï|§…S#ަú/­•ô[ßöVø…Ÿÿb¿["°V͇èÿß?­I.Fd,ñJ¦²\2”išŸ„þRLÔ/l–û§:R(ɾҽÂ$ÊËÑÌÕÄÞ>¯®â 33=î‹Ç{~Mœ‚ §D.Õ«åb*89÷N9ÁZMJÿ«-?Þèw~`Ú–c1Iúôà±ï2ZæP¯IÊhµ;0óû嘻ß÷JyÌpàÉŠÙ*mÚn”ŒôLàšÁIô!Že’–­æö¬ƒåÈòì…GŽÈí÷½ï}læ®Ë¿1ð#Ö>ðÿúá F­Z“2>ö±9 qð#ûÁ~P`ƒ†/.„ïc˜Ñ˜ÀtÉÌz¬(*Â@r¥Y Ó i jJÏu¯'DÕHyN8Ô%”ìlÃDç( "tÜ#G™úó?ø¡·=ëYö#2f’Ê+éñC¢‹P†!Ð`Øj"‰Úº\±e€À¢ñ D¶Žfì¬qá˜cÃlç<À;kÖ#¬ýš× ®­²+—XSxLœl]û•Iëéô>hŠ Î ¾N…˱ƒnPHƒùùy|cyÖ­¢¤­U}è|mÙêZ®÷œÖ<‡ˆüÄ€œÈ«Ìâ÷y@&‰ßŠÙ›<ò3±zVWcþI“c¯#þ(X ‡|&vÞ\—&°írGÓ3ÛØ¢—kLØj¼õÇ^}åZT^‚N7Àô•õŸ Ho¥õAD– 3GLw ø‡ ­ßœ9EôÞ÷4[Dµš év·CÅÉ”Ææg)ûä'iõË7<ÈÙçØÁaØ~Ðö+ž&ô•F"5Ô§û pÕ ‰¹r&\ ²'r\¯Õù>/×ÄÎáˆFü0H”0ã§nÛÍ[Í^Gcø~VàX¬(ÏXk­¢úb†zH£ä¥?½#¹¼áƒøÁ‚û'ÿ‰äz •‡ 6¨JwìÊq~ Vs ¦h*mv¹Öá€1• ¢ÝÃþñ7ß+®T47Ûƒ‚Ö‘@äðlRW=îa Ž{Ál4ÿ?°þÆ7¢p ¶ü¼ÑÀÊìV>ó¬ÿÍ_cëOþ›ç¸¶†d*蜩p˜Í+ôŒ¾Xd»: ¾‡¥¾º‹‡¢X>»Œ·Üòüê­_µU^“r­Ù”Ü¿÷»÷r¨ ´ÙñÌé3hé6´´Z­¡¨À¸ë®»öý÷Ý/ßåèÑ£xúÔi\YYÁ‡~ˆC`ØÀwËwK6ePÝl)d¢Jý“<ý©P•4¸òè‘kÑÍ=åCtÝGLŽñÇl±‰#Ê™u³4FÎqnŽm~}*Ÿø_€Þ4ŠTå£kØ` )©t–É 8?të-Pá0üÖ©ήJX‰Œý\ŸýlX¿õV0Ï}tOŸrz`=”™4X5èöIœ]„Ñ·²ï°Ðdœ—–S,X &>²9üÏXÚÿ©O~J\oþÊÍðÝû¾+ÎÜ7Þx£DôÿøÇ?.0>ü??,äÆõ×_/†£·~íV°ƒ³î _øü$ÕèG?òQ…!ÕV ë_ý ²‹™ }8•d»cïp>ä$LÃÄ~9jåâ’ lˆ7¿ (Ç͵5é0t> L䣵T®Zš¯ûò—šLÂ_@`áUa=À£6.àä~ÆÂfîtÆÕɵ`þá f Çì`oX-‰a•çtÍ*bš•Ùýh1I­\¹¾Tñ­l´@̉Yú’i¼ýûöÃWí`1ˆV“¸[˜†ßxï{YDdU]¿$Ò†7[ázî´J϶ŒCxüûÿïå™÷þÆ{…Þþù_øy¹~þù绨 Oÿž§³¼Ïò|ï‘g ÆF¦ EZpÇ(èÉ£åÌt޼°ìœÖ7»8±£ˆkùða¢Øa¦K‡I6¤VÃZ¬AO…Æ©ß9½Ñ(Ž^×ò¶öú‘Á‡¬ ¶× «zã$0ô囡»o/ç¢êdlš‰d5ëu!œT TÀ[”,¨~~´-ÖŽø ;búôò—½ÌÁï™ò·6[|Ìæ^,cP4`ÉË.Å𣉈‰Ÿå(£­nìîw~¦Ñw»(ÿTŽ6&²H#Ä Ê”° ÎÜ!m'¦bý©¶cÆ=LÙ#ÿ3È~ ÄqíÜP†UÒ“í)Ÿ7Uˆ]K˜Ðä5×PõïÿåÛç ]¹&u4Æ!œÏÈV€ªŸù'ûÛ©]­Rí¨òå› í±˜±Lº¶üôƒ†ÚcƒŽys6:¾—œÈå‡4ü&}3OJ¼Kýë jn4åØ˜ Y Ú¾c;í°?fìàä½»¶ƒ¶ÍΑMÏ@“SSdõÓáº5¾%›*Ь³ÙåÛ^8¬€”•ßëׯàöî$y D9j²©±\Þ#r`|ÄõÔyxæÂó:70úCD‹²¾å¢¤\·É±ÅtÌÞ³R›Zm¤íóØ~ÛÛpì­oÅÚý´½%ð)ïØ¡cØfq³0áÃìÂþÏ8öú×#ÍL£H¶mÃ|ÛŒX5?“w…ñ!¬F‹âN®?I~¢Ë}æŽñ‚Ñàé¹ûgÉa~õOÞ…ïùÀ{peù,²XÈÒmø?ûsüË¿úk´ðK7ÞˆV¸ŒñÄ?û³?ÃOúzk t ¿öµ[ñÁ°×> ×o»ýv¼ó®;ð~k‚öå›o’ëþçÿ]’j½ŠD=æÐ`M¨ ‚k Æññ€Ëy¢÷Ki>ß.[ <¥C·&:q@”ÑÕäJŒÚÙú„(OSÉQŽmØ…M“”10†EÐþÙŸ²NácÖŒ¾r÷ÝÔüã?fcP¢ n8­DÈZÈd.J›ˆˆ ^uÁCA㣅Ök^ pìäoùaÈ+²ì ÅÆì#Ë`˜p÷9Ð ÂiC]«å@{6Ð3îñ%Á¡[™Â¤Œ,3´|z ¨ÝUªÒÊÒ Ì혃›oþ2{â÷7\uåtçwÀ¼¥c?gÍõ-­F—^v),ìØ÷ÙÀö€Ï~öŸ\y›ÛŒcÒC¶Ÿ˜¹@ƒtÄjCŽX N§Õv|d®Ì…&ì/D &ä(”ÌM2m°•—2-°¾¶ëÑTn¨Žê‡95+é[Φá¿zS„iÖrÃXeÇ0‹Ñ8™°e:ƒŸM‚1ˆ!ˆ£½¯{-Ò·n‡êCBV¯!}÷^©^tDô·€b@€¦ „È~ȃ1»éFèZ&ÍÎAÅÚÿåßÿ/pÌÚôÁ05%é¯$2ýïýâƒ}ò“ˆÍ&ÔÆëÈÞW\''lEå½°HÓ.š²ƒ´n*Íg¸EásªÅÐ\fâ @ªó ˆ'êyž‡ÿöø¿fmïÁ½ˆ9ZÓÅ÷ùòXDbßUâŒþ!<ÈmrþÜç<—LJ¨•kìCᣥ¾â寀ŸüÉŸä6H,©è¹EwØMMÛ5r@Á/ŠldÈÀ“Ë\ç_xÜASÓSš'?`;§Ûs“ì4:Ì©¹ç@ŧ%XìOjõÿý…X›ßû=Èï¹*Ö4_Ø fc]ìåZox=°Dößìý_ø«þzä?ñ@&¢-¬¦1PË g6Ê]y˜?ýS€w¼j6l¢Dd’vyB IÙý¸~5)»cŽ^¯T%ï±*òÞ3”¾åAÖ’ðoxõäùͦ$Ô…ÅÅEoT*^{VCöu0X‘okéXñæcàùj 2ÜFŠ„ÑhwÛ²WãOŠr°™D,§$¨EÒÏãhöxi\4*Ê Òx6ºtíÜÖ×ÕU‘£a,Ï ïƒ4°"ÜdÇ›å¤Ë:c%á²€äø½¿Nè¸d°rê¿õÛNý•[ÿŽÎË_–ª†Í}ŒD ³¶Î÷Å©Ì8t¹vßCdQ !ü›¿!²zbxþó¬i~ÆâŸV‹-Wˆd]÷‚ꋼ´n${¼„^±ƒ@Ê'>Ÿî¿F¨ÄR`EÆ^¼„²%†æ]HF®«ÎÊmçGÑçs:Ý.Ièˆõb°¼öu°a­[Ö¿z ¬ý°ñùϵh¹ü"ïø¼]Þ#Ü8$áë¿À*Ò鯛dÙ®¹ Ž@”“æFºÁ‘Ì»•ÄP=¢ÊéH1G8&í$5 B1¨•œ±wÞq'°i”e dÿµì~Ï{Þ¿ñ¿a}Þ ß´}Ãi>ú± ÝúWõWÜvÙ¿Çšý¦õúãçþÁÊ5--nçßßÈþõ-a4Ó»žž“½QswÔê†ojÔ>QUcÃl¢Ûç|&{r{@Ò_Èë•v†håHh™…p @~ªN¢Þ±÷äÍ*™p¶yÞ•k…-%S³ŸoI„Å¥%é·C‡ 6ÿå_þåâÚ.˜î‚7_ Âà·[/?fnÞa— ›h(Þö¶·ñ}k³ñV>ó2=8Pºâæ˜Æ3Š®a´¥S±GðZ‹,Í|,Æ–ã:xO5T}†j¼ŸkMT9ãí}p݇Ró#]Ú1wÐU2Ä\s­^Q8Å8Ã<øØÙœ—ëÿ»ÉË?{ë¬àp£›}ÜEi7s DÿŒä=ä¢É,ûâ$$¨×jpõMæ­åüƒyð "Ÿ‡dÑÆ¦ßÂÜ÷)¥xÀÊsDƱ²dKxŠéïÆ`âtéh0àÖB"T)ú¸¿NF´½ƒ¬5Õ„¨ä^´=ZœEnˆ[2ÃjX\TÍGˆ"ÊÉv ÀBÄŸ˜c!æA?Hò_Ë‘º›‹vÂvr9\-òÓ݈ðƒ$¸ò*ªŒ‰¦Eê#Ï€k=„Ü•G#mèI^jGÂxÔ×¥\(a©Y UQìõ~,·£œŠOMÑ4ÈO¸†î<341¼;̆Q[ŽSÿÔN·ÍÄr¿ÐfÊD¸L‡`Ýk·~ *69`{ƒÓXM@NJ€ŸSfT+Ŧò· FÍûî¿ÖÅÈ"·ŒÆQ¸àð…pûí·KPî›,“Ä Þ#=*%.ìXàeY ?ïyÏ“Èï>ú(3€âWÁáËXªðzËd±<5Ñ’6*£¡õO, ²DþCCGà_þ¡œ»<âú }g‘ÅI{;cm{Á«ÂU}‰ DûÈ%¿¬…ƒJÓl-Š’ ‰>4B÷Л4VÏ`ïÂ<—wL"r¡[E_xn9„U®üwì€: ûöîI@j›Ùc,æææÙ7þðalezUÉ{U‡Eþ¯¨Ýÿ;4H(K£ÉF£t¸É\ƒ‚ÞÅÏ•(|°¥•H"êÈ…¾óï£ 60u@tþi¿™JÏßwÛ6ÈþÍ[`óïþº6¨OQ#¥–'žÇB‘ì5þñÈ›¦v`-„7$µ­F¬K$ÀËÙVW¥4q¢Ö¶¥A™6cŒ0a½-2´`t’K8õ”ºp¢¶=+¦Ø% ×"žá|ß—¬ Òž…¤0%ÈU5§±U •ó éVÔLT­ˆî6$ѺzõÑ@ºÉ›hy³À*ÞQ$¥A•{‹³Ñ‰PŒx•ë^möý8ÿ‰B/Y´©tƒü`&5Ö%,1>é(~^!×¶ ¦£VAôѹ&ÄùöŠdQßrã7ÁAÝhúR™Jw+s•¥C]?$É9W,ÆRö幆ŽÀPݯ¢ëb8 ÂÄç,¼Âúb¡)Z›ë)G©Rù#jÖëŽËÆꎞ1R„%n453FÒdÁECÍÚ³5-ç/ek$µ§C˜¡eìRc†ræ¢ô¾ê¢u†#ªo‡Ç€ß±ÌÄ-÷ÞGv]×¾ðhuZ@1R)h”dä[BIÔ¢usA·“ÏPP€¢L «›Ãy™å¹Øb¹º¥ë²Ô'¬tß¹(+U°Â2Üb˜¯\ž˜Ì-J­–I$Q „Kl±°¡T°¾±¢«'[Dk*TÔ:¤mÓ|' W×4Dîb½Õá²i6}h"î_ìÁ‹(Jtºî>ñ26¤—Yƒ“Ú´`àò™ØfÞ·á/ù ^óØ5ðÚ—¿º¦ë#é¹Ù ”œÐícA6º}쌄¢í¢Ü§m•A®ºY]15¸)A¦~þ>‚ƒqZÚjàñŽ#cê,u8ÌW36Ü4`(VW•£a*Üs¶‡+Ì¿’ˆ<„h°pÉ +Eð+¹õÇ3r'Ñc¸Eï5$^vrê¶;ìý,óã_<ðhÀ^`S.ç¡IfsS²wÙçãÚkˆìàD†9.pÉÁ-õf$RÕeÝ++íûVú«ÛÃ`8† ‘¤ª†mïà»÷~—Etík¡ù@>þÉTÄГ9ЉS%èÔ±2¤Î¼çKØÅ2¼ÒT²L2;VkU!Y޹ˆ³Yµâ0ÁÁ(S.dˆÇ™Ú:Åûº* ¥Ó ‰:“Þ l†ÉÌî—u<^èI±«XÜ ì3ÀÇ©uŠÂMƒ‚ô«phhÄ?Áë ùf¿~À~{ÃåGëRŽ,@®?ü4f·AfŒÃx8¢uŠ.miNwâÎuò»wÈðÎ'€á Y³§mV¼sxÛ…øðÌCpä¢#2PØ×¢”üÚ¡LÑfãÝRÑd Ûˆ=d¥çˆ¦"÷x0²LWLdêÆ?wšEËùˆQßÝ›d ô è¹ÒBÃÙ¡¹¡¥šÔã@*öK°w7–±–ÌÄ´Mî˜D‘÷ùy>« ˆ¾7̾œÞ +â*™ÿôOA«Ó†¬­ù$8[©½Ù„FÖ¤ä â ÕÅ!`ªœdà±ç¿ØÒ=lã_|ñÅpùå—«3ö÷õÐ9.pÃ5]z!RS‚§%}?|LxývYÉ5€Fq¿“—u…„®Ê¤À‘ƒ‰s®~hJáÉ=Ÿ¥ÆË¼ò²dYjUìõ³ÒaÉØFvÊ)[\Wr ÷Ž;…³Ìl^ â´›¤åHº¢Ñß|}ÔHCç N<í…`NVqIžý„j4›ðÌg>S–ÉÃîEŒj·Šæné1)•Vô«4šÔ˜¸Ü>Ь(ö^›4ZåOnÏ0NbTÁ3&éß•ŸW¢<†âœòòÁÔb£5ªDžfœ!Ê+HÄrèêõQŒÕ½8…0`!ä€ÝÛ&aìK7|ÚÆèo!÷‰`ÐxÓ£§0y/ä®P —Çï!…o€ ؇'• ¹.$ì„Ý\l¿¬$[Õ~/ò ˆ°‚£SèI,¦†ç Ãfö A´â Ë‚pL7Ëñ“¤Ô$§›ÝQI°TRG9˜\pJ¹°X\ŒT¥š>…2$å DöQoT(§]þUßÇ­£ÍÚ×oƒ¹‹.„ƒ“ã·P ¢Šû nŽòE%ƒ’’ˆñ»Bë²Û'“”‡ÃŠ…r‚βù¡_ºÝôZ|^LWßçþ\\Z„)f®är¹€4{# Eã%®ç/óm 0/ã¨AáõÁ`уRI8ÊßBnc…ÁCõØñ¸6V÷vuªú‰µ3Î4œ9²D¢MäÅ,EšË{ÊWKšM¸rò~/LÚ¨¢Çææ¡Šˆûvîpâ*ÙúöCy¬æÐ~ñõÇ£¦Ì—a­dVήà*§Ö—D+ %u?S.û›éYÿkºÔcDr,:=9eéK Є®‡2"L¼&‡ÁxŠ1ÔFKULªoTjÌU¬¯|TZý(Öz(Dدž.ZÓçÖr\ofMÝò®„ºÕe ”ô[ï1 Bâg²¶± Ív\q´…ÝSpjñ¬Ø&0H³2’WEU¼&¦/)“l‘ó’ ˜è|…ÿúæF‚çˆr'­hÝËR瘿:U¥ˆ¾œØ…v.p™ê‹ÛÍuIG ŽõJi‘¼uø”Îë%&Р˅̺[Sì4ð\;‘4ósâØœ<ˆž»¹a»Ùf„TåóÈ•¾‹»|¢”úíSê+J²çÕI6t/»”Ìå—21ïõ’Ý\Q8¸ÒD„žü øAqæõûWð”¶}þ ŸçQbQÂ%®®­±ÏŒLÒ•³g©Ëâ¨,ó:Xªˆ_FÇ:¾ÆrÛ`ŠÏ)¬i½ø…ptPv{dÆå•6á̶m³2é~d9CHQˆšN@Z5tì5årï‘ÿÉu÷ GÙdÂÇpe®ç¤) HžÉûò,aíNÛÃS¸šm 9'‚¾ƒçTß\à¡Ô‡ˆB,•‰±1œžÀcK«¸´ÞÂSg7pÿîÞ þ)ú×·Ó÷#“S±€4¬?k3ðñ'ÇëÿñzüÜ ŸÃÏßðÕóADd0.‚ûÂŽÖ1{gϸul̦»Î.-:Õe×Ó¿jÊ”hðE§ƒuäAB…¨ /÷¹ƒÅ@tfF45â p‘õ¾[Z^ŠÓ;ÓwøUx¦º‚èB;½L`ëV¼®­ÒC 3‰*¤;~ZN ;pвZlÏë€)?¸|.¾(TÕ2±êÑ© 5cyc¯3ÀܹòÀV'g­wÜ¿}Õ—ƒú:îç2ezƒââ§],ƒ8õ“ú÷·´R¥>ä >ª\L‡ëLl·;¾sxˆ{cZg”_†q d¢Ä¥¢¬Ð>Âp<ØçB1ˆª = ôjõEÉçÊ!Âä$±ô AMöfãÃó¤º ‡q}½ÐQmuþ!¢«±ÚËÆêÀ¤í«F­Ñ^Ss(í[Êç‚7­”š®z_ 4ˆ¢B$1SP/Ãfë!ïSa€a8’&P0!ˆ?»V'“JN€¬ÖDA~Dª£ój1Àh%ì¶Žú®Œ:ÆËª&+LYÆçB傃‡¶XTˆâ:Oé N'N¤õML`Ô˜T}|rr6jWq †ˆú®Ý›ûKÇÈÜ aýj•žNµ4„¢Ø¡×¾ú寲øƒ¾çW '»¼¼$9„<DüLבNrB¹³º)Çi*  }WÀÒÊ¥OÆS‰²¬O 3ÄÔ½TÜðVšF6­EB錾¡&¥&,Á¹¤5Ï|(Š€È¦x¼Œcú•\‹  ëîÔ U%ÏðŸD݈$åŒâP,ÞeOG¡aï¿ç~ø7üG¨Uêð{~ö·n· ¢Žž.J*<d¬[¶ÇrãL9{½‘Ž */ìC»7–s[@œ6]Akœ£‘–ÚÔ1ÇÜy~‘ S^nýÒ:æEÏ9ÏjqzIÂ/Ä–HØÓr`b©¡Ÿ@º[.µeVR’NÆšLƹª1°Ñ–ZþyæB›!4ïÅ,êâOƒš©ÂX}\Ü÷ìÞ-̇¤«ÁîÝ{9Þ]ö:G‰êöDM½UÒÁ¡§:ï»èý Ub­íÍ…ª tÙ$L㬑ƽ‹¬†ãøqC„ä¤?W)½Ö{¤ÔðQ¹DÊcëàˆl#åÔ:Å0ƒ(õ J,F¬1ÅljKJ^ÒØÐ(°1.CõÖ,Øwhüê+~E‰{äÚW\!.ˆ—]v™ÿŽL“%)Ú.À‚/§OЩ%‡‘@Ùš…<ƃÄc £ž®)êô¤ƒÄ?¦Àö@TFæaJç€Ñ¸ZÙ<Ê7ê,¤"¦iØ,(8t‹ý]Vñ>Ø¡F#b¤h^;ž}¹Ï­ûƒ¢ð Æ›i)lÔ²†æjJYe—]ÓS‰í<°ÓA7@øšsê—>ˆûBö¢ö+2°áÜ 1ãélÒˆ…<þo¹ƒãˆá•¦§PƒÅIgPP÷;pý‘m…G#ÎP¯)—™J×¹½Øëm]÷Ô—–â€6†qƒ¿Áغþš2ŠSV™’^é§®ouó™ãjYF6ù1|í›_—¼ÒÏyÖsÅÉúä“Or"=8yú[/Õk’Ù‰òÔy?EO©Ê´Hd† N†â7#+( ,Òúz!M„¹ïš´_5Á°Ń­vÕ˜bŠLM}²ê/‡¤ñ¢™®³ÂÆóNt­¶ ¼7> ¾êø¬ÀS®‘”±Ú:©n –÷¸h]= Ün "Ûlÿäñ'aj|º9g ç:î±é¶v[zîë_ÿ:k7„©Ø±}‡X“¼îµ¯• n9êq€¿%:ƒLI†¤3ÄÄ\AÔ4¬²ªv«})UN¼Ìúi.Š×f€¦á_‹bõ /…;æà&4”˯Ök°±¶&ewÛ¢<DŸzo0¥•~)•¹`‹âUŽÜ¿ý8ür?@ÉËÌE_Ê Gµ’1ç)–×:Ô½‘±ÇFyô±Çø\˜ŠúXÍ&;>O&á¿°ƒ ÙËn}C$”‡'j¿ ‡¹ŠÞqËËq,HL²HyR1cAØÒ½‘+Ç®/­…ú9‹'Vƒá€ƒžÎ`eu*¸NÛàƒõrä&=ðȬÛ:OŒ×áÐî]©CBìŽiáŽvoL÷Ò”SÌÕá 3²úx1[%ÑS÷ÆM|žcK.Á„Â,@5 [‹.}€|§ùíóø 5Y­%×.½äRÄ”“Ôa×.ß&Ó³¢1‚’ŠÈûëD¤_I¾Z©BڙؽqX dU–+–ôÝK*g.ÀÛZ j0¡ˆfWás™¥0u/ÜÚ?ë ˜¬"lr<æã§àȾ]ÐAp4ᆲ@FtuDP'”ts4݈¹Ì‚‡VLz$Ä…œ‡{…âeÖTP ONNÈXÝk¥ÊžuL©—,Þz}úÝCÑô¡¾2ø<ªP[MÊ@ÝÝxÁ™ J0@‘Yг÷…“Àڙ떺2–P ç¨pSÀ ÖZ¬¬mÀîùYRvMO±¥³°Ñjc½šy#Q Šp•Ç g¬šgõ]¦ÔiKê@…3X Vò(Fõ}B/æŽidÁ[KºÐÇ ''§œ Äf,#IŸ¹bã²µ±ž§ágûù1ÄÚŽ8¯(V™ñßÐ@Íç"M÷D„×wŒÄ™WN†ó¹ Jz†0‚&È|jŒ‡ÂX7Æéé)h±"›zþ¡òHl×ÿH>®yPy FœZé¡1Ä÷Qà(áá`'Ó2^ቬ'ÙÄr8|ŽI^,¨;‚v°zL¯ ñ€H,“Þ§*3ájÑ‚†ñÁ£i9ôqÖ«>N´RòiæðÏ>ð§ðÕoÝjc'˜ÒìB¥tYU˜‘ÈÞC¬[ÄžÏ.ÇpQ|ÎýYü}õñ÷ß{?T²ÿ¯²qÕàÀ¨æbô-N§…•„®4² ¬Ü1dR˜à*åÇ ŠiÓsLçu‰dÐ!&ÓCaŸ[‡$^ÿoÐõÍè`µ~^+“¾¤ø4›ÏÄÌ$¼ãç~.¹ì,±ý’b,ï_¯Ã#<K‹K°kï.è´Ú­_Ä9;¶ÃÆÆ&,±ôÚÌì°r’Ú¿›—Dx„ê‡ÏùÓû´ZX¾¬1RÈð\m1¼–.˜'ªu«ÚËL£¶ëµ‚Á¨Qg—r=K×4ªe'2*P* P³$ÅˬÄÓEeFmθ³œbÕ8¤¡q·òds~˜™™æà9"Qâ>f ¨ÏÀñ£Çayi‰í!ôÛé“§à¡ûËâÕÕUxÅk_;÷ìì9k#†~MCË9kämÛB(¤˜tB±@&ï¡?ât'ƒ˜È«Çó½ýîÐ* DŠãK–ñEÐãS©¨¨èjt@‡e0@sÇa/3³XÄ„A4ä„"¬Á犅Uw-ýÀ ¬!ÚÇ´±¹Áƒˆì/T©¡ Z]vÕeÀ?yVúÀ0Öáô%—_‚oñZŸœ`ÅAÉ¡»ì¢Š’Z¾;ã#ŠAbó˜ùìÑh‘ᘠ¡_«¦Î¯^Gd†d.\†¡Jä$"ÑÖâ”Ô6¬¯º c5ê¨Ã2é“‚Ûxœc,$£ˆSBÂ@ˆ×Jòn`„ê—^÷Üñ]l¯·%"Tº*H1¤™0l ð謴ónÉM ?ãB­µ– ô´ÈÇ£hQ”†°àuÝEþ. sýê 6s8a%¢#'—ÃKÎq+/34œ?5Ž2/Ï r\¶pi€p;Þ3|QŽ'ŽéóC0Fô•žÂËl¬î«0&)‰ …`‹40F –!Ë• ­¡Š÷‚eC–UˆûQ„&ùv¯¹îut].Kä1»v(ÒÅÈõA8<¯’9ë²"oßÊk3—° Æ` k M¶Ç³ƒƒë©—Yßà-Õ`Å0 ýÔJàÕkP²ŽIÚù°¢VÒË .LÝøŽ¿1‰Ú.A-Åúöró{5˜Â(©Äл!:5X?”ž´ƒsù¸ªVÔMËP¸ƒs™‰_  êÄ>+'¬aÀ7o» %ËbqJˆ”#åEYÃJõ@5Û"P5šiÆËs`çñg<óI>´Q1–Ã}I4#t²¹þax/3µ ó•-  xD¢ÍËLá–› Á4|}Š^fñÞŸD ‡µÇKƒ8juÕÊ[MâGó2ó\¿·¬†?þÓ?/ÞòE8pè `@,)sÉ B”;O;o¥0%·°³]ôIÑ)Ñh:ƒÒJNðèÃÂ{ßõ^›wæeB2èFiÚPµòVC–°Ã’ÆŽ¤€!$ÙšEÞ½I¾1õ!rÏŽjW¶¼&òí!TC28¤\¥¯§ª"w; <ÎöxÑ?âú¥ÚÁ‘˜±Ôô]ärc½ãçÞ—^võ2 ÄÖ:ôÐwK “Uh§õÁí yex qÊ~K#Þ ç_x½žÃØDœ½Ø26[-bñÊ„déî’ƒůÉàS»8Ã)Ý᎑²7’Æ•O#|…ãÑ­ÈŒRÐHI¨~¥FÚ”˜T"[ Á”ަàkþH}ýÀ(‹ÉG¬¯z¯©%¶ŠbFê]YTG!Ž;sóó05; íVMµ>. ¶dçÙ6ÅXI0Þé“§…;yü¤ˆ@^÷¦×1vQÊÚÊs·òNµVµpçàÞ;î…ç]ó<6«ºµ¯}l˜·å³Œ€J1÷25ôðƒ,t òùÍâd%~1 ‘œ}ŠL¦š;€$¬ŽæW›F&À˜M4»¸Un°²³ º<è‹P:mPƒTí색÷S9“Ü¢¢ÏçW[¾Úh68)º¨ˆ©ŠŠE(l.W?ójœÙ6ѱYµ^õÞixäiÊ@ë¶»>÷ÎÎÍÂÚê*œwø< o+&ly9Žu§ÒÍÆ†-»­mpß¶TvÎs™fú8ø Á¹lŠéT²§„+Ÿ `Î-e*ÆSQHâ„>&Á"\ò§*ž†íHµÍÕ˜"BǺL–WÛÑ£ø^tø"¸ç[÷@s½Å¶SÇšAc$Ò‰'NÊUS1Ž¡?Í’‰¬N;áE#‚!sÊËñùÝÉÚ™5¸ðêÄJ³7âB'UPGã{ì\7ÒVÝ+jÁ£ºÔ6µsÍuR’‰q4¸@©Œ´,u6;ÒU¥èê˜:@Ñ9M?<‚^ÿ/¾Ÿ9蔾({{ˆÁÅŽ)~·ÄPcç)\H³—f.už˜Ñ«Y”«9¨ü)¢Atù͆ÌÞ¨—úêõ¢„°Þ•€FŒ$i!˜ƒ3_N4(¦l@}õf”RJe%DiÎE0CGÀaè€`2D2’@Žix¿³gWèž»ïfÑØÜ¢è6‘“Æ6 CÅhÜRê°Œ&Üîöùí³E_* ¤,Uµ$X!Uv»Bó"+K£(ÊM½ïSWéÑ Cô@1†œ&vq£oq£^R¿QOåîY[èë %ɰ=LJeÄ’ìøýü~øÌçþöØÏrÔ"¯è¡³`7¢üGcœ›¿áó€õTJò|7L6 ’ÁñcÇá?ýú‚ï}ñ‹ëÅ1‰!‹H¢ '’Ÿ‰Æ¹t²¦žD—€Íá®-™ /”-I5tFi5 ‘˜ ÷Ž*rŠÝ8{íù ¬¡˜ gÊZÈõ$DÁ®€À" «s쯠eä‘qøH9æqöìB?þ³oÇK%i;ehHBÌ 'k*ˆ¬{Ý6;‹L ².ö䉓–“]Å 061|D`æô¢Ø×m››a#¾‡R¦ƒîöP©fp½§,]rBhnó>£TÌ*,3«¬ªl’H½ÁÒ×}Ë™¾±Ÿ×Ö@„ ÚLÊê‹æœÖ ކ2¶U¸)ÍR®/JÜ<½æ TØ "¢5è-O…+j0OeCÑÔIHàjñýœ¯d±bŸeoÉ÷Ú63;­CÓü¼Ü÷Ñ$IÐÅÅ3§áÔ‰Ó°¾¾.¶s‹§áÚW^–±›>£ ‡´¿C Ët¼pûlùcõz¬ÒH¹Z›Q– A(¬®’Ê“ÿHꈭ =ñ,ÜMMOñ¥§Îe–çäˆbýðÉ×NÕ`“c“‘>¶¬WàŠ×–…•x­;g£©éRpH*íU æt¢ «HÒúöLNOËL]0ÓzD“IúËÒq<++N!N J]"¯N Á®Eǽïà~ùp︈l8ZydûÎíb­²¼tVbïܽ“Ëa÷T޼%vy ;w íhcä2ú¤þ­&cÄ`X¨îð@hØc7zFÏeVPüûîDÇ4Ä1V†Îe–(ö0Ὂza…£0å2S0±¼:6}GŒá•ËLàEa ™¨×FËefŒÑ ˆ~™Ä<Ý [¤ ï'<´ÿ ÜyÛÝØ\krܘ„h×Ê!kЦ%àfrù´Å€(‰ D‹Oùpµ N°xÏ·ïaî`ú¥ŸCÏz) ö½š¾’ÃyûŒdpk0âXa…B5íD^ä*3Ã9&i·µÇS©½?K¼§’KH#ÛãÅ:¢Òc¾E4Š=žú–h¦É"¬×dÍ"_{ãÞHg-CƒJJBËê˜M¹ÚdÓoH¯*¬0fý¾ç¿f¦§¥‚4Eg@u“}<ëeDA5†ç]Qj€fH÷F¤`¢™ -ÏíQóCÛãÅâHyáxx^Û¤ù¡Gto” çHê ¡j»Ä4c÷F M%!öÕþƒíVË2 'P¬ ÑVG6 Ù zìæj#‚ð@ˆÈ…žÖ/x³³³0=5ÓÆeˆ¹ŽDÞ¡H1“ÀRFµ¸%Å-Ò¼¡Ý°”6È×1A ãÐÝß^¸ÀSl3l<øa݃…Ê·(‘˜C”ŽàШ“Íòð‘øÅ¥†c ¼ÿýï§O\ÿ ؽw71P’ÝPÅTxI•Ó(=¾äŸ%ÄÇ1VLåBÄ C!ÞqÙÒ[æÒé%øíßü-xîóžÇ¢—ÔÎÑ…Ê|™ªÁŠH4š‚>—SJÓ•,Ô´#!c_Rh”ŠþjO§<¿=|}Õ¸7ÓPìefT‰:ä–N¹XeYH¯¥b˜x€‹ÉÁC`Ͼ]‚É ’C5› ¸åK·ˆ×XVÍ$Á}wÝg…Î{abjî½ë^¸úYWÃÆÚº0‹V†×n¶`÷¾=vÎó`ì—r"DÜß`¿ˆÑ´£”ˆÌLI4lJMf¤½­d4B¤‹ãIÞ‚e5é½sÀIj —„uS±¿ì8çúb(RÏ»¡6µí-Oh­«²4*‹”—sñ@rÁ´K;E¶·kÏ.xå÷¿Òåê‡õÕ5ÉE¶°kAæÌÌ L[æàò«/̦*DÌ/9œKàZ ”Ðh¥FrºeEÄD*ÅUSŸ×Z*™2¥J~sîj0,çÛUfÙÁÅs]j¸z¬Q?G뢂ÞÜýô[•úÈs°»vÃ]ߺ ÚÍ´+bÙßXè9g£—ó€â%X–QÊIh»{î¼WB€ÈóÆ„²Ïœ<£Àb¬«¾bõòâ«_ì×*½"Œìñ@£û ÃÕ€7‡Æ<­9t1™ÛŽ6hôhTÜ[ÖiªÂGâjsÊýŒô™¬1™‡Ê}ó6¼—™Ë€ƒ®» öoT´@Š«˜<õ¥¢‚é RžÄÏãŸØÖYq =v‰íìI•ÊEÙC©o„ÜpƒMIzÅ 1úI¢¢Ç}æ‘g§/ua5+Ä,¢Tå¦ä1kwØ´F›Ø¿w ksŠÎe€1í!0·\¨÷&§§Ÿ’¡‘­ 7u®IîMMM¥8u+¸NY ˜îý K#áVLL$]‘Tš¼Xß~ï²æ ïÄS9zñLœmŒácѧ^tä"ø?½å¤ñ•Q¾ ŠÜåRtâäqxèá‡Å°OH*Þ…Ôœ¬Ç+¥ê¤X½¦_»ægï`Bãå ˆ4ÀËŒõŤpf$0 d|Bá&¤A\_¸–žÑÕ|K÷F†Ëð}5d·úmU¯¥2¤Ô<ÁÃÕA^N¸ÇÜ(±•ïôމ`3(ÂÂÂð´>å¾.}/¿{†î2B1N ½¼´L³só@$©HÅ,J“ÚÁ®]»9T%ŽTçn®7€¶¦Ó¢wŒž¦°Òc‰Õá ß¼Âí“s—ô–x¥X*†¦ñt¹œÍÍfjz[Ì’´Æ*ܸK´pÃÂUÚ)ÝPÌoçA×…™m³°±¾Î SAWjÀYŒMŒIUSÃß´9”¤C¼éKê 8;;F<ÓãÙ=NŽ×0Ëê0?Ë'ƒùùmýãkí°t±|>ˆ’ÆÑa¦ÛeëñÖæ¼8Äñ€!B[·}Ж֫_qôöæáõ¹Ùéx:'{uÉH+´ SZP¯iûËïQ÷rN´œÕx¼A635A_¹ía øll6{nj7]Fâ 'ª*Ú$ž€æýJ•º•Y´XЪ:_i}_O'\ÑÚÄÁV¸ýS¸”á“:Y§åøúÆQûô¶fÆW’NCn¢ÚU¡ zÀÏÇ%êÀDBRÿdÒ§J]„ÇMC­°¢"ëH¨j” ƽWÛÕï}€¯|Žº\âOßrÛCôÿ.ÁéÄ—ÏIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-pie.png0000644000076500000240000000177212536324510022036 0ustar philstaff00000000000000‰PNG  IHDRTT+µàó›PLTEþîîîïïïIIúPPùëëîííîþ™™ô‹‹õýAAúýýXXùpp÷rr÷ww÷öˆˆõþžžôªªó¯¯ó°°ò¶¶ò¹¹ò¾¾ò¿¿ñÂÂñÄÄñÎÎðÏÏðÒÒðÔÔðÙÙðÞÞïááïããïååïèèîèèï++üììî,,ü00ü<<ûjj÷ØØð{{ö~~ö**üƒƒö‡‡õþŠŠõýõõõ‘‘õ’’õ––ôý11ûŸŸô¢¢ó§§ó66û««ó77û88ûý··ò@@ú¼¼òýCCúþÃÃñLLúÆÆñÉÉñÌÌðýRRùSSù##üZZù^^øÜÜïaaøßßïccøââïhhøiiøææïýkk÷ééîêêînn÷$$ü&&ü))üyyöääï;;ûFFúxxö[[øzzöHHúÓÓð  ô__ø¥¥ó##ýÝÝö‚‚öKKú……ö±±ò²²òµµò††ö==ûMMúººòNNù>>ûmm÷ŽŽõ%%ü::ûkáA IDATx^íÖS¯dAà^uÔ¶mãÚ¶m[cÛüÙó2ɤïmÜ™d’Z?à{¨ÔÞ{©È_È?A)JQŠR”¢¥hÌ3:Øk³Zm½ƒ.OL1šµ¬Túq–ÝÜ7™ö7Ù{ãzUaÍú6)å\æÕë¢Hø÷§T#–÷œd4P20“' ƒ“ÉÆ»†R@ŠŒ&{ñ&R3ˆ<¼È~Ï@Š´FËúˆ¨xÙ¼&º(øn­1HD'øE«æQ ?ÍI™ÿø(TÍÙV4<¤¡à5+¶\UqÝTDrþÊÜA4|yÆYáÏ.ÃQL÷wÙéìŸFÔýüä£pþø|EpÎMÅ=Ä54:£†2ê™h9šÌ¾"ŠcfReèã§B) Œ <¾½¸ö¦[MÅ!ò@pCʼn¦-ÜüR§Ž±£–,vZŽÆ§¨2¦>£°»$‘ÅÒ®`ôÕ\( ìSÂ\ñÎYƒ¥¡î>ÍôÎÛ÷Ä‘{íç…¾Œ¸ÍïaíÇ¡údèØÎz úF!bj[¨3aî…6S’R]ÍùžCTqØ“oîJAò‰ïbôæJûQ³žqñY&–ì«Þk,¼«öƒeEµ'Ѻ> NÿÒêõÖ„â.•Öu\ýnP±«ÝpîV ·… ?!þ a{·V%©e~j»ã¸Õ~ îÉ3ÿe“¦(E)JQŠR”¢¥è/É=v L“CIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-polygon.png0000644000076500000240000000127312536324510022744 0ustar philstaff00000000000000‰PNG  IHDR`aT¯PLTEþîîî""ýDDúffø††õ‘‘õ©©óËËñééîýÌÌð˜˜ô¢¢óÀÀñ--üááïWWùïïïÞÞïÊÊñ……öJJúiiøKKúþŽŽõþý//ü¤¤ó¥¥ó††öXXùeeø$$ü¬¬ó  ô™™ô¨¨óMMú''ümm÷ææïss÷êêî‚‚öý'ÿzÁæIDATx^í™WªÝ@{”usz1çà¸ÿÝù/\Ã;­¿™œ¢?ªH»‰ß€ È€ç×ïiR@õôûáe3! l7‹Ó«ÓÅ&M(ºÝ.R¯þ/;L€®8žÄ -ì0êj`‡PÕ;€²;B€¢;"€^=Üt®FvЖDvPWDvPÕÄv- ¶Cl)^h‡FZjÛ¡‘–zvÐ>€¯ì8üPÿ_ØñíliàÍg°¥—fóZlÐÒ Ù€–†óhiìÍæ ¥¡·m@KC¯ÙÀ–ZMÐHKm&(ÚRšZj5Aø.5› |—šMZj6Ah©Ù¡¥f„–šMZj6Ah©Ù¡¥f„–šMZj6Ah©Ù¡¥f„–šMZj6Ah©Ù¡¥f„–šMZj6Ah©Ù¡¥f„–šMZj6Ah©Ù¡¥f„–ZM©ÿè]€´_-×wÿº÷ä8|rv¾¾¸XŸŸZ:|²\íñU–F€–€–†€–Æ€–ZÐÖô¥õ0õÍçáëÏÃ÷·8l¼].W?Çç?Õ»}ödw£ãIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-rectangle.png0000644000076500000240000000030212536324510023211 0ustar philstaff00000000000000‰PNG  IHDR\H‰†æ-PLTE55û<<ûDDúEEúpp÷qq÷xxö~~ööö²²ò³³òººò¼¼òïïïäÏÌVPIDATHÇcxG`ÚÊßt î•?gq! 8æA”ÇçºQå£ÊG•*U>ª|Tù¨òQå£Êé¤Ü‚¸&pÓ<°òW.D‚}C¾w@ Ll¢¦FIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-rotation.png0000644000076500000240000000727012536324510023117 0ustar philstaff00000000000000‰PNG  IHDRtsÆý±ÈIDATxÚí]kpUΟ­¢¶jË­Rð…ÐUT\ÝrEKT ß V]PSÊEY‘‡Šo²º(¡ÔðpUHó ‰‚’ ä­ æ ‚B€ E!1ÉLßÓûÝ{ît& ÉLÝÌ@ßJ‘NOOOßs¿ûïœ{î%ÜfC#"ŸÏåÂFã’Ûlh¦i†á"×E®‹Ü£'ÿ5Œög\‡Ö3SLéõ’×kªÑj…úÑú|&.ÀetJ[ºÏŒ‹ÁX>OþWžnh0¦èÐ!ÂAc£é·µ¼Lie~»kÜÞAÚÔ0À0Ò^ÍÍ¢°^z‰î»OÜx#)† ƒ‰!CÄðá⪫ĸqò¥7ߤÒR9ü.à 50ò†®C“l­Ð*ÍÊ8ýþ{zâ ºì2üˆ)SÄk¯Qz:•—‹ÚZ:vLüú«Ø·JJDr2ᥗ^J£G‹W^¡]»4Øq+õHúæ§­C“(ƒeq³feÑ 7ˆ3Γ'SA$\efÛvfÒ´€ šš(9YÜu *n¿]x<šIáSƒ(º\ÆÞ §„ßwÜ!Î>›^xjkû+œ‡àÐ]Jó2^ÂÀøo($°ÄÀâ‘Gè—_„b‰SÂÝE.ùõ€ì5&ø€#´ ÀyeµàÔÉøe²Vð§ƒÅC‰sÏ¥øxy7E8‘ÍÂÝ@®E²hÍÍ4}:ÁëÖYsY›5t¸ù/Óog†ÉÉ¡ÁƒÅÔ©öTü†Ž\ 4t³®N\}5ÁéóÆ·ÝÉ¡ƒ4ãñãbÌ?^ Šß¥˜î‘G¾A9W‚†u+œøå—#~u€5 áƒ\ RS…ß¾‘D¾Ah ÿ¨NÒ† ˆo΃úå—tÎ9´gàAà N JÒB£g,˃Ïú$&†&L`¢?…hAõMdfÒ Ar†²ã¶ubúÍÊϦã‹#Gú!<Npp|*H1ö*ÿø-ZDö³ž•¯ØmhHQâ,“óÏj_ª.ˆpã²ØD¯~ü‘.¼9²¶Ú¬U76Rn.ò–:ªæÇصKœy&’jLM‘‘Öé ¹ 22%x÷ÝöÍÇ6f…ÕÖ¯§ØX¤zEÛ$‘´)xä‹'áüzD«SõM\{-­]˰5íгy97)‚”¢E XIVbŒer’W^ jR¬Af«Õk #GÊÄ«Ma›Ÿ‚¼å¤I¢¼\G(Œè@Y‚ƒß—™øï¾³"ÆÈT þÀA¼ñ†\2èCNh·ÔVQ49²kâ£Z•ß Ó@¬[|P¼õ–f†ðgÝN9—;óðÃôê«ò ¥¥·igÖíÛe0E÷Ü#öï× òÎ?œÄà1æÏg¹´Û…Z¾å‘’Ò[Íoô“ä‡xì1iÖóΓ‹lV¦¢‹¥õ”òy’’êAFd:4µŽk‚p‹‹»—^…[2SëÛ¹Óˆ‰1úõ3¢¢Œ§ž2êêpÒðzåOІkpqQ‘1j”¯© eø|F/z.XT;¡PÈ¥FG‹šÁb³Ç:Kø¤ÎZø_úc? Øë¯Õ²èƃr¨VS#„pŸÄ’z6M„®{ô¨9x0íßßmïÜúÐþõaó›Ôq~?**yú¿JW­JÈÈH,..MHHLLL(--•¿‚àâ5k<žÒW¬H(+ é]lÙ²…:d;rOhÜ#GLDô¨” ݸfÕù´¶™o¿ûŸþ®¸èï¹¥G~«)..ÌË+ܽ{w¡j!–”ï6¬Ðã)Ü»Wž ýííjjjJJJV¯^]UUe2ë;k\óøqºäÚ±#TãšVe§$~ûMÄÅ™¯Îo,­ùÃy•S£ž0=Ù†?ÜÝÆ´ðÓOtÅ}@ †Šׯ_Ÿ––Æ&p’sµüÂBd~¾`µb«ß™”$fÏYÙø8³èèmCniž9ŽÆ3Ôí|Ê%…xÐÒ"½_v¶qÝu>87å#»ñöv>µºqãÆÌÌLõ„>G9—xÛmbÕ*R0›`4^|‘ð¶¦&鉅ÿŒ¼"mô¸æ7›iÉb«î2ÒÝæÇËXN½µWÐe‘°U5Ûi¡³¬Í´iôüó‹]Uˆ0Ôwî¤×_—Ù5rF@"BNÀ1c²n¾iƒ<7mÝÖƒÔ!H<ª%µÞŒÜŒŒŒÔÔÔ“€\FÊâÅtç,ÅڀŢWÍuuôá‡(m••VM]@ÞÒœ8±zÒÒuø¶|/,è~v@ß„ bùò®fR·87;;Ìà<çê,êöí(…&cYªÓ@z•I*$ÍP)–™)¬V€tôz%F¦LIŸ:5àñÞ{òb•°=nVõNtÑE2Àóg–{ÞØ¸à„êêj6ÁIH9ÂÐü«Wë|n{zýö[1g}ò ûoSY\´)UÒ§ŸÎž1CbÉB FKKè´ËAA–G1doSŽl\ÐBJJŠíÈí¢K`QÔ0ã29VIמ=„ôTl¬à% ®_¤¬]²qçÎÝŠiÜ&ù7}þ9%$„ìÙôg¢†aéRNtôVöŸdZ°&#*–±¾¢™€%ıc´lÍ+ÊʬÔl$Ó‚é/¿,1ÒÒâÕdð*¿láH?*«££[ ª—+·Z5§iÁB“rkÆäšÞV‹¨¢%}A½®[gÑ«µNÛùŒ–݈‹ó,Y’¥‘Ÿ¬=ñî»:ÕØ%xÜ>ªu‚b§¾A®C´ÐÆÞ~`X¾~ÛVc韦·ü{}ú?Q_߆^ƒ‹Ù¤¤êääj6®Î9ÀN¨ÞW+ŽÉ2]¥ÈÏ—ùIdmüEy½Í³°-deeÙ.ÅÚ °‰e†\ÉTïï{ÿ6)åê9\9.Tr·[ÝøôÓô+’å¼>²–ìwìóæµ"¢ý(sÔ §úöÛ}™#? ´`Z%÷è–a³eð*†DXE}Mãk/7w·œ‰»±aƒç믳­ hZŸ‚åôôŽäÀÇ*p ÷ß—µ¤üb_•39M ʽb2•õÄ€@¡ ’7rÖ࣢ŠúЩ†Ð«Cüв FZ1Y_/=›Rr·k­þ++“å ¹¹Ûö ¦x>y<§h§jQ‘øì3ú€ùó”J3¬8Žñ‡ ÑXpûr7ÒÓÓ“““Ûtƒé7E ã²e:¦ÐT¯ vî”[Yââôt:1yD -¨ wy½½{Ðä¯Tà™È~òIºøbâ%ÅPŠò¸999ÙÙÙ' ÞH„÷¢©bÌ¢4 ©zl´£úŸ Cî -(,šþèŒü;É,WÇö9“Î?©Ui_Nèt1]»ÀˆåÙä:ñxÙ²ØÙ3|8=óŒ…Ù>®Qk7äN$n´AýÂÈZäâóœlaû"l;ë,½v‰yß²,Œ0-´G.çÎqçØX#'Gê>ÓÈÈýûË!´Ø Ï‹V9åh ¹Ó+]¤nÙ¾àI¸šÙ³u­9›¸£!¸›6m‚÷hg\ÿXÊÀχ¥º…oš¿x6¦áìsM쬴ϲA‡Ü±²ý§pÙ¾ÐØ0…Í¥iiÂ’J¼×ߢ ‹xµJ«}aMy¼rtæ+yý®Ÿ|ËÏ»÷Ë í`ƒŽ´ÀCîüJDüZ)r¬9`G:¶!y† Ôþ/XÐ_ªÐÜ,ÕBjjÚš5#ø'­Ì .nlbþõ/ ³,­{hš·IŠ[ŸWØ„Ù0¥…™‡ÖÒOâ… iÔ(!ݪ¥¬\­nlÊËóXÝÀo”2â²9sd¾8z¨x+–Õ«Ø‚s¬‚mkŒ\¬N:A ½¨¨ÐÞœuTQ‘4îˆX£·Þ*Ý=Ub¢ùÁUË—W­\i¾óŽ1cÝt!P΃oøê+Ö^˜ü†&ν©øÌ&[žÌŽÆ¥¶›wUÔO*Qè¹t©xî9TÛùÆŽÅêoÚ!IãÇ›÷Þëƒ X¾ÁŠÜ@ìG·Në° &ÆJd}½}ålÜ*Õ‹:–XA@1³VÉÜÂÂMùù9ÝаUcZÌàpÚ4QP@¶•8‡;-tbeÓ øû°WŸQQQU^^¥’傚%¦–®1G@Q\,³ô¶UÉñoÞ¼Ù Z°¯Œ’s ÀHRRRpÑûxx[ µnš²IŠY´`onÁ>ãr71DB[ÐòGäö ùÚµkCò07.RYY#¦´³¾9ô!w4ˆè±ë`ŒØÄna­ÀD¥}9­i¡Rµð1.?Unn®­C~ºÓyø¡t3Ø×ðr‡87li‡·€ïX¹re||üâÅ‹!-—,YwðEEE³fÍb² —B¼SOCCCmmí¾}ûêêêö©vrŽ=Šï`!;¿®Öv)¶-ð»öì5®Ý„Âø{Àì{6rÿƒO[‡Í5®k\׸nsë¬qÉm‘+Å\Zp›K .-¸ÍE®#Èu áÒ‚K ns‘ëê\׸ns9×å\—Üæ×å\—sÝæ"×Mܸ´à6W-¸œëÒ‚ÛlCîÿGóø‘ÅõxêIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-roundrect.png0000644000076500000240000000066112536324510023262 0ustar philstaff00000000000000‰PNG  IHDR[K(> 0™PLTEþîîõïïïggø``øCCúö‹‹õ——ôÎÎðÚÚïààïèèî//ü··ò%%ü¯¯ó""ýpp÷ââïUUùêêî~~öææïˆˆõ88û„„ö((üþÔÔðëëîuu÷44ûƒƒözzöYYùww÷eeøýÖÖð††õ,,ü**üŠŠõqq÷ÛÛïÜÜïss÷kk÷tt÷ 3ôÓIDATx^íØ×­Ã0Q-IåœsŽ/ö_œ?)Ûò—€aÜ)à0Ž´×‡Ú°çeà”ón›¢­Syª6HyÕaÑ£MG÷"Ò¸¡8»ßtoÇEJ–ÒÓ*nÛ”d¡d+ÌjÙ½ñÙ´ùkÙýYÃi7³¾¶ó±dmœk{½äµ'Ú|ñ¹Úã·aÆ 6lذaÆ 6lØö^ÁÿÄöã°ÿf¨wb~J¶_˜~xW¶‡WÄOïq*ô¡ÈÜê~¦;ß åUŽŠèåë­ Ò¯÷=þ7lØ7R v™seIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-scale.png0000644000076500000240000000541412536324510022345 0ustar philstaff00000000000000‰PNG  IHDRtsÆý±È ÓIDATxÚí]YlGöÃj_ò²¼åawŸW<ìÓ¾D  Ùb„`.#m$BÄç"áØ•1NÌJD+Eƒð!ËQÀ°øÆ;¬‰°Áà0^_3ž»ª÷«þ{Úcf<Ó3ë÷Œ«d•kzª«§¿úêû®±Ó˜,æÎyšDÁDp¹,æEQ$s%s%se‘M‚+Á•E4iÐ$scš7jÐe¨>.™Çti¿}>æõ¢Æk'j´Õ#âÝ ž’¹FI øÔ:;Õ†@uðA½g ÓyA˜«-zS‘ùýüÞ=~ò$ÿüsþá‡lǾy³¨ÑÆ‘o¾á¢3z¢¿JmméŠÍ9†šÄÖ'OXN÷]†Ÿ‚VSÚ›ÙýûìÅ Q£#8¬ÑÁfý‰Åk2Á¥,h ™‹æä$ËÍåëÖñ'Ø/¿hj@ƒO"ñÀ»ˆžo½Å³³Å¹8 pêH„…øN#Ʋ lÕ*žŸ¯Á]X0PÒïg33¢F[µiJD>1!˜¾f olœÅÔÀ7>ÍÕ$`„¯¾è|Áªª*b¨õ…¯k408(F(,ÔFH ŽYt5 \öïg»w3§“¯ëà¥\…›7‰ãJ8ïBœ‹vì`-ߤço|² :ÄöîÕà ‹Š^ºÝ¼®ŽyN^˃·@É­;wè¶zKîò墎êYé~~ƒì¸¥ÓRÜ[";q‚ÛlŒÔ6ª& *Ã)ÏŸ³×_µ*£Ñm&)o~¾¸N Èzª4Üê®]¬¯ÏL³Öزe¢6h£hJnÞ×2x¡dWÀ46†ä¡Bñ˜'‰`º{—½ö»wÏ RœÌ Ý.•$&a³ñ©cÐTp•Ç…RàÑ¥¬Óü·¿ñõtyDvŸßë‚/Rƒù¼ÌïÛ¼…?ô)ŠïøÕdšß6^øªajmTsUòžöþû̸Jñ¦&––Æ;zòޣƓØ=ÞÓ¯¶œnþü9öŒ#”^ ,Bñ-sUõTàÞöåhã|ö«ïã?þóJÆG±í×¼ë²ss‡òòú²²†Â6rsû>ÊzX`úóšË[÷6ßèmêìlÙ¸qèðá¦îîâÓ§ÛÚÚÚÛÛOÿâââ®®.SsCF]1·®ŽgeÅ®v£ë/o,O+~ãw—®^œi®­«q¡þquõËúzü„6UU_©ïX™Õô÷Ò#ƒwoݾŸýßo¿½ûÓOíÿQ Š»100ÐÒÒR[[ë'åZ\p‰ƒ·nñÌLJõí¶SÓ½Ûv6\šZõ޲ì÷üäue³¨—ã»ÿÆû~#0Ÿ_¸~H¹SŒ¸·ív» Çâk.y ##"0¥Õ T¡«Ïn¼oŸzgu¶{ÿºÎ›¾Þwç6,•°Z,ðždÐ¸Ï Ó·yyâÍ?ëšøÔGód‘âk¬EEE333Êüù¤Ä…¿øSSÂ[@mÐ[Ð’åv{ç† Î±I-ÞRصkB»/\вì!CiA3®åphÑ þq•b®×ëíèè@mæj¦ÿƒøåËLÍ·²±B¦§û22¼““ŠðÅ©~ 2]]\MEò¹ùbq¡K—ĵèB Î)|§Óyüøq»Ýn æÂˆ…’öå—1Ø4œãw8íۇ̣¢©5ÓD¢p®”W.tè/-e±ÏX8år¹N:ˆ-Á\’ݧOùúõÜ㉜œ}•¹ÏÄ„Î2gðñÈÇ—‹¥§sH|´,eüÌõx<ðP[‚¹zĵg//×8e$ÑÍíÛ¶Í75Ü;ìó4}LŒ¯j‚‘¬füÌÍÏÏ7Ý[0Þ•Ö2²xNäšo%YÞÂt´ÛÐðÅÈ_ÍEh. Ià" °,èùÀO>a_ÍT ¢ì1 Y¸6Wæ{Ö¡>!!>ýÔhV3udA_¼Ø&ú»µÇh<3’…þY˜Æÿ°z5 x{feU' ±îµ¡(釸Šlx˜¶„§Ÿ Xä11ÆÄÈ‘Ç\æ’,˜Dı—‰XöÝwlíZ‘äÕ—p¨ëY¨?6:*VÃ÷ß3•SQ‚֩ƵÊJöæ›Øf q-tß& Û·ËBð^#¬XÁ«ªôí6Œ›œism6›¥d!ÌZF’wåJ^QÁ(î"¼È‡ + äáê3SÊÊÄ õö2³ÕàY@ÖÑj²f'ÃÓ§,3“oØÀ[[g÷æ‹/A 3Ã÷ÄÔµôw\cãhãˆþ4=Ñû—p®/$n—ɻ֒…P}lóbØÌ€§îجˆÍ^j»´ "s—. 8ŽwÑ'#ClA‡MÛ¢³¹Ñâ²ðê6¯@Ò™uvò#GØÆlçNöñG¾£6åßÙ]/×®¹ò®cù Ž}¼{ô¨ðäh—9μáÌ$Y8{ö,–cnHËߊҤ³¿Ÿ×]dE¥Jù‘Ÿûþð§’Ã÷Ñ®¿È~üQsiÕ›R`¾æK9ê²`©ý¹ 4 |­g6ç_\^êt¹ôDM}ÍÉ$xŸs²È¼+Bu ð¨·ámkmq¹<*îLw$±$‡,DIÃPZúúõ¼ýûíÝÝŠev~%“,DÎQº{{Ûß~ÛMàêaÆbƒ ææååY%å¿OLŒlßî5ó6â{ú[RRâ X‚$W•_oᅵv»-.d¡µµ5™eA½ü„3ee¦¦¥—®,x=žÖ–S9Ÿ,”––š. f;=à,8bêCìør ·*V–KÜÄäQ–dÁ:àâóäææš¾o!Á®7S9bÍ)çfÿu&º pÄa1W ÞB‹É– š pËËË¥,,-Y0{Ê—´,477'}Ξ;wÎTÒšSžÍ;À‘%* 0999 "Ìžò z fOy‚¼…¦¦& Ê‚ÙSžo!˜#Ò[XxoáüùóVó0å ò¬) ˜r) ¦|*šòT…ŠŠŠ%* )À‘ø¦¼²²2éŸD`›fvvötà{hÖ "®^½jz‘ŽX-ˆ )OzoàšÍ‘ø¼…ªª*’…É-X*ˆhllLzp)Ь©©)((¨«««¯¯Çw”±Í ÕÕÕÇŽ ì]IZÍE š¼|ùrxxxL-Vhà󘽘LwÅ,[B¿Z”|M_ LýCôÒ" fò—[¸ü¯R\ ®,\ nª€ËeIjWLÊ‚,R¤,È"™k>s% R¤,È"™+ý\ ®,Rs¥æJYE‚+5Wj®,’¹2q#eAé-HÍ•² ‹iÌýWSÛžFÛ5IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-translation.png0000644000076500000240000000750512536324510023617 0ustar philstaff00000000000000‰PNG  IHDRtsÆý±È IDATxÚí]{lÕçŸs®b”—‘€ ¢ Þ›HÔ‹/ÐøŠ(AôzõÆjã£ò}BAÒí“ÒÒJ ï– ô”–Rè¶Û}·Ø÷>vΙûùfg§;ÛÒm]®SN3ÙývæÌœ9¿ùæw¾ï;ß9B¡”éOÙæµüi «iKŽ~ŠÝ£êí^“ ÿ¥.›2·½Cm+ìâ ­E]L„)\'‚ _¢(biEPd›C¢åO[X}H[rôSìUŸh÷š6g”ºlÊÜöµ­°‹ƒ¶u1€˜k.×\®¹\sy‡ÆÁåàrpy‡Æ;4®¹\s¹ærÍåšË5—›bœîBZààrÎå´À5—Ó§nŠqp9¸\n-ð[ ÜZàœËÁåàÞušò Õ˜ÍfAú·"lCCò¾‰_ °áVq. #=¼ÿc‡†ÂHš¨ÍILL ÉËË;}útpppnnî/¿ü{.\¸ššŠÂ©S§$!/9ù”ÁRP—’ZU•Ÿ––š””äHò¾}¡ ££“ÂÃCËË/æå%ÆÆ†ã⃃Ãòó  âãã9¢âââÂÃÃ/]º B]]ê—.M1|ïÚÛÛÝÜÜrrrª««‹‹‹³²²ªªªŒFcvv6ìQ ™™Ù••ÕUUEeeÙåå5­Y“½`AÍÌ™W\\²çÍ«™=ûÊCå€0kÖåiÓr\]k-º¼e \»¶ºú²É”S__{ñb!û][[XXxîÜ9M¡¨¨ð…g¬cpñÀűûkÎbßô‹/èã‹®®tÓ&1$DÌɡ׮Ñë×áEc%ûûÅÎNj2‰ tçNúì³tölºnаÞÑh9w/¯.9›Ñ×ת„;•žD-@%PR¨¨0¿öš0k–°i“96Vèí,ÍÀ]Òf†»Eéî1—”žžÂÓO›]]…à`ve¸Úк¤ŽŽŠ—/_>qâ‚«KÎEp[ZZ|}}í>a(`6ƒLÛÚÈ'ŸÐ™3ɧŸ‚L•²pthX[iÅvIHÁQ<$·ÎJL¤K—’%Kè©Sì'hº¤—T{W ÀN§gkn[[ôTX™ÍµÙÍœ9CfΤ6Ъ*‚ȆJ¤KAyÒ×ÇUíì„g2 !@ï½Çd|BX¢PP+ô®xW¨Ôzµ€ ÑØ@P7Èdÿ~zï½ôäI&Ãh¸Ò"­RôõÁ°c–ö /Ó7È /ÐeËèo¿!âÃJ‚}ÚÉ“'u¬¹¨#ÍÍÍH –ýDAö£èܹÔhdʪ'½ÂV³ñР<0Æ… t¸æÚèL5RóÈ—_Ò¤yyx}j©Z@Z€>MÇœ«X ¡¡¡êÂð"BË7n¤O=6±h©:Ôtir2‘žÓè>k<-øJî» «QâwQê<Åüü|°¸n-ÜZkAÙâ¶mtñbzëQ½³M¨QÀ­¬¤aat$pµÌƒu2Noj¢Rg¥…˜˜˜É@ >>>R­[Ix€66ZuVMvß>¤‘âbêí-³óí7r¬ÑÍ,]Jñ,¼«úúúIB àJÍ`í,,$Ó§ÓŒ bÓÏŒ[Î è×_SË¥Æ[PÌ‹/ÒwÞ¡ù´î-8ÛëííEZÀNiÅ º{÷°f,!G¤ésçèÖ­²½5¶£l¨Á)`ÃÍ™Ccb@Ô´à\ͽ3´€á½ðpT+Ÿl¥Ž\KHÏž¥/½ä¸ò·B¾@ Ê“à}|â zì˜L#ÅRG ö”DW®Ä~iDSA{5U—Èì“C‡ØµÎŸŸ,´‘Áhaß>²fÜiÇ"F§IõÈñãðxˆê c‰Qzœüã… M±¤Ä«{Zhj'ÂÄ'ŸÕ#ª—Ú!p¦¡¡tþ|Ù‰PÜâ± ó(=DÑx‘úúòò tO ­­í11GÒÒÄyóèÀQÛ³c‰"YôàAúðÃh½:@ ÊQT^ooáùçE“éB``îi¡³³·´4{óf-!Œ“hÆ'ÇD žžÄÅ… S')œ”’*±‹‹‰««˜˜hLM› !GïeËĨ(ôAÅqŒ¡¡æ~÷:•¶·ËNšãchèÚ +WŠ;wÖWVè~$âÆŽmÛÂ.;:0Z8~pÝÜè=÷€m7Np-Ì`ÞµK\¸0/>^ç´ Ñkï·ßf­^-J½¼µ#-lÝJ¦LÁ°/Ò‹cy ƒWHLgÌ(NO—à–Ðê?5-ܼټb…ׇŠ7ßÐ:j.Ä¿ܲ2ÙÇÐ:Z»EEâ‚ùµçÏK´ ´?Ôí× -BÇòåG·o1è7p_^à —.²a4óÀ^Õ&[[ŠÙ%}Úlóô†:»Ä‡Î;ð#£¸0‹¨ß¼ÉÆ—zzôĹt\µ* ãb÷eW,*aª6( QŽMs)Æ*;n¬s 5M¥@h2ñ÷'‡ÓÎNå- 4Ϙáe0L\"E¸Ë²ZÎóÉý °ßß Ḟ… 4ÛXì@úTÜo³Ñ 8+°èžeÍ{~d”â RèF7´@iÇ‚L\9ÜÒR³ì›)Sªþ¥ääöR±ÉD®šÌF)5ÑR1•¥°¡Ÿ¶[‰‰T”‹ç/þø×Wíò“5÷ÊòÓO:Ó\…V¯ÎÚ½{Bœ+=TUµzþg‡xß`6ˆom¦Ý7%ÇDJ_PŸ3"-HC·zÅ9s®E¦Êœ )'Nâ\gÇnÝj^¼ØËÝÁ%ãL!ň÷Õ«Äÿs©›Ì;~þ6•LwbN’‘Ù%ý6*ŒÞ¡™!IlþüúŒ´|4Ũ*Òa3*úç Ü ç¶oܹ~½hñY©Í¥W8äo–ì'¸ZWt&ß}÷]ÒÚ*‡"Õ§j a).,üú«8mZnx¸Áš·à$;×ÙN„ ôzxd-]j\Ÿ˜æú37€åêR À÷ô]»èúõ4%…XøÙ>¸g„EÅæÎ-ÉÍMÔ}l¡££ÙÝÝÜßü|¢Žs;Ú¡1†-Î/À‚éLð`&DD®.+Ýk½ é o½%¾ÿ~]uu¾îÓ™ZZÚ““#×®A¿p|PpTs%?Zɲ!Š··ðߤ\GÛ€¯å~`0M€'íë›{ì˜ÁééLw äXT”éç'®Z¥† W[Xe¡Ú§ŒçÆÅ ÀQ……%))Iº§‰ðóólldù¶••ÄâÇ‹Ëmhª¦3ØdŒ©æ Ø–oÞ,|þ¹xýzÝùóùº9vttDDDðê«ä«¯¨ÝÑɉƒk7éfxÎ3«•ÿ[Q!6L†Ê´´ )ߘevÖÕQµMö‡ÐÂí^Xk"0äÿnØÀ¬o£±$))i P6yxxàØøÀ[Iµ!Îךrõ*Kª,+c·RSSI7:×bŠuDEEá‹ÒÐ@}”¡ÔYbw\Œµ¿ý6ýì3*y¼"Ì6 нµ å-dHI!L}~ø@b‡&éÈIàZÓm 熟Á©ƒ³áfL&Srr²î­HgZP2ga÷Úµà°*ä0¦D¼±thv»¤Zñ½ÿ~ššÊjÇD<˜„†´ ok¡³³3::ZSôûïŒ<!EwÚ4ºgÅ8/Âe÷²i.¶«€üêE‹èo(9åÖ»Zå ´ðóÏ?ÛìGµ*+#<‚sšäwÖ2ml˜ 爇F¥çÄ~ee±üõo¾†¬b Þ!Zp6¸`- -Ø\íí%Ï=G—/‡é¦Ô2 M´£Å#€«òz‰+W^^z°ÈHbaëý æ–––ÂTnÝω'b7òh› ? O bÞàbÀ|iö)COšêg ÁØ‹Š)£¤)çèhHe<{å •lª¥B( Ó«‘ôå´püøq ¸Vß ã) Œ`†ª»;ºÈÄÂRPqP`óyË+ÈO,w~ª1býý,÷vÕ*F²0¡_5 S=1̉нµ ¤pU¡Pœ·W^Ø ðíÛ Ì0AÏž»ßš*1T£'ˆÄÈ ä÷½ù&[lBäWcW†A^íX„¢¹@ °æÃ$‰-Œ²$Šª8$Ë€Ù¿__X²D\ÿOêþµ¸ww¿é_þmþ°½è¿ß‹›?dyê=F!§âééò¬>)ÑÏNÈÑÆ†©©©Ái0º-À²àGx{{Ÿ9s(ÂËË 0!@8{ö,´ïÓ§Óbb¢‚‚¼ Ó8öúëÞ[¶¤?»*bú¼ý¾ >þuêü%³·­Y›ý¿]·Î' 3""<,Ìçҥ̣GÃ==}333a!…={öÀª0CöîÝ Ìå„=À ;vì€õ,t?±>aî:L·íîîƒÐÓÒÒV[ÛÐÙÙÓÕÕÚÝÝ =­¿ß¼6ØýFGs÷­VJºoõ·öô4 ô´¶¶ÖÖ6vuõ47·466 AF°]ì®]»{ .$_»“^îŠñ°”uýTDrÅì6Šê}E<ô;•õBÆ# ûL©’¯?Á j_ÿ»qÑ6yŠôYùùlKO·›ýLùŠxãgŠÔÕ‘€Xý‚Ô×K–:wÂË ZðežÜ÷߇ÇÐ8¸£ŽDÈàîÝKããå0š#3(9¸#ƒ‹È‚ƒ KÊZ-|åç?~qbÍûíÞe‹ãOË2b|ýÜ?\¾~._³œ¯YÎ5—ÿ+.§N \s¹ær;—ƒË9—s.ç\N \.ç\ι\s¹æòÀ §N ÜZàœËikû?€ð?t Þ3ûIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainter-vectordeformation.png0000644000076500000240000007357712536324510025027 0ustar philstaff00000000000000‰PNG  IHDR¯v1ÁTÅwFIDATx^ì–Ën#E†Ï9UÕÝŽ;qH&s!)šÕ°†bo€kÞˆ-Kž‚+³CBbÄuƒe;¾ôÅÝu;T§„GÄш,±È'«tNÿ¿ÿîV—ßúð“G¯?JÓ(ñNI@„Ž5vUlùB®ˆJ”žÃ-€;ž’ö Æ'Ó¶È-hŒÑºAèB9ï ÀLBdiˆÎÚ¶mâ£öž¿ÿî[yçþYºs@ÕÛèlMƒÓ,ÌžVº •’RÉ«–ãLH‚ýœ–•m ö3JH/V¢SâPp·H=åëÖ9V¡ sXán$ìlÔ*>@Ø·  u3V)"2pm<Ó«%I•È<ËŽHˆ¶.Œ™"³IÿèÞ™OË´ûý4áλ8þãþ!=<ÑuUŸžOæÚêæÞ®š«}ÂÎ'p‚µÕòd°´GÓñPÑ®ƒd7ã4³Â4†îî+ÉåÏs½›çÚQ?õß<ÑB&{‡Óbq^˜rXxʶ¸=ÜÂ@ÐîåC·,Vè«òü™²ÿÒÙp¬ ¹M©ýøxpüZ²÷êù´”ŲÔö7l³°|ºð¦œãƒœ~z:9ÜiÛY9/)ÓL¹¦qÃI3i_~%‡áhžBù˸:/ôîÎbQš‰‡½jãò<Ÿœu^WV;µ(õÔC5’ýgmÍÎx^ŽG†Å0Ãv¸…²„Mµ*§¿æ‡ZŸ%dIö°XV˺ %ý g=fºuÍ|&ßøè³^¾ÏAØåÜ që:Ï, ¼Dv>(E"¹Ö„ÀÚƒ„Hà½÷Dä:‰  ƒ,Ø8Wͬhî˜H00þuéÿ·"€7’.Ã[“àê+Ag Ú;GBjJ ²$ÇUÕ‚5 ÁÞ[&ÛÌðý?}ï7%€×ù]±®7Žø*)¶Ñá¸$¨ÖÚp }’)#l…[8Ìì=®_Ý ¢è †h7ÖþÅWr ŠÞ>Èó>¼ð½ncD.Ù™7m⤠bìÖYÿ𬱸Ã{Ó¨ÿ6ùjÞäxiaà‹’!À¸6eõõ— ZÏ> lŒqÎ[VgH I‚¼÷ëÀÈÆ&õ@Â@H‹_ µ’ »öÄÁçšT¢ø¸DÝ-Xk™9¶JýËç\ȉ­BJoêº9!$DÅVI•¤IˆÚ|òžn ³¿jWŽð ~2›kRJ%T´D'óŸ´½`TÅÚÿϦ÷ÞH„„Bï½ R¥*¨ bCQD:*Š (ˆ RD/H-"½†z/ !¤BH'Ùü?{˜÷p6ò»ÿ÷½÷°®›³çÌΙyæ)ß§Œ…s˜5PÀNÑdnNνÌÌÍ›7߸~£E‹~~~W¯];súôsŸkÞ¬9sÉLp¸ß@|¶ SQ1_ð¨÷îÝ[¹beAAA³æÍœÎœ9“0pÐÀ˜˜s©YŸUÏ-´Xõ”ªîÛ򯆼ukÅŠ>¾> 4 ÓÇbòjhh(s Ú‘Ï–ñ}T¢fôÒ¤Ñ)..nÃÆ 5jÔˆ©U+;;{ÿÞ}þþ òôô Y¹š…ù…tIL¡+êO}ï¾½»wïnÒ¤IåðÊwï&Ü N½º½zö´w´Œoñ#&ØlÒVW™œ€Ë  ‚ü‚uëÖ]ºt©U«V×®];qüDûíÛ´iãåéŕЫó!ë~Ö©S§Dã íÓK”Ñ–:88Bß| ÝÈ"âu¥Nn˜ƒ‚‚jתMkj½)‰w¨–ŸÏ¸woáO >òÕWÓ}úÝ ~›r6S?›:nü¸¾}ú:¹8ÙÚØž8qÜÛÇ'<<\îW¤ÀsÒzzzúÔϧææäN›öU•*ᜩS»ÎwßÍýäãOæý0¯i“¦fËp•Ø ºf´Ÿ¯Ÿ´Ã™üÜ|s‰Y†Ÿî2^ãÆŽ«Zµêkƒ_ð÷·±³©_¯þøñÆ2á§…?†……qcaAÁ¡C‡›5oæää1Z¯Â]»wO?±oß¾C‡õòöâ'¢"#?üàäĤ™ßÌôò²L@ƽŒ ç.Ð>L²LÎL¯~[¾ü‡ù?Œ›8î…^/8:;>*zT>¨üØ1c³³²Ç|2ÚÎÞž ÏYYYõêÖgä­éÁÅÍ>7wÎ÷;¶ï˜õí̦M›ÚÙÛ5oÞ,hÚ_aÒ¿ôÒKyùy×o\ÏË˧çÐqff楋—lmmƒ˜tggg¾²··0$''çôô4GÖ§‡»{a~÷rʆÊÅv¶¶¹y¹¬`ÐE–èýûYÉw“ i[ÆÜÕÍ5"<‚+…-qö1ó<°ïÀòeËß|sx‹–-è%³èêê:xð«õë7øtʧ/]âšûY÷g~= æÁÍBk¥ºƒéðšÿÃüƒû~üñÇÕ«WCÊÐŽ¯¯ï¼ñŽûd\ZzvóÆÍ™3fBøÒŽî0—ÓÚy˜óð‹/¦2´\žæ_åÊ•'Nžpåòå/§~ ã¡#GŽþ0ϥVtž˜x{ò¤I¡¡!o½5ÂÓÓ“ÎØÚÙÖ«[ïãO>f.^´XVá†õVý¾Šd<Ô³¨w¦åä‰ãS§N}®Kg&ŒUÁÐÁÛ»tî<øµW¿™5kÛ¶íÜù¨øÑ/K~9tè³%7Š–CT9~è‡yóG¼õfÛ6máµ´ãâê2äµ!-Z6?sú —ÇÇÇ—3›á]¾þ~¾þÞ^Þ.ÎÎöEE…,¶‡s˜æü¼‚¢¢G09˜}†.9Ÿyÿ>'s>|˜Íñ)ÏÏÏ¿Ÿ•UPPXTT”•õ€‹™uìV -ó‚ýÓæ­øxº§xƒ¨&æ)0(°uëÖð–Rí Ž=zt_»vͦMCB‚?ûì³mn«Z­*÷4oÑÜÉÙIÏ ™°›·n¬]½¶N:µk×..Aph2ÉlöõóíÖ½lfïž½1µbF8ö¸}ûöÔºi7„éÍøÛ‰'vý½›a ­ …Ñ훋£"£Z·i½qÃÆýŒþht~^>òspíI,=çr>@ŠÛwl¿xñâ°aÃÜÝÝéÔ© csÓfM¹~ÙÒe/ |iÿ¾ý_Lý²Jxøúëi'¬RЈ4Å?ÀªÕ«ssózöê w¤Â̹ Ëó]¾ùú›_ùٺ৿þúëó]ŸßøÇÆF1è,¯& ramtèÔQ¤´ƒÞÐë…^ûöœ½‚¼8/l 8ã^ÅbÑœ¬¬Kè[οúç#00в¸M÷ïßÒxƒÉN¯üÃ~}|}ÕÈÀ!øÕãÇŽ(®Q5ÄÑÉ*£EC7„½''ßíѳȘÊ3ó!:º&W9r¤QãFa•ÃNž8É5P›¡é ¾‡¤‡P#E) \͘˜åË—ÇŒkÒ´Ipùà›7o¹¸¸°ÎTŠ&XF¨ŽŽQQQz¹ÆgêÕ«¯Y½æêÕ«œ·7$èâ솆ÅÜ­ä7L)ûA6½EZ…U®Ä,ª©â•*UbY§¥¥ñP<‘½í@4›Ô/Úšlo'Þ¾pþBèh?ZVíð-ƒ|îì9äy9£Œ 7wƫΛ Фažis*ÑI×iYÚõqpt”ö9a§‡<<<árê·”hqqvA`[4o‡DjÙ²eIi‰z$é$¯ôôŒG%Å^ÞÞ b¹}o d()99™ÅW¯^Ý­[¶¶k×.¼r8íŒ"fjJ*œ*4`ÞÞÞ´–’’S3&""iÒ¹Kg77d‡Ü.ÓÀ?¨!--‚ƒ1ÆŠÙ¢“Ü’™y¿× =ÊwéÜ 6ÀCé5tþåååÝϼïæîÆdF™Ñððô¸rõJÑ£G­Z¶rsu«Z-ªSÇöpgE72Ö|fÂȽ¼d{ƒAvvqÑ=¬I}kcËçÇNBe^Ñêÿ‰LvÅ}MÊ¥(·Ð¾î·žâ è)J›U¶‡Y;X:œFˆÐˆRS­Ù Ã‡Ž«n—éá@}ã =ãÆI%ÖÆbÊ:É;¶ïb•X¬ HO»W8¼ZÜô‡Î—˜íh[>Z'¢f”Œ:à%ë mƒÎ@¦eµSÂX@"a-¦,t"‹FÔ¬p]qYÅ]Ü©oX´}WÈ9{öÌ£GÅ(•t•wéï }(,,âì“çe„…·Ñ,„^µj”žÂdtøÒ@9–Õ¦g¤Ë S7Y(:3Š®X©¢«‹Ë³Ísº^±bEÔÚä”dº#´"#ÂgV3¤Íjæó³ŽÊáá|NIMá^“¿{÷®ÖŠáFcàJ¬¯Êaá(S†EãÃDt÷ð¨P±‚Á T÷ó’á†)bÓ¢ó>xð€¯ô¢»¤§¥c¶¡ö1Ÿ†v”С¾Efûûû§¥¦¡ëº ‡C÷“µÃ;GFzÆùóçË‹·óç/_¾špûvJjê!󇑗ÿþ8š#< ZÉ/ÈGÅaÊxpXãµë×µ{/^°¼.œçu޹[ƒN©AÎ@\ È6>ÈZ¡c0üÓgÎÐn‡ :^Æ5zZ` "飣kœŽ; WTÀˆãhìQÚvíÛ=f“YähÚ¤ cwüØ1ôa.SíðÀ±±Ç0÷6jÄ•jÐõZ!n°G„ïè¤r^q¬ÔÔÔsgÎ6lØ 2"Ò².u”hÍö°­Ú·o…vöìYÑ„¤dcŸÀ¯øùø=Å9JÜŽoË—/’~ýÚ5pîUíÐæ™¸3#ÓUr>ʇ„U®\)¬’¼BBC2tæ±é˜›[Ÿ„Âä;bDÐðlNâ}à¹)ûùûU «È‹F8Ð~P\ÒRRXùLðS2Eº åÖˆ®+û}ÅïŸ~ö)#H/! ä7ø óóÏ?OßÁ·Õ°*HD÷”¢H¿õÖ[cƌٺuë!C„ÕÓ,îÏ-zyPÃF 5Ê3)C}PƒHË(üC^‚~46¶u«VÂiPÄvíÚwòÔøIã+U¬(È£ˆÄKO£ÜÕ²Uˮݻa×õïߟ 1|øjͪ5¬Å‘ŒD¥`1YèÕÒ#X¤§ÅúôíóÇüºäWVz8:íp&((ðáoˆ-Í(0”yò$í søàWüq5˜ÌÍ›7úé§ÐÐ.]º Óé5Q9½¾üò‹I'N™<ù½÷GFFFíøë¯5«×~>õ³vmÛñ'¿háCÇ/Z¼»€ùæ×EÞË»X[³¿›3qü„ ãÆ¿öúëAåƒ04V­ZuéâÅÙsfWª cÕbÈÿ½ëo/¯Zµj5jØH´¥Ð ÔŠ©5ë›Y3¦Ï˜þÕôÞ½{³Ö““S.\ääèØµ[7([Ø“`ùÐ—Ž¢`QnM7ÅJDs®6É› ú| ¨ç`xµSOk‘ uïÓ¯O­Úµ¶oÛ¾lùòØ#Goܸñâ‹/Ι3^TW2êÃQ'Nž>ó÷õQB‘qtqäöçÈ÷G‚FìÞµ{þüù 1HÊ1ŸŒ<éNRË-]œ\ ò 9éìê,x€þÎþÓ¦O²|øf3mYº®z¯[Žb£7ÒÆwÖÌo¾›3gÆ Ø¥hâž8q‚¦*.±²0ÎÃZ;uìÔ¡cèfüØñlã&øD…Ð ¨Ít)8kÖL.ÖË,ëvýúõïÚµÛ™Óg?ùdÌ©S'·nÙŸ€ÿÑ í4¨_Ÿ—‹»+”Áõ Q™íBÓ,Œ}ûöùä“cÇíÞ½ëå—__ @K×n]EÎrüS;UªD¾Ø^³fͧŸ~º{×®Ž;Ô®S[]# æGß„:þÉ!¥7I…E<ŒÚ}x÷¹Ô³ +6jݼµŒ˜jÑH n¢QXîÐ7^÷ñõûɸ×_{ýƒQðœð†•G³S™ÑÊRkÕŽ§—çÄIàŸ_M›þê+¯~ðᨖ-[ÐG.ä2Q8¬5Ji4‚vPég7ýëÒ_ï$~ðÁð07W75ÄŠËl‘_‰©Yó‡~˜8iÒ?üxýæ·F¼…BJggŒ¾$Û<ÃäÁZ+Ñ<´(• ~úiì¸q'Nºtùò+¯¾h1+X-¢ƒ[›ßzóJšáâAƒŸLš4é·ß™4yÒ€Ô,C—4…I¢€rÞ”â)oÒ)ã¡Ôhí[u1€ã™Ë§ãJO{•xµiÞ†æ…Ä Ô`ì´l°Š7ž=s%'S—Î]Phé¡2Õ¢äƒÁ¼æ“a½;ò]”Çë7îݳçæ0 ô 錺"CoíÈÖЈv2yÊ”V­[ýý÷ß7n:{î\»¶mñ3é,rš´á]éÅÖ«Ž;ù~îÜíÛw>Þh‹âLöæ0œïS&MÁÄÕ‰™ºxáb¤•Ì"Ú™(t´( F=yÒd|ú#Þ‘,í ¬Œþø#l*"*ý¼ˆ3( lú£G÷ÒŽ!½ç̹3û`ˆõéÓ›9 .¨T±½{õ^¼xñøñãêåË—=xÝ«GOáþJ/Z`ÚÍÜ.'þS‡;²ÓÃMÆŽ)F™0 ;¥Ç]¸xmsyá‚…õêÕûéÇŸ0í êeé¯]³¯&\"•ŸÈc3-˜Æª•«À.™Î-lE¦k÷®DV(¹+︀7¬[OûuêÖA¤©¡Ý"h`Éâ%“Äz|ôáèØØØM›6ážhß®=Ê¿!´ !ÙI\‚’Ížîžø6±K±ù•1£ÇÀóVþþ;†úÉJÉb=xð`Ü©¸)ŸNT;bÄ‚³ÑØCü­x€#|ÖK–,iܸqÆ ÅÕ¯®Dçº>‚”eÄc¢ŠñÊ+¯lÞ²ÁZ½FõE‹#Ë@ÇŸFµKyL Ą̀X:ñ=T#X`¨;NœµF¦-¼+>Á×ׯÓs~[þªJ!*J-Rsi‰Íºt™5 _èâ•aÂó º÷è¾aÝ|T›4FǤÃ,Þ¶‰§~4i… t¤O×®Ï:x0‡Yd| ®%ÚÁÀÕˆˆŒ@YÓ«À'bÄ6ƒ_5mš˜˜X£zÊaaè­¢´s¥³ Þdj#«F ·Ðƒr@0,;öV‹ªÊ’TC ÿdJw(퀄ҼšE ˆ:9%…Gx#:ô c¤†UÁ|ˆD~È@×¾œ„7 ÓÆ@€Ká%bXš¸±b…ŠU"¬Ó´ƒ>‹F$-7>|@ xnöËýrñâ%î=sö,sœÑÐÆLhðnò]&Œx OO/ÈŽ`8H9-`áFüIû«ôe2ïgBsĵÒTƒ†õ%4¨i9sè6rŠŽúé;Lãà#…E–¸´è˜h@šjظÅ 5+cY¶ª·ò°Ý._¼È(A÷ôŒ°Å]/hÎW'苚˜À  ð*U ‚»äÿʰ)h…'/,(¢-耠1ú‡jå!™QÈ»—¥Å ªeDç˜_ž›®óÔ|….ÀÃKð­óÀʇx…󲚹 = üœAšéI‘F"¼ss¬h\µQò<㜎ÆLCIÁÁ!BÐü´Xóú,§|`úS¡¬-yé;SÄЕ”Òm:ŸŸ_B`~š|¡~ÆÀÅÍ•¡SíðY°žðƒ¤¥¦BOJ¶Bå¢ÌBIÜӅܼäõW^~¹BhE¤`á&~þÑ5k6nÚ´Qã¦5ª×òôôËH¿<ö8 €g¿xñBvκ§Ÿ%ÔÖÉÁ‰þèÑ÷2y2.A/:`RrÒÏ‹FY#’€{!:§qK3„µeXßù{#ß;|è0íàƒ€ Fyîü9ì{lø$ípq±v`ÀAæä\½z —º³‹kdT5T0ÐkW¯šK‹JJóÌ%yÙÙiÉÉwr¦æåeÜMB9ðó÷÷õñmÖ¬ž Î-<Ó¦TœC® š“Ÿ¿ïçS§¯\ùÛá#±Dw‡ƒŠ¯Y³š¨­o¿ý[äéS¼a×{Ë$€äòˆÖ¯[ߣGŒ[_šŸþ—z1R[š…&ˆaGòêÂKåM´4S©ní2AÍ[´ A½_R¥³Zk–ê C-M)µ§vw÷`6•å§(U&¼„TàŒþüóÏømŒ:#“/g±¾Ÿÿý”ÉS0Û¼ô"… ˜ßÿ%ù“qcQŽè1è/¡>+W® q…¼V¿jAGGGÿ´ð§/¿øN¿!þ‚쮵«×tèÐñ£>‚l%79oÞ¼¸Ó§ ˆªqîì&12ª*ƒ‹ÂÉz¨X!¨rX€9/Ê«äW¿~ÕË‘Ïí@/¤µAÓ¤”+- pöÀÀää+–e888AUÈÔzu뢫ž¿p.))1îÔip ¬2):wîlÖD8$ŠE‡4lد_¦Ö@åÐë¸qãh»úè|Ap€|€¾ÿ¸àGèƒ'Œk‹HÒ~ˆ7&ÂC†_—)f¯­!ØÌÎÙùß°4ËHžf-1R²šøî£b“ºNÎÚé¹9ÿîGúƒ°Ãðð¦›Z›0\‰õÌC.X´àÈá#DØ}3sÖÑ£G»uëþí·ß`¬kѧ|øüóÏzµèÑ µø§-2–.[Š­OS«W­& íÝ÷Þ;vª(PU«LŸ>ãÒ¥‹M7!T0))%$4´|py{ 8ÍÅ<ôˆæLå Q¤hg¤‹‹ "Rõ[’L5¥ ßJêž=îÞM‰ŒŒ ¡²QA%Ê6 <:ØÃõiã&ÙkÆ>õË/‹.]<ÿæˆ7ë5¨Wô¨nÌS |y f^9!æ), ooâÇN#8Ïžhß¹ó/”‰Å?/Æg- ³2zÌGaáØ¡•É«Qfª~.5´ÐâÃ3ˆÈ²<ÖÏ25!~ÖêžS{]ì;4ëÀÒzìIQØ€N1´“|] 7¶¬9QjpŽù°þ5é7_¡<×é9^°ô‘ï½·}û¶È¨ˆwß}†&iXðL&›ë¥kǘ|…bE¨UI¯â*¡#ß BDÜ0Ö4bk:Ù£u›V nzÆ}’)Ôð±Ð1¯@œq àC¾}ûÉE•*…šK¥Ï"CyÓ´¡2©))¿þº,))éÕW7hؘÂÈàÌȸ4öøƒ{Û´nM¸»»OLÊÒe¿nÛ¶ƒEJ8'ÁØSðÅ?üPx¤!BÅX3åxÂï¡‚/r;á³fÎújÆWÌ  \€“<^€)¢Ã!ª†Et=ì\k,ß Q¾l³rjÉW´kë¥-f÷ÚUj£'1°´IóÂôÍÛ oâ4^Ò­°ì™Nž”ßR·g ð¡~ýzK~YBVÝüyóÉ®ôò˨Íh.ðçgCh )"þwÔF·)S&O˜0áT\\ï^ àŒþЫS§â¼<ýªÕ¨–ŸŸ{éâÙë×/¦§'·lÑ(ºf½H¼¿uË1µj:9áøötrrTäAÈóiü¯èh줻·«U«Z·^M¼§â®ÂÐ*ï×õùNëÖm\¸è‡— ÀV þàýQPù–-qÕ¢’æÅr¦·¦uÈ5-Ã#ù€6:kæL2s¤àN#Þ~‹(b‡@)C;:M[‚’Gå ãËÆÊæ¤Îä mD¶ˆå 1ÚYÞà Dâ$$Ü®ìfÎ/MIK¶µ·ÁÂÒüV3oPž7ðTP6oˆWÒÄí¡BÄ5У‡ãïÙµDïô©8¼vh—Pƒx¥ŸtPùûYe5kÖ”xQ"®\¹‚&‰åqþü¥À€òAAI‰  |=<ª.X°+'çnxøÐ¤¤Û»vïÌÍËF;.*zhgë*¡Gʺj€,È´´D'GliOÒͦÚ5\ Jm†&ž{®¾ì¥Ë~~ï‘ÞÞþûrsõèÓ»oDdäŸ[ÿøóÏm\NJ¬%÷Éãã˜Ð†¤Qð®×+±l?ûüóž={!}H"ÅDóE¯’ËT;6¼éX7³n±  __žH‹Ò²,ýÇ—P8’b,r 5ãŒÀþ,(É/p(A._ž'Õä„­^0)½ÁFf‚˜évèŒÚ|Ó4L’(óKÆ'xEx•pÜH<OhˆÖ…mÂQºj}ñÉy•Qéò%rÜ覦?Êv´Âò¤¼‡NùòAÂæð$?q24$Œ §«×.T‰ ð¢ö““g@€; hIIñÀžŽ>>þõêU§Ø„fÊ?z2NôM¹;m葃ƒ“Ò# uZ Ynà 4VèÔ®m‹ïç-Ú½gg£FM÷íÛeoçV©ftMtŠkW/åå=<‡øg:hx)»8P4´&€À*äˆ,$=“à#ìªe«:µWl2†2 ·NŒãš†õ(Y!¢‚+¨•Îöÿ·°ˆ(¸Z0‹|<|80ŸhSD„ÄÕèÝnvz|ÊÑÙAi40¥¥K—mܰu‰”{¬Ím[·ÍûnLè „‡}aÞr+ßÞÉÞZ€©Í™ýƒˆ/ SŸÂâ…?cÛŒ=Ž"!°‰›‡]T7fÞË$'¤rXäÇ÷5jããí\T”MI‚RÌæ¼À G'ÌÜsvHP(jù`ºc’Ñ 1‚ ºD` Œ÷áì‡9YÎήP/³öÎ`_T«èwêù综úê ™3g>rñ_¡b(ÌõìÙÓ pi¢N?¾`ÁB( i³f<;èËóxù•—±#„‰ÒÌuŒvõP“ Bzè„@$Ñeè^øl¹GqáÆ¿þõ¡Ö*П0dPí1F»ˆËPI,q)M“\†éӦϙ;‡x8¹ VÓ»o¿»`áO 6âdâ;›þØ4üaDmkª ØüÅç_lÛ¶mù¿–ãy»¥ xúßy÷E‹“Áòáá8Ä•$ Ä£èãëX>.]½zXùòÞ……M6…ÄÕÂð1×£¢B\œKïßϰµ- ô ûò`B¼‹Ù,hÌQõê×®]ÍξŸšz§rx„VØŒ{g³Gôóó¼v-!=£#Š„f77çJaÃÀ €*¹Q—/ŸÃð!Yéûï¾֯ǕϸáË]·v6sï¾½¹€‡ÒGÉŠ‘ UÍþöÛ 0È0G¦_;fàQfñhÿÇ~‹¨„µ>©Qô†2¸ h”˜U°备šÈ§ ÷íø Ûxˆýë_„ ÌÿᇶmÛ >”¡2v6mØÄj@×'™ÐÖÚ€&qJ+Vü‹‰‹gµQÆX†‰ôôÌZµëäåæ>´¯gÏö4óÈÖ†psòÝ;÷ïß­W/ÚßϽœ çù//'OOgð%Ùxƒ4éÀ¢—¨ þoYo ÝÕcèOŸ¾päÈ¡¦M[àßbøžËùŒŒ´û÷Ó}}ÝȬ¥ªY³úŠk2ï¥PZ…l'‡ ¸cÈæ€R¹Qy•˜`É+$ÊüÀ ©i)©ÄÕÏâ—7 3wíÛ»—¸´‘#G»u§f…ö,Q­žHaC^²!ÇP>?;L®Lî‚ @ƒ+KOô’ˆ Á Ž,Sb; v\‘àœ¿DŽôêùÂö?·Ã_8dí€¡Æ •4””>)­ Ï ~ âPP0ý·nÙ}‡Žv†bqåòÕ°ÊUXš±±§(WR©Ry%<5H„Gr.]:V¹|Íš¶v¤£0ˆ8󠉂Ôlp{@h=˜5– ~ Ѱ… 'G»æÍšˆwúÜ_m§”@£ƒ3·¤ÜÏÚ¶íO0ÍÎÛ—/ýET ã®7¯•†µ0¶8*WŽˆA‘ʘøGQÍi“üð%J¯^=ÉÃ!°%Žï Ñ_L3ƒÏÀƒ ¯¢%$ɘJ¡R>|Q·nÞÐr´miD­#á„ÞóL5l}¾µª¦‰-Z(-²Ì´Ü À>@åÖj „Œ# ÙÁú @¨AôP.ÃÙЧ’e¥g(ä´ƒ«Æ ÀŒ–…•ÇÜtsóðð…ißN¸æçëæâœüH .œtp,mÒ¸®“³ÉB劊ßMIǦGä›Ä¢yŽŽÊ&5JŠ’$v‹Ž®Æ4ÄÇßIH¸Á¬€R•P^ÁÃÃ{ðàAµk×gÙ øûùùT 9s:®Y³æhu²0)ýÑ©S—-[6\‹7ܹРf½òa²ìPœyXŠy€i b KÊó0£xÚ´¿±‘¨íø£=Ü&—Z¶h³sç6Àä 5q˜ f¤JžNrèžqH ²ÔK¼ËŸ8èÑ\¬µ{÷¦dpHôÄY~,È?â‹Ü8ÜÝñÁâeà[CõãRs ¹0xNk»ú Æ€³`çŽQ¬`Å3nÞ¾I-ÂqÃH¸• ¼8 Ò‘ë{÷é½â·Ä@9­‚9O!TET„Ø"6`(„\«vÔ7hƒº6Õ«Eø¿LË›7Ïg?È´³/¼x3""ÔÖ–¶X¥å@{œá"ÈSM#¶ÕžÍ¬½òŸp¡€Ç½” »C·Ô€}êoÛ6mÒÈÓÃkëÖTÌÌÊÊnÛ¶=Ár0ô¹N:€Ëñ@ø·hKò jÖ¬uþüYº¿Ÿ?œ™|à¨Ö±•|‡rÝUš”ävZG i$”×°V¬˜è0×'l–È.Ñ‹iŒpzÚîeä ª¯ª»ôr¤ñ“'M!Ô€\AæZÎÌͤ`"AØÙ8¾é|,ïÞ=ânH Ãmí³ÆkõÎ{ïP|à[0qóP`Þ÷ó82ø5…yCïh väy»2»(ê⎢ÌV€­­ÕÉ\\ÍIwo^¾r±¸$KÏdCD¼‡¸a-«\ˆ. Èhr@o)gæ$c¯Ab8äœåŒèBõêÔ& b÷ž„Û R +„„Tôôô¥î™-öL1·XØ¡àZn®®›4Û¾}33Ã2 ²$ºøúõëßÎþß„Ôõ$°N!Nx´'¥®‰f‹7çã1c>ûôSrsIí¥zb%Gû±:¬ímñðµ )ÏB¢”¤ÒóoÚ}bÀéQ²êv}J(ôï?Dq›7ná/@¼íÞ½‡˜œ…‹Õ­k âÀ%B;e?=šœ]jjr»µ9ôáG.zAa *TDJ>q˜ø ü7ÄC“Bs79eð7,˜­‰•Fcbµ IãF ·Ýss3‹‹‹dç»»cÿ#SÉ4KšèâèÕAŸ¹¥%…á (Ä"tµ4W/šOÈ“(×4FŒð0 ßÄäë7®\¹”ˆŠÏÂlæzb¸´å3ÙJ°O’­<”’’ ‡»›”ôíìo‰‚kÁL@Û#?èØ±#†4þ *cc¯Ÿ°/öG ¤^ r³U«Ö¤{(.+޵|F‰0ŠOM¨P1*"Šçø”OjOÃ$%Ï:»F]¦EHª+¸ò…^½‰=GåÞ½gÏÏ‹£-­ø}Å`•vè°¡Ì+ò©Yó¦<+·[w‰qkzþù®×o^#›`Å¿Vàêñõ \û Âu§|>¥Jd„­C˜Ú¨>´TR‚=©ÁM¼M0Qˆï_)ü€ÈÖ³œ)ˆ[ñk›,œÀL÷YÜ›qïNVV2V·Ã0(¹I”®«‹G`P°··Ä&ÉÌh9 ¦ƒâ¤`·jrjÀ±]hE<Ïa J°˜JG—Çk¦²——E ®_»òÃüù,Ù³g?ש35!d ©æ±pÑB B\q¤$¡’SvkpûaQVoŸð •ùưPÞŠÕ"±Zîø+}g;ß¶Õ«V"øT¨"m?åõV¡xÊáÍðyÎXªB >LJ±š(AgFK"Nz_ýõÛo½3{ηÈEæ;eªW¯^QÀÊtžHÏðýÔ¨Yí[ÈyzçíwgΚ]£† ð+, 'B:‰XÑLÁ:…´Ñ8»Y›o³ä}ð8¢ƒ4ðpOº$++=>þRIqnp°—W€½}‘M9‹­ëú5Ò~“ëDDaÍŠ£X»™Oò¦ÅU(#&Ã(p½‰—ÆW´ñ¡·¸4›6kN/¶lÞLâ=|­%˜µhoX1 –@ ´HWËôƒ3ß@ׄ‰O¬\}\!¼¯SR’1,¹¿ZzJRJ¸åäÄäýû÷Ò”JÓ•†eÍ#b$:B“ðv|“<~¥ŠašGÛZÊ˜ì ¼EŠë©j2ô•Äpæ·ß~›òA³fÍ6t rÓæÍHà¯P!Tù¦U4ªe­ÜÙ‚a01€K`ò„«/\°à•A V-UgëÖ†¶(\%¼Œ› Í»F74RP1$OmœñH“#l ïÅÅ•zíê;;¢HÂ]]y(XÈ#ÚA¯¦ îÉS爇.((ªSÛÆäð¤ƒ&–ìÅËתEU'®Ø¤4 •t£ýOÎÈãP§-îÔ''¯qdh!ÈîÐ’ùO /@ûá#G(Í¢Š¢ q¨Ì|›Vú$ƒ!‚Ù)I¡r´1͘Åí@z¹y‡y„e<¼ÈËý\&:²„,id QB ÿm@ âÄ”£l-’«$†szo–Ô8ôÊ ¶íÛR7•ÀhPÔƒkt:ОÏÜÊãY?6Ø8A`½û¼Ü Æž 5ëÑ™\\œ/]¾˜¹Aƒè_‚;@mxZE¢ ò+ù“‡‹ØÃoÜ8÷¨8R·®®ŽÚW(ÿf()%w—•««{DD5Nвwêd¥ aNN®2 B RvRA‚ÆйüòËòÍ[ƒÒR¥öΤ&›bÉ¥¦&EUúáÇùIIwAôQZŒ®mŽ{(´IVÒ¶l‰/D[þ3 ‰À—ÛqgfeÕŠ ¡ž¾Û[ÁÁ"|Œ0¨RSUj1‚ž.âw û…Žäy‰BãN…Ja‹`ú *\–Cõòì™3{÷îÃDä /$é 0|!CÕ!´ …@@jW¯\squ»s÷.nŠonÙ²yðàþ,qÀªÖ©SMÊÜ­¹¦ ×|­Iî.LJ¼š—›N\4 ĜƀìPõÔè&õÂÜÝã322/_¾TÁÕÕCƒ=rðD“ ÔšïfµÅðÐq<~=qýº ˆ¼þú9:ºâK¾‡;¢,ÕÊF­nÕ²¥D¢šµã"â8HÍvN`õÕ­Wÿµ¤©?‚¤cC’† ÷ºuëtÚ-fÅ3ýÚÆéV(6-ñ™ʪååä‹>fÌ'Ø£ÒWl?—ù§xšÁ’j$… ‘`ÆV][Óê<’²NîÀðaÃ!,a•$&€†Ê`éƒfa'²8Ø;%ݹݰ!.¥ÜÅ‹çQÝ£ftÄíÄD怱@L1«àH ô‰œÜ¼{™wññ% R›+–¸Hyñ ÷!ðéé÷ÁX¾ÕªEc/;v2ñvâ’:ì9¹ôÁÓÓG!÷ ©™L8Ö¤»TŒ#`‡>##ˆlر}g½ÀmÁþîÀX’JæÊèƒh¡fÞ½gLMÒˆ¿ýf6é “¦LÂËPÈ Ãnå^ÅÀÅ£m˜ñ à 9ÿ¿>h\²=ù`Ädš=½¼È–¯P±âàW^å ÊÍ3‘¨-s¿Ÿ; ÿâžËl”>QýòÛ9³{öè!±5ªWgÉMêìì2tèëZÕŽT .M˜8xbbÊ!Þ x'>!J†0Дý"d >>® Ÿ!!~n.ö\¬É_V ÿ Ž"&úAÖÝGEY ¸€ "p©È#s„Êb@ãØ'9%52²jþ8Kssóñ%&&ùúø×¯ßذý/áÁ·nÅÃ<˜ ¶¤*á¹y9À‘÷2½½=´¬½bÖ‰ÞNÔø'c>¡4£áêîÊô ‚+ûõéG£_ÏúAzU puâ÷—{ VˆÈßÿç^Eÿ º@Ÿ!e”q.ÓÂ#Ä¢èÕ®]‹{&˜â{8¯1…©×DVEVv–¿“?—º‚›ýÍlÒÑ»<ß™±@|pG/F6º{1tìб )PøøˆáhÚè]†ìD´e ÝV fÖPx ˜j||ìyÁÞ ÁA~Ú§mˆ¹kÖ”{3ˆBvv&P½ÖŸ½Yã fQøµ)³á:! Î@š¨Ð" r X@}bb25YŽ•*UÎjÄø|ʾ2=¾bÜ­Ì4Ék|#2úX*W®\Ä÷ d•´–<ÚùóæþDÁÙIÚ“¦x ;kôêÝ "Xɱb% µª‰ '³ñ°!•Šyv æ2¿xëÙ¼RÀ©f $#2A::œŸ$p×®_»=kÓyýÒÀC;2)(¸‚ .žû0WÁáh‹ˆF`×cÇŽA ¸%HT\Rß-¨2JKO¯Q£ª2qÙ5ª_¾|Y¯^v©±È(m‚5ÕÐÀÚƒìòórѵñriÖ YÅÄ KPïQo ü®%­\,Æ$pBŒù’Û N /Ü[Ťò5Ï9AJEç"­D—Z¯Z¥æë±Gü‚•N zÌžô‚og}KÕHP²÷q×!¿T¢•`…ÐÄ3H„Á»ÉÉZít(ØÌ?…‚“4Á/ò+Ï %¬Ô \‹òèd`srÙ¢kÔ8p !:ƒ‚œ±U¬ï§ÐU±¹OŸ"‚äO†°–ø°ûÜñö;oóð†$.œÔ(l ‰u²f¬eYÓm¡™6­y¡”?èF[¢}Åõ&˙Ǥ " ,“ŠÚ `æF5ë|Ï™üœõF‚꣄³q: C€¯`Ë€¸°úõ„ž˜xµW6gÓã Ìs†J[­zµ×^BÑ Ä‡ü ß‹/ëaäÎgë`Xd‘sì*E«¸L¡ ~‚§€¨©WÍÊdIƒrþƒ(uÀ‚²…°ËÀhˆz ZJ¹ ŸyH°3òI´œ=Py2Û¬}߈!"úÍíú²°™lAó’èrs±™ý§ôCF5Ø ÿ"÷šì¹ƒJ¥ÙuvR€ñ!‹E[m'‚)€û¾¸åƒ6a`«ÒI\¢‰?‰ƒ² þÔjE”AÂŽù,°ƒÈ<>*1ÓgIBg©ƒ 赆ZZÆ ùÅBÄ»¨U༅ñZä<)tõE…HíO_²Q6¡ù É ó šžXQúð´joW V<1 ü0K¿Lý:=#ƒ!B·ãwy\~Nn$Ôõë×èIiY6‡”ùûAä‘X¤ê=ôŠ6„f‡;AohÛ ,ÀF3c ç6¶–,3Z¿Ÿ™Å(s»ÎÉÍቔ²/ƒ”a’IÁpòÃh WJQЉ 0v˜«ft?^XPó«©Iÿ-ß —Ïœ”ÒÏ'ûvÈ×b€Øh¬Ê– 9êt0 ÚsÙ—X¨ArÊiÌü¾I€j€J€]ŽQ°!º?2¶k{)Ò_Kç™/þÓAP#à€leÁ0zàjRYX73FSâííCiVJ%)3Ó—«‘‘UÑŽþIð¿Oì$}‘3(- rœØ%¬¤f­­IÙt‰`b,o/cV®!€Žðe4û þLƒ¶´ví:®.nW®\&Ž•¥KlÖFæ5µÙ¬o·®CCôº6 &MjzyûH(‡6£6áØ0=Já×,ФGîb°Í·£#¼AåÕðnRjØíö5ˉP6?0 ‰IyJcÐUŸ< ¨| ƒÈ,ê ›Oc4bº«j¤s2l®‡£Žñ„ÿ¡;«‘æJÊ @I ÔgpÆé*žkaŠz¡>ËÞq¸…4ëÌl耑—þð&KX\RƒÐÎÑýWk[Ç2$×JŸôChÕ»‘èÜå9¹DïòãPAÎ,´ºuê<¾wï^lBʱɲ€ôkhסœUû´!åB¹_%ÁÞYàèçð7·ÂÐ94¯m/î’û`²Ð…> Ô×7ÐÆæ:pdVÖC¼Ïˆ,ZU•Uæ"=55~€:„«`)jm‚ñïí)ÝStLõ*GZ&ëþλ¥ÒyMmIII %Ü^JìèóÙxjÀº/Àv`CÎÖ­Z«[ òŸþIØ•PõQíª° ‡dÞ‰²"}0dåÇF_Ù9º†_Meü· *øøKÃ.gô‰H™uh;˜L)oƒ†B!tŠq…zb¨ØEáŽqãǾûλT8 Ì"ñœG¤Íüz&‚–k‘J; uĆÀÏLó•RÎh™6‰éÞ$b„‡åNÆ´–r#¶¢ÞÈfx8¡(KXè~ÞÞwîÛ‘Z‰i¶ÎÀdd‰1LII‡ÙXBS‚‚a:2÷4§íPôëÔ^ŠI(ªâ‡úððÊI#cÌÉ•{±’Påð´ý‡,€šá((΄ö™eVÏ5ìj±lÙR'ˆš£ìlÉÈóøj\Å^C¬`²I^”2ÿPš‡ìV±x^+qÍ¡4°á ñÿ\´pñBì@)±L$=¦T96/zY´3}$Ê#{.,X°€JˆØxk,êR•/¿ì·eÁ£T- *0 °ÅAžÕ¶t´[H|Ęd5pqq{ô(—œR"WÑÛÌ%.ÎöšY¡5§È¹ÔÌ5Q‘ÕÓÒîÅÇ'Uª”ΠKH£ŽÛ#}Ì$s"¿!ÊZµê"• ™r®e¦*͆ó:£èÞ÷íØ¡ýÂÅ¿R`ªE‹6ŒäÁC‡HÁ:…$Bµ‡¡!Þ‡ÐßúñÇ~üüÓϪDDÐ’Ù¹sç $ÉìÕ«U#ØšóÝ»uS륕“oÙdÄuHåµrÿ‰Ý' Ô¬ü´ð6?ÎØ‡+AÂd±¡[îAÂóñý¾fU¯©i(”˜P3ÂIJ{²ã åèÑXjpR껹ßqRˆ³Žják×­…ÍDDD²‘³âjL+®¶È¨(6G «Ú¢Ek,>â `éGŽÆ¦g¤´hÞ8*²2‹í±ƒDt Ó…]ûû2ÇÇOœ8{²UKg͈U¼-:?@Ø u¿aæAåC ɳ€‘p`\¤¥e„VÈML¼NTU€YÀ«§^4ˆ’T·k—Ô­[ÿ$2Šz ì#ô‗ædS웟èp)s¦>aF”s âëô©3_Mû*öØQr(ýbÌY< ˜ÊÒ¥¿¸ñ—`JâH õŽÁKÏ}˜Cà Aù2ìÿÇ£ª H¼ž¼Œ¦dÂPd„êì]Ã~YcÇ}‚•ÌTiò2ÌT®2Æuÿ„ õ2EF¦"©‚›{ä»#?úð#LáÇI22ƒN,…*®nÇ:Â|Í~S»EËV­Îœ>Áô ±3dìàÇ ò%4¡Ä,~IA@Zì«$ÏT‹p°wŒ;sæï¿÷â\F<Ò+âʯ\¹víú œuëÖ ©¨áW¢–R¦ÎŸSqq<ûEŸ;w©bŰðÊ,ß§ÙÃcÊß’íó]ºR;ìØñSýµ©iÓæXié)nî®4Ô&Œ5AðNÔ"ùóOê:_¡šx38šÞw¢ßm@t½qHâ±0Èô†E ž8v¼m»¶lG€×NÜz\©¸¸Ê„b’ˆƒbcþ½kO¯ž] oÿÝY04KЬæhÔ L³öR`RMç­bÅ*å©\q'1éæ JæaNîLVr‹æ­4Ð:SúàêÕoÀ'ܼJ•¨†  Á<™¾—\¯ÔfH›’ƒi©»÷î©SËËÓh“Àkг2:áçg½Ìûý¼ùó¶oÛ†ÿXLí˜æM›Û™ì †7ŠF…ဉN„>6ª4ò¡IéÿG,RëØæðëY3F~ðáÕôÊ•{TÎ.lM|3pE<+¬sÙŠÉPÎ\Ê9 M6£ zÁóƒP ÝóÚµ›¨™!¡Á/¼ð¥¸|Ô¯…FaFÀ1ãO’êÍÍ o²‚™Vez!WÏèuªUAi?yòê ÿCßwrv…D|ˆ3¢TC9 ØïÞ½@r>>L>è—)½Ò¤\ê< sCÐ{‹³}W³fü|<Ý,‡;”¬¯Lô’@p|þÙgle€»Ë¢Õ1°ÆJZéyŒRjÑÁØáŒ³\óŸâ ²-›(ÙÆý)”Jȳ§%5›åaø§öŽ¥ŠÑŽíÛQ ª!( ZÁ³E¡„²¶Åë ]£jÄ Úáƒè± P–»˜çG%ø#¢©[àÄ&ð™Ä„`0d±±É~lß¡•““Ø*•öZdC‰ô™y1q’3–ÏüGã&y(7W¯fM[ÚÛ;ïÌð×ÎÝ÷³rÙۛꬰ'!!Mˆ=Ž#(QnOýVŠOþä%±¸‚S~jÌÇcΞ;[T”÷7Dö㌕XdЂn=º£êC–™ˆ›†øÀ KFž66fņ„Ùje\ Ëy¸ë} ÿÁäR«mhÕNEâ X¯Öu}¿X³v áólsÞ£gOÄ<‹žÍ€Þþ&áÈð<¨å7¯ßÄÑBšG™¶ƒœF—þnË–­þ¨E fË›öoþc3e@¨¸‰íN‘Ìš5jEE†úY}OûêË^=z­ÈZÑë…>ì_âéE££½+”JX5Y'‰ˆq€@,c bP™âê¢EåÓ2kŠèè ÞØØãx®OÇ»uëaWôÖÎÖAÌm¡Hùq–i‰Š=VŽ. éã³†ÔØŠ’$ÀÁÙ®â~Væúõë1ÅÇOC`ø½÷Þewy"€7ˆZ }êN"A(\!ÆZÙê…ª¦®ô”þO` eÿ–§·ïFÞ N´\D˜ òÝ©-Ÿ‡««1£¢*2K>^>/¿úò°¡ÃÙ{”hŠô¯þ}5ªèµëWCCCXâI”ʼ°a8\—çà%óÃÐQôìÕs糉-ËÍ+„å6mÒ ),z@B]¿q“Bø³H–E±ÀMˆ¡Í mr¡‚_åÁàÉáþÁlº”–jöá©Éi ßøÃD7”Hµ9s‘_PDZ~NN>×øøø6Gg¥I©¿Äe…\núð›SGgÚWÓ´4Ù|èŠï™x†‹í_~ý¥Ftõ]»vÿý÷¨D>…T a Óƒˆ!¾ éοû~Nú½tLÖgP3¤ê+G´¡°ñ@í-òþ»ï“1lÔ"¥i B€%MVH18(;Çbƒ:c#ÉWªâÚ"ûQj´SçNdJ=ÌyÈ>‘”E‡äJñQ#ÿØÄKéÕ!¯Òé®rö7hЀ™$åŒzŽ˜ˆ^^îZ˜«è°gý­Î~˜Y§v õ’‰ ö?R¹V­$ÎBôÆŒš q¨1ÑfWØò",,"*"Z¼ä²Ã‹`Ò ÀæEN&YŽqqçîˆÂ˜œ’FŽáí ê7ÒBVm *>¨ôó0;çþý{ð [¨{jÃ)AIѽøGL6^€p4Sæ`ßþ}ÔîÕUh½ð¶ØÅ©ZT5Y:(ÔåLÏõéŒøŸâ2R3øVÂ:8dëwPø B™ü`§¼ÊÔ=ËΉãžË£…I¤³¨Ô`µ[¾2€ C?ÏCy4eln|eðËîÖµk§Žqʩ˼ä r ,ɦL¿â–B l0FVX¥ŠÁàíU±…â½sçžË—o½óεk×D úVüu6¿£²Ìó];“Bo¦A-ƒJý¦n0É6"‘b,¯WÂ8kƒ”9y2îï{Ø‘¾MÛÖå-Hhæƒ_–._´x‰³³{Úõ4`ôG £¬(GX„w_®ÚÊFŠ aÙ"O©4ŽaùÊ+¯’VÄ.o¾ù&Ï.búUN:È4dh!< ;Öˆ±T¨¤5kR€Ã%Å'IôZ(žLfëã^z&Ú5%PBÃ…DÉ·Ö·ãEK»*Kº¬H8SY+B¡EkóTÕ(¤²„\#G.Ó'¾Øß?—=ò+5-ŠDTKiݪ ºTFF*i*ÁÁ¡T“yð ÎL”š-©4Žbᩘ|v +ß2Ȥý«m¡Ð|mKín^½ÉÀòç3”N¤nŸ!ùVÁL¥ÞMåÞ2oÍ{˜KF(ù±"OŸòZé VqÓuš+'ÈCöï?X+¦6¡(;wî¼tù‘{W¯Ü :—¥ $¤„3=azʽYò÷Î}©)Í›7©X!Ìü˜ÿ°ÍÎÆ÷™Gñéü|ÔþÛµº×MNI¾Ÿ™Â ÆŠ±úÚë¯mÞ´™Ý/‰~æ&…ÑlýóO"6±¶ 5ÂzÏ…ž70ÈÕ£kðPJV°ßÕl0l›.kV³Q{|@‰`7B"r]§ôÛ”wüiá–­[H\ä$"Š ÄvΘ5C6u±H)m¯°C‡Ò-ʪ”—LÁˆ·ÞìÑ«» ?~LvyHNNùbê—¼P‘[‚ê4Õ!'îÔñ£G¢¨q3¶wýz Ü+µ_‹Xä]€jÜ•=<|“î¤^†Ü=cbjA ¨ÌÜÕk7““ÓµÈ6l…=ðâO µÁD n ë€2dÈ] œI<™ò“å]«Víë×o±æähŸšr—A‚Àa=¼fWMr+ˆh"žîŠÁI±q¶t‘@¤@÷ÝÈ+ÂÂa#v‰4Ô½BΜ9“âìk˪%ý’kHà'úD J¢»ð{1p ÔEvvfC07ªâ ß·ÿ“m²“,ÁR´}oïÀÄÄô77&AÅëèÑÄADâSe&ìÇ‚xJI RW0&33à8._>RƒçÉW¼˜ ¢g?I;$=þkÅ oŒ{éÔׂ)àLòõó¡Ã<~ŸÞ}@™(Ê1}útâÛØ¦ÆÎúžN)ñùá|zñÅ\°|ér6,!T¡`íêü¿-ögŸTÏ-ŸË¼Þ¤,L3N‚øþ ²p(uèÞ­{»¶í0¸RØQ‚-(q9=*,bĹ ? #qØ¢Pu;æPi׿Iì <*ÓÛÃ‚Gì¢G‰¬ù¯•ÿ"¿¥„p¦ÄD7x§·ç€/4ræô¹š5k”˜‰ƒLê繸¸ƒIC†.º¤››O^ÞM¶8c­ãQc@Œ.^%U$ù¦údJjF~a¡‹›ò“ÒÖî 𬅠_Ž; <  ¨Lø„¿Ÿ/ 4.{"QÑûˆà%F”Š„,<È~€%IÐn_oòQ•ÿ£1±çŠ:JëÒ0_–pj*Òè,»ÿ½{Âô ÍáYçíô†€Áð3¬l,I` ¶ b!vpè×_s6jLU:2ω¼P›¿–Ù Ë3ä ªâöeË—¦¤&?¡NÝÚ½‘ @Á N¸ÅíøðrÜØý¹{·žÛwìôóg.ühFj†óŽ’‡j×âF-ôðð"a';;Ÿ§Sp¨ðâ"ø ö­ÐüGvb £ðˆ€P‰CÔZ'¹´SÇl‰|TTȦ‰Ô‘„8€ôxŸEØ;¢W¾ÿÁûdU;þå¯Lýrj÷îÝA"2 ~"[;‰ ({’„yÿ·SÙµ6¬·ÖVòÄ*ÂôX`Ö©Î\¢fñå´©_Lݰi•̶Ô–ÃÑ+Ò‹á£bûŒ3¦Ný‚ ƒ&Œÿå—ÓþÞù·Ú’ŒG ̲Âânh›Õ? èN K%¶Ý·nÝ–MŠØ–17·0ávÊh(þ?¨ÝíOÒ"Wo‘wA¨xišà¯uqrɺŸ‘~O«'÷xgBY‰ÆššžQ«V¶mÚß¼¿oßþã'ˆ`8¿fÍúÛ I-[´lܨi‰Ù†û<<½I®Èz o­ó1Òð$H‚—Š– hªcûŽ@{7ýAm؇²éöž]»0¨3Ò¼y«ä»wnQ‘.0Ð?¬r%pOê3ân%[„‰—¼dëš(µüËÒ%ë7­=ft·n]õ~]Ù>ä‘Ö»w“0Í8càíµ_Þ­§öŸ8ºÌ²ºWO:†JF,RßÄùsV®XA<  ‘Hlø$ÁÕ™i=% 3ß@`!.!*>XÕrØ`?¥ O4 Ù£½QÆ|«ø° ‘ ΉÅv÷ðÀÁª¯ñ@ØÜŸ[ÿð\ƒñPý [¿AÃ&åËÃ!îe¤mß±m÷ž¿«T®<òÝ÷ñYþk†ˆPg· .'ܾf‡ÐÁÔ¤ÇôQT)ý^ÿø©{õêZùôé¸Í›·²;bÄÅ Ô¸:õE¨rêêâHàˆ/Kø¥p~‚âR¢RQß¾ýh\…üð\ Î*ÂMS?g²Þ._¾´jÕjÒÀ­!Pÿ–-[P‹G.³êÂ3¸‚õyë3ÖwþÔ+0vŠ`±ÚÙ~޽ç>õÆ“ª8qüD6”?aœl†„pûN"µºTè(|]R”øÛ²ßØôžFHCFÀû°~ý†‘ヌ.†%1^, 2ªªFF1v¢•HcUbúW3¶nÞ2uÚT¶ÞË̸¼H e;u®X)Ü×Û÷¥-ÛžB§NÆÜsu÷@ö„†† <äÀÁƒkV¯"\[²—‰Iy­—$Ó¦y³9ÂGxžê5b|}ÿ¼výÊ… ç,aïÁA(×þwsæ‚–Ž?N‚QrQz¨DØá¦á ¬ôô™Ó¤Z³ Ê,¶"{·SÙ‚HˆG ×$®øÓϦ°!ÚÐׇâ3dr Y:ÿ}BWu\uE åhôÇ£ÁU,ŒÚÙßĨ‘£¢ªFRЊasx@ÉõêK½ë'©ëº”íØ£ìêG67q1ÂDI¸xõÕWØÁ‡ô‚h‚%?/Á÷S£&¦¹¨aK"æ~7wæ73»tîNEä;QP¼Ï˜>ývB|Ÿ~*T¨DÎE‹–­©ìµk×Ο—,mÒ¤Qí:1¬T8YÛvš5o‰vˆ¶!YÁ"õÕÕvƒf.`ÈbB˜ò¯mÓ¦Utªl›FñJð%8åW_Nà ¹hÑ"”I¼G Ö^"ÎñÓO§°Z°Ø¨@G“£øý ùìxƒ Áæ¢à&`?­œ²õùeÇGlÔ×^{M1ïÿ) ýo/FmäÈj¦8(½”3,XŠÊ¢ÍQÅbׄ?±q9×8 V‘Á?Å|˜æ¥¿,¥^-íàÿe ”¡¨,Ë €îÙbéÒ¥–ƒ{w×XK/ì4~Ë"Eš 1RßYÓ½{÷£G>¸ïâùÓë×­éb7Ëþý_zñÅAÎÎà×/^¼œý0‡Ù•m0¹WHƒPC,/¸Ï.Ñoø¬³sòRÓÓIè¸ó¹v9ñvnRÿ?Œ[P)¶ƒÞ·w^{THÙH61£n2u‡×¬^͘9r˜`èK.¡“Õ^&߆·ÁP ÖÂs‰hǧЦm‚¼qè‹¿J¯Q>û0^cülÝÂ3/Ì;9‹BG2Œ2yØGc%Û®S 9"×èAqœO¬@:S Úá™ ÄŒ í¤–ÇèÍ~ðuÆgѼÔ½9î|“fMYFª?\| ú‹²rûvB£Æ ÏíÛ³g× ½û¢æûûPJŠÀe[­-¹‚¡‘—‹þgI¨¦o.ήhv\œg9r333Î=ŽË”“jÁÞÁ\äÀ;Jš !PÉå–§¦ÏP;2R÷¶ «#̧"~n)$n8p˓ǒ#EŸ»•¾É;Æ*á#0Àô_55•*c* }’„áT!oT¼S:uš3g¦¿¾}Ä‹­Bé¥÷(ŒØ#„þ'*+]ޱIq=Ì)P¿^½^={RœÖ€Êq» >ÌÉa¶øuà àä 7dÁÜ1•‘–Ì>3i©É^žôÔ—Y.À{‰}O(m†hG^°Ù&NBzIQÌ$ZFz*yD¬þÄĄݻþ&î—È Q(=Î7bL rJ‘’ôGuC™ph‚ô¬lÐÀ—«U­zóÆýûCîÖÑÒ¨ÒX+4H*¢Ì„*ÚÊ‚­n°-s$|û_Š„C¨P£ÉGe|A OBzº„S3.¢ÚÚÛÁqõ GV¡Å»ªË,Ì/„‘èá ç¹À‘wžV* ÚƒH@R›JÎE¥° “µKgôëC¶º`6Ò¨ ØÀ,5ªC|Ѓè¸iÄs;8pšuët,öèÚõkêÔ©7𥠨@Àþ~ÞµcjÌ»ãúÕKCßxƒp Æ/¾HU/HvÈþåìlOaŠ@ýü.rFõÇŽ(wíOzEÏEî/8£Ì±Ä©~Á;gíG‹b¡OÊfHôSEõL‰“ÓîBVÆLêCý8tòZÎêm’2Áe*‘†W åKÖ¿Q‹¤-fzjZ•Êá ™º¢H[I ¬¬&–2Ö¿ ewr.Ã’MrvraUT$ˆl`Ùaªñ-]½aé+_ ÂfÍ ’M «Éš–šÊâ`^åiùudÁv,äLBêGàFÄYFÆ=j®RÅE#0ëAŽ9µÿRzjŠ«³SJrR’ÙÌ”Ñ1 ÀˆV‰¡|­šÜEOØã•Å á>ç2h‘ZBr1Ê5¤€¯UuX 54Q…¯.ÿf‡jk‰ÍÅØ&Ô=¢‡P•>VV+x{¨.ìŠLEí{vÜ5„¯£~¥§f89;:?Næ)•zN2 óR8L…ÉÀx˜4þ—xõÎÅž¥'Ú.xÆ=öK%t…ì8°P—Äc¥¦¥mV·^=(õÙRšnժ墅‹®]¿F¤¿'¹¦›7¯ßM¾;¼ûpoOo”óg;ûñ}׫_Ÿª­ì‡‰Q'J€¬!j—iÒ¡C{)Ɖ˘w;Ž ÂhPˆ1_XPàììxîìY~ºsçNLü‚wˆ!;|øëÃa±ÿÀ>S§uátì ¨óÔÉ“hŽúòü f9YËH½'–I•¢µ–¹ÄOో;u ¬L"DņÎ._¼„-«BNL]'Z ZÖ‹+„=!’øê¬ð¼zêJ /œ Ú’šPRÊÝÔÚ j…T†ñëI*7'ï^R†¬ ëj&¡¦uëÖ±%ìAöÝÞ´iã;|Ø04¸¢â"™u,@Ðrjh£U­üýwª‡Â%J Cœ3˜jC^B«bÄè;ãÎ] ƽA!n‚QŽ‚Êöé÷2ð ‘Ú (¢¦d#!¬A´t††A¡ø/ª àôAñJHEPm …®ß€~lª† òbøÐXYbt@m£jT`L²Ë%…ÌÀCÙ”e-»ÛRýïÔÉSý˜¥ÂÂÀé‰dgó®%£Jb`O®\ñ{ÿØK˜vÚÁ3ŒNž£D™ë¼ÜVª(KZ‚È〯 G?_¾&’­"‘k<6òZ ·ƒ’ •ÌO7";B*î^†G›¾RÌ… ?ÿü3`"<÷ ;vüµníú‰'⮄>Ld*»‚®Z½ ›Íá ̹gÃSИ/¾ø‚ýöDAF”ù+W0ýÍìo‰‘§t²ÝµkÇ)cýt_-¡^7E¼1ß½|¼:wîÌ-ñ÷.\ÀXÏüv&òHbt¹’H™»w“5jµI”šƒ”áäxã70(¨À‡ÀÖ{(qXƒsfϦŽú”O'ÃZ!>òy°{ÙÙ;GΤ³ÜD- ƒ–è{°8ŠUT׊¥“Å5ã«Äï¼ùæpQ)a- úëׯóöõiצÃ%Î!eA –ÎüæëQïêðÁ 8Ä 2þt2Æ<ƒ,W¢ ³ã­«·œ]ËÔ‹µZ ÀSŠ\ì7p[ ?:O¢”ˆ‰ôÔt^†` øÕöhGFRÊcóæ-€‰puÊ  ¥Ïœù5ŽZ¢y¼7ßz“Œ+Ä[o¿e` ª¨@keó–-1ܺuã›jSTw¨Q³†Œ 9¦øøá: ¬ëò¸œ…àø®½cçN*k^¾r9!>]0~[ñs&znÕªQ#Þw:»Ÿ™vAÃT“L?0âïСCl±§å>¤Òy”G«¥Õßb‡Jß¡ðëËe©¬CÚŸóÝl(xãÆMK–ülOš4y]‚¯Ð®…­b>|tØo0V*ŠLñ>¸/i†K—/ݰaˆ `aüâ7³¿A¡«1`ôëÕ¦…P¶ÿñß?¬X€ä¥5iŽøãË®Ê#1ÐP:Œ¡3fÌ¥K±¤á`<› ü–œkžŸ5ªÂ¹ 5è…°>5 ;±›”­7(nÆc (åÄŒùä“É“'£:pÞÎÁN$¯ð’2yƒ˜‹²v™$~ãÇ÷wà/¾ô’·ëbRДµ{ æn'ø*BjÚW_ ziЄI;uê“§Fþ\h…ž¨óÂÅf}34iÞ¼ùì33qò$ä v ŒÎ‘_”o½å¨ªDÏA†¤ :IivA¥f ¢¨°¨jQ4•Ðw+{AºQæþÐ(’ >1êýQxóá ¾T%¼ŠôôsÆ×Ó³s³1ª ä A_âI?òŠy<›ŠXðl²ŽÇáe †RC„¿ø' ÷#á½’‚ ³çÌÁcYÂÊ·z«Inç‡2|UÌ …®¨˜´víÚC‘‡C³l& hch‡fÄÕ+õ`õXº¨¯}½nýº«W¯Y¿vݙӧ‰ŸëÞ³;s tOþ ""˜:=’Ïú ˜Ê“§Lnܤɦ¿<ÈþJ¬o)®ËŒµm@pY0Øœóæß¾C»ÛwÌ™ó›êNX«f-}YaU%šÞ”It’ÑXö¯å«_Åöº0-²Ú%¿ õÐÓß½C߈vC]T l „ôĈAÇðà¬{YìIÍ)‰ý¼ƒ²ÞXHâuÒ‹?“VðäÜÈÈ—aar?„áóÌï¿ÿAaa¤Õ{ùz©ËXIxc‰§ª]"Nm@¥Ì€ü¤"Uΰ˜&MšÌ ¦ˆÞ«b‰™B@ ÷œCÄ\伊%×'eP}¦y‹æ<&‹Fä—ŠòÆ@Cdy~lTq4+zR¡ÛÜÚµÛó„û2¯t£ÆZòE ;‡£Úa>hG?>’>J€áŸlš.84>5ˆ…¤0¥}@2¸nDy('Éö±"¼¤lýÅ^pÕSH-øT ¯¤Òbņ¼~ù:\*=%²‹¨Œ1ÅÓ]¿r]ãL&w7ÙÝÓ#ûþ,Ž a¡ÊºQ•UɵJ¸ÏÖ-)tI>c^„ásÊA;$H² ((†`À‘Ô†½xá"³ˆ ¢ö`Q×K¢¶ÝØJÞ¹òÏíÛV¯ZÅ]ð D\Y$4¾úÊ«(8|«ð’È%ÎC O†+ëÒxpy¬Zù;á»8 0™Î›·nRµˆ,XÁ§õË»PøÌJÒÉ& }ËüyÉÏÄY‘äƒi†7„ê×l³Ð¶M®7È2‡çbX°Q¥3PƒðªÕ/^´u§zµê,_D-ê¼X}ÜŠ~(˜? Ï-=/C­?®ôõ÷e2µú•¸ˆ1yX U#<½<š}ô ¢AFs=~%8ëSI.ÞU¬yˆ 0;¥rT¬Áfç¨Ù…“Ï…ùE¼ƒGîÝ·wôG£{÷î3rä{èVœD¹Cë|ïÝ÷¨'Ǽ2:ô”Åçºt³åO+óròõ¿ÿÛo–H´“~ýú2Çìí‡A†uãÚõ™ßÌ¢e†ŒÍC) AÝIx#!©eyƒ͘1}ëæ­³¿›$f°xTr¢?õ!~ Ep†™>qò8EÁëÕeÿ‹²sÙˆ:ÁŒd5Ïûav2Ê¢_¾ü·?ýÙçŸAâ^´gÏnÄeXXåR«v`ݰ%øÓ;o½M·é3¾{eÀa{3f|=bøövì¢ ò_ý…®À%Ж‹ØT°%w'÷›—n<>*á]éþ÷òïIÿá=DÓ ®œ^-An3 O.jŠõ"¹òdÑ/øq"ö¶özôÔÌ¡E£'¥Ü¥` Vâ[o€="Æø–*ŸŒý„@rŠˆñ ØöçŸÛþÜÞµ{7µË[1µ2tœJ1ÀhûÏG;ÎöÎuëÔ…m¾ñÚ`‘TZde,ûu+åãQ)îG³Á¸bå±úO?üDíHß'P—.Ož8ÁV €(:v¢âë÷sç%ԯߠDvc³¢†ŸÿŒ°rÕJìa\ÜxC^¼ß>ž—Š¸Ô©¹qãæœÙsk!em©ÁÁBˆé̪³¡© ûÑGîÙµûÓ)ŸRîuòäIjRÅ"Ó³ñŠ ï_êûvÇ¿íÆTjµj}…08áJVaÜ×Jfˆl'²ÇP©ØBÖ˜nï="¦}{÷SÁÉ<É/”F9@³[¿n=Ö<‚cÊ”OqÔ2—̱j»0ÈlÚ¸W»GB‚š]'åàÍÌ^PË>»+Vo€°FÑü}ýàܫ¸X¾ÔH`ÚˆØCšèñÍ.ÏwØ©·v­ÚÓ¦M£ÈL‚¥Ö¶M[<×Oi$Úf*«W¯&,›ÞÒ%Ô©IÕ£GòdþøcsïÞ/ŒûIll쎿vÜ»¯m붨 ú¢¸ à¹sg·ü±;œ˜+HAµƒåä×Ógà;A7vlâí;ëÖ¯£òh³¦M­“ta„šÇ/â ¥0"² }6ú0MO‘i „IÒ‚¬Û`qS;“QQQ*Y*Ãê ’ØÌ1¼r8øLx•p˜—©‹’YŠZïËFP´Â£²#ªõÖñLº.Ê OÎôàÃ~3àTR¯#…ú¬irrè³v4(Ò—)Á4ÀWI•´h´y³f@ðhF†_ÌÑ‚ sôܧÑm u2‹™ñ{ðyÖ1¹ä„*a,<~¨RåüEix€åuÒ[zA#@„~Á ¡rü¤ÏÖ­S}E¥/+þŠK“hsœ4D¨Ì<‘ÙŒR9<]´ƒx$Žä0=1#CÃC›¶oª­§Ê¬c Å߈G†¢aWáËÌŒL>6’F•¹}ó¶³›3û‡‰…&á2u´Ø=G‘k†ü;ƒRbþ¥Æi™¹ TOW¬ñ"ZDâ8/Xº¡©¼/AÃa’Y§²s&wa¶jˆžà€ÂÊÀ럭±™á^¼Wh0´d.É—4x,ùZ1i™ÎÐ%úoí©§ÜÇÆ*9Ž¿yq—Þ)%Hv¬»Êˆq™`e¨`’QÂê2Гª‘ñ°` òeóꥫyùÐSVf\„¡CnÇߎ©[‹&©~‘–AŸ|ü|Ø¡JV–¤ êñðô´RJLbaþ»žßˆÈHFŸ e³É;z2–k=<"ü‡äzÌèÊZeeà ¤€þ„) øQ1ÄÍfãë—#TŠEnlzF:|l_Oµ54Žü&"ça¶Ü¯àEƒ3æ„Ba‚i1aú®fu!ø·Ú,Õ¤:¢£r~ŽX–¤Ä$EJAðñ8d“BvbÊëÅ5o£©Õ†}êúÚõkË65¼Wª\ »M …V åYf\À8Ád= ´ ÉB%ªë†ú Ïš<ý·iÝzž÷<dר¯xBbà{¤flLÍ*P6©Á?0p?â D÷Ô­›·ˆ¨èÖÝR‰O´´bíÅ!F)a;µïç~a‘¨ï31é5Ücš0*[W°GX¥J˜Qô‚Æv`ñ«Ì‘£GŽòt褼ëï$G­iiÕ»Ft4Á¡ú’=(~mKPäÁÜ-Z4·ÆÑÕØÊßRA%Ø?øöÕDæ¸,µAÙ zÛÁô =Û Þ+Í,ãvB,Ƀ R’¸«+U*OËŸ† 1$e2˜ì(&õ‚tci€dÂXðOŸÀh¤¨a0–gÖ{ó°-Q³ñ5S)¥2—¢5Xz0É·ß{J—¡„Ò¹ †¤ª+]’ö „íþË’_(*‚Ý‹€ß¼—yoñÂET4&ƒC Jáð|¦?’4¬âeÐñããŽ!æŸ>x¯ôöÊÕ+ìFׯ_<ì™B?!"­é°ãEÊ¢-}8zÿ tr:ÔSïÙ¿‡-<† VµZUHv2žÒ¬¬à}zõ!Œê¿U.RË E>ªz¥Š7˜Es |ìˆRòl6¹Õ·o .}˜ìßóþûï3mÓ¦}ùúСXH²Ý{v0mú4¦–§·ÆX äë_ƒäàö• pSZÃeÞðÙgŸ?N‡‚ÍÂ@Å$ÿ¡î+í †1 víú›< ˆ Qá ö¦2½úùç“&N2d±H1jyò¬3fÎêæGQoqÏy@Ý? ›³…'ÕN—‚r¢`Ι;‡b#Ó¦}EÅB‚D%.XH:ågŸŠºË5øµa¿K~ùåÔé¸ç»<öªÇ½íÛ·/8AP÷€@ /Z<ô¡* €‡"LkþüyˆÝz½€Ö̳s/€$Û¬B÷vöÊAøl¦é9ϼWPT°NµæKM/¾5gÖÄþnn„Ôà!‡d7>3 L¤º[4â¢QïPŽõ „æ‚ã›X{å³Á¹GܽÅÚ¶-À¥©D¿›'°&aŽ«à(ØýÁo,KãR'Ú ‰Ð¶];b@D·5à¬À±(óÂÒY&¾«@P¹!¸…@ ‘>Í[6UN•žQ…WX.t› ²YšÔÅ8âé@ QådcæìÙ³7=='ÅNDµ€R¥ð{@UÈš”5ö63׋‹˜Ñ#Ê~÷ß»ÐØq”AníáæÍQë‰þÿ½];NA Í›D|•‚–‚kp j¸5-¢¢EâÜ‹†š„ ƽØÖ*ݺšužý<ïHû³çøÐj§Ÿ–œ ïfóðüɆ—ÇÛõúÜž}Ùû¨¶™‹¤ÄCmx'*ë8-.L<l#ýÑÖ0ôà# [7Ä‹àKí|K&?›Ávû¥hûžŸE)‡&,?|’N“(1ïß xÑ_tS)1Æø±œ ̓Y¿ý±\l·­áû-aTåb÷µ¯ÚV²a%ÌÒŠ:.“¦eÆã®ê—MÌu«Ô‘’°ÊF*;^¡¤d^šðʤjQŽ™Ð&o“Ã?MÃH±ó;7_’ ¸¾yºº¼XÚ“xµ£’¾É¸žÛi¸âDqéÅâÜF] 2bj-O¤ªœÅüÓÅ'2öóM—ÄŸhQÁ÷í+ókK3¥}\IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainterpath-addellipse.png0000644000076500000240000000666512536324511024253 0ustar philstaff00000000000000‰PNG  IHDR¯N”½ pHYs  šœtIMEÖ .0¸ÝÂbKGDÿÿÿ ½§“ BIDATxÚí÷SÔgÇ3Ã:*¨!¶HD ew[b&&—˜›\望˜ÄDQAP©KÙe+,E@`é "½÷¥÷Þ‹4)"öü ÷¹0çebâ!î.û•Ï{^?,3_Ýçyí~Ÿö}ž÷~Å`þ›÷°0hmÀ  ´ƒ6`Ð Ú€A0hmÀ  ´ƒ6`Ð Ú€A0hmÀ  ´ƒ6`Ð Ú€A^Í­#Gþᮑ9<·0}w¢¿o¨µ­§¦¾­´ª17Âl_¸™I¸éÞ¦{áE„ùþÚ–Â¦Ž ¸ { ©¸}lr0ñÐA¢ö?½æÝ·áéÓÇc÷›;¥ù’`“¢=úü]ºœí:>†Z^6ît'_†›î%¢±ƒÍx!üv«û¨.Ú£` À õëQ¦b AÄððc\áX²´| 5ÙhóvlîÞ,26HÌU¥´÷ÖÞŸ»÷âÅ‹ugƒræÅ‹çðÝ…¯xR–¿_äÏŽ¾Ç¾w2³ó¢³ƒÍ#ã?LÏÜZZ¬ÛP£ÓÛª1ÙO}8Nz<©²:MªÌGºÔZëµËJ6Áÿ,N0æ†Ð®p¬mÜ-]…_Æœ¿•XÓ\0=;±ì¶‘…ŹÆö²¤L¡Oðw¿¸2ì}è‘RÓô+Ë7ö·i,Œ’W]å«ciœ–TK7Â{ŒüØ‘miëyPy:­ n7‹K hƒŒ³ôh±¡½4îëÿ¸{ÝLrÛ ¶rÃÔõÑ„Š²1;Ln®ÕNM7„ÒιÓÝ„“dùuôÕ?}öä]°án<2ÌøÔpNi;ääÏÎ4V éô­=ÍKc*Æ ¼ÛÞŒÌ÷ù¡t[O+aÄéÂÊ[÷fFפ¦WRJg4RóCù_8°Ñ7w×J7Ì“ dÀ_ñà.©±Z'úæ‡ö> ¦è›Ü²¸Ùùi´á/Ò$wÿ˜ô˜›;;4Žýç»õ«I3A²ËÑךú¯²Ú´‡KІå~Á‹®Æà8»óŒ°ã¦jíÅQÒÒ;êÁ«Z´Õi…Çî=Ï´¼‘è48Úµ~mxòôqiM*4 ¯qiù¹zsCä¥Q•õ |ö‚¼ÍîBKï ïjZ ž=¶Žl€>BzaôÄüÂö7Ui/ÞUyˆüFG½f`„éeö'Y%âÇO–”ÑÙzVzi-ŽÛ=Ò¡ŠÕÿ§Œt¨EÆíq`)&*¸_ª ž={šW‘„FíiW}8¢‚¼ž±NÕ¨x'αòºôçÏŸ¿;64u”;q>ÝØ7ТŽÕüF ·©F||w¼µ»šð6LÝ÷‹<ã³h¯Õ\VAV”ž+ŸvÓqáÁ,!m€)¥¼òøsŒ;iú ƒ$¬Ñ·daˆ”“½Í‘}´¢>C~cr±¦òXÁ'9A†ZÕ ‘Yq·] ¦i¸a§f秈1OQ×RhË´ÊÏݲ€õ' Ts³·B££¯N©Ç`Ø$>u™Eëª×|0HBäGo£† ß:«$råw …Úðàá'ô”0Ädª›Šµ¥fz)þaüÅ6+œæPœ Ðw¸Âù<å¶ÑüiQPÚÉ)Û]_Í-Ì(‹ #ã½v^‡s3·,ô“ÅSóþUÞñ™¹Éµ·ax¬ç‚çÁâ<Ýù~²VH‹ua|orúîZÎSŒN\ô:TY´q¾„¬-•ÅXG'¦FÖf¼º¼ö>GË Pe¡¼@÷*÷øÛ,Í]¥ 0ßê*ü:9Ù`¾—„(™iFܰW½Bb56@÷z¼CP¸ñliQ2£MbS}gCa¥Ä]`6ÝIÆ¢WBfºÈºtEØí”s:õ¹n¢œ@í\ò>¼’Aˆ·êaÂ=Â;èŸÉýÙn¢Ìd¦ÇÚËw¼¡²1Ç™c>ÓIÆâVrîw‘ÜøŒ–.©¼l€Uν·ThÍv‘å§¹\ë2û¬A”‹ yå Ü ý÷;IQà_7«jÊ•½  ü0Ôë`ˆ– Mÿo~¿É„ll¨m)ræ˜Ítî#„‚)´„}jd¥³"`7¦ÀtºŒN<ú,3"%nññX¬%Yb˜’{]f68ó¿¬+Ô™n%#D¤®HÇ+à[ÙØþpÕb¼‘ŠÅJPÆ©¿¸0dcC‚µl˜8ÕBFˆ L4J–A3†aáûÚ@l\xá[-¢h¦¼šSÍd„¸xùYÆ2,d`ƒ˜ö±`§æ½&2B\Xþð­–ÍB°S ”иpiÑt3ØomÉÛ¡Jh.2i±–4Ø›5Ù2-'ÉA™h$ÿpÅdAæCO_£ÖR&ȪV…\ÉÓÜ+‹t÷;Q—¯ÅJP¤Ù`•ƒÌF¦%Y¢”Dƒ‰z2BD¢ÄÛbSÙ2³Îiá2°X Š Ç¬®µXf6À Ag\#ÕÔ‰:2B,¤ª?;ÓW¸3íJW #Îä¤èaáŽtÉfØÿEÆë"áfá)dŒ×’1VKvô±h骔± Ð?qáÕ§5^CAˆBIÚ&Ö1Ø»SöÏS”×e‚LÇj(Qðš–V§ÊåéXiyÉû“ºí±j ¢üH37Øû|*¯g­ pöœ;>Še­ô WR¡ÅPßV"ß}Ÿ¢lÓ·UQe&6ʈúã›îHýÆ6ÀIm=¶hŒVRå¤1W ñ™PÄÞ.p•—6\AÅrWBËU}ip”žâv‹Jf†„í½[IA”Š)…'Ú Ï¿(tO8h©ú†œJI0º+¥ ÊCTäv¦ÿ?`§ Eï¹øpÞÉ÷ó¼d=¬%!#iËeögos¾Í[í, G]Û{-¼­;RAAÖ–lÉæKÞG_³¹°"ö™žœqd+LÑ)§ kÅ„­v^G^¿­°‚ö ‡žÌUÎñŒD}¬•5!)fŒ9þߦw>¬Àtæ}/Þ1\FAÅp)E±Ó…ÿõJVÀ*ôì8AÅ/Ò†`ÚW¬ N ò¦³@Í‹@qµ+×Ù5/WWgE^óµ®ÏÔmù!½£cëAKÎ Xž­Vœ o8‹ÍÁçhJ¬þP ‘IÑÛà° Öî*™×\ÎĹ ˜2a -Zr4°òdH}¦¦לöÓJ ÊbÃò]£²! ~$nÅ Q†Š‘·¢¿ntÞÝ & vVîË,,Î…%\¹Æ¦W¤ê`®š²” Ž>ôà˜Kð£+×ú’¯ Ëi멾Æý‚/2mÈÔ,¢"+§úŽ6[h ¥e¨€šR„ Ë›GI볜؟‡ìoÎB'þ?õZ|[æ¡’êÛPzŠ©&ÙŸ£ýº§tž=)”&]ò>ôQC†æ@!y•Ú4-ÿÀ½àANi̪g#×~¼a…yüäQNi¬ƒÏ§\‘9ܱú—é/ æ&êzóMí}>É+—¡JmÃË{¬ádtöµNŽÖïÎU( ®O:sÔnFêÛ{ÒÝ…ßT5å­úÄ:Ûð2pðrD’ ôDû‹%ûó׋}ùª¹7uþûιY†':ŽvɵM@ ^î SQŸÅ 9eïe²§,Y´x'éË£%m 4>ëJ÷ :YV›¾Â‰†udÃËÌ?¸_ •0ý¿½È´ ú(7aSwŽj•è´g©gÄé‰>²õ`xøý=»$vkš×Þ†µ Vqõm‘Øæ‚ÇAo#6ܰ"Y§/—HÀ»-½µAjäêkÍóÃ~*®J™™›TÚ2W^þ·"÷ù³žÁæäì@wá‰3.to]º#/aSk†:·²Ñ¦™«¼É£Á»uœH̶õÔȼ°NmøC󢳯!³8Z$>gçyÄÎÓŠãg.1JÑ«JÑîÎVUpÝ·eª—JtR£7G„±æçÜè6nVœïSóBÁÅ4Ö¯ ¯N–Ö·•¦æß‰s€_޳nVvLKOC`b"Þ?!UÉÚ-éê= JuutfªÕ¥j–&mÈŠÕ½¹Ubà'2qó¥Ù¸Ò~¸bÃÆQ¶©yað*Üä7¥¤D6,·A~^5P8Ô«´&íVvP€±¡ßî-¼›|?ÐmôY†švLÆU–¥Ç"?ÏßÂo§Æo¨ wª vhž\37_ g6Ýɇ×ÃNÞÛàßjq·oîÚ`¼íú¾]ÅÕ©½uS÷Ç_Ž¢|Ö— ¯¿&éð!Xá=<ÖÓ7ÜÖÕßÐÚ]ÝØ^i¾?Â|_¸™ /àÏÚ–BØ ”‚¸Îôz>»ŒmÀ¬‡  ´ƒ6`Ð Ú€A0hmÀ  ´ƒ6`Ð Ú€A0hmÀ  ´ƒ6`Ð Ú€A0hmÀ  ´ƒùõ×?ÅnþáºIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainterpath-addpolygon.png0000644000076500000240000001671112536324511024276 0ustar philstaff00000000000000‰PNG  IHDRð‹Â–Ÿ pHYs  šœtIMEÖ,Ó1ÔbKGDÿÿÿ ½§“VIDATxÚíy\SgºÇ!!‹ (‹,Z®`Öv:ƒ,NGgª3jíŒ:·½u:µ­¸ ‹‹ uQA•EYe‘Mˆ€l²CX²@„„ÂÂÚÎvÿ½æNJ]1{žßçûÇÉ{ÉGßçwÞå<ç} &Q(Ôä¤þ Pè €B¡P(t ¥%Nhmm=pàÀ,/nooÏÈȬ¬¬är¹²ãÌÌL‡ƒuŒÒV'…ÂðððíííݰaƒìxtttóæÍŽY,VHHÈ‚ ’’’dg»»»7nÜ×`5£4Ë ƒƒƒ555ÃÃÃ¥¥¥OµÅÅÅb±Xß]]]p022ÕÕÕ---²+étº±±1ÜøÇÆÆ‚‚‚|||då[·nݽ{·“““Ü ///¸«¥YN€€¶´´„`ݾ}û’%KâããeåîîîvvvÊp6==½®®nåÊ•²ë—-[¶iÓ¦mÛ¶™™™@áÎ;‰Dâúõëá–oooÖšþÐLwBUUÕŠ+°šQçsssÙýŽ/^ wýüü|[[Û¡¡!(,((°°°€Sr'˜ššÊúú999²˜˜˜˜ÀÇK@‹1ƒÆÇÇ \‰5Ò,'¬ZµJþÑÚÚº±±Ñ×××ÍÍM^hee•˜˜(w‚üzƒacc3Ý µµµà“§~â)'€ÀoÐÈ`M£4× Ð>°ÙlWWWy!ôšîܹ3'ÀЂL&¿Ô $ ®ÄšFi– ˆa’GÖÛNômÊËËa Àçó¡099ÐõŸÁ 0wD¥R¡Û mxi'0™L¸æ© ¥~'@4;?Œh4š¬:HÐÀHzéÒ¥………ÓGÌÏ:äèèèàà><ƒ`âÈÃ륉½#¸CCwE"‘L?Õßßww˜Í÷À4k[[|OOOϺuë¤Rés/ƒòµk׊D"¬f”F¢¢¢¢˜˜˜çžŠ…É(¬c”Æ9…B' Pè €B¡P(t …N@¡Ð ŠÑ›-Ž‹ë>{€ƒ‘Ÿ§T PzáIu5ÏݽeåÊ*€ø…X[(=rÜþ!î-ª70¡[”9úBÐL· („SXa(}q  Gô¬ Na…¡ôÞ  :…½#ƒ"Sjøç«Sï_åt¶à›7(½1ðÝ  âÓí=ü\ùýÍÔ3õ-e£c#X…(ÝtÂäfQ–ÛÖèTÆJÁ!ƒ‰ZÃÿýqŠÿ`ØÍŸ—E³ù>Øi··KÈ­ƒ%U÷%ýX—(]sÂTËÀb•ùÉüÔ²çœá`¼á­†ÿþñ9HHEeæ"~åzÌÙïê_s c¢¬T”î8”y)#ÏZ€Ù09B¬mX™ðÖ¾ãN^&e³8 ãXÁ(­wÂ¥¨ÝÕu‹gé9ÿœ ´¶-HÊZîyÎåë“k#“|ªéE££R¬i”¶:áȹ?òyóþ=i8gDjN¾Õ™ÇÝÇœƒ¢÷”§÷ ô`•£´É cc£_uúa”ð¯IÃ×gxTòØ,øÆ/ws:òqƃ|\ ¥ N€Hõðuùׄ¡bùa„Ð@7‰Nzóë“Îßúÿ!.= ™] ‹ˆa 4Ô õÃþ5n¨$þ9fÈm›Ÿ’µìX Ë¾ã¿¹ïù¸îÁ°t YJ§Ýˆ¿»üŸ²Ê§WHÉ+XröêêÝÇ\·I+¾ÓÛבNÐ…'-,1W䌕Wš^¹õÎçA[Sï_ãò˜ÙNP§¾ÞÆb.„>ŒZøQJhj2¾bèŒó7¾ÜJõ…ÌÄc¸ T*¸ ïñ^3$&ýcÌP½ü}Ô°£}Þݛ㗜öø¬ 9TRƒ™èIÜ/Úëãü÷ÃŒjý"r~‘Œã!³ãìÕÏr ãº{p«t‚2ÕĪ<ì¬Q6˜ÎØ ±²zñõØ·!³ãØ…-IÙ—Y\:fv /ZIrxÜÛÿ€6A³á£ea|Úòoý!³#êΉš¦G˜ÙNP˜bÒÎfåYBïH‹àwR3ï[ vtÊìp+|œÑ?Ћá…Nx-\ßYS³èïRCmd@D*,6»9•(~:ä“Ìüh^7ã 0yø­ç·Ïûq˜ ÕŒŸ#âVî?á|äìã2[Zk1³0[A?û Olj!¢¶;AΛ¹0)Ýöh€³Û‰÷¯Å­¨Ï—ŽH0øÐ 3 ëzž[󣄠“twPsh–~¡Ž»¼œ#vÁÜ@oŸ£ð•ÖÜ¿ñk]u‚I©¤Ô,$ú—{¼!³c[ZÞõvS÷2;`kÉÌòâöööŒŒ 8€½'a(ˆˆ––Ù©ÌÌL‡£_NHɽ–p×ö‡!‚ž0ÖO¬¯3¹™ôæÁSÎ~n¥ùÑu&³C(†‡‡¿è,l­½aÆÿôŠG7oÞ,***Þ}÷]OOÏ#GŽÈ¶©Ÿ|²=ì/ ×è‘BcÜ‹ŠÍõÇ r&‡ÖüÔ¬eÞœ!Ù2;J«s%Ú⃃ƒ°üððpiiiggçSí@qq±X,–ÅwWWŒŒŒÀ4z°ÿªüNO§Ó¹\.ì> ;gûøøL>ɵ‘UBBÂêÕ«eÇ^^^p9ÁûÂG¬æ…? ô™%/IÀUW/Èìø[nQ‚°·K£ª ÚÒÒ6“ß¾};ܹãããeåîîîvvv[·n…³éééÓ7™_¶lÙ¦M›¶mÛfff…;wî$‰ëׯ‡[¾½½=Xë©_á·¿ý­ì¸ªªjÅŠúâ¸ÀPR""é¹äHDFåå¦a7WA"Ü#îÜ mmoÔ„áD¶¹¹¹ì~Ç‹/†»~~~¾­­íÐÐÔ O°¶……œ’;ÁÔÔTÖ×ÏÉÉ‘Å4ÀÄÄx<Xâ©´'...òͶaš@ À•zᑘ¿ÿ{—ÉAòãýÄÆãÛÉvðRë×'×ÝH>YÛT<¢¾Ìާ6™·¶¶nllôõõuss“ZYY%&&Ê ¿žÁ`ØØØLwBmm-øä)ìØ±Z˜é…à7hdô ð€o¨óäy„ö¼ôl›ïƒœ¦2;nì/ªÈ«× Ð>À„¿¿¿«««¼P6Þ`hA&“å­Ê–-[dÆé"‘Hp¥^8:Ä‘q¿˜è' ³¡—GÎh~áúTfÇ™ÐÿÉzx««›«2'@³X,Yo:Eз)//‡1ŸÏ‡Âääd@×'ÀÜ•J…nü-´ ì';Å@áºuë®\¹òÔ/2™L¸Fy=CÍr4úÙ÷-1Ä_•a‘QÅãÅ×o¿å6•Ù±1>ó"£­N©‰âÙÍÎOã&+‡40’^ºtiaaáôó³N9:::88TVV>|888JNœ8a``@þæÏŸ/»&Ž<<<ôeÄìöךªE}dnŒ‰‰- ãSþËó¬³Ûñ÷¯Ç{U6<”Ž +©wwhè®H$?Ëéï;LŒÎæ{`<ÐÖÖßÓÓÓMTúü‘”¯]»V$鋞Z'àR0 ¯u^VŽÕ™Ë²Ì×üÒq¿P±NPlíÉgŠžRll,LFéË3fxŠôåQDZ^¸Q$}Nžç6%d=›Ùñ‚MµA¡Æ¶ šâ„Ìü›ÑñoŽvmA*0¢WÇ&Ù}ëkvü6<þXUC,QúBÐL· („Sè„™‘x,'gÉH7ÑF8ÍóÓ3­OMev\ŒÚSvàó åY'@7 Æ è„™túòǵ&RÚŽˆCyðÀ<å/V5FtÂ\‰“6eD@Dtá5B³!öŽ^YýƒbØ2yX]OD¨ ¶ï6¤›àˆùÕ †úºHùDDgè£À Ív ”)ŠÌ¨Ì=_á,êKô°,-ôÆ»=:Æ@9Qx•Ðå=EÒ>›‰!ødí%‚u¤“Ól†»ˆˆ®òðùÅÈ=è„—(0|Wqé0ˆè*&Nkò*—á„Ã~Øõó1\t¯—f6Ž^,Hr„Ü»~®‘¤“ˆè01ñËawFt ÕÉo…uÝ0PtžªÒE'.mC'¼Pë„­–tݦcC…Á¡>tÂóu—y+ÞEðq(¯ÍC'<_Wc¿Í½g1ÔNDtž´»V Þè„çëø¥­µeÆ%ú£fÁ¡3hæ»Ñjvü§@ßQÐBâgK„=yU¶Œ±69vžÜëí4È!"zBhÄ*XHð´` ¶“—œ1>ô‡¹šv¡f'ÐJî„E½ñ¡?ðš44íBÍN¸•ê—’b=Ðf„è^ç41íBÍNðû[q¾)‡^q3v9lˆNø™þ=»fþ@«¢?<.„´‹í脟{½@î]‹„Á¡Wô2I˜v¡N'´u4{ú¯ég!ú†ßåÕš–v¡N'”Tç\û5†…’š¢qiêtBrNØíXÛ~–¢o4=Ö¸´ u:!äæÁûY}L#Dß3ÜŽkVÚ…:pìü–ºbc ýär¸f¥]¨Í °ºòWGøtrÃÑCò²Ì/hRÚ…ÚœÐÝôD1ÃÑO¸µTJ»P›j›ŠO_r·!zËwg]ZZkôÝ ÷ c¯E­ÄhÐg¢oiPÚ…Úœ•t"-ÙJÜl„è-e4 J»P›|C?-¡-îm6Bô–nº¥]¨Í ûO¬eWÎÃhÐs|ƒ!킦¿N’ |õSO£Qo¢×$'YE&×_'09õ^çÖ€=§áÑÂC§5"íB=N(|œqéê{ˆ¨QSÒ.Ôã„ĬàÛ·—öÐ$øšF¤]¨Ç °ºÁý sÝArÒaµ‹½zê„#þë E $i«˜§ ijpÂØø¼´ÙUCÁ @dxú9«=íB NàusÜOºëI"#*ÚNíijpBUCo#V?"§8wñ‰‹ÛõÎ ¢#¢ÞÖ‘DFW5y*íBÒ¯_N¸wôn’%V?2ßKjN»Pƒ¾¿ô—’ÜÅݵ$‘“g™x\œÏÕw[Ã*×]CB9µùjN»Pµúz\½œX÷ÈÏpóQgÚ…ªÐÄ®ò>ç"¨&!ÈS]Y•Wœ¨/NxPšöÖ:ò,Ù)#öê‹n§ÄÅØ`­#ÏÂ,QgÚ…ªpí˼»fü*‚<‹Ó.Tíß uù ±Ê‘çe¯®´ •:atTú…§cçc2¿’„ ÏR”©¶´ •:¡Çô8í‚õ¼ˆŽrò.5¥]¨Ô e5÷ýƒº*Hò"N_TOÚ…Jz?<2Ò®ë1 A^DBŒZÒ.Tê„Ð[ߤ',ÁÊFf úþÂoά×q'xþ¹$k¯œ„ /¢³|*í‚/äê¬ ¹j—— ³ˆŠ•ÌÌÅP5¤]¨Î =bÁÞcN¼22‚ÌLfâÕ§]¨Î õ-eÇœ;ËÈ23Íç«>íBuN€Õ._y«³”Œ /娟ª7Q¢“OÇß´Æ:FfCD¸}ò½+ºé¿ÐÏh)f%dy)ÓL«6íBuNøúäïjsv“䥴RTœv¡"' K‡`Ý;î#¬cd¶œTiÚ…ŠœÐÚÞxäÌšöb2‚Ì’¸h•¦]¨È ÅU÷ÎýªýAfÉã,ãoN¯×5'$Ý ·ÅÚEfô¥÷©0íBENŠÚŸ·¤½ˆŒ ³çBð;*K»P‘ŽžÝ\šaÂ-"#È칷䂪Ò.Tá„ñññ/<˜¨ÜB2‚Ìúýù»¾s† 7tÄ QÇþãÎX¯Èðô…´‹ZqBMÓ£“ç¸dyU®_UQÚ…*œõ0&ôÊ/8dyUhwLO\ü‹Ž8!<Á'á†ç!A^C¤]¨Â §‚?¡%™¶å“dœ:¿úqÝ]pÂ>Ÿ÷k³`"sãv$¤]œÐz' ‰¿úΩ•Fn{€ s¡4ÍøòÓ.”îF[ÝQ_¬NäuØç­ô´ ¥;áaùÝó—Þk¥QdÎ)=íBéNˆÏ¸xãÚX—ÈëzKé«](Ý ×wgܶÀºD^‡º¬ÊN»Pºûþ¡$Õ„GA×áÈå¦](× °dÍNOÇ–\*V$òš\½²B©iÊuB§ õà÷kØ÷)òšÜ7SjÚ…rPQŸ*`5+—‚ ¯Ió=ªRÓ.”ë„tZÔ•X‹Èk¼Inñ"Å}¸´ú›=⸸6[Ëœpõ¶gB¤+‡‚ s†q…ܴذ԰ÎȰ–dÔ²r%ÏÝ]R]­MNð¹°oŠu‰Ìh ¦l°À Þà'-3(¶eP¢`ÃW/—Ú»ó™÷(27š¿#Ak0Ý2 e€n’v8AÜ/Ü}ÌëyšvÕ“ žuB•Ú}ö¬v8¡‘YyÌÏ…™MA9Óô•ö;!¯øNàÅwÙ™3ÍGI 6ZÞ;º™âw#l)#‹‚ s£•öF[ÒjæŽ7Œ)Óm@×®³èçÑæŒL ‚Ì+g §À¡³|« þëæÙþŽØ!aÁÈ kb|XH0a qôˆí›Eu?õAI’qK&AÙ&­ù«ÚK7vÕ¸ ›OŠ9CݹÒ~úøhßlbi„Å‚¾ €©'k,–Ö6Ü591>‰Rª¼>¢Å˜6ߥ"*ƒ‘mÙšïÔ^º½«Ö]Ä8ß×7$,l—b «Ç ã°Ófuò‚¦»TD±4g,bÓ~É-þW½§»éto[Ô?W:Ð416€Ñ¬qNöví=æÜ”FEæFóÝÌÜ7Û ?èxüy7Ý»—6ÀK׌I…úÖ}×n'Ô5—úø97¥R‘™ad-kËÿMGÙ'üÚÃ"Æ¥¾ö$IOÙ¨¤C«§#Ñ ?)§(þBà[©Thΰ`å9pŠÿÌ«> l>+æÄ ò¥Ly6Jg•t2:Ħ1…ª?4¥™0sÞænì¬Ø%hø¾‡>ÐuOÚ×0>*Æ {®Z[[80Ë‹ÛÛÛ322à ©©éÆq¹ÿ¿Ljff&‡ÃÑP'œ¹¼##Ò\#~#kykþºŽòÏøuGEÌþŽ4IOÅè0§#_y0)†‡‡¿èlooï† dÇ£££›7o=Z½zµ··÷ÁƒMMM álww÷ÆáMtÂþãëŠcéÉT-¥9ÚEsæÿ7¯úPws`7aHøhdˆ31>‚üR ÖÔÔ —––vvv>Õ‹ÅbY|wuuÁÁÈÈÀ»¾ÕÕÕ---²+étº±±1ÜøÇÆÆ‚‚‚|||žÌIþ4[pêÔ©/¾øâÿ§ì½¼àMq$‹Ë²y¾§Ïýɾá EÃý1Í”™û§è£ÎÊ}ú™ÞÖè~ž´¿ybl£ùumiiéää´}ûö%K–ÄÇÇËÊÝÝÝíìì¶nÝ gÓÓÓëêêV®\)»~Ù²e›6mÚ¶m›™™Y@@îܹ“H$®_¿nùööö`­é?ÑÓÓ³eË–óçÏË>VUU­X±B#œ0=ƒ¼žB.6£6|H¤’éw¨ê¥1y!#kekþ†ö²/õ>=¬ký¼ÌáÞÚ1iNG*Ï æææ²û=/^¼îúùùù¶¶¶CCS9KpJîèêÈúú999²˜˜˜˜ÀÇKLo  044\³fD"‘•À†ß®T³ 5ÀÂ?{¿n¾á” ePIÄ·dزiï·—|ÚUsDØÜמ,•JxcšªwªU«ä­­­}}}ÝÜÜä…VVV‰‰‰r'ȯg0666ÓP[[ >yv±ó‰ä%à7hdÔìèAkð웦õÖ† ‡H ITEјfÉÌYÝV´Wy°»ñœ¸-vPP `át¤æ:Ú6›íïïïêê*/„^Ó;wfãZÉäg¥¢¢¾Yþ‘D"Á•jvŒ ¦:EÏ:dÐð™Ñ+‡{Ê"Fö;­7u”ïæ×ŸìaEtåJûfûrJœAÌzòZôv S}›òòrðù|(LNN†týgpÜõ©T*t{ào¡M`?yeÚÙh[ÖG‚Q„ì˜ÉdÂ5Ó{Pç„úÏŒê©Ï!i~S†=+ïwÜÒÏ»j½„ŒÐ¾ŽtIOÕ¨6¼Ü„z© šŸÆ4MV$h `$½téR˜>b~Ö GGG‡ÊÊÊÇCÉÍ›7ßxã øyÃYy#Gê1ÏÐ;¢ ó3.œGŸtVyt7]s“†„%#C܉qÌ&ÐñÞÜ¡!RåƒZ™úûûáù˜fmkkƒï™¢uëÖI¥RÙD*vttÈ/ƒòµk׊D"õ;á¹#fº‰qçÁýÊXÓ¥]ã…¨¨¨(&&æ¹§bcca2êõBñ³¨Ê[‡…Rž÷dMùëp PZà €B¡P(t …N@¡Ð (:…B' Pè 0Ímå‚É'y¼ð¢7,a û¨¨• P(õ8a+Àñž={\\\àõmÈ_KL*nåJÁNPÞÊðç .“Àqjj*¤¡Ë.VÈÊ(”‚ ¼• âââ>øày£ïhËRÒ²r ¥x'(iå‚Ë—/ïØ±CþCP.û…¬\€B)Þ JZ¹ ,,ìã?– ¬äƒ Ùñë¯\€B)× \¹¦äcx=oÞ¼yòw´_åJñNPÒÊP#憆8†á 9d¥• P(Å;AI+€` døNXßò‰&…¬\€B)¥w¤¤• @ð%Ð\È>*jåJ¹ã…H+ P v …N@¡Ð (:…B' Pè €B¡P(t …N@¡Ð (:…B'à …N@¡Ð (:…B' Pè €B¡P(t …N@¡Ð (:…B' PsÐÿ‰È&œÂØ1ìIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainterpath-addrectangle.png0000644000076500000240000000345712536324511024556 0ustar philstaff00000000000000‰PNG  IHDR³ÌNÍ<öIDATx^ìXY(­_?8Dæ"‘! )ÿÌÊ,™ÇB¼yò"E‘’¢L%<™žL‘ô0¿˜ÊÁ%³cžçñ˜•©û˾÷ët¾ïœ{N݇[gÿnk¯»¾ß^ìµ~{m<((þJePÐÊ  •AA+ƒ‚‚V­ Z´2(heÜÜÜüÿ===««« ,..fddpxöíèèèìì\^^)Tyÿîïïccca¼½½ÅÅÅ577···744ÊÏ£££ãììÌŠyÀÇÇGVVÖ߀%O© Rƒƒƒ¤ƒ///777‰ÿêêj}}8·¶¶ÎÎÎFGG/..ûööaKKKCCCGGG$lðÏÎΞ©©)]]Ý•••ããcäF"½½=CCñ±1FÀspp@–„mdddxxøüüœärqBø‰‡ÅÀ PZZš““Cìììl,©fp£¬¬,88¸±±155µ¥¥çOP"aaa0PÉÉÉiiiÅÅÅB¡±¿¾¾ ëêêÜÝÝ"“’’ÊËËCCCkkkÁS]]ýòò’™™yww'¾µ±±1Ò…——SSSãææ†2…uàååUYY „!Ÿˆˆq™™âa3pf@«Fl~pªèïï733Cï2=Šurr"ˉ‰ +++h;uuõúúz »··×ÆÆ†4tWW—½½="!äþîîî¶¶¶†±½½­§§JƒÜúúú°ËÀÀÄÜÒÒҧ§ˆÁÿ¡,šššüýýá!’|lmmBq›[°3A¹¨©©AH˜¹GUUNª’@—£çлd‰#—‰æFÿIØPõ‡‡´ ¤¥¢¢êV611177Gªêõõ•M…È’’’ªªª÷÷wÔ‡¦¦æôôtHHˆ––¼½½qx;;;~~~89¨EQQÑþþ>O&8Ø™\__£¤TTTÊKìÂSðåãóq<òD’_¨„@MàŒ™°µµµ?Rµ¶¶br$6sBâià’‚}Âôa okkÓ××g‘Éb`‡a:y~~÷`I’QÈ«AAAÐ^ˆ0ìÏÏOL—8³ÃÃÃÇÇGx Ȳ ð¸ÀŽFäs€´úë§%ò€4pƒÀƽ ¡¡K ]þôôäè蘛›½°°À&”ÍÀÞ7޶¶6FT²Ä5∓V†$0RäççcŠŠÂ+Çcgg5öôôÄøA–Màââ‚9‘89|— ; ½îàà€0¼8y\]]1Núøø R1Hb*DÇC~|}}###!Kóóó œ„2ØAê0h“ ÀC&%%N:r#äÜÜÜÉÉ ãÁC”¼-唟cƒn'ý¤;B @Œñø S¤œ„l6 (â‹oàí³»»Kÿú {ñ¶‚®@#å§•AA+ã|rR˜žþÃÔTÀãá_Øðˆ”*0~²w÷®M„aÀŸ‹A±¶ÑV Q*t°]tE¬ 8Á!8Ôɹ£ƒC‡âÒ©{¥KW¥âªÐ à&¤‹_è ˆ¯×¹½Ð¹Þï7æÆ¼<ïóuIø±¶öya!v9³²ÒÊ»Ÿõ¤6ùÝíîy,rùçùÓ¨''ãËòräú<­'=ПQìËú‹›Q)\¾týØÑVìOaž±5>}½}~1ªƒ×ïF:ó‹W¯Ü6f4''ÿôz…OÛñðÆ§¨¾ÿš9>v²„.0}Á ÌÀ ÌÀ 030303030303À ÌÀ ÌÀ ÌÀ ÌÀ ÌÀ XR°·4¸>0¿IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainterpath-addtext.png0000644000076500000240000001635612536324511023600 0ustar philstaff00000000000000‰PNG  IHDRÉ­•ÁÌ pHYs  šœtIMEÖ Ù\¨bKGDÿÿÿ ½§“{IDATxÚí‡[Ó×þÇ}.Âé¨mµnÄZÁ$Tëm{¯¿ÛÛuo[[[­T*‚ŒB a„0ö3aï!{ï%{ˆ àlË¿ðû(}|zëø~¿$@Æy?Ÿ§O rÎ÷s¾¯œñ9kÃÒêh*$Äb ±…„ØBBl!!!¶[Hˆ-$$Äb ±…„„ØBBl!!¶[Hˆ-$Äb ±…„ØBBBl!!¶[*¤ß~û ½xÄaýþûïcSƒ-]U…U) Ù¾¼¨ó®ÿºÊùçeÖßϺXýxòÅÉ«ßÛ[žq¦Ú¸»âù¾“ïÇ^¡'#Å®ÙÅQ5ÍýÃíwï- 2[5;?U×Z$¹}yÚ‰z•MóXŠâ÷fI·VUšt·nîÑ$Ï’îNj=¼©ñè¦ÆýiÍÛc¤™!í±>N½†Z£ü‚Í ©;y·è\`gïu",Ѿ¨Z|c¬xE ¨[ÃÉ9^ظÑüÃgJ¶µ5Ü×zô„YìÁŒæP—^qñ¦ðX3GoÚ9úÛ‚ø+u­ÅÞCĨ2[CcÝÑiÌKîÇ|h©Ûû;ôÌh<\M»yC8ó =ü³3ÕOxúzsþ£_"tT‡­‡T5æ0xŸÛyR³¥ÛÆûuˆ".LhÝ!+³Ã¤Å M¢),Œk]¯2È.2ßIÍ ¼5?Rn¶îÝ_çÙ0AÃ×Roø`Zã!Ú ²%[C¢ÌþÔKLÚö–З‡ýy×·á¿?89íDqàXqçf¼ÞXcx{Të!¾ÄÇûtÅ»lܬ£­G&úFÊÇÔUyå±™Ç"öN*L›Ô–ænõ²<ãDe}›áYV›Ù3Ø|snòÑ£QÂxpx¼ƆÉRž'ÿ¿gœi¬@Š$g+$‚'/¨ùŠŠ6Û²h‚x»™Ùq“Ò°Uݘ~äÁÑS/·ûS ×¼CÞ‚~wD’Ä <¼¿”áÓ¡Vó9\WmtR3ë…qM‰ôUOÄfx,ÜGH)4[Sð;Å ´ìo×ÃCUM•±£7Å…û¯Êé_*§×—õ:÷3{µ¼Ôaó#ZIâ]Ekê(GT)([åu™Góò¶Ý›Ð€—úrø˜@UkwµÜ£P`[O ƒ÷¥“¥µÞóaÀz[õ½©¡ WïÞFl)[‹÷îø Ï@u5Ò¥sÀz©-Ži¦¤ï¸À8ZR“öûï«8‡„Õ¶^f½i6;DÂ~°Qx°¶¬¿w4"¶BÓ7ì½>gì¸7®ùþÆ{É ®…oÄ™¹Û7׿ñî?¸%f^bR[ë 0¬«Iÿ²;­øz bkÕÞ[{‰y¬ºÜÀ´¶úÖ š´4rí§b §5e~ÞV<Ï9Ù«M÷;“î®¶SFëÏVimÚ/,Zo‹žVYfrÁõmè­[ý:3lÇ>‘$ÞqÇÓÞÑ ™{…þ°‚A«\Ôw£Í#ø›ÖîJud ÀºÊ¦ÂWüÞ˜¦ÕUA@"RëûÌówf¯ù|’,~Ï3ßÓˆIÜÃ|ÿPXBšº9jÍ8–ü*ûjÇVE}&LàŒwkßÕÀ´®FýKÌ£ëÖ²n/Ü‚Ú+/w+ž'_ÕˆŠß µ×£5Ä &3¼?–H^ë"_dW/¶ª¥W<¨à9ž×ó¸€Ü¨}uŠÓ™˜º9Ë¿šk pâ%ŠÛëþÓšMrDZ‡Fí[\.:æ;jÄô.1­F;ÉwG40mqDƒ|(»D¨h}U‚ñ“=Ú8½™E¦º®Áƒ¥\ý,niB¾cðµT¶ páŸÖšx^ XQþ&àÿ*æBdX á+xsŸ#óCš0r,­¯ê#5´—Ù0(ݯFlA£À ü*GºmqXwi[3¬`t¦˜ÃlpÇÑ÷ÓòbSœî@U vÿ¶Uz螣Ó:êôÿœ£º°›Áâ‹Ìð½ °°è})97—l$ê>×X BMÙ²ç|ÐR¢?Õ¤EÈ`ãÆÀH§ °u‰ù÷® ]¢î_aX¹Ìfš=ªÇ–'ÿÛ2‰ñT£!óð?‚?À£°‚¡.\Î8VO"äûd£¬xÿë1[3Ìd{*UŽ­Ð„ki‰[‰²(0‡ë•-è2BÇ‘¨ïC×ɰÐ.êËVZ~XXÄÞÉ-B¹=£ \ÙÙ‚KÚ9VD}o(Øèäû !¶f˜ÉöT¨[pw›gI´|³’7‡'^Sv¶ ŽÑ¢¾KR7Á¾YĶ Oz}õZ„¬:ÇÐ÷…²³•ž¹ƒ¨ïÂÝ’’hbl…˜a&ÛS®«‚çAÀŽÞ BåÛW©Ûe•­À(ë¼4S¢l¹ùR` b —Ø!?äŠM'ê´ðÛxÖyêü›JÍdÚR¤OÈñ‘Òi'*ÜÒH”-Ì”»ËT‘­Ì"!_°o¢–DÈ<ü)J½¬ÖŸ=ÞæÂ÷Ä×ÿ€³ï¿ájñÕ{$NÈÉÂ$<%æÇ{³°2OšpŽGðIŽßÁœÓ“W-Š«S”›­e¥ç‡@ï¸(Éx°PÓŠ“/2¨¡ñ×Ö`ðÕL†Z3އ†ìíË'c>[Mº;%$Î~µÛîÌÂðÁ.<ÅÕœ­oÃ8:65ˆÑ‡éü…õOï@vGŽîYgŠ,KQˆ­¥'›ûž¼Â=½8^awžŽ€¿çœËÛ°lzõÞ"tÛ!ˆåàA)‡vë‘à•$_‡n~E]ö\¢iDzÂÃXA¢© ãØsoÅAý%v‡)“ìØMðû È®^I®Ò·‰ÔC¼¨K¶nÔ‚DxU˜V›¾‘ãwšÈì"!4[rŒ‹Â”Ì”ÃJ˜´è­ýù¸žÄ™méÆûÏÔÍÑ5+®k^—§â)(°J±¡£'æÐ¢Ó<‹ªSá2ìÒÚ ˜&a}󳾨íR]øgà,4èßVú¾üsKÈmYÿ`ù¼U-6€÷Še×Ó ¸f°±1(úrcGÙŠ«1hþಪԜÀËîï9yR2¢7÷å‘1sïÊÑ Ù5h¾>U^—ÅáÆSDO­*Õ06l·ß7à-n€¹0d{^¼iOînöçiðö{'{S  l-wðóÊã B‚j©<ÅO©uHuSD[ÞGà6ÿdfaœ cõ—¯ÒÁ6ô3à"à8;Ö]q§(8™†W’ñ*4%¡ Ž®[—¡«=çâDcBx½ÈzsÉÞ\sOþ÷r9‰}UØz888Ÿ˜8ãåàÇ'+Xò+mYï;±)iQ›»sÈðÅ´‰Ž4ÖTÀßíêE9ëD…ý¨œ=ƒ¿ ޶…#Ôx‘Öœïé~Ÿ»?]£Ø³hþ€Ëút}<郵fëF†nªü…çåuyøŠ{„—ݬZ³tq>ù‹¬)SÖðcíäÕy•?[÷š›'._îÝ»·ƒLƒð#üRÆd¡¥ó ý ºû‹ûr ”Z»Dê¡üx“¬˜M¨8r 4v¹q¦eÉFÍ™z„’êÉ!µ¿7¡ýHrÁy­ *®yPÛ²WŽWZÔÖ t«Ü²ÅËC$u¶oØðÔàGø¥,µ×SÝšŸ–”D9z Ìà }… ƽP“«lMz©¢-^~‡nèù_O[—Ùß—(§4ÚÖVšdDÔ5(CgÏ#Ž–û†P9³- TTkÙà—ð¿ä˜lr‡îÝïßð²}¸o–'öåhËÑ:³uJâÃ^ñá¼äF;çr40ê",kÞ›ÂöP¡s o$ìÒhH× ÛfÏ¢:x}Œÿò³õd :XÐ>Ëüþ×j8Ë¡ CvÎ…†§@1­WªíâùæyÊ×(Î>ÿžè £tiøð¦k ª’8]t¥ùúŒlˌڔk’g’c*m…¼æÃ=ô Óê<ýhx¢SWãê=̱ոaÃé H*%Ì›.רM”lØð1zˆ-EîË¿\p‰×9gjy¢a¯D[ëÊ"38‡Cã—Ô!SõmÅ€WE’Œxud긲-^Š;øŸØéÀÀZºTÛZ!ÍŠDƒžlmY¬=ã1^‚økŠ¿ùVØZwÕ6^•IrÀËsfm©ÄMLj-ù¨¦9ð*K0ìÉ"Ëb™:^¾æ¬ ïààx„ bëú^±ÆÝYdY ºöÁ{íúhzzzåÖ™™>øÒYUašÌÖýÁ¼½:2â•crÁ…–®Ì×v([<N§Ã‡[·nÍÏÿ±à>ÌÍÍ=÷ßOLL<Å>ÀðÁÉÉ ÒYm'a=ª—à'G–eu¢AWY«Oѧ³-ØüSòÚzØzŽvíÚÕÒÒJKK÷ïß¿¸¸¸°°`nn¾üËgõÕW_EEE-†_ýøLÀ¦¦¦Ý»w¯«°ý뜳U¼àÕÎtr— Ö™Fï„ù¸Ê HþlA­£¡¡ñ4ðãììlmm}æÌŸýIaaá;ïüqXϱcÇàGøóûÛß–ë°5ÜêðŸk,Ë’X£.Ù+3´w§x‡žž˜FÉ“­ÖÖVccã?÷½,,,h4ÚKæ˜D¨êúúúz{{wîÜù”K##£¶¶¶µô¹²>–›úùî¯IÔ‡JhÅÖ.Ö‰á¿~Ι–$ñ¿wÁ$¶†††H$ÒÓGFF ib`äø’¿âp8ÐÁrttd³ÙO©¥¥©­±Û¬‚óëa³W`À¾º$™«OÒ÷ó3ƒ&2»X$—eæêÎÔ:Po >™~†Ïï½÷^ZZZBBÂûï¿¿\!ÕÕÕ=|ø×Ì&''·?ÑÓF°¿¿ÒY¯IدŸá„ùø(‹5ì“WlUqÞ¾°ðë(ìZ—M*Õ—·³³ ||œô±N:µüËo¾ù~ªÈdrLÌs_ñÅŸþùŸ›W®\Yß"€:LR ;|\Ù”dÁ––dŽTòʬ*nc wßY'Z€È¶7ªùDäÊÙ‚ÐÃñãÇ‚¸{cƒ^É7-6hLÐmO&¯ÀZ“tt=8 *“[ê.ÀNIhפ¥±°áŒÍÿÞÎãÔ=P½Ù2¬œå$¿ûs}/¯èuÎùä7ιsβY¡6Ëp è(‚ £:Š è(‚ £:Š è(‚Ž":Š è(‚Ž":Š è(‚Ž":Š £‚Ž":Š £‚Ž":Š £‚Ž"è(‚ £‚Ž"è(‚ £:Š è(‚ £:Š è(‚ £:Š Ràh÷ÿ)ØFBÛH•£°a| ÉÇɾõºUýå çM‹ÍNäÿøïø´ ¨D÷X[Ö1ã'G ˜Ÿë%~®›ðÙŽ„C;?ßÉ<¬—tÄð—è«ñŽ’}s~8Â1=^zæûê‹æ W-;lmÐQ*:úOnÛ_aR0ÑÚÉ-,Ogf„Eÿìr÷ø%—½?^3<ÃÈæ–±g€A@ø¶ðhíØ„ÕÉ)šééÙì¹j…ùªÅ*%…*/8*Eùªœ<ÕÜlµÌLõ´´•‰IZb×Ý»¿Ù7x§“ŸÑWcÓëŒS׬o~r+øÇˆx—g¹1•õœ~~×ÌÌ Žïèèk©æ'e†ßŽ8ÕýCSk†µ§±ß=ÝGqkŸgªW¾PêäÊuÒ&ºeþÆð[è¼JEN®jR²fp¤Ž‹¿áY{#×Ñÿ‹°8v!³­“7==Ž’ëèÀP_~iZØãЙ²a8ù1¢mÈa¯hªVøÛuüãék¢—)?IÖô»·ÝÒÅØÔÚÈ-àÄãÔèe'&Ç)²ëþÉCIܺñòÚü¨W+Íí¾Áº¬­úrÅÑNÚx— ÓßD‡Ž6*f½½7ã'k†Ë¯aúÑÜ^·´Stô¿2”畤ú†‘ÔÉ×0ñÉ*n¹âX‡Ìx§$…ß,[£rÓEG†…ã¡qðy›š £’ÝkºÇ'ÔìÔu†W .;Sº%Éòòµë”i¨P|œ¸Úæ&ÃÌfWàƒk°ÂCG%lÚÚkCbíÌlÝîèe¦«ó›d¡×”ÊT+¸¬Çæ$¢£’±aÐqf>±ó>|щŸ¸¦³^NZÕ¥¯‘~Íà >íΫYÍ‹uuè(7lhd þiÀYûÝwt‹rUFÛdÆÚ¥<08ØÝÒ»Ït¯Ÿ†RSkTTF ÑQjmØÀPtÒMÖƒÂ75V(H½š¢ ¶Ðœýv?² :’•U»råXYŽõÚ°‘ÑÁGÉ^`gØ}íŽZyè; ÉP ÍóîöÛ‘—Ägø‡ÓÒ@ÐÑ‚œReÃ`Þ™”jn· úÎŽZ9rì„ ·Òü‚7{Ý3Ÿu~úT8ÄççKåɉt´¬6÷²ë›ww4–+Œ¶Ê•‘VøXºÜýV ˜ﮟ+*’Öˆæ(°×'ô¬¥³!'[e¤E†´ ·ÈD<Ø`ïó\’˜%‰qVì‚xÜƬã7Òûøm뛇†Gæ§ã™™<Þ’xƒ×™38üÒ;ÄÜÚà¾D‘L;!LæªË®BŒhŸŒæåÕ¨©dg££K”Ìwx?êá†FÙáf™IKѺ贷ß5߃fgƒ  éRtT<¾O3Ÿ±cf«k'$+]ýÜ=½-ó=hn.œfÎÈXÂCƒçž„@­¤_øû[zm•o7шMþsÕ3vïµtÔÏ šŸ/ôéÓ¥í>ÐQaõ±­÷QÿàwùÙ¢µæ C,¦aD;ÚÑÝtÁÁ„•¤5D¶ µÅŠæ¶Œ’êß,ÛG9Š,Èu– hFŠÆPä4”(œ»Á((M›_;NNRm9K¨£ýÝN/hee­–Ö@lì,ÁPÂQ(0s<ù`ã —Frº*容Ä¥úÏ/’š›…‚ÆÄÌ’ %ay»ùïà×Ӹ䦻šnwS/*ÑMT³¸rÿÁú:±á×Ò|·Ü >-.ªïqqyLñ9")çžà ÊegFoµ,‘yYG Ñ¢úÉEõŽÂ¸f}ó³¼tU’ ‹Ü`ç}LTT?ÅçCA:J!GsŠ“\}õ`¤#6ÑÑë®y~&*ªttÔoÚDý!ž G¡…/Í•f)½¬¡‘™„¸ÕP7#*ªtuÕëèôº»ãXO!G‹*2}ô‰4…©iá8_T/èîænÙë$œRËQ·€ï²RÕ^VÓLFò\Q}O³pÚÛËݶíï:ØõõõpâÿOübSS“©©)^gzåhoÇ9{£Þ*ÙþjiÉI{UT?ÕßÏÓÕí¶±Y¸‹ø|þþýûÿÈÎü}ËíÛ·ëèèü‰ãRQQ±iÓ&tô•£I™aÁ¡:ýà(aᤫ˜ÛÎÕÏŒÁßee599Y\\\TT4>WÙT]]­¤¤ÔÚÚ:55?r¹ÜœœœîînÑ„Æ===ccpo¼UUU [fggïØ±ÃÐÐ0==]ܸ«KøˆÒÒRèbI ‚ÞÞÞEŽ677çåå íè ßcp´H´”­lfè澺›H` ȧ­­}øðá/¿üòwÞéïïÿþûïeddöíÛ×ÙÙ Î|xàÀù=36‚pÊÊÊ¢w†‡‡E/âââDÍ@;YYÙ¨¨¨E-¡¿ ¡ýè診ºz[[›¨±ššZK‹ðÛ¤iii7n„,kóæÍ“sEÓ e³Ùðuç)))ÐŒPG¡‚ÄÉLj(AkóÏÚ” ¿(7=<Ü´¿øæ"0pëêêB×eeec÷"ójjjÜÝÝÍÌÌöîÝ Ý§H»Õ«W‹êN¶trrRUUÝ7xioo/j ý¥¨Ì k„ŽŽŽ/^ø uqqY¹rå{s/[¶ldd„DGŸd†‡„i÷UÈ^Õgä ‹ê§GFMLÚOŸžýí#AÊËËA2p æ”bóD½ ñà.txbGÅÚ‰[Â|ÆôÇ—Î/´´´`®ùZGAúS§N½ÖQø+XÝ @è¹'Ö±]¬ø•Òjdw*­ÍC¦ù’0ð¢1QÞÒÉ€õ>>°Z———‡k0o‡ÎUxU €i¢Á"GÅ-ãããwîܹp?CßóZGa¦©© ¿ ¯aòºÐQX‡A?ÚÑÑ!6˜PGã>ÙšŸ¦Ú[.+}錡5œøWÍÛoTÑ—Aª×¾»keÒ¡gðm¤¦>jûî»Ùß>´®°°–J&&&0¼‚g0­„7AG==½àà`X*Á_mÛ¶ |…鿢®QÜFùÀÀÀ…ÿ,ü¿øZG øÅO>ùdÑšÉßßšÁÔbëÖ­{öì ÑѨ}뫲–÷–ÉJYºX´†oþUµ|Yå²W)Sï°°€Šúæƒ[¿þzvî$Ñ"`r §{D+à"¼ïÃòήÿ/c®¸åÿ÷@À<>0€À¢¿š˜€Ù2OÔÑÚ†™¼ÍÍS>G[Ýe ](¨(õÚÚ<=½ÖãÇgKð¤¯ßSVVÝ$L* —ussÃk¡‹7,ôý5 ùoö”ÊJYš,d`|ÿ½£•o¼Q­ K%x(:¤óÒ¥ù3M¥¥¢w~Ÿ¿Úþ¯÷ßoܳ§óÂ…ù6%% ÆÆ FFÂ0Âò xúúœ¨MQ\•ånÝÊݼ \ «~ãÆºõëëÖ­ƒØüìî&©¡75¯[³FÊûÑú\r­¢ÓÛOyþ\PJ´+ ZTüæ¢üÕ6l6<`nþ8þë¢gzpîd÷Š†Ã¦°¤+.?É NŠA{øªôxu5LNàý .w²¡a&¿^åš™˜˜êéÿñ–`>ZÉ^.}޶ºý‡±~Ó¦‡g r4öàÖ¼ÕîY)KG­áëÅk¦j%ZÇ…3“虄MŽÓ>G!íÑBMÅçžàüØÍ4†3OÒçT_gÊ Ñî~!+•é`ÒZ\eš./àGx“Ï;23#@G%èz}ž³‘´:úŸ2Ðx–%è¨d8*¬{²f´Ò»Še‰Ê`ótT2æ£{ïcù,•®"YÒ2Ôz• G“2‚ïéè(d¸Ã •Gáv÷çíÛ9²…$f¤Ë¥º£ðÂõî·™‰jd: í EG©îhAÙ3goÃNÐÊõÅ¢£”v*sá.E©Ê:™é,Tç§à5$ê: °9‰®>útrÃQšÌB©ë(t¥VŸf1ÕHÖ´³pÅäp!ZHQGÊzÎgã–\¹Ž|:±é*ÒŒVâ|”B×™q7êJxè†ö<:Éé,Z#㢣utpøåy“‚dÂ5í*Þ05цŽRÑÑÙ¹*“‹F\¶|[ät•lšìAG©5äåâ¥ÛšCoË%:Ý¥úÓ‚—è(…5¾GàO÷~Ñ&ÜQ¡¦å{f¦‡ÑQÊ9:+z^¨Çg1‘kÛ 7%;½•ÍL££”sx9Ðcá¸ùP }ÂÓ[}”â¥û„?¿þƒ' i6ðôÕ|7;3ŽRÎQ¡¦=Í iläjÔô%÷,^d¢¢£Ü0ßÒåðàõ-YôV²Ão°BG—Qs€ê·õ:æé»¥!SL%9Í.è(E'1ðÍÛ–×\ôËS[Øt’3ÔæóQŠw-LÎ 5·a<}´¢ù9àÈ w†¡£Ô¥®±ôü “€»Ú¼ 9r5eËtÇ¢£Ôüêvናa~‚rs&Ì´°ÇúSÑQênŒûy/Xæ¶ïý¸‘ûLžTM•ÇùYè(¥7 jùîD^¾`ÏHy Þ”!G`šÙêãƒEè(Õ7¬Š[ø³ÛAÏœDe5mÉ~kr¤ ¥ú†MMO=ÍyxÆn·—ï–ÒäåäiºV0ÊCG%`Ãàgq)·O_7öõÓ)y²¼1]Žœ´æjO·¡£’±a°êaù™Ùìºå³5/^™MÛò·OMHLé>ÑŽŠNÊ…z”ú¬ûê¼§òÏä¤>í†Ó>:*IÄÔ” ¿$ÕÁ÷˳¶ŒÀw^0—7<•“î´söÌL ££’7‰iëjˆˆwó©vîqašU,iu”“ ±· ô)ÎG%èVá©ñ¾¡çL¯1œnêÇ…j–?QhH““‚äĪ„¬»âddn»;4Ö¡½»•l&&Ç9eÏn‡_[mÝŒ k‡užóío¢ÜóJRáÛ]3”üæ:J‰)øë­äç‘ÁÑ6nw¾µtÞÒÊÐì:㊓±ƒ'ÃÓ{§Ÿßæ ;ï„®z¬¢™¦¶%E¨³"Õ“#Õa€N ×xº2:X+2hUÈݵ0^{ùnw¹©oíj O8yÕÀÌæ=˜rxß3À¼•Y_Ûðb`¨O"ö4; ¯žrÃo7rᛋB©6m6ÖÝMÕÜ"¸]:ÇôxÎ÷‡3¿ùøÙñ½)_ìN>bôä°!ósýÄCzÞ÷Nû†žõ =Ç:º+íß&é_`ûiÞÉcE§¿);{²æÒ™&«+‚_nIÙö…mDÇQ …'WKÊ1À6ÿg8š¸®GtAGEÐQAGEÐQAGtAÐQAGtAÐQAGtAÐQEtAÐQEtAÐQEtAGEtAGEtAGEÐQAGEÐQAGtAÐQAGtAÐQYÌÿ¤ŸÄ¢¹£h&IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainterpath-construction.png0000644000076500000240000000473312536324511024671 0ustar philstaff00000000000000‰PNG  IHDRddÿ€ pHYs  šœtIMEÖ  É–’ÏtEXtCommentCreated with The GIMPïd%nbKGDÿÿÿ ½§“ ?IDATxÚåéSÓgÇù7úBmò;’ÕvêLo§ÞÓ™:#Š!!9IÈ…$ÀpÊ逷¤xTÅ£¶*õ(^mñ¨ŠÖ£ÞZ¥"xÐo’™Ô“*¿lìÎãAóÌ'ϳÏî>ûìMMycZú¸éÂ3E:&*‹1ÊbÍ¡ ³_O)xW_òinu˜k^|ÍíÂU¶•*×mkêÚ·öð‰½®œ¼3ô¿‘ }=ßÏÔ‰µ ¬¥Ubi‘˜[xÓBÞØÄpYó8]›YÇjj˜´*&¥\œT"R9Eª"^mQæ…ÆfË"tâ™:F•û¦¡ô‹ÊÖ´öÍõ{é@–Ï’ÀñDWF ^¯üA¤~¹QH7hø‘VÉ&Û޾݋(,ÌLa Á·J„|£¼špÝï çÿÕ®ýkå&U °0ØÑ1¢°ð5j]ŸÌ*ûWÓ{ã÷7„€Aà h¸»>Xþµ°Œ·ŽlI  b¯—«] Xð’óßÖŒÄÇÖùK½áÚW½Ñg¿Ã‚à6$Æ<M*(,HEKªÚÉ1”~™úÜ6³Ð°Î]<‰Åejæ‰ÀúõX—ÜÌ…q4Æ&‹‰ÀÂ1^8E3‡! ëä™_gêDD`A¶íi‹·J‰Â‚dWL¥kðî@¤Þo@ÖžCø`:÷}+,>›†,Ø8øà£½ÝD`A3DX¢° øàÒ&5XXãªÜɈÙÓ…5#c­¾ëDxµ~[¤r†•/Øõ.Hyj´‘£ ‰1:×'dvâ}Ü¥7ìOX¸=ž‘ù*ò%‰ðª^œ k™(,||¢CzX]û×%Xeta!ÖŒë"°p1<]3~˜¬?ÃBx„ÔNÌp|8ŒŸègXîXÀ#hIÅ€èp¨„a¥U‰õ%Ÿµÿðq9Rº°•‡¦ böü¦‡t¢°0¬Òݫɨ­ž¥¶HÀJ*!ÜLžÍ¨œbº°ôœÜ(#±Ùû˦ø\]Xx£qúü"ÖV˜f¼¥…0,k·5Ù‰Éùo=5\CVJ™ØVIVÝ2ƒºXDÞIEèX¸þ`íèîPæÉèÂÂ@`·÷lX×n\˜‘9áÉ›jB°í„ÔVÂìIx\J’ äD`ÁîÃÓ[º°psm±¶póªÌ—Ò…….dÚP€uõij‹,¥M²å§åDv"ž1jëYº° &è8‰µKôj—˜.,@ø>‰ÀÚ}pc\®”.,èÔÓ¸qó2XÈH‡“øpl‹,wl+O†ZDB¸éU ]Xj—/2ˆÀjëœS™.,¸ûpú‰ÀB­äÝù r°‰ÂÂûo­ëã!2’Vø¦Dò~èø=¤s&äQ]Yžp ÿÝÍD`ÁODHº°péüˆÎN¬Y¢£ GðŠŒ¬Sçz0çQWN[XHL_Ðf¥³¸0ç-»V……›W‘m88ÊoS‡åÔå¶ÕEĘ%Pü~A†fÍ¥«g–YÉU´C#£àÖ“K4I{Òò" Ë+èù©0« BÞôÕGÂò*àPdô±€iX^A¡.<¨w΋ƒÓ«*†F»¶S7QÌæZ;  Ö¿'À>”ƒ«^¤Á¹‰xj‡Ü…±‡ÿÑço7×$,ŸÀBVÌê­sq(Ì!r#Z†¢^tó‹Upî{¼,fSײ†õ˜ÀìFØXÙ_£Ïº¢g`RQ(JbÏ¢9 Ëh=˜B¢™7Sýe€õ˜ ™ççî:°~Ug :C¡ó'^|€ ò³ÐOi QÙƒÑÏRå!—oþPÌ“QË¢#&Ð`5ayÂ[„y ' ”ñúÿ]3_BXφØêB莊e‚N©è—º°Ý†Þ©èº˜;',«ôóTû{À …÷¦V¤ž ׊‘5–>Îþ¦ÔÂ.¢IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainterpath-cubicto.png0000644000076500000240000001121512536324511023560 0ustar philstaff00000000000000‰PNG  IHDRº¢yé@P pHYs  šœtIMEÖ -,{ƒbKGDÿÿÿ ½§“IDATxÚíù[“×¶Ç9&$Tűj©>Îz«’02²ÙÉ©ÎÆ¦×° Ô q…¾ys_V †ƒ#Œ1ˆ‹‰å t@qƒp qAýE~~Y1N!.(Œ.(Ì]P82B™hŒiÛ¾ý÷y—íÛqÞ5QB\Pˆ j€***˜L&â‚zh4Úõë×§M›–€¸ ú‹Ëå±X,ÃîÎ;=<<\\\T>}ÚÉÉi×®]ÎÎνǷnÝŠ¸ þ¢‚‚‚…  îZ­F\PC* ààÁƒƒžB\F-½^/‘ ™œÖFjEYMîÓçÉY…qÏî§æF¦>Ê,Œ…#Ï«²šè•<>S£Q™Ý/xþüyOOOÄe,dÅ]u-¥DTR@`ØîŸ?ùþŠ§Ë‰ó®7Ü.ÿF à¿6:qylÊâ˜ä%Qñ«Âcœ¯Eºž¹öþ±·='6;÷ñ¥;ûS²# µ9ÐS]]=wî\C’«Õj9â2¤º…ܲšœøôkAaßí;õ¾—/%à%2nuVî¼ÚꜶ·TBâÿɦŒÐz Þò¢Ì1&y…ïe·½Þ”Ë‘ûKª2Uj…)ÿÂÂÂ,Xàîî¾xñâÐÐPÄ¥oѵ³[²‹®ß;zøÌ‡ûO»]Š ¤¤;UUÍñH/eSÆÑ2¾mañìpW/ßM÷wu³MöÏ¢T*©TªL&÷–mÌ=$9ʼnW£@ù9Ð5âÁª‚ÂÙ<¦^:ååÄ»›MNx´d¿¯ÛÝä³" ߪ’?³ÁE¥VV5ÞI~é{åKOJèÝÕÏKe¶zñ´N4åQú»GÏn¡3£ŠÍc$e†ž¼°}¿¯ë˜µU!Á4)éçšÊ™ü6Á¸q™pu 8K¼Cvì÷¥Ü[ÞT7]+ìù¯5/S§ôs«i.F\&D™(»(îôUèq\~{°²¾Æb‰ÙQÒ×ô¦iü6RÛj—qLÂü¥;û<¼)7"×T–ÏPwtN,ÂõÕ‡üÝaÂqyÓùj{]dâOŸ0ÆÉË›-å¡Ó±A\F!NWÓT|5ê t:7#×ÖWÙkº§h­ÃâÛCþï·0j—× ¦Æfß>rÆý×—¬ì9b¶-€bm./yò­N‹¸ •è`âáJdO8 ^A­Ÿ®á¬ÙÁ¡ï=É¿‡¸ 2$NË»ûã¹ONžwÍÌš'pbÝ ÜÑú–—ïF¹BЏü®¶Žæ[±ÞÞ®7£Ö5VÛ«ºjtߎ^•qÝÚqÑj5ðE!¿«_òs}øØ©»Œd jÝÎÓç}™Bb¥¸@î–”yã€ßæ€këŸ:*¹Du'=ŒÃ¢Ö¤æDX).0û”æÇh^­ê$ GbFãTøïÒhÕVœ»èeZ‰§ŠG@Ä=‘¸*ËÚS]2QÕ9 ix­‹òn~‹#£—zSÝí®äÐÃXÆ&zråñY8ïòjœ$ TrHJ=”#ï/K|rqù£cR—ª:—!C¹¹jú±€-æþ%ðq½g¤«…{lz ålÂa ¬·E\þf1 ÎLäc £b–&eÞD\D-]Ù¹IÑA@÷uM©Ã/¶!.ƒ"£Q‹ýå,[9‹€6XÊ„ñ¥³»q¢cR)8‹”^‡E­LvqfbF¨îþœI@ƒ‹óƒB¿C\^—ÌÈîÊYöˆ ŸJ‚gÌhÌö[߯[  Ó´*¸®²v‚•ûTˆ‹ù.v4ê:#½^­þ*k'Z3.±ñ‹bÌv‘À$,KÓ*ód,'iÑ:]]âà²qUþËWv~m¸ˆè¶ðÜ2X{…¸ŒŽµ$BÚf/e­Íç®­/¯ËC\Æ0™×,g¯·6\D§".cË•ªîã:Ñz\UìàsñsÄeìÒȳ¤m %4¢5XÐbûýIs\dBOÒk;åœbÑ|æ²KuSâòÆù¯(TB›&¦-ÛbÞ‰K»Œ¸ŒÇü¯º^ھβqyž7Óÿêÿ .ãeŠÎ#âV¢¥š×ðêæ‘¹->2éçêjdébÚÛ¢¢Eúd«Ù=ÅÎÔì×reŸY$.·ï,‡ÇV .ãŸÌ¨WÄ-SEÍDKrNÚìK¿y"."­²ZL_-l&ZŒiåoí;µÑ¼–’˜UŽ\ÁÛo1¸š‰|)œ®vÄe¥–<µÎ6-ÀCÿž_–ЏLp”ÑtHÚ?4ÍÝÉ óÃc½c ™ü`A“YãR]`ÿÓ¹OcMÌ(^ˆ©+ D35¿¾ç^#<q1V”ÑIelÚÿÒ†Êú|ÄŨR‰³»ëmÍÎ÷£ß‰I½€¸}.OÝ.¢¹óëlÍË%Ù3}.îD\&'ÿ•wžã×Ûíʱ#ˆ­îSê§Û€av€ §Š õÍJâ2Iù¯ü¹ y¿ÖvTfž%4¾ý·:›^Ã.m;c°O°KMS â2‰ù¯XÂÜ=ò Æ'¶8ÿ…ƒá œšh\¢¢ÞO¿Š¸L²”Âü:Ç®Û׺í: ¸ÀA85’ÞÄŽ~fòU)KƤUÑ…­›^{Á^„¬ §&V9ù¿']Tjâb“^-ãøuU“»ªm‡rÛñ¡£ËqÂ0o/¿J_ŠS‘ZZÀ¯_ÜYe;¨Y·ˆÍï ’»ÀA85Ô»ÆÑw£Þ¹ÿ(q1©Q¶@ÌØ5Ôk÷ddÀ øy挓ÁÛ“cFÑÕU3c¨ÓòÁß ó.°aœ¸b0§‚´÷ŠHÒ¸˜^þ«l4»ñ*mMÊ箼WRùq1ÍüW%íø•WAâUØšˆÌ¿sq1]©Ä¹]5ï˜.µO§ðÝlâ_ݵj\^ö<1/¤þ›[n;éæ”Ûö£Ð™ ˆ‹IˆN§GGGGDD´´´ôëšä·¹ö“NÌ­ð¥&^•ÄZp)//_»víñãÇþùç¹sç&&&È›øõë¹/l'Ñ…i3¹°q™q¹Ü¢¢"‹õ*·ý3'ˆ‹‹[¿~ý ù¯N)aþ<‰¸t”’~ð¦t‹xˆ‹±uúôi''§]»v9;;CÔ÷„–M›6 ™ÿŠ2;«qÊl'Å®®É)ŽG\Œª‚‚‚…  îZýçƒ4««+$1Ãå¿êÎî¦Ï9¥$ã;-~îù°=ˆ‹QpðàÁLj7‡ÉÔŒŒ{“óž]J2¦i…o}’"•‹ãéüùóžžýW«ËåòmÛ¶ùøøŒ¼¼¶³zû9ɘ>wiÝÓçIˆ‹ñT]] ÃC’«Õj9ŽP(üàƒnÞ}±2½BÄ8lL\Òã眻ùâbT………-X°ÀÝÝ}ñâÅ¡¡¡¾¾¾666¤?4uêÔQµ¦¤q_,`—Œ`F¡Ý«Û|ÄŨR*•T*U&Ÿ/ÙëÔ\~ÃgÅ$#8äêšÌ‚ˆ‹™ –Lv\f—L›h\²gºø%âb RK+¹UkYŤ‰s[!æëL°ª=â2¶(#R÷³ŠHç¡+Lo5 â2vÉùÉìÒy„KYºƒ×©ÍZ­q±iU¬ÎÚ™…¤‰°wà†²šÄŲ:&½V fNeÆ×ïÏ=ws7âbRIÊ8/VŽ/.ô?<<|ÐSPèkË–-ƒ§2tZÉç*ÈÄ:›^7ΘÄŒ0Æ .㯶¶¶ââb‰DòûER«¡D1Üö«ªªê[ñ¼öõÅ¥÷]PwÔÑѱ²²²7œ@›"Ñï5¡¨$´9hË öööLæ o†®ÂI_V †ƒp q™;vlåÊ•$ V[~~>k¹hÑ¢O?ýô‹/¾˜5kVpp0\`xÁêÕ«wìØ±qãÆAqA;99=5 Ö(¼fçÎrRSS ¨-_¾|`Ëpj÷îÝá£>øÙ Yh .pN!.ÆÖ³gÏ–-[UÚ`;##cÕªU\ N´··ÃvffæÒ¥KÓÓÓᔡ\qJJJ_\€°/^ž8qÊÂAÈc  6Ô…×ÀÙ9sæ@héÅ¥_Ë=Ltu988 úñÓ$†’¡_ÉÍÍ .?”öƒ‹ Äð‚ÖÖVˆ:þþþGŽ4w´cëÖ­Ÿ}öD©ŽŽC›^^^½?bþüùÐÝôâÒ¯åáqÁÎÈ´´wï^M¢K¿‹ u‹=<<Å¥ogdP`` ´Ù» 8655 Èg!«…ÜS]“PEE\N6›Ý‹Â ¸@Ò Y aàÈ;w†Ç¥¬¬ òÛIII¬À{\ Y;;;xÍ ŸÆÌ¤ME×®]ƒËöᇮY³fóæÍ0–ô¢=zÀrvv†~gx\zû8—… ôMu¶ Ú°a´<Ô'TÓh™¦£Ñpšn2¥R©  ±!x #è5`üòUaô×¶ Ñéô‘¼Ò0̆ÁüDüjˆ qA!.(Ä…¸  qA!.(Ä5éú÷ýbûÜÛÿIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpainterpath-demo.png0000644000076500000240000014420612536324511023063 0ustar philstaff00000000000000‰PNG  IHDRç0L¸fÈMIDATx^ì½´^U™ÿ¿÷{[z%•Ò;‚ ,((ˆ E,3cÅòSÇ^FGuŠ3ꌽŒƒ‚€Š#Š:(qh‚Ri$¤4ÒsûÝÿçsÖù®ÿ³ÎyÛ½ïM‚!ûfgŸ÷”}öÙç<û©%öö tvv´õ]ü½o¾é#ÿø­oMÛ58˜Be(ƬD+!Ù&{ÛÛcp%Yá¸ÿ­kŠç蘊öù¶ñõåcÚ®wL×——ùmž›=übS—úm´]ï~þžÕž©Öó•Ïm|M“ïÉ·5ßw£óB¥^_õßWã±ùsýý†ñFcŽ•~»RãÝ—îÁž¡¡¡+¥±°khëöž¶Ïäoþë×ÿí·Û;ÛSß.ÿÅÛ®¸¹íÓ¯üà·†JG•ÁþB •˜]Ú»B{oñ%Ó©ÿ­I(Cë‹öù¶ñõåc*uޱ¿ÞXu¬üL±’åÀàPèhˆÄîB¿ ¶ëݯtÏ:ðæ¯)ŸÛøšfß“ok½ï†ç5QêõUÿ}5›?×߯©ççh{[[ Ukˆtð»|ÏÀ1®r÷`O¡R©Ø±òså»bGGÇàå·Üðùʸ_t´ï»ßyÓ%7„/>÷Û9iãÃivßú¸f쬰mÂÌÔ>ÔR[‡aÍ0iÕýaÓ¼#ƒhó‰¡Í~ðÜœ{Ì´œÇPààPÒ¾ªÀÙÞVÉZõ©¢^xÐl±&p²§­-†”]›»°ä÷Ó6f[’-R=i\Xµe|¨´±ë‡8e7Î=ÀÙf€¹aㆰnÝãF,¶Nä(žÁ\˜·÷¾aõÚÇÂ@ó}V2 ?qJ˜7sŽÁÄ {CÈû ?²"Û/È …)c&ÇÎxÃôïýø_lÿ'¿ñ­¼öËCÛ6mJë–¯Ž§<~Yš0q|øÒ”sãÐô9¡'vÄ~ÿͰ-v†ócgßö ú»ûXì#îˆq[Ï`èêlít(€º9Féé ö¸qL‡€ ¹i3¼½'Å~x‡MÆ„±íLý6àJ¥ÍV”6›ˆ~ëlŸúÎI ­Pù>…^»Ìú Öuìí²Å$ÕWà#çj;ÙsôŽy8ŒZËÒfOšþ´rjˆ]Ó9Êy"a¥Þ6máX‘Ü)œ×4YFHÖÒTƒkK×ú}Îk¢ÔíKÛ…>››?×߯áóómp>òÈÒ8~|Gj·êÆ×f˜oÛöíáOkÖ– a¢ÁJ›-ÚÑ®¡³þ¾88Ж?´$ôõ¾¯¬OJ[{{ذa}ܶmm˜2eŠI{èïÝn‹~;ßxèëI‹?X90ŒISö>¢£}ÒÄq[¶tWÖ?¶1l;;}uìiáã·þcxyº?}ù´/†ã—ý:¤'Ö†ëžûžÔµvC† { {À[]6¥Å†ð¼£¦„%?¯‰iܸNÅ`ÀÖoU Η&um ·=Ø“xˆŽöÆvµ…­Ý€Ašdç ¤“Ž™¦MîJ+Vm 7ß³.¤ÊØÐoääÔ‰é¢Ó;Ã÷vGºoÝŒ0eòä0®+†mÝ^‚üèë`Fë¿:;*O`ÌIãÚÃ!ó*aéÃO¤9“¢åC!vL œ>al6€4¦³#Œœ¥ÁæNMaî”ÁÐÓ=&­Y¿-<¼æ±pðÜžpíÝaò”Æ‚hQH#Vݦi¿Žùó†9Óˆ0§ÆRC©uÅïkx^h¢ÔéKÛ¥>››?×ݯáó³;«Ä6D-ìÑ»ÎPg›UOÏ6CHcBª„å÷Þ¶o^—8aÚÜÃÌ}±í­á‰ ÛÁÂB"¶Ýž¶ní ]©¿¯?¬7jtÎ~Ǥ-V…Þí[âô9û[Û²ïmË–íÁPTªlïîk7öÆÔ»-­»ü— /ï¾ú᤭ãBÇäIñª#_z×m Û‡2Œ¸y»ñ¤ûw„gí»!Ü|ÇÆxÒ…G‡…¿¾.œsöËÃC+ׇ‡× Æ‹Î>0Üqï£áp;ïˆyãâÊå+Â…g?×Î_n¸{CxíKÄ¡¾ð“…+bè˜^xDŒ_ýƷé/~~Ø2kkL3Â[¹&Œk {Oˆk]Þ~áñá‘Ç6Æ+¯[Î{ñ‚0®c(¬^·5ì»÷´°nãö0nLW\½ns¸gÙ–páIsÃ=‹×…Ào;c^üçï>z¶wű1†7ž}h¸ë¾‡Ã¯þ°>œʾqÖ´;wm¼áÏ[Cgר°aë`œ`€½}âÖÀdNW ¿¹£?t ¡³÷‘ðØš1¡³=2 e7œ{0g}É€³·/N0ÄÁ+†ŠR_[¿QpÛ¶õűcÚCL[Âê÷‡q“fÃ|áñe÷Æ©³²E½Ï¨ËnÎ×À޶¿'Nßg”㘸zÅ¢°îÑ¥¡{ë†0÷ÀgÄ~£2¹nÝݱÛK;¨vË–-¡gpU ƒ½a°mCºyÒÁáéSNÏ[}SøÞÔׄ{·„0­{E€ÿÌiîÿ¹vmxï+¦¤™Â/sK8æá%GÇ´q¿qa̸‰á_ÿã«á®¥ÛÃЩÏOqk <Búïo~1¼éµ/ ÷ܽ,œpЂðå¯~?=p擄×>G§‡Wµ…oþôt߆Â÷?}bXc‹Áñ{‹—¯LüÓ@xóÏNWüìâ𲓟öŸüx8~¿ùá'?¹"røña`Í}á¨}燻î^žuèáÆëo ÛמÎ;aføâÅ·„Ûî:*¬ôþtêÉÏ 'ĶpÅ÷ÿ3œwæIéžñØÂ13üþúŸ§SN|vøÁn öôtâ•pëý›CÛ¶-aÒ˜þôàòµaÅãÂQ½ãCè{4<üør#g&Øøàv'̹sš|ßãºzÂÔIcƒáÏTi3 ´?.ìHýƒaËæ-aòÄ® P§Í94ìô©©·gKX~÷µ¡¯»'õ/µqójaN Sìã:ÇXCaÞ!Ï¿»äƒiþ¡/°>ÝÛ7¥žž¾¸yê”z6‡vn sš’X~ÄöðªÛ¾yN˜°òÚð·7|9Üõ’aãÔy¡Ë˜ß¡3áÍÚM=aÕÆ½ÂûßxbxÁ…Ÿ¼â̰tÙÊpÃmKÃ+Nf¨tN çž°züx&Áªñk㦅ÁmËÂc«¿¾eu?ÿH“7m ³fL¯<ó9á´S ¸íž0s¯)ášëî ƒ•ñáÓŒVßÚº¦„ΉsÃÀÖ[¦…Ÿ_¿"þÌ3Ãu¿ýc8eœpýmËþûÎyá>aœñ˜ðÆŒ$‡¶Ÿ0eVHC!¤m†þlf…¾Í×…m[ ×ܲ*<ïy!õ­ ›¶l ±wC8çY`Ð1aó–pèAóчw„Y“7„ån )M°Ú™1û*zyÕ¶)Åc´*úÝs†„BPy ¥Ö¿¯áyM”z}i»ØgÓcóçªT9^óúþ¾>ÞØ÷³zIxøþße‚ž¶Îqá€cÏ Æ$Ù;úf µiÝ£aÉ¿1~³ÛslR°c`ܡԖÓÄE}¡¯¯#´ww‡EüY8î¥ï Of$ò„lÚÆŽ›”6<±.ÄÔgã¼ÙHñ±1 µH…ÁTAØûûÝR³Ô×»-L6ˤµ)öuo´¾;ãØ SÆuk‚-#iÆÜýÂæM›â˜ÎJÚº} î3³+<¯3-z¬=nèî ÝÝÛØb‚£ŽðÚSf‡E÷ý9ܼ´+̘³!ijv3#„=FÑÆµkâøÎ6“AŒI%Ç w"­íб# †‰ãÇ0 Å6ú„:‹CƒiÓVΘ•]ª˜8uoÝû·mN“'NŒC)q>ýÚ”·?mÞÖ§ÎÝ'l^ûhˆO;ôÄÁ9'~ tM›“1¦ôewHÙêÛb{[ ý=©¯Òƒ3ž‰ÖttvÆþF}B„ÆŒ0¿œ–a ©’ ÀwÄA¬ŽRbB¬únc3Ø #"kh}ÎADÛf¿‘HYŸHgY8fEÊ~¾íR7$¹ì¬¤ì±†Áz¬ŽF÷÷²m}#õ±»w0Ì»)¹÷PÜ6ж Œ ˜ißé}áö;þnY’®¡DÑÄv+àÜœ¶Åkµo:vP|ƒRƒGÆ ¦ Ù¾ek@m¡„¾„-+|ë]cMö2v ýF÷™$ŽoݼÙ@d r¾ ‰K­ CVã㤩SB÷úGL5ÙÞitò–pôìþ0iòÞaÈMe Åm‡ÂäÐS5òEÀòUŠXgn0¦ŠÅÎ8þgŸÓWÒr=Xyœ®©Fê€GéELcÕì ™ù±qYkP]¿c¹Nýp̰줰­÷‰0{òv“ÒöÚïíÆK¯í“ö çž¹nÌ—vs#„=B ‡X™Uó=‚E+•©!Ô¸'Ç3}{ùV§Yßåë€ï koÚn}dkh‡Ì{lÙâpî릆ò¬Ð³m#Ë'`·5ßã9eÑâ¡Ïxg;€ˆÔÃàºÙ\x±ÛçàŒÎ²¥æ{¬ä(UŸaå{¸ÕÆ•ÆN˜þö—áª/í`«Š™Îô Ì Ûz OýE¾ã§„mmˆ( ƒ~‡íÝHÏ ’ÏÝ8÷§?Vç7­JÃ{ÖyNœ&¡3,Ÿ†v÷ãþË«# B½ðu6Ü×øß6s½ß®Õg£{©4}·£ñ¸?Kã9jþùZ¸¦áØh=óÆ% hØÛÃ}—­þÙµågÉû· Rˆ:Ð.ÏE­‚1ö@7œ¾Ö^½µ¯Üê^Ëp1'ûZÁœ©ÑÇœðÃ;sú9äÔâñFï¤!ÆÕ=š,ú6üµ‰˜Óÿ.>Ó°æØïWÕ¡öz+É&´ðúõëCoom—1ΡŒ3ÆŒÆÈuɶõQús¨ÛU÷ôè8}5 œÔœÚmàTÙ!À©wbnHÙ;éìì,Ž¥iYmx¹n7•Ÿ³ùâûÄ Žw\mÎØ_ xŠÇüqÿÍÕ"Ó›%ëµÝ½‘0/;¢TíÕæ&“-]º´ê ´"sl„ ™Úâ¾ûî 7Ýt“Ùnã!\¯_½ÙGåÚlŸú7n\xîsŸ=ôÐ Ð7oÞ̵œÛ¯¤ôõõíàÔóó{4“mÆ<šÀ©¹Äó!›ÃÕ«W›©ãO²eËÔ‡æSïEwv\Ï©ýcM™~üñLJg<ãaÖ¬YE .þnˆ9Y,–/_η‚¯ïCÈ€ïH߇¿Î/ÖÕæA})/}?2¥kœœÏ¹uߣ ó{ä‘G†½÷Þ›ÅÆ!’R©æû92àdp`°x ,X° ̘1C/ÏO–Ù˜N4e}wøõ¯Í²çûßÿ÷ÿg¦vB+åâ‹/ÏþóÃë^÷ºpöÙgçRÆâ1rËÀIÑ¢Áóï€Â<ë¾-'ÀÆX°E‹…o}ë[áþçƒ>¨óGTòW¼âá£ý(¢î/L¦¿á3pŒ¾Ö¬YÖ®] àgÀ8iÒ$®Í(´Ù³g‡7B=©OÃsqNÖêÝtuue Ü>ûì…À"”½Æ6sæL = }e× )PĶÑçóN6Æ s…h¨Zú;wnxÚÓž¦}B?Õïo85ˆG}4ìµ×^aΜ9Ù )š(H$&–ùsŸû\¸ýöÛ= ÄÃdç<ëYÏ 'tR8ꨣÂôéÓE^eƒ{ì±Ç̬ïžpíµ×‚m,úÏ€ûg?ûYV=öØðÁ~0\pÁ"…˜ÈZØ‘—²#€“g µŽ9Ëäcn 8Õ¿§Nš-¨ŸÿüçÃe—]Æ|•>šƒ:(œzê©áÙÏ~vØo¿ýx' $s gïã·¿ýmXµjU (—\rIvÍk_ûZ™î“î§ã¡ð<üâ|€…çÆã\€òá‡ÎƳbÅ °5߈¨T×1n¾Ï “ßÿýìËžáÏþ3À’}cóçÏX‡rHX¸p!Ž çþ|z3õ|$L›6 àÈé‡ý÷ÄO°àeý?ôÐCf½5TrÌʼ°h\•Ÿ‹Ù*—ì5Ö·yC 3¦®cì[™b‹Ëï~÷»pà¦Çí0(}\qÅéyÏ{ÀÀs&ûxŽpÇw„[n¹€KðwÞi&›ÓÒt4|ñâÅé±Çç,6`}æ$Aáod:’1afsI¼õÖ Ÿ{â‰áW_¶ÅŒqþʨÃÃ=4Ýò‡?p?æ”ë²ìλîJ™—RÉ&ƒ9ç'Îçþ`Z¨CžEX´‹59YO«{ŒÉð‚ 9Y]<Ôsœ‡ÿêW¿:€ f /‘Ã`]oµsÄG„¯}íkáU¯zUxÓ›ÞĤz, fí1ÇCߎyñ·øžÛc¼'cÑø; ¿/ºè¢ðÍo~ÓcÊìy(ÿøÇ!IÁZzW Ie°Ò»Þõ®ðš×¼&¼ÿýïÿõ_ÿpx™D†½~þóŸC]ñÕ¿Ÿ¿2æ4¬v×]wðÙùg§mÓǽ¶P³Ÿ÷ð@ @RS°k`˜uža7°c8ìðÃ9?ÃË_þò F‘ІíØf{ÎsžÃ‚@Í€tŒ]Ó‹à1%01H²6›» x ¸†~¶¶œaˆ’wÞ¼y´Œ/;ÿ€È0l/×ÖËx…k Nà·¡ _ùÊWŠl¾H•B j‹•þ˜“'O޶RÁBn€½¸Y0vØaá§?ý)ƒ`Vñ¨Þá”VûrÀãXÖd5¹á†¢ÝƒQ$r´ó!×X-#¹, ª¾‹Ï@Ñ~×ú¢¾áG¢½ ž‘!z)bÌ›Þ.ÿŽUæyXv²Ʊûõ¯}øñì@ w"Ô Ôûœ°¥Ú £Ú¼€@þ}÷»ße^ÆèHÚhï=…$ážï,¤ê<'€ÉG*®ÑXn´w/žÓh˜* LÍ>õhd%ã‹ü^6>{N0e4Öˆw©ŠNEr´^—ûsmÇl>bXØÏõ‚E ÏÌýmœŠ‘q3>ދ܇†”f›{:à¬æ0 ¸!£!ä°nŒ¯‡•T¿ÐhÒ4™Ô6sÎ9ÉÒ/Ûª¦ØàÒ•W^™Lx”ì#O nH®WÑvq•s¹Æ0b²;]uÕU Òr8'¸'¤¤p2@å|WŸÃ*º·ažgÒÈôõ¯=夆ú|Rž›ñÙG’ÞúÖ·&Læ0ÛOa®(FæÂ0¯œÏœÑ–*Å·Tú`n˜ ª‘·éoþæo’ ûñ2ÊZãaŶF5õÓV©Œ…þ ’aU®§?ž);ǰÛŒƒ{ñ^ØflÙsBÊêàZú£@q}v»haÓ’!î¡~²í6ëÀ~²ÖøËì˜#}f-d¼®Ñx3Çyž«ÙÊØè“y³'Û'8ò¥æ´GЮ R6}-ŒéÈðÏÿüÏáàƒ†ïÈV<'hñ˜KÕH%|„ù‡:ùä“u f"¼Áy箿þzÑþâA›Áœ^ôÎõñ7¿ùMøå/É1IùË“sj4vVìÏ~ö³jü;µ‘‘Loxâ„hì×;©76ÿN\üF…}­ô  Ô hì‘QRU+º·¾mKW«±ûóª¾ƪëpì½*Åc9Z~;UŸÆáï«¢¾Á˜Ì‰;µæÔÏ»î¡ÒÀÊú]€Ãú!ñcþîïþ.ýÁáÂGæ‚ODšÊdƒ…Š:ThUý¾¤gp^øÂ†w¾óéË_þ2ƒM^¯Šéø@BU ý–¯ê«Fi/L Ö¿?–ü\m~Tt¼îvãót†îVúø¥VøýïŸ>õ©OIOè¥Áð‹r´ i­{h_éæ lùçûHþ¾ <ß8®……ŸLaJŠÇýÖÜSu}͇Ï)m‚ĸ^ß[Ó!a“ üçþ§T¤Cúô§?-Eºü´"ìÐjMß0Îð%¥ò·¿ým„¨jÄ6mB¦Eì æÔýü9O²"@–>ŽÅ‰E¬ªPçcû‚ ͕殥{;^Ó¿§ZæxõÞ¯$È Âwµùžö׺–çhh–W£€É™¿áé9‹+$«¤X* guVØÿý¥Ô·ü €!þú¯ÿ ­ö!D€Ôô‚ >tIeèÏ\è|ª¾g™òQªÜGý¢'Å®¸Ö­‡­¹O=)O}4­çÔ æôÎè¶BRp‚EkK(KkÕzIœ—ÐB>œE‰%ËôOH9¿ð>¨{]‹e ¼¬¤nÇX%y©QÞ5ŠÆµÓ¤µšÞ úLÿqúm”ø‡›R̃e–Ÿ{•Fcóm0"¥¼MQ~~˜Ë"yZ7¨4ï`BéÔ_À„ ì….“ˆó ØxFÌp¶oÛ5åH`ß%ö®'Jö¡°J_ðãXEI‚Ù.Ó Û÷¸·4u|ë9¼þ¼´Ö·®ÆBÛç,‘Þå©¶G»xáÛOúÓ5‰%2pÍ5ׄ7¾ñCªÅøå9¿eÄ) v)='ü+¶Â²ó¥J²&¾ôÜsÏÅ>U÷ÚYAÜU˜ÓÙ?+óÄGÊy;klEŒ)»j€ K/,yt €m s¢²Ó·%a#}ÒH ‚gd1Å>ã€%K–t`;Š{ÓçAês óbíÆq€C  ÷¥?€_sœõsÛm·1†aaNž•Ežû2QlM~7U)ÕT Ö2<JXnØ@DßX•Rãz‰š1^ÆÀ—ã'@cäƒÅìÏT`ñ‹_Ä8ºØ·îéoô6Y-žç 0tºšì¢Ja7X>™…ÆÍê‰'ž¨ºõJÃwáÇ©íBëIë„%ö«`@aÏ$€L©nÄ÷AëcíºuXZpR¶ˆN4ƒƒITXa|p«‹YaˆÙVLi“ì÷tw€ û]†¬˜ñÉc#xì‡Á®b6®ÕkÖÂMv=­Æ–@ X§iŒõ£ïÇ ÓDžcH]°ì‘KµæTµë”\ašµªÚo˜ Ò”­}qGîi©i&{~ TŽÑb yM~ÃÒ˜!IhG«b§íUrchºæl;'ÃU³}†¢ÙëŒVÎsB†BnF3½Ì¾£2âùçŸÍ66ž—W¶kU3.‰çžsN<òˆ#¢-ÈÑ ÍãQGçΙd¦ûŽfhÏïìÝòì=wnì´÷¾Ï¼yÑ0fÜoÿý£‘öѼk¢YµÅg>ó™Ñ`E[(0ß‹&Ÿˆ”Ç<î»ï¾ñ裎Šý6fLêæX_°G\Y"c0cxÆ6ìʳ3^ÃΘ½ÆÜŒµéùôdíp¤OXxxçÕ"­-ð`«Z×ð"ðð^zLEÒëí-³•øÝï~7¨DFcy„7 çó|^¸ #mÜßôÌ;¡xrã‹Zîr`ªx¦®ÿi‰þ!ŠÜë…œñû5çâWiå ˆ-*sà÷¹Ÿ|/ÁªH¨1P‡å;€¼ÅŽ1ÈrèÞ{ïå|ú‡Ÿä<îKËoÈ]úuÂÃ|,ì ÈZÄJ¸Ë8¡v ©qk#ó~¼ª^©4kƒªVZl9) ¸Qt/U[ÑªŽ…ûC¾àd“_“‘zée/{5³Ë5ž;M]›µ²›4£ýtÊ)§è\j¶m«m2SÂì˜}xÎ~uÇ—Ü "™viô Æj$NÙjŽæ{h8>!·"Â% ;Uo£ìÛšûVÞ!Ïk'ÀQ±³ÍŽCÒ'çñý±]-¿)Øâ°r>Çh9&;aÍcÓû£OÙŠs}ÖŸ-ÎÜ7ƒlq‡Œ]ë”¶57¼¾ìheo®9sex¶µÚï0‹larµ"êøp¤µ’œ[•j×C»Óh %Ì c¥$ž†œ«6,èÏ¢kYyÁP"òø‹›t]ÞâÆ³ávçm$­å>evÅ5 H°AQµUê´™±Õ¹¶‘´VØM a¥Ô;ÂU ɬǪM¦'ôEý7°`wK •è%óMKkÕ'ß Ø3—ÏÔ‚·aÙÖRJö˜0äB¾Bמ°¯þ±ÆçhNåáùQå|\ƒü$iÈ"¿“¶©…k“@q\•~|xŠÂÄ×ìGÛ£pLäVXnÚW<URÈx­¾ mB¾2‡ÍŒCÇü;v¶Á‰ÅøI`[ % Öª–@¨®£½¢hàÉâ¡ B# ¦hnE[Tj£ FE¬æÛF¡4‘Òqogñ|üõª…+¬zÿª¥|m£°‡õ·_C-ݯPäØŒÈ¬Xë#GE þYî4³¬çl6$§ÔÍZ©•í-˜f¤æ{T?!•‘ÚÖz  i !õçCÜ § ›¬p.Ò ¢Îm†\“s³ºvçÔtP•·8÷«eqAŸb¯øö$S!o‘L9†c­úðþu_íˆ3[ëÅAòè·+ESIÎ-=»ë]ŸÌÍ$à`µ¦ëV3[KwIŸ‘¶Y[fW¹Ü©åYGœÙZžKÌ׆–*rüYÅÆßicX¿›x&íò÷hž¬ ͯôwEòùÃJ¹Àùè©àë„Åd|ÕV°bÐêz«¾…)>Ê™1¶œÈH-µ™¨uÂ&µŽ 8ýØ‘pjÌ-¥cÐ8…šˆØàëp1g³ÁÈëRvÿ·ßv»å\îyìž°ßû)V}’æmd‡ûLuÞqëÒZŠ÷×ï‘J ‡[¹/’µš^üðÀM–zŒyôk“EÑ ¸¦Úó37;z¼Ü§Ùùõï­Úö’Ø__ý«ôë˜nY˜®ºãªôƒÿþAÐýwE6¼T†«„fòÀø~6¯T-÷9ìj˜Cƒ’!‚¶ cj»éûS\[|Öò5£_›ÈÉz†!ļÙ)ã}²—þÁþøàý‹ãC›Š?xq¼kã]qé’‡ÀËxCó8œºÓç£}FL0²¥„Wßši|ºÝ¨ðìÍ<¤Ü®r÷µiëIùfÈÅbÄwõU× Œk™Á¡,P@8ôÈCúµëBZ™É+ĺ(äñ†4Å~ë ½Ï§ß®E‚—®¯SF$­åá$IÓDí ?F„j|—î¼»§lkKPÿ¼†9wöóWÀâ±bj{GæÒ¶Š¶ei44h¿cyaP\ä¡4¶nÛ&´Mûµï†Ú†ÂÝOd‘î6<±!ûvÕ_¢b-ç}°ÏKãôû5“j³-ŽÏyö³Qy[¿íë¨'7&LáέjÜ!GÕã2ŒÐì†Ó/°RãjØ=¨èìRàôºa}Ü&!(qRPML(q­€@“ /Ù__O_¨´UÂ@ÿ€€“"üèr3»6µÛïÝû@8ü„ÃÃ~û…­m[Ãâ †+.¿"›Co(o#Å-îè´ßíŒ/;'Ûo}vuv±mÏÐiçSu µ#té"\,ÏÂýõü^…³ãS/»ÔT|ãzÑð”Ùݰ¦ÔWè2K*µJT´ëÉÚ2àÊ1Þ Íq¹ó,Û™'JÊ¥ø^2ÌYƒìSì(€ZnЉ~1¢¢ _ûê×Cgê ûß/,¯,Ç«‡|°šr¥ø)@µUÚ¤²àfmûb´©ºý¶Ê"¡ó”bshÆ¥ýn†KÖÛBH“ŒiUÙõ©±+eX.cö–22p“#{ˆ˜ Éhä²UËeŒRÓ2Ê×Ö£ï•çAM¨ô&ê¿0úëp’%ËsóÛ5Æ+k›pŠ4û¡c>úbÖRó}:¯ !¿}å¯ ©=…9Ó礉ã&†±ãÆbˆe˜X×ëÈZEcÔ}ª½Žû[i¤2qtRÿü¥ç¬ciUÜ‘‚VimF‡º*l}¿êÚSS9Ìœ5ì=!÷X•ëÅ­Õ¦ŽÕRj•êÅÚrÜÚB«E ä"«ãÓ)Lä >”þxúsMažG#B3¶µÔz!€£žm­ö ÏA°«Ìb³f†¾þ¾8wæÜ0mÒ4Ò/°?ºtÅþ‹ÏQ2XpiªÞ_0¢í*ßÍ1Bð“sM~•ÞQRZIjq»ÑþRF3 }(ÈݨøùŸ¦´—$<ù1FÆÜ‰Å߯ނV̵:j™­u\ó„£óu¿».¬_»¬‰¤VFµŒ0K‘SãïÕ•fC†;ÀW­Ø9ŠÁ ™ U}Gò›|xܳVx‘çD)w7ÞS‹ ‰…k…kAXV%†Ð®x~†ÂZÖ“âî0 !Ý“02DS'ß|&‡ì[wŠ…PyL£g!d)'GUÿA|Ó,D„?g‡øsÊGÏdÉ“RÍÿ?KåM5 !¶Ÿ,E¾‡„k!<Œ,µŠ>IÛ£åÓÙôœxFÎ]fƒ|‚Ü=±1Y:Šd1|ÉK‚ÕN‡ž_­ÿn›)u1'&BõâwX¥RGaM|†Dј¸w)ˆ2±sÐ_AºìŽEÒJæÂ’I;‡ç/R4¢ƒ"5ÜÙê¯d{gÛÖjŸô©úª‘ø; sz^mÓQ4jšïa*g’5â ÔŒÛc¡* cXˆ2ªoR½e÷ò÷öc²HÄÉÆ¢2ºæ{»¾äa1³Ö²†aª˜½#Yóo²€,~Ÿ«K£9‘y›¶‹f”Œ{—Ì—âOinvvɶi‰ë„Ó5ãÑ<5¾>Õ( ‹a™Å’IÿJdý[òÜd)ãÙÞ!¤-}’Ž„=†9¹Oi†IHK‡C¬Žï–d-cQ*D‹¥©V$mEú’ÜÉ“¶;š¬-‘s°!&˜b<˜ÇS®ÊosÍšÕ„*áýéøÈÉZ™Ë=ÛÌ‘9I¾”*ÑÖIªŠr×£ìQ“NФýÁ~ÀvÕ¨óx$ÒUX‘¤¨Iò<ÉŠ7+#‰Á¥Ù.‘¶˶ÈrXÃ`o[péõRÊn>oÞÞDë>r¡Þ’­¿óÒÚ]Ÿ+¥Ñµ5ïI‹ÁVQÙ†hdÖ׺´VQßß÷¾÷²#óÂ]¦/¶É5‚•`Æ£šÑJJwEf§#/ ÛüÈG>¢¦Žè^®ø0 OFàÏtš ÚdZ+òáÄL"­!¹;Ù/ÀhõÞMEßwpä‘G6†h^ûTNeDz‹ˆ~æ°`£Ò€Ç!í7‰lã¿üË¿ˆ~ö¼Yæ:öŽw¼ššãª-ó â™Þÿþ÷g<§¿¯x\LbŠâF&ú¾Ùþ©ÕxNh=yÎ’{sóÿø¤0ÏxOÍæÀÂF êL‚VïþGêÚ§ykØO®ìÏâÖ’á)^õFÏeL®häÁ$UÙ¦Ùù"R©í¿þ뿆øÃXŒ(³ç{×02[oöw¿û'§u}Ï{ÞƒEŒ0CS˜S«$†+ê_1Mõܵ\~vé[NØJlXØ IÌ=¦à=›÷ºë®Sˆq¡Ùwâ)%E ”$¶Þ5"q5Þ‘`NwWbNy¡ŒsRŠšjëF¾CÝ„´Øuþâ¿)%ÍògwÜqdS^ö×ʬTó^L<>ùÉOú„Dô `6‘E‚m?QìI}˜Iø±â5lঀlÔ]Õ5‰ý­—òØš-š‹¿øÅá«_ýjxë[ßZÕód$_ÿú×aOdð=\ÞŸë`1 SI¹H®æ Þ5Ú©U˜âLñ-ÕNÝWN,Õ,pê>õR*˜¸b2ñ»Uv@ý¶œêL¦ö'?ùI–ÌöòË/—Û ñ6Èö›jC+§xÐbE= Lò’÷Þ©‘íE/z‰cYÅq/Ò¤éå4²J¡E¬/ñ©º©Ü¯ºê*%.òýñ‘*y’ØáÆò mFœßR $ê¡Lá. )þŸôˆ$” ïžZ&t c1>Å&ÂBëÕ¯~5Ö6¤Ô<Ö+#J(€Àˆÿî»ï.FGçYŠiøMÏ\~'å¤ÌœïÓÖŠ É7€<…˜ÉZ(Fœ°JiÍ+…‰ òC`ÀÁj‹On¬ÎéÌ3ÏÌ0žñ¡2ÀN(ÅóÈßE’%Ñ"n¶ÊŸ °°ìÄdÒÏ«^õªð•¯|Ï-¾y/ K… KίR•ƒ÷°¤Ÿÿüç,4|Ðq¶e2ÕQ¸óÎ;ƒ©˜BÒ_*zøí&b©2æZÞ,²)'‘°$fÁzýë_Ï¢æI`¨ R$dÏc¹T¸5sìC^ŠÛ›Dú“‘í½ï}/¶ÍI €‘·¥¸µ®¤¦R–Qx )PA°èˆ¢J2K4§‹%À{ä>f5•ÍÆ¤gJZXý¼s>ë'¾W¾%Q€I±e·ÓX$`@A¡ù> ÀVïý*ß«ž{tãÖ2 ¥sÓj¯Ä³—HÉâDQøÊO|â™úãÍo~3jÜœäÅ_•´ÂFRòŒŸóÄ[R°ßý§ú'>@aZ£êªFó©Ö<¶ò^/xÁ ²œ'¦«å^¥ú§?ý)y?yñŒU ü­¼q°qUF/0U+éò3í°â¼ú±* ©æQ]0ÿ¿úÕ¯tÞ^¨ÈvñÝU ‹i¿÷½ï…þð‡Â"ô!øk¦b¸dm½18¹Žç@…A’á+®¸Ý4ó ÖÀAyÀƒrä4€ M,Ä;aÑ-Q%>ITµ"à°æ1&9-qDFœ›×‹á:Û1¿7Øg­â)¡GÅ gƒ};`[„_GØs¡òC…ðDš¸|SwÙ‚Lßx2Г3Þ›ŒŸ~†-Z,Ì à8zS6Øs°Ýø]ÄÀ!ñêTRW>ÿùÏgü³¶Tº”÷Ã/ ù0T@ˆc$!ÒÛ¨x6"}«¡‰¼¬fd#m<ŽBDy›(‡E ž²ÖRäó¡Ð€‡ã&4um) “ ¦ùÿïÿÆå£‘ÙÚ±a‰l¡™wÆg&~`R8Ñä¦daÓâ…Bm*W ýò!#ì3¢Ø)6Åû>Ê;†Œè=2¿(´«éÏi5‚Ùþdã[tÿýRT XèE–R¡©þЂÍfÙ~HE|È(›;¬™›ËI'΂‰šßfc\`‹=©¡ì¸–þ>è î—QK{™úˆ < -¤dqó~š5Êè(4„hÑßʾQË•Rô‚/2ç t ‚ÙÞùÎw¦·¼å-øzB.BJP«,NÁ¯¥“‘ ƒLÓøüjJîU' ~«úÞ¯ñÊü¦°Üáÿ÷“ÕŒô[¾|y±CÁŸ@²ºÊ˜Ü-`Í‘<×—ºÏ/›*€¢òŽþøÇ?BRä9Ô Ia•K¦øN .L¿/$,s’ «|<{‘ç”$Œ› 5gR½!Ï p¶Ûû¡/ñ•¶/Ø“mZ×ѲÏÆÆ5Ié+rO%&EÁ£’‰Œûñ­êîvM=Üa}0ìgL”áðœ`sæjóvf^ø~Zå9›ç›]œ«ð"áçÜï‚°¢ÄW ÅàÃñA9ýXMÝ\‹ã.a0â\ >J/TŒ½øáàÌÜú;Qd}ŠTã­ ¤’–ø80<žx&°ÀSG€€¹˜C®–*IRb®•úÇˤgõÕs¡Žó[ ˆúÖ¹vªŽëWrÝ}º¦QŽjÏ£ØO`}¬]Ó:ùöÑþ Øæá´2‰ÔAÒúßÿý߸@uŒ…À2S“¹Ã£È @‹OñÀ>„ú­Ø7^çù$/£W5•tµ`·¿ÿû¿×¢YÕN5 Ô…å-m6Ir1`=E- ’ ÓòtÏz1fë-u\©–6DB$ þüñ¦õšJ(’Ξ³Zœ›:ñ~ª%.⤈ð"Ìèù;xIcÎ.!¶²Òñ·ÑFI©C¨Îµþù5¶èÿ\Å G…ç¬7¼ÒµK½PEÿÐ_J ãÞž_÷3à@ðé/¬¥.«ñœEÝ^ýÜ!ežS-T |>?‡—Ȩ|nqþ†“ÈHÕ?c)ÞP{ê[bä¢Vbµ^¼ù“$Ÿ¨/>øÁ³ •¢¼dáa¶´DHQeF·c1hùé굲”’tT@€–jGû=†Âl zñÅ7šŽF @Ű}2¾‹Šóß)Õ k& ÔY 1„v Œ ûÛ믿ž^Pa), ‘’ @K,{JËd¯ôΨ¹0PÀ°Ú¢É>¼’xH€}æìZiZÍ2ÆØžt^)âO»{ºCo_O˜41‹YÕì3ùyj)†Ðh:—œKíEgqp„)G¾î£øDf˜Lß„¤,!ÝòÇ[/{ŠwÐ&;›aÆd†ò¥wBeç™ë`2¹Î÷ÅŒnOÇéE‹îO÷ÜqOzdé£é÷7ý~8ŽäÅs[È26ŠnSr5’ !EÌvUîN¥ÌO3Pˆf`M½¡ìZ>ä„jÜSZ¥Aå=üû¿ÿ{4ª¥ôN¼»™©ÆCÂ{h˜ÑÌßÃoÿ%žÙT6ñ[ßüV¼æ¡kâõ›®ß½ä»ñŽÛîˆcÆŽiN†lg`NÁ”è;“Iã’-$³TÕê¢0)ÉôT鬳ÎJfÑ¢¨jœ›UôWT¶G^öaO…@Á^ú¢‹.b[ÇôN”û²S-å®ÂpM×fKnoŒ¾>-_±"]ûصéÒ%—¦•ëV¦%,N–š¡Ñóêø®Æœ±¨‚S™>4š‰W4á¿9–aQ9ìRÈ9ù¶·½-š~.ZT~Q9OÛ`ä=X´EªÆc63ñ‹ÆƒB±ð˜kª¨—jßE³Žöê£nîËH-cx_5&U}ŒYk*GY5£€¬šÅ•vY55‡jÄŠH­ªöµ·µGÕhæxñ°CËî7h¿;Ú:¸صe }¥gnTFd!ÔÐ ¦q®ù#&³u$ Øo–„£HÎz#t¬ˆ0ÂXs*,/àGᇊ^­¡…ípsœhWã¼#»ÞBÈ—&Ǭâ­tÀšø¦N8!“žßtÓM’L‚AŠ¥îrÌÐT @õQè«hy•ývÎÉjé{•É\ž\Fœ«mY%9Sh­G네Iƒä[ð)éßÜ…m0ÍnŸcéLJÕm«ÍÂè3[½ÆúJ2 %W€z¦f,„FWÏÙ@·Wtn ôf†á11ÌÆ%-â©âJtžѪö#ÉÅÈ™ßô5l=§?Vgü»ƒžsX¹Rr§öˆT ºP€JÆEž èº¦RbƆ·Þ=+àJd™ú¤»;º€Qž!¬~Àý}ýàØ@4¨€Ù1ú•ú Lf$'ÙÃØÎŽsŒªß¤÷#å_¾?²_Û¹»›ÕŠ!‚IzÆ07Ì ÓÓ^ñÎtg˜4y¢9ìÏnltib!`1L ¹Rvnbé˜\¬÷±åÄ›o¼0¢ÇÞ‘‚—…5‹l>ñ«Ä𤥰!{JY]á¶-ô(•`n˜YbµÃü7ÑO9 ùlÎ8ãŒR @Žé;H`:çì-·/Gm1 ÿ¦Ô&ÑÊnV°Ýe§l¤©l“æ`ö)NûîÆk³:g…9cç„vû›6}ß-÷ȹ¦”PÛÃ-íO’=òd—Y&eTVKV$ìѯáƒûöŠòõ{2ë>k¥(ט…!¼IZ­è:¶Ã߇ª0¤"àÁ¡¼ì‘ë=s€,¬¼¿b‚µÞã§™´óRà À‹¦‰uu´‚hí—~s옱Ù}÷š¼W˜5eVè4@$½½lŽ'Nš(öªøþþ″ê‡çCŸÈ{j¡xyõñ¤H£È-ÿѱgTo@ÐR¸;å9Ë xoDÏ)Ã÷Züm£€,¸Õî3²Ð˜ìw³N˜Ê¦lkÅDùs5ÿ“&Oʧ§NšfϘöš>ÇnÒ÷_ mãÇÒzòܲ@eÔBþþ˜g˜¤ ¨­B*Ýwv¹@È9tóS¤‘Bwà6D|Âd@ à$€åj"\Œ ž D€:Ë@!p«³‹•Äö¨ „Šm•Ô}Ú§SJç¹÷Øt @õ¡¶Êý&ÏelC”WywÅc ß‚*Òƒ‹ ×o{ÏÝSSY ¥‚+¤ŠÇöôåÛ¹ŒyžZÏ~°)Ë|µªM—ò ­9Ö:Dƒ±6NbÓlñ!<)øÂ;㈎ç>d!Ø,Tïyá­ HùpëÂÉ 5À޲ø®z<ýŽpEkÆ oW¥d_«¿ëE:ÀC…DJ€÷&š'Ì[Œì†àÅG hú=©õ˜6ϘE«ã¾¥?Óúp>“EqOß·=/Xí˜öU=W;k/¡Þ¹ [‡ÏöÛ^„LA×Ò͈8¨x‘@¤?°!òñ‰ßñŠëa8±r=5Û—ÄT`f„®u$xô娚ƒn]çÝ*çù Öž,ÑØ™t,i0y“uS”ÎŽ[Xl¥`j øEò±èœ›± 9Æñ÷„¿ÉFE³w%&Nôj "ð“>âÒK/ExT|/Ò F·Ù÷¤±`²fE<²\÷üwBñýHí`ê¯UœmŽ”f–Å:û|‰õ޵ú»…k«î³2w–Ðd³™GM×Èt‚Ïà…/&¼çg>ó¹*¿ôÆ©Š«, c°BŽ”©'¡¬ó¥ñyU™x“Ð_ûÚ×tÌGF¢‚yF€KÖ'ž©ö^ùN$= -p@V–jAX”ð.˜qïZúÒáðhôÍ;ó‚õetP—W•`dŸ™ºý™è~(èáËž²)ÐÎÎ.æAÖN-Ī>L0Q ËH ¨ÐÿMK;µí?bòãÿxøÒ—¾„]"€¯s[É9ÚÒZÍ‹ªŒ`z'eY¨0G¦¢Äy l8foÀ ÅêG?ú¡&¥76Ë¢ê½â¯`îDr @G’zŒ™…-yá _Ènßy7 >,íy~ ‚0ìQéó©š÷€Q j”º%gë’{ ¼•œn„KfÊ%.Ž(k54¸©’ÙnÊ%¬àœýä+r­‚o$«·QÙœh”å}˜ ~³Éqê°]¹ÔÊáüyÏ{^2ê…þåÊ…Ó3¼m²ØLÉì“ÙÏq½·Ý“>,¿§\Äô.äúT÷[ѹ̇ÅN¦Ä=ð)[Íæ[ÎéUÝÚê•2ÏYæ;KA¥)ħ%‹C§odìííjqÛÁ š@¿Å@Î"Ê’ÏsXhÔ ß)J5@XÉ·¿ýíl©.©-P™ÔQ6Ž?ó­j¬£¦M)9I±;FgêùJ…%˜ 52¨×¯ÓÆ5 S$™” à ¥ÄsæÒáZ\Œ­ÑýñþºŸ‚íð_z&j£këÝ“wV8'ºvdA¥Á|\å"bx¾"‹Ü"•Ù¸ä(/a¸.c –.]JØ ¢Ã:·Öõõ¬sÔª¦â¹­¸zy£ øL4k^¬h›|$„ Á€é»ÒFµ±ª å"àÌæ ÁÓÉ'ŸìÏéMlZØíkh!䥳`ió ‚KŽD«6îúBÃ+©Ð–ž$YHŸÕ¿ÞE‰»¶|ÍH«¡D 홋â˜ê=[yì%Â#*Í `Hrox‰›°Jv‚BDZ‚ˆERO° ‰_­[|擹0á£pk«–Êg!F/RçQµ…õiY0ÉsBJ~ÿK˜}ìcÂÖM»K©~Ûm·a8¡ýM¿SJ“Á¬šŠJAƸŠÑø8&Ï??Þ „VýÐz!g­œ›ôƒë,!žf„aÍ‹Û#3B°³4šƒs4Ëz)¥œ·•,æ”bµé”1l°R¢ÿEÄbœ¬ø›â¨gòscÎàÑG©ðGý™™Àbɪï¬õéú 8£%ê! €æ¶a*{½nñ^5vU¯F†>bc€}Qeþ†UQçà×É|Í€þ(ÆËƒ ã Ø†ìE×Û„Â3qà 8ü>l+ró‰ï'}SyT^o •{øØWÃ2io€áÀøL’Á©š )¦e¨Vг•³m•uƒRºãÀËŠXŒþ.oŒª©ûÄ¿hÅÛ‰EãÆ¦R)ñ4nIÏÏ* ¶C\¼$…=ï¼óˆ¯k‘ïb^I@L}x^é'KÙª=J“C²“ùgÓ¹TE¨“g³˜óCÔHM§ôû”DŠDºðøô©t 80^úä³ÇɦGî·{*¯§±M¨/P1Á†1x7¡Þ ‚=¹bPÝ)Œ$Ý $ eÂ3 WZë¥íHjñ\Q ÀºBÊ“K KžL±fs)"û½.®ÄO@ž|ó›ß¯©–ÉIxaÔáG^&W@½ÓxN‘âðȼh·`p\™¬í!«ß§ú)Ï©ùà`A|bî«ä"Ūˆ,m^çéßIÕy†M!Y¬æVý¡2‚³BB]-ÂU-„”tH)má~Å€My¥(  I ˜Ø®Øñ-[·¦£ :ÒôX† |6,Ø©–a% éô½öJ¨˜5 $œ ¹Ö’‘è>F6Ë,ÕD{FžGoî  !…oàÑ¢ý. ?•ç™ð:¿ä6£¦²4|d&e\3Ò ÇSÞIy£‚ÛJL(®ÓÊÁ„ðÇ‚8â±A?’»s`DÐÁNrø­&­¡U‰?V’jü¦Bò@ý6/ï½÷fÎj¥¶´ÖÝOÒqb*åRÕECàn²¼å¤ŸÄ!ÈB¨¤çÔ³ËIýûwL% €Eø°ïåü’…O¥@›úG)©Ü ½\SÒZ¥ 0ed›} ÈQžo–a%æÅ€t{d©ëêìä8V±ÃÚéÓ¦¡›àb¾¨¸,D±Ùø3À…ÔõfÏŸgE:ÁaJku°C €h’u03²æ­u !Ÿ,x e–pH- kHÌÓÓžç©&BçÜjd­®§? '1< ÔrxIr½Hpª}—ÈZ=+8\(R¥«…Ü*Y«â³`#%O`4©XX­á;Õ· dµô.k¼“  YR¯9²¶šÚÌ™àéŸÎ_¥IuEü+”½ç ¡{)“Wr’Û$ÄÂXpŒGd½7Oe.8/—°Ó*UŸò{Öb¾_® !ï‰Ã ÿ)5U^FFÖzJ o‘9®H),àÔäE(Y£‘,ºlDÚ©Ëù"Y#æbf™Â‹ÐXJÊeŒÄsjÒ]Ô¤z\¯üþFþn…„´ãED aèÌY!;#cÊã™*€’6Æ*£t*+tÛzR'*÷¤Œ2Y«k<–;ñ²΢M§|Jeh-ÕsƒÏ±,xðeïz×»<‰/vjFykÀ@d¶ølÔj%Ôc>ý³Õ2‘‹õŒAòHô° ,|¢HJN ŽÔ¯i„@«ãÂúÕÎ×b@võüšzﱩˆ†J˜/.±`ä0r²V÷b%á&¼\_tܸþ¡@ãTWÔG‰”AwGRËc_µT¯·âa•áØH>V@»~‹ «»È^0/çüŽäûèÆ#?Ûi}pÌ.t,¢b”ÊÇÐ “OZTˆÞ{Sw÷v&Ïê–poذÉxà5ÁÎIcÆtZ¿³ 8ï-’h"ïX¼ÆïŸmÔÉZ]‡$°ŸlºN­ÌèZ.šSæØ™#ŠüóãÔoù…œI‹û>ŠBÚWL8NO*׋!ľš1„ª$æÜº~ÃÎõ°žgMÓ*)A:º¯ZjëA¥!cðí,§Ð4˜«xçe‹N àâPIZk¤³<]¢s)ðL1Þƒ”I£ExÔ^VŸa·I4ûfžeã›BlQS.cv%~jˆjÛtÆï¬UÀ6¯[gŸ‘7Hß±»{›‘Å›ì‡WXg|õj{ƵELÔ\˜D›Ðþ`—jÛ¨‘µELP¤VÄÇDelÝ;òÏS |­Õ»Y;œ€±IgkÄÉså´eÛ–Øe®[c:ÇÈ9½¿á‘’µ%Xðse¥YÛ<æ„Q5Jò’ÖÜk¥–=&…4µˆMÐQ›%ÉKBV›%K›´kQZ¿þ ÈɦH>È€a FbÕ1*ÈRD"U€4Ÿ(•gãhÌ1ºžƒó É¢éòº ó޵Åh/ûø`Ói$ójs|þ‰‰àã~†m{‚9¤,¯¶zk>Fsz$kê`OÏ"TÃ,Ú_sª-êçêŒ7U!ywz$oï|ËïoS'N 7o 3çÎLêŠêÑ BK˜3oUýÜ6 Ãî^¬ÖqIÆ8§ÞKsp¥ˆÉ@%4bÕG‘|Ï=w©‰ôl^8á„c KÎÌ-E@ _yÆâfÚ¬V÷Ëc›sbšréh›*àš8qœí\ã=gÀÎ8m|[wÞf˜¾ÏÆÑŸk6·÷Øøö‚ŒXÅú1Œß©o\ã Óö®ˆê¯ZäÉvJ€/îBùÍ5¿ —^yixΫO<°2ôü²7|ä£ ãÆŽ#(ôH"06‰âxåTZByb Y‰˜Œj޲žÒqï pòQsÜH×Lé|‡‘¿ÛÌLëi¦/;%rŽ!¬ÉzXúSdG¾-à0™²’žÇltÀŠàý @Hp;ám­g‹Q·=s· ¤Öؘ‚gߊðˆgAPf¯ØØ·­®f1¬Á¬ßDØÆfÓñ8‹ýípàt;á{ËÖ?” ô:ï 3ÏÈØ0Ô=½^ÕÓ8FÝÒø™F8ý䂱êaVé¿êN6:Ñ*$Ò@¤®„Û€·3rróþ@iG=@ ð„•†x9æÔX|`paMýZí÷Õî)@›wX¥3 ;Þi€ÊµY^ ÜñœgÛãì¾Xå 5æåù½€8:Z°Š‹’÷ñ6°r½ÈézXYl‚¤ÜU$‹ªÍ§n>¤d-¾Ó'ÕÇÞx1©{ÌÏ3óvì4jì€# [ã–ÐsG_ÈãVå!<águMª—EÀSC´E䣔"µ¶áÄ­m(âå¢#ä!áé­Zð,1ì2ŽŽr2*¤ fSy)˜Š¥ˆ}fËû²˜)@Ùš×§Hô]|ÂL0Ù½6AI¼¤ÛïM«¢HÆÙÖ1îÃ6mþ›yè±q½À¬nn2í5öb'Ú¾„-¦oœiϵÚ<ÆY¼ã @ˆf’“ð[£ˆNRÀ‹Â æW¿U8'Ë]®´jq‡£ÒZÀÃ&ô#‹˜!ŽéýÒ2Î’³uƒt T©q¼Õ®óÎö^«ä—‰…c¾FE4ÔwXÙX 6ncÚÆ„ âêöÇòå”d}ôe9¡®—´kÂAºOÃoENßrvGЉ>6Θ9ÃÌþªeéãºÖ­µ_j Òpóp&¿ÒŠ^‘Áš9Æ‹AâZݨ½bØó¸´ï¾û††Ô(y²öv´J·"ÉšØNI¿ïö‚Käü¢ˆýI’cŽïü€UóG@Úן̿õ ÆÿÙÈï9æ$+wÅî;n½õv MòˆÉ¬ËÍÙz :]€1%H] Ž¼Î’P&^ÈÓDy ‘ý»6ƒ´öX¢8ïô#QQ ¤VfpT,¸9[«`”‹- Wæ„È8žòT´z>9ZdóÇúz ãµ·…¾þh x ”PÑg^“¬î¾ëî0cÁŒ°`pAö¬÷õÜ1|6ŠÎ³ªg¤(EZ~³mµC|„º&¯fZ8¦+=nT¡„§5QJ:†¢R™ ÿR•ÁÇ6à+†,ñÀKõv*ð•gœq>ÒZ»ÇV&:ðä$•Md¬Ô$´ìÄ11Ù5îþQkÜ^ø£I””YçQ¹e0d€¶Ý¢Éícñbßn½>@61V8n@0ÁòW^oº××X˜þcÁ¬¤+ HW ¸ñ²òŒ`3a†Rv1Ú&€S•»ù%କ@G@S?Xó¶Ë*UósjL8Q¼øÅ/ÎúàùHƒje$ÀLÕSºçи”ú/oíw‡TOwOØÒ³%,gîbm[2¬ÙðJ¡oŽk¤! 5áÒr¼=DÚì¹X"-ž2Í2¸÷)¬µÈôÖÈZ€](Ûj-²  ®¦ƒŠ22ÆbEdÛÙ9>ü &DÙט7Û'1 ÈB • èØP:Õ}òýÑñhQä*­'kEŠ‹¬ÕóK˜4hχõ&Ë[òB0€EC¸4‚%{{3’ÝL·Y„¼Ë,BáçÍx¾ &¢{5ÝðRÈ(¨j4A¯’ê,4.Åy…O¯)©SqŸ:èöW%k«ðLÚW+yn© Pµˆã‚&s:·@Dob§m)¥ùÝŒž³ñ:`8f,Z¼(Ìž:'>:aUhïì Ü'&‰‘wBWþz¯ÏÐn)ëß“ßa2zp)Jã+’µ£Ÿòc5å|¥€P ag›}=·0¨ãMS.-èìY»,˜ÖûÃG>ò±´xñÒ€© ²’Í›·…ÿú¯o[tüJö HΟt»˜´ú‘ŒÿÎ¥zPæÈ;7÷'a±U°éàäØH<`ÔR˜s ÏY<ÞZ ÀJ¥)ó=mvøaæ`½6Ün é£?Ž{úqiò¤ŒÜù9¬t ¡\¥¤V›Ûº;³p?’áerÃ7ÆM›7Eœ°ÝÉ–ôü­'2r¨¡†_mýªVÄ›’-yý$W´×_…†Xl+ùÞÁ>Z#÷¦ Î<ÕÈŒ©†9zÀz¹dVXs€ÖaN/ æ¤ C s‚õ¼2…sRÁÀ ÑRõ¬Âœ9ÖÌÏå¾ûS9ŸÈ[ÓeÎKû؇Âßÿý'MêºÕ$yHuÛÌÍê¿ÒñÇo’Îq¹“oWÚ{ï}…åÓÃ¯ÈøÖœ_ÇϯʱZñ* r£7®¡,'J<ûw4æTë…IB•]m¾Ž€‚°¬mÌTB2­xÒsG˜ï©H0¦ý~[ ©°$ -IÅH"JÀ%x)/: O,™eËVšÜÑö±þ/ü¥µˆõûôšf‹Ù^wn@r ”`g@€Áˆü¶Ÿ(€-µŠ$x“<a eŒ28ÐùÖJýÂqªút@ ¹ñb1С–Râ£&úœñæ›!×-°Õ#o¿ÞûÞ÷pn£O{æ.óMœ/Œ.Öb׬ Ø 3¿|4¸Ö5ÉßÁËœ˜BV峘wR(v`)’­^'¹Ëósj®pJgN4?…ñ®ù^cã-\­YÁ/!ÂÎUÌn±°*¡@r(]šxUb¿Ü}÷½á´ÓÎÂ!4ÀDž«ßÌÜf™ ?Q¨=Æd[¿%ÒvRõ&zŽç,ó7ºÜIMXRF¹Uû@¨îuï|Ÿ¬Š"Ôds8öØ£Â'>ññðéOÖæaƒ™ñM1k§« {=Óâè¼SDLüÀx9€âŽfZ;$="<ªëQwÑ´ÜžÞ¿´h«ŒDR äÎLž«TûÅsW&Ï^ÛlqôÓ#)/úŽ8¥8&vÁX ¢Lö«bÞNööXjÒË?˜õ³3צnø­í¦ ´b%6ÝOŽ!%©ÍLX3I¥¢ßÚéCÀZ¨ÂŠØ$ÛNÒ•I $3@akaÑÈ+9‰‹ªi³‘ö‡YüO µm=k[øêWÿ“p"†M§e*—0k¤ì<{þ>|Ie˜PÕE¸+’«žšpV;‡wB?¢Úß"fl|\*„R¯1†§h‚à"SóÕzÚyŽt žŒõÛä$‚ÊpöyÕËÂ…¿3¥ý&5eï`/:B,Ø£ËÎý­7im†5sàðÁýRo„àTŽ6:Ìi FìÉ“µ"…Á˜9ð·Œ"e ²2r( Ð}NüFqg>¨¤Íóï’ý2ç`(àÔ;ñÕÈ:æ¯o¡4}½08±a‰8µ%£ Æñ+²€ÊSvÂë‚ÄZ7B»Í²eË"áù½¬/¤X·ó”~@f|–Býw„MÑ{<ö±ˆnl ›ÀšT€Ñìg§Fm’Ïm%ÒQŒ¨D0 ‰gÏža 3šúBX+ÆX´ ŠN_>XÅ»·’`UÄ[:ƒƒ!o À}"-”™ís¤pr¦ƒ`Xú­ÄöŒÝl$å~ñSŸú¤}þþŸ&½ý½¥®øºÅèyw0U‹æ9N5ý[w÷[Èž0=èC¥âaISe…á €½Ú‚I®M°«WŠ«´h„P+y®Í‚5Zôá'2*;PïèDF:6¢DFÅ[ Õ`êxK¡1µBcŒ/)€uXÓø¬cù瞋i«µ°&+ºa5–KòtìQóX=½ð•Ö'VA‘>h €±Û%Økä᳦Yf|꟬ß',²ùÙ†e¦€=Á¦^³ì‹é€SU¶µT¦ZG%È“EÀ¨ãIˆáGókÙv^-ùq°(<èöí[ {ìcüç?ú)[àVX°ã+šÙ|ÐÀ·ÚŽÑ<Ñ4Þ+À „X±:¾*ÿÉ<#â½T)Ì?AÕ¼`¦U,Ù¨¢ñ09€¢Åï¨üœl·Cˆº#ósŠÿÖøù1ÏI‡ dRš×’>‘€ÃmÎ0ó¤3·ÿõt3Ó"vÍ6Û åv³Z´×`M´%üö·¿2žìi¢Ñ嘻Õ*ûøž`ÕÓO?ÅÌψÂÝký{ÁPr/ÃW€å~t<¡¶£'W9&Ò”íü™³cÚ'ޔߞ”–:đŴÒ”èVüÌ@1H0¾ýnK0ôåÌãå/?Ëæ‚¸»þÌVÕÙ°(H~q7ƒ œ0a<Ô'àág>¯ßÿþ÷ÁHì+bMâÔ" ƒ­ÀTn¸ÀXMòËw0ž“ßò Ñ‚±#€Ó‡ )pÊËdG'EýûëG…çäÅxþæÊàL`gÒcŽçCSbǦ3GVøÌ€ 2ÕTË ?ž'X³bZ±Øª7–üC®÷Ä¡¹ËÜnŽ Ç,çp÷Hj+ ¨#«ý8^˜°J@÷ŠêTÜõPoR–œŠÆÿ®8€ ÓŸ^T†A8[dfšŠå3á?þã+-þ×iýŸåì³Ïƒrlpm!›IOaŠVŒ¡Š€PyAI½XM¥EIÃÔŸ€ÅàšFÿùÏù¾5\p©ûlS½L0*¡^ÁÌu *é-˜àËxqŽ\ËÚ–E`%ÓdQž—Z€Kpj[LÎn@Ë£œ:°2ºw«"p²-R²„l ÁÎøùž1uT$öœÞDeÄßõÅ9ûZÂ"ï”Ü”<|RRð([ÁÈ¡˜öÙg?Ô&?P®H†=‰·cç& i•Aj±ßȺéé¸ãŽ2Rø OÚß¿ ÌÓN¬Ÿ±ÖB¿KÒ:HM)ñqÃhÓâÓ£iI¹DX29L+Ë%‘…I|hŒ@mô€§ëri­°%À¡ã¢:Wó‡«YDâlu(½þõ¯ƒ3òök鳟ýG³z!$¬…ãÜŽºÅrSÚhÎÁ`HHXH\¤ŸØÈ~ö³Ÿ $+`ò yk*›¯âŠ… ´üLëaoûªøÂØþòA§B${r¨€­eìý}뱓΃l Š@6RÛZ݃ k¢Ú¯‰ñó}"K¨ÿ<+ŠþŽ‹T Wß-†c,N)§8ж´ÃJd¤çpl€žÊ¡ÑIdäÝzLòNþèG?B’ÈC11rËÁ¼E»aÕ“Àbñÿ÷âH8N›}ã|ÈTLÞì:ôyc#òÈ#ލS¦NÊþ~€z(wýê²¾¦XÅ›,ˆ>wÿÊô¢¥U€’‰Æ¨¡²OÆ`>çJĦH”<ÒSÔ>¦ØrÁ Ad­®ÑŠ®m*ÛA¤o¦+’ˆéC5éí·ãWüØÄì÷…‹.z‡Íí3Lz=Ûæp“å^f=ô0ä$sÍÜÃß›zæx©K ŒIF1Sü]1äf#i-zhôpØP{w©¨H÷_øÂÈš 0—µ\Æ4 ú´? k´¼-Hk…¾¿¯/Zæ1²Œqžç3oÓ}C²#¥k€ ‰–ø~\±—b_o/î|rŠçú–¥µ. ‹*Q=|ê–¥µL̶ 1^n|Ó`%ÀÊ~óÐÄýaRÁ|C9ÿ‚e)2µËmåZ‰Éž‘®s­¯)6i¤P ÏÁü:VÈX¤´S¬É`Î |J«€hå2ÖﱟçQ”ßKRt~t×j?ÕKsÁ¼E·Dæª?øÙø¦aîg|õ3 ã}=¼óo· T'‡×¾ö¯ F”yû€Ö¯“k¯½ ¸È59"£C$}¼¿Ríq¿aüµ§žz*€î-Ž$F–LeBºÓÁ²%2NçÉ+ ¥;h•+*Ìk !]‡“ôJÜåRòÀÉÜr.ÙÇša¿ ÙšÍÏ7ÞVB“tÂ[ñìäâ4Ìöвezæ‘ „œ& ú`=?)Áð£ã2é´Œ¤0Ç;Þ‘T‘É9È Q²nÝÚm“p0C[zs7È>€&}ôöAfÇq\„ô5R]¤¯HJñ˜²(¯'§”˜ðqô“cË9LótN‚KÛ!_P‘˜2,Hó½`qý8“¾ä¥Áº‡€Q@MázÆœRE@œh]ÎQÏ‡æ ™à—ú’Å2 z)™¸,îÒ%—ük*i •Óš5«ÌWsóíù}òk!s#fÁ\ŽZ¬-í{ç;ßIö1HF%Žò µñÊŸÏ íÿéŸþ‰qø0%E[ì„=5Øê¬³ÎK±ßó¢£BÖ²h)$ ´ù€%Hësìi¤lR²"œ¼™' Å!¡ñ˜;ÒgËd­Ï¼Ø|aAn¨&`H÷h-L N~M Ûå$í-Wݲgöì½Yõäxàt~™ ìˆ ›‘<)×u‚æƒÎwNÕ]£mCzÐŽ§…§”)Ÿ3D§¶ç×5!µy,jçåØÕ›ûI”í1c ˜Ê†õi£Ã¼A@/ ®t¯ùþrä=öëvüøq^ô´Ó^j*—6Ç›8ߎm0 ×¿ >° »½éMo /}éKyù¼—jÓ¿£†éχdE–²>¼ùÍoÖG/ âœzýxr2‘oÃ{tåô=jªQkŠëã¯cÇ|€T@"ÆxPØ\ñ”h%ÌT¢!%­E=' Õ§d|­EßyBQ©SJ ‰ »"‘Ø ø,ì…Uo¬¥â©¹Ï$@Ý9ùý»ìúN° À–óp´e÷JuÛÔ ²­Öó€1Šô¤«×µÈRt¤°öy€Ö~ÏgF&À¹ób\Žº @¢½iÓ6xËøº×ýµ‘bÎMC¬¶ãã è hÞ!( ¶Ö)›è'R6ø¤ÝøøÇ?E].Vaš¨º}Ïç5c˜J5 l‰çtÙí˜Íçãdë'Š®A©û+²¤ô‘ìj‘ç,[% )`Æ×+eç„çôî6JŠ[šdj–Ú{ú,b´¢É}*y!Y¤¼•²˜–>z´ëÍíiÁ¬´Tñp9)Š*üçvkE¶ ˆç„T kÛ´JÚs Î0«$µTgÌNÚVë¶ËçáâE¾–Ù§ý5n†kÜñšçÒŸÍïDæÃðxª%¾!{Ž×¼æ¯L52ÇÈ,-é˵pÖ50ð@¢9ÚW/Ë–€ù‹¤)j$œôêv+Õˆ4¯ ]f½,c­`N%3fNP+Uów­k„àû„GEè&5 e¤®Q¦7mkÉs9Á9ͦÂıj%ÌÍæÏ?gbAI˜‘’os]Þ&Ú¼j(WwÐr;Z%2µÏ6T*”AUú€W, ~0@r“¦¾ýoZ…Æ”é^Ê÷¹dº1…+r•6ÈIa555lçc«8Û\x^ŸB­ã ;bÒwî¹ç¤ßÿþ,â=bɳlÕ]K:?‚—,r.ë¢Áâ*ŒQSìï÷ 9ä¤rB·yÞyçÉÚ‡û&²ÈÉÁ©JºqöJ–1WŠ|*&¬†Yƪ©n Kè©|ŸÐ"­úqÖC„!dि®oñ¨Úàï2ŒuÇ2 œdÞ'¿ G‹èÓÐ(à¤4e ƒ-êà”>P2Éê†ÆôÖeT6•²»z¥È.À0¤OViuΨ†Æ, Àë”àEÈIrHÚ\ꪚ<&–ð^Îß2p­ŒÈá=s^³/HMá€Óý¦öÓªzLíú,zã'Yô80Qõ[¤µZUç; Â"³èý¯VzÀ ý(÷ñ€.g‹‹û¢ðÃþγíËÈ^†í,Ø ÞO«ýÎ ?Ò´Á¶ÎõÇ¿õ­o…k®¹FB¢b0ífyΑÙzÄ<§ôÃðåïyÏ{ÃYuøA¥GHÒ¢K22k›‘`f{ ,{v€Y›&1½–¬Ýð÷æ~öi¬´° ûpn½H}Ã6B(µ®Ô± ­šv^ÀâøUT,èüJi?ŽáÕ•Ê*QRãíÆûÔ6G£û+2ˆÇš>W ÇZ±­•Ã54³>ƒß¦I Æ£Ð.{ŽÞ=ÿ(Î |ûéKü D`Åœ¤u|[†9­Ÿ„%e€ ©0¨Ï{¢{°CÈZîëR6(5¸Ï÷â²c®Ëôýr±×û¾8ÁS ðíɧÛàs-Fòø»šYß»Èù™ùºZÈM”ûñmo{[¸üò˱j‘×EMu…¯*S©—ÛêéšOÇà )À&DqÀäÐt©Dàyòï(ü%óœÞö·4ÿ5æ¬.ÏYI5Jî0Û³•‹ }¬ìÉBk$X°€µêÃ×H›•kQm[µâö³Ýgç÷Úv¯µ=´VûÔºÚŸÕh©v>¿³;Ñg>&vDÚ|¿Ž%sÏ ó(œcÛR’Äò³Ñî—cE~øgÍÛ ¹u×ë~Iã$kY2gmâÞš'Ël»Ûæ¹-;Ï„p¨8’aUÞ •k0µËÞMM>f¡¿ÝLa¬ª"u+c$ú¿¥O6rÊ)ÉxÒìxN ü¥Wž¥ê¾á–J½ÈÝÆ+Ds‹¶JÇ/~ñ‹Ñ¬ý‘ÞEÓw™eE4ÿDÎA‚+lC2(£xZ~—ªŽQýùœV{ȹ©m,…ض–ßlSû£&m¾ò¾*ê¯pÏPº/ãç1toÆŸ# ¼ü ~?E}©Пö³MŸÚ¦ê¾ì÷Ý͆6š±y´ g‘Â~¢Ä[¯xá…âe‘íÃ[ÄUíhDVIÄöº‘ë kF(1¬Î>üáó\Ä׉&är×í%Ç -õQSä'ñ9ÆÂX„ }"ªûE]¾ò•¯ ‡ÃPÛ\›5~¢Ýñ6TO ¡}"¡Š,p¤Ô—ÕŒó—Ìü4mU¤_lÓBöªfþœÖR“ ­þË¿U})'ý¢¦BŠz÷ÛU§šqÅéDÝ\x)µîácäú¤ÀHoû;Ìæ™˜É0r~ {ÛŒ½úê«Ã/~ñ ³Ï½Á 7vY)…Ñö+_ùJ 2>ÚŒv·è|R%©ŽDß[×|OV@A>ók_ûZP™8q&¶‚–[ó%ÀÛ‰TàÓ‚¶ò=:ठx%-MX `d:¿Fû5Î!…0&•"`:£oŸj¨Nè›É ê?7?ô1b4ÆJãÝÛëL}Ñx£Ë3 `¶Éa9¼ímoGßi¦}׉ה"EVU0¿{îsŸ»+?ÌReÌŒUálÞúÖ·¢’µS½¨úÝ(Y£íföµ¦ÄÏA-‰nËÀ©¶ÄtŒ‰D8„!|nm?Ͱè{ÍóDÓÍ)\É ûÐR. vðúFé6=V@dK€ã" éñ½êçZpÀè'¤Æ±í¬ [;ûYÕìçȦ–*Ë$ÛæþbøÕ·î'Ï RXH<öŽ:楂^8LöÉQp;B-A*$æX nðÁF”sˆYûdÂ#ßÂ}zûàÑøÞúïæÏm¼8æÔ GÌZ,Cï+0.±[/~S³\ñ  yErò˜’¶P|jiöäa¬òqW æv;`”eÀ…ñ8×ñýýƒç¶ô 'ÌüOof¿µT®%U’QRüÆgØjÁ¶ˆÜ€êÈötŒþTÆâ]Ò¼ªÇ¯–R¯øS\X’¤ÀÎÄ0)³8XÔô½DôÃ] ƒy_ÈæÖnïJý§\º¸¿ü'-gÌ{Fa}±Múfv=g5£µE}gëzNùºÙ¤b½¯»ƒ)Q³j'"ëé¡h<ù—’ÏÚDëcÉÒÊxšcÒ)˜³ìQúQJãHw©Éh¸8L„âÄMgýúæç·ÉœiIßP’Ú>±¨0D0Qr!vÚ~Z°ts%ú3f,1~ÌÖuoŒ}ˆ7k”ÄxÎK–8—>·Œé¥çôüir…ÎÓB“\²_Žy쪗+ "¹‰RÁÄ ;MÏY¸rŒúR1§ô»•üœÅc-¾«¸1ŒV !aKOAhþtʈõœ"?¢U—–¬1•ó}T£T}HZZ+¼<¾âJÉ]ç(õ¸Â€È669}h¿'›OŒðãêÕëLHõLüf¬I)>À€• ¼N‘~h­fd_`_Ž!3g]ã½·[dÁÕ+é^°*†f p@<ì°#VDÇîî>0);:}y’^ö¸‘ÆëCË|«ŽlšÇ !µHJîj=§EA0ûnñ½ÀóFŸÎJÓzÎöfùwÃÜ"¨ÈCz;V‘›º‚>²ß^‘Ÿ2›sþŽAaDbÄKIÝxÙ`Ê6" X ø%¤«„)ô &åzö©…ohÁžVrªŽQ!Y¹§üQ‰ðÆ6m‚¤5¯vܸV…›o¾Å\æö3iês,òÛá<á.%qv$«0™>rm{“¾àÍ Ïœ<–Qõïf—ó˜>”(Ö@¼B†haoB˜¢ö/] ¤m5¡v (µ%ž³& ­=Æb”ÏGú1º@ú•ÁËK`‡|ÒÚ*ñauٛƔ8ÛbvË¥›í"‹§$ª#|%÷sš…°““Á‚®ð™Ù1°¼Ý¶mÝÍnƒErÛ`9O ؑԪ™£-²ú€E®?ÜŒÖ_‚ã¹]ß«y)#-µl$ +€öûS 8õ{W?";;—¸9Ì)Û`̧ha^ˆ(Á÷Iœ"…ÉdË¿¶Ä¤(ÑŽæTœýÎÌmFF cXe†Ýt@Y©fv…šïR(`_öå‘ \Péäbe€™+¸páÿôþ,(òÏùHV(#¥7ãˆgC&„:Î0 »—sKs|&F+~P€¡ë’r-8P ÈvèÒÍ7ÿ,—$0c›<›¤©¸ä’K-Öì[’·"ðqoL³ v6L#'mŽAÎr<`™EÊ?4½ó„]˜*ÑÖN–òÇ›ÂU°“”c¤Œ9½ë[%fã²È¨½ý½ë3ÃÀ{hGçÄS‘?FS˜S1ŸbéþÂø£âÏé´îíÝñÏwØ}é%áä¦Ls+©Q×s²­ðúg”RO‘Õ}gëIZªB{Ð ¿+.YP´û¿3ƒûµÜÀ”ðÄ;m±PØÇ E4Šn@[Rñ¨jŸ!âÇ!¬ªw ± $tBR{Áÿù/3Fa–(u@(uÔ±Xy]Ž—TLð«{©QIЊ”•ñ‡ö„õx9UíkÊ|Mmsz ¨Š¥å1Ókª¨ “&„“N9),8`_¬ŒZò\JgW'÷¼ªÏNÖ ftm™–ó¹Ný°OV-Ç­u„£:·›CȤɓÂ}·ß'§jëªJAd6óAÖ’û´~ ÎåBx‹P}ÅÅ~Šå*³½\Ý}ÐÄÁ5©èíáÁ—&rxš‰áB΄`Ь\'žø<øP§Ö¡OïqBßAÛ´É ’’ÓÉ:r7蘀Ç×<þMoš={.٪ɽij€SäŠ"çw`´ˆ¤÷–·¼¾5 æ†Ïÿ¢¾-Ñ  §@Ò 8˜zGµøÍ*rÞÿŒ/ñAÎ?7Ì_°Ok k[{Ûèµ!›Ó4~¢ ÝÞìñpÞkÏ3€ëÁ9YéÒ, ):ûcÝö˜€pÌØ1aÝšuáÞ»î /=û¥i˦-Fo7wÇ»î¸+ôõô¥ã,7ì¶­ÛX¾•\)‚ìÛ-óÞšÕkÂÊW²@É©·EUJYt.r ,fu¬aŠhL…0)'ó˜Þ\/*„‡ÃT2ñ“°ˆ2DËù(ûãÆ›Mây3˜E”>•óUÏö!d1Œy¢éÖ&ecá|e´VÍ =y˶ÆãÂfj|ÚŽ:OÛ®¥2–6ÈM°v¼îºÍ!` *Ÿèô­lƒa‘4[Üœ³¢e±{FodàÂ åØ¶¡éV—˜qéðÓøÍâèÎG%LÔHâ­ªRT« „Š‹{GWG˜ù7®Ldcž:ur 0­ö¥Ü°[|•òL«Í1ok9wëtc“aÄvUòy*`wÍ­—èrÌë9ê´’ÐA’çä“ON<°X†2,à7À”| æ~æÒu>jÍ‘æÍãTG“PåRçŒïÁœTYݤlï#JUÌYÄr•Xá™Á˜²µ ÌI ™œî¿çþpï÷0èÂ_/ 3gÍH'¾èÄpñ×/à‚#=2#){ £>²ò‘ŒÒ[¾dyxõ_Íùi¾å‹]d}Lßkzxùù/Gð–À¢ímm‰±Ž†@ˆ¿Œ±š ã5­ „(2|§ ‹œä˜X²d©èO=?" Å>©?% É(æŒÉd$~“X× ›#‘ÀJ¦‚4W*2¾g|™9Ig½]nŸ[̨ž<õjÎñ˜¶`¤¯ªnTÙ`œ`¶xä‘G™·È³ñ}<26æLýKAÛm·GÞ¢&܃î¯y7ƒ‡[8•ÂBDÀéè‚3ÃÃT ðµ+0'¥é|hpH™œ-cN¾GxÍ%,‰§Ÿ{z˜5wVXø«…aÎÞs@qê´©¡kl—aÑéaÂÄ ¦\l &÷?ô¨Cc·Ið{Öqy{üsŽ‹ï_~sõoÂKÎ|I0ò7j¬­!ÈZÊî‡9°R[7|× ‘ø±rË  «6ÀÙÙÙnÛu|˜¶šuÊÙZÕ¹=mk‹$"ûYâeî.ãÑÖ6Byσú¨}p†5Ü;ëôˆlo©ÞµŒJ)ŒÉ“¶ÂŠ~¼þXðNÕEÀga•Ï“k¡«l>:æ ð` l.RÁÍæÏ5›_ÔGf E [x|²ƒ£ÐÏb¢¢7#$©0ïD†]\4%…8FM ´iã¦pâ O”š(\øú ’[xÅ7¼ó AR\]ÿÜ“Ÿ¶nÙŠ`†ñdó{à¡Ù=9kOyÙ)¡Ë¾;ÈdÆÍ¢Òj"#gÿ@?ªsBŠ£ãlÍ„Z¦«×@¿Ó11G³ôãÊ;hz<20#2àœ!~ @âjoB‹ y²–¾\Šx°AÂŽ•VXS׺í -JÃ1è1ð~““a½'±P–%¹Þ0¡Ìgª%¼´Ñw `ÏŸÿü—¹Áû4^€ŽÅl£Ùœ>lnfó n÷¡TdHT#iï¶;+°K.ù>Ys`‡¬R„•x'äP…÷vU‘þ a\PÆ À0ªÀYÉÖÒ?ÀÔnóš¼=v,“ú|¯Œ­Ã„s´3fΙúÐ9¡3 Ø¦óè' D[l }Ær±`ðÞhUZ *Mö`%‹If¥#«9+yBöœ>}/Âóg^JêøQŸî (ñâúA¤|x‚`c{Ž5SÊ“e­U^|žºm^û„ ©ñ|l—yɼM´£Ã–~~^™¬õf€zÌñ»­Y³ÎÆëÕ*‰óÀš«ÙÃéÄ+ꃚ^ 8}ÅŠ•âJ°skdòŠºRWÜ‘œqÀ.á9)ŠÌ0oþ¼´¯YQ]¿ðzt±„Òf¾ðŸ";. ˆâ¼ƒøsf]KiÙ¡ø^ g‘ ßzó­á˜£Žs'ìŒG%Ë'¥‹‚*E0I"‹ñÚµ›IÛ[å»DR:Œ•é¿<6Õ~§ó`SÆCš³4:ƒÇ”Ž­«ÏtûBIÐåϣŠˆó”âƒ5&|B=vÆ4píÚõf(¾Ü¢)fó:ɤº·ð2R<èa! TX•&Ý[ï6íÓ½Ÿ’.cõ²‡»ùªÉsVš ïBÿ>e€­æ„Ô7‹žõѰg4àA§éÒÐr›¬U:ýfÛ*ÇÛIñ€eçl+¯CÚŽ°8.[²Þ©'fúpý¨¥B>Ð÷ä üV ŠO×@õcÕoÜ]§ãåʘL8±bìÜ—¹b?÷¦5L©ó)èÖ²y4_шŠíþûï±gí¼Ctw–“Ö‚Zó½°oTKó}ó|-Ô=µV‘m­_E mçÏŸO€c“*>œfΜr왓ªƒÎ‘Zú#öSµòƒFÀÉ’öôE¾“ã®ÂNÚ/Lù°¥ÍÉÙ }—"¸kØ5 ¿Õ§¤È´k"±P''&.Ze•p›¹%OØPi%¸.)v-npŠ´'cö#x[³fUZµêEvà\c-²¸´ò£õ‘‹hi—`Ά¶»Ën—pÏYsŽpÕ̱Á+ÑHÛh|‚! M¹*š)6®9&áÜ2ö¤ ñOØv‹ŠÁ`mÊk°ßjÙ?ÇŸˆM«0KZÔfÛTõÉ9:®ûÓTtm;zlÆ,aØÒu>©ØR˜R-UÔ€×aà@KÊùH–uëÖFË?£„P×:ãùqÞ†RMÝ©Iyv~ÙS*ÃIÿæ‹Omf€™L’f´`X+’&Ø6]sm%ï‡mý¦j;Ò‚! ÐL`¬*u(k úl&~îZZUŸN°";cwNt÷ú]:‡êÏ¡Õóx*ÎÁIñ:0(ÕžImÊ·S2~™yñ}V;e›¿G̹|âD.ê$Áß«hÞwVá^;¿ì)•VVM­â¬îóçïK8† {>úèÃÑ”Ï`7}¨[°gD•’U#]Á’Ž×TK©YR×SÝ}à7³ÖÓùnÛ§j*Â"¯\ÂÂ~zRò5 Sªe`ó4 ¬Îý²Ö¤šÑ<|¢åäŒË—/³ß=`w9 ORÄ–»9æÜSÚ[1ÕR#êƒéY:tËá {Öx¤ý6*Ï“’·ÊN]QžÔ$؜ڶ¤µÔÈq™þ³ÇIK+…+·œ '蘗à <¯éî¡ku}ѬÏ_/'r²V+‡å6Œ4Vâ ™>sS¦'6à4ã…å ÎlM&G¯‰×„Œv‰Ú¤oÛlpè§RPéF÷nZv¶Vñ?¼H[éé %ÒbÒ÷ðÃË2Û[ÃÉ›êåÛT —:bᜠÀCèÓÙ™8.×+4™ÀHQÜe?›èÇ?¼ìY9_À'$¢ßþXUW3¯j8“ô¤„C& JR©RXtHŠ´Ï>óm{€ñc—l€ùDÚ²e³à†YëÍ&NÚ^?Ö¬àe‡ „(ÎU¬ª*EÛMFŠ/ªŠÛ¾ÏjÇJ×ÇB©qÜ__>Öøws÷,?§æ´%P]10ÇuŽÙ»FÞÖN‰=ö¨‘·+\Û‚)YPQxµGˆ†5£yv R)’µÔüwIªV}ù{XTÝ'ë_÷SëQ%áÛWU¤¢c"C!å±2µ›±9²6fj Kh.vs#±ÌG”Õ Ñ°gܰaÙÃ}8b6é·Úfë#kÕ÷®/{ÈÚºqO¼M%NÀ%GáGÁ«b¼Y´ìw…¼O¼ÿen«˜³í€{.N+-d/DzT 8Vc“ë]¹ þ¢±iÚŸ Ö@Iǵß_#Œì¬hýñ¬Õ³aô)ë+X’H àú°'YÏð…µºžˆµXÔ@¾Ö‹TGÛìûò˜s¸d]µkTé»e²vYÛz @¬S¨ÍXed üÛØW.Y²$ÓÛ5aÒ¤‰d@¶X¾ Ì£R-àó·=aýc½ÊB¨h=Â~þMDØ#úAR‚$ <šœç4Ojø|%ܛ֑!eò—ßò×4lH_:¦FVJ˜Úx:ˆ ¯´‚ެÌÒ?¼ä%§ nIFYžÙ³¬% sc÷hÇF–ûûÔy4Ê¿Y²8© ,v¯MâU[‰~Ö &h=‰;2=ç=gËd-ºµ¦*ä—¶Ñ{šïg4ãg³z<5ýçcvv¼#'3£UH×@›í35J\°`ÿ8nÜ„ˆñ»—Ôj›s /Ië¬~ô;—¤f“jÛYå˜û ÚN«ãî<ÚJáÆË8ªÝ7éþ™4Ùr«øcôedë¶h™ÈâG™é1MÝ”Us ³çÙdB3‘ÚfÖB‘±î= ·J=šuב´{ôœ­¬VðË4÷²dš,¾Pzä‘åiåʇ’( çÃCºE«1ñÎÙ&*¹ž%Kw@@höK·™Ué; 89æôœm´ª¹Î”*=fȶu_°÷e¿ô—¾Jïªm®Õx™2é=}KŸfdϺ*Y [³î"öØ3kIÂ{Æg$"nذ6IKµí'2¦Ipm{CÊ…BKÔ‘êég4ªÆ´“õ«{Je´…Z`Ñb)ÏâÍ73®\¹ÌêCXÁN`é!…M3leºhÁBœ«ÊïL¹lÙJ*$I¤VØÓéSÛÜïìN¨äÇKÖKꫬ/ N@Ta|™þÕRòG ƒ %m-×fÜfÁ®³¹8Ðæ`y4þÒ0f†5MÖͳa)'4šKêHõœ¿CêÎ){J³‰ŒêˆßUÊ)é°±µ’ض–®ïþ´|ù’ܨ?˜ñºñ‡mD@ÈyO®¨Æì±ð#G›ÎôiƳ.&¸•l[ÁËLUóÙñ®¶H³³¾•Ï ƒÀdÞ½ˆëËû¥")&`bÛ»—"!”B™¤Ü>:-\xÂ*øO+ðÈYꋸwN2i,<&õ’µ¤c@Õduf"²ÃÊ•+=?RGèRžÿ]ŸpÏÙä9-DBh¥”}ó €æââ„Ë™¥X @Nü1I倄W‰róœ—&<š`ù-_î¹ç>ŒÈéK™°3ÿFœ•-%ÑHÅ'iÁÈ!%²ŠT”¸$ºeƒ„¥—¥Æ"pf’ea .´1ßKÞ|R3 5^3¼úÕ²£L@³ÑAkx€?ÍÌ1™‚Žø/°ŒHZ»GZÛxn*q–”äÞûˆ² ’Z±b)$.f~虾ؾžxÊ)§Fs<Ž–‡RUîc¹P(Æë¯¿‘Œb\[4ÇÓo¿V®cÚWÃ}MÕë=Õú´/³ÄýèÊL$!IJãÁ-šAFÎizÌ5v~”«]æ0@„³­k×®mHÖkǰG 4úE ˆ°2à¤â4ìcµ@V%³$B(2Ë6mÈЕþæoÞÈâeC2$ÇÊÆúëJwÞùçtï½÷'3\@ɵK@äÛ©‘cÔªFóº6¥Òuy Þ˜žŠ€ÊÆ:1YN—d±³!iÏD=’Î?ÿÜdzÌdq–Ì }u²µ*`&HY¤Ñnóð0$º=/ý_wµzq £(xÚSë•ÊŽÄš*ˆàq6 ®0h4£„h6¸Â¢ÞÕ ãwÃ$Ýñ¸ãžO?ýL°Áde˜Óôœñ—¿üusz—4¹9,Ø.Á“AΉZÛµ°hé0$NßöÅï|ç¿7ØÝÆ¶ÍÆÚ_÷º¿2£õIÑB\¢6aP/á @EæÌæê¾ûî+ ÕôûÉŠ9[w¶ÞS[°j¡ã±(Ó1ü”oÅŠÄBYnµ; ŽLóü'Ÿý¹¯ D_ºt1Šxx¹<¡îK¦{“ñ¦7[h±QE(#K’Ñ»7¼÷<€çIi}þŠ7°§:aûá™Iküä#ÁÎÆaÀiÉuÿÊ".°¸@ðØ=Œ!1ØÎâÓʚǀ³4š'õ©Uö”Ñ”ÖÖXÍzs¾§¨´v´¶wBñ$šb™½_V-6®‘‡íÑœ˜?ãâh¼(¤® HV›èqÞ¼}ã§?ýÑKÈNôœY,ž‡Z¿ô¥ÿÌ-y:d_$_­Š¼ Žtm+ªj‹zO]£~Cf å•?ÿþïÿÆSa´nÇãk^sa<üðƒ£¹~‘2–g…„¥f¿ÍyZsAÖ0»vƒYQ=âÉYÕh™Æh™³=¡=¡FBÖ jÁ&p@BzðÁ›•ÌL¢˜°h):Ѭ5Ï–ôÐC‹Óܹ{§O~òÌâh/"ôõa¯š,Ökú¾ˆ»–9iœ5,…¨l³¯ÍŽIðu.Ûj½…çê|„=™€ëG?º"}æ3ÿ`«^ô—&Ü™šŒÇ4Á×¼d`ÉdRêd€™ (“%áOQØeA:w¿*#ko½õVS|Õ~ÙEB©=¥ÏéÃ`*³1Õk‰U\\œ´ÑBšB*B¾>ñļ5Œ¼}ƒr²˜^tvøÔ§>¾ñoXRÙÛ qsŸÇ ᪫~‘éß÷¾÷Y°©ví–Ü£…*ÞÓgñJÊ$í¶Ù¯QŠÌô‹Ñ;É“2¾ø?¸8\zéè3K¨tÖYg¥ž}íð“Ü&m$möœÊ©©àË =Êyœ¿|ùr?7Ùöí·ßžÕg<ãx­Èøã¾/íÛåqkÕÓŸ³ÙëÙ×èXë¿›?w¤cðûGñ0Jà£TSu]S‘Ä˃£ôvÒà4^Œ5¢7½_0½`@?hB"¬kØ/ºè-ág?›~ñ‹«ù`qK³:‘Bã„|àƒá„ž±©ñ¸˜g¢Ö8œ· Ç”òM¢®'/&Fð’÷Ýwoøïÿþ^¸ñÆ0†°¾·šDùøpƧãlNèJ€‘gˆLžÅŽÉ³ÃGIÊDpYžÑxçw–^×¼÷½ïµçýýÅf”ùÕRË©´ñÝJÕˆï#4Bð×Eµ~_©ž+ÚWý\•òñâõÅc~×_£{ÐÖMXi¤«\ºtiºûî»ÓüãtÞyç¥Ï}îsÒ_Žš>T$¬ ‹B梅ԵÀaótíLD €Ä]´è^#sL'ô¼ô®w]d žR#™Ô—~ìø¢ôö·¿=}ô£7]è]èD3=¤Iw™ 0, O…4Îô‹zÞ²£ôõè$­®†\5zé/ï0²ùŸÓßýÝ»Óu×-„”µÚ“N?ý¥É¬Ð[\].d,Û´ìǨ]¤ ×mù}Ùö\ ýª:žn¼ñF{Þ“,mýÏÓ²eË’™ù%Ì!¯¿þúô| }öÙÉGœ»é9÷è9Û둬èè8رÒæ|!ýfB‚uD’I 'nÒÙûh0´`QÂé§ŸN<ñ98w“˜ÖlnWe1y¾óo†ÿø ;v¢©[žOB&²’‘œçBI æÅdPä;¤+ØÒT<«ÍDðpç fÌnXü± røá‡{6)‘>3VHS*X“ߨXDaÔe ØóÔSO /xÁ Âu×]GŸ™4Ûc-[ yÿH±ñÓdü²a¶ñ®á¾:w k÷µH$>v ù‡?üápÚi§qlÔxO"ë·œŒ±9@ùÌ7¢ZP5 ÄNumö±uÔá¦R9˜ô)ü|«è%á'?¹" @fØ òÞU<.€d€ÐKÿu&@™é_—`."ýž† ÀXÿ‡Ž?þx‘}´NúdŸŸž±î˘¿ûÝïs+ÃI@×RµMŸ,NY¥nðÝï~wxÓ›ÞÄ¢ÀqÝo7°­Ýc[[8Å)kXâ¬pþùç×KØ2ªXÔ÷­!)X@0õ‘’ÿ¡ 0ÉîoXr?0 ^) àö[î¸ãA…÷`R°(FÅðpÀÓLàsh&18E$`\Háò˜®é9⸊þ1žÿÄ'>~øÃ#³ä*`MËž}t0R6¼ñoĘÁ󳻑±ÂžRiØËÌÒ¾ 0Ù&*¹×Wî}µdúÇ>ÃŽ2—~T¦€f\~HD ‚¾]¢aIû}H|ÉK^_ÿú×Å÷½ï½ñx_4^4Z¦îxæ™/F Úóôe±b 0s]bDø)/zы⥗^ÿõ_¿?ô¡E#ÑQb°Î0Eä7‚bÊjÜ#Ò J÷Ëü2~“FÇ{ï½7^~ùåѲVÇ|ä#6ŽÍ~ßvÛmñ–[n‰FÅ`Hä®kôNþ¿öÎ\¢Ì÷UI ! ²GI@VY0!$EÂf€ €ãÔ°."rá*®ˆzEA ŠWseå‚Ê\ƒ²©$ƒ@Vư$ ².¾ï¯îù?ÔS§ût÷÷óåË¡ëœzº¿îêîêª~ë]—A¤çl|iE3)a+µ”¨O²”ó"TaeÝ¢ŠgÄü[úÈqbQáÝb©û`½nØÆ}å+_¹©W^gõ¤¦‘²¡ W…¹Òd±úÝ6i(j…}HpjQáiÏx¤ã<€¥#ÏhJ9Y«$¹l%@T‹°•äFÌ=§ëćAòlâ¹ 1&&U) ©´ ÛC9Ä™´2’û¤÷ äó7¾ñ â8Ä"À÷]ýJûX–ç1n/Á[ÚVºå\![椬è>I)çx›æí‚€Ö p¦IP…!òVûº“.^Rmkgz.í¯0}V»øã8âoûÛÎT:ˆ‹+øÃÜg>ówæ™gà,EÆýu3¾¾ VÊÿ¢v¢|âqn85nP2¤X¹¥N ¤"äئ]àÖÛA–¹ÆK…#Zú±!lÙf›mÜi§æN<ñD€šwì ßûÞ÷ /1Á@bžCŸÕ¿þNî+•NF¸è"àl€S¤”&§]àLÉÁv1g¶(Ä^:& ‹îô˜cŽq¦ä7uË?èÉ'ŸL,$7wî\ÈdÚµ‹9Ó>÷7pæ‚n—¬-út}}ùB£Ji;WJÛ.cÉ6TÎÛªÔ8—~$iwÒä¿ú I‰­.9^R/K4³Š*ÉL÷.pfÉ€ ƒ–»*•ŸKƺZ*m[|ª|œËÚ¤.cZ`êåJir¥”øz –Ø`@ƒ/C¯ˆî)­0hÊpÀ=ꨣ8é[]Ç8B…зrnFô‚è(-Bˆk¶«eOésãLÒ ôÑGûO|âĘ%«7zQÚc(ÏVzÙÁ2vEïÑP%M˜’•EÖRÓså×—?¿Y›öRÖ4Xü\rÉ%:ßÿþ÷ÅgÑ.VŸ@»«¯¾:¸¯0¨+% i¯¸¹éóÓý"k*`º¯T€„ÐDBü!ÂŒ`@#]ö;ãŒ3¼…ñ3gÎTŽaRÚŒi¦Þt¥~êÔ©þ°Ãó¦nñ?üáýüùóÁă U^}…PÃ+Ák‚!1°GÿIl «®ºÊ-X°ƒ…\ÃÎ;ï<§‚§ÊA$hË¥)MÖ!o…t?=V¤é¸g…tyèAVmß}÷µÁu,Ht-Þ^,X w-³·ufëvÞyg¼JÐáJ׺ªFkg;(Löà,×ùãÈ|ŽÚ—ž3 ½¡6ŽAc^ž‰.”bäk¨&â§RL ä§¯}¦¤¨[:8'ìWÕsv؆·)Cú;°WìÅo¶ö ’d=™¹~e&xÉ ;(«×Vûb`Û¸‡"%Pºè9Ú§/ôƒH &‘%y¬¢ØgFºª:Ç>ÇêŽ]§ÞKã© b¼_á\°UeiÏuŠ~0°¥)m „8OÕ¾Ô ÄB=a6¬AíðÛßþÖŸ{î¹ÁýiÞ¼yÞt†Þ,n‚êÂ|FýÁìÍŽÕŸsÎ9Éý_¼eÅæ~RW°º"~VÇ…!¨ê ï‹Ã9Îy%­í*AŽÜýôT„_wÞy§¿ôÒK½ÙËÎ ïçÌ™ãMçËo‹×ôIo¡i‚»Ú’%K¼-RyǦ´¯JQÀh Ký™gÙ¶þÍ-\¸Ð e„û0 œZV)ŠÊ·ûî»gÄ„ѳdãÚ¶*¥l_‡JH¹ôZ‘…:ÞqUJêZ&øèk¯½Ö]qÅÙM7ÝäèSCU !0'dý¿øEæ Sße„QÛB¨±â|‘*¥0ú^a´µœŒ†ÊàÉñ£ý…¾Cw¨6q "sVƘÜ€`ûh^ ýx<Ž(TgÍšåN8ዦþ°]Ê—¦ïPUN¥ø\Ú.ïžjWc?ýöÕWø˜}¿P ãKßüä'Îçc/ÇR5â¬ÞÝ É\0'Dä—œ÷²±£ïµf[ÛDߣEß«9ÓUÁˆEÍ ÌÓO?=ãPS„%D¶ë‰A”í¿ÿþî½ï}/FäÁÿ2Ƙ`^°ëŸþô'g‘þÜå—_¤¡ð>ââÅ‹3«î¬³ÎX-?Ê?L­—ksæ7ÕÊ× ÷Yi˜S€ÉØãâuþùçãTN^a?‹$6óL[géœÛ\ìšk®À™owûé#JûFi*< |åï~÷»ÆÃôRè‡j€I‘À¯Øäz Få-²qjÅIÉÏjÂ~X¼"ÑE޾”0º'mBZwSYx[òÌëÚáÏTã¾éØ*c(@¿áó-Î’‡Ê8ôÐC½¦æ„óaüÍ 2\Ø‚é 0õÞªü†ºñ;ì°ƒ7÷FŲ&ÜŒ<°¥)µ¤µ`‘XKÊVS[yIH„4/>¦Ì®¿þúïÖüB3Ó b&'é+÷Kï &’O‹ ”™1zf"$‡±”1œ?õÔS3³ÌѽØr¯~É'j†ð¼üó*#™”Ô˜>)šY”ÄÌÜà˜½W8o±2ÎelHÏKŽÇs§óBl_Æ„ya.»mLi-ð)I%‘ÌüãcvÓª 6 ç<ð@ñÅÃÃxJI4 òÈ×»YÖ²ÿ‹ÊF˜Gísæ÷¯|âEÎâEðŽá—¾ô%0k‹QsÆý]ÉdmCÖ*€3ä,‡rß¿ƒw< C‘Q;€F¸€ªrÜZ…³$†.\TŠ=M‡)S¦ˆ¼MÉä¢ÁfŽ“ )$˜ Lª>Ó¾Ý_qp/”þUVÒ´ÿÒg² á5“»`beeªX IË¡1ysËÒ¥ñJa2Uñi$È2“–f:5 sh_œ-•¦€·Ûn;jÌ{Æ@€!ŒâºBàd?Íl†e¦mZ¢"€Ô³ú8uÿ–€“ëXÏ>ûì"—;ZäS›Á;ôGPén"kž“›]xá…ìç H_GêöcŒH-"åêòi’ƒ=Î\’$³f¨Mê@ú’ž/z.¦Ðéù”çj—çL·-ñ›âYT°cN'[Â;‚–!5*•xÎnrk\Ƥœ6ž.3žLnGlC•²Ú€S ëøxam¥ G¾ýöÛãÆ¤¾…ªó˜Zõ½è¹ê+JzŒÀ3 ô9_#÷¨¶Ýêʯ¯]5ÆÄ<Ò~:'FÒ’„XFÔ~IžKøÒ”RÌ)ìƒÍ+±]St, jñvÒÕv tzHTI•/Ÿ•K ´‚ÿMW{ö‰Ü~å•WÆØ’/Ʋ:Žê½`®]­®G:m†=°E,ÏG*mXE$-yDñîA`$Ò¼{’ç6dmÙøTóJ¡¡™|…} K¢âái¦OŸ'åá^EÞª:ìkxr@Ú’¾C‡8Ù†v¸Cñáâ%“äß÷–F?×3C[íËè›ÚGñ†©%U7Kß%Ùªú @À{ˆOÆ sábˆJ+}¥Fßdážç¥Ô¾WJã•Â{¥”ñšÒ‹a1“¶øÍÉ“'“Ü6™Äþ/1öB­bæu¹ØG}Ô=ðÀ$™¬vôõãXÔ„„¼iáÀÒ ©’¾;ÇÍ$NÆ;œЇÜ4HVyWy‘¬‚içÌÙ×IéÑÐ[‚¥4ñéƒÆGÛT}1îN¹C:QsðÆ JÀ©~‘Ö/Ô¨àÐ(¬¶À™}°06Òb!¼H¯Ûéx@X©µ g1kìnàl€³=!†‰2s¸-LvaÛ”ž¦Oe_œ^Â{ï½W¿‹]òÆ ªÏñ=t.ö–a«*ŽŽz®Ð/yšÜwß}½Æ]ÕX *ýŒ=LúE Ô™Ò”2 2°Oa¤]' ج€Z¥ Ðç:˜8ÅLUVÿN‡ñLM ±Š*ì/s‚î9V!umiJý\)rr¶ÀÉqîU¹'i ç;Qpu2Àô„ÓP_’>©ÏÔªŽäé–ÚuÑågÒaoÀ©wŽû«9ÁLçÚrñJÇ©;JãlMÁIº/}ÎÉ#yD>–’;Õñ©7Gçêkl»ZŸ§w%T§ ±Êæ„2ÉÚÆÙZØÛ£¤•P´Á8ýâm`¦SMaó¶0g—1î8L«ŸéûCU¤Nè«æl0g³=t†}ñ-në|'s›ðÜ"]6§ò,l¹EÅwÃó—1ý*Ìo6eHÍ£P0ÔÁRÛið•b€üö¯WŠ&Z^ö}M8z¾NBšçë"i)’J…:áü`JôÏ2>HÇGsÒ<3møs6þœm{¥0©x7ôµZ»¦“d-²o‹¢‘Iu°§ŒCX€ÒøFœKçd0!4F’tš-kì±Ñ«pf,x‹ài‡J*]•dÒô :7¨¤µê—9Àg¦NÒ;çÍIê‰2PÒZžÑZmjË^)ò€ üˆ°RÞ*Ž-k'ÉZÈ9òcBÖ­\ô9íç ÂžDgÀg•ä½9…ã2ÝKÇ ûÉÚ†¬-)æøñãsQ°ìU-»ëd¤[¾|¹ŒÕÓ’ÚÞ:ÀTx¼r"hNäd=D@H"{°‰‡˜ð<,DLÙºCˆm]O¹ÀáÓZ„!ùÉÆ¢ŠnìMÓÏ1„Ú/M©ïl-Ç@¢ý¦7§_øNÈ,ù6údÕMP‘«OÛèDÞõrj–»T|_µÃè›ÊG©Sy÷¥ö¤~Ði§ä#ïÈ}úœž¯²Ï69÷Eý,…L]£È€`N¶`F•8rý=÷ÜCœ_Ïbû´–s¼æZÑ}^Úº¥µ¾b*ÆZéÛÿ]ÿÚš×Åc×r @øöñªÏ+MiFNM¢XVd¤„±o£’«jË$ƒÙ·Yš°5='LƒïŽ;îбÙ5C¦ðÑóÓôy´£Oì§©•“’wÂâFúÞê©çÊÛñlBœèÝôð2TIäÓ̬:sË%Ý™’ÝÒï$„JåDÆ ðf‘Šªý€M @Ưõä¹x¥€9ˆ<@Â[²!Ç¥'Y^ùäzäš"Ì™Ju¬*æéqüÎ Ï!Œ·Ûn» (Ùæb‚äYÚÍëo ຮ]Ì©]½[ý.Å4rlGZkéSàd«¸O1©ûÁ|íbNõ³#aJš0%嘓F`O„BÙ^{íEÖêX“±¥ÓO ΩD+k¼¥VZ­ÓTÝúÀ,v®>–, ¢Ì v¥/ë3™­6Ú/hªsý9)­$Ï•< Ûo¿ý˜“”‡— ÒVáZXH[Åœ*ñ¶—v¾I;/$Õ^ò\°+°Å‹õ`ÊØPû·ÜrK¨F®â5Âñþöa¤xc\·ÐÑâ´âËÚU-é=(Ñý»6íŸ-@Þl{ ®–úÛ*y1i[÷²é~O”&y. Ldaý³=öØCV:œ U m hâx²Y•89®QÎL”kɃÕÌGQ+¹kzx¿c·”4ѯñ“™¥bìe!¤9øùÏž™L€wikü»°4ÉsS eq_Áž¹Ñ,è4<)~–ý9ó|IØ›‹%xÞ'?ùIoA½¼ pªDe(òUûÆ¿»Ê§Sc`*“@-˜4Š%MÅODæ%N„»ï$ž=¤alï½÷æY´­Å'fÒT´ïÅ{>òÈ#™œÎЙÒnâÁÒ1FÕd_ÿú×3RÆ÷ïÎ[æµÌMâ.q^óY÷Y”t¿ÅÚÔ²R%C|Ük¥&7Š%Ñ!™­‡üã¸0©é!½w—]vÆ`"Áq}¡¥Gj¡£#ö1‘ÆÞ[^P©pÔö){Ê)§€¥9/ÝQÙ³b«¿Þz륧½ÂOò¼+ïœdºæyŒGª#¬jiâÓq®cQ“bQd‚;ðÀÝ7Þ¨”ý^mæÍ›¨Kµá=ÓîÆ}Ìñ¨Ð±¤]KÅWH‹‘_z®ýßõ¯­]™…PuÌ©Òc%‚õMfѳ_ýêWÁwR»´’›©_6wîÜ€}ìã—D TøîA¶ä˜¥¸ÏL%餞öO;í´ì[ßú–0…0xmìc”^þªÚ·|Ÿ™¥}È,ó5}¢‚}¨á™ÂB›N—{š>:ôÓørQ±¿'Ô ºêÌRÔ«ÿ¼'íô¾¹÷Öœð ¨!QK]Pim^ô7l,m²½™õyËÆå-£Ø.>ïÿøÇ?ú÷½ï}̇ÎÍÈGo‘órïÏ5`2¤¯&üñ³gÏö|`1I!Ã3ÌÓ"è:O=õT¢ìq®¥è\g¼¬7‹"oyQr%¶œ·ŒeÞ0´Ç¶].[K½ïM…áÍû…¾*žîJ•àöXs1†A¿yÌ1Çx ÔFö1žÆÆj‰·Û˜UZˆšê û£ë [3UÌL…þ·ƒ)ÊçIØœ>õ-E }†¤]˜7SIef¼Ù“éoÍXÄï~@L|øá‡ ãꫯFÖ¿s‹µ©eeX»ÒBø©/N:é$gäTHýnºµ`ÿªBê½ï|ç;¡’»P*×ÁÏ‘ZÀ9 X…é ªŒêɃ‰—… ¥©í[Nm€ŠèØc¥¿ô=•ÇærT¥;ÒÑ£Ž:Ê5À½ºBª«~0Ž„4%ã8ðçw^¨†ù‚ѼTE¿øÅ/¨ö3/dVc9 ¨Çâ8EÌwª~j)B ¡¼T$kËÉ)Ú‘À>Z„7~ñâÅÞV\o:QojojOQ;KÑç úE‹yK›î ›Br/‚TsM0œ?¾7ÿ³ŸýÌ`BNQ!µúÅ8 GˆÈî3Ï<Ó_pÁ~ÆŒÞ<‡>Q!ŸékzÞ@¦›Q¹ÿìg? ™ÎyE×)èÝÄjzè¡Þ(‘@–Ÿ~úéÁìϲÃ)0w0´ÅÉ›õ•7+,¶üd=Å(˜0·fcÆ¢ëJCÖª“¹B˜‹aV¶Ï>û ‡ …D…ô iÒ è”-Kdd¸^$®xfIÛ`šf€ IFU»~Uiè~î›”9³LÚ™_Hßþô§™EÀl0l?ýéO#£?”t•™[j‚H¡¯³ B-æäÎ;ïÌ “f .̾ûÝï2g̉æ%V‘6Ä0ofºæÌ Â\wAiBuÓÁ~`’íPùm1}lh^ÞÒÊ@^[]ïï¾ûno@žm¤˜) QûÕˆ\Ï¥ØÂúc.rÞHio¤´7“w /Á¬OX^×w{Q_ãþC͘¼À[~RÌ2 q<žwøýµ¯} ªª¥ïÜ”a\<˜œ¶©ð;&mÅʽ[nVfÊ—¿üå`õ2uêTñ—aJǽÒx·Šû°†ïU$ú¼Ê¦:­÷Š“›À=)¼êÊï ;5)¹3áY¸¦ Jc!ÔªõJšÔrÉx9$œH ‘zBÆBB¥m‰iÊt¤½Òlj¤h‹‘ƒ<·ˆÌë"2¶ý9Aç©„»èÙOçDï®”ý®, YÛ¾¢¼'ð01 aø­ó1™iþèEBŤVQh?ʨ+µ¿±‡ ‚xp€Èö¸„ÝKÒ6¡ö‹|>7ÞxcFˆ©nŒ„3¦06-¬Y:¯ïê|_“g[n¹eLÕp.¦Ú—¦–R Ãêº(•óšåù!Äû`ßI˜ ìf?þø4-|Màï,X€.=||+6±y:¨¸¯uòk¤í‹øÒªú·:í*󯜯3_Ü»¸ÏÅúQôW^y%:R³t!©O¬&¨G&•·èt µÍºÒ¾ÕgGÊû†J J´fO\ó,QŸÎìzæÌlu9DlüͶÿY» kÓcy˜)=·Ïm«’s¾,ë@Éo•ä8»Þéû%[f­]¯‰bØÊöä§HwH( t›„#1‹gÂ"%+R;ñš² aÍê›P00‘Еr~ ²iµËsv"ÉRmž3Ý2ÖØØÕý&<(öǰ%øé¦E¶ÖØãž|ÊÉî¦Å7¹uÖ['s>Æ'õS€â¹O-à|#³…Ýépê=µ…zú¢§CˆR3›$•´+³P¡Õ…ÿ7¿ùMwðÁ³ZÃûj€ 5.f‚*ÅBb:Èâ~ûà›ÂœŒ,|ù<œ9"$Lá<>öècîÁ‡ts>8Çm:a3·úˆÊÕR8ý›@?tØP·âµŠOÀ´l.pržëÉ0¿üÆëo$˜»ç:]'àâú¡F!¼Q8U¸ÏëÆn½øâËîö[–¸%·/qÏ=ÿœ[½õ+#Ž!ÝQŽÚ“»Ä™LüŒ¿ÄˆJFþCñF"#ø=÷ÜÓ›+Sðë4·'ÿç?ÿ9D¡“Þ® }kEoš¶ï蜨éÏUç M! X¼aL?é=ýÄÉ[ú‰[O´ýIµëD®Ÿ2Ñ¿gú{üúïXß2Ôo¼éÆ~òÔÉ~Ûí· ÷õ¾YœuÊ´)a»õ´­ÃvÒÔI~¤ A»Ñ&ùéÛO÷3wœé·ÞfkÕpŸm¶ÛÆOž6ÙÏÚiV86uÆT¿í¬myvKýæ½ÙnµµU{ÿI¶½Æh?ÔKGܾù^!¯8E÷e¥…¿Aàƒ¤W1"ÿ {Š4 äÇ$ë|ãŠÍæâ­Î•‘¥åÝs ç$NmÑçûQ ˆÜÈQ#Ý:ë¯çÆnð·úÈÕ ë «‰9eN9Ô=ÿÜóîÊs®t»ÏÝÃÝÏý=ãöØg7vÜXwónv[NÞÒÑz¤=ç¥_rÃGw/¿ô²É/6s?:ó\îÚ¼úګs›o¹…aÑ×v{jùS#}çXwëâ[©{íÕ׋µ…µã{ò4¬‰99˵/<ÿ¢[û‘¿º«Ã×IIY,­•4N€`%–Ôõ™â =–ž‹¥S9mR^Å8zNN§Ù²(1¿¿xVÖ×’ý´ÿq­sI§‘:k1!Üý€%¡üû,qTìªþ±Þ<¥mŠÓVÐ.Õ«r”÷9z¤=ftÎ!öÛg–'5W›ÕF¬æfì0#ã_cÍ5ÜÒG–fw-¹Ë€ôYZºÇ—>áÖYwí rûñGw[NÚ2Ûb«-ܨ#íº™ÙÃ>Æúú…×»1oãݰ(Û÷À}Ýßžú›»xÁÅîÀÃt=ðP¶ú¨ÕݲǖeWüâ ÷ܳϹ¾p‚{÷VïÎôhQÌ*HΙÔ@Ö}–ûr=£9–Æ¢%i­°$Ñr4¦¬¬LÉQ ­\‰d7ae¢FŸ‰€Å>#É¡ø³9ÎÑ86ó®\h½É&›QŒ4ŒHþ½(‘{e¿goa ÿ1ö·~¶‚9›×HRwÍ?_ãþrï_Ü1Ÿ=ÆÝ}çÝîþ»ïs»î¹‹{ô? @·ø÷‹Ý¸wsÜû€Ûï ýÜ3Æm²ùÆî¿–=é.úñ…nãÍ7 ßó‹†Í¸Ï£}Ô3Ê ì.»è2÷þéïwO>ñd Ô¶Ýc[Q0!'WUZ›—zIûUÛËÏI§Ì” ÞÎm¾ùæ´÷ÒAêá‘2µjÞCU.͢F¶+‚øêåt,~\“k ê`8„ä!ñ0Òe¢ß[ÉË'íJ…tûðáÎ\¼ÜþûïôTVUq$†Üq®‘K2ݦª¯¢,c:/#L€Š1@ ¤¾Õ2B ‰„Rýå!·îúë¤3 ÛÄ[u‹n\ävÞcç€Q×\{MoÕHɨ¡_ÀË—-wñQ÷Ô“OùîyÀû¹cÝ¿½Ñßh¼‡Ü¥Ÿ;`g€ßï´ûNn·æ¸G~Äyû,˜Œo]#¶z Jj$••òüœe’:T¸!9%,‡Ò¹ËÍ(íÜà/å|¥€‰&ª$ÏÉ!hR^°"êÚ£³•ê ×UÚEŽßÿýTÍÀ‡Ÿxâ‰dè|¼pvsjÞŠ1à£TX[‘ÖR 6vØi¦À>‘b‚÷â /n«)[ñ,@Þ3ôcƒñ¸yGÍ @¶ÑƹívÜ.¨‡þqÞ?Ò'úέ7v=wô‰G¬:dÓ!nÛ¶å¾aL=Þ×ÅœôÌ+é2¼x<^­óœ¢¡!,߆#ðº. Íüþà™z‚8Ǻ¨–yÎv¨ðD´ŸwïŽñœâ•uÚ€.Ã&ø«_ý*ŠxšÀ‡iaÃèßY2GZEmqMžu ä.y6-š1t@ÈÚðÁά: AêHllÆêò}¥ö;Ï™ŽSÊ'©ÝÚk­½±â ·ü‰ånÃwm„3«ÉsF€€G2‡pZê¿?ów ¼!ÇiÈ3ù{ååW2øGÚp ª;—½ðÜ ºNÔÇÄÇ‹•êÓÒK¥ÈlÅë+x¾{â±'ø’!?‰Ç¸%žSQð.*+NÒ¤ŸÇ)7ðB"sû©Èä,M“Ðõ˜Y|9“ÀJLÀ0°¥&9uj>á„à'6(­®©!|0B‡­ r ” FÕ‚%ŽÐäéÄr*µýNñœ¨EE¤Üã6pšû!wýM׿÷_Dâ¾ j ¡ôسÏ<ë–>¼ÔÍûo󴨶o!Ädp3H®Ûn»-ŽÀŠíÞÿþ÷ã¹€…N¿¨ÈA0<û¨Fتt9`BMÀK† ߣGØKd.€rÉXV0¤Ïˆë7HÙB“¸ ˆ<íµ×B½_+¾":ó} TŽ¥ÃÐuíhÜúÈÜP 響?ôpxb0ý›XÓ~à ˜Ûþøö3zŒƒRJ"z´'b‚ñL@ø€ ˆðO–«“ÅË\.z0M+ „z°Šçã¶|(h!E‚8Ž)CB6+M €ÿ#Â]O*µÁ.¤¯°x¼ž0 vž6Ñ}‹¡HãŠp}‹ÈõîŒ3΀ê.¿ Sʘ¦éô+ „RaÀ'·½ƒžIѶWjˆ ïžàBiÒ1°Hi.5¦­§c`~HBk¤+QðB~9Ü*õ‚¹‘öœ-çZ%¢ö6ŒÒ\z饊¶—u{‘ã,‰{ 0›4Yá?B l³;…¿¤}­è† MÁ» ×$-Rô?öl&P4©Ô–æ„y&€4‘5/–Êžþ÷•V#§65 qCi=‘‘”úˆüMÐ@À-y­ÔR¨öÈ#t¿þõ¯9^s›\Gºzì6É¿‰ÿ&d”ú¡ë» sê=m²Â‹{S“H¢è#AƒG`cqc!c! EéÈL zH{hi0ô"¹lNЉR‰`H_ê`NæD”Îð2QÿsW{õvvß-ŽE/ñðçŒ^’oÙÂø Ç;ŸyÚiÌZW¥èÙ2…à ÁÑÃå8"Ô-â?õ²U=àáoh(º8÷éêèv"ß ³ M%’=ã’FÄM2]$nª¤nI@#•Àgá*Q§è~Òw¢Šá8zÕxA©%”#’=Â?‹ÕË=’9)ÎኑùYß;+D®xmÅk±áÊ ç9Óþ¡NyûoìÆA=ž4ER­y¥è!rÕB߉_ZüÂâwàÁðV?¾833μðd«„dVï'숺DRm-`,XP`ñ˜í>;¾?)*ÀlèS5vYžd„ Å«¤LÊñЧV’˜Ç ƒ‘¾î’ÿs‰·É8gftðão8½ !;•$¾”^F2Y’¾Õ§®mOZë`š¾õewÇm·» .ºÐí½×Þn͵֌SIR[ΔÉG0a”à½^déÒ¥H"H=PyBQ?X$¾ • ¥Û‹°&j KΤ1ŠÏó^HnQ­èCé×øÀRÝàtNtˆsS}ðƒ0kÅôáÝÊ}BïSå[¡¢Û³Æh·Ó®;¹7{—ÙÖŽŒr¬Ôq¶~@‚ºé×tî/¿È›K0‡;ï‹@ à ŒßÛˆ1l@*×4õ·2p¦À‹öh3¼ïŽ{å*¦g–aÎò0%z0€È\¶À úbChÈRÂõ3±+Rn3ˆšlîIÔƒ %;¿9žW:–§üÕm„’´L6‹ŠÂ¨¨­°TMJ]¯þ—=£2sO+'d5‹@/Šæ®»îÀX$ˆ6AŸõŒ^ã,e~ϵÙ9çœ#,ÌV]-4Bðb…L`„9Ý;Ç¿#ÓsŽtáïoø®Å£õ S»Þàfï9;³-æwnÇÙ;º—^x R:Ãt諸ÊMŸ5=ÆÏÞc¶{ù•—`…g]rÞ%Æc˜}ÔÌù°4zú©§¹€”=ö×Ç0áË6ßjs·Ón; ÃiÞê¾;؀ׂÅѲǗ¹¥.ñ(ôÛ2#„Ò_:®I%·#d\pçÒkb ­P†ão©IMìgÙ°º1\AXÒà¿IûĦ’’AÊÖÈv1×¶¶HÖÈ=WÐ.ÆŒlQñ@AxËÿ¢c±p}Ô*Œ›×u¾DBU‘ ù†°"Çd«H*0 e¼V¬™8&É¢„IÁ~Ô2{å‘N,@¬ã)P¸-Òþ– ŠÏõ)l€7ŽÉI ÐmƯöؾ*•C3HEãR5¢žJDѰÀ‘J>g\Ô'<_HƒAûtÁ帮a¾Ï>ûìƒõò~r†(=s̶žÓyîúìfÏùŸç8s†vÿúûu»Ì™M”`/»ðÊß8sÆv‹o\ì¦Íœæ6›°σ4(¸ ý°úàÖ²cöf»g/pã6ç6ÝbÓ`¸î:ëºÛn¹Í"8|€J„E¥eæU7lh‹ç2µmÛ¶–@ {e=«ª³yg «¢IeC61”Õ´S(EÚ`£Kig®bk¢¬ø{E>³tõ<'7*𤕤PÇÓCXZ9'9'Ò¡Ýè{Šs¥Pô<¨„„´y†!{† í « ¢³q/úœEh­è{â³Ì>W÷K¯ crë­·âÉ¢EQÏ seÉuPú®{Âÿgº_Lª3/zŸ{[…ý`OŽñòú¶µr¹{áu*[kݵ܄É ³±ãÞaýyŸÑ0šO?ùt†s´ü=y>XuÅC–Îú‚¡´åF¡3†¼uëŒ]',¶ÿûÃÙÓ{šc€¯È»·a[Ë»c!¤û¨™üwû‡¬ÌР ½^é“Ô Œ@(Å(j–~^L´ÎÅ$4‹D–á¼_#!èKDèNKø«~¥—“-ÅÜEqM“±®,ÒÇÖaîˆÏ-À“Ùºs"þ2g¼cH.ÕC•_5LÜÝ«#xS q%Ï'I äíaHI[ÁœôTÞ$™$טáÜûãŸE€gÒÀþ¶á\õ(>ú / K ÇøM»Ñ£F³Í¸vÄj#Ø“ê¥=¯”ÌÈj?úE¨aΘÚjsÆ.‹xhr0[îêJ~ÍøÃd…62 ^±>§ëðuô=¤®DÍd]ư¾ÌæQ Ïx ,„xžÞ‘,¦Ò~‘Z×èþé½}Î8WŽøžòè—-ëtžr¯àáiÛâ’Hа—ñØ¢§Ä*  O) žá%„ËsæÞA.±éî†ßÝÀ7‚@Ha:ÚŠøÎ_+BJíDÀߟ…ăQ)ì·`!$Ëw¶Ì áNü-‹oq3¦Ï€-â˜ÆÊ ëbÎÜÕ]$œ&îN ¼V¼¸ “ Ï’úÑõŒ ŸÄù¬GüŸúsòx%0¨Dû¹ª”Hñ?à˜3>…išÞ+m vÚpà ٣J=¯eÌ™¶µä¾E1rL挞^'ÕVÆ–9aÜ úA›;„öVc¡äavÊI§¸«šô8↯.aH}ÌYŒ™ò¨ˆÜ¶Ñóje& ÔÜ‚Í7÷ñ}çìëæî5WmR`öëaN5HU ’²JóF4´Ú“|{N$–1VeB©Þ*¿µ"©öÕN}+²‡d·S˜SUÔjóð~ž ×Ñê=`˜33Ü’ò$©^fHÞD î…¸×ÜTôüíÅׯ–KP>Gv„ ¥ñJ‰‰‚—t:ëÙÖRSXY¾!!*)p"åǼ¼jf²®É$Í»Hð¥wNÒê"á‡:|gü;5%8sû¬ReœãóúÞZîm%*ƒÁm[«"Ê_Ès F*›ïI`ñ±I"©Iw—'…ƒ¤¥â­‘—.®E^yž*¹ZTÛÍ•Rv_Èļ>S!ÙÅWõ¥¼Ïå%S͉jj¬€º¤hL‹æ$µŠbÑA•", ³¼Ü¬%P5cÕtŽíÿ®ß¶´ 0Ê‘ UNj%Fy ™¦ Ñ…sí`á-‘Ô)ØsŒ9ùÍ„R)ÑJ«ß2& \•ª×è™ýf„ >Ç€ˆ*EÂíóÞ´¯ðÑII¯½¶BlÐÙdÚ§ØÑVCN yc'À’T>yI¦ÈKÃâÃ3l;‚y ”ie–Ù”r§Æ1Òoæƒq¬œ"iQiR¸9X‘c"™R³2„ ¬ÔRþƘD+[îÃ5‘´‰°®çþéG^DR‚±ããm'¿eŒÁû«@MÐoÚ&ž"ðã`VUÜ&ÝW8ýn 8¹Èoú”-íÒ~åz• ´CÚ, ˜§L™âöÙg>&QT7>÷]„±A½ÆœiŒŠK ¢â# cœ5÷•€SþšÒ±:rSn€ÒûY\Äò€E(ñ}ž?ÞbJš…¼˜4rqÛBà,°ƒeÛ.pê>é³çˆ×`AÓñ¾ž—’ƒµ3ÍðõË_þ²èæ“@Ö¥<}Áò*vºGÆ€‹s`K¶Ìñúë5*j$žIŒWúÎouž3÷½a¦M›¦o¬Ï™vTÒ6}™¾0oàûrGKFÛV€Sçú s–%§u€“ßígɘÔû85'éùtž Ó“'O–tÒ‡8“gȤ“±Kƴܶ6ÕIòÖ/™­Ut,٦חž+Î~ÍlírKû™­‹utõ3[W»¦|žÒm™n¸'vTœXª¨_ƒXÏYþLµ‘Λ…Lã' Í‹[ÇòI!¹Ðb#=V16K_®S¾Êõé9•‚síÙÖ–c2®-ÝïëyÉ3kÛÖªT½¦|žªYᔵ+.ƒ?†öËÆ8¹Nð§ó!?g0*İ€¨jØ#®œÚÔ¦6Éa¯¼òÚ¡k¬–ÝvÛ­0ØAG¹Ÿ£JrMž³Œ¯ìVž3¾¶h¿óÎxl­Ä<±<³ã©èbr â88µ9Á–ƵU-ãÇÁÎ\W… ¾‚-ÛU«1ÿ»âzÔú€úâ&ì£;7rë§¾°â‡ß½þ ¯®.UøûÏýóÛÌÅz÷%çÑÒîkÀ õ¨¸ ­X¨C!ÈŒ]tÕ€Z½HWÅT齃Z|Eª¸8<ÄsÏŽ‚¢ @ʃt " S9ȇh]ªuï[ÄÇ/qqÆcâqÇÏ-Àñs‰ÇÖJÌóÃSÅÔæqÖœ€ã@6[Ôj)h夜áTD\Ò鮹¼Ñ0 Ùy´,J*UG«À,¿*¼BÉV€µFE´Z½?@§©1鎬:§û6\võµ79Þw¿{Ó×¶4^tþ{Ö+¡ =ó2«F7ã6ÏᅮŸQ€"‚q|–"h…/Œ¬–|*†–’í+Þ‘ÑÞ¹·® Ïu+±VÇ©´5P¡À©‹”Þeð¨ÐÜ”fó®AŸ6¬]<‡;ŸÝCkçB°VµvçW¨›uŠi.^*˜šë8L<®ª‹óˆ¡:ÆbŽ­]3‹»–'þ¤TjOYµVQ…(0jløº¶ò!b „aDÂw5Ÿ+…E ‹9@QÀ?™VÏO ¹|ÈødcÂÙñ«µ,D¡Á˜@­‰ð“õj¢"®— (Làz~©èÁJ©½&´y‰Šyëc¼(R&' „A€SR&›¹­ý½´>öeþ|êOì•ö-;óžý¿=õ“ J†äÈ(VDG`r:âÂÓ[¸æÒ6oßÏÜŽî}|˜ßùkê›:XuÎee›S#ý¼å‚uDaXÆMNHš„F‘Ås‘ÈX&³E1AÎÔ(¯¶Â-'}B>ÿðWXýôí²¤ï)6Ì?ŸWšVIzd„@\Q@DÄq`b2uÙ³g/«/¼’¯]wŸþèYÜûðråå'Ó=ÇåwO÷qëC‡¹æ k¸çF$g”k¯XÀÈDNò¹€ÿ¼s§/= L·\°r'ïº0-m‡›¾•µ«É»Îìa_ßßþùfò2— -)ãcüÙ®–µç^ÄÝ·|Jn[ÿ(ëÞ·”•'dä¹­Ü÷ø §.YAÔÓ#ϼ¸›©œå¦Ï_Bg×¾vË&·åXq-”t"âÈѬüàν¯]·|ºZ+L±¼:š-·äŽk)†>¿ß¬,kóäù½Gp¼4Ö˜7Xûúfûj­…‘D¡ÁZDP­æDqp]‘ 0ä –LZˆŒJ>;ÎÉkÿRšÛⸯ¾Ìôøfž`"C>A¹-­m_-&0D‘LHïŠ dûS¿æÉ¡> ¹IVœýa D0†3˜ Ä[*JWÃ0`h`åÔA‰Ü ^N÷òbc—ÚL†ì¸þ ±ÓßÇ´ ©¶z®#ŒN=š §g÷þêÛºléB~q×CìÙ½›ûy†·ØÀeÄ·~ô[Ú2gªÍ 4isòDÖ]ó\ÿ¯d^Ò‡7dHê0§/­Ó¥ÝÅ|–Ï^Ú£Û÷õãE®þÓu72ßìp´1 )Ó£¿øñ×éèèÖ{z‚-[¶òèãót°/Áå:‡[n½K7lœ‹™z•'Š›¾øýëOÿ”»é–µ±ëàkßz:ßûÑ/õñçö°¿¿Aýæ,ì®×ÕK“üéå1îþý4<ÛGD„»Þ¢¹.ö*°¤-ÁÄÈ>"@Ußíë›í+( j¬¥!bŒª1?Q_nÕªŠ#Ø(Ô(,€:Å€ìT‘ö–VBƒZÑd]3‰úÇÃOeˆ‚¼Fa„1ÊÄØSÙÔT)§Æñ’ÓåZô@Åj€jˆV„úgÀÆEç±¢p„‹÷mä#ùÛùéš+©'B-(‚ª  b㎻îf:ðùÃsùøG?È{/\ÂÆvb D¹~²Ó9ŠÅm9cõJþ´q ÏïÊò¶ –3•@Ì1|{î{€‘Iå›°fÍ9\qéjî{äi ’"›Ž²Q=cãS<öì~µÔyþ°qWÝx/oYÜÆ7®=›«¾ù0'§‰"‡Þ–_ø‹z¶ðÙ¼s 0ÉÔtÀÂE‹xω Y±0ÅÈðÅB–z €J;ĬkfÍÕ´¯5º8©bˆÃÇpÄe¬¯@\ µc<&[»¦†;žçõÛW˜ÝžZ¢0*ÿT…C»ž!;~¸\dÖFÔg:éXp*jË8Œ‰fð†Rä²ø©1ÄñÈOO""e Ɔˆ¨µ5oþ+ö 'ÁîçïãÈÞç¸ø?aÇÆõX£ôœt~I_¶¥¢6OˆLúb]ƒ‹2™h䣛þ /‘Ïú4Ûû·È)û7±n÷ý ´-’GV^J:̉E@D\WðòM™zÂbžõoaùéï¡cÙ‰œ|ò2éj¤gèêlÅ÷ 9“¢®.!Öz´·60§³[ÚšiÎÔ³¯ï(×}æòËßl`ñ‚VYsÚ‰lÚ>HcS«Ô©ÐÖµˆº†fŠf’úú¤$}¸ç‘Í’ê:›ÖÞ)ËW,á„y)\ŠÒÚÚLkK{ ñë.’ƒÃô:çÎgnÇÎ|Ë<>|É©21v”î¶´¸…ÃÔ%še8ëòý»2·a’ OïàýkÛE¥ß÷Àذ™;æµ§Ä÷$S TAUßPíë›í«Å†ùrû Žd'†êÃõ˜(k…9ó,VkÇqˆ"K±—†Ö=øŠŒÙj s½ /c<Ï-ýïb™J…—(RQŠ˜ÈÊò3>BcÛ"–¯ù£» ‹EAŒµ$’>~2A$‚åªÄOx Ât"£çö=ÁÛs{ùÖ¹×Ò¢Ó:8?{ǵz}ÿ\É‹ ¯Ðím+©‹ò¥Å´4×óÜÖÃliËO9KÛç/§DößngÓó䦯øØUÿAº¹“üGÝ·ë(‰Æ´~ñ;ÑÚ1«nºŸƒÃ¡¾65ÂäÍðòæ—ô'^eñü [w÷ëÖײŒk{ç\C:dp4Ççn¼OÛzWÑÜ»J7ÁÆ-üã·wª'ø««¾O¶èèƒOápÿý ôáS×Ý® -|ë¶'9´¯œ´±þÁMH0¬7~ÿWL…õzêÛZÙy(ÔÎù'P ò¬jˆÄ»hM‡Š† jÜ&¾tùj{j‰t ‰„¯Æš7ÚÛ×7ß¾¡X´”Û×( çÄ?£wåŨµ*Žƒ5¡†A×sQ«€b  ¤›{´±u!J¥àLjP,bŒ"ŽHxe/Áî!—ƒ#¹À‘TÊcIWе'yºuËVnhm=§H]sjíÿ²÷&à’Tç™æ÷ˆÈýnµS ÅŽ@lBÄ"Ú@B`¡Å²diº½¨güØîwË~ÚÝöÈ#{ºÛ–{ìñHí¶µØ#$ û¾ ÄNUPû¾o÷Þ\#â|sëdÅTeeR êÞ¼"Þªÿ9'Îù3òœ?#îýîŸ'°o.HÏ.H—k3Æ V­st×Nù~’meI \¶u`xJ•2vlÙ"*"ÁCº€¬µ0¹"fΙ @<äò?&ï[¯al÷.ú>BêGç 'ofÌB¹R€ENÛV½žpü ñŒóÿ θˆ»wlƒ¥'KƒÀ† ‘D"‹´¤‚´±:‚A‚øê`»ÚA ä$;äC°"è\†IpIãÚâÕû¶ip“± Ý&²&Ùg²/€ÿT;ð~ILi ÇÆÆ4§°g-ö0RÉ#È•(õê>üìùuZ²¶ê¾¯* ÍKRõ}x—Hv—ˆÚ—Ú1ù°»ÍÛCI,Hã|%©ÇûÀÆq×»DÔÞç~£µ¶ÛÜ“÷u ¦™³çjÓ’GÜߪh4…Ö¦Çð¥]1dò°ÒÁ$õ´ï—î.‘v°æ¡^o 6¾yÓBàX–!\þÞspíÕsàåÊé•Ðè×»D²»D€ŽØv=IÀÚ´¯Ûû$¾ãJ·%¼æÜyL…øÁOsç¢ïûd½nQ[÷8íòÀš {¸,Z×ÌZ“²Kç>{e"<Ë×™•ìòG-´04 9Ì,â(J~ªvìwJ³¯Yöµwl{ƒŽnÇwxôÞî=w‚ÆÖðóêöÝðÛú—0¹öŒÇ°&d›Eëhë‘ýëù›²sŸ½2‘GžåëÌJv}#Ë(ÆZ‰Oçü@6më›k_³ìkïØvλ[_ÚŽžñè½Ý{îí“2†É•dZ„ŸÈY ϸ~@p€”–m]ï—LèÒß±OGç{tø'ôKZïö¯½ŸÔIp{ίsl½Ç tsO:çÙ˧—ßkÇ8’˜÷öéí›Òy<ô~-yøc®wl»Í»{_ÚÞ;½·{Ï ¥7Y÷F}EFF†A_‘‘‘aø&“‘‘‘É׌ŒL¾fdddò5##“¯™|ÍÈÈÈäkFF&_3222ùš‘‘É׌ŒŒL¾fddò5###“¯™|ÍÈÈÈäkFF†Ï6HK¾z ¦%:Ú’²ËêhÎt[X‹®läݑö±‹‡_‡ç>»-õšsêh;Âöm®$Aè˜CºÌ³«O/¿n±% ‚:Vˆ;âXõ*{Å«÷ñæè¶ØZçHј{ŒËq„s'H05øjƒÔ\ ’””]Û:ŸÍ'c<ä‚HôíÂY’Ð [”´w”$}o¼-y8-,,< ¼‡Ž=Æ…A˜Ò1rEìØ3ŠÍÛ—#Š[ kšu_“Ã÷ò˜?÷ÌD³Õpm}Dǃ^ë'—+ä[¡Z´&¬^¯c´ºæ° «žñáy9 (‡Q*Vó‰|Î p%n¡µß×ÊÈ©šÑô–¯q¡\®à©¥ãÉŸgŸ°ÑJ$F?¬û €€aŒg^Y€_ÿô-˜5<Ä(Ö¤ÉWI üxâ¬YóW˜=´i0éä®û €@‘Íãégçã„~‡Ÿw5¨1åòõPyie‘ó|AV¶ïÚŠõ›Waçžµ{’Õñ—¡Th"Tá›=Æ9„qÕF±Š,ÃÀà<‰‹æùsŽE!gÛ›­DÇA2yÚÉW‘ ¡8&Î:a7®x‡ÅX 9$çæJ mO·SŸNÿ„Ô¯›?pø÷€bìÚ7„(ö`Œ hrä«•U©PÂ#O߇íÿ5>}ɨŒC€ ]Ù•Îyöòéå—ö6l¼·<þžÈ á½ç¾OµF §H¾:\im,ßóPÎa×¾Q¬Xö8V¬þ ?‡áÂÓš9XÅ©‹-F*@©~öÆ6‰Òy‡1°oü!íØû=ìÚîãÉõg¡¡wàØÔÉǽóçÌR5F!H“üi6ýä+•J¢Vè£Ú°¨7’“²ä+ Š#wB’‚ÄI“­ž!ªõk×Ý€ËÞ> )@­!è“Çù€¸hbl,û>ÞqúEnÌÖb*HNB¹XÁž±*îòغùŸ0³ô8Þ}ü^ÌŠy€ûL£˜¨7{?BŒ!†Ëšx½…g"4ZOa¬ú^Ùø=Üÿà™¨ ï<óXtÌ|4šU7Žd_ÓJ¾‚H'oí~#¬kwvÈCÐqƤQte‡çYÙÝ@ç{¸ À*©ƒ®—GY¾¦Ía‘v«;ØÃÐ&?)Ò9ô Ë<»út÷ëúY ß´ÛÐ #” ¤&A¾vnZkéy¾WäãÏ=„¥Ëþ Çϼ>§Å¡ ÜþØãUëüi@BÔõxJ% hµ:|TŠÄ…§7Ðl=É›žÄ}üç.ø .>ïZäs˜ho&‰#<*òÕè(J¥¾5¤‚š4(‰„#ÅZl¿Ä$‹%Àˆ¤¨É€ ÈZ« ðÔ ¥ÜöZ¿òsúÈ9·é‚Óbù^ Ñªïú¬•8K• мVû‰c«±ª™(}v¬¯«ÏJ~õ·tÃO~W[wîT©P’µ±Hêháã(!!Kèß”In!ULLÛ‘öìôOIÛ:ý;÷y¨|µIŸk˜4”~æ,O:ît™gWŸ^~]bK„Ò°@S"YcäcÕÿrë¿Å©³¾ƒóέã5Á3‚RÇçÜãxêy : ‰¨Õ0À{N±`ÛßãÖ»^Æe—þ¿8yÑq¨5j0ÆKälËW’‰AVP,*>ô¤@¤ÙT¶{^½øtø'¤~]ü;÷™ž”€ @«8™òÕ• x¿ ²sèJ—yvõéå×-¶j®L>SNNöU’“¬Æ3hEÀnûž=ïÛ8ãxŸcU‚° Åé¾:?çζn19üëP„ó1'æÏpå™àöûÿ W~ fÏA# aÒ¡÷¿|¥+Ø¿f‘JXjÒ!$ }-ïLzhH r~I·?ð:¶ò½}±¯}ãeiä>’º ÈPª5¤ár KOyLw?ð55BÈ3”0ä+I°±`íᲯiv,mO·%uõw¤~]ü;÷™ÊW ¶úäÚ&)ɃÉY:ô¤sž½|zùõŽ­µô“‡dQÈðÊÚ—±oûßâòwÇ­y ÛqjÓ1ŸŽÏ¹ËñÔmÞ]ûÈTÔWÀÂÙ³·þO<ÿ‘‰±]5Ñ6ÂÐ4¸uK¤,©¸_ 8en ý‘¢³IC ¾°ì.žvÌ Âúí±Lõ±dI ¬Õ}ž¹¨Ê5knd­Ñp?š&·n±Ïå«àJP“ÒJßÇG“‹ïyÚ3:ªÚ¾5wj†ú!CmÛÇR)G•ÍsÚ°e•òA~úÈW€äì°‰žv‰CÚ¤¯«¿#õëâ߹σ=¶½!aò@¹1ˆOǺÒ9Ï^>½üºÇÖÕlR›\ùêƒz³‰¨¹åEÐ9Ft‘¯àáںŤë뺼¦mžgPÀzìÝÏ{¤HLùj÷[LZëÊ>3PšZùjc$ãéëø`rå«3CKXô_Œ,(KÆVŒ%$0]ä+$ ým¨)€I}kV¡ÉÇJù\N~n¡ª ˆd_Å¢ÂȪÏÑ@iHÖF"9Íäk¼ßàè+ùJrå¤ÃÓ÷¡|€Ø•“NG@nàbìØw7Ž Ä±ÈN¡|uÛiP¯[ŒÆg`Ñü“Ð  hšÈWXRýj1HKRœT@R$!7†þy/€Æˆ§žø~®Ø6ŸF­5T<ÕÇ ÇdÞ_Þœã1 >ÌáJ…qât’¯ìssŤITÿg_­ P“Ž¡Q½QÓ™§ž+ }Q/o‚ ÆS(¦c´{´¥Õc—ë½ç]§f«&ÒèûìkŠE’}íGù*W‚˜TxÀÀþϾJ˜d’qÖ6ñ¡Ëþ n¸ñ äïÀœ‘<êM€@®œùjEøFMÜûʉ¸ôòÿ„™ƒ¨5k044}Ö}…%ãˆ}›a„&_¾*‘°–´¶¿³¯Û€“Š!†gòªüß||Óû¹a{“¥@”5ŒìÇQÌê§ûŽ¢¶d­×›¼cÉñ<ïÂÿ‡grk* Í4\÷Õªÿ&Îd¡~ÅZˆ€ LzŒ@ÊOõf]‹æÌÓ5ŸøŸZ2þ%=µÚ“¯¦rec3aG'†ÖR6¦<ýH+·´tïÚËtÑåßÓ…g_¢j}ÌoºÝº•ʳ˜Iöµ¿nÝaR!éL.0JâÓ·n‰€“Ö¢@rÒ# c<Ô[ ÌÁg¯ý+<ðø…¸gÅ7pÊðR,œÑ^ä«ÖèÀAfÞÀ­[®êúÚ–÷ Âö½1^Ú1þ¬/àÚk~ófÌDµ>æÆh=¶$ЮHdlûÓ"KZ‘$pRäÌ3é 2ý"š´}‰nlðèCY1eòcÕlµè1âGß÷y~àc7qKñùàÚ³øâƘF“šÌCÂCë$î„YÓ}ž®Ÿ„ }÷ú€5¸r[ÈVÎçÒæoð¬‹ÈÏ|ü?rÖÐ kÍñè¨3oúÂYé]‹DàyOˆM»™L_O¦¯OÛÓmIêæŸ´uñwt¾$´Çå@"8)뾦kâVŠEsìǰ䥛qÉÉ-…ô HÆÝƒÎyöòéé—ö@VÒ"01žÜècÁC¥W½Y&}᬴ÉãzöËÆ…sæâSû*Ömþ,–¯|O¬ù1‚h9fçVk°a°@”ò¹ˆ­{5&‹’!ÑI𬬈ZÓjOCØWv6a '`öü+uîyÀÛŽ{»Oh´jØg¼tá,hz­ûÚ>øB¬Úf1÷ѠΟ>¶ì`h!r×,%š­:.y×'pëØfܶüo1·<-Èù`òΡäzØVÄÈq¿‹ßuµ+@L%NLÆ-ž­VÇÎ;ÇÏÿÆÞõ)lÞ¶ «Ö>… ûÖ¢¹÷Y„µW੊b ä¼& !xˆ­–Í¡yhÆ‚âqÈ ž‹òœãqÚ¢³qÜ¢³0T*¡ި!вm’¦çº¯ êÍNZt2Æ/ü[ÀóX@B?¬û*€€¬ÅE§”0P* Ž5)+HrÍèáWþoX¹ácؼe)¢¨FЀÉ]÷•$å6,|¿„SŽy;NZtm"¶ê«u_‚ša‹PGœtì‰8í„3Ð CìeµQCµ^E­º µúnDQƒÒc”Ï¢\™Ji€å|ƒ•ATŠ%Fq­°fk ƘW§Óô±Æ ŠBÍš‹_ú«Ø·-ä~HvÒäkòØ+ÁF-œ²èxºød’¦þ±d#´¢ôíc H&‰÷Û³Þ¨»¸–ó(Áp6¬ŽiÄ6D‚ÛP,ˆâXqÜÂèxÃùÑ9‘„Ú$c™Þ- ‰ØÆ¨ÕÇ@²ï[ðjHƒäÙ“@Ç|šaR$ûdÝW¸m¦‹£ÿ!<χ$ı°Bz­l皺„ ˜4ë c¼_î‡Æp¥1^ß[2ÞÉ&}OÓ‡11é§c5í¦msl÷“fÚ=46###{hlFF†á$‘‘‘É׌ŒL¾fdddò5##“¯™|ÍÈÈäkFFF&_3222ùš‘‘É׌ŒŒL¾fddò5###“¯™|ÍÈÈÈäkFF&_3222ùš‘‘‘É׌ŒL¾fHÊÄ:ú22Œ& ‰©•µÖÕHj’ÉÈäkFº¾*QÈ1P˜(ó,¬! q”ÉÈäk†$Ò 1o¸í›üñ½?æÚM›H–Y, °˜ÏÓ÷ %K«˜H‚@jo"™|Í€ ßPcã±6nþ[Íü”ž]ò+úþO~C?½ÿï´ä•UÚ3ÚP±0¨rq@¾—ùþqÝßÅqsÿ-Ö¬û îyäsøþOÿ>y;¶ï®B¶€r±‚b¡°6‚ ¼ ddò5 ¸{ïj”v2ãÈc¥hxîi!¯¿r;?yù½¼àíDE_à}^Åïú oè&¾øÊ2¶B¥Â‹ùß# 2WÀ[.“ àõg¶3ùšaL ]{VhæànI+Ьª5jï(øF'.2zÿùûôk{F8ÿ5RüŒÖ®½F7Þñeýèίé©%ÏjÛÎ1~Q¥á‰2) VÒ/67•ñ61J If;ž–±ð1©dHÀ¾ñí®6òk!¤`ØHh„@g³‡„³…(ZñÚzlÚþ/X±á¯±bÕñ¯À¬gà¤Åçcî¬(=f±ü¥Ë^[kA¹ ‡\.Y¡ư¢k÷ øVÍfÝÅ"‰gšÏäkHÏó8^§Ávó`‰Öâ€1©SJLl¶ÈÑ1ÃzÃcÎ÷yÒ"òã—îæµ—=Í‹Ïøs_æ“Ï|’?ºíWùÓû¿Ã'_|†£Õ& ùý2·È\à“­)hºer«µ–$X,™Ï rËŽ|äéGyÛC7ò¶þ†·Þÿg¼õ¾¯óÖ¾É;ù)ŸZò ÇjÑ„ÿð„Ž’¥$¶¼¥åk%ÏxÚ76*ß,S1€âˆ’ímD -tc«FóëiÁlOžêÓW,ÕÕï½Y CÛ7_¥Ûîû¢þù–ÿ]<}¿ÖmÙ%+_•ryƒƒ2ºýIPG*òszféÓúÿnùwzô‰Ï©ºû£š™ÿUzÌèìÅÿ‡Î\ü':qöï©Ä_™ˆÅÕºý¾_›ü¡U6©«¸ŒvÇ(oeùš! ¾ïc_uV£ê t½É•½‘@ZXK4"$ƒR8÷m‚´Õúرç¬Øø÷øÙºy°Þe¨œ3!sÏÂy§ Rò‘ó{r³ÕDò¦II²Ï.¶Ê¥A,_ý žxö¯1Rº —žµ³‡Bž ($‚$ -<³¿mêÍ;°nëxúÙÀó/}ï»à×1kxµF žç¤L¾ºÙ´Ì4B$AîÛËR¾J߀֊rÆ7` Ô6JŒcq¼ÖꆆÎñøÁó÷ñW.™—ùw\0ø›\¾üÓ¼ñ¶kxË=ßàCO=­;w1Ÿf±PqòÎÒ*vRÀ”gV%P²,ä+¼ç±›ùäÓ×ñ²³¾Å«/Þɹ#­õX­‘cU²^¶Õêäh•®$<ž²ÈðS—­äÉsÿ|ç¹lõJ–‹eÆnžì&ç3ù ARš5³‡dÕ‰ì–aëH7¯ÒÈ@¨°Éî7½iFIdãXͦ46n&J£™CFçœlôñ÷®Ôuß«“gÿï¼J<ú«úîMÿF÷<öC­\¿E¦Õ@yD¥BYža"o']æ‘t%`UÈWtëýßÕØÎ/ëúË^Ö¼žöµZ’¬”Î;µƒcQo@պљ'}â=wèñŸAÏ,{VåBÉ?$;ç˜ÉWÁÊNâ.£fh`%D±ÇJ$ càäIà{®-¶1ZaÖÆÌAÒ§o [££KqÜ¢ЕJ'Úe/Rtõ—Ú͉2n5…„à¹ø½m±ÅéÇ5Po<Š=cbõ–ïá™gf â{P(¾{b|çLØÙ®ÅÍIc’a-—*¸ûÑ›Žÿ.>~ñ8j Ïõ ! i;ÛÈöÆxÕ RôpÝÅÏá‡ý*¥oã¤c£ÞhÀóܾßròµCrZÅN2åsy ƒôsCܹwŒ/,üüÞõèM¼ãÁoòöþœ·ÞûyÛ½ÄÛîÿ“‰í¿äw¢ÿ6>öÜc\±nëM²X˜ÁB¾ÄÀÏQû´ÍZpßèWÀVdh-'Ť¶AN2;Y7^3´ð9cÐç{άñÚK6ðгnàI3[7|ž7ÝúQÞzÿ7Hxé$&¸8Yòy¾¼f%7­ÿc~ø‚qVëA’™~Ãq ÀF.#}å;ŸâC?ûO¯…ô=Ͻg¿`¦"“fmìäÑ`yX­Z¶zn{à[ú§›~S>ò­]ñq5w}Tñ絨ü{:uÖÖY þ‹Î^ø—:cÞ×uâÈjnî+ ×iïæjéóŸÒ-w|yBŠý¾övíØ½I$Õ7P2Æh¼:*Ã1È©n;5µM±UZU«Fã5£JÁÓiÇúºâ›ô…+~¦m[ÿ^[víVà{‚8i2ß(¶¾úotÑé/ Ö—â7Mâ7êr2ø„Y?ÖcÏܪ|¾à:ßRò•¤+ã8v’³XÀÖ»ñÌÒŸ`Ƕ[‘7cñœ]8çŒ&J Ÿ|ßb XkX+)Æð=ÂÚ&ZárÔšËÇÀ ÷Ï.û]|ås_E­QAL9|/Àν›PÉm],¸ÚÑ‘¯ ;¶»IER €(ÂP°òQ. '/؉5ëŸÀñ ®A³5 Òàhc%” E¼ðòó(™[±pQkƲ6ÛeoùÚ-¶Bµfpö -ÜüÄ?b÷¾º /l €˜r|¶AZòÕ©q¦%ҶβÇNJ‚dQ*–°o¬Š;ù¶lúž4÷ç¸âŒfƒÖ„‘+¡Ñ$mÂûIJB “œ9ŸÃbÙÚˆ3f}W_ù¿¢ÕjÑÐÀÑcœ½çÔéóFÚ­á{9ìÞ»™¥`-<’-  8Jr%zú¤õ^>½üÒ>[‹84œ?¼O­V×&á>âXõ*{ÅK² ®Xû3œ4w=lìdA Å ):ۥPʃ³Ë/bÕºgqÞ°×àу$t|OÔsÜê8gG6w‚Sƒ9ÚrÕÚ¶n(*zvÙsõK*4K×^ø¨.8-R¹àk¬ê«Ö “R6N²gp†FAÖR¥œ´dU¨GV|Q½âë(•[ÛWÖ£=£»U΋2R ɲo­J3*Â'´}×6åüœ&ßx¯ªU{R3¡VëÈãdãýf${$FÅqN fl׺MÏÈwó‹:Bƒ3 ÓD¾2•F¹ ŒŸÜÿÏØ¶áOð±w¬ÅìµF€ñšuý†Ädªrã 6‡k@,¢\–¯‹ðøª_ç¯þ?1‡Í;¶`îÌ7’G=VÕF Qs9*y Š $ÁBvÈ^φ• ›Š*¨]&P€áÞ£µk/¢Øƒï•Aò ì=;d² ž!¬mM˜M|û[¾JD%Ÿ«ð¦»¿…ÖîO]TE¤£ã‚gDHKñÕrƒ%¹2•Á©|!+¢TWlˆðèÊÏðÓW#ƒ%6š-÷ÁJ"É)—¯’Üx­­úRΔ,»Ì¹‡‹K/Ÿ^~ÇV‡´“qäᘑqlÚü3œsê™ qÔå+Iı([ƒo€F$‚=dŒi à|`ù†"^Úx<Ëy'O“N’”tÐX%ÀóÈñZˆçÖ>cþ=}Ï@=^Áa 1ZpñùŸÁâ'³Õj€4oš|õÕ©¹ $))»´u@RVåBw?v3Z;¿Š«.¬¡Öð!„•,!A€^¸Pú[Ö9:’º$DlÝ ‰Õ#<´òSºþª¿ÀŒ¡5š wé”mK×t>)mw¶w–Ý}¼Í¨6#Ô«Ë0X„¢`ºÌ¹qéîÓ¹ÝÝו ÎYh¶ Íliù²‡ÑŠþèütD±’¤7×ä·¢|DKêc·adµ~{óÿÎ9ý\ÔêUFéo=‰äAã |;÷Žißøõ8cÆŸÃ "©]&HÎT*m6l½§wͺ ÔåX8’¹ëÕþÑÈ´Zk‘Ïå°jãZ¬^ñ5\÷î1Të>$€$¦’ ‡È1ô–¯±ˆRX»%Â+>‰O]õaöŒa÷°1ý Y;ãa 1^´ù¨5¶å+@D(€W`Ó¶5X|ÌB´ÂÖQϾæs¼`>ªõ%(äk t‘¯ÉI[!,š7 ÇΛ‡Z}¤é*E%‹\@ò1k°‰çÕF¤¨ËkÚV. fûðýœÛÉþξJ`aXÀÏžþÎ[ü"Qdæ—ÒlàA³Ù2IAk‰R^ذ=Æ}¯\_ùØåÜ™3QkÔéïpãìùjaL»önÀPqœÖ²"!Èõ÷AöµC¾:(žïa¤°k6.ÃÉ‹OD³Õ 9jò5Šc V* ŠçcÏØ]XX#+˜CÇxˆ|•l,´ÂͰ…ýFš®RÔZ Ÿë7¿€ÁÂ¨Ëø7Z†¤Ãþ9!µÍ'Ðl eY$Ðôyö5rÚ¼c“âÚ}Z8j6)êËÚˆ*øÒÆí±î]þ]ûÑÿ¦ù³ç¨Þ¨Ë3^߯6°s÷+Ê’8m ’¢8ÐüMZµö1ù^ñ¨^' H¤Q½QÕEïüƃ/iÉÚH¥<E¯5^HTº¥RÖÝÿP•ð›:nާzâëŽ DL—k_IDq„™#ó°!:­Ö @$ ð ä‚+i»+“¾´-ñžwâÁe_à ·Ÿ¹êw…MX)ù^²?Wð·P–ZËQ €(õšsRŸ´Þ˧—_—Ï"!=¢˜˜]‰±fûK¯·³ÜŽVPˆ«?øUüàÇ[à›pò|Õ¦\òL88Ñ#ÈPgö;¹ÔÑ3¥ÒîzììXóøÀcîk:&³QgL@tÈWY€r6=ä«¡a³Uçñ Næ8ÎçÞ1‘ mLÊ’Šßˆ²àx=à%§6˜ý:o¸õoCZkÙHt㫎ыw0g<Æ’8L Cq¨D¢ñ·ìØÊ\'-‘4 £ˆƒ¥<¯»ú\º÷K|ò2Çsžaï7Ò¦ã$DH bG®,KrüÑ]ÿƒ—ý/?mÃ0hËô¯'ɱ<ä«“ P>gtÚÛ>«§×ÍTÞ‹µñ/ £œAã O—¼­*oÏ×ôƒÛÿN_ õ# $QûF7k `Ût.š6Å1OþmÚ¶J†FG"!cŒša¨¡rQŸýä_ª5òßtû’S´~{KB=É£'À“äK€‰” áÖìŒÌéÙå/è»ÿò[òwþž®8m‡âØ“µ„×KíÓD¾¦—•5k8ÿ¬Kñʪ/â…µÿg,Îa¼xF·_bæH·]=iïð¯6|\rê8îéOñ£»\wåÿ‚f«õ‘”% °2س{† 5„1 ÖÂÑeÎ=éŒK/Ÿ^~±MéüLš‘ÁÂá*V®»öÜ+@ „9šÒß™çyîš[Ï3øÄþ5^Yw)žzî,]v#æ”6`þÐ8ÊyÀLØ<„šq[vmÁеÏ`óÆûàÕŠwÍߊ9C-@2o8l¼’ò°ÙW+ý/_S$Q¡¿òßqùèµ\±±ÅJŒkáÊ×o¢¬e­áó}§Ž²¹ùyÓÝÿèV @I}±˜–$¢`¸{÷råCÆ‘¡,§¡aHÎ*YŽï{‰£ãcôŒGQ“Gc %°VåI‹NàõWý!/ÿЭ,/þ—T¿Â‡·\χ7|€O¬™Ç{úk~ÿ_~ÿüýOðÁ»¯g¸þË<{ððòSvp¤”g½ABHŽ¿7l°t ¿åkg¶+Œ" •˺þšÿ®ç÷~VO­–Š^,£8¢lœ,…×al¿&¶ª5=½ï”½[ÿGºùžï©P(õѲýH5[-5ê;U (‚d§£Q6–ÏS…/jõÆ¥ÊçÒ,ìÑ–²ÉçiŒ§F³¡V«¦cçÍÒe^£Ï_÷ }úš¿Ó‡>òO:÷œ/i¡÷C5ðm]q܃ºìøçuæÂH#弪 £0”Ò%oñ‹™ QbßË×NëÖ1XÁ®ÿküäž·ã¶%ÿç/ÚŠ™Z1]fLoc;3_Bçíþ7š.;yî]þUÜâ¸ú²ëQoT!ij/*`;óºu×vÍnxlŒ4óŠé’}M³œô<Ì6cãÖWpÞéïš´L¶ÒL;Za©ÉÂ3Ĭ¡!Ì›9¨û.ãM¢ €`(PŒ õúàȳ¯²í M·…³$¹¥ú›­óÇO_õû<ç½ÿÌǶ_ˇW8Zh7B.›æ$ž÷{’ ãX¬7s¼ô¤=ܾüxç#7²Ršò‹ $Ñ÷îÚ»™A¼Ž^2îihp±n…äœr÷–û9^o¸Ï–Ä”=mËoÂ|J`G £­ˆ C$?P´ÎÞÜØËÒ¡é¶pgžçÉZ©Ù×ùg^¨Ï_ÿ-sÖ÷ôäîëuÿª…Z¹­¡Z½¡‚;ó eè‰ðAF:`H Æõ{4 Œu¯ùà)ÛôÜc¿­Üù?ÝýSïÚ½w»òÚ&C_m¦ÑŶmÖÔ ©‘¢T}A»G÷É3ÆùMªl›091%M3ùÚ™]$ƒZ£ŠÀ7¸ì]ĻϺ+Ö½ˆ—W>Š »E¼éiŒªÉïÃ`>F> ˜˜d¿X Ĩµ€½Í"vÖа³0÷Ø QÊçÜ"]S AÄ6ÆXu'ʹ’µ„ˆ”W˧ה¯©OZïîÓ¹M¨Ó +;òòФàQ® <sóë±bõcX4ç´ÂdA­>A:p€@ØJi;нHÚX€‰ÄÕ4[8ëpýÆx°Öî?9]Ï™'ŸsN}w~;öî¶+°}ë3\³wP«ÒÓ>; Úå¢@€5Cˆ0À|a³œÊÓç¾sf.äì‘™( ¨ÖǦpå¹öF+BmtBˆA vÜŸìGzíx¦>i½§Oò4$’0„3:#HÐZ ¨‰ÚOcQû‡^# P jM xÜ2 ܵŽ4^2ô7åÖ­^õÞ·âdÛbëä%öÑ=¶RÚtísåa¿±uÐyÓß+¸öÞ+܉4°ÖªÞ¨¬£\08NZx,h>‰ª7kîòF«¡ØFÎß3ž»k / RDà‚"Ȇ„0 1ZmÈ÷üä¾¹)YyÀ¢Ùji|ï”åZÉ®‘ ê¨wAd!ò@]í:€D»N’qÛ‚Ë31¬€V$Ô"‹f´bì/ÕŒ šqYM £‰hÄyä‹3Qª,Tid1Šåù, £\(á¬bYsgÌE½1&c¼7uå×û™$‡«íºµ‰é[ êhïÕ—ž”R H‚(‚ö3 +L†¤uc\[ë®™MW'°ni¡rÕ ”Vq4ްeAHí`ÛWÂTA ê­&ÕM(ÍÂHt~!í ‘ÌýxÐ~ φD{;²ÖÉõ(¶NÒ‡1ÐŒ€Zä¡аîފ|xÁüâ1¶~y.<¥b³Ë3188•Y6Å| žÁ„÷~¾!<Ï@â(Bd',Šúäb ¥5+XgÑqaF·‹&^÷ŲœÞòõÈåŠI$­ Œe!ÙtmÒtt œÔ$Ñ7+H‚1÷ŽnGÑ4ad`cCQ@R©s²dÁ£…œEêB+nËÉzd؈r¨…B3"cÁz³ àÄþ,Ä,£˜¯°2<‹0oh>*•9,äóysE·dK.@’qÁÚ±] „Û ZÀLæG’úF¾:,‰˜p–@:P&(mºõu¶; ¦½|í¹ÏŽíƒ{¢ØÞ8¬L"Ù9¾´>éòUŒ`ç®ÕðvÈÁð €’¡aa„±ÔŒ„†3¨ ÍhÚš@‹#ha(€”P,ÍUix1Ê•E.ÍQ±0è$e¹4ˆJy•b¥BEžç²bÈÆ"( gÖÆÃXd[‚<ä •³»ÿ Í·³œ*ùêâÑ® ù\/TO瘗Cøšë¾*i€n}·£MàÃÎÌçaeß2òµ³Þ[6ö•|¥1¨7«øàEŸUxág1PF!_ H±Š!Èe‡­!¶‘ê1ÔÒå) (‘òî¿ItÒ[N©´:˜O¡|McÔl5õ®3/ÅÉÇŸ ÀK$a—u_;¥w—¾Žø ÌB£Y‡!û]¾fP„`Q*€lÜD½^?d1¦ƒ.øMûh@"ãu>Ñ­½Öp f€éC>ÞDùšö%ûo[ H®¥Ÿ¯}ÍåJkcwç»@’íë4ñ˜¡¡!eüb· &ñ¶l…-6£[GÍÒýKbõûµ¯¹&Î2ŽÞõÕI¤ˆÉ±ô3…ÞL úŠŒŒ þ"##è¯ÈÈÈ0˜dddò5###“¯™|ÍÈÈäkFFF&_322ùš‘‘‘É׌ŒL¾fdddò5##“¯™|ÍÈÈÈäkFÉŽú’É׌ I”ÔI “¯SIFå‚|»NJd&_§ŽŒ ‹Ji7ßóm¼´òç(æË3ù:Ydd`‚µ1K…>µô>øÄfµ6NÏ*“¯“GFIPlc•Š%-[½JË^þ]]wÅvY•Xç3•ø˜vd‚û/ €äJ‰îdH‚µ…\;öìÃ=ü>¾ôñç±d1¦!3ùz™¼Ô$9©E‚A೘ϳX(NØ …¡ qe±00ÑW ï{”l*ÕW«¤ó—DÏ3 #ò¦;ÿŒ—¿óNΜaXoˆÆˆØA&_3y%A’ y*ЍŒÈÊ×¶£Zºr­}ú~ÝñÐ7uóªÝö‡úñ]ª;þ¶ž^ò‚öì««\ YkPÞÒÙUrÀ*Ÿ+릻¿©·-ü¦Î8‘jV!H¢€·èÅÌ$V—xÖFøÿÙû8-ФïÍ& Õi~†ÁK÷Èó•Ä̾dkŸÑ*³­üràèwáµö%™kóÖ»yѲ[yÜÍrÎd)Ž¡© !‰5õNúêJ°.ø¼>x½~C ìÚ»;Š×!X¹±x`2`R”\æuBÓ‚VÈÎð°‰Fœ-ש^ÁTfFÀ—"ûKÊðÉŠ÷°}Çth:íDë.ÒS¡Ï‰‘n:K` j~†’ö¤jЀm1JÊ t*b,} ³>éñ#®EØ jþ:H ±ÓRÒ±tÍ<Ìžÿ$†ö‰ŒÌNh×¢/ò 5ÅF°âÊ;–&÷¹š¼¶áõxPŠá½9·á¬¾Ÿ =Å@8Ê0°°,†ò’ë™éV2¼`Å ôÔL:P¤÷?™LoN»‚V­KýŒ¼±ëáßQ¬âVJOfôWˆ_DÛ¶L wßO“gÿ›6|ý*)“«ºµÃÁšÇuv‡¨¯vl É³xzÙ—Òé]Ÿ¡ó†n£.­™<¦—BaSÛLÐ|c7P­ÁÖD`ÖSŸ1ª,‚6mÛ*0Ö¯÷¯‹dDáhˆF ¹º´J¹›²p}8ÿ\šôÞ¥ôÞ¼‰´|í ªE)%ÐH¥Ï2_&"8S »ºÄZƒ’᥷gþ…ú´™D- Má+ˆ˜ÉNæ×Cøê,Ÿ±eY,s6 ?ÏZ0™§Ï¾S—ðȾopë‚5¼c[._Éi9Op£&¯rvþ ÷üž¿Úw2§¶ó¨~s¸}ÞͼrÅX~}Ú_ø`y%§R´\g—¹Z¤käëoº NJƒ·ïZιþûxÂà¹|jÏ0çf{92j’ Ý50Ó)†“»´ØÈ«×½Ãùà:InW,¾pÔŸxä.l∯á3º¿ÅyÞ«yû–1øN””‡èíéÿº5}˜†÷Re˜è…Ù=©Ã‰/ÒE£®§&³¤x"LáH"Ñ ä SVºA#‡Ž¥Q#&Òô•ѧ› êÙÎC£ú}HË–^"ú‰+)-%U¥´BÕ  2‹‰Þšù$½;ç)6)z®nÂW“âñ0…âíÉ›óy2n#f“ØNH쑘ŽY°-¦€‡(?cµL VSÀŸªmUa,3ëfº"K –M›Ò“þFS¶^År*-5ÈCMóL:­G)´‰wx†šn ë/¤·¦Ž¦wf>@s@ûJKè³/WÐæ 7Ñ„!»ÉJx•vÄçoòª>ÂWÓ ŽÄ˜ß}÷o=‘;y8bžµ¼9÷íý/Ôk—r›M"å‰eAƒ-A¨~ÁWf >&f|ð4ZeýíNð %lÚÉ0ӮƀîPZ~¦á¹‹Ù5 ‹iz¢6ÉËBïžÄ¢/Vâì~ûa˜>œÑ} f/º MóŸQxb± ƒ ËBzjÖl\ÏÖü£ÀÚ=0[Õ๺¦UÈT^0—ÀðŸãΈü=â¡) í»F~"ª~ü¦‰F‚`Ý®¹(^¿ßT m]%"À0LCå>ðl¼úÞ­øpõ1´{a‚A¬i˜Xœc€ÙÈ@ÛfËs‚¸êüGá1ë6.El× >ÙÑ2¿9@ªß€ÍH°-ÃÆÿ´á+ 9üÞmÞ±…J÷=A}ÚƒÊ+ 2§/vt¢~=ÆS Èp¥bÿ'´“K•¡õìÔ‹B<–ö`² ülµÊ™N W¾G~_Цµ,›2SÓE²¸ƒæ~tì³Jòƒ˜æë#¿™gVÝ£.‘[À$Ø¥DFò7~…9³ÀL+~ôp–IàŸAÙi +¾J+ÊÉcDTw \%€( Ѹá×жò+hÍf‹R}D–mTññ™3Y‰½öasêÒíqêݹ/ujÓ“.õk=â_4àäÈ“ý -Ür=M[yÍ^‘AŸmE" ò–ö¯@%º®2‹~ðL ¿LÓÏ+?›Ê›~®‹à&1ï-³·?7+lÉ1d.䬺h`(<•AÅÍ›Æ_§³‡ wmáÛ&ŠD6ÄÒ±8-5“?ýòKžùÁ5|V·8+Õ+†¸¤<ÎÛ‹ðνy»Œê½ö8 T'ášv+ÃËÌQGØ›u3§ä¿Ë†§[ñ¨e]8‹ïaQcÁ3òÎâul¾:­HàNKÜ…Ó°yüYÿÃK¶Œâ]ûì7ÁV¢Š’F‚Eœâcþ`U7*¼ƒ‡ôÌÁ2ŽD×°ßKܦy!Ÿ:` _<þ>󌸰ÍÞ“ø'O]9ЬoÍ[wmæm»÷)D¢+yülP•DWƒS¿º _‰Ó‹âƒû*›ŠfE¬P)ÕocÛ G àB‘ׂ2X%‘±Xm[öÇG¶B_û3Ø–GáF~Ú ¬ß¼{Ž7g>‚=ÛÂY=w£Q¦ÁìtRø-̘>^ºÐ¼aWn¾v&r³r.Ö5bvᬡ1Û%0‘Út:"ûoG¬ìEç»áspä\š¯&|­yž–åE~ú^lݽfŸ3aG*@lÔi+ ccñ8r³30â´¿`æ»1¡ÿrU°,VVX6!=,_o£Ì¾Ÿþ „äù@ ‡¶ÍˆÆb`Ž*s33Ð4o≾`\÷LÆç«¯ÂÜð㈙§#'§+Ú¶è¦mžâ‘ûR˜”u§Õê|uu=´{ï.J1¾ 4?(n,›©´2å4¯‚¸ß‰X¥¹”“‘K ;‚a(F±l“ 3,(‹ÐŽâMäO@“¤í{=ä÷0Eã6UÆšP cùÓJLmZVɰÍ\÷ubÉ "Á® P¥ä?E)OЈ¬DŒ²•?ü(‘夃B¡ ‡É4ÌZÚ¥nJdEÖ@[µ¦Þ½î§÷–7%BBù hUÚ´ew‚ÖƟ} YV”˜k*µ$e™*ýNX †*¤)àKPvFõlSN£û¬¥^…PzäjZ¹ôzýÿUfy”>^±€Š ¿_MäTÃ4 W;æþØÒW0Ãäý>ç¼ô0'G#6Çìæœ“‘Ö•p¡Èw)VÉë585­-—ÁÀ‰¢‚£áÏå^Ì×ÿüo|áøW¹yóSbl¨bq }0ù"ñ4=û9¾|Â?ÔüI˜ÇuàÄdxHHƒìËú%§7ŸÁf` Û±˜Ê°`›”¥Ã ÷Òü`#¾’÷•ìc¯Çû“0çrëh&WTVð ÞC¹ è^ž³:¦Å&\^‘àyëOáÑgþ™Ó^é–êÑÖR–Æp%ÿPÉ¿z"GLNÄ=Ü8ËËÝ[<¢û>»ólnjþ÷mÍsæ\Ì/¾ù+þ`Ák¼qÛEœž’Å©)éºú@¨¡£ûcÀW•z¡¢b NðU"‘ð‚ˆ'€ ‘š’ ©à}Þm0<¦ ¯¿)ÂQ@˵Há°Ý"ç"¯4¼†Ô€R][` ÅGðz0¬„c²£Ð0©uŸ˜“ál) 7dMFhï½iqà¬ßñ>À¨6øªeÅ™!|òذ¿d?šä#‹ÿt”¡p9Îz!^zg–y?ú´ámpÊТIT„‚|èv®vÝ L` ¡}Å Ó$´oÊèxB¡è|”UÎÇŽ±dK#°¯/R2 è„nª¼™–ŽT¿Gï‰V:ðÛÐø‡“¾‚5ŽÆ*Èk¸:™ Û’À~…¶Ì|d ³ 2ˆÉ0S¢˜f]ü•#‰Ë~ Ç,GïA,±Þ_ü$ÍÀ\)¤gƒx(µðo”ÞüU"£)Ùñ(q•$’%À‰kØ Ë"jœ¡â}kÉæd lÝ'0žY‰;â×´µòBzùãBêÖëï"­ïMAu|e!¯‰À.¯XÁ¶ö¹pªöQNšzµÓÈ^;èäoS3º…önºŒfÎCÓfþ–æ,|>]¿ÀhüCÃW ,( p³c~¥-„eC‚•`Øì–¯1ØpM%ܸJ2©Ðß~bäÖ; ÎÚÌVû³Îã¬Ö³Ø›>B¥³Š–ÎrdER -#7¹03Ì»v~Ä–¤‡ö<úÉð•Gã1.h”Ã9yýxõŽv¢d0„c±°Gq„å³òÊ®Î7[{¢þ¶,–ûØ\öp8êãÜt¬˜Ü³¨˜;å.â²}“øiñÔ¹Ï1ÀGÜÕå$0FˆÄ Àf°M L.C,Õ4LG#Û¯i«„X¡LO|¯rNO2À6i¨Ÿ” g °UÓ×™­_CZ“;uhY‰¨Ä…_¶¶%'â@v*`E¿Â²}*9gâºoçö5r½d`éÚ•8°ó)ü¢ÿ¼:ån0<0´ ò‘ArÇŒKM$Ø ±ešÀo)>€8†Òò(–mòã­¥…˜³i4¶XC—¾ñ×Ûfâ¶«¯Ò-&¢Zú ‰”ÝžJCd°E–Åä!"ÃÚIÁÊU`æ#€® „eS¨r#¥ùTz¨ç‚aèD)€Jh‰]Ý[vt¡çê#1³Ã/1GtÄ¥5¹ƒ²[¿C¦¯ %¢…²`£)¬M^Ó¤lÏÚ²m-ùý©’Þ®óRØ*çal«Ôs÷þ4çÃ?|ü”ºµ0(ÇzŠ&ð4üi¸Î¯ðÊKÐ)(aAcùL £x4FwYôñç>šûåI´dïU„.)7xPû8Wîú Ï]2‹Åå‡J?:$/]r1*1±‡ NóØlpB`â¼fK‚gÞŽgo<ƒ‹?sa§)|ú°—øÒ ÿæáƒ~ÎZ©Ä7*åP¸"ÙìîÇ‚¯@<GÓÆ…°|p°Â†GõQ ¹iqìß÷™ÛßYêÉ,åxüرûsdû‹ *éˆßUÑ mZô–r£ †R2\c=]‰]h$Á¶Ê@é³Û<Ì‘ +Q8ëÂWf…eêÉ Y#à@ñt”V„á1ë¶g‡ª¾C¬ŽÄÞœñм¯¢M•€ÀÇ<8­ã¬]ñ{|ºá3¤¥¦Á²µï¦VÌlÁ4 RSð§ ‹`ÛÞ>Ü÷??Ÿ•߀H£'ÐgÐk¸àü·1öÌßbp¯Á(ÌmŒh´ áH…*$X¶ ƒ Ut¨afüððUl)'3“ š¢M{ýä5™B1ƒšf'¨x×, EâDÆwó^ÕõÒ–¯—RAê²ly ¦½e6…=ƒ©]‹Î$ ÔE`%Ð7% ÂñâÏTA…‡Àq5KkòkÊíôyÒzR"v$ÐF_SªÏ 4¬§[W“×PXˆºÅ°Ò™4ãã·É(y„z·¶)S©4‘Nk·>˜s3íÜ»G`¤?ÙÌO¡» D2ˆTÇUŒŸ)%%‡Ê‚aZ¼j1-_3“¾(9•6Do§æ]_¡áçL£ £ s‡]I[v €'¡æv¢p@±Dœˆ UDHæ€: û (ÌŒD*ù¤çðÖÊÁ\Œ1ÙÄ)^“Óy¥ø(]Î)þÔÃY¸w=èÂvñ}\²gš˜‘ê³zàåÛ ¸WÏ«Øï!•’¢ù¦i 8תÁõÒ²#y$¶Ù—ÞŸó:Oçô«ØReƒ3{ÚÃfŽ'¼Ü¶Q±¸ëŸÉ ƒ•…Tç k’Y^:/^³€¿Z÷Ò®„CSŸÎtLê8,+ÅÇýš|ÂoO»[ÒX:u’«ïÜ´ŽYÌ_ï.æ—Mã&ýާ¼{oYv'ö<ȧ ¾…/™p÷ïv2Ÿ×ˆaǹ•›•‰^}nÅÇ‹¾ÀÙ'î–s>tj\ŒE«žF×ö}T aÛFÕZŽm+¬@JZ¦ô: ¼Ká7=’ÇÆª¯M¤ü=;õA8Zéx °ÝI–æe'„l€$É4¹OãúFUp^ØVˆR‘Óö1øÒ dË`E÷ÂðÛVs§Â,CÌݦã«]¿DËÂ&ˆÆãur{Lؼ} ||3Îj¿ ˯çÕéUr;2ÎZäzP|ïÎn…_Œý£¸Ÿ^yu}¾øbÊÕQL6­!ö¥p(ÊêD)=Ž7ñö½{8MÊŒÛ^ž4ý~òÕ?2㘙+Õ}e2jÙñƒìM=‘ó»Mæ¬V7³m%˜1'|Ü6Ïâ½[_TÛX–\Ã$þÉ5×rL¦¤íÞ{€;¦Ná‚L/‡£® 1ØT0mÚ,ñç;¢üñWEÁâ¯ÒñÁ¦ÖX¾áüGÑ}ÐD\tádœ=ìVüæÒ¿Áξ›÷¼E‰„vk\5åP=sœ¥š`òE¢!:}ÀY4þ¼7©$ó.šùõ@*tbÚ,òí¼Ž̺ˆ^yùziâ(zé¥sèýwÏ£k/£&±')Û[Bó¿nA+‚WRÿ3^§ Gþ†¼&Q,SX‘?õwX`sçÖÝÈ›)-Ùœ +¦æ™œ7Œ·Òþ³é”Sï¡ñ#~EV"~|í>•ä¨ °IÖ4)­`,5é3“ÒòGRe0Dí3•nŽ>ýr%¥ÒÈfëGÚ2©´ÔLš½h•nù+ iˤæY¦ÊP”Öí°é“Í™4ÏÚ„›¨°Û³4|ÌLšpîC4aÄuÔ½}/J €¢Ñ dÓè³î¥U¥Ã¨¤"J>dY®Ž0ÕÇYɺ‰qe8È…¹¹|áè[yÌØ‰œÛím^½Œ kùŸÖt!ŸRðŸ~Â|>­Ù ÞV’ÆÛÌ_²Ñú%î5ô ¾ü‚q½«õ¹aÖ€î½lŽó¨á¿g_‹‡øƒíƒyÆWýù“â“8”s=9{*Ÿ5ôN$"U·Ž¾)5Ñ á¶ê4fý–u¼iå­<°¨˜·GyÕ6“ç|Ý—•Žc»ùcÜyðd7îY¾äüð>#¸¨ ŸMbuÌކ↩:²MssxÄðøãí]8O0±‘äµI\?·-HÒ÷3 ŠÊÐ8§Š NCNýñÒ›~D¶?ƒÎMSPl6´Ê.ÅnÊÀ©Æ©‡’òX†Çõ +k½—4&|£‡]‡Šð•†ÏëGZÀ¯ÞäË ÒÅ]CÓäòÏž²ˆÐ¨ímðeõEàËßaûÚ—ñîÜžøù¨›¬,óëhŒÙ‚Ìk±iÛçxâÅëÐ.kíÎ)(lÙ}ZõC~£&Hñ™0ªW —0B•”ºð[cÓ0Õ[×6±ÿä{1oÁ/1¬ÝAD¡:ÂB † ¤5?£¾À×Ú%hî«J\Ë*Ë(ÕgÒÅãï§íæå´f[„Ò<Ec Îqj~„þóÒ ´uO1e¤e*”qÝÑáÿt>%éÔÉRÀc©yMºŸÉ¶Â o¤´Ç9)œEo+~ÒóN¡ÜÞÓ锓.¢’ ÷ÐÜ%ÓHüÓïšÖåý÷MP}g“6ŠoÚ®†Ò©£gÓȱoÐÏÇÞAg:Ÿšçˆú F–mës8yksĦýO¼âÑоgQA§»hñ× ßܲ€£]·\R)™Y8sªß”Ú¿pIÖïøÃ©‹Æ8Õd^nרÇð"¿ñÆ/y麥,;³ß`°š©äÕÖ`'K«AYH:–€$ß²T•þ8§d~©U+QÁ¦7‹s»>Ë纛W/¾——¯[ Ž£Ü­"˜éÙq+ ñ°øê ïçN­:r^VË‹V_Å gÌPh €Áµê—&CòˆÏ#+‘ÜùóÝà“TŠ ÇD Zz½ƒ¯‡†N¦i"ž°ðš¸ä¼»ðñ²ødåc( eh•U #àC»<¹¡°lÎz¬[1úö<-Oh/y ˜†é(°Ù’8á”KÕ`sMªy­\Þ™Çuª‘Ûî7¸(µ ^›þ¼¦n 2TîÀÃÆ4- # ƒô¦pýE{jZ蔑ã8ÿœßá¹—7"óà;(È Ø5uƒCTïàë¡ %,‹âñ¨HhÏ¡Ÿÿü5Êêò­ŒœO‹wÊðÜjQ0lР‚mÔ¬ä>Z^2‰–­™C27'fü`ŠÒ?Ô{€AÆ1Õ)5ˆtûƒÌÔT:WtZ—•ô£ŠPDŸ;‘p¼#NùÙ™Ô±E;êuâÉÔ·çH:©Ïy4T¤„Ã_BÍ›´S}Ùú^¦ÊÛX<âž«7Ï@û[e¸‚F Om~K«v€RLí*1 ^À×£' /´JŽ5aYEY–58.¸[¦Þ•%«¢ßƒ"@H t¤ÛÔùíRÉîxéåyWð¦ýûL8éê|=zøT\E pô ô½M/ê%ŸÝg!"X– Ÿ×Ƹ‘wâÎë‹A¤#³¾þÐÔ@ ÄP˜®:Õ¢¨B¿½âjÓìDŠÆÂ oàëL Ô@`(Œ5ÈÔ¹š5iË…ù-TÚücÃuÇ15PLw·H$b®³­øú#S5ëq é¸AúÚ@ Ô@‡€¯ Ô@ Ô_¨èG¯ Ô@ Ô_r&[ ÔÐú,QKÖwôz½äóùÈ+Áw CChÒ·4Ô~]ão8~püÁW"r-Úõ¸¸¸˜wíÚÉ»wí’ø…†Ðvîä½{÷jãoMS\¼‹wìØÁ‘HDýJŸØSÏEi¼xñb„#1TíTVsg§êq­°ƒ™«Ÿÿ¶ôµ«^Võk‡«—Z[úš÷¨½ÜC>/ó‘ñŠ™¶fžj÷®=¯¦©ÙÞ‡ËÛêeÖv­–û¸Ç€ 0ìÛ·Ì6òó ‘HÄ¿…#,À~ýݨ¬Dµ‘‡”I1J*“4¶,K+dš&9•#÷·Ë°„ÞÈuá`ê9· ɯšIÞÆjÜ$ùwíijOçÆný|>?vìØŽp$ŽÓ‡ xLÛ¶$0L©õ!¨¿QÍC†¡˜>aY @ëÌlË"GûCsR¾½óR-çª×³æµCJJ>®-Mm¿k¦M®ëá=Wr\KšC§­™§Ú½kÏ«ij–Ãæmµ2k»Vë}ÜãÔÔ4úì³Õþî={#TYIBÕxaÃКOWá‹õëqê©§"k?"’‚§š :œr]22¡qãÆz2‹!²ßï‡˱F' „ôzEE…ž3¿:YYYƒzìl7 qÒ›Ìù­Tã¸ú¹Ú®¹ÇÎjýSRRtã–P¨R/gdd %Õ²ÒR­»2ß ÎHÏ@yy9³m#5-M‹”g²sràõxåw%%%nýõز-6 ³ŠÈ0ø[¾\í­Ì5®ÕNnšäãÚÓÔü][ZkùRÖö n\kšC§­™§Ú½kË릩ÁÇÃäm2k»VË}Üc}ÁKŸ`”JŸ‡C "®Î‹x<™[jy¨ܱ§ã0 ’†ûï¿7ß|3Þ{ï=lܸ³fÍ”)S°{÷nÈ$VÓÞwß}øÝï~‡éÓ§#33SÏË @vv6Þ|óMíà999ú[§^wÓÑ÷¢×è~¥Ýßò2ÁäwÞÆ=w݉ýûö)üúÀ S§N `4kÞ «W­Ä矯SÈ+yðß§ŸÄm·ÞŒIo¼Ž‚‚BÌò%Öü>¹¹ $¿”‡, ljÙb$“¶»ô7¸ƒOMÅÜäÌ|dÒWfÖÝ«äëA .¤+®¸‚Ú¶mK2©¥>ø€dP’ JJMM%ùzТE‹èÒK/¥·ß~[¯8p@ý±~úé§4yòd=–ó4{öl’AK_ý5ɘ¤ÓëµïƒHá7É£… æÓ_|Ní;t ‰/½@è“O>&¨ôþÌê\éwÞ¡I“^§/¿Ü y„±RïÙtÎÈQÔ½GZ´pÉ७[¿¢ââÝ´}û6zãõW)žˆÓFÉ3sÆt-KÒè}™YùP?CC`f'ØN?K!AÔ¨Q®Æ¯·ª8:åç3¬±ÀOE‚Ä2è8//VI“dðêo‰Y.Ë—”?üðCÍóÐCq»víX¾²üÔSOéï7Þxƒe`²tx áû râ„•`ü<ïù çv¢GpÉ]2¡Â×iÓ¦i”éFéuWº*ZÏÉ@„ b4oÞÜ-ã{ÚË]²€ÂWfè3téÚ }‚Jt™fРÁšN–Öeì¹ãô8"ÇÂPiãr=&P¤={ö–kQÍߦM[yÞîr\¡Ï!y¶ËD_ž9∿íz¦<Р<à.‰hÌP(ëôu²ˆðîÒ™eW]ƒCG¦<àèéi,O¤`’Ž­éÅt’Á†#F`ôèÑpH;µHi]å‚*æ”––ºsPr:¼–á0à˜)¸?:j½]†`°\ëóAêä>‹æ—¥b(¶$$§q×^å (1Á÷:‡ã$Oi ²íª{×SååËRXêÊ,ôwrËU:IÈy[¶¾»ò€»ðétDN*]¾9ƒJ;¥ÓùÜ<ú…­N’6yq•“˜wL•œXë…@ZŸ* €=8’q‡\å‡ÃYd¯ßÊ ÊÚÇMÃdé±HùaTS°™Ùëó" ³Qcp×TðàP’ú™ûûGßíÊ…£ùùHKÛ‚O>þPá§ó𠺯G _à«’ÂÓÒÒ0³Æ‚Æjå#Û 8PWˆèHàkí0²F\ Õrý‡Ð}M†©/ß«"Xÿ$«Ö0ǵîk|Ur§`Ù 2È®QOE ”‘‘©2W-Õ¡ðÕàzLDTµÁ¬,W°|59/?_âê¡!4vâ‚‚‚# Ç1ï X–@¸‘„ÚúW^žðµ E¥TIåWÖƒúO «½^Oí[#4ÀW8Æ ù‰è;ÃW‘6ðÕMw¨ßÚ]K*‡Ž_øjš¦bxÑc¥¤)úq_™¡<˜,ËFµÔzÝQ’@Ó¦MuGæ!Û-Yú.é±nÝ:Oi"/ðUs:²Ç<±f=Á€eÛ$šnTáòBßIúz¸ÒMF ªýü!òsé+AÞþ, ÈÌjQ†ÂYðQK_Ôyé+Û À/×Éiéé(,hÑ8’ó0ÜûóÂEK0 ?sÊ/ç-_£Îržå:-\Ä_2gÒ| ÒW0àóûñõW[Õܯ¨e+DÂQ€ðÍz2Ø0M,[¾‚{tëŠfEEˆÇbG.}u+従%¬Ò ú&¢äs;K‡RLpk…6®é•{f>\‰°šV‰J 0.N, ƒ¨vèä¹W½€¯¶­v¡ˆFÂÈÎi$Jí†AdÔ0q ¤¤jú­[·êSÖ¥UÄ/kUúHªŸ{¬’GQŸD4žÀS‡(ü%‚–oY åcM ½›àZà+éÂ<à~AàÊ |Õ{KÇLy %% ¦a¨§[÷ž‡*5Oõ6wõÀ¿%›Ö¢ï‹FõÚ9ÎbfÅ’D½Œ¤pý-:¬ú[Æ5]QçA¢v¦çeR«ºŸ®i‹kpÍW¤5T”„4s]ƒ4€\}Y·¬Ãu/ï¦uôw+)¨z©$JÃTQ^®º»åee$š=ªß @ƒ\×såNQ›Òsîo n9u?ƒª§ GäwðÿHW¡<•äšì)¯ÄAÛH~k»pùêÆÚĸWË—<$K¤| UÊq©òRy]^.Ç¥Älkû‹f”ËW ešWÒ9¼/U3:˜z­LÊ í$×5TV•©yÝötÛÈ=ïÞCƒË‡c*Tï9*AêS[:GOÜvù{t~_ˆ¢º¯×\s ¿õÖ[¼iÓ&~á…ø‰'ž`Q(W“(ê覛nb1†f™c°`hÕƒ•FÕc *""•J‰ý%‹ñ3ËÛYM[D£^ÓJÐcQlW“±§Ÿ~ZóÈy½—ã á;l€ÊlËŸÜ[ͱTŸ73SŸM< è½dÉ„Ÿ}öi~ñ…çX:ŒÖO^DjŠ–žž©y¤.ú[:¡Ö×Ñu¬ó«ý–çþæoå¥òˆ=ÔöµI¾ãŽ;ôyå‹(¦hË•.ï0αJºµZµjÆÏ=û +‚Ü´é ÚŽR†ê 5Ó¿7yíÚ5,6 fás#‘^æ)OMÓ£’à¦Ò?ðŒéÓ¸ °ÅðœŸýïÓ,ƒSÛKÚ†É0¤M²µ_I»ê=råš@J=.”|R¦¶ÔAïÿÄãÉ5¯[ÿcjò×áQõ>yä¦[.”“7Žê„Ê@Äé§Ÿ”"8ù«W¯ÖkÒ€ þõ¯éšà=÷Üa^~ùe¼þúëbµþóŸñ׿þUáÑþýûñü“&MÂW_}¥æ.Û¶mÃ>(ÖþŸkxä‘GðÏþK—.Åc=éšwÆ ºÖsxz²U°~¯_ò®Ç Ô+»ïN†|ñÒ‹Ïãµ×^QØÏÖ¬ÅZ„åøï}ÿ}æ)úPúÆ^ÜróoåxžêRË‹K-Â÷߇yóæ(¿ßœôþûß§V¿þÚËÒ¯ÔûŠÇB<òðCøbÝ:¹ß.ü^Ê™3çÈ`Ä«/O”>õOˆ«>û±l3f‰uê¦ejVþ’Q¥ó ¸ú×|Ô~_2 ³&È £•+WÒܹsÕlIGa*Ô[I5ß@b©±XfHÔ3Áþóz饗4¿ \Í'Þèïÿ;-Y²„î½÷^õ\°fÍ{Kš#&R¢ ¯ùåK¥f1Ò0txÄÎ3h¬ðbñâ…$_qZ·v­z˜6m*M|ñ9~S¤cùj-þÊ+É0Mõ°0ûý™´VÌÐÄ==ñÄc$‡D;ˆܯÏmÛuܳ€ed³N´Í|à^êÖ¥|Rtr?ú\ø!óo²¾º0VÐ9Ra   zíµ×´íVÖ˜&zP/ â.…Z´hEÒÅܯ9É\–>üp®xyxžäE¨mÞ8¿1ÉWO!Ý<)OòQ,£wÞ~“^}åe š>í=Ú¹s§Ââ×ūà b:(NªèýY3èµW'ÒÔ)“¥Œ§$Ï[TÔ¼HÛTòÓ²¥K$ms’ع },íõòÄ—hõ§«¨I“¦ÊǬÍ,gJ ñDBŸïÅ知.'¶§AûQ¯ž]äùç)ßåúÑ›n%/ÀË—RM´¤aÕ”Ë]” Ç.,”·•BœÛo¿;uêÄ2HöÈ‘å+Ë2Çà={öð•W^É2Ø4¿¤×s—\r _vÙeZ¾X“°tÞ¾}»BÉ&Mš(l‘Á©fR‡»±'5­Ì'¹s—®ZÏW_~‘O;ý Þ-uíÕ«7_{Ý bJÖe®¡uÙ¼e3=–û‹9Wy0ȃá¼WLÑÎãÕ«WògŸ­Qïò¢b€~R¥Ê@à;'»uïÁ;„··Þv;Ÿtò@Ô pIfHÒÁXe:e/–N#*4¬"ªšæÄ=(i}|ñ/~&&}­xî¼9Znÿþ'ñ¾½{¥?œÈ'˽âñ„´ë6BHÌ' 8™ÇŒ§÷Ù³w˜Ð]¯ðtßž=ÊãÄW\q)7•> ®\¸c§Î|Ý ¿âN'vf¬|Å•—1xÛ¶¯yä¨1 U¥m¥]¯Qh»bÅ2î"mÑE?Xîaß‹ëÔ„ñÆ_ÿ†Ïq–z§¸êªkåÙÎÕé‘aб1Ýbæ*Ó-Hºæ7sæLõN' ç.ˆêïáÇCŒš!v…8ûì³±jÕ*…½Ì¬ðTÊQGY¢ÿ§eIEÅZ¿…Â@„÷!jòED*ýs%€RžBàÜ\]CƒØm*$ŽpðU#UNOOÓ²6áæ[nƒ BˆÁ³ÔsÚµï ÷è!Ïq&îûó] ƒpÅ•W¡u«6êÅnÔè1xêÉ'PPX€ŒŒt­¿ëªôUBìX1H¬~IE9ýû? åFŽ­~Kåe¥é™ e˜´›¶µC"Î:ë,¤ pã7~sœá@´ŠŠš«´÷²Ë®€|åЪu+™ê|‰ÌôLòP~KÿQ)øÿûÝÍX²x!zK¿ú`Öû˜<åm¤¦¤¢wÏž?n ä…Ž6mÛh;WV†pÙ%—IÚŠk¯¿Q=:,^´@L{ªÄ·¤¤¶•p,€*àóyлW/Œ;VÚ».¿âJ<óôSX²d‘NM ‚J‡ó™nÙ°%hl[Ê‹¿üõïÚäå®:±‚6Ý)×Ñšn),HàHp9D°£¦("Ì B’†ƒœ'×fR Žé¬js)ƒB$ƒP]„$Rovò%ĉ'žH®Ç; $­[·Vq¼œ'×¼ë–[nÑA+÷Hö/«õ<´éà®×yL“äk,p%N?c˜®YÊWRë#ЉZ´l)¿{©¹•@5è¬u+*j¡/‚G}‚š@¾ªUö Iþoë¤ò€;çqê'¿-å‡tLí$göì)V>»s#b‘«P`é`”¤/ÙsÏ="ÍTeá%·e[Ú¾×ßð+Èü‘D ùb‰w‰MØ©¼³-‹ÄèÎ?_îP‡Ä‚6 _LljÛwÄøñÐì„fÔ²UkH½4N™Y) ›@¤¸2-j¨ÚßF9×ñ0è#‘YàbÄëסîgDýn¸ñ×Á"eäè‹×Yƒ=ZÓ-§ TÍÙ%®2I?@µx°UøâBÜ$%ôZùëºço/šV"˜±UŽ3Ó- ÐÿbÔjÊånï!éÜóÇ—é–¾äª:NÜÙ-ÌãtÌãÈó€D\5ÍðàoMË€°¤ŽT[=@òuþB§4¦ 0_ž ƒØ™—¦Ô¨§UæV{I_¦[É<’Q[ݸF\;ñ1<LJH#HŸÜ€I¿¹ö´Õ Z5þU?ÏÕc÷^IÄGÏ×£o“Ã-û®Õà/%ñ'‰_µ•w\ÂW~èz—+û>¨ÈÙ61–jœ< õv×$íˆá«‹ªC=—|í8P¾­L8”TöQÃWÇæO5‹$ë÷èákƒã¬ÇY5=\œpBs¡¿Á¶ö=õÿK† ¶--ª_¿>îÜýè”\ÝF¹qµó5Ó'ïÖ•œÖ:ZÎá˜Í ¦èV ¢D¯z´cÆŒÑ Û)°8ŽÖ㣠¡!HßÅ™Y9ìlîÙ»¿ÄçpÿƒøŒáç°Çà5k>Só¶£Þ¶@£.øŠ @ÍžKôØX\²u·Æ.tÒXòêÚ¡”å¦O†›®—ê0ôHà«»…€ÞOv÷JöÞ®:µÇ‚¨ÀÊU«!KOˆÆâk¼7u î»÷n<ýßçu™I¬¡ž–`ÅÁc£< ˜.¾øbUZ…d2dˆê¢ºR%GÙÖµÓÓí žþyµ¡¼öÚkiüøñªÓ*ÇŠ¾åªt.ú¯$›³ª½dÿþýÉqùŽóE/R¾nz_g7/Ñ‘l[àÖOËuëûøãC6ÀÅUW]…aÆ!Iâˆàk|m€¯±øÿgï\^›£(þÝÖ÷[Рq¡D£SÁQGAÐ…º(jk²‘Rܸ †‚äPp©A4*¸j]Hv.Á,:}¡Æâ|Vñ ­š¶^Ïw`j]'Û9僴ù˜Ã½¾ß=–£TB¨‚@¯™ÝÇùúw»ôôÞ28:(¿êŒ|lxx !ºc·ŠÅbšÍfµT*)@c>[§•J…“R©±-lÄ$*YÁDÙªÕjvBšU˜[‘ÍI@‚ˆ£´ïC\ÆædphĈhfL,Ùšü,Åb‘{C>Ip…+\-þ×2®zý'ÚÓ¹zþÂE½tùªž9{ŽØãÔßiþMµ¯¤:<Ï3`â“ËåHP ƒ(9>N$¬Žù|žÀf&páܬšˆ^¹®k`BS­VYËå2+~ÇÒ&LáBdžI ÆPð9ÿŽV³RU’¨öü<¨þl¡aÖé×ÿ_¡BيLj KÜðšrœ6¿"’œ)²½bÛìV™yÌ/Xh,Ä@TOÒé´Å°8ôóz$“É +ŽãŽ1pE")8 rTHš%ÿ¦µè÷€QHq£K4e˜,ö›~¾Yù9ó7ƒ9È´Ë?C¿‚)T(#-øA,¢<}2"FßcªÅ° z2<Ô/ƒ}2òø‘Œ¾{+Ÿ?}ô}E…ØvvULÁj2™d ˆ»šDªD„ˆ°+¶Œ ,,jC´ \%.˜8Œ¡øŽi[^ÌÆãq…Hf£UåûÀЊªÌöÆdûÚŒD„í4ÀYþ¿¬Ÿ­«S¨P VæuºoÿÝ;°íH>ÖÙ¡vuÕƒ‡Úu—»¸â^oÚ×?ì] ”UUÞ{p ’ŠHfxD¡=ìM…ƒŒÕ²F^½Ã`Bô dEHV>²ö$q_IeØS„´t”dfÈLGËa0qÈf°Â¢LPþ¾ïóþkï0ÞéÞ‹kpÎ^ë_ûœ½ÏÝ{Ÿ={¯ýŸþÿûžU}E 0nhhõˆÇL‹/UUUŽ$àá)aÉ’%ºE‘ÀYºÆtüV¶!‹,NEýƒåIÉ€ïUªD;pKo¡´޽©Èùyóæ Ø+tš¿úšJj{Õú ú<êPê«V^ Ä…6­±}ˆž9 „ÃÓ§áa÷?ø|Ò±%?çn' y a¤d‡²Œ:If26/ ! Ù³ÇÀÉJåÍÅÎûLNà&ËÛúêýù½“åàÒÙ~œžwçóY`y̳.[bOûÏõ\>ï›Ç»ÄžŒ!Çu,ö¼g÷“ßßÃÃþ‚ÕXB™œ÷•³¸Î¼üê82ÄfD‰EˆYÞ¤±ÜÜ4¬þŸ…Žcc(O†¸dvZ“>ñ¤ßj¢ZõºHlÒ¼|_ý·î¡ïÕžÐÙܺæ]“׫Ìïsô™ãùÜ}äj/w[=Ÿ+/Ëw^‹ÿ7ÉÝöÿY—ÍQI+>‚éû!vwo8a܉¶á–Í‚»\úÝ ©¡•CÏ=ñ_­é¼}_õ ŸlŽ]é ‚_¢ØVÌ‚ÚsGèúÊa<ò²X¡[)ilJëƒQ÷ûvñ ²…ÖÝy_ýšÇ¡mÊÊß¹«#Œ9œÏäo}uË¥Cÿ»xyoOØ€²ðž|òÉ0—†¥Ç¢J*©Ü9ª_Œí´ÆŽ‡ÚcgÇN]ïh½/îlßîüK| m{,;fˆþ»€S37îëóPÜÏ–j6­¹Â‘2[Q%•T€ògS¦L¡5>°Óu=2mÚT›˜|„ÃçÆuï¹²-Ââƒð'áý¤)3üÖy 3d/Ï£r—Bók3Ó½d³o´çóX8îk×ûlÉ…s«ò<0rûî«ü`-Ö]êqß²ßëéÀúþŽÇû¬¸¯9Ic}Áœþù Ùb27Ip˜s¡2TKŒXÞ‘oH8”ë7ˆ¡G _ô;DŒ„ºº:¢ðžujq˜Ì“>µl3_õUâ>·¸ËpÔ¿} ׃å‰} -/ÇøëƘ‡-nª%1 ËÕ˜†9vù6ÖÖÞ@bYá¬Ä¨@l\dŽ9Š6ðÍMÏ÷á&&•|‘ŽÆ¶ÜƒóÆgÔ‡àÞ7lšŽ±LŽ‡ë’ Ö=è{Y~¡[NŠÀä¹&_ª"~…ñ„ G"}]µj•rÊÒÔÖÖÆ2…n‘1‰jìÊ•+css3GòQqñƒÉ+ v@Ík ¢Dh¹*8tKG„ýc‚Œöž¸víuñ†u×㺟WÅ[nÙ@è}‚@u[¬«»™cÖ5NJ=릌ÇqÈJqR‚<÷.ªôâôßÑÖqêÆ5«¯ÆØ;È0¥ç±9o$œ%y©Þ宦¦¸}cîVbΕTâškV‘§ŸóÎ1ó7½\R1³ŒˆÂ ‚Ñ-"2ŠÄÊ*-eyvÈVÞ¡[κ%Ö$/[¶l™Ý@£n`k6;ø'Í…¯P/pZEEôD !€¢Ý°ÅÊ:vÃ)jØà† ¬vœ£©( Z1“—U*Ï•WþHÈ Ø` ·Að©ØÖ¬¹Æj.¼Ä§» '©­¾æjÛ‰ç7l¨µÛ~»ˆ µ¶¥¡Þ@Ãf7ßt£¸øïÝÖb`†¶ÆÆÍ¶âŠË ¬ÂöoSÏÞ°~ÊÝ~°âr»ø¢ôóWÛÚÜlß¿üûÉUWB~l`-Æ<®¶ –~Ë®E~Ù¥Ë ¬ÆhçZ'㕤©÷ÊAó$•ëWãS&½ÛfÍüò*»kåO¢¾'©¤j ¬–XÈÂÞzUOò*´ŠFœY³f@ƒ“~³‡R5f3l!ö2ÔÔÔ„±cdž–––L4vG­:#T°8‹OpôèѺ‚ Yuù'“­Æ‰~ÚZï'i, ae)kÅý A/ £^>*´·?N_ NÁj±>mÚXªƒ7†¦¦;Ãç}!Ì8uf¸óŽßË–é”ÉSÃFÏÞßöP1n|¸ýw·…I 6þp÷]hgj8ûÜ󤚎Dû³O›@ñÍyAîûÃв²°eKƒtÇWV ]|„IáœsÏÁ\ÝísDZ÷fI*©ˆ™¯u®ùÂÖm¸YŸg“ªO¡ý$ÛNPp)‘ô]Iu ´x\4‘¨µµ5¢C~oiAíâµ6ïòåËA¶ziĉ©Å·páBÖ‹X®AÑŠÍ$ Iú^eÂI&0.TSÅÍ7tK·fú-Æ»/'ˆ’õáKgvuv„m-[5™¥Pkyä‘…²@*·ýñ³§.¬_¿Vp'Õ,æ)‰?ÂØ¶ã=Ç|XqÅe¼þ ÕyûØÈP¬oGв‡ðü75Ý!‚Ö§<¥oÔ׃(·Ö`¶?lððp愎þ£@Pûè?tdÞ³wU錡(áÓ ­¯©õU†žh¢Ããæ4­Ú ~uÝÚ€O£°hñ™Æ=wЊ@‹¤Jb¡Ðß ß}Re,X ”l$©§Ø¤z Ï âo¨–’–¹~`©³Àà±3f0z ÁÆB˜;w®㇤±"'Åé«ö W_yTšÚÚppæÏùø<‡¾Æ‚—4àø?«š0Ñ@Ám3NýǪ|Ú´éï8«®žl•ׄ‰“AþÎΰ͞#Ô‚Egœi³qïòIuÄÈ‘ö–1cløˆ k'Q*æn¾Ð*N¨°*´C•çØÑÇÙÌ™Uý £YUÕøMN³½ MýÌé ÔVšŽHB^¬á½Zà ¸=$±Í^Çã¾ÒJUU*6œ¬­Ø˜<yïD TMâ¥Ó°¶¶VeØäÊ—Ú8gÎÖ³œHåóçÏO’„R­%Í:ûÕµ«Ãù¥g˜žÙ7UR±p퇉z?ÚÇ&£…ŒTp´zq,|F}ƒ…Xï8ý=ïeª4¯Ùƒ¿½<¼ï3ïŸÒ ×Ò²•j ž}s¨†J -ƒÏàÔ|œê-΍Îpî8vC{Ü?—ýq|l?éÑ+Rç”A¹ª²\«Nv,ÚwlN§^÷ºÂÕW$åXTÜl¬wòÕ¤ó€³öòv.h&o u„a½o–{™«+ÎímF”¨¾ªM眻¯Ç`£yö¯~´•JøŒ¸Í|£ÀøƒœakªË,¾ï>/ÏÄœþM/;zô±T[ØzùÇqàéHÕ}ðÎrWÌE ?x8¤ê«,ävV9^S’Mé^kðI”‡èm»FKµ51 ªo^w(2ãbcòz<¯×ûð¶3ýȼY·c2|£±M²z,É*†²žÆ–æ$©nÎò±ÇüýÆÒɆ,Ñ–î³æeªêýΩó€Öt¿’~´\ðZ€Ì%YδЖö/ ´ø—dmîçuK‹­;uâ9gr.++‡ÅôÁ°¥±ž›Ã_>õ}-T}MÕW_çD`9sžŒÝΣ|ROgrFêS¤±Iõ#TVVR…”¢¸¯SÖ­¢©¯)mAÐ'O¤ªJ7˰·.ãÔAá±%ï-§â@Êa}}~†o9f¬,Ååå쬼y±$•T† ×øHwë ÚœNFˆ:Òöú\èVòpKîáBHÕ×yÀ¯5ÎîÚë{È.fFŸWú£.I%RlpAJ%’RæG'ð5Ù7³üŸ¹°ˆ‘ùK¾µ«W¯†ëæE•TR­£ÁÍRi°M·n¶M¸¿y}}£mܸɚššx„¬¾úqë1…II„F)ŽÐ˲ÑÒ{Dþš ûò¶ºIYíw«–¹ËŸh@B$^èôIn@'¶ÍW}MÕ×T}UHÖ¶{ÿª&¾÷%¤Tg××CàJ:¾Îõòû†gqò¢-PYf“DãøÆ$k;“u Âã›Î¾à)´2ù&cc^—dvf¹;$øèä-ÄШLP´÷!Äwæ=ûô± ÑG79^ýmë噃HH}ÅŸÒ¤´]ŸÛõ0!AD[e¤˜ÛšeKCÍòKâÀ/€Mã@<æee@PßÍõ™ÓyàìYhUÅç_×}_â‚õÁ âŸ45‚š`«F%`*†—„TJ àK yÉ“bµSEbmÒÄÔO1E%m‚â.u]®çwèÀ‡õ³ýúù"Ì…Yî;3ÉþçÎÜó?•l (ts_%(—«3ưÊÍGGG39q•‹wÓÔÔœ{íW©BäPH¼œÁ@Ûô“ð ³%ó`#ÂÑ“H\M_‰m@‡ 4}455ùúN®sy½l6‡£8±xz||<1p``ÀSÝ&&&²žžÄÆϦþ%R¦PèWÜ·cuüÿaò@1y ?NNÎ`¡‘õOj¹®ÙÂ…RéìÉ5ÏàH'ëõ_òI7µÙÙ˜&FäÂE«µµÕßý-ç’V2AÑa¹ÊÒÒ’M`‡‡‡I!‚¬‹¹¬>VzJ+E,íêêꨨ€‰þ°>¬îWúÌLãA@ÀqÔY†*£T*y)·h©9&³––ËdæææP¤”¿mÍ¥[ôy­efc2'•y¹¸pq­å½¯e?ûª­«Ôw5çßQ¿ÕÞoµ÷R¾¬æž*[ûß½òyªÿP‘ç{ýÃäâ¹eù „1!a½ä{Çæódi_›môS yVH õõõ¡;äìúŠX!]eÈ(¤ƒDÒH†¢&¯ŽÒdmîör{fy‹d"½¬´Ÿ¾¾>o ´1==í¬8t Ô¡52)–Ð[ŸK‘5æççCöy6‚Eî%pmg½ÀOzPÇÊ3ÓÙ ¤p EÊ”,¶ÉÔ¢úR”¢ØÑMÏä¯~^o¼©5zxUt÷ܬŒÆÆËBLC‚Úß¾–Ë·(Št6‚% œ–\ ¬ùGR²Xž(“(kR4tVùQbÖjÕ¿€Ãºë,À’Òø-éÌÌ ™ †Ù ¶¡¡!É#“Ðä I˜×¥Éô²³³ÓÒ0¨ªtŽÛ} Íßx ÜPÝ|›ór Þ—ßk•¥(E’Zš÷Ö›¯¥?Ú˜^}e6m˜^—^šYŸ6¬_§ý¯§ ï§O¶lOµK·Ô†±›Å¾ƒƒƒ™€C",Ó@E2è§©¨"'ª ê ŸHµX§*jãYE8Ú“¹€qíè›s¸_ù}dz¦(– à, "¬vF,ùdé 5õ=ŽUŽ ¶i Åå¥NN_)¹”ÆíxÆÇ´É­þXî²qlQŠ‚d‹„l_Òfº“KžE0!,lɾüⳜ¶îzâ,)¡ž¦”cccÐJSÀÞÞÞèî„¢Y(FÈá9†††¢½½ÝëJñÍÍÍÑÕÕËÑÞTS`e'¤˜ ¸!ÀBcMAÎÉN`ÊÚÑѺYh+tÚõGF[[}Ò¯Uà„¾þ# çºåäìŸ^VAikv+JQÀ Ñï–ieñÂäd¬yju<»vm¬~âñPŽ'SW$‚µ%ÎÊ•ÿÐB¨d¾­Ï#¦}úöG¦h!ûœ\KBgÏT„êrôЪåhO½÷ dI`gÝtW`#ù?¶¡ÄPú§oÖ}NÛô9"œHQ·Á¾NETè6uåÔ•¥Ï#`&E}¶ÿ›ä\E)Ê6ˆ²žóŒ){Ä·éÎ;nM+–߬lwS•ôfÖØÙ§¿Ú»¾'b >»Y½¶'øpÏ"ÂAéƒÐ7?ƒ_ý4Šø,‚ˆ~ë~<°¨ W¹‡ê©xÕs»q&tèâ4‰e[ï&t.Ýf’l–„ìýf~“úÊ„c‡¦R\N¸hœ9uØ~Èeœ˜iÍ‘ 8ÞéP=¦¹ðkd‘ªzÒ³¹¦ÛíÛÑ.ÊöHB¸þ>aK \Tõ¹ON5º¿ñõ~"¯±¶ö­Q·6º/“ë%!ÔÔÅ™º‚³šhG¿}ëܹ{­§…!Ë {S’sÀYd÷Kx’Ò„GFˆ_ ^œ‡¢aoIJV…©MÈÛIXEÐlØôÄ¡LȰ_ê¿újD …%˜^©ó‹ô #bœ#pDÈ,ÑgÈÁ`¡¢¢BóŠP|c2œgGX°ìèô;êð1¤¾¸?¯>xûˆ¶#û OèÇïBcö‹gH'¢ññÆŸy\GêÊ$çC°®—Ežm|Bh~{ǺŽÝ­=Zƒ–T28Öy -PEüŒg¡hÿȇ’…¯ZCù<ú¢ÍeÎRôUgE¯9÷-Ê´®ÁmöõÛw³j ­Ãåë7Lƒ`‘YF`¯a8°(=å²Í±w#µ0°Ë>å< Îê<Àz±kÎ=¶;üŒÂpo½4+&ÍΟ;ûrPlmŒ­ÅIkÇ–—¼SêN©;¥î”\Î ›ÆJÒ,>ìþêÍÙ©ú±.IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-bevel.png0000644000076500000240000002640712536324511021501 0ustar philstaff00000000000000‰PNG  IHDR'AUuwU¥ o:D¶©¤\©Cp/ôÃçËU±ÝÝÙ¬’È%þâ™õXõò(¤ççk@Ù9{×ÞÙ{×gI³ì.ïù­÷ÍSuêÚ­¹_z4 ›»Àr 9‡â"02áðíðüÝ_a°Ãl@ I @Âæ–±1 "„Œ.3šžžéî™®ë9'ßw=®“§*#£ªÏÉé¯ÿùî/9¥OdRÓMb*Ãu¥Æë¹ý}ŸøƒÃåå[êŒ|tPŸªšDÑYm3}ýoõ;ÿgO÷èÎ'ö›bU2&W]Üàäîppcü¶ß3¤ª\ñJ®/FS“¨›3¢ªÝó»¯ßþû}ò®Ó=ûÈ^†¹mrF3¦èãÌÇ'oþôppk¼ñÝ­f…ºor}ñÊú~+ínÇù½4¿õ7úäm§;=ݧOì©éh0é$ Ô¢]ÆöÁ¯}é/_ýÎÿr¼ò1»ò’P9xgt7Ã|ïŸO_ýÉ>~ÇåÝ^Þezàtä©Ržè‰¬š'™Oìcç‡N÷\~ÃéÞ|ï—ý/ÎËTµâKÂGR_µLu쇿Öoþ%ÞtºëtÇ>¢O´µ‰¶$€6‰Ý¤AËjjùÞ?ÍW~òðÿ(ÉK.®|žjŸ2·5Ÿ|}úÿe~ð¥žN5µç#æp.‰Fcв±íÉùØéA/ßsº·|ç¿ù×s /Çj§>Š«š-åtw~óÇúþ/÷tÏé.+Mmg4jH M`óÁ––¹û„S›|§—wN¾þwŽ¿þs¤°Õ$¯ü¦õ¡¢­éùxzë¯ö{?ßËS¡:­Ì/sì E p†€¥2tœ*ŒM¿ùÓ9¸}pû{íY’”úJ®Ïjª-:Ï_ÿÙ~÷ÿ8ÕÔùóCúD'0hk¡Ê&B@#dî^†HHõQŽ¿ôc5Þ¯Þnå#H}ø•Ue jÛ™Þùßç·ÖéLSÚK™Ñ¨AÏBĈ68Ó'ÝGNwœîÏ÷ýè7~r>~*1 ¼’ëóêµÏpœïü“é­Ÿîåé¼ètŸùØžp-& DhÖr&`ˆ&4´ÎÌ'=úPý`ºó G_þKNG¤>ºm}ø}¥µDµÛÅ|÷ŸO_ùËž¼ëJ¨ö±L0GD†3„¦‹šˆBD1-v;³ò¡zyÇåå7ÿÉñW~ øˆŠ¶>Ìñ‡M_Éže1?üÕùÑRõø-§»Î÷è‡ôg´ÊF[´h T¬„ÐÕŠ6P]€q¶—Ý'N\ž.‚OÞþ¹ã¯ý¯$à·´y÷jŸØüÓ':™Å|ôÕù+y~ðë«UÍ=æ#{)ëµ[*@™‚jŠ¢ª TÀ"„ ˆSzi?ôänŸ¼wü•ŸY¾ó“ ¢IH¯öé¾ÕU  jËØË;ÓWÿŠ÷~‰é¾Ë{ÎGlÕcŒÚ!iª*RIKuî° M6Ü+ s³Ì ’<Ž¿ò“YÜZÜú-ö¬&ñ•þ–Ìï»ÛžŽç¯ÿL¿÷ÿôôÀù®}„KQ´FÅtBVÔ˜Z¤®f¼¶z>Èp˜áj¡¨H)¢@l»ÇöñYHr~øÖÑ—lzð•Ô —4ȯì0°~X±)´ezûoOoÿ§û«ØÐæ{‚Ž‚HRc¥j‘ZœJq¼QãaÝþÝÃáV½VÕԂŒ"@Š$HÑÐÚôIOG}:ÑÞ›ïÿÚñoüDŸÜIÕ«|‰oÅoÒí8¿ûwûë?ãò¾Ë;ÎñD&è´Æ$¢BYd¸’ñV’Üø­Ãÿ+ïýâü¥ÿ.Ó}å~£tD%Ô4¦â’>êéN¥¦÷~áè7~üê~4uEMòáw’ǯP{næoþÃù«?½Š¾ç|ß>Ò ;b…‘Sd౦ÞÊpX7~ÓðùÿœÅzý÷¦ïÍoþ8Ó½ N¢2mˆ(Ë(6Ntœb†Îpòî?ÊÁëW?ûÇAåÃ/Úñ…K´»“¼¦æÊ|÷ŸÍoýdŸ¼»êæc\bGÅa­©&¤RãJSoÖx=×¾8~öGëð³ñD*ûA¦{ýößì `V4l˜‹£Ú0¥ãôŠÔÉ[ÿ[ÆÛW>õô¬Iâ+}½8ÝÞ'œÍ¢üúüÕŸê‡_uºëò¾ó™¯$ " ÕI˜ºÊx#‹ë¹ò¹ñ3ÿÁ#}'5Œª„Oý}×w~.‹Ñ4:I¢F †ˆHà s²,©“7ÿz¼vðúï´gI@Îᕾ®ž˜ßê‡_Ÿßü ïÿ²ó}§{ö1NÚhЬ+IRÉH]Íp-ã:øøø©nÿ[ñ85V•bO |úO2Ýñ½ŸJ÷lfE%b” *I/%M’Ô£èqÆ[‹›¿ÉîWóëÎG*ºÛôtúÚ_™ïüÓÕ¾÷³¥j;ÇŽBä H’1u%ãa·²¸=|üßöûâqÕSHbFzÎx“Ïü§û}ï_€…VæˆJ„hÇMg^B šðð+V>õÅÿl8ü¤v>¬1äáÏÿù?¯ž÷Y?›¦ <û¼um[j˺§Gæw~ç眺|ù½”©lÐ"€64u%ÔáZ^ËxcøØŽŸú¡JW O¥$Íp“+Ÿæá¯ÚA˜Á' !e( §±ÆoŒ7¿'ÃU7œƒK}êúáü·Âçu^yA<5³ªÝ=[ó£¥ê;ß~àôM燮„Š‚„؈RW5ãaNàáõ?0~úT¬ª÷]×#²®ÿ¦áS¬®|¼·2^O$#I 1† bÓ3}Bq–7óŸø…ž6½„<Å«õëŠ6‹~çïÎ_ÿ›N÷Ï`ûhB ( I'É@d¼ÊxóT¨¯ý®áÓ?œ:¨2t÷fÜ#â<¼ö;3¯b“=Ûí©Ól&Q­ó1îšm ܺòÙ¢ ú*ޏAÏí£¥êÿ=í¯õÉ7V[ÜœuÑFÐVLHŠ!Y¬,ð­®Õï>ý'jq»ÒIe VÕ3*œŸøÁÅ'0‹›µ¸Åx-u5CH:…Qm€(.í#çû®´öø­Ÿ=þÚßK låUqÍZSç{ÿì4Yéøk«Ä}§c{‰LEQE*)j‘ñ`)¼V×¾0|ú×ÕÏT¦ªaC5óÔá冡ªÒW?÷Gû}¯¯ òaG«L‘„PŠ­ÍãDÆû=ÝõäΣ,Æ“oü|jÖø•¶»<úrõ§|ð¥^Þg~¼U. B„€„@ò8R8ÜÈÁͺòéGš:\ÿÍåIž5OØ<áZUë0HªÉxøÆŸbº¿üÆ?AéiÍFˆÑˆQ¡3Gè0Ýí¤ŽêQô¸·Æ_´›dßýa¥O¾¹|óÇûî/:?`yÇé¡.q* „ !I†<ÿ^Ïâv^?ó#õú÷'UC6ÔM?³&IB†+uø…ùá—œîè Y!0k÷Qªì“>y{¸ñݵ¸ÞÝIÔ½ô‡×Tõ|<¿õÓÞýç#§Çp0Åux0E8k•œmº]ÏøZ7ÇOþ‘áõ{ðY¡^”á½ñba×>}øù©kŸ©ñfÆR Öî1e™1ˆ3½´V¹8÷¦;¿xôhÏg>JêC’V^/6ñÈûí;ÿØéhå‰<´uJ &`ˆÒ4•³š‡ÿÀðñ?ælõÙPåy¯$ ö<Þüî+Ÿý9ø¶,V¢­+©†N #kÑÚ:ÙK燞œî2Mßü㯃j^tqø á/°A’K?ŸÃZ-ž}EM2ßÿÕå[?Ó'ï¸ü¦Ó=Ñ%t£çuL¿¯jNã5^^ÿƒã§ÿXÕ¢*ke}ê].æJA°‡kŸƒ¡ïÿJz–9 €Ÿt&@ALF—ï’ƒáÆw‚ úô{± l:w[E„óIòaXç´¶ðè;>¿ët¿ç#úØ^jÓÝ4`+ H‘Ê“ ¸oõºõÛ‡Gñ‡ñZÉð¾¹Q€ç°¶–Ý­ì+Ÿúw>ù©k9¸UÃõ•{<’‚´(´-(¶¶.»™8Ý›—w–ßøGý𫤺Ø£u’ ½¼?Ýÿ¦{®„Ú=ÁIH*@¥Y·³¤–Œ×sã»ÇGðÁÇÜTò´P“°î~j.T€+Ÿý#ÃǾ/ÃŒ«•O]IF*!!¨vzIŸôü óÃ~ðåùî¿€}Yç$Ñ99=±ÚÇoÙ˳°>Îh¢„!¤¨Uüaqý4ü{øÙáÑÜáçÃq2l1\ç~&{º1!  ’¤"I2f8d¼Yß6|úGͬáä}`Wl]ªç›kîù‘uå?Õ¿ú?ê—8a‡–€( ´”@;—'zÒËo>Ju®DÝ«sÍ€ö’žp¦g4LXÍ $EÎòZ®Õpuøä¿?¼ö{æa6#À›3+j?Âî¹{êžÏk(ÏÔl‚TURv/n}Ï£„¦og¸‘áe€¡²¢RDµãLÏö =÷ñ×ñ¤ª^þ8âF: ×Çï8?dz ³Æ0IÖ‘È«Óïæõßá š- çk6ÜúyçdºkREC¤ˆHPÅ.í>™¦e f5É—xúúT—nçYE£šØª((¦Ó9…@B*©qÈPhA6¿+@H‚}Ô÷y~ð%§»g¹±Õˆš”©ÔÁ*|Ýñv¦) •¤ûÙ˜F·írvH]1£ $- má|<-Æ* ’k•݃¸È'ÔL V¨Ôƒp^ÁoUhg§‡N÷{u î´-µoöñ7úø]yªËoxò W?ry‡ùdEΡR©5&C’µC—§! I4dó6Ã[/õþk‘s0*±;@ò”¾f…v ùèI‘{ö ´Šæ”fÈpB*óƒîi¤°ÕäŠ/‚I%e!Ñ>§Ð$ÒÐpŸòLŠ„÷Gˆ$JÕ™í”NxLŸ¸j8«Ð)3„0œè }I6½ÍÓ%9e°1„󉽯uR¤@." !ÙŽÒØ2ã—Í ³=Ù3ÌÍ—2ãglÝÉæ²84CL”‘s0ÑWykçÑŠ"*ªàPQT-E£Q´TÅÇ ­IÏJ"ø˜öCOñ!'(IQÛUHZAKK°• M0•”*¢v!©dßìp6ìðHg¶3’4  $zÕ J"…¡çºMÀWõÖ¶"©Ë¹‹ÎöÀ…ª“ ÊŠ6,543 æ\$#@¶j¶óÎðC©¯¯X‹2€È6BpÿêÔ®W÷—¶õiB*Ïõ~!Ù‘J€³Çý»?‡’Òv'ÐYç­þ°”Æv7ÐÞa -¸3­°¿ç8êRÊ bo×× —è¶:ôE#©œR‹TeW ¦Ä}­+ž?¹äÄæÎÝîLEÈÆ›å„„­è%¿2q'¯UvF !àÞÉUHq ç篯1»h–áR(Bö-ŽØ’Hìv'°{ÿ…0HÜìy'¿)ƒâ%˜µ÷Ïoª°"•ç¹Î ¦.¹ó íT.A’ ûç7åÅ÷IØ }îÛ>̯I]ò­ÛžÙ†úAÖ„K¡dÏä*R¤رÙFRvGA.F’ñÝzB÷o_=PÂÎÄlW½d¼ÌÞKpÆ&Ù2ZÃ¥ˆdÏöÕQžÝ$—­ûëˆàEàeÐö|`£c´ÝF#Qök_]I%˜@. A¡ÙF \ȶ™2§€&Û=ƒˆîc~S’J‘³Š„‹q§¸„A.CÜò¥Ê IR! ô.æ}ÿî“„, !’ @.‚Ô˜Tv‡fÛ¢w-_ $\¸«¡÷ë>IP’¤bˆ! äB$°¤’°+Q¡!œ‹RTABHÎq¤ ýª£·R2TR&&Ûs@ø Æ£½uÈdHR$Án7±UAzï∀*˜‘ŒR$é„$&$õ~¿94‹Ël ‚a BIbBž* $)¥OTÈåKdÈ@JBhóÌR¢5Š+/Ÿ@U±B’ d0!1€ýÔP£Q»izª˜d¿ô5§jÞ@ TBž¢.VGÈpTBv¡çó| »d­šL`ý6)ŠÅÖyÕPÅ}‰û'‘H%A §p4Š1ÊóöH¼¨·<Ib†$!hÌæX"&hè²q©Ó³G“¨/çúUe-WJ!g ‚PŒ‰¨ŠN<_² ¦RÖ£Ýô‚Ѩs3áDOjÈ‹*EPþkg3@bb¯…‡¶¢˜6¨IÇ9¸ °[ÀoÇùÀJ8?l‰ÆY'íµÞ§|Ä©$š2P hÙ*46- §MÝž U¡Cg4•à¹*¸­­î–âª/Õ¾º$€$ÖJël/·î¿Š$¤’€ È(ʘBI ìVÓû©ê{rN’d¡/8i‹`lœíAñ`½Äl¢‘¸Å(£¸Ô(ñ"h¢t©½ç$ì‹¶Dj·N8‡Þš\ CR®OŠçÇ Â.Ä­^– ”! ìé½ù瘵 %FÛId7 ô[¶Ãn“ShDA÷j?g !+ÈÓ°á¡5Fu lPU›k§@2HAI²ådW…&d+fÙˆ ûvî ÅŒáü+À8?uÎf ᜦH™`w·’… ëv>`•=¹â%¯gº¹$'¤¨/NÉ”[íž[¢Ïvè Ð ! ±*UĜኧ\ÙJ’Bà‚Ñ @›Ô)›‹¨u·/›ªjxÄ8 ãHLÌ ¤ {>9^>bžçÍмÚ+¦iyrÒjABb¶¥ž“Œãb10 ·îlPUã8,†ª$$&\˜;n% ‹ƒGÿÕ8.jPUûpþ‰” ¥x.­§ó%ÖÍ&)S&$sqÏît¬VSAsNŸ­Ú‘œ[Ø¿ó¯ɪ 18AC6íð:‚# õÐr rÎÁ@–Ñf †Ú2ÚJ¨@Xöð¼:PƒßÝ4¬Q/òˈ°‹¾’r—¨s#(Êžê+Ry¾ÔZÉ’œ¯a€ÀvÅ5ì8³boõIûÜh%"±"ÁBú<{€p}MJâN ¨û:¿fLÈÎlÝ{©&š„H¨Ô¦.ˆÀž¶W¦Ô˜˜)èe öP_%Ÿ'-PeJ¢"H?U Ñ` j+Å]£ô^ί&ä9C$xÁÜk$FC—3!°Óh/É^êk¢ñy‚ ¸Önæç×x¹Ñ¶î§?œ‘TbRÙJU˜“¾ð—ëÂHÿÆÒS¡í™ž˜§ô5‹„ÄË”p"U{U‡ @Vp T¶“qK·½¶Ã3Ní’HrÉÊÊn¼ª{™°Š<‹’ T[gœ ?¨û'WWptGéçüÂÁõž®6;`…Ë;û'×I±+ц&ÙI_/B0hDÙ°€°3:í­„ ½] Âö(h§]ç×Ýð’•i^ͯ!l'¶AmwèZ½\%êd/ïãQ|Þ ìteF"4i{û~Î.¼Z¿¦Æ]Ͼ±Ž›-Ý©ò “ví®Tœö²þ0aW¢l%€ìBB @žóº%î«ÞÔ·’A±Ý tÚÞ-xiØÛ{‘ÂŽý`âU§s/ïã8¥.¿ÿZÛs‘.@¨]v‹/…ÓžæK˜lw¦µ}®´B€öB@¼(ûi‡$—<̳•ËÔ à„<’}µÃ.kºŸmom jëh+—¢;ìé=+—ºº!Ø Û‘Ë]ÃX#;"$ô îe1ÃÎ^®ll#—ó*>ü|Iq¤žc|8à>LJ/¶Â÷mÆKv>i«Ï;><ïe\ÂK]j, ÎØÏû£Dv!Ù … 3Ù¿óê©UÛ f+˜Ë ÙK¢ {—ÀKŠ[ ^‚Nžó¬ª$вwq õÒ–*;»Ù»w[>%µã`ÝíÚá1©Äl²½ÆGmïvwªp¾Ìþ«»µìeHÂæ4;bc“皪ÂVÝ“=\父F㎀`ûüJK·¢q+ÀåŽ^P•}»‡’\ªÈ„ÝžW€†²Ùù7¼ÄH.UµÂì´´¯û¯I*¹Dð·úMJ.ÙR‹ ŽÄ\@Å^ž=ìWŠ`bÐ ­Ø³}ñüŠ”¢¸+³¶O³¡Á˜ •DbGyf*Úv’ìß½ 0Û3H%ið¼½x¶‘.w®ÙäÖ‚Æd4D B³áÏgm©I¨vßÎIº"‰J†dÙz‡$°ƒÎ%ØÖ'¬‡4¤F2¡R‘@ŠPëÑ¢ÑÀ¾Ô!ØèšJ<ù°0Ûî¦jv øË %Q©ññP)(\›E”€­ØKÛ3õåô‡Õuà) ZU©‘Œ¦’29ÿ$¤œqÞjcM¸^ÐaÖ¤’15Ál–KTÎP@m§g0Ä/\¢»u½}6&C„T€ħ‰¶ ʶk*y..5ATȆ$P¤Ån€*R¶´ f°û¯„SaHURiÂyw,˜ÂÅÙ›$C.AÅ>¯ ì†Nk”‚Ú¨0ÖÁo&¤[f™ã¬*°ëÈ`‰l(ÀS€Ä"¨ØÏ­ KPísõP•dA"¨ ›áÇV4HËŒsœ¤ÃÞåKÔãÅ~*$^PFD$ŠvO@r±KÈ% »B… #ˆBãlÏ(Éæ7ŒÂÅ! lmhÁ‹ Dü ­sÓ0PqÕ=ÌobÅZcØÐ×¢($ä¥éyûú5ËßfW*.wÞX­œÒÉ9)QeÀ ±èS7//Ûþk6¡ øÔ^l„nÖö^êü¼ëzKB؉À Ëÿˆ&ñ yjŸä%ÞÕÆ ‚raÂJGãŒmo­yÁŠ­CU1ÑH4ûYGr~¸' D¢´6.ãüAâ—‘‹Ág šD}Ùë†x~¸GHZ5´Î"[©®g<ߊ$ª¼;üâõÎÕW%E›­d àΚçŒî6 ÈnÐ%/P_ó Yd+DÅŽÒS`§S7•]¨Í œ<ϥ'ôÃ~!NH8à „‹DwªÊ´’í½.A²¯u¹vÏ]¶›X 0lEÝi/BÙî}•kÂ%·çš% SäÜ’/¡ˆ8ñâ(_ Š;D—‚BH¢…i¢‘ˆö·tgBòªÿQÑW/s‘ÙÚð¢ô{,;!ø‘º¢®ò\’­#Ö@%£©j—:‹ˆ$e IŠŒdLÆŒ×p?ó›@àɃ!«d#-쀾aŒÝNàûȰ|çÿ:þÊ_óä]æ»N÷éœÀ¨BÄ„$f †Ô¢·‡kŸßËýˆc0IÖ&Œ'õä¹Ö?MœÃÉÁ’ó¨AhœÍ²ÆjU'ïþã£/ÿD¿ít×å]ç£îel$XE¨T€TjL]¥íï­Å턼 F^ £(ˆ¬ Ð:bpÖ–m¤.¶’mµlzzÆíª“oþÂÑ—Ìã¯9ÝñäNÏÇô ¶š(ÄÑXVH‘ErPÃare¼ýÛH©û·ŸÀzZ21µjŒ¦L±qÚTLlt@wïî7¡­(bÛKûDPµÕT¼÷Ï~ý¸|¯OÞëù!}¬34t·´b Ä@†Ô"Ãã5ê`¸ù›ëð3€*ìÝ:G€H%ŪUB²q…h¹z†áñëÔf8¨ªËÞNJ ´u• TÜýÇ¿ö?Í¿ât§§»ÌGôI;c§<)P„©d ©«5ÞÈxmñÚoÆ›h’ÀÞÙád¬Zt†Î˜ZÐ@šARÔ@-ÎÒ)§{¿úð—ÿÛéþ¯0Ýïå]§‡Ì'2Cc7ÐDÀŠá€á°Æ›‡›ß}åó‚Å-{†øâyqÈp*Ôñf‰u SÙ¦P+rª 7NÛp˜M%  ^*!T QQè™ùž0ßûµ¿ôßô#Meîé¾ó½” E…¢˜‰¤R©ƒ•¦Þd¼>Üø®«_ø³ÃÕOvÏIñByQHjÌâµê‡CúHgíRj*«Ï.§ª|3‹›ëøðEÇIS[ì0€2gå4aæ_½÷ÏþëùÁ¯§†•/ÏÌ/ˆŠ¢ŠR8êé÷òQ®Çá·ÿ¹áÚg»;)`_å µ¸5¾þû»Øsˆ¶ E I¬ÚÅíÔ"yº¦z©à!6NôòÑlúðKq¾û‹dÁ<ë¤3N "!„’ ©ƒ ‡YÜb¼1^{ãð;þÓñúv“ $¼PÆ$läÒÏçä¼N’¨µ¸Q·þ¨&6'N”ÄMB’¬jU©O½Wš'@ 4Uj©¡]&ãÃ_ùïq‚ØG0«ÚÁ¨± ZÄ„$ Ô•Œ§BÍxc8üÜáÿ“ñúº;I%B’ó?‡g?í"Hr©ÄÎò…RéÐCM¡q®ôº ÕÁpöÐÁ*6?‹îVYá¤<°hDKaî~HOºÔe÷ s!Ø”X u¥©WÏÌo~æÊv¼ù]v?»žÞS¿ X_Uµ¹û¶ù\jU’¨ÏêýZûwš\„µ™Än ÚŽTÚvÐ!XF  álN=Ìâ&‹›¹ú©«ŸÿÓ‹×¾×nŸÆÞίIÔ$»Øù$ï›ÖtŽë.lĨÆt“œ=Xb¤…tHL*CÎ¥Å,nW>yås?rðúïÐ-Bݯ¸?PU[cFëŸn u[A:v ;…X I'I±yüG‘Z{¿õX¨Ÿ¸ú¹?vð±ß«BÎÌ>æݽ–Ðî߃Íÿ÷yÜÝ–²~VT  ©¬„Z§B½™ƒ×ëàW>óCÿˆ øáãÅëkwÏõ{0är˜SHL•"žôV‹Ç±‘ÅkY¼~õ3øà߯BŸ;˜WúšäRSòvMÍèåQDDΈ )2RWj¼žƒÛYܾòÉ8øÄTHw¾x4ÿ*Š¢hšNH% †+Œ×o×xû‘š^ùô&…TŠ|x)^:äò „ˆB¨„ ãj©z­Æ[YÜ\|ü÷_ýì%šÄåÃJñÒ‘„ËbˆH(S0¤Æ ¯ÕâV7ßö}V5dD’2‰’ì‘\_<5þ+i*ë-Õd8ÓÔU¤ðúâµß}øÆŸªa¡Mò‚"À¯äj.©©èZ¨ •º²Šé¿–áúâöï¼úí¶ÆÃõÁ5 nF^>"»À€ $ ®ðXSÇÛÿæÕ/þh-ntÏU òQ |‰T7m ×/ØmÓ˜@’‘ººêé>ùxë·~ñÏ ¯Ñ3)W~(^"Ô$•Á„Usó,l…°B(*PÉÀ©£tX«Ý·ÅßrõÛÿãºò±^ å#Eå¥ÃZ$ÃY«TR$EhB§¤(BžäsWkXy¿ãÍñQFËwü¹ñðSv'• õr)+*I2ž53’!¤ •;;kG);J·3Þªßyøí?:~nÓQâ£Fù§»Ÿº«µjÁp¸jWSW¨rP+wÊ@B¥ O‚œ õV†›Ãõ/¾ñg†ë_ôI·¾^Å×›}y2ž:´«v³ÆëŒ×r*ãƒÔ¢j„‚!u|¸Âiðá6ã­ºöÆÕ7þô£äzæIÏùhòò諚æÚw ¯ý¾áð³uåuðz·OŶ¸Åp½ê0uå,®êà±÷»úépøÆáþôâÖ÷гäÓÑâ+}…$ Wnûþñÿbñ™ÿp¼ý»†kßñÈ­n§2~m¥Ä×3®ÔôF¼ö¨W?ó(ö»¸õ[í&µÖÔ.õÿ·s«mA–fv%“ÄN*«¶ãÐPJHo¹8SzÊ!„ö–<€És‡zìÙi ÖvÕÅbQO…Ëáû—E_~fv<ó¯ÝÓö5£]ñؾ¾9×ãs¼0£+Ù?“ÞD²0/S[ˆ2ÿ ¥7ʧ_²b¾1 ¯›7Ó´nbÉŸÚȈóE9¼µïfz§å¥î|;ÜË9Nó±xGËøÚóªÖ4ØçÒW€y½¿¶¤]ßÒzWýrÙ@†Ÿ«ƒ™[~wOߪåcúü#ÕÜŸl9ÆÓµÙØ%‡>bÓ³¥mÙáDM¾î§¦ªýóöÒÝËäÆN¾fåE¸º÷·)‡<ÜÅ„œFHŠ˜zIž5Y™lß>êÞi’hhe´ÌS‚~Sëˆ oT5¬¢5Öfþ£’X­õ¯V«&L»ó×FÈØ¹öñìÖN—æ_UæÓ-Cætqäù7ñ&ò2VÁwè¢ÄûWîçl>o{Zu5yxûóv ë‡ù+ÐG|0@&}D ^xâˆWâèK} u¯Ä+àG|0€®€® î¥êa ÎWtttt~¿>|0À\ÈÃ@= è ¿*òðãÆìSIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-custom.png0000644000076500000240000001415612536324511021714 0ustar philstaff00000000000000‰PNG  IHDRÄvÆ«B5IDATxÚí]{וÍ_’D‘–lÉÑ:Šã¸$¶7qâµÙxw]'^‰['ÇÞÄû}ÞõƦH‰´š©.«ËVï…X@$Ø @’èuÚž÷ÞÌ`0€ $éQþ`h@ƒ™óÎ=÷¾[¾%ÑY–ìÇô’ñ é¸”ÿSxdM/­ÔAÓ•©ºƒú ZÌAÓ«Å~‹ýOQã#û1½dú·–Î'šíu€ÑVÛšmöûš÷9Ÿº9öI0:$¢¨!‰ƒ‰ƒIÎ÷ÿEÀHS®àWG\?‡] C@Ò6{]“ã/;»<ü'¬‹’(‹ùNÓ½èÍéúºP!ùãÝçßÞÕñ0 ÓHìÚ*<ÂÆÁÒéÿÍhèª$ ,@ Ç™¸¿w5“ÕgBÊŠÉNß—ºŸ¸†9£v „´üt¸ç¹®ÀþŒ§ßJ2ˆGÀï]3gú (ü"Ó‰ó ¤öïn'B»Hj´ÕB-íé|ìêèG¡ä°FûÃSPîi0å½›  ’ ¤ÓÉnÿ¡CÝÏ"z´ mxþìh{èDßKÃ3oID •„8˜ª[3™DSH@ÄO 2xað=!­‚ãTÁ_³yÙi £\è’ç3ñ eÞ§ fMl[VîžG(®>ñüm«·¶®Ùn_Ò)÷/=‘VEV…¹)Ï„ƒ‰ p5 IL›¨$SqÛÄ6øù4YSߺªºl_v>~{âïÉìLž]+«<âfîî1sx2;?øûím'1$Ò*ŠlÛø•ë_‚ç)äré%¦3äÌ4f2‰ ËkX­f.÷ª¬LFÛOº_¦ÑȺzMkïjÿÎ¥¡?MÇF¡¢QóÏ_€™3Ù“b’£Íy’RÙð…¡ßïéü> #!YÛìØ°¯ëéoK:†ù#ª\Ûµ]|ÊÛ½fæ âÀЛÓ…;Õ þXøÆ®CÔùÇfíKž¨„$j»le EÞ³`Òüeì7)ñÔL8áR-që« LúqàÉ86ÚëüáÕ‘ã?ÝŒËJV»lL àêQI¥½þS_÷ÿ®3žK¢E̯Z™ÉøV]þý݃¢”a»l²špbýYLs“žyŸl6ë uÀËÁ玶MXºã!;àeÌÕ©úÞœ<”9—pRÔeã|îÜx×әԵѿîîxþrƒ}-ö:͆¬ԪZÊ,åM_ì eùÓÀ¤2½¨ŒLß„˜àå|Ѷ qàHÂ_˜•ZÝi»…ºÌ¸¹‹Á”sâ°¿¯üuWÇfÄóÀëöN¦#lóŠ^¦¹‚I¢Œžøíí±Ï¦££°qºBâ½\€Ï74 Y!’ôá‘ðŠùË÷JÝg¦GÀÕÛO68óRR93qfšßF¯e@¼X¦üÊÇ™ŠS…€©Œ*Lr‘^6L<e~šÉd•Ù¦›å¾4×L•–—¿ìFÆLË¡™L[‰ø“ÊÄá/ˆ¢XØà†3S2“‰uŒuf%hi©Í¤Ä’3×G?îš<(dE -kkè€úŽá©kJIÁTæÐC…ÛT*¡Ž»Õ·×Ç>fÝKukÈÁT™`bÒ›ÜĨ-Ôi©èàdß˱ätiW3§½D •„ði÷kL*‘ zºÿ׉ì”ú ³õ¨äfneÍëŽç­Ÿ£ä•Ù8ÜDûÄvY³qs2s‹“^‰k÷4ìlˆ¨6*•ÐHi2ÚÁ Ü\’¸9˜VZ3±æŽG\ÿ¼Õ-Úëöu=å ;õZƒ¹ä¥,J€3wѵïs>Í -ŠqaêðíÖE7S%ƒI£%rÑN ‰¼´%ß4w8?ð.Ê_±Vèo•LFîÜà›àÆ­š;;ø&éã&·ÄÁTQ`bGТèDß‹À|¤?pNUÎL à4ùÿÞ=u^íĵ êû@×3þX§1ªÄ“ã*Y€“¾jTŠôMÇ}dá%ô¥á%É$½ËgÊ_ÄÄÊÆ2þ½/ îÎà ’ló6£JÔýS-i©îPÏ?‘V¸¢R*å`âE˜%ÌSoð(âZ Úv൑¿ YÙ2TÊÍ\u ðåw¡¥œ+WF> JbãÐÍnpê²q;pa¸á`ºKÀ43§Û¸x&€zjãH¶ "àá¸W’”Ò¹¹™ãš)ï,YÔ{<|»¥óq²G’àÖ_þ=í ËN8˜8˜J‰1S—Ú½“´ÎÖ4þíö1•çq0UÎA¹H/šJÓ±IPÀ†XåÚç!‡e¬’ƒiš}jl¥ÊæÞ!+ìÍ‘aRú›7ȼ%š½„á¸3± cË_.À+æ ­‚“é\ Œ/ÈÀÂ!Ø+åÍI4³3ÅÍæ-o³Õ¡À ¥Ä:R“¡ËÁT®ƒÆçMÛ<çð4a@-i³[djè²zsZ¸rƒr ¾ë 3Õ]üC6ÃÚ/IÜÌUÈA¶QËd r’ÜoÐ,9×F>ÆTHI4鯈f"` Æ{÷:Ÿd¥ß¨Ð»:ü‘®\,n8˜Ê}Ü/Œ{ÄýB#äæïìxèúè'RáYgî,¹fbû»¾XG‹ó´8ŽÄ¾o}ÊfnTNëæ‚ÙÑ¥æ=V»™+þ•‰&éŸ:EfZ ¼L:ˆ¬ÆX‹#®çÆB·ŒýLVR3ùãΖÎ`z ÓÑOÄ,uå¹BÀdù¶’Uïý»L¦3§ÅøäË:ýûÈc;EÒóíëÑx­Ý³;K»B®°gIßS 7º LõˆXÚï»2üQP 'Á¯˜r¤ý™¨…6®Ý»L–_ŠÞ¬í¬Ã‹qÙ6iœ„PúO@ƒ ¦o¥%Ó¬šIUs’2FÝ7«EÁ#¦ K…[vͤ¿ ’íCüi‘ ]ÔìÊkŸ`Ä#lW(6qyøÏH5#y‹—M Q`„ŸÊ\EæÒ.·Ç\48Öûï,ùÞºxa°.ã­¹·ð*/˜ô¼Ön'ƒbâñðÁॱ™V”ÒD+‘†U¥é…U&Ó=I,‰„F§ïë}ŽË&±Ò] CŽO¹§N™îÑJFÀ5‡SÊd²‡ÞW³uíµÐwxwYŠw&ŒÒB¬êÌ7ýoàİ: ÿfà·ÃS׳²jIÐ¥`ÐoÕÉôã¾ð2éL§wúLÀ¢Á×®gã²Û<Ôý³±Ð5C¬ŠÉg"‹[P;hc8µåŠÓßbju²tš© µTÔÛ÷¦²¡¾àq4ˆEí–#–&®)’@òСØö†»aHÔNoJ®Xg©V²<2ž§È†6 Êttâ5¸¬ %+­ ñåêô¥Â¹~+™ÏDB¸ônZ‘NšA½bÙù´,`’ Fhíçr ‘A€Jâ]íSÕA(`iâôÈ#mñ‰õºßùôÍÑO7 %H F,–ó•&£Ð&ç/*étÊå;v¤g º†Ð^«ÙMA1ã¹w¦b#…hV8ŸI6ö}åx2|Êý+félµ¸…}S'ð.¦½Þr™¹|µ(ê OqWëD=¶wÅ€EÙh«#’“xkAò 6bˆ°l5RmtÿäÖØßƒ‘ RTK±]‘Û·F¤cˆ/Ü{að=BHŽõÌ´Q‘&~´u|+­ï0»%©ÒÒvÉ¥•Nï^TÌ5¨í2î?âÚ‚»:ž–¶[ˆcƒŸŸGEFÃ3—/ ÿaAætÐìZ²(I"C-®,Ú~åúŹw÷v= N"j”BªBŠ*‰goŽ~ŠvÄØ ¢ò\Ò§÷•jÿº¢t¥Ãv-œðµyvìþ ¾+¢øj÷ü û't[B4ÞŽyE–ÖÌ xÅ=G]ÿªv>rr†Lèî£v° çÈÅg;YÆ©%u˜lîÝ>ÁfN§o: ï!Âè*Œj(A®Á5ŒÐ›õ¤ûWðH,Ȧ%oÈyyèƒçãà$fþ¶æ µrõÊð‡cÓwÒ©$©†5æ“*Ëö©9$8)Þô´Ó»ÿ˜ëyT‘Ùß¶¶H°¤AQçßóGܬk ÑºU\Ú®~ìÄ ŠË…—ø>Ìqø‚4øú¦mh.(•#R©¹a c¿AÖ]‚$”Édf’C=ƒçßÞßõ#jÑî2¨Ò\­"ñ'sºÿ5Ü´aìHºDàÇaRöùÁwY¯1Rç kôìÀ›.ÿqŒÏfñ)£=]!‹¦^lzš‡‘‰öøŽ¢ð•^FÆ« „ô²Sé¤\dFjeeZ•1LÕÀvmËJzë"¼q´÷ù‘Ð%)§Ä%Ú…v“Ê7ÙZ¨Adè‘qÃõHˆàÊ4±dÈjïô¶ÈS WÐ Ý×H©€h$ÎÚ:|(ŒLÞðÌEÒ«N§O¶ÕIq)S¡:4uåìÀ[dR¶:Ji«¥Ù¥íjß|Ôõ¼Ã³ÍïFΖq62Û ÈE!–L*„dƒ¿)+Ñ´í¯¡S1õ®ªMoe6ý~„¶áÊ£C´U·h,ëXpRå2)'„¡Ä3DtÀI*žlk±Ðáè]~$t9#ÄMíPT—N…%×JdAj‚\$’£E°?Òç|-¿}/ïu>¬`RR¯ £"\DÔZAz·zêñ¢# ì$)_jHt7JTR©Ä@ðâ¹ÁwnÖ¬$óûàIšÍŽØc?;ð;¸‡3ÉAIÊê­ÕwÒ€UVÒ0¤ñfÖ3“ѶÛãŸÂYƒBâ5ICÒE©ï•þÀY,lIõO­gVbÝœÑBáÔIÛ¸ôä×ý¯ƒŸXÈ•±. µ»óô¾5þ¿Óßã.üÂ=èl/ùt‰T$Ÿ Dû'fH“pL4_úãñÞA3pk› _¬FÇSE„ŠœOa†º+ðšÖ‘SÒ “fF­6­rKÍÜÆj¦ú}#e;#Rñ)÷CÂÃïƒaEÃP_Ì©sž¾çmŠÜÌwSV½Y$›Ö,n0®ÈërúZ °§N< ê©£JaôÐñÞº|‡âÉf×Äâh+±Ô©Xç¸xÆ2:*dß™ÊáZ†*¬¤¬ÀÅ8Ñ÷`‡6‰§Ü¯¡]øÉ¾WÁ+ûIÒÖã;1=¨m.n$uéIJB½m•†!•3Ày§Ü¿l›lÆÝÕ-‘îèIrÑzîÒHt ‹B ~äùí±ÏÐ'ÉÖ}CÎ+¤OûzTL ˜ŽÏ½9þ 6%¦ý!f›{}H!€ªD&8¾ÑêÙŠ‹vÔ(Yõ0¨Y­ÊaŽ;¼-‘DtÌvåâC‘+º<ÜO œ¾à1C¼§–¥=4Ð*M‚PB€Òh' í¿ºmôn!~“…ˆèã¼ÆµsCÇû^¸3ñ‘Û¸‘ùjFÒU~‰ýퟃÄY(>‰æÐàê-¤¤¨:‰äL#ÍMm@W!eñ”ûÕ«#éö@Ò©B'žÍ5R¯#Ê&›ÈLÁ@Í\hó6_z˜ÞÓñ}|_\@ͬ3c­Jö߃éo÷î Å<ƒQ~8£ÊÊË âe„‹k÷n£ }³j§lÔN¡Ÿ3][„¨ ߬ª§6¥ž¤N»gµÚmÛ/Ah˜?˜$¶—lô“åù¤¼™fdbf,ô@Ôü o¸£}r'¸“¢j¸J½©4‹C[ä ›©©ž¹ÀLÞ|ÌœšÖ€µªÆˆ"4L'"ŸE/Wk¾œˆY·Ã¬oÂ¥¸:úáÐô%L%l$Ñ‘p»6ë^P%–‡>å¶Zc_OàðÅá÷ ±Ôp-,jÂÖrQr¢"zÝ6Ǻ&"ƒ„¥ƒ59J"oßÿ<€¸!ù€’ZeQ(®–ùd^…´W£9üzš{£Œ‚Qb¨¹a°–– `ÁÁ@«;ÜV›H%4›ÁÔ‚ç‹k†ÌHÉ̼>‰`úÏN'Ù¨S-Æb¯ºðs«Læx¦¶L­hf" Ã·çÖøÿÀuÇŠGààpÏìcgÈ]ùºÿ‹Cÿ ÇÍáÙÑç?å uDâ>ôÃ'9ÀTÝê×®°ÞâÓèÌ›»Zq™¬5ÂÇZ˜¡.ÿ^²0\[à3-¼ 8XÞ$ ÒÎW€ÇEBçcàoâa´Ö°Íæ¢RáÿÌù¡w°}î'Â?að0ËN\sr51Sa¸–¬rY J ⇩l<– ÆRS‰Ìt<=Ì„áÙ‘9 »T4D)щFžò“$Ë&‹=]På‡y¸JL`Ll.ö°¨çYŒ„liš,ÊL²22s~ (66öVáxááf…Œ9|*ÉÅØ¨*WHsžnPšqÈ™â$æD¡¦$×M…þOÓ@ª¥‘,Ó·—»:E´â déÉSk+’p|$ôEzQ7ªTíOÌb0ÖuäCÔ9&v"P䋸 ‡²Yâàuº ˆj¼W6%µÝ=;J€©÷d•lŒ€WâXÕb¥ XÌ{"þ$…â!ùÌdg…,J" µ ŠÌlº¤nÍš6K¤ØVw³¯YGÑ›ü¦í*¶¢×2…T,ì <3—5dI¹Ï M°)³^½êîÏ4/3w÷aZ’Ö"ûIßÓ²ÜïnnC8+3ÝÝ+Jô…%–X>Y$ qfâåá÷d·]&&&&®™x&®™83qfâÌÄ™i¥÷æ8˜8˜8˜8˜8˜8˜¸çœ pÎLœ™æÁLÿ ÕDÆÇ$BIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-dash.png0000644000076500000240000002003512536324511021312 0ustar philstaff00000000000000‰PNG  IHDRÃvú°;äIDATxÚí] ›Åyö_²n #0>ÂáØNâØÆNLˆí8ð؉ã›ð81Á×Cl'–vu I$!¡ÐN`wö¾ïûž=fv®¾&oUÍôÖTU×t÷άÓË>Ëhv§«»ê«ï|¿·>â8Ž]ürè—üšý“aY–išý2é—ü‚ÿ'~ºŸu¯¬‚ÿ­0eáøü55W~+ $èŽËÞæDxÍ ó&_ÙkÞôWÖN~a áWÂ)¯,È{ßýøGòù¼û×yú%¿fÿä_°©g×ew#¿àÿÉfŸu¯¬‚ÿ­0eáøü55W~+ $èŽËÞæDxÍ ó&_ÙkÞôWÖN~a áWÂ)¯,È{ßýx$I‘$UH’"ëY·ÊX·H’"IŠü¤ÈºE~R$I‘$E’IR$I‘$E’IÒ‡< ÌTµc7wetVÁØM©Åne£ÂŠÄn²¤V)vs )IU$L‹{½V´¬$ÕIøb%¨$ÕI«‘¤@:)¨$¹ÁyPB’0Õî*$öOWE³ÏÒIl}J?ÿ|R ¤¨¬æpHYIrßgÍ' ùÑIìïƒæ“Ü|Jï„É'ñ"_V' û@¸²ÞO”gY$ŒÎO’·¬ü ²û¢÷“øçÕR?IžC¯ì†F'ñÆ:Ÿ$Z7yŒ²ÃkäTi;”[V/^J[£fäAøkz‰×@eÕŒü+/áðùq/5#ÿeYá(;uÂÅåäYRÎÿÙÈzÏKÙò®™»Õd9¶¦ìšÉ&ÉË` é=úgtÛ’¬peÙ«Ò¨÷5 ÙŽù Ç”iVÇË—ðR`îûò@ò•…yã%˜}6˜N’}À²:ÉÌõcüè$å@ZD>Ħ†>ª©4I‚eÑ ¤Ñ']©“\‡ÒË«Õ? ?»Š$Ä7~t’<|eaÞÜ›q?@’Ç¿$É:I/I^IÓá:}ZÌ ÷ǯf³ºqLÁëT.¶&¤/+I²°*¯ì• ñ/I^~§×@¡%Ék ½oX’¼œM½uóÊ•ùÑI²Wë>~!œq¬<ýMÚˆ·L9ÓõÔ‰ö/Îݲ¼aæüë$¥ûìeÝ4ÉLMÊ@ãÕjB/']£“ÊMúõ)7¹0ÐT’V.kZ™¾øÅóÝß9ÔôÉý ÷ïoÜùfÏ÷RéQJ¦©´‘$E’$ÉØåþŸ¾ÜüÙ} «mÙ]·aOlÛËÍŸi›:eÈÜ‚·IR%)\ìÔãVæ5±›—ûÂ;I]sgOu|mã'öĶî®ß€ïÚØÖ½ ÷my´ntw.—óz"eìÎOò»yÁýùIÊJ$†ó“üÇn¢Ç½>%I€àÿØà 7_mûë} ÷AÕÖo†Z:Ôôð…žgzf.¥3)Ã0yëIÒ‡T’ô:© LŽ}{ø7›‚ot°éÁ7º¾Ù9ózÖLÚfÞ4Ä´G$IU—¤õæ'ñkÏ?¶T °hØ?r¡çé3]O6NîOæ¦é_ Ÿd˜–&ùI?IºQ‹]Œj Å–Å3L$æR=… —S’ ä•A¤“>,ÖM´A–i9–+bp7 —¡ç7\!Çm;žØ©H’þü%Iú•/ËÈO%ÚÇõL>xp…T²µ„Òtˆº[$I ?I‰q_ðwlYÓp2™lóøQùg»¿OõQ²¼ü·l"àCÖ&Ç­âUÃOÒCP¼ "ü$¯Â‹rÞÂûI®õQVþUp…×®EËY:æãWûž;ØøÀ¾†û”]é‰l?à5¾—Ý­W~½/øõt’Û)TXù/þI…üë$~ /Äoå…¨àºW–u•r ÜÕè$¡‹7`ÑrFm8þþéÎ'‘`¬­'ùÆ=±íÈ4¶N¿ÂÂ~=xÍ5zä…Á¤“BWpƒê¤ÐÜp:É+£©àtRwP¤o$ ÿ!։ÇZ?··aGMýæ]u­©ß´7¶ýXË£±ñ}5Ÿ:É ©íSÒIpÜ«ÑIA;üë$‹ ºÌÂ7Éž˜P+:)\—’fóiöB‘P/rfòÝÑß¿Üüé½1ˆÑFš¶ÞÍ„,vÇÔÙ¬!$½Æªú¶, e•]J^ÚËëqBw)iõ%f4GJ“fˆ ¤sóöŠ¢"»»÷§ìRªLo o/5 2$ªxå•ãRvìJÿO6>1‚ í®ßˆð“PÕŸ\è Zûàþ²‚å×[Â÷8ð‹*»>¼ÓŽa‚Ÿ7ë³z† %J®(CÐAy#çÄ#ƒs·;¦ÎvΜœ¿6³ÜaZYKYùÞ%$*hG½9ס!«>½Üv®ûÛX!–Z48ÚG[«ß•Î.Ás‚.ç¬5áX¸~·@«ïw«v—’—6¥›s9µØ?síÆà/O¶åpó§4=x°ñÁÃMŸ:ÞöÅK}?„H•h@'_­~·Õ°Þ°D" Ý®Ÿìø* g°e#üÜßøqÿýñK,÷ˆü¤²m(b½ñÉz#7F>IwM_8G]{cÛ°á•bÓïÍ€åì§;¹qòµ¬^¾þø“V£“oŸ9ñJë_â¾ñ »(´Ûâ­ÞKu1i“wgÄŸ´þ$ m&Z.÷?{¨é¡= Û¢«~#"›]õà›ÖB’ê6a?ï®ÛõHË_ô̽éfòÖR±­ÂÉ[ŽÙ0±÷HË#ÿº~â5`Bn ½-ý3“ Ç욟dcÄ  äàö¶Iº=ü[ˆ"bø£¡Ýõ› O×µ–ïSƒ€½€Ò9Óù‰ì„Ûs±Ž&ØÝ ÍøÞè(Ðñ>ŠPÛˆ›>ÚòHl¼Æ´³ÅÀg¾1CN™D’äG’x .öØ|#ìÔ?5dD€Žµ¾$µ.$ …¶¼Ø÷o‡›?{­mFÈvªã‰á…Åz¾íë$tÉE’N'1µ„¼c<9òfïwo ¾0µØeåòðÁI@‡¼ ïŽmXé³Ýß®¥€æÚØ6D?‰ì8[õÃ}[ܦ—ÛÏt> ¯²ÿF×?N%[ŠúS‘QÕP·D·O›ŸFƒfæ“£ÙlÆŽdX }¦ë ½;úÒÞØ}0(Xk} Ä2ëÈãvS‘€§ïþg(§¹T·›Qu?b⪬u“ö4¡L1н7L¾]qi:v¸éa8¯«_iýÜØÒû÷L'yí-7ûL4S² ØY.1±(W1 = ©®ûRd|©îúà¼Õû½³]߸y<ó¥“*+I<¸B ò*š0{ëX'’¤ªæ“„¦A ¨yÓF“W2eÄá׿¬å{ÆìÎÀFªIbp²„ùØ«Íhi¿JyThMËáùLœJVK°‘ÒOr1í§6ª5Ÿ”HÊÊúI|×ï ×ù¡ñÂ`yaHV¶»ñ+ë'É××E„ nY²%yÜñ½òÎY-; Þº0?M§¦2¤þJrG‘OvÀUê$=zI?‚0œNòÉ‚±”ß„²îPÒ7†aÀ«Ó ™ „—=3/õýhr¡Ý1ó ¤&R–Ð'c©~ý4üÌòéu’×@>Ù•ìlzÀªæ‰ü°†`,åçG‰O¢c÷"•dtƒüÉDókí_BºèTÇ×'–\ ‰†‰U°:ÊÔ@Äè“PI©¸Öì€LŒ–sÓhA e@DÐ ;ºx—Zn3/@v@Y«Gì€AÙ½®\v@D¾-Û¸1ô_`x#ÈÓ‰ö¿¿“¤¬7át’ÌœT¶K)œN ÊZ'e §“d@Øó^t{|oI0þ$ ; k×Z§w‡R3 øy¸ùáØÄ§Ø[Yv@¥º·äCÎÈP‘D<Ý­ÄùAÍW¸s’©¸Ñ¥÷PÕg44À$€ÙèúàÏaþÊrºyu)yÑ$D :ëFÞ%èÈ¡ø­ÖÉWg–rY“P¾˜Ïýº ø™ÌNÁ=Úß°è;|£ddH þ““ÊŸT¶%ÙK'EÝÜA»¹Ù (¡«ýÏÓ~žëÏÎÝLg“îµ+Ì ÛV¬Á¿îŽü®è\ €åcKuHʉ$ió5šYîd&…†J;Aݹ¸< {'¿T†Àõæ80qæ¯m~dÁt~´Àô8ýê c+³Õ‘u[7Ö,bÓäÁ¯¡hnî ÿÕ‡OëÔO*¸ëyÇ.nšDvò®§¦í&v€×Þü‚8·.[ îÛH’*"IÌ…ÅOÀçá0|7 tÁPü.iˆ£~·Ð¦RQI*TõɅéÓ#ƒ‘¿Þùw é!Ž]ÄŽ$i}JŸL¦ Û‡É"Ò&Ÿ ÝÏ,ƒ‰Ú°A~…ußðêæ!ƒB'?ì û4£µå<³k†$’¤u'I| ’7{¿-À¸_4=Ð6yж>ç—¨b±[A'}8`~Q\Û_°k›`eo =»f;à¾<î5ð¸‹nî´úÔÒh¨4'--Ï0j|áþ+æq$‘ÂpÝsçÀ AïvmNz˜O÷ v-ÒIëÖº’µüVï¿0…D³€;Ç[¥ ©òŒ¥I¤‚@ݹî*ªÄ-èǃóïÚµH'­ÄB¶Î™Ó(K ’ù'  ç„üWX'qMŒ HÉwÌœ„W´‡òeAž Uic^OöãŨ¯U£ZâE.ºZâS'U¯Z"³ê§ÎUH)cí=¬…µ–*¤Øè~´. IÃ&3é )„ê×~N c;Ð ×ËzÈU É‹PƒíòCq±†crHà_d!ÛÞ†í𗧨B2”Ý•d,r~ÓÉ–›C/¼Òúø¡æO^ìû¼o¡S³,;`Ù n?)\7œŸ¢‚ÎOª,; +F³Ë]€‘AÀ®ÁÙE¹½}ò´p YuÙYhÆØøGæß¿9ô«þø5ˆÄèŠõ ª“‚²zQë•ÕI!:Âé¤üIš©£t€v6—ûÌ‚nFÍuÉ-þÄ; 0«¡:'mÇeÍ&}œÙ;æQß· d, ^³½£¨ ; W ¨†PIrê¼”Ð',Î?; | (ž–ñW÷Ml+u´·‚vdñ].¨¸rµØ‹ÝÁ9eø ³Ü…ÓI²w¥tªVÉÈä“0´N ÊT')ÙùnnlþéÅnüi”Dþû?vkè·p[XíDÉ _]v@~FªF $Ê¿$ùɹGì€eÙyºü?™ž¿Üÿ3¸ˆ]#µ‘í ù@ä_¨³;vY‹\av@9‡¡ì.U¦RüKRÔƒ[©ÜÂД«äíÞïƒv¡ÜŽØ­}ò Jܼ¦°ò ÂÆ’‹2^L\Aý¤ˆa¢"¬7W ÈmP ¹1ø+$qà*]ëÿy&“ÓK*y‘›_ï'…äO’©€ýðqG’´N$ÉUQ„öư¯mŸ:d<1L©K FK^’Z7‹‚×L³”0%÷mdÝÖžûV&w›F}Ò”êÜB¢0Ö-P7wQ>Iû[+Ç‘$­I’ Eé@„â/`¬$1Ú,°G]³o Íßš^ì¡âl(!‘$­ćÕRN«®®$9”íÄÙ®oÁMC•íDû—ÞýæLqB"IZ’„¢Kc(«÷ú¦¿*Æn¬Ln/ð¢LC{î¿=ô; ÆùR_äq¯›9CXœ\Žüt—I)L¥ÕŒÝ@ÄŽ×=s4²“ P¦i?FãH½k»Q#IZ[I*€ë cŒ‘˜½qgøw‰å¸ÅÕe]ažqµ’äÏO¢D–ÓÇЉ£v× m÷ôÛè1 CiÎ"ëvO¬[ñM„õùÁÙ;¯¶ýc.öþhqy† “áq,ŽYëæÏO"ËÓ0±ª¨¦ž±Ç?y'7ì£{¼"ÕeWqÂKXI QÁ]%; ÿ ®OIâO¨FbDOؾ¯ñþK}?^HŽS3g ¤Êªjµ$_7þ§½ÀÚ⨔Ø&8Ý#ñz¸O ÷Ôi@^þ+¸!¬[I ͸š n vÀ²WvÙ;‰-Ü~­íoö‘SÈ7°$ÇZëœ>Cs7†e{B¿ƒJRI×_Ž›8¤}1Ó¬‰mF÷8¬:ëdëæEˆYÖOrÝÖM¦¸ÓøI^•¥Dâóþeý$”P(0(ÙâøƒÎúâooý"µìèNRYk|àÎЋéLÊ ÜŸJø9??IÁèÛOÊúŽ­ßD¬ÛÜ ½NÒ0b,õ¢¸ó L5iÞráZ^´“zuR–04c©v@ ¹›L-š'53töްÙGM=¡ê> ýátg²iLŒUÚé‡oNÃߘ m­œc:ã‡(£Í&ÚÚö‰þøe²ÃlS(yACt¸š£)e1úÀ¬šy›irËÔô iÒ£o½€(e»”.Dzž—³ÈÿdÄž‰TüÎð‹8”­ F—½ãHógcµ´³ÞmáÅJúвì€2®°|G@á^ §sê,ô$µ°fãä~za Eœ²¥AFÌ„`T*06Û® QlrwßìÕþÙ볉~r¶‹a»ä»^…å@JR–.×?; æâ¶?¦á"l5‡ÇœXh½Ðý4¸x­xÐÙ£87¢˜´y#+º¥ªÂHæÝ"@»ñ…jYCûÿm¹:ðœÆÓ÷–TªKÉvVœÍéd+˜wN¶ÑÀí`%¬Ý Þšôbg›šN]J!ØÃu)ÙêS‘³dŸäœŽÉ7àA¡Ed=H.6Þamõ ¼¦„AÊdð^-švÀýnô'™¥åYt±»z‚üEÇ-)4”¶Ûê{K|J’œý+=QÀfj/&“·‡ƒh6q/9ï«~ 9ϵñþÓß@¿D*•¤]î+g¾©ÞDnéyH¢üBr•zœív¦A˜ Nt|yxáféÑBކõ¦l³¯ÆÆ0a2ôÎzgàyJŒÂX>Ñ:uÔë@B%e¬ÿnn!_­Ð¶rv¥!Îj9Þúy(v܃“îbçrR²Èîó|÷3ÝÓSéeÚ¤lÈí  I2)T 袞鋧;¾¹aÝôäyc[È>ÛõmX—¼J^”ŠHRÈn”﹂PÃíb;Ît=µœ›ñcÝ|vsûlÙT7È-à `*éYœ›Ø ñ{b[hî”09íbó[¿SŒÛ¾Ô÷“ñÅ&«ØXö’õÙÍ Í lÚÍÁßÀ‚Óͳ™g»8F®üb1I :Isçýrß–m¯X77u•Èü'S ù=ÅsRAxwä%žR>NRvSðlÀ’ª#Š:™›*•!ÂcGã&CÄœÁ“{»ç¯wü=ýí¶âD“~sdçúg¯!^LåÖ­Nb ©iâÐË-Ÿ¦1ÚjѶãl[k?’ÍäH󈙣'³¯W­…NòÙƒËÔ¬CëÄk8E•ž“úQì ¬h×ìiÚ$e;Ž­ñ“dÄ7•ìlº›bO»o5X4œÏz©K´>&ü¤»£/N%š³c19ƒþv@_˜Æ‚o‡¹FÅ€–íÏÊ„õ½•$åSH¿5Ÿ‡ÃŠ'¢§"oG÷ã¹îï Çßc¶›áhí¢(­$ùä`ÛL¥o÷þ€àHb D`-Í¥zä,@ÙØS’ìÚ@äˆcæ‰ ²LU`lÑ4îÅ#ähï!ó‘:ÙþÕ÷FÿÈŽ¯Ä û¡tŒ<Ø€ïÿþÕ¶/"ŠS8çnÙRIœÙ¼#¢z¬›³R2WIJGÝÓo!u„¤ hÐêFk©yRdMîÀ@|ܰn>ý$^-M.¶£Ÿ\Ø X!Žƒå„cÚJ¡ß¼ŸDå¦Dtrôm‡Xw#µTP"=ËX:Ȇ¼€ÒAŸ ’¹ç{þ¹yòðBfhåÜA»$ÑbæòS‹Ý ß|wä÷—ÇíŠâk‹‰,ΞÇeyxS´Ê‡òªÅj$I&+.°Í2½|Ɉ×Ü…ýŒgËw‡_‚–Å©í !FÏÈé]Ìu!Iü;9#‡ãÀ®žhÿ ä áå/e«ÈϑøXœå>n›JMÙÓ4dDRéäÜÒP±Ñ}€@à<è¶©S|7U<²x§þJÆ\àeHH7ä ù¤œ•Î$˜]“\~âUà C 7/õÿ(6Q3ž¨ Ÿ.Ö^r JÍx×g,¦k‹Ï’§úÀ«Ìèºgç%Óq KOEÍ¢¼V·füIC 7ÀéÆà”úIäuÖL¤rsØî¦…ãÞÉÔârjÍV³‰±ù&àRZ&^½9økD鯵} œ'°ý{) âjÿsÙlލ3ÑØ¤te¥WdHÑ—]'vl¡eªÁ9ÈÍXŽ[¥¦öâñ =ϼ?ö¿Ã ·™ºç.æ ·ÂÔFaÚ5@eÍß…Æ‹ƒ¶{}èõxª·söÌ;CÏ# V?^Ãö§ò$Ö‰¯H8åµö“„é`ú†ÓÌ‚ŸD6 Š0@8›ß8Œqœ*V`‡™GdŽüâ/xĵ±Í4{¾‰´ÛNv<1ŸƒÀØŽ¢ê®ãŒçOc6–ÒÁ/åOB¨ãÌ-÷#'N}ØM$¢.<¨Ow>‰u·8’Ÿ)cŽ×díM»xdŒå¥Âi2:G3ìuí…eÌäN&Áct©ï‡6=„¨9°×;¾¾˜eõ(e•IÙe{/u’&.M¤£ò$Èn»5üë´k˜&u63ä.ÿšQ®°t"Kxâ·ð£µ>:0w˜6ÇÒ”¥ô쀂{!4ë§Éb‡u%µÏûÉõvÓŒK”3§Ž-8ǯü{ýønøûSÉ–ùô’þéLš¥i©˜(+ÙCb¦œzl$D·rcº ŽÁ;ƒÏckkyT ßFɨۂ>ö!‰Tl±?D¦ÜÒÈëÚº ¯yhŽü_` ŒËý?¡}#-+n(J̆â?7Òâ&ª“ȲAE¡jÝŽ"ÀÔb;Ó5áK}²RbŽ.€ê— X„c‰(¶¢$mVW¸C*U; « J±öàú€Æ‚W×9}Žè5«€ šðç’m“'ÆÞúïË}?{»ïûHçâ³hÑá¤g ÝQŽÛЬ/4" .W–‰+ôú©«°uøe䌶ÝdÍ¥7{¾ Eͦ&†9ÚÌ–„}ƒŽÑß¡æ‡qÈ ¶æµÿÄŒÍÝEÙ}$š+žU%v@×Qbfz>=Ð1sêÚÀs)X,'µ°ÌÅ@uQ¨ìA ­Ým3ˆ´]2]Šcå{g¯ gx€TéñÈØ0[Y~‹“vÙM…ZaÃÎ#-œíúfÝø.p®±PNhwÖ°ò°µ :ICC(³Ê…9ßMYe“ànyreà§àÄ<Õùµ“íOœjNÒh(\¼3ð»Ãhž8 ÈÌRïrz‘e³dÝÑkÀXü•Åk‹™ážøù›Ã¿Ä™GZ> qaË_C–3Žõ m øŒmÁ>AÐð–ìù2l`ö´ © PèÙŠ>®/˜r*@¤^ºÐótýDÍØÒ{à~åï§²ì€ä5PµØõ ]>|çŒÌrf>‘ž^ÎÄSYò5–É,cílš#°É7Í0K5ú¢Úì€ ò`Q( &àÐ#­5¯C„g:ŸB»’œ0{¡`¶2 Ð@ü:aF¤ÊC€[âýÉ¥–ãÄH Pcì'ì eãNŸìøÚ¥ÞÇÆöÍ7¤³ 6'Œj‘A+ΨÑIAqÜü›«b½ñÚ%ê×` ô¼´lâOç‹ÙǾ·ì€¥·m°l;)ùúè|=!™LIÔŽÊÈQõ&¢ð*Ȩq}‚ö»U†P`¹SQÉÉ·Ãõ»U›ÐK›| ýÀŒ/ Äœ¾¬ärnt šÒŠa¥& ãKï#Ü[H.¦&“©yd¨™èPSîд5m••x Áé¦dTº>€.D—RˆÞÇËÉ×¼QÕîÁ]N’xJÞ:W°b®˜®Ìë{KJ4±•gMgì Y–drÏšVÂ[Wßä5ur×C¸nîʰʱžü«Åóу+@„–â@–~7R’aµá‚@Ú–2s£„ºWŠPƒ«Lîjt’WëêŸ/€²:+MV–ÀE㻪‚¿ˆWû@9ݪª“VÃé@'ýùñðo†ëÁµ=ΔYÆÒªë¤H’Ö’a‚%¬ï ÷m$IWIä'EüIë€û6ò“"é¤H'}8uR$I‘$E’IR$I‘$EwäqGwäqG:©Š:éÿ+.‡ Èf™wIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-dashdot.png0000644000076500000240000001351112536324511022022 0ustar philstaff00000000000000‰PNG  IHDRÃvú°;IDATxÚí]‰{åî¿Tr@[Z »¥R(…înK·”²¥Û] íò´t9 ´Ké>l;vîÃ9qîÄ I'Nb[–|˶lY¶%[²%벎™ofßïû4ãÑh$Û‰dOÑãg$}‘æxç÷{÷WE!ÚCaÂmþrÞ÷MÆ—¦¿¦ ÓJãbË}«Ðbã2ýAò…ß|,.¼Ä¦•_HH*’TUÕW«ìQ¸Í_Îû¾iÃøÒô×´aZi\l¹oZl\¦?Lç½ð›ï‘Å…—Ø´R I I I I I i"I0nÁ¸…í&$l7¡Ý„v2IÈ$!“„L2IÈ$!“„L2IÈ$!“„L2Iø¸’„vÚMh·(“ôúλ“B& íVôw€ˆö>HHZ’tèðíéäàd¼‹½IJïƒ@’àIïã0â™I‡¿æDß‹ ž7’™Þ1ý–àI"`^­úfnœxuó‘ííq=ê ìfH’’’Ž$ qO:Ôµm‡csUëÚí[NôýdzÖc“@Ò=m»¡D‹³ò쥡7wµ?\ëØ´Ëùµ}?õÍ\çHºb¢%Æã‘ä,xs81zeèí½®oÕ8„£¨Öñ`]×¶Áé Æ`ˆ@Ò].¶Ð Ž»É2U^íö)÷K»œoo{àóÖûªZ×ÀWT×ùdÛøv0§;0Ç’,…@l[Ö]¾…öò àI$gŽ1¤H=Á£‡º¿ouuëýŸµ|µºuÝÇè8—ÿÀl*!ˤ„ªÎØùD-KÅÁÝ‹¿¸)0T¼¹½m^r«ygûÖs¿šÍ†õ¸¸Ä3Ô°Ù9y@;ž5Øoؽ®Çnøþ'%Ía$jKÊ…¤œ,«£áV$Ü·Àpƒ;ù@çwÎõÿû-ßß;®|¶s‡J¦¶õ¸(î©“¸"Ôij‰í¦oK$ãšØ~·ƒ™i4Iͱù@Çwœ]”iNº×OZO‚v“²¤Ù÷74`H‡»ž¾1òWXÇÉTŒÈ,¡¹sâ ”h®ÎŽöÍÞw[y&õXG4=v~à×8p#–ë¸õH÷3SgçÉ!Hº;$ñ5\,MÇGÀ"½‹8Á¾UYe>I"Y¬Z8éþÙv  û ´êû~Ìãž%BUËÀ¸¹ÙB Óöøõ±ž|3ÍŒ_ëĈ(¢r²Ü‹óò,$9œð¥ÓIÍÃ">¥^Ð&¦þÖC{LÆ»MôeæIŠ¡&d$rídßOaÿûcí&bT^p$Y%„QŸ¤É-4ƒ)8¸÷8?ØùÝñhË‚´ôžIæœW±SI·¾‹…ß/´[›š‡ªÔÂ[ˆ^šÑ™æÏoàŽ9ÞûOÐtã±Ûi7£?©ÐO$dÒȤ‚Ø­ÅbH¦´Gý HmxÖ“ÊÎ(†ùŠË¤bWñÐÏR„Ò„L*’|A óIŠi˜åÉÈwIkNj )*z•Øv±ñüàòÉ…6ÐÒÉ$fTÊÙlšZ†ˆ‡èŸ$ò¸!“h̾ÔHË­ÑOÂñnj–ÈÝ2Iäq[È$n—…n0¸áÏôÿ[0ÑkÊO2Ɇ‹ Ë{Jœ·¥ðqã/b~ß@‘ucÃNççûˆ·ÍH${.V•™DG’þI´è ͈ÅÔ¶íù¡gºAWŠ@’e“E²e™ÀÒñ$=ÔžF×Gþ¼¯ãqÄLn¯V…ífûŹ Ž#T=ƒÚʆä0² ¬’Jø¸%’îœ<ˆ<Î#AG&6‰¥[È$»,¦YHªÆ9:?“ðç"»Ä:¦^qífêŽ}ñt@§Û‚qÛ\»I’„º®§ê{_¼éûd|ƙɦŒ"l™¢%šÒ:B»Ùs±ž‹ûp÷³¨ «¡‰‡ßº4ô_‰T—±´º¢¹†ÌaÑ{e,¦HꜬ»eÕ÷ƒã¶ŽU£Í‡\P~žT(ëæ})´›=óü°ŽÀÞ#ÝÏ"}O” Ž $¹â^€y½I+‹'e¥ôÈôÍ«Ãïï}¡qø=ôùXœ?éδ›bî¼Æe BÄ´‰É“´7e5›Éúg:‚±^#¢X\¾òò$–ú¨ ghr:9 uæËûT i¥-Î¥æâs)Y·ú,Oš+ æ=§/ §%ýáÙ!¡ÝV|´¤ G^é´Ø;×nF`B %3S§Ý¿@E rûÑ€¶/ôEFNòä:!“VâbcQŒa‰2çä $ÆçQº¼ñêÖõ(±ÛCÝo¦¥hé$b!“ì°¸˜yT¢CW9}Üsy#€‘¢&2¡“î—P;Ë‹5á‡ðL_4†i’lž}Ë2!e]¸,]w@e®ŽS’º'ì†@¢!h“š ƒ¯IrªDõ§@’²Üµ%ynè‡Ä‹LxJÉ’"‰1¤idåRë:üBXY0nÛ"ÉX ¢›Î&PŠ¿¸p2ëë¶THâŒüƒÓ @<øu2Õ»÷ ™d·Å¦C–Pw+©=õ(gûÒó‡qÔt³®yÆTÄÊÊ$þ6Ï•áÿFu&: @³ÇõÍÞÉS4Y›HJñB%$› ‰^&Y Æú#ô_Dj+R;u³éï3yçHZŒg’EŒ“îÃ]ϰl´Á‰Þ£É "[ž^ÅN}X3.‚Î$—“É“ÜEYh· .6¦‘DÌ yb':Úò˜,î‡Î¼K†,éQyçk¬ Ûm4©eF×€µÝý”ÊFªÚ’ì…$K£ÒÈuxªéXÏabÓlR„“;xbA’¥…Ÿº2{&š Äh[;8ÕÐ:Múuº-d'™D3ZG#· Å0†N• 0BÛ'ºÇdæµ! Y$ÿ›–Ç¢‹Æ-Û$-#’p}œ=u]OÒhDN=Ñ8‚Öí¬uDQ7rÅýI¹Ä$Fãè , –BJ¤f /ÀryøKäù\ö¼µÛù²ì¡Ô:üutʰ,[¦ú/Ü¿P®\€<ÏiaÚ¯I¶èáGxïv56;yeè(Öèš8,K¬þ¨äxª%ãI埃»4à0UJ¬$Íí§š×W8ï@XÚZ,=>½©äû-ýOIÖv¬uPVLR Z³[žÏüI-tøUIwV9¹À*Ä“Œ“t=¾ w€K{š5LdËRôb»gÏ>Æý§þ—übYKÖAòF3Xã2ð¤|$š#-L2.#üXJÜ.lœ™ˆvÐø 36õ‰w…rÞæ2)ÿä°~I ÅCñ~"«zÓsRd€„bÃ.ÊŠa)®”œ9Q9Û-™òF1•¼X¾9Ð3ucbÓÙþ_uŽ ÒDñD›ÍKÆ2˜Â*A;Ë$™×l:Ñ8zÊýÒ%ÏE™ce–I‹­RÊù¾T½œ‘”7WN©-¿3$•èmúüƲ´ûkO¹_†ÏƒPM›âHH¼æýõæðó¢J랦àäeúŽû2”¥Ý(`B±«Ãïìs=Ç#*2ZF?—™£h%!‰Å Úö†¾€y GÅ5ï{Hº(™¤ä¯·ð\¢·nƒç DlàpÛé|žÜXÚ¯ HE1 Wô†›ÙÌ×yB ªpÞ'—ÿ@8>ÊBÏ*£OyÞ X²~YØgèpm†QS¯#Æ.b"ƒ©kÖ2 i1ôíÙtc$Ø ÛÍlò£­ãÕÓñ$³wJÑçæâþ*³—ápCînp‡ú¸Á¹ê‰`Dðáî§ý¦™0˜eÎê<)žœßø¢÷Ÿo~6íC» `Nᤜ3g{gÛ4Hì#T/A:6ÊŒÐ8Ë:£)8Rø°OÒÿ[6›mûlÇ·ù´yxQO¹Ž.JºT(1;PòQpéû%Su#Su£µx«¸Ü(;@§O”LµW¡o³q%“òl:>j8?ðÈDà‰gVá Òùø¿ÝÏ4¿ë™º’ÊDý3ˆÕĪŠÊ$ïsË……úO¢Ùã×ñž±y¿žnÊf¥•¦Ý˜Ö€óI ¤qCàBG®ïÐ09»•ÅXhŸ"± &³9¬Œäг§br4øãøL{tv‚‹9‡<ö‡—«Þ·¡^›FÞ÷ÍÜÐZ~[ð9|g"í žE¡0RbjÛ7±ôSšb¡9ߌ»âlÿ/;&ö‡’}2›*\°TÖ–m=,™e!ù³øƒ0.Ñ¥“Û¤ FÈêqúwå̈ÜIVì®ÝŒ¼ÃæÚœq¿Rß÷/ƒQ1— ö{ TP¨¹s”È4 Œìô3Œ$ÆG#m¨/nòþîxÏ =ÇÉOsû£äø>&Ÿ¢Ð%wTªµkNa… Àjbv ^ßßñOL ®¥*V¯G"î ´é„)Ôª¦Gµ‘óE5…•=k]²h‘‰6gM«Î]ž´™iÂÑi£] =.ªè²{Q“…d?oø:xRøë‹n:AÀ®+Íö”´jÏdýÅÁßêÚ†b@0,;øŸœ]–‰'¾a,Úâ‹4OD{Ð!•IÐ"ýÑð48Q:=M†¢©ñ`¢Û¾è ì†å´û庮møÅZ   ^uºÿåÞà -^aº½©ï'wßû´qø}̼Cý뱞ç‘t†¦h©àn§èYÏÓ™D\Ãï%ÈźΧšG?†1aš‹½œù*K-^I;XTfÊ”ÊcÜcìŽZO Iǘ°cšF>Àn°ñêEý½«|®Q&eå”7rbü†ï£Fï{๗=¸2ôvóÈÇŽñÝÇ=¡ËhPw3¤MQ—s¾™K›¥,)(E´Œ>sCÐJ}h¼Œ"©7xª‡Á‚¶jí›<¥Ês%ísF.‚2DE!¤ãakhà eÐi¥Âx»&Œap ‘ðí±O¼‘k‰LÐhÁ,ªd9eR%¤ä*®r?uB1CUe¾U±Èå(´† }6åMf*Ìõ™sz<Ýf7€¬:Æk1ºŠ·±ËñÍ4zØuUoÅÑžç¨.k{¦"pù"¸¯ãÛð‹žî¥qøOþƒ£áÖølX“kZÚÂÜy\ •+&“¸¹„ó+ñ†¼3&QµOr½WeízÕ @K–}k,ӗп‚6 ]tù÷A„ «ýLj$D‚¡TˆF W†ß‚“ äºaðuL¹=úw$çO] FÝ@œ±TÒ±;ˆÙxQH‰Ü›{Iê\X„äå…®´‡f‰hY.ÄÒ÷½bT Æ]Œj¬ÜÚ“§‘Éè´üZKŠJHNNÏŒIÑä˳tÏ1îÕW[R,ï¥äýMŒYÂÆ"S§åÏÙ®jeé'*¯Öz·#íx[BG)Ù¸HÈ$QﶪßëõnIII‚'‰¾«q±àIB& í&$´›ÐnB» ™$d’ÐnIB» í¶´›@’@RYôÿrÌs©BHIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-dashdotdot.png0000644000076500000240000001355712536324511022543 0ustar philstaff00000000000000‰PNG  IHDRÄvÆ«B6IDATxÚí]‰å™î¿i‰ÃÒP d»-]ÚÒn¡¥[zAKKXÚî¦Û –²ÐÝ’øŠç !wš;Î}bK²åû¶lK²-˺Ñ\û|ß§çE°ìqò‰üÄX>Í<óžÏû¾ŸQèC–eö¬o˜þÔŠÝÃøºé³ú‹¦ƒ[7L7}£ÓÇ­Ÿµ®ÖºlÛßb]€í9q:‚ÓjM/šÖ;ícÝÁöÌ—ÿ"Û×Îd…—^ë3*}`‹=ë¦?õ‡j÷0¾nú¬þ¢éàÖ ÓÁMßèôqëg­«µ.Ûö·X`{NœŽà´ZÓ‹¦‡õãNûXw°=óå¿Èöu§3Yá¥×ßâ`â`Z<0q5ÇÕÜ¢©9&&n3q5Çm&&&&&&&&&àÞ p0q0ñЀóÓq5Çm¦ŠÀ¤oè÷ŠÓ‘9˜8˜ÁdÜ 0’M_ÇÁÄ ðJm&Y)mà'Y­%n3q|a0aD6%v$óá¬À_:Â8˜8˜SñÿFD e sS{O ¼ì(TI\9&îÍ)–Uõš(燢gNôÿpgû¦íö|c:ѯHª$KÜfâøÂ¸Ž§ÉDëùá×wu<Ùè]_çy Î³zGû†ëw QÒtÓ’)[ˆz‚µû»žÙî}¨Þ³f[ëýÛÚîÇÆŽöÇŽ÷¿I ª²Ê4 ÷æÊX D%r“'^ÞÙþ¹º¶Õ@R]ÛÞšæöM§^½–²e–Ím&n€CðÔ9Â\ƒwÝ߯ã}ßë‹ËåSЍ–É¥p0Ý‹`Z袪¢”»4ú{ü›õü«/Ô”"4Î$I²X4L÷Š7gÚÓ˜1m0W.’éó†bÙÑâþŠÄpfú,·™îE›Éø"ñíµž4ïPüKÈó¿Óö–å’é^QsÆ Àº Ê*‘ J²`LºÙ¾b\fØâ¦’$ !ÇL.é 6Ÿ|%»Â,!†'Îgâ6Ó6“aqH„È‘Äй¡×›;65·?~¬ïßâ¹q†§2&NÛý¤6“Ñ*u21Wdвô)YMe#-Ão4w<^ïyAmdH®Þ‚ƒf½6Lw&+ñË–ä³² p@Bж3¼·ÿ©zÏZ€igûFÑN÷”Wsw®æŒ{j¨ÒíNýôÊwIh€ºfÒµÀ[ÍO ¢ýþæn[sm\2}RÉd‡‰XÌ!–Œð’ž¬y­•”›Ã‹ng ³—FÿóFà¯ñt˜P$É–ŒËÁT ˜,/â\ŠÄÑÁ•Ô\>Ï„#É¡Xv,SˆÊÛÂä[q¹¹â6—"y!#KEr’­ÁÈÕÜ‚jδ »ˆÀPA(L':B{Îýúhïwv?öαÞïâš;[rŒ¶Zb"º64 ÅôØ£ñ ÆÝ$æÄ•¹ØL•ƒ‰ÈwÀ¨ ¢·.lÙßõlSûd6©¯³¦®m ìT°0vuOxC2¥\0sª¢ b –xƒgê5ÜìNã²Å™ŒôíÙÌ Üöu}åêØŸrbÜT†» m—àŸÔ7¿+ɨ¶ 4‘½ÌÐ@áŠ*ˆiëI™,ªõ§&ˆÅÁ§«ºîôq=TO’éÔL bŠ9 úG¹dZ‚t ½üöYNì&É…ãï †ùaç?ïõo>;ô˼˜t—dÒ£†Þ²sœ‰K¦*&z8°Ÿ<Áƒƒö%½ØµÉÄmDÃ+’LUSÈ.¶áãÆm´,¦e!ÇYù*K´´,ZrÊ©)¼sœ‹ÁT$@+4—Å:„ÌïUTu›ÉˆI¢9i$µª£ YÜfZ2¦¥íO³þÌ2E>U´™ôg0dàvvO Ç;áTŠŒ1ã\4Â%/(°œw¶#u/;B»öu}±ÔñØ-“ƒ‰T¬æ˜“?=—²Ñûðvï#‡z¾1»ÈÕÜŠPs&í¶œä8- Ù¯% ‘ÜY*÷…‘ßd 1ÉÀ p·I&óY53ÄåJ½¹O/™´}ˆvCtëìÐ/'ÑÒÎët}-˜hcÑU.™\+™ŠÔ{ÖØ‘äé$nû]Õ“L¥8äí‰÷QLD 1ë –úgëŒ%n3¹Öfb¢X'ºâéT Üpp:‡‹,™ ˆ& n`öÄnÿÓH nk½xÚéÛx{òo¦È)—Ln•L$KOœx‰nŽ¿?ódó)VÇQÆlZDÉT2•æ²£‡{¾½¶°?Wƒ«Ds:‰"ÆY´pÉäÉD.bÏ4ú]={—ï£î¯vNí'•O•4'ú´`b¯ 5xyt #Á€·€ÕîyÉ#%—ƒÉõ¡ñâèï@`‚½ øžÎÍC‘ XعºjNѪ%i·£@4¡·Þ’âÃÑs¦î\͹SÍ•t\vìäÀAÇ„†9Ö÷½DfKvè ºh丒GØ’„9I‰žèOzsü]+}›ƒÉÅ`bÌa"Öúåþ®¯ìñ?å™lïRo§^‘7w`¢Ï%› uÜTÁ‘XJ®Ž÷½”Â:Ô¸dZ)¡ÂðT!/LƼžÉúHjPvn½h`¢8" n<~c¯ÿ‹õ„ŽXÀÚ½›Gç.êþ]ùßÏÁäÉTdˆË,?¯"›Jؼó£—UŠ€“ ¸i)CB”Þ‡PÉùt=ð¶¡q ^¸b"àó»¨INÝfÙ/ÊCªÂú¨Ý²bÂ<÷®;ØóÍhvXo]ªð½+-n¸À Y[ÉÄÄR®C€ Qbw“.JŸë7Ûö ä’‰SPœÀ$³7ƒ³§`ö# ‡ð$Oôÿs•´l®\Õ¦òL‹&Å ”â‹S)?z¯ ´…ÚÜ=þ§fOêa''ÎÕÜ2ª9§ƒ“Ô®ª,NÂ;õæˆU„6#Ñ‹†syô÷ùB’•wç`r'˜Xßý¼˜b5Lº¹]Š, ˜ôW$Jð†$Êæ“ñLy’ÅžLîB‘¨ ÷[†ÿ=½m °Ô R ß*Ó’PVYl?ê„ÛLî±™´D*i‡ÁWàUÃmB¥eëĶDfŠås<§j…Ì¥K kÉ¥ØÞ:\2¹J2±~±Lž8„ÌyÚÓù4æÏˆbé:.Oëf'ÉÁ%“ûš}i•Œ„'èÐGBˆmðÔ #J(î§½P¤Ofõ((Š’ƒÉ¥`RHÆ$›OûC{¡æà‰#ììlb9]§U-²š³JWÅy@‚Z屪\Í}œuAzÆ£ŸúùåÑ?bLÍâà•ÛLÌâÖì~YË«8^c&7‡X÷fØÝñLH¦“Ö•¥™7g‘C¬Ñ˜´P+&®æ\Ú…¹MÄ­£uM ž¨Eµ™4š@<71îJå§²¹ NE“«À¤Ø Ù±Þ¤‘;Ô%ÎÍ‘<‰/´ý`Ïs‡{¿ufð50ñ’ÙiÊŸ²õÂÁ´Œ’I±Ýä¸íE©"˜ð½¨h~³Éûhƒw-ò»Çú^œKO02“ûÔù?5Œ 0ô¢q:È’%ze6sÁ[¢Á‰uhue§ÈÜw—^JNÀÕÕÀÜÍéDíES°Íøª‹8ð¹r0¡K.*ãЋHjj½É  ÄÁä02§¢"ªƒ3-0K0c-ëTæÏ3ª ˜*Ts°¾Ñç6ÓÕ±?^ùíùá7Ð~ kcéÜwšcÍOq½†#—öu~ an”Âé}!뀠2•1.9Îh¯± ݜΠY&–¸7ç0io)¬«Q˾Î/7xkjéhŒ:[?‘Ò N–³?“¹Kf±ïŠÌƒ–ˮ挎˜AÒ;sxoç‘ÁeSš`–€½èï- ÖbÆ¥·™œ&M¯€¸mÚç.“¹.Hä¹cj CkbWÑRýdßÚ&ê1…Å«h3ÝqÝœËssVÙÞ”+L¶76™y"«éÜÜ­‰÷vw5ðSÔæÓ–F÷#|5e×9b£SÝ8ÓŠSé{”rƒ‹UEF¨nV ˜Ì‰ÞÊ¢ ÷MŸ' #¿`ko%ͱVÉCOœ‘¹Vå1¯ƒ­ûºíêó*–!7'k'sþqìbÁÛòB!¯çKeð´¢$Sqhs2½5þ»ýORÇL°D #bG{¿]ìþXªÍu<ø2”:™Â˜z‚y:Ýs l&]h*91¡(ö fdç¡Ù–kco¢ ‚@É„Ž-ÒÝo3J9$ð¸OôÿxGû:#õþ­t¶.þ<=ðêL²ßÔÒè5•_ oN¿-€’ù¤²ÆšÆ¯¾0™’ŽNþ—¾'Êt0¡ñÊØÝšx²VÅÈ´V4ž#þ»³c¬‡Ë£9UwmÑàZ0”[<3ukü}Ú»JÚE¦kWÇ篽qE&€)R%kXjÜ,ÞI(i(zöÔÀO®þ̆ìÊó‡3ݱš+c"hGP1jèÜÐ/wû¿Öé‡_šHÜÒîBÕ™f¦<“ìÆE«æŽÇQߗ˧eY±ÝnVsÚ-¼¶(Ê_1÷‘4Ÿ!‘$I4úÖcæqWøPA(èSFÜÛTž!õqÑôØõñ·ÌØIÄO"ÇRæ³Ö0USiÁ‰uL"öÌÚã'“Ôqa`–¦¢Èf-,«³©d¦wáÆ«'0TIŠŠ]0ÒáBÉÄt˜dm“õ¸7Ð…aI¸opâpcOÎy5*·¤8wi[~5ÇB”Lw o&Š­XmÊe>êz}vmIâ¶`RæÏ¡ÒÞÒ¸]#ÝÉvJ–€&‘Ÿ<ÜûBƒw=æ¦ã<éý6({XÝ ¤«Ý_C¯Ȱ3ƒ?OgŒuìtñdZWº`˜x ÀdE¶Q}'3‘?Âoǽ„º€¶É†Tvަr ÖÞÆ.Us¬ê*‘95ø (M¸Ýqp÷‡“^Ö²ÂV¼Û©¹â–B/ž ¢åUÚiJrFZ°IÞbÝOþBqwÇøvÿÔî´0m³X©˜ÿ91ðƒ‘ÙKL,9ÈEYó$TUZÃþ%SsZ ²(hecÎÊ["¥±èu¸l(ÉŒù`4šh9¹á. (´²¿31=ãI::É\Ðr&›\Æ$pñ™¹ö ƒ¶MAÉæ2‘äÈÀ̹[ãó!o÷Ëem*kÚ¢c}Z˜1Q çGbH4± ES£HN±¤XO[_¡kz?²ZsÙcûb­Ùü°V•Àd”è —ÚÜZN)D ãÞL.n;7ËÕ-uæÝ±9`ö^ù]8é›̰Óeº#ÿÁ­ÍçsÌs© Üt†Ü{l;¨¤í›¨æza69f¤qÀTì3 ù¥G L¡¦ù ÑDâI3z±bkòÂMãKaÔc 0o{fb F™Ô4A¢7î—mãìŠÃTI«®/¡Y;T®&ZÛ‚Û.mÌ8ÜÁTÀøL ÉÎɽ¸ñ ø‡»Çõ11ýhì }Ôü =Üä 6´NÔµNÔÞÿ^ú™Á_ü£ÿ‡©xƒ®lô®ƒÒDÀËkઠΜ…ÊS©Œ5jÛ¾ÃvÍÖEúKlaú4p c–¸~Þš¾è>ufè5ÔMâ×1ší%/JYY‘ËŸ+²§"êQx;û’œ®™t÷ùá_£G(n'¤Ø°¤â]hs™ÿóËÙïî²™T˜ì$Š©GUÅMó`ų‘_ @ƒ Ö AîX­g5íÔ»Šæ&ñÍ„Ÿx{ü%Quº*á3YeƒÃ ª ‘Ëùá×wøÃ’ÈZÁ"˜®ÛÝû0®+j(ZFÞôëgOã’g Q4:–¨”eâÁT¥cØ 8‘IB_•膽Iʦ<Œé}߈eàt¡iyc˜†%;Ìmv £¸¿sÜÂéL8õÍí›Ðô²–tP%p¡ ›U[nZIЖŽÇø,vŒàðÃé…Æñ…šq¢. 9NÜ$²ák?#NÓäÛ€Úûz²`Šoš1⩸ZŸÒ ôÅ£}/‚kù oqpæ Òõ¦*}SEôšJôLÌy#çÆc7­Ü4ÅП¤eø 8ÈX …õâW™ì46ãsoÂ;¦ ØÆ²M“ º¦÷ã‡Ë€h}f ÏäÖ'Íðkp ¡ìv?‡¼÷À»ýÓ§g“£yêЙóâ’ãJÁ3˜ßR6”ôµkO¼ŒÀ¤)âœõ$³šQÌHGáV‹€¾®íA/±Žö~'š iªŽ 7âæø{»¿ŽüÿÎ ÿJS¬!±mÔ£{z?x` !q{cü¯ldH™&3Jufô.ŸÉiäÜü¯/¶ã=ÞÿŒ Ñ †îlà÷jŽ÷}ÿìЯ®ý·?ôáXô„¢wÔP@°‚SšýS©’j€‰]vÕ¨ §ÚÛÃ;!{BkîØ„à2@a¦‘1—±–<#`XƒØ a“JŠž¡pid Ä p ¡{¸÷ù”0¥‡Äæ_c6îa¸5¸q;£S¹d“0Ý&í )‚˜Nä&§“]˜Ô‹š›@ìž'cm3©”¸Ã­Å –¡‡j ¥·TdSU•h»óĵ¢5¿£ÿÄülzh rúfà=Ä—t㎘ÁGÅ*QFg_Ë )*™LWšþQ½6ö63ƒ€HÐB"écóOÛ¸® aN—ãSQ™²H’¬ }gý¬d±í%Ûxz%Ó¼É ÄàcýeÈâçˆÌ™äàÈì•öà.Ôx!Šq¸ç c_ç3È,9»eZÝÍ…<¤2Îb>‰*—&8XNšFTÒQ®$0-:9ÎÊr,Ƹiß{xÈ,X)+²57ì†ê”Ò9ÒVNcñ¥øjæU.…q‘³é`²-’îuZ- Ö‡’8ЛˆˆbW“¹f`Ù§™YÃ~í)íÔîš>à1-p+£ÔÉ&½¥ß¤l[Ö8–ÓO›'‡íº}(wGSù*àe:o¸¹Ô©Ìʵ·=-­Ð‘1!íLþgJ\²F8m̓2yâ{KÍÝ E˜Ö>5ææçùî\2•õæî¢"Ìò²¶ ŠSÅ•KñpÉÄËÃï œƒ‰ƒ‰ƒ‰ƒ‰ÛL¼?·™¸dâ’‰K&.™–8ÑËÁÄÁÄÁÄÁÄÁÄÁÄ pn€sœK&.™L?ðÿ‡~BÒ¾lÏIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-dashpattern.png0000644000076500000240000000310512536324511022707 0ustar philstaff00000000000000‰PNG  IHDRÀ^Rdð pHYsÄÄ•+÷IDATxœíÝ[¨TUÀñ¿ffjX–Õƒ™u+² &ôÑ=µ‡Š&(_"ê!"ª—(¬ ‚"òåàK‘d7K“ "JM#£’4D¥,»™¥]¾9vš3Çtö^{3ÿ sXûÌžïa³×Ú{}{$I’$œ¿ÝÞÑÛ;ÚÐÜH9™Rf¹OÁ~ó  ®f¨«™’$IRé&Ë€]À·ÀcÀY#’*2 جfw¿Ïä JªÊÄ}†)ýÚö'd‰Hüù•;þ”–_6´M¯û€xT)MâßIoëûmËÎPJÇ¿ã‰ð‹ÀŽ~Û²3T…½Äÿcî@ Ë€:ÚÏÀhà{`B½mtýý§,5ð  ”¾Nkhëëû¯§ ˜JéMâ€ïé×v=ð'ðv–ˆ4€—AÓ7ÂÔå&ËÝÀwÀã8B’$I’$I’$I‡¸KÅÀ6¢ l#ð0²ÅýÕh~Sí‘Vt*„R꾓àÎ&‘>‘¨ hÕ-ÄÓ¦û|Q`_R¥æӡǶðÙñ‹?¦¬`Úî P´Æ÷`5© ¶Æ7­íDŒ­vƒ¨~$°«h0Ĩ G¿ø—w fl)°¿MÀN"™¥Às†Úî  Ž´8¾þ÷bZ_%~ð °’øñ¾¸›(·¼©•šªÂUÄYà\à>b°[[ØÏõWŸW‰÷n'j6ìí© —Cçs‰Á쌒öýRýýÌV>l¨j«êï=ûý¯×w ·Tho(¥fƒÓ™õ÷fƒàc€Û€«ÙßáMÚn þ•ޔ֧D×g5ðQ<·Þ¾´ÉÿOÔÿÿå&Ûß> J-‡Wá'­å†.÷°†¸ ¼ØLÊvl qeÕ ÛŸ6O•ûøŒ¸¬Úî÷>$I’$I’$I’ÔÁ>&nt]“9–}œ ¤ªÌN΄”ÃñÀÄ´…¶:dŸ Wu p£Z­f pzóö?ÉH£ì  Ž7ƒ¨›œž9–(¥aÄìχhÓåL¥t'ñø“'r2»@JeQ¨>¨ οÏAÉïnþÑê˜Jå$bmà…M¶=O<Ûç”*jÆP*_7´<Ü ,«<¢&L¥²x¯¡­ïxûœÁË¥Žu mv#L’$I’$I’$IjE’×õ-›S!T…¶]××P–?碙ä `Íoa©ã¯¢¦¸´u}ËfE˜ªPÚº¾e³ ¤”J_×·l&€R*}]ß²ÙRÕ ­ë[6@U+´®oÙL¥Túº¾es  ”\×W]Íu}%I’$I’$I’Ô±F󉚀=Àfb&h[p*„RB”CžG¬¶ŽX2u\Π¤ªÌ&J2gæd0…çdXó[XîøSÎËYœ\ð; q:´Rš|L<è'bRÜ `jΠú3”ÒXb5˜ 9ÀuÀ±Àr`LƸöq¬”†I0x"À7Àjb|° S\û˜Jé¢ð}{¿¶5ÄåÐ3²DÔÀ.RÚÀÀAöú+÷ÅÀPZ+€âÚŸéDÏc]–ˆ˜Jé9`ð 1žC¬¿•¸D*u¼©À[Ä£w¯§fH’$I’$å‘û†ˆßßż ®f¨«™êje$Àÿõ!‹ö1‹îßï× <¨«™’$I’$I’$u®aŸ‘:ïœ IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-demo.png0000644000076500000240000014117012536324511021323 0ustar philstaff00000000000000‰PNG  IHDRf^¶µÖÂ?IDATxÚí]€\UÕ>o¶gwÓIé!¡‡Þ;š(ÒAPDPÁòëoEýUé*ŠôÞ{ -Fzïm{›ù¿ïÎ;“»/3³3;3»³»÷aœÙ7¯Ý÷îýÞ¹ß9ç;Þºuë½ÊŠòȧ¾ºÓ9_ùá{55u•¡pD°xžH$²íS—àß]h‰^º'!/‚ï ã»i Ö ¾ã/éš-s‹[Ü’>püÂQ< D|lÓ߸. ™ï‘HØZßúüÔíÒ9—––p¨²¢WÕ=þÙÞ»N=xžni’ç^|í°ëþòò?Çï{ü@¯°¸'„ÂaPæ üÄ… ÅÃzØeÁÙ37§9Ìv…ˆÆR€¦Ž€ö"žÝâ–žÊü,,(0˜f°-†[×ÜÜl@7Äí¸AÙö‰íÂ--ÒŽ·øÇIéøÂ -Ÿ½óäúï^zè½ÞznÂÕ¿}å©)'ý`ìŽ%\ÔP+M€©¦’²HaH x…xaø£¸j“„K*бƒ{ÖÁÅºØØwÿG/½ØpĺXk{ý¾ÝþÖ±õ] ËÀhD¶ktxì ½ñ;ïUµË±?/ÝcÿƒC7l öîmrè¸âÈ}õ»Ê¼qGHyÓV©)é+£¼*;~ü¤¼qü÷€ü!ŸâCÀ 7')"’à™V(ÞÒЄ7I¨@J‹ŒÙ»8‚,wç…ðäÿ] @sìӺưy{•{ÒŒ›DJKxMa½ÅKµFöˆ7º°e³ìP¸DJ¼©(/•šðùtmo©¨è ànéÒt[Üâ–Ô–ÂÂ"Y¹j™ÔÕm’ÊÊÊí@•8S]S#ÅE•ÒÐP#½za S/—¨1–­[keôè‰ÀÇÂVtFða²0ó[«ª¼²Ò>²ÓN»†ß}ýŰ7bÌná]ŽûµŒŸ´g¤¾¹Ù+Þ¼:òÍewH¿Úõrýˆ dõ¸dÀš9rÌë7Ës|]¶ôÛQ ›ëÍ[„/PYQb.tí†j)(ÄE…ÃQ^Æ#X‹ÔÔ·Èž*¥®f«|¸¨Iúö.77€€]ßÔ"½Š¥_ïRÙ´µNêZ àÖ7Fbà]Š0_ MÙk§r©¯«’÷ç7É€¾½d· äÝÙ›Ä+ªÀm ÃÞ<÷1à¿=/ Ôü×ÐäɮÛd`ÑrܬYµv³ î_&u‘>2cùéÛ·ÿ€l{Ý-nqKw[ ¢Ö/‡AV ÅÅ%4ƒÀÜÜÔ(6ÖJii°¡´(‹¦†EQPTðÅq6l”òŠ¡RRRÚê8ö9ŠÒä H‰Ã8ÃSs“TU5yCGî™ûñÛž7fÂÔðˆƒ~,ÃÇNñšë«#¥2xá;òÃç¿-Ë ÈMŸ»YNýäNyÔa2kô!Ò«¡JÂxcТÝTÕ,Ÿ8LöU-KWn–-õ¥rû«e(Ìþ&˜±K×ÖÉ÷Î+³çÌ•~0ñ›6Ï“{_é?d(‡©ïÀ>vªÈÚµk¥¤¬—R`Ž´´fÀÜÒÜ(ëÖ×aV.2hÈ`YôÉ«²ðÃg¥¨´\šêkdìÔ£eÌäCdÍÊRPzé>;åóÛÂ^)‡} xÙ ›67I¿ÆyËæÏˆ€ÊØ3ÜoÏïIŸÁñ¨—˜äÕeýäÀwï” _¹^>Üù`ùdô¡òòÎgHyc•´„¢ür,åµ›äG_ÞU–òˆ<ýÖZ¹íºóåë?¾_ÎùüQ2nx/¹ñ¾YòƒK¦ÉÚ• åãù›ä°}FÁBŽÈ?Ÿ])/ÏlÀ—Ë%Ÿ*‡íR+·ýó ™9‹LÙm‚\÷䇿ù‡|éŒceÅʵ²zSXv×S‰&ùŸ?Ï–s>·‡Õ|,Í¡ÞòÚÌ-òÅã'Êoo[nùáI²~ýÙ\#r×ã‹äš ö”­›×K¿¾½å²Ÿ¿,E}ÆËyÖf9nTºF›aYãíwß‹5²Çnc¥OÁywÙ ¼ûm7­q‹[ÜÒÝ8æijX/Cw(Ål¿ÄL©5RÂfø×‚‰å+·Hey¡ 6Tæ”û%•ý†IÕ¦•²yíp^½3ðæ~°ž‹ µ<Çœ£¸¤—lݸJf¾r·ùmò!çJïþC¥¾½Õ0dK*Àe¯™åywÛ7\4ár)(‹²Q @T—ô–?½_v[ñ¶\^#·=Yžs¢ônÜ*Í8 MoòÁë6ÕË.Þ]ŽÛ³PfÎ[+=ûš|0¯FN:zo™~øx¹í/ʸq;ÉüÙïÊБ;I¸~4EŠeÇá;ȵ·~"cwÞKj·®•ƒv‰ÈÔ }dêä‰ò¯§>•Ï6Êèu˜K4ÊGsׂ¤)':AÖ®˜+½ šcÐLYš\Ïu‹[º-(wC >ke "B šaœF|k—ÖraQ©ñ9-X¸Júõë%ÆE3_Á£¦Æ€yÍ’a1!«V,¶D©‹mQÛÎ1zÇRTT&ÕØgÖÿ4ç˜tÀ¥Çijª“ÅK7H‹×G"u«'çÁâþûÞ’/MßWλêÏò·ß].¯¼9SŽ>ò ùíÿ'ûìwŒÔ€VÉSïn• OÙU®þÙ}rËOÎ@ß&¿ÿÙÅò‹¯É´½w“7?Ý*g5VNýê¥tØá2°d£LÝ$F ”[›Ac4ÊÐA}dýP¡™³p­¼± \8`v‹[z8ƒª0lp_j‘Ì}ç~©Ù²ÊüVÞg¨LÜ÷Ls³,]±NzW”ÊàÁÃdÅ‚·¥¡z#¨WÌâë¶ÂÊí/ÃÇï'kV-—êÆ¢8³uü6÷ÿÈŽ;j~[:çeœã C—¬\³I ËJÃæe£2Z*§\%ýG\z2lËr9ÿÃÛå¯{}E–÷#ãV|(7|t½Tõ"ßÙåJÙ\Ö_ŠÂM$Nja9p× Y=ÿ5™½aˆô‘g×Ëßú7BÈu Á“ @ק¡kM²eãZin¬•²^½¤¼r lÚ¸ôG“””ö‚³ |J 8ܸ¶bðƲyã:i¨ÝŒíËdààe hˆ¦ú-Æ{ٯ߉„JdÝ꥘„eð°QRçž´€†Àú†º*s#+{÷‘êjÄ&W–Éú͵²ï.ýåÔûKï2‘ç_~Kzmœ|ìA²`u£¬ØRfnL}] еx–ÈÅÇy³>”'gÔÊQ»šéŒsý¹Å-Ý{aLòæ ë¥ÆfEe…q»cæ×„ËÕ‡Ù®¹oe¹¡8<éåŲù¹qóVé3hˆç¼ý9¶…ämK1áïUUU ‰‹1L6®Xàyã&îÞa¿k¤ïðq°R«¥8Ò$5Å•RÜÒ(ažœhŽ‹áì+i©GHYœv¡h ™qFcúZZšcqÉœ˜L€§ ¡ã˜·ˆilpûBą̃‰f˜ôH 7sáÛ‰×PXTlšÂЕP(dÅAGã MtAÈÿ,@$Fƒ„j—Hí¦å Q<°ãRYêÉ~cÉ¥²jk‘4†Kd‡>…2iXXf¼ÿ¡<óþfz%TXÚj*â·¸¥»RžI•®Ú´Ñd7K ùÃpÅÀ«ÞýH}m È*?íZd[‚‰l+éU!½*Ê· ¹KíRÑ·¯”˜ݴ ˜¿##Ç#;×ÌwLáM'± =fÙ…±3­Öhvݶß5$ –Ñ ŽîçÅRÿÔì—míñ/ÊüMŽx±ì<=N4³Ï3ùdº§¿ûaÆþÕè (vühäK!sEh›šÃÆ2^¾E†ö+@¼a‰TãfÏúlµ¬«-…¥¼‹ñÌFAÙÅ0»Å-Ý”[i\$IÉ6ñÆ4}-Œx)Ùcˆ†ãf¦tì ˆ’å ÌSö9<¼±× rÅ©}䊯]„@êMÆâìFw[ú¸Ÿ X¸ææ¦æ( c]IQ¤£9Û‹”¸Å-néÞ༺ˆªÛh‹HR£xØ‘Ê98Ó8 ¿ÜüÇÛåæ·˜÷>¼e]é±òíÏ÷–«®¸L6ÁÜîVÀçÍ´MJ¢ s†a Ó`wFnq‹[:|!0÷ë×_n¼ùÿä·ÿÞêyS÷9"¼À|õæK‘V¸©[³[Üâ·ä30ÐÀü¹á?[£s˜ûÈÕßL ÌÉÌq·¸Å-]gÚ®¾7†ó˜oø=yKr`¶ÃF8õçz;"Â-nqK×gúSê¬ÒqžËóÚX¦Ê¯—ƒÍ#«\G]_ÊÀlßHO×ÕÕ™jÆô=™Þˆ\Yáe!¸v¸vt…vØ!¦ååå2hÐ (¦•"¸©CÀY¯ç«­­m…#A› æºØ÷ ž£Í~&m}Oä 3 #À»^[ëÈ—FZÀld=ƒ¼nÝ:Y¸p¡¹XF/d”MTD–Ž™ì< 9¤®®ùÞ= ¬­~3fŒh“/c Ò܆wß}WV®\;'~çoı‡ýð3.ºNï Œÿ¸ý¶|ŠÖÑ:# ÐòS­t;º"mÁ…87uêTÙqÇ‘Ñ¸Ý ¢Ó€Ùnì–-[dÖ¬Y2qâDì8 kiw¼²²²œ Zü¹@®®]¥<ÞÆåý÷ß—wÞÕ7¢äAËY©ËlXï<_d<òH¬TZÐA¾ æÌ™ƒ Þj³žÖ<-{âІ Ìõ›}™A7räHY½zµ9qŠ/ {å1Ù¦¾HÚX´h‘96·á¾E8ÏÌ,e.<¦=ûá3%0ï³Ï>æ{60O_JÛ×LÌÛ¢2ú˜¨ŒV3??þøcÓ@¾YyS³=­âgïÞ½s>€häz¹v¸väs;ìcªáÅ™ðªU«dÊ”)­dn v4Ðêëë ÈÅ,Ì ¨“èOØÎ^kïµ(¦,_¾¼Õñ¨qÒI'ð|öÙgͶӦM3˜Ãk à’új¸he x¼ÝwßÝÌ"ÚMeè=_q‡Žb´iéÒ¥òÉ'Ÿ˜sÓræý×™DJ³ Ì<€’ên¹v¸vtv¨u¨ÀÌ1N ã¹çž3–ò0Xœ¶Ã*P¶ùé§ŸŽý­mTŽW·á?ƒü[~¦€³ŸOÁ뢥Ϳí?nÇï´ú Æv¿³CÒÜ– éå y<‚;9ï©™pÌqî—¶…àLÇëá \”>ÚŽcN˜ÅìÚáÚÑý™§œ3)‚ ³0[m"ðÓ!Wh䀷%hØš§ûÙ|¬ÍO«Åm[ßʃÛëƒÇ¡ÅNðæ¶p{!H|ðÁÆòV‹6›÷œç={¶¡T***b¡)9ÿ0»v¸vô,*ƒay›7o–÷Þ{Ïüm‡Ïé’i[yNžƒÙ &hÏ}UkÕÆ5~§ãoÔ¨Q±—E6Ï«ßí¦TŠ³ã˜¸v¸vlÌ´˜ÙŽyF$Š¹Í´MÄu4æ›´ƒÒľl¶Ý^4 ™T‰f®®is6Ç{°]Á{ÖÂh‰Rës‘joS-Œù‘)¤‹h“Vi—óϳk‡kGÏà˜s Ì‰ÚØÑ¢Föy:B°(̼ǻ!Ûfçüs@àÚáÚÑ&0w@2Š‚ÑA¥»xÚ©V !ìs°ÝE¦ü\nuB´t6Ƴ˜0; pípíHËbŽjÙeà9˜]Ì( ;¶Y“2ˆEŒÞˆWŽ)(hdKIØÍßl൯ÇfF!ùÞl:ûÚCet `ŽÇUÅ{s: ÈM;R½ÿ˜»‡Å”ä̆¸‘×l‹éþ”‚`øOô\¬€Í¿yFmb’y Æó¸üNÜbÒ ¡bEvü´*Ú{ì±YÁ8[¬È¾?i[Ì]Ñù§%¿Ãþ÷PìfˆùõÑC9 È~;bbë´NüΧ÷?Ú·ÝÌùÛŽT£2ìëá>´>¹ñ!q#Řç‘­¡s*jDP¦3û˜áGàe¶A”É 3b¢÷§®3™¾}ÖYgÉÌ™3  sfð1]›ÛSEo²™@b¿ˆwL oÆÅ+âqxìûcS2‰€¹KGe­3^Scs *]G§;a#`Å9 È^;‚÷Ÿº¨8^VRœ´’°æ® Ì6(ó“¡^s)&€Ó%¨‡œjã‰T)jDÁ!‚+µ%&L˜`²‰I/¾ø¢¡˜Ãk Ðñz™’½#¶yó­· «<(Áœó\L‡~ûí·0×ë ’Æ5·›ªˆDË8óyñÅÂjá§b1wÙ¨Œ(³ƒx²µ¶NÞùô3©ª©ßT“AúÊÞÇÓzm{S9 ȼúâã¬dÃVdˆÍúLêêüg’a;ô—©;– ö”P’Jîyt=*ƒË“O>iÄx¨[‘©¸‘fàÍÀùlQ#¾,v‚ú[1¬NÒ»tq]Yžk¤JÇ#+ïù矗b¤X܈O“„LÓ&ðrÿ¡C‡ݽ¡«Üçâ*XÕ[ÜÂ6RNñŒ}w/ˆe$Ôä3õ06nXoÄŠF#GuTì XÔ­¨ …\×Ò5ëäå÷gÉØAep¿>Rˆë¥Õ¶fmUµ½ïл²U§‚ÌÚ¡/Å‚‚Ì_¾JÞþdžL:Xâ>ó™4¢s-]·AÖÃÚ9vÚÒ·¢D*ЉZZ)NECTŠ eõ¦-²®†Sê=cSˆÎ´L§EA'fgµC_|ϼõ¡L1TJŠYàÒ ¡VŽŸbðûËÖn-è;Gî=Ù8C…/Ì]Ëbæóe¿#UÀ:xñâ›3¹†TDR‰£f&Ëè³u;(XD=ælg:òx`RS60·i1çƒó/@ãõÔ“zúÐcFJ1Lþþ7®kUö¦tǺª™2atì­êª2gÖŽèýo’9‹–ÉŽ; ðg**£(èØ¢/ÆÂY³i«,EhÓÉҋ2g0ÙæWQb©-`¦õG`ÞN²l )ÀÒªí Q#=i‡`rK¶î/™•PT¬(0§`ÂéK.™o«¶ áäÕ÷d§!¨rPQËöÙ¼y“ŠÊJT!ÀŒfùú²©®^ŽÚg÷Ø´…oå\ TÚ‘éyèÐÈu;XA"‘•ñf,“G “^¥%†ºˆV(Þˆû^ •ðÒã,X¹Všñž²‹±²ãswy]¹Ê…ji©dT™Ž3ò¥¹hg0»#@9H™dSAÿ(£J^~øðá1ÎjTÆþûïŸõ &ÁF´ûjRÁ_¾ôál©GˆÜž°†«këcS–Í›7¢÷ÇY&/Íœ#»Œz¸±òB>–ëAÚV;²1H;«ü,?h˜HS‹ì>f„T×î¿RŽ~òÂdzeŸ]ÇºÑ ʇvt—ç‘-‹Žcü-ÄýÒnËb&0³xi<9Ð`_±Á/å=s úf“Ì;ÿˆì‡zh̓ٙV‡>èG0~ð üÒd¨ L³ëªÌÔzÉÆ*ÙZ_'Çî3%Ò·9œõÔþvÄ¢2wŠ÷Ä›ÉÄaƒe$â–› /zmµÙæ³5›Ä+ðäð=&I=Ëý8k6oÛ¡cœZíæx×Ê…XÁ%ž¦±‚–:ôô:ÐíDM@Ñkè à´˜s ̬:›K‹9ž.&:‚©òVXÊ/0‰ 2æ)8ª*„ÖlÞ‚â%¥rà䉆ëdÜ­îëøÆÌÚ±íþƒ:ª®‘W>š+åàõ­4|ÿÖšzÙ¼u“”áú¦í¶S´e‡‹{ùÑ{Vœ*0Óù7ñØ@ž˜Ë*T¸æÂ.ZÏ‹Šø¼Õ_¢„<q†qÀº=K/qž?HwØ~¥|í 03Ù¥ËsªžmM2)âÛÿÍZ¼RÖnÞŠß,¥ˆ¡TQ*Ãwè'•½û˜u¦å<ôÙi‡ÞÿbÜÿDÁÌ^²ÊÜÿfÌLz••ÈÞ(ß§B*ûôm•0oíè.Ï#[ÀÌ1Þ^`Ök"(S“âÍ7ß4ÀË…€K”I gâ_dO<ñ„I«æoÔ½`QRþF= ¦L³Þ÷å±ï¹çS8õÔSO‰ÙEWu»Žâ¦0§0(J²ÅƦ–f“¾ÙÈ îeËÃ<ØXvaËÚs@vl»èØGõIHoiöî?ƒûÕYÏêvÏ£k3³þâYÌ\Ì<òŒ¢Þf,’Vl±«ª¶ÊÉŸûœÑ(ø _ýêW&¡ƒ}äá‡6ád”ýd¬4#DÆ´”ÿñ˜Ù› M'%¯‹=cÆ l}º¼öÚkò…/|Áœ»:0§.—oÀœè&ØoLf±S¨8¶‚ÜQKÁûÏOÞv8Õ#:ÝóÈo`&&³˜ƒ×QèD>ú¨Ñ5¶ùdj-Ÿ|òÉÆIJ`æ¸$0xà¦Ð:æö Ñ\q"†æ^xá…æ˜Ü—@̬¼Ç{Ìœ“/‚ða‡fhóÏ?ßdîÑ"ÏG`fÄK<`Î8\.ߨŒ¶ŽÅkg¬/¯ogµšä¶öý'ïGË™ÆN›µ6îyä·ÅL€Œ—`²ß~ûŽnwÜq@§\N8áx³îÉ'ž”šÚ¹à‚ bÚÄ<Ÿ"Cì´ÂylR”÷ä5ñ“àÅóì ^\Ç E&k¼ýfþN\b\5?_© rî‰8fκ •‘Êñ‚V37ƒaß¡gžV;a¡`J\Qñ}o~ªÈûKà¢EÌë£H€&¨ñ7aÁÊ']˜»¥Å´ÚxL>|r¼n ̼÷œÞÒjާûážG×fV RSöB $@s! óå¼gñ²ü‚t˜~×—­}AÀgÿÒÌß|Šo¶™÷³Ýswæ`§£ÕFG¯!<¹*¶è€`û 9BNOi5¨€‹æ®Ì q‹ÌA!嘳}Ý6°çcFa<`NäüëQÀl[Í!@‘mÞ ̹o‡m5³ÿÐCÏDg1w}`&œ ˜‚™ÁÈ;ó/“1©ç×—~>$›™T0'±šÉ7犇r@ÿ8´šYu‚}GÕµôwÌ]×b¶S¦m*BýPv柖¯²y`nÇs‘7V1|ûšô˜AËXé ½&;û’}‹Ng;DÖ¶à; ¬0§h5³C1p}üøñY¿~m_/;Á9XŠÈs×µ˜ƒÀ¬`Ë$Æ2Û™ŒaftAXKT1,Š%ˆ(¶°¯;V P¾Øíº|ü×Èut=ÿßÿþwsŽÓO?=¶ž‹ ×‘ÙA`~ýõ×0'ê|ŒÐ`IòñêÐ9 È];Ø—{Êç µ×0w]`>à€óƒ>h@G#¡š™2 £ˆéÔvæß/~ñ ³ï—¾ô%c4q?Æ9ÓQxÄGȬY³Ìuiv¿ úÞ,lÊ$:>úhc)3š×ÆßèÓ`(f¾÷Þ{¦æ+nwTv`<`æÌ¡G‡Ë%â:ùàØx‚³r[˜;Žóg§ãË‘V³ò€˜»&•˜5óúÌâ³3ÿ˜””j2Á¹ÐÏeX‹£Îœ9Ó(ÖQᎥ«n¼ñF¶3&—œ ^çwžÚçž{μàò“Ÿ˜Œ?‚<³Y¤õã?6ÀM`ç¹Ï8ã sMgu–‰îˆìÀL,æn“ù—Êñ ÄÚq8ÝÑŽ]í#6ˆUZ'ºQlš–‰·:á‹öýçw~&ãwÀÜõ,fMê"(jí<í¬çwÚi§‹˜ÀLY´h‘¡·h)˜æ¤7H…0³}Ü–¡®ä«ùLúƒ/x‚0):õ™Ⱥz¤Dø·qãF”+æo_|q‡e™iãíæîLeØot^;;ZÍyÉÍJ´R‹éØ<ޝIá‘3ã'ÚQ4ÝÖlÏÒ5z ºé6Ìv|*_Žœêv„\¦æìóA—Ê >Ü~ûíf¬p f?ªÈt.ºè¢X„EZ‚‚G»ì²‹¡Þt’‘#f 4-bŽÓ>úȼȹ¯‡Tä<`~'uÁqL ç±üô#©Õþì³Ïšxg‚sGf™œ»£2Y›"æÁ±à#§T|`ùDe´²ŠùI ¦×™NÞwrvü |\t|À¡ç6,×ÎJÀ:X,€W@öØ!øÝ÷ŒK«:WT*ï».0Sã"0—/_n¬f>g.œÑZ&eaDZs[>Êà=d &rÇ´l TüÇëá~ü§À®úÌtèéõé:/^5*ü4HtTv`<`vTFÀÌÎÅi߯¹ˆI·­™`LðÄC‹àÂ+"œ³gK!¬‰EÂÚðЙ#´(ÒÄÌ*ìƒÞm¾{B‡ ,ÕÑpÜÆú& ó< [ó-ê`hQ.£dl«Ù…/v‹Y½V;óOïO°Mvì1‰Ö°¦^ÛU®mº„‹îg‡Ë©C™ûhH&Û¢©Ý|tV¸\:s£2t±MK—.57ƒoÒlEh¤­ÊÆNL@äwZ¿ìdxë SLáà(züq)€Ó£÷>Þ-b[ÁJUXŸA*$ö;fÐa¸©EÈýŒ0lM­f¤#~§ïˆðEMúqá‹ù Ìü{êÔ©q´˜mP Ö÷ÓíDmÐn«¦g¶²ù:3;0H)ټώʰ‚ÐÙ&Nè5k2Ûº”Ú¡ô‚Ï+¾ðùç¥øo“"pcc>m õ#b\r"矂½Çl¡u ­¸ÉúŒeM«ÛÐ'ÊOãUÕÕ9sbª,(­)Z¹|î˜sc1'f;tŽ GÒI·4T<°U½ïŽL i0·Ëbî)À̤ëh5“Úàºl:¹R˜W']˜AøT×BhPÉ­·J­€˜;©Ó/°)8cû‘[SëXAÝó”ÂäœsăXˆç_ßVÿÔ¢ã0Õ{¤/Gö­l¾0g˜YÌŒ†ˆÌ Èá0C#טuƒ1;+ðÏas¼tþj…Ξ”žÐk²+ƒ+psµ+@“þàÂXhûzm!p” 0óº³Ì|]Œ5³>x>H†ë02mJ©8Fð0BàŽË®¹FŠA[ˆ ÈÖõ¤Ä)]Ÿ}€èyÌz¾´„OŽÀšÞJ‡"¢GFnÏY¦4>Gï:-ÛI?®kdz‚2Ǩ¥Þ¸šíöf×üc˜£&1¡Ùz'þÎOŸÿ¸žûñ­L çSÇ™Î4†Ãýõ¯5Ç>óÌ3c‘W8??µØkgègè=‰çüK ˜Sá˜ysi1wt™y~ÒƒÌNBÏq¶8æ„íPPÆ}õzÅ/ûá%ÄØ^ (;²ëxË<Ö¡ÐYêÞ„ ü0µ¨­ Gc6Úf¤lSJݯr̹j‡Žq&w¤̤28{ŽÌÇzXÞúôMyqöKf¿Ãw9\¦í:M¦Ÿ2=>s¬ù÷9Ôd9)fåpYfŠ×3yòd“”ÂXgÎl©ÿ̺{ï½×$£üà?0qÌwß}· c Ê ¹#ýÂëxçwLöµ ;« Z̬S˜ªÅœÇÌð¦éÔ#›çËuçV^K;$*\g&ò„m¶ƒ Ì rb—\b苈O¨åš-ë8#Kš–«ÿg ³ù«_”Ÿ¡Ã÷™S´}V¬XaBTà(›ŽØŽîW¹ÿ\µƒã€ÀEiÊT-fiA`¶c“ïúð.Y[²Öì7¨aœ7õ<œq̘YË/¦_ó¸Þ9s昌=‚6㟟|òI9÷ÜsMm@nËÚ~_ZØLÓ¾îºëLfȳ1ûd˜SËL¿çá³aÊ7+ŸtF=ÀösZ³>¤\sgXÉô‚³Ö¾©yÏøIGÒJ#÷ßÏž.‚ Ÿ@’/K,ZÄ¿nó7¦arÙe"_ùŠ Î-Ú¶Ï箥÷‹ýˆÓs[ÔY³ÛU~#xì±Ç)EeÄæPdªªåî»î–盟—šI5f¿òYårdÁ‘rîùçš1ÆçÍÏ믿ÞÄóoZÁŒsæy9¹ž@ËþAfi)&šÐræu^~ùå†Î p3›É,ÜF3þþ¼FãAUP© fÕ‰Q`fªyF"Ff¾Ms ÌÁÓ©µ@®3`HØ7vb8»ðú… M³ÂˆR<ɶÁõ¾Ã®Õ÷lÜG=Ÿ>s$…ȵ׊Њ¦Ó¥9Ê#ò%#íH¦Ñ ¦árúIðiI÷¾tcþ·#Ú¡c€¥šl`Nd1“bˆÌáHXJKJåÎÛï”7½!ÕS}`þ°\s€œÑù1«Ukþ”˜ˆÂYÁ™V3š€Kz‹}‚×°xñbÓ7¨9A bÆÍ®¨üäþ¼_Ôç nuV=@˜ùrÈ •Á‡–K`îhÏv”V ǬfvN§z¯æÁ¨¥ÌÐ7d?ytòù œŒ¶ˆý–÷‹Ìà˜V¹EQ¤J™´ÊTŽœë˜¸‚*Çpƒ‡ö=穆=éóàÂNiË‚f3 Ü %¥f1§ Ì´˜YZ6‚™L,yôáGeM,*c°œ<ýäV5ÿ”úвPu¡t¢[yÍ¡±Ñ*ÊEÃòÔyÌmií3%›÷Ìæ—;Ëù÷ÒK/™¾´˜³BetG`V«™šV­f]ßžêÐÁvÒßý®x¿þu4‰$PDfDhÂóì1®É" ì¸L)ç¹hµb*"Èá“Q ÀÕyˆ¦ÓÎNB1œ¶ì´é‹âˆ4JÒ{?û™ÀãåŸ9@õEÆóP'`P43Ìí³˜ nüÛf†8ªÅœðZ°jK¬àå+ÌŸÃG —>•}ZeAÅ«ùg‹oÅÍ·×+?H  ZÚÍþl®3㛃TF0Ž™Jy¤d´Ï;‹9PR«l°}ŒÐH×jŽk1ó@ámö zK*IÊ |1Ë”ÚÈÒ“óÏ(“ 4 M4G˜í 5á'’°Ôd>?¦n!X.&…ÿ  Pˆi Ó¹½mã'eá[ÒiÅGs`¨À¯“Ô$ÑóÌ‹¢-ë9Þóà=çÌ…™Æž:`ÎÜbŽÇ1˜©G‹9žtV*pvd¸Z>ÕTçŸZÌA*#ÇœVswfûwZÍ´Úxí}ÚÓ°=x“=„Á̈nK2ÊüÎm@{D~ücñ6dƒ¹R¦ê˜SªÁÿT‹;Â)c‘9@ÜOÍ ¼¡ ðö.‚8õ7L¤ˆ¿Ÿ?ª#^ æŽA’ _B±—D‚H‚àó°½úìœÔÐh¥ä€9÷T-fr¼Ál¿ =ÒSÝaQ‹™Ü7 Ž´©Œž ̶ò™Ó t­æíÚA‹– uöÙ"÷Ý(?Ý9uaÀTÊM7 ¢å·©Ìq?ÍÜãµÒÙd·#Ú¶9þì( úàþ գЇ³ªqžEˆ)†32´6Ú”Nø^«ìB¥Gø­g„11õ;‘õœŒZ²eA•‘3c‹©•‘ÉóéI ï¯V0Q–³˜Ó@ªPÕ'T+ï9Ò¬©™Œ§!H p1K™ç€s$òÔSâáA%:Û£üf§ÛÚâ;#L§Æ(Bx±‹è_ˆXV=·tÊÖ³Í?3a„Ö3ƒ;nYÏñÚ¡/G®#çÉl.>öX͘³ÌЬ0B¡|r¤¶/ §Yé<7­ÔÂl:#mGiJÀÜñΣV3o¨†n¥e`Ú§œæ/~Qä_ÿŠ:ÃâXË6?,” E@½‡ yÒ䦳©•T¡3û©t‡±¤ÁK"u´ä曥AüA€N•¶­çbH°*…“èIOAÁήj®ý­½ÚÖ˜3sþÙÀÌ…ã‚Tå È3«Õì@9ñ ÕKìˆ 5BRŠcvsfVs¬øWIÞ¨c€©XË”ÃñN<Ñ€—$ålA«ý|A%Z´aÊŽÒ k¿üÿþO<Ôd3*wšå—Äy™Ðz¦.4*{¸†Úàz&(J†\&§Íäå0ç‡Å¬Ûò㊠æôTòIÙ-_¬eö_½{WK†¶XJ̎ʈcêtZ+:ó†¥Â5Ûáqx3†.½T¼ÛnKšHbÊ>¸uáA7Ã$k´‘v› °8é˜eÌi£}Çh®#7®øT™¤¶Œ¤lf©‘T€ÙQ)Öcm:’øÉªìÀ‚컂O“­ZÒ "ßÿ¾‰zðR Öï4‹Y;”ßVÓ>ÞÒ=¨ÀâÝ~û6«7‰õÔ~æ¶ PÜ«C̳ÉRD‰¡`¼3ûi¥t220gŸcŽÇ +FdrMj±SÙ¦ 5w ¤HiÑɨZ*j0hy ÜàF¡$*Õ1 šÚ7<.÷a›˜´D‘µŠmu<¥/)ši•&›ÑãÁ:eŽÙQñ·—&gãh~/ýío¥ì;ßÙ–É—lZk™Q ‘â[:€ Í)§o=GµqÅâ¡"LÊBM>8‡pŸ!ŠS‹Èê>{c"èûV5ŒÊ‚jFfªÏÏsv©Œ`õ‚%)›JH÷c(jo?[]ÏkúôÓO͵ТæµÒç@0#`ˆ j,äÁÙ·¥8þÇÐo®Å‹žZÙ|Áp_~§hšßÕªÖ6yä‘aœý¼¼üÇ6gz)S˜“OGØh5Ç+@i¶§ì%€¹À©μ0§^ªCï¸Ø6‚ *Ä8SÔŠÍ ˆ³m=cPx0÷þóŸVŽÁ6Á™ý ÷ ¥‚jîºKZHáe±d%ÙaíØrg1w<0Û LL`é&J€²ªþÞçZ¬X{ÌñXŒÊ¡¦2} ¬HãË™ÿžB–,A–bøŒ{/…¥»+Ë8Òo¼ñ†É¶ã•ã¥N0ßÑO¼^VI!(jÒ‡^ÇðáÃ3šØt ÏÇëã=Uå»´9fÌÉ­fvÞN‡‚V³ç[vŒÕí…B¦Å¦DñËjISmiÐ’æ½Ì7 håô­gÔ ܱQ×K™ÏrƒË¯S±©Ü!FløQ•åù4J&•xoÌÙµ˜¹-ïýÃH<¢µÌ’M¼®d4_*ç'eA ·Á‹Ç$5Aƒˆ³V^#ŒÀÊÏÇ m~$ÊR‘à~œÑ–àÚ)”_ æõó;Aýudßí þ˜ÎÅ èW<^5â°éð³¥DiuÛã’×CšB¯•uùBg¹J,pÖE!¦^ÆbÊX"ÿÇ|V¨ .|‘ð>±!-gVgQÑþ”ÎbnÛjVq ÕS‡c-3ˆ» $ŠÈ0¢ùœ:!ÁèãÞšu]ZéBóe×:¥G-ir驆Ô)8ã~×þáÒˆƒZE¼÷ihR¾ßsN© Þó·â9zôh@ Ús}60ëßÚf»-tuöñ:¤ZEÏKkšë¹‚ñܹsÍ,K_æÜ†Ç³+°h;2æà½ ز¢ i8¾ÈôœÅœ…´š ¼±ËÍôeÜüJTò1Í8q/ŒZÒHB‘‹.Š¥aw h¹ákoÇ&«·ÜpC›!u­,gŸª½ñFiüæ7 ­aÀÝOÕnKÔsö-f•ý$?;…ý¼ØþtyY:ÿb…¾¡¢@û{¢=;AŦ 蘤ålóÆÊ÷Ú|6A‘´ z¼l-¼gtHòž±¼-û™‹¹;cMgQ«™›¼W,ž9„iVªøzxË·ydZä™ Ìí 2ò¾ø§]À•/"É7¾åÝÛ¨ª‹Zñ·«ûùÏ¥á{ßÏ÷¢oñ+kÛÏ Y% WŒ5;3ï=ÛIgã}mÈôºT¸ŠSÿöVªwÏÚŠ·¶gÄ,KàÌ&¾)%ÃÐCVþæ3l ˜Óvþ1ä$—ÀÜÊÌÇ•¤äƒGg.0W¢T2`ŽMש{ 7íæLÛÑ!ÏCدd"TÐoáµ§èTp6‰(ÿû¿aUmÎ\ú”L´«õ«Îj1³.]˜÷Úk¯í*˜˜³•̾ã,¨³R²é€ ffca»x/' VgP(?+5ÿöèd|ìÆäª6X°Y{ŽŒÐ åÀ©qVøÀì¡j^^m3SQ, }KMÕù—vtøóP~‹¢HpŒ–B§º€¡QIœ‚ñ46šÈÒ‚‚¶…è[qÿ·<´òrWíWù0>tŒ3*‚€Û0“ʰ×g³ÙÊ&l¯u­óÆ ‹#/¬ù˜ÓÊü£)Îʸ¹('ÓÕ¬Õ£¥w×d©*ÜÒ¥‚»,œ mY‚Uô@Ch¼½ÀÜ•¬ÀØ,“3‹ò³Î’Â?Nœ#°š…µq=Kp¿É÷3^4YÚpW¶f;¢:Æ?BBF˜ƒTy ˜ã¥ÛgO­÷§NEÞOð(Tõ‰Ì¥d˜>øàœZÌùÎÓÙIj5“— XèèbÂĉâQʲ `®!0ÃÑà±Ííæ.É›*8³¤œy½±QŒ°ºTÀYd[ºwõC×^+Ux: –H¼>ÙøßŽh‡=ÆS±˜Ie$²˜ík#VpÑÈŠxu6SµVƒ•¯•»µÿNV¶3@Ù¶˜©Ò.‹¹-Ž™íT{Î%0w%Ï6ï ­f#„LÑw¸”EÌmXÌ\ª© 0wµH›36´©tÄÊ /”Ò¹ÛJãrΔ¿ Á™¸táBé®™™`A®¹;DLtD;ÒfZÌ{#;3Q¡ òþ:ò¸Ðxa¤Ï¡Qª¡ÀÊ6['ÃŽ¢P€ãÌHy`6SEè5|.¡‘ÀLš(‘Åœ”cvÀœ¾ÕÌë¥åLžÓÜ .¶a1÷D`Þ\  Å* ÐŒuþç?£áu©€³þôíZ8× ¡`ŒŸzOtßsö™ëã2ñaåÊ•&Ö™ Ä…YvÓ¦M3qÏ´ž#~†x@>ÅìÁ3Î8Ãdá©óÛÙõ-ñoHé2É„ F<Ï£>j®ƒûÔx,Z¥¤•ôšÌa[Ó]˜S¡2ÌvünOµ˜íã-Y²DÂb+Gljz[‰BÂüŠö˜Ì6jB¤ÇÜíbs9@Y¤•ÇfL7€VRÉT«™VÑý÷Ë ¨ù•aöGl³V‹pÀœ[*ƒár‰Š0ô€çC©XZÄzåä“O6À£ B?G$ÏEŒó%Jí ¦Pó<>c9z Žrfðñ¼Ç{¬Ù†À|#bÜy}/¾ø¢‰&!x3ÃbEüû8„£2ÛKQ‡&_€ÙQ÷†¼ÓEyÓÃŒÐ@äJ7[5—ãô\3•¯ûÕ¯¤‰!¨¦1KNzjU &ðÏÓÔ™x“Šå¬Y†è °¶W oŽ&Ïki68`ÎÅLà .´p©ø**­O¥gWš;o®|ÐÁ&1ˆÖ,ù׈°QéNZÕD"íÁD *¯ƒ©ÓŒ¡UL ;…8ÖdþóŸe~Á˜Oƒv_DÔÛÂ,>бm Ìo¿ý¶¹g1çxÙÇ\ «™7¶ÀV†q•„"F¾ê\=Tèjÿ{)@çí±³:Í¢sͨµüµ¯E“Qü ɶÀÙ¼ qïWЋ ¥;4k ë€97sð:Èñ’Ú£ÀAÑdðá1475Ë“O<)ÓO™n,`&h˜ùË_b‚¹“I™ÖúàƒFzñÅËWŽÏmi9xàò&bÿO?ýtCÒº¦éö!f×ä™9ø èœßsÏ=æ8ŒxPõ»Îfg1w 0›Œ%V †¥0 ªµþB‰„Àì[Ìxó×bêî¡C©R´˜µJŠ_!Å€óe—‰ ¶`J–³¯J׌N¿ô_ÿ’QHÚ1ÂP–—ßsû€™'fê>ÄK‹æ¾w‘’Ârâ‰'šÏÇa¨p!]A åÂížÇlCF{‘;~衇 ?|ã4Š“!¯LPcˆ*AŒô-mr×÷ƒÎÒtgòÛ<šŽyMèèL`f[3Ûéœ9@¼GŒèK DÄÙ†úÓmbEÛolB¾š^ýÈ#QM ‘ÌZÅ$¤ðßÙg‹ü㩳¯ç¼º½0×d0KP©ˆ¿æœPûQz ÎupfÆLIkp!}A~™JpêÜÓ¨ ‚)­]ZµZô #0è¼ãß\OвÿÑJæ¹¹¯Jr[‚5¿kdH¦éÝÙ²˜ií·‹ÊpÀœ™Õ\ƒ)Ü:ü=úÞ{%Ìéx"‹ÙçF) _õúë$æ’¦&÷`ö‹°ª®³QÝ;í4A½¡„EmƒÇ ã‹÷;š¨@ÅoðÏsö-f˜ã]OMM5zµù>dè©(¯Øþyù¥—x~þSËVköi(&m¯Ómõ÷àõd3“/ÀÜ.‹ÙqÌí?¶é\ø\ÆB¬H郲6Ö•ÐÊà ® Ó›0òçM w žãî̱ÎÌAIK÷ÓgÏ4nIμst†°ïzpŠMS:}º„}î¾#L0G¶»'vÌrG¦Yçä2ÌñLâsÚ™˜“ßëÐ× œÍh„é˜Ð¹6ö©ƒ¢©Éž_FI\¹¤mšV#,úä!AªIÁ9ÐØfñ©§Êpð”%àªÃH>¨b\¹æ¬Räv³Z»væ_0iĶ„µ*Šy²Äx€ù”ñ— ˜S¥20gñø:%[~­Ñý>üЈ»‡âÑ2‡p¹z„Í…RŒÌè)ñ¿9]%8#ÃÒ;úhAiŠGIb5o¸Ô×þùÏKÞý*ÿþ:`Î0Ób¦ Y<ê@“L˜GFQûÕŠÕjE“Gæ§òËüäïê ^£î§ZíDéŒ\ˆe ˜YÐEet0‹€ÚÁt~ :ÉØŸý,ÎeS¶³ªÓíj8¸B çI!2£'‰¿ÛÂGäá#™ò(b Zc˜]‡ð"8‡@Ʋ‘[)¯êÏJ’íç€9u*ƒÀLäQÁ¦b¿úÉÎücèc”Õzf´ÅwÞiŠŸuÔQ(èó#s.îÏ$ÍÚÓŒkæñéô{)ü ×chŒÑ zõÎÌøKÌñ,fÇ1çº „ß  °¡<ýÉÖ–žZq‘Öu‚sªB`¼P3 `O«Ê[¯àüôÓQΙÇg;ñd ê«m3FF‚ÙÌŒTC?öÚ¨耹ýÀ¬uódØ,`›bزy‹œrê)x@Œc¾úê«¥üÕ¯~ÕTa(û7(æ{2c'Ožl¶etǹÔñÆñ¸ýoû[s¬xÂëcdëüiÆ ŸvVÆ_6€ÙYÌÙ~WÙøùî»e4õ´ÔRÀhþÆK®, ‡•ÐjnCt¥'–KŠécÖ 8#ùÄcÔK²‚þËp ó€gž‘RĸV!ŒÎó Ú²¸0· Ì ¶e˜µ’ù‹/¾Qøñ&#– A‡Y}‡#œQ3ÿ¸îfQÑšf¼ñ3xN }#H/…œë ¨É4lR"´ ¹/“W¸ÿß'ð:"š˜€Â,Cž‡Œ“&5Àä:ÚTÕ.€™3ÇÜYˆÓ9ܳtšMÛ*cF xºp< ð¹ÒÚ?þQÑ=ò m8{j»8³ß‘sþö·ÅÃýÎútF5çz¦jSìSåê8û÷ÙsfÀÌL¼ 0ké5Š L9»æÂc?ÙÎçÁùkæè–[n1ÀKg"ÏI‹sÎ9Ç*S±5Ûï _ø‚ÑÇ °)VÄûM`«õ»Ô¬aŠ7“[ˆSõÎÈøKÌŽÊè¬ä; ª¡2ÇôàÕ¨ñ5 g(^$ïl@h]-¦m¡TæzrQ³œ¢"5dcÜH Û¸ `Лb8Ð[¨Â»ÓÜçSˆ‚qÀœ0+ýýï7€{2ÿ¨côøçß…xUÇ <2i1­a‚‹V1…‹Hw°˜õG@çy˜)¨ÿÂØb¹;;ãÖ6·ï¬Œ¿l³£2rÌ óÚŒ{Ö€°]ˆïaAog5û‡áü`+8„–A=˹'3y‰8æÕè÷ÔË çË…@9ŽnrÈv&žyvÌ3ÿ&@©¨rÒ ²Z­†Ö0šH°&èó“ÛǫٙÀLÊ…Ñ) ÀÎbîèKa :Gñ­·JÑ7¿)Ë®5úöÛc o©†–@ ÂÁŒ63Ãæ’ÄpöT`nå Ô0:ˆßxˆW†¹´3ÐXÍ~¸â ¤—ƒì`,½…õQ –¶í€9s`ÖES¥m`& ÚÎ8 ­³÷ÑõvŒ³ý‹´f Ú€n_O¾…˘ÅÜ™ˆ¹þgfÒ^åÕð6RM+žÕì‡Í1ž¹J[Œg6Ö ³˜Û¶œíH 8{‚NVÛjnÄ4x9¨ÑpȆðlê/¿\ênºIÒ ¸ªÁsp=žëft,2ƒ€OÐûÏþcD•h‘r¡€>ÏÅgÂ}:3P_TÊ1§b1§Å13ožâØpˆEg„áÄjyî9ñ,º£ÓÛÑž‡Ï7GÀ#‡@•13з˜ƒñÍa´g1 ¿îxß}RäÌmÆ 1rÕUÑÊæí¡ëσcœàŤT™´f˜£QòЃËŸ¾!Ï}úœÙï¨]’v= –ùÇæ_A'†Iî…T.ÅñY•„Ë…)× §cuZÞÌ4Ü Ùœwøáù Ís‚/™™€¼N&©p?{Þ¼y&:„ëÒY™€ Ì ók•‘ 03f0—ÀÜm¬@Æ\ú ‹"e‚ˆ{iAøÏRµš} ­_ÊA‹%‚ØgQÁø0»È´¶30‚Úr¥ì½À7‡­ÒTâocdA‘±Ö>x(@€½Ø#7ŒAAv ‰öH“ÒèσÇäFSšSfΞƒÀÌ¿™ÉG‹ö®î”M•›Í~}«úÊùSÎ7IbXÁ“©×L a 5㘠¾<'HøÛc˜q¬™ Èän{)´º™tBkúvD=ñ·ËáÔe˜}ÈLÀ‹ ‹ÀZ€<þ¤çwF& R¼®xTFÆ3™-—ÀÜ­xSZm[8ý"¬'sÆ©4b0¦Ò­”ç|Qý„<:±Õ‘@m®»ññYi‡íB@ £³—CJµÉ$qØvžÇp$§”DLOF„æÔQ™ÑèQ‹™ÓíT9žÅl F Lî®;î’—"/IÕ¤*³_å¬J9Ì;Lλà¼XB Ûrýõ× — Ì¥ø’cÌóBT"ˆ³6 ÁžÖ3kRwâšk®1Tדº`AZ©’ÅЩ¡%Íd¦swV&  Ì©ZÌiqÌÌÝ*ÒÀ ê £W¦ ÆZ‚”SN¥ 9uÖ}ýÔâÈÞ{ ^ý E ¸:vIŽG‹÷؃ÅTä“Û¨.u¼nB?®ÓoÀ;ìÇ…¼™öåbqÜîò<Ôbæt;‹ÙpÌe¥rÏ÷Èks^“ºÝ£@Xöq™´óArÎùH·®Z­+FwÐ’%Í@ —Çeum.¹gÁ–ëHg0ûÎ2îËÌ?‚<3‰I‰2µö_‘ ¨T†æ|@´‚%0Ž€G£Õ¼Þlô`ðÉj5‹ít‚ÕâÁb@&NжæäÇ£ò\„Ö,© ¦mû…^c”†o9/F¨Ü <ƒ^À&¾œ¿ ³‚³±žÓHzéIÀL@= ÷©Ð¿G6ÇÌmV¯Y-O<ú„¬XºÂì7|ÇárÂÉ'ÈÁCZe䩎²:ùì’Qzln¯Ûhf!rú\4 ¦uþÔz×ý:³‚Š3_ íæT8fÌi¶ÃO‚ðÀ1GÀ5«j @a$<Òt@…e›F³‰Ë½òJ‰ÜxcÔ ÇrsÀœ„kö?3à\†Ú¥øCkg«o5o…¶¼òHDe„õÞÃÚ¡de"åºnø<”ÊH˜IUбF‹9ÙµT£æš 9QÍ?Û!gÇ#Û¿…øõšíXè|­ýg;ÿ8è’s·­cÎŒtFÖm`: š1Ý/rŒkö-;ê8xp~x¾&€æv××ÓA¥4fÎŒ…Ð)8“ÞX.šiÚ•à2c”Æ·¾% 'S¦4zšÅL`¦„'Y'Ñõø÷Ï®.ÒSjþ9fZÌtþS²•Ñ HüÚu&³ìÒKEn»ÍðÉœ:3lk¬µb?KPS&":ÎHÆ›R;`NñØìü¸þB8Z+¯LçjΨF\©‘EÒIìÅÈg…AC0J£»óÞð{S²ÆÆð¶dU²u}ð{Og›ÊH•AÝsG[Ì´†i9<ñ„xAT yâ5ð0†AT?Æ5ûN@añQj@Äq:`No†v¤ô¦SZ̶Õ“] o_xöc”üP{…,zmíi3«…Ø &ni›*bŒ89fuB:‹¹³Ù·„MÕlx‰=Äcz~}¿E\ Ûb ¬Å“@Àƒ¼äC´œ€˜Ó£4øYòUèxOYõðØ¯‚E=a±Øsöïßÿ^µ¡4’$žô$‹Y±àÓO?AÄþdè„Kf9÷ÔEï“ ÿcH-c;uÝYÌ ÌJg@;ƒü%ã›)h´ÖH4‚‡#>f5Ó ¡Õá£È_þN[)Ú˜Ól x¢Ó{è¿Æf˜¿Þó•H@(EXc„bÅ…°´#<¨1/ÇDµ{0saT-æ Ö#2ãp.”ßWÆa3>œ¥® Šàë€9_êþ"³O«ì?.‹a5E&S)KÙÓpÄ Äƒ'7be:`N¿•°˜MŠ<<$&­æF´sùgÈhTmö4ûŸ§ž*‘ÿþw›s¶‡[̺-ÿ±”CèÌb|q(]ëîj-3>›Yˆ¬È„YÒД€Ù…Ë嶪‚æù*h´ Cx›¢e’wÓkV®i©XÙvèœæv´ƒs¤(øBd4’xbY* Êè X7”5éÜÜ—×mÕhÌ3ˆCit÷p9˜íOZÎÖá£CÐYÍÛ?/Vaar ˜j;C“³ —ë ‹ l3ZbvâÃ"Dh U6l«9‚;zÎÂm‚³˜Ók‡(Ä8e¤èŠ´Ž}n-=ûl¥ €Ê5g€fOT{#`öD‹Y…Ø@€Î†¬fP:´#A>ñÎcMÞŽÏvsN9ÍÃ⛓±µa¿‚ÉfT:©‚óHL›czÍ:‡u¹†néCuÀœ&0sñKRÉ׿.‚Ä-ä“¥l(Ö F`سœ€tÆ‹mîiÀçl©ÝFâMGÓ"vJ¹Ø’ö9m*ÃsŽ© ¿ ¤(¼k¯:”üøÚÅçž+ƒžÞ¤+NCç ²/¬nâóœÎbΠ’ˆ™‰‡ˆ¨ä´:/“LŒ,¨Ÿ•Ù*¶™•Oâtö`îÔtlòÖt˜Å+U•è%`ߣD/`Lu0Κ–?£LH?ä²½A`¦ö‡æÎ@ê„°ŠÀJŽÕœc9*È}nu1¢ßÁ*'ÂÊÎà@í„Ìíh ÏL«à uömÕÊUb8Mph õãËcV3"7"pÒ=ÑbŽ2™\—&aPMŽ*s¶<§Z²v%í õ¡‹¦d«>F0Î:¸.(YJ>ødåfŸŒqs>Rb…ÎA+š„­¬æ%à8bp”¸Õ¬¡s(x~tsÀœ~;bÓSMÙFõlaÅl? CcÎCt|%¬¨”<ƒž…ý‚ìîÀLYÎDSq.ñ8ætÔ{ï½g€¹Ü—# Î0™*qëÖ­3az š6XsAѬȽbÅ cýR(ŸÖ7·¡%<‘NÔùàwîo‹0yœ“Ñ'2-ŸgS#*Ê”ˆc~’˜ó€cŽh8øzjµ‘g¦$åŽÖ ZÍL¦pŒ¯:瀹}íhõ ôI ¦˜RYPFÊ@Žr’Â~mæ©’TBVyµžêüÓZ}¤¨sœnQÕ 0óœL r¿kU†™1IƒXÄDqpÆRûšç§~3Ax9 ™&€³)Ô?þ–ª¢à>­o®£è*Tb$ z eS=mµ›3Á¸`TŸ™nªQ˜;ai$€á‹™†Ô_õô«°ÎDT@è»Å(DüLÈ[Åõ·v€0{w’1”*žÈ÷¿¿]l³áüáì…ožC( èÞŸþ$ò•¯t+glª³Hpdš1é;Ìkg„±†¡w[¾ –*ÖÙ˜I>ÿ ­áaÇü>¸ÔŸ >Áœ!{Ħ]@ ȹ;zêL$3-šOË™˜¦€¨÷Çoó1VIGýèK½z•AØ¢)—Å{jKž:‹9߀ÙƒE†9Û’Gh5C]Ž:£ÁF¬:“Ö@§÷¯‚fæ €Y‹¸2UžŽ@*úù4ŸÃVTÊØ„úw£((e=Ÿv „r}©ö*C«”<ðÀ&`–Çë ÅÑOÇb&}@°d ©?¨!‘&0óœ"Ó•ôƒRÊ1óE@À"ñl`–,~¯ÃKuxc^ ³IEðsÑ¢EæZxœÉp²³š 3¹/I.zéÒ¥†Ëf{l*ãøãŽkÆY}G¾XÈs³M¬OÈ{«»“³K0é¤ÔÊjF9ùâ£Sil_¯|¤Ô ¢p¿J:fu1¶U52è£÷åà»ÿ&,ê*ðf‘€÷¨ðEíÇ´öŽ>ZM¢”FDX.÷e<‡ZX:g| •%ÅRƒõ«kë¤tþ<9âo”Ríkº|O°˜‰ZŸ, Ej!X®©=×f8þ>ýôS˜:íW!|uÔ©3ؤâø6OLàã¶Zé„Ç¢ÕJÇŸ:y žO) [€ÿ¸ös‚gÆëã‹Íˆ=vV-f–6wÅX³×3 &¿…-A†'ƒíq€ôG™öỎ—ÒÕk¤hÕZ £“Ë{[k%´ë.rÌ¿gx²ö÷<¬…}™ƒÓb–•ßZ~dÊ~Òg÷)2bÒ8)^»^ŠW®¯¸H ‹ å“j8”0…Ÿþóÿ‰Öjd;:`“ëb¬m³Ê~Òd¤D¶®EÃåXŸïE*¶¸Øx:ÁøäD¿ó;ÛÅcCØÔ'(Ž‚4KfeûþòE@Ç&©Ö#´e?Û´˜óÊà4$×@@/r®PÊíð3Ñ"H¡ÜÔ‡CFÊòcNƒšëdÕãÆÈXÍá‚hqÖr ÷‹MžLýÞ·dØ„1f*—í,©ù2•µÉ¤m©©“O÷ÜKNÿÞU9ë¼=îyøŽÀ0¼ÿe¨ù÷ìS/Éă”Êú Ôˆ´Às_3|¨ôùlÑÊaûšúùhâ.rø•_•BŒZB¹ÒxÈõóÐ1Nðs¼ÒRfÆç :RÄ(˜žÕÚ“~[Ès3y†À`Í?sFU²˜si1çÿÛíð|&8ô>ðy´ïPÙyï=õpé6¢’óxãÞ®œ·–Z‘€ Õ¨R|ØrÚ׿Ü*hÝ= ÛÁg££IÏ|ë2¾OoéæÍ:³?ÒÀ¨­ÕµòÉ¡‡Éq—œ#ÍéŽp”æêyýHmY̤2Hy´Un+XѺ§I‚*—ÍûÉ{ËÐB˜S²˜ó˜{J6[,VZñþWÊþ3ynçÝ¥üÀƒe§Ú­²N‚­pô xïC³†+Àm~T]'ž/‡žx´´0\+‡TFO{L )ï])¯ÝÿüçAÙ­_¥Ô4ÁëÚ––ÍçPޤŸÙUµRþ¹rȱ‡I ^–L^èª,ö3“#‚ÀL¾40+ñ³‘,\cQ=œÕ`â½ eœ˜ßzë-Ìy|h¼‡ ÙA(O9îk¢,¶À¹ôèñ§ÊÁýûHýÎã¥`ÝÃ/‡ PpØÔ–·û”c~ôÙaÐ9§2zRÚ·ÆÞj„ÂS×ß*Ó/þ•åÒÐ9HlÂ%åÍ]|cäh9ú»WJ/Ìd¸_W-L̉,fnWÖýšt'#˜Í… <&Ï¡‰(jQwý 4i›³a ˜™ÄÊpsA,Á„VV/Ôö+˜Q @¹ ¥Y>ëÕ[f|á¹Ç®2êRPnÆqV†PkmáÙï[_—aG#ŸÁu…Ý>æ»#YbSÏY¾b¼uóŸeüª2¬0$ÈE“Fl²ôü‘£dßË.B†ÙP€xlz0-feâ“7Þ}ç]”óòzMÙÎíwÜѼôÔræyŠ,Ý‘®`ÓË—N[Q#ñ€¹]TF>8ÿz0ûSæV¦„•¸§¸Á­¶™‡°­Å –Éæ¢R)À4¨€=ðcL÷*Åÿ¸×pšÔ ðrìlê‰BIÛ¬¾"Ùùƒg_’ªÙó¢ñæ‘>“&ÊÔÃ4NËFfq…<“‚ÛÓÙ¾Ögž~Ff,|_ž™ù´Ywìäceϱ{Ê1ÇÓ*µ›Ùx*$Ô,f‚&UïÜ–qš 0çó¯»]¹9‚Ý ¢ì%÷Ýg*™Ã4U4pÃx`CžyFšpïYÓ¹"ÍnªA@‚Ô ä_Ù…9Í|Ï.Tpf˜Sºž™€°”Jðw)f)MÍMÍ­2Çz"•\x¿(Dô2(ÿ1÷²µÏV³¾÷–ÞrÖijä(hŠ÷èpÊHG&ùknß•¨ (ÁTUãÚÚÞÄwο|:üh-ñW€L¿JÊ~ò!ùÙfX¿ êr£ï¸CB³øåj/¿\êo¾YBèÈLJé)éëՎضÊ+¬5ãÌO\ЩlOff±¯Áü^S-üûy«è-Ùÿy©@¥†~°H¶ÃO÷pà BøÆi˜DÑY®¹˜±rŒ¿Œ¤&Žñö³‚ÍBd²ˆ† À—Õ«W›ã0é„…LÕrf– ÍìŠës&Àœ•ÑÀÜ-øFü«ÄtE@Y„P¿üÑ&x°GA=.ä•}kY Å¡5íK:ÞÔµ£#Û¡󫯾š0›cáûÃ<"; ÚAê£ &<ÞÚµkåsÕíx¬YˆLâ2iÒ$H]q]:TF»,æ|æná¡Ç½©ÄMö  'øƒ,¾äüè£Ò VÃvÀì<ü°xè´˜Iƒ¤é" \;²m1¿‚„§TÙ^¯Ÿ¬ƒÇÌ¿— U»3B>7oÙlŽß·O_™3gŽ?ˈãד5¸ìL="àu…u³gÏNZ5Ì`Ì9€pÏÊqÏ 1m[—ftÄ¡O>ÙÚág?88…÷zÔúnæŒ+V,7@FfØÅXz–Hû˜çáb‡§éßù°O[Ï:0§j1;`Î0Ó2^‰›:è÷¿—þ(Ö˜ÐZVj픹sŃ–@[ÚÐ\;º 0óoþÎê% ‘[µj•9þСCM諘0­œøAú&(¿¹<ŸòÐŒsf”ÂÍ7ßlŽûÌ,¹üùÏ6ç¸âŠ+:}Ÿßcœ·U5He¤ãüssç±Cˆª@aÔàûØ«¯–‚ˆZÀñ¬f “ƒÃÏ8þ€·4׎®À1+8Ù)Ùëׯ7 %üÝæ˜i12áD‹±òø»îº«ID ÒLFa 7ÿ¦ð #ñ7¦zwö>ŸB˜¬­‚¬A‹¹Ý³æö]3u-VA`8ñú£3²”TÄ_¿¥¬ar?ú‘DX;09h®ù̬‚f½Þ¿üå/2Õz˜¶Í…"ñ,GE«Ôæ¢çÍ›gªRú•àµèé AƒŒeÊ¿ ‚\â܆V,‘:kd%¶…A‹™Q‰â˜ó/‹Àl~´ðð<ðjƒPp²ì ƒ’ZÁ±§ŸÓºtÂä ¹vä•/*ƒc‚û¾óÎ;òØcɈ#Ìñ—ÃX9 •y(®oce|o"™‚<®=åbËlrÉ—}Ú*È´˜ÛMe8`NÿzùÖG²ÛnR|ÛmRN‹ ޵ìïMËÆ[:e* t *•8@síè ÀÏbæBpY°`A«b¬´ ³CM<‰ù qÏ*­©çʧ}Ò‰ÊH‡ÊpsÀÌ{Cð ÜÜr¨ÈÑQGkûI<1ïÛ¡‡ t£ß ¹vtQ*ã ÌQª‡Ìüë©¥¥Ìí¦20§Êì ÕДs îQùé§K1¼Ñauðw`›Ð8¸ÜtS»øeh® ÌA±";ó/Çl_s¼vô”%U‹™NQÌY²˜¹0Ȉ³0sz³•àÏBË–%vüù€-û›D.º( Ìmˆâ;@síÈ`VV`¦%Ý–ÅÌßìb¬œžn1ÇK0 &ž8`NóúhÈ\x¬gŸ}VÎ9ç#r¤Zßþö·MJ´êQ¯‰´Áû·¿ý­}îóo|Ãü~Ë-·Ä ¤×à²}ì[o½µ]÷=ç3MúC1çIrñÆÎg«ƒÛó-Ìû0lذ֢à|è¬Ù‡´S8ÞKËO.©¹ãiBç4ÀœA¨œ³];rÌã©3± ÇÌ º»Q€xåÊ•rÔä8cdý?Ž›sQœX³æRy™Å{!Ù‘m­ËÕ±ÛÃ1“&ʉóÓ—\ZÌùÄÓÙûðf-]ºTvD"‰íP0@LCæÛ'ÐȰéŒjT5iAX‡}"i(Ê9ÞÔµ#—íh0Ç£2t-ÆJJ€ §ðñб³ëÝ[;ÓN±'•u¹:v®©Œ´œ|hœ¾ä˜ó)äÈžžñíÏ›K.*Ö±xhõÂ’–1c(äšøX|@°$ªpð<†ÕeÌ.̵#ß,fŒx<ª³q¡"Ç׎>ßÕ—±˜ ̹¤2òeÙÛ“3c¸õeíßh‹<Ä¢ #ñfhŒ0<À[ÁÓ ¸éüs€æÚÑ…9ǬתŸ=¹« Ì4féXus–:üh)3@¾UÀ:¿3Sܘ„1Ì*׌¤’TΦӯ=:ÌÐ\;:˜m9fÐb¶%1Ó-ƪž,ÃÖÝHŘҤ=o0™%•ãäÊb&03ÿTuÎYÌ) }ˆl7¹2ZÌ”/Ôu±ýp 0#¹DX"*Ñ1}`n‚—º†å¤üpÌ®]ʈ̺Ä+ƼgS¶sÍ>Žzµºy ¶a¨–¹†ëñw=—Æ"óSCðã>íȺ͘S¥2Ò’ýì ÀL-¥µLPŽÛf¾éò†ªØí I”\â‡Ê5 £ööÛ%DN†1ÌÐ\;: ˜íR¶V± ̺ Á…¡wv1Ö}öÙg;PUî•çã @µšõË´nÆ«s•×Éýt!˜ñ×Qì~tÑyÍ5Яß +FŠ0Žš3_òݺO[šÊÙæ˜ƒT†VvqÀœ0«e̬!¶ŸñÛYËÜ–<1ù¹üò¨îE’æúK/•ºÿû? µ3TΚkG>s<‹YS²üq#[À9.tž³Zȉ'žhâ‡U$ŸV$“Qx,þN‹’þž‡‰Ì¸þúëå’K.14ÁžuY…Ô"A—G8F)*víµ×šm ÐÜöþç ³m7AÑñüóÏ7I‚3õ;¨§Þ‘s»€¹§sÌvc-Ù™´XÜk!%Á7÷ 7ˆ|ë[Ñ0Þ7„m뮺Jê°mQ˜];º:0vØaÛ3·cHßã¨ù·#tahÜpaêó²¥Ëä„O0÷‰–1M~ó›ß˜Ê&“&M’_¢ˆñ—‘ËB®Ì²[¥ÆãŽ;NžBåù“O>ÙX¼ÄŽM‚¾rÆÜ÷â‹/6ò½÷Þkž×õ¤¦N yš‘F»ƒ‰¬H°5‚úaPñ³=iÖíf^OªÀœv‚IOpþ±½K–,1éšLˆ§PeþÆÛÖ#0£CE~ðƒ(ß/]SoﺟýLBè tɰzŠ4׎Îf®ÌZŒõ¡4û5ø\oqI±„?õ”SuK«™ówÞiúsŸûœüüç?—SN9E}ôQC{!HñxL§Ã‘ ~Ýu×ÉôéÓ “â ˆýë_7×Ëí¹?K[ÑiÉâ¯ßýîwÍ'±ÕkZòZ±»#9È1§Ì=™Ê°) æ×ó:˜L’Ô Ì›K€ýáÅC§Š$ª\âSu¿þµÔ_s„ï,f׎®n1ŽJïñœÜöøƒ¡¨(Ç…‘´x/ågc¥å|3ªþp[êÏ!Ͱ×^{™}HC0mš1¼Þzë-9í´Ó (s!¨¸ ì¼~‚2–ha¯X±Â\ãe—]&¿øÅ/ŒÕLc‹*o|9œuÖY¡Ñ`vTFà7.t ><Ö΄|49fów¾#òí#IJJ1*£¹ö_ûšx˜];º0' —‹ÌZŒ•üîdË~Pi kô…ž×Žº°ëíÙ>r;$ξ73~úú3…ñ<ÂS9û½ÎyòÉZsPÕå:"¦:•Á{Å…³˜³vrW\ÏÏá×bÆTɃ5Ü&0C}®ñŠ+0»vt)`Ž.Ç"«æDãƒc‡­W.SÃωdGr¤šðï¾k ÚÛœm³£,frÛtþÑgÏbžI•a û“md™ufø¥’:æï_¼_ýʳkG¡2>ùäÃ1'r¢çC1Ö ðwV¶a*À쨌ˆm¤˜^Zr\É(ŒØ¢Qñ”Ÿþ4Óœ˜ë@wÔ#zÃEe¸vt5*#Xó–ðG±…ê–¶9f:,ƒTFF5ÿº+0³}¡ÿx_‰¥`ÕñpÀgmÃÖfÃ-sŠ‘¶¨‰Š¡ŒJ3$¾f˜ëQ¢¦1›ÎbvíèâÀÌTè3ÞC<ð ïO¿Œ£5Z?/y¼OÔú /ÏÄdÌI€™ß„ΛCB>-kÙfãðCP;"Üo§Z^(u(Äby 'bäÚÑ98=gÒ²8ãtóö}‚ázLçË‹€|rÀ(Ä6ñ-Fƒáqí:'#7he# F:$ ¤<µ+J·× —?ÔβRÐ\;ò˜õ;Zü® ¶EØ“YïñSCqƒ!{YæîRóm¢Ã©™Û à§̤2:ä!…4aUÕcÆK­ÖµçW?‰d¡®VžkGg³K6®#˜yÛYVw®ÛÌpÀ,ÛW3Þž—¢&*€ß®…ǣŌtSñ‰ˆ’•–jA:f‚É…Õ{³PÁÄškGG³`’(/[÷ d—¡R@‹ÚAáí¬ò ¨×%K0±÷³ ³&ªc˜íg©À¯‚IÚ &ÔMÍ%•‘ë2ól …O´âµæégt\„!F"°Àêjðáã…°©¬8JL¨]^0¹î<¹~®ùÑŽTLrÌ\8©§Aåàˇ×Åókzu°4U0*Du2rŠ_J·ð»jrØŠöË•úΔdhŽúše`¦‘›q3…K¨ú¤qx¹èÜŒ#ÎEçÖc²=5á§fà´÷|žo sÏ^Ð-„5IPÅÄ3î[ :º·Ë.&9E2ä™iñçlrõ<\;ò«ªôFH˜ƒ–kû&žQÑü3fŒ!XÙ@Ë4f^ ul´T”–ˆâwþ#&ñc¬IMòÆp>>=·aä£$x|®ã±”#W‹š÷€í'Îq_/Ã1 › Zò‰€9-‹™7q‹¹æ\[¼ÙfYÎèx>F§ª@Ù¨b¨i…}G_$ʺ=ô`=€¸‰wÎ02ÃY®Ù<Ç8õ8Æs„µ^_&íV`fl4Á™Ÿ ¼4žø7£>X¡„>!Žab£HIòåA¹³™ÞÌãÐç ‚=ïÅò9æy îOðãó"@ë¬Yà ÊTÁk/0³Š‰3Áz‡Úî¬Y̹æ\òtZñš7ƒtF6Ú@£ó”"Á¤ ‰&‰²ÿbÉ'þŒ° îg¦bùŽ7uíȶÅÌêÉ€Ù¶öhmÎ;×dÚ/%¥ Ò¹F‚#A“V±JwŒ Äôk1×€ã•4·ÑZ€¼N^ñ‰×Ís ÂÇkb~­hV/!WN ã>]â÷åyTl‰ÀHÀ'ˆ·—ʰŸÁv÷Ýw7ÊzApNÙbÎ`ÎvÈ‘áG- †ÈqJ£#cÇ…ÌÅH)ÿæ7RšdF¥€³¢I¦I&.̵#Û3 †¦b1@XjÖ¬YÆ"%}P`õçö3s Î|f‚$Ïÿw–Ö :æôzÓ¹FN ÀRç™ß•ÊP^˜r¼¤&¼´~y ¤$YÝ„V/gÀqîÃßY:Šãµy,æ*°‰c Þ»À×£T‡Zù´® êÔæ÷L¨ b gQ¬œÂó±”X ¤LetW`æõÓãËON8ÍÉZœ";+îG…[+ÑI…ÌÅÚ®+‚ê¿:R¤÷КkGg³žûé§Ÿ6G`´£l‡`:3ÏLjFeoÖã)?«AR´jù"°£Ãø;M{l Ãmy®gy‚_p_»3­qÞƒös¼¨ž›eµx=³ügW¼ÎöR`ÉO~"½~üãÄÀœ% 4׎Îæ÷0ëcXY6ÛGœ¡ã¯³S²I´K¢¡…øINžœ¶]ZªGs<|:Ô¡`¦ `áSOI…¯2—L3#B1›ÔÙðÚ¡™á͵£³™qÂælûƒl #n­µÞ¦P²iÌec`C©Æi“"¡C³G³]ñšß陵%=³ÌìLYœ@#ëÙÆ¶èÙâÁûÛžDh® Ìvi)3±`ï½÷î4«–סY{¼î|”µ™¼9yyF‚¤RZª[…ËÙS¢`ÅkûÁå˜Mj6þUœx¢"F2¢Öq”ýÌ@Aý¿ëÿ±S¥YÍÄškGG:ÿ<ðÀ¸T9æŽC›C&þ0ny%"¡˜L¬>u²å8-fòòA`V‹9£b¬]…cæõ”ùÐØØ ƒ"'ÀìóÌe×\#eÝp[Àãyâ‰v©Ì9@síèh`Ö´åÎfeÙ§(ûÚk¯ËI'œ$³çÌ–µë×Êi§–~¢f­ùff[&æ®LeØÇ`Ç¡g—é˜Áª 9@ä¸üD“‚^ &‘´E}`[a<3^L[(߸üë2ý”é&ý9Þ5¥ƒ¶…žÈ±À×탿¥ ÌA‹¹[s°â5¯•‘Á~9@8_¡0e—^*¥·ßž8lNè.¸@"ÐàwÖÐ\;º0'Ð'vŸ Ü£½Îœ»ºJ¾÷­ïÊÊòU2äKC¥n~¬½w|í«_“3Î8#¦€ø†åA.|ïóÎïþûãÒ­Âæ¦O—ÈCE©Ð\;ò˜U6áøcú1-kµ*µJ4?ÃT^©%ª:Åj*¸ë¬W)IŽRO<ñ¤ì4e¢œzÖ)²`ÞyàŽŒólÚ~Ó¤%66O!@“ÀòñKÁØ_TnKL#Pó» Äf;®ëq ¬cêwn?oÞ\äL 5÷.žÅLî1³v*:ü¨vE!ñDé”2€Ø± `×û¶ÛÄ×/ž9Îü¤ö,î+aL²‰—‚F´4׎Žf ï¤ Ìv]Í\ÜžûRŒ«¾ûÊW¾v)BçfÉŸnù“\þµËåÌ3ÏŒ•÷2•…”„M¥$*e Ù|y°TTÌåe½¶ÀOTB*ÇÜf¸\WfÛZfh¯ÚªxÝ!ˆ S™ÊÕ«Å#Øâº„ZÍßý®D~õ+ñȃ¥@g8@síÈ‹Ùìxµ³}/x.Ò#ßÅxJêõñ~ò¥GÊ‚ÑcYf}v!ÃŽ¶:t=) rKm9ü:Õz¢å k¾©×%÷Ý‹ÂHvÖjðÒÍA"dzšèÚ‘K`&·ÌÌø o —ëh‹¹«-ZGœbJ6© R.vi©¬3y¥\Z̉x:ÛZÞ°aƒùÎ ¿T5X;…o¤‡˜ŠsÏ?/”ùLƫՌ”ÎêÇ“uš“äï;ÞÔµ#ÀÌ1ž ˜5a„‚<¤<8m¡zÔÛ[÷4d™ü¶Âf¤‚5r$e`n+*C-æ\s¼#ÛáG^‰¤H‘6.]`îèÐ)‚nù±ÇJ!:s¢„g½QóÏJBí<ˆGå§\˜kGg3FA1¡kîÜ9øí`(nIüÜ(êÏ(‚2}bªå‘5=掠2Úæ5kÖ9Ïd~ù4€Œ€>F Ôæz!cI’e’ºÀoÍà¤kP?ÐÓO…<h®̺ýŠ+dÙ²e†[Ï%¿Þ•­fFºðŸŒoî’³MaÛâïêðë H×1M¨ü˜c¤ñŸmYÍ!ZÍý«4^x¡xÈj´­fh®MeØ–3g°ä½_œ¯Î·Î¤2xI÷ðþ©ˆZËYKÉî,*Cgü"/^Ïß^yЧ2TEù9ç$–åó錖ɓ¥qÍÂêÞ|ËdL ¹vt0'J$ÑY¬QjkCã%¨5ÑÁ;ÝJÚêø# ÇÛÞN<éRÀ¬Ïk OË4hP«é@W@^ÔÄrkŃˆ´Ai„ð[âŸëýkñèìô­fq€æÚÑAÀLGc2`Öñ™,‚Êð?£µ+[Õö F#+ÚŠ KT(€3Z£ËrÌ| [f¹¨ö\ìT‹™V3©Š}TÊQ82ÂñŽ¡ëÆUÏ<#-˜Jš8h¿š¶4׎| 2RYnÃÊBü§F•öcUi y¼¶wà&ú®/]¨žGJU%>Û î]–cæ4‰ Ìs2N´½%Ê;˜•æ'œ$å§œ"EÜT¬f:«|G 8‹Ùµ#¨Œ õï7¤zöÙgM˜«MAò“Fc­ü1²-$(Ãi¹mø$ºÛb¾‚ßÕ¢'ï©¢ýz]ü{Ã`Õk^ð:Ú²–Ó¢2òÉbÖ‡J§ÂæÍ›c5üÚÛ!;Êà'­fœ»•´Ë‘DÓrI*pTûÓŸJÃ~`â[ÍÐ\;:˜mPÑý¢bòñg²ªÁñŸÿüÇŽ¼ÇµsÓ“‰%”V`F#F\1¤Œ`¾ý½±¡!žÜŸÑ ä0ç­Å¬•~ýà8 VèrÀ샯±š!¼RþùÏK1²üÂmhh˜OL›ª‘g†¾3zD° ¹vt²ÅL  ²¤Ó´u|*øÆr¨Áð±-NªÂñ<ör!¸OÄõî µ¸ ÅÌ%å¡@ŒÊèR³N+øpx^Þh½!í=o> óa~èP!è/W@QÎCG‘¬f“øÄâùõѼ8/ ¹vt”ÅÌó/Y²DžGV+Áµ a³Ò+zú7ÏÅcŸ~úé4©§¸V‚©†îÚQUjáó¾9BŽ:ò¨ØþŠc)[ÌùDe¨Ã ¬S•n1€øàðpÂxØ%?ù‰ô¿dqÍ­(ŸýLêAi„ÀÕ±$•4׎ÎfŽGZ ÷£¦%g³Ô¦üf(޶‹—>A‹y?øOž€±A˕ե9;¦õº€?tÈ“-wÔ߆þ2œàÍãX à%Œñ­k^ïf¬Ÿ€D­$Âk¤ÅJ`;ož”·€¤N”3&˜Ó:æñh$)sZëhÀ5r¿±~àÏkR`åõ“ŠÙ%ŽÅ¬ ·åL`öœÙöÈ9•åý²3ÿº•Áó­[·ÎL[´!™vÄ|@1ŠÂÏò«`ªö»ïJ¸­Ú€Ñ^.Õ>(͹ qª‡{ã͵#×ÀÌ1æ'Ÿ|ÒÐt€”ƒx`S<.·EdXNlR ª£L€cˆ) Ý¿ñ:ø©ÀOƒMurÒ`vX½e¨]VzË-)S‡*µˆ‡îÍJľõÝ‘qåÐz.0«³ªË)`#ìï<öo¼Ñ£¹±4Ý/˜¥‚ÉÂäÔùhS'ñ’b+Y<5îÃûÃrV´¼•šˆ÷¼táì‚V3cÂmÙϼæ˜íÎMÏ(Cähö·7f¹+ ­¨mÂßðö­À›´W’Õôé ‚sÃ7¿)E7ÝdÀÝTGÉà8@sÀlSüäzj 3\,Õâª%Í1ìœé€}:ÇVÀ&ÝBÃ1ÕöðwÞÛiÓ¦™~æ •Ñésðáñ­ªøÙ²–󘕞P T.©@¥ßH ¼..߬I+ß÷Î:‹^†íäA ¹vä ˜9§cŽÛ¥zÝš’ÝDŽÔ·ã—ÛjۮŬUú3e޹3,f›kbØ ù-½Êâ=Ÿ-à0¦7½¾úU#ªŽÀd|³q ÀÉaÝ^{pŸËæ‹ÌšæxÀL*c/ô»t´Ð»ƒú\:BFv»Î÷.œütÚ5ÿR²˜;˜íF5 ¼'  ¥Aî ÷€ŽÀBÜç6ùfgxšMum»Ki h˜Û²˜“³®×™µtÒS– 0¿ƒ°¿.ÌŒ-$)NOh¶­å¼·˜5]a?L.ßg‚9=Òˆ¥Œ Ð?„ £H–ÀÙšæ¶€™s¢¢ÉdŽåB_B€c:8®íÙ2;J#WkÓ©Jpæ 03’#m`îHŽÙæžèà?fþtDÑ̼¬Í¦‰'x8Å 3Ê/¹$)ßlƒ3Cï¦$ÄŠzˆf!X‹;ÎÙÕÊëYíÐ1®ÄÛ™f¶]0#*—¯I˜yÏRæ´ã˜E¨V{,æ ÏdßHæÂ3f™¦'V3¶“H ß ç@Ù7¾!¥ÿ÷†o–|óvà|ÒI"< è±fÉ`úèªK÷¬v´Çb¦¦D0 €rY©Ìúd–¼õö[Òè5šßŠ#Å2m¿i2i·IR_û¥5M=ŠÿC?§NÆ™p~Û×£"D Àüdįߙ©Çc²( `æ5·˜sAeØ|h˜ûÄÒØ0ãÆqù`xSÇÏŽ˜ræëR¾Ù#EÏrTÖ.ÄÔBGñhÈùç‹Üq‡‘ 5V ݳkGŠÀL n0ÛŸ–'ŸxR^™óª<5“’µ9nòñrðÎËñ'oŽA¢ýûßÿÞ€òqð­Üxãr $q‰3+¦<x™"Íë ÕÉD¦f7Nž~úi£ñ¥/})+² ùÌiqÌœæð×7T:VˆãÄ8¡äŽ× èš1´–ÕŠÎeQG=.ƒ½s=HÛÓ;+7Y;(!ÌPp“Úæ›Í›. àçº?ÿÙP#& ÝÎj/=ùyô¤v¨…ú„Rfj]™I ãñÇ—,¸Oš†7›Z´¢@Î÷%9r€Eƒæ_£BÏQGe@þG?ú‘\ ï)èS[ãûßÿ¾yQ2t7(+R’“x1Y¯»BÐháÂ…2™°LsN“:˜É’Ž™ÀÌlŸTn‚ç󦿢ЋdÝ–*Y²z½l©©•¢‚B9x ô µ€¾(•^å̵oqÖ“Í7óÁÑ o<}z4V9pöö +Z‹‚®æXLEMœ5ÛóÚ¡*k/¿ü²ãm3YL–³Ñ‘h¨—{ïºWÞ-|W6ì¶ÁÀ'dŸæ}äìóΖRŒy‚ÏAcJj2#Ž)ËL0ãñyž¯}íkÆ2&ÅñU†’‚ê$hSŸ‚z¼VθøÃƲéò˜™”ÃLÖ©Œ´€™|O +ùÃùKå³¥«dPŸJ©À6µ„eKu• ^öÙ}WéS]rŽ Öœ³Ÿ3лøbºmòÍ>­¢å|òÉR Z=ÚÈ…è%Å´Wç˜ëYíP‹™ æ`J¶ Ì¡@‘`¡‡zX^~÷eiÞ)š®\8¯PÝçP™~Êô˜¶„n»`Ás\êÏ™3Ç$˜ñ¸'â 8³ì˜mÇëázRŸÜ–³m¦Eç(Çf¦¥ÇfÎR:ÄbŽ:à‰,)’ó˲Uëe¿Ç¤· ˜TmÝ$ëke1Îq´)RÈŒ}]èTœÙá(®ò«_‰‡©Á9’8‹‚3tgkï¹GЛÅãT[ÏìŸívt—çÑÝÛ¡ÀL !ÌtøÇ£23×QOãµW_“Es™ãÙy ôŽ2 t|¹N+†¨úÊŽ¾à?Mƒæ6jî Ïg`ŽGeðžg•‘ŽÅ\P€0¸êZyñýÙr𤠘†óFC?T¹*XÈÍ2|Ð`ùpáDxrØ”¥¾±©C¦œ]eÅŽ§–ó·¿-Þï~—687Áâ©v®P&”V¾ íïͳÌäpqÌÉjdª0Ö¹T–WÆÔÚ‰%ЉnK€(_W‚EW ÌñLHÉt0óÑZ~oÞ"©©®“ÝFº†Æ˜€uu5õUûDÛÔ,ïœÙw²áÁQ :äÐöÇäqÈClÛ»÷Þ¨å˘ÏÁ¹¼\ ª3„á首³g‘ø‚Iy hˆ¸æpŒŽß–逹C-fVøÈ¤zvw_âs<*£M‹9[3¹å Ä2>õÎÇ2Ó‘;ô—¦fêªR2p‹™†(0Œ_ûtž8e¢ è NÉÉÎÅÃíªHÃèLèèܱ‡L?­˜ 8s»0¸¸pÎÍÈ, !Ô/ŽÅ‘—J|Op(BF£Vh•¡_¶àåñÛÏsÀœºó/Àlgþûωǎ—ÑÔ9ÎÇxäÎæœpÌF¯´D^þhŽ”z2fèÆ2ÖߨX :Xîeæ²5rð»H¿Ê ”‹)‹ZA9ìà]˜Å£ó55"¨îâ}îsâ!ü¦-Ë9¶¿¯½'µÐ~nüò—Å8‹YyBÙ¦^—À\z,„¾~ýFYÿÙBCéì0n4¯úKÖ^sKØsZÌŒ/ŽÌ D¬BÄ6.Œ=¦S¯Áªzm§TJZ‰Z35æ™û¨p~Wî 0ÓÉ×.‹9kÀŒ¥°jæ­X# –®–ýáø«FÜbAÈä¶Å( Z›ðð—ÃëºûØ‘R’ŸV6b;K©‡ ó´Šq& r5-£+Â[8epæþ>×T¾º5M¬³N§à,yhú2§¨¦¶N^è ©ýàc郗 y+®¯|Ï©²ÿ©ÇKy¯2XÐMѲ]Vù"ÌÙfFepÀÛ3Ÿ•FO¼‡:y¬0Í……[©­ÁP7Æ{s;Ê_Þzë­¦0*ÃßAçK<±¤gÖŒà ß‰ûð¼üÞU¬ê¼fûa?ñæ‡2f‡2 q˵~™˜BCcȋϑ]DZø íù ¢w–¡AÙé®>€lË™@Z™Ô²/|AŠñ`Ã~æ_›à,~cÎ\eU‹tØýCŒÁå11Z†+f)ƒ(?së_e—OgÊX„WFCÿ°œÈ kdÞn“åè¯YÊA¡5óåå¿„0çÎbfìq<‹™ØÀp¹ÁCËæM›MÏëׯ/d}WÉôé§Ä¬`‚ì¯m4¿ÿýï7õøì_@¿~饗Ìôÿ\TÂ&¨±ì×3…@¨ŠI>3c: ˜íÅ„’çg|*#À™ŒÄ”³¸¨À„ÒU×5ÈG‹—ɈÁýeÚ¤ñÒªƒçb8 ÏÅNÁ¼x.ivÈLAº[EÐãMÑ#tÖr¤¤Cú3pÖD”(ÓÕüñÒ‚Ágœ‚>µ!ùhºØ>wç¿dèSOËNýûÈV¶Q·cl/Ú=oóVYDˆ#¿r¾4A‹oŸV”˜æÌ€YSžÛfÕ¿xu)'MšdÂæ¸p\3™äø7hX Æ×]wœwÞyf¿ <3‹O‚æËo~ó£…Áþãñ ÌeZÕ‰  æãbÇ+˜Uo>娌¬'˜p Šýë oÏZ`Âç ¹ÞtO&!㆒†Æ¦Ø>ìxvl$.J¤íØÅ`¾~²Ð›î̼·URê–àٔê(†Ž€:[ppŽøàÁ ¬ûßÿ•†«®2‡ïL˺³ýgíÖ*y󯓣뫤ä!„‘¨þŠ ¥¸Ö·ÖÊ×|SúMÝ]šñR÷,ÐpÀÜ~ç_¼Ì?оÇf~à™5ñ˜Â…E0ž‡Ãú‚ .0Çæ¹Ø–ŸÿüçæxLb!˜˜Y°ô¶Ûn3´&Ç=)rÕL~áKâì³Ï6˜ \uWf¾¬l‹™8Öaο`‡bLs ވ䙷 |®¤¸PúT úÑ@Ž3AÇ VžU¦%­u·”îHÒÝÖbf;С8>Á™Ü:}ÉCµ©H·5âÓ#&Sœ_„Ú%}Và®ìD@3€‹ñÜ÷>”U¼Mö)ò¤Ž/u:ŠÊ{™k.€uÌö–áZß]¿YÆ@XoÔßo“+Ìsn8f°ƒó¿ÿýoùôÓO ȲŸ=ÿ ÆZü<¤”†à¾¤.XNnøðá±¶ñÜä— PóæÍ3¼ìzøTx='N̺V{G3_,A`îŽÙŸiâ4Þ3Ãéš­’çÉ8ÍD ÍN¤–´ê¤ùP“YÒÝ.¡A$&zD-ƒS¯F‘6’PRpÖÔýáÒ±™ ÀJÞÏ)w¥ ÌsÞûÀüWÙ·(`8 ½ }ûHõ¸1Òÿý¢ÀŒ}ßÁ;j§ÿþSFßö'ÙzÖ—¤`ÓÆ¨åï€9'TF<`ÖÌ?ŽËÆŸ|ò‰9>Á• Í̽ õAÇ®VšV­eµ†‰5¼.nÇsÑ8ëj%ª‚Àœ6•‘ `ÎfÇKÒì,jI³Sñ8AÖÏî–i&JG0æ ÙeLߦ há£DNÁÅËN×ί–L¨9'œ©ø~{©ŒuÕ5òÖ-G×n•Í+€PΖw2Ûôž=WŠ`A¿´µ^Žyànéƒ0®Í²DÔ0·˜™ùg3 "F\~°ÇVðz 2´Ž•‚ fþ}E‰@M-äd4eW¥2˜É£wÇœ«Ž—ìaƳ¤ƒ ­È¹ÉÖÃîô¸Y¶‰ÓI¼‘‹0•ìõ•¯˜D’dÅ]·ã-j£eÌñn¾Y< ðóyûà/Y¾_m9ÿ áü{ööûd,°@UiÔâ–×g ÁtwIC‹lïyü'3Œ£UÇ›@Í0Ú„á…˜ÛÏ1© ޝ3f‹90óÓ®BÒб¶˜I·2Ê$Õ¨ŒœrÌÕñR¥;ØÙèÖ€uí,ÙŽ“î `&€©ul²üð TåHá.˜??¥ˆ¸Ö3Ïg‹\½xtäýÈ\×ÔŒGfùÕ¬[/Ïþð2tØØBXÌ“£%_v.Üä=ÿ”ãÞxAÊy+°A™ú #{òÀ‰Ù¨ µ˜¹>•lMý»§¦iÛN>räÝŽÊȤ Ф<ÈS± tR°f ¤;Ûb¶3÷èŒ0•Ç{]x¡ámËðKŽ:#åB›à7œ³Ò†Ãm'½‘j‚IéüˆƒmºóNyûç¿•Í{ï+ÐøæL €Ýgè@™²hž G[|m¸Ìj8¨È™3¦·ÇÊ0s}„¢ÁÌüëéz©<;M¢3«²¨vt§„ËufÇKDwèzz‚Ù¹´¤‚4ßjZì1Õ¼¼¢2‚×Á‡ƬÀ2„Õ ŒÉˆó£6Z9ÿ’Ñ>·löENÄ8I„•¼}廨6"9‰+çqé0.()–J¤¢o|þYßo“\2 ¦Z¶4Éb¼|"ܪbùr3; 8×"¶á;ß‘<ïJ*ë9`n7•QhIö8^ýuOÌ6FP«W;@ÞöŒˆ/ \ºt© TGg2`îTFºçÑ w.lZ(Î{`¶,gÏ?¢õ\ôàƒRvÅR+:Õº õlç;áñ~úS‰  Q  Ó´ S4?=RåAp›½?,šF®¿ñ™Â2^‡¸Ù1(* ±ÜMÈ(«¾ï> álžGŽÂ¬z’ÅÌ…ÖßâÅ‹äãg!#&Œtµ¶Žhj†“gUq>?õïqs[Ó {©ƒB…º“´Æi&²¤óUüG”w†ÕZ¼Ø€3“Q ¬)ZϢʼ ÑCì´‡½È„ ­ÚH”¶aA§h~¹-¶¡ôÛß‘Òoˆ955Ôo54È“G ¬« ôäÁ¯ÐÏÑsv,f”X‰<+ܨ¹½³–[ßO5üxOÈ-S„ÀkÏèS²˜{0· 3Ù®³)HszÆð;òÑÊ)' ¤õ0ŠRDI²òÊr©ÚR%ý`î±ï2Î|c±N;xšLÞs²á¦sQÔU™TÆÚUkå®Û¢s"*##¡|Ged·‰2mæC$HóÙŽC>ƒ`xV.Dÿ·k‡êa°cAƒ‚@ ¥I mذ u ú´ƒHná1«Ý/Š †ÙC1OÕÑ0– î!Á™ýYõp³$=˜íp9µ˜ Ìo}ô–œýå³Å\RZ’S!#›Ö-–çbì4­Qþ0>t:ÉGs),*”UËWIeŸJcÑëú% —Ș crb`™×F‹ùÞ¿Þ+Ó¦L3À´˜»D¸\OæL@šÖ39S ÿÄрȤj>ÛÔŒJ~âA ‹Ð’%RøÔSRŒê!†æ@Ÿ±¹hÏç‡#6œ @öc› (C •@%½~„‰ WqY…øl¥4²ÑÏz•ц„li™ÜŒÊ6/¿ó²œ{ɹۜ¹fÏ£€ˆ °F7Ùѱh؃ó;Z÷Ñ0;»©Žä\0Mwßv·ºï¡rä ÇÜÅP0Oš ­ZÒ ÒhZÐAnï5¤--ÊßvIµ…P„³ÎBZѳg·a»~`;û‘g½§qá—^*ÂRXèìâ[õꜭgÔ]™ETm‹™ãÿᇖ›ÿr³œyÞ™2v§±ÆŠ.((Èy¸\ÚÏK­€,-©;ÿZL[8o¡Ü×ýrÅ¥WÈôS¦›±kó‹/¾è¨Œ®6€âYÒ*C0Öi:tl ®gI§#üŸ®$§hŒÔ¨Õ j£`æL¡`R¬h–» ù)ØÛÕÚVQz~å¯ýóĬqtjá|‘3ΈV ÷i›Ç×:¼?LþÉ¥ÑÓ,f.¦Š ¢~ó»ßÈ‚å dĨ†ÓõÄ·Øï„h|5¹ðq#ÆÉ5ߺFÊ+Ê·Ócvár]|AZÛa¿¡ Ò<·rÒíéö´£í‡5©Þ”¥ð®ÍC‚H’C‚%]€h lªü³òAʵ¢È—¾$“;HeX l_·-õšMJ£§9ÿô¼ü›}z̺¿0ŠOgpƒÂÆôÅÓcŽçüsÀÜÅP²L³x Í D>;iÒÁ ­x m[š™%µ²¤©:ǾkÚ¬Cz1ÿUÂ)‚Uá?¦jþF} V›¡åNA& ±Ž‘ÂùµDÆíiÅ‚²Åɧ½60³?óÞØ”F{§¶= ˜íþElÈe¶_whU– f.:`î†Àl[Ìñèû­­…h•î @ØãYÒöy²‘ÜÊ’–hë˜.,ê>¬.¢V„l+&ëQ§ƒZ¶\† ÒºUÝ ?ó0â‡ð%ÖxÏæ4øI!s†öX}=Õb¶ÿõä ØéÌp”ÅÜC€9ÑHÓ’¦¦;âYÒÁ2\Ù /K‰/ˆ¾Øy5àß–ýT%n{*0sá:{º®bANöÓ‹‰)Ù3Y­Œ60»¨ŒîÛŽD ­ŽÃD ÍßTc¶¨sÞ› I¤ÏÜÎç¡í0N,¼¤¨ØÆÄuÊ´Wí¯'QÜö)„F>« pðªs •{ëᦲls„zb|ŸCeŸãŽ;®•Q›r‚‰æžÑŽd ÍëVNšt‡:z´#)›)Hwöó°XJièÀpÀœ˜LÊW^u¥447´Öc– ô˜·O‰³>Ýýs(í™ø2¼Ø Jõ˜K Kä¦o2àÔcvÀì€9mKšíàó×Ê,úÆÏ¤ó˜õúmJ#-îÌA°*0SöóÎ{ï”Ãݦǜ©#0Ö&_®³¹©Ù|='_{Ù˳ÿŽ»¿l¿OÈczÍ‘ìÅ8«Ã/¦ÇŒ´ñóÏ>ßÈ~ÚÀÌ̘S>¶-Ì®‡tf ¤óET*SJ£§jeü*ƒÏ¼=æ/L—Ôcf‚‰_6,“öñ¡FÈunÞ"ýöU¨çµiÑWí‡ö Tÿî;&K‹YšÌT æñ¹šÙ…Í͙ˡü¨ûzê1ÿ żƒâ@×8­ Ìí;¶}Ý´š¨ÙaÚÒÉâ¤;ûyØQÔÒà Õ’J”FOffFù_yHTö3ÄpÈ ®‰XCý‹;þt‡ 9ܤz¯\¶RNþüÉR\R, æ÷¾ýû ¥†¦U7à·lS‹ìºK@nÿC¦ºM00I·P·"V’œ´¢™²½~ízˆýï`ÖS¦³O¿,h5 é–¨ìçj_yߨs0óÏEe8`Në<ª1a[˜ši­qÈ úT@Úþ»³9“(ž Ìo}ü–¯Ç<Ä×cÎL(ŸÖ*•àn¾îf9å §H?1½þcÄí?îpyïÍ÷dñ‚ŲïAû!L2,C†‘g{V>îç¡·ü¾TZ¹|¥üáú?Èñ§œ »MÝMîFµ*¦î³À¼Q=æ0ùûn—­›¶Ê.ø‚Ì5WæÌœ#Gžp¤Ìš9KÞ~åmh5Ÿ-‡}¨TWU·_ÔTk ûzÌ«ó´Ý§9`vÀœÝvØ@jÇeÚ Íi›òg Òv‰ûD ÝÙÏÞ)TÃñz ÇÌgÈñãM7Ê;3ßɺ³IþUüø—Í›6õ¸O;Q~ùƒ_Ê^ûî%t€<öÈcÆ¢~÷ÍwÍuÒ2=ë¢/Éø‰ã£•ë!ôø›¢>½ûÈq''¿øÑ/ Nqü_~Çš¶—vìarÿ÷Ëu?»Nžçy£õ¼ç~{ʨ1£Œ•ž‰Vs<=æ}'ï+W]y•¹F½W‰8fWó/G¨;·Ã¦<âYÒ´hI'éx©åù<â%žp (8wt ÆŽîW‰jþÅfŽV|~óã7åüKÎÏš³:Ì^{á5™7kž9'­âi $¸çéݧ·±pY½„4Æÿ}BŽ›~ªš<$?¹á'ù¼¸ÿ'|bÄ•6oÜld>÷?t™ù>2Kal®í¹ß^rêY§È] =XÕdïö6bûÒ;@&ï‘™VsPùÎÛî”ýwßßT·-æ¬9ÿ¨Íêªd»v$»®x ­‘žax Ò܇qÓvTH.îW[íFkPK#•(îV%;‹Yùßs¾|ŽfnŸ 1(â 9á­[¶šZ}J>ÊR¾“¡g£Æ2ì_&úÂ×…¡ÞrAQt²©ï‡ïÜgÜÄq²fåC»QtŸ‘|‘òøË—.—1ãÇ{Ù’eÆb&§‰ñ©ÀÌ™$ùž¿Þ#L= }Àœ •q0ÊÍ;‹Ùµ#U¢‚´vRµ¤¹žýˆ ÍÏ Ïfé§TÚŒÒàT˜”F²¾ÞÝ,æ¶€™ ÁçvË-·È‹o½¸­æ_–,fEk˜Ï€Î:~Æ(0 áȸ¾Õ½§“ÎÒVÖýiñòºù·VÑy¡XÔ AÛ„yLî¯ß³!C`ë1“c>|Úáòo|óJ!¤De´Ì:ÍQ+"`¬Ê‘‹ÎÍA—kÐtíØþXúÏTv@çäÀ×Z‚dtG¦‰4©¶Ã種;NË9¥ÑúÇ8ŸÉk¯½&{ì±G›33þnúÓMræ¹ÙÕcÞ–²//ôØŽ=O6ã1>/d,ã`ƧÍ„ÙΈú>2}É´Òc¾û~¹ò«Wš À¬sÌf>´\³£ºg;â àõë×ÇTð”îÐè,íIfɤzm‹/6V3¯©-K»+÷+M³f™£dÀsÐá…úÛ~+Ÿ-ùL†ï8Üè1;9æà[DŒ¥¾bé ™0j‚|ûêo›~ÓÉÇܳ£z^;hirQKZ9iþnƒtßž‡Z̯@'[™íÑp9-lÏ(h .A91Ýߩˏs5j”™UØ3/æ6+˜äƒÅìBÙzv;lN:]N—I;x=6¥ÏØžG<`Nd1ë½×L<È©ÑÁ¾“5çŸf׎\¶#QœtsoCžIµf:6Á_q‡Y|R}aj‘aþSþ¶qÃFó;“M¨Íc1 ›û³<ÿѪ¥~3Ï›n›„ÀL=fdþQVô¡=$Çv¬|ç;ßÙ.ÁÄqÌÐzL;‚œ4˜ Á‡€CkZ–¤Yãñ¦ÈAJÃm zX÷‘¬¦•ç0ÿþ÷¿——’ýê1S]/»Paf²Ÿ—éý Cª”Î?Ê~Þu[Ôb&•‘60;*õ£§¶£-VKšà¼Ã€òÜûŸJŸ’R5°¯¬Ý°i?L:¿˜¸`©´`føÔ¥–´—çÏ£=TF6õ˜ívò8|É¡Î_S£¹ç”âT‡ŸZÕä£IAð7R ëÖ®3ßYÝD5)Œs¯9 ´Œ¼àw®#®­FÉ'†úq_–´¢äg¦Ì ÅOÙqÌÐ\;ÚÑŽd ÍbŸká韽h¹ìŠBŸEÅ¥°¬«0ÀŠÍ?µ¶ 1n^EŽ#÷ÚÖ4¼ÿŠ®w0k³3ÛÇñë­·Ê o¾U=æ 8k›5òÂî#¼^‹®SÑ|òܼFèèL)Fab**‰=Ášõ5c4[~ óû!_ÿú×c¿¹ðÓ³4׎ 4¹+ù⹨ܼhñ Ùyø ©ª©6¿Ó2ê×o`,D¯ VÞ[sÈÄÑÃdìÐ`ù5wI`¦Å|ä‘G¶²˜ €O<þ„üöÖßÊçœ!ãw/¥pxdÊ`\1c™cºÉ oÖfó=i÷¬`ÜÖ1Zù$ É%þ3cÕ•úÚz™?o¾üçžÿÈ·¿þm9áÄbØõ¾·™ùç€ÙµÃµ#ñÂ]Y z&hŠUk6È^ÆH¬³–8ýš£ÃÚS`.–wæ-’q#Ë„áƒÁ=wM`¦ÅÌ”ìxzÌ7ÜtƒÌ^0ÛPN9.òGõ˜—­]Æí"W_yõvzÌ)¥d;`vípíhÀV£žÜ+3>‘#§L’êº ®Ê´š#È&ãJÀg¾òÉ<9s¿ÊrdµtI`þôÓO •ŒãV=æå+–o«â”å¶§3"ÑÉÃGÄÕc&0óž3“Ô³4׎ AìÁ—ß–±pØ¡¿ÔÔEµ9.ÇX ëq>klÇí³;bš›óþyè·+˜˜?ùäCeØ´@0yÇrj|s< Œ-f†x°Pãî»ïžõb¬\;ºB;lÇÔºÍ[äÉ7>=Æì(Ã"!¡%šú Z–¬…spùJ9nÚÒÍIêæ0ÓâgÍ¿©S§Æ€yæLó %Y`œÜgòç¼g60·i1'ŠcÖ˜íd»’±׎|o‡ ζl•—ÞŸ…Ô[Ä‚® 0o@r©ƒ&O”>åeH8A2„—¿ &­^6ëÖÉìÙ³eÊ”)fÜ“Gž5k–tÐA­¢"g~¿m¾þõ×_— &˜dÕîH)Á„ ‘}áÂ…æ-J«¹½2Ûêx®VžkGWiGTA¬EÖ#võ†ÍpôÔÊÀ¾•2¤_ãkò3Ô²™’«çÁc¾ýöÛÆ9Åi5 /žãÝwß‘I“v5º m•òrKÛ÷Øža[—.…#yÕ*Ùm·Ýbià)%˜Ø%e¸sâ2räHó³­à€Àµ£+´Ã>vÇÖÕVW nòr1£Ìf;”ûd…òùó盿wÞyçVީիWƒÎøXöÞ{2dˆYç–ìôªΜ9Ó¸¶ƒè”8æ`Ð7QžU È;gC¨¥-.&Û5W¼˜kGÏjGT=ŽÇV è:þŸÉF4lîÚai‚-õªISr±Ç4£þ4Õô¸ÐñŸé Ù²“)?~¼e›N™cv®ãÎ:ÝqÓ·¸¥krF$Þ×1Ö©tPSD1€Ú! ©sc>ó{ÎŠŠŠŠV”°ÞÏ´8æí*ˆ8G€[ÜÒ €Â¶’ƒÀlÏfŒà¼_oÑùÌî¹fÕY‹}¿ÓæàÝ[Ó-né^V\²zn¼wÜ=ߘwǼ¡ì8¹ê´ ¹ê—Èú Û³[Üâ·¸%w y 8æo¹Mnüo5,æ}¯-:Z~pî ïk_¹(ÒÔÜdT²Üâ·¸Å-³0²‡ÕYþøçÛ½_ܽ6âí´ëþáæagË#?“ ò]‹TS[úÐ-nq‹[Ü’ÛÅ .+‘7ÞþX^_6Áó:ôè¥[+ŽRÝXRT_[vyðnq‹[ÜÒ±‹Æ——öª U74ý?Â8bmÐÿIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-dot.png0000644000076500000240000001241212536324511021161 0ustar philstaff00000000000000‰PNG  IHDRÂvØÛÑIDATxÚí]‰{å}Îÿ&1Ä@ÈQx(I!¥I¡O)4M[RRxšÒ4O€äiNZäC¾/aãŸØ ÛØÖ±’VÒêZI«{µ÷9³3óÍôý¾Ù™Kk[»ÙßÚÖ³ÞÍù~¿ßû»¿¤ª*±¼TËËö_×Ï¿«¿±þ´}Ï˹¥×qm—`ûÊõ½m3¯óôßÿ-ò:®×ÝhðžÛ~Ýç¶7xÉÈõTñþKš¦YOW³¼lÿuýÜù»úëOÛç®û¼œ[z×v ¶¯\ßÛ6ó:Oÿýøß"¯ãzÝï¹í×}n{ƒ—ÜÈ\Oï9Œ8ŒVF\©q¥¶ JÈÈs#®Ô87â0â0â0â0â0â0â0â0â?·Ô¸ÁÏaÄaÄ ~®Ô87â0â0â0â›s#ÎîlŠíõ¨8Œ8Œ‚‘ñ?o¸4â–Ú-r#CÆÞÍÎ8ÅnFX¤±orÂì`ü`N˜Ã—l±à8Œ8Œ¼¶¤ä\8¾ïHä¥ýῼ1÷0n©qK­anT¬,wNÿzïÀ“Ûz¿²­wãÁo/úpIŒ*qnÄ)vc0’”ò娻»úŸØÜsþîê{¢sú™Î-9ŒîRùXïúg”iZ²4öÑÐó;B›ÚCü«îù6QÎsqKÍýìJš˜Èõ¡¡çÏEË^&ª¢1êÍ)ö]ÍÜ–»b°fW¿‘ ñËvJJÉtXï —Fw©R³l¬àvö¹æ&ŸjvQ‰Ïá0º‹`dh+UQ$¸+•J,s¹XIè(1ŒãÂCq/6çFÆKQUÖ’ùØçS¿þh误Ïþ¤‡!Œ˜š¿¢ !¯KàÜè.u?²,Ϥ¯yy{è‘í¡¯Â34ž:c%:zn:}E«Fp[žD[/{ˆÓàJ-xJMï96ŠœZ´?lëºgkïƒ(~Ï•–ÍŽdÍÊ~¬…`ÜòâœØâ0 2ŒhšQ®ëäè«HC¶Ú޾M×g?P$ÕÌöo"ŒêÃ.µùûÂO‡—ö kFA‡‘ÿÎ_­¦R3öH9Ðb>t4òªæP‰gÃñÑU{}Özr¥È6YjmŒ˜êÖ¾Wmv›,cÕ†Ô©3§Çº7üʨ‡—±¯ÎÞ&«Ü0Æ…ÑÚ4ÍS©5FõŒŒ•yW²#ñ×gß/ˆuO£ÀJ#]ŸÀ‹†2å„;̦з%nbë —èÑikíc×jH(çF7ÅX×1-Uˆ¡£&"ÃKÇDQ´”`7?‰Ö*Í=è‰)Üý¸.”«¶P¤ŠŒÎFHC¡>¬ìΩw“…I7Ÿ e‹ ’$®øl8ŒZ#kù¢j4µ=J»SÛܾ©ÒHoç6–"Ç«ƒÖê[j¦1cî„ô·ô|…Õ@Òlºý½z”rнVÛôVƒIK’LY…A»¦èûpçU³Ô̯.N±–Ê=÷¡…uæŽÑYÓFgn£5‡‘™ßÌÜŒZ¡œ¾1ûÁlº‹e3J>¹°j ÆòU»5*â§“¿ØÕÿu6'àñOÆÿ©PN™+µ (µZ~3ÑŠåìÅèÛèõ{xøo§“ælâšn©¡8ùãÉO†ãõ-îCcmƇQ0¸)WÒSï¡NM]à­>4ü½Xêª"+ÎøkKûÙ…-©x«„øgûr¥¶JMÕæs=‡‡¿"ûa×=ˆxìøû)‚lñ ¯H©©F‰j–vy‰˜s¹.SäÞ²4ògE6 mIiÁnè1øÐ0¹i·V?~‰}E–äk3ÞÞ· A@„“À¹4ù_B¥dCSeSUO›hÐÑB¨WƼØÍ=_ÞÕ÷Dh~&)õêVK£F`d.qœj¢0~qò?Q˜‚§ˆU‘*MØžŠ«›ÇµÉc•+âèußCßE〶î{·…6bž<†5iÆ,ö*¦éíž>5ö*+¿±dT÷N%;5‡ûDW®g¸&0rE¶µÊ ê+4¿sgÿã¸.üÝÕ÷µsÑ7ÐîS%ªÓ‡,¥f\ 5 –rCG#?„¦h놣ý=O^ù™ˆ®êÌ9OÍ& êÖÐ’7Eç]¶6òV¨A©]ˆ¾‰+”Èl=úqä…™Ì[·.¼©T„XúÚù‰71v9RE˜dBÇbªÄ²0ˆ£a]à©ÅJÍ•Û 4ü;=þ/Ðîþo~ýE<7ÑëuÚA=£0¥† „úÑ$`B$ë•û;i<ÞØ[ÖJB6]œ‘dÉvpk#Šhêfc–ågÓ¿Œe¯Ø¦ÕªŒtSW€¢ B9š¸tyú½ùl¯ªxšÇøAÊèÓ&­Ë–Á¨V­÷5DÓ¨çÒÝ;<¼tDË–®VZÐ'™Ë—ÒE¼6ûÇýág¬‰†½æ–—©VçºÕïÍÂN4½VäÊKÑäg×fÞ?=þÏç£?ÏU¢¹ 6úƒGGa¦Yoº#³˜Š7…‰æ®Ë’ë  ½TSV„/f–ð˜ûœçu¦åLUv–ãiÞƒœÅ=Þ0ªSCÓ™(FT×¼D͈uH•B9ÉŠ:ˆ3ÊÜ FV¹ dÈD/í§övM›Ø;sáa”*IAÊB I²X±än[·Tèmhéz{ƒoµ‡6bòòdòsf*>êÙ²‚Ug¯7‹…,{]?‹À§¤-úÁ·vô=¾«ÿ‰ã#?M7wèl3g}:®‘>WeÛÞÙ$†Ë\îF×üÿ!AhVˆ9í€úÌܪö±ÃçFªÛI“‘8ÆPP5ñÙô¯N¿vfâõóÑKœÖ§ô± Äú?GÅXx ΢kz6€÷tÍ~H?&Šêè»U«#®w'ÚbjÖó¬9õOT_Üz©MïÂVL8ÙLóƒ¤Ãç“'TÇlCÝk¥Ÿ3ÝѽPŠ«ª/ÀP˜\T¼¥ÕÔ±L'Ü6µûk`iV?kŶü•%…Ï îÜûd ΂í‚\3ôŽ‚|2£ÚBζ 6øz,ŸOª†C†Ó5ºTèGË&`îÅúbæO€Ì’‚ë';7Xg&þuoøIä6À¼ŠÄQWa½¸¾©|#çzÐÜf=³€Izh¹ g‹ ¯KS¿„vÞSl€–aªÎ‘ÈKgÆ_Gòœal;ËÒQƒK1¸x¨w~ûÕØïÐkUO+sðèª ™M-P¶à“ÃÐÍ^îþ¹Åo´b •C¤W¥4 CÑ‹Tί€>É^ç[Ë‘ähòâXâÌr~\`£E­·hÕÓÖêCoô+L¡œË]Ç\ÊXösÝ5O ãõ ÂaÆDׯ£#/eŠ 6…±|UA, ìÀƒu6ú3py¶sKŸ Å;:Ÿ=ùÁ¥©·'ÓE9çßXÅN´ƒ‘f™±\úböç&þíÄè+èý^<@mUÆœ+Iw%пDŸç¥¨*iŒìÎOk"^•ŒØãͺ©(ÅSc?aªç^, H(–3&A²J~p!t º0ñ–Ðæî H‹†ó½$¥tw„CQ¢–ç¦3—²Â ©PÞu02ßê7“ÞJ©TRE1U‘Kf'$§ûÑ`£²Í‹hͳY]ids?V£¹5Ïq¸’©‰š*NBQiDŸ›0õG–+®Bz)Óï°â¾û&PŸd1J3ÙUÅÃÝd©uµ÷u£&¥­©Fó &cªgC\‚YæpHßn3*C¼Ò§\‹.t!›+/†¢î!ˆ“c¯…Úmn$ -¶Ã•€êÐŽÁï‚ü-çGl¥ÆÎ@·´ÁÊõ<@ݵJÜj‘º^§koÿb fÙ§®w¿J˜X»K©B$Y€GV›û-2.Òã°Óã±£ÐGâêÒåëØçóÑùúö©ÓUçòÐàéÎÄÞ¶Ûk£ÐHéóÔ¹ÙxÇãÉßœÞî¾Ûì·çìܰÖd´×lŸÌBÙì´Úì¶¶ÛlíöÜïòèàïÂâéÓ°ÖcÂჴÙfÌ᡺ÚyªÓV§ÓNýþû¤ÑIƒ®-Ñã­¸Ûn¼Û}¿Ü…èóÒÂá„§ÒOÐã«Øë²ºÚzÈßš®×\Êà¨ÔO¯×]°×^ÌåšÍá¤Îæ±Ög²Øb³Ùe³Ùf×åºÓè§Èä¬Ô\Ùæ¾¬ÖWßéÍßîÀÄâ‡áéÏáïÄáðÅ·ÙrÆã‹¼ÚéôÕëô×ÝçÇÝî½ÞèʦÓLÁ݈Óè¨ãêÖæòÍÊå“Ê唌·3¥ÑKßî¿Þî½Èä­Ô^ßèÌ©ÓTºÝtñ÷âóøè¸Ùv¥ÒHÇÞ—ÚæÀÉä’Ð硲ÖfÃݲÙc§ÒQÇ㎺Ür×廦ÒMâêÑ·ØsÉß›´ÚgåñËÍᥤÑG·Ûm·ÛnéóÓ©ÔQÚç³ÖiÛçÂÇß—Ûì¸ÜçÆÜèÆ¹ÙwØå½Í圱ÖfÙë´¸ØuÀà€ÎæžëõÙ¼Þx¶ØqÝèÇÝí¼¤ÒH­Ô]ßè˽Û©ÒSË啼Û~Òè¥ÃᆬÖX¸ÙuÔé©Õ䶨ÔPâðÅâðÆãêÔãêÕ ÎE­Ô[׿»×ꯥÑJ¼Ýw³×kÈß™Œ¸3åëÙßïÁ·ØrÄ∲×g×ë°¥ÑL»Ú|»Ýu¸ÜoÖê­ÄÝ‘»Ýv´×mâéÒËå–®×[“¿9µ×m¯Õa¦ÒN½Û½ÞzãðÇãñÉäêÖ¾Û‚¾ß{¾ß|Ïæ Ðâ«¿Ü„¶Új¿ß}À܆¦ÓKÅâ‰ÆÞ”ÁàÓ䳓À9«ÔY¡ÏEõ÷òøûò§ÓMÕé«Õé¬RÆ<3IDATx^íÛÓ×õ8Çñß>m¯mÛ¶mûÛ¶mÛ¶mÛ¶®çâ¬Y3;mÓä´éyÖš|þ‚ïUÛ½“‚Z'Ûe»‚±]¶ËvÙ.Ûe»l—í²]¶Ëvm©Nyé”ÞŸ­+]ôL«éºüå*üGI÷šVе=NÇ,Ln×¢ð09‰]sªà-}G’ºÞ‚ÜÈ–dtÃמ‘w•BE·ˆ»² æ‡H»Š¡ì·èºÖl…ºo#ëúZ"ê:ët詈¤« tu‹¢ëVHdåòľ#ÀŒ ëx9ú‹«)Ž6} ¦¿ñ®¸Ëž5œå¿Ïº1ÜÕÜ®æD0åf»ö†«¬Õäf°Ñ®ûàfYgrê¦Úd×N¸Hn¦ùÉ`׸¨ò˜/Žs‘¹®Kà4š<€#s]‡ÀéOòs—¹®?഼䂙h¬+7ô!/ǃëkªk2ÉÛP0(QÐ~UÏ#oÁµ1Ôõ1 Iâ1p'êú¢3Iâdpd¦ë ˆf’Dû™éº ¢é$Ó®€Œt5@TB2w@Pg¦k+DãH↑®×!Ú‹d úÄHW ¢5$3‚22Òu‹Öƒ‹ÖAPÛ×H×=ô ™íU‘®%¬&‰ž‘®¥tÔ{]Õ’™®ËÀåÄ88,5ÓUÉ”@4…üT$Ôõ¸^z´kÉϵXŸHW:˜T’È´_@ÒÔîZîvò¶ŒÒìq<ÿBÝ®"p$±¢äc2â0[³k0—j=éß cTž>>›îòNh$©F6ÒéºÌxò± ÿš°ƒ¤ÎyÌ0®r0ýtŽŠZHê|8¬Pîº ù›…8FRçÂÅýª]óYV)H‰gm&™æT¸Cª]3Y×zRñ$Ì!™á&”»²Y}LV’Äpõ<©wÝ˺ZHÍ`Ùœ±b:\å’FWjði‹;¨7Üå‘N×Û¬k´±F“V×5¬+Fôˇ—ÇI¯k7ëK¼š O‘f× `ºR¢J«àiF{ý¹#”³º»@â¸D掩Ïm ©Jò•S i™ô ä–5$8A°äMRÔsàÙðSœðœö ïœ#?Lºrü}d®…‹wk–“»-£ŠÖ6AÉ›)H×b¸ûùƃS:••Åbiii5§MióU‡îʠ{“ ðað}Îï]Ûö¼‹:#\…}BÚ¯–#D‡‡¸®FH¾« ÷\á„aP—ÐÏaê  ŒÒáFÎù:!€ÔÅݳª‹Ä<õÜNÃ÷1­…®œcOâ^í—C¡.óû룻·vE;¥¦Ž½"¿çþô¨šà©ÝÜm³›“wÿ~aѳ¹¿¼ˆ` Ï½í¨ŠM­æ¿€ú›Î[Þõú…í²]¶ËvÙ.Ûe»l—í²]R]ÔpŠ˜'IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-miter.png0000644000076500000240000002672612536324511021530 0ustar philstaff00000000000000‰PNG  IHDR›(À*´-IDATx^ìÚÁkÔ@ðィ´êÙ›ý«ô_¯Š—‚7zÒ“AD ­]ÖeÝ®©ÙLæ=Ý!É–s\Úáû±„ ™óe‚80³˜d§C#gƒÔîãdcfãÛ^>f6àDçéÛžè9qŸùß“ÿ<Ë´|äQvšõ™xÑíK*e!EYHq—+Jêe!•²¢LL]bêS—¸{!¾GIq8ÄÔ%V”T¸{!¦.w/ÄÝ 1u‰%î^Hýpˆ+#bê’¢,¤>øq­K\ë׺`ê–€\•QÁŽò‹Ij€sô‡u˳xóm×vôSv Iß³P¢¾Hªp„Ÿ³î×gyx <ªžž¸E@0p÷±?ŠP`E%ÕIàpo³vñÞùÖ½{wôüEuôÌÍ0Ĭ™!5P -pvŠZµ«ÍÕ©mç±¹²vÑm¾l/߯°Õ”½)l{}›sôÎqwq‡VÝæk{ñƶsµÇ "¨ž„Õ'èãã“—"UêëyP§#÷£‡v;'%A‚áõë‹æüuüséáÚÚ5þÃÆÚ•uuXž5?N!Ší‹zx\ëŽ!™ÕUR9»fÙœ¿Šõwï~{X£«=Þ¤_ííÚÂu˜¿o3q³q´}Qﹿì½ÛdYvŸ÷ûö9‘™U]—îÎLÏõ"ð"š& Š $Ú„d›†hÉ&iʼØ"lÉ~ó?A>úÑ€ý À,ñ:Ä ÄA²EY´Ñ¢LÑMÍx8ÓÝÓÓ=S]×̈sÖçÌȪ@ ò'„B_2êéƒS‰'¹°×^·½vã}ˆšD]oº5,óÅxøàdzs¸ÿ‡÷Nä7>´rräpßán-Þ>|õ×¼ñÏÒíõ}K²þÚçsô%‰š%®Q5VRµ_ÿìp÷÷ÔânR kLFkôäùÐáA w=zcüÚç|ðo #+AòÜ}§Qu?²ªT«JƯÿÖx矹¸w,ÎŒ‡qn I™Äz|óAú:üÊÑWµ}æ¯wûˆªÏ-£w‡³Ó´¬Ñn|ë·Ç7¿p25‡{­#’Š¥±tÔåL]¼íâápïÿä—j8THâóª”wާ¬UKËôõöïžhÑùÛîex€ L¡ÔÄ"ƒ5w\ u|4ÜùÝÃW­ªMBâóª”whùž^D«*}Ýýƒñµ_ªÅ7îÖpßš[óX#¨Q‚$ZÖ`Y¿}<~ñæoÏßø<¢&<Ïx¿AÚ§ômÕ©54~yxõN" 'Nç}‡ÃÔ¼cÅ21ÄÄ„$“”589<¬“E÷í£×??ëŸ4©÷{ð¨ñÞæ¬8Uަ«c“õµ_¬G_>Œã=ë0.tD‰&1š”ôÈá~Nüœ7^ýáîÒz¢úÜ{yG}k4m\Ü^ÿÕº÷‡uâe>žZ‰Q Fň‘Q­Ô@Í—ˆûǦ‡òËÃÃWi]–<׺Ï@}*ç•D«Lóñk¿Qwþù©8SK×Ó1©¨$"F¢Éé1Q±\ZI5º¸ëp¿üñáW~¡wß×ûö~Q¶Y‰T¿þ…úæ?rxàpÏñ‘µ0c5@„„FDâ’!Y‡'¦ïøöï¾ú5.hM ϵî³Ô·+qÖ ûñ¿3~ýïÕüžÃÝŒç:Æ" ªFÕ_®~.Á„ª¤¬Ñ:r|T‹“¨áqÈ÷èÕÏE!U•ð\ë>}ÛZ[Ÿš-é5íðú¯Ô‰ž|»†އ•E£• ¨! `äñ !jHHô±é;.2<<}íüÍÿíè ª»£uŸ=I.¬ú©Áì÷ÿõøú/9Ëám‡Öaj¡… 1ˆ k$ƒMÊšëÑR߯ù7ç_û»‹;ÿ"­Y’ä¹ÖÝ–³1„Õs³ñá—Æ×~a|ôú2Î÷`™QÌJœ‰1 Q‚4Ûò²Ù@CÖ,bS©5wxá~¾qø•_| º÷W¢­·UõÄõ|kxý³õà‹KgãAÆC]ÄŠFÓ’Bª%•4ÀtDZÅIEÓÄhh±$‘JÍ“˜ºzxœ6ÿ;í3ÿ];ø«žkÝ­Y‰sýA«ŠÖŸóîÿíðÈñ¾žŠsŒ%ˆHÐÃ,í€îmÖÚ>'Ï{¡MÀH`õY£:¦æÖ£Sf¼ÿÿ.ý™‡+Ó7y®u'“äŒq;jªjxã7‡oü“OR›f|ç#eBbÆDhmF·Gwþ…6»ÙÝú¾¶ÿAúkt/´nf´Î4‚‰ˆÍ$V,jx´´’,îüËùkŸ‹ Âs­»q«&qEYrœ#ßüû]Ü˰t=I¡¶$XÒD „>Ìhûô7nÿÙþ“ÿýøÖoÕk‡Z8´ø(*&ÁDƒ#e(3ÆyªÕp·Ñæoþ#úûùˆšú¼ðB€ª|Še ~øÆÿ>¾ñ›\Üq| Gf0ÕŒ[HLBhÒAOwÀÞ-ÚAwó»»ÿô{ý‡þ“±Ö›Ÿ—.„Á3$ÁT !H5©Œ-0¤+º£7þ>{/íàu4æ\žKxª,AM4Ѫìwwüúçjñöi.ÓñHW¾Š˜ ¦Nõí³›­»Þn|G÷±¿Öö_NÍÓõ|øÇ‡áoÿNˆšHiF‘"M ®¬$GêÈ¡AW´ùW­Í^ìogªX¢>·ŒÖA=ë«hR£Ìêá¯ÿš‡o.”‡Ž‡:DQ‚1!é §0»A£]ÿLÿ‘Ÿjiº~Ö¨6»Þì¿èo}Ý“1Ýmº¬ðd¸{üëp´*5I ©Ó‘bĘJ©d t¡W±´ÙíÙËߟ*Ÿ¯£ë{7£U£Ù¾ùǯÿfÍótwƒCâZ ‘Ä ö–Æí­Ö_ãö÷öþÑÖ4dÅ™2*4iÝþGt1Þ¿õO™™˜˜qn¨ØÖƒ1E-  Ít‡_ùåô7÷n}{Õ˜ì¸?êšq;ïýÞqÁm½UÃýŒ¬!©(© )BÒB K›-Û­¿~lÖ¶ÿXÛ{¹eNëYr‘ÚW[ë2ŽÝñ?ñ35û¸ÛTÅ$T¬!eZ°‰±™1ã"I…Öº:äè+¿Ô>ýßö×_±êy½.&UcÑ×Ã/ÕëŸõðUÇ¥8k®+q*`DB 6[FÞ_h³íÚ'Ú±¯rý“8ÝS²|j?!ÐZZ×éØön|êg»ëŸ¦»Ùf7[;qRC'šDÄ„jÆ,÷Ï,£¾÷Æ_<üê/Öj—q²Ë{ÓDu™&;öU~i¹½Z4 × §!F"¡…Yا¿Îì6{øè2{©Ín¦»NÛ£õY*F$¨Šã©P—ñ¬»‹¯ÿ‡¯>HHv¬ÎPI#5¾ñ¹z{ézwO}•d@c‚JHÐ$!tÒÓ–i²Ùí6»ÖðGÚK?ˆsžòlC›³öº6k˜½üûþéo¶þvú`Ÿt¡Æ‚ÔÒ…uäxZŒø`þµ/½ùUìN\7* 9zý·ê›ÿÔña-‹S5Ä(†4Ý,ݵÌnÓ]ï>ðuüÕZÇëÑVœ ë‚O ì½ò—føAf/´Ù­t×é–B !01±²êã Óáîüµ_?N¦ÒÚ»[•ßýÜÏýÜSáÖ³ÿUs1ê¹÷s_»R{‹·~çèk_ßp~ÇáI•IªY&&!Æ–&- ÏÎëmïV×ßè^þ³ý+?vbå¶pF¢§¨eaÕC †vüâo_óèMÈ*ìŒIsÕÀáÉÝ$ÆÐ=z£¿þ©¶ÿR¢!š3¨[üdû-ï4B«ùÅÿkÕ$:Š -RYé,%„Çi²þ&ývâzþD›Ý$cZGrvá¼uð±ôå¿-‡rÄRCi°HQMêq€°Ëx”áaº›:L¢;“{IÓÒáTœhÔȪÐ$% ®1Kw"ζ÷ÁöÊOv7¿OCO+Û$­µªÚ(Ñ$ëã×g¹&޳¿g\Ü9úê¯àqŒU±E‹4–"Ž¸Ð¹uHH‚šìŽD1âXV¬`"EZ“PT i¤K·ßN$úB÷Êu·¿§e u•u³®9kM¢5aeÈ4(b$äüæq@ŒqÿƒÁ£o½þ›ÍEÕ"T!¥Ä(c¢©¤R¥£ãáÕ&q(&ª‚K—D¡Ñ–e`Ý~÷Áé^úó‘F[ó>W"Qc*)5hÓf(S¶²¶ÓéÊViÒ’x†Ð4 ûýÏf/ý@ÒÓ®e¹š$‰*¸–Y¨×Hr¥¢€*ë –„Õƒ„DHƒ ׿­½ô–äÜàíXCG‡Ãüþ¸l/v|?y˜ß©ù[ãá›Ç÷šc8|Ó£·êè-ÇGœO€ÄÖÍ®}ò'g·ÿ¥8gЂ0¬Ðök¨¼#ôê;à>¦ÔqŒ6´4>&š˜´P˜"¡I—¶G7›õ­Í =´õås}EôèkÃÛÿrUiG)Œ1Žè «¶G[ßí­ï¢5ÎÙša-Ûívûû¹óû¡¯tÒˆš¨-QMb4 ã¸†’ð”þø£ý;ùSëƱ"ä\ŒÈ) úÖZ|ë:­„³I|´ïyïÆ“.÷\†,°Ô¤aImé×Þbö‚ûÉ84OÞŸX6´¹·Ì³.b%šDéq¡ šãC­Ð¯€­)Þõ¼jƒ¦’TI.DdzUŸ€zU½Äœ BÐÒÊFhºÐ9uTOk])¤…!#­›ë`ÍI4­q®‡   ’€Ñˆæ\+aÇjè¤9…Õìr e GSɈC9’QGk4£tðô'¸Ž,9ÇÓ`(1ñrÐq×ö¦&d ¨qÂ`£¥…–kUg“µ{SQÏTú¯ ‰‰Ù >ÙvgßKX)Ö)è¦ ŽFTƒh0¢`´I ”-:Ü}/†HÌÀT0¡¬Ì$%Y‹B`mÎÇIß3•Õoåù:z4ÇÁÜ(žK.ZðÊ0Ó8•Vã#-ewjC‚“µnÌ6’@˜J&°ýk³;“‰#™‚aI6¢‰™ˆâÄ×NGCBâ.ÉD[È$ Ž:N{-™¬yÙÙÀœÀNI´b¦b©“$ÊV'9QôÙ ;vnÚzO¾É0QHd*Þ Ùu§$j  l5Ü„ÝÆ)bšgb¶HÜ( [{/¢¥å&ƒâ4À%q¸5ìÎ. ¢Ð…–8ù#c7jeè·12Ñš4¸Í²މ»³KB@E™Š]Cm È4´@ž%°ÀÝÙ› ‰‰SÁÕxÙ¤EQœ‰ÆMdë5e§ö€&’XTm k@Ó“é ÝÚ?вaÎm€…¦¸å`æ ÃŽåGÁ$„$Lqð%„Í~)­KÈtjˆ•KdŠEbØ-4h4* å‘D6º†º•#HØX ™ŠìV§GÖACÅ Ö©(‰&PCN*aTtښ뮜V©&C' €fZ„H}eB$“ L¼|Ža&„0Fã¥Z·†¸ZWM‚˜fF‰—„ÛŒDÕl‚6=RoB7JT  ‚9/Œab$Q»\I „š.Ža4“Lhp ÆIçBhHÎûª(¢"»T#4–÷„@ rþdÂiZ×è6Z—„p©F é ‡Öʈ`}Žj@+ºZ—%Š$ôÒ›&D"9_&‰ã$QMÏ4c¢gVx‚³ÐK3h‹¢ DD°¬ybàŠÛº* ¬&(F΀Md"N£à%_UEèB£±$hÖŒ”ŽO5²¿²1£5ãHhÐB3H$çEYÑHH7Òzq1£F<˺ëB4ÓI$æ©ú_5Z©Q‡åµÞ®Žè (4ƒ žW0HDD-&"SQ¹ =4Ò0¬nˆJÔÂZµb'ÎdJë¥iá©T‚<¥FUÙhL‹&›³&ÑD³q”’63H TEÔˆ*cé@ :À?Љ$ŒÆ5£‚Ñ Š©Í"ªFÐÀ¦ÁdCp݈m1!«ú(ãªö3F…ÒQ‡§fçÔ&†„„3&'A¢(FÕÔ³z ( D…qœP—Db &9c “%¢*Ž:"¸Â(\y'*"˜P::½^—ÇÈ´z]0G‘váH“˜j±L¹6;wC¢mvb4QMQ⨃㓦 r!ç#™˜Î ´>äò-Ì*5‰‹€ºCÕ\8?0ÕQGjÀÊ&h€€¬»pIé¤êN$—‰Þå…aýËïNM=I‚K¢èѨˆeF5—‚iЬÏQs>kA Ÿ‰";q–$A.Óc&DÅX¤r9 t¦%$!!$•pžÁãò„3ñgVú™0í||©–\å(àéÙøÛÚ_9p9 € ñÒ*SãŠ3YUKÁÖãôZ4­Ñ5®àoumŽ–°¹Ö„`Z.9¿jd‰ $¬V²H0^¤úÃY¢®wÀ‚Зœ $ÀúU¯`~´-éún¯·ë{£LÙSfÆÃy ‹EÕXK\£j\ ÃÑÑQDTA¼TØ›Íf=­u­5à© nkm6ëö÷ö ÓŠ£ûûû{³¾ï[kW9®ë 1a*JH¡\F 1GuƒÖU25PµÜ…¸nVİEÉnĤ.ŒšQ„hTÍÅïLÌê9ý!mæf%µÈ»×eU0æ¤"X½Ôw4A“ 1®ü ˜sLA™4ÒHB0îÞ9ÞÈ–»2a`£™[3‘IDÃ$Éî²¥ŠÓ‰˜†HÓ —«uŒ“pÒàh4»xÞÖ¹±¸zxqš€D@ÔaZ·Ô^d*êb'*°×‘Ìd¦ìòB"Yë=èzLG"—`e QÁ$f3& ;wþhT£8‘iz/F5hòt)ª(ªXX7“dú®Ð¨Òºòo×,áRL.Væ’‰X•ŠC"›IÂtwJë®z&lÕŠa‘ÔÅÛ.¨Ù%ˆQM¥Fk°ÆlÚÞV ͬÅNi]ThŠf»Ö#à¥Ðz/T#ëI'å… €ªqKv¤r̜¶ó:ÑûîPÑÒÒâÔ^Vd `# ¢LEÙH6×ñªŠZ:ªL@ lîœ÷B7 D3 tŒ5e\â¥è‰D-!˜%f*êbç¼h‚ X2a%£W¼  Á…œH|wyŸh] ›5oZc ¤RÅf¢2Œë†œSûí‘8P5NOØö«Ö®Æu§ã² •)$ Ói=[á°s–Qئ÷ÄšâãCËTHŒ•ÍHÜÂ5c·âºÛa’eôìûƒEUtòذ{Z7@˜NDŸ½a¢LÅçþè¥Ð2+º¹ˆ…lƒf $}âowØ=­»}WFñYÀIDq:ÉÎÄuW¸•ù@HLBØdpmƒ5d#L|Äuó®aLÂT£4㳕è˜hlÙRµ{¥$nÑñÍJxöç>l|)¤õÙã°ƒmíˆ ÏV SÚ§-%êjÝLÖº®÷™.`ªIpÊ12„éŸÝ“¨N?u71xÖ'y ‹v Ih[TÊ«ÔÎe¼i4&€H±Ù§}¨C™ˆX»×í2b%•͘-PI‚nÜú§k]ÑœàNiÝ$NÀä³BÉ6›V_ q»f«‚‘¨IŒ:Y&“*Ƕ÷G­ z]‰5°¥­ënUwN´Tá™æ^´UóL|ÑZì`Æ»æ;™ ([ãå#t;»+»W•²'ÂÔÖ¦ÂÆ.Ÿ¨šl¬ÉÎÍÑlw }HH& S6HÜ4nu78mršÔÎy/´.Ù* X;9\ÌòJj1É&k³D¦±ìp½në§‚´ÜMp*Ñr âe`TwhwÖPC˜ŠÐ˜Àd­k8ÿ¦3¨€“Nãldÿjö[*§ÄÉÑ]êZfpWá6÷ã¹"äy45n ƒ$ Ö…‰ \­ ¨µdÇùb1Ÿ“mÝ(P³¾ë»Öº®-T–tKöf]×ï9‰¨˜qXÌçóaªÊ3,¿í0_ŒCI6~[ÄSÆÅÑ|pÇÕk+Üsl)W1€lFV;‹h§t3¦!Ö¢–¸„%O µ¬Qˆ„Ëá­*«êŠ÷ãi¢qQÍ–>.šÍÛ$bXÁEߓħa°Œ¢1 S0lnz£5ñËÈ@3õ7'VÖ¸òþ¨QiÑ©uCh*Ùþ^{çû\>2„ЫS3?Ǫa ]Ø¢Ð3åÈ—6KÈt£›$jÄLGqÇ$ HܢРIGZb&£¥&nÐLn—a÷jê£Dq³y„jqQÅ©„„MfWDоñnìMÂYdj´ÜRÙ„ ÈT $²™Æ°Éæ ±W<›¸F¢ôÁ)ö=8NŠëBS'ÖÆÁ‰Š$D &—8NÍUÞ÷¢²† HG€¶~’ÇùhÈ& O¶*ÕÎ~J¯(KfÐI$šsŠ”<½$‰W¹ºSδöï¤'(py$užlT’”©ÔÀ„Ùt{Ù’Eb6 Kb.Ýg.j K‹Ç=sx×ÕÝã $×ÿLOÄI@DµtŒƒŽs/j¶À„I9ZZZ¿iS: ‚¥ ]·ðQ+tFðYè/LM“¬|;Åч Ù4² ÓdD£aãoO !xJÂjjW|ŽF.î^$jÔ1VpsÆÍH¶Ú–ê„Q&OŸR«î€Dcâ¥InTcRf'ÌÑ.[áø¬7ùš¨æßa­Û|åòÞà¢ËË´~ûCÜ ¦s*hÌ q$Wµ‹Üô»ëòÕ2[-¨N{'ÙÑ@Â.ÔM¯ "! ˆ“Ö;L*4&®£,„˜Äé~CÐi‰‘ˆ6¡9¹¸U!L¢LE,p§öxcâT¢ n‚Ö ‚—qp [­£ê(ìTi3¦"@ÍÙLCLÓè3jVd2ˆ¸Sªâ–Æ Ñ‰»Çh ÉTuJ#lš-»CØ­U$N~¢0-VÜA.;рͻüM[Õvk¬„Ý‘¨a ¡’$àfÛ:éC3 xqx]k³k’ºí$ZãNÕÔ£J¯l[oÀ&ËzéB HTÄó™–sE³m¯EÍ.YFm‹± 5md·¼ÀõzAW7·ž È–õhîŽedˆq­+°ÑŽAmé’ˆŒ„¬±‚ 1²ÙˆƒÄLÅèN­£$A2Ô$à¦Ütse¡qÝè4&ƒÉÄæÖ†fÛ·ªg·NÙ [€ã Ða‚Šâz—8£"Šªh¬aÂúÈöL˜ìZ§ÇHÇD —Ò¼pŒ€bÐD(œðë 8µv0;xÊVØÂkgí˜ÌŨ„ÀyÉWˆÆÄ€N­K‰@$qÂhq¼úýuóDœH`ʹÊIVgF²®u15k\üm´É ž‰0¬Þyõú­¨¤#L"˜ñY”’c@«|ÂÅß6*$9ãáLƒ@–¨W¡‹ÜÙ6j­5Ä®[Ä€-Çq.ÌŒ›+m/áÝ}ŠÁ$Ú°58¯y\’@ƒ4†ŒZѵ/Iï/@ëú®±"ÉU«T[k«¿`×M_G‘“Žo‹E×NÖ_UUjUŽÇl.ïÓ jf{³Öuzþ¾`0{Cë5×r š gWV£³.ý¬SÖÿêYGϧ¡M8»{Bƒ2E-(7‘Är\|G°Bç¸Rq5ûO\)ï% OÓ³ ºˆæ @V(Êåhž\Z${,ÒZÕxøÚçÆûÿÆŒÖB U”uDEHHý \mï%iÝöÇ»q½Ý$Ñ(‹”5œ-HSTèüµß˜ýÖâ㑦¢¨$óE İ{'ám×~Bh‰ÝR.-kÄQdz“^…Ä:úÚçç_û‚ÃÃÔ#ëP‡¤‰†UÁ}4’M´¤ížDcB&cØTŒIÜT¥ ‰Ouà|³Ü$ó¯ÿöáëo\Üq¸ëøqޣР¸æM:è¡Åa÷$j—'¸©„ÖÀ”#H!›U'‚ ”ŽrVåºù[ÿç᫟sþV†{÷«\‹Ä‰ ¨rJ“­‡½t{I§î˜DiѨŠfýbíYU$ŒJ„<ÉÅÒ$V ª…æMT ´Å7þùáWÅù›.îÖâ^Æ£Ô‘QIL‚‘` ôt3ÚAúk´騀»‚{Ó"hX$’0 H¢à¦iJ¸ÀÍ]EŒ ª¥ ëh¥±I€£oþÞá—ÿv}=Ã]w¥j"j$Œšôiû­]KÿÝ ÝÍoï®TMØ!‰j€JËò’Ž@* "Òh9½B‚®«Çg$J¼lÝ–€IÅÑbå‰iÝâíß?úòߪùNf§ãaj^ŽhR&€º–hÐÓöè¯1»Ñõ7ú—¾÷à#?’Ö§*°CùQèC]ZOëáôš-¯½Óÿ†ôY>ÀõˆàYñ|"®05¦æ>¦hÝp÷ÿyøÅÿe|ôšó·O”íRœ:b‘2I0𬉳KÛ£»F‹v½ñû¯}ü'Òö¬|ÇéóîAÛ£ÐP×LZ-ÊR×ã@¡Own9,jž ©çùr[ÄXº8‘Y*‘Ö/îþëGü?×áŽ]ܳNÅY‰Q[(ÒŒ!Òh{é®±w‹îúìÅïÝÿøžv`u‡N}éè_ ¿ÝúÛô/föb7{±í¿Øö^ää~›ãÿ_'nŒìÎk1x–ä<)(2êÂñ‘ãÃІ{ôðþ§ñÁ—=±lïæTœ“Š%"!Y)[ ]º½ô×Ûì6íFë»>ý׺½ÛZ@’ð.ðîÎѳۭ۬Õ#µš+SThi쟈sv‹îò”\·Øò†©1‰#µÐÄ ÷¿ôà_ýãáëÀc;¨ŽLEãJÇÆØ [HGÛOwÙÍt×»[ßqðéÿºÛ{É¡e²ŒÚìv÷Ò8<Ô‘$V)šåÊ},ž¶ÏÉÕ³ÿ-¤A.g.¶0%I4e ­µñÁ—¿ò·Çû_¤ÍÊESƒŽ1¤Vik•ÄÖh]ØOw½Ín¦¿Ñ¿ðm×>ó×ûƒo±FiÄ„¼KôêEFÔ) HÔsï+.úÇÚµ¿ýgT‚I§FÂÊ.V‰hëVnU%qsö?‰I4iQ1¡’TÍþÑÿèp/ô5<$¥•T4Ñ š´ $@GÛ§»ÎìÖ‰8¯æÚ§ÅùáªJ@½4°¥NÿÉôïïEH’j”FBµ iD$$aɹ Hä↠Qm‰Õš“492Iil±4„4aMœiûœ(Û[ô7ÛõO\ûôÏö/|ìÌ—Ù1­»^Ìà’ÖÚa³º·Æºäà’2I¡D%¨%P„rh&`Dm!Æ–•´•)”'³“îf»öñƒOþWý?¥¥ˆsGl]•'œÊ•‹96kdÉén¥à¥gøB€ŠFÑT¡ABŒE d5;oädv~äà?9»õÖ˜œIîÚ9Þ€OX•˜\’'_MÄuqž[]‡°ùXWÖ†+ŠQT\­ì&ëkg½›{Y¯|ü¯Î^üîÔàìJ„á)ZUÀ¹ÃÎýÔ%Õ:FM´æ(Fb‚qUÜl¶JÑ­õi{KËö'ó‡>öc{/ý-C;£lwqU“˳+IŸªÜªšÜ‹-er=SŒ¤‰‘Sº°×Úý ú—ÚÞö?òWö>ðçÔ kçN­£g¹\9oW­Óf Û"µ8_3º=f7™³ö?ü—ö¿å‡Ô(È{Œ>ï € JCH¢ïÀ6?#!+×:ZoÛo'³ó6³[{þá½ÿESš& yѼjÄÄm‰Š`$I#ìÑ/}•ÙýýÅýÿp‚|OÒxA@ Iôt'q>ú›ô7fø¡½þ§Ðk€$(ïIZ®tÛ+Ûh[K:ZG·O½íÝêú{/ÿùƒÿôµækòð\ë¢ÐT™®l5!¬»žý‹t/ô/ÿ¹ƒOümfU ‰ïmú\-$Æ$qrk×öý“(ü‹é®õ/}ÿÁ§~†îš5ïuZ®¢H7A0!`Ö2Ø­O·Ÿþ:{·i×÷^ú¾kŸúÙ®»¡Åó> Ï•‚0¡«-FÒ‚&ÒÓ–¦ÐÞ­e{ûß=øäqAÂ-k„¦æ}BãJ!=¸É²M4&ðIJ=ÈÒ¢»ÑßúÓŸúÙ¶ÿ²UÒ’ð.ñÜÖ5IÜF ØZÒhˤJ[¦<û›ßv<;ûƒY•ÖÈûŒvµn.«JyÚ²íÃ>Ýríìnu/|æ$åyýcV%‰æÝçyÌèbB4„@xbÙή³œÝ Ÿºö‰Ÿ™½ð)-!K|¿Ñrõ ¿Ô""+ShiÙ¶þ³[ÝõO_ûÄO÷7¿Õ“ yÒ¸‚4Î@DLžX¶í¤>³ÛíÚG>ú£ý­o·FÞ¯ô¹zà9PTI£õaF·¿Ì‘Ý:É`äGû—¾§jL”ļ?iÿ{çòÛ4„ñÙ‡í<š¤$E‰ê‚¸pàÀŠH­ÿÿ¿QÚÅžYW›†{lëû)ò-¹|òdßìÆñaLÌIæBêFžl´Vñ3 .ž»f‚}Ó’éô Ì^"í‘Ý´MÆj6”¶3ü¢Ø~ëwºÜB"= Žƒ%·í0b+×A©,L"—Þ—_’’›sX†§ŸÂæÊÄ»nFÖ~âA®›´<³ "©|TªnFfd‚ÍnnO¯üÙÇÜÓë²à½/Š`U•”$'¥¶­4†¦þìôþãÝííß(ˆñØ ×Íí»ùS·Žîei[Ò[õ—TÒš…ÍuyþØÊžg¿pl0{É­e™˜[9õ˜M²ú‚Š]hIvâ×ïËó"'ße¢½ÃG íø2##Wƒ(Üe¶•ÈYùÕÛªþÉ.HrûÿÅØ#P½yèɜđ}´jæ;mžþô²ºøÃnÚ‰×>ïcÆÿhŸ Nc yÃ…1$ëþ•[¾.ëßæM ”ÙùîóÔôôŒ¨“]Èú¹ö„„ªþÅE»Ro²ÈúhÁ-öD]†‹Îýµ ö˲‘³Ü˜¶ÑÇZÏ(¢.Žc" ãÈUìOìüEU߸ÉVŽ£áÃ÷0ïTàí]uä—ÆŸð¤.w?ì¤V3ŸÈFC>#Rƒ ä—¶Ú•Û¯nöLnDh™‘$Ì›°¾v³çì8DàJQåÈNüê]h¡’âí[…ã°2d5Û¶œpw¦:„¸M…Æ!'œcÝzZr$ÐÐsìaߨ×Þ/D]E¡(€¢=#€ž@= 8€¨ ëBQ€ÌÀ•u…¢}]€@õP½ 3P ×Èu¢.øœw©Ï›IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-miterlimit.png0000644000076500000240000006036012536324511022557 0ustar philstaff00000000000000‰PNG  IHDR‚Œþå9`·IDATxÚí½€wuý?íõíU]ZiÕ-W0ŠC„€CH¡÷„Þòs `H€$@ Iào „0¦LïÍݲzïe{{}fþŸûýÎÌ>m²-KûÖ#‹eõöí¼:çÝ{î¹ç˜ÕjÕ4M#üãû¾©þð ÿÔßè š?ÑO£kêzž7ÛÑ¢_‰.7¦ý©½¹é7=å^ñç{Žåœœ¸÷+[žó°E¯yØâWÛVBÿŠç¹U·ä›¾e:–a‡0 ?<”¡îÇV_ uÌ)¨öÖ£ŸÖ>ü)7ºZô‹SŽ9ý¡Íö0£KjïÏô+LùE}f|Õj¯?ý™rðowÊOõ1§dú8åŽE×9ýML¹¡Ú[™ñg|>k¿™òö›ñM>Û~Ê›¡ö˜3¾43>'S^‚ÙÞHµOÎô7ÒôÇòø”#L-jßÓßH§9åOƒ § ¦¼ˆf¥R©grvòÄøæ·=¿#»faãÃ[RËù¦)µ<›h7MK]Ùð=@Çõ}O£ŽÉW…G*™S_ƒ†bŠaèœÂPWCUÇNn>ñÅŸî¿Ö±%wŒË+vš’‹ºr›øÛ‘YÓ˜ZÆ%¶•Ô7ϯò‹‚Jú† ÐÊ´,kú{"†¡†b:0äºn} Õ]Øö¼y{ÿ×2‰61Uî0U×/»^™+ÙVª!¹ =»¦-½º=»®-³*›èH;­¶å„íªªB²ä‹iI¯fJ™¤® 7ÃP C1 ÅÕÐŒç€'_ ÷«[Ÿ2¿-ig¡š»dÚ¦MÆ<¯\ñòžáZ¦qÚS‹èÚºrÛÒ«šÒËšSKvVnHÑD¾¯Ú7u&ÜRعÅ0ÃP C174õÐ¥Ð@~ç7v¼¨TãûSaHJšàNú¶ðA–°DU¯ìú%Ï«ðƒ„•I:ÉÅ™µTIm™ÕÙ 2‰VßT·âËq<;€I.²ôÁ ÓH&Ó÷܆bŠaè¡[ ¹nÙqRÛû¿þ£½oKXY=ùšþ‹“¨$ÐAßY¾©Z7ÏõŒªëUh⸮m¦rÉΦ䒮† ;³Z3kr‰Ž”ÝdY¶f´ä·"dzß­ª¨†bŠaè!HQk~ú·‡?òûÃb(ˆ?t‡7¦þÓs3¹OT?ÔJÏ+qd~œtrMÉ¥Jí™5mÙÕ-©žl¢3å44·ðÜ®ïyÁqT©ÃP C1 =„`HõJRã|gç«÷ü4ã´RÔÌø,Ì C3¾ûU£š/Hr½bÕ+‚xŽÉ$:›R‹[’+º6¶¦W6§–Ã1Q(¯Ÿ§p)¬È ߌa(†¡†æ; yCÎhùð7¶¿d´t8içÎ …wAé4Ù€ …ë•\£DSÆå +—vZšÓËÚ³kÛÒ½|ͬá>øŠ4’²Jk²é6p&ˆa(†¡†ê†\Ž,qhä7ßÚñr X0-™ÖŸšr=—ÒYÑ«èûU!•üЦ¨©•๛ÒKä.éÌ®oN/g§Ú7K€ÉWâIù­èI³O1 Å0ÃPÀ:‚kÛ‰;ÝðóïÉ%»(…f{ Í,_TD’ú§§n RI¦oÌઠìRVskfEGf=ŒRkºM@.Ñ•°3ºÈR›hÔ¡´Ri†wa C1 Å04·aH͹8¼ï[ú¾¬`¨|.a¨–¢2]€¥›8.A Yõò #wÓ±³ É…B*eVÉô-ÝÓ’^¡® %Õ¾Ár{ ؤ£³ÔJísÃP C±ŠzNÂ\hªƒ7mû‹‘Ò~H5&SUÊ9†¡èñ†|’þ?–i¥O”N¬*¤훈'ÜÕ¬ÓÖ’^ÙžYßžAÕ½–Žy_-®ñXLJêÆô-š1 Å0WCs†´ȶÁüÞ¯l}ŽoTMÃÑ/Çy¨†fRQ+‘^7¨’¤‚C¦$µOEØt°Æ´“v#ŒR« ÒÚ Ãy'­Æ”Ó e’¡E ® à|ÍOiY@¤Wð´Q@ a2ôbŠÃP C±ŠúÁ‡!ù– zb{ß×¾¿çéD›–ÎRG˜|“°4;ùë¥I*Q*¥£4\ÇL§“mí™Þö̾"hÎÕ-»o†úO L¦vJ`)؈Rø¤uß²f§K¨†bŠaèÁmÊ|C??ð¾;~2›èb‹õ4ÏÂy‚¡ä‹ÓoBýÄR¥T‘h*^j‰ ´51}K-kͬìÌmDžI¶º”se¿Rö\Wͧ,=“ÑŒIÂÐlº!ÅG‹&@-šˆ&@ô“¾'†J‰6H¥æÔ M*á©Ô˜\„Ô3hý …J¦hŒÞj_x%~ÃP CqSvºó“¥ ÇI|åÖW¾ï7tu·¯{D®{yº­;™ÅåÕ6=×wË~µê»Ú¼Lñ$²åeéw¨ÔŸúƒ!mstÊ{Ú’Qœ£Hj5[#1T2ù?ÜL:Ñ‚†»#·®3³¥Rk¦—†.èÕT'Ë5àhʺ۰&ÝbŠa(†¡éç§°Ñ®ã%½ýúg}øuwêÓ2‘6[»«.Ì-[—]º&³ 'ÝØêdm~èVŒjÅ/—\!‰èÆW¬n4<ª×jhfù¢Û«Ù›åϸè'坨¼X©¬Ó)`”ííÌ®Ãì ÛÚ7ÛLh·§ •ô¡¢]ͼÅ0ÃP CF¸ÑZvŒÔ1ë;W?çšßÜ41ã3ÒÜî,^“^Ü›YÜ›^¾>×¶0ÑÒ‘t’–[õ+%·Zöªeu0¼Ï,ã4~ûF[âדf©iÈ\ñÃź7CîÆÔÂ–Ô z7ô“M©%ˆ•v:OjM@°Ü¼þÜ1 Å0ô]æÐÄm'o;þ‘ÿþÂ{wÿÎ:¶/¿ïÞ|©àÍÆøäšm ¥+Ò‹V¥W]Ô°peªµ+™É ü@'••Á'šo†fÁ+=¯‚B±U$ MdËDÉD•N¡”èhIAo÷´fWue7¶¤{sÉöЈ[)•L·æn[Úº;²G‰a(†¡‡D5$'’ê¥nÞùšcåŸgS­ùñòЉòÉCŽ÷ælÉÝS²»pxwaÿ–ÂÀ‘ÒÑ}…âø¬“{Ê"Š£eë2|]qA®kI²¹3™Êȇ¥è—‹D '™¥çÜ$gÊúûüð¢JAá“,UݸUiß òI`8€uIZÈ)5¥–Z¡Ç›º)W¹ô -®·q}/Xöa(†¡º¯†X¬ß|ü‹?ÞÿvÜé%y5”‡^p°†j|˱’)+™¡í0ª%obÄ=q¨Øw ¼kþð®üáÝÅá“N ôQjîL,]›^±)·¤7³`y:Ó`;Ž…“P¹èU+žÚêòMýˆ‚nDõ#Þ|³Ä×…Œ’tÛzXYu‹âñf”ù$ PB€¤%j¥®Ü|Ÿv}?ðâÛp£ç*X3'“†bª'R||8ÿdÿ»î=ù…\²»ê–¦œðµwÉS‹Ÿú§–m8 ËIš¶-TkE¡ŒÒ¡…Ûò»îœî+ÓÐ͈Jün*k5w$®L¯{í[†¿ÍmN2#·Z­"0(¼ ¤CvTMåìdÌKüZ‘º"•,SiFuï¦C–œ”ÝÕMqÔ„,­Ê%:!•L£ÆPÉÐ eXá.†¡xRV0¤:…¢;òíݗߎڅ)Ïi`ÈÖ¨TGà×.Ñ(8¦&•Ø-äÝ¡“•[ó‡væ÷Ü=1p¬<ÒW)NÌ:}khµö¤z/nX,URªcq R)‘Õj€rªÛÓÔ±–^¡É$#à”êÚß«y!ƒÆ‡éé3‚Œ\¿¢Ì0¹'ü-[{ÒºŽìj ÒvKÒiˆ^2E*¹–ŒÝ¬(† Ú};“wp Cq5t.aH:²¡Â¾·>w¹e9j¦ó`hö·¬ú÷P( Ë’i#CKWï*ÝU<²§plñØÞâHu¶öZI«­L¯ØíZžî^–Jçl¨[ª$”“~}µFé!“Ì¡ B_A’¸—ȤÒJSÃ"M’-ñÃ]Ù\ÌR®eÕì¾ xiËn+†¡†æ :x í¼åæ]¯Î8íj‚£[µûCZRJ¢5ÖœíSiËf/Ä3òcîH_ùøâÁí…#{ {ïžè?Rv«³@’e4u8m ’]ËRk.m€QZ¸*ÓØ x cEãV)ÑÀhƒ2}WÀnH%ÈÎ;Kü(¯ @±ÕC¬ŠÇ›_–mdqžlÊ&ÚOâ[‚ª»+wQcr¡ˆ'õþn²¤ž/?P`FÓ€†b:0¤8…*;¿:ôÁÛŽ~öÁðý‡¡ÓÜ4x¤ç_|Jƒ 4n"°pÙðó£Õ¡ãè¤C; »ï?q°\œ¨V+3ÎH&ÍÆ6§k¹@Òò ¹î¥É¶©L£v¾EdJÙIÕÿÒ'Ú¦nsͯd5V”;&Ϩ$‘LÆvÃêSÛbTBeDGÈR{nCkjy*ÑB}T(A—&ÁYÓ-ºcй¡†Œ ¯1¬¯mÿ«#c¿%W^LÃfa1Ï–ß|ñt÷ܸ;)¤µäÑè`E4JŒÞvçï+¡˜®zÆãSg-ìI÷lÊ.^•Y¾!Û¾(É:n*+؃L‰é[¹ì»¸¶a…UR­Ö¦naÈ M²ýP „“þäCSnÂs»nÓH$ݧYÊã ™RcrI&Ñdw^+•ô/rS2NsÆ0WC¬)“=r»Xù¿-WNTú˜ÅO_ûzðlÏN½ SÍyD£Dû£d' z®‰á*£·cûK{î™è;TB¬4x¬ìVfe”Zº&»–¦VnÊAxw/K7¶1Ì3]µˆ[-‰ðÆTKïf@Ô; ^Em†Mœ¢„xF]| ÊÞ×$& 1LiykjUGn½¸t§ÅPɦ Б-“†S1 Åòų Câo%Œüò;;_aã1¨´Ëµ#pãšÀ†Îüœ,Ô’R/Yd$& IÒS• ¢$Š#Ú·£»‹{6ÛS*—üÙÄܹF»mA¢cqrå… +.ÈI-‰tN´ÈX)UUû¦‹ù´·´NʯyßÌ€ ô£åþ`jFãVA©ä—”ùoBК^Õ!ªî5]¹M¹D‡Ô“Éݪ×5ŒÐÔEÓ)÷:†¡¸ºÏ0Ä‘‚üw‡?ö»ÃÉ$Z‚™q~`è”'T¥ôøÊ|Ìó´m½¼’%ä´ÇЉ;Ò_AϽosþàŽü‘=ÅÑ~Y|›qú†¸ xç’dï% ËÖdWlÌÂy7¶à7É“ ¦%MÔŠ–ÝXʺ$âÜçYN™®‘¤íÒd)«ož„¾©änjR+Ÿ€ELßæ.ÅV‰=¸„ݘ°S¾¶òPIºÁM€L*Å0WCgV 1&s’·ì~ÃŽþoòaèÞ¹lʦÂPäc¨¦9‘ëEèàéÍÏ(¨Ç–Þ D;eSA)ŽeËÄÓ+i[:c3}ãg¥¼ßw¸tâ`iÿ–‰c{K(•Žï+ŠCÀÌ÷Ðhh±®Ìt¯H-Y•^²&³xuƒ·tVN'HnqSª(Ma ¹ñk ^õ#Ý‚,Í Gœî\®†œë@È`xeˆóO‘{ùA$Ó7ð¨â$DS$ÝͰH­)M •Ö±n‚¼;Ô‘“Ár² îÃ,¼Ú×]?ùz+®FMÃÐC¦)S9:Ò‘»ë[;_î)áb58ç`èŒV[U'Â>SAŒ$Žnol°Jqt|éèîT7¾%Ã}ÕÙî0Û$PH­ÝÉžM¹ek3ˆ'©›² ÑHïæÑ»Á¦{“ƉÁÙ®üi¥œQ‡–ø5ô” ’„,ª0dÿñ$‰&<ãŽÝ ¤R²»=½Hbý v©!Ù*ÛåE‘Ý7ÃÕ{p†^É™¼ÑÈM!4’‹aè¡Ä qe‰âØÚ÷•ï}WÒnP…†q>›²ì7¤uÃ~°þüŠTJ$„Tâ1²Ž;6ìÝ[ŒvÞ>0a¥„JÀsgîÝdñ­Íé½(·lC3\ü¹(”Ä!ßOóÜ^5ܬ”Na¸ë†fÕ ©u ^j(À.´Xâº*d)EžBkj%x´ ñ2‚ ½ywÑ@O†,©¿ÓC–Œ0¯;†¡‡E-c2;ù‹ï¿ëø§E¸È¾’é…Q´:V÷9eÑÛ:º)@2Eû&Dtò€@’¼mË,ÅJiÖÇÕØn/[—[±!ƒX‰uA¥f'™’³G4JEj%åïªd“3‚ȼHæ}¡½’âƒBI˜Ru— ºM‘t74$»‰¢$8I7Œ´wªÆ'@ùy{1åÛ! Å0ôP‘/JGN,â7w¼tÿÐ’Äo¦c§l3Ž:|½å’šæ¤Y¢Q‡9e“ϰÚ2ÑÆ!ÒÉŒ Žp-fÿC'KÇ÷â $+o·çï/Ž º³·ob¥Ô±8±b}V¨î5™ÖIY|3MHîJÑu«šk÷­Iã’ù|jÑo*IÉRÔ’%›oD'xHº‹UÙ}M@Öi‡H"°»EÖßÖ#YR»oNpŸ=E+š+’7›ðS1 Íó½´0Õü®Á®¾üÖ÷Œ#bô¥çÇWHJÈ–@ Ìõ•S¬ݓӼãç& E;Yâ%è ŸÐJÉIá[bò!=1æŽUìHÚsÏøÁmùÁãoP‚‡Â·±ÝA гQ²L ¼I1ár Ÿ.K3èùA²[à8mFÔìÌç€QW^Ô“ëÐÑÀÞR»o¾nV‘Bºž‹.ëoò M¡Ä£2Ÿ\Û‘ÝЖ^Óšé!Ë;$ô,@àôñƒèΆæ7¤¦%|àØc]¨öç·¶Lìê/율/WGUuÍf{¶˜;êÝÀ®ÚóV²‘ÐfØʇÌE jDã­šgÞTR¼ˆñÉ-‚¾D ãՇʘì½gbÿæ Ö2Ž•¦\“Ïw7È õþs†f<å4à àCDKý¨•Lj%߸&N#ƒ'˸»ÁpR•KJ§iß@%lpñu[Nû¶*UK'©´$¾I¨ÃaSp:SiÝ’vůÅõù•Ìa†¯‚ˆÚ¥.ÓsP©(!æHº- ÉE™À+5§{šÓ‹ZÒK+Cì‰y§ŠÀkª]I CulôqêýÖäìÁKT«ai|b@;Q:1V>:R:prbóPaï@aw±:H¡¤Š†$üb`×¥Ò¸ ¯î`èt;e¢0ŸôV@VJS"¡]x ŒC€˜–ì–¿ìå¨ÌÖªâTÙ¹,Õ±(µ„¸·9P‰ö-Ó ‘d+á`É_/„t³†æžßAš6SÛ–‹˜[vßŠÊæÍL99*£œ»æO7} !ݩߟú·``õ30Å0T§öÓïw`„¦EmR ƒ&4)Tª6V<"Š‘‰|ùäXùÈ@~ç‰ñ»Š»'ÊÇËî˜Ð+«¤,#Fn™Aï¦*ò` Ü0ë†|Ï \Uu¹(K¢FydK•¤}Kø“Çà­râ@*éà¶Âî{ƽ•gI|“Å·»¹Ä·Ô²µÙÞKr,¾µv'8 xWU‚l˜üiE‚‘Üó †ô[ΟÌ7%+Ý™&㎟žü¯wZ± ÷ .}ÚÓžvõÕW766òØu“;ã+;óëWCs†f.X‚ ß³¸ÔÑŒd¸îX*í=9±T*ì*ì)V†*~^UR|ö'ÑŒðWORD÷oxµndõšS¦V\_[)©]4‘) cÍ® ØUw‡ú*'Y1‘Å·ÝÅü¨Wšpg¬•´L Í$ÔsavñÊLÛÂ$znŠ/^ª¤ãÊ0<%éÀn}# Ùù—Ì‘°“ƒCCãÛ/*ì_÷Ý[¾ÞÕÙýéOzéÒ¥üèNõç±}lgg'À46CkW­ªFÛÒÜtê-†¡z‚¡éÏ‚Qcp£.U;A2²7Q:9TÜ{2¿…Þm¤´o¤x°P¨6á›ôü2€³’”M¾Ð³^íZ¶1â Ó 4~†sµmR"eÛ ±¯…Ø8\Ú·eÒ‰ý%6N}›múÆá$èmÐIX)u.Mu.N¦rbð¦ãÞ„ç®è–$ÈæˆÆó †Lß)[ýOêýÇuÍ­d¦r4¸×d2yã7¾øÅ/æûÖÖÖç?ÿù×]w]*•Rû†ö”û0åüš¾ ÃPÁP`êõ³®•|COÍàXè0l!–Ž–Ž0€ë›Ø2\Þ?V:Vª Â$!•’Â@™ž†°š”w¿®ãO}7J`,ÛàQ2-ªnž½‰‘Êà‰2Ën¤ÛWâëÉ#edÏŒIFk—ÓµL<¹õfHÇí^šjîH²³$±õV1w^A÷x Á]¯0¤J êÓ{ÿsEócJnÏâèÊü9tèÐ=÷Üsûí·wuu½â¯à•"Gáãÿø÷¾÷½+®¸bãÆxÄ#)M’è&ÎóÝIÔÓÅ“²ú„¡šúÚ“¦g´¾ÚŠ´­pþ„ÕV©:–¯ôõIû¶ãDþîÑÒQþÉB;Å]›¥dJÚÏÔ׆?£SÚLŽŽs׿öæhÝ<X/¦%R%aZ"½´ôø;p¼Lû¶ïž‰Û%ñKŒY@)Óhe2I/[ŸÅà §·–î—(RÒ LKÍM`fYA­4å­<Ça^²RÍçR]W®û ÛU·,œQÍënYV„&_`û?ó™Ï\ýõ‡îëëû‡ø‡k¯½¶X,R= P.555鯭ö·¢7¹ÖLÆÕP=ÁÐÌÜšR Fo^X@ñf±B Rø¡"´ÉĽ}…­ä‚ æw—–Ü1ö,UR9&™‰ÐDB¸N󎯗d½òªEŒj÷MkÔ…áŠçs 'оåÙÅ=¶·€³{'³¥ oZЃádÃRÙÅ͵/L6w8NÚR¯È”ÔF®§¶ÞTm/“çÍy21^Þ|ÅŸ®ù„¡ŒZyTëC¥£ª-”(¶nÝ î¬[·Žë …k®¹æ§?ýéå—_þÇüÇðÜ\pç©2}»µES¸¨Pq5T_04妭°_ &BK'z”ü_¹:1\<0TÜÕ7±j‰Vn¬t¸äNHûf8¬˜Hû¦‚(ˆ¯}ÔS^æú  e[zn(}i`f2P@:)%évä§c„P,! îíäÁ"6¸)«³û–0kƒKB6¹ë’µY¥Æ–D"­œp‹('ÅMIË&µ„U Êõ³2§`HÝ5»è>lÑëþhéªÕ²XGFµ’=áÓoȲ¬(ãSó›ßüæg?ûØtÇw¼õ­o}Ñ‹^ÄyJ¡ôå/¹­­ömÁ‚Q‘¥ÕÑ ÕbS CuCÑYgjÅG´© W«%¥²é]E¾Ò?Z<0R:|bânp£¥Ã´oJøl‰˜Rɰ½À§1 _ ßò0uÍUA–uɘ:`ÚÔ§¼6ñ¤Mî6%§e±àUŽïÁŸ[vÝS"pi¶ç/7Æm0JË×g–È .‡> Û`É€³$U8UAìP°:á‡Î“†¶š;OÕü»âž´ê_Öu<Ä0ÍÄéíçøMဢª‡Ê(N4IÇŽ{Ò“ž61}[µjÕ?ýÓ?=æ1)—Ëüh ‚ԸʜÂ(éÃÆMÙ܇¡®kÐ,Yuëj‡ÖÖ<·v_Eº]†9)ìë›ØÜ_ØÖŸß6Qba#íºfÊ%[¹IË©ã*ªvÄ%F¦EB'y t¶RRR˜ŽU+žè¹WNì/Úžßu×o ãüY@‰‚ˆ57ÖJz.dë-³RœpSÙ&I|³EiÜ 8rŠ­úRŒRôbŸjˆ„ÝpåºÏâúˆ¤iØgC³\ÁÝ…éö-ªbFFFŽ9²e˨ô¥4qütçÎ/{ÙË.ºè":¸K.¹dÅŠµ¾éZÀ% UíýÑ?Ša¨Ž`hÝN¬©MeÃAMÓÔ†§¦o‡Š»NŽÝEû6TÜŸ¯öW1”°@G¦o„ bê J Õ˜zo ¾sÊ´§š^8‘Ê–¿²ø–°´á…Òþ²8áÞ>ŠOÀðÉ*ZÊJi=wB¦oÄO®º°añšÌÂéÖDØŽ#Òð²ôn°T">A€]ÛE†qŽ`ˆR¨=³öêÿç /ò“}`«­9­/‰z·è: 8 ½ñoea¯Û·o?pà"IØn~ú…/|á…/|áe—]vñÅ?úÑF¯i8‹VL"íÒ”'$®†ê†¦žíz/D'Õ¨¦ÌÒeÿ(WÆ·Au³Ž{|ü.6àÆËÇKÕQ #ÛH±ûF•d™–.¸ÔçÕ3 Í@‹ê­v×Å WïâŠo‰U.»$¾õ.Ú]8º§¸ÿÞñ£{K#³;áÒ¾u.NAu÷lÌR(õˆn2Ó “žØ`LÜ VÙ«Î|P`¨:ô¸åÿpñ±_†|ÿìÂÐlo¿ˆWÒû"0éžó™Mƒ&͹k1 ͪåy‘l|ù‚G²Ž˜x`– ©„uɉñÍýù­* ÷—ÜQv¸•Ï»’)Ž"-­@„¸Ù×1 é"ÏT>=Ú–^I‡|eZ"¡o¶ø™åBul¨ ÛWØyÇø¡ùÁc³f+¡$Èä즇Z©÷b»³âЙm‡GRDU46?Êd2´cÀê¤÷¼ç=Ë—//•J¯}íkßõ®wq~+|£§Z§ûÑkwú*†¡º1†o~à’¥|ŽÃ$ î>^îîdƒ·ñ{GÊG‹Á)8e.Ê”tûæ»Ú,9¢ë=§LoæFP%¡÷p-âÔ"b¥‹Ä~Éþ-ùƒÛ&N. ¹ÅñYÛ·ÆV{éÚìòu˜Áu-K¢œLÈ:®¤È®¬ j›†¨¾/0$“ x@"@ž·á« +ç)³´sCÓï¹8F©³[Ó@ÑMIƒƒƒLÜp÷öö¾üå/†¸Â›Þô¦}ûö=ãÏØ°a—S@Eê$OO*ã"t‹¹¡z…¡ÿ©h/°cóÕ9Ê”xvÓ¾źd¸´¼Dû6"û¢@’•Uªn;hÜÔž‰NQ¬ë¸DQHxÆdB™”*Â"ášÀ·$%ÝŒÞhÖŽ,Ø2Ž17‹o$¾¦}[´2³`YjÙ† lwç²tÇÂD¶Y qw+yì¾I‚“øO‡’é0¤•¼l#®j}êÓV_Ïœíkd†uahÊ‹8å¼›~‚sÐsßrË-»víÚ½{÷ûßÿþ·½ím@¶cÇŽŽŽ–rOyÓ†ÊZyÁl04iÿàyZ&?µ«¡9å7¤™é QQ%m/&nEdJå#Ã…}…ýøwAIHû¦Ü”´& pëSª°Ifݤ¶ž“÷_ù–Hk*)&)Òqź„^d|¸:ÜW9²«€àëo÷H›ÕJ)A¡”èX’\°<Ý£ÌpIîÆà'[RL”çd°¥£Wpƒý’éÕ¼RÀÐD¥ÿÑKßòðE¯vÕ¨~ŽÀÐlÅHÄ(#¶úS;Åïïï¿÷Þ{iÙzzz¸-“G=êQ|³~ýz¸$tQOâ;5m¢7Ã9`þ*‘«þ'·=iåÃÐ\ƒ!­| %¡u‰¶a¡Mš™X.O„$C·ãwôçwôv`®Tö&<@z$‘›Ê —ÃyA7Í„À¨œ²õÞTŸ¬®z{ËTÒ&‘@ÐtT|²•—Ž('ÜÛ GwK„‘Ì+ÏTÚlhq÷ŠçdïŹ®¥©ö…)åGÊ.Ý’øV­ø:\¿Â6:ˆQa¼ðÌ57,o},c2NmÌy/êˆ ŠnK[ŽDbHý„£ŸÜ¼y3¬öO~òÄJÿû¿ÿûøÇ?ž#Œ}ñ‹_Ü´iÓš5kP DXV»¶éžôM.=j¥Ó¨ñ\ŽjÊŒ bšS0tZù¢âxáµÔôͤßåjž–M¥lañm¤th¢|²êå•L‰Æ-‰&€>NJ®ü °Î¯ï¸Ä0ëYY) uaC1ç¦P·i߆OHå®»ÆI{‹”NJ³½P]Š’{5ö9MÐv£çfú&@ŽŒØNº*¨AI%ª âaŸ³þKMé%uCÓ_ÊDô M·ZÓs%´æj骫®B—”ÏçQQ~ûÛß^´h‘nÓôÖîäCàBË:ðÑî{÷»ËÃíùáßôÙÏæÖ¯÷Ôäš1 Õ M–¢ÎŰô>w]mâ $–¡ èŸØ:Z>¬P‰0)“°sÊ:pjï`Ì—œ2ÝÜzÊ'Š)vB uÍX¥ïXiÿÖüá…¾#eÖqO,Ïö®ÎZ»J‹V¥Àv·-LKI•Y-¡çvݲ“¯ .myä3V±rÑò1/’9"`Š”JÑ­RDÐFعíÝ»—Å·ææf.¤hzï{ß‹R‰u܇?üá½==é\îèç>wç‹_œp]Ký&>ÞízÔÃn¹…šH¥«[1 Õ5 )€†¶íQJ8}³-í;é›ônp¨,¾ ‹»Ûþ“÷B{O€ó †j—‚[e¾)Œ’@Ã2Y4vÞîô¤tdT7+&E¨¥JQMñ-ÝÊžÒ¾„ÛÚ™ ëmÉš’îÎE©–öìDõäE/A4¤“ƒêl~ÍÆ:׊°u•´gÏž}èC·Þz+<7`ô£ïßN&o}Ò“úDȠ㩾—ðÉ‹?ÿù…/xAµTâ ñjk]ÂP´ üSkjOÍ5CÏIµ2bGn“•j‘š_·=C·ùÕü†!½ìªÝ%£M_úP ×f‹@)•µÓY›9 ÃBÉþm…-¿ýÑûÈП¥¶…'ò¤)›½‘­Ôꬽ¤å‘Ï1¯yÚ/ï~‹ðÓ–5a¨öíWU¢E܈QâBœ~ÿûß³SrÅãwåUWU …Û®¸bôÖ[¡6Ç\<ï‚O~rÉË^Ƶ-`(Ø×# ÉíA‡„”j¬fëaWÈW •þÁÂÞãw vëV¬ Wý3µ„¬–æw5¬þ Ca(_Våu›Pa“ “Åý±áÊð‰*óþc» „ßò Ü66#¼ëÔ‚è!l²}Q’ ¿¤%kÒ-Y+=ÚÓùè§÷~±3Q’¼iÊj‹ÚÙüŒ(ÁOg#×fÐÆŒr¸ÂÏyα¯~5“L–”@‰ZÝÍföÕ¯¶?ùÉn¹,ÕPÜ”Õ ùºýÒ¢)!+¸9DFc¥£˜jv1ч-,y£,Ó‹ØV†­ µPâ)õr"0_«!5#Ö[ލzœDRÀ ÛØ@åèþâþ­Ç÷•í, 8:Mô¶‰ÆÍQϦÙ$í‹R,Ör\Š#L‹åBÚnö†/4'KÐë|¡ZÛh<¯/§ùbv†ÒvõçOÿôOßð†7h‰öM7Ý4<<Ì^ÛÊ•+¹Z•Ñ~"1ôË_Þö´§ÇÇÛ(£LsØ÷—_sͦÏ^¶œE'gÇ04§a(Ô7zAÊc˜i„  Bed¤¸@mè,ka¦•’HâFÔ èªÔ®BUqÒúž[õ5°?= I¶a<‘vJ“íÙ¤|z»*w„Jêg÷]ã0Ó£•áþJ)?뻢¹ÓY¶&ƒq­l„,egM†ePÒ—•üRIüØ‚À2I²µÊÕñ+×ýÏ’æGhÝPÝ…G×.ÍFëiµb"dÖ¬ïãN‹´Än°Óþä'?y¹úó¼ç=܉ԌQwä²q@ÛúÅ/Žæ3?¼é¦ööö+^ÿúξ0ÙÞ>ù+1 Í52Œ@¾(!XÚþÑ g`¾¥”³2ɾg}ýÂŽBe°âŽŠ Ò;h²kéÜ57Ùéü:QQŸ! )éþ'#­`M­}¥¼‡ŸÑÉCE¼DvÞ>ÁW¨h¶7f A͘ÎZz"¶ú1¨¥üiwdg†0hÜ µ‡äöB—à@ ¬Å]ýD¥ï±ËÞyé—¹~Ý ìO]x4¦««AŠ >Þ÷¾÷arÄ\ìÊ+¯z¸p។?Z1T›)¢ #+RXéG‡wR2É-=ñ Oxô£õžë®#gÒT3²àÊ17tþ–9‚Š&Ø¥2ý°ê±jÖÊn±àâñxÓ"Чbú ru¤ê—U:6 WŽå;†.‘<½"zÇ)vÈu´Ì1³ŠZ+šÅt&Þǹ$Ù2ŒçÚ•¢‡ 6‰‡væÙ€¥Õbõ ßÙ^îtƒÅ^>fØ+/€âÉ®ØÅÒHZ-K2i]þVÂ×(”µè,˃½mOû“Þj¸Ÿ³*êh #º¹ÈVz‡E3Æ[läSìàÂW AÐüÇ`;{饗⩆ñc홥•Š‘oѬËJ6í$“O|âóèG¿û=ïÑ:l#VQŸ_R2D?°¾ŽÂ?'‹&† ûÙÕ’†kóX鉨7¯>{±»Æ $9¹±²¨ó`µu* ij_¯•ñ ±SfÉß”ž¡B8VnŽì*b}1£wwÖ­2û}("Õô NL/ìÉ4¶9©4^΂bèŨHݾdžÁNY¸ÚêðzµfV=wÃW33GV[g ‰ñœÕUzz+69žð„' –&ÖQCÌíâNzzõ:ãt_LCyÌ»ßýn Cñ†ý¹7úP‹<Ê~HЭS_`vjy0¿{ ¸}±|å$,HQ X%¾1­ gõ¡\/H”5jŸÈ:†¡H⣊¹0ÊQ~®ÌdmxO>ƒ­*¼òÞ͘ÉâI46P¬zÞ¬»c‹’«.jÀ#E XžæNÑCƒ2¨ËEW‚@\í‰!ýJ³ Ú½ûhôÁ_÷Ùë¿Ð•» *¶gÖ\ذf[µ¨îùÇ?þñÝwßë>Xpà 7°LÏ0º& «FÇðÛ6òu½£qF÷ÕèãÃPÜ”-šb”q†,Oè-$'’V½rÅ›+cñâØøí²F_Ú_¨ ù¾HS´Çj K9…Îg5Ï¡>MC_Á:‚¡Ú{|Àеö‘¾¶¶‹µØçò‹cî‰C%’cwÝ=†¿Ç‰¥â„[-Ïø Š%H¶Ñ"ƒhÅÆ\ïE¹îåé¶îd¶ÅaËÀÑøëªUå"b¨OƒèÙ0€í™ÅZÙzÞ¿¡ëjWü†,Û³¯ ÿèVËQ¢› Õ‚ÇZÎåràÈþýûŸüä'ƒ¬ªÒd½ùÍoÖµŠÚ{¶7CÔÝW°ôÇÒ%X\ ݪ}3M?©‚yCçèHŠžþÙÎxùØxù$*1],îc1•)»XXX*\H…ùz¯Ídkžíð¾QÌÇ·=Ó÷G¿¿•}½h ´ŒP±ð=²\ªBb¬pŒž°'+G÷äɉݻ9Ïx‹ofË­æwÉ_„]Æ?¿÷’†eë² Ô[:“pÕ‡ayªáZ·ìÊŸú>‰ÊïþÂXHÜÁM]/||Ï{ªnUÔ=HÕÐtGÄèáÔGœ×øÀ¾ño°o½Ù—¾ô¥g?ûÙºÁ£—Xm[ QÃU{Êûþº/ÆMÙ…¡ˆT'Œ5EÁ¬iT/pÈ÷ÕÆ£Úo·»¡¦Ìw¨z ;‡‹‹î°rVd_>•¤ÕÂDGªJ nNÕµ÷?ÔÎòžž30d§œ~~m¬Xh’¯Ê{ÛH¦l'-l<0¡3ì?³£eüÌVN³zÊ$kaO Б<ØuY,sMQr(7º­èQj××g2w'߯5ù~€&°êñÙXÓ-jxس×ÿ¯/{#Æý›”͈æSLZ#{ü¨*e˜dýö·¿qùÈG¢âÑã*b`ñý£?ú#ú,6¼0 ŠÞ·Q«ùÆN)sήuÜ”=@2Ì $™<á~Ga…zã8¡íºàÝ5k¥ÇÇïÆh¨¸»à²ˆ†0l‰’Pü7èÔô¡üÈ|ºî‚´u¿áO€ËžÞz74ËÌ@VåRêç‰1oøxùX°õŽ ~Ч0»b¦ÁZ±AŒ8®‚cÎ,XžÌ6%’iiÃW„]–|2Š'€›àU™Åýë즶bO˜ršŸµîsm™µg¦A§–º§0;‘VpÆB)Š“~Ík^CÕCóÅr)ÁAÑjÆrFV·]3~¢œuKü¸){à0¤_H½µ­«Vµ8~È3À"Kz¸¸•Qªž¡Â.R7*Þ¸P•¢MØŠåÑç¨ÉQS_©­†Âœ2­¸eiK¤±Èna—™j »Å'v¡::T%Ó•ì €öÜ9ŽKîb3v[Ô5éœÅƸƒ†%Ra—;Á_ú;¡x*2¶×Ðoˆ'<£ÔGÄŒÊÆƒ—ãT~jïGW¶>‘{¨=ãÌ`hzd˜)C+8ÅZjù—¿ü峞õ, 5Üüîw¿£b¦N +†ÓÑ ikjý}„eç%µõWCñjë”Ï™HŒï‡ùŠÓÐŽÑz¼‰RßDµO„Ë…ÄÛƒAÖêU[LXi±à‹ú+Cãx!®ÕWxôÌ0¤ @õ=Uˆ'{¡2ÕJH4`AIR.xdl?X:¶·ˆ‚ùÀöüÁ­y\~f{)X×BŃ "óòu¹³¬ná‘ȽŠᲄk©’+(¾|#€ž¨9¿ö„s ?zÙ[/[ôŠJµ¤ª¡3jʼ0ÔM/LDïa 4ï¬]»V‡~üãÿÇüGÌᛟúÔ§þå_þå¤Ryš ✠Ö_yÀÕ†üÚ„?®†f¼io’±Tõ½ŽØ2%?£Šô@q'}Ö`qÏ@~ûxùÑTРìL8–hyà)•o² —ê§ñƒkôqaÈÐÎÐ:§TA+ï“àsÛ(æñ<,#$*úÀÖqcyN³3‘ÊššßA¸Œ¢§{YI!GãðÄÑjQ.éÍË2g|'üáÕÖsCôÔ‰behmÛŸ=eÕ¿‘®íÙ¤áS8`ãÔøCÖÓY =zôè]wÝ×óý+Œ3óZ¸pᔣiô‰ˆËéçÅ¡˜¢žö©$[xA®¨L;,CMo5ÇÃůØ?¾­¿°½¯°e ¿‹!;ëdDó3ÒÄÄ‹^Rêm½x¡rîU]­ãÜÏ¥ßЃ C:Z·J9BÕcªüU™v±$ÜìÛ"v«ìL°®5>Ì@}fè¡Û"GŒ˜ÃÕ‹±açÒtû©>0GždÕ îxUõtª>K¹Ï`$6§`H½Y¨†œ²;ÚÚ¾ñª•7d¬DŒZQËÚŽGŸ{|à‰AÆÏ~ö3ðN‡­tžaÚ.Øe’ a—‘ð¬^½:‚=ÓëѺé90úˆaè,Â¥ªŠïƒÊÀ°Ì@ኂ¼Tq°v> Á\Ü7^9‰å³éë¹{&ƒ0í->cîù·=;{0¤·4®Ù2™B¸,³X–½ü˜;tBÖµöl–”žC²)Zm Îzz®Ùijwz.Èõ^˜]Ô+upƒ¸qh¸ –ÑÌŠ‚9P0úAÓ5—a(l­jÆk¸£rùÉ«sÉM¹¼ù’ËjÓõõ©ÊIˆ†½²VúàèLÈ*•ÎTî¶æ•š~ÒÍšÏÜꬂMQ#H·ÌI®¥ÙhñÈxùòÍlN:Ÿ/÷ù2Õ⽂v9iêôã`øìObÙÜq_|0²Ëš ÙŽ6úzˆc†cæŸàÎHÝà­¢åÙ·U4„̧fkµÛìÖ.qäa¤µò¢“õ–vÂå=G•Ä4]ïLDOf(ä9e&pÖü†ÎA5¤WsRVç¿iùìI„<‹©drýõ×cë…ŸNÅuø£á'OâÅm·ÝöïÿþïÌœwð#_ûÚ×°p~ØÃÖÔÔT;×ø5=·þ|ÙžÅÜÐ}€¡šÓR3ê43TÆNMò—šg‘G¸å n.§ä‘V+€ž”DMÁ¢ééÕôu Cú„Z,+$" v™J¿\öó#d¥Y=²[vµN.âFxšu­Î¥IXæYìj-[—iíÒêì[‹ôa ®gŒ–ÚôöPtÛ³sC®á¶Ø ?^òº=U‘IÈc¹Z±ÚÛ/ÿö·[ùȾ¾?yúÓf!_Æ=!¬s”±cÔdõL?øq_Œ›²ÈFOî뤞׬öyT®áÈÖTëWÁáˆ÷!ÏXbÆL~ŽX 䙥èAô¼¨7½lm–ø ü1ÈüwÏ›bõ૨/òšo³ôpË8î‹" »:²‰Ò’XüêÝÙŸ yt”ê9³•Óàú~°çMoª‹ýCCÙl]OíCÑ“êE4Íe؆ÂÁ7k/hÂY¶†|°u,„ñäFŒKá?„÷BßøÖ…»Y*ì!^å/[Ê¡9©ÖÙí°„ˆõj‰?# …ªnÏ vùÑïˆÿiRµZ†ðÁ#UàæÄ"S­ÝwO@÷ƼYƈF¦Ñnh¶™jõ^š[º+ÂLûâd*#ÌšŽñ¢V‚” -y4ÅÉÐåu2΋ ìÙ‡¡@3 åcj(ꕪ‹^²½ù·%WÏ>`؉r¥²öýï_ù¶·iŸS/üS+á©Q?zizð¸¡Ú•¢ûCêÚ¦øx:#¿ýíà/~ÁYœnŸñ +›•\MK>hÕºÖq6EûÆ·0Vgmb¤tû^_K ÔÅLmúDíHH3Ï9Û³ûCZM£l†L%Ž—Gª­DZ ‡°À‰Q„ÂòìÛ2Ž–çàöÂÀiw&Úºü¥ØY¶1Gàò•©l“X©"¤ØÁC„ËÁ qR¿c*ǵs`{vn`(Z¦Q—ÈøŽˆ&Þe9Ù-zfÕª˜ÉÝÝŸÊ7üóffü@zOË®T«—ÞtS÷UW>a:Ιw÷ó†´ŠúœrCÙ6ã»ê aHR8©Ôá|û›ß\ÉçõåË_ñŠ{/vË}ãÛ†‹{ûó[Ç+ÇŇP­k±3!D”H–¢xÜ?(ªÓœ2Õ9Aw 1AÕCùƒgød™íÐ}›%èÚ§ïP‰DÓÙž„dÊD=H˜2ó, G´ËíN¶Á‘e÷²_–ÇÓn´Dü6&s×ÿÀ¨³ƒ$îà½ìzE–uxG1»È&:Û2«ÛÒ«øÚÞ´!›Oï¸ê¥Çñ‹Vµþ3êû½¯ýÚ|D"qÂeÑúMæ¨ï¦¬v_nF©éoÁ©—s@Û½ãŽß=õ©n"™Tj-eŒ¿}ãñ¥Ü¾!_NG¹¾‹ÿ©!.œ®°<ÊG5Ò6ÌùCj…ËÐÊ[-w’Ðd±^ÜAj<1ꞨØ:±o‹ Ôû—¡xÐ4ÏæÈ“k² ÞZ}q³­åë²M‰\³òˆ3ÚeIOVëZÚw9Ø–Ð÷¬’9ΆŒpõU™UŠõ¦îeIÕ¨ÒËC#ÚRPfšSËZ3+;s›º.lL.Ê$ÚÈž4•Ä ¨pòÄð—¿ò­|€Gû¬¸ýÊ+M¶Ø§±u1 ;Ò›l}}}D8:t¨NȾ¯ÕG,¥Ó߱㱿ÿýGTÍŸR¶gŒ>*}ô† ΨZªúF(>Œ¸ìz¶ÄžãÀ«¼ª0ˆÇܦ%¯’›äÂ8õ*#-Ö&vaù¾3®g6!;ø~µ-L,^•ÆlùúÆ`„Þ0¡ç\*Ã+W…ÆqÝ`/T™òœâ¬VgA³ÂL딓µÞÔñdC–z¯¨K>b”ÒvKKzÐÓÝÔžÛÐ’ZêX)‘LmÏæê%AÝå³YÏœþ9Ïy'Æ4e:¤Ô¬ÿœ²zݰג`ˆ•߃"˜rC¸2ƒ}Òj:}Ù®]ýíoó¡ù "#ÿˆ¦#ŸYcVyùóË?z{q:hÿ"JLy®Å|à¸P<’«µ³€€oÆgoµ29«{E ù2žU7.Xžê\’Ê4Êšhµä‹¬¥lj3lö<Êy’SvÊÉòåâg`«w(R­zˆ°—‚:›hoJ-kˬêÌ®oN÷´¤{“ ©3›95KUK‚¸Þ&ü¾Ÿ«¯¾:™H|ñK_"Çí–c:Ÿög¡)¼ §o»íwOyŠ14„&CXXSª¡Wt÷½q©3XñfmTfÂФ/…Lš•8) ªÉ7Âãû ¨wÝ-,ÏÀÑÒÀ±ruÖìu£ ßåÞÌÒuÙekÒ zÒø¢f–lRWØåbÚ*Øõ—ŒÅYLËê†BŠ'ÀVÕ}ÉC¦Ýd%O7]USjIs¦§+{AgvCcjQsjiÂÎ…kó"”Wo_–öEj 0%¤ˆOx`(ª†"ÆÎó¤LÇ= ŠZ±ÜÉ\nÏ[Þ²ûƒtTH8gkþ’ìÑõºY˪ÈÀtw¸¹ C†mØJ)kú^à–f ý»n²&ÊÅDܰŸul?„·çí- (õ7c·E§»Ü¶ ±êâ1åéÉÀ4Ã.'dm@„<²«U‘Ï}Ý«ÚÎä2œÍ ŸfÝOŠ?ˆ˃%ÒL:)§©5½¢%½raÃeí¹ÕÉ%I»Ão 0Ê„®ªdhfHTGšƒY?/5 A>P q‚ýßÿýÿŒaèüOʦ<_µŽ*÷U¾¨ÿ þðÇ»>ý/Gü¬ryçÈsÛ<&8EO ì N[â› ªUÙ¾:3(CdšÎ`+)×,—üñ¡ éZ‡¶í*@0Ú1QœðgЧÁÎ6Û‹“=›²Èq_nQ첞֋Ù{ÕðÜ'ÌÉfkrßr~Ä%êÛ ÄÇ· µ¿#­–O«ÅG T€•vZsÉ®–ìòúöôê¶ìš¦Ôbå{éKά)¬q vfFQ5 AA7DSV#ŒŽah^¨¨™V8‰cå{¿²÷ù‰dÖqÍ §²aÔA@ÖêÁ%¶íy$â¦êOŒTO”©bçϾBÿáre–õtŽÇŽ(‹é‹S+7e1Çè\œjéH&22Õ‚0’€­JàŒQÃnÓ—]æ éjEñÅ0Ä•ª[à™%+ݘZØ”\Ò‘ÝЖéå/LsÚi cQ»¬ºû`ág†m»û Cg·)›rÓgCS^ÁÙðhFšr'kÙÞÓŸ¿Rf@¶gã¶qãÖçKv2‹r̨‰¦˜30Yp[SðYPËŽK7Œ´XŠ쨤‰RUgÛ™ {¢½Â‹é`φ\ç²Þïh3fdpC:]Ë4uÄÄLëº`~ä”MÙÃM ½ð'5Œ2 ¡Ñ,ÑsqyÒilN/kM­\ÐpIkº§9½<›ì„ú ^)©v\3 àP&­gÑöìA­†4Áêª0£Í[§w‘2{Š—þt]ÞŒ§¾-m¨6+oûP¬†´¯¥_úÙ?ü“l²¥)uÇù‚!Å_‰/NFtƒ|¡í¢äa Þ‡Øþâ®;'l›`Â…§4£Ç”U¹l£ÝÝ“fWkÕ¦ìrç’d:ëh g‘/«”_]¨ò}©TÔó .1já•’Gû^jëW±<‘øF’z¢µ5Ý µÜž]מ]ݘX(Šy‘©æW®ïê‚ÔÐNvšû⩆"Èп¢t)únC&4“bH˜OäR=¥Á&SMvGÀHo|ŸçšÄF¿ä%/áV@@~—Çò£ý„:pàG¾þúëW®\Y ²-¢À¦9雨úõí/®zyJ.ya(ôR‚2?• cY×âß´ZƒÇ+¨Ú!¦<˜.³½•›5âße†YK×f*ôéZžwÒYäÈÞØØòXyW“{K™Ÿ~¸€RA÷†Lí¨/ü°§ë:Öµ*±pvœ§6åŽìšÎìíÙÞ¬Ó‘I´;vJÿ®*‘ªAl\°ð˜ÛGKüûCº¡‡"=•“ÿÖ[oå+SmÊú Ç=îqÁM7ÝD-ó¶·½í±}ìáÇ)Fþæoþæ¿þë¿þùŸÿçò±}Œk‚2?üá¹>ß·´´èè] mÛ¶íÃþ0¿‚Å5‡¹p¼îêê¸-.|ÚÓžö©O}Šèzn÷Õ¯~5¨6]{íµV@w‰¯Üó×¾öµä#€ù¬†d]ÞÆñ›;_†uYÊn`"{vaHùŸšÊ­B$<¶Rñ çá“¶Rró£®,¦ï(ìß2±ç®ñÑ!·8îÎhf)+€¦gc?0Ö&.·t%pÆgIEܰ«%]¹§›SéøF=攆ÂEÙÆ+vF;#j] í2æ288YCñ½óïÄÚ‘¯öE/zת!}dûöíTC` W{Á ^°qãÆw½ë]`õ?¢bâ¿üå/¿éMo‚¢ÎâšÜ°Èq(~ñ‹_¼ãïøêW¿J%U«Ï4ÎÌìÃç:;òEãÔ¨“_ªéÜŠñ€M`]MÞ~ôS¿:øþ´Ó¢z¦ÞgFè§xO„6/W'‹§.O´…=iùÊÛ;?Zí?î°«U¤áÂãð®âi|—a—»–&I˜X¾>³XÆêé¶)ŽÆI#ì²ò?õ aì+Y¡‡ëŠE®G{IgRÍÍò'¡#2XC†–I,®»Píø®jÚ’YÁ@]ky xв¥¬±ˆ+‚ØúøÓ?WŒ`¥?ܱPñqs´⧺^8Ãj}8áùu„|Ž}èC'Nœ  ƒëѰ¬¾ùæ›9{é­¨³þüÏÿœ6 þ˜lhú2:¬—½ìe”3,À‡¥ÂânˆŠ†bv q…ï~÷»` |3ÆØ\ Ä„úÿïÿ1 ãhMÜ.0ô•¯| .‰BŒŠÊ "‰» ÷wGýEµUÛužáNTCà#0*Q54£¼rJfÀ”õ1½¿Zn;}69£ÜæLaÈ«$œÔþ¡Ÿ~w÷ߨ\°`D=åY˜ò¦Ñ–Gºþ@°)SM[”74Béëßïjˆ7.å &ö_ÛöçÕ“Lpk#zÂSC™.»~¸ý,ÎØbàÐ.ήÏfƒ-Ê,ßîÀ”§06T•²e&~™Á9AÆÝËRÔ;K׿ î¥él“Œç@áwªÑÚ„Öê¬²È `^Å%*Ÿ %êM.[ü‹¡K¡M©¥8uf×-h¸´!¹0ã´J´P …÷µ9†–iê O¾ÖŸ%þ”çgŠÈð «!0‚jA€¡~ðƒ05ÏÀпøEÝ”Ñ"±õùÏþòË/¡È/ƒQºîºë \¸*Œ )U8, BßDÝAECݱbÅ Š,‘*FÓáW»æšk€!2Ñ€¡?ù“?¡€?î m xA)ÄMÓµb_ùèG? 0ÁѲE–þgCúGº«32ú˜mÃ%ú`Ä;Q‹f|sëC¿*Sj¥ûC²^Ù`mÛ_ÿ}ÒiðCòшÀABZ-±ã'ÈG‡*ì*Þ-Á~t[ÅÙÒDMqC¹ƒïòâÞtï% ÝËSä'3LµÄ„@QÍ%MÞOC/Ž Û³s C^¸Ì©9tµä)% Î °<@t´N®)¹sŒÎìFXž–L/êŽ >|µ8áÖúf˜ 7/,ñg†!ý¹~†0¤?§Q'Òì â{Èz(€†~Š¢ƒ ¡¥)‚¨V`‹Á]¿0;§*!j‘¬!ª‡ _ÃOùžž‹êâ̇lºêª«€‹ùßpXý+­­­ ø!Åa©2"Œ€¿Ç?þñ´iônS`ÐF‹÷–·¼IÁ_ÿõ_ÿÙŸý ¦»ª3œ”Mg§‚Œ~Ö¦/¡DÏOÕÅ_ŒA#½þNÛÐò\x´¨›àÞéT£¦‘gÈ€y" ð–/_®oñ~ £\å]þËï¿ãاp¥R…½ZØ´|*”T†Ê{vsBEÜ@*óè9±¯Ø¬ìÍqc]KHOOCî¬ØÅ‘§cqšn £kƒâ‘ 7È´Ð'¥N˜ž‘¼Ÿ0d¾<pˆÇCÈC§êÁòd“m©U-ÙU˜cÐjµfzQšv7ô¼Ñ [-ó4gþ¼„¡ÓLO³Ì1]å tmUËoè¶£æÓ×›²À1ýÑÍ6Á<½¶KÇýêW¿‚‡¤(Ç(‘Jm(v_ah¶ÑŒ¤ÜµY?]æñA;JÉG%Fݨ¯ ¿»þŒg<ƒò¼äjz¸~ýzÝ énÝ'òMä  /§Ö†ñ¾ÃwLè¡m}_ûáž·fRMNÒ³U1»C}eÈ„<»î˜€î!×xbätBž…+ÒðÊ*Ò/½`i ÿSPÌPBhi©z\EåØÊ„Ð0O=•‰DÇ%†Û¡fÐ%™‘œx1Š€bŒÏ1âaŽÎH«+»)—ìnHvSÇT­– ¶Å̳ # Ð+]¦ÃЬË‘r:Z¿0T|Ö:ëSI‹žõäKëõAj1:yk+ý+‘ÓX¤œÖGÐ-ßkoB}ëÑñuÀ,æ…°ËÔ©¤¦0;g†tåB‰…€Rç(5Ü:ë–;”ð#j®I5KÏ·Ï=£¨ƒçþq`rKš*‰û jÂrñ+ÿöoÿF›Šå%_í,ó¾Á²c¤,îùúŽçãWe¤µï^¶òh cîÌþ§œKY N^™>‹ˆ›åk³Dk±«/›_Ê Œõt±@UO—¤JÛÑ©îVÖy\bˆäQ‚.+-¡¼o½ Oƒ¨;Ròt6&w5ljϬëÊmjL.`ª%ƒ­pø€ëihŽ¡úµ ü LMæ‚íYUCÓ7H§T7³ñµ¼Gmetšg`¶lF{}M0A…é g†t²¼ô¥/…—"Ç¡$šxxß40Xÿó?ÿƒ8 a%˜‰E Š*Z‹îY|jK0„˜Àý*cEô ”Hœ¦”jˆq 7†8ŠF÷ÓŸþô”Qß}!e8-ž¥W¾ëq_úÏ[óæŠå›YÈдtʺֲ ˜òd®Ê44KÄ8ÝjÅð#§"&j™ó$§lú¹¤ž8 âj*í-Ÿ7åŠ_fÞˆ :,p‡ÝôÎÜF1~ÏnÊ&Ú´··¢£e/k‘$È<ÅôrîØžÕ# Íe¿¡é7}_W[Ϩ)“ަ\†ŽB‡Ž´iÍš5ZÇÉ,áÀÓŸþôý×z)VKH¿¥ùBå OUF5Äqþð‡Cw_hÉ!ðÁ)”ˆ¦žOÜzMJ'èú(¾ò~ÀP4_¸öý¯{Ï;®ÇFíQ²%3æ‚eé%äù­Hõl’ˆ›¶®Dº‘kY­Uô\µ®¥‚ìýSÖ ¬y—xÊΈ„ JW¨§éÝp%L šÒKa—;2ë˜pµdzСétdÒÁœ¾žnÔ·%~ CgCÑÚfôÍl¥Ù‚¡hË1%¸óÖ·¾nZšaœ9¤:ªÚ(­§„ÆGWN…ÆoB éE^X+`nˆñ!MÜ3?Ø{~2<­Ø”áV9>4;G€¨žQ:t†ç§V[üü—?ºâ±Oâì@¸Lt:}ÖÒÕÙ%k3ìLHÔDBZ-v&`y˜©ó½i…7Qy`˜ÓÏö:‚!ãÔÜ#Ó:.µî ÛHÅðù×—n‹ÁVÆikL/îβ›¾!ž„§s mܤ¶&\­„Vä´i“*AU…Zó%™#†¡ûV Í8F?›Õ>«™Ø±9‚ªajNXqæˆW^y%%ÒW\ Q!p¢¥BBÎ8 Ši6þ#h @(0‹q ¥#C¦Ì7oÞÌ60M{.ÛÔ#ôzH!„"y˜Ôqæ0$,šÅ¯ü_ß|Õþñ[z×.ʶ°w**AêèX\eŽaøA“eX†?øß9v_|Ы!Å [ÊæQvDQ-»’ê'?JZ¬†¶e¤ÕjÏn€åI;ÍÊwÙÒ AÏô´žÇÔa†hó.™#†¡óc{F0¤ÇêÇGN½CÓ„bÍ`68pϰB¨Ë©˜$@<#ñ¤êaþe…Ô „³¨Q¡w¢8‚`¢& ¶3Ú†°/`5Ä’%K¦ïyS™~lúÌ/ÿ“ã¶Wʵ'¡¶s”`¥îsÊf¼ÿkÎã$ŽÞò”BÂs¬ÛÀ2dN¬Ã@9ѸÁ¡'â¹>ë* ’žúŸæU<= ©­æe‰}?ûÖŽW¤9‰÷\c^ä”M¿ÿÑïi²Ôü#J´<(˜m‰j¦Õ‚âaW«#·Æ TÛr¢;ã©âP¶M3ƒ­;¿î-ñcš0¤wÊ´0%¤†Ô>¼üüçX–\xá…ðDŒÃ¨}pH’°# _t¨h¸:qFiü:­E*G”Š\í®»îÈèïÀ#z7”GÜ#3~ 9挺ƒûCâ=d%‹{¿±ýE…ÊìFdú1?`(\wÐİæÈ_|%p)a§ÙPoM# Ü(s–z§--k–¾ñ?õtÉDt©%ÅÿÌ~¶Ä0ÃÐykÊj¯¤õšZƒ0ýu2¦ÅN—ÿGO¥U»p,ãA]38€`¬™Äé%µûÝ”©‚s6IbøöÎWû=Ûöâ‹^ƒ;õCáó¦Y/m-¬„<¬ky5‘L:MìL=­é• /nK¯Â‚Ò¶’A²,MTUÚ„>¨LçÛ®6Ÿ’9bšWMYtÛz7ÚD4QZ<®¯0¹`­þDל"*×—ÈdýÚkœQRÁmC?iíâýTQ×¼o´ã/\wç±ÿ/“h ÍÏë®èÑK[žÐë°<ªK ×R •eL€úÊÖìJ- 3ÔSžÀƒÇ8]Êͼ Šah^5eÓŸëÙÔJÓü”wù”«F ø;íÆÂ-N€0$[¦~9餷œüò÷½“y^ø®‡ÔÖÀŽG z¨zªkøVV*i·´e{ÛÓk:²ëÑ¢'$o+œZ…éZ“: ½Ù¦å׿%~ Cùjè>Ùžy†}Fµ/ÛY! ¶:ŽÝùí¯`>M/ãÍ=R¢[wIJ°-;T=t#k Ô³l‡¶dV²ž¾ w Ô2 &ÝVh9¨¦Z²)j†æ§æü³Äa(†¡Ý‹ºö]áÑ…!YûVÑNnáÆ­Ï*í!O{wR3u±uÔ†¨:å†Áì²ì šiöÑ›’bÊÓÕpQGf5ûŽ• *$=Pcõ‚I°¡nÎ!¿¡†bªG:[^Ô3Qæ0Y‰›w½nÏà÷© $–Ó8o0¤¾±ÔD\*5&ØœP0KÙx-7§Vtä6´ªÂ‡ hòÝæiù §<Úoyc‰ÃP Có†TA$Ûö·ùÄo}—?þiœ»jÈÔXóH÷ÄÂl‘ÂLa3 ãÁ–tÏ‚†‹h¸šSK“X ¶ù¡ç´àŽïïÀÙǘ;~C1 Å0ÃЙà ˰¦þÎî×$Ì´gxN5¹|1,_ü€åq…âÁ”G–­ð`kL-îÈ®ë–4ѵ©¥DÑmŠLÖ¸¾º–¦ŠêÒ6†¡†b:õŠ,ÀÉ—O~yëÕÅê°Ð1gS7¤Ñ‡&˶Ô,Ê•Ýþ¢b—yÒœ„•kLv7¦—tæ.èH¯åksz M™Ú#1tö†0é~¸p:Ó@=†¡†bªw ~zÓ¶¿#i3¶w0 is AÕjUð婸l¹àf`Í©eLÓi¸ZÓ+ØØÊ­–˜/«ÄÅÐZL»ŒóÊ?†¡†bšú¢ÂR[ίüómG>‘MvyFY-šß' ˆá 2tÚD –GûŸæ’ :³ëUº–¨ç]©Dƒ®”  î¸cE+ZóÃ?†¡†Î§|±¾`È1[núÁÁ7g6R™E“lüÓXmᇂoT<àŽ!Z¥hNàŒA«ÅÓ‘[×™YŸKt³¶®Ó&´P@u[žÚÒ²Â-ím<1 Å0ÃÐC©òª¶“*ì»ñö«ªÍø\$ÌA"}–ÒÞè°úâ1 iƒù©¬kQòøžc§RvsCrq»˜c¬‚]îÊ]ÿÓD묠ÇçbºÓ2ç‡%~ C1 Å0ô¸!6×'¿uÛ®ëÞ{ìwß(-³‡ÿ|Añ‘ æ„ç‹ š °TfŠvÙ«TÅ£H ƒÿN6ÑÙ–^†°=»¦MÒµ–'l´ÿ)‹tFÕ-ŒÌ0m¢®-ñcŠaè!×”Õ®¿N?gf{§\>=T`ò++µ¶]†¡†b:Ï04ým}V¸¡à`Èqún¾ù¶ç=Ïš˜P”´OtÑ…ŸøÄÒW½ªZ.0AÓìòü²Äa(†¡†î élì)¿rv¸!5&ã@‰tzïµ×î½î:_9Cöüíß®ùЇ‚W½.:SÐM C1 Å0ìÏÎÀ^ʲíüÎ;v¤.l¼è"Ãq E‡¡¥ó- (†¡†æ ýÿ™uoP…{ëIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-roundcap.png0000644000076500000240000000360012536324511022205 0ustar philstaff00000000000000‰PNG  IHDR”{¥ðY±÷PLTEWtÿÿÿÒã¯u™,Ë䘪ÕSªÕT¬ÕV°Öc±Öe³ÙfµÚi¶Ûl·Ùr¦1ÄÞÆã‹ÆãŒÇß–ÈäÀàÌà£Íá£Ñ磨ÒRÒã°Óã±Øå¼âêÒåëØçóÑëô×¥ÒJ«ÕUãêÔ©ÓUçòÐßéÍïòèçìܳÙeÐ㫲Öf¹Ùw¹ÙxÛì·àïÂâéÓªÓV­ÖY¾Û‚²ÖhžÊD¬ÖWÊ唣ÐHв7èóÒ¼Û}Ïæ ¿Ü…Ñã­ÂáƒÄÞ®×\¯×]§ÒOÇãŽÈßš°ÖdÉßœ°×^¤ÑIÎâ§éóÓÚ춨ÔO²Øb¬Ô\·Ùs´×lØë²Ùì´¶ÛkÝçÇÀà€ÞèÊÞî¾Óè§áðÅ×åºÝî½±ÖgºÚyºÚzºÜréóÔéôÕíöÜæòÍøûòùúöýþûa€!¦ÓLàéÎÓè¨ßî¿ÜçÅÍ᥼Ýw¤ÒHµØo°ÕbÎæžÓä³¥ÑK×廦ÒNØå½Ìá¡kŒ&Ð⫦ÒMºÝtëõÙ¶ØqÛçÂñ÷âóøèÍá¤Û츬ÖXËå•­Ô[âêÑ­Ô]·Ûm»Ú|¸Ùv¸ÛnÍ圸ÜoŸËD·ÛnÝèÇÝí¼ÁÝˆÎæ´×mÇÞ—ÏæŸ©ÔQ»Ýu»ÝvÒ襥ÑJ­Ô^¼ÞxÐç¡ßè˽Û½Û¨ÔPÂá„ÃݼÛ~¾ß{Ôé©Õä¶åëÙÕ髱Öf¥ÑL²×g«ÔY²ÙcÕé¬Öê­×å¹½Þz³Öi׿»×ê¯×ë°³×k¾ß|¿Ü„¥ÒHÙë´¿ß}ÚçÂÀ܆À܇ÛçÃk&“¾>”¾>ÜçÆÜèÆÁàÂÝ‹ÂÝŒ´Ùf´Úgµ×mÞî½Ãá†ÄÝßèÌÄÝ‘µØnßîÀßïÁ©ÒS©ÓTáéÏáïÄÄâ‡âéÒÄâˆÅâ‰ÆÞ”âðŦÓKãêÖãðÇãñÉäêÖÝçÈÙæ¾åñ˶ÚjÇß—Çãu˜,§ÒQ·ØrÉß›·ØsêôÖÉä’Êà§ÓM®×[§ÓNËå–õ÷òöúí¯Õa¸ØuÌ嚸ÙuYÍ¢—DIDATx^íÛãÓü:Çáï½ûضõ³mÛ¶ÍcÛ¶mÛ¶mÛ¶ñâ¼Ú™&mÒd·é>3'×_𙦻ÝÜ͂ڡÿw”²Q6ÊFÙ(e£l”²Q6ÊFͯ,:úÙœ+ R¾Ö>¢î;+Ñ™UÉŽÚœ ·o'1já(,OVÔ©y«ø(Q¿CnæУ ák×uáF¥@Ÿ0£ê¡æý𢠡ì¢m„ºɺZˆš|ôL2Õ ºÆ: Ù—.»ë¼‰`m0µ/Dn²_,|no0z˜êoéÿ¬'§Ýát»É¨–ðÔñcâ€Qf0êyxj|‹\ÀØÓ\ÔðÒo¹õ£ÒXÔxN^~cSQ«à!O°Aè Æ†¢ŒÂíX‹ EÝ ·kH Æ¿†¢~Û*É£“™¨T¸ì°šDv«ÍHÔ4¸¤‘XO02(.Ð~O#±N`0õ \JHâ\°Ž0õx'’Ä÷`Í QG7$jÀyÉ@ÔÎàM%™fí ¥U^”d^§Æ@ÔFð‘Ä!à,£à£Îo É€÷iðQð‘ÌHpJ)ø¨×µ¾ ¨œ¾mÁG]Î@’Ù,؆5]kñf#®»¼U/êspÎÐ{U¯[v€œzõ¨kÁÊ"‰Apy˜ü¼ë/Pª‡d¢à%?¹Ì"(E½ Ö½Ÿ¦¹äg8LV‹ª£$ÒíçË 8­PŠz¬sH, .eä£ XJQùêwÔ¸ô&ËÁY«õÇi}ðN#ƒx®XZ‹·ɭ댸¢N£˜ÄÀÝFR< —y*Qe`t׉ÚDR_ÁÃ*Q)¯ÞŸà|FR·ÁCR‰ê§>$Ö’ii€‡Á¤5Aý­Aœ†Ì“ðò ©E¥«Ï(¶Âám’¸ž®'ŨK4nݧƒ®$öêTxÊ$Õ(vé›Hê¡XÓÓ$tP¼õ!å¨_µÆóï]Ä´¾%¤u>œ"ä«©†„ºgCd;iDõ‡ÓPJÀÍiº‰t¢î£Å+%B£Vjîfy?}e$Vho±F&< ¿c¤ÊI*3 "Ò2ëxÈõ«#ý(gú;¤höð3á§0¾òýà|óC„ü4Íš÷ü}÷¶ž«j%oó‡åç6CÉ¡K(î¨bx‹yLÑøÒÒH¤ºººjÛØ÷tù×D¨+OhÀ‘ nMpê²›³2á¡Ù«du3Ï2è§ ¦Ã•ȇå÷÷@žéìkÚ $(5e}ð¯ÖÆ# ÅõfŽ*ÕE|ywÉÓ‹§÷…®^c¾0~øtïžP—öÞÉ!h®þ{€RÐ×SÂ=ú}õ°‹›!4`é)·$é<úâüï2o¸1ØkôáK/¿lÒÜöqH¾öÂZ;Ø¿˜d£l”y6ÊFÙ(e£l”úôÖñõ¢íÿIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-roundjoin.png0000644000076500000240000002714612536324511022414 0ustar philstaff00000000000000‰PNG  IHDR›'1|¦a.-IDATx^ìØÁkQÇñ™Ñÿÿ¯(½ ˆBo= ¹„zl›hDm…v×]ß$lØay${%6Ë÷ƒ‡·Ï§¬ ƒ³?I-wO!.;‹Œ·âL¬³c/~gw;!ÛO=‡ûo»çdÏ}æo¼ö[úeŸ Ùev¦ç‡„î[æÃ“aé°À|X`ú~@‚É&of]0ë‚Y&ïLF ¢0ÿW@Â00€„$ `2%a H@EAf#УàéLF ©w÷X0 ¡œªê U%×ý¨žkåÔFìÿ§˜ŒÚžs‘Ô\Z³ã"Ñ‘ *!uêxxåL)‰¸êHÔÄÝ…ØXuÜ”Ì=ET:¢À̺'øbaTEm”Êuµ¹*³rq~XL‹‡‹jw-^‹²ÿÑX“0œL´”v´›*jÕfþçÇçânR®.ë¯ÅêK¹œ?'¿ªߪZ·œQ`RÀÓȇšà®fžåýôéUï¿¥ríÕîXn½ÚJ½?ËÃf^ÜU¿nÚ‡‘¨«~|ì}é“,Ùu×ïwnfõòúõ›u_$YF–;¼ÉÆÈ›cc#[0Û6„ à3ßù |!…oacã}•,ð.aK£Ù4š™·ô{Ý]•÷ü¨ªy«^WWe¦b˜§éê£ÛÙ©ì[÷Ýž_ŸýÜ“$«·´ãÀÝÈÝÏ'ùå4¯ÿž&7”okr[K A°2¡>ÈwtòÜÜù;;~GJhFwá¢PõV„s™±¸g¹2,¿òóùµßò)œ“[jnËO©Fp Fs«¡ «Èxå—|ïÁtÿWYBY“ä%¢÷Î’.A.wGò×~Í_ýUÍà¼>ãÎ|4R‰„dòLeÈ%¹túÂG8:¬®¼r—ÞË= gî.wUùæÇóË?íã©â¼©æ~ ¥ ©ý„@Göòçï|æô¹·wüË´sˆn@/cFo]‚3È¥*ßþóæÅù髚ÜòæHùT>2 @š¸—ùXùxÆÊÍíæÖ§Nžû 7wÂæx3z“Xsζ­)ª|üœ¿ðA?yq®;oÉOàcî” "@@ æ9¨'>ãæ;Íõ?×$è0ßÍnrB?E†7 L§¯üOެú¦0}ÍLÒXF÷"B»ê«H.Ñó¸yù§üÆ'49š Û€pH"L ‚HC[:œ˜Ð Ím0ù‰¼ðQÔ‡£k_ ø@8/î«Ä‡ö$åWÉ_û oŽ<!Ÿî¤äa  b™H¸h‹€èð1Áóœ>÷¬ÿy½ÿ¤»Çtè2ãýÆÉÛa+ÀƒA›×~cLSHÍœRÌ&ˆø¾B³¨ÌR†å'jnª9η?3~ñ§óä&Íb¶ÈKDß8W[Ÿ‘ܳ£Ê7þO~ùc>¾áázæSi8à‚‚±@aAš¸,²×[Ó÷Ôg¦ïuùqóÚLãûðI¨R €.}#á /%¬!Ç(ßú‹æÅÎ]Ï›çÉ) "ˆÀ«EH ‚w¡ºhMß #‡é{kòúǧþŒ”IHð2Âð¤ÉÎÈ[y#ÔùøsùÅ×É‹3!™oÏ]ω” œÅ|’¨’m~¥$-]!*0†Ë'ò±šã™$ŸÜ¿ò«ãW~-Z¸Ì¦}Q`5$Ô‚š…ÊO?Ÿ_ü ¿ýW>¹=¶Çs8=1„-¥TD &›ƒ $[vå‚ †Njnùäú4Ÿ:¹þ 0ÅäaNê¥?º g ÄK.$Ï·›—?¦›¢f§ò ¼2$BNQV”(I€™Q0ÐÑdAt‰ˆ4¸h”‡ vh & “3~îC¬ëƒwº;0ÜI½”ºç”ÑzvÁ›I~åòë¿ëùŽç[òchI•Ö¨eÀ©`T’VÑjØ.ÓžYm6šÞÈv •h$)J $±0}½5}oir+¿xúÙŸhŽ_Ó÷Rê–·$ –$¹3¿ö+Í+¿¨|G“›hî å äT1nI a´D«g#í²:°jß®}½í=ƒ´ké ÓS V ’„H Ó—rŸƒêͱ73Cº¹ý—§Ïxzcfe‡—R·olHg(Òd¯ÿzþüO‡Á¢®g#¸I2„€¶^ÌI ‘õ ¹ê$¾2½ý_éèÏðÜ¿Cs$Oó ‘D NA¡Vl‡N4a>qÜ2³æú'NŸßß}ê‡h#IíeÌh@»3‹u¾ñ‰üÒG||SsŽ‘N¡&€€Š$Üy8½ÚÁ—¥§þ뫸ÿÌo5/þ$š#@hA˜  E§ÌåpS#'HÍ‘Æ_øÔ÷ï>þ=áÏ+ ^"*i=œ²¸ãG‘_ú°_ îl“Øâ|ÀAThN‘`¢U´VWgÂvÿíöĦ½'àcÐôÐûRsä_øy/–W–ب'ÈùmÀ4–)ÜA“œ6~éX}ÿèá÷Â]ˆ­êѳÕ+øÀ5‹µŽ_h^ú°N>7“·ù¶šh" rH"¨øŸS¶¶ƒú€Õ÷žHÿ€¼“šXUK.~/ü¦^ýM"|Á!4Áž0AŒ•1£,4$L´Ó>fÕa}ÿW¹g€«â÷’GW«LBwZ¿>ãΣ?Usg:a$ VÜ$Y1P]±êÀvH¼?~59&“™I”;RGŸÅä–n~2,i6m¢….9Z³Ù É„L·ÆÌRF:yþCÖWÞæž/yô|Ýy¦ÄÄ=*4*_ÿ„fa¹›Ipe“-’Ø(p9¶iŸõ!«ÃôÐwV÷311iœ“HxžéÔ'~XÍ‘ßù 01ÿ™Ì!"¸_€St85A>ñ±QÌÇÏOó3éÿÌv¼+@xérNZ%÷üùŸ¦É”5ƒóŽ|"dÂ%)8HÁžÁœ{¬®1í§¿==üwÉÆl'æd–Èl»ÏòîÓL¬æþ k2‰¡G*¾ÚpR–ÆðcÌò™?ÿÑ¥4ÙÉNA!bQ˜”`·!o-Í|¼;=ú]3jEØ„``¢=ò¾ú‘÷±ºÊúª+´¢ R !¡0P†&òSù‘gâwZl6þÂoÓLò€ó2 ÈÀS¨óíO5/Ø_ò)–Ó‘O#Î9!tÊ‚?‰°w¬bµÃˆóí?]?úýiïISc– –×3ÿ7 7³Ý'¿¯~ðg+Ì„ö>Ó\üÒ@ã‘8Éç²÷TÍ‘OnæY~棓BK‡$¸”ºî0_ö—?¬iš¬¹ãù~"5@¦äØâp$YÃvhWX_åî£3¥xðnjÌN’g\£’<‰ÌÈÉjïéô>ÂIãu&Õ5§°˜Üåtõ];O|ÿÉs?NeƒKI‚)*â—¾dú‚˜˜[5yý÷8ºo÷©Äê$·%fXQ¢ÙäÆOÏzª9šŽ9œãðUè"å6ƒ ‚4&X…j3'rêzþ­ôè÷Zª "-Øâ ;®KÛ‘\ž&È£Þãã×Ç/|LRöe÷mð€bºÑB.eh R“D¦ñÔŸÙypôÐ{!¼øz” î¤7Çã/üz¿¢¹q‹æÞg.‚h}Œd‚ÕóÀÐAJûví«Ò£ßgõ£h‰<뀮ë«pÆ .Ì*Àîãß5zäÛ‘æ¦oÚgY˜¾`hÑVú ‘Q@Ô›Ýñyåðä•_™ž`¤% ·BJDsãOÃið‰çÛÒ©4‘2!%BÄù€Ãª®òà]ÕcϦ‡‰¦pçšRµgi‚Z~m‘võÀ{X°:Dµ'‘Uëǰht!sø,7>÷¸î4Ç/L»³ÈÇœ‘¶B¶¡YúÉ+>¹¥ùQ²¨“dXä±  Í`5mVb2¶ûXzüYÛ}Š“©$pV­¡U©{¦¦á@™4w·joïégO¦ wó‡Éé€(8Ä€”áà„n 1šÛHÓ³‹ù÷TWž‘|[¤.iò±O®S“(12ÚBZ‚Ä¢&VäˆÕLÞÚÎ#3î<ørÄLl©pgÏØÍ*OKE§zÝ¿ûÔ¤½§­ºÊê Ò¹dúJ"ÔæQ%—œyyðYa¾_…t¥î›Ì£€Q+ß–jB¹‡ô‡DA(æY!í¡ºj£ûÓcÿÀîû:jB» ÎݹIð¶|©Õ‚͸‡rºòôîÓÏæ?Ix3r—%' ˆ0ÊECk%5ðS¨ñÓ×BPHÚ†Á¢D¹”åYrÀ _„"Q¼O²²4²´g¶“þîtÿ7%ä”,¦šÙ+ŸÑüš7È¡óÏÿ tÏõµ¿¹óØû­:œ+ï]XMšÇD€Å™€@4Óyã“›òæ"û£wsŒz ܉ ) !M ÑÈ$î0Òƒß6u=Í@°¨OHJ4)µ8¤V P€µœdfËœøÊ}ôÈ·øøµ“çÿ;l6!D¦Å óXP.4µE.¡ Ý“,ÕŠØÜSXÒ¹× 3s÷3& ¤\)$¨" `XÉÝ'øÀ·!íQX*K•›’,‡OäYpyC`©æ!ÇNIƒP²>àÎAùxÁu±Ai÷‰ïÖéK§/ÿ­‚DWq¬ ˆ4‘M.¹)ÓvB),KòuFx÷“áªuÆáºç«Ê}¹®ï)傼q—ÅC-hÇ—CpFTÁ`#Ú¨ªXWY ¨&¯O®|¦Æòm5ÇPBéÊqSjF8ø Ýÿõf5!.ýÙ©g±æá×ðÕßasË™D#8]4 fo“ð¢Âód2§T¯F˜tþ×î|Ï7|ÄÞ·e#åìÓ!Qk B -rgµYJÉæÄóĘ̀SÝþt¾ù‡ùÆÇ§íš¿ï׿yýwóõßÖý6×ÿÀ§×ŸlnN]á?óÛÿ×O?ïÍ${^–Z"—7MΪd#±lI®ìœ%Ñ›“<û˜ënÙ{¡" çå×Õ¹í—($Œ¬Ä¤nÊjfξoùø†fG†§ã¦ŸÞ˜2îüþºÆ¯M4óà“e¹½öŪÙ`"Å]Ý8â¡H+ É2ZíG\¬!@X!" Z6 ±Iˆ±*pOäÇ>9òæš#ùðſŶò!Íš;®Æ@ÈCêûÙÝ%QŒMd))rÉ6…msû‹i9ôqq«;%X¤ÊÎ5Ð#„6x˜ûýÝ4Ò˜>vËÇT–œ¤‰  ¥±4–O/ærвýìt††.%Gå(Ü<BbœÙ›.è©}40A±‘Zë7˜¥‹$ Ne!C Õ82‘å|vã˜=$²)œBñZVóq‰•dTHrcV…D Îí¨a`¹¡:(8Bª‹B‹-ý#θ‡ˆÅÃ3a‡ÑBÈL׃(´kskúŠåÝD‰ uðFÐW©m¼€€Ž*?mÝ …ªV‡4 èEK!ç·ç”„@› õÊ “}îî–Ê€i~…Z$Ô.Ï­=®¤ 9ÐÕ‡Šì¹ÕÅ:Ò¶t¿ލHÂ3¼éfkj#EAR±SÚûòp ÑÍÄ dOD C>‰e·Q"¨—hbA§‡Ô5ÙoûíÕWG`aÉoO7V0TúM¦¸ t'v€~Ë’"Ñs·CjB[ö¾¦ÙèK”\žÕMI4Q}‰ÞÏz¥0Ԙ瞒°þ•8’K¹ßšF±/ÉIuÕ‰V +DÖ„ÔV½TCç“ýÜê½"ïǣؗ›(rã|ÅuBŒ=@¶é$ ,#„U'±mˆ“%—¸iJ,+\V"·É2–2ì=SƒæJ꘴k¢ÿ²Äö½™Cæö•aDÏp]™ÆÍ{Q‘ä õI¶K²T¥ê‚(d^ï°•J¤wÓ4I$з*!åíBTL€zÏw*wBDÁÞ!‡¼Ã9‘Èj¢„hû¼ñ^B1u#j‰°!ˆæˆ–:b‚úK]Ú–Sû!âԔljì™p†0$ëN‚ìøwcw‚ú‡A‰Ûò&¼†4Ðâ®GöƒR/”h RVw1‘dg¸cËbFÄÔª=ë6"Üá¹g´pˆzÙ0k‚„ÅÒÝC5[önCPHÁ_ ›se¡r»“i´þ«CÞ1±b¹)tÆé‰xi›"õ¡gÄ ¤Y0´&ÿ\D:b¶d‚pˆSäè–øˆ¬N ”Ý®ŸYZ¼p[,#ËQDT©'ÑÔ>:¿}—£€ìZèf¸Ù.C°>-FBˆÝò|›Ž”\ܦ~F«âà¬j$ŵ‡)œ‘UWÄN`_ ©®óI¬…Dšh­Vì™A!Š”KcHÀvÔ0 Ô!30‘&l}Tr-ÓÝ, oxÝðîe›r%˜À$»…¸´H ©©†·$Rß"J¢5wIZ0¤V¢ï`¨Gr JqÞhˆeÔy}*AÚmYŒ…@!Ú]+d$x–»<ïùâ[FÁŸ"B‰‚DQJ«ž+ÅlJŸß°ô˜.X†–béâ>-Ïá”CM{yåðÅóGCÈQ“hËêF"ˆV¤Q*1ïBTƒ;}©®6GDÉê3å‹j· *8g¡‘O¤I 9݃“Lo²-¯h€%ÝIABÜ2ž’H'2å]Z‘  >„VïbÃn¥ÀÎ ÄóQb‚XÑÂYj–õñòýEÍx뮲´]¡ Rî€6×ëŠ ÅÌþêKÎ~sË´¢Fq&Í\ QNeSêLë¬ ›ñ&„¥#¤V<Ú(uY|Å‚°Æéi1Wb%ôù¥Ú•}²F†_ÈÓ† %º&é5®r©‘7„o®õÄ®#Éåpל{a_ Y„:få%Ó·ªº3p¡À5§ß㙕à`V·x¤Á"U×"º®äGûKÝ~ •¢NR=÷༤Ö¦J_¢Šà D7ôÁˆì&-­,kAN©c«ÃK!é¼É.Nä9šIwëµcüÈgMu@*Tmˆ·xCkO¡k«A¨% =}"*7’¯®|Azw3¯p€¼ëP°6%¥’»‹Ðúvm×ÁXvù Œž'÷ËfÀÕ¦oeóf ­Gq=BmK`#òÌÊEêf2³T¥ºb]W¤º¥‰@Î>O¦”sVÀÛò“Ï©išñ$8ý„¤DÔSª˜Rн•­–ÝVU5Õ©È€õË–Ÿ ªGÓUSŠ5ƒ$]h© CbW,„³®•º ©ºU&nÜ”¼¯l¤Å‚[Cƒ./{QbFÝFAEZ÷¹†"•ß`…“Úbª×”)ïe¿XÅ«“DˆTsÁ,£n v:ª;û×(ÄbÁ¥o‚ ®Ê€áùT}KGAa+ß„·€µ?u+]–,fɤj­òåúíCvØ1ùbòè¢gÅ0BG L€ŠF7q Ñ{·ƒ¶ÊmäÑУƒ*1)ï4^Åw¥#~ákÄ•@Ñ®‚Ô°Y=¨`SÞlbу¤/Qt±ƒGÁL4•¼¦Ð~l¢(æÒþÊ·ŒGC䊃ƒD‡EÉS®ÏpŠR\ä„÷U*Ò­âQ.Ù™¨>Ù±îÚµœ¢“ ’ÊՇȿžo[$±'Ágƒèâ}ë\„—7³¡Ì>„zЯ4[ujŸ¥“¦Ä!5gÚVV\Ûœš”JÝ>‘©F>A"ýzÚºÞAƒ‰Áî¾½’ 5Ÿ/!{µÇ.rß HÃ’¿[–ñ& jR¥òòOutù$×_ŽL±T6’£É8ð×sÚDƒÈz@“*j¤ r㬠Q½º¹Ñ†¬Érˆ¬{·¨íg´MRwx÷oôËN3 X“”|Hþk`¬¸hýŒºmNh)ÕÁL{áB…ïÕ½Ûa¤mè~ÓMÝz´›chÔ¬GµUùÑ š80?:€8¨Hñ¯J¶£‹ÜªÄëK‚²÷û“z®Ly€|£…(¹uR7ÀáŠù"ßȶc½³iÆA¤¼…ÞKâi”Ó»ìu:LD/É^Á+«0ˆ”qïè"!Êáor%Ro¤ݦüè*Gñ õZàÚM©‡zÖÀ«ä6ôüâ‹æ8 þ݆¾É£écË’6ÐÞõ-³uKrõäeBy6À^Q ¢‰{ðYÅœþ&ôF¬·MªÞŠï= $ˆž;`’¶°úJ] s1<À~;¦zÈ­’º0ÄͤÒ,¾ƒ˜ú[ºmîE=& þ+KŽ{Go©üh') xï¸.ؤÉÖë†?ê½™ÉgƒÝ‰ÉaùbŸ‰@ÿ•ERÛæ½` rêêÊIJp/ üÙ=€ÄÞ»%n݉`@Ò^ úÄuÅ´Ôm®“,z.+¹¶ïD°‘T_ê[l«D9@8é5Õª[¥ämF„Pß52™;' èÍö"×î¹1 ý–mk3.28ÿ1ÙK?A¢´1 NŠ1¿[¡2t3ôØ-DŠý8¿ \¬.{qxTÒ¦…PÝ1<Ü\€àx±kÙÒ¨ßnÍ(QèX³,ëNA»C•»çœ'“ñéxâAuJªëª®´ÚÌæ”ªjT[=ÚYx´£ã ód<>L÷ìî+»VfÓ!uš»å§ûétÝù²~;TI*7W÷Oê{ ^"`Ý‘âšêcý"~$ÏîY-­l5p ]æ.ÊO%¸X^4=Z°<§k‚ÔÃÅd°]_BwsºBXü| 0¨쬵uÑlÝbõS9För1.Ý<-öTÏŠm:w«€hÒ)ä mA‘$Z©"é~>¥E¿jvžcߨC´j@å")M -‹’IdÜö®upuÒ€ƒDÁ³ä{ ¸hŽÔMÁÿ[UÃPÞDHôÊRµ=<»ËŽh`ïÒ1Br¨{BÓ§€¾ý{EÞ|$ ˆµ[JƒGP”Ô‹zçHÐGê"„óRì¨0iÛÞ< ¸ \;I.ùFËH$ ‰×+ðìÕP(¾ µfÓe†OØA«6 1I >icØÐ®:K¹ûð"mPÚk³n^1\„-‰Å¬•ó1¼ØU)çj»ZÑ ¿" µ*5>ÀN«8Šö†4VÓýnÃøÆ$&©Í-H¡×ۻƊ±î7¹€oX.¬"YQEîbS¦Û± Έ kÊØ­,ŒV“‰Le«€â.F+A€Ê¤.lUʲZB°JV‰L×÷ R{JBÝ< Åý€SÉêØ6AZÙ¨Úv†Ùn—ÄJmcž¨¥ xJbÕ2‚D#­ QV^¿OâDólt‘ÖA ¨5Û.Ò‚AE¹P$(G @$9åg´é0ªd5IbЦ—³}"«±šú7X[µØ˜HCi ¨l—%̸ٜÛzØ‚:#QLDÔxZiMMhU›‘èÝü?qùÚ—Ê.@«%#ŒÄRÿåV‰Á¥”„,eÊ—³Ü¿Î˜di‘ZA襙–*åýKö‡•\!©Æý9­=°dtî%.NQwåå Pž-¬Ör/´gvPVRb؇‡Ôyd½8§+v\ìZ@’ç=)•>ÜÐèˆp¸w—µ×—Ø»iyÑâ\;A ”àP&)]h•tÞ¬yÑ–ˆRJë‚S™P7³ØˆƒHÒÙMêêð ù@ÁòÑö”DAôîãAW[O âÝì–{v7ÖÐ,­¼ìŽÔ[êÊP`ø/”Cxo{ß3©+¦5ç –GÞ¾™=Ë'Rôôn?ÄÂ{Ë‘1$\ðü¨¤ó^> €ë*‚}—œj(ïÎJCÎx£×ËÙYŽ1õJüÅ Ap{:k(@^›ËT jkõ{9;`PÒ¦Fê³YÐzÇ@rAÛƒ(ã r#èÂRÚŠÐÿD½¢VõF”¤f ;=&v¸ä4LØIZN߀0¨ïÊb7!VÞªžc‚²—]@Qê5Y(ÎcG¢T‚z7T«ò9ÄŠÆ6I]êoÂ0€ía• |²£$Œ!ÑûeÈ Ù 8pß*D¯‡dIuk2Ö¤•z7)÷k™A0 ATP³e=Ç ±ønÃ܉'JÑI Ë—ú÷ÏÈa»eÜÜz«ð(ûð(Ò$Ê—bBPgu„†´,W[fëJ$8ÈÖDG\W‚˜hIL+Ÿ>ï4v/ÒðÌ+(ß&[7ˆìßRF"%7M2#+¡"L$„ö=ÏÕ½" Ð@=ÊöÕiܲު6”o:_d"k0‰”ʉëz`du &r›Î½‘ýUéRa(7M"5˜4Ðí6$¬Jʤ‡÷L`ÏiëºÈRU*¡³›9K¤Fa>¨5³É-•@ôÒõ­Ó£ÁùèGåœ5Éõ‡9qQˆžÓb%Z$ï¥ËIX=¨aúÖù£ÄJ^‰)nÈ¿.Õ¹p¹"q "‡öÀæZâ^ëQÞiÔùrn}ñçÆ/ÿ²7GÞœÂ3ä‚“’ ¥Ìi€Œ,ÈmŠÔ' ¬W™iÓ2‹š—W_Ó DƯüÚéK¿ æüXùD ™DPÓ »".‰6Ú¾w¢uHðL6†í}ù©Ô7ªªŽÂ ~õˆ®Â LãWëäÅŸÑøuLn©¹C?…r !€œ_4¿0ÒbMŽ˜v­ºº}õºJTÜí P"îÛ‡"IeÊ»ëp…ï&%BRµjj6~í÷OŸÿ¨N¿ |Ó›£9ƒ6‚SJ‡ÐÀŸ¤‰&«h#¤ÚGðQ…{E4€}TÔñîú?)Ê[îé\¶»"ÚcR%ÔX‘¿þÉ“Ïý7?}ÍMo)ŸÀÇ’"†Ô•:iPz6ãÎéHûϰÚß¾÷.^ä`­MaóqRíId ¬"*µJL)eêÂDy\Œ¡ºãë|üÙÿâ'/¡¹áãžá§® 9ä‚ÄE´Q40Ñê9œ{¬¬>¬þn[GÁHM,;1†Wc`I*ŠÅ·žð¡XÜE—O_ˆ~³ÉÍ?;ùìœÂ©ÉMßDpg|¸’,ŒN¬`çµéµ~è[ª+o¶Mê&²&“[E«á.¥ŒL´Z¬Œ•hh#s›"¥ê|(QN5È”\€äfÕäÖ§Žÿê?ä;Ï+ßÖ¤ÛŒ`i`é;JЈD«‘ö8:´´Sß÷Õ£‡¿`À¹]RVÃvXí3í#í[uéŠêéu¶7½±:î3í!í±ís+.¸S«ÄŽ0ÆŒ0tó)”)qç§?ýoóíÏ ™Âyù>À!†Þ_ô»CBÍ7@ÛK‡}çÉÈtåÞ6{¬î•)Ø Îêªb-“¶Æƒ)’¥éÖ¬ölj î<‡MU­·DÑMFI5ð¬|$²9úË;þoòñ P£|'¸SÈ µ2‚Ì) vŸ;3a{é ºúîÝ·ýHÚyÀ=“&i›:&ƒsJÝg~GÍÂ7[yù½:£X]™C–ò>©¤½Î7¡×ˆÖ›Ìô‰|B!ß~þöÿë|ü‘ä'òI¶”"±ý"@2Ávæp²:¨¾|÷íÿ$í>¤%8· ѺÕ}ïñ|$Ï%—Ä€Ä*yëÁÛh>ÒŒSÓˆ¼K‰®ò(¹I—Š27Pv5Ô¸¹óÜÏüç|óOaµÔ@YʈÚ`HC`P8™FLçÕtå{ïø±jï1¹  ÷”ª3‰ûB랯N(÷åºyZ@jÕ¾]}7¥¶nq<‹s€[¬A,&ƒžÙ'óƒJji[‚ZÓšÕñ§ÿ=ÐT>!² €(†Ôå2wÎଯ±:HûOï½ýŸVûO´›éð—;ÿkw>Œç>bºPpƒÏo²Ñ+Êè³añ0®NÈ  ={ uýFŽDÑ]Ê®c¨‘ÆÀDž%/õ/EK¦m‡­°µ½§fºóàm’¯nf‹,£B¤™I’-óñÝå&ËÈN+ j¶¢´Xu7Ñ)*¤CpF:D Q„£·ºstÕ¡í=¾ûÌWWßÏXÑÛ¦G8õ”-$7ta^&‰Ø@"(œ†ðEͦ”(#š2ÇBwÚÕ뫬Óîc»Oý@}íoœçzÆ[ØYƒgp]%« Ú‹AŸbùe\Á»Ë}›[›2[˶ڷœ÷Íà|ò£û¿îBGÅɶÔë.Û¨ýëÞÐòŽÒZ•R{SR‚4Ö°K{VÍáÜyx÷ñ÷üFIZrˆõ%Cvo¹Sý¨“¡‡7MF\ËÍ2ãB‹¨­fµËê€õýÜy`çñ¿W?ô·%A+…)ÛÌ£5pÀVé‹!H$НB&Z%Yu0 †Œ®í<ò£‡¾X.C„¾ÄÈx¡ü"UšEA-œV²wV‡V_=ü;¾/t,IñK” Š( 'E`D5w=÷­ž†ê‡Þ;•·`%aqVõK’.¢"ùEÁ a$ZÅ´Ã*à<¨üæ'?@«JÙp‰7¾ t‰hçrœÏ"0Äjç³teôÀ7î>õ,Y¹{ÉàÍ¢KD9¬^µpç"lk´ÛÞ‡´_=ð »Ïü Ó®ä$½É©ìKDÁþšTyWØÖ*¤]Tû2í×÷}Íî3ÿØÒA Ûqý’&ÓE#ôÒ©âzwŽ‘¦™¾¯Ú{û¦ÑaÀ©·U‹A ¦6 ö“DÆù—Ñv‘ölt éJuø•»ÏüHÝ'Ï¢AÂ[‡Œˆ$Ñ¥Í~'KÁ 0ZbÚeµ?…“³ú’wí½íGÓîÃî&|K‘]4EÉžkµSüË– Y;L¡;¯¦ƒwî=ó#Qpï=”K=Zºš ÀØ¢\‹eÈy¡ÞçÌï<´+oÛ{æ¥+O©d°/£€ª`â|ˆICòŒe‹ŠiÕ<©R¦½§÷žþ¡êàËà¹T–ð-HG—kvÉD¤@`àºèîȦ£ ¡>D}mV.ôÌÕ‡_!ϽæÎK•T®V?@Žh¬"+™±4D¬ òíY}h£kÕîã;O¼¿:|÷2œ|Ë’ý¿vÎ7j ŠÂ÷žyØy,öb;d¡)MÄ£B Ñ€‰"›žŠßŠ Äkffq­è½çÓhe¯´ÕѹsǾgçnͼ6†{õkµ'‚RQ$QMX¢5»ìBdHÓ_®†ïЧ_üúÕ6HztbkŽÒŠÚ½T[¦1|”šRº"FÕÀcu+õüãrså›·?6ž9VfËž¨ÙªZToðã[?ô)ŠAl{H¸Ö»Wž®BÑ›O®}sÁIG™ž^r-Ç‹°z-7æìÊ]°`\.|Vâkq5\­é-:ÿä³o?¤ýïÎ*¬º;]Q@LuiϯÍé ”–úƸEZegNŸ»ókÛ¤X`žFVÝÑù(¶µ.æOTµ½ê‹»›¯÷·ß‡»ÛZGvuáÖ¯MÙöû^Ñß ÁÊœ‰b¤L~+:FðÍI˜ òg·¿nBèLÕ§gC…üIµˆy†dÒb1Ïn³IÚ uÌš¡hÌñ3sÔ©ñ1ÞV~æÉ›¬ÉáÛ´z+;ªâïß¿&ëæ¦ ‚ïÉ)ó²h2‘4­Ã^.jI[)ô%Üƒ$ß2³=x @’‰¶LV]ªK Ë„%ô(¡G =JèQ™ÂÜ aÕegDèQBæG §R¨(¡¢„¹Â^—°×%9A¨(%T”PQÂó(aî…S)„¹ªKØë*J~øÃÅßÞNŠ-IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qpen-solid.png0000644000076500000240000001637012536324511021514 0ustar philstaff00000000000000‰PNG  IHDRÂvØÛ¿IDATxÚí]‰å™î¿”ĉã„p$´´@K(Ý–îB·¥K -¥°–(]®¥”ÛqœÄ¹É}“û>lÉ–|Ÿ²-[²|Ë’¬c®}¾÷›FG”Ä’•ä3ùY‘#ÍÌ3Ïû¼÷·TUU,_ªåËöcÆçÓ—?°~·=ŸñÅ9¾Ò_™í}m‡`û«Œm/Ëö9sÿ;¹OQ¶÷Ív6ò<ç¶_ÏqÚó<ä|Þ(ãGÅão  ÍŒ4M³~\Íòeû1ãóé¿ËX¿ÛžÏøâ_é¯Ìö¾¶C°ýUÆÇ¶—eûœ¹ÿܧ(Ûûf;yžsÛ¯ç8íyr>o”ñ£â±€‘€‘€‘€‘€‘€Ñ#!±…Äžš€‘ðÔ„QFM°‘`#ÁF‚ 6l$ØH°‘`#ÁFweãÁF"Š}}™ß­w‰€‘0j7dÔŒ÷Rdö@U„QFíØÈd …„%%&Ë’yßQ°‘0jü)+† e%Ñ?uþÒàÇ`;žàÀFMÀè:lD «pHùC®3ž?mkþþ÷w/ôÿ=OÈ? 6Ú(Ó+u%¤£d*:pÕûùŽ–Ô6ÞWí¨Xç\¾½ù‰‰Ëš ~’2¾£ÐFwy†?‰$(š˜vlÞÓö“ @• ekëV;–nv­>?ða,>k; FFŠEJ3œ¾|¤û7›ýT6,€ðñÌá®—»ÇOÄQ·,QJ£»ÂSK¦”ž‰ù.{?ƒ Zßxo•£œ´h£¢¶ñ]mÏ5ùkƒ¿"kü8…6º«µ‘ý–UeòÅâã÷µÿ¼¶qå:fÅ­m`V xÚÞüäeï'“³}x£,YN“„Q»ÛØÈ‰æO›$4é>íY³ÙõHóž*fÅÀŠáqë‘“½oùgù¯““ÓYM°Ñ]ÄF ©(uŒíßÝöcòÅ–‚Ö2+¶lCÓʽí/tŽ”( HÉuW 6ºÃÙÈ– $YÒ-óžïÿÛf×£ î‹U5,Yï\mtÙûi0:dÈ&†Djö®c#Ûch%—ºFíëx¡–üy“ÒÌûö‘îW§/êGÎÆ"§v—j#(ôôLdôÒÀgI×8W?¿ Êºw{Ëýë£RÐ !%Ûí"ÊÖî®dˆ5;†¬ª*i¾i÷‘®ßlhZµŽHˆ)!ç²M«@B¾gÒÿ·`HT?棌E5Jêɼ]sjdÈ)!wîj}jôÕP )¡ú¡¯fSä‹e•AF¹a”Za;‡jv/ymÄÿSXX(.…ë‡þµÅý]M7,dAŦ•:^ì;‹ê•!HRÓM¢ˆ6m”ü[M¥ì»yH ýæ$g…‹NU¹=´‘ñ†¦£ƒ'ûÞ‚|†'ÏÓ<&tÞóÁdhj‰ªˆäŒQoÁF×e£+fä "X…„¢©øB£ë ÿj6f*-£f©ô`Ÿ}$ä:Ðù<²*„… ¦áÒ7Þ·³õé–‘ñXL‘9 )¢3äæ`”®AãÈ$Ädx¸oüœË·åš÷Küiòoì›<Žr$ñsnR©ÁHÿ”}“§vµ>WÛx?Ŧ™!ƒ¸>Ôõ+¦¦Õ$ Y‰TÀèæ`D& 7¥Ç&¯^øx_û [Ü!‹ó=ŠZ‰Í®ÇpK·îB©¦j¥«’ßU¹%°c[óë™W_FÙò:”yôŽ(ÍËa5Ñ`tÓÚ(åíȉñN6œñüe{ËS<+W¦Ê±¸Ò±˜”W7”ãrlvU\’ÅÉÏ'àWdéCÀvòaÑ C¿jÙ=‘Xñº.U‘Á„u'A3Õÿ˲ó$±3b(;Õ·<ÄrõTóŠC:Þó‡é耉zú--ÏVÀ(‰Í^Yé>ÜõkDã\¾Í¡È8ža²_J‚]%U>ÑûGžÄ-Á׉JÓ¹?jñ$6.è¡PÜ¢÷ÍMUë< ­:Ûÿ—(O+²¥XVôðÏ™QKM{3Ó6<íéBÞ‰WãX“â¸Mþ H_‚pÐ+1n7¤jѵ‘ C€|0ê;ÑûÆ&׃C@ú¦¦/ üÁk“‡2–e ݺ6²!‰[Ò«k8ŒºÆÁD@°âOëQtÿQÕ—4ŸÚˆétÄ˵‰Ù²r`ŽÀµ¡²àDŠ-S3Öe £6W95¶l)6•¢ÁGuîÕÀP¥£ —Œû=0vE5j¶Ê!ÆC‘À‰Þ·ˆ‡t mmf޽¢*ù4‡6šóz#\z£FÙFT’#×êÊz„Ê@KÝGŠÊF©×¸ÍŽŸì}ǰe‹8†š[-‰-wã¬`£9a£”pvj½r’–ˆ:Æömh\UÉÙÈõgêl±ÙÈZ K‰Îp÷’ë!Ž!÷H9bÉ41&«ªÍâw·¿A#Üó°kÐÃÁ3£PT6¢%O\øl£ëÛÜ·G`ÕŒHþ™ï­i×íßlT¼êG3(ƒ"w\,Üöˆíhùáx¤‹›Žô_,™ –䄜К|uÈu èþ‹UÀÜ:|UÖö1“Í/™©*Þ‡s¼çu7¢¨ÂK³Ò¤™ÉöyæÖSãÿ(9cGQ²XC æ1Æ ý'¤8Ï3gó Í+! MÏc,w†ÀI§zß–¤„^§”ƒæ FýÇYÑjD:f=³¯Œc<ãùóllñ#«o¯‰I´¥#…jHú'.£t%_Hº!aRï]‹È1/:- Œèsðûƒ¿\ï¼È‹QÈr¬ûÕpbX—S1$`TZ0"ß1T ôPÍÅbDºÇŽƒ¢¸WpOÍ|möçúßÛи’Á¹aºë÷wüo­×˨sh m4_ž•¨³Ñбî×X†Ÿ„Ñî¶ç'B,éfdø ®8aà¤4wÍàÞïlyz(Xo•š1Q/Øh~ÙÈH‚£$[óO·"‰VÕ€9-ˆð-?Ý·&ó¹×a£[‡çC|÷¯àC¬C- 5u Þµ˜–|™ªælŽ0š©I5ù6¡8„ÔªDV¹ýÛU9iF gÔ’•h¨?Üùr­“™UÔCAV_üÄ6FSúKѨ±¿†¢‰t™2çš,Ú×­? ;Ìa¬Ù"s’á× ±,-ìX‚ºLh4˜ØÙĤ-u/`Tš0’‰¼ÓW¶º¿Ë\}fÑî9Ý÷g6‰U–Õ‚ö©Y½³þ©sFñ% 6|ÝúoP³iìr aÔJC1éƒYÐTf„È’:×ãGÒ-Úk£dÀŠ™³Æ-Â)#sV¾Éõps`›­üCÀ¨a”TEš6éÄÍ¿ÎYAi«eð¯§Ã>…¹úJŽ wëÚˆ¿œ‘MÃðZÅrs†pfŸ¡ëÃlLQÕ¬±„Q›o£–¼ˆ¨ýB„‡ú ²†ªÍ¨caŒøÛ„Ý;[dš3Lq0k.U±ë6€»ˆSÑ~ ³[gäÑXCH°Û.š3m”Î¥Hã¡Ç£–ÖdÎr¶˜‚)£‰F­DŒWE<¿‰”9"ÆÜχ{tiàS)¡rq­¨kÖJE(“Û´=¯%ZAÕ¬‹@7gb-_©³¿ˆ¨ùºõY¹!aÙð”+ÝÏŸK62j䘇“f,ƒ¶‡²’€'Ï䩌ޙ`£Ò“¥™Ý[ì:^ühƒ®ŠÊÐtŠ+ ¸–³Õ_Ü’§–Þ?€Jo”ÆU³¾8(BŸ¢Jé%lF¥SD›ZÃÏîöá`=Ej*8!äè¶Zýü¹Lc:ù೸ú¦çuîäW3&| Å!V*0*åZlþ8!GŽ÷¾ÁcEÜA»:ø%ê YCXö¤ç­²Q2Þ¨j½“'¸*âTt®ÿýdâLlTê FšoÆ&FðÉû—>G´*ãÆ{á©Í—§–!Já#i=c§Á=4õq!oüB+ãl,,ËŠmRtŽ7º%‡ß„æ3Jd>Úb`¹{ì„&g-O0š/¥bˆÉjßt3º…ø€îáïëøùØLoƼÇÍÀ(£f #ÔY²RÏê,1$€•|§I3aÔJGñHãdÈËP)FÃC}¸vž‰ ´B#‘þ‘ ¥ø"IŽaH€Ñ WŽ!3³ã¤¯‹°@]À(/©–ùã´J †GŽuÿžm„Ò— ,ÃrLŸ…T2sgs°–/?±ˆQ(6‚ÝæÙ“½ÿcöÂåžÆ/`TL62Ú—%šQ6Ë´¡éX¯êàªAŠ Fƒá²,çÞ±Y(MDzv´<Í3y(-¸Øÿ Ë1+ÁF¥bÔ¾³P‹ÌNõü¸zCåеg=ïEc‚œÍ;+,ŒFBÍ[Ý3nÄì½Æ×¼_qbTŒJFÉšÆHlúœçtéÖƒaÝ¡ÈíÅ”r' #¿ ^Åz6°¾ «n\¾:MÎUº/`TLéLDšMLœí=ÌëÑC«P”ŒŒZ]³¹4j¹~ÕÒ¢O0zc%ù¬˜ dž”Ûm.²Ã¯Ù±gNVß¿í`ùn<ƒ¥òÇ{_§y›I ïy#±µ/jÅ\ n&öÑ‹R5ÚCÍheRuµ_:F¿LN.2Ì´›÷Nb#[â]‹ðíÙÊy’°°hÀÐ7Ø¥ñåà¡‚5ã Ö »&ºo ÁE,·Õûë€y„‘e7*BáR4®4­[llÿÂí £ôœ+ó—Ù ´‹{Ûfñí+ÀI§úÞæÛ3jêâi#ãJiSáa„>ͦ¸SžwrHý¢ÁȪ.©¾xv<äŸñ„g'i©Šb®"¹îI¼ØÈ$ZæâÈZ,6ÛäÛŒ W”5/ãE±uîG.~„k|ŽC.¸6â/Å£BàóUÖ³Ž"Tñ™!ÙDLá´‘šWª˜©˜¸é<‰í;»ÚžÛÝöšæÚFöEfƒ«•u>O/žC*•”6Ê&û$Jtàö†éd4…x_’‰¬c¸ Ãï¨m0Å Ê& ®T}\:Ö –E=²K¶6?®wƒ¤–;‹d^yÎ$…º'Žëùæ'cn) Ž?x€º¨£Ý¯õŽŸÁÞc&kú/Û®œÒd#; ±è¢‚LÆàä5ˆ!8ÎܱçK2‘>o l¿.ãÎ 1y„D ÐC~V³†jZFZ^EÁù³‘–mŸ’4RäÙNuŽ8Úý[¸ rv;Ö/„zc–·¡ù#¸Ø08Yqt4” Ùo^žm‰Œ×U¢þ¥T?´€ÞyÔ;vÚÜ(fJÃë:§·ÄFù5$g!8w½Âì˜ÓQ±§ý§ÁØ­iÿV`”n¿g, š^ޱ¤øâ'y …|ß(o¥‘¼ yG/tÃ9ÏûÞ)'J·¸fb74‡£ª•&ŒÒïd 4•&dÜÏGºþ#íâ¤.3\Že]ïù#¶îùr%¥aadýÎÓÅ;íÔÜ´„7Èa1€–\"scl”Í!ψþ$v1¯]ü߯[ŸÁôˆ^ÈÇp7”ãG|¤=mÿ¾§ýg8Å€;÷YhÃ\ÓyÏß`ÐÊ¢YÁ¤dm©™/éà`²b*C¡Á˃ŸokÁºð{ù±ãZ°mÏÍßC²,eZP¢¼½v½õöEÕF–Ü_ÃØë_ÐÊsFHHtŽЧ*g)¥ÍGÙÎ,mŒ—Œ½" ¦Á¨·}l/ZuaUZÐÌ!Âø¦†)¡ÕØ}Ù>º-ÓáÑ&ßÐ;PE÷« &ÆL¸§z×€ù±']• ¥e n*md))¥ªÄÎ|ãð4%²ƒr,[k’PÓª/u”؈=ENKtäã( 6Ò2-+Å87@% DÏG’®|3-Yʆ6kâL·‹Ùû6†¡‘’Œ×2>W‘ܳ©‰­ŽÇ°ÀÑp»%°–ž¡w’˜Á.`…¤L|')*‘h!Çô\÷ÈÌûÁø/ãÜ1cMúI6rŸ¹¬ÀM5.e«D¼°Æp_˜0À‡\E繊„CÀv˜Æá('2HHÎ(4KȨ¥’QÅæ‡RÙØ¸j-ÛfGèÄõX‰û6…%à'šI–$lXS`¿1&%/8¡~ß”»sô(´!›¨‰ƒî©mº¿†Y®¥äsqô°Qnôãb?‰!cû󩦕mêÊ8HÓÁa¹9¡ŒÍô9‡k÷:×CL€§ØGRè+±Yàdï›Í#[¡“ä8;èŠM5­žbÒû/—QK Y¨:tHÇ(ªá*¾“³(dãk Ò\gÜE•:€pzŒÓ…0=î=EWBJz\à&v†‰2ÔCÆýk„(nn,ªˆ0pÉ!Gà;àf:ÒýÊé¾·Ï÷¿ÎóÞÙ¾¿¢ —¿éù=Tá®Öç(ƒq닸¼‹’b?‹ ô,zÐÿÖé« ¹MÓcò¿¢*ÖƒÈâô˜4t÷¡Š]ëºZwVTéæÒÄ û.$>–ÒƒòjçR ƒE™üI€†8ëp· Oê@dÜóýC]/ÃxašS\§ Ŷä+[›D ˜¸…"†5+—/ö¼»í'†x_ÊëL3 ï\±©éa ßô‘îÛ‹IØÒ—"ˆgB€i†¤Ã–VõÄ0 ç‰Ù_ñÊ [(±P|ÐéÛÅû#å'î¥ÅD?ÜXŽYHeÂWÀ *[•ÉŠå+Urld+7WbúìïgLƲ€ØrWêËO y|Œ£„àb>^D¸YlBÙijü;'zÞtÕz§ê£RÐ*S ú¹±²µ40ñ0 “UЧóm½§=k0RwE› ˆ/2MëXÿrþ4d/hÝïˆ,töŸCoRzd¹·ÑWƒÔäJï€ º½*ÀÉ„­eøqcy5ûW¥gJK±17’%ž¸ç°Àk|¦“Sà±k /š#ã¥(oŽëö©¥{C›(‘lRùÊ0DÆ[_£²8Æçhð!¹~ª4 _é Ð3re¸g‡Ðx?²¡p¿wµ>ý œín<h¸ÃîÃ-€a¢sYµiÁ‹¹'¤2ô Å´Åý8¢ó0¦ =‰r«d ž“n;6Jâ5ÉOšQªéê?„q¶ÿ]Øät¾„??‚?øñh׫pÇ.ô„\oGà0FŸNGü€d#1¿_6œ/%5^p+E´é׀Lju±ÌP+MG{&¾¹<øñ¡®_îhy’©7q`ªâ¾žX¶žÌ·£ŒµŒF&›½¬¼ÊIÊÓÐkYí(7úìõGv;á-v¶þðXÏkNß:„é£Ò”E’ËÖPÙòÇóÌF·#ÕZ:FFÇÈãï‚{=–‡ccÁYÿL4Šâ{86‹‡%IÒƒª#¤©®F³EÒ Q‹Lª²¹’=©¨‘Ø”/è†Ç|Ö#]¯ Ê÷€Ž"Ú¥:h–0x9HÒw’†üÇ%ô<{\ÝÀ^ÌX¡ $Vvüâ¬çýfÿŽ‘`K,1ÜOÍ ¼e,I¸cadBIQ`4L†"'ƒ±© ]?WªQóÊ ¤h©¯Ê–K)\I¿eü†ùáU.¡"ÑiÄ ú'.4û·_üâTßk_Ç Ül¡ÄÙ˜M®ÕuM³M«aæð˜=ã~àƒˆ†N‡Šè’ÄP~]£ÇÐD=Ïs–ØûJ7zuï¥WE% Ë43AÄ.ˆQt«ÚV­•Ngˆ=ÈÃ;YÖÝ ™œmI‹c·ÆÐ0Dzàs N_òLž†)ì?ŒÀOçøA˜u<îøAö¡à5D¡ EÇà!²¸³Ä}7*ö•“N#„¤ÝPOôí*±sL¨Ìx<éáùR‘ÑýI}’<± 0Ÿ”iƒÙjb9¯r3»ÍÙWµÍ‘?¦§{Ä+P 2¿]ƒ£ ±<½F¿wWz™‘½ÙwMÖaÿp%;ËàH ±<5àHøkï•Â#çÏR|®¶E–²³ßC,OÕÙ$Ü¥„çUWòY5aŸáaa§ýå©úÿÏ?Õ–ˆùVa•.6ȪI ßÄþvW|±c™ñAbY’gtÀˆÜºCÑÖïã›ÊsPÊg §V#äŠÓ>ç[ {‚ŠÏû.û× ±Ö}Æ1±,Ép‡Ô8-;‹Æ+i¾ä”‹·WÁ¡D/[ÉdÙ™z…·í°ÖÍLïPôm†)Ÿ£WÁT;RΡ^ÒX¦NîõN~f¯¢Û}˜w†ðæêõr–4–õ^[¦h+©—B>àíU5¾­1ÚíZµ5ò´sY†GÚ¸Ûν¢ÆBÔ»À ag³;»Á¨›†ƒ£‰#'²Üz˜kD°"ì­sfŧZù½m-Ú‡$ÆzçžžbÑ—<àrËøhoÛõç?Td84‹{vµda2Ví½ö÷}zptµƒXnåðº(¸Åªh,llÖy¯àíU°ò /ZÀrþõ„‡oG°ÄΚw7©¢¥`jòAÑöfÖX¹„Î\“í‰?Ûϲ/õ)WÛ%¦ÚT4–áºÀ½Þi/·d[ìE†ºipN3yön–%R©pdvܬ¢±ƒ 0"Ub¹«*öZág.n¶‡e¶èå Ø-Ho¬–øR±ïÁaåñ߯_¨6Ç6°ìKÂ~–„Ô<ò{}épMÄåÛøkªA"——XÝÚ’ÏÙÀ²>x/;Kw¡Bnc¹†þ*6"[£ËTƒìJ¾-V·úÐ]ö̱ì^ øHîõ¥ÀM‘^¿1p›ÒlLx¸á/–¿d‘c8ËÔx?OÈ*™½>õªhVÊ;”&½ƒeg½ï±ºÁn`Ò $α‰ìu>Ø+«½ºÓ‚ÿ¡už?(MwןY£lá8 ó q–Ýɕ춉M· ¡È%pWDÙcZ"Ïš‰_“rd$Î1ɬþ®‘gä¶IpÍc˜¾RÓÝŠ@"Æûf3¥X(ÙlÃcZWb¥ôÜ~Œã±Ô o.5;nQ„Çö¾‘ÏœiôœG ÊaA^7o±}uc)Ë’=¥Ð ïÅ4:µÖøRÜRå|{²’jˆFÎÎr§ˆÅ9Lد°Y˜, {DXÊnÂ÷;f8èå&µ¹€1@qm\ÛítŠÕ¾kûrïãÖ ½leÑ=ýéÕHñà4~8@ò„þüG…CzùËÒ»f|¹#Q¶Í³(D4uÁ\ÄRÚz83>ëÅI§5.}Ä’D,IÄ’D,‰%‰X’ˆ%‰XK±$K±$KbI"–$bI"–$]ÿJ¦~.¢•æuIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qradialgradient-pad.png0000644000076500000240000002617112536324501023335 0ustar philstaff00000000000000‰PNG  IHDRÛ&ëøå3,@IDATx^ìÕAJ1ÇÑÿ—Ö•èùz‘^Íó¸u©Î'„ÁYVdZÞ#$ CB6?R/O§÷LJç,Ë1É’ªJw’t~ ¨T%=cã-‡Ëy\õšù'uƒÈ@t•dÌðªÓ½hÀÚVuÆú}³Ð€žcÜ'2`䇱رØ@l€Ø@l€Ø@l 6@l 6@l 6 6 6ˆ ˆ ˆ Ĉ Ĉ ÄbÄbÄb±b±b±Ø±Ø±Ø@l€Ø@l€Ø@l 6@l 6`ˆ ˆ Ĉ Ĉ ÄbÄbÄb±b±b±Ø±Ø±Ø@l€Ø@l€Ø@l 6@l 6@l 6 6 6ˆ ˆ ˆ Ĉ Ĉ ÄbÄFÕ>{•Ô7‘tçªë{¶³kî‡cþŒ—ª{[ÓsLÝ;¿NÛ™Ûú9}¹Ëÿ&6>Ø;×]¹Ž¬Ž¯ªî>ž'±“8@” &™‰4À ðAðxƒÑŒø†ÄŒæ ¸|åxø€Ò1ä"Æ0I ;¶Ÿ‹»{/zwWë§³þZ»åØÆŽS;)Õ½{wÿöºÔªê_þi¨2´!ª€§LHK’ÜË7¾[lÌÂ…tÆlØäþo…óÁ­”bÞH+ÛvoíúÆÞZ¶ÝÛ¼´Tk³Z=‡ï›^‡­;3,kpÀÈ÷Ò̆õ8’q[ÈZƒ ù˜–»e‡\™-v¹[©¥I9oå[«SF.¶ž'l07ó’I/`e`Zïrt ômò]©æë•ù0Øüø%›ÿÆØhÃÙǶº{ÃJ­Vëܬ Vj6ÖíB® x;°Çòã”v¶.ÅÌi0M´7ÈB›{×¾ÙîÕÖÐêüØžyílyô¶,W[ÐWª-–ÿa§¿kÃù‰Ífs+ãÌZlV|“£FÎ`”I3Ê Ø`G>i×aë $ë2Ú¥/nÚÚÊì²=÷æìWwÖvúé{{år«Z_ù-{áÚ—ïÿÔlyjµÎ¬”A ¢ T !}³™Bdº[‡¬AL±î¡=iSË®o¹¶¿ÿŽÝ¸µ¶»7?°ÙÑeóÏã_½¿™ÿ–=ÿê;v냿ÙôϬ–bµºBt¸lë}y ¼]_Ô~¸©ØE·=΄«µÙ½¥Ù²¥Õ6µúj׿\ïê÷VãXƹ¦6îÞ>;?[š-®Ùj£:Þ¾qݬ^ÞÌw[®‡ÍØMZú¶íöç×muémóùKv¶™s>ν'¯?™–±ÜÝß4™þûØ×¹:lÝ…_RÈ\ÕrÒŠ1ËU;¶íPÒßæð#xç÷ÜìèU;;_Úz=ŒííuŠ­WeWØôo&ø¥WíüÜ·°+HÆ=Q>Ðþ¾Cеò}]]ì*#áMØQ«aÌ›'±%Êãòy¨•kU3GhÖk^×Ê~I€û-Ø}›±e;ÇšÚ7¶Í}—Ïgmu÷Ýüu«ÏèßäM_{Ì«‘¨˜³ pæfÞUËÛ¡TÄ…ÏÚöׄmF™±k\üÇ3g‰;ýòS{v¾°Á«UÛƒææÎâ¶{µYÛÉOÆ9 Ж†^Ékˇ±<¼1Õ–ølòJy`{z²¾0>ûó?½ôóº4ï%ÒATÆÃ4§>´4 Nƒt '‰q€åêLaÍ­ÌìüäK»|õ5«Ç¯Ûéÿ±Ù⨹àëÖÅ¿:¿kÏ_û®Õóì‹ÿþG«ó£†äôåyu͵¯¥`É¿é·)+ÅÂÖ¥™5Ð %㥩茥ÏÅýßÒŽü“›ÚËoü¾Ùâ;;¹i>¬Í}LôçÝ>ý·¿2óõ!(H¤¿6?ž¶çe;l=PФu$Ú\À¥M©ˆDŽ4¸)›Ú®afëÕ¹}ù¿ÿlW_zÍ®¾ò»t|Õ.?wÍ®¾øëVO?´O6 ­—'»(vq’Ÿ*p‘+Q%ä÷Y”t‰”û6ÃÖA³±Œ€DÛáu4êÚæ€¦±‘v!ç>·Rg6l€»ýé¿ØÙÍ5?ý/;¿óžÝºþvó—ÿdæ+«ûè‘’DÿÊeRê!ñôR²Ê$„D°oùímÞ½€f¦N5@äÑ Òv4€¶±m–ìiÃC8Œ ¬5>ì"C6@ŸÜ°³¯>ßQ‹ÍGxBji ¸ù‰Â¯íµÛ½XÝ—áoh*$§`^wõÙX;Ž>TËoU€3°uûLU<’Bè2.úf€cK Ìo+}ƹͥïÅAÌ:ŸVl×ïî-Ê¿l!³"B àöå-dÔÝ)C㯲ܠJ’¶»”!ÎH•Ržjoe‡Mm†Lj‘¦Á’º@æØe@…C ´µ³RöHCÊìûl‘·ÿý‚ªW‚Nç V¬õy“èµ qÍ0¶tQò‘¼Ò ²ªΪjî¶§4·‰¨üÌÉ¡u`ŠvWˆà[ÌCn ´A‘(ûHVøÂqÕ[Û¹ÀHÛ¶F/lb-°>À^Qó3U(4 'jn‡í©­ˆcb4€È£Ô¢Ü€ÂÎ.€ êààdÓiãg î.*’­õU¥2Þ‰Óã¾Ô¼Ùˆµ74ˆfûú^ÂaãYmí¢³¶±."uÍžà:l*ѦA,@óV÷ É€ éæ 6¸Ó›ºÈ&ÔÖäHü耑ì@¸Ö.À'lð>í=·s¦àD2gÐi-¸?(ˆexZ€ë°)hž–ºçµ?ªR ®0à9vØZ@aÁšÙÔqAÀQ@¤í2¨s¤÷Ä÷ð+*§y 9ÃN×6g€C@ ’ï)®GýÍIÔIúQ:ræÂ°ð%®ñÂkù˜˜ˆ” öX¡N›®¯µ×’c?.¨’&ªoxh Ùm`|ö”i“ºžòÕ%Û7 ¡*)h)tª>u$V«3×|ò¬F{锿ô tPÉ¥­A p<„ÞjƒªT ñœ'<,veÇ®›¶™ÞG•zÛŒ1Qò "á:lOºDÃH0y:Gˆ©ºhŒU>p! èGzÑ.ên’…læq C âžÈ MÛ NàB}3kðE¯¥#õÌä6xã5™õºÚÀœM.'Ü̬<ñ[tº‰ÛÜĶ¢ÄáZ„Äuµ(‚qr * „V¡"2Ťœ9À*öИ,Œsàò ;¶Dªs'Qµeýu„Zú«“6ì"CÔ³\M4õ@=È©UÈBsñ "Òß‚9RGÔBæ0žvÚ‚Íf@ÈŽ]èá><¨­žíµ©Ac 4 TzÚÈøI®Ã†=ÁQr€ÓÀØ×hG»qyº'‘ À"Pzøb—‹Çß1X¸"pÔ)k1u»Óï€WN ŽýûbŒ§J{$ ¬OŽyâ´B8Wé°=vZˆÞÏ·­ Ù hª>ÀÈO¤B“hÀˆ´@³îÅ£ Z§­uÔÐV ™¬m܇‚Š$"3Êj«jÂÛhêÕ¤?ŒZì¶ÇžPÓŒ§$PH°·'êRMŸðVèÇYÀ8 BÊÄà(3Q'Ñfã<ÊTܨÎub)UÊ\b×ÉCLì^L—Èq •Ûã¶Ó0•B]Âz¨<¡ìé—Em–¨–íæ¢¾ @DIÖr€ ¡W‰óxhcx•2@G …Ð* d¬Bd*íÕŽ£ðÔûK™º¡òvØóÂuX+Û—'m ýÀPxTŸ¢“AÞ#¨lØfÀ¥v€‰‘ô!£ Þ À©“C¥ 0Á• }§<Ž‚“…ºx3Lö[‡MU2ìÀ/ê I¾‰dkm!v"B)Økˆ]qÁD´÷XÒ¡ö’©Ÿâ•äþ¸gò‹Ý¼.ª4ü-L€[˜%曨úÇ~ë‹ÚØ*ºn¤—ºíå‹AŸæ” ‘. t@jÀÓîÕ‘4âQuÝè:­J©Ê©à NneÆâµÛ8.r,3ƒŠÙ¦è»$ô­†ºµ¶IÝ%Û#N|!P3$¢»-U!É uOÕHÞˆ‚ “=c­‹²ª’%zÉi£#ÍdŽJ@sYt·|×wP¨·€6yô]f?#å¨#íо½«‘ÿ¯N‘Á$œ*ì)#©ª“ÚžÀÎ{3.w—k4(`¢2>o fŸB %,UB¹åÀÈp d>àQÃ)»ä9x$³pŽ ÞÉÛ£ÍÕû8D74eìªô‹CEíC„‚ì CE vR#lüQؤ 8i±˜E¥ˆ7jçEU^!r€ÔHߌK€¤DC vc‡í¡'9zNÕF—­-ªæÞH.!)|¹Œ„+AÊÈöú'sñ Œ$UÔOéɈ§”²‘#­a­Oœ)!S?æç¤&¢±ªÜWñÛ#:"°t™À“ÚÆX=?õ{.Óš‘°À€Dà êP…¨‹UÕà L Ž„oåðqàBXÒZþް@õİüsºéÏÉL¶îmé°=l©F9 V•P˜O‰uÃnÁ2ÀLî0YD.‘@¿–Uí:€í‰M ñþÛ£jºˆ:eŒ¹–Œu. ÃöÆpL°˜ªˆº–Åœ\Ì¥\I×Îè`eŽÀ dÀ  tHð8ÄF%0 R3Øtê!Vgm-¨Î’›J¥4HX[‹¶¢k?-9`xˆ°(‘b­¢cO^KƘ¥ ‘hHÓãDÚ¦Ú˜zÿ%8P”ðÚTÅT¸2ÕÒ%ÒåÁR‡mZª™i]ÝË\H7Á¾’m1ô;à0·AH?TS–eõ j¹T‘vIü$M5Qƒä\¤:€‘Hk}8!¡Dõ„ú©ð8Ï>ßr(vµK¶G  ¥uæ`£zà˜ì\¨›€Äu`{ iÙ,ñPVÚD¥$ç½kf¿ ¼j/ªD¾Öç@µ@–ààŽª|tÒw®ÃöðTHõ~ÑFY€ Ž’»X‹žD_ȹŽ!؉`ˆ°LE†…“”ÄJºH3}]^Pwz(!*5°Ë^=ÔE¤# ã¤’ŸîÌè°=¸cD½TªF E¼ØD²v#ž29þ›\ì$¶ËäY!TQ%' ,A5d˜¦lBˆï Ò§RÂö-¹’J/ý¹èä¶–j¨ ŸYèKÜÿ¢z„h}X‘øF€Ó…``e<(,ªr’.©÷Pó*'meK ô‰c0cýÒà£Î8`Ìá*ñÌঠr‰­ÞàvØ…½¦ncÑFøàeû?mTTGªÐ.*ç´›]ÕàT æýMœ À)ØÌ%1—T™Kž€Ê’€oRš*,zp‘ªÌNp„vQbhwq"ÑŒY”@wØ&Ša<­>Ƶ.OØVØjòr=ŽŽ¾Ãvï“ÙZ$«ë|Œ),®o:sƤ6apŽSøÆZèCr¢PO|Ó?V¸3s»d›L*r‚·/ÙF£ÒˆâbŠ-1xñ<¦uИK4ýñª*&’E!R`èU2·éTJÒ \Ìš âz¦Ž’é·1›T½Êá‡J4zèpê°‰}"úzã瀦(Цç?¶>U‘hñ5py2êÞ,ýBp/†Ø2iúÇ á@Õ¦sÕR­øÚl¸g‹ãíòË¿k—¯ýž=ó¢ù¦ÍlmÅê^_V•QÞ7JrÒñðƒ„¹¢JÃCü›˜¶T#’lÒlàu5Ð9O¶x>ˆ>ݸDŸÐTØR“l‘/ŒÎ+? ùà¾3€×cÈ÷ªšûÊêâØ®¼õ'ößþ3®ý‘ùµ?´Kßý±]yóm¶éÇ”Z­—ÔùÂ¥žRí+‡OzÎ:’e»ää3•Œú° Mhž°¨©Ã¡=é=ÿ™„z‰÷‘²Qž>÷1[ûÉTÈdϘB§’n›ûNZùzÓe{î{?¶[Ë×ì³ß³[ŸýܾؤÏ>þw»½zÝž}ë‡6›› ë¸6WÔ*LÌB¾Zàš<¹™>õì:írˆ9Z PÊaGô‡>à”Ô%9v}À¥;GF8‚×Ë&àr‚<éFšXâÒ¤öÚž}ý»õÕÚN¿øÀæ‹…ÕùјÆò¦í}»}ׯ1Û±¥07ùES-kìäafr\¹ÌÉ~;©.§£‰i 6-}…\úºd»Õ[`²©Õú XCˆ(Ã6mù9ùÒ&À LE€NT¶ l>,íèøš ßyÛNo_·Å¥Ëü¢û˜ÜǶmßðÌÛî%óõ²y,³èÞCÁ™ˆ£Tµ8€3?&!‰¡zÆéÖ`âs‘c ÅyÒ%Û&\ù`Æè\cø¨€ÉEât—ëpUÛ¦¶s[¿jËå²ÁÕîÝwžIŽ…lµ\Ù|3–o\™@{pC¢ h€7ðD­q(qx‘ów~°ºÍFžEÔ»8@ðzahKG¢…6 Œ¤’`êÉ/ñ†™Öƒd ÅiÖˆQó}t ™Â•ï@Ð8PIá8Ý„Ž*'¤K6^(›œçÉœƒW÷F’—$Ž.M-§>™¨1”³°(;¼žfÓÀ1$µ•&U8êµØúôS[,c…1æ›ÜÒªÍçs[~²!e“6\fSA#‰·8_b1ÕDT7š27ª‘Œ½›­{#=,&{Ü¡ 8I”²œö¤1ÞK—±í°WRÇ©4(çnu¶°åÙç6?û¹=så [/ïZ­ûEì:–·mÏ\ý­í˜Õéqbx Àòe}àd®B*Á`¤˜írÌ{Bl¶ù“ Û`€‚º4º#7¸åêômÛQ3@P’eG_cˆ¾p™žk ØÁ¸ÇŽ‘ubÅj™ÙÝßµÞü‘™¿e§w®[1osË´ïÙÕgÝN?z×ÊlÖ¦¢+‹t'Óz3M$%}Ù1|c^i³ ^wÕB»õÝðrº:0ˆGÐîCšt5RÃqLªú†ª‹º@ƨ$Ë ôå'«ôÒäÉú•l‘¶ùê®|ø—öÂÑ/í•ßü»òò°W¾o¿öÚì…Åu;ûè§6¬N¬Ö™•2˜a»YMv}‡ú¤³8¥MmÐDmÕÍ¥ºtàa j¼¾—rw‘µ¾Îv( Â&x¤‚73“\b; tj§©ê¤jS>qJ¨Û¾ÉÈ÷&+un¾>±¯þó¯m}ý'vtëïmñÅßÙê?±¯~ñ·6lúÆ1æCƒÁÃ='ï“Û’´”xäùŠœ(EY{sÊPvÁCIwÑ»,æwئû— ãÃûÓD¼–¬½ ÝŠì‡%RûK¥•‰„Hm¢|«N 2ÞWfVfG¶<»ag7fg7~¶)ßÜ¶ÙØgM¢YÉ£#Šx¡¬ê䌙ýæuu¸Ä& û9âNÚÚ¼ÿcïlTG‚ ¬™»÷äôÁ…¥¡>Wc²-–%ë'»*ºú¯z|¶ )~”ª#|ÿ¬äÞ¿ÄOûs™¦î?E$D1¹º0rŠ”Ç´ -Q—Úš˜½êªëèês÷?ÿ~”aÕ«5ÔY?¸ñ7>7H Jš(§–×ÉùÕÖ¾zûqçÀÖñ m ÷†ÃTý‡…¹’PepÑTCh%"Ž’l3ßvIÛTu,[ZJAr‰­uR²BÅF¶nx‘ñÙ\ZÒYôަP˜QÌÝ–)­ÍÜNÄ•AZ*FYÏ:)q®@ƒ ¦CƒJW¡Ë3¸§S;/V¢Ž½Ê覆ñÒ#Ђ”ÒÖGépt´Ne’ÝXÀ ]æo¶€Œàô–ŒÔ÷‚E/”‘g5Ýhê5]Þ°ncÙŽTRÅz„öŠR9œ¯dÔ“ø™*ƒ€»¡5Âa¤|{ñÞ”¬"­ò6 Ø­tÃs ¥ünŘb9È.M3‘è™e¦Ø8¡K,WI1«•7ºõÎa7rÜ+‡Î³†€)—Jj^€0‰”ÁÞÖ6€f­,>S¬—±Rlm¸ÕÇÚ÷n ŽüøÍ¥à–ZUoCÈŠ…" ÅüàqѹL- BjÞ¯P±Ámþ¾`Qhe2ÛZCšçÀ‰m Š Ú†r¨¸n¡[ƒQå Ë–f6_bÑ´ª_Ï¡ÿÃ~†Õí§ÅJRNázÖë¬5bfn÷':­¶¡¹)" + Pt·ô=NÓl£Ì)É#ø!ÛÝlã·a5ÑHµ"[ƒ/†úX¡É4t5ùÃE«È6ç9ô猌úÂ+ùÛ¡V ´+Z7Z¼D½zÀL¤W‰jÅ(‚–T‘+é!£¤¾#œ HpnêÅÜt›Xvg¨/'³»»ÄïÐl…6RɽA"IbäÓb€€#er~_ÖÉÓfø2ö~·ê}Íß¼¾Rº%ç›k$RHSÖÀ2, û`›¤6Šrƒ`}ÙaÝ`¢Ï.ñæ|AÍí­AÖËϵ‘ì†8—nå)¨½F‹ý7Zµì6  Ô8.cÙª­2’)ŸF`fçú¹°âüà¢ßDðä–Òïï•aÿ<–˜–”ÏÅ6&²Š³Pu) >ŠÍ«Æ²}-@?sÁ‚uc „%=ÙÁ¹­DemÔïéᇤFžŽv¥k HÈìl jÜטæNv•±“ëŠE&ÍÎrÀ–S|Ë ´$ ö4 4(´Ñ0‘Η‡@‘Ì{ÃL@»ó7MtÕɹ/SXÝÛg þ[š‹'rð«fv¿ƒBŽes¾x?†Ì³Açѱ7‰€t¹8cºZÁ¢¦©0¸§Ña1ÅÃÁrö+bä"u4€‹õ–¬þ¡U3.ò«cÙ¾ 8Ò  ÀQT¯¢ÖH¨ëó€“ ·ÚJ5QpÜ4ÝÀ9Ï&×w‘Ê'‡ãÓd½m¹É…Õ¨G V-¤H!l÷›IYGëÖû@«è¤`Ù‡3¦B#&²µôjÃÚÀœóli/"Žqº “÷!‘}YÀëKÁJd¥Uã̆ë[ªFƲ‘ª D þh€“Õç:¿sE?µè<ãç8©ï´&Ñ Ž-+³ÏÚë¹é¬L¶ìœ7 é÷BM×X¶i¹)“³Y¨¹ õ†x¡¥$#ˆ탵3eZH/`õM´©1µ}$ÈøÝ…Œó÷`˜k%¢Å'-þ®ò¬›i±PÚrȧ£òétòCM$¿[šógm½ãKÎâ`X0R7#w^°N¡´ÍE0oéLòK؃ý¿•‘À¸Û·E%tÒÍ Ê‚|Z-ì Ä ÃᔵL9&àÙËç¿6©­¦6ïp›$½õÍr¥ ÏÉ:“ aq¬eS:UcÙ~Öº ødÅo<·ù_Æš=I-I!yê<\Ä"Âg“Ûlß±tò†xQ˜ÆÊë„H§”o-|ݪHk¶n­U-¼ÚXêÊoˆªbFÆå¨BSŸÇ[u¹Gµƒ¹oe‡Ó§ê{#@”Gú¯ ¶_ ûÎA¤óï=¥H÷ÛxÝxýøÆ²ý€uëO“OKÚç©¡ÞçãË"s¶<‹ÇXà3‹çÓjs»Bg.ÝÊ¥rd FÖ®l‡7{aÕl?î»1"ÔIw py^ì§y–î[¼_y0ðÅóŸŒÔ©E(ãš²²{¥[<Î è<ƒ7ÉûY_mÀFë&V¡|Ôz °|pá¥94‹’¹6£?R|¦ !õâõè¯1˜ÂÏÝÀ¹]ºe,(ŽÛæYúá½sÓaÕl?fÝ(¶ŠoÉ~R¸;s±S„¡Š´d9-÷4Ö çqûQ^.$§ÑIa"±©µÆ©pÝ –çü¥Å«l/°n ‘úѪä9|ú‰F 4Òó84ä 4ú•ȩŪþ¡‘¯§“½T¢*<¶‚€MÖbÌS9«Œls^”ã6Á~ ˜Hç„©d¶AY }gòM8µU°½¼=54KrÓá#åU: üP*<ê¨tD0,†Â³È™>*´IR4’Ϙ42ÝPŨڕèãÐÈ· “ ¾š9¦>¨`ª‰”goµ8ÐËBÿ©émƒÆ®OAB;Ñý^FCÒX1|wþ™¡ ØŽ ¦o”OËFå ˜ æïõX S+7œ’NŠxu®¬-É~¢S{ǰÿ9‘~®É)‰ì”‚YnÈÊ€í-é$ö ¸\t𣆢)6?7iU^¯Cz¡èëí(—Ó¬ ­8}öŸ¡~=–í]Gk•*äYÝ¿RÄà#‚N~¹fûQÝgL&›)§Û4‰J Ï””“×YÅŒ%Yï´ñÙ¸JJx¼Ãý’WƒŠ—ø\B«}1€©„#Z°Êp±$××>'ºð{úeW+. ÅåvR}ØM)VZïËöÆþ—ûºLGGÐÀ§?ç(YˆÁgaŽŒ>æ¹ü«¯j·±dë¾}^\óÐÖ°½?<ŽÛ¦ˆ~/g-ÿ¬—/ß+ÓH¶Ù\[2#žèRßG-3Ð2}ùþù7ùÞPCÿ¶oú…”@A¿Pè\±Ç¬êD«Â÷êg²ËnÀÉb©ãî°?΋Rç4÷Éßÿ €6`Ë€ãK_š“ã,‰b9Õ%¥^u=5•?XIR²-Ô5/ë¤&­Çd?üÀï+Ý"}|9ІF¾žRÂïÊ-#´6y¦™Vg]ɽõ÷¡ÎH:ÖàÚ¦b#Ý{éܳ¯–nÕåß ´ÛÙ‡s~ü¦,ÁÆœXÖydè?[€³âOn-•;M4ݰvühý»»@ùë(%gÁ5pHiH;¥d TMü»¥>žPKS~vÁ¯„Å𠨥+a-“J¸[º…ó±/mÀöK“ÞÎâi+ŽÌ P_ k?Mîoô±18Ó9A-‚Q:Ž"@& $n¦ÛÜ©erù+6`c𡇠‰¬@ÇDy'Ë9¥d앜ïG [™7îrš-ååçú€eAE íš‚@¶_ 8} Mcé!Y†V±YT¬[_–µ‘ }/ ˆà¢i#-eÄ2ukÓ¢7`7îÝçü½´ñ Z‰H$†æ+j>úÁ~dò®¸æHàå$í)ì1Uµ7`éþZ eË6€ë_}6lƒúµEH%GŒ 6èÛ¬´oÿìFžÍÍ3PÀU*+ çædÿlÀ6~\S/ÈG-/þ ‰¼wûd‘2øÒÇâ÷~úfDÛCÓb=œý³Ûøq´r»KhQG¨l±bEîãhÖ•K ò÷$fšžA€æ@V¾Šdß³f¶±r  ÷C z±Çlñ~»­LxF€&.}M^{»\` ~„1ÂhmZlcå@-¹OAÄP?£â'„ÿßtKL’¼é,rm%9ȳ6ÉPÆÛP˘Øf~ b«hѦPŠ æÂã}ŽÐߤ縌Í»½„2؆Z†2/$¦{£Œ˜9ä•Ô7r?I1W½‡ë èÃÙ‹(ã€m¨%E`é@Ť‚DŒ’ÐH;•³Lû&¢Ë C¹oÕúÒ |(ÈþkïŽq†¡ ?›°rî.ÂØYHƒªÞð°;4Uú¾%ŠZ:ñוåØqb]†X¶1o¿äßdƒ=E2Ê t4[™×žQEÝ€u8¥ŸÑí™Ø˜ÿãÕóžó'äïk&[yÚzø¬j´u¼Õ@¾T>³ìM2;°¢•¥bå æ¯›Ñ.¯³Ãë*’ 1êâæ*Ê~^ ¤Ç“?‡ÅÄf´›ÌfVh”‰•+³‘=JÄi~‰ë裘؄WàÖ×2Úévêó4•xÊ{˜Ø„—×ß4ÎÔh¯Çõ¯"³ÀJ$·ÈÐ꽸<Ï&À¼ßå3÷'6@l 6@l 6 6 6ˆ ˆ ˆ Ĉ Ĉ ÄbÄbzb±b±Øò0æí—Æz»œ”ë=‚¡ÅOcý¼ž¾oZ‹Íƒ¡e[íýõey~|‹óòŸ±5àýá#¾yn™³ó#ˆ=IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qradialgradient-reflect.png0000644000076500000240000010160412536324501024210 0ustar philstaff00000000000000‰PNG  IHDRÜ(3.Ÿ:ƒKIDATx^´kŽ;rFƒÌjI×Þ–¯Ïëð ¼ ^†ÿÞñ•ÔI¥fϾϡÂÀô$ŸÙ5}Áxqüû¿ýë=ÿû?b?¾Eìˆ#>þgÄGú¿ž#bÒfü¹ö9!6ÎZæ™ãÉ{Ø£ëeìcœµ±Ï:Ú¼oÿj³ÿôy7ccüjòöžu4ùð{™äý{Ó/Ç7ï ›âûïÍÚýù=æìgÍ îó.Ú›uìIÞ³wøxÈžg›u´yž=2¿_|_ÖÚøÙËß{¬ÍßÉ´¿8Úãg­ü|ŽÍˆÇú+þöÏÿëÏÿŒù6cÌ#VŒ³rŒ­Àà‘¾Í \>Ϙöð[ú@€!p àÆJÚ´[úÙ˜üž-@ 3¯}ØG{íG4hÒ1V貇y´M_!bŽu ÐW¸Îú0ÚìU0Ùï0ž}ŒÓgÝZ€ƒwÍqø4VÆñãqŽ{ýW<þxû[\oÏûcQlƒ‹64–Aã{Yñ)'ðœO!ÏDÊM‡À*¿»kÎÈ™ 53©{œg€/}Db hƒ9Y/p2l°Ð8Rk9|´‘^ãšÁþ% L—BT]|Ÿ¥Ð® H•fÀ4¨„Ëõg(¬ôÏÎó÷tØz’5ÿŒÇ·¯£±¥“nH_¤c.Å€-È%e±§ï —6ÚßH¡cªœ ˜§i}>ýâN´ÍÍ|Ðgnˆ$ˆbÒ6)¦P‡¨¥ fª>ÒO¤ç¢à*W-þcýé+ˆ›uìeÏ ÀåG¾ÀÙÚ;fìµcñÜÛsÃØ1E")tám§AÙ¯)Ö²^à‘¾B¦G¡Ðb" LÒ8*£QªÖ Ñîac¬>×m…) $@‰ÄÖ´@“€#{‘:Ïž”HHàˆáКjé `KÕF~'°²–= °)Ȩ¬ç ÞñøãëŽÇ …éü€A¿R#Q2‡¥8×M%Ý·VQûDŒœ ù#Eò©Ô¢9”W§b²g~¸ì*±ÁÉ^’% 2€ûy hZƒ‡«Ž‘¬Sµø€Óáˆ($ïl$Ÿ@E;‡ (Ï3{ß;ß¾E¼ˆžÓÜ“Œ+°‚ìû\ïL‚È–§[³ü¥2Hß ÀÅùɤ‚Ð× 臨¾œå:®XúÀÚÚ‰ÅÙ?Û­¯€—žõ€ X€!=‡{(Uò­ <Ö?ð ˜÷sG<¾}‰ø:#¶0ÍY.ÌMЫ˜ÕŒ#îEvËUv(Oañ¶šÐ«3QØ<…X)7m` Sõ\ú$çIö0†Q¦°–2ïи[¥°ü6ÿpŽêΟEíoD@eLÀá©àð„œÝPmƒŸªŸA¼"ñîëpá(&P™ÿ è Ûµ[sú½Dß.­Y€éó­c"m®…?;^5½»:*t×~;¨ÄÀ<Í6?ŸZ€®q¬‚c¸©òû¬Çý‚ÄÐBw |2—ÚfÄ4µ9S@9oOj,áYü¸Ê;âñOOàâK0µC¤ [Ú Ó2 z&mtòpñ­ÎŸ©•²&k»zÉ\åêLîL@H¾äsæÕ/Ð(TÎ)ù8®Dš!M*Ž)ýcê¢"Y“€ê: SÆì}ÇÄ–ã°d`® ²Â¢y­ˆÇãq]ÁKÖiDôS}9“`@ÙDÈ;ø¢e‘ g E|E{XD†CI :Чç:÷q ÀºÌ Ì£^*¼ A}nc²î àÃÎn¾PâÉwwÈJÐh»e["¡€®´7LQaýuÀÔ¨ŸaR`Ssìˆùîûˆ{8µPî±ï”¾Á¡ÒÈ`vîÞÉêmã g/•(<ô]ΛïzvC¢òL%™G¯ì*&r±¶œÄ°¢sn4m©Ø d-àl¤äàûêÒi+&Ì| ¦ÏψYBɹ}¾G<þçû‡•ò^îiwHú0_'ý¶ Ö&ç9íg> ÊpRH¶’f1”²}þŽ×-“½è˜Ë¤À*”n}tøÜ:Š›Æý¨[ qÌ d F8Ú€b±º@t¬U E\Y+ëqª-ƒ} æy?ík<9;Àý‚r‡+æE£€Í™´ ÎqÚn-—¹QŃ€Ýú¸ ; Îf 9ÏiË~·hºªµÀÀºÚه̹tó'ëä] “¿Oà4¤ŸK=€wOEä=â.U3  óñ¾#}¸ÄA$E°çoª™Ñª–…!Å`NÎqú{2˜ô¬VEã‹9]IaYE²$%“‚ý°uß¼"¡ÀUÛ°˜Ì&BFÜpÚex€ÓK˜À(¼[¤ªžn4Qþžì LåLö\óøáþú+⊈•úÜbÓÏeÁ£ œËas°¦ º(òG"(¢£»YàFwI'??ýÿ}°ÝŸ#£ ßJRo€ýŒ¡…ˆ'u—Ÿéás©Ó[+]:²VætÞÛþûQW‹±1] ½ž.žÀýˆ˜i|XšOäý"Ýa m“,…?Çõsúêd×”Æ7ˆC¸“øîMïî¸v‘ÙJ^Þ$"a$TqÖ1¦ðŸ«ä‰6akS×Îy2~£qøßC¡â†Àè’Ìá4HWƒ«•@&0š´;Ï;În¬ZZñìÕÍ 4¡/äËL•Ž õ!|Ôþ>mG’Q3Ih<ƒI[w^{¿Ï  G·Ž@dZi8¨¿‹95¹!JÀ€yÖ€öáYÕñÆS—8—vqÁMèW’À—õâŒGÂÝãœáÆB - K'ù@€#\%¸Ò¶Ã\­~D[å'Úº&qö.³Þ!MÈ0€âL„ÆèyÛ¬§¯°ªjÍ®ˆÝex œë|ß•ø¢¢0Ry©ÖT`7èÊc‰Ï&@´ Óž€Ñ#­.æùI΂ìÐ5#NJ˜n*V˜ô€H»phzVïNas8e=ûÔKÐÕI`ñÐ'`1ŸT³èàÁºŠž¾ê§R p]*L2¯€ù9-¢ŽQu× {‡‰…›õ¤ÌXîšg ÐîÁk¢Cø"1CÇisncŽ1Æ×ˆx<óŠx˜HdS©'§™õú(tg`KÒnÜTì1}ep4y—z¬EPñüƒY>v´™ßŒyß×¹#Üò„R¶ð8œ©_³OÁ‘jIù‚ä%ÎÚ!q‘M€³Û üéÐ.7M=?Þ¯Îãos3dˆZÆEmTè¦X>õ¡RÕ¥–K@ÌçJÀm$ÝÀ- ÄTÕ<'­O6mÖ$ïD6”Å‚Q-qÚËú x Z9än#—XIf¶·=Â?:·W¼‰d¸×y¸¯_" Tr@tËŽö[õÒá¬òé.3  ÕXGßÛ2/ QG`ÌËKdb8z5ë»_¯ÐXò(s m7°äéKsšå ­"’k‰¤t—‘ƒ˜”Phê”ðné÷ .žK`<’÷$ "•\%d¼òÖ3V«™ÀVWøê³ÁëµÛI6`0³ÿ–,oÌù.ÅvýÍø6pxvÀy–Q“3mÔ¿köÿÉËô1 ¸®rv™Þý_ø—B)€rÆ“„RíuÈ”wpj°yüñåd|·fÑô×{ì;i—Ê:ÙÛœËvj:wÿÒZák¼cæ¨Ò,ô,ó›f/á€ËË$(L“×o10Ï{Y ‰ºé™”g•<\˜þ«‹jê3·¬¬–~ž®sú ãé¿ÿ]Âå€U‚ôDß#mƒH¬mž ^¨/äÝ …‹õiD†W­«a.í\ÒY€t/ဠÕWèEÖ7û„ æ<à ÏönJdLöõYÞ¿•@šÁ‚¥=¿½®Bz²jQ»’6ßëgœ _®LB•cįiß+ÖºUÕ£L¬gªKbù*ê•,Ú$‘lL*é"¤jo@qS£_î$òÅÇ€)’˜ÈÔÙoîw¹T%t.«lœiB]†7 'ø‰„ªK#¸4É«ó´yÞçùXŸ%é¤~„äÌæu]ÌÞOÕ¢¸tb_•ÄÊZž>æÒMæyøzꔥðåñˆ¶ÀÀGÂkÍ—Ves#“C¤ŽX–[ˆ6áÔ!K£ƒÒT×þøá¾.Æ âÑ l"¥Rq X¨¡?îçî¸$ÁNó¸ø2½v‘ž8;àúL³x!aèW–5$–QþŽªœxåãá}a~NƒYë’íñ¡êhɃE9 np˜Yãym¼³¨W%‘:˜<'ðÇÃÎÝ€T˜ý1Ä8l@M‰…/O•r"i†À’D§ï¶©>2çâšß¯äg4w¤ªtR«*ÁmÒª€ÔYÃ3¿‘fYâ·Xªòë}Ö°¬r_¿p$¶ÂUWëâ©Áè€n)6cN%gf : 8öü5~ÿ8í·¬Õ~FàØÏ ?~|Ä.#”v£ß:d™ä«Í·ã׿Ùy_~ç Ī>¥Ÿéhøvm?sÿøÜUÀxÆ‘âŒçg7žzÏCS]Š{'"ÐsßFkœK\_²·Ìs£mû®!ÉÀC¬—”Xˆxg–V,ªÁc,—€¬y±lCž\êç9YÓ—dhÊ-€î8NŠË d˜&¾¾ö1`ü‘†™ÉúasÚÔ%éËà¥1³@%ôõPØ@…×¥_ sh|ŸÈyžÀ}J,Ç÷÷ïi·ž»R¸˜‹ÂŸ±ÖëYáž8JÛlp7¸” ^UÌS?¼fyM‚„`_¶°ü –óÌïáÒÕ :—¥-%1ª|î«í¨¹—p206ï±¶2 Z|\l*ßïë)á~|œWæÌëÕIWëóœSZõXv„Yûš4±Ô5–8oL{½UU5VA›ÄM¶V×>锥ªÅ$îŒÎ· D @u†S¨m_/½6ÙÚŒ TˆŒê©€NŽþ{HM“ã4,w"2ßF^³ÝÁK% ¢5KnRi–îë(:TìI =\ìñrU$M:Ò°7ö°ßÁ«3üª©º\{~*$k.I'Ï>7­€É—K:‚=¸ôJ¥Ð&j&ÀÍ:ù¦•x¬ïKí¹ƒ&Ü êf_1wg‰,ïo`b}™YàµP–ÿþ­[èx\£Æ2úEþQ(†Ìõߣƒ1€Šd€<û#€ží‹«ƒï—éÑN@EÖŠ”°Sp#U÷yÚŒwœB°c%μHŒ'gxÝ$¤‘ˆ]ú‰e©ŽÃ¬ëúá;³–½.éú<9:€Æ/î:ÏPS:Á!• î!pÑø´¢tÑÇ>ãm P3ÏR—y2½TàÜ+qDëßâJÿQw‰ÖÁ"gÅiŠ ¨O @æN=1¤”Z“)h÷Ö"Ïur@ëSx4¶̩۟өF_lÕÌ÷/«•~O$Yß´‹DÒ„ÀBŸy²Å )Ú¹q¤ì¢| ã©`ºsÚ…ɪ~|pI†ÁÄá¤|¦R®ÏB°qÿŸF /v}Pn)æÙëÍÀU‰ÿ>’ ›+ŽHŽ´–I`R`h'eà GµÇ—Ú“9-D©tÆÓËñ9Ë•Þ4“»õBü—ššÖ 5`¦ÌêN s€W`¬lÃÖµz1Pe’ª©ˆK»©»â¸«èÕKº> ÈLŠnãS×_ÇœÇbƬèkV>¾wÞ—Å=OÄÍô Ûçà!™|¬Ž°ÀDÞµxÆ®a$¨à:ÁËWœADbeþôB)\ÔšþŽq°‰(÷{Áö6#ÜË+øURBD’^ÞûÝÝ¿¨cº^秪¦ÅwiÛ ýÅú€¤*Ý땹)$ÌÉž <Ÿ£½¢•t€–ô}?²¨_¿ž ¢JŠhtø |¿K.™sÈŠÈ‚¾ §ûÜ2óúè/j\I>ÝîKÆõ9¦AÌí6$ƒ õÿuß#©ÓÈXžéÝ\»LJë—5 ðTÈ2S;_ÃxÖÖs¡Zóÿžñý•Œo5S`Œ¹èÔI§Ø×K9`ÚéÇLr/¸Ž±·¼eÇ-wvþ9Ý.û;›ë©‹‘]1¬ùtSÖb#pvT ¨Í]î¯_ÌÃTË2Þ·M4%¸ÃgMšfÑ$óšõý ¸SÓä1D•,²½Ic8sùÔÕI@À¢'Ð,HÛ]yƨ¨7­Ò ÖWYYT :üÂÇ|V9YÕMÉG‚»Äö ‘~£©mH|æ„Wõ‹q]ô²RñØ’s½Ô¾¹>S[ ó±Â€€ù)á>UÊ/€ÓyÌ™“h™E_O`òû­å?DáÔôÔŸ>©Õ£Ÿdô×+jx€_/ðš„6piØ €Vþ@¯µù©Z.¤aV•zçÛûèx%ËêqÌM$s<ÄW™B:¹´ o¬—€—¨VÓ3¦—sVݳîåÖ„òäþã*™µ¿Ø1Ð![â#*2¿û[Rå¾ð6@®€(éaõq°¶ªÙH޵ōR]÷/:dfÕ-Ê't}å6Ÿó(&×ÔB EÓ0 ×R(eà¼,ñÂK¦ß‹Œï_îÛEÄô4¨°^R[CÄê­4ÓÇ©Ùj¦¢æÉ2ËV_ë·’Ú÷#`¸ È^}‹ùnLìþ­;`KôwÕ‘õ“º#™:ɾ>2Hw°> Òþ7׬ª µAëãµÐD*&ç8ÆMÚÍuÜß^µxË/|¿~·è4¦X¨÷½¦JФ”ù]K¸þÖÕ&)¨”YÐ` ØÈãM~åSgxGt%\Uu( 馆«lí¡tý=¼#Ío“ý rÄÉ£šæLB¸€ò×Ü%Ö­¥’q‰F´Ÿ‹æñx=ç cy·ƒP@®Xv¨Ì‰~KÛ@é%^t<ÖÁ®‘X©”ÑT «nµ÷àš`ß‹äYU/>VW2ÉøNS‘x÷œu¦Å(UMÚ½?ÕÝPÑF-%sR± øz §"‡…o±öÀ¸/÷?"ñŽFrŸl{|ç R÷X ³þÈ\·FÿÅdÖh꥔ð%ðš”3뤟ͺ,pÚ}ö÷*ã·úÓæÝÃ2Q~w³Êäf®¿"Ø$›¬S¨𲹩—ÈT™Ú]Ö¶ÆMŠ­c*ŒgÝCî¬ï'ãû-(±€Úlqƒ6 {ÜÛxõÍÉùšä[*Õ1š—°c°¨*µ%–SjsüÞ< *Þkàõë«ÛrD•®“N}Ÿn¸´/ðSø_{ŸmŸ©: îovI½!˜À¥- ^3b& ¾s Œ%9p÷ 8˜ï]lÒÏDbÕ0±¶…Žs–Ý }ú´yæÛ>c<ƒ*óaј™±Crâxö7É Ï#[°"+® ”]|ä¢ß^¼²;ËO· pIì3µ+•rzÚÍÅ9#h 1öÜÏýT)p·X‘Tr–J‘T…#ÑŒ&fvõ}Á^¿sMý†v¡d t^±ºK¼oôà²Ô.ÈßÀ”Y*™O²»Ðኴðm¾Ä–éݸ幯YŠqMïá£_¨}¦¶Z5‘Vb©/ ôw›«›d|O1s®åÀ¸×¾ð¼³¯ôêS騤fÚÄüûR€s—¢Sß+îõó7ûÜŸU¥ðÇè¶Ý?×I¸¬Î%O ¦]§å¨tSu ö²ýøZýü her±ÑG~­ôäìæ e0©ºxÌMÌß ˆ¬“€:Ý+·ÃáªgA$ð]³Œbé‹ÀtÉ® Zá<¥>b©ãè.ðW)—õ8Ÿï?»¸ó{S\ @Œ‰Š d•;Åïݶ n÷¢å°§6¢q´ñHò¶¼5—N¹µ’³žƒ+¹o€yöΈEM¤Q å(~3æªf’ˆÇ¡Ò² è3O͈$Œ§wzýŠcöÇÂÜ®æwçØÖUõ2’çÒLp•}X.B’gŸÏ6"ͼ Û>æÕÛ@«æè•„d±ßòò¿]wŒ[ß­—*!œýbͧÑä ÜéEîàv°TþEëòa|! );/ÝI—@ØÓúÕÞˆê‘ñ¬¾¥@gÙßÙ½]ê7ôЙ$+ð.ý ×_ @ª·¾è[Ý6ï?FE14´ôJ`怔öOÎÀš}MÎ}Ó%Ò¥ˆÐ-`a53¢§$©2_û0F9î÷Ͼ §CV¬s¾.š¢tìÚ=à@‡ZMŸ§E*®`YëP*8lfÜ%€éþªešhŠ$Ûu§xÒÎîjS7R¯O±M íÍ’Hs1þþ~„ÎOaÃ!dnœ ?~FÌ…•ƒaï…w V×ùÅ\ä9u@ÖKÀÞ˜2mý‘—ööÚ‘FНñ@fÚUÖ·B§kuÏôßåßW¿Œ¯A²¯ÉCξls•”s˜Â¥?MÉ„… ˳€ß@Ç3‰xœÛ<=‘ˆñøòqí€HÓQyšú8òÒÏÓ¬›”u l(³5 ´k½nJuűJ;à—…ÐwÉ‘\D¯ë*_ÿqÿßëÊ̕ǡ‘û‰£{›óOÈꔦ h…Z`ŽN_×gÔé<®RVÎàþx„ž=Π—0ßj  Ïp™õ­åØ*y&¾Èô|‘x´;·Ðí­5À͸þ#ŒA½Ü ž@z ˆê¶9`e Bã<¬#á¾jt³@c}ƒPðüÂö_• ý{f\°¯'tó0£ô<×;zww]“A—dˆ‡€õò§#ÚÏÂÞvwÈžÕ#-¹¬Å c¬¯Sm€ë¶ìɈ *òÌH]mળ9 s£É×ËÏYž2¶J¬[€r°¼ÈJ(]•)SM Þ륀ÇçBžÙýá^ŽÁ#=†h.‰þ“^¦8LÒý¥‡¾V%Ug7 š]~s”\,‹ûÑ¥ŒtÒ£CÄG"^Hk—j&s"`×ý)á.qÒ¹5 /ûd%:®)ér{6nÖñ“øWJß©4D‚•ŇÄàRfƒ»¤òܶºÞÈö›Q_O>Õ ÑCŒ.yX†©¤ld™ÜÙµcówÝòŒBª¹{ˆµœƒHŸy6vQMøj®Îs‡pÃÊØH¸øöf>#6!+±Ê3Â#b;/­ïú%x•Ä+¥œž«ê fù­J†t¨Mõ¯ &€ÊÕXú"}‹túšå½U-oJ*Aãiû¤˜”cÆYGß$•86E:§G›5ÒGJUɬťޣÏw_Õ?|'8äTó¬ñåÒ´¤|‚ä¸ÅI`FÀ3Èì‚ ÙßÖì?0¿œó$¥¬Ke1¾§@ã’öÒqý½Tízÿî w8§õŒ¥)í§¯ÿBƨ,ÒƒøÒzM¬S!jFûS]ôOŸgb:b7št‘j¾×ˆöÕÁ&VþOábØïGèê˜xvwmÂîdI®âžYb©X  ÄÊpž Bvgó%’Mçî¡À©dËÏuä¹oÂãÌ’4öù¨ã7§<‘bÅ™lž'ç,`PÓǰ0¹¸b'FlB¯¶Å ÖŸÍZKRøÚòwí(ÀE;¹0ÑëáXŸ©íIÔ~ž• ,¬ÀƒõÒUÃ8°HÝÖ €Gÿ㇪]&ÀQðrï;}=<›.K;‘XS#F«€;äÒ^àã Wª•ô™¯Z¥Ñ,ÔÉHÌm $Fú§ÏÈÆį˜’LzÖH6ÐôWÓ—bš§óŒõ6QžÉÍSí‹w!ÆжJ¹JÚõôr㈴BÓòb.Ny:0.º‹,…¢JsQzg<Û›WyÚúìòþ@]ëïÖ‡ºK?ž[œÒÌÁëГºÄ­\E-…‡µ x”Ð%ˆ–É É>æã¦oZ™»ÁN .`ÊÿÎ/2§ˆÐ÷ŸqWsÆñ_qÞšbÐp©&ãZÁÖæ<÷©d«}4BˆÔðå Udƒ¯L"d…Ui³d‘7·‡Õ–ì³ÌçW8ÞëäQ4úÀŽÔ««n9˜}©ü*ä/µœ‹+ª°¨“ݘŸ:nŽ 3ÀL"áÖ<.nÿ–E¬Bp –xðC‰W˜ÔÌjéëi×ðMÌn qS÷ê.Œ\E°sfÐì¼åkFe¼µzVEkÝC?ñ‹U–ÝìAZÏû_ÖÎfG–äªã'"²{Ìf<þ1È|HÙ‚G`ƒŒ ` 6### XHl˜`Á ÀK<,`%°1ö`ÇöŒçÞ¹Ó•Ì­Žö?óütNT·}¥TFFFV«êÖ¯ÎgœCH\²ƒÑƒm&p_àåYQ¼®˜ÝÝÃëòÜG1¡nt¶è|÷3pOF¨’7~ PHtt(ŽòÃ;  cÕàBb)UŽ¿p‹‡liµ*–”d³CΖ4h¬šg\åµLK9…湑Y,ôÊiíø>¶°ñaÖ•4H+Ô}©>›¿GÒÍÁ¨³Ù:‚¸îk˜BgÍlY·Ñl *^sŽrl1¦ÊÔ™ÚÈ8JÆ‚:üòŽ­ ®SMA À=`‡{ÔÑÕžoVõkú¤XÆ ë)ÑjVp^6!WË Aã¨ñ¡Á!BGȘ7U ‡mfΖCF?®w^ó”„Pjèi€¥ÝE] Ü-Êg ^e„ß.ôfJ剷éCvó‚Š€mù~ºžwa¥´Û{ÿÐäZ}£ÍHÐ&àÙ´24SÏ\ »™b·÷¼g[\ó5±j»Œ„ œ$‹ ÔX*å:žÃ:J»Õ«­›žÓºÀõV.××f‹eê#Dc—æt±ÖCôB-4ì`p¿v‡˜ ‹…j.h¯o[Vª!*óÛs¹:™H:”0‡›©a`Žª¢Ö¥ã¹»¹YlOÓÑES€ŸóàõÒ$  èa‹j¡ HVïœDx7o=×4¹2[ÀÆùAÒŽj§óhJº .Vµ©zxÜKÂ(€¨÷S>ÃbK¨î•·.šô»{óŒ´ëòDj@…9UÆžÙo8µ8¿Ñ.Ò3 ]FðŽß/AøìðÀ@ªER+‹cwmvÙl„o^Ôœû0V'‚Ä„!<Ïפ3„ÁÐÈvKÊkBÞ3—Qøf5OB“Ãï,Ð5$›À™×™7Âg…-›–¾O¦å“Øm… zX³4W$IÀIm”)€ÌÚàÞl£òòu%4­¦RonïI¢ 0m hŸÔ5F5J—F±sr€UÀ§m±ã9kqÌ]tÉ3g‚D½«ûª{ã}ny ¥}­=È€¡Ó„¶YErùÜ+Í¢4I.ò ^ ¦_-MRßyç`qŽÀ ‡š&€ê"ÀDÿ £2€Œ Ñ9xе#ïd”…@X$t«S5b9ö¨àÂëc,Zpi\¢I¶FÈ$îv÷o£ ¤`q? U.)Ô?A@õ2ƒÌöNºÀ¤Ñ}hd\ëœ1m` å é$hôŒ$Ü.†Œi+’`¬ãQg&X¹áê½Hý¨–š`…³D ß¯‘d³ø—šº`S+Ꞥ¥Æ€åò ,‡^:2gtÝ£ }FP6­ÎY+(_óqER@¥ñqÎ\ ޼4FLåqMË„L.G¥ROð «“p‰|KŒM”–ƒG/w¡¼,u{£¨–pë¾æìa|,kn!Ø™kÎÁ² „l¾ Õ•æÛŽ^Ô"›sÒ"˜U¯~Ñ3Tݡ݌àôzUÜÏKÄÚ¨*VÚo™!Ÿ+•÷Û~ì\׈‹ñÙ¯#,p½ð…Ívjâ c2~áÜnã|n  ¶)œGÕ¨ ³êê`”†:ˆÚJº<]Ó»§ë 7ª*ŸKöÛlç÷¾Öe *u,¥»IÌK nÎö£X' Ì ¶y: Â<¨¡ërÇ  ÌÇM‡˜!pÖO#ðý®å¨~°(¢žKº>¾¨<'®³,U d3$ù˜†òk¨‹˜îB0·Aäxo\™nNMxÛÔ×WÔÜ‹b”y‹(ªöÝ5Í ôÓ´A(-"õ-PmP#ƒç§ãìžR$¯†ôp#yùŸ0‰C€`r±¹Þ3^Ñ3éŠs9· \áw~Ç%Ülm’`¦µ|ÌšŸdÑG’ g¦b™]ºó[; ,ë}€ô3z(751a¨$Ú‚c¨¬ÆP¡K€®¾#5›õ¤Ï%ö@æ`•DeÔ=ª¨-Q÷åý,‹Y¿Ûž³ŠÀùØ"#Æ¡jy `]:LP!Ç]€°–×ÁV  hºOÐXiÌPÿŽ“{›pV‚æ!’d€ŽåìXN£-7,h%*ÌäŠÂFŒ‡ OØ.C`.—h\w=—x¸5³ÞGo•Ƀë œ”f±ºÈy¼3d d/A5Ü‚qær–¾oÜ“gãž±_Ë>D%œšiQGœ ‘£¹µè¶£ö_𒦽½uf <3/oG±ÚØ_ÉÇ®÷¬¼X€„`®2žB˜Œ€Aªj×Û§[pÖTüîÇ=HyÑy®“ÓðMî{§ÉN”¾f†ºT˸t6*´±èÉã.ƒisG\ó(Q‹aÔaIj²8Û»ÛÑÔР°Ö.óùŠ€Ê=s·´.O«™¨j¶pRQ5†Z ð b®6$\ I,R‰ÒJ÷‚yWµ«panžf–ßl¬q9)ê)ÐèˆØÐHržMÀxΛ:ÂæÓ*J2ÂF”ÛjØyFIÊ›5'‘]$฿lîHËÇ„Usš‡08ðá-ð¸–óof¶ÜܘúÔiBÐBõÓÙb-66+¹4 /๰ü4á’„ÖÐ`‡®x3+ ¦´(ùY×´ÁXτ㮦’ðÞÉ£ƒ…› b Òè³oq¾Ô. ÓLÁ- > m UÏ™Gøl©f[6\‘TÃVH-¬‘Uð<(°8O¨žJ·qÝUµŸ¥}½wy#É>fu´-HÓr¢Ž{àœäCÕhÓµ¥Ò-« ¯ožíÂSÈÔTF8,¾^g÷½ÔXðàqžð­Å¬×¡R½I%IƣËáj.¶ÑÕ…2ÿ-O®ÿÓX4† þ ž :tH´|BUA9¯u"¨B`òtP¸Wê¬$BÒ¼±OW¹†ßõY3I˜-ˆù>8úæ¦ÔêÀ<>v`¢u[u.¤ßK2É„¬™µL¢µ$¨HÉF@3I(Àõ!ïA.ðœíQÙfL(P Õr^…꨼yÔÓÛ˜vâÞ6Öuë\ã eî <†NûZªùH÷òï0'œO¥"ÕN|ïÙüºW)‡„»9·Îõ4ÚdK ¥ !k—FãSµs~Ï«ˆëå[â íIÙ5Æ”P/…’.Øàj€ñ7+”n 䃠BÝH4¥š 2—nØÐÔJ¨þ'ÚN öª°Ìv£×Ïx |ôv>;‚ï·TJ³6¶_¨Ë¨n-7©:ÆÐ5?^3Ø ÅF|e7ìÓºÙ¾=Îu1 6¾2NE{ŽÛ„4fõ­Öë,˜©‚j=! Ú<±ñá¼î¨ÎjaºÔÜŽgº”µÀ;žÁ’—¾¯û:ÅúÖ=/:[^Ê.àîT y¡I½8HÀ$kp?€l½W~ç<•LãdG¼M»e$uF·Ú[,dnœ¥=¸·!ýaLGJT­ÍæaI½;ÑæžÁv+WšN‘5‘T}N¿2Ýowëu>Î쉅å,á´ D0]&µ8#š@&[M’Goª/¼\yZÁK¥Ë››ø¾dÁxß$2*à—)—àÒ@‰Ë(•@uЖ• -{%ln°`c?0 ŸZN÷s1#XÍŽ 83ÈÖz„³EŽ–q”n¶˜ÝtµÑû×.v}Òàm!ˆ¹®«)êä,-}7q>¾\"Ê•/@ZcâteÙu9»)N£OxÐ •Ž— v ò"h,SÈ]ÌBö¶Î¤×:.O—*Á¼Æ’|«~´™ ¼2ÝÇs|';¾[ eOI¢vF6\l28>5@Ð%Òóó$k&Ìö~´g®²:œn,•lÒH’Eö¨’b&8YëÒ`Ó¥…rÕ¹†R=on!iÑO‡Œ1µËæšÅëÐéèPýè,!d€1„Lsœ¯Ýl¹Z$}`b ­…àäÏV¨¼‹n{zæy¢Tcö Á›{°¢Â0’`”Ìó´2‚§5qûdF»­©’öQ’bh¼E;µÃ‡;î‘ÅŸÖ¹9éý໓ÿ`<„˜âµíèp!dŽaãrnT^†m± €ò!\'Ãra PºÕ&8e4§²ƒPKª/O vûèšÎ&G ›ú³€õýØ?Þß&ÈØ^Ú‘LëÙ$.öõ+lÍ­_•R!+­kZs5ãÐ^-r5ÛÌnd*¶ îjÀ#P¸—G0J ´¾*µæÛ,82:±O!% nGykôÊ3fè‘•4ƒ‹ü!jge;¶÷e­6ÿc­eŸl–½Èjï¤>ùüçq.‘±Ñ€1?§Çzµ ÚåÒJ°mœ9§ñz§Êî5¿Eï³Âfss^ž«7_©]U`€Rê•CìLPÍl)U ½œô£×¨»_N®Ð”TF‚0÷®f¹£±”»·¶@*¹nGm®I UX7k1ÛÆ¹Ö£ŠÙÏÀ ‘¡¼ê8@óÒkú; WέYÆv«S³x`»0k¡¥Ôùà&i2͘hù†Ëáé½Úºž¬.ìû>ðëvsý!{|s:ÿ¡«wW»ºùw{ò•ÏÚöô±µ¶X±í,éZérФuóŒ ©‰‡’l¹Ês‡Cëî¾Ö‘à›Î ÛPsã,x›þöYÀ<wÍ­bÁ–Å78¨ëx~ØËÈ üÏϾ°¾«½i¥6kµÇ  ú;@‹ !€ù/a°ÖC줩T\@%èR¯+áÃõe’Ð ï°a~^~À¶Ziì…þ©}ãõÕž|ëKwŠæYÍ|ôî·÷¼ÐíÏÿµÙöÄjmVÊ–W ÎдÓ;4 H®T²ÝwN°Á¤P)ÀÞKbs‚v½&̘ IzÏB±¾­öÖöüΆkyL£w‰ôP‚Ê\ºä5zZ¡½)ð] a+„k€Rÿ^ÞÕ`Ž–Û{7«½÷ƒµ¯sµ7_û‚µëçÁï×ÿïó¶n?i/¾üQûæþÖÚu³ZŠÕÚÒ½\ì+Á[¤VYƒ„âœìÞ¯ôòY]5W«4#I­õ’g;Càí7I°z–Xà1®]1³Võš‚L÷´ÆÅó–qö6\7»:™•¯ýÝ ësË›VJ³ZûúR•p 7ò ÙYGº»$&ïQ´©­Eé–>KXc8g\“8aw¶îzQ°_ëzµõtcË»Þg/~è3öê—?gK»²mDµûðUÖRì´ÞØË?òSöÆ¿ý•Þ~ÍZ»²Z·‹!ãÔl„U$ñvïù”I®øÞš}.+šËÌ%<êÁ{¿W<ׯçôwÖuH¸Óó¶´v+á  áàÀ]œH·Õ­ÃóüðµOoRCT+â{¥iNâK6bGø™KºÙçÓ© œÞî¶¼ø²½õôÆÖuSL팚Šôu³§oŸ¬?÷²=}ãëvu=>ºÄi¿DsÛ˜k;ɰÀÓy@·%×:v/ÕºÆUÎ69!¬Œq-cíÝu ~ðÆÎƒCEïYöÚî}º3$¡ÎURq„ tîw»–6ˆ™¶F14Äé!êëX×ÏléëI¬ÍK^€{Ww]ø¶­ΣékØ ïÅ{ðž³çTΛӀ{\[Àí„JåüŒ x¶.¯ã€F_ »ì©Xú‚Ý¿žàíN­‚äÛÆó‚M@i<<}û·Kðù ÔÑñc#›OÂA`Ym‚§Ž£ $9MF·›"8ï[pêì>·¦2‘V—3pÆ» Ó¯"Ùº,Ëd¾Žíx,'u÷s×Ú!éd<«›ç,&•Ĺåÿò`~ïÅž¼ñª}ÿruV1û·*eßÀ{µV{üúW­÷2 ÇJ½ê\ÇYLëõ¥€‹;WmsêÜ:`9 €ª$Ö€K÷dßQÚ­åpOû&©ÕÃØ« “ôRYïa@VÇyÓ}½?%íGžÍ±F¯Ñ·±•kÒ_~ú¹Wj}¦¢Ôá!x§1ÞÏŸÖñfp¸uH×cÎãž\ügЖ¦sã»dë¶Œ{Uk=£97®wãÊ{ O*Û+ë=l¡§ŽžÕÕÛ)ó2n*ÛPš=}ü†=ÿÒ¬>úQ{òúÿX»º[ˆêÙýzú¦½øþŸ°úô?ì_þ«ËõÀ2ÿ×Ó9]óÌ9u>xhH‰Þ ¸çÖ£P­ÆÆ{ަ~pŽïaë®»ºÇb›“ú¦+ ݈Ê~íé¬ýÚÚ_|ê¹Wúvc§­êË –Àˆ¢ç4^=tæu•Zt€P´Þ€ë›?ªž°ºOÈLJ ÐÒT3®ÇýY¿„Æqk©=~í‹ö?ö3fWï±·¿v6È{vlgØ^|ÔíÕý›³N_Šä û[qºô>ΧcÖÈ1W4`cÂV’ƒÏrŸŸ`‡ x:´>ø‘ášmèݺž÷çŸ|î•ÒÏÀ9"©¤Cð$@Ê&;HГsT@,{@$mEÕ:Í/‚/…­"1ÎØ®=Ê3äÁ®²ã¤s{Ûʘh¶žžÚ_û'{é}°—~ð§í¹G/Ùó/¼ß^zïY}òEûê;°­7o³Ml³RŠJ3¸Rç:“ªâ!ê÷ÍÜÆteÝ8Èu â 5gǹ  ” ÚéŽ÷'XŠÈ:ßÿæ ‹-Vz·u»¶ö™gÀmR)%­“*Ï:Ièž#t«ÑnÙ«õ’®c©%È$嬅°e ABv¡Ó5­¹4ΆkÎõ Ìƒö±±’Vߺ•Úl;=µo½úÏöÖkÿbýÉÙÓ×?gßüÒßÛkÿýfýdud™„5QŠÆ%•~’|—è¥%Q@¬\•ŒæsTsƵ’Jš¼QâÙƒ¨u>ÛK¸?ûÄ;*¥ÝØ6TJI/Â#ȸ…†q4~AõüÐ=h-¹&@‚m@­­™Óq-Ș‘T›oCá8ªæ*3³â²l…³®£oÊÙf[;=ý¶½õÆ×ìé·ÿ×ÖÓ[¶\]Ÿ%šv mb­aýs×ê¹´ÇxΣâ¨NÊr<¹O(çs†‡=ƒEç JIǽ ÷kõ€^!á`ØÏ=²÷z åúAUpr“<5z¸váqhÎÍWÿw*Ô½4«sÝ|÷³¡Æ%ʠ˦A¡žÝ¬ [Úm¢rkí<¶~·; œÏ‚G’B0iÀL¤ßlžPJÅI°½2€ÊÃïó¬-JSØl6‡±sšüÉÇßnØpr£œ5m ACÞãp‘:ITu¦§öZ¥-Ç£,Á§‚åI5… ×­ËNK›vô2>§"‰‡ŠË{`Æ‚3d”²Ùº“\' )ZtpNÀ¤ê(AT‰‰L–‡C™ÏÉ^Ž!º|Nã´mÏ€ûã½ܺ—py^Ÿ@›ÄŽVfŠTI%µ1…’ÊI°Eóôh2½ÇlÀ†#«…Âkåí0—€ Û ž­ƒ*©¦‹{5/éûf]à@j˜Ño8ëù¨áÿa¥&YLþuJ_sö@Äëê½ D@9WO]Š©WöÒ¹á§\íÚÚ}ôV­[E2ñ*°O¤n&®qíO@`KRŽÏ,ûß%“Ñ"…­ï]ô^zi¬ªÅ=èÇÎ9‚¯øî¨‚­tØQ,«1¿¬•ÒA´èÁÒºˆ©LºÍ׸B¹€c€ÇŸeŸ¼šJJi$èr蜄ëýÚ´ëéÁ®mÂÄ®ØuµdÕ=6-O+ó΋ˆÎ{5s¿YØ-©(Ñ µAôLÐá®öa¯•"Õ²˜ p•0§úÖ £@2½f©®?-ýñ7µ®Ì ‹¼šq|ôò•JWžiN*>$4za¸jJKܳe;¯ÓzÝÒü«ài±©ûË,>¯ö‡¿6Â[ÕnkB–o­ ²ú©"B̓ª·h=ži|†ã|Gö¶{4lïvÏâþÝt%Ë{ O¤ëûÖiWщq6ªKR;Ï'ÍÅv_Ÿêj¤vÒ1“Û…ÊjDΉƒ3U[„Biɱž¡]—Ùl rG u+×ÖþààzpسB‚M{É£JÇíã8ñ<%Ü=Ûh6I,^Cª!Fðt–tsàéZÒd“Ê(Ø(E’àцB8@WM ص¸aßé9¨n±WS ç¡ÎÑy£°Á$l . )ébó9tA"¼=³aÃ-'%Œ ‡TB¦Z—ÍŠ2oÖH¸[UÉí³@6ôöfß6—›WŠbpE` 6SHÀ,€n¬…#sVÔ]Gã~TaëT­;i]å¼q?Øú"Ždà¡B©A=Ø«j~r{_kÆõöSÚI7§DQ%bœª¨ÔN¯Ž"€.&Æ?j.F gîz‘ 9•^:˜Âdv‰½ÆyÎeχ€ÍáëFI&x\ a˜Àl3€ÆÎ5‚ »5Æ.¦#Ø=æ7I?w„Ç:@Óç%Mú09 Ì€æ~TSZg¥é ¸öt•.×L„ Èx-ít”±æR  A-©[®ê­Ží<ÎŽ«Lñª¦€xûý_½M^ÞzM*'s2xiWµÄ®ÂàÒë%°åcµÇU R‰Ž©Œh¬óFÜ?‚YП ÿÐáÔaH5§îù€ÚfiÞv÷dï1TÀÀ±ž†‚µA쯖8õ¬Ìã´y³°ã3•vsN‰Vt»¶ö{¿rÎ4Qò²`š7)W#G›   Ðõ\’µË%çÔ¦}f±ÊhÝ]+0`D›_4B”Á, !ï£î=k¥8ðÆ€1vÄ/¯`Ð}y+@•”Ôœ˜¨ *\q½"ˆâ¯•N¡žå€–šp> 'hƒRZNÂè¸Oÿòp[¥›Øqð$R,ó >X’áš°IQ’™š\° Ø’Œ¿Öy” n÷¹'Ïb†à"¤ƒFŽ3Q,@æ–:OžtqpîÁ0_Ëvϼ¯Ø*ïkn”8,×Ö~÷—Î^Ê ü„v]®f æùè4<˜óÙtv@¢¬½gñëlŒ({ŒŽ‡^’/w†èš1ªjU0Ø´ ÙT„=ì`¼øûIO4¯„þF‘òÝI@Î?gÜ£3¥t¿è¸å,©Pÿ1ÏvŸ×8¼w³t¶wl®µaSvs5ú7Ú[º>¬c‡$+ßѤ Ì»qQj—Éù!sÿœ¹€·ž ]tï81ÀLuh/U]¼:u¶ˆØƒº|ØÊZ—Ó8–³Ek͇Dî^WÁuÛH?Ÿk“m¹ŸïwxU÷K4x°ã¥»9$dº=hŸúÅ[•ríp¡—EÁä‡ÃÆqvÍ6Qµ°ézQq£ê(iwÈ iF•’y= p3ææÔGya›šÀÑÀüÆHÄ|DJõ(—ÔC`™cži×iÌøb©~;òC·cBÉ|M™Í1*è¬- ×~çä¥ÌÛòæñ°–ÂõPØx.û40>?„†À’D£›žÅÝØCSV/Ç]Šü‚Èö¯£±Üð€,Ìô Ô€–lؤíG'J‘$¬PýÆTÝÀ>«´Ý¬Äên¥ÝI5Øy5é*̡ꜻDÜ¢·9›NªÃµµO88M›¤Úw Ô¼w6ï»®£m¯ZJÝ€IUÔj£l4Bh3;ψ±"ûÍ穸 =` pCR¦x°ÑñÂ]命7`¬EÁr‹ÿv~/J çáÑEŽiŸJ·¹D,á3tŒÅ–=p¿ýóî2ؾwÒ‹=Ó2I'¯hÑü>+„J0À¥ØL÷pFޤæšëB*‡j‰<’T-±Áøå ¥cMÆý•ÒMPuÍG)cº'53îy®pº†”X1 ÷O‡•©œC'äp¿õ—K™ÁF!Õ=‚fœÀ6󂮤!€ì¸HÔ¹ðYm ¥­¶ 2´>0œ½ ¹Ãð†›œîu‚¨¥€W€…¶‘Z'gD÷öm?ëÈ…”ZJû”¶]‚úŒ:3n7™×õ% ¡“鱓pŸøˆâp—æ£*J¨vacz/å¤2ZçºnH½Âž4H7J´Á’“— jä&Д¯¸í½sGéÑwŠÜé„„sp.èB×ék¨ôLª–ÃkˆL÷ æ ½)…) uÒLôaçåÒ ¡†Ù{}¨3ý.÷›?÷Ü+›TÊÔARè]$tAC@ ÆkÁnYZ ÷noÚqt²èÃWÁOnDìHðÕs‚îzB ‹,&Ç@2¥F¥[ÕØÌÕ€`ð”ÂÁb·D;Ñ ¥%UÖ.6Ämã.èË%Pu›¯!tŬL“Xo–Œóû ÍæTLJ1^WÙŠ‹!Ï‘ÞFÍB–:p±6:I©O;÷˜lÚó–«€’˜RÇ,­ÊØt:“·’îÿq¯ÇõFjŶBW)Ù(‰!ñºè©*÷Ò-’~°Ã¿G¡†2€«×Ö>öa©”€-—^¤¥N:I ï—H»} èpOv÷  Úm‰úØ™ŸcÛ8wS°UQ-í’zþ˜Û†y$ $Jטï›`Œ ¢Aª¿ãÓèÓÞ#tS…–mì<ÈE×äÀt?‡érÈ”«\J+CÂýÆÏÞ×Kµjs‡GÓx’Lj†…¼G &˜UJÙ Y~#cjEsæï <¨† h笠Ï̼wÒ…ºÿòwH*'µ‚±^3°qµ@ ³ü™vÅ{‚Nêžœ,u!!‰ ] œG˜#…œñÇÑ/,á³,máÖG*§Äç®l7fVj]›B…C°®þÂk©šLעЉ9z)¹ITcDRÎ]o” êfü )uQð™ÆVÙ`ÒzÆ …_dí¹ô2Í@¹µŠ&4p6žû¿òÏv¯çó² ®mö‰€Ð˜ê_Š¿ Ž#(g‘ä‚ñ;îé9­§ÞOÇÈyüÿŒëŠ\YÇ×ÚÝÕ3ÝÉD3#â0ŠšqÀËCø ‚~ÔG?ûƒà#ˆ•yqð‚0#% $éº,»+U,ú÷?ÿsÒ°©Sgï:—Þ{Ýÿkmqý·Ä!qQë“O:µçk¡1’MXðHîªÇǮ߳Ç©6]~ß„+…ƒÔd Az¢¦Ôe½Ù:ÚpÅb<ê ‰B߸9/"B° M ý?)0×Ôs m";\±?Èã~o½}1˜ tßê߯¶Q3Çk—i0›=îpGTb@5 Jº&ÆÙQR¡nF_ÏÖ”OxKsìêOÚgM\(ºZ’RÓý Úí…ÐýÁÒll§þ Ç[2Q2I .¨[§oŽò së÷l@sÇÿ‰s£^Þ0ó›3XWÁ‡býâ;5+¶  9®o\£o„R÷¿ñRžä:rŒö¦E…¨Ç‘DÅó´í€!!§QCiz'ÏVWj×}_KÓepMÕíûTä)}ðTŽ»»HóÛ¼ª¥öœ‘yU Z ¯’€ÇŒ£&¸ ˆb‚†÷°¨2NÚÞÇ&1Vo‹±1Ô°^hn€2Al”hpjÆP%¤jÙ¿·X:5¨ a2·!ÑÁyÂtÒÞKU»BÁ¸Z7’®|.ï…óI7Otôb³åïÀ<úÆý^¥Ÿv$åñ±©”2€=7ÔBØZµ¤IAbçöW*}зOMfV8Ó ¦P;€Ú±4R$Šª‘ãÀéØÇtÑ=€gð4ù]ã4Ãà#k‰h&.mÖý ‚Æ×aU’.vfd-ÖQÓ•¦K~vkâÄxsH ¹.Ù]訟§„ý•ð 'B6€Õáï&Q×Ræ=‡‡xÌ&[ˆPŽzÕ£W_w:êMH2J*J7"¯û©W÷1¹,󿨒#ÐgBQšÛ–ŒÏ`¡E€èòF)òææbÃù$–‹ßÌç“ñsLUðâý¼›j˜.ĺ!¹Ú¶K”f`Mb›Š› E^â2±2 CØ)ç=æ*áp¤vwÝ4a7…·2Ìéx”€LÓŸwŠ„Ë“â8“Bärtßcò ið• Ü#ñ hM¸6œ*iR\ø—eÕ9_˵QDŽƒRm«˜öÙ´PmV¿Sµt×lu¶‚* FS}mntâmñ]ˆ3µŽZia€ðâÜÓø1u[å˜ìG³¢tº óžØ(ÑzÒXf1˜Ve4µCUÒž –^ô2ö8xî jÔ,á»)?ç Ã%¨ˆÝ8SÏRÀ×`C‰tMK$0¡ çr2ƪD×Ç¾æ ¥×¥[¿†Ò.zŒø;²UÊþQ`0¤˜ŠGk‹©ž»d›bÔðˆG‹¤ä¡MOÕ€÷¼ÎTÏ&x‰Aé¤yÉGâB¿«ÛHbƒ“„æ«ä ï§ÒÍ0Úz´Í@´M«©ØkA€II ›]:™ò¦ÕL„»ºià~€ÁP ëy]®]’ÃH=JŒ ¿`ûyU“÷rÒN’H•– #fÕãj «˜ðÖIã{|¿®|Ö9ÔHоO«p™Äáb¨š®ÍzÑ œ6‘ª“ó%ÝúªþDLe>±¡Ü¯º…ƪˆØà$ûEm$ .,6|B²ª°Îa…g":'Q¼6á“2qA Uª È[¶Ô‚*ŒŽRmò4@avt6Qªyq2=`–Qͧ¤­ftÝ0±4£²XbKñ2© PiJ…÷yfx/»àé„ Ù'Cfž÷¸Îë(aÔ_vœÄÅc6 —ª$˜êsUÊ8Â`!+p^œ—}¾¦þ/‰4'‹&2Œ5+J¹>^lƒsOuTÐá Ø¥‰Ê™,¡xmñ2nâZ¤9!\ö‡fþàCPò„²ûí6•âá®:–q@ÂÅè-5q7ŸäêÁÍÌáKMŒmf×c} ØÜ0?»A EAÐê Z`ôéÇdb çá÷ rÀéC1Æéa |bT$_«¾XåʸkZêE2M•àWØYU“Iï$g‚™||èDMg;û"¯*É VÎÛx^å"¼‹Î¬„º[N5¥†*¢‰o¼s±T5hYˆtSéèYƒ'HáÃN€—n ºÅ5œ£Á¨Wb;L`O‚ßG» … âž@ ¨.¦ ä‰V±ÈuþpI¢üÄ\¡{9ËÇÆž‹@ŒÒ¾ãž}\“06>ŸAœ<àîùgŒÎBÜü¾FxèóRHùÁŠ%!P‡ ±È1Aø¾dÛ邜v Z X¤kU4¸¡RšjLJP°;e‘›m°ŒTét! ™úúlÆ+j p)éy1@ç:4eÒJ$ÆûOIÆ ×ŠÅãä³ê9³V=cÐZ0†€;ð^lŽ0uݱHôâD[jÏðã*l QÔýÁ Åóèâ6ý{¢ú™èª Ä„j–KûºúŽÙÕò¡™šÃMú9Ó\:U‘Ê?«^Sµ‡~$• 4Íf$f#{8O`SC+±ûxÍÁ½9 Só½ç‘xJ,˜%”Ç(×à„¬õEh Sºùš„²˜Z}옰‘`DåRo’÷2“lm'È÷uêd¢a9uÖ;f¡¢¯`«Ean´¯ñl°Ï­–’Øî«©Vö9–QH¹7‡ø–\VpÑibÑÖ¨ç±iðÁõºJ|ÍÝœDNÌ8[ß®cHˆ&$rLÞ5›ZX;çr¡v‰çÈ8.tÙgsj$Æ¡:ŠtÁqAÏ@¸€™‰ùƒ”Kf ÐÑV(ÅÐ}аðÞvž 6s±„;Blá$€yâ2ú¼ÁèÉy"ÇÁE$G­¨Rùo FåÝê%15L0<’®v"›Ú\œgÚHJxêþ7¹….å„Dë`^†*a¢9í¥¬ÔSéÒsÙcuÿ;ͲgÌà„wÀpݬJt"í,ÒÈÏKc•ÁgÒ9"Ì''שN’Ä©¶T Ÿ é/H5j‡S'Ô9I»°HX˜|fnë¤yl¢‹ó4ƒãï=¾/fíhSÏ&¤¸“¬T«î¡ôº걊˜G"w jvIñWÆ`±NËxÓ9wôlcza…Š¥T*uñrW§Ã# x¾TE‰¤4£'«?ƒ×ÇLýo®§“æÓmô7ø3[;éA"ð6•‹uó„§êŽ/•Îçå3¹t¦©q¼OOX«}†ñBƒ† L¥:gÑqáb£k¸0 ¯é…}1,txw¨™LŽç‚ ªT¥œ´ H„v¨„Ê…ý÷rRê.³ú¹Ilªžâ¾&æ$‰PM8f¤ ª©ñ¨)·F¿‘ ²Fo-Â.çšA‚°b_Õ./ÜqÛ*³ÏM Ã2ÄËz†éé€vŠ=µR:•ÜHuz~šMaâa£Q¥DÞ[õµµ¹ÊǪ>FmJ›•úJDVŸç·ü2ô‹­Ç;†éßyLy-TP5Ò2.úùÒŸ”(^•ïµGì~8T°U•'.`߃à‡5œ ?6±ý¾œiÊ‹û ÛÓm[>…¨'P–ñ6rcW‘8DÕñynn“XH¨ê°R‡Kåa\ÆÈŒÌ±oÇïoú¢Þ<úÝÛ~Nmtj¶ñòN¥9uCX“LPBSI÷ X¢ EÉ8»©]9›Ð똋µ étN½‘>0¤Âç¬ÒànR?†. Ü‹Hö08?‡ô‡}GÀn™@zÉdƒÎ”n$Nöž¸2*kÿ™‘Q»MÔæuÔöuÄÕqD¾éÛé ‹†2æ³Í½d3¨ W•Ê©Ú%Ó¤è⟂ì pY×Ob ‚XP2w ºvêt÷ļìЈZ¡a4vD§»Œàe”Ë‘*Â;ßÿeœ¬.öcrŒÈžD•ö~¡‘³û‡5ûâI ѧ‰ŠjÉkèÜ”SMÁëìë9֜ʶëPOø‡T7žbõRúØ…ù(/Ö¬Àg?ü|îRMªbŠ@B„õ4Šùl,fŠ÷ˆÅº’66ä%¥5´)ñ´—Zµ“Õ­xïãOãéúÃxüè/ñôññäª=~ô×x¶ù(n?øuœœ^Dì¶{¢‹(ͨ›×¡Ï}$Fv¹Bt÷©Ç·ú|–ÍBi dQpÎÛ馌•°±‚}N;]ˆÒï}KgÕN3Çy h …J‘K4—#¡ú˜$blЧ3É’D®óV¾ÌH=ŽSjÔef~²2‹a·?úY<}¾Ë'ÓÕ*ÆéÙuÛ_>ù[<{û1QÛÃõ’Ïæó» ÖrѳéJ£ó7Sˆ“Ä:º/fÂTv=¡a¦Lž¾àtA±*­2F)7YQ€Ð®@' ‹ãWF'í&&vŸ<°éÔ‹Å:°9U‡“ßÇJ|6ŸMì÷éöµ6½ý<šàj·Ž³‹û±{÷“¸|ö0VïÜ:¬ˆÝ›Vu}nß·;ÿ$Îοµ]ÇÈ´¡¾‡!ž%SƒcÁHmÉ·g^’)O§ýdq^¨&ŠCEÓtˆ¿Å:u>ŒÒ ·Ë x|€XŒÊãTp—«©ðŠ}äÞhÛè6mžì&ªkE‚VóGï“qð/—28)o]6¯buñÍX¯×{k—wFF¶ú»Ø¬7qz5¶W‰«Ú2 8ïˆ ù‘V#PPx¨:Z¬K‰ã„ ~«2‡$®*“/üŽÅŽbŽÀL|U5€—q M“q¸uh¨üd7Æ•:E’êmK6­U8‡w… ÐM%‚_”ŠOô¶’L +)HGâÈ­J’¨€gìßR¥D•*¬«ÂílÝb=f´;„7bÖ¦j‰ºí`;p=¾l²Äkà÷M¸ýBÿ,)nÍð†ld&Gãm>³z±à¸Ûy¸ší“U¬_ý7N_}çw¾Ûõ‹ãè×Çûsçw¿³³¹üßþ7ýr&$aaeçCÊt ²<»AW€'¹Y š%¯ÏÇ5` œc2õrµ8¹¯D÷9ÿ‘&žË77òîrÆY2„;)—)T×âuYIKQQðN†+üC¤½p«nJĦ2–""¼:¹\»„ ž9M¤ùI¼xôyÜ{ï䊰Äf³ŽÝöº½ÞŸßý8îÞ®¸üêóÈ““ÃO«ïëÔEö9{ÄÆþ4ê4è¤r‰½©ª\÷÷¼çqRnŒÏ½ç¨{“Bƒý¥Ð0…–ù¸ìÚÜ­RµBkŒÐÕcÄsD:£YFbAByb(Y`¸)Ɖ†$×÷••UŠi+ßb¢iFÅnODµy/ÿñ»¸wöïøà[?Š;ï_Ù?ˆo|øÃ¸·z¯þùûØm^Æ'‘¹‹È$¬ˆŒ•߽Ǘh÷p5—#é–¦,¢29½WeV)¦VËlhÆw1ã*(¼äôPBÓ~XD4ĉàV!sÕ`ëž……”‚ca xªºƒÒàg³!ãè§v˜uIYÎÃö½©ó—¨ Q7ý9'I°¸VïÛ`' û#Ž/a18U(/£l¦Ro¤Ü<ºÓ„©06òø7d#,ª-öï$=‘=Þ}ù|Àf껙Π›@ »– ÕjæÈ:Ódïú*¥ë¹*+çÀù*Èæ{åwQ¡µ)Z8@e\ÛO|ôXª«´eœTäL)\»<÷ýÙƒT¥Z{zgžp—三m×'”˜†8EÆŠŠzéqÈqóÙ=§˜U²ì=Y`™Ï]ùÂo.`]‰Ï3H“QåC¿D“ÎmÛ…“ =X¡áŠU@,3·Pr…ŠnKYŠfý¢a-)ûjÁÄêGG +IE'èØ¢#ž(ÛËj’¸ ©æÖ›ÃZó$%{d‡ÌŽ,å,;/ÝÿOàq´ Áou$*ÌoÓ9ÜNòž ÷uæ]‰} X(V¸X\Ø¿êYµ¸!ª J—FÈŠVš·Ð÷¤m«”­Ó7jQ¬W²ÝI°Ì9Âà5œVRÅj„Se‘qÕËxðá|A¸!+‰æ¶¾@(»9g’¡|c¸¨“hT3q.Hör޹V“ŽÂ`T‹»”Èh*˜XìÊÊð;x0©‘•¾% '†?ê¿B¯ç¨Jâ¤FM"ú…Þˆ£íB"+ Hèvž@ß>‹à èfîV(w:¸6€*7a1œÇ€·4÷ŠR¹n –~( ÷¢§±A‹NH|Ž ­bRþfú¥­ÜïYÚM¨Äð¥ø%Ö“PØ@Ã…ã‹ÕxH! ÜP—›4gÄ/[ÝžÝênF’àø=E–0Aìˆ 5ç£Ô ÀÙ;‚‹×Tì2’RÈ5C®È*6!ÐÚm¤ú©½“> Q=šmGƒ„$ûqU°B/]Ñ Éú’ªøŠ”$lôÞçgfCÐbÆ@Îk—ÕÌ‚çû;dvp™ã ’…Ò†@³e9Tù @c=e9Z?J7æ_Ês üî*åXE¾“à1Á¢ÖÖçA‚F­uThiÑ'né'FcOh.rñÂHXêû¨Q<3‹Y+ª{ˆóD{¿Zb@cØónGm4ªƒ V[ªz´mÓ¼2ÕÍD¸dUOz.[à>`k‹Ôkí $SÈ@a½\O…¿"±Q½ýT1õ…?¿¬B¬"H5tm³ÅPϪ^.—šCõƒoE“±n¾IÓß Í<ž)Áa¯Æ­=0e£ò&O)¤-€ àqÿRItñ…+9$~Öê2@‡0’! Â*Ã&`õ:Ç–^í4qD©[ˆr{½äŒ˜z9PÙé42Îdý—1°YºŸKGú“ºi–!Õ‚o¬q yÎ1vfã¥Tirô;1j Á U3بº&û¸D:º ÷2ÍA´ ÈH¶Ò ¤aÀØ“j3’Ç(^ˆoºV õ q¸Ú`Lb‰ÍcP=V$Ú(å(yð õ@G@QÕšÕ®T¼èjäë1ÁŒc¹Êr @Á¾‰X¨'wÞØüÂTuÀ¶ÊŽ»¸.8qDÂ5˜[Ý þ Ž&É£cò ÁSsÛ”Ž| “† Ð:¨×Õ Ç: ņî®ÞLß^¦¼gY§C] Quq—»ÜPeŒ™å¼æž÷'Ò¼Ü=RÝͽÀe–`8)Ô.£ÍÀ9$Nº"E!†%ýÆ5¡Þ÷';Á"S÷YŒÄ8h›PÅ7 ÕÔ0±•z|Q*åt-Ó±1 ŠÛsX€ãs<‹ÀæòŽR!óóç\JVQÌi^¹k/F°QrE{ŽÒ-›HïgHýâÂ/Ù¯3V ÕE|”é#ØýáĵjZöÎÞ,Ð+¡*´™)ÝØ#B=åši"`ÛšÐ,U2’ÔO {¢vJ¯ÃS¡VG5ÔbW“»Þi(^I¹ÁÖÃ]ž@2-¦ R@{Î +`ßA=Â9熗yöåG¤\HAó×JGP¾—Ìciû̉'r9ò'¨“½Üïa‘ìsmúó² IP¥ãw;P'#¸ÈœURœ'Fjë¯âZUäÓnɆ^l–Ïó‰i7¤_ź7|³ ¸ Z¦ì çÉ …¸©¸µ’*I qÝ9ŠŒ4 ç`YÜ/ìÐÔ‘•Ï Óá}ìDý’ñ Ž;RæÌ/¶Ò+ºCsºå*q6&)·”+ûÂ!/¹”Ta†xÛì…”¿Ž—?äPrݪ¤9¾ÖR<=èü hŸñž µzAJ…48çÙ¼Ëci®±D‹°¿-Ú#a‚¡+ã7(À)m¶˜N–þQzËE•r€Þ?¬>k_»Mâ"%UÒ™’öžèñb,S}a! ·» 0nqH¯) h)gãc‡j¥§7Ï€›@¾µÕrF ö™x,e»‹CµSÂ= $}ÖJç–läSAÈ} ±cà…¿±ñŠØDÕ^A3D”Ý,Y‰Çh—ˆóþ)7EîÈ«Úr˜16©”3eÀ2Rí¦šIu’ç'Ÿ Ä)ô8(HD‡4²rÍ„H¡+,< ¦Ïɇè ( »Þ´dU-ÌÎ-áúÞÚqǵ¶qØ€”ëòõövÍê/S†Q³H:°wÁyâ¥ÜÚæBð[¶¯DŠ3sí3s$×›1Òž»ÛP‚äô1Ž7ƃ{νãæe’t¼‘ø¦öàã_z2 ±7çtëå‚ýF‡IK3¾àPg¥Zí»pžb¼‘Èü‡^ۣΔ–bò· V"‚Z—ØÆÉ\s÷RcÚ¬’¼@NPç %° Ç zyœ9Í+§ÕQc0”yå+Å{ ÂR´Ì<Þv€h¢†˜5h=Œ¹ØBTþý9×ê@A{b'^Ú{ÀÙiÃz<‰kЖãÝÒÍÓ,Ü]î—Fû®¢iÈó•>ÿ—<•PeìÅÀ®|?Í‹ŸÓéâB,=¯dÏÛ ™#Ê*÷˜ü6Úm Ê 5ˆI¨Õc¡Rvp5>l‚_h„‹¯$Ý;ý™$z" Àˆ}uŸ—÷REƒ4  N*8 êíAÃgR¼¦ îöâñh¿ÑÁ¿‡ªøœæu_%ßNG–M¯§>s¥ù·è%jf«÷¥ýÖ lK‹k5•Ð÷K¥ýólrl€‹=±ÊðP"é= „ú(år Wcy¾xK]Êý>Ý1["s—l›‘â'Z©Åý¸ ç‘Ïm\d»šÓ¼ÀíØ½nª™s|ÇE³EÚdJÉü—¸\ƒTUÊ”²X²Lù²Ž¨‡¬ìVýw£*–ý€ð¾”Ö&t̵¤Bã—G#fl •ÒŸBŸîC9s—ð<{’–ÍsrÓD®ó¨”ÍIͼŸ9Í‹à‚]À6I½Šil R X$Ö‹|Ý\Ë šÃa¥@××®µpR6ؘjÕˆ´|(Ì‘cïý,Wª¦€ é^¢nwsöÙ¸ .1±7ƒ|¨g~§GóMàÿäçûi^PY1¹^z³Úª<ÓL:ë”ñ\.õ(g‰à¡ºË]ÂH2OŠ“¹CüІ4éå)í˜?HÕ9²yõ¾rF½–q›sÝÖ‚-ëÀ†D J·Þ¦¡ªÞus¯ë>p ¶d¥*ÙxhéúU­o×þM§´¥yØÁ©d)Ó6ÔJJÄ )g2Ýu"œÝè¿­¡Gnà(áÃoƒÈ´] }5:dzĈ‰Ñ´YÅFÏ^J^£åàôveö÷ºN-ÝDâéÖŸc¹¥ì:´R&`?6ɾõyׇ„k/ KÌÛ• QÜ`’@£"S2­*¾[ RʱôåŸé^š™­¤³R…aì–™FÀíÚWɘX€kœ1ÇѦuJwÇd–M Æ"}6PáYb7Ó’ím=Kª0•ítÑãËï~½ÖbÖÇ:h\.|€b;žÞÆxUƒà<2Úž÷íç]еºuHµWUYÞã2óµ³b%츺tü– å-äÃÇs°€Í&÷ó7÷I3Îô©â¼L°^ƒÍ¶nïâ÷ÀK„ê&®›Ræ…€äú©t»Þþëe|^"÷Z×õT¢½ÖÀDUÂÛt‘)ìàí£_Ûfª Eñ~}ßâùˆ'5)ö¢ûð 5À+òíX[VV¢1·.ö}bS«úæy ¡‡¢t<‘Z/…:<Ø(E-%z¶§·‰kÁQ‚ênIé;N%"¤úX¦l¬zßÞF>ŸSz3ÅÚž­YÕBn)±6êÐblR5@€Rôgèêä§@cGGì“AGuÔÐsÈëØ X^þrM:Ìò³<Ñp6ÝVO/»¾TÂäÍ%¨¡&#é‚/\ØÙ`éÐÁ 'ËheÝ™ÿ,¥a@Í÷¯«ÐÄ£KÁO£\ìö{3ÔeP%ÞŽÙªâQÞ‡ƒÖWž°AüÏbñf_«Ò)ÁAíÐ_¸\ÕJU]™ÅÂîD‹IÙä”aRl™*<„à¡ Ò\€ŠÃY·l3ç 9®L9¤³Û[¥Dlí‚c…jfmap=s†<ì__]¢$JUËË¿üà¥|Ùß®uNëýÇWß.I 2ÜôŒ¥õ2<›H1rmoM‹¬À¥˜9ø#G6þW삊m<ÿXØ ©c¼vñ¾è ¹ÇH´}›T(y|yÌlÎnÐp;µ!1k Ř"Hsiqy½š%Ǩ¯¾¯/ëå×ÿh¿}óf5ð¡?x6°È >¤F ušUË2è8¼iJè÷Ÿ3îé¯QQ+«”,Q¢W2«»©½T^rñ'Ë 6ñHÒ’ ¶Óc½«Ÿ¡€>ëÑÙ4¦+–P£_ozÜk ‰æ>¦.©cf¤{Æ¥ÀŸÝ'­Óå ÕÞ²f1:ûµ4Cl8Ò`cSH¨FèÖÃv±ÆCÙêcƒ®à½Õ®X£V5«X\'c'¼œ05²+¬Ù9{.¹­ºlø ©GðÐ5Zõl/%âsr|Ù;ðbFJ—«ýhÃu€{—ö#ñ »Í´ŠR[íã¦ä¶éØ–r½\†ïôqÄ©B7¿†/¶‚x…þÐæ-¹Å¶ °É ]—Hi\?ÔØ<á^qNùL¶Ã.¤mÖë³êœyc"Ø3Xïq'¥m7ö²Ø×SÛ®÷eÀ›€ï°2P^þùîu¿gšì¥”l’DlÖ·ÉÜÎVki9dìc_vëÉô¿¿ª×Û­/jeñfŽx*ÑWN OC #幨k!18©—t¸`\ðPšäåΚ1*lkë!—’Ý4i¯pbj¹)­yLº&X IrV!AVE€Y ’’Ž/a'ù J‹¬—dŸW+ó}•çrK3ðóñÍÐH; ]•ᕬ$墸Ç+ ù›ÖM÷TÆåoÝþ^ýçö˜?IÝrJ|PA6gtIÕFÚvëaýu×ÓΧ\n`¶jv~èî—¬’~‹”€·z.{g$²6äÆ6¶Ó‚Û×ÈY²A•È…ûúh>‡%ýrRÆÃH1ëbÙéÄj:§œƒ ûlXN`ã_ã’ ¦]Œ¦ÿ„z&!AE¥Ô–¼Oš8¾–èâÝm_³G:«$\P²,Y%m—‰'²í$ÚHìKÀ & Jm@€™ò%¤;Ÿy¡UÏ]úÌŠ¡ä*—! Ø 9]j^w6Zº›Zùl“³'£Æ×]°Ùq°«LŠÙÐ1D°êqÙE)ÙÛ_ šH ó–v½ßOÁtPÑÝSƒñaj[Ò‹ÙR“Ý] S/*cq”D&“Nx«È¢v»5‚¡% Èò^Ö8õ1yìãb…ÿT ÒÆœ¯•êüì©\sð›ñ9 3:CJJx4V·YºÄÙòN«ö[‘2lùÁ7J«P5º’f–ÌÆ¤ë…@—îb%Nu¡MÇЯ‹öYw©ZÇò{U茇¥@º§<ä}Î\'2‰]Æ9a\ÿdÆiFö œvÁ×ûÆ/±áZ`Ë¶ÃØWlÜÒÍ äÆã©Uð,ᇲ%³ðŒË §¹qÇ}JóÄéß»ä\bMö¬g¹Í”VD ÅäãÙé1ƒkŸSo‚ñ^ek6=3d¹Aç(G¤/¿úc.åþöGãê„tc Há&&^Î[Ę•¡LâêS‘îÚðÁ›Yˆé}¹XΆnCʸì1nrAG ù,¬ff¯åìph ]Ñ®CH ÇeË+±ú_oxÏ4yhFÀ‚:5Ñ+ "µo RŽÖµñS¿‡x+I:þ` )À¨Ç2ö#=Àd\íHH6î{›ÅA‰g\ñPc,NÆ ê ·çï3ñ6RÝïù>غ@+R¶:Û[1x-ϯ4û°ÏñãØ×jÓýŒ÷±GÔÉÓN—6Ε&î ‰­x˘BWò 2 EÛÄ eݲ&Hš&Ýž‚Ìôáîë5ª2:¤fâ(ÑkÙ3ú‘"ÞŠÜœÌcÝ“óÆx {š2@>6G¹`®¡\h@ÆÂÁ" {L|.ÉRt¾üê_UÊóXçùKŽ–Ù”4ßx–æãh:¿ ;¡Í%ó:µ1Ð"ðÁ´MA¸³çùpÑV$ ÔðÔëÚ´=Æ>rÌÙÜ<RrëÑøŠÛÖ'ÀVÎq6óXÒÓÀ,›3%yùª/ï6ÜË{*:Ö ‡±áPTÚÀœû¢õz$ âƒ2:0f_L!ÃÄfœd›næIN Jš½<Õx™*„\‹7]#@ Aºe©ÆqFÁÆc@nTIS=0uÓ)KVŠŽG¡Zo6'6òWfƒ*ši0´åäfÊ„@km·Ù㘠ls\™¤4„½­Øn‚Ú½ËÆáQM{a¦ÖPÊ8^.Ķù‚Æ»¹½3Ø8v"ÔIôtëÁ½©`\¶ËûÁçqØd®©Ùžyu¶qžé%5l Àž¤þÜ}™YçWvfÆÙhÀóR°”Heß¶>Ù Õéœ* °þ}ÈäÚ[…Ö€"ˆÖਪ R‚-¨ˆ>g›¿é2Ò­Ãäé)$ð¿Ï/ÿôaõJù´5íVÞzöt#Y¨/0¥M°gºòOfŠl|ãoì#w³£K›ÂöØ-”ÆUrÎcG¡±ý&8piVuÌv’“Í3Øf/5@ ç>sÈ‘…ªêjN“ƒ vŸÐ”&ôÁ$ŽÜDƤãñ ó@pÝŸóVõ‡ë<.ÀV).Ç«Á¾Ð&^XŸœ MæcVà3Æ6™&§ §mÁ&à÷TyˆÃáœPJpP X–¥Õú ¬7•²Ýÿ¢FB¥¤+šËÓcb#ö²)OÜ/÷䦊š=œ†ÖÈs(€ªiñ3 árLYѳã„m[^vT@Ø€M³„pãh—Q2çT–lY’ò˜®£.÷e¤¡ÄxßUÊýÎÚuž&ZªãÃäŒõ>‚d×vŠ*;‘@-tñ•Yåàçæ‹ŸÜÝå׫Œj™Ü×p P’^U›H‰ÛxŸîšFR/©YÚ¹÷)ÕHŽ#ˆóu: HZH¹~%c¤ˆxpž°*\UÊÝÞvù7Qv±ÑH£€‡9ØL°“à£ê0ëð¯±çé wÒ†4è s÷Öc0ãwcåœt9»Rú²…ª>=ìó`3tŽQ²šï\0AéfTfQ9OŸ| -B‰ü¢±È2™¡s•yaƒdÐQe#p¨jÝL;*°Axë…ï j\Œ'B…$¶æmØÿOÿE cq=h>g•ß7Çñeð°ùߎu—ö{ËÌ>6í}ŸOë´= OâiË™¤IIÅ C°õfŒ&ƒ®0ÞH$k8[E쪗)Ö7ÜûV]©‹jNæI6à¼L`SŠ‘0Õ¨cWhžfÎgåç<ÁFR R4dËìÁ$àá„|ŸOwÆa@«'”H¼¦µìâ‰ï¡ãƒêâgÕKìÎ{0?.¤oÎB§¤¤4¥ô#à%@seC¥e:LúE à†8& ½ýgKóš¥W´¤ä3AüÛQ9Ü»¨aµŒJ©H—mÆuÏRU ˜9›`V¥FÎCé~h]Æñœ— çËŽ.ùnœ )“攦F›fQŠe¯ãòž¼õ3¦yÕÄÐ\lsŸ9îOSœ)s’|“Rýô>6H$´æmEÎÿ\j1{¸¬Ý–k¥bVIÏw‹WMv@Pq+x°t?G Ÿ'JbjrÁÛvéf4„hë.Lj–UsNí ¶Á~ ¬ÌüÎLÅ<— ìßâä¨Þ!K¹^pI Ù;¯j°“&G ÕëÉVŒ¶Ýí€/Õ7H…)f㇜{{#ýÊ uÝË$©áÚ§Ó¼Z×Ôã³`£ç—‡ÇYTBó\ÃÑ£ÒMžý—ü»¯ÉË»9MH÷4‘™ÛlOlÙ¶sbðÜ2˜Ûs£™Ó$'#}¾ «3ÎSŽ‚Û˯ÏSÜ—1¹9™ÛÙŒrŽ×]ˆý}ž÷ä.Uz,í¸™bç<Þî£þöÿ{=\£Ð1Í P`…ܽÍ_ݸù³$é £“)ú i¦Ì±eå3AN–^†iÂõž}y%¨ô½Ø•“¼/ñnâšï¦ys8äÓ`3|“5 ;-€„iVBCyê‘?Þ°'#8Ú!ŠkÆÛn¶(ªñ³LÃà@Y¸Py¬:DàÝRzˆå¼¶œé:ÏcÆð{Øû6ÇQý§ÛªKÒ!ևʋø –& Q˱´ß¨çïP”øÌ¸óv¦1ç:6“í蚇$Øp ŽËoÛ¹“žcê¯ßg§Ì4æ²nÛ Çì!ÿ²š¹-GmŽ åæ9wðäù‘°€”g0-Fª¹·ÄÝ| +”µÇà÷M’ ³ŸõveiÇq‰-­ÿ¯‹ªI¹ ž)µ©ƒ©?Ó}MXÀJB^;?³iyy}’jÑYC0°Ø ±¬6³œs*2€Sº=âê€ݱɤÃÃ4«UU÷ 7)-@dÈ•¼nz$=ð8.ØN¾±'ê3›ûv<+?†CÜ÷ž½™é¬çûÕ<×,ÙÌ÷šèîuÙtâ1f¼ò?–©æno ‘ žÓ‘"ØvKɶMÞ $PgJ¼º<d'µqwˆc M&’Õå߆ ŸÑØù”:Ñ•›I‚Rbk& ¢Ÿ²Ö^ÿ€ñðôš$»QóáíKyÈ›µÙ×T>€X :ž#RÀ®×HÞAÊí­@3 7 düúlG€‚Ú7O›]Æ3ã\Òe¥b÷5©¥£‡rN^æÕª¶Ôû[›l²‘ZàfÅ€KÕ æ…sé–¹MøbHRãj#¾¤'g>Kv`ÎR²/+¤tìÖÄ,¼üòo›ÓdïЪ阼HáÿÏ<ý¦O€þ½×2˜É}äáç~cë)]7ã y” \ÝÛp‰€öçå3ÉãqM3˜ŠI"ÛÛúXÎ>'ðݘ‘Ð5{*—Ù°Eön$¨"P%õ¼#´ÖÐäý4´…%›- Ìd§à/$%›[·¥3IÚ%“[rŽ„ )–+8VŒ´Ès¨y3>ðRVÌ4¡ÒߦØ\Ò`BšWÙ°@´ësHÂ}MŠÞæ3®xÝÇG{§ˆeT&/dì«=6ì HŒ·+Ó„{R¼Љ 48l*×'f^/©#¶|¨š‡’]÷üþ>Ÿæµ°ž¤SŽùñX)laãÁ2ÏhFp{Õ‡ØÛ¾¶‹un&¥ÀÛÉ(u_„ëm¤žŽ—ã>ع¶ñ Zug•m òÇ´",Ûø[N½ žTµû.ìç%?Cš×ŠMUR%ø}°%8Ÿ_{ ˜|V!Gyùåß|ùÍYß½é•{miwÔóžú\Ï=¸a#Nujäº M¹-×âaœ¬—µñhm_/µ '%¯•?÷ÔÀ§ýÅaº\Öü›m1ßs{^imeÀ 6Ýw'GÚœeU[Æ ѵÿdÚ¯?>]ÕÖïlëܨcS$38}ŸÚ,fúÏÞG3fåþ”6Q4.c={{ƒÝ‡êg˜cë­û`Úd>ãþr¡—ìÕÁ†{Ÿ[Kç.«·Ÿ?‚Í%5ÇT¯½j×ûØ·¯kÿ׿ÿÕ÷öݯëüùÚë;0,Cjq;?/ÓbÊËŒÁqÞ6©ô”å“¥g/ßmK{-‰ öi)ÒtÂÀ¦ã’Uã<7%Kœ<Æý¶TVäÕÕê1«¾{Y$Žë¢J°OYHëîKÙª”™†1þ ¥A>Fù´ëÖ7/½öþÇÿûþ/þðo_ðòfÑm ¶–\K÷g›aŽåq³¿6©/ (€G:† tæ$ÉÕ@AŸû¿OåQXã¾½û%—#`oÊ@‰ÎeëHè, wÛ,ÙòXi&MªÚk¯ïßòQÿð—ÿý/qnB„øf›HIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qradialgradient-repeat.png0000644000076500000240000011712012536324501024044 0ustar philstaff00000000000000‰PNG  IHDRÜ(3.Ÿ:žIDATx^´Ë¯%9rÞIfž[5]®™ªêÇ] M5ä‘h)oµ3à?Ì€¯¼0¼`ï ɰ?$Ãðà…´–0#A­z4}««ëÜÇÉ$éÌK>žønܨ|€ƒd’Ì<ÕûCñEãùÿ*ÿÎþGˆ‡Ç¡ÔêöM)„W/·k w}¡÷‡íþGû}è×þ=­Ûµìm¬ÖÖÎ[_)ꌣO‡0ö©~Ìã«~7ø]ô·û8>§Ûx6Òé<›‡û¨~‹ÞAÏ»Ÿñ¼_ÿ&†Ð@3FãÝIÞ3Ì©½wH_Ÿk¿ÆÞ?Îú"ú0Ž~z}ø½´'ùéan ábŸGûúÿ€ñ7þË¿oWê+í}±ÿ·]Ýî·9A~ëÐÇûoMIþ]èŸòM8þ³â?þ÷ßÊ_<ý6”2‡zGL¼ƒì´T@QñÍY€Q@DGÆ Õ'm Ú#Eй œ¼P¶vTðÈüØÇšªŽ/¿ ú(÷\cdp@A (p†&D¡žN€0 • “1\ èÒø› RÌ ŠœŒ¡OÚ¸çgçiœÀh€óÿŸRjðýò“aMÌeÝù‰wã1Ö·GóÊá‹ýß~œS=†\S‡¢‚ @Á˜Ñ‚~N†”€¢{`XÎÀm€ÆÛtÏïen,‹3€â¤Ù{‚Gq|ß;Ä"i÷~-[)¶P< Œy€‚ž‘~jêí(·£u³ß @ŰcNƒiš¤,§|Ìmü»Ë~})pÇPëj 9|æ«ëîTC®û@!+EVެÍ!ƒeõÄzip<Àd` %h½ –ŸkÈÈ ¤ø½!,;ëhÍú2'Ò²Ñ^XðÈï‘­.`¸±u0¸bžô `u¿€U }‘—­! $€M,µ¾·ª¯‰ß,K/~ŸÊóíþõË–Ã|}Ârgi iÀÆ–¨kIpc†…!€‡¾œÑ&øäËÉ´t¼÷ Ê“Çj‰ HP^bš[/æ.ò8[5€n€†ÏñÈðF¬žQðõeW„¥#hF€§ }l Éêšðc#˜=ëÆNíé*úpôN¼Ã²¢©Áp˜BÈ[k¾=Õ°h˜*¬Nñ!´÷h T¬±4Ì€ý àiÁäkTNf}Ð.B@i›ÚŸ¿j\ÓFÜk§mìÕWxž ›åt±çø²f oê°Gµ¦,¥í5rQc€uØ£±ËmÿÒ¬z’©ì¼IÝŠÿp<ÿwàŠé‡ÆÇýV +?ÃËUÀ2ÂcËH÷€×o|΀t7jk­ÍÂ%ÀÄÕÖs¢^>.[^÷ƒø£É<^‚¦ÔI©÷+HŠ@ð²™øR ëU±ÄùäQ°dÑq–,KÛ ó‡@åa¢Ði ¥[Ûľ”ýÿ>ÚRñftˆ_}9@NK?8WJîpV±¼¯*#À îh€`ç¹ÁHÐû.ôɇ¬Y †µŒ - $ððµúûï®Ûw¾éÀ•Á²EÚ«Á½¾ö̲Üé';r¸hPa ZÞºÚKÊËï m;9êý^JŒ‹wN[îv b›ËÔp³îþ ÷°.g+€¢ôcÃjI ^Dèæ³èç}¦¶TЫ//õ~Þ %xN/ÛþÖ† ¥~XS|oOÛwézž@¸ÿ}Nç“”š¶†gIvpl®l×ùêfƒ`‚¶æ>{‹n…b@ß§Û·äÎfub8Èk·4kapŽ7!”+êç=Ë ›/~Û2á½4ñ~Ï} O%¬¯ã1<*1:n~ "ÏÙ:šÂ6¬Ai‰Û2–XV`ÍÇŽÇØ(xgé‡e¹Òз¡Ög áò2„o/`µÃöÝw½o¸7§¶’Ãò² $ï('ö†Ž¯îÀýá„ðÅsÙW Vè0@Ô—ƒë¸|ì–áõ’ ¯ã18- \+ -ۆй#€˜h¤}ÛGŠß°|Ñð L]¯I "Úì’Œã\xÿ¢ëì°½’Ƽß:Û4÷>¿4÷ýçÝ}/ /_¶•Öhñ~3èji°˜ë ±ûæ¶=7Éov(cÂ.î{ÏgOCÈ \ûµŠEýqD–|±[žG›ðbG¤°ght°cåj+hßM·KÌÿ}M0¸Â·‘ i@æZKE´¡½1D³¤í!´¾ÉYÃN4ê~'–`¡a½¦Ôž¯}LtµŸLXÌ Ž@y˜±âûÛoš!‹S»ß5ïùíq›”¶– ‘Ac‹Ú¿ éÊ2h#Ø  à‰cÐÌ÷ÂÛVòÞæeh$ϰ£ Ÿ/~+!šÂ´†ýbJí úF° Ç }L«ÄŠ÷w|Uð©Ð/@g Y>@Gm礻)8^ÚƒqD ÄîÖW Äîæ¯_v ©;ÿzpÞ×§«¸“ ¨‚HÏ'íÎŽJa@]ó5Ƴ9ÖMÉkîs…+ôK à¥kIû7(Ï*À3D¸¿`æ =-Û÷.ÈaQs‡ùÑ€-v!{žH`ð|Ñ[>¶…‹ÞòQÅT\¶Õà,˜Ãc©ž÷ÅnXËAï;Ìí¾–ÝïüvóõÜ\-Ëîiyè-'y šú0«-¬Ÿõ^}Ýu¶ÇìA[IÏ·þl‡Š±ET2GV"´ %|÷O´!d @§©»Ó·ï<ÃRÛ»Û’©=;Ñò“<¡,z³,Ñ›£C,¿£ê32 ²N­¢Âº0ÄÜÈÂ÷iA{ÚïËirÂ"0U$ cÕ"@`!œÀ!häMw€$‚O Àc\ÌxÓyÒ„=!ëqÝJÍ»•B€tœ'ÝŠ®'âÊ¿Lû  ÌÖdœ_rw¼ ‹ÆZ_Ô^ÅæL¸]ï²Çˆú Ñû^+—TÔ !- ‚žf Þ)Ø™,1X1“üõ57À5¶“ÖáöeÆT·cßV´u~¢%ßo™ „Û:€±µ¼:D¥Dgé¹@×ú¾«mÎÛ+1=†TñQøÿ7ñ›aØ&+MÀð^N;,Påðªì‰Þ$šèMcœ‚£§ ¤G^¦BSÃ|¤èØaesÁcÐÆ=£’ rè{¸ Ž£J(¢D¬™,ÙÚÜØaûüy[bå¢rJ O-Hhm !¼Y'åˆ\ikôLë&½-($€3([M ¢QªYüö%€hŒ‹eby¾#|Çí ¿Ë ùËRÖØf½ÕÞ1&K)4Q@Ř•2õˆ”ºT{JÀ9@¤’HM±›—¦IYÈD ¢]Bhé9ë À•®ß#Ž18d…L+’¤V%„ý¯¿§å)/ýœœ7Ç#‰qžgKqt„¥R :‰«Ž÷ÒMÀÕv”å¹$°6²t¶èMºÞIÕoìÛŒ„U†,ºŸ¿R€JDÊrà8àÂ_óZƒþæ†ÅîG¢«…vú—÷ÚÛ‰ î9„¦Î§¾Z»•zñ\âaÍ <÷%[ƒHú χ/!Ðà9¢8ir•uµÑÚð;1F–Žô>Ž$‰h“NZ3ê+ƒ‹¾+6üµ’%sí)œÞ“¼ ýŒ#÷¥n™ôïcP""šZïÿÝW3tµí›-âä>±;‹Ø]6Ky#€Á+9OÊJÖµìÀýцð“O¶½[Î…èË7¤¿9‰©JÓó„pÒ÷¼\:_!«bén¼%dIˆ`nt¹8÷3C΀#~ó­„Jýïdí¸ÍZ‹Ý\>ïHNXAˆwT;¨˜Àc9áx¥Ýû*‰ô±›¡l€Õ ê Ì#éŒXÍÓÒmå7¯¹í‡²‚ÉðJâëk œgÀá0/zFƒ…{h†„/†3~Fx€®NI;êïW_(,Á –…5ä\5.eNº‹Ý ¿y˜!SL©Ãc”ÃP'#êä¸×?4ûpÑ *…,P»—}ÒÂbx-FDI·„—€ˆ,ú¹P©û`è}VÕf~޳ ¼,pOÇ=ààòç~ö·/~ÛÁÌ j€ùaÂ7×16&ګѳèO¨®Ëÿá’æIWL-E¢0˜\1™“JCiºÚ²¢¹ÇjÂCË{J,7Œó®º×5„Ï^ º¤PÑ nñN°$†µüƒ§ÇhN¡Y#ÅÇ/NÂ: >·nø²xl•3…m‘‘"9à㳿í’ç$|£qô—ûFÛXfS §òä,”#²„ácÁ[ o¡rh »{´”Çð°Ø]Uf·èjëº?#@"63Mô B7,$êžDXǸ{h÷eáÅÔ-Ó"Ö¢¥ƒgåE4,Ž-(y H~Æ8À"]ωHA¿cñìRè‘d„÷ÀÙâè_*~mkÙèß1r†äˆÞV‘VÓIg |\!ª6æ m—µŒ,Xr0c Ë»îBwRjŸüS{ɲÃÝ`<•¾¤œ££¹`|¯oÑüìp+#œ r²ÁLpÚ'*m/[%XîˆQ¼¯:ãì©tJŸ@Öw`k" ß`ØÐ loâ‹Þ~ò(;WØrÙá[ &/d´<7#èXÚKŸBw X²Ns«ö«Ëî4Ém¯ÅÀùrÝPìH5¦!+,„ó¹sª_ÒzT%‚GZjâ³æ1 ܰ„°2¦­%åÇŸ¦Ã ZåÎmá›Ë2(8Û[¦aœDoÃêÉ‹,I0o‚”¤AÏü¾X¨Æ 4·h;å&¢ßHfÅ/Æuò,„gÏ·¾Ý33Á¹x3„@ðõ;®j\teçQô. ᇙÁ†÷pŒ°OÓ.â¢Â³µW;ÌÍZ…J>—H  pÿ 9ÿÌC §&{'³@d ß÷+/‡Ó—X:Ñ>M‹Þ…ÎYùCÆÉJ-¢§t€ôý+&ÛeËYS3rÚt4 Õ>QÏèïi"Ýváûö¶Ñ]Ø¢ñ×_RʇÄp€‡¬p·²s2„ðfI ãQ68÷|»Âóß‚,p8‚€pôQö7Y¼¿í¬oi£¿’ 0ÏÊöN°.®èMAÊF–7à Á»ŠØ#R%žã¼Êì&ðXSSš± %ÐÔÕœ—šT°¶Hu¶€Ûè Àu.†]¹Ã²‡b=ÿàÊÎÏ×…µ5hyö©>ÑÁ½c‡GXÔ¬èR dýøÙ žõÊåñ‘T4Æ *áp©{+Û› ¸ÚN“jjpˆ£„‚e|¾ëi/Ø*F¥©éŠÉóÄÙÝó ýð‡cƒÅnÀ5Ml‘/KGˆºtnyt8æAû*IH`ÓB=þOA‹‹†.K¸RÉá0ýÊÎŽŽq#cÀÅ«- àjü¾™Wçd›s£Ó¶µ4@b$”ò³*,-Ý×O®Þi¦v*ÃjWL† !€~z®Á-mÙKÂ6‹Ý]úêI¤oŽúèaÀM}UÚ€ÔN¸/¡W󮵄‡àßÇ `§´‡iuZ‹Š,)b‘d¾ÃcÙ$‡#çÊñNaZeŨížîöo[:ÌÏîymé´ïƒÉ)w΢5ç½ùî}ki©ÆÈ{¨ú RCð>‘'²ØüCÑk£¤¤£Po•”‚Àö_þJ-”¸ù½@¤Ê—›B7—×ChW¯Úu‘vúE‘@q*—1L ßÛ!²¤VëŽÔ €Ìr|~ÝKÖ&®î Ú`…Bº-Žp.nî×>2ë›óãüèJ¯#MY=Ãb1|–Ó(îêrex¹brRãک⬱péþùú+h–µÀJNi¬}Òîo¯›UMIjžüäØÁaÿâZØÖºJ-H*çIéÕ²JAkv¾Ή«A¹øóÁ Ú<Ç‘K£cœ¯ôqOãaÜšpQ²ü=ÅoÊú¶"M á›c&Y"Àt£L¹-¢³ L ‘E³$Ý c­ŸCÈØ{ˆL黣ÿÙ"‰âòåó(tà¥-}%÷ìú¼¦ܳwÇG9 uBÐ.ú~¼pä„að!Ç­å¦#‰1Áílò"¥Ð%ÄÇ€W™-ÀyiÈÚÜLjß~Ö7 ßÑ>LmˆÞÁIÍ™'mõœ,o!éj À5¦î“ÖÕ"Çš@k8D®®ï¯i¹îB÷³]èÆØ£è­°ŒcHØ¡æ1DzP=K3K£#ëÆRC°öj†nWvÆ5g•²Á D”eiA=bvµ´8§º ×Gˆß á{ ß#(ú™ËºDï`Ãï¡ÒÚæÉË( ËeULF,+KÛv|ÈÒ“Ùñl/:á눽½|Õ‚Rv–%ê§±<ýÎ郶Øá!µ*; ¸(‹^ÏXt6x¸ÿ˜ã ¹zÚ‚ÁZÍf8Úž®á”g)dÌ¿£I"ƒ”ðÍVÇ®1¹¼D6 -ì/…e³¼ç ÏsÅd<ÚëjØâž-Úè·Ë•'ž Áô@âþ$ïR–qJ ÆR»,0‰¿Œ@†¢O« @ÄÁʦÎ iˆ°´EeçPE-’¡(­— ÎÕS‡Wõmaá¿Åebôp?ûÛ¿}‰`œ§jTÒsÊ UìûŠ%zÚIr蜠©5Iœ(eæ€Ü³¹uyrWèF›a„‡ÈÀ|ŠÝÂÝvá[¼…–‡èC›<ަ•Qe0Ê¡Ä9—H¯feghxXîŽEi ¦õª;³Îb·Ÿª#€sö÷{—>‡xîe}­­9°ò,bÈqší@« 0*& ‰á±ùjµÁÿöZ |“ÈX(`SuOð< àÆ³SèÀ]CøT€Oí­´ Žv^1ï aZÅ€IéwtÌñè!-çP¯·û£‚@øeÑÉâšÖOi%ÕAûr¯çFH˜ædGÃÔÙYßþ9ß­‚vb‹ÍLošg§ã8ή˜ @ÇŠÉIàŒø®¨¢œ€ò;]œUŽN C‰†®­ÁšQÙ@ôpXWR€îïÌRµ+*m PÉrNÅîòAÄ—õ (TÑÚ¾¹?P‘%eÈ çÃö€öΣ£Lp´‹†NY8O6³ÀIô~OÝ4`–8÷³¾má[Iz›}¢]ЕJ–³Ûž57•—lùêÕ½n`/]MÀâ¬aag!a‡ΟÏÝù1ÆD^Mhxc£Õ+±;Mj×PÇd„ªö™@´ž‡kåÜÔ÷Y–yÔeuXYé@Ž{§²³—«úq hÌ2ÁÕËŽÅtެâ_øö³¾yžäD–@|&9€,Í«'Igw+‡ˆv~ ÊJmI¤ÏŸ¡JJ2%ÃE[SåP6Q±!P€“H“©òy*΋@%¦X&–BáZÍ: ¹úIr ¤áù®F>æ9‰«…ö]® ®`’ H·Ná‰õ½ÄoÌ#ñÛˆŸô„o/Û€pŒ$ž§Ìí¨`4A3¬"e€GN‘a=Îv’„[¹,ÓÔŒN„;ÿ®½~Õ„ò)Ÿ%0äÆÅm×7î‹y€ ¶øÍ¿ý“§ù§ÏÛÓf©ê¥*P•2–É{ð,eEœŒÖŒ4:*6ë‰â ñÍÿzšS=†R¦KÝÁbXX‡\ ¢Prm®ÜL¹WFA³ë£`Œ&t¨$ áë*СŸª;+Ðà9E\]´ŽÍzGüãÅoBWøFèìÁG—Âû¶*K²Å¨–¼[ÒÓPôuŠNÅd€ïž@XIئ垕R#ï›Ui#ïyîVq{шq1‡_¿~2Fš0,´~X)é7"TÆ1@åÄ\zɬ,¸/ îÊΞ80f—g0**t+ l£¬>^ü¶#,| ¨h#iô¥¶”€®y€åÞNÅdÕG“ æ* ؇ ÚWÍOda!CL©=¼èûÅÔ OiQU¹¨%!Y4´9êDÝãjHKy(3\ú‘GåÑÊÎ5ûB¸]Ý™u»ËïG0ü<¹HiN®ÜG‹ßÐò,ᛳOÍ™';†²œÆäQ—5ß?(/H¡³áRùä«ºÚ OjêPŽÀÕÈ0Ù¶£!ˆËœ””4°0žö+ù*Â÷€F«ÆIæ81—J°²Dî]S¹wµÒyTÙ9/€‡å‡ÑÒ,|5NOœ,؇ñÛõ,‹!Š3u˜—ÔR–at„oŒSÛÉ{ãäQÌCYséG†·[1Ù»¡«¥BV(”³¶ƒ¡€tK'PŸ@FsWBKTÌY£ÄRÞ¢ˆP÷d"8ŠaÄ>í5CëZVä¹ âs³d)©Ü;D–ˆ••:' .}Ì1úÞ©²spDo– ¬{XH€#ì,\þœaõOѱCºÐô…ïD`€œ oz‡…6‰ÝÝ:Žçv§(kípdulj‹³"ò–• LãÒRÁ9%u¾kq8Ìã5MΠ*¦“C˜w{’9¨A²tíNöD‹:;<èÜ»ÐÞ1ÅhÀ6¼“ªßÂi\WÐg—OÇ\¸æMxlÜÏþ¶OcdXgÙºA °Hì†0Î2å©ÙE]g{sv÷>é±»TœÙ «$–R¥ÆÐÝ }{ɤWJ¦lnõ¹ÈPœÔÒ³-™!M$臓„¶ýïÿ4§r ¥N¡ÖªR^°·;ííU4¹fÒK·T8ÙV*ç®Ý‚x1–F9óâT3²Å}Áœž8Õ+™nkzÐÞÜäTÜûú187]áÞÀ* ÎöœNmu4°\h8Ç mã°D 6ëõý|@WìíÃŒýã²´ï4ɾQ$¢V^¡qû#›{–C=âÖ†Èm€(À¥·k9< ó®”{à/¢MÚpîz‚ýÔíMÛ$wYâ²u»®·¹o• ‚ÃÙ€æÐ;0×ɯSm#iUÁâe‚«>>€DÉ/¤X&@ ‹æg}Ãj™Â÷4‘5#ýÍ€”ãloŒ™pÁÒ,fŠ ¹þý“GÓB¢8,„n¥&ÙÜ_Áûzù:„o#Ú2»·” @³#O)bC¥ÄÂë7-Òäphä6€õù§-«u]šgï0! yíËÈPÇ„€(JÈîº` 2 ¶þçWzöíw„p£:\’<-èwÏ͹ØI7UÇ­MIðÐòòÍ Ó3éˆÞ‡ó=oÿ`{´‹Õ˜—tÛ©iˆÞÇkð„~°ÇnXR‚·õ Eî}¹úÝmÒ#MðžÂ.Öÿß?~šëùqÓ¦¦ ¬.æ™;X+¥ÏBvPP@uP(Ê„³Çñ¬óeýΊ‰äCõ æR^ëælp‰EpÎFç‚ASìó§A4wàBã#Š …AÄþûýJP¨†èMs¯¯ùàÂP)”Žs‚¸>h|$„7 ÙßDÚ›ê'­@dA<âD"w1·ªÑóE³‚¿yÝ,Ý/¾Á–ì´ªH“ëÿÓ"MNëÝ!\F\®*‚DÚÅɇ`ÔCËÈÏ,ޝädV¿²s¨FB+eƒSR+²Ìù´Ö3Âjä ñuœ˜Ë oä0ñË+%ˆ°ñ/+U¥äë: ßLmÃ|Ž· Ä„ýSد €Ìîq/È{6 ¢yð(T;ºZTsFŒ+ÇÊa†…¼º‡Xøäðí÷p¿ú³§ù›Ó¤” Q[ ( aÁ²2´6 çrÏ‘)Ø8F 'Ξ[VÀT[Ÿd5´ùðŽnm„X¡NÙà$#É æžË Ë½J¡¤žøM áÒ$²šZK3‚‘'ˆÞ<ž$H—o‰!„à Åc(°ÎÖýæð£Œ9{*ñ~£IY´1O'“ ¤x†áLdA‘_7$9†œs8Þ>iÁËSh±”¥V@¡]c>‡zKF,=Ïàåe ÍŒ§Ïzbj­G /…²ÂÉê91—Æ9ʘÆID¶…| œ%³ô9AD·|FpÝÌM0Å=‡w±Ø Á[§âÀÛW@–¥š’q<ð,‘ù¯(Ã|ð!rÖŒÓs4l­ÏN Uí¤Ç8´9AuïoKÊæ¥Äa*ÚDÚm†ÐMÍk4fÀ‰L„Úý 3È!üpâp2+¤ƒ¢9FeçêŒTŸ÷ô\†³Œp¸2Ikªáf3`Û¹ßˉ³ÅjŒ±ƒÄ>l‘<‘J—ÓºZƳÈYëób)ùàé Ý’RÓèI$ÄgèÆ>´G‹7¡¯¿SäÑ¿ñ¯þÓÓœÄÂuÂ2¬àj_µ,ä¼6hwiÒ@:\°v—òQüX9°’6H XÞKÿ¨c>[0꜔Á:¡màü©Nö7›0‚Ⱦ¡½µkÐŽ e¹ c¢HŽèG›<’<Ž/2Î eÙ÷’«ÛQèîé13t¶Òa\ÚRÚÚÖpé3|pâàµ/ÏI±épkxÒb)c‡ Î ¶vpl`lU™â¥bݺ,8ˆÿöQú«ÒîÚ{ð|hÅh)%МyJýsí6?c\,5[/.6d„EÚÏy¸©wûÌv]J»€¢º‘¤·q‰>8°@Í••!jžF!mµ>”⬾~Ù綤ў.míâМËÊ Î³SÉ `Az ‰¾"§çÄY.ʫʕ3„í2„q­+ÕDñÓyé…‘øC…g ¹²=~. ’ï‡VvöpÀEÖÉjûx€ï,~cXÁYb%C– ÑÏ)§ˆs40 ³NE»çUì¢ÖØ–A»E¨V €±pº H_oV±‰Ü­èÐëfA÷ã¸ãöյǔ¨íÝ&²t=ãû/þÝÓË1ÔЖ”-M1’Y“ŽèFH×aX=|  …%ã^ÁÆ{D_ ÷+;X#>;¡¶nM·jžŒ},€sf-~;Yßè~/åÕ Æ +gŠÞ°nòçÞ‘Æ©?Ú‚¶ŸRC÷ì=èê=Ú¥-„t…؃¢¾B .p_œ Ü)2„Ó];n×JzÒjš„ŒC;$ þÞ×Møô™ì±PO28>®¶þ|ePY§ƒ&G€‘Uƒ¬àäÜiAÀ!åÅöPrFxÀ|ÎÇ|œÔ œOá¨SzX¯ú¬_üføÈãÈÂw¹´ ,eoùxàPh×·œ@êPr®²S„6!Ä×phí´Dì¨âǾeñ¶??‚çœ"…`è×-‡ô„¹4vÖ;›!Ä¿£Ãþ§ÿ¦É¯^6î³ ®ç€ AÇ+ök¢5‚A}¢·±PÀFÈ@вø½7£š—³ÌЬðÖæŒpá†só"ŽÅ#ÐlÁX·Kèyé:Fµ.:ý”çƒ*ø}Ñ{´ GS–wRšZ­âc8§ )2 ¥öe Ú~qVÖÛØãˆ>ÒÖÒ(p7gM‹»¼lËÐ)õ`èЙYBxtç,Œ!ƼÍ}âë?š/Ò1ªìÌ ­jI‰«sŠ Åh†ùŽNÜ9¹qœí]#àc!܈“ÄrŒ爣¦6ŠÝ N»£@‰½JÐ!ŽÜùláŠW––OÍP[›´7’ ”+þ[®oz¹öËcüæÍ®!ÆmN×§ ¸Ëÿù4ϱ‡v• Ë+`= ©Ñ²Â·ð<ëwˆ4¡BAb¥ð>âçÕ×WH¨€CÛ:¥TV%äœÚxw¾wðá¡ï¥zºŒ”V1Á­?þ~Ð)¸[Dô%£_À]÷±Ö^‹œž€Îƒ’Çv1¹Èù±uUV+nÐ\@¯ýý¯èŸ=ƒ(ÞÒƒå©{O+´;X÷$V´³ílqÜ,¥n¸jôqØ–/€»â·[É‹ï F ç¼€ªõ³uã ÐÑø>*0-÷>t5¹K–Âù‘ÀiBØ|Ñÿ†t™œÛŠãm/W~À¾K „uÖ–oí ÀÆ*k)ýyì/ÿãžžƒ%eÎM¦áZÔ,YÖnµž5+ðê+ñæõåb”u.Wxf‰Vàð5+ëåhtÔç„xÙŇÅ_Æa•" à°VõÅo콤Àõ;É9!ôaœÀôB´0Ç;QÚ„É FºÌ<£,ÂÍÍhÛï]¾nûÆynãu‡°;ÚBŒäáä%$ÚÁÖt¸Ÿ´"BS KFµ+ €eEU. ®ZZÊz¨Ý•zhÞÀÓ  ^¿U՛ýL–ì†O[3:äŸ ³+;«b³ÓÉÇ#“ h{µ¼—öÔ}2ÊÇÔ’EO(Òc&ŸÎSûòRR•›#Pñn4Dz!éc,hÛ9n Ú#Øó+ø»¯$®¸±é“QAøý›BXB3U'Ñ}kO±…vN½4¹áqÌY…u5G†¤ÊÀr½DÚýpÝ=wuƒè}º­¸MUê0Òó× Ç YL;ðyÍ¿y»Œ`±|0´ZÕëeÐW@MRu˜7 7íl8ß›«vZC—Ú…öbcHûx`:Òó©ì¸ëm˜S2JÙ@° \À7w(~Ï…°×Wû³M[K‰Åmx1ÜX&¯î÷ÞC»Jh:œD÷/¹vqÀKöåÖžÛ56­Fÿh‚%!Y 8[(çÐ)ð@´Ê«J²r#`KÆrïõñøŒK)œoÇB¸ª©’ZÙÉÖܾ‘NOÕµO ð¢¡Ç‘ðÝ@›&ŒÑþmL= @Ã<§br)€%táR@/cžÆˆf ÝÐÒ çú"¥Õ /4ÌeêÔ!LÝÑ2©P¯Ý;šK»Ö®åBÜFÖË qkç­ñ$Ä?û·OsÍÇì)œ–ÚÓð›õúÉÓžÿ¸µs‹<¥+]³ÊÚY‚+ô7ݯ<œhÓò1“ž'¡eº<í'!ˆ£ÜBKý˜†â³YÝ Q¥ Õú°^±7c}ŽÎ`œïÝbB¸‡.)ÀˆÐÚÔ™Þ,c¹9“|@p¡8kƒ ”Í«œXè†u$m ÀÒr’´3•N£„mXC»/Ž“|ô¨A~}{.nÿÃn¥°$ª4‰¥!…´÷Ÿÿusš|öbÚ«áÅÛ2qŠ(‘·®¨ª\Hä6#ýŽÀÃ<Òìd¾–ù·'±h¨5rZ!€çU¬L€uY8‹5SC‡sKìq½ËÂaí9@¹ŸK#H‡í ~–`1±èŒƒ9Äqwjw>ç°ÕöMQúØ‹ €NÙq 2×ÍÏš,­¤ðÈâv®mùùÝà›ÝCŠJᇸ˜CÜC»þn+±ðÙ³cHq ‡Cmu%3önˆ=ÄlX¦~z,C¾/íKU®ò ']Œ‚x•ý˜Ú£ºŽ’0ÜTX'<¡ÁHàŠ2À`hA4<;xš$Š0I\{’ëFø¡’1Ú)HÝÆ@QúøÀ r):¬àL”«¦¼ŠlqUï XNγ`ÜÌ¡† ¸¶óáb=†5O!çJ€Æ÷,!HÛ˜[ïKÁ\d©À g¢¸X*”oÈÎA’$j+  Ñ;²‰Ó;§Àû²-ì}¤{³ë–Ø&[ °éYûàÔîwéD]Š5S` )¶’-™à!·Mæ’ÈÍsã½ÆPjÞ ªvåVb,îÑ&˜ÐÆÜ‡–‹Ã 9¥%§B‡i_ȲPNÊádØe5rãŠJÝÑiC8M’D­ &á›úÌ?8¸¸:žJ3EÇ©eëÅKN#«Û-<\ª.XÞF:øß9 r?j ¥èÆsöqäºþm_bI–wnÄËÌêZ²²²–̬ª®v/Ó£é®OwWké퇑46#˃‘-ddlŒm$Œýn!0Hl°ù6Ø d´ÛHH2ƒldƒl´Ì¨G=ÝÓKUuuUåò¶ˆ¸Ž÷¾{ù¢Î©Ã­— îD¼7âÝ×_žs¾³Õ 4”²–háQK2ÎÛµ óE„â·´Y@BX»ËSýy‰ú(<ŸÓ½Ô=lêüFLŽqÑk`@Ñ× ÙVw÷‡„„•]©Ž¦e@­{!ªQjæï;Âésl<YòË0ø}¿•mÆØHÇñÏE§w°×èh6 °ƒª'¿Ó8™mò>dd8¨â ’w/`®¹2L>¾‹B’tcÆ ¡ñm^s¨#LÒUçvUÓÅ&0¦2À,ЬôêÇó'’ÿâ³)¤ëâ–È i“{!¦¤ÖîÈdØn¬z^KT)äá9£+ÌÚ{lÕ5¼—õ--y¼¼uT»fĈ£Næ)®³ªe†÷)Çwådz¿Îd][É£#å<é¦)|RûN™9§7Spÿ”À®«¼W¼cUý =u›9kÒ¶(s.tnKåÐú&Ѽs‚´ 9–Rg€uCš¼Ã1S£’¤×6ã|]C;mÞ‰fp ŸK ¥ƒ¨ÿΦ‘„!àŠ@ãH|äRS…¸.ÀŽÿ¡³ÁŸ ‘@ðbmÓIuà’XY¥d×Q62¬Z‚‹þ´¶µAÇ÷ i;KgÐ×%±”.Ãa¥F²†ª&¤¾FPÇ8϶Ýù-J§®B(|ã[Xs'KAöµ±Ž{jŒ´ßã‚Í΂ꥑ`t¤Ü¦ýw›2p/P5Dø-¼H_5µ6º®á n#I‚Ùá¼L'AË®+|~U)9@ÅâÛtmkû€Û¾¶3*iz¯%F«û{+_Î@HEÉߑ— æš† ˜L™³&ÂÌh¦ÎøÅYE2¯h~¯ +Ï-Í_+餞»ÞT9ÂdäÑú|· @¬¯Ôþëʱó†¤K í ¿ûoÑ®ÍÁËž=¥J° [عMH³ìƒ™Ó½°8ÚÀc‚ÚwŒ«s‡˜ëd'°8Gßk² ïÎ6’láÜfî]K  ¹>¥ž§‰'Üô—³eÑmÊN1KÇvÃ@©‚vÆ#>٠Ǩˆk‹uvçæúð¥ÁÍjÉ‹{¹ž”¾—.ã—¢ãgª –Þ÷ ¤YE€”€,¿©^’t¡_‡"Bá¿÷ gì°¶I¾¯%Û‚>›g 5泃÷` ö³ 0»Vçé©DXúïœÒ~Âô ¸p§‘$žÍÂBd=ÆN±•Ò­\j/ºYà6ÜËþÅû8r‘•nês(TYæKª#2ŠñÛÕ·V(EW{¾6âEu—ÏQ´þÃüjµïؾ¿ú–M“3ÐÓ=è.àâp¿ù/¸ki»˜_.Ôìáa×ö°k—óÃqv[ÑAÎùÕgQ‘)ôßÉ” ¨-í—΃ ç”NÜ žá8¾ytݼNpyEdýÐ/ …ìoMÿû~7 žHFÐI½!ña}j¸Æù‡5>dÌe R‚¾5¬‹ýi"%“‹‹¥èpN’`´ô>§í°™µÍ¥Mrï›ïC¸|ó|ž7ÀGV§ik†~ b)»æP¦ÓZ¢DH±s"››Œ£\±7byá.Eàu‰fZ\\ˆ:Ñ¥ý`GõkP}Ì/íG;ÔvUµ$ã*µ0}vSô $ˆÔZ'û»àw³=¹9ÇÄQ^×~8:¯K>7·;)I’ƒjd Hû«*X€lZUŠ€¶µGlÄ~ÙÏæ!ìæÕRÂhhÌøÉ>ŠÝü„Òö_èGR)á§Î´'F‡½ôª¥®ãRšQŠ‘Iì¢ TdWe?qM¥1±î…P!Õ¾5u3 &]} Ç-a³l#I¬÷g% @ëóû‚G÷)”ÌsÈs?x¹ØÀa$˜,Ð8ÿ°5…*X(EG7B:Nf$dÖ­/lÖµÏ0–çpŸ1žö i ¢%K¿.I¿ÚUmœH±”—ÎÊÚn6M6‹+Å|Hò|6wœÞ^Ú-ÎÊB?J¥dx–¾‡Ñû¦J¥¤B™´>"FjEj0]Æg¥ 0ÿ³_mÖów‚x ²>jåÞ¸ÜG¿ŽXʦK-‡]_œûRÒ‹*$ývêœ>/§Ó"ûiÉë^ ¨K©A¦*™*^‹#AËu¶â—*½×uC·€-݇‚§&œÀ™Þ*dñ£Oœèè“ ²½kJ2¬a–7ˆºbr˜Ù]yÕ’­:É9dµ¡ìËQüÁÐú+²ŠëT þà6ͬÏ×q¤C~àxï—Q—²íà(H2ˆç®4³Q(,tb›yâS²Ÿ>Ø”$£:HÒîúî0 Ðw—AKÖªmuòê£Uv¶™Tç(‡@áú¿MwBÕÙÞŽ WÁgêWLfvcߙЈÒgqVªlº!‚£KlX;¬òiŸULÚÓ öTÛŠ¼ó„Àd "Eß”'Ѭê™×Ñ-ÐÆpoÿçpʧ֖í7V0^þ¸É”ÎÏó‹h‡ó"ïP%@ŽZ‰ý\-€Ú<…rÃ~â­.í磽ÀäVö¼#b*;Sê4Ö ^HÙ±S}Ç·*Ï`ýj–±£|)BQdÐÔ‚ÅYƈgäH}–¢S„†*ÂÃÏÑaöi´«Ph¶JÛ´åÝЦêã{¹(„Á¨Æ=!úÌ×, ƒŒ*Tí üŸ(áZn5Û)2ý<@6PW.¡AÞVŽB©Á.ua? ’c1œ|†/ýœÒ~$hd RÖ–öC¤†m$Ù(I¨m:‚Í«ìì§ð\žsœjdÅ$SMŠˆÛÍÔþg–AÒ‚ ã‡eÆYJ Í¥èÊùœaRk,E—AnºÀ2mÎÛ{­ÊJ°™ìOîIOlˆ¼ïgÓâz "De‚[©Æy>FšH¸?ì[‡H•ÒG« %KÈl€+;dç·`‡!I„D†¶·œl…ðìl¶a²ÆQÚOù·¡bm¬ Kûåý¨Þ¶‹_OÓoolãúZ…£›œ–ÂuSLÖv¡b²-]g [œ•NîºÄÙ®'?ì©\= µAdàWsª`•˜DW!C(ÉëŠ,(XE€ï[ T=±F÷¨ àË®[H¸ßÿw`) 8+MÚ–ŸlK§óh;åâ6TEþå (kÀ8®æzðí íbì'œã9H/ÄW†u3ÿÙåû›A™v§A‰iéƒçÊ­Às] ÝD¹ôûÁ‘°´ ³ ¦^Åd?y”yl‰¡$3€U):ÝÜ‚U°`S½Ïô&Fk„,°Êç.áaYFÍ*‚Õ„êÙ Tϻ˽#§nƒ÷YûN“4AðrhiÃdŒ‘œ¦ü£½‹W/%Ñ[cƒ)ƒÀ²… DŸúܰŸTQi7B5ûIã± …ÕdžĆÎd°Ÿ£Ó´¤Ü.Ùïe ¢¯;} ,SiYJ>£jÚ&vX JßòÀ9×”«WÁšCs¢*¨Ÿ«¤ ¥‹ºâ‚ ‡éñÞ-‘Û=ø>¸\¤Lþa qDêàe«Rf…ÄG]XW.AšíöÇ `Îq;糞6Z…çYfô0²ŸPiÑüáÜY¦Íæ$ŽäVà5{nÝ ˜*\ÌÆVÚ*ËœúyÝMß Á|¦mD°y“éçgס]¹sT Ýæ•f, ¤Ñˆ•â`WQµ#7m%ç¹…àøÄ ”=¯iÕÐÞ# ÚH¹œÞ‚jü­›ØWÛ‚\«G”|š¥”êz|K’p1BÂå  Y&>Î%›¬šFPõ,»ôµ¶ä`'Èüa0¾É~^]¨´!Ùfó”׆áÌÏRðŠYÉfcý^ì̪JóÙ@é¤Z­QòpzŽo‚GfÊŸ&ª˜Ì\/$ËÚ”œÚfµd‡CïU.ø¬"¢DhL¦à{CV%;’vEð­BlXÕOÏib†àƒdS6ßMú–q=»B–€C]Êÿò³É†kk™Î£´ ~èÖ‘Ï>ƒã‰5€l(%bÉuÀa¥— L^oH”5²ŸIŠ1ôÿÇ`-%Ÿ}Œj[™Œk9ç–ö£‹ç$kl1ZÝq•Np¶9¶½¿y×ÒÚwt$‰­˜, ‚5Œg„€/ª¨€års Uö»TÄ‚T¬âÝ{"å—|f"õ}bƒÃ‚ÒH·8%.|ÈP‰ÿämtzâû¤NE„Â/ý‹3ítr(!Ô²{1ÊEÚe"’l¨‚µh´ä"ÐìZÞ_&fš›¾˜"Q˜Á@#Ûg?}r¥-Æwò\Ï$ŒãÌN{2Zóa1Ú9mµ“'¬û€v³f/mö7Dœu|‡˜|Pužtüj}im Žoªxs·]¹¹…Ï*®Ä02X¸¦ô›1R?3 $6Öq|4bƒ1§êz¤øt´Çdj½wûùðV(­llô€û•Ÿ>Ó>~ñ°Z¸KQ‚$²Ñ6UAš\v=樗ebfc#ùÈf6ƒ¡=&ù þ=¯¤¦š›˜Ò~ iæ,}ý`ëd°ý°<:þãÚ!Т×xÑ©Ìl+&6›9‘Ÿ[ŠŽÍ-T¨”[xÁ¨o~¸3¹)‰××±çéJĆ–fe•²ªÕ5í{Ãs‘=°ð}x3ôÀKÁË÷ûB°gCðòl™% @クDªˆjŽ~-ØdFÌpoˆl],-ÑE죲fMƒÄŠ›r„°-øJyH*ÓÀ±U­oŽÕš‰ *Ú±mKœ¦UZJ £Ô7-TTïE@ç#T ¿k<{€k€…EÎ9áRÞ:úb@„3›*jµ‚JéÓ?¸á‚Rç÷zÀÝû­Ô='¢,ÁCfÐYù:Àù($fÂ’¦M¶í3VR–¶²ôcXZÊêí¢ºPr𛸥ýè»Sóâ-y­>± :0Üœ7ëcÓ9k~-!0­ÈŒÀ&e@3_ÍH ¨°R¸æ>5±©ˆh™U%ÙjçU”X¸õ_ ^¦$óä¯ñTFª~ É¥=öìÓŠ˜¡óÙu[ º 1CF?,¥%FšXÛ9î¯e3@hBÙè8/Wv×nsà˜Ês)ç²ùU³ü晄)Ò& S?\ÊÒöuARÒæ±6G1á?ù3M›Ú\/†Î¨K@âgxŒ4i¤Üû¿Ú.êô+åH4ð(VÅ¿vPÁž¼‚ó¼ŒõŽd*Ù>1Ã}¹ÄŒ–8¬å½åÜ?K¾ØÀl¯¯Ó¯s$K¢“õíÒɤ¶‚qb—K}+ÉR“UÌÿÿúáRÇ%6 Ë€xñ"ñë³Çû‰&/¸[ÔÛ‹?ç¯KÙ.÷Î/p9xÒ`¢sšs–z©³‡€Uˆí­³"Ÿ}Rm½Æ<+|=¢z¹VÝëH_‘ùaIÌ€è¸æ„¥¡]–~v©~'ç,ê7¨Äz 0f3ØÚ&6‡¶›î*CÚ®£• Û2¤ÆŠ% ˜ïæ…K]tˆ ‚ªd;ùà=µßhèhoáføã·“Ôk°ßõlƒ–Áæ_×Ù_ÿy¨” #M¬ÊØç´ä³‰¨“Ä$ž:!òÔµ¥4ƒ“5P¢Ä¨%bQ=µë\ Z©3oB4ò‰†‡)€ÁVp7(Ǻ±„|#v˜Dve5èüj]ãñƒdIÍÆ‡´QpŸ’pn§‚JoÕp©BÄÆhM¿Z pxµ£v©‡ÂEo¿‹¦‘ý~7é°™vN¬„ËÁËôѱƒ„S*š•<”~ºeU¯½K ó¯ít(!F Zð¼h;ºÀç ¢SôÔID¢€˜a¹³BÄŒk¶. Ëþ=Ûܤc=LäÚ!yT•!ñ|À »v]G­|k ª=Wº¹Eè %¼Ã§ŽØ°jçÁì®)9TV`Ë×}‚iepy|óÃ$…oÒñ®lH+¥}pp|ÿá0±”[›Á¡ì8F‚$×v.ˆ|æI„Uˆ\ÈùbL|¾.Ïà«’Z}u€6orÔ„ÿcT$3À÷ˆ™Ý ŒD!û™ýwë9©•ÍM¶‡¾»5öG`?r +¦8/ü/û^Aºõǰ ¢ã5<æô­¡›[(VQ' ú…u ÖþúÓè¯<‹¼û¡ÈÇP9S#\ ÇçËk‘<›H2ADË×¾cEÖUB(>×/ÿÁÏ¡Ô9TJGµJM¼SØg`ŸÐXŒ箣jIÅu \vÁg€†¸Á©ÈÉ“Hº° À TFf1ð9ü.o.'Àº1 6mDÖÈ~j÷ÿxõC”ﮋÙç±C-ÆÅ€ï"Jê%]¯-¡²@D`­_ëUØ´i‚~(§qQZX¹÷Ùlíõü²Så\ÆQ!}`žðÐ%0’ÝtUCHzúõBàþ4Ûy-ÿ(VA»+0(ý¨RÖ_ù¾·b;—¶­úARáó.e”ÄíúZݸ.òäU¨lÓ)®g`ðþäÛÊ£!!ÁïᚆҀ{ÉÏáy¤Ù˜{’—Ÿ¹zYää®Áqžm$>¯Ñßoϱu ¼>Os-c?åðÇÝ‹"WöDž¹&rýÙDÔlñ¿ÇxŠ‘_r–W#IçyWÉ|Ööcâó{Fd´+m¿`:>HdO- Ý< À|Ö|‰6›óåݹ†ö‰+ ·NŸ(ïÜ…TqJØcÒŒ,5 ;ïdZÌæØïÙ3`Žß]HÄ(îá÷Àþ´Ï°ÏæQœ¹(Ü#æø{ç-÷rmïûÚÜ ‡c’P}§ª_!ì€NÖ¥þû_Úx«kçÒÀ ¨XŒ—zƒ/µ\¾DUÎ_‚ˆ@QŸù\^Ëë¯Ã‘$Ж߻{äÌ‹ß&ryRg>8#Ÿ|ô5ïß–£ƒÛ²ÿ¶Ìë'äÔ¥ï”ñíß—f>ƒ»§Òjr‰CùIèL™³y\¯]³{4Æ –UQ Ù9 Î ÿuû]ì.R±ö@*§HXE«¬jòIj¸9Œš#ÏU7ßyÞ%x·˜‰$\•Kˆ7ý9vp]÷úgD¾ûU‘çûcUa>³{T§Ò9Ïñ’ågã˜GV“ô}<§?¬?žh¯½"òúE=¼Ðû‡|A 9ð]$I(1ô÷pO$ì~¸¦iÿ¹ÿ¹gD¾÷õ~O/‰\Ú‰-®M2pÒ³1ò³ äùôy:ã˜ä1 P=Ç­œ¸òå>Ý¿•ýÛ_“Ö¤‹ëKuEdMîßúS¹}OdcïË2>je²|NÀó¦|îl1æÎh¨Ì€kÿà»x¿ñ‹¯â7WUþoO©ÌßÇ1KdžŸ1§GÃÁûÈrÏféû&i/7D^»Ïx ZBº?¹¾³­ÿ.ð{õûDMg:ª Øøîï¹Îÿ&K|F+RÿÐ÷l¼Õ.l¸®‚áÞaãA/TGJ4’”TŒ!l¬”¢-Ö™û†ŒvKRrý@lþÒ‘/<¿ØÇÙ”Àï¢z®² ÛFïƒÒOÙ–f%Ú‘Q¯éìŸÎ¬Ää>pl”*i×eUrÞ£¡Ú¸ k;ß/·?üšTõ‰¥ôêbÌ. ÕºŒïÈ©íÏÉôÎÿ‘Ù4ÅÉvÑ‘Be‰$¬ëWÆÃÔªû°YY:]_ ¥çÌ5J•N©„*C~XêìiØçÏá½»ùºÆ:ç9œçwÚ8V³Î¬ôÕomAöÀN®«¤RÆu©–ôxÚøÑRõÁ‹ýêK=jŸMíJ´–CÚ¹•R\G©¡tá}sû €$½¨¯'‰¶“Ò_&cEj¬ZºRªòš]×pèû(Õ²‰ö‚‘úôùÑfäóñƒmŒ{ƒRýü³PavÏhGAk÷`k†S_ãoÀ5u°P¢M0._‚ê Ù?FmkÈ v ý=´Ý(Ùõ›¢ë;ÄÈçm¸~_*go³‡­i¬zÞ¶J­ZªÕöGPï²Je_róý<Îôè†æÒ¦½AÂílãya!0‚RïZw`Ÿœ·f—ýÔfðþîCo¼aqñ\’v_ú®·v¶çòÒõJžOªÚ4©pTÓ¸NÑòM§Ï•Š9TïpúŒûò Âִד:{e‡v ãƒ{3(0ø™ë¸–ç$‡Œ ™çøüƒCPæ7^yöIšË’zö¿Ý›ú¾¼{Ž56ì-ô£ëG+göÞûwoKUÕIµ‰é$TAº6ÊæÖŽÜ{÷7¤k&¨e'Q±s1`T=ž3-G\gÀÁ¨¹r!ÙT·ïÒ™<|~‡p5ue2•ÕuKŒðó¼Á÷]Ùz·¾Tï êšûU¿Ë¨¢«¬™ï³AçŒm%^Ξ}”PìÝ ëRÿä?Øxëåçæ²yªJF5#?ö24šÒW/:Ù;e§©Ï¸G‰`›f œç/õ@{òK“Ñ1N0Ÿe¿KGÙ……ùŒcdLèÚhAíü›§˜ÈãèN˜ÚpÉÅp‚Á£  }j™íË©­«R¼&ãûJ½¶ž–«%Øšé¡l^xZªéŸÉ'ïþ®T# –þÅ✣íÉ@‡s›ðÕT»É”,¢³kka pö€äóŽ-/ï.öƒwìþm­/Î>Ï–0äïäÞÐJ˜KúÔ©pÿú« M&³êAÅyQíËÄy uÏðøÒîh/_‡Zò؈xJË8|¶#aÔÞÚH°ˆ$ô·L§ðù¼y*"klg 0 ÜÖ‰Zq“|£ÍDÀ€§÷èÎ×å⯉¬“Éщ]+1.F·ÛæÉ(üߟ[R¥¥—m×F±Ó!–ÀçÏóœYá—wº¶zŠà`3DñM‰¨FÎ ÑÌáÚxòq,Ü¢-Ž5œ³£´å=JsÐE(Þ¼í÷ÏÿöÆ[¡›K+ËP<­+)0§%_Ôôbç"6ÙËωœIqŽF XÐñ³ZkBÇìºøðXÌñs¯¿ 64±¤~ŽàpÎ ³£µÏ”tŠU i¢–¶™ÊþG¿'[ç¯ÊÖ¥çeãä–œ:sA¶¶w¥]ÞïÁÖΤªFp»†ÀôUy™G‹ª ¦t‡Öò9€WÀ"no"n³Á£ó²òŸÀΙӿUÞþRÊ^¹™Ô̵¥³Q1˪·= ‰¥¬â‡8DšÁÃkñav“¯‚²Q=ŽÙ.zéD‰ÌfmTÀð3¨ÒEÇâ±¶Æs4E6Á+/€ÞL-IÑz)EÅZ*~E±èÔàä‘vA좄ª–®™Ê½þ·Lzê?Ž¿)ÓûÿOî¾órç½ÿ)©ê‘„%ØlB*Nx Ò/I¾ò¿¨AiÖ¶ ¸p~½Oît`y,J\”Ñ©¦»`oû9£„ù¨f”ˆ®µaEÔîŸAæQšà¾úwúHÎö>è:ç¶÷qDJµžB†­vú$ÔGª£•>e ©#ŸU°­X_e©B¾qÄÑd¢Qò¼œ[ÃŒT d£¶dR!þìl¶ÑHšéLö?’éÁMi›‰ŒÖÖ%ȦP ذcy¢ûz+ ©ÏAÇUGiw¹‹øÌz wÏE¨ˆo#–ÕÏUlÓˆ>[§AªŒjH»ÙPÚ­*Y ‰ØfÀIÇà厶ŽŒ¤í!»R ôìîBª]yê :®£˜Ê^VšPŠúàñ¥ªKk–ί½ª?7Œ±P£Å~W¹j˜¤#AG°™"[™‹àD¨«¥êX×õòR&BÄSÏöúvšé+`úX*Ïl%i ÞÞD†’ˆŽà‚nuPŠ3lu*Ûg“´C'Xþ(¾ J”NàþÙ"–²_lJ 42mÞZ­ª!¾ÑJµ#¿ÏÛɱ“ÊYàœaDúë/#š:qjS–ÁåƒM7÷FP(º›ŠFªœ.‡t‚‡*#m¶È9 z­b¥3ÇyxÑJɶEîß¹3ƒfŽUhç”ÁY‹E>Pq„´ÛÔÒçݱU[¸kbR)üoõ.RÂy@cÒh”yM¤ y)1OBª!‘ÒýGUUs­ŽÃ9§ø2 Ë¿ú‘Ë{PkEÅ#>ìgJÛaœ“Ž ó™-ª’éøRi•à°ëy 3-€q¯9ò~žÛëŒÔ´€óTÌvÔ¹3(±0O“»H`†ÁZ¨AP ‰¬· iGÛîî}‚.~ Õ6&®[îÇ€k!á®RÆuAÚäÚŽ™Zß¡]4>²Mø©JúÅßÓÊvØÑ1èê¿ò ‹§Ó2Øâ¢×Ò‹çTdM·SÎZ9è8=‚-DmGi;LcpM¥À‡#†ðš×UE¼æƒÁ_ìç³›"Ï<Ùí»©ZZ,‚ŠÒNI> Á}ÞÌ“y•vf ¹ºmI–€û§_îUÊHÒ¤Ó’ÊJ ["!ºÔ:í¢~Dáº"P Ýî° V‚f 6#¯½LQ,ôŸS¥Î­D•¦î‰ÚÏcZ : ËSº©·nl[[ûŒ— @+ . \ËprÒ› Hº¼G£"TîÝù8ƒÎ‚…êµL©ç~»GÚ™=èèÊH즰o:ÏcIÕ BJ@ý'?Ò€+K/¿¸=NA¤¯|~I­#ÛZÛ8+Rëþ¼UM}•tôã[ò ú`+·=΀Qv™Ó³Ûør2‘2Ö XÃÏÚhœËbªâœoçÙç[uÕS;-1ãÛ€´[—þº{ûÝÚ¨@Äx×¢ ŽdR(¡´‹º2ޱ/´sTWĄ̈̄ìB¸ü”p­cÿpÞ!+Òqÿ/ôß>¤Ö]¦¯,¥VR}PŠˆ6ÞÏÁ5ÖGfÇ#¥›?Ó¨ï¨2lYºP?1À³6ç´F;ŽÒUÅïQöïÓ¶ ÏjÈ®«ÁŸ£¤ èn—@§Á ÀÔs‘÷zÒ®Éé?WaÓ}ô1öÄKê*wØ.$Ü?ú›‰¥ì*ÿ¥v‹ì0h5F°/~ŽùAB€ù@òwÝj}¢øW=ÉffUIíÏ¢>wÑa 6U1™sQ«›õ‹9ö•ƒC|ðÜVfÎë)ípNð¹ç¸_ïƒG#ýÔœ[ÐݹÐE4+Í[D+yè|~|ÁbŽPí¬kS›/j)ŽÉ'Çàþá÷ƒ¥¤J‰Q&&ö;ø±ž~ +šÑ»©l£¨þ2Ød:IÑ#o~»­„E°ä¡È±ª£ø óqâ“$4ð¹Æ{S°ŽÀSRA  ÂQ Y{kyÎkøèÛóƒÆS*WÚtRåÖ'K2l¡ï˜/᳂Yc¯…À˜ÊË—E¶N‰¼ƒ5ì+ú Ç»‘B»–€ûëɆ‹U˜0A¾ …ú< ùLŽÐŽ+©Â㵟bÍÌ¥]ôYääc oDTÜbK”¥œ˜7<Œö:Ið¨¨tG/Rä„qTkÐ9Rͪ{T :2æÓÜ‘˜eWrάB¿ÎœDýÞËuæ4OM¦¸ÅsÏ¡Å5\ûÀj´âJ¸ý>¨”]²áʶt0åÿ&ì5H:ñ$Õñ¥™=÷Àgm‹hÿ‹ðÿ‰(:ßQ%ªÏCw€˜¾Ýt²ju2ðsà:LGJ/öxSÀÃQÌÚe¶»©¡â¹>’æZ}änÑ ÷}¢Ä~¿‘Å{øÏ‚Œ6=ÜÁò÷Z‰.Э"}"†,æfrܽ‡è”u)–¨Ñ€ûÊ—ÈRÕ?!9rm6QÎÄqŠÞ¥”Îa+Ël·Äå]6îxXX•Ö·Nj‚βRˆÑkûH@)çvôI_µ+&‡‚=§¤^ļDEÀ* ûêc ®‹Ah?ÛBK³o¼KÕ’K]’¦ ¦•¤Ÿuˆ¤¸Ð}”hW÷à,åßûk íò(w’#)&“#‘öšN\…ˆŽ€§Ë­…䚸¶‡ºlNÊKg$šVçä= ç-m?î.(W[€Ð#LÌ‹ÅsÏU@òÃWýV„hÈHUÖ-`A穼^ -ñ¤'ÔÞ Ë>:H“2b¸¿ µ’žý&™¡A(*ÀI·s2Žcd ‹W_$9‚kÇ·»lƒD§Ç6¯™H®P¦3Ø•}- :µ­½Åϸײ~BÚcT yÇÈç°:'gD2HA‚Ãî7”= ýPAeÙÉ@ ÓA^qá: Šò9¸­ºËë®´DJÁ\ÞÎ$ʈj¹ñU:áfeûoEu40Ù™ÒwÞ¡@ILÀ–/ªo[A²lTÑðŒGNM‰åk±ŒiýcN¨€â1y’ÙE®ã|TyÂsÍJ@1qì‚’xÝ<Á¦#$’½#Ð,b!…ÆCC€Ê{ –Æ‹¼‡ûäJlªÉ8‰&`ó¼×ÒwVH¬y.#úÿ…÷‘e¿qOEÛ{˜t+œSŸÝ9ŽàžÖØFþÇïáÒh| ŸQÿÝ¿šH“‡©”BÉöÆ6ô³@‹Ç^,Ez8l"’ß|yÑó 6\PŽh‚CÍ+¦c#Bl4: `ØïÐRÌ€‰@²¶ŒéÁ†æEIã:¯-‰’uÒ¶,ö€Ì#ç+k»IðÕÝŠÏTì*TËͳ"ÛgDÞ~¡V&[!p( XvôÓJ@m×%Õw;‘<61b)“„«†óÁ† Ùéóí1éú²ziÏ£ImÁ×0Õæñ=HàÙìÿ“vn»–\Ws®µöîÝmÓí¦»Á¦ÓIܶ1û†Cnà&'@2 .à¬\óH¼H‘p‚íÈJчôªU“íšËùáÿC-eK¥ªUsÖaWÍ¿Æÿ8̈ ¯MkII-AZŸ.Íûh@ÙÚŒ¶@b¸úhQ%öR¦z?ì‚j'RݳÖÿ§YçãŠ,m³e@ÛØÒ™~ÙQW¾x>ßñ7^Ÿï\öxå_µ1”ŒGŽÉz¬ÓôšY'¯oû*™8†úîþæÏ%áF¶çÏÀDæ ©ûi&p²ÿi ~Ñÿ<ŸÀAJƒCmX#< R±Yˆ’'V @b$Ã%S"á‚ÄA‰˜E‡hÒMímh2¦6Ù‚Ðië±?™MJèsÛ~¬YtRB)Íï{yš²•aj”ò $]‹Þ§[ ¯È‚Î$›úý*’lØl*¡ÙoÖ8î;ïGìs‘rdê¤Öæ ÎTʦ8<”÷8ÔyÒigªD`î8p“ÁÁÁÇcZø Eàèyp,o/PEš@Ö£Ù|ˆS=Íwý÷BïÛâ\ý½JúQ‹ªò‹qÍ}â(éfûî¯ÿìòÖéøVÉ“l!‡6%A¢~\ I-‚2,ÂÃj9:’Õ7Q«ä®í O>;HË(·û• ¡øpä9}‘¤)õ]Ä+WÛôÄ“ à3€?ƒ„ŠÚµ¿TC©Id}âk"¥]çÕøÏ¦J9%Ûš€-7(ëm‡â[R/óƒµ?}nç¹ál~A ~š@ÐvDÎR¦!å¡©RzøplÒ©7EA@2ñב ¬$‰ùCDßÛ0WÁÈ Cf+{M=ûR#‘꿽óíÝÿÎcÍкzŽ"ÔMÚøú]’.Z*mÚZ<ßÔËé2Ø}ðÝëÊËˬiò§×;^ÿM‚MëZÎ2™ÊˆvééV.Nà ˪!ÖçÆå”n 9hm„B}ŒÏQFȱm®´ÆRÚ •T!)G¼ŽØ D!xÐ7±ë¼9ž«‹h‰*êdk´ˆ£Z,ÉY«¿ºÇ¯UËWç¼äË©L†Õ:“~êWºjU“R±·9ßí›Ñ'­>§‚JÀ¦…*%Щ_`ÒZ # –é˜sf߸ÙF–À§Ö ÁÔÞ„¦Îß ôF• î“¿Mƒ%†«U£PW"tm@BB=Ã~ÚxÚ?$ÕÙ/I5×yšŽ­¯Àf9‚¦Š›+!u*•¿·ÉM à“^aã.“~4‘°˜Æ 8A8ï¯?y:'«xãɬDâËðíºì äY$¾~›¤â?f†ÂãGSGŽ,ñ‰Z#iP°r–îƒP€ ª‹ôué˜\-,hþŒr‡t«ýq<§I]Ù]fƒZôŒa²¿"Ž´HõV_ŠÌ1]7²“?šcâ´ØÌ6!…Xî|LG4t ø†ÒÖ¿ýpNÁôâiD77-; PDô›‰þ!^xLR¦2€Ž­P«¤ÛIŒ¡õ‡Cµ0b*%ì¹84`ñAi6°À‡s¡S`rv1”E)H]“6'ï¿ “ L >G&í‚ÉH>ªËÿ–r &Óiö[M˃ī\ ‘» ú¿§Ø5H-:¡ 2ŠÌ^%¾WwBæÓ5ùg’noQºqšXÔ~tûÌÀfo)˜ØÉù™Ìß6ÔŽXG­Êàæ¶òÓ(µÔÀÚ"T)AuŸ–ŠÒPêA$ŠKm$z¶TC#ß É­Dª5—‚’romRN¾¹d\qìR›b¼­×· nдb”KŸe `:}k¡ R§‘#üÏ­Lgõ@ާYÃðb>X8ª“—Ç*KfŸÉf£j5òRoR=L”Zu”œÔ sÙáoËrâXê &ih?R2 €³m®°Ìgá,°iF,1ø UöùÙÅÕÇ“Nlý !gcvÃü¸N†Ö"§Ô×útÒŸè,0za·9Ívó’vÁœ2:¶IỂì?ŒKÜ  @Ðyâèæöž9mEÿÛ~ÙRÚFwÉÂÁ™š•XÐBÐé˜Vû¾b»ß_”d×’„sÛXÃa`€R?*# .o>œcdecp¡. ÉȈ« ê(®×q L_À&‚J•DX•Qÿ.ñ˜U­w|<—Æ>\Nf’D‰ú döUö/wCš #L\•TŸóšvÓ0[¦¬=¢™I¬µ0Œ¼`ÙF¹à¼ c “ê"š,p{põ¡˜ Å´Ô °@ˆ‹Ë9FŽËìO00ƒ„ñ¶v %ó2a³©Ý–>ôYJ4|eA4¯V‚Š…4G­ß{Äï>ÞÖ’TˆD·6;'œ¬^÷Ñ)ï@<¤@Gg±ë•’”Týd”Uäº;%_DG¬1)l„ŽBÒÌnÕsÐQgÓ7…b2É$˜]áÒáôÄ«‘5qœ;áŸpA;.¬mÐ=×a.B—ÊhªœÐuu+2ÇŒ*±k6}½®nÌìu±Pʦ™èå+TíÍ€Û8„”Me4ò…UÓe¨ÎÕÕ¹hB-%HY6±Š¼ïêÞŒ¹œÕ~=?¤,iAz>4’„HƇV™áË6F¶±rZÑt×T!e2 h+ÔN³óŒPì«À%DóÎÈò8 †ÀÐv¡.œ©ß7¿ÑøtŒéÿôÁ‘ܘÒÌ^2TRGÒ ,£ú¹0LªD‚„*h ”ñˆY¿d~_ (~ÏҬꠋ€.¡¦5£ƒ¦_{˜ce9Ð 2h>0¡¸_Ò’˜•íÝ´,·òËÀãõ™&µ1Iî4"åâL–„"S^‡&P dɤž:’ËTO>(¨{…ä¸(Á²ÌÚ ô ÊÂ;”nÉÇÁm=îWÆŠJMµ¹P¹ãmþæX¹yBö:Y2Q>ÔÌĽÀ¾:¿$‘žK4±8I qh›’P€ÂC¨È’Óœ äp9Á® øÔjSóŠt F@Bèf÷Ø …ƒ[ûr®'R/«ÄÜ)eXb¼N•8Lºyvú0Ÿ[X N¯ùÑ$‰¤¦"Á7›‘Ùás¬Ü¿;Çμw;Æ¡–À˜7©µ3g>Üê]h0FrܤûX@zضÚ)âÁ¸®sþÝ~Û6Ç©}¹u]À¥€Î]—¼n4†IbP]‹Ün£Œ¶AÈc¢aѱµíW¨š¼i™Y•0©‚ÙtSê7@©«$Ç¥êíìöszk9°“ò¥”CIfÜA§ñÃ@þ!–òåÈ•‹µö¥­oºñá̓Ȓ­ößz4ßΡóCýqðkÝÂÖ6ø‘"ã±_ðU!b$G:¨!In00kD€ô¹Ðʲã´å8¥“lUFÖ µÃ/hÑ*"TøAn!I×WIð„îe=ncFäIVÀ7’¨—Òg̱NÒäÿ'îÛº"C T¯õ?À¯ Î%‰•0Pû±ë:n´¤T¸ö#Ÿª¦à¡ú€þEu‡·ù²´Æ6L$PüX-=/;^«© ‹0WKU†Å¨>µ ¶ä¥ö<sÛÀ4Ñ»Üõˆ}·÷šIµ–ø³ü¼5H¦k‹4Y 1Ѻ6srG¦ “h© öäÊÙ= €nHâ†Eï7„ie¯sc;g™Ú46Rm¹ÝÆ›Ù^ZØ—~@õƒ4F €4©h„‰eåþÔ7¬ ™éÃ~óãGrÃÞ/˜êPe¹ÃYŠü¸ä•±k¶í¹= Þp;°;ÒW³ÓBþˆÅÍò¢JÇоóïp`´éJ=½pT;Ö¦Î!vÑì=2’IB2A;sÉÆYG;ÔM&O’С$ƒZYÛx”–d)u,]#aÎ¥›1`R5²T¼ŽG”Ñþ`Sc²0Ýe0ûº)¦~ˆTéB OÆÐRº `%a³Lí[ÏöÛ·Þ8ÇNJ­Lcu¾Tk´ÛX_’¥*Û9FNlÌJäU±‘`± ‚ÙÓ/›eÎmÚs™S:Kêaž7GUš¶šeut’wz‡Ë;WÒŽàË“I€Õc<ŠOÙŒ`ÿ;@á)1‰ª àÁa‰s$†+ØMÚo»]lÎQ†g‘ a}¨htp têk9ÿõÀ /g½!Á¦L¶t=¹7°¢ßÙ¤ÀÄ@g9ÉYyÙ´t>nH2V¸†ßwŽ}OÌ—v==$È(ß@›l8 \è¢8K.µºeÕ]°K–t(ûíÛåÛˆ/9Î+Pä~›°CHÔdd,¡ÎW}¥18A¤`"øä\rÖeÒÁÌ’)Õ½òœd}‡À;Ì®@ÍyÖH9'戗?nCÇÅmÞ$.³tyš˜UØé³ÑÉŽê“鹙ͦu©³‡©Ñt©Š0!Ýø ³:‚R=ä3²ØH¯ø›¥Þ4\ R¥¨ÁH)×Õ`RàÃâv"®]3P­Í)A’( ssûÚïÍìóLKi6Ý—¶]­”†²ÙƒÕËf Ò&@‡~3L;Ad“²ªÜŒŽË#L¬p®ûwçvkIí›Zˆ|xM‹€T°¥î¬Ôδ}i‰r¦.ãmÛÚÒ{ËÔHëC `Ág¶=´­&û˜¶Á̃³ÑÂø|!K]O_!…yµ„/ÀG<×Ü(éRÆ Úòß ñ2ÿõaÆ)"içé!GâåÅ é'°†ôÕI‚£‘Óê>5{ÁÆH¢,\åß2Ð#Ií’d€³0«ÛcÖü·I`r1`’8á~I6ó­[<‡?s˜cú+§sXàå…\Z®Q1õ'á`-À‘ÎÑMﬧֵ‹ÆËÎuM‰ÉzóÖ·µ©wÚÜÏäPªœÚWvÉ‘ævá°ìå'…^) j'²«=±û¨ò‘Ì¡D¬ÏCW™MT £d%­H0…K/{nêkRÑÞ£Gî ][¿‘F5ÇÐqAd …Hƒë @‹T~P5{­{ò Hq#9¨€áPo9™ö“0‘4s&Kk¨ÚFê?i&QÒÁ1Ež[pMéAÔówÜi4ËÂÌÊ Í¼§, ýÜ÷fZÆ ‰ p"Yì3¹:·³†¶¿œci9 tzÿßÓj+3‘B3­£Qà@4õ[-ÏÂ#I=ü´éÞÓq¹š’~?ú…,6ê ‚ÀD°Q=¥„¡™J:‚P „ëWûábä £; #d’, ¶k;)Ô2G¸]_v4#²Ï`:¿§víÏ\À餱¡k0$Œ_p­HÒ§§û%±×u0¥QZ°5R‹)Ãí¡„aèæì3Ö¦ô䯪|ìà6[)ÀF"#Qbg1 ;§åëÐ/,`(¼ øcJõ—×3°XÉó‹ÁLiF7UåÚçÑB«Àf5VŒ‰!Èð/ôÁ<練Ó*1 €¶ßU8³æYS¿fû–•ygïIÍÆ”Fíüg‰ªNžç– `€@E.—ÑÎýZôÖ¢µ>—óïˆÙãå‚§¿kÛ/rð ËË4'-²³@†YÙLv©öFõrYµM C 3aÒ<«È ÐÙa½.)G&22Æz­ÙL 8‡'5Ê%0ÊÕ 4C¬†g\3ÎOçL}æ|ø-‘L‰Ó™ÒÍ@6oW‹ÑƶnÑb¬KŒåEŒÓ‹YÌ#ÚlÛúèÄ(ZÔ‹lóZ²±_T%IœDX&7k—èÜf[ƒ}NøÝ˜æ’{ ×ÀÖ éV2ÀEí@ƒŸàëõô@E¬ã`m73b%~™FÓ´^GpS€ë€Ì¤‰öfé­÷h¡‹µ”Éü}ù,>uEé¢x\4ŒÓTE5HÈ4W0H5Ô·YN”^S¢i¿B¯LÀŸœ¸ íÈst2‹&…Lr” ¦Hò“„Á”ôa¡ŸÁ—g¦'°°žÆ@>ÛlàCÛu]ÉÌ7”I€$çŒÀ£Ä›74¥Ö8Åîp+^}çÃøâø0>ÿäŸã‹Ï?¿^>ÿä_âËåQ¼òößÇnsû¬·Þ%åt->;h1¢¶¼²2¥—‘ø·hÚbĺh,OâéGÿ¯]üg<ø­ßÛ÷¯Aöà·ã7þ^¼vø8žÿû?ź<ÞwÑÚŒ‹SñXº&(¹ '+Ñ^…«5’ ªt+ ë#ÀòZ£i=\Òzîf@ò ^0ÖTWºè铚ÏBSE?—‰üÑ,71:é³"%¿ßéøŸÒΦW²ë*Ãëìª{Ûf&€Dfü!~Cfü€Lø ˆ!HŒH#+ŽCŽ£$6Á‰ãØÝ±ÝíÏdÒí¾}kQÝû*Kµž¼ïÎQŽtî­:UçÔùØï^ßï‚ôl…ƒ°Ù˜+—"¥)á¡J 0ÙYŽ Á]BnJìSR*O±cäí¯ãWïýcÜÞÿj\ÿò_âêÿÏÞÿjüêýŠÓù³ç߉<Ý"qÎøU/·.r冔èáÀɧB@$êoSùzöÒñÀpAbr¤ƒoë„TÉI¦@ÿÈÁ¬z8ÔøÒÕèTâ üý a8/#´Àöô&â“/æ ,ƒ‰ÉËú¶zر«³Â —ãŠÅ˜‡,ZÊF2e>31y‚n;Äv¸Ž›'ŸÇ“/ÞŒ'Ÿ¿y~ýÅ‹mñü³¸“l±¹€5%—ˆ¿‰Jp^¿í9jPÍjüÀaÓzGô좨us,=½ÁD‚˜ïÖ)ŒÞ¾ª»ûzßr¿6шË& È „àˆAÙ~~Œ ¸OŸ®qRnر5„*Iõ„Œ[¨sÃê)ˤ„îáÝJVÈóB« cŽ3ÓäêúÅëmz,çwæAjÔÀï  iO%³OdB³±a“Z¤bH£¤ŠZk-GLsv">½Ümøô:ÎæÏæ´Kѯ¤1UÏÂʼÿTÑñ3„q/QzµY®¿eþc©”dôe6BP¥¨ãiÞIz¢j_.i˜o ¼¦3Ø@mP—ÍR3##²2M^€íNDð7Ê'-–¦@Ö]+ïmnA|ï¥àE^ïÔ)0ZßõR)É[º¥`u ˜%… „ÀPk­l¸¨%k%9&~¼^’ޏJ(ôMH¡¬‚^Íl"^e#ÔwÄÎ¥”ذÄg’®œ £­æ X}Fÿ&¶‡?Á< H†&Û6qO8y±BC«€xÍx\@0icüiÐ>bBˆ®Z÷ç˜/è$H”Í3[»D2±X÷®/Í~2ù†§S»aÑíµ&‘[×R•Ùá¥3‘Œµ9G,’‹éÝMBéµTsJ8jDx‚Þ×5ïŠícPÀ‚J p±¸T°a²me>s[QÁÜ‘5|xL–F Z¦!=J%¤ËœÍ8‚ë(„ š.¸%Á/yþ¥®“[™#˜888‘ ¸f¢9W’ÍCr»C óZÁ)M"Q$=×F`ÄuP§F#l*%p¥&uÌy,”æOûã×O"î±Ûwçþ$lô^øffƒÐ"¾)¯W3žCrìo&³ƒ¯ùý„d¡´!ÐdYU>P¼Fª¼ ²H]$ª<@µŸ¡9–Ƹ;î©ñS2k…c±e¦DN,Ð,¨1ß PÁÑÞTÈú.ë‚Rt¥·ÔdˆiH'MuÂËÈ4®­«¨öVÚT„CÆÑ (z…øí=ܤ9jÕÁàç¢Um“i^žŒˆê¦#\Rª'=—5Ùã:˜s™–››–pÁÊñØè aùN£L l4%'n6\z ¯PgaJ4;„”cÓDÁ*ÇCÄ{F<½sœÔÁ0{CýÀ¬(2Ö#\*‡¥˜ç.ÑõúÐ``Z¦¬!T^ç)Õq:NžÒYdB*Ž.>"@%G.x€î0ž9†ŽWMâ ªÎÂÂ%·7©Í¾–i‚²œ$TÝE3ÔRß…zQû‘X†&‡ƒ˜Ñà…„”c³D‚‹ƒØ«›|-$À:….ö!Ès†°ã° /e—&£ß¡\¦PÕƒª«³Ò‘Anôà³8.%"Í™–LÊxJ8W}°é^[T3”®´·²»(pìÇÏJ\£©^¥R¼>«/8\ÊÈFN¦“r”<HµjÐPTµœÚå£ \ªXq<é=­MûÒ¼°¯'¢á¦c¡8_’™(É@8©ï/ÆÎLé*S¦¦è¶œ_àtÁóª°@ Q¹MCPÃ2Q³öp. Ì%ºÇ6÷ñgQiIµR `}ãmÖé@ÐQ}Rv ç.ñ]n8 k»Zù»¼æ¹îOóâ5ò–T‰ê$“ÎI¡p m&Z*ؘcgæPBçÒ™½-¨jßQ.KƵ ªÑm“Ôãõi;ÍûyuŒxð(âæIÙqŽȧE¶ JÀöt ±Šg `ÃIa¥‚çç÷¹”¬¢`š×¾ÄäziÁFÉeì9J·µ QöÛ3Í1”Ù®=ÓI+2¿Ïp… A"}lôw)È3!&5·?žÙ‹Iþ3/ŒžÊmLÖÜÛóʶڞ£”ãuœ ûûiU”àþ ÐY;Šòå0¥Þ^ë² ÝŒã©d\“ï5ùPíP™ q{ûbì`k°Â;2tš •[‰XÞôR¶jWºõEÌ¡“sÌäòkf‚4¦ŒÞ-âñ“ˆŸ?ŠW¬¸¤²¹˜qI§ÀAïAG8µÖx×  ð’JZ҉Œ ù^¾ÔG9˜:pMˆ&Eå€ó#dαòóGsì6R¢‡èðTãÈrô{‚ÈxD‚%  Kã} ¶þ%ƒz©”à»`ß°±M]üvêâ—u{TQ< PÝt­™Û9€vãáÜ×€±Ä+ûSx]1@d\’ç¨ÎÅØs²/Ýë é¦H|ËÙv{gû–ÿÛ“K³#mË‚x^¥d¸b€M™^F.Ê«Æ *¹Pà,!A|8ÌŠÝ›§QÙ ›éïE&|b?ûB2”*VÕÀKå4éÇSqÃÉ‘H86´V›9ÉiÔH:›ŸÉ,!J7oNŒ1ÇÊ'_̱ƒ´ûèCè½.zÿ ã}M¢°$/f½R ¼ìì¥!™"ÞVÇ"ÝXl¬÷ADJRJ¹~¾ž}Ë7çeE8éĸ̭œ¨t߇H(½gVHdÀ'诧 W /Ý 4%©ò0ÇJy'É¥B2*äQ¶ê”ßpŒK­°„ϸHÓÂXH‰&y´Ì1ËH7žÄaÌ‹ÓM•ëHª»Ú†Dà ó6ÈÜ™6ØÝÓ´†±Û¢V‡#˜¨Ãi»ê0Ào‚Ý!A·ÎGÚ ì-U z7NN7s¬F;.ïA?Âô¹ú ¯Þ²”ŒY¼” ’žólqð"†ÇºôîÙ.ÉfcLø‹_΄ԊÝ$ZL 0¸€ö:/p] @î{€OØ=ŠVÜ­–ˆˆ¡ëÞ¤ és¥#È_‹ç±”}昽ÜqŽ‘Ç•¬lë|m‘°˜ÚÜG¢ŽÓ fÔ—é¥d š±µZ[¦;ÓsðŸ.è2`g™ÅÞ­ê]ÔÊu[‘z‡` ?ðéXQª’Wƒª¥Ï¾ðäF´Ã\qk:U’@ã{å(ÒLþ¤î´C’˜÷ðt7FnOP!krïä>0>™Të#²}¢rJ®É Vã-´“ëŸÝk’nûŸ;sêè*nÁÏqS³U˜e¼ ƒÑúŠ—ßäPò½RI}|­&2?ЙP IÆkÔê )eÒà”gs%Ï11‰ˆg[{9KžÌ1r< ”Ç$€34•iú”§*O25 e§ó"¸‰äš±Ñ¸Ldu·jòt=¤Ñà UáÓy2õó8ò¦o)ì–&}“q8‚`䀯ïh 6óØt|lPÍ£ôàæïà"/m5ŸÃ}<%EX¨½°@7&-GÑápàâOt¿m}çzŒ¸åbf4t˜[c%û@ôÁ†]FRžöÃl8 pYB¤N=7•óäû_>Ž‡Æª ÕJðe¤U)×”!¤Úï¨fRÄï >Øt\Z²HQqæ—ªåB$Ó–Ç1P¤zQE‡çcbŽÃd¯)*ø7ðš²x7‘gI€nÒR¼”.jW=ºÉ^\ÎP“Ñ&L! LT+[F¥r͸Êÿ='…¹1Žð|@t °†Ê‘⬹ö™9âëÍ8£ùî6” >}ŒßÆ!ìSÒ_Q)DðûBâ‹Ú?€ÿùÌÇqŽ‰óØ˜±·¼¤ÎÄHzÊ==Ek·½ì¥Þ·%n0ª¹©Ÿ62×Þå”'T9”xÊÍÞƒû· Sßyñ¤¤œã%aa éê;ût‡Ì*1À3Ô赯pQÚh+>hØNÚ+Í÷…”y)<¢¦qæXxçÁªí°è<§Ù¶‰ÂâÆÆÄ{•tˆÌ×è² p¤9ª§$]è¬q‹ÍK9>lÆÛ |»@çû¥ĺ«hBä©ÁÁçþ7 g—P)ìE‘‚¶#Í‹ŸëØ¥O­šÅÇJ7YÖñ 5˜ªx14Bânþ”À©cY D4Û ²ë! ¤'ÚKâTz+9{¦’r£‰á ¤Š (@gŽ+85êíAÁg’<§4îöäñh¿ÑÁÂÿ•¡±7ÍË«ä|ÆÛónÇÐÒYÿ¢˜U„ :÷j4›-ZÕœ>Iü Y^ÐRÿËS“à¤l  ð ½¶Æzu—r"Æ=¸n©îµíTçöôé6Ùž»¤¶s_Ý8QJ-îÇצ) Ào´Jóòe9ŠÝk‡šéãs¤qoŽJ·Â¥e,PÓ†×$=NÞïñÆï ãlÄŠÜùžÁBÄÛHÚJê¶ÚÏ׸1&u}5ƒœŸ~q¸¾ `°j ¥‹wŸÃÎ7Ê5w‰êǦ“Ÿ‡ª¹–´ìRÖ'5ózÖi^ìR¶•ÔK¨‘ÅusýüÙÏ1p}EéÆ^qÂ[Lr¡Š1'A&&”ÚZbá…6;6Ö¶„ ¼ŒNåȺŠ·¨ Îê#÷£ŸòÁGwë lˆmbÐ6±×ƒ|Q-ÎüN4æ1 ¯Ü Î;Ó¼8as!ØÜ=’ 5ç³z£˜® §%›àÓÐøA£“ö\m»óGŸÍ1I‰¸)Ï7™¸ÙË¡GŒI¤9 M°Ùqn€n{R.´ !›ê1ÉŒü´óÌ\ÚúïF<»‰`÷‚¤´w–xåš»D2«ØšÌŽ5Á£Ÿ@£êD©Ä×T™¹ÍK6Ìdní8Ìg}~æô.é¶u ‹n¹èQ!3Í_‘Ó1d×SØNT‡J# O©$#”bÔí…”‹â­üò&âõNÀ1À2€ÑIÉ Ês7pV”à,`Us|.í³«•ZšûÀɧ%›Ž[’Só0Ÿõ—7Å;é²P 0׉ú;Pï!K %; ´•Ѽb –´Šì—Ù»”6É×ÐxˆÒ…a« Ö5n•ØüàaS-IPSÛè )ŽçzôÝA3Å€fLŒT9X6ÏæEmÀ’œR­$6Þð-Øüùä)âx/⣇÷^&(oh„Hp±P™NHVl]z%Écçvå ª8õȦwò¤qA Èöä϶?TÃl]+{âç®·ZÇ(ÕrÎ|»kS3¶’LKÒ ¦Yi>n‡t“.yÚÅLŒŽñÑ”÷ƒ÷ß l”ž²L¨¼’ŸE¼ö½I}W¿ëéë9! 0CD‚’àkÌV³†Üäq‡ÒZÁh€ 1Ž–üY¶ Ò_¼­“Æ_˜ÝB©u¡ZNÕýý\Á5ó±”tRª0Œ ƒÝµRœª}UûŽ-ÀΘ!Èhý{ËMêË„ð¨Ö‘0ø­ÏZ·QYK˜Ž[z»-RU®Ôš­¹ B.–$¸z °7rª,³ÅÝP$ra¬Â åÀ½Ü\¹Fæìryÿ£ˆï|/âp%šá;ÐmëJN~0Òv¬8 ÓŒÅ:lH`l_g—øp>÷Án†b˜[y¸šÏôás¯äUÄ ‰òp¶p¢üZ`Ù¤jmg1m«¨(‹ê¨gIÅ@sÖ>‘ž¬…*á‘ò½Ü €H}é^ÄÏN]ÿøRu¿ìÒkkóªQXsB؉ªµ±Œ{z´yÊt²` é¶œ4hD=¡ÈîY«ö§Ó|†=œÏôÞumY1‘Zºˆ@$‹Öj[‚|¶ù5Я[# …~"9¢eV3æ SŠî,Ìd€sÝËM;0ŽÇ©ë?|qu/ Øttæâ;^ˆT1ƒ†¬ú"8M´ýÆëî÷MüUË1:á„äŸAÙmóÙ=|8Ÿåñ5ÖSgPº· Yºêû)Âpn%HµŠy¹žZ¥ õ^®0èêthÆþ(Ñ\N“Ư~7âÓϧJrZƒŽ®aª[T3  L–ÒœLS%êðçÆïÃÎèD3Ýw l a÷Zƒ-NS¾{ŸÌgR`³(5‘EÃUHKQð¼/;Ï Ä²þ#{u+<‘8QKKÎÞÕ°Õé_ÆÛÐ,ø=Oµ]y—ÏžE¼öFÄF¯©Ÿ‡£;à{J(%å Úµû<„ÝQ«î‡}|RÒQOèûrb³Ìãõ¼ç¯½1ŸÁñÏ1$­Q×éÄ+ÀÓü Ž­±8ÖÍ.(l";{AãÐT*âb{MÉSM ÖÌ¥Ü:Þ&šu`0îkQÁñi°¿öݹơªÆuaGî)8­LŸ^E5Ê÷­"ø8ñ$¯‡¹”FC²÷#¿KUkÇ¡î÷(çÁJ°ù‰€¹‹\Y#é ¡IAH ’ë¨+EX§tÍ˸ )2¥)¹,$‘âXƱ@Õ³À·æ,1ž¸ ¬iKÜÿ0â?ߘ6Åñª=¼¡¸9ŒÄKx¥2ÁÛ¦RÇìê=„¡èò8Y$¶‰4/Øi¿Iù8íµó=ž÷úêJ“6tÞ¶¥³ 0¤„ KxÐ+C7ý¬TÆç( u@qР7‡’­^«Æk±/¤›ˆ é~Ã2« ¦MñµW">|4sù¶&í–v$Ã:¦Fç:ê@jØ5„j)GÐyÕS‡bB”eÎ{x¸š÷ôkÓf>ßkóîp$í³ç îÊ>â±âJ ª“É~rå¥,šsEÖ*d«&)XÔg©ç6CTªG"ùMÀÕu{éHévÝmÄ«Så¹v‘ºL‡UÝÞ–.„ýö˜ª´~ORWžs))‰×5n<¤Úù^Î{úì¶ì5ëÜ!È×` "PÍ97+ÝȃÂT0&+˜¾¬‡«Î€vO6Þ´“„žn£Ä„ˆÇ@q´”.ز”J•ë»ùë¯D|ð\Ú]Oàå‰*2ƒÂŠTV $SåíÒ©ü{Ÿîå©Óe&¥tž&Ð×óÞ}ýNc¸¾ªJmŸsºl‘LÀà ª$+Æ„6|¢ó+¾#‘€Iï˜éLº™x[4çD –Ì“ôÙ÷t{¢ -¨²ªÇgŒèˆW¾ñèóˆãDù©ÊŒhSÑÆñÞÃ’6rÅb¿+$˜ SÀ^x‘Æ4ƼGç{u¾góÞÝ”T++ž©F{–@[«á˜—nɦo‘è¥NÖw[3ÇÑ#㑵FH‘Ú#Éx†ÐÅÆS'˜Æd_òMÿÄu¯SÚMà=ú$âµ×#þç#ž>›1¤éÍ„v°¬ý†ÿ"RÒ¯cYàfÞ¦‹Å™²¡´Ã¼'OŸÍ{ôÚëóž%ÕtIœ6°ï;ÝF[—cMJ7Œ€?7ãjBd±+¼€²B;»+_fVÃf‚äâìÕÒÙjkŽz×[¶ ¢CåÞ½¹ýgÀ}ã[gà½= ‹ x¸á»(Í}A«T)¹JûQxVíÀ&ao( ÝÌ{òoÍ{ô|¹¾n ⢜†×jL Ü;•ß)ZdÃÖßI•º…}੯4E Š‘­+¨ÒyÉá‡þ¨ ñUPól¸œXvÏô®UÛgDLà=½À•‹*whï£gä"`¹ˆ±8wP²«ŽÚù}MNˆ­ùú:Ÿ.hÜ›†÷R¥t¬g² ɇ껜-¦=ZЯ剱zu3ä­©²J¤ÝÆ^ÉD [j[˜®£Rs¶!AWƒÈïxUßà¥ÇT»ïib Iµ‡”õ&'{s—t¼r@ã@¬àõlj2ËÏÔ°l¹:¹ hVMº#ÔE,Ðs ¿@¾³‰XŸ”¬Ó[6ÄA´º˜6Þfr Ãî%MTÌÞ÷ÏÀû×Î|+âá'‡ãd ‡¹ož ªØÁ3<¥:ïHÂW¯Žs¶>ÍÏÇa^Ëá8¯íoÍký>€&Wž\ÈÓ ªçí:Rã’¡)ݸ]Äå@Y EØ„oÚ\Lì´;¥œ¤¼Ãâ‚ÚžUY<˜u *#5/€7¹OžF¼õNÄ7_xõ¼¾ýnÄã'3}ìøò]ìm”Z¶)U·UmÛ^×!«(9G¨RÇ\/Ïsüd^Ë«¯Ïk{ëy­/5  Üý3äæC¾·pžá|(Õ³õpøÔz"‡õ-kÓ@& xT!^(E­Ê d}[Ê;‚FÇ‚ŽßuLÊ"€LJoÜïxˆøðãˆï½ñïßšß·ñäˈÛÛR;G=𒀡=¨ä4i+*Õ¬L†S–M9ÕÅyŽçs=Ÿó<÷ó5œ¯e^Óñ0VÌÇ‹VVa9`|F‰›Ÿ4QZ«íPTçàx6g¼F7Ô©¹l²ÛMRÎÓÄÕ÷¡Zâá­3ß-è0¬¾O°ðã5×Ww|§;ð½9ío§ó¹Ís<Ÿëùœ'È&SuÍÜѬqãk&f»Êp6¥ñHÇÍ “ÜÌ>sÚ>N‘ÞØ“ŽÍ?lÛz9ûæ©ÔÊ8Eœê`s9]$yÖ¶¸œçK̺'š ù,0g´ßÉÆÒŠÚ¿9A*œ\‚Xµ*§asPÎ:À7ϦJöÎýiýéFüÑÎóûÊ_L0DF\¿Ü¸5ž]\»^º”;^^ÃÓÇóýí)â½wç½ù⟜×ÓmÄ—O]z“€  ¥$š0 °MDz@ô$· ‘…fGGM–:^Z%nGV²÷¨ïÞmo©n¿)A'æRÅ1ÑÀ§’rÙ¤^f:ì(’µ_&  lµIYÿ Р@ÛÈp›~žÍÝŒsÝàB;­"©ªæÓ³)A|4?ÿÉû•ò•?8ŒâdüË?+nF·ð§jøþÏæÿ1î@öA…8~ý¸J”£Î­~ ÔVãéUÞKÚµ§’Ÿñ\jãm_²@W œ¯sÔÏ·6 ³Ö$ÛemÜÉJ9\X¹]kP¢*7—Ò¤€ @â!¦ý^6üwu¡ƒ)/¾×¹êƒß¨…êùqT™ÊÓ›úÞ|¹ßÛïáXË%'¨.–«c½. F€e²Ëh!Þ /±ªRØ6]7Ç"UCOA‰W+¥UÊQû”tkðxúScj¤BѪ"µ”«¥éÎJ¢D«"W’%ñ_nn7TgT1Kòiµ2ÁŸÙ5βÃj÷)á’ ŽÌ’ls™Ž‰Z¦*û– Ǹ Fo ’eÙ/Ab«\ù¦÷DRÂò3ž7*žë×5êm ±¿¤Û¨ñ‡¿ùë{?¶›ùI°Ô2Óžµbàëó|’^çlC5Åßdá…ÔìQ>PNWõ²B i=…†„g# ö¯’ÞΉôŒÉŒÿéÊm8§ˆn„âSï –„K&D %e±• ÛtE ߬~{‹í¯c8Ó5a =‘tí§%vU¸µº†zT-4èbG * Ç_âãLôš Ñ  XÀ÷Àâ1o Ñ5Ôþ*os8r!_ ëSò„tô`ã³=·ƒ¾0Dî%s+yüRËôíÖ©--Ý+XEÔÞR¨iŸã§ˆ¯G[JM¢­o3¬ë®˜€÷8A–CQbð;®±=”툱jÖè5 cq¹ @:Ñ9U|n]¬Ê¤~YΣI³Æ¶ µB×¹y)GäsôI·ž¾¹æx ˘¥3õ=ïxá~Ó7–g]Z;Æùš‰ÑHœ¶çBýÞݬÑI+×›ÇÀ\A©g°vñ¹Ä1©ÞZéY)O{® h8T+Ÿ¤Üº¾ ª¥ŽÕpÀHIFée¿?T¯œÅl_gª!˜Ìk”õJ5ȧ°ùލ¼Þu³Fm#q»oØH)¯ŽïƒßsQûä>®˜tÒ @cþÑsêRUÈ’rª;:6bgì+ã3Ò¾Tá ‰¼”øŒÛ$‹°¦Þæ½r«Ïcd-—ÊY;$"jµÊÊq<–;‰ƒ¨’â¿o…¦¨ãIhE©hqí¥¦G§B`Á£S¡jœÖç®ÚÖÙLâ³07yÝ‚ŠÛѪ µEsbBÊ1»!”ô⹑4R}æùÿÙ½Ç;—Ö’¿çr(}–“Hï3`ãçÂeø¡ml>Šì“˜r2Æ%Eú¨l@ÁSÖ±í˜KJmk[I°ÑPw$©ºI¼'Ïñ,]”rRTuV¥'×¾æ¶p½ à”ÙËâ¥î‡òÖâ÷×í§pmûÀÚ ñÜ'©&rEóH§_öûå¥}(t3E\Rp°Ú˜ôfœ^'çͧڶ«•W3·Í>…÷Ì’ššAÍ–bÊiâX– [wD]»ÚMȀυ“7'ëÝ`sžjsD…LVƒ¥HÀû} ö‡ã¹8G €×R¸B¶üÝßC. 8 6ØÆ¦{)mFÒ>:Šõ„t™Ö¨–: l”h¼é¶“M-dSf_ëdf[GVª=”ëŒ 4^'¥{@½Ab-=pƒ÷ׯ¦¨v(“€6 x ݻӼTža©Þö‚ç½.ï 4áða%’$²ÅiâÒS4Ñ 9'EüBx~B%¶ÆZµ¡Ú*À0ÈØ–·ÏÖy”ma°;€E¡$_¯W«îb°áù`¤ýi^>öFoÙªx?ØhŽˆsª´>ÚsYÛ½Ö; ¬”£ ”gŠäìE5:'°¨vYõŽ`!`(„ ØZúyà éÍAB)̊؇ã@’RËgôЩ {´íï! û{Ëßò`sAyŸ ªò½LûGÑä!’RNóEFÛ­ã•jƒ§¹0^;îCã\ĸßuêÁKÕÜK.ÿZxs-57Ï™ûú2—u9ÝbÙW{ø–_ž^o HoÏQÀxl°®²R»r¾!|gÒZd–µ¼h_ág΋d%rV÷ÁOC(‹Š #!²/…;>̃ÞÔj¼šò¾ÒŽN)uêõºY£ï!$^…4`ó΂MÄûh¶¸1o´?2¨Å°)7"­ËÖ¹Q²Ôb\Ökùe2Áí´'À ©UM“c襥GŠ*háÄ1ÝOÕþ´S<˸[ƒ¶Ãó£ÜH2©˜˜%õé„T%meéÙÌ3:$ÚV)ÑK4 á*e{wû\C¿£ƒö„¾/ÞVéPcØ\JÞ?Óe4‘ˆ,$›ò’*Ljrbräk)Í8Ó3(lG_âC@+ê{}Ä}Ôpf}¥ÙÌ·Ê¥,^ÍK¹D–´`U¦(ö*¥ß¶îûƃ)ì2iK:/™ c#Þ9#—CÅ·SÁ¬ÿÄ{ðè ^Îÿf«Øªö³êÃ2v¹û§5£À‡ÌªH5gkóà6›RÊõÞÜË:7í’QJ#9÷Äâj»á±W6‡±%x¼­Œ‡É°'E³Æ03«5êé}Àâü|jØþfË ÷¼\’‚Qyw’Æn¶žª¤¡ž‡J W¨†”c wÖ¹y6&Cd]êÀ¹ú®¶ ûŒ*¤\1sÉœImßquœ%õßÓÑ Gƒ“…«UÓÛùÞ0"ïðT`: NÉg?ó”}œàš–G{i„9©ôšú2[T‰È»~v†¯x%À‹ïz›À×Íù¦ˆŠôgPÕÚåñ¼Ü}檯…ó—Ú YãžXœ¯/ô¹ÞSö@%#LJ7t•øÚSéùD¹Í ã 0€çLªÇHqœ~KïE)|"F•B¨\+£ý-ƒ9«ø¡ôõE9 ÏÍI+2lm£ïàñêA¢yâï™K)¯yGTÒ¼&@û”ŸqâjžµýMì“@%èË'0®d¯Ô®€ĉufM0ÑS©cK»ƒÅfã rÓÄC›žìJ5F”ó»„jEùçã\AìËãM]£‘¾¡ï¯I&ÕîA)êiø<ظ/c{þ9Ó±H½˜dfÎñD¦ðI¯¥§¦ö5M>£œ×pgøêmvõ±$zÔÒ³NEì °kç!ÊVüXŒ±àÙŒE&ˆ­AÜ4åÑÒ„1mÝ¢#Ã>L ‚ই5Ax)·ùfŠ,ü<+-gO¥{û2™µM'÷µµS¸ë¬’uÿA‹gÀçùJ„WSg4…xðζ®›àc† <µR2h.nh$¯IH?ƒSŸ9O©Jj†”v©ƒ‘Ûcl[nç5Ÿƒî·‘–§O·u IæB£s-é”cÄ“ñÆšŒõÞ¹ Ûg :ØM)ÂIo©Öª:F™ÌÍ*W:p¯¼êèxNl¼Ò¦”y²"y_ðß'Wà:­ Š0"cœâø¹·M˜úü13è#—*#·ù Ÿ +½qj&u€öÀcÌL‚zþ“ÔÞE‚gGv‰ãï6v qà€çK¬öi”üÜǃ ÂAÐøÁ+éR½&(æî¹ãø$ÿ8^¿ˆÛ¸7[rÎd°*/oÝC³^ÔëVÊ“ÙúÄ%û…ec7jGñzK4ND ãù§w.Å>u<´ n7´lµ:4zÌõköf2&—uîèÉVû`÷œ&8ŽŒ‡&¤ï×ü}Ji^$«ÏmÎ(?Kåhôç^µÇ`®×¶½ÚØnâÉéObûæ¿þíí_þ!2#nóy‡¤¬ÞÎï£ý¯×8ç¾ü?÷iïÕwÚ÷|õÝèÇÃùcIŸï[‡Ð,`D6"™S6 €õR!ªML~A_s,œ°([fQ€Í/ç6€‘ïëøl¾|† dr'š¤œÝ‡Ÿáýc»}±í'ñwñÿR½v½LIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qrect-coordinates.png0000644000076500000240000005331212536324473023073 0ustar philstaff00000000000000‰PNG  IHDRæ&8¤,V‘IDATxÚí]|TÅÞMBDÅgï(UQðÄÂS{?»‚JAD°‚`+‚(T°‹»> "½wH%Ô´å;{Ïf2{[ÙÍžýÁþ&·ÌÞ½÷?gÏœ™´ÂÂÂH$Âw¾L»Ðy¹öúþiéêÊÛ›÷\ïgÙ]=¸¶ø^§ëtßO ºßë÷½Þ›²ÅwW‰ßÈ÷Ö…| _0ävyA‰ýûöéÛOÈ#v})ß›bŸ¾ïûL}·{ooÈÞ ›þÕ‚žrÈãtA×4Ö| »Ä΃n~Г Úá_-Ür|û÷Þä AQâÆÒå ±:ß;4ôJ„ 4üß²e ßù2máÚëû§}¤«+ooÞs½ŸeotõàÚâ{®Ó}?%èb|¯ß÷xoZÈß]%~#ß[ò-¼Gú~ÁÛå}%öïÛ§o?!Øõ¥|oNˆ}ú^¼ï3õÝî½½!{ƒnNøW zÊ!#hÐ]CÐXó5ì;ºùAO*hh‡µpËñíß{“ƒE‰Kÿ•K<,Äê|ïXÐÐ+‚ÒIJŲŲŲŲ“†e ²Ù‚lA¶ [-Èd ²Ù‚lA¶ [-ÈÞȲCA¶Ür?Êý(÷cb¹‹ûÏË‹äç™ÜIã~dodÇþÄO^nn8À ²Ù‰Ù……h,>ùäåW\ÝRP Èd‹e ²Ù Ù j×^rÚiÑ-ùù‚lAvʰ삼oþí·¬[n)ÈÊ"ãd ²“²ëÔYÒ²¥ [qÙ©å~,ÌËÃ][óÚkÓÒÒ6Ϙv¡3ä~”û11ÝÑ–Ã3 ˆ +bDîÇ”aÙŽ'gĈ™iiy³fÞ-–-–-aD,[,;AY6!;wæL±l±ì$`ÙhCÍ›:5wöl4Bn©X¶â²%Œ²ÙŠËd ²wd;ÂȦ_~ÉìÐ!ÅŠ(gqB¦Ù‚ì…ì¢?¢Ü¡±liÙ ò“–--[•ü¤eKËN¼„uþ f›ÛJyIJŲDËÆ¤0åJiÙFR²M¤” [ A~ 4XzÖY òd§\Y(¶9U ·EA¶ ;q {~íÚ‹—-ÈNM÷ãÆo¾YzÎ9yK—Êý(ÈNÈ6Ù‚lA¶‚üÙ‚l±lA¶"F/bDÙŠIÒìÇ… bj¨ìGEŒ$:Ëf#//¯ ^ÁØ®ìÇáÕý(–L#‘HÁÊ•«V)bDÂÈVCvÐH+ d—øØ¼{Ô…EÅö|Ç6¡<¨_È^ûÚkÓÙFÊd‡Xfi Ûå6‰¤¡4·½4ƒÑÕ0ÂH”ý(aäŸFŒéçääi¥FÐX·nÝ»ï¾;“¤¸¾ÍkÆ ¹¹¹k׮ŠòV{‹¯nøì³ÅÍšå/^¬â«F¼×–ŸŸsZ_ô‚ùmÚ´‰¶Ç6oÞœo-ãí“v^X ÓÂ;쟂A±zõj߇Ûn?p$ŒH)™eã#—.]ºjÕª-Ö æ$\p¹0NÉÌÌ<à€þüóO ïO“ÝOY¾|yÆ ÓÒÒž{î9ü9gÎ ƒÝëK.¹dÍš5ƒ êÕ«¶¸ƒ‚üÊ=ËŽþ$oذpáBW‡0Œü¢•wM.Ï™„}ñÅ•+W®^½zÕªU«U«¶Ë.»ì¹çž·ß~{óÂuëÖ}øá‡i~4T—ÑΟ?ÿý÷Ÿ={6ñÝ ü¹lÙ²ììlÃÜÑèß¿?¬óÏ?ÿ»ï¾³‡†X¶„‘í‚l2‹fÍšÝyçGcÄD@šš9ÅÞEëþb0üöÛo.È6‡ÍtxÊ„ *Uª”å,G€_ ¡¿þú‹#ï}ûömÓ¦ `(uêÔùå—_¼?J¥IȦÍ|øá‡ÿú׿ئÝŽC‹5Z`-Ê…6 ñãǦÜ_ý5Þ££Fi¸ûî»y䀾úê+ZšéœÌnA,*V¬8mÚ4ÃÍ=·hÑ¢{÷îÑB7s‡17jÔˆæO9î¸ã Š{¬0ø¿ÿ†”'-[½MHçíÒ¥ A“ ›~ã7æÎK#¦9b:‰Æ—_~9fÌà)ôB¶K¶ÆyóÍ7IÃiâo½õÖ{ì±xñbì:u*FŽ1ìæØc%1ÁëÁ¼è¢‹JÙxwF— »ûìsúé§ÃÈ€¤ÿùÏ*T¨°×^{¥§§còhìû„Nh×®]FF¬Œ9’³BPfB¶múDùSO=ï»ï¾xç¯,ã§àý¥—^ºð ±ë ƒêÝ»7ÑüÈ#4"ÉßÿÉ,NqIÞ* •"Z¶a¸‡z(˜lpÉßr(Ä l¬W¯giК¡o`¾¸ß~ûaìêì³Ï&Œ²Á\ýøãׯ_Ÿ׸qã'Ÿ|’mÈq8¿GqDË–-O<ñDlœ5kÌþŽ;î8ðÀ± Àzy%>0upà2.õ›o¾1}×]wüñ6ý7A~ZHLZö6 #ÿþ÷¿o»í6~<Ô·Zµj§  6 sGFûé§ŸF»mÛ¶dÊ7Üp`.¨x<.–Ín/»ì²£>š3D œ>lØ0´áxÜu×])ÿŽÑÏÏ?ÿÌ3Ï<“’"‡+FÈ+¯¼b+Ú¾#ë?úhá‘Gæ-X ìÇrɲaŠJz\¾ýö[ØÒ!CÐÆb“&MÙ@Uèl?üðþÄ;ƒÎÆÓ¡bÿý÷?ýôÞÿ÷¿ÿ½öÚk€uþPË~àx$ìïhCEAP9h¨hâW¬X?[·n NctÅN:±tŽâur¤Lœ8—Dú_3]ŽÿûßÿR—wÞ¸q#µl@6eZ?輑Ñø¿ÿû¿›o¾ÙÌ ‚RiÖ>½(.[©4å)b„Ïýƒ>dS,¾ñÆ)áí€Îr²¨€¶}úô1&w뭷‚ÆÇ ë…mW©Rf ÅŸ—_~¹éT| Ðjx¿M×\sÍá‡n : ¯jôèѲ1ûìÚµ+·ƒÙØâ5§ðÏSë+¬ËËÞ– Ȇ‚ä?4…š,|ß ÔOŽ:ê(Û‹n ƒ~ ŸØ,›}Bò†‰ŸrÊ)­ZµÂ0À† ^C÷#à¦LEýÇðËãÎ7ñT!áŠ$ïgÙJ¥)ßîÇ÷ßÍŸùÓN;­C‡ÆDA®aNt‘?ÿüs³ äg¡ñÞ{ØîÊ•+±÷“O>13H²lBvíÚµyä‘hÕ糞zê©Ã; ˆ×ø=˜>}:ûí·a̼6²»uëF„QUÜÇ)¿8––-–½=,¼€Â4A(½Žd4²ûõëGáÏ€)&Œœu²¡lð쥭ƒ_ƒË€Ý|ôÑG Õ`I Òp6b×§Ÿ~êbÙ¿ÿþ;/ 2!Ûü0²Ïr T†³l%¬§˦0 Ȧ»& Ȇ¥AÄ dƒ˜]à dï¾ûî.-‘œÀ²zè!4  2ÚŸe ›#²ßyç@¶aÙôÓÐ÷#/Û|@6 ÞkÛÿø#׊ËNn–ýÏC6üð«Då…µkaÙ¯¾úªá)'Ÿ|2¤ ºÁJf8é…t ãOÀ1ƒ)smaTø¥>ï¼ÐÀYøÙàõFÁÏÀÀy ¯íœs΢Radš„‘ò ÙøÕ‡9Ñfà¤ÜÁ] p†Ã ÃC㦛n2Ö Ó…_±cÇBæ&É5‘é Ô‚ŽeCÁÔÞ¼ƒ.À IȆ¡2ùË%ŒÀ?iX6àâÇH=®œ“;F¶DÃd ²!S9DnÀ¶ÐïíÅ<`J×9gšt?‚˜^ 3…ˆÓq¨ Lö™gžyôÑGá…[:t( òÞ{ïÓ¡kC+Çé0t—–‘!òå—_f(Ü8çwžMR9äÎ^!Ûù ›~üqùUW8®!e?–?Ȧ E8ª‹6~Èá$¹tÒf@8ÐÆ.¤±Àä¨e¼”p'z#FÀÖ9³…~ÂNà6§ÍÓ·I–mC¶aÙ€~ôC7;›ØN÷#÷Âýˆ-äìîÇŠÀVç‡A,[ZviµlŠ÷ÝwLŒ(%ГŽ;µ±é^FìƒAÃɆ‹]˜ Nž<Ûa©0Y°ˆ€x‡é|ðÁTŸæW\qE†óÂütøðáì ®|ò ¼£+txÕUWq$sÌ1ÆÜ§L™Èæ`°Ão•ý˜:Z6qˆ k„F)tÀñ'hõ•W^I dC‚èÑ£sk1“CÜO²Ã¡Â¶1{$È5źK/½1$´OP ô€œ€{Œ?0Ô ðø!Ë~jÂ8?Ò\Ø?þhĸC…eÔme?JË.ƒ#0&èHÉ5nn RÎa—Œ˜Fà6Æ ÁùÁäƒ]‘wØ¥HÌ‘i8€±SðIÂÉI‹§¹!;^½×í$ã”X S,;¹X¶Ùˆh%Ø ¬…Ûˆˆu»‚ñ@Ô¦‰ ÔUÄõŒ·ÜlÛ*˜¡tÛUí½ó>xq¤À5ŠHЭdÅkÃ&LØøí·´^±l #¥‚lƒ­¶›bL4hC%è~äð0Z³É¢4?GFų‹í¶—ÛÓU¨W_}5ý?Ù™°î*Æ&ÈN)ȶcæLñ[å°!Îm#%Ûeż&dú´©7RºÀ—¡×Œñ‡ZÀjwhМ½á‡éä(ðš2°Õ}sèï©]{‘1¢ ¿ÒØÿVA¶ù³ ()Úõ“™¬m£¶ F òÒ”¡PÉÂfAó8oW‘€…\©Á¬ñþ /˜ˆl_;PöcJ±lS•×€¬1›iݰbh²IÅòýP—qº¨Œ >ÈqA” ߌ7­×Û¡ ØgþàÁƒÑ8÷Üs!ŽÛ=ÄÅe׫·¤U+Avý»Šm-d»~•ͼ¿ì!;—8`‘¦ÅNiÓ·˜ù,ˆà~ðB[/AörØ{4ŠöÛo—µn¿l™²#©·Ä)h­™nm_­¶”K0 ¹Fu‰„¼öžÑ2¯Ç y±Å*.»$-;\ë/Q˶>1Ñ'.k$ÚÚåyíÇÛ·#Ö~,Ñ/᎓'äÇ%0ÆJ,Av¹\•&|o8dÛ)ò†Fyë‘•æS—80U'4‰&¬-×ËCÙvŠršXj‘ŸDÍÌ››]F ¡†‡ QžŒóA½9ÎÀ\ÕëÊó®ÂL¥œV„O¬|' öñŸµ™³ðxœg“Ý¯ß @¶S3â(9F")³Ä¯Ð4gʾj^‰ƒÎWrñ÷Á8%'ñž;kÖÜ}öYrúéÑÃâÝ0F(Æ^{íµç8kcÚ?œvۥͺpœ5¹Pr€‡¡TÑI'dÏÀʳ0I´Ö­Ùåê!Cæ|ðô ¬;¯^½ '¢ æbÙZûñ^û1Ư@™™ O>yzF,<#³GZl¡Xv¼ MD # ÁlÌeE$1šÜÂ寿þŠ"BÆJ¢#q„i}üÑÅñÆ—÷œÌ2ñ.ÆRÆÂˆ×ßíå¡ÿÀ^×µ–mϾ_3ì\ç¹®4hjZÚôôôééHX‡62£zõX°` –]¾Yö–äYa=²iÓüÿüF;£BX쌌Œ)iiYÎêK‘x¯~øW؆>ÊvúÞˆUdŸÁÄM›6…¬å)°,à auÁЂ³ø ÚÀkÄà‘÷„ô=F CA^FÇ“¶£ÂÎu×./{È6'àw?jò…wnt²HÑ^[™³÷Zç²LjÄï\{/¥·˜OÏê™ ­«Šœ±<0…E{yU…¦gó5ž#Ö^×ÂÑÎ?ü9¯IÀôÌ f8„ef¥J Ë:tˆrg5?j[|±m¶øî²_Þ]öñ¾º¶ûéÝkŸîû¡Þ÷ðþ}ûôíÇ÷Ý{UÞ—ë|ïƒïeûöàÝî½½!{ƒnNøW zÊ!Ã÷[‡\CÜ·Þ¼f¹zøð©Ž¡Æ,lœÉÀ‹bä- åk]à‰·±ÍƒÑñbP3ôŠÇ>Ï3ãÔ3ºcÓ¢s ãÏ5C´xÈ{öºÆ~¡÷sÍÆ¢†/2ÂÝ#,]wýõ×›%vFH ²MškA#m¤¿2sÕ”(@Å$”5ßá,»Ð æv_|ñ¬´´ùˆE@#ŽË")ñã³ÓÒæî²ËܪUÑ@ÍèØéÎÞucÇF÷V«6·J•9¨÷´ë®±ŠÒNæášÁƒÑ!6âô9ééÑžsrŠ{þöÛè¹U«Æz>æ˜/¿îwf™ž±ZÇn»å-^lz^ýÌ3q=rHÁúõ¦ç _}e÷¼èØcck)9=çŒi÷<¯FX{0 Ö3öV®<ÃkN0§;,{aZÚø 2*W®Â:›lT‰ýeÞ톽Ë~ywÙÇûþéÚî{¤w¯}ºï‡zßÃû÷íÓ·ßwïUy_®kð½¾—íÛƒw»÷ö†ì º9á_-è)‡<ßor vÕ*WN«RåêJ•V¤§O±Œï³329{w þ‚x!êj¬„ì{ï5£,:B4ˆ!†3ŽVÜpCl9£l‰UQ¨uö®80vnµjh,¿òÊXàŠ³wåwÆör„6jdÐ×]g÷¼Ô‰S4=¯~ê)»g×óí·Çõܸ±½Žšy'Â"?ƒ™t¨¿ˆïBmÊuaA"”o$ËÆ.˜á,E•=`µ£ñI–º(`’`w$d;ŸõkW\{íÊž= 6lˆ°Ä(®fΜÌnÈêÔ ÿ2Û·ÇSŒÎÕ¿~ÿ}E›6Y;guì˜yóÍhä¯\Y Ê_}…c{;tÀÝ,ܸ±¸ç™33Ûµ‹õ|à ÙNÕâžÿ÷¿âžoº)ë–[ V­*åÏ?ëùŽ; ŠÁss§O·{^Õ¯_ì±±çŸÆc.î¹kׂ5kŠ{þôÓXÏÎ÷Yµê Ëô¡ÎIKû©I“›ºwïxÓMȼGdwÇ¢Ûf‹ï.ûåÝeïû§k»ï‘Þ½öé¾ê}ïß·Oß~|ß½Wå}¹®Á÷>ø^¶oÞíÞÛ²7èæ„µ §ò8|¿uÈ5Ø=tºé¦¶Ýº jÑbc¨Æh)ÜsõÕí»téðQë µ6QSã±8n€×¸qÅc#´O{„æ GØÛ¶-¸ã_¹wÃ_ÄÎíÜyí‹/Æ`×Ù»nÌ»çU÷ßoе/¿lz^qýõ«Ÿ|2®çÏ>‹ëùå—ãz~çâžÛµ[Õ¿¿² ˆçÐ@6J0IŠ….PçË®ÑÈãùŽÒ(õLÈF\û¬aÙÈ‘F¡f–…0‚Í‘2ÍÚŸ(pÄê.f½”ÀÅ OÃ)‹ˆƒñÎÔ#ÂéÒ²¹ÿ*T´×dÆïÓ²½¿scËSœ½ µ{æFNyxU¶gÜ>׬}^¬…]U¡éÙ’ì#EWŽqZ¶éÙõPHpÁñǬ禧g9ȨíL¬8â;_®-¾»ì—w—}¼ïŸ®í¾Gz÷z¯ÖÕ›÷=¼ß>}ûñ}÷^•÷åºßûà{Ù¾=x·{ooÈÞ ›þÕ‚žrÈãðýÖ!×àîk CÐxàŠxp›£5%!BÎsró¾3?Ë貋Åhk F…­e;{íÑíÒ”#öèfxœÑ²‹z¶Ï-Ö² q/þ´µlkìí-þ\ç܈uÍáZ6 ̱r |Œ¬ƒ4%Ä~ÜrË-¦ò"Žäa\ûufPç ‹ ‘P³C¨á¤íy6"•¿TšÄ ò‹õ‰ŸÐõë7¾ðÂW§Ÿ~kZÚâ±cc³0ûù)È/‚üŠð.ªþýö[fïÞ³wÛmAãÆHñuÄO;›ÆÕ ´qoÞ0Œò—ýÈjà/ê2.\¸ÅQ–a|Xâ>–Äbn*„”mР ‘¢¢†Yœ ¡ª"kJ›õƒX Œ#F$Œ”(ŒØÕ òœÙ\ÆxZLs*ÐF6ÈóHÖ1ÙžªÙ¾Âˆìr/ŒDŠj|"tïÞ{ïå’³×#GŽDq], dî BQº ?bÄ”†F½r»Pêsa}Zö‰ànÔïå’[®pC¥Òìx–mMµòsþê«QÈv²£IPJXËN0–]\b¡( kqóæ(ŒSõë×wù‹/¾@Î+ÜÍ,µ‡z(‚ö½‰­&´è“O>Aõthö¯4¢ôøá´ÏZb¦H \Õ([ƒU··X‹=+b$•#FL¡·h*MéÖ~TÄHF…buå|íÇräGœ7n\zz:"~ÐFzk×®] ¸XQÛU¤±µó²Ù´½&ìgñbÃ|ýõ×ÙCÏž=÷Ýw_Ž«£Ž:Š ƒÒ÷ˆF­ZµXÀ×¤É ²Ù[¶f¹^AvBC¶„‘2F ÔÂÇxâ‰'òݜۼysV0¿† ‚"[|×î+ú@MÞVN¥`lA)ƒ¾}û²J$Èûwß}·¥hQQ4®»îº¶mÛšß #FŠÖ¥eKËdûB¶ZÈ#& ï È(P`C6¢îQWלç‚lYÇúX#A&èpòäÉ ìÇF^Õs4°6ÝñÇ/Èd»Úyóçç/^¬ˆiÙFò½ŸHGè3ä–g$ø²¹‘)…NÈæ)& Öî5kPW ˆÞsÏ=¬ñHåÍË0îÍîÝ»²óüæ¿FRMñ•&‚fôF$Œ¤´0‚ò»X¨b _¬[·Ž=À‘øê«¯Ú,û¥—^âò¾!}†h_zé¥XJ‹@#e–»–.]ŠŠSõ‚Mô>ªôre#±l±ì¸»O‰jŒHd{!›[† Ÿ!j0¢Ý¨Q#ˆ ÷£)ñe–ÿ`Ô–À€ÕM·6d£$ >«ÉQfáFíåòL§D£nݺO?ý´ [­ìGA¶ »dÈ6: sàÀ<ë믿f’ ÎmÖ¬™ ÂCE¿¨nƒ‰cUÐ^½zm)ª’n¢¼ñž““ƒè€ø<—têÔ +h˜ã—/_>}útÛ™)ÈËŽZ×›o®ï½-NÙwA¶ [×-ò\69Ëë™X=œÈä—+V@!ª2Ȫb?ø'*7öéÓÇ|Iw¤2ŽÕ?øà~(?™8(¬nþµoÚ´é–ø’‚lEŒD Ô®½H#r?Êýè˶Ê}OGþ‹YkZãhü‡XÙšdÜî–ga½ ¸.Í/¯Ï8ã ú3™þΪvau¹— ò«_‰'ª¸l¹Ų}®$¤ä‹-Z@A”´¹:*Å ®ç½HjÇ'â§ÂNFçGùå—pr¢ñæ›oR7ˆe‹eÇeשÅÄIJŲŲKµÄи`Á8ÝÔ3¬™‡ÙÔÍé¿þú+ôMÇFd¨£w¨.®ÞIJŲ•ý¨„uAö6®Jt—Jca‘¢Ò€®«²9ur ²Ù‹Ž;nÙE ²Ù‚ì­[HÌ›tS"z—m¼vÆ]^é\-È.î?'§pýúðDA¶´ì”Ó²}·ÒKu%ÞÆ-Z®WZ¶â²ä'Èd ²Ëyö£Ö~”ûQÂÈ­°.a$±…_i"hF/aDˆX¶X¶XvB°ìM?ÿ¼yÒ$±l±l±l±l±lù‰e+bD-Èd—d›µÙ‚lA¶ [-Èd ²Ù‚lA¶„A¶ [-ÈN5È^zöÙ+Úµ‹B¶S2L-Èd ²Ù òd ²Ù‚lAöv@vê ²Ù‚lA¶ ;Á »èHØ,»QA¶ [-È–0"Èd ²Ù‚ìív?¢µÇŽÝ0a…EÙI Ù%¬+a] ëZûQ ëÁöQºX¶X¶Xö?JS¯žRi$Œ²Ù‚ì$ìÚµ—(•F-Èd ²“²•ý(-[Z¶´liÙI£e/lÔhéyçIËNz-[-ÈdGR ^vAvvÁš5ª—-Èd ²ÙZûQ-Èd ²Ùe¸öcnnÄÁb±lA¶ [-ÈËd+.[#ŠQÄÈöGŒ8ÙkÌyíµ-Ê~TĈX¶X¶X¶²Ų%Œ²Ù‚ì2ƒìõë/iÕJ-Èd ²ÙÉÙuê,iÙR--[Z¶´liÙ‰­e+ûQZ¶X¶X¶Xvr±lY~Í5Ñ-bÙbÙbÙbÙbÙ‰½* Þ¸Q«Ò¨,” [-ÈŽhUA¶„ #F$Œ”Mö£³ö£²%Œˆe‹e‹e‹e‹eKd ²Ùe1âd?®ÿøã ß|£µÙ‚lA¶ ; ‚üLö£‚üÙ‚lAvBC6ÎËn¤ÜBbZûQîG¹å~ügÜAO°4îG:¦Aëy:å2.{Aݺ„le?Êý(–-–]Wb£ÀRQ}·{¯ÐµË—gyO·ÛüMýî»ïüq4î¸ãŽï¿ÿžNÙbÙbÙbÙbÙ>÷3ßyqc~˳۰H{;îªù“Riò¥—^úÌ3Ϙ_JßÓ ÓüÓl9餓Þÿ}´GŽy '”æ²ËË^~å•Yݺ)û1éY¶ [½C!›ˆI XºtéÊ•+¹ÅܺիW/Y²díÚµf‹égÕªU8eóæÍæÎ7jÔèž{îA½ÎÏE{ùòå›6m–ѣG¦Ùɉ'žøòË/Üׂl #F$ŒDŒßwé‡~hذazzzFFFïÞ½‰¹xe®P¡BÅŠwÝu×^xv9yòd3xð`lÇ}>òÈ#ÿúë/làÐÃ!‡ÒºuëuëÖaËO<ÁÓ«W¯>tèPþ¼ôÒK8÷†nÀ¹<ñ´ÓN{ä‘GÐØ¸q#Þ tÌ1Ç⃦êå0aäÚá×JXWĈ []4q‹@“³çž{.æ%£F­»óÎ;±}È!UªTyõÕWçÎÛ§Olã7°}Ò¤Iâ8`„ üñÇá‡Þ Aƒha£%KÐnÓ¦ÍôéÓñ' §6 §ƒz›ÓÎñsÎ9Ð畽Ç{ ó;1mÚ´jÕª™IRª@¶“ý(Èd ²ÙÍÛTd]â¶Ûnƒ4Æa‡öðãAùÛ7nŒÆ”)Sp{)=šßlC¹û#‡z(=Š<½k×®Mš4AãÁÜe—]rrrxÊO?ýtÐAå„×V»víñãÇ»_ù„l?Ð ÂA¶ [-ÈÞrÑEaü[šP'  º¸‡×\sÍ]wÝÕ½{w°ìV­Zoذ$E‹Q'îl ê u(8ýºë®3§·lÙgaW¿~ýpè ï/¾ø" ›:½”h}ôÑ}ûöEWIìǵC‡æ¼õ–Ö~TĈÜr?ºy»Î?ÿü«®ºŠøÈX´§NZ¹re í]ΫgÏž=öÐDz!Œ,\¸ý¼òÊ+ûï¿¿aÙ„ìßÿ§÷èÑÃ>*6!›B ý–и‰øÆ-iC6T"ZûQîGEŒ²Ù¼],H{ùçÇܾ}ûÅ‹~ûí7³}öìÙ¯é~¬T©ðBö±Ç €ŽFÏŸ_£F?ÿüÓœ>kÖ¬O?ýûî»ÞEB6¦D”e mA»^½z>úhJA¶Ö~TĈ„ #%#S¨É¸]¤À+jÕªß Ú_|1Øî²eËÐFz ŽéF@LaIJ»9ÁÅ<¤{ÅŠhOœ8§C Gb7!›kÁ‚{î¹'Ýl Ér¯e'¬­ý¨TiÙ‚lAv`Äg!p "¼o¿ýöC¨FÍš5Á£±<Ø B Œû É›¡{ÿý7b< ËÆœæˆ#Ž` Žg¬ë!€˜Ó/¹äºû÷ïß´iS“ßH ÿàƒ ïÍG‡¼°rä§ìGA¶ [½mäcH•ÇŒÃàhÆDãE´ß_|a'Ý€;›<Ÿ••EðEcĈo½õŽaÏ<ýË/¿4:À}“°ÃçÕ±cÇvíÚ™¸ì믿¾C‡$ݩًO:iÙå—Go‹•©/Èd ²Ù>×™o駤ޑ¢¢zF§Ã1&/ÖƒgÅBSÝÉ÷ô Žm¤~ýú”P€æ%DaÊ¥Ò 6ÆùS\¶"Fä~”û1)©’n~ðl`5µA¸Ý¾žØ1@p'@GãO`pžS®$ät²(Ü’hÜzë­Œ915O”°.÷£"FÙ‚ìí*¾m°ɪU¹sçæ-X€‘"¾UÅWÙ^³f ¼ h (ùA˜¢µÙŠ‘0’ºÂHiÞ}®Ê!ÏQUzüøÙ{í5##cfåÊ3ÒÒ–\tQÁºuJÞ~3ô Ûî;· y:Ê~”0"aD,[,»Ô,Ûá×¹³fͨV )’ëéx¯PiìËo¼Ñ”Ý*–mtmF’j,;û¾ûÖ<ý4§/bÙFق첃lç&g?þøTÜäŠg8¨=“ï»î …ÄàN)!»ÄgQö£ [-Èdod/¹î:Pì™*¯ùt{“SO5D×dûB¶²Ù‚lAö„ì=zxY6¤’¼ùóŲ·²µö£Ür?Êý¸#ÜLýÈÅý­Z´zf¥Jn¼Á_x¡©EWJ÷cižµ²å~T* [½½#9ï¼3#=H=-#ï O9¥pýú­d²—]rIf§NÊ~d ²Ù;²…¯¢UA&O^=xðêçŸÏ5ªpãÆHQR» [A~ ò“–--;aRi"±tǸƒdÈpPZv tëü*•FîGA¶ »ì!Û vt‘YÇÈÍ-têcÙ§ [Ùr?J‘0²“ÜzBˆ}J‘0"aD,[,{g²ìÖ#–½ ,;çõ××§ìG #‚lA¶ [Ù‚lA¶ [-ÈVö£ [Z¶´liÙ)—½ ^=f?*•FqÙ‚lA¶ ;Ñ!Û#‚lA¶ [-ÈN`ÈvVöÉêÒ%»o_e? ²Ù‚lA¶‚üÙ ò“ûQîG¹Ë0•Ü¢ÈVå~TĈ [-ÈVö£ [-Èd ²µÂº [A~Ò²¥e§”ûqÕïyþySm\Z¶Ü‚lA¶ [A~‚lA¶ [-ÈÞþTš¢ìGA¶ [-Èd'dÛ4!Ù‚ìrÙ˯½6«G-Zû1E„‘¼¢ÉTÐÄaG #!W>µÄ{~‘‹Üw½@^[â0’\Ÿ#žŽ¯ÕýÃÂl ÚB^Ñ‹í(y€ýgÐm·í<Ä~øqì-|*È/%"FÂa(²]@i··GË.ñ±ù~ó{å½’ð»#ÈN ȤðÑ…gG°#ð™G¹ÍíšÏ¹8©Ú¥±^ß/k®Ù÷ô‚¢ú!>Ù8‹_VÙåXË.t¦TsæÌéѣǦM›¢¾ Eú*Aˆ}nPW®]æZñgNNÎm·Ý¶hÑ¢R^ =öX… žþy£l˜OA{ذaYYYï¾ûî§Ÿ~J¡#H®‘0’˜ÂÁG}ôÈ#ðO¯ „€iÈTÝkÕA½™q…-Ó¦MëСC›6m®¹æšë®»Ø×½{wl4—Ú§OŸO>ùÄ6×­\¹§dffƒ º4~þùç÷߇~˜§øÏÊÈVöc9FˆP'N¬ZµêªU«x¦ëwžÓ1Â9lÔ=½`ù’%KÐÞ¼y3Ì÷‡~0ÉXüifˆ$ø3¿È7ÂO¡MsWT[¾¼råÊ¿ýöpýF™O牼ø/¿üðzï½÷a×®]ûÿ÷³gÏæGãý‹/¾8á„Ðøæ›o7n¼aÃþ1 ±ìdÙd…ÀÁcŽ9Æü¬æYqÆŒàÀ?ûöí;hÐ Ž„×_ýöÛo7”ægl϶v{mÞX,ÍãÃ?„yœ{î¹çœsÎYguÁ4kÖ ¤ÆÆÏ:ꨣ}ôQ^${0½ñ»€$U¬Xqúôé¼f{,Üu×]/½ôÏåõœtÒIì¹sçÎ]ºt1C#dê,a¤Ü²lZÉ·ß~[½zuà È€š‹ê@GÖ››7o h=ö;v¬1&û×Ã¥]x9¾Í¤@"ðãñûï¿ÛtØàºŽЙÝwßS„¥K—VªTiÒ¤I²O9å”W^y…ŸxÙe—aØ›A+–,,›òþûïoÔ¨‘m öÀp™Ÿãé§Ÿ~à 7°·»ï¾ûØcõ’t—)ºÌÒe½¼’÷Þ{o¯½ö²4—_~ùþóûª¼3E3¾0pvÙer3ÐxÍ`]»vEƒ&Ÿœ3Ï<“]§NÉ“'»{¦ûñŠ+²n½UîÇr1B³ê}üñÇÇ<°ûŒ3Îøã? Z5 †²Ûn»aû_ý…-ëׯ‡²[µj5räȇz×¼yó‡œ|Ù7b»ÿþûרQ£]»vË–-ãÇýøã`=o½õÖ~ûí‡]wÞyçܹsO>ùd|"ÆI:6,ÛV0x%#FŒ8à€p.ÆÆŸþÉãO=õTœÊ3~üø[o½W‚-ƒÆÞÿýït ðõ×_ãO\^H,Š ;a!û¾û7îCb´V¬XÁ#1çƒA†>øàçž{Ó>l|çwÀ$j×® ÑïóÏ?¯[·î¾ûî{ÕUWýý÷ߨûÓO?½Âö4h@ÙЉéþ¼ôÒK«T©Ò¤IàãSO=µçž{î½÷Þà¿4\> †„ Ãga8[kÖ¬Éëéß¿ÿgŸ}Æ6zæb°´mÛ´†¤APäyç‡[§ Ç%yä‘·Ür )Ô¿ÿýï—_~Ù xûöíñÜ´CA~©Ùßÿ= æÞ³gÏ·ß~6Jzâ‰'° ºÛ˜1cþûßÿÂò¨Ù=øàƒE¿þú+H¶CÝ£~“JOO0`ìï°ÃØY·n¶¬Ñ0šST´<ð@Ìõ0Äd(F@“mÈ6  IŸ‚a»(ãtÒ ô‚ëÄŸC‡Åö^½z}õÕWØÕ»wï–-[š1¡C³Z—ä-ÈN ȆÇšÃ3Ï<ó /4¹Ô…ÅØnѯ_?Cõ´ãðÃi…Á"A/=ôPh«W¯†QÙÀ®o¼mHaDm ;€þŽ;îâÃz«U«Ñ=“ @…Ãa 8††A ‡ÔÊrýõ×óÊÑ é ~K0”N<ñD𠈇è?F`´¸lL`lø=8î¸ã°VqÚi§áÓñÝ1—ª’ôð&€! ëË~¬[—©4‚ìò¯eÿòË/0& Ïk€=ÑÕ³Ï>û`Ð()ÒÝtÓMh€ª@çÏŸo„ø÷h‹è ¤†¿fÍP`އ7Þx»(ÃÜa¯œâõôÓOÃ]m vø°þŒ³è ÃõÊ+¯Dãƒ>1!w¶…¼À•ÀVŒ¤ˆF¾ ¥e'‘–Möv̇‹iŸ~§ßF‘¨Áäè¦Ã¶W¡a€:Ð ƒw@|ýúõ¹ 4‚’7^ 0'úx@raä´dp|4¸p½zõ€ÎG}4>±E‹FÆ0§A<móÃY,N‰2âùóÑM/üÙi{FÁ @_«V-ãÈáøÂ$•‚dq!³‹Ö~Töcyò£@Ëþ.Ѧƒ|2ø ‹IÎþ0m„HÂéN¡£vk‰&ØA¸€MÀž£  0Ú%¬Í ?¦·”/ð‚ÜÌ]^ÈæBTÁ•`½ùæ›/¾ø"`úì³ÏF $Øu×]Á ÑÆÌÀœÎág<9üP0ø‹ÙÉÙPÕh{¹Î #Ž8rÂ6ÁÆt¡ƒAj€U y!ô„8Jáx 8ÐX5„A3e0 Ìçx4mc±Øõꫯ¢nŽyäÃÎëáa…‡ÐgX6!€‹!Ãç¦ìŸHà S[ 'Ml³¼0»ÅŸÆ×JxÅLÇÇÙ°ÊB¥šû# ÕÔ|É;:vì[ ~Ìš5ËlÇtæˆÆÔ©Sas´Q²lLå(_À²mË€5²!Éa—¹®ñæc$p† 0´1Sv9®þC N¼_xá…¨dC Ù6˦ObŽ´íëGH9F’N >k"—Hf Ùx`… ¿ å/h6Ë6 Ãào9­Qt@ysƒË”§¡šK2»\Â÷‚§#>Õ%Œ@4¼?ùä“„l;b„²;X¶q?rjHÈnÚ´©-â…# Ù.ÎîÕkµCÛå~,ÿµì)S¦Û®á§“A° ‘`Іp0À–ÇfMÈÆTèOëçxhذ!äf²Él–m Û«eµƒ„STžŽPk~:¼¦FȰ º`ŠÊ€¼ bÖl³l@¶Xv’²lðY@ŒÉ–Â;ff&LèÔ©Uš.âí¾ûî»Ȇ:ÒM|§—¿út÷Ù,Í™M»}4zôhX#Fƒöø¹ø,\‰‹eC¹æðƒ0¦è¢t±lB¶FlÈv±l¼ã&Ø,[A~©È²©ewëÖÛŒ„;›êh2·/\¸Û)(C-84a¸08P";ìsXžQ=sü—©~ð0‘dò ¹9we£[°~ô €Æ(‚³ˆæÂróÍ7óx¨Õø-+’A²`U†eÛ(*ï&NU^¿XvÒ±lDnà¡Àhô_"2¤°33Â"˜,A~F¹çž{Œ– ±öÆi%Ž„‘#¶Úh&¬ñ¥€•šKÂ)†eƒ£àÍ@˦±ñ'?0¤ÕÐÙ1pÐ^¼x1ÎB€ Y6¨ Œ¿F»Å@6ä@¼ Ç;¼ý5›’âë¬ý¨Tš”`ÙÔ²A(ª·Àµ×^k"óˆ°c8%a—PH"°9ÈjÏ>û,þ„a+ɦ1–Ðæ‰ h@caW ¥aÙðу%Á.1WE=0?!¸|Æ!vXÍiÖÆývG<þ„^iGŒ@šÇŒØå>?qN"†Xvb²løÃa0Øø2´fbÐÂt¡nC@£'œ“*l‡  Ú@m¸a`-˜üÁbáhl‹é°!.—’eÛÉ;Ôa®Ä¡¹S„ÍsÅ5ŽiÌ!,º£Yp‘°X<ü¼ ¸\¹¦åzÃYvijMï–T8ºä²PŒë.Á>L¬3hv-`+äÑÆ-Ž/%½ŽàÑ–‚†&#C¤Œ˜ÑÖ4nà)¨I=6!Û0t²$(?~B@´¿u^@jìâ)¼B„¦Âi.ÀSÌUA'Á¥’ Œ£éVeþ9Žö#“ßœèW²ìS§F/úLI€%ÈÞÑe¡0‡S8QÀ rÇOóÜ1ŸƒÂ<ø¸irpGÃ!1ƒg@¦ƒ·æMn‹>„ŠXi-$ó)06ÊzŒú猗]Dd )Ø®ýu¨ÔÁ­Â€(xSLb0µÏ …èx}!Ï0ò‹`ìÀIƒ(Cr#ÿÑåølDpSÒÉ‹÷1J FBîOd‡Öö@6&ïÄu[QÊ•ôeÊÐØ¼ÝdŽ…Ôv?¥4wÓwräíÖNôžÎA‹üu)âuÉ%—0ѧ"ÿ,òk½á0²ÙÎØÎ·²™Ù;·,”¯¥Ñúmk±Ë-øNöÍï½±voE§aÂ~ìŠTøR@ÖÌóC½ÛÈо7Ü6`#†Ó€¡‡€s0 6¬LA(àþ]w­0 ¶öc‘I ²Ívp;z×JdÙ¥±ÃígÙøÁÆ/7~‰©˜J[/ÛÔÁã´«ÌÔÏ»¾#´ñÓO±3]CË ×.–b((z™‚ö•mÚ¢FŒæ•°sÌhñ`ß§1*Ùíª:Q-~„…Ç7µjU¨û‹Î??×ñéGâECiÙÿ|½lc$´4—iàh.,6ÖB š|O 2K{—‹@ØYò¦Ç¨4T;嵡u _̸Ðm£µ;t]3yDµ2ô–¥K8‹«A9Ÿe‚ü¢¢¶õR\Ë6Û¡V!5„󻮆 YùÖJǜؙÜiL¹èB°MÎ.šäúÁ6å•\µ• 9FÀ1Ä l‡ãšzC©Ü‘ò»*‘ E‹I+$ozA}!;†×Ÿ~:£rå©p<¦¥ÍIOŸ––6kŸ}ò%Ñ5ÙZâ 䋨æq®H2Èbgtv¤ÔK°H@L‡voj·ÅŽa½¶eËVöë7gÿýgר±òÁ œÐ—Hð: © ÙpÈÑaªtÙ?Þ6ç3»-EŸ“ºé£¶óE y5?ó&¦ÃÛ³Ñ-(½¶ròžX b€‰‘K »‰¸²ÜÜèo2ˆöWÅuØ{]!®sÃ÷:&²ãz.Þëé96Óä*ésç6l˜žY©ÒŒ´´éhT©øÎtâR 7m ;w«¾Q|…ÌÎýÇz?w«z6æ” =Ç,sÇôü6OÇä Üb½=oÞÌBØÑ½ñìžÇdgÏoÚt ,6#czz:,v^ýúù™™8ç÷lÍóœ+¼âòË£‚\ð[u7<+¾çîÜžéX†7 Úâ#à$3„š W0͆)c®o6|!”S€×ÙM΋)º2Ét]@å@Ï(ÂFÏšøÅEÏH×230ΜLø?NAT(‹&E…‘p ÒûK²×»°ÀVíÝq=‡ìX«Ò¸ìÃþ²¸•ëÖÍÞ õŒôt@vôÆ@ZÚüF"¤3~ þ?ÿ´·l÷ÚEʾgëÂûvôÌs \Ò­ƒ³ËÚ·ŸâÐ -ø3Ë)>±õ«gjÙ¨÷`³lP숻±Sz6'"J‰xÈÕ@œbÏàW0õÊQ!¾+`:Âx°Þ\ÂF”ëÐŒh%Dõ@Ú‚Z ÉáèÌÇ [õ©á^nݺ5¢ìÕ†7wFðzÆa¦¼ÓHÌÆÔß!Æ„#ûC6T¡dvî¼²wzeuï¾ê‘G ‹¼pÑ@‘·ßÎìÒ%¶÷Ö[×<÷\„nIgïÆï¿7çf¢ê«ê€ °ç>Šëù±ÇbÍžG*î¹k×5ƒG¬s7Nœh÷œóúëq=ðAqÏݺ­0À¾ªœ7ÞˆëyÈ»ç _;·wo–óæ›1êíì]7zt¬¼žîü#d/pjá F{îÕ+zUèyèÐXÏŽçgÍ A¸EѽìÙ‰¢)îyìØØUaoçÎë?þ8¶×ù Y;l¾f¬gÜI§l[!Kø8Ðîy“¯d_³Ýó† âz~啸ž_õ➟y&®g'0Îô\üôÙ³S4†=ãܵ/½„›PÜóðá±½ìù©§ðhb=wî¼nܸ¸žGŽŒëÙ)àez^ó Yì™w’OßôüÄvÏëYÏôlž¾³wã7ßÄõüüóq=ɽ´ÌU?׳“ýM ×1=àûô9ŸÈî×Ïî0R|®Ù`²ÀMJL²DòËxzc;½7Bt2=ÆŒ¯‡œe’ê¨d;{—]ye¬ç ¢=ŸzªÝ3~9ìž—;E,‹{îÞ=jô8±BN0g:ºv¶“¼ô¢‹ìžcõwŠÀbщ'b#.)Ös›6ѽðt9=gvêû\„⦥­¤Ò‚½Îó³{FcÉÙgÇ®ÊÒ‹š5‹õ윻¢}{»ç:Ø=g;ܪ¸çsϵ{^ê(qì7ma“&vÏ™NšRqÏmÛÆõì$†D÷:ßwÉ™gδz^vÉ%Å¥-Ðs£Fq=;‰!檖_sM쪜½«œêc¦g”ëùòËc{ž4h`÷œå$ˆ›žqp\ÏNtPqÏ-ZÄ=#'ÇjC´çzõâzîÕ+®çK/µ{^íä"D÷òpB\ϰg\6j¢F÷¦§ÇžþÝwÇ=£ .°{^ã$—÷Ü´iÜÓïÐ!Ö³c{ókÖœé`4ñÚL Ù‹N?}éùçϰÎ]㤳gÜŽõŸ›–V##c{vâXb=çæÎ;äYÖ5g;™œÅOÿŒ3ìg´Ö c7ÏhaÆqOß)q•hð¾qã¼´{^å ®âgtê©vÏ9Ž·°øéuTÜ3rÖ&fÏë×ÏÛw_»gürŸë@6q{gøPè`M]VÔ@ ³5¿Á d-“’óÏ?ŸÊ5¨:Kz1òC ¸ï·™yº Wc¶”ñ"0'Ö”«ƒ*‚|äÝiaa7PÖ6lÀ}Ä¿hÃÑhŠ'ž½qçÂjïÅ í9NuÙ¼¹l{.ÞëêÙunpÏŒ—Ê1cn­ZSœ¿Ì ó›5+Èɉ8ZvXÏ®½EÃÕÿš]{ïy«zveá'fÏ®sÿ±žž`Ì2˰ç¢scÇì°žS°ÌÅ_<Í¡1aÄáK:Óõí9—ÀqÙeQa ¶aCu7¢Gð”R>#WVZøÝØI=ÛÉ«„fÂ#mdWX¹U‘cÅÔ*Sx€M– 0:ËxðÀ12øÙ ÒƉÖCeå/o±FqÇÔ*f ¤º–½{»œ·|ùÚ'Ÿü³AƒAH¡ÄϘ”_iÙ‰©Þ:£ZÊt'º):Gt3ªWÏu$þR\Ëds±Ö#‚óÐŒ[¬T&K3³‰yݲYx€·‹¥;ÙHse}iv…äU²MÀ ›A™Þ22^È6 ÒÂÃnÂÓXÊv´ì¸žËl/"(kŽ«1RäLޕ˽.Ì*Ûž}3MʲggÀCó]|öÙskÖœsÀ‹Z¶¤¸±RØ\=»‚ü\it;üšwFÏ,ßÈ’¢.¸ÈW_}5—‡%e†§ÕˆÅv£0ª=Y†]Aç T?̇ByüñÇy RÇáö¤ ÿ$2uÍÒ¸¬¥Š FJLº÷Í© OÛ O‘ J½óöž;ž=’7Xr-&¬²‡ ‹B¶Ö&a=¼pD‰ÏÚ{{CöÝœð¯’#ô8BrÊCn‹ïŒI}twYëÖ™N=Ÿ½âV¤²‰³Ô(5ƒŒÖAzÓ @@I ÅC©`.jÔ˜zå(ö‹»Ä d¾ õ”å¦QX‰]!Œ Œ6#¾Q½,ۤ±ì!C†àÇÀv?"+›¥c¢îÇ”M¥)1½Â÷ªø3ȲPªä§TšíI¥)ñq”˜J>r‹¹§ѵ"hôÈm þ‚©™Jƒï‹Ê-µÆÐ† 1Ä(@jFGÐ"óPðÖD^#(#VÏ–ùõj †à1Rœø)¾ÆÒ+æ ¥ðW? Da·¨6ƒ ‘ÌŠâ³€JÎê§À±ìR³lkΨJ~bÙIÀ²M› ‰­ý¨Ui‚ ±È˜2ËzØù!dÃñˆú\¦Âµfðh°lnAutMÍTÓÃ)ÌhuUR yXü8¬—DaŦMõ<0ÈO-Èd—7È®WObç,übVаK!šBFDûß²tætWW<Å®©çk3G(! Y²¯ÂèC^ž„‘­F´Ä„‘$FŠÛv—…Ò ëÁ¦bPÕ[Õ˵ݮ—gÚÜö)¾OÜw;DÑÔ¦FµÔ¹F¬øª [-È.çí´£ÉÀNªžÖ~Œ$ê4PTPº9ÒvìÙ‚lAvy†ì Ãd',d» þÙÅÖä'-[Zv9ײµXiÜ‘Ä[®wÛdA6˾`æbÖUà;_®-¾»ì—w—}¼ïŸ®í¾Gz÷Ú§û~¨÷=¼ß>}ûñ}÷^•÷åºßûà{Ù¾=x·{ooÈÞ ›þÕ‚žrÈãðýÖ!×à½3q»àsâ|óÝ÷C½ïáýûöéÛï»÷ª¼/×5øÞßËöíÁ»Ý{{CöÝœð¯ô”C‡ï·¹ï±Û•ÒÓ+ed™· @„—…ÌZIJwËdod³‘—•µö»ïòÖ¯/py3«{×6[|wÙ/ï.ûxß?]Û}ôîµO÷ýРoÔ¿oŸ¾ýø¾{¯Êûr]ƒï}ð½lß¼Û½·7doÐÍ ÿjAO9äqø~ëkðÞ™X©ˆË®[5¡`¾ù›7‡wÎ?!j³’ [ÂH #,×óÚk(—žÇ –Ò²¥e'C*Í¢úõ—9+o”˜JTOˆ„‘$dÙ\’jøpT‹Ïu‚ü ä§ ¿dHXŸ[»öB'û±Ä„uWC,[,;ùYöðá3Ù‚ìd좥×rµ°àE¥¤œbÙbÙIɲ%ŒH)—A~%RN±l¹“ ²×3·zõ<§œy$~ÁA¶ ;’5F"NöcÙ²%Œ”Oa„ yDõ(Z›9:K•0"a$QÖ¡à•.a]ˆ„‘òòCÈ‚X¶X¶„±l±l±l±l±ì2p?fÞ|sö=÷Ða.–Ä,[½u¿ËÖÚbÙ)½ÄÁ4-q –\ ëEk?Še‹e+ûQ,[,;ÑY¶YûQ,[Ù©šý(Èd'd;‘©k‡ ÉyóÍ-Ê~”0’šÂˆÖ~”0Qö£„ #IÁ²×7o¿ýòæÍÛ"÷£Xvb³ìâ…ÄœìG³E,[,[A~bÙbÙbÙbÙbÙ ¼öc~~~X¶Xv"³ìÃË–û±<@v‰âÎŽYNÌ{ý„ò­º™:ujTÑö|âæÍ›qÀ¦M›ÐU)ÑJ-ÈÞ6È6ÀhíiŸï7‚MÚ¶~Wa½0ãuëÖ…à‹ [ZöÎײ6l8räH4ò ÞÍ`à0âSN9%--­OŸ>øsáÂ… †t£qÝu×Í333Ï:ë,Ø}¸(&-[Zö6kÙ|Xñg½zõžzê)4ʰXÄi™M›6}ñÅ£I¼›6ѼÙUNNΊ+lþꫯn¼ñF4.¼ðÂ_ýÕPiÙ;SËdû~‘8à•W^¡éXa|ùÎ ?þøx=ÃY˜fýúõÿú׿¾üòKRo¼?ÿüóçŸ>»½þúë»víjÐ?ÜâÙ‚ìÒC6F…C»ÿþÀY4°%¿(Ë‘°÷#Ž8â‰'ž AòÈ<' >úhnátÒIcÇŽEc¡yóær? ²“² Á?ýôÓèÑ£ÿüóO‚8Þ¿þúë]vÙe޳ÊÁòåË«V­J㦹Ÿxâ‰ï¾û.»={v­Zµ–,YbÆŒ []V,° Vné񴮮h‡ ,xçwðŽö† x {àÀhÀ¤ÿýwƒÝ˜/Ö®]#ñç„ Ž;î8Ó!ÚcÆŒaÏ‚lAv"BöË/¿Lk¾üòËA¨÷Úk/¼·o߬\¹|$##ãàƒ†õ·iÓ»<ðÀŽ;Í;ì0Ú=C“&Mî¿ÿ~›h ²ÙÛ Ù4­·Þz«mÛ¶­[·†~÷Ýw§žzê³Ï>ËÃî¼óN˜(ÈDݺu¡Îæd«ãuä‘GÂŒÁšwÝuWœuóÍ7cã7ß|³Ûn»U¯^½~ýú0`lÁ4ñŽ;î ~‚÷=z´hÑB-ÈN\ȦÞ×¹sçƒ:Lmðh˜øÓO?M\®T©·geea`¼÷Þ{<÷®»îFÛSΞ={B@4æ.Èd—dÃê`“W\q¸6þÄ|î±Ç#ƒ®X±"í?þÇÐñjܸ1þÄF´ „6uj²lpjêàà(¤Õœh~þùçth€%Bª [½ {ÿý÷6l`"¯¿þºá½{÷†g X9 ›îØqµjÕ`ÓìçœsιýöÛ9¨8?ÅóC!| ²ÙeÙ ééé´C¼€¹?þ8ðƒz£A(¿ì²Ëà™ä1Fn¹å¶W­Z¶ñí·ß¢ýÐCsûôéÓ÷ÙgŸÅ‹eÍš5¿üò‹Ù"Èd'dï»ï¾£F‚É‚ƒ`>>óÌ31U¬S§È "@þúë/4 b3zýÙgŸ™‰ç<`».ï•+W7>wA¶ »L ûí·ß6F°ì Q³fMú­ê 4çé‡~ø“O>É~ ñU©RÅ Ù˜DÊaØFËÆ{5è°É·–ýd ²²1©Dè^… í7~üx+æ‰?üðäI“1âbÙ Ò‚lAö?Ù{î¹§éÄ Ù”2|!›,Û@öÃ? FÙ°dA¶Ö4•†ZöðáÃÑØc=&NœhE0B¨e…aëdÙùŒ0V~ï½÷R¤q¿ÿþû BtH†g"(•F©4¥L¥1¹÷Þ{›Hjà2µìsÏ=óB#ŒœqÆF¬Ó†qVvv¶FÙ†eƒ‘ n•$ƒ6Œ ƒÝwß^JãEW*ÍÎI¥dûB6d;º»téOú§Ÿ~ >þdðàÁØþóÏ?ƒ8ÈËF ’ðgß¾}O8áZ6]7½zõBˆ+q_-È.[ȶÈ6îÇqãÆÁV|ðAhÐjBûøã7,›é6„l0’œÂ>oÞ<ºmàuG'ô‘v€½”Y”ý(ÈN8È+áHùdLòyäƒ×áD’fLæ¢ ÈìEŠâíIJŲ‹e—æ„“/ÈÜ9΋jIi¦X¶Xö6°l_à pC”ûñÇ(tCB:Am ÿܹs ¬ñbÙŠË.?í3[uy‚lAövB¶­ z%vî•mùE½s!ûÿÔÊP®.ÌÕIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qrect-diagram-one.png0000644000076500000240000002262012536324473022742 0ustar philstaff00000000000000‰PNG  IHDRMù,¾ðD%WIDATxÚí œåÇÏœ3‹±3¶”í"’È–¸´©”hQ¶,Éž¥²¦H–‹’šRÖ•¶k/¥P)‰ÊžÝ%ff93sæ~çöv:™sæ÷ú8ŸwÞó¼Ï»œçûüþÿÿ³EdffÚl¶ˆˆˆ¬¬,>mîÍìói}ev<¿ò<Å+ÍcóÍ9øA¯oÏù•ïÁ@·á÷¿à{º×)Þ†oÎîßëêžwîõ¾wîõº¢Wš@/ßëyý~èrçó«Y ½y¯{ðLï· xe|ß+¯×¤T{ÝyŸÌïñ@/3HæA Õ9K~âôÿœ].—8çâ<Ì9—ž‹sq.ÎŹ8çâ\œ‹sq.ÎŹ8çŠÃ‰sq.ÎŹ8çâ\v»8çâ\œ‹sq.ÎŹ8çâ\œ‹sq®8œ8çâ\œ‹sq.ÎŹ8çâ\œû/1A~ò@iÎYÚ‚sütq.·»Àœ³Ùív¯¢cj+‡ÃÁãD¸7þä u ¿¿½Ià[°ü>…•›uâ\œKÏ/®Ýnþ´’ñ™’’’‘‘‘/_>뼊W¢`Õ ^Éú(þüÛ·o¿ùæ›K•*ej4k3¹EFFÆÅÅY¹™c `pQsÉ–,YR¶lÙ;v”+W®FÆpçâ\z~!9ç>!ðÀݺu[¶lOŸ>––V @ \¼xñܹsß|óͧŸ~¶{ì±äää‡~˜ƒ .\¿~ýèÑ£atÍÙ§vxòÉ'K”(Ñ»woþ¤¾À"(\¸°eÌS_sžÝ2ãŹ8çžóGydùòåhõ°aÃà³~ýú/¾ø"¬.Z´hêÔ©Ó¦M# 2ÎçóÏ?ŸššÚºuëW^y‘÷|A€Ý¨Q#ªƒwÞyçÇ|üñÇù¡&‡ùóç¯ZµêÈ‘#û÷ïˆn8>|xÑ¢E©Œ‹NžìÀ9þ9Áý÷ßÚãðÕ”)SN:ÅWä¹aP³àÈnçŠÃ]”~2È,øÝsÏ=¸ÐcÇŽ=~ü8dÞyç»Ü[³fͶnÝÚ¯_¿ñãǣسgÏ&DG 'O={öÄ».V¬µˆb üT ÕªU4h•5BË–-á?))‰h;û—_~95 ‘9êný'ÚØ‡çâü¢ô“ñìÓb"jž=ä¼’!¹X×ç<ÏgΜAŸ‰Æ¡är3­ñC† )]º4†ƒ‰Û™;¡ žÅþÞ{ïMœ8‘šÂœ"ÎŹìö ßïÕð.÷f¾2ò•uœƒxÎ_}õŸ¨4Qº"EŠÀ0_a´['šÄ¦Qݼ2¡ n_¨P¡&MšÐ>O¦Gíš5kpò Ttoê'#ÎÅù¥¯æ{Ï^ýØÏ§h‹(7q.Îe·ÿÝœ›ƒÆ´6XZC_ÎçÝ­ö-cåfŽh‹8—žkü¹8çÒsq.ÎŹ8çâ\œËnçâ\œ‹sq.ÎŹìvq.ÎŹ8çâ\œ‹sq.ÎŹ8çâ\œÿ}ý^=üÅùÛŹ8W¼=»pî9ÖÅ k1 ¬?ñ&ÎŹô<”ôœ‘¤f›9€3ÆŸYãOÌè´àçâ\zž9÷jâpDfd¦¯Xþñë3çoݹ9%%966¶Ôeen»£Ù½mZ-RÔR.=çÒóãœ#ÌXñßnìީ׺-k 4Œ(V˰»’vg]™—Vô…)“Úµo›‘žáˆtø>—8çÒólm·ó@¾|ٲ混(pKz®E¢ Ø3Ó]&‰#ÊnË´íýèÔŽR<úØs“'Z<‹sq.ÎCƒscÛ¶}[­êuJ¶Ë¬Ü¶À™ãNW†Y4Y®,[„-¶pÔ©Ý™Ÿ÷IŒŸß­G7 uq.Îe·_0Îùdæ¦@ÅúrnM¨lûu-´VÍïýøä; F?}$ÍÙAûwg¹Ò³bã"‘|pjî-[7±â’53Œ8çÒó¿Ê¹í÷ Ú.ÄcwŒ(YÉq.Ήû°Dßí·ßN8)|8ÿÛìöÏ?ÿηlÙbj– Å9¹‘ù¦ï7_×°f­‰ybâì™i.¿ñv›ÛpÊãøjЉ‚IeÊW.ž–nÝ„8cΣ²\£¶žrD޼¼òyrÎú\,°>v{¨sn¡ÞöþöïnýÏÍÏONL;›Òu÷ ôœÉçHX’²cгvÝ‘ŽH†±IÏs磶žÎÉœ‡ºÝnµv=v¤vµºõjö*–z2=3Õõÿ€ÜÙšàl‹ztA{â·ÎoFœªPêÊâ—ËÌÈÔ8qî—s¢Å†sùçÙˆsëë¿YßìææÉeŽÖì[ @™\i™Yæé¢ìÉ®} Ïì™›V¶tÙÒeJ9tzÕ8q.ÎC‡sÏ«?q¼s›®KVÿ7ªrVÉFEÍáÌ<½Õyâ› gBô••Ë-VÄéL÷êœ'ÎÅy˜sþ¹uðlÿ6s‡}ó÷[Þ|ýÝeム±këIG®¤\ùK/\¤daz½›‰(‚0 ÎŹâpÙ—sÛ¯Kš›>öÈÈÕ/OëßûÓ++ÌŒ+•7=Ý™‘ˆ q.ÎÅyÈèùo}cΨ˜˜•Ó^Ì×ÿÑ5ËÏ.xY¾Ì WÐîÊâ\œ‹óÐàܺ=WFº#*úÓø)yûöóYâ\œ«]- âí¾œÛ#£>}yjÞ¾½?«XAœ‹sÅÛŹ8犷Ënç²ÛŹ8çâ\v{hØíž]h©•ø 2Ñ81Î]®§÷|{Êî.ÿüìWÜç¡C‡‹ó0àÜáÈLNÞÓ°úùs.=ÏAznÕåâ<´9·Û3R’wÖ«*=—žÿÆùêÕ«e·‡ŸÝþ‡8—žKÏŹô\œ‹sq.Îe·Ënç²ÛŹ8çâ\v»ìvq.»]œ‹sq.ÎŹ8çŠÃÉ?—.ÿ\q8q.ÎŹìvÙíâ\v»ô\z.Î¥çâ\œ‹sq.ÎŹ8çòÏ埋sùçâ\œ‹sq.ÎŹ8çâ\œ‹sÅá‡çŠÃ‰sq.ÎŹ8çâ\œË?—.ÎåŸKÏ¥çâ\z.ÎŹ8—Ý.»]v»ìvµŸÿUÎ×®]Û³gÏ7Šsq.ÎÃÐn7ÉÒÒÒ’’’J”(!»]œËn[Î}Kq.ÎÅy¸qžåÞXQ\z.ÎÅyúç—DÏ埋sùçâ\œ‹sÅáäŸËn—ÝžÓüs4¿:Ha%ÏVÏã^cµ®±§]œ‹sq~ ìv¿eηèœçcû†â,à#Ü[G’Ý.Îe·_\ÿ,?ýôÓk®¹¦P¡B¦Ç‹Óœ’’²téÒ-ZðF8h4œýÔÔTúºÞpà &ëªldräÈ$'',X°dÉ’žò.ÎŹ8ÿ[9?˜¼ë®»F êF{ͧelŸ:ujêÔ©?þ¸ÙÊêØ±cíÚµ[¶lo û‡|,XpæÌ™Ž;r‰¶mÛöôéÓï¿ÿþ„ HÀéâ\œ‹óKàŸó-ÏùÀ4kÖŒê 4x衇H°~ýúÉ“')RdèСqqqüY«V-R¾ñƀݲeË2eÊ”-[¶C‡íÛ·ï½÷èñÚ°aCÎ=pàiPòáǃYqð‰'ž¨Zµª©>䟋sùç—FÏ7nÓ§Opåá+T¨ÐªU«‘#Gb–Ók}þüùü¹råJ¾z饗8Þ¿ÿJ•*½ýöÛÅ‹ïܹsùòåÇŒÃ*…]»v-Z´èµ×^;tèÐSO=ŵ°rçÎÍ)¾u§ô\œKÏÿ>Îyæ!C†àiwëÖíž{îÙ¾}ûgŸ}6qâÄÄÄÄ.]ºŒ5júôéˆ62®${۽͛7¯~ýú+V¬È—/ß­·Þúæ›o¢ä €M•A²ûî»káÛ/\¸0>>^œ‹sq~)íö»ï¾3ËÎóË/¿Ü¹sg:u°j`¸zõê#FŒX¼x1ÉÐí*Uª·C±gΜ‰µ¿dÉlvàåÇn'M§Nðù©¸\Í;××F’Ý.Îe·ÿ}œÃ$$׬YÎ1Ñ ž' ¼ÿ~T}РApˆ—_qÅXã˜÷‡~÷Ýw1ø?øàƒ¨¨¨¦M›„CÏ÷îÝ;nܸaÆaüsך={6ÕçsÏ='ÎŹ8¿4v;ÏÙ¯_?¿êª«â5jð •ïÛ·ïäÉ“]»víÑ£G¯^½^yå•ãÇ·nݪ‰ÏárStïÞ}Ú´i! çòú¨2–/_ît:1×Çϵ|Ýu×Q}X!wÙíâ\vû%î'cvef"mh¾©^}õÕ«¯¾º^½z3fÌiò¼&Ü{ÏÜ<˜?~ZÝ© ¨8‹x;'rÐsþ q.ÎÅù%Çâ¥ó|š¹ßLÿéÄÛëÖ­K ;œÞ/¦Ã¬×é&ñ¬Y³0Ýi{'˜‡u ösq.γË8Ï«¿ªç{Ç’'¢^®\¹:8vÄøY¯ÏJ+p*¦¼D®$[ÆžÈzÕŒ?ªÁ ÀÒKíÕ®&ÎÅyp~VÉ32‘ŽeK—Ý×ò´üR­cî¸J¹#cÏJw¦ÓuæhÚ O[èzrððQcŸñúÕĹìvÙí!`·STèU«V5jtK™Ž*m ¥žNÏLue±ô¶û)íQ±£·9¿˜4¸÷±ÆP/DØ#d·‹sqœ›èZÒω×V©eo|¨J§B§;a8Âî¾[„û¿Í•‘SÈqf_Ö}¿¿äŽæ·_]œËn—Ýœ11ì™Qsžn_,õ7ä¾/Ó–årfå.µùµãE7ÕÚ°åkùçâ\œ‡˜^çÚë“nXW¾Y\ÚÉL»#H;¹-#9ëËGO®[¹ñÚZÕM|^œ‹sqž­97îÞ¾½û¯¹îªkFGÆÆEaŸë—™S jå€c“º½Ô«wODŹ8çÙšóÛvÕlR¥Ö„<µuBòK/ÅwïÞͳ3œìvq.ÎCd‹Ûzß¹kg‹ÛZn;²¥\ÛÈ5c£ DÚ#ìé©I»SvÌwÆ,?}Z›¶Öøsq.ÎClü¹AÝáˆLKKyyÊ«¯½:cÏO;\QÎô4Wl®è‘%o¹©Éˆ1ï(uEFz†ümšgBþ¹üóg‚·V»%ü˜”xòÄñãeÊ•¹¢ôåQQQf2)¾õ?|]þ¹8ç!4o”óÐ3±qÈÎ%ÎŹ8¡y =»Ð˜Í©¢ur´ž§oŸÏ*–Ÿý‡8_³föœ9måŸg?=×¼ÎÒó z^~v?‡›5kV›víÒÓÒÄy8pîpd$ŸÙÕ ºìö¿ó>ú¨\¹riiišs«MÕËóÃyüYÎ?¹²âôB%óŸç1¹r}µzÕ¼Ù³”Ý6œ»íöÜz>Nœ_lÎOŸ>]©R% ø…Vý^COÏ-· ÚàŸÿç9œsÛ¯^›ë×Õ®&œÓ·¹ô\zîó2#䟋sq.ÎŹ8çâ\þyvòÏáüŸòÏÅùä\þ¹ô\œKÏŹ8çâ\v»ìvq.»]œ‹sq.Îe·Ënç²Û¥çÒsq.=ωz.ÎÅùŸàüöÛoŸ;w®ô<ôüùçŸúé§o¸á†ääd3‘˜8ççä<66vãÆ·Ür Ó*œ¿ð ýû÷gZ þ”ž‹óóäKYzè!¦“Ýž­9ç¡ð 6,Z´3ÌsýMq.΃¿(¶ÔÔÔë®»ÝLd(γ)ç~oCœ‹óóá<8f²Û³ç–ªa·–Âç9v>¿s“yQž ?ˆól­çf±\,OÓ]œç(΃“)=yÎÍ"›~ø!­k|ð%éâ<§é9ÊLƒËÃ?LI`îPkœÅy¸úçf!®Å‹3ýó×_mTÄy´Û™S¼zõêüqÙ²e­5B¤çá£ççÒóœ¬ç§NbŒ;ÖÉ¡z.ÎÅyNàœµ7ÌZ@²Ûe·‹sÙíâ\œ‹sq.»]v»8—Ý.ÎŹ8çâ\œ‹sq.ÿ\þ¹8—.=—ž‹sé¹ô\œKÏÕ®&ÎŹ8çâ\œ‹sq.ÎÅyrn0ߣݽyݹçqßK˜Ù ø´Fª{MjÄF(øÀØ@o&8ç&kßóÎŹ8ç¿ãÜï½ùj¬çŽ5_…•!Ȫ |_¦×S{Îxá5³…ÙñLà›ÌúÊÔ24;Š·+Þ®x»w¼Ý$ƒþdÊPÊI… *W®Ì¬$ÖW_µjUéÒ¥9ËétZÊl©ß´iÚ8P·n]ò1ÔðH°Ï½ÝtÓMiii÷Æé76r35…g½CdknÀbØ·<ã'÷ÆÐú2eÊ-ZÔlé¹8—ž—õšÚÑèS8_sÍ55jÔ0ÅÆ:Þ¥K—-ZÜu×]àÇŸÇŽ{öÙg™GÌ–,YòÍ7ß<õÔSmÛ¶0aBÉ’%-bM&ÌAúÞ{ï͘1ÃLo=…u{|öéÓgòäÉk×®]³f k PËpKýü¯{1bDãÆy´uëÖ1¹¹Š8çâü7Î E›7oÞ²eËŽ;€¹H‘"—_~ùÒ¥K!“™^á–ÏÞ½{#æ{÷î‹‹£ ý÷¿ÿíÙ³'ë´nݺk×®<òH:ufΜyðàÁáÇ[¤™²·lÙ2Vz@ê?ÿüóÇ{Ìh~||üŠ+î¸ãNg–øæÍ›?óÌ3?üð‰gÏžMEöŸ|ò ÷Ó©S'2\¹r%öÂÂ… {ôèqäÈ‘wÞy§{÷îœEÓ·o_VŒáB<ðÀĉ¯¸â Ë’çâ\œ» ŠH‘|zÇŽ ºpþàƒNš4é•W^Y¿~ý®]»Ðsh|饗ÀûÑG…êV­ZÍ›7¨ºuëööÛoSÆ tàÀï¿ÿ¾uŸ¦ì}öÙg¬2mÚ4V ضmÛ¿ÿýo¸¥@4ˆËa0{4 ¸âÏpˆ36ÂO<½½zõºêª«î»ï¾*Uªp'Æ ÃM7n÷üé§Ÿr«\‘J„Y4ÈÍâ<Ì97¾Ÿ§‰hÂÅ–™ê7ªì4ö¼J¸rΫ`=X½þúë;¹7&[¾|y©R¥Pé­[·¢·èpÇŽ5jÔ¡CèâýôëׯiÓ¦èíêÕ«‘}r0ï¼eË–¯¾új±bÅL©3Ÿ˜S§Nż'u~d2¤jÕªHd¶o¾ùfðæºìS¹ð'Ÿ+Vüâ‹/ÆOÝeþÆoà~³óÖ[o.\˜* î'_¾|TdŽ!ùcÆŒ1Ë)¶œ:%УyN}í¹"•×Ó…qÎ ³aƒÒÊê+pNiÁºF±±Ã9B½ÀA¬÷{bbb0ãùÌ U7 3V³fͦOŸNaTÓ4§.ª ÿ=z4“ûí·äC2,ª .´TäÆçË/¿ÌŸóçϧ¾Ø¾};šÏéMš4áH0õÙm®Å <ùä“XódŽw@ ÇX X(ÎÇs+cí˜OD€_š/Ÿ¤¤S ʹ7Žxýiâ=wÖ 4Ac”ÍsB¼ÝpŽtƒœ£Ø ½ÿ~$Æ$†ÆÎ;œcQ#Ñ,ãEzÄœ—†¢‚:ùŸ8q›ª³`Á‚`làçmc{cÕçÍ›—ÕÚP]Š"øã?NØìǤjhذá ÷¶`Áj»ï¾›ü Îa¢'%%aÒS q?d‹Ašüùó“•Bbb"Ö7ÀðDÔ &Œ'ÎCžó@n„r À,ôÉÃr#_LS "¥ íj×®]›6m<à¡qˆREI%–ã9íqxsÎ'(BHíÚµ!½mРÁ7Þˆ¡Ž#ÍA g:pä·~ýúT@Hžˆ|M÷†JãÉS`Hƒ=ñ0ìmjüÂc4¤!þxÝpHmrèÐ!ÆE‡y,mVïWr´Øoã·ãê`ÌÍðÉDØÔü0Ï·Ôè?;¹sç&¤Ó€x@~bn»^½zÖê®9‘sšˆ©ðêCŽs£Ø^—RKEN¤œ=z”Ds ™¨ZA~õÕWC/)@áÁ¿ŽÀ2Ž"2B‰L0Ã2At‡’GÁÅÛ¤.à §&øBn*ˆóüi² ç<ÎÉ“'A×w¼š•?oå„:â^& fó2pŒ«ÿË/¿ð©•ª“˜Öþ½÷ÞËY3ìj1?? yâ`§Š˜Py‰% ¤G·ù“Oþ¤ÖàÈñãÇ‹/nÂ%¾®Õ©†˜|ÆÊÀ¤ÏÑíç¸=<¾üòËpŠÃQŒüÂ-±Y"@t–rþ$xK¦Ñ’š~Ïž=0LÅO g÷îÝÐN€zó @d«òþûïÇR%OlNćö^«8ÌâpµjÕ¢rôj?÷jñæ%`TW«V×E•GäÌpÕ# O‡W l´„QÆø ³>Íâ?Vµhx¶Ü+(5u šOë6L+bjÝ­o­Do­P¡BÖ­æD='˜IKÃ+`éKœ­8ç“ZÅ ÊâY ›dÆàD‡±6>Œæ`ÚFÆé…Mˆ\¡Áó$1À5Šuc1ñ_0èòÁ'i¦Õ‡ø¦ñ'4öª-¡H½øâ‹N Ð]öä$x3¯½öî ìwü¹õŒ¼yæ%`Z[-íž…·mŽÐrf%ÒyÖ«ßk wèµ\ ÷ƃð[p]l7µINÇbjJ*fl^G VâìÉ9µRùòåiYñ-⦠áÅÈÄD؉A †7ºÍW ;:ObüI#é†sÜuBJø„è¶"æ:]»ð-_‡ÁI—Ó¯Ëênáyo x‰0c•ªìϹ•èòÔ®ƒ”j«§:;F3ý˰{õx¿¨ãÕŠüKÞ¹›?YYó¹ÔŸéfp7“ªÜ™ïf:IO½Ž _‡ÞA„¯C¯áë éœ  sš(Â÷íp\êÂ÷ù9M‘A{;A´ÃA:'‚öv‚ ho'‚r;A>Eç?à!¶Ú¶|äÒp¹\{I¥¿Z^µwB^@ç^ç DJ­Ëü ɶù¡¡dÉžÚA䪲Ætó½éLžå?÷"[BѲä„öŒ¼ ³Ùœ†ÊÉ]XºöB´Õ3Ú†z•v|éìòÚ“Áüó*n7%%eêÔ©*+±Y­VœOKKëÝ»÷‡~XPPšš*¿mýúõ?þøã'Ÿ|röìY¼Õòaaþ虑‘‘ÑD.@ !{4ä+V¯^}èС¯¿þzß¾}ªà@äçUÌÌÂÂBF£1///==]>Ú¾}{ãÆ'L˜0gÎ6ÎàÓ÷ß¿cÇŽ5kÖ\°`Îm „Œß~ûíÏ?ÿ\4a…K£‘•••ŸŸot"''ç³Ï>kÓ¦M“&MæÏŸONNЯV½õ{ݺu}úôéß¿ÿ¤I“ðö›o¾Ù¶mÛªU«vîÜùÁœ>}zóæÍ111ão¹å–@˜L&‹Å²qãFtþõ×_wìØÑ 4nÜ8põE‹=üðãFêÕ«×âÅ‹ÑÅŠÍš5ÃóÂÂbºÑGÐWõž,œ|ÆŒ Æ]»v9rD>tèЮ]»Þzë­íÛ·¿ë®»5jôý÷ß·mÛ—Õ¯_÷îÝZȤ޽{÷#FÄÆÆ>þøã³fÍÚºuëñãDZX$''c €ˆÖ/Â…{÷îMLL”G–ñA;A0¥*: ÑB!‡È )oA·"σ°ÑÅB’—«¢££=ŠÈ[ëÃ%µjÕºpáBíÚµÁÏqfäÈ‘X;ÐcÇ+‚øøx¨åø:¬22ù9Aÿyu¹ÐAØ`¤ ¿ñãǃ,a–{à ? kméÚÕAÔxôѺ¾å$ÖXïDcÏÌÌ @¿ôÉÍÍ ÖÞCQ•\=ã‹ÒyuÒ9Hñ†n€ mÉ’%gΜ=z4ˆlVqáç"TC€?qâ„\u½S§N æéÓ§Ãý¦R):C¼‡¡.,,lÚ´iPé!¨2æÎ»iÓ&íø¢¦M›‚‡C—«Ž;Ö®]»’~;‚ð\:÷ƒ¡“8###AØx ú–-[^|ñÅ×^{­U«V0ƒßwß}è0lذK—.A†¾ÿ~œg†å¼sçÎâ7>»tÆá`lÃ*Úž={6Ôoô3f̲eËàûâ‹/г[·nbç:¿ùæ›er ÚÛ«ÞÒÞ âD£yóæp›Á ÛÄì-Z 0} ϯY³&)) |Ì–ù=zˆ}ðàÁPÈEªÇ 0­¡3–Èêo¾ùæòåË1šøØZ·n=oÞ¼wß}·^½zè £=Œs<j?LwÞÉÏ ÚÛ«ÅÞŽW‘ÏÅf½Éæ2ƒ¢lÃ7k( <Þ‚˜(ê·j½ÇҖѤݡC,ªE]Ô{ÈPÀêÇŽ«®;A{{Õós­™Íà„*¢¸4'õu×]—[DD„8ä@óªMNàTÙ[®’ÇïÛ·/XäÑîÙ³g\\;éxKSAýÜ#"áU¦­Qw—. ÃW{jGsYk¨øŒo¿fâ½JÞj‚ªK[YR·Êçem<¼ºŒ&én” Æ·A{ûe&1 Ax` Vmº´·_ž#¬bbK#Of©Xp=G¿ót~þû]êõ¯¼ò Üc<ò¼ec ƒä$;"-J*ÐÞ~™çK—.]¸p!¢Ó¦¶˜ <‹œÀ,ýè£þ¤kS?¯ð‚¤×#Ö .ñŽáÙ@Š4²*=K?÷";BÐó ÂãúH—åœt^É|5‚ðe“t^½¦;mÃQZÉw‚`‹‡z×*è¢p!i]ñÎ Œ`#õ|Úþ‡vmß»{Çž=;÷îÝöÓ©£g¬6«)Àä(ÞŒ…<‡ ?÷¦ÕQΊ„2O»6ï=~áçý.µšªÄ?kˆ›®‹¾7ïBÈÉÛw;}> Фã†*ù¹×­Žk4Q" Õ¢n5÷š™06<ºcPT» ¨¶Í†Öì>/ªÍÿžHùåè¡_Œ&¹:á_üÜÛ ‰ÂÉýž—›{øðÏ- nûh¸bpdÚ,¹[¾Í–ï0_BÛÖ wp×—ÃS Οýí<xÚ` Ö™¨¤¬" Ù“L^¯’ô£­ÜRÖ—B'?~øT½þ†fÃjä¥Y»¢7êôXáp ­‡5® ÝV³™±í¤ÐS§Nä¨õg‚rûåÉ*" K¾Îæ–É RÝ¥,)è÷²ý¥ô¬\ÃÅæw…š³mE±¼:ÅawÙÉXÑ›t…™¶è.aígO&›ŒE…#ôN×"ß>tÅ ™ŠÊíU»†I‚ö-9sæ N̪,Pb5ձ׊0ÞRWG9c0Ò“/†'ê‚c v‹²/mu²ý"!_©w}`ÆÅ‹—]¶Á˜­7½òðé#GoÈ2s‹­E3C©þ‚_>n‡ÃCú³Ï>‹] ±óÙÁƒU‡þé§Ÿ°‡iÉ4Õ’ÈËÍ 3W†r”ÊùLÝa/´×hj2š nH;? +­ß¥T>|ô/zM뛕6(3¹WNºÝ9ME0Úá*vŠdT>ÇþÄØKøóÊ—¯\¹uW+”Á«S Nöó?þºP½mlòÉ )'ÆóðéãÑTü•?šrbtê¯C2Î;h‡«BqELhJqQôJß‘¤÷v8õ{­E§¨"z)}œÿt=Çžm1¼]¯ùk1-æñðéãõºÍ_«×òͺ͓MAzƒÿÚáªiýÍÆ¯°þŽØá*’R£FÈÅŸ,0³;4Û¡ºHÎóŠ>@—uÔ ™cG˜ 5£~«Í÷aµ7‡EYõz£â¿™LU¯ŸW‡râÞÞn³Ø¢b"rŽ(yçm†@Ån+5F|è­$o,ŒŠŠ¨é°‡Ú¬¡v[Ñ+Ÿ>jجºê×É'S)¨â®‹¨fˆ:ü^–1°È«ÿÉr€’(<0Âpvm~îÏÆz±Ñf‹z¿­ˆð>øyNrÕëçÕ¡œ”'c³Ú[´išµÃpô“œ ½>@ï°Â¸îTÊqØÐV‚¢ {Í?ÿ3¯y‹fE2<7T!¨Ÿ{Wèk€)0¡}›S‹¬;Ÿ¿h¾hŒ2„êBt8#Œ’ùåóœ§e7‰‰­W¿®Õb+U'ßäç>ðDz‡}>44´s׎–=aÛ&eî})ã·ïóNî6ŸÞ^xè™['eœúÈ߸I#³Ù Úá¼Æ§·uJï6—hß5116ɱ¯^ú;†ðçsò_²d¯lljÝ­W§¨ÚQN"çiíp^.À[ÍÖ°ðÐf×µüS‡–_× ˜ß Eׄ˜µí¶¢½Ó)®”Û}A†WœxsBmly6G¡Õn)´X-Öÿv Ò¹Oqx·‘°á/tîí~5‚ _Í/üjAø¾½ ho÷#{;AÔÏ ‚ú9Aô«A;ípáõ^©Ÿ„‡êçäçA~N~NäçäçÁ8‚ 'C¹ ÜÎ8‚ è?'êçÔÏ ‚`Ü+AÐG;œû[ÒîñH\™”¼aw Úá‚ ÎKìpr?²ms qU€ýsÁš¼¢ð¾ÇÙá(·_É-aûçÓ§OoÞ¼ù‡~Ø´iÓÿÕ<[<áíÛ·§§§Ë–Û”Û)·_= †ÔÔÔ‰'®^½zÑ¢E_Õ<Û5kÖÜrË-)))&“‰öö«m²X,ݺuëß¿ÿí·ß~Q=¸í¶ÛúöíÛºuk³Ù¬ãæxÔϯ‰&&£•¨N(^µ%žÇéç\êª`±tz× DuÂÅôCPn'‚tNþFçô«1gÖ[2=ÕWÆÃѯFåv‚ðC:§_¹ñÞâ©R_éWcÜ+õsêçœÔÏ ‚r;åvÊí”ÛW> $ +(Ax?¯rµ¤Fëׯoذ¡â ¥~NP?÷)ý\ý3ÄÄÄ Y+½á#þs•°¥Á¬‚ðA;œju²i‡#h‡c^*A^h‡óC[íp´ÃùˆNêx¸øÆµ’IÉòSEtG[+wÉGr•€šÂ+úHçáH—·Ú·¸ eRO:uøðaTðÄ[:áâšùÕ„ÓΛ7ïܹs F)Ó%’6‚Þ¤Â.(ùرcBüè€óxE‡ììì—_~W¡›¬_~ùåÇ,õ·1æ¥K—.^¼øúë¯kU‚ ®BBBvíÚõÐCJqd¼{÷î‘#G>ñÄiii€ëÝ»·Î¹ñÕâÅ‹Gµ|ùò={ö€¼±‡hûž{îÙºu+ÆYµjÕÂ… ÁÀÁÉ““““’’zöì Æ~àÀ÷Å÷i‡#h‡»";\E4 ó’%K†:cÆ ì=B}üñÇAÏ÷ßVVÖ”)S@üŸ|òÉÛo¿ úŸ>}úìÙ³ñéŽ;@ð}úôAçüüüÈÈÈÐÐкuë®[·®E‹ò ZµjµvíZ‘穟Ôϯ™ÿ¢8(»a`7‚ÜÜ\0í €>‡ n¼eË–ððptëž3gêé?÷ÜsàÏÅ›6m:mÚ´Ñ£G·lÙ²°°0..®]»vè¹wïÞøøx¼C‡GŽ¡dE×Xn‡ø áü÷ ôz0ðààà+VlذaܸqÑÑÑ0ÈÉÒU»vm4ð ¡tî-¹kêP²Ôåä䈠 'Ö÷åv‚rûÕ🫷é¬t>~üxlˆÎŒ¬ðj|‚_ºt)òAÉä]|rºâÍ.ëׯŸ™™)‡ ¹âĵñŸ«jF³fÍ@Øh4iÒ„:lØ0ØÒaB4hÔlPill,:C'‡0` é`éèÙ¼ys ¼…Ü>þ|ÈùýúõƒGM>BC¹Wf¨ŸÔÏ«K?:è®/la‡ÆÔ©SˆÆ§Ÿ~ «Ûwß}ƒ$ð  3Ìì uìk ÃLôàç jQÔѨU«Ö7ÞxðàÁ„„„®]»‚ƒçÃ8wâÄ ¨ôjP AWÕ.+„¬iÃWEz‡ œ\"gä< é³fÍzþùça?Ÿípíp×Ì^j†¹JÃZv ÊgNLL»F[ùc¬»ú³år6d{ôGC q§~NP?¯ý¼*× g˜ºP¸º‘m¹kóR òsð«U¢À‹H¯ÕäÝÛùÔ”5jPqmìpAÎËäêÝY=‚ <ˆÎ«Üü uq¼W•‚v8‚v¸jÏc©8$Ð^ñ;wª¤N„—ùÏÝCIæˆSŠã}Û¦M{;íí~do×Bäv.¢áËöv±Ãñá„/Ó9A¾lowüq‹5°iÓÞN{»ßÙÛ ‚ ÜNĵ ójò(T­ D½]zPèW£_ÍSüjAÐG;A;ípAÐGéœ ÚÛio÷*{5M*ÚÛ âCW¼K—Õ ):¨V4PŠ ŠòAQn'¼êN²5€±Ц@8^ºñqU”ÎéW£_ÍÓž§Í l°‰;¿^º|ÆÔ¼oÌÿÎûûÖMÛ&£N¯“Zàžìfó´YA~Nx–¸îÎuzƒþ­yïÄ5m}ǃ·Ï]÷ìêŸ^þð®ìyÖ¬mvb{?S€ÉINäê”Û o×¥¸`úÅ ý®øøô ‘c2û~Xû¦ÙÑ޾ñou{ÌŽìúVxäà‚ýû÷'ŸKv’ú•y‚tNx©C·Ú,÷ »wCòÚ¾ £Ýj)´å§›ó/ZòÒ ³l¦P]Â#á‰OÖ8ö˱´Ô4ˆñ´Æ‘Î otrpæ¹³_]¿{]ß¹uí:Ka¦µˆUc’êârØ”ü4ký¾Añ‡?zÂb±ÐðN:'¼‰™‹ámþ‚ù‰ƒV[CgÐý—„uЏt¥0ÃÖ°opp¼åìÉó`é|zåÓ9ãd'ã ÏPxò7«Öž³Ÿ‰éjɱëM²Ù®kߢ£àኣA¿  iéØƒÓãgûì/ùKYóAÄZ¥6¸Eý¨,rU;K£Ô´gJ^%lÏÍ·û2 rss±„s–LL‰r»A£®àyœú/5®ä"RÖGê %Ž BîMlî%½¯Æ2H–¨È|P F{¡œ²ÎË+(JìmªàBrr¹,ҹ䷻Œ¦¤‚¿K½7¼jmÕþ’—Z2áÕóÁL.ÞÊÌ™3ÏŸ?†ÕjÅy¼Êù7ß|355UÎã³Ùœ-ÔuæÌ™~øáûᅦÇoµœ_®ý÷¿ÿ½zõj¹V´¡C_l Hyyy_\E2‚ÚPÇT)\ˆƒŸ;wî‹/¾€¢~Îy@ø!D¡Å«Á œéÖ­[5Ð@Ȫ¼ ·\³f (PeÝ›6mzꩧ䣿ÿýïxmذáo¼QªD½gÏžC‡ɵø|#^U³?ί]»vêÔ©h¼öÚkü±Üú !·! ù:‰¥?úœ@ʤsßs¥¨ K„V….ù8äôéÓûôésçwþãÿ¡¾ôÒK öï¾ûî§Ÿ~Z¾|9úüúë¯8Rܸq#bÝй}ûöýúõc¯S§RVÐg@ç.³NV\…1'OžŒ…ãìÙ³Ó¦M{öÙgAÒ/¿ü2"áAÿ¸¶ÿþˆ“8p`Ó¦M|ðÁÛo¿ý›o¾YéDppð»ï¾;fÌ\5eÊ”‰'b¨ùóçcð}ûöuîÜ Ü"mñVÕG¼5ÿü²ì.ZÓ%A;œKCûòÖ­[5 m0C(É»víš4ié„ @cBE ½0RðÌZµjÕ¬YSÈ »Ì4°tº¢a±XDxVÇì±Çêׯ š|õÕWÁ¨ÁÌAÕúÓŸÀ„ñ‘Œ†ñ7nœ™™‰ÛÀ×nÁº7lØ€“œhÑ¢.D–GÛ¶mq¸$==½I“&"AÔ«W6­!ÐgãáÈωËåçªÚ,mQ›…rTË™èÉ¿K¿Åöm­EM«ƒJEÛ—ñµÁíhƒ˜UZk-/Õ厞Ú0U#PóÒA.K»›9O~Nø/?—ˆw!ç Ã:¼øâ‹ÐÕßyç1¼«¤3ÈùÑx›˜˜xá™iPÔ›7oŽÆ?ÿùOáÕź=”jˆëÐ¥!ÿÀ·uëVÈä –CQGú*ŒüÒ é˜hã«ñ¸Ú òZ'ŸP²„‡ Ævùƒ@0q3íi‡#üÌ‘U&,Z1ÈÖ˜x†7ÑA :È dR¼ùæ›a$"„2·b`ÿå—_T~Þ¥Ká`E[¸pá¬Y³0¼to½õÖO<·ø¢øøøŒŒ ü` €…«À§Ÿ~ qý®»îº÷Þ{ €qn»í6 uë­·J2¿,4¢“c¹BC‹t@;áïr»Ä–@7?~¼ˆîЇk×® ³\Ïž=aЧ…«yä¨èhŒ9Dž“NB…®[·î–-[à]ǫФY¤}Œ zöìÙ_}õ¸wÇŽÁ¯¿þz´aç»ãŽ;Ð>R­12ˆöðáðŸc)ñnyÜúCñ~øá‡Ñš< |;Æ ƒuP\k–xø½>… ªÐ¯&ÄÚ¶hÎàä«ÿú׿AÌÖ^"9­Z yôèÑðÌÁþ26sÕèKd|¹VbilÅPãêD´–3hàé&‹‘z^«ÛXt D@bG LwŠÛ\wÒ9á¿q2jð ÚÐñ Ëù{ソüX.¶4 _QÍuè Jè˜9Þb((ØÚÀu)j¨F¶hãd„á»äPKù"í÷ª!=ªíP– )zè!H"åä±ÐGø§®d­eN‚LË J/9ïbwéïÒÇ%Ý¥[ïV és¹ Úá¢/ Vn’=µ6 ¥8“ä*çœËMVð{i‡#üÔî_õd(·”Û}äçù¹ðs*f^êrq94Ńt¬X¤ÓÔ-ÑiŠ ¹ˆ?„ƒtîÝ(µª‘–ŒKíPj¹‚tNxën¬eÑÚÐ!iÕݪõ¾ª¡Ñò‘ZçÀQ‚霸zÔ®uð*ÅùûÛß$Bê!Ô–8/)ÈsÄ[5ÞKœ®´Ü»wïúõëñªf\>Nç´·{þ/ú”(‰¬R³Q¢ 44T)N`@º2  @Hä<¶ñVˆ\åü¨v„bC“F2†Ï[¡io÷e{»ð(›W÷,9ÏjR±ü"!éeË–>Ñ@­‚×_ Äf¢à 6Å%¨L2hÐ ”:A¹Ô*B±äW '"Ÿñ7FÒ-¥j ‰È”ÂW _B•óËua¨q×^EŽNÿ¹O­ßºâzF¯èMª¨5ƒµ? ÙQÈaFÉLÒøú믱5'J ¡h Ê ! YPÈ|DáAd/¡ð‚ŸöŒÔEÔ0AŽö®¡îÞ½[MTV«¹ß L%¹=ïzªJq»¿ósßSEÀÐP| iÃH0èï=ÀÝÞxãÈIp‰¸ÞŽthðaÔDÙ ZµjhiŒxEdDKrj6jÔHqÖ!B†#’+Ûµk‡G“È—Ä[dG7kÖLFF)"H(÷yŠæe_‡Ìgïz¤øí°Pàiø»~îK‰¨ `n3fÌ@&0’õïô øÏþ3fgI ”†ìbP,Dq¬ y4À±Á`¡ãU’çÞ#" ¨’?¸™jis©1®•€Ê}ªHÆF]Ô¡C‡zÑ#ÅÀ4@J¹,‚jÂåv¯—Ø1QXõ1rbŒ÷w‹ŠÂÇ/)·Ë¯…£¢Ê BD‡u Ú¸âÜd*66¬Õ ÓÒÒžþy©%aEND£VËa¨åPé…Î=W®@+O5!!% ‘qí]Tæêº”ºYíp^iSY–”Ý´zpÃrÛjN²úÓDÏ…CNâÄæ!Ý»wÇIðX”Æ>øÕ÷ÜsDëgžyç!`ÃœŽ“(?$OU¾Q;ƒüüóÏrfÿþý(T^.£SŠó±¼÷©ªî ¿µÆù?WŠËhʯ‚ܶ6¬ÅÅ!âÁN€˜QÒݰhM'P› ç!©®X±ÈPŸL wÐn8Nù¨+ ýWú[<2èQ¶dï+*¹¢¯Ê^¬è1ʽ¥Ü?¡ìí·TTeK®èù+ªó²EÙ'¯èEx¼Š*ßKezd¨äŸVîë¥æ+jµ¢¼§ËÖFeÞcÙ'÷òÊ*jÏåþ™^ ÷Ò¨.Ûò½4'É© ‚ðwh.‚ üš åœ (çAøœ“¢ ÿçáØÕ„ÿësR‘A¾ òpAPÎ ‚ ßNùv‚ h·áWróI«„¤å+„Çíú[®ø§åSÿ$árîs‘@L©õ¸‚?CfÛBüPY6§¾¹«¢2½üne2DÝŠŸû—PÚ-¹¡¿"Ÿ&“©¤¤äâÅ‹H(Mî¡Òõ7"­®èê.}ù’Ùãõ ‚óÏ« xÜ´´´©S§*U a³Ûí¸ž‘‘Ñ·oß÷Þ{¯¨¨(==]þ¶õë×oß¾}ñâÅgΜÁ©^‹òGÎÌÌL$Pˆ”&vÒHˆØ#!?ñå—_î߿Ŋ»wïV†APŸW±2Š‹‹!fH˜Íæ‚‚‚ .ÈW[¶liÙ²åC=ôüóÏC°qß¾ûî»Ý»w¯W¯ÞüùóqEd[ büðÃÄÄÄØØØyóæQ“Œ«U/Äý^·n]¿~ý8eÊœ~õÕW?ýôÓêÕ«·mÛ¶`Á‚_ýuãÆ1110ã¼wï^"ËÅb³Ù6l؀̿üòËÖ­[QÚ!C&Nœ­þÑGÝÿý÷Þ{oŸ>}–.]Šü«V­jݺ5ê z˜ ÈF*Ž Wõ,šü™gž4îØ±ãСCòÛn»­GC‡íÒ¥ËwÜÑ¢E‹o¿ý¶S§N¸%88¸iÓ¦;wîÔorˆú 7Ü0f̘¸¸¸É“'Ϙ1cóæÍÇŽCg‘ššŠ.&:T7~7¦¤¤$%%I•uìØ惾4‚à<–ªä<44B ‡&7¬thlœZ­VÈ­Øól$ ±°äå®èèèÇ#ñÖGÅpKƒ Ο?ߨQ#ès\;v,ú$ Øñ‰Ž !!n9~}‡”†„”F}N0~^]!t6)ÄoÒ¤IKÐr÷Ýwüg‘s=—®ïÄG}è[.¢{'{vvvPPòCø%O~~~HHˆþJWÉÕ8¾ˆ œW§œCo¼ñF„Ж-[vúôéñãÇCÈ¡ÆÁŠ‹>£üñãÇå.¸ë×^{-„yúôé¿))Ef˜÷ ê"""¦M›—†úðáÑᥗ^úñÇa´ã‡Zµj7^î:räHçÎËÆí¢îʹφnálذ!§ Ð7mÚô¯ýkÖ¬YíÛ· ~Ï=÷ ÃÈ‘#srràNÃÿùçŸqšÌùu×]‡`~ã[‰·Kf\ ² ½d{æÌ™p¿‘çïÿûòåËûøã‘³gÏžÂó‹œÿéO’BHääÛ«ži‡î…p"ѦM„Í@ƒƒ{ƒ™Ý¶mÛ›o¾y`ϯY³&99 zÊÌ|¯^½„`6lr±êQ¨5dF[}Μ9+W®Dic‹Ÿ={öo¼Ñ¤IäirBçÃíuëúœ ß^-|;>Å>Îy“Íed 2ˆ³ØØ8H8xœB˜ $î·bïQ‚¤¥4IwíÚ‡bÔŽ‡7ª~„ ªß!òíU¯Ïõ4›É 5þTLqIN(ênݺ!ä)9ȼâädœ²½å.É0jÔ¨þýû#NA~éÞ½{wèЊtœ’Š#èŸ×‰‘ðJiëǨ{—.7ŠÂW9õ¥yô5tüŽo¯5ó^‰·š ê1‰­"«[éy)A?^D]J“én´ Žo'‚|ûï(1AT?Àãb…š°H¾½Fpd`Å„K#ˆêÚZšP¹~X©ëúü·§Ô´—_~á±xѲ QmÀÔ†qãÆ-Z´HÖ#ðY >àŸËƒ~òÉ' .Äè4LS[JÕ´.´1ù7ß|£†ZÓ?¯ÁIÓ0Ö !ñîQÀg ‚ä<–Zãá0½ ªXÝŸ•sN9¯ùjQ®¢Ÿ-.à‡ƒ7]ÿ½Æ»«¼%ß ‚óXêht­’‘6^Ú¹#؈êhoWÅ”ûeív•­4Ìd6™5ƒÑ`ÔŒ,*d6–·;A\q{ãøöšî_ÕWpͬ¥ŸËøyëþ[Rvnݵk[JÊO{N>mwØ-A×¥ÍX¨µês_ê_•qŽÁLXæiÇÆ”cç† Èi?Õð”©ÃtcôÝçCOlÛ²ãì¯ç‚¬#7T!¨Ï}®•±f‹KDau§¨¡%}æ5ì8¡~t÷à¨ÎÁQ¬­o«wÃì¨Äÿ±O;zxÿQ³ÅD­N–>÷u"Q49F#äç8p°ÝßB:=Xß`re;lù.G¡ÃQè*ÉAÚѬoHë§;sê xr°×™¸BkG²'™|^ d!'ýÊ-ý(|òcN6hj=2¬ Ãnp4³Q3…ô6®è‚£^ks§)á'Ož,*,RëÏíößgíˆ1,3~®rn™"«»TdGý¶,„I˹›oÊjsGxÉEGéX^£ÁåôØÉØ YŒÅÙŽèë­ÝgN¤ZÌ¥ GhîÐ"ÿ>Œ—Ò h·Wm/(S|°oésÏ=÷¿n̸R`‰e¬©Ž½VDñ–Û¿Ê“Ùt!5«~’1$Æä´ öåõÄnµ_jäšüÁ𙕕c0^4™/j¦ÒO~}äi¦\“9¿4ÐZÚ2 —[ð‹úüò!F¡?õÔSØÕ;ŸíÛ·oÿ•âÀ{öìÁ¦e§©–EA~AýæK+C¹ÊÕün¥îr;ÃZYÌ–¢3ÎÝœ›1 '‡K?3úçf ÉNí“wÁénÝŠ`äá®|Ø)¶@ÃÊçØŸ{ /¹RàöÏ?ÿë®Vje£Ádu«woYÜÿñ­ÆpÍ1!õÄCiÇ'ñðëãÁt¼åc¦ŸþËðÌs.òpUH`…f¸´(úÕ,ß㱂²—ßµ¹ Fƒ2ÑËÉãþg4y΋6ÓÜ&mfÅ´ÍïW·™Õ¤ÝœÆmR-ÁEš)py¸jê?d³ñ«\ÁGx¸ÊÌ? ÍÚcÍîÒm‡êae¸¯´ cîáØ[¯‰ù®^Ô÷xø÷±!¢Ñƈ(»¦™ ;“©êýóêpo¼óí›#*&2ï¡àœÃd58們XrR7GEEÖs9Ãöp§£ô“‡_a»ñr>9ýó:=UÂõ‘õ"LQÞÎ5[K£jˆŸè­/·ùe€„[#MgÖæ47‰‹.±Ùá÷;JßÀÃ\õþyu¸7—'ã°;Û&¶ÊÝj:¼8/8RÓ‚4—äºÛ)Çá@ÚeÊL)9øVA›¶­ƒ‚¬¥6<7T!èŸûÖÐ× ‹µc—ēٷ=›U’å´F™ƒÂµ P#k¤ƒdŽ.ÉÛ>íblL\“¦í6G¹n÷ƒ¿A¬wðóááá×õènÛñÓ”ì”2O}[pbgɯ[Š÷¿™½yJæÉ÷] Zƶ()±qGc‚<œÏðpúñ¶nëÝÅ%ºôHJŠKvínráÿLõŸÍ+|ÁvqmÖ–øž}®jårî‘F‡óqÞ^b¨Þº[»[º¶[Ñ$hJB³¶=:Æ4kät”îNs Ýî6¼ÁÍÀ—a¨£Àá*¶;mÅ6»ÍþŸ A9÷+ ïu$,AŠœûz\ W ˆ¸AþÏ·ùöâÛ ‚ îÕqÃà^óäBBB‚‰:«ÕŠÅ…äeÑ?§~…9Y7öìÙ³›6mÚ°aÃ?üð=Q7€w7²eË– .à18ʸÚUm(55uüøñË—/_°`ÁûDÝÞÅŠ+°¸PZZ&`C%wU€…ƒElúôé3bĈ»îºk Q70zôèaÆ%%%agòh~ÈÃÑ?/ Y‘ÎNÔ%.Íb`ü¼N¬÷êq5YIÚDÔ%t[\SŸSŸ³/÷Û1jFÝž?lÔçìËýsìŠËåbà8‚ 8N†v;ívŽ“!‚ñsúçýsúçApÜ+AäáÈÃäáÈÃAŽ y8¶Ž{¥ÝN»v;AäÛ ‚ Nÿœ Îq2AÐn'‚rNÄUÈ9ãjŒ«1®Æ¸A´Û ‚¨ûrθãjŒ«qÜ+ýs‚þ9ýs‚ h·Ón'h·ûáx8 ØW˜=(AÔ!}^åŽMXXØúõë›7onpï%Nÿœ îWþ¹z 111ܤš ü3~®[ú~‘ ?ááo! ìbKŽ Çy©Aø ç¼y8òpÊÃÁ÷ðÀ=Üò²¤²Ät7º·§÷ðÛå.=y‚¨5ÿ\ 9ÂcJÚ=2ÈE e¯«[$-ßJO£N½øóôÏ úçÕåŸÿ–CÓ6lØ™™‰+v»]ic›ø¶¨¨hùòå‡_áy$ë¤Ë©¾úpŠ»ÒÓÓOž|8´ñ¦M›êׯlPÝÏ?ÿ|ÿþýŸ~úièg˜â­Zµš6mÚøñãÛµkW\\Ü¡C‡Î;#gJJJBB‚Þµk×C‡Ѳ"ˆZ¶Ûa~Ã8ÿíMƒ YµjÕwß}7qâÄèèhrÒù5jÔ |Âh‡œC{ËÜ5U”t–yyyb¨ȉ¾Ã»D» Ý^ñsõÇú†*†œOš4éÖ[o…fƬèj|ÿä“O€‘I†%ï“C!’hÚ´ivv¶†7²Ç%ˆÚ‰Ÿ+G¥uëÖl$bcc!¨#GŽ— mÈ!p³!¥qqqÈ Ÿþæ›o‘•ŽœmÚ´‘À)ìöyóæÁÎ0`"jò(Ê»;Dÿœ ^]þ¹PèO„¾âã㑘:uê AƒøàƒÀº}óÍ7 ä`ÏŸ?™A³CÔ׬Yâ =ô9¤Zu$4hpÓM7íÛ·¯cÇŽ=zô€‡Î9wüøq¸ôjP A5?—ž@†¬é‡¯ŠõŽ š\FÎÈué3fÌxöÙgÁŸ?þøãzÑU=1ÖŸ€«ë² ›úĈ(‡/ƒ j‡+KQhnHLFÎȪÆ [²d ¬ú·ß~¸Œ1\ZUFùçr˘1cÀ´÷êÕkÔ¨Q8…Ú'G‡«µøy¹3Ì• ëÕ5$š9)) êiÃuW'·C°aÛ#?jˆ;ýs‚þyµøçUÙg¸‡©‹„‹Ò®L¯Éy©õyˆ«UâÀ‹I¯÷ä½ó|jÊ=(‚¨Ž Êy…Z¦;W ˆ:$çUN`£.÷ªb2ÈÃäáª}Kå!]ß¶m›u‚ |,~î"ؘdޱq†Kã}‹ÿ$ßN¾|{¥ v;;Q‚ðg¾]x8V.Aø³œáÏ|»ë¿·XóEþ“|;ùvòíAÐn'¢Êy5Å$ª6¢—1ÆÕØêJ\ òpäáòpäá‚ Gåœ òíäÛÉ·“o'‚v;A¾&猫1®Æ¸ãjQkpéöÿÑŸ´Û ?ða²±—좭aù³d¶˜e9p®5J9'|[È]î]z, ¶ß]òþ²þ2iùÇ+òs S6íI?s ²%Èbpý§G (ç„/Ùêú͹^›=·CÛø{§ÞóÑÙ×íýŽÅ?d5ݘvªøàOwœ9uÖd2¸ÏåœðQQ7íNû­CGN~ìá¨ñ9ƒÞ‹¾aJtÛáõ›ß’td¯9 ÛM4H?vøÀQˆºêXuÊ9ÇÉpœL]C©ÐjƉã'­Ø¸¼ï’è/Ì))Ȳ•ä8l¹Îâl»ÃæŠÚó•™®Ôc‡NÀ€gà8— û||öéŠw—½ýÇ9ŒÁv6ÄMÕh2þv E™Ž°Zש©Ùg².dËÎܬ½ õ9ã猟׵89ðâÌ—›ÝjŽ6ÚòFóo¸Ó É¥™%9Ή–&,§ŽžF/À6Àø9áKÊ|ßÞý?ßׯ~qžÝh2”§§K…²m/p6Rh¸XXPÌ-èŸÿ¾ß¢X‹ >ï;j‹* kä²ã£‰–ûÞ!çF—ÝÚØdŽräšÌýsúç•…ñÒîQ¢6€š?uê”Ë-Æ"ûÞú§Ë¢Y¯1Ú‹íäÛWû}*¦#f¢6€šoÞ¼¹Ûw.kW ÎuƒÉH#Œr^Y@Ÿ„……Íš5kôèÑ·ß~ûmDÍu~çw¼<û%×yCqŽÃ`r‹²17г¶óZX½·ú¢œW^ÎcccSSSׯ_¿yóæDÍuþí·ßN=iÈ :¿»Ølt9ÊSfw¸Ì!ZÆ®bsQhXD6õc¦œ_Þ-Ï<""¢]»vIII‰‰‰‰š…Ôy||Bô5Ñ¿|šop3HN°ñ¿ÞT)3ïpj„Ö\'–Å4m¬‘iò.猟 $6+¡’’’ÂÂÂ"¢ÆQ\\ŒÏ‚ü‚¸ö-ì'C÷ÎÍ ŠÐ ÏN»Ëép»ë.H¸ š\³h–0mïkÙÁùõ›ÅÆ””ت°ÉÕ@{«éø9ãjDZNÂàFƒ–Ø9>}­1åålg‘!8Òl5jA–0£5ÒlÏsnýgfîVK|çö.§[ñËloŒ«>ï@»QÚýúä‚Má?NÌ:ðNNæ¾’ü³Žü3ŽŒÅ{çeo|0Ûy°A÷ž]ƒ,A0ÁdT¦Ò•V·Û×4ŽJî™Ø­{·ä¤.]’ºv¿¾kç ‘Q‘ö;59ùv x$l6»Í=ÜÍd6áWRd5nà åJÊ9y8Â'˜9½ªß¹k‡#üa\ƒhl5MÍ5â€vÚíAßnàÁƒãdüÝ?/4É#ÐúçÕáS j»:`ü)‚¨WÅÙâŒZ¾f*àÀG¡fBü-yùj‘óÈÈÈW^ySA’““¯xJC§NZµj…ù¡W¼|’b£Ö-?û‰sGN;ö€<¦¤›”v<ÜnsyŸãJ9¯û쳯¿þýÅÕH!çQö’ëò2»ätÍÏæhÞ{·¼¬ä‚¬i`~¾Šå\¢ Ðç:tHHHˆÇ ë´z\\ÜÈ9n°ºœ§¬¡O7OÀñxˤ©-:>Á#ðŽ©ÍÇg‹ŽÓ›'În¸ú¼Êgw K)ëï:¯pò¥œßËÊüÒƒ1Õœa :o Ê0[yà‘îþD@K¸`²Ü Ôy¹†ä‡|{5j¨¾žù•…0ºU:ÅêtX\NA<øÀ~‹Vw3±5¸”œæ+ƒ¯ ÎÜ¥,+€? —Ú¥†Á¸Aäá‚à¸WîyFøÇo÷êþ9A°½Ñ?'Úí´£Ú팟Áø9ý%‚þyñÏiGùöºÕ¿DÍ Z×™¤>¯°ÅžäÁÁÁ!QÍ µZ­jµIòp5 L4:pàÀ÷ßÏ̓‰jņ Î;wÅ«›‡»òYkxЇ~ø¹çž{úé§Ÿ}öÙg¢z€Ö5}út$î¼óN±"9N¦Fq÷Ýwc™šÇÝx‚ ª ÿøÇ? N ¤¼tŽ“©9`AÈÊ,‰lX=ù±F…œÚˆ€„¼zY´ÄßÕ„p£?E|FŸÃ‚2_&7‚‚‚þú׿îß¿ Øüf" WpöìÙ_| ‹ÅR™&$­™ýÍ?÷ˠȶmÛrss Üd/€!¯>--máÂ…¬ ÍèwPô ÇÏqX>e ⯠ÍåwÀKçŠãç8¬M˜¶Îc!Úí¾< Öív¶®3A£Ïýx²½2úçl ôÏ "`ô9«€ ÈÑ}!Ø?§WF°%p=öâ[ãjA‡#‚rNW5! “Á¾õðêe¢„\WߪOÜ"Ÿú¢”› CëË–YÑ3T&§GùÎK¸ì½”s"pa¼´Ø£šà¨O$×1Ýc¥g•ÀWâýФyˆ®L•Óç—„ê|øð¯¾ú ‡ Ó%§§§ÃéÕ«žZýôéÓzþ¹ƒFBB,Cå(Ê©röÄ̈Áh™„ø`ß¾}Ÿzê©ÆK C½G£F‚lCÂa¨C¼‚ü:z ˆ=J€lãÚ[òH™ªX•¡aÆ*ƒ°€ÒS#!æåå©i‘À©÷ÖN}î3 ä£#ëU+= ¡…+h¸´ú5¾…›‡ÖµŽyp*b/*HLÖÇ7hÐy¤­¬õ®$$)) V:NW®\ ¶\ŸAºBñ™EÍJ5È0$`Eƒx;s挊Ⴠ•ž-n6 od^ºt)¾Z´h‘t²×n¦¾Ê z÷Ê[“ŽFñy-Z´@ÉòløQÉìÅ(Óüû:} zO[¯‘ä5Cý¢é  pÙ²eH€%Z·n]×®]£¢¢ Xœ7ÞxF H`èù @¡@ÐÔ`|‚Fk»xñ"¢A0P¡¾ÐdÁ-yØœö­’¡›Q÷áÅe‘€‡,õ³ lH¬t8ê°Æq¶±d€ A'£ê 9ÇSùÁÒ ™×²eK|…®sùòåêGQç°ðLJûõë ÇîwŸ>}PùØÝIô6^ ¾{š N;Þ2€¢“ èz„œ‡÷.‰Ž;¢üë®»~»ü-ˆüÁøD9—žO…4|¢¥E!” I–@ïã' ´ PDPÎ~øáüùóŸ|òIx~h¨k4A˜‚LJïÞL¾…­ŽoQÂõ×_¿~ýzÅÏ•kGȉ-ùP}J(×TÁŸƒÊÄ^@$ 7ÝtdlÈ![¶lîEý 2à:2  €Äâ "êàç‘èÔ©Ó¿ÿýoqšˆœpôò£¸>Hrô³ø„Тoß¾=(s謡Q±ÐÞo¾ù&ŠBÏ‚ÛÑç¢#ÀEððx}(†žõ¿¤þP†ø ô °à ÉSSSáÜpà ¢ *”šbãK¼ÔÚW¾têh4[eûé#½x‘hFÐ*0ÅÑhЯãoD_²GÜu´!È9äÁXèxžÍ›7ïÞ½»ØÒdAC™CÔ¡C‹"Wque+?••…Â׸á+•‰GE×öÃ?xÔ¤þïR>°Tª=æ´iÓPÒŸ*µ¡¬Ôª˜Ü÷Üsd F;boèÄ:øãÿ¨: s@cÃhBB<&|⥨ÞÅ 4¤¡ü‘Љ.ö|ÙátÊÐ÷ž’’‚¿ñ/ù‹ê¦kþ97Ý£>Š~ôIß6ŠÄ3£¿W#õ¿úÆ9T1b-0ó@ÿÀ¢ƒ1)ߢ­HÔ é%3^ˆ%iµà™U‡ˆ–'Îa¹DŽûË/¿`wA<žU&^=¸tØÒýò¨Oç\ºÑøøxÞØ´ë­·Þ‚Ž ©®é% W ®<ðª¨”Ó r«†ÄɰY9U¶øù"{ê1Ô`u•Aêwõ£ëU…Ñ­ÜrË-ð¿T§ãá¤vP0–@ŠÀ Ú¾}ûßþ6´±ÆÔðiõ×áOÃÛÅ_‡AÉ~öÙg­Zµ’0/(b´<˜y8EÌz WDÏ«Æ$­W Ìe_*n¼ðå*ñ !*{÷îÝT&õ "œ–"®½Ø€"êø{á“ÃBaó2NúS¨w|*1óÒ,Õ¨½–Ë-\»/Ϭb¢øu1æ—Û}ȯô¹ê³}‘4ÒópŠAÔÿuò.¡½Ñ…wéÒüЀÆE("´ìÝ-c¤0` Wp¹0Da À¶‡1U#9¡Ûá:bã1‘sØ~ u”~+·JÕãùV•z4‰Ë6©a1aDì½8%³2 Ô•0W+JJ\M?Äè›û«é®”eÅDo 6.¼ ØØlHÀ¥© 32 î%ìU0À Þ ÓÀîÌœ9^rÂö†EŠ4´ZÊàjOzµl•zhbjôM¢2‘Ku¯÷±C•/¶ZÇù¨¿ñòóÕ8ÛÁç :D%”Å(Ÿàu`|*'c*!ÿ¢mô’ …åkªôžò ®EÔþhMåêùåaª1[zá×wöêviGŒŠXâs9N&pÀ·ë“îIYSÍÃÚ×ÓKú[ôùÁÀƒÈy€ãÛNιA®¾ 'ŸÄšñçuÙÕ„ÿësRáÿ<M‚ð»]A0®FãjAPÎ ‚ œQýrN*’ È·Áø9A÷JDíûç4i‚v;Aäá‚ >'‚úœ Îc!‚ãá‚`üœ ÆÏ ‚|;AäÛ ‚ >'‚úœ ˆÀÿ×éâeRyIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qrect-diagram-zero.png0000644000076500000240000001211612536324474023140 0ustar philstaff00000000000000‰PNG  IHDRMù,¾ðD pHYs  šœtIMEÕ  04¨áÞÿbKGDÿÿÿ ½§“ÛIDATxÚíÝ luÇñíA9Š‚oA!`*‚r)¾ òj ‡@ TRƒŠ‚áåH0 rÈEE œ‚J$"¢ôU94$¢A´(”B/Ú÷gÿ¼ó®³;Kiiwwæ;!Ëtvvfgv>ó<Ï®˜sçÎù|¾˜˜˜ââb½úJ:Ó¯Wë-Óãÿ–ÿGl#øüºÀ)‡h{÷‚otúA?t?nûˆÓÚœ²Ó÷·ÍÝÿ›Û–"ð›Û~#§9ÚÆqZù¶å ú®ÓìJó«Y#8­yÛwð?è6`›Tè~Ûtl«%ÄVmûæ!~² ÃVfˆ‰‡Ø¨.¸å‡ØœÎO¹¨¨ç8ǹËÏqŽsœãç8Ç9ÎqŽsœãç8§ç8Ç9ÎqŽsœ“·ãç8Ç9ÎqŽsœãç8Ç9ÎqN;Ü¥w¸…•§ ºÅàç8§s_w8Ç9ÎÃé¼—ssœã¼\ÎÝÑáç´Ã…rî2ðÚuâçÄswÆs'8Ç9ñÜ…ñÜ,&ÎqN<'žãç8Ç9Îqݕ©»Õ‡sœãüÿ³sk«;ÎqŽsûùpîÐN;Îq~ð•vJ,ÎqN;\ø¯W‹Æ8œãç8Ç9νš·‡pQÚƒ®ëÒcÀ9Îqî¸Å”zÐ釞Q ’е7׫᜼½Bî'SÊ#[æ5666èftÝißçÿk 5Äô„ØîqŽsâ9÷Â9Ήç8Ç9ÎqŽsœãœ¼ç8Ç9ÎqŽsòvœãç8Ç9ÎqŽsœãç8Ç9ÎqŽsœãç´·ãç8'žãç8'žãçÄsœãçÄsœãç8Ç9Îqîá¼]¯N›õÅ:wç8Çyâ¹ÏïI åŒçþýNß䯞’ÿôêÓÒ™{Ë9ü8÷Šs3¿¸839âyEÅ󬬬eË–:uʶ_l<׎)111==½ZµjÄsœÏ#%žkJ³322ºtéÒ£GsÅ@T¥t^XXX«V­¹sçÖ¬Y3p'uþ‹ÅÆÅåûåÏõ«cªÆøÝÎ ç^sn&R”›_§î?zõ+..òy0žWšó;v¤¥¥íÞ½;è&{ióöbݳ1>þä§Û¾ë|»/!æ\^ñù¼ÝúV%ýÖ«õ–õƒØ•ÿý#>¿Owô]ÿ9öÛ¾ž/`œbç9úœ—Ñ^>‡5ã ¡”‹æ ¶°>ç5oû1 8ÜlÌýÚÑ+q­Ù.¥Õ®}ÅEžt^ y»œÇÅÅÉyjjê¾}ûÔWfç¥l‡“sUb§3vîëÜ1©oŸ:‡Ë>¥!Äs/Æses‡'<šÐ¨qË­»J¹Uã¼ìÎGŽ)çå‰ç¥<®ö?ç_ìípsƒIO5œ<£¸° &¾ ν™·åçí¹¡i|R–Ÿ~ãQç•–·öÙgrþí·ßš=KE;WÞž½kçÞL|²Ñó3Už)À¹ÇÅåžÝÓæ:Õç-·ïöhÞî~ç“Æ5šò|â¹góö¢¼ÜóñܳÎÉÛqNÞŽsœãç8Ç9ÎqN}N}Žsêsœãç8Ç9ÎqŽsœãç8§Žv8Úáh‡Ã9ÎqNÞNÞŽsòvœãç8'o'oÇ9y;ÎqŽsœãç8Ç9õ9õ9ΩωçÄsœωç8'žωç8'žωç8'žãç8Ç9y;y;ÎÉÛqŽsœãœ¼¼çäí8Ç9ÎqŽsœãœúœúçÔç8Ç9ÎqNÞNÞŽsòvâ9ñçÄsœãç8Ç9ÎqŽsêsêsœSŸãç8Ç9ÎqŽsœãç8§Žv8œÓ‡sœãç8Ç9ÎqN}N}Žsêsâ9ñçÄsœãçäíäí8'oÇyœþùç?üð×_sœãÜ…y»-//ï?þ¨W¯y;ÎÉÛ]ë<ð·Ä9Îqî6çÅ%]ll,ñç8wa}–xN}ŽsêsœãçäíÔç8'o÷šsÅ|ÕÕ!6VMÄkÿá¶…±Ž®©3E;ÎqŽó0äíA·¹ÀM§”‹Øg)éB,y;ÎÉÛ+¶>ËO>ù¤U«VW\q…9ãÅà4LHH8{öìÆ{õ꥓[5ÐÄpõçææê\×N:™‰XsU§‰;vL#œ9s¦víÚõë×÷ï8Ç9Î+Õ¹øÉdÏž=§M›&ê&öšW+ÙÎÎÎ~å•Wžxâ ƒÙšÔñãǼiÓ&™/,,ÔtÞ{|œœaÆiãÆ4hÐéӧ׬Y3kÖ, ãç8C}®w¥tÀ€]»vÕ ê·ÞzëСC5BFFÆ‹/¾X§Ngžy&))I¶mÛVc®X±B°{÷î}íµ×6nÜxÈ!<ðÀêÕ«uÆëm·Ý¦Ï>|Xã(’Oœ8qéÒ¥š”>ùä“-[¶4»êsœSŸ‡'žßqÇU«VMOO×åË—7kÖ¬OŸ>S¦LQZ®³Öß~ûmý¹uëV½5oÞ< ôÑG“““W®\yÕUW >¼iÓ¦Ó§O×,Ú)8p`ݺu .üðÃË.»ìî»ï~çwÉ333[» Ö¯_?ÍKµýÚµkçÏŸsœã<œyû½÷Þ«4[™¹œ çÎ;¿ÿþûöíÛ«¨–áÖ­[Ožø j~í4/í”À/[¶LS»„ÎÉÛqNÞ~qÎeR’Û´i#çJÑÕx&œŠÀ‡RTê©§äVCtyyƒ ”+½?zôèªU«”ðoÞ¼¹J•*wÝu—áÏúé§3fL˜0AÉ¿>¥y-Y²dÏž=sæÌÁ9Îqž¼]ì;V›7o®P|ã7*WSùÁƒOž<™ššš––6f̘×_ý÷ßïß¿¿T«}N%·v£G~õÕW5Dãè³»wïÖ.ãƒ>ÈÏÏWº>sæLÍëé§ŸîСƒvV“;y;ÎÉÛÃ|žŒéHEfaVK›b¾Ù,X° %%¥cÇŽ‹-i5È«äVyï?µŸþùòË/×Qwí ´#ЧÔÞ®j ÿý'pŽsœ‡í:[œ×«¹÷›9F éjo¿é¦›ÔP§<\g¿˜fm7#¿ùæ›JÝuì]yÊ8~ŽsœGÊu,þ=Öùªþë]™¼ZÔ›4i’˜˜t½[g¼+uW´ïêÕ«+¼‡pK}ŽsêóH¹.Õœ'g ›LÞÿê”׫… B<Ç9ñ<²®KµòyÓ˜®;ý–A ÏqN<çúsœãç8Ç9Îq®û@š«ÖlÄ9Îqî†ûÃ…¸÷‡Ã9ípšåôœ Û½{wo%8Ç9Î]•·ëкÎ×%. 6´{'oÇ9y»{œë7]¦®k]pŽsœÏqŽsœãç8Çyd¶Ãýù矺S…q®™V´sÚápN;ÎqŽsœãç8§>§>Ç9õ9ÎqŽsœ“·“·ãœ¼ç8Ç9ÎqŽsœãç8Ç9Îi‡Ã9íp8Ç9ÎqŽsœãçÔçÔç8§>Ç9ÎqŽsœãç8Ç9ÎqŽsœãç8Ç9ÎqÎq5Ž«áœãj8Ç9ÎqNÞNÞŽsòvœãç8'o'oÇ9y;ÎqŽsœãç8Ç9ÎqŽsœãç8Ç9ÎqŽsŽ«q\ çW#žÏqN<Ç9ÎqŽsòvòvœ“·ãç8Ç9ÎqŽsêsêsœSŸãç8Ç9ÎqŽsœSŸSŸãœúœx^ñ|⸆rž—s/:‹+Ê=»·Íuñuê’·W’ó>ú¨I“&yRWVçf`\It|òvœ“·‡ÍùéÓ§“““•À'&&ZÅBœ‹wVVVZZÚ”)S õ§“óì/v|{Ç?k´J©Ñ¢Õ_ñ<6çÞt®?OnÙPýú”–ÛþƒóŠu®effæä䨶à2Äsí&’’’®¾úêÐñ<û‹Ïö÷ü—Òõsg΄^A8w«óó3Š‹SoâíR>üçë<ð·¬ÀúÜìYrsóÕo{ÁŸ ç.Žçz-*(ŒMHH¸º>ííëÜ Ü‚ËVŸ›òÞ)ž‡xîMçþƒnu8ÖxnþÓë_ÿJ†Ç8ü8÷‚sk“8ßCÞîçÁ¾Î=í<`­âç8Ç9ÎqŽsœSŸãç8'žãç8Ç9ÎqŽsòvœãç8Ç9ÎqNÞŽsœÏqŽsœÏqŽsœÏqŽsœãç8Ç9y;ÎqŽsœ—Úyà"„ØÚpîâûLEÞîçÔ‚sO9zoœ»$žké ªU«F<÷yùþp+ çQï\Ë¿eË–9sælÞ¼Ù<çŒçºÅð™3gzè!m ºw¨õŒês—8×-Ÿ×¯_¯Û?ïÚµË<çÞÌÛuOñÖ­[üñÇ7¶žB÷tÄsâ9Σ;ž;m®+xN<Çy´ÆóÒwåtbãç8w¡ó Öœv8Ç9ÎËèüb‘W„ó2w¡ÛqŽsœ—˹5 MJÅ¿^µ¥®ö¢’ND¾Šì‚"Å9Îq~Þy9]YÓ)ç/y„§½ç´·7±¶ /›%u&Œçääè&X¥J_tþKM<Ç9ñ<¦ -pæ›äææV¯^ÝñÎqŽó“}îípŽsœÇ˜²ç8>ç¦©Å¿í·°°PQËJSÍŸêB7Íi]æ\«"BŠêJrN;œ œ;}ÄiѬä!ϸµNÎ*îàvØ;+°áyò䌌Œ¼¼¼¨sn"¶mÃÕV{âÄ Ý‘~àÀ¿þú«pøðá’¼}ûö-Zè¡)))Ò»`Á‚.]º(‹÷»ï¾»oß¾ 6<÷Üs 48pà@ýúõŸ}öYmâ#FŒ3fŒî…ºhÑ"í 4PSl ²¾­ÙA”ò§‰çZœ“'O¶k×Îv½ZÙ­E«sw·ÃmܸñùçŸß¹s§›Úá”s¶oß^n¿üòËÞ½{ÿöÛoB®?;tè  º{÷îݺu›7oÞ?þ(Ãß|óÍŠ+~øái×AÑ[o)È?òÈ# ¸ï¾ûÖ¬Y£iîß¿üøñ«W¯v:»+ÚÛáÚ¶m«£íøyå×ça™£Ï ÏcQ²úøãëô'´‘æ\¯J¿rÓÒÒü÷Âf4“p*ßyçG]¹rezzúwß}§0®§Žœ={öøñã×\sÍÈ‘#5²ÀO:õ«¯¾:räˆê¥={öÔ«&%%uêÔiÖ¬YK–,ÑŽC#÷éÓGYÀ•W^iÛ'šï¦}ºR›~ýúɹâyíÚµÀ•éhï i*ù×^@»°Ïm»¡h|þ¹NCüŽNwúYC<­ñbû™KÂÞ+ípÖ7T° ñD];œ‰z+55UmKª´±“““Uo›È<¬¤SÃ[óæÍõA5­)“ïѣǦM›TÏët‘Î;+W×ÔÆÞ¿ÿ×^{MæuÈmÕªU/¿ü²Úá®nípÖ¼ÌrEþs‘/ uûñs·æí_ÃçŠçŸÝâ‡Ë¶b{bb¢™‚䨭?­ïÓ¦MS´¶=öØc:ð®êÝBwS;\`ÐŽŠç"sÞ+ÎÏŸ¯ª™4 KÖÙ¬V¤F0ígVýâ_@š·:¤:_»ØTÀ‡¸– ç8ÇyeŸç4e«'èæ”9¡!5jÔpåùíQ꼜ڽr~»‹‡€WúëÕ.؃óHp^Jêþ­Œ8ǹ¯KuA<¡=ð8y;ÎqeÎ/xŒÝëÏcÁ9Î]æœû·ãç8Ç9ÎqŽsœãç8Ç9ÎqŽsœãç<ÿç8Ç9ñç8Ç9ñç8Ç9ÎqŽsœ“·ãçÄsâ9ÎqN<Ç9ÎqN<Ç9ÎqN<Ç9ÎqŽsœãçäí8Ç9ÎqŽsœãœ¼ç8Ç9ñç8'žãç8'žãç8'žãç8¿óÿÙAÛ{=¼IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qrect-intersect.png0000644000076500000240000002104612536324474022561 0ustar philstaff00000000000000‰PNG  IHDR°ùÉ ÷m!íIDATxÚí œåLJl1C©neIÉRöÝE$$»´ YÊ:ö a†±Œ0Ùº)%T–ºQ²æÚwQ²‹ÒmU’eh¹DWãþ:ÿ<Ÿ÷ž1™™cÎ÷÷y>çóÎ{Þó>ÏûÎ9ßóû?ÿçyNÈYŸâããÏ¢‘ÝêßÿýÔ©S¶í½ùn)™þ5‰ÕòÛo¿ùUjÿõɽ„"J« ±·¸>Ÿñ(¥ä½Û~wÞþÔã™3gÜv25ÀÕb&V£Û™|íA(@‚CLn3è°"¹GŽY²d‰Ù./žþ‡ì%g|ò7ï9½u¸z[â=OжlÙrâÄ ï íüûöíÛ¿¿Ÿ©D( :D€˜ѱÀçhh\¶lY–,Y~úé'hìÙ£G6oÞ\îåîYG@·mäòžÜ6¬v# w§¤ÐX{âââ\-ÒG}Ô°aCwr{ÉéÓ§µ±fÍšÚµkDDÈŒ®@pª}òäIg¾ŒMÖaçørÌ'CÛáÇï¸ã=.uÀQŸ¼­÷œ¿þúëÁƒþùggî´!ÚþðÃÆMðÚy¬–C‡¹Z¤‡~øõ×_w€Ö³"¦ƒlÓ¦MgÍšeÏònAi6dˆÉ'3b/¾øbLLÌÝwßÝ·o_ý©\ŠáïñÇÂ~üñÇ'Ÿ|RˆM2d˜8q¢pV¥J•Ì™3ßu×]›7oÖÁmÚ´ ó©]»vÆ2;gáÂ…üÍ7ßÜtÓM¹råÊ‘#ÇäÉ“n&LÐñ7ÜpCÅŠò:vì¨c´?<<\0­ZµªjÑIvïÞ-tæÉ“G:ìøñã•*UÊ™3§Ö‘öÚéӧרQ "€ˆ.So0 S¦L3fÌøúë¯ (æÎòåË' &‹—1cÆúõë Ž¯½öZöìÙÅÊwÞyGŒ›2eŠþ/Ý»w¿ýöÛ¿öI‚š^Þ¿sêÔ©âi­Zµúõë§ãÆ»þúëµñöÛo‹tŠÊå7n\¢D íœ4i’§ÞÀÏ?ÿüÖ[oŒŒÔ¢žjѳj^©R¥Œ}ÑÑÑ÷Þ{¯6>øàµMÚV¢j—µ0œ.ˆèr€!Þ9oeñ¬€˜?~±O¼ñÆwìØ¡2hò‰Ú)&\*¶ÕÁ¢Ø»ï¾kÆPÄ(µñÔSOÙ9%7õý X6”G{ªU«Ö©S'mèäŸ}ö™Ð©gëÕ«'4ÛKÖ¯_/hþç?ÿQ-ОnݺµlÙÒž:t¨š±}ûvµ_ç´«PKtð¿þõ/Å#”HR%ùd!³XÓµkW –³ÆŠ/Ç}’ó2*}ÿý÷¶S(¼í¶ÛM-§OÚ¯V;G»tébÿ8!¯råÊ „uØ?þñí¬^½ú5×\#¨é%zC·nÝzÿý÷ ‚Öáh SuªZ·5R2ðÉ´¶nÝZ^5[¶l2¤:ÞÞåË—Ÿ7ožÁ›1Gˆ¤ ºT‡¨˜×X£?íV{¢$fY(*‡h;’ ¨…¿†!qê‹/¾˜3gŽÓ «ó¼ÿþû:§úß{ャY³îÚµë¾ûî3‡¨ó(¦¶dˆº —Ò¢E‹žþye]Tµsˆ-Z´0ØmذA ?þøã;ï¼S†Ñ^%ÏŸ?ß9DÞ3‡ˆ.Ç!¥O>ù¤gÏžb< sˆÚ×\Ç¢Q,oÞ¼Êuhç£>*hGj£U«VÚÙ¹sgsˆ"©ÌàØ±c…'uÞ|óÍ;wî|óÍ7hïÙ³Gä’—TÚDG*]£Ä‹§ª ,¨ýjFîܹP=«ür¹r嬑%K–lÔ¨‘È(+ñ2hÐ ëCÔÁzÔ[E—  ±Œ6ÿe„CLSrã¢Å¯ÿ^®ôZK5xï¤q¼Ov»åæÊ–-+7' öØcý쓬™Ì  Ô¶À§íš5k*C"~ Lâ Â^¥Œ4h VêYù;wN¥Vt¤¼žú"‡ b;ELÑB˜lÈh;•2(uª&Mšvj¡j¹îºë>ýôSµP¡B.nóeTnëHáXŽU;gÏž­ì6Ô]‚.„ÎDDR%-3ñìåÎÕu¯MxÝ7ðÂmp1µ8(èGãŽôδ‹÷ÌTQzÄ:͵Ù«z*mÆ´w§;«E/7+jãõ¬^¥× …ë=ô(|öÜ|çøÿŸÌç–Ty¯ˆ2Ê|¹3¥PÕ¹¦ž¸EI”^8wî\%7ü¢Èøs3UÜÎxßÈj»õ~~Ϻ—¸Ä´ËS{©çæ±ØËE+7ð;þÿgªxtc Ý\=nܸQW ynr‹uƒÊ3ÊTú5’žDÈœehÅŠ!!!šN§A*|—))R*C¯ÕHi—9¹"!|ÂÕ¼úÅæ…^ûæ=ƒ{Ö;²ÚcÜ-`wûmÔ¤¦]+Ó⦠zk± 3rÇ’(}Ù£”°·!bêÈM.Ú”rU©ôë/I”ÂU3SWöNº^M²Yz^©FëRt‡i¿Íÿóã‹Aä²G¿Î÷Úóú¾ ™Þ’”ø‹Lô‹mÝÉÕ$ Á±ƒÆ sµ‚`éÒ¥µ¡!86,ñ»ï¾ÓFÄc籫›9s¦r&†o­[cñœ˜¯¼Dc¾téR÷=@ ,‡˜*Vŧy#4c Pb'**Êbäçž{nùòåÊx,^¼Ø’?=zô(P €† *VÝ6mÚ¤Q2l¨YÉêË+R¤Èo¼!PjcíÚµFÉiÓ¦Ù¶†g+elò/þß½‰3I”9_]TjÝv„b Ñ ÑÈÁþóŸÚ¾çž{Ô+gƒŸ5ÆPSM´à‚-ëP·n]-Í b8PÇÔ©SGÓòÄG­¦#ª+SSî4NpÁ‚â¦Fbëê4ºP¶m@T6\Cm)ÆTü¿§úmGè<@$©’0vKáÞýøskjh‹:øÔ{(ºiΜFj¢±RØ"E¯^½´¤baýi³Ïú–ó*Z´¨ öYìÓêγI,š÷¢³)®Ä…ûËx ©ëÖ­sxpÞv„Hª¨C´6(˜Õ 2wZaذaZ'Q«*Ibì“%Tt,÷gvÒr)Ö‡¨™Ë¶p¡ú5eEÑ·m‹ƒ:³ì¤MËs¿U¡BKÂx©Å!"„C ‡h5*ªÕÚ…Š‚{÷î­)É¢˜ÖõRg¢Q‹wi•0Íqv4ÑÔ[ëPöЦ6-ˬG¢ÆÛZ‡.E#ŒÚ‚ví8D„pˆdUÜh%IÔ3¸páBm mÚV:å¬o²–T°.E U1 +VÌ¢ ™-Ëì¢ÆHîÝ»÷oû›M—¶´ŒþpϦêdd"Â!â/Ò¨¨944T\;ë›>¬L±CˆO?ý´6”J%ÕɨDŠnЂØfµSIg º–´ß УpiTW£~CÊêR—¢B泩ý#Ë8D„CÄ!^È$m-BmkÎŒú Y¿údÛ­€Wý‰j¹u&*s¢¡9¶{¹eݪÝz[|­îÈ+2쇈pˆ8Ädqˆñçû­dï~;ÒûëÌ é‰O0ëή嫯¾zà, ­¨Ü,$!‡ä“ÿÿóÿÎ&˜nïYlÆB{wÚžó²Õö+ÖþòË/e-µ~¢×ŽD„™ƒ%vK8¡0@Ö$dF„Ì8ÄT0žñçFôÆÔµ‡8DDÈ S‰~½“ðˆ DÄmGô!Ò‡ˆ¸íˆ>īȪhÅl¬ 2D>™©sÛµn¶~ÇÆ­EÆmA1•eY×Õ«WkÑ@÷Kž¼3øBô!£ÜRûšèƧ˜Üﱌ5Ê~~šÛŽR¿ &·ÌÛ‚ÛŽ"B)MCùD·ÆoBD–!„èCD!"B1ì!„"BчˆB »A!’*!D"BчˆB„Ì!„CD!²Ì!B(¨úãÏý:%pD)&÷f£#V¢[“NKÔýŽPŠÈ½Ùø&F2{¿®ù®F)#÷fƒ†(àúí7.ÂÃà æ/X¢p‰â…ŠS(É]Š*zß}÷¹™â‰ˆö+hÕ*UÍtg–’ÝÊÞõD±»Û§P’©è V,¼T®Zy³‡f;w–ªGÄÊe*n]´÷:íêÑyo…’L¥Óî=÷÷«7¹qX–°cÇD˜@¬tÇCÂwõh¹²mëµí)”d*-Wµm¿¥Ë}£k‡fÎQ€±’€øHÎ{z¶ZӮ͆J2•VkÛuØÞµÆX€ˆ" D€@t ,ˬ9ÿ#»ìPPóÄû)”d*­×µï¸£[ÍqˆÇD„èC¤àÂ!Rpˆá)8D„pˆ"BItˆ‘ˆ€ˆ@¤D„HªPHª ÄL @Dˆ,3…!ú)!€HˆD @D R"B‘ˆ€ˆPr‘qˆÆ!"Ä8D !Bf @D R"Bô!RèCDˆÅ(!’*Bf„™)8D„™)!€HˆD @Dˆ¤ …¤ B ̦D„" "İ }ˆчHÁ!"DÈLˆ2S™b" D) "’*úéCDô!R(8D„C¤Ppˆ‡H¡àI  "€H¡DD"…B"bê…I …чH¡D)€ˆ"…@LÛe}‡Ö¾G•'Öù))RZ¯i×q[ךcj‡ ˆÇ"ˆP|4l¯Ç–†?¾¹³[ê‘’ü¥Å¦Nm÷ö¬þ|ÝÐÌ¡qÇâôÞ;}úôƒI¿ýö›>wöé»ôO¬{‰!…kgbZ/¢×wè6¯y÷9ͺÍmÞ’"¥Û즽–¶zdHµÙ²ýö+†Ý Æ![oêÔay›÷ª„-/™qi™ÌË()SJgÒã’2YÖ–y¶VÉ[´~¬YÓæÁ¡fÍšµhÑâ±ÇÛ»woR¿ ôQÕã/¿ü¢34hРqÒÕ¨Q£&Mš¨—Q;@  .ªº¢D}J—SRª,+•qI©LËfìZèúërå½-Oî90$&4¨oß¾—Ä¿( ?ž1cF€H–9ñ¤Ê=ÙW 3ì¥È7výñq}ýJ2–×6E¿º1jÆŽ·W^_(dróZýc†ð‡uJóܯ_?qùòå©2ÿøãâÒ¥K ™ ™/äGÇLè?cçÀ)¾¶‰’ŒåÕ§¼9}»â:"‡ˆCÄ!âqˆd™" DBfBf !3!3Yf€Hˆ D @ˆ R"@$ËLR…BR…¤ Yf€Hˆ D @ˆ R"@d"I I’*$Upˆ"‘ R"@ˆ‘Ó µbv–,YX1›>DúéC¤‘>DfªD€}ŸtÕxâĉŽ;îÞ½[ÛB$$©BÈLÈœFBfû$ûm¤zì™X“.eÿ®â¢{)·Â¯.ï‘8D"ñêvˆ¿û¤ }„ÍîÙŸ~¿KuÆ'·G•ž÷à¿Ò o-çýÓïG²ÜööÿÅ‹õž*±¶ykˆ ¦…Ù8Izö Æã~ÔKXéy!˜ØaWðb/Ü6€âÕD÷¹•µ1—gŽÉú»:uêôòË/kC¿5j;µaöG;¿óÉÍöZ=ëõŒæ˜¬1¶áp–J{¬R·Ó~Ú4a-Æõ Ìš5Ë®ÑN¨Gýùå—_êÇ©]cL6¨gÏžÊùèO»Š„¹‹8q¢Uämد¿þª¯û¤“'O&Ö6Ýüyóæ=zT?–íZB"}ˆô!^M}ˆ®ÃË>äÞT‰Îùæ›oZžÄ bœ:uJÝ|2\Ú‡ÝûÁwDðnx+22ÚN;¿m¸&‰\-Æ©êÕ«oÛ¶Í{®Æºuë.^¼ØÙNxøðáÛo¿ý‡~pU{“ãV‘!µÿþv±ÆAw öÃÓjC—.]Ü—ß°¶Ý{ï½[¶lÑŸ<ð€k ‡ˆC¼Ê¢>ó_|ñÅÁƒ_yå9 7ºðçŸÖCm|ûí·GŽÙ¼y³êZ³f¥•z衇~øÐ¡C:ƒàõꫯ2Äh%;vLîiçÎo¼ñ†a̘1111;vìp8Û¾}»^¢û R‹-ÒE½÷Þ{fǬ–ï¿ÿ^Nš4©qãÆv~Ü{BIîL$rxµ³ …… þôÓOÇ÷ÜsÏÉ0úU¤G{ùO>"U]ll¬î†®ÂÚߣG>}ú¨ÁºÏ«W¯öÞ„mó¶ D€xÕÑQã®»îªY³æwÞiÈ0$O¤@RbA¾|ùjù”.]ºM›6MŸ>]Õi0v»víþ+W¾ùæ›EôéÓ[H+(*T¨L™2>ø jÉŸ?‰%t€käÌ™3µ­=zaµjÕ Ä²º™2ee®¹æšgžyfêÔ©ªNµ´iÓFÏÞÿý#GŽÔF\\\Ü W¬X¡¿üòK‘"EvíÚe$²K¯ï¸ãŽJ•*Õ©S'W®\µk×6fõêÕKUa2dˆˆˆÐžÎ;›üæ›orçÎ]®\¹Š+–*UJ.šÉ‰ßvÛmò§~wàÚk¯umC­j]‹Z¢/fª22_M!³›g"½øâ‹öZ}x-ŠTn¼ñFóqM›6;¬Ó-<<\]»v­ZµªpΜ9aaaÚ‘T{Ì0Î;W6Í% ÜìÙ³[k¥âÅ‹Ëë©ÞÐÐÐuëÖi†4^ýõª±wïÞVYžPk±* nذ¡¢Î·ÞzKý†"£¥S,ƒlm°ê„3AG!°5ÃP1¯z!m§ª@ý€¨K3ŒªUòqB“اW©©ªZý€‚×Ö­[Õç`—£f+Þ·ê* ˆ «ËV‹» ÛfÍÖ1v<@ˆñê¢zõèD¹-³Bz4Ðøí4Jª[M¡¥ã”í\¸p¡@i;GùdÛ ÌÕc¨Žæ>›[””îÐñÿþ÷¿G—õxë­·ÊZ*’µ*¿qË-·lذAÛ2†î„/½ô’‘×Z¢ØÖˆº4;§€e‚Š Å/G*ÁNOéÚué$–;¶>M¢: Ü΄·ÅÚ¦ŽEDDik€âU D€(U©REvÉŒ¡™&=:8Û(ƒV°`Á>úHyŒÌ™3·jÕJi_qAŒÖ™¨Ö1KmS E1eW40P;}ôQ!OƒõBõâ)…m”2q `•)Z´¨ ýQw¡pm«§ÒŠhÞ*ž5ª/rýúõ6†FymÈÊ!šwÓ£¶5NPGªå:À*Ò sf÷t•*QI'QÂǺDM瑽w@É(×¶3f¸A?jÉÆ"@ˆW݈¿ùóç[ÎÄRfv6ûdŸ=« Û)—§xSá§¶• yä‘G2kL²SVÑ¿1æjðJ#ŸG#ƒò*êÂSÐ*ZjØÆ÷éZ”t”J¶תEGj{øðáÍš5³fxOh׫ŽKEÜVBr]… Üq—f—i‰5O}‚ 4P`k¹kÔA+–—9}÷ÝwsäÈ¡kÀ]uÂ;°m:X-a.3ÃnvsõMÝ󛎖pššwÃo§³>Þå æ=Ø;™ÄoX¸ßNwoòG_Ÿº=ö¬E©2ž6(Ç]~bS÷«È¥ÍÇÜÐ&à Ù.ù~Þ;àm›¹l™Mk‰^"@¼ú¦î¹õ¼Ë¸Õ ¼ë8xwÚÔ7·í7ÏAÄÍ“ssòÜz¶Óo‘ïy\-ÆEå5ËKž>'ý¹oß¾&Mš¸9*Úpµ{kLX»·"ë9•ïS·£Æå(¢Wä«~L»¥¸Ö6ÅïJ ‰‰Â¨k !3!3!s­˜’kYØk.Ìo™/ÙFK%{ຼåŬ–={ö|öÙgîKâk yÛ¦fhä£Í]aX"1èˆM±ehKl….wÌe/Àãªps™®6vѶùµ‡ˆCÄ!‘C4d!ªw!Õ”_ Ö»8Å__×o=‹ ŸÓoXoKpˆ8Dbp9Ä”Y‘ßTˆ€è@´¹VaÐÀ=ïBa D€t@´$¯†Fkí·ªˆ /5³MÓŠ"¿ºGR…¤JP'UlìžsˆÞu°3Upˆ8DBf"!3@ˆ 222222ãqˆ8D"‡ˆCÄ!â/Ñ!D€""d&d&d&d&d&dÆ!âqˆ8DBf€"@ˆ D€"@ˆ D€"@ˆ Ä+Ä vsˆ1"§ïˆž¼^WJ2–)ïGOÞ5mÛÛ*D€¸ãÿâÃÂw÷h¹ªmëuíÓ~YÛ®å†í–ü9qÔˆ)}g}5m«Ì %Ëôí¢a¿™ûf6®Â8ÄËø]f÷Óg’(û øˆˆÆ!^Ò8Ä{ÊÝswëb}ß٣˞ˆ´_>îþÉS=7w–C\Y$äÅÞQÃǾ;rjì³Ó)ÉXb§ÅÆN>fæìº¥Ö™Ô¼&‡ˆ±zÕê!YBr”É™­hXh±ìAP®-šýæbasKeZU&ó²éWY^"Ý Jr–å¾¢[½¬t¦ÕEC&7­ŽCL’CÔK¶nÝúá‡nN¢6nÜøùçŸ7kÖ¬téÒ8Ä ­‡hqü ãÛ¶iþdx§';Ey¢c‡'ûµ~ra…‹KfXR.ë’r×.){íÒrY)ÉXÊúJ¹¬‹Ëe[Y<ݹ9 ^Tö9‹‹»îºët†téÒ…$QéÓ§×cíÚµb¢@ô~ùœMüGïÓžÜï éÕ=_Žl£FíÕ#¦wÏa}"()PbôØ»çàþ}øP/ý×Ù8ðí·ß~—DÙKöïßèÐ!Uí~£ù;D»/¢ƒ¦ÿL:qâ„Þýû÷ {æÙQ‘у¢ 0x%%Ê ÁQzŒô'ˆ—ÎÄËö.ñžŸŠ‡€‰&U‚³Õºcþb¿~a¡¡#† ÀmÀu}SR¨ØÝö¥Hª$ gö«Ê—!{¡‡¤Êù“*Aû` "ýáCC‡4fÝò_èRCf€@$d¾HÈì,ºßFšÑŸ!³ˆ#FŒ0F#”Ç!¢Kº— mˆ¢ "ƒˆçµ‡iïDÑÅhy¨}ûö-X°àå—_nÛ¶­íÄ!"ƒˆöZºtiXXX:uFˆA D%²fͪ©BÎ32#ƒˆsçέP¡‚6N:ER!€Ô@œ7o^ùòåϦݕ‚"ˆèO ^``¶‘BÑ€˜VÆ``6b`6ºøLûâš?~•*U"B1¨gªØÎ“'O>|ølÚNÈŒ™ÑÅûƒDDtñ>D÷s6~„Ì2³"!"!3@D D€ˆ@ˆ!€HR…³Iª ’* ̈D€"ˆ DãIª ’*ˆ,3@D‘e&dF„̈‡ˆpˆˆ "€ˆ"@DчH"¢чˆCD8D„CÄ!""b¦ @DD€ˆ"ˆDDR…¤ "©‚‡@Dd™ ™!3"dÆ!"""dˆ "€@ˆ "€IªTA$UHª00 "É22#DÈLÈœšúÝ'mœ9sFÈ“ ÔÛλ‡ˆpˆ(X¢]‘]¤Û#&¼X"Â!¢´ŸT‘7ÔîÝ»·wïÞ]ºtYµj•þÔN"Â!¢àrˆf9’7oÞZµjµjÕJï¿ùóç'üBÆ!""JãÑ0'.\Ø.uâĉsæÌ±÷Ÿ÷zqˆ‡ˆ‚Â!·6æWWÕ¯§ZŸ´&Ìi]€ÖšÇ#Iæ%9m ço¼tt#ÉVÀpo›$™ÂµFíÜo‚cÏîÛ×òµ$#ýþ÷œ¤Ï7¿þ~'j“ÖCxJ2’dN’Í’ÌslN’õÇÛœ·A’mÇt»OUÝÌöL2wÐÇúI¶ö;8vŸ$÷§ÌÃcÇ´Ýn†^;Á{œ›$ýëõ’l0¦žõ€£“ûï–äAIæ ömì l4¦ÿùýÅpßîÀUuyU-*ÉNãÕ'­-†ðôôAàÍt#¶}Æ;8a‚í÷G''¹(ÉÆý±Ë“l œl œd ° øLßæÙýþ‘$§?~¼cô‚}Ÿ{N$yd’‹€¿NòOUu pu’‡óÏß¿>¸jàçûGѾ“\ |±[ôm?Œg$™×ï{%p&pf’“×|Qß~Ô‰ÀóÆ©MZk áéë9À¢ªúÔjž÷8`qUíB®Œ9~ pCUíÙo<«ªvvŽIrºÑåB``[`xó`Gà—ƒíWoªª¿vû°ó8užŒNUì\ ì–d3àÁÀ×Ç´3°U=8 Ø ª–{TÕ}ÛÛ€‡»û'YÔïßøù˜Ú6NmÒZ3²ò&jä“ýHruRUí__Hwj\IÐÓüþFts¥;û3¸Á•äþ¦¥ °Q?^×ß¼;½ª»˜ñCøKÀ{ûi‘ûM7ÂývUÝØÏVäat£Áü9ºÐžÈ‰ÕÝqþs’ßwë§-î]U— Úýx`’Ôw¨“Üxà$×ÒÊ]VU¶.bºéÿò=³q3ݾUuËîó¼Ul·á˜íËÆm5¾-[€»ö½¸”îFÜû/¼Þ¸at£ªÞ”äÀ3€W&ùbU½¨?|#ã|Øxð}àt£ò-èFÉC›W ®·"É“¼¯ñþ 6¤{¯·ëû °þØc»ÿ1ɵ4¹-éþ[?³qÓÖÝ(ä7ÀÇZ2Ã-_‹×ZAJ£ÆÎ¯²ªº ɵÀÉUµ¬Ÿ“}p<ðeº©‹ö͇O9üxöèF’#c«êß“ÜnnùUuÝTÆùã\û¶$_¥›Zø]ï l3¦ùw€“Ü£ª®N²5ð Õ|¯NrK’Mªêú¾î{Ë&û­ª/ÒÍCk úAÞ’ÆeLk£Ó¿©ª3[¢‰õϾ>¿Ÿ·ý&ð‘$o  ¬méþ·zUÝ läµUu$]þ<ɱt󣿯ªk’|xg’Ó?» ú8Ÿ;†à àóI>Û÷ñ¥>€éë;±頻ѧ-Nž|«ªnIò#`몺dXpì3À“|8˜nšcÔ_€#’±’÷~>ÝÔµý¿imrNxzzpÝ`ûº‘"Uue’]éælÏ£»)¶°o÷.àúÁyÃíýéæUoKr°Sßß[“|Ÿ.dß@÷dUuU?ûdº}5°]ìOI®M²¨ª~G7šý2ðHà}t#WúÇÌví“îäÀA}Ÿ§%]Ðo¿€nj`ÔûÑ/—<xR_ÃSú÷µ¬?vpmè¦D†_àn–î©‹Ñ~Ýü²ÔLèæá¨ª#šV¢%ÉßÿXU¯š¤ÍAÀ=«êýk¯²‰õÏ•î)tnûMtSNwÞètDU=³q)Ó–¨iJªêl`y?ÚÈCãÖRI+UU+èžw~°ðNX­9¡)«ªÿ\Éñׯ­ZVUU}¥u Ò#aIjÈ–¤† aIjÈ–¤† aIjÈ–¤† aIjÈ–¤† aIjÈ–¤† aIjÈ–¤† aIjÈUÔ$Ý•NÎj]Ät6Â&F’Ö˜ªº˜ìGYg½¸¦µ$µãœ°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRCùáüy?)HëB¤éj¬˜+Z×1Ã=fñ•7\ug;IrðÆ5PÏЫê°5Üç*YvluqI³Æúk¨Ÿs€n]CýÜ õ5%·ÿÐç'ŽÞ¯eÒ´tñiqÍ.<áèyë¿«u-3ÔéÀÂ5ÕÙšþͺ$;3]BøŠm6oY‡4-ýv³ Yº|Å勯¼aiëZf¢ól|Kë¦;oÌIRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$54Òºiº«ªÝ“¼¦u3ÑY÷Øèî›$­Ë˜Ö ai%¶¼×–{,ÚzÑ£Z×1ýõâ ælBµ.cZ3„¥•X´hQ–ì½d½ÖuÌDëýæÂbù­­Ë˜Ìg€/µ,À–4kUÕ_€¿´¬Ás’Ô!,I Â’Ô!,I Â’Ô!,I Â’Ô!,I Â’Ô!,I Â’Ô!,I Â’Ô!,iÖIòÇ$Ûô¯÷JVoåù$wOrí˜}'%Ùh’sÞ›dë±û aI³ÑÓ€Ëú×gp'—õMòàWUõ×Iš :v§!,iZKò„$»&y}’'9¶m’猷dß$»%yq’O Û»&y9°ð–$sÓy~’O&9,É¢Aß‹“|(ÉqÀâ1e¼·o·A’C’Ÿä5Iî PU÷Mrßቆ°¤éîÑÀ'€­‹Ç»ðÏlïlœ¼>É>ý±çõû¿¬¾ ,^<8Øør’»%Ù8¸ øðáÑ &ÙØ¢ª–õ»þ8ød_Ï;õ ì=|þ²†¤™àÖªzîλ´ªÞäÓÀ#覨ª³’ð?Uu[’ƒ€ªêàä$?–ߨª—ô}ÝÓw³ðËÁ5w~Ò_çLàÁƒc3fíHXÒLðÙ)ž÷ÝÁë›&k˜ä>Àƒ€S’,M²¸°%ðº@uÖàõƒ_¶,>:æ2—Ûw8–4¬êïÀ=`Ìöm«q?W¨ª›’l\lH7âµÝ˜ó;ؾx2°9ðDàëI¶®ª€}ûÛ9–4£$yH’Wô›Ë€‡'¹Gì_¦Øí‚ªZ| xwßßÀïÐݸ;80É’$ —Î=Ÿn=êmÀ«kéæš‡ ÛõíI²M’à Kšî~E7µð(€ªúY’ã èF±ïvîÛ]Ü<8o¸ý=þ6=ñ5à¼þ¹áÃã視ϯªë€ë’¼ 8 ðnàú¾†?$Ù8ɆUuÝtÄ[éF¼¿^Õ‚¼¯½9°w–ΟWGáéSûã‘Öa?ùøRF–ÎaÉÞKZ—2#íû±ckþò[,\|å —­ô„F’¤ªêNœÿ"àæª:n’6óªj¿á~§#$Ízw&€{XÉ7ïž¼eìNCX’ºx0w’f§UÕÙcw:',Ik@U]´’ãKÇÛïHX’2„%Í8IŽJòªÕÖlo•äI6LrÒêÔ3Ê–4[üxÉìãt`Þ`û0àØþÑ´_$ù‡ÕíЖ4S­—äÕINLò¬ÑIæ$ya¿¾ï¡ý·Þ  Ï]íîÏ}]?Â}ü ï-“ä¸${õí_Fwãí ýsÁÛ÷¯ªóúsÞÇ8KU®Œ!,i¦z)Ý'>F·åèêdožB·ÞÄÖÀéIæ g$y"ðvàÀVÀç¸ãêfGçЭ˜öù~±ösé¾}p Ýênÿ;zBUý‰.¼‡#å•òéI3Õ¹UõV€$Ÿ¡[!í[ÀAÀc«êwÀ§“œì\=8÷ àЪ:¡?îè¿«êSý±—¨ª³“,Ψª[“,¦ é¡K€é–È\%Ž„%ÍTÃÒþ d;`àÔÁJh›Ó‚‡G·.ĨﭬïqlÏWOƒn•´ÓvBŽ„%ÍTã­ö[àJ`·þ ô¿ëv w Ç méF®÷§[b²¾Çú#ÝR—C €?¬Â¹·s$,iQU·ÐMI¼3ÉæIv£[ÉllÖ¼8É–I–{«úÕåý¿Ç®žƒUÒV•#aI3ѯ¹ãÊjÃí×Ñ­„v ð#à¹Uu}’ëöm>J·ÛRºð©t£eèæy‡ËO·Ï¾Ÿätó¾/m”d`ýªº|uÞˆ!,iÆ©ªN´Ýÿ4Ñ>ãœsÝ":O>[U¯Hòmº'$¨ªg9ïÙƒ×O¬¸vv’ÓlÑïS¬î{q:BÒlô'àsIŽIr6Ý“§®Ê‰cV\;xAÿú@ºøjq$,iÖ©ª3“ìD÷èÚ‘U5¥µŽ«ê»InL2xÍèÍÀÕaKš•ªêzàËk ŸÑÕÑ.œÊùNGHRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°¤Y+ÉIömYÃ틺Ÿ|à‰×·,dÆ*6™3gNZW¢»À͹™Å;,n]†î:»K€¯¶*àö¾ñŠvoUÄL6wîÜS½Ï’í.\غÝE6Úh£Ö%hv{WÕ”~šc¶›7oÞÍ›nº)óçÏo]ФÈ9aIjÈ–¤† aIjÈ–¤† aIjÈ–¤†F&:d}à6`3 ªêšµV•$Í“„ÞüØsí”#I³Ë„#áÞ3€-«êÏk£IšmV6'ü X’î:+ á¥k¥ Iš¥|:B’2„%©¡Én̽¸jm"I³Ñ„!\U?_›…HÒlät„$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5dKRC†°$5d¯D’I´®CÒºi¤uÓU’_îÌM²´ªn\–¤uŒ#á‰=جªv¶*ɽ×$iãHxb?vHr p*ðÔªZѸ&IëG¨ªß.~–d›¶UIZ×ÂH²/°UYU{çû7.KÒ:Æéˆ‰]|*É.ÀuÀ€ÿl[’¤u#á TÕ¥Àbàà—ÀêjYÛª$­k O¢ª~ |°u’Ö]Ž„%©!CX’º}:â¼WËBfªsæ¾ú…ÖeHÓUÖx‡ÉË€ÍÖPw;×®¡¾¦Ä9aI³ÙÒþŸfþ‡T IŸ*IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qrectf-coordinates.png0000644000076500000240000005236512536324474023251 0ustar philstaff00000000000000‰PNG  IHDR&@¼9T¼IDATx^ìÝAKIðW¯»“ „lÀ ÊBr/Q¼‰OàgÜ<$ âÁœ< †£'BN‚dÀƒGO9Lð¢AÜ%W‰ qÄé®Ú²  M÷´q6ÅÿÇмi^W·EÕÔtu·C:•$‰,³kD>'²^ä Éç‹Üz‰KÞŠ’ƒÏï½âaKZ¾|`•ç;å»äˆüŽŠÞæ‹-:B]@ò±Ì’´¼ò:Ì—œ‹6¬RÃE•]S^E›—³¢¼>KZHQ T©–êÕ[ÞÅò•|­ª(ú訾SÉ)ªÒ’¾_Ôª·ð.}\äòË—ùƒïZŽ(ï¹]k»ÊTÑá•´jV7Àæf˜n€©‡c €RŠ™íÒÅT«13éËKÒÚŪ¦ sqñ×£G_ëu²’„ú0Ç&Iüì`Æ¥uüù³>;“5½K@Ù—¿Ô5¯”°©´6Dí÷ï¼{gã¢t!ËJXUZ+¢¯oÞüóô© ”w\Ã6äêÀsïànt ‚ÀÛóÀII­6üéÓ½gÏ®Þé Àsï µ—×Þ”RÆÅ\{ü8|ðÀh]ñª @H×&}yÀRÊXqLÌÄlCê1À³ŠÀLDE|û¶‡×K˜]ÃVa(q¯®—³!xýzèãGã­µ»w+þòEÿNJ™¾\/Ál²Ö|ÿ~08hR¾Í&(eÚí¿><«×Å1õàz ¸Áƒâø*ˆ"·†¼`Œ[êËKÓßQ0–à.—0TD65䀾žnÆ0Zsüh4âÃÃ{ÏŸ“¹Bžèo³ÜÇZÑ··oÿ}ùÒÛ[\÷q1ó;êÖ-²qîãÂsïah#ã#ªÕþ8<üíÅ‹êϽ°ß×É] qwxîpEP©ppïÞýß=÷˜ãr_ç]üs?Ö&­\Ê)!{I’Db9 )DkíÒl ª” T>Ïq~W±Ó)ú]Ef–dYV$ÉrEFkmRÒU%M‘Ý©ÃÌùÂ寰\7ÏîTýÒ0Ç%Ÿ×˜Êd+¥TÅÍ%- ÃV«u||ì¶•õ:Å̮۠ú¡ðÀ@84ä߀tŽ"bvqQG–ø'Ê‚@¥là–aÊÃ’%=ˆŠrä­ QòmÒÙóK×I¹@ZƒÄùsmI¶˜yzzzkkËIÁ“4 )s~~~xxxaaˆ:¥\iív{nnÎÆÛÛÛKKKÌÇq—{|Ó¹ãß_½j6IÒüš6Z_|ø·Z*÷ÿ¸²]Rú©lëH_vqv½ûÞ¶»»;666::úgjdddbbb}}S§§§ããã{{{œ̲ƒ3Ÿœœ ²»£”?‚ ØØØX]]µÁìììþþ¾Û[ÀÔƘ8Ž™yqqqffÆ rVÄ’/'¼ÙÖÙl6í†4ha3¥(»wttT¯××ÖÖVVVˆhrr²Ñh0³T–——ÏÏÏ™yjjjsssgg'Š"»m×Ùd CE>÷ð{wkUuż#<&A& @-Ô´TËûòÖôÿ¯µÏ¥Þÿ=÷þ‡‡¾ûìsÏ=צM›gžyföìÙ-n»í6—$צ;ÇLxçÎW¯^MtVº/3a„H a .L›6í‘G±¦I“&£F*ÁÏY½$q—"Æ)ùe¨öý÷ß?~ü8u „›Ö›:sæÌéÓ§Z …J‡¬—ª;vÌ-Œ“–”-[¶eË–TÓø½÷Þûðà ʔ)”¬Y³æÅ_ô±R¥Jƒ š4iRèåMÙd6ÁÀ Hi£_3É$Tº¨ZH2Æëׯ3Ûä‘Yœ8qâÄ ÖmlY2%S|ðñÑG'–©bÅŠX´Á¸qã^xá…éÓ§O™2eÆŒf«W¯þæ›o+ÆD†©¸«D”ôTö7eC›K MÅæÁi§ÐµhÑ¢zõê‰|>>Ü,n#Ç–$Éê%p…€4ÁXùÈ£>*HÀ½zõªS§Nýúõ¡ÝÍ›7‡ Nž<™†a¥LÝwß} ð"·#+ H šñÚk¯ÝqÇ5ºë®»(¥ÛÙ¢ô;v„KÆŒ#C¡¸ °›'`¬w¹ ûöí»ÿ~Ù–gXS Û+ËM þ¯ˆ×L²ßè ÊèìÙ³È"ã-Z,\¸Ð7Û¶m{ðÁ¹ìºuëvïÞÝ&¶gÏž'Ÿ|réÒ¥÷ÜsÀp÷Ýw¯X±‚aæqVIØ»xcpñâE‘#GÂÜ€Œð>Øå•W^‰`&Mܽ{wãÆï¿ÿ~û{›óëׯïСƒÄ1b ?c`sOõÄOðé2(a¿Ñ@á©§žjß¾=àÇï½÷^— ¡¢U«V<þáÇC“¤'fŒzö왇IóÉ’%K„ \Ö©S§fÍšõÒK/Í™3§|ùòbE§:pôСC!C†þXµjKH|ZÕªU=ÒêÕ«M“°˜3u}ÿþ¿¾ñF)Æ%™d¸¤pVâœkÕª…)2ž7oÛÄtêÔIâòäÉ;vðïO?ýtÐP€Jäòå˦bgïÞ½UJR|ºrå wïØûĉû÷ïqbïÞ½Á_Í;­Új¸#KG?ifÙèÑ£ù D rSÞ@¼Q‰‘€ rð —‚xì±Ç\aŒŸä@%~£äo†KB±¸uСB… к‰ž­\¹ÒŸ¹víÚÂWNQB“(Íüùó¥*r¦”I€†ÀEVùð¡cÇŽ¥ˆ·ß~û°aæNúꫯZ¦¬gÌ…V¹)jË]”âM1€æÍ›¤m=É¡C‡òúóˆÁöΘq®OŸÒÙÇ•I&XA!\’ˆ£ °,X¸g¶5jÔ€9€Ný ôˆJbéVJݺtéÂÆ,XÀôÂÆ£ó…I2L‘‰[,Ø»Àȱ¨—à¾Xw¿~ýd{ƒ۹0bG!qìܹ³û¢1®]»fª\¹rœ@µjÕ|iÙÁƒöO¾â¡‡Âi=zÔ¸äá’ —¤'a[Mþê¼yTáÊbÙJ»víh]1²Üyçï¾ûna\鉨Ä8pýªþ ¼õÖ[¾9þ|AAA.•ÂèƒÛ mKµŠn“Øó&ÿ×XcP%“ì*^ ò…;+?ÿ?ÿuyyÿøxÿÍ{ˆeyëÑž=em²º î¬j¥ÆÁÛ,¿zg=í4°.ÔVóñ:qaŽ?Ç;­¶ZaúVöá íÂÇK­V#4‹@!3T$† L¢ÿö߀ÜYy®¼‘ ü¿èÛyïâ,bü­n;Ú øN¥Vµ) ãŽ!'¥ý‚ÖfgßNN–úo®ND,TÔ]].ïÞ94$^Ñ)Ä®ÆÖ%IBU¾V%æ$˜Ïv¥R¡bŒ'ƒ¼[™ËÍ€!±© }/ˆs縄“ &"Lô#+uú|Þ»óÍzº‹ûcÿ~HŽOñRMŒw¥ß³J—‚PdDDØû}}ýé©I²±´Dr°œ#¥î¯¦ôúÜp±zè ÷õ»š¿ç!ÅrJ+áˆ0~‡–ñ¦„[?Ä>§°/KÔKbItä:ѯL—ˆyï¦S„^—e9Ú/aÓ9ÄJ^Øðkss/é?º¸ø©Ý~7=Í‘Ÿg‹ŒˆÍ¿Bñ¾­®®ŒŽ®Œµ© ™˜x12ò~f¿.Ì ÙºrÉëõ÷ý21%[«šI’øLV–e]×:¯xâÆ8±w6!q]QŸq:]¤´Ð¦ÄE7%uüH2šŒ¦¡„ÍÂMê"!PkAlé¢"¡‹|€˜UÄBÈ&»v%t£ CZ‹¶ÎHhgÓ1µÕv:“ß›?ܼÌóθÐÓ¹ ‡ûÞÿœÿÜ÷qïåî9×¼LÞŠ‘že[† zÌ’6Tõl< ã~ÿ Øç#Ëh<˜öùVnÝåc¾€“â­0›bÔ¼gÜíÐKk M.Þ²I ›‘öb¿'̶ºÍ°Ø¶·Ór?­·Âf^¤ÍÅiK^u¦í”¾-öæÙ˜×ïìÞ­×É·} Ò}}ŽN.çÜl›A)Åmÿ·¨**Z‡ëÖ˜?H¨Ì²f™˜H(E’f ïˆðGtýDtç@0vd¾Ñ“Åä„Ê#€dI4±áÑhT1µÁûïFª·¾W­â™É0¿F";:º|ý:þ ÓZ"‘jnN:„L>œ¨«ËŽâEç~[[òÀTK‹£¯ÎÌ€Bú(“™;z4ÙÔ䨲VMÍ?Ѩ˜‘«wï Å;pjB¨¢^P!]‰‚³è5&u1ë®nê3¨Æ*wÇÇÖ5Èp¡ÍÖ0«ŸB¥Îëe–Ž ƒÊP¨Ï¬V¡\ØfZea6œ%™©x™ lÅ\¼¸s_çO*BfêdBãC„~¶­T^ZÂ<µÙ%…°krS±Aü1Š7é<È:¨T„[¾•_iWÙÇÅÁj:}§²2Æ ‘Ó8»äã |\eWÙÇÅ ô°¿ÿ×¼ÿV>®iä®]Ù©)½äÏÍÇUöq!åæ"nÜ3Tø !€T•ÔÉu†Ä‘Å7‘7„RÈm%+r’ýL{3 ’› 6R¨m‡Ë‰U|BÛµ¤6 ÄP»Lº*´>EVYäZÈABÙeºp m5és~Éh×e}ž„ÌÌb„˜Ø:¤ê™>Ý-† 辰¼ã b‘òòZQg~¨¹H‰LÛ›y2ù*¦5_-—”³únh,¿”š1$ oô›lÛ}S¶ÞoOc¤i_Îç÷Ó©™=¡ªï?Ì^‡Í~ÿËZ3è†& @ç+ ¹ÊO„OÍ6hNÂÉój„…ZEN@äL×}mE†‹8s‹TxUó*lÏÕø³»€_§%‚×éÇìùx´ë‡ZÝ4³ÙíÆËeØnQ,™×fkXƒ7ínýr½@GèPö›Þ°¥{Hy¼Ã ¨&dí Š–ȳ„ ¹»ÛêXÈJJ¶ÕΠÜÉ/‘ ¨˜)²Ûpˆ¬˜å×ý f#EEdÙÖƒUtØýy­$ŠçÃ0LÓ¤1]FÔT™?Úsþ½Wñ½«×MÂŽ ‰ ×$ȺÆG ICuDRÑót©¨®£E)Ì@“.…ÓÓ%Å•W E)Nwí½ÀI(?gç“Ç|à]vÙ&E$F+4žÙ˜1Œ÷ÇËšÏ +E¦†k¤-8saöf¥râ‚A¤¼…¬Ð¥'Ý_è%CZìО܀¢ÞUƒSêUdÙ(»ª—²˜Ä’$‡ýþ·é´Öé<ÕjÕj8™Q$S¼üÏ [ØÂrÕz© ‡_g³ Ï‹{½cün6¤õrY¢X‡Ñ$DÆ ƒÈW’eƒJˆGPJT,£[Yd=´µéÈv½TªÛL FŽÌꥸXEÍî 6eΖ[AÇ1pÙD{Vâ%¼œÓÝð¦d/lt+¥-àabÍ?×ZȶføóÇJzk+< ®óB }­ˆŸ Ò‰[. ãuí.fëü9S¶D(MÓn·‹¹RÚB¹í>´ß;yt Ó¥2¬Îi¿SvéŸ 56Ø}¢ŒlÂM‚.69J¡[\a·Ølvã]+œ&¸¸ÅÕ½¤ÈêÂ$Aý‰FJ+Ïó¹p(Fº»bcê0fƒ"X ,–Ø7Å‘û7\avLkö°Rd-5®V«…‚68E‘l¨Œcó^¹cº0èrÄF½^2*• $iív{0‘#Ïà™4 ›½³w.!µ–Qöt£ S]4„È4)¢ÂD'61MÅʰ´‰ˆPEF°AiˆHDRÚ(šØMJD „JÁ"+»YP‰•çtåt¿>ðÒjóïÚÅÑto{ßÁÏ·õãs°á]ë[k=ü¡Ìqý³=Zyñ–Y$Ìþè^ ü}!Ëð¥k¢!ƒ€e¯Àè–œ¾ÆÈÈY,f2Žvaa ¨Y¨€” ‹ ˵ÊÔÔsÄÐÞwçÐ4~fþGË'-ô`]˜¾]¡bý™ËÖT2˜ ð÷£,CS;‚µA‹]“ô °•pfARBgá#5Á$©@7ÍÌÌ`$Ä.A ß ¶¡‰¬¨··—|ÌYe·@ €¾!§ÙK®¢•—¢m‚&c±^j&t;§I–•¸–?°Gò·v‚â‹æM`®ô°C‹à. 8-6€.))aQVV688¨=–eYU ›‰5Ï=æ½[á¨Y h­–€<™ÈÆ08ÄìêA’)lÁêI5ëf§ yM³Ó Îñ±¯¯Ži:¿mS–«뜒kðþòçé_n¶³°,9Çúúzss3ÔÖ”Mgg§b ÀòUUUL^Óž,çôô4à¼'=w)´õøø8Á 86<ççç™é†…°ìV[[ Untuuý^eYVöòÞ]¬ ðŠŠ l^ {è3êéé©­­4ÍÇÙÙY=`§BD*‘Ü i*--…¨@'ŒŽŽ’+(( Âoee…¶#A¡5°3³¦3w!Y–k‚­¬® ¶Âl žP>ÑßßOŒBYž®‚hŽ2QØø˜h­­­xÃÜÜk|Âp4ÖLàÉÏÏŒðQ@Ôl0›:s‘±eYVVß—ø¾„ DÌ™¢¢"¢ `kkkÔkñs½ýéJ…’),Ý™ƒ¯I?M{„¯a‚ºp”ÂÂB>ŠrƒÙð‘õg¢ßuyy9.`2Ȳ|_beuß»ûÞO«!n òà‰m$ŠÄ§…s$ZRµ¡»»›!<Âà¢0j‰aÔòo» Ë9.ËÚá^E+B ˜Ì Ï¡j‹d—2Q\l$bðjð›hj‚L £Š‹‹!Þ€µá¾D°™§á7*!Ë Ë²¬Üè/q)ƒ™ILMLLLNNýg\\¤/--i›œ`qq±©©‰Åææ&ó¢ ¤RŒ”1ÃHZZZpXÍ555 G€á@ufþèÆÆØµÆÆÆ0¡Ü“eYöKAô»¬?NPWWGÓ:U\]]M¤äµ­­-p›õõõ¾†+z¨Î:'ÏšOa>ËËËq¦Ôý ”¦oÚÁîx‰eYÖïì½JQ„ýCP»ÅBl´ÑrÅ(ÆÂʱ€´J™ÂBR‰ø‚v’2ø)lDŸ@lý÷ƒCØ6a!a¦XîÞ½Ùt{8gΜé<÷nî=>ý4S!.ØÐG¢q!xÔÔëõ 7ÙçëO+•®B¡P«Õph³*ZP/ÍX+Y‘r^>kºE¨H[0ÁL.:Ý ÃÜ»aîÝúéÍZÑÔ UNu ž5êtL4Å‘À¥—J%Ü’£`3@â"f%8|®9"’ÇqSF1%•J¥Ñh u¤}‹k³Ù¤s,~ž sï†Ñá¼Ä=ÁQƒÒ"ìò B uG¯®4‚”¿Ø×aj\èEbÔ£èT!®V«ñ§Òº3hšú| ·<Å“Gÿò›! ç%†ÑÉ>.#57­•B‰ÐÐ'2IEFÍRËãZÓ:‚>Ò |>_.—aÚIYˆ.©qÓ˜wB“° ¨$I¢ýŒ…ІaYǃP,‰H•Ê„9ZD£Vã¬\.Ç<®8Æñ”÷°À=-Ä’½¯{7 Ãó¸ìÑ«ôBÌ|Ê^—u» /̼‚D žF*Ã;c§¿ça˜/1¬U´eM8!jçߊ̼º¦Ì ¸Ýte:b†{‚ͽ†¹wÃÈ ÆåWoÂpË0þØ»£`†‚ÿžÁF?îL4$Ë›7Áîp—Pð¯"èq`K°%ذ%Øl ¶t‚5T@C  ÐPAC xöìà˜²ÿÐá“v .û£—€^™nø¸°%Ø8öî3Dª4‹ãð­ªî6Óö¬º²Š®¢íÚœÀP•Å8 `Á„ ôƒ‚ÂŒŽŠ(¢Á€‚ÈFT Z±Å„9Ni÷ŽÔÖVºêÖþ¹‡})vÙ¶‡µœù=4Å[·nÕ=âá„÷5œø4ì/Ø_0ÇÅÀ˜ãÐ/Ð/¡_Ð/ýÐ/è—€s‚ÉKòpN0€³©qÔ¸@ Ô¸j\ Æ` €X ÷zï½wÐ{§÷Ð{ûÞÉKòpN0€³A  Æö—˜ Kì/s\s\ÉÀ€9.æ¸æ¸À€Þ;Äs\ÌqÁÕ뵇åúƒ9.0Ç(rXñc1 !âù~BOu]q¥d˜ãbŽ Š~ðŠDü€BЧ§ñ¸ÿñß;˜ãgÎSã¢À‡ =¾;räQNN4;;Z·î?¿þú}^ž¢‹½J1Ô¸€4/e ‰x\1£pß¾Çýû‡t%¸ú>}››û×¼¼Œìì„ïëŠ÷¿`Ž 4K¼ Çþâûï."iizT.’–‘ýúŲež(–¤)——€ÔÄ/**~ø0¬'ÊQìj,¦§ïÏžõD“’ ÷NïA´•-«…Ö¾~‚…„Ê•Ó"QÐ{g¨!…ŠââpFF…Þ½}=Íȩ̥Ÿôô¸çUT%ÈQ¼ Æ*\ê—(ùøÓ‚oüðÓO*y颋e}óÍWsç*ðZJè½`ß;3ÁüzÃj‡$‘jÕj_¼øçï¾Ë3&kÔ¨¿¬\Y}Ë…™o€3Á`&4Þmß{Â÷Ù™_}û­žºYaÏ÷µ¹Ä®”½wzïì{÷}Å-Ô;ñ‚-tÅ bLâ#@ïì{§ÆÛÖ®\$QË]íwýh‘ôêç@ àlG ‹)(㉫Vö‡°ï¬0P\\ì΢/Í»Ü"‰Ø£E=þ±ú.ýú%°ƒ5Á•––¦Å¯úý[䨷oŸOž|PþÄmQ}LÃZC† ÑݶjߢÊb BÍRÕkÞ¼y^Àµ¬¥¶Š*`î$}¸zû;wNJPRÀL03Á°#Oô·¼ªXJ)T‰Ò@—.*5Q`˜4i’ö‚¨6¥\AñÆÂÆš5kºwïî²²²ô qi­8¤ñ-Eõ`E®_¿^¿~}MdõéÓG™‡º÷º§^½zº?33Ó%F 6 œ>}Z£eÊ–¬c×S3ÁàßÂÜA):tèØ±£2¦²Ç *¨ñn-ÿ°mŒýû÷On· :Ô²ŠjÕª­_¿ÞMdiÒW­÷™¢à¡Ø£Ä%°P¡¥ùãsçÎ)ü詪mÚn¢*ÊZ\5,ÕÔ¸Àù¾ÊìˆßX °¤Aõ’=º,W¤r3W.`ÄÖùÐS÷v»ÁýeŸckE, zmذAO59–——§½.)ùMø?å%`Óbrtq ]wO“GÝÚîqsÑÂÝ–Ü¥Oì¿ek÷Q“'OVÝL í¥WEÑÅå@^) –€¹dmWä8p (U À^Eö*"9YI>¦Þm€O”{ö*–ˆ¸Ý*© ÷±@,Kœ¡Â*g¨áħ`&`&`&@¿@,Ð{§÷Ð{>-/€€X –ø÷KØ«°W‡ÀÀ8C…¼ /y y @^òò€¼œí3ÁÎã¢_Ð/ýú%ý0Çò€¼œ à j\5.0 `Ž ôKú%`Ž‹@ Ìq‘—|y@^0Çà 3ÁôKú%`&f‚é½ôÞÁL05.€˜ &/ÈK@^B^—ôÞì/0ÇE¿ _ÎP ìÀ*ÌqÌq9.5.±b €ý%ì/Ø_ÎãbŽ `Ž œ ò€¼Ä€¼„¼ /ûKôÞ©qÔ¸ÀÙŽ{)ñxÜ÷}€”ú>*jiñkö—ÀÊÇÿ.$ÛfïwP&’ÐÂ÷=IKûüÛ:(Ÿ"‘H8.Íÿ»GQ'‹¹û}ùB‘ýIУ¾ÖúböÉ¥=ÛH…½€~y¶Ò{5¡(ýåÂCá°W\\|î\+ÏË´ìÄ÷}»á3a"777??ß"zÉ\ðPøÑý~ ÐâÓ')”ˆècõe óòòôÉ–”®÷Ecß+ÿü³ÿã9Ñh¯¢¢x4ª¸¬@¢W½ßð'üÃå˲³éÙóž÷÷¥K_®Z•^¦ŒŠŸ++Á¿Øµ~ÖD¢ þÖKªØ%ïhagaoTDZ‹…•…iüB¬ü"š.‚¹F‹Ë¿õ¹B<´°9n³fõ&;dâíð^–#ÍM1Ì›ùÍoßþà9<,“É´Ûm ð,Ëñ_»Çg£« LÀF#œ"0ŠºÝ.ð+Ûp0V! %Š–ž†$Ùlv6›y½Þb±8 ðv"‰¸‡gZ¦IÞQÅ$äðWÕ²¨ªîÅ€õþ+æ·U×ö…ñ÷ÕÕxÿ«?4m*ÄýÞÞ¯ËKÙ4 Pß´ ƒ‹_0ÌÃ3È–œvÉ3ÜÀ=ß ÆM­‰ƒYËÝ(̅⪥µ+ö¬¦}õ­H™ndq/¯ùð°Úl ]Þqçñ€¿×4ðËzN<p¶O žŽ·UÁ«{ß«ŠÉg¶,7̈ X ¨Õj¬žåz´‘–m˜¡<–‚ÁàÙÙÙÆ¶\.DZªFOËm5ˆŠ`ø >½Z­žžž"¬^¯Çb1¤€ùí€è8Œ’óªº÷™ÝW-D_.¿=°M»Ö´[!ôƒƒÕtúfrñøÃŒ0_*•ê÷û“É$F"‘N§³X, ªëz¡PH§ÓÍfyÀÃ=£×ëÏçó0*... ,‘HT*•ù|KÜL(jµZ˜¦ >*Æ ï2›?ìš[‹‚@Ç÷ò²Ï~ï>¦åjDˆOA݃®tƒ‚¨‡ ¤¡Ítwuÿî‘fü †AÏÎÏ3â ÌŒØ3 ¦ëqÏ_J%l¤Â… êðxdš‰ ËåB×Õ0Dý½ß³löbš ¡Pˆ<Ǟτ¥ÀOËÂjê®þ8SUR)í9y»eŠr’U±ù>'».€œlÛðsòá f…}¼“¿6Nú‹E ÞH°^»ŽÀðî_£åÒéÔÊd4Ë2týýßÚÃf˜¦jÛóùšüý“C_~è8×r™fG^»M㸥!Fj°\2YNTEñÇcQ½ p&ªªzÕj¬ÂˆÜh™bo½žHög389y:U4†Ê³ª×I;&×jx'÷û)òdÂɲ,)r§“êo«%’¯• ÍWIV£QŠ<¦È«•¨zͦH¾u»w²8K’ôË®õ»¦EáSÈŠ! Ù‘Ú.f©É òxBâ{H ÙB|K nɘ •€Nº9:e2YjèìpÐAmµ¶…¤šølK´¶ê«éOy½Iþ‚B.‡Ë‘ãù¼<ï»ßÑH$"Š"8Ìa³ÙÒé4&KNÇápø|>(†D"Ê 7•J)Š’ÍfÁØ‹Å"hàñxÜl6cêÕjµ$Iòz½ôäyÞãñ”J¥\.r!ƒ$‚Á ,ËT,feFÃårqWËjµâH­Û×1bj¹ ‘‹ íï''/›MÒtØÛGGÅAèÇÁð†n&Óv»Ø¿íï¿Ett”Bå±±^¥¢åv …>ìò‡©©_í¶ýqxØGÖé4dµPЛ{{×ÇÇ{õº–ÛÉdèÀ0€|œž¦ E¿°¹¨KÃ#ªªØ»»$;†õNL\^\ü«÷øøF½¸ÁÕFFüôG înÝÙlôpœ¢ÓAš”È퀗'v;‰oê…êÂõ NU©M¨×¾loSÁà(ëë¤{(z¾º:̈žÓÙYõÀàTxžE>[Zb‘ë››,r}cƒéTgËËlî'—‹E>›£§ EÏWVXdÅïg‘?om±ÈUIb‘+óó”KÏÉ“™B¦ÜÚÚ[oM–Yä¯;;Ö+×ê]\$äúÕb±èõzÐ|˜Ýnw:pb±~´€˜ÐfY pnϸÜn7UUM&S  œ|>"I&“ð‰„Hp€fŒF#Ô ¥‡B!ƒÁ@*$BˆÀù˨Ùó& a8äƒ"B Ú¨…1²1Ñ•NLˆ¥+ 0!± ؘ"D»ucè¿~ˆiK/q°­¸MëÁ:ûì'¯OqÙ‡®UÀ˜Ïç…Bõˆøî…ÔœSDÓ¼ÝlÀëå BH–¶ûqU*Ý­×!×FÅlö †$A3Z­æV+˜6"ðé4ž+åó@¬çE.&ärÙO6ML–k5š ÃxMÃäp±HȬXyñF*•œKƪ¤ÙÍ€Œ5¹û{B†õÆb(7p!EáZ8;R”¤­m?=?wà,r·ãKåÌañ´a‰£ÁöÐÛDµëéëa Mcɬ€alac‚Q ™µIaWálBAC|ª4³Ø?ãù£~öq ?(,Pÿ7¼ðYT”ÈÛÛ¶ÕxöÈÙE}Øv¼^ÏXº\E/yz6Kí÷ÞNE9ƒqÙ°ñNGy|$^Ms¼ÐtKj<Öû}ðz;4u¼%™—ãx„§{dU¥ÉZ¯o6 Y×i²1&‡CLæe™&_ÃÑÈéDȉMÖƒD»MÈÉ$MN[Vj2ùm½7Ë%º 2»Þäh¤u»˜,íÍ,Æá@ȪúͮճD Q5!M¯Il‚eS\Hc!äšVÛ¥L—B¬ü ù)°Më°R !œ`“ÎäTüzÞÈ¢®·ÑR88–ÉÝÌì&ÌîÜ{/™¿Ö ¢8ŽMÓ„æfÜ€6S–%X/´‡¶mu]‡çy8܉+£ ĘÁ‹Õ4 cŒd|Çq|ßÏó< Cd@À¬Ê S†DáÈÆßH®ª !$ø+ÓeA$I]×u~À%rÎw¹/ú‹ åšÈK.ù Y¼8{ï²E®½ßŒFg@$Šr‰qú÷íz8|™LÈçÿê%s½d®—pÏ[Æ âó^áŽó8s®‚{þõQˆ5)ß×òïQ²÷gí£ßWø7çÞcMÌ }ý`YV–e,0‚¶RUµë:×uÓ4åßã@×4 ¿Âõô—€¿‚ ÌW;¢("Ym‰ÀÍhÛ6à…E1 È”:…£?‘ú‚Å`„½Doì[]ÊÂ@ TùÀ¾ _A©‚ªÏ=E{”¾•ÞÂ÷Þ ‡©¢è®?C†ô‚!„%“ÉîKº m_L“€ê} PD: ”g$Å.F5À”DBÊk_Bt¢öT–ËÎŒn_DÇìë¹îÌprí§÷ðe]ÿôµÃ"Ï7‡IGMzûRûÙÏôR=„UÓl».­ª´,×m»ëû¿,»Ç‘¢yÑø¼}2"êæˆ\&ýì3ª³P8ÑÏJcg7ûŽëPPܾrf¡Z0©Î„lgqÕ“¨Ìp×ý2‚׈¸‡a˜JEyÜ.!ÉMê'Ùqëð.A%С9¬TÕöV@«^±&Oöîz³©üx·)#M 5*¹vÑ͉J)&EJ*I)ä–"LþÌ]P¹•k‰–D†E¹E¬B¥˜RÔ4IÔŸ&é~û¬õ]ëé¬s~¿÷¬%ƒõ:Ïú­wíwŸ}öÞçwöþ>×ý¼½zÉ —äÓn³©8nÞtÓŸ¯°BUŽ^2è%ƒ^R*x å:­~_é%ƒ^²Ækð^”2±ë®»n¸á† sæÌaYªXáƒ>˜½+êÿ<ŸyºÝn»í¢|ÇÂN;í´ÔãO,c'œp‚òÙgŸÍGR!ÂÔšC=4ÍÎ9çœå—_>C',#¢ÜhPl¬ÿ¬bƒ=Þ÷Ôµó†Fû&ËfÓ<§S…])xi6íaË-÷ Üëo ÒK 4P-rÁ´B+mÛ§ªNöŽæVºŸ€CÙóµµ»ëk÷‘»°h9˜—ÝAÈÄha$­Œ[õàu »îºëÒ>5øk®¹¦áÜÒŸC%Œîþ@y”{©œNI“EÖ½šJ…‰%Êb3 ߣ'þl)ÿm04ÐLEŒ‰hÀ 0 %Lé®p•÷+XE¬ö™Bmmå{ XòÔM´½r¨px8Ç΂,\¸PÈ/·g¤”\{íµ«xMõž{î¹{î¹gŒW{ï½÷wÜqôÑG+o¿ýö+­´Ò!‡⬉ϓO>Y¼Ö(&øÊ+¯œ6mš6…¹Ð‹;:e¯€øN\ óP)&ØÊ/ “ œÞ“6®*4A_Ýû6®PT¹¨`“ù,oG¯i(úþ]bÕçÍk5×`ã|ï#6æÝ¶q¡Â 1á´q¥ÐÚÝwÃÆUs®fÝi×KÚÆ5!ÀNvî}Ä«Oƒª ÎùìÞK¡¥çn¸A\€ô\Ê=zI|>[mµ•8³&+öY jÈ*—œzeT JX¨r««úÚ’}Â`ñd½©ï•/2ôa‡&4—.gTsµ1)ºå /<ꨣJ˹ÌÕ©³f-³Ã§h a‘ úÍ[Üyê©vPyŒ £UΛ7±‚[Û¿ZV=*èbB‹7tk|6‘'To¿ýv|™<„m°Á>½púÒ¥«"Y+un| ¬Ë¥—^šÇÉ¥jævqÆg8Š¡žÀ®™,Q24Ê´Sȸ>SS\Á G³¥ü”Ëý®¦É*PRï®þ-h¿ýö»è¢‹øð•ùT¨JÎHj?*ç|nÖ …HT²r&ZÁêõ$ÐX9mxifÍš%–YQÐØæ ©óé–êªåÕ@ÅEÒ,õ‰n^´hQæÖ²cæÉ3“º—NçÉ=°Äê…QŸþùf’h‡#×_ýUVYEÙAJ£úÉ4Æ›Šý[ÿmqe „.µÔRźzâ¸Ü y9vÜì0äÊ+¯,Š …Oq«­¶,VOíÍûp˜ÅûÞgŸ}:è ïU¢1¯XG`V< þ c°ÊŠÔ€Ê%‘ŽÌPŸÙô©)@R³¦Ñ¬æV2‘qå™q.TÏH4ÏŒc‘}09gŽ;î8¬Bj3Cì±ÇÑUýh$+$œ±æH[ºê MùÇ­·þcáB…±¥-µàðÃjßIÑOt€/“º‹œ¾é¦›”'É٤‹;óÌ3¯¿þzŸ\… iÕUW#`ú¤“NR‹ˆ`V¨¾%¤ttùå—ï¼óÎ Â×ìâ :*›G @à sêB‚t8†ah§¸ÝdS™ F˜^¶ÙfGîäÄÖV8‚'GŠß[oÎúÁ±(C’'B09EŠÓ<@¨Œ1ʦy¦‡—Ä)Œ–‹œ_Ûn»-¿ÿ)°ß¾25â޻ᄏ£ù^¼ÆØ˜¶ž„¯Ñ†¼«A$€¸1LB4ã’…ÇåÃ'Ü"õ˜ç6 ÁebHD WI ^êdÓ #ñîiµ¸ÅÕW_'Y¯lV†3WY6Y·$¼'å€åèF«™uµø“ý`žb¥Óç¤aÇVª¤:³gß¼îºc " Ä ¹m"ð‰RÃÃ:ÄÄDɰ¿ri³Í6#zÊJ ÁéN\Ãz9k­·Þz€B K,&Ú :묳ð Â!üí¸ãŽ6oÃ\ÀÍ :tˆsÈÞÁê@àG"\C™˜ÀQаŒ A CØÔ*/¾øbÀ¢À(gÒšíŠ+®¨ªRzàRõSÎdèX±dàˆ k1[bôK.¹„xJ¤.[ú&›lâñëëÊŒ”²BÓÎßã{ך®Š+xñ‚Ã(’Ü\´ — ?°–ÎÞQ8Îp¦&qcظdÚG· tàÎXÊUI­Áuüc»´Æ9±IÀ!’ˆ•Þwß}-~…TÉßrË-õ$žz‘™œâF3±Œ¬?Ü(3ñ¨Vƒ °¥â.âç¤?sIì…ZŽV YI¡Çý^£+Œ 4PR<È÷øO\fË-F«IIâ@£6©´|fmÛ‡ñÍb!€;ᇠê‰ö¡O°aØ}þá+?9$"ÚÛéÎÙ ã  @ƒ{ÙÕ™3g[™$’EŠÍc饗ffh st ú)7¶9¶DÞ-ÓæÌ½A´e§Z}õÕ}â) X½03ÜEçDX5 n°K¼,S±Ñ™¿KQ}‚Ëó¡&kiR¿D ŒÔ_nsìšö  ¸‹[ KùÆo$8ÄBšJTe¶EÖU+¯º"Â\qÅùJˆ0bü1¬j_n7zu¥AÊЉÓxÍÞ¨Ði+11¢¥Õ½qÙÕ$S¶tD³Y»ÍC7Vµ&}öøêo¼h ’óœ]|ÚN;=bæÌ¤OíÂ&øÃV`J€ª‚yÂHèÀZ¥KÀó`›j¨ ’À…­JhÂË’{ã‡èå+Å'quÄrî¼9{#ï²sЖJRLcsË@‰AÂíè !Ñ_)Ä+£Ûæ<ãw!ï¦2 áI!‰Ù¦Á°x ie…•*W«xÈ«^¹ð½…ûÍhÔ½%o¨^¤òdYuK,*§¶qÛm·Yâb-˜D™Ñ,¸æ|Ê‘Øâp¨Õy?éj¼´Úê¦x€î)w)Ú@wGº Ñ&jV¶`ÄÝýžQ Z˜@B¥sð±K"J•1#ÊM“ºM¸÷Óy»ŠÛM˜¨j ~ ÆÆýšJ õ\ÀZH—¬ze5<%Ý„%õ‹.Ñfê­Ðo˜Mkw¹W—ŠUƒRxùÇ(ËDö7VW&5õ‰ýmÝ[­5á11$…^JϏÒ@AÜîwVhf†àC,B$t"ªƒŸÓg©dà2Iek'¢ô³ì²ËúeòŒ¨ŒŒNžT¾÷œ™Ðg73йe ð)vÒåÝzˆa2­<‰®F¨ß_’8.aÖ ÈfM¢K2så³£%¥žU”q‰ÿ­þÅ> ©…@D%¤ 3‰ÒØ4@‘5Œ1´^O·Ðel´W‹oÓ-Ã+a„™•^bqP™ Ä1“µU]U4z<‡'&P*NbÌs—š ‰r«©$˜>þøùK¨ä<,ަÜm X•Å8a$qE°qÙSâY.jP˜l‡ÍIJ¤e#t]úä$wKBx5˜ º±Êd‚RÉ×Òâ4b·À øØï˜VjªÛÌ“®b xæ3 ¶g¾®ˆ­i9,ž½„°€Ÿ{C¼ ˆoœ+;îAYÄ:Š` –SFR|"’ˆ%Âcï«K4ÖU-úB€³£ÆÒ„ñwi“[JFhپʒôi6¢¼8î¸ÍÙaÉA˜“Å*äW3ƒšŒzŽ8#¶ôŸn%"ÃW1!¸NMÂÉù]âË)ki—ˆI”’‡¯µÖÔ7V(ujE:>ÊÑ]Ù’þjVãÒr’d¿.¥žRÂBk)››2‘º5hjÒ¹õ/T( –Pfe?\l¡%—<—æ1•{sIå§=Ç-×kÈÇ¥DOü£¢þÝœ9Ê–zw8-PÕ>µ¡0:Jsû³ˆÏ$á9t’mX•Î~ù ODd¹Weº¹ FW*­à@2éu!"—j[ê)lyq@Éå“!DÁ„56_yÒ^ÔÖ’áªM«Cõž‚%&Ï…švå~§‡¹”[îµ|\¡Ñ;·7Ã/@ÕgﲩúžÜލ›ª¥º~ò·€[ÍhhÓªþ««ÿ1·c+µf2ÒØQ)+;Ý&csóézqplyÉÀK^r×]œ!ÿ?wn“—ŒÎÕXQ8Ђˆ.HõÁÈÝÏí¨‡æÕôÏÔÆðP#Š!¦?eÄV“!†#Õ¬)iÆÀÅÖÒ”>^Òï/©Ô[ÁèfŽ,eõ¡fjwŸi¬\à®R›êÊW··†1“/IŸ¨5“æÓ¶f•é¹Éï/4žÇï?ìÝÁ‹GÇñWÕÓ=#FbB6ÙËš‹B ¢x’  CrËÁx–À:G l Dõ²×Üü„\% xñ/9<¹dÁèšÅhvMoUó°(v`è!ôÁÚï‡EjÄYç0Ìtõ«ß{6:&"›Fßšº/)È—èB¼·aéSj*–NOøÂXUUyÜš_åŸùõ_*°O~ŒL߀NŸ¼—A¶‡ÖõDïJiàq4é–B‹¬šO´¥8aÇk¶—¤Áxï½¥è5Ǧ;MÂ¥¢,]rïyb>Ÿ “Ÿµµ‡;Úõä­ÁâX*HLN šR~˜<è•ÿ™Ò˜ù‘ßüßä¯$õ‚ÔJ»u¢´Ãº¶F›ÓËG®®ÿ6ïÜ™×B\ŒR Æ”{!LéúšNÙNΩˋŽù‡†Å RDc2u0ùû'ZwL;Œ›ÿéaú>Ó⮦Ê4w¢ñIm來•v ¦Íå¯9UZ ²H6æÐnéêS âÝî“Þ^ºcmšFÃð¬MGæ§?S…§OÛµµ³Š€÷NÄ7Í¥¥7NžWU¯}úRÄ®õ§µÖ§!I±³,?¯EV­Þ×u­±GÛB%ÈnåœËw¸¶èøL%@©ûêúàÊŠ¼ºÙ%¯¿¼Õ|¾IÒõL)Î0–ZÊJ~׿{óH|¾#éòäÂïnÜ»Æ;¬Éi_ù”ެËÌß²~,Ï-$ðq‘˜~J²ŠÃ¡¤²y€wÝab:xíÚwï–W/R a[ÓmÛ½œø8#®Úªùùúðá2ç½"áÅ‹‡ ׯ[“ÇØ0Yq7Ù27UUj—Pp&¸}ô(èx΀`Æú››œr8( ZÝ3ð]Bç»õõ¸¹YÍÍ»/cÞ½ïí40È*"'òx4Z=~Ü•±Ÿ”{wÝ^fÅÝä¶ÕÓ÷R(°/qMóîÊÊ›gÏŠê/‘ê%pR.{ ö/-Y²DþoéäÞÁ¼w0ï½? ÷NÄD»ñ”—{$Æ`‹ªŠÎ…Øà¥;TU90½wó¦”pNl‚ƒõ‡ïc 5¨—Àæ½OœÐµ.JÍ—€yïk‹‹û.\Øñ¢Î£üÞjïäÞÛ6†àš¦Ì| ȽooÿsïÞžÅÅô7=ùÔµkW$@ÄHy;Ü ÐÛ"/<غ? xuX*vxémëDÖ——ÿ8}ºØs÷@:ÍÕ/³í©@î}8œ»ukßùó±§Ü;¨—@LŒåͼ÷£ öž;×9"Ö» œËopäÞgI«X*0ï½iÄû'‡‚yïÌ{ûÊ•÷oß.ø˜÷Æû’罃3Á\µ š£GËœ÷ˆhîýá¡Cݸ!"±mc/À¾„«¶4ìU‘Wm`VŒ/WWÃÆ†ØÃ>€} ûë9_澉YV öìKØ—ÄgÏ“'EîKÛˆˆ÷®¯·7Ø— mEäñ¥K«ÇŽ•yŽ ‰!l÷¸í=T`å÷­­ðü¹” Ì{çêÕ½gΈò^úrï”ßÓÊ äÞëú­Ë—÷œ:u]Un ö²Š@öÆÖÜ{ìk5¨½Ãª‘6¿D…¼w"ËuUeë€}É챃0 D©%>©Cÿ™áCø$º0@q.j醈JÝzorN¾í<%ŠB˜å¦¹ÃcšÇÁ‡Â9Bݽ îl¨~µ£˜ë:ëûrhÛ¶(´DJÊå«|…`£`}Ju;X˜bèNÚ„ö—h;€mÛpÞª† Øíö\–qçy63'-û¾»ûº®t5—"óéîŒ÷·žj¢ˆ$WÆ”ÒëC±„÷?Ó.ÞìY(®kÇ÷9ŸmÌÊQ )" … J™’+Êœ…L2Dˆ¤”$¹Å´o ‘L‘Ìr#R†Pf'Î8üôœöŽÎÝþ.öZoÏ·Þõ>õÕZþëÿ_Ïûùv^"g´NNN¼½½OOOYëjÑåÇõgƒagg'00099yww—€³³3]x@ ³²²`-555CCCxØÁ¸_ML[¥èó󳃃†üäç[Îñôôäçç·¶¶ÆZ ¹ªgº¼¼dÖ:Û‹‹‹766X§¤¤ÜÞÞÊ ¼òÿKÄ^û¬‹‹ ®ú÷·MLL Ê355¥f$111óóóª)SñÕÕÕxXdff666R`ì`Ü/%&l[ý•'“ ÜÜÜt¶ œšv¨Gf¨äW™¯"88x||œ5DÿðððÁÁAxx¸¹¹9ðS^^®ö½K4.±¯ä`ª…š™žžƒ¯PWªB¯lllTÍ<<<$777èZ@Jhèòóó ¡ö:::t}gS\À8::š555mkkóòòR˜AÆîí펎Þßß+iK?hff†“[ …j†¡,8õOÓ÷÷÷gdd¨øªªª¥¥¥ýý}‚Eéz1Á1=<‡Ñqqq999”_WW¥Žƒ‚‚FFFêêê@‘ÈÈÈéííõððpvvÆÉGˆ?õÆnÆ¢&br–$//¯©©ÉÇǧ¡¡Í R²¸¸ˆå6--Íßß?===>>>""¢´´TMû¬¬¬èŸHþÜÜ\$ßÎÎNü………wwwµµµÙÙÙP”^p())‰[lëäääîîÞÓÓ£ý+/,KHHðôô¼¾¾¦„*++KJJVWW£¢¢ÊÊÊ\]]777SSS[ZZèà–——Á™œœd”¢É ÁWWW[[[Z1ûÎ&&Xr~~ÞÜÜ 6ÌÍÍÁ‚(©~ù YÊVcLð½. š^b „¯pß7 ™ÅX2(x-4I¼ór?‘Ï>öVñnø[1±jY*IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qrectf-diagram-one.png0000644000076500000240000002257212536324474023117 0ustar philstaff00000000000000‰PNG  IHDRMù,¾ðD%AIDATxÚíxTņ·d“PB¨QšTAšˆŠ^/*\¯Š`A¥(Ò¥ˆTAA¥ÊUAÄvéŠzDDQPŠ(H@z3!uwsßdô¸n Q’Í·<ìs2gΜ²óÎ÷Ï柱{<›Íf·Û322ø¶e}Ì6ßÖ.³á»Ë÷¿ 6ŸO`ÉÙ'úí=ã®ÀÄP—ô ·x¸ß!¡žF`É¡®ßïì¾WîwWî÷…:£_žPßï~ƒî uºœüjV†POÞï|ó­~Ee¿íWŽßcɦVû]y6?YÐôP3›Â³©Tg¬ùÙT§_Jöz½â\œ‹ó0ç\z.ÎŹ8çâ\œ‹sq.ÎŹ8çâ\œË'ÎŹ8çâ\œ‹sÙíâ\œ‹sq.ÎŹ8çâ\œ‹sq.ÎŹüpâ\œ‹sq.ÎŹ8çâ\œ‹sq¼Ædó“‡ÊsÆÚ–=çÙ.ÎŹüpg™s>‡Ã¯ê˜ÖÊétr;ö¬’h"èoo2V¬ wa•f]€8çÒó¿×n7ZÙøNNNv»Ý111ÖøU¯lª‚Õ‚øeóMñ{&¡.Iœ‹séù_â=tèÐäÉ“Ÿzê)vd}ÒÓÓ].ב#Gn½õÖ{ï½·K—.§N*]º4G½ÿþûEŠÙ¾}ûu×]W®\9Ó¢YSZDDD‰%¬Ò̆±°8©9ŠlË–-«X±âwß}W©R¥zõêÃAœ‹séùÙäœë„À½{÷víÚuÅŠ$&&&¦¦¦ÆÆÆáÒ¥KçÍ›·páÂÇ{ ¶~øá¤¤¤x€ÄÅ‹oذa̘10 ºæŒlÓ:<úè£eÊ”éÕ«Ò^`/^Ü2æi/(¹P¡Bæ\œ÷•W^ùꫯf̘ñâ‹/Zf¼8çâüìsþàƒ®\¹­6l|^yå•Ï>û,¬.Y²dÚ´iÓ§O' 2Î÷¤I“RRRÚ´ió / ò¾°ÿùÏÒ¼ùæ›?ýôӀ؋PS‚ >þøãƒþøãƒæðùóçûí·£GæØ¶mÛöëׯaƾÝ{q.Îe·ŸÎQã={ö€ô믿~ã7¢Õ˜Ðlôïß?22™%}èСÑÑÑ#FŒ`£jÕª:uâðîÝ»cÕÿë_ÿ²Ìrî=8p ð#þ5¢/ЬY³æÍ›÷îÝ{ÇŽ´ €½nݺÎ;³AÎ <ÇŽ;#¢gÏž´\’8çâü,s¾k×.ö¡‡ºÿþûï»ï>ÒW¯^Ý´iÓk¯½~õÕW!¼páÂ` “(?èr8Æ<yŸ>}°Ì£¢¢Œ˜Ó4`\|ñÅ-[¶lß¾½é `™ÿðÃXþXìOJëÖ­Ÿxâ‰ñãÇÓóÇv …ö…ŽÀ”)SÒÒÒÈ&ÎŹ8?ËœïÞ½¡îÖ­Þ¸¹sçþüóÏ_¥J•Í›7clÏž=¤q¹c„ßsÏ=ôÏ çÇ/Uª­ƒé¢S&pNÿ‹à®»îBíé°kêÔ© ì¢äQ£Fq, ¥ðøã[œs–¯¿þš çâ\œÿ]v;Føòå˯¿þzH®]»v‡pÂÅÇÇÏš5 5¦ ýÍ7ß,Z´èé§ŸFÓÃ;v숶ׯ_tGމ¤ƒ(0³½sçNŽBÒkÔ¨íäçØ÷Þ{ÖdÕªUÀÏö§Ÿ~Š™@üù”†@ËB@v»8—îo'ƒÌ‚ßí·ßNúÉ'Ÿ-Z´Ø¶m[ß¾}LJbÏ™3y€W<%ôèуÞu\\­ˆb ü4 uêÔ4h-B«V­àÿĉd@ÛÙ¾ð iYðÌÑvp1è?åóŽM~8q.Îÿ–q2¾cZŒGÍw„œ_6$ëçü¾}ûàùôéÓè3Þ8”Ì(‘Zꙩ“ÛµoëNw;#œ÷%ÎŹôžf Á¹-#óŸ3žpÜ»·ïϋ݅œ6:»¹“Íú=ÍÌDómå´R|ÓC%Ýë{ÆÀíŒß_žß--ÔåùÞ£ï¹üî7èÞP§ zk'ò}˜AïÝ÷|ó–ø‹d¿å¤±y왉Ûlön—Ãnö¯ÕlSXE—ÕûX`Ë,¹#»=§œó°àœµS¶lÙ³ûÓœúáL#ç+Òf7ì—r<=Óªíϰ9£ì'w§oœÜ©fµH§Ã«q2ù@Ï™÷®cûŽ»¢ÇU¨åøµÙÅ9«6nÜÈìý¬çcäçŒsÖ?‚ó¿¢ç» çãÇL2ûáþ—|2»þ9~¸È"Ž=K÷¿uÉÕõÜé½W {Îé˜Efx'îÝrÚáY¶ºóLœã÷a‰¾›nº wRøp~Îìöµk×ÂùÖ­[MËr¶8§4 ßüÍ–Ë›Öo0¡PT ‡'ÕÔßnË2Ü]…œë+z¢BååÓSÓ­‹ça̹+Ã;:~[‚3bÔ…5rÈ9ës±ÀføØíys õ¶wµkÛ+×M,t<53§/êY0r&º„3~YòwSÓ6®ጠŒMzžO8¿-1?sž×ívëmç¡ÃÖiìn_¿g\Ê©tOŠ÷‡\fKùF=²¨ãø¦´/G&T)W­ôq·Gq,â<(çx‹ çêŸç"έSlørC‹ënNªp¨~ŸØØ ÑîTO†¹;—Ãäݳøô®y©ËW,_¡\Zƒ^Ç"ÎÅyÞáÜ÷,Gí|o—e«ÿ몑Qö*Wd©h{š'q[Ú±/Ýiñ‘ÕjT.W2--Ýopž8çaÎyôÏ­ÄÌñmtÌŽ-ßl]øê[+ÞzͽsÛ)gô‰è"eJ/Y¶8£ÞÍDÙ0 ÎŹüp¹—sÛ¯Kš›1ŽˆˆÕÏO+ѯ×GÕªÌ*Q®pzzšÛŠ q.ÎÅyžÑóßÆÆ¦¥¹¢¢>œþlL¿‡ÖT­<§è1·7ÛáÊâ\œ‹ó¼Á¹uy^wºÓùÑŒ©…ûô†óÙâ\œë½ZøÛ9wD¸>z~Zá>½>©ZEœ‹sùÛŹ8çò·Ënç²ÛŹ8çâ\v{Þ°Û}‡ÐÒ*ñÍDwâ¶kS‚éþ¹úç™»¸Îýû÷ïÛ·ÏL$ª‚Šó<Ã9Õ/##Úa_V"2­@¡‘e«‰sqnc‘¦Ï?ÿ¼cÇŽÍ›7g*;kŽwqž‡ç™ ’!-­Æ“C~:<†y&L·Q~¸üÜ?ç7^³fÍܹsï½÷^ë7ç¶¼<d温”äﯨµãð‘'+ÕÉ çꟇ¹žÎgΜپ}ûf}çaÀ¹ÓéIJÚÕ´nÎ9—žç#=·Úrqž·9w8ÜÉI;šÔ–žKÏã|õêÕ²ÛÃÏnÿCœKÏ¥çâ\z.ÎŹ8ç²Ûe·‹sÙíâ\œ‹sq.»]v»8—Ý.ÎŹ8çâ\œ‹sùáÔ?Wÿ\ýsùáĹ8ç²Ûe·‹sÙíÒsé¹8—ž‹sq.ÎŹ8çâ\œ«®þ¹8Wÿ\œ‹sq.ÎŹ8çâ\œ‹sq.?œüpâ\~8q.ÎŹ8çâ\œ‹sõÏÕ?çêŸKÏ¥çâ\z.ÎŹ8—Ý.»]v»ìv½?ÿ«œ¯[·®G7nçâ\œ‡¡Ýn²¥¦¦ž8q¢L™2²ÛŹìö°å<ð·çâ\œ‡çYV—ž‹sq†ýóó¢çꟋsõÏŹ8çòé.»]v{~럣ùô«³©¬â›ÁÊã›îw3ÖÛ5>¦Ó.ÎŹ8?v{Ð:XurxÛ®8 x{Ö'›[’Ý.Îe·ÿ½ýs°üè£.½ôÒbÅŠ™/Ns`dddrròòåË[¶lÉ!Ñh8Û)))Œu½æškL!ÖYùPÈÁƒÉ””T´hѲeËúÊ»8çâüœr~0yë­·Ž3ÔöšoËØNHH˜6mÚ€ ÌVQ‡n׮݊+xRØ?”³hÑ¢Ó§OwìØ‘S 8°mÛ¶‰‰‰ï¼óÎøñãÉÀáâ\œ‹óóÐ?g/÷y÷Ýw·hÑ‚êW_}õ}÷ÝG† 6L™2¥dÉ’C‡-Q¢6hЀœ¯½ö`·jÕªB… +VìСCûöíß~ûmF¼6mÚ”c÷îÝK”|øðáàDQ$>òÈ#µk×6͇úçâ\ýóó£çÍš5‹ŠŠêÝ»7¸róUªTiݺõ¨Q£0˵¾`ÁþüðÃÙõÜsϑޯ_¿êÕ«¿ñÆ¥K—îܹsåʕǎK ÂÎ;—,YòòË/ïß¿Ĉœ K¡`Á‚ØvJÏŹôüÜqÎ=2„žv×®]o¿ýöíÛ·òÉ'&L8~üøý÷ß?zôè_|ÑFÆÁ•lod}æÏŸå•W®Zµ*&&¦yóæ .DÉããã›&ƒlwÞy'ç¢o¿xñâ3fˆsq.ÎϧÝ~Ûm·afc™Ã9p~öÙg;vìhÔ¨V ×­[wäÈ‘K—.%º]³fMüv(ö¬Y³°ö—-[†-Àœ£üØíäéÔ©}~ÚÎECWóæÍ ´‘d·‹sÙíçŽs˜„äúõëÃ9&:Î3àDüñGT}РApK áå]tÖ8æýÞzë- þwß}×årÝxã8áÐóÝ»w?õÔSÆ Ãøç(Î5gΚω'Šsq.ÎÏÝ·ûìÛ·/„_rÉ%Hq½zõx¸Ê÷ìÙsêÔ©.]ºtïÞ½gÏž/¼ðÂÑ£GÛ´iÕøçèrÓtëÖmúô餇cy|4+W®LKKÃ\7nçuÊ´Þƒz]5¥xLEgò ·Íû»K{WŒsûÌŸzÓ^¿Q]§#"6q.ÎÅy.åÜô ÷íÛwé¥uÊ÷N+sE”ãn‡ËîwÆ /ùíQ±Ž/Fœp|_¢f½îtw¾à<¼ûç…úôþ¤jå9ˆó5kæÌÛVýó<Źé–4rÜÒQÍ&Å>šæˆ°gí xÞ g´#q¯ûˉuk]]0Úëñúq®þy^ÔóÊsbÿ˜nöìÙ÷¶k—žš*ÎóÝ¸¬VýÄf_Wn^<ígݲ¯'ÃUØñţNj½¸|µ ÓSÓýê€ìö¿Êùûï¿_©R¥ÔÔÔ?͹Itf}‚æÿó™œÿ¯ZÕ‹•-’3Σ¢£×¯þxþœ9÷ÈnÏkïÕkÔ®vAÿ“EËô¤yýrúÞB†×†é¾yÚI÷'q5ëWMKMWÿü¬qž˜˜X½zu øB… Y…?Á9ÏýرcÝ»w5j”ùBq¾zÆ´ˆ~½’Ê–ÚëpEðÛæ€ó¬Â_vÙe•*U4‘8Ïýœó¿€Ë¹íð©[>^ÕhR‘¨¢ÞgÃ9®÷ÈXÇŽ×N¼S§q­tq~9çDñññ§OŸö«ÁBÏi&J”(qÁd¯ç«gLu÷ï]¼TgZšÙ çÖ•8#"’“RRS݇Í÷VÌ`IkȤ9ÈJñM•t¯uò Û¾Öeøæ úôò¬BüÎk•æw›œçôÖOê1½†ßJ žî[TÖ– OgØïN·U˜T$¶ŒÓ“žqf=ŸzÒ³6îéùÙå<鿯îNOp¹¦Nž4nð F'¥¤8²}@~'úmÈd°‘žçÆþ¹pûû뾩Øß^öšhwbÆúç…_ ?^üØÅåªæþù¹ñ·ÿfbÔà?×?7ÝûPzŽ›422râĉƒ‡krõÕÉÉÉösî÷S‰óÜϹÙpE¹vnúÞSíPÃÇŠ¥ž4~¸þö(GÒφ‡êÔÌ7þösÆù¹Ôs‹óaC‡^}ÕUâ<Ìõ<Ë‚ÇÃpÛ´éë:à ”j•zÂÃûs£-Y9³rYïχŸ°ï(^«^ô4·ßuê½Z^✷©p>Î¥çù&ŽÅåŠØ»g_ü©ÝŸ.Z¸¼3õ¤×f]RVAŽH{dŒcûˉûyë_~Y¤+ÒÔõÏŹ8ÏKq,.çwÛvI9xI—‚eÿQÀaËðd:ÞìN›ÃiOúɳ}VÂѵuêÖ.¢ñíâ\œç9έ?#"#öï=°k÷®ÂÕ¼qM" ”v2*&ùˆçÔ÷é‡×x¢ÓcjÖ­]†}½­÷š‡ûçp~•úçù,þœ¿\‘ 8¸÷ÈÉc'í)î§×U0º`ÜE%‹ÇCáó]ü¹ô\œ‡Ó|2Ö¤Qh56¼9Üíö8#œ¼xãšÇí!NÕn³VÙíâ\œç½ùáBU³ §Ý.»]œçáyýžF`õÖ¼Qâ\œ‹sÙí²ÛÅy8r.»]z.Î¥çÒóܧçâ\œÿ Îoºé¦yóæIÏó€žOš4é±Ç»æšk’’’xË"ÎÅyN8/P ÀƯ¿þz¦ ”.pþÌ3Ïôë×i-øSz.ÎsÈ9– ³$Üwß}L&»=WsÎM!à_}õÕ’%K0Ã|gçâ<ûÅ'%%åòË/§‹n&2ç¹”ó —!ÎÅyN8Ï3Ùí¹ˆsKÕ°[ƒ™Åy>äÜwx\Njµí×Ùà­‰FÅy®Ös³n&],_Ó]œç+γ'Szžç9ç¾X4ó½÷ÞãíÚ»ï¾ëŸ$ÎóžgÎ3“”ôÀP˜;ÔZ#$q®ýs~N쮥K—2ýó_|a9TÄy>´Û™S¼nݺ|ðAÅŠ­5B‚Æ®ÿ¡.è}±Òž-γ)!ßé¹Å¹ôýôÓ=züðÃ,zçÈ/þù¢E‹2$nðàÁp^¶lÙmÛ¶ÙâÅ‹‘÷9sX8{n½zõÐù PZ×®][µjÕ¢E CšáÜŒ¼~ë­·xûöí0|ÿý÷?ÿüó3gÎ4ÍLj#|ðÁ+V<÷Üs4%|çwXÂý‘GáÚj×®ý / óƒ ¢ÌÏ?ÿœ!÷´ëÖ­ëÕ«º‡ V«V-®™Fo´¦ÄÒ3q.ÎÅù/œc3ƒrÚ¬Y3(zýõ×Qà˜˜˜Ç¼C‡ì< Ž;ÂÕµ×^ûÔSOq8ô¾ñÆ‹-Z»v-Û5cÆŒ#GŽ >[€Zgq>nܸ—^zéûï¿ÇÂo×®„öÛo¿ ùMš4¡½Àì5ëC—¡téÒ?üp£F8êºë®»õÖ[ï¸ã¾iPÁ½sçÎ[n¹…ï/¿üräÈ‘ÿûßÿî¼óN6@ à­!åÓw°úâ\œ‹ó_8?tèˆ6½ìv® °±&Px2Ðè¬_¿žt¦³@KqA¼ÆæÍ›1h,LÄÝÁéh&¸Â.]º˜†Fýsq®þùo~8D¸}ûöXãà÷ïÿí¥Ë 3X쯽ö&7 aÿç?ÿ|8GéuOž<smç,pHQà‡òÓU6><«N[@çìØ±Fr«T©²cDzì›6mІ#ò4(´pä47«V­âX½{÷¢ðpù[¶lá\œˆn92εÑÑÜÐϧ4š’š5kvîÜÙ\€ô\œKϧçpŽžÃØ@/²<þ|$ÉLÊ 7Ü€žÃ99Ì"EŠ`ÆôÑGØÒ°M@QãÇGTð·!¹ÀFf¼eQQQf*áêÕ«±·á+®¸˜Á›jI—›Î6ô~öÙgO?ýô¦M›8;’Žo¿eË–´8Xøœ=GÆ)œK…saƒË ÏUÏP&–HÆ ¹;ëݾô\œKÏ3Ó1³Ï›o¾6¨*,ÂŽªã¾Æ †L¶™~/æ1ÍDõêÕ9 ÉôÕÛg}0¹9ÉEQiJ ýg¯y ‡C/}iò°‹÷gxû@?X6hÐG .@ÞŠ1ëÆãyÐvœÿè?±ÇŽ£-à £ƒüôÛiD .ÌQ¸îðÒFèý¹8ç!ß«™SM¾ð ±–Á Wrëe•ï½˜ÌØÏð‰ìƒÜôéÓIGx¡Ý÷U¶ïØ5Û¯³Ç}Dƒí¬avA«ßþýûipæqj²uëÖ͈¹8çâ¼¢ßÔ¦žXs š7m¼ÍòN:ùf°†©˜A/pò“Wn—^z)ìÂ\·.˜s:R(Ä„H⬸WËCnNd Ý1§° ¿ 3–†~;÷…¼3Z†…ÆÉˆsq~=L ”S¿Â­[0ãÌýÃç$B&Ô@úìl­éL{ÁŸl[Ñòâ\œ‹óœ[°YŽ:Ë\õÃYk§[¼…bûïˆK5ö‚‰1­ŒâXäo—¿ýÌq,Š?—ž‹ó|a·‹sq.ÎŹ8çâ\œ‹sqþwsn…R[ç²^ùþéçC6^_‡­ïYÄy˜p.?\pêP·æë1ö)pš1ùáĹ8??œŽ0ßÄQ§¥¥1H“oõá‡VÊúâ÷'ùÂ3^š±œ„L0ôÚ¼§‘¿]œ‹óóÉy(G–¹Yê1ðÄÍ’H A—LÀˆhx1.’aØLHà›P-$˜±€@‚7|§=çâ'IäÛ ‚ Gåœ òíAo'‚v;A~%ç0?!¶Ú¶|äÖp;\{ÈEµ¼jÏ„ |@Î}.ˆ%µn{ð3dµ-Ä U k÷Ô"GÕ7¦‡ïmHg‚hZñs⪧%´{äÕ`0X,–sçΡ¡jr7•®=mu¶¡¥_:»}£v'Apýy£§›——7}útUCØl6ö 8ðßÿþ·ÙlÎÏÏ—ß¶víÚo¿ýöÝwß=yò$Þjõ°(ô,,,DƒÈhb †ˆ=ò«V­Ú·oß'Ÿ|²sçNÕp êóFVæ@UUÄ £ÑXQQqöìYùhóæÍmÚ´yàž}öY6öàÓ7ß|³GóçÏÇ‘mˆñk¯½öÁ¨#Cæ1¬hi4JKK+++.”••½ÿþû;vlÛ¶í¼yó¨É ÆÕ¼ q¿×¬Y3hР¡C‡N:o?ýôÓo¾ùfåÊ•[·n}ë­·Ž?¾aÆÄÄD˜ñ7ÜpÞ={`ˆ ‚‚‚¬VëºuëÐù‡~زe F1bÄäÉ“¡Õ.\xï½÷N˜0aÀ€‹-BÿåË—§¤¤àzaâÀ 3ÝHÅäᢓE“Ïš5 Ò¸mÛ¶@ÈGÝ»wïo¼±k×®·ÞzkëÖ­¿üòËN:á-Zlß¾]K¼AÈ!ê}ûö7n\rròC=4{öìM›69r“Enn.¦˜èPÝø"˜“““-—,++ æƒv4‚à:–Æä<,, B ‡&7¬thl¼5™L[±ç!Øh@baÉËQ Dâ­Šáèèè3gÎÄÇÇCŸcÏøñã1w ÅŽWL™™™pËñu˜;d44d4ês‚ñso…Ð!ØP¤¿)S¦@,AËÝu×]ðŸEε\ºvv7}´¡oÙ‰9ìxìÅÅÅÁÁÁèá—>ååå¡¡¡Ús¨®’«0¿ˆ œ{SÎ!Š×^{-Bh‹/>qâÄĉ!äPã`ÅEŸ‹Q þèÑ£rÜõž={B˜gΜ‰ð›*¥è óD]ddäŒ3àÒÃP5j:¼ð ëׯ‡ÑŽ/j×®t8Üx9êСC;w®·#ˆ¦+ç>Cº„366‚· Ð7nÜøÌ3ϼôÒK:t þ›ßüÆŒSRRwvø®]»°šÌy¯^½0Ìo|*ñvéŒ= á@¶a€lÏ™3î7úÜsÏ=K—.E@îÃ?DÏ>}úÏ/r~ýõ×Ë $r òíÏ´C÷B8ÑHMMEØ 48¸7˜ÙiiiÆ CØó«W¯îÒ¥ 8ô<”?˜ù~ýú Á>räH8äbÕcPkèŒ)¶ú«¯¾ºlÙ2Œ&1¶ŒŒŒ¹sç¾þúëIIIè Òä„·ÛêÖ;õ9A¾Ý+|;^Å>Îy“‡ËH :ˆ³ØØ8H8x¼…0>\Üo•½ÇҖѤݭ[7L*£.î=ì¸ Põ“&MRç‚ ßÞøú\K³\PóOÅ—á„¢îÞ½;Bn111ƒÌ«œœ$À©¶·%ÆŽ;xð`40)È7¢Ý¿ÿôôt(vÒñ–TAÿ¼Id«J[›£î9/]…¯öÔŽæ6×Ðñ#˜ß~ÅÌ{U¼Õªn‹Øê³ºU=/#hóáEÔe4YîFk`~;AäÛ/ Ä¬á ¬rºäÛ/ÌIVL¸4‚hÊÀ]* nÓñ>ÿé,å/ù Âc÷Ýw¢e“¢ ‹#°ØË¢¤¢ùö Xy¾dÉ’  ; ËÔD“ÄBp—¾ýöÛXþ¤&kÓ?oð„¤(ÈuCH¼A4m`‰4VU6-ÿ܇x8¤ WD“ê#`¹”8ç”ó‹\¯F¾âlRνKÝiκJ¾×±4ÑèZCn"­¯yr3؈¦yÇ2ÎÝ j`·ê0{°Ñ`Ttz^Ñ¡¨T°Q_W=v‚¸‚w,óÛ/lvT?‚„+F%ÿtÁ®-û¶mÎÙ¾eÇŽ­99ßì>vð„Ín rÖ<Œ…:‡ >÷¥ÙQ5Î‘Š„2OÛ6ä9ó]³!%¦ë2Ÿ0¤ÏÔ'ÜQq&ìû­›·:~:ؤçUêsŸ›%1ÖdD‰(TwŠ»Ñ2`^lÖ¤¨„!qCâ:™RFGô×ñLGóÜwØd V'KŸû:‘(šÙïååû÷×þîÐN÷Gé Ns±ÝZî´WÚí•NK Úö–C{?•o>}òÇÓ0àÉÁ¬3q‘¶Š4ä™dòz)E?ÚÊ-õ})|ò#û% 5¤ŒiVQ`Ó9tŠQ¯ÀÂaC[g>kH1vš~ìØ1s¥Y­?C´Û/ÌVcXÖë\âÚ2Dª»ÔgýT ”œ--7¥Þn9g¯ÎåÕ뜷'ë” }U±=ájSdÇÉïsƒŒÕ…#Wh‘›oúš†Üº´Ûw“:xnéÓO?ýgf_,Pb5Õñ¬Q¼uÎŽ²Ç`4œÍ-ŠÊÖ‡&Vľ®yÔ¥ö«|]Ò5¦Â¢¢þœÁxN1T¿róë­L1”ŒåÕÖê;Cçý‚_~ÎÃá‡! ý‰'žÀS ñä³½{÷î»Xìß¿÷îÝx†iíeªµQQ^•n¬© å¬S󻔺ÓQåhÖ.Èd¾¶àô°Ò‚!%ùÜüxZýZ0¸´`Dq³×} ÓT#wñi§X¬ƒÊçx>1ž%üÁŇ¯X±uW´‚W¯3˜\êÝS×ü LúpÅ>)÷ûòŽNáæ×Ûýùø+¹?ïèÄüFžv’‡kDsE(4]MQô‹.¾#‹~<ópê÷ÚÌN^§šèuôqýÓôŽ2Ç9«áµ¤Ô—Óæróëíåæ©/%µµyjnPˆY1.ç¥ùC6~‰õw„‡kÈú“fÍŠv[A³;5Cu³2\ûuJ°¾ô 6Ç–«¿Šˆû:2ž›oë"ã7DÆÙŨ Ü•LïŸ{Ã9ñÌ·Û­ö¸Ä˜²ºŠÓvƒIç°×™#±ôÖ宫Ћ‹‰p:Âí¶p‡½ú•›_oÍì6½÷}ræÉxq ª„ë#c"" qûß(5šª£jˆŸül °Ë’‚„›b '?¯,ÿΘ”œ`±Úà÷Û«_ÇÍï·_“Üøþ¹7œ“óæÉØmŽ´ŽíJ·¾[£(ÁŠÓrÝå”c³£­ ‰3æX¾ûgEjZJp°©Ú†çUú羕údÊêÚñØBÛÖ§Š,ESœ18\ Óc3Å‘$søƒ²ogœk›˜œÔ¢¹Íj¯Ó'ÿÔç~ðÄz?Þ«wëŽÈo¦çg=÷yl› Œ>zÆÅǹ„œÏH#ÈÃù¸o³Ø"£ÂSº·ÿe·öŸ$OÍl™Ö;+±e¼Ã^ýìtšëív°áu.ÞbFª½Â9¬UV›ÕößA9÷+ ï1– EÎ}=®FŒ«D\ ÿçÛ ‚|{ñíAÐ?'úçA0®Fy8òpõ^éŸDõÏ©Ï ‚úœúœ ¨Ï©Ï ‚y2A0O†v;A»y2A0~NôÏéŸÁ¼W‚ GÎó)iŸñH\TSJ¾ðt òpA‡óNÎGÛl". ðü\¨&Ÿ(¼ßäx8Úí—rJxüóñãÇ7lØðõ×_¯_¿þÿï×WxóæÍgÏž•GnÓn§Ý~ù`0òóó~øáU«V-\¸ðCÂ;Àµ]½zõ 7Ü——Ä|û妅¬VkŸ>}†zóÍ7ÿŠðnºé¦ÁƒgddX,=ŽGÿüŠxbâ1ÚoBçSÄkrþ9§ºF˜,]Ñ5áM¸Q?ív‚ (çhrθ×ÌúÊJOõ•ùpŒ«A» PÎWãÚx_‰T©¯Œ«1ï•þ9ýsÞôÏ ‚v;ívÚí´Û™w~ÀHÀúAΠÑ„ôy£»%Íš5[»vm«V­t®„Púçýs¿òÏÕ?Cbb"’µÖ A~?W[\u@~È鬃4°Š<AŽëR ‚ðA.¹.òpäáü„‡“:n±q­eR»ƒüT1ÝÑÖÚ]ò‘% 'OWÌ?W…\ê¥Ô®Ú£îtëP{¿zˆ´åS™iÔ·üyúçýsoùç?õP”uëÖê\%ÐTmluŸšÍæ¥K—Úív|„Wô‘6ö#.oµ?oqʤ;vlÿþý¨à‰· ÂÄ‹«‰¦;wî©S§ R¦K,m$½I…]Hò¡C‡DøÑûñŠçÎ{þùçqºÉ|ñÑG½óÎ;Rc–””½üòËZ×€ ˆ+ÀáSXXضmÛî¾ûnH)ö@Œ·oß>~üøGy¤   pÔ»|µhÑ¢ &,[¶lÇŽoÿüs±çéŸôϯXü¦8$OÃÀÓÊËË¡´[¶l ù5j´ñÆ£¢¢Ð ªûÙgŸE=ý'Ÿ|ú¦x»víf̘1qâÄöíÛWUU¥§§wîÜ=srr233eðnݺ8p€–A\a»æ7ŒóŸP(ðÐÐÐåË—õÕW“'ONHH!'SW||<x…Ñ9‡ö–µkêP2Õ•••‰¡ 'æÏív‚vû刟«§ëªr>eÊ<š«V «ñ~É’%hÀȇ$Ã’w‹ÉékvÙ¢E‹ââb äŒKW&~®º)))l4Ú¶m A3f ¸tPh#FŒ€› )MNNFgøäÐðÆ ‘•Žž©©©2x »}Þ¼y°ó‡ ‚ˆš|„†òìÌÐ?'èŸ{Ë? ò‰Ða‡ÆôéӇޯ{ï½Öí‹/¾! |þüùè š¢ŽçZ‚xE}©Gèèèë®»nïÞ½YYY½{÷†‡Î9wôèQ¸ôjR A—5~.3¤¬iÓWÅzÇM.™3²DúìÙ³Ÿzê)ðç=ö˜VtÕ™õ'àêÃ:€lÃæ‡þÇ£0###åAyA\®6Á ¸ a0Éœ‘ª#GŽüàƒ`Õ¿ñÆðÀ%7FWSUFõÏåqãÆiïםߨ±cñjŸ<AîŠÅÏë\a®Ê°V]Cò¡™³³³¡®ÑÖý<×]ýÙr8¶=ú£¡¦¸Ó?'èŸ{Å?oÌ9Õ¦.®>Èö¼s×¥ÔçM"®Öˆ/&½Ö“÷Ìó©KÖèAÄ•áá‚ œ×«Õaº³zA4!9otúAu ¼7AŽ çõu, ‡$º"*¾uëVUÔ ‚ð±ø¹gˆ`c‘9rãt5‰ñþÍi“o'ß@|»b·s%æÛ…‡ãÅ%–s‚ ü™owþükÀi“o'ßp|;A´Û ‚¸rBã†@ÔÓe…q5ÆÕšJ\ òpäáòpäá‚ Gåœ òíäÛÉ·“o'‚v;A¾&猫1®Æ¸ãjAÐn'‚rNåœ Ê9A—.çÌ“až ód˜'C„ïësÆÏ/ýÜä±V›ÐÕ<`›ñsÆÏ¯ ä!ÐA„7Q­”øPúçW˜)M&Ó’%KæÎûÜsÏ=Cx¸¶¯¼òÊúõëCCC®guÒ?§~ù‹½E‹+V¬˜1cÆœ9sfÞD}Ú´i»víJLL´Ùl¼ñW»Li#¯¾ºÿþ}ûöíGx¸¶¸ÂÝ»wŽŽÆÜªç#·)ç—Boè]{¯$. Ìf³<™SKt”s¯ësŸðý,ŠN!§œQ—œ3~Nþ?g\ W#_%PªÕ©Î“½I»v;áö³^Qôƒb2èŠ^½…¼}/59»?ᯠ2¬U¶²âÊ£åö"«Ãl4é4òíá«ÁN¬80•ÓÇó¶mعû»û vM4TÞ[\²cýΓÇNë ÕKÊt'Gø ½Æ #’j¶nØqìÜÁÄñUÝ^½ú娞¯DuøKäUw˜O˜»1Ç\e6¢Õ½q_‘‡#ˆÆ‡H¬hòŠòŠœí»c[®y=6ulDXs£Þ¨S ºðCûÛ"úÿ56nˆmû·;ÊÊË´¢N» |FÔNûî{[ܤïòH´Ãî´Û–j ›Ãê¬*²ãM—G£ZÞdÜ—sÀî°Hm@ðí:n~¿¹n£ÑpüÈ©–ŒßE˜ «EZoÐãcèk½+ÆVýÖá4ŸµgÜœf>qô´ÁhðýÞäøöðÏuògææÏ›ëVFÙ™ü‚¼ä1aÕB]S—ÂíFR Šei Îv·„ååçÙí¶ÚÝèŸ7”öl”RJ‹åã¯mÕ+务‚›¿oæ  ÂR³k‰Í¶™z¥ƒü§¥G½½Ò›¬«*-ÄÝáÿÞ«W~aLLÌ‹/¾˜Ý¥K—¬‹E§NÚµkwÛm·]tµ ø$Uz¥{yñ´Ó‡Ì;ò07ÿÝð÷–øúß;âõÁ!zC&ùú}y‡Î®ŽÓUUZ…<Ü&^üñ={ö,^¼xùòåË.üñgŸ}†ùâRhÈyœÍÒ«¬°kEI·òbn~¼õ*/J®¨0D” O2þ_×ÿœ?Õð¤œ_°Å±„>OOOÏÌÌÌÈÈȼ@«'''_„œã“Óñ£)ìÉV™Øk“=½uÖ4nþ»Íhõ`ëN‹Z&;OX­•N×}­¯–)ýî¨Ò™LÁ/ÓÈ|»Zy y½`®•q.”½¬> ‡Ã¢Óç…‚Ï‚ Œ&nþ½åêƒuñÑö|Cyž*ÝY}çèê ¾à#':TäÙÌ'•°È»ÍÎüö‹ÑçÅ·Ã3¿¸W¥šƒ59ìAN¶`nþ¾í¶ˆ0S¨yú«Jch5©.÷àÏ•yõŽjçR©=q4rnÂx¶ Í7d’,ÑûA1ìErêÛ/¯(áÛT/ÀMääp™¤síowM;H—znxÕrÕ².Õ6áÓ÷ƒ›\¢3•§Ÿ~úôéÓhØl6ìÇ«ìõÕWóóóe?±X,çÎé:qâÄ×_ýå—_"â‹·ZÍ/Çþç?ÿYµj•+^ƒÈ¡Œ/ÜFCGEEÆ—P‘Œ 6Ô1U !Çà§NúðÃA@œGŸó> âÐâÕàöôéÓ§Y³fh eU^E[®^½¨ªîõë×ÿáþþ÷¿ãµU«V¯¼òJõŽ;öíÛ'Çâ[ðxUiìÿüóϧOŸŽÆK/½ôÎ;ïÈY¡rÒ¯“\Z‰# Ï÷ß¿dÉ$ååå!»Ä3!E9'TÉCZJJJÞ~ûíqãÆA` W¡«¡f'Ož8æ.]º|ôÑG8vÑ¢Eøv4n»í6Ø•••XR¯œû_(E5`X"´.tí !gΜ9hР[n¹åÿøõ¹çžƒ´ñÅ»wï^¶lúüðÃØQ\·nrÝйk×®C† b¿êª«°d}°rîv×Él‚£0æc=†‰ãäÉ“3fÌxâ‰' ÒÏ?ÿ<2á!ÿ8vèСȓ>|x»ví~ÿûßß|óÍŸ~úé BCC_ýõ{î¹GM›6íá‡ÆPóæÍÃà;wîìÕ«8 dÚâ­êøêúó â]´Ô%Aέ¡ýyFFÆ„ І2„“¼mÛ¶©S§B‘>ðÀ1‘"È^XX)tftttDD„ˆ,v¹Ó Ò‘芆ÕjãYÿÁlÑ¢T4dòÅ_„¢†2‡Tÿò—¿„ÆG2ÆoÓ¦Mqq1N_¹…êþꫯ0`ÒÒÒp VytêÔ ç€CΞ=Û¶m[± ’’’Àh‰@¿Í‡£>'.TŸ«n³´ÅmÉQ™3ñ“²~køm-£¦uÈ!¥âíËøÚäv´!̪ ­eËë ¹£§6LõTr^:Èá´{¸ç©Ï‰ÀÕç’ñ.bãrØ­[·gžy¾úßþö7!ÞÕÒbõÑx›}æÌ¹Óਧ¦¦¢ñÏþ$¼:YÀ·‡S s¾4ìx›6m‚M[n9u,_É/=¡±m|5¾Â;!¯ ò‰$KzÖÃl—0 ·=y8"pË«ÊD%Â+†ƒýNLL¼ë®»@¼‰yŒÒ€ÔA´ N3ˆâõ×_’L„Î<Þ Á~øðaUŸ_}õÕ áÀ¢-X°`öìÙQº¿þõ¯<òÞâ‹233 Aø ÇYà½÷Þƒ¹~ë­·ÞqÇÆ Ã87Ýt†Š‹‹»ñÆ¥›_&ñÉ1ÝÀ¡Qçf‡#Ýn—ÜøÆS¦LÓþp||¸èhŒ?BÊ ;áB7oÞ|ãÆˆ®c‚ÀQèQ„Ï,Ö>Æ„G=gΜ?þÚ»GPÈ×\s Úàù~õ«_¡<|,µÆÈÚýû÷ƒ?ÇTòayœúÃñ¾÷Þ{Ñž< |;cÆŒ;(! Ž9K"ü>¿Ž… 1®&ÂÙ¶xÎÐä°«÷»ß…„„ÀÌÖ"kZµòĉ™ þ2œ¹Jzã_Ž•\{ Ô¼:1­e8DºÉd¤î×úö&°Ø‘$êNçq­;åœÜ<5ùmxÈxsþÆo î…8–—&é+*]‡Î´á.@™ã-†‚ƒ­M\—¢†jf‹6OF¾Ûjé _¤ý^5¥GåeÊ€!›âî»ï†%ržu,äáˆÀäájW1Ñ2s’dZ_RzíÌy7JÜ­¿[·tt·n <[5¥Ïí4ÈÃÄy4¼(XixXì©å€t5+I.óšs9É~/y8"@ãçUO†v;A»ÝïA}NPŸ€>§cæ£a!·‘SSRë8PB œ—OÚµ^]ÍúŠ?ýéO²Bê!Õ‰–Ø/K,°ÎoÕ|/ º"Ñ2''gíÚµxUW\~.çäÛ›þ/ù”(ɬRW5¢DAxx¸®f–+£°H„Äš'È6ÞŠ«šÕŽPliÒXŒá÷,4ùvæÛEGÙ} 8gYó¬.*–_$"½téRÈ'¨UðòË/£ÜL<Ádq*“Œ1¥NP®µŠP,ë+Ð™Ïøc –[J"Ô6ÀJ ,ÌÀJ)|ÖK¨vþyCjÞµA§IGgüܯæo}M =£Oò&U ÔšÁÚ…ÕQXÃŒ3Iã“O>Á£9QZEKPN ¡° +Qx«—PxÉÏH{ÆÒEÔ0Á)<»‚º}ûvu¡²ZíÈóÃÀTQ‘Ó󭫪«É`t}oaÙ0 õàl¯»î:¬Ip˸ÝŽåÐÐè%ˆ²A(0´råJÈ–1â °"ZW¡VaëÖ­u®:DXáˆÅ•;wÆ¥ÀN¬—Ä[¬ŽNII‘‘QŠÎ{=ÅóÇ´‚¯ÃÊgߺ¤øí`(p5Ý?÷'ãD\P(·Y³fa%0ëßâ;Àrâ_ÿú׸;k[˜4¬.†ÄÂÇ\™G 9^e1£Îõì±TËÚLeÚÜjŒk- ó^U,ÆF]ÔÑ£GûÐ%Å €ÛKÊeTœÑn÷y‹÷1 k >æÝ.Üã;ÀÙ¢¢ðرckÛíòë á¨(€r‚0ÑÁ®Á×¹2•œœ Õê…O=õ”Ô‚1"'âQ«e0Ür¸ô"çLOO?¯A+W5++ % ±âÚ·.©Ü¨ëRçÃ’ÈÃù$§ª,)»ió)à„å´Õ5ÉêO?;8„éÛ·/vBÇ¢´0ž€_}ûí·Ã´~üñDZ6ètìDù!¹2¨òÚ ä»ï¾“=»víB¡òó*:]Íz,ß½ªjx"`Ù8¿Ò纚2šò ƒOAN[›ÖâЉ‰AñƒP Ì(i€nxh„ ¨@ˆ‡ ûa©._¾ÈPŸL. "mø{£"J  °ÙÑ£Gñu¢è S*‚“bC:.øá:¢)@ÿó"GâRÓZÅ®V‹ ‰‘¯f¶J}"é)ÆÜ{„ÓQ½Ê\jð 3Žð„9m–»6›½ÎšGžwŒŸ>Ÿ'¯’|jƒ—…ñs‚ È·A¾ ês‚ ¨Ï ‚¸dü?l‘ü-´0ÆIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qrectf-diagram-two.png0000644000076500000240000002225312536324474023143 0ustar philstaff00000000000000‰PNG  IHDRMù,¾ðD$rIDATxÚí} xTÕÕöÌ™[n„„p I·„»~­€E i Ú>XAÔ~OZðÂGÕ*ú[¾"kEE@VQ ¢r 䎀 @.r¿Íí3Köwœ\ˆ@æÌûr˜gÏ™}öLÎÙk¯µÞµöÞšÛÇ#¯uƯ ÿH‰_=*·\óÉêZ®î£Ê'«ûU^RåŸPùr¿Kª»•[®î÷WwÏ+ÿ•yu¢æŸWÝͯáfúU¨åŸVå[ï®T×üšª¹\ùnÔæ9Vþå5<²êús•f ×Щ®ØókèNRS3ath^‚ ŒÍD„ÑA9'Ê9AsRa|ŽCA_Ÿ“Š$òíA‡#‚rNùv‚ È·A» CÉ9ÌD¤¬ R–ü ~—ë/¹ê¯–Wý/!ˆó€‹bJ­ßü2Û⇂ÈÊ5õÈUÕµYÃ÷Ö¦2A4¬øyq Ã’ú3òj±XÊËË PPšÜO¥ë/DYÑÔUúö¥²ß7êOçŸ×ðs333gΜ©T1„Íårá|vvö AƒÞxãÒÒÒ¬¬,ùÛ6oÞ¼{÷îeË–={oõzX”?jæää €F¤5± PFAÄùŠ?üðСCkÖ¬Ù·oŸ2‚ú¼Ž•9PVV1CÁjµ_¼xQ>Ú±cGÛ¶m§OŸþì³ÏB°qŸ¾þúë½{÷nԨѢE‹pFd[ b¼`Á‚åË—«–!óhV´4 ùùù%%%V ß~ûí.]ºÄÇÇ/\¸šœ`\­~!î÷Æ|ø`ˆ l6›Óéܲe *óÍ7;wîDk#FŒ˜:u*´ú;ï¼óÀÜ{ï½\±bê¯[·.11÷ F˜ ¨F*Ž W÷,šü©§ž‚4¦¥¥=zB~×]wõíÛ÷Î;ïìÑ£Ç/ùË6mÚüç?ÿéÚµ+. ‰‹‹Û³gžxƒCÔo¾ùæ &´k×nÆŒsçÎݾ}û‰'0Xddd`€‰Õ/Â…ééé©©©rËRRR`>è[#Îc©K@Îà´pÈarÃJ‡ÆÆ[‡Ã¹{‚$–¼\Õ¼yócÇŽ¡ñÖGÅpITTÔ… š6m }Ž3'NÄØ;^1tîÜn9¾c‡´†‚´F}N0~^_!t6)ÄoÚ´iKÐr÷Ýwüg‘s=—®ÄG}è[NbŒ{'{nn®ÝnG}¿Ô)** Õÿ†ŠUr5æ”óú”sˆâ-·Ü‚ÚÊ•+¿ûî»É“'CÈ¡ÆÁŠ‹>£üÉ“'å*¸ë7Ýt„yöìÙ¿))Ee˜÷ ê"##gÍš—†ú¨Q£Pá/ùË_|£_”7^®:~üx·nÝ*Çí¢áÊyÀ†>álÒ¤ oA¡oÛ¶íÏþóüùó;tèüž{îA…1cÆäååÁ†¾ÿ~œfsÞ§O´óŸJ¼]*ã H8m ÛóæÍƒû:¿ûÝïV¯^€ÜªU«P³_¿~Âó‹œßvÛmÒ‰\‚|{Ý3íнN’’’6 î fvûöíï¸ãÔ=¿aÆîÝ»CCÏCùƒ™ïß¿¿ì#GŽ„C.V=µ†Ê`«¿òÊ+k×®EkcëÔ©ÓK/½ôꫯ¶lÙ5AÚƒœCƒÐùpûAÝÁz§>'È·× ßŽW±Ï…3DÞdsI€Aq¶ ‡·æaƉû­Ø{´ eiMÊ={öÄÀ¡uqïaGÀM€ªŸ2eŠw‚|{Ýës=ÍfñA埊). EÝ«W/„Ü¢££% ™Wœœ$À)Û[®’ cÇŽ2d äQ0`@ÇŽ¡ØHÇ[Rqýó‘ ¯”¶>G½æ¼t¹P¾ª©oÍo¬¡ãG0¿ý†™÷J¼ÕU¿IlÕYÝJÏK ú|xuiM¦»Ñ$˜ßNùö PbN‚¨€ÇE’…š°H¾ýºá ÉÀŠ —Fõô1ô4¡r Xièúüû_©i/¼ðÂc>ø ¢eS¢Þ€© “&MZºt©¬G`ŒY àŸË}÷Ýw—,Y‚ì4LS[Aõô.ô1ù¦M›Tª5ýóë8 irÝïMõ LpF$ç±Ü0)è%QÏÀêH|VÎ9åüÆÌW#ˆëà*lq&oz¸Æ»·ª%ß ‚óXht­–?‘6_Þ¹lD}ô7æÃÕ1å~E»]U«³Û­«f2›ÌšÙ†E¥ìVsUë±ÄU÷7æ·_ïñU} ׬ZÖùìý;¥íHß³sïÞ]éé_~uúØw.·Ëf·y/oÆB­EPŸÒøªŒs$3a™§´­é'. ¿=¯ÃLSç9–޳ÍÍ]|!ìÔ®iç¾=owØÌÜP… >¸ñUc­6+–ˆÂêN1w–\Ø$eJãæ½Cbº…Ätu$ÞÕèæ—bºü—ãdæ×Ç}mµY¨Õ‰àÒçN$Š&G6rqQÑáÃG’ïíúPc“Å[šëvyÝ%nw‰·<ew«A¡}ŸoœUzþì™ó0àÉÁ\gâ*­)Èždòz-…œô+·T÷¥ðÉO>Ýr¨%qLxq¶Ëä1iV³f ‡e l\éEw£Dk×G#NŸ>]ZRªÖŸ!Úí?ÎÚcXfü\ãÜ2iDVw©ÎŽú~Y‹–w1¿Èr)é—åîŠ\^³ÉëñÛÉØ¤ÙÌe¹îæ?qDööœ=•a³V,¡ùB‹<Œ}˜/¤C˜‚Ðn¯ÛQP¦ø`ßÒgžyæ¿}˜{µÀËXS{­ˆâ­r|•3«åbƥƩæÐÓ±¯j$ö©ý #ßÔòÿ8r.]Ê3™ ,ÖÍRñÊÃÐG¡fÉ·X‹*­=Ãt¥¿¨Ï¯<" }Μ9ØÕ;ŸG~öíyY< | ­xÍ’Ÿ="7c`áE¯˜t+‚‘‡»ú´Sl†•ϱ?1ö^~µÀå|ðÖ]­ÕÊf“ÅáSï5UñýÇCt˜#4÷”ŒSÓ3ONãaèã¡,<åežœœõͨœó^òpuH`…fº¼(úµ,ßã·‚r ßë*õšÌ&e¢WQÇ÷Ïl1{ =NË‚–Ió[´‰‡¡—c“æ·L~%6)ÃRªY‚—‡«§ñC6¿Æ|„‡«Íü“ðð°K_9A³{uÛ¡úY¾ó&ÍnÎ?V›cg³Ÿ6Šù,²)c["›nŒqišÕ¼3™êÞ?¯÷¦f¾ÝítÇ´ˆ.ï¶8Lw• 0 @mSÆ–²˜˜èF^O„ÛáqW¼ò0ôîv™¯ä“Ó?oÐSP%\Ý(Òsøµ|«£"ª†ø‰Þúò™_&H¸#Úrö“’¢#Ö–íš—;]ðûÝ‚oâaø#Èç$×½^îÍódÜ.Oû. ù;-Ç–†Dkš]óº@®ûœrn”M!1–œôò#ÿ(NjŸh·;*lxn¨BÐ?¬ÔW»Í‘Ò£Ëéw\»ž¾T~É㈱Ú#4{˜‡#ÚŠ$™¯—îžUߢ]˸X—Ó]¥OÆÔçøÄz?ѧooçÞÈ/ÍM.çÌŠOí)ÿvGÙ¡¿çn4çô›ÞÎ;·oS^îäŽÆy¸€ááôù¶>ëÝÅ%zôMMm×Ý»¯åÅÿ±4~º°ä9gÁ'MÚÚ:õxSLÓŸs4‚<\€ð®rWdãˆÄ^É?뙼¦¥ýÑέÚ÷MiѪ©Ç]±w:Íu‚v»lx“//Eª»Øí-syœeN—Óõ¿‚rn( _c&,A‹œz\ W ЏAÆçÛ ‚|{ñíAÐ?¯ÑñÁä[óäBCCCˆ‡ÃÅ…äaÑ?§~•9Y7öܹsÛ¶mÛ²eËçŸþÑ0€g'²cÇŽ‹/â18ʸÚ5}(##còäÉ«W¯^¼xñ›DÞŚ5k°¸Pff&&`G%wM€…ƒEl8zôèñãÇO Æ7räÈÔÔTìL~ºy8úç•!+Ò¹ˆ†ÓåY ŒŸ7ˆõ^ W“•¤-DC‚I·Å5õ9õ9ÇrÃæ¨™u{þ°PŸs,7fîŠ×ëe`ž AÌ“¡ÝN»y2A0~Nÿœ Nÿœ æ½AŽ<AŽ<AäáÈÁ‡c`Þ+ívÚí´Û ‚ ßNýsúçýsæÉA» Ê9A× çŒ«1®Æ¸ãjAÐn'¢áË9ãjŒ«1®Æ¼WúçýsúçAÐn§ÝNÐn7`>Œì+Ì” >¯sÇ&<<|óæÍ­[·6ùö§NÐ?7”®C‹-¸I5A3~®[ úq‘ ƒðpŠ·v±%G‡ã¼T‚ ‡3/BŽ<\òp°ÀýàÓÒÒÒÕ«W»Ýn|„WÔ‘2Î#.oõ·oqUVVÖéÓ§>œ™™‰· ÂÄ ‹«‰¦}饗Î;iDT\NJÒ›Ífá?~ü¸?*à<^Q¡  àùçŸÇU¨&ãÅ{ï½·téR«Õ*mæåå]ºtéå—_Ö»AÜ•ÂÂÂÒÒÒî¿ÿ~H)Î@Œ÷ìÙ3qâÄÇ{,;; pƒ ªðõ5mÅŠ÷Þ{ïÚµk÷îÝ ñv8íñãÇoß¾í¬_¿~É’%PàÐäÝ»w0`ûDøÉÃäáê…‡«¯a^¹rå]wÝõÔSOmݺ‚:cÆ Èsttô¤I“òóóŸxâ ÿ²eË,XùŸ={ö¼yóðéÎ;!ðƒFå’’’&MšDDDÄÆÆnܸ±}ûör+;tèðÉ'Ÿˆ=Oÿœ ~Ãâç0Å!ÉÇ:thQQ”v«V­ Ÿ£F‚6Þ¶m[ãÆQ ªûÙgŸ2dÈ“O> ý SýôÓ©S§6oÞ„œ ~M›6E¯0Ú!çÐÞ2wM5%ƒeaa¡êjbì¨ÙF¢ÝNÐn¿ñsõÇú†*†œO›6í¿ø43f­@Wã#ü»ï¾‹Œ|H2,y¿˜‘B\\\nn®4†rÄ%ˆ?WŽJbb"…øøxê˜1cÀ¥ƒB1bÜlHi»víP>94üwÜ"*5“’’¤ðvûÂ… açß~û툨ÉG( ©šÝ!úçýóúòÏ…B‡|"ôÕ©S'fΜ9lØ0Þzë-°n›6m! |Ñ¢E¨ š¢¾aÃo è¡Ï!Õ⨣uë­·}U¬wplÐä’9#çA¤Ï;÷é§ŸþøãëEWÄX®>¬È6l~èÿÑ£GGFF¢> ‚¸a<\eŠBóAÂ`’9#«JŒ9rùòå°ê_{í5xà’cº¼ªŒòÏå’ &€iïß¿ÿرcñjŸ<Aî†ÅÏ«œa®dX¯®!ùÐÌ©©©P×(›~˜ë®nœ\Á†mú(¨wúçýózñÏërÌ𥩋„‹Ò®Í¨Éy©õyƒˆ«ÕâÀ‹I¯÷äkæùÔ”5zPqcx8‚ (çÕju˜î\=‚ œ×9!ŒºÞëŠÉ G‡«÷y,µ‡$º"*¾k×.%êAXü¼fˆ`c’9rãL—ã‹ÿ$ßN¾|{­ v;Q‚02ß.<o.AYÎ ‚02ßîýákÈ’o'ßN¾ ÚíA4@9¯§˜D݆@ÔÏeL…q5ö†W#‚<y8‚<y8‚ ÈÃA9'‚|;ùvòíäÛ ‚ ÝND É9ãjŒ«1®Æ¸A´Û ‚ œA9'‚rNĵË9ód˜'Ã<æÉøúœñsÆÏ?güœ úçFôϽܧ¹ƒþ9ýóºéF²É„›hH0]Þ—]”qµ::öBÁJ4$TtVM£©E9¯@o„‡‡ÏŸ?ܸqwß}÷]DÃÀرcÇ¿jÕªF‰n'(ç×$çñññ›7oÞ¾}ûV¢aÏbÓ¦Meeeqqq.—‹•r~Mì<óÈÈÈäääÔÔÔ.]º¤ xx"IIIaaa²Ù6{ì“sÆÏL¾=ÛËËËKJJJ‰ès\ò°?ÿqñsÆÕ‚q5‚`_L¯“=JY›ƒ.E‚v;aü„Y‹¦9,f‡v9Ês…Îi@»£>aTMŽW›Ãfµi¥%å§ ÝgŠ+|{›ÝjñEãU5òíˆ^¡Ál6«Ëã:yäÌî/Ò÷Ú7ÙZü°· =-mߎC¹9¹V»U3QÖ y8Âh€ðBȳ³.ìú2-7êtâÞ^/†÷~9ª×Ë‘]ÿÛv[Þãï;Ÿ vUv*òpÑ •9Bnv»íÜÙóGŽI¾ßÞï…˜ÖƒÃ-šÕd±iQÉö®ÓøŸ¨¢&™ûÓšÌ?à’h·D9d™ð—rsOœ<ÑýO cœ…žò|·×å“b¯×]â)»äi¦õÿKO«üc‡¾¶Ú¬Áà¨ßnâ²g* fï©#gÚÞmíï(¹à®_‹Ï…”ζ˜]%Ð=þ+*§8+çBŽÅ¢IŠódÚ?¯xÆ<‚á°Z-ù9e!ùñ#ÃÍÇ´¢÷˜µt%ͪA±G´µÄÞfÍ8“­Y-~Ý•þym-(™Tä¼6 ÿô'-`dvšµ"ÍRÌ#ŽR›í|FnT7sHŒæqUˆ·Ÿ×­2gð‘ÛéRP’ç,sßn¯F£££_|ñEL<èÞ½ûUO]èÚµkBBæ‡ )zu>I™YëU”ûÄùãgžx„‡¡<â™Ç{æ]ÐÚØ,:‚­ÊÐzEJœÓg1G¸ÊK¡ (ç?²ÀŸþô§¬\¹rݺuk¯ï¿ÿþÇŒñâZˆPÈyŒ«¼OaN⼞E¹< |ô(ʽ©0'ÖUê2ÕJh+|y›Ùl5›‚ ˆ^Çr.œ'ôyÇŽ;wîÜ©S§Î×hõvíÚ]…œã‡×sÆödëÎ8o›:³MÊ< }Ìj“òp|÷O#šÙ ]žï{cM]Äl5•]t» ¼Zˆzó튷”™ƒžkœ|içÇòŸ2¿´Üdΰ…d[ì,öl«ƒ‡± VG†f·7‹ÊÛçr•TïÒw*u¯¯wx-vsÞ×N›+Ôj—é®Ìoÿqú¼®øvxæWG˜}*?ÅáqÛ¼vApXœÎf±Qeglö–Û#4¯»’J÷š¼ß¯'i§ç6–5kÞT3k†¡k¸º8jcå/à8°L$ì8»ÃÞ*®Õñ· Ý%&‹Ãìu{¿çÝ|jÃ$t»Ûc9óïâ’£¶¸„n—›q5‚ ˆ!é,wµIŒ³dDîš“é·GZL^Xð^æn—²_C›Y¿ý¨äØÿ+阒ŒÉkÁ°\4åœ0Têk…À{L]{uñ~ùÅ#9_”j¶ iGŠ»#Êb‹ÐJ²Ýé/\:ôrI‡äMšD#ACœMƒÛí²T€Áx¢žùóqlñ=útõÄ|¾tÛôœýÿ7÷ૹåíž“óåÃyEŸ7êÕ«glËX§ó{!çúp\¯‹°¥Ýd;Xéí:´íÓ禮¡´=qÎÏš¹>k••Ø#¥gϾ©¡¡¡Îr§º„óR "ðu‘UH²E³Ä¶nÚ¡[Bç^í;õLj›ærVläty²zPìåD»0à‚p*í0såeNgYE~+Êò‘H¸ß45ÆÏ ‚`üœþ9ÁõÛ²N» È·7¬ñ• ®g(žúüº/µo±„„„„D=[5:¿½\ÈÃ]'€=|øðgŸ}ÆM‚‰zÅ–-[Ο?Õ«›‡»úYkø¡?üð3Ï<óä“O>ýôÓODý½köìÙ(üêW¿+’y2׿þõ¯±LÍã>aþÓÚð*kù­Ð¼†ª8WÌŸcZ›0;ì œÇB´Ûy­5Úíì \g‚ ‚FŸx²½2úçì ôÏ "hô9oA‡#ûB°'0~N¯Œ`Oàz2Å öÆÕ‚ Gåœ ®jBDÅ®l¾ÍôŸÊD óåm[Tμ¼Ê–²Ùƒé‡“#¥²Ú¤±6¿¡65ýÚ÷\Ư¥œÁ óåÅÕG%x"98/»µùɤð‘x¿"i~¢+Såôõ¥ Æ¿Ö”ô ̺=¡­¨ßLF òó¼WÚ=Š|;Œ|»›,: ù׿þuôèQœqù€óXRç±îè©S§P@5ÑœJÉãuïÞ½X1‹@ØdáÕ8.9}úô§Ÿ~Š‚,e#R*ãUÿôÍJ9©«‡´Ÿ““ƒ•QÓÒÒP±†|;A¾½*Ú| Q)))1ùöZ••gäü›o¾ùÕW_ÉyàâÅ‹<òˆ¨ñ?þxýúõ-[¶üë_ÿŠUkp‰ÒÉò¸—›|«!¨O¡áѾš?}út¶mÛöÜsÏ¡¤Z* ,_*×ÊUqáoû~OvvöÂ… e!ßNU¸Ä|ï½÷°Žp÷îÝ›7oŽ36l¸ûî»_ýõO>ùo±œûñãǧM›6wî\¼Ý¾};ê¯Zµ å5kÖ >…!C†üóŸÿô3ÈE¤KKK_yå• &ìܹS lÈäÏþó×^{ ²·oß>4‚ån0^¼óÎ;° Æ5Pá7Þ@}ˆ=~5jÔG}„“wÞy'L´œ••¤ÿþø Ðêß}÷ÞG nLøÑH(ˆe¨Ey«œ=1óbpD&!Ï`,%¼`Á‚C>Ìœ9sêÔ©.Ñ´Pòo½õÖĉ!ŠÈäääFábváÂ…^½z¡Î€`<‹ÞÖjBz±åÃÈ‘#±J4šzñÅ×­[‡%e—-[OLLŒˆˆh×®]³fÍ¢££»té‚õ¤1Р~Ô5DwÆŒgΜÁHÑ>˜1c~ÿûßˈӢE ùÆV­ZaÍùÊ åÜhÐÓHâ¡‹è9Xé~†¥®æ Ù¼²>/**‚Ø$%%a°Ã6,Ë—/衇 4gÎœØØX@a¨÷íÛwìØ±mH8 uˆ÷‘#G7nŒ»Š ¸†OeôT_ ¡lxà PÈíýû÷ÏŸ?¿_¿~ø?ü-ÄÅÅÝrË-}Àˆq…þG¬])*`Ä7nNN™2å¾ûîƒTã…›‡ÞµŽuðVÄ^T˜¬ÇŽ‹ŠŠBé+Ak½+ IMM…•Ž·k×®[®¯ C¡øÌ¢f¥d °¢A¼={VÅá0@ÀJÏÍÍ7†7*¯X±-]ºT†Ùk— S_U½kå©É@£ø¼6mÚ eùmøR©\ƒQ¦ûz zO[¯‘ä1Cý¢ë  påÊ•(€%Ú¸qcÏž=cbbP XœW_}F H`èùÅ‹C¡@ÐÕ`|‚Fo+((@4*Ôº,¸%?›ÓϾU)úÜŒ†\V xÈrß`6ãOƒ Iƒ•GÖ8ÎÃ6– $èdÜ:hÎÉ“'ÃTF}°ôBæµmÛaè\½zµúRÜsXø“&MBƒƒއã ÷{àÀ¸ùØÝIô6 >{š N;ž*€¢“ z„œ‡÷.…””´ß§Oøíò· òã?å\F>Òˆ–…P92$[I¼ŽŸÐ'@A9¿ýöÛ‹-úãÿï u.SðäÉ“ðýÀƒéÁ§°ÕÑ¡ñ)ZøÉO~²yófÅÏUiGHʇĖè~J¨ÒTÁŸƒ›‰=¼ (@o½õVÈØˆ#vìØÝ‹ûƒj¨€ó¨€!‹3ˆ¨ƒŸG¡k×®ÿþ÷¿Åi:t( pÂ1^È—âpø É1ÎâB‹¼C‡p @Îa°†BÆ…öþûßÿަ0²àrŒ¹p<<!†_‚û¿¤þP†ø Œ °à É322àÜ|óÍ¢ ª•£FM±ñ% îÚG êè4[eûé#½xèFÐ*0ÅÑi0®ãoÄX²GÜuô!È9äÁXèxž­[·îÝ»·ØÒeAC™CÔ¡C‹"Wqu•o&¾úÒ¥Kh|ƒr3ñS1´}þùç~wRÿw)Xnn)FÌY³fá6ÊxªÔ†²npWÅä¾çž{ c0Ú{ø ÖÁOúS5¸H˜F â1áEžØ(­¡ 嚨€HŒp±ç+§Ó)CÜ{zz:þÆßüæ7j˜®ùçèÜPt=öÆÑ?°Q$~3Æ{•ᨇøÕÐ?0ΡŠk™úŒIù}E¢¾(H¦—ܘñB,I¯ϬDô­þ:üixºøëÔìû￟ a^PÄèy0óð1è1œ=¯:“ôœ2—}©¸ñbÀW©Ä'„¨8p`·r3ñSq?Ad€ÓRÄu 6 ˆ:þ^øä°EØjH¤“ñê¯JÌjè–꨽–«l\»Œ~³Š‰âÛŘ7_i÷!Cés5f"i¤çშÿëäYB{cïÑ£ø¡Ûo¿eœ„"BïÁÞÝ’#…„-D\ÁåÂ…ÛÆóÛƒNιA®¾ 'ŸÄ;cäu9Ô„ñõ9) ‚0>G“† Œo·s¨#ÆÕ‚`\ Ê9A”s‚ ê_ÎIEùv‚ ?'‚y¯AÜxÿœ& AÐn'‚<AÔçAPŸÁy,A0Ž ÆÏ ‚`üœ È·A¾ ês‚ ¨Ï ‚¸øÿ‹W¯.›\wIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qscrollarea-noscrollbars.png0000644000076500000240000015261712536324512024460 0ustar philstaff00000000000000‰PNG  IHDRøµýu¥îÕVIDATx^Ôýw¸eYY'ޝ¼Ó 7†Ê]Ut““ ˜#&P1qLccPG`FFPЍˆ PT$†nšn:†ªê®xó=q‡•÷]ëžóÜî‚ç™?~ßn]uêÜ}ÖÙ{Ÿ½÷z×»Þ÷ó&üS¿üÚ®XP!ä1ÆðÇ#Œ½÷AóA·÷…-ï§»AÏt;lN7àMZ8bo÷½_ñÈc'?ãœEžX£´n(¡Þ[g=¡»(¥œó»2æ­ƒsxÇ g‡~.J©'!~YIå‚ý£Yï0&„àF­ AȆ38ÿ0B”ë¼Gž ìáÒàú0kc”YkBŒS­-öÈÇc` 7k­œÁkm­'3F1BÖ9„±56Þ;cySJâóM’”rObúLÂs W{¦n{ßsŽC¯!ìÎ0ŠýOGŽ„·}C79&nL&'DÞà 29Æ$™^˜G„¥$œ¾;N®/@h‘‚£êº.Ë2>%¤ í¿Jh—Þ´gÚö÷ì?ÜyĺÝÙ¼à9¨ÅkŒ¹°[¤L„ãFØòÐÐäIÅáˆ_îQÊþË…;™’øô„±Ç[Fyo¼5ØÚzè#ïÑý ykfØÛPU³rÅ•Ì×÷ßóð¥qޙˋ¤TÖÚ£[© Hëv–:~å¡Þ«²ìSLLc×ΟÖM5;7ÏikÐÛ";æÛ {ðá³øø=Z“N“„Ìý^§H“tµ?ZÈ™\´)Þ21¾rËO³v·£ Ì‚™ÙlëÒŽ.«L¿‘\yË©!¤èä˜8Áظ”ÝN~íuWœ½´qÏ}:ùñË­v¶vqÍsrñÂX•弓'ósÉ™ócíÜу³© C鮾ñúŸû¢¬µ€Cÿé+>U < #A(ÅÔ‡y ‡Ý¡M©d2S<öý£€ñtø€º=‰T òÄy‹¬±”ì¶L+äHͷƦ0¢Þ;Š3‚¸Ç"‰Ç–blŒ&@ý”Qëœö„2OaÀ¼¦Ø9D-áIšˆTäYžvZ3ŒÃüɳä=ïyß›ÞôÆ™™YcÌÿw„NKúÂ/þÊ›¯=j¬÷ÞÁË!Y(pÉ–³ðeØ´Î:çPØö“ï'=ò±Ïy8ÖzºàƒÝÛÁ9  z-ÆXi¯dsñÌí«gîDªšÚíb¦ÛZ½tá¹y§3»¹±I:°Ð/06rf~öê§>ûà×(­4voÉþðÜ©{¬LóV5Öu¿_WD‘{~ôŽ{N+í:­¤Sð4¥««ëGº­J™3«½¹„´0¶JnZŸ;qï0­êJ<âë¦ôv²fÞ×MMᑘª’i"8çu]L½1ínF(¹tqƒ`Òj%”¹¦©«±ÔÆh«•BÎ4œ²Í^YIC°åŒVµlÊ2IÓöܬqÞ[k¬sáesnúØÍn³FeolØr6|G0îîcƒžp6ï¬5&ì.nî£Â<ì¤ ¬>!ê]‚°ôÈ£1Fp)Ú Î”©ah ²ÖB·Öj„ œÕìY 䬶¶1¾FIÙ×Ôe3Œ• & ¬cú1!„Ñ:Ü4ø;}·6öC×d{Ú?홾ìãöŸÜo]Õ,LhŒážÑþ „Ià¾SÖ›ðaßT›öû°±Ÿ‹#¼ÿT(ž*ô„ÎéO8Bµý ;çÏšZµZó!Â\gn±.Çe…j‹^¾xþBž¥W?BÕX5ý«®¹éØÕ7²|V›åEFèÚ™‡z[çf:YRhGÑ6¦˜YÐkkþÈíõêù™Î¼0]A8¡kk;'ç;­´näÃýyÂ3ʄ߮y¢\7Å4o­FÔù6!¶n”·Äâ|Â<µn.OÊZ OóÈh¡L6Š¥F{½8?3ÕU%¹p”$È)!H¿ôã²nlmoÖ Þ ¢‹-<˜¦¬Î=x…ƒ‚X0õ a¹o!‚âx°‹b¼!„ÂÇýœ/nb fQø‡ÁÞ…ã4ÚSœpÆÓÎiʬ÷Ò9ÌybãRʈµ Ã%Læ 2Þ„(Ѫ"³¨òXÌáòá+‚)·ÚŠ‘ÎKäh¯·m”étºA"{/Œ§bîô}?A¢)·žö_ÆÑ§=ûw —AX”šôô çM<$¼q£\ =ìŸ&t‡>i{*ÍM÷xfháHJò帿zî¾ÁÆNy»›V#I9µm­nŸ?¿uäØm›¬`W;$|$ôê§}Þ‘kžŽhádYÕ›½qÜßQãíù…%šÎÈf$¤6¶jLyêîµ;ï~ôÔ¥­6çJÕ³sm*ÒÁpùÀLÊÈÙÕµy4㨭yš)?'‡Ë,qØlöeªL»Û­ËœÒó Ëzch–€ŠædŸbC€êâóÄý8±)Šã>²v8ÊÇ)>48’¢½ò{×Áðĉ„œoêñ`°]÷¶MS8zÌY§içùp{ëìùM„i–ïÄr÷ªG3óíkn}öʱÔMWæ»ó3…un\5ËK³ŽàY·eù”ƒóI+ËZ$gù‡¼(+ƒw¡23)içIi•“ºÈ„`˜;¤±J1L lSŽ=ó)fÖzбcQ͸l²[ ʰõÖh¸ŸÆÂÚÕÊŒ|56¥•mžŒµ7²Ñ ž'ýúÌÃ÷wfžDiæƒ¤Ž¬@Ö<çLàÌ!GpäÛÀK»'XL9êl`Âs¦»=n‰Ét(aŽÁ@À~¡Ί¢ Ê{)ê µÎsJE°òRÐJ`Šú c Ú» ڶ猌r¹iGQ’Â`;É@¸gp¥´ôžs^8« ˆt8ì9g§òÕT°~Ü{lÓÎË7.Ûçòý¡1<Ñ ÷X OtÍ@ÉS*Ÿ^Á¤aˆÝ»¨ÌïÛ=r×Èpd>*~X °^o娬¦YNÞÚêqÊ´R—.­6u³¸t`{}ci®SomŸ8zôš§¿ ˜;0e}±‰³Ø™~o[–=9n­¯ÆãÁ¸ìm z½±QöØLÑî¤iΓ„+…F²aY2–r¸5:1[Ì]¹¬(„Uû×{Ïtœ=Ò-.Öu;ARv±R•.WÒ,I6ŠPBÅœb‡½RŽ0Ê©WeðÏÓ¡Æ¥ œù„%1Fœóªª@t¯$M­kkÍHzçpÛú„Д!kuc¬àÔJ3ÜÜ~ô{=AK®¢iâ!ˆºÀÂ=v0¼M—ÈÝ}XEP”X"èäA˜Éú D>½¨ƒ¡ ªÂq¡YL(ñÂJ0ÅÖä,ø(¾{cçñÏÕÊ!)c˜Â5i¥8Þb„¥–x J…Çœi Öo’xWÇÀLšfÔŒ•i€àžÆ&$?€Ð*‰¤'8ô¾Ý»Bº=º}ŒˆÛ$ðw¤K‡=Ðxä%q'k M–b#çǃ‘ª*šeãÆ‡õÊò‚­ÇBÊfпþ©O¹æº›;s•C²–ƒÍ‹ç¬_R•lêÚ:WÈ#mPÕ—º.º©`”qj=T¦©‡,€_i"œV „ä¾?.šÝ·¾qjµ\슥Ùô|Ù`O)^-åØ˜CI–'„e´› bÑ3„,Z3M9óÜv}â)AÞ2âŽÓ×öã”ÑË{ð¤±@¼?¥Q4³± ÏÀÇð"‹ñ"îî)~ˆïQ> OÁNN‚•»àù¹Óy«»³Ù£)eŒÇÆ6ªêÁN\wíÉëoX^¹¢ÒD mѹ$MS«tÞ]9>Hõ{²i¥œ5Öjïìx¸Sõ`»Sdó£jЇ•²®‘Q62hPi9’£Æ–ÚXmf9?;sNJñúØ ”ér¼@pBüÜ\1?×âBPZ¨Å¹S2СSë9ãiæ$w΀4îëÁÈ ƒ¦Uƒ’&ISW”ã¬ñx»´)v©`Æù„Òn[ÔÚieò\PäFµíÊ4›.e­¯Ìsž´‚ÁP¤6b00w •62c3Æ‹|T@]b¼µ$à7n"£Lá/çm;†<ŽUÏÃRã­¦B¤ -;#@g  ¤T£MÉ9'„ mÄZJ(èÐi1áµÇÄ9N<ÈéÚPç±ÖKöÖi­}hOŒ~ù ØgSˆO¶'JdxŽhLõ›ý‡Çc# AŽ´w,²>*F£ñ`K5=Ϩ‘zwÛjM ÅÙfÜî¶®¹îú•ƒG¼ck«ÎcÕHNÖM·;“væZ3Ë,Í9Ÿ+`­0 (휷ÊÔ£ñÎZ3î™fPõvz£Ñ ×c¥‡•ìõv?IYÆìð¦âuõ”jÑcóéR·hÏ­ù¢Õ*(¢Ž3˜GŒ´WÎ9FgŒ§Œ)¥£â½ ‘4µ$È%"à/ÊPFË²ÄØiMnÄYW+K1šmå—zñ¸iL–ó@w%¥ä‚=òàƒEgöàñ+ a€dxX KÚ¥@ØGØË3B<ÆÔÚˆ†Åÿ;†É€=š‹dî`¼È„yï@w6îH›Æ{·Fˆ3 ¥!†!NZu@ã›XxÂÉ`¥ç œ®D<&K1µÆrŒßåØcƒèòDÉè“Ucjm‚U/nO8´ŸêŸ{êÍô#‚¦FàýÓvžàëÓ51£´mG›²É×cDx=Þ÷{YQB¶×·¤ô'¯¹vvñpYY­úÃá0¡d«¹5ÃÕóùÌ챓×eÝyì‚&!œ-ʸ‘d4MÓ¦œ­;E±<·||<ÈѶ’²él#«²Úé—R*¥´Á|0ìkå²b¶ÈA/:M’$­…Y*„‘:K¸·¨BXI‰z0œ2Á8F$ê„”N KX9HQ®Få(+RïPž‹±2Ž8†lšÙùv+ÅUc·úU‘ˆFŒ ^ÕÈ—r¾Ýœºûîv»Ý]çyÏ›[ZÁ˜,.˜CGëÁÎÖÎÚqHi• a¬MŠÂ:´¹z±Ýn3‚2mh»C8çiã `ß\xdµõYžÄ„YVtµ”Öx-kÛŒušÊºLTa(²F!ï“,c”J%AŒÔ†3JDKD’¦&)kÈ„ež2êŽF>å‚‘Œ騷 BžÔhÇÔ7V–’(ë8%Úún<,I“µõ¡Ã@/)ñµ1A³7ÕR“ ¥Ï?úÐòáåÙü˜õ ¡:ðol,¢8!˜Xކ÷ 89-§~WØ£ýzÐ-tºý&¿èECâØ{ÆP[ÆeHE§„»Ý†%L€(v! z€VŒÁÜZF°¡ cGÃ,TÞig`U"ÆÖ‹X à@Ö¡4q3†>¤þ'ª1äý„MG1.ªä,Ùr¼œ`D¢^¿oÁ6éâÁÓ ¦TÊÊ{oÕh0Üa<ÛÞ:#{;åpŒivquggX½ì«¿îªëžŠ© ¶N-­œPÇûÕh£¿¶ãæŒÔƒ¡ªGØ#†QosÍèj®hƒQ.p’¤ cpâÆÆ) ã!ë€I[ì½ij>‘¯«rØï ‚u£$¢áYÚŒŽ9c˜$4c„P—ÁC$”KÍë¦Q#ŠmBúëUƒ$O)åãѨHB€/DzVÖxÔ¾Q (cÖä©W AŽ9gæ;l,Í…^u°`0&h04R„eÏ(æ]åd {;­ö#OÍŠVf1«<ðMeÁrΘ£išÁ$'qH0h„6º/¢‰uÉ…! Ñ^°RN( %v{ë7¤ë­'Žà‚46Ô98ŒRl^7€LZšŽ8&Ì 2 ©­šãT]XÊhXö-œ$t¯)^À¾ðÞ>AÊhäÙÙ1¼Ÿ~÷YðPñ.ôáÇx‡ÅµÎ31™NÕü©‰:0[–oõh{ótØ_WUYG²AÒVýAù´g=ëæ[n 8š¥„:£‘qÄú„&$ïàb±œvºE=FE×#?ls½¤ÓvÚ8 E®–N6»/k5®QZÊƃžÑ Õã²·¹™g‰‘VQª” /Ⱥj剼;;ÓïT7‹i*’œ+­«Ñˆ§ÊZëy¾º¾eI(«ÊšÓàÌ(%Tk`»„ƒ”RÂouzFÈ+ÁðÒ\çþó=klÂyšrUKÁ…V¶Væ¹_ÇŽ]culY$²‡òƒã$kAp ˆÁ©]¡@ØÑ€ø=ÎäjâÐä˜È&:‘”fÙ;†øãÑSö[@cÃS+*òSMÕã(’Ç·)YGyÇx¬”òf<Ú1Mƒ0‘eÏ6vÐo<Çj :\¹uÎY½³qΙFëf·Õ¥Ì zÓSo\Z>Ä­¶³ð L `d‰¥Øb­E„&Y®±¯Æež‰Œ¶wEÖ%ˆΠϣ» ²BH«Q]׺n´wƒa)Ç6º!Mþ£^™F6„Ñá°ÜÞ ÆÊRU7¦?ÞéåE’t’¤(”ÔMÙ4µª‡õÖö@#ßi'Æ‘d„YÐ2-®µ!ˆhjíìJj¥–gZJƒ7IÈLÑÞÔÛ•¥w³¤ÃAæ.x h©ªöÍÈ5"4²Œ±ˆ¾‹Si¦‚¸Ÿ†Sc1¬–¡>LbL÷ëûqÆÙH«Àh¿3HÓb<^ï÷ÆRÙ¤H®8~2Mo a<ˆn1ÆÄ<Öɱ’#Ä[dFH)½Tûƪ“,Í]XJ@hôãòÎÌÎp§Ù^W`¬l]Éq]©¦7Û›}D㌤YUîöÕ‘¬È¤µƒñÃj‘0‘n†;eÓÍùr9²U©‚ÌæÁ’ÍÌl‘&)ò–p>*k‘'¶QÚje@Fµp ÖI×8Ó(C¼]˜íö†¥GɹíA'KÓ”×e¹4Ómgd»²£Ò$ «B„aAQ¤Á$´gÛ‰ÈlÂk#q„‰¯\$$¿gÞž²êÐI“LÈ—Ä/aM8ÜôÛÉ< ßBç?›P8r‘âðC×y Q¢…/ÑÔdêêðÍ(ÈÃþp=6tƒÅ5¡)Œ„[£.#hqšw•µu¥Œ.±CF+žðV'Ÿ™ërÊ ¦ã²î„Rg ñTœaêR)c1‰àƒZq2Ffi&»Ô»X8©ÌUÇæâRµñÊøTJëÀG„ O„‰èóO&þäqì'ûZ‹4Ep´Ó‘°s”1q 4ìãÆdvLmqöæNì™Äì‹¥DxºðO¨!bnxÊâü„d⼈ôàÝt"N¦Wx9z"”ÑÇŒ¦ßMÍÉC™øyFL*n„§7eüû]bÂ;ž(»Às¬ÖÛ—Þ¹p®5w`þø±Ï|ð“¡ÓîtggçŒÖÎhåq^@Cn¤zã5[›ñÀ€™GRŒ½Ò®QnÆ!ÊrðˆwAxôN몬W£õJ•²¿Óôúõ¸ Ç€²[ϨM78˜Z­A¸ ¡]ÔÛ…n‘µ²`ûa Ä©QJWuÕHUÁ<vz GZLDgv#_eË‘T ä}+Ê£ªQsE–$¬íŽŽ•šI¹F‹»Þ,ЬQ2„öX„|ÆÈt-Œ¼Ä9H‡A?‹6­Ã{â\d©8r•ð‘"¯Ò F9l°(¥»ˆ"D&\`èd';¡Yh˜Ð0oŒsö!(輘ÁÙèã¿ÒÚÇì&BΔ‹{x=QEZô—Í'ÚÔê9µM4OhÔ;§Úýôðø™N>0p'^.Õ;›uÙ¾þX¨y–ˆ1cR»¤È‹V[6Êh "¢NÉÚnj¥ë ”´€Ñjã½7Z §’"q.7J3Î8²Ú(é•‚,ëfÐ/ÇýÑ`§TªQÊ8Œ¹ñ¥CöU²$A¶fŒ0ÁE–¥‰Àà‹àH*8'Eš€'·†µ’ˆ€â˜P:;ßæy¾½Ñ³Ú•Mcˆ;sI0»ºS6 BH’$J¥¦/Î$7žœœÜszScΩMÖ# —m')'Ôl‹"ëHŠYJl%½&Ör’`R¿¢&ÈP»©0ͩњRˆŒÚãÖ$Á8¥V)?¶Nrœ"š…Ž=-Œ0ð6Á¹£  x‡)pWyÄ(" @"Šœ áªÔ¡*˜PsF¨Ñ²ð„¤÷!î±%È"£ââ1q°¼\¿„Mü˜†ž§®øùq"õer6û„‹£}áÜøq*!Ï–Ø¢êtÖAo£íLð"n®zg ¬´ïv;œñÊ7`÷°^ÅEtÕÊZd=­™jÔ—¶²Z:£y6Á„b"É8òÞÈÚV]Žä`GUUÕï ¶¶ªaY×Ò(œ¸dðÙPÀ3ÎÆ,IY*’vKÌ´‰àŒPÊ&´t.äHB¥¬F•p+<„<¥Äµ,òtÜ[°M‚ Nʨu(儯”dL4ºœÉØ Ç[ÃÑðÌùQ”ç 9ãC,…µ:å´ÕÊ9_4ÂL"{ÝÁ90ÿUƬ;ŒÏ®ÿÁVÿÃϾöϾø›k;ÿà=zʉ×8„N_ú­g_û·=ðí'V¾¥“]qûC¯DŽx¯®;üs‹3_®õ:"¾ª×<ÿúF=ŠéO»ê͛û÷ÑWSï¯?úYvì·~XÛòØï¾öÈ»ÿü¯œ½ôGíö-7ÿ LEÐS #­‡Wß0ßy†³–Ò„Ò|÷‹ËÿÏVvbsø‘# /SfÀIÑ}ìîG~.¬? F¥á2¤ùØž0Ñeª}c¼Ç¼C¾üû8=¬[ñµæM?ÂÑût|‡ƒg’ª*­æ`ÌÆ;[ƒþ`8# ¢ÂÁ#‡‚ÉÚŒ€R X¾+ˆ­å8lÊáîG£‡uÚ+ ØDÑí0êp°×ËRõ¶ªÞf5jÙ©\£U-•4` ëSʹõVƒ)*Ò,Mót¦tÚùܬH8^ÁgÉ:¥ë²ÄÄSŒ³L€Ê8IJ®¨<ÁI9꓌Q7jpWÔÞºZo+çhÂq"pš D2Ùl_s(ßêÙÛNU³3tq&Ýî5)a3’SÀVÅ„40U¢ë•ê¶®"TÜþðO<÷šw[úîíÁÇÛù5œ.zË=iZÙIíF“<;Ž0keWäéuqu5Vwó›)å÷<úZÎŽÜtì—c·=ø}Pr‘§GN?hºûôOeɉ"=éJÄÜñåï|æÄò÷®nþ]­×î=ÿKŒ/<ýÊ7ŸÛøÓó[¦ÔÆU_Ù+ïÞìÿÓ­WýÞ#­7×rýØòw<|þu±<¹âއ¿F›!» “Æø„£CÛ‡O4ò¸±Ï»ËOÎá÷ `dú1äE!hzÚÃÑr¯=m­BIÁYž¸ÕhõÒ†³ÈZ›dìØGµ1Ö»ªÛ!/½1ÕplšQ=V£²©T3®“,³ÎxBÓ,MZ-^th–SÑBž;©}5Öui¥tJQ’Pž¬,¥‘;Gŵ“R{ϲ„d˜sÑju:K‹EwF$¨ZW•µ*‰±¦kŠV 9«¥òJ LÄSp¸gSÁ––Ο߰ÎrÆËaÕÔNƒLKˆ7YÊçæf<³ž§¢¶n?³ƒ…?Ô¶ª~©N,/vP³5¶FÖ++‹;Ãñ¨N0f Ñ# Ñlöª•ã´xtçl2E^¢,bÖËÏOƒÁ¼Q!hš…Y¤îô>\ëA+;pÕÁÊÒ+Êê!&m»5¾íäʔՙZ¯è¸ñ£åöKZé‘O<üO¿â·Îù.q+¹Å“9oeUßßë}ŒÓ¶ ^\Úü‡ëO N|ŨzÐ#{fí-'¼ c|òÐ÷2Ü]ïýó£kolÆ{ã÷ôÿA8úãïƒL%™h‘ Ûs~Œ…F6]Õ l†“OÂçbÌ…ã¢iÖ_rŽTãÞ`0&Tˆ$éUÕÒÁ¥••ƒÊÙf4xôîÛ½#ÛïWãqcëq]VJ™Í˜8tδò|q6¿â©×¾úÊîì ©ÀÌ*˜ SÊRê°L'Cc­³(ÁΣ±TÆÚFY¦}Â"”åY–·ZÝ…™åÃÞ£z°!»öÃÍÊ8—v ÝH%%˜ScYHbâ”áY’äiSŽú½meQ;åΘF!ç`Ÿ.÷Ø'Y°WFª¥¹âbL0!Gxò?Fc8´ˆRí³õ»ý³%†LDº…mGáH´œ=fêà¯N;#ì£ÏóYÌÅëõwœÑY– wªFë[žvS^£K;gÏl®íljäÜhÔ úãŒñ4%N®êv ’Š)I‹öÌì¬%ÍüÅlnŽ¢–\:ÅAçSAê4OA2ò˜O3¡ŒqÝ¢qÙÌf)OÓ¤(@"á O[$ï"o3¤‡«CÝ4ÒÛ€Ô¤´±RvI}J-(kÔ"/G#!¨Èó¥Ã¢è¨õGÏ z%Äœ`¥²4ÓÒ·ÚÜjÔÉØxlÎìŒfr’ñ`oÐJh;á„aÙ˜ÒˆaU[íYˆ…Ž@„¥ÖO­¾ùàüK¯;ö³Ä˜ª>{õÑŸTfØJÍtn¹ÿâë."ˆpÊX·S<Ö¨Œ'33Å5ivðŠß³Öû×Z®Rœ ‡€-³Åý…N²›ZừúÑùîsf^<®ºzéµ:5×}îÊü—_Úüë„/‚IôcCˆc$% wÞqüÀw 6ûÈú€Ìå‚üÎðƒJï0œ šxX#ƒ2ÿCˆ.§„uå ¾¿.D8¾`¿‰÷–Ÿˆ%ûSpÀ>äh/_‡Nžl·¥˜0ŠÝ¸ßßYßÜÚî÷GåâÊÜÓŸöôagõÂù­ÁpØ¡8ϲDÕÏzÞ­¼ÈÛYQŽJVªÑÉn7¡³Ë+óGÍ,,S­I¥yk©Ò™ÆymTkMV˜º4ZÓ,I[9ÞSBAR6Èúª14IYÞ"­‚¤¡Œ±D¤b­ÓU³³E¤–ã†õ—i "5Æ»°Þ…H6á)ByÑN-WA£Ô¦1–pš2‘0æ´êv YI‚ÙÅlSvp®ûéó;™œ™\`ê³$1N7U5h,g ÝÇ“ÕÍíìúg^÷×”æ§/ýN¿¼ëÞ³¿xÃñ_¹åøë<òçÖÿüÌÅßí¤WÖÍyìÕ¸9ÝÉŸòÔ+ßÀYg{ð‘±|$MŽßrå›0.Îmþñç_â €°®¬RfS°î½ç‘&sØ›ÅÖ3GÕC{ðl³áYþÜkþbyæ W·þù¦¬N+½ƒÁ°Hªú\£W)u½yióœÍ Ëû9)”ºTëÕ[®ü²Áøþ»N?rU ¤ÈÐ'”õY O’Á("$þ²Ù31pÁF\¡Ë‘àúÇ"Œ$Zž½V²i*çÕéÌîfë­­6·ýj\Ÿ}õ +ËeUέyçЉ«®ä¨ºŠà4É<¢Zj‚V5òÎG‹Â²à€=êŠiÖ¥”[ø]çŒÆÎ–ãQ2»TÊÆ#O³4mµ²bÔԥǎ”RŸrŸÏ´Ú­MSãÒZÓHÃ4ñI¥+ëñ Bª†Ù!÷ÄYÛŒk§ { V‘%ÈYŠ‘×Ös'’Äc ²•þ\È;eº­,üâ¹K[C6hšƒ3ù#[¥Qj©•Yëf‹ÌXã¼Å^KE¤òYd)Ëî}ôu÷œý æÀÔc½!„íŒ?ñ‘Ï|Y’°Þku d\Ÿú—»ž'<àÜk<ûÑËš8nAü‚´÷ÔyÍPê:ò>÷¡»¾ÔÖÁÞÝùð« CüÁKo¢ü)œ£¿÷ëÇŒv”|øÞ¯!e¡Ožú^ä… óÙ/¼–„Ñ” vzý-§×ÞL=µ8@ž#”F[–÷xšt)n<™¨Ë~À$οýÑF“~Q‘Ž1‰t ;Nùc#[gbÜ®Ct8ÜÚÚ¼À8§˜äy Q*²ÙÑN¯ÚÙ”ÊUš+{ÊSorØSQäI;kÍcçšz$»ã¦¿3`©e<[XHçÕ„‘|fnáàá,Ö†¦eœf(÷„8©eo«©´(ˆ¹ÄQ–ä¨3TÎjïLÊE†rœ_ØØ×:Õ#>0 ]RWz»gNœ@ ­z=d¥§Ñ¥Ôe³D¤ÙŒ¨F•¬KU7Ô2ëئDqB‰¢ gDˆÐ7"0Ï<%s³i9oöõZcæE²Sš³½êälni|v>¯¥vZ&Iº]–Œˆ˜¥eüCÁò‚ÃÂl‡0+Õ&°(ÒŠî†s Ú(ƒ}'öv ƒÂ<;Š“è¦K†0óp6ˆ‘á'')Œv\®™ð.¦<4È:Á ÝQD1‚íགœU Ö¬NÉ"ðÁàF'þѼëþC .Ó/œs”Òé„ „LMcqé·‰ÑôqófúÛ!9# ~gÏ>ìMuå5O³ÎÔu彤Œð×ÔMUäžõœ§Üeá6á"õÞzlTÝ$¼‹SAg³ÖÂaÏç ÃÈ6r>oÏåyN6Ƴ¢@ˆR‹·ÈJ¤•“¬+Ô=‚ò¶n‚„·•µªFQªlš<á—6ÍùÕ #ig׺W˜™MÎmµfçqؘz4ä™ã\8i´zÌfºbn–5¢·Ñó¥nc΀b-ò!:>HÁ ñuSÁ™mexk$wÆn¶•Œ^íÕÇÚ³)©j2W°Î ¿øPi)ÁÎX;Ø‘Må¬Û3³ï9'îÉ2 aòi¡èš‹<&B Û`. !§¶!Ž<‡cqX74` ÐP„E kqS—iJ°ÿ8:´˜-‰„6ý.òò©û2šJOÃ7íâcع³V5ãaßéQ°¹"Áýµsgîíl‚EÏデžýÌ[;­Æ g¯µSÖ ¶†y„"н…SZŸæ3¬ÓùØhì & ³•± ¥M5¶²‘Æø‡W®zVoýèÀ0‘ϳ¬Ó1”Æ!J•Ö#cºssG®<–p¶¶ÙÜõÀùS[åÌlwë|ÏœZ£Øt…ÐÖ/Ìç3¢&Z7sˆÃ!šóbnn¼ÝÓZ3é ÃI¤‹àï,•7[gÅœÑéKCOøXÚA#»9ŸM!û…iz‡–çšÆöËʬ•)ZÔI3)¥û茨µ­0ðï¶÷ÜãJ™ÊcÖ΄’LÛÒ{, ƒšhôÞ³÷–aìØ"ËH;j\ixGcW×jSSÂaò flä(,ÂB!)I1ÞIÎ „¼qCë,¬X0’;Œ¬i0ñŒÈ‡JçJ»Æ7ÎÖa®pA ¿7 =ÙpŸlŽî÷!ŒŸÍÍ O3ÏMgËþóF_—ý!Ò$?¼°°xÇm÷yÿ£'®RRõ{ëõ¨Ÿ06p ¾?ÿϼòªk8m9k‰’HÕ^5œbdÃÎÈ)f)e¥`i3õ~0ÍH–zm垤jl”1Æ!g+9Z[]z9E„ T€½²iܼ¢Uƒêä1¶*Ç8Iñlwn±xŠY1έn÷ú«ëI’˜A¿iÌšqVpßIÄb;›ÏÚómœP‘QÑNJ„(ÌX%"Îx0QNå­"K‰HY igŠìì°œébî2A›FZi:<ÿÀCk­"ÔºQ6èÈĸH(%û¤D…q~bñ뤮VwÞK±ádéÀ—q>£Ìv¿útoxÿ¡å¯ÈùÕÎëqsßæÎ‡—g¾(á‹Ûÿ€<¶®Yž}QB.lÿ­Çv¡û‚në:„ÀIîÒÎ{”9Ÿ°#Ç–¾¤?¾o§úBc+ß›òe7=¢»GÔ]²éµ“¶ßm\9ÛzæB÷ä“aõàæèß½³ÇW¾¹QÃÕþß0,:É-³ëÏm¾£ž<0û¥„&ýñ›ƒbWx øÉæèAÝœ÷å“&Ú“päØÞíI5Q‚Ÿž+*„ИišS~øèÕ;ýþƒwìþOÿ{–͹òÊNw®ÇÓ‹k[‡Í?÷9Ïoç‹Æ†ôø†°¢°‚{ky91œ0piœ“ŒÄ/ ‹j,¬ÝNªf`ëÚ(dlÍ[‹²ÖkgHp–³$!Is/sV¨Ä‰¨š6ÂjlÉy"–WºÎºùÙ”±="#˜ÝyÿƒŽ°Q#/–òÑqíÖzâ>}l®uø@kåà|ž œœæ ò²)yž'Y®ü&d¶`ÎâDð kà÷[iÅ-¸Ï³Ü?Óv7ßxÕýg6U™§­ª®2 bAÂ1°ß†dˆÌºñB÷…7œø_Ú †ÍýãñÝ3í[n8ùkƒ÷'dîºüW>t÷—œXþ¡,YÞ~ìú#?wßÅWÏÏèæ×]ØþGŒ±¶jyákЧÛ|çµÇ~ö䡪åEgUš,I·ó襮8ðU×û¥qóÐGïþZmyr,M^1óíÆ5;£O»93ó´CK/;»ý—‡^vËU¿Yʋޙk²cg7þð3ÿÔ‰ƒÿ5O}üþúâæŸ]yÆõG~qkôÉg\ý‡ÊöúåÝWüAu#× ¡Ay ÑK÷É„§’Ô~®ü¢Çá…Ü$ºÌ‘ÞcλÁ€î8Ïnºé™ósóÿöwù‰|â3wÝ»ÐJ„“,}á—}ÅÒòa% gcÜ î´&D„ì‚Ì»m0ÀaÁ™Ó`ïyZ†©H0áFü§50i]•FV¶xÖ:tãço\ºHibFJJrZtr‘I#Å-BÓT6b\Õ²©á.m¥(Íšqz— ¾¼t˜ j•ÎØI‡Ð.:7Ûã¦ÓM=˜ÄÅþpgxÅñí¹LðÂ0cգ֪Ȓ"gƒaƒ¨8³ ëLãñ¡<ïºÍñ\'¹öæÃ§.”§í]ylî‘Õ-ƒq;g^;l¬WÖ:ЧQúž_±ümƒñ½„Š“¾ÿS|ŒZ;sñ­ûg]÷‰XAÖí ï¸óô/<åE³ùÓœmœSÈã‰ðí¤Ýé´oÝ¥òsë|×#?=OÄA.M—Ž.}Ëöð#Ezõù¯{tõw8ÿëÒn¾ð¦×zýc÷5G›ÿº¶ƒVvì¦+^Ä}ú'-²WüÑŽýÂ…­¿•z+KÝrâÿ”̓»ÛÎD²˜&‡½ûÏ\|c£W=aäõ!žì6]ü~¡$;ФizJì±'&Ð _í¥ÛŽóUk§ì´ÑÆ8—çsËË{`{m+_ìØ]Óu×\ûR‘:‚™µdϸðÆ ÖMŒ;À{²Wô$°Ï„#Bšºa„Ös»õà–‚[‡¤ÃÖkÞ*dÙ·Zqgd5b„Î.­4£qÕß1F‘T$ÎAqžæÈi÷à²WãííQo›bŸp6ÓbÖ8ÑÍ3§¬´³9Ë_\˜C׺xú´6z<*Û§,qÚÑ”†#YV›<)#íÙv°U’V!(òËmwq»•.ÍÏ_«?~ÇéCóí$ec‰½²š¢FÛ4Gƒ‘D.OÏú²“Xšý‚ÛOÿ§37{õÙ¯ÙPà)'~£lµÿÏ[åÇÅ‹í/ú¼ÿIûÞéKoºúÐc€ø)º1½z–¬ „¾ôâe™VkÆè¥…·Ò«>õð_þ®+–¾õÜÆ1B=-ˆ‚T·@0C€+èvz5ãÅÅ¿#ž0”¬õþùú£?×JO Ö½´ó·Fï<÷º¿¹°õn„ØxüЩ‹¯»úðO.ÏÉ¥í¿»÷ÌÏ:_ƒ5Â%ðÉ…§¡Ïî öéyüé0¼|¬÷³g"{´Ž1IDj­UZJ%˜‰”RzÔßje¸͇ÏÌu¯¼úºv>ÇC@¢žSnA¾6˜¸‹p\´)OBúc‡­óÄ çµ–ˆsÖN"Æ,°j°Ð’r¸†ì€´,AÄhYªZymò™YÊE–·°Õ|LecµÖÜq–Ræi2Ûj-ÌB„öhT–¥kj˜íEz”©‘×~sc£è¶Žž<¹ðÖ;¤€BHwæm·Û„â4Ïñê¦N©Ï96—e '• >·=>wih´íic­õöàÓÊ"ÂÆe£MLÀBCj€úÀÜ—!Ì®\~° ?´ðõ«ÃŘÜóèï?ilM̈ãb«ÿ¾»Nÿ¨–¯;ò_×úöLûÆ{M0¯å„ÐɃßyÏ#?g¼ê7TjýàÂ7 ŒžrìW(ï¶ókf^°¹óOžPxÖHbã… cѯ¶vtxþe[ýxçÍ}ÆdXÝð~ù©Ó?òù7¿ïªÃ¯ªšG}tõÏZÿÝ+ðÚc?½±ó·—6ÿž‘®Gæ?† …mê(0×i"´ŸÖa_D/wÞáØºO\¹°Öu]CÔU·Çíngîºë®~臥­¾úØÉÆ–8Â:R£„bâ´Ë)‡ÙÂ@Hg¦¾ôQ’SzY¥Å¢Â7qìPBœ¶¾VƒÏÒ¤ÕÖFÉrdËAÜZäŒ÷Ú4ÛëNHÖ`µ¤,M(p«uMÙ`lÞzÞíÝÄ3õÆho¬)EµVÚ(D¥œxF$L‘³ˆ1­LUŽ©Çv64K x¶É’ÃÇV¾o³ÿogÖÞì=>ºü-Wü¾±~4è&½J­¦tEãSᜩäùœd¸í1éæ7?÷ú]òjm?FIÆY»_Þyï#¯¾áŠŸŸo¿y“ŠåG6Þrpî+Ϭþßíþû¦7ÍõGö#ƒW ’kX8¢0Ä)›mäùÏœù™§œøÍ™âŒI+=öàù×î”w21K«öê·ðY×ÿuºTϹêÍ¥<Ëٜ҃ò ¦³˜(¢ÒOª?úþ¼úqÎèh_9¨Ðü~¯ ‡wqrqg¥TÝ”Zƒ˜AXä몬«Fä­ÅÃG,Áãíõ…¥…Nž#l1È¥Ž£`0gTpk[u¬ßæìÆ)B•­’´¥ÞYžÏXmœ™F¹Úêá ”8Bš¡,öŒ±F“Ì뵤=òLœ`B’”#šd¡²ƒvŽ9›`DòÌ{âD„pÀ’´µÆ`âœqÎbQ!ä-\ޱÞâFD„q­”Bå¨\¼á(ÂöÌ¥á¨V_|ëÑÊÔŸ~h˜‘4ɽq¨7ªSÎçfrkÝêÆàækæS–ÆÃµ^¹Òͺi(;r ÃɃçþÇ® =ªB—ÍCó­4õê§ú!Ù\âtÆ#Í»÷Ñ_²fð™P=+yøâÎoÿA9#¢ÒçÖÿ|‘Ì ÂϬ½©7þØÊÌWbÔl þ]»^]­]êý­ÖÛ!©ûíì$!‚xwßù_·®"$Å]Üú»þðv†éÅ­¿ØÕYÌ|¢êîÞG7´øÌ©ŸRf-¥+\ýäƒß>›=eT>|çÙŸ\0~ϹŸ-ë)iùø¸\ä˜Oºeþ‡Èª(›·IܯtÆàн0F¿G嫚C²©½s‰H릔ª‘Õ[I•Z+)ò‰à‹Ë ‘k£1á܇ICÕÆ†ìÒ(Üï\@t €ºÍÝ|†¦™ö:K»º¬u]:P´Ñ#-ípöÖ†æmÜXç•GŽ·[tÔnn#cqËg@á)(¼B`·Ï•ÁÎQoÁ”ðXÉÑRl¼£îr=y«5LE"ÜP£´Æá àͲ”V–'lk¨šF¾ðÙWÆÞýGržÏˆP¢•Úç­,vxhci¡Ýé´¹Ðë÷km]žˆ”câ-Ø‘fóìÚÿe´•òEÐ)åö¹ú÷)î ÆwRƃõÇŸnì¼£„ÑÜ{ƒ¨ßîÔø!¸,Jö©ÇŠÑ6ÇÅ`ü™ÑGƒ¤™’öGw ÞMùŠón8þtoôNæ(ë;ï µ+[ÈÛQù™þèvN3Nf‡£{zÃÛ40OX<¾´ý°ü‚¢v]>:ß'h{8üD¿÷ ‡4e‚Ñ…ŽQé{òqt<õ·™V¨ô{tþ9ª6Nœº&Ò=tUz§Ëj`¬<-˱¬FM5TuU ‡»ÒíÎú%5ìçíV«è‚‰ÙP'ÃSJ­‘Ž1äÎì6M1Òª¡0æÎè±òö,kwj(AÖøf´aš‘‘IéÑP{ŒR^•[º± ämä´ÐÊzƒ n·Ú}ÌË¡aYf(è» å#X7<õ IK-FÞ*‘äªQY’8âMˆqÆÞQÆHp±[­(ãÔ!kOAnSàÌàCJe]äœtþÒàøá¥•Vëíÿzrüäe ÚùÙ6%·ÑÎîÈÁöéÓƒ;Îm-¶D.X§ a5G(’ˆ%¢ÜBöC.ða„%×\XB±A.l&˜Üe(o„8i14‹¨ q¼a4q‚ ˆáÔ{ᑞ ¶j®‘gŒ¤·“5‚Î 8”"NY ˆ¼ÓŒåÍ ¬¼K,ª¬ŒË°"€Å(åw¼g”td̈©hã­ØCÓý“ê÷EìÃv$÷ÐS#<ôèUA|Œ¨EÔZ=ì­WUÏH‰1cRMU)ˆƒ+7.žÛÙÚÞX]7ÊÜpóüB{>T3#ÀDãÖ7Ž0²ÌÓX£œ¬´®Ó”bÁ ÒšEñ"±ÑÕº‘c@]WMÕ3ºô„ÈAm­E…KÁŸ¥å±%ã‘õÁù\gpá’¬˜HÚŒr„iô/Gž¤y›0CÂ)¦8/ò`=7©†RkL¬¢Œ&À&‰l$Èe4ñ”9­HL‰¨¦¤e½aÅ[œÏ?ðéGÖõu‡g¯ºbá®G·ç”óW3¢ÕÊV–;ÛòÌf¹UÕsÏ)sÎŒÇ ¡ÜK;èéNyÔDCI’»Pc„ F` CX9o- ƒapG‰#yë­öS""S²ÎR†ÎblEpâ}pÞ’à}j’7Þ)Š…F ñÒ"N`\BØ(°˜uµ÷UàÍ–boŒt¸a`=5Ño ‘„øˆ˜)ê ‡¥q6èpéTÙ{»<zJÓû3Ï‚ãÁÄŸiækM(l6..‡‚™³¨ì4RÊ5X,M«Ó&˜Gã¥ÅÅN§bn¨¦‰ Ã1£1`®Þ6µkJ36ýõf¸™¦ ëÎ!V J¼S²·¾þáwžñ­Ù„€Uܕþ.‡jTÊF‘,…È妤¬Õ’å³ÙÒQڵà ÈñzÁðV£‡£†¥iš‡Ú'L`Ï©£˜ ä-Gžð$,10˜: §”2ª”vÎqB‚8ÅEÁ´Ö˜r†˜¶H$,IU’ç¥Úì×Þ$ŠRñÐ#›§.örž^â€èæÃÑÖ‘CIÂp‘±,­n{4¸°3Ö•'ÆøLp$ØpTó‚¹€tD)2᳌µ±§ãƬ+ÓógÙ¡Ýs(›MNRÂÚ›ÇØkS6f›:†±|S"åF`[¼H7úbP§Zí|A›>a¹’Û)_ðH6j¡¦.KN*µšñ…Àݵ6c©×‘׌$Ú”I2ÏX†Uj˘ªÈŽ[_jµƒœà\²;#3~¼nÎ~ å]¸*½†½ˆûü`ŸØFöHí×>§4;£2mÇeˆ¹OÓ[wº3+‡ŽÏ-`œgEÚ^\š=p »´8»¼²|àÄÜÂÊüò\g6˲f M:ÕxPs«A’³ÚÖ#Ô To½Þ^uƒ50aXLšžy]ÕÝö™×¿ñÔ»ÿ!ÉçBÅÖ™Ú5cYõ€±YÓj%3Ý$síïT«—äúiIëî‰+ÚËÇ(BRX$J©…ófÆŒûH[”Åœ#Î(žM1cÖ{è§ þ‹$dÐ"!êÔ`óŽ[ä a` k¤ê›Áh´º]*,-´\ëÆ:&ŠV‘e!s ‚ a´Ýö;‰(QV#¥=ìˆaÞ[__}ä'ŸwÓ?<õê7>óê·uó[<¡Ï¼ú^xÓ¿?ÿ†¿ÿü›?zå‘)mïØÁW~ÞÍï¿õêß{Þ{bå»=Øœô|÷y/¼ùíâ¦F÷.~ËÜüþVvCm¶Ž®¼l××|qæù/¸ñŸ3±xÝ‘Ÿú¼?ÒÊž*õæ\û–Ï¿ù=‰X¹åäžsûŸròMϼáOŸuÃ;òôˆ²½ƒ _þy7}ðù7¼ÿ7ÿËsnú;‘>²ðµ/¸á)ë*ß»úðÏ>÷†¿ælV™Þ G_ý´“¿³2ûåϽþ¯n:ñúç\÷×GW¾Uùá$FÖy²8z´wîçåïË›î&åâñÄY=ÊñÁ,¦v7ƶgîRûh°¥Tm,ð{+ÕÆÆjo¼ÑHé=Å$y þÊjaj#˜¹Óìo¡º4ÕNÙßæÔ™'yβ²à°b*Õ¾fióŽ•_N †UÒJ£jk‡±,Ë{ï;óÈæèP[<ûš£K]Ú XÙ÷Åœ2^ղři­ŒÖš%fÂR )ÌI¡ØÅÚŸÞ“,ÅYä0cœRã6w êYiA7µJj£!œ`Á %Þ)«©¬n40ï¥Ù¬®!%Œ%~P¹#+su©2ø]ò Á© 9æÞÚ,ÞQ„ÞxïcˆmÊæ•|üá—K+½ùôoœk?ãŽ3?¢š‹–¾þš#ÿm|¤>±¶ùÈ}/»õä¯]yðwã!”¯ Þƒ«-¿tPÞ~ÅÊwaš]þŽ]´q7,hsøÁau†Ó–GÜ“„‹ö³®ûãÞõBg5W-нòö;þþnqó3¯yû‰C¯|øÂn¹òÍ·ß}~ã™êÉÿyëÉ7|摟ºòð/Ï|ñfÿ_/}%éÁ…¯>¿ñö£Kßtÿù_›Ÿy§3Ÿ|è;¬&d‰ù š`Óû'GGÈÇŸß'ÈÇw ®ÏÎÓAÓI±VkE1ÆkY{"îæ­y\ ªµz\)–3Ý.í&u9¶¶a`:¡6V¦÷6æL7ºvu©ë“¥*G£ó¤ÕÎfxž^+-H§YqÅ-G¾x§‘vôèιñÊ[¤ ŠŸ+µ½ÿ¶SÿpÛ™‡ `7'?úðKžqâùO»ÊaÛlnÐB€5*¥–`‘Ô’Éšg¹È迌b‚640ô˜ªCK…9µJa¸?ŒÇc¯á‚)ºçŒéP*Èë}pÔȨ´s.NC*gäuo ayiXš¥y^•ñÌ: ¥Úø±´™àÊœ‰I$ç±0¨Î“CÏ:ùvJø™õ?˜ŸyÁ#k¿{~ýéö«Î}ý¡ù—h[qÞ¹õÄouŠëW{ÿ¦¡”ªfu×b¿ËËí‘&ÏoþÍÊÌÞxôç³äð§ÖþlR3’ «‡¬-ŸuýŸ¾ð» Szæm)Ýll¨YíýÝ\që.KFÈÝî—¹æìø~Ñ~êÉ7J=\Ûyß±ß9ß~ž¶ƒõÁ‡Ž/}W'½Ú;saýÏæ»/8ºômϽþ¯/nüå©Õ7y¬ˆC ¾Á!‹þºÄ›ŽáB•Q¦PÈô;­N=§ƒ¹ uÝÛ­®VuS £i«[d3Á©{Ë(‡q*mm‰ž™_ìÎÍ벇¬ ié›RUCS6j0(7/`„òù¹¤U$˜2BµRp•Þ°ÙÃnýÊãÏ|AgဵšÔ•#ˆÒ³w=ÂúÕízo,´¿¨é~õ–÷}æŸþþÓn8Òld󜷋\Ûk¬+"•!_ Ž €5ÅìU€®WI]+UK«œ3Þ!Â4'„‚¾däœ±Š VdBHÙPzÏXAˆ ´©Õ¸lŒ³ýþ¸×YN%µÆ¡ÝîR9B©æ:­Ì«Ý$í‚ÅI½ùèúïºô;ƒñ½Œù' >¬Ãyј'HÛѨ¹—“¹Jž’f!N ²ä¯fÇ~ßÚàßî~ô‡Ý¾òÐõÊ»úåGnL…²åm}Å솯ÑN‡Ô^Ê9+Ýá¤Hi7ÔjÆÙç•A(K¯ „ÒœÛüƒ™ì†ÃK/Ù Õ»÷Ô|áÈòËÏnþE-·7ÿðÁ»¾ðÒæß?ø½O=ñºàJ9òÖà1ý¤/$‰&/<‘Ë£Û=¾6Èt’]<+àOwv©Ý×fNI‹îÊ¡c™9­›Á`gÐ9¸Ÿ±:’UŒÿò1Õc¬ÇªÚ)[u9Fi–v0/bÆ(Ð’®‘±N»Ë¤Ý-VØ5dÜ×Ê”’¦ha9»êšÃ×î|Þr÷ g:Û—Öî¹óÁµÓ›·ß~çæÎ`¾ÛM!ÀCD_Õ4ZJ¸%BŽŒÝh¡1áŸà1JÀì!ê*ÒïŸrŒ©R*•¡Þë¨x x¹å›!œY9K rU£¬V ø6RZBв²²Á¥!M“4IZ­„ƒ‚q`ëj[W]ûóÿw×?ñÑõ·ì²ðg\ó‡'ÿЮ°®Õö…Í· Úê}ç~quç]×úñNq̺†²|TÝ·Õû7„Уk¬jØ!tvãmF•‹ˆ4P"oKuá}¿s §³ö6¥·wú·X.®¿»Qg6úÿ‚ÚM.€|yÕò«Ì¿dmøÞRž#h¢vqcž‘'MF ‰Chš¹(;âÔ i°Eô×uðEL‡º8Kææa²Ù}ÖnsÎü¤”ÝùÅ"o­¯_è÷¶±×ÈéP-–j­œ©Œ*«ÞÆxØ7UEDÚ:p@$-* ’0£-Ævó4I2ï5ÆÂzC³N1¿<<÷(ãŒ%äŠkjÕXKŒö<ãËóª ¤÷;;rýâÚæssóÂS ƒcÂqLOKý}ÀŽÜ^ÀwÈÂå-HÍ|V5˼OÓLk`ìsÇ™ï‘͹qõàfÿšÙµ}fâðl~ë¥æÝbçØÅ­?sÞìç 1wiû½Ö³¶zâ,oÔú®`íÞ~Rˆ‡8ɪêÔÿUG~ÚY³Þÿçn~í‰Åï¶ÞÜ~êû7¶Þƒÿø}/½îÈÏ]|9òêÞs?÷Èú Ü5¦÷èúÛ3>WÖ÷cš>²þïõ`t;£­õÁ®®üc‡¾²./Ü}î¿9¤ž{û׶ÿáö_‘±ìž ÝûHåÓÜ1 M]c€\ õˆ-Nzû~Qi63»8lÇÀ›ëZ*%ÒFýþFogm<-Î]p>”m`¾X[õ7ërKdËóI«MÂ4Ö;¶{U°QM)²~]Ãeìb)Öèæô0¢=“4’´>.m­ '¼Ý"Σ,±Þ%4†×.8¥ÁåÛ9¥šÄJÛÔ?'±Ä¾Ó h`Ç |»&:‘ak BG$„8¡„9æÁ`‰µ.LmKXp¼v68ðxâ4,uŒ§±Es3íºqyÂ6¬e‘Ó¬•öúÚ„\ÿ…`βPãÅÆ¹ g§.¼ƒJE§(†Ú—¶þôÒæŸbLCÅÉ„óùórní)ÍÊòôÇîýjJr !?†Ñtkðñþ)D‘F^¼ãï 4¥¬×~â¾of$=uá·ÂŠ• –õFŸþĽ_OIvÿ£¿7†£MŠ0R`F”ZÿôïÀ˜ÆÑç¤ðXSÖ>¿öVV¢6Bx8úÐÃ¥$¥TôFÿä½_Š˜zB¸ Ùý`£7Ëœ2÷èI1ÅØÀÏ"ïOC[§næ(’ûã‚J'YQ’$EÞ.G##£c4!!Á­6IÞž]hey[kÇ0¥˜(õü›²×4཭˞çâj‘Ƨ²¹Ÿä9·B ¥ZœÜÉÙó^tÖ%IF™ðALÒ”'"Mg8g›[«¾Ã8À-[Í…äæx,GÃÇòC‡,høsªMcƒfŒ3<‡/6J5õ¨¯!'cߎGz\Ö²2ÇAx[–䪮1B0%&,ê–xFpÝ(áÑ–!ŒØ<5ZÖ€cp ÅI$)íÆ9N;±ì¿v5X:i¡L`BqÖÖA©àÆÔœd!¶Ÿ7ÀHÆÕp:C1Uvìœb4'˜…y&ÎÄXŽ&íq©•}$š KŒÞÝRàE¿W›{3 h#Å60Ë¡ö¡ðîcè |væQ ‡@Š´î Ã`¡ž7©›rØ[ë¯u,à/ù:$òN´©Šî|{ùc1L²–KÆ(ÍÚ"ɨg´ñÂP–tòö|šfŒpä™%\QÆ:óÉÌœ(Úݹ¥$IÚ­ò>Ix–Áj›%œ!/±J+#­ ÓÀZã°E\Fàb‘óF[rpï¦&Œº€Âä5ÆMRÛ„!C$á,寨Zù„b€Úà¢lA¦±0MŒƒ N-k9ª¤s¸jT£” (gB@JsQËß+JiqãñW_uè'ÂuÖE~íÓ®þvv­v#ãô5‡~îÀÜ׿Éñ[¯|Ó­W½é¦ã¿qòÐ'â˜qj¬:¾òŠ«ühȴô¯,~ÃÕ‡ˆ‘Ö®Íriþ‹Œ+­÷—¾þÊC?'‡Ÿzåo ~ÄÈj¯;úó+s_|Åo{êUÿGð™Ú¬\øšg^óìzë@‡FÿÍ£Éí8tý'+]{ÌDDÈ}šÀ}Ú&1Œq+.pÓRÅû\¾"®ld(}ˆ™×˜†½ª·#ÕPÕcSKC‘¼–]ÃI8@—&3³Æ7”.1f ã¡êxÂ%6M©Í0GÄ:nq’c°9-Š™NKÌ7z(Qã!^S½Î?¢‘#)Ó£‰$29dÑ`ÜgœQFb©ºÈußÈíK \†¬µõ Xï°«G:˜Q¬³Árd4fԢ໎öPW«Aòh%IO˱÷9¢Fë ä’P¬ŒuÁz,«2ÍÒ͵m„-§ð¤­óÒZä™ ÔiåøOÙÑâü?øýÞ¹­Á'6ÿœñ㿱Û~ö'ïûÆA}ï¡åoÜü[m6ï†0¯ÿ‰CöØòw]þÎÝûeÈH„Ìn^\ΖÎ\| ÂÆ;»2óâvvb½ÿ¡#Kß|déåŸ0/ߨþÛƒ³_*øÒ¨zh×ÄóÈÚ*…œC‡—¾‘bH¹ñøk9ëœÛü«[¯zózï߯ÍyJ8BÆ{yúc²ú\Ö&ÂïDVÑÀOŽŒ/OgO6|®‹rA÷þ{›$ºÀ"eŒYkFýÑz9ÜH¨è÷7«a­åJ"J;¿tœå] s¢¦ÈyΚÚ2B4²°J뚈gÌjY Ué©Ö„ " }C±•Nœ”FJT½.1Ò–¾Ñ xË g³Î°)Ó™Tç-ÝÔ"#J*ÕØöláŒeŒiGd­X.­+æÛùíÁïºåäÿÙõ]Ù|àö‡¿“C1â[\¤ãH—#±9ï¦ÞßÑ é‚]î F]¦•†'ÒöTS½ñq‡nó}VQljHb”%I’fᢛ«õ` Õ˜cá/«7º ±wL".èXˇ ºãr Ñà·M;¬\#Q¬ÕpŒÆ•“}]mkH‚Þ€2:.ǶúwŸ~æLïîSƒûN7]¬¸Ä.ŒØz™iœ2V´òN·Ýî¶³™¶H…uDpF•5ÒÁJkãÖs€«XJp¬&) ØñHB±Gi {Z"BôEÀË­µÎùJë ñ…¥ˆÊ€ý—x”3xz›£ \S:jÌÚÆ6ct}¬ `!0]Xðøn´rÈ[‡„_w‹ç;ϼ°óW»1È羦]\m]…0ºëÔ’<ãšßÃX`D¢‰#£Áfµ8‹2qÐG'j`XÔÛ($;‚_Ç^sÚ}øÒ6‡xÖuïÈÒCÁ:ŠŠóM˜¶ŽÂ˜‘öVÿc•ºˆ1íowjÌPÖ®ocQ‡§ÈþÜ-bSQ9.žOp#'‚Whðpbâ1磜E«ÇÕ~Ù¯ ìÏÅîJ"ÎÏjwæ)gIÖ •±tÑ™Y>y MRÕ” {%$L…rˆ•j¼¹eUY]ºÔìlÃÄOœÁj<Þnä¶Tƒº·£«¯GZ€*½it©j´3)U)wIî˜0„7CY>º¶*ÔÂҬȒ4IÛ`ÍÁxãr\Ay­ºTFRLÁDë”wÖÇbW{X,òJÉ8£½s@ÖJ³ˆ"æ=ÒÊ«R;oV(Û9\)+­O9Û*ÍX6 ­Œ8¥÷ÉÚ°ª”«¥bœ%œ2ДչÀâê`ß]üV„ѱ•ï:¸ø ¡+V¾×º!T«ÍO<ðMsù3ÚÙ ãÆ( 9<ÿÍ„¢þøö€a»ÈD åˆ0³1BÅ”!‡?½[ÑE­/w_h|­Tß#lñËÌ}y–¬›G-R·\ùÆ”/¬õß{õ¡ŸXYz‰´;ãnëéEz%À ˜ø‰Øý¼±ˆbEü(¦¢œ[`4)HíñÒØ4{Ѥìå]‚%9/ZEwÞ(•ÔÖƒJnuuW®jzëi$¦€çbÀ}¶Hʆx¯Ê±ìm¨µ­zÔkCNzŒ ”—Øx™X4¦Ò#/œ©œ×Ji`Êôdœ{lC¡+"­sŠÛµÒ „³PÊKpž§r»ç-ö‚ºWChHÝiuB8 3Èzæ½5°2ƒ¬sR°˜”b¬ €Áî\*°×*íÅÆ`G¨ùUR&œÎåÔY>“skýX“QU)…ðYæ|;KŠ9EYšé˜ÀŠ–­ôÊà ߰ëøð¥7aäOúþ#ó/m$G –÷†§ï8ýÊç\÷Ñ8>7ÿ5]&Ž?xþ×w†w0š)§.Û­<ûº¿àtn}øÏI‚ sXM1Ñvxû©ï}ÞõïNhkXÝwnãON|Õ‘…o墳˿Ïo¾ã†#?¿2ÿE·?øªK½¿|Þ5ï|Ú‰7\­m?ñâëÞ±5üà'îÿæŒ³ÒÆ´ÿÀ-ZF§•ϧ5膋t ¤Oðer÷$µ±(Tzè5¦9O»³+FŠç—ƃ5Uu]—Õ¸n†ƒ¾êÎt1M@ó™ÁÔÂÚ¹îo¯>xëí»>3Üìß¶¶þµ¯úƧ~éËzëçÒÖ²×fûÎ{èÜ2Q²Y;_õ6€± ­«Ò– å ˜ßUc™h¬A©Zº¦A@~Ö2Ïg Îy’ç¦n­[¶ N)½ÍíNÞÎ[-­¤ñ: Î@ÎÆK\À¡ÇøLcÁ Ø=3Ɔ)e-GãÒ3ÖT5£4±VàRkQNmÐ?ÒžžßŽ•J¨ !5£A˜ 8h”«Zj؈¼íÔwÆ÷k»é=}ðÜë/e§åúÇî{iYžIøÊöðCüÌ—Y7VføQ0j„D)Ï•õÃŒd9N’Ýpý3ëoƘa”*³©\?!­ºÙúèý/“ê´`ËRn}ôÞoLø<ÆîîÓ?wvýí­ì¤2Û;£xë·G·}øž/–Ÿažßþðtó›”Ý¡$¿ãáP¦'èŒó 4·Ï-OÃöœb]ìÜOàL²yþ¡.éHè›|˜–ieDíùr<”õÀ1j´½tút¯?ž™ëRì³4e„;ãåmt•Ñ‹Ñf¿6†Pùç‚c›\o…È!û鸖2‰j‘¶½­ÞÇÐWÛQkƒrLls/ÅÄÛW÷x€ÉÒÞàáz(P;'°y à¨zØ×5raCPŠˆoQà½ñ'BèÇ(—jµQÜaÇŸên' Ofœm>ê­à,C˜8Wm ?€C*ÓÞ{ Œæð£1ÁøsâÙÿqŠuM*°:¦qÇhêÇð"qŸ˜lqÐ]DËã¦æ´IQ;`ê")Ú³Æ(­$wëõ¤–» ƒñœàÌ‚a%&[¦i·ëYF,m·º«Ãûï\;Þ)vF£¯}é÷,»µ6Ž%D˜Ý½ú:^äΡîÏr-1só­Ùâ‘òÒÃþ¥íGZÿçe‡ŽRäåZßaMã"ÅÌè!®dijGkWIC:œ'B5’3îRÂ\–CíˆHœª¢òí¤B¦¡ASlµÁSO=%ÌÏHˆ³òN*;*kLè¤”Ö 1À e1j¼;;hŽÎˆ…nvj³ÜW £Úa\&(ö-HžPGhÝJPžñ„9äµ™#Ú¶¤Áž‡.&è FŠùy‡j=˜²< æb& ‘Cž…„:æÊd,G(wÄ5 Á×uRa”4% ²y\™)îr,!Î sÆæ¼ nüŒ³vB5 › $á/w1XÞÿÇçèY%ŒÀ§iÜý)Ï/ϲMb>Êåû=0ÂÍLjÒôÒohÁuøh¶qñâÆ…µ²×·R"ƒìÀÕë£fkDƒÛ&,oµkÙ„œâ„`@ 1²Öj‚ qusa¦­””F«JJBH="Î!ÎqBm!hB};¥LɰJ6õÆÒf®çØué&d¾•¶S–ØpÊ”s‚ … üÁ¡–Bvóñ×]}ô'±Ö5í즧]ý{­ü‹v”Ã}ÍÁù¯ÉÒãϸúž~Õo?åÊ_½êðOfÉ çB¸ñÍ•‡^yòà+«­çÚ7Ýrå¯r±pÃñ_>¶òrmûUËs_týñŸ1ßpÅ/XøŠÝ¸»§]õ‘,6zëàüKž{Ãÿí¤7z'0%‡5êßSsдþÔ–‰69µZÅåhJÜ—Ac‰¯¸@ p ôL,¨ašʸà­Ùùöâ‘Ñúfo{‡B#ÚY’  ˆ8Š(Ë«L’¶}Ò¾é©Ï~ÁÚ¬øôûîy䵿ø+ïz÷Ûß÷wÿ²Tt¿ôi×H‹¿é—^Í­·ÀzÑTd´2­ ÒÂx‰_Z>v…‘tSÕGny1ï¬p¼ýö#g/±d#·ùÐ%S!â|Â(.½Q¶E-2ž Qd0ýH,Æj+kÊ8vXJC©DÐ`³N9±³HSUµ³NKqÂ2.µØÉMpøT•õ„ƒàì•G}©Š”íZkE”"íœ ŽœyÊ¥R”R©­6ïV¨sƒåî—솫yo7ŸÜì½/IZøº¹âYðûÕÝ¿†ñîØ¬XüšGwšftxþ[¯XøÎÝý"çŒ÷v(4N>|á·1¢©8vté»Î®ÿõòì—·³VZû?síg^üúû.¾áÀÂKH??½ö–].Zg×Þyë•¿»ÞÿXžÂD ¢›” ÝDï£÷Ÿ^ôhj#‚­ }^&wÔ~Ùù©„bÌt‡=wÏEÒ¦,a©<:­žf™1Pã…Í-bs¹‘PgZK²ÖsÄ36wÍU7{Ÿ,øµùðûî;M°x¸¿ujG'óß^øù7ßøÅ·^àØAÄókžõÌ…ùE–Pê´n†¿ÿÇï¸é¦›O™{Ã~ð‹¾|æk^²8 ÔJ¿tõJgùˆe¶ª›Õ³;Ùlkã쨨œ¨ª^ó”Ù.¥œ Ä9 ^-I–iJuðÖÒÖöBˆ1žóýLS¦´jšRKp»TÎRJ²ƒ†´3dQs&t)ÅEu>¹àö1„b[J£HAEÊ ¦Ô8BCÎ˃˜èt7Õífï_ɯXùεí÷P . Ýzå[víüZ‘kh*ήÿþfïCk;ÿôy7ÿãâì—\Üø 0pÚÆ‡Ú¼ˆ*ï½µ’x‰œ®Õö W¼º’g”Zðì’`3èü¶¿í©'gñš/Ý~øS½yÊI:ìBõ¢ÿ´E0aBå–êËDË,Dí/16¥uB"Ð8õYgœØÒò‰ÍÅãi÷t5lo¬Y<€)q³X- ‚ ä˜ÉìW¢ºyêâü&ø—ÿñƒ;Z‚·¥4Þ\Ùâ×uñý¾wuç|9è·rßéðnžfYo0úÔÃ&è]Ýv¾1ª¤zÿ7~ÝgÝ–5”wÙÌ¢\j-’+ÑFÜuz“¼„Xµ=bw_zñ±gA•­„à‚åMi‚3½1Z{ì£u”Žäp—È9¥m"ø¦nmG¡B­œ”“j\¦œK]Ïg¬M¨ñ~µ,ÁL\že²–ÖY°ãP¬ËÚ—d©q¾Ô&úÐ"°ŒV3í[wÃþï:ýcœ¶®?þêNë*íJ„Ч~ìú#¿´SB IL…ÎI7a³Ö·`Ý[…GU03Ñ0@ÔSÇØìÅ­wX;~úµoÛu¡±¾Äž#Ì0\y±9üT­Ö:üÊþø6§{!T´2¶„!òi¸<üYõÅÿàð"™˜gÑc͵%Cûœò¾Ÿ~œžš‹øÌ>ÖNY{fîèµ3K‡0ölÀàâ MBTa„&¢¡Ìq’áV7[<È—¼à™OûÍïúš/½éºyÎŒS‡Òü—^öò¯úÂ/zö³Ÿõì/xÆ3¯½zÙàKV?|ï©÷ß~÷.•cÊ%I·*y¼Û²ç.¾þçÿÇ}~è“{ôÞ»V“¼ÃhJÒ–èΠf|`1[<º M,v¶Æ‘æIÒbiA“lûœ!\PµLÌIHÖ)“& Ðh)oíAW„‘þHf á €=”0âí|ʵӮ`Úà¾DÒè–+hm%,N$JI^d1ƒ@Y7Þù8Ϊc /G>ðm»Î[¡cËßéB¹"izŸxàg’ëÛÙqmÇ{ŠለÝÈ‚i¯üDHΈÆò‘ùÎÓçf_&G.~£TÛN) JRqïÙ_Þ~b×ë =ˆ¬9ëÌ­Wýf ¡wÿxÕ¡;´ü-ÒmbDgÛÏ)Šk²0²ÿ9»löDl’>=Þ,úx…7¾Åž>ÅÎÈà§R¾HÄâ¡+Žž¼yg}c8Øqt‹Ëô¡N--4ï°·"Ïl1G[³º˜Á‘+_ðìœ}äÌGïz{täÈœ-Ugv%˺–vyº¸zñþ²Z…°<Í8]dbžŠ„å#Y~øÝøÈ{?ÚSri~ö–ÕÁöÚøâšºñ؉GOmv––*ÌΟÝ^âÉõ7ŸlÏ´(+@M©®ëà›Î¼EˆPžcÊPÙ¬ ±ªj˜`Œ3-uSÉÑ ×¥´jäl'«œ­›f,µ‚P‚PÎÜ7NNÀÖË9+p¾#›”’"壪iŠ&Ú»hvs®ieÇ-|ín~þS~csâÐ[ü–ºLç‚Ì÷›}úÔ+Ÿ}û¼ßCnºâÕÈ£T¼ïì¯î n£€—së¶Ð~æó¯ÿçŒý=çþ{£Ö‚2© Nï9óã?ÈY'…θÁU~teöKîxè‡.lÿÙ³®ù«§žüßµº¸› æE×½mgð‘OÜÿM)_òÈþgäèlJßû{1Á1ph_NÆÇm@{ü¥à)û÷“¼ÎŠÅl{vtü†#[kEÀ^Æñ.¸Sx˜4Úxœ ,«ïv‘hYKÍ»ê¦göÏß^?ÏÒŒ-,²r‡Úþõ­k¯ºâÀ—Võ¨l†F×J­Jm¤÷UE‡‰èIÉ  Fÿç¿9¿´0§ì]ÏlÏÑV•×϶ŸX¸úiG™˜¡„#ŽAfPÒ;P4T”PÝHï 'ÔkÃ@æÄ;‘p-BÞEˆ«TƒPšx­[ȤÇB)ÃÝ[°¡Š¡sŠ06Z äfBÊZŒØÐ¨½Ú‹„ŸØø# uKC×ÑÖàvBpYŸÉY£Ù¸y8‰ÏvÔG‘ãŽHŠFæVÁÌç…`ä÷!äMÒõ^õÆwc”â%Êõšj›b±kçLj5èQØ^áE¯6£Xpœn þ‰bJI+æý§$t<½ð‰ÔýÑHô‘ß=¶8ã~ZGdjù‡6ývêÌG.&*-Ú +Go¸èì ®çŠÂ;‚iq3VMg”ÃHÌÌÛF“Z‘jägEÄF"!fn™Ì.úÞ¦iÆsG¯Âº¶õœö­'#=`­™¶¬jÝ`IÐÛ3ÝîìlÝH+Ò't0²iL+” ÒjÓÞ^™gIJ‘7N#Ë­’J6ÌøNJ@t¦EIbŒ!„ÄwNYƒ4aÀŸ‡UY6&˳ިI(!ŒRŠˆ§1^7‰÷ÞxM‰Å–"8¹v NX?›¤cpí`¢SB&qœ“<³ÅØ"/ˆJ²ßj³s6æ!âhQƒ|'Œ¢B~ƒàRI yáüªíC¹Ð „PŠšÓte\ d½£K nË×C ›#«÷%ä¼Ì¦óÜEYœ @àûÁS«Ðg5MÝ¿öŽÄOSJȄӓ=qˆ§ÙìÂA£«q­1ªEyp›Ñ”6ÉèhbhÑ-–©ÜXw£A߸©jŒ§ÌZ#°³ Êj2B–òÎÔZ•íRJ–µUÆyçHL?E™ÀÉ,w”ù43Þñ¼5`^d@Úh  -U]"gÁ•yÆY£4áL¤©s6à$˜1®«ÖÆ"„‹V‹Ð>FH$ÂA>g¤ 4PùÎ×JxŸo(© °`¿ ½2N±§„'Ì3<Ðv]ê~#ƒöÉže5È¥KD%Ã3˜hë™1NŒRŒœv;!(Šj+Aé™Aqá|, X;§ÁœŒÏ1¶¤„QœÂ\3#ï‘`=âÎJãÆÎ›hÒ†°Tp=76@OňaôŸ¸1?±àGc>™:÷“ìtû±6£}Vàh;šôíC!ã([ðIÒtaùØÔíØè’âa†@Ó.Ä$NÄ)é¶RNͰtÔeňóί­ÒÈj¬*o€Â©±f0´Æ4º±ÊH¥µªTU«Zd OPplm{Š˜` ;g”ж=Ó*f±sN)iÁØ:£›ÊÊÚªF dëœi̘R2MFéhÚ*ï¤Äˆ´ç:E·£”’9m b‡0eÎcÁ Ä ‰ ¥Ä†,'F76°vä¼RªÝ.ZEÕ•Vy«µ-DÂ)m”ks¼Ì©ð,¥ æ:X÷á&©q#ÇÙM¥zÞ`‚–rÚ)L ñ“è\íFË3_vtåÛ‘C»©ˆ6úïÍø±åù¯è´ž¶3Ú«>½²ðUœ•¾x`þ«N¯þžqýƒs_»›Oëßïùb*°.v?oaöEÛÎþ÷[Oüú‘Ý2‹þ±¿·›±ïĤ$Û©î9»öŠ‹Žÿú‘…¯ß|LÙ,=º›Œn»¼-ÅMÂ*à-nþçll¿ý3(—ð¾?º"RvìœîC0ö¨9“ŠL‚î›Ókú¾/E/a sQk7“åÆ"‚‡´ÅÁÉĸíá‚щ J¥¬U JL*7XjjLásk­)‡N`­´ËŒ©¼ÓYCg©Ö˜p ~€˜ZŠ4A‚g1ãÜ*íjwg²VŽèÆ8ƒLÌœhŒ2Z†x9océ=ÕU:3Ëx$}“¤Yê…ÒŠ‰„ bMs?;“JmÎoè"KfÛ|\ê›YFçƒf—' g4úþN M¶?ÕÛÙUcé=c'WZœ«ÍVß0qMÇ–¾w}çýŒä'}÷zïïQˆõDí†*ÿû½_ªÍÈZ%–sºÝûÀÚÜ{?ÿ¦÷ï–˺¸ñD„CÎÚêØâË[Ï/Š!t±rXYø¶JžU÷œXþîG×~o¶¸éÈüןºøÆ{Îþ µ-ʱ 3)š…G\½âN·þSÊè“¸Ñ Á{ÙÏ\¶(à=‡(šDŽ{âÜÀ—Éë€èLŽ„`2‘õ1¯å¸-ºÕXBòV"C\M¸Ã”!m‘W5ÆØ8çAˆ'.A˜8]ÖÙÆ76C¤È ©=E8颡CJPÊu0HF}ì­Óˆ:Ä5SJ“4£ŒûX–:F ߨʨ y@€¬µ€Ÿ€™ˆ6ã:Iðôàà™°pÀࡌ1#…r»s.Mò¦jŒñ‡fZ9^"\$0!0¥,áÈ»²6÷mõ.ëõJö[Iç¼ífl±Yè`T‘I^ ëË™öÍs[î<ýc‚t¯?þËâzëÊ3ú_¯;ü³Ï¼öm”d$–F(¡mÁf,ªœE©XBžµ¼_ݽÕû—kŽþìm¿êÚC¯Â¨•°Ãç¿âÜöŸ®ïü볯ûú•™/2fˆ0ÚÝR»È”5¶‹SVWœµÐ¾‘ýœÒÅ7]ƒ”ã*u9xòxÉövw\ _9 ›Ç)¬ÄGöLÛz‚œoåíKXìôw²¼åÃÞ=Mb‡²6¶A NrÎ:À¨S``Þcšhm°(vZjœ¶D’º1ã$aÞzìÆ½ê¹÷ÆZ6M?¬*@Zí6gÄ;ãq¨S B7ÊZ­j¬±À¹ÃÏqŠÁlSJZR®ld‘&1•QSV˜ÞªiuZRÙ¢•õG5JèB'©‡õ#C7îÒƒ§Œjmš²yhkxçÖÎ@{çðHêÆXë1cläÔ¥Q3’j!Ë8‹¬i§-~;Bèèò·Çœ9ÇW¾oµ÷^„ÒƒO<ðÍŸwã¿fÙÁ2ŽE‚²äèâw¶3²t¸„Î=²öýñgVÿ|ÑŸÑvppáË(Ë‹çvó[­ÓWü¡ÛþîJ=rý¡ŸjÔ)cLJò/Ò¶¿Ñÿ÷<9Þé^½gä|C&èÃVÔeR—ë³ØƒÐeí±šht|˜œz"¾c´OXŸZb_œ¨@[òc)¦uÓß^k·ÛÎw€_lÃáz´Aó‰1'+#‘5Îç•UªWD€¹ÅG(EŽâFëFbN²FªPdÔxeÂÿ°AA%ö EPçPœÑµóÒ©A× wM<ÜŠ¼¨êZk­´æ6¤ÂZ)ÃHjÍ”U¶1ŒZí\+[•ÕülÎ^»(ïÝn.žÞÎ8Å$v®ñ>)!¾²·PQpÈYD0YéQE´I(FÊéVvòàüW=ºö§öbF_yhîk«æBˆ³dgxñŽ3ßÿœëÞé‰hÙ W¼ÂkùÊ}gqgðiÆ2xhF¢ô·9øÃÂ;EIzÅ·o ?r×éÁÞÍͼx7y;¿ö¶^ñô+ßúù7þ»u%FìîGƸíÅîËo¾òýëg¾ ?L-p‘¿ýgµŒú(˜#|ùN—g¶ˆ&ž/z¦ÆÕ˜™ø÷T ÿ /a»F&Y«§´IV&”ÖLä=ãéæÅÕµ;?tíó^LóY£¥ÎaM]#¯‰`J›fØç‚ù$buÚÊÆ“$¼‘µ×šXK|Ì`AAÖjƒ0\Œ¥lI`%"0I¬dÝ(©IÂޱòªR î2ž2-ƒ0O©5QTÕ `ÌW!|JJ‹|#çZö~»§*…”C ¹F6Sïý‚cÔX[æˆ 2ŠÛ{ô€ µ³Ãá¸Ö 'ϵ­>þзTåiãzÞ³‡ÎÿæÅw½õỿªjN'|©7¼íƒw}©óµ¶å‡îþòÀóJ^¬åYˆ kQ~ïÙÿ·I,q…ÇøöSßã]Ãh§ÒªÙÀ­nýõ¨¼Ç˜ñ¸~øC÷½h¦x"d\=*åZBl ?ôÑû¾M©uÂwQ;ûÏÚX¤^Xð#_°xÝû}n0ô{”D`sªƒÆémFñrÁ×5+ŠjØÚî¯Ó$i‹²ÌàkS^u nÍÀ¡”ùÀŒyš¨ªöÖ ÁN¥¬›ªÊ‹–±F×O8§X[¬SVª[o‰ßÃq@¦4&' eüá³3žyF~­õÁv7¢ÖÁ4J NÒ¬Œ(¡Þº0y©RÖš†'‚ Á³D÷ûÈz†xi %$eÌ?¬åXË KO¼—C?í©öšÄd+Ⱥ˜É’ДÒ,ê¬Nl3ãýÁ§‚à6ÂÔ™jG߯1±ò4Á%H±Kñ;ŒÅht‡Ã.¨DŽ‚t‘²yKQ‚°Æ˜ŒÊ‡n`0)8K'ØÙáøN¸~ ·µóA„M(“KfZ-›S /`’ ì˜ÿç%ôI›&û‘ÁØËÚ]œÎYŒ"WßûOÏ3¡õé:áÉ´ÒdHÏŠŒHÒQ92ãÑUÞ*:3†)`vÚêfÝä '0ÒzëõŒ"kY"†(-Ìx¨š2¬P²yë¬ ÙW‚\îÁòã ¶VãÂl¤œQA¬5t8 …»Ä„Z/À@½U$¬”FÈÕeƒ uØ6ZÂm-§,MgY–j †£ £)ÌÏ„0„{eÝ(ëàôŽjíž?PBÔ«AÁ,ð)giÂkm„÷óYªjƒœ!ˆ[l ¢,Ô¦ ‹1NBÞgFH,^éC–0CXA&vmM@àFBñ$ +p"àbâ“!"Fò0ÄÌp>9 ìB±€ˆZd¢úöŸ^œÂ-ûCB§ÈÉtÃC‹Šf¬ÿ?鎴q߬ðqbD!æÏl=öSʲŒ.8rq°ÉEÊ… 4#TÀ^.X&H4–{ça¬&è1…‰–uÁâY!›ÒÙš ahžÌå4å ÖjmV’ ¡óÇTžˆÃŽŽk¦r@ؘP£ 2†C1s‘/˺*KÂ@c–²*ÅÔsE ¯ªjðhPÚ45âf\ ‚rÆÆ•2Îei:è—c‹D(!Æ! Än…󊂉”b”SÎÒT{Û(Ùx3A¿¦ùÍq°8ì¥$ÓìÞÓ"!=Fz&—׬õÐzðþÒ±>n»IiD?¥ÉN~RMÛ´Þü™D¦”=™K±gz=À #‰á'ËÀO£„ðåªëå¹Ñê÷–¸P‘†Lfð>?Ýéæg¬Î¹¢Õ]>|üîO<Òïõfó”"’Â)£U ¼ÌXŒ°øÀ[amá B–sÆhLjìØ8ÃDâ±—aÓ„%„;DŒt˜"ÄH_·ˆzJ8œ@\œ·Új¸‡-‚¾JëPÌÕMÊ-}AkÎYLåÜ鶇ãqƹ1`NJD2®¥rHW‘²[$!)%gTÕj{\Áo…ôuŒÑ`B{HqØži­à}e*#SʼÑ1ö$‹ +'\²&^`“kà Ôec}äA…¯Bü2ñ¯ð.ŠPXPbY$ØØ#HÇÙ{8œºw4Êpd¹0¶–„PG‹á<WðÀ\(¡é±s‘U£pYOü\Ã()J98 ôï÷¤ .ÀÅyÿ¹Ö‚i:— ïÓàŒÉ6Üs8ÏcOâ/ÏÄ—UÊèÊñ¼ë6g±Nʆê¬vRÆÇF9ó³¬cë‘.ûœ ‡±—Œò$K%ã < ¥G˜ —aŒjJp.:Þãf܇±¢<Ø ¼Ùm`>‚ûa„a¯ËºaYª¬—Òpçšrd4L’§²F£Æ)äQ»S0¬D„3ŽuÝxf%Uè¦b÷ŵTyÁÐf©JíBa¢Àôih¸B ¢´qÞ7ÀJª1è²À×eí 1{xä,M¥Ìc¤jo üÎ#j°7†45I3@n”D„X‘q¥¨ó6IížaÕ£FFiVàºÁŒÃH*Vã` à Ìk•J]Ó@ÿÂ>äÒVUØ;¥­••FVv’ÌDî<6Újm¤vÆ¢¦7U£”SJWeí0 Çý~%E¶Ø–R;Oû½!§\[¯ÃR¢•Â@à¶èY–$YŽCBÄXÈJ)"5²Æe‚ÍÌ\Р³€$J¨-¥« z:¼(!9§) ñ„Œk¹>®WÇj}X*Ýo@xi§´(ø|[t ¢x\YA!`iæNžà/þòl°í¾ÏV¥ù’¯,N^Óþ—$Y‹!C¿æ›Zoý­Á§o«¿ë‡fz¸ù×ï|éWãü‚/içùµŸéQFáÂ1 É ´8ÏV5¡¯üºÎ‰«èUŽ_½äþùïêÅìó¿0ßß ××}–0"Pg–¾èË[sóÉ£KέÔv¶+^ñÃóª1ßó#­ùY±±ª_ô%«®/þÒ|ù`rî¬ H›iwó¬e0à[8i¡³§åîl¹îÆÖµ7pˆ„÷„rôˆ‹Fæz¹ôrYŽ.²×C¦ø‰îŠjêtŽ ü9"6ö#R(¹îúg Çz[›ƒAOEÈ`k@ÉrÖª²nö·W5á²ëfÒŒ†`|÷Vað>Ç”+k-!Š0ƒðÎÎv5êWåHJ9ÇU]×RJ=ØÞ©GeUËÁ(Ü“íd6ÜÙTµá”9Km¢Î`¥”ç‚Õã#¾[¤J6ãV+›É3N£¬mF\pFøHj vV_abCõ"£ÑF+K)Ÿ+’•m'´”š²2“· J©ã)3Þxç&‹¦SΞyØýùÿ½á×z'®ÅÏy~vôŠü×që/ÿlçµ?»£¥¹æjþÂ/N"'¯ßýCÝ+¯fÞã/ùÚDµŒHÑB¿ð¿fuå‡㩳¯_ÒûÐøýž-,Ò×üÔÖ_ÿ™üõŸÝ<|5Öêã¥nüéašÿíŸ÷X‚v6í‡ÿ¥þõŸYÝÙöOn*%"˜[«Zm€³Š‚ugð OÉ~çõÛï|ûð×~{ý’yúsÄüwß]úmoÝþÓßkª ]q"ém˜koÎâ5³÷ß3ºã*Í€Ë=Á(#»œ /Gæ÷±ó=ÛB0}L {”í&VÐ ´ˆ þܪmDn‰·Ú¨ÅÃGóÙç¹ïšk¯ŽG3Á²N650õzL°B$Ù¸tˆ¤332ÒÀ€BÈCi5¬¬±Ê4²®Á^cŒƒ˜Të³Q.©«ªVÈI"½1žlõJd-Èè²(Šá¸"ØQ̪b”˜EÝÙBd£ñÚxæ0èj·²NÁ‰óGW}DáníØ ­­gÄ!7ѵ9‰BfV°#ó]Al¿ª¬C­T0ì¶ú&KãØ` ñ!ÅžúÌü‘‡Çþúæg¦ßú=Ýî,ú™×ÎþÑÿ)ßúÚÑü"{Ío/¬`–à¯ziëÏË8Ã_ýÒÎü<¿òZZÑÍOK;t`%ùù×Ïýч‚âën"aoÿý±¬è½:ý�ð»¯ëýÎk×W³ŸþÕÅÓTO{VûÇ~a¦»€þøwFkçñ±+ø7'û'CåüÏ¿~醛¹l<È“BŸõ|Ö.(²îÇ_3ÿ¶7Žßú¿­ô3¿ºxÝMé¡ãâ£æ¯ÿh(~ÕOÎ\s£¸ë¶Lˆú/,>ÿ ;gOÉç|A™¼ž¨†_ý?ßò}ßü¥ÊL\Q&ír›Ñ¾,Ô§f°§ÇÓ±‰+/ìý9Ñð%˜%⑇úð{þäØÊÌüÜB;ËŠ¬¹lUUVV–Œq)•,KÑ*’<·ÞÙTÃõKª"G¦,›ºÖ@ÚRkޕխ"—ešeI–o÷ÇØ[O=Ǥlüêö.[Ë$M±—”2‹<"DŒ0û8v3sm\£BÝêºáI‚8QÌ’4˜S‹Œ'c낚‰œCõ¸úû»Ö?v¾OAÝ{'Þ*™`£N"æ»et£?î—ªŒ¬æ‚w‹4åV°ì›–¹ÚBÌ*ryÓƒ¡ÄàR—¨QD(a¤¹´¥œÍu¥%„)äÁo9$Ë Þjïhšs”{ž‘$!Ui¹ œÿ”6e€_‚ê]ƒmš#9ä+ÍX/´ƒÁ%\)eËXZ#$ãaHäTWÖiL„I3_UX0A¨¬KXàó‚U•áœ2…eE¸ª,iÒôX‡,zy¡îøèû»“YK;ûøèÍËyîãì<ÓÝGZ—‹Ü„ÑxÌ&Šèc‚è.¯UôØô¢dŸ±Ù:D"W÷QX™†e8ØØ—9»PÅY©œ¸ò)Ïù’óŸù¸ÈÀ„sØßiÛX#•×£Q™¦ åT[m¼ËY¡ŒñNcÆÜ„uãlš(ª+i‘÷•‚ºêz+µ°0;öX§®µ5ry.O!Á-6Òg ^½DËfa¶%nœ’ÚÔï´Dw®ÛŒ0ÆyžuŠÔé†25Z Ê1Fƃ!?¨ÙÑ"Ccä}ÂX¸±J[{asØo¤uð…5.å0.gmRð…¥ùT4Þ•AÑêt€ÓÔ½–Sí0a¶1„$„#B]b¤• `@âqU,!S)K*kK¨o*SJ)F¸ÁX¨ÚâÆaFF°æêÆ}†<ÇØ–#xkjƒ¾M>b²ÏvtôÏ¿Ü òòR”xj7%Î_Ës¶7ÖΞ¹ýàʲ$ÆJa§Œ*±GªV!é­›ŠS޽×ÎU#ʰ7;ϹvV¤s\L2Æ˸@Ú qUgYÎÞé ã1ÁŒØ¼àªVy;å{#ñÆ9c¤C¶ÓnÅç “އbÁ#Y[‡»<ÍZ v6€($Ý[¼âýØ0A™H`&ci•R[« qÞ–ìF‚3˜ëÆRd³”Í.´V[uát±¦±ZdÈÞ49´~|¬Õ §E„v‰–$X5Øǹà¹oÆžq𦤩á8Â/¬¬„¥s€£;Kuƒ)C"µªfc‘ÃsVI2G·.XˆiÊ„' »X Vy‹`YÕ¡òG8Qƒ9-‚4’Wб™æ=‰YLžV‡sÝ>ñ¾.~ª "ìÞë4Sp,•câ"¬åpï>‹Ø‰ûòß¾|¡Áð2³]ZÏýàüw›¦"AÄ€/:`H5 ¤!©¥€#íœ5=.ZøÊë3Èy›fD†RÄ„úÑ»[+XÌØÒ!<à#ÇX»c·7Øúzs͵xí¢ï ›ã'EÊýÎZ½¤O^ +eæÁ{pÖVG%ýZ};A’œžºŸj®8AÏœr[›½<Ï`²öªkíêÃh~™,ÍûFÑ;ï#‹¯¼Ö·-séRyÕµ#èì)¢;vÜ#7õ#^F¦‹9BÓ LžX޾_â‰RõÄk(j•¢Ç|&ôÇÙ´?în¿ç:ôÀnîrqè²ÉV؃ëW–޶ŸòüÁŸ¹ïþ,Ï:V9´[m]¬|ÍSpŽuB8fƒ¤Ôíªì«ºñEëÒêª'ÎSQËlQJ:P“¤×µHj¿¾±‰OyŠ1,û¶AŒgSÆc\€ÒÄçyaA´w³EÀ§P #(n;ª.‘9XD%‚1lCƒô (‹¥=(E‚„ÑXR„:›etn¡uôÐâ⹬Ó&,Ñ^Öú¼À÷|ÚþÆÏ]òžÕeÿÆ§ŠŸþYgñ§>^}Áuû=Ým±O~¨ú…_æ³Û˜ø¯xYþÖמþyüç~mågàœTä·þhé7~a󞻪׾åð ¿(ù·÷_û ;oûÛ•¥ Áì×zí©Ïf¿ô›­O|D½îç·ÞôÎyíñÏüЪªôÛþîø§?ªÿñoÆ냹4?O¿çG—_óä—æ“ëéÏþÐöúºeugü¯¿éÀ™‡åO¿rëeßÙþñ_žýÕÿº3,›×ýÞ!UÛÀ.ãJÿ'f4´È¹#Ÿ&xâ6G"]öÉ£+Ðd}ö7˜Ë@0*_ŽÞ\vq{Ôo¥”)Uæyqå•W-/xôÜù}äC„ L¤V«4Ø‹<“„±|BpÊ…·µÂÄŠ–bÖYÕY˜ÝÞìaê‘Hå<ÇÃÊ]I0Ê—R9gŠ„/Ï·:Efœ‡ÚCÞJ.®–YÊò<É(ø8;'$jÚ %Ê(£A*¥Þá`ˆÂ ÇäHÎ!R§§˜Ržt’Qª@FrŒF‚› vÔJ¢>D1jbå@wåðÒüÂBZäTPç)r@èlRè7_½vè„øÙ×,œ>eêû/½÷]É` ýÕŸí\:‹¾ük3XSruËó’¢ð·>#{ñWë¿þÓ᳞7¸ã6÷ê7tv×ÅsçìÇ[ógã}q<1ÀT˜s ¡Ìbj€9‡¼Å:ËÄÿi@():ìoÞ±óª›Þ—ä?ð²Õ¯~ië[¾{öÜ9ÀZSŽÿøÍ£µ5ó¿~!IÅO¼âÒ[þ×ö¿¤‹}ÇÛú‡¥IÙ£Èa`O÷œ·ÿÃdêŠoRxk¢=žs Î „補1áìèòD.“ûó{}vàÉÄuá—)&‚ ¢ŒÏÏÍÍÌt\ºóÎ;îþ̽Z™ºn²"åŒya­)ORÌ–ãF$Ùh8ôÎÀªB)©Ç¸ û#5Ï™¦ÔÚ§‰Èót¦¶‹S¬´BØ'‰(«:Kxšð™NŽ¡` B^»ç{Z*pZœ$x rKP¸'гT´Z¡ÃÓD8zFõ¸i#›ïdGÍ­>Ptf!ÀžD(2>²ÆÐÖº[_s/ýžî‰«ýcüȱôì)=¿@WŽðç¾8óˆL•œ;>öã›oÍ_òÍùûÞ%_ó3;'®¥/øââ5?¹ÕA/ø¢ìß²uúÔLš{FP»eÛÝTKbŒ)[œGi‚ARú÷¾»>q"™_qÿð×Õ·|_;žÑPfŠÄ\ Ô"´ë ó”§eÏzvKY÷ÜÏëÞsG]W¶U ¯~ùÜ[kStý©µ“+ £;uf4òd×Ý?Û¦•åâ:7…HC±Á9úòù7¡ø¸½¬÷µÉÇ©ÚæƒíÌ+^×!mŒ÷vanîó^ð‚Å¥ÅzäÜÙ‹Þª¦VÕXʺÊól»?è´»œàVQi­ëºÎ‹ÂZªKe´ÞéUk[£4‰`iQ4²i{n¶m½ßî[ÀÀa[ 3iÂÆLhš¯ã9mÒj2€Àaá¶]ð^gAzña(ÖâqFÂÅ{ç<€?0õïžàD0Òmµf:Åü|kùðRÞna&%˜ÒH¸q…SÒ/äO¹5ùÝ×î´òî©ìÚõs¿1{ß§MUkpá¹ó!ÿ__,-3ÎÍÂ|ñßPÿÞÇßü³KëÌÿ¥>´BüŒÄˆ¿ómã§<ƒã>þ‘&›±×\-N^ÍÿõÇoû=ñWÜ_^â÷ß3~è>wíÕ9Üßöïù«æË¾º]–!a™£Þ©J:ïÈ}…ø­×ôó5<-Ð_ýéö+l6Mý¸Ô_óÒn·Í箓ÄY½_ü·ï&‹”GO‚èÛ„7Ç×4 ´½“)¹X<Éç¹ýôSèxüO†®Çˆ0¥„)댵Ô9ÐZä](Ô®¾úªù¥åkn=pÏ=£^{—ðÅ„cý &0ýÜùõa£ÎÄÙÕUFá\i"ŒÒ mŒÑ°lŽ^°ÒäyÖÓ42ÓÍ)¶\pàUJzk0K‘@=#Â#ç£?¸ÑÔÃO’¥FE}ÏOÈ[´ÍàñM à?ÕÓ ïcHC„À»¯Ÿ¬üèû*é"ŽÈ0|Šük‰ÿ°wŒ¨x,Û†ujrN|Ø¿Hí+²M “A„H«&îä<Ž)“)uÆbççfº›oÜ\›kêºßÛI2Ú4£$ל<#ƒvû³la<–U-™(¼uœâ™6•JeBE†‰oµrJl¨þ,ÆZ[£4q¬™:“âÝsZ¸g˜ Øs|>8‰÷Õö ”„¸õE–µ $Ñæà®:rðšGÝÜ:xìÊ4aëëæ–=ÀëÊÒF×cçÙ—|x’ôI{M}ô òãÿ}VU”QTÀа"Ô!O•ôMlÕ$>LÀy¥±°h¼³m)Ù¬Ã"Ë&”x˜üÖ ;(×k•bðÎ÷ùö&(²®aßãðÃÛ#–Ìrî ù؇JÕPŠW×Ç®¤E’U¥v&Á¬ÏŒú=ÿdP94×ʉ´=EW '‚.“ÛHçÓLtd’óèrå22úé1f4žºc¤hqÖ1›å|(}A0ЫРk¡EÕz*øÜòR=åEÖÛÙ"dÐ*Úu]†JQŸqîµ%©ÀصÒÄYç±+ržei#k„dÈ.Œ7Î*ì£Øá8Ó@JŸ”Ä†Ë ÛÐh´£Å‰JöLilêsN0¦ˆ¸ PSR2F&˜>²›¼ã五˜ó¢Óý$Í3‘dÈ',Ëû¶‘ʼŽëúäg0µí®€‰b,ñ‚‹º®xš1.´ƒð"…,GŒp/¥×ÊIaŸ·VWÒvºÔY_×^$(Iˆl`ö97ù ìiX qª°ÁFh˜L}—"•GJu”{Á“}xø÷9Þõß r1Û5nµè±ì˾nWJ’L55ÇD ,½cqáŸx¡ã'#‘Tìc úDeŽkæ+7aåV¿Ü÷ øãìD“¿û—½(ìà«M0&öíå‘yÊ!>ˆ8áªhˆ 2‚’zbI/4;»´+ÈzdUvhyYÊFª¶4¦¥ÌÒʬɇ"m-ãLk´§”ÖÚX‹œÓœ¦h °(¥Ç~D×…«ø8ÓŒuF›® Àr1®‚Lôbbz&AQ‹>w‘öL»5?›ˆSÒéÎ ì)a|l\§ÈTÝóXKÙ0Ì"­;à¾À†ïøÄ0ˆrº4K+ù57¹³§Ý…³ry%=v%q=zJmm0tÅI±t×¥#ˆÜ{§Ír²»ÜþñºÝe×]/.]4žVW^ “"Í©³”j»0æ ì|NF;-k‚ˆs&IñpH_ûÿõ=2Lg»Ï¡ÇöÞϘ{?Sÿý_dÿõW®ºÑ”CM0‡Ý¦Öš'£EÞÕ çƒ(G$:›Ã+Œª‹p ÙÓǦ9÷Ç;?Öµ}o–ïŸ[Ö:€d½#ÐàÛ©^NFaƒ¡$> jŠœ€bÌCªŒ4É9KxBœÕÞS–d‰ ‚³<+æ:ÝÙvJäR?§²ãª*kX˜…`i*<‚«ðÄ…ûE@”‚'©`!;±!€îÂÁr°OØ4!јÃÖQ2:<p9 bÂyÌü‰˜Ç9‘Ð…™n§ÛÍB\MžÏ L(IR0Jfg»3íÙ¹̃æ¶G˜1ÜÛöõ¶Ñ_3ú…üáÿ|æöêïÿ²úÁ—®¿é7zÿåÛ/¾å·vŠ‚ÿßßì† ýÉ[¯|Ùú_ýIÙ™%ž–?úë¿ðckÖûÛ?Úü—o߸ûÎñ/ýØÖ_þÉàÓ·ë_ùÑclXmIXºbµäŽ>GÛ3#¨ÈD ûß~põ_ßS"d’„¾ø _ô?ÿçëßõ®w½÷½ï}ó›ßü²—½tvòq?p_õ?pîž;TÞBÖ©@â6Š.þÉH„DcšÚ/£}“®Ø >Z2÷Ô&ˆz.#÷éÙ&’? óxg9nF£‘÷†Ò5c$Iàâ4rÌWÆÂ/D…8Î/å=Èœçiš§I"Ò¬(ò¼5— ¥ÔZ«•Œ3Ba°&0e lì÷®»*KP"C#„YköŠlÂÔc×iF¹uÞ[ø–ÃG\€°'a¤ z*&fŒSá6#"Tb %‰èvgŠv›%Â9—$Áã ‚eQ‘»_Í-ÎÎÎÏ8¬‘… ­üÃt×´ù5ß$æfÐ[þòàÓžK^ÿ˽¯û®ÖüÕÊ+jñXÝ÷bþŒç·ç+_üµÉïýfgÛ|àŸª•Ã`zÏ»Ëþ™Ù›oN_õ[æ—~cAk·¶á9)ŒÀxƒ1d´ç<óÙ[\¾@ãÒ¢ÿñsÝW#„®»îšüÇ|ÿ?ÿËýØÕW}Õ3ŸùÌW¼âþçïøä'oÛýu€_üÑ­s§]š²}!óQÔÇOp#AóZ@˜¢ Š}lûÝã;´½ÄôéSRŸîƒ÷Å]cœ'ÖâºVãjD˜ç ÔÆsƹ'—5Ê(“ ì÷æGÈÛH v䘄C&P»»/A(M’ðkzÎ8Æœà\ˆ” êS²abï„÷$‚*1Å;ˆ.eD„¤ïÞ8"±TPê »Å@fo}¤pûÞ[gÍñðn÷&g$Å$>;Áy–ƒc/牵–1C1’4q”‰µgfW.')¶Öì³±DUœ+ KiŠþßZTUEâÖ/©w½½Aȯ¬,ýÉŸüáâ⢔¦®µïyÏ{¶¶¶^ò’—ÜvÛm”RmÌ[ßúæ~Á‹²Ÿøˆ¹íc:k{*ý“–×.(ŽA4˜Œå>þ9êèúÐö(}’ž,¾Ã ú‰CD[+µÝëŸ9ýÀÇ>ò¾|èŸêzg¶[äIÎcAüI‘£IµG2èïÔƒuLH3&ý{D`´Á°æc)Oe” 4ÉŠ¢M”Í)§”Æ’ë“Ìs–3F 5RbëdU›Z;ƒ­6įDg< ÊÃ^µ ÆHðo·@Ò@²ŠÊiôL4"©µ.”5À…9^cÙãøˆ ž-‘t'0ÂBx =ÁΑ˜dÙ¢˜_8Ø_š§4 qîÒ=NŸûüÜ?Óe¿ø¿æ–WÒ?ùýA’£×½eyaAÜ|K:3‹ÞýŽáµ7%?ûk‹Z¡—¾¼ûo9ðëoÿš¯oo]P,qŸ÷Âbfd@­è çœ)É¢SŒýÿC&Mé'>ÜloH„Ðþè½êªk˲$„h­)¥ï|ç;wyüÆÆÆW~åW~ò“ŸL„ Œ¿ú5¿HXÿþõ½ã0]Š&‰'¶±=æ„>KuÅË3¦G3nìtS|fâ¬k¬cŒaÄàfר†5Cš"uôÈÁÇ®,Š6¥Ì;àíŠK„îâê±½¹°0oãZbõ–]ØzK¡ ™¾¥=ͰwѰIV .XP Iša$›²!gIZC.RdŒæJ™5ŽÁ$@Ûèx+•$”fŒk$ráŒØ ÁD‘*½#.7S9¸™˜ FôãÜd]äL$YÆNO¡ÁHh´å\X¸BB‰a‚§­v{~!á\Ä#)ñºDÏû‚ö|±+ǨnìÑcù¯ÿŸN#e’cݰñ@¿ü-Æ N\–æ[¾gŽ1[FâÇ_M¶ªa¯~ÃJݨa_]SrÃS3ÝŒè*ø‘""#ÔÚ~æv qOyúß%Û³,›jeKKKÿôOÿôÒ—¾t÷}—Öÿþïÿ~—îŸóÜç=ýiOûÄ'n;}µ³=[d!I±§™'^x ¤(šl§ÚçÄ¿ö²:-ûÍø•ŒN@©ZL¹G,ØÌMU6Ãa¿oUå ÷N\qõ•WßRtÛœÇÄ#À½È&4±¬^ºT¬­8yÂ!êœ5FÀ¶#(€Cb[ (ŠiÌ÷d­y×H(ØR—%Æ8K3K°jÊ…7&¡¬[´•RR)!˜ôVI+JŸÂô˜D…ó€ÝcLƒ0ÈÍ5êàv ôGÃÛ›Ép)> 3{‹¬qJšZjmd‘peLŒ`‚ÅHc­i˜  ò*¥bDЙùâÜCs@ŽØIiꚀp†Ün™ÜA„hL]Y!ïâ:ª0¡!°¦8AÈ whT¶=Ïød1ŽÓÓÆr%æïã–.o!˱;ÿ(ðŽo¸ùè‘#ø‡oÛÜÜBDª0Æ´Z­g<ãøÀ677wiýÝï~÷sžóœ]jß%ôU?™N›ki ™ÔP~Â+^Dô$2u‡÷ s ðè`4åôÓ°ÑÐ3­uµÑT”@äÈÒêJž?wúÌ™»´¬wz›©/ýÒo& ¯qá©To=â¡övúãõuUU4m!œÇã°Ž{ 0ëƒc ¦ÆyB㉦è 'ÆZÌxVtêjd›†æg)ö市b!„„søÝ ú+å∡ ø ÀŸA‚ û³Q¢\ÀBfú1!1Õ¬Ò€AÎ(Û4ªQz c RÊUÛ‚P‚è4O„÷6,)YSqHTŸ·RE¹ØkH¥½:=Â*<4Ši@ñ©õˆÄ1Å,rÐ;ÂUðèÓA‰ö œÇL¢qx³MÃý9kWìïÄÀSpUk„ÐÂÂãì¿ÿ÷WŸ9sæ³ù]Ø¥õoù–—>|êÔÜÜBHkbÃÔ'@6P› FÐ5 ‘„ã[¤õi‹òF´‘ÅL™ÖJm¡‚Rn @sЖã~ÎéÜüÑÙv«3S8p ÄÑIZÖ€F{7YD¬s„vQ7zkc§ Ú"‹XûÞ˜ €>îÈc´ö΃«®f˘„ÅT¤u£`g‘Sðd­ó¢C´¡ÁMÒ*i K>ãÞº8¬µ(ÔQÞpLá‡å!ZÚÀt„ ÕÊüh1 Lš¸ ¦RÐH••Ê6ÚºI€ eŒ`Â9¡AVå4ÀJÊ<…[ˆ¢¬"âòh'.WdR˜E* Jƒ>Œ§ÐÌ·CnâAѼ‡÷ê€Oü"¢ÙËdôÿ$½œ†WC„Ü.€xîܹ4M$BB4Mó·û·ZkÆØÏüÌÏ3šŒÇƒð‹6Hz&Ä¢D]û‰÷u‰“óSó>Úçeù¹‚â´6qÑÄ4[ëµÑ„c:|¡Œmòö\gaaaeáàÁ­Öl8Ø`“;"šSÏ0ç%b\+çìh$7Ö×[3óÇóáA2Cë¬Ä˜EÆ›ºBŒ‚€ žgi=Sãa£‘ÎÀuy«®*ç]!he¬€IB >qÑ”¯mÐ[ƒÀàP@î…›6cžPìà&9ÇÚ*áN<ׂDCEìÅ¥ô¸–²Áa9F §&·Lâ¨ç FTë&)ZJ7iÁZZB±fFÂx¸8À É$Ã3‚ŽøUÜš¢5ñ[¿õKPpÍÛç4;…þßhD,榧D÷ßwÿêêúoýÖoíkãé~ò'2Rùïÿþïû·C¥±Ýp„ÐÜ.2æŒÂ„Ä9üäŒâ”¢æ˜¸çÅ èŘF\* "Ê80TÄ”´UU×RYçp8ãÖæE­šcÇ®™™[œ™[*Z]èTá Jm›©gÐθ,Y‚‹VçÒÅ ª.}€÷€ÚÁ $Ó¶¤ÓñÆ{¯­ K ͑ΠØSp‘Zï’4åIÊ~SdnNp*xB) 0%£0÷ üN4 ;|g½C@¡”ÁÚ®%j!¬>E4>mŒ–¦©õ¨ljãa"Añ½$L¾”ƒ£40vJÙPÀ@iU—‚çÆJ©¤ óÖÖÉ Í ‘©ÑGNL¦WÿHü‰Ä?N“wN#µ'0qìlÿ?ZnH0°ënNB»bÉ{ßûO¡º®1J)|B_þò—¿þõ¯gŒýÞïý^¤òûî¿çŸü$ ëW‹¹d …µ9È¢O†Án¿Ð31 =ûC>šÀú(å” ‰ÒºjdÕ4RëH✠£õÚêù,Ë–WŽÎÍ-í¾§a¡tE?ž<žGC(¡x\Ζ/œ¿ÐßÞ4F{·|zFÄ £¥3aG8Øó´2Àë`WŸ¤"ï¶a 26&P˜b¹tÀDþӆÄç͈DÎíá«ÎF‘àê@üxçÁ¶JHÀØqòœ‰`¿*WJK]ÃÓ°A.³”â¹n;MD ¡öÎ+)!0/Í•¬1ÈeTÉ2ˆ\­GœÏ{ø}9èd]ÅèÉnÑv¡•{Æó’¼¡]v^Uužå!6…í¶]Ê~ûÛßÎ9ßååßñßQUBèu¯}ýxT"ÄŸ÷B€ƒ¼£“’èÉÂѧ^…Q…'0ÐÑP¿Wô‚¡!¹¡l¡’ãq5†ŒS¶Ý.:–s~4—eU{IVd©H0`F‰'šiâüq>Úb@dk‚ð ­š:§YwqæÒêæúÚª–•7ÚÅ|yØù@¦8g$L<Ó8£­¬½RÑ-6æ›!%T$Išð„í¾g9ã`@9*8ôÜÁ1á3²- ôd]´ó8ÿ‘7Z6ZIï E.rPÆ™'ÇLXJ´±ÚZeÕÒVµÔÊ;¯T°•¥6ã)üÈò¸©*‚mšJ°ÇiÂå°Ïy‹ñTÕ[” ä$–¿ø”ü“ß\@'šŸ¸šþ—´"Ÿù̯|å÷ƒjI™Ö ^¤iŠzë[ߺKñRÊ<Ïw)þmoûÃ.¿à‹X ˜» ØžðÆGö±š‰B ›pvjŒ)ë2JŸ!¥¦4K³4à“­4Ç­îŒõƒ~šòÌ{M›ä À‘ÀãrâmPƒ£ª,ƒZJªñXäéL¾²>èŸ9uîБÃ>§l’ˆÇÁ†±Tʃ~ØNjd Ï lÖ%Y SÂY†1ç\:‰)ÅžÀ…cDüðÊ èik@00Ž%Ì8ÔÓðlý„yˆ¢”‚L4ŠÀ0táƒG ì—ºÖ&À/Vº¸ÈYU ØPXdD]ެGEÑÖ \Y{fóÒ9ŒmšÍŒÇ;1Áfkl¢1Š &×cJâϽístâËÞÑåÛŸûlÑA€€qL³oÿþÖŸì¯^ ôG,eó†7¼aii!ôÆ7¾ñðwáÅÍýê¯þê/üÂ/`œ,¿÷¿ÌwZd<ö”L]ÄÈÔ*ž v¹Aô1ÕFÖµÚ9_އ;Û«ãá–Uª «rÜÊ’™N S<¥T&XÀ)öƺù¥ƒs3sÎKJ…Ç8ùd>ïqG'¤i@$ rШÕnç³Ý £Óéíl›À1uX‡Xì'‘îÀ¬ÄõÔx§¼Ó.³x‡„óÌ9œø9Üœvð;Š1Å&´ž`h:ú–L 'øä,ðkìiðY´ÎBƒYWà¢ì¢µ“­¥3 …ÌÁåÎnÈœÑ 2QJ’$©!™juºJY©UÚîVÃ^£ê¢µRW}g D£<p&€ÍQzœ¾à#!±3nDQsÚ÷™¾ÿÿç…p×’[^f?ÿ?ÍÎ)ìïxç-·Þò+¿òê|ä#£Ñèšk®¹ãŽ;Þô¦7=ó™ÏøùŸÿùˆVßÏ=÷ ŠrŒ)Ù£±hYŽÂð›6:j¢n ;ÚéЦѦ",è9¦œÌÏvÚ…`Ì·spj­ër{{ÛcD9)«º×ßpÞ‰$»öš§ÌÍÏ3ÆŸ––‚= )¡ÚÙbBë¦f”‚:(uÑê¦Y!r~úѵKçÎ5² ˜žâ2:Òº1†€Þ š±VÊyKµØìœ¢@‘0ž0pP7¨„FaÀŠ„cF-rÆÅZ0ˆŒÁ(£ º$¹Y #x¤¹`ç‚k†=HLžmáÜÈ(WËHå>·õ𡹅ùeëœ1š`ÆE2¤¬Ûí­ô`¸³«¦7uYŽÝî!oTUõ±ˆQ1ÉoL'‰Ó| ÿcz‰ýñ«ýûüÿç…|´ÛSJI]Úž"^ó®8|(Ó«—Ö~ù—ñ…/ü‚[o}ê®3ãóŸÿ¼W½êUwÝuB¨hùÿöêÙ—}w·ºoLJÍâX¡/°”'´Š- k“¢m”Æ–`[ §‚.-,/Ì@ˆÔõˆ1Š1ïFƒa¯È ŒÐúÆÚúú%LéÜÜìâüHÈ,EÈЉ þÑÑÏPÆ¥V$° º®9£ ÌiŸ·ºœ‰n[\èÛGN=:êo7JjcñÎæ oVSÜÎà % a¢ÇžDøÌúøKڃ쬤lꦲÁk“üAƒNŒŒµ(h‹aùÒàdbB"=ñဠ¶8ïôÆCÀàA–1ÎK¥m” –Ѱ¦9´Ëù–¬·Z5”DÑ¥Rºjµ:V«í­µN{‘¶³v)/æ&e½ÁØœnÐE ŽïS7"ø½IC4™ÈQsõÔí賿px‘x¶°þ^S_Âh9ô×^ïÞø‡Kßùƒíåå!®µY[Û¸ti­®B¼ÕJ_üåÅÿèÈ—}M·*í$eD4pGÂF{rìÈÑÙþ2þÞ!B8¡†±$øë8coœ ë`’@ —Ò!—å-cýææZUö(ºr4*/^:W•Uš$Yšz§'.»Ñ³=*Uehk"dÙÔU;_´e@bÞ¶ÚmiyÑÎJk|dóšÕ‹i’’¼å£±DsÁ¹!(Ð9¥À—¢E|TMçƒG¯3R… 1ÎÃDÞJ(FÈ$"íÀhIH£r°Oè8ª‚~:,E$†™1n”öJÛà¹(¥–J;L¨Â…EiŽ>\t(œÜbŒÓ, (¨Ï3ðùØ\]½õ韗wf·.œ»êægdÅ|5Zg‡8gi(ÇKÞï¯ÓO“©¡}~8lD:ŒHû$›÷ã+’IýÐ}>ÕñOèŒ"æ´sßÁS@2šØpS¹¡b£2Föq«Ežÿ"òù/&„:BX€p©Ñn<ÜFØRʘl1âáHì ø.±^94‡'sꉩ3ê ဉ@¤v¾F¨ë,/–å¨Ó±Žc@ݤ à±N§Íï{ÃþÎÊÜ‚1õpÔϳ¢Óɳ4 Œ(Jÿ.ËíÙž"ðRWuÑn×åØj™ˆdg0À1ÆjÙ@,\žoy4ÓÊ;dc½~ôÑեàú¨oÿvN‚©…3#l@v§„Pðn§Î¨Pp«•ÑÒZm´’u¥dcáƒ1…²>Hí”LLìÖÙx‘­±áÂ÷bŸ"œÇwm'G^©ÈË‘*ŠÂ Ötæ•åÖÒòá²nS8:ÂI’Xc•Ò‚'L¤£áÀ{[Ì,ì\:_û³sW\<ÿ‘¦Þ)Òg÷ƽLc¼¨ªµœsU½ç}Ž +Ž]©ŒZ]_[^^‘|èÜ#++;ó ÃÍ­²ß/fæÒ¢ÝÔ#«kB³€œ± Z0WÁ_ ÿ)NBL‹ ! pÇ1FÔé8âXÆPx Q£‚¡—ÅqD¬wš8Dµ© .EXµÁz@áyƒà¨Ä{‹C¨-X,<ñÔç)Ihã|GÿDG¤Ö`¿£\Û‘ñ%ARI\{FcëœUFÉ:q;K0M’ a4ö©Ãí¬UÊZ[ÜívXäŒ:«1¥ÈÃP”zo"ÖJ…’*pôlk} Ï+›BÈ$™IcÈ’å™î#çëók½£ç.å3-büng ¼³Ô TP’5A{L¼+6LÔï ÷!òH8Œ*m0A‚Q¥-G0"ØhÀ9ø@ó~‚„ÆT(8â’€Š†`/¥Upld~Öae‘6€y6 ûƒfZ݃&TØÔÚbLE"¬qZ*Pzy6îx«‹™ES7ãÍå£WyïÇ£³f_>ÙèæŸ©ÿOܵggž¶µu'¢m4Þù·wýeÒž¹î{^Õ߸øÉ}ï—~ñ—i¥ÿí¿{Ë-·>ë‹¿¬ÿè·àŸnyî‹®¾åY[kwœôÓG?-mõxDkqR$IFSð¦dœ¦|#ŽQ‰iKA`5bÄ K”ÃŽøÛ…„“X"'WÁù!±Þ†ÄK˜P Ðg˜è B3g & ±ÂÀ⢠a(øk:JRçHXš¬Öªv[âßœÿ3„ÚÙÿïÝt1Ü‘ÒãœÏb­ŒTR5²Â(óÎ)ì&Ö"y MSeEšä­Q-a‹ ‹KKKQÇè98[û€ c@-d*ÒQµEà±°q9µ6ÁŒLƒVqAçF{’°‹]ç.]º‹6æ—òƒ9žMR×v«C(2Øé­Ÿ”ì9¿`¢еý¡‡1îl+K­v@wG1–Z93 LwJƒ¤BíŒ c{§`5¢wMJ),Y «ÚåЖ gnie2Ì”eÈ•¯}Xµ@™ÕQ z¨äatÞj9ÄÆ½áÑk !ŠÑàâa‚21WéûÛþ™YÖ®ªG½‰¤Ø»'g³Øê1ò; Œ”õÆâÊÊÒÁÎêúƒZݺ|t>oÓz|.ÍnY\ÎGC¹°DÛó=ôQ˜ZL=P'–ˆˆèÕéCí§+íI-Äã8¨@Òæ¼°V2~fÂûf’šP:K¬¥¡VˆÅ80‚_kÒÚE%Xx°[,‚´ >Ä9'íÿ[7Ý©1F™2êŽÆŽ¤îk ¬×{‰CæA­¥ Š–GÈÄ"‰Jkæ0.ʲ‚/,Ìeyæœ%{%ëÛ*܉H%l\öEÌ´ª*!„G¨‘ Àà°‘¦‚r 3£‡ÚIÆV+}îÒxõÑK[›Íx¬¥áØGHEi% pQ=Ü÷€KX£aD­#ÑÅaN)gŒƒ0‰°¡>QÊ9OÓ¨0È©Só]X4è¤è0DUC2]c\ÀÆhÄ>"”mKSš#³l©Ýí´fPžµ8ËÃýð€¦fÞƒÈAINÆÌÝl96 Eo3öÀÁâ†Cø¸1µÔ9g,Á˜Åà[J“à‡C² 8#8¥¤ãLB0‹N¯Î2‚¥Æí‰j 2fuÇWé"à@ÆU°Žã ñjeŠqd‚*Æ j·:KŽ:çëf˜¤¼•ç!™IDåV:)Ë`l$_—‘fÞúºª’$q•e)8s`jÕi’PB€;:??W´[blÜÚP=znkãÒú ×«ª²©c¬±F; &¤£ów4[o‘P1ú!z­‰³1½à Ø3F)cN[â=gœ1€»*é¢COÀ[¬@;¥xê#ƒЇ˜\m’J.ŽÒÈkc—–óå+”%AÞCÜ‘Æ=1J+­ò¢•æÅ¨·éiµ›²¯õ8 `þu!f)N”ZËò®5 þÝtÓ­K+3ƒÞvS•½þx4q.V0J£¬hwº³õhrfÞ"TTͶGšó,-|g¶µ س$QSg£ö)@Þð*dÏ%7_}N2Œr‚ø$0ž#›LJ©wN ž©3b<°GFÅ¡L÷Äï9rÜ#4#ô5€xSë‘rHa„Ÿ8ÔÅ:¯ 1Z ¨QN7†ÂYÀ‡¡7ÎHg"öd«ñÈ“|a×øÙÝÞÞ*Á!‰ FqLPA©¾.B¸Áž]&YG«e$™†¼u–¥Ö"­Už ƒRj®S€N"º³Å¡N{c³ÚÑjcØÌ­îpÁ1¡ð@c…qÊ0àRIÇ¢ŒÚ0t€BóÖ(oci É`$dö/Á¢’Å-\<Š#g,8¡ÙˆÆ¸¸á±w6bÏpRL‚רqG™žZ;:2›gsÀÅEÊ8\ÛTdÈ{)%ü|V8ãj£2>ÃD^†Þú$ë6uOÖ£Vwnô6oÝÄx®ê­Vë*FXYoZ9xÅ'ë²_«q)µ’°ÜpjcmGBM¥tÓÝyš²X')ë2ÐitÊæ™¢Rõ¬‹fA;tÚR’X¤€±s‡,¢4¡$¸\#·„ìY‡XBÁJ„a~„ÅQ–8'ƒ7q^câ'¥]`a÷žÅt4h¹! çŸÈP:Œ–µ¸½fµQ‚ØÀÉÈ$fÔ 6öH÷:oµÛ¹VÖºp鼬ëN«Å8SºÁÐB2FjÎBUU0!Ç•w(M3)kctšäJ)D`ÒZ .ºIrÝv÷Š•¹»Î®¬Û®šÕÍH9‚0<`Œ,²‚¸=[‘õ{V€HÄÖ£=D±`ÒV8¡°T™ #Z˜ÕAµ„F`ˆ"([ ¾ k6ºîS w¥ƒ Ã06 àíLà£Ww8Å” SU“4¥”K))¡iš*mŒÔ ”¤¢Ui{Î{ÛÔ½îÜ·­ß&`«ëÈf‡`"²Ùj´=;üð‘ã»Ðûx<”òÞF{³Vd^Bç  L’ÑTð´oÝÅœÄÜúŠr›Ñ6ÆÊ9±˜š^Á‚'ÊK@³ÄV +{e8 œ1%”s[0 Mi£1ç¼#že4Þ‡âW•Çc‚s„âHymBDt#ˆ3’ø'Ê™HÙ‚•½ J•ñHGÂÀ8ÎË n­ÊZ»8oŒly«((%J©V–Ïv»£è›ô¿èÞ ¹Òµ÷Zдn*ŒI#ë`~Jú:MSÌFŒ ‡pðŠr$K-uºiRY?’hg$7·GÃÁ°ß«Ç#YKp¤2Ú:c¥¬eÝhbk4PP>|0òÇ’PÄÓ¨œ@ã΀!G\@»;8z’ƒ)Z¢ÅŒò„’؃ƒþðGQ]kÓí{0D¥Y®”vÁlÌ+Ö8D’tv6_*в©6®7¬Ú[Ã4Tà/s‚Â=²p­8xµ¤è"ß%Œcï£q‡$ÄÖÚØ# #Z»Œ#¤n¾\£ã‰1D‘<ˆfñW|$wøä°ø"j´:zøäÂ¥a½Ã(aT8º€‹ ºdy ]×/ЦÙ0Q`L뺇 e¬ÓèUçdÂfœSÒô³|Þ{W×Ãvw^$ ”Àn4F^«¦®© ÁØY˜iJk«ZLݪœ1±À‚çê‚>" Å)Ÿ€ßÃÍSe0{µ†jaêsÎ…‰›¢¢¢­àуÂj¬Nî‹‹¿<ê7uZ aI UàcÁBÕ=B™ÈrUoSÄÛ3+‡®8ph¥«¤tJ–£`½„JYú=Á°708c«æ pKcb(–4¦r€‹[Œ…' X4J`ü°Ãá)C¨KM(YÖ*"kX1š’¨UpvS$EGÞ© AÖ*kq¨¯³$„cÂÆJcÂ* ?‘5Œ°µÆ:Ëç‚bV]èG!á&c‰µ^i©uì^wÏZ­<Ï ·iÒòÖ°Š[N\Œ;°XÉYÇÛ4egq)`ç*Ë3‚ÐFWP‚~4J{„­ÅÆš̒ŹöNëá¾B¦±tܘ¬’Poˆ7‚qF¢ Ü´Xä®è´Žlô±2JÙË¢E‰³Þj¸;k"ââ0Æpò(„(³bK…'ÖÆåf‚q4k®ô&:AJáÖ5¶•Ok`wKAM|ÈÚË Ñá``­å‰ÀWã cÀÔ-0€þÂèò†Ñ.ˆ\v€Ù N3£·=öiºÐ ïÆ^·:‹{Î3Œ÷M5 GƒàðÌêj<ìocOR©ºªÎŒÈJgJÌ Œ\˜ "«ciêSÊŒGÂ9LhLv™-6„v£ +Oàf­ iý@[Ó”j‚Â…'Ú{B2ç F!ÔMˆs»/àj€ì „€0çž(Ñ%˜»£FªIœ@¶ˆžF5 Ÿ@Y×JYBBÓÈf¤JˆÀˆ(Óx‡ÂijN; I)¶÷c’„ä;%>-ªÊag¦åû{6)£EËÅ cN’ÂcÚn燗æÎõ†:¨Yµ±e£³Z1^І2”zA¼EõAu†s: s£Ec˜„ ¾VëX³4Vm÷*»bD`-MHôI¥±Þñ€CG¬³"(q8Î0XûA`;7ÃT/ì¶•ƒ§Ï^´á×=‚Õ°ìJi–uÝh 4iê ü‹ò&DÖã %ZQ «téSNy.庵’%³pªfe}÷´[ŸÚ/Ãþæ`g'ä/£@ô½æœ"«²¥Îc)+mÆZÎá¹ÔÞ§¡N”U5rII¹‹ž[ÁTÌ=)3ÈsPªñ!{½µh`¦3†íF0=PÆà²%eʆC‚oÑqžë¸E8±V1*B~šÈM5ÆO,¼ØjuÒÔ%êÇV6u#’”ÌÕmd“¥ÜRš„0†Œþ;¿ûwav~ «±83Ó’ ÷9¶Âæ ›÷~œúBù²ÚiÙüì¼”&åtiq!«¥]˜Ÿ¥çT·U0uX’e³3m*¤i>³´œå÷iaœ»ï‘G·Çâ¬Fvä]‚u:%6¡žƒ$Šy—öÑI¤Ui5 AqXƒð„£b`Ð8„˜Rl%JÚѸsL`˜ °  ˆ$ïPô?§˜ŠLœZÎb£ÀVd’ÕUO{Êñ«n8{~Œù Ï[„a‘$º‘Y«Å1Ͳ–Ö¦hu,äœkYÎt:³ Ëð Ý™kuZÃíÕ$MÒbi¨„ÈÊV§Ý=²³}>&[<4Z+/­\Ûê¶²¬}²û” gï¼xáBš$3aêþÎæÆìüBgfƸÊÈíÙÅ«ÒVÇé­4Õyk¶Õéz=À‰$YN½Óhƒ‰69ðyB¢Û¶=|Þc‰¢K> a¯¡NAG< ‘K}ÛÀâ }Ð`sïu ]A) J°EE¯aŽ „‡žðÄ`‹³Lpž³uqƒŸ»£³°sþB_ë­•ôüùøÜÊÌ©]'¸ª”4!­Ù{î{¨®wV·°vÎÜy·Ñ}eÊ4]ϲY]µ)Dð5¯MC(#T„:Àª` s#Ìb6J%„ƨ'x9vƘ´%4¦Ý4€ðæ\\"¢Îƒ™‘"C„ðsìI–ŠG9+G=¾.øç~õŸúôÇ• `X¶fA§t³€ ) Â#´+S­\ðdŒ1RÓì¤1ˆ~’áßâ°·¬vF«˜ÒÉB3‰Hà'µfœB´Ò1ž¦”¦œGž3FÂãŽI &ž…ár|T¥'?¾ÏÀ:&×½(lÀ9 Bô“ôì៟T;ð“ `h°Ïî'¦£p)Ó“mLtS©F Á1&RIä}še„˜þ¡(ŠPüdLÉ‹DuÅOò\յъ‰Œ¦U i¿$!q8§·„ ¸o«l@ÏÒÔ]¢O’€À/%ŒƒmkTÀ¸÷& kÌÏc'£6õǹñ¤¨ù¾[…1õ¥ŸiêÙ¸wDhòT§1Åñÿ$»ß›\@{\±å)-íïÿ¬¥„./:íy\Å¡Ñx „¾úð§ã’Q:©™w€í½¡pq,}h8´ÏúÛñïþÇ1é‘S“#ì:=*vMëaàˆa7O>âHjq#R.4ÿ¹žÈþ‡Ç$Ò.šº« é<6 †õÄŠ¿‚Cß$ÏÛcw lÛ¹ÉíK'¿·Ã¶‡íiÕ'`Áó)c¼ÿ)…IxÜþÎi­¿ý?ὋhgØwzÜþ!Cû¶÷ú³Íg%©}—Ñâç&¸ËÏß]hñãÿׄŽþìݱNÃ0`÷ÊÓÑ­¤Ê„ïÑ™à…ƒD2ü`e¥þ¾!rõì¦îÎCïŸïo¯×ëËm3MÓzÝì/oƒ]ÜßÜdœœ+®G£EðUL2BΞKÍqNšÁ½v¾i„íÍuð‡»…¼{dùþú`'lיּÿäçy~¾\jÔiPmPË¿Rº@µ¡a£ƒº. ëº. G£PmP§º. E1 NFAŽrt°ÑA1 NFÁÉ(Ôòè@ê‚® ÈÑÁÉ(裃b£ FPíûÿ”ÏOç¯v©@ˆ ú-'7ÿ¿:9¹¶.6<(˜ƒpWi G{„$×v¬ÿbž–u;=å µ–Ã]¬Xµ…†väÖdÇí}ó…‚MT‡^þøQͦCy¨‚΢Q5Œšj¼pÀhR•½|õ´î Þ‰Ašdè½Þ'‰|IjJùc•Šì`_aIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qscrollarea-onescrollbar.png0000644000076500000240000022724412536324512024441 0ustar philstaff00000000000000‰PNG  IHDRú¶} pHYs  ÒÝ~ütIMEÕ  :úÜbKGDÿÿÿ ½§“.1IDATxÚŒýiÔ­[v†Íf­·ÛÍןþœÛß[·JªRSIH  HìA; ƒÁ0ÀvŒ‘IˆAÁŒBŒíØ1] bBB *©TÝ­[·=ý×îîmV3çÌwß9%fßwß»÷·»w®¹æ|æó< ÿ“?þüØ‹‡1€!"˜"šloã!Œwa|ÚøŽÏ½ú«í3.o—cf€ˆªbf –Ó *Dl`*DÌ„"šrD3d&33C0çØÔˆ̈œ'DD0S0PUEDb653E3DÈ¢9«ª¢¡©*"Àö£šOF@¿%Òöq&VS0@"&Ê9oËÐqü½q|Ð1³HÎY™ UÌLԶ߀™ Teüaˆ@ ØqQDlˆhh€0¾" €!Àå%2Ãñëãsn{e®®Û³«öü«}ùUþò# ¡mï Øöól†g‚ ÌLž]‹ñ}`ü"`vù>Ïþ0þPf €HÏÞ ì2èÌÌiü8^µñLJí—2@†¸þéÅÛÙÙû–où¦l—Á8¾Š]}›ñƒÐSϾ-\}m@?&!ág@ãŸLˆ¢Y¼÷ËãÍ0 Ÿ¾ýÓÿ ïV»»CØ,Ç Gw^¸¾ßf !†#3æ¿÷n¿Ù4ÓÙÁõ›«¾³¶›”n™ºIQ–žÿÙ¿üü§¿ø0lÒ¼,cì‹étR7OÏžUà§L›˜Ÿ®³§Ðø²P<±ìŠj Ô¢¨öW«eVšïVû»oþ=gúÐö)p­ò¨¨ W8°<›T›.†_ºwóúíÃGþ§ŽŠ¦¸s÷p¾W=¾‚B’G6Cç;‚ݾ~€ØÝ’²Øt§¼y¸£"‹Vn½pë“ßú»Gw€ 2R$@ ñZ8BÚÆ*1âåÅØ†Ð¸~ Ç'7³í¾\¶ œËpÿ–·zÌ2f†ÈÏ^À8©(x""$“IÒaáØçÄ CQ’dC ç‰e®ÁÕÒ0##ŘÐÌ—¾ÈÒ« ó ÚF"D‡ª¦¹dAÉ u¥+ÜtÒŽ«fâër)mÓŠsçOýÜ_ÿI§ªf*YŸýW¿]Ѐ WkGuûÍ‘Æ%f´]ÁJÏÖ !êåÒ@aâœTHåþýŸY¯Î˜qC i2-§“âÉÓç«,Ätëîó§g`b×öf×÷šÒ²zuMùÂëo\»u—«&æÔ÷ƒ‘èÅñêìøB<¸vXO¦1$6ë~}Ñò¬iV«ÕÃÇŸþô[í0i¦Bq¶[ÊÛ÷ß™q9©¦;Ÿ¯‡/==kÈ×uí4­r^™ì¦Œ/û¬ñüìÄ—eÛî<–ú³’¥vÓîP%q’šVŽ&@¶^o Õž>~2ß«§Ó¦®üâl5)v‡¡¯xO«vmàÀ²B Lìñ“§7®ïÆØIsSwœ²<~üÁ[o‰ñlÿ !‘#Ü—Ñ‹€€”s63"&â«Íz¼pˆDDÏGóÏ îçWÂ6ß¡¡ÉÕþ`Ï2 ^mêˆdêÀLCl€=«SX)(’šH ɱСJWj ƒ/œˆ¢Q²„ˆˆœ% !°SCnÛµCB6UĘYb΄ˆ £„@C %bÑvnRMSUU¹Mùh"âàj[xîöóª‘/ìr·34D4ó¹]>ŽHˆ†`zYå ’夒rwq±>}ÁÀ<€9ï|3½~í4CZ·šÍ¿ù¯?zø$ô¡ªü­›G‡óÒÒ…#Þ½vøêǾ¶Ù½¡yXSá§wãEwzþÞÙñ[MÑÌnSYI–¡ÝˆW‡üð½G?÷褩šÜÝņqV9U}ðôìv5›Î룺><;߃ææ~a„.Ø9¸‹©SéÙj CwàbÛ¾–¢7õŒŠàÐ')¼"©* ˆ:$*Ê~èU¥¨j"P…²*w¦“~’š(n6-²¢qJRUØbÄœód‚çg! 1õƒ­ÖÃþî4kJ¼ó6 ½òñšë# ŠÚ˜€ˆxÜPÁÈH/“”ˆd"GÄãÎŒH&"Û à_¹åÓÕ}7s530— À¶Ò Âçs% ™já UW˜ 𲨠Œ;3U°±ôJÄLÊ) `.eEç\ÊbFD”s`dïj3cB"œ#p¡æs¬$&‹±ízšMßOö÷/Øy3D‚ç îñkeÏÕʃ ÀÀh[Ù!ŽUæ6þŸ+þÆ_áÙ+ ("’vëó‹ã‡©OaÞ—`>E)ªº¬ë¾í«MwövTrÛ®êÒ_?:8Ú›öëEÎríö /¾þ‰jv¨ÀjPÖå|²×.—½µÙœ^»uxã¦JÊ¡ÌWuSL†uûÅw>xïþéªK…÷˜BaFYWmm|÷æÑn] )=ºØ@ÎGU›B± (b,’ŸFÀU×Vu¦³äà )£‘2i‰6¯K0)˜ *)JÎD}׿ÉBUº²ô1¦¡$§”‘M“µ}Znz5«*ßn š ¨iΤ*ªÒoVçO…õ D³ZÈ fzUµŒåëØ‡lÓôø3Ðç³ÛU33‹”g·ñQ50"C3UÓ1åás7HfšsA¦‚­Ô9ÂèÆ ‰¹c†¹0“œ#ŒµØøéSΈÆäs2$*%£jßNÇeX •"â=H,Ž}ˆ¡m»MÛ…Uu,ø™šÕظ˜Çå;vˆtµGÁ´°ý)‘h›Ô/—Àåï0–†ÛÕ@d ¨¶Ù\ÖOçEìÅÌ|Q®7Ãùéâ½Ïéέ£îïîÖ÷nÝn ÄØÞ8:¸ûÚ«÷^ûjôSU‰ÝúlµZ Ý£nyÖíîr¹bë1X1ævy¶yëóÞùðøérS³ƒÒÀû»Sf<^®óÍ[{ ñÑÙúáÅ0g÷ÑkMðZðtV— -z¸ÖÔ­ O[áØÞ¨§Ó²nÛÀjïê²°,Äê!:_¯T½‘gìD%‡Î9$ríT€Ðq3tYšÃ““äÌlƒË)úY‰Ž†¹Do†h():¾Ï&)†~÷èæËÕŒ¼Ç¢$2÷OT³<–¨¢ˆH`dfªJ¸-D.o„8vÄ@c$ÑŽHÏ•4Àcv¿ºÚF—MëØÕ]åug`ÄdšpüXÉyÊ a‰$*ÀìœC0EÕ„H€ŽA3 Ž[ 3çØ‘dœwfq ÔyB᜽!h²£4æ”Õ À¥Åb£”åtl„>WºŒ¡¦„€ cÙ/o“9â¸\¶1>> AÆÇ@ шP‘0‡®kW«¥„>oVìaïúm2 aYU¶8>=½hO/V/¿xÇìíÌšQeµ¼u÷Ö×?vtû _\3ŒíÅil/ÚÕ¬ç{¾ª¥ëg³¦ïƒdZ®ÛÔuífurzüsï}æ­÷+¢ÝºšWͬ†[7Õ`±XMÊòÞ­ÓAî‹'qÙ^g÷ú$Õ0#»1ß»r~Òç9» ò¨“y9­À;RÎÙdˆõ¤žp•“$ˆ’‘ h ¡`TK΀Á‘ˆÁЊÚÇû(WÐŒìYÁÌXRVÅ L “"¾Ø­©Ý@¢¡¤Ú#.©sré]­b´(éÉ£ûGw§³›Þ91!c+Í”ˆUM¶ÉKGHÁÐŒÌЈÑ`Œrw™ãÁ¶é ÐL.á2Ám±J# c€h "z‰n™!›dÕ\•¨ùìä䲨c4CP3âð&ˆjÎ 4öL‚dªâ Ç\N¦HRbÜIfà¨9ªÁ<ó€&ª`Êf%øA-šyǵiø4¦„=Ä!ƒâ³¯:‚p—åÚeKº]¾h0æ~‘¥1“_Ö9€†`fFWhàóû™…˜ÕH$ ë“Ðw{{»%ûÅrmf„°YoËÅr±¼wû69ÞlÖ»“Óàr>¼uëÞG¾z÷èpÑÇ…JvLVVû‡wL9†6ƒ¥áþ—Ÿž qµZ®–‹þøtýät¡Q^>Ü-™Ì&ä˜÷aVCÊbèÉèbÕR_¹1ßÝ›u!­¢9Îë û¡Ÿ}tÞn>y­žL«·.t1À­Æ®ð(JÒžw;U¡ Nï5Jå çØ4¸ Ø“–…SÓ.Š’Aa6i*öÚ¶Q’ˆ$1hêºï{@D˙˩aOhIõl§53Yá Aö¨¦Ò§Ô”žǘûåêá[_jÛ¥c¿{pêZQtD!ír[&Qà-| HHÛžÓÌh[Ê€¹q„b&#nsû€—¼^ÖñWx†ªánÛvalc€ÁP‰a­cVªª‰B"&DÐaè‰DMì²ÜªsŽÀäWSÛRtšÙ,u/€¨eÓDìØ@FP@Õ˜sÚW5’™Y™6&"÷\/ò܈hظ Ò%¾bŸ!9F ¨DÛÿg`[ß@͈ÆîGÍD$“Äauj*Ó錘WË5¤+V«ŽØïíï¶«óÊQìÚª)^ûèWîß{¥š±cȈI 5o–OÎÛ6 )†ÞãÒÐ1;ÍB}j0uœ›ºvÄìI@ú> Ù« ‚)3Õe¡j%Bb{²>—^vʽ‹Õú³^,úôêõ¹yÿ  휯@î·vž†¢Ø/9@†ÚÎ3 q $D"`ï‰ ¦,¹¡`ü‰¤ªJÌ:"á)F$d$U¨*zL!BY9Q *µ¡sUbÎâˆÕ,%qìD%'iWŸž_ì=v¾Ø)n0f Û¤e¤f´Më€fJ4nκ`ì?·±‚Ûô-fH„ceb¶]$Ws mÛªzK\> ŒLÍÀHÁDSLDhFªÁ8o{ASv ŒU•ÈI5©‚wUD Þ;"Ÿ Ds05@E(ÍDDƤMÈ…s&j€ NÔD³†uUMÌl"·i¶Ñül ãLÐ@pÌùˆcÍffhŠ„Wå^þ@—M¿ªÆEsÖaùdóôbÑÌvÏŽ»Õºnªœc¬]‡Ýýv³®Xü´º~óöW~üã{‡w¸Úó¾qUɨÕtžw®ïîݬ¼o§œ ÛœHˆ©R(gMײˆYŽº^,Öë¡5Дv§¥ó>öAS²Ð7EA¥ï‡ì¼Ã¢y÷øød9”5¾¾;Y÷ñýåº)ª™ÃŒúùóT”:-x×1z+÷›¹²gšì4˜4¯[u’ ¨*ªn“U­n|NQÙ{Ad ! ˆ0ŸMÛuFD&ªëÊÌ¢äMwge]Ug‹E`Õ¦,.Ô7!ö)cSH6IrÆ’‘\àÀçøø½wÚÍò%Â݃[в ãsBDB“ú³¬Œ86£Û¼ª¨h6nãD÷ª ¿¬x ÕtÜÂm» lÁ EÛ6´¨jDæif"MÈ–$ €co"BÌ4v˜Y¨ Þ{•É{'E Ìf$ì‡ÈÄλmÿ‚dˆæˆDÌ(¡g, 37%T?62Ç’ÜÀð2PǯĆHªjª€8†ïeGÛ‘0€*Žo©Û"ÀDU¸,C·|zñá—4‡éÎ. m(‹"† Ì›~p‹“GŽyÿ…{{×?þɯŸï‘kšj¢`AÕÕÃTpF ;×^:¼ñj8?Y.fMRÊš4gÇsX/Ocß tÕÌ7Ž.m Šj®ô’³cHàû>¤¨ŒÚekû~Õvë¾Û/«‹wÏ6f¶7)}å?8kƒì–|Íaês.x¯©vʺœÔ„RyQ“æÌ«"bÞ*%O®,T!‰JLÍRPDVk ²¤‚]¿\íÃÐ…Ê pÖP–xÖRˆ¹©Š³'g…ÖÙb?”³Ò1xÈ'RQz¿îR|²t}º;G®PFœŽÇÊ ¯.Ž9l,D‰ØL¶óTIî²ÊÐqOÚŽ–àrI‘máA B 3c4³Œ€Žj²‚9÷ýÚ€«ªQD>+1ûÉØŒDDR"ðÀ Ž11Dç«qq¾Š1:.‘È0!fQQcDFU‡¤9 dï½™ˆGàLXÅ© ºKØÆÂ㲈7Âq†ôlϳÂåpaœ¶Â¶†1ECBé c©jFD1]»Þ¬Ïc^mÖ+ÓhªYU-õ9·õ¤¼uûö‹/½2ßÛÅõºÍqó8=ªªŠ›ÊÞÞ~›M÷o‚»ÙäÆKI’ª0a‚ª¤8L7K‰Ãfq’úöPãÁâ¼ßtËÅj±\¤`¢H XøU†¶¿Øöèç«,9K´’‰-c<]ÑÃÃÂö (§åѵù¼ª›²ð…"!±äT6µ  ’DrtŒŽœ'§l „–“Œ¿0˜ ý‡Á±‚eKPÎ&“I3 !EÉ ˜™2QÛ§½y1ŸNž,b6R±¬P8]èsbÒé¬nÛõƒ>læ»ÓÝC_T@äÑÄ®¶jÍŠl„ Ì  #*:n梙€ÉFˆb$üüù£©Œ0ôx•5«\rZà²Ô73vÈìR&É1rÁ¦Y$:Pc‡hšÁ «WCANHJÐŒKÒEÝ–`(ªÊ¬¦Ì¢Z&tè@U˜I4³cfFDÉ)Jf–±h±$% ]…û¶!3Ý~¸Z0–qWAÿe \R†h»TÀ‘™LòùÙ£Ú´9c‹=¤´¹8í7Kç\Q”};XÊÞ÷^}ýèúͽƒ”åу')YYz2‹a°°)ÁŽËjçúÍÝýÞ7®¬ŠºÇ…©cµfŽH„Œ)¶¡]IØl.Î$÷{ë Hqy~šsLÃfµ\dµåÅj³\½žt!+hŠqpÔf±˜ÌГŸx<¨ñh^Ý8Ú©ªÂ{nö¦õ|R”$3BöEŠ1um•ì™È“«ê2› 1š%C°²ôLÃ`ŠŒÈ*RúúâôŒSµ®ëœ'Q˜ÈqŠÈiáˆp¯.™ŠnØ$£$6tñ`VT…†,Ù@¬rþñ8çï¾úÚÑ;† –ÁˆuË–¹¤Ä¢¡¨¡»¼¦ Æ ç¶¡ Ó+xÞžáõcí«—5 máºqä:VÆDª Gº,$+ˆ2*ºRˆÙÌ€,K Fvl`ª : ŒŒ5 P'"HÛ²™À™¦¤Dhh ‘˜‰)GA CPSrŽ AQ$ ©eÎà.+÷mRWÝöã¸xÌI_6¾êRÇ*Lò°Å¡F„~„(‰Ún£sÜH·Ò]ß/‡v­ªeU™@»Ù¬×ý[·ç»ìëÍfœÃ..óI]8PÎQ $Ť‰E ïIKFeeŽ„ 1å²"ç5EË‚ÈEQדi ^£raû~²n7nXs11±i1·Ý$9Ÿ/‡sÎCÛ¢«6ÃÐõ-UãKšÖç$ eS–…7Ų™§%U2Ñ: m. ɹªl¢1K ‘ꦀ#;ô„ Â€¾š¨HäìЗ•ï»ì@ŒS€D€NÐ1g·^-C%»¦p`Dh’“84TQ¨BÊYÑBî7CF SÎ5£hF®œ÷Çë‰Ø‘#EÐU²ù„Gô$Gí}PGžèüì|yvÜLê¢8P*²™"¤”Ù³ 1‰…ˆ0âëª#}å’òe Hq;îeGªd6îö4‚äH£ À L·(µ¢¢2@Šê}ÑÔÅ&¬ ‘<{Û‚×Fnߨ΀2R6# Ct,â P™‹K0T“BÎYªÂU9hƒå«IF0BrTå¬Læ˜rÎÎù±¦¿$\’éGŒ}œ<ÏÝNlœ7Ù–ü±¥!] #/¥ 8„^³¤'§OÌX-ôÃ2mV«óeŽ!ûé:­>>}ãc_ñÉ_ôÉ{/¼ΙˆgË×nßÚauvœS7Cßv“I“bŒCïK<˜$Ô­W¡ïæG7%•à4)ãsŒèjÊ †f–¢C—ÕÁ™!ZŠið(’³e5‰„ŠfŠŽÈ1¡BRbf瀈ˆŒ”‹j2)'³œ ’VHAeƼŠ-í4“8ÄœÒt2é†ÈŽs””5 äÅH½µ]_8’Ž¢0k$_–X–4«ùƒ“ÕñÅêÅýJ²z“> AµB2 Œ•äØ4¾ ýñ£&³êpÚ ˜Àˆ´((¨‡QéNQÇéù¸“›!!©ÒH6ÂÕAI5Œ;€ˆåEQUK"Dz©aÎÂÎ5Mm«–QA‡ºqû;ÓMcRBì«‚Í{ïç”»V_z¿å×±¡æ¬ÕcÙ<Ü»ö#U=5¼Òš€šÛþˆMlù[ âòÎ8PÇq„r¥$½‚-GýÂÀexJx¥Ð3$ÞŽ'Õq+ËňLˆ†Š¤¢†f@‰ÐA- u¸ ‘y„P‘£RR+Øè¦=l!#Fdµ‘-ÌYá7ƒ½°ªÚ¥BãRÞu׌õŒÝ Œ4`E»„bF†é%] sÎ!´pòô= ‹G¬Ú­úÕ¢7tC/!Ø›_ùê/ý¶oï®/Îf“IQOT‚©iÖ¤’T„¨,+IçËÐ Z8,¸hªz:#QÛ´]ã÷ ¥u‘&бB¦4tÚ-Qs ºu0´zSµMÛJ CÏÏ"yZW¡mCß\¬×]$º¸X–e¹³¿KHm «ÅÚ¥ó³‹óbRîíÍ«¢Wy`VƒC 1+ŠRô´]­ÃàŠZ$å¬V2Þ‡> à0ÈÁ9$Fó ‹ QQ,gÉëuÌY˜t>)¯í7ç§ËçÁì–0™Ï#U•CɜûU®]‚gPÚÊnÔZÉoo5º#Z—Ê=44TPCÃíu+Ž,¸–^*FšÁöRoE£¨W$/ÜÒdäJŽ y¬uF*Ðeyp9˜!QïjF€Š¦!9CÝRtˆÁ @‘Ð ò¨“Sݲ]„Pb0"+ _Rzdœœ e;Ïv€ðºGLÛŸÉÐHMGŒ+t»ÈÕFšÀå—Ô1»Ò ¬Áл¼\>~ŸÙ/Ïtë' ¹61M`:¼±s÷åöö¯1rSÕ‡à¼Y{ FT$èM4 C—Câ«+!$$©&Q˜55˜ÖͤrS´ Á—}" }ï4¹¦¶E –²†!E AM’Úz³Ñ ¢9§¡[­dí@4"oÒ0´]L©*þlÙÆÈ»óeWhD×ýj=›MËš¹ò®(ÂÓ–‹–Íuí°\ǧgçûSbî‡T7“B„TΧ¨m–Ñ’BcY’b!– pRºÇ)œF/)ù¢¸=?†‹÷–IN)7 ©™ë†äÐØ9#"0ËЭ,n48$ÔK5ð6(/0}NyEV¦ÍÖqh2ª«/Aº«&mÜÛm+[¾R-›>§Ä·çÇQF— ‹}öî„£D/Sè–ju¥Å6¼|ζC?ظ/ãÕ‹nipÛÕvõ¶Û„=nPŽA*@ضd6б‘Ág¨$ŽÛÛ•ª÷Yñs9hx~Ø4Ž`Õ´(ÊóÓ¾KÝ”vºóY‘TbÔ¡)eSÝßß{å•W«ª“º©ad*!£Yå¨U¨šL«jçæÀ)'M犺®UØ;ç=!!29Ïöö»‹ÜŸ_@ÜDH’:í;¤ú¬ÚáâtiˆDXTMQV‹óóMß\Såë!y¹Úô¡,+6žº:Jq¶¥³©›Ëi]2„(!Vu±¼X qÈ9ܸvPxPÕÙÞNÌRíLÕ¤ë{ÍröeI!õ«@ìºÁɪ‹wÞñÞî¬ï¬ã‘î/.ÀtRr‡à0—Už9 yˆydb¥,@F€`ä £]:,l£cœŽº XØøˆ@¨]ÒaLžãºÄÒáYd=çjøy¿«§=wu/_ùÀÖ¬àù猟ü_ûâÛ‰–êøÐ±WƒŸ1ÝÊcsóÛ4­jjî2²¯VïX¸\RAÇRžhŒã-ÅyÄj.µŒ[ÞæsÒFï=3¯V§“iÝ-:d2›­.6'OËóW°Ý½½{w^ô¾@,ã6ª¦‚¾B?ñàqèMe]ª®È–âjãcR2¨ &@_ì UDçÈÅÔ¥¦1†~µŠaˆ’ä4¤4„úcß !öªˆÌãhP½/UÒ0$•Y5-êéjJt[ Æaêûº–p±M6Ÿ¸¾YÄ1›jÑ”Uí aoדO)úÂ/7k˾HPŸ“!õ]bvÃÐÞõë¡K:-”L&MYcÏx.†áÕÃ=,9öË[ÓÒЙ]l†Ê{0îrvLÌ£+ˆÂ¸+Âeͽ ¶µÌöªnA—A?°¥ªÃ(Ñ1ñÅKÿ }Oãë]fØí_Ü0¸”FàØlK'¸òmB žEû³Ê¶NØ2з“ÝíÿÃ+Åñ…¶ åJN—-6n×èøñFdj›ni@vå>2’CáRZNøåæ2ÏYÇ€-˘DGÍ0QÝLšf ¶]|"YE€ ’E5Õ-K-“e‹Cèôì{SDW¥!ogŒ )I—ú%[ô•ï"æ(9¤aˆ9Å£©¦ʺ4AÍYÁRì¢cÇMY#‘wn&E9šL ™Ã™:.©,CBŸB• ÛÜ{ïm2›¹‰sì™.–«nŠ¢Ì)£¡f•¨† j1D0cæU?¸Ò‘wÃp´3ÙänÔ³cÈëU<Ü©¯íŸ]´¥7ÈŠh`j)kÁè˜ÆÈ¸b1€)Ùeˆ(Œs¿ç8¨cãi#¡Ñ€Àl»¶¥­ )êei³MwhJ€†@°U„\AJÛW´«@¼ŠÍqJsùÌËõešÿíìêª2¢ËÅñLX @pÙYÀÈxFæß î.%…cµ3®°±‡v—† ÛÒiü²ã«ã3Þû3–ó34lU×W„ˆ®6…‹ÓÇ˧ï§U*÷v¯½øú“wßÎ1VuÝ·}ŠoÞ¼UÖu·@SFÍ¢¬à‹ ¬Ñ ¡_õËóa}š‡u}èZË9¥h`…+Û!¥²/g³z‚ %#’êØø›Å>¦M\·O†,ÝúgUH[9¶=G³03&V“v³è—ç¦Y<M»>…€"À)!LgSS5€¬† hB‡%õ1J]ƒ™©/ëŸún6¢° ª+‡`Ãò²* r¥Š ¨IÈÝÊâ`±G }¿^µ›ÕÐvÝЩXΪ¦¢É DLÇ:£‘sP8_7®ö\×ÄÌÞSáÉEFæ—+ ˆ Ö‹¥yO*DX2{Â뺶¬¶u蕱(ËÜö ÖjLt1Ž¢*(‘Ë9¤œS´Û“—nù)~é ›ã‹s¥IÂB£„Ñh–EEU]6u–ÇËžMKíÅýïd*!ozYÄ´X®~ÌûÝ—öתû—ëþm³d®Í¿}Ò¼þðøoìÍ>2›|ÅÓ㿹SßÛŸ½yvñÿëú'Ä…XÛ7oï}C¶î󱨰Z½óSC õÚüWΚ/ÿ~Û¾KÈ…ßÛßýÅjÝÉùVf¸3ýäÁìkÏ7?¶iß7èëúúµ½ßì,@%,Ñü&|a3¼w}ç;Öý{e±ËØ<:ûŸT:n÷—ìL?ºî¿TúëŒ;€f „t|öûá93óˆòå½êÿ\v^|4Z$lå·Ïúøy©ý²øÁK¶Ž-¶4IÉëÕÙfqS?¿vœ_<ü0õ]? ËåÒÔ…`óiµ·¿—R@!@3ÍbfQŒqÑõ Us.|JCÛË–“ä bÊuUùÆ‹D6Oh©ÛX¿ÉíBâÐ]œ¶‹Ußµíb±Y-SÈ}H’4GQƒ˜ Fg-çÄP‘ ˜\Q—E]º¦)¦M1› ûš¦>xBõ ªÍ|ZNjM©ï:ɼóìÉ#J ;;³‡‹ÇlZ/»˜”É9è׃XB¢aZ•1t‹E?™.–ë’ó+7v÷wf?þ™‹žšÒæsR”±«n­ve]`3i¸ °ŽŒ )ZÚ¯ßøÄKÿyÊmLïOê7Íò|æWˆÆ½ô}ŸÿðOoúHÒæå¿ýpï[Žÿज़ÿþõ½_{zñ_ºùëîü–Ǻ{aW%Oço~â¥ïi9ÄÇey³ä‹Õ§>ÿðw¾üçN£õ·¾ëÎáwßéþùÜwÇt2oÞxõæï‰ÒŸü¨Òz>ùäÇ_úþÉÇÛðä'¿ðë7í{Þ]»uðkÅpRݬÜÍðvÊ+^UeqôÑÿø;þ¢sõ ×~3@úàÉ_*Ê[_ñÒ1­ï}îƒ?öÊ­ßW¸ƒÕæ³kÂòbõ#}È£=ÌXùØeïð|”>ÏÞ½º¹+õ8èU@¤WÕÒ—íxYzíoûîm'df*–€¹¢9Ü¿A@9tCßµ›NDcÍgu]]Qª%‹JFäÜ0íú®Uɨ@©ëbßYÕ ˆÎ4™fb, ö ¢”Er›eìÛú±!C)X6M’³©‚‚8±,’$#šw¾ªkï‹¢ª]ÓÍÔO¦[‹”²‘*¤Ü=X&fPu ιA2š¢Aá _–€ÊŽDeÈÙ×ÞoÚ®,I*³ 1*”I _L&5.VÝnÃÞû/¼·<Þ¸f ;ó"fX¶q§ (˜ëºêúÃ>d³‚h`Õ¿õ/ßù_÷Ê·7{ÓÑ<æ'& LM€ŒU!Žð¸nå9h’ak›5^Æd`3|î³ïÿgÄ{GóoýÎï¼—¾ûlùc`þR “êÕ¯yùÏ~ú½ÿ8åŒÍ‚RRKÓoÚi>ÞÇÇ“òæNýñUûÅ>>þÙ÷þ`Òþ;èÚôÛ¾ôø/œo~4¦Åõo‘vÙþÔ ×~óáÎ7½sÿ/ìÎ^mªÛÇgÿp±þigU?|ðS_ú^É `鉊Ñ>ŸyxýÛ3—m(ØÈn¿ÔªªnYa_Ž?ÒØÿ^Ê/'¶³Ir2 JXÔ;βäО<=Y\l½¨ ¤—^yi2 }•M»¶!ç¶CÊs»j%õyh‡¶‹}†º‹²L9;.›Ò•µŸÌ|3Á¢!߈ªÀÐç~#aÐaИ½+kd%‹0lBÒœDAIa4›KQBŠÙL«ªôd…ó¥/'³Ge=©§ Ì¡Ï}'!„nm!©†nèûzR;vI$I–>:3GŒÞQU¨d3A€º*nÞ¼¾^u§«‡DæÌÚõ0$ I£3dv°¿Ûì4o¿óX nì]„wOWT¸fE›àƒ' ï\Õ”sši³ÙHÊ»ûG«vóä<í$ 02ÓúîGnþo›êö¦ÿâºÏû}@ `¤ b`åˆùKC]‡:JY‹Q•„D†–uµúÙ¬¹Þyéúo<š}[UÞñ ™!”Óå]ßûå_Cî­û6ÉÐ Žî}OΛÏÝÿþ¯}é¿|ñúo²ø»’)ž']Jî‡!¾Ów÷MИšãó²‰÷÷¾óε_síàWe]êßS7ŒwGoÞûC¨,>ûþ÷),hT¸^â›—ªº‹ì¨HÛ¥ŽÏŽ  £ÑèfÆh:º=>olmHÄ£X•À,©c.›²É}Ê4¬Ö›MÉ \E7n!—‡œÂêÃ/ ëeh¥,åü,tQtX «åz³†´<ßt½™Í’ö›Š^øÊî¼ð’Ÿ4Óf×U "†˜Cׯ¥ï‰kâLyiÆäJæe…ªYRÊ"H`bÆ=hYRT'& P xeQ”uYMÊf>ß=Š1¦¬M#¹, š4aò;ß”“š!;gЈ™ƒÆLŽËùœºÕbuúô¼5ž¦’û¨QLM˲( ®*˜ŠR«cÔ—nÎý¦‹\øiã€ñþqÛŠ¾:£Ò‘jùTW)Ø­Ýù¬öŸ?Šœ³ž˜„ÀÄÓÞ½kÿ®@(éµ_¼ o!Œ&º‚` Ÿ99Æ­4ikÜ%LˆPÉÈ_&òl­6Û ;$DMr #>:û;)|îÎß¹É(([!6Lªk“ê…óÍO<<ÿ_½ù»çÓ–|gGÌ“Œ‰±rPfä­ñ?|üç_¿óGÞxéWþæÙòGûtVÞ1L€õáü›ŠlPcº _ ¶8Ô¿mv·g>àã”b‹’Â¥ñïv†™óÑÕþš§R4)zº4?ºdyýÛdw#¸òCC0P U´/?ÝŸ› _9ÍŒtHÚ¢«9GB_V;J§ŠÐ”ÅÅÙÓЦ²iC×f ø†oøäí»w'O×ÇßÜ÷¡_w]×ï̦q½Ú+'åtVü­Ã8 _ñú EÉjio¯q2ß¹~ûž›Ô‚ºã&9Ï꘼IÍ:Ä€ ¾t]UÝ@×R5iŠrMktŠà™ØÇÜŘŒŠuAmÖø¢®ëÙÜ%#²ªOŠÎ , IN}Ù·›~¢dˆÑeSÓ“Ä<–uT29£4Ž ’bJ9 eSsS‘rÜô]è6›$*FDd`R—YÄ;.«êé󣽓óÍ£³è yùÖµGç›ãwëÒå¸7­ˆÌبp¥[µI ïq¤{™TC6¯}Å‹?À4«Ê#É«0/7Ÿ»¶ÿí³7>Ú‡M}«ò·ú½?܆‡OI‰JxãÞúÂßL䳄vø,ìL¾êë?öÿDªög߸~æ³÷¿/˪ "qÕ¨â,yúÅþTYÞ½uø« `Òì¾tó·Ÿ·?õŇ?PÚtгnüö7îüþž<<ù[  x¥öR-N–õÑ£Ó¿sm÷[Î7Ÿ:^üãÂ;Ô›òö/þÈ_QC‡Õ—ý¹óÍ?aÜqà Ãxøo Dn%[;„ËÙÖvØ"ù—ÇBlu»WKgtq@0íÄ ‰É±©]·Y,Úõf9I8:˜¿ðâ˰^-Wë6ä´n7šãÝks–‰ÿèG?â'ªÎ¦³õâ"ÆvèXe†Î×õtGˆvv¦ó]ú"F, v>ö­jË`Š–ÁÌUM7t1Cù²5#³4å耆” q2PYBY™s@„Ì̾™ïeE’sl»‹sh{MŠb_ I’%Û2¿G=?j’­£ !ù‚}QQQVè‹ÐªYDE5Š’#ÇŽ  §<Ý­S’zÒòbPb¾1«¹(¯/¼SÓ\1OJo UQV•XRó~kí~IÀfÉíºÿ Ø|wöIC8_ÿô‡§ÕûÙÛÿÏèdR¼2k^S ï>úKOþGPé†÷ûð²Iìâƒe÷ùÒÔÅ-S‹íðùóög=Mçõ'ªÕæg¿ðð??_ý´£Œ%†Ç!<ÎùHÍÒûǹ(ŽBz¼S~m çœü•'½¦£^–¥»~Ø|Ý´~mü­b|ºéß‘¼D0ŽyÓyÇ@v¸XªÞ>YþSÑ@X™mVݧ™ëyýUÆP8¿g€bW„õ- áËŽù×¹µÿ‰ÿâ/þ¶ßðË“n©[! à–1¶5aÛÆýóç\y¦!šäœRM€äûͦ]Ÿ>|÷çVçÞûàÑ[_¼X¶‹Mê»Õw|ç7þ–ßüÛ$ĺs×n$$F6ç2 wZ@V•R×®WësÍêœ#ï°jšÃƒÉÎõëû%•Õ”ÜÄ£Æö"m.Òf!ªi½Øt}}xóââ´=?ËqB¿>½8»ÿtÓõ=*:·:߈Q›r@7ÝÙ)|YM›º*ww&»³ÉÎÁƒ^o¦»ä! ËÍ“‡Ön†¾_œ<­ ˆy6”4 qiˆ¦jªÈΡ§¢©rá}UMÌ{*JE{ç³ï\÷dS5Eg–ç%À¼|¤ï¿û0áüÁj˜Õ6-ç×}×õûÓ²OùÖ|òêùZ»ÍÊÎ×CU Ûdiñk~iý½ÿûI»&Â,„¨ ‰D€Ð”€2a!QÌ»ÄSÑœóC¯3sšTúvzL4ªîP³IE¤` SÅQÕÇ S ÞÌe0KH¥‘Œ&ó‰5YÖŠÎS‰&†…É Ø!–%BVHbÞmù7N-e46ïF¯]ë™5Kh¥á:fTRCtäJ55d„üóÎOºŠûçÎMb±‹£òwüõú«Ü–®:šõ‚1˜\jò‘¯8’Wv¢‚ˆHŽ$ j¿8{܇шx>ßEò®œ›¹õéq\-RÆ!iŒIDîÞ»£,ÙÌ—3*ÁW³9ľ¨'˜ó°Z¬ÎN ÅS0ðåt¶wc4-1ÔzïàðîË“ª(û(Iܼñ \eÄ*9dž!⢀• ŠDDeU7ͤH&q˜­(”M±ìb·<­nPÊjŒ1¶ÇòìàÆôÖa½„)* 8ß«€(å…sUå ߦ_uj ¢,F†æ”ijAäà€•ÙªªRvA3"zo1G©«º. 8;ëuOcò¡?ÜßûÌEwz¾|ípVxNç³¢žTa‡88¤ˆc´lÑX™.é£$‡=z$0phl <Í‚ÈsˆŽv@L™<fTgHàÍ¡3«°0*§jÂh`ÈɌ̈́”T­1@€¬`F@µ@4%È€1+‘E@•Ñ l*Œîn"ðXª%0Cp`# ü¥Å†nE¸u~&dP³D„ÊÄ ¤‰’\êJ¶®Œ4˜‘fbƒÑÀ 0BD&Ý·Í€Á€(«ÆQŠ@ˆG":²…>à•;ñeÑaKëÇ‘MÿìÜ/#´ýk‘™+CK°«ƒ7®Èë?ï̦«?Õë¶þøøÊzÒ¼ZÏŽ²Æ¾k-v`C'¡}Ÿs°^¸ùKÙ×Þð<pfR d1#ቛ–M™Ê¬š}]÷qP!b]»j2™ï¢Ë †V7\x‰"¦ìM%Hè5 yˆ½%¸~gví•Öq}&Tx¥¢,¦Ó&‰é‘œ%õ×woÞºž?½èåáyû`Õ½wq>õîúáÞ­a rMáÇ›Uófÿ`"]oC5ú’c„" uQãîùñyêSÁ¥ÑÖoÀºÂ!Q?¨†(3—ªÊÚÞ®¢Ç«L¢õ¤:ïºuGûóɵ©+M†¼·[ëñé:†< QɗΕœñ3Øzì+Ž2@ACR͈Ž`ªØ][à Aé°V°Ñ@À,”²=㼊*6¦0•fŠ@&0Æ×fЍ¦‘¢#,M‰(¦Ëi}E˜‘ÄLˆœZE<2ËD5‚B¬`ÉŒÀÑ!¦€ …Àzåã«6šâ¸Ôþ• ë—#3Wg²Ù¥ˆ ž§@ÂsŽöh£ËžHÎYrNýêb½ZTÓCóÞwë¸8{túäáеŽÉÈ“K/¼xëæõ›e1aö¦ 1[ ’#¤LrNªL„Ñ*@fªU5㺡²PU#`æÂÓe&5‹IÒ ’Í0s1½õÂôèîéý/ iVç½Þ—•NbÈɽiÁܪ­cn ˜íͯÝ:”„Ÿ}ëéƒãsˆ®^ªžÅéaSÆ ®äL®ÁÌ){ `‡š‚ó^ÔÈóýýn± )!±Ó-ÛrT¾‰šŠ2 ³1)Î&̓³¶òN].»³”Ž&ÞJUÖgû³jROÏ#ÈY"péˆr4¤K{ö«óFSÚeØZà  º˜[C-êP0Ub9I[Ë bd'Ò°£™AO­m³1N‰*3Iv– ÔƒçÑ!‚è ’DÄ¢HãwÔó[&*™j‘ Â’±ŒÉV"ˆã9}à$ £cF*ÁØÌÔ–‰mfA–W¨`Á5’73ÜY·‡Q~ùõçMU/“?=Sªncÿ9º/ü<»:ÿ;`€ˆ¦ë{ߺS}âÑùßÛ„/:79œ|Ǭ¹“Í!8Õõ“óœíÔÌÝÜû•Óæ…³å§.ºW°yýµ7ö¿!'JR1û6}aÑ~îÖüß?[ýIJý¬ó“⣳éËí›áfx÷¢û—9¯w§»¹ÿmgËϯÿžwuް?ý¦ùôîý“¿ÅTß>ø®Ê_SˆC8>ßüDŒg„ÎH¶ÄjWGþk²ûÖ¦]m+퀭ÉåXÉl›Š«6`<ÒV™ ::º3?ºûá;_ÜüótãèȠܽuýàèºn.úU{rö­}ùå›wî¼ÂToí²Õœ#ž4’<˜©gD5&ç+CoÈ…w9ô©ë„™Œ›’«2õ ••$€‰æÅ$‘ÙemÝšûn8y€ÓEæ‚Ù•%Þ妪”°M9ù¦pIˆ¹WµÐ£LRš‚_¸Ù…ž]Ð`C’ :¯gÓbòáéɦ uS®CúàÉ9yWOÙï¸øÚ½Ã½ýfçpZ”EvHÜ d"b`‡û ûʹÂÞpè3\sØx'X’K›.¯º4+'›Ð“çŠAV*7A&?òêµù|ú…÷ÞÍ’KªkÊ«„Σ±YQe&s Œ ‰€’^Ìš¯üØ  ‚ž~øä¿&s³—ß|éO˜‰úuÿÖÿÌ·Ïê|äîUu.~ðý§ÿ÷¾øý‹þÓÎþ‚p¶pýà»î}Ϧ{k9|æöþ÷|ÕË?p C"ý­OO~]ùÊÝ?¸3ùèñâò ?.2ìξâõ;Dr`. Ì,'‹¿/ñ¿{ãÞÿì‡äxýÃóú«¾ñ£•hºíHzûñŸûüýÿloúõ¯ÜþOvîôs?*Ò lövÑë·ï§íÆî¯ùÄ«? 6¨‘£â þ‰·>ü󵿮vPýÏ2#Èóò­1‹ó¨j{Ž/iãUxé§jD\7ÓÅ×Þ¹uëç~ò‡ü'~T…¯Ý½5­'²<[_œ¹‚¾þk¾ñ“ŸüúºšÄ¨„T…2KHŠÀ9'$ï\)Y˜ˆ¼{ˆ,sÍÌÞ•™RQº¢T`#Isbßcˆ–‡âôú+³Û{òÁ{„.^œaÕÐ|Ùûrb\€[ˆÉ¤®Èmʘd]Û5ä1„n:RY…(àèÚþAS6F¸êÚùtæˆê9ïÍË¢®?=>ª± *‹MúÜÃuñðüú^}ýÚÞÞÞ¤šV¢9 «c@ "7¤Xn^—äa¹\]ŸüÄ—–]o a3 »uÝpØ™4óºF ÷î]¿v÷ÎÏ~öaèmg^­úœÎ –^˜ÐúP‹»´»ºÔƒÚ0©^|ùÆoKiIÞß=ü Oÿ¦Ê ÖÀñÅú½ÿèÆÞ¯úÊ—ÿôõoËöwÿùû'åë^ùëGÓo89ÿÇ!œ«Ä­L냗 Úê•ÿÁÇ^úëî³_|ü¦`“êÅ!øÃOÿ@0K`|mÿWİüâãÿÓÓ³ÜoÞìtÅÌY×H`½÷þ r÷ŒçøÜ)kÏŸ-øŒ"F¦ªÓsç¶YŒÁ w÷Žæ;×r'›ãðÙŸûì[Ÿÿñ†oÔÞÁ½—îüÒoûåwnÞAç ïKU*±ðJΘ¶NÊÌ"ÆÎÔÀ9&Ð"°_0»rÎMLÄ@RNQ‡µ ùzçÎǬ>¤â±/›¸:ÏjÅtf€Â®šï‚€H|cª›jæ4ż3)³cÃ\TÜìÏ-i{z±YœO&Õ½k;’b¾w}zc·FÄ›S·¸X<8Ý”óêÖõ]ƒ¸wmoÅ[?ó™Ç÷?½Ñ…0øº,Lļçdpvz> 1kÞÔÓšÍ!£·Oú½ÂmÒ0iš;“º™%‡²WÓ›×wnîýè§>øÒ{?öÒͲ´·ï?¥¢œ–N Ռ͆ЇÁ!–£Rž˜RLßzûè»ßyò<Õ÷®ý–½Ù/~rú÷ ˜”wïüúÝé×À:ߟñK0m¾êö~®«›¢kÓHä nó ]Í•ñöÑ÷ÂgÞÿLJÝTÅ’§}@»qø*ùóþÉ×®ÿþ¯zùÏÿø¾«B8²2LÜÐ}8 ïNfå=Â"ÉÙáîWìïþ¢Ï>ú¾üe³MÐuJá?ö ·öÍÙú_ÀrøâNóÚ×¾òùÁŸù¡˜Vˆj8ÄtR”;¯ÝüMq÷§ÿežx®t<Él+Âø…ÇL´ÕjlM%ᾂgyýÙ¹bÛ#JÔt<€3KN9ÄÔw]? ½HàB«Ú—žëª,|•E÷w÷v¯Ö슢,·úZDtÎ%2‹˜¨‰‰c­bÇŠ‰Ø{†Þ ‰˜™IŠAG-QVQßDÑ0¬• OL„¦’H%õmîÚÒ³Ùîd>÷eEŽ£ŠóÞ9"„²ô¥g€Yš¦Þ¿q´{ý0™œŸ./–æK1¨„z”TÌ+B!å8$X†Ý ½ñæý£yQy0ˆ1šˆ$"UœAAê‚'ªfuV·[¹ù´Ü©Š¹‡ŠeZò´)wwÐù÷>\¼ýîS&«+çJ\¦6t›°îÒ²MË>^t]A 5 "CÊû³OÀEûéOþ_)/çß(°ô`P•×^ºþ›fßððü﮻ϰ;ùŠ»G¿>Ùé'ÿCH=7WÊ<ë¶ÂãÙíðaIûŽæžÆb<#uòu竟|xö·—ç'“ëMý*`t\05ä3PfšÖD…¡¨wp úpŒÈžŽ <Èz„%ÀªýÙϼû‡ªòÆk·þ@Yª!ÙìÁñ_YuŸv®yáæoýº7ÿÚí½W3€5—'íàó½è/(Þ»’ ŽdǫㄠHÁ¶§`;ç»,’RÌ’SNSŠqPÕÍæ”8Ux€æËzïhïÕ7>º;?"sä P@ `gH’DU‘˜="ceYMu<}Î@€ ržJ bìœGâ<v9ædšLµš±·aé\èаnˆ@Ò ªqÚ>T“)× º²jj´$1‡åÆ%Ó,œ³¯ëñ@ƒ¦ØÝ¹9‡¡kûuÛõ½Æ@fDä¼+›êvÉý „ ¿X_øØÍ÷gû{…È¡’h`ÏŒ^@ƒ©Zv dgwMꦱœoÞ¾û¥ÕÑ„ÅäÖ¼ž×ã™f£{ºluÅ/‡oL½çåЛɭ£’L—=å®Ý”)]¡¨2LêWnìýJSxåÚïÈim@w~ãbý3m~ §ËŸø™/}oá÷†tZä΃ÁÃÓÿáíûÿW"nÛ{ßa0¨¦`'¤"ŠPY·Ÿß|üÅ›¿þíûœ›×å+}\~äÖ2©ßô4ýú×ÿRYÜ€—ný¦³å?C1U@0"XX`sÞþ„ÈâÕë¿{³y«ëßbšÜÜûe°>“e ªë·þàé'^üSЇ÷™ê?ò™_Gοrô»_»û{ï]ûõÇ‹Ï1€L@ÿ AòË93[opzåá[ùéåðÛÊÞ™JÈ9ŠÍFèsL!¬EˆìÎvoߺ‹‹>öèôÞ ÷Žn¾RgÈæ<ƒ52@cT Šä¼gÉÀF®0ADŒ„8µ‚4¯`|u Ó ¤ ¡3Š%iHh1 ¸¦žì°/Ãdèth<¢å,ìÈTr·qå`_ÍÕF@UV8€ DEú¡pž,xO’1O§õl–$Åóåf±¢ªªçeᆡk» €ùbוµ„UvvfÙP#“/«¡ïÛMçAS‘´U۶ͤ©çÏV«‡‹|4-nM½«ð$áòQ[6Õ„ü麇˜æÛ™Vl³ÎûéÞ|qÑ–“â½§›‚avT× êw›¤éä£EqØöïôám‚ò|ý£7ö~å­¿áíÇS›)öŒ»/dôÉËiHOkw«À° . wóp÷;@‘© ù1™Aùðøï\ßýå/ßú…(æ“ýê—Ì¿ú‹àÆÁ¯FÀeûiÆ~Ý UùÒõïœ4¯vÝ[DEA"²9" ¡/\µ~îtõ#×÷~ÍÇ^ø¾‡‹¿=+?úâÑ¿Ö==ÿ‡“雀TTÅþ£§ãÞÁ÷ìï|s‘¡{óÎÿ¦O'œþ÷1- äuÖ袖øoJë[àÒ]*º ŸÉ”¶žíW§$ãVÞYíºM?lF«KÑœ5um7ôCœí"ñÓââb:kf;³ù¤QÈH )]ÄX%9çÉLÑÔ€°lœŽ340RqΡjŠ}½Ÿø¢’4×®œ¦¡‹&bYóª‹çRL‰!¬Ï(öíj¥¦DŠL„I!C,Jï팓9§ &EYÞ)˜Ž*|ËÂj…sc»¦f¢ê™‹CšìÎtT’ÃélrGˆs'ó`"* X9—r¶$ž\É<„@T8®OÜ{éÎÞÞäþý³wž.Ï—ñÕÝúõæ}Om²ºrRóÒ¦¦›¢ÜÝ©ËöéÉò•{»ÒRå§O׫'ë{ÍõÝf:QU%` äýú+Ï—ÿì­‡?p¼ügh…/šO¾ü ˜6t¯m¿8ô ~ïû…qÿxõºüaÛ? •“Í?þçŸû ¯Ýú/ìüV€^dsrñC Ñ¢½wò—?ûáft øòíßuwï7î6¯®6Ÿ*]³îÞr|MÅÔ6Le ýbóiI ³Ï¼ÿ'×Ýû‡³_úÑëÿ1`ztú7¿ôø¿_w?Õ”¯¥x1tO™Ù>õþøêß7-_‹OV?üÆß÷è{Œòñò}ðä¿%¨@ ƒtéêø –òÏüß~Û÷|{Ì£àÏ®LÇ™…©ê•÷uÎ9„!ƨ*jb¦„°Z^¬g±o»vm*ûÅÅi¿8ŸMʯùä×½úÂG=y$dbÇäÍLLÙ»$Æ“1·†l˜ÁÀ±Ï©Ïy…Yˆk×L“eçÉ;a½6K‰!­ÏÔ,]<\¼ÿù.ÓÎG¿–h×®ÎOdX;ç2Ä®PÉg'ÇÃ鉃XM\é+•~,õÈ;rŒÌ*böõ¤œL¸¬GØ^$#R²œsR3vœE!g•< HÎ9«JY¸”£Å<„’0‘¤´X®.ŽW‹E÷ãœ}ÕW½~ófý¹·}éáÚ•òÝßüæûOÿߟ~ORy½)‹&¾I.º[ûÍÁ®ß›Lß}¸\oÚoþE·-U‹U÷™p_¿Q¿zã`ÿuùµ¿ß⌔L(ë†Éãä0KÏLfõ8¢„L05ÈbÙL‰jÇ3 ×@ª¹&5†ÁC ÈY²QWG ež¨Eæ)`'ªí€95X*8‡žÔ²à ¸ö0E+Õ¢ËÚ;b&…¬+çö5b}J-˜c&DJÒ9ôh ¦ g5“ÏÀû]³eÁD¨"# ¢>;ù¢ˆ™™©]òxÑô9Ýéåq÷ ª  YbÌÌÇœSìs ;Ð h’b]ÛMì{š7;»ŒÎM…`<õ¯ô#U²àÖÓÇDepƒ)˜H 9v –5×±ZQNM,õkKƒ™Œç §œœs˜»8”60;+KëÄÔA¸ô®™/r7¨§„ê\c­Ú™É¹Ñ³¤pn4ýFSB`BV3bvÆ…óH–Ä4‚‰$ÉD\7eÊY%Žž)Èì‘Ç“Ü@DsV_¸Ù”7›0d@‹_ó±WCø©/>Ù tÐŽ…Лvl*×׋4„þõ×®‹ð'§¡×( ¨¥÷Ž,ðèGd Hê°‘b… 潫³ª»ÑÁ  2S0¢íp^Õ,:Du:HVå9‚¡’"£Õ»£ ©Hi™ k¦9¢ P(‚¹G0`Ää¡PÛC4üíi‚˜U¡ðtd“.Èód+­2(¨`@0ˌà š‰§À,e…¾àÆÓcFP|t`µ-Lþ Ž™®¨_öÌFêÒÎÑŒbº®UM9õ]»B"çÊ”b·YKêC߆¾—ggËårsq6¬ÎàÎ ÷vg{¤lÁdœt±#1Эm6 ä¬)¨¦ Ô1KîMCèú¦š“¹¸Â$0AŒ Ã*¬Ï.φí»ÐuÙy3í»Óœ2f&ï}5ACìר½Z¶d³z’'³³“ S©÷¼§¤ }Y#! èA³Ô¥Cç•Èr,ªÒ{ºØ•1f³¤€äK…ñ”²ÅÌû²f* 43  Øã´r•‡‡Ç]×§¯~ã¥çþæ?~û¸Ë/í67æ LÇ+œ7ÈŽlR×÷&íútÿ ¹}cús?{ò3OŽw*_;7-Ü|Z:BU»<ÜtTš*("›91+Ì À`   X!’ÁX%Ã<*÷œ¡€:D1-ÄHG" äÑŸÍ(›1¢Gð j0 ”€ Ìö€VEÆHÀ2Ž˜¢%CRDKPfÀlZ(öˆ„F[F;%0oÇ*°40ƒ ‹lêÀ*…„<˜”²NÿpwE®Ûã3GOñødd§š‡ÍEÊArŠ¡Gˆ!åaÚ<„œcΡ[­ÎŸÌv'“¢i¸Íåxæ àèˆ ˆBÆì0 hÎ2H̹WÔ;‡\¸ w©¨¸†”0mRXh`¯šAsL½Hoy0¢¼ š‹ &*sž]'}bU£¬ESPYä4Xâ\Lä y4zu…s59§F ÞWVU¸J„Lž™C~”©³‹qpä}»ÙˆXYV†¥°©¨ J%G;®X·iÝÆƒYyïÞì§>ûäé08Ç7÷ݵÝò‹Ç›D 1ri2›6¾à½Y‘ð°}¸ìÎ׃#h¨ ”òj=쓇Ñx‘‚SÏuˆ`È Ñ´4B@#õ fdDÔ#€¡3Ú€¤ŒèÌ)ª1¢s†ÑÔ2¡¢V8hj è3A–l´1³ 8!È ƒ²gMF…š'êL JÀ†@(n÷RO¤fÁ´"Hf´Bê H1°è [fô‚Ú€l3‡¼=ùñßLÖgŽ|ˆ†—Ö6=&fCˆëåÓvuj¢DÎc×ö›eLYEú>öÝbÝ.BŒÄ¥sÑú²Ð!1(èè¨f`ré NLœÃ91˜ví0´±[frÍDH™ $ÆÄ²ÙÀî5Ð6kÇLj)…>lV©Ý mCòM3HÖœRå}²XTަ×]» ]¿:}„Ò5Ìl³n¡ò®*}áˆ󀤃uíªÊTœdWÔæ)J&ï²€ª:f3C¢ºª@5¦ hªª‚PM&)eQ%Ç$’E]A\U*QêB^w±i÷s_|ô…wiÆÙÔß{á¦w~¸ßÎ}IH¾ØÝiÊÂÕ“Š}ùøGUQ%tbà™ OÓù|¹F‘¬£MóÖ QDµ7³~+¬£0p”ÍH™#HÞjÐh É2 *£`Bs€½*fíd€ 4I7ĘJȳÇ€­Pذì"r¶%cI(PF=G5Ç“œ× ¦¶ #ï 6S#ó€ šÔV#“…±,]`Rd"O*‚D’a R03©3’¤kRçÐÅ$dgˆÊ„%¢3Èãøðï]ZTâ–;—z( DÍ¢ˆTUe¿ÁÍò´k;0@ô9…ÕjH…¯Œ]YÏšzjª}×-ÎÏ«Òï팖²Q#.Æ#‘- @²ÐK·î7›¼8Õ~1tëfZûfi ® çMÃé£ü›Ÿúoþî×}ÿŸºû‰t›^H0å¡]æ~#]›ú‰’jÀÜRΆÔVØì¹Z˽}:¼N“z}ÿ]Ðb”~<;".ÊŠÙ#y.]‰è³™ˆ„” )ŠS–œÕ¬(‹S=ªiá|ɈZ4uŠ1‹Î¥Þ OŠÙ9_Ôµ!.Ö›–vÞÆ„‹Í“óå&‘'~ùÖµ;w¯}ñ½ãu«wïÔl*MA¾ä½Ã½‡61(!,ºŠ(0ŸMºóõz“›©^ág¹,oß»öÝ€µCGˆíðÅ÷Nþªh¨«;¯}¯3Hëþ½Ç'Ï£c·÷âµÿ5ñœp½n¬‡÷—ëŸu0êçÓWnü/W?üäìGšb?È“WoþžuûÁñòŸx‡Q—¯ÞþfOO»qgÿ·¼óðÏ87寶Rßwâèá%ìº/ïT»[M˜¯BQt1Ïgm=¬SÛÆ2Ę”¸¬ì‚‘)Šºà)8t=œEUTrÃUΙY6aGì*1Q0Ta³˜É4§®kóh™‰Šà$£sèsÆ®‹“&û»¤ƒ*]*«€W·g]'‚zy«»çÄ*IœŒçUU{_’gcGUá|@„hK£T¡(BVmúqƒ˜‘ q=›~ôƒOKÑÊÖÚÒKŸwâ‡ø}'¿Zã„\qÃúÿw÷ÿtwú‘.m{ͺ3ïyâµwßøUÇþÝ#kŸ÷Ìù79\ÏOºúßî¹ñŸÝÑ>úìåŸ}ð¶×èØÁ¿ÒÊîçÿÍso}=»ú™ËÿµÜjÎ BU}Ñ]?þ¡'¿q:„q €,€ñ‡žùÚØ] î|Á­?q÷Mßuqû·Jwô¹·|ÿæì#§.ühÔ«k÷ßú}Ÿyϯüé£_vzã-'Ž|푵WŸºøã·ûf`Öwßxè5OœzÝ-Gþ–jwjãgެ¾Ê‡ÁÓg~õÙË?Qûª`+f (€´€`ªîKÀ `ßÞ±˜ÏSÿ×ýzA©‰mŠÑ—˜ªP@J0ïÚǶí!//-¡†f>59v€@D‚˜-“˜(fI[Œ³n¶«)@»»Ù5.G¾^ÆàÍŒŽ¬4¤ö‡¯¼àÎF‡Í¹g–—×$§¨Š’´©kLɼ;ù¡So~ÇGϨ|é·|ÝçÜWŠDS¢f&aêU|é¨ò‚ѼJÊÑ›ðžÔ”™AE¸â7cÓ”) „ld–UÁ9r ¢" ‚ÄLÂ"#Rb1cvˆäÍ,g1׉*Š`]VÙ¡Et1ŠLKÂYçì/ ±Ääš.ÕUY0vón=ö-ó|zkç=ãö¤ãR “"…¹¿·1ýäÚö¨ }òï¢Úï³&½E¨SÛtÝ<„Â7X^éfngk«™SÛ1P¨–÷"¸P\FPrAÅT1”UŸ“@€&RÖÔÆù ’YÛÎv7Ód›‚/WGå .˜É‡,ÅJËÅðès_Y/ßJv~0žÌÒt;a MÊj³(—?ðd¼²û²C«[³f#Ã.à{?vö¡“>÷®›¾ôLsF¦r>mw&Szç‰!çØ40 ‚ cî1¹jJJˆÀŽsÎD ´ë©m2`v9){l(€"JD€>guÎ+1Íçó”:fòÞyvÖÙ¼íœsh€ƒº*™ hkw<ÍRJó9ÇͱÃËUÍMÛ¤Hjäš$]6_VÌ8̈|UøSý¼>,1ŽnXýKL£M|OÒ]éBXnE’0±&¸#@…‚•áÀ§ÝüÃEqpsòÁ‹[ïô|@t|9ž?µ3ýÐúè%e8Ï\ø‘Ñàþ[¾öî›þ\Þý=‘ÎÁ°ŸNõòNóÐÕËïºÿÄ¿}àÄȤfŽˆ@T‘ @…a2³Òv\‰Î#ŽK:Hè°•1:ryçMg6~îæƒ_¶>ø4tô±'þYíîø´Ûþõ‹î~+QqêÊIÏoübàå•úÓžwâÇÔÒÇŸý§§¯ütàÃ%`^göI#IÚ_'áž÷µ‡ÇöÝ+™ ~iåÀp´ÒÌg±ë€]Õhyyu0¬L¥kº®•íÝ+W.MæW”£ÕUç\Jzæ&õ,§l©Óf’Û±4³4›6Û[ÝîM]9Z®rUEJlÔ—¹‚u¼thõ®o¹c°vdtðˆs ’° Q+¼ß¹´}é±ó•Úm«Õ Ž>c_ò=ŽËHúð3üýæñî\çÝ•«§zÚ´Ë«£¢*¨oNˆ ¥®m¦¦‚Hf}ËŽ"bb9&SUË"]ÌMdÜ%‰30+B63‰Ú¶ËÙbʽ\Â{ßÃðÊÂWeaIͤK¤f9õ_ë¶IÞWdwÖnoíJNƒa•UÆ“Æ9?žM»l³.) ñ´º2"rÎùAkKaÒ~ü?þ9¿÷ð§ð©¯OÀêè3:i›|%ÚÎòà®*¾¸ý»\BóÓöÌ?ñÊYwf}ô‚ºZÉvÁ‰T1^½°ùÛÄE]Þzeò‡ç7ùêø×Ô¶å}ÑÆ—wÞF(Yf€ –ÕZpXŸ¾ü懞ù†¥á½KƒçFiZS…6íÌÓUÄâÆµ/#ò;³Lçe®Oø»Éâ,_T]û|èòÓ9_>wåçÁlix÷ÖôýÛ;ᄎù[]¾´¶ô¢IóôÕÝ÷•n)éù?}âo¼ã¡—~èô·Ìóù›|ÃAјòŽjg†lƒO DÚ ¼Æ=˜&Øu!J}0’˜AªáhµkçY¤ "à¥,3Cêt«ÛHÝLM8øÒ9».çä‘’êâYa`¦ I5¢&ËMг”f9fQ¨«š¸4ðXFD€Î‘jî²0±©Å )”8M®^B&$­±H14TÎù‘†POÜ$iÀïÎg§N]¡ÞÜÚÞÏF£•’cò•'v¦`f’ÄDÕ ‰˜˜h¥@Ä,BŒL”SRQSAÇÄ ŒFš-õL ‡ †X¥Š’Y¶œ»ä;Ç)ŠJÕsoõͪ\€ 9IÎ]g€(¦)šs”sîÚ€M;/ fóùœ‰$&ªB…©:©Éˆ~Aºã~Žì¨ ´¬À@Õöüg¯¼ùèêW¼äž_š´´rtí/M›§.oþ:ûw•È’¤ÙùÍ_¾ó†ttõ‹'ÓGû`\â°3þÀdöذ¾ëésoVåí‡O_yˉ£ßôÄù×·íÆwEE2•@Žg¯¼mXú¬ª¼i{òá¶¹*ùCÓæä]7ópptÒ>=ªn]©_puü¾+»ï/èðt~vÏ «Û¯îü fØÚ|¼\¿q<û¨ÙŽ8ø­·½áêä÷‡åݵ¿áâö³î êÛÅѦ;ß´—‘A­'›\Ûªòç}þ?øœ[e(Ò—ª×~HhˆÄ!Hl}œˆ{çB`*¼1Îsš_¬,¯/ G±k&“›Ž9²¾žÚFAÐP“ä%5)Nât<Ù¼ÜÌDZ™#ºjm}åØMäꢬ!xDÊ)2sì¢h_™CeˆÉ}Y‚ŠL¦¦1J䜇«ÃÑr]//ù*TÁÕUqxm°Têrí0¸ñ8n\žv†õp4*ksŒ\:ö‰MÕûà|`ò!T½öSrVQ• {* •œc\À RÛ˜æ¬)•Ž!ňD옙XU{×…¤œSœîÎÆ»ÝÙù\€˜Rç|Á0¨ëAí6wg†ak>åã‡Gƒ2´ÌÛvum0¬ŠgN_¾º=IèÙ ä:”Y¢.ÖÁ­/H–ÈÈÐQQGwgÜÜ}7‚¸,[v~»é6-¿tXßSòÁ«»ïúØéoëš3ŒuYœÌÞÚùÓñûšoìâÅ&] ÄAÓ>Ñæs95§Îÿ9Ÿe6ëÎþð“g~PuJÈHuÖ/oý€ÖÅÍ;“woŽßGPoŽÿÈQóøòÖo‡b-¦+ÃpÃrý\5yúòO9ƒŒ„&Œ æŒM²˜V×Vg* ·=ޱ3Ú`âg¡ÆV$[2SC‡D1e2@õXÌ›Sxìo":G¥d„ࡼ°ñßÎoü×=b™:®Ùº|ùÃO|#"1•Ê'N}2U„Ô"óÒÆöŸ\Þz§ó0e*Ûö܇ŸøÛއˆ À“ÙÇ?ðøW9¬gyó}~"3•ˆjÆžþ—fæ¨~ô™ï2Ð>¸´÷L;ª‰ÆöÜ#Ïþó…€Å =Õ”©q<9xƒúhûÍ$.”îfB`“8N)ÅÎ$5ó&5sçÙ9ØÝÜI`„¬b%3æ$€ìˆrj%΃ó)5ÓñnÊY›Ì³_9ÀåÐ E RJ=]¼‰-2&I]7ŒFN”‘Ø™!ÖÖg[—cÛdtÄ”rj;S¢Ìj`V û¢®ëljfd`dˆ ÎÞñ¢•sÖ,èT$YBç8TÌb+º ìf!ÉÒ¥(™½Ä)ͦ>”D$’Á²F@Õ~l’ŠdïK0“¬)¥”Tg‚+N^îÚÜEišY\ÓÌw¶óúp°6_šäíYZ« ‡ ¤¹Kèú§5ì3nwK=ÖÑEÏ£E–3,¸Ùý9ðn‹+Ͷù½È4 ŽŠ½ƒaHìq´Gn çmdhhäÝRϵPDp<4C@aìGÐÁ¢GìOšyÅž¿bÁ¦4223âŠͤW|¢²'¥!ÓÀ1íg™™ãѹÍÿqfã—9ø¡¨,î¶½É À^$*XSczÝ òzx*,¢e1TõpÐÌSl3¨÷´p¹tÎ —FÅp¹ª†DŒš‘\#õ ÁŒ"mÓL·M²s¡ÍÛf^,¨†9 ¹HÁû˜[É™ ‘É#HìfFÈq(Q»lÖQ±´’Rjçg˜al»(à= ˆ˜sÌȘ»¨9Õ€1£‰!ZÖè²C& TMY9C!Y¢s…˜Av1GË)™˜JJ>0¨H3WššjêÌ—¡…¨ !8GHœR΢`ÊH’U-à 0§”º”²BÓ$f®A¯Ìâ¼K’"3ÇS@&+ÃòòxÜ eÅ$ª¢ffŽk¦ýÄ”=Ò.ÐY}§ÜÏØ®O“è׋/{ —é‚­»Y죚LmŸqÚË ÷ëÝþ}ì¹™MöLp þé"°Ä®[öô`™Å«Ì@öb ö?ÙýÏ@÷?‘þ/u´ h`º÷Ž÷ b@TSE2þ$½»»öïÚ#¤Úudñ>+~OTfÐ_`u=ÊE‘cUVjø.¼­-(Š2Æn¶»%*ìÈ$gI½Ž8¥F59»VÈ ÖEM™È‘@JbÖÔê9w(0;vÁRêºIŽsŠCι¢Èª(b]ƒ‚ì@ jçTM³æœ™)&Ëdd‚êÀ@aA¦´`Ć–E$÷W“‚š"Ѝ2䎙£$pEÈÒ™8êi"I$13°hëó·,ç’ PU{&¨ö÷[NyP»”⼉³ιÛî¼™4]ì‚w`†ã ê`î>0¾O¤ìïDZ\Õ{G¹ÇÔA†EÌ.-àªF¸Þ(ô± ‚ˆöJ-B4ZDxïañ’f×K®‰cú#/ Ö18P0Ôë 4{"Û'gïï÷Î= ö|²þ=ªJ×E Eá-HP$b¢²Nê*§\ VPewüìd²WFˆ”M°Gt›2úÆÓ-+ˇoª&BÇEˆ)wJÄE¨Õ€8”aISN)¶“±J›I;[ÓäYÓÎg]J˜B ¡¡´lÐ̽)¥>DÓŒ<ª8Ep1KŽ©IÍ%rì Q$§Ô†\?èíèÄœc3ÇD†j Ld–ÛÙ”´O‡E.‚A–œÁTP•Ls×6bª@f½"¯újÓ6+ƒe2Œ]ÜÇ%ï×_Øiç]gVêrs§O¢lŒ»­¹Ä¬JVlc*xw6m› Ñ-¼9¦{ß`Éb†CMà ³¨ªfFGèûb@lÖÛó’Šâ>^ ÁõÙþMªÂ\ÿïUCцѹ¤sÂ@à2ªªŠ0;µlªL €€ZVˆ^M ²ÃŠ0ˆšªvJä¡wD|‚jýÿêÇu2襠ˆØ÷ïŸ<ˆDÆ=²Ôå±H.!°¾pçë Ä}˜¹ž;Ìž™‘£i΢iº}åt7oŸPEr…I2™DBìLw%·KëÇ‹¥D¤dÌ^C¦(Éù9b‡,¢€È\8öŠÝD¦c‰1v9 ÉbvÁŠYÐr5(stfY²$pÄ@hšrD𢒲å,E”4“0925‘Äʪ‚L†f9°)hFÓÜdMÌ€ä$&ÕHÎ;$5sD }dȈÞqY$Í)a#æ  d1Mj=ª&ÁÈRw½I 8„j2ߎ‚H®M6›Ç,b„•ëaÍJÀQ5e…^öj{éw`6(ïÂçÓ3dØ/ÃmÒ]jòEÀ‘Y»Tß*VµíIï*ïo÷äÔº$[Yvb7)¸ ¾Ú)ËÙÛöŒ&E$E\”+¹=cæ‡õñ6]Ѹ‹Î H(Ž•|`Þ=üaïWgÓ“`3ïýjUjºÍÒ0OóéÙœf䲂÷Xϧ<(ÀÒ¢ûÄNòZÞѧü`q•@Ú[B Ú‚Üô l¦Å®i_Op=a‹¼ø‰™U%¥hb`Â’ZÓÆÔÅ8Ûmg›ÒÍ­SëºÜ5· Ú)°‰.„ÉVçËe7¨Œ%øeÄDŽ/D9_R0EicŽ-fäÌ% %¸"¸·22™w“ív:nº‰z+d8ʇb›éÈ&—Ó|Z®-ÏgSÉ s˜#"Uí´]KL‚˜AÉÔ)KLš…™uß³°¢›sŽU“™)©’š#PŒ’…XÁrNY¤ðH䌙QArê¿€ì R-Ké7¹UsDPržå$è-g !‹æ½÷©ksDÇ|i:© c&UU&ŸUûï¡g§šMuŸmkª„>éluéù/¾ã§;ðØ©ï9yé ¦xlùå/¸ë³æ©<ùµ³æ)÷À‰ŸV'~ï#Ï_¾ìùwýølþ„@KX;^zöÒÏ>uñõ BH¹}Îñï9´öê÷?ö7.ï¼#Ð’Y>~èsï½é»>üä×Îãå—Þó«)O?zú;®î¼ ÁÝuüï?üÕï}äKn=úM‡V^õ·_ÛKbÛ7xíso{Ýã§ÿÕîì±ûoýá79ÿ]“ùéoù·GÖ^ùôÙ7ž¼ðã„aQ ]W§ü¯ÈûaÔ}5NF¶ †Ñ" gQœj°šý¯ß×õP"vÞ§h)gK]׌‰Æ“­f2™î\•**Ç®L´¨ë¤»“&vQª"LÚ¹ ˜¨ ‚ªî™Ï‰UÛ²8róÁ¯DÚ¡õ/|öÒÏM{g]Ýñà-¯ÿøétuö0ú™­ODÿ3ÿ mÏVáÈM¾òžãÿøÂÖo·í“Žj"fª€È#ô“ ǸŒTEÎWþÆûOüà{yÕ¬9éx0êtw 7¨µó´y5£ ®0rÔáÊÜÀAšQ截AKÕ¨„®,$Ƥ"¬­S• Éœ˜bVÑŒ:ma2e¼ZiBY8— 1q>Ôn6Ÿ‚’Ð wYr›ZÎEYd¤–AŒ,²È&‚@–2eÉ FÌÐO¬ 3¨ ÕÞ 1d˰˜?RŒ©‘„à’&¡Å[£Y› ¬( ^ê,ç‘êðbh~kÞŒ£tY #1©¨'U€¤È"„Ȇ(°ˆ(Ü•á àÆÃ³é.–_¾ºôé*ÙËo)yýž›¿7$ €€¦qŽW“·2ÜÌ>ìÌ>$6Ef]?¨݉²¤&Èæ ÕÀypnùÒæï_^yÛá_4Ût\ pë“ô("ÖÅ1@ Ù&uy×­G¾‘E§FŸ}øÀ—>uæuµ;j0M:Cµ‚Öœ˜G4‡×1ñþ7õöÿyïz,p¿i"B3Üãc/Rf÷×Ì\—VÚÉZlf!ÍÛ‰Z,/X»-ª!›23@`ïRŒq2“vg'[2ëÚ­]rTÖUîÌTr§œ°jR©Q‡¾,º¼«*ÐA×t9Îb·«q’±#îR Õ ùUP3ŹÄdž¤Ûnh¨pŒÄÁ)Kè&Ó¬t‰"ZÕ kQ”,Æ@ÈjJ“tÀ@Ö;PUr¶é€Ì"0çœ4ç¾íC7Úv–’ô2IN15j‘QÌh£q 4ªütÒe²ÕAíÐÚd }#²yy·ëÄÁØ•ÞWŒŠeYŒ·[_”ˆ‚ˆ”¥=¶öEu¸igúÐÎäýüÅ_=~àµ÷Üøíg7P~öÊOª;þʤIÑú)ó ë¯N. _|ÃÚ—ìN>¼¹ónS@Œh À¡Õ/,ÂíŽëY÷L&%$„Ô" Afª?zæ;oiŸºýØ·€Iº:þà¡ÕW?÷Ä÷]ýšwË7úJ3Ýš½+ðÊsŽÿËÂ[¡Í€ýþÛª~êŸü/sfö·ª×Õ0¸_ÿ÷ýQ¯¶XŒ‰`ñ»"TƒÑ¨™tPUE]ÏÆÝtÒŽ·'ãm*l6Ýæ>{É3’ø|0@ÁªñÖÆÆSO«ÑtãÊôÜÙfßqòì­÷ßðuí‹ÂÛÆ—OVÕQ¿´´õ±Œ/lÔÇn³”twsvé\œL<²ú|N³¹æìB0@Ë­‰ó)%fМbì,eͪ¨ŠŠ•ÏÖ"¡¯kíºØu)Ú`¥&¦þÉ6Ùt+m½4Ð,–“˜fTd L9÷:éœsÿ…UP”œY@Îqq3¨ÅsÊͼébç«27ct„–²ŠAÌX:/9¢$T®ª‚¿¼ÕŽÛldŠ^\¹ Ïh&,@µ !8çcTUî‰LáÉKo@Kms¹ô#00uúNUN›W&Ïé2S”Íâ#§¿ß9¯:Û<ôÞG¿ š ´é¢ä±sN-  øä…}fã§Ì€|Ò.m>ôô·uÝé$òágþAŽç³6L#FÿÔùŸ8·ñ›³ö,oí|èÃ'ÿNá×ÀhÒ=Þ´ç= ÏnþʹÝ_Ÿ·§˜’Ãá¸yü#Ï|3SÝéyB÷á'¾ÈTf¥X»Ç<ýß$Çü¿×î‹iûµ×À‚Ç´À´-Ì„°h¨'¬Õ`´|PrngÛf*†©‰wŸÝÞ™†ªX9~3V¾ r¦ HÄÞ±\]§”ªj¼•\üá¯þz=\;Laüì¥ “ö ó«¾ð >ð9 üò1®@(–ÛÖ¯]¿ï%Š’v·Š'?¾óÔG§Ïׇ׃¤ù•4™µ±Õ®±N €:(})Ò¥N(*$””3 è,u[3ø°6ðì¼™4mNbŽ,‹>¶q<Ù-†•JBSÉJˆ¨ ˜ELE{à !Š*£HBrf‹ô6P@J¢9 )XR1ò€5%à,ØJÌ€=-WE‘:¼:‹Wvç˜'0CS Þ3ùrÅD¨¡pU]w±›ÍÚñ8®ChDœÎžb@f5EO§ó“€‘$>E‡‰ÌµñQë ©Ì2Þ™|ˆÀ…phÆ€fá’§•ìlûâÕbt¨.ë®fÉYT¢`´ÎUÞ%¦œb ™ ,£†ÚuÝ\TÈM¦’‰Y‘@3YÎ Dœ³C5Ddìy"ý­oÞõ{h)‚›‹öñôÅlÒB‹YzÂ÷N’ÐáÑe®+>µ“¶Ú5‚ÐBfLj–<ÚJ=lrã}5›g3‹’ƒóŒ Á‰ +$È8«Á({™Õ@]ÐaVÈ€ªê˜‚!©;·Ô¿<©ÍB‚žöh†L°D JˆÈ`j™– Z°ìi¨{µ—bvÈW " ª™ã!`i‘XTÁÁ@I÷ ’ÎP ^HqÄñ öÙFˆH¦ûͤý™3ýVõ“`c{±¨Ô«@‘öÅF„f=,ëz©ëñ!(tL‚ÐÙÅ” ´£"")b(ke&$ïC;(n:qäÂÕéÓ%J-ÍïzÉç­¾5w’aÐBŽ]ÁƒA¹šŒ±¡áèÆ›îÔáz}Ó­K÷Þ?iÇ+çŸ>¹s9¯9tÿ óåË[§žlNwÆn04DÓAa¨]Õ#‹¶'Ô}í\4M Î{#ç›y›S%;'¦D˜“‰ôD]D KITŠT B2爲ˆcjšv6Ÿmm¯\Þœ5y›"qQVˆŲ̀§"²/ª¥ä¥<ŸlcYÝù¼ûf›“÷ÉË6™)–@œŠQE Ãõ£«£#Èl`xïËw¼P1M> #¹ð¾§â4…AL RT0©µ”Š•šÙ¡sže'ÉçXî‰ÌQ"gSIhÆÄ¢æ‚GÌ¢B ™Ì!‚æ”%¦3‰)…à½÷9fMR_zlIEèRrlHØ2Šô‡>Šî4‘}פTyÂP…Ú3 `J†ªUQP%1Áµ-øBl™³z¿vïMÿÄû•§.¼a2y /^tÛ ß´=ùÐ3ç߈þ9'þEÁ‡:óíKå î>úÍŠ­Š´z5æî•ÿÞ´OÕ”î<ö-+Ã?~ê{RwU¡=°ü·Þð-§/þ¤Üzøo_Úú­S—"ð p}ó¡ÿoTÿø©8¸üÙ·zÍ©Ÿ[®^ppå…ç6ßvöÊÏ£u'Ž|屃_¼±ùÇO_ú)bRHŸ4`´ëÚ÷•ï6}ê5™ØÞ½¾·ø^œô>Œ”k¹—=³ó,Þ‡—ÞØÎvó,·¶U$xŸUÐ#‘s ‘|L…]1qvK÷…^š^¾ºóž§Î|ßwþË_ùµ_>sæÔG>øÌíÇÖ>ÿ…÷5[;·|ö+ÿê7ü£áJUzˆy—qê!KÊ Ð5ŠsÓ­<>XíL&yÞL¿àUKÇîݺø±P‡Îž>«ƒòÀf2Þyv#ÎÍaïN$¶É/×+eøÒõ€Cèí½  ¦±;Vã(rLm9(‘1ÇŽ»f^uŠÉHÛ¶Ï[M’b2‘Õaé Ü58¸TFuÈœ³íÌæ­0*ŒŒ r6ÖÙÚpÀP©©qOP±hªÙÐhX:1›·ÝpàE¡ébo¨À…R=3ûüÕ›%ˆêGfß š‹pôÈꫬ¼ÚQuòâT»+¯U·?|ö»B8rpýóŸ:ÿ£)o Ê;üܛ־èO>öj3ÄÚ@­|ÞÚÒK?ûCѶմ 7Zþ¼í÷ ¡ÕW® _üá3Wþ+ }öêèÓ>õoËêÆ#þÊÕÙ‡.OÞq÷Mßz`ùåY¦GϽå‡&ñ™éG "À@³~Ïõgx¦ÿ÷ÇÝöÒ¸¯Õî×@ªJD¤ª½Æ¬?÷D½O ˆ]YŽ NÍò‘êÀVuõ*:‰*`g†Äd†@ÀÞ[ŠìëÐ7ßE•—–ÖŽ=xøÀÕV~ÿÑÇÿôWÞi@ÀÕÕ [ów?uÔñ[ý©·½÷£¯xÅË>ûEϬUU1LÕdXcVf¬8rûЙ#©^:¼4òÃ_ølyàÓÜœ R¥vZ­»ƒë‡«ƒ#jÆÝ³ç.®®(GÀ(Fi<×KÕµÚœvì*tÙ¥6±gG£¨Úv sçÉ!‘*z¢œºÊSUS²cìb“¤Ë©Wti×f˜å0ª²p¤ÏßsÀÄ@€lP9GžY8 tªfc2D­ÓxÚŠwÙù£€Ñ̼鼮o?~àoLÚ'<-¯ pn$mKŠ`–n9ò·:Ù>yþ?`nUVcC8wù¿Œç ÄㇿæwüØòðÓ6'ï&DSý¨(›uj}¦vfÍ €wÿŽ6^¼¸ñ‹¨Q5u@ ÒxûÃúž;ÿ“çÜò}Y»¬“÷?ùåíì<;ß[½ÐÈ@?ɪñçxÜ÷Ç×L{쎾QkF>\¬s¯A†Q*Î{,Š5;„¹i.+–OåI³qùò|:®¨† ý|SdáûfÏÞ–ACQ­>tÛ³ÍÏyÅú%ˆïxúÌyEÒ¨Ž>¾µýS‚îÌï½cü¡>¾´T†²![¾ùÁ½a¸\aíËà/^¼ø#oú¹àË—=p×`iôË¿û'ïzøò¿úgÿpõÈp¼yY².¾qéÐM™¥èfÃþÎϸ±<¸|ò±+ÏZÜ»Îð+{ëm DDD0,ÃÁ›¯:[,,§<ŸŒgãÝ®8B2bE2T"b2rD¡¶×ÇnÔ€<™~×~ÁÍ}ü»ã""xJ1á±Añ·?ãù÷ß~ËÖÆ¥Ý‹›§Ïœ‡éôO<ý ÀdïY%ÀøçïOûÏó©<úè{ú¢¯ù,Vç¯Lw.Ζo\2j¨¹e7<–|(µ¬“Ê7m.2]yúª¹Ç_ýW_RÖUÎYPƒ/½s1vª"šûîI$k†,Š€Y•%›A( µØÌæE™ô¶ßÒKùÛ¸ñÈ™ù‚ozàÖV›ˆ ʽóÖÊÕ‘{Žça›/$§ÚÁ‚‚sS(Ü:½*fÖ~üƒO~ÏKžóÇ÷ŸxcÌ“¤;l¼Ç™e€µK/ìò¡åÏ8}þõ9{"¤]ìœK„õ®÷ç½»ý¸HÜ;Ê×Tb×wÁp]M/E^èqŸAÄ®(k‡FK‡Ó¸Íšû4ÿ…ñÀDÍ  ±z¾ þZšnn}ö÷};¹÷?úì“/œ›µðª{xÙK_g;kŒê%®ÃèÂUØÜi§“«*[†ŠÀ Y£{_Ò£eqÃÛßú¶ñüÂÍ7¬?ô±óÛ—vÖîèÖŽ/·“1råÂR’–0Ýr|Ý£ù¹]$öa`Djèœ÷ÌC‰y±j Ub’.‘÷¦B½á«§zdó>ï…dÖÍA!g™Mç`Î ¼§FÒt GP013sY”M”:¸‘§aá3f§æ]I(5R­˜Õ ‡„`ª9§²äÂ÷œ)Õ,è)IÙc'"ç<_®ïU÷ˆu‡–_uhåÕ†ÝJýÀñ_5Ÿ_Ï˱»ôø¹ï~aõ_«ú¦”w r¿sT†õÑKNüZØš¼OdNàÌæmº7üÒîâ®ãphõs m®Tþ00.ƒúg/ýø oÿñ"7[ Ø‘Ø)Üwâ\ý¼³W™°¸aí‹OÜø§¯ü”ä[ypåÅÀ8X­C ƒOÖŸÿß»™þß&3ЧÉìé6í½¿È#Ø›TîÙ€¥>îyÞÙ»‚êƒÇn™ßù<6ºrõÊîöÕ1&CPSb1SeW 9È„˜3y.––= á`Í™ý{ü†ùôÜ¥ >qúüÆÆwÜ^ !HUÑQ¨o\^;|áÊ‹ç/Åî©Y7S@ø!†ƒ¤5’ãj–›íÓçÿÇžÆÂS‡à–nzúÅËÏ}òñËãq|îóoÛÜ<ߘ¿ñ–/O§çms%æÛN¹ÿÅ·–¡Z" †Î¥ÙÁÑ€Ô2ó¡`‰“fBÎyôMÓÊA;kÈ12²÷d05±MãÉ|s’Cí'm×å|àÀpgÖu)¥$Îy—Åä½  u@ÌÙ‚!ø‚ÙL¼wË0Úêe„uL6T G}H–-ìý9~øËA»ÇÏþ»KÛ¿Ë&¾<úéw¿å¶Ã_sòâOõ1ÕtþèÃÏ|ë ïüiQ³^öÀ­?  žV‘ÂÃOÇÖ뉆ŠÎ^ùÃòæ[}͉Ljºtù©Ko¼¼ý»·þ[ 0a\ߨþ?ûwÿN„…ÊÒš;~ë­‡¿áÊÖ;zê09wûèîãß^‡#=õOäÁ;ÿSéýÁ‡_Ôtç‹?Øÿ±v_Ýý)äbñ´—µ¹_$õUíÉ‚U?ÁæÍ¨jäЫzpð†áx'ź¹!f¾G›’#Ä ¥Žã,J„VyÙêûb8pè²¹Ök·ßxKnšSÏ<Ý]>OËGüMÇó|N2áTÞvë-ꢛM?cÚn5ó™jç]eÐuq.bŒ¾ã"¸"PÊ`vbû=vú•+W¶=|pkûÊÖìâ¶ ‡¥ínY–åÚÝt[}ôŽƒžœ s€$¹ï*)·¤ì˜$v"ÁÈLc‚lE(ç:gçóZ\$µÞc›3§HEÉ1vÞét2+Šað®@ÈZ2)ÑÑàÄ”˜± 7Ϲc ì ò“®iÄjFR%Ä:xÚ/aÍCj/Ÿ<÷ƒç7þ[Îb4¹ròÜÅ ¥ísWÞ¼;~„)°s›“÷>qúû‹ê€`7‹gÎ^ú9űƒA×7&ïÚ˜¼Ãñ(hàbgü¾÷?þ%·ùöõ¥Ï5³3›o>uùËÝæ¡KWþÛöøCÈèqéÜÕ·¨ŒÅq?ëžzöâž6§ŠúØÙ7»òhAmzòÜÈ陘Æì–Åæ›[ï aU-õ}!þy×îø¯èÇ¿þ¯AÒ=­Àþ‡é-¾×¿‹½yäÞÛ,°6}8‘!ä8»zåüÕ‹Ï^~öãuYÞy÷s—«!ù•ÅH¬Y@”]P@ò¥lo·—ÏCR&¯ÕÃ2¨3„:Ý™4çOSžå®Í¢à0Í&d”èæ­vI$Ïæó.¦N³äœÚ®MÜØÏ%oÇ8ËY%E¸: k³hÔÀ ôÁÇõõZ~àŽµ9v!䜚©Ê|g«ÙÝJ9wMªIrRI]ë}ÈYúÑ­Áyç‹$ÉÙÌ®\ÙžO¦›³g¯Ì˺ޜt)¥kpÝÆØÌ¢*ªéÀ‘TY D&(‰©É:kSdG»ÓÔ¢9Ç„°3ŸUί8ïͨrW·ÓýŸ¾ñu+íD€²ÑÌP@K@›‚ª¡2ÕfI³Lp`¦j­dD" „…™ íÓÔ‘“ÎÍ:uTÖ€Yaª dâŒêœH2"/¦eMhÌŽ˜3ˆb30Ï\˜A–A=Õ}zÇ~e±ÿó'y¦?iëÿI#ÄO*þÏA“‹ì¤½åѵÊiOy½i¡&ۛЛ"a‹T0Db†£uQëºùtçj›òZ fº7¾D&¤¬É3#"T8(lÚBLÔµTŽ´ö쫚øŸ¦ãÐÍšÉ8¶»ƒ£78v µmžlÇ¥ë|š»(ª±µlš%ÅØNšñØ2tóÖ:Ä”Sl$u&ÒÁm”Á­,…eW¯Ö¯åˆ@‘µ”µí,ÅVuá—Ì9‹©¨ä¬ÌctÎ1sŒ]Y‘œRtžM±,KI‰\,£É¼éº8\5I ™4jÒ¦@…¨4‚,ŠÄœ+‡æ0góÄóœ3ŠzCsQVœ«™œIÒÜ£’÷²_ÈÑ’©1'PC1#€+ ($0Ðà†j-šƒÅ¢Å’YF`[˜ú¬W‹0€z `"›E€Ì1Ž  V“Y&"‡¨„ªÂ !P‰àT )!Š™c^Ð$ÌŒÁȬ—ý¹ßî®Ï‡üÔqûB*°Àä}‚¯ˆi‹½S_‚õ̱Êáh}´r¨íæmÊbBûf$\Ä…"!)˜©fd.–ÖbÚFiIÕbƒžÙDvç’;EBQ&ôbV­‚P§˜`¸BM£]2p]î29VËÍ,©HNhš"U\²)‹zôÇyV+EÙù‚ëP½¼J! 3ˆfÍÄ€š“öÆ>é&F $çØkΊÂ9—%9SK)yï‰0Iî¥, °³;™Gaâ,Ò¥n‚g+GÉž\žR  Ñ ZA@Ë"ˆèS§%‘GcUˆ.x ˜;Pc‡DxÍüÐËy )ƒy4TȈ¨Ðö÷‘÷Á¬JˆÕB§± h@#™…®dá¾ê#»Ì€ÁbB…@Ñ›å>e(0 )4ˆ¡OÝ# ª)#ªVh©GUÃ_H«j×?&®9S÷õ1ýú´ üÄ^¶ß¹^{ר}fp(*òåánuÞwóq»Òyë÷“䀼óý@Ç Ð²9–yWµ—EŒ$éæF2Ê1Cl=±¨J¡ ]U7íŒ-pFkÓ\r  ¡m'9Î,ÇÔÎÍ¢¢ŒìH5($_úAÉJf¡V΢X —Öªå5b¨9'#`í|’ÚFsêºUcQN"ŒBч„‰ xïÙ€¸G¯–Ué½§+à<3º¶ÍÆDž‚jíQ1›7#g­ˆ?k·[a4HÒ¤^ûH (€¡AåÁt2yÌÐûjµz~jÏÏâ³È#Ѽ2¼Ï°žÎ>Z„QYÜç‰Uc”«I·Ûf« BzÅР¾x0>Ž˜\Êi4¸hÔÌŸ#î(x}Ö<ó%€a‚œ¡«â XIDóîÙ˜/±1aOúU25@½ÌÝ¿Á"‘Ç®¿Ý‡x¡,èïŽEÁu1Û»Ý÷Sÿ`ÿ?"$ç8 q»1z!æÀBF0ad3Q!çÉÑùjeEƒëùwýØtö˜@üøÀé+?ÿعðˆÄ˜e~ßñ~põ•O]xÓg_g"G×ÿÒƒ·¿!åÍw}ì‹æéܨºåÅwü—ª:~öòÿø™ï›BvTÔÞúï—ëçn`ŽTîNŸxôÜ÷nNþÄÛ*@0ÅÞ0ôs±/Žûµ-Ó5Iñ'äôµáÞf?ø:ck¯&XŒ2 }(FË«;g/ùÀ^Ô£IrX1æEÊ6"ªˆ1±óFh!€w®ôZykæ tÑšT°CÕØE˱%éæó.²ˆ5 b´ˆ!›(óõp¤fÆɳ‚"{D`%I‰i8uÅ>¨ ¡3Õ;d@S‘œMÙ˹3$@ñŽÙûQQÆ®„œ=sÎ)¢ïɹܵ9ËpX×ÃɪªŒm²Ó9‡£Z‡®Ë 0rx—.ôùÛ æ™À©²¢·¤›ªÓ$[m×.CÀ@ØêÐ#ÈÍ€UÛ¢ÍÈžzk³!ƒØ>T] CX̯AƒW¯àëAjAZE®¨®]šêÔ¬5‘ÖDÐ#°7 ¬Èѳ3×IöÞcV‘äCQÖ5³7°,4'G}´o–”bL¢&ªjÖ§‚ªI.ŠÂºÎ³ë{ðª,Sl€} Ç`]ŽUác‘eS”å°Â6#¨”hCæÊ€3÷'tˆÊŘhg69·=n’5 "ºÂÛ‘ºöDšòÅ­û4JCÑf½º÷ØÚ_=»ùß,X{ùhxbsû}ý¾dÖ>[Õ‡Ÿsâ‡ÿø±¿"¹ï®åG›Yn&éÉKükwû;‡—_v¶=­67È Úxᮿ­K— \N `6nÜêðEpfã§n9øõ—>çi~Š;0zaì¶ž:÷Ÿ·ÆïeY2êÚæ"‚sP@f |MÜk@H×G'ýykflA!êmô`ˆûg­ëÛ/l®›»ï "û¿5 ½ØVÔþÁ¬¢V”øjÒÌê’™ütÀx9.‹‚‘Éh)Iå±ÍÝSóù$éÆ K…?º¾DÐTAûtb2E$wÓ¡¿ã?œÏN./¿àÄ‘¿½¹ûž~͹µûÞ+»¿÷¼[ìùw¼ž¹´ýX¥@˜©42t$’«âf¢ZóLlxòÜÜzô›>÷}O|ݽ7ý½aqGê¨ô·^ÿÜ­É{ÎoüÚ¨|àðêç^ùÜKoõ~mO]~ØñÐs¥ÈYDDòÐËbÁp,¼nuó£™éÅ/}Dîפ¨¦=_¸ŸÍ_?²Ü‹£é„=0 ‘À€ÄŒÁ¡?˜L·W“ «!‡4ƒ)¨((¡˜hJ„¬˜‚IÒÜAf̉rT®Ì@³ ¢¹” B´³*c=0ôΛCŸÀêî.So§75%B!dFËb)#@YW!„…œÇ$ç `ŒÀ*¨YÀrÎYE@UT²I4‰BŒ]Ò.1³ª¥¦SÏ@HÀs;Ÿ·99ïbêR–AUæ$I¨*ªœaKò¨ Uðš5›ñr9”U]".òÛ.>vu÷©éÉ)¨›‚í¶±Ë’]›l7d<ÊAm¦¬,›xpeø ?ü5m¼â¨Z_zÙúòËD#—篾µtï;ñý ˜åúX¥iJWÅS]ÞÆÞïÌ>(:AûÏòy{æì•ŸY~Æå­ßyÎÍß®j³¥¥»¼[-`õžãÿ¦,o€ƒË/=å-ãöÔ«_xxùå'/<¬n …;læ’n“UÙ¦ì¨0Pî÷‹„¼?ïA$"]YCýéî­S¶èJqïôIÉ«×èeºP Ú~üÒb¢n´°0·±Ãéîxg«*\Y–€–srìÐÀ$9WÌ%Å«àRj,‹vs£L9u †]ê²"#,ÚR‚º¨»ù¼‰-Î;BÓ˜º>k‰RŒ";&Ób ªr@Ž òžGL rŽKn$w*šsf¢(’cÌ"Þ…á`4ﺣ¦,fP$7±«ÂPEÛ¶íŸÏu(Ì|ˆ¹£ªªÈ´±±ud}y¹Æ«ã [ó‡ç2³íÕ2 «RDSÊ)ÆNÏ7 2vÑf©“Ü/ð™5ª1˜Þš\Á8˜—}¶ÙáÕ¿Rù6ÇïÝØýál:wâð×ß}ã·ŸÞø9 ð€rfãçÕm'Ž~ƒÂµX¥›~í|åÙ¥Á‹Ž®~Áöî»7wÞeJH5ƒep¼ôÔ…7{þe"CYÎ4]~ÚÝGÿñ¼=wnç­ ~s’ÚÑKoXýÒ'ëÿøìåÿ|hô²ûnú®Õás›xyTÜ]„ÁÉ o¼¼ó»`á%÷üêÆø9ûýµ[7K×)ÐÿBŠ™^äýj«_+-h €ýìÅr¤ëØ5×Çìå íëã­q0[ù†JÍ‚w&ŒMµKM¨fðÕöù3ÝîÖ[nÍèM3;ôÄ‚Iì"@žÏ›fg‡\®¬¨š™¢ªs.7eÉ)cÉ&Ú5 ˜>¨J7Ÿ ZáúÖœsöÞWUa¢f€j ì¥NRl‰HRŒ]'Yú«Á9GDÖuHŒÌ&‚fÀ$"9¦.vä]ÓµÄD€³¦ñ>ÞçUµyÖ$6pŒ³Ù|Ø9cí,vt©I§§ÍuÝÐâ[5peÉaw6SPC^—›ª ˜’›Gl3íÎ2€  C‚K/½ºû»=õÏ'³gÀ’kKå]µ»q©¸%¦”. 4/?~î*C]ܨ`9¦KG×¾˜È%œÛü¥'Ïÿpêv‰˜€]s1•Û9o:DïˆÛô°¦úàèÅËõ­=ûO{}ÉË­l^ý‚Ýñ#'Ž|ýÉóo|×c_xóÁ×Þ~Ã߀._yôÔmM?â°LË£çÎõðiÝä:ÚÌ_L1ÓÃ'‘h¿åì}{̽;~{j¸ð1-Ú\X¤w\{ôƒz5$ô.pQ·y6ŸwìKà jΨŸì‘]:ýŒM7Wo¼Ù –4GE$dNólY¸( ƒ¨äi;15rÞg‰ ’º Ê*4mC¦F`)ujˆ¢"ªYEûðÍBH1F6㨈öÛFëó%Kì3?û…<0'Qé:db„Ô¥œ…ƒg$0H"¢Ö5­÷Û.™¥”,e4–ÌçqÒæVÌÔœ[|Ùö¨/È@q'µBæ„÷û @Áˆ‘wš¦³Ýi;ì­hhˆP<~þ?Iì¶Ê0#~èÔ?gšw.Œ? i“©@Š ùÑÓ?ÀŽLç;ãü飯EÈ& 1o¨6αšô¨±§.¾áé7µñ<šdúè©×ØìÜæo·r¹v‡ˆŠšý¼9ùžÇþ¦)¡QÛ}æÒë/n½™²ŒçóKš'Ô÷<ò×¢ŽP˜ƒÕ©o ÿbŠ™^ü /±ÅÅÞD{ Ó~¬°]›Á÷UÌÞ­„Ö'¼îéâQÔ@ó`4Ê©m·Ús—/„õ¢6$ïÃòl©9xÃOGq°„Œ¨DHªÆÎ‡ºÊM›Sç¼w̦³ñUue`¹kŒ˜šSÈQR›&›pÎ  Òo RŠ@Øó¬UÌ™(t‚Fˆ˜sV1"ÞÓÖZN9›J¿éF+ªª‰˜rCT5"˜LgŠÂ1sáUuvuFP”ìgª¦Ù3ìh7w;M3W²=–‰èB®5PU2B2¡½a01D©$òÞsÁeQ""µí2tìDQÁ³¥¦9 ˜Ø(§³„¡4×Å“)¨ÎfóG¬w!Ã@gEѨéÎ[ÊEÿ- ió4ˆÂ„'k¼äÉ,m¡g,5˸{È0!8î¯ݽ¡t84l‘ôZÉñãfÂkèƒ>tѵRŸ€€‹ëgqÉ Áþ¬FMû0‰>¤/â÷ˆ ÄÔ» *W6.Övš‡£QUbÂÐPQÈléÈMÖ7kFN%©dö¬„œN[Ð.寱’5ç©C¤ @˜#Ädf"H¦šc‡¨r'ÔÃv$!º>sÈ™% €iÞ SÛOQ¯íÉ YÍD-¥,"™ÍD5›RbfES#4—E Á¹‚ƒÞ#‘‰‚€h ¾@"(˜@¬mSL †}_CˆÔ§9ô_T"CCP5¤þ"b¢Àì˜% zŠ="x¡¬€e3`è ÁC °ì£‹z,rA€}À ó`O„اí~™Áœ"¢˜™§``Áõ¸µÞ͉ »î!ï\iV.’£’t¼ f€-"dØ'ùþù3Ô—+û@3Zä7õÅFïBê—_ý§Œ‹Ø‚ÞßG¸ÐÌìù=‰öø˜Ùyç––Wëá²sØ‹*‚c.™:LJýÍåÈÌØ±s޽K)‘÷> $ä³vž‘Á¡©¤ J§& %YbË‘‹ªBbUQ` k³¢×¾ AôÞ`î]5E‡1'QñE¡ª¢"Ò«™PÔ˜¼sA ÔxÈŒeà•ʯ•¬”[èMÉ[Ùm[Rd]ôaÔK»€zrËÞxJ®k-ê°GÝê"º§–ÚoÒHmÑÎÂb‘Øû¼AL{sâÞ[ö9J×A•LÍ@Õös¹iŒ=™®ŸCã5MçŸíû"‚þÁÚ=¨/%…{_j?²4SXD_ßa,TÁªª×ó‰‰`yu½.]¸|n}T9ïÈõö,+’ëgb1fÉ©ÇÀI$ÎÚö1‹a02m(Š’›Ïvsš˜°¯ª¬ d ™@³ÉBÅ€ Èd˜:04$`ï {µ!¦˜“Z–ÄžºÉ9f§`]×!€óEL¹ë²dÊñd6k:@äétV%{Ž)•e5ÎæíVÜ`0,jWªuóŽÉˆÁ#%µ6Š©b(¦M;Ù˜™‘¨ô¶¯ý·þÞ£"¸Âaå $et±GŠ¢3Ñ6Åý…M?»6Ü[TîñU¡Ç<^ClÙÞøSãûͽoêÞi^üI_}]ûéÚ›Úž ÿÐ ÌÞ&öoð½âØö\á‹0Rн€u»næû¯ƒk™ëט¬‹Kb¿ø¶ëÀ­†û¯»O‚Õ\'ãßÃ~ÂX½ßR/ ̸@ß,ÒŸÍâNØWÔ|BÄ™™s¥õd<ÑØ,¯­Í,ù@>˜÷PT³¢YŽH6³Ü§Ñ™!{4çYU8iŒmÓW–@¨9Ij 0›Hî$+9‡LÖ)˜RŸGbSEîïÐ~—HÌ9gË¢€ˆäú{½×<÷ /j˜sjºÛ.¦ŽC@ï\Œ1‹8vD Ì!ç<ŸÏ @źVŒº&åÜÆfÚJLKÁyâyj£j^[GIˆdjjDÈÀ" †`„̋ÉAŸ?ž³!{&&ôY…ÐrJ ±X˜*û¬§¢ÒÞþÕ iZA{äÔëþì“úºÀb÷gH¡‡¥’Ò0{q÷À™°†é1õÀ~@wmÒ·Ðúí¿zÙ€Ñ"V¡ïV»ÆxÝûêâÕ´xùÒ~‰@°Ø|.˜fŸ˜3³ðš.*wÃ~|¾×'ãâéH¶°¥^ÿOÛ﮵¨ûªàO†":tìæ#Çï8wòcÛ[;R\°Ú¹RRÔÜjÊhd’”S–EI;* $ÇÂU(TÍb'šÌÄû6M+ÉÈ#çházoëõIDDÍÃ僇NÜ“•R—Ø5H)™F•Fb—Û5‰DcPïÊ%CVíT…\ˆ9å®ÑÔzOÎ3çK¦‰œ÷õ}á½È‘Cuý ôuÍŒ sG&Ľm˜ˆD$féRL*Ò‡ù™JŒ]ÛR2˜u1 t)u)fI1vΑ+¼šb§–E¹(ÊAYÖÞœS3"ç|P1S%†“u†*ìÕ;@¦djC’¼Õ‰h¯ ¢$ ª=Qš˜…ÐLÍÄ€bΛ]Þ ÕÀ@‘Jö÷ãCPVD5TcŤÊhÜGû,ƾ‹z xщõßlP0# îûf5ìß#›±¢‘õI+¦ý‘Y÷ÉTT ‚â‚ Æý‡cƒ¾¹P†j¢}QŒ¸À¿«™ª µ¬†¨È‚dFbFŠ úRÅ ´7ôXwë¡=¤*bæÌ2~Ê·Ð0î¥à]Ó©í_ÎûŠþ‰‹5ê¢.3ûd”͵*h_Viˆ`ë««ë‡)äñdËd°²r ÷ö‹œˆ Ñ¹€\Yˆ8xÉUŽ‘<f,Ä9£ ®0)tÉä¹Å(& ,©»:5‹- zòä $§H„*š²¦,EQxçT¥/ëÛy‹mÛ6ó&w§lh”‘ÁH²´9ƒä²®b'ÍdŽÀDLì…˜ÛrRË %»VU(L$§Þû4Ï]ÌÚ7æfˆ˜EPÙydDsD€,j"€Ì„  mιwè"€‚ëáìè@•ψl”sVUT&TA¬ÙGDÓäQИçœÕ œ˜’‰y(%‰&™¥¤ flÙ‘3D'³)dSr`\€IåhæŒL2;¯”!X¡Âä:."  !¦¢ð`|Iª"!Ôì”8oº_xcº|e÷Öá5_¹îËw«ß}ûVùËÿÆ ‚;¿ÿ›ÍÞ_óÕuYȯüâd>Bý¢¯8x÷ƒ]ž]¿uÚ‹UZtñ½Ä÷:-æ5ßÇ@_{¥\_·ôÅÌ>Ïò¥ð½ À@E}(n¾õž§?r¹¬†>T]Œ)vEÙÌšnΞ‚SÍ9wQÿè…d èbV°`Kìš6§$¢1›f±ÜˆS+bÊÌ„b††D¤Þ“óL‰™A5ÆLNs 3#M9ç¼3Þ]ZZhÛ.šš¹à–VFšsÛF3èæs®jt–sôÎ{瘑ÙbjCÅê}¡±™BáA[p<™™DR³,&·ÐCrön#5SÏnPøÒS‰L…#î<ÓÒ#0yîÁ„†!Ðå+“wüöì®{Käî÷{ú¼×ßö/×V×ã[~2¾ù+kŽ)¼ó7òÅsø9_xà?<]ZÞýôÏ:ð›¿ÒüίO/ž¯^ñ*ܸÜýÒÏn~É—˜ÎÚßùµÉG><¿åÎCϹúÀœLÿÖß_}ä¡«¿÷[ã×~ýX-«Šÿ¥7OóW&ó¹Vzäó÷ý!¼ök‡7ßN—ä×içüùvm}åþÞÉÙ³»¿ÿöÙ÷xDø£ß™<òpý-ßµBàs'£Q‘ ë­íM·7¥oxÝøU_RomÅÿð=óÇ>6;p>þ~ù£·Ÿÿ¦²þÀýîáÄ”ù+þæœÑ?þÈîï¿}ûs¾p¸<¤?~{sìæb{CO=sõŸýðÒÑõ^FûkZ·ßjî§kôÝ,!™i?ÜÚ Y‚}bSÿòÐÞÖÇüOà®{Û²þ;%'n»çé½ÿÊÖî¡CGš® Lšç쪪;´ÜhŠ1Ŷ!uUíË¡¨5ó‰J25UN]–n.ª"– Ú¦“Ô8"_UbંˆE29V$òLP²6]fDÎÒ!spa{kÇWGU# qÔ¼3™çdy¸ŒhÓ©¢h 7€(™\h» –FÃi×";gó¦ÓÄÆP{:(CA%‰&AE@éÚ¸=‹FÄÖ/r‰zòSá¸òœÍˆ€Ì*¦õaQ8lç-¢sLv`jÌõh0¨{¿¼¢hÔ¥¡ûë_¿ü¼—¿ñK;?õŸv_ü‡åó_Ê?ýc[¯ø¢Õ×¼6 Gü'¿ÿé.~æ«‹W½¦úÍ·ì>çùüŽßhÙÃG?”ÞùÛÓ3gZBþ[߆ù€¡Ç‹º×}Ç•ÿð³‡Àin ™Eú`~ÃnÜû@ù}ÿùÈp€¿ú‹Ó7¿acyI¿í_¯ýáÛÇ“©Ü~Wý‡¿Ýüå×,Ý}_7i_þÕKŸùÊâ¿5ý¡ïÞ9qWø‚/Zv”ÓW}ËÒù Ó_øÉùxg|ËmÅ_ÿÆÑ?ùºÝñ¤}Ý8q{ýЇšñ-æ [¯û‘u„"kk‚ªÃNÁ™¸WÉðчÛßýõñÆé¥£k}ã|ípÒ'–ò€¦}±ŽfƽmÏ«ƒ~ û1€D|ýJ¬ï_u!6è¥`ªyyi`Eqew4]ìb2M†>&ËQ< ÏÚÈäAMšQ‰@Áêá ,Ø…P–¥Jöˆ¾K¢è“ø”0%‘œÊÚ×ÏŽ<€1 (Æ­Í`&¨ †}¥‡%AéÉ9 ÁtÞ´[óîò\7f9&ƒN4ge\nÜjAìHѼÉbœ™ò °¿ñwGoÀ³ÏÂÕ«EŒé«¿nåž{«ƒ‡Üç}IXZñO7üýZu­>õxªžŒrV[ÚË_1X?>ôžyl3{M9/ÕÕ?üŽáh>è—~eUx>wnvç=åýVù%ŸUß|«»º™›,õT0€DÙ›~ðêïþzs×=õ}÷– *Ç"9 _Ùµ‚æºyyÿvJЂȬßô³R¢þüÚ^(ö§n,®)°½ €ðÓ^zèà±v6é._¾U(KD21Q•¶¥”ºé,¶ ™°íæHˆ.€˜¥”bœuM"£Ò£óU=Rt ¾HHF4™ì¦v¦9Í&Ó¦™Ïf³¶íÚ¶kÛcžOfÓÝ­«“Í­ÙöîëºØìÆØzï/]ÚHÂuQ;b1k³X(DPÄf³ ¢†à!‚yÏóé„Ñ•÷LÍlJLì¹ ~©ªƒ=¬ÏQ(¼çÐd™¥ÔãeX¯C b–œcŒ˜ G`ç`à£#Ýœ¶vÚi´ª,–‡n8°¢ÒbÈr¯ÚèEûˆˆ˜™%#çóãÖ9ª«K©*ü[ÿÇæéóÖ&zÿ»æ©ÕëôÜûéÞê“ëÒŠ}Ë?:ò—^Sž|tºq!½âKFŒ()Ú‹>«ú¦:üÕŸ™~ô}PTLJ+J+ÊÄœŽfzä#ÍÎfí}ýÑ÷·zóíî=0äáæÒü•Ÿ•®ÕwüָܹDØÞÈ}ôÃq2ÖÛï®|pYºã'Ž?Q<ð‚¥—~Î2;æ/œiO=-å’>òÐ|ã<XõõȇÚΟ•Í]œ«]¹ärYRΙ¾âëW_ür£6)*ìKt¿˜¹®%5íK¾%Å}€}’Aûº ΧHv>1ž`OY‰‹€S¼á–;67Îožúh×ÌFK++ë% ´M㘠mgÒÌ›ù¬mfuUšºùd³ Fâôíx2›Œ‰w1›6mSFƒ$Z„BE¶w¶«ªê_rÎûy37€”Tºsjç36ðç9oO–±íæƒz¸dgÒö*$:žµ¾ph ’«¢²E¨)• 6žLJWÕecO·§z©ª<ªI0UpÄÆÐ¤•YÌ€½â“X$甀Éa«IêP¬UnÀ ‰š¬YlTøõQ0â¶k‘»$)bØ×ù­-ùÙ7í¾ñÆgNëh ž÷âÁñ›ýó_RÿÂOÎïm³€þÂ%xàyþ…Ÿ†#ÿâ—><ù«–—FøÂ—ToþOÃÕu»ÿyÔ“Ìç8Ù’¯ûÖÕ§ëÞöË“ùÿOÝŸÆ[–\åð"bï}¦;äœYYƒJ*U©4  ¬±e“,Ä$# 6²n ²±y±MÓØ?ºíæ5ƒÝ 06H€#fƒ„„0h@šJ* 5çpç3ì½#b­ÕbŸ›·RÂÆýå};Uªº™yï=÷œ;öеžçÿt5Pìû þåÿ¾ß4½Äð7ÿÁÖçÙìwß|ôu_vUÑ•G»³Ý‹¾püƒÿh€¿ð¼±•F[³_ÿ¥½7üX¸åö @îõ;ÿá‡Ó§’K·^ùuãP™J™fƒy×å$)ÇÑÖæè[ÿáö?û_¯Ë_yäÜyÞÙÉ«^_ò…›g/ç{ŸÍ¿õŸÓk^ù0û|í lŸÂ;Ÿ¸ñÉîµ]zÑ_ý…¿è¾å+¯¼îëïoÔ Æú€v|éýåç<ý.ÕÁƒ·ž®–ñ3sć6e™R^«É? >3ôgÖ¢#üÄGÿÔ´ßÚÚZ.ç*B»˜SŒq¥™û¶_Ì@@d9ö)v’zÓ”úVbbïSLq¹€ ˜º®[­Ú¶K)³’Sбm[t>âj±Ì)g°q݈JT£–Ëv~¸-vlñ>Ì«{í}0°sêbð4™ŽÔŒû(]S-S4¦åªÍ"“Q=i˜@AeàP«uîëÜm>ê—¢\ô¼à,8f&Ïì@Å0«Ý¹ñ´b&"Áñ¨ò 2_¥^Ô¹ŠSÔs—ù©/$‰ˆL¶œóÞ~{êNÆþžg5_ñõÓ§Ü[e·Ü3(65?íYîk¿yvö ª9<ØÏ/{ÅxsƒFÚy,?én~ÞK+KÔ®¬[éÓŸ.]rw=mF·\jžúÌêúqìGcBvˆá9ÏwáE£ÉîeÇöÜŽ¿ùïž?}*êrïÓG¯úk÷>kváî]…Ë·‡óÜâOŸåñ(ÜyoõêoÚ¾í2ªÐÐÃcâkùÜùêÞ§ÙéÙ[üÅ[›ÃÑ'ÞS½âÕ³¿tL„ç.TÞÙüPG#~ÎóýWüÕÍ'ÜEí’»VŸö9î̹p´Œô´çr];U0hÇîYzàIø}?ôºoyõ—DĸVF¸Xìå4Dk d¾ž'Œ<ɉ_ h˜$#¡*¾å7þãÃ{Ï“n¿eks« aÚŒêªN«NsŒYVó#‡ŠH}é;«'Sr¬jÌ ªÚµ‹Ý«}Õly¸Oª«v•ÁdÙ¶„^Û¾OjX¬–“É´išy—V‹3C@Á+íþÑ¢©ƒ´KšàÍ,#2 fÓªjTÔ³ÓÑt:­G“ºís»Ì.8P‰mWÇ®öí²uÌÁ»Úƒ#AT @A0ˆ`$x4_üÁGwßóèÑ^Ÿ<€¢"8çÈ31Z€ÕL§g£QåáàhqØfl‚SI ™¦“¦ö®ò™,<í…Í—}kŒK66«Uc0aÏ>ÚJôK'¾¶QÛ•ìC}Ûh‰¼‘‹šF1E"tUX5š’w.Œ-ö}îˆ9Ô#• ËešL‚ó Ö£5Ü®Z4 M“³¨B@“ïû\m *ö u>Xù;ª6DƒEVèÔÂl5vˆW Â2ªÅ c„*ä®o-gÏ͘»>P]“déZb/uÃi¡¢\Í ÚEéÉFäßøù·‰;ç€2o|{ký: C¨‚ƒbŠ:'š’'#ˆ?3 èØT  n½ë)‡;WçíÆ©ó½HHQ€£Ä h’"¢‚ç>ö¦ÖLÆ@&`Ê% ®@³qM¹“®U$ÉÒu+ ! æ>¢£”»eë jÆ]L}Û¶¹jF¡öËÅ!U^ Ô`~”%ÁéFÕ× t‹ŽÉ;¯‰Ù¡ãvq4qU5>¸˜cÊÅ4çíiu˜·]qašz< ©[2³'‚,"B†L,fŽÈûÒ@ScgZXã†`žÙ3©fDI}:\õ)æ ès–À†dŽjÎ\ñx4®Fž4©•ù÷’V»EVЛ"0BÎ.ràØbHš#C"„ÌàÔ4vЦ@Þ8¦Ýâ^ÌH1¢“åÒT‘"B…ä%Î3Y?GdyM‰™RŒØ¶=3"Pß%³â˜S$4‚Œ¬ Hæ«…¡º2'ÕÕ<-™Ãr™ÌŒ)f•j~dÈŠ ‹ÎH5á¢Sdå~cH™¢âºÚsC$Ó±Kã¤Udè³ÿ 1ÀZðö¸Šåä\鸠¿‰ãZJ6zâïÝœl}ø]oûÔ'ï¾xÙRçHr›4R«U»8Z…Ê{ñ$„Î¥”Ñ{$9ÚßsH̹ë:óT\ÕlìÏÛU+9jOÈ¡›¯êQݵ9§~:›R¿PI¢¾M6ïºÙ66ƒ¤¶UD®i‚#0e5Ó®o¨ªýt:13f컾¨e!›!$³,‹8ÕUE*‰‘AMLpà5:f@Ubb†æ€ŒDTœ´, 1kVJ©íRZª 0ZftHÞ$+ƒ!ˆs4Û:uzcà 0È–­"U““+žÿ Hz#s†“¥ ˜¢Œƒ;¹Ìd#VePDNžÐ$d B«ØàJµRqˆŠæPÐPÍ:0%bdÑ¢÷ÎD͔ˤsèi[0‹Å@Ahj+)á I Ѐ#Bcâ˜Ä Ô2Q@2©€2r1l ‘,»ã±¾Ý ÃõÜÆAdeœ|Œ»z¿Ñc¼É®z¼—/ñã­ýäê¿©”GD0´ËOºë÷d¾÷‰ùþõúM&]Œ¨9ÅUíx>¯êfT7¾ñY%¶ËQ3ªÏ9õÚÖMZ³¾-#&58êú3—.äý6‹Ö£F•¢:´ ˆ€Üö9î/!õé¡G?å›ñlóTÛ/ YV"Xy±œ;tF¦†)–hÇËå Ѫ¦bâØ÷£:xçbŠóE[¹z{ºá*CM  ™J*F¡æØ±",ªÞ”•’)rB"PЀ}Pæ,B„(xç™MŒASódâ7·gÓí™o:QÁÒ6U#°Q݇Î4Ä^cêÎTz+»é:‚ ê )b& Ë#!羨²…ªJ¹ ®§Ì!ÇUœ˜ ˜›ÚRŒ9V@ £)P¿R6²jäR‹9:`­ÇɱïVIÔÆS!¶’¹lÐQ¿ß ˆHï49ò]=´‘À¼oÑ€‰ T5˜Ä¾WŪbôÔwR<»D4h…5ê:(×FÀ›ÁH Ô†±èzÓ±eƒÐn¤‘ÑÉmû¸b9Æa¦qðøN[a5_Þõä§oÐüS~ïÞµkËùœ˜ÆMP³>«dË’QÉ7 0®ú6æDä!G3KäRêËùw¹\ñ•G¯¥Ü±sYŒ<{¦n™S²ºft¬ )ªºªZ¬Z_w«E—cª« ‰rÖ”%%X¬VgÎm®ÚÈì!Sb¾âb5lš&'AfçxcŒãfâƒh‘èh¶.Šff¢k-4••¬¬ (1¹™\¦uâ™Ñ1¨CDuÁMFnkc<Ûj¦›3_\е6Õ}àGŽ>Ð1Û­·ã¹KÜ­2¹T7®[ bãB"ùÐûòÁ~V1³ü„{ø`G¹;îBÃ>­øýï]ž;G·ÜªŸüx~ìšÜö½pôú5üÄÇãm·ñ¹Kš3±ƒ?ýc‹Öß}¯¦ÿ±]¾Å»œUéCï…Å¢½ç^è?ú!=:8š¬#0æ{žÑ~úO¤™¹ÛïÀPÛ|Iú£¾uçÎÛ-·;GAU>øþÅtŠ·ÝYÇÎ}(]yŒnržL<¨©Rããõ¹¦yÿâË^þœgµsíÚc×vÉWÍþþa·Š¾nö$µ«®Ëf9ç˜s/ÙÌRŸ|3áªY-h¾X!sðawg'¦ÞÏ.´±3Ô”“™e‘l À1Ãá²OŠ1ë|±ìº>8ôlHê`†’ÑûPWÁœóH )UÎUÁƒgjãѨUF0ªÂÆx`ªIŸLÕjétaéêé!.ÛüÈ^{Øæe’AŒ„èˆ*v™)0‚Àœ €ÄìètâOŸ?¿yù¶‹›§·Æ3WMG[Ý™ËWUJL;æì~øûvÿí\ýÀ»å-¿~ô¿°:}Ÿü4^ÁOÿÛ½;žTolº•€} ïþ_®¾å×»«ø¾?^>éÞúC’à{®7ésžµñßóÈOý룼t¶}ξçÛ¯ýâØß½®/úK£ßþ»«ïûû»³ ü¼úŽ™è|Ë•ßùÕåË^9>}Á¿çéûÛ»›ðü—VŸ¼_¾û[¯üÚ:Ãw…_û¹£ßýö—Þpô‡oY>úàò“ÍO¼{ö÷¿åá«É—}ÍøãÒïyíΛ~þÁ?‰oþùÅ;ß¾zÆsëMüGg÷çjÅ^î}vxóVÿæÿ¼ö¹/ª/\ªr2$ÓÇ™§>»5ÕÚ?ëC<‘Ê(µx݆ 6*Ü €(“M4bB"Hl(ë„?ï/7œEmÀY—îËqi_ÔŽŸ±OûÒú+ì ødÀÓñ¼éd²t!‰<@Ô¾C‘[._¾ý6·³·ã*÷àC\»zeÿ ©ê‡zÔ·±ÙV¡rÞ-–)Æ~ûÔæîÑ®s¸ØßWó¢vxpXW•+»Ôw£¦ÉY»U›,b6îbìÛ½¾ÏÎWlèA½éÖtÖŒ«¦©Wm×.–¥µ··ïGµŸFµs„³+'†€eòK¾ð]”ÌP²¢qyá DtxÙÔ@‰Š™êÚO&ãúHáhÈLä¸Àó Ŭ䔛dB¬‘¶7«íÍæìÅ3[ÛM]…ª.¥TNÃ(¤TˆÎá½mqþbý÷¿ÿÔÝwÛd“x4ù‘´û_~yþñôôη/ï¹'Üùdî¤7 ~Äoý/Gþ`›ûü½?|þ)ÏÄÏ}Áøï’ûC×ÛN¿æ¯oƒ—ßøÅÕù îµß}Ëÿñ÷ýýß:|òß>­¦D9€i–ä!% Œ1ôuµñ¡?…7¼îày/ž>åðÆŸ8|ÿæŸ÷‚f•„(±óۧ릦îJ§â«}à½ù·~eùE¯œ|ûß;3ŸÇ[Ÿpñ‡ÿÉõw½5¿ê\êèî§BUÿÙ?Ü¿û™ÇX$´ºøçgªºÇ§uÜ Û2NT&eAÛqet"Û?½T.˜R± :çŠ%PR’0¥¸½¹õÒ—¼dÕ-Þö¶·ÿÉ{Þ—ÔŽÚP…e»fÞyAâO=ð’lolôË £Q½Z¬Úår6b3ÝŠ"€®íó|÷–©Oæ+Çm‰0°›ŽªS[ãà1k>˜umDÂѨ꺾®«­)™Œ›PyÖ%õìê”zGLä óZE±Z@L¹ä$ªP™M+R™&!"zïÆME¼0(ªºcñ©!‚˜‚+14Bd¢­qsùÒöÖééÆö¶ofDFÌEUfÇF:˜(ÎcJÒ¯ÂhÚ“Vݲ5íSôôç4¿õkýßþǧn9?Ý»>÷Þ©bjó‹^:þß±1ßO§Ï!¿ì³w½c÷-¿Ý×ãôE_áßó_û_zÓþ…[ð­¿qe¾/üöî+þj.7òÑ8nl×J[ҧ؉J=ù³‚ä à+ïþè{÷Üòd„‹yóGïX½ðóÇ–…˜Y2HFPÏä‰=`È}' 6ûnÕìÈ™³5ñ²m»ç¾hëUsóUñ“Ÿøz"b¼!Þ²vÔõ.< >+3ÞYÉ-@=ÎÓÀM™MëV#¬|Œèä°éDñzS/S[CD#*5gU…Ôáp)X–´],z"ð¬Ï½ñ§ÿßôè×ó¸ëä—þÃü%_Ò¼ô˦oøñC€øÿqõůÀÍm͉¼Q`çzzèÓqq.´•?ãYÕ+^5ùåŸÛÿ›ßvêô–ÿéß^ȹÓÍÞUwû“é½ïìÞôºÕ…Û€>ø~ùÏ¿ÐÅg<Í¿ø Ç¿ø3‹ûCOùœðŸîÀ¦›é×5ðÆ Û¥]¾…Þú›«g>»»ûn¿Xå®$ Dµs{pàï¾Çý寜¼é§–ÿû÷ìÜñ$ÿÛ¿ºüÄýíË_U{mÇû{ý… ø5ýôÏüøN±µ_Jq˜è(@I)” @„Áe­pb&düÒ—½ü¹O¿«äבּ'-¦ts×|}Ýtþ¼iª:ä0ÑâgýçHL€’ˆÄW‡ b*$ -gGgÏžÚ>}ú¶;ž4™Mc·šŒGÓq½½1»å–S’R߯ª®ˆµúȵƒyc¦G¯ì_ÝÙïú´»¤@Îb’;.Ÿa°.ÉéÓÓÍiŧNm%Ë«6ƬÌtúÔlÒøªò››3&p&ª*ï Qˆ™µœRÊ–…ÙAU€Jw…Öæ/*áH…C¹êúëGÝCí`ÔUADB‡ˆHÎlÜ{×Μټ|éÜSžrÏö™­ÙÖ¬‰Ù âS$sÍluæÖ«"Dd1ÂåÛÝmw…ùüò›öÿð­G§Nó×~Ó&QÞÞâ+ÚÕû»ï gΓdãý}ë[ùÄGÒ§>ª/WÛgñÔ)>{1tmû ß|ŽÞ÷îÕOòßñ½g¿è«ëÏ}q}p]šn}õ«ºjì“÷¥>Ñ]¾ì^ùW7OŸvïzG÷þw¯.^¬_ûݳÛï¬?ò§é…/õ¯ýß6¿à/Ïžö,~à2nàÉO ×wìî{šg<Û;gYl‡îyš{æ³ÃÓŸ9lòÞ;ÿðûåÜ…ê+¾þÔ½b,½ÛÙÑ»î†'ÝîºÇonÖ[ÛðÜÔ“)‰Xɵ*žW+KÕŒÖÛüñ˜‡ º"‚ÿùÕ_šm˜¨ézÆjEÖ{\ß´è×Û¶ž,WÖü,ÎHD;®æ×E‘C f§ª½¨vG|xÅ¥9äV̲e@MJ9÷š£¢Ëvö>ð'ï^íï{VbGW¯ì,í¹sg狽O>°›”º~YÕMê1åÞæ˜&ã¦öÜ÷‘ØÎݾzízíÔÖxT{3pÎ/‹¶OgÏ ÞšÊ›2VÁ§˜L„#1¢y`æT;f’³G,iv&ƒ‚Ùø 3€¢**8"dSRÔUN;×þä“{¿}ߎZF25ô<©ÝÈ£Hxƽ—žõŒ§¶ýŠ^ºpû²[™.Œ`•ÅÓšäƒX²ªNß²sÏ ÞŸ£GR52ÐÑ]UýÄ_ýÕ7v}Ÿžÿùá¥_²õ¼7{;‘H&ãq{&RÅÉØu”µKH©°g0ÅXUS 8"".æ¢jÌ8™‘d‹=ŒÆX@ˆ°ZYìu2å£<:HgÎ_§¾…É”E`¹SðÇSŠÑº•M¦¤ Ë…šNf”¢,—€H“)u]»»ãÎ^ðŽay¤€8žBÎÖµ†ˆ£³Ë«…S1Ã@Ф aˆ|\Y´¢¸A“7Š™µ(˜`=ó²ÇiþJÏHhÂãÒå³ôdˆè˜\â˜ÍvNÓ Ï45D#S&BçLÀ$Î&£Ïû¼çî]½º·s-æÔf“3g6‘¸ë›Kg7«ªîº–˜—«Þùñb±p<É"†ŠäkºU;nFD9÷ÙFj *çΜqêÆ©f0#&@’$¦Å,A€c2뫪òŒLlf®͘DEÄL`˜]¨ Î\Ä…eƒÈNMj3mLúŠ÷W)›XÕÕ·\8½5{øúÁùË·?ùiϼ~ý±¶]lž>[÷‹£Cq•Oó%H¯€TZ Œª*Cˆ9–µ Ñyü«ß¼ý²/ïù´:Ußz'/ŽÚQ5Rƒ>ö…„ÈG‡ù˜iDŒµ°®§= ä Dý])ë£m×N7"DÄ£CEÖí³Ð§ØG&²ý=)@($K ö®Ké‘ì 0#!ªÙþž 3™áÑ¡ Ö[Û²œGSôe9G"öÍR×E‘ oމÕЄ‘:4gÂP€ñZÎBv‚Zsg¦h¿žÇ o5°œ¯i{¼À½$q_!e®43Ç×ÌЦÔáú!Gä傟²!Û£‹ 30`F<éÂts²ZÌû¶7Ì)-çG!„sΪ¨ó”r–åb£Ûºôðc×Ô¬Mi–ãöÖöáÁw̤gÎn˜ª¯ˆˆ4Lj`율HÎ)æÂRf#爀,«2ª©ˆPy-³`QùX ÝCB"*ˆ <‘Õ\näU½Ë£ÀÍÄКÀlÜ<ùŽÛ.^<×}ôã£Ùl¶}z;`olòŠúöp<™õb¹Í)k99•»ÍãVAXˆW¤¶[úS›³sŸ›$k·ŠÄ.gCŠˆ&b„l*ÇSv"D*f†‚mŒ‰ÊSœlƒë Œùƾ¸>‰ ´Î‰(‚!ó€z)Ç<dP.žÂÀ)º R5@`FÕœ#šQ-æs{çÛå=|ôþw/4yÄ ï}†ÿÒW…'ÞSOÆ«Õ#8³‘ˆKO ÿ©f®üÈxLG89 zƒ vb@da-ÇÃÁÏzC2°~ŸuÀ`#®ß›k‰ÙqRUQ.ÝiA3-h3$0ƒìˆœsFFŽÙùј¶õL»l*76SÙß?rÞ‡ª"(YÔ˜]Uy«› I+Ï“I3Aô¼fßv+ðìØÕ&’¥`O,¸Ácn*䃔¬ìÐ’m褊fÍ…qlVö”ÒmWÓò¦Ý3!â#*ê#¬Ýà1&ÜUÕlÙšmMÉ{pÞ×M½\‚sÄÁ:b?—y¥&Y¬L¯Dôxë)0®ªIŽk@¶’^j9 ï³'TêºòŽB3"âááco9•7ÞäѪ®Í.`]QŒÚ÷†ˆ£1A׊ ެäh‡Ò¨´™ 𿙦w<©z6@Ž'øéO¬Þ÷žåï¾¹{à“]ÛCê d¸vUßýGÝé3í—~µ<ÿ¥õÖ¦”Ð&& ÜøÏwˆöY–{ydµOIõ¸ÛxS¢*>î¬z<^=6»r›²ÐÍÐ9:9~¢AŸžÍ—u†7Fdƒ,žÑ)‰Š2˜cΖÙy_U¦2…Y]Фïæ9ö§·6¨ëZ‘5ǘ§#fRçeµfÄ!3[µ«ÜGÍÀÎ¥l]‹n…I=±‚¨) ÆÉ,xÏè5›© ª€‰¤”Q­"¢4aºïx☎@€‹§ža¸)²EEc…ɨÙ8½5;}j:#@3mäS»;Ws]|ªºi¦ãÔï9_.–b™ÍÙ»7´áˆñcív:bTêØQõÄ»a¶Ñ?ø=òp×x~ÂÝÍdª¹·ûïëö÷Œˆà¶;Ãö9+S|ß;sÛÙÓŸé¯_É÷,Þr{uûm.&}ß»c×ê“ï ]ÛonÖT&ãP¼íÙͨ´þÛí:Ö̈ E ëIøåŸ›ÿø]_-Ûƒyý)ÉÞ.ìíÚÇ¿ïÚOüˆûŠ¿²ýuÿË8öQ™%D…ÄÞÏE¶ ÂZgóøžýÉžúIÇzí‚* h°Ÿ9(‹¥Èã4ñ¦&@Ĥ"l 4øÏq@®®¡Ù€h˜4:$e¤Äâ2J2×TÁ Iήajy•½S"oJ¬¢D@ˆYû¾SÉ„ì÷âç¾€G €„ºî·?4Ýo¥þZoCÃà¤อ~’sâOØŽoP¢iDRŒ¢i4jˆËøvHl…¡GÉ¥™†¦bjh¦ªªRbrl©25&òÞ{væ¥‰É #‹æœû˜“©õ)‘ c&ľ×Õ²53)4ÀU;70fbD5‘«6ÍuhšR/ƒjöLDSföE`9‘cŽ]§Ù¬rŽìصTb¼œˆY©sˆ€=£s*¹P™3x×VE^Aåÿ2N67·&ÓIhQe¦º©K™ÐT#@‡.Ô£ÉææiËb!ì\ï- hÀŒ0´¾×W|mý—„ßûõô±…oýþÍéXÿà÷V?ù¯vŸrïèoÿƒéµ«ð³¯Ÿ¿íÍÝ¿ú™¦_úÕaþ–ÿÏæx¬oü‰ÃoýÊ£üƒ§žÿù£·üæò¡OwYáþÃá÷þÀÆwÿéïù[ÿô½vÿGÓ©3øþéäCз¾%½ø ñ®§Å¼Ì>xµ8äý µ ,ôÏH(¸9ª ´Î)x®øg^·ûïþÍ;d&‘ü¯yÍ×½úÕwß}÷Å‹Ë׿œŽŽÞþö·ÿöoÿö¿ûwÿ.ÆN…¿÷ï<ò¥_>{Í·ŸQ[˜9XÓ,×xL¯ZÇÀIzéñÊ6-"`+E>¸±å—óè:Ûƒ‹ùCDT4öÚ¶+vFT!–ë~p‚ã’ŒD( fJe +®Cø`iaˆ(¨+"aöŽ©J„í²càN’s ¨kWDB(ªS›Vå nª*¥”bâ@`0?8$"ç¨d5<䔉°r¬f©ï½ŽHÕR‘f31"S(ImX®ÛÒX"£µϲ j6+jU$EOÔ8¦Ì`4jšQêQÕ4eWrÞªx± uݨ¥Ó“™èòèúaJ76É"pzòSFp·Þ÷¡ýGÓ¾xæþû×?¢ý­ïÝxê]μ¿r ~ýçw?~ßQ]‘óáiϪï}F5~÷ߺòÁ÷Æs·ÒÏüØîKÿòd÷j÷ÇÐ=üàäù/_þêÑÏþä ÿÅëÎü…çÏ>úá«têœÓLìÔ”W`ÖnfXŸ¥?{ôÀÉ[=j…IwÿǺŸ}Ýœ%ùs§¿û»ÿák_ûwŽÛÜ»»»ïz×»¾è‹¾hkkëå/ù—ù—?÷sŸûšo| ;Yµþ?þÌꙟ·zÞ‹6«Žy€ÿöÝŠû¤ùú¤f½`솺eÀ/Ó"j,Ët}‘ æl9[ß˪])J¨{GìaÀŒ Bd+ÂÉ9¥*ƒ>  p8þ¬'hW>ð>\ÉT'öUã|ðÞ³sjÊìª*€YŠ‘CpŒè‰ôAÈÏ~^¨÷<Ý=ñn¼re~éruö‚›m&UW(þÿA´Ò€ÛUp>í^·ÿü¦EJjªªú×ÿúß|Û·½6¥”sFÄøÃßõ]ßõÍßüÍo|ã PD¾ú«¾ú_þÈœ=}Þ$ä_ÿ¥½Œ}Á (®©Ú7ýPô™I7Ck… lh-¯/8Žã#5Ìj1¥¶kVûóÝÝë;W¯\»òèµGVýÑlc<ݘ†Pù!€O‡FG¹³#rÛ¶q~ "jj":Tªd‚¦Å9˄Ƿ¦jDλà‰È1±SƒÂWtŽCÎ9D4Ufnšz<Ï&∈°ÀÉ;OÅ>’"ƒ‘ !’…Ð9BsTÒ†pP}–㕨"˜c_úqLÃÙˆÉM ²ZQ3‘-'àéý¹nêQ3 Õˆ‹©rU!PŠ‘`޽wAAÍ`:Û>{þò©sãñ¤!re÷bBåáäãüO_0aÀóÏ®ÿ§_ØùÉ9ÿí_Zž9Ÿžx‹}­ÿøíýâúOÿè ßþdþ_>ô.ì]K©‹Û[ú«o\\yÌO7‰À&#kêFGc}ÎçM˜BÙò Ô« Ñöçþ5þUCm?÷ó_ÿÅ•lÖÿÓïûÇ_ù•_)"TÞ,€}èC¿ù›¿ùÐC½úÕ¯þŽïøï=„¾ýµ¯ý¡úAäÿú¶ô«¿ÅÉÀœ*UŒéãÔŸðñˆöoÒM˜ÒyäAŒIR–( 拾ýüðÚjq°lûS“KΪPùš€×vL\§š™ W×Ç>¯u2& ÔÒñ.Ãw%@ÊwØûZò^Á;bªÑÀû€`’£ö2såª2³EÑœ{Ç Û¤Y1Åh&Î9@4Fä3ÇìL1K™y€˜©(h¹"T GÕÄÐÌ!©e2fò7Xû:0vÍŒ4À-8D3ApÁq¨™Gì‹›À90ÍFˆè! "‚Yt®ªêÍéfÕ.š tðƒª1PBS264‰ö¢/ïìt?ÿ“é½ïÚÀ;ž^ùêéÖv¥Éb'¯ÿá£Å"mÌÂ_ù³­ÓîSMw=ÕýÝt¦Å_ùÙ£Ÿûqyûo-žþ¹ ’h5Õ#,~ý—û/ø¢ñ¥Û³õ`Øßp9ÿlñCy;úÓ÷·( 67·_ùå_y\ð±ˆ|õW5|Í×| ¼îu¯{Õ«^õâ¿XUMõ ¾ð o¹|ùá‡ã_ûùøÂ¿XoÌ g¬¥Y{SÆK¾À즴T|ü™am”æˆY¥Mé°[-¯<ú‰ëŒ'ÛO|â­[›Û¡ª™¸¼åe¹‹(;?0„QôúµÇd§iùÚÔ$—¢©Œ7ÀLÅŒˆ˜D´È æÈÌPP%õ-µ9뉪v]fšÅöjL<ªëvÙ–x@TÕ¤šRI©¼ìЍÞ310˜HÊ>ÆÄL•1嘒C25ç!¢ lð¡c µðîÖ mUÄ¢.G0‘‚öÐ’„c6`›Ñ¨j*W&w£US$$ç(Žo4.‰¸®G³Ô5¦7:Å ¦½'ÿUß0}ù«“òd–¿ñ[Oá—ÂÕ+«ªÁ;ïj&Snñ¾íÔW¿F‘{WÕþÜE¿Ðÿë7]œmêæ)°¯þk›/þ‚4šÊtƯûÅó¾°¶]„çÆSÛÛí¾îû¿ÿŸ¡Ñý½úÉû.<÷ùuê{D0u`é¦N¨[÷õ¤{ò¸¿®¦ ½:‹"±w®ôYsÊ]«š”ƒ÷PÕçOŸÞš6/=ñÒå;«Æ{ï R¹´ÒY ’i†Að×w®ùƒ==wÚ|e…D®†ÂEÉTŠÈœs„¤f1-‡˜qfEï|r>v}©e=;SIQ˜ )8ßigj£ªV«%xŸS–,Þ{$Ì)9G.x•l¨Î9¯jY2‚GL윳$ªêœ+ý"Ò +CÌ&l †0`ù‡hÙâÐ,zKY²)Ah >T*öm0:–c±äLèˆ8¥DÈL>«š‚÷U¨Ãt£lÖ9CB°ÍMDò9y f}K—oõw<¡VìbVG‰NŸBBh!Kß.VãºÙx’[æ˜PÆÁÅ;Ÿìr¬ÍðòíhJ’³²ëŸ|Ocn*…ðLƒý ÿ»)yÇÅ‚†šüTß®<€\ºxñ%ÿÓ‹½w7iOÊo¿õ[¿õ™Ï|æ×|Í×<òÈ#?üÃ?|Çw¼öµ¯€—~þ_ú…_ü¥û>z=øÉô¼—Œ ¢ã„„›“÷†n‰ê‰€Xç$8 •œ 9vf¨ª9å”e¹š¯‡mw´\¤¾%K.^>}æbÕÔÎÁ±¼LDØÖÙyòg‡~g¯¿eéë‘  ˜Š*’33c"2"#Ô¤H€È„L˜SÊf@‘|¨4kJ)xOˆdš4#3hÒl2K)ö1ªffRÍ"yÝ;5*·–”Ñ‘šå˜ÐÜ@®@µu^˜aΙ!‹§=ÓÚ×5h·ŠZFEÑŒŠ3WÁrÖ”rS.ÀúèÄä|Q¤ lMD"ÌY€Ð1gQ3ó®jUE ‘°™Ðzpä áå\\e&ˆ˜ÀÐ@™­ë3ô@ˆY!&g…¥PdÞD,ë<ºVÁ­Ž8`JˆDÞPLCß•Ÿ›†®?øRsþùmÇe"X̵Œn½õŽÙlúŽ?|ÇúÅÿ4NËe²^UÕæææ#<?ð?°½½ýÕ_õUw=ñî{ï¹÷¾Þ€‡™`bËg UÁىૃ$C"TÕ¾K’•|å1e1µ¶‹ó££~äÝ{;ÚáÑÑb±óÔ{Ÿ~þâ­ãé”Ãq|!P¡zXIÞATútIí`ÿ ]yì¶ýK£Ù–•ÒÜ•€ÔÀ!bV…Œ„œ³!ûP6,JŽ1«’@3ö.õíüPD…Lâ SßõmÏÈŒ,ŽÉÌ地ò^ÅP È,g5_´ Äì«*©ZÎ1%E2BV3)ÃL±uæ8#€–Ø—,‚D˜×#$5Ëd š£ô]n»”³ Eˆ2“#ï³+Ë* 1çž¹ ’z«ª ‚‡A„°2¤ÑÈŒ—¦Œf@ú4,¹&`Þ@‰H Ì\ñY>"®ûÿ@eTÆ€j@ˆR$`žœ¡‰ayÊœÁ(R©{‹qëqá3=£Ÿµï^ËÖÊèt{ûüñýñþà:WÞ£?£êG|ôÑǾþë¿~±ÜûŸ¿ùµ“ɬüqŸÊ…O<ô¸ Ô#|üðDxŠabcŠY‰» Љ¢ *ô]Ÿ»å´•`àtöÜ…ªcÁÇg/Æñe @hbêR’ýÅrµšƒ”´+c,°a,’903P4Et @ªjbˆÄ¡é €™}!dç‘LD‰Ä¸”*À "`I L ÑLJ¤©ªiæ"pQSQÍåêBc$FSB5$#Ëš¡Ì•TÀˆÝ0L@1E#EP0˪QMl=þG.‚I6bCt®àÙç|°·zä¡«·Ü¾ ÕXMÁŠß„Ù©‚äXÜ)" € ¤)ZNÁ{—%#¡cWy—R”'uÓÆ”|ðšcU¶ILÑÀ<£f‘,;È*`)›ª0 £B¹Ø{T3€I²”©`a˜Q™y!!©f&Õu*DÉc+™ HL¨ª"šbîúØö1‹!1©8‚à™•À13Ó°VM ¹k“©U¾‘XOG`ÜvGÓÍ L!É‘çv]([ë1H ÃÏàD.Šz[‡„:Їkå8‘o¸V†®ÅÇ7À\À×]´5ÈþÜ»»@Îzê 8€üØ£¥Ô}ã7~ã—|É—zïO:%ʯ‡zèïý½¿÷Þ÷¾·4j^÷º×M§Ó÷¼ç=÷ßÿ±ò½7¦N³fƒ`Ê…UvóTµ¸†M%KΙ™ ¸HÎ’rv΀‰€ AœÏw˜ýdvª lmœLOA±Z<ÁÕ65ä2/&¶ãl6 Â*Rs;;íbB Ò’”gJefc¢*¦ŒìMsŽ}ÛªWU„ŒˆÄ^ú¾—®w¾ª€¨ëz@2P_Õ€˜U€%é!"™‰;ÇEEA‚I„øØWÄŒ$*%éWU‘ ÎDuí¹Ö¨ƒ…‰ÊtS xƒH ÐЃiÉ9Æ´jcÛå"ª5(mbrH‰ÐTTi?1õˆæ}£j)Å©ßBôIÄäxÜéžÂ 1š´ãÆõD|u‹ø†tŠïlxRÀxã°9dš>îk&ÓZERFì4Ü þ¬°ö?cw"PÁ³g™ÙDàO?øá«Wöo¹|a2™žüäB¸¸ï¾û¾á¾á±Ç€§<å)¯ýëG£üá¾ýïx‡suÎÝ…K 881Žw'§ª$¢9KŒIÍ\Áå{‡È1æ¾Om×§Éhæœ'ƒÃÝÃSÛgΜ¹ecëÔlº5OÖÂÏ"V§1¦ö8«viU¨é²]’‡í­Ó]×î[Î"%àÍrJ’ã`üHIS²ž÷…—ESÌ’ÅT+ï«QžÁ2yçêª&vI2{OLåÈÎ@V3OÄž UNÑ9'jÙ,‰æ¬jZôÉ ª`ŠÌžÉå¬Y©X;†¡‹(dQµã<^ÌYsÑ,)å6Æ.f,ÙsM]ª†ˆJþkñI©¢cÏŽcL)gç‚ ô±w˜]×/SÇÉÚ! Êo¯ÿoøeˆ)ÚÅ[šM€”ôŸÿŸÿ|±X a.‹A5¥DDßþíßþðËȗ}Ù—½þõ¯ŸL&¥¸ÛÛÞ:œ n¹-¤”€óg¾T¦™’‡ó>s ò ЧÜõ±íúU×§œ‰‰˜É±Ï)?úЧ÷Μ½xöÌ¥­­Ó§N]g8Œ µhᆶŒ ‰ÈåžÕ²3fÓƒ£ýÀîÒmÛØ?üÀ§óÃÜwÃÑ™4‹&!ƒ2_É)JŽ läÐÐRßô ¢An4ûºA¢à+ÇŒÈ@ŒÌb bªšrQÉ™ÐLSÒ(„ˆì ¦\Bã×"fÑb#@¦2¬ÉÅH$– ‰ Iq8$jVÍ"ªÅ’rŠ]ßw±mãj•c.£ea¦Ó[ãÍb1=¥”%÷Pףص±o+?A²Ü·ÁC˜tí~ìZÏÛ€,²41£á„ô?4ÛüÿÝ/5ƒ”ôìy{ÎóGàþèþȯüò¯9™‰÷þÍo~óK^ò’ßù߀W¾ò•¿ôK¿ô¼ç=¯ïûÂù/¿ó ¿ð+¥zõß¼õ–Û\êÐÆ<îÅ8FÒ8$È*cNQbŸÚ¾ïsË>p]ûÒísìûÔ¯URÝŒ<£w޼7b£!quíÄ[[©Jß³šª’‘šõ}°j6BF9Ú9hã*ç5Û h0 ˜EÉ>U•L-K4Iš²¦ˆ`¦hF¥— N©"ÄÌŽØ¡ó!TLŽÙ9çLÕD<H63V@$GΠ™!!RÉ(+dS%AT4UÍ9Å,TYËx˜ˆ™˜u¸»¨¨$Õ,*ªY-[ÉÖgÉ=Šš€ŠcÚ»ªª†(õ¤Y9H^Šö±j×#Uì&–:RÀ"€%ìù¥üÿû_E–A`ø´çT¡ò*?ùS?UŠ%>úѾÿýïgæÛo¿ý;¿ó;s}ß)ÁÏþÌÊZÙØ„/þ*ï™ry%ѨÐ~N>(XÓ²íËn¹lW«Õ²ëVmÛõQR&ƒ‘¯6&³I3’ »;ûG‡)õ«ØºÊ{…ÌήP0ÄÕjé”*i—K)š™s.§¼\,BN½@uuß'Ø{l§]­RÊ’RÁ×À ÔÍ’s©*U4¥¨)J³hLÚ%ŒÙ£W# M¢¦i_UÞWU…L\*ÇÙ³ "$ äXÌ„82¦l¦`¥A¢œ%çl¢Òr_…‚À@E´r(C¢2w1À\fj9iJÚ÷¹ë£˜©¦$&#Ëíç&Ó‰d55$ !¤”º>r3w}î–m3m&³­ÅüAF“I/v}à3ƒë²0P§ÁÿKÊ ‚åB¿ð/o}Ç÷ž’Ü;Ç¿÷{¿ûµ_û5ïÿŸ0³©ïûþ;¿ó;ßò–·¼æ5¯yßûÞ÷Üç>·ïûªª>øÁ~ñÑÞø&&¿â¯l]<¯9+ÜpÚÚÁq¢˜³ùÑáááÁjÕ¶]¿ppíúµUÛ6£f:ÇÃdJ,ö±‹}Ijê“ÔõÁ̱_cßa-OGSÔ` fCÁMD1&`çúçóƒzÔŒ¶¶ý¤~øêîÎÕkmÛfM9'±S$eâËXvã$)ŠfvÑBå½ãÔµÒ'ÉY ³ˆ¯Ât6CÇ1F‘ÌDλ’÷mf)gÈb«®KY‘\¹Å‘ª˜‚• ¬X㈸4$ëàâCF¤Ò†fBDU9ö;–´bR*ˆ`YëYU,FÀÍY¸télU‡SÁœT¡À$Éëfœ£tmOUõ¬]Îc\†06…åü ¢ |Ñãà¡Ã“ÉÏÇ­U86³™ýw|tÃy£Q>–è³µÀ÷%þŠØÀØ™´ôÒ/Ïy~³:çßô¦ŸÁ ^øÖ·þn¨\éH¾ä%/ù±û± f®ªê#ùÈË^ö²ßüÍß2PÑ|ûøŠ¯mr‡Ã¸í8l榱—3€åb? F›&’S_9·1Õ•Ï¢ËÕÒÌB\“Ai@=sþÒÖô‘")êº1,ø…ã!…7k9çÀŽSŠ!f')ÅØÏêÚW@u8\´}êÓÛçÏÌ6·A×ö¨²]2J@ÏL€©d¡#DóI MÌÌ@cR Bñ6Cd6ôÎ[–d @ÍÐÈQP&‚”’¨!•.4n"125‚šjΈdÄ*¢`ŒÇ\€5wP‹þrÉ“Ä$Y,‰8Á Û[Íæö6s[.oD¨ªJMbLˆ®iš$ÚµyW&û=Ü÷K_M˜«U{jÞMœL£!`C^gfÙ1,hÍ€“x ÿ˜yBwìÃ<¡pù¬¶nº6ì$Vô¦G?~¸Ac¡hÜ×}Óéë]}èq®^.»¯ûº¿ú%_üŠç~ûÜgO§S=88øÄ'>ùîMï|×;¯]»*޽Üsoýê¿1­ªªøÒOz;ÌÔ`·Æ£zêÇußµâ±iªà8õÝþÑb±Zmmn’ÃUwö®§¸ÚšM|¨î¹ûsFUSÕÎ;gVî VblÐ"朘\ÊÒõ}3«pÕ®&MƒH}SÛOΜ÷~>™Œæ}÷þ>¸uËÙÍ3çš©)™¨I4($"dfÎ9+DÏà(iÒljJÄ`("ÆLHd*š’J’œÍ”IJfâ› hSS,)lX¦VåØXÌ‘„¤Ê@R„ H¤ÝATQͪ¡Pi±©ˆ¢AÎÖ÷©O9&Ëbj–D“ @¾|éôù³—}؉±é¦MÓä,‡GG"ýd¼È;ׯ"óö©‹ŸúÓw윾ð„éøÔþÎ'ÚÕ|4;ÝåÓQ‘ …Ì!Ë4ïÍÅ®Sî3'÷ºcûÚ±øo ⺱ß»O|ÎÍ3ŒoᇙÒ7 GŸñÛrz$vûüÔgT?ú†;~æuû?÷“{þÑG¯¼þ'~ìõ?UUU¡À®kcŠÇO!öúÅ_>þ¶pªA·4 NŽˆë$Éc¦A¹µuÚ¨ê{Ér$’ˆ‘»Ë4uÅ‹®ßÛß €h4®kïÕ9‡èe±­éª† ªªÞq’œr&ç²YŒ‰ $ŬÊ!4H‹Æ³2>²ÏG»»]Û3’•ỡ¨*î+1ªª&$Gäû¬ÊÌX‚Ò€ @³.JŠ9ÇœS) G:¶aÕ’™ ¨cF*ÙªfjŠÅªÊƒKŒHkDÓd C‹›‘ÅĆO0µ¤Í@E³Y)Ù›ãñ{—sRë²ÑØ· ½÷5,—û¦0®·Ôly°úø0“ÔEYMiÀÁ)eÐr|@,Ï8"€NMÆf¨zL‘ 5×3 T-óN\“…à¦N˜‡ïóøÊü¦?ó‚¡µ2|쬮ҫ_3Ú¿ÿäÝÎõ2~’¾ïû¾?¡á5ÜØ”¾të¯}Ë,x[-„É™±Z î<<Œ†‡ó¤9D¬«Z1,‡Ëå¢ ~4›ÁÞÞþõëžÚ:ç©nÛþêÕ‡¯<öð­—/&ã¨æâ¢(aÅØP2GÊEcBBfnÛ…Š8æ(’RrÎ!R{dl&#h}hj_ùG;üä×ï¸ëa“34Ûtކ掠‚ ©F‡ìÙ1 jVÀL¤žÑ”LH¥ÓM1§Þ4—@É)ö­¤^UŠ[ë±`ªš’8&F0…$R )f0ÈÂLf*1ƒ“‡­…" €d†ŽI“@Ÿ”TÔ@-%íº>ç$bb¦Išê¤s.Ì6ÏVu#"’š¦!Ä~Ùª‚¯÷vvc×Ͷ·êfríá/Þö”éæ™ëÛÕŽ;í½o © YÏÇ.û›q@eíƒ·Ç§Æ ÑA>€7FŽå½ˆÇ¤! ÖuÃ”É ðÏ_Ì”¢‡9­)1¦ˆÁów}ÿé½þ­¿µúðûä±+íîU·Zb–8›… ºë)|ëÕó?¿¹ýI~¹E‡ `24bZ!î¼Á p€è}••E€VMãBÕõýîÞõƒýííœdÑ.vö®/æ ï}]WÞ;0,öëvæ µ$7„"|…«å²®k"Šm+*Ì,ª)Eb5£¶÷丮ݡv^=Ú}ì1v¾i&¤4\þ X‡7K PKŸ#M¥S©’Õr²BT3ˆ€¨ä,9šf‡˜Ê>Í$F(‚€j&* ÆÄž™‰sÎÅNHd "½ib Š’XK ¢2—€ RD5µ””Ñ€²XSUµÒÞIbŠu%“ž9{®šl…Pé`ñ¢*v.K@böuu´·ûvóÌ-£éÆÞ£uË£Éì\Ýlu«$ön @‘‡£™®ï´:(ЊkÝ"=ö3nêÁbzƒàqLOª<¾T†RýØÕV®Àv:ŒcO3ŸåþP>yÍg.`@d ..ic†¯ú뵪[i×JŒŒ«Úù*Î6Å{íÍÑN*Rñ¦€dDî8 »Œnp Ò2‚Gäc{ÇÀs¬ªfÔL™|ßÏwö‹±õÌ)/—ËC¬êѨ5uhª²¦á“g |UÌ™SÌ9ËØ{QYµ«fÜ bß÷¦æ½Àœ¥ª«ÂRÀ‘›MªäÛÝ£öêÕý0mlA$ö ÁL$‹!±óÇÔU!CBvL&Y@ ÅLÀ€Ô$%Ó¬ª}·²,¦¢9ÅØIN¥Y$k6·˜’îrÌs3&R‘ÓÍ(ó30GåôO ZîÈÆ¬¹€œCÍRFƒ2pÀ°HÖLØñöéfskÃ… 1çÔ‰ ßm£ˆ"qÝ4{}×·­‘OfŸºöÞ£ƒk—Ï=}6¹´Z]I)‚‘ÙÒ(ˆf°Ñ³i‰ccBB"&L)© 3¿™†ˆ8¥^rF"ç= jΪ‚T´ å|¾Vã±;È „X¡™ ó‘Ï.1\ë°ø××uÑ:@ÑMÎ ¦D CÅ h*Üï# :¢é¬`ª@TEpqPÒ’¥ Þ0Z0r3 S,”@—í@­@Wöã,£ñt4ššÙÑâpçÚl4õŽÛn~4ŸWU½µ½½µ¹é«äBq´¢d*[_¸ ëÚ¹¨Vu³¿»“b7ªÆj6_-¡˜ÿûÔoN7ê¦D&>³5 £ùµVîÿÄcÈ<ÝÜol4¡áÀd Z%+b™û¨mÄàÈQE&I%‚eI1ƈ ’¢¨ô«Uß¶ª"*)g3rÌÀ.çŒ¦Ž˜Ø èYÕd`Ъ+&Ê¢`@¥¼A(.“r.v-€KÕâ8Ñ®Y4—×¶7™eÅlЫ5ÝvÛÆé³·6£iÕ41v*‚HUU9çÚUTçüx2ëºØ.çÌ0Þ<³ó৯?ü‰'>ý›ÛOØýÔGGŒ6o üù)íLÂU½Ñv;¹[Õõ6€ï–{„aÙ¥ùü`5o—ÝòÒ-·9sáhÿúµkΟu¾þØ?v¸¿çOÛ8{.¶««<˜Rœ:?šm¤Øw«=0#“W$á@ÌDž™ˆ¹¨­ˆˆÉ5ˆ†”Í@Ý:‡Í©e#6ò5¼È*Á€‹(Xæ•{:˜ó ÁØ bl+çëLPW`®hA“™2‡r¯:V³ƒq©´ ûšŸnÖ;+‚,öžs¥íZL8®FˆÖÅ^*Q3æ²€€d˜ 0˜¥òMˆÌ0ö-p@âÔõZùJMÛØ"gU›ú3g17ÕÄûeÌ‹ÕÑîb¹Zpãœ"P0”r¬RD’îbH%ÿ«TÏ%¡ D”@‹(´$V—Ý:8ΆädÆhP´˜Ä]¡XÁz Ç4CfÒAìf Ækð¨©!›*®c±‹î@t°³qã $šÊå,GÕªÂí­ÊW›Î‘ó,j’ ‘ˆi63EpÎ×)CŠ=¢¸fB)wGFSSíº«›ü¬1½j/ÿî´~Ù¤yÎ^÷ÞÅêÓãú)Þ»¾|ŸÃ‘u¸ÿÈ}úÎí.^ö%_|ë©Ï{è±|ðÝï>õ¿Ðlžûð½ñ#ïïè•/ØÚ|a>¸vßþÊÑÞîç¼è/mÜõÔöðêƒÿ¯šûS§î S’AÙ3s!Œ÷¡ ì‡Ê{°qvÖ 9jU|V“œÙI ‚ˆJ`¢¦„PBT°Ú$“KTE ™Uc'D §‰¡Oi `Á=qJYTP™Õ ‹¢©Hz©òÀÈy’VícÀL•Šˆ ÉäÕrážlLýryÄ즓ÍѤžÍ¦f¢*¥}Qð³Ùƒª¦$MÝÄ®_-—ÛggD¸X.‰¹ªª,rtxÄÄ„˜ú˜%O§#ï\NšD7·gO-?|på±W{¹âÝ„ •Š.s¦Ò\t̆$HlÞ‡– ‘é±=ÄLU}s®DÊmU2›™AV±µ¢رs~Юå'XÞz|,¬PC BM*9«ŸÝtèH¦,)[VEÛØ_¸xÛh¼|\%"塽óÌÜ÷}Ι)ÔMsjW+'T×Gûs5̶œ«8uö‰MµQõãUúØHï©ÃdN‡‹Õ}§·NUMãî¹3·nÌžôÞ÷¼ƒPëªÝ1F1ÚÜ87McŠíréÏfãñh´­3g…Ì Kb6Z,M“÷^L»¾¯BEÌ’s×wÞyÌYl4®‘I ²B= ç6Æ¾âƒØï-óõë‹Çvöööb»J]ŸcÒ¬¦&Y²&µ,š$'KÇE êK€¡²Ѭ¥ºvDè|9¦!¢G Dš’&aÇÞyÇÎB`fDn7æ‡H„ÌEE|ÜÄ0 -!S+Ñ·ž]¹‰ ¯°* Bù|$´3gg³Í™óÁy¬B%"9E@tÞ±cQQ3b5 ¢õ]gb!„ñl£_-rîªzRWÓ¶;èú#¦*¸Ó}Ö]v.¸YÎ]Ê‹ÑhŠèsjë0½ý OBî»nû®ï»ƒÃƒÝë»ItûôéK—n],«ù‘›mŸÞØÚèWóœ¹ÚóH³ÆÜ{_yßÔMa45Õ˜¨78ç"‹ýq r†YQ´tG@€]ÐL’¤²(`ÏN‰Šð)‹`J˜#˜•Ý B©ËÄŒŽÉ•CCdDÇׄ¡šÄ”E´ ­¬drKQÒ`ÑnµZ­Ú®‹“ñôü…ÛF“­U»èⲪýl:n*?@ ˜ŠùòÅDNM²Fö‡×ÌÄûʲ®–‹fT;O]ßVÞA—2ŽF#F4À˜ÔWîÂùéÆ$,Eöúüà•ÃO?xíê£Ww÷GGíjÕw]JYUR΢**©ï õ–‹_M2£”~ˆˆ™ )ä¤1’óO‡äÖ/;€š…œsÁ9&2(=(w:Í)‰f5ÉÉÌyìq)"° e458‚ÐLµ´,D Ä,¡¢Ë·ŸÞܺè\ÅD%Æ€-¸º UJÉT‰ÈU5u]+¨M3mŸéÛÕrqD&“ÓÝ|o5ßavM¸`c~Œ‚?‹ª9]w£qã¾ß#¦{žòŒ;žp¡ïËùA»\,Td¶¹}áÒ…ØvGˆ´¹}fcc{utÔ­æH0šžö}˜må|U5~4•Ùædcëöñä dD6¥õ}>€:ÕVDƒcÏX¥œ±ï’fsT³ë HЂåæ0øÐR]M ¤óPáü8b‡ˆ˜#Jf‚:Ç"vbS¯Ê‚œQÄ@)'È„XÕ’B‚µœÐÐDúØ÷1åQS§cç«>ö ="p‰&(%,•úËìÙ,š)Q­€WLˆÄ’-§ÈŽ!‹äœ‚sŠU ̱g5Ub®'~ê½væÑŽVy5_-m×õY$å\Z×Z-f&)JŽZ–”*{Å€2Ë4£t™ˆ•m9A:Bç á‘LË UDU”D1k™ Ÿ£¢‰DƒÙЇ€¢®Cá…† …ù‡'Cj¨ÙÔœNGŒ„@È1°¢: Œ®¤# ºÀìSÎ ”€]k–œ‘kR·Lퟢ¤%(p˜!:É $ï]ò*Ëjs:»tñH·”¾ISΦ‚ÄÎ(ˆýrîÅR3ôcrUNåHlc&à`¾žVõ&y2R(IÜL般$´‰­;†•f4àØ!±"b0„Œf9ÅÒÉ9cºŠ%@qÁRÎY‰ '!ŠfC%4,GGCµÀ“3¤Œùƒ`ŠGÌ!¢HK©O©'¤­­­é´oãb¹Œ]Õ ÞLÌÔ¹RÿHðt€µÙ ìõ¡êçmß§ÍS"lc—rªë‘t}/"U]@Š=VumD@Ôlzkãò™í?´»˜Ç¸{dÍ5öÞu1»ñx„¤E¶e†‘EMTÔP±ØŠJEŠƒtWšé f «€™2@ZßËÕŸJy``ÌŽ˜!éàÒ¦'¥y6È~ ‹ ›œ3UÉFHÎ9LÙT Œ‰ çœòÅÛÏž>1esÞ;溮c‹!ùàë¦ÙÝÝíºncF£QÃìÚU«jÄÜLÆ;)µË%¢„ÑÔÌVË]3òn“a,ð¨A¬ë™¯F}?gãf´uxððr~}có“î~êÞÕ+óÅÁrµh—mÊ}± ‰XJ©ï£‚zçBð]×ö]Fu˜çW«ƒ”WìG>Œ»ˆ€}ݨúûí”:3DrDƒc);„ šÕ„§’%2Ð,= u"JJ¾öˆ–E€LJ¢›Y”œ…°òžP©9°\BnÕÌ"8±%;óˆÎ¤ÌcÐ\ð))( (;ö€à À@—ºˆc U]BUU}»¾e€qÓaS5稰>™0DÂ1Šô„„Æ9-±iÆfR¯ªÞU`Ð÷]Œ±írJH4ŒÁzU$ªGã [ãʹVe!zЧÑQ;/© 6õ¡fBµ!Ý LÁ±‚™*éšÞHÎIJ]†hÂBZµò„“ f3ɦ(Y¡èZ‹~×ak¢Ha bA’4Kq­?)?JyÑSʧÏmU£iËy×¼ó¦c0"|-9ç,ˆB Ç)FËÌõdfÒuDª)1¥t`ªˆc¢‰Â®AË®œc³‚IC5cB5q÷}F@†šÐ¹@)µY K&çHr’¨ˆ2:‚ IRZ?-–À^´OiI¤™``”aªª*  rNÖ4÷H€Y„g§¶Çã‘•ä)´ÒîB–JÀ"q–Óª®¦ ÜÇ ‚fÖv+Dp΃AßG@(óSQáM‹VacVÏêº]®b†qÙç£eÇÞwË¥s%¹‰• ˜¬Œ ´‡D*!¾%Õ$«ˆÊ:Ñ@?šR2¬ŸÁÐÂç’#¥ˆW$‘c¦3–v˜‚Yi§¨ZdæEAtLæTÕ¦®Ï]:KìÕ1;ÇU]±) ;ænEQUUÞù£Š:¢0j ¬o;Õ ®B‚¾?é|5%h’<še^ù³ÞmöÝUÉ öSï]êEl4š6MuíÊÑÑü°ïz" ÉšR’,ƒlEEr–˜4‹¡2"DMňl(€ešÁDXFhL Æ"™@q@«l=¡e5)¤“àk",IP‘˜5«CÀj”ò€ d%UM’Ɍ͑ $Ê’YÀ™Â‘g3HhhJ†à\S†SŒ ’²AYîf’ÑT-IŸs¬*I$ç¼±9»íòÅÉdªE:‚¥Û;W²é!BX¥x=v£æ4·‹@põØTó TU%¦mÛ6¡©B%¢}×tº©$ÑØgÛ ÞÕ›[£[f“ù*µ––‚óVw猚€j(B.80"ÏÎ ræbœ ¤: ;­h*+áèä ’´À†Ë´ @Šz³`Jˆ²©Q)ÎÑ™‹5Ë,«à¢pÜ\XÖ团˺6Óˆ–ìT'9Ÿ9{ê‰O¹S hr„ˆ@žƒ˜ö±'@öÜŒš”rL‘ «jêª[.cZ5a:žÍ ¬›ªfçšàÇ©?JÒW|ʹYß/³5èë°}¤©ë¯gÛ£úÔþê}¿˜lnM7O¥îóݽ. €IŽ}ß®V]Ÿ#™YJÚÇ”RQ,g$•®˜¹´p8àŸ˜%‘ֹЌÆ"9GEðˆÄÁ™ESp̦¦š˜ŒT£AÍ̈åäGˆŽ=‹¨CôÄÙLDOYD”˜|Θ¹ [ÌÕÑ!ŠifFµŠŒ´D“=$Y1ï z¨f%`%‹Š‰d•("˜U»¾1ÆõtcZÞ<ƒè Å0ƒ93Ø@–´ÒÜyEÐsjPm"FrNÁrÊUU=º‰zv8$}X1vlˆÎŒë©÷ $‘DÁ.ɪËE\-b߯œºœSÎY$©dUUTI’ÅT$ǾÏ)«H©¥”=Ã+¥§ ZŒœ´8±HIÑœ@QÁªˆ •Б5O݉Õlà4 Keâ `¨ƒ‘ ŒÛѶÏlllϲ @`E­Y"š"1•S9 ² ìœÆ¨‘˜}e’zCpèØÁTTÑÉ“õf Ѽ«Á(I `ÎoR’%“÷ÍÔDÒr³’X–\üÈR(jrN’ Ô©I‘7K™€šªeÍ*¢d¦  FÙØŒ‰³' …Í€A‹F¥Å„HÄHìT,BIåDÏ@ƒ*D4‰öÇv$@$tæ Iã) 2sU;S@ Œ Î ’ôÙ²1fRbOày±\Š\]·dô")¦¾ëV9‹X^,}ßnožÚ˜n3cÎÁ•D&"ƒh DLVÝ\Ô;ThWmUM½’ò|~T…Љ“ÈbµMÇì8æ´ìÚQ]‘)å¤)fÚÞáüÅí³Ëþðê2‰ëXØá|© ɲ!VYïÈD¯³2+ ZN)ç¤Ì…ª®EÙŠˆó P,e<*²+.S2T3LZÂV 8 ™"ª ¢1:p4øýTµd- #Íš%û€Š8Ô±w5›óx×Óž|öÂ¥~ú±Q¥¥Ñæ=‹hßG3pìB}Û¶CÀº®ªªj—mê“sÝŒi¹Xä˜C¨|h–‹ÃØQ#Š9ÏÕ… ÷Ý®Iª'wXõ«}²'›íf:Ý<=7³YNIuqt˜rBvf֭އ‡)©’)ä,]ß­$!™J’6æ•'¯È f^"31f6tb ¶h”E³¨1 ‹ùл q”µEp%îØ4«Y©hû€0ÔU£àD÷:4#ÀÑr"TË@àƒÑ”’ˆ€ÃT"fk`BE3Á¤’ŒQ ˜¸8ä²Ä”º"‘Ë9Šf4C`Ç4Oœ«×ž5FT‘v=ÜìÌ”Ì+hJK@ftf)õ+b/’»® ! ±fíû~Ԍʌ)ƾ°°KªGÎf„è9·±NÏ6Šj X%[%mc^.»å2µ«(1©Ü`G+ ‰}ƒqðSVÉ’RJ)KN9¥˜D™ ÷OMKD„ˆXYœ¼P­( ¡¨.½+^ U)tµ’¡:ü—‰#$+""æAkÍ„H†(–óíwß1ÙÜŽ-ó:¤Ê9€"%h—‹;»13;ç½”æ#¢ojdnÛ¥äˆä|5SÉ+"¨ÚÂL˜DŸã¾æÎ…qc‰‡&ZW³í3·ÝvñŽËçºØçØˆŠ"“ª,—G‹ù‚ MTc\µíR ¡V¤éÌ â>«¶*+ÕTDö¦è0sðU1Y¸@츪êªjD4EvÉm¦÷ŽÊ¨Êû*boHbG„lJXäœj€úÞÀBÖ”s. fˆ¬¦%¶PüÊ@(°G”˜£š ‰by)Gç²*”$ÝÜÇЄ¦nTÚ*ÔŒA5(Sefjâ È ~(³œ;çÄP¨ÓÊ¡Cɹíú­SÛˆ˜%§œ§Ó eɦæ½x Y}ÂhÒœÝ7ìV%ìB9 ®úÞ;¨‚_-;7ÑIIó s†eý—•4„YÇ£¢šš ›dÕ,¢"¨ÅU"Њy(øÁÌ-å4æ1V(⫪ABÍ ‚Xk&ˆÀD;DËQR[U[€œb—úeU× Ø§¸8Úñ·_ „¾ír1M -Å”²¸°œwr/Ù|=âzFÄMS]<{êÔ´Y.’ˆF„eŸ‰©cb‘Ž´öU@tE °¦!ªJ–!‘V FL¡,M,"F"UÓœ‡X8Äœ³dÂÃЉ¡)¨‘sPJ$+¬E 1Ьzœ C¯ªä¸!11 ;^(m^8{ùλ…ú, UÉ3™Å¾3"'4Ÿ/ʤÉUußw}×Z3Ù¬ÆÓÜ.S\…ñÌ…‰JŒ æhDèDª|ãÂdÕ~:¥£zô„ª9{´s×îŽ6.'›«ªyγ>çÊÞc9¶]Ûïíì¹&„œãáÞîþÞÑd<)ÍÐÕÑÁr±_mßBT‰¦”Y;#T f¶R[L¢‚BìÈ7-{@@†r?Ô”Sˆ†+QAb+M `òÈ.æŒTFŽ™a¤E—ЬêOJ¶ó0špN „Î KN¤‚bjÐŒÀ,"1"‘Lvš³'‘LŒX ¨*ÀPù ]à¦i| 5 ¨«A|ð ™(`탗EÇŽêРGëA«j\! É²ªG%¸"ŽBí£‘ˆyï¼s’-# ¯G\O\ &OF›ÓúÚ|.6¼’XÌšEû³SòÄì²7‡FÃhxg $6“¤imÌ7SQ3D2e)øÕÒp!$‡hDe ¸Î‹-ÆöA?­T<\¦€ÅÇmˆ"Jh€d 0ðì•ÀD€J‘d¨ºyþôÖö¹ƒù"9”sÎyO¢JLÎù¦n˜}aöãÑd4š˜fËÙ{öõ˜«Ær4Ìì] 1±!1zW;®rð.̬÷ŽühæØ‹,SaÎ6gãÍív±»»{mqÔV!4#ä¸Zµ«~ëÌv]ˆ ÇNsǾA_cböµó‰€XI);öH+á±"&224b?¤d˜€9Å`d¦Ñ1°© *d ,ž"‘#xo"êÄN@L€|pª¨‘ É9ðì¼Z2eDF ̬¢JŸÔ™ÙþþA5 ËÕâèðH„Tu¹\^ß¿ãÊSupxãªò5ó¢M× ò¤Ög}ˆñ´ó׿GW÷öŽê 懇‡;»GóEJñp¾º~ýÚþþaŠñhÙíì쬖«,2?:º~ýÚáÁA×µ‡G‡9Çý½½¶Ë);5ŒbG]ïÙŸÞܸ²;Ÿ÷ýŠ©Bä>™dÕ”$µ]P qßO¦rf,‘6dG˜¡‘!ªä”{Ñ\`^fVšNëø×aä_b†Ç Ú•!ž˜Öã"Ò?s%ñAUÅD™ŠüÀ”Ä4KÅœrNšsN1%ÔÚdrñîÏqÁ/lµ”y=ŸÏU¥kcŠÚµq>_y¬SJ]×ÎçG¡öÌ<_,®\½ö„ùBr6ÅÃÃåÁþ\i’2t«åîÞõíÃÃ6öË–­;lÜc9Õ±ãÅjîóÕaŠÒõéêÕǰ:Ç~bèó;îxÖ5ÉŸ~àáyäöÛ/GéŽv|à“{{×ï¸ç‰]–|°{m÷£ùüLö]7ïWíŽXK °Ü-ÔVMÓõ¹CD¦­KSlÇ„À!90E*aÜ52$‘U¹Tw$’ˆ“¨š ©tŽ3RÀ¶ÏmN αY6ÆÊŒæ‹ÈŒN-²f#PäNr&ª”"3R–”˜¿ïüÜ(ßwÿ§ØqÎ «ª‘étzÛm·;LJ!S1»CÁ!kY'D°¿¿ûðÃ;ÉÞ{DÌYrоª˜HDSNU€Pf?ι"èû^$…àYRTDQÓ²0B-”Âà&ƒ]òÄÿ¯d¡½”(•ò‡kÛ¬c&ÖÞlŒÂÇð ÷ƒõ¬;q{lôpƒãc͸°ÁMsìuü›Õhì¼7Ñ>E&rÞR!HQ=jÀ ¥Ô¶«BUÕˆcŒ}¬ªÊ‡`f±kÍ Ô5"‰D•H˜€©õFYUU;¤RøšJ@*rÛ‚Šw•™t]›brÞW!@ŠQröU弑¨šWä˜%ÀÒ\w%™­Œ$Žd¨k“kîê S+Âñ›±fÎö ?ßÍÌXû`‡.ú1ÀãòåË»{»ó£93—CN™$nÎ6‹½£¸ (é ^ò¢7$º㓟ý´W|ÕטcÁ/–mþOÞó®Ï}î³3CN€xÖ«ÂÐJPÑ;ßùÎ/þÒ[&“‰©”°ŠáéžÈ"ì)ÑzCñštƒë¿²:×!"ëøn[£ Ž_-{Ü*>ᦿéãAóLjf;]¶G²&MÞXïx#+ËNºð]ûÃ:_»1 }x?aAƒpœgë§1¸YU½ó9g"Ê’ófÊÌ1Fï< 2 ¨â¹)1*ZÆ'ÌC’ëðBÒpºF.¾×GÂ’#7Òpo¼¶~ƒ†ç£EÙJ0måTQÔ ¬oåšÇ5rNä‘ ¯ÒñŽQ^á5áã˜ý±¦ßXZ8@ÿÊú/¯ê°Ñ­cÀL‹ùü÷ßú_^ü’Ï¿tér×u“É(Æd†‹ÅѯÿÚ¯¼ú뿱®›¦v}Ì)庮?~ÿÇ—ûWÀÌ-—KfžL¦ºsýê}÷Ýÿ‚¾°ïãr¹\­VÞ‘|S(Ô§`fu]µmëœcf)(º‘˜\ô>CD2òM/÷ñ¥al¶¦¿›‰êÚoÇˬÄË­÷õ¯|vĉï|Æ_ÝXÒCâágÿ&Ãe68ìaH(W´F%¶¢Èpø” ÁX¦YÎùƒƒ£c]7]×>îßÍh¹˜Ÿ¿x‹ä¬_‹-žŽ-ûâ?ÁMç«™ø$;‰n$•Ÿx‘×¹çÇ.­µàumÚb".Êí»À&ó)¼îðd@ö‰‡N~|b~{’õþø¿Åßá¦]Ì̘¨^½zíôé³xþìÖïþÞÛn¿ã /^:Øß[,Ì<›M~ÿ÷ßv÷“ŸtöÜùÓd2}ø!šº‚Íïû¸··ûU_ñò½ø%/~É‹—{+"Æ€FŸ•Q¤J ‰˜sÎ}O8ùozòøg=Ûžíñu…'²¢nzþ‡¾ÛÉϹég»éá><ÑnzâŸùè7ý¨ŸùÃ<î‡Ì9øÊû GcwÓ¿§Ó®mO>ÄŸõL?ó¹üYO𳾘Ÿùš|ÖWà3ÿö3ß‘Ïü1>ëÛñY¿ð¿¿Ü?Û+_Æ-!ø®ëªªþéÿ†¿û¯ýý·ý×®ëJèFß÷Äðæ_ý•ÿ»½«Ùm"Â^½iþšP¼¸ôÄ JÛG¨Ä BœáÊÏ q@ qBê<·Š"5Ü[ ©¤Ùl•ì&ñÚcsp6 éfœ÷2ZK³öØûid{gæ{üèÓû+•U!cÌX¢I£ wáËÁ~³yxãæ†Œ%b|ÎÙedZÇ€¨Œ1ç.‡ûÔââÜ•2þCº1®5.Ùˆ´î‹àNlÚ(!Æh)ÅÞÞ» è;ÔıÐZYš­X`¡à~m|ÞßÜÚ¶‹n&‡Ò¾ïolní>}Þ==BÄ“ôШ]Œ¨¤$9ܳᮔÃ8gœB Pœ“ÅrYˆqîÝ—yw@TöJ'Š¢×oÞ>|p/~ÖëlÔ´¥+SJí>yvkkÛ÷}“TfIe@hÿhïìÜÃÐózöOì,¥pêÌg‹Á:#Â\DFEp.¢#œkþGo©Í Í¥¯dPme?;††JA#RH¤F  •¬VëÆè¥³H58ÛÚÔ³W`ÑwÉ6ãï‰& ”¡“PR;Æh t4œ³/_ !†Ã‘…(cÜó¼;wï—ËåN»cc4완K•0ŒÚ¶1f†` ú…Œ»ÀxR­ îöè  éöz×ͽû’½ûä°ˆPÌH”Ђܻg{wJ©b¥T>iµVŠ¥i6‰"%%Óó}«ük0°$žçUkuÓ‰Y…ëËê·“# t:"^¬Õäð,ˆÎ–mÜMÄX£Z<:>fŒ%¿s¸;©L”íUôägFÚ´üiQÅî$uUµÖ×ׯù¾ßõZ0¹D"62oýêÿûñlÿˆX]­­•¸G¿WÚ`ùT¤VIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qscrollarea-twoscrollbars.png0000644000076500000240000023033612536324512024650 0ustar philstaff00000000000000‰PNG  IHDRù¶”#¼~ pHYs  ÒÝ~ütIMEÕ  "câƒÕbKGDÿÿÿ ½§“0kIDATxÚtýg´mÛvö0Ƙa…O¾çÜürxI€„HJP›jئD0¸hFXÊ$¦l0¸a ÑÊ¡$²D|(=$=½¤÷î½ï¦sOÞ{¯4ý÷ú1×¹ï Ã:­í³÷ZsΕÆèã_ÿú×ñ¿úÃêÏ¥`†hf`VrTUS3U55@CC@ªëÊ{ÈÄ*Šˆ€`f``0ýª¶?×LÍÌ‘±”BDì‘ Á ¦ÁÌÌ`òþ5ƒ™MGØÓƒß}Ô¦§EÂé/D²ýÕ˜¦kO'Ât›C„ýµÁ¾üŸ‚©ªªì߀ªŠìÿ43$BUDU.oHøôITQT•E§w…„€`D€H¢–E §3 LD"¨€2“T›^´¢’óžÙ !š!€!‚"êôÍî?ç&âôMìÿ÷þýWó³nÓ`z {z/{Ðmÿò÷Ï·?ÚÐö_%NŸ/îÝ›8 TøYãÇTC¨v»¾ëvD4¥ª³ÙbÙ°;88ú¦_üu¢¤ ˆ@äúa;ô—üù£×Þüâ«ËöÐR|ôà­Ü¯¥ë.^¬/ÖÑÐQØuãÅjý±¯þªü‚¯½ýì‹ÎÏÙû``Æ(ª’£j)hIJ7ôë~3Ä’ÌaŒ›ÝæâÜyÇ䪪©B• «Æã£³Åñ-¿8vÍ i,¨ÀUH9–œ!nÏcì¬(r(¢…“(#‚JY_^BIÎ!âúrýèþƒù¼u„ýºƒÀc)ˆäœÆõzÕo×u囦ªBhÛE¨ƒól`°sŒ %—4¦Ýåã¸ëtŒÛËKaæÙl±íÆóÍ&ùª ¡îûAŠ”2^¿q#—r¾Þ¸Ð>|x‘ÕºXú1¶mËÞÏqÓÅíôpñöùŠQgóú‹+èÙ{–Ö/ݹºhªîþ;]x¼5ƒfqP1ö1½µ^¼¾ðέúèc@(u[‘dì{bvcî€è™ž{þ½ï½ùìóìƒá~¸(2M“‘‰ˆ§¡„Hˆˆ†„û1F@D<ÅšéJ†ˆ6}ä8 Ûß‹Ó0¦88Dp¼ CD¢)(L¯<1›šŠ±—)¨™Š±#5Cçfšóv³»888Q•iæ1óÅåŕÙSU3+" †D)íºn%Râ°Ý\º\ 1†¶ÕÍzRqDVRÆÑ1ÅqˆcObU­”lZFÇë퀆ãè»ÝîìdžSŽÃ@†FQ¡\¹Ú2“ËÝjÛ—¢¦mš¬HFÓ’Rб éîë~e}v ªd1ÉbÖÌ__¯ëÃW‘Ùy|ðntuûŠ8Ín4@4CØO|wMŸÆ®€!½»¾âï§AohÓ‚`„°_êÍ ‘@ ž®Ó|Ð)ò‚1)è72#"˜ 2 ©˜€äÀ.¾óÖÉ7þÂï:»:Ï©6 á•7~æ§ÌÁÓˆ3÷%äf«ÕièOŽolûmì·h £ ]É‘*(þÉãGWnœ~ì«?úò{?8[}’ÛùRrS150ÄTd”RÁûÖ@8%-D ¯œ–¢Rö¡aµZ¹ª)¥¤Üµ6€Ö 3MŸ—'Ä¡8çØ*## »ªÊLrį̀¨¦UE5»qÓ¦Û,çd†`»n[9ÏÊC챪.WÛÕùe;«‹EÛ´9ç~ò¶Û]nv‡‹ö`Ö.š¦n$  :$Ь¨fUÓÄq”|ÝŒ¥7t›d—IšPøœJJHž=ŸS6•Y3ßu+T`Gž28Æ:PÊÔÕÔT‘¼¯b+F*o³*ܺrRryçb òôuUׇGF‚…„&&¢ª3}èë›;´´« æT V`ªUÞyôËÞ„FdÂ2†{ˆø«¨M <~O¡ËS ˆ¶‡·€dð=…/SLŸ~GfLQ Þ1`ÎÐ <"J!F"T› ì'àte@°ši…á—HáË‹ 﫜#sÕ÷RJqìÜôfˆL$@óÎcúõC0Ic¾<Ó$2êªßŽc,År*}?.Žæ·ž½ùÂK/œ”œ†a "&23S-©d D&$PÉc¿ÞŒÛ¾jkª+d¶< ‘sË¥Ìæs‡@„uÕhV-ê\e.  gMãz›×ëÙ"pÓæ]fÕÜ©”œûŽ+_Tǘú]G†qŒ}×uÛ]wqœCÑAJrAb^ov ªŽÐ7ó!못`ﺾûÎ¥q©ê6›ªñmÛ´më … ¦ª€fO]¿¸X¥\Ö»M—ãlÑả‰«RÎyæÞ‡1–®¤€ä’lÆàZD.EŠš:2(ñᣕaÞÜé|±hõî£Õ¦+›^®›å¬iÙ$[ǘ¡u¨€HŽIL,neX“ôC&Q "ŸŽN7…Õ)vÂ4žßÝ«îN£nl¾'¬<-hh´Çß¶¿¢ì<Ý×ía:ê»;Û£qCš0ºâ—æÝ´´¨!Mó¥íq?"Òþm(€c5´*åxr6ÿsÿßûkõýûÿðûNNNK΀àt¿E¤ÀãúÌ\hs\TK×3:GˆŽ™*TUDªÃÌù‘Ð| òh ªDä<¡c&t¦Ù4¥’UTrI³h.2Ž£e0A°4 \ÕŒc£h* b"„@ìw›]Œ±ˆ´óÅf݉H0m*"«m76¡^ÔTq­­ŽãhYÆ~b Öõ1gé†.ªj·ëD­ª)Zï>==;88cïATÀ¦ÉK±b¤ÄfEµ°k}Ëh†L¦j* ’dæà++R•˜˜½° Slgó·«¼]C²¦"Qs²¢šSLc1c’X6—Eœ¶A¡»Ò8v}OHÁ{$¬«fÌ1æ4ö9¥äCEkòŠ!JÙ )kxŠ ¤®S$vyÌã0¶ó¶ï†~ÜM©¤yš¶))UÞ‡ªĤ櫠VbN¨”KN¥8çÉù<ˆšyçbV#Rй¨fÄj¹\ ¹í jµ»¿]Å1-g^‹@ Ûš½Ë±ÄT˜´`£=v6C%@C2#3 SÝ# ¢} CÚÇÒ)ê!™ (‚‚" ¨ÂÓØk¦€ûçA00b.|iÔ€¡€â»™ìù±ièD6íïQ@Ôý5TééÎBÐ@P̦GÉ@ ÁÀ1w]ÿòËïýWÿúÇBÛív·ët ‘ïv„¨ªÁû1§õæb¾X¤í¸¹?99«ëFÕLµ”iF*š;ˆjT)ãˆ9K)%er9'íwPŠ#04ACS@Ddt>05("ÆD X €ŒJ1"aÞ­7y·)V’&Ñ"9K*9%))¥4vƒõÝN švsn›F{)Dª)Ç"eV‡Ö7}J½\3z.l~ÞcÜõC‘h]®.Ø4-²X=Y13"i)…3ºÀsª—‹¶ªSKiœÍçEä|µU †q› -—’À 3@ô¾ë‡œ'¿éw,1™äƒå"îºÈ±ßùÉÐ7<¿zR÷».æáõôäô`^C•æO%—ù¬êSAdtŒð.EC†#¾K§îWþw Öi`âÓGß…Ó½S0ÛŸø³FûÙg}Ùïû¸?!£Ÿ}Øþç—_:xO?e’Ÿò7_¶RLë€ê—}úD´”Ò4*å\Úv6E~qÁD†RŠcF°Ýêa·zÀéàòɪš7íâxµzr~qÑucÌ"jÐW¡nšåâÀ±+RˆLTMM‹˜òžq°R²õ""9åØC‡FŒ½GT×\ç<3©)šUuCÄ䘉÷›xS(RR—󠩬iKìKsÖ,–bÎyÌ9•RÄdèûzÑjPuh%Ž9 2«CN)ç²\ÎÔÔ1´Ml€•Ù3æ&‡9W•˜–RÖ‡¡*Þƒ³¢Å?];oçíLÌ©rÌDÛÍv³Ùm‘‘r*„Î9ß ƒ`¿îr.E öÃÄ»_nwÀ ‚‡*¸UÛ&,Í'_}²ÑÀµ\@ œ-ýË·o Qv»nÖ¸"–Š1²#2ä"Ú8ðž÷qݾ T"Ø„œð)ŽÞÃ@ {7Ðîì§T:LË ÐOìÏ”w3Ü3óûã¾4&L2±íð%ÆòÝTN  î_Ý7=þOÑ„^è]fÿé]ÓÎ ty°øüç>ƒnFûW€”K¹zrâöÓEÁ̈9Ãæâô«ÕnL9_{æ9@NïõýÀÎ!¡ˆC:<:^,ÌPJ5-EM ¢sÎT`®ÑãЕØidì5%‘2í#KŠŒª&ë@bV™ª÷ž ½G@0U(ÂÁÌòµ+ãFú­è4¦4”¡K».ÅœcJqŒã`ª’³¤ìkÏd¢â˜T‹š!©""W¾ª|)…qQWÞ{,ª!Tªªã¼šÏŒ±¨ZÑ¡¢DÕL†’STïÑ"ˆÊ˜F0X톒sÕ´ ¼WQF†1ISÜEaE",19¢º©ÅlèFtž–må†\–‹Ú@š!× ]lû*à{nŸµÏ/wcRpŒI=‚L‹¦zòŽ'â‰'RcŠž`Jû="(ê»_A÷w„ÑÁ¦­+í)MÌ à>SfÓ¦÷´à”½úY7%@›V0z÷U}:%”&C0m2 iJ%éÄÔ)N Àžæ‚ž®ô!ʩܹ}çÅë_Ÿåà)moæ¼¶+·ü¶çîwÛõúâžÆ~Ø ‹+'7žñÑãGÀŽ«ªfÞ1SÑ¢‚§§'í¬M)›©J0QeDç|Q­bEcìv»õeê7 £¤>÷}ÉYE¤dUç‹R¶RR®Í¼ 09¨'Š‹ˆÌ”À U g)©Œ»asÑå~ìcÜnKו]'1—\º]/)ªªŠU>XÊÅDMAÐb)¥Ä‚D>„8ôÌ ¨ Ð.š¦©9°‚Õm£ •ó\´”’LÊòЗÂqÌ©ÛI¨ 4åÄP4AìRJ9çœbÊ!Ì®\¹R…ÒhY“Evn3 Eu’!:DbâÅ¢!¢Õ®ÏEMÆÃY³˜·Ö4uþü¼Ï@ëoóê|µ~ÿ37ï\;þÌg_ë$W©Ò“ˆ#˜³#«9Ƨ9_ƒièîùD‚wÙ$CSž`'M)n0E¤)ÆOlÞÄ ›P¹!¢šMlíY2Þsû>ýB Šd`j{Ê ¦/׌ÑÀd‚ì@¦&AÕ&B_éÝ©ÙS4mj§]‚¨„ X~f±óýZÝôÂÙ5c÷8]Þ‰Q=?º%XQïCð~0aB@RCcóuªZÍRAô䙜æll¨Þr„¸ƒÔAê¥d+YS*F@ˆf*ã88OZ’iR%#Cb3$ÅiqÊQD˜ÌV†¾ ÙrVɱ¤TòØw%1§b€H.'11S\²”¤Èä RVSdabB ( Æ Î913D 8ç+ô*-gOÊa¦© BÉy»Ý "°If䳃ÙÙÙ1U!‹ͺ·"¹KEœb ˆÀìä˜ò6þ% è‘|ä¼ôLbæ=¤lÄü̷Ͼ7œžÖo?Zß[¾=ž9b±Æ`—DfnYJÏ(žhNÊèÑ€¢3TU—)fRCr†PƒÃl´sUqX!’ €Pl«42´d9‹)†V¤8ˆ† Þ»Dà 2`àÁ†ŒYKE8clŠZ Š (A™êÌ!³´H ˜,×¹`"O€ ’¢XQñØ ‚Õ8˜ ƒ©˜±áÀÔB]ÒN(˜)¼›4ÝÓ4ªè€¦D™JN±__Zê“dnõ¼)eLªÊ̈è˜!ǤVæó3—˜§9nf ¤Ä1;t®³Ñ4ä¾)¨jj\µmÝä8ŽýLÑ-# –={‹1êÆ#rӍЕâ( EM±ÄQÇrD+(%÷]ìû~·ý0CIEÅŠU01Cd13SS3$#DôÉ9çêÀmCUEÌÌŒÁ#©S-DÔ°KÞ‘0 ã8 BhDjêœcï!šï·Ý®YÕ´ëËÑ3 7©B_‡ÒƒåìÇ¢È5§A„@µ šs~·ë‰°³çúÊ¡¿}Õ];óšùîÛ»ºZ*@vLCé ĹÐu»˜Æ¦b&¿œ·Lf&¶U5nªkËæy&ï véóbAd”òN‹Åìux¶?9äG*Š0åe󡺺òøòß0惃÷í.~€—Ï5¼Ø ?™ÆŽ°1Èb9ðárö•ˆÇkNÞÏeã†Í1k D$P뚯 áúEÿÏŠô¨ä éñòC®ZôÝÒ¸V«JÀùÓÃ_ÀŒ«î§4oQ1/fwªp™XÊH„‹v«þs`výê/[uŸ!š=Ísýl4…ààé#¦9ÅnØ^–±K’N–¾®ûí6 š”Rú¾ÏEYBí‹Å$w@"EESɪä½W$B1ÔRJCEQ(\7’cÊRÄÀLKÑ"ê<—"ªºtlä¥Dƒ€èT$ û2 »q·Žý.1ö}¿Ùö›mI9§œrÖl¥¨¨ªbQ`r@XE™¶ZŽ€˜ˆ{fǾ®ª¶q³š} BB"Ç„H¾DfCUТDÌ.Xhj13¤ÙJ) *ÀLˆLd„ª"Rš¶Ö~ÕÄ»’L`S "PëSÎb†è+OÞQÉ1 æ}*%ó ¯ÖWg»ÝîÞøÞi*i¼äl¨ˆLÈŒŠh*â‰B¡ªG0ÝoÂàæé·_=þvfo2&¹ }zã oþ‰>¾síø[ž9ý ?óÎ.~€0˜Š©¿så?¼zôÿr÷kk_¿çæï­Ãs?¶û•ÁŸ¼÷Öï™»kŸ¿ÿ'¦¡"„¬Væí³/Ýú¿°ÙeÍâ0>||ù¯Ÿl¿ ²šªáÓ_yíø—­úoþÜ[ÿ}?¼¦âôÖɯ¾rôK>ýÆw? VˆÂÑâ#ï½õû[Ü_ý£/Þý ¢H?ÿæÉ¯E®aª‚Ëeý3ïü?‘øÃ/üéϾõLJa»©Á¿}söT‹¨%ÇØ—<ä4ÒòðL7çýf•Sîû¾ë:Èb¸8:˜/6Et!4SDÒÄD™†¸ÞõÃ8&AÀRÌ[ûa£‰B.PbbÂ"¥”sigó¦C32`0ÍcÞm-veØIÒv3]ŠcIIR”SÌ9K)ZR5UbYHˆ'ÆÅÐL§ Ÿ3rž«¦%ÏTMµ8!ÙDùÊ@Y•ÀÀ,v‚UÇad¦¦­ë&Xi‡®K9¦!9¢;vžŒ0çÜ¿M£J^3â±D5ñm]ÌPÌÖ»Ù!1Ìj_.%eÓãÓa³%ÄÓ¹-®ÃO¿º]eöÁgÞÇ<&Gç¸u¸EÔÙr–rñ Á³|‰4C$Ó|0ù`þ¾>>|¸ù—MݜξådñÕ/¿¯?¿[U'u}JpЙÂK?¯ïTᆙ0·ËÙ{;ÀÚÏgï÷xÊt< ³Ì²èèùô ùJïÞ~ô·³¬fÍ{—ÕW]9<¼zôÿü³?Pâh^ +õU8iªëMõ­9Ÿzó©Fö¹·êêÇ'È:{ñÚï;\|^lþóûOþÖzó»ÅºÃ?2ômxæöɯN¹¿¿úGýøSŽå“ùWµDœåá—(ԟͺw K‘l©DóÍ|áÚvÁDdÅ$ž?¾Ø®wHÌäböxçÎí¦©¦lsÑ\L%—<ŒÀÀ ½+2–±+q¤’PÍ!§a½šÔN9§I¦EàsJHBªz̹RœUs   …IÊ8týúBbÌ9‚™w•™¡‘Cs’$%KŠYÌÌÈtJO@A3S)1•¬ªHV×uðÁ;Bå›:ÌÛz>¯êÆWž™Ä¤9Ã@lbE,ån½Í96mãÙMª#QI)ªˆ¡BBò%GFv9çPûã³ã´—›̈˜É Ý6'S ý˜ÑA1t„"1„ùÁá ªjÛ/Vqˆï{ö4úÔï¯b”Ó?Ÿ‡óÕp¾OgîxQ“ÆÊ»Ù¼îºÝг£EÓ„ûO.‡Ò:˜ÈA5DˆùúôÆÏ¼ó?vÃoøà‡Oæïã¦ä¢R€¹€–"BŽÐ˜#qQa•b ¦¬ `­A ³Hòî=ùÿ>¼ü?–'G_ý¡Ûx^½ï™“ïxóÁ÷¤28fKõÄ1ÆØß¾òkëpðãŸûí1©ˆ€BB¢ËÑüƒg‡_s¾ý7cyxó蛯,~õåöÿa`›îÇ/vÿŠˆ¾îæÑ·éá½óÿýñ溚ÓùéìçøÏÿ³ã:î&RTK1SrÞ» P‘’‡n·^m‡!Ä‘à¹çŸóÁ)–sÒ±ÈT#•Tò˜âØAI9ÅqÛI)9—qȹœw.„RЍ!3;òÞûP {®šªs¨ØUf¤jd*¹H´dFVUTdv.€!(€ &-©ˆHQ5#SRC*Z @ÉRRAçª!"³sìC¨ÚvÞ.—¡n}Aµ±03hJ£I"0qdE‹ÄÑ7–½ÌÊr&4ß„DäÑÜt—÷¾ñÁç¬i%Y²wH±(9K Ú;'æÑ´ï¸m*ñáíw‹èÁÁ"¸îFCs带…£Ý®<¾ØáhÞ4a–’ÇqÇY]Í›VÄ_n‹4H,V&A0,Ì`Ñ<ÿÑgÿD)ý¢½µ?Ù§{LõžÜPBÊæ&•ËD`˜1€Np÷iÞdÏV0T*4ß÷¯o†O/š÷Ÿ|ÃÝÇ?(:š!*<Ùý«}ñtùµïyæ;¿xÿ¯F@$ ‡³¯„'›?Úü‹›Gß|åðko?¼í?ía>-T H˜2¡°;ªXO™xøwÞ²ZIàùª¤”s)ãÐ÷«u'ŠÈäŒTÝXòòhöì3wÈÕE±@WçÛó‡±ÛäÞ³H¾|’9Tãî¡]Ìy»ÙĘº.}éGs•£œÆªª–ËYí¯<ÿÜòø¦_Ìý¬YÌŽB=¤ ˆ°æ1¹ï@ýðìïyîÆïrÍçcpÈ*2«ï~ÖýÇ/vßÅ×îµÍ·®6ŸfgÁÐØÐ YÙ”+!QPø÷ÜÜ»h™\ÓÎP2àã8ö}o`UJ ¥€™©ÈÑñÑÑñ¢¡”Üïv›õ;o¾µÚnRæ:ð8íœãnƒÎñvkm{”]z¸{Ô„Y–üèâÌR³Š§•õC,e|ÏG?x4;&8ÇÌÈŠ’sT-옪sâ°¨eDGÓ÷4í ͉¨ˆå’¤ˆ¤\,I EŠúàŽ]¡ªÛzv@!d5ªš2@!PvœF+%”¢"’Ë´!#bLfjæ&‘·‚‚C?ñZDŒÄZ­F©‚#¥Þ@ÁL²’êlîuèSߥÀM”€&!¡š{(²~¼ý§«õO½ôLuõä—,~®ŠÃ}xñúï“„.¾¿®Oïœü¦Åì½Eû¬â ­5DP«ÌXuŒ9uim°Xˆ j&&–dõž÷·®þúãƒ_¨*o<ü»E0A5CˆÅ¶žü­E¸}ûæF¡‹l>rýä×6ÒKW¿Ó°7ÊEw§óo¼}öÆ'»ÿÒ€‚Mܺ)Š:t#…qÚŒ!Ò¿'®›9T-¢Â®rN2‚žë6’Øm»®‹1©Ü¹óÌK/¿`»õª»x²=?¿<¿èº®bŽ©®+R]m.+rõ–J9;;>;jÒ0ØÁÁAJƒstptÐÅÑПݺŽÑñáñ!ø@¢ ·Š$g)f‚ Cµ$Ï™QKQ3W…ÐÔ9`d Ä\JJÉTh²:çÉòÞÕ û €q¯fb3Î12™h‰l¥Bêc‰)š*¨èÑDEKE°"V1:&2PBtŽ=;Öœ™Âl9tVŒÐÐLURÊID=±cª¼#r”‡´˜Ÿ¥,CO·ãxÙ—!Éaí®Î—›¡¼y¾"â™s$yY…ªâ$‘‰1:*i̦}”"VyOˆ¨¶W'"wPæÍ‹ºógR¾}±úñãßûòß}ý𛃟-fÒß_}ÿ˜.©qƆ…Ȉ™°~þæoºvú `‰iùdó£¢çä ßóÌïîÚo"^Í>šò“‡›x´ú>´‚hˆDZÔ“ÌÉ›–×üÕˆ»ç¯ÿÖàŽåÚá×üü\¶Ÿ»÷Gcw¢õÏ^ýÍ7Ž¿íôàkgÕó%¯ˆ”Ì3¢c›2öE{öïëH¨*êkqì‚wUQ‘œ‡Ý®¿\KÖ«]K–¼<¨?ô‘=÷ìóq¶ëõf½Ùm»z±Ù`)/?{Ó ^œ¯š“öέgOoÝ¥,Û™‰ }S¿Ù\ʼwjPUsßΚÅáXòrq¸<¼èS¶1vüðóßò-¿â¥Þ K)iŒã8v»2âný@“‘ùª$ç«0eô©ïún;ôë®Û10ºªVïÁûùáÉâÊó§MHb UÍ¡eߤ_ån­ã.Ç^ŠjŠ:nÖCY^¹ž%ßû b–4Ænw¾é.w»ËͦëJ cŽCî¶9¿MºyqrRW#ruµ˜5‹YÝ̪³ããºY6§×ŽoÝaö%u«4ìºG©”¾Û\>~T{òžLC‰eRL9æÉĤÐT†ì!¸*„ªÊeW‡¦®çŠÞ£g|ýs¯m_tÛ~Õ—/<ÞUM5oª»rè":Ç¡:šñ‹/]¿{ïÁ“G—Á/ßÙÚJ‡³@³°x4ć«õÜW•§l6÷î…“e»°ŒyCw£C™Wu'8SMyäÿòÏ6·ßçrtû¨ 4ba°Èyr,Ѓ¢b…œ[ k Pr°¦Ò oÉÄp×Êa¤Xˆ¼&T¤žôL5[¥$ ãT»@„À›yÄÁ‹©s¨™+zCaX F´%ÀLŒDff™’·lÀ#PhHM‘±Êб‰3(8É\J!ÖÜÝ9þ]yùŠ%|ª‡13vîÉý»Àv›s WWµªqhÉϬP¿:›KS“æ¢9Ë8ŽW¯œ]9E-„\¹&´Õ,Ô‹Úû£9$,*©‹1¥á‰ä”J³¨‘«Ú#%rŽ\å¡jšƒÃÅÑéññQHSvÞQðàˆÙ1y!O¾*ãVKÉY$%—’JðdhÄ à}UÕmN£sâMEÕsôÄ sf$¨XÝÎ+ –S±’{ç¤ä`‚íá7,9ÉA3 "ç$%ƒDÁ“k[`Fæ±ÒÑL±‡À`((N³d@rÎ(’UUµeŸÍ¢d@@’Ñ¢‰Š×™Gü¼Eв¾ì²Ò*Ùj×5.-N®Þ½Œïœ¯*´ƒƒÊPMÒ¼æù¢a—*õ»’IA`ŒIŒÐˆ€¦"»)ºÙTÈFJLH  °isˆæ —uPSFà@‘…ÑD)SB46%pFH3@Fd³V<‘I…ˆ–Çën%C;j¨ öñaVוYÓv²tµ¡[7«ƒYJq¸¸ 2ª•\rhk31S4R†’  |Ý ;$/’ã8–”™‘s*ªFæ™D8“s“pPUëªvÞ)NL5;fpTyrÁꊙñ`6ÛnÓ :ÿd×9ÏÇíbÝåÇ»Þ9:¯KVssW5ÈTЦ¶® Ãùv‹†ž«b:™êØÞfo[Hd @!„4‘6j@y‚¼ (˜ë½4Š€ÀdfDf…€M½AAšÄàSÍšŠ>u‘Ar¤jàE&iƒ3 ƒ„Šïó“{Ž)³3ƒl*¨ˆÑP˜›6Ÿ†ÊHˆ`l`0Q+h â½|ñõŸéïÕMTÝ£"êº^†µÄv¾bâ¨&Dä½+9•”¦Jè4ô’­×úÈËwî\¹B¾Ne ‡˜ÐØ;ÉŽ8øPÕÙcK"Õ“gÇMXõ²êú—¢@*¹îdyøâÍÓ³E½t«6<Žqµ<9)ýf[ûZJ,ÃàIfV7‹`i,iŒ’]Úù¼=žÇq ݶ—U²Ô SP,’Š $WD€@ÍJ1U—s–‚uųªòƒcMWNŽ?ûÆÅ:Z P©¶‹¶ºÿdZn·a»:œ«ê¶EÑj3ì²É²­MìÑùîèp9_WÒz[Ì‚!30"4uO‹ ‘U €@#bÞWLƒ¾[„ª¦™Ì”ÁШ /bD‹ š#rÁ ™å}E£ÍT "šYyêï`SAÁ¤íÍfÁ›yF0µŒ˜Àƒ0’šÁ¾¶V ½©B™Äs)Ç|àƒ‡(e*q‚ðÍ·îýô'>î©®ã8t`IUbrŽšSÇ”9ö¦×oœ~èCïÍÁϘk$o*¤‚* ‚*ÞØQ5‹H‘’r U+fýØ1z f޶ _µíâMP OœmS‘w*¦E‹ ;%´GMQR”˜"C^.šƒÛny¬š%—d@ìYKAv®­B©gCìcr„¬Ì,"Yòà›æ…;W_|Á…õfópÝmF8¿Ø½z±{íâ¢vt8›Ýv®í 33S„TûmŒywpX7•û  ²Ãʱ¡È¢jŒÍòÀ8\>¼@…¶ªXKQó̽÷@,!8_yGÂT”†¡„&€è¢¤ÕNF%ó¢™ %]nDÀ/«E:îNã˜5ÉræêÖ¿uwóèñšç~HÃvÔPWÞDcҜ˻6“­ÍäU¤ аw3!眙¨‚ƒÒ÷6- F¸/ZÎLhÆ0e/L ¬ ™‚:ÀŒH`µBa$@PSÚo €"¡7a…dˆ¤Ó¿w¤é@3g ±˜3Dt Á@‰‹q@Q@˜™ ±:§ªŠTYm¢à¢ŒCô•IÙ2¥„a÷õ¦EDÕ»,ùâüá“{o®Ï•™Øƒ£ãÅ‹/ÞyæÖ3³fé\ÍäÍ@D!g+YKD™ÔElrQO@’p*&5®®j«f§6ù0¨’sTФd¤@( PdèRD%"ÊlyõÙ—’H·z fˆ4ÞDÍÌ×Yç© Š¤ÀܫŤMeµwó¦9¹zôœÐùùøÚ›w9w)‘¯:v¹œ?*9ÈÌSë«TÀy(εIXÆÞ8(€s€Ly!¸)ìTu;?,iE5¥äœ ¨cs&ÓjK 8Ñè€ÌŠà<Vç Úººû¸¿Ñ©·Í¥K‘Ø{“™'¥ª‚gŒ24‹Ù"gÙu½«|Ê‘h^5³Ê¡¦œ ï9ˆ©`Ÿ:mMâD4¢lÔ0ŽŠj&S)!€Ù¤j–ÉIM è¾XÅŒÈ ¢S1ÌŒÀ“׆¡DÅÀ¨ €HЍO‹éXÅp*îSý¾tr P1TD“½) À€*øô¦†¤j"–”ˆˆÌÈÞÅ0“Ù 3ÕaÜŒE$Å~»¾÷õ‹{o ›ËàêºØÎ¸zþùgÞ÷þ—®^½Ü-¨)äL¹È8È8E„¬Å9?Uw"3‡Ñ1wܼ–ØÝ–™™X‰1#5hŒVW¦cFSQE#pdžŒúËÇãú‰ÆÙŒÉ ¼¯@ÍT´®tÚÊ•$iL„¤)›Á6¥¡…\agÎÍOªzÛ÷Õj{ëäš>ºX=Œ‰Åر=Ü­j¢œubåuuÔÖóŠ˜Jå¹®Àyöæ™™}P5¨Ú S¿Ë:’y3“\&O~ª•H¢YÀ€¸¤ÈÁ/– ‹±iê¢ê½ùp<߯Ö×èãËu)v<£Ã™›yÕ¾®æOŸÏZ÷âËgD~s™h±l¯vÂ(bbKBàBݤ©“pŸÐ$C4aÆÊ–"*LóÂÔy:4D)‘’J1óY8„€¤91Mû½žŸ¢)€ZfÄÆÎ5ªN5dDUÜ‚ wKâJ„ÕfcJ瘋 šx EDÉ+’HòŽkFPä$PˆsDGÕâìÀyÈ¥WËÌTJ2(ÞÍj$ ¬ö¦¡Oë»íé͉”w^ùdÊÐ É×n¹8¬o>[Y¹xçáÅÇýnsõêÙ‡?ò¡;·_ònÎä@Õ¬GÀÁ'•àBÈ` à‘Ì@Ì À‡Ì¢€®rÎ@Î9oW Å3cAuuÃM-1›ÈÞ)J˜”²a+1K)¨ š7¹Ä'÷Þ.ô—wÈBm\œóÆÄ¼s¦jYF°Àe)¡­¼jã)ÆqGL®iÎ=F gnݼ²,*«UÔ¬TqÕ6ªpè˜õÛq7ˆA×§7.Ö)ÇÖ¹Öùã¦i=-ç|rÜÎf\± ®XRH¾‘ <{7ù³¨”!9œ¤ó„ÖårpT/æ%PU¹œ›*Ü»\£Ña[ïJ,„mÓ´jo˜óv·øÂ³W¯^;ýÉO¾9¦‚Œ¸ÖaŸ4'©Ù,ÌZ_,ˆòTòŒÙ€m²6RgÍ{_ºþÛO–_õdóãŸ}û™nT3:˜}ÅG_üï k„\Jg7ÿêõ‡)gýèsfV¿ Ê€9•ÇYVŸyûo»W?öìŸ=9øy_¸÷Çï?þ'Š Eò¢}ñÅ›¿ådö‹>ùêï¼è>aæoü‡×¿5„Æj2¦Ý}áþÿërý£*°}ßí?x²ü9EºŸ~ãlûÏ!Ñìcïû‹ ߤ©JØbàÙƒÍß¿wþ½ï¿õG|ê?ôpõIý­³ï¸uú0Ï«&´?ºû|‘ Ø¡Yù2 Z $'"ŸúÉ•lóÃ+‡§Ç³å’'vý˜V›­”txP߸qëäè ÌOŽDDD€®ÒÉ“FDA½gv„LL9³0“"q DD"`Br¼1N.:“Ñ“5+’GHI³™"‚eÍ4;ôuÝåC/D€Ù9boÈ ÅUµ­;Â8 E„*—‡Èj3¸¨JÉãж©™IüÌ·uŽ—L¡‹ãã'çÞ…Û·oÆTú»1A_×ÞˆƒÃÕV;Æóq¼×G,¥Ò|ýpþìƒå¢ZÎçËUjd 9ã¤D1Í"ŠFB59R „(ÒVզψãóUwØ.ÄtµëØ;‚ŠD\W­‰HnÝ8<;=#=:_ûÀm3Cc†â™±¢Ê!"¨(zD“+*;’œšpóÚÑ·³W\{ÙÿÈ÷ÿjÃg±œ»À³öý}ºŸeuм߸^Ìߣ:þÌ;dÞ¼<«ŸïÒ«ü¼ùj@Löä3oü骺QWwÀ<@" ¢èëðLÝ\÷nžÊåÑò«Þsç÷VþÖ» Û©"®½¼u¾úÕÍá•ã_ÒT×ÌäæÙ7½úÖÑ ¹!ŽOÌ3-‹Áéþvü¼ØYL— ÒÖïq®&× ”Æ]þúo[ÎÞ7ag"ª«K³2y¯¾û¤`SY×uo¿u7T÷OŽYtØ<ŽC×̪ë·?ð?ç£×®Ýdçs2Bš°‡(¨ š!OÖH€ìj@U"GÌ69)¦”Í„L‰ˆ½'F3e(d'¹ !JJ@ „c‰QS2‰PÒ˜ûêàÆòÆKÜžœ¿ýEày,»•ŸµhH¾iL5‹H4aj"9ŸE ñHƒÕ>DD‘LP…YkH1¦¨æó¶™%-óYÕ¶m[7iŒjé`æ}U]®7Aíàt1é+‡Ì)SWðÍû›æN‡«WòlVÕm…L@&`Ø € Š! ˆ)OMå™ü qìâñrùöz,Qmf»]]ß°6A玙)ÎO·ž»>šûì§Þ®ü¼òÆLë]ožÛ@…” <æìÌÃd0PO–€¦@'‹ŸÇ.vŸøÅb~tx´í:OTû €²ÉÑÙñó/¼|xpÍ08oÞ91S5`tžÉ›©¤¬ˆZ4’MF«DÄ~’<¢‚ì}‰ÑU‰rÎ%UôÞ›%f*%ƒsRL$çR0Ì ÌcѾÛ' •19D-$»ªÎ±Ïq Ž˺nSßu›oI¶9•Ìu¨ÍDÕyªš&¦LVš‚ƾÛ=:_¯.ûnˆm ¬0¤tP¹`®†Æ¯Ö⊂:´£º~îÙk/½tvïõ×‡í®ª\)²º\ÌBšå˜CQL†¾“˜L-Ï<9‡ó–ª›·ºA./ÓÑA+’¸†¹ÃÃuëœ/óÆ]9¹=x²Á+¯?œСYVClâN * ï‡Ø °SÉ9fBdƒ/™¤+hÔwž¿ú›—íG7ç^üЕÅ×Î?üüµßú¹»ßÝŒ ÎŽ¾æW|ÕOÖˆ¸~ú•Ñ\­¨‚ðÂÿü¥¿UÇO¾þÝ]×¹y0,_æG=Q‰]‚ÝËŸ˜¹ÐÇ"Xû€”A‡òæÉñóèh_|çoÔþê‹×¾ótñËßyôÀ³FŒ˜fDHµ§+¨Ã4eyhæ_€Uÿ¹õðZížEìç?¶§öyïJ' Õ™™HoÕ€3±c_·-_¹våääÔû™CF2$5@dÇNu2´@`R_L8•©±C¤ÉL‰€žr”’ ùP©ÀS×tH9’ˆ )±"d-…›! ¶{¬¹c98p}‘ c_ÄJ*â\=› U3Ÿ¥¾¯ÛzSQ¤RÄ i™Ïj`‡„Læ±:˜…¦v»¸ërŠ»!¡í]Ô¬ä¤9ƒÈ·l9!#Èî|›ržÌ®_?Û-Zfö\© {#¦©ÈÕˆA5³™3Ó¶­šuS±yW³ÃÙËÍ<`UaÉtXÕ5bE6¯o+æf,e¼ØæwÞc:9ªëàØSAf90÷ãà˜cJÁS|—_Wö¤ËæÙ›'ßÊ®ÉC¼zøË˜àÚÑ/~¼þ'wã?2s€ÐõoÞ»ø» ­>\ÿóõæ'*öSê÷|ûc—?l,}zëÁê3NÆÐ””Ô!8¶§¶‹l3Õ5€!PÝÌVqCê¼ZD°ØT·Ï–¿’Ý?YüDÎrqvô±g®}Û›ÿ7GQE)= Í `T100 cê`îÔþÖjø‘€ )ƒé€@ˆòex¦O©©Š„à›ºJ)«ª‚9ÇgW¯]¿ñÌ|vÄæØM¶ô2`#©ª³cT@2+š ‘\0E#%2BBÓÉ•ˆYJ#€#bÇÁRÀ„Ø!)‹©‹£$tu뗴˱3S«Ê@LKN1=ˆ1I)´Ms\™K\×\ÒÐgO”E¤ï½÷DÀ`Þ{#J¨è¼kça>ƒœcß÷]ßowq·uÌÎyaªq\‰U–8JUUX]4Óa7Ô³êê+̬EUT°xvD.ç\Ô1¢*hnëpRÏú¾«ê:F¸r6'çV›ØÖ¼Ùv­£k'óÚ3±«ð!êÌ@ —4æ‹Ir#0˜Æ§p;¼µÚ}êpþá;W~cß¿‘l žçóÙímÿÊá×ß9ûõ"V…ë_ñÂÿ jJÞÝ8ýöóÍã[`“žŸ¶•fÆfÐ x0`®WýOˆ\Ï?zóøWîº7“½ÕúC¤VM þ]œ£™Íçó›7n4Î_^\úìwŸÌ¾ö¹k¿å§^ùMuÅAG‰²£Ã÷W¹ì\¨uLwò•?øÞg~ßóWÿÓ³ƒ¯ßo.®ÿ›î­\þ-Îqª´‡ìC»XŠˆ%“IÝÔmSµuP 0¡=g4ÙKpÉ1¡šNK„‘cä}÷Ø—¢±#Ǩ*eH1¦š*0Uò I13Pƒb2$éû<ôZÜu;‡’Æ¡S"CFM³HÒ…¡@?'"5"¬ªšHöVi"&¹°sh摽Àä‡`90â<³å¼Ñ,±L5#ó·0C0Ó’£zÇŽZɱˆ(€cª¸N*`æ³æ,ˆ\…&Ž«ËÕ­ëÏ7mûþbS^æ~ÐJõý×—ó†6}¹ÜŽ—;™·­1R*eŒ¹ñµªU•›µœr¹Xíˆðð I½zÙdµëǬÄnVû¾!@SÓ}éÏ;l¾ λ¾wñœ(”uõé÷Üú—×—¿âóïæ†mnÅ„)#4T!3! og¢ÅQEº$háèàƒGðá§]h¤“×€ çvÝøÓ?ñ…ïzùÖo?Z|lV?;Á‰ÍîSczõÊüÿ wýO~ˆ0B!íãoÕ/ž.¾¢ ×KÙ8·¬Üx:A]f[ Bx€H«—ÿ ª^¼ö;Õómõ,×a ÿ§ÂjØãu#æªn–˽ÍK›Åüðð¨®*%7•ÔX1Cä)éM“ÎC-j Š“ÕϾ] QÌ”ØÉ%š+Ê\s5ßW)3²¯%'…8Y“iÊ’Š¨”Ôo ;<&ÓŒErNDDž° ìM.™)P¨eÓnçD\àÊ’7sHLLfEÍ\ðž*CÃT„1–âœ÷U $Qa4眘ŽldhA›¦25)Å@ TT™È‡àëPJU3á»É“A,ká§oÎ%ÆÇ’R€£Å Ç”Ö[ÙtÂl/¿xróêÁ;—ë7/†¾×ÆÏÌtÈc]Œ9YU†ëG˦rlx¹ÖëñÊI}°tãŠèn×mû„ˆ  TyÃ)ÅŽ (Daˆ~úµß.·?ÕòÃ\¡ ¥O½ö‡*>ìó[ýøæO¿úû»ø*c@40DE*Ÿ}ã»=Ï·Ãg[E4Ñ„FŸçÏTOŽK6D@Jf‘×ãO=Y}âî㿱ÞýŒÃ% >Zÿ“¬Ú¯¨xûøh;¾Ò¥Ïæ­ïBt—›Oxò̪9”ÏßýÓo?þû¦+ƒèDËϼóçÛ'ÿ`מÐ(‚ùÉO¾ö»…Ëݳ#@½wþ=ëþ§—õ‚;åjýಾzí;§^d_Â듃骀˜ª*,f žÍæggWk_iRs“û< ‚ª¡CöÞ ¨AÅb¨Fd@€" ªL€`b ¦Œ„RR)X&öUh94Q"T¡@•2Y™Š¨”¤ † ¦ZDº]Z_V‡s“,±x "¤@иm<# Ã0ŸKݰ›5ñ\]‹3“c $f#rD>KQ£RÉ#¡UU…XŹàQU :ffƒ$V Ðd%PyD0QÍ9;v *yª@7‘©Ï–”21 YfM5oÝ8–bÜÇavÏÞ9úê>÷êëçŸ|ãòÉ.Ô KpÚ f%[VËãxp縭½i¸\]²sg'‹ù¢íº®òX@€™*Ož'Æ‘’ ¹1?|óÁ_G`ï猵ÑQªûOþ!¹D8'k߸ÿ×¹Rï›RvžÙÀ™ß¿ø‡ˆÆ„ªjç½ ±È؃s"%£÷¦&¢ÞbgŽ&‘m ‡ŽÙ±–êÀÌ`ª¢MS³‰"ä@ ‰ØÔó¾ù XÎYRôÞ(Ž`E%M]O}å]U)‚•s5Q“R‚§Ã…?_÷—Û¬jwNf}éÖùeÿO~ü•¨þ°šÍYNNÇhÎ’9öäÍ£,›÷×O?þÀoŸ/_íòµóšÚj²Á¼©çó¹<|h‚`nÊŸL:Ʀ:6@QS‚…Ø ¯ë3ÀdŠˆR¹«m˜‚˜Ak¸nÃUÓd…~G¤ i&6ÔtP3:‚f#AmÙ9CTTG°Æl]»3Uº$ $s0(Ð1Ÿ±-%am˜UÝè¡uÄÄ ¢H±š›‚¡Ø†Ü¾œ<ÐôªÐ‰N bppŠLªàýlC³©ôúßÁ¯ƒÙåùãGîÛ¤fËÅbvà(˜Â>ô´w™©‰™ê—L¸aòÿÎ:uzÒRrTç@%÷ YÒ€@¡j´ªAm’+ƒANÉò.ÇDÈ9µb¦G3B@ÍqÈ•Ù{æŠÕ“A ÌâÄUÕlÖ¯¶„„Áqpbb*<²s †ìµö•!)å4ú¶ !t]GDìœ:`)¹@)`&†Ä hj‚ˆÎ9²¢ªš#€¨¢3$Ö§M‡'’b1Ó¶¦e󮇋æågÎR—>ñÙ·»Ìµ;kiYYhñ¢³,‚OÉ@ÄÎÚÊ;à`W®5»mÿæÝîah™•k«:aª+gHÎ1L M{*qTC10@UH{|­‚P$@0ËÚ©!+˜¢ÖbƒA"2 0™WëL±Cp`hPÅ0‰) êhD„¢£™1o…¬2Å”{31¨¦1I0 RT 0#BB3 4èUqßá ”`ŽN”:ƒòï4ýÚû9n=ºxðàòâ"ÇttrÐ.Î'žì1>¡« ÷U53fUB¨A‹HB“4ˆfcPI¥ÄÊ5ÁÕØ´6?t‰ „Ð*6ÐÜ¥a£)‚”QJ*c.Ê`|F‹ àÌ<¶H•¹ä…sI8UEc)Õá’Î/J)–sI@µsˆžYiR‰Ò$òôÁU LY4 5TÜ gšÕ'PDòŽ‚"S „¦â¼S€R ¨„R‡¾wÎ;ç|F`gh*ªŽX,›YJÕ¥®x³MÛ>“À3×çóãúŸ:õQ_À–-?wµö_²ÝDjBrLZƒÔŽNŽ+_g›³®çˇ›»ÝðhÝ,ü²9Æ=ªZ¾Xí‚sÈHP¡ 9#›WH ÐMXšš|#·oï hT ÂL1 šWCE5dC2fŹѥš ¡G2Ó PöµPà ˜7\£. :¶´½HɼX"!A­¡ ƒ h ! €Ma Ɇ†Ø5Ç‚† Z9…à2@6få©ýǻͬaߟ÷c}Ûmû~ˆQJÔ±Oˆ8_.ˆarŸBÚ»ÏãÞÓ]‹LôPD‘§b¤¢i¤4ê° Œ(ˆÈ`ªÅØ”Ps?ä3ZÊ%#‘‰æ¬`SÌã(9¥”ˆ\Dr(`г05`Pj|vG4 ÇaܨD ph»8Æ1e%¨êŠ9˜"3©*;çœ×$Èì‚'7‰o•‰\ÓÑTŠ#âÊK.%%"Š!zçÈ ¨H)ìXERNà˜ÙÍf~GQA&TtŽSɹœ:Ö»1ïÉ@‹h1Œ)/—ìêW^}ëÍ»bJ(0oªùrî«Ð½}لټqê-­¤‚÷ ëGë…ЋzçMÄf³¹ŽÃ˜‹šòT†7Uþ z#J@¤–Yhjb*ª=ñ ŒÑf„#̵xgN¡Ï¡É™@#± °™u€–FÄÖÃTÁÐ,›©Ãƒ¬&æòbÖ„‹×bÁ‘Z&›‰E¤‘ šª¡Ø±–Ê [<ˆug¨ŒFF…¬‘‰A=B63dñ²'¤2ƒQŠçŠ4ÇhŽ«fvàG.+ŒÑìí~ó„$"cTB!v}f'UU›÷žCtlLÆä‚¢!©xœ:3 dS&µ«TUE¦¾6„(%;Ç)E0ñ̨N‰Œú¦.¥‡D BM̈CÝÎJVúÝ.ovƒTá|ÓŤ>àwÝ{ôä²/ìÛ¥+·®\»y²ÚIßóQM³Æ´`]ûRJX.$wEèâ|Kè\]÷ES1mjª£]?n¶ý¬Zª¨îõ}û^tYmµ’)‚$ X73˜Íj£Â#Ð Õ¢£œä”7YMÈ%²°ÕDl–EJ² QöØ5•JaDä1[p hÕ2bÇ$ sôÌ—);@rÔ³hÅÆ~xÒºB,9« š…˜îÌÀŒLˆ”È©¢ZVë²Q±ì“^$yÀ™Å/ÇëS GDG'WØUã8ŒCo"M=c?™ªŠh$F2@˜F:¢æl¦ r¯)¦®K» Æ-ôë"¹ xvf¢Hä‘GD+)­^?ÿÑýSù~°9zþ—þbæÆ(‹*IÊ(¹×Kb·%B$*e‚ku´”Ó¶(°º†ŠR5R3Ãe³p7}S›KL‡h ĭ˜ç*—Jœó@΀ŠZ͈ljM²Ÿð´—8¢›ŠÏ §)Î9f.¥äœŒÙ©)ùªÊf VD|ðH˜JF&$$éˢØbÊ©ˆzÛnc.SÜvq5`f‚gNOn\;©›fuÿQŸä„}Ó¶’Ä*FpX´ÔU˜$Á¹ó]7¤DDŒ\y·és×u3_#1b¡§&¶ïö…׎~ÕÉᇠ!b©ØávøÂ«ÿVÕõãùÏ;š ¶ýkç›Ié¾hºyökN_›eôÁbÜィýXß¿fbL^dsíø[®ÿ’Tî~Ῥ2ΈáÅk¿·ò'÷/þËîãÓ”{éúÿí ~îÉúû×é•ç®ýÎ'?pïâï<{í?:œt7Ü}pùÿã}²VìòpñžçŸû½Vß{ïâï}èÎK43"óµ1–ÛîSëî$CΪxõè[ç_AŽU± üÙ.Švˆ|ÉØqi ‚ Èì=«¹ÔË$mÙ·7+™T‘˜Lm’­ )ª™$[ÜÙØëØCé¹ô‹0)9ð˜ÀWfSñ£¥¾<ºÛ¿ñF~ýòÍü§W?úÁùì ØÖLJÈŠ'ˆ9å±K©CïJ1Aò¡á¶%õP²¦$Å€JNœ¥Ù‚‡ËÙr÷Ó¡ˆ¦Tp*£É¢YrÌ¡n§~šÞQ3D6$ô@j¦bÓ¦„ÔÀ;WD™y*ïfïEŠs!•"ìØJF"R(¢ÄDŠ%gde¶”‘©JbcFbK¡1…ÄÒªK}FCœ¸r²lÚ¦ëâvב#EX/()*ßwC}ܒǪ®àf·*[æyÝxGÛí:EdDªêŠö}5ÈLH­\;þ¦›§¿J¡dݱ’ãö|ý‰Wüµ¢çï¿úGŸ¿öŸàÔkK‘øí'ÿŸO¾öáäàoŸ}‡Y)Ú3Έørû£ŸzãtÝ ç¬ò7ž¹òëUâ“õ§¯ÿ9j¸vø Ï^ÿOƒ?v|poõ+7Ÿ×·_¾õ[lwŸnœÔ• ˜™æ˜;232"'&*Å´¤a×N3–’†ÝnõXMª£3žAð<·30¯E,iŸp>;üÈáê“?qïG>þÜ/úz@5B`´1öZ ¢*e%ï ­Û>zëÞf³‰sŸß÷ÜÍÓÃd˨0¾ï»pI¡UÒP79ËÐ8TiÆÑWUí#‹Sp¨Z¬x$t¡q•GU5)HXb$7kɦȭÊÞ©/"¸¯gFžª—cŒÎ;0HãX¦¶Æ¦ æ™‚眧´«ã@,"]¥3—’ͪë‡;ëûd±7ÑjæÎ×ÝéÉÉ©«èÙé™ùšÊ±çƒÅ¼¨Ùå±_,gèQˆ¸ ÞlœÌh'µŸ© `¸Ú}ò§Þþ]±»‡æ Eµôá;ô¹+ÿñ(÷~ú­?dãJ,…æô#wþÜ3ǿѤÿ7¯üW¨ ¶»ÏÿËŸùõG³Þwû÷Í¿þ™Ó_÷jüs’Gâêîú{f_|îì7½÷™ß¶Ä4¾ç™ßåÝ€~ݬþÐ?uzð5Ì"÷ï]|o»xaê ƒüü~äÞù¦ˆxñÚý÷ݺòáÛÇ/Þ86T5+9Ú(è“‘º"ä+&1H`^‹‹±vTŠ(9tÞ‚)! ª™šzp‚ˆNIœ22M pmj¯äL›ujë9µ1E‘ Αæ2µ—ÚwèDg‚@T‹!Ç2ÙC:!·¨sØ”Zï e£¶ëÀ%dò3r΃Aß÷L'·8æ\EèPK¶nŒMå›@%‹ªÓŠ mÚ¢˜¡$@¨ÂÉÙü þ¾£zL’¦'¿ ï=üž{¾ÇA¦Öçeõ±—nü¶ãå/¬Ül2Œ! óúæ¬}¶ ÏL½æÌœaD´>¾øþ‡ßt0ÿÊeõng/ ãý¤ÃAûüÓ_ód×^=ú¥ðΣêåá‚Þ?I!Á*æÂ\õãC³áæ•ïXõ?ñÅ{T€¨) ‡I ’6£>êÊÃÇõ?æì;fí³m}çpöU.,î=þžWîþ¿ûøŠ³#t»nì k³ôex}/ïux|râ\ú.F,¥öU€w›Çùº‚É& &ƒÔœ-RFMIÒœâÓöRÓàçgÕü 43dG¾FçÑÌ4›jtógÞHÞ·¾iUÃå*“SÌJ¨ªŒÎrã`¡êvãƒ×ïÝåÑæqÇë̆ù¿úè‡_}øÒaýyá›~î{ÜŒ‡8„ä%ŽPÆ\TÐ;p¬d<Í")g$žÔ;ÇÁ!`)E‰hßÊ”#¢”bÀH”K–R<1Hn*&gŒËT¨Þ‘¬RªÒÔ†±”’s15š¼MÔTĆ1qðõ&ËÁ¼rΧ¤ÉTV]¿í‡˜DTSê•æ³yÕm6}ß•T‹€!#¹(¥ˆ*ƒlȹ4!¨–©G…¡Nýß=e½hÂíÝùcf‚È—ÛŸxçâ{½«úôÆ£õU´$ô¨¦÷.ÿÉ3g¿®ñ·ƒ?™^ÛÜþºþcDPËVÿôµ{K$$TWóÁÅê'ß|ø·^¾õ»oŸýFµ ïœÿÝ‹áÓ{þ/<å?^Înž|ýï½þðïä²qT çIGxÑ}â|ýñ<ûß½ïö4¡!^Nm ÌyÒŸ#TÌìŒb¹§j„x4ûجy ηÿ¢¿X‡[s€9¿Ûæ÷]¼>É'³jËFVÕ5âaÓ̲ )âÿŸ­?×,Kë:ÑgXkí½ßáŒqbŽœ+3© ¨b‹B¡g@ì«´-¶ckó¹Ú¶ b·^m°ûöm¯(^Ql¯ 2CQÔL圑™Óßak=Ãýc¿'«ŠkÄ?'NDœÏ{Þ³öZÏzžßïûsG@ qŒªÇÙJÑÔ¼HÉ^”†õ*w+Í="C`J˜¡ŠÁò0Œ3×ÍÂj¦Õþ£ÕJšÆ'(͆¡µUO‘ k±"ˆU:½y¿°Ü«ëp!̉Îú|F| óÓ<Ü>þÕ/~ârªßþŽG‹P!ªP°['§§Y$Mb:¦­H¦ FÐ2¸›UDcFB2)…H³‘)ePÄ’‰a$¯}Äìn8F¬1˜›©ÜÐQ “Ëà¦!pJ©J1…Ð³È Lˆ˜xä¥çA–‹•™çœ‹C×-†ÑCľ+ä@Ì”Eráb¨FuŒˆ.¹ÉÓy튮 ãÌ~]lr£‹y¹)eµê^Yǰ³l?Y䨔§u¼aþ+„;›µUÜ4ñ¶hT@½úWªpU!¿ôà‡n£G¢!˜™ØbÙÿì|±z‹õ‡ÝGïŸüÇË»_v1~™/?Pìceš6šzC° ÏOVzýè_]Ùý/¾ôÇÖå% œ )Â`Ÿ0ç"0ALãþ"~jÞ†¹#R@‡4ì?­¿þiõúáÑáÙò4ÅÄ!Õ³Ùd>ó1Æaä,¡Ã¹ÉY¬ Z² +ŠöCîVýâ´”ª‡º™îíUÓm‚ˆÈ.@‰) ª !SÀˆ’[ˆõÎ#O!¬1Õ\Î^éLsjÒ`lˆ‘BÛ‡¯Ü×Óv:ŸãÖA…—ëü`Ù»-Sê~é—?"§Þþ9ç&±‹œt7_¹×ç2ÏšiC®ˆ>ÆÄ†@DPÊе«z2CŽˆdîFDb@±aœ!˜ª›*fà¨z®c Ñ ÌlDí8xªëÕÙÙ0 !RÉ‚î„4–1UJ}.êš×U"&WÇ8 9€ŠDŠ1Ä\rß•ºš8uC¶³Åº]­›44uß«U›s™4ÍÉéâ–:­Ív…1Fq­SL©b†+"97YâÞ2q€f5|üÃ/}çbusôEzÓ—Næ³G/í¼ïÅ;ÿ4²1§òÈ¥¯oÒ¥ÓÕÇNÇ rÝßý¥g¾ü±‹úÍ7¾ûóŸø{ïæNO?†^›ç±ót|ú}yPÇ j~oñÿ=Y}°ËÏ®~ôòþ—m9ôÏßû»¥æ p(jx¼1ÅZ÷ÁÿÌ;·ß<Ñ+`¾\¹T¡hJG<ÓÅ/g¾'Ëß$¨àÚÎ×}ðxýËD!©Æ1ä34çõ:ªBŒ±áJ黾E0vôq”†ã¡èàêVܲk&Í"ä¶ô«Rú’‹Õuª)PCJÈ<žçDd®*ŠŽ!0$ é¨{§*†íÝÕé}†ˆ‘œ‡œKÃ4EJiOxµÂI?ïJΪ 1„Óåú•WïÕõTÄŽOO–óݺnÈ=†˜*BfstsSÓ"Æ2F±22D`&3+6QCD ìn9gpsÑ‚ˆÎ²‘1 "8™ÅXÓ8‰D·¢n9!„1:37ÕÌAÜëªR÷œ3t}‘‚È ®YLÔ«*–,]_HDTe6©óº]«sà ¥`ˆB 1±Z&"DrÛ$¡ƒã¨/„H>\#%yíÅ»ßûäµÿöâÖ—½ëM?Ðæ—]VMõðå¯Yu/¼zv4ŽÃ<°ãÑÙ/­öŸ5O>vðmŸìþV.'SÇŒHENïþø‹ÐÀ^¼õƒ¹tl{Ž¥¿|§NW,mݾD¾…˜ãXxÀùhÝ#´ðÂëÿBsyçKa|o! Øš<ùÈå?h²;û¼+»¿o(G÷Ž~º ‹SüàÉêƒÛ³w|ΓßsÿôçÖÝñ…½Çžk§¢+€©»~ª^=xà>̦ÓÝÉd2äîÎ㳓c+1‚б;8kp71qÜŠYÖ¾ëÖ§¹[çv¥¢.ˆUjv¶96ÌMJ•3"0Ïeˆ1¨j)‘©ž3»“™³Bìuµ³×÷Ë|ø †º€°wiwèk2! â¡âÔÌ'“ÙÚEʺë—+¬+ªðÁµ¬Îz+’|:ŸMREæ„F€ÎˆXÕ4D%‘Ý ÍÜGü&ÓÕ Ý‰ÈDÜ]Å)²1¹2s@å¬ ¹”ªª\r¡¥¨Úˆ•ÛÈë˜ØDÈ r d*‚‰˜™»öýPŠ¥À£ÂÞb¢œuèUŠ÷˜E†iª'M½XžŠ¦ªª¤dŽŒ¡ï[7hbë¶MŒ×‹Ž|âàÞ(¸˜…ñÕ£bNŸuýo=|雯ŒspïóƒOÞúëwÿ¯;°Ùsô‹g«¾üàßöð÷\Ýÿ¦;G?{çøßE® DLÏßþ;W÷¿¶/¯Ÿœþ"Pd¬†|xÿì?\¿ð¿.EšHji ”&HZÄâÐ6ëöæÇoþ%¹ö§¹ú]ãíØüÒÞ—\ÚûŠ1ú½Ëwž}õûîþ$YY­oþÆóßñ®'¾wöžùämîFįO>`.ôýõM–/bŒ4”¾k‡®íœ)˜²+¨›¢Q1•¥˜ôÒ/Ëâph»RŠ@Ç´ÕL.\œíîS`ˆ‘Få‘h%f¥3­šZÔÄ̘¡Nµ”lyˆõlëâCàÔU5VPw¯ÌK™¨‚:õ}/}/í0IH1_³PA²OÒ|ÒTUÉ|Ä£™"WSW-f%÷=#‡š8Ds/%ãFƦ„€Y s0+à ˆØ†"Y0ŠÁJ ¸&7·"®¢`ã,"2$“Œªe¼™JäA´ TÍîPTlZ0BŠÈlÞD®§ÍzgU¨Sér—¯“ïìÔNûã'Ó(འäBJ€Uª«6ggC,„lÆÀÏßúþ[þ¥è2—{µ»!ºŠTtãîÑO=8ý»ów6è¤Ö¬?hÞ&¾ì¦/Þþþ»Gÿ&—±3Æêîá¯VÏSWnFpe`w4È ùCÏGÑŽÈ‘AÝù¹[çöá¶ý«‘£ù‚NWøµO~S7¼ž¨zöµÿé¥;ÿ§èáПÒhÔõó·ÿ_÷Î>Ðõ¯Üûà³ßF ƒØº/wr9A `ˆ%ŸþÆ3ß1­‹q›¼â¸xíþµK—ÿ{ùÏõ×ÍVëE×wØ.WLSeî  0F«¨*!óÄ2t«Å×5+ ªiRó¼ŬB@BCâñ¹"¤ X€P-›N)V•›‹Že¥¥ØÌ¦»L‹t $&ŽäàžKqg4Uí 8¦ˆšZãÈ’B0WÂHLˆ8JBÀÄTÔ$‘»Jî»X#!282nð”èˆdE] ÝQM¡æRò0€±‰‚˜¹tƒ‡`„ðF–m4ûH'¤13 6“Ô1÷Ä9ÐRJHD:¶ë”2ä,MÕììÌÛ•ìL«IÍ0`.RT·çõÝ“µmÚ :7³Xu4@¶2;Fm P7¼¶î^Bd¦ @ ÐAÉ]Ñ­½üï}s Ó!"vÃkëîÄÀT# –åñð~'JŒÉGÒ.w—ø`ñ‹ã3C@4ÉGÇým¢Š0º9=}pòóD‰©Zu/›=Gˆ*wCGÂJlõàägˆ*¦t²üÀù7±!k3&Æ0€…ÍV§«_wWwä°ZwïÃÿ?ÀøãˆØ¯»UÛqˆ†aÔàÈÝf"$ºµ‰…¥t¹_÷]g1!¸ºš§§Û±žGsv)þfàElT÷}’)8°Ûîè±®¦Û;íÙ‘àÒ9‰ EEMM 8 !(˜£sBC¬§“PUe¼$šŽlÍq~ÆDHŒHj„ñ»ª æA ÈL€ˆ˜bà’3ޱ‡cÄœ¹«Ž‚Î2d75W4RGh<5Š!3±™êèx2°Ñ¸„æè ¢à@H£GT‰C)ŠÌ@YÔÍM¥(ˆ·æÓÈ'G˃½¦m[)yw»é»ŽPæÓfoZ/‡VpÙ—½&_¶¨˜(ئ9 x.‚t7ÂÄ¡öÌ `ZÛì|x7’7Gÿ@”kD‰W@p¶I;Ú3§ÑZx>¶16_݈m¹›ÁHž6D޼íàæFX17€cj¹"P ;înfLÓ‘rƒç§õÈd)¦ndèˆhæˆàÌ!2W>N>>µÖ‘0@U7›f:c$t›Nçª.`äˆÇ¾‘‚Hî—}»2ÕPÕÃz%Ãàä”êj²S5SäÉ`Ósqwu'@B2pSJÉÄ‘8"š£³â¶±ôS½ò~€X™(q¤¡u‡ÀãLß)Ö1%SP¯bŠÌ}LÖP2+dœÁÌMÕŠJÌ!ÆÐ7ç9¸132¨) #Z2»yé:dÌ#¾?kq pG& 6¾—¢…(ŽL's·±HØ»4«êHGSµ"6›%IB¹¨»«zÉžÕ§U$ɽb.¥ëZBGÄuÛ» ©ìÌ›úx½Î’ÄÐ JS5U©bÝŸ’ÄltØ6veƸÛM‡æ¶ùÜx£™½°y<ü 'Ûùß8ŽZvzãË%Øð 6´$WD<Ï=ÿj„„Á&íhCÓýtÞÄ û´È#?Üð–á| è¸y¯ ÆÙßgöÏû0¼éi UеXi§‰p2©»4#fÕ¡ï–’ûR²© CJœmíì_®«Y1@†*Š!„è€YÝ ° AÍqkÒ”v)b„BHìCéû^e@Ps’Îf BÌÎÁ»µ1å®@ Äc ¦qãèúˆiÕ®€À9¡@S $43+bH™˜ÁE]ÍU¥0ƒ*yÎêªN€È¤ÖƒzHIJ1³X×îj  nNêf`2tnÎH!`Ä zƒë'7s ¼ÑÓ>FÓ!”Rê„1D,yhÝ2qÛ&×r²ò³Eîúªªä>/mM69]¬ÎÎz50À@,jÙ €ƒ9ä\fÍ„H܉ÞàŽkzs_¨§nlØ<£ÁÄáœ.ãŽ0žN›µ´Á÷¿Q‚&ž1Úà|±Ú?W™GïøŒáÆ•ì›¸àñ1ÙÒ6€öqgEÉ›}£Õó #{<2߸‰Ïõæ5ý¶žãùÜq{ÿ"`$¢œûåéñP2€X‘Œ`Ä€änBP¤¡_v’ãl¾uõ:ÍgN! z`$2÷¬ÙÁG¥1#Ò¨¡‡PMƒA 0P×Nr›»•¬—ä¦}Ÿ»NT‹‚SðÔ-Ô5!)n–b’"RJlfLë‰=š‹š‰ÄÉÁˆØÔ0Òy¹©‘œRdÚœ‰Ä jà¬82…U T£1ý|–$®L„ÜŠ;ºmäã½\óЗR6:JýŒ¤®@Ä¥”@Luíy‹^NÖy·š\Ý îv¸ì‘Y5×JèëUî‹6/ÔݽBSƒvBÍœDmÈy\»›½7µí¸î‰ÞXæ¸Yi4BÑÇ<£¿œÙÜÀFgwï` ~£” Üô7°y w…MÑâ&ŽAJˆŒ‰©Œ/Ï7i6>ÊPÁ œÀh?#:ûh“¶16yÜaγ:>µêÏ{ŽŸbÜ…jj@ÒwËåÙòì¤ \D}³ûÁ©ênÌìî!/²XŸÆÉ|ëâÕúÂŒôtæ…P$Kј‚9Ñ4:¸Å€cE€1h?tÝzm®ZÚOC™´}×v¥dQC"Hæ*ŽTxèzKf¦à6ÎÂ(0;*…djY5Ä "¦ÊŒ”b °y¯UT¸”XU£‹ ‰TMÕAÜÅÍÝ™HJv35aGS—qG¤™!Š) à#÷ ÀÇwï讦†H£q•ÇÉ- ‚Ë(uÕ.Ë¢µÝÊ£åÒÉ*ïΦˆÔLÒpÖ/–] IÔVƒ¶mVQ©"Ž-"«ØÜYѺ¾w«p³EÃfÓC™™£ÐÓ™0>_áªRFæ`NjNÈyЖ±a êƒH!$tƒÆÈ‰(º ™!€"±{Quƒ¨Fˆf`Hhî¢kt`ª ©è`d¬Æû&’`–5ad E´aDpr½I!L`Ð0cE˜Ô̳Yq€2¢á(>ÿmÄ ÄàC×)šWíÙÝ¡=îìÕ1€c L ²XZÀB"TëÚë­ —c³9: Õ娄 Æ:1r$+êîuŒê"›T7žûnQ¬,Öm,T3W- !˜x_rß²íyÓ.W ëz¡¦"€R1Ó&ÅÀ,*Y3 yQ5óDGë9(;˜HIDcŸª®X ¨©ª›+YÉ"Й TÍMc$b$—â@ÀÇ„s `®ÎÄd)2”LëlŽ>a86rOäàVDÑ\µ˜( fê¬îV³hUËñb½=§TjÔu}ê„›D|ŽoŒHD(eÜÐt ˆsPÞŸi÷âöç]Øþ²Óö7nÝÿ¿pŒpÇa{ú¶‡/~óáñûoþû ùtoúö‡¯üß^?ü×Î~òÂÖ—\=ø:Õ5"œuE›¶åå£å‡ÌlŒ+*gÓG.ッªg7ïþpÛÞgŒ$Þ§xðø¥?Q{ùö?*ÅßòÈ_Zç›wŽ~ÚuíàY†”.¼íá?·\¿xëÁ5Íc]ù#N~íõßÎ$º8ØþÒëû_õÊýgŠû_ŒžîýìÉò!š;_ÚùŠ ó/6éîœþ³ûêãÔ?½^‡Í¾’×]·¶Ò[+Y‡Uî[ !0!¨j GT𢉉x¬w0F`çÀ@Brga€˜j¢àfžÅ²B1ä=r®#p=™6ªªvy¶^Ÿeé­B’ºÁ¢¡&J1Eë¥ëϪÙ<¥8f2¢qhÛÖÝi¼AIß®b%gÓhã%Õ¡ˆ"шQƱD±HD‚o È`ÁÁÍŒ ‰ÑŠ (ñ˜NânšEB èc|‰Q,¥lnwB$$PW%‡"²±Ï˜ 35ë‹‹¨« 3I.@„€®Bè‘Ö]7ë6âËQ˜j#Ëö<,Üì ùx)Ep@âbgMzä‘+ß¼7ÿŠíåç¬×7OÚ_w­ŠYš?qãàÛög_lä7ïÿДŸpÐIýôC—¾1ç»·lV¿íáKßnÚMÄ®¡ØábýÜo¾ôçD–‘"br\Lª‡¹øGëêê½Ã_Zè+œˆ<+M¼ôø¥oeŽwü$“>|ñ[´‰ô¥¿Ö¤‹Œ:«.?ré¿~püSwj«~ú¡ƒ?QzÍþmÅûŽØmÕo½~éÛW^´Ï?~é¿àI¼ñI½u¶~îêî7~Ö¿2©)ý½Û'?Œ$ã ø3êõ7˜íÙýåjQºN†â¢f–U(FÓœU³£c 2RzG¨f{I¡H±f2u뀉(˜+"f×Ò[ÉÒ ÑD"Å"P b#QÒA½™ÔM…ÓIµe¨‹æE‡!—2oº™ºTd 2C˜ìÎU-·­æ9Ö®"e<¥ˆHû!§*…L•"<„"¢yÉ9Ũn ž˜ÜÕB ¦ãŠpss7#d@3t߸ìÀÜÌÍÕ B! ˆh¦2®\WäÍ$ÃXEÁ405‘R±Þ„€ÈÕÍ ÐÕ™&M`‚,VÄPr.usH±ïû¶íûA˜9ÖâŽ(nâ›Ö #2b¶r$ôÆÙZwßöÞìwŠ®·§o¾¾ÿ͇«T¡.eMT@]?öôõ¿q÷õ£Ac1f…'ëߺuø£ÛÓ§Ô׿_~yÿ+ž*ê…Û?`²pOHBäj &ª9Œ¶±Žn€<:T23L®íÃÑâ'Ë÷ƒ·L &cr-8 Nkä7U©`Ú>^|âã¯|ï“Wÿä¥Ý÷e[qõ;'õmûã7ÿf›_E¼>†Xþç4½‹“ûgg':›ÆT϶¹™ÙÐ t"˜ 8‚ËE R]‹÷.ÙLÔœCÝÄ^ÊDsS7f®¦fçùôH¨& ®ªcÍM&€¢šÐÉÙ‹–QeAÈšäæ¥”:†C1Q³±Ã¿e¸›¹#;FF!L nÄÁ´ä\êI$b­ÈÝ€ÑR$4•š-×]³½OÌbo¼h—"r+°YIã5ÍÍÌ Mí3{îÆÌ!ìN¿ˆoýÛ+;ïÛÝýøãŸûä?|ìÒŸºóà'Ïò  ¬Ïû9…ÝÀØÁ ÖL•‚EVoSÜy×c?ðÉ[åæ½®À0¶æÝGá@bãwÅ„5a~éî÷3ç'¯üå¾e>{|»~‹»¾røC/?ø¡ýùcóþÓ4½8ê×]‹ê ’‹ -W›ëaÈTÇäVDÊØ1rµÑ¥Ö÷§CªäÜ ë í¦¦A[´Ö­TJ°à}qræàCÎE=0¥Š)8mk"^KéV zº¼^tµ¡”¡dC¶HrÇnŒQŠÒ€)ìM·¤ž•ÜåÜÇ‚¥˜J(E„`ç2ÑBÌ6“_+RBJÀÜ÷9U: QMU”˜û˜bĬšÕŲ`@ĉÍ\û ÈÄ1™ˆÆu\J᪔JÉY2§€f¶Ñº™ŽC[Ù˜Z#AVB¬8®‡Ü1Å4¨¢S©@áBáhÕ+Û—ææ¼´´ƒ»6M}çdÙ T‘9ÀŒîh‘‰€²ˆ“—œ]ßÐ9:3œMÚ›¿Seø­›ßÙ¹rðUW.|Ù½û¿`F#Æìäì—–åã_ü®÷<õoùÙoX·Q‘2£@ÄÉ4]lÂ%Òª^=:þÈþλæ“ÇN Zƒ<’]Õ‰x¬ 2zÜ|M—ùæÉúW¯íþ·>ö÷ ÄãåozˆeŠŠ !D‚\4€Â ^fáÊs¯þÄÉ“×þëíôî6ß|ööÿýÎýŸÙož0¹ï0 Ào«×G½@p÷œ¸ÊÚ÷2ÔÑ%ëÅÙ¼ž°™¢ëØ B%  9sU…ˆèääþÖÎ5е”b«…/:ÕŒ#cXEÕÕÜL˜CDuåa ô3qtT0Ž@ê^ÐxX­Íº¢¹ÏÙÁLUÆÊ BÅD:ó4…I²©xª|ȬY =˜s`X¬¸›¢Ù˜f(ªCÎUd4SSAÆi‡@cr"5CF§Mt! …Txl0›™«!‡Ã8qFUSÛÁÉÔǽv(yPUðQ)àè#B-«ª1¨B œ‚dzùñb]ÔguБPïÜ;ªST³£åÀ!@Qw BcDD5•‚ä©Jv>:†Mh/ 3 U¯ÛFoŠäîæÐ&[[{®îï_©ë‰‚Œaw4¢Æz70bÔ’µ¬†åjX­¤kóÐ}ΫžJA)æâÁŒ:-+’5غ³eÇÙe¥¹gòA—íp¤ºÎíjhý°,º]«®E‡,cÀYŒê'Ô‘ªè@æäŠ¥×Ò«ôVVEùLª„™R4Í<›tyhÛ¶ë»~Ì ÜÑGŒ~ªÀe €€DÄ<âT@UÍÜÜUucìP·19–Ç’¦ˆ2Œ¹½æf^DT¤ÈhÁÑ7¨ep#TAL0D&SRA)u UŠ„8ä2ˆN¶¶Ú,ëvpUuw&!¤ÈL<*â˜0†`f)2óÈôÚ ¯Äú‡¾¡¢K"ë*Ò¥æ+w¦*œªÊÃ_ßÄËê‹ñ´gšæ¾ô»öÕ5€9ä1w$àí+¶MzÓÞäÝhPÊýRNуƒ *@qëŠ#c¨‰kâdê@)#p !|òÖÿ|ºü †ˆ™‘‡áÄTw§ŸãàSU5“Ý«~÷îôÝ`íe„õ´¾ò¦+ß™è`Õ=ûÜÝïËå(†æÊîïŠqË`$à@ø©_oD€«|2Ûjv/3ZYŸEG/&@ÎÜ ! 4(¥ ™оC$/õtUOL}=é8éDƒXà° ›‚†Þ–>h„ÊÍ]¨WìÀAYÌ¥( ˜" ¸‚˜2¢”±ó@Ì)¢š¤¯ öÖû~'ÉkÂ@ä®E 07©¬ÄÍL ‰=9Š÷ff"’KVÑ*Unîj¢›;êf˜ å< \ÇM,Œû8cÂTÊù)©ç8ž‹ú9d E1„ÎÖ­#rŠ!z¢`®ìOÎb¬/íoùÙrÈ´=­ëè«å:435¼{|L!­ú nc›BÅÐmÖÔ5#¢#ZŒ\WI¤Ìç à(ˆDÈjý¬yÓÁÎû(Æ×îÿÈ3·þvÂËâg³ùcŸ÷øÿÓÅK;_Ò–ç‹3Àf5¼úÜ¿ýYÿµ:>„X;b —÷¿üÂÖ¿®&©Úï†×~ó…o]¶7‰¦Ä RØCÀßñèÿ¢¶!NïÿäƒÅ¯0¤qs5Ï€HÈB)"yõ/HëðÚÑž¬¥âí×îÿ¨j¿·õèMLÛ€=8Úo¯×ðoüxCóôøx÷ÒCÛZ¬C{úÈë[ÓªŽiow™Ü”Œ° ëõὓ»·KŠik'$nOœ¼r7bœÔ³îöýþå›Ë{‡íà¿y÷žîÕäÏþ¡Ïùý߸½<~ÙŠ\¾ú¹ËõÕsϽúZsíá’œÃזLJýò, 4UsÖöò+m–¾c&âÄPŠŠXˆÊ4qb*Y¼(ŠŠ£ *7‰ëˆS?ôCÎEdÝ÷!¦él†Dy"3)¤T]ºti6Ÿ“)Z”ÁUJ Fâ< ’óãaf9g`fsÃ(ÅÜw1¥ØTÄ„ˆªâ¦:vû»®ëº~½ì^¿süÒ­û±š/Wýɲ] +@Wd­à€}pžª­Yp,§«a°È ÷fRôÖIÿ`Õa ÜUÕª(QDlNORŒdX>|ãZ× mÛ¥:ýñ¿Q]´c @43(¸`'òI ɰ­Ìµ÷žÙ‰³q@' HêN½š™{ Èn’¥0g¢ Þ¸h¾fâ@Õ¨éÓ˜\ŠªSñ#‚ÚQMb˜ zMœb1+^"²›¥xAJ ‘ЬŒ‘Ù¹¥l  Â ¦P,Ò¶› xq@€ ssW_˜i¨'ùèÕ÷~ágÿ£T÷v®B¼wÿÞk/~<ŒÚï¾íîÜ|éädQÍ&“I•Ô1Nê:gr ‱p]WÓöe:™C•šþøìc¿ù±½½+×vÎî.OºûŸ<ì¿ñ½ïïýÊR=Q…2·§-Öëý=®Ssq±¥¾ÿ9_ÆÛÛyõ ß 7_Z>ÿÌÙKÏ·Ë£:œbe@鳨³ˆ€ˆ«„”*07µ¾@1€b¢®îΆ¥oKb¯ÉV[SFT÷Äìj")×DqÚ4«Åz½Z7“)˜’ ¢ÓX|»ÁØú¡ÀH(C§"Ì›KŽF•Q¼Ñ3‰oFÄ,*6nÈäÀXT9$@“\ 3‹z.PÒ U퓪’’šyÖ½®ºÒ‰H]%(¦!TÌ‘ÁˆœÁ‰¨”aww TKáÞÝ•k@äàênXã%p!RólÖ€£FØ¡àl=+9»“+Ø4‚WŠ+Ž\%ÑÏTÑ8+@p‹ŽdH¨ÅÑ'ìC:†jަÀKL`…‰Y&Ñ £_Q¦¨J¬æf ‰Q›PL\ùfm0uĉ“$TËàŠ”ÝÁm! ùüÞFZüŸ­aÌLû^º¡ÚÕjµsa?Øž˜§jÆÁ“€ð1—$`ˆ!ź¡Ô0Wn%QJÜ,އ[7Ÿí¯·å¤[-ä´ØÅýæ ¿â÷L.>Õ'j¬!"æLê {[[Û»aÚ ZÕlÇk{i÷2moçhõìÂdk§[—³£|v²8;[Ãz]N<ݲT|‰jŒjш c „µ)2zC¼sKœ!Cª¢–s.CŽîAÁL (Eh»U×Ï&ó™)¸‰ª92‚92º©½Ë’Ý)DÝÔåȈNÐÍœM” 1„äh!pªªu—ÅÐÜ&“Ùª/EEÁ=‹9:šm¸bgêÒûà¼á+ -»·’e΃j@g#ÙF1 ¢“ q»™ŠgG'¬-Fgé´æœA ¨Œ°+pˆ[÷`ˆÙh  Au”<ŽâGsêFñ¦ª»:ðfn06gh,Ãl3A@E43ÕWîæ@Mbp,`…€ È“8:ã(™ ˆGíØF1âèd¡¹9@ÉaÔÑÈ9ûLý:¾Ì‘£:h鬘+åvm³Q@ ヌD°©+GwGubí†ÁÙ˜êÙ|2~ò…{Vê-ÖR†Ò—Gßùèõ7½S|'2ª¹137Vd­êY¬v‘£Š¹"C5‰—®\þì÷l]}‚g»yu”Û£³õ߯n¾´øÈGÏNŽ·½§i¸y·;[…R ¹Žˆ¡RF¶™Š€‰É,‚J–…OCœ¦€äTU2¤”©˜„ÚvÝ®×Óí-42·Ñ‰ìÅTÅG±MV%GÛ2#ÙÔ`Spà˜÷³¢!Bßõ«Õz¹Zµ~R )Ç,šÅ#c.t'èUºAºÍí`;˜Êjݵ¢!Ä:„R4‰ªÈM+¦Y“BSŽ)­Û>ça:©S=›˜ÁF“ˆ†\Š2 c °  ÓFf»NkÀP¶Ä &-.1‚“-Ì‚‹™– s@tÂ芓!Ž;Ãxቪ]àˆ@®`Pd#œ·€ƒ˜ aå! à–Üœ8š)RFsql v0‡ó8 ÿÌžãøa BL¢RL!¦˜PÕb`3AØé ɘcUb ©¤˜¶š —v·¶æ'ÅÌ,ºô•í]¼Ä ´ÈÍψS„ˆÞf5„¸àQÂV²ô.¥ÚÙ£éVkXcÚ¯âĨžŠ¥Ã£<›ì½ýs*ŒËí[‹»¯”Û·†;Ë8©©B4òœ!g²‘ŠšYadíJ‘AËRª†ž¥7hRa(¥àføÿ†9Õ¡/JÄ £1’b0w0quàŒbÅD,%‡ÈhÝ.W§g}Îíªm×C_lÕuêT'ZõeLmÝ{HfæŽÙUÜÆE†¦×¦Jó‰¯DMI,VLU Ñ<ž61Eìsâ1 e•"3y0U?7!nÜôT ìÉ42¢¸‡ÃƸLª+¤b£;dfÓ2á LøÔ¨8Xp!"gwAf.ÈãÉÀÅ¡€ÓµwBŠèôl­¢‚H¡F 6ÌcpŸ»Uê§HŒPõ¦ä€ô†Ýjc3ùí<5½±®bŠš‡Ò÷ËÓ“XWëõš/UuÓ²"yìs!"P B5Õ˜æ~½,†ÕÖì‘·¼éìþÙ¯~ôE«¶©„;ßòø“PÍ×DóÚ+Ö*&äjȽˆº‡37ŠÀf¬®g1&+ƒWQÑçb¥Ç“Óþ¡ƒýÙ;w/=Ë{¹ŠóK± KKO=]k»wdΆ¡WN‘ãtÒÑzµî»BEƒj×Y]â¤âšGùff3!ˆ”¾ï66°Ò0 D<›MsÎCîEˈÄKssQgÆÀ$%›YUƒ˜;0U±)VΖKÉZD‘¸˜¯‡’0T!2£A!P°~Eìh[%ÿáæLן¸xý!5K»6#³PP¨êÅÕÑ«¹yEhÎÙ*7dŽqROwwöõnggqˆn.ÛÓý÷<1ì³òúhyû¥aúWz$+áyƒƒspÒ~"àF"Ò 4ÌÓªš0!Ðd6C«®Ï&çDD•âîª2R“ÜAÍC Ä.¥8±¸nl^ò ÅM2´Ý`*!p!‰1¹XÇPU‘تà“ú\5Ä8ˆTÁ\Ì„ ¨¯‡N›ä½" aÔ5 Sôœ‹¡AC‚‰Ä@)%Û`ÌÎñqik¤*^¹¶ÿ5¶¾àdýá›÷Ø¥C ó²7ÿ¢Ç®ÿ‰Óåo?øñ>¿Â¼-¥ßßù§.ÿùWÿÉÍ£º²õÕO\ù¶¬‹ÈiÕ>€xÖçv¹~ñøô—Í"¬‹¬·fo{èà›#oÿÖkß›ó!A£Ú]Üý²—¾eµþØ‹w~ðòþ{¯îýþu~ñ•»?4 ·BYW7¾ñÊÞ—ß:ü‰;'ÿþ`þÅ^ú#‡«_8]}òòÖïNö_?ùù»§?ajfëǯü‰ýÏó’_¾û/Îú£hOÄc8݆‹øi}FÜ`¿ )@3Ù®ê­.ô,ªšÁ=† Å”UR"$"`Žè8\™:Ѥª Φû{Ü}ñp~çÁKgërºú_øÅ_ý™?Ø©þí¿üçú…]¹pðÖ·>~íÚ¥»ÇëÏýê¯Ïïys׋*h‘bÃСt«bÀ„ÑÝ 8rL³XG‡ˆ#z)ë4ß¾ø¶ßÉT¯#)6[ ³pçd±he^‡¼\{;$®bªÊàyÈ)¢“CO©hH»j¨S¤Gš Ž.R±B;ô¹]†ˆ(UUE&ädžÍ”S@WµïZŠ™3ZÉj‡œUUTÐÔ\tk>™Î§Ýº Û“I`G„Y­ŒÆuTa€ÀHh 6@ÈR¦uÚšÔeÈfŽ`“*ÅÄ&¥Œ— HDUŠR ¤€¸”b¶¢Œ‚6pg.ƒ »³·>våÏÔÕÁöìósY¼rïÿ¬Â¬h®š—wßwaö¥Mxø¹;ßgÚ ôUucï ù¹çîýuýðÁÞûŠœ9Ûï†À„òþO|ãÉòW ˜pâx6©¾qð Ä»ÏÞþ~°ûÈÉ¡ŸÔO^ÙûÚuºò½™Oß}eÿk ÷ëïü}b7òù»/í}}'G·N~ªž‹ùª×ù…íúz™;IHÕ¤žSŠLÆeÍU3WŽˆPºu Õ,R¨ª´<=!¦T7íz5mqH}×r€’‡nÝC®ÍE wÉ‹Ni•«ÝO©r@©íÉBdsAd¦ÃÐmדý¹£gÓAJÎCªjUË¥¨uHUU E†b(1P§ €*@ ˆ@V İ¿ýžº:8>¸]½óê…¯}éþ?2B+£UíáËx6}ôWžý6&bWP;#ðw~öÃ/þ¹I}5ËÑ›®×WÿÌç¾é¿ÿ™ß·ž'Ÿ™ó^¥Gtu€¦†j ƒR‚| %—'ú usñ“7ÿPÍà`6ú›2xÝòâ…׿g§zâ`ïËßúÐÿxqû½ûó/ªªƒ»§?ñg¿5Ð6)8”@iÄòŒþ¹öúÎΜ㻻'Ç÷ƒÉÖÞd¾µ®"‡@Ljšóà#çÏõrçíãÕU)DFf…À„UUͦÍÞ¶?ÖLïõðÚ'žéû>3'lŒ|ðüìýc— ÅîþÆGÿãsßýøµËïzò±·¾é‘‡>ëáífCõŽ/ü¢ÝùœCEdE‡u»‚É´æÝŸü‰_ñ<ÿ¹Ÿó97ê£Uøùÿô[g­¾ç+¿¥®B/T"N†8ÙOöv(AÕÔ;—÷NoÞ‡Öp¿Q…““Ä“u¾Z´}ÖÙÎt~a¦hÈ8wŒ¶{R÷X% Þ–TMDÔ”À B.e”¾á B²T¨E¤ˆ²SÎÃxµ !PË‘QMŠ ¢RŠ)+š)!†@5bc–"§º½ˆƒeUUq·mÎ¥bªRHATÚ~@wÌ2îeì(8Öd$V´Û¾^xõÿñôÕïÞš¾¹Š{EÎmî+½aÙ¿çòî¿zÿGƼŠää ˆÙýDeZòƒ§¿öÐÁNÕn¯.Ûç• Ð!eÀÔoˆD[ôg ·¯í~í­ÿâtõK8®´1%Ó#0{À¤Ÿ}ý{ëæÊ|ò–K»ï ~ƯTýðîÏŸL/ÌÏ~ù×_ì3!‘Ä D/œ,<š 7''èrtvö‘}âùºV Þôx³³»»»7ß›qF#ò+¯¼ú?ûów—_¿üÔõƒÃ®ü§½\Šüëù±où–¯i™ EݹšïÏö/ ²ÂÜ åjº|‰·&]çý•çK›wªjK ûãµ¾poçÊÅÙNc‚E{$L#ƒ»€çÞ$  EDÑ‹jq÷1泞NM¬¨0±É.ÐÕº¸Yãòl)’ AŠ7[“zÚÈý{‘a(j€!…u;b•b×–HVG®'L‡Þd’s,‹IŠ1a°^;-¥(s 2Ć!µ!:B³OÞP¶Ò=õpy÷+æõS¹=ºÿà?\ž½÷ÆôÜ8øšWïþ«â‹±Ä?Z|ðîé¿{âÒ_xÇÃß[d(žÏ'1ç¥x@ôŠ/f¹wÒ~ìÒö—6éº;êØ»xÃçàÙ‹£;´Ãs÷^¸²ÿÞw>ò¿>wç¯ÑøPpÐdØáÑê#·~ê©ú-ãço>ø¡£“_JqnÞƒF@¡ÍþkŸ66Bs;>z°½spzr¸³»¿<95g ˆ8ïÍ÷®V;ã°L‹…•rvr<¬ÛRMÃöHLD€î¸aÖQ9¸£S„h2Ûû“‹}·8Úñw_þ웫ÕÝ~ü¤”ÄÄ>©›D|ßC¼÷oAò³;÷×w—¯Þoûþ?}òù€3€aÌ6"€Ö@èöá3¿ðágÆ-4¸à?¼ÿ}Óï«êª_¸¶rÿ•{;—®]˜íäNÙ²ØPí¦úÂV@®Ö™¶èÎØŠnQz;zîÎo}|ïâNHC̹#à)¹Y.Y´ŒÂ5ï7j.bc=HcÓÌÆd©ûuï}Š)qêóBÀ Ï|‘µ¨³¨!Ƕw)ÚTY¢oØÖÖ0̓ÓcŠÛ}ü9£;ÂèFäSÂ'R@쟿ý?wåõ§ú+oKßwÖÞu-™àP#T€øvàí‘“t¹ŽsQ%Øv\ðä‚ÝÂ(jDBÞÝ;;»D´»{p|zbªê­ý­ƒý°^ŸÉ H#†zäÒŒ:}Q§ÑQoÉ92"0GŒ•$çÉ ›yBšt«ÅâÛ×»ßýôõþÐóïÿ­×e¬stxïÃoùößó•â½ Ýv³½ºtºu¸}ÿÎáüdõ ËÍ2Šd¤^ £WàFdÀŃFÌ;U¼^ÍׯÞÿûßûw>ï ßñØýÛ7O_eÙv'×߯ JDMœm[ª ”a}¶¿.Õ{Œ±½¿(iuµ\f¸€±jÐÐ0V*q ®'ÓRŠED335K1Ѝ¨¡Šd©R=MÀ”‰‹”¬Ã´žÕ³Å=Ti*Ù« éèhÀŒ’&“0BÓY“vƒí4‘=徬•'%Ú°…aNжV¼ )« C#8N§S"Êý`î±8‚~ ú…„(Ò=~íÛwšÏs€½½/øÝ{BLàÖð#O_ý3¿¾øÄHÏb‰·îÿLzñ¿{òú_º0ûüQ³Nˆ€ †ËN^ŒYž¼gwòèòMDcpêóQ›ïlO¶¦o¾ö¡*`.¼?ÿlpX.^a›Œ% Ø6ݼÿvf_piç‹v®‹õ@ÇzYl­æ¢ë'ú“^þ_÷ÏbýØãWÿLÄ­¿ü]‘… r›©K¶eà1ú9›ÉÝNŽlíî:2çªùl÷Òu¶Ýpÿîéb‘KÞŒKÝÉÎ1ÇE84@ŒÜÑ4Ä€U“š-˜mIÉÛÓ}kÏÞ¹ùÆ“o}ñÙç^xýö³÷Ž?yëþnUÿŽw¾mëêAÿà¬ËÀõdûbƒU1è¸X•¡uÐ×s6dA@70C í@ó`»ÜlUu"(Ãò×~úמûà3—o\º{çõ»wm«7žÍ¯ï/–ë»·i:»P_ôhÙÝßÝÙŠóí¶=6H aooÿÂîdʱJDÓ@Å(À0‚ÔÔœª ÌÕ€â¤V)fVÔ8,*ˆèª«Å*¤DÙ†aŠ–bËU»î¬/F]îN—«Da6­˜©‰Z]7YŒŠ°&¥€ÀäÀA¶IѬ¢8aŽ®zi29µu‘!)8¹U!¦H6öÐêM½ê(ºÜhÝ8ÖWö¾.¦ÝÓÕoÜ9ýÙ„»æ]U]¸¶ÿ-¶÷öìíeäÿ;¹1Ü:ú¡­É›¯]üÁÝ7¶­æÍO]ýó扦×¾Q-ß¼÷O×íˈµcÏ8Y¯.Þ¿=}ûW¿kgòE¢«I}ù`çwˆ ÷—?­r:Žýqªåì¹Ûÿ½•ï¼tá«úl쌠(À|°õO^ý‹n|óÁ?~õ臯ï~Ã×ÿè僯{´{áÎÉ¿,¥cª>÷‰ï¯êë¯ÜûǯÜùGÞ÷M(îî]@äÝÝ}&ÚÛÛ?>=3·€LTW“í½ ]{øúª]¯»®ëÖâÊ\Ûhör !’¹Dæ8†Ö‘ *"…IUMfCÉÈ\mO`¶S*O]¿¦¹_/n¾ðÚëg'W®lwíƒ !loô^ïÄ­·B¼¼ZÜ¿w¹ë^YõG¢­*R0òƒz¾‹¾%h]4,sõ-®—÷/¿zG˜[5º{úÒ3/>Þ<}ûÕãç^¼ù‘ÉCmç~8^”f¶—¶¦gºxàeš‡ ‰/?tpùÆ…º©(Ô!6àŽpip 5c3Sï."1ESk×ëÝù6´]×`ã¨Ì\7MçíË(Ü8;] z’V뜳̷뭭jq©Œ]×›w9%Õ’#››DLÄààfº•å0w1qˆ«MJ; îÞ¤@d&£ádƒSÆÍúÝÙÓóÉpûþ=sûû&|¹·û“é[.o§ƒ [ï>^}t¬bÐC•åÞ‹w¿?†ÝË_å.À£«æ“§ßöø÷8D4ÏrÿöƒûÄËÿcd`ŒŽ-BÓ‡·üäÞìmóúm\ùÃî†H¹¼þúÉ¿¾{ø3àíØÏqx Ð!pÛ>ÿ›/ýÙ/¨/ïÍ?¿ä¡8˜wóêÍO\ù“‘w^=ügÏÜú{¢wkõ‘*]½~ñ÷¿ùÆ_+zv÷äÇ‘h{볫x0­u/p{4³Åñƒ­íƒÓ“£Ý½åâÌ€ÿ‡¿û¿Ç·üž>ýúd±8¾õâ'_{®[?õYo»ñÈ“!Ö©JçࢠÄnf¢‚ŽáA6äîÖëÐöLÑ1UHI=Uí;,-i_ŽËÅ‘É)Òt‡›¹@Ö{¯•ÃcïÔÅäì4·©­º¾-Òô%«i6éT³) —,ý0,eÈîB¼(>¨d3žN™¨_¿þI÷Ä“WÖíâcüøg]}r·Nyyv|xzeo{çêìò[¯?úôc)T* ÉÉÙÌdèúÓÚ¡”’‹‰šˆ#ˆ™HD !ºûz½¾tùªˆt]»µ½5ÇÄ££Óåé!ß¼½X¯êpáYÊ´öÂVorztbšÙ,玵Ħâœw‰¸ˆm,ìÔ¤h€éÖîɪ;l`t„IJD|Ú¯Í)16èÂ!„T­Öù»þÁöÃo©µ+#1ñ¤âG‘ -ŸoQ/!gÃÒ„ë)Õý°ÊÙÎôñ~¸Û•× £ 8zšÎïËýõðê$]¬ùq§ŽÀÁ¼êËëƒÜ ¡¯ÁĘGœ “úÍ)\VkÁ›®<Ó•×Wárà rÐCðBP©µ‰/6éjW^êõ,U;5_ô_”¾ueŠ3Çé¥Iu`¡Ï]•áEwÙi¾Ðsy¥ïo#V–‡¯}Ùç¿ýã°fJDHxzrvë¥O„ ú‘8¤ª®§³ùN·½g"FaÌEPIŒŸ>AÏÂHX!åÈÊ®š™¢1CÝP “ÄZÏ ê0¬mˆT,j%ËúÌûUŒ,¹Ç¸nL­Ú­f¥È¬/nVDÚ®ÍY†’Õt̠ȥ”\gÝYß.¤–N`p,CËSáø˜ÁNŸy>ø,ÜÙ=[§åbBùá«;ÕÁNueçàà2s"€" œ_±Çñ)ˆ*º«Û(/Ñ‚;™"ÖuÝukb ‘LDD‹ƒrß½\/3¦P'µ!ç&“©‚BSOJ/®Š©£Ž]¦:ÑP\=‚C6u‚¨„€ bÒKi8N8Ö`‘*,çÏQq56²ž¬òí€Û!SSd…šâjø$ö ýðì„X jðDÀHh°:]~œ©Nx©déô7‰ÈAFB+Q"Úr‹°‰jqÃã€Ñæ‹Õs†c"Õx'øZæ8Éz·Ë·Ñv "¨‡é Gëá^•˜}ž;éü“ÑÁ[½ ˆ)†Jd`Úxp:¼JÃ4ç!Å9Bu¸ø9D yÄ#»ƒ›œno_Øìë§gì7@"ŽU5k¶/̇γÁËtÖÚ9ÿÔÇÏ(´PUdæïΔ"7• -ƒ“«K!sˆ±æˆ1èö 'µu Zú\2øPoïM®ï4õÔµh·pð!0v.DD$)*œB‘Œîª’»®_¯Öëv(Òö9 $¶œ5 !ÓÄpa Îgiº;‰[ÕÖ¥í­ÝíjDBG UEr–2¨ŠŠÃhlF@1uU‹!™ë0 1ÆcιªS]§ahK)1fD u] ý â!ViÕÉ0 ÄCà¾mÝ ªÝÀ´BB@„À ê@‚à‚2˜¶C/îÌLµ!œÔ$N,»¼AŒÙtª*$ÄÊÀ ‡î€`ÇÝ ¤È#^Û}Ð8d¢I€QÜ¡sŒ`µƒ!»CA`wtÈH†c£pìĸ[ä1ºU1önì DlêˆMÀèDn–ê˜+f·X”ˆÆ»!q l Ì•ˆÔÍ‘R€ÆuªÆõDs$#Öß @!áîÞíìî1óîÞþÉ邟3´‰S¨xº}ÉÍ-÷m7d˜»¹Ç†ºQÂ!*d&BÀ Rä‘¡ï]!ˆ@¿†Ar(}Æ¡„&qÜë«Lƒ_-‡åÝfë`çÂv`ig¹k#gàõ°^ ŠU¨MTÔÕÁ¦ÏÓÆ‹­ãBP•TÕ«ÎÎVë’u¾=5÷ã“UÍALK‘’¢Ebt!UfruÅÈàŠæ eä€D€æA…ÕšX%F4(ˆ‚0¨)3#s‰ÏG‰înªÈ‚` ¹ƒäHÌ˘^TÜ{t=WŽ¡#¢ôDäÀâ¸ÜÉÝ…h|ºÎò¡lžˆîâ.É’IpìˆÌ=WG4G&EB÷l+wSðh®èÞã*£Ž|n–ˆÌÁÁÍ7Ð`™PˆÄT‘9ºû‡ŽªæÈÄ“É8ZéOOî¶¥‘HàfF†3GUL£ã€€LAÃt»0è1”ÜÔ‡5¹'ꆲj Rd§Äh*(;ó½+XM†ö ­@3C VŽÌ@ ú¬b2ƒ¶SU-ÅÕÊ@È—@B‚C×OälT3s&†€ëPÕi;—êùŽ…Ñ(mª*`Dn*îŠCÎh¢ªfª%çØÔS,¥332³ŠÄRjFÖx‰‰Ñ±Øà¢ÖK9]õ½â¬®KɃ)2N‰¦ýííÜʼn)»«±[À`Š(F«L‚*&€X ºW‘ÑÑ{$rPFOqíÞeu…š`³îF⃙107ߦÕÝB˜˜¯ˆ "è}¤H[KÈÅP™¦êbëÀ€ÁÑ6ócbqD 1wÏùíìHBŒ"™©!L€+3Ì”:7g&R#v'W!F³<AvÂHàDÀ‰Xȳj'vTÊ*ç"S#’Ÿ6ƒS$ƒF€¬ê‚-’26†P’šïVì€ê@ˆÚË"PMŠª-b@0€â@ÄÜ "Fµ!:d70ìk„äîHê˜Í{Ñž1רæ&Ú;8Á$°Ã@P»‰“˜’y1p¬±A™±CÆQ÷‹H¼‰+@ÝäÕœ³ÎÉV›¥ÿ©\ @g8×p[ªR•ö—ë!Ó ‘©ô®‚ŒjŠNæHÎStô1zÁ`|¨ "zÈ3n¢â‡Â‰rÛ¹¨’pÏ ÍÌͺ%!KQ-%1èzíyP)b\MÜÌÔ]†váE¡¨vŘ\U]c• PѸ! ‰«ˆ) T…ÑAÁ,©›[jÒtçb¨kqË%@M\d­C¥”œy‘2¨“!`¥ëJÉœR)9W)¡"zÛ·ŠCPÀ\/ê‰CâÍ›jÈ>èKIiZ“;Ho¦¥€y£‹Y6S¬½T#5Q™ ÝX̰‡ˆNÈ„ãc‘Ã`z»Èý¾¿3@›5‚7`q³+; މ ŒAEHP7—êê‰A^jÛ׉©.Þ¦z{'½³ôwÚ|“9‰‚Z®ãÎÖü]]{+——ët©ž=ŽˆõX#~:äC†ˆ6!r> ±jÒãFm·¾í&@m ¦hŽag>—”Å0¼ NÓΤz Š.ûr5öàŽš 2ñ|Ví1ÏÁˆÍ†n¸-z„:GbIS›Ø¹7²>ÝbúÛý¦ç¹çÉ80ʵöövOtlÙ0gYWˆ€Ñ#ŽfKD7ÕÈÁÝL9S)¦¢ÅKAB/B*Éúìj)F)RÌA@³¨æuKÀ íÚúÌH½xÎJÎ¥ÀÅ0'CÌdÄÆ)'N™RbšO½hQÄbÉŠÅB˜N§U•F¿ª±a*Ò÷-˜©Œ‘"¥HQ5UÍYBà’K`N©Zˆ4“‰Š¸kú¡ ó™»3’¹…ÝUDRLͤn2¤ž˜‡ÉÔ½áŠÛ^€5Ø ¡É–ˆb`pG ˜L]ܸŠì`êD™´ Š4 އëîn[N[ÓhiÀúÁdœ´ot;ªÂ$ëñöôo{ä¿Û™~ÉbõÜ3¯~÷áêK©ŠÙÅ­/ú¼§ ^yæÖÿôò½œàÎŽ/ïþþw=õ¿¼xë~øÅ?ÿä…ïxÛË´#LÅÖn$vÖö·>øâÕ—»‘€)å|ò¾·?ú=uu㣯þÕ—î~ÿ”¯ }»½ó®·=ò7w¦O,>üÁþt–SyìÊ7>õÐ_síÚþί<󭃽Œ,x^»¾÷uo¾þ=oÞtÀ‚îýÜoÜüVâµ*“ º—s'Ù¹¥ì<@ÄýS@Ç7íÍïÑE눔RSÕMY.Ðdš˜Ø`Ä÷žÇ31ó8Bß[3$à¨^W‚ ˆ&0 Ä¢ž•0q CɪB›Pl)EU ‘™SŠn&¦Næ¨<;` !áhulf ¬è} ˜”Ül4d™LfÓ˜b5©ÁGΣ{z$@ð2WÑó$¯H€T\e“„Ë#OIU«ª!ˆèá**¹@!2Sò‘5c¬ëÈÔ%r§àneÈ"^‡I ÀÁÉÁ+æmÂ1%ä#‚#rf&D1/â„Ä )S—¥Wé] =0n¥XQœ06q ؘDÑœÑÍlín³æÑÉ—ä­é“—¶¿úþâªXKnGÔQLמ¸ö]RúgÿŽ€€F¹d1ì:8kŸ¹sü;[ï4.Î×…w߸ôû^¹÷O¡ˆC t†k {äâZw¯Ý;þ7Dú襯ݙ½Í\c˜ºgÇÎQ¶§osžN›ÍkOž©B3”agöå_þÓ³æ†Z›õžè™š5ááisƒa*¶d cF˜o̾ãÄl¬ÈßðjàoË9Ï­@ÇMÈò¹v×TS]ÕÓÙñÉD$ñ«!v¦6%@t#ÀÐ|ôê"pt$H„šñÂNCÁ,Á!E3) š½ Fîby‚EDJ!PP³‚Qq.艈&‰Ç20æ8F)r¢J­3 Z‘È)¥›I3¦ó™;9¨™™©Ë˜òÊ"Å´˜¤qK·vd*9Fr®§oÛœ33‰›ˆp[ó™h1‡R,Ä ¢©™;ØÖÖtÕõâ¶he¹*îÔÔ4­Œ(ä!“+M·˜``®˜™ˆÏ Lè èN€€a X¹œô¹Xt¥UWH¶`> ÎŽ FŒÜ¤€n8²,Ü ‚Sqç½é—Á­Ãseû½{»ŸO¯×c@7‘€y™U?uí/®úöí³6›"buŽ‹þùg_ÿ[‡XÜØÿØ[ú+O\úΣ“_^ä3:zET™Î›§ß|ã»›pyR]¸´ó5æ†ê…8Åizzgú®"g‹î…ýù»öç_p÷äçÌ`Þ\}ÓÕ?¶?ý‚œ?yûož.?„ž û:ìFÚ#Ã` 9” í7¹|ð©áÈ™1ŸáÁû§w¤Enrý6·=buìráŠÔ ˜qÜ€ÜT`;º£9w[wSuß$E‚brEò@æêDT'+ÅU…j>º¥ÆT›»+R&ê@û¤ª¤à « ÄÉ =£F7"$ò@[Í̈KQSˆ)M¦Ó¢šÌ7DQB!pf6‘R²p' z®‡c”L¤BD¢1gOU!ÅT§ª]Ÿ‘ÅÕ•°Vƒ"VU¡©B®`ȸr œf“f’d(hê´bœšŽÝ¾ˆU À!ŒÌ̱»ÏÈDD¡‹ÕBʃåân_õ~01Ò&Ñ'“È ©ës[Êhbûjãs ®î!Åfgþ9`ðÜ­¿ÓЕƒ½/ÞÝ~úìäe7¡ò}¾¹²»»óßùø•¿ú±×þ²Šl2æèÒrÎ÷ÅËñòW–íóóéÛ&Õõ³Õ)d̓¡ŒÓ´nxy{öäÓýùö9éºç·ê7!­zw|èÂ7ÕÕգů¼vòƒ{“ï¿´ó;îýäÉÑû·wÞ~°ý…ðúáßzðo\[Ô °®é—*ÅH@+GCòM;dÓCÿmaxŸª×?Åé=O±vÃ$atXÆz2ÚEæeh3^¯:U«ëš«aT؉æ‘Öé&bH ŠäZ̉UCÀ¹T+‘ƒõ’ûµK“¡V¢B±Âª‰r¯ ¦‰S Bò 3[ˆjf.£¾82…Ààj¥€XñStBu& D!% bäàDLž5#¢JîûµWpg@G2Ð"F„¥‰É5‹¶mˆF½IUÕ]7xóc*&Ìc’¡M]·}FÄ€MS—Ý=rÀ¦NÚÚ骋L;³I m‚mÃècL! ’„8 Œˆ®vÚÏß»w·ï½žŠeƒ>ûseʼ5­¶jlf“K¶ZÍ·^[#©F'ƒÅSWþÊvóôÑòW‹=8ûɃ½/~òâ_üÈú/ôÝ-ä §gŸøð+ßõ¶‡ÿæ#—¾5Ûk§ëm6E‹£0‰9òv‘ûŠ}[Ìb¸Î  ÂÊÌœ™^|ýlÿ®+~/|äÅÿ6ñöç<þ÷L&–ç'7.~Ã`'·ŽÿùÍÛ?|0y﵋àñ‹ßñþ?Kˆ'ùîò׉kD'ªŒz÷™ÈHŒ¸"‹ç¡¾cþ©9½1M:çàgdùŽ5 8Ð¹Ä ld¼LRÓLwÖݺmC¬§ÓŠ“XîÍ%šú¸ˆÐÝHºœ‚S4óŽ bep$+Žªl‚€ Ñ\M ‚s@ª„ cR4ÂfêP"J ¢Fµ»Çܤ]¯Ù¨Êb:ÎH<0«Š‹“;;„I“RE€nîhb>‰ÉXµHQP5WqsQe£ò²™™pŠFLbÖg«™fjXò즶X,Œ‰†’EÔÔš¦’bÆ\%2_ºn5±N TL­Jͬ®ª”Bܤݚòíî,º×–í½uwÜæh©Ögͦƒº*R޾^ ÷ú`Y®îÎv'¼³×btVÊl }wú…—w¿R¼òö7ýýyýVWØÙ~÷‹èÙÛw¯b "§/¿þ¶ª7_Ýÿúƒ÷Aîão(ªØšw“ú‰ÝÙ»Àa(·ßH–FdD&}¹ýüí¿í–{¹ûàäç:ø°Évìv¶ßãþï_ÚúÊiõŽ˜®¹ÃÎì;Ó7/û[‹î…ýéç^ßýª³Õ¯ ò P1)„MŠó"ìPÀƒè™QrpBG@}c+?q~F^Òfnz“…çV(0wF$d3ês9+딪ªJÊLžR@ÄQ_?^ Ü$6ÄN”‚’*˜º«H)£ D¤xšjÉ92#©!r$03Å1å063BoW€@ŽR͸Q õrIÄèNè€#AW«˜ƒ“¡o®¶ãÔ°®ëÀ ›4ÒQÖ¢æbê €*EUÐÕ¤˜!Ù¯Sª˜©ˆ9©;1Šè0d` !€š#°ˆØè>'""÷Í´qâBÛ.Ÿ-š:îL“«-ûr0UrCu{ª1™©‰hÎyՕ玺–'wú8LC#’—Ý nzÞÔO̽Y/`¹tªÚæP7‡àºq£¹¡Âðè¥?:«ž*ºäàïÿƒ6냿ü_¾öàGÌÛ±B!lºòú‡^üÎwÖ?ßjžõë$@0I|€Œ³ô–ËÛ¿7ñö0¼ÖçÛàÁ±ŠCqÈÎGËåo¨Ÿ½‹P€Àƒªž\Úýbp@Oû“Ͻ°=éËJtѤ+7.üþ—îÿ³{§?½7yóõݯYt¾·ø7‹xiwúÙ1ÚÍ;?^ì˜ ^Üù=)nŸµ¿uºúh•¶ÍlÛç2þ3Ì 7#ÒøP`ØX4LÁ0V©®›I*ÈØ÷íéÑ!˜nmoM¦[fjnä€fê`ÙÀI¥hîÈ0!‚»š˜kq+ @Ém¤2æ¾tYRFà-13³)¹*"Z.n& fŠîš½”¼IFq£1ŠÜTŠÃÆpˆDãù5Âê  74'P3wP351->êÜGï©™QrÌ¡ªkêû3+ÅÄT55õÈaSæ¤f"܈ØÜêº67ç1‰‘ÀAC c7'—˜æó鬲~•sÑE¯‡½œ”vr—'©BfQu‘Ò½Ÿµ ×©IYÉ®nãMh쀙ŰümîꎆàÁASÜ5Ãéé‡^:üß‚í:¬§³'ÞtðB˜Íš›xtu³.V;]ÿÞéOMꄵŽmd˜O~ÓCßN¼UÇë·ß'¶|áîßmû»D’¹ úxÂ8Džˆ¶ˆa6zA|Þ¹[ý@¸yü–«ÜÊxruç®í}íů~åøGoþ‹i¸ñð¥?öÔõ?{µ{_?mÕOOšGOÛ¾ôú÷ÓÛÿ¾ººøüëÿÏ£å‡À™°òðéŠ8ïΜëtÞ¨a` ´rıièÄäfæH9VÒš5õthè3:ˆƒb )ZVwuNír}úê “ùÖöµ‡Š’X!ÊD!2ë(@RFYK×õ¥oË9U æâPdTN3Ë~èCîCˆ]û¡H©BÓí¥xn[b®c4S7QI)UUB3s×1#\͈)€f+y𱢕"%k)"#À 1Õ51Ã08¢ˆd"bD%Ï­¸Z×v¢‚L}ζ„ù´éû,:Ñ”"š«©Œj-ã¡Ï„ÀŒ}ßzÉó*(^Ð J¡"aQìn_²dÀ~ìÛ¹è’&!U»œÛ¡g†Á|l¹˜)ªǤâƒc´”O»b51€zPkw&ï$šôÝó/ßý;G?—x¢Vââצ_¸•Þzaú;Ž×¿j’EîÅP›&|îöß_u·ÞüÐ_ìºC dž}=òôÆî·eXœß>úÿ¼vøc§«Wä hµf]¯_2µ³Ñ¿X˜ èpÈ·«û[oiêúµãýÒ"Ãq ܧ%÷Óÿwÿf]vÖ¢oXkí½O¨ð…ÎAÝjå€BHBH(!!r°/ƒ Ø Æ{®Ç`füØž±{Æã0ƒ±ñÅ8€10ØD!,„$„rjåÐ9|¹Â9gï½ÖîkŸúª%˜‹/÷/Ÿ§ŸîêªS§ªÎ^{­÷ý½¿ÐÜ2_ܸ7{ÞãWÞôÉG~ä±ko|ÖÿãÞâ…°€õø™û.ýüãW~Sá0ø 1 0g@Hn‚§jø<Ì& œÄÖOå™@ˆ¡éºRºÍXÒjƒR7w Õ̼&•3 ÐÕ _¼ï“7Þñ¤Ý[î ÐØLÇ,‰9)Ã0dŽÁ˜ÈŠ”"cïêHHìŽ*L¡ä"Ò6ɽŒÃÀ„àÊnŒ^ò``ÎĦ¢V£ÍÐÍ*ksÎìÎ1:ƒ›šV³€‰ý©ªYETµöÓ•¬[½1XÍLŠ»sEŠ#u³Y)€¢ê15„d¹ˆš©Ùñz³·œ{±q,VÕÆŽ% ¸™xŠ!6 Ý×ë|¸ÎCÑAUL œN8p tG@€È`óPЫ£ªƒn‡É#B`jÒÁmTÉë«=S{¸þä»?óçÐ<ç«]\*áÔ>xßß`j­›­ßú±o’r‘|Ç` v÷üøÕ_?\¿7—«MØ¿|ø¶w|øOˆ,¶Žx~”dz\edDW3K©=îýðýË9ããÌä>¸"ÑìâÁÛ®ÿiµ|ðâ*xè¶ 4C঑Õú#ïÿô_u“Âs¹rõø-ïûôÏ:©Ú:ë\w2+ïúÄwì òp¢³NÐ ”ë#R‡ÏÏKª˜cíZ'ˆ}¢=¢‹:ĘfóEq…²9^XѶm‘Cˆ€(bœL ¸ÜYÎ÷ÏHH  HLŽ„èsÖRˆ ™SÓXÎîy³G 0_ìP ×,›‰r“€!D’Ñ@Ý´™Ê(C_Lˆ(@¥’×‚Ë ’©Õd]D42&Ò6‘ H¬8¸IeÄrMtÈ9«»: 06±qóá0sàÀ”ûC ¢¬‰ÜàøèX´03Lj©m²ê0DìN„Œ ÕÕ&8š¡êhˆ!€‘#OiJΦù¸ÜOqC>'œŒsDÈeµ/F´¬0Ì‚3‰1.T†RÑ#"‚C·^?ìð°ã†07µ`CBó|¼¾×`@[2.Ü7ŒÕyÐéÿK½à€“¹éTì 9 «Ö»¡if¹¿¬`8ˆèª‹“‚ŠDŒFHµð·³·Ü¾þFJ­›†Àe 0g7ef]2ÂIdSdæ'ÒIÙM€äT¹]´ÍЮkÛ ¾Úöʼn`[•l§£Oø1À‰@qš¹žðf¼–¼î0ßÙYtW¯Œó&4mã*æ<Å)01RÍ¥¬´˜J sÑbRªSpe\š1—1› "Ŧa"*œCjWÇGÀn:ªƒ™¹(cþMW‡ L ™ÜÙƒ:³“ÁýHV…ôDؘÑÔFQÕéý†ˆR„˜KqS Œ”ŠººYëîR“úaQ¢J1uÕ €©mjSìî9gQ-¥Ì›ÀÌÒl¹‡ìn‘ ·¿¬›«¹¹sLR´Ëjê¶´k÷'ÎBðTá9á#a ¨3BŠ cÅF-5̧Á¡ãv„rã:íl§Y$€€xµ5qŸL-Oø1Û öëO€SÃj¿DxRBÕW¨Áuì4-Š“ç'þºˆ'¶£Oxñ“'W >ñ§<1”ýËÁ«4œõX£°é$r¶Ø‹i~x¸‚ºï·óå8lb €XÄBà‰`J’tÓ’KÎ5þÓÔ&ŽŽ;¸‰T/TdŠž\¬HôÈ”QØ¢u+f.&Zr‘¢•\à jàF!s¤µ…­ð ˜M¤Šå@‹ “HQ1b23 U ÈLnySK©é×Ç¥ØÐÄP=×ÛvVòj½Þ¨jJÉD4Æ8ŸÏÇ<\½rµ›-½ú5É" "RŠ©ý¨’ç‰g1‚ÁfÌC‘ÈÜ´±_oŽŠ ~}1‘ƒU5GP¢Z ×ëOHDH`†‰ˆ÷¹“ˆ›<0ÑPJ/ůÚ`[KjÇø­®&¬’ñ:Nß^ým²Uàl=•¦½'çmªâÖU¬.ßíêÚVÎ[,·º×—žmíƒë­`7lG3€S|Ÿ€Øë?Ñk{p"<ÂéI-½þÒP½îZ?!Db=’jmS9DдóåÎ.2­ÖÇÌ<ŸÏ´Èдs‚€ffªb&M ™‚– µŽV"NIAÁ%¥ä@–eâX Ľô(4•‘Zú5"#A Ä,£KÉ`¨ˆ‘(ª×$_ç­ÖÍj/"ª¹–‚NZ'Ÿˆ¨:m$¥S-®5±qGUgâ&„ͰiÚä¦ýfB¨ f¥­·mëfëõ:5¯Ž±iZ7_ÙUrÕ¾ÈPBäÈĈY$—âˆ1ô¨6¥Â æ*uÀ„n>­$$âJé«J«EC6‡•–¬îˆXŠ!wFæí®x²,hkä@d¾Õ×€š;Ò–NuRÀÔ¬ËZ< _¿ NAÙ`Uÿpr£Ök;mÕq n™‰Tår(A;™+c]ùÛØ÷ÚzNû¹Ôòª©þ=8iTo\øÜz}2¿€Óä_8µè·‡Ñî™ó·>é©´:^ æ"YJF4rÓ2–<”qÐ’Mr΃›0¨(31¸›äZ‰ª X œÍHU#7eŽ!"DF8um;›¥†#1#5C@$7UÚ3^ÏzÑPÍr)RŠ•bRÔÍ4gSÉ9›ƒ¨ ¥lrÑ""**Uâo!PDD㤨%BbNq¾ìæ‹–#÷ý&çLDDDjð]1É£”ÑA±ŒÁº&TS;QQÓÀŒÇYVC®ÜßêÕeV«Þ“r‰˜ˆ!00M#èÊq_g=‡ã2:b1óH< ®×­f†ÙdC0(JèÀ±º9Z¥ubÍR­{>)€»±Öà$"mÁàîlp=’ۜܣS­¡ÁH J­ ¦à1 é®5P«\Ø©$—Ú˜Wé"ƒ©+ ƒX0'&ªTE'Tãé(óSLÔçÖë“. §’èzÁ´MT²p nèÞîœÝ»åný臬³)q„#DBfQ'¢&Øz‹Ù¨#VtÅPÁ(¡×#˜Ü À´fF7·>çuq1m‰ƒNnl˜€kµˆ Œ¦Î ¦Žêš£Âa€9±«tŽ+ ¬%0Es+™B#LˆQÊŠ˜ œF³è@D ²!’«¨ q àR„<»š#ô™ƒº9ñÌDª· Ôäã¨^wÓRˆa8Ov»îT ,4ƒ„NˆR)ÓŽ£)Fâ!÷LŒ˜„8!øˆ8L £?±^ŸzÓ“NßOYl¸{xl똦Zfm»ælY#°¯™bÓ´ˆ”Çlæd%å¢àS[ ´9ÄÆÀcJ®Iò7kfŠÕ Æä®9R"$f¦Hêâ2"€šˆU¯Z6q1C€È1D‡ìÎ"Æ@À­¿˜ÈMÈûa ¦&¦£¸‚Ñl>Æ\Ê€îÃXò˜³Œ‰T«}&he¼#¹ˆ‘ªqß÷`¦Îˆaâ©O”GpRwOŒ„œˆ˜¹ZVli6l€R¤>é*ÀÕ¬ ²pâa•RLNœÀ+‡ª…S=¾ëà'¸o:ûNƒ”¶«¹ ·ê]­$„äªÌâеM 7Ã<€‹Îó½0ŽšGÁÔ¨õ'"=’/ÏH^)>_ ‹ç,H¾mI =æš™…hãª8º¹)1’“ûf¾³ Ø«¸ŒItí·BÌMGYÄs!æ‹6§¹z ÝRM:+i2âÆ ˆZ@%ˆŒabQN³ã6瀨†hwLí̶k%—\iaàB¬ÞÂêèý08x]hH©¨šÛññ‘Œ’b’l*P²{.n^Ì­TÝKÎ@$ lîHýfÔ2š(7ôÁ7MÃ0˜:sr`@/’#sC ’RDÜk¯YŒÖEÕhB&¸ú L5„Ff¤É‚Á=×âfTÝ6TàâèΑ€¦T È¼Õ Ü‘àc¦~)dM-Ü|Ÿ9G›UFHÎ1_»dŸx´¨h tÛ“xw¯õŸùìíã­w,Šhˆtß§íà`ýÌ給›pxè|ß|³íîÓ§?.€p÷ÓS‡î³ û·ÈOöû?×à©ÏÈMLk“8DNÃ…GÒ…¬ÄKÛö÷<5ÆÈ¥€šÆãCûøG¼å®'ùþ™XŠ7)\| }h`'hbÙß·ÛîÂqÌ¡ 'ÉÒoì:tû9 ÖÁëpR­^NžëîXŇ!ì½ùêÅÇW«M"ß߈8ޤTaR—Êç'‰C@×qÌ=Õöº :U²hj—M·ô:ÆÏÙd€¦fª`®.•l¨EÒ¬å¤d0WŽÁL•͈šÙB´HÉ&B@Èä¦jž‹ÔžKF1DPsRt´:ΣpH2êº †àDYŒ8hÑR¬ ¨ø¸î‰™RÃLÄÉ ˆ‚XawDìûкYcÚ÷ŽØoz3O1x. 2¢›ƒq@UÌ7Ŷˆ9 ¸`5™2÷êéoî D‘ Ì#Q Š$hˆ"":„Ú;¢ã66(Dþ©~ùSÙ4šûÞ~üÂÎ_þÚîö»ˆ@éþÏÀ/ÿ쥽/÷kêæöÅ_Š_õ'ö˜Úÿë¹zÛ]å;þbsç=¤~î__ùàû¯üð?¹ûŽÛ’Zþ½ßÿùÿzùÏÿ7>ý ›û{‡ýÿß{Ú3m|Ã/¿ö3«oúú¾¿¾ÿë?7¼õÍGÿägϵ»uȨv¬¥ý؇Çßü%ýð‡.çÂûûéå¯M/{å™›n CÞ,vÂûß¼ù™q|tìßõý;_õMaÌ:_Ðû~)ÿë½ÖîxÉ´Ø9¼ëÉÍ—¿¾}öóÛY§nÇ5–ðÞÃÿùÿõø›óh¾ßh™KÁù‚;T­™>ÿNãï'@ïIí>ÝÀ ¦³ÙòÖ[ïøôµ \¼ôäùÂÜ©h<µMšqH1QÉ]Cd„0lò˜‡R†Jƒ0„bÓ-̽H.bZ†På‘È–G1QGr35•’Er@df*YBŠÄ¬uj ¤æc5†ðà˜‹ Eš®“jo€ˆH14GGǫհ;o¥èáÑ:„䎥Œ‡Ç‡%SŠ„»»;Q²XŒ)rlfau|¬ä£ ˜)bŠM(con@äHc–¾KQ$åÈm¤.P ¢‰‚™š›A)Y7Y‹)M-3|Õ7¤—~Ùοýqü•Ÿ?|Ëo]ºõ®ù;ß±:\•oýîó¯ýê¸XÊjÍ?ýOùÍ¿yð†_¼ú§ÿÒîÿòÇ÷½ëøMoˆ¿ñKÃ8Øl9|ôÃámo9~ø‘þƒþª×Ïo¾Ó¯~°á0,÷ð³—ŸøGWï~ê¹l÷©’ï ¸·„†ìCÎïxëF¿ÿ¯ï~ñ‹wæs¿zÅäïå¾gõÛo˜ý™¿0ô‘áã÷7ܔΞå½gýÛoHßüíK-ޏX?ùžå—¿¦{ÕW¶_ü’ôwþÚ•wÿNþ¢–ÛoKZ\­l¹á¤?=™Ó´¬O•5~ê1uFV¿W—óö¶;nÇYwùðpµ9ó`ˆã˜eɬ滪˜ }œµ@À­ä²9rÐ í»ë°>Ôñ˜ˆ†±/eDóly=äÕÚòÚuDÂZuT­ˆ™‚Å ‚È8H.*V qò0dgÆ”†± ¹d)nvU9ÅTÝDÚÔn†Ü™( ²åìZ("# B·˜w‹Y×0Ç´ÜÙ#p3N1ÍÆ¬EÑ1­7š3€sÆÈصa>©áŠ¥:W\ÌpÈÙûâU2Ëf¨•O :‚.PŒ4Ým3ŽÇC¾Òëå^¯ôe(âàjÅÔ!"¶MŒ)t)ì4q¯å]‘5˜Ùõa3 ,7ßBÏúB¼¿?¸Ö^¼äþ•_={ò=ÍrÖÞzk|ÙפvÎ?ª/|ñÎSŸÙ<ú(þÌO|è}ý“žÊ¯|}ŠÿâÏ÷¿óÆ1"¾öëºÎ —[ïˆO{úâ£÷Ž?õ¯V•ùÂîc…ûÉÌŒ1æ¬÷ß?ìîãk^?¿åV\,üŽ»ðÅ/ŸçÌŸþd¾zÅÞñ;ÃCæ§=7|×÷5ÃàoËú3Ÿ*mÈ50î,ìy/l—óøÐýå¡Ïä”\¼fÔøö øœñîv–t}у[mqUag÷ü“ïzFäˆêmŠ×®^¹pññã¾7€q+€ƒ.†žÅ‹4Ä 6®Ç1 §U 4mKBTÕ~ØõëÆMÄÀM7ogs1MC± ¸c¿ZFÆ2Ž›ÍºïûÍfÓcÉ¥ yÆ<ŽãûÍfuxxõòñña>:Zoú.–ݘ‡+W/·mZ¯yø±M_§ÝåÒÔ KYg-ëUÏœú¾?<¸6›µÌÄZF7-ëÕ¡Ižµ¡‹”"o6+$ )ú¼mæ³.¥4ÊÌCà&¦Èi¬²¯”j¸@*1FŽÁÌJ.&†ÙË ¹˜¨ŽL"b—úG¯ ŽËqvæ0ïpÙa×yj­™Sè*u¬N×°uÐ ALÍfø¾tÁâ7·]3´ì¾ûûÃ5†¹àƒ÷­JÖ¶!RyÁKZ}ð>GÙ«–ßù}çwvñ¾sOÕ"mýùê^ù³_úW‡~—ó¬ºcz† …L\QéÜ^Sz»tM–’ÃØëCŸLvö)ýÜ¿> òKâÛÿ‹Ÿ9ûÐê×~ñ ¶E¤Î9æãØ:4W.{.¸Ø¡ÙÂMŒ#3T‰æ®n©9§ Ÿˆ_×ù!F$3hÚùÙó7«Â8–ÕñÑáѵÔtûûgCŠŽJ¥dÕâ DŽ®:®¯]ºvõÂ8®"3I)ýf à)%f.Ã0lVR21#‘XuÅ sι¸3+±!—R6›Í°éûÍ:çAUPJKÎ"R¦W͹?^»ª»9âáêXÌQÅÕ}3 nFÄëõºïKÈ9·m—Eˆ#…@±™Í–9"tÀšANM“Ú® 1¸¹ˆ416Mr3- 8¦ØÆ'ÞívÎn†DÈ\'£Å<›z…‰¡™•RDlz8nfÝb1[viÙÐ^ÛÄõnîÍÒb–BœÆ#•ø.RC}«Y@ b84M7›ï4<ؼýÍ@¾ëieo—o»sòÇ?zïjqÆy¸ÿÕŸK'ÝÅ‘õI÷À-wÔi†>ùiag×nºÙ ÜrkXîõ¦Š¾"ñæÛùÿtLJzŽB——g­[Jht¶#·ßƒ›ÁÿÕ<öÉOlBËýpÿŸßpq±¤/|áÎÁáúøPÁÃ'ïÝüúè¯] ñ¡û{L]¥»öó=ߌýï¼ñpÌpë“Ú'?­Ê­µí4d®„ mßNª•Lýd¹×ÖuË(p¦*$÷ý³wÜýÌ+îúUÓ¦nÖS†Åb§HÑ")ÆRdŽUF2öG`9ĈA×G@A4¦à&Ãñá8öS$©—¹ ã8Œ˜󘋻§¦Ý¯úq躎†AÅœ™sÉæ€¢&CÎ¥ %;Â,¦ÔxÖ‘cÜdúQ®®vv:wºví°ë:ßôcQw·a”¦«õ(šT÷&¥˜XÌRÓ8€©Žn&E(03‹h¿îcŒÞ&N!6¨à®¦µB‡*ˆ..Y×£ô5z|b ¹k '©š_&ÄdpìÎSÚK³€æà›,VýYSX´ ŠÇcF€£1up"š¶vr·Ø@~æ'®üê¿¿vñÑb¿ä‹—½jß”_öšæâc»oúµ£þ+Wvw±? ‡Gú ß²ø¦oÛ;ºŸõÜù«¿ÚêŸ}å7íÝuO°‚æû—ÿ67ܾâë—e˜¥TDóf ëãQÇ'?uþ½þÃO=þXÇ&F˃”ÿù/õ/˜9Zü›ÿ䦯û¶åjoÿÃ|è¾® ë•pŠßö½Ë~Yü¥Ÿ>êþšož¿ì5³¢Ã§>Œÿñg×y_ÿŽ7Ã80€þæ/¾û¿¬¯ÈñÆîzÊüu_;Ûݵƒ“ΟT=u³;îyö;øL߯ï¼ã–!ÇG×–³¦éÌ,*%C)&Yò€¨)1"«Ã#læsI¨BªE%O$K—JÂàŠHFåHãXJÉyûͦ Jɇ>»MÊ·qDfDóFDëÎR*ƒ-»1ë¦óf03"sScm×àááÑîî² = Ǧ½vá ňbóyÛvIMU9 Cv3ãÀ$ b–UÖ}ŸRjÛÐ5”¬˜O.jdèHFÕdÅM­Íjà•¢]ÅŒ„ÄC@4B \g§Ö-ÜéxÖ‰”Õ8#´!ÄJÎÇ‹ê¬M fˆP©;Å«j¦Å_ð’Ù÷lPÑ Ÿ½Ÿó‚Å+_×Üp> ½Üõtøî\œ¿Á?ñ‘¼9ôÏÓs^D¯û¦Ý³;4ö¶XÒ—¾bùØCÃ7~Û|¹G’áÅ/ï¾ât¹gÏy–Þ˜áÜ ôŠ×-;ÀŸø3û®øžßMÏ~örìåy/HŒ{bªÖ!B(£}Á ÒÞÞ™Ý3zõ®üö;â‹^1{Ý×.˸iZÿ’—.¾òëvŸ÷Â4–ÅÓŸ¹ŠßûþæêE»íÖð’—.»9—ÁÏŸïöoñ×~ãþSîI’7ˆ©“Nüò^³móÿãñ=ßöUÅ®C’'7ÆI½‡HHjf„Ñ*AãÛÞøó}ê}wÜ~ng¶˜5M×ΛÔtm jc?0R.2ö}׳&™ú(n›Ã`^îŸáUÕÝBL®"ælÖ›Õ±Žc1Ç‘DLÊÑñ±7†~] ˜#0 YÜmV²^=8Xìì.fsŒá¸ûƒ#dTFpo‹Ò¨øðÅ MÛ"ø°>&Œ©IZÆ”¢»GË8ë:-BÈËŲ߬PKÛÅår„c.yN ¯]kS›Ú†c†š5M‡n³6´â†Ñ͵€Œähìc>ÜôïúôÑ{9¸2 °«28P¢ÀŒ HèmJ„Nˆó÷æiwѤÀ½êÅ«GW×Âè]ŠXUE Râå¢ „’"¶ÍòOþ58×cã†ÊŠ;»ñ€ƒÏœJŸ×¥-€¡@ØoƼ0Í{Œ]Ô° 0G¢£ËxÖèÐM·½ÊŽ«¸艓7óFô@×)‰{7—6Å’y½Î‹%‡æN•|³ÞÈ&"†Å9èûŒš˜‘‡UAâ°nr>`)¢ØÍlÛ(Ãe÷ÔtlŽÄÙ­ÍŠ›M ÅfN*"©Ù\yø_ôÌ5¼ >­uf>8<ºøðgÃuòå©¡é¤8qÑ€Z™:# ÊÝÏ~žƒ\~àãÍ-]3ï6"ŽîˆŒ„JΆf(yØ0iáýºŽST4³Ñ@1&/Ù5{=tœGsp/¥¨Y†¡Ä@Ú玣ˆ4³Å˜³™ÑÃMibH%÷fÊM°¡˜J|ô‘Ãå¢]´ EN]ãf@Œ1NLœÚæðàÚ¬ mÂ&-ˆA¼hqÏ Tʬ 7žÛÏYŠL†D‰y1k¬BŒ ª¹m%°@Ñ™¢‹"Cr®íG­ VâÚU£I$`âÈì à`CÑþÚzP³ Y²y@͉¦éÀH½˜Ä&ÌgM»» ¼Σ;3 !0_;ìݺõLn€DH•@ÐÒñQÈD.’`c„ã4Ë1MÙ}F„`n²A¤ :0•Ç~˜ÅäN%XÖasäÈFÑW+0E„†Ì B¢0°»\)ˆ\¼ ¹b`Ë+õ£D¨D-¡8Ðf-¾Ê1$Sì×Rõî:YL3Lüç`Ž`xš£U~M ~]>fFD[þú¶€™““YZ• à“ŸòŒðÞË—Ój½.y¸ùÆ›Žú¡mÛ†x]¤‰,šÍÕÀ¥ä¾Ï›U?_t*Â\F7ïR$¦<Žýfš4èV1â@Å ETVÇk !¤àê׎c ‹8óXÙº›Í:îîÄ”ŽÑQˆ HnÚP® àçÏì¯W¹iÓbÞ ¡¡€æÅÅ¥HL!Ä`¦‹E‡ˆ±HÉ9«‚Gl(¦F ú1—un»yŠ10€Uä– šv»#ReÙM®O•—DXÍjÌ·ÚÊbA R!°ª«[VËë~“ó :™ÂV°Àˆb岡Û6‹ 1µq±3Ÿí.còuÒGKºnS_„ ÝÉQ M™ƒJ,@À@`€Ð‚£;¡5•@ÆÁ`„è> ;’DnÀ7!$Eð !¹àHŒìK$#ΈEKMgÉDND*@@R]ÈU"À$o!(œ‰9˜*ŠÀæPÀ ; R)½ðD }²Õ=]²OH$Q% œÒ_U§â7úÍ8ß9s듟µä‘GÚl6c³o†â0Ê8–!¦”k|W.àΑÐ*{v­d)Å%ƒŠ„‰T¬ E8Fc޳ùl¯(®7™ˆ½h³Ž£ ¯6}Ÿ8„Ô´Ñ݇q ±EJ‡«a3f$$†å²kB´3çvÚŽq6ŸÅÜ0¸ƒ¹Žãc˜Í:"6Õ¢›“{ÜÐ-„8–2äBÄc •]åVYç&æ'Q&ˆ“xeò‚ÅíÛÿ9³iD¢ræVŠŽYÆ¢ƒx1T Ì `(TŸ3'wª©¤ w³f¾˜Í ¬œn˜660D‹ˆ¨6:d33 nŽZZ¦Î̇‰[;íŒH@*Ró›K–Ê 1S‰=nÌŠæn´…¦³ª¸%sPÂê…ìˆEá@4¢Ã&„лè3`dtBkAƒµ‘¸¬ÕF&ŠnnF® fݰ™˜÷fÕ‚¯˜&-‰Ûß~Ç›œ™‰Ü6‘9¯6³nÞ¤f¤>6Mι c×ÍRàs¶2ZêæƒJ†+)Æõz½Îã¹Å †\Š¥dóåB Æì@Á¼8aŠÍz³98^38šÃc_²¤n¶ØÙ/Ã& ܸzjœŸMÃ0÷]ÓùDwÆMß§¶%hšf}|õC€Äq³Ù, F2×~†,mèvóÔw+ DèÈ„îy[ûáö?Ûd]Du+¦¶ Ô/Öøµ¢:Êdˆ¸•qõ@s Ä€#‡šð«€À‘°‰8ŸÇù¼ÙÙ_Ìvͼ³ú'—üêãòÛB“‘\„Êh¢=SPMqœ`Jª®ýèàÝ´Š<ˆK£dœ-̽Í}Q1ö]d‰‘W›CcîB›9äÜÏ% ë Œ-˜KîI [ñb˜5±h)½W];7…‰J)ÌÐQR‰xìsÉ£ÏçÅ Ô!1±è†)«Â b ¥ˆu‰¦\娧}¿®c޵…S({­aàÝ÷”*q’¬F™/ö^ð¢—]{ô÷}ôƒãz}ñ±Ç™ÚÍ\ÁUÌFͤeײ’À×ã&d&$¢$2˜›‡fT×2Ši7›¯6ë,(\;Ê¥oºPÔ 8ÄŽ‹ŠŽR2PC£šù0JV0¤kG«]J¸†õ¸Ù¬³ùr¹$uØ 8Œ½› ûû;He³ÎóùÂÑ›¦)c¿Ùl×ÕØ4 š*r ³d]hfÝ<5,–Á LiRܨ+Õ¬†ëºÑZä ::¡m5à“~ÆMlr+ÁàXýb ÚÀDô–™%@®z{va1{;³3gæ³ål¹·ÓÎæ±m(𠇑@a=ß]\º~p3ô¸³·ÝIó]–‘F‡Â!¸€œR‰Â½ï/›T?}SÚÝ×åž<ü^gŒO~F˜/Ä=<þ˜>ðÀ¸»€§># ƒ<ú»rMî¼ÛÎ߬¹xA¸¿ìîøO&ÑœS’‹âƒŸ•Å~¹ûÉ‘Ìí³ׇñæ[àìÍ /]ä‡ï÷ü´gÄÙ®ñ‡ß»2DœQžñ<ô~}ø¼á~Ò“‚„d61Ña[¯×q §±—Óã¤ZÀœ&ô›ù2õCC€R´‚•t ó¨¢Z,« 0€0LÇ}nÆahSb’€xfwÞ¯×C?@PuÛYî!WeÀqÉØL%4œ™,º&„à੉!©»Š¸—¬˜ÀÄÅݘ"0Z±*È'@C@F@cGeŽzÌ¡(‰£!Bäz¿!D¢À@5v «µ(Qtdð.Â|Á»çº3ûûûgögˇ@1b$«ù:P ±R oúõ¿ø‘ W/ç§?½{ñ+vÞùÖþ§òðmo¿öƒÿëÏýÂÙ'îÿòŸ}èŸüÔmOyÊÎÑÁ jÚÚÕËÃá5~ÍW/_õ5‹ÕÁ°{ïzj¸á¦Ù»¸ú–7_zÑ—ßtåÑæwßt8f¿ûžó³…ÿþ;Æ|äÞú[üÜ/ò§?›´xäheWÖ½âÜLÀ˜´[oÊáÖÇ,ز8®Žš«×6ë~d üη\º¤ò–ß>záËç·Ýþô÷6½Ìßò[Gzw~é«f/|qhbœ5ñx¥¶¾&;;áçÿåpéþþµ¯Ä«W|ë92 9|žŸãéæ4íñ”™l£Ú‰ÌÍÁÐ4¾ù¦Ï=ßÃ'?ýɇ~ä‡X.fy(¬i›Rd³Y-– …µ»3SJMJéñ‹—˽¬ùòåÇ´H{ íâ¨LÅSÛ¥õ뵚tmŠmúLÄc)¹¸­zG,ÒÃÈ©YozD ð^äüþ²‰ÔuMJ¬YmµÞ„Àxpx”Ç11-3 UèšQS "˜æjÚ/j˜UÍMÁœ€ Ü!òääD\•ÀæŽÛ€QœPŒ16)41™‹N O®&V›Úê÷®: ?m«•·y–ÂîN»wf¹wvw¹³œÏçœ"‡€L[-ÂÑîÄt|¬ÿñ§½z9|ý·îËw,Û¾ì+ÚÿoŽßúŸ¯½å«+û/þÔáêþñߺü¼ço^ÿÍËå®8ˆaˆÈƒ¸æÍ:ïœm;ðÍßî{ yïÛå·~ùè¡Ïê¥Ç×½¢ýŠoÀƒ«ðÑ÷[;/xþÎ{Þµ~ã/_»ûž³‹À#ÎÉZBUØ Í2€8A«yh£cFZÍ>ù‰õ§>Òß|û,¸¼ï÷ÿó¯¤×~íî+¾r÷hßü¨}èÝwܵÿò×îF¢vÖ;  ãÀïxËêìNæš° Ÿk§N¶p:ÈœÀUôDvût ðä-ïèf®æ³ùÒÍw–Kf¼õ¶Û8àã>zùʥãã¹X¿.]¼xÛ·š.fs$šÏܼ?<<¼ç)óqs8} Z];çý³ÝÕƒãÔDt?Þ¬RQ%®¾§”µGƒõ¦ô£³~(̸Y¯7}î:G‡¶ ̈®ó6tm¤@íl¾Z÷’G S*9÷ãØ„ànH0ër Ħ‰jÎ8€ww5wwrDœ<‹Ä©Šåªû™{Ì9ñÛ©” ›¼²)H)vm“RAÌS°U`¤­U=ºë447t`¢D´œ¥æÜ¹½½³ûÝ|Ñu]j" rPÇ'’xt®]±Ë—Àž÷Âî¶;ñàRyÞ‹šÇ/.ßúŸ>ýa=·—¯\©&p€M 38x0¢ùÍ¿±þ/¿ylª_þº½|éòy/ô—¼<ýÊÏå7¿A~ðx6O/zÙÞMw†÷¼uxàÓýSž¿û¯ûøw®ßóöãw¿8}ýŸ8«^É ÁaÚ:¨:°£#º›£ßúÕãkWèë¾böÔgÊÿñ7®½í-Ç_üåéÌh`­,YÀBÕ- SK|ì»áLØ’NêõjÈ€á4ðrš¶þ‚0Ós*øÅ‘Ýͪ‹9¸›Š«Ÿ=sö†oêÚxßýŸýìgî?:Z9@ΚŎ6î^iLJëR?ùÉϪ•0RÖ"´é(£©¸) ÐÍgý¨)1q8^mŽ7e3ª8‹Ø¼Æ¶×…CÎèËY×$`G5ïû¾ï7çΜQ5aN)žÝßwDu­«Z)c5r‡‘9°Y0¸™OÞ¢[{”iè®nÕhÊ ÷mÈñÄ|B¤&B¯Ùpªd¿nCŽnh5³ !…°Û6{gf{{³½3;óå,¤9V²Ù–µ½N{Vcû5æ¬n¼:ôƒ«€@Ä/yõ‘þÙ?¼úÿûù»îZ]Ü ‚Á1‚>ýÙÝSŸ9?ºÚ?2ú¸Æ×óü½ïÐ~h³½äËñ_ «£áM¿: ½2Ò•KýlÆ>0¼ëm«oøì׉ÉO¨µ:È'lŒ¨eŠ«Ãk`™6›üû¿{qæbŒa>Ÿê£ð®· _õu;.Ù"bÔ‚Š Îèe댤ÍÝŸHJ?ÅñýÜ}½0O\÷[ìì”ݘ1…‰X`êc¦F5ÆKÉGLJçÏÞ°˜ÏSLgÏŸ¿zíè±Gß?{VDÆq¼våÚr¹\¯ÖnžB<< ëõ&„pë-·®·1…HÈGG¾¿¿§ŠÀ‰cwpåsÇrõ`}¸«Ðµ«)λ1jÉËné’s¿:æ¦ÙÝ®]‹17M]2‚ÏÛÐ4 B‹M˜7sÉ90†€5³ÒÌ9„ h‡P“ý Zܨ–ëö˜V­«Ù00!©)XÍG'ªìŒ¨îN)™s¢z% … Ú©0 º¹‚'žPá¦I³Y3kÒbÞœ=¿·Ø™Í–³Ø´À‰i²½;Ù˜¦ Jœ ¥À 7‡½3rábû«?pÓ-;Ï ÿ§›ÿÕ?X”×~ãb>³«ãJÑÅŒÆH6o›¯þæÝoÿ ݰÚ-²>¼²A_<ãYáù_2þÊ/¬Ú—¿zyç“àãçw¾ý€>òÞñ¯|çãŒ?ö?8‚Ù 4ÀaÎ]‰Dt¾ÀÈðÑþî›áõßÔÞûÁKx縻kçoïÿ \x¼!À7üÂá¯ÿ2…õº¼ó­öµ_žŽÑ <˜eŽ#€kis{ÒÝ0ôCõÇA|B½~]—tzçþ|6X]ö'+02u7’Qs ¬6 à)†¡ß¸Ã]wßuîÆ¿pñÌÙ3‡GG×®”\TTŠtMË;3^mJ¼£G}<¹pµF7g懽6 C áâå«ÕÁÕ c.’¢ŸßŸÇÝùÜÙ½qÝ·‘c;§È¨›M.ÄÐ5Í|w±Zv³9sWj)eˆã$ Ūí!"ו¨˜ܼd™$€8¥Ç9Ðd’å^‡Õ€S (h5•ª0"¦™UY©×ÊGÅ‘ˆ 1ìÌç³Y4o<f¶h‰m±»›Ä) “£#1œ†œ:–ñt â÷üàù_ù…õ;~»ÿ›ßåì|tM÷ÎÐ÷Ý7½à¥iÖøîÙ û/®žÿ%ßúžÝ½3±NÓ³v«aøñÿóò/ÿ|Úðs_¿ý/´»K·Ržÿ%³7¿a}æ<<õ)QG¾÷}«kWÆ/ÕÞ7~ûîf”ÇÑ_ù¹+ŸýDþÏ¿ríèHøýïË?ô} G{Ýëš—¾z÷[ÿüþOþÓ£ÿ÷?<üwÿòxìÍ@¿þ[÷ŸüôÙ¿ùñµÈðmöìó_´@ï}{ÿ³?yøÞß“{?Pn¼µdq6 hÄŠdãè ¦Zä¿e÷Ê#»›u­ý>¯^?­¡Þ.úë‹ü”ÃOÖ?1ñ6:ÆÍ,P@4•R:Ì,Vp–óY¼ýÖÛn¿sµ>zï¯^¾ìEoÂN·[ÆœbZî.s1wlÚÔ61FjÚ$Úv]“š´:^U‹"%rDÄ*¹ú÷§LÍÙÌÍEÔLV `©L G¼ž¯éSèëD¯$uœ ^p"ì"Í›C”â†×ÉxLˆ0¥æŽÛoÞÛÛCT¹éü óŨc“¯–ÕOùú´{Ron˜Ê/}îÍî¸'Üvgüýß>üÌ'z|Ò/žñœîÁû6÷<%¾ðe͇?´3®ûs7´Ì€Ô•^òÊpå‚ÉK¶rÏßÌHUtÉOVúæoÛÙ?«7ÜÜõðØÑ—¾röUbþ‚/¯6y ©™¿ówtX·Üš^ýº%ÏBY÷¢ŒK:s–¾éOíæ >ò ¯JJtÏÓÂ×}ëb}ègÎЫ^¿|å×Ä»ŸÁggÎ ðþã–a32ósžß¹¤§?»«›· =빋«ð ^À›•=ÿ…ËKÏúÂu[Òëœ^ü;ÿèÇÿü·uÖm0^Í0õÉúÎ'j}+€ˆœBˆ"¹¨ <Êšó!HïRK@‹SuÆ‘R¨¢Çë£ ?rùÑGµl ‰º®½xá2"ÎgóùbváñÇî{ðR`›~3[,µ¸¹¨Éáµ£å|Q-SqÌ2Ÿ¥å¢»zpØ%Äpv·ÄÔ4n^Jq÷Räüù³ÝŒ«Ò¤*¬Bd†’c ÄD„.ª5g†‰ªå9‰ZQ!BUwFd­“w;!ÄD¬¤\$«>S U-ºÝØÁ‹K/zxmýþÏ^ýýû®]Ú äâ5ØL›6îÍš½.Å—ËÙ«¿üûgÎãz×»»g–Ëýõ°ö|¯rVÆ­iþuö5¸Ó¼âC‹3×L" :`õ¤q×Ù|>dÓ¯ý§wôéO¯o¿Ý¿ãûo{áK»ÔŒ1c¸9:Z)8!„ù™·]6‚ïו*14ƒˆ €¶ µ3\¯lì­Jò»µä ªÞ´îUï îÃÃÆÜm±“Ð9N„!ÚññÈL³91Ãñ‘‹€…@Ý BÀ~ã¥xÛblp|êBÆvM‡cï›5!]yø/xöŠ^9áô2óÑññ•Gï;UÃLÃ#À)Må ¤ÚÕ6zµ+MVÖ“A¶£omѬ*l«y:,góîIw$ÂË“’C Û¶M!ð|ÞVÜ}9k#'Ž4va6[¬× ±ûaí»»]ßmÓô}¿»»Ch›MîËÅ\Dó¨mÓx±\2!.‹q±HPEê¼>¤äà®^TÝÍŒUBŒ!!rŒîÎî5MŒ ȫݭ԰Üê«\ûE ¯†¸Œ°yý£¡¾ÝNj=¤Ø4)E¦êØé“Õ€'ƽåüƽ݃uŸºvïìçÎßpttE¬mgÝ|NV!5l.YÀuz›¯KÉ*[»BÃÓ%dfÑ 3®ŽG@zÅWÍžñwgæ"F‘@ÍРѪ““#Bõþ´:Np›,žikbv©í{5ù$B&b&G$24vH!Îbh™]mr'ufܙϞtëÍO¾í–/]9Çùޙݳçt3óùb2mŽSÓΜ“ú©ªn‘—é Ò¤9~œq†nDÑé¶Ûã-·$"Ö ¹; Š(»ó$`8©zÑÝ*Õ ([e!óP;b¬Ÿ©³”SªÎ-ÄçÎÌ¡~…ÃôÖ1×'ÐäžJ¸•_@ý*Ñ„”¸;y-FÌ põ»ÿ¿ËÁ;vbÙ{}V:1ò&Y$l“ ’ô˜YÌÜêV~âÓA_³…¡´‹Ä&h)el‘aèûÍ »®­U?!E5kÚ†Ágm·˜¥û|¸k[sßÛÝ[^c½…Œ=Æ™y>!´jÅÝ„0P¬Eˆz1A7G€À¼! 922 ˜" Õ‰¿*¸££š™è¾ž¶ºÉ*ä`nተ5°¡"ŒÄlŒØ0¦°%áòrÖÝ|ã ·Ý~ó ¼¿|SJ]×Ìæ±ibÓ¤¶1(S\,º¬²õ£¨z¥ø ú9Väî`±¨pPD“œˆ‚ãÆÉxúº €¸ÐdÑlÛ ‚ÉH Ü•ˆÜk¶¦VYø<ˆˆÀSåDª:m«uzxãàÓm8™7Ùuß?òãdâ?™§VËAÆu6×” v’5pú¹»ž¶»ß2NLæˆØ‘ˆPEÕœ®ã^èähFêuZ>åŒÄwŽBJnÖti÷SlçóÝ›o¼-—AJ>:Æ]5-ˆ¸Ù€)¢·±±6è)å^ ÐLcĦ¥“y¹+€µ°º¤F—m̹QÛ‘—lcL‰búêÈo';;Ôœ-ẅÕTša {ÃÏgžþß'8ÒMrBD µ6ªIŽv:+ÁÌüdrw«w˜O‰DTK«IÿŽìn•,‰àªâ5+—HŒ°î5ª@+n<íý@d&P7TÂb†@ˆÌ!¹IÐÍÀ$ÔѹßpîL¼)I‘aìUUw:uWõ®‹Ì´»scýÅjªJv÷“š¨˜©"8[—¾.)p!´ Dåd«)Õq“ܬ2D·Qhh5ŸZ¤¤PƒiëtRAU±œ¤Éb·0XÍa ä)`ÇHˆBDHfaÖ¦¶k›Åb1_t1U–¥ê²ifª…8„ÔÆRâY·`æas©£Ærî™'ÙT¯C´:<€÷¾³EGÄ ªkö6„øôç4ݼ/9}òczé’µ©ß?×Üz{`*øàš~âc™bJpþÆpËL$:" 0Ó£ò§?y|Û“fO~JØËû?÷o¹­½çÈbÞ§<¤Hþ¬çE麖£˜ dš"꺚Òc¬F1Ÿ.¡Ÿ˜«ñyWE¹ƒF3טòœ|Û®Tmþ–Ó‹pŠÁ fþ¹fì×£E M‹S",Üj┺#V90¬ÌmÄ:vcD"VSt`b ¨)XDu45SŒ±I ˜:Q#&‘2 CYUh"<@塀1E¥úzVó”¢HÙô‰Õ ´B' àˆè1p˜d@b&µ*2¨ÓhGp3u#«ú:4›¨r“¤@Á‘)Tö0!T¶#Ö×=°E¢ ŠðÜ<Ú[tó®K]×µM"p„R)„NlMœ"5D›Ô¦¦¹Ö%´ˆ±®®™4:ÔÊcˆU}6ãÇ–ò·¯±1 –ÀƒÍ|AûGo¡ÞðÖ¿óÆÍ… ¥Mxþ¶ô—ǯùúE»ˆÜ7üã¿sÀ\ ëèæÛÒ—½®ûâ—ò²ƒ”ôâãð‹?µù_¿òò×ì~ï_Ù‘ÞòæÕÛßZžñœùßûG;|ZêÇŽ>þ‘ü¥_±‰Þõ_Ž_ñ:zÊsѣဉÀ]¶äq¨¶îf~R<ÿQ÷õÉ×E¬I‘>zï‡8­Üè¤ÛÆq§kà ^ÿeŠj&’¼ib›Çšÿ ¤fU åP –©°¯.“6Õm xÁó“Yy½‘BîÁ=!g‹!ˆ•¦íT ¢”,9gU-EB Õ ÑÌÀ,9çŒÄ¦âjD¤YrÎ@ÈÄŒd '!¨)#Ħ!ôœK½wMDÍ‘°m("D{)ä¦D\ƒ¤ˆ©£{ ¦XgËÕ>ºªºê$ŸlÊ«911DÕ @„¨ˆ„ÌÔÚD¤ž©úQ€¦óÅr¹˜ÏæMÛ‘‰2sÓ.£1…&¶îbl(ðr÷Œm!­ÇÃq½ ©Jêb`Æ2Ú·ðw|ßîbAoý/å·~£ý7œyÖsS×:xø;?øÈ»ß&û{;¯þêòÀgåÝ¿W>ø®pôHøÎÿžìêeýÒWÌ_õú½>µþÅ;¼ëW_ñÚø?ýÝÛCÓàÝ›7þòeŽñ-o<¼ñýïþû³áw¹ý®ßÝüÇÿ`ïþ½ñ¿gwßéù¯‡_ü·ù—~aÓÎôÖ;o˜íŒ*@ÝkH­ûO  ‚ÿº}k’Ú8¿ûž§Ü¼xžø•F]—dˆ5WŸ^Þ¦€˜ªç"¹Œqë]eŸ©T»êàƒ€SgŠˆà„`„8eŸUæˆUþ5žäÓÔTÕZÚ J ¢Ô4Älň0"Ej0 `Q)àBPpð8:a¤¨ªfZe²æZo^s™h™¢æÀµ¨w¯8#˜y)£CÕÙ²{}¿Dk8¥nyüõc‡ª¸e®¹'0#LkJš›š/;u<¡3S Lx½1&L©I1ÅCŒê‘ ̃!@à4âÈÄܤ$chfó™æä ¢œ®qg^òª°·}Dà7ä©Ï /ûŠØ4åç~úê‡ÞÍ·ÞIßùýáE/º±h|ã¯ö?þ®¼ù7V_ÿíœRhî¼'~ùWñµËíÏÐô7ò}·k›³7ÚÃ÷ãhôŒ§ñ'ï…(=ðÙrÏSýe¯î>ü¡ãŸþq]­K úÒ×ìœÙŸsXømwžïº…ûUwDb&'R¡‰?{½×ü£ö¦u§fŠîQr‹Á9âM7í(4ÛµîÎ!^¹ðUà¦f¨@Îy)3„H5 }’dã„3V/«-<ã"bR*êREÜ„ðCÎQÃPxŠtr'¢ÀÌÈ“ ¸‰)¥”R ‰™CŒMj›ØD !x)Y¤QJ©kÛ®kÔL2#µ©I! ‹º;&Äa½Ñ\È-˜p¬«5_ORbf@ŒÄŒ€fªfj11¨šŠI17vCUw3P#7šníš T“ƒjÆÚ´s¨jÍÑ."µ 03&h5HµÄ«×9ÄØÍšÔ4Ü4©íBˆÕWž9Ô@ˆ1†¬Â¾(„Ø5³åòìÙ³ËÝ×:4€­}çTã ‰ëÅÐáìcØŒãúYÏï^ñú%ïîÚ¼ˆ¿àEñòA¹tÁˆ ¸ ¡¶qö¢/[ÞõÔæÁÊzÅØÞû®ÃÅ"üÀß»éÙ_ß÷Îkoþõ<æðê¯Nßõ½ûWi>Ÿë÷œûºo]ôÇ´»¯í\o}R¡¸rKÌ`†µ®ôÿûÅ?ÒÃ*v@¦ÔíÈo¿ñøÍ¿ÚS€qÈõQ¶7#DÑ\tÌ2ŒyÓoré1`lBˆÁ‘ˆ£]ÏÏýüL%Ïy(9ƒ)xU;¢ùÔØz¾Wò:Lg­fæªçÔ´!¥3 š×õC3SE€82@$ŽÄmŠM À!0¸h-3¸xb&)¢jnεêuBoGr d2ªÙ˺­¿ ºúOTõZצªfÊUG#œºÁöJ¨[ sš2ÚÔ]¬!ŒTaž‰_ÀLMÓ¤C1F@RUD ! B‘RÙA̤*@ ÄØ´ÝîÞÞrwžš­¹ÞuÂM9º)™q&zM‡ H´‘ÁYUKÎîÐ"&s(ˆ#º¢Jåý"¾çmöð²Ü£‡?ëMŠð¾wåƒCÚ¿Á¿äes½ë}ÍW·{{¡ïýæ[â3žöÎhLÅݧÒñý¨ ¨YLoú5ù؇û0þtÍ5ßtÕoú,ª:c)ãbÙîìΚ6qŒîŒ¬ä-‚C§!+h£y4\‡+jSh“m'¨``¾?YÄAAMD¥fNpŒœMêFG‡&µDœÁÀmën Û0–Rˆ)ªÈ0ŒæN̵7À‰ÝË b ª`b™€€™HqÓSàÀ[*\…··'UJ.!›Û+Öåˆëâ­µf7˜ÈXuMá§UhQé¾àîêPCŒpë¿C.hš”šT¸M‡˜ 6scFfÊcOˆ1F!¶‹¤ìèPÊz¥' 3w $7ܸπ@ Ä©É&¯ùÚŇ?ÐÿÎoï.7ö/ßü©Ë¿û×>ðN»óžõùÛæ=ˆËÀ‰ÜÊ?ýáÃ{ß·¹ónÚ9#¿ð·.n6¸Ù”¿ùýX¤æÓ->¤û;IddÂY€í80bÇÝüß{Ã|Þ–2":@Á[7œÐÆÿ:Hý‰5LM±F üÌúƒï„—~qøÃžÌü¡>yp´riÚpóM7,f;mLmœ°oƒgÑÔhJau#Œ ¸Ò4]ÄãË:Ÿ×ñX}£ ÈÁ¼ÎÀªC•;a-êLÐcQv55A(““xk"ÙUŠ7å“$C æ®!°™ æ&ýÅÀ<ôâjLŒ"E\k”"¸»ew%êr5§ƒ™¹0!3˜*S+“NN˜öwÄìFÓ ºâM\™Xµ s ¨ŠÐi^‚“£”`\:ªg±*´C,[×hÔ´Mˆ-‡œLéÉSÂËÕ $j@{WcJ€n–™<¤ýÙâhçì 9ªÖqî”k‰¦ÚBÊE\"8Áó_8ûþ:û³?qüs?å¿õ«÷kËÏznûçþÊùóçŸýð ÿ•_~ç ýå‹: ö¬çůù–Ý_û¹õ½ï‡{žÖ|Û÷œÙÙsSÓ¯ýæ/ÿæï¯~èÌ€AÍ×#¨ïfþßÝü«Yÿ¹¿tæ¹Ï_€Ö©ƒâ‚÷ÇXì€àÎÈ¥à¿üg×j²ôºÖÝí¾û>~ñòÕ˜æ·ÞvsÛ6MÓÆ«Ú†ª××õ0ÚŠª¥9ä’¯]iÖG]×` õ@67CtœªFÓôWw$""ä È12¸ˆT!;8¨à8x6 D‚™ƒƒš‚:Å{Dˆ!–¢fÆD怀¦ZD™XrQÕZlç÷nªÕSeRvˆ(@jæ¦!0¨X)¥²z*nE€'\€ix@pý者ý)XÙÕ­Ò! &RÌTÞX­à«dK«õzÓ5!¥Sˆ¡~×4¬&RQS«Í ¸Wh–8¸ "ÄØ¶íl±œYÞĺéLe•¢cFD-üÔ§5¯}ý\#BŒúꯙ· ¼õMvx´In»«yÉ+wžþìÎDÎßD_ó ä"âî³å޽üuËg~Áügþ壯{ýÙ/øyåWÎ6›²Øùb/âILlŸ¿æëg·ÞCi6uyhn¾M^ü尳˵:ddr/'QŒüù{o„ú‡®uˆ¤û{ó[n½û¦o>{æl×µ!$D¬ybªZKQ‹1L~½¦èý°~ô±‡ÏÓñþ™=ð´¤P+Õç$\ØkÒ›Wê60óÉS{ZD` Œ Á5» V)B@ÂqELM¤ÒÌ*¾m#AÎØ³¸y"ö}ofæFD&ª: hªÙp4g$7P3U­¤€”":ˆKÅ2LMDRJªªÕ@ )ðÄÜETpÂÚ}³áõ°åú·£:låé5 OÌ‹ÕyöuM1Ÿ*`¨²}ñ„墢jDC˜ó'Óbæ!¤¦éDgf¢Ã‚i²s«o< ñ8¼àÅü¥¯XôêŒàæÚ¦/}Å™W¼Ö6›ÝÔdŽÛ¼6b¼ûiøƒ?|Ž‚"© 4›µlކ?õÝgBhd°£+‡tpIî~*ýÐßßÈG‡è»­Hé7#XA·Þ¿ë/·2™˜“NVènðÇ)``š¿ï3}¿ ùzoù­u?wöäöæ[îš/vÛfΈȭáffTy\'š„‰˜¥í¶ƒŠ\·€s­Uo!›XI¡—µVs"Gwg…ID\gÅ!)AEÝÅÁ1)’j3®Ü[5Fjc !‘”bf£Q3b1º»H!pª,ˆH!V¤Ük“aæ„È Ü¥æÐlm-ë0Ø]M¥žrV§Nd5—³ÒÁÀÉNÁl‰wjxbAU B¤˜xê~·Îà6ÅÜ31W,ð–´ƒ@Ḻ¶k¯» m7"E‚¡÷õª^"aˆæÒ¯p"Ž›’ÝAb^™ÓÐsî‹2wîJ\ÜK`^_1 =±¢'† £\2x¨‰+—V“³ƒHòPíÑ”0 ¸Û p÷¹s¢ÿŠY¢©ÇT„€Øÿ0êL0÷¶=û™s7sä˜bM§² VG3 æi’Šhê“1¡»m֛˗.-º2Þ´jºN+¤lVck˜ tK¶¤àˆ@¨U@‡ UE§ˆq@f6U15­`Ç‘SÜŒ±˜º5ÝŠ0p×t‘cÉYT¥Ff#˜O»u|ÝÿÃA‹"×"DÍ‘Ø ‰ºÖ* «î¤n«"… MTëQU£Óp"ŒNø°«²Û”e„H§JÎAÅJÖ1—"z1©£: C ffF‡ZæG®¹€’÷:7H¡Éf¥"Øt!îí‡HU°Ùˆq%ó'µ©™°ˆèăA$€ÀPª~ž(ˆ!²¤°F$°…C®^ñ :@cŽˆœPa Ö`Aäf‘¡–¸[Úóç þÈ@$@;¸VF8—~>ܬm»ÝýÔ´ÈùiƷçºãNu::×Ñ÷0 G‡‡‡c^¯Vóý3Ä`•¢éˆ^\±¦ÖÁM­žU R›A·ÊnRu ¤ˆi!0 sà]É 6ˆî"CEºYç¹d/ÂÌ!„z„©©™2RµÍ­§Ó4â!¢ªVrppe®>àÆîTmžT¶‹9²ˆ‚1¹šUç]ÄÊî5sw`;4V‘ºº¹™ˆæ\ÖcîG)VO¯Ž‹¶K! rBbp3A€J RÕ’G7‰¡eŠ•ÕÔ4K¢PJŸKß6û—ˆ\ôØY+¤«u¥Uk'ÒCðó­<ÿ0.áŒüPÉåõÿ`jîÿO8 "¹–xç]Ëf~m³†Ï~泫õpûO® "L)}êÓŸ¾ôØÃ¡Vóæj ˆªV‡@fvÒHœœ¶*ªjÀDJŸ×;{‹yÓæÚƒ>þð7ÞÄ!`ÎõÜ@²…&¶…®©Z.ĈÍÐ9ÆJ(2ÁuæÊD @i17Ó¡ ª‚H¤HNꑃ«J±‰Rneª„} AtQ©ºO33G¦*j¨Ï˜…™›VÎ'aœ\Ý̦Ý_E¬Ž*™°¾›•¹lÛÁÚDè% «Qw jª*¥H)’K)jjÕÜ¡i›å|ÖÄ VD…qÌEk @Œ)$›¨ü!c_t |&† 6ðœ…ÀsÂP${RtŸ8JÓŒðßÞ£jUóÞzÎóÚw¾}µZå{žò”¾ÏDbØô¹ëº¾?úÁß§­Ç¦lùº>ܦ¥°MŸADuSs‹DŽ0–ѲÎgËݳ;†péÑ‹«ãÃ1®‚•ö¸­g«ÛÚ„6"˜¸·2 ÝÁÔŠ›ª˜’ÕÜ–ŠÅÀ10Rn( Õ]‘‚ŒÚë~."¾íMU‹º!Tl,F ì^;Ñ)ã`š–]g_V‚DÅØLT¥¸)ÖC¿¢1H@8¹|U’Œ»©˜©™˜™š‰˜HÉZ²Œ£äÑ¥ÞP ÎL‹6Îq8QµO ¹œM³ƒGŽIdP"t1D“Á†BÜ„°UÍkW!šï¨M6ª“9 Ne‰ÿ7¸Ö·ÉØD{Ý7ì¯×U9<:xëÛÞ6›7GG‡ýÐ3spwt% @p¬6Ë'í†H¡r$ÊfY•ÐHGœ7KÜ?Tö«^:>8˜ï- „d‘ ¬ ò ¶¢@•INà n†F•ÃêÄÁÇ"±Iΰ%O9#¡!²Q vv5oSèiÈ„- -y´À¦6hݬ"2  "C0PÓ Ì®ËÊ &ìÈÉÜGFò:µ©ðΤv÷p¯«.JæZ„& C1Gœb½Þ.PĆ"’Q­r„Üc{;íb9£`›c˜Çì:2;‡Ä„"kõÒajÚ¤Wú²Z3¥Ð,Hó±Ù†bC¼çúº9@¦ LR°ÉaùsÃ#žøÁ¥üÃÚÇÏÿÆÏæ¥ïü£÷¦urZr ‚¿Êïzj{%‚‹/ÿÙïú3oýÝ·üØ?ÿ‰?ù-ß""Û™÷¤ ÁmzÕ‰áF ¢#·*²fSíûÞÝC à.ãh í¼[ì쇮}ðñ ¿Ü¯²”\ÔtëÁRM3PÝÕ®·\*Zòè"huHåVÝ‹x.d("²n9†¶mјHÀ ˜`D‰0ˆBíç]­L~ˆÎˆL®V©Œ5òjÀŠSCÃRŠd±¢Z ·ÖÑT§îœŒH®ÇÓ”Fej50KŠ«X–:.­éa*® ÑŒº†Ïž_ÎçstªñêBäÀã8QpJ)5M'Ùd,œÂroßÖëCDkÛ6¥Ùf8ʹ' ‰wÑAkoZåßF'‚ÉÿÄn®MX¾þÓ-·;bzÏ»ßyöìÙoûö?ó¾÷½çÚÕ«SÌàÖ&¶îvzÝòÆ'Ì©Î#ˆHTJÎж¤ªÃ8"A;ŸE[Æ.]=^_¾ríöããn¾p DˆÌ'ê¯sr<á×»¹™ªRi;º[Ý´êÊF741toš¦¢û–¥úC#[M LF5¯}F›d‚Û`30­ó\suÚ{×Õ'æŠæ@®[tÄÚå;ºU#íxøôfS˪S[’¨x)Z²©f¯XǨ¢dóY<ÃΰiÄMD+4È"Çu¿@`m7SÑ2ŠŒÝÂÆÍ±jáØÆ¸ú£q\Ïý\ä%"mõõˆHõ4Eüo´†ÁÉ d /]¼t{éÂêE/~ñW¼öõuc=<ᓟóäÏyñ'>ç ¯YÉþ?Ý]Û¯,iU_k}_Uuõew÷¾}Î\`Æ4 (‰u†a ¢\¢$¾hbðö˜˜ˆ!Æ'5ј¨/MHffl 0Jqf †Ëá0ç²ï—¾UÕ÷­µ|XUµ{Ÿ½ç ч³³Óé]Ý»º»zÕªõ­õ»¤ˆ³Åbòž÷þBo…CÉ&ÎÖétvvw¿ñåg=ÔUE#8¡ ,h铊ª47– °( êJUÆ4ï’4“è2ï{]ݾM7væW÷^Ì:ý¢×Ë@ˆÒš<ÇËKd(?mWH®iDDç( ÈR‹GÖ–Ï ¦™h¨ &B ªª¹ª‘&\cn‰P,Fë\¤(ÊŠ8C£šá2ZµÆ‡¨ ØhQÑbKcÇešr²äQ^ †Íæ’GÖ©5¢ýWk rêwZµ/û³Ø~Z˜ºð8[ü|—5L­ $Í£+<ýôÓÿð‰‡ªú«¿ö›%"[$.ï¥Qƒ$ !ÄÀÏÌÌì­´Œ£pš¦.ñ€N‰²Ô«ÃIÉÇÇóùdVóX‘(5GZ{-Â&£ [ÉLÎ9B猈ÍÑø *¢§l>Up¨¹ÃÕ)žUP½·pr@§8ZϘ„•YE0qUEÄæ¹öÎ,£ƒ(©I 4>°ªÌÌ1r¬˜Ê‚ (æ®Û X˜5ëbŠ*³Ähn’úµÄÈvŠ$J€œç®×ï§¾O4Ý¥¦.öÎø5U7M3™NN8TD.ï÷]’.NŽ8T>ÉòîDc˜1ÇÄådâ’–d¨ñبq9uŠa®9mÁpÖU«íOœ)Çk™«ZôªN&Öž®Å´¤^¼6ëÓ;¶}Ù¤î{ÿmÅ¥N+«b±xàÁŸyæSúßλy–%UU)¨o­3å)”‘9:OH:Nʪ4²¦¥™4Ms*ZU•äyž&9‚wäÝÚ+Êo÷òíÑú(MºIš(!9"ˆ2 ›0 5Nf ´«Áäì’Oè"Úø%ZÀjDaŽ1†XÛåI±ˆd°i€ !™ži®^ #á)ÿÍL@QE…ƒD6Ws;¿ˆLµ4ª‰ ˜§"Šœˆ$Š£0ƒhÝä ,¡ !¶°Q Q-È4ËaýRomm½Ó'i !kçxç³NÆ !FPu.Mðdï *@Ô­¯ Wo½¸˜­llöû—ö_,§i2„è˜@U½(«Åð©)x ñ4G¶5F]˜›°h³YÑf$µQ£"œZ´ðfm' ª(¦ˆV†kc¢mYKK4¥~o5Ì© Ú¨(Šõõ'?òW_øÂçßóž÷îïïVÔÛû‰,*HäEµªBŒÕ’ÉäTœ#¨ªJUÓ45Y‚‚w”繡«KVýΠ˜Váx÷çÇÇ“Þ`”u».Q"«ÿÄd²É©zGÔ°€Á’ ¢ :D"ƒ*€ Š•# 5 \5ªs U)‘íºÁ1†ªR© EdS¢CP`q ήyh³«IIU ÐlÊGÌb ÇF4Ίˆ8ÖJ2êœ*K „¦z +ÒôÍtÂÄòÑ)  ú~ßo^ GCŸö¬!fb}†äI’ ¬ÉË èL ©*æU±ˆ‘}–÷Û_{az²¿…ÔímåÙ¨Xœ,'dÓ(E  L56L¸Ó¸!­ãLýA,^…yÉ®ñ:•#¯=,†k6¡0@lf¢ÚsÛÙk…èê²Ó¤ÓÖ;³ñ¹£ðoœV[+i]’™×S…3£Œ‰’c‘HD{û;I’=þøO_¿~=Í2efo*ÉŠy¡++Ãn¯wxppxx0¯zŸÀb±ˆÌi–‘ L¦³À1ïå@Eb9OtªÙ­“¢?)`rœ÷"Jˆ±Ì{ý4Ë\­ÈÀF@䉑:™·lÃ"ÀLËÈ9ð·2T¬*¨$«Pr Êpˆó¢*ŠX•*Q‰c0š=©êŒU„XÑD˜lnjU# *hŒÆõ÷DVM™ù‘ˆ²º:¬Ñ,·ÐP'È"ªŒ( ÑdÕX˜5ŠJdåP‰ ‘‹"Ì ™—zRÊ„á’ÇÕÕ|m}}8\KoÔ<$LÓ´ÓÉ’ÄMNNæEá½OÓN7ïÊÑÁTe’ønÐí÷w¾}íhÿ–ó~u|ßtem÷äk‹ùÞåÍ7ä:,BœË=xÄPÅ*D¡·é5ˆMB]›©äy7Ë: P–‹9M“$I«ª*Š3çN’e舫*„ ÂäœOZT¦Ñk<"Ulç'¶lüV¤«iE´›ÈÖü“2¶x­aÇiš˜Äi-z&Q%H„¨ ¤ÈªL@J:ŒŽº2µFrNDŠÅ|<{ï“Û{/|ó[Æñ)f“¢O󭭭͵͵ñ ?ŠUˆ1éý—6º‰/sØ\ŽzY/éÊpsëê~êò¥«k¯;ºuPt‰Æ\Y®nŒ»ãAê³Ä%6´65ÛVÇ“™¯]»V–%ÕÆeŠ„è\m[ÊG24››  (âYYDQ/§QUD%вpÍF%_£úMТáœÚ¸Úõ^]­ŠßæšZµÂ5 46Ö_ }K  êÌA]„E3Q“ÞóáPµÊ+F(Y!Ί k[þ/ï¥E¼Þ޾ÿµ¯‡»;“¯ÀWåÂSþ“<–wF/|õD¾X,†[=ô†t{÷8ê—tý­«oœ-ð«_þ² /úóbýö£¾øÝóêGXö;îRšn±V‹ù®pÙ鬦ɨ*g±šúŠq¶8žO³²ˆÅý¾zsãJ aoÿöÉñd<®®oܸ~­,÷Ý÷Àp}Ógéâøhz´_E§7èÖ|’„PUÅ4„©s9aöÀCW6Fã™ÌeÍ&~ä [m¼uSp˜&€‰€”ÐÆ¢ J¤¤(߸öµÙ|Fä% ‘U=4DX•PM"¬¬¬Œ:+ýèŸÇÛk…éô>ñÖÇñ·>üGþÐ÷½æßh@ê,ïÎç³$ñŸÿÜgâÇt<^‹¡baÆ8ç"É|â )ÄÆ€v‰Ù¶2¬ªZ/ã/0¨¦‰»usû…¯_{íë^_‹ÆÏ£þ÷–¦Ð€e±n&¨¥ÕÁW÷,QO¥#› lŸ´¤ýŠçMÏNµÚWmˆ<­’ùÙþ²ãH3si%+k-"rŒDNM¦FL£O ˆ@©ªB…JLÒ,If®ªÊšI’äy^–eQ6jβÜy_ÌçÖTu.Ión(ËX•&B@΋0ÇŠÐ#ú6á5¢Ê¤5Fë2£–µ©—/1ƺ_AŽ 9ï="2G3gBB[~‰Ðò«È9:<<ܾuýÍo~¤¬˜p™‚°·\ÂvíïtÁИ‹‚ªv:ésÏýÏlV^}Í,æ³þ _UAEg³éÇ?ö·ïú¹÷ån§“šHi–fÛÛ·Ÿzò/ž}î¿ó¼+­5ÚñÉäÝï|»ŸÏç+£áåË[°·sûùçŸ}ä‘GË2˜t¨©ªÕ-òÈlå?"²±Ž­ˆŠCÓµ€ÖƒÍÈípaVA!åjž'8ÈS§¡.[Û§úö4ÔÛŠT Ùã5*BZ6’¹Í«76K¡ö¸*4*-P/Ô¬{öMúA]Þ{CÌlO”3=¶FŸãÖ‹×6/]Þݹ½±yiwg{cskgçöÆÆ¥ÝíµÍ,ëAžwZž&åyÞ¶ªªrÎ ƒfÒ'±“gØ\•«,q¬ßPsM¬4k+XT˜´×E„ÄÊP»"A“\@²Ž3‘躳‘8 6I0M“f–jfTuíN¼'ç¸(¦Ì1TE‹Ã8“Oع5Ó^§cô ð³Ùñý>Üí¦›ë½O~ú__õª‡î»ÿþªš1—ý~¶¾>zæ™»zõá+W®,寿¸ e·ÛMÓ´õ^'¢÷ŸÿþÅ/þ×[Þú¶Pæ ¾“7ó ýX羕¹ºGbhoo{uuãðpo<^¿ãv4^ó>¹ÇbÝx±¯pÔ¨‰´UO=õ—‡‡ˆB)M?§¬8ËÒçž{ö³ÿñ™w<ñNæ€wØ-ýxCÆîïí½ííïøðïýþöíÛeYVMÊù@eªjU÷`^¬ Y¸?X9+"!T÷X¬‹07¦k¯j™y2þÉŸþÙå—ÖÖÖcdë—eYUÕ‡~÷ÃOüÌ»v¶·Û¦¤ªž¥thë ˆîæ›ïÿ/N§ÓÝ$I–øwú»² ¿ƒóßYû™×½™å»pmΟ½wgåÜå_î»Y¾r|´2Ÿœ­¬œ¿¹ïä^ø)îN#ºðÉîðä%µ¡²d)zgžz©`¸0©µ8pç\±(£?øÃ?.Ër>Ÿ[ëÝùdg{çø¥^¿ëæ-ó0G׿u"rÎ#¢Ï»ýétvóÖMUL§Î9ö>)#û$u>Z8æŽuU%ç“4;:>éíEq/åõf‹;>™¨ÒE·ÓÖËóžÉëιét èœsÎ'í껋u!¢^pýú·×Ö×C¨MÝ`6‹1²ÂîÞžíád:µ‡Ê²ðIz2™vBlëu":9™DßOäÊúà›×_pK¡ÆÌÃa˜ÌŽÿ/I%ˆ]\áù6Ð復%¼´ì„³·x/Õ0íÒëá‡^½¿}#ƈßså~‚¸1ìíÞøÖík_¹#B~ì‡_·ãëË[˜y4=ñ–Ç®¬;lymY7WÒÿ±ŸøoJÍIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qscrollbar-picture.png0000644000076500000240000001465012536324512023256 0ustar philstaff00000000000000‰PNG  IHDR©ºðü2ÆoIDATxÚí]xSG¶Ö¾Í†P^–È’„$ËC€^ ¡„ŒÁ€}HHÀ@hÞ¡C¨ÙT ”4È†î‚ wlƒ»»º-[Vµ-ÝvÞÌÜ+¹IÆÈÆRöÛ‘n›;÷ê×™3gΙ93#â€òEÈ—l`9åïrõŸ˜? ‰È-cy@xƒõiáäYËS–õ~^Ø,oG§¢ÿ"} HY–CÙqhO6þÀ’{u‘$‡­wŸ\±Â}–ÎúNK*VH%¼£þãü“Öð¿Ç q¬8®Mù·1胿øD¸bpÃð‘øÄ‰¯ø„Œ%5IȰŽ­{cùeáA´«GìÿH>5ëÊÅù™É1¡a¡aèJöhÃ'ø@¢C-×au’*LØ ÉB­ „w…†\»†¾BÀ¡×2£©Y£,ÎMK¸,Ð$ìQ ޲Üço[ -éøc0ä]×"#oGÞÆŸàpãÄ5`*Q eª­1tZôÁ;´';-9K%DòW–ŸLgILbøgð…Q|áâù $œçç cC€am”(\X¸F%ª)úÀcäSr§½»pÁB,\°`Á’)7Óm"µ œfÊþã“R äûå˜uôz´éØ-áéA¶sèûµÀrVµ«´b R\byj)bVš­ƒÕÞH¯ÝKHÂ!1m é«í"uªmŠÊþìå+–¯Àaùr¼­ô‰¶£¡<Ü6}¼4}0ÛÏ ÉN~óòòö™vç~`ËiÚž¹ïžuï~÷ï§Ý¿—¿6"=È5‘z—‚¡†„jŒÆMX“vI¤^š b‰X,Îþø†ËÒ”hÒ8ÈÍêRN/û>¨Ž’ãÀ Õ|ÿRöÛW—jˆtµ=ëÄÙRªqî7S›:;÷›òi†‹æ¾W#>]mÏÞwzî{5áSW•§6¤Tà¢<ý/Òß7ReßÅiŠ)ªøÐT¡àišæªZŸ OeÊÒÄ®kG 4•Éå©éJi™pU … •É” %Ò2ÑL‰"p9§µŸꥨ$•ÅIµ|‰j)C0 Z&Ú[“–••F)ªRy³š4ú0z=mmèw‚~*Q$—©r¥µìÛj=G‰#;>Õ7XgÉS½üAš\¯(ËÉ-W( ýoÚmí¡ú¾z7fê 'ò©"#Û$–Kïe•5+ùA ø­Óê(\¢d‰~¢ÓÓ:wêøÄSŸêÒ‡.»tÁg]žE®Þþö8Ñß*OeåYKÖnXå¿zõÊ‘óߟ³ýÓO?Ý‚?[¶ “-[7<†c@ã6lýõãý8Îy¶©LY]æZSmme@TA„ÍÖs .ö Y8Ö›wãpŠä—ç%i•b‰L,ç~–zLf }Ì…h‡[ψbMК.ÝcI7¯3ä©N–V©–«ÒImêo·6¥áø3½çÆ X ´Sr!•i%åÙX?-hVò/X9{¹O…µÄÚÎý:O€ºøKþ2…TYrWaDÕj³íü4ËÑ4ËÙ–RüoÚEÊ#ãÔ¤‘.U¯ÒJ¦Ióô²ç‰À£¤ ê!¹Ï±&½V«ÕWÓVŸ­K)EÁíªJ\íÛ¬M[¦õ‘?ÂB¸ïŒP ­Yk!6!¸ÃVžr¾g¿þÀZ©ËY¡9­¯<çnm¹Œo—r¸Uíõ•´iåÞœ*Ä#ÿû³i–¦–¡háÿ³å †ž”{fo î-D‰„rÆÐÜC|&äiúrÁæ{ÄÖžH!ç6˜æ_šÐ†µÈ²:ÇòÛ ì¸¿]z°àá l=É`[ë“•”TbŠòV´ÃHAzòÒ‘>ÇåÅÞ›½- þ°öÇ‹k27Íý6ý—K.è°»c镇Ô\ž#ì;H¸…†Ã¤G¶™^s©R»÷x¤¤]Ê1>U^;yzÛô‰SNŒ7zô&öY÷/z~={ÐäÏ6½ñ’_!®3Xé ëtBŽ1Ôm`FÑ&Ø9Ì,÷²ÚÚv)‘ úùáìÐõr80â4ÿÜŒÌeÃ7BEB·pBÓ²ÿPâ_À¬ÞµÿŽÝzÌÕÂÌnº>õ|Ï:ýå!4u¼ï„eØ»é%X3D®ƒ¼ñË 1ÒëXc`Àëåk€dvÂ1ä婦nT‰N’Sð¶*×`Ÿ¦­k=oȧÉPõî8ñòVyí8›ðĸ+ÞªüµÍP™ø ¦)J9øÕËŽJ;•†HBô@¡WP°×ý!|ÚVm}šZñ¹3w<~ñ¾7<½&î¯ÐbšêÞ ”r¢i\·ë)k¾:o̤ISfnÎDІßb0@Ä qÿú!e¿Vë£OÅoÈØàùÖ'é Ï›5_¬Z³ò$èrýRͶöÚò‰£'¿w¾’¼¦R/¼^_ Í·K5DúhíR ë}ÎúZRGÕ©ÿt)Öj À#Öû JT„ÃýQÄ—–/Ô ©ä9r«u†á¯¬î¿DàØöëj¤I³œµ~Dz«çöÛH“n1Mõò8žûíÑÒÛO]¶¥×ÛV_tkZzY™¬m+OõFh´²7²•½ælUh ©pÓ1_Ɇ}Ñ­l“æ€)ͬ¾&¹d—"©ô—ÊÓÔóì’­ie;?ËWŒʶÅÇ‚q¿(ŸWOÝÞ¿)Œ‘¸y+ñ£VúL ¤Œ¶´úsQƒHç.[¶t è°té{>Ø_ʤV3L 4å¬Ö½uP˜9ŠT~80<ì: aaè{ã«œÔ ÇøT§ç±ñëüQ&áFL¿Ìê¶¾¨:}ÌÏ;½ƒôó7cÝz‰òpíÿè|Zöõ­„ظظ8~‹M:•‹l Gøtâ àÿùSð[c1Mù)pÇkû º×ˆc§&-8â¾;ð]Giªø2"&ú ÑÑè"7ÅAšš JÀ¼ëˆ>zoÖÝ«…âñK ¶ÏÔ\ÓÂqÀNõ΂éC4U~ÕiÜ÷yBÓúH©Œl¶|ÕMÖ°|FŠ?E)1£@,QSßé€] Û×vHÎ}mZ1Uº*)…8ëŠÿì9O/CHƒ@f<÷y+¤”ò«±wbP@Pñ.áûGÊýúvJe*ó¿j–ú¾Éóéù?VëÜç!•GZòâF“b­£|ÚfHQþ˜M½ckÊÑ'§)eþJ nóÍñ=B@ÿþXàÞvâ¯Ìw´D݈k„4Ù1š‚6G lêʉ' 4Mp6æÐòV¥u í²7½1æ™%KDùmVö“-ûºj`MùñE¹É¼zu~ôí’Òø4ãй©À˜Ò#rJnT;Vï+mÒÔAý”·ª%ML%GõS[|ê ”â[¬‰…$à&Ãh·ºãÆQŽÜ¤X+ìÖÒ4Å5}&lÉÓ —ô™heî·#M[Yöm!E†½wqMò±õ¢Å8©u˜ Û)@=ÃÐÒÀÿD;êRVF¡3¾U›.'ðŠH}>SØM gñüi’ÿXê0Ÿæµ’O‘­t@”¡¶ ÜÓÀXò™aXµû;`f¬¹ÏBEx×@ÐÇ–ÇYï7¡)n¾­9*ÊÔŽX©{5hª™>÷“ÔÑTÙ#.…ò=h•¦ ‘25z­ž‚ê#¢ íðõl€(–ªÑ(Ê«°^]«R(*+¦Í…RK[+5udײ7}Ùšº–ÀÇ^våðæÏîñ°(CóÊÎk¢?>ó]Ðü>¯ø¦±\õ¹QÏöö‰öñ¸<¼×²|`-Ho=å/zÒ;³%HAçç„.q;í§qwÕeû>Nâ¡Ü¾Ù(º9~Qq¨ßàÔUyé…ó;¬ ?Ò÷‰Ç’G*ou ¤¦,B×Bk“Ú‹t¤Ø1œ½ÞÈœT@ê±`š~ûDÅÛÝÞÿn÷š'nQîîF¤£h=|*êó=cë1ÒàêI ø¬m&O‘Y<²ã“Û-7›öFæÜG±Êi»,H÷‹J>ëûº÷´™ž9šÉÓ)†AHßSaŸD¹Tƒ‘¶4÷ÑÏ‹yçXVÒÛãM9x}Xæ¢=@ÛáÓ‚„*€DÏã¤D%¿M>‡“3Ìâa©HÍV{ÌsBªQèY RÓä…i µ¾;qééø›ó[Iö ›|Ê@¦(à›ÅvFÆr ŠMR—ïóOfb>] 'DKfzD–Ý.‡Ÿ/»Ÿq;wBZØç;Z~UÏ—ý®WaŽ{Ym‹iš8~ì¸qãÆŽ?|ò[£|½Pà÷‘±}î÷N.<4e¿ì³¬äÂÁÍ;Ó ú_¢,íè âÛ÷Ë»_ìó·±Pýóðý–&ÎyÑôÅp´Ï~Ò¥Sõ× øí婹-Exi@ÿ矾ÿç{½ôBß!nnƒÑÇmð`²{¥ Az~˜éZ£ý1èj»}[¡ å1¥S*”*3–ür…Ú\U,]n½Ò@t(ÆTV µå*Šm©&“z/õÞ½ÔÔŒ_Š2¯ÛôA£!I” °öh¾6µt‡7¶£ìiÒuÝX-,QÑQÑÑÑQQqdzï^µ9'J<³ç¯ÇE‡ì–¨º¦IkÏ?7ß-%Ä‚@&ÁD2Z^öïDß±§ŸZû‘ôóz=»¯Áhc×´£8¾ÑY³Œ<’Ň݄è3·4Í}—°ø¬N{örßÒƒãúßï)Ú§a§¶Ýø4/Åa¤ù‰)î1ÇÍ; Kó}ç.FSœù,mõ>­3¥ÛަM5i->S¦™nå a±&0g¤+£nåÕÔï“jã²ï¨ •Ѝ+À¨ŽŽyqÄìDZ=kÄÑ7ú{ÞÚKz¾X|nš[=¯ÓþêØþ§ICº ä~¤5ËŽêAr¢O$;ÝÝLö=FL¦ÇDSG‘2ìÝ@®lÞ×»]¥Éd*îûÝãDšÜ¤•óÎp\yh·#-êû­ëÑË%ô$½* rý‡$0ÓýMû·]î·]ÏWSàê²×÷ ß]fÀ4-hSš¶YT¥2% höÒô—<–ƒþ£µ`–½]õ\°Ž"íAœ Äò´YmÚ†u”õµV@†*8µŽjW¤­ê5oÏ^žÖõœý~6±ø,Î f-v±zß VÇMÁþ—ìÄÉ*t +¥,Yʪ*êór‘²O€ê|÷ÀaQ6ñˆfLŒvÖ\Kc© •}25µnÆÜ~Š‘Òº„ ­‡ÔR¸¹ˆ¡hŠá¬3@;Ÿ¦úY;Ò,Œ”ªœŸ ž~¤‹e¡n\ç©JÙƒ5¥›ÉÓ”¡!sIçwƒÆÍQ~y B †¨ƒûNIÀÒãçL+ôEуôÆ™;-HFvzõÈ[Ãö{ §¹{Ž>TF:48'{˱`º³UU3ÓšûÕz\‡¹?/‹ìù³ÒÓà·©ç€v>eÍÆ¸€²ê:¤šønÁ´‡'˜ {Ÿ ½Eš;t7ßKâd¤†â¤³Ÿ*ë!ÕÞív™ŠTÿ¢^gƒŸëö·vúßÁëd¤ÕF*)@iáSŒ4©{í>!íýKÄ„ý&¥RUcñ—v*RŠ1Em®¨ñÚ yšêÓº‡î×)îw¦Ìw–Ê͹R£B|kׯ%S6Ã>ž¦TŨégÇÍs~ŸïàœÇâO¶¯&㎜Χ%’Ò蟊¾ºÁ~þÁ‹s¿Üú%Ðå«oBÍÍgûý£UHÛÌS¶‘~jõƒúÍØ.c0 ‰£:ŽüAŸ³ÑÛw¢-N«ñ˜uËë£4®öØN 5›.À¯ëX9BÊí\8«ó‡ö™+5š* ÞªªÔëíÍÒÌBeW…±;C{ͽ,¶â›ý_/^pÁkáÖI<ÒÌE]üâ"—ÏÚ0a«˜¼ZíÓ{݇—™ŽJæ¶ 6 ädCþ yëÆûüe…¤Þx½‰X&•IðŠ'¹«í¯#QÙ=t4ÇÚ+Q9Ùúèmy½ìCà&ù=€¯…ÜÏ†ú#Éuµw¿@f_ß«°xPÊ¡ŸAÀË ?ø^ÉL]d»D‘™°d*Z¥&ksDØEªêuè¹'^Ȱ3YyªÞ:?é-¾¸´x¤š¸nÁœçtÆDg "¼Èi§¾¦ø¿œ„EãÀ¬² 6Ùà-°m@™¾rÂ{4-2ˆu—ø5¤d\´í5XPÿï_¯Ä¾Ú¯ì"-?¹þÃù‡¬‡ì~{°”"Hµ‰Ý®›§ÌDšéƒA›ê¦<{pîËݤ[aÝK•¦*$¥ì澬_GbB–BÖMu¢=墀¶íÙ•‘« þs"Ë(­Ö‰ýy¤ºä°`‚ÔL‡¿rH@:Œ—^†%c@Õg‡…¦»ú'©3†-³KÓ*ÝQ‘Hô'ѽ8uxáú&ks`4ħN‡µ«Þz' F&çP%þgu U°0ñõÈS]ÿD$¿1§ÇU8ø÷o–áçoÐx,óâY©ðá°âXOÑ!ÒaŸÂÙŸ¤ú‹üíð)^ñBÿ•¨Ã:ˆVðë”4]ï$† UwIBH‡ï¶³2KmJÃv¼?gÆ€ŸGº½7K”ƒ%3­›îv:9àÍiÓ'Wc·0®Ü·“Çô)çµp²ïŸ]=wâ²_:8²—ô³¶ßû‚§ÙpJUÙkU}“TRY~ÓÜ·®"¢!¥¢õæìj0#FEp5q'º ¬áê¾Ð¤ýjž{\7—~¿{ÿ• 2‰« ݱs@öËž3¥gã æ gø)¨¬/Ž$_¸n»Þ'óLH5>ë1=Õ i~]õÓ÷ Ê=lÔQ=MÉ)¨L,kiëÃõ\ìZ4{Á-U°›ã¥üÚvÖ:BöûŽÓn=ß–Ù­QuDQd ŠaÌVsŠf,K,Úm&J°èÝD 8<ÐÃËþœ²²Rc^”Iö°™8`9gÍ4PlÀ³Š*$d:$y3st#]ŠÂ¦§ÓÖ;É©,“P*.--Í[Ýì2œ}/ùǾvÜì¨Âì\rrrrs²K×;>÷±e‘DZÂ% ÙSV®õ_ƒƒ¿?ÞÖ{„§¹bª”#oF„GNN®kRB³M͆JyiAÖ½„˜Ø˜XôAûXaÃ_/…ä \ —–s‹ƒå ü‰OKKOKÇ! Ÿ¡pïç`Ç›jËJòÒ“¢¯‡\«[63„ldÏG†X®I°^†b¹#œYB``º qp-ÎßÑ:¼¿—5c9«#G»­ÃËrÿñ¹ïÂHÿ¾Q½¶fˆ,âIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qscrollbar-values.png0000644000076500000240000003703612536324512023105 0ustar philstaff00000000000000‰PNG  IHDRú¯[ÍT.=åIDATx^ìX½JaŸHBò b!bcá XÚÙXØé h¯ö–Úøv²MÚ@D²ÝÀæ§ŠVwo&wæÈEïîiÂî†Ëñpæ;ǽ+5B˜J «h Ñyl1œ 4†::‹ªœbŽŸ Oþlò<>“u§­ßDuvúµ]Pèdø• a³3ƒ-¢²†0L%ÐU4†è<¶ÎCÅ U N1ÇÏ„'¶NyžŸÉºÓÖo¢:;ýÚÎ.(t2üJ†°ÙN¢™A‹³wÝ[´×½,KL%ÐU4†è<¶ÎC½¡mÏž¢P¿ëóýLx ~… zî—æòp%NôÚrœ‚y‹×ÇDáì‚òᯘ;°Ù~M#â8~œij Õjã XÆÿÝOõ$Ii~—$‘YE’$ÿÞ)8S¦$Uú”bš¯{)»Œã0þ¹º*²L®IµË$y½´ôr~ßñæÆãGœ`ôFð9àÎ+ìW½ºÍij®5"î»ÝxnîÕ⢔çDn¢Üö¯õÇ”â4 ùÝÝ›••ˆÎ™>$æëP t!:O€m †sÆPGW÷e‘×Ö®77¿ììt··?ol¼[XøvtC‰ïÑð”2õú„ :Ö/°zônå9"D³L5+‡¿Ê2)8°Ë'æ"ÏÅúûâBŠ"xWˆäô÷÷ÇÇ¢ˆÍÔÃV„«z*V¡uÊíåeÿà@¸Ø~žõööª¶Yï]ÀDá삎òà¬Øé@f7º¬BÀT]Ec`ˆÎ`ˆá\ 1ÔÑU,jý¾×{Ç·ŽÜ¥ððÝÜü8=íD‘LqŠbÞ-—çþ¿Ø|˜wŽÇ棑Ìï''VW«\ÝE–ɼÞÚúº»+MòáÐKQÍ¡~Ÿ¿_^ï~Z_7µy}LÎ.ø ùðWÌØìGÿ%ß\c£*·0ÜË´–¶`K++(ö‰ÄhžØZ%`«H Ö b4x4¡H Š˜˜E+Øœ@”@4^ð‚FSÀR: -½^¦èýBoö2;ÓNË9O»ÈΤSv期ãÎîÎÚk¯Û·»¾5ë{÷Þþù˜‰\˜J÷€Ò}*'ÜnI1ã–-¢£Iš)¶6Ã3ÏT¦¥Õ®_o­¬”\äh)+«Í̬LMm{ûmª)ÖFNŸ),D…Sý_}å¸zbT¯7=ûç÷ß_NI1nÝ:ép |óMeJ Í¥¥ÊjÛ³k5k×Z„‰ëÎÎcÇìõ7V¤¥ þð|SQQÍ“O–ÞuWçûï39e(¤;DÃSO5½òŠ$¢µ¼\Âkݽ[ìÃüñG[]¥º"%¥qË·Í&Âöúúº¬,˜ß~;xüxÇÞ½Œ´vÆK‰‰¹¹GÛîÝ :Ýðï¿—?üpMzºÝ`@K†é›Ÿ"3³¡4ñLö¸M›œV«£¡á†ËUýÈ#N£1.3ó?ããUii£‘E›½®®êÑGijcV¯îþôSÃÆ0ûêÿì3¬‘[sr,%%#'OÖ¬[g:ujþêÕÿþz))©'??æ‰'œ 6Lº\x¬×éº>þ8›¤ÓâzSSÃsÏŸ>üž{Âê²³m••®ÎN[c£Ûd2°ðPÖ”üa ESaayr2U*æ±Çºóó1΃mÿþêôô‘‚‚Øôô¡'u:˜dVLZ­±kÖtîÙc|í5Óf0LZ,ß ‰‰¾x±+7w~FƤÍV›‘1>4DàgÈŒ?73Ò8¤ºHK ËÑÜ\`­®îÿòK½V«@“ü¸_x¢aóæòûï&ÂÅ!!Ú¦íÛ¯lÝ*-FÊ’’¨âœ¶¿õVéÒ¥"Lµ>§ÕRV¡©‘ú<ò;P¦t 4$-‚0_ºTH£uæŒðKï¾»û“O ºóòªRS=›™‰é¦Ë°i1àº$>¾õÍ7E‹%fQPe>SW ›J>* fËoˆ;6W?w£~ýzè¾Ï?¯X±Bø¹¹qŽB3?ÏGDØê륩ó¿fF£«LV ¼Ê\T¡½íñ?Ä'vAyv8€(ئӧãu:hJZpDÄÂ_ì?z[YÙ»vqŸ€t"’’þÑÚE ð@Y>J€?gÙ28A!!s5‘‘4N¡¡AZ-*½~ª|?î¶X‚BCAB½½äå9<6vÞãã¦fîÜ †¹‡AL±OE G¹ `5LN·{lpØúFQ¥™3gøÄ‰øgŸt:oú雑DFj¢£Q4/`“ø×¯‡-X0ïÁ'ívN'8N{¨…“šª™7°á……¬€•|ð=T8*ŠêÖ|,ð¾y£1ʩʺØ{›œñ–¿&3k³:Uá{GËŸ@%ɸÖË—yXBé’À%ACããI;’,,1‚SJløw’¦7q›é6Y. ô.ý€hq‰Œ/ôMI­vld¤ûƒúìÙ¿ßZVvûºuðÀˆ<`Vy´Òõ`ƒß}‡) vïÛ™šµb…D“Hݰŋȇ‰_O/2&&’„¼„-Ø‘ n湩ü/¼RÈ×M„U°Aa×þYÝÂãH&Q8Év¸–ŸûÀ!qq$ÐèæåQ5É<óùóØ’D´WUÅét0i]ê³³—¾÷>Àí&K‚µZš~J,ZRSœ"àIsì‹X¸p¥Ñ(|÷ÐÐhQQÈm·±Z@@‚„­„.Š7¸$vdŒÓŒ‚†àï‡ÇffŠøðo¿ELc,„á™ "To¯¨ܾhaŽõöj—,ñô‚¢âZØ2ÿ©îþ_Ý•g%ÓøŒéÌrbè—_hÊzˆötùÉ“äô;wZ †þ/¾¸átŽž=ÛìXâ®]hÁïÌË3ëõ49TåŸæ§€FeèÔ)WGÇ„ÕÚ’“c·ZÉ<„)íd¿¸¦BÓQ-ýÉ¢;]]=N˜Í×[[+V®ì?r„øhEVBE˜FE r ›¤À"“§ñk×6çä8››',–ÞC‡ª³²à#€/º8§ ¶m»vô¨¹¤ä†ÝÞùî»æööà¹sÅ;«áCÀ—t;þZÝýˆìè(_¶¬tÉ’ÒÄDvm†Í›]== àØµo«´ ññEM¯¾*¨ºW^~yŠ?¾>2`Q üÒ{ï- ½[»fMõªU wÈw}øáÕ—^Ÿ@.µééB;ÛÛ«’“dž†Ð½và@Qp0ÖXõÖddÐÄ#`¾x±&-M Õ•5ðõט=^ºx±«¯O® Ù¼cGûÞ½¬8™3Å ‘kµh Ù˜Ýwäˆx7éõ5«V ÙöÎ;çBCõÑÑ@™•ÉÉÕÓNO‹#"JÆGFÀ.¯lÛ&Šãf3a;ZZ”Àülóϯ™T^gÌIŽÐ®Þ^km-Ù9ãÝh yø®¡9º­Vð;P‹™ï¦{½D.ˆ{ñBîZjjÐUäÏPEÑÙÒb©ª¢ô*fgpòƒAR_¾§¼xùq65›LöæfÊï»ð^,0@Ku5^äTÉ%$Nüék&þ¼ã–Šn·-IÉcÙ ¾Ô~Ù(®’µè̹'æ¥øUø°<½È4S=C…%WgÅvg$‚gØ3<ŠŠ„ݺs'¨ëàO?ñ°‰ ’[HÊ=3Û;$NüïóŽ¿ü·ªÓIÏ>Â0I>EZ˜ÿÇ·ªè’aì>}«:-¬þ­ªÈ`Vå[U™ ͯ¿þïèè qqeË—“÷ÒÈ)þjߪj”g¼CçyT0)˜Ôûx+1!Ô˜êvÔí{mêê ØÛµÂT„½%}ÞÛ —5×Þ‘#£âKäÉhÒK?úˆ‚¦$O…mD@å>û2Laßq_bð¾-*o¶Bü—}3Æm†¡hÝ*[z€l}žÌ¹KƒdËœ“dì±[.àEÝÖ•@”ƒžIBè’Á0ûûãKøA ‰*M§VÜ¥âýcÁYº–VêÙ¸'g°,­Vo‡Ãí|´•f èMÎõ¤Wß™òµ€TühVd†2†Õ((À@0Köò©’J¼ú‡Ë¡Þ$¹‹FMo|1 M:òºíz½Ùn_öû’Û”f›„½m&ùŒ)ME×ëf·+íÑ•05ÅÝø„Ùš¢¸Ç&Ik8áfÜIc IhŒ;aÄ‚ÿ‰{»¥ø-ßCjJ·Ó)gUrÛÛL)WÎÇŒPŸû¾?î  —Kµ§Þö1£ï”M¸q”v %TruåÙ“ÊGUKAŠð¾€dÇ*i¡1K …9äÓ<è\É‘ï–N(È Ðv8íFæb8–èaú;w›Sªã2Ñý²sÆ8Ã0u€™…¹S%.Ò¡[ïÒ;ô.ô ˆq FL¾D†`wM%¿©C'Öª¯ïhF$ 8[UX”­iæÙ£y¬RÖ*t+•Öòîo;7ͱ,€žJÞÝ«Ä £ÒF[¡„¶•ëKMN+êMN’n8¡á½ßx«”µ ÝJ¥ç]ב€ A¼ïØŽ÷ë¶u”†Ež7_Ū®¡[úÇÌÉPps6}¿lœ†ïˆ?X¥¬UèV\ü‰9„{Ê ÃHe©5üÌF$>ìœ[ …0 Dï-Ýÿ2l¶’Eù€€‰tp‚ 9%M™FÑïcñ¢#bÕ¸:cÑì3h³Ç˜§/"cÚ{ÿ}‡¢ ­—Zz‡©ªˆ c1bKóx2…¹v>bRâGg*áÂkpZ  Èöy¸÷c$—M®$Íá’&çb¨*ÿÕ!NDì\AªA5&hÁAt/BÀ…'PðzAqå¼.âJÁ\À… 7^À[˜ƒ‹è˜üó“Æ"ËÁ ×8.ÝyâÜAÍz½†GãñCŠjðÔh¸ÀASŒ3ÒX‡²F¶çÜ‚Í5î]â’ìû‘Ï„ßÅé¾<ìIŸ8v"º5Éëá? Ãá];1ÔHw0 X,6›ÍÏÔ ÌÒ˜œ .XaCIóÀ‚ÜR¾ òÝe¼™§Oç”0‚mVúM­h¸‚¿þÇãñ§r cMbµÂMr"Ò€¢ÇŸ‹é”3´sÒ¨†Ñ•(߈ Ñ4½0îƒ)åðàÉ(ÀÞ#RÂb>½ ˆÿåàAŒw -<1¶Kj!4(–ÚÉŠBëPÖÈö|È-Ý®qïøââ~ÞÕÈWr_žÎ7ÏyN"Ò&t½õÖÒ˜ˆ¤ÖpŒÙêá#™g&"i˜Ïç‘Èiô&"K¥6Ù'"}"ÒšåQ“Ùív³Ùl>Ÿ× ì|:âÝ0|!×<|"2Ù+t/—Ë?nH)>ÝÃ0d±nø`x4Ißi ‚`³Ù@FÞ]{E$]”»EQd\Ó^3ãkfèÿ1w"ÒÕßݼzìv»FãícÃÃ,W omýÝåŠH˜î÷ûN§ƒrYh^¦Þ(†ÊþÀR4w²m޶JqCþÇ)£Â0ðe†Ìý],¨[CoL“BK»»ªlK »tÞTÐ)ˈÇü©ÀZ€‹”‡ÁaŠCÏpFø8Û“3H„`éóú»~7Û A“sÁ9È"˲hžìSÚg5ævõ­Rò˜ù+›Íê1s–î.ÉÌŽ$’¸´… Á†p±€UAYŒÌæú(ègy& ˜Éý¼-›0μvrˆªÉ+Í‚æ½3 ÍêˆÂ°]lK«­-Å6‰"Z«Õ¢MT" RZW¬Uµm"IDE¤?WµZ7,Ø¢E»i\´ b]Jâº4Jâ¾$Q»ÄZµëòrçëäëÕ@~Üóãã|sÏœ™¹sæÌ™33çÖ—Ï÷]UpóÃpG› Úééé3fÌhܸ±ÒD sȯfCÁˆÑåË—G}ýúõ}ûö¥¥¥õîÝ›ñ¤½ÉF "ˆ|ð!ODÚͽ‰'"ëœ @ÄÇŒsëÖ-Æ€¾€Ó  ‚ŸˆDµ#ßK—.å–*)7oÞD©Ÿ>}º  @1³cR„—ž£‹]ç¨]¸:4ÐVGàwDÚªööíÛ¹¹¹4hÐëµ äüùóF 2Þe|w1 ßý.cD:u¨¯øîzÃn¢Àß=Šïî'³–d1`,$þ¨öµ튱¥edõˆSÜë;$ª^šµšB£¨õñÕì¸NDÊ)_u 鈢 ?~<55•žw«E¢ù7VŠB)Œ;–C—¬222°îÒóªêñk¸šÝ½{w¥¨ ¡š6mºfÍ5_Ü,¯á60b¶4P ·J€Š£ Y³f±"bå$O=m}DP‡1c¸ûá}u•ávƦ¤¤„- ràÎàñ”HmÛ¶-99YJ.33sîܹv"~c&¦ À?Pm$lÙ²e®j#­°°ðàÁƒ®.ôÏ~þtªáZ 7nÜh×®ÝH$ÊaQQ‘µúÞ3‘1ãû™AuuõÙ³g-3ª·¢¢B,Ž9²xñâ%K–ìØ±Cr°ÿ~Î £¨è°3gΘaC®‹/šôlÙ²eÑ¢E›7o[É~}"°Š¢Ö²eK†M¸O‘;wdûöí¬³™pà¹k×.ªÊˆ20×å,µnëÖ­4„úƒŒ:Ö-€\¸p”jA£qíڵ˗//++ J.Î7n¤,ñ­”;wšLÏŸ?¿Gê~$%%ÕÔÔÄì‹èSd†xˆ=E×ሤ#™”W­ZÕ¹sgºSNÉÉ“'³ZÕL|"täÂ… {õêEP.5Y³-…«¾k×®u+B³öïß_ΨQ£8á°zõj–¼Ã‡' l+++=Ú·o_u|JJ GŽ7lØÀ£ø=ž¶GÆá8*‰†fŠàL«í‘#G®X±þ ,€™Ãè᪃ž0a#!§¡Û¥K„‚'N@‰ÞE¾Çׯ_?2{öl˜ÓüòòrªGK}U€­ ˜¨PÂyæÌ™lÏQ uÀZ£hÎxp×DjA¨•^ÇŽ¹,†ŒVëdò=„|KU›÷QKtÞ¦M›ä¨AyËÌ qêÔ©¢\·nÒ Â¤ÌÍ º ÕN\Öªª* :LÙ t”@qê¸;‡ÂkÕªÙ™¸‡JDzÒQíè6J´8®ØñÈ8 YiÑ¢¿”Ëô‚Íï! 'ò"UyyyâCåsrrH©á@¸<]õ@U“.¥.D¡R5ökf$(‰ýçç瓎˜¶nÝš÷cÄîXA ÂÉ ªÁ$ü=s—˜Ÿ:uмLžŠW¥V:tˆ¿(wO ÐYNz\A \z{äRúw+=%ºqÚBï¸ =Äž¢}W³²4ïiÓ¦‘ŽÍŠfJHH€­ ^¹r…^ÇæÌ±[ÛŠÒÄ %|n¡¸¸Øvm‘Qp²£Ý•(JfI“ š/p¨Öèïõë×+‹+†›Š“‘-Ñ”K.#Ëbâ7¥A@p±È©!OT†-=Ei- Üö˜•.k ˆ E+‹e<÷‘…×Ù}á®f{þâ!ögñƒ¿J†ø‰C^Í6•ƒÑ‰Ðó=ÒÒRе(c S,Ñ={ö`Àp€L+¿;…™CDdƒ2kK @°(˜X;’q÷îݯšîƒJgÅ&oæuU-TÖ‚ÍþöW€ÑÐ R½†»W=d7Ü[yÆÊíHZʘÑ2f? Ï y+…ri# °¦W«Å!DæD¤:Lö †DŸ>}tt3K.Qí¨%–wظôë?æk™E³×¢ÁÊ•+¡çƒdïÞ½DÍfoÛ¶-KUîzCß¾}{üfó|2›‡Ü,X ók€X3ö@°Cø5×GLkÊð˜)Ç7»Ë™–jÎ%ÿ)Kd;vŒÙEŒ¬2ý5J«ÉÜôÀ£¸upº”ql¶n¢ÃªnðWÉ?qÈ‘BÆ cµ:~üxf^Ä—s‘XÞµ»hV|íü²èDsc90ƒ7oÞœ+lå`ü@€tb0Päœ9sÈËSŒTü˜,g‰  |;<½zõ*ƱB®"ý“&M"ÿL£XðV-¸éwnˆÚ}áæô‘„ˆ@»iJ„FºßÌ{hœe&Q |Ahñü`h9(Ç9ÀÀû¢úÈþ>|ø°,l€éHrž²á †Ó"I&ý³\KÄ…«Á«€ÎñxŒ<·cé1Ó_=$2ÒË£–!Aˆ!ÎààA>‰KE]K3ã틈É]•¬ùå4²9L›ÄNÞ(Í0ýÇ|D#Hkbí‘1DÆžÙ‘Ô¨$NIVD'‹Ë/#\ƒ“1 _ue*oOLT4$NÈç‚ãá…ƒ%_hЈÀŠH­VÛ?(Xß`.Ÿ1ôûGâõ¯‚ÓYÄN ƒÖÏŠÈêŠÈ)C"©/p0åßûþ†<„âÞiJÅVl,n”‘™)«t¡¼C”†,ˆP½¼#QÈ'Öjy‡h¡Â·¡Ýóò“™ÄеßdFh¿™±ff00ŒmwØ#ö›» yøÕ¹»¹{¬ˆÌm¡A¬W ’ËœÁsÂç7 ¸=ž˜P2ùø™AøÕ‘VD†ÑK2c2c2c2c2c23 ÃÛÝp"ÒÜÝÜÝÜÝÜÝÜ݉HÃp"ÒdÆdÆŠH+"U%{zE¤ ‚]Át¥ˆL¦DO{ŠÈ¼†SF¨ˆ\uƒ |J©-‹`Øã@·³F¤ÛXØà;‹¨>&{£‹²« hN‘ ýAi; u'FÏÔò¢O Ö»Û¯–>è­€B[EÔ,›º¡_ŠÑzQ]ÃÏ zDÒ&Âæƒù•H†ÉHìÄÈgE4øsg0ÕÁÄ‚ñÿìÝg¨]E†ak‰µÄر7ìF£1Æb‰{‰^KÐ Ä "Œb-øÃD ‚{,ØnŒb‰ØÅÁÞ±÷^ø`q¸çÞc ¹þ:óã2{öì){¯Y³f]λ‚ýi¾l Z°šÁƒÃrt¡ÜdSnúí¸!â[uz:Ù&»ö¬3"«BZ® ¤=V ©Puj`g9Ãñãǘ–‹ðS½Ôìš»¨òª,“’jGŠj1bެGà}PºbÑý+žrŽÙîmÛ½ùuå4WˆzR†Æîél×vÒ/°Hp$0¢££Ü&kæ¿Úîl=—ôØVº§w%’;Kvùl¥‚\À-¢7›r»¤ç–ôü4»’+sÊ”)”\•®P‰0 Æ Ã*! C¡ Õ52¤&N¥UˆÈ€å-®9¦2<‡®_Ó &­_¿~¬”Q£F¡$Xr–´NÍ7!ò ÷ ¨(3hÐ b*ƒ`NøH¤u¢* Ø·0Ô@ûZ€ÓqnÑEaÞ0v@ÕÃ¥3 ±LD2ÚT4$œ)À{õéu,å^¢ (QAã w‘mc†Òͧ"%@h!ßÓ=â}baóMeÚ”ôÈøNpøÔÅF|ƒ>–|xTM™‰'ZN~yz#12@4}úô Öè« LIÚd `æÌ™$L’ŒK ¥L&—Êó—¨yåS,–tAî5•øK:ÙàÆ¸ hÃÒà‰BÊï8÷ÎO†LxÊ¥ÄÌH!)¤ÑI›ÄJºÇˆe &®‘š‚ A[Š + º&%CÛýë²2N„o+Â}†”|d‘YOÄÙf¦0iÒ$»JâŽnæ5$?Qc »¬¦’ª©j¹z‘‰b6ë”°¯ìiH5eÓO4— ÒaÚ~Rï³…#ržpû0ùYü5Ssýž‚ t;€n;mQ^…³÷k¦ÖkQ?OýØ|QêÉ%C“¯P!ÓÙöíÓÒŒ‘#GºLýœ«(6Žs6}¢¸)ŠÜ]ÑΈ>#X 3#QÄ€ð¥É_}W^gûF.©Û(¿JycIiǃL9Ëe r vIÊùF0–\l-[–#)ãÍ1Ã)E¡¥… oÓlÎŪWî®Yã€ã¤Ç…%œ;¤Ke—©œ!)߉™¡åìa ¹Ë𢴩÷ÖÑæ€#²Jè%öŒ3±&O$ÐxàÀ¶ûþýû»Åš§É¨CRÓVX{‡S#£Ÿ‡‘ÙàüƒJ<¨¦s-+<D%€ô±ÂƒŠ§ƒ À~BÁ“B+Ãhæ–n.OÜ?Ú:ËOÂådq%ÏÚv)#Ì­˜Š:å9a¡Yu|GœŒþä¨`Ì–Ÿd”.=˜ mæUÎV!X*ü›¼YXBÖ3ϦGŒÄ X&*_…ÌKÒˆÅ_ÃKãi:§A‰ÏÊa½T{¯;"Ûœ™FÀÚ FÐDâµ0ú¬Š°Þ Á´}ÀGqÀ°q‘Y O¥ î1!Ï(W—÷ ÁIÀ„š¤ô na_Å‚t˲¤Óh!^çÈ”Ÿ?ă¶ÉM7y­çŠtŰؕ°Œ%¬»ýH`5ƒDXï‘38ïÚ¶6Mëhü}’ÒîžÿìXÕìB€ÜßÝãè.•r[„£°÷G>*vÏÙL}“ Ï®·Ce\8hx]ñ½s0pJ"›‰¡Z~jvNÍ6b1&AÐãEaU¨ªŠ³û!|“Jj¶-Ðõé†A¥fg‰•í- "«à4ä$‚ eÀëCö ާkÐ%š‰ÈœšíúÉpçšÐÿ”G’šÁLþÏŒ+½!8A‹¢À­£à{S:ÿý‘NBûeßlRa0ÚuÏ1×ÒZW9‹+ïSJ¥lUÚà[„ðMЙÙhÈmq6> ×Z;Ž£”RkíýT;¿úlÞêødàï‘ ²Ùüyé-@U‘Þ¸J)]>$` –YÂÜÜt SœXcƒz$£WÁzšg4¸&õ©ÛN!ÆHîðó1¡sŠXjÎÀ=¸žsUµÿöÛ±áÍÎù«HaüÔUDŒ .\÷|ÀÜG8ÁÈGŒÍ”}ƒ Œ .ºó/w*çßWR ó±U½£,WÐ_0T5Õ=½Û5P]|UQìn—wJÅ`q§Ù©‹TëÃÝ•D´hððð[˜¡»ƒ™òËÁåg%Œ«Õ w÷¯ÂlÚMŽºÙèu£§ÎÒõ]õï*³t!÷žáN5ÉíÕ@-uÛCJBü7ú”ääÎÐ>]Ç#ü{±XhùóAZÀK€¿GÇÉ`±Ã‡qŽPì†&ÕTúº—j­ÂP ‚ùÄë£ÃÈ脹Ĩæ%;•Aå4ó `ÄÕ¿ kUãš&žíBšØnOW«:=±mˆ,UÈYªæ#¹½ªyêÚI…ÖnÖ85of  ª"çPžc긮æßí«38¹ =©YëÖG‡» $ŠæDp*ñþŠîNú…Ú+Ú~Pwâ?!ÝÏLBpUË¥ë^UûUÕG Ç ü-êî–[´uuT³Ôs‘Ø]T&D2±ªïÀÔ‘­E2np~‚ªs«ã®èî¾/4ÑrìÍ‘*Ô i:Ò¶%z⢪œCgïJÙ -¯˜™k0£_Œ¾©]hßk¼ãÀ~ÝHã‰æ䋨šL_°Åw¶)zUA«ÁLÒgÆçëB ]pÄkô©³tý qÌr$–.„ÐV Æ#±½ª 9Sùsêch"Ò°Y"²tìÞcwU[ê^U•Ù‘ctx3Jz rÛ«ëîTRŸ•÷ë‰Èžˆ¤#l*ú¡ýhiƒJ75£=þ·Däš2ØÍ„æË¾>ókn°½mÞVÝì\]XÕ€f>ŸÓjo¹\bS”"f#h¸ç›ÿšˆô…ÈqVgDvF$‡H'&ÚîÑä‘0¦:#ÒJl« <™ÎˆüÃÞ¹£Ä@Ôoï9,ÒåD:çPü€ ú ¶6Ú¬’w€……YØI†NBÿÇp¾4Xÿ}èªbûñK¡R´úÖÉAfFYìxGPsclæ“öÜÉsñ -U½U’$Œâz DAGÃo]tÊ}M$Ž÷2EF't>y $|ËzwgN¢X³Y¹?E”’vE…iú÷°¼Ì¼Fàóáoû‰¯6ûåŠýãÊ›Šu^Ì„ÊЉŒ²¥`3@¤Ÿ*2廓 #Á:[ê°äJASÌ1°1FoïV ÷Ó=çËE…1I „‚Ó€›IÊÔ¼sXÍub–sÞã¶HT€PãÔû{ç0ìåf’ ZÕBUG³?㠿˲<÷ý÷í¶Á€¡Ï݉¶°¿wÎÄ:/fBeèÀ€DFÙR° ÒO™wTE°6xxù2Ïça0N¹ÿ›ÞtØ‚ r%¡)æT”xPiЪé6µµz™±Ç^¦éÔuæ·NÞÛýH›Ù‹( {N¶£D¹ŸÇñtÒ×Ì3FÏx=xûˆX{Db£ÌûÅâe6kzdwÃ7ÝÎç=#…*¯Ÿºí¶G$5=p…ð~8Ôë5^¥·e îä‡áÀáJ?l¨»~}rÙÔí2·QÒ…¡“ãJ“Mãp‰ßÖiñ&);z2Ì$¢ ¾ åIåH\Ð×DuÿPÃám·‹Çãëj•ÚaFHsû-Wïý×D~²)*\æð<;ÒvÒ1lQ JŸ§Ó[·U*Çã¦,몂¢^ǸY[f„ÏóD@y.Ù*w™ÞçÒ$ DD–ÜÒ«Ó7‹‰•ô4¡>êå’•”Mâ3“âDam¦ÝЮ.#†¢h†CÔª¿šI]š=HÞÉf3©*dGk¨Wº»ÒD%ŽÑ‚‘7íP¥×ïî4¿»wXÎãuw"{ÝÝŽ–¿]09ÞÐݵoMpßdH¾„û+F0ÊE=P—w|³w/m=A¸µ5üÀ“àÑ£oêÙ“ÿ€ñ&*‚àMð¦'É­=‰â¹(ˆˆþZ°‡’ZûÚÚ¢mÚ¦IMb¤5iû½70}É÷:S"8,Ë0|ùfv&oߒݰîß;ZR)}Êã Ëmê /C'Fv6Ú¡ÚßüTøÁŸ—íîèZ[ufuÇècüÏú!ùYõ¾Øcr¯WòÏÌ`'BŒª°Àν4†5S1?ó¨v2:¡’xR¬T0ž]sŸÈÌÝ$p$LÈH;l£Då‹ÇÀà‹ž™ÑþšÈ܈±µìÏîü|¨Â¢€&6ÿP}‡ÔjÒ°“ç ƒ„ìm½Q‰˜íðÜàâI±RÁxvͽs²ÝV„s…ähÓDä†mÔ‚²ðwLh0®«ÈÔØ`{÷ލ:¾âL(ÿ„íd´îìd3üãÀYážskÏ}"3{t’À‘hB)u1Â&Z#3vHRn4cŒF q°íºåÊw€þˆR¯Tð3pNCCoffNK%üÞ/ÞfGšœø]þx{û$ |ÙÙ9ÙÝEUË››§Å¢8åOiŸ0©ÓÄÉ®÷[ÞXeŠrÙ¢‡ ·¶××?-/¢­¬|ÞØ¨¡.tÀ0yì¢ñXì™X½Ã‚r£éÚÈAnËÕ/fð@C¯ ¹ÞÞÂüü©ööòÚZ®§ç{>‘‡oU`„$šì%û²cüg¿©#;boggË««PÞg28…}æg££_³ÙA÷œåásœ "$v,r4¤×@Èá$Åèz Øå1£¸ŽDy”äÿ\ÌHJ÷§¦^ML”––>.,÷ÆÆr}}ßsX#*æJÊ/cÔ R¥! ê6vÞe2¨ –² Y•l¨@Ù…üÚ,fêÑ9…—##::Î*Å<îêzÒßvÄËž¦·°Ð>ÈÏÍA ÷§§A{†ëYÎõ:Žš1pÔ†yÜkÔÝáâæ°¯—¹˜È¢1Ûݽ7>®0L@ÛÚž§ÓT+WR N‘zIl­ZEÿzròÅð°¸K̪º`;È5ª‹ß«J§¬šÁνÔ O6BùMÍ™GY%|22’C†%ä„ ‚¢Qˆ ˆP ç®°H”uÉ‚Xt-¡”K–³*ŠÂ£€U ÞXŠ¥«’cŽd&r’@îr_0¹9v•–WÙÌZë?ÆÊ«ÕÓß{ýúõõºû›!sÚ´ŒiÓúK­%>¾êÀ9Fó÷ß§Mj Í[¹²·¹™ùö¼¼êšüÑÒY^ÎœŠ—_N á/ï‘Gz›šD^Y½-%……ÜR]üt¨žžŠ—^º’ž~æî»kÞ{Lž}ì›:a™{ïe‰ˆøÒÑ£°]¾g¤2"":ËÊDå=uugW¬°„†æ.]Úf±äÌŸßÓØÈ’kííù?ÎqlS¦4~ù¥ìxÃAŽâuÄÿ_5ɧMœxnåÊëÝÝD„k`ò–.ÅÄPJ¶o·ƒ2gÏnÏË“³\½|ž-!!Ysç"%ÎÒYRÂdyó¬&¤Ï˜q%#CÎ"Q@ôÞ––¼U«D_H ˆ E€)~晫v;˜šcÇЋ58ø|t4Fâ¹=„¦¸ù‘jATñQâIÿS ŽFøÛGw€ª×_ÿ—F“õàƒõ'NtUVöŸlÏÉIÐh Ÿ|ÓD‚¶ÛnÃà0ôD­–àÏ™íö‹o¾¯ÑTîÛ‡[³î¿_vÉž=û's_²¤hãFfww²0¥Û¶vrÊY° æøq,Ϩ×w_º¾p̓»;ÒGÁ)cÆ$‘ÔšÍàÅ-0ˆœ™<9÷±Ç.§¦–îÜù£FSþ⋵ǎe/XÀ£îêj¦¡ûD.õêÚ>@‘“(&ýž{ð[øÄPL^^f½¾§© šéÉcÇÂnÉYXÅv¸ßàDw`[h(gWÓ²Q§;×÷«¼‡NprªŠ½täl7™Ëá¹6.îüÆfooƒ“ºëª®6>múÊY´(ÉÅO` ±x¹µ‹%, ‰¤Ð{ÝG]:|8% À:~<1žiÕ‡ÖhJ¶n½øöÛÆQ£r/†ŸŽ¢"ÔAX©ŒÅ`’ôúÜ%K$H èÎ@]]•¯¼‚5'j4üä8ðõ®.¦‘D¦ßq‡,¹f·[üýÛóó¯ääÄv%3Sî¾_ßòÝ»%à"0v¯Ì]¢{jpp݇²gù޽Ƒ#ELD)“«+Ò`÷¦o¾RÄfLYÅ'¸»7Yºc‡Ì)ŒŠªûäu:³››ýìYèŸ]¼øÌM¶)”Áƒ$öÛø#wñbôÀÏpLŠHÙîÝx¼I8œèž~×])þþd•ù‘‘X9®ˆ[âº0€¹·²¼§¾Þ¤Ó]ëìD\œÅž›+xò~¼=¢/.Fµ]ö¼y¹ ŠÜä8À??"”L &núî;€¢èh6×biøê+¥t6â&ìmkÃ0 Á_>s|{a¡hgDwGRu'Nä-_þ}Ý:Û&N$!9A”\Ñ‘Éå@81éõíà™ƒ@ ¥$BLΜ1£ »”èÞgîÖ€¢@ñ–-9óæ‰ˆ¯ÉXa[jªÙË‹-ˆ%à(*$8©€ë>ÅÇç²Õ*™TNÂð%ðaçσ̞3—€è`î,Yùê«i·Þ ¶€àÅÇñ.>rRó-·P¨Áå5Ö†›u––Š"'ºcî–  ‚káÚµ…ë×—ìÚ…e«´G-~î¹óë×np]0Ü?c„€Ì9cÃÉ“È KÍO»óNÎ^ôì³\¡éáá&ˆHM#‘˜cr@.2™«­­"^†l Rì•èätaÃDAŽ@†•—íÚÕÛÚÊ…ÓUUÅĨ=~üEü²èî¬ùM‡Ôà¥[·ú®^í>uª. À5 `Ld¤×‘#…7†ìßïìî>ÜÛ›yt©pÕaz½ô}ßýà#¿2ÖêtÒÖV•8Hx0¾tÑ×ec­”bßY§Óêõ4mX¢uqa²c#’A±dEL ýÓQ3gº‡‡ß¶­|ûö==êeD ¯ÞrcÚÃ}|To>…NA¼Ä…˜Æ#gOÏ M›`c0AvÝn÷ž5+ìÝwû#1,Ä^ôÔS÷¨éÓ=î»Ïóæª˜áÕ z)SÎÒiĈޚš+6›œÑ5,ÌgÑ""Ú‘/†ÆÆzΙCÓìâ¡C%;vÜ÷»¨(ÌÑjek{v¶óÈ‘,dÉ=""øùQ”"¤DA²Ë/¿q2ƒ#Ia ûµ¤<ŧ):É¿Õ#e_‹ÁpÙf“èΠîIÒjkŽUIgéàÇgÍš¥:3è 5(H’—¬8=åo²§'aƒÀL\骨R _|Äx•ÌHt·øúr·²¶»¶–½dCj²)®Ù˜èž2z´”_&TxsÀÑ€®‘Õß_áa€œUuf~Õd¦g†4]\íèà_ùc]ÎØ]S#Ë‘’ÙÕ ù‡ #FHQË ‰Lt'¤ë@ò£¶# jøüsè#@I9h-”íÙ£&”<ÿ¼uìXn•‚Õ«eGH‘ª9U‡õÔÖ"m²”¢8á#÷¼¤ïC¦Tåsã©S°^¶w/‰i ­‰d??ú*Lhúö[Q;RïmÞŒ zšããI Õ91e£‡/•:òós—/O 5p±–lÙ=w.ÒHööæMŠ,‘F'ƒdƨÕ"e`r'ªÉ΢¢æ„<Šd6T2ÃÝm1B:9pB"KªÝQXˆúqEXmIHàQæôé²5ƸСÀ|ƒ^_°v-ôkââ :‰=,»'[è((hIL4º¹å?úèà”ªØX¡ÕÏïì²e×zzú7;.\08;W¿ñzÁÔl“&´Z`$œìã“»lzorwOèA§ûôE‰EU\}ð $Bäó{2Õ'žà°ô!²-"¢I3:{áBñ+‚Í+²æä¯Yƒp0wŒ¬¸o3f϶……]²C¨TqÓ“±ŒgöðHöò2ì7l Í$ÈÝ nnÔþÉcÆ4:¦ÍfË_µJ¥žµy‘‘F¬gÔ(ê]|FW¼y³ô K_xGz-§O³ˆ& 7)Ui0w•—Ëï¾2gÎd;šb”ÿÜ­ÉÉPC¬ªynÅ t a;iøpx#_ÿÙg&HÃÅ¥`Ý:T(<œèNÍ]#>¦f Œ­Ó£ª±M˜PýÖ[”ÑÄðܽi·ßN#‹¢œæ,²ê(.LÏgÀŸé½Èµ,Ê–R¤þÓO;¾'ÉZ°€ªW$`ðô„y2Éœ5 3`S*féØÏã^½Ð×¢²O›2……‰ <”JU¤ @wCCw}=†®x•9t¾xD"!²“e"AE„œ19¾ìp?g T«U}þ—@‰Ê¨Ø/¢¼…}Åšá¼·±ÑÑ@ÌFm—hƒÞŒ t‡ð LJúÊPàìÒ†—waƒðšÉÑ8þk¦’[¼ñQ¬Q“øU>¬ÎRóÎ;fOO,ã“v 2¡¸T¶®v‚D(& +µP¦> žªMåžIñöFJüÐ|Íts xuÇGÁK¼QªSOnFuNÁ ¬œGZÝýY% Õ4Ù êázáë 'O’='º¸Ð©‹F…s•Ø(Xñ¦Ž è+q£$®.w^„‘­Ñå¦ßìøX p0¢» 6½)5SN=€7$ãU²âú%ÉÄ{å,â½2€•¼R² ¨t¤"½ïÈé9š¸ kkû Y¥dC&º«÷mª î¯`5A†àÕP‡—© ùs€"¢8Q²ãEIöüù¼Ì#I-ݵ A Yç÷†WÀŠm5_9!í^¾’qáTR*Êêø[üºHG©ˆî(ÆT’C1s&ÉFÚäÉ•û÷ßPg@–¨£¿T0¬ H“š,Ÿò@šÿiïÜV† ªÖÿÿàz-‰dÀãb‚%¸óP–¥Œ›P[š7³8Ý÷ofÌß|†n–y“2’ÈѽXo)^­LvÛì†N+cužF4³ŠŠñê  ™±XùÈòžäRýORɱ]ñÀàT¨g¨ŽëÚ6ôÛ<ü¨™ùÔ6ºZpy™ÖX¶‹Æ‚ËKjhñÇçá›ïÌ@l’Cü,_H‚OÀD‡?êbVK- xÆ‹—CY4Ù€SM_+\1‡` æiŸù¬¹j§h,àoêùŽ'ÜŒ?t— °ºS¥™èΓ6œîfØA÷¤{tgϹèζ£éΆI÷¤{Ò=éžtOºŸ£Tê ÎEúP÷XÈ%IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qsortfilterproxymodel-sorting.png0000644000076500000240000002537512536324512025633 0ustar philstaff00000000000000‰PNG  IHDR>îMý˜ÎPLTE    $ ((((,((,00,00000408488888<88@@@<@@@@@D@HDHHHHHLHHLPPLPPPPPTPPXXXTXXXXX\XX\`X```\`````d``dh`hhhdhhhhhlhhlphppplppppppxptpptxpxxxtxxxxxx€x|xx|€€|€€€€€€ˆ€„€€„ˆ€ˆˆˆ„ˆˆˆˆˆˆˆŒˆˆŒˆŒ””˜˜˜˜”˜˜˜˜˜˜ ˜œ˜˜œ  œ      ¨ ¤  ¨¨¨¤¨¨¨¨¨¨°¨¬¨¨¬°¨°°°¬°°°°°°¸°´°°´¸¸´¸¸´À¸¸¸¸¸À¸¼¸¸¼À¸ÀÀÀ¼ÀÀÀÀÀÀÈÀÄÀÀÄÈÀÈÈÈÄÈÈÄÐÈÈÈÈÈÐÈÌÈÈÌÐÈÐÐÐÌÐÐÐÐÐÐØÐÔÐÐÔØÐÔàÐØØÐØàÐÜàØÔØØÔàØØØØØàØÜØØÜàØààØàèàÜààààààèàäààäèàèèèäèèäðèèèèèðèìðèðððìðððððôððôøøøøøüøèìè3™˜e(êIDATx^ìÒ1  õo°¶fÐ2p?ƒªèƒ>èƒ>èvé˜ bhe± ÄHeÔmg˜îKÈ 3£îCä˜YPöQ¢%@Ë9Wm}v阀Šè™¢ŽŠÓÁDu¾Ü"€Ž*0Y ;Oe‘•uY!ì|J(Y— Ÿð Ÿ×"Ãç¸ðiýŠ‹\:T‚º[,~ˆÉl9ðLóE“ q@D0¨+×&hoQð•…IË0§ó;Bgø©6_Û*Ÿ>K4-(¾ ú±ùðÿ¯pͼM«@+JÔn>3eÏÒ0…á“„[cÁAA”RâRÉÒJÁÞA\ܲ$ Ø%\Bž© ý·V(œÉ¡ôöãÏô¼—‡Ë:$£’éÕ@Âëð—[Fý=(û£è×4 O!6´¾‡mžOXŸ­•€dItö\›è²†ª¿!K,õWY¹?’ÀBÝ5­Aï¯æ”Ý0~†ù÷Ìs>ز‹(ˆŸ%«eûÍ'¾sh>í¼÷@`8ªÊI ƒIýâï£þ*+ç96€Û—·½÷\ÁN˜öÐ,|çƒÀÉйԀèâ óùe– ^Ó¢8üf“­‘] H¥-¡KÀCÄ`ÙCŒàÁµ‡B [¼¤liQZ± <äñ# æ„´µÿmØ $q³îw˜7óÃïÍ|ôÁ2ôsâM³€ ê² ¶… €<àKÄ–!ÖÏŒÉoÂÒ7èð# KVÿR¢ÝŽËl1Kì)È*º’™xV×è¯EÝÒ‡µ£NYÕÇä×aÍIv?%dù·ª·wÏ¡O¯úÖSÓ˜ÉÖ¤ásþi}¦PdV“ß„µõa²û)ñáX×Ùbž¼>M¯Ùý®ô1“­SWà ("€úÀhKýžÌ¬>&¿kôÙ}²ûéÀå!47’Õ§#€1pFºãÖ¯Oå âq}D/  âHÖvUÀÃ@Ê TB=À‰&™ÓÇä×a>'Éî§Ã§:4¸ü7ORŸŽÓr­i¿@ú/ôd‰ëÃKQË‹åsæP÷ž˜©á:¥31ó¾+^ýdžìÿ sÕq–¸7Ö‡S@ç7a‰Y/ï6ÝÙýt¨|å®ÿ&ô#Bf>õÈk‘ú‹‡ÉVàž]º·(ÌNz½Þ*ÝM WIÄn[QQ¨ü$„o„—×Ý—`8§4Ã÷AU g§Ø¶Süï3Â5ü…ûdvéЈb(ÌÃçñ rþ›ó,À¶„0@‚hGx©.TrÕYËLô5Å~Ì `ŸWA1Ù¥C"‚4#A°ïð -ƒÇavnÝ/3¼ŽÜç)š};¦bг¨Àn͆ Üb€‘á†~ }]óºÕ‚`µ–)d“LðŸd‚—=3vMd‹Âø™‘Á!’@Sh±[ˆ…ÁB,Ö"$ S,)–’FRHJ±›iæ2¿ùo_â{—{™yò\!áí®?œûå|ç§Lƒ9qâÿŸ§ø¼ðrмã·cò„r0Gp€¡p0¶tÑ.;NÐÝðK¢:·™Bzéš[Se¦ ªÙf׳þBl’±aZvÎ^²–ÿ€m·CžF§ÁÁDzßðøøô®g/Gå_‘¯#w›0è*5é› 0ë`5“+Lóv¬âþتu]26óÚJÝU²–‡Å‡Ø^ák¢;°.&¥5 nÜÊBèyîÅ@@îÊâ„È„ŽSsÆP$i{Å©¼ª˜jÙSVW'÷J·ì`[^j‘^½¦Üù…vlÍšøþläí”äïkNëO|0~ ± çKH릪`šo*L³rM|,ÕÅN.–Ms„Vf,ŒOR€ÉЧ#4ô{ôûÀ`šÌ]•µ¬ø\® À ™•9 chFŽnÕæL¨?÷-txêOP›(5ò÷I_«°müÏݵéÕõšHu­kÖM:uÛê] ÙûšS½ÂG“úàÇX˜ôØa5rMØö[&>F5#›òMÆò ø$«aj1PA“W¬Š 1  Õ¢¢ŸÕ?ðï9chFÖ"˜ ³  67áÑzÙ'ý2! Æé¶Ý ò´H¯®×Dž`[²fmHd Bþ¾™ÓÏÐ}1¨®´Àj ùæµç-Уzn€dmŠ{d-{u.öpä MXê!¸ì°‹câc×G ‡14#]@ IqÉ<`‡èùσVEöI++:c î¡Ìªzu½¦(À±gé'ßÜé@øX¢+€c*,khLÉ7n-Ÿ¸¶ÉØH;R£&@ÖòoŸMcà(lòNCÏ0ÅÄ%W—ç]ŽÄÚ™Hnoh}ûcW™ÌײOê$x[`óÀ¢ªEzu½&’@âØ³ô³ï¾Â§}û$Í à'ø¦Â¨ÈvÉ7ØÉǧõHÆÆK!vœå!ñA5f@°É¼Çª¸¦¢t©¦9 À*xŽÄê‘g,¶…µ—‚ BKaÔ)(àë’ÖX‹ôêzMd[ßžežÜ}Íég„‡¨½¨o!:7®¾£1M$×ô7ùùøÈߨ6pŽOÖòÀÜËkc5lhqÀ°O–„tÙ½Jà„¬.ìÏÿkLð&q8c¨GÞÕ¶.@³ÑL€ 4U/Ua´:§5ˆ7_$º?O´H¯Ž^SηqÿÊže²÷µO?<<<ŸoŽ”úÖ7Ê+4¦‰äšÝžRý^>>¦cÙƒ‚Ës NÈQ؆z$CÏŸ0—6ðTq‚©À¿Ko¯I¯Ý ¬»7)Z¤WG¯)EÿKjϲžÜ}ÍÉ'P’w ª»îej*¸ i"¹¦ê¼n²?>ˆeøè6^AÈZþ¿y­‹?'ËCݸo²áOàô“©êõRº®žO× Ñ›¶úÃãsŠ{¡~VšL¯ŠŽSjÍá÷ŠÏ)>'Nñ9qŠÏ_ì™Ák"IÅ«”V‰mظ†5kˆaÈ&J`$D#q!CP†Ée$ ^¦/ƒôØô©ëRüÎûßî†åã£idMv’Ýa} zõêQ…»¤YlðªÏ›úl°©¹G©“’ƒù <ÆfœÓ k ou¶¬ Oüp/‹…ƒ’½Bñ VÖoÁU #J‚~‰êºªØ¯YóR<ª ÿm}–¯_’ƒá¹Ñ|ÙüNõé¶®>Î*c~Dœ;Ù‡Þ‰sÞ2Àø *â[2¢&P×ô§oî}˜5l‘ ^§>¤p½(Ê­˜41—A±“¢¶Ëб˜X[›Š,ÃGá®ìË 4ÙwîßDD!€+'b›6`þkц“•ÖÞ[`Y‰ÔD7(ì.d‹r Í¥ë³àÞ à Õ™.ÒYSžƒ´õ’†2àk)*R dEIú¨«}ލbætӄ׫/ÂðÒ§Wƒü³`¹ã]%ÂÔæ®÷Rm¦¹`bÁNo‰,ÃG¡Û¥×C“Ïûn±ch|F‡HySØ:7VY£ćÅR¯Äû–š.Î Ú²E9f¦#Ûq÷N€Þ•ÿÊ"tV¶ðÔHJ¤àe`؃ˆ|Â%Aë#.*9ó^#(¾öMxúøyÿ¶S š¿ûpqþöÌgˆ+j3sÀ@0D–ácàKsæ%¯ÉÛ1Ü®wí[-øÍ*ë«!Ix‘Ä&qQMµ’²lQ¤Y ¼‰‘ï"t€.ÒYž§@£.X£ Ô¾‰AE YQd$2v\µûIÖ\zïÝ —ф׻:Ÿx°æOXº– ã«6`à“ OY†Á¸4Æš\œÁ—#nk`$ûËi»jVY«sŽ.€ô ÞªÉÈõ@š¥À*as³§†§E²çeÇÊm#P“%!WӉݠ3“”2šð¯es`ýª›è^5ãÁ[µñD7õ×"Ëð1hš{4³ðÞ¾ ýŽÌ¯Ïeu8›UVë b`qŬ–­îX¤Y«ë£³Ïõëã–@Ƀ”á¼ ˜?¡"`r¢$äê¤à ™¼ÍhÂk=¼š×@m±¢>—Ã#03Xj3êùjD–áã.΀/-$™fââ]1-cˆ +¬ÖQðÀqD{ôáee‹r ÍÊÖ§ê]¤³ÏP’NÐXB\W†ÖG*br¢$ä곋ܩÕÄ„Mx½?î•9 úÎõ›ä¯Îu|-ÂÔ—®×›Ö'¼ö+² î9g=IfÔwËŸ pðKÐAåÊ­VXkSÚ§éâ•IFu¯¦Áý-8”-Ê4+[ŸÞØC]¤³Ü4€n`›±(zunÝÀMsU ^%Y¾„ÆND–áÃáÀ4ô’L?†˜šY|®ÚðJꓳö÷Iö á¸Q8LQ'Å =—-Ê2YúÁíÛÚLéÌ3 lîqÃöe(8*br¢$äêàThF`ÔŒë‚S2šðw{iaø×°(?Ìê¶ú"ŒþÑ6øñëãßôh½«ÕGwžøæEÇÿÏ볩Oa×=ÔêG{ek+í[ø¡ë³yã¾Á¦>lüÁλ6Eq?¯%í[¡RA©Ð€êPqA:H‡f( â Á¥8HÆ’%¸¸$äö¿õæñ _á½—r5DxíäÜsî…3¨à§Áé¶5Û°‰f}šHgÛô`õÃÌÌv¾­ÍÐu>t¨[š‚—¨IÑ‘;8Ø‘ 5$b¢mBˆVH±?©¬{Zì. ŸœCr’mˆñ''0˜|?¾)>„D ‹í¡®]‡ÞÙ*Hm-Y0‹µ¯fMUèE•ö´Þý龙ެ²ƒz²Ñ/QuävÔ„z1É6!D+¤ØŸ$«H- ¢ã> çœb1Ç &ßoŠ_Pƒ¨b;áü¤λ«8 µë6fªúhƲ´Ÿ)Glz2 á»U6pð¡ CO6Zà%¼}ìïìÈ„4±Þ6!TÅî$YE´hœÝ_ÄŒsHN² eüÉ DtúŸ§M?Ä"þ< ‡Ã<Ò‚%8`ýúˆX³9SÕÇÑ‹öér, Ö™‡Ü½´ƒ=aÈKxûÜßR i$b½mB¨0ŠÝI²ŠhᣃÏ1ã.s‚mˆˆ¨ô’ Ô ë‹ØºËÃþí~†XF6¦ÒgF©]Ư‘Ìñâ²¹Ö§´‡®†¼„·ÓÂbpO&¤‘ˆõ¶¡BÍaëCT¦ÈY…£<&œCå4ÛPÆN É÷súÔ ë‹xrÞíÓv)¬þÎB¢™ª>šÁÜ“/axÏݽ´‡®†¼„·Ó¯9êIÄ$Û„+PÌI2EÎ*ì·cÂ9TN³ eüáš|?§ÿA ²>°ˆ—Ùu¸²N)¬ú/îúY”iªú0ƒK/Ó›‡áæíô×±U5ðð¡ CËÈ4ò§(ª…_&Ô‘ˆ©¶!¡Â(æ$™"Zôæ£gCׂœbÊø“ˆïçô?¨AÖqñÍ­B¤–ßÿl˜ T¢©êà .Ýo¯6yßÚïdU <|(èÐß22¼Ä)Šjáׇ Õ$bºm(„:£Ø$«ˆ?޲Gà¼.oÀ6„ÜÚ¸Ï+ <|¸¹hx(üÀmV>•G[>Ü\4냸­ñõq¶÷z^S|øÿEƒÓ5ѬOÍúüaç^Û¸‚8ŽÏJlUÒ®¨CC8X¥¤Ëˆ)1†Š‚!!`‚.Î¥„€t4>i/bÎýo‹wõeïIÚC#Ø9ìÞÌoy0‡Øà~;UWÓÕU¯O]×JÕ'xÆK†ÞΨx:[ÿUÕ8‘ärm†®ÿB7¬8|8NÚšü/ø· LˆVH3£ÝÔ‡+¶¡ý›X†b¶aõõÉrßëÒ³™ªÎ²ù¶ë3nŒUuØü¸æú\l¾=qø0«Ê7j:˜­fˆ„³|Þ{`‡+¶¡ñˆÄ2TÁ6ˆ?È?ÞN”"O€ µ5Õ/2ÑiIt}ØWÕ—ZàUzõYÊ Ã¬adXÖg`Ûcò†öšé™„<|XB‡†²,»™»E j"_ˆ’ˆ•mC`B§Ò\Të¦à{8\µ áÍ1d¨‚m(¼,(º7½{vF:s}Užêçzv̡ʓ|_ëÈË‘å<È ±´Qœû38žOÛ pð!С†EºÝÌÝÂó‚šÈª’ˆqÛ˜Ði…4S7Ï~u‡âºG$–¡ílò þ ÿx;YPôòñÝȰÿ»=<Ô£Árºý¦½àÐå«ê&ë£Åó ƒ.VtÔÙqêØÞLõ“|taÈúø›q Ï?B+ò…Ê$bÜ6&¤Äš•:h6'îP\·ñˆÄ2´…mH‡@üAþñ† ¤ëñ¥ ¡~ÎôÇ«Ö%+v­Z ,6Xa¤˜ç"ž^”7§Ó,W ó¤.àáC COÚÍÜ-ˆ`}<{W™DŒÛ†À„”X³ZuÛÁõG$–¡-mÃâ ñùÇ.®éžŠA†é—–¶&-w-£HÑÁó‰*±”œª^ ™CÖÑ´xøèІv3Bìjìx`}‚$bÛ˜ÐÉO4 ?O‚ëóÚ—X†¶³ Ë'ÄäodAz{}ƒ uÿèP:n8tfàÿu.Ü8›$Ö¾וúi¦:‘P€‡=ah7#Ä_ͯ9_¨L"ÆmC`BJ¬™˜ªÞ¦ÁõG$–¡ímCˆ?È?Þptiž‰A†§É¹žKß]‡C ä4þƒ;OQedXûÎMv»ò“×E7ŸÝ—P€‡aØøgÎÍñWóëÃâ$beÛ˜š)íž,òÞIp}à‰e¨‚m(¼M¤÷•–Gùì®Ã¡nökÃñ²™yAb-lÔYí¥ßõ“P€‡aø¼Ñàf„ø«ùõá Q±ºmLH‰5ë=i¤ÝEp}9§Ä2TÝ6ô_… Ü©ºý>t‡­êª¶>p;Séh1ïu k‡ի^ãw¦ÞgIz[ ƒw jœ®®z}êª×ç?vîžµ ðœI€M>l°!)¤")„Š# \qa &®0)BŠÆ¨.5FMš[nôo£5yÙ۔τ¸·Y1³žÅxÀªžVÛ©´8]›v}Z°µ e2ÊP'âBÊëÄg9úªip }Óc+¶ +–Š0ëÅq·ò„[¾cˆÚòb=i¥³ e’Q¢ýËë×åÕôHôU®a`}¶Ò6´ù2ñB‡~qzmŠôÔýv¸ÇЫ îJs{¦´ ÷aø¢_î- õI´Ïçýh8¯a¾¤ ÙÄ^Š!N¼í¸ 1M¸†”_ÆÉ<<¶)µPkÚ°X(Â8ô‹{¿™³ qËw Q‹ ³‰”¶!à>$pšBë“h_÷#†¨a¾  ¹˜^{}(†8ñ¶Ã~Ä4áÒɳ¹…Ç6§êlC›0t(VCïæ2}ëÖ·àzµÓû²¼èlCÀ}HÙÏ9ï—ÐúÚWãýˆá*B˜_£ _rïõ¡âÄÛX9Mº†ô“¹8 ŒmX-TÙ†öù*EbY¼èvý&U$!›3Ú'N8ŠTQã•™ËÈëC1ĉ·áÔ‰iÂ5Äú„Ç6©ªlCæÙ¶"ŠXQä"ëã;†hv¬õëlCÀ}íôÐú$Úǹ¿>6sR|]47_P†«>3¡Å§÷6ÈÝÞàÒ|ÝÝmN-TÚ†Ì猸"“(öž×gO¬ï¢Ùe¬Â6ôà>Ngls•Bë«¡}QÆùiÕ¦}*à¾.Ç3ó)Á|I®>Žíô¡âÄÛn*·7¹†4Xšé0<¶)µPm2ï猸"“(Ž'Ƥ¯)? 6º[™ÙPeîÃ¿Š¿¼uqP¾h}íË":xpëcA@8¯Ëãat’c~2\§÷Þ0úP Ý)ßv·7¹†tÓë$ËðئÔB½mhQxÄ™DÑŒâî¸üÇúP¥f†q<4ÿÃ6Ü~ŧ …\ÃðØ6»¹>P qÊ”Yr Ãcw3íú@1Ä)“FYÈ5 ݺ´ëÓ¦]Ÿ6íúüaç~^›ˆ‚Ž¿MH,¦)ư%RÅPC¡¡4-‚,bsQD¤`.s {Ú½,ïì+‹ý2,Í\ÞbZÞ\&3oæ0‡œ>vs#DÀéB„ó B÷}6"ŒÛbÇf¼pÞ•0škh<(…fR,MŽmH*9ˆéãFk˜TІ*‘°AaªÛÉQ×Dzâ*çsMmCŠ}k]ÛTvã,;î+´¡r>ý™µÓÙŽ6¥ç0 €.eh³féÅÌFÂmÈ´*×Ð,5ãúXojaý¶!Åá¤|>|M2â ÚÂßIÛ m¨œÏ²—g[ó+ѽ6¥ï0 €ehÓñ¤ôŽbHf#Á~dZ•khz¿ó·Oõ±þÔÂÚmCŠÝû­æAîÚ†$qÿ‘I¤Ð†šmøêähÑŽ6¥ï0 €²€ìx^zG1$³ÇãNs]CóÍÚ´«Œõ¬ÖlR´ßäÙdä-’„4Ü;Î’¡QhCõ¿O¯µB4DñC°¤Mé;Ø[ m ÏXÞQ ÉltèNs]C¼Bu¬Wµ°vÛPФ½þ| “‡Qg)´¡z>»¢!ŠçH›²Žó!ç¥v±•óž“YPœ:gšër>úXŸjaݶaQ0#ÒÏÒp¾¥Ð†Úù¼z}¶hˆâÇù@Ò¦ôíÔf P@—2äÏï(†d6’’¯«\CsYØÃúXjaí¶!E¡&ÛëΧL^ì)´¡ö×ù®Í»ó+ÑÅó¤Mé3vN²ÓÐ¥ ÓÑAñƒwC2ÉÉו®¡¹·ÊÆ}¬7µ°~ÛâÙ(ÏÆ§ëÏÒ°sžÿ|ðU¡ ¼?³v#¢øq>€´)=Æ÷í¨·”ر=,´yÞQ %»É×U®¡9k5â¥>Ö›ZX¿mH‘ ­C[}>FD{¹ݾ° m¨ù>̾nŠ!Ù £¹†úØ7ó|P ÉnäÓHs õ±73Âù ’ÝESÍ5ÔÇþï8]ˆp>!B$Ù9c5‚(ŒÏ*®BÖƒ;.p!BIá¦8RÈ‚X,Wœ…$R„á ±‘+BJ±9llvÙñ¿Í„õãùff9ÙÃ<>æ}óæñÕ?§;ƒòlC_>>gF,|:…O:hÑØL,¬¯ÔF¬ÃÀZkPˆîj5D9ìD<¶á¦8©³ !üCRꇺãó~šÊÝ]l\d}%Ü3X¦ø”»ÈjG@ijaþèñçâÿ”ú¡îø42Y <Ä4löÓvß¼uMÄÂãCÀD™÷[í™ú_õšAWýó .( º¸ï¨6 ³a7ÄûLvˆ+ì íXœÉÎ F¬‚m'|¯8üCRmèŽO7Ù#.ÖY|{Àî»Íž‰XXo|LLFÙó•ú¿œ¨™B)ùÀ€ ­éf¥Ú4ÈÍï3Ûq "¬°'´c}p&»—€gönZŒ°St˜ø‡¤ÚÎø,;Þd¡Å£ré°ûÖ’ kϪÐË­”s€e•òć6޳â}f;D„ö„v¬Îd÷0âñlÃö4O“¡Îe!!þ!©~£‘°HÞª'#ºŸøĺã³Wå"þ)åƒTƒmph7ÄûÌv‘aÑŽõÁ™ìÊ«`îÚ®ø€HÊo,‰HXFE\r4bãD,°â};D„ö„v¬Î0(F¬€møO»öø€ÕotÇg8ZåÛûr½Þ¤Ãg÷±ð4ñù2Î6¯•vfÙÓ…R60šmpè2ÄûLvˆ+ì íXœÉÎ F¬‚mø)βñƒ=>àBõÝñ‘£(ï2åúµvŒÝLj…•—(ê0>rÜ 'J£ ;SÊæñQ“R ¥ÕP_h´Ó€ˆ ›ˆv¬Îdg#VÆ6ì7ÂXšã#$ø‡PÚÐnî«<ñÿ_ßqññå"¢||P¾Ê}|ê/_>>¾||þ²s?-NAÀkLĉ¢¢ÿ ¢‚ *$,(¢.‚V$Aô¢ˆxY/2,¬Gñ´^†>ûmM:5¼MA“¡Ù¥ß%Ð鮩Ã;ÿÜqINÆérr}ö;9¹> Y8ÄHáGPaò¤· áâO؆t" Cú¤]ŸéÝi„>˜*€ “'½m¯°cJ趈ϸ¡]Ÿƒq=>lè>üt5e•Þ`Ce««ÃbNÑ/„S A…º¡n®Ïi*HB,ŒHrÛ^¡þ‰úÐmq €ˆñŒÚõ™ÍÜ|º¯+øi}`Šë6TVñÜîêÓ§ô3ºN%ꆺ¹>§© °0"©mCx…?%t[DŒgÜЬO=ª\5ª=ÝÇ‚êSé¯ë 6TVѧö¬ ©¡ÂªÍêsš ’Ð #’Þ6„WÈì0ßVã74ë³Xë«—zŸ?‚ßž`C°ŠîÛÎͬ ß§„ ;œ¡>§©`y °0"©mCx…\Ÿ°„8ÂxÆ ÍúLe)Õu¡ß^`C°Š¯ËÝ/XA¿ NÃP!ꑦ¢ X—ô¶!¼B®n#uñŒZõ9×ë£CWþ ~U»>€ ·°ŠÃU'~€ô áT‚PaÛâ-ô9MEA °0"©mCx…T¾ ãù“V}f§üÙ|C÷‘àW,]u¹UŸÁÏ#xÛMÃ*žÞ«÷Ï‚ô áTBP¡n¨›ësšŠ‚`aDRÛ†ð ©>|"Æó'úÔ“£Ï:©=ÝG‚ß²rÙªÏÎ`Fp»iXÅÏe1Ù§è©¡Âg¨Ïi* ÒX˜Ú6„WHõ¡Ûâã70 õÛG6ù¼¢Ïç I¶!¢UéŸpé¯ê|Øì!úÏ:YÞiM|Aƒ6¬´@}>0 %„M¬ ÙˆÌÒlCDÛ ºÒ?ŸòölADQÙCÔF¹s8ñ Ú°ÒõùÀ0” 6±*d#"gH¶ T‚ƒ:¾Ï³Âp†‰‡Jç“8Ãt>þ„éæ N—&Ošt>ïìÜÁkWÅá«Y&R\2©ƒbª@U¨ 5…š °(4SS’MD ÚÔ›0äeÉJ³¿uÿÛÌá ‡Êøa¼˜»÷xWpZ}Nw'«³ »êÎçî;‡wfýÎ6,*}¢*P­'{½âä6œC1|{ã5îÀyï!ñ@´Çó¢qý ¹¼M Y1Ÿmh¨5­â¦ØÂÛÐá¶átL†`6E5úeͧéñí8‡põý󭎘¸Ö-Î'WÔÛ´3Ú†ü€›f Ý[Ød*œÃ6\”@ñö>ðx¡¯”ö$bpÑÿ2·s¬ûø,ÙÌÁ°!ƒU,Yí'b¼DïÜcåí3J=ŒˆØ5U-®¿f²r7”ÛÙ†Àf¸ÀM3†nŠ-l² ÎbjVû—Ôfòxð²Þrm>¯¯r;‡Àæ~EM­0lȳßy3Þ%b|UqÞóXyûŒVa×TÇs°¸þšÉ6ÊÝPVlgs1tjZ-tSlaƒmèpÛðèO~ýŽÉœó#T,÷{‡óm^’Ý9 `S|«W’óyÿÆÌ'ŒŸŒ¿Þ"%z¬<¡™ÕCØ5õñ@\’l£\Y±…m ?*à&AÒ[Ød*œÅ6<›0zÇÛCÆg¸øð¢ìBÔ ²·ÁÎaÖ¿ÎS“~ÛçÃÓ÷† ¹ò`1 ¨L *á±ò„fVa× ~²——l£Ü eÅv¶!\KD-¦±ó¡™ÕCvO}@é6Êe[؆ph×ÂM"iŠ-l° ÎcžÆ ˜Å)®ãŸ«Í§W 6ÉîÆ5_ù•ä|ê¡aCNz3f1ODÆÎû@´óçõwM}@l£\Y±…m÷+TnISlaƒmèpÛp*V~NŠÞÞtc!Ð ™C=úîÀ¯$çÃÆ,bÉ2.QG ±ó>íüyýÓt¥dåòÈŠþü?mC¾¨Q¹I$M±…¶¡Â·`vFW'+vçÓT¬ØO†ºÛ²b‡ÓuÕOWÝùüÇ®@ÓL ´ ­[†{Þ€×ù äòA>Èç+äƒ|òù äƒ|àØ¥c†aÈÚ‡™An¹áBÀ¢!§ª73±ú4ùfÆ´KÇ0€Ö¿ÁÚzÀ2ðí³ƒ¥èƒ>èƒ>g:¹¿ óvIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qspinbox-plusminus.png0000644000076500000240000000056712536324500023340 0ustar philstaff00000000000000‰PNG  IHDRk"o6ךŠPLTEjhdÿÿÿøøøjjj(((ÇÇÇÏÏÏéç㟟Ÿ222ßßßbbbccc lllpppqqqssswww‹‹‹’’’–––œœœ ¦¦¦ªªªµµµ···¼¼¼½½½ÔÐÈ   ñññòòò000þþþ111Ê^1…¨IDATx^핵ÃP÷ÂÌÌùÿßËuva)ß*VÞÓNqÒ- ‰´`(¸i]êPŽ[ÚÑò-Tù—ÖþÝ;,å^±¢Íz@iurÑ2{0ZáXTàÈhõ§"‹k-UKÙºÍE/,H}Ý”ÕLd‘26%œˆ ›ÒÍE©¾3Z±FÛsÀÙÊÝ3“¿ÁÜåV¶Tßúá{ùaSJÜnJÂÂÀðø¦Ec]Ù4ÊWIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qspinbox-updown.png0000644000076500000240000000062212536324500022605 0ustar philstaff00000000000000‰PNG  IHDRk"o6ךŠPLTEjhdÿÿÿøøøjjjŸŸŸÇÇÇÏÏÏéçã(((222qqqßßß lll111ssswww‹‹‹’’’–––œœœ    ¦¦¦ªªªµµµ···¼¼¼½½½bbbÔÐÈcccñññòòòþþþ000pppÁ¦ãÃIDATx^íÖǪÃ0„á‘ä^Ó{ïåÞ÷½(„p 1‚5ð¿8Ûo#AÑÒP ß-Mɵ«J}g5x–…{ ž½[«n«ÈM}¤W+Jüpþס¼ùmfÏÄ;1¬´gO‰ Ãjì1˜Õa©ÊÄ:ì¹`\õqS¦C{ Ʀ¤}{J¬›²Ïì ’#Ê’ÿpqð9›²¼zEn~s¿”äÜŒ±)B¶R(—–`¼¿jþ‡N6Er¼)1+ ÍëEPZ„š}–:IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qstatustipevent-action.png0000644000076500000240000002476512536324503024207 0ustar philstaff00000000000000‰PNG  IHDRºm™Wì1)¼IDATx^ìV_hEŸï›ÙÛ»kî.î]›K¯‰` A…BEL©¡(úP´ä%""ø¦Ðо‰¾ú¨ˆ‚âƒÐßüé£Z©Ö"„"„Æ¢I.I{¹Ü].—ÜíÎŒ3³ë]ÜÝ\ìƒ ÔÙ½å›ý~óÛßòýî›…jµêyžLe3S§ÿöâl6—BH)@] !*M‰»§d¿ ül”j7‰Œ.ìv³!þ¨ò>˜ÝRcß«?[h•aÞa·.QÑ%ÑlåˆØ¨×}ìÔ¾il6Û;Û°ººšÏ;?\¹òî{´ól“”œô·Ëÿv…ÑS˜…æ"ƒüíÙ%(¹â1åÁƒXŠ`U  ‡QiЇ}Œ.ÍMgI41²iÚë—_{õìĉÐlnÍýüãKoœ‡ÃÏœ9sr¸”wÛÑpN#GË ˆ„¦”HÌûÝÑÝEe\®ùsQ‹$D×è[®ÄÞäû–TÓXmúq‚K×ÓY‹Rk/"t\ìêX‡0J(ÓKM6T ­ÜwäòÒúÌWßÉòÌGo¿ sÓÓÏ^ƒç^9ûte­.;‰4ï¸!!: þÝ®}€ N;-ófw¨] 0vŠ9×åÐhñ•4Úv*•D$Rð+ù» þ±¸Øé´TÛ]„étöHiX—peµ¹YCÄОÒ-cöèȨ CʻŬµJe£zËÄvI”FlÛr ™÷?üúùLO=¹(&zÑÉ&x2¸>wò§ó¥‡\*o\ºç4 Ým(HˆB'/¼UÆÜ©×YsC"ý/ØÅ´AI„BÅ~ò_´‹Žr¬‘â+ÂÝ̤ØðÁlÓK^] ,ض-´côašð>v¡”Ýøý·õJùÐA‡s« ÖnVGGïeÌZXøuè³×· ¥´²¾‘ÉÆŽŽqÎCvñµz}~þZÞɨ8úáñ¦4ußøýP­íü2û)æ<üÎSÓ/ó´ =~é“ç½kpæbyvò\R± Û`O\þx|éêçO¼éå÷dØ ý­\ýÌ0I@0‘Æ€ðaº´º²=cuï÷vAk“Õ§Ù#\ÈÍOÛÌbšÙhêÙÒœ½Öm¾ã}ˆÖµ¯]L©4X_’Ž5¡Õj•R7 é-î¶WnÕï.fÆþòû­6N0xb±¿]æççŠC…D")å^v¡Íf}«å© a‰ÁAÇXA†d pî--—ÇÆŽ+¶ˆ]䟌Z xU¶îºµtUï¥;K'4IHHˆ,!²¨‡UvÔy8¢,"(Š<F—‡ÌÇsÝJ†'HcAÓÞ«Z÷ï¿Ï˜KEbƒÉhPÑà_ªm(¦Š$'9QÑ좚Ì@“ Ä„ [ŒTR–tØ%ƒÁ‡MÈ&#9(¦X\iÔ p`yõfÊä’’´™ô 'XÕötô‰f³j§Aõï8¯ý×Ð #CG)ÀWãœSv…vŠ9ÜT1ø:\r‚Jb2’(™Ö³ÀFåc£rôµMa¨YÆ–¹>ù¦>šoŸûúžÎ^DÑ °SÕq%¸ $É’"I²¢ppù+pA0QAñ8Jr kY&H˜ ¥\$S@§Ÿò=EÖ±¬Êíçp!HÀËHc"‰"0EÃЅ!.e&,ãLâq^$9Á‚ž¸ ظ€I<ÐbI!Iê÷”/Oß÷—ñ¦Ä¬@]'“ÓqÕÜtOÝ 'ßþª`nKÆ(&R¥PòR™-JÉ,;¾dj†;Û‹ Ÿìo:ÙÈÓF›ÛA,šší´ëãßâ oÙÓZ^äøÃ´¬µO6Ú\ F LJ”ät3þÌ*×£/ßÇiƒMOªY%–-fÿ8'iUn¢Ñ“Ëòôúç1›èMo|ßÖÜÕëñ" Ëã-P=‘žÄ´nã2E‘Z\Q€Õc/mõëÓ32(*G%ÎÉf#)ˆ '€,’¦›SPóÙÌú^?wïÂlg7¾UëvÉÉT…^]¦Q©iì21¤¦Ï·tOººà•λ²Ò~wµãpSv~ Xèbhým¸à - ¡‹¹<á¦*”yA»ë)¤cxÃɯzÚNƒ‰L‘%“=§lâM¥WdFYA÷KE:A€c‹´J¥`„¾íìèr—OJL¸Dý»ó‡_c´9mH1V &š"Þ ^pQA€¡8'œïW®MÛußÐXÏüð3oÖ…g·ÕšKÎ5F‚,8öeÂSáÝbÀZ<,îý×öχå>²tÜc/ªõ„žxhÆñã§v~pÚ™™qmeQîéÎ.É7–åpÍ}]£G˜|®- )ÓÇæä9èÑneïqoåèœê†~^Á¯.±5´‡úý²Ã®¿ªÌ ãóöFzÂÞïκV/™Ž_ÜòeSK’‹øÂœ$“ã†Ò}6Ýfàx¡¶9 ³Šr™í}ñéF[šƒ@IOkpìØ‰a^lïbÓí† ¥Æëû³3 îkSG µ‹Ul'"HJš…9}¾ßfdF™¤dý½=F³-C‹A%ÊŠ(B–Àé¼ vÅqz×wÁUs]½ß—Î-€QÐÒJ]„K¢¬’ò¯E—$9² HjÕËÐ’ÞöZDÐ8NB?Aþ M‰XÈdsB/0„Àð‹+#Wx^¤pÈ`m=ñÅ˲(1éØg/ê0T8j†(¨n'KR<Á“„œÄ à3PÇãÒÀÉŠlB‘‚Á6{ÙÖ ë‚ ÒÅ¢3¼ÄJºŠnƒe%H VŒ'äÔ#<'õúù)v+-þ~Õßž{ûÀº§¾ýòPÓ¢™…R¸ÅDc¡Ûáéß½ÿüü»·4´gLpÁàÿcZá‚ ú•3 ëZï™kQ"m×_EÃHæ\W¡ï{lIŠ5ˆÑ O,B -|¸óÉ·OÂWa‹&¢HoÃ[Ÿ6¿²«Ãëê›7=óaX0¿¾aNE‘Éßï{r…ûÉå®eS¨g×ý®”óõ´ÛŽÎîsÍÝÞ~áÀÉî@Œ¼s^á-×"oËÙÊ"ê‘[£sBëe-š¨ûÓÍiX¼múhúÙ5Å÷Ì1o¸#ov椺ÜY”Ó‘>©ÜÒÖ|6‘}>û"Ë!Ðø¹_]£Òk»×ØèŽ˜O6qʆî ]œ¦¥+Ÿ¬$ `E=eø†œ"Bâƒ|Ùê_‡$Âó 3 —‚ ’´yܬu•7Ü7vÆ=ü9ÃUÊ'âPÒÈ@/þ–hŽ“5AI.Á¥ç–VÞ°¦ùô¾¯ßy˜ Í•³îƒU¶(€PUJ".±‡èð÷ùzuR &µüØñ¤¡:˜ôGÉ<» õD9S8$këý˱O¨Û—pØòººº[Ú{FL¸9˜06²ñº‚ŽÖúëßÜôà‚YS¯–Ôz!x×£»þþæÁ¿ÜuÍŠ{ÿËâ,9øCcE™óÁÕóñÄŽÿÜзoÛš{ø›€gÛ¾ŽjÏÖéf÷tÔH¼©0wáÇ{šw~úm£'–2mÎR³£Œ¤M$E² uzäˆÏù>O/<»í½Ooþô¯­]¶ bßþ-¼0û¾»o]~g·›w|vâáç¾õÑék®&õã†O{sû)•¹VñÉçgV-™}S•­ëB[$d¼~öŠÿþÈ-7Œ]]¾êæiEV2úĦ—2ŠçÄÂ=SƘjšÂ=>nëgÜÝsÓ òÿ8Ïq~~†'\)Üì18ŒXO'Řd力³Ð‘˜TÔ?¸F8‰¥,ZgI‚Ú£€c³ 0KO×j/5?±?†‘ÈT¬@ôE1Ú߃п/yT‘`a)b·˜€P$ŠÏ’ar¡Sš6:½³ß{Ì÷Î-vFä8¡/7§eM,-˜02stõɾþ¤œ€™¥TŸ”¥//ÝѪY{Ë©´Ãú¼’¶£u*¤Þd´:¡©ÕÂjé‘ÇexæNê­\$жÒ%>j¢éƒfÒ7£Ux‰ªD`§±êo^)S—¼X½ÿ5žcóJ'C7ð‚äÀ`l‘bCR¸ZE—xœdî:ø^oþ¨êù}õ#¿®–ðÞ{bó¦´¼€ÕE‹ ÀÓà®.à×n3~y¤q~UÕ«ÿ½zçoY©kåÅϼøžÝfzûo+Ÿñ¶uvëqž ¨ÎöfYˆ ¦»—Í»má„•>pêö›ªpé( ¸Ý4÷úŸšXhLŸ<Æ`͆/HEîô%9[w5©lÅ­3Þø×Á¯_oOáêH’HUÁ„ÖX¼x•Y¶nù”ã?Õ‡BQÇÆÍc޼˜nM×Ö+«íþëÃwœ:sþØ©††¶>“ß¹ûÛ¼|·*m³"p”5ÔlMC :-Qp}ÕX?¦ã%|Ó¶æ|[dr…cŬ!r2·©3ÄrÂPWº#ÍØÚÙSÛPïïÖC!І“@}åm:$°I°Â1°c㟄zNªV’EÇŠ²k—B$‘E%Å( Ú!²þèûHÛ…ïxÔ‡ $²¤G’b þy픊ˆM"åm8„áTÙuK)ÆRVµ¬­ú {V)cÎE€B‚.ÔèBˆj2ÒêvPĈ$ˆ×)€•ù5–ÇÚ7]ÿ¤“{rÊß¿ê'_)'cw×o{¡rB2H‹™É‹îbbðº¶ÐSoz`ÙÄÙS+ ýÏ­»žÚüqшkü~ÿ‚*‡ÉT"?Þsàµw¿Î/,?UÛ~Ëüª¯[{ÇìÆ¶®·ZèOhÏÁó«—ÎZýè–wv^³|Þ™³-°±~`dˆ9“ ožâ¼ðê{ÕÕg¬îÉGb|4§Hu>á˜È "M‘02›™~`ùD\èÙøì»LU5ßÒ‡wxEý‘3}sª 9NÈ/XûРöW6p·á¥/Ã1.ÑÁÏŒY̆_T—N}pÕÌÇ6Ç gŽ«?ܺ¯w÷wÞ’˜Ôd$ç•ÍLDû(%Ý5†Ð[$Qžsõ8þ+¥.‚E³«@h"Ý5:«p¢’DñhÈæ^>Ù¥•Þ"H’Bª3à ‚‹ÝéäðõiE“¡vA)Si÷™ûëþùFùòSY•‘ޏåã%èŒè]|Ôûùó ¯h¸ŒqC‘P7ç;·vñø;n™úÌ [Ï_ÛÙ¡HLŠ¶ë„ˆV·élÎÆ>„‹ô&-ªŒ“¨@nÊ`rŒ$úëÉ`„I‚|<šTD½ÁbÌ, ÁˆL‚”´8 ¬Î‚¶Æƒžh_ƒÞ˜nÉó5GNWñÑwîX¹ö‰íŸÏÊ+ÖtZN¹ÈE"½õ:YD *Ö›²¬¹#uˆ tþÄG»lÙ#hûИ¿ƒµ%Á¤Í<"ic͉õ7ᄞ¶»£ým"„ ’pq–M䨓 zןüŸÃÃçìΟiX!,~‘¿_ü~rŽîèz-ì>0t:#%”‹N3P”!Ï%X_û¢©®?Ì©8QÝòüö³¤Õ # ¨”ÁàdQâZ^P%ÜÄI!$ð,ðÃq½$ 0óTäÄÁÌà <›T$`”`lU;’ K|Š)‹‰Ùûü´ÿÇö¯;†WLWÀ ž ÏBvO!'õe„YL 8ÐÀ˜86) ˆ 0D‚ ð)h[D¨8“"‘ȘºØÅ|y2œPL°ÓO BŠêê`Ê$¨uéÔô &²aó7ˆÉ²8†aZš¸"\ :vut˜i"#3˜i]@ƒ]öQM<ðó×ÃÀäD,77'µDÿ¿ïÔÀ-¢ñ\÷Pæçp!B~"ÈsåÂý_| âX6ÖÓÈv \zë¿€KîÈ]D0|4 xmn$Ë—*2m¸ŒÂÛ¡1Á÷8»«¢ê èiKÆÚE>^kv@ÉmЂPê}—¢½R@p^ÚQOíçLZ[ýHë‡?mÛU»”ª(ˆL%A(õ:_E+|0Ŧó¶5Õ& î4×H€ˆÆjàH5ø¢3¡äÀ°àRKØ7µ Æ¥±Å.{Fƺ¥ñ%æ›Ø¦^".¢¤ÆFuRóǸ¨ï¹-£’1#¯œÐ›-tÅWŒ¢ õx<$®h*ùå0ÈI";?Œ×ÝéÅ䦖—ã%¥BQ¹.Ú@)ʯý€õz»%>†ã—˜\"Ó¦-ˆŠÝ™m¶š Ò@¼¿P³/•Œþœ7f&’£ÀBA¸ˆH½Ä ¢X¥ò¥‚!Q $¸þå{ÛI]ʬƒ¿Éà¬,qø1ÉÀõÿ²kźMAô¼¾Kα'ö9 Ø Q…Ž‚€Â ¢âC¨@ü¢Œ ¢ 1)hB¢ÀvbÎŽÛñïfÎ7¾¬V‘Ž%«ñìÌììÞÜîì̀Π€¸²I¶ŽQ„–Å@­”ôL gÛ™îw;*8u ëÎRž&.²ìm¬…`2[AÖtÞÆFÐLéÐíùÝ«¹Þý;%$ÚýÌ8ˆ^÷r!,­œ5¾½z{YÞ(Wo9¹Yh¬:GáÆTïÂi£äšCœ¢çn‰SñWl}ÛHô3ps’jømšÙÕï÷âØåÆÝãÓ>Nþ¶¡d–¢"BXkºWŒ R2cÍ¿.`4§ÊÂBÞBþbFZvé 2‹½_[k£k›îꊃ¸utòùëÏŽ?ô6ko‡>„Q¹ÜqCFtAâADDw/ ìJæj:ÆDR[±*äPÜ—÷¯m\æq5ß½yt/xøøI»ÝáŒöVÓ.]½‹ð1 6M(wiÛ×ÉâÎieœøa,~ñ%÷Ï+¿|þìÅžZss6q¨ä†g¥¼¥p t—–]W´Ïá.Â<1ÒŒóë‹L! ÝàÌ6¯è×m Š™g&¤€¨õ‡W|.j9DÒ´”ë†I×Å‚ü‡Ùç¨, ~³k/mDA×ÄèA‘˜C*½¦k/zH­ˆÒsA¼ì©`›Øö`Bìÿ  í¡Å“E±P’ô fErSÉ¡›¥/mHkiŒ_Þô‚÷Íû6³yûv/ÃÌ73NTªp`°Ž ll@ÝQW(bÜoÀ?t”uR«Á±5ÿÏMt…E“HÙétîÉé©ÇKÑðóùgŸq¸„aì)в /‹²"»ÝnUuÒ- ;lúj+ÀaþÀ`R·nqáp8ÎÏÏ´¡ûÁÐKÓÌ ‚P(„6«æ© #N'wwzzû<ž{ˆ1M–†S«]ªVó?l”ÊfN¹yûfUj¯É|Yÿƒ’͉xLQUVa–- ×.µÉ¨ÆGð0òÎÇí-]÷ùu_,öI’$8 d´(ŠÇG‡†‘ÄÁެù•ot—½âY…'£[¢ "Nµ=D^‡#Q¯w}L:e{›4MóûƒË+k“~_\@ÿb‰¾§qàÑ¥ ­» ¶È*m¸QŽááQ”žÎÍt_*u€>}´ñàR—…–üüƒÑ1œ†s`Î1‹ÆJèÅ+BÈb$ÚÙÕõdf6{r‚ÔÝíFmô —º®²,wtt¢§Âú³¨•\.nQ?£Ã" ÂÀà`ÿ](ߪZ5ñdÔR'´€kö®.6Šª Ï9sfØv)´¥eÛ"ª4­Š€”€Q¼2\Pˆñ¢7ê•ß•MzÁ…ÜšHBj¸€+.ŒAü#`ð'-E ´Òâ×RhÙ.KÙÝÎÎlwÆçÌ;;Á]wW›É¿­ggo/\è¯ ]BºÐìnÐ# Š&<™LLMMgÒ—G†o«EÛ:%o9ÕFÓÅóy?»bº ŽyŶVüzµ£­Í´rœ‡t©Yðe&c$“IÎ[%O˜™¡éš ¨ÁHÐÊeSåRPæÍ´m¦Í”“3Ô¼¡ä¤±Å,Ê*Lz%¡Õ!t Ü`¬E¹Úð µÅÖbã]•*1nÚNù†a8ãæ¢2,R¼JÈÑ´AW›~£"cJ^Êí \uÔ!ÚÛÛ×¶¶€`x EJ9‘IgŽ+î%¥ÐS¶/$ÚÐÚÐÛ½M#km,¶º^‡6‰“· £^ů+²Zú[^âY/TS„  /çE'#Å¥ ” –=*¢uÑ;keá"hi8øÊ¶¿›Jì~bý— ×g連W×IU3§iªËI…ÿyÔ`E#£î2–:kŽl鯺’'0%µ™¼›Jjl:¸ên….^ŸÙÙ³n|:a¹:#[=ÝÕºœßÚÙ6Ÿc^Ú¾éÄW#/nÛVN% >ç1“ùáÑî að%@ú’•޾_™˜]0­g»:æ3ÙÖÆº½½›gï¦!ÄÕ·«ûÚd¼³£©¡^ok^ «_¡MÇçIÚô/dÿ „é*#W;/9åûáûv÷@¼TåR äú͹[ñ{s÷x2½oWwzÁünxbKg ‡´ÄýÌê• •.F^OÐz¤íª,ïh*G¢9挛wîíx|ÃL"5=7è™l®¡NO&–§±Æo‡Æwô¬ŸœI )I²ô€ÁG葦g³ õs&Tvñ·i¡Ê,“³opÎ&@–ôžíœóË3*g§Ó„ŠN¿2:wW¢‹gêtqæ§ÑºˆNxÆ– KÀÒ…à²EÒ¥ÀI*©éÓÅorÅIeŒ“§‡œ‚v¾P98¤©<ÐÍ`d´ñ ÈÔÔØhf[v—Œ ºÊQd%H!JNF0F;¢K™‹ÉçcK[ä‚ã@M¾J¨0~é‡ =Ï@TC”Œ,ëE'#e Ð¥~u*Kï)§YÚ¿TgQO™ïVæ›WôH9oþ÷™ ó¾ê—o¤{„Š.¸àЦ2”T§þ"SUuèôÉóŸƒ5š8Q1§pUl‡‘zUfpÆq¶`6³le9,ç°Ä|ú¹/þß¡¯?ûIJL+NNW½ßutº1V,¸3 ½ª±©‰@7þëÿň’9câîÌk¯¿‰ÿs:üñѽ}û!÷ëFLùÿI'¹²¦¹+Ð~€p«k™ææ®îArž´Ÿ–….¦iܺŠtëƒo¿“Jß¿pîìÀÀwAL¦[W5µXVN6ƒ‰.`€¦‰XÇzŸËA˲T¡Ùìÿ''÷x+•6Ž?ÑßßO ³( ùoR¬<¸t éB$ÈY¦Ïe¢ Z˜]2†?ì{µïøààûï½ûÑ‘#BU•(Ç-XÉ(!]þ`ïüUÔˆÂ(ž¸aw3F£‹4"ˆ‚‚VZ¬ÓØGl´P,¬dÒˆXŒ6V³y ‚¶‚•¾€àˆ…ÂFvÙ?ùcrØIî&Ù-¶qæçW Ü™ Z||÷|÷Îùæ1H{  ‘E®+ªª^n· …ÏççmÃh·Û¸ƒ§˜)u¬ÐÅhg{0a yëõ& íô4™LN§Óáp¸»ç·7A.ØlÌ! H2ª¢ µÇã Ÿz½t:‰D ­H’ÚÒ0¶­”WT½¨–ËåG]Çp4år¹jµFÑáÌš&_«î»ØŽåŸE œ™æd2 ­V«\.ëº^¯×}>\-4ÌʉˑpQ%•J¡ë®išÍfs±X„B¡`0ˆ%ÉjŸI—5¥îÃO n4†aÄãñb±‡çóy­V›Íf«Õ ó`·”žám !ÌØèŒ²^¯;Îx<ŽÅbÈ:ý~w˜,Ô.Ž (¢g ŒÙù|¾Ûí¢=":–m6îµP»< ™¦R©d³ÙL&£irŒœ…4±µ2zìAn:–J%«I¢ÛíþÇN¸« þÖ³ˆl·øý~\%Ö¹t88]ú¯ë„jÂCÂBZ#Âʈð}B(u ¥.¡v!Ô.„…4¡Ô%”ºŽk—/ iBl Bã¡v!„•av!¬Œ¥.¡Ô%\Œ„ëçûÐAã™^!ÌÜŸI|XÄÕºƒ¿'žîâúÅÞ½…VuDa¶÷ÚØ‹¶¦-SФՖŠŠØF‘V}ëCjC –&¶UbmÓ”DrÑ¢" ¶Š¨Õ"JÅ;Z/(äf‰$$QkÕ6Fm5½¨í‡Ã¢ôí¬‡aΚµf&Yÿ¬YûÀù÷­ÒÆ,NýoŠ}B(Ä×Ùëkƒ½~PrA¡ %2º¸Dì'NEô£>JÔøý=Ê ¿¼×ai“\‚ïÿÁh—–ø>´ž/#-âIY¶lÙÔ©S§OŸ¾zõjA'%æ-6¹ÀŸ€3¡oß¾†¼oøêÕ«ZÄO )iìL¨OÏËÌQÉŒ»_DsùIŸ™>{ !™Ö¢Œ%£ sæÌÙ½{÷Ñ£G¥™À”ÉØŠlìó.)ÊÒ’Œûÿ-¿wž¥K—677Ï›7oöìÙ/^|xË–-(}ø Þ¦M›è…|Û¶m¥¥¥ôØ 6n܈wCzfçÏŸß¾}ûÖ­[¯\¹1”Ú³g϶´´|cc#K‘Þµk3«³çÚ .  ‚tßeee :ø§<R'NœÀƒÀLÖ Éæ.%-‰¤L}úô¹~ýZÏÙEž›C‡ÍŸ??;;ÁÖ8á;v,¬[·N»wïÞÅ‹CF}}=ÄÔÔÔìܹ³µµ·Ï† Ö¬YsäÈ‘E‹uvvбã~úôiÉ`ÇŽØÅ AD%œ¨………û÷ï—-Lm›7oÖ¢5„H£0:yòäöööµk×îÛ·>lìøñãö %+V¬ð| ¬ÔÖÖš¿²²òäÉ“2VÈUw,i‰ÜÊÂ÷ϵ ½{»zª]´ÝÝÝδ`ˆ·*œƒN6òÁS§N1X¿~½Ö„!I455Íš5k̘1ú2Hë°Á®®.ö{ö쉫X3*P>ÙØÊ•+]gɪU«èeøëׯ@ÛèÑ£Ï;7hРñãÇOš4‰^à\ôÀ-3S€cšÀá.뇧Z€œÕŒŒG$˜žŒØ©œQ10`Ð8Ó‚••HÂðSšBþpw¸JJJJÄÛ;KîBtsEEE2þ0ö–w©M˜0aÆŒ¢›Hú-ꡲ¡TPTTTÈ+Ö2›ðÛÆåË—½]ßäÊ.DýXY^^JD›9r¤‚ÆT‘®ìö%-‰tëªXÉÏÏÏìß‘ òÀ9ì.êGQTäVUUyâ¸êêjx£Ó¦Msú]Ë—/W4Ð+„ix¬ºº:sC¹ž–,Yb «Z^‘j àB2g@ÄLœ8‘—™Ýe¨¹¡Æ—.ÄÈߊ¡€K‰”]Xî#»ånEÙÈ]žÑî,i¬8Š œ^H(,,¸ùÿÌðÄyn¢¨R8p "T¼‡êqZÂpïàxÂ?¨ª0:lØ08pô]RâíLË"FsssáfÈ!²TÈi`'¡ÑŒ5JÝM¦š2eŠx‡/ÉLF1عq$ @?Ƭ¼¼<333@ŠA¦i›t9Úíܹs17«l5''dÙ8i¬Üю舸°zÄÑ.\¸ðâb±Ëx~Äݽ^xî‰W߬yæµÏ+¾\ÀÁé0¢t¢|¡!¥ŒÚB€Ù)¥ÖbÉØ¨!Æ>†oùäöDF¡1ƒGJŽŒA¨Žµ¼h¸0cÃåÒ¥Kæ ÛЧ ^”Jt(³ +‚fÈ^a3]·^A?†Nj›h–<ªM=[ŠÉ“õä6ãZ) ‚¤p_'\½ÆV,fΜYYUýuíWOå.€“^9Ù¿òFõÓ#>+/+1¬œäÜ„A,IÐèP†1ª¯ \‚q¢#eô –q~;qæhGõ½tâ(ûä­&®’,Á&ŽÆ¾6µM4KÕ¦ž-ÅäÉzr›Žq­Q“Ú]Î?¬(ÿkïêY†¢h£‰Æ4ÕFADÁAÚ’:(¥¸uUñˆKD¬“¶ü€ÖÁ ˆºøCÜDqpÑaÑVâ7ÔSÕ ¹<èà”Þáq˽ïpS.7ïœ@‚)N§1¼!Ð-ÌÍ ¤ví©ý¿vÙÙÎW«_.Ð1˜1¿+ûF£l¦XiëÀ8(ŠÆB Fiˆ¯\’CÓøë’£ñàÔxdùFR9“ÀVÎ ½‚éz‹ÁàpG ˜¥åL<6™<ŒMìAwŸu ˜ÁN¥–Ϭi8‚£@%1ÍP¾°‰F]×]]Û°í8.™ìJ"‘Ìesتª‰w!ŒŽ¶‹óc¥¥õù©"Dôúüu(‚Š¢I:6%ø|å’Z*{]r4œ‹,ßHÿm&©œÙ:’vÁ œyq~Vh§¸A>;92Œ€«S Œ¾T¥xõúö!´<ÿ´K³]°ŠŽ9y×ÁZwL¨s¥RÙ ¶‡û“/·§ ZéºØS~ïÕõšZ/}Õ.ÍéR§Ð5j©i*ë€ÔZúýzˆóLádÎIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qstatustipevent-widget.png0000644000076500000240000002231112536324503024176 0ustar philstaff00000000000000‰PNG  IHDRºm™Wì1$IDATx^ìZ xUÕµ>gŸážsç›næ’@ D†€ *`AjŸT«¢T««ÏÖVëSûa[Û>ë8ÔÖ©µZ?ê,‚Š¢„„ä’ñÎã÷ykŸ“H°ß÷ú}ï}íÉͽkŸ½öÚk¯õïµÖèH$¢išMÝ.ç…˼}«ÛãÁ†AÓ4|SÄ MÊ<†6‡qòåNX½ÃE •FtXl§ì­k4ÍOÂ3TÕ×uri£<†I>õÀ¡ÖÁ"†»ã”š#„ñø¼ _Ýò~"™’¥,ÝÝÝí÷çìÚ¹óþß?,ûÏÌRNdè0èäpù7\€Ï M ¬äËèïÿà2èr‡GvÿP6õÓîe)0„~hòg'ºa40\ $bE*e ïøÑM7Ìž3‡N¥Òu{÷¬ÿÙstáÊU«Î((ò«²)ËKÔ1Õ²a"Ò@”¹¾éè=ªN«ææbÍ1¢(l¢†œ¢‡ybTáýèã9ƒFÐQ72Ö U#½K#Æâ^”iE%œúƒÅ2Ã’¡fï ¾ š[ˆ< o~ýS£sóã÷^AúV¯þîAúÒÞ°"Ô}Þ®+*¬ŸÇ ~ªÍÁ`Q2æÊþEábqÁo¾SÊ÷¨šDFïŠÑ Ù&ŠÃ`L[žü¦ÑÔÞÑ¡( FŒ.c»Ý]\T@\ØÕJÆB'䔳³¬­´¤Èá@·ŽåzB¡h¤„ŒœŒ ‰Ø’¢›ËÉu=øÈ“¿Ò«/\ÚÏš²ðª7¯ v¾¹îŒ/Ÿ+šYìŒ~T¾œÎ+¡H´ah€+B ÅœµåÈÓzáml* çÿ/À~á‹¡iŒ 4¢­Î"\Eàâa¢Þ…Õ¤Kd ƸSš°»…¢…\›Í† bÈŸ„O†a[ÛŽ†C19ºŽGÔ !º§7RZZɲ\KË¡¼@Îhµ Ã0¡pÔåÎ_1^×õáqbñø‘#ý9. ‡_ñ$#NªªF4‰Iõ[Ÿ¦ósØœY¿¬«êØÉów¾ñ E£Š©KT…l;]Ó2Y™cuƒaa4²Æg2Zÿ'­¦³X‹F[}ÕÏÌÙňJ%—~òPZ£þVù=(Òi RF6­f²º5D–´ž°¼°ÖçÔכּ÷wO}¸áW¼µ½éâ¥Z¼Å)бDº­£oóÖÃ+®}º±%ºdN1(ÿ‹+Vα]½Ä¾a•çºånœh=û44YvVy®­÷ŽËKPªQM¿sÍXAi‘ãíw¯-¿l>sé<úâ¹(ÑÓø§×›ÝÔŠ©š7Þ÷R\q=qײÚJg¸/t÷Ú²»¯,^³ÿíõ•ßš$…º[Al[{סæ®`Ÿòáž®HŠûþ«ÏDÁ–ƒ3+ùŸ^˜V»õâü‹çRÿyQi=gšðÛë'\·Ìu×U%ç×Òy|gY>Ÿðϯq·6ÌfõPDN&ÕÞˆš–XüPKèÀ‘¤×cÁ0`£+áÚÓ$M(²wï”L+ú“ÖT\ƒÉG‡oÈ)*$> à«K×1$Y†9 h*ŠÊ ®Yçm˜yî 3–\7wås‹'ÉÙŒ®S$µ©'›Z’ts"CÊJþ¢I3Ͻ¾yï»ï=w+¸fžwƒA±ª“’Y²-mé.ãP¨‡ÒR$^šÕ ÀNæìG‘½Môת.p¦ŸAã:’’3ÓC}½çXÔʼ%]-Ǻ'Ϲ(šu}z0qÏYåmGÖÞúÇ·¬ø›Ÿ®>wÆúšu-®ôpÉ;7>”;aY*Þ½pº³¾)Þ’žyCºvyNy àŸ‘%饿ï“Ùâ„oî°t_w;/:u|Ê›³ÐOs´b`òmÄp´uÁbò:KSH†Æ0Úï7k/’ŸÒ‰0ƺ‡ l+ªª&ûº:ñ’‡& k ŸÛ4t¬Ê²/o<Ë‹m>¨œ¾ŒåŠ”&¬€ÆÂ½ˆa(ÆBYb* :è4©0ýKÝhÖÃñ …X³"&“áÄk¶ý^¶¹^™÷£ÒÞ†)ïÕϰû‘9%O± fOwu¿>¯ã­Oެ˜7ï±_®ùÃ`õ¤â«¿=á¾ÿâó:Ÿº÷ê]û‚­í]6FfY¾ýX³®dìvçµk.øÞª9Wßr?bøË.œÇ0ˆâyváò³¿lJq΂évO²¢U–ù'W>³iÇyó«×^²äÉ¿n«†m®±0Š!â8Öª‚Y“¸ôÒ•ü˜ê W.ÜõeC,–dzö¬i2(©‚åÖ·J­=ÊÎý]¿¸íª/öÞùEcck¯Óμ¼ùƒ’Ò² TÚ.Ï2(œË“ƒÀ:vlZ3¹üìy3Â4%kÌÆg›K½‰µµçÕ¢¦öXZRÆû9Ž£íÝûÂ]¶h,Æ °baãܦCJÚÿ!†?ùüµX÷ÄpÄKº[[}æ”u[ƒ€“eFq ;žGæÝYøÎ$C +B"30/²À<¼vN¬Ò Äœ‘6n§¾ú¬+xÑ]=oMkÝ›¾üI¢+WWv˜[èª$™u;‡2ÓS°²¢þ¥šÔ±gßm§õîšçg¯ûÑžGk¸Ôµ Ï>0sæDd`§ýëwŠÌÖØ¯žÜ~óš¹ç/ªµ‹ÂžÙô«G^­œ|F8^9/àt–Ô¯nùðñ?¿WZQóÅþc«WÌ{oÛί:ÿHkg*ñ¸…úŽØ–m‡×_qÞúÛŸ~nÓÇ×_yÁ¾ƒ-™LcÝ!²ËæW\´° cüÀc©«Ûç)[ °L"%'Sž#뉧TYQžͼ.áæ+ç2J÷=¿ý³L;bÉìūιh,•¸ïŠÛ^ ª¶Oöõ.›W¾ý“Ýñ¬þðKû²Öþì£wI’t×CoÅSR,A±¥2J8šr»ì/¾YWS±è–uKïxdmwç÷Ţϼ۳ù£`U‰½¦2W°q»¿<ÔÚÑWw$"cáöu³ßÙqÔãÃÐVŒ O “B1HÌ?s5@c —ayÈ3ˆ\~êæ-šD’Œô’ê¥Ùd_?'Æþâé¬Í­©*ŒÂºac˜QJ]$S$r`2iÖ_<-¿b.6P&óæM¬YPl–Þ*Ì,€Ÿ‚L<¡ÌÏM¼5§rÔ. ïœÔµï¦x²æÊ/ògÚÕ4@(ƒ„K[^½þÌL}¾ô;–±‰Û‡h”ˆuI¡C7^:ûªÕ‹î{à™ÃÇÕcñ1±DJK£”„Y·QÞ¼rÑ7VJôd#-ªv§Ši+,ow&ƒ ²} ˆiÖ‰•¨œIXµÙÝŽ1“TC´"“¢î@¹'¯Š<™hG²·Ñæð»ó'§BÍÉH{^ñ„Ï]uõw¾ðÆ®ü’ +äÖ¨R"ÑÓ@é*b0±Í™ï)šB!.Òþ¥œìôL|ãRá69Ö œ¬èw¸re)Æ ^ÑS˜êkbX›à+KöµºÙøÔ)“êÛYÁgƒÔeàL:™I†ÕLTSÒÄeH`Eß­—M ‡z¹>¯t+x ã›\¡XwGqa¡µÁ[ !5I‘DÓŽBw®ÇiE¬ë±ˆå8Í€e0ˆi=bÓIÃàÂr±P·Gäݯ¦)4baPÄš š”9%Ïó¢/À²,Ô.‘æíôø±9—¼êÅ´–TaqÑà­{þûã‰Ë6—.u*iŒm_•oR?]P¨ÇÛ:—}8îQËbŠz_œF”,eÓ¡c/*þî²ÚÝu-÷¿pó” U΀,•·#PNWU%cæå~SÂI†BŠœy cÓtVnENÜ »ANX!À Î&ÖÑ]“- Rn§øöý‹oþùï_x¯mbí9Á XWa,Æš…p†³±¼:t5 p4Àp :IiCWËÓˆƒ‰ÃbIÎ&8Ó‰ÄôraB±øÖžx;m6 ,a²ÕÁ•˜õŠEþ\1q×#ï#1ßO›iâ”pèØÙÖæØÜ1c@˜Ù<ô‡ˆ$ñÀ똱bz6UTTh]¢ýùiÑH$’Ì•#<#À……ÃÙx¤¤¸høëÓ¥Ó©îÞHAÙ8ð À¥§áý~¸MYÑ#V”“~)ô–!]¬ÈLuE,ûŠR5+÷Ø ÖŸªÛ"Ý­Fê˜*§`׺PrÛ ,ž0aó‘‚Ïàuë~>Æýêšâ€Bf?ùÃàwóp’©00aA˜Éô¡½T°µi¿a/Ë)ž±DY‡EóW› ±ÖpÒƒˆ³Iº@/S,=äYL2™˜Q¦Í®r}Þ”nêa3*«j$6ˆ6f\¿b–]J†~÷ô¶¤æÈ-©am®ò£ªh݃M“Œüƒn°¥%༮ö e˜×ºäŠË„ªFŠŠ;ñh/0 ž`—&§fPÈ ›¹lEž¼—lj±ñþxý»V2úqÉô¥HO‚Œq6M@5ˆ²ò%¦‘JÖB2[è½mƒ²Ü:ðN†œMëšÄÂ>æD+®Z D$ñ¸å:Â>°?† ¢L“ ´-c|Mô|4 €xÿ# #, N/Ç;ˆ‚CÆZh³$X@1'°N[Z˜¨¯ÖM(K s¥fÒM&bùbòÜY9‘¥h“íîw9víóým¯½¿Ÿ¶ùüE91‡H0 òÍÞrB@€cNò¾ BÌÀeŽÉIˆŸH#„¬»ØÃÃÆ€|‹èуk7é˜quì}§¿v©DÈmþÙ/0 >æDŒAõ‡ÿÅ'ÒƒQš¦3™d<ÜYèVÆ—ÃÕÍ:ÚNȹbgn)$»oþRœ1xKŒ<²U-ž!]‡ ‡”F›Î¢F·Ã Vs<Ï ÎæO7³”¡!V¬ûè½õKñ5×m…È] úßoÓ”ÇdÙŒ$ËŠN|ŒX–8†ãYŠæúñÿÿåK84MËÍõÿá±¹‘59P& -ÇA1ŠÁ²V&x’:BÓ<†6‡sòåNX½ÃE •6âa±ýã½V×hšŸŒgHI@^§U^Yyl~[%Ò0i£ ®˜ÕõZ{´!£ bT;¨ªáqP‚É$Xè#pùö­žÇ¸(ß½Ë.ñ‰H(ü ŽD¥¡‰( µÊ?Ћ(D!Q¨t´$ µB£# ÙD6‘›û²Oîìž°âêyrs2æ…äÉÌ3pR™„+– PT݉.¼«KaúôÿÏÏ!•CЦÑåp8: Á•B«`>ßøQ´S½zžé-ly~¬àÆÕ,D1*Ù…SøÅ)üòqÍ U¹ß%aº{°!i ˜Øƒ&•V‰i=*ªAdC}:Â&*8ÎÁ`‡‹Åb:îõzÊðØíö|> ‹Õju»Ý6› —©Ö—ŒkV”Û nÏr¹ŒÅb•Jh³ÙŒF8N¼],0&“ Ø"‘Èn·“;Æ0ô´ yh|@CViªÕ*“Åb™N§Fv»ÝFàq8ˆ='yÁÚE/‘$èt:…B!—Ëu»]°ª~ãñx8bEa6›FpÊ8Ý.ëõ:•JÕëõV«•H$°€"†œ0¢Ñh¹\î÷û™LyŠÔñã‚£ ÎóïPcçjµŠÇã/Ùl²w4™L&ºÿˆ`© Q‚€‘L&Á.ûýÞï÷×jµÍfÓl6Q•J¥ù|Ž›>Ÿï¡¥.K] $(•].E´XŒF£ÇãÁ.×ëʼnè …‚Á ®‰$u’œŒt iú+«1J8j€HCòe»ÝÞCȆ^WWÄH'ùÅ«ÇwuõÁàBšæˆ—`0è/)…4„Q" ¿Ù¹{A £‚‚Õvj‚÷?˜Är/à߈nb<ü3|™å‹UÔ6xûÑÄ«j)kÎy1DèU¨* ¹;q¯û•%ÄðGCoÛ<ê¹Õ‘iRJ³!B¨BDPH_^ì_HSaÆ-û+Q FXBg‘&n^y‚Ca(äðZcÌ ƒ©#½4ðB&ØU·órB—ÞÌÛnB‹e`ei´³üâsg G,!ô÷»8œìpxá}Þ÷ýÎ÷ É 5®S)B¼•QCuvñåq´é€6]CéÚŽÔà? \€Êø 6À— Ðw@êá„ .À̘ÐÕú.€Ô¤.03ãeß©®˜Ÿh—*€õª½Ã ÚL¬ÈbTÎ…:±9ÝãNF¸€uüÑ^²¹\.‹•‡ËQƒÔE noo§Ói9›+Ö<á¤íMW? ­@‰„àñØXf~^þh—£@ðÊ`½¯¯ïAwwj|ÜìóXiŽea@--£ùk<ŠFƒÊJ®ŒÆ(/¶)¤ÿ%×ý^,¾Ý؈ Ürœé©)EŒMü^åK2¢û²¿ÿqkË-•Þ ápøÛîn2™TÝT‘•N{e6Š¥’œãn47ßliy2=­ô$ý»³³ãõd½ èU66þtÝë~ÿÖÖÛŽóbiIî=>Ÿ¯P((\ÊÜT‘ºxrHêîíÝmo³¶&KŸ|>/£T*ÕÛÛë÷ûe±qrGê”wä´œžœ\YY ƒª’d«ÑÕÕ%— +YN»vÓ½•?ÏÓ™™››Ñ¡!y*V———ånjçÕ:žvíJ4jÿ«A'[Êx<‰DfggGGGej*kSG y iP. vvvÊæ) 9޳ºº:<<<77§`RªBê 8\ ¥9‘았d²-…»¸¸(¿dm’¾¾¾îº®ncè|uÆ]AÎÛÒ.™LfddDþ ºÈâËJX|©ŸFÍhÄØßߟÍf{zzÚÚÚdpøn™±øÒf%›tššš€\*eÄmïH]`+•ƒ¤fI¦¥[]êÒw¡#¬ýºNDù 'M»P•PRHF@22…Ÿæ¨jMêhV´kHfµ W]yzLðÙî…N̳Uýw«Ëô´öþácÀÙßìÝ{hÕep³«ž.Ks]˜–—šPm¨.™hÿh ¢ˆø‡¢‰`j‰— —.·HSL¦Îo h¦i‚%ÞCMilóš]Í,µ>ôÀÑq§‰ÿžç—÷}Ÿç}Þ±ç{¾ïó;ïsÎI§Œ°ÜÜÜh]ž¹6ž¸YÕšq 1Œ%¡rÍ–¨¢¥H†aLB•.É’è‡OEvÔ‰í¼O ÉîÉ|²‹Š$75w~¼f%8àf{‡‘ôµkצL™2iÒ¤1cÆŒ5JÍiuuµxtïÞ"±;vœ={Ö‡ÈC9j*• ˆPmÛ¶íÂ… ÿQ…sQô³Z*ø3 `!û¸XaÌ@'f ''§©©i×®]\±‡à¹sç^¾|™'v4[³doS%mçÎó6¼á^g!->è|Wç[ßHƒ…8©î™9sfKKKIIÉàÁƒUúœ8qbË–-ª7Ħ[·nlDúøñã6lPÛ¡lŒ;Ç„p†êرcTûöí>žÍœ9sÆÐ¼k}€³—ŽByÈ>Ÿ ;uêÕùóç/]º¤cÈ!¤ ¼Øìܹ“CöÛ·o?xð`kk+dPmÚ´É^Du’>Ü'tu»’• öh±À×oÍ.Ú~ýú¹Jõzíß¿?pÈ`Ö¯_¼¼=¸š÷Š?|øð‚  £D°ÀÂ… EZðjjj„V¢ }>1ü-Y²dÞ¼y‹þ•µk×â-u!(§²²RÍbðAmmíŋ͟?¿¹¹yÅŠ{öìY½zõÞ½{Íø®»råŠ%01{ö솆 á©Ô×׃ \ž[³f«ÿ¢¢¢uëÖõéÓ'j‹ÑrÂ2|Æ#ÛÔ©Så4Î8Z™MØc»Ðêw\²ÅZ€•éÓ§çöèQVV&/aÈ$8&Ö‹nÀÍ)ó¢rúôiõÌr § U ’%4Ht–/_îPˆGªÄ'8Ù„¥vàÀé¬p¢íÕ«—øtp†ÒW›:€äÝ ´täÈHÅy€‡ì;aÂ[¶l™¿Ç.¨|åUNCˆŒ¸ã’ÅŠ@àù«<¤¤ä-¹i×®)Ý.\"rÒ_q#NÖ›‘=G8å8VxŒ1bD¤è¤wïÞ„¨¦M›6|øp*â{ $CµÔ˜á$–#›¶Öùb›Â“@M¡«äiåÊ•Ð6hÐ iV©eÌÏÏ—9© ;v¬l`|&b𓃌f# ±‡ @V+ÈX„©´´T+Üo¿Sî0J=.7:å?“SøzÝ/¿Wû~¥8“ù©ì>|&ÏP'™1f'U¼ç-’%(„ŠDÆÀÞd¢Ò è°§¾ñãÇã'G[˜*!çœØÈ¼/ÛÑ‘ 9ñ,Ñž5k–Ôp±ˆílÄ!­å¼é|·‰0i;ŒNf›Ä,]«Íì-ƒóôyÒÁ…É^ B2,'Iøtâ£Ý2òÂûpÑâÆ†úÇ^ª„“NÏ=ýHÁk‹/ªª©®ˆÇ×X­'”ôŽVä ‰U2̬2Œù˜4Naì0HÚ¶N’™ðnõ­…ªnÛí¨´¤írm"†!m‡ÑÉl“˜¥kµ™½epž>O:¸0Ù+ƒAÈÿ.×Õ?ì[ÍjÂ@Ö& ¶ ^ªÉIÁC‰½ñÖk[ú½)ÁàE“þ@ìAD zé£ô.ø(ÒíI‚úÁ YYÌÅS¿Ã2;™6›™Ùa– òá+(F“–eá@@Ð×k/™û©þ4;ºËdìùþG<9†Ž'§hVžÊ°Âh¦¡pÍ> 0)(Ÿè²êìÚX œ•sd¨ØÉ÷â[ãgùÀ™Šœ­ p4û!à+(MÓ„‹ q À ¦Ù²‹…œöø^xx#ýVT7éF„hêRÀÝE!· a‰®ªª”“ ÍÇNJ’ì ^µ|­ŠN·¯ëEtÈl§me×q‘§E1F~‰\'âËÅGôJøû=´sí*AÐgŒ’& bmi¡…m>D¬DÄV{?Ê^´6úLª¾ Ç‘…ëd‹e[6aI˜9¸PI[ô˜/áatÉžbx ²¼­–ã¦aeiê[ç Újìs%W‹/NŒUþ½‘¾màó¬RÒAM ºBgžMF@Dðr]·×íl×+Ãp°YØuaõ—FË ½ýõöP|8=ã’ ¼šð\pRpx˜Pç|?0«e«=¸œ6£tðÁ½)etétªÆ%ûºh ­Ž ±D~[ž?Nêò™‚&ä,IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qstyle-comboboxes.png0000644000076500000240000004575512536324502023131 0ustar philstaff00000000000000‰PNG  IHDR ”LH›W pHYs ‰ ‰7ÉË­ IDATxœìy\TUûÀ¿3æ¢ à–¨(¦i´àò¶™¡T"íY¶Øî®e¹DjÚ¢eŠ´X¦–/½å¯²òÕ´µ\hñmÏ,³PÁI-ÍaæÞßÃï w`çûùœÏÜ{–ç<çÎ=sžyιçšTUUAA„jÂ\Ó ‚ ‚ õ 1@AA„jE PAA¡ZTAA¨VÄAAª1@AA„jE PAA¡Z ò•!??Ÿï¿ÿž~ø¡:ô„3ž=zгgO"##«¼®§Þø´Êë„ÚÈS\PyG ¨6›ÍåÜn·³dÉŽ=ŠÅbp~ ™ģn)=RJƒ —ÆÂ±Ú2(BJóØ ÑѺwoJÿþ¹óΛ«í>÷i€j¨ªâ;“ Ô*s?‹D*Ïc&"š8Lq‰‚]5¡ÚUÅa`ÚPT»bÂn‡â…ÜݧªÌÕc³ÙxóÍ7i×®7Üp-[¶Äd2Uy½‚P.î½—Ö­š‚ Šªb2™PK?1©˜pœ£šÀDé½ìÇTEåT‘ö°lÙL›ö&S¦ÜCpp°÷J€_¨ªª2è uŠÊÜÏuª/X3Ió²WÓºT–ºÔ–zÀ©"§B‚Qì v»ÃÈ´)&gÿ²ÙÅ„];L–ÓF`aa!&“Éiê?Ž}M/9†CEQX¹r%M›6%99™† R\\ìR‡ œIü‘o£¤Q ª å¾EM ÚLMÃH¾¦;icvÓ¶íZ†½ÆÙgÝ×4Êá-ß Û6¶»öüS®2õ ¹>5K P÷);£Î©ÿ¬îÆ•5“ÔK—Åà8€lÒÌY¤æu&½¦°ì4Ì}a½’NnºuÊjgÆ º<>ã²ÎQ\¢8=Ÿ6»ê42U»£*1aWN÷`æt¿Õ#ÚÀçôøhùM§ÙòôÁ¢¢"Ž;Æù矢(» ®‚p¦‘w¨†MÂ}Ÿ{væÐ²M‚‚tÞMÕ„‚Ê)›Â)µŽgÙ²- t’ððpG–*êk~/„ÓÐBÛØÎÐ¥sît;¹¹;\¼¥îe*ÚÆ¶ð+îLåÑ+P×GBùC ®=8 P÷`·Û±Ûí(Š‚¢(.ù+E\< «s°–žZ×-…ÈqFä²%¥3qqƒÉªi#-)õ2HÏ´:TËL‡õ¥†fÊBòJ¯²ú¦f:Û$Ô/Jì&l6°ÛÁ®˜xfÖ,TEuXš&Gœªª¼üÊLTUEQ]‡+­¹÷5O}Ý6›ââbŽ;FXXMš4Ál6»ÔQB1¹›6²)÷p=«»v†C Å*'NysŸņ¬e®ñÅ '‹UN•À~›‰¢6ø-¯1ÇŽ£¸¸›Í†¢¶¯iøe€zªÌºk/Ö]{ùrãw$œw>cÐAÞ“뮽5nÄTÖ° Ôõ‘Pµß“7%%%.Ao„ê;i`H"uÂr­Ž3kNii l9’‰³f’šš‰µô33ÍŒÙìiÙ¥¢¬™¤–Æ™õI}¼9l-N3­™¤jñXÉLu[3Su˜Kó&¥¯'aè(2³3µt£’Œš”ÊQ}Z wyV2G eõê¡t0›IÍÌ&3UײI3§’iu¢k‹[špFàxàȱmúÌ™<;;ãEfŽ9è3޳*},ÇeU^¡[}GX1},w Og[ae~c޳júp¦¯ØVC¿“…|Úçú|¼£žÕ][ƒ™b^Ãæo6°kÛ/|øú³•”I/±ƒÉ¤blÀ‰ÈHŽ?^å}­ÂP}\Ó¦MyhÌ#üþûï†é»výÉÐ!÷ѵKG:ulǽ÷ÜÉÁƒœé6¬ãê+“èØ¡-—]Ò“wßù?TU%®m+âÚ¶"®m+g~ýñ©S§˜0þºtî@nçóÚ‚W=æ5гÙlÌšù,Ý8§S{Æ<4’‚‚Ø_]óóóI¼ð\:ä,[RRL·Ä<èr}Ê«ƒ„Ê£û¹"2Ü Ï*õ€qaé:+`%—ÎÄ%¥’°tV ;+ƒ„ø8׫‡’“Zú/yý2Ò3±’MZ‡¡$¬/Ï[H €[|ÞÂ-ôMËvñ¼Z×-%adeXÉ¡3qÖLF M`}i{×'he£ÂоK0ÏØ#kÍL'#¥³kš¡¼8Ï[HJ©÷4kpƒÓ&áP²³È˜VºAkKiš‡ oKG‰§õL£¤tÚÝn71õ±‰Îø—_™IH°ÂܹéθQ>€Âéé=o!O}ÖAAA¡( ÁÁÁÎiE£òû¾z‹%KÞbþ'?»ÄÛö|Áý/¾EÖ’_8æºB§ÜœØ³„='JüÌmcóGoòßoöT®R!½ W¨ß«ô¼P~ÝWwý ¿XÁ¦B‘]¥X1†e žvä=¸— ËÿãŒ?eW)VÌœR ¨…™à¬†X,—>Ⱦ¦ôð¡C¼òò‹œÓ¥‹aúàîå¾û‡ðÿðÃO¿Ð±ãÙLŸö”3}ÜØ1<üÈx¶lÝÆûK–±yóϨªJžõ/ò¬‘gýËPöó³8tè _nü–¬ÕŸñ¿]Ò}éþêÜ—ùå—Í|òɾÿq3!Á!Ì|¿º6i҄믿‘·ß^ä,»qãW\xa"M£¢*¥ƒ„Êái Þ½sЏäŽ9wë:–Oqt&+Vr·L 5É­@ÊÂӞǸÎCÓšË}¼†[|\òR2²ÈÖy^­9 ¤ŽêÌ–¬lGþ„xâââI ƒ¾¥žÑ¤ôÓk:ãâÊ6¢Ô‹i6›é°tyî˼Ès!)• Ydã0¾'èoÍe ôÕ{y <­BÍ¢ª*ªrzZo¸4gZÆ §Ï‘¥¡šT츮ݮ ¯Œª:ô )û¤½^fˆÃßÀW|F^ÉéøßÖf•ænD›………”xб¤°ÂÂ]\#Ì?Èü;ºxÎ_¢+aÓìñ ß|ÈOù®ets4:ÈC}ž‚‘,ïºyüÎÔ²¿Ó……ÇýÔ£~… 0l˜Ál³©LØúýZöîÜê¼—×¾7‡¢Â`6a²XÀìXò‚)sp04 u¿jÔê©¢q­éךË{]ÄæŸæ…_vI׎W¯YÇÅ_Bhh(…3vÜ£|ùÅçÎôa Ø·o/ì§U«³˜ñ\º¡£¸+>dêOÓ´iÑÑ1L}òi—t_å?x1S§>M‹–-iذ>6‰UY+=^àòèzÿCXüîÛ””8:þšÕ«¸ñ¦•ÖABå‚§{Z»Ÿ‚‘ §àµü•&.ž„Œ,²­9$¤&q$€\k©720µ”­¶3äX³ÉÚÒ™¸¸dlÑëDº¢ (©dé§îÉ&­/¬_ŸÀP½÷Q¿Ôp­ª'yeó¥NÈ +;›¬ cã;Ï基Ÿ; Õ†]1aWO‡ ³‰‰sÉóˆÎ(UQ±évO ôº4­ÿ–””8 Pí·»ŒŒ¥Ÿ[_â³­ù¥'{øhüèÕU—ÁÆ7o'&&†ØØXZÆôæõ/wêälçõñ7Ò26–ØØ–ÄÄŒdk‘£‚¥ã{3~ñVg…KÇßÈø·Ö³ú•»ù[öæõ/^Å­‹Ç2~+0¹/111LYºÝQ,+¯Œìí”ß{ä+8Õv~ù:½cZ–êÃâ­'páÔ.V¿>²L}Fx’UV·¯yýîÞÜñ%§Ä6¾Ì¸›ÞSVSd$<ÿž¹1†ØØ8b[Æðz=½uSXPU3ªjÆ®” {öcög‡áÉrná’Ǧ˜É/²d1ܤ¡Ë˜VUk@+õü޼Ý^óiÇ?oú‰Y3ŸeËo[(øï‡´lÙʯ¶•W×!C‡óäÔÉœÕ:–î=zRÆ-¯Båñtm·çîâìø¶.çîyµs÷½ƒ‚‚\:¡ÖYù=Æu†Õ[0/N‘ABZœ—Rz’H_Ÿ…¹ƒ™¡@Ê„ ¥k@“HÏ[Hjsé´ÈÖ+I¥uÄÃjPZi\À»üöw1W´làó{­ÄDÓ$¼1*þ®6@u¼‰¬qh1Ó g?°X,´¯iTj#z Т¢"‚ƒ‚ eÏžÝdÌžå’>ö‘‡ýàÚµ‹+Ý”øôÚƒ&Mš—›Kû e_wý <3ý)fÎÊ@Uá™iO¹¤wéÒ……¯/`ða;v”g§?í’~ǃx|ÒcL}òibccÉËËcþ¼¹¼ðâˆm*¯® çÑ ACfÏšÁ¸ i†ž´òê To÷î¶Ò©c;¶íøÓë}ïiSÞ€îÿéFÜà,”Á.dé#â“Uº Mût')EqñËr’DºfŒjå“ôiŠ«}º&·4w>0’§U«à¢vö<†2 ÔƵÛ"œIh¨Å¬b/qôÕR:À UQÑ^Z¦(*fÅÕuÁuyÑž…þ`±X\6Óv=7c6Áq[$ÝR#Y»*ë+ðÄg¥,L˜Í,–|Ö¿ú,wL[]/ã²R ¡f æÐ&4mÚÐàÕ‡Ž:L&sišóq¸ìÆ‹h^šW±M5[°XTl&0™§,shЕŽ-OËt89Lf3–F Lûl>WäÚÕÏ@×á|´x2µ ó£>7u½Ê*«gõbþ-0rì'tØHÀĽ÷ÜÉþþáì³;1rÔƒÛV]2”iO?Aÿ24@Ë«ƒPy|]ÛœíVyÜ=Øúx÷õ0BÕ‘•Á„4E¼šµEQ°+vT“EQѼŸvµÔUTl¥ŸŠ¢bR]êS‡eª ŒÚ±ûÚ4½2ú],4ƒSó‚jÛ‚9°8 ¤…Fíú0±+L<Á÷‰¨[̀Ózüçw¹cÚ"^ûÚÊ€³ÃÙ¹x$=rx—,fÇç±%†TifKiÚé:¦Ùq,G³ ŽèÒ-J°•¿ªXZ;âJ 8Ê––i‘x+o¼•ƒÛW3ö’»¸þ…Ë9ø|Šõ•½~¾déuƒF\5tüw2£G|ÂWtåÃ[K庶ݢ8®ÓŒõV†îó{¬„GjÆÓ]¾ã›,Þ›|ó¼QÓŒZ´ÐFŽ?A& ØmpÊBP°…° v»›Íæœ~‡Àõ5  lÛéµ"}zŸ>Éôé“ì’~ûƒœé©×\Kê5×Ö7bähFŒí§—ÂŒ™³™1s¶³ììYÏé< ]Y¶üÙwºÛÅ‹5løH† éµ½åÕàï¿þâºënô؆òê TžÊ\[ù^Î ’Òy°¨sa‡ vì.BULØuÛ+©NCÔR«¤8¸.mOYÚ@ƃ¡ûÀXBBB0›ÍÎiH×)x &1+X,-¸nH*3ÇeqîÓèh±pÂâØIßl± 9¼HGöÿÅßæ½Ì~h p9‡ UÏ»ŠIÀsGÒvÅL®ëÔ€í›òˆí“L›0G&³Ùi€ºžƒ¥´Mv‹‹%”&gÁÖ§—³éöN$ÄDq^ #™Ìø™¯Òýùa´+ù“׌$¹K4–’üwñ¯t½òRΊŒuü‘‹nìg}n¬È›¬²º…Aô¿®e“yaÕV¸ï-.naÁ¢»¾Z݉Žë4¹oqÙS¸¤]öïØJa쿸 eX¹¾×ºJã0hŠG‹îüäT²;žÏ¾¿tß$š6oâ’§Ä¡§B &(Èõ ®ª¾Vgߦè{üøqÞþ¿·øÏ[oŸ1: 1@kb ^ê cCé[±)ê@34µ5Ÿúu  ¿u´#((ˆóïx‰//œ@t—DG‹ˆÀDËÝÂøÞÏ1ñ†Ë˜<>g:½žÊ-]có‘9LÞý%Ń.gÜ —1€Ûøò@?Ú9ê0™-¥ï¨w?‡°ŸaA…såˆ9ðÁÃ\Õe>¯ßÍÄžg3mÛNÝܤ.Ï9TOÍšmOÑ5<ŠŠùzܽ Õ.@Â|2äR?ës¿xÞdé ´gÐüÛxaäû¤îK¸S¨{Ý홼û޼˜;“>pV9盽t•‡Âª„…C°—!çæ ³™7¢‘-b¹ê®QX‚]ÓOAãp¢Aa¡Žû^[ZU˜T#ñsÏ=ÇÀÛïv>pQèzN<[ÿÈ­i5èzN<‹…ǧ<Éíw ªiu„R–/{Ÿo¾­Âå ølÍ' 8p}I°ôŸZ¨O½ñi…õ„ºÌૺœ~c–!4Ô»±{ôèQÇKòò8vìñññ4lØÐÐP·)øòbãDþ ‚ž?Û‰|NFdøiï݉ü|lAa„‡‡ù?-iDÑ ò‹ <2\'ÇQ¿ "#ËNa8A‘ ôòWïEVÝl|–Ö„æN%÷ä$Z•-a "Ÿ"[[û„ÿg£gÛÆ>ó=wSúÜû0ßx·K¼b‡S%Pp þüë[~ÿƒ¹×šèСf³™cÇŽ´¯iTj è™Êo¿ï8#ôýí÷Îã3Aá4ð€VÇЧ¸Ú弨¨Èç[)ôç‚PWÑxúÙ£àÚ~‡f³™}ûö9_meÅ ¡IéËGBšDå–CŸ^)6!ª¡÷úËiB™"®Þ‹,7Ýl»>ㆹ0dñ´öÓ¸oØ$*`ºÖ%ÂC!ÔâØ‡ÞÃ_ZD‹¸³ ró~* `‡Â`‡Œð¿0›Ûb³Ù*ñÇË7uv ^¼Q›§àXíGB¿?› ÔeôƧ7CÊ×6lÈáDZÛí9PYRXlamxÿÿVrÉuÊNé å¢aÃbBC!ÈÇOÇs»Æ«fPU0ÃÉ"mCѰá9U ©+uÒ*¾¨­!é·º0dÝ7 „ºŠÞøôæùô×pÔ–É4iÒ„ØØX>ùäî»ï>BCCÅø¬µéÉÀ»jZ‹ºAd4„GT¬¬¢‚bƒ (Çáøæ¹ÿ²hš4ibøJÚ@âÓíÑ£KÞ›«ú]ã+« ÔŠŠ +\výÚUôèѣƶar÷¸zÚXê2zÃÓ›1 å󀆅…ѵkW8À«¯¾J·nÝ¸à‚ hÙ²eU5E*E£(hîxwQEœÉïÝ˯_ýÄÞŸçÚNMéÚµ«óå=U‰Ï‡òóóùþûïùᇪ\A¨ ôèуž={rðàAÀø!$£‘Aqq±s§þÓÓ± ÔUÜ N_©ö4»':ä<¶Ûí:tˆßÿ­[·²{÷nŽ=Ê©S§ªºY‚P­„††A›6mèÚµ+]ºt!::ÚeÝóÉ“'«ä!$Ÿ¨Ú êõ/«×Bqq±Çñ6*5úg꾫¾^–ûú;w™îåôqžê4ÊçI¾» w¹žÎ½å÷ö#½}møê©½¾®¿·¶å7*ç©~o·™Qû½µÍHWoú]g£{Äžî#÷ú«â)xwJJJ<Fq‚PW12<½£¾ú ÞÇzꢢ" (,,¤¸¸»Ýî¡´ ÔN, !!!4hЀFVf WU Ý@-Î(Ÿ§4oùôù¦==åñVÎH†¿ò=•­Ì¹¿òý)SÑr¾t­H]þʪl~_2<ÝSþ´±<÷QuNÁ»k¸¿ŸWê"¾ž|/Ïð€¡Bxøé-…¤O u }©îgäÙ3A¨E¸¨¾ÞJ!u Ðò¢îÈ}‚P5Ä-ÏÓ‡îqž~Üex+gtìÍKä«N_åýóW†¿ å}É«ˆþ\ âý­ß[þŠÈö'ÎÓuö÷zúÊ£—çëþþ\O1@…ºŽ{_«¬ááú±ì¹+½ç®F… PýÚ‹Å‚¢(X,TUu¾ÎLÖ€ÊP_²ÜÓ=ébTÿ™¸TÛ°Z¿o`e½/FuyºWô†§¯k.µwãSlWÑ:܃ì¹+Ô7ªjÏÝ {@5EôF§^1@Åõ%Ë=½® ÚæÕZ' $îߥ>^ß&O÷“ Ô%Œ¾@ŸZ?2deÏ]¡¾è=w5*åÕ¡ú/Ä-{.hÝ7@5ϧÑ?Ä@â.Ï[»¡.cd|zû¬Œ|w£SöÜê Uµçn¥= `üjB1@Åõ%Ë=½. î!ÐÆ§x[¡zpÿÝÔ÷s½ñ)^P¡®ãnp9X*âl©ôPí\[”­)&¨ ¾d¹§×vTëFÿA¨]¸ÿ.éû±»ñ)^P¡.ãÉð¬¬Z)(œîˆúÎ*hÙs1@ë‡ê©c ‚PûÐ÷_£¾,{î õOc[eǺ {@µO­ã¹ B}ÃÝSbä9¡vàÞoeÏ]¡¾â¯ZíP\A„ºˆ¯ñMsˆ*ÔeŒ¦ÙkÌ*‚ uoK£ô†§¯%F‚PÛ1ZãY£k@A¡®â¾v^¯7<=©‚P—p74âÊÛÄAÜTo2 B]Æ×3Y–iR¥÷‚ ‚ Õˆìž+‚ ‚ T+b€ ‚ ‚ ÕŠ ‚ ‚ Bµ"¨ ‚ ‚P­ˆ*‚ ‚ T+b€ ‚ ‚ ÕŠ ‚ ‚ Bµâs#úÇ ØíØìvmCL&,3‹£ EEÇTI5GåÍ7ßdïÞ½œ:uªJê„ÚHhh(­Zµâ¾ûî#""¢Òò>­¡n2fÌdÞ~{A@eúõ&¤’’öìÞÃo¿ýJþ‘#U@jf³™ˆ&œÓµ+mÛµ#88¸Êêš¿` 4`ìØ±ÄÄT‘+µ‘ƒòþûï3ÐL« IDATÁ&>öX@d~ûí®€ÈÁ7> PÅnçÀþýlÚô#}’úЮC<‹¥:t„3’’’¬;sùâóÏ ²XhÓ¶]•ÕuøÐ!?ú(‘‘‘œ P›ÝÎæŸ¦oò•´ï_: ÂMpp0gw:‡  `þ÷ÕW4oÖ¬Êê*))!**JŒOAp£¨¨ˆ¨¨(JJJ8qâ&“ “É„Ùlvëƒ8NÁ•‹.jë3OUÎ øž‚WUŽ9LÛvqU¦„ ÔFbÛ´åèÑ|Jìv àòitl6ûÿüŸªª¨²öZÊ õ »Ýî4ÉØ±OsÁ=9pàÞ{o¡Ó‡!©ª ‡bãÆuLœ8Œ3бc—<‚P()))ãX1 Zš/êµj±X°Ûí5­†PÐ P_®¢ÞOEQ ]<]¿_ÅvE¡°sÕrè Û¶+(í€Ûù­gGF·ΪU€¢ ø¥¼êlƒ_ùý¡ÝÕÜÀ(VågD{`ç*–só’‡3<Ù‹nÒÅ9UÑn¡ZÑOÁ{ZªRÑ?~|É}÷¡{÷KhÕ*–±cŸ6o&:º×_;&¼ûîë<ñÄ‹å®à‡6’™ù"ýõ'QQ͸í¶Áôï?ÀéIÕ>?øàs† ¹×_ÿ&M"‡wêfÁ‚¥.2EaÑ¢¹¬Y³œÂ“\ziÆŒy‚°°ÒQ¨[yA=M½Ûl¶2¨Ùl.³äÅßqÎï¹ ­s×¥PWÛ%Áûwîë{?tè‡*—¹¥ŸóÇÅãã>+Õ!w>ýKãbzNá{T÷ø˜q|¦ÅõŸO®3½4^Íe~ÇqîüþÎ:búÏ'WãªëaÅjº–Éeþ¨)|ÿýzÆÄÐ~®kž˜þÌÏ-{-}ËùŒùýumW?c\LæïPÁ°ÝÆõH8ó‚†Ýnwö7ýqeúÜÖ­›éÑã²r•¹ì²+Ùºõçr×¥‘‘1…AƒF°téFfÏ~ƒmÛ~N{Q³²6‘•µ‰ðð&$%¥°rågÙÍ›¿£sçóˆˆhê"óý÷3Ù¾}+¯¼²˜Å‹×ÂoÌ©°ŽBýÅf³QRRâ 6› »ÝnØçü¡Ò+´Oþ™§FÜJ×v- ¡Itk.ë?ˆ×³'((ÈcÐÒõÛ¾œѹ÷…uåÖÅ]– ”—ÇÓ¯_?úõëW®©½›•5´òíφ>ÍEUsÙÁÙ´OîO—>%WUY»j]:¶G«FUï§²½ÿ~öïßÏþÅ÷°è…äªkÑTº,.ÿf:=Õ-þ›é¿sÇøµ¨í;Òåûíä©*¹Ÿ~D—{`ÕZUÍc;gÓ>wNíÂâýŽr‹»8ò¶ïØ…ï·ç¡éfX¦=Ã_™NÏžÓùfÿ~VoOûá+:îßÏþÅ]˜úêZ×kê—œd†»‡E«JË®]Å¢{Æ1¼½vÖ2þ¢íŒÓêùæz>zpÃà–pF môd|V¤ï8qÌé]ô—ˆˆ¦w‰KMM,<Æ¡CûÉÏ?L³f-yøá'<æ½ñÆ»X½z™s]Þ×_o 9ùš2ùÖ¬ùaÃ%&¦ 4âþûÇðÕWkËÕ.¡n£yAÁûƒG6›Í%xêwþR)‹­øèFzŸsŽ}ÿ~9ŸN±M)<ú¿|½Ž7çÞΰÔ_]­•YĪçÐOoqYŸqÜôÚ×'~‹çòÁm˜—¹‚ü+¿ÆÇñLåŽæÅ,Ü6+¦Lü|ò»_Îíw¬`Å”˜²ºEÅ—ÑtÉÏ'àÏ·¸íªgq®¢KlÃæüî8w^j韧.ÝaÅ"nOžBþñ-§ÛÍ"5_¤»ê·ók~>¾¿y!Ð\wÝuÓ>þøc—óF¸,¥r_¦­-/áá9~üh¢7Ž=Bxx—¸ò¬}üñ /^ÈâÅ cĈ4.¹¤aÞ–-[sÎ9çóÅkèÓ§?¿üòÆ=Z&ß¡Cû=z àøSªªJ@Âêîk@õýJÿ®¿ý­\P÷”ßu7 &}Æ‚‰wÓ¥M4“™ðÈV\Úÿ.^_ù‹á?POq{6¼DbŸ'ùáÏ̸í\ÿx­+ŸçŠóÚÓ(4„æí™øÚ¨ªêâQ BUU&ŸÃŸîv)êè4ìŠµÈæªrŠ?v[DÚ(Š+>ÆžS¶ÿ‡/!°ÁÓ½¬Ÿ\p[·neëÖ­\pÁNO¨?òôÿ¦ÿÜËT¨ïµ£Ó{kùܺƒNɽQÕ¶\‘ªbµZÙA<íTUïuikEâUPUÚÅÃëç¬Í‰§]Û+HÍÑëЛ§srÈÉIfm§Ntê4•ÏUUíMòm9X?Ï&«S2½]êòTF§ƒõ-n»*‹ÔOsÈÉÉ!çÓÇI,óÝù!Ç©Ë{¬ýüsÖ¾wɽÝÚø8Ÿæ”Ö““CNÎÓ¥úJ¨îðÑGö>ú¨L^ #OLe§à»v½ï¿ÿª\e6n\˹çzöpú¢S§syòÉ—xï½ <ôÐæÎ}Ökþ[n¹—+ÞeëÖÍœ{î…„„„”ÉÕŒ7ßÌâ“O~dåÊÉÊÚÄÊ•?UXG¡n¢yA½m»¤Ÿ~wŸ†¯ˆ´RSð3¾ØË¬ÁçVF;V|?~wÞYÀw ­p³fMd×®ãܦa@?ÿ´wj¡nѰaCyä—8³Ù\&Ίrz ^?å§7>öõý@Ô¶lÚ–ÂŒ6 Š¢E¼ÏÙÃÛ8ò9ëväWÅñ”·¯ôâ‰ë87¥ 3€ÄIDuįšÄ]ý»àØDf ~sŽ´i‹º Rf8êhÓVåýUñ¬j£ ÐuF ]f8êKœ´Š·5Ýzõa *}z•žk:´ig\†A x.û¼Oâ¤U ?»?)¥™N멜~j½‡ºÝä¼}W[hs9)‰‰p¹Ûu*Ón q«Þ¾ ßï ªŠeË–qóÍ7³lÙ2—û¿ºèÒå~øIÞxã%víÚIóæ-¹ývWã255³ÙLddçžÛçž[Hûög—É㎧iù‹/îÃ3ÏŒgïÞÝÄÆ¶çÑGO{@ ¸‡‡DaáI—òÜüy3IHèf(sàÀû1™LLž<œÃ‡жm<·ß>Äïë î†eEg4LªÒûþþ‹Þá£Äfs5(/jÞ”Wsÿ¡Gã²nÿððÆœ8qܯ¸/ç e\3>ÞÀà‹›{UøÐ¦¥L|v!_}ÿ#ÇûðÈÌEL¸.Σü¾}”„Ûþâ¯ï²äæ.¼Ý >z S™ü‘c3¸îò„ÚÍÏ?ýÀÅ—^NQQa@äe¾þ×]=!a ËlGá)˜L&¿¼ªcÇŽå™gžÁjµDßzÍ—Ó8ïõ¬ü?1,ë qqqL™2…Ñ£Gc±X°X,¹a6›iذ¡WY‡®Ò×VŸ|ò‡íçÞ{¬iU„ZFy^ÅùÎ; xê© .”   ‚ƒƒ vö5ý±/Êá-ké¦]Ü‚ÉÿÙÊš‡.0.a`ÛÅ]xW:_G7£Ïµ=9¸hiý=ouáͼ¾äf@%çËsñ€[¿ÿ{ò›ÿk&7·æî72Øð][¶/éè’G;î³9s‘›1]•S@¤( ¯¾:ÁƒÓ°¡÷=óôýØF¡²P¡b|µ~ · ÝL¬Þƒ*µ˜‚‚|üñbfÌx½¦Uj)åy§û^×þì}í ¿ PU-;h÷c>3Ï»†OÍbômý8»uö“ùüöÝg¥eü3@UU%.eß}Eòõ—rðùUÌºËØ¨M<™ £GÇhL&°;ev³°áï$µj¤+aâÉ×nàœëŸæú7¦±CtæƒÝtï3¼÷üÎkÛ˜}9?°0ãqžÊô<Å/Ô^ÜïÃS§Šxÿý÷ùý÷ß™3ç%~ø~ùåîºk „Õ„š€¼ >P\6åg.ÓÞ~$Ô ês¿Ð¦ÿGŽœHtt³šVG¨¥¼ó΂«Û¨ª ºyaB#/gý÷K˜ñd·^ñ»œ QdsÎí™ÄÜeß•Éïã9.¦ç}|ñe ×%_Íàïòï‡Ën?‘ѯÝÞ‹óòiÙ±O/Zæ,?gT ÷\Ж#E6Žæq–±4T ‹êÇÂëÛ•©_;ï–ö1Ï<ÿ(ÃR»³ãï4ïÔƒ¡2 õj?îßkD“&¬Xþ!7Üx\p!ªªÍŠåѤIÝÁÁÁ9r„Ö­[³{÷îÑAÎDÚ´iÑ#G\ž;¨OÈ+>…Êòí·»¼>õ^Õøm€**(ÿ6ÃZôdÚ‚÷™fXÆ5ÿ‘#‡}Æ5Ž¿†lë߆åŒãÓã ëé5õÿÈ›Z¶îÿN^ÇM¯­%Ĥjoß3¨ÛÂMã_à¦ñ/xmƒP70ú^#"#ùðÃeÜtÓÍ|øá2""#kôˆŽŽféÒ¥Üzë­tìØ±Æô„3£G²téR¢££kZA¨ú!¤J­=óQøeÉ8¦ÿy Ö¾­k¡þBUáé^ˆŒŒdÙ²¥Îãš¾gFŒÁ¼yó˜3gŽß»JB} 88˜¦M›2jÔ(8PiycÆL€V‚Pw©Á5 j­›ŽŽŽiF£æç0cÙÇXTEÖ~ N¼ÝË‘>óTLšäس¯  Àpï5-x{˘ ÔUöïßïòä»ûŽþ’o¿]v-œöîkýÞ‡Úyqqq™·Â}ËêÓdj¸ËòT{~oõzÓÓ[Yoí5j“‘>ÞÐô´Ñµô$Ë[^wÝ<éç^Þ=¿/ŒÒ¼99|]oËxªÏŸïÉ=¯{;ªÇZ „8x`¿ó¸¶é.T-µñ~пV°2ox„º†‘ñén„ ‚pfá—j6›9qâ‹ÅwfA8ƒé|NWŽ>Yv»½Zû„§÷[Ëà*Ôw|y?¥™‡oÔd¢iD$¤y3ÙêA4:HÓ¦Q˜L•z£­ßèOAN£7>õÇ0@ÝËz3l=»zË멬7½¼ÕãKž79•Õ¹2uù«yâÊïO*ªƒ¯4_:U¤LEï oy«| ¨ÅláÜóÏã›ÿmä_]DLLs,…ú‹Ý®pðà~~øþ;.¼°!¡¡Ø•ªŸ ÷d|Š—G¨ïøzóXEû†þOŸÅbqYúT¡5‘²TÖ€Öæ5 zùÚ̃~¢<ýͧj¶˜iÕò,ÎãçM?qüØqìv»_¡.b±XˆˆŒ$áÜbbb £àd`^íé ½¡©7DÅê;F¯Á T¿Ðdªªê4B¡â™ b€ÖETßïüŧj2™ !>>žØÖ­±Ùí¨jÍ?,5‰Ùl!(8ˆ ¼¿_:è O£q™šê+Úý¯ÿƒæWQ¹z™zϧüáê;FÆg@= QÑ1.çEEE(Šâ1¨ªêr.uEÅéùôöðƒ{¨(ZYm 4™LÎ>gôUê î†b û§?wâ¨>¿/ŒÒj³ÔÓºk)ÇFô®Š¸­ƒ*Š"ž¡Þák P?VÆ£?Öÿ¸hAê#ÞúZ < Ú˜¦Ë8'e/_êŽ~à3êìf³Y:§Pï0ê€4>ÙMj£™mœ¨x@õù}é`”V›= ÞÆ:¨°T_¹ÞèÔ>Å#Ô'|­? ”*Bõ¡ï³Ú˜æþ)õ÷1­¼c\…< pÚ²Öÿ;ÔŸâêî§Ñ‚ìÊL ‚P3ÈGA¨*5¯k¸ŸòQ¨/x2<ÅA„²Tj ÞýXCÿ¾jA¨x2:+º6FAê2ž‚×ЛFAêþ bˆ ‚ B< žÒÅêFÓìbx ‚ ‚1•^j”&c õ £5ž²TAŒ©ôSðúx÷±e êF[-‰ñ)‚ e ȼ»ñ)ÞO¡>âkO4ÙÎEA˜T±AA„jDvŠAAª1@AA„jE PAA¡ZTAA¨VÄAAª1@AA„jE PAA¡Zñ¹}þÁ}T¹2‚P[iÔ¨‘1-*wôÈ¡•'uWç/ ¸ÌÇ\¦ Ôv2^Ê`Æ´U"Û¯7!ðúܪDA¨ $^|IWô®Ùóü»Jä Bm䟽»kZA¨d¼”Q¥ò} ¬Zö.OÏ~µJ„ÚÌ¿_œNöçpã€U"_^X&Ô~Ûüm…Ë&\xq51f×®]U^‡ ~ «–½Ë±SQlEÕ¡ ÔJ®H¹ÏW¯¨i5¡Vpî•»Œ,G„º…_Sðª¢T¥‚P­ääüA×óºa/>YÓªB½¤2žP€ÂÂBL&&“ ÀåÓèØl–gn¡mÛ¶>óT×,€ÿ¨*¨P÷ô}m³Ù\ÎGýç5“ÔQ0/k0q5­‹;g²nB¢ª*ªª:LíXC‹ÓŽÏdÖ¬YCzz:‡fÓ¦MUVObbb•Êj7ÚšÏ7».%«ªqÍï¿„Š¢”;‡5®P¹š®«:õ®Í:ÕæP™ûÚ›¼’’l66›Íyl·Û±ÛíμÚÀYn¬™¤¦fbÕŸ›SÉtFd“fN#Û=ß™JmÑS8#Ñú’{¿Ò âý ‡Á¶lÙ²2ñ7n$11±\r¼Å½ôÒK¼ð 2Ë£‡ è½›»vírOÆ'8Æ5ýبq­Ê§à«sê>u‰KÎDj;¾¦îÿÍf³3˜L&ç4`…<2qñ$¬Î ÄÖuK!rœ¹lIę́¸ÁdeU¦‚pæ£(ŠË»'*ëý\¶l7Þx£Ëþ›o¾Y)™€‹±ùÏ?ÿpþùçWZ¦ TÚ¸¦÷tb\óÛjôï2gÛvnt­Út IT .íÝ—¥Ë–þû¬êȺªCï°ð¦gœNõ)x»¯+#ÏȪý[¬´”$R'l!×ê8³æ$––À–Ó0 ™8ͳXú™™vÚNË.eÍ$U3Ž; e5ñæ4²µ8ÍSiÍ$U‹ÇJfªãØš™zÚØ6ðj–M·’9j(«W¥ƒÙLjf6™©:ýÈ&ÍŻ뮛[šPkI¸ðbÁÞf$¼õÑòÒ­[7V¯vö>ÿüsâãã]ò3mÚ4zõêE¯^½˜>}:ÅÅÅÀiebb¢‹·R¯ª*ݺuóèÍܸq#·Ür ={ö$55•¥K—Ê>vì}úô!??ßYÖf³Ñ·o_Ž9â"SQ^~ùeúöíËÅ_̤I“(,,¬Ð5jšT[úÁ²cï'œö€yB+3®Ux ~GnW÷¿–Þ—÷â—Ÿ¾eß+/̞ɒÿ.s™–¬Î)Õ3QV ê¨ÎkY‚§ûÚ(4hå·<»Ýn8Eán€V”¸Î°t°’Kgâ’RIXº+•AB|œkÕCÉI-Õsý2Ò3±’MZ‡¡$¬/Ï[H €[|ÞÂ-ôMË.õ¼æ`ÅáuM˜YÙVrèLœ5“QCX_Ú¾õ 9®¨azƒç-$%e!yŠBÖà$§M Ã!²³È˜Æ`gs²IëCšvÍó°t”Lß×¶üüM¹â5ôýÉŸ?‡å¶ÛnãÍ7ßtÊ{íµ×¸óÎ;]òÌ;—ðÑG±bÅ þþûoæÎ œötnÚ´ÉpŠÝW:À”)S1b7nä7Þà·ß~3,Û¤IRRRX²d‰³ìwß}ÇyçGÓ¦M]dfff²uëV/^̺uë aΜ9¹DBGop9U*:®•긄gfÌä‘1£6ä~š6$$$ˆÝy{Q¦3¾œÍVÂOM£]|gbZÄrÏýC8~ü˜3=oçNn½mÍÏjGTó³¸þ¦[Ø·oŸ3½QD 3ÿC—„ ‰ŒiÅ¥—÷á×-[ ë*,,dôCÐ2¶=-cÛ3æ‘ñù®—õãO?qö9ç1oþk¨ªÂšO?£ÇE—ÓŠ. ’ùŸ7Ë\-xÊÛ("€F14ŠˆAU®J¹–%ÿ]êR~÷žÝÄw>—£GóËu-%øžîk÷ ÿ®ü‘çîõ´N¦¢c\òÇœ»uK‰'Ž8:“ƒ+¹[&šäV e!£´¸¸ÎCÓšË}¼†[|\òR2²ÈÖy^­9 ¤ŽêÌ–¬lGþ„xâââI ƒ¾¥žÑ¤ôt\DûJ×HJeBFÙ8Œé úÆXsÙB}õ^ÛÕ9b€ÖÜM_Æ'TÏP€Ö­[ÓªU+Ö¯_Ïúõ뉉‰)ó$ñêÕ«yôÑG‰ŠŠ"::šÇ{ÌÅkZYÂÂÂØ¿?‡¦eË–<ñÄóÞu×],[¶Ì9mºaî¹æš2ù>üðC}ôQZ´hA£F3f k×® ˜Î™»Ô“÷Ê ×ü7@Å%lØð9nº¡L¼>èËÍÎx‘M›6óUöZò¶m!,,”)OLs¦¼ý.FÆÎí¿‘—³…ÎÎæ±IS\degΧ«>fÏήMMaôƒÖ5mú öîÝËæ¾æçþÇÎV¦?ûœß隬•+W1`༘1“ã* CGŒæñI²wW.«W®àÇ7yl¿§¼Ç;^ozüð>ŽÞ‡ª(<:þaf¦?Ýfs–nf£†¥qxx¹®¥ßÁÓ}­á‘Í]ú@xdsŸòܧ*ô"ÂJ\< Yd[sHHMâH¹ÖRodÅ%{¯¶3äX³ÉÚÒ™¸¸dlÑëDº¢ (©dé§îøJ?/uBYÙÙdeÓyŠÞóìÁj%šÑéñ ”1>Â@zA333yíµ×4hP™ôC‡ëþùçZŸÕŠ—_œí±ýÞòº_Ó¾IWаaCþ»l9ŠâXâðÙºõ r¹¯¥ßÁÓ}­…ÆQÆïtoÕÒ«ë5ÿ½÷ÞË»ï¾ËæÍ›¹ð )“§Y³fdeeñã?òã?²iÓ&~úé§€é,œùh^PoÞO¨ºq­Â!E5mʃ‡ §=ŒþîÝ»ž—ô&"æ,"bÎâì.pààAgúwßÿHʵ7ѪmG"b΢e›x>â"«iÓHçyXX6›Í°®ýÒ®mçy\»¶ì?pÐït€Wæ-à®;oç‚óÏsiÓÿýg!ë³?§wß~t½ Ÿ¬\å±ýÞò]Ó cÇ0kö ØívfÌœÍÃ",,¬Ü×R‚ïàé¾ÖBþ¿<oòªƒ¸Î°š$Çé#V—]ÿé‘$Ò×'0´ƒc:{TNBéÐ$Ò󲥯#¾ÃÐÖ§'•Ö«a@i¥qñ±¥³C‡¸xÚ¡ôá ,0O·vÓKzÜ`Ò&8¦ÕSµ'Šâ’’â¬ÇEgnžvêÞŒN÷ßÙÊb2™X¾|¹ËÚJ=)))<ÿüó9r„Ç“žžNJJŠ3½qãÆX­Ö ×?qâDòòò()))ó§×Hv×®]iРsæÌáÚk¯5”yË-·0mÚ4vïÞÝn'77—I“&UXG¡vâϦó¾ÆÒŠö± oÃtEï^,ûp9#‡ ñ«\‹æÍù,k­Zµ4L¿wð0¦?5•+û$Ѹq8´‰ïRfºÔ›^Úq³f1X­Ò¡};wZiÖ,Æït€•ËÿËõ7¤I“&Œqúp‰œÏâEo°vÝF?2žÔ”« Ûî+¯{{R®¾’gžKgÚ³3ùö»ï™;çyÃöùº–‚ÿÔÆk78 e°KYúÝ6L.Û1é·gJJGQÒ„»Êr’Dº’¤;Mçô©cŠÝ@šÏô¤t5²ç1”äÅèìQ7¡>¢af³ÙåØ}€ÔoH_U<øàƒÌœ9“ë®»€«¯¾šÑ£G;Óï¹ç ÄÉ“'+´×gŸ>}?~<»wï¦}ûö.PO²ï¹çfΜI·nÝ eÞÿý˜L&†ÎˆgÈïã¹P?ñô¶±Ê¾XÅoTq¨ÓÆ=Ì57ÝJHH7^- 6ä·ß¶òò« xóß Ê”»ÿžA<<>çžyš6±­Ù¶}/̙˿8ž,*,"48˜à`vZÿdúŒYeêu×ÁSúM×_ÇãO<ÍœÒA…‰?É€¯÷; ¶õY|üáÜpËóðƒ#>z Ž{„¶mÛ`³Û±Ûì†zùÊAζíœÝÑu;q?È2çùt‚,Ãöùº–‚ÿxúî*Šû¾„þìS(œ&;+ƒ iмõHð‰¾ïžîFhEðf,êÓBBBxâ‰'<>4dÈ2ƾ¼/£´_¿~ôë×ÏoÙûöí#55Õ¥íúzÌf3<ð<ð€×º…ºExgûöíX¾ä]ž™ÁôggQXXHçÎóàÜŸ2óà^~u7Ýzûþù‡³;Æ3îᇜ鯼4›ÇŸœÎž¡#h}ÖY<8rË?úÄP–'½´ãÇ'Žç±ÉOÒýâ˸éúk™”6ÎïtMÖY­Zòñ²÷¸ñ–;)..fÂØ‡¸*¹wÜ}?»vï¦c|<óç¾h¨à5ïC£‡“œr-'9ø÷Ng³ÙL‡öqÜvëÍeäú{-ÿñtÍbÎjﱌþûKRº"ÕFê;“PaNœ8ÁâÅ‹yýõ×kZá Ä›ùÁ²|® &ÕÇÜÄ¿_œÎ±S9øW^µ(Tß¹ëþaÜ|ÃuÜ|ãu5­Jfÿá|ºž×Íë}Ý,6¾LÜ=¹†y;Áç«WÐçú;UU !((È%;}1zäPæ-øwµ¯3„ª¢²3ÿìÝMó–±ìÞ½ÛåMc¾Bhh¨W¹ÚàÕåý©*1›ÍLœ8‘[o½µ¦ÕÎ0Ú¶më|í¦'4TÛ ~𽎥OZßuËôcš?ãšF…§à…À¢( ï¼÷Ö?wqýµýåzWÞ®ó?»¶Ó¢íÙ.ç5ñ½ü³w7û÷í©öz¡*øgïîšV¡NS‘5¦Býa×®]ÕæáôE9¦àÅS•´ŠëL›ØÖ,œ÷rµ,šøºÎûþÜFËvØ÷ç¶ùN^¿°ÚëA ÷±¯ÆŸ‚ËÞ8åZWþ\ë½;ÿ8c¾“¢¢"¯û›jÛÒ¸oÕ"u ýôºþ©\£à/¾¦&¡>RãOÁË.B]$Ð÷µ§=F‰Ñk6;¶ôUÅy,u½ñéÍÿH1>¡z‘5 B½¦¶Ý×Úò Oƒ¬¶'¢¡B]Go|zó|úë™1mF™8í/ú·¿h¡¸¸Ø¥?ê1ÚÔH}>wYZYý¹^¦{9}œ§:òy’ï.Ã]®§soù=]/£üÞtò¦‡§rú:½µÅ(¿Q9Oõ{s8µß[ÛŒtõ¦¿Ñu6ºG<áé>ª*d ^¨—4 fÏö_kZ á> ¢7:µOYC,Ôuô†§7c*ÿ但¿oñwmœ{>÷_2ý)g$Ã_ùžÊVæÜ_ùþ”©h9_ºV¤.eU6¿/žî)ÚXžû¨ZÖ€Þr÷Pþýâtú]sC…*„úÀç«WpËÝC9˜¢Jëqÿ‡¯»Ÿâê:î§»ñ©å‘A™‰_Ð+Rn`ÍÊU­‹ ÔZ®H©ž?hîS8úÁÕÝø/¨P—ñdxŠ*µ¿ ÐfÍš3dìÔªÖEj-ù÷Õó*Nwùîè_K(u_O¾¢ïé\‹ÅRfæAÖ€–=—5 uw ¨VÖb±87·X,X,– õ7ŸhdLË2qú…Øî‹³‹‹‹]Õåé"•'§|úx÷<þ|þÜ0îu¹§éóáÏ‚{zy¯—¯öxº>Þêòôcá­mÞnÜòÔc¤Ÿ¯6y:ö÷{2j—§xOEUâ^‡¯w` B]Å_´²†¨f€ªªŠÅbqÆ{3¨ÄÔ›¾uÁÕ‚~¢¼øÿÎ$AÎ|utíÇC P¡.£ôªÂðt—ë>³ ¨ õÕÕfŒ¶?+6@Ý8o^}‡u+OOù<•óôéI¦'ü©ËÞòù£—?×Ë_|]ëò¶ÏÛõñ–×ßïÚ=|É­ˆ1毮ÞòÚôö®7<}ý BmÇÝøÔÅU¦ý}&“ EQ*mÜ BmE3<ÝÐò"PA¨E¸ÿÃ×Çë OOFª Ô%Ü M£¸ÊŸFh ¼«‚P[qDE§á+d€ê+Öf»{šÜ]ÌžÜÄåÉã)Ÿ>Þ=?.h\æîu¹§éóáÏ´ˆ{zy¯—¯öxº>ÞêòÇ)ÏtFyê1ÒÏW›<ûû=µËÓ—?mr_¨]™õ2žt÷v¯ B]ÆÈøôöY™:´¾«ªªì2!ÔkÜg*:¦Uت¡ªª:PT P1@Ý P½ñYÑ© ÙÛSª½ë>Ɖ*ÔWõG¯ÂP-èP}åb€º"hý5@¦)*c„ ‚P}‹*BY*íÕŸËÂlApEïù „TAê•ò€j¨þÜèߢx@ÅZ_= Ú̀ѻªA¡¾R)(œÞ[|eÚÿ·kÇ(ƒPñþ‡Ž…„¤±‘°E˜i¼ÂâûðxOîæwXŽ@ï×a6ì}u¬ 2.Å@È^@J€ ¤() @J€ ¤(© Íñ­Ì öJrIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qstyleoptiontoolbar-position.png0000644000076500000240000003261312536324513025440 0ustar philstaff00000000000000‰PNG  IHDRË#x~ut5RIDATxÚíu@ËÛÇŸgfÏ¡Dl½v'v ¨Ø‚Ý¢‚ÝÝÝ÷ŠÝ-ŠÝ JÙ vw{½!pÎî<ïç"Þx¯ ÷çìXfggçs¾ÏÎ>ϳ3¨!!ÄlH¦Ÿ¦ÏxBÌž˜ÒD„1EãJ˜j!„xNjđœh8""!Æœ5 I‡„æ³1$S½ÄH˜Îgn1ÓáÄ…@ŠÝýÅÅ|Ñ&S­  {-1GhAŒâ Å4#áÕ'º™®<¶gkLìILãŽû£x‡šëÅäg ˆBèÀÈH#B„L˜®AÓ€ Œˆ‘Æ“0³5mÌü›ˆe@ˆ„L ‚©â¯X~Ý‚4ŽLù"Ì_ Œm'2BP2Û9”ÂXjÉÏøù‡:Ç_Œ Ù¹‡úJYUÆ@b(P ³35©º~‘9ªÆÚ'KK `@ù SII€ LºTÃÓD‡ ;  IÞãc¢¢ì85ÔŽ›v ÝÍkP6¿õI&"[ TCí8™Ï§ÌŸS—(uñªøî÷ùíT­çîÊ?-müy}­¼*ç òn'mŒŒ©\èŽw³ÈuÎik* Ipãj—Ü%z ŒfLÀŒ;¤ú:ªÀ1P00–_ë~nSïLB¥¥TB IcˆBpÐ!(¡``°òüíæÓ}½oÔ8SØ\ #ˆ‚‘2~½v×c¤1´ý…­WQ¹P÷b^C 5âñ¬òÏ©K"×ÞEÄŽ.Ë;̘q¶6o³Ì%×–ÐÁÍf—¬ßzózèw¢CÖÀ@0ûmöy!F2Á(òƒÍª9!Œ¥U€4à@HÜîÖÒÉ™6}óíLA0 0P0ÍTõ³—•n5¿q¹¬%Á@3™nU¾aW%òsí7áJ‡‹ººé·¨Œ}¼QÖ„P€PÄ럥¦;ÐèbYê­ïöð,@äôλçUèy£eNÜ&*×;kwbVT}²ÏyXhºé6Ôç´BÚxÊÒŠ£?ê«|ö¸ªëß„vYŸòw VM~‚Gæ ϱá‡ç ÏNÒþÚŠYžæ .udŽf=·ðÓ@ÕëÀiŸq4¹aÆ…åVÃH8°ÐXl¶Ÿ}€5ðÂ×i¤_Kãu~¹92Ünn¾¨ù–¿Ñä†ýFwêÖt}6k§ëd·Ô›TÚºfv«ó-5¦^ù©ì\.ØOlc5]Ï€› v¶ÚµG Ý«Ø#Ì\Xaà€.C¢òNmPùöézC í:0›wCkºê™å®Ú-he ß,Çñ³sÎé8ýÖŒ“ÚnŸñKŸåí"­–O½¯°Û”ó5ÇAeÆ–Ú|©ãµ•K˜aYþU'\Æ—^÷êÜ媵*رa/5ê[¬PÍN>›nK,>ÆaÝ®!ÓÃz¤já;ê„[ÿ{‹-ÓaùãËjŽŒÃo-þcÃ臩€Øëž7W·žîn»ÙÈyhßÂé²»¶òÙ{§:õÇôþ¹u©tz·_ã{]ð°Óþußg›Öª-,=þdÀÑö/7¼Q³ÌBðkyÐÙ§´ÆŒºnïVäðq‚FÙ—V\eß®tÿ¬û+CãÌ+ÚÒvp/4.Òrù´Lrí8„T<ýò ®uïuëë«ûÔ"0y¸ïï®àÛûö §Ë¹5\+{¦,Ô¬£…óÎÏV¬½h’î}×K÷ÝÏʺÖë)¨9Ö9çší* ùïþõ`sŽSó³à’~“Ê1¢’w\ Zh§Ü;¯óú•WÙÏ̲WÀM9œ®vÆÞ¢oz®>S¶ÊÔš×jÝékµîºëÙjŸsÄ•ÍmÖ7ÖMqÊ:Ûåç+{9Ì©îVÞ­Z0ÇÇö¸•NŠŠ²\1õ>çmËÒ â–ÙEkPi½U“Ëgx„ZGTÌA?õ8ê¼:’k¯kÚŒ]{:^¨¸«I¹N0ËÃé¨Å­†:¿:k×®¿²3{Ò.ôâëxhéÅU\‹ÉÝaÊûŠG¹GíìÇDZ.›ü˜+ËÇÜÈì9óáÚÑ73-žsû®ë­e“/‚në s³òÌ…a»\îxΊÝ« GŠGœ1êM᥆!·3Ì[r£iÖ5Ðçã„×ÏöŽ.y ªt@ÅÓõƒ ÷*Va[Éž»N” SͺÏõêoíb¹&‚)–öå-º·hhéÀmKnóÀÞ~ij–‚}p´LÔCh:õÚ[ÚxuÀD­ñóy5î›4†î¹þQ—¥»³Æ™ía›õRÞuoÖ·Mÿ<ßn+ç7ëÖgu¬}ÑçùvÙt+:»eµvn°N®ÁyCÖ7Šl’'d}£à>g6÷ΨaØÑ‡Ü‹i™Íréê£(Ë]ƒ¢«¥Î𸄷hv;çÕMõvw.¡ýáÅ{ù=ªZnIÛÅ%Ç,v=&¼Îª¢Ÿk¯.b¿²„v¡Û<ÝÙ±,»íÊ`V{º¯É[ic¡ˆ[s¸<.paz/“‰ýIY"ƒ‹™SèÜiiáâc,ZDc/N—*ø¤Ì©â…Ûò°SQeó ⢳UºÙñÀ9Ë:ŒžŸ)›]µbϧ­Å(\±„pÅ’0:ÒˆƒÏ»²ù5>”Í'´»èp²°ÓxÈ휎'Ò”ùdeGm¯ ô>m[‡|Þ—Ï£ñû!ºÊ¢#S³‹ê¢%çç(«a¨B¡©°;×±D~ÆÏ©1<Š0MD*þÑ–S¨NóùX¸„ˆé²ŸÔ‡göÇ0ûc‘zx…8¨"CATfòÇjšîFÛ֠2B!0ý!€ÓB 2ó¢Ù«2¡h3—dp®ÃU ÈT$TL'% €Ê€#B*"¢Ówdþ¯éd?¹?‰€ApæðxÜŸ“O0 S½& NüÉ´…@F$™éxW§ †@LÍñ@AȈ˜éF øÝE bæ#I 0B(d.±½D`rþ"™ÆÄmÌ_ˆŸž%û" ˆ„ ÆœP ¹âñƒM_WoŠ©Äõ$'‰ÿ—¹Ö='I4ª¯Ù?}Ì+q– A",ãÅ/¿ËDâ—ÿ+,5  (ü–¦Ÿ’åÿ‡%r&]¹ý·7¨¿{ƒÑ׺T4úê{‡\MD—ÈÕDtÉQ•ºL]Š¢ 5 Õbì´ÌƯÏþ!•…HÐz‘¿h áW{cʆjiÅ7zãË^1uÊ]“ ³ÿ.ËDÌú7ÒBTŸXmÿˆ%üƒÓ~ƒåßh/|Õ\B ý›1S Љ¥~ÄI~©KÁß•ZçÅ¿øÞi–»\·1ŠÕ¥jé=äšÆ¾Ô¥jÕ÷Á‘(.u™äº$ §êsŒ1,‡žýúìïóx9'l=îîþÔúë¢;{?³üÊ‚³ž÷|å,Y¶ŠUâ±ô?§}¥Ëß l­gL KwÏG¶Z]jŠW¿G_ëRßãÞÉX·ˆÔeêRqpŠc9,àœHÈ’ý^`›‹š€¥âÝóqª„6Vã^ý[‹„,u=îÔ$Ëd`ɪÎ5*€*j1, 1]æßö·uÙ÷q"ºìyWê2™tYu®A²ü,cÜÍÎRà×,‘LIùß`)mlr³4u‰Ê¾¬‘Å9£M,ÑøR—Ä A0ík+Y&7ËÏ¡*@z ÁÉ$ö^Iû¦ !½³µŒ Ö˜ßÐ þÁö3Ùý‘Q˜–,KUùmLf¡Ò†* S9€`$¯Uì×h†\ b\å=›0HÄ5³Š_ôÛ9!|¡†B7)C?#—,(K£~òƳšqÔ‰;Ö hÜ.UÙõÔ¹Ð6Ð8/çO‡ÄAU@C ¡’zb/¶$Ò èI»ƒvÒÆþ`–º©Þ!çžæ¸0:Ìa(—ÚôÛýkÈïÍ„?Ú[rõ¡Ð‡ûJ.´ÚZ¬Ä†Ì^WÜko>m †Qy_iOáÁos˹(s+>Rå’åe9ó×Z¤§Ë´«uÚÖô(´Ç·þBýä‘CŸì5kléÞ='œ=®Tï¾ã+ôèVåæLì¨fuuÄÎCæP·gÒ9Ýä‰cKO³:Å×o=ª¡dùcYΙXW5ž™Û£•a/<Íw‚ØKûˆñÏÖŽõ€QÏ6 ô‡oÖÕkß®zµÉàÒ£\ñÛ¿@†Î³¤ug7ŒÙ} ÞåÙS3°Cˆ,°Ý~ðxÝ‹ÓÏ‹Òß´¥¾Ô Ÿðlýðå4òÝÚÁËixèJçnõ:µÄúƒ¬&øªJµ2‹Œ¤¤.†A†ß¢m¸µ}[átV’åe9Íë*dX¼-jd˜eXõ{‚_ÈñÏÖ ] #Þ®¶†}Zéܱ]½öíÀe`š~—+ï¸ÐHúŸÖÁðû{4(9µÉóJç³j’åÇnðÒ{Î|°cí5Ý¡a׆¹¬´Ø¯y<Ý<èÓ:òfÓÀÐu0èãÚÚÜëtr‡:=êdÜÚòDiFÐyîôÅñó‚ ­|?íÁQ,ä8öëréØ *Æ÷ mú(÷õù/Ó¤ö½ð¹çø°ù0ùÝoã"æÁÄÐù-Ú¶jѶ¸¶jåÕ¯¨ÍÝú L¹ÑîdÚÙÛÈ.d~Wšòl¥19DZ¾)™%Ññû`t$!YÚíTh‘¢FßÌQ©ôº¥3ZG“%DeXBX…ëôz„[¾¾Zâ¾SÅ6CœxÝ>Mì\/VÔ wé;ŽuLú˜×‹þëmçB6¢Ãˆo/Õ°µ÷+_oOóÞ€µkâŠ8VJr]ÞÜ‘bsDHw絎¾©KMK2¬9ÿ€ˆ€“Õ|?¨ÞW˜r§LÞwÌÜËDú{£Àb\a ­h•VE Ì«[ÂãóÒzf³ükº¨”›»…aVЧ˜,¹[„¶QhýñÛÍ&²V"mŒ ˆé¢˜ùÛÊÕ˜ÀâåØÉI̲wgT ¾_röÍû%ª™óª˜L±h1ü“X´ &XŒJ¹¹ïˆâÞUÒU5ån%a,ºÇ£òv˜ ¡C•¤EûüwŸIdî–|¾L~–ÒW YJ–ß™%¡F IC¦1FH(€¨!Ó™^6Mµ*0SßjÀ@ƼRš.™>bò²@˜3ˆ8]2¢Ø¾c É|Ÿ”¦K¾úæ„Ô‚&dë>Ê­œFýHW•uû£[/«PFE ˜$\Õ2 ‘¦€Ò48kŒ$Ë”ÄRð:>GêF[œ¯X& íàjª ×Ç­Ñ–=B·VêÕÑ` 2$Д[·+`Ê "¸Ûe_Zú2æ%€Tݰ€s”%þ^p›³–€%÷îùòd^ý[QB–J÷û'…dù—,Y¿zžQ–£¶–óŠP,Ù…sµ·¼ZçÏ×ÞüzEýŽ®xáRÉJ¦™gjŽ®û»ÝõË ³ìŽª—šõÉ2Þ¨˜æ5q¨:W•ºL ºl›ÿè‘tQµkïmÞÒm˜§Ó«È ‡,uzõ¹ñ¼ºÝgޝ0z¬†¤\iy.íăEnhB¯<¡ø ?Ã¥Ma,¹®ìíê;r‚“Î= 8¯|§äp× 'o—î;§öÀœ5ýíoVÚ[M%Ý‚}¾8êÐ%ž»ÞŠàÚ72¿/q¬˜Ê$ËŲހ Wvµú¥Íˆ€zƒƒOï‹´j›?ý‰‘VîÖËkz\ŸÿëG»ÞfGƒ~@Äj(SÓÎMÞWðϪUÒR“,SËÝŠ;Ÿ.¿]Œ pôtu¸õÐÔ6·×„[ø´ªæ¨ëkE+êµR…~ÑE.õ;µy]éô/ØÈ½µd™ÂX6må^)Óë@ß™¾ û=B(âZ¶ÿ#ûÚ êŽx1ñ1ÀºE„ª{e? ‰ZB:¶zSÅ/ktéY¥MQ,5]µ6½&Oœî±sjHÕ®ny3÷¿¸¸ÿÜ<¿ ¸°¸ïb‡~- :6=tâlNAºƒSý•ž‘E•^^Ú‡ä¸Óè\Z’å?dIIé+`^EŠ?ÝÜ*߃³n^E‹ßœVÐ)m­à VM_c[ñâׯ,çåQQð°Ê[ì}EmÚ^²HÄÖVvËü·¸i[1Éã$=ïÿ6K†ÿ–”B沚¨ﯦ½\b~u¨’ÔºìöìØßKšHáóû~øŒßÖ¥ÿÒ«1$UA\c(ˆ D€j 5`„ˆÄ^N] #F„»£{–‡›çËLU?ÉuÙg‹ˆD{ ص0ö_Ñ%)>ÿ&J‚˜WìŽx…u‘L!0ÝŸX¸¥"Ì£§†&I»ÕooçÄç+ ´dð_Ñ%¿y¿DcÖüFLžø%q;Ö Næï9 »5’Z—ÝŸ•É8ɲ%ýý²ÇÝ?Ã3 âÏ+¨$ó}¾Ë¾¦)òùRæûH–ߥyì‡ñÁÅLèƒ_Îïƒq,ÍVA²LI,ce±k˜æi˜5!â.ãò}bûF²LA,ISÀ¨Äì×!™fþáq "àѺؾÈ…d™²X»Ú±ã`•”õó·žÙq„HeP}#ñðN›®¯Y.cHšnKD7ƒy d®Žê›—ä;î)+楜ªQ4X'XÕ CntԨݡ=Dä¾frªÓìy„¡Öäu÷ã¼ûK\²LYñËcÓÃçVÇà.©4¼R=Yô®Ýòæíý×q÷îç.Î8Á.,n•5M7çÌ.á—}íÛ±o–¦’õsµmùdÌ+…±<°9 _Œc_Rã .?/[´¢÷˽¬VGýîèWÓüü5Òmßå¢1¡8;¦ºïùß/Z~m/lg?ÚÈ%ËÅòÐÒž£‚•r#ö¶úeXP÷»~p§äöyU§ÁÊÞá~3|Kvs7_"RÂK­­‚5ëx¼ËçSÎk‘wñ°*Y¦,–Gf*± ë=hÓ=Óð7÷H—f‹wç†÷¥n½;_…Ìâ÷#/3•w傲AƒnßUÌppÉa¶ËÓGÚØÆòè´€ŽYõç;÷Í8<À¹EÏH«ên¿n/,^•¿{vÎμuò«©l»Y þ{Ù ìP¿}Û7ýsìYr÷x—ù±)M—ÓývS5vî›qè™ÁÇ/Y\¬°AÞ0wxÔÉYÇJt ;ªÀ#K/®.Û¼qȱÇó°2%à˜´±)ì™äÈŒ“Æ‚Ú}Ëz½3÷åhYåÜ›-ÖNNYƒ"Mõ?ܤ;²¡¹ÊHiZ«ÔïØæã©»—ᮃJò±Lйóé¿Ä’èÏXšFý𢻭£Y•Çöú'[þh%UŽÓ™«Z0ây1}ÐÑ¢B4¢ª_qà€áv¦ ÆEõï_ÿT}O.óý2æjºŸ$,ÙÏsn¾,SÜëî̈ù5æjºë—,ñµ雺TEJÒ%éžÝ×Ó7u)4ŠÉ ‹zi`zM¸ùµgãóÜ¢81ÍëÅ4ç(è=ÚÌLâ9ay5À÷×åÝ?»1éJIBÂ(ñ'ÿµH'þÙ:{:c¼Ac¦¹ÁôÏÆNNâ9aúèoÄïÏR‡’»UÂFÔt¿d<bþ]ý%«øg±h1ó@ì‚HÄ+WOòÜ­§Ç@n[t·HÂõ/‰XÒçnõ¼“$¹[:Ž5¯®ôŸx&!D9W“Ì÷‘ù>’¥d)YJ–ÿO–$€‰Ço–0eT“PÌ}'ˆK–)ŸeLŸ‰x…˜µ™ûδC²LÑ,‰ß]!€©ƒËªL!”¥åTËÚ¦ àÆÒÅ5&Y¦l–‚­7$µ`·ÂL0•¨Ü³½Ê„në®­Ä8€A¿ÝË[•,Si6¼y•!UŸXKãÞÏëÑxÍѵ4rµÍ’ù4»–Eed¡´ycýǧ2VyWðQô‚¦(—Û\JÝúJ¡³›Âô[›Œ È9ÔR¶.OÖ)­'²ÞžÁ‰ÂB‹n,¼œqO³} UÒÍ;äƒãw]eë‡ÝMspìyI›Òmlãmé5àe,;¸CãŽëô5èËo¥ ý€ˆÕTݲm¤6à@ýûÕ.ý’`m¶$Œyõ¼›$±èÿu–ʉæOҀʺµ…z]¶·hmãÒ±QX 4.¡ÚÏÊ|¶ÎÔ©ÌåcÖÙSª&ý:R—ÿ/]¶za @MÚ´…ú÷=ß/ li¬ ý¸àý¬~ú>¨õåÆWÓË5S6KMwÔ¥¥Æ ÛTîÞ *.Y°uõí~ÞÍ ;<é4ž©Û½ð’»•åû© Æ±ÒÆ¦4_{¾3B ‹¬^kGñÂà]ÄþÈrrÊn_X¯¼ÙžZIE¦®}©!1k&*Ns’ÜÆžHÉ,QJ‰kÍ‹û§æçB$”ñl¢A‚½m¼/“ˆ]!ÉcÑݧì5 4¤”ì[gL ‚†L$D þfô¯V*ý¸=¢cžIt咚密‘ßšw é«]_FvQÔߨâ÷-]ÆfâD„àŸÌÕÄ’e½¿<„0.µGX¼´±HìnæõI@kô”$f9pcõ¼f" Å7a#ai+JñKÒ aº?é 15èfw˜‘Ô6ö‘È-9¶Ê“~ëóßÇÒ(¯@©TmŽôÈÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉòß±”ïý÷YƼ)ç+øï³”óÈû¥d)ï—’eÒß/¥.¥•,%KÉR²”,%KÉR²”,%ËÉRúð¤OêRÚXÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,eŽˆd)sD$Kic¥•6VÚX©K¿”,eüR²”cÉR²”,%KÉR²”,%KùL"ŸI¤.¥•,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”,%KÉR²”ï ü,,å;R—R—R—’¥ûH–’¥d)YJ–’¥d)YJ–’¥d)YJ–’¥d)YJ–ß%¢€DXš}Á’€I —,M×'Yþx–šÑê+]’@$$&X|–Lã 2 >KL²üñ,5åÀ¦-}Á2–†ˆÏ2Êú¢±’˜¾¸ˆÏR( 2ÉòdzÔy­8ƱdìÆÃO›k´ñ¨a?ÃܬÜhõöÙ•ù}U%–¥¦xmd}œ5”,¼.½67Ýi3¹ˆÊcY‚Ϋýà,S­z…ͺTF¥–¬œý ?çUG^:¥2Mñê÷ØZ PÖô>ß«‰Æ%ËÎò»cƒ-Ï‚ÓB KÅ{Ö辪 i¬Å±¬9ºÎ‹jÁ¶^÷ &]"~.4Ϧì;/˜dùÃYlþ0;äë3Ԩıܶy/õI=Sm8¨AK¬=¸á£Úç2lر?–%ðg…Rãï÷Ú,4Ë«ŽEXõá‹J¬U¶¯?ÀzZ/0ÖÔ0KçAõ×=›n³×^f üEÁy5½EK$ËÎr׌‹½k¶yF]<]®;ŒÝm7ŠgcËn~¿ÂŒ«6úi1, ¥º ƒ ¯V¹dùãml#?§gÅwÔQY¼±ÏæÝ¬¯õc£þ âÆ>¸¸f±?<‡Ú\¸Ü3ÖÆ2Uw¬eÅèûJ˱O x&98ТÀåÊ›ˆAÜ3Ixxf|ÇÒ‰7©m„0?_2ˆD â=_ñ›þÜ%‡|&ùñ,‰…i¿ËÑ„ûÂW ÀL.ž¯@cˆ# ¥¯ Eúð€†_úcãUö—¾uÀPúðRDœ„P.ã$2æ%YJ–’¥d)YJ–’¥dùß`9ÜÿL", mùšå®^a¹£ÿÃDXö¼ï#Y& ËJNsâÖq?}æë³‡gßUó«:¿Ô}]tO×ìë½}îø€Ü’c«ä8×`z—Ö¨±gctB]ò­¦WŒN KKß»¬¾Ò¥Å‰9Þ–_éÒfò‹eQR—É KËöMgu&k1eº…ñëÓ † Û‡ôś΄æ6ŠDd‰Aâ½ñe¯˜:å‹®IÐÙ—%~½àO€|Q+þiÑ¿` ÿà´ß`ù7Ú _5—H=zœÁt¿Düô1¦×cuI ¾Î1ß;¤˜Êcui.Š_ê2ÑŽ•ºL]"’‰%qyËùoË2¢ÌºüÒbÆ–IL— ¾™R—ɬKd±,$Ëÿ4KSqÉR²”,%KÉR²”,%KÉR²”,%KÉR²ü,Õäg‰ 'Á‘€Að8– „B1,4 x<–häŒâw"i¦Óqsˆ!’¦ H±»ÿ‚%à(4å‹ïjBЀh¤j P#ÅÔ Fª‚¤r?¥.Ñ” $˜¦˜2À@˜tÉ@Ä6€¨,†%#b 0vR@bñ¼‘qºd`ÛˆØËù3–H ¢``:w¬®óÁ@ ‚€ØF Hˆ ý”6V(·'}ÐjŒP4~kÊ'C­Á:ŠÔs@ÁBî·(€![¼OÑ-§2Ó$iÁ:8jH€€DÄ/m±ÐÛ|P3 R iF @öz÷뻢H+Ø™  ˆ˜©Aó-€ÀÏž¬EÙ¼ZÝ;ƒ @L#ä{ÞöÔØÎÝ5Ü®#j–êú¦i ”  ƒˆPò[»¥!ÔæÕ)-€ØÏÃ’xPór-~_—mWª«µ+µy²ªÒf­á„Š$€[x蘑q#£Asï?²¥‰Æ At™Y¦®[Ç(K i@œ^a{ñ|‘e’ÂTÄ ú‹Ížyöë †Í7rštÌÔ"•0• @c›6â{Û}G£@eÀƒnÒ”?ì Ù?¾M£¥ˆá ç?ðüXìp 0*ëv }`Õ»4f¬;¸‰ˆW!þ,,U ÿL€¨ÒEvµ¿y àrÍsÙªN­ ©€…*›y ô©² [ú$ÀÚ.7 \)~Ò¦*¼«=£¶‘ëØó`;'ŸS=½R> lý ð}É\ÃÀ÷¥rÒÕ!+gß8ãx¥~ÈYRÓ„vÅA3XÃgËçÂöt>{•cÀÇR9TåÓVÙÆ`°:5È7]´Žñ'ùì5ˆ²9ÿ±ºþ’£¿ÃÉ^ažÍî”9T5ÜjÜýujõ]/?×äªÁJ%ý ÛŠt®NH^Í•(ëA… hüS`ZG‘Hˆùrì£égNxc«jÖkº¾Ÿ³l¿ƒ/l;ÌÜôÂÁt¡V=ߺ×è˜9ìpöŒÃ&FèÏÜy@íÒî:mn{Ônm@º'Ýó>/µÙzð£èבsGY¬œ~W'°CPî»ëë:žÎ}w½Ë¥Ž×–OŒ¸£ûõ4n—r^ï<&õ•[«\…¢³>-ËðæÊä‘‘îs<ØTã ‘1ð™ÇìÆ¯òí0¿ä¤ù¥/Ö4óãÇ•7QîáC†¿µ6®Z3ð½çë*í„óÚž5®)m>¯Ê2bƧͫMlØ©ðûzs^—šÔ³ïÅ_Ê¹ŽŠ´\1åW¶õ É1qÓ½mýBrLØzûªÛõÕ}!úØú«¦\µ;ÑãÁ­b¿º¥¹w»íqðéä[}[çׇ„dóØ}{Öþ@­îÈì­/Ÿµ/­Ã^ëGªl}7K–Úëï:ž)æ¢ßW¶wꑺ\??þî:'kôyë¬yäpãyÏà –öXºèÎÙš×ó R×0sb`™6 ·œþ¡L—qå'aÙñù <,q¨:œññ;é¼=•ãŒj]?z;ç\¹Ø×»H5÷¨WÝ÷·Ùï¨r»‡-)w9+zÜÙU~‘cÛr]Š\þGÝÚÓ&ßtè’ß#ÊrÅ”œ»¥ÿM|(8Ùæ7ñ¾´¯hvcÕˆEÀßÛc÷ùÞÓ]ׯ_iyÕZã €Áü]¯ØßÏz¡ø½ôù«ÍG:WPÎö½t¹ÇŨ2'öoöW•ŠÝ»ØR>ªÒšRs<Ï”óKeÐÃaî¤;['?XZn[™Èò‡Þö>Ô3Dwfhй×ó â-jõ™p}L}>¼à6;ë%×®$ž;ô¿ÇR?Ñów•¢lw·zìWªÀÇŦÕ:Öëd¥}å—øî,žË`‘q˜óÔ>Ÿõ¤ËÙrH‹:\å³£ÂìêíÊ·«qIÁå'v»‰nÅGEY®˜z_amËÒÈqóœ"ƒ5ª¼ÎªñÍå3ˆÔ ÖÇâ|ùj×@KB(˹W7DZºU)Ø_¨ŽkÊn]y/­WT§à󽃨ìÉÍ!ë¢,ÛUî_l»}˜ã–â—š ÜdY©ª×o 'ßÞ2ñþ†°Ê;Š„:Ýç|àHK¿‘gÏÕÉ+„¾U­>c_®Æ±ïû/g)RÅé§`IìaaϰíÆUÃá2ö GïÑ­^=cÔýŠ^%šN7kGuñ»£ìkr%cŽ h®ßVaI9÷Ò}ÒúW÷¨í‹‚ŽÅFDY®šv—ónOÁã¢&Ý?ŠßŽhueåìûŸ²/óÓVÃm×+!Ýü­MãXømæ €Ìk?<w*\õ©XZ[Œw½|~ÀÙ¨òGü‡?È5§uñ-öU63Ô¼ÙzLöLsê—i·7Nz¶ú£Ó¶"á•¿éw&h„¯E€G๺ÏS@ó:½&<[÷È}7 o¥±Ÿã™D(Ëú¬{·?œªv¦^×:Æ-~A¹J·ëšÞc֚ΰh¯ïêá 3Í|à}-}ßlG猛|¯hÉ ÷=|‹uØ®àÌvWæÜž¸¿Z£RS IÉÉ‘V¿ŽþC‡!•Ç–™Ýû¢ÓØ2ãsí¸ÐìùâþÃ@Ù2éܤ׋î]ˆl~Ó½·ì€¦CÞ¶éæºêâ­+U'[pk ßlRÓÆ ]lº±œýþüE«u\yíÜ_:¬èþRÐuÍÎäW£æ1>úÚþ ‡6f/x¤DhÁ³¯;Ü=Ù'ØÒ§ïí *]ÓCxÓ%•F yâ Ãîª:éUŸ¥TþÓø NOþ N‘>§Òœž)2M/L ·y4Ùï~-'œ½Óçyc±_õ,jª¯ëÝ’n¸7?!ú»Ò¼3ÃôΡCoò~®´5sMØ’¥¦QwÖg×”}sÕ|‹Ò°½óÔ|‹Ò¼Ø>ôâ–p"Û~ùßõx‘­û—.ëpvêøðhwf‘Àtó £÷"µÐÛOÃosÇ)ov ïùvõþf9®O=¿H¤§[ÃonY hG:›âØŒ|Þ´»2¤ÐÂßÜ3G/ê¶kàý•‡<[üQã†æÆLUŽ~t…c´}3ð…èÞYßÄWD ¨ÈáZ~=993­‡…œP 8i âHšÝ-×k !3‚4ªšgQ0ûØÈ´L<ƇªF¡Ä”d0ëæúH«xEUƃ‘›>t 1 4d@D Mçc¤2nö7˜ v\Š·y‡©yêÏòL„ B*SHd !‚Ð=îsÙ«ªÊq "Æ‘4Ô]o~ÁN%†‚Ê Ncš¨£ C!i ¨ISH$`Œˆ bLhÐ4ö™sa»@`d:B'¡àDŒ4Ž˜Fšb:;i iÈA¨r$ƒ¦ÆQh:Ò€˜ÅÓþŸ.æû_DmwžrK$æ…¡çj(ôb^Äî½w(ã—I¿` bb,MVô»Å/Y\0D²LªX´ öX´Àï‹&Áÿ·YRìÀKæü7Yêä»Aÿ;›0±$pœ‰dÒ¥¥fÀdÕ%Y€’Y—dIј|ºLÓËŠLï¸[YP>á{ÑIÃXpš|F–Œ,I¥Œ˜¬,IwÉÂÞˆÉÅ”·ÏßfTÑ4÷Ĉ ÓÉe J¸Ð’Ó¤º’a2[<—+K¾K<êv'0³pVK&]s÷ˆÖ'£.5]Kò6òdÕ¥PjçX› „™„ººƒîâXú5¿OÝ/YÑö†de©´$oY²²äµs¬5&K%>ËDæjúßbÉðg`išß'à\òØXâEÛ'·m;ÉÌ2¹mì÷鵿f‰Bäq¹¼¦¸)Ÿ%ª¨Ð÷di¾„äci®4~×%KB“ëí_³ü+kö#P¼=¦ 5Ÿ%qSJù÷²±hrÂr „)«V" F")l¬é ‘ˆ™òÝ™æº&ŠyøNËbö¿¸ú$¸_ ~oS„ÐröH­¡ d !ªú}Ïû$1$Èæ—¬¥2ÈHðØ4ñÿ/ËÏQv >«©#Éš@ûl ˜Áh¡XÐwf "ÔJ€jX*žŠ!Fèô„za›”,#¢€»x¼ŒQ©âKâ;±Ôt;Zw´ oû£:RTDâ@3î®9‚Ê[Õí.06u›Pü –¤é<(B§æ)3fúpûÁCÆ´õŸ~û·2§þ‰.ÿæ8VSöº/¶â‡}ïYö>MËÙÏnzÁã‚g^,>ºy…?ìXw`ÓJðZ kÚ¹m=¡gæ±ÙO燶¯}µ¥K·Jo^®>0~½ëͧVäÞìs—þÖéNZpáÚT®Véwp¨>ë«Lÿ¡Ë³Ãºe.?ê¨ý€¢>s¯‡Ï¿¬»pÎ>g]^¢Í•ž÷|ámž“¾ÈÊúNºlt±l¤.ÒµÏøg`ا©¹/¾A!"Ill÷Wz€l£>Oª­¤´W™IŸrŸ|µøèÆ{qã–ü÷à†­‡»¦Û1ëtì”kd±ëz>èê©Dz}Ù­î5Ë>ºê½¥A“+x«¯Ëµ­á–+Žïr­–½u-ƒUp•mFþml¿3UF¬ú¤‡c¿"‡FWíeÓª^`Ù^Q6­8¶¹Ü:¨l¤åÉžÈ{ý^6¶è2ƒN¨ú—‹‘Zë‘‘ºã³} ÉÆ>Z–qü·ÛsÛ-9w.9\x¾äÐf¯½°eëþM;öÂæmû»§Ýù—éÐ=ëøô§JC]q#;ìô7èÇ\Ýצz6÷5𢿍$¾ãýò|¯àqwó]:Ú¢Fß"GGåfÐWìç›y†A_±_¹¶—›¾fýÙ17%Áý²º½'!Žx¿†©][ÞdlÝòÓ”4Ï$½ô:ßg¬Š´o°s÷—œyùÂÝygWmð‡Õk‚Vnô‡UkƒZ§[Ö<Ûoàšqq‡ó ÎNmâý¯XêÝsO¼¶Ì‰;ï/9¶Û¾ÊrhpÚ~EûO…*ìmíÐ6ÿÙ’Tyh‹ï¨Kål¯Ëwªª6«Õ?Ÿßɧ 8íêy¶µ…Û\›¹ö\ê|"#%Å86ϯŸв ÿc- ]‘nÄhcåè+I`c¿½6ŒÈªGQš¨ê=óÃ…qÔ©ÿÞŒþ]ƒ¯v„àÎÁW;BpHç]VõvÚ:Ã.›ºÚxÿúžœøW6Vß=ÏhçI#®w¼¸æÄÖ#­ [„ëÏÍSó“ÑaE—B#ÇÏ­~«Ì&‹ïù|yqè1}Ç·­Üº—ßÏùŠÃK1ªMÍk¯Ô)E»û<+tzÒ€/[ßI—m¦72ÕòöÔ·‹aüKVô©d4äÞq’˜pä q  +aWß;©ã¥nÇ|˜~ sYŠ»4ðá÷0nC¿ÛZª¡é"©Ùó©jGÛ*nçªø9u¨bÅÏÞOW?‘wÉÿß>»ù*“!~I<âxdÅ<~3æEüÒìÕ™†ÿÊkö¡Æ€@ iò†æ $dßÙ·N€d:)! F ÌÓ˜ö!KlìL÷hªRøYì“2MLóp|3~IÜäK‹N–¼ÒÐÔ3ߌE b€2¯à±Ld ¨¤Ê±w•Ì,[ÑÎdgY7ÇêdeÙ!ËÓÉ–Sißyh2ç7¶^Ü›s®Éy:Ÿ–ÒÆ²ô^þ÷sîù–.Ýx·Zî‘ }U"ÁÄuHUQâ[¼ãÌ¿ «ñ49Šý½Ãà¯/à›UÄÏu¶šÑã3Oì4VqâºLø¿¯ëgç>Ê`ò­kúéSmŒ,,Íù-ÉÇ HV–€è9“ˆ%0-í%³ŒŒˆYºË”ÚÂKØ”¸÷cl<3VcŠÆ{³‘ ø³÷¼˜ .¾¼ñ0aþ¯`Ú?»_rs†˜*¬N•øý’‰ÿ0üOî—_¾×ùõFתoÜ/ã®LãŽ×3澋»_2 ´cæ9Ô@¾çõ_ßD¼5 äû—ÿí÷/åPÿ[ïEÿ¨óiG“úÜIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qt-colors.png0000644000076500000240000002666512536324501021373 0ustar philstaff00000000000000‰PNG  IHDR€×»w pHYsÄÄ•+ IDATxœíÝ{XTuþð÷pg’QÀ+ƒ¢¥±d ^@¼ ¥©¥‰·ew)ËÐÄä"Ùz‰"YW[ wŸ”Ü®˜¢›õSò’¡«¬ˆ€€— †Qç÷ÇÈ0¢ ¦p`x¿žŸ3Ÿó=ßó=_Þs.<#Òjµ ã%‰„µ%Î_ã/ô¨ ™=""¢®ˆLDD$0‘ÀDDD` €LDD$0‘ÀDDD` €LDD$0‘ÀDDD` €LDD$0‘Œ<€ùm¸F ¥¯¬þ}_eÍ/À&j Ú¸¸6mo”Ì„€0D"‘î±~ˆˆ÷¬«ëêñãŸèÙóbuõ»?þ˜òË/B¨ uÑfèu4Þ}ûn}þù?}óMfQQßÇ[9v¬qp§¿íêêš—— ´´ÔÄĤ¬¬ ÀÙ³g]]]u 6oÞìììlaaáîîþKãÿKÝ¥iý¿ú+Õ QQQ2™L,*•Êö?"ºÓ›o¾YQQ¡R©>ùäKKËfk]\\ÒÒÒ”J¥Z­NOO—Édºº¹¹ybbâåË— ŲeËšmåééYRR²téÒö8º§úz„‡ÃÞR)>ø ìíqåJÓZ™ ••((ÀóÏÃÖVV@eå­"6o†³3,,àî£þ­ÝAXšš~:mš*:º<"b¹··¾î"•¦Í™£ŒŠR¯\™>ožL"ÑÕµqqa#G^ »yûÅgO'§’ðð¥#FX1jTäþýûΟ¿ÑÐp^¡øó·ßJ­¬./_ÞS,Ö5671©\¾\&‘´²—מ~º(4ôFlìÉW_}Êѱ=Þ‹ß«Óp@@@VV€´´4KKËï¾û@ffæ³Ï>«k••uèÐ!…B1cÆŒ… n«;ÖjµúâÕ«W?~üĉÖÖÖ+V¬hÏc¡–Œ;ÖÍÍM.—;88¼óÎ;ÍÖîÚµkýúõ2™ÌÁÁ!///11QWûí·‡êîî.—Ëûôéc¸É”)SÒÓÓCBB’’’Úé¨uo¿Ó§qò$ QR©زåÖÚÌL<ó d2LŠÐPTV¢¢ƒ#<¼©‡¬,:…3fàö™Nma•ŸŸ½D"OJöÑG~r¹¾¾kΜõ‡Ëò®^Mô÷ׯѧGr²I|¼¾2eРôùóCvïN:rÀ¨~ýöœ;g¸…ZzêÔBOOÝËqrùÑÒÒJ•ª•½ø:;ÚºUºví×gÏn™:µÿ‘èôw@ÓÓÓÿõ¯mß¾ýÙgŸussûïÿ»k×®Ù³gÿùÏž}ü¦Vw·¶¾\[kج@¡8ZZ:sÈÔS§ÆÉåáûöµ¾]ú¨­¯73éÐWy;ôàµµ««ëƇnggçéé¹aÆ'žxÂÊÊêwôæäätáÂFÓÐРËàG>`ú东+**š­Ý¹sçßÿþ÷Þ½{›˜˜tëÖMÿ±éÒ¥K.Í~§|||fÍšµ|ùò63=''Üùi)"IIøé'xyÁÚ^z ‹£´7o¢ªÊx.tBå55r©T·,·³Ó×wΚõ÷£G{ðI||·µk[9‰ñII™5dˆáýãì‹'xgË÷³³—ŽéÕ·ïO/Öi4´—ެÓ0€€€€5kÖLš4 À¤I“Ö¬YpŸÛÚÙÙéžáÒyíµ×.\xþüyF“››Øì’ $11ÑÞÞÞÞÞþÃ?ܾ}{³µÖÖÖjµZ­VËåò-ú»†À¶mÛ6lØÐ§O;;»?üP_/))ñññ ŽŠŠj§ { Â’%()Áo¿!,ìVqĘ›#: ܪÔÕÁÊ VV(,ä^aíÈÍMô÷·‹eÉúÉ“õuk33µF£ÖhäRië·`Kª«}RR‚=<¢FÖUÖ<¸v„‰..¦¦¤ÒO¦MÓÕ”–Ö74¬?þ_¿þú {éÈŒ$€«ªª&Nœ`âĉUUU÷ÀO?ý´þœ)22rôèÑãÇ‹ÅsçÎ1cF[ šÄÁƒO:UTTtõêÕ·Þz«ÙÚàààÄÄD•J•™™yèÐ!}=>>þÌ™3999ÅÅņ›”••ùúú.X° 66¶=€î).Oú6^È1(›]þ HG A°Á˜ZZNûôÓh•*¢¼Ü{ùr}]êâ2'--J©\©VÏKO—ÈdºzœV;2,,ì⟛7 ûqòô /)±t©añzUÕ¡„ݰÈÔtüš5Ë++cjkg¦¦ZØÚ¶>z"ˆÞÅ»RHà”†´5XÓ=œà´ûu Pð<ž·…­¬P‰J]½uA’@âÇ÷ðžþD¶ Qˆ’A&†8ÊÆÙ,‚h36;ÃÙîpÿ¿ ñôW‘~ó–vG͘ZšNûtZ´*:¢<Â{¹·¾.u‘ÎI›¥ŒZ©^9/}žD&ÑÕã´q#ÃF†] ‹»yÛ‰¦“§SxIøˆ¥#t//üpÁmŽ›nÙõ9×+g¯Ü³g3k³éÛ¦ëF2êÍQúY‘©hüšñË+—ÇÔÆÌLiak¡ÉÓ¯=Z{#öÕ“¯:>åˆÆÓß8mœ~ó–v×ÎŒ3€NºßÍ«ãÀ  °V4¶‰.…@p@°‘ø­Z%±·O’Ë?6Lî积ÏÙµëðúõ 2Y‚ƒÃÕ¼<ÿÄDýª>#F${xÄ›4ý š2e~zúî#II†[vë6êÍ7ËùÀ˜èè^žžÉ õuu×­k}ô*QY‚’wñî\Ì­@E1ŠßÅ»á×­Š©¡­De*c°¾‹Ø*T¡(¹qPßÛj¬>Žã'p¢Ö°^Ñ4›‘…¬C8¤€bf,ÄBZhuÿêZÙ5ã·ÊOb/I’'}4ì#¹Ÿ\_Ÿ³kÎáõ‡d  Wó®ú'úëWõÑ'Ù#9Þ$^_4eÐüôù»CvI:¢«ÝxtÔŠQºC¾q¾úz+=û­ò³êfµÞyý&·MýF÷Ó·=¦—g¯d䇄úºú‰ë&êW9û:oµu­tíÙ¯ÏNÝ2@¼(^÷¯n¡õiO"£|ÔD”½_:û€Á€ `PèdÿÆ÷nÄß»I‡^R’âë{-?@AƒçåÅ‹šß½3‹C‹Šd2qZmbïÞʲ2ݪ8­vÏâÅc¢£S§O/;vL_Ôo[séÒVoïߊŠB‹Šþåï5/€ÄÁaQNÎûŽŽ÷9€(®cÿÌŠ ºŠ«ÝÑý:®[ÁJ¿l›zÔ7k\‹Zg8ëÎJû ÏøÑ.ò‘ï W]ˆ:Ãyö Æ`¨†aå(7Ü‘®Ÿnè¦ë_‘¶…·ÈpwV¼@38¼$<Å7åZþ5=õXœ·X]zæbóТÐY€8m\bïDeÙ­ qÚ¸=‹÷Œ‰“:=µì˜~’ÆÅ‹â¿ ÌùgNÆá¯ÿ,à3]±•žÃKÂ?û©¢@ ûÀîKÎ-ѵ- ý—ÿ¿®æ] q,ÊYô¾ãûº½¼×㽺kuº~"«"W™¯Òïý®k¸»vfÖþ»l½ –K¡-pÓàiçr@ÿÑÎ¥ý†Fwaãè¨(,Ô-+ ôõ¾ÞÞÖ­srw7—HÀ Sõé«ãž³m›>}uâE"ˆDR—i[·:º»ÿVTdÛ»wÈéÓ ‰LLô¶4zHºP´„¥á²ÝÚld¯ÀŠ“8©‚ ÏL•£¼?úë–á¬ï­¥C1€Ú›¸iøŒ•®sbˆõý7ÓÒî¨GE¡B·¬ ?¾Þ}'¬›àäîd.1n;eѧ¯ŽW¸Wζ}úêÝptâ{µZmFt†a½¥žmm~»ð›nù·¢ßôím{Û†œD&"ÑèÒ@}m½‰Ùݯò¶r íÉhØðÐûŽº#PØx\ØÞƒ¢ÛÔ”—KårÝ ¨¼é’׬;÷-[–¿wïõêjK[ÛȪª–zHññ Ê̬S(²nÿ$«Õ*ΟÿjþüWŽ+Ø¿¿æÒ¥xy)KKïsÔ¦^ÂKàƒÉ˜üSBÙ Ýtu8\ÀÝpŠôíàô~ê}—ÙüP»£fjÊk¤r©î ØNn§¯ÏÚ9kß²}ù{ó¯W_·´µŒ¬Šl©‡Ÿ” Ì :E]vB¶a½`™•€óÿ9oXo©çšŠ»þvºvÎM#©¹Tó¯(KoKýûwÿÒ¦Œö°¡×€…Ày@äõ9@8p¨B… !wÇÿÄD±½½D&›¼~½¾nfm­Q«5jµT.ŸºeK+=T—”¤øøxŽŠºëÚâƒÝæÎýyóæ©[¶H 013“¹¹ÍLMm}Ô¦êPg++X¢PwãV'Ë°ì ®\ÁÃ;µ¯áµ…Xxç5Ðä"7°i6ßìòwÏÝQ3¹;rýýÅöb‰L2yýd}ÝÌÚL£ÖhÔ©\ª»½Ú’ê’êŸ`ÑQ£›­Ú8dãÆ!›t¶Ôó©ÔS“>˜$î)÷Þ©ýyóÏS·L•š˜™ÈÜd3Sg¶~DêßÔ=÷øÒ¦ºDG£ñ€˜ Ìh¬¯¤@À ðp|dÆÆÖ)a.,ÊÍ-ÊÊÒ×Ó‚ƒýcTª ÌÌâC‡ZïDYV–âë;lÁ‚±±±w®=ññÇž \»¶øàÁ ŒŒ˜ÚÚ·o?óõ×­€ÚÔVl G¸’q7 M”² «l`Óý†bèHŒ4‡¹®‰ÈÑ=ãÅÏÅÜM³ùî"ñ4žÖ_jniwÔLflf¢.ìBØ¢ÜEEYEúzZpš¢Œ*&(3¨øPqë(Ë”)¾)à ;öž{l©çÌØÌ57ŠÃ^?ýzÉá’›õ·þêáàڃŋƒ2‚bjc^Üþ♯ϴÞöûÙ ^¨ ú¤íçCX¤×Y¢ߧƒ?„õHœÅÙgñlºây¡Âê˜z>ÞsÞžyI.I÷nÚIt‰3`"êt¦€¢å˰l:¦ =Œÿ‡þVR+G›IL:ûÍY¡‡ó(u‰‡°ˆ¨Óq†ó RCý<žï=ÌoE¿-ùß3+³¼´¼Ì·2…ΣÄKÐFްŒ[W¸Ý•ñ´qã%h"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""ˆøe*FŽ_¦bÔ´qB€ÚR<ç¯Qã0‘ÀDDD` €LDD$0‘ÀDDD` €LDD$0‘ÀDDD` €LDD$0‘ÀDDD` €LBÒÆ=Ø÷Q?h{2"Qóê âpJ>hû»nû0t( `2O9>µ{îîªÈªº˜ºìàìŸxQèÑ}ùã3~^ÿrðàçÿøÇýާ=1€©Ój?tïü½;Oï쿾¿t4â?óþ0OèAÑ}ÉȈ3&Fÿr̘˜ŒŒhÇÓž:y×A€pÞô—§DÀ‡@߯ãk¢ ec³–ê"`3à XîÀ/íyHFÎÒÔòÓiŸª¢Uåå˽—ëë.R—´9iÊ(¥z¥:}^ºL"ÓÕµqÚ°‘aÃ.ÞŒ»iا“gIxÉÒK¼åóV|Vü¶œm¿©SkÔÙ³_øü…»nn*2]3~MåòÊÚ˜ÚÔ™©¶¶ºf-ÕµqÚמ~­(´èF쓯ž|Êñ©6~{º …öö¸råÖËúzÈd¨¬DC¢¢ “A,F` ”Ê{P«ñÊ+èÖ ÝºaáB¨Õàꊼ<(-…‰ ÊÊàìY¸º¶õu!¦¦–Ó¦}­Šˆ(÷6˜ÂR©Ëœ9iQQÊ•+Õóæ¥K§p\œväȰ°°‹q·Oa''Ïðð’#–––©©)0`€ükj.••?~Íòå•11µ3g¦Z4ÎÇ;™™YMúqddUddÕÔ©[Ì̬,Yr®GÁlm{ÇÅÝ´µí gÏÇ—,9×ïÇCéä TE@.pðöUG€€îÿøjà8p¨¬mZªÈ `°°í¤ËXå·Ê^b/O’ûh˜ŸÜO_ß5g×úÃëe 2‡‡¼«y‰þ‰úU#úŒðHö0‰oúY2hJúüôÝ!IG’Œ“ûêÌW-íÑpóè1Ñž½<=’=êêëÖM\§kÓR€¯³ï¨­£¤k¥_ŸýzËÔ-îèÒ¤RbKãÛ™™‰gžL†Õ«qü8Nœ@E¬­±bE‹=¬\‰²2œ;‡ÿýÅň€€de@Z,-ñÝw·:öÙ6>ž®ÄÏo•DbŸ”$ÿè£arƒ)ŒíÛ1`jkqô(¶mkë£éBllSXa0…ûöõž0a““»¹¹ &‘òö)ìåž“³­Ì` ÈÌ|ë7ÎÿíoØÚö 9 ‰D&†]Ý1ýЉÄ@QQÖ³Ïn°°°éÓgä—_Î}ãóææâÞ½Ÿùæ› ßØm£“ÿBq.ºyXÔr3'à' ÷}ש͔ה˥òükùävr}}ç¬Ëö-Û›¿·úzµ­¥mUdUK=ø¤øde*ê Ù ºÊ~|~ðóŸøøž{¿TsÉë^¥ÊÒû¬S›ŠˆÀÒ¥èß^^°¶''üôzßÇ”tp@a!€‚Èd`m WWl܈áÃagOOlØ€'ž€•U[FSSS.•ʯ]Ë`g0…gÍÚ¹oß²üü½×¯W[ZÚF¶<…SR|‚‚2ëêÙSY®û·¦æÒ?þ᥼ùXSS¡ŒTê¢RUÐhê®^=7|xHié1µú·K—Ž?óÌ’+WÎh4êߨm£“_‚–W€+@xËÍ^ç Þ«NmfGîŽDÿD{±½L"[?y½¾nmf­Ö¨Õµ\*oýVkIu‰OŠO°GpÔè(]eÕ«Vù­šë6÷1ËÇ,L-|úû´´íæŸ7o™ºe€t€™‰™›Ì-ufjëujS#FÀÜÑÑX°àVåµ×°p!Ο‡FƒÜ\¶<%gÏFh(*+QY‰¥K›Z`ÍLš“&aÍ^~Ärswøû'ŠÅö‰l²Á63³ÖhÔZ*•Omu WW—¤¤øxxnœÂÍüüóæ©S·H¥LLÌd2·™-ÏÇÓ§?Ÿ€W6@?`(00o¡Y$0ˆ¹ÀŒ{Õ©ÍÄfÆ*êÂ.ä.ÊÍ*ÊÒ׃ӂýU1ªÌ ÌCŇZï¤LYæ›â»`؂ر±r*r¦í˜ì\¶¬L±B±ÊoÕ´ÔiwÝpíÁµ‹feÔÆÔnqû×g¾n½Nm-"çÏÃ×÷ÖËÈHŒñã!cî\ÌhyJþõ¯ppÀÀ8½záÝwoÕPU…‰`âDTU1€±ÌÌØº:EXØ…E‹r‹ ¦pZZ°¿bLŒ*((³ø^SX©,KIñ6lÁر±w®=xpmqñÁ  Œ˜˜Ú_Ü~¦åù˜‘SSSñÆùo¼‘¯T–8°RW?w.ÝÒ²[AÁ÷ΟÿÞÒ²[¼ @ÔòÕõÎæ,ð,Ppï†]K¼Ð ¶¤z'9X×âS®]]<ç¯QëägÀÂP,¦ ="ºoUUøðC,Y"ô8ˆÒùظvÀ;B†ˆîH„îݱx1úôz(DéäOAX ,½w+"êP´Fsó‹è÷êügÀDDD˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""€DüRãÆoô6fÛœ =jSùB€ÚÏ€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆHFÀÚ¾Ú¸¥:u@Zm\ÛµÐΉèþÅÅ=ØüzÐöÆÇLè=zú ½q£áر²×_ßýë¯Â‰ˆî“£££ŸŸ_¿~ýLMMËË˳³³Ïœ9#ô Ú˜Œ“H@,6 ¾}û‹O>¹IèѽÙÛÛÏŸ?ÿûï¿ÿꫯ4“Nú [IDAT““···±°Q]‚ðæ›¨¨€J…O>¥eóµÍ®Eë_ššbÍTV¢¶©©°µm¡’Ž¥¥é§ŸNS©¢ËË#–/÷Ö×]\¤iis”Ê(µzezú<™L¢«kµqaa#/^ »yó¶ëWžžN%%áK—Ž0,ÖÖÖ'%8°{³6»­ij*Z³f|eåòÚÚ˜ÔÔ™¶¶ê0éžLMMGöš7oöK/½øä“C‚‚æéêAAó† y|Ö¬ºŠ­­ŸŸï¼y³çÏŸ3aÂ8+++ ‹ÀÀ™–ÞÄÄdöì™VVVBH×ajj:mÚ´èè興oï¦É+•JçÌ™µråÊyóæI$·&o\\ÜÈ‘#Ú]|vrr 1bŸ¬¬¬œœµZ­Ñh.^¼øùçŸßuó;÷beeµ|ùr±X¬kobb²|ùrýÞ; c à±cáæ¹xçûÝ*:žžðð€ƒêê°n][‘n·j•Ÿ½½D.O6ì#??¹¾¾kלõëËd  yyWýõ«FŒèãá‘lb¯¯L™2(=}~HÈ#†[[›-^ü̱c¥÷9˜èè1žž½<<’êêê×­›øpGÀÝ}˜……Å—_~“–öL&3\eoßs×®=Û¶}ÀÏÏ÷Ì™³©©_ìÜùEuuõðáž7nÜ(,,4ÈUרÑÑáÊ•+jµºý¡«ñóó“H$III}ô‘\Þ4yçÌ™søðá„„„„„„«W¯úû7MÞ>}ú$''ÇÇ7MÞAƒÍŸ?÷îÝGŽ —Ë[9ß5Üüν¨ÕêS§NyzzêËåòÒÒR•JõÈüQ1¶ Ee%*+йsïw«à`,Y‚’(•ˆŒÄ /´åévs纅†î­¬TUT¨–.Ý«¯ºéÀº:MUÕõèèŒI“èW…‡ï»|¹Vÿ2$dxrò”çžûìÛoóôE­6N««­‰÷5ì¶uÁÁK–ì))©V*oDFîá…'úøè~Éåý;®V_W«¯;vÜp•®®[þöÛï.]*ohh¸q£þĉœ^½œü÷¿ghbb _¿¾…í?þ.ÈÍÍmïÞ½*•J¥RíÝÛ4Ë6mÚTXX¨Ñh®_¿ž‘‘1`@ÓäÝ·o_mmÓä>|ø”)S>ûì³¼¼[“×ÚÚZß ®Ñ]7¿ë^>ìéé©ûIxüñÇýõ×¶:øGÁØî6-8:ÞïV½{ãôi‰`b§¦Û•££Ma¡B·\P Ð×½½û®[7ÁÝÝI"1Çí·ÊÊ”†=„‡{mÛ–sìX™aQwØÚÚlѢ቉þ¾¾)÷3˜Þ½mOŸÁ­ŸÚ“µµuMÍ­“•ššÃUµµuúe™ÌÞÓÓ½{w©™YÓ¯/¥²æÊ•«ýû÷+,,rtth–ßÔFlllŠ[sV¿ oß¾&Lprr277o¶‰RyÛäõòòÊÉÉ)+kš¼uuub±XwÚª;Ó5 `ÃÍﺅBQZZ:dÈS§NÉåò}ûö=üa¶c `¹ùùà쌊;ž{Õh C÷ù©G¦ú¥KðòBéý^§¤G©¼¼F.—æç_ —Ûéë;wÎZ¶lßÞ½ùÕÕ×mm-«ª"[êÁÇ'%33H¡¨KHÈn¶ª®N“œüóêÕã›Õ5š›b±ymm=€=¬õõK—j¼¼þQZªµ»º:µD©¬`ccÓR3ŸÑÇŽ(++»q£ÞÜÜ|îÜ—tõS§ÎŒá©R©._¾ÒÐÐÐNƒîÚjjj¤RéµkרÙ5MÞY³fíÛ·/??ÿúõë–––‘‘-NÞ”””   ºººìì[“÷Â… ƒ>qâÄ=÷ÞÒ^²³³ªªª.^¼¨ÑhêÛ˜±]‚NL„½=ìíñá‡Ø¾½ùÚœDD@,FïÞØ¼¹©¾y3¶lÁ€03ƒ›RSÛsÈ]ÝŽ¹‰‰þööb™L²~ýd}ÝÚÚL­Ö¨Õ¹\ºeËÔVz()©öñI öˆŠÝl•µµÙË/{žXëääTDDx‹Åæ½{ÛnÞp é÷õÚµ,ÎȪ­Ù¾ýů¿6Î?~è˜NžüU£ÑÌš5cúô)—/_¹yóæ]›eg>ÜsÞ¼@ÿ ••— W:õ_[[›òrþÍw;ÉÌ̬«« [´hQQQ‘¾ž––æïïT\|É«T*SRR† 6vìX;vìpww_¶lÙŠ+üüüR[8%je/ÙÙÙR©ÔpH“àm.ãï&Ôi¥¤ zm¢[·Ç&L÷å—ß>ÐVƒ¹ÚÚÚ?~²FÕþŠŠò…B§äéé)•J÷ïß/ô@îÁØÎ€‰¨ó>ÜÓÂÂÂÚÚúé§=‹‹Kh[ ó!C?s&ïÞMɨYZZzyy=zTèÜ›±=„EDWMê…ž755-..9y2çþ7 š§Õj=nø'.ÔÅÅÅiµÚ½{÷VWW =–{ã%h£ÇKÐÆÌX/A“/A7^‚&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""€(++Kè1u9<&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰ˆˆÀ&""˜ˆˆH `"""0€‰Ú•¯¯ï#oID˜H¿;_ïÜ0???22ò¹çž›4iRHHÈ?þøc#¢vÀ&FVVÖ#駨¨hùòå¾¾¾Ÿþùwß}·hÑ¢ï¿ÿþ‘ôLDmŠL$ ý‰ìõë×׬Y3yòä3fìØ±Ãð7--möìÙ&Lxùå—óóóõ[ùúúê›mÛ¶íOúÓäÉ“mll,,,ž|òÉU«Véwñïÿ{Ö¬YãÆPVV0qâÄ7ß|S¡P(•ÊiÓ¦UUUéÚk4šéÓ§+Šö8~¢.L$°O>ù¤¦¦&55õÓO?ÍÍÍ5\õË/¿lܸñ»ï¾3fÌûï¿Æóæ¬¬,ý ôÉ“'ÇŽÛRçgΜùøã333DGGÏœ9ó›o¾ùæ›oúõë·iÓ&[[[??¿]»vé»züñÇ¥Ri›'ÝŽL$°ŒŒŒ;;;;;»ÃU¡¡¡={ö´²²š={ö¹sçîºyuuu·nÝt˾ôk_ýu;;;ÝrJJЇ‡‡¥¥¥D"yùå—;`Ö¬Y»víÒh4þïÿþoÒ¤ImpˆDtfB€¨«»v횣££nY¿ óØc鬬¬îºùc=VUU¥;mÕpÏž=õ˧NJNN>wîœZ­ ‰ôêÕëñÇÿá‡üüüNž<Ù쵞 ¬{÷îåååºeýÂýûÃþpèСûiùöÛoϘ1ãË/¿ÌÌÌܽ{·V«ÕÕ¿øâ‹Ó§O:ÔÒÒòA@D¿˜H`~~~›6mªªªªªªÚ¸qã=ÛÛØØ\¼xQÿ2((hëÖ­û÷ïW©Tõõõ999-mxãÆ KKK ‹K—.}ðÁúúOi¸*00°¬¬ì©§žzDD÷Eô¨þ‘ˆ^qqñŠ+vìØÑÎûMKK»téÒ«¯¾ÚÎû%êÊxL$¼¿ÿýïJ¥òÚµk›6m=zt;ï]¥Rýûßÿ~á…Úy¿D]Ÿ‚&ž££ãüùóoܸ1jÔ¨¿üå/í¹k___“%K–ØÛÛ·ç~‰ˆ— ‰ˆˆÀKÐDDD` €LDD$0‘ÀDDD` €LDD$0‘ÀDDD` €LDD$0‘ÀDDDøeÍ.vvýÐIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qt-fillrule-oddeven.png0000644000076500000240000001562112536324511023321 0ustar philstaff00000000000000‰PNG  IHDRæÌè?H¼XIDATxÚíw\TWúÆ7Š€ˆ5k4Š23¦ìf“ìfk²ÙžÍæ—DQìŠJ™†6 mèCoCï ½#½½HP± ²Ùòÿï&ë’¨H™rïð>Ÿço=çÌ—{ï9ï9ÏùÑ, E*ý‡…È¢Pˆ, …È¢Y ‘E¡Y"‹B!²("‹BdQ(D…BdQˆ,J©jî¨ Ž·Åq@dÉ¡ÉÛãŸ_< Æ¡@dI G9ùa'Øgçõ; D–ŠÍpuô=ØÕµ‘EdI ê¦‚3vŒ{S”în][D‘%¸†oô`ííÕùÏ“WYD–èzððÞ—_”løÏãWÀÝ]ˆ,"K`=yòÄ'ò‚Ôž=zåߥFdYB+§4ê*ÿÈ“û2^YD–Ðêèm8ÁfŽÒþ Øÿ‘Ed ªÉÛ7OÛý¸¡I> æ» ‘Ed ¨Gfì}þŸ¾ý_3¯üÀ]ˆ,"KÔ!=kЦý±+sk#"«xd!eòɓǫv@ïÞ»}Áá£âbÃG·Ö¬ÜDV ÈF§y@Šopœu¤¦ «j4áoÕ-Ø4T´K.¼"²JBŠ“»tä*ïM{/Æ7–L· c…I-±F3%ןíf|ÿ†Æ£ñ5r±¤‘UÊ·ìÀH÷ kV·D{b¯HAð[Ç­˜lOSr…ýÃPÀTË¡ll+?ÉfÜè¥ÍŒ¯‘—YåM¿*ê³ÎÛ3&¨375À÷F5kôÃbv·g㾞dßÔ^1óè¡ÚŒãحᓜwkôdý•—%õˆ¬W ¤Û™}<ûÞoðð¦Fo«NrÚVŽ;ã˜%Kvª¬6óöÝIRâÌÌk÷ߥd¼*_^Ye# ‡FlLLÙ>Ô>Ï7ûhùùFn‡€]®÷ŸÒ B!ÀšŒƒsM·€ý_ÐÍ•XR‡È*ÙÙ¹£yf6ïÖVêÃϹ€ïSj* #vŸ²a^tü(:gPa±Œ#XT™tÑÁ>îãòÜ‚È*ÙÙÿ€êÔZÌ/ô`L££I7.i›%Ÿijý¶_ÔÅŠ†\HU!ìðõ´J«­ÚŠà‘U ² Ì¢PK—Ãw†4ÜÐX¼‡»èYÙœ}cÁtöÿ"»D46>D¨±»3=yÎþƒâ"Ã%õkInFdU‚¬,Ì' |σQexj€r­toè>SkÆU—_Ɖ}M*/°Ax¯ÃD;—שEº¹‘U²³s‘i—‘›»a%¿ß½MxQFÇï0wb™Ù¼'Œ±¨m)zðð¾J.!ËËÆÝxzX‘UOdAC7¤Á”í ºF4Vî6­ôŒMö‚#ßX²\¿Î/O€©žÒúRßZjÆaŽvÑäÒ—Ü\ƒÈªÙÙ¹øß3¶Œ±êý yùVµ¸ÐPt lÖîŸ$åø÷ ¶+´Àvc|ðûíÆj=9öâEnBdU‹ìì\Ⱥ“÷Áé!ÍûÃòõÝA͆J=ø¸„ÛYîû¡‰¶PA•û¾ø­Ü>IMß"÷ö?×MÕˆ¬ª‘…ÕV{ï¿Æ$lWÜÏ|oX£§Y;9u«­Và@vIuúí;r™Gˆ®xß¼§^YB ;+»0ÈöÇ¥÷†4í]´üÜõîP`³bÚ ~6ø¤^ögCAEÂ%G“‰^ŠZ.³YODVÕÈÎJ¯ek„kÙ®K´”öÛOõkV—ëEî>müàð!|ŸHºj–T`ë¾ÞÓGx~+­Íˆ,eÃå—ÎG&û(÷5”ééAŽz¸ÄmV|æq«£>ç®ÕgÃß…[ ßg¹?--\§äÖ6U!²„AVzÅpÄyï ½w4¦Uä¡6Z–xƒË\ÍÉï󬒨ћÏ6õñãÇN~‹~]ù-l¬\kƒÈÙÙ¹‹Ü¯ºü*3cã´ê¨•y¢‡R^´Î/d/l‡¸Ìû8&Ý l@ª¬q™v‡î\×DdW;² ØmxÂúhK•ît¿|÷º4&:öµËNÌ“ìw`}@k{ÌÒd¤¦’ö4V ²CTÝTpÚ†¡*&p‹VHÄ68z vö6gl”ÐYDVª˜tW®ç¡Û½šð#ŽouS®8›ä”DÃ䬢>Ç7òL×,]˜±ñÛZktï(¥ ˆ,1‘…Å&Gß/¢bv‡W Ò+pŸOä…ù‹¸ÐNØþ•Ê»èð!,– ÃvWLôh"²«YÐÔ[gìÞ/+XGd3Ò7]áý &ˆ/j0\? … ®×aµÁÕÿPŽØh¤†È®"dA0I7µfv7hßéÓT­›*Ö½‹<ˆg-Kk2¡§€]¶+#!qkGÎm9µ¤þš"K\dA¹e1æŽ&ã]Tò:ÜJ‡—~MsÑRgÜá¤{XN½Ÿç²B£vÕ”êOöPYuF>ý¢Ì=öÁTìŽ*<ÕMázǤ»­°0’œ+d»["=d¯m£-£=õåˆ,±‘«/Ü·pýmZêæÛ=šÊwxô޾—ãáÞ‰©›Iò[Ñ휻Ó0.fÛx ea†ìæ ‘ñ»í;d_ÖA9úFµ2Ï 8ô 8¾vÆö'¡ 6ŠH–^¥ÈÎÎí7=Éy·<Çàf3åEÎNÝpŽû!LÚÈØA² ôNqk¦HÊtcE[8® i²tÈÉâª4¹$K¯jdAPd‡Ô®JíçŽ{S‰.LÔàGÒÞ©Ùùî«¡‹“ø>Y2m 6û#“—š,ÈJ©®A¦A{æîX#ÅYðVH¼ ©»F4dÿ7¼M”Æ¢µÑ‘Û,yÒdiïpi²ôÝ{·ÙÅ ë¼ýG™IF@ªÌ1ÑÛ­Ý?#û~~²O;ELwUh¥%ltÞ2Ÿ¿dG>7Y‘ý¡`×óqKVCÑZÄòlX$Ÿ!{§HìSÕÑ 3 ½öž´fš;ýLæ'K#²ÏQYMÆ9;Fc¡. YsG¥ôè;d(äòzJMž^XØk—ç’¥£¯Ô4.É·z‘ÆZÁa©”ÜõèI‘ïö2í¤X(°–…K·tV!²ß“Pd ã’”ã§>ÈòYðÐ"¯%%:ñ¢-¶n ²­Ý5ˆìÿTR• «ZME҃ƶkˆ¬ªEzD _¯¢å¦¬÷ô}6*X¸ü Bœàè‡Üëäê²È5=UYq¢ÑÓá‹Þfåú»5Xä"<²í¥ÚI1ía;˜ËÉï ˆlº©Èµ5)%À®ÿÀ]£µ”§©¥ðc¬ÔÙyý"ˆGj(5¹za¡Û¯8²L­ßö¾ MÊ9«£È&çøYóUS0¬×+h¸Œ¢ÊdDV^¨¢¤úøï5c³.9þ\”æ qLJ>XOzdÛËa²Õ^¢÷Ϻ!_×Ôêhï@+y‘eóYÏíš2ÝYª•»ÁÉSZß²÷þ³¸(rdLe‘PäF&X'Øï”e,0ÜYIFg¹4–B…È×Pêót£Â_µâ±Ž[õ ?[^—E„=œ$F¦Vpö06òÕ‘jÊÂîvöÿšàÁ0 !û²Êу•Ôâtáî36¬sÜÂ`ñÿÑ£⌠‰‘…ªÏsÿðâ~6ïpb–"û"w—Ñ3âøéŽXŽÇgiùÁ#ÝxFž‚ìŒ v&½å´á*ÊbÜ^¬3XÐ&².¬EöqnÌ×Eláð™°>å|¢¨*uòö8ÁÇ„”ÈöôK¤UƒÜµÃ•ÔÅ»<ÃÀT%;@>d—ÒÍ—z°‚V–n¸ó÷(”¦‚ã8 me$ZÀ&²sÑÞˆŒ†*©K5|øZº~òTÑ€ì2zú¬{ÊèY FîÞŽ[2-ù¿IÈò…2†Ô’ Ù¹ þ/@¸k¨‚º VPù‚ª½a9È.«³2·äëÄEnæºÁ‘C–KÀWyåñã“£¤^&"²ñb/kgãþrÚ²ÂÞRúE.#¿<^‘¼F­ÈÔ ÚaîÀ‚½ÑWa»êýÓ³j!2![/)1ƒªA¡öÐ5êJÜ£ ŸÂ]×›Iƒìâú¹‰ë>ûNZ³.;}“ᡈCˆìbÓ&˜<•¥À#d冯º3¶ŠºHQîÈ.Ü—ÖíĨŽî‡¿¾Êtðù<«8Š\SLõD&LpÏQløÖÁrª¼(Üéèû%ñƒç¥È>Óørju¦^DÈö«NÌc–pÀõ¼Ò¸"²/L•ü£®ð=÷ÈWpãb›áI"dûJiI†>~{NsXX™â, Ri ‘•*ÿZÜE;“îbúÀÜÓEކWê)6³¦¹ˆàȶj¥ˆ6ð<AiÊÖóÒ°–½x‰A“$S+V]–î@U.KÓ‡hv¸Ž€ïr >'½ªÎ‚ébVRN„H,Dv!Áô&IYqëJ©Šs\ÄÖ+.¿‘בå Þò’Îêˆ$GxïÃÀœ{/% ²01rðù&Iý¥T…úz)•ïù¦O¤¹ _µ0s‚ù“WØY˜KY81÷WeèAÃJR l<>CLÉllº;‡w¨¯˜Ö_BU´» é—¸Œœ²å¯Ü‰‹£ì½ÿ¥)7ãĈ-9ÚóV’ŒÈ’Y¨Ö˜±­yÚJàUæz±´¾ÐÑÛ¨„·ü/1éîæNÃMï}Ùqëáoæ¹­BdÉ,L†`JT–¬ß_LU¦³cן¶}_A·qC½´º©¶7@×Ìí™ÁÂå)ú׋^Ò$)²îˆ,±‘…iÐÞ¯ã·\/¦*ßAÂöÞ“c`*ìA(Î~_BiÊÎÕ$6lSC–ÎâÛSœlÀAd‰Œ,L€|".ºzîƒÇJÜWHµu1†«4WØ ØÑ›˜åkáòkØéçæ¹?CdÔ‘G_F{Š“Yb#›]mnoÒ•OW²àÖ-ˆ¨†SùKm<ì’nh- е†}Óçí˜þop½…´•4‘%4²0)Ûk3táQ§ZÃg4|qB…i1͆oߢÊ· S˜õ³yŒ¨à-5érëBq""KTdá‡?mó“¬C•ó*s|Øs§_¾h)¼ú†»Ró‚¬Ý>…"*Ïý­”È ðx–{3Y‚" Ó®÷çA¯÷P‰cwÁ>Aعùõ(MAÒrx’Ã9»Ÿžá°||våÇ­ëΣ)® Å ˆ,!‘NáÙðõäÑzó äÎ\º9×D\qgz²¬V,=}Ì‚eéÄ n«HÑSNŠY"[Ù˜ Ó–,mBñ ®I[ë%xMäëèfœ¶©)SGÉm@d ‡,Lq`¢Sš¨OLáI”øî¼`Ç2ã@–/;$Áé˜%Cù°"²DD&7—º@Q­Û²´Ò"\=öÃ2êUÞ¯ãÅÞó³|ã3VŽÆ]¹tå7¬0‘% ²0­„žuóÜ«BRëÓuEÁ›m]L¤Y¾¾Q–/ì pöûÊ×g"»ª‘…_¶7éȦ÷äÒ”éîZI‚~ ßs{–©Õ;þQå›ÿÒ,_YÞGjÄ%·¶0‘%²m=uÒªAª®Ò~ûö,-qÔzOôÀô%‡ådùÊR•*’õÙU‡ìÄÔÍSP5ˆ6„ž¢Ý˜®²ÉžgQXö^]a–oQeÒ9†$SK -—¹ ‘U5²°oëùçÿ×»³iŠsy‚^ˆß¶«Ò@?ØêM~Y¾êÈ? ÐÆÏwA "«jd¡tdÇ;Ø•%ÿ_·CLω6ôöÚsšÍ:Ïý0L1Y¾Òfþ§Âmˆìª@¶¢>û ‡Ù”¦ ÈÊËð¯%†ltr=xÌ‚Év“fùŽö(ôר­aºÊ^'Ç^¼Èˆ¬*‘…ThˆÜ/×—ËoY‘¸6,`«µ3ó›«,÷ egùÂ"'¬˜u):ˆ¬Ú" «H~¼©KL[¶;2éyÑëü¼w³aâ¨8ˮɽj¸=ƒ¾’½Ô"DVÈÂkÚ=ÈÌÃco§˜¶ 7§i¥„¹¸€W¿… Q²|¡6æpÌK°{yZ¤óY• ›^rÅþH[:½3“¶xW%êFl¶q––¦xþDÌò•ÝBš¼aIýZ’ó£Y¥# Ù'P5¨IÒ]Ì/Ô‘I+x¿~ÑNšåë?—åK—çJv×siœ"«&ÈÂsñ$û½ìÃÎ Ú–¤j¥‡­wsßss²eù–T§žå0šR´îãòœ…È*Ù™GÙîö{­#ƒö\×$ꈄ›¸.G¤Y¾Þ$Îò ‰³áòÞjA7Wâ öÝÞñLgWhDVyÈ–×fžá0“µY°$•žnèá±.;€)Kd²ºeùŽOŒœ´~Wn(민œ‹È*ÙëCP5(éÕ%jÇ 7:òáÕoãñ‡4µÎòmoñªxÝö4š¼œ‰È*YxËÃa© œý Õ#xeù¦æ /sKRèˆ,™¥{²!ñvmå«-Ë^ nP4qßÛžJ—‹s#ÖqÜY# e¡Uãš¾wç<÷£Xáæ¶TúʃÈ*sÅ`Õª¸>å‹¢ôÛRè+tN8"‹È*E×êħ­õ :ˆ,"K…%pmßjM¦·­Àˆ,"«Íçï“$ЗêìD‘U…掾}í»‘EdI#¸Cê ¹¡-ñôÅ; ‘EdU¨Êú3kFµH‘EdI£ˆd'¶ýÁæXzKÜ¢œŒÈ"²*Õ\$Ù_üÜ_oŽ£/ÆbD‘U¹àº¨SœŸ$Á³ö¥!²ˆ,ÔÞS1"%ázˆ,"KeG\°1©‹ÖnŠ¡/`q "‹ÈCsWEœsvÞ‡È"²¤\Èwކ ¶4‰è/²XˆÈ"²DÒð¾ã–og®CdYÒ¨º)ÿ¤ãZ¸nc´Ö³Î²YD–h¥ñ­¸ÆõQÚˆ,"KÁEéö^_x»îlŒÒú3YD–‚Ô|¨/ÄûlhˆÒšï D‘%¬ºúšŽ[° ƒô"µž:ÑEd ¬ÜÒ˜ó“ê0†-™3üYD–À‚ú‚o„¹ƒã›õZ2§#²ˆ,Áõàáý+ο qµ>\ ,EÖ‘Ed‰-¸eê ðI€È"²¤QmKÑ KfiðZD‘%b3<,ì§ø¬GdYr.äqðùÒœs‘EdI#ˆ>‡pi0"KÁE‘É.8ˆ, ‘E¡Y ‘E!²("‹B!²(D…BdQ(D…È¢Pˆ, µTý?¶‹&ó§åIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qt-fillrule-winding.png0000644000076500000240000001604512536324511023335 0ustar philstaff00000000000000‰PNG  IHDRçÊѤÀŸìIDATxÚíuXYÖÆ¿ ´à÷ !F3²:óí¬ÏÎúìì~3IÄ‚vãC—ÆwwhÜ ®ì¬üÿnf³ÌLB–*8ïó>y’Nõ­[·~}ëVºçþÏ" E6ý6 ©E¡Z ©E!µ(R‹B!µ(¤…BjQ(¤…Ô¢PH-j½jï© K²Ãv@jI£ù{³ŸÝ8Ʀ@jÉ¡ç/ž»nï«gï÷l ¤–JÈöt4èëSBj‘Zr¨¾­ø²½á£J¿¢R‹Ô_ÓC˜ï*üûå;H-RK=yúÈÜýgÅåZÿ~ñ¸¿©Ej‰­—/_Ä\ŽÕùçówþõB`¤©%ºò+b-5hlc4اð'ï¼Ö½ÝH-RK$=züÀÌõã’rÍ7!‹Ô"µÄ|#/qbuþþxÛWovO·R‹ÔE9%V§ŸÝ—ý ©EjI¡®þF&cfŒþÕ£m+»§ ©Ej  ¹…™‹vßkmQy+²H-RKA@ÁÞï)ÙûþþpÛjÜÓ©dç‹Ô"µRUtš“[°þâƒmH-RKU7ç^u8ó`†òw vuîá#µH­ô4:Ñglóî`¯t´«w7R‹ÔJKÝ¿áò¿eåš‹÷·­ÉH-R+A@Á'Â4”«½Vd‘Z¤VjÊ*³ö<õä®ÌË{ÛÖꮤ©•¸:zëLXŒéÚ:Ej‘Z)hv~Ê”õAk“òË…mësW;R‹ÔJPOŸ=aùü6={ﺑEj‘ZI+"ÅÖ#øØó¹m/æ×ïÎ6¤©•”*2¯;Þ›¢lY¤©•œ†Ç{3ºä_@G»1w¶"µ¡RX¾|ùbË6ëƒG÷®;}TV¦þüî¶›ÔJ†Ú¸L6$ K´iâ—ÃÉ–jSø¹z…GpˆY¤VrÔBôò/7O[¸uô3ž–y>»M$æ· µ¡4:ÙÁƨŸ/?7Fk¥oØñóÖ &û“ôÎÈD/D87eƒ¶vU™0 §iÏf·‰ÊH­ä¨Õ4ó®9ÎRŸÝ‘?š’mmP‰Œ?rÍÑèªÃ£RÛºkž=ºiZsæî„ ëýÖå¥ã•ùÍH­©]\z:PÿéÌ7NÃÓ;2ƒ i™»Yކ笌|#/V6æÜ{0Oê¦|öì‰÷oÒ³÷ˆY¤V ÔÂl;ßß§¤ï{à¾Îw†hEEš^!'_ÿ?dG@šl26%Üzz…{ú†Ã܈ùMH­d©]Îì3µý ±VÎè ~0Ai¨Q½­}Ñ–qÃù£¸L˜Å OÐHÑŽ¥µ©7œÎÀXhåc\Ÿ;ZÉS»øŸYÔã½r«9IOfdzÚS÷Zy0ŒmÞ Š½QÓR9ZÛˆƒ£‚€B§¼8Ej¥F-(§4ÂÊýÔýqÙ'Ó2«÷D—§åxê¬%Ã5øó¼rîÌì8¡ZðþÃù«Ž?.+U_Óq­ÉíH­´¨]Ê¥ódJf^¥TW¨FèÛZ¸ÿ,1×·w¨Mêá7¨€çËHîáõÔ*ÝÞˆÔJ‰ÚEa&¶[®?-(ÐÚÈ)|4) W̸¤f.F¦¶ßãÄ[6v”>yúX*Í—Ìó³õ>ùpB©Ý´Ô‚ƧY/»[ŸLÊlÜ£]rYÙ;}OŸµ2ò¼ýeQU2ÜùIìXš;+LYŒ©>šHŽe·7 µR¥vQ˜aø²áÌõñ¤Œ¨|wˆZV¢îªá7ï_§æu‹5ü6=;vù^k½²âMnCj¥Ní¢0›»‹¿ÁÃqÙÇ2¢õƒ1Ù–ZehBøíŠÃ#Rì Ä*ò×w @k¯_gdíyý_ë¶z¤–ÔÂSXGÿ?Ç'ïß™~4!3Ð.Ÿ–±ÛŽÍ€ç0«»¼>ëÞý¹Wºð®9›sô‘DEj‰BíâÒ*Ev߯©P}4.#nO÷ÑŠ 4¼!üfͰóý-„ß`x½îñCqMòMç3sƒ Ô|Éj}ZP»(X®V„æËIìô/ŒÈÖW©„Æh_²e\wú*ü¾†5…ßú‡;ànzq‰Õ©%µ 5m‡­—öYËž‡òs5'»hHíÖ¢·íÆ6  áþ¬tÝV£dlm°Êš¬…r·‹"Â2EîÆR!µßù|®[¶³F!1a7ÓC˜¼:b3$¯ÞlÔ‚ ¡"L.¨/Užž³ º(Wã²­þX+M$¥‰Ï BjWÞf¤…ž›¡é`³ßìý~ŸMÚäÕ›ÚEÁr•¦LÆP}ƒ(tÕ  JGv•Ô¾ò ŸRY¨¦}‘%˜=—áN¢äÕ›–ZP ÏŸéqòŸ2×%»>O´Qáîœt­u— IMí¿u·K¶­B‘ËÝkéÆ0¶~/0æ:Á“Worj!k¬;çìíˆÃw…çf­ží’…gIœýëûºä½DíFJh”ËLÝîì{R8{þ/y„K^½ù©=x¸pÍñÂ,»²kurâKÝévÊ:¾+7”©EQ“mÔRžš?Gï‚ ÃÜí§‰9>DH^½U¨ Žu·6ê¨RXÓi«-R€B_Y-µ¯ ã+x4sÀÌÙÈ„ù‡k!ÅäÕ[ˆZPY]ú5ÃñÚ]¾ìj

'‘ë …Ô¦>ÐÈ<µ0íK~sü0&Íy­É«‘Ú¯=CCB¿qvgZ)®>‡9ûÉ‹,©ýoó¶QZK•âböZ¹ ’WûG ’W?xt©]ƒ ½®9~”“ª °.™»ËÊEw¢™úê2º¶@@-Á+ÙW#—™¼ÝÅ÷$¼}æð'^YÌk“W#µ¯¼(}Þʨ¥T Ú±*O ½Õò¤F–,Ô¾òx­$[Ý?D×Ćaæò“ø,¯åÉ«‘Ú׫²!ûª½ak‰" [ÅSi¡Ýµù*6®:¤«öt3¥¡P92rÿ-gaòê8ó†öH Ô¾^·¬a¢U\Ì®M€,y©]îîJùÔ¿ZÊ_ÝÑ[‡Ô~[®4MLÔnø¹oש%õ!ðË’¸»ì¼ —¨íìo@j¿¡òºŒkö†m¥Š&ÖÇËsÔZiy²Ip•8tÃÑè¢í÷C¬›ù" °m6j!n.¸+Vœj¢Tåª[ï,—‡¿“Ú5yjÉRÛá:ZAº†OàQx™ÁÒýçI9~@´/Cn®'_®:|˜›¢ùªãcwZ8éÕS‘Zq»»B>5~»#¼8fiäôyAe"DÚÅt¢7U”Áƒs.øö‘©FÊ+O6RÜØ‡üƒö/ÿt®á ©%^Å&( Ê‘ûÌŒmÞ Ž»U×Z(I>›‡Ú´ü ·SãЭ~³e‡kÝÌD-¤VT­£gªëš2n:ÿ„›éÙ3Ø"Ú'²[‚ÚÖî*x¦Ý].¿þﺥHðöLCÒkÿ—ø®ÎU±qÑ‘z5z+ä2´\|Ñ/Gÿ?æ–ÆLÎŒHåtojaâÞæû•9ª+´8/Eã2K¿¿ŠŽÔ®É ”æBÅØ¨=ÖnFç­Þõ‹ºRÕăûéžqÒS i¬~ò¼°’˜Úf~¹)JäÇ«©qK¾âyKƒšl• –#WfªZ;ë®rcøA¤høè™ØÝrù8>›-ò©HíÚS‘ Þ g:’›—¤qÑF¿»DN$¥‰ÏKÔ®¼Mg±|JìvgïS_Z0œ>ã•ÅŠoÚR»Á«™–¿JˆÚ=VE•9!{mÝ´G*©",SäþšÚï|>ZE­ÏQŽßgáÂ8gSd¯IfŠ,R»ZÁ}np¬¹‡Ï±Q‘1RIcºê„qöˆÚ¡ Zqªz@Î%–¤CIw¤# Là ©ý¯ŠªoØŸé/£ û®­¦6úyÉ"/YT®RÛU"—ÎÕró9+;Ÿß R¿LâÊMÄUßp»±µQOq´’*WfªÀYsž¸Ê_·aèÒÈSrò8"X%Ï’Á7-¯Ï’zš-¤öíZ¸÷²Ýx‰£Tñ91jÇM»£ý¥t±îe•*§•¦©í»Â<÷‹föz¸")™¨…G6NŸßæ© ŠÕÃTöAð°˜w´‚{Šå²â5!rÎÂÀÜQ72tw]¶2Ô§<]Õ–ý)ÂJj²¼Yn'†Êh#åTq»¿„~Ãî(tºØ×r·ð¸;Y.Ú_šŸpt?’½½#_~ùåiH-y¨…XŽ)Ó°³P^b5ç Bé*âÞÑpör;xïuÛ£0‘ØÇ÷@^¢ül^»1RKj'f†a•¬Ê4•‘2ª$— aj­ß ½ ï+¦óâ5¼}Âo†Ñ¡!{ªÒU†Kßò-µÞH-á©…lPæn¿HŒÚ}’ä ] ÓEg°”&ªÛò`àaïvä ó¶®Ú ‘;`T°ú¯—¥©²Z‚S Ï ¢oxúèA'$•Pm]´C÷n°œêtåð=ðî®<Ù³¹š=…ôu”S–ŠÔžÚ¼Š83Ç3}EtiQ îÌ—ƒGN9\µ~±¿˜–Ÿ¨îë»&M\e Ü Ì –Ð6R¤–èÔö ¶[3³¡Ã“®aH £Ïú¬UÕ¤#O>%j»“Çax`í¬¶³!Kd‡P–‚Ô˜Úù{w.Ùþ€¯.ud—œ¹ãšíQ¸¬¿iƒÚL¥¨Û»,uÏZ¸zJÑ‚NZäÕ@j‰K-,GáàÿYhÈÁ¡b*qìÅ>èæyhù'E´¢Dµÿ}—lôÁþ~ûàŸý…4ñÕ¡,©%*µqén¶n' iƒEroý¦^\è.>O>=Z :Գ溑œÝ5éÊ’©C)RKLjk[ ` ž<¡7d*ùùî_Ê «äÈm9 ®RKDjá;(T¤¨„Tèï”ÀÃ×íLY.˜žìrÎÊPò¼"µ¥æßÝtþibÄN`EºîâÉeÆhz²Á¬k ·_$åú/Oœ”ãkí|²¯€.ùŠ•$!µD¢ ¾W¼|t¥ks–"7l§ûAºàÀ¿¾)]0¼}æôE`À¤v«S›[uËñLO} €&I÷çÓÊ“Un0s42¶~?8Ò½5]ðRêŒh- ×¶$©% µ]M‚€B†¢ÄN7O.7VÃÇW0ëú¦ÓzÒ/¥iªISFj·"µs w.B@!Nº=q»5K!1|‡£Lb1rôûóÓ—Ö¦^µ5äçÈI æK.N@j @-L(µóùcxðÁþ<šø\•¬´×ÂI*Ð/òJµèÒCúQg}±V~¹‹ã‘ZP•êdïfÐÇý îÉ¥çÇ©ûûé\b]sø0R<é‚©ž=>‰æìEj· µ5Íy—YŒ¶Ly VT†ÒR·»xœ³d0½é‚ǦÄ:ëzæî$Ï*ˆSáQ¼ÉH­”©…ÜÓÞ¿"IE$§³&E)2d·+㬅‘w¨¤ÓÃ&¬Mé Híf¦-ÝpúIRØŽ¾\ںݓC/ŒS ò?rÕÖè"KÊé‚Sóƒ,OugÓ7rDou1©•µp½ö5e³u{siëp{¦\z„¦»·>Œ,݉’."gî!çü|µ×wP«tR+-j³ŠÃÍOweÑ{sh«w]ŠbLÈN[WAàÊ-˜ˆé‚—–AM ÓZÓq­ÉEqH­4¨å÷ÖC@¡!Uq5'©'‡VÂU ñ?xÃ^.8X˜.æ?¶—–œ®HTFj7µÐ;š0¿—­Þ›M[Áü ¹¬H /o=¸Å1#[ºàòúŒ+,ötù•q}.ŠEj%Kí³çO™Þ¿ Úß“M{­R¸œî§é‚ýIœ.8<ÑÖÁíx÷s#.Dj%LmD²½ƒ›Aw­ç›.㪄ì7w4:gù®äfH Ùãl¼> Ü×óƒÝ ‘Z‰R[Õ˜s™eØš&Ô‚ùôœ(u6[V€;˜˜´Í–.xvnÒÄæƒÜ(õ¥ã• Z‰Q;<Þ…r®rSŠ|"g»³ÇIز—¹©Ó·÷ÔÀ¸¼.I±;“&*Ä µ¡.÷0Ñê:똥“!ÀÊÛBé‚3 9·NñÓéH-ɨåfùµáIö­]U[-]0\F¼ žâ­ÛA‰ ¢ÕX^H­ø©… ÑÖ\2`IÝ¿æðQggW}ãÎGj%C-jd¢†õ¥±*]éô :? ©Ej%¥ê¦ÜK6†ÍÉ H-RK&E&;Ø9ïL£wmÀH-R+QAhЖý‡Û~Üu©Ej%­¹…x #+L£3•¾>çG"µH­ÄÕÙ×xÞ’Q§ÄO¡¯ÃyH-R+ e…ß´;Ýš$‡Ô"µ¤<½f‡]òðÐã'Ó×ê¼p¤©•’„Óæ>Ž Ü‰Ô"µdÒøÔ „ "T;’è«7©Ej¥«Úæ|SÃz®R‹Ô’IÑi.LGƒözGâªÌ Cj‘ZiK˜æìOAÞÛé«q.R‹ÔA°FÕEÖÒB4¡Ç}«sC‘Z¤–êh†Œ$åQÊH-RK&ñÊ¢¯ÛžiŠ“o‹§¯àÜÛH-RK —¥¸êꪇÔ"µd,dæò³(ß]m\ú›œËAj‘Z‚ibzè¼Õ{¼ÛjH-RK&Õ·™XVG)¶ÆÉ}×9u&R‹ÔPÜLk‡“ͱòH-RKÁ’íŽ~Ÿû{n•û–sBZ¤–¨‚ôüzH Ðj‰•[îl¤©%²ú†ÚÎ[•„ª´ÄȽrv0R‹Ô[ñ×Xgê#Z¢å–œ„Ô"µÄ„£Íœœ6GË-9 ©Ej‰¯'O›»þ2Ü{Os”X@­'R‹Ô^°Ò/„`l€Ô"µdRcGé+FE˜R‹Ô’I ÙlKûSéH-RKÁ@N3cé#µH-™ Ö!5›©%“`Á˜4wl¤…Ô¢PH- …Ô¢Z ©E¡ZR‹B!µ(R‹BjQ(¤…¹þN.7»Þî1IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtabletevent-tilt.png0000644000076500000240000002017012536324503023103 0ustar philstaff00000000000000‰PNG  IHDR áT¤à ?IDATxÚí|ÕÖÀ÷Ñ{’@BGz/Ò¤# "*E°âC|ŠŠØ>‘‡>QT|>ñ=ËA|v”"(ZhÉÔí½ÍÈîÌÞïÞ;3› É&[fB";ðƒeÙdwþ9çÜsÎ=ç\M^‚ á/!(þ‰þ‰žÅ¿ƒòcüoñ•âCñ !ôÕâ×Ë_”¿O0ôBé«ð¿Åƒ¡¿å‡ò+Boúï`ÙCïþ´ô&eŸB»ð{’¾½tÏÒh’(Ê¡H^èJ¢H¢H¢¨õ(ø$ |I躴ûRR*°vS¦©èH-@!-9– DQ\“D‘D‘D‘D‘D‘D‘D‘D‘D‘D‘D‘D‘D‘D‘DQWQ|ù½¢«H¢âİÖxW; J{6x øÓ¡èjŽ!Í+ýàÉöÓG‚ þt(Œ?|ä÷—òåö¿#XLá¬f+_4¿Ù*^IÁ¨(ÌÝ.á]!tå¿Âj.{y\;ãÂy÷]—n{¡–ü©PØ3GŽ›á ^XõàƒŸ¾¤Ðäçñ–/!)ùÁûMÏëh†°éŸh|‡ †ð§Aamÿæ'[.¹Ç! !˜—Û57?ȳg.bÙ÷û/³™¼½Ù’a’ñÞö#üŠhI-Q˜‚~}áE>¸²c»ù~éÙ0¡˜?’ á/†0;Ö·š\ñ( µÄl¥ðQ)4›@¼û ¸Ã;ùà‰> ¶:… àE“ €Ø£9l¢†E,(Ê}fV‹çQ‘ZéW@ó šÏ`ÐóÙíýƒ†RAø;=ê# ªÍÒ¤Þ»­ÓuûþωB|6ȇ€©ã6{àÒÁCõXÕÎÌÐ4’ ô›f)ÂÅjÖÿŸßÛ øQ]þãþŽd£”/Ò|å Y Âý`Nþü(Dm +”ŠM?0pG0è’P°”eŸæ ÞE݈A`Ô€ ¬JþB+èRÐe(h†rô]IW 9µ<ªy×E°4+£€êá]ׄ㕈EêTdz üm„“’L„$†Ó 6Ãöê Òá ïÖ1Q’8 ¿ ÷ÍM›¨ÀêQ·P@{Ág?†lfH* ïíÜRø« \KŸjo£±sU&†ŒµP(„« à…"Í·6rQ@õðÝŸ+(•²¨;RCg• —"„‚¡,û‘K¡Pò¦® €7¼© ¥E˨Œ‚fHWß{²™uàywãÿ¸E›)¢@.Å+)n^±Œ^]‘Џmˆ—„ÑW™­ õ… 7?¸º¤ªÇNMž‘9`Ðf–L§œzÔÐ¥¸Ôn'ÛL¯¤ó“z¤ `ö¿n ðƒ'³l8[B]ŠÖk”Š:Æ…šo°K!£@걤;¯èöX@6>†Ì»@„8 £I™÷jŽ(æRÔ•ÔMÐÞmN"—‚-3›¤»÷REÕ£N àykã , š%¼kS8^¸ÚvÒý`ÎèR !›©?ÝðP=®.ð†wiþ0Qt h3§N„Æ\U ‚j)Ú=áCI<Ã’ŽÿÖc¥»Íj½TøÁòNVšõCZIY}ËuJe)ê ¨§4ߨÉ0(‰wO.¯x)ÖD! µ¡(éßon Áà•” eÙ«ùCi›yåPÀiš=äQÙa$ȹz³9¡¥qOVÊÙ]i—â ¢ü¨Šü ämÐÜ5 èR4Úè&™2 KxžO»È B]G§ˆxˆÁ³sq·¶éþ À›¯1W†@¡˜9 e)˜2©  …õ¿RA=jÆ@õ†nÉêxËGg‹ϼö{L•WèÁÞ®)@YŠ ›s'+îRÔ, 4††Gæœ{ybfE_³^§NçE0vøºy¾2›éo»ÒK°Là —ÂÀójÌ5ÐÔ^4G”>ô±ÝVŸ!(è6BfèxªI…E?x´ÊR„¤¹†´uÊå]‚Uxw-ÉɿÐ$%î‡3„Ö[ü`Ãá?@ʇ—' j~´Rò¶  ·$Wá"ÞšDÁcó`údvV‡›6z=&ŠDpPЄ™ìtO›?À‡ŒÐ¥4Ã7#'º)ÛNÍÑ`Ô9©@CªÄ"¢¢u“3»/ø’åœ:’«#pr‰<Íèó:2Ô#™#¶#!Áðƒ Íh)K!¡`(G%j¸ª£ÌCþÿ N¼âg+gc¡Z0!š‘¼GZ_Ð)Ïä=·"sävägˆ6“Ìy×EŠéL©À†àþÑê‚Jꡊ÷àÛ³47sìK¿»83M¸¦N¾B(C~Ç=¡ãÎ=’1r²¢PÌ UCR\Šãõ¿PÉfªƒr½Ëæ¹Ùío|ÿ”Çk$ÑrA‹9¨Š( :åëá:‰`dŽa —"ßHÑa(`6aº"¥F5‚­lÈW§dæÞùùôÒ )ÎŽ€¢À€nÁXž1j'ô@ý3¡K!ï†!‘`Iצžê‚TàRKlŽ­’>pùN g×’^-D¯…XPÕäìã~`y7'%˲/4ÍjS×?¨ý(ðjÌCÉ/÷wϳö€™J^-¢@!¾ŒD0ÒÇÜà+Ú ÃHÉâ>ê ¥P`µÀ¥é¶-óÛµ¿aã ×DÉبQ ?ƒ¥‘d<¨¹#p&+eÝ¥ÉWË¥P.ü(¸ ^›Ö&çö­”×eÀ^Í0¡ÛŽ…XÄ~®äÍ,Z*IQ òÌËTs)”@!„‚‹–>à¡ífÎΊâPNÆ„9R†šw\RÍ.~ %ñÖ´ö©‘¥P …ÄáÂþe=3F?ÿ›Ãga’–¤!N𶽓Æp8‰BANÔÿZ•,…(Pk^6ŸßÙ¾ÝÔwŽ»=f-4Í„î5a×»É7PRA‰H‡ôž¦ªÍŒò¢°y`^ŸÞ¶Û¼ÏH¯KOÈæ1!S ä@Щ+ÅZŠP é|¯NàAmC!H178õìðô~Ë~0!ó€ÕBª¨L\4ïêê pŽ[ÛKñŠ‚¥FJ À#‘1‡K¿>Ü3cäsûœ…Æè²[Kô)­Û5?ZÅZ Ù'!| ;Ê’;W …€Í$âàübA‡ìë7s{MЋ¢:¤ ¢@‹¦=wq ê{ÁY ËΆ]Æí)ŸÏ¸²(ÄŒö›Ú^3÷SÂã6Pb%_  €‹æêT»e5»”3guoúø½X2„+ŽÉAÖé5#ÒûÜÿ­É‡¼:œƒ(  êor¢zH)á}&…1zOÝ—>þ(+‡ç÷Pzà‘^ßýÅî³Ñ$YÖɦ¤TÀ8|‚XK2ÁÈ¥øÀIz˜ð‹h3j…€S“(Èr¹¨cÖ¤7ò]^3…­$ÍHw« †%\ï×;&—gJRAøÆõâfcciú„}8í¬Ñ-!l&ñÎ…~ÃÍY]gBx ÷ ¯šŒâ(°‰H{–“KÄÞIÒùa½cšÅù =wrië‰ûDZƒÛÇ‚˜¢=û¨ô^÷}mô9´”˜›”+‹•F]ŠE¹6Z®¯Á(h-Õò/!§ô šœ¼·õÄýHMjdÀKÈ©ö|¬wæ°göØ}V†$™PNN  t)vjvØBUWbLJwá5vZ**@€Ä0&! çö4•aàýxƒ÷›{:·ðï£N/ .H†¥Ë‚U¤‚¦íùF.5ÂmÖšŸÄm!9ŸA‘îÄ’Ö“~r£º:(yƒ×øÎ­Ù]ný¨Èã6JÁ…œCQ €§Si­͉êA[sî∰¢õ¡Æ_[OþU4 ê 'œ麌ž÷~ið9t%*£`(c~ƒ÷œ¨Ç:„ÒY®céð¢1Ñ m„qýoJ¨ Žc+{fùûn›Ï&š‡P¦Ze© \zô„´ƒ(öX êmrJèeeièß”Œã÷È0Ôh£ _Ò ~ç°mðŠæ!ô™UFAé ³Ò'p)'h)<ã&úˆð„X¨ÜÆ’aL9 Ú ¥±´˜ s´®"2dj áø´SáÌÏ٭ŲKº>hpÜ@³• À.?W“c‹Ó¦Ä~† ô "`N«"t×5„B_ÌÝ? Û²ûÿäcIqHˤ<#¶ØV‚I+Âh=õ ^Z”ŒËm*œ—v ³`kT*¼#žÌADzFKX'IãòÌE=жÞEKë±»Ó¦J’!(êb…XÔ¨‚èY²íŽ€Ãî{ûµÿÐk iÒú“f§… +*¨€Bšja,J›ö;’ŒD`h*I×Àm­ -„|S5‚Bgù¶Ùãt»lKkšß\è!I[ÎB¹Å6" l4h(!JJY°5‡"_ë}b´`w¹\n»œ™ÜòU3ÿdª–¥ÙêP 0| Ón8”HÚ¯ÒÆas1‹š[LµžÑÿlP*àe»>LñUîðúŠˆ(Ä@ JF¾#Þ¨USit.³¯RW*LÅÈT¸Ün·ÓåvØyïš›<áEU¡Àß ÙŒüiÓã¨5šéý˜“~ZÔ‘@Ññ¨ë‡Ö:¯¡€:â´ú‹ú;/Æ#Q¡3Ä„Á‡`ü!ÂP&_íÅl‰EMHEÞÅ5ƒüHÁírºv°£þl«>¼¾¢Z¸õ-­G¤Ýø‡˜V&uSŽ…úR‘wéú€ÍíB¶Âáë4k9šbË ªGËQ(ÂȽ ÀîxLKkÄ,b1+ãLÈvªŠ¢C¹Ý6- .·ÍwiqíRè F\ZÜ‘»RgäÅšœÐƒßHdQ–ºR Eû3û[Ó>'T·5`¹®ã!w1S®¾"ZâÒJ}GîÄ0bYZ«ÊxC¹¸³P;_‘ߎ~y\?àeyYYK±4.v¢CNBw¤Þt$ZUš±Ä,Ê}&5¤"›ñ7h*ÜØZo©CG–Û(Œ…XÆÕ$O‚!$.h–¸%ó¬9›©%OtÞ"ØÝÐ`>§yL&!!§ ˜yÃD6$ªæ6æ|ŸqºÄi+¹xKãí^‚ ߊ…èt!ɸ=õæ£ÑeÇ«ÙC:rsÈ"Tt¨ }^¿Õý.:­¼®_—“öb&lK(~ÈÑÀ0þ€0òÅ|Fb{¦ˆÅÌ6!QG*þc%P`ÐÏàÏK½µ¹Ž,Q ¹©í9³(‚ÖÖ~aZÆ.z™r(ðóH2ŒcU•$DSj"²8uDiÈSfO6˜Ý¿×9;ÁŠÝQ £`qB˜0q‡nKu,²ŸUÕ b1±PzûK/íaÒÝj4lYzDYbl‚a¤Ì:Éψ® Ùγ$Š¡À’«ó˜ÿ;FÓÃm-båÏ­ \:N“ÆÜ”ÙÇ+W“hËÒ™…Rõ賑”…;ýtN挵®ùÕKÑ,C«†‚» LÜïsSæœ%Cˆ«, éÈô¬"Á*‚'àX·sÇìôž/{Ýú¿6Zm7•%ÍÔ@!jÜïsD—¥ý¢.V”Ylh j¼(ÐcdÓÙõCÒ¦}mukI‚ñnm;ò¸G…Å4…TŸaâÎI™{-­á‚}Ý&²7dCLbµXèIÛ½‡ïk×aE×J‘P+hÂAߨì_“Ò´Š(¤ú c¶#,ŸKa3fQ,‹q\(Dë¥óX6OJöžÎk ñž ª>ÒzÞnyÓy'ê·S…TŸaâÌN¹íö@…Ø«y‘\LkWŒu$.8t†¦òìêî™·ÿâr²P!Äîœaðœ™öI K² £& ©>˜…aÈ­ÄTîbÁăß.ãrýt[F÷µç93I‰M¡èŸ0¸^l¶€µLÂùŠªQˆõ$‚ÑbÞ9tÒDMÅÔvHGèXQ £< ©ÔþgXÚõÿ³@£@…Mî—>/Mr¿öi¿Ý‡r7´ª(1jpŸœ£¹Ó&ªHŒM" ÂD21Uóâe÷æ=оýCG=6šdDó†?*6[Ÿh°Ü,ù/ª£0:·Žì½É'ÄÓƒYLiOHi…¨P ‘ ­ÇºõúÔ!ïh½F¤a¯gCýÙÈý¤¹ï:÷>ä¥(Ù ©¥ ¨6xߘVÏ^Ï*еK(ŒEtåî¢aæÎÿ£gƼ=Nh*i6|+6V‹b›aaãçF‚‰yK(jh a=…s[ÞmÂ{| Sx¹¾a"ÊÖ…È(°`]®]ó3sÖœã,YæNV‚5üŸfŒ=å&èØ6 £F–nÊ©_Õzl>>Á-^Èv i"ÙêPˆ™¯î­á©“¶YÜ:²lzE$Øó œä”æÿñêBÑŸ’(°Ãis¼Õç;äb¸\¬2¹YÐU À÷½Ê£vl÷@4•Í–ˆˆ‡d¤ÎýFó[ Gq4¥&1¡Àbgtÿ88ûÕp÷*îæJÄbrGÒHFìÂAè<¶mSS½Åz hŽG„ù—£µÊslXÆg>†’SªŠ @¶ˆÐúŽÜÔl¹ q†ctdRGÊH2•¢À¦’2sEÏ÷Θó³Ó…Z³#ϯ¨€ÿW±Ñ±¦é=:+¡n3øçCyŠn>çL¸‘H¬åÉŤNKW@AÓØ«tï½3³Û³g ©”Z’£G!µ;p{{túù[åÇ &”¯pØþ™9`74Apy&+ÞFlÈ"ˆY\ÖQˆwõIƒWÿÎÈÔñ[Ì=)Û“˜Pˆ¤ÅòHƒÇ,f‚2™@‹!LÞÍ};|!½{>d1±< é(›·`yçìû{ì´´vÆŽBl–¢¹¯:ôÏóàV÷Ds›hbÊ )«JðÙ¸‚‚(Ì¢óerA‘Z·íËéiÞ`8#AÑ¡zÇØQà(¶ënoò¢Ó*œŒú 1ž³w´ºSù,Øø¥Ù‹à„δĂÆçHš8bmßôY;.<ä†f¢Ø‰ˆÙ’õ|˜6ñ´ç·âDݧñé£Wutt"ó+0‹.˜* #§{ßÂ6]ÿ~š³RŽ·¢ÚŠŒ‚Á‹Ÿ«hbË œ– bcA\*Âê|¿}Ï/A•'â&4ʲƋ,HBï5l2f³É£“Meâ(pöOï~­Ùm”ƒ? "ZØZá­ÖH$ƒ ³Ö5¹í–‡â7êÆX–¿P…¸¬:Ø9M_q¤üV(àã.Z”r ¢ž+' tê,ø}~æ JÐDÓMd¡ ü4©õ¼—2õœKlFˆy½”ü6cøÃ©Øzb»¸´qXÆÜè…ŸGë?&‡5jÙ iWj¿ëìØ”÷|,ÁÈ—* Àî¿Õõq§œ-¢o)¨ƒO@B¦òáö]טàýx(ôµøë FEø9Bïz¥éŒ½˜––’ 5Þ,r©ö\—¹Æ¯X¹{Å@£^¾™’6î;P®ƒOfÁÒ*¢ü­ÃýÛ}í£)iþ}ùÊè÷²Ü‰y—Z‘TB¿-æ`_Û#ûohw-¼XËÅè\­TÁ¯OèárÛÊÆš,X0.ï!I7ýT«ÄTvlÍ11 ÀkçwdØè«¬Õ‚2 Q`ljòmï’ó‡Óc—u Ùœo¶ïùª#Ju •s®¥ PúþðŒYXþ(TôÁ£º‡±P…(6ãÒF«íÆâr v4×âË!mÞÅ­,JõŽ]–˜Ad*ÉG:tyÖ 6"EÈ_H,b2+ $$Ã}–9ü„W%ÈŠ£åŽLo±Ü UW±æÊòxüMø~Zë1_ âÚéø``d­T22­tKmô9è[š½æÖ“ÒR´›¼7åV Ä=ÞZS=‰ÂÆïq/öÊ^zIGUœP. AžÉ® d/I­ûí–7¹PP͇ÝòJæÐ}•¦²•Ax`ë étMß·½Ò(€ª`…,FÈ,ÔD!Ö±»OLûе…´¸>ëÚåãøúK£mœƒ4 4@´i|Ð?¢§ÈB]xÇÏà\Ûd‘ÖªóìŸñÌE´¬ ª¡àù§7l¤¹+x1ºÖf¤#þá2 UQàÊmŠ;Ø£ó΢;,6^¾ª¸‚^AîßÃ[ ½ô24ÿB-ø›ž7øúK‹Žc#‘Ø—jͦx Úi°¢\ ÑÎñND*«ãݾÃŒ2–+PE(ºbœ=Y\Û[¯'5QàP÷íµéÿæùš¬Ç‹¨:R ñ¬LH.J1 6Á-¡*P ?–;6³ùývøÁ÷m'›+©`W…87 ‹ãˆ/ÄbX¸\(ïb1$í¢ïOQŒã.?ðÌMùo̱ht(Á´iÀçÁ’Þ?ã™Ù‡XôAr‘ÈžiŽ7EÚ­ëÛÜ%oüÁHñ£”Û9P*¨a+.ú®øû^ˆç̬#Cûô!\9¸–ÊìÞ–Óñ}€Ê<¤0Îú$pVDD~æîú&p Ä5¯~Õ¥¡}e æ+|nÛë[¯ôÉG0‰ôý¼Öly/ª K…,i¶¼u!îýÔ0 f±X‚ñž½»Ñ]ZPþœ[4&öËͼT:2 €¡“;A¼“ö‹!ýDJå6Qu€K¿&mÜŠÛ<(ÉÀª¦k@œÇˆT1ÊÃ\1ôÓ’øM2b1¸Œ…2o«{Ó5]¿ÀYªJ>´¡û:¢Q•­¢©›@ð[M!Hd²'faÔK¹ßÄPˆ›}?ŽL[ït«è`Pº´Å[Ñ­ˆ E ìz*¡c¾P*ðâàþF½”œNhw z¬÷䬿µT±ÍƒÎૌlqXOM¡‡ëu/ŸÐ)x˜Å È‚dè·YèRi—§M=[Mu:¹¸nIÛZIaf¼RÁøÛ'ç@‚§“ ÿ"Ä"¡¢Òf3»ßÕ¹Pâ ¼×ráP‹ˆÞ¦ÔHüœÄbà“ŽdâEk©Lž¯{¶Û ÖR Õ¿g臷ÿ Äæ(kª A‚‰_çÅM:24_+¶Z,Ñ¥:4=í1>ü5º .«ëš>.T_jU8†fÓ*ÄâÂÈ‚ŠºÜ=¼BA.UѽæQ1(?>­ïÕ³yæJ ƒ *sÉ,Èð_´u›é4¼˜>zˆílÀ‚O6}¹¬wR¥úŠØYôdÒ‘Ñõƒ„NDG}Ï'¹?±ŸwŒ+òwu¦‹úKkähÈ¢¤ÿ ³Žb£G .u¾ŸÇ¦®»â:g Æ…»[n„zH1ª(é7± ™h› ‚õžžß|¡ Ä{öš€–ÕÏ[ÏtF·«^SGÆË,ªí“7ÖP£Ûã­'1­¬gا§ÿDs¦_MY 1ëȰzˆ*¦¬Žw;ôþ&Á“ƒ,Z,¹…õ¬)©@,|}‡„Ù‹H(P•§p~‹¯(PœŠXX´¡W•9Lÿl3|7v©sò #ίhú/(hCãÊ£@^àz“XT@3{·ôÊþX¬¥Rt5‚íÙ£ À½'"‹šDý‹‹ËPàªloïÄVÏ— ‰VüˆµR໳ÅçO7qFÊÁÔ, ä_p½®•X„£@ Ϲ-n×5޳Å)ðY›š‘²À5Œ٠Ȫ¥ä˜]Ìà¢R §qeúØc1Æ]1©g 4WS?Å! SÓRíEÏá…³‹\ ºT›:wÿBq#Q>o½!»±F3%Âqe5Çf^Ä‚,; ˜!žÛ¾ªÜiQ‘`\"÷o~žµfѱ*wi½ùsZ=`‹!K×û†® ¨%(D#½À3iõHã›ÎD;c:1ýDGGÈM] ˆ…GfAØ-볇ìTÔ¥ªn-A•| ÆAü O÷‘PG÷Eß6ïÇ‘¥JPQøŠYì+ƒ-òˆ…‘ûujËÕ^e⮨uľmöq°n&_+¤ûžœ‘緘èâRU…Âq¶åò=«^Ô8Ùæì]T^ê†üÞË[}S{^C¿p…Å*1žp¹µ¬N´Qá¶šfa«åp»h³ÛcÛµƒDI’/]J¡sN³¦·ºÿnc sβÖÂ{ÏZ«HþĶɓ?6ÚWvÝU!Ì¿¿gÄ)%PŒxúŸG¬18œÎX¯–¼ÿÿìÓ1 ÂP„á÷YH!F_¥÷o<† *‚V! QbòÖÂXÙˆ"é¾b¦™Îdºf™î9íVdÕ QÅ‚€ˆðì¾0c0ôdÇœKQ îÝî?X0 $ý„kYrÈsœ*f†è··µný©ÁB EÄqÌv³@µù;ös;G£1u]‘Îæ8çšÌ㟘á½';÷¸ÿÿìÔ?Á`…ñ§úZЄ‰ ƒ»Q|‡Î>®Ä€¡ Q4ífí¿c`hbXˆØ~w¸9g¸¹f± uõwÌgCÕm²4 žü˜¥\¬WKúãš­6iòz÷g,0Æày9N“noB’ÄßÑíï¿ß0BÆ”‰¢ÿxëÎà~î*<»÷´,Kq'*Õº:Ó¶±Q.åv©@šåD—=çÔæÿÿÜ—MKÃ@†ŸÙ‰¤âzè9P)E=xóGè¡?V Ò#MD‘TMÁ쎇M*¢õ¼=°ìòÂ;3ïl²½±Î“gs·O¶?dQ½}n(ßLVU¥œ—Ìî NNÏÈö†T¿¸» Çw\t€†;‘*“ãz:ek§Ïà`Äü¥DÆšéŠÎ³™!î‹§ÁÄi››ˆÞ{Ä9\‡ôÿ7†X·i¯Ç]ñ@þøL68¤®ëåùÒ»f{j{ý/¾„†Áñgi†ü ³?—“+Î/ÆŒŽx­<‰*É,ª§Jš y‘s{3ãÿÿÜ”ÍjÃ0„¿ÑÊ©SÓÇ(yÿ·Ê¡´´I¶¤u1$·6´ÐŸÛ°0;ÃþLìî’½5r:1—¬p ,]‰éJLfFɉ£Z?sË'¸·`‹“k^:qˆ°®êÝ¿Ôó»ð6|™Ÿ5¥“JJ3€õö70 »ˆ/MÝ/uwgÜïñV4/ I  q¼£–„ó[üÿ?Ì9½pïôÞ4ÄH)™Z«¶{ßvÔ ¶ã~ÚË—LÊ !ØÍº°»†p_+îŽ>ÌŸaˆŠx}Ë´ÖTkåxP+ñ ÄB;­b! V4ŒÙlv>‹‰QBª  .sç g8çŒIzÌQ]ФòŠüåweø\P *™1¼ðVV˜) SUPSÜwC%õ„ˆ¹Í{ß©ñS« õœÿ!*¸Lyê÷™Ô`&ˆDê(lndpÙ{¤Õ  Nž8ìv¹’™ sO#æŽ[ÊŒˆ !¤µ”Áƒã®)+¿àþ:›¯ï$’5ZȸàêüŒ›»‚µv“¸ÿÄõ/þ¨‚¨&/b]1iæmלœ^P»RN*Bð´Î[®QE‰êÉóœý½]v¶·èÝöètÖ)Ëf9xÿÿÜ—¿kqÅ?ß»{8 -ÒúWØK0à_`§ˆ…ÿÿ‚(Úˆ ˆ"‚xb‘ÆXc£v š€¦<ÐËe³··»îÍŒÅ]´T! Z¼nf˜y ÷æÁ–y¤PÕ߆ˆý°°î{…¶zG:¬Ý¸Ä™‹WH–òäÎM6ßèdž½Ñ˜F<Á;Œ€›Õ•ÒíÊb‚ú@H2šb|*¤i@EQ=¼]mî䙿ÀárðßB;”Ÿ69wr…þë/,%ó)nÖ0­j>î|àó×}ÒîR—”õ”÷[Ûä•FOSL*!Í2šbL>bô8ðÖ²;QÖ-æÑùîˆý²A•¿ÿ?³ƒèxÀ™!"2ÊÁK®_¾ÊÓgôo]ãþú+Ⱥ°¨Ó…¼˜ E>fR+1zT=Á¾QY¯ÇàÍ·ï>f\·tçÔÊ ^¬ÝãÑúsZçi[ÅáPÈl1_êa¨)I \8–þà ‡CN¯®²½õŽDD3øÿÿÜšOHTQÆ¿oæ½æOe“d 8BL&mÚ$id´Æ ňˆALˆÑ Û.Š6d‘P`ÁlÌ™!„´ìéD"ŽP‘MeMÅàF4î¼ÉwZ¼þ0› h!ÕosàÞËùÎ=VXß­ÄZ=ùáóFÇ|¶ì¤ˆPø§¹¿g0gð¬/AQbŠCcoá^å€Ínçljaô <@f…­§ŽcúÖÄž§I]ƒwcgF™õïÇé¶z¼‰õ±xY:QÕÐÂÝåë T´‘Àß-Ÿå§¥…˜ÿäîÿ7¦)pÛs¹džêJ¼z8Âù!Ø>ÄpùJ˜‹®5˜}ñMµœ›ºƒsÝpp6màÀRgÛ»8ïòaO ˆ-ŽÑqt¢ú`ˆ»ŠÐÓ}©¬Åå´ÔoEôÚE>ý¤àñmGðp- Køj‰g™¼Éòb|¯aá/-‹!&Ä$œZŽ·{ûQ°ó(:TòKò:ÏGðr›Ÿñ›×Qs¬s÷z™ÔÊPW¡!|£ïœhlí€;e8‡¦ Êö…¸)5‰¡ÁÇ€×˪ÒÕ˜y–‚z=ÁHâ.V¹Àärsšk<è:s‰¥‡:°×oÇg%Ôiõˆ%çL&ƒ`S3ÛNœ(¥ é: ¥¬ŒÂoÿÿìšOH“qÇß?+Wl¬ƒÍ&1Ø¢…†E’u ”Ô´YšØ,X"Þ‚"ìPé¤]#¢Cò0èJ=ˆ…öBH9GÌ¡Í÷õ×Öû¾¿O‡·{ ž¢Ïý‡/øÂ£á¼ß¾Ú ¼”P•­ÎþE–(úör®õ$ó£ä]?ŠcS~°ŽîÔÂ"Ã̃‚¹AôL7;0k¬Ð?<„ž™aéÓÒ#£D›’4Uûxúà ›z*î¶î©z¯=ÿù+\Ðüȵ÷L,Ò??ß¾d)˜&¶ëðCX¬¯TVq>yû]¦^Nb -~š»=d'_:^OëÙNî\¿JÐúʪ€Ä©F.võÒwù5á¼3 >/αPØEM<ˆ(:xªòü£j°m›D"A$RIEE„X,N D€¢hüÿÿÌšÏkAÅ?³³›Ý¤Ù&k’¦ö¶sñ¢ Ah@¼yö*ˆ½õoðO(XQ<"žEQ TƒàI±<µMÚì&Û¤;ãa7ÚÞŠsx030Ì0ï{ïkèQ’aÀ‰ªÿ„GÒÁ"¦;öÞã`¥Ac°ïùÌ]¹Š[}ÊÃzÈJÙàíó5êÛ‚fk‡BØ&‘ÎQ*ºôõçÎ@ÊqI'Ùïî²ÕôUºÒåZyt£[)àßÎvȨFÜÏ3(¯cßõ¿'kÆ!ꋲGüøPã}mƒ±G©oÔ°>~¢&™,p³9&g¦Á;Å©<'ò‚‰ÂI‚à€¹éYŠ® ¹Õf§å±Ù¨Ò‘Ê‹ódgγ|·Ç›õ'¬û9îÜ¿ÉòÊ=*• ^¿âÆ­ÛœÍÛ=÷Ž Ïý ŽIÇ2V‘±ÐJ£ã–Gã{‹‹K%håçæ/f—F ’nKôpFl¾¼{Á³ê7¬Î6úô.}3Cij 3‘%t<ŸPHl ƒ„) :]„5Nh.]&óù%«k ‹×9%Ø 5†¡ˆ¨&úËÒHiâû>ƒ€4žÅ6¤”(¥ø ÿÿÜZÍkA}¯›v[iÚh„±`U„6”zÐF𠯂·‚ø(xôàÉ`{)Ôž"Jx¿@¥—(hŠURDk[³Én²É&Ù;‘‚¥,^†w™ax Ãûøý´±~„( ¥P± °¶á/– ¤’…º÷÷XÔà:EX"Ädr¯\FùÒ9οÍA<ˆ:µ:ôŠÛ©SLBz´‹hFG’ æaăD{O?²©ên±ÆÆ®ïžRÂo ØúØ}¨øù»óÿ7ìË„6èeÜ»ÿ„ûOŸÅѱéu9ó0ƒ½'¾3ÅkŸãÈHÏâv<Œà î _Ç™ÙÒã»Y¯V „¥ôÇ‘ Ã`>ÿ««+hzM²¢«UÓpJ&º6uñÿÿÜ™½kÓQ…Ÿ_¾¿HÒ6IkMLBc¡Jªü\¤è „6­%DlKãÇdÑÍÁÙA\u)XÜTÄ©vh4˜bÒ”4¿ä8¤©ÅAPÅwz–î=¼ïå®M¢ó³»Ñµ=¤;”ø‘%¡nû¥ÞŸ±ÕbP­šŸ:ƒ£Ï‹ÓBwî÷F8paA÷Ÿ“œ,r8׿Þ~=A|Œ*?=Lý«8=?«×ÇPv–iù³ÁHÌí¶Ú]ïõ;gÛÉø£wÿÙÀ@ª­›Ë‰ìS4à +àŽ¿W"}sv7¯W[ºrë6‰°‹Hê¼fœ‹”Œ07nfí 23›ÃgÖT·x8>=ÏÓÇKZ.ŒÄm8=n øZ¬Ôü,§óÛ)‡Ü¼ýøE™Â% Xßh¨ëXþ¾&ÿw»ãìø>Û›uÂéSºìÛË—OxðjE'¯^#H“ñ¹‹r={ƒ£pT2ª×.*÷ÒìŸÐÙt ¯µA´åRÓâ&—Ÿ`0šP>—áC¥Ldôˆ2¡ R‰>&Ku­Õª8<>‡Ó::f%¹ÛKc­,Y¬[o™dš&@O¥UU*ï°ÚlH[vÀ00M“poxßÿÿÜš;‹A…Ï­ê™êž~Œ‹">"ÅÀÅ@AM dÓÿ€àüþCñ…‚lf:ˆdD4PÌ··»ºª§êŒ³«‰›,f_r.‡ ÷r/¹y÷eüöaŠ—Îseÿ¡eÎŽäVVŽ Ý6¥½wxúäL&xààáeÎî¯ÚåI“0ÌÅõ‘yY`n7%(Ã2Ï€à¥i;ŠN€ÐËœŠÃ‚s½˜Ô°w‰äeE£‰Î6ÒXÏ_ï玼-Yk-ÏŸ=âÑ#ÇpêôY©76¨·sv;®ÿ?2¡0ÊSñmÃ>¢2vMSì‘4!½÷ðÞ‹Ÿ“Åx #A:çè|ÀÐ ÄÙŽI$/K tí¦´.²¨*˜D¤©°õE5–t éš­ë…À®èÃnd,.;Álö^>}œñòÕkh›æ¹Ž!P›ûöVòeú‚ï¾—8wæ¸0€e™Á‹í:öQ£ª ‘ài;‡% ‘¾È²¡Ø¶cZŽ‘© uc©…ÎɫЙ޸üz]nß¹ÇÉõ[X;¹"µSÉïûÇãñÃû²vñ WO¬Â¶nË'°8FÒÌàí«)Öß|•Ÿÿÿì›=RÄ0 …¿§ ¸³ g æ*Š 3»$°±ýqQ8³ Ìl±JYÏ’üä§z>oÙQø#uwDR“ÆBáÕÛ>!«$œøÞbu-Ï‘fL÷H&<Óg¨*SŸâ¬¶ÏêÚ%XUIÇ·Ï`štx'þÓØßÙ)1ß‘Ã3£â4+ògÜC»"È4»1¤½4ÏEEV×®¾à»nWP:&׺©lßT•PNÑþ™Æ~ÏkÃ.ðòÜébqÇýíÄv»“»Ó6=2“ >¼5¹ƒLX)¬H"¥"TNëWR‘Gà*“ºvIªÏ8¿ºÖÃã7‹KÒf?çoñóPT„èãàŒã(÷ƒ"wgÈ1ÌLÿÿìX1nÃ@ #EuÎÒ [ÿÿ¦A³ƒtvÎ:$C3Ä-ÈÂ)QwÊ!ì1špîá æUAÉøÓÿQ̈’=Ã!•¬0,U>oÝ©¦‡­ú½—â.¤ÑÁæãúk³í*8cñbIP$= qø÷ûßà"¯v‰mODlvVæÌupþ69ñ»÷ßÇüソ2î§rØUwušüIA"–ëÙßWB `±3búÿÉ™¯—ÊiÇ/‰ÌÀáø…Ï“}þ¹€,r«µ¾nûî( ­m°_ÿÿìœÁ Ã0†¿6c){ÿ×LÍVðÏêvH[ÆF¡—Áõô#*""Šè©vg`fÈ„$Ú÷­å^ß§¸;*†dHeÝr½Ê·³Ü»å×@:]w!ÆÈRŸ¸æÌ<ÆnÆíÀþU 5oÏ12ùD)¢O‰q¼íª ßðÇŸ·· …hšµÛÛ¤Eï ÿÿì›Í ‚P…Ïñ^{Ó\Ü׸¾ÿ6¨ "ÚÑêê.ÇŨ%n]D¸ûfu`þÛÔ5·i†syÂãù‚µfLõä§Åýæ¨Oóí»…/<‡=B É¡FPËDr¸Þþ‹]sÈÒ×êB« ÒÞ®ÛÊ+ÿ6GãhŒ¡÷î· d™Ÿ÷¥8Ž7Øå9'2cE„îé;ÿÿìœ1 Â@EßÁ ¤B@be“Æn¯«xŠ9‰â² ö¿…Abl5¤{<Þ0s‚Y,ÓT·p§Ü­µ­3¬ëøú¦é%„DÛ6¬ŠBÕ¦ÂìA’8ûèéWOÉ;1^9/òÞ¿#3Ïü¯BPžg?qÏïGÌl¬é…@â ÿÿbaaaaøþýƒ°ˆƒ‚ŠÃïß6YG¬|üø‰AßÀ€AAAÝŽaþþ½ÁððÑSø8ŒÐF®pe²;ûß¿ÿ LLŒ ¿~ýb``@ì‹…õgƒ;aâÞp9dÌÀ€hÙ1@WÕÿÿÜ\Ñ Ã ¼»öÿÿV;X5{H,iÁѧ2æS¢§¢§Éjf”„ý½£Öz;Å“´àµmÉRJÛÓ‚?µí½¡°.óT0wêü‚ÜZƒ$´æŸ-I?&'8Èz‰ ê/ô„^?îÌÉŽHvĉò±>÷Nþ3â‘qŠõ7ÙÌ ‰‰Möý)[ûÓ¶Àeî‰Døì¸ýƒ øf'éÀ¬3qñÄàu8­gýÆå2ðNúk¡GƒðÿÿÜœÑ Ã0EfÿÿÅ‹wjØèÃ`ì©Ò¦’ܪ©Þà V¶VwÉ,Qêõo¤Y¦rH2#™ÚKzfÜš!ÍH›)pçÓ,ÌÕ˜SÎõ 0ÆHý¹+3ñϰWî®rH²Ñ˜¸¬UÂÌs"m@Dh1J«Ãª™ EAßkÜêÓr5L=ææ Æ8("š´yCÿÚ¡†§~®ôï¼Ï3R‡<4NšN¨ ®_Äí_diÛpù"}Çì(H£ŸÍ“òǶ‡º.ùx–AZâÿÿìœ=OÃ0†Ÿ; „Ä€ÿÿ‡ BlELºtëÂJú•¶v| ¶S‡"!XXx¥L¶Nö9÷‘ÜùÍ›ÿEňèW×7\^œûx’ÖÏ’úÚH×Î)á°'Z$„@ßGÞ3ž^ˆÞ§ûwEy’ª.ï‹÷yŽ?PÍ$LJ”:9‡l4¢¨ ݪaÕT5SN/mCÅÚ*úš¯eþfEí`½Çû0¤ÕªpèÖ4Ë ¥„ï÷MÓ’ƒÎÑ2Ù¥sú]—RÂÓîÀ˜¦¨Œç“Ï4VõžŽûæÔòl¬Ÿcœ1TŒÍjÉz—Ñ|:a2#¡:ÃZ·å†J½î%«*~ßѶ-ÛƒeùÏ'òGàœ#t+Úeê§´í+w·t¢¨0Ðÿ|Þ×?~1â¤@LaE)¶ï–!ù3öÿÿä\AH”Aþ¾™ù-rÉl “²J ‰­FtèÐ!ÙŽž:mE‡(IÍKAzˆEëà%ê`Kà:lÐ’%AlX^ìdDì)ÁCá!Yöÿg:ÌÌ¿»»t›7ïïÍðø¾ÿÍ×ë.Jßkßù®°„dGŽvdX.»Ì^#{‘4¤Tˆ6JŸÌóÖØU<ŸÁ‚:É;CýØnŸ)gsˤC 'b=?VŠ˜ÿü ™s}ܹ{z*Ë *c ¡DÕ/[}q”Ǭ#ÿhš/—WAH¤ÒžO÷Bù8PÂgt©Ô–:IÁ8•ÖP¤ÍÆVÔ÷Éj¾˜ÄÄã÷¸=ó„§:’XœŸÃì³·Œ$ÑÒ•Æð…>¾ÉÞG¡ø ÜÕΑAtíÝ0Ô”J¢ô)Ù×\/GH´ö`øz†­‰¢ÆN­åÐÛƒL€ª:!Œ†±þÇd€õ2°ñ1ÆÄñ CM)‰¹éQäŠ%65íÁÅ£¨,àÇC8Ñ݈X§1¬‹­ÖRªØfÿ]‡ „àÚÊ® Ž£¹­½ ý—oâôáN&„¡¨ÑïuÚ¤'E…‹ù<}õerÿ‘³ºtÇŽ§øók9w–üÂZ¿àz ¶ÚÓÿ}l Z•þ“Dh"J¢pï.52—½‹@G0BÅ«ÿ¥ø‹Æzàc6©Æ÷èÿÿÌ\]HÓq=?«üÊQ¤®SJÍ•”‰$µ(•,Ä,&Ie˜(„¨PâGH*)Nׇ¨‰"•ÊÒÙ‡Q%âPÑœH:mÿ¹9šÎÿíÁ9ŸÂWßîÃåÂy¸—{¸çëo,OkbB#7‡Î7¯¾ ä§7™ˆmhÇlÓŽ·9uF†8ÄF¡®¸z§í”‘‡ª©n÷w »Ž'ÒݸPÀ² {!¾«Eû”'J+sÈÉø yÙeø@üV8J¢àËÆ©­CÒ¥#›Ödkî6›­Ðë1³øU <ö&ÅŒqXÔéÁØnò <‰œ°¸»ðT–Šƒ!8'˦‹) ò\(»Õt5`š"y­Ò¬"Dú8Óï‘QlÃòì •—)0ntDü­,:@¨*¨À¼É@äq‘í½JÍ/‚ëDš[U´h6ÃíФ߈"¦ùŠòš—˜„eäf‚ÔJ´´õЬÁŒÈäløë:é‹AYL z«hz,âNx‚1Fó:àAuÄ#õTÒÜh‰;\9Z]P£¤¸S>”’ž‰à=¨šÔ¬RÃ?â2®Ÿ¥±Ï­P¼î†Ðûݾ#ƒÇ6<1ëaŒ [ÐQ°T†œ{W0ñ^NOUŸà'C£Ñù0o(=İɉD;=-b7bŒhÇón-Ý/zg34ÃS´b˜AOO?Ú>*}¡ÂäÒ"Â÷­ÐŒ%‰Ñ¸âÃÄXåy›ø|«ÐÆ­¯ÓX«}ìüVRËÏ98º†™@B¬k|·eÿíMØrˆðÿÿìšËKTÆ÷j:êLå$©ƒ‰i¡„¸Ð±ÅFšƒ2aI-ÉWJ”=7Õ"‚èa„mJÉGAfŽJÄ¥©8å+t,ñYãQgÒ¹s[Œh»6}Àᜳú~ß9++Š v;á±äæeàï-✰*ƺPQvʈ 5ݵ%\i¸{­€O'6kµæŽd¦±Ík”ÖOºL/iPS\DÜÎ@4‘Ñ$8D¾AûØgÞ¶v"Š*g“¾?˜êÒ*¬SC»~žÁ@]– ÑÍõÓf2[ѧ$à#-")ÃÐi#ì4céïgtrûô8fsï_ÕáÏM­)—G–d‘j?Ô*…ËöË2š@üU0ÑUˈàGxˆóÃÜ>ŸÇ½æ9tñQȲ„»›ÀÐ×><‚"‰Q²h·¾_%”߸‰».“sÇ´”Ý¹ÏøÔ$õozЧŸ€öG´­Ó’ž¨¡¦º‰ñ‘½)8S„ØSCÕëa<7‡‘š•OœfšÊ ßFºh·…’{tõeUxª7`2Ö1¿8Á3c3›¶ø".a¬Âm–«§r¹ø°…è½Z°Íâp:pSc8^H\à4Ÿ˜7×QÙ2Cѥˢ˜l£¤¬‰”¬“ì;¸^R,ƒÓáXÁX¥RAË‹Ÿ¦ðV#1ÉIX»?`ù>E{M)½ÊXÎæ§ayUNç˜mc;Ì_ص'ޥöF„â%MðþÝGctè“’“šÌŽõNŒ¿Í%¿®Šÿµ¶äåÈA²òôy†Â hƒ}ð…•há_KXbÔÕâ¶å.ÿÿìœMHTQÇïïÍÇ{3Ï7ÎL~U~Õ$4je:¦RaAm²AëÚÖ¦}mI° ¬6-Ú.& JˆÐ,²’Ñ4GiÆ™÷^‹yJ‘»6ýálîâpüÏåþϽ÷H–Œ¥°?š¹,É¥Ù\]Ïo¬ÿn¦)Ö›==›¦>r’®Ê9z_"ÐM™ÎíT»QÜE ›4tœ¡çþÞMŒ24ÁÚ=5¬‰N˜žÄû¢›È"$™“±XRÐt°çí ×2É…Íøú{¨¿z‡9ÕFéF›WšyÖt‘¦²6¾LÏø‘”(_å0a9FŠ9JÓíF¼Ϲûø-%Åx\(Êpæ9‡dbQ…@0ºJÈ?"¤SShæì¥[lvÀh† Q‘åòŠJÈߘ †¢ªˆ¢†ça+êúRʶ:˜úa{ñ&ÆŸÞ£Õã¥ø ër¨pSRu„Ú£µTï+gÄÓÆýŽA—{ôXIRADºf."²+ßÁƒú:úz;hs¿D´ZÝ€‚Šr´×nêZ<øzݸ\]HšA(Âfµ2ó®ŸÞÑ ÌY*4qæ—¼ c9ÕýÏwLbö¢*ŽÛ K*‚ðó™Ñ¿FL¸ß{riÆùÿÿìÛKÓÇ?»¹æ¦ÌYé4‡nÎ6ŒiS'˼Ìm²¥)be…HàCF =„DO=õГ`%A¥‡œe Œn b¡䥇 âöûõ0»A$=õÒ÷8pÎçû9p¾;Õ‚  ˆ‹c~ê.ö3ºÁ¥þ›DãTˆÑèoŸr@Œ†‚ˆL“†ÏãD–däÜù3$‡YÓåÑàsœY€ÏãB ó"tЬ’#G‘e.Ä_²Ñ‰IÔÙ*6ì;ëÙ‘°Èð«(Í­M¤ë³ð{K uÁôj ED4–:Nuíæý£Ûœì=Kšç0v­çÞ}d®ÎñyK%{ªK±¹ý87Œù÷LV¿h‘™çQÌ„çgX\^!,M¤6$~i‚Á[£|‰Dùøú W®£¯h¦¥&QKE¥ŽÎž,Ñw …ˆ$§‘¨’ãé­¬0¿4MX™‚D;\Õ› ÉÏP0py€Uí­nL¹vŠ­LUi+KeòÍÚ Êu£\"È’òé=ÑÁÚÜ8Ã#/Q huéÔԺɶ:ð§swü«@N¥ó—¼ø‰äüׯ’¬››ÚT#Þ@#mÝôõ¦Æ¬__cÿ}=…ýqÞðÿÿä\=/¬Q~ž³»* ›È".~Â-PéqW"ñD§Ð¨D4üQh”²qü…Ha¯‰øˆ‚lÂqÎs‹ó®÷Åúj4·›bÎÌ33gš3ÏŽÌ,ëäï:[UUS‹«‹Cžž_+'Ì ¦RIÑZDHmÂ}vó2üÝÝ¥ææ ¬•bO@E0•ƒ"ÓÆõ½, ˜ˆË &f@·ûKȬ߳'Ý¡2CðË6ÃÉ·ek­Œ1Èf³ÜÞÙU:Ý ‚ 9tŸó+O´ó“<_,¢#:=ms! 9† s®ÀS£d,NOp¯ü—{ۂ܆:/18ßû|Èkj| —©>Žõ·Ëù3”ÚønÑôU,ò„ÞHM_úòw7L”V(Ié3;èáj‹+GL䎴°–ÃÐè0*!Ñ€EÎtÊIAƒò1w¬É"q0¿WßÿYö×8;» $%“Õ°–NN0q$b~ŸŒñϨߎ³Pw’˜Í̱¾®A?›Ïç_í³+))ÅÖÆ*V®ùÿÿä±nÕ@EÏÌ,R”%åJóšT”)¡…–: þ€’ïLŸ¿€èyf.ÅÚNŠ@CA·¶¥‘ïjw¼Ö=;û¤R1ª\8¿:ðæp­Yw¾ùñóaú2<çÚhÛF+©É,b QE lÝ^¨[-ˆ0rI #ÆÀrɉHø¤J"œÌœ"g§ª×û[¢±5¸9¨‹%KÇ·|9‚º¥nªšù¬eö1ÿÌ ÚÛši5—E{•¡^•“À#èJµÀcàfz2ZD7ÕEµdŒpPkÉ—#ªgI®ÊÄ<@­nßâ¦Î´œN˜œgzHšº–4y4hI¯o?òùÃ;´BÎëgb¿%—îBSí®ËÌ#¨LU7Aø„¨'w‡bçg/wèwÃ¥ÌÝÒˆ€J׋‹W\êŽû<èÛ÷¯¯‚îž+ft—* Ì0w­š03Õé„|PÏé2ûKúÿjkŽ—ÇGfŒ’DÕ ík"ÿê=Ùæà>¿öUܶÚ®w£âÿÿ윱NÄ0 †?ÿI#ñ°Ïœnçý߀ml§IÅpl XªZEiœ8Qj7¿ÿŽJæzûäãëæGµêÔ÷ ߦ"Oó ã”ê 3â£Kâž,pÚ9­HÏ8òYžˆ¡ˆ«Ëblë`G?¡)µ¢Á>÷¶ù{qßBîÑöö1%ŸW׫R§:á•ô:*•™ÐyôÇú=OòP£¹ÝO/¯œð_’b…y.R¿<>¹^ϸsùб@v>Áì¿ûF£0çO›ÄÀeæk VÔ|ïcíö0êÎ=·}Ûhϼ]Þ‡9ôxO(ÇwÃ&‰Ï\~W›íú/÷ËÑιnÿ†ø^4^0?|ÿÿì]] À ¼¶þÿ?ö܃Y¾`°`°·{LSðάT MÕ§eàvÀ›f›‰cKúÅuÂ݆­zÕWµE-Ç‹ûÛïþõÉP%†€œ`|pºp]“⌱±éúœÙ¿g‘ÉZÙ«ª—2P‡U¨ /r„ÇõãÏâ\,$ž.ÿÿÔœA !E¿&¸êþ·g¡95«ZU®¡¡ ’ÿ§Tœ6ÁÑ—ö Öjòý _¼ç>.¡~¬ª B®HÔ|6r÷ ›Œeca= ÿd”åZ.¨ëp殟ÆÓþÜ’Ý\8’ÆU£OøÐ{ÿÿì1 À Eßî-êýO`¯åb¢í­µPè(ÅAøˆqG†—ÁT,)!"Ÿ¬¤`ˆèœ#ì¿ùæ³{œkÿa¿’ 1FTó¥x¢Síë»­¼òԹجœ3¢ÊQKMqOìGköâÙÕe¦ › ÓÛ7'ÿÿì1 Â@ …¿ä‚ t·ÿ¦þÿI…®‚à¢Þañ®u¸«â®Òí²$ä /óÞ˲®ÙnÖŽ'ÌÊC€á³Å“f‡Nú”hš•ˆ:n]‡8“—÷Õ˜/Oü7ñ"Íæ‹JÔÍØí[²DzïÕ„'üKxÜo†dΗ+ÀWÍ6d®93î1Vjá`þ;’RDµœ¹æšäÿÿbáààøÿîÕ{ekõÿú&¢DŸTÌÄÄôÿÛ·o ß¾}epwwƒ¹‚at3éɾ}ûî%eEØoîžQö(›ìçÏ_2000ü—”îÁžtñ"3óÿׯž3|ûöAHXôÿ“Ç÷äTž>yÈ ($Y òÿ?ÿÿ‚žTüAXD”¤“ŠYYYž?ÆpýÚEø"c˜>tõÙýë÷o†¿ÿ¢\2XÜ6Êe“ʆTŒ4 7¨O*f```øûÿ'7/ß?¿Ä%¤˜™™xxù…ß¿ÃÀÈÈÈÿÿì]Á‚0 }¯ÕÿÿI5¨€ÕCWÆ 5Æ“'º­í -PBóú1Rqßèº"B/9ñ4Ò™"`Ê}º­ ÖV r¯ñ ƒ=0E„Ž‹öRŠ žoµ¯ñøE¢ýÒ{ªG5£àކ–‚PÓ6Úíú|1ÑV¹Š î™l5,‰s™UlXò[ &2cøÍµní•Æ±²m®s¥_|ª[bba§ kyô¨–ž¤þ¢$ùÄÖŸþ>MZ<»ïlYëØ&½Õ$þK;‘ï‘ÍûßþŠmÿ!•{ô‹´k”Gå̯âDßœ²n·+RÊxŒ£†á޾ßár>a8VÇ'ÿÿì]MKA }Óv[hAJqýÿ?A)®µ‹ˆ^Ô ½”•‚k·cÝîLâa>:«BÁ‹sÙËL²Iv3H^ÊHÅL€¨ak{ív­Fd uù'èÓëÄ»2Ãð l減h¢ÖZ\{0ÃÎr`0>Ð;ìâ)[™µö}/®äxÖ01´Œ®+„ÀRf˜Ë.ãဋ²k¾æ˜pÿ³ñ’þ•ŽMädj•ã-M±Ìs,² ÙBbÐOp?žˆ É}+!’°Ëb¾"g¦Âú„HûõlÑŸ™úýÝ£$H+¸3+´µG ¶ö+ ³wpzŒáäÕ_ÖOŸ¥CËïÀ&{³ÈÒ“o+Vª¤—Ãì'¾Øœ„ t׸ŽpsyŽÑtгäÏRÌPP£(ùÎæ²}ôO¿#wªVT.‘¦s°¨ üãMB(U Ó‰Ñl¶ÕØ÷±*rÄ{ˆju;”øÿÿìœÏkSAÇ÷3³âÅ?@ЋÿBþë©<éQPÓúãéI´xêA¬ «`N…ÆÚ§©D¨½AÅ+¤5Í+©ýE“&o=ìëœôÒ› ;ìÌìwfw`g³ÛâÉ%„f£N©ðˆ\n”×ó5‚=¸¤ƒoé´w8Ò‡êbz3ÇˈoÆÉdz‰€ÖZ¬Uà†sÔ·,"-Ɔs¬v¡I41ÉwéAUQ1UõºªXkA­ET-"t<ŽòÓQúNœ"›=ÇHôÑ¿Çe׎ {ðxÞ¼=Uš¢é–äï-lœÿ žŸåZÒwü'OŸahä!SQ‘Åõß)~_ èö¾*$‰–˹x¾ŸðjÈÀõ{T[ˆ(Ö^^Õm}Åý\a²ðœ@-Ö`L*ï×E ª~nUA„ ðüÛ—Ó|XZÛñ¡ÝöñË߹ŋ÷U_ÐI;s?ÿ UaíÓ,cù"*ÂfåOŠ3Þ¯ èö+q` ÑÐ%nOÌ1hk…›gYpG8zø¥BÏqRÿèx|;÷¤Ûk-b\×ÙIŠý?í%il—ç^fû ¯\æÂ»,m¶À’Èý&çÖ¬Öc6Ö¿Òn·øRY@D©Ui4¾ù\q†?ÿÿÔœ[H“Çÿß·yɹr†:ç%5 ‰,A4/ "htà [¡©¨J^fšBRbA5Ì¡‚9g^F +•BóBà- q…æµÔ$¥X¦dN‡úÍÓƒKŠ^z«ÎÓy<ÎËùÁá÷‹©˜Ïg¡›™À«ñruÞŽfµ Q)tÄ×ËË«&õÚf™ŽÝ-4[7ìzh{ûi-ÒÚ^-–b27rm¯Á½gý´;,‰þVДSÓÈ,â£âIE 5k' +HƒƒpƒjodÂ`醴œ ò°X@½J‰žÑO䕘 µ#”˜¢ì;Ë* ‹1 fCpÂdžÁgÝ"Î^–St(‡ÄXÎ-$vª%ªºßl½súuø‘á\ ¶Ö ¶mà±d-ÙÿÇ˲,œ÷…BQJÕ·¯Ã!"Ç|%¤–ç¡C-G[ˆ¤—®â;‹ ÕÔØ9Œ]‘H‰>L–0bƒáso©ì~;³ä÷R§*å_âÊi U—*1Ïw4)™D[ ¨zŽ^!”š KÃ,næe’Ñ.ù©R|xJŠí€k®Éâh ©ݯ‡ÁwŒ Ü‹¨¹{ ï V¤›^DÜ©m›YÓÃÒâÂ<†õÍêuèîÞ4WuáÃÊöè‡H¡îÁ{½Ç}lH$ø†YGïcÕwmå² ÄðqÀσ4š`8¹+ƒ4É9ÂuCã_ÈÖÞf<ÖB²6g0ÞZ‰²f-¹K!‹ toH^X‰%kgìIèBz<øS}(VjhÞÌ Ié2xۛцé¢ýW0ðï`,cÂX¡Ø éùEäb/@cQZ(;6œ`ñWæÄOkä89ˆAÖÖVÉÕÝ`/–ÀÆÆ3Ó“`ßÿÿìÝK“ÆûÈ>æœ † !v9S+Ë”R3B2-Éjj›N(¼è&¡‹.*¢;“Š0 Á"Ë?ÃÄQf¦‚šš›n4ºµ½ïÛ…!]E7=Á9‡sqž‡Ãólr*ö¸=„Àh¤°ÐÄa­œÑÑ)~JDé÷á;ëzºwÙ….î4ýç¨yù{@ gât|szÐE&SjºÌ—†g »5MKÁTl$éH4ûã’0•]'j—† «“ˆÌ©ghîüŒåU ZJ‹si|¾)öáºFÚy×ØÍ§·4w CƒL¾ZZ¥ öá-J®–“ÀVIB¨#Û`þŭטŸH[m«…êº^.•Ýäx¨“9çòútùÖÏyQŸ(áq/!" NÑgÉæu} ¶ÁFžvظRZÌJO ÕoF)(äSã£øiõ$…«ñzâ3ϱef›uŒ†~'‹ò óõr¿ª¬å˜rQ‰KL,*IÏ+B=ÞJË ð %F‚¬]4|el¨‡ÉÀX®å%ÐQ}—á€XÊŒçÙæaYT"‰?é¿$I(•Ê §bÑí kÝ85SVz='OebÎNEãu!SùclâÉûùM}É•J¼‚„6:…׃Ýíì=‘Áöé~,ã3«{%Jˆ¢€×'¢Õ'c6å3Ýô‚¾I;õ•ì8fÀœs€ÖúZN;•*K7p!ZÎÛø.“ô?Pço@¶FSƒ‚Ù½S…4oáãÄ û"Ã×$¯OcaU s»W˜³Í"—˱Í~Åçó²äZÄá˜ßx=ùÿÿìÏKTQÇ¿ßûf|ã¼ç{:铚ÚH™f¦¢–Q.ª…P+ÿ€V-‚ÚDm[´iÕJ©˜m’¤‚‚""iþ@gFg̱˜q¨™yóf^‹7CPPТU»Ã]îå.Üï‡û=?îÀÖ“ …"Ý’‰§w¯ãɪÌËz‘I¥ËJs9‰`Ú Â¾5M˜’£§tŒŸ¿…+S“Üš~ ‹&Þ> ðåj áX y+KÉ¥bO£.9MV¸ÑØäìHÓãmÄpŸ«?CÅṀX[ZáäÃ*kª é>ŽR0qg¯žåÆ»7ˆåê1Öá!Š@'òÁÃG£[_Çë¤I‰DleÓ³ÜÞZCuW¶[o3šÚ[P¯-rícÊÞntÖ×ÐwfsS ›þØ/Ï?Ы2²]?$‰B²R‡‘N6›yx¢q„£9F‚ xô €¤UÍž]ŲLÅ%ãÛN 9€²SB6CV(„Ppbxûk®/Ç!7õ`pŸ—`nFK‹ŸGZ[1¿»´Ò ¾ŸÁýW ˆF6èË& Ôµá\o?UEÆbÔÀÐØ0=Þér…$ ¬"ò¦mÝB!AQ«(„€âV k*%‡ª^ MqsÛ! ”â„eÁ% D¢› 9M“–«'û0¸ÇLØñKmø2õ‚n­ARHNH4ì> ¥ÞÜ‚‘I0¸£côT¼~Ì “ü„ËQjÏXÊ~ÅÖ.Â*9ïü¦Fÿã¿£±¥5X‘\ÆÍ·Ñ>v§ÖÚ¿¥¤…ÿÇûÄO4òù<ª4†a@v¹àtV P0¡ª ¯}ÿÿìœ]KSÇÏÙ|ÙLÛ0C£4¦iYޤ”È/|À&™Ù®ú}ƒ +©‹n#$ fDÚ‹j’b^è*7µ )ÅŒ2·ÜvvÎÙÙÎv~]¸@° 袛~à?<<üožß&S1¤ °Z2xûì6ž7I®tuQi3PuñgÃÝDº×¤'¤X qÔ´Òy­“–êÖCôÈ2ýƒsÔ·¹(4IÈz&9z¡/k1‘Üd€¡‘×T %FM‚ ˆˆ«©¢êÐQÎmÇ}¡ƒâ‚Åìì;‚qi=@(A0d¿ ¤ÞEE¾‰°¬¡ÊQI ÎYÀð}þéQôa¶ê<¹ÛËb$‰Ù,"Š"1)È´w¿†™…EÖ ¹ « >üóKdmËå[Ú,­‘"”›Ëœ±ñlÒxþãW/óÞ^C¥¾‡ÂhšFLUˆ'(ŠF<¼ÌÃÁ9êÏ´Rh !vj÷¦¸sëÞ‘^¦¦çÉÛYLÓI'Îã-t\ìÀÕÜL¦ ˆf~±žÿùKŒ´¥\þ8«±•¥] TçÇX]bJ×ÿ †Áv›d2IVV6kñx›=]O°q¯áÿÿìÛK“ÀŸ»©yI­ÔÖ&f³éÔ™Õ¤šéf9ï·yÃÀM“a¥ID=ôAAô74J‰@Ë,‚•õ’R"Òƒ72µ"ÑtÖ¶¯‡^*è%zéü‡s8ÎßùÁ6r»=È™馩ó:+‚›»7.áE¡ãþ­XÁwØ4h;%%GðW„Ss²ŠÍ ̹¨T‰4× ïVºÒRÔ**ª‹X|ù„©U) Ì¿p0½ eÕVBвH×*‰É¨%?^»áñY\ˆDÅ—píæYÔá14éÀVcÁO|x Y´Ûp»¥Ô·Õ!ý²JAc3›&?Óz%á”›ŠØÅ©¶Z&"I«§©ÒìuÊ£Ÿ¼ G‘ƒ–BRb#EcnÚè`B”‰XŒ)„Æ©Ë×ãè²Ó÷ô knŸAÄ££õÂEtÂ[zzÑZ;i8¬ÂËNŠ 2y”žöÓÇYéghly¨ŠòÊ<åå§Œ¥¾ÑÊd_$W’½GCšÑLª&}¥ k‚ÀÀÐí—I œa|ÙI B†Ÿà­ÆŒG³Y›åAï}žM;É)ÌA“°—Ât%‡_¦7SnˆfàùqòŒI¿µ A‚GY¤sW®ÒqÌ„(‚6ÝÌ>†ý&vǨ1Y²Q«9á‹“¤2ºÈL-çÉ ÿÈÄâW¶FíÀ%SÕjƒ×°w÷3ýÉ;nÿ÷°I¼¹ýy’sªH˜£ûö=¦–V=ÿÞï¢èåe~XZ`Ã¹ÎÆ†“¥ÅwÈd2ÞÏÏár}óv |ÿÿì1NÃ@Eÿ_;ˆ ¥p çÀMh¹ ˆ; šH4 "ª4 HYöS¬lã:º‘õ½šÑŒ¬õêëmžT¼ÖÆhxÇÇñDÓ§1ž_ÉVÒÑÊò"<;ñsªDZF£ÜÞ\q{kÓ) Â9YçEqºö|(VÇrHyÐáføœF@ðÍ©¯MÃÉjЗ½[ŒCÎJ=eEM¨—äÜø¢©nwµ8ÎÓƒK(Á*}É;ÖM)©¸¨ŸG®"g5€1™çnÊÉ;U¯-@ð¤ßòõ=½€§dæ4•uÉI"Œá}ù>'ÃÁ‘ŽÏ_ðvÝcï~C{»;¨G$ u…ß®ßôë?®Ž³¤bj6WKç*ôñ/ò 9ÄþÁ!“¤£f« k-­µŠ"ÿq³³– ôÏNq2óÿÿìÝAjÃ0ÐÿG2”Ò@ -t‘›t߃ô½\¯ÔMh4£ßÅHN ɪ‹nº°1#,cfž¶Rq8îw{ìŸ^&Àù}<ª¹ƒ´+»6ó4{¥ ¤ky.…{ ÀPê»@‚šè!Žº,›¸GȬŠnID8"ú*âJ]îu©ˆÖ„¡+¿¸¬IT̲v”AgY÷Bë-$"•)|ÔÂQ$×g^Ž÷V,­‹üÝ×Ýa%%áUE¢/³SDk›·R±YA)†1„gËMÓ‘§@ÕÌñ¬—õÐlææØMžùHá=%de¹ÃƒåÄÍFêÔªWÙ˜³|Ž·q(Ä#ÎrÉü³Þ—@‘B¸C´|/C<ž¹õ¾'P—ŠÝãAöõ‰Óó+>Þß´³¬—ôpIg½Rtýÿ.ž TóR@ŒâG’ Mœ÷¯òÎðRþ¤[;¡”ª\£8:ÃÆ=øÿÿì1Â0 E¿ ¬Ü¡bæþW`@3|Û ‰±à¥­ÔÆNXi¿¬¤âýŽÛcÏ:eºBï˜_1æÆÆµp…š¢è]—ó’" EPyêÆ‚ÖI3P'6å³Fz.c< Y ­×F›EÑûš÷‰„Nf’ëÏåñLô ›BïB*– <ûäðdg¡ Z-~Þš€1”ßX>3è÷¼—Ág¦+›Y¡IW²´¼­£rŸßðÇãÎJ›ÚIøètÞp¹nþ"ž¾M…èŶ¿|Y¼Xýûc9úÏ3Œ!’‹‰ÙF/ÿÿÂ{R1ò¬+êl,#ã_øL"’Ýl¨c¡.#¨žêìÿ¤ž¬;´ÙÈÅ$R9€©9."^ÐØÈñcÃNfddbdd‚oMá<Ê|ìÿH'‡#µö¡½Fÿÿ¢à¤bD«’‘‘ñ?ãà9­—®lÈÚ›‘éwš³‘NF$¶Aâ¶áɪ'CºÞެ’GˆAÿÿ"û¤â¿ÿÂÕýî‹dG<ýû÷~Rñ`pÏ({”M{ˆžTÌfƒaÊÿÿ¢è¤âÿÿÿ3˜›™3Þº}zžÝÀŸbJoö‡ŸîܽÏÀ ™™p÷Œ²GÙ”°‡ÚIÅþüad`„#B‡Ý êàlH ÿÿ¢è¤â¯ß¾1üùõAKS æ "»ÀÃ…}ýÆ­ÿjj*£'²‡{¨œT|ùÒ%”»€ÑÔ000@гÿÿÿÿ¢ÊIÅÿÿÿ±'ÿû÷oô¤âQö°aµ“Š‘Ë)d s;3000ügÿÿÜÁÄ Dyéÿÿ²³aÛÍö`/=Õ( #’ØÖdÜ¢T ä'}åRhWâàRqMáÖü$1L ¿ùÑ' Ò^ Ù|»ÂLgüê»± q8¡²«äßçâ=eãi8R÷í´—*ÁIOúÂ7üæ·gÕ€'ÕR“-¥`}aM éN¬ß¹]ë~œâîšãÛÛ`«žõ_©¸úNû§yθ5–äÞâi¥Ï…cÿÿÜÁà Cîÿ?¹x; ˆmR§õ²BR•ðxA*çP «âÙÞlWR1¡†žK°‡I6ù`^¯*ŒR°Q‘E0¿›Æú*I?¤Œ Ž Çc¯.ûãt® iOèÂÛgt×ËôEy Ÿ„«Œt ûãLõ¨æÈÏDåÖC¦°Ù†øž}!-Û°~£½çtõ/åò+mEö%ÙE¥Ö8(¿Ïcé.¿ÿkZ"1½T :Ž5‚£¨Ú]ÕÝvÂZäùCôá[¦”ÔxÿÿìœMK1†Ÿ¤¼©ÿÿßA[z”žôÒ‹z)m²ÛÏÝlÆÃ$ÛmEP¼ØËB’å%y“efž}RqŒØÞ1§ýsúg'!_¢IÅÆXb¨ðÎ1w›°bxqÉË2´¤Üºœ1Ü0›=3!¦H¦ž(»dEk--½[ºt_¼Ä&êžÔ÷"¼O'\Æúaß  ÿJkݪ§¾-­Ñ±]x–Xk(½§(<«ªv¿ YCç $“ Êù<ÒÈ·ð6͔ஆ­BØàœgS Æ(úu””,¢Èz²D;ò¯’u‘´ÔáN-4"mºÄ}´RÞHCé¾(ÙÖM®^¡Itic‰%iî¼öäp.:Tbí$SuǺôøÅc óé„ëÑX Q²n™dÍ?Ýø‡-_Ñ?“Š&§K…+VšøˆþDÙ|ƒûêI¦÷ÿÿÔ]MH”A~ž™o×ÔO±”%«C°'…uÅ‚Be+ŠÂ]:d–Q‰¤l›DD·BD¿F]¢K(ö‡!²‡¦X§lk ÂíǶò›éðÍ÷íÖ¹‚n/Ã;3ðÎðÎóÎÌó¾¹OZAHLzІŸ" aC¬‰A7U¶qóyvð I¨…—èn?ÂìÒJ°%~’›êQP€”Æv9jjŠøîù(nÌ¢¹±žV@PÐÚ {-¼I^ç¾cƒ83v‘%šBZð½24$@@13>Ægºk#a`IÅ*ÔÙæ“ªëEÿjëÂzEù#…ƒ[[‰ŸE׎(ž ]ä•û“(Z¶m= F¬·èï½€y25ñÕ»N£¯s£ûºýu]í ~/)Céêõ8Ñs€¡BŸäB ‰€[ “ÓÓ¸;ò ±Æ¨oC¥’^$qîê-ÎÍ/ <º½1>Dim3BÅò׫VŽ —[bŠ˜˜Oó^½ WG Ê\»¡i8 °D–}ñNLfl{=ކ° ÇqhYð%…Iîïhõ×T)3ñû\“MJ~“yBè î \⣩9,.u›örÏö*ÔÚ £ÃLË0ZšÖäõÕRÐsâ«æþ‡÷Ãÿ.燱ÞAôz:Éó—oâ³–(^^ÅîÄaT~Ç©þk|ÿ-€è¶ÝhkYÇ v ) þqKA3‡ðü6_ï'ÿÿìœ[HÓÆ¿ÿÖD6SÃ,73SÈ!N4oa‰ô0éAdK*,,Z,0,Sº‘>tÅKdÎUJêja¥f#E Í02Êdd›šÃ·¥SÿÓíô ‹Iï>õv¾§Ãó;œoMR1Ãf¦Æ1ÃriÉÜr•W.*ˆ3ÿ{%M×m»ÐÑ…‘쬾¡I¸y;UâQÛD û÷ ­¦ &Ÿ"ã“ÀçÌ#ÈŸO¢m°O  ´¢Ò³Ï Ìp‚K\fáà±ÔªïG”<ƒïž“æe;|%ÈÎÍ¢`k/JTZŒ ˆò óàí%€p£&¾éPÛc‡LFý_ÍH? ]ìgÈå9©óq Œ"Ä;—‰Ô½6àju%´¡@Ûè|]»[ÀŠK™'I¼;`†!vÖ ¯àd£;9§ÑÝ%ƒŽZY;_ˆþ0Ý/„Ÿ0ˆ}(8tì“(U¯ôp§7Àpz¥i€g‚•‡bi™eØÀ÷R€×"š¨ÀÇ‘mȈ(¹ážÃT_§‡ç¸}ä諆β o¢Ú7F(2’ð¤äuq È/€ÿÏÔ3‹ix_§&sˆEp8Ä0\-À¾ADšð0=ÔKš+ŽgHѨ­§-‚9T—©ñi|‚²•2|iù€LåÒ×k!LL†©½™úŒ£F…2m3U•–Ã0É…ìT¥H¶Â±´ .G?šk ·ˆP|ï2 Ø) Û01úú Œv6BûyšÆrÏBhûA¸œ¤ÑãZíS¢S¥Ñ»ŠLîYÆÅHî?¬ÆªmÅ%<®o (å8Kòت·QPZNZ˜“Æ-òÐz›ïr«y˜”Œ4üctG|©ýó6V@}ÕŽÁ6úÜ»¸r.¥T‚D€££sXF-L™u¸DŸ¦VmCÒŽ%#x}Ïfü l#**/0æÉÎøh2òK8•AÓƒ&óhësRX¢fo\“úªïü¤¡(âRs2ùôê6§KËyb˜F*(‘¸æ¨«¹ÊÀjiû’ðLêéè·b7kè¶ËØì¿„îÝst}& Z-†þv&f¼ø«È8q–â¬î5¡ F÷º%·ƒ–v!áñz=ÂZÀW§…Ëe—¨©{Ä{Ë,#Ããˆ"˜ôFä1»IÏ}[U)ëò3(É81ÒåEïËæn2c Ç‹ç'XsæÚãÂ`«W#qbÍ÷º9ãÿ³ÓµNbWgJ®Enº•ï§%Ȳña¬€"$ [/7a̾ ã¯8t Àµ‡Žìesû5¼À,â,éT#â`âóö0Ë}&!R"H®„ð%§±¸¬™NÈs£llô`*0‡ùoËùUq ¸p Ò,úe=»½H>ÐÀÚè*BE{N)®d»øv¸g/ÖÑVGíü;´õqÛwž²pï.¹ŽG|(cÃöZìJìãÁÓ÷±jã:¸]azÚGPX³s“£ô´x0øÿ”+åXß;7n‘ÈO1@BAH`˜ZÓRlÝQ‚5+’‰éaèÍVH’D‹ÙµF ÑÌT³ X t& %I‚Õj˜šî„+= ú ‡Æ&àŸíDÛ¨ÄT{â$ ò‹Ÿ«FÁäç¡RCigPRk!Ë ¨ Ñ–´ &½y;Ýì¼ô w[X]TF»–‡³œúãçá/ÆØh ˆ:×ùç$óR öUãCÓM^o{ƒOJd½>–ñ×׉_0öçåë·Šcó~ÿÿÔKHÔqÇÿ¿]•M—Õr}P„!šJjöPI ­4+4¥ :A×@±CA`×ì!A"D¨IDšµm !ZëjôS¡mÝÿºï÷ÿÓaWOv‹¢/ÌanÃ0 Ã|&N*HqF ¤¦©½“ž›,Œ GP+¬«ø°s”N§ EZ¥(8Wœ„#a¶e@4Äíñ`ÿ)Su¶ƒæt3;û} 5—è6Sst?Q‘Æ‘²LúïõóÞ£ãP«´•9¦ç˜x6ŠK;2p»ÜØä®^#ËÒM×À$•Àåt¯ô—DìxBP¾Úm)X—Ãa$IAIʤõŒ‚l=å ÑïÛ0CAsC1H ’P!„@ ˆ&è¨,+%[—ÄÌ‹f¼›i8P€×! ±ÛdìÖeªÎ]¢yÓjhŒ(==ndๅF‹V»hÐM8½”WŽq»½ ÓG™´ÂF²ïÒ5­áD‰)'—ù×F¾G ©ÜæþÀªŠRùjÆâɦ±º¿m‰”BSQ×»{ɯ>Nbh‘;·úðJ•$Dð¥åçç’«×aýü–Qã ¯¦Ì$&ëÛ>ñèÍM׆LFL¦—Tj\²¯Ï¨¨­ÚE^I5†S§1œlAŸ(ÖÊ­®±ó`O&¦úÇ£3D$Ùá!5YÍìäïæ@F5Ú).?˜¥¾nñµ5Bü¥òøµ.©XïÇêô ÀîÃ-ÔogçÞ}äål„Ø‹¿éZûÅô ÿÿÔÛK“ÆŸ›Íé<´æXÛÄÃTr:ϦÍÍ3åÜÔ…–†¢e"dv€èÚÿ ,º”¶$ $S(¤LíÂÃE†a‡ò€ºïëb-¤«è¢è÷Ox/Þ÷yø=3’$,“˜ºKÏÂ*{+¤•×£b›] „®l@¿’ŠQ1˜ôÜC$„²¶Vjêª1h 8OV©Œ8]ĵØËt”Ú“9Ðëeiut½ß×]¬îË8(*- /ómy–g/&Ð6á.IEwš©;ýLëÒ©«²aTn™¨'/Áw`Šu*n‡ŸÎûû´á?•@ ¹fηcηSfÍæóžcˆÀ̇IîÍaʯå¼Ã‚$Ilo)9Ûu‰ŒH ÉÇÏN™JOum…Ÿ -T72¹p‹ÁÉxÎ47`8¬ÁY€6ÞL±,…r[Á½^–ÖvQëH€&RÁèè0o_Ê)i¹@^b,ë¶b œ'HQ?âÕâ'dÉ2²ÒÉ^É#Z.!б\íî&ØRˆ%*š7³P‹"úªŽÍÞæÉ›Z:Z‘ `*/ÄÔ7‡5WÃÖÇÅP‚€ßÄŽÄ+‰v÷æØ_4 Ä&–7MahK¤ä8¤·sgæÒ@¦¿×œÔÿ“ñåÕ5+• C%:Ö4$Â0´zŒJRyI1dŠf "–¸ëóc ð%i9“CXêr–쪭¥oÎO°»w,‹k;¬U‡¡ PAj|Z¸CjÞnûûÛh•–ds¥ÆnÔFœ•!ç±[Îä‘¢=^˜ûTêôºlz …—çõXÿICûáË'9!úw.O ©oÕY^XÇò\YbMª?¢ìþ÷ø»¤bw¤õö‹ô–[ø7ò¿¦ÓkI±XbalQI½n$‘ËåÑlÜâìþUÞÿÿì±J1†ÿÉäÅÊJ´Ä´½B K|±óñÏÛ™ù-f6wX(ØY, d³²™,IþýfœÆB@÷ÀáÉ9®Ï.éöÕj5F^UÞ9µÙŠ…›Q÷h_€E ­ JãU²*¨6ØdÕüÝ*œæDïŠÞAºÃËWÊR4ÅI#N¿[äá&€e†7’ømø÷öF<,­±Ë.-Ù`”¦èšBßpC” V8óö„³NZcE7Ì<_vêEfÄ o÷áü|ωƒxœ<ÝŸÁªûìüÝ¿¨ï-Ù©Ò²ä*xÈ3äýĈ‡~lè!³ÁxÖaÒ¿E]o¯•Öç—WÎ@ÛéyÐ1ÁÒ‡¹\ŽIÇÊYüa6úÙEq߯Cèd®ïÉtåfÙay6èKNÙA­–,£]¨ýáp ÷ÎÓé™·°mJÔîm±èÿò‡òR1¶¼ïwg)϶ó1·i‡Åøÿÿì]A €0 k°ýÿ‡µñm¨à‡àaƒ¶„°švŠÉ<½êTü8nB û"xïÆðaÌâô«€šNŠÝ·ªzužŠÊÔvfËyÙ!ÇFøLÌKj‡‡qçä<:ÎßÇâŒ$<ÂBÛI‹sw#‰ÿÿ=©˜R6ã=©˜™™Ú"Q/ÒéÁƒÅ/ج°QêAâžÁÌZ'CN_züèáÿŸ?2üüù“‘eO4++;Ç÷™ÿÿ=©˜BöèIÅ£ìaÅ"'32@J>11q†ß?¿1|ÿú‰6Ì…¬çû¯ RÒ _yXÿÿ=©˜BöèIÅ£ìáÄ*'3220üýû—……™ÑÂÜ6¶ÜÕEÿîì:Çÿÿ=©˜BöèIÅ£ìáÈ*'Ÿ9{žáË—/ÿYYYa'èüÿÿÑ+eddd€6ßÿÿ=©˜ ÝØÑ“ŠGÙÃ…=TN*fddd€]†Í¹˜E2ÍÈ™ÿÿÄ\Ñ€ äúÿoÖ8”šµfot"ÇZSwŸ)7\ê`u88жø7Š»ý§r¶³˜Øíq¬âš³½b|È’0n8 …ƒÇšŒøRþ’©CÛp¯×b–R€ãXâ7®1_KU¾í3³ÞKúä)_aÞ‰åb¥V•§½íò¶ï«üßæ¼¿Ÿ…8îêÔoy ÷)ë<¹ã#¤xÿÿÌ]˃0dóÿ¿,ÛÃÁš8õÐi½È$Ê`À<†ÍfÁTlf°Ã0ÀVÓ¦‘g¦âfóÖËßål°;ÆÝ«Î)“ÿ Ìv–¬ÇŠÍõ(¨sº  %€b'FË(¯ˆ'™râÌÝ/嵂!Ê;-Í) oê/–iw:´-Èý^ØG£pY=ãŸíf;;[Lîâä©¿€Š#{éU=ßXê91cp‰V3ýÀ—ýÔñØæ_Èä9†'Ì!.g*Ó¿VîÛç×NÛô X,cózÿÿÌœ=OÃ0†ŸK%$PÿÿAˆ ºUtbëÀF%¦6i>šâ/†³ã& ÂR¤XqŸïµãÈçgL*VááC®®™Ïo±“^SRq4^;Ê@'tGÁ9é6®``·ýš¸›:ÛøM¶h›šö¤»QÆmr®©¬ïì°êþò¼R2vXcFÚˤe­ÜÝ£¶üJUÿ'I/ÌŠ‰›êøÀ¾¬èMþåýëôý;óõÿÿÌOHTAǿߙ¤Ù»Û?+"’]µö &™Bॲ‰[‡,²KàÅET¨ôG6ÁÃ^–ò–Ô®'/”\èS«C™-½7Óáí¾}ϬnÑm.3ïÍïw˜ùÎü¾Ÿñ"ž´‚V‚Uø:ûs†#UfÂ#Á–’Š3Ÿ^áÖÝÛ:/À‡<ù6ûŽg jä«äùñÍ$†’ï<Ä]ÓÔ”’Hĺ±6ÒĺêR$bÝ(Þ”*7»èµ €á|ËßpÓ}½$ÞìjìùMéPyí*yKóŸ·ý´-ž´ød  7⣸z€5[0?Ï ÷z/_¾ÿ†P}+Î5ïåð½›x<>AÁõQDKÐßÕÃç³à+¯AG{ ƒ+J‰t2ÎË})¬Û@äðYžn¬À¶Š0ŒÕ~›Ò¬`Ø–“í¡JÈ‚"Rˆ%óE–лLüµ¢ei)NÆy¥/…Ò­e áã±¶3ØS€cÙ( b×î0 …ìw<cw<Ôº]Õ¡¿ct°Ÿ‰‘)ü€ÚS\»}ÏúCh*Ø‚xõ?Øo©d[W)†¤ë"yªúg4ttc’>›ëŒ:x6a÷¯ÇéRŽÅªÂBŒóÝeUÕ1x^aôç&æ§ë d9ÈÃ÷}úŹL{ä…ÛéÐjØl;×gFìß®åFs1néã1+ÕÈ9Ë£!Ù‘—]ÆÇ)%ÈÝ´!,/\‹ë_"-î#€ãE ë¢iî r²ª±òëÙÒt%ZÛ_1ceFüu ¶›=Ô„ L˜™„éQýÜ[jÁ=—‹r¿å—SŠÊÑéÁ¤ù9˜üú~©½Â‰ÉF¬5~%‡(„€ËÙ‹TS×çàñy vì:Ê)[M8±«O_«› µªjÉIû`2LCÓáÝtN5`^´;ËÑ2+ò͈RQZœ$zŸÀz¬ël8M ôöù D€mgkPõ{ÂcY´>O®ý»ÐrA’55æ½ÃòêüÝׇE‰Óo?¢ ÷ ‰7°À0û=wlçÞ=à ×B—0ƒöõè|Ùƒ1‰™ÌO×rB)Ñå¶UX1î•ÛOÖC«š„Z«‘³`.XŠGçòHým|š¸«³¾bè ¶Š=¸ÐáäÂùˆA7< %G._mF×@(3òŠ#¡¡¦’GÛ‘0o &ôÒûv.ÿÿ½‡û?‡sÏ2V’$<¼Ü1æå`:ƒÙê@:::ù-¨ýµz« ЏõQ" BçkHI˜ÇÜÞµZÑÌL‹MdÁD™Ó™ç ^žÄZµÈÉ£×pzù`«Ìÿã×âž<ŠJüÌÅãûÈÈH#W_R¥Â+ ”¤m)ø´”S\þšúÚJÚ£ÐD ¡¤@OÝ“Rô *’wognèpÚ^•qM÷†UÚ=¬˜3¡ÛFÖ™l‚–$²V-pêÄuÚښљ¿²qsX,ø÷ÇS„Ú¢B‹Ÿ‡•¤k7R!6f(²äD–e<û+¸y6 mB:ƒÕÀ³òÇØ±=¿O¥µ SÙ=šew,¯LX>Ù¹{á m!‹Ùºn Ù'Îñþ£à Âc‰TÃgt$©)›h.½…¡ÎBé:¨ ¥’oÝ8ߊ\É(åG¬¶·^®‰gÑ:}¼û¢/)¦SúDÁƒ*|½¿rédA˒Є‰˼D®Hà’u¢Ç¢"FpxÃ:Rž¦E至©‚¬Ü§ÄïMGíVÃÅ|{3u dù &SþSg½íš…øv·ÒHq›ãhÔåÑd·qù\6¿ñèh·PTí@“ËøþoÉ«î"n˦_œöùÙ/ì®øÌ‘])¸j$<:ûKev?’“WðŘ˕G­$¤n¥ÃxƒÛOÞc.¸ŒÑ¡ŒCÌ7ŒúõM-ÔšÊiŠ&vÖ`Š ò¡æ7+ìLË$fÖ$&«‰ZÃŽõKäšãò_IÙžæ:Q²q§°ŠÕÛ÷3m¤¢(0izVs)»µÉä›Zé{ooÌ?Ûa/½\e‡ÿÿÌML\e†Ÿ÷rïÌpgª`3 ¦,´T:𑡤qAM4šhMëÂ…1nŒ‰k& ©11F’.ÄPêO0!mJý¡Õ¨1]4-0-J-¥ Tù˜aî¸5Ѹ3.OΗos¾Íóžï¼gcÃe3?zV'¯&yéðú}*˲pRKd}zîÅØ }e½Sã8ddÈY¾Ëé] ͧ5ûû +ivíŽho¸Ïbœ«ñqÍ|ÙËpb‰m¡R¹\&WO³¥rõ8MÊYß+–c³§)¢½u[Y¾}SkºñÃyz. 1ñó¤JVgð+h‹îP¥ 2×F©n~^/N|À±£T6=«ƒí-¼qhš“]òooç•§+Šë×3½ ¯,QUV®Äš›¦H=e¡jX¬&×ÜrÈ üÆn„.·¿ß+IxI1Ÿ±”cÀjr™¹¸>ð!Gôæ;op¡Z=÷òaÞ÷cFnÍjKø>RiCu5QŸ‹sséì¶…§0¬ŽÖ0}Ÿô㻳ª'^káfÏ÷äZI]ŽOðã/ýt˜*+Íþ›¬oˆ(.³¶ÈWÇõíøc“·I¦—”QþºfoÈöù±,œY-®87;«(À3ãÁ4,ÕìnaÛœ:Ñ'ªbDJÝt]S‘¿—øÊá‡VŽ LË ³1£*/O½ú¶öý6Á7ñÞ‘n½~àAü¥;¨ÝZ¤û[¢Ü&YáW ?€áÊ%Ïo+Ç4ñåÉóÚšMå°«v;e¡•z˜ÿcšk×'•w¦—‘õ:.§\ìkŽRðê¦áåñGêî©i ·È€L/ 6ª5ÚHMy1çF}êh«%è³¹49­±øŸ÷ô2Gšó\¾” öd«Šƒ…Øn·n †hÖ«Ì1NMKªjOŒŠ t×v ˆ|Ÿ-R)²ÿ®þó{ÞÄØt:«?ÿtö3¿8Ê %¹ðõ ªGŸ¡mÿA¢ûÑÔwÝé;EÇÎC2œ2ÍÿcÿþÌ_1v3ý'ÿÿ¼Ùk Ç¿3“ 6›DÛÚÚVI=VLƒZ‹ÒÖª¥Êf+Uð¾ÀñE<`a º¢(ˆ/àƒ  RzWp»^%F-j=±µé¤™IâÌ|}(Bña–Å¿áûòùþ>?øÚ†`+í²ˆîWoðòy˜Ç¾Åý:‘;/È5•^é Qø)¯$išäœDÞ?æ¥P[w±·ãÓ†U‰B³H‡\ˆ5~•AÎ*`sO„ÖÓÆê ¿cJÞclÙ¥³yûr¸lAâ@*‹ Sg (a{î)X™~œo¹AOÓ&8"/ ¦Òü%©"žÔ¡‹IjºŽXJ…Û7Ám8Úz Kç§îžŠMNìÚ‰¦XTWôô «ŠØÜ^H½7Qâ -¨ýqßmÔnþwì ŠÄÇ·] ?yŠ×]ø= 9»r,v_lAi¼1~ó¡íðn>ŸûvÃøðŽQ9‹®Ï)ä¹MвvI@ ‚m@Ãð¢¯\‹öÕ«p§{.í–ŽÞ~³k~壆DaK¡Äöž>8 êjý”Ì 4ÎŒ™Ç|{ }’ŽÔœ¾ÆšæíŒ>º‹DÚ|˜™$žvv04ΉÐùC&-æ„_>G!i7¿"Þ÷i!—A¯Žúæ}h>t…vÉ…Úê HUAÎ*as•!ú&Ä«÷z±nõ¢Áá8#Š–s·á)ŸL§Ë šÄ¨Ò±´ºOâìír|¼z…®º?àÍùg.ßaëWáWŸ°ÊYÍž®„_Î…lT£*H Š¥Í9 õµ~h¡9Þ¢¢Ä@FVgTQÈtÐÀ¦RLœ6åã‹IËBZ@ÜTI“}>Ìœn²aI#¤„ϸ2ørqàÄqä5Îá˜R´l𮓠ñ¤†Œà§ˆŽõe8³ç/— Ø‘#0|˜“½]mxð¢ ~¯‡2ÎÍÿUcEA"IäOkÀ¶õùTú^CM¦a‡Åg¯!f¸¾b‘wÙwõÓŒ3þCýÿÿÔËOSyÇ?·;z±”–ÑJhÍ©iÁ(­"ÁÆz[«Å"8hA¢‰`51lŒÿ[ƨ½øÚ覊1.|NpÔãÌ$cfÆŒã#)jÛŸ PØéÊÄïö,ÎIÎÙœG>gjšªÓ1–LRì‰p¸*BâÅÄõn…ôøÝ„nRÓ‘$ròdÞ%ÿgþb[<×8sñ!ÁöŠóç¢6‘%`†™­±Ú í†Äªð<ªíNVÖÛñ­\8IÜMá¶Bàõ˜9Ç@:fy½K¡×ö:u³k«—(¼·f!ÛŒäPJP-$+5Êoƒçyk°±÷@'F ß»Ìàˆž¶žýØŒFwv¢õž™Š¡ÄMhm ¡660OžÄ*ñuBB¯ÏðäÞMä"…±¿þ`øe Õk:ˆŽ!~û9m±nŠeÁC}!Mfþùu€OÓª:ùýv?Ï’|í1¼ÊlÒ©:½DÙò:òRy¤Óz¶uµ‘M°L £³æe²²cw‰ëÐež@ˆÜ9J+ºxuì(šv‹…5œJሊL¥Ä¢^´Ó—p†cT•?\5µ Çéÿå2Eå›9ØPË£ÿ²¾14A™– ˆ4@dp©MôŒ–á_6! ÚÕE_o§oHÔm؆mü>ÿéÊ'¶¹ôÙ³0é œí#Ûlg÷¾rr³ÙÓ½•“â˜Ê›i[cgV&ߟÇyüf.ÑV/ ” BU×¹z÷_%aõ5 Œ„°äþHsG'½Ç¦ÕR‰‹ Z€Åî&¤ŽOËiŸ®¼þr¾áóÏÚE•µXD>ùKC´¾—8NC˜ËØ¢T°hý.ZR'¹2§¾¹·§ŽfCŒl3b”œøW¼Å訤»å Úàϼ®^G4XK¨rˆk7 ”Ú™!2ˆï¨‘•&wS&«ƒ@ļÃáô³B±1àÊ¿±–©ìúÉ"ƒô ö %¾èoÊþÿÿÄ¿J1Æ¿Én@´½N<} ;Ë}ŸÀÒ'°ð5_Bì®P›kADÄ;ñ’Ï"Ù˜Íþ¹kÄ­fÙ™Ì$[d&¿xRñ§Å7·vð5ŸIžkÂ~ãýc&ëý>a *E4.ãÉéô/ÏORœrtyŽs,gK*Z¤i)}·‹¸k軫Ê<8Þµ—ÙØî¾®€¢¯H»k¼ŸÀ>öXøôüŠ÷—7(“ÓcIØ´à+ú®“,š±lºì™¸î¥U¡»CÍÀ ®Ÿ•e‰Í^(µ>DÑkä  UV¿‡¯mˆe÷ûiùا3;u5š”æ-2©66 x]C€£D©EZ6[ý((rM<B0Û'¤Ï è€éÅ?éó@÷UÙôc`¢Vû+õ±ÉØTd­™ˆ5÷@QF:f „¾rŽéíÝ#ÑYŒPID$" Ÿ1nJÐëKËF3+ʱO6Å*BŸC‡í#ƒà³8žIÎǘ^¯«uïËÏøh¯Ûˆ@DRTÞÓÚÓ=Wm@m¿ÂÌ6•ú¯K¼ßŽW»O‰`Ø`½ªÊð‰f_Ò+uþ;ñƒ2öÿÿÔ]»Â0 ¼³#1óOlHüÿ¿Z?j7 !D§vl_œÔJ“ËØ¥7×ñZ`]±,ë¡Ý½ý´û¸§3.·+Û :‚+Íåfö]3k _²û“Ž1 ÔX|ÜlðúÀ¸]ÞuÕ‘Áo}øê‚ž-ý÷¯¨‚¥Í£ €—Œ¯æge<æ`ɸ¤Äø¤ÍÒ~=ë ªŒf~À‡Êú;ëö÷ ÙÆBÇ3–8¬L³¢JDAö’“QÙòNt4|jŒl}dòs?F_˜œ+sò!¯"öÄ™DìUì8ÿ¹Û蹇I·úï#ë/Ÿ)—D1 >?òêC)Ãþ ÿÿÂ8©øß¿™PH{çÞXØIÅŒÐ&Üïß¿˜!ÍÀ"c(5Øÿ‘Ùÿ±«ecgÃã ÂAʵï¶Qö(›6)³±ÿÿ¢ÚIÅ,.B ã 8Ñ”lÆ!zRñ({”…=dN*†æ;(øÏÀ¯Ìqvcÿÿ=©˜BöèIÅ£ìaÅ*'322 qÀòÿÿ=©˜BöèIÅ£ìáÄZ'ÿcøóç####l>K7–¶7ÿÿ=©˜BöèIÅ£ìáÈ*'Ÿ=wáÿÈzè*‡ÿÿÿcïÆÿÿ=©˜ ÝØÑ“ŠGÙÃ…=ÔN*FÃ`³±ÿÿÜ\Ñ € Üõÿ߬=lçÔ¦)AO^5·Û1(îœS1tT¬JC‰f‰Qò fÕÆT¯câc³ràÞ þ3¨µ‹¹Tú*ç”D®¹{pß—SÍšXvá>g„OiÂÞ#M¼î{/¡2Ù+{®ËQNEþ•À’Íן°åòc°é™›ÞÿŠ'/ëè<ÚêoÿÿÌœKƒ0 DŸéý¯ÜéÂvâU@jW±"Æ8fT*6@Nþ”Ôˆ‘¥x–Z6*G ¶)ùM*7›édT|}±q¡øZ&Î[°'4~óÌMÛʶ9þÖŸä«+õ`›©siZ….üueæøøu ÜÙ3l+¾2&ÐÕ‰3þ e ³›ŒõÄÎ2ÕU—x+¹”ÒÙœF v`®ÎžÊ™·ãµ¡ä¶_IûNÊÊ_ád’ÃvrŒýÿÿÜ=OÄ0 †;ÜÁâc`a<‰FþÿÊÂÀÄÂ?`]ÅA›Ä v“!1"‘)RšÆJì´öëž+B-=8äììÁwÛ·±MØ_«#7¦7óò2°>=g©J­jkÌY 9W4)Owì”å«ûNßëœ÷ºçž÷ýLÄ“,PÎ9î/)0³…§wéyEäΊÃÇGÈ6iTR±¹÷e›428«çwˆ˜jôz‘ëtὤ,ߨhé”8ÚZ¥]#9iТ”*ÂN‹…€® pÎ(¸³„Éå+´{k(¸½ˆÙGt´ÔÚ±bíÝÉ›ðT—À4•މ/`ù=-d£×\!$Ë=‘œÀ2Æp¹¿FÃS8 žÅÄ“Ë]ýöîª ÊL¶LèdÓ !_~FœÏVPZÚ…®¹EªÈt`¬ÇÿA¦û¡}#?«úÙµ}¥ÿžü‰o†åD!˜®¹F(9ìä¥ Jgâ ó¾!ZÚ»F(Dp{¨¾ÿ54Õ™ìÔeôf =¤‡©Ë½ƒ HJŠ…–ꢎÎf¤(y×_Ïá›0cšÛH®ßh|ÔâúF$jß)Ö!Yà¶·jkÒöys¼Nm-Ýp–yÑ×ZIB"Ÿÿ¼5SòC‹ð4öÿÿÌ}LÌqÇßߋ⊩“‡¨6´y8µažò•<Œšy˜$cy¸ÈÓ0ñ…†8tãÂE±É° ­$y˜U³˜Ãç)¹+9ÎUwÝïÞþ8nÌæ³ñßçïöùüñÝgŸ×>û¾¾nÅ“$‘½=Q[QŒÚ8cÊHÈœ$§ iÄOmôÛ°ëÆ‡…󠘚ÎÔñh|ùmrÁfCÔ^‹ ®Ý²B_†Â¢Ëôê5=¼äèÒµE›Ç÷dâ®á Ãg&!!& †›EÔž»›o(T+–°ŸÂ•ËÖbe³Ýµ ñóiOóç8¥&è²vðv½¬ËÀù+> …Ý/ÞèyæV-ž›Í˜3˜¥'òa´Ùᯜ@ÿÆÜ6vFêÖµ 0U#ûP>Þˆ@®Û²Ô—¢¨¸‚&‹ cSݳšÜ˜[­n›±ŒßL¼’½•Ø›ÁcYè>i9¦  nW:®éváJ¯Ûd[YtŒçÊ xT,Tñ1ô¢„µU°›ç;”UêÔ‹wj |@Hv–äíÄùj#Âç¯fÂrw«Ñ`5ÓÖ-é)³áÙð€{s´xa‘c–j£ú¹ÛsP×âÉ!Q ;>Büj~nv8>=åžL5 VoÌNÞÈÈ>-8z¢IËâYR¨ƒø4ôh¸KõÉ+°ù)¡JYÎNM8{Tƒú÷—„øèP§äzÏå” k׎O/ÇUc²¤ÑÛöÏ xüÎN<Úù§*1.RÉ Ú|¿|FïÈ¥œî£‡f6jêM\™<ÕÚÃx%)ì×è:‹çFðeùi”˜ûaiÜ0 !`2Y0+e'‡¹.«½‰´”=¬Ã I*Nö¹ÍþlT½­ç¦´5°—k¡¾Tžañp9ΨsX\óÉ›30FñGöið¸Q†Ø%«­ìîjx?Ì6ÿ ~þ­ØMbBF’è†Uk’xéžëïñýÐ?¬€±_ÿÿÌœKH”Q†g²)'/ii*™dIÒ¢ ÑBC*/†E¢‰‘6c†WFf.JEµÌ…)Q)6“¡Ò¤‚‘fEhM^SH³t¼×q.‹´6A›¨wàƒïp8ßûžóH~]gµZ±—ɘŸedF‚ŸŸ;˜Í¢±!üŽT,jijˆ!³7§B7c2-âæë‡§û:ì×û’pAE¨×ê‡-Œ~ï¡uÜ´”6®6b¿VF{Ý>Ê)º¤à¦‚½Çjp ‰#Oy/ÇŸårï›Ô\).¦ðF3H‘H9’˜NJ„šr 㓃huIÄĆuÕéc8 ëxÚmB™®àuåmÖÌ}yKYÍoèÄÖYtºOÌŒ÷ó¼{ Ef*ŸŸT3í¹‹Ã‡£ÈÏ9ÇŽUcÔ4wŸL\ì^×?fÈh¤QÛ€ÅÅMÄæŽr;4¥W)¼˜OQy º®vÔÏ?Ÿ]@lˆ?; ¢ WÉ–Õà±;U–’ÁgÕ|Zt&,:’ŒÜ<‚½×¢¹yƒÿq²Ïì¥âÚ-¾.ˆnËÿ1Äý]-kñÞäj³—lÖÏ?®MÔŸua9ýÿÿäœKHTQÇÿÿ{¹w®×™ÑfÄ›q¬ì¡ÍX#š2¦¹Ð eDТ‡´H ¢E]ØÚˆÒ\HÔ6¢*Ér‘:ùã»q¹s綘ÉjÝ¢åùÎ9«oqþ¿Îoc‘ˆEW±³¢§\óûôwúü~é8")ˆÃøõ <•E³A‹r€Í$éx9õ­=o8;3»oš´•ÇŽäBÍ´€‚‰²ÇÀÄ‚‡kè,p"à•[æ…k—ÑÞѶÏïyòÜø ¬ I-a`Û®2456r죄Þy–æFùø~;fâ1ÄÖò¹’Üúº m™6›¡Ú°ª ç!£æ`n×núJüú=*æ~`z¤]Ï97;»oºœÏ†êBxözá°|år‚C•›Í·¤Lc=2 „ÔÜRE !e:QWYÊ„†œñI„Æ×ø}0eÁ]4ì<°%ùëõ¡žˆCu•¡4'ÄÖ«¯ÑÖ} ž¼¢¾º´Éüðïó1PT„/®”üœˆû¸€½¦‹!Žª®~ ”E&ýúú;0èô¸IhƒÕAzgwŠÁäçâj'–Äxª:ÿ<{ŠèH"Ks ØÚú9h‰ãÛÛg  SÖNs…€ÉáAÊT3ìó1ã_áû‡e–?m¦Èv²BTŽÄų"O¦®3ùp•$³‘°Ølzº[Yº{“ù-t5c²KNßbáÓ§=¤$™q‹{v5H¤š29Ù`göÖ4k#ÍMZd•Š˜}%Xö8*öÞb°<Èjsým•!ßW&îóY¥áÕÜ8¾±§´÷õ"˜Ì´Ô—2;>Åzd6=^;c£ä6taMÝCSK-kswxññ'ÎÎ^2~ø¼ÂüÊûmæ ±JP¦Zý‚Å—_R#˜™ó#úa)ÅÚÿÿÿÜœÁJ1†ÿénBÁ‹]ðT¡OÑwX_Á›"xòÚçè©o#J)¥õR3¿‡lÒd³= Þ&aHf&äÌÏHÅ·íŒg—x_?ÊójCsÚ`:iÄt½É žàHŻݯ/OrݶTk!£J$H•ünè˜Dó)}·Hô¥R«,[§d+áu¹Ïh·êd>®*ŽT<©ëŒ‚Û§+gyìd&‘ŠµÊª®P–/å$¯x¯$GºZ :îw±õëS$9Åç‡ìi86^ÑC%FUŸ®\¦çgDÿ9Ϋ%¹Çb~/Ë·+>ÜÝàDUü‡z‰Dä8´~süì»±Ý]ˆïŰcR16ÍyVvÔë¿¢.ûáoIÅ_ÿÿÌÝ1NÄ0Ð?ãP¬–‚ ÑpZ:.Á=8ý¢Ì̧øqäl6 ‚ÎR”Äq”D¶¿_V©&9öôð„×ÇÖü…Ëå²ùˆ 'ë½7 Ö’"¿ADÄò7;™(uxiÒgQ¤ôÝ.Ä.™§Qô͘™Ãq”«ÂF Ë¡Fq‡âlkdDj·`‚ĺ¶nWO3¤ò_‡š1¹Â7uå[’mWpû2³ñZÜì2°3Ðàð*?K‹EÊ%çoN‡~kg{\·«}ÍPˆTh¼M Ì”¾Ûï¸Ê½fŽéîŒ{tÖÜõºu€•˜# TUL.–_îíuâ¦6ݵ3*I¶Iã‚æVÄéù Ÿï<(l…ç®.÷v®A«¯±MM¼AoF%#kÉ•]ÉÏ­gÿÇÌéo”ûUßT©T «7ÿsu?˜ýÿÿäœ;1† ðV6Ž÷?ˆ…ãk-€òXí,Ü*E~H2›ó5R±ÙyÞ¯¸ Ã&nÑKõ¾ÿÿÂ8©R9Bâÿÿÿpî…TŒRt¢úÒa€§!øÌ#NõÅÄîDsdö`p,óc²idïÿÿÐAbȶFFÄ1õÿÉ2%®éàþQ6uÙ¤ÌÆÿÿ¢ÚIÅÐKrajF ›qô¤âc³° u1{†{8ŸT ÿÿ=©˜BöèIÅ£ìaÅÆ'ÿÿ=©˜BöèIÅ£ìáÄÊ'3À‹dTÛ ÿÿ=©˜BöèIÅ£ìáÈ*'Ÿ9{žáß¿ÿÙ˜˜þ1000béÆþÿéyÿÿ=©˜ ÝØÑ“ŠGÙÃ…=´N*þËÀÌÌÌÀÆÆÆðãÇw¸;ÿÿG¨gdddàædgøÏÀÀÿÿÜ1ƒ0 Eÿ¯ÂÆÂÐûß&çiÕ‘6é`;Æ¡*  J0˜Ï³‡XAæ°NÅÆXêQ²êô‹-C¬}ƒŸR ­¿Ürö'?¿°©r]¿q jymv*þÎ$2×û†Õ—ñMˆzêâØû±GoÇÅçÚK¦#xöù¶G§¶‚ƒÔ¢d'ö.úGû ?ò”’M¾õãnVÿb“h1u>q§›€ç›H°J¹xºNÓ)%æœq»?0 ‰¨@…oLÌó×iÄ…ßÿÿÌ=ƒ0 …ŸC¶r¶rÙzÖŽ]; ‘×Á?!j¡Bm¦ $$Ží ÙþhIÅÑ Ë<)!ÉZ”¶% –Í[Ñ›A¬˜Œ{I˜ÓW ,§.¥*ᨠJÙšçýÊ2”&BD:ÑdTü©Fl‘nŸÇ¯.žX2ž¡j(€JßuùG."@%ÉÉ&Z_•ꯟ¯B ùZž ùø:]±ìKãm¬û1Ô¶J3ö½äœi²Y¬¿%*§ÔÑËÿ°øÓÀèÛñ}²=_‘J~6È)ÅÊŠä\¤ Vã+ â§ûÞætÑ[aröÎb'1†ó¿?<>ÿV‡‘T檺£Éq4ww">r‰c&ºÏGͺ5\b§üäÚÉj±nIX+õOØRC)2Ésá#x=K.+eøT^<…¥\ô#ÏÓáí?]а/Ö&ïô"úì-„¬l¡u÷FL=‰°çúÌp°³‹›VÌ ãp+>-¯åÞ.ä+ Zö™j%àdì&.Åð#a²¢©í;k በ¯ hmñ~ä FŸ¾Âûß\U†mûŽbO}•kM³¹ö5ÃΪZ 3C¹yйÐ^e¤â4Ÿ `pì RÚb°²'ZQ ù‡¹röÕBÍx~XêÔ3:|þµ[°²PÒÒ€á•ö3´½Õ>…—oó£,GÓÖ*×Ú錭³|þ~.VÙÆZÿÝD”}×îa6©P·÷$›7ûpáôy|þi¾BÇÂØPVD;|qž5þVœ')%Óé4‰9JüŒÜÂøøú¯öãë—8R©LÓ„‚¿ÿÿ¼œYH”qÅÏ÷Í—#Έ-9jšE¦OÙ‚dS eEV†R†•f¨ej.©mÑ -–Ž9NC¶»‹‰‘•a˜–fiYj.3¥õm¡—‚z;pî½ðçϹç7š%IY°Ô÷¹×®Sí2*aýæ!ŽSŠ£tÖ‘nV³;zz|îû‡)ópäh aºƒˆ´RlZáÍö{EÈί†Í¤ÙÜÇÏm0fdòáAÑIXì5C²‘_a6÷²æüqTÞëÄŽCûé<Ô‚[õ˜«õ`‰áL–L˜³– Á¾è|RãúrJŽîpsõ@؆´¡ Z3’?ÏùoõpÔ‚Aɉº 1ÞZz °…ÚÞþ; جF`D,—ÌР³¾é9Åì·sGLj"4æ&ê³rÑ-¹ d3}¦Ùã«Lxûqá&g¨„Do<öù“QRT… Fz7g#-§¾ûƒ¸}g"Nªa*X)C„$Xk(£v—k<íðÉbæ`ÏK\ʯEø–u¬¸rßh­.gcK+L wÄ%o¥› eI \׌{®âØÉ}l®ºŒ˜È ØOÕrw|(•ê œNå®wÎDJð8˾µ…9Ì«j€‹Oâ6.em¡wë 9-b|Ì2ØReRT(ÐSçªÞ2õðiLVâEÓ+BÐý¼™ú<~4ˆLN†³¹z}ºú{áü;š±ñ,š{%j—‡aÚ§ÛH/¼O7íz$„ÌÃX5%«+Pˆâ/Då.´´ àÃëg¬k|‡×5¸ø¸› ñÐ ´C嵊þÞ*ê²á¸<ŠZ×1Ãdüß÷ö¯õÈ+ŠÃ`§N舮ûغ·«ý»n®Ñtó ³Œeð9 áËR!þuß?Ñøá/’e™6Ê1ÈÖŸCTdÀôÞ„ ÝY(mm1¼ð ÿÿÔIHÔa‡Ÿÿø§1·PQÉ1Óh+JPÑ ´ìdÔ!ls·,¥ ɺu°2"Ë !J’"Ü)Q ÍÜ·”¬Ñ˜¬'´q\ÆuæßaF‹u+zệ÷ãåù½ð|˃P2[°w£inb@«cÒø ;gw¼ÝÌ/˜`î/giˆÚ;(Ñõ¿äBv6 i7ðÝwÑÐÏí¢Zb’2 ”õ’§®Epô`ÿ‘NDùRRðˆyA@f¶ÎÌ ÕræZYê\=•˜LÚ;ú˜°ÙkO¦Æ£}ñŒá1=E…%„¥^"n‡DEi% ‚`C8þr 6¤W0oââ¹,.ß,B¿ !"¡ç(½{1<‘œ¤`ŠÕ3Žq¿ ˜à¤ÂìÈ/(cjâ U=Fb“O±}­Â²"¢R­f¥o«+lÅI>AôaÛ* Nþ!¸L2‰?wr™I%–Ñ^†IZAôP*¯&šq…vÝ"rÁDG›u“®é{èÑ@cC+~ÑI„ºê(«îFd6„4cššÆN©Dÿ©‹üâ&«mXìA]Ú‰h™¥¹¹œÆî.Zëëié®AgtÁÐ÷œ‡£$fžÅÔVByÛ0Úv>»…“v<qqÑzW I¢§WË–ÐÝø9š™Ÿ…€MëP.|E}«ÿƒÉÄ ä]Ìø¸Žšþ¹ßÚŒÃã’‰ òÂmC$™é èêžÒ9¤G¡°³¡¯5fùÙ¨<+8ã¿^ÅôÈzGظ'Š˜CÇ8ºw³©jhgÎØGe‹•—ËŸšã¿®¥Í”RéÈë'÷ˆOÉÅ/"W{%k|=Á2JÝ«6‡ì´¾½ðÑR¦8c2¡Ñ¼'ít:™çñòöB£yg†H$¾ÿÿÌOH“aÇ¿ß÷}·½s›r¦¦å¶òO&*âh…!J…Kˆ , vëÞ¢¿Ht:„y5Z‡þHæ­0Ò!¨ƒÐ¥DÅJÁ¥¢nss|ß½ÞM½t éúœžÃóÀóùþx>ßKHÌ ^åRŠî:'Þ½ 0¦ö «¹ÑXŠÂN”ÐrŸóuŒU7”U±ÛïGb"ˆáoc Õ»ñcjÁáçL„5Tx%„Ïñu €åd±|nj È îqyá/‰b oˆ®w!Ï(Áf³èöZOœkxÀaÆÊÒ<"²‹çª‹ ¹|8öñ MË5…íú³_ÏŒTš¬…hóÇá"óE # (ÎF¶mÀ.ËæBsˆYÜô-ÁÝÛ—.¦<8ÓrU…æTøô©îtp}õ¨{ÓÓPÒIª!Šq$U `”!ËfZÔ‰¤Þ[«ï´éâ54œ½„ñ±ö?|ŒâÞ.Øíö¬‘Ø jd©³mž#øµàæÒÆj6³õ†2fÙÈÐâ ,ÎÔ–:XÒêÅ×3h¼âåÐíÊêkÐ~Zå«“è轊…ñ§œ™ÔÍÌ‚æRv:››hµÈÛg)£$ìyW—׈0Ê¢Žºé¾OÍs98ˆ‰då.&N¯GùßlƶT8 +1Œf-Ä?C!¤Õ8ÑÕô’ Fe9;¿ &ØlPT¸o1¬f':Úù¶ÿ†ž%àj½ÀC&f£†ÿ?ÿåyæÖ=Ú’T°®¥~&0øy”ÉÎZÈ™0žÜ¿ÇµÊ˸ë«FFU™SìÆæÖ5hH%“¸qó%IB&£BD¬…×°]Ïf¯äÿÿ¼œËKTqÇïïŽÒÁMBIÇ,™j>J£b$Ã@„Jé?¨MDкM´l“D–%¤eÉDhÒ˜¹ÐD(™Ä°ÔÒqœççu½Ÿ3‘-ó»;p‡ÃypÎâ“ ƒ ¦ ²Ò·SU[M£©‰ê½Ù|·Í!%§Ä‰·(1Wㆦâ÷ùA’u2á(lۙϱšƒ6µÐv®Ó'jù:bæS0Æ:#kîU4!„¢¸”$.߸Eñr—nvã^— úüD£aV]@cÅéBŸOnžÛ½ïxÝÑÉ´ÃMò¯›Zú;Îÿ­øìW EåÕU”‹Ù* ^a‘¹$|‡9-—C ¹Ú,í}ü¼×–_A¦¹≧Ð4dÁàÝ«œ½ÖE]“‰ðÌ ÑÔÉ46Ã? Žºº ltßföû ™¥GÙ¯¦ç•“šúZ4ª&‡–sË•ëÐÙ™¶P~¸ˆ¨¨Ý(Å9‚ˆRa&8HÏÉ–VÂçÇ™q²}ý¹ÿc¬ ¸L奸¹V×ÿTÍ+VˆßD–±Zëðõö¥ÎjE{ÈÒ±6$4,¥8ÏÝQQuáðŠ¦²â³#}ô>fIÖRs¶™€ÉAlš\.Ôç³æX`hĆÁϳÁ—|ûòŽÏNo4ëq/tZ/ú;阢öœ…H}µ'LLŒ¾'»ú<ÆH=…efB%HHϧ`_’Ç·qÓemeæüChjªæã£»ˆ)Uœ©LDUÃ9wù%9¤‹¹z­…—Š_ªÂqS ]íô?Ǿª’kRHÞ©GX[`r~Á'À­´TR°‹­§X³=¡÷Þ(þ1±xm ¤ÊÒcý´w÷3µ°ˆ.ΈٔlM3>R© „ $N×äpûF†r ©Ñá* ;´ þIT~=ƒ~W ±{ÉÏÎ #¯ˆ´%¿µ! “‘—Éž$†HopþDØäÖý‡å¹ÜòYz;o24Hsk-‚c‘´LÉÞôuvðfrÑ“0ø[õÛVE‘¥åeTÕ…,KH’Œ,»àIzH¢„ üÿÿܽJQ…ω®ÁHŠ ÆÊt–>€Vöš&O ¡•mÞFK;‹¨•"X(ˆ‚v‚’˜Ý9÷'׸A,lì†avvØ; ;sç~IÅ»íu51Ìz{Ñõíæ—WØlTõ1ÈÁJ2T…”T|ÏöÖ¦ ‹ÿýŒ6e´ÞqYfb° §X)±W$ý¸¹8âÕc¦§Þ!ž›îm¯ ž–ž:9Šù¯dG*n!›Î|œnÇùw4`£y.ï_K(¾f@z­D…yÆàðŠ~Vç,!7`ùÝÏD"qBo6f&_¢P^žO¢—«‹½6ÒTôõžjÕ““æcöˆdàIùƒ0ÿ2;è=M—ãú¸F¾Å[BTŽùæ¾\Ãûî’݃®Z}ìl´˜®ÿߨÅ?“ŠEák¾îÝ ò_Ç™Þ÷øä”ç½3 ‡y\‹´Þ5êsUÌ,­òÿÿܽJ1…Ϲɰ‹ 6ne»•‚ ì (ØÚÚÙø¶â‚…b¡®Ì$973Îúƒ‚u&a&¹ÉÌÜsòeM•€Ü®fsín#·+¼¾¶¢+í_¨6«“*H]ŸïBÄ&‚¤Ü;VœHìù‘"Û‡VO& º”ûÅÕ † ]×)ĈùÖ6ž.¯4?8ÃùÉÒWøÆcOh`Lò{’0]ÔH]’H41BÊÃ3ªö!QÉÏ5 +¸‘’C]CT²º”‡kšÉ&6PÍ̵\iÃ$A ö™H\Fôæ"(¼ï¤y''¥5Ú°'úsJ‚)'kdæ`&• ZlªÙ€„"7“ƒD)y 3³’¥‚”’$ ÄDùfì”fÈ}£c qÆÈÿÑ?•cŒÀÐ>ѶXl_ž^èøhá_¡'ý?jqŸ ê‹rJ>¯YûG£x“dFqû;÷ @f†‡‡{ììîi±XàùeŒTZ£a:àöæWwxÿÿä±NÄ0 @ŸÓp?€n­:!ØîCø¦ûvÄ‚ §»˜Áq&'Æ[ÈTEi:q%ökŠk0"”ó‰ïÓ)Yr8äårÝ+6™’×{‘M=È@öú #mœ~œsFU¹Ÿ¼U¸ÅiÙJúö'B®—–`¬úI¸~¼š4 hÆñL!MÓ†âK£ÓöÞX¶cžÁV5ë‰ùUBrG$néÍ)² Ö1ZsŸ7´a+ɳDpt92ÊuZrŒ™T‡é»Îönƒ®¦øÁ‘jèêÍXRCœî(Ä=eÚºÙ•¥Î·ÄÝn‡ª²_žyY€ËM¢åÓm½‹ȹ³ß÷ ³±R ó¼ðôø0´9›ðõù¾½ó ÿÿ챃0 Dïj¤ü Ìmÿºâï *b38"*ÑŠ¡Ûm~–ON¦ó&©XUù6½Ù’Ž›¾‘s­]IÅkó v®5rŒÞM!~ÓÖOÿ„çŒz=£µ>[Æ™1§VZxéøÜ«¹ß”cTˆ\@XÆ$ó_ï÷á{iz4ÏêúÁDmÓâz»£ªJô]’œÿÿìœ1 €0ç÷™àG}о%~抬…¤±W ÚM·×îÂMǦℷ¿ÝGs/l¿©ø+ìmO|É=wp7¦â³‚P%¹'öR˜§Q9,ëFD€Iÿÿ=©˜BöèIÅ£ìaÅ"'ÿg€lMƒÉ}øð™¡£³ƒ›‡›a÷® 6naøÿÿ?÷ï?!zÿÿ=©˜BöèIÅ£ìáÄ*'30üg`faŸTü÷ï_†û÷2&§¤1DEÅ0üøñƒáû÷ï Ü\Üвì?#ÿÿ=©˜BöèIÅ£ìáÈ*'_¾t‰áÿ¿ÿÿÿþÅðû×o†?þügdddøü²sâç¯_°bšÿÿì;ƒ@ '–É@Ô4i¸ÿIRå&°hm/¥¡¢H$è¦tcÉO¶Æú¬*RJÔMK÷ê™Æa?$}Œ‘ðe*þ¼qËšŠÝƒœ Ö-ñ¯ë¹ùæ3¼™Š·»ôöÿ™Š5n憈KT…(ÅlQ§Íÿÿ윱 Â@Dß²z1þ X„üÿOI)( Çf½rÁÂ.®H÷º™év˜Ã;š˜Šƒ¸ 8¤”~S.:8¤)QÍ›Ve|j¶ä:(§*ãgç×pn«£À·Ë¨Z†·ÜwWo¯Ç}™ÛʇÀäR|Ò6™ÿÿìÝ1 A ÐÿwÀq×Bdîßyï`m#ÈzWLŠ| +±–Õî)RÂín‡ã ›ÕRóvçcl¨}ò[”»ÁnW®ûþqµþ!~ª¾Œ£º®EÃimÒÿýÃ&àæ œg ¾(·jH ÁÜén:š”^³¶Z #¥Dʼÿÿþù3 rûUIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtextblock-sequence.png0000644000076500000240000004204512536324515023431 0ustar philstaff00000000000000‰PNG  IHDRïÔw¶ CìIDATxÚí]|TÅ×M@PB E¤ Š‚~¢‚ •j£ˆ¥ƒRE¥ü‘j¡ˆ QQP°K'…$$ i@ @Bvó7ww2ûÞÛM6¤ì&3?~ÙÙyóÞnλ{æÎs] X1²R`.b¿Ôí í)¥:Q5‚µvqÞÍÚ˜6­½+^BÛSõ®íoF÷ƒØøÔÖ®¥ý઴_‹öÛÖþ´_¸î×níÃj¿Ckqk_ûYtÿ¸Ö¾k ±öºH4K4K4K4K4;<š©b0Äá襪Q·'µ¨ú„¢ÛMì©ê`ã-whã¥êöÄ£D³´ÍÒ6K4;$š©õÊ•+ÉÉÉçYIIIQUíªF^ÄwUÖQ‹y–ö>U÷SœwÓÒÒ`ž%šÍâ5š®^½:|øðÙ³g¿ÿþûsX¡ ?ª oTuÖvãÅÚ[ªATíâQwí]‰÷fífP,X0dÈ_~ù?//ÏÒå0Z:¤ËŽl“.]~eƒ°év°Mmܹ.£³ö¡´ê¿"Ùí/ªHV©{¢Í.\ÀN%+7ÓÈÏÏG}ïÞ½_ýµDs%D3 3ý]¯_¿žÏ UøK±h¯³"VTuÕ¹bqÀëæbí*ºCiïÁÚýSŸk×®áÃîÞ½[¢¹2Ûfü½‹ümÚ4ô‡1 Ù²e ê^^^ÄG}w‚úž={оaÃÔquÔßyçú•@Œu<7ŽŽŽFý‹/¾@»§§'7ÃÍU‘iÍ7ÝtÓm·ÝÖ®];ÌÒ0¬]»ö½÷Þw±àB<˜èï¼yóVTžþù_|•œœa8Á³QÁ3@ýùÝåaGé–`qaã©|‡‡‡“Ç`:}út¼üóÏ?›7oN}ñ9s†^Â~ÿ÷ߨà׿0œ·ß~›£Y2ªÎ4ynëÖ­ #FŒ€YåˆhÚ´)*€ã²eËPµ%žÝ©S'T¾ûî; Š_…°‹>}úpŠ2räH~îÚµk›4i‚‡î„,ÿý÷-ZЇâÝÝÝcccét´ã6@¾Á:@iðÂB7kÖ ç<˜>…dU”išþùgÂ11ÝAƒÁ<“íÒ¥ *ÄàôhÔ¨¡y„ ¨¯%4Ã6š9%4ÃjrÛ 4ã!¡úÇ\§NЛÇãeÿþýiXР–ú`¾4sÛ 4ãéÂmÿïÿÛÁôsA'Nð(Ñ\uÑÌm3™çW^yö°a¼Ë‘‚Ñ»wob °ˆ}@Ÿx-˜.¸ŠÖC7sæÌ~ýúQç×_}Ô¨QTÇhðm3Áƒ‹¾ûf0 ŽæúõëçFiÕªÕ_ý… ÌùÔ©Sé—ž"Xt\‰fé¡3ù4`JÑzÏž=kÕª5nÜ88êÕ«Gð*Áø}ã7@pÁ•IŒvÌíເ©Æ2 ]BË›9Óàn`¡› Í 6„I†» ^9 Îy3l3G3PN¨…·çâW÷†{ì±ÇÄ•sÉ›«ÖÊ6a_á"€…5ðrÇŽgÏž%ޱdÉ  ®4rŸñEÄY³fÁ7‡#­ðÑhX(%sÎŒŒŒ$ÊÑ£Gášàã¬_¿Þ p°°0¸® ' œÍð.SŠ}ûöÉFれѣGãô… Ò€jåE¢¹ªÌUÛæT?U¼‘×ŵ:m;?ßî‘FO?°µè<ŽWñ3˺*Í›ùQŒs3Ä×XÃ!¨ùébgÕ§£2ÄåqráñÁi…œOãø˜#¸¾ìæšÍ UøKª‹/Ånªbe¶¦¼g.%¸ö,Ü3¼Iˆõ“³ÀªÎ4è‘€ƒ8ß²ã3 Ü?`¶¹JÛfxÜ€zBh9“WĵUÚâ8b7mײVÑHh&—¥´Í7ºzR ÐŒ£±FGöiðŸ‰fÉ4 ™†h6Ç¡"\Gƒùh =$ó͙ƱéV_ˆÇ²êÝg‘h–LC2B¦q#¼Ùô–冀ræÍÒ6K¦a?šY]âš5?Ô©SÐÃ>ôP`ÇŽçÙöGewzJJØK/奦*ý™Æ)ËÍ, òÍí6`òæÍ§gÌPÞvظg‰f‰æR@³m­7ÎÃÍíì×_'|þyÒ—_íÕ J¶oWxKLŒ§»{NR’r“èÌo0寛TíX=ŸÉ‰ÄÌŸôÔSÊ)ð ¢’Ò6KÞ\†¼9Ÿíx=Ú¿M²¾¾ Ç ~úiT®FGû4h“˜H_ßÕ¨¨ÔÿÍ„<$ž7³?BQ MýçŸì3gèk=³`Ah÷î&4C*$--2“–ò¾’7Wþµ@ȸPTj òžÐF@àÀn4éÏtÆÈÜ¢øÝu׉×_'4¬W/›©“Åüñ~—C-[z¸º†öè‘å a7jüø..~ÍšáxîÛoÛüá‡ÁO>©üÈ\ºêr¬woÕ¾¸h&Þ‰f9 ,Ó89a‚§‹ @1bDÔØ±~-ZuîœÇt?rΜñ©S'/#ãêÉ“û\\@ˆ•Æøx¯ºucØ0l´g2MÞ¤¯¾Úå⼄åËCÓ8òÐCþíÚ]gR¥üQ)1Ó(ìFîìØe„GËË%Ó¨xÛ ˆÈ@¤ž¬x°â)z©ÛŽâíí %E®ŠTLÛ5a‚‡‹K䨱áÇãÜ¥ ˆÇщ7{×® 6»h±zåC­[+b¤/¾xŒ‰3Ñ„òÌüùÀzüÊ•˜V†<ó lù5R ¡ç³ø¶™  e8‘±o_ÆþýWO‚™ÏKOÇ¿ëL­ð/M² fn0{¥m®`Û QZh¾@Ô ŠëÖ­ûÂ\Ö±"VÄv^ÐI$7BÆöN0•mŽ˜ñæ£/¾è{ûíd†º¹©Q'†¦le`ó¼ô]»ü˜ldpçÎñK—Ê•ìñH\µj·‹ËñAƒ¼êÔÁ&´ÙåÓ 4§ïÙ“°zuü²eøÝˆùàƒèY³ðœ4)zæÌ¸Å‹S6oÆ#—KJyzj0K/ذˆÒ§Qi™Fä¨Qþ­Z)HÍͽÎ+àèQ½:Úp°V-ü¦Ÿœ2ÅD…ÎÎ~ó“'Δs³³£‹^^È |¹ï>ÅT/ZäyË-¹Ì%b´”Å)1ÓÀø˜•âB)[¶Ä}üqä˜1À÷é™3ÏoÛ–mä£Ñs†H¦Q®³@ 2O(”P‚*<‘ØÂ_b캟†òhåäyðA_†oÌÿ0 ‚S¶mmÈIH0©Šõï"Ê©·ß36É‘=»×Å%uçÎÄÕ«CºvUÌËó»ãŽc/½d"V~š­Î‰ÃÃÃø±PÑ3ÈŸÉkײBCã–,é²Ï­_Šbò âœÎ. ™FÕ°Í'ÂÁ kp÷ÝGÚµóvw‡aNûçͱ±žõê‘¿9¸{wïºuOO›Ø©“§›[VX˜âLLKókÝúÐwDϘàf&9fáÂ@†f”‹ÞÞ€8âÖ%°ÍÚ ƒy"hºp.¼„ç6mwŠ=„›.F2Pº[Z¤m®<þfòg=zþ—_ðÃòÓOÉ?ý„J6Köƒoİ&úyXì¼yÇ_z XÉbrĆA$NMö §ß~;¹/®„‡Ó$’:d8Ár\,CçJÇßÌÁ- [¹‡¨¨˜Y³Ž€U!âúòèÙTéo®QGšeg‹ÅjÕÇVõL«Üf"®´3†jZ÷¦´…ô³Ð<Ý/¹ÔW¶Å§‘|vÊw’˜xjÚ´““'Óoo/rk‚dNi›-¾ùÆW¶Mo™gŠ¿o÷n¬é$³„FéããƒÎK—.@a\¡Œ˜˜Æ¸dÚ6lˆ<O=õúìgÁï£FjÅ”e’““c[ÊÄ·k×îI¦–äèh¦;'2#Å1mÄ·ýJ4ÍøªŽ;FÑÉbè°1l-¤Åßß ÅA34ïjÔ¨»;pàÀW^y¥_¿~0 .pƒš5kn5Ëë#õ ƒáÂ… °Ð¼ÃËnݺa™ƒú òÜsÏQ}ÇŽ·3 ;¨éÕ©SçºÙ¶8p ZµjñL<× Ù2íh.„rn®òç˜:5m×.1ôYÚfûT_~ù寿þú³Ï>Síï°±ãC|wÍš5°î°Ž6Tm0 ºÌÌÌ „††ƒÇ#·lÙ²}ûöwÜqlðz6ßšçÎKãc'b¯^½¨þÛo¿µhÑÌЧ´dÇK/&“oïh¶™à›úçŸg.TÒe¤¥Ám¡=i›—iÍ;v¤S®±BØšAAyéÜ·Þz«I“&ßÿ=ñÁÄf'Bó¼yó¨˜:G3l3¡Øþ¿ÿþû×_ݶmÛ¬ ñ°µ¿´ãØf¨Ä̙ҥ $Öõíë×¼9n­ø˜DsѳÀWU,šA-DŸï4ÃsÆdæPÀwaø©¦áææöÍ7ß ®ü›'Ó¦úï¿ÿ{ŒÊŸþ cGíÛ·o‡W[tö9"šÙ7“°jdÕAŒâý®®Èp°Q#žÊH¢ÙAm³ ¦A\eÊ”)%rw;dæ“9ŒÐ³gOÎ4pÅÞ½{sÛLh¦™"Ð?mÚ48@0ÈòåËUÃÎCºw‡&ªWõêÞ5k"y¹a–qŽåo¦ËA‘÷îݪu …&^»; ç1‡>L/°‹Ycddä–-[ºwï‹©'qkåo‚Ѩžð×_ѹpbf  ƒ‡€O”­-³;Dsð>d#½ÜÜ@ÃËÅúséˆurõÄáâ4¬}Rñ¥5n ½ÝhC¸Ö1ѬLÙÂPì‡îcPFþ€ÂgÞÁÑ\™_+á {Z*"ž‹§‹¦‰tÊ5&{Å“¼ÓP¼Îã@¨ÎϽ®· á > öI·w耔ç6lÐ]F‘LCª*:G¾@ZßNùùgÌÿ°ÉÊh "m³ÜIåˆ;©¬OïaEúF½µéÓ(¿½'*ñÂÒUUT¹ËBUÑš9ùQ]Tw@Û-âý[ܪùu#WªOQW©8¬v|:)­$™F%WU_–©‡®ì´ŽT»"¤OÃhƒ¨a¨aÆa½±AÚœ‚bÆA1¡*%¡øRwjDzBí)ºé ­Ý‰öf°8@%Z•Ôýɇ¸iÓ&ô\g½Ø¸míMŠíÚT߃¶›n‹örô.þ.ˆ\سg5¥äÍ× çÙ`­m6XÛU'b•{×®]€*æ"¦šµ}ݵTpçøl¨*âxöìY£"Ä ‘Lª+ÚþŒ6ãóÎmŒ¦{ií7ƒÈD,—"^@\H’L£hå®2RU¤— ¶s)Så.íG£ÇþÌd@ž¯ÚgàLƒŽX™zŸe)/}Û\™˜F¹©*â*%W 8N9¨*š)à‰ÜØÚ"îuЮ+ iíVmº2“ª·T».”è¼ÔT ¦•h¶õ mû}KËßLÂD¦›¥åoÖu[Có‡~È)™-3_½£T™”\ž*4 y5[¼†. ¯ÂÔ¨5Ç߬ˆ*¥§ÓÏšD³D³=hÖ°¯ÂŸ~Ú§hó¯V̸‰f‰æò@3Wɸ’öï¿iÿˆTÎôõ5…±`|džÕ ;ÑÿP”÷ر+´¿ÝR‚Q¢Y¢¹,Ñ̨jPˆð hÝÚ¿eËC-["õ÷±~ýh;IÚž=›6%‹m *BI¼Å„‚¼åùÄYÇ Šxã ‘,í§ß‰•/Y¢Y¢¹ôÐÜ©SX¿~ýô‘ûî íÖír` Ãâƒyäð½÷FÏœIÚ¸QÌ6c4èÖ%|úi‘nGÑCGh6hv²HsÛfrWQ»XçE|WU_ò#D52ÿ¢°WÀnÛüÈ#HKŒh¸ìS§÷þêƒnn™þþ RwíòkÒD q‰÷ª[Yª’7m íÙÓÓÍí*ËŽuk:..#F$~þ¹WíÚÇž^AóÀ”\"zÖ¬½æ]ƒ&i"™†£¹WOŠ““ Gì5´Í¡Œ7û6jtÐÝݧ~}lû;m–OHß³Ç÷Ö[\Ιãwçü*‡Ú¶=ÉVìB{õ 5ï»râ„wíÚy—/‡±çÄÕ«±k0óÐ!QI2 çc8byùwÞ™3gÖf³Bþ’êâKÝnâKž>BÛ*X79r$®+~QE3 Øæ§ŸÎ¿zs€=Ʀ€¤¾_ãÆ¨?ùäé·ßV†½|Y‘™=;ˆíömÒ„ö 5s““•<)o¼á…m°5kúµlyýâE£%ª*ŒiH4—ÍÔ‚¥8˜™ ¡ÐK±1• Ë¢ê&¾L7mª€¯CÖí@³™7+[H˜µ>1dˆÓd‚m6¡¹K—ø%K“ÉâQV®$4C~=åÏ÷[…A=räHÌANÞvÛIÆ¿ V6òHÞìÐLCwIÂÁ™÷i™£Mq±õêu¨ukšo>Ú¯Ÿi ùàúö éÑCAs«VdÅ•8%%ø‰'®ÆÄDŽ5v¬¢Ê°cxóEÓ6Xéov:4—ÅNª2õÐyâ ÿv퀼³ß}‡ýQQ&€:DZ_ÂÔ;½™mÎ8p¸DÈÏ%ÿðqê?ÿ¼†ÇÍ7ô°ÙQS¦ì»å4† Áf ±îÛ÷P»vxHŒB«äÍ23±}¶¹øºSS§ÜsÏávíàeÃ?ÿÖ­!9N'^:|+)ä¡‹_±Â£Z5L=\]ã˜R×2xöÁ:uà×£DóÑï½·t)]|#ðÁMbH–R;’7K4—&šõ!n<µ¸4mHMÍ>}3E“²‘ù˜{î\vttÞÅ‹–¹ùctÞ,Ñ\Ém³©ÊJµp4Šb£~ÝL](:Ït9Ö¦€“œJÞ\:1tEÞ¹¨ü¢Tñd¼…Ô΃BK¦@ gÍå‚f+(ÝLÍÍrï‰ôiT^Þ\9öÊY D³²g‹ÛØÄ‰h¨C’ôoVxE÷¥¶ˆ'RWŠ3šxŠö,Õ»üåÎ;7oÞ¸ó?)|§âl3VÆ^)Ä$X¦¢’h.?ýfœ‹äQÈ̇ =»„²Û²h[xUÝöéªwU—ã#¨^ª»Á5fÌJIo,÷ k”/:ÔÚßT¢¹œÔÈi©ÈÛp@¦A¬úV ¶¾I#77쥗 Ã<¥O£Âòž¨lK]UQ»„{㪊4> î¿\󞎊êD‚ˆ£={b‡¶I±Àh¡OwƒqF™aÍXFY|Ì¢¢´¿¨°ÂÚùÍôÇŠðÐq¡ +Z¦öeñá÷LšCüÞnÍÇffœ¾o6x§3µpƒùQŠQGF™Å§ ³ø˜~[…Ô5ÆŠËâcAϽLèR†Æ4Ëm™¦}99@pä˜1ضh}Ó&?óXN³z"ÑŒ-Øß*þá/šéçÖÈÿƋЧ*°¢N;‹²XbãâüÁŠD3—„C Ôõîuü¸¨_!þtégAõóಪ=#ÊW}éÒ¥  ÈÁ„¿ú*ô1®FEñ|k;É›”i@`äĉØÝ ¹A¿¦Mµh¦Øy%IÏŽõrwÏIL4 ùò±("È43y{>Ã}ÌüùAݺÑ/µé,Õ¯rñ™†™(8îÕ ™Ü÷@…ij‰ÂBºÛȵPÀflì`ŧ†ß-ñ³Ï°·/fÎèf\øãÓ)£…0sYÄ7KÞ\Æh5ÊŸiüRŒñWרI“±¹èh3š–)ŠÅ?y¥â t± “E/UÆÛ^4+÷ãï{ŒÔxÌA“BœÙÕ Þ«§NeÇÄà9ÌŽÏIJºuá·ß°eõÌ‚±óæž>=á“O’¾úêì7ß@²–>rá€uÌIÞìèLƒ šCȸip×®d\  97!¡€mó„\UàÇtí NÂ÷uBÌ ÒG:t€Ê`^zº‚æ>"4“’6úç[zÜŠf ÍFvo Øëêê}ÓM^øçâ‚LîhŒ;7úÝwcÞ{öJpøÃ*hWP;w.<—.:tÑÛr RW±w•ýà¨v¶#×Íã|QG…æÿ±]ï¹¹¹º.6ÛÞ´ëìO«ÛlšGÁ€üäóRSS~úÉ»FäÍ›Mh®W8F= }ûCmÚ$­Ys|Ð hº]ôòRž¸8oww ?ñÓO}š49òðÃJ4ýÂ…!]º(+Û7ƒÄ/[¦ZN+>oÎa{|o»MIàîê @Ã6+âáaff~VT¶@þÀê󲋭Y ¥†`üǶs]ÆÐÝÓ(­\®v1“'î#ÅÁzõ|4€- <¸€ÝTÛ "¬œÿýw5Èô*z(}ú@Ehú2»®¤ôtïzõ.…„į\y´W¯Œ½{ús7hÄ3íòÐ)#§¦*˜nØüc^ ²Æ4Œfo¢¿äs$Z/¸–+p_`UáÍ111Ï=÷öa1lŽP°ëFuäíbAËܹs‘ˆnøðáâž³"Ñ1j”_³f0À`œpGÀ§q°~}l…7ÇÄx»¹¡ÛÉI“Ž>û¬ò¤eeᘲy3éjBêê4ҼάinR’"ôé§à^õêyÖ¬™ÍDcMþûg¦)&kW0½páÁºu3tgN±Ëµªð戈€Ó¸¤¤¤”””äädñ¨­¤…Ú/\¸€_æ3f”˜7S æLøY't¬U † ö¤™+BQ‰PTÄ4 ||ú”9{õÒ.Ÿið'Æ'Lcb——–F7o2ÃÜèjU.Z_Î!èÏô9š1£‚€:(h®]®‰è¹s}™ô ÍüàØòahyî9ˆmšhq~~Ø‹/B»30âÍp>€`&JÙ‹æ"ã4 1'6ÕM%šË Íåœ5ž°1v,XAê_AnðÂï¿Ã0‚ጮ(þæºua áÖa=ó¿ÿÙ "^uêı¹t÷W«v~ëVÜAÒ×_ƒs£gÜŠA Í )Ÿ:Õ³~}"Ü\ÈÞµ@(pbY'iÝ:8+bçÏýè#øÚ H›²e ~%ଠþS8 {,¹˜‹5ÉT•ÊßlâK–jÕ* mÛ€6mîº ¾¶|Æ\ñ³ù4à Æ4,"üµ×Œæ\c˜ŸÁì[¿¾ç-·@k-€]$SƒU<YYˆ÷0-¦ØË›é-¶ “›’B¾dxÁ1=½ GrŠXþ8=mäÁᡃäaVX˜é±1{‘Më‚U7Wé¨#Íò‡…y¯Èîó0°axå ø@¬pG{îÙ³4á³øÔ¬á¸äQGVìka”E^t1;Ä#wjúô¨7ß<³hQ†‡‡é7Vøô’ ÉY`e‹ÓÐùÒ™=S…±†.d­+Z\š…ðF }ühäAK¸Ä`& L#GÆ/]JÉxT!6ö¶HÞ\ЬŠvЬQ¨§Öœ‹Šƒ6u2K}he^Ø+´Ù¹¹px‡Šíô½{ùlA ?’¼¹²1 ?på¦@`›i7ZŸ¿evTÓ_:cÿ~eüÝw¯FFšY„lÉ›åÞÇÞ{"Fâ›ÙVãR‚¸Ê:e°ù=K4;š+Á¾ÀRÛI%nZ¡p¹‚8^”G©/•EŸ¢&Ñ\ahƹ•`Ïv.‹,-µ}âì–}Õ×ΟÇB²œ¨ü-Ò§!õ4œ@OÃb.ËŒ4áÈó_µ‰^ >éÓZGΡuTøÁVÚÚ¦-X–ŽéÓ¨`¦A•@‡®È¯ñ†ø¯?ã3X =Ö§¸ÑÐè¼{O$š«šÍÿ)£°˜ØÓï¼ö <ÊTœ>JÞ,™†¨*Šë— å˜9“Ò]4±~’7Wä,žõë×keåUÂñ*õykòñ6Ú­5Z¶8"ø¸s¸5ÊSU‘G¡é%Ó~Ga?¯äÍì¡=zôüa#U‡]iA´ÉAT}´cy¢69?¡û/eÍULƒÍˆË }úi TUš$o–«'ޱzR4›ƒNqųß~‹ø;“Б&"@òæ ˆ:ª+Ûå©Z$ÈlJÄë¯g²;FË„Q’7;b ]a|Ë¢™A#?Wþ¶ÙÞTÆÒP¼¥P@’m>ñê«6d›%ov :UØgѱÎÎCg?Ó°ø°Œoœš93eëVß°®D*™†Ùæèèh???_¡xyy¥Zª‰#ØÖSÔÖz‚‹Æ2Øåj,=m}2Ï™‡GNž¬Új.™†ƒ¢™’> <ØÅÅ¥Y³f·²Ò´iÓš5kRŒÁÏE Ç!iUÂ(ºI"'ÔÈ6šúÐO ]K\O±áws4+5vóPš4 ëk½$šÍ}ûöíØ±#‘xÄjGΛ æýÕ¤2£ÚiÂo[dÜç[ 1^·”‘u44›*ìžÏïØ³hQJ¢Ù¡ÑܧOŸN:ÙžéLÿøãÈÌþâ‹/¬HÀ?ÿüó]»v}öÙg÷²ýH(p=ztÅŠ÷Ýwß‚ в|ùòGyäµ×^‡¡aq\»víO<Ñ£G|Š@w\4“®sVVä¤I*U;‰f‡SUms‡p.’°+4--í"Ó0ÎÈȸýöÛ»uëÖºuk0é°°0’'Ÿ|÷Ö¹sgÔ===Ñí…^hܸño¼1mÚ´:uꀨ²€u­Zµz2‰:¨.¡ÿôéÓ_yåT~b¹÷ò5ûL Í&œ>’Y|œ@U1Í܉7ƒ1»»»7lذzõ꽘ÊÖåË—kÔ¨AK0(hbF7‰às–Þvú©ƒ2iÒ¤ÖL- KÓxPÙ¿¿««+äȨ}åÊ•=¥Ns\Ÿ†àÙ¸ðï¿q+W*Žìl(ñ‰šêÒ§Q´mŽ…U[´hÑ|}ÄyóæiÚ—¼å£>zûí·ñ[/’Zk¶¹_¿~íÚµƒæž"`GÜ€âp½t©^½z‡YÖGê b½mÛ¶/¾øbذax6lØ€F\—ÆÇóCˆGùí·ß͇¼é¦›¶nÝúõ×_ÿðÃà!8^þ`8®m&aó”ä@áAi›í³ÍáááXÔ˜ Œ˜ ”DVTþ’7¢œ={öÔ)¨£LWÙ?]ÛÜ»woo¦‡ |£AƒàÄô•¡Ò¤I¸>žyæ´yóæ Â„foäkªºîµªÎÿè\­+ÃA}fóìåæö|ŠfÕš•yÉ4œ ͼ…/ÖMRX×µÓZô…¸²ãàQG}vÃGŒ€yV~õ6$ÓªŠjäz_ì/‚”¯ÐZ·ØË-wRIUÅRTUäߘx–îÊ¿ö-×µö)”ỗ©ûmè~!ª·¬¯ ‰f5š±SY÷ê†Y—EÔQÙi­kfK4«ÑŒsá,CŒbƒ<<<<­V<‹WÄžT§c@@Klu¯¢jT;nÜ8°Û¶~ñ3Z»Šî…´×å=‹¼s£é^Z;2 î¹!ÅU$‰f}­#œ¾}ûv,×}ùå—묔/X¡Šª]ûRÕH-Îf,ˆ ÂGã#‹-º#ëÞ Üù¯¿þªû—æ™  F¬±ÛÖZ£ö&ÅvíªïAÛM·E{9ª#jå‰'Š+üÒCWaZGôn‡"'e¡u¤(ÇÅÅÑ¢z¾^RMGftÄÊ(±AƒfeQzèÔ×Õ À•®í°Bt‚(ê£Ôuèl{ý€fZTÇz»êƒØ¾Š5y>ÝkíShÛUg©†UO+JÍÒ6—Ä6yÂ8æ P%"W³í²Íº’ÏÒ6K4—7Ó(Ð$†«ÁZ4V¹éÈ+«„¢zi­ƒ8ˆ¶Î{b-Z¤€s]Ho›i?ñÄ‘ÿû¿ôÝ»S¶lIýë/Ðïºu/lßN¼™ÐÚ£Gäȑʰ,o1xEp—.¨ø5ožðé§&Šl0ýÊ»ãÇû·juÀÍíÐ]w!·•i¨ù{Á4ŒÆ«ÑÑ}|2<=‘5óÑܤ$‘»+OˆfdÉ4Jß6#0; ¡,JB£~BáºïZë¯:WuäïBÜcΜ9âU¤mæ¼ÙhNçÚ³gÀý÷+Lc÷n?†æà'ŸŒcֆDŽ+‚{ŒÐŒÀ„-x0W‰;N’”ôtsK\³¦ÀœµÛh'ÓȉáIüüó¤/¿„ÈÁÉI“"^{-ö£ðÔå$$ð¹)aÚh}Gœ´ÍUq¨ ™ö• êwçÄ4Lh~ê©ãýû0­t2$èñÇ•ùb“&ILBD‰uÎÌŒž5 Dxè"GVœß‹¨QCÜÑ]²Y õÃg$}õUÔ¸q§¦LÁ6WOßQÚæÒœÒpÝ(x{£õml£ã…¸˜»g<Ò­\W¢¢rÏoÛú9fŒb›ÍLãÜÆÐ»rü¸2ó‹‰oN`F÷äÔ©~÷Üs=#CÙð»i´50N8ÐL ÙÙ~wß}ôå—Eêlß,™|Ó‘?ŸìˆßèÙ³éËš”àrXõÖšõ맬ž4lx°^=Ÿ 0#DÖø<æ²H߿߿M2oÇ„¯ ûë ` WÉÌ„KijFÃíÚáÄø%KÈ´Ÿš6ld¦¿¿gµj©ÿýW ¤ÿ)áZ  ácd%,yÅÑž=á:4iý›÷­H¦QE£Ž`Ms““!-‡J%5•¯ÞAÖVyI¬4??}ß¾sß}§ø¹¿ l%;ÔùÜúõà¦íè™™…ËãFã5,˜›Óܸ¿Ù(æg48Ž™;܃ߕdUÎ6‹Õ£bÚ¸ªê/®rÃÉ®9Î Óqó;4?T%ðÐg£.Çôù­[áä6ò`@ $š+5šyKˈPBª’÷R¸¤©Æ$+däÛÅ5ý/$£7–€7uÄþËg~É›6ÑìÓÄÑ%Ó{Oœkï Ÿ’…Ž5 VQIL2*Ä4¬Ý›U= ›¡ÚË#"”_ðHKÃBØee‰fgE3t×Í´úc_|³ ûŸ¼eK<[žä>;‰f§·ÍÎÎ4ìŽÖç:ééLJ‡§Å($F’¼Ù)y3ôÒ‘ €À fc+ï …·¿gYÄvñ,^[lœ«jÑí¬{-ßÿ}ÈPZ‚|ËTÞEF„Š«›ÈbA#âF‰f'C³Éœ—‡lCš¦£nQ½%¾Ô¾ÅG³6 o×=Wu¢j@ñ]ª4;d‹ßÌÑœúÏ?gÍsA‰f'¶Íª{s:¦QÌËÙFsƦ$CÍ•ÍE l:æ,Ш—Ü®½'TÉ={6†ÑÉ4¤mvVÛ,¢9vî\‰fÉ›œ7“,öêÒ÷/¢YzèœÎC—³û4æ2³ZUEsTà…?þHX½ºp—€ôÐÉ•m§XÙ¶¸Ñ”Å"zÎ1 ¸´Ír-ЩÖy¨>xVÖ±ò.^”«'•Ç6—<†Îø¦ƒå"Ñ̼á8èiÍHX»ö¤àž“³@©ªèLªŠFaÛvþ•+aýûç&&jw"J4W‰½'@@Û-‚¨Ð®lr(ã˜ä€]hÆNXÓ åJOàµk´‰+‘ÍÿŒ–B×ÍUeÏ66c#ǰo£F¾ ø¸»{U¯ž°r%u¾èéy¸}{Ó‰–ªŠ¢&]¡ª"%â5Š–âL2E7¬ªh²¾æk©Og¤‹óÞ{\RLî¤ªŠ»\}4¨sg(T\ ¹]ÐPU¼ðûï¦=ÛL‡ŽC¿@|£” ªh`{@Ž)¨*-ÓL•,¾™öo«G#p³ÉLò‰|—«ÜIU5ÑÔ©“JUº “&‘Ý¡fÍhdð„Ï>;=m„Z°ÕȤåháíÌ¢E¸ÅXÂú‰W^9ùæ›ú«'OB©Hµ•ºøh6E#„L¡ƒ;¡hfÞ>lXÌûï‹jw:h–L£ÄL£ÂUK¢ʨçEooh $ÿð)wù5i¢¼•›øØc^µjùeïÚµtìHšt#òiÞܯE‹Ð§ŸF¢â¸åË•?ÖÀQLU1õÏ?Ѭ—X¦²iiÐ&UjÕÂ&pú,ÙLž‚Ž&½%Kb”Š·U7íÞÝ“ e¾÷^h+‚fœš9“:gìÝKZGò¨SN\’¢ƒÂbü'Ÿ 1aÂ!3±NÙ¶ çR˜Šž>™å˜BV$‹Ã›±9êÌ‚K‡f ô­_ÿÒ‘#Xí‹™=²Pm̧t ?ŒäÍ¥Ã4p“C‡]³f6—^Éòêf×S‹úúõë±,LªŠvèÐ=ñ¦z Êç6lHÙºòžÐ´%kǵŽBžyz\ÊCÂL2öúC™ŽtèâW¬ ã Èâ,`BGwÝåQ·.T×®™6›ÝÛÅeX×»råôŒЬÖ(¤g0=ÅSçéê ^9hšfQ£u’&ms m³‰;ž8A UK%—«xŠ*ªø´üñGZK+¾F¨VU1¸G€Dº+ªŠ‡Z´ÐQU7à;ûí·`0ê|]Ã.¦ad®CðoïZµ€fàŽÖ® ›³¬¿ÁRÆ–F¨D³½h¶vŠs©*F ®VUìÚŠùäœVܺÇ24ûÜv¦e&Ïtf&VÕ¡I§¨*Ž…FèyzÜ|³Iϳ¤ªŠ×’“A*`¡‰iÀ‡x¶d[.õùJ4—Ü6kuËYUÑ®¼'!O?%ì3g0ÁJýûoà&|ĈA¿†ö@õêWORœIIÞÇö™B9&Nô¿ÿ~¢É?ÿ¬¨*B#tÄRUô}ï¸#ì•W8u.ù,0%^‹ƒuë0Ï*‡t‘h–¼Ù^Þl-vÇ‘=tG{õòTaÿ SH™M5âPË–tJØóÏã-r¥CïÞäÎÃéÃÿ÷^7ßøàƒäÌüùŠé<ø$sð)’ƒÑþ]P"UE{ä8¦!a ñóóŒò¯{wÈù`Ã\:ÛâVÀ6 a;'íŸ3¹ãϯ‘A1cóÞópÓΛÇw}ôvÏÛžZe‚•kkLÃt·´DØmQñË–xõUì4í:a¨ ¬lÉ4Ñ6ç“‚êøñjÖ<³xqÌܹ0N Ä~æô;A£˜w÷l&ÌókXì22#˜¾MH *ÊZóçvë¦x¾™lJf—›½¶Y¥Ô¦ýDVm3çHô²G®Ð1Ÿ••ááqê­· Õ²e É%ÌkYgX“¶¹”m3Mz"GöoÓFÜt䡇Bºw/`‰°Ã™~yi_~æ¡CWÂÃ9&°¢[¦Ÿ 9ŽG"”NøÀ¾ºP l³‘ã˜]GòæÍt?ÛŸfo$¥M‚¯F:-,Ìôõ…¸„ä×®Íôñ!—œÑl°­BéÓ°Íd›¯]»¦òÖF kcÏ1 ‰Ú‡æ‘#ý™N LJûöÇ6¡ÙݤO’Ö­ópu…ôvç0 ÎÑï¾{€mî÷¬Qã<‹jÀÔ®]•Ï•úÌ3Çz÷wÚ…fnM 99pCE2p™‡“>¢[\¢†Ðˆ•Ë:z÷A·¨7ß„fÅÙo¾U&˜ tq"·$š‹‹æððð%K–”¿mŽš0‚Q°UDƒâÎáûîƒmÆ–ze´3g|êÖÅô(a&¬Z…FH B݇T1¡ü‡vä|V@¼xñn(§œ?ÊÐ ï{ûíÜ”õDäÍÀܹM›Ú¶Å…¸ºBØŠFËy*õÅÏŽŽNû÷_(%®Y»`Á©iÓð†¾ÖåÀÀ¼ÔT•wÙ`–"(( ^Ív 9** ‹Ò8>|8(((Ð\¨d.BQ5†„„øøøL™2Å.4Ÿ|ã ˆ›À-YUaÿŽ´oŸJh†&ìbܲe~-[˜³œ~çÿ¶mQ 80ôÙg¹_ ÇăüXÿþÐV3AÙ^ÛÌx3^šú·jµŸéYAqЫZ5Ü*r˜&o܉DxÓÀÎ}÷~bfÍJZ»6~ùr<“ Ÿ~~ûvC©û²³Xtؼ¸%K3Ë}zöl/wwüú¹‹> “xñbß[oU0]­šm¦aòÒ29™ÿºŽ”5¾Òú4 iŸ¥¾¼¨2¯¬êé%ì1r8Û= 3Æÿ®»ÄY`p—.>Íš)ÏFB„Ûà”€'aµj04BØÐ¡À±ÂŽ&N<üÀ&çôùóû‡Æ/¾i˜“s°iÓC†bÝöÍÍ^9ˆ„CÏØ·IXýÌ#GÈÞ40µñ;^%öž8Ó°½C®Lý͈{„£L7𡇂{ ¯%d×Lþæzõ(*™q¤2Àò ´4/þúîÐ!öøˆ[ÇÀiÍÐ\À²Š(ùr¸þ±¶Y¥8; ß[ ¤ÿp.=ÊÏ4* ÍÅ rÒ_ ߦ\ʿի1*`ZÙ`¢)?þH|Þèf‡tëÖ¯æ^ 3a¦ýêéÓáC†@Ê«†¹LuørppÚÿ˜ºðžÆÖbTdî•mƒeÞ±2o–L£˜†6ø¸ÌW¶­¬ÍÚ˜–®‹s饠¿¦zYØRl1m+Û…îˆXÙ–L£2ÛfU é[x3èÆÐ‘gGžƒƒë´²subèØ®$S<ûg²÷DÚæÊc›u÷ž¨×5}´ûodïIFëËÕÇB³ŒÖ—h®ThæYBtˆˆiDtÓ‘èf'±–”ÄZÖ{óžÐPøÍ’7Ë]®’7W:ÛŒ2vìØ™3gB½ºƒï³Â+ü%/Úvñ¥¶QÕ_5¸ªÅÆ…tÇÁ=ã‡eôèÑF©Ü%™5Â<'''Ÿg%%%Euä%…•óV ·øÝl\¨8çRÁg³PÕ÷#Ñ\µ˜†X±ö„8Ó°öc*™FÕbÆ* ª(msU±ÍUD¿YÚæÊo› ¤~s•·ÍÿFM¼-i8¸IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtextfragment-split.png0000644000076500000240000004327512536324515023473 0ustar philstaff00000000000000‰PNG  IHDR@/DbF„IDATx^ìY[J+Aã€+È¿þd/®À%¸„¬AÜîÁD!‰ $ú%D"’@ä~¨HB>â=Ü‚ÃÐEœ" ™óÑT×Ô««ª;J%ßßßóùÜVÀh·¤II‚|Ï´†÷kkÌ9Â)à%=í¯Ã‰ tµsðI'\Ÿ. Ï ‚UȈ*p«Ü2ÔÒ«AçߥN=’BÒsDH"-!üª+ï cŠÖÒ7EÄæùºWµñ¼mãU_U_$M„á™b+j$>‰’¯¯/l°æ2ØFdz".æ9Au[…µ@Œ|qLB’ü˜Y¯"Üù˜cDŒþaÕŸU_,%_‰.VÌŽN{¤4ùsnXDQ•I$ß—IdÈuMˆØÍqꯂ rµQ‰¦N$J·.¨ÿ$bËÛr?|`¢O´w}=KI(P @¥`¿µµåÿÉÂïŒmA`%‘lx^œ‰ú¿ðX èw©ÍÑâF˜1´æ¡˜5X²ž`ð¤r) Hý5À mL^ 2Ó4]ð}1õ¬Ó¼iÒ²Á8ÝÙ— °T*gçWÇ_ÈWÖÑâF˜±`kœíím#–‘OÝ0t§UŒ`õc÷Åa#À$ˆö+ ŒÄú5Ÿ¨Ìf³«««F£Ñl6±Öëu£‹‹‹?ÿ&FÔÝœ ùh4º¼¼|{{£ú²'äTlµZÆ\Þ„k·Û½½½µmÞ 9×»»»v» âõõ3™LLååå¥V« “„£ëëk*®Ñ„œôçç'.O´vr®~òñññÓ醌 ÿ΄\tÂ@0ÎæÊMÈÙ6™+2!g9!·.é÷û;;;‰Cš¦XOOOÏÎÎ@ŒÇc¿¿¿CËÏsÀdKq% ˆ§¤Óé˜p(hÈZxzzêõzTÏÊg­1¼€ŸuˆÈ –Í››œ?ö azŒùýï 9㱺”Ë壣#ó‹ÇO°Õûùùùáá.Ä)¸5›~Ð Ë0xxx¸··‚2"->áÓ麕JÄùù92†Z[kíïïc{||ŒmµZ½»»‹.bG#UJgöñ¸#:òÁ{•ápxÏð|Aí œâääÄJxõÆJMÈIø7"ëÚç2¸È mBŽ­ æªMÈiÇžAôƒqVaBîÆ˜þc&-Uxa¯éVâ&HqB\¹¸;Q4ñ®AüŠÃÆ@‚ÃF—‚càJ…P Ú bR†Y¤DÙ8üÿ?xàápνµô..ï=÷=ÏyÇáE?õqss“±qqq‘¬˜˜˜ ó·¶¶ ú‘‘.V$ Ì.+i¥sû ñ]‚ÁyccZ¹¤u2i½°„ÊäöööêêjmÏZ#4ç­8#ñ¬ˆÓ&<4êLÍ*¬áì`üôÜ4bBQ£ŸÑýüü(ó3//¯¿¿_b÷ööÒHÜ9ì~ÄCÁÔþ0ìïïïííÙni ˜¦S‰OÆ5§B·¶¶Ú;öÈôô4Ö“ùöôôØ&‚bFá Ù-lr¨­ªJǃÞ u43ײ¥¥â¶¹¹¹¶¶Ö"™ßþÅ,Mâéúµ´´äÎÁJ¤»¬M4ÂCçN'08Ëf8‚´Š,y¹¯UȦZ†"ÝÝÝ\gggÇÇÇqPEE…¬ukêEEEÃÃÃj0Z´=Y‘+Cœ(A¢Eãx£O!ì ¸ˆÏÍÍA,,,”–– ¹««‹©×¾æ;B3a:÷;˜åÿ·jÕü©Ž’¿££#“ÉPù7×Þ¬ë^Ly´T`ã¤Â+\GGGkjj²§‰é´sN(äðÿÌÝwÐ.E±p³÷’ ‚ *&D’€DQÔ‹ä ƒ ˆdIŠ ¨€ ^0Á ’0`ÂP1g1#æì¯xªžzk¶¾S§(«8ûÇWûîÎÎôôt?ýtÏî9ŒéÚk¯ ˆ'ÚŸvÚi /¼ðÕW_½ÔRKeçöÌ3Ϭ?ó|+šÝVuñÅwEÏâ)÷¾ã8ì°Ã3vØa‡ÄBa"Ì%—\²üòË«ÆdzLdñÅ÷s·ÝvKË¥—^úæ›oî< »'œpB6i¬óN“ðºëŽVX᪫®ª©mµÕV¤äK.¹¤[í¶þªÜ¥\éN:Ùb‹-„Éô:ñ “JqO5ÆÅ…`\ïθgŸ}¶YpTçaR´*â:Yc5®»î:]m¾ùænYNj±.Ü#jßf›mŽ;î¸èa‘EA’ácf6J \Ì~.yá…n¿ýö‘ß¿ýöÛ‡˜ä/ì`ÓYq'²Ï>ûä‘õÖ[/À: ~¦°ì²Ë¦™5EðŽë¦€ dFnQýÚu×]7ZZsÍ5ƒïÌl¥•VŠäƽ馛ª"ª¸þúëÝÚxã]a›l²IÖ—=œwÞy]ßÕW_]çR$ñî'C¢)BÌRª-óÛ]U•5"û!$%XYÌÆ-]]pÁÎ97Þx#›Y˜\ãQѲLÙdK½µ Dœ`±Ì¬î銨ÈÉý…Rùhè¸å–[èŸö O–ÛB_~ùåzhAF¼dÒz޽±á+®¸B3n°¥*DÏçž{.ô/½ zðʳÎ: àÈL(½å…t®áV†nUœÅzw .·ÞzkGäo¿ã€¶V ÖetítƒçZJ2Ó‘º%Œ˜º{å•W}¨…²Xf£N“‹Co¼o¿ýöˈØ!ØÃ 7ÜåÓéƒ;BV`ÚãeLŽxª5èi‚7î‚® £eÆTuX¾þùç+ògjF!¼ÑA„öV¿5 Æ Ê4˜Ë®îdÎ7]\n¹åÔOàÔÎ;ïì'†: áU‘¿ôÒK-,vËl‡ÂËm·Ývúé§»uê©§¦¾ûî»ûÉ&àÅ!‡âüØcÍ´ML„ÒòÕ]wÝÕ¹hMV\qE…#½Uþˆ-{ÕÃH¹G}´óä³çœsŽó8À(*?ÀL0¦PÞ®ÏË.»LŸ0WØ‹¡—¤d›:à²ÓN;™;ˆñ‚Gi‘rq¶Œ+ swè\˜Ìù–[n©:/):Tp…<tPJ(°ÌnƒE]D>Æ,öÊ+¯lç@³ØtÓMurÍ5×d[lQ ±¸zTtÔQG51*›Ó3ÅFá¼ãØzë­Õ*Ï8ã ìµ×^}ÄQŠM{«®º*N œhÇfÁÎY6e¢‡Î/ºè"?í-´ÐB°XÏ!¼‹-¶ØZk­ÅØ ƒEÙ2·(9ªÐš»²ÑF-ºè¢<´Åü¸Y¤"¹@%nq-ÝÚvÛmÝ¢+•rø¿4e{l°®€k“ ð”ž)óˆ#ŽpÎl1è™—FWÕ-<ÀÏîsÈ¿ÑÉ=00Óq v´Î¹Ë.»°= *|ò”б DÀGBhÕÈÁÁ]±4ÁY øñ,¢‹¦@nüä Šþn¸á†© A É2%]ýõYKv¼Ð‚:HýsË@lÀ ‹üaù̬²Ê*Ì;ltÚöˆä[ÏÀž¹¿»üÂ@œˆÓ±7²é$åÂÌK,Á­ð$DðøãOÉA?¸H<ÊÙÿý]7˜u0Rr»í¶Ó9ëu^ü%€ö¡^¦Ÿä"¢*µ…ÖhÏnÕxcÞî®¶Újþ^Ÿ™¾)C¶öÚkã[¼)”×OJà§ÔuðÁc]$).-™7JêY N&°ñ)ÞAxÞÄqÂÀ2;7àߥ™ßoÈ›¨ièȪV’ˆÀw!lÄb ~J“8W(HûT-¨ L÷9øgø…s`W“e lÖô®H{衇>ñVW­V eëŒK;ÂC{c7Z&a "¼žCýöØcçaOð׉´ÞÒj•¡[Ð8ñÄSÐ`LN€BÇ•Š¹ÒrYJ “–0¢ŒÕ2âf .ž|òÉ ºÚ#qTb¨VY郱lü¢s^£.!·CÆ ßb‘NbôLÊ Ïg@\·@U¾WwF¶¸Â1DްTé<®ë`ÍÖ4çÒ”e–Yf×Ì×¢8‰ U±ø®Tnó7à6-­¸%³lTî\†-nJ ö¥ÌÅ[鼉Rr‡Ùñð0A×Qà¬1ѱXÅüŠÂø óñ¸ŒrAØç¦Á}«LWxµD3†JàÎEȧp,Ò'B4Al\·pI%]?餓RU@*t ßwK”푸ֈ"ÆCT¥ÄŽÖ>mÃ$r`TÁ%øú°’MKë’¸ÎqdCÏí5ö£ØIèl7_ñ ’pg^‹¤¾Q9o¦ÌªAðL¦Òét‹Âùf›mfF† HŠyt~íUõDëØzídï½÷2ÙjÌLŸJ‰ u˸…k©¡ÉjÏGŽ`¡Ó¥!IøðÃOâB` t.ΉМ4)ËyŸC´+z©G‰í†ôÇO¡…“‹î6I¬™¢„}I ytnÁŸ§,6ÌíR9°]¥ s‹$}{§1i¶fÇv=+ãiKt»yqjJÌËXȵ–!¶ˆƒð\îAšå©aŸÃÛS ÄÛ³‰‰H]ÍB›¥ô6Úkøq+Á†mÁGÏúIÕà5 _ã€Jå)}·Šül¢H't… ']Çü À%y’K1J=°ì’)=ûæ‘sÐìÀµãQÉ„ºimÍáÞòè\ÏV§‘Cø5;ï¶ Qãu‰pìÕŠÛÁßV®ÒœC`ŽöLå”SâÕdÍ@Y‰…thšI®àã"'¨ å±{m’(ÄðĉxMûÄt›™:d¯0"mÐþÍ Çý%‘JFàì*¢&«N½Ž'æâ!1ÙHâß ?Ð3ܳ)^ŰŸÀûüìsØW¸ó‡ó1W2¯ðwv†˜y>{¦Y«EYóžja Q³<%ü © Ö±Záé¿#:¦ßîfÇ’eô‹Å”\‚_\‚3e“}ÃM_>ž÷W9‚vJö='R"½[!ó2®®ðhçƒÆ’ãkŸ×rÌnÏ=÷”~¹ëйÎa’}ëgP{ÿVT3ržmNkÕ£IÍèŸHýì¨sŒÅÌ{‰çóË­zY©RÐ!†N¦“CTÃ^uèÉÜËøg…*òx¸z5kc’$?ûaZGéйՓáC?.m©1ZÖওYª1®‡Ky feRÕ®j.R%VÙRÄ£[DJ¸ÂNÍ%0\®;øT ¢–”e6:p Ìéñ d üÔÀI ßÇ8ÓF,‘j7aƒ$Ã÷¥Õç€Ý„n1,ItÕØøA桇4˜*pÚ¬ÃÍõ%‡ÅÏ£SnƒyÛ"ÇfÁRMR -&5è!â±<`ÚÕ aε õa}Â2ÛÇE”VÌ•!L­4|\eCÊȱÅ{¾]ÒÇ×psÄEkó!@èaöxì¨3H‰&nãÙ(2Øá›k)ç>×®Š;dÃÀ$ñ)¡Î†…¶^Š6²+‰Å*óЪ˹NÚmÛp^ì ãF,ôÃ,y} 5Ìz"Å"“è¥Y²:ø²àAÕÂ]oÓµ6zøâ”7TWñ œö.úÛöŒ9>;ËB`Z•ã<–Ùµ:׳ŒÉŽ þ)´}]iêÔš)¨^@Ö%œÀÓÀtç:µÆþéÅ´d´´-(¢tQõÑ~ S³ĦÁ¡Ñ¼Žjd¸XsZÚ³R¼â~D¸wܱþ3´O85 åø…õ+ØJãðd¯HüÕõ$h//GuÚíЕÄRµ¯Þ²Û,Œ[EK®`"yá²½9›ýŒzŸ[!DjˆR×ÊDõ¼‡V±scá­·ž ô”…{ƒú©Ð™=UŒ¯éVŒè¼3u´eç.ðˆ‘,Ãϸ„ŒÅ«µÃ锇ëà½åÊ”1D/Õ˜)¯ãÕj!Æ4ŒØóvÞ$ìˆ|êci ¦aw†ˆ*Ùª‘b›f­E9KQÈIûlµÂ²%ÊØœtM̶Ž,D¡Ÿ§ I×…¤*$ø²¿ÄbH #[và] ¦HSd0úñWE€+µRÃ!|ò'b,hÿ€G„Q4æƒP›C!%TäœYev«®â¤Ëj ¼‹!$ÝgÏö!sb£‚›(ùr@µÊ*g3µÍT„NI Ô”Ô0²-Ìè öfe¨ TB¨k?¹8µù€>/ö&…у*úGaÊÊüâž‚=ä1´Ÿr ÆCE!ŽogQ-HnŽ2~NXhR2=ÚU LVذ³ÍÒ2¨2”Rs¢ <³]ŸNp@ qš :‡ ‚.r†reç<îà˜R®R7çs ì¨S Ç4»BÓˆ§‡Xjµw'LR˜·ÈÚì¹Õs@miX$öa22bƒÄ.“À‹w€XÏß”>éÝ£>Í2z*ŒV´£'\¥Ú€io• X†=‹«Šd Û˾®§>®x5piàÌQü-‡¿ÞP‚#€@J¤s½zä¢YHl¢Òެ“£@†s±`n 1ƒ›(•$0uôÚY‡nØg= ÊÉÜ.a4°çF [H±­›íRfæ2WšØ)÷®wÐÞr¥t:¶Ý8ž,i°ôàÀÚU“så:íÜATp€Òâþ’Bö`F°£-9-ðR·456f¯¥°¸é¿}Nm•a;!­]å/(GUf(a°°ŽUl ïËLE„Œ2òê¡+Å4£ÔÇ>ÈÐaô/exlí@kò®QØ“©)ÕvÅë’Óí²‡ÛÍÝ~<¦ëžÌl²ã¼ò{´ƒ­ºkK_«òqwUêL“ZjZb{¶(böÌÛ )Ó²!ǤÅ:Fb ÊÑJ»'Þ„Ô†ð×p0ÁæAöØ…!„®‡Z ™«õxd-èËÀÕ†d?``PUÕÁr$r"»ˆÒ•²dsž0xƒ¢™ÁNöÞ]ÚyNÈŒ=3f,èòVï¶Ìg%œÍHV8‚ðƒs ®ðDÕ„gqyE3ìPÂʘ%à\פ0ª£U𬉍ü ù@C›©ðÖN¸2e¨œÏœïVõu Þ‹Ínaql~Û‰Áäɲˀ/¾À©Zì6í+‡¯»ÑFõ¢¼;›×®áo‹Úð7­ŒR@Ø ‚)1šì“S_£B¯ò;—-Z°4PgâÙ,âÀ…†ž}$y eu—Ø®ƒI ÔÃÇDùZEÁZ€L?È·™q“u˜ëé+1yXá8:ÔÌŠò½ Řˆ‰ Y­)GÉqæì÷оü¤¯ýà®×—8j† $ɳ·Ý4TuÝ»Ãì˜l¶»)?/5e¹a4„4B⛩egïŽ[úæ&»ˆL(¯Ä "DDÄ«<Ì ˆ§ñ¯o1AabD¶¬‚RyO¡¬/pgkÔ+q©’½<ÊÆ«;ë~`Døšù³pè0I\Ìk}ÛPtéJ)9 üâD߀ìö >Áá3Vmƒa„óÒF¿%â2}#ë.ùÿ9¢1t‘’6!dv)Ì%wûî N&µ±CbÕè*? L<šº²¿Ýc‹*yCúÈ#ÔOVj˜QºE ðE ÑÅòW…Êv5r@°ÃñsQ6Õ‰6ùü\!Ûìyy²îä &g7…ŒGý 0Ŭ¦2Ž6y¤"i/vš†]õ)ˆT&O#ÈIT+kã½+[Iú™=‹y5o¾O9x­zµ0h^0Ñ9i-ûg–^I?Žô{ûv(Ì´4ý0‡æìäaêi€ªVø, •ÆQ-³½ÿöÎ\7Š ö !B"4))SG~?áÌ"pf,ÇÈF"$pH‚Èq˜û¾øw~ésmÕl{¬ÝÀ­Ñ¨¦»Ž¿j«ÝrOw 8}Ä Ú+˜âO  kXÀª¼‘ÛBŸlC8î§;ç—øµ›jâ)F©;ÅmA¯ú¢soPrÇsüÙCìA…#®i7yü“Q¹O+nVºtƯ#ð /È«­˜cœSÐÜN÷4›Ž ã QleE¬U7KÇÞÿäÊÀæÜ0l;Xƒ¿hçV^õ•ĕֶz=lI°‘“,kt+^áx»WÏk2ÀK¤0È kdfµe¨5cNÙB3‚ø¥Wô¬¿Òl+ÝÍ_õD`c~;ˆäÿ[•Ke= BI<´BÓT•¨$C :öcºjÔÀÀ«J°qèa‚]5¤»1 %UŠ&€%=*‘¹†±öadc$¶ÿŠNॎ¡†xB 1Ix©Êù¡k(ÐCk['0RÂ$‚Ȥ„¡y\ÔH  M1%%=1þH;(q=ms<+—܆H©õ£/Šõð:1À”® =0 Ç<ÈFÁ˜`)ÆÔd°{­°f#ôr^³âÞƒìÖÔM¸7\K]€´„ ”Æñ'É·î{O‰&„5‹ I0þ f°™u²HÌ=B§Çxˆ·‡\=D´ onjQ±•1Äx6A-°"<éÑw )ïtu†nA5‰è/³©Õ<¢-« ¤ÌŒ!0¨X~á±Å®h›ZÀ Ë²ÄŽ(zt‡¨vu™&zŒéh®žR0x!X$SñÇî´GæD!à¹S_£ ç€Ãix—Q>Œ<¦A„Zs,‚OI;#aøªÐõßû®{kgdzöwôh=ă^ÄŒíÜä®»»öö<ÐöÈqörèžüÙï‹gŸ-ê;äpz2J“Àz‡ê©-Ïû;äÊf¡ÑŒ¤^ NheyϨkÂc:ñL·RC½ 5“+rŠ@?tóB¼ãѲI 0« 6JŒ0(É4V޽(F“³X´~T¥VOA˜¼Î°§Ã‹­d"ÿj\Å;®7ˆêHWC EeJ­Â_Í¡3YÇ}ø]²ûµ=hˆ"î·GG7··ú´®K¿lIr9gš4ü¨fm­[_ŸÚ†vÊï9ξCÎÔeš5a¿C^'0<¯ïÿcïLrãb(šN Þf•eN­ïáSx‘Ëø,¾ˆÏcdè$>üEðÁ ðˆhÈ‹S r—~•Z‹KòÚ®Gbj9O-áo|?š|š%¦á¼OƒŽæRú¤Z2m»óTEùDFt)kJ?¹.vEŸ”\26ÐûÉ„!(71‡åÂ1Æsq…/|©†¹½Ýn)÷}îl@ÓàiáÅkmí÷?è¥^b¨mÓÚD[¼NUúsV‚U{¯¸‡»½ ò|®ŒêÇhN××Åp7›.!‰|E¹bÒ×Þ_«µ]â–h‡i÷/>|‘XMë ¥oÿŠJù˜]SA{a­èتÀœÔQ†[¾L—ß4*°¦¸Î(„mÙòa51½wΙðet§ç^îõµŽ„6VAo7ñ.ÝÛyÔ]ui³{õµÂ>6t„D&æIä`¬ÚäêJ*1ÒTªúÈw½YÖ:Õ­››Óýý6c«ÿðÉ¡bb¿°‚®#‡+zÏ9Í¢sŽCËr^) \ à Îy¹“Ð; -¤Aoáô¹> E!5'GµiõBõÙ$yâœ.ß‘µà6ÍÑ„svAyîn_Bªa’ΠԄ’ØS¡s/©iXæ+ƒØYl7ö MÂ@"1Pqš¬’û¢Ì ž[É âkæ«MÞu‹ÿ.è ƒv8ìéØðcãXç8Ö9f‹¹Žÿ¹Î¡£™óùÞ x¬s„†½ÍuÍ_kÃhÕŽTœ J‚´qV3Z5@ ï²’\¤{öáS‘+O¡˜™ƒB­²ZÇI¤©œÅ4ó|ÉÄÕ7øFtÞ&D«œp~Ä¢U’­r\7#!nN`ÇÀ»&DŒ{ZÁ]ØÑ*×ÈúDÀ:IÜ£W­%L´Ê­$cKFw´aƒñÓÒ&¬ç@DðˆVmERÐI!`k)Ðû@«´ê@«þ±wn»Ã0LSÇÿÿ»½ìŃ ÔŽ]k$íÌC °.eR ê(Ô}5=ÏC¡²k€ 1v;øà¶ƒ@fï“~Y!»¶ƒ@9ol¥9á]H8íšy6 y ¦ã}§¾@ôY`þÇéí©c¡¾ïkq˜Žª½[-©¸* àè—á\cBÉ À“±CÎE1פ0Ž7®ZàÝ ÎR_|^¬±NûðùÝ9çŒÁr¬."'çYv«Ü­r·êkŠœˆˆÈ¹Y‘qߪ:À“ÚÀ˜éóòWùcIáÛùùÂêkoì©°Åtà„st¡GÇ-" þ‹ÐÙž‡Ø!-"úä¦ ÞaêxѹÿÄ·ÉÚ}„-᡺ðkÄx|÷‘^sˆˆˆ¨««««««‹ˆˆ ¹ˆˆøŸCDD<[åÙ*ÏVy¶Ê³Už­òlÕ©«m¹1ŸE?¯Ô•?Y!O6bF× LÓTãu%˽"õÓÔmˆ‹Ÿa7¦ž_bÈ›œŽ¡§(I8ˆôÇ;ß.A­èùÊm éÝwÎmþw;‰‡yžkín#*Ëår©ÁMo²w÷b«Ô¥@IoÙCŒÓ4•ÏX¾"É»v—ƾ ¼»°eJÅÚ^ÿ+[ÿK!•B%_¸$ë+ÅÂBD•EÄ&>š(EB„jY’Q¢î{?~|\î¤ð^wuOq™óšó™¹çÌL÷•n®¯¯çææR©ÔûÿÊÂÂÂÌÌ ª³³³ccc¹\®X,ÎÏÏÙâ¬-[ÅScee‘¯V«¼Ÿ&[¥µJ¥R2™ÜØØP¯wÙ*-zrr²¸¸¨‘ÿ7[E&GGGKKK êõ:ì ß‚æ°r¹<11±¿¿úþþ~}}½···¨>»l•èåååÃÃC ðe«œ®¥míi¶ÊåðZž­²ÕGÏVYü/ៀ ,psÄãñH$‹Å¢Ñh =222::Š›ãüüüôô4 ò»†xâuúYä‹FÆéNÎÎÒh4677ñ­‰œ±j¼öïj‘ÉdÒé´e.nàÃÜõº"+áçÒÀ¥-~ôŽC&ù|U$%Ðâ)û¬×)íª*{RÕ*)ôâ‡j¦§§Éùììluuª¡¿|ww‡/ÝC¼8µ.•ÂâŠ&‰âÂÓúÝàîîn(â\!'C«hÑâLäøþ>ì D­V ‡Ã•J4¾Èß××—H$UXÚàààÔÔÔÍÍÓ¢Ï LüÕÈÁ¦B.Y‘”¢_\\ìììHÔ’?'ʘK4›MZ/p!k¢ØÈÖÖ’§5HNd…]6F± m"4$­y[ƒPõê}ÄR/âé]¤+;Tn௠!(á‡k{GÁékµZ a`ÌÞÞh´àM€ÉÒòÁI&½®ËŠ'W6›å È),`™¨K¹rTzzz´ºŠNqcÆ™´Å£Í¢u§SÜÝÝ üÛÛÛä)Ìmyê:|¸ÃnÇ;OöB¡099¹¶¶F¨CCCã÷û)±ËËKŸÏ‡–ããcspJÛj P‹ ñ®(ÒÂcuÄbÅ à Ÿ£³³â hG0胃Jooo¿P‰ƒ‹¡[Hv›mÒððpGG‡õ¿\:•$Aà’¦ï"m}ð®®.8^Ü;U`w!ÚJòéc>õ;“å ·/¾×1‡$FiXhô(æ ‹ãiÌñ^]]1ž~!¿;£Ôß¼ÝWÐ&E`JZÉŠÄ 9(9î‚$ÉHŽ’I‚(bBÄ„bF’" "ˆ""LQ1 "ÉAE1ǧê­:ÕÕÍ~Ze±s15ÓÓÓ}úÄ÷œžïÿq0Urýõ×ÇýÅÒ”’mk§žzêu×]—×K¢b ðxúé§spyqÜ® Ü(¢ÛؤÔÞ€7ÝtSDè<}úôx ì»ï¼óÎGy¬Þl³ÍV\qÅ|0A®h(ǧªvá…ª{Ü}÷Ý­xôÑGy| ý¢‹.ºçž{j.^ì®»îz衇¨Ž²ÉYg%»ª©kp-f_b‰%ÐÕUWñ§Ê/.²ÌrO0õ¥—^ª¨uë­·jÉãß!n«K÷ß¿qBŒ[Õ0<·F„a”Êô48Ö©üxWÛsÏ=§ëà–\æž{î|¤ÖêåÜsÏõV¶¦_ï»ï>³x +.¸à‚K.¹Ä ág·êÇ\“ktºF20 ©#£J‹L¡nC®e-óÍ7_´âá‡F‰ndÚk®¹†c²ºe—]v«­¶zì±ÇB¼, 3ÕÊZ¡™÷Ž;î}V»DðÌ3Ï´vä ÒÓ¡J»q(vú#`Ÿ}öÌ,ß;Er‹ zâ•k¯½6rt6‚U Ñ€„Ø.Ùzé­wX`£Ž:* ã‘Î^<ãŒ3èpfOÿ@4ZtÎ9çP‰âäÌß!o¼ñÆ9çœS2r¶„]wÝÕª…%_~ùåEg¼­£È.”“0áœN[´Ä¥î»ï¾jæÉA©„6K±]œ}öÙ0;}3W;Z­Ec:Ô£J‘‹¤èµOÀà—¦M›tX+ªCaZ2¾ÛNí«}VÌcg›m6Yc†ÎŽ“m{K@q¸æ?Û™,šâOã÷.¾øâØcûbÄ7ˆ'Î9—8_’²È0׿Hëœ jçC9¤ì–ýs[•Q{ì±±ÆvXÅl:C|Ñü…Ûäqò NDûW\QàÎa¯Å-OJ‰3”)SxŠú‘ú^{íU4Sý- bí!¯(8ƒ§ø3uêT¢­¥±üÐßå‹.º¨§ô»F[k­µâ/Â"iY°ýöÛó³§uå•Wz4Ï<óÜ{ï½nO<ñD·óÏ?Q s»Á¸^gu\#o“M6qaKà²Ë.s±òÊ+{ºé¦›Öf,+0˜´Z8à}¸f"+ö®»îº7ê¢ÝJ-$ý‹/¾¸)Bm›.¨&Í>ûìY‚>x`¤à˜uÖYÁ‹’B >N9å”ÚZ_c5vÞygn:î^Ëí·ß®VÊ`Õ›o¾y˜¿ð #OO!Çø%/ÛKa2‡ŽÉ|ºFÊMsj™)p:¯²Ê*¨Ýÿý«‚‡Úñ'ô[¾Ô'K¨3f¢¶ÄjRpב/ž¨¹éSºÖ\»ëyç7úM¦«¥Ç|Í"šV»³’G3-çè¬^(bwåRiy¹üä…!²£³KG’ƼPK»ÞаÍ6Û(’³t¹u áꫯ.–¸ºN>ùd68ÎXê×N1!AI7˜`¡…Ê5d¶ôÒK·Ô:Æ\¨_lWQäÍð÷rÉDÜ /ÜJb6d°ñÆc °FÀtÒI…°r$À³g"Κ/V ûÄvÛm·P",µÔR. ;æ*ã ×¶Øb 9„R:T9è ƒŒ !,qpñ‰©e#ϵéìl·Ýv¨ÈQºÍ¡ Š·ÜrKÄg"¾‹íÀjÖ›ÎÔy€H}$ÂÕžp €’ÊG7,AúÈ5¸üè£Õ,Ê€ Ù˜ê²2óŠÐÅŠ!Í2&Êå¦ù.†™c;æèou¸ R ¦¶Ž‚` ¶èp•F5b;(€i1·çŸ>+€èg^ä· NåÅIÕªÿ5çPPjó4¹Möj…Ütðu:S>\œ­‘ ;ƒÔõÍ7ßì:>ï¼ó´D$VÂê(ä,×ȵÏQÕ°*Ë,¸à‚^7H(äcœÒR°‘1ÓøP.c¨ Bõ=’oÒÈ,¿­V±" £L­»°½\"SÓòB"µUS‘U`vÜ‚Z¹uoDˆä4œ`Ö¨¦Ï!¸¥ß®å+®ãÅ ž§”;‘C°ÉÓ¸f~¶HͶ|EŽÌh›Gð[‚šYvëÐ^ÁXM©ÐÍb‹-&èÖš*S9_~§òƒwܱKúaWÎâýšk®éBýÊ[4¾À/Õÿƒº ‹“ »UM­t’"j¶ñb>øC D vە¤€~¶LWi²‰â7RsÞh£¨M9%* Là°šaX‰K;ì°ƒ8„r‡—@!1é–ú^j}Rè‡úq¶ :ŽÚ#2TqɼƒæÅKcЩvˆ¬Ñ[ ù¿þâ¡!è&Ö×5•k#­¸GBx-Nâ;I#Å+Ý'RÎèˆÙ8ÛïÍG\ΙŠjê9|7\ €0Zžð€œ*súÞâbân E*ˆ2†AöØcŠt‰h»ÿ­´V£Ô®Ú»#°p)´ˆXpÖÂmqTYõ®(e®Z¾´ÉÙºxó@¹* Ô¬[–äÚº¥§î#1F«sfåuËí¸ Ó-€—n܈…X#T®3ÏKµ”é84Y”%K›äµ$ÈCúØDäjxâö¢Ø–âGn"$ÄxÊ–1ÙŠ“–€Ïb¶µ[ ¶S!kɘX„ ¤„¦FI¼¼n̯°"n^nÙµh²Àm º¼±¢sÓ‚…3|Îi§& Á#4[‹Ïé9Æ5‰…UDiµe–8ôœK&œëÛ2goEõ6!YT¯$˜cŸÕ¦OŽ¢#×I؉„Uç-šG8ñÌÈõàrÂ{÷îø_ýV±Úѹ¤³aUŒ D3x› ùtµób(ÿÕÍÒN¤Ì8×\s™Åª9i¤øžnLŽ^²ð!¯§ô$%] ðÒ€/‚y AŒüïÖ>ž#‘yÙ¼ÈÙ‰OÎÚÃÉ(÷„J^ãÔYu'‹ñÂ88“Ûôtî(Ÿ0H0bQ¥niTG€ƒµ8 3Œ§±—ëj¬Ûޱc#7ʨ”PÀdÂ¥3@LZ;5´ÈÂy½| Áb;va5ÂP­¢ìÂî §Ú¹®NÉz]MöФT¥#lÔv×uÑëiÇÞn¥qî<Wqˆ¢ÿÏÉõcDÈp.pšˆÈ|äO^ä•,\m€«•mÐ(Lãý­¨•²eòJ’á_Á=Š DÆg Á"rq&/BX{Qèºæ­FBÙo¿ýÒÉ%ýEuŽ·•˜•d1¶`FGÇ ÎÁ…< Êž ý¼í cE2Ÿ2¸Î–óä|%(J»=jµÃ£bª¨#)Ç5Ný¬5¬ 2¦ŒOðT…?Ÿ·p†4c͕ҫØF“ŽŸÀn‰$q/hVà òã”P.pRžvÚ‰‘ Å~|–'qnRa¹¬0ÁYðˆ¿¥ÏŠ`$E¢~xÛ*Û,‰Îã׺ãyüžºÑP<û!¹j¯ÁëÓéÙ±m BÉ#ôTOPÌÆ€2aI\!é"aŒ„åoKõQ‚¡zªùÐW•S6pG§gD•ZA£Av³t¿&f¾IK¶¼*Å£an‘ 0'|Ï÷c!Ìm±E¢Š ƒpZhÔ t@mB3#žwtŽÃ^ÚÌJéŸ =LäqÁ*( šCÕäYÆÆ°²`·¬+·‘š°Š€Qµf4Q}ø.ŠQ ´VW¶g'ÃJÛxë–ÁÝyL}jqˆßqà¸Ç*m¥„À›·N¥=¢ðw-¶Æä ¸ «h¹çªxZ*8쪩d¤JCdÒxó”VZÛé”°®GþO_×9¸8_mpP§©ÑÌ­Ãàü#ÆY,3§´ÈE\› æÜ2Öð®“G©~¨^@ÁZ Åê Ècþ¨cÝ9:ÖýŒ†°ø¾êÃê[‚]p#¯ªQ&C …%kL(†ûvƒ¿v%êdË?©¥yJ²LÌyüeX™I9nÉ™H# ÊððÐë‰Êwen†ÒRÄw?kùúñ¶þvƒUgÃ…q 2–Ú·ŸQEŒO“ËÝ…¬èý[¹#Ú-TÛ5Æõ˜ú`!¡)uLfàix×êàl¤ÞR— ?<²åu¡ReZ p)™FvX*Çeó_Ð H:ùŠðPŒdŒ¤våYª¨ <¤Üèp9YÞMx3cE² #×£6›qÛ=ƒœMNõ”Ô¤•ݧwã9ƒŠÔ¤ø7±„Wm£¡q7ê ÌU¼D§e$¸¨-lÛ"t(˜Á®éŒODÙOñÇÁÈÔÊæñ)'¤©±[ˆ²$%‘õW¾Nç“qª±ÈÁ×.ÔÙÈHÖîyA–Vkò³'ÇbÂÃ2Ù£6hx¸=Ê·~“멳W@iD 8ÂÎ ‰¸VR–ážp›·* Ï;D;2at)™ëªûk%Rå„ñ箤s8ø%áÁr KF*¬,ÉÐB¦–Æç@H(cKؘ\xD’P­3n°}®Ìe<:ä‚GöºC¡À†*äoåÃ'‚°9¤ ­ˆA[°íOå[.øÂH ,Ò¬â­Î@€¡|ï€xŸÄJZ,íÈòK{É+•F&Ç¡€JTÊLXbÔÈmÔO<‹](+ssZŒ¬ G(ñ-ãKIi{g>ÈËÙ1¦ÆcFÖ]×Y²=%!&ø×BhݦÀ¾€}hÈÀi—Dy¡ÊV\Æìf £ žHvî-·¾¸õ¼N¬8FàÏkäÒù1À×y,¥¢!À LLÈ jÏ/xÂÑ bE“árµ(PaƒKh8.Ö”J¸b†G˜¦dDsl{Ä:Zžc¦žIÙXE ¶4ð?UD¡™„‚Ï àÚÇq:.±ël½`µœŒ¯±oKÜchÌ»ú;[Ã=þD&D M¿ÝЇ bÏcëg3ùÕ[±›ýs‘ÅhEŒã£Ó‡ÿò”ØHˆåsýÌ&‰yc˜FÛÿ´•ïÖwM25‘À[ª`HP¼k©ƒo‡"xy“$ø–¾qÙêq¿˜>½Í¶ôdŸ†µ~ù'îu¤ˆü¦:5ú5r¢©ãQ—ÊzQUty°é˜PD¹îÔçŽtÆÞ¤°*Ê2LžPL”»qº çÉKÀð.‰Ðf˜Âyf£¾\w[¹„ê—y­ˆJ›Ú¼>Ú×ÿCÛ™¬ÄDQØä ܸñ„¬|_À§°W>… œ²¸v!d£‚Á…Š+Q\8&3£IP3~ätŸ4÷Vý»þ?E §Î½UÔÐô¹¿ö¿ÊwÈ%D£ØÉÌв6Õu¬lÌ¡²ˆ4(MŠAJºù´Û«f×ß~ÑY Ý4Ü{Q _36ç8í¢l)ï옡„“:‰eŸ[”a‹|, 6Y)¬6¢f…Š*õ¥³y2dÏg„LÞ ™¹ÄP͵óT,’€!Ѝp²oC/5+„V3PõĦwrK©€ÒÈŠÊ†Šœ…ňó»AX.Ñ^p[R,d ì’Dˆ<•Ü!°Šõõ*5‘´…ûù\+9e#Y _‚¸QD¿€‰“%”‘^‡(É/ØH#ò`OâèÉòÍÍŠ™¶¢[„ŠXŽ€˜6•¥Y Ú åË@šÀ‡ “ƒ\(n Éçz*ba.¡“ió91@OR÷"‚0¶ ñâ¨‡ßØ´ØÚmˆpèΞN¤©©î8?Mÿ{p©ÃçÈL W5ˆR&±Ù(¼ç3È`ˆ¦tAC®”²½rttP®;H€Ò¡Ž·«xÜÖ«)#´ ÿb_^S(°A6D ‚én©8„Ó55¿ßnèøn((åg'ˆF* ­T ÄT°{m&Oö¶Ýëîâw2:Åaï‘S2CS°+¸B õž‡Ò28ïìÌÐ*n3k˜*ÍÞs…@Þ€aºJ÷ÆÁMNê"Šr§5+ç` ›Ç»w;GÀÌ{goº`‡b„ºŒ“yª´FÞ ’»[ÌÄ*Éõ…«›%Y5}LÑÌš—r<´b~NÈ´àÜ€²…»÷0ö‡ÞàšKºaIqº84µYÑ<¦ù+ ÿ¿06Wþ¼ù¨ÕB)Ëo°ûËÞõ»ØUaïõ½URX¬ […HXXX&$…Á"l“*… e ë•-m%im$F+µ3°’*ÈŠ¿ ‰úžßÞoùÞÇ|ÜóÞ‚‹»ðËÜ™9sfæœgæü¸ÌÚ0€‡ÒÛÃø™À|Ž©Ì¢ 2 Áº3›î$Õ ?ò© U÷ûE‘¢Æù4ÄÕÝÞüÍðo~ç6ßu¸ÕS•¾'3RCJQæUÊtZ^@6·‘^’ùrˆØäŸâyFÉqúŽIYª§ù“î• RÈB$S$! +Ž}U‘,–æPÂZî5AÆ{„0»A~¿»v ^El¼ðUéýÒÅÄ˽âG1Å“?£&ÔŠ:ËŸÄhÈy,O÷ábà™bä“2 ¹Qˆ>¦_\¿yó¥ÍÍÏîß¿~コ“ù]ÛÒÿB $Qa’øœN;ô¶ݽ‹)ƶìRqG¥™b#22!\6è3ÒÝ®‘0%XuQü»5Eª®ÕÂ.§ìV(¡q¤/*+Ž,Ò_H!b@Öiî¯ÕÎlw›C¼š|)æ&(Cîø4­üÅäFÉtó•zâ’,z!@~kæÈ×!ø › qoœ®q¤9Íœýi· hŒ½ðPåáCbÎï×dñDpàÖ­Ùp°|†W&mpíÌÎÌ1N÷}Žõ×d™::™ݻá÷|¸Dðsp@?¯¿&[®>ýþððçÃ3¿ôŸ|MÑØpöÛ Àí ¬¿&Û®B@7ß Ä“‘ÍEüš¬BO¬ÆcQi%O{þwåÚyŸ„âºløÅŽ£¾/ó}/>—œ‹-¦<3ŸiRˆÏ.‰—1(ÔÈMx”67‘ÝÄ–É9k“Œ½.È0â=îÀâM%aî›”4ç,•dŽ…²WH©íÓ?gðÈbF" É[ñ˜Ãc “Fa¤JŽ|ršÅKÂȇ…ª2ÄXdD•óª´ÐðÑ£g¶·‘ùÉýS<ãqFg ¤z$)œRj«–ǯ¢Î+hR/K­ï*&äЄ:àÜŸJÚØ¾zéÒ"ˆ6°ÚxŒ1“]Žü>S?ZØš"`ó ë#°¦“铳8Ï!c'™2viK¦¹4¾fuR~ã“0XÇÂ2ä—S®ni:3›nxU¶$%ñÇYÈÆ(Š7ýÐwËt¯æYº´.;ÚÒ5þ9CuñÜÝ•Ñ]‰å=¿Tñ ÒFC/ð­’í"®ƒ/qU#[ ņÜîòeØ"æy6jH2ôŽlÀ^K¯ D£½‹â3u—Ðe-q†>B =%d(`™þÔÈbt|ûv*e9OÓÆ~œ?o½/¤ì¦ðXölJHRþ úþ{ž †0Y ÇpÒ« †7vj³#Îè y㎑’ÊâíNQ’“UÜ„¬˜j‹!3½eCTÉ‘“xg.s²‰ÔS¥0'ÞÕÒ9]ܳ…œišr…+–Ò˜iEødA¤*ØNþà2m%>@‰ 1qn )áE%µ«Àf;ž‡Ô¾4Ü÷‚yñd"ž¬;ŠLMÄÓV59›%›n0v «Œ‘VâLM°Ä…½È(Ó)¯ÁT ‘' l¹hTŸôÛéÙÄ£P—bÈV ƒ"‰‰b\ÛxmwSeFGlmix¯^ÖÅo˸pÊçÙÆóö5ûñ½Uüñ?Á^R,Tb " —y H¾àÆOÕÕÊ ¼ìZ8QÌžäq ®¶„PCW#a0«VªM ¤ÃI­"Ö…¤¥ÆéVW@jÿ(MÔ^Ó¯XXã´]båÃâ ¨]/Rò»íÞÝáF™/~–b~b\Ž;-Hæ±t1á“briRƵÊVøzÆ{«ô,2ŸÕ…\‘º"›3k81Ÿ/«{Uø$-ÕÍá,Í.[ÞÐXŸfÝ, G ?ÉX9ÂÕ§l[,9X¼º#£¬49í{‘x’1å³èu¬]QSÈÒ˜c”Ù›X½!”æ«J£­v@£’šp1#GEÚžáQ¸:øn÷B²µ-Je=Øoí¾HוЭ‘ŸÓL o磬˺LþmÏŒq„aXàÿo†!ƒEm9 ƒoꀚ*%¶äòìmQU›Vµq ÇKžhB¡ZÔžVèÌù#µf°G:öͤ_ØAŠÄµÌ­¡KÒ~¸9õ½O«Ø­q*ÅÚØ­jµ,íUøsÏÛÿœoÖL‡ö0Ÿé¸¦ÂL¸C!„pOŒC=ÖÕIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtextframe-style.png0000644000076500000240000007135412536324515022766 0ustar philstaff00000000000000‰PNG  IHDRdéœ ÚÅr³IDATxÚí ¼çSùøgûž} Q**~ˆ4þ²TJ›%’¢²„(Ù³…ì¥DQÊ’,bì%•F")4ÊE”ÂÜù¿çóžûÜsÏg¹ß÷Žû½óù¾æuç³<Ÿ³<ç9ÏyÎsžeÔ¤â×ÓÓãßô7©÷W~;©ÿ/âoC™åëòÃò‡u|•mK;2` •ŸÔÝ6ô®®Ær åd}ÉЀØJພ–ÛP÷ù€ÅfEÕu¼îÃ2B*6 w%•vBÉÍ4™}UYN'ˆjè`cej¸m¾n ÝJÄŽš½È€+¯Ë…—«®lg ßa;à3àº_Ö€òmù¢ŒÛr«ª(ã¹rŒê0YÙŒNzW‰ð[[‡¢ÊöÔµªLQuוåds²üÊ…4ÐXÃØ5Ïš;Òø 5 ù÷¿ÿÛûï¿_È^xÛ &ùÐC I]¼}ê©§¸ýãÿÈõ¯~õ«ÿþ÷¿Üþö·¿ò/ù ×Ï=÷\ yß}÷ ù¿ÿýn 9qâD^ýë_ÿ¢§tùé§Ÿæöøƒ/¾ø"hºóÎ;|øá‡yõì³Ï ùü# ýë_äm·Ý–AþóŸÿäöÞ{ïRþý›ßüÈ¿þõ¯¼zæ™g„ä‚Û{î¹HdöBþíoãE0…sûûßÿ> i…ùÈ#ðŠæ I×’æÑÈ€|ôÑGyE—…]ÜÞ}÷ÝB‚"€|ì±Çxh†@’à4 ò…|üñÇyÅ Ä#$× hJ<$$Á-Ã]&3H(%`¸>…”̀ψ' ©E’Ìh-mN‰‡W´¶Lf`@È ^+É,%° $R’È 3‰‡‘Râad¤ÊÄÃè Ä$t’O ÄÃ'@B{B:Ð’´W™’™¢GªÂè“,øŒ{2jԨѣGó×1^e•U¸ÞvÛm¥æ1cÆpûÍo~“Û~ô££ŠŸYi¥•¸þä'?éØÏ2Ë,ÜžqÆÜn¾ùæËãv…VàöÓŸþ4×4ÚBÎ:ë,n?øÁr=묳Â5¸}ík_ËíÎ;ïÌ5D äøCnß÷¾÷q=Ûl³Áthÿ2Ë,Ãín»íÆ+:/äùçŸÏí»ßýn®gŸ}v&3Ý\rÉ%¹ÝsÏ=y5~üx!/¼ðBn7ÜpC®çœsN2Zl±Å¸Ý{ï½yuà 7y饗r»þúës=Ï<ó@ ×"‹,ÂíþûïÏ«k¯½VÈ+®¸‚ÛõÖ[ëùæ›’b Zh!n:è ^]uÕUBŽ7ŽÛ·¿ýí\/°À *À\p{Øa‡ñêòË/òúë¯çöÿþïÿ¸¦(ªfžÌ;ï¼Üy䑼úÉO~"äÍ7ßÌíÛÞö6®ió‡NÍ=÷ÜÜ{ì±¼¢ËBB:Ü®¶Új\/¾øâP0ô¸=ñÄyuÞyç ÉpûÆ7¾‘kÐåÀÇA,·'Ÿ|2¯~ðƒÉTáöõ¯=× †Äsê©§rËp é}Ýë^Ç5Ã-#–x¾ýíos I<ôòË/ÏíŠ+®(ƒ³3Ï<“Ûo}ë[)ñ,»ì²Ü®¼òʲ!Ï>ûln¿þõ¯K<¬mÏRK-Å-¤S€ß¹çžËíW¿úU®ç˜cVˆg‰%–àöÍo~3¯˜WB^pÁÜwÜq\Ï5×\ðˆgÑEåö­o}+¯n¹å!/¾øbn:ê¨ ¸Øk^ón×Xc”Ì.»ì2n?üp®çŸ~8gÁävíµ×æÕ5×\#ä•W^Éí!‡Â5,‰O¸]wÝuyõ³Ÿý,%³8€ë…^fë¤ÜŽ;–WT*$ó‚ÛØä’Œ$¦î÷¾÷=†!ˆIyF*ÁQHŠ!²|FHåP dH\óD–+Ry! eù•Ê Ê ¼•åC\Ã]XF’– )ËGÒÅAÈ,XF`¥²|d!eù.#Ê )#‡ ])¤òAHy@º8¸à(/B2€@–/¤ò•°’\[Håå:"dH@Ò¼H: •,\p”,@# TÉ’4*Y©dÁÐH!Y©d‘÷J)ñðW’±”[YL¤ÄCÉñ¤¢n­Íˆ‡[×¼ŒÌ€T0 É" %30#™«€”$€T^ÈÈ ü+†X ¤òBFfŒ¾A<@Ê432ƒ¢ C, He€C²(CºŠ+Y€ ³Ï>ûH¥±=É™}ƒw*S¨óhNÛ£Óöètæ9:•(4ÁGR>P­àlOCÚÓö4dæ< A,r/ÆÎKA·Õ NËj^[É¢•,ZÉb¤Jþ…A° SY«àd3†ŠK픬¨5Êj²Z£¬™Í(«|>]«àdÇÒê,ºT²ˆ'ðz5miʙي1’…G¶u#ÒJÝ®³@wÉ9'ýœÁ]â„b«­¶âHÂÏZÉ¢%‹:à†Vu.YÔW+YŒ ÉÂ…DãNvúé,ê,8›§}Ë,†-³PeÅ bΰ뮻zúõrñs1ÀhåôÓOÉQøPõÕ‘W Pxt¿ûî»KXe˜º.·Ìbø3 é„£ÓuÖYGÉB:é· Q^åTùè£ö>3ÿl·!ݲ q(5ÃdÆÅÁ‰5ßûÞ÷¦g^~×Á>|סT笥—^ÚëP§Ç·Íòv» éV¯ÓVg1R™Ö¨˜bç;J.6Úh£xèTÇ Ë Ÿ2Eª ,ˆâíÁ0|R¸ÈzŠ0Z‚5 ¨e]qÂQ¬šõ†´Ìb¤2‹µÖZk—]vaýW¥•$–×;í´Ó;ßùNŸ`}Œ¸våïz×»´Ddÿò¥/}i»í¶ÃÚ[Œwßô¦7au9ûŒú±öÃRöýï¿æ;ì°Ãi§öŽw¼‹l,ú´DÌÄÒ–YŒ(£,) ³YLñ5Èmœ]­³`†³aç©'ˆîp&ö[Þòno¼ñFâàƒÆžG|.ÐqðüÐCåùç?ÿy}[ЊÃ°Æ—D˜ëÀ;´é¦4œ>pØa÷Šƒ5fn­Î¢Up¶ÌbX3 œ¸.¹ä<Áð:“Yà†h€'>c:æáyû‘|ä#ûØÇt4R¦à‡ÅM¸†¯Œf'’Ì·@8‹¬4:Y…²³eݨàdý8ðÀõKêSpfG§ˆ¬lkõ*i%‹®føPžsÎ9Œ:v»ì/ôÙÅS°Ü|Q…êHªÏ.þ¸j@õLÕT+àë®»0|ðRÉP4ùá'Ú2‹k”•Yp"x@ !­ç؆xDºÜrË}ãß@ º[d ý¦ÙeàO½ýöÛŸtÒIè 8°õÖ[ó1á=ïyO0 ¶'ê/ù‹ƒ|3³ Fêm™E·K(ªPEé™]qt*2â«^½­‚³«œ¨ŒA<¢EÖM„ °å–[b€Ç…zÊ 6ØàŸø{íµÊK 4 „EüM݆à@¼}Æ!ã†ðûîw¿«B¤UpŽ@gÝ{¤2 Vx™…'\œ˜j>³P² ° qk¾ò•¯ hØd“MŒªÂvá‚ðˆ”kâÜÀöÛo?ô †°œ YÈ,,ˆŽ: %‹–Yt5³@WEÃvT3 ǘà•v5-³è.ßì¯Ôf3š_ûÚ× n¦¢Ûí ¿Ï}îsì2Øž0É/ºè";0Í$JÊ÷¿ÿý H‚ ¯C`0 ‚¡9æ˜cä&§œrŠTå6ÖŠZ£¬®¶³`ÐÙcæaõ2ŽÂ¨s꞉-³è^õr¯S§²j– Ð_‹ß—¿üe 7ê&[ëHÖZp¶Ì¢+% C¶ùðÅâד8Œú\vØk;âÞF!œ¼¦qÇw„k@ iQ‘ ( o%‹î݆°H äŠSÑœY8Þœ´}êSŸ2Žfë2‚ƒßTž•sAL.bR¢ÝØb‹-àÆq°G­d1Â-8[£¬‘qtÚ3xÁoâ«É¥@j ®;mN»èè™bã76H­×) s”áF©n%‹,Y Ø»TµÁ΂SþÆö¤­dÑê,Zf1s1‹Ém Ι’Y(4àƹ»ÉúNCZ ÎvR÷mƒ³u$«v$“£àÁÎYºep²¨û!©àâ¯ÿâzÊ…×°'Ázaúþõ¾êIJèIKHdþN*µa’…—kLþMê—4¬¯Si7«à'•»–”Ÿ.LR…åÄ¿~­­BK?àþð9’{›7i ì¥8Œv–(+ª‚jš4µÁU%Lê_TF““ |ßó Û d_g³Ñ¯Â[Šü~uE ý{—¶¤ßó„{’®MªÂXÔÕo\FŒ×i–‹µÝ†´Ûv2ˆÛìTkPœø›bt§}M­‚“œ€dÜ4ëÙ è,zŠºŸ¾êª_¯½ö„w¿›w½ç=þ½Ë¿Üÿâú®ä6ý7!à{/òW”Ÿ=“'”ÁІM¨y{W©Ì»J è«®Ô©(9¦VäWÞFEí}ŸôBN(u6ÚÜמþø™Ð¿ê¾®Õ4>&”Þ<41¦õ%GGbŒ*zQj[¿AIz×ïaÿN-$ÅpÿOú58íN˜ ýa2LöU×Û† Ø„r/ÒfÄ(¤‡^lôýËÀ2ó3‹ù5eºõ^w«‚sRa¢óÈ™g’øú1cÆu5 Zûÿ»ºÿu ž_]õp\ÿ¿ußvVyÝÖðöêørG*ûÕI/®®GË4•\×’«ÂXÃÐ4;®³W÷ï츪Ž_ÝÞÊ`W× z]—ȯ<(㪊ººZººcjô!sŠ™õH‘zRîð*894ÅÏÐlĹN"žïꫯn6×Á‘,Š-УgEfñ›fŸý×k®ùÛ 6¸sìØßŽ{çúëÿ¶øwgÿëø;õŸ×À¤û¿Í^ÝYN‹µöüóìI¹¢šÂ£ñwú¯÷Õum+õîÎÊ**’ÖÞÙûï·%´ô5)šÚ{qg']‹.ô^[`üíë`ÍðU–œ âѵôóROïL/ÒÁŠî§ã[EQK_SÓqÉúÛ[H¿ëò¨õö¥ßso«¨±¾ ½}˜‰>–ûÞ€¦üÝ`fsŠ™Åüš2Ýz£¨v«×iOÁí“YÌ2Ë¿‹ N*/µ:‹VgÑê,¦Ugá b61§˜YÉ,C²Yš€pª™Ð{¢ù$ g9cÕ`1‹ç‹ê‘— Ò2E»ë…ç&j\ú?fªz9{_õ¿-ÿ›Ô[ѤRu“Ê…gåÇ%)ª_ ñ¶_úõ.ƒ÷y¹ühdRc¿‹PÎXèÆÓÒcY³³Æ§é'½Íë×—Pˆ•Pݯ UÑ÷U©µ}GÙWýQ‘5&žd-Œr&¥ ‹Ï+1L©‘“ªˆjR 9é“ Éù`…D_z+J!û^¥h)¦³iЙEO}ÎãÜÎb„ Ä8 ‡ò`ÙYØ«GÏóÌ3–IÅüãø&ÉR‰ Í„Îñ9ÉÖ óÏW_ÿú×IYÆCR—®A@p"5’(€`æS}ôÑ$C# oÉ`äÂã«V²\É‚Ù4õ4¤,& µ‚s¨½NÛ£Ó)YÀ,H8r§Z 94¹&%2;fòADwsŽá\ȾŽ@æt6,|³€8Ü’lçìå÷ÂÉEŠø…ÄD^u˜¥‘O ¶'äáú¨£ŽúÌg>³ÔRKa³3nÜ8·-­dÑG§2 üMÉb§~*`rç}÷ÝÇâ“%iu]!Y MÌ7ß|$1ßgŸ}˜ÀˆÜ’Ö”çȸüÄr.¾øbfòä"­)icû°ÓN;Í:ë¬\Qnâs’)Y|Œlé“{&_zé¥H²ã?ž òªžY.¿#<cü*ܶ’E«àl™Å°`èÞð†7°¡ Ý1)IDH6 X ˜·H_üâ‘&˜ö<•rÈ!*Gù{ÕUWQ×ÈäŠçlmØkpAD%‹Ûn»ŒdlXäÈlUØÑ nptb{L}xà 7´Ì¢ëœ8”’›Œ§Õ N™ñ,Ö[o½ˆgÑ*8»t’f qd·Ýv[Ò wì¿ÿþŸýìgM’ ³`’û­§!(8C;nºé¦x~ÖYgÉ\`æ ¹å–[8yá­UÃ,ÈKÆá¼Ù’#aÌ‚\Êí6d„(8g˜Î¢e3æ4Äí3ÖxÜ‹°ï˜wÞyø9Ñm†7ì8BÇqÄG e˜\äIE™Ü›<}óÍ7G`á£d‡‰‘­zÝu×%C"'mPX¤2DNáöÆol™E×1 Ra£Ÿº§˜­µ18¡-òH:ƒƒ³e3X²àxÜqÆ3” hذ+ášDÇXaðüÊ+¯d>“ …Ô“‹äÉ<'%*üå /äzÍ5×l,`h(ä2cÇŽå4 –6¤e#Ù‘Ì}¦š°Ö‘¬»˜,žíÀ9眓3}Ëñ# /àèÍ×[o½5Ï;ì0ŸÏ?ÿüäCÖ€Að-úQŸcßÅ·‚ü‘|Û ½“9=¡Æ(\½&úsØÊèÑ£Ñz  ¡Œ>[fÑE§!¡”ppÓŽ´^§#Yô4æXp>3]1Ž@­ ÍýXé¹€0Ãy®¹^ÚBT•Þ% SH–2$.ˆB2:ÿ1@>õÔS¼ÂFKHÝÒRH|ORH–2‡OŸ|¹å¯^*<çÖ县|%$å¤ÔâðiFÉBÒ* ©—W´A!%údDç`’WàªLf`HFV½ÔKöu³i8˜{‡Ð@4û^›E"&HÎG§Ñ«6ÚhTñ;÷Üs¹Å¯–k¼¡8¦ý¸Kq»Ç{èU-äücC6p=çœsÂJ˜Z$kãŸn^aS$¤]úÄ5‘c˜¢&TÜî»ï¾¼Â¥RH‹q‹[׸lA  6pz^ðŠ0B^U$¼Æ™‚k,¬Ÿ)~ .¸ ·‡zhøkð»öÚk¹]k­µ¸ŽÀ Áþš[<¾xuÙe— ©‡èk¬Áµ.4Sn±ìÖ‘LHÀ ?Á5¡ãt®¹æâV´ .¸@ÈÛo¿Û7¿ùÍ\ƒ‰(&Üâ3Æ+.¤j0ápm¸L_un  b|-!™6ÜâíÎõrË-'ã ‚·§v·€ © ¾L\ãc"ùbÊíw¾ónñ[á_¦4·„åVWZx¢… [â÷p‹Ì”[C“êgT~ÚÈŸ|òÉæ­¦"ÜO\!ô£q‹k¯Äé,Ûvn±£Õ ?}ü=öX® ËsªÕŸ£Ó`xC0 W…+c7¸àÐg|dùÌI&ÓÛ%Þ/¤6ðŒ1“Sz÷' ]B!q qrRSÖ qÐraD6RÉö$3ÇÕõ†âç™R>SWÉ‚ ¼€.ŒBR”ò‚†_§RÀh€ËC+¤RÍR»:Â+ ]î@·tHº/$¼À•PHe%‚ë ©ºè ¾ð#^…:œéÄ­‡îé AbR HH™| Ö ¤Òò׆aõŽ‚%#®0Êò/G¬Hƒ²sfAÐ7¤‰ô€§ÕY´:‹á£³ˆ >T ­¦ õðdÓ`”•zgg° þW§½Ïn›õüá1Ñž†´§!ƒrbÀ‡¡`CwBûBÓ 2#?¬^ehŸ†Å¤¬Up‘©[Û;³ÊZ* ¨‡³d1¹&·Ð+—,bö˯D²(WQ9‚ b΀’…%³4hXƒ¸4|tl©Ðde§¢¹‚“-*·…]¡àÜj«­vÙe—tR7¯êÚY3¹*¡V'3¡Á›«“òÛmH{t:Lœ]V/ü¬9Pg¡'B  ¦ÍóK8%ÊË`(•®Üª á¦Àƒ¦HÇT#$uʬ; jx1×U:–OÎT ªdºê‚Y¤-)ƒ•Û™º“vVÙ…ÌLµŸ:àrá O*ëJQÄ@¨Á­Äaó‰cÝ1dŠÏ¬ŠÊ–TšÛ7#'ÝÒRò@èÓˆü0ÌNѵïºë®ê¼ûŽN³¨î‰†ç«ÃÖ7$(‰ƒÉcŽ9¦lâÌG_m¸®Q˜«W5“‡ðôš£TèÀC÷ibØ:®ZŽ>¦¶Üd<™wÙ éÔ“”òÈÙ¥¼t}(#¼²%•.ç¶¼¬Áý$šÊΜSÏ&2°T ÏÄÕ†ºâ Œ>=ðonp%Ê3:ªH7#G$èÅ<©á­¼s¬CNü5²!K [Ýcú†ô4„Õy:‹žÞ$œ«Å<”š9hd%g­æ"KðË#œÂE ï ~žpÀæ©›cê«x‚¨‚n5Êát‡©Â†8oƒ°"$ „–høKHò •Ê$þòy¤¤@«€º`|Ùl´@ çmÄàWÐ7ç¯,›)¤¡%èðtÙþrK¿8bäa”Ï+ZËS´¼¥4$3™‚DÎ}i$˜ñ@-ET”Ã+`8t‹\ôšEŒº"Z?j±ÙÈz?‹j82ÅzÄëˆS,¨ö€Û@³¥<ôPÖêè¸Ï,« "ÓnÆ!"Ë µðÁ¢=å[;M¢ÀèTÆt0Ì!jáðWpF¨Š/|á žgw½×iˆ ­ÂR®§$ñP³E†Ÿ3s¤†t·Â“TÖ°û&´âôÐÌAÞ'¢(Xˆo^ü^ YJCx¡Xˆ‰s{P¹„'ößBv|·ÀCg0/‰j N­Di;…0u1U¢Iék“x§ R- ÒþÒ<æßò6 7h £µÚ>ÑAÞ‚Iê¢"ùUƒCpË1Lá´œ¯´FÉä8í5h<`ÔË5Ï)Š’)–ÂÆ„³6¸M¢mNuF<ð!_9iA,œZþ˜v%°çŽâG™|H±TÍ$òSÉz­ ÈÇÎÍÁí ŠÒh'ȧk àÄN¾â E”rø Ö6€ Y#¬Å =âä„[w³/òHð:etAŠ„;ÌÉÂ(k³Í6Ëì,˜¥a€”JžR?cì$ÉÄŠtÇa!î ×(&›‘ÓRö*U…×ТaøAº ·LÊqÊYàŠ5†q)”ÎvÚDdÅœð†Ž½–¦K·‘…ŒYDGxY+­@Ö® н¶hÌ{ízmV1àÁª¹ÊëøgÞjæöŠžÂ œ]"ŸYJ7A”É4Ó€äGw˜rt\¹hƒ7*•YD¿èT¬´Íeß}ŸÛIº—·wŒµ%P©¶mTáæŽnÚ<8#„A±Qe(k>TÏÇ(ø–¯Ò3vZ¦;Fu”L{²¸a­çŒf•FY,#ŒtºÇ6>È24IÝ—Æ'r§nLžÈk™êПPdÍüQF,&!‹$d ±B‹LBW<&°¥2©–Ö2')ßIAgFi6Êø1ÊÛèUZâŠWTêºçFÆÕž6èPC¥ ;tÓõÐÆÓ*Ä.ZNí´‡>rÍW4Ux®ií?{\3´¥yÁ¹D)oÅRNlg¨ˆžÂMw™C@ÉY¯SÉBfÁ“ Žº¨½™Yt‹QÖLVc†\Êté3À!)ć,q˜ú;‡ZèUEU5‡¼ˆ Z !‚©(cjƒRyô­Ü„…‹Å4#@dzgÈ_Â7$l]T©Ž–Èät{ÝÍEl4 û ×؆P]Œ,·º½ø$$ç_? Q%ÁŒÕÃE~ÄTTg!X%Yƒ7+äMtk:H³Ã°‡AHqW:ƒkÉ´Ó]Œ ‚ÙˆoE¶ aŶðPg#݆ÈaaU¸íÙ$†Œr>iÃ5SU·#E!ê{â’I3¤œè>È O•Ù®².*eÛ?‡’ºÕu…oãB&íÌ¡47Êé[l±…¸£¬¡ó ±ÁdîÔ±2NƒC8WݨòŒavPÝp…Ê;!YKf{(®T êFM!ˆ&o¹UéC订ÇIKšs Ä-)3U‚¦!ÇЀvÊ,1ùYÕR  Þ—ì9«)“‰Ç_h=¬6BqÈ+ÚÉ+è›oe JÑ=ÇCv™'ÓTµ° 7 ‡ÓQª8¬¢*8T·ÇàœétÃCvMO‘2G‡éÎ?J†ÜŸ*~”¬—·³xDt›Ã[ŠeÉÛìäÞgu–éy[Ý!¶üEª­³,¶Š-[…òŠÆ¸2S‘ó$ô£°!Ú @ä1çÝq#Æ_Þ2‹´.ɺÉ>|±—ë FÒkB!N³PY·´_ʃûéKÔ¬‹ÒìÃT›Ûl’kùv!]Õ˧ѵtÓ—.3i¯ÝvÅqlzR›6¸Am)¡žqƺö¢d1t Nx=Ga{’ŠbPov‘Ü\§ƒ~t: g¥=o¹W /Í ´ _É ÊFAqºÉôvAÎ#+dêÌ®Ê]+Û•›Ÿ°©¾Ùtª“¡)·³á \Wå‡FBn¶õ*‡ n(¹®ºa­4îœ)Œ² ⮾+¼NÙRÆÑF¹ a²ëV˲_]h£çIÍEw_P­Õ-€ †•™ed%×céKmÉ+Ù&ç±< 8“|çê0\9 ü¨R.h–,šM9+™T'xn¶í„v‚3ÄU„ÍT¨ù^§ÓÏ¢œç¢Îw¨¸²äÌ©±ÙKµsG²´ ~“ÍËcƒ+T³ÿU³·n] ¯Ä‘l(¼Ng@<‹òœV]agÁ¾˜(dÙ©è¨rTßo~ó›±]þ:‹~ðƒ;ì°C׿IgreÚ®WèuZǤ*[^)juâuÚ‰7wëu:r¼NGª‚3Ý’ÕI¤=½)?Q(±Âr¼ŒñÔËP YXÎW¡H‘è4@jØTºQVJøi›ùë.,­"ƒ¡g„¹49€Uh9¡éä$7jåF:5c䲇…¼8o ñ5J¨D{³¤ Ë>)£·ü0û¶¾ì?:’…„Š«ÅöÛoß-¾!L„ýöÛ/ U‘{r´É&›x4Ý^§„®UɜƹjØ Vj³DóM «ºV¥Ø„³¤ŽuZƒØÜÅ‘uez®f kCüžhÁDµŠô`5<)2£&m¨Ã2­N—ÁüO”ËúÁàzOÀ@A ǬK@Hš«¤L§Aé[×M—³ÌP¬4{ÍÖé,Êðeej¥Nñ•d$k½N»Àë”S4Ž V)ì_Å/ Ÿ= ãèƒ+`¼eó¥Õ K´Ø`\Y“c}ÆÚB Ng?M3Ã)Óâà4`‡aIÉ”¦4-4ߤ–Œ£##0Ó¨âÅâç!n8h8ýØ'Ú/Ïð(Ó Ã-GçŽý=Oåx‹ÚµO׊A/ {ˆÊޓ鿴Üç•gÞ«BB3™¯ 5R-Ÿ¼µ¢´äíÏ¿pêµ:`¬ÎcË ïŸG° ŠòéfœO{¼ w’Þé*bQjp?Î[0IE@jë•ìI|ðç>÷¹átöVøÈf‚vן†@©1LŒë¦Érgf=”tOtž@7\p²ˆv8Ì+èR³+V]Oàa\k äõëâ§ù#¤É榙pò ‚©QrÔSË?ñ °Ât‚!@ñZL†3…ÜG§XO™´¦Æç;1ŠÑB> “S†rh§Uð ¦ c(ݤFmÁC J«­ £ÐŠ‚áê; q~†r=ږÑôvÑ¥%\Ú¨<¤:ÑÎmX©K~Ž&] †Û†Pµ¾*îwècA9 @ wài™‡¨è\ó-25Ì3*:oÁ˜M¥®Êb­Î¢:º7HÄèÞ¯ŠÎ"¼”¥µ&d¶h_ì&.#.¼æ!ÄÍÜ€‰@[b@ûH‰X£oˆUj¦4J¦ aù ë1°U˜3s«K"ØeŸW®Ìºkf°sè^ÙÂÕß‘åÚ–Ó6 ÌéTˆNZO[’óÐö0}e °0…¦T*ëÔÌ9•ì ‘Äf‡‰RCðk²e.Úö¤ä’ѪƒO»\äÃ(•軜Ȥ Èa®nÎ9¦½"6ò$h»Íßèx —ER¾âŒnfw£éuZ%‹8:H£u´ Îjî]É,¤KºÊÒ4¡ø1‡¡oKЛ(<8bC±Õ‚Y(ÁÊ,´å‚2#O‚Ž›jX» Iõ² -ÉÿëØ_e •±¼š Ô3Ú†«¬Ž­«%JÓÊoëBûpŒªæµÒ‡¸¹§u`áÃê¬@ÕÑ€Êw¤*ƒ t¨³Øm·Ý¶Ùf›nñ:åx ÍØàWrè½îºëfA¢‡óÑé 'œpÚi§eG§¨Í93çÄîñâ‡^Cã¨æ#Œ#2•B* è­§ÑG'-°öžŽ“žvJ7-¬!5I(³¼:·Ñ ¤0Ç*³¹Nâ_yà‘Ô…ÿé$ˆFHCXükºVüÂá)¦hj4òœ#2R–ö¼} YäP=(@÷D-&ôÂReî 8+ “9N.²ø®#i@Q\ë'Ñ\5 —G¤›`XK\001`JHͨ”h õ†¼ë^Ø)hña“ N}ñQSdÌ–<âè.ܺ€ŒFÒrÓ£E>_Q²¶çé ˜…«+E 3cÍ"2Û3 Á³¹ m!½ U4‰Ž—]'âôZP—êéÃ_Ë-ž#¢ëU¬+jZ2o8s0|æ”3Ý©R&84ŒJ>šUTñrévrtʹ)éN»åè”þ~ô£Í20äÌc˜…uÃ9oH ƒÑÚ*}¨+ÃlAɈ‡_†“•æ}ЄáçÃÛŠ™€T ‰hbè¼Å*1§Ý˜bpy¹fñ  qh’+ªó$çùmÅê4¯‡§ÙL!f³ÎôáfB9ƒDkÕÔÓ:Å'\˜‰xCøƒíøq¡Ÿ%%›:”Bà, <€Õ• ˜Ó·´–¾pÁ\¥û°Ý( <˜É•6ðŒ±ã3¿Þå¼4¢ü˜l~«a¯¨œ`…©”>, “yþï¢QÃPšg&!¾uŒèÝwIP 2âÐÉÊ´®´(€ižÀiáÖ »±÷—5ƒ¯@Ú¼‚Õ°¬…-†j) {&r‰·È´Ä@ËÍuù <ó7M; %{’Ü”Î^Ñ1ù„"¶¬ÄMŠ Y3³Îiò:…Zlêñ:uœ˜'åP´ÝâušJPŒz,~‰@::™©ì·Å¢aý1ªEì&ô82evбYLG¢PÀŠSçô¨ˆªÍG™!›@vî ‚gîìýÑHŸB"bjêÈLc>P‚ûí/ão<‰‡ÙE ù¯äWþ° ÙPKúðÙäW® DÁStQ¡³Îÿðß͘…⌠ÊÙSh jnz°K=2eýu{1¿‘Fè|V.ƶÐO/äAù Ãd¸’ouWÉ6wÓ¤³øÀ>°Î:ët‹×©N†Y‚ô|‚l<Çs¸*vEðæXš=˜Eº¤1š@Ó^B1xõe\Q1H~õ˜3Í0„¨ÌìòÈZ”JТÌB—v|9Vi››ü,¤~``O®ÑtêŽrsj1sCTþNÝÃ÷ °·Áº±Î˜ÒÅŸQS²hf&=æ–΂+S¨qÍ0+#Ö0 ‘Y>. ìñ*Pšæ… Ñ/e´„O(¶³`ªb'(ê•0‹VÁùªI*8Ý_Àôà"ðã q—žzm Iè8<Ä…çíÕW_íV6m3Vù™Z°Ý†è*•Ë,˜Õª'¡l$YµÞYªUs¸úШ Ã.tz™QÑp³àÐÐËÎÒ~™E$=¥é6Ä=`#\~CsI á `Be¸…AÔg¼ÌÒ¦3~Ä=J·!!YPcȃ† ü@/,åȰÓwb?ùÉOÎ;ï¼É]’ë”i²ì²Ë*ýÕz‚»Ýwß=Ó‚ç£ÓwÞ™0ÄÙÑ)ã­¤?s‹x¯$¥z'väÚe§.¤pÔ]CÚ0å4“‰Avz‘S2ÕPª¶Ô•6¨¿˜ÏY!•J KiA¹Ö9R£8$ ŒIY5{%Væ,L¥wCÝiå«+Y€|Ø¥ÊKö2Iql³Â£êD+•êäÊ_m˜ç†A $®ŠÂE)¿4P…nù :”& VåHxîÂ,Ôµ4¨h˜(8g´Î¢.2u¥ ì°2÷®K_XgÁÙS•QJ\%ÝËÄ[ˆ)v%Yðk>Ô S»/Ÿ&ƒÝè˜G !âŒÙñÖ‡P \ ÁÇš®“,R~ È¿ÃM²€Ù¹ 5וÆ3©ÒÁ »ibWž¸‘Ló€^Vn¦®½åö3ˆ¾å¯õòבíÐ,2þÚ¤ãŽ;ʢ4 Cso™‹JO¬bÎͽ2Ó«Xî sïõÖ[ïÃþðäR®Ó]šùcìl#CɰK¢«S,;åÿ•™ïêÒšÔÙ&G8܈”ÓàŒ2JÇ{X1 ±šhð©ÄLó“ ùu‹_¥QYšp¤ÙpöUw$tsïW3RÖPÛYÀ×ÊÁé{ê³~TÚùÕe F¬HÃêV~(‡5>M6“³ —­››L³ˆg[ÙÈñ[ßúÖ»Þõ®±cÇn±Å†ÿŽÀåZ:± m0{¯ü°YÁIû³6uý&®QFoÝÈöÔ$©í©I/Ò›óUTpÝiˆQÔ³ÀÝ]ïuªþ²ÎÇ©Cõf¿Ãý¾êÀÉ<;+[›Ê;•Û4œ'ûcÆŒ!«#1ÄVYe”˜nhøD8âéêÌÃŽÁMµk8GD91ü¥É͸ÞtÓM¯¼òÊ2…‚3e•ýí\àï ¯SDúÈh?ü½NSE­×) 5jÛ4 Ä0×YÏg«­¶êdÒ¡‹zç|j°¼N›™N™ìꘅ²ÆÞ{ï=Ï<ó¸Ûô AsÏ=·cšþU®ÆÒ‡Û+¢7‡±SfSÞAÄs.V\qÅ .¸ >L±2³höÑì<ÀzN³j¯Ó!bÕ^§3LÁ9D:‹²‚sú$ w‘ÔkÀà4¯YX#jvöP¨Í<:1žpºÞ¢Ïóf…S”Ó„Ñ£GŸqÆ©fŽi‰#¿ÏõÆo¼ð /´ÐB„/õ+„Ü8Ù…óÎ9çœï{ßûB¬€ïü¿ÿ÷ÿ8Œä 'K-µÒ>Ž0N:é$˜Â¿øÅù曡îæÓŸþ4ìiÕUW=ñij̒™Î"nÀôõ(Y–•Šã¡JܺéÔ •º:FÄÙ! ~ó™Ï|æ#ùÈð×YHŒÎÉ'ŸìáT…‚32e½å-oqÈw2èÌŸzê©ßûÞ÷¢KÍŠ®²CaJ7i®ÓN2eVîŠËdW¹ö9ƒÁDÕ"Ëù©QyôõjzjYfRä9çœÃ‚‡à·ìPؘ Ã&j Öwž:Ã%—Xb‰EYä«_ýêe—]Ɔ,¾Ì"2Ô3çq(âñâ‹/¦ä½öÚ sï·½ímË/¿¼|mË-·ä9Øtaíµ×~Ýë^GÃHÕ—AcCSfJ)BÓS«¬µÉ’³Zû4ütçã•> ¯Ó.”5Cœ]ª³¨“E]Q™~Þ2¯T=2'¡Nš/ƒôÈã+6_qPÏ'¦öˆ@µæ Ëb"DNþ »€á³€aX‘ñiе(¦}°jC;± à:<;©4NU,AëÌt•kÐfˆÎ#iû½%*,Ã礊):×ÈúüX:ØeHÍsÍ5—ád ˜Ž$¢¹AlC_|ñã?>62‹-¶Ø±Ç›êíL/Çqý_a…¶!H1úébxB{”SÌè! o1Ž€éR¡&HcgÄ'ußQü²Ì‰Ô~L¹d¯P|`¼¤Ç:RÀj5tÌÂfKáÐCí¢£SÌÚ£S»”zvE NhÈÁÕšfTpÚÏ2è[æ¶G<Ü2÷L’n:4‹ÒQM×g—B‘U€'¦·0•^d€ˆM€˜%ì£"¯ø‡˜]hUeþTãâÆihÌ‚ov€¬™`&ÔA.ˆt8³øÆ7¾Áð¹æ§DIuL³Ï>›‚ÓU•ë?%Ææ"¬žÙSÈ,èò ,ÀF‰Ì:ë¬m´Ñg?ûÙí¶Ûn=ö˜þùßÿþ÷³ÁpÀ~HS]tQ™¢Ç¹çžÛò‚Aù°`f¢Ø:í”Sè>è…a8Bðë²a:5˜©¦œåTßPÓ©Pž29‡xï` `C<“‘`m(˜ÅÈÔY(¨L·‚Ý¥³h èÀ¤ðà™„G¬áažŠè¼å‰ Â2w^dÖ””y«oR$qqs¶k”iãX„™“ðSŠ3(‡–Xm{ªø)Êe’…öÎa M{`sð É2fþTŒñ¥—^*Ót˜™(2 P]³à»†Ë@çwÞ2³@Eúîw¿Û•fÁç0D˜Ô?ö±‘†­üÖ£‚9˜µ§’…ÖÍefAí:¹GŽeK7v=zèu¤8Ó›^Ãy5Å0(‚·Æ†+N‚øPÙdŠdð‰—}“EÂDJÈŒîºë4dˆÂê |2¤ÌbXpÆ´GE…ù wÔÝÃqáÜÉs#5ĬLRC0CW¤ê£:ˆ˜BÜkDÌSZE±À‡¤År8Cá|hâuhW G¿:ÉÂ\äá¹@ º¢˜B5; ±å „}U»[¾è¢‹xã\pó„É<Ë,³0Kc’GZÀ}öÙG”RLÁ"Qp°Ç‰ƒö æjCÜ8ðÀƒY°[‘Y ¼hÞ† ˜ÝÐ!"J÷œð¸S‰& ³«ÒA^EŠæ4ͪ¡I(Ù·‘WM{|ÓÄ©^MɆZgÁY²ûµ®ˆî ™öHa[m”¢¡'é¦+¼N§Rö:ýeñƒþÌŽ'Œþ£.n&ÅIMý!ßð)’Y@I‘IÐ4… ç‘‹LR3:‹Þý&ãy11‰¬_°Dªàéžë§‹_&Y„!Ó&ÈZÍEH™×i0JØ RÀꫯ~á…R)§p°}°X ¯¨éƒ=ê ý\8 f’Õ!zM–kt–³Í6 Tú²ë®»Â;ôˆM% zÓ‘‹­¼òÊ|’EÊJ½NAݤ;ê•é;Íг“Þ¹¹SºQ|&e’E”ÏR²®‘¹ž2 ¸6]vÏ«ºÈ†mÞ‘V/½€p¡óV^~ùåNo¦q,Pr" “¡®x 1ÌÌL§«¡®œBiÌ+¨Ü­²š6Thð‚¬=8X(©ÎD.ù…ê”,<…QEš2 Ø“:s¬Âk`ùè,€/3‹4Χžðˆ%—\’ŽvÖUœ«-{ÁôÞqÇ=¾å÷Ãþðè£Öo“M6.¹ä}öЃÂV–[n¹ÈŠZT‹/%£vÚIf=┘%‹ G2æ9…(†˜›faÞVø»e:Ë zä§!&%ED’…m8üðÃ9fê–€½pXÒñÔìÝ>æ7.¡]V£;”ó•Ì¢ÁȤ9}Ù…)U °v¹np*íı­oe·úÌÜ».žEöaerÓJ÷ªžš”ŸuÎZÍAlá2G²rŒÅ4Nš@5‹[D¸jà¹=iM+‡µÃ”ÃYg1Žd#Pg‘FÊ+'énXÏ›=›'LDÁLµÄ©+ç4ysvÈ,Ê h~Ó-aõÂE½r,PO˜c¡A4¨›êu>¾Í`u¡‹Y`ã´ÖZk gÄvb˜e–±.êu)Ô瀩’nêÆ¸y'Ò@p’f¥‹zw1 uÍXjÐ^÷Ôg~¯#ËžÎÒ¬7˜nfÑÓÝ[õJ³$ÛM©àèèÿ5‘îŠmÈ;ßùÎðÏ)ÏɃ/4{‚ÔñšžšÌWuÝé©x׬³ÈÊ”Yt{ Î4øM'kþ€CS~¢Y4pœ:’žVf1bó†Œ$gåA—Š˜`©i]Ù˶2¼Jºéhˆ•TÉtŒžª*p6xÁ¥ð#i’å­;SPå–:àV*SÊ¡ƒ2gü4nXL $S5y¡Ææ|$Ž´Êi1¦oòÉO~Rù®Ø†pftæ™g¦NŒÁo8[Zi¥•< î ¯Ó³Î:ëG?úQæÚXFŠ#±Ë åü•Y‘ëBì”ÕoÙ4øL}r²CøõgÖŒð:ÕæÂ †h£µìâÖëø[y‘þÒ‡Ùu”“›¾­ƒoþ„W¦;˶!•ŠƒTaL³ÀMÙ‡u‘µTuC˜ºhs!?2‰\õ^§Cëu:¸Ì¢Îë425zŒ¥£t)È,Ø=rü!¶ý Ý»±ã‰nª3)ÐÕ†WúŒšd„Ÿ†š ðIêÏÄu‚ÒšƒZ‹ÕaÂ@Ã\Ù` 8Z/‡4Œ’¥cj¡IiŽ/ÿ2ý0ûÁQ*}^¾àï5½?à³Bx Ê|Åòc0žð×ef!³¨´=üøD ô“€áødþƒ$>i‘bŠÒ;ðá¦Ñú5µÔªÂÉ|Åæ_'4?QØMð!lˆÒ2g…¼¬û,hd€”1u 2Á"Èg9Áì‚Ò0Á†&í2Ü èuŠŸ¦nƒëu:Dñ,ˆc†›¼NAúì³Ï®Õ`WxBZã…Ý‘,ϵ ‚d!Aú¢“˜÷y¢Ÿó_c*æ?8ŠœPŒÆÝú` *Š‚øTÔ¡4§”ÌGªfýW dÒ“q™!•f„Ñg4›*\o)0bˆE±Ð7anÆ#~w?j¡ñô…yÑÃÍíL 25ŽsÁ­k&s€O¸ Pr8Sñ›ŽÐTØ3KVd”f=ñi}×\’Ï™r€L¦qÕœÏ|†µ1c¼4”uTGÉLQ‰’bMV 0 †V+p·æUåNj–“HƒXªF"ýRȃX­<úÓŸ+@^ó³è4H“¨…tÚFßÓÐ!­×i>Û5eéFG²˜uE8ê"³0BØóÁ5Ó„ hŸÁ‡z P£-PfÄkѧƒ2C^…MˆYf‚OS‘ÆÔaˆ©ù¦9„‚ Í0©X¡Qa%¨ &¬ˆ€÷?-—Ò #!Ier;·4Œê«"0F#å§Y©I®ÐD½‘ÿNd7* 3jS@:ýd©9Ç™ö2\#Mˆçpð½§øÙ ™,} ØÈ mRB^…ÿŽY#Á|êÑC;Ól±‹¡Sf¢ÔÌTë±&Ú¥ãâÁ…ƒLø¤¼B¯SZ«—`WÄà„qWxŽÈÄÈLlIÖ©ëJ¨/#mé!ªA±¢)³bå- £Ö™€A(·ÕFr=M¿õCuBRSH¯S-ŽÃ#eîš&‡r­K-8hŸ˜æ—zͯâÓ†ùòÁ,¢m̼b6•‡G&\ 'It|ŠbÃOoWwUšŸAáš)¯D8≱|å•2¾ð¸Œ :N#f­µ^úCM½pЦ9õuC–ÈºÏø!X…ñ…_ý5ÇmfþéÆÔÇYGüÃq‚YD~I×j‘òsfp$ó¯ÛÀŒävið›®°³`2KjéCˆ pÖ"™…©Œu%²wÜ2%Ìm ¼yk ½!yé@‹†´p®ú¡žã@^2èÕ9l6f¦zšYÓÀMR¡ iÔ)”¶œËs‰Ø\ð2#¿Õ­;f “YɈå4ˠ׃+9?n­‘¯DZ 4Br€•Á”¯ì ch˜1-sd´%Á,œfTÇ6ÎLŠ f¡7zl3fa*é:f‘òÊ?¿xb8¢_ž‘Š2&Ø¥ÎÑ<˜ElK£®1ÖY ]*€ǫ̂ö4dd(8!\hËðö,°¬{ô\Ñš Ã[qÁ É:ox—f‚N«n¤ÝTSä¥Lé“-•ÉÀ‡†ä’úC^¥ …íX·©QæE™4ÌØùT¤ÔJËL ošáìb ,ä+óôÉéh¶Ì°,ÒoD÷Qâ€ôÕ/:~_üRI„N¡tTÌ$”q@ ò8ºo¸—}ãYÑM鄹GEvYmŽÚJç-åSŽž*Y"{ È‰‡R," øÐ.P)ñ*ø] ©ôˆÍšý¢ Tª«qz4:N|C‘«®º*ÝÆÓGŸD/âx8ÝÛ»I™Œ`·¿aȈN§¢ù6$buÔQ• `†ç6„p²kH·!º*ÒUý”UpðDc–Af~ìÃL“¡»­d(¡~®uUdæ@(Óƒ±Xœù„3#LX‰¡™øAèe‹/15–©jÀ8= <‘¹§ôäDbHÜÙºa˜?>ç¯Ñ+*ô%” !YØ$ÓµzpZl³Ó[/[£{ù!¥ÉÎ(ÙåZ"žÈÿà0*¥µZ4Ð/£‡)úÉ)Í£*•SûÐEž*L[®ôp?4ìˆã¢d„ ·|LDˆ0:òAªà+0 û° = ÕÏp3ÊjsŽ‚ ЪÒÂI;Ûý¯øINupäùh̨ôI¥‡FYG(<Ž Âw;C‚“6´žQBÚŒPBGûRiøITgÆÐˆ0Ç´it¦J]R¥è¾…Õ*‰¸{Jëã[ƒ ‰™À[‡™šs¥òB°àôއeÊl¶šWÍ©L¦ûè”xb ê–€½pO—D¨ŠŠÓb+¦gËÜYÓ‰À³ðœ¼2±h¥f'Ö; ¹H˶ž 5f×éCF„ÕH4Ûy3šó…Õie%üt)®Ëß•ZIâ”EøWÅ/=AëiÌ:à$l ³ò\bÜ=ëE@¬ÐvFõpf­Û

sÀ©2t̢ê;g ‚}sÆ›T¹¤7Kéu^pÓ„œN˜E'0逖—¯œY¨$R¿ÞFY¯r®Ó©àäü"M`Ùîô )ç%畦DÍË~e¯ËkfyߎxÌŽÚ#½8Hƒ†VŽ1­MÉ«¤¬õ~jé\ÉPÀç •ùDÓ‹H¤¢îpÀÌïQ8‹M(ABó•–‰˜%”}%43±F<ÆìkÆsÙ‰¾™î‚ë¶!Ûl³ Yf»e¡þøÇ?ŽI‘:–àˆÐšý óHYöŠÐÒiÐä ÏÒ¢ôæ¨ ˆ„¢.K½ÙU¼.øMO}t6HV£½6´kÊl±Ëa‡ZéX™›z'=âé©I磌Eeè‡ì=Óz–†®iÒ¦Š1óñàŽ‘¬!8UCа†ÆÛµ°é{uaþ›£Ý˜ö!‹À6 %´©†©g]<… HSA+.¤ÚF²RžJÛÙÈ-a”ÌO-*g…A14åä[NŽÐ¤Æñ!ë°&ËҢܣ ¦ Šz>‡UójÖfTgÇ PNþl¡¬O(Aõ¾©q‰6\-yâ¹Q¿90Në˜V™6MQ‹ZÂZɾР‡žª$ÎÉ‚ŸgÙl§‡»|¨µ%ì‰.€m8Í1:„Ì–cma™ ŠJ[f“´×|ÅÌó¥ëópÞ¡4Ùºžl<Ô]2j¸@² Íº–Ñ$˜—C º0£ÐªÕþÂYÀÄŠRæ¥/¤Ø O9àë8„î0`ïw¿û]’ËnÀÞ¡ ~Ã@ÀÚ"îy5³À†¤™1ÆpŽÁIN ø2ÉBÁZªb>ó–[žóÊ–ƒ@Çú/jü£Wá/•‡k°–Ú À°ô„?l™Z[cà桦æÅ ÓI­i ôÍìRCD™‘ÀÂUšo)Âeš™aú†ƒÐ)`tî¤d¾¢/š¨2|”©-™>)šfS#æƒÏ?ª¶/4Ry[) $èlª©UÆ,D,mfÉ?ºó 4ÊŒÀÕÁ¼zŠÄ‹FÜÐ×.RCš2ÍÆ]ÚÑ·pK 2¥û2qúe&4ýwé5Må­Þ¢TŠ4ƒ[jmä)G6Z¹è8¨ÅK-±Ø˜`‘NL:E<çC7e<äÃJðn”5Â"e9Øn¸-êáì‚@î¥%h‡ÔhÍ)X>IëeÉ‚hä#kCd|%åI|ÚtCvn hÝOu÷Ô²¦‘áTÂT‰´É©Gº aÌÂîˆø„å4\9 wAÁ.wüÕmŸ¶…÷­^³båoªÓ6 T°Ù‘ô(¼ËÒ­\˜6c¦KP¡ø#ƒs¨E_ø´åÀS¦±9LA¨l"ßar ̵Tº¯Ô —bõ‹‡?Úµp·¡Ip ºÍŸnC´¾µTíäg ‚ч§_0 šYÑ xÝq^snC¼¥.ircp³ ©0 ñSƒ41*•!‰ºˆY°J§~Üô¨§H¨ÿ’F–NT-óå†G)dÁ-Œ@Kdè’IËLƒhB—šÜ\¿c¥Kc®R»Ò •¦ÌÎÌ""ñ0$ =r—™…3D—VF‘"WšX'îФº,N™|Ü,ŠYT;šÍœ¡ÙƤ¨dêG5–gÊñ 5F½J@áãL-€9å¢Ì4X¯øü7½?€B½zúfq¥aRbCG iòVìî/œ€C Ò†=üYD ÕQ¾h fj×ÔÁßÚcdé +¶~#Rg ‡M•+ÉREW¿1¢AÐ}†H™¡ Ý® £à2˜F— ¿)³€ø˜Ãò`ñƒŒà†x [/æ6/éGVN@Ú]ò‰N«2‹HÏIK˜l~nQüe½¢‘‘å45Z—Y@ñ!ø¡§®–ÜB»2 ˤƒŠáí’…^ðF vzg¬j1¬¼&f]Ú$êõˆD™²¹L²Y(Þ«nÿ” { ™«§7D;%xBÄÊ–”;Òó<°Ä0ˆØà4JF\Ëd<®ü¡àä•¥)9J³ˆÌf`C%Kê¿«›/·•éàF†g œáÈlíºÕ‚³î,ÝÁ†„o¢¢8FĆ,œfP ÛxI"‹XáqX޲ Ë\Æ7ÔmT%_ 4f&×h=äGÔ«$³‹Ú)‡Æ°[¡‘ú€[2Oð€L£fÅ|ÓQŠÉÌ<ÑmI¢¶m'ÝîæeP¹Š ÞC–V-§[-ì@>B(“Æ„ë-Sœ£¾Êby‰1Š"†ݤƨY`Á•¡zäJN?Ê7Xž«´ë3Ȥmà„o=W†¿¤ÌªA&8÷dÙ"׎8À0‹¨Âè!v¹D§èfìÑTô¦Ì‚ÞɾáM*b¤tÆëüè4ûH°:üí,`²¤×vÅ­õ:èlS›Èa¾ ùЇ>ô©O}*ó:¥ýáQÊÔÒ©Œ9i° ˆÀXxˆ+]F £Æ1Íj]Ì4Ȩ+ŠCÓ†´ƒÖ;+޸Ї•6D¨HuŸ+~®ù¼ ¬óißirH™ZÒàTôË'Ò4Ì–áDeæ!‚„Û(Í`2:P†Btëpª›y”f3cyÈ_àe(éÙ¤ñDyNÖG3¼Åx…ìYÌšŠdU’ oõ…£‰pzÊ%ˆŽ´jŠ »˜H.ÏX„Ÿ+]SBoôÝð%Îmx±Ãd›ÝdE<Ž@TxR¨vp‡F0ÉÖ’VÁ9h ΡÎR—  .7„*#ƒv |C’¡,l·ZÀ8;TÎÌvwF¬Èò†¦¥ùU¬™iP¼´a–*Ë7TüxBcêÒ 5猾„Oa]³³Vñ÷ICf¢ŽÄypêíZ‡®º[W—ž$Áušr½C…-!Ñ©«Ú0~cOá¤48Äíj'è8õÔSÕEw…d­÷öÛo_™d¨2½¥y4 Ìë–µÙ<)3+Š·nRã¢m™Ëˆ¢ ,tpñ:cªÀiÊýY¹«ª4rkhvúUY6®›Ò•ÅVf‡0%m]ò¡f†Ri<`f³,ψ›Aƒ-W¦,k²ºÏ(«§*#YÖï+x‡g–eQ9Úº@OÍA±²„¦öé©Oƒ:YÔëÔ]‘ë´n”TË [†WžE½91rçyí;Ù†l±Åäøê–m‡T° áðy¡…Šä"Ãy"³Àå”S÷ô¤S>›Ð…Lýg™ž¢Ôô¬1N*7¨Ù*÷á•:<Þb‹Tk%‹™D²9aõ†ZÁ9D§!uëOø;iWÖ“ŒD•á€VØ©Cº[6_¼ÂF áe« ­n”pja9Í,‘\·U;~f3ÑBóD“a›{¢V²˜I$ )ðœsÎ9ãŒ3×ëtèì,XPWYe +¢{KÄ-¶ØbZËvEuBt ¶-ç:ÕÚ*")›H[cf;8ÝthåÉÎË%Òá&úG`¡$´7m*ßêeÄ·ºÁ À˜fW° ÞÂ;`¼¥:v=ºHÑÊ KÁV²˜$‹fV—é,Fd¤,&gA¤!¿_ ëW¸61™14F Ð (ÎÒ `ÈV¤—Lš $Ù1Wš¿Gž¥E3e*Œ°!Jƒw·Ìbf؆¸ª1ý4¢ æÞ=½—˜á«?ü²Ö^{í÷¿ÿý™Q]H³ÅGbaäö2‹ÔŽY€‰mؘH€ *І„Tæe¦ \0ôe4Œ]"AÏuvÀ¬¹KaªN}døv2œÝåuJ#a‰v}todzà7<ÔoR§ ì²YØuÄ–!Yèp©e”Ú }%ta‡d\€=ÏÃÚzµ‡Ÿ+à +1á ›”Ô^¸Yh%‹VÁ9ã·!^Á9ìúg‚sFZp¦î ˜ŸÌ|ºC@-ç-› …«´œðAAð°: 8‹: ³ë!ÎŽîc(M=šPR¸Á£ÞØ­ÀJ,ÃUg$sóê°WŽß×J#R²èé ž’žG§òäèƒß ¨Ÿyæ™KjøoC`ØÿøÇËvú êXÉz®Û²Ê¸@dîé¹È@‚ þjÒ‹ì`äEX¬(xÅ…ùSa.]'#é)JŠ“‰DcÜ-ô°ô´N!*Zf1‚™Eëu:|#e•Ÿ¢«†lÉôY•® á9æ~§ìUU—»›hIƒ£ZË,F°Îb÷Ýw7Ïæ0×YD²èÃ;,"BåÌ"œ2;î¸.Ê¢Ža\SfQç¹X‰Ä:Ǥ²íF˜WÔ¹ 4Õ3Pú–Y´ ÎáîuÚ¥ ÎNޝ4^Íž•Ê9¶/öW µ¾!­‚³sçÖ[o½ÑFu…‚Óó;2òäI†2f~f¡Æ¾+¼NQ@ Éôp¶×[¹¸Abƒ‹é€,„¤ÒëJH#¸ ¤¯¦2²„ Ș6Ó Ž‚Ó ™"pú £ºéƒ ’ëV¯ÓLÒ Kæn,ç0‰”U'W7Hž••N®ÏHVÙÚ:Ñ´A”m·!#ò4D=w·œ† ¬àôoz¬0üuœ]oºé¦\zè¡;î¸ãÅ_lP£/|á »îº«g?§Ÿ~úg?ûÙ}÷Ý—£Øç—¿üe ò“ŸãóŸÿün»ífê€o}ë[@î·ß~8†€˼ì²Ë4»ØsÏ=QSy’J<1 8à\á°‡rW\q…ö{ì±F»üú׿䈆.|ÐAí´ÓN¸ôéÕö¹â§pDôS ¿ô¥/q:î‡ u“Öœ)V#Ž“N: HŠ¢jŒg(H“-Ñ< iªÑ:O<ñD ižQ…÷ßT<›r„LÇô\æ„N’.ƒ"œAþEÞ™ JƒT´Z܂ƞ"R6ˆÝe—]4ca-âÈ7æà1ÇÃíᇮñÛ>ûì¤&0œ=QÝ^{í¥‚ì¨£ŽòÈ#Tq¶÷Þ{évÂ’(o?å+_x­ãxÎ[¤9{â+¾uZqÄ@}ôÑ?Q·Æò%¢"´Ç8Éô…WÇ{¬çYSð6$Ô~TwüñÇKf‡ñ˜ö †!ˆœ þ=’_xá…ÇŽÛ-FY (ÊŒ3ómsfÎ9ç¡]± !ò2$Åõª«® /„p%Dòª3FÞt–YfYb‰% `:õÆ7¾H&˜âÖ|óÍ7Ûl³Éÿ äRK-2±ßð†7yðÁK^óÌ3Ïì³ÏN.2Ãù¹Ì2Ë@—p•VZ HhŽWL°¹çž{Ž9æ B´š- —[n9v€ŒÁŠ+®$oãçšk.îìÝd“M€\~ùå¡6H“ ¥`XR,–éÜn¸á†@RÃI–]vY ¥K¤©Ú‰à äÊ+¯Lw Ù¥—^Hóèá°KÇçw^gÚzë­$]Frfj‘òHx"¯@#ÈŒTu묳 ´s½øâ‹ùío›W\pf ,°€Ìw­µÖ’¡1Žñ¢‹. $‰ü¸=÷Üsy…‹³>50}nßúÖ·jÂÔ=zô÷¿ÿ}nÏ>ûl®y"K}ÛÛÞäꫯ®ÕÌk^ónqÓâ–Sʧ=ŒW[m5^­¹æšš9,¸à‚´­¸ë¸A1á!§7½éM@¾ýío7ZºÄsá…rûÍo~Hˆ;æ9îU@¾ãïÐôFâqá9å”S€”x`âàHûzFy‡vh½N‡‹×i'íœÖmH³ ÞnCÚmȈ´³@Vby“WlC‚U³ ¹,tE®Óˆã܉ CË,ZfÑ2‹ž™-@](Ýžšà4Í![È¡†ì|Œê ,h:„¬ëBç¯-=„S& NØ;ÙðÏÎu©W•q_†s ÎÎ_½B;‹:uIkgÑÚYtÏ¢QÃÊ΢§>€{«³h·!í6¤Ý†äQ‡sP˜™P´Ì¢e-³h™E¾ áø>`ļÚmÇ{œ~š¡Ý†´Ûv2³mCF`*€V²h%‹V²º\§˜Š`¤—¥1•†ÏŸ\ªÅÉ81ipýáf”ÕJ­dÑJ3Ú(««½N[fÑ2‹v2¸Û…d h5_ëuŠ­+ÌBûß–Y´Ì¢e­Î¢:×iqvñ"á!ÓÀ í6¤e-³˜y¶!ÓÀ,ôMLï[fÑ2‹–YÌ<ÌB'Џ‡D‚ôj£, ððÓë´µ³hOCÚÓ™ÍÎbX„Õk%‹V²h%‹nÙ†`޵È"‹º¥ÂÎBñƒøö§yÆ[É¢•,ZÉbf³à¬ö:íÒ\§­dÑJ­d1t’l‚hC¹d‘™{OPK‘¼·e-³h™Ek”U­àìêô…í6¤Ý†´æÞ=ƒáuÊ9Á,ÌžŸ´^§-³h™E«³˜FÅPoCZ γ I1O þÆ…ï¦u2õ/GcýG­Ý†´^§ƒìuÚJÃA²˜ú7 BßJ­dÑàuŠoáÚ UÑ· ɼN –O*⣺×i+YÌ8ÉbòäŸyæ¡Ã»ŸŒ$»ìòÇ]w½oÇ9ýt²bõ„AùûHo{‹î“AzGð©+®x¬ÌïØ¥ßökƒå¤­dÑU’EÏpð:mOCf³(˜þ wàQÚKÏ?ÿ¿'Ÿäº'ÙTN©œŒžÏ=W!Û§CÐ=ýñÓS…ŠIýOúa;µI ªû>¯Ä|d0¥FNª"ªhX_“’'ýɺÒî…D_z+J!û^¥h)FÙ4CÓfŒœš¼Ü»Ô ¾dÑê,[g‘‰‹Jd»nԨNj<]Nïgn» fñ¬*«gŸýÝf›Ý4fÌø¹æúåßøïûïçá‹ÿøÇ½ÿøãç—y´Øq°‹¹y®¹n=ú®M7½ûÃþ݇>d3ýÎwnžsÎñsÏ}ÛK°2|òd*prñ÷…ÒçQ ¥*þ[*ª_ƒSH_ù¤·–¬mý`|[ª«\HÞÚ¤ óÅgŸ á*³xì±GBUñøùç³ì<|ÒI·-¹äý»ï.µÝ³ýö7/¾ø³¿øÅî¿ÿ×ë¯ÿ‹7½iŠ0òÜ´à‚¿ú¿ÿ›xüñÿ{üñ8*DOñï?þñÞí·¿zÔ(X `è>Ê¿sÌzèžüú1cž½ývžß»ÓN7Ì:럿øÅ§®¼²§—xút(Ï>K;+FÖÚß -i‹‹z±—a Éöýb³*²¡L óQËh¬?ä åoûW:µÙU„ôBô+)í…J0_1èO?Ílt… N²í’’¿M^§ið›Á±³(Õcßû ÝÍsÌÁrt˼óŽŸgþÞâßâv|ïõ”‡q[ü_†)ýË^•!Ç'ϧ¯Šëñ^¤­j¬«_ùýoǧê_é-u±ËISû¾­jO_/æ™çÖDøËG­¸}`ïpÓl³±òß±êªw¼ñ·¯´Ò cÆüí´ÓÜYÜ4÷ÜŒˆc‡Fýz%ŽžžGFj˜óÜs7Í?ÿ#¼#ø‹V¸{ó͹¸eé¥<ä)Õ+Ê/W[í¾]wÂ,¶Ûî—ÓéI’÷„lL i'­_B×ø9ÉßWã U`¸ô° ±QZ &Çñ¥ûždd–A%ŒO Ì)!j,·?èñé,H§CÌLùKîÛ9æ`f9šŽÔzÎ ÎGÎ<óg£F]7f ‹Âð5ýÿ+=—üÍ`ÆÕ”Ðp›XYݸRu×Ôük†WÕàÊç•Ý,RW²ÿ®3æŠQ£þT¤nN™:‹ëcRÌê'/¹äªQ£ž¾öZ„Žñóͧ&ÂW·¯¼òcçž;…Ì7ßsEæJ6&·,¸à EÎô— 3>¶$wðƒ\ŒŸ~XÏ„w¿û·cÇþnÓMo$¯òºëòü÷[nyßg>3¥Ìþf-¼¢hí¸ša½¦TŒ«Aà5FåX H$×t\xy\¦‰8ËŸ7XZ/sŠ™õH¯d1ˆÉȘ]›‘L ?þñd¾þ}¡†œÓ¢XHð/‡þð ' âò÷aÿöþ›×Ç_ ¾šXõvbúÈÞ2'ö˜ò7ªHà}åO,Jèk[ÿ&Mì_]VZÜZW_¥É·ËÝïŽo'¦m«êìÔrN<ñ¡#Žøçøñª RÅ Å&B1A¦pË ™ëF~ø”S¦nCî¿9½drëB y\ÅÒqËâ‹?Pl7œù·.¾8§°ÜÞºÄúâûD†½öz¼JîÙzëûvÚ©OÀi²†RÁYG“/‹úÒK/gQ/':ÿüó3ÉP¯ÖM‹ã0@öúå0Fö¹<[Þp|ÛûaZTz;)LÊm˜ZZ¹Àômÿbûµ$5©î-ª¬÷ye¯ûÕ•ö4EH‚“xõr/Šúº“Ø­Lµ³xôQì,~µÖZh%٠ܳÅ7Ì1ÇÏW\õ5o<ôÐëà'žøø~S˜°é¦SøËSOݸà‚ÿ*¼’ùM<î8¶-÷í¼óß/¹äwü ׿+œlýyß}Ÿ¼è¢»·ØâúÙgn„)‡î[muOHe“’ÝGJ˜¹~¼R|öCx|XÙdD^N(êåÕ“ÊDÕ{ûrJ)XJ65ä”ëX'}Ik,_Gƒ_.ÑÏË%2î׌°”éj£¬fë¦Ö(kè,8QCÞ¿Ûn¬öÜyg´ |ðT=EÁMØGüⵯýÅrËÁM^zæM'xøß‚›3ñØc±üòlRþ°ýö¨?ûÁä#(>Ñw޾⊿^c 9?Î\Ÿ¸è¢>ÏÖ(kH²ê§Û œ†ˆ÷¶Ûn{®0™©MÐ2‹‘Ï"—3µçé=¥ïƒ©ì‘0™ºÚçýKžZfý@´Ì¢‹˜E§Ñ½å(œÝ>û쳃µ i™Å°ð:-DÖžbVO}ÍJ 9`±$Ä'S¯Ë0½VÞýž§æá¹¥¶Ì¢ë™E«àœÙâY¤Ÿ§»Óº*Êö— v™­×i·+8ý‹Öò‡?ü!Ìêà7J?üðŽ;îøÐC¥ Q[fÑ¿i]Ôgfñj¦h·!m ÎvÒEÛUqøá‡?Vh»k½N±Ùšo¾ù2o³V²h%‹V²˜©ì,ª½N[EË,ZfÑ2‹ŒYà³ÀS¬É( ?³x ¼ÍÚmH» i·!3¡~ç>úhxŸWoCH[G¹½p:n·!­dÑJ3çi ‚<“’ J3Âë´e-³h™E×mCˆ•7f̘» ÿ´Z¯Ó?ýéOïz×»þð‡? VÀÞvÒnCÚmHk”ÕJ­dÑJ#S²àTôõ¯} §!ZnqÆO>ùdk”Õ2‹–Y´FY=32RVË,ZfÑ2‹®Sp’™ðšk®ÁS¬Up¶Ì¢e-³xŹNŸþy¡áÇÞ*8[g«àlœ­‚³•,ZÉ¢•,ªÿâoz饗>SDEêÛ†dG§ø›n½õÖ ¶G§­dÑJ3¡dÑÓV¯ÕY´’E+Y´’ÅäR¨Š}÷Ý÷‘GIOEsõ»ï¾{±Å»³ÈˆÙº¨·’E+Y´:‹VgÑJ­dÑJMæÞ³Ì2Ë„"síiY‘1¾È+óRñ Fù6ò'{›½z…•ÕMdT7ò cȆ!dy §²âi†L«›>ÈæAéÈé#³ž"ç1x_êTµÕY´’E+Y´’Eþ61÷K½ÉS›Œ²LŒÌ_¸ÆO<Á5A.¸¾ãŽ;=4'­ÀE <\YZx«‘8É—¹æÉŠœ—B>øàƒŠ-Bþýï×iMHÃg ÑiøODê Èûï¿_Èÿþ÷¿ù—¿ü%…41é¹f¯õ¿"Õ r'NäÆ#@â}ÿôÓO—!‰óÁ>íá"»'†kôH–Þwß}@‚™‹à×)$ÜWÈþóŸÜbK/¤LÕýë_5‰Òã¨{ï½· I,3!Øëd…y?Ÿ©æ‰J…ÔÒ. ‹0Ý/ ùh‘+„Ž© é)¤#®! Hc¨ A”è°Ê?þ¸ž’„r¨ ® A< bF<ÜêÑÈÐK)d0™‘3âáÖܜԒ%§ÄC Ëý¢w´H‰‡WwY—$³ p%d&ýo)ñ€ SâÒL_™1¦BIdFfBBBQ)ñHfP”A<@êñÄ#™A¥@Ò<Ñz+‚ßdZPæê‡?üaêàãYg•N=õTžo³Í6£ŠŸ#‡“ ×Ûm·”'ä·¿ýmn·ÜrK!íçë^÷:®wØaÇiôèÑÜžYäq¥"®Ù1o¹]~ùå¹%\ðäÞP üÎ>ûln7Ûl3®ñ™•=-»ì²ÜîZ$ï6¤¿óŠT}ï}ï{¹ž}öÙaôh©¥–âv=öà\CÈÿøÇÜn¼ñÆ\Ï9眠ž\b‰%¸Ýk¯½xuóÍ7 yÉ%—p»Áp=÷ÜsCv梋.Ê-ºb^]ýõB^~ùåÜŽ;–k2ÊB|×k^ón<ð@^7NÈ«®ºŠÛu×]—ëùçŸÿ™â·à‚ r{衇òêÊ+¯òÚk¯å–Ô³\B©=äöˆ"múe—]&$Ù¸]c5¸^xá…™W4užyæáöè£æÕÅ_,ä­·ÞÊí[Þò®é§ûsÍ5·Ç<¯.¸à!iòæ7¿™k2ásÌ1·_ûÚ×xuî¹ç ©l•UVášœw\³6Ì6ÛlÜ~ãßà–ARV²òÊ+s½Ür˹ H<§Û!Œ”xV\qE®WXaÙ«Äó"Ïûé§Ÿ.ñÜW$d}ík_ËíJ+­$3²ï¹Å!`‰‡eŒÛe–Y†Û7¼á “{£·ð;§È }òÉ'K<¬CLŠ%—\’Û7©ááBþèG?âöÄO”x˜)Ì.θ]mµÕB5Èï¢"åÒ±Ç+ñÀ‰àA‹,²·«¯¾zJfX4p{ä‘GrÍøÂã ž…ZˆÛ5×\3%³+®¸‚ÛÃ;ŒëX€ ÏTç‚ÛuÖY'%³«¯¾šÛƒ:ˆkŠ‚1ñ¬·Þz¼¢(!¯»î:n÷ß®iÄ#¦k1²:‹žþÉid䱌€h®™™.#° ÈNìËžyë‼Àu,#B:Éeϼuq€P„¤.9Ê ²ç€„›É\ He€tt¸v‘‘© "#e$ƒ„nBa˜*@ºŒÀ‰c‘‘¤ŒHZH&¡ŒHe9.L†2¤2€… /Ž`>R„J…tqÈ"Wäÿ„T¡#B*ƒ°ZºàÐqº€TQ^i…‰W†Tá’„2ˆÊ Ê A< bF<Ü2ˆ@2ô’D ÄŒe2ãoO@º’QKJ<Ê A< †¤ÄC¿èÒJˆÊ ’Y¸2ˆHeð–ø2% •A22cL… ’Ȍ̄TZ HÙkdE Ĥ2Hd•© BSé¯òŒdåË‹EbÛiÕ´:‹VgÑê,F¸×iùX8nË'íiH{Òž†ŒøÓ2ª[;‹V²h%‹V²˜®x-³h™EË,ZfÑ0Aþ?ré÷(ô+ÒŸIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtexttableformat-cell.png0000644000076500000240000005760612536324515023757 0ustar philstaff00000000000000‰PNG  IHDRAç€<äv_MIDATxÚí¸”ÅÕÇ]Á k,cAMD# ŠJ,€Égícì½kì5–X>c/ADDMbŠ5{Kb{DE4ßù{ö™;¼»{ïîÜeïî™ç¹ÏÝ}wÞéóŸÓæœn³¾I®[·nŽÿ$>kÒgšâ|ñïyyòÊÒ<á;Sª¥ê«T~X^^ÛòÚQîs^}a¾¼±*Õ¦¼>çõ#¯œRí¯4Æy}hÏ8–¿Rãç¯4'åÆ$¯Î¸Ýyý+·®òƳÜzΛçrõTjwÞØUš‹öÌe©zË­©R}éH½íi{á·L>gò1‹?óŸ?žÅßõ³>×Ï=÷ÜÕ vh®¹ær–,Y²T§”¥þS°|ëBý€¯½öš{øá‡Ý—_~Y¤-Y²Ô˜‰½«û·•APÁmµÕVË6ß|ó6T`»e‚_|ñ…›gžyÜUW]å<ð@÷­o}Ë@Ð’¥OºG»0—a¿úê«l·ÝvËn¼ñÆLˆ¸"[ÜnJP pò’ûÍo~ãFŒáÞÿ}·À ”•5˜LÐd‚&œ32A]Á¹ýùÏvÿó?ÿ㉘rk¢d‚2&Ù¼óÎ[vöêïšk®ñ”àÿû_'…ÙQkÉR§÷Þ{Ï=óÌ3nРA‘V‘ –ËŠ” ‚àµ×^ë8à÷ŸÿüÇ(A£lPJPÓôéÓÝG}ä–_~ù"Kl&2ÝjÁÿû¿ÿsÿû¿ÿk h h Øàì0â«¿ÿýïr{íµ—çÜ6ªí%‹–„ü•±.5†q*¯ÕyÒÏs 5i»ÊmÁΣùü¯ýËýå/q?ýéOýšju™ ` ¬‰ãZ èÊõ¯Ô»•Úß šS…Êrãe Øy”à?ÿùÏ¢bÄ(Á¯Í¦A]ˆ €úÓŸÜ…^è^}õUÿÛÎ;ïìN:é$7ÿüóÍta‡åñüÓO?u\p;úè£ý»|>ꨣÜ"‹,ÒfÁ‡íŠÞã¶ñ[l[~×¼á…@Çÿ3f¸SN9Å·k©¥–rå®_–Z•@Æ@°²Læ'Ÿ|â–^zi“ %Ø8 ²¼—]v™ûÅ/~áŽ8â·é¦›º·ß~Ûýú׿vK.¹¤?Áɧï…À¥l/Ú?„Þü'/Ÿß}÷]¿èCŠ,7ý®ÔBÌŽkûôݘZÕ6ñ{XNøà<`À7jÔ(׳gÏ"€Æuð½T±ÈÀ@°ãìðäÉ“ÝO<ávÜqGc‡ •T®ÕW_݉ñ¦Ûc=Šù?ûì3×½{w†˜#)X äÆhý{ßû^±Žÿûßîûßÿ¾{á…|>>?ÿüóEêKJíå—_öe}÷»ß­ÍÔ˦YgufJý­Gn…V˜í]ú2sæL·öÚk—À §~Ý”:Fo¼ñ†×f†ý ©PÁêØa8 16vØ@°q(AÆÃÕý÷ßßýñôlðçŸ^üßn½õVdPS2ßÿþ÷þ·oûÛîÞ{ïu+®¸¢§úÖ]w]÷ÒK/yÀøL]ðü½óÎ;nÈ!>–e>ßwÜá–Yf·ÓN;ù2 Ú>þøc·øâ‹{S¨>}úøt饗ºsÏ=·hrÑ¿ܰܔµûî»û~ÐG޹뮻|±M£Ì\Ð 6ÌõíÛ×=ÚÚCéòÐä½C9į­Å[Ì­·ÞzP¬¿þúmúa Øqíðþð·÷Þ{6žvx¥•VòÀtÉ%—©=(¶P«JÚgŸ}Cm´P‚€%ã>þøãžŠ¤PªP—Ô Pÿö·¿õT¢`u2A>#ÁXšF(A“ 6Œ ¬åšk®é~ðƒx0Òßa‘™ü‡ÒCùÛLâ9ž| ê+ÁÐ6?(1@°!ÝtÓMÞ†¹ì0ÚZØØ°~æY" %HBÙ¯_?wöÙgû6õîÝÛ·%‘pðPºº ‚|pIØ>úè£îð¬8òN¨ Úrà5ň)FŒlBň²+ÈÐ`+Y PNŒ+'÷YgåYDòÜýäwXKLPLwÜqÞÜvYÙa@•…LïºN8á\[mµ•gyaS±QÑ +ë­2>Ø`@¹Z^€J’21»€†Íâ³8©,Rl€›Ž,¹% ˆÜÓ—D{ n\¨Z•)’PƒôgäÈ‘^ Û8vÌs˸›LÐ(Á†A¤Ž)c pÀºXÈë6Úh£61;($LRvØa¯5UÅ ‡üEƆ±”rÖ•„¼:ø *¶:¶€<ß~ûí‹Zjsܸq¾L´ÁPƒ%r&¨TêD›Ìï:Tì7í¢lêF{MÑT«Œ*à…¥'ÝrË-^Ysì±Çú¼×]w—MÒGÁê´Ã(µ8|0µ2í°Q‚ ‚ñÍ‘8…r°ø.nxÛ¢=Ž ò®Ê…eDfCñiR¶)¾I']yåæg^_?üpOU*@ã½*å&A:†‚WŒ@QCÍCñ›b¤AA°ÔEÿð¶C¹ÅŸwÇ5o¢Âga¹¡Ü,¼¢¥÷uÃwÃ;¼¡³€<Çå€3o“ZeÄÀ£Î´ŽðZYÈ.†WÚb ÿ4€àå—_^4Áaž`Û#!†š`m›–;RP{Å,õõ@:ÔoXÀwþùç{E^¬tm.o.ÊmðR›6^•@¨ÔA¶§HÆJŒp®ÃõW«v8” ¦ÁJsïö>1×ÜSŸ ĸއhýÌÿø{P’‡àJ<Ëšãìp) !oáäQñ„äåiOÙ•<™´çZÚÓѺÊQÓy »\›´±ÈùÚ[W¥>”zVî=ä‹È°`¡Y[Iymީ߼ºË9“èHßÛSN¥Úɦ…‚¡¿´…±…efÍp…{C4ɸŽÇœ‡9ѹàZŠÌ„Ðj3—ÈÄ0úÆ>Í{8Übá6 ý¥-¬îj³ÞYh¹#”6(”˜ 4ëØ5b,N]ØlRrM®ª\{L ´ðJô ?Ê Ö sA9jtŠ#ja‡+ä­\½LÅë~eí°¾HìÖ#{‡õÈ^b¾‘GêÚgÿ¡tc²ÆØ“°êŒ77§HÜIç3{Ÿµ ë1+LöS&{Ń“¬ñLÊÌÄ,“1óÿef²÷³m·ÝÖç+…L°!“½ŸÉ|e"êÉ[< Žíf‡ë‚¡¼ˆAáäâN*Ê‚`°xÆBìX@h&I|ÇX—Ï"fÊ ø‰gC“Њ­¼òÊÐØœ,x9OÚ‚¶›6L20× Lʤ(›8ÐêF`Ϧ ,64 ó9ZXÌ`븳‰-‹„þbdÌÆaâ{Œšy†ìôX¸ÔÅFfc^˜— ¯Ù¸$6>m@«ŒvbüÐÜrPN]ÜHͤôU…å,dPí¤ýôÐÇÞÄ¡ÃØÔÔÅÁ„é ãÀ¡C]4´™º â;ƒ¹`1îԵǸ3ÌÁ¡Að1ïaÞ™ €—«shÎUw§Zh!_`ðë\°ÙLÖ'‡#÷«u.0áQ P2¬gT6)spÐ/ê 88¨KçÐgSSuAÑ0ÎsÅœ±Æt­¢Eg. 4üêþž:(‡ÿ)d‚úÏÒø)¥õ9ë—õUÇ^`8¬ÖóvšµOb3ÞŒ-cÌzd¾ÃñfŽ˜+ÖëQäÕðd?e2— :©+“õ˜ÉÁ”ÉäÁNÖ~&ûÓç‘ñÎd¼3Y3™`C&ë׿×2A=Y(›Ï"ÓAk|-… ®=2Ájó4Z{:*§ëH¿*ÉéÚ[W{òTSWª¹¨¶œJy8<”%Ne,k‡SK#FEÕŒA{e‚¡l¯” 0üž÷^U2Ázk‡1ž…b€mà7&¹ŠHèT¿kÛ´ê¤3/Ö©rÕzj<ÍÃ3•y…>õÔËNÏTæ£eó,nš’„ßÃ÷TÞj‡µ®RýÊ•1Åå¨,Mû®åjßC °–Ãw•ißÃrt.b­p¨ÁÖ6k9Z—~Û¬u‡ãÖÕÑ»Q‚UKc}Ž%¸œ,ª!34lVň¦ðúajcidìÜÒHm,­WæÔÀÛØá ˆµ>·0–64l%ä {ëˆÔ H8½˜¹EB–Ù´ Xov˜{šdÇØaÁVb‡¹Ⱥç _ vXó‹;Ï©((;Œ7ì0W.6ň `MŠîË¢ánz ň~æþ;²v¢U1ÂÝg@ûÚM«©·±4‚V.XëÕ!³4lci´Â8…À›QJci¸+œ‰p!µ±4N¨ƒ3f,ÈXïÜqdp  ÍXº1µÃ-e,]oJrqWET4AÁV¢‰ñ‚OB\^iˆƒì0 üâÚKA¤¢ñÏH™¬ÉM&h h X“LA ¦á‚RKãóß™8gHm,_IÌcðiÆÒ5‚ ÖP˜AUƒ]›3lí0ÎnqJ E˜ÚX`%MJ™ F{ÓHo)e‚([nÁ¦’ æ¸ÛÏ:믥P;ŠR±É “Y‹v¸!¯Íi·Ür‹æŒ< %¨ƒ %NAÁªAo/€ ”`*œÙ! :çœs’ÄÖ6¿ú꫞ÞgŸ}’ɵßàí¼üòË“‚ ” ˆ‚$56¼®á`,Ê=…L0AØá>úÈ@Ð@°&\c5Šìp­ Ø™2A}† 2vˆ€TÚáÎ’ † ;Ìu¿–Al¥Á &6=† ¶•²ˆ¶˜ÂX: ¹j‡S(Fôó´iÓüÿîÝ»—œOÁz–æ"¶F±Já@Á@Ð@°ÑA°³-i¾3f¸©S§zu©=K§´Ô² Xň `#‚`Èa(§—x ©±ô[o½å‰‹í¶Û.¹±4ÑÁÇ<¹L°å(A@€ KüË.»,¹bÄ@Ð@°)AÍ3jÔ(ÏV8p6Ó›ZØaÌchïî»ïžŒVyà˜1cŠaŠ@K ‚õö"ƒ –K§ð"cÚaÁFÖÇ,q¨©U&¨mŽ¥S9Pè /2-«.ò‚áýöÛ/‰£ »ŠLðCñŽCŽ?þø¤ÆÒÈ ¶Ô«W¯dÆÒ:Ç{¬'T0ôNa,ݲ”`ÞiXîT1JÐ@°Y(Á ÂP¹ —Rz‘!ä&@ˆÕEjÏÒXs ÄÙA /2-M j‚ fPÅ˃i‡ [ŠÜrË-½v8Ž´X«L°3=Kã ›ýŠ<³iµÃõ– bÉÅih2AÁV¸1¢‰õÎo ~)#yNUSP‚úœ6“BªÕ(Á¥7Þxc/áî K¶’±4÷dY«ÄÝNíY:t¯ŸÒ³4”ÿÙ³Mk,]oÏÒ¸*ÒÈ[©#F 6"%¨ë¼OŸ>Þ•Î>RÜe‚ÜF¨Rɵ߰ð°Ã'N´»Ã©Œ¥K-ÄF£ÛÓ>A£;b,M¹(F””ÆÒ¸ÿ˜§$©¥7ÜpCïYv»i¥ëíY«v|ªÂ/5;Ü^J0”yøïR†ÿ^ú:m/¬ƒ÷Û3ùy¿ùÏÔAŸÂ"òA¡4óž‹ ›K&ø»ßýÎ-´ÐB®oß¾ÅúRØ b,­ìp*;A}ÎaÀ¾Ýl³Í’›È´¬L_mÜqD›5'e‚…•ïºtå6@8ò¹ƒ” ‹'6 *Rô­ÌÆî èô{*75ó" v˹†ÙH”`½ù¤Ék¥µŽ{ï½×—‰Ö©žž¥ ñì-r¹÷够´í¶nÆôéneiK¯£Žr=„U‡Åû䥗ܫrþS&Šsu°€å2y̳Æ,‚°M‘|± {V3~$¡@ï\KËl&íôÔ¡xþ¸C„äßÁó`B–ÁX¡äe˜Î}³àÃE]èc›ÍY;Y›€4Ûf‘:}ä×v±¡?ïÉØjÌ®»ºM8Âõ>ÿ|÷µØ“Í%›¦PÀ7íŸú±E…±É= uûÖ„T_áðzSâöŽ%@߃vÿêWź۬Sæ%,3Û¼¾×C; 僋}õҜʳtgÜÖ~«œQÝ™v¸ ˽|®ŸK’q”fÊ›oº¾'žè6{‘yé/"cyN&Õ-¶p¥½ (~ó²QYÜãÔXVåYîà~øÄn”Ã×’»¹XÞ“Á‘={zÜŽxÉe@PA˜[FAêårÚgÿ\=Q~¯Œ‰åSJÙ¿}1OÐ'¨ÛÉ£G»±»ìâ6‘»¥ž}¶"•ƒº¼±)€+å‡óËKgšB›¾’:èÿ›bc:vÈ×çðÃÝF^X¬;ìw|ñÿ+4ØÀÍ ìL;A“ v¢Lp é´‘YO™ ßÀ…MôœÄ<þ“D½[U¨³Arâ{@ ´ÃJqÀò\a÷©Øa •E¶4!a‹ÉWXÓ%è;2?Þ›Wêí!,Il dÅFl-6 (ìÑ·åú`I¤€ m+€ÇWÒ–_|Ñ·w>‘]ö€ÞE0TyM4HS…ªýR¨]òÓ¶ù_¼m^(&ùÎØðln± £?÷œÏ7h3“`;ºy]äß'”`?¡ 7ñôö¼ózñ9l«Ä¿p…r— þa[‹à7sæ7B~Yk¼7M(›Ï?ýÔæ¹ä]=t|Ý‚ãå@ÙXô¾à‚bݳ T*é©÷ )ƒrçk„îBu—#ÔC;ü¢ÌTAØSÞÁöu¯ŸòÆÈË"'§/M{c¤ÞÆÒtšE…Õ|=¥²®ò|B¿~î­§Ÿvƒ%ôŠBQ@ãqÁDæeñ{øÞóÏ»µ…Ê„%VÖë¿Ò'… ú—¾Î`"Í'ùW ÛX6&²*¥\¦ˆ ×P‚Áâ©[ØÜ¯Šråi ø‰Èƒùäï;r¨üફ\wÙ¸m€WÊ|DØÅã ³PÞ"€kë- êSÖö}¡z& Ñ{į¸'›ÿ“wÞù¦ORÿwD\ðC Â’ès‘?`úÈ D°åæyÑç2‡›H»Ö”÷Úû¼°È/K{?•qbæØšËJ¹}Eƺ„ô¹xÐP•«” Š‚hkq6ú;Ù¯Ë}g1Œ~—^ê–4È}!`>Vœ|~&‡ŽàÔºûŠ’mmDÆê±Áû›Pöï=ú¨ûªÐïù‘mIÛÌn‘@¼ëá@a½õÖóÆÒøèKé@6R²»åOá@e ÆÒ˜÷4­…Vñ"£2(¨¶Ñ†òl'9AÙØ® ?ê–³9bÊÌ×) w¯é›ŽKŠƒXÀ é=a™?êgYÙDÛåÕÅF¯•J£ Àø¡_üÂÁ ¯¸õÖnqGö‰PïˆRçÛRÎ`¡ʘ&§÷½™ŒÅвñaüW²Iޥ̧²7Ü×çŠ+¾QÜÈF|Kä´cÄ~smш$Šç’ñ[RNþ/EsþžÒ§òîªýû{¢œGåý©Rï ø¸€ÔÒßµ\9PhÿŸHŸ¹ýv×]Æ{¹m¶qß’ÍI¹ï£H‘˜ÐÛÊ8-…µx»Ô·ˆ€ÃB¢(ú@Ê\A@—r¦ý‘Œ¶uCž}ÖÏÕÃ"÷š*ý›"å-&”íº®)±5V6ÌSw  Î€ì)íOæ†ñc^>ðî°îÝ‚Í\/„D1rŸÌC ÔÏ„Û|ZõmëD” ‚àlàÁõQî&b‡)Ò°ƒõb‡•EÆì–o{Ñx…,\›¶Xh¯„(È·< ÉÂxö—¿t:é$·¶lúM®¾Ú-P¸W À>&Úæ—„]Û@䉛^w^ ;¬Úe€{†°Ü£e³CÙ pYAÀÊ÷]6; ðìm·¹õ¥¾H}€Ôý"¯ (nTPh™ À<(r˜E:XbFôE é z5©à9¸—PT}.¹¤8¾P‰÷ @~!ka']e¡¸F‹bé‡'ŸìÖ?í´b[ß±²—ý‘PÚ‹®µÖ7Úd¡ø·¿ …¸¼P’ÛÊÁà)99Ü- ó™ÌÛ2"ÝzÒ$x²)SÜýB¾%íÞââ‹ÝÚ‡ꟿ+‘ GoµUQ©c÷”|T(Òþž¯{ÜqÅ>LÅÓh9´ŠfW‘KB¾Æìh=Ld07YTDðS˜È„m¦½êY:•?AÆ…uÄÉLd)F`Ô³t=#JQ½!ù&H¾•„2,,Ó×chWîîp`˜ x—œè3dÓî"r'¨(&ÏgBíÜ%ÔÈ\Ò·]äóüÂö(~”lÂŽ(Fø A©=/ÆdSo~úén]_À„œm†–Ó…eLwÊÍöbØCd™; e„<Í+Ø0Ò¾7…+@ØKäyýPé'€ÆÁ°¤”³³°Ú^« µk-õO–{²€áÐ^ð ÆXÆ2A/o…m0ý»”·Ã¸qny)“±¡/´ƒra¥ß0ÝQ6íÒ2™(©< î(ã´”8ØÀv“v}KÖÞKâv˜ÛJXâ5倡î·äÈ¿fœ$ïCòìeùmg±ùTù­?ÀäàzZ`”»¾´õ[ÈïÉÍ`,Ú•–)F:ÑDæ$ÙÄ=zôpGÉæ©§‰ŒÊ Š ( 4XHü¯ƒ!åXy¥ ™‘b;µ²DÛZä$yiÂ&›¸w…úØE6; ñ€íhyÖaJ°@½þQ(‡W„rÛE(Ê%„=™˜›ðÞt[ÌXþ¿*òÁû<ÐmrÌ1nCO•wªB#“Cb”°d ÈüXØJØê·…z#ÔÛúb»éµ×ÙÅYÆbßø†P_äïÞŒHÒdiÏ8iW¿£öõ(pÞ!`LÚUÀ-oŸ”ü‰\p;àž23e¾F 뺳ôc.íW¡ï¯ˆ9Év[‰8À•K=oÊ'hc¡ 7’²7ó¡Hÿ|ê©^ÑWØý%e¬”ª,w ¯^”à©Ò6®Œþ\ú‘ÒXúCë×^{ÍûèLm, ÇF;u¿%Ø…¥Õ4ã]ñc8^X,صíŸy¦hÛ6+h»7Ñ“O¨®Ï%¤!‹k ’óOqˆù{‹E„­™¿À»‚MÛ¬‚}Ú§r—ó3©o (V6céÑB™t„ ÇaŒ)ZÖá²` ,½ S¿£Óú™SNqÅÀà[ou+Ë¡ ð×;BÊ-²´ÿÕ8L””÷®€à]ÂÚn$ʃ>:E™ã&eß/¬çdü¡PW+ ¸‰‚ ¤e<ÇŠéÑÜRrH×ð¦Í Q¸L•uµá¸¾W^é>—ù) ¸ €çÎbê¡ï¨AûËB>(`7@þ‚^;,j¶O¡½²J¨Š?JŸß@ã/ùº À/%bˆ¥Ef»Ü€þs8Î $õ2–ÆFƒæ‡„RMi,"ÎaØœÚXz-™od‚‘„E›«Q1¢uà8A÷.BÔ5ÆHõò5úº£PB=äÔWš6í-ÜyYر? …±¦çf"{{IdSaâ¤xED¼@a!eÑàŠr#a_WyÚ¡½±t• x,îO¤­Ã?øÀ›{¨"'ïnò3BmÐÞmo¹ÅkzK ÔãP@PÊCŽ7F@pC™ó¾¢Ñ¥ïØÝéÁ¾! 8¬öãìç•ͳˆ(9º…ñ. `{ý…|ÿîðán¡V?JðG”˜‹àJ9€àv[•Amo·‚ìòdaû?¹èTaïg4é½Ef¸Š‘ÀD§žž¥¹Û‹ìYÂ’§ô,ýª°Ã\mKíYz„Œ”y‰È‰Í³t jÈÖÁ: AUîõò,]”íÉßDÙ¨oðl!a;2¶¹²‚ ›xEXAÝì^È.¬íwå^ñ–2‘íñxRµbDoÙÈ»ïKØë{­pg²2¡°4þ ¬Ë"+ûž«@ež_ŠLóN‘ËÎJÐ]ïv¸·°Ñ€ R‚m@°À+¾!ýPvXMnPžÜ!Ôμ¢x&mªèAÚ„-ßH®Þ‰·ñ’ °Ã rMØáåPúª@ Æë†çÓÔPüpO{šÛH»aÃgE·Lºb´¹Ð³42ö”v‚ÎY´¹NSŒ rǽ>×çêêEг°ð_»ùfw¿h»“v Ó6 ¦È&±ðEx[;FLL>û´í„2XFÜ ¡ø%›¤‡PqP’j„íÛŒQ°”ÿ71ÄþRÊ[_¨24‘ÕÞñ6‰ÎO ¨=" ¶-쵿2oìŒñ´ø(œc>4¯ÈQ5½-ZèEÄVp¨ÈQÊà a¤p€àN"ÜůÈÜ(¢&½%šç±27ýVœ¹%rÅ)¢$"ìðŠ3"MO ëùÌæšë†òõb‡¹-……Ø—f­2Á8Ú\Ê›øÿd¿Þ%óÝ´ìpKy‘Q?vkÂ>> r°×€º °­$µŒØú[(¨×…bca-%€3HªFoXL`¼G(-I×Sd}=…ÂãzÙÛbòw¡´æêoˆ°Í‹ Ð"°Ð#E]áäwïEF(ÁÛA1§ÙA y” jI©óa‘÷<%v€K‹ülµÝvs K{>;ÇE› PB©~[ê >db¤.Fz5YhË ˆaŠòwÉ;E(Ù°ÇÃçyŒ ¶Þ.Øüm$± 7[6¨âÄDæu)WLdDœA¡¦' 5½Šôù¿œ€+à {Ë­Ž÷E·¬P…«µÀÑÖW”YyƒD3¼²€$ã ÆÒ -\? )Á—Du¿°õ[Ë@Û_“ƒd‚¼¿’P¼« È/+íë.fK¯ûJäµ€ ó 8cô÷ñã]w¡À Þ±ëœ­Óz(Fð*±ô2ö)=K£ù«´D†KíYúû2—(F¹i^dKï*‹w 1‡øµ,Ø9âO0pleô°lü·„Bù°mzÍ #ƒ¤­Ü€è+ôVäâáÿ»²vìÙT_ÞƒñZZ€¯¯°®\óRYÕT¹ñ²)W*¨Ÿ˜°¨–t¬lâ%Hý¹ì0íÕM*cõ„PD/ ;9½ A¥h©ûË|!ç"+x¯þ§¹þU ™?– òUA)Yøò" @ŒIжƒèûX×0ó¬m Sü£ÌÙ[¢dØ^\@qW™¶¢¨™(àó‰4Óže~C“ý˜´u2ñu m“;ã½E{½×ëÂks"r@K7ÿ!Àù'yg3¡ºWҧTDã;UäIÔ½•ˆÖ“<~ŒdNž—µE½:Ÿèÿ—ûÄ~¤ßŠ:tQO¨)z+/¤ö,M{w“9Lm,=N¨nê,k×nêR™ÈèóÄ#íT'È)µÃ-|]áT| š `+Ù â ;Á1âÏ1¥Úˆ [Î)G5v‚([(v»ií[Ñ‹Œ àœAÊÅ‹Ì}Ø*¥±4×ñžß8>Mm,ML #H$A3–Nd,ª:Wbc˜±´`+Kkžßˆ—l‚,ÅáfSKÓÞ”–”]¿é¦›üþbo™±t"ÅÈJîqY ˆƒ Ã#‚¦Ic,j‡ÍXºÁMdN•xœ†‡Kð3‘1l%cé“$2WF!£RKsð£!†uMm,GiØâc$ZŸK›±´ Q‚5Kc#ˆ±4wˆSKw†{}5–^K""ü›D`4céD” F— IxJÔùF ¶’±4žŸ±‘ýå/™ÔXúU‰î;¬ž¥SKÿ\ÞSæÅ_ܼÆÒõÁPC¶¶Ä­e!àm“.„T È V ‚(X£©@0Ï2"^›µ²Ã±SÕì°æŸ+Š“Ò©* øŽ„žARäOêh“§¡@pC ü{ý{ï½79b1¯îÀ-Yª&!NÁ˜–õ£9Ž\‹±46²”Å!ÂX:îP;œ‚ åüÇ®7•v˜6s}–k„ˆä{°JùׯÒXÍ|œ¶)Œ¥•­¸í¶Û<B¾cÜY‰ê2JÐ(Áðw%Ä)×_½ÁþýûÏæºv˜òV\qEwóÍ7'a‡5áY¹ ÄEªhs Vøÿd?aà‚Ö~ˆ~çwvx >ÛPÕR‚ú®(ˆ2¡Š3éC&ãÑüŠ= ”€äGq„ûDŽÓR›×@Ð@0o]éo¬¥E]ÔÝpà >ÜdlÏW‹bdU NÏŸ†ÜL‚|&dÅ_%Øü!C’ÝVÅÈzë­ç#>úhÔý 劖œ°Rîl2½j@Àƒ­pÍÄmYc`€Ã† ó¤5~ÊR(Fâ@æ–,¥HqlêÆÒÈÁYd·#µ±42ÌÝvÛ-¹±ô„ |LÂÏUˆcÉ;… ìE×hÆÒ\ÂX¯)Œ¥;JÁ%h”`©uUj¬ËkcéÔq‡;ËXºÄšIÂ7üµ9­ã²Ë.s /¼°wžB&Ø@Pÿ4È}V£ÓölxeCbÍbg‚`+¯Œ5R#ZÁüzt1ÂËíN>ùäÙ´ÎµØ "ÂNO/©£Í!b‚->çœsJZ\tyìêCvB{9YT¹>—¿øI ‚±iD¹qŒÙÇR‡ZWÁJë¹= ZF`( '¤2ÁT^df̘ᵸ„±M¥Q†Ê‰f—ÂB‰:›ÃJŸ^½zyÓxÀ ì—\rɲýå/¥ú®ìMÛ†.Ç~ýúÍÆñÇFîÓ§#ƒ * Z¡(›öÌ}WÁP;Œ\ û×^{mrÏÒ!;œÒXš[ìב#G&QŒ4$Ö[&ÈÕX6s³Ê•EäÿäÉ“Ý;ìàO~B ,a±•Šå/ú®²Í¤¥—^ÚÏ Ú¿îÝ»»;ï¼Ó—Åøé;Jqð…JZ¦‚Î.ò𨾫í>á„<¸!p‡à™â’gñÅ÷¼Å[xÓ-—¼Z¯R!µ¶Oó6+V¢þÕ³t%±–` Úa(@6õÝwßD;ܨ2Aí/`PhüVqp"qÊ)§x‡3gÎô§mžùåq‹HeÛl³ëÙ³§7ßxBö¸ÔÆ Á®”‰Q¸:'È€0c@;˜wsç ´c³Í6+]œ'O.VØò¨ÖfALY'ƒ©A¯LܘJ ‚ÈùϽç¦Áz³Ã8€d“±š•Öqœ4i’g ÷#=Ø‘¼‹.ºÈGï"c€1êqÇç²,ó†ä§W–Û2J€ ì>Þ©“º&Nœèï½Rÿ…^èM1N;í4o•¯ùŽ<òH7~üxO•"ëá>(`Æ;°Ü‡v˜h dÉÏ\7η À†¥Ç†î ƒrgŸ}¶»ãŽ;|{h¾øâ‹nôèÑÞí}ã7¼{'Ôì –íñÇ÷.Õh ‹ð=º7«LÛRô›1J)ÄX{;ÖXj™ Þ¬W¸“ &Aê 1ÀÍ‚ÚGuDùòË/»gžy¦†76=€­DöœV”E·`±¦÷ÂôË/¿Üƒ'2 ˆ­Â› JñÐCuÇ÷Žky÷è£ö2X¨5Xi.ÙÃJ“±Ï>ûÌ{yúé§½¦8À;¶øi>ß~ûí¾€ç5×\ãÛsì±Çú~!74‘²A`Ù4›o¾¹o ëÛµ+®¸ÂkFi?T e#&à”2 Ê›š™[æê:¥giŒ™‡šÜ³ôFmä#°ÛM ‚õf‡¡Œð©ÆÕ¡fd‡µ¯ô ÊSšÈzÚ×ð]ByO?ýôbyˆ ä‰PkI*%øë_ÿÚxâ‰^æ¨ *Œ <€T&W”`§IPžXìF(j¸Î…‡M€õB-²qJÜ*‘^zé%/ƒ+lfÚÎExX²í¶ÛÎ×ÉýX¿¡@9äC¼ã ‚„C ‘P¤làf¥ÃÄ!Á!Ò»wïäÆÒ*Le'¨Ÿ‘ Óξ}û&1–nYJ0> 5äf  L B•Aùp¥)|XÌwß}׋À‰?Ɖ“—»•PJ°¶<ç†M’Ÿ1<ï¼ó¼ö¶–²Ù |‡"c“ÐJBÑ‘FÀ *•ò\"ò.õãL€‚}¥|.\v÷°ÁÜ€ Ÿ€(,?Ê.¨IúL9ü¶ýöÛû¶røˆ°Øúîæù{â‰'*Ê.»:v†™ÎŒ;Ô•ÌÚŒì%ȦD®„B Y#êÙ†‹ø,LØN(@Ÿq`L?þxwË-·xp ã;Æ®Ì „Í~ù¯2Ár xÁxPB3}út/Çá;¬ëóÏ?ï)4Œja»¡ò y9ökZ>ïR/,9l ¶ï¾ûz UëK;ðÄgA݈¼§s ðÑV‚‘ŠÙ(m¦P°Í‚š1Zõ½öÚ+‰±´>ûàƒü:Bé·W ‚ €p ¬eÖA*cé–¤[ÍXZ5®°¦r2ì¬ÂÄA€œ6€äA;Ö(6`A¤ ¦ ÑÊ"wS @a±²Y" J0`€Qä­ÊcI42H6,7J ¨HMØ"¢à¸úê«}[¡*±s#!o„Å@¡ê”†ºßo¿ý<`êAø’å,2,¡ÚÈPÃÈ›C.ꙹdœR*FË2ŽX¤VŒ ¤SÏÒ¦©Q1¢u`C™lœf• †c °(T ±°`q&EÁz²‘—B-=ûì³~¬ ×á„* V@¢êd±2gªh @5jÔ(ÿŸ…¼úê«{í$¿Ã’¢ŒÁdƒö!„Úd¡Úø Í6”!m;øàƒ=@ãУý€2AÚ ¦(Ä*êÀ1)}Gq5õ ¸#7d-pPW³*FBLJ—\rI—1–FnK™jàÝ”ÆÒõ– B] DkÙŒ2Á< ì!¬ A‚"p ঋkIÈõ0:F {Œ™ å€ Ô,$²;6Sèòˆw1“A£{ë­·úûÙ°´ÏVef.S¦Lñõ£A†rÀh m£ ìÂ-‘õÀaE?h¨ÞôhsŠÑ7,àʼ¢Vv $Š0˜¼È8qúžþù^é¢@a2Áê8€›ÃÕîׂéYº+€`%Çœ•6|¹«cŠvöµR=Õø,77åÞ‹ïF£½ÆdVöõRÄÍ ‚È{1KBvšÒ³4" d¿ÈžS{–FŒ¸bj2ÁDì0Â[daÈŸT8.¥$bÊIA4¤”bï¿y^QÂ;©!^Þ}ý…W¼ˆò„í “R`áaË[Â6ÇýŠo–„”X^9á…ßõ³MØ÷ ÙYM!Å÷½T¹yÏb'!¥˜7Îᘅí‰ç"¤tÃ1,7fá8‡ã:ˆÙÕxÌâöÄå„c¦y©Â¡8Õ¢éŒ@Kº_‘/S²æp<Ã}š7†yû"o=Ö˜÷‚WT1Ð…Ï4J]ø”Ùîhsõö";€0'K%Ó™Jò±˜}jO9ÕøµË“quÔãI{ËioßóÀ$dCSÕÕYcØžù«v óòTÓ¯TíÉ“Ÿ¦ö,Kw†géö¬ïæ¢ •ÇàÆ‰¿WÊÓpîõÃÁ9묳¼á0fl\ÜjaöMƼjO»€†ÚÔac†fÃcÈs´£¼+@Ù˜š d'¢=ò&-GóèU4êF.I],Œ~1óк R©T ‡‘‡ Í¦ØMþ£ØAûЮű¹u¶YëÂÙ%&#ÚfòÓFm3Þd⺘êb±ÄuA9‡ãC9¼Ã掄'òó>æ;C0`ñ˜ DZy¤]hX™GÚIÒ¹ ýÁ´-¹:… a¦Ã80.xÚaÍ`¶Î÷—é#s†â‚ñf bÌÎø‡sÁ<ñ¶ä Ço+”É|s+ãh(5žÓ6úœÊ‹Œ~†€ .ÆV¹TÆÒ˜2©Wc†sP äa¨ƒ ÷Â1cþ˜GlYYkX.°ö¹`ͱö³!k6“9Ëd {`ÃìLÖv&‡i&û*“»Ö™ÔŸÉ\d2þ>Ïk¯½–‰|5ç™ì™L®gf²‡21ûÊ2™ÛL!„½¡´ÃÊsJ`Îg yÙl€Å Ì‚¢nÀ‡Ä¢eQ1È$'?ÂBÒ+W³‘G‰F9äa‘’Øp¸§d¨  Äx‹{ÚC‚]§>¼¤0Ù`£u1FL ‹EÀ¤.´hP(,Îc¡ˆ×´œŠl,(PÞc,:¨:@j Ç€ºöKÇÐã]¨¡p|(‡w ”ÙlœÂÔÅ%}ÚF]ÌuqRs˃ºS2sA]”Ãø@Y1Œ‰Ö¥ÞfÈÑN°Î` ÈQŸe €Í8°AÃñѹ ºÎt.0½µÂø3ÎuÑÚ£v§:”ÉØC¡ph‡~Ò_¾óœy×¹`\Iôòu.´.ê¥~ÊÁ´…Cšw n+æ‡ñѵªsA?é¯Î;k’²Y7ÌE ‚Ê36)-égÊf<˜wæšÃ‚õ©óÎoÌy™?æ1ž Ö¿€V›µÊx1nìY9œ<Ø^”ìíL(nnPuÂÁdR¿§e_z–WÆÔSˆ2™ÌE&s‘É\d‚#™¬§LÖ[cR‚yñ+JÉ :b3×¹O5©=íëÌrªé{ªºR¥jæ8ežjú•ª=yr²ÔÆÒPkPdi,]Í~jç\Ì2³V™`)-rCP‚±í\èâ=<Ýb[¨ÕU­¥R–¡F2ÖÆæÙÖ…ï…•Cíp¬± mùò´ÃyíRšèR}/WW¹râñ Ë)§Å5¤ZN©~•«+o.âºJÍiÞ8çiyóÆ'O#¶±œ¾Ü¼Ç¶”yÚáP±SiýäiªSQ‚w8¶¶ˆ×S¸â¾ÇsiÎüyPRM¯þ…J ÍšÏðG€õð-ípÃR‚•ìø,îpÇì-îp׸6מv×âYöV;•…R}1WZ‚‚‚ ‚|F¾\¥NÊ#‚‚‚‚ ‚Ív ì,í°   `Cƒ æÃ\3LxÂÀe‚‚‚‚-‚Ø>b‰¨    ±ÃÆ7nŒAAÁ´ Ø™ž¥    »rå¯L¸»2444l);AÆÒ(G¸cnÆÒ&44l)TJÇxÛ1ci£  [CÏÒ*LåYÚ@Ð@Ð@Ð@°Ë€`ìYÚ@ÐØaAÁ–b‡ñéâû1•gi£   »Œb¥ap0kŠAAÁ–d‡‰ ¬ÆÒF &`‡¯½öZ·÷×€`9(µÉ㉇¶7žmü^Þ@ç…A CmÆáµÎ¼Šq›ÂrÊ-ìRï„Î@ãp˜•6m^=yaEãùÉë{܇RóÑÞù‰„ÆýŒë Ÿå}'ÅÏò@ .»£÷3oc†NPË­ç°Íy툽4ÇŽdKõ£TýqÔC3®ëU1B\8 h)‡¶¥ÆüÆ{ü§ŒÎß €Cy̳¶™`W´2ÈC% 1>°ez”~’ÈG`"ž3®”£s¡á/)‡ LäÕºX‹­ßù ç‚qÖªÔE~ÆZ=+3ÏyãC9®”9¤ Þ¥ÍÔE~Êa|t.È£!:úò3fa]áøPsG`¨x|ȯá[u.¨KCYr޾P—†—e-è ~×vSÁ±X[¬OÖ¤¾"¸ùÙ'„^%Øë\çŠP º ÅÜÒVÖ&8ºFX[|‡Kdî‰à‡žQÏtžè7ëž÷À Æ8¬‹>òœ›ò,“±Ê¤lÒ>lIúàCmRSÊöA”ˆ4ÈI¿2©+“º2©+“23™ƒ4”ào~ó·ß~ûyŠ £„±Ô͉["‚éÒIŽŽÐ—ýL£¦1ãÆ+–C(F¢˜1lŽBä)¯îgòu¹Kã S òŸ‰%òuŽEÂ;D2£MÔ¥åPÑÆS] äy衇|ê§.€Ÿ ª`Ïb ˆÖE9E…Gô,Ê"쥖C"Üpô“KBH²HéuQ®¶7H,NNtêb£R‘»X”ÔEô3"«J“r´. eYˆÔÅâÖ¹ =l ÂQÒOê¡DcÓWê¢ìp.øN´:þYMåÂä¡ÍÌ/¿±à9æ‚9¥>B42ä§."½ñÏÇ”£sÁœ²‘è'QÊ Æ•¼lþ-¶ØÂ÷ß©Kç‚ëaÔEY„nˆ´/“µ•ɾòQæøLHNâ KØWC„¿L"zP”u“–6ň)FL1ÒØ®´òòÇòî¼z”Eï"ÇròRìp^¿ËÉm+¼Ó&ÈR)¥GÞ÷XVË   ›Üà·…õ¬âÁ€`)d‚‚‚‚‚Ⱦa-÷ßÿ¢ü¶”Å@9­t9 Rý‰Ã‹–÷Xj‡c„ÙŒ-óòäªÝ14l2ci>#WFþ† ÏnŒØµ9AÁ–A¥¦ò‚Ô¶„b„„昽ŠÙI¥5a h h h ØT2ÁmO^ä®8*‰ºÂwÂrÂ~Æ‘õâñ‰ëó”ë{¼XÃ~†ï…åTŠHW8•¢–šãr —“מJŽ>ãqÎç<ãã¼u¯§<#å0S?ý¢ÚLúK™ÔO›©‹¡y¨‹vRmæ(ãNŠÇGë¢m¼§uQ>ŸÈÃ8ð,,‡~R'ïÐNCú¥yø®uÑfæ¨~:†a¿´=Z—ö‹Ÿy†{!¼í’åJC9è]cÆŒq;ÏCœ"‰ëþûï÷Q²øùå—»ƒ>Øç¹ë®»|þõÖ[Ï¿¿ûî»»›nºÉ[ìmŒDä°>}úøP‰„$2ÐFŽévÝuWŸ—èDÖ#j¿$r–Xwá…º#<Òçá;ωÔǸì»ï¾~n$"—êE"êm!êQ¿ˆŠFT±›o¾Ùí±ÇEí!ѽ ˆF¤»»ï¾Û}öÙîøã÷å°‰h?m"ÿˆ#ÜW\áÆŽë† âó¡9"Ê Âx2®:€BzÂSÒ"Ì 6Ì÷ûÔSOu§vZ›¹ MD!;ôÐCÝÅ_ìî¼óN7tèPŸ‡6¡³6m£:€ k†~o°Á~P ÐïãŽ;ÎsÎ9mæ‚6Eðè£vçž{®»í¶Û¼ë)ëÍŒ”±e ^tÑEîˆ#Žð›Ÿºˆ¢Ft8ÆaŸ}öñýæwò…sA9Pg't’ïó7ÞèöÞ{o¿(‡~ëAœ‚d=÷Üs~/¥º6§ícŒXó€Ñ1ÈÖõH´Fú®}ÖkÈ£GöÑýˆÚwË-·ø½Bºá†¼&;X™¬ÇLön&{؃“ì»LöŸ³IN‰~ç#ÊI¤;eŽÔ¥ãæ…"!>/q_^NpÀª„CvÒ~úÁu+Â\’%Æ–ƒ‰º¿H8Qêb<¨‹MF› ¹H]äç=€Œ¹`íl½õÖžJb,˜ À‡Ã‰MÉö1&ÔÅ\º³W¯^¤åÐfú¥Ø…s…A¿^E@YçWó2$æꄹ€Š$”$·,805$%åq¸P—ŽÎý¡ïPYÌ;”'@ÆáÌøØ’”õC9ŒaTùc.¨‹v0_yAM&¨ óËš9óÌ3ý>ÓµåµÌ°~Y[$Ö9ýäd½³!DøÌ3ÊgŽ˜+Öqexðƒê“¹ôENÂl^JOêÊd29\2Yû> å'k&lÈd=ú÷:L ÖS;Lb¡$ ÄòäLíˆVß.¹O{5Â)ò4Z{òòTÓžöȪ­«yc{ÊI5Õ–S.ÀaG„«E;Ì>L–TÆÒÊjC™Ã¾B½U;íØÓe{yßóÞ‹µÌ C 2üQ6'> E¦²ê 5”J1ªVUÛ¦íTM«jæ4ïh =¨š+¾k9šâ<”£Z+8ži¹ÚF}¦î0øuø=nOøek]¥ú¥yòÚ¬c̓lEß Û¬}×ŨýËÑ1Ôº”JÑ Ö޳Ö–Sª®p u|4O<ažP[ÏE¨½ç"ÖV꼇ãÏ{^{ÂrúÂù Ç9\‡¡VTÇ6ÑR·*¿«U&K§” 楎K¹ù×u¸ŽôY°ÖЬ+ ¦Z^žˆ] ùŸõy4\g˜§!e‚1ÂâÁ ±q!¹ÍNÐì›ÕN0\û°Æ°Ñ‚È•÷Úk¯ä ›¥Uj§KW òye"«‰96£±´æü`-‘‘¥f‡‘Ë!3NÍÿô§?õÀ ; %§Ô `A04ºÍ3¦54lVÌ[û¡Ñp£z‘ðàÒP"¡BÉ>(Ëo7Fª0‘ÑÉÂôíÑYgU¬Ï@Ð@°YA0\ûp€a6£Ú×F5‘Ñ6cD™˜ø%˜)’5;&‚‚­‚¬sÌ…0=” ™` Ì3–Ná@!¤6Ã~†e%X%%ˆq.vmÇsŒ `KQ‚Ç{¬·ŒÀÀZ/¤º6‡ &6}©®Íi›Ï?ÿ|ßÎÃ?Ü(A“ ¶žLƒpd‚Ì7­L°ÞÆÒîÔ½”¹Ò2líp¸öaW¹nV®žŽj‡a­¹sÒ•–j‡¹B›¹ÂÙ´”`½í¹BÅ(î!š `+Ù rå™8wqSÚ r½kkÜóMm'ÈMW$ÍN0‘b„ërhȸËi2AÁVRŒpc*G )#å^ŸÏ8N qG»Ô|%ØNÔÄEr& of,m Ø ®}äkÜšR*®Ö›$œ5àÐK僩¼ÈའÄ#ŒÙ & –º|m h Øì2Á<ÅH ™`g{‘s¸ñ£> k4‘á.­ð gì°`+™Èà[—oøNLi,_Oi"ƒüê”1x›L°J™ N9ñ‡K-AÁV’ b(Í”RÊñ É~úÙÏ~fÆÒl"S‚—]vYﺂ‚ÍÊëÚÇã9” ž¨C ™ R‚x`Ç{HTÔª¦ÍÈ•lfíðÍXÚ@Ð@ÐŒ¥óŒ¥U&ˆCØNTŒ¸9-œZOí0VHv,ÑSh‡u1¨ÃRAÁ ǾôªÕ³ö€¥«h‡%~‡ß¯©´ÃḄs ¿%A8`uêr”à{]ÙN0ŽWlÉRª”G±Õj'ˆSUn_t;AÚI¢Üv‚1õ𓲠v·¸%øzW¾1¢'*äú¥—^ꯩo£ì(%Èæ$˜ÔÉ'Ÿì#ïÅ[«ÝÁY+ÿSÝQ$2‘Á˜8|Eµ” ‚›{ÊÄI…wÃÆ)‚/ד& ˜ÞNÁ«©Á­·ÞêC.%¬Ö Þ–Z7‘î™gžñÚV"§Å ŒZØaÖ> 5˜"Úœ&•½ŠŸÎ3JÁã£ci¼b§`‡u¿Â^–¢HÍzj¥<(¿Aƒeî´¯¸=ìðÓ]Y1¢§áwÜáOÂ0(‘%KMܕń‹˜„vÝà›™¹k¦)Np§vò‡Ž²Ú)Y㎲ÃÖÛŸ ±Yñ­–B&¨~Ù¶þ“ŸüÄ/bü–2ì4vØØá¼u²–DÒñqôZŒ¥ñ¡ [Ù•ü ^pÁ¾‡vX/2Úï{î¹Ç›Ýà‹y·h åwX1Â`»#òåõ” ªgiN–2Á ø [` h X ¢d @{* ×~ìY:•L0ö,B&Z^”[“µ‚àûï¿ï†2 èª1‘ÑžíÁ‰õ¤:è RD´ï Jðã?64¬ Qˆt%ÈžÂ2âÔSOMJ BM=ÿüó^~—š h'·Q:ƒ„ŠmºÎ¶¼»+;P04ldÌ[û]É‚F›ãnr  5€ ëÌ#·×3î0Z&ÊDó–B;‚ WòŒ6LÁò¦A̓} q‡û÷ïŸ<î0`‚Ö9uÜa5»¹þúë“S‚;î¸c{Ùá°¾NÁëëi,/5X.‘§f‡   õ ‚Hm,6{¯½öJn,]i]Ít‚Wvå#‚‚] ñ,Ý•nŒèÕ6•56ºÔ xq=Ùa(@d ›m¶™±Ã‚-ÅsðÃoºé¦ÉÙaLÃzö왜FΰÞxã‡u&SŒœmŠAASŒä)FÖYgO´<ùä“ ÉÃ$”à)õô'H¹€ÔÙgŸÄŸ Q‚‚N êÚßo¿ý¼(èŒ3ÎHêO™gŸ}Ö‡ÇLíO…ýßc=’x–NL j¾šAð˜zÊÕXúá‡6™ `KÉccéT2ÁØXº‘=KwºZÙáCê‚Z‡\lö׿Ž:ê¨ä” ±Ã‚h,­yN8áEìÐCMj,§€YcjcésÎ9Ç·S÷ë4–®‚®< AñÚk¯ux wK…< À5ŠLP)AîDzAÁŽR‚ê@¡•e‚8PÀ‹Ìc=–L&ÈxŽ;65%X4¨®†Þ3A:~å•Wº#F¸éÓ§»\0×cs5 H˜ \S‚àm·Ýæ]i‚‹/¾xѧ  `G@ EÃä£f% jA]û ÎU˹ñï¨v8Ë27mÚ4&•ÖDGµÃô,6^_RQ‚ì|*î¼ó΂®JpxL Ž9Ò³­ÜGÔÈó)d‚ îºa ®»îº¤2A& 6ƒ€3Ý»w7JÐ@°*|ýõ×ý\8‹Þ½{×L †kŸ@Hȯ¾úê¤!7'Ožì]÷CY¥ ¹z¨á?ŽS8UUJ&"7œ!/¹ä’©AÐu”’·PKùþ«•,7Õ€`ÐVÚ€‚‚¥6SK™"øz¹¹­•,·^M1¶9¦,ËaG è:‚ã…r»®C`-µk1çU‡“‚‚íÁØj†¥òµ»ªSÕre¤Š1ç+wàT ‚®½ìpÿåË¥ZÝëëçx0j6Ë-Ë@‚‚q»Kœ)£Íå­ÛîõóÆ&Vêo-Ñæò° 1;æ«‚}*!p*íp¹¯wØ@°Yƒ¯··ÝÕ°Ãí™ËFÁj¨Ï è*à÷    ›]9™à‚‚‚‚-‚®ö4444ltyìðÒ‚‚‚‚-‚.¦{¶ºç3444lAt ‚Î@Ð@Ð@Ð@°EAÐý?Þs·æ6šIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtransform-combinedtransformation.png0000644000076500000240000000164712536324516026410 0ustar philstaff00000000000000‰PNG  IHDR„ˆX³î{PLTEìéØl¯ØÏ=k¢B½c±éØÏéØB„ì¯c±kìé½ìé¢BÿÌØßl=Ï̽B¯¢ì̄쯢ϯc¢±=BB=ì̽±é½±k=l½k=ÏÌ¢ÏÌØìÌ¢B=±é¢lkcÄ”õ±çIDATx^í›Wã0 „CU—”­×{ÿÿ¿ð¤Ì&ƒ]pÀcqœ[ÎK>˜’RÍsËåºjºôõï‰Ö‡¸rˆçr½Üáîpw8„»ÃÝáîð»;Ürw‡»ÃC¾‚Üáîpw¸;ÜîwÇîÖšJ]1äÛ½Ai=ˆW/,eÖrG<…aZ"žƒ0YR»ƒ \1˜ž¥vŸd;òdx5k è øëï w0\ß]#@ @,3qnkV®,sÇîvÈÏ ïA!@&.BH©"wÌ= >]÷í‘1éÍ+†lM©AàÆ &KÏÝDFbo¯Çgµˆ—äÞ«ú¢€¸b8ÝLÕ)”вù.ñz'ê¡ ’\Ï&î;º|¾ô·íud(xBLX›íÇYA† YD±°9tbÁhá`X”\6ÌÐ6ÀÐVh:cNf¡%” ؃GçH"CÞŸúÆ8+ h ‹ŠØÈþ¬Ûý«ÏÞB=vV×ðˆZ¨"‹å8s .fÈ—x$¾¾Piû3\æ;bË×bÁøåë ±ò¹OT¼¾û‚›ÝÉC;Å£™ºð•uᣙ6"hžd¨Ef vðH¢&ü^#ϳýBEVd˜ì¤°.Ã8ã …JÜ‚“!r¡8ÕÖeÈþ7úbMÊ8Qɰ¢^Îà .×oL5XGIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtransform-representation.png0000644000076500000240000004175112536324516024703 0ustar philstaff00000000000000‰PNG  IHDRáá±ÑE-C°IDATxœbüÿÿ?Ã(ƒÿÿbhŒ‚Q@ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿbÁ#÷ÿ?ÿtsÉ(¹€‰‰‘§,ÿÿbƒÿÿÂ^ŽþÿÏÀÈÈðþ=Ã… øÒøPðœ8ê—A ~10`„¦:LÿÿžFÿýc`ff8{–ÁÕ•–£€a÷nhªÃÿÿÔ–Á Ä‚¶ P÷Ô‚‚ˆnàLJ˜ ò¸Àþ¨!#¥|Ÿlï´†*f¯U®qg r&¥×*w¬E­Ì‰œfÈÿÿÂ+ÉÀðùs üü8‹âAþüa`aaèéahme°¶fX»–áß?¦¡9žqyp0þ}  %%Pß 9IK?21¼{G@1ÿÿ"ì?FFaá!_üpq1000°²2 °K(¬¬ \\CÞ/,,D•zÿÿ"*þþÍðÿÿÐ.Gÿþe``€úb¨—£~Æß¿ ÿÿírô÷o¢ÿÿ"ÊŒŒÐÔ9Ó(Äñp—£q‡Àê‘aàüÿÿšåÉ(IÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿtk¸!ûý‰XþJ¼ÊDº~ÄÁP÷ <ÿÿti”xï æ…‚1ú÷ï_fff¸²¿ÿ2222 ¾,ÿÿÿÇãZ{ÿÿÌ\«À0 —þÿ¯RjÎ\èDå–tbÉŠÃCsVsΪ"¹}Oy¯ü™9Æx¤lh­$iÕ>ïÀÉ̼Sk¾ËHï]’ío\ÿÿDiôÏŸ?ŒŒŒ999ÊÊÊ_¿~e@ª;ÈV9 R®üýûרØ8$$„-¶þýûÇÄÄôìÙ³òòrKKKYYY999CCÃôôô[·n ªd ñÈ£G”••'NœÈÀÀðçϸ,$~úô©±±ÑÊÊJAAAVVVOO/##ãÊ•+Ôòÿÿ´›1Žƒ@ EÝ€&T„šŠƒ·á4Ts íÌø¥°’ ]ª]åW–ýíÿ-×î#À² BU±ïª·ÜÿBUC!à<ϲ,‹¢8ŽÃJc^À8"Bߤô•E€”ÒÛẮ"Òuå¯À{ß4À9眳¸®kïý–K/@ß#Â8~¶ûbŒ1F³1M“ˆ Ä—¤ªªê¶mmÛšù,˯'÷<Ïçy¶9¿‡Û¹öªB„e1Å{'Oÿÿ¬\» „0 ͇–EÒ³EF`¨˜ƒ ²i)ƒ–"iHC‡"OЬ»+Nǹ‹õ"½gë9®ò‡9z]W*(T!“</" Æô:^Š,˼÷u]oÛ–çùGÿ}ü9@¢ÎóD(g*N„ §ijšG ˆ1rÎ÷}/ËÒ{¯”²Ö:çœs}ß+¥BZëu]9ô]\Œ1µà¥þ @µ@5 )¥”’16 C×uïû(Ö•¶má7cÌ<Ï˲ŒãXÅqUU…„O„0Ænÿÿ¢m9 ψXDêîÝ»åååööö ŒŒŒ‚‚‚ïÞ½ûT:¯QŽâ(ÃðiƒDöÞ½{³³³áÁëè般R-[¶Œ‡‡çæÍ›È†¼xñBBB‚¡««ë?R‰…dËÿÿ$–£X‹1ü„äÌ9sæÄÄĨ©©1À: pWAüÝ»wBBBììì»wïF6êöíÛ||| sçÎÅê’ÊQÿÿ¤—?«‚PÆÏ9©„˜K“MÒµ6I4´ø‚Ö'‡†>B{gÑ¡ Zú)ýZªOÐ÷D<æÎr‰;\ê™ß—ç…Þ‡ßW\Ÿe„ðt:A ª*`2™8Žƒ’$É0Œf³ Øl6Óéô~¿s§iÚ`0àyžÚ®×ëx<. ÃÐîþÓ蟓߈²ßïÓ4Õ4ír¹`Œ‡C±X¬×ë£ÑHEÀb±X.—q—Ëe]×ûý>½íõzåóùÝn‡1fYV„4M£(z³ a¯V«\.×ívkµZ’$ô×&IR©Tt]·mÛó¼ápøÓPÂ0<‚ 4õz=›Í|ßg¦Ó阦‰Š¢È²,Çq „Õjµ×ëµÛmº›eBh>Ÿo·[ŽãDQ|>ŸoÀDÁè|>?R©Ôjµ!!!!D–eEQ\×½ÝnŸeñ[?ÿÿ¤œ1Š…0†Y¶Ðê­çRª¨—±I'X‰`å5<€Ø[j'žÄ€%l [ o n#¼Ô ù3Ì|ó§™8J•GÙ9 c À7z^¯×<ÏeYÞndŒ]×Eà1Æh­¥”B!Ä8Ž|ß§ûŽÏwÚë G鸀çyÓ4¹® à¯S‡a¸®k’$¾¬ánœsc±J)%¥Ü÷]QU€,ËŒ…(;bu]“Ã~ëüÑZw]€Òå?ížp”ÄLÓ Ïó¾ïoñ/ŠbY– ì¸ÙÇó<ã hÇq  ió†"iÛ¶-Š"Î95L²°J)cLš¦Žã´mk>æè/ÿÿ¬—­Š†P†#øWÄ`ò4ñ&lÞ·`;Á;ÑhR0F›X,ÇâOUð|á€aWwىÄaÞ‡ygþQ×u@UUÓ4›¦Y×5ÏsæYlm`Œ !„0 ™ÀY–Ñ'ªªê%yï+ß3º,‹¦iŠ¢‚Á0 û¾'I"Š"BdYNÓtÛ¶¾ïÇI’¦izl Žã²¶m‹¢ÇñÎ\×u¥Ô÷}„PEô¯^ϦZ–%èºÎó<Æxžg6ÿû¬´,ëË0 ŽãlÛ>Ïóñ ð<ï £?G×uìyªëš> ý+F?ÿÿ¬—» „0 †M$6ˆR§e JÆ ÏQ0m&II‰E’,¤˜Â"âtÜéÎeâÆöçÇÿF ï=žI_–…Ò1 Cö1J)cã8â«BÜ÷=¥DÝÿ…¼ß=³=b”su]_Û¶¥-FW9oÛV–eQÆ<Ë@—\Œ1¥4MÓ;£·Fâ µÖ´ß­µxWÚ§sú¾¿†YUcLáœË±ÌóLÉ !à¥m²plšæ–Ѭ·è}]WcL×uBPJ}$=ÿÿ¢Â<¤h þõë$:ÕÔÔþÿÿÏÅÅ•””q%¤fÑÔÔ|ðಠŒH¿]Ä«$ÀÍÌÌÌ„:d²DSSóß¿úúúŽŽŽV×ÿÿÿ•••ùùùß¼yƒ\]BL èBH"€wx™™™ÿþ=}úôüü|†ÂÂBÈ>…~áââJIIôÙÿÿÿÏ¢  pýúõÀÀ@xdAº h3CÈ~Ác |üáãÇ666p)ww÷©S§R8:ÿÿÌY+D! ZA‚Åaà8š¼›qŸÞ†s VLB^²jwŸØÚŠvúÏôî‰rÎŒ»sNU÷ÞB1F²ç ÆŸQîw¡cÜ}|î±€¤” 9÷QU2ù"bf­µS sNª~‡sâOCœ²J)÷d=’ïýu]cŒZ«ªšYï}­…·Ƨòÿÿ¢Ú<¤Ôs!ìÿÿÿ£ ¼ þIvÔ©˜›± ’ Åä­[·|}}=<<.^¼èææ¶gÏž¾¾>xê¡Ä|@ x¡ˆ5²ÈÈÞ<<<6lسgÏÙ³g>¬££sòäÉŒŒ Ê|ÀÀÀÀÿÿ¢ZÅåÏ!‘(ÑV7SÑ#:þ|33³-[¶èêê.X°`çÎÎÎÎÕÔ²ˆÆ~afffaaù&,“¥¥åôéÓÙÙÙ÷íÛwãÆ 'Eÿÿt랆=€Œ,Ι3'55•¡©©©¢¢‚••Ò¡¤ JOðÿÿFFÆE‹Ý¿ßÕÕÕÒÒRüC¤ Íw^^Þ7oÞ<}úTSS“’†ÿÿM£tùÃ7nddd011M›6-==ý÷ïß?~ü€4!- Hóq ‹üýû—……åàÁƒóæÍ»ÿ¾••¤7ÉÀÀïòC< ¹£ÿÿÔ1ü¤ø™8qâß¿srrÒÓÓ 3g¬¬¬,00È(899133ïÞ½ûÓ§O¬¬¬ðÌÌÌ›7oþøñ£¸¸¸žž%>ÿÿ¢B9 饢5q FÌš «b‚º(QI€˜‰Õ/˜¡ŒU1~]LLL?~ü8xð ËëׯÑF| M7;;;;;;Jz÷$…?ÁÀÄÔÅÌÌüÿÿ777^^ÞgÏžåçç·¶¶BVrýýûwÇŽeeeÿþŒŒäçç§p ÿÿ¬Z± ! 1£@É.lÀlÀ t·bZŠiB¾ yéôÏÝß§Œl)²¬–ÿàQ "D|_®ðvç¶à-ë òú0óã\hBD"€+à/¬õD µÆÌ¥”O—„œsDô³Goé¿óÌ’RÎ9µÖ)%ï}Îù8cŒRª÷^kBXkcŒÏs´ÿÿ¢(B2–¥¥%++«ºº:Ò膰°°££#|ú«b4£0uá²”•¤VVVOOÏOŸ> #;O]]ÝÑÑÑÄÄY—b8Sרj77·ß¿cmt233CG3[?’þO¬AŠü„„IIÉæææ3gÎ8p"%//Ÿ˜˜XXXY*Þ ÿÿÌœ¡ Ä0D³,œ¬¬JtDuè§õãb""²2Ð5Õ‘a÷D¡wæÄAoôˆyÌ蹣̌ˆ­µœsι÷> ƒ÷Þ9§”‘ONf€BŒq]×ÇyÜñDÜ÷ˆJ) µöÞ[kß@¾wÞ¢+ömDTk‘iš–eÇñu¦g}Çq¤”NcÌ<ÏÖÚ_…yÿÿ¬œ1„ E§”Ê‚†–ËPpKà L8ð\HB,dþ“u q7[øëæ?š?Õüº‘ˆ 5J€w/=)éëeY¬µM0ï}Îù,3×Z÷}—/#¢mÛO£ã€@çdèó Ì,,ó<÷}QJMÓ$°’óg#Iîqf^×u†f•2ÆÄÔZO£1æjëºnÇœ³ç”®xåù¨£ÿÿ¬–1 „0E –‚DÈ<°ñ¶)õÞB°Û4ÞÀSXh +%f‹aâºà)†2Ÿy“äF­µ„Ñ¡g"Mز,ô(¤ijŒñš®ë¤”ʲtÎmÛFçyÖZEÇ1!Ä4Mî9F½—óŒùÊÏyZ‡aàœ3Æ”Rßšº®ƒ ð¢VÜV^çÜ=FÉÂþ‰Ÿ^¼ŒòMÓðm[¯1ÆdY Š¢q­µëº&IÂË󜥨ªŠ¾ }ß_ù‹Ñ7ÿÿ¬V1Š…@ •´ÒSs;ï¡×°óžEÅ6‚…ÅÔb¡ L³Å°"n³ËþÔ!¼—÷^ȇïè¶mu]—eÙ÷ýœªªZ–…¾LDyž3Æ,ËB‘”ò8Å6ŽcƘçyû¾«µfYöúÇù¬GŸ5Ž#E1 ÓKÛ¶Ð4Bu]—ŠP’$º®sΕވˆˆªÇ÷}ÆX†jÂ/;ÿãÑW©ýÀº®÷ä—Xôpv†aDQDDˆx‹2ϳ뺚¦¥iJD]×™¦iÛö4MD$¥TDÎóäœß!<~ ü“G¿ÿÿ¬˜¡ªQ†çìÙÝb0ªMXQD [ìWX0ø&³Á¦A|«Åì#˜Ô²e›° "“ÁWfŽá”/×Ûg¾ÿ‡ÿÿ*B*¥`:J)¯×ëv»Íårív»Ûí6ñxÌ9ãXJY.—…N§Z­n6Æ"Àñx$¢J¥R*•ѶmÓ49çˆèû>Ýn·$I ÃPJ‹ÅÙl¶X,–Ëåh4ÆØ¿Ä ò|>ƒ  D4™Lòù¼Âó¼Z­¶^¯9ç»ÝÎqœV«%„p]·ÙlFQÄÓë‡Ã{½ž¦³,˲,ý˜ûý>Ïg}n¿ßÿfòohº*:NRÊù|ž$‰çyZ!D½^¢ˆs¾Z­~šÁý~WJ†ñx<Â0|¿ßÃáPÇSÓ4mÛFÄl6ëº.c,Žc¸\.¯×«P(d2"Ò ºšpÒ4ýÞÿÿ¤˜!Ï‚`Çwà&bסъ8¥œT“‰ÀÐ Ñù-ØÓPšV‚ C’… ‰Í Å&E‚åÞðlÎ÷MïôÒ…»ínÿÛí~÷×#"DQt<çóùjµFý~?Š¢ÝngYVžçaÀt:e†r»Ýt]—e¹Õj!b³Ù ’$½O"²,û|>€çù¶ ‚°\.©Ç1õoêÿceYº®[­V'“Év»Õ4M„õz$‰aa:ŽÓn·‹Eš¦¶mŸÏgUUO§…\*ž(ŠøÌY–-Šè}‚ˆN‡a˜ÿD~ÐͺßïAäyîûþår™Íf@ɲl<w»ÝÍf£(J¯×;žç¹®kš&!+•Êp8|<FãýñDu¡›˜^b’$í÷ûZ­ÆqÜkS̺^¯ˆX¯×?ÓâÝ~ÿÿ¬˜1Š…@D ÁHMô"x ñF¦žG`è9D0AðæF*F¢ðkƒYX?üe·Ãén˜é ^×ü‰õÄS†©(Š;•$ ƒ  ­ж­®ë"’çù#p‹E‘ˆ|§©zÇu]u]‹ˆišÿâ™Ø¾m›mÛŠ¢hš6 Sëºú¾O©Ò4½[²,ãŸvß÷xâ2€ó<Ìóì8Žˆ”eùîÕV~ÂzÞ¤iÎßó¼{þ]׆AÝ kFǪªº®»ïûþ"뫪"èÆqüYƘ¦‰ŽÐ²¬eY­ý¯Xÿÿÿ´˜=ª„@„{ÄØÐ{ðf^Á;˜è©C=€‡ lA±^Ð0ìòXØ…Ýp ƒž®j课àÑ8މÈ÷}çy2ó}ß}ß‘išu]`f‘Áó<¥TQR,&­t–eDdÆ8Žx†\­Á`ipÉóœ•I)¯ëBø¾o­ຮÖ€çyx˜ÜŠ”RlKh­§iªªªm[!D×uÖÚ¯Y/RJF(Š‚gàìQcîûf"bò°<– q+¥ú¾OÓtY–0 ‡a‚Àƒü›Èÿ°!Œ1q`¡ÏP²,{_··Üâ ù‰8ŽsG]×eYnÛ–$IÓ4|,lY3Ëyžã8Îó¼ï;o²®ëŸë¯ÿÿ¢ZÜ£MšA|ËpAHWé?jK 2WqëÖ­´´4ggç]»véééíØ±#%%’v©åH"$ÁÙ333r¢OO#û’°à9-!!áæÍ›ÞÞÞGEËlÄ«¤Ð#h)Î@6)h>™¹páB ‹ºººïß¿çååíÞ½[HHb,$CÔóóó9rdÿþý , ½råJ``àôéÓ!%¾ÿÿ¢÷\(ZÙ-Ì™˜¦L™R]]ýéÓ'qqñººº””HGrðLÊ£å+¬3´LLLŸ>}ª««›8q"ƒ¾¾~gg'dL9Ù¯’>«_˜™™oß¾ŸŸi øúú¶··Cæöàe<²Fkkk;>>¾¶¶¶µµµ¡¡!22’ŸŸŸ’jÿÿÈùzHÓ‡™™9==}Ö¬YLLL ™™™>ã J ¤}÷î··÷‰'¤¥¥ÛÚÚ"""ØØØ µ*Z JŒÊH9}ú´——×›7o¬­­0VŠ|üøñß¿œœœ °ò¢=77wÒ¤I¯_¿¾|ù²­­-%± ÿÿÈà€x¦¸¸xÖ¬Y¢¢¢‡ª¯¯ƒ4Æáí¡t!ñ€‰‰é÷ïß¾¾¾'Nœ°´´‘CpyÊ-ka5ŸBqV¿`ºY1Ü=xÄâU’é$73àü‘ŸBÃà&@HȤ<|dêÿÿÿ˜»ðÈÿÿ¢NŸ SÇæcÌŽy–â2ŸB€ÕL\v! ﹜H[ˆ‰,2²M}ÿÿÛdGÁ(ÀÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿ"j?Ó¿ ÿþ1üÿÏ0D¶ApÇ300üÿåQq9š_†¢w i‰H—ÿÿ"œFxyú,7òä4}vv&¦!ìˆË!g—°³3011 š+þȼ¼D•zÿÿ—F!ùõógwwVÖ¡ZŽBœ}ïéS îîCÕ# 0¿œ=ËÀÀÀ0{6ÃÞ½CÕ/gÿþÍðù3”‹ÿÿ"\Žþüɰ?•œ6Ðàí[†]»ÚTwî0ܹ3ÐŽ  ÿÿ—F!”››!?Ÿ“s¨fÙÿ˜˜`Ø»—AE…!>~¨z„Vü,\Èp烳3ƒƒÔwC@<òý;Ãĉ _¿ˆÿÿ"\Žrr2´¶RÍq¸¸öîePWg¨©h§P Nœ`¸s‡ÁË‹¡¨h B1˜5‹áëWjÿÿÔ! Oð€ýÿDib §×4i®u­3zsÑ?6c ìÝ•=üNÈï8 û¹k§ÌÒZÅM]ÿÿ"Ê,, ,,C52Àºó ŒŒ ,,C>Bb‰ š:‡n%Òåÿÿšq5 FÿÿM££`°ÿÿM££`°ÿÿDmø™—DÊüv  ÝD. É/¤z|¤ÿÿir(+ü ËÿÿÿC®œÂgƒ3F!çÂý‚õLZÀôæß¿)?wøÿÿø4 ?2ýïß¿_¾|a``àçç‡Ü§ñ÷~þüù³€€ÀàI¬ðû ÷L322Bîfƪ’‰‰ âÍ?200ðððÀQM¦ÈÿÿÌÝ¡ ! Ð {´²`fdz“°H@àñ'šœaîë6é_ ï>û§”bæœ3!""zï[kk-ùá}n WJ1Æì½Ÿó¼é2ƈ1Zk@kB轋=ò)“sÎZ«s‘ˆRJÌ,¸ÌÕ*ÿÊ ÿÿÈ; ‡¨Ÿ:uJDDânnnnnn[JJêöíÛ»Ô!ê!Í@®Sÿôé???LJþS|=µü2kÖ,xÀòððÀoW²³³ûùó'D Ü×îÐ|-""rêÔ©ÿ8®}„w6Hº³ÿÿä± … † 1vöÎÀNᄞƜÀœ@ 6 aj8 i,L(0ïÍëìÕå(ŽKÈ÷—ß }~£RÊyžØ¹a€²l¢k‚\9~‡"¥ÔuRÊ{B˜ç¹mÛã0 ÏA(,¬ª ¯ö}ošæ]äàSq)´añ¹ø\ðÖ8!­µRJBçÜιqëºÖZOÓD)ÅÈ9 !bŒŒ±u]–eaŒ¥”ú¾ß¶íW†üáùÿÿ¢m9 ‰Q\Rÿÿÿß·o“ŒŒÌ«W¯e-ZÄÌÌÌÊÊzõêÕÿÿÿCÊλwï–——ÛÛÛCî)ddd|÷îÝj—£8Ê0œÚ Îklldfföðð@“MIIabbRSSûþý;Ä×Ë–-c``àáá¹yó&²Ê/^HHH000tuuÁEuÃÿÿ#¯ÿÿÌ!ª†@FG³q7!Š ˆ É&Ü‚.BÐUˆ«™`w ]0„QÇùÃÀãõ÷Âó/N: ¬æyÆSJ)¥u]{ž‡ʲlš&¡,ËÃ0¤iê8NUUÇü#„¼ïkY–®ë×uqηÂ0TUõ¾oѹãu]˲ÇQQMÓøcæyBÆX–åeYò<·m!TžïÂcÚ¶¢Èó¼8Ž›¦¿ÄcÌs]—sN)åœß÷ÍK’ä}ßmÛÎóVÔu„Ð÷}Ó4ñº.Ã0Â0”$©ï{ð‘ð/¹ÿÿä± „@EWalC02³€ES±k0¶#c‹E6 D44¶£e >Êq\tÞ40|f`æÿäýäë1ž4Mçy®ë:ÏóeY8ç°RJ¥TÓ4¯ˆ>¥””rüjŽãA$ Á+ÐMoQβ,vG9Bˆ}ßqa§iŠãøc¦óµã8„¶m·mEÑyž wv]7ŽcY–Y–õ})c¬ªªu]‹¢€÷}ß0Œ0 ’ÁŸðД9çÏÎmÛ¦µö<}!Á4M­µëºDôƒüóºÿÿì!„0E'#`HS®Ñ qp é z à Q#5˜*Z.+&‹Ú`°;þ'“Éü¼ïþ+ÖþÒ4EÄ(Š„Ó4Ykû¾'fÑõ«ª2Æc¤”ôm]×]=hMÓ@ÇιŸMjã8çÜZ{½f=É÷}gŒ…aèy^QëºÇQ×5ùƒ hÛÖ9·,K’$ˆèûþ¶mÏ ”e yžßÑvžça´Ö·ð°N)%Ƹ,‹Öš1Æ9·Ö«DkßZ[×õŒâ‡AJùUJáÁöÞßÉÇqô}O) !À¥¼ï^RJ1FçÜ8Ž„aö}‡¢ÍÌóŒ·vÛ6x·ÃÿÉèÿÿ¢Â>¤h þõë$:!uWRR$bXXX455}z~~>Caa¡‰‰ \ñ(ÿÿ¢B«µòòòÿa“~ÌÌÌ¿~ýb``àââ†\ ‘‚´´þ£vw &HHH8;;»ººBnîîîŽŽŽ†”šÿé5 ±HZZâ  i^KIIÁ}i;þ‡ ¢aúE__ßÅÅÅÅÅETTôëׯqqq]]]F*„ ¹5~çΦ¦¦ð iàŽv˜àÿÿ¢Z@@J8Âþÿÿ?Ú­µhåߟ? C† {öìÙµkו+W–/_ÎÃólÙ²¾¾>úÏ» uY ÎÃ*ÿÿÿ‡øRøÅÆÆîÞ½{÷îÝ7nܨ««ûüùsyyùÁƒ!‰›RLÞºuË×××ÃÃãâÅ‹nnn{öìéëëûc~Äÿÿ¢ZŦxÂ>&WéqrrFDD”——333/X°àÇt.T°º¢a÷?ìÒl!!¡ÆÆF///FFÆyóæAd! tþüùfff[¶lÑÕÕ]°`ÁÎ;!ËJ¨î#ò¤“‡9ÿ‚ ²/ãWIÿÿ˜5%|ûömÚ´i?~üHJJ’••ý»\R²ÚÙÙýýû2¬ÈÁÁñ÷ú’2þöíÛK—.åææÎÏÏgccƒ·˜ÿþÍÄÄdgg·mÛ¶'Ož@Ô³²²Î™3'55•¡©©©¢¢‚••’¬OÞÁ*Ž,òiÍ~•äÿÿÈuOlll³gϾ{÷®’’Rttôß¿YYYá²V ++ëà‰6ü ±±‘!00Òž†8’ñ k  cX,,,7nÜÈÈÈ`bbš6mZzzúïß¿üøiþBZX=|vwݺu'Ožüõë—€€€MDD„˜˜r⃔{öìÙ±cÇ¥K—ìììÂÂÂØØØ¨R²ÿÿ˜4 q7;;»““ÓãÇ—,Y o«AjÌåË—311™ššòññ æN.$¶äååuuuoܸ±|ùòÚÚZø˜.dcݺuÿÿÿwpp````ddœ8qâß¿óòò óû¬¬¬È™sÀ$ Ξ=;77÷çÏŸpñÕ«W·µµõôô@fÎàý„ÌÌÌ™3g"›0{öìÎÎÎ¥K—êééQ^šÿÿ¢B…ôRѲ ¤GŒ™° ŠáŽŽŒŒœ={ö¾}û&L˜’’ÂÃÃÃÀÀðåË—yóæ-X°àß¿)))¸Z‡Xͧ@ÌÄêÌ€FVÌÆÆR__?yòdSSSWWWˆÛž={ÖÐÐpáÂnnîÐÐP†?~ϳRj]׺;Ž{!Óô<”mÛZkpž~ÞÚK†?ºýt©D{µÖŒ1cÌYRÂhö}‡¾”"„˜¦É{V†p3ÜНþÿÿ¤Z=ʃ@ˆ’Ba‘ÀÂFPËEˆ `oigï<€xˆTvb­`#(xû ÆJüI±|!|Iç”˰ÌÎÀÛy3\†AÓ´(Šð7c„ƘeÙ÷/öíL0#ŽcI’’$iÛ–(H@–eß÷É ÿÕ~ÞÜhš¾Ýnã8"„àƒÈ‹¢ˆ1VUõóðŸ3p—eY†÷û½ëº®ëà|>[–išË²P5 Ãõz%\ê'6¯ëª( Ó”,Ëò|>ÉŽúñx¤iÚ÷ýétÂëºNRUUžçëº ‚`Û6Ïó„´MÓT–å¶mžçíû>Ï3Ñ-\.×u£(jš†„GJÆ0 ÙÔ¼˲4M+Š¢®kÇqöcÿÿÿÄš1 Ä EÑh©xK+{“Ú3x…t!0ðV!„ˆ[ R,Ámv)ÂÌ/|3±ÔZ€cŒðM?Ðq<¿qœûmÛmÛ–eÁ.ø›ßÕ¾ñŒp¡5Ï3çÜ9—s¾XŽ !ÔZ­µ÷C)庮X¡Öª”B”Rú›»û¾Ÿçé½'„h­qVJ‰1¦µ>ޝ]â1†R:MSÿ$|ÅÑÿÿ¢B…/aFub"ž b¬‹Kð¬8Ác>& )Rèøª4íh‚ \™“ø4 YÏ ¤¤$$$äëë»mÛ¶­[·Bš"lllòòò¬¬¬===lhhàääd``pww‡/Nÿþ=dƒðòòb``(**ú›³xÿþýׯ_Ñ”}üøQFF†aãÆÿ)®ëÿÿ´Z+Å ¤á¥†àpø¬á\ÇÀ¡15E`ù8Ol‚éûˆö­œìo’;Ù}F3]ÁO'õ·ÎãÙÐŒý®‡þt²¿ÉÚ†¹œÈÄŸU·eYŽãضMk ¥t]×”ÒyžÎ9J)Bˆs^k•RzïsÎð˜K™yZk½÷‚RÊC¨MÏ1F)¥÷n­Ý÷=ÆÈBÜ×õ/ÿÿø}¡@£47 €`£øÿÿ?CÃØúQQQ==½gÏž…„„˜ššBÖT033ûøøôöö"ÏZÿ‡-E`bb ?tèdË®œœÜ¶mÛÔÕÕᣒ…‰‰éãǺººb•ÁÞÞ~×®]lll˜= Rÿÿ]¸0<$Yðññ)**BVXC xHB422‚o¸Æï0‹ È&ì§OŸÖÕÕ=xð¾>M%dªâÊ•+ß¾}c x×.ÿÿàÉ ÈtðºZ>a=ÐAÿQ×ôÀÓd!~]ð:zåÊ•?¾|ùòªU«”””Ö­[òãÇØEHäçç¿råÊÇÏ;×ßßÿëׯþþþŠŠ Ê—ÿÿȺ~Àgü¨C厱>-R +rrrfffgϞݵk—ŸŸš™üüü ‚‚‚ZZZÂÂÂIIIóæÍ+++“‘‘ùOÁ0>ÿÿ˜$ßp×ØØ¸dɆÁqˆyâò%K–466Bv° ¶Ò”xñËíÛ·÷ïßEî_ÿþý[UUÕÄÄ„‘‘ñüùó 'NœØ¿ÿãÇ‘UB W???>>¾¯_¿Þºu‹²0ÿÿÈ4ºsçΆ††©S§2 ý4:uêÔ†††;w2 å4 iìÛ·ÏÉÉ)!!’æà å+dv ²ö¥¯¯ÏÉÉi„ °Ãª Êà€*®ÿÿȪ–›››……EPPpÝ@- ((È‚6Z>ä¤:633cee½~ýúíÛ·!‹¶ ÓÂÌÌÌŸ>}ºxñâÿÿÿ lll˜˜˜vìØi¼BfÂ!c/^„œ%ŸS$ÛUÿÿ¢Sýz„ dP­Ïôõtd½êƒ>N%Ðü_Wï3áw0r?ƒ¦ëp¼PÄ*IIššš***ß¿¯««ûõë ++ë¯_¿ŠŠŠž>}*-- ™jrwwgff¾~ýúĉ™˜˜XYYYXXØØØž={VTTôë×/'''iié¿”-Üÿÿ¢GŸ R_° ~ßz†¬ mI"\| 7BÀ?¤óî >AÞY€ èãx MR: å¸bˆ³988š››CBBV®\yùòeOOO~~þ?nß¾ýÚµk &Làããûõë—ººzNNNQQѺu뜙™™=z´yóæ—/_ vvvRÒ[‚ÿÿÄ\¡ „@µˆm—»É¸m³Il&“ÿaðLë?˜´Û-[Lþ„ šÔÃÀrÜ9îåax/Í›y?×(ŒxGÛ¶}߯ëŠ1Žã8Ïs°à ¤”J)×uM8¿m›”RkÁï,A ó<7M3 þïžçeY†¡Yh[–µ,Ë8ŽŽãÀþk°aÎódŒ!„žó÷ ¶mB!oý1Æ!ð¥Xk$I×uEQLÓºPJ˲LÓôº.ØÏsÎBu] !„¦2Š¢ªª|ßî3ÝÿÿÄ\1 …0 -g{†ÞA,x…Ý„î^Àƒ¸¸¸è œ,ÙêÚÑÑÅUÐ?„_>þò— !Ã# <òòlb ö}/Šbžgï†aGÎ9yוRj­-Ë’1œsÿçCkÝ÷}žç¨ù×LÅ\c¤”Û¶yÛ¶u]ßÑ뺤”Çqc¢(BÌh§iʲŒ1æœ{'æGᜣ”"÷î÷{×uçyâtðÛà+ùy¥Tš¦°, ^lÅqœ$I¾íP~Ý4MUU°®+!$ C!ž‰ýD.òÿÿ¼Ü± C!àÃ,¬œÂ ,´vÁ´|£ØÚ9€Nã‚\Šã…@|$„$–zÅ`åÇÿ[÷´Öšschï}ï½ÖJÚ—îHk'!Wk­ÅS—–R@JI衯¸'z0c !pÎãh­åœ•R@1iôñˆˆ!ÆXŒñ>uîœcŒ¥”p§^®f@\™žçýmå–¨>œ"¾mJnÿÿ¢a…8}Ó¦M¬9cÆ dÙ¤¤$H&§Ñ¿ÿ~ùòÒ œ:uêÿÿÿŸ={&%%ÅÄÄ_tLš þÿÿO¥4 IO%%%zòäI¸Ô»wŒ ¥Ïó‡ e^×Uk]–Å{Ï ŒˆìŒ1¼åKí½¯ëºï;äœ@AD)%àÆÿæüß× ÿÿ¢Uýÿÿ?##ã÷ïß!Û?455‘ÏÞ€ä]]]Ô¹cHߢ½½ÝÎÎîþýû‚‚‚K—.åå娕{4úìÙ³?~ðóóËËËÃ'Qàƒ5*** ¨~ þÿÿÿ† ~þüÉÆÆ™`äææ†Ls›… tÿÿ¢SHá4Æüÿÿ?//¯œœ+++//ïÿÁ1M w-A¿@Š|kkkIIÉ7n@NÌÛºuëïß¿UTT¨u8Âÿÿ¢mH±²²BÖÂ|üø-©ýÿÿÿÇhê!cS§N]²d‰˜˜Ø«W¯ MÒÁL!ûû~ýúõã2ë¿ÿ~þüÎeddüû÷/¼ºßºu+###äDUÈiÀ£=Iÿÿ¢U…´Àxxx455:Ä;îààÁƒ °u FÞýû÷«ªªøøøvïÞmhh¸oß¾ÖÖVHS•FN% ežººº  à§OŸÎ;÷vÔ2$µ½yó²J-ñAªû½{÷ž>}úÚµk’’’¾¾¾ƒjÚlHÿÿ¢a9 ‰0‡ÿÿÿ/[¶ìÕ«WlllZ,,,»víºpá\¤…úû÷ïØØØOŸ>µµµéééµ··333·¶¶^¸p……e ¦ì!¹‹››²hâĉ•í÷@N…l¥€—÷dmmm-&&vñâŲ²2wwwnnn '¯G ÿÿ¢áØdÈíÕ«WqoKKË+W®@¤Ž9"..ÎÀÀÀÄÄY±okkc€˜BÆkrssÌÍÍÿ¶ƒæ*BÆÅöïß ´”””—/_BÄgÍšI‘ÌÌÌÈ[u!Z Z˜˜˜öîÝûŸÜQ^™cOÿÿ¢ùÝ7ÿasE ,,,ÎÎÎndd$ƒ¡¡!Dñ®]»XYY!•)dTÿÓ§Ojjj %%%XwÔÚ_±º°°âx111---7..Žyb ¢~Ë–- ŒŒŒÃg(<1`d¦Qÿÿ¢ùÁê;vX[[ÃÛaÒÒÒíííÿþuuu… Ñÿúõ+--ÍÑÑqâĉÿa !8àìììááñâÅ‹ÿ¤ A­4 Ï!“&MÒÑÑWDººº[¶lyôè‘££ã¢E‹àΆ¸óÓ§O1 \§!Ffÿÿ¢Ç9%ð9•ëׯ´ÿÿ,gé 3ðçÏŸ000èêêΛ7O@@€ò#eF,ÿÿM£T…Û………öööÿþýƒœ·úvÅ( ÿÿM£4\\\«¨w½ÆˆÿÿM£4ðNÕp:/h ÿÿM£4£ G¨ÿÿ"*þÿEC 9~ø™=Dýq3‘.ÿÿ"*²²2022 Ñ^)dG>¤Pƒøbèpp_@ØŒŒ ƒé^'Ä D:ÿÿÔœ1 0oðÿ?-èâRÑvoWó‚Ž)oF«X‹ªFbî{£J&C'b;ïówToºqj–̾ªôÿÿÔÜ1 À DÑ‹  w<·àd1EHÊ’w‚_L=û äAJ!%Dá—뼃Þ1ïO§|ÖsâÖžNùf-jE•œ‰q¯îíÿÿ—ÿüaø÷áß?†wïhåJ:ƒŸ?îÚàëWŒM+CàßcÿÿÂ^ŽBŠâ÷ï.\```ò…(Ró|Ô/ƒ @üb`À (ˆ³1 ÿÿžFGÁ(<ÿÿÂW×ÿÿÏ0ºqÐ01á«ÿÿ-GGÁ`ÿÿšc0£`$ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿM££`°ÿÿÃø :[‹IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtransform-simpletransformation.png0000644000076500000240000000226112536324516026112 0ustar philstaff00000000000000‰PNG  IHDR˜–±crPLTEìéØB½l¯Øk¢ÿìé¢ì¯clÏ=ìé½ÌØ=±kBìÌ„BÏéØc±éØB„Ï̽ϯ¢ÏÌØ±=ì̽B=쯢Bkc±é¢lk¢lB„±¯ØlkÏcBBIx¤ÀâúIDATx^í›×n#1 E-izqKÝÞÿÿ×°dŸØÌbÉ%¹ñŒžF—%1«w¯E‹ªƒ^ûïËÀV2éÁªl±‹7-Q¹€ÉìR·óQÉX y13?ÕÍ­°n>ènŸ!š®q8½õë ©ãA`Ö÷…‹„`óÈÐ忝[;q›íœä` V¶eLfþ§“IÁ&&CäÀÌôŠÀøbv,›¿ ó“LPæ±ûi¢2ñÆšT*Ž 3¿>}³O—Îx~ °Â‘\g»w”d½ ˜¹´jN10QA¦+«ø×vŽÅ÷ä0Èæ§®ù7Ï©„ 0f[ÜÎA`~RŸ uЪö• ÖBÝŸ)ö•›í8<Ï…ÏTÞð.È$Û÷Éú Ëu9‰(ÀH±†ëø–d‡*õ·þÑpù:íËÙ\®ÀàrwÔ Q f¹Ø¬‹Ìÿ.9XÝ.Öw­ù;Õ•”`–²”´ >™ßr%9ô`¶°îÅæ·\È \„…ØüpÙÍ” .ôù'ùLkþîÊ_ý§[iTÞ?‹ ™òZ%sj«ëט‹Z™ùÑ4gq Å`œ¢0…ùÍih¼Û³œ Áp;súå€—Ôæçj‰Çìd`Ü0!k£²nOd ß Xû€ ®¬(5?© .^e`$ ¸ò+ºÈüÄ\é<t`äÍ-u릺ìã‡9Â…÷¢ =ìá¢îˆ2ó#¸ˆ¦R¶S›²K.yº@÷†+?Œƒ ®†E05aÈæ·\¸]þQ‚ÁE›£Ìü–‹¾–~…`´f|/5Fùdã 3?R…ô?y£›±üP}P€K¢’¸óÁq݆Uý£Ô·R–hŸ*#ñȵË&Ô€‡›m±×¯ßåF Ê¬0¹¨¬Ç±ª_±ûc Ü£DeT²áLl3WE%dYéÄ(·`hºâʇȕ,ƒÀ•¥Cp¦\€ùã¢ë+j=Ùb[ dw·Ÿ €ÁrÁªÕ ¶¯ñO»Âéy·ÛCUÑ/íB\êS!yQkë"½è¦‘Ûƒ¨Ð¨½Ý€Es åd*ÃE‰ÜîE²-¦Œ”¯™®qpÀN»¤Ýqž{$™0 Ìg@:…þ‹,îàºP(ät:õz½\.—Je°`}‚%za«ÕêñxÉÞ§âÓÝp×éttS,UHå*©âŠ%¿á’ȕ٠”øKtg%MVò볿ƒ ”D~ÍúУv™Bu@¥g~{a±¹é¯¯*ðàΈñ«ëÛÛ™Læp8Ün7à}xp…J7›ˆ'ŠxbVoÌæ‹g–5Oy¯_ȹ²xbwÌ䊠  ŽÓJ|›YŽ3¥wFŽËq\ºŒÒž”Υ͸Dc?WŽèqÙ£ês¥Ê,[¢”V k$³”à_$œ(kF!!åI),APJ$¨²†@©mað;kÁãrÆô®¸!UîÓ2¦ÊsZ¦seN–”7»*q@ó:qøãL./ý­DcÇV7öð›z«?ÅÌîóxbû9u&W˜Çòx|…Ñ þ_ƒK¬¾XªoB¬Õcrx_Le°5bšp8Ç3›ÍÁ`8ÿ"kHc4E™Å¶¸øh–øÛàžgßñfw4‰>ÛtNë©Êà®»»=Yy¹«Oª@ëÎý¼øã*}J|&zýYñ§èÝ×Doù`ô@üæÎAúÛñ™U£ÑL¥±Žx¤CnZ<3C|ÚžX M3˜œ–ŽA&‹×70)ÓÙÓâ•D¿IÜ·'¿ž~«¬¬ÜÙÙQ«Õ^¯÷ñà ™Bmr†ÍÇèOÛüsOµyóI›ÏïÈÍý¸.ã~,ãîɺ#î9ѧÄgºÐÏŠO¢?Óæ?ZôYâ),1¦µ¿µ½_(”lïåŸhñDqë{«ëD£Ñ´²º½¼¹.9#Þ³ˆzW7w^­®®‚± Ø\ ^©T&ŇÌmþÎF2çËœ£Íëù¹‡sd2¹§ÄŸÉdrWÙu«#™BÐËs ?®èÓâÏ£/|„c¹éN–xP#“Ë2™¢³gT¢Aò‹µKôô޳RlÏÈ>Sx²‘3m>SüÓ§ÏÀÀF$¹\.€<§ø“6Iµù»lígÛ|<Ùæ£™âÓ¬sXëìÉÊÝÚsÕ™Ön;枉þöZ{~ô@üôHNñIôaðËgµy½;7úÜÍÞ| Íþ¼øé…Í©é…íý#ë î Ń’j­Ø!Ê!­ƒ=¤ÒÛ;äG–x›/¶¹s*þñ“'‹‹‹B¡Ðét^,^šÕœ älówÀÝ›j01“;šØ8³eçã~">÷kP—rOÔrÏÕæÏ¹ÏŸ‰^ÐÛ“âñ4zýG€ˆß"S2QM¾_ïÄ’OOgs‰×Ûü“óã³kl‘f|vuj~Ã`d·yot‹tàH‹œW¼ˆ—«’âÃùÚüt÷t¥Ú|¶x{²rq·‡µ .çN.án‹(ÓèoŸ{ž6Ÿ ½ü,úT›çÜ ôŽôîBÑ/Sèæ}W¬´¸C¹ q‡hl5ùEVYòUÐâ pÅŠ}8(L|âU§ñÆ“6o9™©üîWoíâ=©MÄp–»Î•“{¢.ÉdrW%+wåIÝ™õKÛü)zK(½üÜØ&ÞÓñy;}þfo.Àý•†õ6o”/U“öé€~þ"«Kn@HUf§?5i³ºÄ?Î'^šxµê´Çg´ù䨯ûpOŠ›Ü1c¢ÍG²¸§Ñ_Äý}6÷ëiîÇès´öã²Fî’û¥mþ zË©øLô'c¶ ôWlöŠ¿½‰Ë Ëv®òÞ>–9=ŸìñWot„²f*ïž{ÆÀ&–ŸÉ=YY·%*WkÏâ:b~îÇõ›Š?^žýù6a§ÿDÑç¶ž5 ¿ºøcô'm¹ºø·žêñfwˆO·ù´umªl¡‹¹§ªîÊdå³þ[ˆ¿*ú´xyŽ6_ú '.͹Ð_{„s+è³ÛüuŃ/NNa GÜ ÷s›Sî¶“:Ë]“Yy¬ÛŽ­gŠÏÅýø•ÿO¼<Ýæ3Ð+ζùLôº4ú+6{sÁ͹…f9zov›¿Žøt›7»#‰±Maâof$s®èÑÄ«K ÙÜ3ÑŸå®>[y¸×Eܳ—»|lèÐC)÷rs0Q'èçNaËuëèo{„SH›¿¾øãy›ÂÚüõ¦ /åžÙæ³Äk’uf$“ÉÝšo$“®Ôk™—rW|œc›‹Ð/FHþí:ßæ¯Þt è‘›E¶Í_S|Æ)ì%mþÆG2g¹'ʘ8=ió'Ö3ê"îÖÔ‰éåÜÑçåþ1mŽ+%þ"ôYâS•å>ÿÄ¥éêîoo„sáUHúkã¡TéíÅ£6»5¯Îæúïf$“É=U‹·†ÔÉ:ånÍàn åÉœ]–ÎoýãoóçѧħJ‚>O³7] ýípò.úºÆìdÒºÁélTŽŒpÈ!ѹdDãÑxr¥Ñ™vgܳÚ|wurÕÜërî'«µ"Š ýÕÚ¼%$;AŸš¸L£×8bÚsâ?]ôùÛüÕħ[»DcÙ¢°ù ­Ýã÷Cþ`Øé È´&"'Ñ ‰µ7W·ŽxÎ^›K¼;›û z0š’/ñ6Äg¡WYÛüµÑ§Ü› Dïù-Ñ_Y|z0#7Ø·¹J£Õíº}A§Çïò½°'ÖY];tÂè´$Ng¯Â=ýØÎˆÎì Ü]ßì9^EœXH|²ˆòätöt2>9s<‰™x2$Ç6…p—"m¾@ô©‰K%¾½+» ֛κ7ÿÖÃú\m¾PñiîZ«ïH¬aŠÕvO7Ú\._qz·ßî 9¼!¡ÚÄi öà•F2)åöä2:ûIeOµæ>I8>qIœ@G­ž¨51m1'×ÐÓ *‰J¿U*õJ­61à )/³.ÿ¼Ú|ªRèøú”øT]Š^_ús„såNU7)½Ýcpúdz âñÛ}!…Q!.­ÍctL®‘.ÐZýWµ§¸‹ú}º+§²ø‘ˆ§ < ²Ê~®è±H¡Ó#®yÜšÅé_^'.â· 6ô»ú“¯œ–XmYZ'÷ÛÙŸ›ûçÔæ>³ÍÛ¢÷ýÕÖÕ¤{üôêžÚêaIT‹Ýäôln‰Ö”(‰-ÓjìÞE]eñ^é$Õ–ìîû4Nïà¨;Gœ~Äåÿ ¤jÄИìB™Öî +t‘<³BjƒM¢4Ø<±Ò Ô[þ¸Teè'îR~}üL®Ö÷ ŽhMvµÁÊ*À ¤j“@¦A\!‰Ê 2ØäZËö.µ®©´ˆÂýB_`›ÏB¯±ŸŠ×º.@éÇøÑp®|æjpß/ Tæ–Pc²­.=âTê,À¢\g¦ód"uhvSƒø¯4'“@Oˆ÷ã Ëk‹+kõ˜–ö®w"¹æû?>øûÏø ŸþüUqIÙÄÌ|ñ›ÒÑÉÙµ-Òÿ¹¨ø­Éîsú£µõM=½ƒ=½K+k8üz9 ½EÜûñ—GSsK#Óüò_¨,Þÿûӟ׷ɿ<~†B×£ë›ÁðF Ä'¦¨/·þÑŠ¿tMež6Ÿ@Ÿœ~U6ŸBï8E¯½"zãM ¿Õf¹šÁ©ÊÂW˜vé\0½–°Ï¤°%t¾’¯4KtöÁ)<¸ñ•^LM½-`?CüäìBiE•ÝÒ¬ëðøô>•USßDgó;º{WÖ u-­=Å%å3 + yƒ±P=¦ýÕë·à)ÔÑÝwÀàÖ4¶÷x$µÒðrîŸp›Ï@ŸÕæ3Ñ‹wœŠ/½¾ôÉÎ5^ mï³Vwè2½C 4),&O²Kcóä&©Î!Ó;Itáòæ>’1WSÈ‹©àf Í3xÒïþTßÔ¶ˆß:‡Çg^½)ãKTU5 %e(Â.upt’'VŽM¿oÇö¢k1t¶èùË7õMíF»•#•] “<:û&ÔfWâÓ”’è \;žo±ŸÔ…ç©ÇßžÜ&sçtÒ&ñm,ùyR©sÖpf™1ºÓ5‰—«¬a’Z`˜¬{Óæómì1MJ|áè]¿ú«º¿žøBgkí$ì2tV¯Þæ×²úöéü¶î®D“œ‰&мTÆ’õr¬S°^4L2gîJ÷q%ß=y'Tèìêù“•IîJ$tæÕø›Cÿ ÍTf¶ù<è áäGÿÎá\c•A¢zàzOèè›ë虞_“i­¦ÄXôѨÙKvú+¬0_¾6øÜK­ÉJ´Wܘþ”9°÷±ÄÇ$¤Öd¬,H~›ú0£ÌÛüI›?ƒÞyæDöÚè×f‘8s=)G(µ`ôx©Æ"ÑX´)1“ÒÛƒÉOŒôŠ¿tÌq“>/Ûu¦Že§Ê™]:p„ìQ-¢¶¦¦b‚‰J½·ÿäÅy®ºÇm>klS8z]Ûßp„ƒ\U¼1“ûñ§œ†., ^Ÿx2„‰±MÌ|½ù*û´2š÷èÜuçJãˆ%>AÉ9}»§9£îDügÐæ5™â¯2Â)ýpdݰx}ª’mÞp:¶¹‚õ›âž:<}â={ÉO¨K[Ï<Àˆ¾ñŸÖ R¶ùD}údXeñfWøÅ[Ù$]V;É:þ¿INÔÖEµ™]+תåüµAÂ¥j}ÔÒI%¿%å¬Ï½2lÆ>9óðÁ®[¾t÷^T¸œ0n¢VÏ“+¶ù¯(q‡7dø_ÃÁ|ŠtP<Ì}¥¹šsßÄG x˜û"ÞÅÃ|ââíÉ)P<Ì=@ñ0PüÇ">,¾XÞÛý~žÉ…ÇævÄ_g®&Ž´Ì”lk‚™úýl“7¿fÉT¼¡ ç¸Ö`qè¼a§Õ6Ì4Fàñ„¹ñן'pÇe^ÉÎR˜GiZ7´Gáý¡ŸNÒz˜rË¡DGÑ{6û(E“ØÛçÇ1‹ÉË ¥ÅêP¹¤j+ø×ët›M³´¨±Ýg«2™ÅÅ4zÀå\©\ζÁ/}¤²’¹ª†Çæ7¿°I¯Þ7 ÅkJ­Bý+NŠ"å½Ûc2‡Ùæx:Ì;| dþ¬Ø>ºÌœ—9¨,Ñ/Ë Ö‘à½26òzž z+&™\ÄK—!c¬¾M£Ò•5<ޤ’¨Ñ9ñ/׿³Ï“&Å[Âñ¤x1¿XUb@<Չ܎‡LG,ºs(b›g [ˆÁhÇT÷Íì°¨´Ñw}&§¢©¼ô_ÿöˆ·ê$b¹z‹®W+wvvzÛ:ÑhŒÊˆ"”¢¢ê꺕Ϳ9ñ®¹k’°:7<èhhœó&vf`‡° [H›,Ò\?¦mF¥“ˆÔv½\ 2¹ãAëÆÂìû ÆÑöl%ªYëìÍV ëÖH{GÑ@GÝÀâNOùOêúéÛ‹U(ŒÜ \œ[Þ!*¡mê\æöž½[[ÑÌWÉÒhÀDÙ?ÀM-‘¥ My{ji‡¶4ØÙ=²!ÒûÛë;FTœÑ/"ô~°¥ aº·¥ë½Vuð§ÿúOX%q¤ƒº&Ì;§7 ÜÑ$6¯QH¤S»›:ÇmNë¶©kx™Ë&µµ ™¿¼©ý½M²‰néiî¤ “}­ïævBSO[ó§åƒ+ÛÞ`„|xr*›P¨áÜ˯~׿ÍÇýóÍÝ ÂY.˜šè鬬{5¼9Ó]SßÍæwøõueõël1ø¥¤<º¢C(WfÆIp‰I@ª@7IßþñOãø­žÖÚî±5“5Þ×Ï üîß³Á#Œ†vfúÛFÄB>Gj6KE";y ‰£Øåí]o4ʤÐ4¢] ½F“à:‹¿VºˆßY_šo¬« +œ­™JTÅú‘îªâ­¾¸ù â ÇG¯=ªQ³Vg¶ÄœõÁeöúd_9Óú¶¸iŒÈã cñø^öýLÙÀÌxÿ@kÛ˜'`ë©o:RÈ[þù/kß<9ÔúÇ«_ó­þwÍ=@¼EÂîjl©ž˜m«oÜOÄ)O=@-g½h¾uè]k%F§æT”W5t¯†ì¦Ì“²‘ä N´ÕÊ]qõýÀ,m}¤£ôuù:K·P_µÍ$ÖwoÕ67€[Ù”DL×kuhOîì˜>^ D†êQOË{Vºj¨¶è&¶Ûպ·¬¾üéÁÿ=.þñÑ£ò²…#ñç@¼ÒøåÃWM“ØÖE®ßÝF*Z_<««î"†>LmC]/Œ´ÔÕ–¾lñ'Þk&ìÄ'îZr8„ÛMü£,6ÔaFH\ö\SkcÅï¾yúèoÿ¾É“é VŽDvÙÔf[<¨ª©ÀZ¤ÒÊÚ'eñäì{þlbûH&euµ»ýÈDgó—ÿþ]Z´%@âvzcÿ¸•CEüË?÷짇ؑ÷m‹k³ƒBz°¥ñŸÿú°¶¦ìjK8Ü‹éPiØõ%/¿|ÚÀ$-¬íì¶7`ŠK[z&ª¹õMù`¡`oW¼Áµ|¸xâü]C^la›¼¿8cìmk ¦îö'¥¯ôrêÏ/PMuõ2 ½­ý¨¦]g²Xe”-ù~ßÈ»Œ'‹†<ƒ}#Aò¶¼žMßj®o.ê¥/tVÖV¡F6vú+úÆjÁ[ì.îjÛY ~Ry¸Ð5°®—qê[zëZê-Þ`kmõ“W/U&³ÓsnÒÕ—·qUM }I±0爱ØU×5k¯êXšéY¦ö7×V 1"³;î8*¯™ñ‡c.ýAmÔÉlñ‡‚¤áúúÒÎTϑ݊®DÎòÍÐiËŠŠP(¦DPŠj£æÆæšë°¸‹ßŒi-F é…ø†\¼Ûª‘ëVƒRkñU2‹Ãgìöa±mbX YYt¹Ë 婌oy‹å 9£ع2¸±7Ø=ïÞá‰GÉ^HH=òx쇙Z.7åEb~Wl8õb…‘²:‡í¥°8s½˜×eõK[G©‘eX¿_=°E˜[ #n¿sij`jiÃ`óÆC®PÜH©›ÝÝÝBý|ýÏßÛ‰Ûã°™£X,ñHáC”s¸U•ø‹%1X‘éxwì-H8nQ°ú±£rÄÃÙÅ OM1˜l¶èø],>D>6Âàï,NÍ.S6&ÛK*—‰<0ni®–{#)7´÷cÓÛ¾ˆÏ—'/ íâÆ±X¬ØägºGÆÖ§°Šê†ÆpÎPˆŠŸÃbvÈ ½Õ“ÚÓ<¦2–Ø¥6AbÜ>ÚZ^s<›sãƒ# :rl¨oxdŶÏvwâÈVsb“–üKâZšûÂéw ˜à®›RÒ XlÏ]~þ˜j¸{ï°“F‡sü£2¾whLçIhx<<9„Y&‚Cãð'a¾ðé›óØÞa¡ÞiUJå‡Q€=›<ÐV½°§§·ÅP ɽýý›»<Ë´87B>`²êhÈÎê¶g:_=øKÍŠè:â=WÕ|’s5Êâ<](ïÖqµ®XA§Ñ0aixzŽPȉjØï’*•WúÅL¥õäô]$âÄb…þ MÃ1yîï¬ËáÆäðð²ûêg®HJüÍN<‡'xµI›Õ‚ŸTs3³“Ö»ñáÖÙÜÒžüJ?·:6È78ÏoÊ ÌÇ,>è²<üãïß”¿zQôº¤¢Œl;jkj[Çì0V¡Š+*ŠŸN­¬¡Ëk7öö;«P5=£¡ õõ¿ýØÙ7®wV§çJ2º5ü~ljpƒ!ÌíŠ×9"&×u{|ØÝÝ2ÀØŸ›Xç,£KŠü¥èé¯åbp²h§¡Û·|æÃ_¿þ±mô@É\[æPfû_—Tn24 Ç£Ñ™Í7ØÔÖÖT¯ $6ÕÓÒï†æö{üœ¹Füƒ¨·]M`TC]›êk¯BwŒÍ­9a þÁÊ¡ÖƦ^ìÀתÜG½®A—£ßÏŒWÕu¾xZ„mllìøþû盋-uc;4ØÔâ!u¸iÌ#ÌÏ\MWýÙI¯Ã¤Ö¼þpÀçñüzµR¦Ô#Q ¾´vF.×B>—7E,zF‡D#AJ¡Ñ›ý>·B.ÓHد”É ˆlÊ`±9¬NxJ s ñ+w#>g¢!/Ì]ˆ÷~ âa`îR¼ЇâÏ‹—ÊÕg ЇùÔÅ îñjý‹ >Ÿl˜^¼+nöÄ®->‰ðø|òîa‡t@¡X­ÖôUn«I¡PZì|òµÏãEŽÿ·Óÿ/˜»¯u‚[__¼Z­&v‹1}}Uß?µЇBÇïvé«x…D·[cQ“Z.‘iB‘°V.á‹dGtšÁb ›«éõk–ÆhÑ*D¥ÛãÖª”öÄ*¨ 1‡£aÄd³›´|¾<öÚœþpÀƒ V­JeK.Õò»Ÿos¹å"¡Öä´#&™˜¯6ZÝ6“?µ›‘|2}îY'Íž8hÜW¿¶x*•Ú=:÷õ»¥ÿ2Lýo+Ù!ï‚;K]Õ_]¹M¥`j»UZæËýúÓ“¡Ñêªöò×oQhL]ÕËÚö™µò‡ßM®Î¾úî—'?ÿÚˆ©{UÖ©0'–ÊOö¶ó¶ú&*Ÿ½j¬ìœéšdxèrTQI›ÌèŒG=“]õ£ã³óƒ-õm#O_×·½y>0=þü—² |ÿ<‘ÑÜ9ìƒsû÷@¼É×¹âËŠ×|˜ø£££é¥µÿü¯%ÿéǾ¯_5ìS(n÷ñZ¾ª·£ØŠÆy%oùYQãÊÊæÌ`×EI˜E£1Ëë3}ØöaB_5F®&þüsõÊÊúêÂØâîñ¢4Wü¸˜Êß­nZô«·_.Gg²w) 6OÄå (‡‡^ïñÒ±þÚZ–B¡ÒêÉ‹+HÈ·‹ßc,¡Êª6­-ý«$~Ô«^ß•àÇZª*›øZåÃ?þ¾oqcÛ‚éGË‚MO¿y]õêñ£ÒʲâC¥cm[S×¥r„âaçüp=ºd~“<9Ð7³FÙ™í/ƒ‘¹Ýø¶—O ±S4Q'f±Eâ©ö¦¶Áñª_¾)nŸ„c’µŽÿþßÎ-¾G— ç‰´•©ñ±™Õħ†ø™Ö°Ù×­©Ù×{›ÐµîĹ\ï{ZÿüpOè¨kìš”ñ÷È<—¸N%o•W¢)Rhî~‰ÄAw—Ê•‹Å`0Òh4‡Ã‘º*±’lddze—GZ?^Xçî,V½üåÁ›JL¦¡g#bgbz6pÅ¿~Û8OíiégïOûõÏÿþd‹—ø¤lÜp¿H²û¦z2¬Û)©kþêWüìñðº 05×ô8¼šÊ}ZÑçu‹ªj&¼ÊÍW¨F4fôx43µ)â’æÁáöŸŽ»<Ò/4'–?Ĭ”¦½ÁÚ*…ÕVû²¤¬²Átò—Åi 5µ6Yª¶ÆB¥Î.gSðk›*‹ˆ¯yS¹€'¬V•ÆFùÉÑ*~׋ ™»ÄýC­ÞBßÝ$QˆÍÎÚ#),'¢#SÂÑX<±)GÈcÞ¯KµJ|^t‘ ›$7õQ6ÖÙÒä'­FÃ*‰t@×éô»Ûxòá‘Üïkf܈‚¿ŠÇƒ-As÷n®&‰XD§Ó¥Gð·žhH¯7ÿV³'&ƒ* gnî³x(Їâa` x(Їâa x(Їâa x(Їâa` x(Їâa` x(Їâa x(Їâa x(Їâa` x˜»opÇ5P< ÅÃ|ÎâqP< ÅÃ@ñP< ÅÃÀ@ñ00P< ÅÃÀ@ñ00P< smñ(澉7Bñ0÷D¼ˆwÆn(Їù,Åk¡x(æso‚âa x(Їâa` x(Їâa` x(枊wAñ0÷M¼Їâ¡x(Їù ÄÇ x˜{#~›¬wBñ0÷K|TmAñ0÷H¼ÊÅ­Añ0÷C¼Î‘O„âaî‰øsÄkíP<ÌýVZ#KP<Ì=¯±…HЇ¹G=>)žÅÃÜ£¿¸ ÅÃÜñÖÜ‚âa x(æ3/3 /†âa x˜OSüvaÿ+sßÄÃχù´ÅÛ x(Їù|Ň“³“P<ÌýO€âa x(Їâa x˜OG¼Їâ¡x˜ÏY|ëã¡x(Їâa`>Eñ*(æ>‰—©Tö(s_Ä‹dJ¥-bpÇ ø› S‰ “ă;·[‹t•'ʼßÃÃÃõÛ‘Hôù|™÷K&“ïà~I$R(ú0ñR¥ é]Q(þ#ÐÚÿa]ýBz£¼Ýú3ËUM¦ï—F£±X,ßíG£Ñ,//§ï<Äbñܯ\.ßØØøPñ2sPçˆ@ñ7’Ððæwù÷íÖœ)ðpY”¾ß½½=Aœ·dz¶¶–¾_ð5àx÷ëõz3ï7-^ëˆ\A¼ÔÐÚÂëPüÍŠ§ÛtNŸÅu»5kÌo6›í7£^Øl¹®u»ÝYâÅkÜ‹Ùd0Y¬…ß>ë™vMñ£_m Bñ7+þ?hVÃkvæ.‹º©±ƒ­±oà×FGֵܣƒm¦:ß'kÆàÏo2™l¹£d‘ÊËß¾¨jSͶ¼ikfÈu¹®žVWW3Å‹¶Ë²<3§µÙÔÂü/uÉöÜÀ™o+8YÏ´Lñ kä*â‘ø1(õÅCEdˆ[kÍ]ZnÑ//+Ç×°Ím{¤’×oÑ=K«Óý³$þHßh{ýË/B1”ö|[°º'´ÞgÅ S®õEo%jÇcn½zYTžìî@W<­ë£gÞ<}16·ÔTþ¶¢¾·­®ž"RæÚÀ—%3]–¦×¯–ˆÄ…‘æ†w ïj+K*š†úº0m¨’W/Ë*ý¥[m>ø‚>[85ªQAñ7-þ«=ã¡ aå)!£=ÚÑÕôÓóÊÇøë¯/þôÕóuÎÑ—¿ÿGÌ{æÂüh˃• *¤[bÿ'̯P($¹Â%?oâŠ_R7¦ŸýòèüŸ¯_=yLb2Þ¼(.)©8äKæ:*þå/ß}ýÕƒGÏ^oÑ9¹¶Î\³ÄFÉeA?úÓÕUzþë“ç¿ÿ§¿üí›ïŸ¼xóô—gÃK»¥E«‡—nA¯×gÞïõÅÃãâÿ¼kØ•›©yŠG{V9LæÑÿï?}S^U\Ü2‰%,®Î=-ªxŽŸy?þÝG©y7Ò!²f‰—Ëåœá4=C·w·5u¢^þR‡íý·¿~÷âU9K+/®›»z[+‹KFgêÊ*ÖY¹6¤R©ðx|¦x`QxYªŠJ…Â}üà«ÔÓ_ß ÷´Ö?þùQiMëë§/—v—n!ë™v-ñ²¤x0އâoTü—dýŽÔ¸Ÿ§Ä*E¸'5âöXD¾t`׳@Z&lò´ï·éD|tek[ ßÏ»‘6òÃÒñà˜òr‡Ã LMŒÌ,Ñö·GGG–7 D‡Ç!É´ƒñ‘‘ "yivjdbnk›Èdssmü%ɯÕjy—…D ²y<6ƒBÞ£®/ÎŒOml±µe¨†Î…—wyÔj5ÿ‘Šÿ#I¿%Ò“Ä·[M<ó÷K‚Lñb±˜}ûr²Ä‹×Ûeo÷Æ,ðÆà™vâeæ ³á¨­ÿ¯|t„ÿîP^__¿ñ(þF‰Æð<}í¦¨zCx«ÕE–§¯ö‡B¡­­­Õ; ‚ éû «w—Ëu#âCP<Ì'š¤ø(sÄë x(>§x¹%¤±Añ0Ÿ¶x¥- ÅÃÜ?ñOž,--åÔ±xÜüäEÈWתõ¤¶o¹>ûÇøqÇ•ÍÄ™kJü“§Oq8œH$r¹\ˆW©T<¡D‰„Iô`4Ÿ*µ51C¯Bàk3ñ)£;ž«LW¯Ô\wQzWLïŒê’¥uDΔ=|qÙN+s·dUj/]PÉý¶£sD ΘÁ3ºâw_†ÔO=ÌóÂÊ|˜Ùe/¬²öçE~ÝÉþ¿­rDU¶¨ÚŸY|ûöíÚÚšL&s»ÝÀùñ‘HAy×l¶ô ÓƒSØTIMP£ü«@ÂjGLãŒç*íµ*ñ³Ž¸úNJe*p~“Yr$|AYB™•Þ-Y•ÚK¹ Üìºä‘ˆGú›¸kð (ÁüèQd=Ì3uán¹¨²öç…•Þù·W€»Dk­©«K-Fðù|ˆ÷z½|>›¸Ãæ 8|ñÙ”˜+%ÉS¼«÷®+õ(ÄœóÅ¿ñ:Þo…캻yì·ðOJpyqo¿hLöÄäôÌÌ,ƒÁÐjµV«5 f‹O l<Oj'—Ëåp¸l6¬O¬8Ð×år¹^¯Öý~  Pÿ"}z›FI¿ ç‘Ï´U¸Žç¤”ã8Ãðt‚hÛ±ë:˜¿bÏùûç•x·/ä½ûAàßíz yøË»²ïÃË%àü¨OvÎ5ÈŽâ:À}zî{÷îSûÔc%B 5B8Q Â…‘Œ‹g2àrÉ6®8•äOÊ?b§’¢*©Š+NÙIª Iªâ!A&¸cƒD‰/Œ´z®^»+ißÚ÷Ý{§OæN÷vÏÜ£™¹ÚUiE•[S³ÝgÎìêv}æôé37—s |"•ÊÄùÂ…­õõõÞˆh¹%&„Ä;Jñ‡Ò™ìWx$­U¾þ,F0 O"P8ÝRÀÀ+ö0˜$j¨j UPÖ´&ýx±Ï‹³Ÿæ jd@‡ŒýjàêÉ pná\†&Àmsðpê¬æ½Jêê­®ì—ÒK?ùpùÒ%5uõ²yaøÂ©Sg,‹/¿fY:–ÂîO?®ÌçR 9ccœañ ȇd !‚͘s8uÁØÐtþt²ËWýâç/=z½Kq<O$ÎÙïØ|×Ù¿pç=E<;•G·Ù¬‰ÇK¹K%`‰gÂv‘¨€€‹Z ñ?|HJIÁ\Fßì1”3€ÞÑ`wùp§["†TM²sª†`†u ¬"÷L •š‚Ïð …_2I|_"ôTn#+,ØÂ© !^ûõwmXçÜ7ßxûÞûïV:;7<„“cc`ÌåÞ9¿Û34RµzC¨oÊŽôßÖZ[Ä]þZ÷<1QYßXÛðù{ÜöÓ§‡†Ö¹”Éd´Wcüx´’©Êê\…:nÙŸówz'¨Â‚äË9@Œ>0 ]aªq'P¢¶ÖéíR½¨ëN~Ã\7MQžÕ”B‚»¹Ê@ rW.‘8W…Ë{]U)Óhú…F®;À||uÉt?‘)Df:ŠrŸÏ¦rÓE²m…½ý­]«n¸.ÆÁ*…©œ5>&. ZÀb.Ð1`‚al|4»|åò[×¢§Nœæg;§‡ÑÅÜ‹b>žÆt-c¬ºvAo¾èDe³YgF9„‰Bè0¼+*H›‚¨ž˜Xô8WOFq¬Ex`‚¡ü‡¨< .¢†PJüÖÝàa8ö `ô5Fž¦@„+…;- K‰¸Ë½žjbÈ@eîQZ+.£Ð@!î…^ã‹Êfã, wZÀ€BO –j^›˜¶eýºU«îÛ·xQËÞý‡zû$Búûs§NºOÇÅ Àâ —!Ûñêéìæo[?ñß?»«¢p¡¿z!Ï`Z@Ádu}¡ª‡\¡àP­ã6ç1½Ïj»E Ð›¯Ò1,‡w$ÐÎwúÛ$ò.–(±—=n‘’›ºÖð*£×乞*²©N³ðdænæ5I oœýŽ»OZ¢ø3ŸežŠqáuÜŒ³„@®œKö€83ZH 7ÈRèM“Baìb_øâ‹‡¾ï¿L1nŒ`y[zÇ€„¹X8~B8M¹ ²  ýÜp×E>žpA4«º’¥§ß ¦h®ƒ§$cª.1áÉ̃™7‹sÃñ¿ÙÀ³™°8GY˜#`Àà†Þ kÜž`šË†¾ ŠÝ¢Š.t¥QB* ª£´ðr¶D„@çP…•[ IeâŽ~eŸ™Yܪ#4G©—Ž3'T#Dp/ªSnt‘lô"âü[wõS/Е¥T9¯Êõ“N©)~Nx0¥3UP9üþ †4ñYíò`x€á¿|âo#܃•_0êó`”Ûcšy²*-™-œA‘‰.<ä#™]† 9Ò8¦×ŠàüpMmÁc\ÐͰ [íÔê[(¯h,Å×Èi?9-!j¤WËô tZàÕð2&#SážËÃ=JâN{LS¡ÎôÆí6ôúzmÓfZ^ecÁÍ<{©<_¬S3¯%†KíÙË!XRèã©3I¡§E2Ü“}y܇üQ(5ó,« NÆšIë²EÔ|D‚;P¨O‹ú$í* Êø'Å Y¿zÎBÈ–ÑñÞ«V©„gúðÈç zˆ‚A@Û'!P¸Eº1zÂw8ôˆÔ9¾ÌÐÁEa‚P=@£ÈÊðãÑ«e ¡ßf„:î¡ó!üC ¥?ñ@ô»•è?á¶ ØtJ ÿŽæ2ñd®¦Bp_òh“cÇäɇqÖ©ÛCƒ¶d2\9(ôªô E¼Q"é»Ìµô >!šöc¹Ž;Ytø™×ŸLéi“M–¤wD2%ä=þq§ÃIìú|›yzÉôŒ! À¿~Uv^[,êÁS¯C §r$4ÏÞÉք ¿¤A|Àsc:7uaxèС»?8ò›ÇúìÃ…·|Üi7•Ì( )•\û6fÀèriX†º­þ l<)¼ÊŠ>4­gºL{òNÝ–ÌË]¶ J [O;ó²ºõ~îÁKha¤±6‹Xbttäãýgö~Ú/ ñ¦ª ãûö½·§sp`°P(P¢érA }æ:" *œƒÅ¹>œ&æÚ*k¤ÁØ Ô×Ç NeWåtAu­öjœºD^Ð# xø H §…r=œ€B P&R (4Š*mkrbüÎ,jiœž:~b$—/$âV}mº®±j×Þ®ÛÖ@]M5·¬ò>ƒ1MÞ`Bš–äÍkÕ¦s§.@¨e¨N¢ðÛrž-ôh!Í$1MÓÛ®ónæõdÓ©5 Ê©Q¸ó’ )FRœB7¤L¢%M=Ð7Ò}ܨ]ªò3.)žH%ýPbB|¨qÎOOï?:PQ[¤s¨«w,“Š­¾®þ­zRçÇ N.n«ÛÓÑwÇ-©t&„;]&(vA›wM*¥­¢·_9 à¨œÔâÊö¸gƒƒâ]0Pv ì|0Y:Ã2Ÿ€¢LÍ?"Òù cMŒ3Ä"´ÞÔ@$|"©Ð@oPC¤á˜îÚR rù—’”0MÿâUòN<åÔ.ØÇz§–8Ú3’NZßýúMéøÖ}g»ú'Fòb:fÅ“±á±©d*Å9À]…;6›L¥RÌY¤Òi”´‘Y‹ä—pÆr¹\*™tRý“‰d¡`çòÓ x<žjµæ§áäÄT,‘´‘¡MÞiò%ˆ¯z3Ïü¬Ó¹á]¿çΙY–N'(û_‹ñ8Ít†("És’@/%³‡ž¾}¢òfhÚ Fy5á£Û70Ò7\Èå'cIëÉo®YØP±íãañ–æìô´Ýy~¬®¶²«k°±¾:Šuꂊçž}úO|'“É?|às«×p+FÔ鎠š0/¾ø¯›¿õÏüäGyôlw·-Ds뢶å×!‚ÀÒ!Øó/<óࣛӕ5Në¢w­:&úy7óT®Ît>%2ÿdr¥Ô(¶‰ý†w"h2ÐäðÚc3j<zÆ.ÙÃÁrf¨ãW®ÃC#;wykë»ß^ßÚÖXŒÝ}Kë–ïñßÿlÝ÷Zöñ®¶½ÖÑÓÓá¸Sâ¹Ë.fqè;?1>úÿöì/_y©÷l×?ýÃwnߺýõW)ñó—^8×}æé¿ÿÛŽý{ßß½óéÿàl÷i¬®~Áà@_eeöHÇÓ';Û–´ï>óŸÏ=ûÔÿæt瑟þó?¾»óÍwïÜòü³]'ýËOþν ”„H6Sg¿$ÿH%‘¦úÈzÝ*7¤JwaQå–jQ@ 'h—Š(ÓÕêå \B(ô½E¹„ªêÊžÎógOüó§~uìôùÑÑÑ—w|òØ_¿²éÉ—ÿäG¿7>>Öqà7Œ±nlßñÆÖ+oèïãœçó¹¾;7|¹ýs«++*PØ»vî8v¤ã ·Ýþ?Û·n~â+³UjxI4 \ĹS~•ÌTEÅ+éWéR¾iÌ)ô´?/®Á˹5©æÕðpÝÅ‹›Û–e­kÛ߯ùÚÓ»öìl¨ï÷Á+]Œ×âÒ•ÍËš¯_ÑÂz ASÖ„·&'&>úðƒî®.GÒÐØt¨ãà¡C ÍÍ7®ºéž6Æbñꚺd2µhI[¾Pؽë-YºîŽõí«o±[²ìšm¯ÿú¦5¿sad4•®(6>1ù_[^Je2ÿ·óí–…‹«ªjx*IWT¾ÿî;CƒjÛÑëÚÎÁl#âUlæM¤’î¿"Êä2!é§Ü#µÓò\fò™T ÅzîKÊ3U‰Î«¡t&â±Çï[Òtã*úަ5Oî™xíĈX±²â曬«´ßüÀú¦¦†HL{(î½}y,/ð÷y|íº;V¶¯žÊåï{pSó¢%SÓù{7nÊTVß÷Уñdºíšw|ùž¯}ë;ŒÇry;/œŸ©ïÿÕ³u?öuëïnZ¸ô÷n_¿vÝ—O®½}}SkÛ½¿ú¥»î«ªkúÊ›éìcßü£DºÂ¶Q$ÏÇh35[ôh¡Gâ1óLþÀp§…ÆÝ©2Ñ)ÙºÂ9x8X^ ¾|q|•ÁÁÁÞÞ^çÛúNvâ¿;•ZCØ…<óæ‘k×&—7Ãæ…•,–ïnÜÿÞ_~ýÖ u €g€;Y©8W1Êè·LÐt¢7‹Æ„Ùe®”-äOˆGfâô޼ œ ÚÅsÄLRh"ô¯P¡oi^4Å¥u!ô·‚SäFžåœ”€~ã’A€\ž´L]‰ˆ&Ðî4òˆÎ€0ú÷O‰üÅŸÞZ“hmmmiiqÎ 1 XÉnž÷Ä[^Û}ð“TuûµÙÆš‰á¾¡ŽÎEc>¾¶¦6kÛ‚[Ù+ ¦ÝW±%²BÂBn¡f£ä‹æ{T„([VÐÿþ?CÉ€P‡SL æ|¼j#•A¡z¥¯l¥r; iö¹Ô Úô"ÅÿëTP~ ‡êÐÝ®²ýJB<¡‘Å’ÉÍß9Ð?ØyæÜè§GÓ銥¿»¸¡áf–m#ç8 ì³HÜUsÆ$/<×\ò8]TU½û‘ísýÊm듼;å˜v}½of-FÓ4ôêœþíþŠu“¶ôŽ£ôòêBˆ½©³ôŒšnIÙ§›[ѹ£#Sök¿Ù¾üÝÅÆýÓn2B4õÕ°õêȼ+Á<…ˆ2k¼´¨Ù¿ùVç¸9í‹ ³Éƒ=lrÂóÏ4~t¶Å³ˆ‚ W½ÞªºüÃ+~H²›)N̬—6’¼(𪒲Î5×* Ø*ðnr¬Ü#SjµbÚâ{¶¹úÔ±†sGJδÕ) Åæ÷‰"Ãr@BbA@¼w¶åi5ò‚I#Ü+|ß4eåÏ·wuÔƒ‚CX^D(òBj;àxËá¶êò:BúÏôps‚˜ä„/l½×\£VàYS‰2Q¿X\SNŸ8òþ+Ç®¿uR«’‚âÁK#kï¼ÜÔREðD[ûÑ+µß L¡($è^ !ómúòO,%±íÆT%Ž¥)p bP!}-ŠÜäRȤ)n¯…8– Tpg硊€ ¢æµ"Ãg:;ÜÞìlÃ)p]gªWƒ˜æ´O¸#ÓÛ]½A”‡^m­Ç“îX{šmõÛíeñ{óººF-ܼïô&2“RáéÌšæWF …R©$0PHЕ+`ÆëõšÍæ±±±ËŸ^]¢X«/q÷¾ž ŃA(:86e\ ·ýÂK]—º»»{zz†††&&&, ÌqŽä•xb—д1gœç€,ˆñ?ܲšm33"ì“âawú›wlIEŒ¦e䣿ë3º"@"Ä}F;)u#»¤]å³&£=þC|Âdtp@.ïc‡=$vÃ\\A.6½‘ÍŠ"] Þ` à´YÉÜ3<ž™´ûÀÿÞßÔ]{PSg¿y¿c^†g¥:m•Vq»­ã޶ûh·[·3Õ:]m]¡¾HxIK"­ÊË¥¶(>v -•N­0„w$¼4€€¼H !!ÉMîMö»I÷Ogý§{&œ9óËïœï—“Ì™¹™óùþÙ;»=òî÷¢Üo32³rJ*”m½·EQϪræ@wí5añ_¶Î;çj«4ë£E÷[›šõ@z/ uYæGA¤dDÔwo*ÕZÚ5Àã¿âÂxàóÐQ[Ë‹~ɶ w¹1Ä<ÙÚ3 Æ™Á¾áyOþ§-RS$—_¨E—µ»ß=°è©Ö…X;Z{¾ u~0–Ëw­ÆÓýu¾bfê/¸ÜB.ÿÑ€ïÉçû8¼$.¤§³ s›'£ŸÊ«/µïö½Ý5¦éU6·ëÌv¨«¥ÕâUÀŸÈgXv‰¦KÝØ ´zHzB^…'ûÆž,GÓ¥ÒYì)Þw.÷Ée¾\Þ²6|%ð èöÕùë2ÿe’ϼËàyž¹R…k?>²üdÊ ÙêŠòÓeÒâʶ–Ûe™ÇŽ”Þk“~r4Užw«òJjZêç翇!È85¬Òt~SR¦]´ùIꯟ“Kª0úÈØƒöÕµ½­·ÎfŠÏ\ºòý⺦Öó§äiÉÉUw•g¤©)É™£oUw«þáÊÊÖ‹ŸeHW('ËãYGýëjÝä@ˉO¥Š‚믋É[|þt¾n£a¤-S.K.ªBaÓwç +««³ei§R‹v~";”$“ääæ—˜åÒsù™’¤¯Ëk«Š ÒÀ;*ZPšŸi¼óŠɹ’3e  &»ªÅGe)bñ?s¾Ê¿l¨¿š"ùLœ~þ§’ÜæY{éÙÂÆöŽŸ®‘gvOLݾ€QV4*X÷H‘µ?­Xç† ¿½1®þñû;ª²¢ÜO%§æmöuÖ—I“³oµaêØ¦¿’¤¦J套J’>9tàˆXÇM~^öAY^ss‡ñ|+øfé—Òã’š¦{éÇR®Ö4Môߑ̬jè®Ê?¥øFYS.OO—~±ò\ö‰ÌœK¥_Ÿ8žœW\n%uCѯÚo§¥gœL¿àù¨Æ« yêéòbÛÿópÏõÜÕª¾þÝ;>ü6©G9Áa”Å.õ4'€9öh:>.N@ct«Õ,aH°4 7hÕ–ß¿óÞÎâSŠÉ®¾E—0>8å #b7½ý§?nØòÖÉS‡i¦Å˜ÄÝo®'uM[E~pÄ„†„ЍDP6=îÕÄ}} ‚ ªq½ ,’GqÁmÈkû~°‹ÍçÇ……ñÔfw ./õŽ‘Ú XÚÛvŸÊáGG'†{g„Q"hÎ覄‡âðnˆL•¯d² ö㉸PNÄæ=Ix08 ²É€keXTâŽ÷VjʧÖègf°ªioüuÿݯÏká?ïÝë6»ß'%RÁoîìû¹†ÃFᣠ%CüBQ5ॢªGêû‘c›xlçY@4u-ņ9µ:ˆè0ÍÎc›æ±íï’ã»6Eß¡ퟳ‰Â™4Úö÷önŠOxëÍêV³ƒ†ÌO/Ø^aãã‡Ã6Q·õo~÷ã=تXzûàÑw^‹Ç3Eþp¬GÅDò…1kWÑ™üЈ¸P—ÁíàtÂl6³¯GEdó"ƒÔi]2õèØ² ñÆp¶ÃNuØl°óWÔîÏ>ÇãŸcŠˆÚpèÐu">Sšøb„Å`A) ÉŽH\Š}|J·LB¶mÙ`ÖYìD ËG`²è4:cÅ 6x 8ˆ@ÃÍn2ë‰Ð©D€òØwëœx2„'±Ø@|*ž½)’j±Zù«_ø Ÿ`a‰TL¢°‚¢_áZ–,x:SkPW^®nq: 3ú;ÎÙw«¦mîiL&/zWaÖ&›'áPÌåó£^Ùù;ážÄÅ£JÆã!çâøÔœ…èˆóg‡›ÅÀQ¸[_Ze6Xq…Øo°ƒèyr…nulˆ ÖÛ×/”7L'l§’ðñëCoç÷P„QÁëf¢^ßÊä 6»rESNvâË‘€ õR (jæ˜'o‹Ìâ„4²2SX+¼²$¬ ¹Tp¶}Ì&PŠ0f£ˆl±Ù(˜”‹N¥1(4  Y\ǃǨTÁL 1×D­é©¿|Sù0nmxí•â{ýZPûíö—Ís+Þ¥ÓN-¡KfÃì¬aÆ9!Ä ]=§îÞ°õE‡ÑºŒ‡é®k5C[‰ÙÙ_©&õC÷î4õO÷Ö_«ëÿ{çÓÔÆñS(rF‘˼Q´\¯,Ù¢L‘IâG>ÍÌ/.˲ìÓ¶.Ù²é¢fÃ1'Õ1‡¡Ü9´¥¥¥7X ³¥¥wËiË)miO{ ½ÙcÈ\ÒŽ%Zv~Nò¾y’÷œäÉ“çüóß÷Õ©ðBnáÏ®¶˜œ~ƒÝÏäK7鯿¹ Ð€m&únH6|ŽFÔßrõË;#Óëà#³Ëÿ*¸…'R µ¾À-L|aÙÿOäxœ\Êñ\`ëP×ø>°ruÃ§Õ ÏÞ¾k®ë¡„MH5€ßë´:Ð ¹”t¦*Zõî‰|–Çã=±"@Tx´½ <’@Ød^ÞþÎ{ŠåU öÁ=’„(úøç=PÔèÄC7îÕ¨ä ÈÒ›aBΙ6T' Çáv ‡Z&3CZdªMëj ¤’‚ { AõZmój”|†Ãb‹<L#`öôuÒ:ôKÖ.[üXgÕÏCŽ5hAa1ëA¡4X´J™P,|,j!‹bNÂb€¦åå§k-*$Ly–Ñ©ˆ#˜15L»ŒúÂs^ûøäŒ^§âsÀYýè2“Ábœ(2~s§¶¥¤l¸aþ裴»±Uëý~¡Õ¨âôÝig.,pGxr8äµ Àë´þ Ÿpmüc|pÈøçÐðbV=îÿ½.œ—™Ý‰@riaA19³«½í~÷`ëµLnkû­›Ã“ À·"`Œ|{ûn÷ý^ oŒ%”þÖÕuïk·þ4ðé¯Ñ6F¿÷`4\ì­ºi†XóZН»£{Ím¤õòCáj@TÏÎöÒ:œÄ¤¾¶_|Ù|gˆapÖ[šˆkü¦úøT)7'sŠ!­k<·Ý‹È‡Žž¨Js*Á´±ñ¤Çl‹ùRBtÎñw3|ž%Ȱh\›„êÏ¿²»NWgóý\}%Ê×¥½SW†ØœAOÀ¿j3Bz‘DíÃ<Ožýø“Ë…ÔÊ„¥é)ŸÝm¼D‰»Èåe¥åe–E.>r¬Šèu>°“Ò|éÊùš<õ¬Âîr¥ï¥VPöc‰™5µÅ^‹Ý W8)ûsHñ¤ÜÚÚêÜtâšÃâNÈ`„ ¦Á}5„(ºšÅ]z^i`Iš›*ÏQŠ+KŠöÄÓ©µ…¯Ûy*¤º´´¡¹™â‡’vg‹¦„* ›at;epJ•¿±gwqEf%?§(/Y-³Å—äï-/رšàôÄ×5\üàò{k1ÁŸç1NÔšçQï«"‹¹\rÉ¡*9gç¾]99Ô¢=þÀ××Fš®4¬|óìá$úÀ vU†ì¢*@?q‹6^Y¶£õÇñ3O9tÄô¬­úmÊᄎ‘qâ\",OJÍB­xb<Ý ‘œeðùÕXv&…/G\QONs!—Íj2-¡k,V­lž,€EŠV0Üþ=Åd£O~t¤§gñc± ~–ÁÓì]ñ†XöÔÉ—îO?pâðßÞ(mGV1‰Y§ŽeEž_S©æÙ€˜|¦© Øà}|TZ !.üü_€ƒïì_ã¡ppâ¢óNnÑlÇÁù‹½{jêÊ~îÍÍÍ"$¼äž" H*¢­ël[û®ýé¯Ývwìnm»ÛÝNw·Ó©ÝÝŽ¶Rw­«mPÁ"© <­X(MÐò¯ð I1@!!ÏÇÍÝl¶ÌN`:êt¸Ÿ?î̜Ìwsç{­Ð´ìrÞéÄ”ª «ÕV:…B ^H&#K®Õ¸á?âcÌÙ€6 ,/.Îáp˜ *XéF“Õ‰¹Èd°; VÜlÿ³³V µ›,;  ÁìFµzjFo]è3˔֖‚À`Ivì_il\*ãïþXœy¦I٩죇Žï’kÀOÍ)¸rîí?½yàoùƒj0Ϭî*,,©o]­iº=ë#¥U]8ðÀÅ'Þ;RbËÁ“ÅøOrž« ª%y÷+ï¾ùÛ HuêpVVö 5eG¾õÑ©Ü÷ŽåWæ||ìƒÃ'Šåƒü¬CÒpþdöG(øª½ª¢D§-*å»pPWxú“ïÉ«Pô7»›V7œ=þñ‡~zô`qsïõ¢³Y ÄÚÚÏNH~ð€F¶>¹ïÑmiÏþÿ“=Uç+¾n½xòèÁw²z´€Õ8y¥(§¤²öÜñcÿÈ.މ>Ï:’[vUÒQ÷á_ÿX?`Ÿœ°.1êÊgŸûû_òªnv\»ðá¡,áè,X 8ÏUmñçz‘(­b4lûž´5ææ6ÙƒOêMAQ*òÂ^.>Ý–¹“í9Šì™}/2`Êÿíû% ¬šY³»Š’Q‡$62™„§fæX¯˜—öSà6›w>‘‘¨pœD¢ýþ×5zlmˆÙhCP”jt¡pÆÜœ â…Oby ÓfB¿zŽß¾'$fy3iÚó¿xŠ ÙÔšY_ÿ€½{£`°Å'p¯%$&ñ"£€‡¯¯/Š¢À%»/´ç^û…A÷d-‹ æyy!móþ”ä¹ey{y®,÷…áýõXÔËþwìk‘Ts¾`úø3}<½³=-é~ àö}0-4 Ìóf·5~Akþ3$w[FËÏ+qòÙÝÏå½=À"h :X‰L#;ÃÁds¸p°Ò¬6»7ƒvÏö\qàËr–仆V“Nît*¬ØÚšÂÊÎxÇN§§xâ G€!˜LF ºG³°,9N¥J ­‚sÛ.úÓ¨”ÕûŒ÷€Ü¿•Š‚U€øçŠãàÎÜû· & ¡PØÛ/±¹Ø UvÕ5KÁmlš« NOÕÚÆþ»éÝdЙ¬Žù;û¥Üì‚j˜g·ÌŠÜcÛ00§›±Ø±ÄNöWVֺƦ53·Ý,¯i\ ?±çzù²P1==3£îîíu)µ&•DÄç·êæ´‰TzK0j|þ ù¤Þ¤UÝä7wô+´ã²þ7=Ã2ÉP¿X¡Uˆn¶ö˜l¶þ®ïº†Æ¦n‰ùßuêM¹lÃÁbt“ªQ¹r §UØ7¢• êo¶n oã·È&ôN‹®¦è•šêÊò⊯nÔ—äV\狆åS“²–½sæi±X*•|úÑ'"¹r¸»£³OêÄíƒí­Ý¢îAK‹Î <\Ê¡ÞVa·F­¼ÉoŸ6ÌJûº‡„7§M.°ªï0i»…Âa¹¼â|ù7õ_6ð…—[&äý åyy5Mm½*àa3L4Uyô\qyÁ3Žcš gÊMvGNœ®r˜$ÇåT–äçŸ-Ê;Ó ê8},¿oX®žk¼ÞæX<©Æ¥Cµ¥ùM½ã×._º53Çä|sáó!å|AÉ„rÀFñaúGøÑC˜¸bÊ €IþééKv›"7·Z'n*kßÃÇ„M¹y%ù's¾,ÿ¢uDƒ|\1jWµŸ¿.è'DÕ×ÛqLé\Ñ„J\X\z¶ þrA®h໳õ}`U!2ž¹vßxeÏNpLʦSSئÑëmº?O7MhpàYª[RzˆeÔÌÂA™ITÈ‚{Eo¹/†¡È Û£ý`—_ôžö=ò³Í=´AÒ)OÛý8¢™4ÒÒ¶$!Kšæwæö„P‡Ë‹Ù@'Ó·îÌð6æpÌaqšôZµjD¥'rc㢢’¶ÆSIÜu™[b'eS¥ùûñü|à õé/½ü" ÃbSÓSÖGEmÜ–ù@:bÐËûGt34)=9Þ…ún{0Å6>í½!!n}Ú¶4Ôh« ‘ñ~¨2;+ëd~'"”ÂõáÆ¬OŽ 0vÈf“b×ÅÅÅÆ„û]ïßÝÙÅ‹OËH ç\ àÝ·1XŸs‘Çã×$<°ºöu“B3ÝÛÑã—¼Î0Ыey‡³I¢n±‹ñ ‰õa k#x,&7–ÇÝõÌÎÒcÙ~™;cÖÆÃ˜²ÎxE&ìxpGFjô Akp0bĤp•§JÄÏí{Ø’a—™}}lc×¾mMKVœÉ»ÜΩœèP¶¬w¾‘2.È>S•°ž›sªjëî]‰‘¡<ƒÁuüO!,]¡éÀ{‡ûÔ®v¥«Žßsgšêêê>ð(((ÀB6›Ãb±áKrØŒ ™L9®ÅðeŒ`±ÚÌÛš® ºEjWÙ­+4Ýkx€ÿ‡£‚¥ (#$",s‡CH¤Õ¾çJ&“ìNlÎd+‚((yµg<AL:Kî)Á`9"ˆ7ɬv¬±O©5XÁJG`³(;‚”;É^äŸì\yp×väùB66`|ƒI¨¡\MhZ(Ði)†¡Ó&´ù+™I:Ó¦ÐÔ¡:„àC²CÁÁ&ØœÁ5ÅØÂE6 6Ƈl#äó`uY²dY«kµ—V«{×}ö@ËLL&@˜R†ï¯7o>}¿÷{û­æÍèÓ{n à ²ËÒçf$F=‰È $9õ‡žgÔMû™Çs<çtÈb Œ`¿F ÂÏLM(Æ<ºjÔ¬Ð'Yáì·å28F>Iœà›û˜1J1ÄqçÓK‡2 S^^òÌ#:"ôJˆ.Öå]i™1Œuïi±ÞºKõô×ZEõ&§oJ¤ªšzÜ–ðXÒ粫Ž;'ö»±/N» î²u9(¨ïVŽªSôÉÇyà2µÝ}O€ Ö_º¾e ëJuƒçáïCãù’üBþÅk·¡€÷Ç6UÇ¡ý‡Jʪ­ž{ô[×®š\ÞùN«â³ÒJ—©©mìéÔZgØ·]_^úüâã#˜YÑ^^Õ蟜žÇ•ey‚3µà#ÍŠ²SU&½üÈá‚Ï/7CÝ"Áß‹;u6¨­NP˜wEª~‘2xd lúî½;áîióåÃø½è|ÙÁ¼Òž~é¹ò’nY7¿°ðDmë=çÐhÕ©£EÇ¿ÐiJ ÂÖAl¬«ðÿz¯özÕÙ³j†d7‹ ø5_Ýiª>}0¿¤­EÂT6ÈnUž‚°àÌÇ …ÍZMÂ+?ðZÆšªá‹Ö,K•‹ßÊ}îíNÅP<-{õúM]õ%…{Oœ¹Pxò²›œ¨ø4¿Bئëoæç[Ú/œ(­½ÞÕ)®ðA˜LÀç¿Ô<ÞÛ˜wøè-¬hk,*à‹n¶+=.”t6V~~x¿ ÏFËÛ]Ñ{öíöŒ ØÈñÓŸVe¶ê+JWÔš5]üO@ƒÿ Ò4ýêÖ÷Öf0òîÞÓeGŠO^¦ü,¡›Ú‡²ê–iÊäØP†j‡@<ÐÓ$¬¨ª®??UNÿùúï¸*ZñËûwïJ¹«†urîú}5’5»>Œ7ôjìFI§ŒÆýÜ„Ìí;râH¸½ Ýùá¶¾–Áy+Ömß¼Îk´¾pü#Ã=z6õõ¥Ð]×¹¿‘ÜÔêÝÙ‹&/Z²1çÝôYn6ÀHo¶ÒÓdŸ s‘ŒNÑ+¬oyí×ïïxsUG“üí=¹9¯.´X9¿ÙÖV+¢BÊþ>­ž|93‹F-ÜÈô´øè¥~–3ó&eÑ’„¨64Âz ÑôÙKx-U— dDäl.ÏÇú ÛMè–··¢þÔDÍÇMxïƒ?¹ûnÚñI¿³¥¹Ýêߺ>yÀ›{àÀÉXi³¤¡C³k_î뙑"¡Äâƒäý–`âÖŸÌWÉݽA\-²^Ä?˜çZ¼œVÏY½}m’¿CyifP&½|Uú«?þ%絬Ãw ÿ<)µ„}/9ÜC³#=]&ÂÝzC¾ãÏq†:-ÀÌW«T™À í–‚²V¬}gË*=5ïžM’Ùý+"tq /,226„”õ›"}äÈä—ÿüŽ3% r¾¯Y>0&—wèðИÃ"n*rV<ëôòæ$r8a/ö8x‘$Û{àooýô‡ /!õµ-ái‰)‹“5}6šëPÜùóË–&ÅF0ÓddBG„Æd¥$ÌãÅÊÛothÓc¿j÷ê`7>:2|ñ’”ŒÌ•Þ\•”™ +îLxÂâÂíòmßu‘Þ9óIx\}wxà¶R#—º~¡Mgf9³³VNŠÏ\ƒãfË8 µZH8$‚5+,<àÅš%¾Ôy†aMæ²WxáœY1ñáQ ‘´òZýµ†·çgg'ó¢’b8"‘Xe§ÁÚf­~cãʸX@‹ uŒÔ ;SWfyîüe{÷åFŽ÷’~Ý™óa¦É9I™óf§$Ä4IÄ=Z8à6–—׆„Go{÷ýþ<ÆÌž›9ŸÇNNf$GH®|iäÆËC(d,Ÿ±îGk]F%Å„D¿ÄȆՌº"”.XžÞ/<Ñiô†p¸kVÍ=sò\Mu]CÓ9/ó/Ö«{‡ÀÁ&.)#{å¢%ë¼yËïŽåïËÙ´)Ê*oP9=± RmuõÌÒÔ.q 4®÷1ÜçîꎧŸ«¹ÑÔ^õ¯)|YW­„Ô„ÛmÒjTcA†5”V«R(ÆM@áÆïÖ©!­Áä¦)­F©7û½x7a·¢¤Y¯Õ¬ / šnšjÐhCFD•mFИqÒ>0z©QÀ1˜«U(`„„€×EP 5·ZmÒïqê 㘠V@ZO©(?áN°L`\§‚T£й<ð9‡ ZŽß*â÷IŠÓ$z±–Ó¡‚F)_µŽƒœ‚ÉgàAÛœÞoÊÕH‡’«ùîïp8Ʀa6›Ÿvç38þÿÀßÀ–OÊE}—ÛHωã-lqÇÿ›s9¢`>Â"!^rÔ£Ø-v ‚ÂÖ°¢§€wz·‘7Py"¯w,©ŸÒYd)+1€xíͱ®aìݹ:¶Ù÷P2øY&°Fßòø‹;Èm†¡(H¦½ÿ‰ýÝtÑð²gŽ<|8‚ì½üü °×M2P<(Q<œ\<¤*ЇC‹ŃâQ<(ŠŃâAñ xP<ø~<ØxÈÍâ»kl|Wu €â%ŸÅ÷èQ|Ww=jÎÎcã{ÒÆ£øörã÷Kl<äMñûDîÕ€/­BŠÇmáÿl<(ŠÅ£øÔFÀÆCf¹Ü/¾RƒT%³ñZÉÊzSüY3©\*36’¼Kþqì¼#ú[ŸÚ$k­$ƒžjpVs£ø“–]³Fm<¢¯ß>ëD¨}­Uõ˜q“ R—Ì9‡$•œz¯|Ë_R<Œzއ®îv[N-ú2ëÍnèY#Îã¡«ç=ÇCO)œNÂÁï¹B¾ñà­?œÇ§6=é–tõånñ¹Ôö ïŸµ^5N'Sõ|¾ÖZIí ºûÏ‘ÿbï\b›¸Â(}Ÿωßx4ŠÆY£ÅÈjQ¥SÁKcs½]MD!QC ¤c¼¤×ÑóÜ<£gŸT¸‘k“=¯!„!r|ŽðìwTD•€Ç „ úÈí‹§ÎþE|ñaljáÐÛÛY~M£=Œ™ŒÚÙÙð‰ãçúìk¨Ò/ã"I9Ø!z<˜8zò¢ÙnÑèÛ*"\S_ Í'{}} >y§mè§3»ßýû¨¢R{×÷O½"ÅÍWÙ :uá×Uá9^Þö¤F‰øbÏv<ŸŒ“(’P笉_º1‘N&¿þ…W§¬î·¤ÛWG•µ¡õñlða l.S¡‰ù@>ïËçËÓã×þpv½ÖÝl‘×ׇ¼82fìèyàyØjƒ#Þ6ñáƒÕͶ_GoŽ5ÕÑå ‰D"ñ9Fv”7chñÉ›Ã'¿yPíŸNâGŽxgSê*£ž:úí––U¾óŸÜ¡^m!×ÕËöx\V±y/IJ/)m`uº#žÓáËfkO¯yu Wº>´Ý2aq:lÆÔšxrs‡<Øå#ž¤ñÀý@Òaˆ?õòë××Ý Õ»º;sg¯LZœ›:Û+=¿]oïÚj.‡7ý‚\ŠÌÛd©/†VZX×óƾ=Í§Ž¸®ÛØmaH︭mìÝÖ<58Ê'ÓÒ?´oáÄãòÏpU¥T %ñe¼Œ©Û¼%ä-†¿ÿôŒA;6|¾Û|Ã[mŒ_þýÎŽN´‹$©–¦š|Ðæêð;søðå5.w%™ŒÐõµv}¥–¤aS[{Ð{ù‡ÿ ­®ºñ[žTK³ÅT EQÊŸ.rN—Ÿ\ñ2k¬®µµ¸,F<ó޳ÙpcôêàÌä†ý*d¬oáÄ/e^ÜK“+€@5$‚©>},³6·¹ìéÂd55Ê»¼Xûnž–†Êñú>¥Ýþæ{Oׯ¶=»a³ ÃÚ×fÖÛ²äÄÜ}5µþÛßݽõ¤$˲z“%ÌQeVwg+•©PlQy‘[|I͈¸‰@…N“µæƒeCŽ uIax`?‹A rRR$IæÐ Àq\´Áþýûs'\çÞÜ”9YVEžjVD%í´±ßOÎQ<;IN:í¨.–ø©©)™ ¥çòH$âr¹²Sx29==-C¿¾/|à*[D|‘[|I¯·Yû«3¡@QÑ*R£ÊŽ{»víÊLJ‹¢(š¦O÷îÝ»2¾*•*K|.ôyˆÿŸ;6†(êq MößÒx%0*Ó¹°ï- FRs¶Ý÷u–éêg¹ þ;É,û¹šiÃŒ7÷ÕdÕ#ä×Û{3 ’4N ¢C­õˆçeïZv‡¡hý(4E©ª>"ѪªÔév¾‰-?Àf>©ê²ê‚YÍžÕÌš ©Q«,º B¨ížØØ”¸j@"ªrø^_GäÜì(¶ÈfQ*P`0x¡”Ù‹B-ˆ7Â7UŒ1B‰Ð5ÑIÿé¯xØ'&/tþ¦™Ör«Ga›}E¾pDë½+Õ'óx*eÎý¬€šš&ëpï«ÖöÈä-•ÉBê4‘N#qïew"¶È”Ñ£úÙX¯$圽ÔËÜápαŠ<=<ÇÇ»‡#Q Α#p1ÍpK(Å€xüüùl¦2Ã'¶ÜÿÁAÈù$H-(ܺ®Æw]›ˆ|B’ “Ìl³‚R×ôÌ;°Æ……ÃжäÎX*dm¿±ç戱V[/þ³/ÿ—Ëá¶’Ÿ(ÞÉ75«Õj- ~þ¸¹¸üÖ"üZ”¢3!X-PA·'Šë™<Ë8³7Èîõ•U¼‚³âABJ;¢(bF/4,‰›Ÿ„S~*ú”* lVùŠÞßÄ“$ ÖD‚Š9õtÎà—_ñ '7[ô¨÷vÌ RÊ»øþ÷íõ)Pu˜+˜éÞt?°PU©TNêõI¿ÿëêû“,M¦ÓM\%_ ÙR{¯ÿNK$Š¢0 !l\˜ Oçœ'K:‡Ãaǽ^¯Ûív:v»ÝjµšÍf£Ñxcßn„A(€‰F£®ÛSÏ À¬À¬À¬¡?MêMxG8óÃå—1¥Tk%"fU53wˆ‹·û‹ƒˆ|ÜÄÑ\Jéîž„=Þ›¯s[a¢`kz¡¤„Š·Mþÿ/CBí?;o¢ÃqeƒªŸ~³—Rªµ¶ÖÌŒKaDZ&眱ZºãyR¢Ç9$ém@ã±·”‚ÉøŒÕ¸­ÇëMÃÍÿ¶«Jš½3öŽ·W;äúýª±·y0Ò IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtwizard-classic1.png0000644000076500000240000011533012536324517023010 0ustar philstaff00000000000000‰PNG  IHDRþÜß‹;šŸIDATx^ì™mh[UÆÿyiîµf5Kk3»XçR¥…°iŒvNE™¢ûPæÂöE†âˆè„1™–1‡ âE„É6ðË@÷ÂSŠˆ›…Ž$ÎTJ[Û9¢Koór›æå$÷Í?ûÃÝåàF±­cíùñ'<<÷9÷Ós‡×DñÄ–ÁðÙŸ½Øûd® eá0+ÓÈÓ Í04É5Ã4L,æÙf%ð’Šï|ñá;÷+=)BNsý<$>ÏÝ÷!,$QýX{q¬ÀdWP1³ŠšE/°|Íôô›IªUº†óJ`E …›ŒÉî¾DÆóPék2NN›rt6½¿7ŒãÿZnÏÖØ¬Þ†±ëAZõåY]©N—Y…œR)ÍjX`ܶêW»ÉD[æꎑ½©†uà {ªoÕï}(*ü„𫬳µ(pr&—äªÏ…É!Áë7z$¸Î¤K•zÓHêH.?½½³5ÐR.§k55ÝÔÞ¶– ßÑûÖêþÂ, üºÎ0ÎÑ-Ýæäø¿WßuK÷…è.ëâ`˱Çÿ^ñŒê¦FÚýûòƒ—×¾¾çAå*ÇöÁg¥/h(¨ øˆÞs6}9‰&ÅhagÈ$‡Â´Þ‹iêVE®ò6,S YûìW”¡é™ —ݰmß™‚K¬ŸûÁéïØ£áòOí=ŒæÛ÷·>ñÂVwh5_}›ÔÔÔÔTKsÐ4 rΟ9üãÇÏã Hý6ÔÙÕ¥(SpU¨ÇµKL¿äSƒí]ñéé\Ú8ν„Kèýè/á&”6Þë¼õ6å¯þrqBÒÆ$˜¹TýÉÀ2¿,Ëvë‹G8öØ»æQp@›Æéc˜ûG^{ÿйÂÑ^TåÈÊ_ßCf¶½w¸çÛßܶçDnçgß‚îêrúÏê¯z©—dòIÌP’ àNÐ&¡ -qêÅqÑ™§¬×Æ ¥|© !ðܨ»ƒ:ø(Àju]×ÁÁîW¶p½Göý¢|4îÇá=°¼ŽûäéýqÜ…ÇõÜ!F7£‰Í©»¿&÷ÉÌ»†é9ÙÖG!ºâ£hŒ¬'Mb®¦ n73²Ê…¸äk¬®ôËeK®Xµz%Š©¹¸šsy°ÁtüÏé ª{É+ÇÇ#ïØÁÖW7ø¾»Cý~Ôÿ9ÔuNÏq×—šnòh€½÷j–nh8¬xŽU/âS°™[éùS`‚±*ƒ¥@ü¥¸¹r/*ì}r;\ ×¥iÿ‘»>A‘qÃ’D XÄÕDõQ}àöÍ?F²«ÊïßwÞ©[·^½ª®®©i÷ô´Ûãfüc<¶†k Œm~È KV°JV(BÈ`L²þÛ?’(Ù€ØÝ(YØ–e£‘¬´âØcü‹¬<»Ýô´{zjªkª^½ºï¾óÎË!ÄÆ+¯¢hÝ]>ï¾ónKß>ïôÕ}3ÏÆVŠ,SBÔišN3žÅk&Ì}QPÙQEQÚz@ T…¤… T•M” ²Lj’³$\ µ( CL‹²nBTja‰V› @k…h&îì&&‰›:†"aFÝPéη;š93JE@2¡ j0ÙD0„L¨fB Ku‹€UA!ïØ‹ªG ÐÜñÃx!³+ýí)¶7Ÿ.L„>ÍÛ³ÎN ºäµPP Ê£‚ËÀÖ˜‰]Á ‚ŠüTß’¨4õšd*šÏÍå3##§mæSÏP`à›¯ØË¤ž­•B`;þL_‡O%Ïœ6éÈoms›å%mFþô†ëÈv¤é%‰¦0VÜÐ6Úd#-<榔ªPÓ]í_í¤C:êv=@H¹œ=£I’¦ ‡¿À¥¿ÛðpY\ì @Å>N^Ó^µT?ú¢îµ/Y¸n¥yÐŽïS—;Ñ2+(‡ä¥ªºÜЂ(€ „ P!¢¨Î¦S/ pº¦(ÐÈS3/šf¬¬÷Ÿ–¹õs¸ï4Öó6DZÝy»¸]ydáå7E_rV I­®Ô-H©nÅ PHåÅe^詸jšä©ý8Ñ$@lÚã­ÀMÜéµôÔI‡éN™å:I™¬%ÖÔã—ðñ}üþoÝgãÄ÷€ s~ª #¹œ<ù£ Üò÷ËnÕQË íá|\&s¸,¡¤õ6 ¥dóL´h/âzçNM™¤ÃD4‚M¼˜P%6<Ú‘z”§E=®i ª#hC…‰¢®ÕËAÁZË’T“2\¨‡µæhà/­ï ´ëx®ÕB£y..\ûFIS–~ý .…š¼‡F^É!dŸ¦!™y—hž"6¯Âª¢U<õnc{â”æbîtµÐš%?ÂD nwVI~…^ï#¿wÝ«®ûÅ3±w~å}ï}߯ÖÎã©.ÄÍo¸ùæ7Ý\MÆÿ3v«~ÃóscWk{§ÏdåFaFÎÙG)éÔѦ É´ã•‹ºQÔ6ÆÄ KDÌì ÕLFvN³ ä!×)*ÒÅò\/H«R¾²¿±Ð‰V÷›åÅ=¯¸˜®=4ÿ›—ñUsNš’ ݵÅåxÃêLˆ˜‹Íæ\ïeo¶{—x.†¨Ÿ$êçYªÂF–" £TwF™kELÆwÞûÍmhîÛO!…iF6¦fŒVÇy©¸ j{‹·ÿöVö¯\ÿšë777o}÷­"Rg—*±{Õ1ŸøŸ|ñê¡jüÙ'þ €ª¾ÿ}ï_YZy×;ßõó©fþìvÿöß|´ºåðå‡?ÿß¾PEŽ?^Ùj̪þùiÏ_ž'»U½¶ôD¨Iª¨§ÛÁ†óž™áÄ4ãx‚áüAƤ<,)®DÈÐqêÔI¦õÆ@r€Eý©öZt•žüÞø óêi{€žË¹º¶5W/·ã´xìÇS­Ù,oþ÷Iópq×AY#»·_~dðÔÃ"r б™BFæ 8¦Pö*záš¡BÇ™˜êÄu;ùÉ)±)Ž8 2 eÀˆOðxë›Þòþß~ÿ^}ã¾ð…ª$WúÛêoÍ´ûáßý篼îÚxð_ÿËõçŸþ€÷¼ûÖ£/=z¦ß¿ãów|æsŸðÕ¯~ÏÆ]w}ý?üñæsŸ¹hañþà£ÿå¯?;{?Ìàü´ç¯çøž»Òw…ö —¥#°Ëû72À¼[%OY™ïõßp²uÔd>QʳÓµâzÇè`€€¨FaM}ƵÐ{‚$Ã0 oK\ó’çýðûÝ+oÔR7â"Œ&®Óí¼ø’Úú™¨Oœyds>ÈJ\Qƒ£åƒíÕÃÓ[êj©’xÛc” UâF¢Ð‘©3kÍ@EÀ„ +Õc Å;ïÐìQé`ÙRGqanºéõA@²iö —Ž]¬Ñ°÷ß?€7¾éæYðþo߯ª^÷º´TüŽ?vÕœ×¿Žˆ*Ýã<ÎOû,ëyžì6<ñtë`ÿá¥w/?pg¥{§iJlÅ ×¢eÍœÛXîþô°¿v¶QAµ¢23ðQ܉ë%ˆ£:ÙF]UQP›€nG{¿ÿêËÿê_lèJzú§ÞPCƒƒ2öEKêõ¨”@޹{Ö6××6“Q6•³çvÎvZÑÜåWñE‡Ô{ŒÀn&z-¼ª 4š{c,ÈPyçµsH× d@é0ö‰ 5, I†Ÿ9x_«‡xPHáY©t ÛíœT@w¾ÛŒcÃáÎ,Ry&£sãYàÿÎÙÙqS÷Ío|çq~ÚóÖó¼Ù•~g´¶üØ—t0|$nHQDlŸŒÖ{‡ ×pÜ¥”n¸çc—>þŸ·K7‚‰{„ÔÖå¢ù’t¢^1~*¨µ¢=ÏË'ï=:üΟþõroiõÆß´Ê&Dd‰š,™:MGVuuoƒ!Rª zßv´½¾™&ž²!—óûÚó ê@ ‹FŒR„’¤$\·ˆÙ5c˜) ‰˜0 Þ›ºÑi¢ÓTÜÈ%C$©žøÄIæðw¤Õnø“ÿ'ø9nyË-½½{o¿íöÛÞ{ÛþåýoûG¿~Ë›ßZ)û¶÷þ³ßùàìœ .¿â€}èwÞsëm³ÈÛÞvK%î÷Üz{õóÇþÝÎ’ßs÷½Ç;þËÒâï݆G‡ ™ùÌmMS¶JôS(wz*neíü§¿{Å»âˆêæëp¡ùÄÀ‰×ÉMs&uLýÖO¶6Ï&×Ü|hëöO÷ë+.WSŠaà 1,¢vÎ|+ÝÖæ9ÙØ¡Ö|÷´îtÎ$¬$Ž¥f ‚¨šA©(D åB*L³£e  Šk%*PªŠ'b-ÌPMš‘ŠRª.MÜ9_‰ge¶'3s~>rôèQ-µaíÑCGv©»§{ÏÿúwÜq'€w¼ãíí¹¹j|ùo¾üõ¯}íØ±c/}é5Uªjüù_þÅSOþøö×¾îå/?ZEö.,ÞuïÝ_üâ—ZÍh&ëÏ~î³ßºÿ>®ñìYç§­‚¿°ìòw:¯ï‰á/ZN½+yð+‹GT /OTõ~¥’mN(ލ8ˆVöS·|l_ÎûcùD–bkßÚ—M**²›½(œ|ùó¿úÓÞ_Þ»™/ql›©„ªç‰ˆUÉ„è°ïÍGNžJñ>>}c96`{ñ‚Œ{èîáƒw›‹:XJ…H.ÄL¥RHZx7J¹™NW3G` Ù{!dj±O(sÀN¼m ½Y^òÛ›æ’ezùëñ›]f‡–·žQb[i}µ¿¹’<©â*¦uTX~¶+­³RY…·Ãõ!i²ã¶< G~è±g®årõž¬aD¿óýã?úÑ =oGs+3ÝK¦@ψ"R)µïic deÞd¥ÂOF†È(¦©° k™æž ¢IŠB €-R!ÍwØD(RÔ˜¦ÄB’<Õ†5{—yï²-ÉÎ/ÀtΨGE<^àìöúÄ¢$êR¶Jå3‹Wº_M¶! àÉÎ"±}çŸ,ÇkÛ¬4ng¼=V¯°%™.£äœ¶C=›zðÝyւɉgÖ—–‘pEë५ÉöeßqýCÿ釛§úßûŸ;»ÑÍvÒùK^Û|íUû“G6·î¹“ØÐ¦" ‰J—ä"e#¶a-,óœ‰{öêF#ÞKç.Ç>ñŽØ`4 ÌHÒ‘ªpl)Že’¤ƒ> oBåV¬¡Rƒ`XJYËqŒ€‰\Á — d Ävq)´sÉÚ:‰³s Â.»Us›`DFÃÊr ¢þÁë?råêÅû‹í"˜ÏjÓš½úíWƒü’—¾ý MeßCï¯?1V}äøZNö×n|ú+gÖ’C7Ù ×€›f($¶JD>ËK)*õ;‘Ab:±ñ^œÍø5»6¦ù9·¹EsÃBT %0Z‘^½ dšzZL¬!PB²Ô´:ªBÆ’1*‰2¸ÙC£g»²5rãNR˜XÕáήô †âXdÁ§¨%˜Ö‹¯¼ââÅV­Y†sé. ФÆé€E½Û1=»÷-oüÁ]woJïÀ™­ÄÇ—|é£;oøÝNÇã§RÉåλ 7DÑ G! h…" ‹ !jPêR7åÕ%“d¢=Î+W⌊¯Ü4URx¡f„ÀR:”¤*ˆPÝÊhˆÊŸxÓî¢T„LÖÀ°fDQlö¯ø}ËT¨ÊÀ Ÿ1¡ïlÜÆ ݆ÇF*¢Ê¢V«6†`#Ú¿Š×¾w¹ÕëÞÁDÍH<Êx¡ÖÚs&û§‘s=lÕƒW^m=j%Gݧñ6zêN~x:äÒU~Y±Þ÷Äu’LÁ¼P•Õ\ ©†A:I]>Õìܸqm[ž—1dês©6ì©Á’' ‘ÌùBÔBm- …G…ˆðéÌTG‘’jnƨâÎS-6s«ÚZè,tÁn¼q£±ªRH˜±Ëî±U—¨¬Èè‡Çþiëæ·‡µFmç©­³ÛÖÉ|¯czuIb+ʺ³9ÑiãêýG—íj;‡‡ô“áRº.4õiMì©=ô¥ ŸÂTãZXD L¾¸&a½ÈM‰ÎÓ®Õ*ξDײhâÓq‚(V6¸nM+¢’MÈÆ2©@W—PÈÁO!bbës'¹3qdö¬D‹£¥84‹l™²µ•ÂÏ™]Ò4ý(}ˆŠÎ67ÙY…'˜#ûâ¢(I´­Ìwú§‡>Oà’a½KóK¶Ý ÅM› Îz_?ô¾wôK'Äk™ü×õÁ†O$mITíòý¯Z”e#éYñ‰¦©ús1Å“¬ˆ©¬±xò©ä¦Ž4Ç}tõwûÓûòÅ­W¼’÷u̾%UÒþémyjKNmø~Ÿœóƒ5%cZ= #ÓéQf+%‹OàÖÔzñ‹›} äÈ3{§õhpµŽ¿3à¦ÕŽþŠï³~ã×cöµTe1¸À'³ÏyÎì¿âöÙ·Z˜<‹??žû/òÉO|ÿ?ñX»öØ(ª/|÷îÝ™»³C»,…•°Ö" µ0þ§1>JR¼ÅÖ–Ö %bKw‹Ðÿ‰ÒöÇ/ Æ@R±%¥µP4X5†–µ´ tû˜Ý½ã&™LD¸Ù?ÎÝ|çÜù6çÞÉœ|göÃuuuu?¶÷ð`•(hT Ô3e‚ä.zÿk²Ã­¨jR²H0R5Že%‰zdšÁT&qS°;Û›žrå¶&!DÜPŒ¥.̾ÖÚ³@”_yŠ{7‡LOF fÖ뛬ÅpÂAÑv¢¼½?’cq4‰$»œ³´ÁŒ‘êm‰Å ï¤a¦0°U•b;G¨ ¦¦sÅ{RxE‘%L]Åe1™8EáÉtav:žäA‹E]£×§õ¶^ "Â6.2DèAÊMS¹½¸¤ø³âÓ§NC6?zYÙî ç/à=åå7{o|°f]àf_}]ƒ±[*¾ªX»zm[[û®²/ Ï9_V﫾ÜÞQ{¸nOy%tiîàŽ›>^=éê¾;çìÙs»+`]°›šþ_åÛ{âÍfö”ìübço×{Œ³ÙWécp ÿ»o@'—¿Ò_Yá3ãvKþ²üýûªûû¾®Ú_¹×ÿ÷ÍþÛÁòÝåE…%G¶õ¢ÎË 6¬¦ºÆè+¨òùúúúªüU¥Û?‡'1—ʇÑP[W¶cWKK tZšx“ÎÏ]V"†‹I®-80H¡Âc”5U$é6¡.¯7ìò:5E¶EHÂÆ9ôºŠœ`,*Sžc q#C˜ŽpjxxNFÚOOf]‰»•ðHÐ.M¡\DÄ×¾?5™ÌW_çæ-¤”6YÏ{æfá[ø´ˆg1b³9lŒÉ1¦!4æ9.žLc—0‘8'qLÕÑs¯! ETM×ñ#Ê1JRÙÐýf…t1‚e €yʉS‰àQyNõ"–í4 —(…æÿuV‘9†Bœè†8T£èáFii uR3ilËœ›±ô奯Tµó?µ^r9…‹[/~ñhã Ø3õõÇV¬X™:czr’Ø}µún¹zͧ@/µµZ¸md8d¸gçä´u^±;¸ŽËè_ÆÒ%K Š Œ 8qì8¡›ŽÏ{ó-PTô‰(N8pà@ÆœgA`*ƒ ÐÐxòý÷V|søÈÖm[ý>ÿ}ÃΛ¹aãúššC19Ší¸ùdçà7oÝWâ‡G¶³£xYÁ�–ç/¯««_µê›ÝyêÔ™ 7Ü÷FaâaïÞ)ÝQÄ4ñV:V"†K pË G’ñyÔSŸ Ñ,õ€t´:S½éœFFÆ ¢ªÊ+ð()) Õ‹)R”!g’–ø¸D”`òôi²¦ª}‹Ô€DYÐ+UÕ%+óɼEØ®+1gGÿLѤçRÐk3'e¦&¹]¼·Á¡/ÛìŠÂ :ÓP ñCa t‡I¯ÛX{÷Ùù,YCn,£aF8ý©WSTÐu*VV ¢DeD)æ)ÖvPFqV:ÒåqÐÆJ¡[½7”;˜ až`fŒ)ÒÃ7!ï­SßÞ*žçêŒijŠçjWwVn6œg3¼3G#¶1Èûææ“==äææH#K0ÖmB8Ã=-mv{Ë/deAn¥>áýÏ ÈÊΆlhl0*‘`0ŒiÞ²¼ÚÚºHx $þ@Ql}¿¼™…›¶l†˜ÐéË4†4ô²V°5‚'Å 5=–÷ö05×µ.jÅ[‡o¥c%2ö(ÅÍØ9¿Ø(ª/ŽŸ½{÷ÎìvvºÝÝ.méB["!D) ƒ/‚"Řˆ ’R‰‚ñ ‰/Š´•¥Ð‚ò_±`!u;lg·ÓÙ;wîx[lCÚÐþÚŒŸÌÙ›s÷ÞoröÌÉœÜ0ñ‹V[δ™Ôéò0àHL˜ÁE¾ëÖ@ åÉf #à'jPëaDBŠmx"Q%/È;bq!³¤iºYž?|lÏþ敼L,tQs2$FÁ@uv'’CH2]H¶øÎè‡" 7Ÿ.›àFœ}°9 îx™ޏA½£ neCìIÛ75u¡¬,¤f>Ä1„•[*™ÅæÎO§œâââ“ 3fÎ8þCúœáç{>S3U‘¤§Oº¾¾®ùì™L¿ ½D£y¢à9q²z‰Åbbz}]½x9|%šŸ[S]ƒ]xã;ÓµDu•'#cyÉR¸Gá„‚–mçÊÖ¯v~~®È‘ÜæÂ¾výzuUucc#ôgÅŠeŸîÞH$J+_ÜU[ïJde©àôÝR±eMÙšÎП’¥Kìÿ¢¼|øÁÚÚZ+Å,œ/þ¢VÌÈP$‰@²CÙWl]øì¼¾þ§N=ÓWˆ ¯œ;ªb67~ü0¢,v+» È0¼«?²ÀàÇ2A\·2“Ü-SŽ "‰°ö‘”n:Äçáí–±Úìøàûý_‡Ca IEçf%cUßMȉ¨«&…“‘Íã=ìÌo—‹üŠ'=};Ùv×Œ|ˆoß«t”`t˜³ µçÍݺ?7÷\3H&wúûðÜexQ <Þ¤¿ó}p8TUVm~ ÓM§'N˜Ø©u¶¶¶®,] Cáêå«­çÓ³F@N!#rTô†G”Å‹ŠË¢Y–²tléÌ#c‡8å2ÚY6 -¡«áŽe0Má$Œ!õ—æsA¿¬Yñˆ y&î 2NPÍæ³E±„žgqìb2‘‹Í½öÓ­…k§Ž ºìvÊ%ð ÛÍá¡×R÷ 1ЛïáÿË÷Ðt\žs¹YÌ'jÄÔÛQ&ácÇÁãÏÃõnSSãâ%‹aXLžüÄÁC_E²C¥¥«`ˆ««[W^6rrÒBF·›kIã–0ä ¬þÜê,zÎqI&çÄ– Nua&âÜ͹ ’]qŸìóI„¦(Â\ö«=Yã•+Ê)®æÞœ Õ.Ý5"n\i§U5Q‹K4ålKsöùoÔËt¸»ÛÐR„ÉéxÜ£ôi]P˜ e29bÌ¥sƒÊØäÿÆÐŸ=g6 QUoذ†ÅëËGVŽ2úïõ-HÆb´ËÐÿÐIxZwÞìxŠaYI?Äpjj)p]Ƽ Fwè6 YŽ1üeËÍYÑL°…‘Ô)†žd6 Âm¯šPß?½Èd5:1Ÿ]<ÿ«­ è›4VEÄÊF+îí^å.ÆeÆ=Œ»P0Õáø¯i%ÆGo‰Á=G=ô•¢œ9ÏÛó^5—¿e®X.|: =®ÅÌDÌç„ ll›ª›Qo¼áx7Î1&ã{ÚZN^Âg=œ¤ƒ.¤xÀç%žä‚ 7âœRÊ€‚Ð8ž¸ )=i˜O¸‘mVÜ÷f}îPÎ „™¥# `uÀ\8á“ʪêm5ûös§ýNÙëeÕ•5›ß}¥âà €5; —£ßÝZý?±Ÿ];?K¥èà8ÑxiUi}ý‰¡6¼DÓjHãƒlcð%Äe3#Û³C³v®AQ\Yïîéénš¦mFDQ‰† 1‰šu1UÙUºnª"Ѩ±LŒ‰ºF@AGF^ƒÈºîV™u­hR `|€Š+šˆF|u%gƱíîÙÓ´ÛCéNպ뭩®[÷qê~8çöíû;õŸÿÜ<<Œˆ‰}%pĈÀÿ”%´8 ‚$oØV HZüÖ_„`¤(Á¢N„eeÝK‰g1~rpÈÐv3!!Npþ¾V\Ëà k‰IV§ÓêÂÚl~µB,1Î.D¤ PBçg5·Ø0Ä¥CÂàðâý^,¡r–$0ãZsè¥û$/ÄC9S[ûþ{ ÒÒ×FÈýå‘ýïØñÓ'OÏOž¿µäÏ;¶ï$ÉX\Z_PRVf{`Kž—TþM¹2ÝtÙ´rÕÊ´uk9nˆÚuöÌÙœÍyy¹†æ[uçëÁé7lÈ«³ M0 BåÄñï ¹[ ¹ä©««S¬]i½a³ÛÖ§}ëIš7§²¢¦äŠáîåÀþ*0•—gÈÔë¯^½¦08øÁEtÓ¥KÊô§`J²”vàt™ë37feƒ;´‚§ÁPeÅòOԑЮº Š´î˜Û‹ Š¡¥£½cÿ·ÔYª÷«•Á\L©°,~f" =…ÓíßWY˜_ôÖoŸd¨‹ñÀò^œë(”Mû½ý^,@[ùÚ»¯‹——¢P‰{ìèvÑ\ NÿæeI|ˆ‹†½ê`¬f¿v3HË@ö%BÊF€šòýn‡ˆI4ޓЂH²I4ÂÛ|¥^œñì ÕÉZ;úD‘ññV>tÿ7¿gGQ3„ìdéBdÙdÎ\A7RP÷{( @È0­¬,§YÌ›í³z<ð,Y²äû“'¿ÚûÕØ—BàNš¤HE^\ÄwSS×|¶°««ªïÞ¹ƒkð³§~hkk‹‹OLNIV¦75šŽ9ZXXâ;t¨ÚU_ß ß´!##£æ`õ‘ÃÕúÍú—/ }e|óåæˆÈpØËI’0™LY3cgÄr÷ъ劵ÿ÷Å%¨÷XàúÅÔ€ˆ<Û £cB'PC‚øæïÐ_Mþ¶v†ÀŸw¿×ú‹™z„Õzê`ÿ®šq>$ÙÕy·úÜ”ÚS!ëÒed8÷mj\L;ærg§B.§¢E+ñ H–’„ñ> wíÞí6õL .c¾³ņ,æY–·Í¸íÿT_û{g%WYåûÿÙç©§ž:uººÒ):Nh’ÂKDÂK £€¨3z½³|YørѯGgÐñr½^uÅuñ}\Î(èä"/†÷ H !éN:îNuuuõ©SO=µÏ>·L­•Õ7ÖàÕ¹ºÒ¿uV­gÞ«Nø×®gÕÞûÿ`&HICb*u*‰•'˜Å¶d¤¬ U%®YdÃWu¶P±Œ¬©%Jê±jÅÙÝÏ^ÿÙ¿dĦ vî æg«;bÛ9Ê”ù”¾…Çþì6ž³°HL¹B!ÔÚãõ×÷­ÿae§--_9~Þ{ßû™ÂÎ[³‹ßÑ|YÝŸvNóã™.í3Ï4?ñé45_ø\’4½îúE“öÈw½ƒ¯¾"ÿãþô†o\Œ <öHvbbâó× =óèò_oÌžwJó{ÿåf‹³1†Å’PðŽ+ðjhos?öñß¿¯÷,íö¾7¾qÍu×ýãUW_õïê¾FD–BjÅPF¤sƒâDé$®¦Ú¥ªl–~Í”X—j&r:Œ-³u,ôþ"«Qñ[éÞ½.êT¬0“X@ ½ùýÚW¢MY™‚o¸T-\vêÈÂS»O?roºgÝ+äû÷¾Ï^¼jäû?~ê'wW_·¸ðá· />˽iUðØ3]mÝXt êÍúºK‘ÀÒs,€¡=C£{Ž@@|PÖÀW&£¤e¥i]³†WÉi§½fÉá7}íï|ç¿÷€b-¡¸2R4*€…"bçÈYÑAA¡¨œò„Â.¸¤ÏÆÃI8×K\õ ¾Š- =õK4wï^BE›†®^©’“UäÛÞùýA±GŠ\ëTœ.é×,Z:zÔúì>çýì{ÀšCåû·¼nêš›üÍ›Îzà.ôÏ}vãΉ×,PÉtöñ«ÏDe_µìððÁ·š½ã#÷Þ9:>´h±´˜|%MÀ Cå ^%¾ß;³¬:÷ìöõÿaTE{¬‚ vŽ\ÁÄ¢cÓU4ùÀ6„3€xºÉŠÐ¢þV ͈Z±Öè“j¯W£$›®ºL1 àâJÂÆ3ÆÁU"¤x~ý&µÐ=ÆóªZ•fl“Ø ,™ÞE*,¤SÑ¡ö÷í}Îtydó3G€Oÿݲûî9“t‚y¯ç†ùÝ{vnß8PZ‚Ï}! rÛþéÛ›îúɘIF`[D ššG‡ýLÓìXº@‹¨Œ²#™ %¤`¡E5_ÃZh#¥œ°ë‘š(²Ü•ÏU| ®eÙ'㹦JF3(}üŸ_j½@µ!ÄÔÕ7Ú€ÉêíRê[ræüUõ}ùG±ÀËÔ­–ö™£œqfðÐ`²ôÎ;ƇO¦çpä‚Åß¼ehp<ºëîòÞçZ†P ²Ì‘Õ¹s»’ýý·ŽÍ¬Èt~xùãfv,]¸‡b›fUE£–Ç‘‹#ˆjO„ ž¸Ä¹©ñ\u¢Â ±ùƶH·¦O[óŽêÀI–™À]ù"„Ø“Q’ C27HÏ{C<ø,%57®Š¬BrÖú*7ÃÚò ý· xiÝjׯ\~ò»>TÇ v>ê_û?Þ8²· Ž;¿5ݘþþ÷Ÿ¼ú#ô¥«–?}תñ¡Þ—¹¤iUW‚B°d¹š7½Ìw*Áy«Ö´kU_ÿÚ×”ufNµ”¾píÿÜ5×T»Ú9ô_úò5wÍŠ þÈ™ÍúH€ ±,ÐÑHªHÂq<årÝ&ßc33£ëÀ èqõšS9Õ±}u@˜ïž3QYZÈ[…ñ–êŸ*7|]É•+F²Æ_µª¢27ýbÝyMäõ‹(«[µ(‚t…:c’^×b’ÀKëV_¼V¾y}ýêwõƒ©o^o^ÚŸsöÑfxhçoFŽŸ®©Äö5ê)qª YˆÊ‰£n7…Cðú³NûÔß~ª]þˆ§…4ž¿HåvN¬•é oyжoV#/¸}ãʃ™. óÂR—1Zذ¤;wü‹ú»KEEÈÓ&*˜ŒÿËÍ¿¹ùúÍ.;æ\ØUˆR00—êaP,s ’+‡Ag&/Û§ðÌoôWb2Š/>¯m°0<³?ç”× €¡çwjwݧèPÌ—’FSe”Ê(õX èíÃ!X÷ø#í ‹)ät&‰Ú=0gžuæÛßþ–¿zSûÄσj7_|ñu_¾î³Ÿý¯ŠÌŸÀžgvÃÃ~@~TöL)Uu_1.Ûj"£ ]ô´iŒCŒöS—/…¥>••¸á(,¹Z¥ôôT6¿påhùça\€Š#o„2º_tTv+Þ°rÓ“÷,î•úøQõ=ã……¢TÔâÇÕ±ý*e”Ki0Ó×c˯ܗ¶c›ºõ÷ÏÃ<j·,lÿŒ³by PÐÎyË¥§_P/W¶—píé”ÌÐ}‚ª·*4Ý}Ò’Òež®¡/ËêÕkfžZ ¿¿ÿÊ+¯<ðñöpàŒcä¬?qõ':‹›ÿçÍøãgVúQYQ:«ãT‡©R, ´\CëÉ$˜Gipìv ¢êØžð5g"g••k–†Ÿùög¿þ¶·ÿ‡ìë.ðï¾'ö˜•0Ç‚c>×òâe+¶Ë‘熶ýów¼¿§Ò½\‰¨‰¯b"´¸}E™âLÝŸrv¼em€ÿ›dL ½0Öê†àæ¯î퟿)hÿÕ¡YK·m=p°î;P±(9CA(ÚP •#!#¯00q80+}§Ãx:6ÍQK´¬ÛºÅLŽî;b~9ÈÕÈe5ÇeÓ²JCÙ*ê.zúñÒi¯*•{¾}{)lT7m~$PAu´î3#´i ¥´'åZ-i GËOÛÅs÷MñTSm(»{w© ÈÖf|G}ðiš¶ïñ†ýDQf8ßpÝ mgã»C÷½÷Þ‹?Bf¥¯|ÒZq"J+JX5ÅÎAžB*H©›ª Å`!_«„X«©&Îe™©r$ÖŠÏY)Eå@´pÅô†ñZNpÌŠ°‘¦©)©D…‘-…ê–åÍ= õeÿN'~ó‡Ó=€Dð+½p×¾mntG4ü¼†¥”› Æ!¸ÿ¾û4©Õ«V¿æÄS6<±¾Ý»vùúÈí)iCCC_ûê×^عóÀú¶ŸÜ†ýT&*_ùÊWXûpûcð¿Ñ~ÜžKº«=Ùio~rÿ\Ÿˆ¬{lÝocnøZÛ¹¶óùé¼ÎŒ Ú¾ÛíÙB3ão»õgí÷o&zè¡F‚ÌŒC2›õçXùäsɯ\"šHe´I“•OÊÅBšAÜb‰…2áQ‹RÌ– û¨:ÄIäR¤j´‹Fè ò(´Tÿèx¡6n+£åíkׄTÇ216`·c¿qå1j‰jLÿáò=ø‹í?YTÝû¼y2*ïzÚMíÓþ‚Cåû%G-ùéOfræ´×~ìqÇmxâÉ—~Oú¹,ÚŠ¼ë×¹â£Ýw€»î¼óøàøÏ½þà?¸ä⋜³üfÿèGÿòî¿z7€ ~ñó;ö3ܧ”úå/ï¾â£WÜwï}3¥?3À¿þëÿZ³æ‚¦ufÆÿ»?¸üòËë\ÀIÛ¼À}÷ÞßœŸE⮘œîô`QNÃ0sÝê0¨ G2í¨« œC#†1ÐÚ5ʯ¿ðÂé=Cƒ/ V(¦ ÌZ"GA¶*(&*ŒDÄSº?߾˜°Âd¤L¾RÆpeZ¥žÏ­ÚÞ9'a?mLüð}UX”DÛ“pQu‡dúLÞA•ñrÔjSí|ÆgØ3¼çÇÿüãsÏ?wæN¦m•³uË–kÿÛµû¥ût­ êu› ÌëÏ<û¹ì²ËÚ³ííAì7®Y à àWœ˜Ëìçä“NÞ´ééum¸æ³»öµªMÆÇ ŠqÇ‹o{ûÛúæ÷ïhí@üÙgŸäƒlάZuî?|îÂ0¸öþµòyÓhØÇ ûÙ9¸óê«?ùùÏ€k:Idf°G8À%—^Üvh:ñ¤“ö¿I™ÇÆÆT*Û°?¾þ ø£—]/oÜ´©ý¡šÿøúÇ [›šòG ´Mñ¿ü•/c–Wö×'Nb'Æhk‚À¶Ø9×Ñ}çH~Á'8'âˆ4;ÞúÄ£KŽì5Ì‘¯†¢«. Jˆ‡X—qÖcê˜Õ5–m9cžÛôW:ñS(°‹!Ä-§-9Ò|Ç÷ΟÓuzo8bžÕa¡Ô(÷Os#¶YS™Ž·Çþ©î¹¸ý´Vu_ñÈ4U¼Qe2~yŸÝ½“R­‚·,œEÝÁWЊ#¦F&®D(pDqI2z÷üw)w(·áã|ôÁ;ïÛº¿ä¢‹×=±þ ‡“O9©6=àÒ·^tÓ7­¾`5€7]tÑ·oùÖ’£î„{ìqßýÎwV¿q5€£9zýúõ3ƒgöJ¨Œ rAû$o~ó…í‘€¿ºì²NÌ-·Üòž÷\63~ÿC/ýÞw¿×¶¯:(þ˜¥‹ÛÿÀ_¾¿½Æ%—\<ºw”|Â,¯`F?ñ`´qiE” ˜ ñTM)E3hµæD„[,9ÕF§ôð­·-š·ôÁ»î¶ _–4•(×Õ Çv|гÊ"Ră£Gö.­×Þuáš…g­*5ÏíÝE™"Asj™Z› ÇmN^Ø­OoD$®VTF¸q3§ä&kJS$2\žÜ›)oGÓRÒj5†šz±ßìŸÜµ8‰­J4! g¥!PJN9žfÕH”-†a_›´°»6 œ¥æ˜³9/G{&«½¿8êÈv¾‡Gçž»êÀnç >䙊í#¨J¥žy½½ï~Ï»ñjxì‘uOlxâo>ö׿ÇÉÏ|ê3—èòŽ'ÔaNÇŒäÒ_wüôz±± È„:+®á\T¥5ù‚ö!‰ÀWâ %©PdŸ¿çA¤zëÆg*©˜ŠôˆrÙ@èª[áLÖ0YUmòH€”©YûáO_ô$uAO¯X'¾¨‚ùßÙ•»uÿ<Ïž³¬7[ßÄû‚Ä&ªÀ-ô†µÈŽ%Þ]{ ïÌ=G¤GóÝéôd}ºOj©ÎûÃÛt&'LGä‘xâÓJØ:5¯‡”¶{vi( L Z†Ùª¤}þÌJÿ ”ŠÒš $Ö5@>é\'ðAhC€ò‰–³J“ŠöïØü<øŽ#YH:L¨â+$1[õt°‰…·Ä8ôû¨1]=ënüÞ—üvœT«F+ªª€L¶·Ò.ž¨OÏÉÎ §÷2§™¼Òy%q-›¡­û’\WÀLh6ØÈ>Éöó—ËwÛòÄtM…>< _ +R$)Ј‘Up NÏë#´GŪhÐbDf{xf;7™9E†€bgáªÜ¨*Eº¨¼à¦khY$ M BÎÕöT8BmL¤ «Tì2bü@œÆ1Å,‘J ”„)UZ Ø­ñxÕU¸nшÐt˜Žƒá¡Õû~½È«NÖi|lÈ·⫱à¨:§{ªSOnzqçd0?ŸËë£7^hŽŽùùr~éš?=R ¼.4¸®2†CÂâ|ˆBÆ(Ÿ(gHiˆ¸Z ¾"•æÌ62ˆG6މˆ¹ŠЊI'´ˆL€&“¯$Q¬Rpï^·ID‡)WÁ\Ç6¶– Úd2%J1`+ì)#(ùâ@ÅR ¶íP'/…ˆòÈ6šlòG£a™»G/ Çvè¹ùŠ£íæ¨È—é\ÅS}¹%ñÖÁ¢ÈôörõÔæ`j›º2Äõ¬îRÌU± d³¦+ä½e‘ šŽæhò %ÖÕ"¤ÂNR <ÛÈ0›õIYe4é‚ÔkÔ^xŠkµö%ûjâ˜H@’RØ99.ž­Â"²Ò«ŒA3‹q¤AäéÐÿíx*dêÏ™jd‘ûYÿü³ëÉYø J©°@&{Z´å²± £}ÛÔ‚‡ëŘ­‰Æ­¨Ä+EpMnŽ",Ö'齥ɑìîôÂV.§&T8ŽH+¶µ 2 Òš[1<+-¡”%x¤ˆIðRƒÔá0g6ëk°6ðD’X÷ô"aSA€[‘T )CHåCÉ»íY,"BKàÈ6Ù(èT€ Ïn||CeûV‰kbcž(#²hÅÄŸþtnk²Ò¢ªž»"znEeÝqåu+jë¹A*­i¿7 U‘ºå©*R D22"bAÂY¥|‡,!±R®Èt C DȴѾvÓ1sf¥/ÂJ­$P…"ŒQa#‚QŠ(!i¹¸Z&Ÿ H&*ÇäÒÚ´ |*fLÑSaV)2ÇpêB¸(yJRçRrbÛ ›#\RFZˆ„lx`­ÔD1DÄÖ(C‰X}Æà==]Q\¿¿xÖæž36”Îxxá[M7|c pÖh§çÉ€”F"\¯¹FU CD¥"’¦u•)­} €ôlsËlÖWŠ[N1µX1”2 !šNbÇ\“œMÊ×vrœ'Ëâª+9}a)_¨‹­€Z:Џ0å†EÅûÏ–„£,0‡‰RYeSvÌ}JOÔæ9í&j «S¸{ùÐ÷_½oÏïþôÊD¥m)‡CÓé3m£Ô9Wï†ëoè¬zÖŸú†çÿ0w¶±rUU^³fÍž=gÎ;;\ªÑ+ÁŠ%E…Z ˆP4µ Á(‚(·~4X5jÂM ~†ˆm T-r+´¥´R¡·-U@/·­–~ ÖZšÛëýêÜsÏìÙ³fûp’“q‚üà‡¹+çÇ›}Öìµ÷äÍäÌÌsÎÊ(Ô>4X¦,ˆf4æ T,[ô¬µ¨ ”Õ˜ö¬0ê¼ÿ)UáÉ[`O€©‰:+#)àLø p]T ‚ªE°†„k Š%}²aÊŠÆÓY`°!Ì{8CQÑôH 'AÕ³2EöŒ1ÃÖŠ¶BbmelB,B ­ cÑ/PÞB@aÀØß³2)Ky„rš«F¤#÷7àMCËî¸äÒKSœû^Ø7øâàÝwß½«wÛŸ¾N˜ªqÜÁš5kœÛ½·XsÝà6>òPS ŽxÜ%oß¶Ýõq™­9ÉTmÝîz¹ŠNïîßµÿVhùè‘ck²vÛÖGÛ¨O7¾níº ˜Jª»è½½÷Õ'â*÷Ý»¾V³ÉœqÂc[¶­Zµjc_ßk|èw|鎽 E[­dï­°ôðéá˜ÙžÖÖÇŒ’´ Y%MëÜ/5K9Å2i…Úg®H†t‡ïÍ(!hF,w{ݯ¤CÎ2 h‰Œ^DÔÁ¤Ä0C–¥bØ4yÍɦñ0³Pš3¢x‚å\¿tô/ÏI¡‰ÔY­±#'™”ø$$`MxjØŽO ù¾" u± ñóš´aÔZ¿¥¬ò‘ÅÉ+Dv'% 1&”¦ðd 5#B88ð™ÏÞ†8RÑÅô~ÿ´“nÙ|ËÍ7ž?炘 ƒðüó/¸öºk—ßpC)z«!‡–hˉÃ]Q=z¤»ÜcÌm³Ÿ÷ªUãÐå6๳£Óu;t÷‚½n•ã.þq<«³mh´{zƒå¬ò § Éi•É&g“Z­{O`é¥KÆÌöËÇŽMkáDn¦­ qÚ2i: 6EH.Ĩb‘²:ÒZKš ê,€æ,œ P0µˆ‡&9@LT‚sXAv*“†’À¹C:GØ€јa:ÃÅœ_±âe ˜Uª£,iAÏ~Ç®ñçö‰IGN­ )D/ËiEù"Çá„L…ÂŒ‚  H ›°j0­'3• ÐUÒïèáÎn.æ ³.ðÞuŽWžiëI%£± ’²ËP¨CQHÀK8ZÛ-æïüéë?úX“ô~‘~ðçëš“â>EC¥ â2­¹' ,qi+?e:Õ+6¡q¥F©•&³¾¬wYQ¢°’ß÷¿üì>÷å¯þÍîxÏ}œ­3Î!‘P"Æ=ï@]Å T4HR­{Ê8èÌž,üIQq€,S“&U¨õŽdL°ªÖ%Æ€£ÐF ã˜'`Û¿È ‡º« ÑWv¤éRm”¿g~þ‰ áóÍÓhD„Áad¤cy Zç•asñ‘p©u÷ã/â¬ÔÀ•"e:˜Z ’ 2’ÁNèU„´0к Ø¥Yà4´©ÛCÙõüF“ Í·Ö'쓵_|äxªÿÙïþë?Û*Ån$ ¡”"wH+&X –Rj¦84ŸûG˜ã‘É50Mš ƒq¤æ%ŽĪÇl‡lÊÔ\¬øPõ;ÕiØãöÓ¹RfÌ(ªç:“d¹Úèñß^ÕàqH6»¹µ¹²¶Bqüæ›7Ý3Kë«Oüé<ôÓ¿t2¹DÀ l†‡Ý¤)ÔÎãBëT»ˆÐ#ôuR嚨ÆaBܯ02!B LiÑ0 5œ»ûHÓR‡®.=uîÒÐu@Ê5wBʉr CÃPj@æ»Î¡y`‚›ºâV(ÏÐD†Œ ‹y‚UfóŠ7 %—U|Îp†Ω,ú¥1ØãöÓO1”un…EÌ CɨRÉW¯®Ö§™çRªº•—Þzû‡ç_ûö“_uwÖNů&)‹¾vþj0r”l 6"ƒ ޵¡Ã@ÖL€¦²£R'¡%®µPj¤Y£D:Fˆ W1‡@EvÍ]}þVÒ^6Óýõ+Wv …]RCZH±`DÊ?8©*µØöô0í3f‚A%æ–x (%-5˜æ}dL¦…à6³½ípôüöaßþ}ý™(̺½HS`Z€£ÇÏn' I -û¥s§ÝïêHÝ/²!ƒÙ÷¾òríD«-•Ï¡®mU‘B{àmƒ ¬¥LÚº©ÁQ ™’†Ò5×u-¦9ªD-û³Q´^ôåò›çCšäÕ¨xâÎç׆Xs@!dŠ%·» IœIFg VÄ9¢ðÀ`` ‚Ju¼;hjƉ "J)'-%s”]3³rM·ΰ`ö¸ýô{CjõKÍ’¿³–f„ä$2Žv¶°¤\͈†ƒ%gçêë yû’w÷TÆæ½æ\ ºÞe¬ )¨AX' ™Ÿ²¹ÔóKµ©!w°)”;^½‹†!žƒ$‚2SZË¡}Í©7qêæ¥ØG^QyxõÒ u=Lµ¾u¹½- »Ú1G %̸îFñòNLÕß÷`ó½‰f³(L¿Ì‘qÊ ŒäTdh„i‰@Èw¹B ­5 §6Ú˜3ÃRiö¸ýôƒ`»ÌÌõn²ÛÝ-y½›6UðüÁŸ—>t†$$£!×XwE½†>/5|³12rÀ1}U€ÊyŒ .3â†PZ3æÖƒ8ú›g¿_?û‹ßøú÷ã'Í£Ä#ɼ]—K/œ_|¢ç"²kÉæº82Ù85~M*rÕ*žo˜ M¤Â0© “ Dd:7Ð*ÈКH+@á‚Éw˜cƒWuMþýAu@”œ@§—¯ïÄNɺëÄ´´ågãéöMxº>ù¾Úâä˜b®sž4ă„…AÜtÚI€¼:  “'… Ê$¨M)—9ýÚî¸5Æ2ò€ZñP±>‹ ­mqäŽc×¶:ߊØ?ú«[­v늮OÝF£iëJs4=_¾ãܶýKX”¹öï:ƒ‡g¡1ÅXärµ‘påTæeH ",ˆŠ‚1CĈFK®”f¤€Ù)ìiû[ßöª6fC] tº¼Ñnõz³º[²rÕçÍS&’\|ôµé¯Œ<èú$óCv‘ ºÌ‚LNAs¸¤Haœèâ.Oc>ìv–.¡0hàå|Ò^9cþ!wm£õï+§^uïÙùþÓâÜùúUsíû•ËWk-xo’ÎÓÍöFØ›8ì6ëËn—NÀæär‡W9`?1ÔC*2,20 „\ë‚"h­ÛÁ6çµ"(4ìqûéOTø…õT§iÔ‹ ýÀm‡š /2a'#rçXó¼Þ±`ßÿ¯b͵‘§  €šÇ¢ƒ“j[Í@¤´fe“p‰H)Ê"n (ÚW¨¿G}ìi ŒÓD¤3‚Dƒ€v7ÜYßî”fÜÎ’¿tc˜wµlHNNît[A\žoÝ\©=ʪͯ¼ðzviS˜$2ÅL  Ápô#(,@€“a¡QpN:‘‰a¢ ¼,а(7LØãöÓ÷¿m¬úâÒ Ó¶OúöÔ¨# €ò)•ñ`ÀsR¼köÐåŸú½K£Óœ`ËBoÚ#^»n„bH¼ (\—qµX+`L¨M½Üj75°£<&+ŒMÝ  ©«Šö'Ù‘A7qbòÁuEbQ*âêRî?8x\¯vz­å ¬Ö`‘‚R©a˜ÙÌ)caÛ”¤ @0ÍsÁ@`%œÔšQ $ ׃=n?ýDë³ÓÍSG¦NOŽOŽø(áz¡ª³“È •)áóg¢G>I5!o£LL8¹sŽEZô !‘RæŒ1äÂUN T‡­.qå‡ 4#›s[µKZäq‚Ò$–Äft«»ÏÙÒ„õ\³!×…V\­OOiÁͯ¼ü?ÿ½‡ÎÎO$1pÓƒ¸ÃÊ ÒG’ÀP a ÐÀ¾ R0 5T£N¡sFC©‰ôVH¤aÛO_lg êŽy´á¼ÄãŒ))×€¬mBL:±Ààˆjóï]nÎÄZêQ.3T=p…¦Š2íTU2)bÈu|H«LJ!\”:au)°àA®VEMÖårmüîFº=-•$丱š5pƸ™3„6­™‚ÇýÞëßùþ¹s3öÁÇz @Y$C¥3E ˜ .Ç(ÎYE¡tÎÀ° Ëi˜JBÎí’Ñg%¦©7ºP(ºÀ^·ÿ„‡´Í¹ÌI› L¹&‚‰’*M¤ÐcB“ ‡÷ËiV¼û§ß÷ÊÒŤL¢/ë …%–L::Õn¤µAŽPš¨y9j•Lˆ\wòXÚÔ) ]PÃ@Fl~õœäà‡z½6»6®• –sp„èw®2 ‚ëZ­:ïÎŽóÌúJã=?—¤Ì] 1âL3Ê  œ€4Oí„ÔÃ)¡IwëõÌQAÙ*MºBg “X4ëH‚ÀbàrØã‹ëSŽn‰‘]a²Ýi “KÝ$‘o_ëì~áÇë?8ï™°p tº¶1s´Zž÷kš‚Ç¡ªqÁûº6t\³æ%‚!WiH š •pÝÒ‘C3c~¼­½mðCVË…È=gúN*·Â ¥õšÅDO ^·Äì…—æþæOÒÅïž+Ÿ~ëÖ¶ÃM%!L˜©AmB®ÀDHe+¦å>Ä•F”JCçÙõ~úFd¾a{¹hž7›‰L˜ ²=¡, L`ÛO?+pƒÖŒ!º¹fC½æ )Y¼8…üÕ¼óãÜÕ(»½™k»š¥£ sa =“ëÈ ¹0¬ÕÜ9>2ÉýYn‰õ".£PÕYP™ÄBsÓ'Ît-Ť ‹õšuù`Í÷X¾êžŠMtóƬUû.öQoh¥ ,⓸TÄýîV[ÅŽÔå•a/NxRÒqÜé%+)K ð)ÀrÀmìp 9ÍëÕvB/ÛS¦ŽˆPT,ƒ%ØãöÓ/L "E’ d73Œ”îÄ qßãxßmnn›îjHÖÎ…äéÿóâÿõ'ÙÎZ½ê…R’IÀ ÇèfIÍP¡Š“*8.çiå1ØIh2_s]/”ˆ¡®ʘ._z¡žujÃõ¤ª“f£á1ˆ¢ NÂöJMzÄ9,ê‡D¼¹,Q¢8wóÚÓ+]­Qªâ^$‰gã|Ñ®1íÊ.ÚÖqâøµC†æLO¶/‹›Ûáàr^×[aÌ(Šœ`Û?ë£ PÂö ®•¤XfôÉTzv\LynÂR™Šzípëç¿>áNMýÀË|éĪ̼$‰rŒµr Š-‡Y¤¶[¡«¢a`»`É6´µ°8Ï"Ì!4@*hÜêÌ;T{kíåæÖ Ú¬À¹‘?ºý%fˆ–ÕRéd4ér³³¹âÎ;ãjñÛþìð¹ëºv`âûß>rBxï¿­#$¡&b`)ò2ŠH/Ú+2³15 x†Xo`‘(Ý™èAk` [°kòÊÕ.=,ŠÁ{k;ky h5a²KÀPp€šë‹z9Ÿþ^[ä´ÕŠß©•Å{šñgLtÆXÎ%vˆ³F$ÀA›À`OÛO߯Ì4—¡´é¸Ìl¦5ßê+õã<æk·¢)¶©_ôí—yûí˜!j›¹‰æZ0CJK&¤]““ ‹LDO|}¨ýR oéL×lN !eÀÄ(%êv”Héà;B1ÇäÝ^àsÉ]Ƒ¡®!מwé•o/yÛΡ´Ò\0þJ‡²ãh–HŽÀQ:Mš1g©'Ïp%Ó'ÝfWƒ‰PuX¿[þÈ:üþ¸Zxº<”˜›.€eûöÏú»Ê#Ž©$î¬V 0BP9qÊ©„ÞÖIq¦M§ìHHu¹Ê´ÁÁË´ÄÚÔðR Êɘ‚nNZC´…À!܉bõ¼žp2”¤©ÐÑP1@ƸÖä“Xw"Êph”}!'¶—PˆÇ¯<ë®sL—øD‰NdnÕ˜;à—œæºî²õȘ#´þë¹U <… ‘ÛLkaÛO™( ‘ z ™$2ÕÖšE™—2ð¯u¶è heI7U>xL!K´Öà¢ßp=dŒµn+p ª¸Ò]¬Oò”Ô"C¯@Zp¦%Itª5Rìp@+ð8¡.È•ª„@:¡†V/»ó³këÍÁ‹'¢ïƒÆr">»wç„Tg‡¦^~>_h«òWÇ?±&NÊ‚)À¸È I)ÃT¦­ ¡rÊ Øt¼÷ÆÜöwà쑃ÿÓ«éÈF”Ð䉆}ûéï&‹ÌW+Ð,Ag8ЊD!‹]õ§?²zÿ?aÓ§‡Ð&`à#Gƒ3KHFkR±œñ¤R*Ãf*ê,; 5MŒs]%Jäˆ1Ï/‹¤/¡à¯N<Òõ k,kÈA³› qA&’1MñŽÙîT'Ãþ°k5øÁ#-ûزu2.ø‹ÖY¥x«á`@„ÂA›€ÃX‚Xeb‹M6MÌ»\ÁãW'®FõD …Žâö¸ýô‰#'йYá8L±œ# û2é Cr–·Õ`fêŽVu†çбq d šNœ$sÂåÚW20Žœo(‘ŒQ œS=_ôßv40mÈv;=š ùÃW/úi§=Ú Ý4ˆZ¥ÉÁ#Á-ÖÐ ’ƒ<´ÜnøÝKuf~é©ï’$Nô0ÊW’X'³:B¤[©ª‰ÒP°€ÍB«bÂ(ƒñC¢ÝÓŸßœüOç/,¾ô,m¯ï·Ÿ>+Û?™€J©r£×² (4Y–YÜBñÑŸ»áÞ¹0ÓÊc-¡HÔg²fH dz:I ”Ý&­1VDŠs5ˆk ËûJÙÐUÔ(؃›‹SŽÓ­Aæ( q— ×e,Î%/ õ¥EaOŸ¾ùõ‰ÖúLë|·½ÊäC«Ÿ*ã˜køZñ–1 -Í{ ßÚ¡(gœ‰Z• ^Â\êõÚcÓ$ÐâÅ¢ñÄ›—p‹`¯ÛOŸ¡[3Hä¼ÄgS^ 9“ú)t²üZŽOŽ}8|ÿGy)WÇ ®<ŽÝÒ ˜12’€)[I‚CÊš‰Nb…I¾!¼µ À˜TPßän:U#æ¨ ¦M¥ˆ`—É…bN'Á\v€Üml´:^ÌŽžøPÔÙx¸÷]¿³øòë/ô› |ˆÓ$–A¤e¥D&GÃFC«ÈTcÍ Å¼2w,8îq0Á‰Í‘“é>ò•‹¯À¾ý³¾ÌÈ-óHƒÇc¸;ƒ$jŒ8vÙMžÅšŸÉØÉéùÃ}ùÎ_{òÐÇ@¦4pR°; !£B\  @[¨LÐ% @¹Œ¡å7M+¥L2­5«ñD˜ÓcuÒ ± JƼÐn渟õ™Àsl DØï6VŸŸ‹Î‹põO_´#þÁë¿“0t«®Î+——O­~õýþЉÅ/–¦)tû˜Å¬•@'¦­^Û’¡„4OÆw.ºìkc¿{ÜþE5Tူ šàR’U˜ëÝA¹f¢*,Ñèçܼ/ã;îY[ÃW€ fŒ[Z£Ës¤B€“ËÄYa<Ôº :e@ˆE,FX7ÒMÃóú\Hl\˵+ã0'Ð °îIR¨ƒ›Q,ü&w¸Je  »À Æ@·ã˜Ìj<÷ÅdÓ{òŸrQÖïiVP‰ú7¿þâ{·£/ª{v¾w½&¸I(0‹™-âJ¨œÍ5›M¯'a\0ØãöÓG‹±LyŒì"á†õvØ?X^µÞ¬€à˜ ®ÞjAxeòà‚PùJç&:lb鵆dK(ŠçÀ-¤¨P1°¤ˆÀä~ פKD9 ‘Kµ4æ¢d…ܶfB„­I*EÜ5(R*FåFé¦QÂ@&hÐŒty}Ãb¢ºGæf¯~ züsçç+÷ün‡:mµ—w–NN:?;«/ f}Á¸±åMÖNDZwk¦‚±ZÁ˜×Hõ~û¯¥gj§E*"‰4ºcD ã5n2T9ô“"Y|îéÕð©gž³K6M ïŽoÔrˆ›„@®v]Qî°If 2Ñ5Ø $¨LË"ab‹’TBs#ESy]ÉËA×XBQdË™Ë<@ø1ÙM2 ÀpCF–ŒQȲ˜Të AfzJwÂ^ô‡'~sš®,ºôBQkœ?ßZŸÄÉ1ô+#¢æÌÖYãpãѱ¯c¥É¦Ï–n¼Ðé†ìqûé3Ž·öOnŸòÇÇü†7é{ýì§fpsc§»òO‚ðf´úØÜZž;¿ÌGý•¾¬%0ƒ2¸#A+d $H—EÌëkQbjBÄŽµvs†šÇ*Š"Aõ-æ ”•œb €Ã?/¹ tAÚ ˆøó5îŽÐŒ¡ÖŽ 4âC'[þlòƒç×7£‹•…ìù“7žQúÛ5p§mÿGö»—¿ô?¾üñ—5v5\Óº«éÈò—Fz—~áâçÆ»—Nœ8»µA¾ýôžP‹ b*S\§%­1Ë¡ µ–¹§ÚÏÉv¼´z K TB/S»}øLÌ ð'™jå‚Ö¥$äª^€KH\'¹ì2ªù<ιÔ˜ÖY¬ #žÈl•ÕÅÐà>re»¨¨ ’…¢BùñÔÊã¹Ê•}ðºqíÒÔs_Å·»hÓœ,ç3ŸyqîúÓ3u—ö>Ö}jÕšüÈ;¾ \V*g°ÉàëÓ™Þ¾)ªµ^¾äMÄÒ‘aΈY9ýd¦ r&½¼ðp —ž>­/ÆR®P+õFm¸Ü:‰°Æ43€ %J¬S®ù ’œ˜©Ow\’b›˜ÔõrƒÐ‚^Ì™.(^3É5A#I!J-ÉåuÁ=N„:›{Z–0¨° 0×úþËõ´Ýˆ€Hɼ÷ò^8x÷©þâøà¬Ç:RôÞ¥/]¬,ø¶ž¸ùò‡^ùí¹lågÏÀ^·¿õ‘á€<[p”t؉Ôú†ñÊu¹i@6i( `èÎ\{æ/>ÁuüÌ䣓:8„B²¨ÄeœLpª"v ï§u³é'«XL$lê˜\õ©ÆÄŒfÏxgÇE NöEæqƒTÁ@%qN‰HH#/„Kš—k1© Ʊ‚:kâý!}ç9®Ú¿¼q®¡ê)Ä=ðÕÝÿs«_‰ÁO|¬õUãî¹èŸßþYî8§ú‹¯T\ÎaÛO?‰ä[A|q#º¸–†!´c³/µm{àú®#^nǼäÜXËö(ƒ·W½µüËËÏ%}ð$Ij@°¦¯mkam\S•TÞ`Ýë´Q ”c™ºàb&µs¨Ý\}pñëóªQ¿ÎH^AmЏ×"ŒPhI^á64µR™d…¦ªä¦f…f[I,.\êTðô/¯}mmK6¹ UL øìçï}üꗨ້ïÜ#Wþ°þa¨m\€ÝõØc? ûö¯¯!˜…Æmøvd ¥‘-­«KëéÈrY÷†²ò“®dk ]éNöQElV³UˆRexALA- Q-¦x2> 4óD„ʯŸìŸ+°~@M—]¾-Â¥r `•¥¤Æ¦–À\Ÿ€ñ‚ îrÀd‘%c!¢¦>HEóo<9Ÿ^õ.¼œJ ݨ5_kS –š§>=ÿéÝÄwg·þHÑîÏ¿>‰1?õf¤n÷8ìqûÏõc­úCY¶XÍvJ‚3“®l'ÍråJO Ûœï\n}4ýn|#¤È%dñPßUã+½¤IL2ɺ•‰@ÉDÃD¤9“W<5i³šfPb(¾CQUG½haÈV=:7ù¼ùµš)Š„ÙL)„Lò‚Ành ÁOÄÈx¡¹dªªJoÀ@4µÎc¾qMq¦<È gmeå4±0ñ¹‰Ç`ÅXp6ôJeaIì®ÿk R\\½ô1E?@Øãö_U±ÝÂb†ÀŽäRò8gÊ®k‹…ÑZÕ-;%KŒùjG(Œ PÓxeÇÏ€)t¢bËáÌÑÂûçeP¤DÇ9jw¢`Þ`}rˆI_††£M º6—DÜÐ*“Ê"7“œ+ ޏ;€w€{(0cË9œ7O¡Q¢ÂXÞ ºIMè™ÆîVÎÄ.¨n·¸%Øø(ü³¯ýóýÙ'ƒç–§®ø­¿üÅç> ûöÕm/?ôÃßô_þüP­¬Å·cvî`3=L˜ç6ÒõÄ‚åN—km‚T DÃ`&b ƒEà`_4s®r&€B)Â&6.‘ ºÆ\_8œÕò°Ù]ík2ø$”d3&CÅPkẩ‘©A°;wwGeReAÖ}ɨŽÀ±µ(î —ˆúö’ê‘Ö*¾¶Ò)kwX"Õ0y¯8ד0”Ì/Op=é—š°Çí§_ï\üð¹ýøW>÷ØÍ?Ü)‚ ùÚãÿþ¾ë/=¾üuÙËcIÍÑ©ÚÖ•)ÕN2ˆ-M£¢Ä!QH Y2¬6b¥\PÊÀ¸ˆKJ’éu%—àkØ5sÄ¿óŽ;~"µz™1¹b–©fèÆ…VœE¦f&d¨ Üø‰6¼ ÝFš+i‚˘—C7’Üe‘©@Š3æ¡–ab7¯Þ\lß?÷„óH<Õds“+q'®)D€byNog°Çí§?Cãgð=ÿìø/?üƒÇ“_ýEëgÿ•ÿð'?øÂ¿Â[ßêuåì™SkQ/¹v‰ %úÚWŒ´hƒäNb©¸¬$‡eCâX  H*pqü‘©Š{zhVzÃ3É«”˜‚˜@sÑAÐWÌ„Œ˜ŽŽmf’ pSuP¡€iL H‘ :&7gŽ PÖÊà’Fø“µj‡ÅªÛòMöí•ß»õ»O¿úQhYÓMå5Ès-ŠD&r8Ô°Çí§?u4y×±õоéh¥5ŠËVxjê͇åïLž½±v>I‡úô£³Ñ,ó LA8d¢Ð„ œ„L¨gudʤv¡Ú.DeXŸ<ÙnœtªP´aÕ?Ù±'›5‡s^óÙ³åûðÖ|Ƙƒk0U`T&ÅAZ2r@Š´cÅ!tAž¡”XÏaw„É´¦z0`INcayvaª! ™ÀJÞ}1iþÖm¿3ñúSµ­+Íú”j'aíR`WöºýQl‡HoÙTñÜ=™¯‹žæòßýàéÆW/¼ù£`æ}OL>~Ò~þžëX!Ûy⥬‹à`»bG3Ñ1 ‹£'Om^ÂÑ£² ñøáîD¥Þºä§•™³§j‘GBè±WNýÝۯξyM‚ž$$)à‰2@ª©º`2=p ”$©c Å¦Ò9ô€pÀܨ1. N^Z­XY?01·Ã#Ì¿©bøìí¿r÷Í'/ù Já1ŒÉA2Y"{ÜþÖ«ãó_ì<õé/|âÕg>µø_ÿ7†gÉ¢,¹ðË•>ù@ëWžù¿ß5¸peꑯÎ=²2ÞÐYÖG¡6Z?rîȃ*g"p+Ž=zêàØq˜woÞjnóW?ë‹qÒE)ÿWçÕòøHϭŶ‰"¬;q¹6 ¡ª+–¤$µ¦B)*”CÌWœe( ÒHà3)´?&Èw¨…bó}qá ±©Äq{[s ÙzÇÃë·N²È)¡–XŸ9å›ö¸ýô­¯L]_9¼•ŸÔÎÑÖöÖó¯þóoØf#˜Ç®) ¯uØý¡tàþÐØ±þ £Œ/àH¡µ†•‡‹ó÷ã›-=¯AýôOMp¦6YûÞöåO˜.6<÷­Õ5­”Iïd,ë^-¢?:ñ+²ÞüGÏίOýáè?ùHï_$} vÉ\%C!‘F!L¥%y> ÍYä3-ðQôãIæÄ­@Á®8¨La kþGUg+ ÏÞö;à7DxÇÙWßQŸ}ò‰À eõýçúûéóLæª\Ð!¡»ƒ÷òG¯ß:vÇÌå¥<1-s¨JE¨i¼råîÿéô7>³æs(©LILA½ɶ'Æîü•;·ÿæfãhý«¿'¾Þ-_'–bH¥&™D«j*Z™yûsO~àSÏL>4_DÝåá·ßñË­ÿÓS0YtâP¡e $*LA&„¦#tœ¸À¦X{ @8ð!;Zä—“$#—t•aW»'êøèç[þìîK*§ú‹{{¹qýå‹§‚_ˆ7±øÂÌZö¸ýô!W*“¼ÐÊânŠ`’7ÄÊæKóïÒ?ÓX×…ƒ ÃvâÚ¶&覫ß` ˆB«p xÏܧJƒ”þÄo¯‚J˜–$jâ[kðc>b8 ?ξø…>ñT¯¦cµdg¤áÞŒVÛ²6d± µp×Ås˲¥ ^+àÍ èF²î‰0‘5.´€¸¯r¦©K:ÈÉÙ¥ÙÙSõES­9.„ð2Î ø±ûK+~ë«¿sæsp æ¼ïü§`¯ÛK U§œ\ x]éÀK$#T„ðц]¡ÐÉ•@b àÅ7Çßwç¢*]™œÇŒ©Ô€$Ô#89v´re»sº~püK®»¤P“Z€"C®âúrX߸x9«î%­qídP4Æ%ü¤{b"ç¬ÐIIÊ ƒ }ª÷†š …Ðð\ÖÓrL@]°˜d¤GÁ“P?è~î=_ühøôg~𙿘xü«Ç>:×¾xïûÂâló?~îOÿ‘‡žû£O¿ù…¹#MØãö·~°* ‚Å„‹CÝšº÷‘;1¡óC²H±…Ö“¥î}îï-ñ3w?Ô^z&(K¦€#Ä  —§ãµzå/n绊 ±Ë˜R9(Ú®eÌ*ÿÂùâð<jîÆÓn¿£ ptgrh5fÒIbÚ  hH‰öƒŒÅLCªùM=‹¸(¥I¨-ZÓô™É¥Ÿùµ0­í>·Ûàƒþ⽯ɾôb<)®üÅà‘W¿Ò*Â"Øãö·þH©^'Qcnunat~fؼ+M®\¸üÄ7‹Hœäì3D žY¾ó­ ß(ú¦q¹öèÔ88ÐmL²#Ãsú¿ œkêÆ4D'k®PòãŒ1Ã݉µ®æˆ“Ñ:d]רiz™ùu12s̳Àãѹ%·)}r@Ô‚ó$'?f2Ó 5ÀÄC`] Z³P[xúDó®ÛêÏÍÇ~ýîÖe¶{ ;ÒÍü•S0sU“ðô@I<ýÿø_`ÛO?• Üúî´{Ê@ Úô5õ`psíÿúÌ?ûkÁ1i8›zü¯¯‰«žiU?¤kUOý¿ìú°?1)w”Ômªú KÅ¢š¼ÎêWd¬5O#Žˆš@pD­4ã ”ís`3¬»À»Íî?!ij’ §Â°á´ŒZà4b—¨ uFìR&0Sk›ÉØA)`9¸ˆÃ.Y wÖúø§îú£‰pùS¿ÿè™ùïÄxþì¿ûÃ_ÿ“OÉ Ü-Õ'ÏÇÜM„©¿ñS½÷û°oÿUn‰8 kWbPÀ\ÎÕ\8YÜÚüäÁ7®<þåKsÎ#áXô±è<Ð6Ò¶LGí¡ó÷ï~ÏäÔ| ¼‡ÞÉe÷äWÚ'¿±®¸Å•SƒŸÐJ»Œi¥c­Á.®p`~óÙ™Åÿú„÷ÈËõ÷ª±ÃÚеI/,d»4Ó±'ýšΈëXJ` %%]öíÚÃqURCΙFP–Ug&[}¨÷µO}ù3þ›ŽÏfQSp“â—ÅjÍcK’ÖÖn—ï=þÆVÐèŽ>Ùyöí§'a¥ÐÄ;K;ç/—·¯À+-Ç©ßs#9ñ£üÛ?ùÅo´údŒýï]·änÿpóο·ùÃ0ºªÕêA­¡Ùÿü{£³£¸»¤£kq¹YŠH+ý·¿¸Œµ¥ŒµÖ­«x¢Ђ{Í¥“‹Ï4–o8·´LÕª71Adù‘™—®Uf&'üv®ƒ:#±\·K3À \/Ip(¢$qŸ}qþ÷þ¬ó½H¥2ÎÂØŠýšÄZÔ|{)Э ÿòÎìãþëbÓÔ勯ö¸ýô¹%*#³ý†oß<}ûõî{þØäÖT±¾³ný6Þ81q `’=¿9»¤:±œûY‚ß`îñ©'ÂüÍxåæÖ†vQÈý÷SMž$ÿ¶xø Žø·¿kAKe߉¹Àí.6©yèï|äî/~öèÙ»§—Wn>ÿá¿Ôax––½ÍÅvjà@bS?;㎈,P%Øå–X·›¬_ï§Ž²¿w;«×ӳ͒;=¼}fðÈ{°1±xfæðô‰7^뽩&6ÚsŽ÷égaÛO_er…o¬˜Òlf3:“‹÷•d½°¬Â|½èwË¿uk'¸êº×e'Ÿ–[ÇE0 •‹Qt”aµ~áaÆ¢33÷°6ˆ Æ™[sP(¢Ý©•Ü¿­_¸¢•Äb£ƒ !Žœº÷ÀÏ>’­ÃJº’èžCïú¹‡qâÔŠ¸§½Ö©Œ§B8Ð?)$L¸‚L äÁhC%rB³VAÚgº§© ƒwÿ;Í ôñSWÖ_žÑ>5wé§Ç^úiã¹»ëÆ ÿßÏ}à__[|nÛ»Ôk÷Ÿ~Tt{ƒëfóÈÈÖ­£Nyf}ãèÅÎÍÔêUˆ[bn'ôò­ùÂë?ß\ý%w½‘¼ôáÏñŽïÓò1:ópþ)¹áu®~°$Li¥¡ä»Œûÿ­|nûŠ9±Öà *Ë–7ª"Özú×ÿñm­ÆÆúzô½g¼ô—#ÿâuüÇgÝ_pìcläSSy}ÁpÜ0üñ¸e‰fÔ³³™¬Ñc^º–fõ”«W¿5XÕ_þök·ÿçÎO©ÃŸ¾0÷œUùê ¿N¯ÓÊ!vë$#`ïÏŸmŽ7³ã³ÅÖ-¨ñpc=($™À¸§œ…Gö¸ýôÍwû7¿D•æTm¾öÎ̓óNßkUÙPð!²CÍzŠóç¿òxñ½‰§Ï½÷·Å‰¯Çö’¡ ¸¡Óou,&·ÖhÕš;~wkíò¡ôʼnΕa;~"Z´£s‡êzŽùÐOßvûéɇýPuîÖù+­’öz,v:PV½v;ÞŽSNcǾÿ]¥éF{³ãÂ)°{ ‰<9uÿÙáâ¯Þü³¹7_v4­×ÕSG>( ªåXã^iÞÙ0büú=§nûäÿ­Z:$‡Ý™CÓPñR´ÜÕ¢°Çí§_®dA¬f³j³â¿}ëåèùö.Ì×ÜêÔäÁ3ð[ïõ¿üÜ'?²S¶Ø>P#óÙ—O}þ»q.ÿòS|y!©[øSÏÊwž÷o{üžyׯòOüaíôÝë´æE¨W~éèÏ]©ŸŠG¾ùµçv|¨ŸÅƒw,œ¼{vÀ3tG§&7ËԽъ{ÑÆkç’Èß—üÅÛm%æ $5Òu´`.:ï–€¸ë¬6ž œ†t¤ó»–ÃëÝ«/l\¼é7ïQN‡´£Fb¾çý+q7é/µŠÖ²¹¤lh|èØ·à b|ûSðÖµ·>2µñ>¡îf³šÕýíß8S¾ ?óäHër«šû SþëëOËã‡V£øñ¿?ô…èñ/ÕÚ3*·Ó«ç<Û8ÞÍŠ÷³·ïœ]8}ä®±÷àõcüÕ™ÆL|ë±·ž9scã}ÃCç/Pf÷ÞqDÌž0w„­u¿zröø‰.Fœ3X|é\ÿ[¯‰?y¹µ8%æ‚pÄ©y–$J/“ÃË"ð”c9'å%† ¶átiþå|÷«÷à函ôôH|çøõS ÜÚÖ›+ŽUžZ8sI Þöcw4?úøÈ¿Pÿµ“°o?ýñ5¾.ò,>Ü«Û0‹¾=þŸâ²Š[Ð-ßãþèÝëÉçf~ìÑŒO{#Í’U:þÐ…`µ’Ëv¿}º9çÌTÍÓÇÜü’X>ýÔ ÿôšò¬ƒúÒûOÿ??yÇûÿþÏߺ51æÇo\_N¿ñ2ûÏÿ­¼1|õßßì´o…Ar¿óö†Ê¡vx’yŽÐX,®n¼¹$d"„éÔ—nÅóñE åœ(¼ºëwÖÛf£¾Ù93¨=ùë³É,Ÿ œÿá™*K†óÏ¿ÆwÞ]¯î¸Ö[—ž4áfºUýÌ\¹¾t~vÏNÝ,·×‚[›”_ùéʉßy¬ô+?³Þ‹€AX«Í¹¯½þí>¶›aÿ»/GƒåÞ—¿QûÝçëï¸köè=øÙ_sqzÉ’Ë¥8k¯Ý¸t‘¹"ðVÀ¾zë„aØÎŽFóÐ w§ÛǹJ¤ÖŒ—DLLÄèjÖÔõ‰LL‹–#³{ùäùzoz»;Ùq¶ùêàÈÁ‰ÿ÷óƒ^`²þÅW+WãI½¸:ó¹µ™Ï-Žž»T3ìÛßú‡³s +K¦N?$O5¸Œÿ ¿ÖìÁWY±q÷1ŸiškK•Q6ÝNE—s=~ŸwKÞrO³éöéó«Ý{{ÛÝÍØ¯z«ž\¹ñ@íÏøº…éÅw_rêï~H«–µÎë¦_Á5ƒÃ#GƒÎõɶ©§ûjꑇWŸüæ­_hÎj¼õ®ºî˜p÷g[GÛ‰ëNaÒ‰£8!F6 NòÙÉ0ÔKÉwÿéìˆãœy²næJ¾ô@^Í*¹þ…(?XïÇ„]ç>;±±J÷&Hï˜ßœƒÎI±ð¹¸ ä-ñÜ'ùàˆéÀ+´¦k#cxÆ]~në¿<7ºeßøgÓê4ðÃï·M×üo«os˜Žú]äq˜+TÂÝ_üûéñz8 õ*ë~ùëEí¨õ.ûýâF%ôìÚ‘/êÙAw©x8™ësÇß¹#i—J]!'Ήڻjëßùù[±ô½2P,'*^‰‹Þ?x®¯Mžtã^;u¢A4ÁœnÒî&zÒoªn4ky~™¿ØY¯¿÷Л“NåÝ÷ÍÿWé\x‸ü!w‚ñB镺4‰Ù1ÆO=)õ¨`l¿rû¡™És—ê¿ùáòƒhC˜ ½qà%']zkêíSÛK¯Vÿàzãh-f*xàŽµ[/AÑD#è $Â^·Ÿ~ÁGo›;$¾ïúÚç¯ÿãÄÒYáëÚk+N³áÚPœß:?àG?ÑêÕiƒ®ëR™õÅ-7®uh¨Œ!ª^Š­h8ê»`¯?iOÞ5LO_ž¿òä×^}ߣq-¿ºÄ®Íô–3´bÉ3e0_®_øüŽ=þ«Jöì;>Óœ~&Zÿ…jK«q@çzrôÉ.ît`—!º9EVš:Ö^”o©Ï·]Ï …r'¸­qðÐQuòaôÞBÆãnp.¿„}‡oƢLj žif ö¸ýôgg“ƒÌ'vn5ʃŸ|ý?|™L(Ä¡î*EnÞ=ü®{Ú3~'=Lö Gùê‰ãÝDWtP åÁ:cÚ_?Ë¢ÈURÉÊhz¶û±ZÁÛ÷—GÇ~*x%ºT?;!Û Ua)û¾w‹³Î~ÿßø|N˜Iífà¿| ¬(\x§?1íN@ù¥p2ì_þ€sï7”Ü\ŽC p˜÷…ñêòƧŸÛ®<4?{h¶·ÁDÐ.ÄN'ùÜ#Ñ7b}þRþísÂCMÁR‰øˆKÛjZº^cd7èvT*9g°Çí§ž•©YY«ó‡ºÙßû™¥o|sCè'Þ5smõ*ß6+ãÇ*ÍZETO¦ƒRѺ,_¾Çk¥–ˆ‹õ$Ü)§iïäö1gs¼Ê†#›Á5e%I½U¨Y{rë¬ù¨ŒÙì¿qˆØj›ëΥ﵂ø¶É™jf! tÜT%è×^ºôêwêgæç½S£¯&î-qy \œˆ xãÞÕœ¸A漜a©V«½wlòÀ5Ö‹çØØ!wæ¯ÙÕo>—­éƒÎE³Y/Åb ÝÇ[*HÀ÷©4Ï•"‚=n?ýJËÑ*çìØ˜ÎÒJã^ÉÇ/üé¿<û±Û~þþqÇqz;Ûq”ae‹QkÄyÏAÚyÇoK¿uu ¿¹ì4Êù/¾c-í³¿ZzV§.ùÔØAëNeu¸|ódZû ‡ŽÎ‰~6Z©­ÍÝ—Ýzåȱ¹Sw-Œßu¿f]þÎ3‡ÊM7U<ðDƒî’ʱsc /.uÖ­otç²Ú…{æá—ÔͨßSΡO?xã‚XϾÄ_‰:ë¤&lÁ̼ƒ¯=U¯"~; “1t¨Gg܉f…÷™×¯KNæŠwy¬a¯Ûßú”P G䕤L›¿ðþ•Ü÷ˆTQ­1Ö¬,”¹eî¨Lƒ©›Qiläxr§·±pf`š©êÊÍ™Òo?5"«¥µXťѹÛMÎÚ‡Ââ©Å™¦š™ý|Y–ô­äüÕoØQ¸<{ßÛƒÕxàØþA£qpá]l¡<úÒôúµèæ*¯×t3Ëñ/]yé½ìÇ‘ ¹z‚G[±è8îS‰ü{÷T³‚¦Çü Ǥ¿ln&Åí+þÕξ¹–|ì„óï[ ÚFè?x´ÿijì++Nî ²ö¸ýôwa¤P¢†¹ÍÊ0°Š%PLo›àkÁ ™TD€œ*ÕNg±œg·ÕÇ!#ÍaÇ=éšÕ Ìƒ¤‡2 &ùêVkÃÁÇæ:m•‡ƒhxñÙ[¢&ÒVÖmY›»ñ’uâ½âÃﬤɸ7¸^÷ÃÅ;‹ÁˆñÊÔø·âkÆæÄ¡Zuàý”9Ñ´zC=j šíAëlõ°þ·ë”û»j¥À5+½áÔmVùçï´ø™5ÍÕ6ŸGuÓñ5ÿæÏÂožþá™´?èÀ^·Ÿ¾AT0D¿\M󤔇†a¸CåzIiÍ¥a—Æ‘iRf¬S¦Ó¸>„ÓaGgÄÑgåíÚÈJ¹ê¡•ã<†æ¬Ýõkƒ­nn@æV§½CiÝí>fØ>¦»'ͼUÉNq»XîlVË›ìjqyûB®Ô"¶Æß}l{>»Ó»wÔÛ¡tˆ”8aı9e‚o´<ÄöäönîÃÞ†(è`-Il8Êrý+%Ð]MÌžYθ,MÞ÷¾w@å@=M`ÛOs& ®ƒÁ0ËË C6Q ‡fSó[*XI mH‚!00Ü Aò”Ý1Ã0 ózžZލ&PuU“±Z26â‡ÝMUÇ­“îÐ09ãg¬Ê9F™Œ7B1lÅF‰mã¸U±^òvû3SÚ{gQ¡%ãtg£aêÔ˜ó·ß,!Ó­ƒv–ô¬¢¿=-c+OÌ$ånÕÙ¾yi^² åÑF2تW´§rfŽÅƒ{R±Ø)Mí›T$pø°—í§¯ISÜqje¦RQ4`53[ö“^ÉïãV¸Œ£YÜ+—ÇÔNÌl@+/rü²0Çt*‹4B«ÂK5ÇcàB¢«ÄDÝu”Ò& w²½ÑËí”Å-H;Ã~6:=93]†¼¥†¡*\UžˆmT? 6¯…ÎÑÛß=J˜IƒÑê’köºvQ*À4 o¿‹uJx@nxü!@ìC (•JŸÏ'Ôútû!ß“ @¬O Ö'ˆõ 2 Óð = @ Œ‚¡(*V­ã†cjJœÞy½NË0I1æ¶ OG‡].çß–J©Õ«5aß·[/+RÒ€¸G\¹¹ËóòóæW[„[jjÖh@?ìîvhµZStwß^_RJÑ@¬má "9MDùlímØúá¶ëKÅÚYÛ;l³Øë# @{ˆß´ù#_Lx‰Š ¢X:"IJõ_Iã¹—Ï;é‘'&Í|Hì¶·>"„ÑP_WkÚfä£Qœ¬ùö»L&Cššš,*zO­Ñë!„E.ß¶­§›Zðlç³d:~üXí‡s äà`„úÆÆ¡ëñ±æ³ÌÅ™@B=†fg}KŽp18 Xš,0àݺm'Ÿ¯ªØ²aãú”ä”wª«…=mÁZjÊßuëæÒ윌ì,>£Õi'½¾ÎÎNZJ_ºx!‘NzèÞh0týÝåœÈÊÂe€¢¨¾»}ii©rGáò©òó›-M[ª¶>¡ZkKË»»«¾9|ýú Ä!£É„‹mYo±ìŽ»©©ÑÊŠÐËï–²ò²Ü•yÞ‰ñžÞ¾Þ¾ëÅó£££¥¥X–…~ÿø„[§×¨W·ZšFFüâЭ¿õܹ»,'»¢j;ï±9¾ÜþÀŽË63ªçã–æ³“^KΞ±ð ¬]£©­ý¤ñX€Bu[Üí½7âÖkKÀ"àúË:@Àíz!\³öµûÎÁÁ~š¦9êŠôøW±œÎ¡Þž;Ô¢…"%ÒB½|™Y>gì± ÿ¨VYYõq;=FEIF¯š¾¨¤@¥þñ»¯¬2”•G'Фé`O_å¦J\–¼ª@3) ƒ×¶“Åñ{kd²DsC}ß`õû5ØW¸òô/¿¾ZXØÜ|¦âíí¼ÇDUÁ"kMøƒc„»÷ìÅqõî=|M%àü@Á  ‘%/-a˜4{sÜ;áU_­Q3L:EQWÚ•™ÊÔ%ÎcaòïÏ.É^:üð>âМ7mKÕŽfË™™ª¥¦+Ÿ¨uŸ:õ3Ã$c­çV¾Üy÷ûq044dµþÙÚzöNOïºuÅ|ö=˜A¡f6؉ïO>—¨HKo%\ŒÀ[oVžüáÄøøø¦²Í|þŠýjãÑz¹\.ð\pa^ðH¥tžj% "ŸÇ¤4Ÿ´µÛ”œ”Ö ÜfYgÈ uõ²mùŠå8–ÉeiééœÎð6i&½|È(zqfƘË5]µköö/??Ô`>¼,'·îë¯öt×þÓ?°cû.…"5d¨(åƒ8 ž…aƒáhã‰D26:bªýÔá¸~ÁzéÚ5{*“‚ ¾*/Ûü­ùÞü)Ÿ8ïÅܽ¾ÝnW«52í1——Öðã}?-¥OÑ 4âÎS!¤i:ÂŹsmÃ|ìv¹Y¶[]I¾Žá„.˜ °|l§ÃPn·åå\@PQ¾-3ÇÒ#éä‚xÏhŒüW'…A¼€¯n¦á!œ>TáóûÂyDðý,ä+ÔéðGhýóÉ祦ÔÿpÜÔjuÑ=Šq ±Ð¾^ãž–A±f}q˜Å‰€à<”O|ë£è¹II2–uˆ´JJŠA¬¡Rå·µ§¨ /f(Ã1•@y=ãl§8òy=*UÞô¶X­í¢·…üúyi™¼´>æ.DL2â2¥E ëÄú±>Œ¥Ëeš:ˆlxlw‰ÆtnhÄ‚ïQÿ¿O‚³|Wp8ÌIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtwizard-classic2.png0000644000076500000240000002065012536324517023011 0ustar philstaff00000000000000‰PNG  IHDRþÜß‹;!oIDATxÚíqXåÇ=¯wçùøp½<6OŸ^.—³œGs4ÍY¤iŠ4F1¦1‰H !)"!d³Ùl`Ý ®‘ÐuEDDDŠ›‘PŠˆ‘""EŠˆ„ Y)"AŠ4bº&@æÚ?rßÙ^^fX~ó|ŸÙwfÞy÷w>ó›wÞ÷7ï\SX'…ÚH¤¥%?mõ5øñ1“Hó¤ô‘›Ó.¬J\•2°2¹wÅ£Ý+éüÎÃ7i½ÉؼÜа<¾n¹¾vnµÂÔµTGç†tu•6Y$f æH¾i=Ëãë—ëª}{nÒÕ{ÇxEeyEš½ÂÓæVò%Xýè¤\£Áè›ÐÈïÓ™ÝÉzx‘,10;±Ý¹2êÝJ шOG?(û‚_z¿_úÀ*SCÿ;‡›nÔT~}èûèëCî¹=<áh“¯¾QÌⲉÁ{øÎÞ*„Eøjjù&¶F±RÁ7[ÏUß3ïËbøòåËD§£9*<^1ÞÚÙö§Ø—i*¼c‹^•T¯@¿º½+1)s7)GÌ )6¨êwUÿxGô$è›%_CcÐO7¬_¿~ííÜ3þÀ}ïŸz£Œ¶Ú\¢ÏŒEÇXÉ0åLsjEv±‰sÏ“å׋ÌRÓ$z<}ÔõWí_¦«¸Q_íûx÷Ê#M }SóKèß ýÉàø«7ˆëM%µL.éGük¿µrr«o–Ö<»Úouhhèjc[³NcÛâœ|||*ߨ´X·,®ü&]­wl¡W”ÅkWúÕjáYqÔ±Ü8@"̓ ý7Æ÷.Ów-ÓÙ¿©mó>Ð⽿é†} ×ï­½>¦Ú+ºÒ+ªÜkOÙÜjyBû(úÈÁÀ ‰´T$_r„>‰Ð'‘}‰Ð'‘}‰Ð'‘æB¦"‡éeGòËŽè%AÇ©ÇéÇiVGú‹Ž´ó|Gz¾Ãœï°`žç°ä9çÏ;Ì¹Ž §2s9cólY³Dÿš± »¥¯–Bp±8bXTWO×Ê•+[Nµ@`ÑͲ@jøÇk¯½6hC¼å[kÄŒIžg}wKi¥’úd.Ó É\,e0ée)£PÊ,”² —¤,Û˜¬²r ¥œ‚1ýZÊÉ—‚¥Ù£/©býÍß½Ùë:¯àà`¾KNnNÈæ{—Ýïû~ˆ`¶˜yÊ|___ß•«VŠ öôõÀ{4ëÙ¬Ž;VÿÏêëþù:ËSvU`*{­Ìû_¼¯»þºâß‹Y*ùmÉõ7\Må•åD•GèÛ»e/,™{®’å„”yBæ>ó)ãç| úìB÷l'ôÙÇÇ ·J¹NâGçù²làO¤+µúî x{`[{Û5w˜Âº¯ƒHIMÁ›ÕoW{{{«ÑþY0XWÜFôø}(>ù±d\TQQQ7~ëFñj„#îú„ YJ"×In~nß@QåZáDÅNiTaÒÊû¥[î—|B¥[¶K>ÛóŸK·l‘Vo‘Öl‘üî–Ö„H~!Òš»$¿`im°ä,Ü!ùo68ç·K²½G²A뾫ÏÖˆ»ˆ§<žó_õVL2QŸiïhß¼yó辇õŠ]ú>ï úiPæ3™¦£&  œ¥ZPÎó9¸àY­ÌÒÖSЉ¨ò ô#ôçŽ{Ø{Ùê/ô;:;X…Ç’aÁ⦻6yý“תÿ\¥Hm¼®ÿ÷×n¼s#(o··ûùù}ã¾±;[×ü`ÍŠ•+ ‹ ‘T`Pàæ{6‹¨¨¬øæ¿~WWåÉJ¢Ê3Ðß9†þœr{EVŸDúšÐŸkîèÞFè“6úWÂý·îVp?jõý }Ò‚E?Lft¦Üß~÷ÈÑcö¯NÛ‡‡. u~ÜÙsöì¹s—*«†##œôß&'L蓬`ïåWLgÂýáÄ‹¯¾>œü±>þ#ìÛÕݵ+òÓMŽÇ“¿ÄâŸÏ]Ü|§öáM?œSôYÿš«k«ÙâìŽ9ï×y'«O²©ÉÒQl²½l›Ý?òÿR'®+„ÛÏ´‹˜,‘+”:ñ™ÊÍ#r?©+LŸÜ)t‹ýɸ_{·¤MÉ:.ifÜ'½Ø~ºoÿ¡ÿ;¤„##Ø·îÆ;~: K´^NJú«¤‰i fè¯SôYkLÿŸûãâù"úž,™´-¢y>íWi‰¦D4é 7JoЗ#BSK“ñacÃx¡øü—ïˆåé@b ŠM? `-9¹/䢭écwSUS%¦?ʼnYeÉÖ¿WŸøHbDd»B’’“:»;Ç›òX ­í­7ûÜ,_ oŒ7ÆÛŠl„Åœ½¿ŠèkuZ¶X`+himAV^¾l\[ÚZš[š G †DCm]-íA´Ôc©ýýxÙW‘ÎxÖX‰)(6ñÅ’²,g8èíïÓŸâ¿Ä¬²•I$á”ûßæð–­[,xR¢ÿx Ã"6.Vf×V€.³ˆ]lkQqQCSƒ˜2ÛQ<|ñ@‚7Éýwêølkþ‹ùÍï78¾Þú’@gdeðãEwò€S€®½ÜçsA!îÃê#R…˜yÖ3ÈwwYòÈOCcCaQ!? Š2¬ª®ÂeVóNÍž¨=ê™}?jõ'rû¶á¶3ÃÇžxoÃ}Þ;ä¸x¡Ðövªù"'<ô!kÏùÈ>âøê‚v+{®}.ç¢ô7©¢¼fKà ¿*èC(º†ºÑEƒÜ'%ûù”—Â4‚H$,ÚÿhGqÀÉ&mÓ`'è§E_La2ô't8­¦˜þTÿ%d•­4 ˜ë阹 ÛìÇ‹5è\ƒùd» œôhŒ´|µü|KÌÞtÀ‰)³ÅÃsÎúïÔñG·ÆŽ.aü0ahäÛ”aüxY4=¸“”•—©H]bæ™øî.Kž¥† Œ»ª Ź˜¾;èû8ÑW×ï‹+†[O÷¬ž£Õ~²ñÞsðS@dÍÁpwÈ0@·wÚ·ïøÜØwÉñÕHÝ; ¿ ïñ£èÿà*X}q†6 ÷V\ú¸]¶žj…©ÃúʪJÔ’CïE4 cë5-úb ŠMñ†øîžn—žsbúSü—˜ÕÑnæÔØ`æma-´6Ð,‚"šjô³pTt²ÁÏ.ˆÁmAL™í(>®XbôÁ‰Ö]Ÿ·ú(ž¢’¢ºß×ÁMƒ/³ú¬›/;'{cðFž²xDê¢3ÏÄwwYò¨_¡¾Ä|¥X|uŠsEá¸kõUϵçÒûM§í˜iOJ}Ÿ÷ïלB;æ#&¹¢ß{¶7?Oz­b轆?>ûÌ»¿ØÜϸEßo®sÕ‹rõ4-Ưó“NØ9”5Öw}Ú…0«¢nŠn¯ê)Å•˜‚bŠFˆ/ŠOQbúSü—˜U¶ØÜÚ >PUEX>ÁÎGñOY›PÍ`aÔp@In^.ß 4Å”G}W…ÃÇœ‡yÊŠøìè@ÅN~¢ShËÈÌÄ|_\¸ ±cD %¥%YÉ#)TèÅó®(Cq®(œisaïÁ¨º=ghäÒù¯Îß³sDì·º3dX×~ç†a´ß—þV®è¿ùFëÓOÒh ÿy/ê÷œ{Ø{lÝâG›ž¬ÅíŒ {FÕí˜Å¯ÉFýÓÏF¶ïqÙ_{ö³‘óŽóûb>B;&ÚsÜÃÞc÷­„>iÁjµ}uû}À¦Kï5Ê-6_œÙ=¢à~»³1§ãLǽ!ç]r¿…¡ÿ=BŸ´Pµ†Y}W~ Ы•ç±õóÏ/n ¹(ú)<õ„|O¨z³!ø6×Üoeèû^}ô¯°ï!üiïjô]yÇÞ2ËÌÊDã*¾êwÇ®°Äf· J åæéèÃÞËVr¿´NÉM–´`þDÚ¿oØ|L‚N·ËV¿¶¦;+]ÊN¿d80¬àö~îÑ»œ&ôwa—=M¼ÃHìëaÂúî³Ýê^¹±,;/y¹…õ‰ùA49ÎGUu×ÞC~}:b/ º Øšò×ËÁ:ß{¥¦¥âMK´‘£I7f_Œ"·hÄ"ÞSdFÑ݃€1Ɉ¶uWàhf¾@3©Ù*ë´RtŽòî­îÞn”›Ç[ý§Õwrÿ£{FÔþ˜¹/Jƒ_|¹oï™;7޼þúÙ–[¸šþÐúvÍ)k~Ó¡ýí[~<$rèeôÿ{NÑ;>Äþ1ì²§‰w‰}=£ízÎŽau/®ÄûSÔÏŠŽPÈz»ëÑÞ‚&guŸŽ¸¦èDðÅÍAÍ„Ýôˆ ;¬ƒÐˆL¦™ÓÄÜñ²W˽âOÝ=·þðVðŠÄÕýk£¯tæå`m¬¼ù’õй¼{kq<û9Ñgö¾éýá­¿8§ðCþÝ»Cõµ›îbýVðK›ì¹Vä~}Ÿ9E_ìøû;İ˞&Þa$öõ(zs½<èb”Ó970úêŽÞÜ.®Gã >’ç²Og|ͱ±±èÒG¾zw˜aÙ´ÿ¦þRˆ¯È­Ï->=½=“õDZ9ëfb¥¡è_ã½EãG'tZ‰èóî-n2<Ûêß%3 îwî•ë0/¹×' ½ÿAÏý3åö©m›[ôÅŽ±¿C »ìiâFb_¢_Ñ˃©­¯E«¹KôYº#†%¨^ªª[ê>q *6aáaÀKÜ]£Ó ÒØÔXûnm’) ‚µs‹JjMhŒŸ¬?ŽÍaP#ŠŽ‰V÷¯ñùñÞ&{†;­Dôy÷Öâ@öŒ¢žsÈ £é·F´Æ‘ƒ #…/¿ñf¯þгàöI…Í-úbLJ¢¿ƒ‡]ö4ñ#±¯‡  u/÷6cUd¾Æü¤YìRwݘêõ¨ë£Bâ¢CJXƒkR£Õ(µt!¡>(ÑWZ\RÌêë<·p›ìOÅyäîHleû*úרx’¥¦§²J—ØiÅ"3ôy÷¿'Ì¡÷èׯµNôYýÞ`úË{ÿÀ¹s½}½ÍÍ>ñ«æðûzfÇý6†þw|ã&,ªêõ`(v,ê ¢_ «x\%á ðáaOö`.î@«Ì ©G|ÿz:§à”c!¦€cÄ-fõÇê÷ëmÛ`ø/zï âï[Í‚û0†þ*j×'-TÁÞËV’÷kgÍ=ì=¡OZØVØ՟Sî=¡OZØV߉þœs?Šþ¿ú¤…mõçœûQôWú¤kõo—ÍË—dåéy)/WÊÏ•  AÙ’5[²AÏH¶¬1eÊ*bÊÓ“r²‘„>iá¢(åú¤|'ôòÜ ½zN²æŒéYúB¦¬1=-:‰/†ž’Š3Æd‘Uj‘öü¡OZ¨ÊÊvÈÊÓÓŽ¬LGv¦#ÊdqäZyÐŽ<ó˜Òe0¥éqGAªÃšê°A)BŸD"ôI¤©Ñ‡ß%wI¤E ǃ¬>‰Dè“}BŸDè“H„>‰Dè“H„>‰Dè“H„þ‚R×gJ·½¥Ï("-5lúxI£²©½¤ªþ2MKoJ̯&ôg†þ c¸!ô§†ÁÀ ›ÃHµu´-dô1’Zÿ“õ˜».©¤D¶ c„LZšª}'K¦EŽ~vnv}C=Î laœ=\ 1±1ÕoWc¨ ^·yëfí!-†DßÕ¾Z½£)!Œ•ºxݶû¶!¼ækq°‰™Šñ¤FÇ–Á°š8\W{£¬¢ ÃôEþ2cô©ÇÀO†‡ lL5q,…Õ…;)1-=­®¾ƒ`b )“ÉÄÑÇQàòÀ¼ð•Bl²·bSÎó9ådÕIDÀÈ<g³°¸PLÐßßm¡ÛÄÈßbF_ ðÜø"†à²ûÔF!Æ`zò·¥ØçeˆÝÅù• á„0àf”cÈ'І«»³Ù²c£Ö`d²Œ§2ØèKŠÄƒ6!€ùÔ޾ã¢|üGþŸ)i‚Õw΃ŒÀÆŸmD8õñT¾;Û‘{@Nx˜G¦i1£[‹áTœƒ]ÂrôÙ÷ &µ‡O¬ Œ ®¶ç=¦˜ ¼*ƉÛ—üX2†òãèó†_Åpn‡Ìå8~0ùîÔõE¸1%§&cŽ;•}v=ˆÑÔÄ+ds™¦E^×Ç”¨uDî‰Ä8{¨ð`èSíA­ËïéÉ›}âÃòȲv5???EŒ"¶mû6ž¾ˆ>j ¸x —ècLB~½¹Sáa‹¨ð˜’MÃôwÜ¿£"c€r rÆÖ`øKäãB»ƒ>Ì0Áʼn>£kêÝjõo|Ä7iZT›îŒ„ŠÊ7û`7¡Oµëú4ú³rd°œø=J´Ô´ÔH$BŸD"ôI$BŸDZ¤¹Ÿve?›ÏT‘–š*^¯XÒèWœ¬hmk¥–¾%8Áߑп"ô§uß'ÿþ¥ˆ¾èÅàNWîÔÑÄ­sõío޾Ú>Æø¸¯¸¦£³#-- ®8Æ#Ƥ$ÙïòäîûÜog ÿþËäпˆÑoõ¿Ü ‹Ã\ía/Æ7ÁO£…—?¶Ša® `WôŇw>>ÜYt¢éÃý“}ry  Ž¾Â±žûås—ýóΧK½0ržpX‰¯êÆÇÇóhða†72+E–àŸ×ÔÜÄÑg¯¿t÷vã3ºp†Ã÷Óq ÁõMs@ƒpÚÃ7F™+?›¸C¿"5C¢ŸÎÆU'F¦É3¬>N6>"‹séÒÃ^q©ðMò§À?ïÃ7œaÙYÿ³…/þÖ{·Â{yÀù]p/E»iõÕŽõlÎ]öñùe|Âü;XÄç{¬bG|)zHº4Ïêq«ï `¨EŸ}Æ{0#ÿ7ÂN€ølâýŠÔ. _€[+®=ºQxžÕWøOæa‰›’S’;šbaYôŇq-°X2,·œjÙqߎ¡?™{=\öa€G¤¼%ƒE¤Œ÷ÅEd|¾œÁŠJŽ}Ü1Ø[,òå”–2ò×—nÒ—‡~—©QÉ#­¾b>™‡=$nÂK½†#VÉÃ<²è‹õ`Ôž_Êï+âãàˆÆÞNt¿Â£žs—}d©¶®×*?[·mÅÅ€w//¹ï³È¬Š‚K±º¦š'Â>\ŽM£¶†çÜ=Ø«ŒŠÿbÏÜ¡ßej„¾ç¡?W¦óÕƒ* ^º-¯(‡ñ†%®}·Öò”…"ô—Dã¦ô7 Æ5oÔIðÒ ÑCèS—M„¾:2Ø m(ÒRÓRwd ‘}‰Ð'‘}‰üõIä¯O›4Qãæ•«ûl7¡ïÑ“‡¾ð592ÀõeÒ8 ú@8·^û"úM4¡§Œt /K8 5¾ßxîËs:Ô•U•íövŒwoŒoû¨;Ÿq© ÷ mÜßùEõ.íXÚ,’Ýýˆ%àNP[·o/)_H€œ .U[±;óÄyDæÙ¿;†pnGƒ´ÂO^OõïÕ‹%/®÷ÏMŒˆ/·ÿ\6,Ìë~€hjß}&q }Ë“lòû¾Ÿ" we”,s–Úøô‹Îúü\:±‰è—”–°“m~ÒÜÓÛ¥[Òá=ßÖ> :œvÏÂÇ’iq GÀº€Øý±ÑÑјcdil…)FØmhj¨©­A§¿¸´˜ßÏ]óÅ­pè‡ËÖ+¼ü]Žú¯È†éQs¹ãP Æ$cXx˜ì—“ƒ÷ÖþïZ—œ”`¡ùT¤Æ&œA¸Ç¶žuûcWŽøv˜8N(+@ö긻œç£&)\²M)&VÈ8vjëk±ÑP/K^\¿Ð­>^ïXdãâ³ô¹c=]á»?ÞÛ:6Ð>ÊWöÍŒŽR„aäÁû““PdØ—è¬ÏÿÈ ;Ù°ú»#"vEàT!5À¯z¤–h?ù‘D—V?>!~>8^¾ çHÁýX¾«´4åæå²õÌYkŸoM7§ãÔâÅ™uÁËßå¨ÿ̶јùL¦"¹óçÊ^+ÛxçøwP\®­~¢‘á(æSýwpLjœ¨_Hàoˆ‰ã¼H•ø¢bwöw(^¬D©Vž¬„-ç›pC€®ì;±äùzñ×gèËŽõ,ŽÚwŸIh‹Ã/†Y|˜œÞ¾^¾#wÖ=øÝDƼ ÁedfÈgtD¾kÃäÀ8!Ì}6V_áZ þE¶U 0dï´‹µ#îš/nMBFFaÑËßå¨ÿ|2†\,E„ظX»/VF?MF_«ÕNQRçSñwÈÞ˜Á&xn£r2þB‚ðv˜8œ½;»:À{E•ŠÝy4¼„oð°‹½øVSWƒƒº0$ß Ä’×{ úY9Y0ùðSëa¨4ÚwŸIh/"òJŽfñ1x?Ìmtl4Œè¬ÏÿhÚ ‡u'\¥8Ù€¦·¿×l1£2V][ ?{d& ßwqiõÕèãóØ¥ùÃf4ê]‹ès×|q+*Ĩ`GV‹à^þ.Gý³¸Ø‹cb>Zð¤Œu‘ \®Y»æòÄw‘EôÕùSÃ=-5uôN…—u¬6«øB»@L×JR~Ëvê‹Åî¬êÏn׸CŠùA!£®‹›Š],yq=ùëS ÏŒ'|¤Ã£Ó'ÏMBŸ&BŸÐ§‰Ð'}ùë“Hä¾F"ú$¡O"ú$¡O"ú$BŸÐ'úT$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI„>¡O"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸD"ôI$BŸDèú$BŸJ„Dè“H„>‰Dè“H„>‰Dè“H„>‰Dè“H„>‰Dè“H„>‰Dè“H„>‰Dè“H„>‰Dè“H„>‰Dè“H„>‰Dè“H„>‰Dè“H„>‰Ð'ôI„>‰Dè“H„>‰Dè“H„>‰Dè“H„>‰äÑè÷ö÷võt‘H‹@Ž!Y}‰Ð'ú„>‰Ð'‘}‰Ð'y¢º>í²wÚçK}}Œ~åÉÊ²ŠŠyQá+E8sžHr>_…†ó%æÄj³–•WÌ‹ ¬ÖºúºX,î¢cèé˜u}ÚWq²ÂãÐGž{zæ«ÐJ~[Æs»[V6Ÿ§Ïf³-ÀbqýòùÊngwÇ¢ß?_…V\Z2ýù<}*ôD±¸~™|±Î‡ìŸx,úgûæ«ÐŠ”èÏÁéë8Ó5»Ó§Da‹»è—–—uõô¹)V§¸\tSÝŠ>H™Ñ‘¢|â´ÚX­6êÁ˜iËvj•L@¿´lúÓ·zµ_gwï¡98ËÓ§@êb±Ò{HŸwPÙø~ëLÿnêò‹Å]ôKÊËì==n çêþШK08¤¯mh`ëoñõÕÄŒIn¦ÖÞÙå¡èO{hMmmñIIEEb¹u|Ò­=¬C f_l¬V³åÞ-§3G=“o³±8/XmÕõõS¤¬@¿¤lúÓ·ãþÐô'3Ôgíàáxd)&.îV~f‘gäùwçô)П:þOeVVW#Ð|º­äµrÛ+ÅÑûbÂv…g?Ÿ‹Ú¶+"ãÙìªwêq)FìÞƒ˜ÙÙ;ŠìM[,3A¿«ÇMÝúCÿ8–)þ!cì> ºÃ̱5<"s¬p3µö3‹~÷TÇ•õlnLœ¶©¥¯a%§Ù´y3›[Ûsò Öÿ$a]|<“ùLN~uêB+:¡BºrFÊME~g­öÝÆàM›*Þ¨b§ 1‘Å´§O‰þ”Å íÖ”UœL=ff…ÓÚngYÕ ¸Ÿ°("¬Y·>mr³X® úüïY[?ê×ïÙý æ8Án¦ÖÖa_”èxcÄéçåÆìBø®ÈÊ7k"""dô£_[×»ÃQX\4 ôÛ::‰&ÅYú;BÃè«3?Åé›úOgW¿S@]CS^¾Õ’™…55o×1ôǹJG?î NÍÞ´Åâ6ú(;\‹î)n¿–jßiÔÐEîŽ*)-gëWûùᮤÓëÝL­õ#EÿÓ]Ss[iY%/.œ9WâÃ&,†††Çì=àû½Õ§¤¤í‰Š.xÑÆÊ0÷kÁ‹…S$kS _ZææYËz6OqÖǰ>V£KK·D?Ë"#Ïȹ›§O‰þ”ÅÒÞѵ76õ«°°HüEnnAÄî¨ÈÈ个z«óHTx:{ÒÓ3âhãâ´"{ÓËLÐwoŠ›8¹Œ`ŸÉÔÚÖî©èwvÍèH§-:÷'[‘ ý)'«Õ*þ5ís4áô)ÑŸa±Ìá$Ë ÐoÅaÌ…ò¬ÖÅoöXôñ„7W…6S©ÑŸ¯œ4«Ð_ Å2ô;ìó"<íy*úwÍW¡Ù^V¡?§O‰þÂ(–™ ßnŸ5µ´z*úö®ù*4k¡M‰þü>%ú £Xf྆›Å¼¨à¸ÕCÝ×óù*4µûš­°h^”›—§p_[ ÅBNËä´LNË„>‰^U¡â ú$¡O"ú$Ò"DÅQ‡¼@"- ÉÀ}?m5~H¤%%ï-ùÿ…Ñ +Ly.IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtwizard-mac1.png0000644000076500000240000006160612536324517022135 0ustar philstaff00000000000000‰PNG  IHDR3Ü“_ÑêcMIDATx^ìÝ{p\Õ}ðß9çÞÝ»oiW«—µ²l½,_ŠmŒq‰›::¡m $”iIšR†&„¸eÚ’”`^Ɔ!Pv°cãºJkÜ€16Xvìà‡d=‘­çj_÷u½«ë¢9ƒÁ21ç³wÎÜÕÙ½ÿ¬¾ó;çÞ³{‘në³pˆü&Dþã,¿s!I’D0A€ÛÂX£b£ÄÙLrÁËÙL*c[6{•‹r Ÿ˜$Iagƒqü(ò(„Ñx>7–‚ Æe49œLeR±h¬ \ ª*\0’$ !LËt—L&ËJË<^O¾ZÊx,mÛÎé¹T*U\RÌ9Ï90À0ŒÑd’q‰Dœd#@0eY©ÑQfQ8è@è#½”ÒÑÑQ]×CÁ`(ÆÃg˜$@PÊTE)$!ŒBF¸¿¿¿´¤T¨ÂDP>™n,즓ép8Ì(³¹ m;·m@€iê+¯½®±iœCƒ;¶l1s–”4Ë^±äª…W]I1zNÿÙÆMC£ƒ€ˆ vCCãÊë¿|Ž",u¿·?W4·¾DÓ“gŽŸJ6ͯ‡órtÿe³°Á¶¶”oñœÄo¾S¬AÉìÅQ?sÂ4ù‹{ný“¯ÀT’0Æ|šOÏ:¡ÉiBƒ|4=Š;·¤”ÚV¾fªš ™tfã“O~aZhé¯DžÈ‰ûþeÝ?ýݺÇb1·Zî|îÙ„wèwn\­üÇŽ¼²mƒÓU{YŒÙ¶ù¥“ÝÇV¯¾1‹vtœÚµýß "á¥×\ “Þ{§wV}}±FÒl[06ÐÓq:ÍfÖÌÐGÎ ¥­ê™U™äˆnè)×U'²ƒ=§N§gÖÕûÑú~{AI¢¤¨>8ÞÜIKíC;^m×þêwßlüúÂÎiÇûÒåñpgÛ)ŠUU'‡²ÉáXÅÌÑþž\:ÕÝÚ ¦˜$@˜¶i3[×uBƘc®0Îe¦eº!˜ @Üdvµ¶E:” $ûº‘—O7f»~µoÿ¯]úð°§ïíóãæ‰m6Æ~CŸWnõ~½¶þl2ß>°·º^9qôÅ祺‹Òö-]6i2%,¸M `êßwð¸*Ÿþ·½ ®lR­ôÖmÿÅ™“+nîýé>¥z´çð·ï_·ã(»úúhIÅë?ÿ×vÐ’gô»×ÜòâÆ†Y›¶Grv.ýî/v7]óõ_½úôŒóûOœl;ðÖþÜôG¾·òøÑ#ï¼sò[ýÝW¿¤h΋ú~öÚ;ó*CýBƒ‹BR°bꦢ(dŒBu6Û² ð¨e1 ÆðäP å±òâ`uûìÁ Ù!ãL¯ûËÊ&ŠÔòâ"¸(Š™I×Ö@ëÈÈøÛÕJ$¼Ñy3¿×É(¤s``ìà“Œ›³lÎLÓn=øvÓ’ëV¯ºìÄî]¿ni]ÔP¢gFtRtÛí7~~(µæ.™ûVóÞ†úË÷;ªÆf±/gY^Îl8ýÔÃÁ™‹çß²÷ÌC7ùw ×%"¿Ü¦üÍþÐ ö=ýˆ¦s…`ù-7ßܳscíU×]¿(Úòàæ‹õI”SÛ¶U¯ªzTÅ!¸ 4ÿ'Ã4,Ëâ6‡1áŠJU"º°4XU0öÅO÷÷—Ìï¾€haRR)‹ÇçÆÆ€?ùËl¨®iüí³«ƒ•"P‰ù´€V˜µÂáùÞÉH‚ïý¯Wí•å%Œ±Ê9M;7o§fWcUY]u¬bÖåñx¨ÀtÃÌÂ"t´µmhAU};ÔÕ—Á¸ H‹&‚CþÙ—]žlNÚ>‚1ˆl²ÿÙûþ>¾ô¦–#‡ìö}C©èp6×Òu#†8›V—xåç/Ñža[½XŸ‘Älf†¦i>êcŒ¡?Èf²ét:™L:mYyxËî]‘£Ó5gðÈÑŽT°ñ†Û"îȸûäÁPnÏÜ¥•X êl>¤&ߤy0¦£çÔáÎÿ¨ž\X]ÑÜÖßw43¯~u¬ &!™©Á޾!\/Á‚DC}]§†u1sÆ 33Øsz ZZ¥q3êÉAŽ v·dlTS]K„ÕÑÖÆ<þ™U3Œ 9ØGQç†s¤$Nö+¡p_G§  z%EÎÞ3¿_ F|Ü E‹TÄ»Ú[˜xÅ¥E0%äÜ’'@ÆŸ¦2©\6‹ÆB‘P8FÝgºç£©Ñ‘á‘T:•˜–€ úº3}'·ýñÚÒéµ0BJög†-@'žÊxi&Ê„^”ɦºâ¸bFI½Çã›$ ˜:.'}Ùl6‹BÅàÛ²óõÔ2`‚H¼$V6ͽ8évMäñGJÂËcÌæL0 (ª§¶bˆ³üÃ0 ˜„$I¶Ã²9ã&˜¸à¦óܲ¬\*SN’¤\.'„°¸ål~îWƇ¹‚ Õ«ÎišSN’¤ÞžÞÖ¶VààR&NIó­p±I’„á³G’$> !Ÿ)’$“y±F³’$ çJ&F¦œ$Iй’É @p–Ëé>cøxm}¯½¼®ÆïÁ09jêC#¹xI #øÍ$Y3ÝÅwÒhßñûÖþä®û\÷wdzu/]0ÁäxúG·­Y³ýù9‰ø,=}øÈñYsçëÇžÙº÷î5ß yH’;\4™âlÍ”L3ÛÙÙnØæ®MûFaÿ[‡n¸ý»ì~|íæ÷ÛðÕ¾ÿ>Ð=r&÷Õ[—m~rs’Wó */üäÉŽQ¥+‚n|üáÅ_»«uÏVZ|ÅâJë§=ÓG•Ùµå®{þÖïÜ{ëWæ–N+@›÷ìÚ´ùu©üóïÓjßûŸzûŽ,™ýûùí•Áç‡ÄŸ<™¬€ `„F-{_~—.›—ðîxù¯]‘(š™]ÐXÓõÚζ¼ÿÐî|ö‘‡´Y´"~zíÖÞñÕE/¿5ðÀoyw×›ñwñ\íê;š÷¾Æ…G¶¼ØZ|÷7Vf†:**"‹—,„‘“o½ñÚ«®¹gݯ?¹ã±GŸÚt{Ýé_:yÏ+žX¿õO¿µª@EàdÍBØÌ €r!çLà•¼ª¶wW³ ‡p¸0 ¶ ü…•Ë–,šµñ1sycCC$¬$w÷öô *ëêªB*˜@Œšz:«0{p(Y³táôYuç2šß-+æ'9ç™äÈj˜Sí;\uèT?­ÁM_r~C⊗Öï¡‚ÙLÀç†Ä8›4™!•¨ ¨ŒTEQ÷¨˜(6€76½F´¿üüö=³1Wòù þ`ù’gÿy]s(sùŠ®^ßüÜwþÅûI#ŒÄxû÷Åhï²ÆÀõ×\ûÈS÷ [þ¥/¯Œ©bÓO7ÿÙï•B  «ççõL…Î9eD0 i(0äq@]ªËß{{{³Ù,|ª$©°°0Ã$T¬NžLw°+€‹G³š¦y=^Á…ÍlN¹E-gß ÎÎ¥WQ3Ù̼¹óàS%I GÃç1Ït!gÌÁeÔc¬*ªOñ!/ʇPçܦ¶`Âd&q$@DB ~ûÊé|áF’&^â=y¦Kä7ÊïÚ– 1ÂÜY§%„„´A Ÿð .,n *(§Œ2B8 Ê?¸àÎæç·lã§M’8ç³Î«fºø„â|k›¶.tŸßÇ ÿÇÕ©î~£L ¡©R‘¦h9;ç.‹§Œr𝫠ìF äà‚Þj¦$aŒU¢~¬5@“C¸Í-ËÂ{=^D{åÓàÁÄýRc ²¹MœnŒTPU¢r•ûÀ—6·ó)e6gÜO»c]Â};ˆK¿fJçùœÇºÙ ÐGNQeìÆ'F>Š*¨î">Ó4UUõx=c@ @8¸àã5‡ âìhªc j8½Œ3gsƒ ˜`‚ Œ±@F€Üƒ\z5S’0 V>YÍgóI0vg•n2B~Ÿa”ËåïNMñûý>ŸOUTDQ·æ¸-Ä ¨Ð Ƹ)¸!LØ<ß2ÎÆc)H€¸Dj¦$qÁ™`ãû™“ `Å=ÝJ¡65t ¿oZ¦eYî]t]÷:4¯Gõ¨ªŠ04á㜦̔;ŒF€>Å7!¥²ê¦ÔÁ?Œ+âFv'¨â¬ïÔü€ $k&Aä¼~ÓÀ…ÏÖL‚1Â0 QEUlËÎd2ˆ F™BÀ @XÔâœ;]N05MsBŠÇþ0Ÿã§ž ÷œ-Fxb>ݳGn*¢!ÍÖ2ÇØÍê9ã”R@g&М ^ˆðK‡OV39\@@òÙs×ì!UQÝ3=–n CŒ_SqZ7uÎfÚ¦ašª9Ñòx=^Õ‹ &¯„náf‚DÜ|Ô`œY–…ÞÀÄrªy5§W8ØÙk3\pg‡aÀ@w-@|&k¦$¹IÂ0‰ÿåî:à¢8Ú>»×¸;îéAš€$’ê«  h0–Ø¢F¦Y Š"ÁÞ+‰½÷¢Ñ(‚P°R¤H?Úq½ÏÞœw*h4ù½o’o\awvvf˜ÛÿSþϳ{ðî<]HÓð¼$Œ"SIÀ•ãr*• àËĸ '‘Išø €ÓŒ šM¤‘åd©Lª¤+A’ÉﲡƒfGê GHÕÌ2‚îë@ÕÆ`8Bc+ˆkAo#‰˜¦ü+ùï¿ðÞßd*’Zoã$¡À¼O»ÈeuEi+'ü¡Yÿ²ŒnâhÈ ¼üúŠGe\Z¿žž ¼Ò’R'ç®§Ï^û"rÀÅk÷¿9jy •i !Ÿ¼ÙXvö쯣¢†“ÿ ïçko(Pm¬ŒõÿqzI&ó°úÛ§Êå߇w†J”DüÇ12¬Èp¥’¨' Šôi© 6•’ø‡Ø'è´g·Ëåòø<‡ˆ ò-|‚òµ qQ8–r( ùû¿ÃP PÑf@5ÏÖ€nÀ6`Ãól†††,‹Ád€ø€˜ òç Sà‡½.ïÿEœDkÊ¿u-£ŠF¡Ve6´IA*N9µ`šï‚vK}¥P¦z‹Ic@»;Ð[K}mn§S™QS]”vvf†B.|”“…jÅí yÏŠ@:¡ž KØ…ß9Y¨Š`Ãß1'XõwÝ.º)) Í³4U¶Š0¢g8ä¼<’˜¢é5Ö^Þ¡ 1ÚéX0“·Ú@ ì£Jm犮™¨¹ª¤DùÕ„‘t F̳>wÑšËÞ>½ä‚V±X·—D,”Ê•"±ˆ×ÞÄiåB 78M°bR‰/´ðÿ=gæÃo;ò»¸t#ãØ+ß'’`ð‡XS%q ÊÉ*²Fõá8e˜L†ËЀ[È4 Ii@… ᜽¼N­þT©à€8ÔÒÊàvÂ!Ì9¨¨Ôp%Ü·üfØ43 cz4¢g(ÈF­µêô/>ãöi@@ VYÃéñÙgžõ™'v­]q€Ë›·z}Á³'ÆnŸ‰ßP%QNýa¾—½™J%\¾ zq̼ï§/Xû˶]Ç’zwºZ÷Ê>}*¯òE^½tÉ÷ÏžMª-í8¿zö—|–ýØà~‡®ÜÁ9BŸq³`¬†¢Û§ÒëyèI-ž;ÁŽL¿.Û?0ÇÑ‚hV>Ü´s³sn;z„O‹°_ÿË‘@±dÝO8hK•háäq<#[1O¾e÷ž.t,ñð}ï(gUÑ­jŒ]ü ³‘«Çnøq¶ó–¬[¿uaôB¡‹—,ZjáÞÇÓˆ~· ÐÚ5`l ËÚíû(,‘cðÔž/+Tž-gŽ¥ æ¿<¸ñˆ‹E-ɼõ¬ØÚ=(Ò‡›p!8lä´±QÅé‡op<¦0ß|ø×Á¶ÌÃéOirò´‹ Ò÷ùíÝKG> º¸~îs!}õ––LZQêùµGRœÝüfÍ Û·^@&Û¹ þ<»ý.“8ú”×=Ÿ¾4¾äÊ.AÏ áž–^ãº%±íTª©M¿ î‚Œ›—ýÂF~FXB.§²4CFŸènýõœy»¶[í?iî/ËfPmzp«ë–®øñÜC¢®ï¤ù-i;’ËY‹ç/è FÐßLa;³wqØÔ¬æ¦GlXOŒœIÐ(b*HÁ âJ "rÁ¾…}„Â!ÀÂ-Ày ü…‚ðÙA0«8T½üD9ººÈáŠþ¡P*ŽwavÑ‚¦“‡!P1 JX¿(9 ú8âG«¨ì¯~œ£Ê,ƒFv)$mž”Z[8Ù»wWæRÙÆ'&àæÝZËÉqeÖo)˜…‡½Ü&2¬Ÿ¯ƒ‘¢öž¹+“Fþûr#Ó$Í!Ü àòPAÉ™ZxèÎ’TàŠTDêzE+Td8¨Ð!h*¡Dˆ(VHW ¹~ÐàÚhc-pØ9¡CÂBçkñŒêµ‰“êl]\gɃˆ2Ì'ù ƒBA|€í 5@YAKmŸÕÌÙ/ØÚzíN3£Ë‡I l$&ÃÍ (n=n²ð˜5¤'‚Œ]ß‘{ö{º»{nܺÕˆŠg‘ë> ¡7µßJ>!-ãᘹSÛkZG~>œô¯ç/=y.¥GÀç–NvÈ28þ{wÃÍDfå©`ëë‡I&Q¡1™ÆŠæÃ4sh¨oh6ztØ'þÌÔ W’o„7|d$ À#Ͼq3ä«o]»Ðˆ9‘™Ý}½}ý†1f1Ë¿N¼z½ÿ´y>Êq#Õ*£çÏDÒšnd: §.X³èRòõ̶®a†·Ú…F<¶]ŸP¶![\Vü{^ÅÒ…_±-‡†u/­æ-Z³ðRrj{«sP¾ýT&Z÷üÔ;Â܉­OŸ½øÒÙDšÇ ÈP¿'ìzvÙ”oæX²YaÃ#õ)È+Á'DÇ]<}úÞãOç ne•}¿|.½æ&iɸ_üíüY,–¡‹—÷WQýQçæN}æo¾™‘7;f±µ))b %¨‹òf qkWØa½]ª-]ý'™Û>¹°ÍíYÚ¤Zìõ£“)ûî¿[×&Àü>5Vˆ`9¡[ÐNÜv.UDÕic¤ሬ@Ïv‚å ;WZ²)sÀrb¡±‹ÚfÈÔ>ópEÜ•>]zƒËÁ|•J rjm‹\Pè'aJÕ« Aœð–(µ"z†ßø¿žFE°Ô…9jÔ|t1wë±Ð­ÇŸ3áB#ÆþE˜tóÖM³Oe˜MþçúÁÉúacþ)©Ž`ü™oÒé(þjÝš:ûP!%0@ú0ŽD¡æ²•r´l ¨DèÀ´µv&PCÂÕú•D¤΄@(dÎ_E8ÞP6<2ªWˆ†‰iyZ*ªG-Œ1Q£.p9 ™ çPš„çH©Þ1:Q…*`‰°½¾¡•Lc˜››°Î3àËJóõMm>@Kˆø­%eULCsgG«ŽëØÆià %útNÕ×Çä$:‹A%ÿÏ¢ƒ¥Å]»0¨ïl¡qyc#£?ìK.å¾ôééú§gS]þŒjâ`Î6ø×~ÁûGdçákLØ4]©Õ JƒL€ ûÃm¸6„v„ ”g}ÂO¥\½)àq($Ðw@ä ø.ˆ‡òÚø<>¤Îóx<¡H„FÁÒÖZ°TÀ\®åx_ZaÎÐú „®Š _(b°œÖš´A¥.Ù¿sQ¥D½iÌé¬3û!²fÙ‚ß¿$B²R1hZŸ/Q(à<¨äv¾àôž}mB©T­Ï¥j’I&·óù2™$#ívM«&hVõ<ûÇ%›<|²-zfZÀLQX’/4×—îݹ§¤ðþê­ÛlZø°¢Í Å™:s`Á Me¹9å š–ê³h_ØRw7'¯C QwøÚ%ª»I'J›Äo£Q=X]ÁüÚ6™¸5ýn†¦Ð]®) …ŸÖ´Ê„-'NŸï´ *ê Ý<ߊpÂp6tøæ"¨JŸd–5ñÿíïÚÞR§x' B&8Š8†jA4Í:ZèM%o‡=†2…ŠL ˜Aþ*z–”‚Q´0€6¡vn»H B1Iè WPÝij)¯è•Z4ê6Tƒ¤¤Ýó|HćùC¦!l€C8«ÔPµj­58ºêý¶€2-ûé˜/£l´ÊÂô1“çì;šxtSìšø¸ø§Z9›c–Ç­Xv³LdØ’½óP2¿¹tÃîSUùwb¢—mØþó½ûwV-]s!1U VŠ÷lþùËï¾›6}ò„a¾÷Ÿ”ïˆ_4g~üܹs«Oì^»diNµÈÀÚÞÁÒ\YQšSÀµPƒOriïöØØUÇÎÝá6WíÚ÷ËÞ ùÕ£ûVƬzVÕøÛÉý+VÄÖpŽþ¼uÅÂ%‹8Ù)Ç×®]u4agLôÊÔLNÅ ‡ã–/JÉÈþeû6‘\ùðöù¥5ûwm^¹deQEE>åo¿žªo—¤$'Õ´¶_:±/fÁ‚ŒìêÄ_¶Åů­hÂ'Áo®Lؼ&~yôñ3wU;âWlŽßºíø¹V—÷ï\·¦¼Y mz¾î§U û’Em ¶ V¡¢ÈNÿ¼qÆŸ¢câ¸BÞÞ±[6ü”Ÿ•·*vý†=•üÇ)b£ãRR_€(Mºt‚/‘Ÿ>yZ —\Û»5:&þúí§'wlZ»i{WôÏÏh×öGí„Û†ÒNÈ„.:ª€, "«vÞºËQÐRPTƒŠSÁ€EzA+LùºÀVÂÕZoé[À9z#„dÞºøú§âmñðíÏ$3)T"š ÝV:I#‰‘¿ Õˆ—C Oó­ ¿\rh¯×À1ªiá_ýàÆ{xOá·ò›>1+¶^8VjÑ7b\7ñêÃÅO¯ß¡¹}žs_BbîÛ{lèÌUÝ­ê îúEDÍžIÆôD eªu'3¸°´Á>ˆ–~ƒ¿ø§ù ë·<Ϲqü'ÂϪ¦Q8 ÄŸmj1mî|ŠBdhÁ†9ðë ’ry»Ö|»rq´—Ǭ¼zqìô‰4Âh—æd>3ö 43d¹¸vÞ§7 v½³+¿®$åv®»,Õ{L˜e;‡áäãNØ üÚ­G¯ pêbjß.7rÊo¹½;”çâÖüâRúƒ¦z KróìúŒ(-yæØ'ÐÊÎÑ­®(19sD÷nlïÉV ÕñÜç{9<©lž?ctžT¶<—â2¾}Ýá§*UXÛîN4÷‰ö&4¡‹7:aíÁ,îµ§wCeÚã’)¡~0Ä¢‰óV?øyåg ¿ç—ƬÛtl]ܰãxÙgÏ%]æä>˜¾4&íà.¢ùr‘—Ÿì‘p³üøá 42&xìæ7p²9‹ö×™ Wþä“Ó(•Ê[Q dªfH Šgê’Ôõd:²:l«t“§{RSÊÕJHUL½]ƒù‰Æ]‡¨T”Å£®«d˜6®K©GŠ®SDA ó€áJ& Xu¦Ž£§I5Ö Ró¼Û¾¯¨ýe®‘ÿ˜Ø³0¹`Õ’äÙ3Ýî:ëàÖ»ðþ *Ë­²ô^°?óòÁ.þ“³nì¤:¶.1è»Ø´ç­MémQyE‰¥ƒ-Žf‡‘Z8­íBquɃkù”uŸ7æ»ø*šåt½¦ºÿ 4ÈÍÌÚÁ„M¤§‰­n]I$âãP)ᬈ½£•1K}‚:iî¬Ô'\·Á$óÛdNá¡ÄÛCìL›äb UßÛ¹++·‹1Y½<SI±÷ìfnCiœ8y¶ß˜yòʇÓrBh ‚R]&™KP˜0:J€è+B/Š«þ±)‹Ù. ÿ|8À\"wó2cû =xül½±ëìïG§Q½p™idéßµ°­Gòå3÷_w[ƒ¡þ‡ví‰ådëÒ^Û$™Pé¦ÎS†ùìX¿–ej¾nWœêeFpØ…²%$l€ùÑÁsWn6MžÜ­ã˜fS‚,·lßÛ/j¦“…©—»Ë+AþøæÍj93ÒÏÕ‘iÂÙ|¼>x†§©ŸaBk©3í×ÃM5b¹˜Ñnf={ÔÙb`½ìÇ/.Þ½Îñîã:r˜ï€ñÁ†ÊZ[ê5’‘´®Ö¦{/c†¾—_òÕk]}>31·îeÏ®“Ѻˆ›í".í=Ãñùº§ww³‹·G7*ÝØï“ÞCýÅ—.T44SèÖÈâq ~fÇ鯾szõð"S™~Ÿúû áVÕ_O¹:f’ Áa¢–3»vÒýœM9½{ádÚÔSŽÜ­gè0yRx‰-ùÔþV¶½,Œz÷ò:–ô[Ÿ þ c—yc{ïØ¼=8lŒWР£W/ù؆å>-õvuÖû?ö®¾Šêê¿;sgæ­„,$d!d]TPD¬•Ê'¬¢ ´¨µ­bkµ­(`@‹€Uô“E©A,PÀÈ¢h  €È Yß2w¾sç¼Ì¼>²”„ßgýñNæ÷2ܹÛ{äÿÎzÏù±g ögÖÕ 2˜©œ­ÉT¶*Vˆ.O§¸´¸²¼Ò­º‹L‘iR³gÁf&ä`A‘F¸EÌW-Z—þ‰¾Bõâ”Q¢Çë ¬Rê8#ã—Ãé€<¼Tò‡æãn84£«®*߇,¢l^^^ÏžWäà!‚0¡Wõ…ÊíóÎI½r~vU– <Ð…ýI+™.J“Ëÿ#‰NØ0n©‰vMc†ha4í@ /„;4†44'Æ`èL7Ø…TrìðÒõÛÕòãïŸ6¤OâßTpOœ“Øè}mþÒ‡ŸâT¨@HЧ Tƒ6ƒ“~ªÿ½”s(§s§Î-©8„pò‡Î‚rb°Žú$j’ÍðIäD±¤y2J¿Á~«–¸²*¨ØŽA<² ó]©z¼®èå)ùïFî ‚ Z¦(+‰²äÇ$:Bá²bJ)¼bçw×h*Ü_Š%‹´^ÅGØD`õÆ„ŸfO-4ÝNêW46c´7±î‡4<§ù¨ D¥wêétèaU°©&÷O§>ù(F_}ªÁ÷Á›ádìù¿¿0¶–fµÔt#%uG“Elä?ˆLŽ%âk‚I³G¡X"Þ˜ªò³•ðHU˜Æ™0QE©ÆpÃ~ „°4B|ª„ã ÐØð64ÿ”TFlœ#u¸W+õ{Ø9ê» Kõ×=âêJI’|-Ôjy&hŒh§„kõØÕˆÔA?dS¤1Id¾0 ÕÍ‚ÂçóO! c_@>Ñc54çb¸|8­.NkªRA0r XT& C [`”D%Bˆ¹1ƭĘ¥ZøöpÂVRcIЍ@¹køš§P>à™-©8dvÒøÁKoèÃàIØ ÏF3&Ç$ 3€SÈ4dŠ‘u°"?üITB‰þW®K¥M`Ò\H´H@2ÂCX¢f…çÂ`Šaôì*|5(a†2e†yfK*!i\ÉF`˜®LÛ¼V5ü°8³EÕÔˆ³ &Ö€R*ê?¨ &ãój^{ Þ‡í%ß™‘®Š¬(’b¼WŒãAS˜ž“\¡(‹ÃYUMÇÍìvÉnU,Dò© ã#ûBâ™­Ð3uX"þ!Þ3Õ§+t‚ÙŒS _Mž©ÛdüB¬ér‚Ñ K^x¬9†Ö 4dn‹[Ò$î\ëõС)qI–bóc:2‰À(W ËÊêÚE+÷yªª™êPjjr»1wuÅ$»5U•`îµÚŠ,z1©1º®¶–ÊVÚ$VCª8$4`ÒÐ2K‚ÚAšm€ã©õãâ&g’Æý+ü· @pÆ8ìY‘/3q›aÈ`ÑlH)U¨b¬À$ƒvåG¬Ú€<Œî|ò$cèn'‡Î.‘å²+³°Íš³ãØ ­ÓM=ÒoMëÑe펢M[sc°• ^^¶dñÓÓUëô¬ÞqR½Á²?Y_Pî†ýaKŹßœ-1"Ÿ= gÊ &³ÑkÞ˜Aª?(…ü»š¯8D¸ÙF¼ÜÌ pç9~X0L¥[ˆ£fèI)•$I±*üÆ+AÀO±çƒåøFð<$¦M@vk̆Ã]`NœÜäœ j#ª Ö€åiþÕQ•éEµ±¹b ³ªªfý‘Ò®Ãúf}–[–óYüí£/Ä'¯?xêŽAªYç¸GŸœûØÓU5ÞÜ×ï9tjÄ„)iÖ“Ë×fÙ]‰ÝïÖ&CR"þ¿m„xfk+Ñz—aŃ#†¤j’ †ÀG|@È`eT昤ºO8EÖM&*÷ {U$HÜÛãv €~æÕ Ñâ…I`ˆ9-f¾eÑæûA‚žNQ°†cod*KTÂ7‚–XÅ´-p–TT_²uO‹oyöËm9ÛÞï{G—”¤š²·»ÖFåš’“ þò¼tË‘–óS–ýëџݼbÝæ4w^ÿ‡þàÙÿáñ¼ÓÊ÷û¤”~;¶|3ø'1ám|IIwwìl+ú·?héªÌ»ÚåFÞõ@—tBDâ.û sOlÅW±7 yý½/Ìùó›zêÈ€î»vf6<{ÿçûwܶÿèó/ÎTˆÅWS:ÉêÉš•×fóÛsì×Ý3ª}ñ_.ŸÜ³ì˜8èÁÑKÞÝ¡&ÄÆ~ôÑ‘gÞýã@¨âÊ4"ü2™Ê86¹ =9…‚œ¤ðÜí"ñ¨ ‡(¥¦C‚ß̪){A­/ "ÔÁX‘ƒ“P”9 .-ªbPPÆ$¡{96BW#šÈ%Y4ÈÖŸÿÖó¾óVÒg‰LéàT[zlbú¸ñúôîнŸ9ëÔ|ô×Û¢’ÇþæúË*¯j=R»ÔÉR·¯üÖSuñ\ÙÒFÐRʃONþpÅ{Ë4×=a’·‚û‚¨×k‹é2ùæÔ¢=+ôîi·r…䯷¯zøé¼„>ó&Ç­WdÅj•­"°{ÛSVtª ø"ÌÖ!­kzl$šîDE¶ÛeQ¼Œ);¨ `S'¡s d:)pÚ#G÷}aÚ ÷M{6Lù¬¡ê ­å™ª¦bþfŠ~G"’Ú|èbИ”õŠ'„¦¡‘RŽ4ÀŒføaüU¹½T Z2œ*9¡Ñ'`Šª¨sbi†@ÐróÈ—Cbh¾žŒ•QAiYtAxXÛ~öƒ¢½(¹[û›oh_ça¹_æuiçÃø¾¤Ô´=n˜TxìÀ߯ÇôÛ÷Å>Õæ˜8ñÁµÿØT^x6µ³—’æRÔƒw”x•¡]“"ÚäÏ~ïìíÏýaü-{öï©¥´cBGÁ!áZ¶ˆ¤ë;E²[†ED&M¸-}ÉÜ9¶´;»ÇF¤Æµ]¸æ£]»IнcJ"vmQ“FywñüN½‡ŽúŸûß^¶f¾WøõäÇ}ï[³òt{ïýÿ.ÍUÙ.ò“!ƒú†pòC5iEÅ!‚ˆ[ZVÉ ,šgL”sFD“’h•y,sÂ, Ñ#Q˜IÆÌÏ(z‹)›ñ!8â€T¸dÕ__¸„&"ƒRZëÍ?ÌaJ0CË)ËòÐ[{mÛþϼ|œÉ*:S¯Xn¼¹òÌ‘c'Àkÿ{&ò¹µƒkãjstËÍElÜеs\xÔá±ßüLcW-ÿº°+!bÚ”§î`ª R(¼xjªÚ_÷ó[{Bo÷Èmª C!¿ýãtM³àŠ¿›`¨}GŽëu×}òû¿LÇ ¶ƒ9 £ž=²KðÒüo÷ö5>r«ÿø(TqH3ÂL¼ÀÚ†·•ISy6-D£id&Ÿô— ¦DÞT":AæmQJ1¥%a&ºAéÄMЈp²Lù&"”B=Ä#2à›ÀòE£*.ü³‰¸$¾ å|Û@ –-‚íŠÅÆ–}¾±±qcF8sö dZè{SRÛˆ¶ø­qy€ h·aÃúW)6‡Ëa øýÖ›ËE‘¯ES›jµâ(bt G‰Š¢1-Þh½î} ‡ ˆ:Œ;öýUGüª8„iT áìK‘[7©Ýi|ÂÔþYŒœZŸ<=ë7ºÀ@#Ç; «u@%ªP} =:ÊD†Ž`A`bãà´TqÊ¢Ö§ü"¨@6wúLã ‚ËÒ²2$9KZNà„]»t…;Mc5PÿAõ4w‰Š²¶,Õ1¨­"Bes*)ô‡@ˆP[Sq â·ÇºA¹ò)Rî¨5¸p€”3 ‚"~·¤¨wóA#g¤(¯rµ37X‰ú(•À€=¢já’0ërΩùElTP‘šF&¥-Oþ6§ÙÃz»™êÕÈêK¸­‰5®< Š‹¢µ4wž9ž_r@ ¢HU~¯Œ¼12»"o Ð=õƒ”„€ U”tiV䢬™ŠŽð8;Ø1b˜'’¦*ÊŠE!6½Þf5ÏáeÄÁ6OÈçeŠ:-òFžL£ð_E…Ÿð6’⮢™8jÏäa¡¡‚$©DEã' ‹2в(Õ8;E1ÐñˆF@…¾Œ¡ d8ý Q9wHb*gaD$·æ˜ÀeQÏ™ïx•k4ÿŠÍË 0Ðf³QÉ¿I¦iX\S$Ó]µ”ÛLUá¥Q锽…¨õ‡T=OÓ|2N‚\ÈLïåVÝÆ©KÂÕÌÄ<@èÄW DÔYlÔ?q y ¦ç–àñ NMòŠ^§")þ·¤ùÅÚ ð݆ÏvP§{§†¥àÃëçI"½ZŸ¯×§ªŒ‡såZ$Ú⮜B"¡1 HÕŸªË„©'ET{Vj•D‰ˆ®³C ÀƒÎX¾ëmꟴâaHÑœÓNÊoD"b¹,„70¿L9„*™v›æDp6‘‚–¶Ûy!MXzb²\=ü‚\Xº=îM›6mø`ýæ¬M™™™¹‡Fñ¡×ãgOÛݰ˜Jàвâb¨ÞØ‚Ek++J+ª[±gVxþŒWk¾'S½¹¹9' Šëo2{}*ÜÇ ©€ƒNØ0µî|Q i×WX?³Ydâx~¡gâß:„_0†Œ` ’F€+4â& ÝË;ˆç¼<Š»á´8"õUAÀ; °tºœŠMñë¨ÌH*Ì©¬V4O%˜/XOsuâ’wìØ;á cÇŸpÿŸÏs:ÿ”ÎHÙÿÎ~qñâ·Vüý¯ªÁþ àÓ¼µè«sÁÃg Ž_VЉåç}}©Ös&{óòæO»,aÞ‡¶«î7_Wá ‚»úæë\OÅÆ³9[g/ÞUt¾Ÿ^.†mÙ°|ÁÌçž™»Lc¾•‹g=ûçéx}­/`iV]¸pñ;͘ÿòm^»¤5NMÔœÐ3€Lÿ¥¢)…b£Ù .ïIÕÐeòV)ÃÐ9¬,‚lfÃÊ(P‚ .`‰(ÌÓ¼I±ÚÈüû¢¾æ0&X¬•,VŒŽŽ®¬¨ºTy)>.ábéUg#L¶}øáIÿ3lçGY*!ù‡w:]´vÙßæd,:!ag&¤ž—“_Qtòïk–­ÿ`W_î§ãyê™ßºó Ü•gW_›7ÓñýÁ3•^.˜Ô^Ê\¾øµ×7VU;/Ÿ|uÞÜ%K7œ8¼{÷ÑÕ[½éã­§ŽìÏxiÖŽý‡B<³ÙšÓB#ȶ0“Ñ…Á=bÏÄ*¶a;1-ºø}€áì¤9dàT&ÚÅpRݸspæér¸l /ït zJ²Ä‡\Kã©-L(Á„­'H5Ø.:Z–e·¤Z¯¨í´;œN¯Û O+‹Î¾¿üì/óÏÚ·7ïÂ’…ëÃûõŽò~·yû×ÈîÙURíýê‹ìâJO»¤ôS}+ÞýWJbüÝ÷NPÊ¿ž¿æ@¼‹¬ÌÜ¡×Ï ë–ÖqÔÝ?±ÛéÉó¥wLZýÞŽU¯Î¸ÑãÀGŽ_ôè¥à‹7ìþüŽŸÞ»sݪÜ#‡6æ\ß«Ë_ßÈúÅ”_}þþk¹y‡®ÍytÒH«§Ê}©lgö—ÞšÒûïݲö³ïéÔ'&&&'õìÜiÔƒõDØäú¾=n¸u+<¸!»hÒ/F¼·dá©Sß}xàD¿AÃP•./8:ïÅW,)éžKçë\m‘ÆJ¤ ¤åîÎ:t1üÞá=Eæa¢õ–Û}õỵ’²èÕ·ó¿ØvèÛºìÌ,KRïô”¤k–èDlìú½&LÕ˜xš0OxP joø\3.bn¥ÐˆÜqªùMàñ 4E/wÉXdj¥À?½>^Õ‹Wd€ßnžî ϲ(²bþTõôÕFþõ«r–GU}N‡–‘¨ê« @ ~-®èŒŽ9ñáh§Ü'rij/>›ØãNÇ…¯ß~ïƒ.ŠB}uõš˜Z]Qv¦àœ·²àw–ÝëñÕ:ÂÁØf³°ou•Ô®óè>½õ 4fQVDµ ¸mh|\¹j)¹äq×—ŽøùCÑv'Ln—œã²:,¹±o¿øH»ÅårÁ·E[j¹ˆ›Í*:dèé…4ÊçÏTTU{™Ø¶}œÍ¦P™PE°ÛhÒW\vk„KÔª¬á®6aÔªùT­O¯Rb"P²EwþóÜÙcF=¡=>ËQ^QW[U\W›eƒgÕžZGd¬Õå(Ù»uõ7Â<>™Fu릾ölƉ™Ë–F¹{n\³þå7JÞxááÖàš­8„ýà2pÒd_Ò@ £¦%Æ a.fĉ!¯6‹T;±Ü-\¢ÈuZ4 ’@eÊÍB ÛF„EDD€ˆksÚàþ&)å¨öK1 ЏjÞ&¼´´j™8­V®ý2Uã qJÞe‹-X´Ö–Ò¿{¤ûþGFÉv—‹Uz©,ï¸+&Á©ÈqI)Ë—½]®´s:1vKQ¥[=w*ºçÀì÷—ú¢z>0 åpîßá甚–šõa&³EÄ„;{Trb̃“~-=”»·ÆÇÐ(pîó=sgÎM¾é–´¤Øö‘arXâè>1 fÏRc÷îÖ7Ýyé•Ù+­áÉŽ6Q¬¢à¬=Qqqý¿û×Ì‹N—¸Ó¢ÖemãÕVWTl„=¡Óé–Ó/Ï}£÷À{á¼[l»CËÙøÎ«/Íx¥ç}ã\®äQƒÚ¿4k^TÿщaöÝ®¿­ gç[ËwEÅ$ÄDG]8{¬C‡˜ÃNŒs«7¡G§é›Owç—TöéÖéZλ‚ŠC´1ø2³LÀ”@[_Š£0&9ưRe3ÁHÄœËãâÀ¨\^”5IVÉ£2Oe³™ï*çV y¢wnßVt®Xw¿þýP®ž8mvS$广­Ö¥÷.Phˆ—áf ƒZ»L˜r7ÓðþùŒE"0ÆOÓ¼õú@A”&<÷’ÊÔúYrç„_åe#DL!ü›)üõŽx]yO¥Ó]c§ýr,ùîëÆÛF=òä]>LB™ž‘Á>´Ì̘sb(ü´Ùó˜föô§žWUšÜÄžwbqÉ_þqºª2t;7˱ұ¿ú½Û«êY­Éðqö¸eÅ_õ=<.}ÁüÙ UèSiý‡2¢§áÍ\±õ‰É DxßÄcø[û?öΠɑ$¹ÎÏÝ#³ºgf—»4™I¤¸:èNýñ¢? »®2ý]™ñ°gÝDšdF±‘îþ„®DW …*…¬š‹=cѨL`êðÆ=<=üá #f¾Ý—™*=¡…àBð¨çˆPQ5åÑŒ!^ô4'a°Ušžîð'·ÙýÖJ¬ÈÁ¬öÉ&0"LðnŽN÷§?ýçø‡?ÿùÏÿü¿ÿéßýû¿ýú»}Åò¼ûGoÉ*B˜=õ£?.{ß¹Z`6­?>NûÕ ~×ßÿíüÿíOöü")e:¬ÄÌ^¸Q÷œÿ -Eq‚jÙ§ÀOIÍÃÃtzw~ÿ­ÿå¿þ÷/?ÿn½~kYþv‡:Lò4¹\®èöƳqXóÜ›õ®Cú¢hYC¥ˆHIäQˉíåß`dÅ]Èï~ÿ»¿ÿOˆüò‚z»6Fmúå§ ¿b~þå÷¼Ãq¨“=¢|36žHâIOU¢b%7)³Ûï™ØžUäOÉUŠk’Üeùˆç5Q٠ȆDBÎJwîÅ`L9½ZÍpÙ-…2ÛŒ›é}|”õÁ¡ÕaÀ¤ÓÓºøòðäl‡ì÷ŽDF†ã:è˜Kc©ôÅ+þœ x°Yd“Úw2ÁW›~M@܉Áp:A"E˪±« ôΞàaí陹w»µ ÇÏëciöIwoÑÓdØ÷dŠs¨òžåŸÁpê˜Z¤gÒL^oÐ ÆóuöÄh÷)y©Ù(q/ˆµ0™³mw&=ׄ7mWþŒ}¦@ z†¡<³£¼ SÛ£¢Ì>¹¥ÇÄS<'xð«…JÏoï‰?uá Î"8e0ðôwÕf;!(IvöKè½ìÉ,V^éþ Æ-í~/BD#=ý°1&îND¼UH–R Î0ŽCï™@B ®…Xa’ šî n…àÛ›L‚¤{´p“bb¹¬,qoŒ±œa0z€Þ3 =Iõ☠±Nº.6Þþ0#’|0‘²‘ˆx=_í§ÃïÌ`8õ6 I&Ébfdì "’yYaöZx”&&**Ï(g€ÞŠ«‘ Dm ¨¬°Lzל*Èï E“ &!¸„Õ8Û3ŽCT¡@’;LÈ*„|YZÉ$ùÜ KÞHYŸÇU¾ÐTÔ2Ü3#Uu*ÅTHTv1ÔÀlï>%À32Ã#/ïOR5|ƒá8´ŠLž\Z“@ºfäå¾<5… 2^håQtôLf‹~}2±7à^Wñ˜€äsÝd²èí… „èÍ#’ .A Å Û2ŽCONEEµ¸7 „Eé׿ '’«ôU5gÒ×3@'ꌖM $ןÚñ¢Õe‘\afp2s0ö™¤g@TìIf2{ñ7û&332ÆI»lçía% 2“ ˆðÈȢŴ¬²l€ÀLçšÍ—À)‰ƒ=($ O_k‚ wKÝí2q!SûhYFÌLÒÄ ­¹› À„©w  H3S-€€§ež3}ðòBí' 2²ÕƤšš™<xï"¼çóB.Áö=^î2B@`f¸€ÁÀÔf›ï3h* ºçÃôÆÙ3+ªÅ4o=¥<ß=Ë5ü&^½+S™UÔ"qâ]Ñ™ ‘Þª7¯¼Æ/H¡Ã+a{†ãÐùQ* 8r‚žµ¯SPí ¿7J>]\g:o‰Èh‘¤Š˜‰&áIÀ·ð©0‚µ-­z^£ùbùŽ †ãЫ$ÙÖ(I£@^Ž[Á˜d"øB“§¯òÚ$‘-W7„Àdeˆx¨Ñy¸£5Š{­»]z T¡ ‚d0‡:¤¨E´Ì,SA”çý:|ÄÄL-™àUöDý£H´t^[-VÌJQá@+@•™àRÛnWi(¸ü¬Mæ`8&‘Æ$x4(ÍR¢r'Ï79;É`U™2#buÂLËÏωÑpÀ9þèúc=õ¯G>s·oîËî[óZÊ»ÌWæ`8zéP"ÝT•úb-GE_Qã麓†'•¤ï‰4±=€xæ™Jl;óêg&ÀX^ÖJæwYzu¦ËeIdxòÝ1Óz2ƒ ÂԘυ¾x´LTr"Ú3j䳱Π€Dzº7¬Ó·<ß|@«Ô.­-»Å= f0\l{Õ@ÍÁ ‘÷pê4ÁÅ[V¥–©œsk“¤È3U>»=×EóÖ¢M6—26€Øä²ûþ F^Qñ¨)>šÁpêèlXIªto,"‡s˜$!PQˆ!xiÞÏôèÅ!ä"‘žÍ] ¥LEµF›¡"áðZ½&h×yM6áó Ç!z“ò¸öRН=z:Až= éÎ<¥µɈ@"2j­$§2A4 "±%Ô¶|Ûíjîf|Ñ7„|þT®Ápê0˜©g‚ÏëH+úäuåφI¯^MUÍD¤eˆ-©Që²so S¹æ<!°í6™ƒAÁE$0“ §‘ÐÃÏ9[Œ]!™$=½6_Ç®«>lˆ‚l˲Ûíœ(®¢èw@|ƒáŸ „”'9Iô蛎C k¾ìMD 3Lµ¥3X£†G¦«i±0Ø•â±ì¾ÕV&®B eYF6{}Ìt3z*“ß>" 2ùlÚeß|žššÈLÏF”Ìáî­µbS™JP’Žíw˜éÙÚ ÅŒÎV›ÌÁ€à}\ú: ¢b"žaœð¤$§§]>¯ô8ÿ03 dJVlŽ€¹Ôݲ,™R ¢¸’«»…ªèÝ: ŽßZd$#©kCCd™ºž³¦f_ôÿs$<¢Õ¶:2L¦$±9dõºÛíjÔŠ[P(®g0ºóní4Èã½b>.ôX[Á†ö`ž~ä×gÌÂú­‡T–]™îá¦6MSÂHÇö¬ßñCÚo¸SûØòÏ`8幑ê ÀÔbO²˜üˆgË?+§¥ È@ŠºÞe.P#@l -–e—IE¹Å…P²Üd–ø×)0€½x#*pxÔR¾€]À½üóÖ©èdîàéÍ[Dˆ‰HØ%¹,uÙU L70—W2¨hÑr§S`§þ– *ŸÞdòµÙú‚2‘‡þØZ«¨ÌÓ %QñXf]–7WQ@nlÄ• ɇÎÃãÓàŠ„$if¢Ò¯‘—㸊’Œ=dóêÍœfQÂ:…«Ötµ‚ˆ©a[Ãqè"ºEŸŠ#÷0ôI‹ˆ€¯¨lÑÊC0˜Œhß5ƒ(Ý^a;÷Ü-»ˆTp#¦Öße0‡:/Íïqи~É×ÖWÑ‘kÔÌŒŒðh­A¤”YD²ÌÍ•IrÙ-¾x¤QÜŠ™m/ËÁpº˜¾ÕÔn"U=R£¼0¹ëÉN3n0+I:¿êòÏ`8]‹A{ã{Ï»Ç&ô‚™`Dx8NÅŠuiÝ…Äë0±[v^] 0tþr˜ †ãÐ)¯…;> ÂcF&ƒá-ÂR> &ÛcÀl³¼݃› T¯rº–(jšž/Ú–$q˜î-‚©L* â#‰ˆÝê! ƒâSÜÊ`y×¾ÙSÄ€8Š“®ñ`¬ï3îóƒñqʬ>BuÙ!0©àݘ`ã¬Éí1³#} ƒé>A÷æ$u)H|$‘lm‰r';=+ŠÏf0‡ÎPÕÔŒ K 3ë»Ø|\DÔZ[ 5™Ê¤ªH|(„—5"ï¢(A?\·=ƒ1Óà&L,$d°I¡¶H## ß“ŒÙÌ ‰¦yÖ]m∊¨€ø#f& 'ïäúA‘Þ #ÜÃ4253[6­9“f¦fß4“Ì¥-»Z…¢b¸*ï‘å`Ðm¯uêíåŠN pÕ•=ÝÐë±$A‰ÔÃ>“HÏt‘išT‰E‘uù–îv?Ãö¹Ìï,ÿ ·Î›%"AK0A@jW­ª¦¤‡«ªg΂dFDFÖV=|ž¿˜ˆ†XÜ}ñ;øT¼“Áàr—>=UnäAMA<ÃN7¬|dçKõš‘Õ+ÅJ™ ‚†DlË®F%‰ûñ‘åŸÁ àZ€éóž#&E@²¶êŬL³RpU;¡lM0½íê⚆{¡¢"‚Ïg0‡Î‹S"}˜HFºøjqd–òPT{n0Ø÷VdänW3]÷¢O|6ƒá8tž Š@EUÔ  &MÍÄLíÔ6¡æ!žíi7îÉÖ–ºTä·…ÅÊÇÆÌÁpºÏžšFº©!%3[ÄÃ4Íó:w $Z‚|^ùm„ ’0Ád¸$ZÄnYà Ýhã~;ƒ@6p:& L6‘`‚¤*ÊÚ¶¨Ïø%ÿ&ï6ƒQÛá î‹@Þ?ûg0 xãÐu$à@ñ”€Gd²b{ô K'xJJÙÞ0›/»%#awÞªþ”£;/ Q"™"Ó¹6cžˆ¼4öv€0…ʳ ú;çæE'³.‹×¶EFU}=ƒá8„ @OìÝ( Ñ'ãº$"q3$‚Bxi5MñH‰I ‚$›×V+ƒP¼ÅoÄÄv0‡ À%ž ˜ÌÌÉŠš–²l› "øÜL,²KËºÒ Dõ¶,Kx€[Y8áWÆ`8 € ËàáOìÉö0}™§‡5m¨ƒçß2Ý[«èó·3Ãq¨—TûDWø±Um·ŽŽŒdšÎV&Uém}… Ô̺«Þüð~¥›ÌÁ 2Þ3¡+¡²ÃeÙ²M:Módª«,[â#¡ k­­6ݳÍw)ÌEËíS-_ëžáA–$Z†@ÊT&+"’€'>åÒj«Kfr»¸¦øä˜9ŽC$ÜQÀ‘D$[V@&›ÖžµH4âƒQAÛ²ÔÚä¤Ëï·uÄd0‡Ho;WºšØ ô^¼$ZT€“•ižTìQ¨OTÃÃÛu°›pÉV—ÊH6B ¢‚Og0‡˜DJ²¡G8H“±”Nz—è‹c•ZÏ•ï $zƲTo±éÝ#ŠOf0‡"ÖÒ‘)¢ÖwoÁLBÄLH†7 {œs¹L ÇJWf¹MREArYjk äf²ìãŽð¹ Æ>³Xù›¿ù·-š»G‹]]jk”d@2"LÍtò=áOJ3`¦DT¤oSOÕ—ÇÖví0´ ÷Þ.»é/ÜÄv0‡’¹k»5VÌ_懟„ÇžÚj´Xê‚ü¡/‚  !€ˆ@DUEUºP$*/>ž1ÀŸ‹ ç!XWo¯$6ÆÄðé †ãˆœö(hÑ©L_¾|QQ§3uW½z‹H$<© |23j<`b"Tx9õcKGÔU±À®µV[úùÂô7#"f†Ïg0‡ˆí’/øéçŸðË¡å€Î¥-µUÓ3I?RZRHA" ?”¹ 5»µ_¨ò¼g3•ˆæmimù€Qw*¿’îŸÁp’kß+(˜¿Î ‚‘‘­µºÔæ ŽÌä*RS!‡XšÈeŠ©Ž{‹ç÷¨&hñxÓãT2ý.öàÑârÌLDðù †ãŒ÷´œ‹Ê—GB2#_¼…7÷ˆ<÷‚J2AdÐÃ0SDÖj—hTDzԨþF«=÷„vUf^!Î_Uæ`¸'È=k"bÅ~š~’¯’È=tÖV—ZÙ¸ø’„ˆ*@ù¸týq¿Øúª’Ùö, °‹ý§µo8ûÖèïwâµ¼ÿó Ç¡`lwˆK‹~¾~ùé‹B“éîá±Ô¥µæ-臜ö "!áR &¬KcKðV¯xäÒNù̘91óãO „àêz2Ïó—¯_™‘Ñjkµ…“I4@x¬Èî‚b(æ ` èu*íBµc}ÚóDWåó»Ãq¨Còã XbjÅÊÃü P"¢ùãkiÕkzzÀ‡:¯¤jöýäu* tNKMjÿø?ÿq¿[Æý þð‡?Ü>oVD>=⃕ùþB’-vË®¶Z—ê-S2è™E$A³ WÖlÿøÇ?þõ¿ùëŸþ™$6`0Ø:fnã^‹•‡/&ÁR—Ýn÷XZ|A2FRL r-öžô\€PöÑ›à3 Ê_–O‹Ó˜Ù> ==´Œ»º[Ú÷—7ÏD2 ƒt•¾!TBMK)ÉÄÇ3lŸÍn Ìå—ù—¿’¿•m?²æ½Í›¤8³¤ƒ€RåYú çÊ,Òî1l‘Í~>NGÀ<Íû??ëÏ bO‹º<¾je2#AZÐ M‰göüåËDü6SÙ‰L~k¨±92ûZðæ ‚ïzj’Ìoß¾ýë·õplO±òÓן¾~ýª¢7„S5ì{;¾©#<Öxº[vÑÂNJ¦$P"œæénÆ„ÕÚ"‚ ¶ÇÔÊTΙÐðä?ýKý_ÿwùçÙýŸÿטØUüö®,4®ë ß³ÝuîÌÑŒF£mdY¶$ÛZÙ–,;Jì8µÓ-MhÒІ¶/%PÚ†–¶…¶ÚP …&yj B ¤bhBi²»Ž,Ç’G£ÅF²"É#Íhö;ûÜåT×cTglE•=èÓy¤{üÿýþó¯ŠuÙ¸F̜¾ÍLƒr±<15‘N¦§Â±ÜçmúRjµÆK¥RÅÑÙÑÉ s»0 £b¸²»º$»(°èT³èT/ëV\Æ:<&ñœÅ¬w†móÅX4Æ†çø»sKª\a§bWì7¿Ñ4˜•¬vq1©&cŠÍÖh# Ïß”3’¹Ìå•ðJ··Éá–0€›ãÌ+W%xxxØWïëÛß¼m 1L†%hSÃjgfgÎ Ÿëì8á3ôRC–È6¹’鿺¨ŠÑ G˜;ûšn#›Ï†ÃaŸÏÇñ†ŸåôQCÓ ¾Å?¤”VÌ¢ðrXÓµÚÚZÀ€ 3š/M\M™ÄñîÖ‡„¸;®Ý ÑTæìÄÜ$4»š\n ÖÏÎÛ|F;e¦§¦DAlñ·èæÆ“ðæÎ¿£úv×óçÞü·§÷X«‡¯<ü+Œ¾sêžM­¹¹YM¥§'¦ºz»?s¢^;2€`u± kì6îlò÷ªz¸kÜ,a©A5ª}ÂR£fdyqúÒ<`¨wGG{‹÷“ fNž?“,Bo¿mWãÍB8ûAk߀ǷŒ†x<žÐRH\…$þNuf>žÅC{œkšZù/\~å¥WSØÞÓóè×D·²9 ¹,æÅÔâÄLV>¼¯eS\#ó÷ìnxorÙ) 2‡Þ|F;†x=®›Ÿ›ßÛ³¯r~f#ÎSgÆæ¸ž7ùÁðŽƒ B~ôB ¾m6SÅ<[T‘Xj~~qO_¿ÛÎoœUG§Û5>èêéÞú@¶‘Ì$)¥£JŒª Å\fdd¢«À%brF)‰$/ÖzœRº¼ÚuhhrdÄÛàTc N²»k¹d<©æ7—Vu“&VÂr—Tñ¸žÇs|*•’mòµ&ÊÚb4çäÕ¼¢gŸÿ埾ûý'{s˜Z`ä|;÷ïïÌÇ–ÔLæêJ±»{ç‹Ï=ë89Ô¦È"_L¯n&33³Ô}è *ÆË‚‡+% @²“Òè…‹u­{ý ž*å”Yè`é|,çwK5,ÙgRJ׫ìÔ5½T¶²äbñ˜•C‡à§Çò¥â;¯ž.]d/Ì-ùsê‹|!ïnZ~}ø‰;K…Òüð¿;=qb_Íé·FóÓïAði.Ó0ËšõêòµÊÏ­ËØF.—cYÖeâ*1ɦ£ºè­sH”RBÍÑsÃŒäVc“©Ž-éÚ+}öÒ%¤Ô•“‘D2 Nvwí úü~"Ê”¡É@$oô÷)&7׺ N§Óš¡­if2¯e²Éf7I§Ò«R„±µ«Š2êRÜ©èò¥æÍž-7¶o4q¤5óÖk!¥!¿Ž>»² ìL/é‹g3N,.üþôô½Íèl tÄ5n´5úAPkׯ_SáœýñÏX1Z+…Žš®ò·„/§’©‚ËÎo¢rºªÛH5ô²c DmPX QO_ï¡v[è£QÄèÁÅ+Cn¨o „7iöÞS_}â¾æô,"C°Þ¸bXb ¼€¢ µv¸å±Ý¾ @0©I•™ƒOi VM„/]ŠD àXO{Ld"ÑÌ.ŸBM@¼£c÷lpl!.eRYaÔ\š‘»:Û­‹£M~<øÀËÞ,Ü×X׊œ!€"k" ¡!ˆpÄâ•ʪúAž3 e“‚ŠO>øñÂɧàSGŸùû…–Zñ‘o>Éœ9l‚ÆvÿÁƒdöM‰n˜÷?üøCÞÐs¯Ç©¢³„×õcšã ³6Mª¯÷cB ®mÉúZS¨!¨CÈÜR†D·Ã™X—kNàÈ5l¨™"‡j›ýmmJ"ˆ²ë¡îƒçâ†Û' "ÁK2¹ð·WŒ ØyïQIÀú¾YcØÐ‘4t«NÌÚáÖÆ60ÆÙ\VvÈ•†½Uõt²Ããå¦ß;sVBFÁÛ\p<0ªe¢»‡R@©¡Ï]žË–’ˆ ÖŠ%€$œ Žœ/¸êÛ@††ö.œ‘Žž¨µsUÔ¢–¨ Lðœéâ€À‰é’Þʳ<Ç!Œ „×ûŸ[+´ÎÆ´>ežêL¨E·"µQăC­ + =¿ÚImüC_TrÈ'q':ú#@„»ˆÀuÿ"4¡a™’N•tÔÙxŽEpî–`qy1•M%“ÉD4‘/ä®{yHçμÿ~ûžÎ¾{úî°©\6JšB“ÇõZF/ŽNO>rDvÊÌÖÇ6(£¦Ô•••–ÖÉ&YêîRª¦¦i /|>ø¤(¥êÎDŠyuh‡¿Î%r¢¬VfNY›[Š¿;:íP\;keÛ­ug9´|åÊÇ㬱²ÕœùiÝÝd`h00ƒŠS±>H˜µ$¶u~¯ž¾¹ö0°ñZÝIR‰´Ínë?zØér"€þÛÞÙ´¶ÍDQx¤i¤ÑŒåÄùXB)„vÓ]Kè $ÿ¢¤Ù4«xoMš®ÓM tÛEl“®B¤uSZKUßs¥úº$`‹î3" r‚½Èñ½ƒÎ½WܘV«%•<éŸP"†Ø&U鲬r,-/ýy–[hêg«Ë{²ûþÓ\,Ò$¦ÄoÆàhÆq$³âv‡ 1)fNF kl±T L×ㄼ¿5ŒV:‰ñï EˆÔF«ËEVÔchÞT›×ÜyâÐ8fþKÌÂŽÃ0RÒU˜Äówø ?€¯PŒ™3ëaȲÜGwÖŠÓ‰1–E]0 WÉ zƒ<£õÃË¡¸ºöØa#}YÆaØ{Ç¥_bbsæ‰ _(¨‘©^P¾ªÉaÃ0œÄöúÙˆ\J¾çÃc\ùy G)H’ªš˜Â D™ò—ó‹,¿¾"”ä1m†A5 ú§Âýoç-„F="ƒrIR¥_uôð$Ý…ßî¿Ùßëìµwwwv^o¿Ú~9m†ÙÚÚêt:ívûàíA·Û=:úÐï÷‚ @ЄeU5‚h ¥­ub­3IÃ5Òf3ÅšoBÖÍ©Â0 ©jŽ$Öh4Rç »ÈÄ`†Ð£ªº6H%U¨t¤1YFÉ,ôŠß‰MŒü¶Õ©› † åTE‘µ6Áe샋Ä)×7×+“>'=AaÔ÷©ˆMGpuZ㦠Ã0֦ؤ M‡ 4œIŒ‰Ž(rÊͪ·ªWBé­’:€.!à˜¤\®©Á0Œ³Èa­sØ”"¥ŸI]’,¢v@RÁõõtDÓÜäHkË1?Y5Ünj0 ã_õ+ e(• é0© »HGw(×­^‰‘úz¦eNM’Ë6ÉE> ?>Ã0RHU P*ZAI%T„Ëÿc$0TÑVgIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtwizard-mac2.png0000644000076500000240000007162712536324517022142 0ustar philstaff00000000000000‰PNG  IHDR3Ü“_Ñês^IDATx^ìÝy”ÕðßïÞªz[¿×ý¶^išf_² (Æ1páh\0:&£ž™˜DMŽš¨Q1\"Æ'*¨ ‘áh$G‘¨dmè…z{¯ûõÛj¹÷N½®Ã›žÉiâAi„¹ŸWçv¯«þ¨×ßó»·ê> 3fÆ`†6‘[„Èm1Îr+'’$I”P$N ÝJTìÌv àd’ ÆX*›J&’¦a" eq ¾2I’{<^Ÿ×ï÷kІóùTœX &g³:b‰d" ŠTU…F’$!„nèvâ:::ÊJË4—–«–@ÉÇÒ4Ít&H$ŠKŠ9çél²Ífí}ìÍÂÂB;Ù=†ÑÕÙi†7(((@DèÁ²¬ŽÎÎl:Sà/„ø“Ëbª¢@’ ßç'HZZZJKJ…*4Ðb.™N,íìvutÙb3¹ õµuo®XÉ9DË4gÍ>oôø1pT{kÛÊ×VXÉ.7* 'Mœ8} ¥ºeÒ™eK–·Çš©àÖˆ£gΙyŒ",Ù³¥³hä°bW¦£uGmìŒ Ãà¸|öчå#lj¶úÚNeê¸ë>Ú¥zIÍ䰗±K^yÿê«/„¾$1`ŒyÜžLÊMÚ-Ü‹¦¦8cK˲L#W3U· lÉ®äÒ'Ÿ[êý§ïLUTmûÆ­ÏÿþÑ[~ ;ÕrÕâ'û{2ÓçÍöx÷}±gÍÏF¢áÁ#†C·¯¾¾{׎ÙógGƒ‘º†úw–½S LŸqôBjÙ¾aÿÀ~âQ qS0vè`C{—5pð€L¼¹5aT•èŒéd C«+’íMu‡»ª‡õ@¶vßþÂÒªÒpïÜÒÀ"Ö–?½Së>çÃ/›œÕí=Aó—G|õûë‰?\]Qœˆ·vÅÛƒýu67¥S]v×€>& º©›ÌÌd2”RB'\aœ1‹é†žÍd¨“̃µBû?*k·©EB Z’5‰ÆíŸlš1sf.·±8?²mØÄ"}× ‹ÒB][šÚ·ñƒÁCd†õïWM oÚþgèL>Ú°~úô^“)1ÁTdÀ Ó~ä¯áe‡­øtú”±TïXöúQ—¾wÆœ#¾ÔN«b;®»ëÁ•wßS1cn¸¤|íŸþX ÞXËÚ›oùQÀEjFY¶y§/ÖiééOÞzoÂŒ‹¿øË’ÊÊšö{ö}úñÆTéý?¹óóm›7ï½ö—7½ùÈÝñè˜ &µ¼üÖ†©ƒ ['…¤EÏ芢ÐnŠÅ,{1 3›Í–a0ºéñØPZª. P•t6j£?ƒÖÇ_`FrXˆÃHeTq«ÉæÄ@ݪO¶çw÷Y‘W_Tèòªñ”Ø*ZEk&÷n/$ËÆ™ÁŒ,3tÆwmüÛ¤©ß½ð¼‘»ß]½{ßþ¢‘Ѭ‘N[EW^{åÖ%ÇSæøéãÖoùxĈQÝñ¹R<"@ýËp+¤°zTã ‡L®}icÛï.‹~ÀMŽêÊàº7ð–».ë<´©©©Y˜É¬þòù—_Ѹjɰ³.œ5µhëÎå'ë3’,n™¦©ºTUS›à²rÿ”Õ³†ap“C·@¿~‰!EåS*=D¡ÞÈ‘æÖxiMó Ôí×*«£UÅ¡Q!¢¢;âŽÅÞ²±ùÝû = €MùV•?ÀºzvCWzèðÜ»½çï¿óVj{ ª¼ÿÖ¢WV’l݈êèàꢊá£#áð!—‡ rÆÌ8÷GÕÎ}{[&V «%¡!CJ)gÜâ õ¤µQ£ÆÅŸ%ŒA½«u᷇Ϝ¿÷³­fí'±Žp‹a|QߦA8/Z±êõW^ØäíäÚÉúŒ$f2»:ºÝnåaŒá¡¶C©dª««Ë¾k·eåe(pà»×®.Šm-0Ù륭۶î댙÷CŠÔé7íÙäJ®4£\ÑÜíM±#“/s»|Эî`]íî·§í_Ý/²{ãG»’gŒŸ. C/¤L¢­áp;F¢Q j8ψêêj=ÑÜÔÜ*èA#PÌÄ[h ÒÖ¸'iâ AƒnØ¿Ÿk¾êT‚ÐÑv„øBžŠ§Iq´0ÑÖ¬ø ›ëê Uó•„=õMÍâ)ôFäõvqêó¹ ŠK"Ð'䨒§@ó›‰d"J‡Ca¡?à`cs£½Ý™èŒÇ≮DeE%ôÐ~¸>v¨¸QX<°¸j(ô€-¼m75;À PÉPBiw±+ÕÑpx'U²( TŒÔ4×ñ\]$}ád±Ó—J¥Âáp°(èóû§ƒ ˜†ÉËYèÁ- –U:7'óoå¹½…êÀi€À3¹%˜ =¨ª{XõD$ÈYî•ճРI’LfÚ8ã6&˜¸àºýÜÈéDúœ$IétZapÃ^¼Ü«ä»¹‚ Õ¥ÖŒ¯>'IRÓÁ¦}µû€ƒCé9$͵BÀÉ&IoI’øß¾Q$I&ódõf%I Ž•L‚úœ$Ix¬d2Á@œgÒ).P jDt¦ôh$\¿{{dÀHµ´¥È€þ%ÐÍÌfLP¼nþN&ÙE4KS˜iè ¼n ¾KÏMbEÓÜ®¼W2Þf)>/µ6µö8P¡pº‘5Ó™|'uÞyë-¿&‘jM+¹tæ˜5Ûöß|ãµÞ8ÿ’'×û6¾øøçžçî½ rø»KÚ¨Œ¿ýš¹ðwV=½`±àæ«Þ||!wÁ¼o…/Elxí±?¼½»"äoNèó¯»é¼éÃ1ÂÖ¦-õígžQyÀ?~óÅö~gŸSÞu÷‚gyni䌦DôžLáÔL t=u0ž¼óþ[‡•xM{ÊŽt Á‘Ú%ˆÁž(k©oT†´Þ·tÙ*–lmH”ýêŽë‚*œ3ç‚æýôŒAW6·>{ýð¦ÝŸ{âÕ8÷]ôoß2V½»ñ’‹þå©§^½òú]óÂ"Nƒ@Œ[›ßymÙŸ7+knúñåšBàT qÁ{O&‚BÄLóÁo»mü”Yó&Šuë?¼üòy‰¢`îÇÑÅ(d«_^~ùO¶úÁç\??ˆ@Ùði?¿dÂm·<ðûW_ )æ/ï»Ï[sÅ· ï»ç·ýüüÖ®½hö”×–¬žsÕ÷7ý׋ÚÔ_üøüªîÃrŠ@¨ZT™õÝYË×=þÖòÅ+ÖÔÏxú™Å?œ^Q8PŸ8bÑÉ“Æ>ÿØãkÆÍ îþKÝ€Ðøñ.¤Âxñ‘EtÒ÷fLëRTJNu²f !Lf‚` ®K¯ùÉ#Dôý€àg r?-(øÑ%,@a·B” ­ž3÷ÜOžx…3+ç^}åo߃ãéÙöæóŸkÆ ×\ê²õi“àéT’³Ü9À÷®»´…§{GÁ„ÝÓÒ÷ìÚ&ÔÑgfÊ×êì ýƒd—;P)r=õäÓÛãBW7t ¸e M€`¨^û›;Ÿzôù[ïܱ|ù¢¨_…SÄ8ë5™ˆ¨R$•Åíª¬XYêm¨‚D%”Pª*HÈÑŹMD@íF¤Zþ4ªªŠËeoÓðEgMZü‡û?ñ&Fμ´"Zܰ}Ç/nz8“´ ô<&§+_þÁžu±®ä¿ßxÛÄÒ̺µw|¶so¨%~æœ ¬vå ooÐãí- Yßôù¦ïø€PEE$ˆª°Þ{cMÙàª-ëÚ¨JO•T¢„þãš)yËG>öÌÓ‘05™sî}÷LSþâ™Uþ¨Ã×þfækæ¹×ß; ½~]°pa×{DzG K½ùÓ¨•ŒZ½äVÁ,`ö ?}~ƒ!´Êþnž{u QÀÌâˆïö?¾ˆªùcN¿úW+榰  Š'—¾Ðë*( •–„–/Bx‚¡éÎiMúÕ¤®E .¶Ô¿ ,âóh—üè?b]úU7”ÝxŠ~ ²fbãáÆŽdG<µÆ2ÙÌÙg }N’¤ƒîÙ·'ÃÁ¢@Ñÿ­™:Ó¡ÏI’dqëXãLjH0ÿŒ“¾!I’B”Þ“ H(‚3ÆμD<Ñsƒ$I2¹yÌû™  œs‹YH‘ 67º-°¨ @ ‡"ž®Óß›ššR©|­$) F£Qè…JÔÞ“étvp‘ïÍ‚Ûívi.Á…ÉLnqÃ2ìu öÊéWQ“©ä¸±ãàk%I›·l„Ç1Ît f€`Âb–:!DUTâAæB(€snZ¦`Bg:9 )"‚8õÊi|áF’(¡.ê:Žq¦CäæVMÃèAF™ó'k·”R¿ÛŸµ²á\Ü–°¸Å,&@»ÁÜ‹ n/ÎqN±Œ_7IâœÌ8®šéà=BJr­©›‘ñx=œòünÆÊ nÕ*ºwÚL;Óâ-fq+WWÐĉ: ´qÁÿ¿ÕLI"Î4¯/;èØ€7¹a„—æBŠÎÏ,ÏRB/•1ÆÐä&EŠUPUªr•{À“ 67s)e&gÜéO;}]ÂÙÄé_3%‰ó\ ŽcÞly*Q-¥ûÁ'Ù\UPI|º®«ªª¹4B 6.x¾æP¤‰]N¡[ÖÊrÁgöâ80Á„‚A@ç §_Í”$â|Eé+ÕL9”gTé$½/L§sO§¦”z½^Ç£**Rt"êÔ§E@&˜Oõ€[ÉE4ŸR¹—rÁ„És-ã,KaCâ4©™’Äg‚}ùïgöŽ€Bçr+¥Ô2­l& [× Ý0 ç© ™LÆes»4USU öxÀ8·zÂéF# Í£xz¤´GV”ÚøÿÄ•u¢B€8Ô>¸ê‹ˆpH²fR¤ÇóýÌ| A8å• !@€µÐRTÅ4Ìd2‰™Åª° ιý–ÌÜÍO—‹tù|æ/=! sÍ– é™Oçê‘“ ESÜèvºµÌÆ™ó¼˲£À8@=á—$_­fr&¸€@»³HPUTçJ‘1DVäï©‚“:{ÑM=«gݪێ–æÒ\ª‹(z«„Náf‚Q¤v&šÉ83 Á>—¯g9u»ÜŒ3acνÆ·W(P R¤ÎZ€øFÖLIr’D ÿÍÜ•@5u¥á·„l@ Áª¸.(jÁ©££P‹K–ÁbÕÑér°¶µjg”ÚÑQ§â”SªV[»X§µ•ÒºXTAYDÀ€¬1aS–°&¼$ï½¼ù¯/ápÄétΙpCryÿûïoÞw¿9áÁÑ!ÿG;‡îÌó"„R‚­B¡ €@ÔQ_W®oT`6ÊJQf ¨•²P Í€Ì`{Ã@fwÐ#ƒr¸ºà» Ýd"™\*—Š¥27™»ÌD¹°;†€ÊÓÝÃÒ ÊúþÒÇèîlªIÏÈȽSfìh9{!õ?@Cõí;ãÏ_º~¿½óçSç êôg¬ ;`‘ .]¬n5f&]¨ï4÷;=7ýFuÓŽÅRm±±}“tWS×+`lÔ%¥å:Ìú¤´Tf°ùÒSaQ±³kËÕú.Ó#6\ËÔ4ÿ€ƒÏ¢Ù`á;Úœ²ª_ ¥­²8%¿¼»½±¡Õà¼áºîbVÞ“k`KÕ½ª£éÜÅôÇK>ùeG ŠJ ‡†ž. Ñ‘§œ(ЍcQãìèÇ‘}â0`Ï.C—Á`0u›h+ªš`Ü@|"„s,ÅPÀŠ4K3ð`™Çßð‡î ò ° ‘­›ÄMî&÷{¸Te2©«¶¨Ùð2L€$Hèðî‰Øc)S“‘x]g¼|샯O¤—”—£5C9g»³^lçø Âœ9Ç­b¶xêìÜYóÿ0Ù‹4t™î–æ[hF­Îgù³ya¤Š«ÕÜj3ÑÚÊ[ʱʉ‰?vRtǃâÚ œ†^y%úÀ2½Îx—6×* Ž xPׂT “0‹©¥¼ZÇ'ñº;'Kcçú¬ímæöºë£nV4Ñ] ï¼µµ°º­wv÷‹kZxpª}´6À²7hÍ`€p‡®ôÇôÛ³G-m0µÎsAñ#ÛjÚ(ö¡°]ÿ ¡¼²‰¡è7n¿©õ`j×U×·X ÍF3/oíiËË«ïcyKú–—A«åTˆam÷ëmTgiEåã‘9Äe7tå[ø Û›ˆ‰à àÏšò4%àê#8iœ¦ Ú1„£Zds¹A¹… AK?pöò'…A·7­ a'tÁž y10X âfhŽ9“¸T ÅDH3<ø˜¯Ðôz vÜþ_~Ç t>=KA•æ80¶»Y÷aÜÇ& óê– WndåLš³f¾ÛŸ²Ÿ }kyX\LL‡Y¹9"$ÐbjKKK³xéEÖÚg£þ ¦ƒM„s{œ|¯©Ò½¼~ÎÎ3ëu§¾8ªm§~?Ü~æèÁ¬C÷_\÷±§þÔ‘ Íò¥wRSLVfå†÷š¯ŸÉ¬ÒŒ\´yír_¹|µ0“ù¢ÛÍè9Ye®>š–íáî¿nUŒhЖï‰; `Å]’ š¬úñÆŒyó¢W¿cöÆ^b,íê5åT©‹@…s¶Sß¹™“7õÙõ¿ciý(úͰ÷?$ÕW¿JÍr—ܵç=©€hªÈ‹=pbLPpôÚÕÇ>?øúÛÛþlË–µ{×®°Œ˜²t挳Yî£ÿ¶k«o\þæTÁ0Åîú¤Ä#E3^{ã¶»K6ªm놵V‰7‹IÿúîëÅÆúÏÇXóëš0»|Õ’É·Zäþô»­~õÊt±^8ËKú$ù&ÞÔ5;jÕºt§ÌwÜœ¿l|]Hâ÷« Ž|wî~íXB¼ˆÄ Ϊu À¿V>ËKJ¹¡½`å‚À±ÎFÍ=\ú”¾bDZŸfV´”ÇõÍ“ß$f(}§DEÌøà“¯±n–ø¶Ú) £ÃƒÄ_&\lm"?û|SQéÝ™ãæį– ów hÐ!IÇEïÈÖL"’dÀf4 ÍÑ»±ƒÂS§‹N‘"8 Ä Üôi2™€Hyòd7åøÝˆëWüäXññÅ >àìmVÖ ±7Axºz*eJ•B¥pW©ºº¹Š$"‘@„iäJà bxž]Ÿ<¶Ä 6ñp\A߯A·ònV~M—µ›+ÑÔ©||Þª¢¢;4.6vZ|üÆšKÏÖb¸üv¡„Å2eØó‹V¬‰^0wб›¨'ü†‚ qq¹vÀ!©ÊÎs³¢£^ÄÂUoîÙ¶2¯Hmé±,‹Ž §nÞk·™‰Â¼ÄôlBäSR¨¦´V‹/˜µþÈ–ææÉç1Ò³®R×bFûTNAjðò·ÿqð]/¥ GˆL•ïØÞÓ¸E‘\ÍíËY…¡Á°!ù óS(½ ‹Ô‰Øþ²1h¸,!ù,F*êAmïïz ´‡j4ì ÆÖ.à$³¾ˆÎ$wàï{“/ŸãÀ† ­ÞŒ„ÇO %jîhIn·xoÜþñžõ%MFž‰8Ÿé_~v$ÐUP¢m÷œºx{ÔŠ¼ÆÝqfO²?+ÉMÉLü~ä¤%6£±Çd>™¹sÿÁwb"YJÿCj:.TVÜ)3ÙX´nn å°1­÷ŠZPrŸ0wqzò™Ì³És½¼‡yzûV¨‹($ˆ1fsÉšxéìÆ>Þÿ&¸´È[w•dÜÅëÞÝj}§Éføþlô3ëðáØ†š:©ÜËsؘæª[­»¡Õ𿽯 4D«Ü£}gª'‘·É:Ý]»ó(c¡áv\ˆ ¡‹3¸°[ +8ÐFÛ8ŒH2%R‰«Ô,ôx‘7Öç¡õe‰†¾I8>à=ï¥ {̘¹wgAùe’„¤ ÝÁçvšlišæ0ƒ#0$D9;¹zÓû˃|L-èzʼ‡OÙóGfÚŸ97è§ ƒû¨‰»w«6Æ|¹äø;ÓÜG¾µu“›Dä° 8~6»]~j‰6l”vï á}GCs'ÁbrÙÃÅâr‘ȃP›´içk®b¬5ãFȲUãŸr•pçXœ¦Œ“¾.¿ .XiïFž­»ÔíZq‰G×ÑE+ü'îÚ½fó{G#BöŸ»˜²ì¥?S‰Ïôm)-£^Àm]uç/¦¼ÙÃ|æÅ°™Þ^Rä:¹zûmÛ½.~ï±ÐЧ)ª§äVZNY ¨’A®€ '+|…³ÃŸ RzI0áB>(×ô¼0oo®®¹W¯5/ yr kë*«5z“ù…X.‘„R‰ÙXV]­«jŸ:ü…‰Òw¿U§]Þ 9sÇ 9‰eçÜ®¿ž§š±0ÀÝ70|Å´±r™‘ÊéãF>³ÌÇEÜÝcÅ\¥rOÿI´æÛÒ©§ß–ìÙþýâEÏë*‹èG‚|™43§¨¤1æ"CHP¨ZøÒì) Z¯‘I$€R.æ§áßÙ7m醒“ÌfÛ¯ž\ü›“síi ãøh;JWæFëÖ•q“8²‘˜!è†csŽmÂØET4@@Ô˜.‚ñãç0¾1\tc™ ¼@¢á• &F^€(D!0Y'›§–[‚¾ñÝÓÓç99é“_òÿ÷œvW鯡9Ž<ÞæÊ¹Ã™›C;î‘`$G`@÷Ê:´A"À ‚ ¤ Ü+V&€˜³~ èUÀ!ÈÙÚk—G1Ìy`o[â-žÙx‡`¢˜m­ m+y ¿A€€@0ßH@(b€ö#ÂÔ­9wƒªÐæ“„¨Pb3ç)3V0¡¾Þ¾\ëÉ2»iv1gIVgæ‡ÆßµÞ«ÇÈ”»÷K{¼½jQNÑ J}øŸ…ÖŸ: rÄ¢¨Ýẋ…ê U¶ñ‡L¬úN«ç‰{xYfÖ2 É٠4_ *²éâ ÏàxUK­6P`³Äˆdù&ý«YÀÈ?ÿÐö< FÀ„ ²§dq üðàºÐZhn~neqå7{×Eµý÷ÎÌΖ$›lz#!! -!„.µˆèSü‹**õ)ˆ‚ ¨è{ÏŠ¢Øà‰(bã©`‚ €ôP‚!$¤‘ÞËf³uÊÿܽÃLjy!y|ŸædœLîÎܹû}ü<çžó;çàè–­cD&vi)äz\Â8"$ì¶Ñ»3@Pjö–-eÔŒ‚| ~ 2¥]./HMé7wð8åEN%DDÂþÓèuð¥ñmI¨¼Á0…ðp´'ýҥظX’ìF€-Ge1¸»Xº…³ÕîÜudÆ=Sý¹äì¹³Ñ1Ñ­÷œnR¡«é^k>T»Uœœ[£• Êý 0±éÈ©ˆGžÂ$[šíTcªa­¬¢‘äŸážävÒ4 ð$ÿO”9`‰$²ÄÂ8qëÉ·ÞdE‡miÞA|WZVðã`¾:Ø9£Äm ÓÁœ0!E#A¼Ê¤pЈ€’¬„¤žÂï.­{Þ-ŒÖãÏK¢>é8¤è( ~°!ÿ4ûw` ÐíZ…ŠÇ˜äŒÙ[*æð@´S^ ŒÐø€iF 3HŒ"À9øW%œð*†'F5¡í#$q `a²Ÿ$Ã’€^Ï'‡G°`X² Ÿ×^Œä‹þ/Fù_•´ZQQæø ò¶Kié1ýâa.ÎaNÍÌí×§Ýnè NK^Q]X˜_gƒ?{æBlü5Ýv¾ÀÙ ó D[p€ÿµõ_àNŸ¾0hð@ªÝû+‡µ¶V`}Ü4ÒŸ6s~µ920ðOÑའv^›L„i*—%d$ÚM²!qÞú¯“­<¦ùÁü–:‹Ål±Øð^ø½ ͬ%Ú  ý›ð d6|!Qñ)xˆ·|µý{›€kéÖÏ÷8x ‘Yø!Wbý𚘸ýãóYÕrÈN––ùÁü¾ƒ‡àÃF÷Wÿ€1×üÜ[¶Ù±‡Vls~rÝ\¾îuûN¥Ü»kÛöó¢ØäqeNåZú¾dDþšü¶O¶ñ‚Òø ^]q£*óRM/UÆûŽÍ›²Ë,F{KG+ì<²‘SŒKšBÒÏÄMÓΦщ¶fÆ|{®Déýj¤vªœp–íFžã„˜å &àq B².bWäËÓË–¬¶±ˆxí@»+8†CÁÀ!þHrÕbŒQ0BµêU"Û¸m·Á»Ï’ÅS¾Ü°>§åpöªâm›6T›¨ªZ¯œs‰»žŠ ¯È>—Y8yÖ#Þ5)Û<1úöicûømxïcuPøÜ9z°´È›ŽÏyâžÐŸ¶¼wâRΤ™Ž€wdÿeË÷¿²´ñ†{fÞ8 ¤×¢èÒ?V>ŸûäS7öóÞüÅÏ>Añófݲm{u™9,vò{núäsSî‰óµn”©0eóOçYÿ)áÊž_RK*r*"c¢²s2-[žœ¸-µ¨¦ªÊ¾lå“Z=÷ß>z/ùJÙ­÷?:¼oX@Úoû¶ýü[h̨{nÛúÉgÕnâsG C;‡xþÀŽ“ó+s îY´l쀞~Oš7mÌŸžÑÞˆBøÀ¢œ10ˆS73VƒœŠ€+80,U|〾()^ŽÃG+œ™)™Ø‚tÈ\vø%‚VµÛAc:aVDÖ›äArIôXÕ ˜M ï „fhl¥ÓäxB?¤)$ÏÖŠ°z¯þññÇw“rñijï£Üm40I‡~r†Ž˜?ç½F4få¡° ñ¡ëvòöÙúù÷)Ç’¬zÿðÐÚò¢”ÌÚè¾ñ—‘É™ËMÆ`Ú–»vûÁ![¿øÞeIZ·}õíÔEK÷Ò”–6z»Î?bØÐ3§Ü¨qóî×ÿèîoËkk.dVΘ9åìo¿Úi]LÿygË(69*¯<ûô[ão¾R¡°^} TÅþÃÉ$ž¾!ÑQ‰»¨Åº¯Júò³}¡þ!áQ¡¾Üw»Ž_°¸…•ž2k¼NLéóÝÖÏ]®­ÍË;šY52ÎgÑ3«½Â}ôLhdo?7óÏ¿œ/¸ü‡[ô„a½ôNmÌðÞþ2 R.¦Ž¸íÁFçϧsptº2mÝWGý½¼¾v‘»iÓŽ¯¦ÌýûìY7ß·S3ö±Ù·|òÙg8‰oÎÎʬ,ÉLÑDO|`ÚØ/¿L õõ)Ï/ýsèLNàZ:ÚÈœ&TFQ bŠ,ÍÓ$ž©ÔUÎf7² ¶Eeq`Ê™""8—tB‚ëýÞOÞ €'{9©Â/b¿B ,›R(õDÑ5E”¬láŒh¬iÆÅÔ£(’M*Q‚”ïÖÎzE;>zÝoÄ,H;¾Öᨩ©¬µÚo¶ÙJ**­.k½oLo7Fç¤"‡ŒbôðÕ‰šc¿¿ñÞ×^z`É£w~ðÞæQÑqÁZgp·× *ʃg¢s‹±¬àr e y./+ãòÅK¡A£3ÒSŒ!‘%¹¡} Z5E3œ¹N¤è›Þ v§Z¤8N ‹Œ ò3"Û÷EºÉèAkO³úÀ {ꕌpµøùO‡F=Ë9[~Î%žÕ¶msBüP_3vò­_Îø»aÄÔTðÊ7?ÝÞÛ;³ÆbcÀ¤,Uër*sŠJ‘1ÈÓËä¸ûÞé=z‡]ÚwØRf6ÛJ/nþ6ñæp¯Ëœ üéý£#µ>šžálnºC%jÚK«-¤6Ûˆ¢ <?zÒä@¿ÂÜ4ë¡Q!› \ NDÓ6쓳Ñ*µ¹<'“3¸Kù0:$ò:­Öb¯óôÑ_NOñ ‰òvÓüU«´dÍ n±ßEDØ,†!Š- QMJØÓ…5‚+¡¥@y—õ‰y®¶füRžÇÖ¬FԜڂò"^ÀÚ®“€L€%Mc“•P úJÐ+©v±öFŽýãñ##Ç 5[‚ûz&}ùmò á7 “pnæĪðA ±† .y"÷ U‹&îKü!vø(³¥øÔå©S¦[+Šü¼?fäè0=Öñ¬OßP͉|fÍ’Ûvíû±ïˆ1qî5EîÃæ?úèO¿þVK1 Ëd\8ÛË#ø‡-_Nyt¹¡‡§J¥=ªß·{ß0bÄþ3§‡ ËɵÅö‰fµžC‡%ôëï•üõž~Ãå¤äô ŸnÜh‹_mprž¡Tiaæ¥*]ø CûõÊ*,‹ ð0‰±žñwß®÷ôŒÒVP^ž–ª‡J=ð&JÅ/ž3ÖJ{M¹5âÇm›öìûùwm¶Ãë½Mïîülc™8<ÖÕiý´•%>cB\ŸëÃûºÑ(†7ÿpX¿Ý´É38báàHUî`±÷sß»÷Ç„ñ7…òŽà± =´åëMiQ£î¹cf᧛߿¨Züð[iò¥êžq¼‹:øã?|_(<8{NâöÍ#î[q2‘2„2ÿÂÕFD› RI <".@µí R ÞôF¢)ŽæÕ˜Fd‰@ú#>'Ä#ø“xOƒÈ&,a¹øºTÓ7bãléúE†•©|j>Éá& ™˜ø²âmS†ÜüÀàÉð<Ö×Çö\ÇãªÕÏ9`Å  g° K³N‰{ø7­.žxá•B¤¦?²ðb¾eÀ¼]@£ýTâɯ•Yiר„^ÁÆXXÖøÉ#BÌXÐôùKD~~ÄmdÒl³¸¾ÃêØÑÈ5J¡‘0øøŠçapÅKoJ.d1Cû<)å=8«ô'ŒëBi˜¥Ï½¢rÝÞÑÏ·oÜ|yOã-·ÖR讇WüŸ(Âò†Åá.ôs^ç/­UÉs‚MÂç(Ø rÉCozð¡@ƒ†BhƬY0<âî…Ãñ ²Ÿ7àÙøQÈ%s–>-Š$@úÓŽ Gþ˜>ÿ.t"zÆÒiã"½8«iÂô{{÷ð§ÂîÿTèbi¶£U-Å«ÔY„ˆG0ƒ±.J®ò¾­ISwoóÖ&Ç CI¤?ÊœäÍ<Å+Yfb)!—VE¢“vâ’|¾ƒVÑ€4¢½áÏF{`Å”UÓ¬ZÂ$ „ÂGD3 grs["Ê@‹ Lާ89Aw}:®†QKƒ YÏj­O|”OÃq4øÿ¦ÇÚ!zIJj†ÌP*­j)bXRˆvú–– V‘ c q­*Ɇš‡j–oÏ;0þÔ¢sVyg˜ Êm2߈ÀR~Á'0®-éjrPû~X†•Ü_”BÖ%˜—¼Án^¡eµK«Ú/4­ÆÉ9]/€ 5C5·#¢õnnž•a:¸xšÑèr¡þSöêx%h¢W¼žÜ*3uH²5á)I¢|a†d3s*Nš‚">X|€p´< :Lñ²ÂÁ‘i18¢ƒáЦdæ@ ¡¦ÐRFà)\C !ea6•‰‰NQxyÎ kO’¡l.ÿµ¥[H.TG:)7‰NFdd¼ª„3.ÂŽ$h¶åò!à˜dÖÓÆH62ÉE£°G‹N],“?ÄP.ZKêNƪAXÌ“9$ì‚íÓI„ŠkRG·yƒ˜÷» Ä}-Z¼óºö—é„TZiYBhIgv°ãˆˆ$U¦BJ¨ƒ‰mÛ Ë+,)P¶’?FæÙ5¡™M)¤Ý`ýb|Ä9D‰ð=Ô0NXò͉ÂtÕ°@öÓ(ßUhƒp©F ÌЦ¬€áÁ7oPÚ](‹k¬©%f‹õºÖë$5}Ü :Mó:³ãûL¤x]ëC‚™<æÈÙ$Íi*±ÁS)­ÇKF¬r¤¡± ,i8a®9!ÈŽÖ†Xì*»ZTãà*MlŒvÂFPcK–!÷( ‚ ™c†ê;Vá[üV Ít±kAUPm¯*+7dh5Úë€nE Ç1}t]§wöÄ3‹s"'i<¦¹½%ºŠ:$)LYÁ°™´@1«fIiiŒEÚ€ˆ¤ªBD`6W“‡ÙêC ÀB<’DIyð|ax£D]Ê?üÐ%©\þÚµ–DKº.Åøà½«q×i‡ õññéÆÈõ W¦gçóÇó-ùf¯©ãü º©7àŽküM€¤l2<ñ—*`&u¥v|™‰/œjÎÉoÖC!¼’IÊ&u+ÏFtQEx 4§JMµPD¼–b)†¢ºþv”’S&-X¸f`à•ch^¯v „ Å0Œ¯¯WXPX+÷Ùy°,iFÍqN†aõjmK·Aª¢Õnj];WÐ-‡¥¤²¦¸¦EG<èÌkí8Äȱ5¤¤;Ii Û ¨A²@Hví0,CÒ;(„u&ˆŠu¹Lx¬kœ¼lNí±Û)@¿º3þ`xD™–T¾ÔHDœJ1ÊáN'-Ò°r`“\° 2µ¬Ò‰î…—’²ØaröÚ[?I¾Reô |àÑùþ:Ú¤¥–XW ö»¸ „­É½|ôç§MUµƒÁ¿Wß©7ŽÖ5¨ˆ/üðñG=ï¸7å›mÃï¬3ë Ü`3ðÙò±Ç¤™{é®bµ.qOâ°q“üÝÝÛZL·ð×΢Z¸IJð‘U v©\Hš$F‰-8Ey‰øÆjY½^‰Ë®ú†(ÍhÕ0¦ÓéµP?–H<«Ö»”ªØ8ÒFAyŒ“š>p¢€“ Y¶r tE$ÒØ’U¨êX·ñGxu$Xòë§ëÓÙ%Ë–Ü=eŒ­*ÌI;zìdeÅa1æž9qª¼¬üÔ±ãå¦:KuYQ^ÎÉ“§k­ÎšòÂÇÏ),†M~~Îé'‹+ªsórìï0UW™1¶.//;åÜéŒÜRÞiK>súԙǗå]N={>%+ ~ýqYŪÂÌ#G~¯³s¦ªò’Z›d½¸Ä=ñ¦¿fe>æ†}ss³“N¨²T;zàxr2DmÖ<Î)Xêò`Á¯½´&ñøy³ÍtúÄ/'ÿH±q¶â‚ô½ûs «m¶¼‚œœßŽª±[¤OÞovp9içÏ=™’ŽoÎOƒ›3ÓÍ»…jÉtÙÒÑ.É‹ò7º«Œ^¥™Ik×}=lXä÷ß™5%ò•O÷ õþðÓ˜ú_NWLé™óæ ûǡ䂙ãb²2/|µýàò¥ãžþçÆQqQ…?]ôU_Œ¿sIUâf㤇Œî¼£æ¹¥ ÆOMKúÏšwžÊÈ-8ùó.Û¢çO|±º*ht顽=n)¸tøÙw_}ù™×† éuôråÌQÁêP¯¾ò7ñòðƒÃÍÇèK?4oZß© B÷ÿ’Áy”§¦Œ˜I)IÛ¶òÌœòŠÊ£_oÞ•ã4]:õäËkÖ.\1æYžÁf§µê»Ý{zÖdTÏ}nê˜>.å/ •ó­U ŒÃîJÝ}hýׯ­š¿|ìì^¡æ(•¿J‘nZÉ5¹†ŽCˆLMÕhŠãŽ¥«¿Îò·fÔUU”@Ô1nôm³ozñC7Ý5bÆ­Èb}å‘`Ò–Ô'jèâ93Ÿ9·¦²,ÿ|ò%S­³Ìdb<‚çΞý©xê¢{w½Ÿ[W‘{:+/$<2ÔO3¶• x[ªŸí÷Ôƒ÷àç¼´’ËØûñáäArÍÝÛsìèQ»ÞÝYZ¨ Ð[Ës+zÅ.¼ï>;oÍÖz=8o>÷Û¦Òªõµþ1-˜÷¯ÃÊJòª£ãÜw_“wv Õ5‡D™. à æeôRkÔ"«i)h$Ì‚¢'¥Ô ‚"aÞ^@âeÂ$%-‘  ›U±„!R"â-"%ÀEDœºä â v,qüŸ­ð’ð[¬·e’¶E°\šb:Ü~Ï}Ë֬̿eŒ¥Ê2îæ‘¥'7T}ÁÝ-ÆSK³ ¦Q,Ù#°H?þÜc:v¹“;´>1öÒŠ‚¢*ZíúòtÔ›TÏ¿ºh­»ZÒd®( LYnjQqŽÁa˼˜¥qyäT8­;Î5Þ7C§°€PÌ G«tQq=}}Š–L5 OÑcâú~øö›ÚÊ+ç>âL¾¬ MæÝ?™0:-/9fH˜GpïÐËëþµný‘(„4 Í#º‘mÆ€ „ÓTý¢Ó^ƒ›‡ŽšhÍÜ«ê;mê@R±¶[Ä®è8DŒ@!¬^ˆaIcï&£w×>aj©F– ÈšFŸe„Bø§Ã^ÙSi“÷º|ñ¢›»öåÜç^|òJqµP°–rNï‹ô,š7C¤ÜéLJþðQ“'ÇûEFDÚþ6¨¬Úvß½´›§!a„Ú]Ï<³*J£Qhìýˆg4Æ'—=¦Ö{­zyµÁKÜc NçÆ jw÷Qîžš¹?âî©›»d©»—qõæ·s ÊÁ^ZÊ5ã_}nóÔÁųÏ=¯et“ç.‰É¸,h¼"ÂC¬ƒ—ƒ¶ì½øiH]üÂK¥5ŽˆÐàUqƒ+-Bˆ1ðåÏ?Ê)¨êªz’Ò{©f-âQ± –>ãáî¾tÅj7–^ùî[^^~¯lߘSPÔ#D9C¥•yçÝ‚ZE­èLø´åª–6ÛøqãõÊ`„ÈŠÓ8é à”1 J„ƒi(¢ð~D©ßc0 N2'B̲à æ%Õ%‰ÏÉî´[-V¨DšS Ò öÙù¢ JNûøù€ªÇf0ËæN\HÓXu+1Ìôôô´X}° @Q ,ããíg±™›­‰f.ʵÂb¼Z\¦Ã”’]Ô/:æÚª`aköDfµÕbÑ‹DM®tGM’/¥§Õèôðˆôsk¶ªeTtT+ÿ®233Û¨j)ˆø`ëñ4¯ED˜7reWI7"ý8!ù¥Õ.k–Ʀ¬RŠažÔãfqK²QÖ¨4Hçê·Y‡kxÉ<ض…èy–!{Z¢q±ÌË»VFNHHHCT8¤„Ö&àr óÓ¶¤XC\oCç6AT"”2Ëcò® ºÝf§)01¨ÔhoWÇ!Ì*¨ÌF;TñÄù‰½£‚TžƒÀ1ë‰SPÁÀ½‚@šUËAY"kW€$)å ÀÜ‚OÕ.Ú)¶(…g³@XÂáÜ¿tÛÖ<¨Óéµ´HAIsMšríñøN£’ <§­ŠVu½ÐHåíÎ\2Q§Š]Zw½Ð-v§Þà¦r×¢Žvj;j‚y9‚ÈQDq"I Éî#°lå¬K#*…y@HÇÞ‘(sßàY²ÿÄ#Ê¡°ˆÂåDN§¨vÒN'x’°Iì$àlì…©@ñârïŒìéøœÀƒÚî\Zá0´è‹ëz¡)f„/ëcµqxQ×Iº!7_µ—®ãÉ¥m{€߀¦D„Ö\ËL=ó¤0ü8„¹¬$pOŒRÐx€1ÁƒvHÙ¸Â<(Òb#ŠÉ¥‘d$óˆ‡+˜ .ˆX‘Uép2—ÅlP ŒËàlŸ,¹  6áuD=r<&- U'ã„Ôm–J3•®„‡Ží­c¯º¥ë;)e,¶"š I©^0È FV¤¸hº€(Ö®qßã ?™³¥ºÓH”¦EÀƒGh‘DQÑQA-@(øä4&ÂÚÜ?`Ê6ªSLÓ›ZІm‚I’ÝÒ-íî8Ô62%…©¤&+0¥Ê"’sˆ@·Ám‚ÒÔ$ ™A›òˆ)‘äabæü¥ÂQ ”é°áÀ§¼Y4¬F« ³ º ~\¾AE|Ö†:Í”åIa„W2øJYYiRÒlüwËuj[zjüxÝè:®jP’pˆ“‚ˆý©dKSWoãh"f´J-ÙU¨=ô $¸öœ*Î5@À‰'aÆi†Æ|?›"1YÁ¨ãÄŒàCxÝUËAÄ¥-ñ„jb–wbÁ¥ÖgÃÆùÿP(šŽéí}ý²Àº³À »¬ãÒ€A •LhÉ”•Õ¿–¡¨Œ·”×ßF¸Õ[ŽˆI±æUhNÌOxÀ'ɨXFË€þtr¸«ïäIvP$—Ô¦\w‹w•¯–ë¯w¢YÒ: ’l lv[K©Ì[E´š¤õØí6X5um›R\@>¾ÍÆ3ë¬Õf«ÃÝÃàÖ\ÚWëYcv‡aXH cYŽÑ¶œ\f§qZ™î¯Ï4›Í]ÚqˆÜ‡IÄVïEÍ’{ZΩÅLpÒ~}‚|Jín)tai_3 F)†e .ÔOoOoooƒ§A箃³‡‡Ã`TKIÒ„ºÐy’söÀÛnÚ´yKNkmpøýñ‚ãW?l鎃»·]¸RD®¿ÜôV‰ïÇ=_·wÏ*êÌòˆÍY·áWÖ¾ýIiS´ÚMìzoÃ{[w~•_]e®«¬¬«mVìܰ1­ÌôÙúó«­åÕe§­ÙÛ~üø£³…0C+ÒÍsï@Ç¡&ð\þSÀÅtÔ¥³€MIŒ1Ò©RVËí¢7‰Äa+=‚·šW$*C,dQ-‚ª!”ùzÔ%Ž#m&%)GÔ‘Ó&÷õÒ³B^^neq‰W@xUÉψ`/ýùä­»oß¾á>-R‰5&ɼ8GJòy3Ç&$ÄŠ–гə—RËô½Åڲܳ‹Ò.UMàùÜìœÚ겈>±)g’¼ÃzGù¤ž?[G鈫.ÌLÍÌï?d¸‡ÊVdS‡ûº·32xà¶)—³RÍÕåµtæÐñ¬gßšëËØ:¦ñ މúí§­ÇJôwŽŸ`Î9óéÇ;‡ú”ï©ñ_ñÐÕ¥À»/‹ì; ål’ÚÛ'ÒjÍç9ÁbÉwZª_xíÕÛïŸ76¡÷…ÓÇhcX\ïÈŠ‚¬ó—òzÇÆÛ¬ùy™¿åJèoÐ`ÍYQ–“t.5 ¬_L„÷¹S'œZ¯„±µeùU5Õ¥U|@C^Iõ „xO­þ¯̶uf»|³¸r AV€íBE¨o=“НMǬ<Þ.²¾ dcª9G*“9ëØxb’šÕÊmyž§I’JgÁ‰©çÎSáÐ]çåÖ$ uâ—OFŽÍ.Kz|ñm¥5¿~¸å±×^ÙÿËo£F–r8,YÅgö}_c{"ãçOÙ>CÓ“ÒÞVóúêúM¼éò¹Q°½øä„‹NH,Ò–íÜûÐÌÉï~¼ï®·ð\íÛ/½Õs츈X‡†+Í)ÃÈlM]'&õ¾vÕÿ‘3.îúõ-/ZMuå•;¾ü¨Ø7ZÈú6sü´ô 4¨§íÜ¡=…U¬¦<3õr^m±Ö>·dΰžüéçRŸH:÷»ÌI(ó:mÕWò«ªM¿~öAbµ{ÅùÍËÖ¬zké?&̾'Àj±›K÷í9àWtѱ䓇ô²Z‹^|dyô­·1ÆÐ½?ùÝæjMOJ½-°äÛïJ “k ƒ<œ©öEknýA&Ùþt´{‚"0…É•ËÑÑŠ Ts£rX,+‘õ:Î FR #B¸Å£«”z¤x\àò©Ü WÒº' …¢cúô‰ôW æ°~#fÏœ\Z£¹ÿ¡›ÞX·«¤0÷|jn­Édvp‚ÍÞ`R]œ””l2 ÅÅy™½zÆtƒ%«+)÷ ¾súÔÜ3¿Ã:=zzø®;–?:[åCù¸x†ÆÄÙ›xzðСoýÝcqÃoØ{|`[Æ &K‰ºÀ>ÍŸûÒ¯ûñ}F%ô~~{ù£¯)8Nï>}ÔÙ?#éÄ´ywüE®¿ŸO°[ßkr°Qï9øï3¦>óäÁÅ?_~fçé©ò¶UíáÞ?|ìÈá›ÿ±©Üìk¯-»bë—0wæL;o9ïî7÷Þ¹Eß½SQcÆ06—_ñò]3óo~å'ÿ¼÷…e^'^Øvê6Ýý̳ß®ŠžÆdï3™;Ðó¯ÚqˆðfEE絡›¾Ô”ì}‘½D˜$òC&¡"€ƒþp(#Y†%ÇJ`Fê\çø©c„+†¸øþ,C“šä¤Aþå3Ž:³ÆêHKÍoÔvº¦(#7/3Ðnͺ\ é믾qò%#næJ2×¾öÞ#ù³0AËÞž0bo¶="ÖÛa*ÓzyT']©±Ö™êêŒÈžQV;$÷ü‰›‡F¶ù•ps%œÇ’–0ˆÑ ëÕãýuk¹Â+g<š–æî¯Ý²ã‡Ú*g€1:²_ø¿7n¾=~¹š¦(†½!¦çûo½¡*É0{iñ‘³²A¬¨Üµ÷Фaòö¦õl éëuáßÿXûöÈ “)l­À ÷Z}kÝ 7ÞýPœ¹|í[ï 4~Òˆ¡ï¯}ÍÛR0zÒB*w'CQþc)É-Ñù vjz7ձ𼠄ø‘ˆ°ç¦ƒÒ€Ç‡DFHQ<9@¡KùZIør•agiÉúí,9_í­¯¬¬(KOϘûÐ=¬»þáSh½öáÇf굨wQ©Û‚9jçãV©iíªgV’§ÂÜôâ³½Y­ÇÑF¯Û‹Š« Ïñ4zÄ¿ùrI…}á¼û¼Ý=ž^¹!züüÇ¢ór9Jèç=éVý­3¼¡ŸçäÉ ‘VXµhn¤[‡ä¢'V»{¸/[ù¼ž¥ŸyA¯y~õS,b¦=üä œlJïÓ#Ø×³:óp^À­wŒa)12*FG ¯ñt3<ûìj-ã6eѲ³‘Î;,$ÀÒ¥ÆÝ3ìñgôý²W_¯¨ãÃ' Î09èðÀ°—·nÈ/®D°O3zCÜü%*Vo›ïæé³|ûPJÎèà6,ÃI{ô ±×FP:O1ä!•Z¯ê;CTk»u¦\Õ²]Y`vNPãF=4˰²ÞkÉ|%äQ…$€Ë}H}Š`N'øKuîœÙˆÈ¶´ …Ut¢Éu35-V ¬ ¸yé`Xqq18í4…|ý|›½G¯Ñ³êÿ5W®ÆTçvfYuÙ™iÙùÑqÑ‘z¦›ŸÐ Q“Ìḭ̀гð’Î&õŠn1¹¼¨ (++«õ,0‚`‘¦1ÛÎÅX6….ˆìþ!:¯ñuûÓP)rVX äZÎÖ¶Úg u~ æ€À›GùZ3ĨëÃüª5׿ÑíÍóðñKðñƒ‹ŠÊÒŠn`u†ƒ²Àº¬ãò|jê,m'œ×(dz,+ïn›vËl·m’_B7÷'‡µ%6cyRsƒêŠÝÀ¾õLQÌþýŸ‹'æ®ãÆ­[ ‘†.í8DÉ!„HÁ@³Ò,5†S3NW¡a'[Ø0U›¼Þ¶u)’/ZëÏ)òøJƒ³·»Ä÷ G+jžFøçžŒÕ´Gåõ—î2#ï8ÔÆK0#•‡ ÆÈ¹iüî©¿É”wz$aš¬#³-im§ò¡„/µºkX«'‚~+üUBfì–n錎CMƒZ"M£Ö z2•kA1üÈ>°%./É ëÄ€!œ,ÝuY<$Ñ»•pÓ­»º¥«ö™H…}6œÀÓò=­–áiá €Àvd¾t„c—²>Ç –Ò²(„¤ÁÎNfá¢Ö–x]¤´´ôLRË^7/kwî%ÅPÆOhE+^SÇ!Ex¤bQT꯷G.»€Iº Í´Âþ׺_‹ †q¿ZFn#ÝÉBúy¶±Z\âäzÍÐ1}zw÷»ŽD‚‚‚ֵTëñÌv"S µ¸:\WD’K ÒöO{7œ‚R‡ãxØaÒˆé¢ÄH@¾Ô·:9…íÆEQ°;-å‚96Z­¡]^4¸VktÔ5eùtzUK‹£ÎÉ ž:ÿöÁZK5|µÎÊ ³9-§,-£m3g¼´•„5Ša¡ÍY§Ç3!jÕ1PSIµbͪ(ÔØ ¤Ú‹L)z)â’<¢Úi¦^s0W¤Æt<„ºh:3çüá oÝüÙŽ‚ k³;gHÒƒuÈ#κʷ×ÖÒœ»wlÌ,7oݰ¶²3òÕ²³Î?÷Ò+©¥•p|òÇåO­xõƒ/ÌNË‘ƒÿYùôë·Sg¯ù|Ëú¿¯|fߥl‡³º2Ï%þkݺõï®?—׸}PÙÅÓÿÞy°ËØýùe5mÞ–—vìµ·ß|sÝ+IyEx1-o)ٰ黨Œ¤üáŸëÞ^ÿáú´¢rY|»aãÅs3Àæ,[6¼v2·ÔÕælÓ±+Õ•5eµöY»¦šÂß|aéòå/¾üf¡¹®º2÷Ý äÔk$‘tè›e+ž|뛽°f8ÎÞµçøEùÓŽujo~&ºÚä¼: žƒÆÞüö:fÿ[ϼÀ¹6´¨‹vÿOÛ•5unñ¬dƒ„€Ȧ´%((PEElµÖe袕ÚZZ«k«¶µB©¯¢h‹+"®h­O[í¨íSŸ¶( ‹Ä°%„Åì!ûB–›Ü,7É»Y¦q£ÓîÜ?¾™ûÍùî÷åœüÎ9ß=ß^ xóp~Úœ(ïöÝtè!³Í8-)í¹Q# @óøÈîý|®üYjMÆ»ýéÒgÁ íÏxå{ÊF01^>X¥'š?Âíu K‚ p…γò펎H¤"ˆè4«¾ hŧü$hc^ºÎ° ìë#J«0èuÐzøËïlcÖнþöùv¯ðÔ¾*™Z+èz]¦½e‡¬&½˜+sÙu»w–°%ÊK5ÇØƒ‚Çk»Zéç®7€Ýë±ì/¯ÖŒZüu,õ ‰ã\IIiÏO‹ ¶çÒ(¥Ÿ|a¡F#RA÷[UõõCþ”TÚó´ôpƒ Ý'ÑÏédp†Ð[yéæ]ýßnÚö µ£æp-ˆ@tv°‡z++J•j­Ùräë:;¸ç‹ MCÊߎTÞnîìðÔ¹Æp£¶ŠÕ5|¬â X« LͰ£ìJÜ[yúZ×gvž¿#âµï?ø/ƒbàÀžZ%}Ü+rÐhq÷ª¾Ù&`\;{¥I¥RÁÆy¨üø`gó‰‹wäÅ`{b¿Î(Iø`bt´X¡iº~ún³0Àqf=Vþƒ@­;¿ï{®4ôŸØpåò‡GÏ*þóoƒ#ÀÚïÌò»ÍÖ×t§ö—z%¿õPÕÀíø+áÈÄ6¿7%:6-= rМ²]%®ý1êƒØ8 ä†0€Y<¢®>yáío¾#!Æ¼ÞøŒCãÝòÆgwO}ã ™ïé™l‰ •˜L(›«×çh7kzbì26C(ÐZ hAqñÂ, 9cÎŠ× ¼>:)=Ц7öøÔdZÒÂÜ9 A/›§¶YŒ¶1³7ëd:Ì—V+UàÈo®š»(Ím•[ã_XùÖ뙳àQâÒl(XÂô+¥†XJllZ-ºS϶C¸‚å [ï5«ÍÔÄÌüô¤§Çf‰ÞVì.Ũºx{äÔÔmå%Êþfès9!/“c`¥é-#s~ö Ø£Š¥Íݺ~MJ֜͟~AĹ!ÄÜůoÜXìµ ó{º¸R»Õbuy)Ór¶½·š¯•¬ù裕+–8´Ò×@:µ\‰!¯)\•·8ÝmVuK$B¹+5*éC¿ÿÁÇñd_ìì¼Â·×8 ™„‚ŒÝT"Ž#ÔÎÌHa ®]÷þÊwWuõ· ÷²Åf³É0,§Í_üNÑÑ“ O(€Ù ½²eÛÊ—Èl6Ç µF?{&%ŠPXøN欨ÇG×îÐ]ihÖöû’[­~Ÿ#¦LOž³`¡V#ËYºbMÑZ©Š/ÉXÃ0XB(ªõ1#RÅÐ`/`êhldéö·ëÿ¸å†XHÝË׳î2w'öLƒ'ÉÞC'¨±D·Oßô÷…˜­žˆT'*üƒüh(›¸Q|Þ d"srós³¢%üåü¹ÅÜt<¨‹Œ4÷ŽÀä3nÑ™>~ ™€±¹xýª¿„è僵ˆà° …f¬Mw¤²º³UÿÞz@Üstÿñ–Ný?µ`è0⛳f³ ˆÄT²M¯$D‘uÝrÐ ˜€ì¶JFAš˜Ókž¼4ûÿç —ÙÊl:(ÉeŇ•ÓÅA†GMMÍH ûýÇs—\¸”—/ë:|²JÆŠš½ˆBÀYΣfŒ²'wÑrl€eEF!üDªÝ7ꎫº£ÓhÚÇlHÂn¯‹òç—gdŸ®ØÓ>{þô$@¥–‘ì6¡À€±k÷Uî~08ݦ×ââÈ1QÑIT„KŽO¦i.œ8jä’ÂgP‰Ø ªÄ§eo\ž¶k×Þâ‚ÜÚ#£]ª—_ÚÐÓRƒ¡ÒœI¿yUÙ6YaŒwÕá¿~w‰ŸHÛ‡ÈÍyI^ê0ç¶P"šêq‰¸ƒ42MŒJ#@'kŽÊxƯޙ è¬K[±³ì“¥šåS+.Þ,L󛉺}õfÑK™w/ÿ*oE¥¿°PÑqã¼>¹då<Ç?xmé?¿\¶ÀarÅìE[+ Ѳ’}Œvnêd<¯7šàà‘õJîôìËWNJº·ºÿgZƒqõçÚSj ýL=}¬ÒûgÿÀî<Éj‚èCaÉ.+È„B…è&&+ëbƒÛ¹½¦pˆsï*E"wìýFo'ÇŇ!ݯP ×ÅO!“¶U0¾IËö+µ&rñF$.bÁÌσrfäîš–‡Ç=>l8q±VoÛöù& •|¶¶Ê`öoÙI%}µ}+‰-Øöe¶B郹ð(„ˆI«×M‚ËV­Ì{cURRš”;yÜü{\2í@íXù(xbù…3¢õê5k¢"w8 Qh§$Á†/ÛU¦6Ú¦N›F ¤:iË?®Î1à rTLVÙŽ0¹|ÇV.¼ì»OIÌñ3ì{\Br˜Qé">ÛìÁRÍÚ‹Ç^ùxû 2™CIˆ OIËÇãInøe™Zk¥”n‰Œ¢d^:)U¨)1ñ”yY^\sàp…fÔ1%)‰ÈW§ä­^ïÅÀŽy‘5#_ìD‘R’âíKž3˜Ÿ|„"R'ÍŸ?Çãƒ×›àVµcÍ!'$ó­6n$f.©ªL ÃG8*µO¢dì©É•á›âb£Ép‡É3 vå¢IáÄìeÕ»çq(4ŒØR6WoNLHØ75Ýd÷%&'ŽòêÐ&¿pØðÒóV^©}Q¥·É1‘d,,“Œ'®(Úžç)óÌœy1Éàúç¦EàÂý <¹K?›éÕéû쨦»É`è`w4òøq ‡½ ì7H(»Yl«<ü׋ Ôã—5ºÀ/°ÿþ?ÎŽVù§ü§¿ý»¿½Ø¶Ð‹~z 7qÎÆì9(’KŽ˜ä‰·É}âä>`ÆóËÓÅd=‘dÆ3è=™G¨(>òÉ ììð[çßÿï¿®øðÿó/÷x¡³‚ãÐ-IœVif5MæÄœ€\_ _3,G·¦Ó:;Ì~t±òNE?¨ú§wí~ðq ~÷ËïÖõ5éè^ý‰×¥’ùh'&Gó|‰©ÜfÁµœûÓ©E‹êº3çé½8Åo©Œ~P.–åDFß¿å´N]÷n/Ý!ڲရ•Ùc)»°ƒ;G@¬É¥y—ТX‡Ápꘪ‡0éé¦õ‚2#¢èÓK /ì%¯o•]-™ÍIµuõà‘ž^l²éVÖƒÁ;¨¢PYp$¿ër9$Ï7pœï%ŽñgÅ@°ª©3‰ddäEe ´hÁ`°†ã‰$Zà¡@¼¸q’²ŒŒÍ´éuyrFÉ<“þ9|O'ûów€(¥¬ªÌd?Æü1"PU¬Ç`¸'hß#§yEdC[D,ž|¢’Lð|Ž—èÈ#-ÁÈü¶ÃtDV ˜ŒôÃ<ƒá8„3\U„*(fŽ$A5êÁLgž^Ç ÚOA!—jâyNÕ›ðô%ˆ¹;55•u](`–ç—¬rT¤¾p¬^ö3ÌÚ*U’p2(€* òVe  ¸aj Å} †ãÐEe@Àðm‰èéërâùH˜˜èÓ+2^*P.œ¸œ{ldQ[E*f&¼?Npƒ;H H’áÁ$×`Wô…‘qÿTKªP ɽ &DñDž”VTú(d@.,Y_ÆUž(*jª:•b*$*ñØä-Fß{FfxäõõIª†wa0&A/"`¿·LXéš‘Óuyj Adœ(åQtô\#K2÷±7à^@ÄÔ$_ê&“厥, BôæÉ ðJ9K1Cg0XÓqðäTTT‹{“@X”þþr"¹H_Uƒqjùz¶èX½‘Ѳ „䲎UÑE‘h‰!\‚z—'ÉþÁ?- Sh>ç÷Üà2Ú¿ó`ðŽC™$ *H“…åÇ™ù½å"gëòxE— ÷Ën‚éîB±ÉL„'Ž!d‘«*(Š$2ËÓ—›`) ž ¡‚¤Q9×××UUƒa}Ãq¨C~«N\~ç‚Pð|ú‡ç6œý‚É.ÑáS™&›I’?Ì#¢,Âë¿EÞÓÀHÒS–ûü~R­ÎÛˆ„à*3{‡)dƒ±Ïì$=¸DUÁ¾ÈLfOþfßdfÆ^Æ8:Éì\V"3 ‚Œ,ZLË"Ë–8ðÌÀN1ŽIì¥èAáÁÇš Èí\·Û™L\‰ÀÔÞ[–ƒ3“41Hkîf†DC0aê{ÒÌT àqšçL¼œÈýDF¶Ú˜TS3Ç wà„à‚í)^n3WB@`f¸‚ÁÀÔ6¶¹/fvÝÐTtχéBï™ÕbŒK§”ç«g¹„ßD #ª×be*õƒHœ¸ !:C¤·êÍ+o™¢Ð[O2£èþ˜Ùû&Upä=k_§ Ú^R>]\g*o‰Èh¤Š˜‰&áIÀ×ð©0‚µÍ­zÞ¢ùb×úŽ *·ÖÍž'ɰDáHr:nc’‰à‰";=\¾Ê&‰´h¹¸!&+;DÄ@ˆÎÃZ£¸×ºÝ¦§@z¥ !x£×$3o‹™AŠZDËÌ2DAyY¯ÃgLÌ´²_0›Ç–^hé <¼¶Z¬˜ME5„¯­U6çÚ¶ÛêLCÁ•ä ›ÌÁ@å‡ý™ª7)“&‘Æ$x0(Û±¢r'Oµ›…‚d°ªL™±8a¦ˆnJ ŠgŽ—Ä·G4ì1@]¿]Oýã‘/:A›û¼ýÚ|†–rÃ.s]eÆLƒËˆ(‘nªJ=™ËQÑ j<¼î$‚áIA%é;"Ml žy&Ûú˜×=]½‡¿"0ŸÖJæ“,½:Óõ²$rýؾÁ@¡÷;u‚ ÂÔ˜{Ï…žl-‰öŒùb¬s ‘žîM Ëô-Ï‹$¼ùW1áÜÚ¼ÝbÃÕÖ¸7 Ô y½ãPÁešàâ-«RËTι5ˆÉ )òLÖ„/þ<—‹æ­E›lSÊ@°Ä:¨˜ çíÓ+zCÆW ¦¸šÁ@ ·Ì›½Œn s"I,$ƒ„Ⱦ“$* 1d§æýðL^ìC.éÙÜRÊTTk4 °*¯Õk‚¦¸Íæï8>¼§ã=Iy¾öRŠ/5z:A^œ…tgž«–µɈ@"2j­$§2A4 "±&Ô6Ýnkn7xÔƒƒ1•kð‘Þ3ŠË0à˜©g‚/óH ú äméφI¯^MUÍD¤eˆ5©Që¼uo S¹¥Ÿ‹Øz›ÌÁ à*Ø3Ç‘ÐÃÏ9›Œ] ™$=½6_Æ®«>¬ˆ‚ló¼Ýn(n¢è ÞÁXÍvR¾?]B ŸtÐ %Ø_ó´7Ì0Õ–Î`™®¦Å À``MTŠÇ¼ýZ[m@šL¸ –d9«ÙÛc¦›ÑS™ÜûöIˆÉÓ.ûæó¸yZ€Dfz6¢dwo­›ÊT‚’t¬¿ÃLÏÖæH(6謵É ÞéÒw ñ ãôín²—œž¨ò9_Wàü[ÀÌH$tS S²bu̹nçyΔÅÜ\ý3(TE߬Òà°ð­EF2’º4DF7uÅ™åëáýþ/GÂ#Zm‹#ÃdFA«CV¯Ûí¶FÝàAñŠ;Œê¼+ òp¯˜K<<ÔV°¡=؃§øðå)5Ê¡\™É®L÷pS›¦)¡¤c}HÖ'|¿ì7ÜŠ©½oúg0‡òÜHõ`j±#YL¾Å¿³éŸ…ãTPd öI]o ²)P#@¬ -æy›IEn…P»Y–ƒA2ƒqoX‡=y#*pxÔRÁ.àžþ¹ÔÌ<½y‹1)#«£$ç¹ÎÛª‰àlÊ72¨hÑrØË•ßo2ù£ÙzB™È}}l­UT6ÓJ¢â=°Ì:Ï[¯®¢*€¼²ü72$ït:†‡Ýà‚„$if¢Òß#§¿“Š’ŒdóêÍœ6¢ $Þ…e W­5àª^@L «3ŽC—é}*ŒÜÁHÐ'-"r>»7'{(Á`2¢eªùk0\ú.Ï…ÉdŠˆêü$# ’ž¾‰2•,н úÞ* —ÞØc`p»­un½3`ŠÊ;û †Kßeº65Úd{a“HÒTö‚$ˆ ÈŒ{]Á²Ž…q$Ë[$Ú96¨Ï—HQë6Ü'* îa*“PðÓ0û̾ U-‘ ì[üD$Ó0-ïñŒ¢J"é$kTFÖZALSQð¾°“è( 8»0|Þ`V’t~êôÏ`8ÝŠAq—Z¶M"è‚ááL¸;:+Ö¥u7×<ЉísÑ@`èüÔ-&ƒá8t#? wü>5™ F„· OJQx7˜lϳel´à^t^Å` z‡ãÐe ¨izž´-I&b?Ý'Z„;S™TÄ{ÛÅCÅS¼–Á ó®ºÙˈq'!ýIÁXî3î›+âý”)X|„ê¼E`RÁݘà£×d•˜y|Ü ƒè>A÷æ$u‡)H¼'‘lmŽòFvzVÅ`8]& ª©–fÖw± Qkm-Ôd*“ª"ñ®þ/kD¾‰¢½¹n}c¦Á«0±`Á&MT„Ú"ŒŒ$<|G26ö`fH¼3ͳnkó€o¨ˆ ˆ`0bfzt'—_ŠôRä¦Ñ@¨™Ù²hÍ™435{ÿ¢™dÎmÞÖ*Ã[ r,ƒnëx«ãP//WtZ€Äå0KHÝï3‰ôLw™¦IExWYç¯énogؾ)›;Ó?ƒÁkçÍ€ %è ÚU«ª)éáªê™A2#"#k«¾Ù<šˆ÷†˜Ý}ö7nøTÜÉ`p½KŸ+7²×„¿ÀŽ7¬|fësõš‘Õ+ÅJ™ ‚w†Dló¶F%‰·ã=Ó?ƒAÁ-´Ó—ç§LŠ€dmÕ=ŠY™6J@‰ T Šµ ¦·m]³ÀÞò$êc§r †ãÐeqª@¤ÉH_,nÃÌRŠj_[&l*k‘‘ÛmÍtU¼}ˆà£ Ç¡ËD¢TTEÁ`ÒÔLÌ´G+&*öL„ö/Š7„dks+ò·…ÅÊÇÆÌÁpºŒJ¨,*uSCJf¶ˆ‡iÚl–¹[ Ñ$:P L†·‚D‹ØÎ3<¡+lÜïc0È ŽC‡$!É&LTEYÊÖàß¡üöòÍÂf0j›#ÄÛ"ûgÿ ïpº@O !x4@&+¶C÷²t‚Ã}J©³±;fóy;g$ 7nÞùùcæ`Tç%P! `@$SD`º)û͘'"¯½ L¡þ•ƒæP}á\fHfg¯m<ªþ|5ƒá8„ @ìÝ( ÑïÆuÙeùHD" á Ó®ÌL4Ác" L€(’l^[­ Bq‰ßˆ‰í`8€ß$Ê~›`23'+jZY-ñj‚¾\tG—úþãçå‚HƒÕÛ<Ïá®ÕV‡ŸŒÁpŠo+˹˒ûŸØ‘íazÜL" ­ ž¿#dº·VÑæo)f†ãPO©ö‰®ðC«ÚnÉ4ÝX™T¥—õ½(P3ë¶zóý-ü¤›ÌÁ 2î™Ð•G5³<)Ë–mÒiÚL¦ºÈ²%Þ j°ÖÚjc@ k°±Í›$fƒ¢åŽ©– èým$Z†@ÊT&+"’€'ÞåÜj«sfr½¸¦øà˜9ŽC$ÜQÀ‘D$[V@&›–šµH4âQAÛ<×Úä¨Êï·Õb2ŽC¤·­+]Llå ßN[T€“•i3©X¿oP À)Ÿ=Á[cÂ9[+#!X ˆ >œÁpb¹OɆF/w]¤I‚ûXJH '½Kô‹C•Z_+Cp/ôŒy®ÞbÕÝ!Šf0‡"ÖÂÁQë»7H‚`&!b&$ÇmØrœÁp‘ã-:•éññQEÎ`dÔmõêÍ##ð  å PÈÌÜ«q‰‰PàôÒ7€8r“·ÃÒõ`ÛZ«-ý|âGúò®žL3ÃÇ3ŽCD‹vÍ|þò¿ìKèœÛ\[e0=3¹—ंD@¿Ý^„šÝÚ¯GÔN3•ˆæmnm~‡Qw*?IõÏ`8É-ÇwÅ 6Ÿ6 ‚‘‘­µ:׿ ޽L5²¥‰€|S¦˜Ê¾Ý[8¿G5A‹ç&LS’éu„ýB\\™‰>žÁp"‚qOɹ¨<>#’9·Ù=¼y¸G„@ ‚gT’ "€î·¨€™B ²ìT»D£:æ¹Fõ ëXí¸/heæ âüi¬2Ã=AÞ2ç!"VìóôY ‰ÜAgmu®•³ÏIT‘¢ŠE=®ßþ^lùOUÉl;æ ØÕþÓÚ7œû}kôû¸°îÿ`Ãq(ë5qiÑOÓ§ÇÏ M¦»‡Ç\çÖš· ï×´{ '1É`Ý6z‚¯õŠW@®­t‘Œ™ƒ3ß¿KX דÍfóøé1‘­¶V[x0™I P$ZkÕ·A1s0ô6•v¡Ú¡>íåBWåã«Ãq¨Còý XbjÅÊÃæA¡DDóç×ܪ×ôô €öy^IÕìûÉÛTè§šÔþü?ÿ¼Û-ãí ~ÿûß¿~Þ¬ˆ|xÄ!*›gø Ifd´ØÎÛÚj«·LÉ gAÍR€Þ|jrœ³ýÃþðÇÿòÇ/_¾Ä kÇÌõá~ÜëSD}|01æ:o·Ûç|Ðì3’ 0’ dÒ`‘K²÷¨öà „²‹Þ|Á`Pþÿòiq:3۴Qc[·s{zyóL$©`€0AWé¡jZJI&ÞŸÁ`ýÕìúʦü²ùåwò;QiÑj­íùµ}RÑW„S5ì©ßÔ‚K<ÝÎÛháŒ'%S’N(N›éMþëŽí¯$±>»ìÀ—Ï_6›ùöl­=}©yK+#OŸvu楼2ôÿØ»öئ®;|ï9÷áûplÇNbì$&$Žó~›hK¨LB1Zµ›VíÅ6Ueü3µ‚Mj§1‰!¦¶¢í4`¶BWU…µ¥Ì-B¯µ·©±©º¦š¡™o1K (€äQÎË'Ï-Q*ÅÄHšÄ—ýYvÌFFF:Ú:JËK5jÍ·°Ç"aH&Täе´´„¡¼¼<à ³´öY-Õžã1üÑù©>¿¯±¡yz½>‘r,¨£]ĺºº(g2wçõú[êýie:úòÙOÓ«65SU{gkó§vðÜ–ò‡z0ƒÞàóú:;;‹ŠŠ/Ô‰ÜàhQ% ì"° /´··›L&¹\‰EfRQz®4¼ö"Àã–-;êÊM¾?ó÷·\ãTJ^õæu…_?í“GŽoع+U-›•*B³ÙÜÔÔ¤ÑhRRR¦t0ìîê²XÖP5cW#Ýï¿{Ê¢²Ë*v|§ÎƱ Œbå>[×íq¶Â”ùPFñTIIIC×j]/¤£D"o°ÏÚWP\0Õæ6Ÿæyo6@s–ºÕð%žS“. µ\mÓå’‚7¦Â>ÏïèmëP~¹E-§çïª1•ZÕÑÚ^TX´ô'€,ÃqÇ! ‚}³´X…\ö·_?úÌËû2Udg"ãþ¯¾jåT†‚|@&!ŠMç®lÛ³ûÍß©2ïï鸑l0®6ꃷ»{ÌeÞ°/* Öžžtc6 ñ¯³ P(ú´iZ$­÷s €çå€3,Fƒ‡_9\ù½Ÿ>S¦÷ûp!Ú~¥1L«KŠÌãn»×7f™(.Î>vøÐеO?¶:‰£ÅИËíóY{íÅ rFh5õ‡+‡QÄó´ìüLfÆ® Y–³ ÚrssZ3ÑîMC@uÂHDê’s¹]Rs×ü¡‰ œµÉš­v}`ô/4éÃg›wn4E"1kógþվѬþèBÛ¾=/|®„“"Qé£#Q)(\úµŒe¸]ndERþí½Ý`eéj­é#ˆG:ˆ¯4{ZN¹¾ÿRµQƒ ñˆúä£ ìª\Ÿ£ÏéþðóÏ>»íè_OÕ¬«õxÆ&B‘ÆŸèrFwÿ@›f™â] 1óßß×/Õ̦qkxxX«Õ¢,I„‰qWA»;YUU”IB Pª?ç+¡#öEsëˆ>xþ“A…~Â>âÚå´ÓnÏP¼ï?c©µlßï?è\Ÿ š®E-ÉWÙ;3œŸß„¥‘«Œ&§;?nxiïÏ’(|J E íÅÀjµÚaw³‰âäy¦$pîcâ,#¥˜ð.æp,I”WV›¸Á–V F¯ ô*Þ N# ÝŽ‹µO=ýÝ Ù_üü½#Ä…+“Ž%!ŒŒ¢ÿH;\Æ’o !)’¡‰$L÷td %D‚"AŒÝlúçÅÁ;ƒÂO~¸Õ+ó\¶:jM:Qpk_æÝ·Û®¯è½e Ã#ClzõÖ­›q‰²îwÞnÚsøËP3& r P…Óôæ² þ³ƒ^O¥Ünª¸º8ùÄñc¾ž{wI1’qøÒùKãqÖÑÓòxxDLY¯ÿÇŸŽØóßYÝC;Þ<özÖ¯öåhùé–‰lQ%#îQ7Ës3~¼c^uŠúÞ®¦æ<цm–•¯½z°2_±úU•ï½õ†"êzrýóŒí#Še0‚$ˉع³—¶æ$dd$ÁAš! 2Êä´?¿÷·¤`gåöõ[Jªê1U†JÆÐ2 L†h_dŒœ€ž~ Ê&G<´fRJäg²lCCE%Ť¡N9 P±ãÅR‚C›{îåý''L{Ö8Gp’IVò«ã¸ãâéâ­[¶×™´é+èÄyZñ.pQêì¹ÖÑ¡O×£“#ÁR×Ìeètº®Î.LÀäIr.<  óËß¼j·ÛãT¥¦ò4@~&É$¥jTøÝ8ó×GN'â\’’ÑO€¥^ YÅ– ÷hP•šRgþÃñù“ÄÐÄôÀ—JÓJÌÚ‡l&sÏ{11Ëh¬ÿâraa!˲‡îU"¶ÿho­Ý1>SiÒ’2cÝP°:&:¾§yÌøã8 Á¦™N¬µŒ †€6Ú¢eDT!ÆPÆrPeÉ]¥yçge®„x­¤‹¡d!„,ˉÈ9§FƒØÝ^¢CÊÈ{_U©˜5ÆQîsî7—ÎÊϵ÷†5"Ê8³bÁ|ÁŸ¬KK ›Û›Ýø€t?©0ÆX²Déw|æ}ðq¾„!p]Si:ˆ!&eô…÷¹§,eNØÚÞêz«êBâ°Ì(+B(Ú57BˆT¦€Lo»×˜Ò¦÷),ZDÃÀ#Õëlí몪Ú1?U7Ünn„ævdŸZg3Ê  Aì~|£nHÑl¦eš$·m’›zÝr… ÛL˶º@5ÆüuóÜüÈ<ÙIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtwizard-macpage.png0000644000076500000240000005506712536324517022715 0ustar philstaff00000000000000‰PNG  IHDR‡ËL6šCPLTE2HYp€r²$VMKUb•<€\ˆ k¤p86‚Ù$%"'KF/4{/r\0003ŒÇ9=€±>ÈApH<ˆHLHH|˜L-L•ÐOONPA4PTPPe*S‚¼W5W‚FXLPX\XY›ŸZX=Z´+````d``”èggghhhŒ'iildj]Vl“²pppp€p‡—qsrr«Éxxxxx|x €€€€€„€€ÀÒ€Ìè…ªŽ‡W&‡ÏiˆCˆ|@ˆŒˆ‰´m‰ÀáŒ;¢²½¡Ê钼ؒB˜——˜œ˜˜ ˜˜  ˜Ë/š×tœÀàf*žO"ž„u ™Ÿ   ¢¦{¤¾Ë¦¨®¦ÇÙ§´Ä§×⨘˜¨¨¨¨¬¨°°°°´°°ÄذÐà°Ðè±àÚµŽ{¶„·´c¸¬ª¸´µ¸¸¸¸¼¸»áî¿sIÀÀÀÀÀÍÀÄÀÀÑæÂèòÃÅÆÇËÐÈZWÈ„9ÈÈÈÈÌÈÈÖßÈìøÊ•Lʸ¸Î¹~ÎìóÏgÐÐÐÐÔÐÐàèÐàöÐäèѲ‚ÓËԬ¦Öß××Õר¤ ØÐ³ØØØØÚäØÜØÙ¸ÜÝõàÈ”ààààäààäèàòôããÏãü÷äææçÛ|ççœèãàèèèèìèèìðéîðéõõìêÑîЛïä‡ð¡UðܯðëèðòåðóØóõõõö—÷í˜÷ðÌ÷÷äøøøÐøüàøüïøøøÿÿÿððððôð›°oW¯IDATx^ìÓ¡0CÁî¿S £Õæajÿv¸S™dî @¦¢D>ýz0Bòð—Ðþ=vëØ`ˆ¡hÖF”×Ò#Op^"qFKC‘"¢ …ß_6cöêq–¢;Q1 p”è' %y.`–‰(ÐN%f(µÚ—=R3I½6é3Dw8ƨù° ƒ›„ÒbÕLáo·Oª4 ûu¬Ú0 „¸¤ È ÒÁ ¨ÚP‡L"è’¼e xêT 5d²J—h ÄÕPA§ËK$í£õjR"0Yº„û‡ŸuãÇI~%FÉ!*D¥A„îßB¡ ES¢F”HãuøËla‘rÆxZø¯ÐŒ‰ÐŒN¶†òù¼$ˆPY@ˆG ‘ú·á@›ÀPñ$LÒ„+wˆb4›n}3>y&y¹oÐÈÅ©ók,ã¦ ÛÆ6½¡£ 1º™’CÏЕuÀÅd^ÙKvà¥ú2_Y»ÊeÿO³{“é÷µÎîºçññªA3˜ž:ðÖyBc—¯XÚÆð7VJ]:ñÈ!9Ä·!¸vÌï%y(ŒãuS9HZ Er1´¼J@ØM0Œ°.òîÝia‘a/¼CˆD™0&è¢é‚g°«ºëýúñ§u<£eÔ_ û\œ‡}Ù÷Ü}xà8š‰.N¨s‚jQT«£O—–mÿ·­†$!ÇŠ‡­N§u(²äÏ™ ”˜ '8é§ާaþà`î¾Õh‰xˆ!.ššãN^lBY‡.Ž4ôA‘/*·¥È‹A(·õg‚Þ–¿ÂXz3»OÈn¦c"Ξï!YlˆÀô½=€Tuæ˜N»A: ´aç¨äñjaLjž´¼Â­­^xÀâ9zRª §“;¶€z¢Ðý¹C©†Žx(©ˆ ñPø ‹†qO1 %ÙävÖ'É 3åa¼€CˆÖ®«cy®2ˆg° ‘ŽPž¯4kèå˜5rB+åè]9Å/y¹uZëýU!Úµw*Íx‚ÜLµûò=É÷6D3t?Ø«•†¡( àç¶NÆ¡8”}„L½ØAG¡é—N†¸e•Ò¥²"¥Ø W gˆ«n}ÿ<šçœ¦Ä'(÷r/‡“»ýø¢u¸Ë¦k¬– 6q…aÑm†:b†Ô‡ôt3ì0ÃkŠçõO:¸1A…w*–ÛQ:ÓŽÉT,Ó©º2ˆ ¤\ gÞšéË©S‚,ð/º}KÇSNo™àÐР·y’b“,+¬¥­Ã¿uX­ò_‡Z®×"qKn”‰B˜¶™¡†>Iìï›C´'r€ãS“9F(½ XÐP©1rJ8W“¹:;xàfØŠ‘÷º.;‚;‡6I¾ªþ+Dë°Æö쟥a øµjûšÅ¡trŒ£èº$‹7Á bѶ„R±ÄÄNí gE:ÕOàŸæó¾9Dð„O<\ÆÌÒn¦ÿ–yΧƦÛÃG{][ÆKb¸ÙÄelKÏ%†YF]Ï!*hƒ!ºõþä@_Š«I¨“Æ‚˜é8¼Cì¼0=;ÎéúÂ!Œ{ìPI±}1)YퟋæB‘C%+ái+§[f:ç…X:ü0ü›…ùaÏ|y„¢8Œƒ³ë ¢ÉàÜü@°0 ¾#’0ãtnOpwC‡Á$ó-@"úç£ù»Œ ÑÎxÊ=÷·sâ³s·‹u¸¤Gu¡!cì š>×0…ˆ¾Y„ò†!L\È«ÀLm.º¨ˆ4ÐU¦nc”¼=œ xge xÇ‚†…á–&uà!!HÒàf‰…xÁßÅ"¾µ‡üïëpeSN «.cQĘ«ê 3¹ÇišÆ‰i¡ÞWþBpWFè¬GoG`CPÞ<ï×0Q1XV5ö 1ø²_ö(Aö6{‚¹‚°›n!Mn0Ø„AI# !°)ŒMªIÐKøs4Ã@Ølöó•S /f&3³3óæÏÜæN =<ý"=ô†!ÏÄCzH=d.%Ì¥ôzÈ\J˜Ké!!ô¹Ô1ÔPa.¥‡t.ÒCæR¿5B0—J$Š4³ï¡¯áÑFz(ÚeØÌ|.õ…õt$à ùòçaèa>réYÁoo§C m§¼%SæRß «Hs0’Yc_¢Y÷¯­xž¥~Œ}¼&e|öõGRýòц— ±êgß¦Ž‡Û¥ÐC¿O&sé®_'64/‹MuÒ ŠÁØ´ŠãBöJ–£$WE12mïÞÑ áNéGLBòó9MØ‘MãÆ´pþ×û÷TG»‡ [¨¨8Ú(ª¨«‰U¿[¿#æM©áv)g$ôкÊ^.M†¾fL½:»¢ÿX2Å`¬" rö‹¬zеÔQìx^wµ«*†<¹=ûº#õ«'²êÈRÝ0±á¹€5éx·æÉèv½w!뫌¦h(Z ¯<2ó÷QpÌLË Ÿôz%LwmL¼)ß2v/O\)‹ÆáN2~a±\IñÐìåR_"‘K…ÂfI“¹TŠÂWmÑLõ9.ç¥nú)>4óÛý% kG ž4)¶òPØhJ׌ tdY,Üéq Õ”\J˜K“øÙ é¡õö[ï¤{ÈRØTw`Ú.^Ú’~ÔCƒC»6¦\àÕy`.èÚn”Úên¥xHø9Mær©r?<;—6%`Jì hK•ÊEñ'ï7ñÐÌ33ú¤w Ô]XµÅÅÚr?· ÈbáN枉b'×¹”¹TÐe¬ùw¾î‡•ÿóp)æáCµ‡û’K¥M3¡À­¨ÝÛ¶ôšyB×Öº8§ÛŒïäʼÜzH…¨|É÷øùxoQÑõ“çÒ6ЇRu/aüÓ²´OlX:k:ñ\j½1`YßQ{¿\Q70¾p×…u¥T½ÈýpáóƶRÎHø½§\¼Çoaî çR=T½«.J÷ÏÀØ5™÷P°.ÞÕÂ6 ÔU¯ 4ÛÀ{-#ÚÆ×RŽHèaÆÿ¯íé9ØÙ5õÑ^ÇKÅŒ÷ç™ê@æîtbÃÒŸ·XÊ\Jýà€„ò{O<s)=ä÷€ =äïbðhÌ¥ôpø#Œ÷ÐCz¨ž7üÝDæRzø»ñõL!ä_vì a(Â0'ÈŸåˆj,¨@³õÏÂîÑxDá˜"ÚLg?“ü“L~wè? €%GŠƒAy¾KÝ¡Økt‡îPÄw…$†ÄÂ|—ºÃÞED¢8 KÇØV‹Ô6`ÿvè}¸Ä@ê™•Š¹3G”ÔÞìÛ±®Ó0`ž ¯H$&€t7„ÈŒ•Áf´LlŒÏ£qzâÚÍí­â¸Ž®þJ+7ª"}:¿k•*"£~ó ]e/…ÃÀ Ïî]V$Œö;ªÊ‘!Â!žJbŠŒ‚ðx½Ô×…!úƒÔõR8†1éÍ1:gµgìü«‚‡p( ]dxç!y/cK Ç襯¨š¢—Âa`‡ü2Côþe¼‚Q&£`üOÒÂ!.Cœï÷­©¯Î1‹)z)z©8,€˜3Û3Âa“À!æáÏèiYcù$qi26Ù3¢—¢—ÂáéÚ¡³ÆØ@>ecH“ñŒp‡p¢CDZ Ñ%ˆD|U4Ùb£šŠ^Š^ ‡Îš ‘ËbˆË‹ŒDp¸*p‡ÄÃÌ¡Ž[DO©¥–ñædŒôÒÕA/…C9‹H‰WY­¿˜Æc)rODb°#Â!†èPËÓ"gTß÷ƒHŠÉbyO-8fD/E/…ÆɡÕz¢ç´ê¿õJ‰Ä<×bàD; s:í‚´t‡—q˜¢È³ìªaÐ í´àhcºýV½twrˆ´ë¥8·°?¦qHâP jcô 9Ibl§ë5¶=óï^@¸Ãþ%m¡³F%ˆ'3Ì‹)Þ,jùªîyÝmˆŒ1Mz)º?¢Cwv¨b†«hSü“'¢Û5>c c½Ã¤p‡ø¸C8´R:)ÄAõç\S”‹TO©3×û-õÁ=c—JÑÎ-ÐP[öR8ˆÌtJ†˜ë©ŒÄ:‡9óCÿ ‡w~y*pøýí»¯²v¾>½U~?¹Õíêߟ~ÑBdñöÉߥüëÈgÊ?‘%¶p‡ù ~æð¢[ê¦J·ÔTJÿf¤U½ôyýÇÞÙÿÄy|ï0ápûU嫵Q¤TJ«æ—S¬¤XýFuj ‰«P¹J‘‚\bµHýÁ©iÚàÆ¹FØá"IÄòÕ' FÎc$|FâÅ·eÿ´ÎîÎ<³{ϽGDJnØ·Ù™9Yí<·Ì“«/¿ôòoVv^ïi—nˆg~òÚ+ïhÝýÈTS{lªVûk‘‡Æï¥wLó£9Gù[”›CK3áp±4#@<޼´Ã!fŒxe 2‰K ¦áÇDÙÈÃÁÓtºˆkÆ ÆÉ>óÛŸ‰d%›jÍáL÷Wr㇓; »ãë»SÕ»oÙ‰†Â¦ì€µc³²6>1`¸çå EtsƒK3áp±4ÍŽˆípØá PU)ñD4Îû$-‰:¥ ›~ªœq¢NRZÉžS*ËgSz¬)Ó(¯Yü´,Û-)óƒøSÐö؉Çk¨@†©!S4E[µË›–¥’É9Ð \a×lÎÛã9åˆ@?r8:\`¡Xšºàp¼=lž|Âïç~nzô¼´Ãa`8”5"ˆÄ¢ÿM³›})÷Í!ŸŒø;ñ‰†ˆ@!a8ÜÎ 1¦Ô !bÐÜM 1Š“†Ã‚Ï>ûüó“t¤ÌSFM U²WÍÂøOsb c£ØNUÐ{üñ<ùeňz’ù?Xa_ëÙ2›ÃXÁÙtÏ–§‘Z¿"D¿ÅÆa £³ •Ü‹za 2>ȱ° tBŠN8ÞúXã‡Elò/Úiƒ&qèƒxº9„qºmŸ‡Ì¡^~2ˆÑ¯lš‚(Õ‘8ô¯6𥩀a´êœ\Ït¯@®´—éûg!6½sõÚj®û«½ÌÀòÇŸÒ¤ÎKWÇ»þq» FÝ$•Ý©ÍÌÙ[ŸìÀ1ö,@Û÷þkMIɦpJo}z)yýót|ýr|ç3=r1þvl6ôun/Û5's¸ÇD0“,»NÈö2g®ß¿Ðµ¢'´Â{WĨUÄ…™Ä¬Ü#^,lë.)òGw÷€…æûo]‰kÿŸ˜õµë]bœê¼Ô§ìóbûç¡4.‡V¢ ÒsâR£; éqxü02†þK삈›g¾E1T\#RVƒ©x~;“ü@JšÔÊBrKnø¢²;UÍ¥´ÙÞ¯d! }e²ÚgS8e½J¹›E¿$@ÝLbnªG?y‘¯\ s¸‡8tRDh~ÅØ”NEZØCr¦kÅűÎu½Î{@|ƒù-Y蚃é|vSO?‡$ÇÏ¡¡h¹8ÏRD"ÅHZÚ‡þÍFô­œ”úyiß{–M®´(„ˆÅF+WÅ™ _-¦Å™iš4χpÔÀxÄMBQÙ‚; °-ÙÀF)6…SÆ{lZÁ/òK6į3oÀ“ùÊ 1+Ž9»sìdÙuJYûpŒ…À!(òB%×»žTn,Ž t®»¤ÈÝ‹ŸCóøI)xÒ®“xô¼´Ã¡ª:.‡-Hô²Óˆý–’³ŸŒ #<‚¨ˆ =È¡a¤$&5AлŸ>K“u9då(‡0 ´AÏá¨ç½#¿Ð"ºæ€ŠÐ×À°¸ì™Ã=«ÊpHNQx¼èqxÎ_(‰Wây/Ç:Ç>(zÝ_ñÇ 9¬ÑŽÊÄ©áp—3O÷7ÎïáÛðÎ#½#x¤d(ÀáÂüy_D$‘Ÿñ(mÉ!ó‡M+ýL—®Ãú_»S³w)ñ‡‡Z—ïgbÓÛ¿ÿh5ÓC“&/x䢟—¢²Ÿ—vMo™@£[²”l §´Öf:ùá ŸE¿;ã}e ¬ RúF€}íäĈtÌÑžlÿqÑ[v†íe’Ÿ¬Âs¥MÆãcÁ¸ [Òtô‰‹cë.*r8Þ)Cß”'cð®vT€ÃS‘—îZ‰pˆÒˆCÖ9<‡úúÐåðÍa-ˆÞ=†MNë‚(p(›H¸Ú„D…×»-9”Û9!Ĩþ®ïWéĹMâóa¹öù•çœ)àK¼a9LÌê–lP#ÙN­’‰·CãPI"‡ƒ²ò÷9¹+ìëé1é˜Ã=ò®ýÃɲç”"’›Œ’åðLZˆ12/À¨tcqls)I‘Ãñ÷€ðÇ2ŸÔ ¾‡»§€Cd¬‡Þ"÷#3‡ÎK#Â"sMO›‚h1ô_G, Š$Ê#®™@Á¿òÄ–¢M äá—æ÷šz o¾¤ÉFuO¬ì }ÃÔDWhÛò4è·µ/ÞË{x•—ižÇ&Eg‘°8^bçÍÂy1ÙL;ZX/1ýßä»QÔœn]•cápþN#™DèITä8lH]X¢(û5›T_Û}äóûû~šÊë='äùôshå(¢´Ïár1Êa4=µ¢A´é ½(†.7Œ¨/‡²b^Çâ—35 nM¸¦¾Ïï§©~~ý;ø~šS—2‰'ÈaЄÃè"å¦@ É2Œ"(™¿P_Ç—!¦S¬•¤[D¾¬Ø5îâyˆ˜"ÕÇÆaG:²•Ã:¦NÕ [àñ8tQôÒÔ¶óÒŽtòÒ(^»ßþ÷4Þ5>,ø5MS¹r´ЦFx¡JX…µTFÂç?{þÑáÇ‚;ñ<ÜÇÔí5¾¡Ð³Ì!²èáˆíñqØ‘Îó!‰ß§†û®þQ8 ˜CXWökšVÞ6¢A,šê}ÈW1i¢ømTÈ>†üÙáóºÀ¡B Ã}›•F9ŒÂh«XMÚ–yéÃ-yT©Þÿ@¶!moÿStòÒÖ º]ÿŸ5h>zß6‡Eä°†·nYA€C÷†QS¤iBIÔ—"ŠÉ^öíFž$Ùç0 cXÅ 4𶇥î²<´¾wûê ?~5ÌÆïžcŸê9vêž|—‘ÃÞÒbSSæA´§" „Ü…ø1ˆŒ6Äá2ž„!ý¯pí+¾ÇoHㆽ…V‹1ä°a^ºQ-äî[Ü–ZL>ýïÏ‹z¾Ú0^è-Sw“>ÇÉËÄîqä¥éÚ¢…Ä!ˆZ¢w¶Ã¨…áгgÉ bÈ_®ÂH©†îoÙFs4îoAy€Ù¬¤¬lËa P¦ºWšÔÈrí-/<^«_9µÀ£ qÑp“˜#gu®³å’bê²5,¤uêÄ¥ý¿/íp(™Ã¥ä° †Ì!iêÖÁðž…L[$ Ó»dNCà ‡Õ‚±ËRÚ*ÖYló•ñ×rbzS—³JYJ —šb[üË!Øa¬gEì—ÏͺvMí-ß¿xSÄÆ$ ³)Ø<°…CŽâé•·dõæYeª¹¹óî›×ª¹!t¶‘¿¥ø4â:[è›Ò^mÜ mûЉYÓôc€…³eÒ–›bRž´´ÿ÷¥sÀH-zÔF9¤æðÞ=øÏ’|$i‰¡}$ ù5ã„a”C·—ªX¡ý3´º¸¨ÿ_dú?º›Ü†*[àÐ)ÐÝLºe¸¦’6¾@†«Ñ8û…¼äÚ‰b&–ÛC8ÚHÌm¦Ïw—K½XÔ[2Áô ©{u¶TÚ›Mù¡ÅÆîýuÅ)6Ф-!Á>Uv8Tá_µÝ‰cè‚Hâ×ïï‡DXHb±¾`Š[|°¬ÁCò<£eÀn!¯­bÏšžƒlß¿(gÿ\\^M'¯C^ª‹m•[²‡µ®X惥w,•\Ê´§4Ô½+ªë8Ô…¼yZÕênŠAU¿8*¥TnPmt—7º?Cg•\, ¶BC}eu¶àú=XR˜òCâa k®H[=É¤Ô Éñ×v8„Uüº´©ÜFi¡ æ0¼Õ€n3 ‰Ã¥ð0Tô)6ªÇ7õ©³@ðgZä0¶œu$XÔy)Û2‡\#Ë%°~]#•ÊbQ°_Èë—ÖÒJ÷j&E£™ž'™QµØ]Þ|.t¶!Ä$«;u¶à9$mdj}™CÒVPÐû°};î/€C;Õ€C "öAAlu.´44…¼áªXz!6M£Bj/3ªß ñu/9{š=“î+³]®ïƒ¾ŽkZ?´!ÓðK1ÌÒ†Ÿ7ä Kûï§é¼7ñÑ!8¼"‰aÏrèÂHè†Õ"K”Bæ1t9\ ÿQ}¹7>MU¬ØN×/ů=øøúêï>¼b±-}OCµ®P¯ a¯fa³îëqX{‹Å¯T\SÈKCØ]0,ú¶háëÞj.9,bof¨^¸:£a>G ‡\Ú놶w)6¶úî Õúê)½ƒ´Mãÿ;€aï/íp¸po×px‹9Dˆ0EöøÊÌfrZì#†8¬tia9”Q©>•ªXM‹«°(FV3B祦Øöe¤ŸSë¦Öµõºj}øùó7byݯdaŒïh¹¼ŽÆñ݌ΰ…¼4„]ÔU;âh!=¹~õâÊÝŸ)tV‚U­âÙÕy©NiϤéŒnhúó%òÊÖú*3;Bí\;9iÿý¥ƒCpÈi)Ý^Ð૽â@qŽ­0\(.ÓiX•² ñÖrXÄê7[òñ#)w v 6’,ýËü^ÝÝJî¬[ëª=N%W,¢Ý+\{ë¿6r.&yTˆO7*¬å~i/k7.AÎ%WH»補0†ÇÂa‡C©€Ãÿ²w÷*ÍQ€S 6^‚Zy‚añ Š X?ðë,ÄBˆ•$E°0XÒe¢pœ¹4g&&oNfÈ‰îÆ¤8oµ²s:öŒÎîið8L»ARŠ mi@ç¢}¬C2ß‚‰çרÉsmïûãgÉV³ÁFLûöý>Ï%RÝ,­ÿ;)_yXîek»´9ZÝü¯œüó-Ä¡w¨à!ˆÀá%eXCa`èCÙÅ C[j,º 8ä!öÃs”04p˜ÌíAV.ä7úé¸C®îd•N‘¯ö¾V³J«—Bá›ÎëP~C ëi„¬C_.ѽ‚aÈ4ƒÁa[aÒa€ÈH´i‡v#óÅáq>^zU‹²–Ô/ÓeþÖTˆ¸Ûj;s¤½D[ÊÏF]ìPÏá„Â<¥/íM8¬ÍæÜC Ã0–Hw•~{hì¸'¥Ð–òóñQ×SÝØ¡^âÈ||éKá°á ± ±‚¨T$b:px¯lÜ^ÆùûÏ€H4’á84³;ä~¸N¬çúE-8D{ib‡ÈÂJ,’¿/‡£qO“…¼CZÂ1 ÛF#60L;üÙŸiºJ½?”ëPê¡Ã®shŒB~—qï6úí!åäÒsÍϚȡ™ÿw%_ìݱnƒ0à>AŸ…™¡/2yéÀÒÁÝ2D¶<”±µ:VJÅF`f-í£õ0‡K‚p0ÛýS"Ùã'~|VõRê¥è„ú1ĉþ¥µ×¶^aèÞâf|¢_wlÂaSù{J^ÔÍVÉáhlás1Ö¡j¼xnïDá¹–ž¾1örñvè—–À{ýü°Ò’ÛP¤®BõRrXCwŒ?œ}.g(Lz†g1n˜ ¡?¶c‡€é_ɹ¥––AÖš³Ä†Â¸®:¤¹:<~dhΧ”š8"³™2„éá¹¹ŒOi~üNj)üð^ýB§,}îBIYª‹mz)9|óqhWöþTïQ93Ã%Ñáñd"§ò‡M×gƒ;Ì%“Qü`B‰#Éd¾­Cr˜Í;tŸß6”‚k­²™L¶k¾K׿W_ó„ïöÊ~ÇþÇÞÙµDrDa¸fFh2X0zc’;÷"7 {ã^H ‚ \­,É&&„ ˜ÏY#ØLœ ‰1»'u]võŠàŽ+ëtwý´Ô©:UÕ½ÝNw/ê…¶»ëL9(<œSÝUõ®_j]j9¬¥qˆA\ÝkH4bÀTáÛÃ0‡CvÄáràƒ¬‚åËäÐrXË’M xÍ4Dê eäЉ—¥¬ iŒCvuéÆâì¢æÐrÈÿ[—ÚyÞéÖŒt“Xž1ÈFÝ‚ˆi¼®94ÃØ¼+Ì¡åÐrè†9tR8Œ—¤€¡t±P»qcrìD†<¾êþYà& /».Ý\—Gr¨³l]jßã»z~©œNsÎð0‰Â†ÀÐqB–j@$äFÝ'+‡8ÉËR…S9<ž"$wm;ÒKåðùôØØ[QõCjOô‰#®Hsûî¸å°£ì|àÐÔC }Ò”$ŒX¥j ‰YÓDæ– T·Hn~å“Ñr2‡PÝ^`]zöÅÌG¥üÌ̇«Ø*#âðÞÒm&d®KC¶.í$Ë! vaZ[²¢9R[Ë=ðC(b‘ ®dÑpÈC3qø¶ E.rxð´!~"9ls(#Ód"Í\ãeÂø°>ˆ0~´Z†CÚ«2!8G˜lépT–CË!äCØ8M`*#ÔDYJi‰"– DxLžL“™Ãmòºgœ‘®U)»>Mr·–¹A©´Ebl©XÌͲ¦ôm:™fŒÝ}å1ÕÄ?AàÔ4LŒ ×%´ĺTsØž»^!«Â…iMs(<¢|èö¾ï?›&¤°Ö® ×ùWš´)¿O…m]ú‚,‡;Àag1Jo_H‡ªôã Õ§ÄŸÃ fç‰bˆa6Ëò-‘6(7Qúa”æ+ù*\5EÊÍÛÅb¥w¯)}›öî窌Û21.ÕÔ¼}ç/8aç;•Â÷hZ_âŸüóF‡2ðc“›Lm–z÷‡Ü#ªöÇÙÍGÜ“æìfnþñ2‘Ání¤9Ä{ [£²RÎáŠá/¢Æ2H¡òúÝ¥ZqA5Tw(ÓÝpl›L §§zO•n媴ÔGnÇu)÷W:­ôï{õØ2yÜ– z©&´:- ´<îÀäq+St]ŠÕ¥Èá€ï‘²ø€á÷ã;›¤|D&%{ýû>·²@õ=†Ã²u©]oÁ`½E-%â› U~Ê=ð)Hœ©ˆ&%ÖÒ‹ž"™9DRŽrU‡C”Þü—>‡)Ø"ò|8 ¾.#Â/¦-l™dȇÃ!‡€Ã‘-R,ÖóÒÛŒŸÙ°eb ÕĘ~B9¡Á/D%Õ¥#Iùpá4Ù‰Ãx>´u©­K“±F#i_Cô/ Íó~Ç{Ç@¤bCÏO•(xùð0²ò0ÈÊ¡W'ƒ µé2·Dúe³ÔSpˆ¶HÀ!÷WÒžp[¦Cá±r sxÂ]—v­²‡žÃ!ÿÊ pa2öl´Î& tóÞÙD~ö໽ó8Tá¹Ë¡’ݯÇÁ7ò˜i(O…@¡’àÐ  O1¥ÒÍkÄð°[Û`{O ‹ž°DZp‡uà0_¥Ò‰›B‹Ò_‰s[Xx±Þ<Å&e%n¡.«}áºej´.íWúÏøWÞ3€mòž/»ù¨iUrW0â½÷Ûºe÷kk+»AMN(„Ј‡ ‚ì,…ÃÄŒ "‡ø?„aF‘¥Wyð÷‹—†šÎ!„ŠE0…RjÝ»ŸlÕS§•2¿ô©¹m‰Û¦+cOü°Z]œ×ƃC‘„¨E-TJsÈ 'J÷ÖÝÅ6ý¨4õ$o“YF‰–ç¡}pH}ð—Åæµ“q»îéªÔ¥–Ã9ôFƒR’¨–àЮ,ªPo^¹ˆJ9ĵø"-±ØÓÒÌó¼[q¿ý,‘ÃÇŸ®]-‡–CêL(S[¢4±4Ã)Û•›j“4öF× ¦•¥Ô“Ë]rˆ‹¥"r(®ôº'[—Úº”Ò0‡1££-Œ))öD™Œ¨R&fDô+í\–ê·˜»ãнòZ-‡ÿ±w‡º Ã@€÷{¹Á‘‡L-ja·NiÆl—¶ó£M»“éd9vÙý,ÀðÓýÊ)ζCPbli ^lâP·€Xˆ4gÀ°Â!涸½´&‹éÌî4ýGsÚ™Î,ë¥êì/•Aù3%Äâú‚Ç¡}Îa©–¦C#‡to¢áhèÞÄVÕ¡+8 8Ä%‡)DLD¬/¸›æÆáçlQK¾…Ck]hÔKסï^b4]?¬{©:Dh©`‡øLIxŒåú‚!fkéÅÁ!¦a½Czº5rxõã¡ÑFmíPÊ„ðC8¤ZÊÙ¸< ˆò­i®–blagQpXf‡½´2«_¾8šÅ¯-ÿ»¦ XΡLD¶í Cœ66úô–Æý±w¯¯qTaÀg7fk» H³ ´übü B@Z㥨)F‚F(4¤^+R•ŠÚÚK,Z)Z/TÒô¢8³íklhsfæOóÌ™3ódÏ™ÝÙ9³)Ùô=z:3löÓyÏmo:žâp#6Ê?¤ý4ºC¬ Öó ŸÀ¡¯9WX¿P7›Æ!4hâ©øëàPúÞàù‡”H=8T›à‡åð0rˆ­8.$B"ŠE 8DÔZV‡¾æÐî‡ärˆªC—5iph{‘?WwˆiÓº=n˜7­›,™W^‡fµØCqÉ: .¥º”:ŠC·‡WìP×§k<@ŒVµí¦¼ûñ÷y,Zäp¸œèÐcþ†wHÉ!ò]É0"„¡ã+È5‡Øõ,k‡Ž¿vñÐ3sè'N—z¬uiœ»F¹km¬KÉ¡¶p‡¥<ÃDê:DH !bœÈ›‚af‡xV“†‡muç®QîÚz:$‡‘%x”½î¥9DÌ×D1wúC¸¥ «‘Н9lk]J93q¾Åú×¥äPö*L8Äð0bÂòÅÚa¢ŒÀ±h†yBaxÅ:É!9$‡À–Ï!¦z|¦Ò—‘FsŠï¥AYŠIšLØNpØÖº4vHï}]JñDN„bx¨µ„å @¬/PÏž OZ¬uX5rˆá¡–0³zé´æ°vò&ú|/zïªrË,˜’CéÚà1Ñ¡ÓÌ¡ìtˆêyþ™ 1ñr=CÇËîpeâÉLJ†‡µá!¶¸¯¤Õ¥³Ö$úlu©’¶`m­Œâréè®]{Y‘9˜MoT—’CW»‡kÕ¡hÉgÂjEyfv8²õýûßLr8ÖÏGz5‡s…Iô™ŽõÀÏ­@›³¶ùmØEüZÆ`64rHa Á0“C@ C5Baì°Êo9ìc,,K/ÇikμP<íêÒ8]m¡p=¿ç«­zèšÔ¥M›êÁÿ]š!lvçñk&ÁlJ&®ñxóÖ¥´ŽïÁ¡Ú’¢,mØšñHF§©P–š9ìez]ÚÚ”e†lg¼?v¸Z.[…—ã™hÅg‹ç¢~eü‰­I‘¯ÆXð{Ä£qÇÓÖ’®Ž÷ÇÙiük¸½8{­ä®|~àãÕ±§DüšI0›¼%ÿ¤üžÃÓü3›Ý!9¬ÆUKê"/­9TªÓäþ±Ãå·;òî ‘°¥­M|pv¬û¢ÃkÒ¨.],—ƒXµ%”öK¥8õ‹<=íØ|˜¯VÜùë?ù²ik‰uioœVàë weöÚB×ù[•ÝÃÝîléZ¿fÌ&oE2ø§F¸M^—’CÇ[nìP8Tƒ¡x€×aÕÈáXaÇŽ‡þäikWì(mÍq.sŽÂ!ƇV £cæ q¿8Âc.d¾ÚíÁžÓ›èÐt‡ÈNãu)²ffû\>t\èvÿë¾ÎųÉ[øÔv×å!pî¼Ù’Ãô²TŸ¦1tˆ£ý¢O”ÞÙöŠ9:Û–é2µ¯x†Zà°/®KWÊå Vm.Èðž+Ľ\Fùjsk ¿-»äñ!4…‘½öMéîàhàðÖ#Ü¡I0›Xÿ)a7k]Jó4Ž¿Oéƒ# R&1Š ÙÐa¯/îŒÎZí)ñ>ŒΖˌË¡¥³…¸Å…h—*Ûѵä/¯©Þ;Ü!Ï Y(ñÚÕ ˜M}ÞOÉ¡í pØ:¾d–ÅaÐi •Of·{âÄÉÀ¡#N[CßW ‡1Ô¥Üa«v«Òsæ¨UœŒzñXæ«Õ}wm°äËN¤­)-Á!²×JîXϰU<08*âײ³ lò>‡›½.¥÷¡—î¨0]ÚÜ!ä2h %Æ=^‡&-Þzæ¹Ã(míÚˆe½P麇~­\±jÓ–ÕõNqÒ—}ø¸&‚ÒnZÖ–O}Ùñć]ÜáƒÈ^»]9~gâ™ësO ã×2³‰6ykí§øwC¥‘Cí°EºÃ°9ôh8wh´¯M?k1sÅžùÒÅúa«¶"’ÔÐ#_-øW^dØ_ŠìµŠÇ•øµŒÁl¸…OݧûÚÈ!sÓzÊ>-ÆÜ¡%[ÂO&¢Ý“}ÞÓÖî#í¹j€ö—Ò|©ï·Û!s3;ôŒbISÝԆߦ¹wçž–>|~Ïë7Û€öµ‘C–2MÓ’C½>Mv´=0ÜÐçÉ!9ôT‡L%„¦LÓdtè¡«YÊí°šäë¢tþêRrè&;d™¢5:ҨĵåtØ ,õÛî0Î]£Üµ¶;$‡U8tYóCOLf'ºªC¬á›9ÔËRyé«ué†mô»‰äж‡ËºCãÝ4éõ)"x4ŸC¡í°ŽqHÉ¡<¸,„4= Œišv8C¼ J†ªCh§| Ê·è‡>c©e©><4õ¨îh»áåpè©ÃkuŽCrHÈ!ÓËRÝ¡‡,¿Cœw2wè7œ¦ñ;§.¥º”æidÄ…ê0mš†™;Ô6xçv(v®CrH•áa«YË Ý¤×aN‡Ë~ÁÐvXGÕ¥T—’ÃjŠCÐQ=eô˜ìÐvªF!9Ñ¡×)É!9”›9tëjÃClz"1@õÚîÜV—R]JYšCu~-$†CŒs9ô9ô×Áaœ»F¹kívHmÓ§Kõá¡N—µì0Üϓˡ‡IÃÃÎÍ]£Ü5r¨›Â*>¦Õ§šGó×!ê)ÀvŠCÊ™¡|‹ë°ª;Ì´›¦1ÙÔ÷býdi5C‡ž:éÜå[C/=ju~­ÂLtè;DÌ“îÐï4‡äVáPã—2M“¥>e¹¡ž ‡˜¦AÙk¨Kͳ×284LW[:iÂKÿZ<ØPu)9 šîÐhš&í bíÐÔ!&z&Ø{A;l¶²¯¤9üËšDߺÃÿÙ;Û×¶ª0€?÷fK\b¥Ø›2—¢(¾€Ú¡bDp,¥®Õ/-UK8u¶¨»k·"²&¥ì­u5D»ôÃr£ –®äÞÜ?Íç¼ÝsÏlR³,îKl'ç9ç<÷tðãœÓ;ò#ʘÜÜp†°i@dëJ NÚX1ýS“©àÀ®VÌAa‘ôÕ‰¿ÚO“Ã^›¸Ýþ±•Ó׳û>€vÜâCE¢E€ì§+ßè7‡}‹ßêâzؑæGÄ=rˆ‚§Ô±Ó¯@l[å°¹9ã‰‚Ž q.íͽF9¬ g(2ã×fCXGo­ŸtÝ<ŒoA˜«Ôb=;Óµ]­ã$bÒn?M{b;íKœ´’8µ@Ÿ¿òEb’å%«Mm´U5ôÌ#?—8ôÞÑ5‡˜¡ãvX.wÁ¡<–Þ%_¨?­Y%T®Q ïü¾¦˜Ô–ò&«*Úª¨EÜþÓS†´»î3X²¡‚M“+bj)D$¯¯Jèm†„lÍsU)› y(¨ŽIkÓ˜ˆ©Óà—HÛ-Eܶk.RJà”^ªºÑ-e(-uóäÁ¢pöÇô‚¨rèôç×4*‡žW&»ko¶Ê„Ãx‰|‹>9N _.•ˆ6íL‹©Ïðo-Éx.Åfoî5Æ!‡%iw3´Q7Æ\‡nIꤵi:1 €CȦ\&ec–5rÉrÞÒ3ÜʦhÛü¤zS§©fCÚËZ$¤ë3s¥NôŠRÁ^u(Û™ƒú¥2ú\:à°åtæðð@»w‡åá7@²æÌ£·ÌÈ|.qäfш_ûnÍCÁ٥뵹ù"nW‚CÞl0çZFÔ5"H»gFof5«nÆÿX¿áðÊÙ<¹ß–ÃÆ4<iäï ôæ¤@( Ñå +nP›F?ÏÂdsñk²&ec–5j¼[#ËáV6EÛÆ’Ž4 FØm°˜:Må°jÝÏõ'°íÎ 7Nág_§ôJÕÊ9D waÿ$ëÿ7‡¿þ÷{¢L.Ä2XvÏá>æ öm-úÌœ±í-HØ îÚÍiæµ ²µÀ¹´7÷šÂaÕŒí¤zzoV³(‡Uc”± =óìÔ¦¡¥Ttï-‘fÔ·Êð& ©¹•MѶ±¤—1ušäþsXþsF•$nλc@èd¯Ê¡ʲ.iŸç kœ »Èa¿Î¥±Ã9tzæ°ÕR1ìŽC¹ ä0õø¹•íRAKÛv’¥-"ß0/þÞD’CÞ,háOÔØ=Š5s¯yTºæ±ª‡L[ˆGºÉ]cœÜ¤&9‡ÉÀ¹4¨‰Áå°FÖÀš‚ ›*É­lжe‹ïÑ?˜¦r]^s]ù5É{É€°äPöªÊ¡´ÔÃ_’ŸR{ú)€>r8àлŸCç½6øµ(ÔSiùáp8RÂ’çû!F Æ»æ!Mdkâ\ŠÍÞÜk’Cþ›‹º1Š5½>ÕÍ1BVº3‡c‘eM±ò ÏkEÛ&yÛ›2M=—ʤ÷ï‡h,þþÜWÓúªÀ)½ljQ•¡>ymõޅ啬6Ñ×sé€ÃÎ×ÃNvSåÐóš C[RØ–C-Ì¡]¢Ʊ²‹&¹ç±Šþ˜3à άý<$‰lMr˜ ¸×2¢¦Ýut¯ÝY¿Q¥Ò5‡WNaâß÷Ãæo›ú¯ˆEÈÚÛD~Òö.›ž®¦bü*7tõÊ•5•C}ʾ¨­æa*gêé–5ªòåp+›¢móæˆ)Ó¨¶-È¡|Ž’$+^¹ø8Ñ+æ»Yˆ]¶¯~0é¥Ñâu¯#ü8ððß8,wÅa›ëa—rk”„-Xä•ÃVC;—<–ŠT›æƒfòn ¨lŸK±Ù‹{M¾?Й Æ‘¦YlžwÝÖ± g;R›†FpÞ «6B·±KXÖD¨@—“áV¶ ¶MVO…6xLFµm’Cå92I#gÕcžÀ‰^6ŸÿÿLù­?”Ó ð¼ÿ²²µü{g¬Û ƒá,YûB}<@Ö>@‡ÎY³' ©ª€£Õ €Þ£Eø¢ü$æŒ(Š=`Ï7~²1ø<_^ªÄ€La‘K¶ŽaR‡óÓú‚!}Â7S8D0Ú-¢#¢M˜)ç\ZxÝrˆe­‰4$%Ç,qPò|‹4þ9këuÒ„Å6UNn¥mþ LYë˜,9`*À?öš'vq W¬Á.ÎWqÌýË®mN•CƒùàpZ™FîØ Ç`8ŠØ8\=O¸ã‰úžªÍëãÎÏŸ—*‡HLÁáØ×Cyéw84‚p…p¸dµÿP9ü¿æ°Ê4ùø2 ÇÐ r(ÆC{ËaFânš…ô=iß“rhdù0ãË47ó,–Êš ‡Žqˆ…[‡Ê¡r˜÷sÈšï*ÓÀ qèƒ( ŠÀ¡uD3+4=-gîšÎ]SOìܽŽ1`ž`ž1-@AMË PÀ–sL½%^ûÑ{O47vü³ËjÐ9ÄòtŸî½vHr’ÔÚ-~Åao]¤ŸVÃ\l9d&®GYw(‡.7‰=ãˤà ¬8äbØp<<Ñï—ê÷KåSûÓÃ)'Ü´Cr®‡û¹Ê¡Îi\©‡¨;$ „˜6še°í0f‡T8é0Ô"ž°/U_*‡ØTÐè1 ‡2†u‡dhúÓ9”C9,2b|Ü–úÑ2xtX'òsj§ìKÕ—ÊáÞç°|¥f:t QwèNãPå¯]¯ÃÐåÐn¬O‡Öa!™úRõ¥rç\Í!=Òa0OF–bÝ!ãÊ¡îoå°qL_nÉaö\ ü©úRõ¥rx%ã‚èÐÓtÕE:,|Èð½ÆÿÓ¡Êa Cm9Lát¸èÐíõƾT}©f1Ò¡oÓ”Ýã¡aè¦ré(‡Qk‘ÃmÛêÏùx*üŒq‡pÅ¡£ÃÆxhµµ7Òª0¤ÃàÆÏØ—ª/•CWÓ”»ŸéÐ;d9Dò¾â_ñ®þ|åPsA¤C£-9j‡m‡dÈr8íå°îð”}©úR9tصòÛ4¾ŸuȻÔ‡¡é04*r¸e)[^”u1tóø…ÒñóÓbÆaiL÷£Ã$è8v:ä+’áo"œs˜ k5ÑÇZ_ª¨/-ÉKú";î¥äwsø–‡OÆaÇ-¾ïý?‡tÈéÀœÃÐtˆ†CEéÈŠ"9îq³ò.³±à0nCùÚå0`"Ã)‡ÀÕ!fÆCö¥ŠæÃb…Š®90|ÅiwòÊ.úRd‡ÕãÒ8ë Ãu¥C8èvø¼èP‘Cêù`‡Ûvëйätè+Ç¥]½uÈ/í°"ÿÝ]‘Æ€¦Ãàc»/UtoA7÷nÿÐá¶%‡YxqáK^FŽiì2|NÕd†»†äpo±Ç¡"‡fÜ3ÈÞÊáö(0bË¡¯jk;Ì ‹CÜÏ=w Q ×¡úRõ¥³ç4vê¸S9¡áöd= Þ†Z~•ñ°|cgÔ!–›Î Œ‡t¨È¡¹†à’’¸G‡æ­ÆaÊÔ|ØvHIÇñ°Íï–៘íäÊûÞ£úRõ¥½÷ø4fêk!aÙ { \¼ÇÏ:ÚrSá«Ûmib܈C>) \¢k:Dø0‡Ê_öî·a\ ø;ÁžÑí`‹­Ä¥]p\ˆ*g˜ò!eòh»ŒHŒeZG"PûÍ 5?ÌÇáïîþ¡«RºC¦èÐ.;\·<Ì[‡ÄI—Vâ°Ê|ÐÚa¨‘KQ¸(Ýîw1/:üI,Ú¡ˆ½tÃU½eú-‡(8Œõ»-gˆ!l—–Oad††Øoth#ç+]¥\ŠB.UÖs(ígΡŒi”åaé0ƒð,ù%¥k÷¦Åò.ÔsˆÂúð·μQ“ÊòPiƒ¥ÃÈ',}·¼¦Ä¡¹ê›Í¥È¥pèmêYâpËiši;$ÙÂßPÞ{ê/šÃЪC8„C¶²† uÆ4N"®àÐÒõõ@‹Å¡Ù\Š\ ‡^NÞŠROÓèp¶ïj*Õcéå¬9tÍ:„CäRïí‚ÃÙ1îÐ{Ì@ìß­å­ûóIsøÕr.E.ÅúP~¸&C°1R(üÞÁ—>»‘!¿ÇXz:.;dïÚu‡XZ‡š^ÞN\wšFd†•ÚK»—ƒº 5s•!Í÷c)—žͥȥphŒYëÐ Ã4+­RÖr:á­:ô®}‡p‡vô“~$Œú˜FÀÝžW¨w›NxÇêºnÞ!‡ös)r)Ú©ÃpãP;ÌVÜvêûm ‡Ö[zŠÃ TqèÚt‡pH±nŽSÎ0Vºìƒ~šFÊu§:Ù\„¡â°å\Š\ ‡¹h(ª§iJ‡Y³­áð=¾Òö”CÿÕ C8„CJ…"åN¦8,=– ¹C¶L×ÓCžTñ6Mã¹¹¹pXŒi´XÊ<Œ{ur¼xø" »Ï9 {q‡p8Ü;ô^;MSi W*ú|»Sº¶×‡È¥pÈK%–Î:ÌÏiVZ«(~lt؉CÞ¥C8„Cæd1çÒQÛÅ—S4©òèØÚJó~'¹tZÅ¥§fs)r)ú¡8ìG‡é±¨ð¤ÃÌÈŒ¿PÉ¡ìá«CãáiÚyêp!–ºtÉBž¤1òD[Þ××ÄPË¥ö‘K‘KáP6Gˆî#D‘‹ËC7½ƒ_yÏ"¶Caxú·fºÝ8„C8Œ’Äa˜Ó¸‡w«ÎJÇGK»QáœÃâÒSÓ¹¹3D ¦wËÃÒ£†!ÍJ q­šiûo9„C8(9 ?p˜Žw÷ÄÕÊRîžuèwK‘KáP‚ionZÍáGfH©Z®UÃ5½¥;äкC8„CHCŠ–£Cï­u¥Ãû—¡ŒlV}ê.:t{ʥȥphÌ­C;;¦‡^Û!™t”¦ËÃRq¨,w‡pHâPYŠÃ|®t,•Žê¬dÛá·ÃXŠCö_{˥ȥpH‡J,Í S L ÊÊvø§¥Ï:t­;„C8,!ŽýœCW:ìû~˜èØæ†þr~ÞaØo.E.…CæGc­Ò´ÖŸðîÄáI*oÓ´íáòQo3ç°ˆ¥™¡ìYŽsœe&i‡óYî-—"—ÂaŸzå²… ¦&jHh¬„(bÙ\…aá°€è÷ãánúÅåaøÈ±ôÿ¹‡êy#Ñ­CêÓE 1¸àƒ ;̥ȥp!zÖÊÝßĆsm1ù#âäðí\6ÃÒ!íÖ!¡QÊüq-×÷E*Õv“K‘KáÐJ²8LîR,½g‡ûñîÆ=ÏùÌârèût‡p('ù3í×k£8 êÐîÿr;‡nJ/Ï: ÝåRäR8Ô»¢h—øâ6̦¿2t-c)ËuµcÇá?8´TêCnÊ0-< Çmš¦·\Š\ ‡œ:bÖ6M,*CM¥Ž™›2œo×A{¥O:ô±W‡p‡k™CmÓÄìÐR#…öÓúÂÓPã°Ç\Š\Š~©£½Ã{Œåî¯ P‡MC©^ÒvY¿†Cá™(;ŒÒ‹|°ûûš^©L–’Jf¼Ÿ]æRäR8tbŒüã¿1¦8j;‡ÆØ7uèäsXç0†.Â!²9Œ¿8\–¡ã–%køÚ,­s;ͥȥp8ÍÄ_ÆT‹榵Ý5Ô8ô¡s‡p‡Æp¿s¨PGâÖ¥£4C¥Ã^r)r):WæÒÇm´^iãQša…ÃÏ~Â!ºGsx߯àÛÑaÃr4]ë.!¾{.E.…C%X:t¤×‡å3øyò[ÒÃçÎ}ìÅ!¡֎bá°XÁǹ¹Â4JSá“ÃwΥȥpèÌ¡z4‘ùJR…˜bé" W‡Ó4;n]4Ý®'†ww‡pèr9Üï¦f*·,yþ÷ª#m5½±\Š\ ‡V_r)û¡~_âÐÿ3„aÃ¥g‡p‡öÊE,ªQn[t[µco¹¹ "å˳ÃE*3t/èÒü­¡ôi‡Ü»C8„C'b¼Ë{£úØ/Ó ê‹g†¾r)r)–D¢ìð®K¯ë•æ-.½â÷æáÐYÃ4;Œ1íæÁÓæEú¢ÅpÂaw¹¹ ¢ÛîËW‡¶‚ÿš#üÛ)‡>öçáJ‡¬õsX0T³Îµ™h“XZí0t—K‘Ká ‡N.ÊÃ8\'Ú~¥p‡pHB.ÏÔØ²ÓÆÎY};–Þä¿Ê¡¶i>{˥ȥpH´ƒHbf¨½RK¥ N׋á×:ôKèÄ!Â!YD½4ch;øDeù½õ_QXë0†øö¹¹‰J‡ÙÕÖMHæJûÒá·ó)׳CáKƒ{‡S>º% aYlaÑÍÓºþ{9åðÝs)r)ÒÓ™Ã'ºj†ãKÏ9üìÔ!Â!mMÍÒ£qưF¢ù<=Jc‹©¶žr)r)ZI{6ÓêÐ\סC¥¹œtèã[9„ÃÿØ»cliQ À³‚·Æ—Î&ø#C = (Ãv6,mİŸÎó´E2ô½açßáB}é‰!®±ö=†ì.Îù;T%žá+ÕÞq8×»?D/…C·Á…1 Ñ.Mt8ÞMür•†¾ëðQ»C8„C–Êhph9Êóòü—Þqèf_o/E/…CÊCØã§Pöÿ­Ú[§ÊÂ!ŽÛáŒa†ÃC{3ùfisÛ¡ÿ¨^Š^ ‡Æ&†ÙI ¦™…Àá\·C8„òÖl-•v8ò8DwJàÐ×ÞKÑKáh[ Í`-÷ÈÍÞÞ Ä!…Ùáâ°½çÐUìá0gq¸$ž•2Î}v?Üp8®_ÒWM{Ó¡ÿ¤^Š^ ‡´,ˆŠ:$»ŽðÛ›§q‡phØaÚžæÅmfñv¾wÛÃOé¥è¥p¨™aq‡<³P"‡þcÂ!Öø9,çÃ#üûÝóz)z)òߦ>Iî°Áû¦C¾MS·C8„C›–Ë\;Œ—z™C_w/E/…CËa†ctHoåÀöÉšõÓÁí}‡sÕá-'no1$úÍáÈ3‹FIÖÛKÑKáЦHæd‡DÙ¡xvxß¡{ÖëáCv(cx“_áßÊ÷îÑSݽ½¹”šó ¾ÜḾ³9ôu:„C8<2™!fÈ3 ™Ã¹Úý!z)f†ù;‰#vHvèàp ¡=qh÷7†cq†VwJèÐ;’^Š^ ‡¬.L1ÅÏh2Ãm„¯%q8ùºÂ!r íXþŒ†ÒÌB©Væ°Ž^Š^ ‡Ã¹C30C*ÞIÙ!ð¥ç:Â!꯯ Îóƒ¡Öñ>[i†´.‡<::ôµôRôR8ÔK†5&ÄZ‡4†Py‡ü'ÜR‡®.‡p‡l1G'‡T:éÙ¡Ôáä+é¥è¥pرÃcØ!ÏÙ³C8„C8ìBú¾×»ô«CKdcJ:äg‡­Ôá\O/E/Åyi·¥éºa€¹84ög 14<³8äcš:Â!.E-˜d{œ¾ÛÆS#?;ìù”FæÐ=+é¥è¥pèBQ›ý SkÍN‰M Œq„/ÊwÜÖáápúúšBœ÷~¢!;ìõKÒÒ(´Gø%ÖÖKÑKá0btjiÏ;Æ3Œ’š:Ždú¶ˆÃ¹"‡pˆ^ê^³ÖT²ÃjjÿêQ´2®Ï•:ä)~­½½3F7Ñ yaŒÏ-æ\/†”fr‡ÏêÂ!zé1AãVw)g5Õ¼1Î,ñzÈÛÃê{)z)fŒnQÛw»šzÀx5þçìМÎ,àÑK/ã=¯Œœ‹-cÎÑ!ÐlIìpþ¨ý!z)r|žläšzÙS8 ­´ÃgÅá½ôª¦ºŸßt:ÝK½X³CʺÙf/E/…CŽóŒq ¯Œú5çù¬´ˆÃÇÃWïÑK¯ããz5õÔ‹•1•ÊN3ö‡è¥p˜1Ò)ý/£ fØ4>>Ô!¢—^Ž×–Ê9b4Ö ÃrŸ½½ÝD Æ>÷Ôþõ3,åÐÍp‡è¥§ñãе]J¯sºV5k”;œ¨.Úí›K<'G“0`Z•4šþ便ùH†t÷]Z§Œ{"2Q•‹ëÍ«ˆ¯ÛÐ×Cx˜e|U•´,ž–‘d ð0Ñ¥“©‰èò;XÍ­Š¿]0r—ÂÃ,㺓œX‰Õm*á!ºôßK-‰/*á=¾·‘x¹ùD]Š.…‡ÝþÌVFìÙHÄ2ñfòÂî¥æl[•WFŠ”Ê]Š.…‡MqOÃp¢¢Â?ïß³<„‡èÒö¤;7.¹RK(A̬Á'ëRt)<ì,b9&É6–œÙ¦ÓCxˆ.µû‘ZÍÝÓɆDxŸ·P[¥cf)ºf‡’Ñ®ùN)þ‚l>•†ðך5Ä­þd£<Ú›=JÛÿÞ‡ìœ!Ã0 Ew‚Þc¼´ …ƒÅ¡+/¨Â:¸ñi ¡ö%:ûhSW Œx‘ÕEùð—,=éE–"9ü"ú®.qRÖGT¿׈ðÔ+'ˆ¡ÁþMjtf/ÝRHeßVn ¼Ä‡ÉU­‡_4>—õ´q_4Nº{)5Ø¿EÞK3‡’D€¾q31qœÓ욉:ß¿N”Bƒý[Ô(9Ì^º¥H:ô?Áá4 !ƈÛL»½—f)c¸‹¼Ø¹º×¶­8ú“›ÎerØKi¥‡8a#6´¥+¦°Vp‰2ˆ?žŒICbòÑ´ÐØžÙÀx…hÄÆAªL|5¨ÌðƒÉö´yÚ~׊š9øÞ†éUçáêúqàœ{ÐÏ(¸_[Û%ýÿ ck*Mv×j}†L ðenÞÃp.„K²Y“¸ì)2¹„‹ómâñý'Ÿ´\bf3„3™†àûïäà^b‚k=øâÁã“kÕÛ6Û¾Œ± Ü-0c¿yÌÁçÒ°‡GÏ÷,ⲋ¨ÝÇe(ÉW„üñ|\bí=?b÷0ßGxy}yqB  ß-Ãók=ÏÙþseº ¬½˜Wû×qÂ%Ú7Œ9@ùԇ»ž)ó{(_õØ>A÷ü€Ê™uwÄB¾ÿ%Xò·ï‰O6#?õÓB)Ïz—ðzHýçÉ ¡ðAÃþïF󟸱2ÁæÒ°‡}òl»R§¡¯ìç¡C{8ÔT¯‡¹/s F iB¤^Ù~FX¯—Bðý(¢?DR~‹ýÜÌI[ˆÛã¿À öÐî—¢' ÿ92mðŸxÎ2ÀÝ" 5 ‚Úo6·èx]@ñعw2zÎ¥nïÑ›J _››º9ºËf2yI6 %ös^ØÔ5Iˆí,ƒÊ¸ÅÄWðµÊ›G!¸þh·‡,U’ z{a5KæÁãJ™ÄËÛ/ͪxZ‚ËŽLË¿ËP¢[‡ó3 5ºóõL£­Äv~ÔµYÓ'èu—€!h. {h=¬ÕëǘŽ5M˜››ûdë- ¯£ÉH~jYxX÷x¿æ]{h1z‚ï¿oíqc¼1Ïè|ÂåÛRÂÄ1Yó`úÏ‘y ª·iÑû»4X±a5…‚¥¡MÙ'pOu:—€!¨‡á\Úû¦|ìåÓ›MÆ;×ë€ ¤ ¤ÇM…—Ðqù«c. Á÷ß·V½MZ|GÙj䵓ƒÍ–÷@õÝ/Üþ•é?G›w¹6{½3P1Tª±?¾Òe‚¨ŠïüÀ 4—†=|º§ë&¦CÐd\0uÒÕ'¤Ü"ãÌÈÔõ½§ì†àûŸ t¥=$ÄQpA”"¯1„r$ìá1Y_À,ÓŽÌ™$z›.¤iƒŠ¡zôJ— "-¢¶Ê ÞÃðûáZÖ¢ùôÜéh2®CIv%²qz¸O‰A:²ÚÉ Æ==š•]c? Á÷ÿ "[–¡‰vNHuò ŽÉ&¬Îcãõ$$ðS\?Üp«¢Ý‚Y›á?O¦âËÓ_’)G÷ íVqœt3R|Ÿ¾µoÓ>1Ðb•ˆöå`È›KÃî>ÑéÃÐE3GSp¡ÝÇõOia4j°B‰‹tTH1þÝÉué#Q²Ëéa¾ÿÆ< â¿ÿ‘ÄKÂãšÈD%ä5X¡WX5ÅßF-XdøÏ“¹8 òj4D­è+/i|72j¨øáŠhÄ’¨ã† £‡ÿ²o†ºÂPžÚCì–\qj­$™ÄW²Šë®Xp›,j!)eS[Á u m fÖ„–’ªóÄIú'ÿáONÃadñû¡¤áÃÇz U<ù(ÕùíÏt×ÊÁCØÿc’æ½ç¹Ù…S]ª¢«þ2e"Óî©Ô‹ÀMfßÀ±žK1‡ZqUMKÕTcù[ÍkMØŽpàzˆþCÀþ;“±Ï!î—ÆÝ*pøT÷4ˆýRðöß•Œõ\Š9lk" \Oª©9 p;DøïFÆ.‡8—öèL0B7bªi±¡„ `© qà¿;û¹s¨31ßû^N×ç³HfÈ!âÀw2p1‡wöÌ^`Â}TG5³‚k:ê2´kûýy´.nºH¦|/¸ppÇ ¹tè(Ü0'ˆ3€”±±Ø EýõÏüçRó!U,àeö)ˆgÑg*C_ý7;+I>4~ìÝ1 ƒ0€áž,à%œmœ ·çh÷â`׿6­m$СÄé5ËÿP~xÁ‡vm­ý]Ë$d@ÿþ—~Ìu¾C:TwH‡^ ¾p‡tˆ)Ü!s)0VKù¹”A†E;d.ÄÌeχt fÎé0íµé¤Zâ`ºïÓd:d¿TÈðh¿”½.0”~.ÿ£C:Üâ†ï8ôV¯C@R†Æ7¶Ƹ¾Ñán]S‡Î6Axa‘®ÆºÔáš:¤ÃøkÝI\׆?ÚÎÉt{w¾:¤C±g·:‚P†½ÃéÄ&›D¢f*š ΦQ»I³7áÏ¥hfâyîá ßÞ.‚wÖh%Gd'A0D.¤ÒÆ:b¶8Îÿi‡ñ 6µ­J%EÁ‘%BÈÇŽÝ£0aö:Sì0Å€ (ØZ k½åªµ‚Ø%eÒ‡¦ÕKøs´– {€-ç¹ÃËð ($Îò²ª7¥ÃÐþ˜Îcoö!¢‚h„Pè3ÔÆöãìߥA‡Ò¡ˆÓÐþbUYÊL„‘AÄüeÏŒQ‚(ê­;0[þr [§ŒIm@ì´Ô^,´—Ðx43l ƒí–óîðøo˜ŠXMöµÈç¡{¸z NcÓ¡7Q8UÅp¢À¡¦a?ä,§Ÿ÷¡{¸„© b×6©V Š0‡B8³H´NMÛÙ.Yê®ÃtDÑLTÌÄB8fÔ,4 óþe©{hƒøe¯nq„(÷ŒM¨FRª!!Hä A€…Kðs´ò¶ ¿ò;̚S„DP´Œ±&@aL`(YwøsH‡:Ä qú$ö ˆ‚IŒµZa¯ŽQ†a0 ÷¸¶<Ë ´Éc³— éš^"iV!CÀ¥£ÇÿÝáã¥L®P‚aß!ŽC¼ ZH,DÙKSB({D%ÚÅ0v‡Ã;Ä%$J­Ì\¦…3×*¡pé v‡D—ØÌTej©š5W80„ÿì×!À Ñž½‘‰ç!À¶—€öhìÆãûï0bJdŠnp#bàŒî3T‡ùˆY"R,A~ˆHÐbïŽmbвÿV §=–8`4äs‰è®ôÛáKIeµ*\¿a:ü ÑS#d ¶‰(!½>óÍ0ÊôiêG ·Šh®PG©3´tho{wl C1”ý K|[£qŽT)ÃÑü·ƒjI]b0{/Pì3t‡¡í>Ì,€J¸Ã M,y‹¦(ÿ{Ö4퀪IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtwizard-modern1.png0000644000076500000240000013004512536324517022653 0ustar philstaff00000000000000‰PNG  IHDRÜû¬SÒ¯ìIDATx^ìÝi°dWu'úµÖÎ99Þq¨Q%•ªTR©$¡I  °eacè1Ùlƒp{~v<4<íÙÝt»6–eÉKBÍ yBBCUi¨R ·nݺSÞ›™'Ï9{XëÕ E€~v{hJ÷ëCÆŽŒ•±OîÄ>Cd¢ˆÜµ3ÿë—o†¬ÖÆ Õ¨­&CH€  (Nnˆ€p’†“Â1("  € ¢bf€ X9¼l}ÿ¯ª]z^Kßõxï•¿>††u;C’èh0‚"`Ý@ŽÂwµU"Âpr@Ž Ž 8FB£€{ˆ(·Í4oÿ幯ü†Á×|ø©[žvd 5ØŒF¥€Ôó‹ŸA<‚D†À1\ãÉ3K‰"Kd8V |€@Åk¶x„soƒÉh4 ±`SÐDp ‚DˆQ€DVÃðˆU-üõ7µkÚyñÄò|~ÙǸaðû·•Ÿ"ùô$tÀW ÂÀ,%†ë_{ô¼ënëB•Cg¿†€hš,Ê!²HŒ"@¼zþCä»~¡¬’“çK¼æòæBGu{2³$y•¡ôÒÀ|§¼ð”ζ©úG^Ú9õð⪸4ÇEÞIðR b¿çâõ¾îËÛÀYˆ} B@ؾjG¨$9Ú™9C-ÜôÍðð¡M€à¤?¡“"œ,¬Qsi!!¾íjÃi7ܾp§G€¢!ecÉݦ5³áôòÑû¥°+즭2½2*$ ª è¿¿}s3cxžœr œyøÀŽ êX»øž,(zÓë;öù¥]uøgY»Îþæ«á?|&¿üʶ{lé+ƒæï½ÙÝþ„>c¥÷³ß¬Á?f|½ýô+݇þ‡›»ºJþÉ€Ož¹tú·®ÅzŠ¿ô™jݾçûì ÷ÏHGIŒ±³ F'W¿‰jÍî–ž}áð;?²ðÛDÙˆ€¢Ț֨ðíR$-@IJ“8Cþ]#èîß=“˜m¯:ߤŽÿþa¿i‹Ý1†ßØé|SoÇF†÷=ìòºº|‹Z™_ÝÇ—Ÿc†@n{Ü­8˜]àXã3F¯8²‘wãXû™G–û[ïÛ=ý²sÏYSxh§[wšÊàî‡*5gaSËß=.Ønwl2›k³¶Ò`ø§Z… Nˆy!òð3rÏÎ8Ó‘ñ1Œ¥ `A8Š™û=©ÜòŸ}rèGŠÚÃÙù—vþð—Ý÷ +4   Ò S0 (ýw>È10Ï?2‘ÍyçfC3õ3_Roß{÷´îâõöW_>t½»îíãŸ:Ô¼rù/•ë>ù|hrró£÷Þ´Ôø¡W~ÙÊã¶7ÿÂÅþÚ;ëìá–Cöêíj/›-Éúåõ7ùm?2±¥œû•}‡›µîÇÞ;qÍ ³õ­cWœnx>CÿWm÷ïþÏîË·ŸñîMÏ|æaòãÈ«q ß5V!õ ÑJ"Cáäõ—è+/Rú•0[@D ‚  sÞ£šøýOåÿó†ö›~,ÿò_¹n!ƒÖ`,P¢R ¥¾cGP$Ò€ÚF4+Æ•?gmõÙ'ë_J×_~)ž:zäêrðÀn_0=ëïГï;uçÍ_i}øŠ3¯Zo{§¦[µ\·»¼ÿÅs9MîÛ¥þ“Þü|ǯIüדW8WIÏüøºÿø+·î½èµÿåÒÙ}­øÈ–“Oí|zùæÅïx}{ïÝßü†ºÄÃPt²zéèŸLN¢9¢î!µ¢ ᕪÿôÅp×^)  ce„…‹>“žsq㊫»ŸÿtíW5ßpM~ýï“ÈLA%PhÐæëM×M|þ6Úq3GÁ¬CÒ`ÔèÚáלŸåAYâPâû“7|ÿæÓÑ>òd>íñžÅæž]!^ZƒY JÈ)Mó7OÑOo=ü š'í#{6J£D–qO/Üz—Cé)Ý{†Î»‚ˆ´úà›Ò©Oæ§_~ÖDÝ¢l8}ssü *”…¤öä~Ë+Î~í4ÕÚ€µ««äŸCNŠz…¯%X û`|z^"A@p@i`æ¼gÖŸÖ|ýtÿêªn »îi¿÷£áé‡àë·G° dd4°€&@ú¡?t@‘!‚00­ƒzŸÜã~ÜçJó¹…Shì+ÍyöÎìzÎyÛßÔ6Î>uÿüÔÝÝO˜ÙSÕ?Y©6ïÙõã7û#ëž]´ÓûwÉvhYàúoý•jSù?v`„LJ®ÿZÿ+GôÓwÍõDž<°§ÿ¶9•¸ûŽ,9öï:¤pÜÜó|øP92w×OuÝ|º ÿT«„Oš$`¯Ä@æ9l_¯o~\œƒêhU¢€5"û+îÀÓ Ÿ¸6~–¤r»êüê[ãì~®Jfm@1 B8k7lÃvŠF-¥ ¢£P…euçð”Uïz ?|×Ììb•À@X•Œ…ƒPV︌lùàæGwüÅ[¢«P& *–àJ¨Š>kÿ“ÿý}%¬”0}›ç€ ¢ŠF‘&AD|nç, À|r‡AEèäûÉâó÷ñû^Únè á8@f`®ïž³»Ÿ ŸlùðÿyKVP™Xz!ùÓ'Î@ÎÚëê@] ­*²•HÖ@$Ñ „#x‰,Ö* `1àŠ¨¥òH€ˆB† (­:¨šD“ÚÔ ÑD„‹pˆni1®,VKsÞU¶èÅ|€D¨-¶3 ÈýÚD×!ï«49.Fß]Q”ªfJ'ž#4•'[‹RéF‹êu@Íž)­Hp¥ñ>VÑ !FW޾èåºÖ|a>w´ªòð–_ê‚+5Š˜ŒÎ=ƒ7Ó¢_Hâl;ˆ\¬zF0i.uPŠ ¢p¨4ÙDkMªôµ@´ Ä,Hƒ¤– –¨tD¥9€’JgJ+…‰-P6œøÈ’j}ñš$ƒX¯'"è–mXÒƒù~qd:8½_‘¥zj×oÕ@Jg[5ö]¬|ô1VNbBåÄd M¬h¥b,Æ ÖØ1éM õe¹ v;XÅÌ)±_Nåĸþ¢4jà Ҫ¼Ð}ˆAÃq›ôT²¬šm×ßlúYM-Ù‘8‘XðM¿¼¯ ³ªç *­™ 80Q$‚q-p@ÄZ¢‰±ÑŒ"ºP ¤‚¥˜Xê`ëΡÑzŽ MÀ;gxëX¶ŠV«‘Ž…vÌԦ6L?r¿éôb±Å^—j™7I‘ˆ‘YD!B’@»¹Û㪉ÂNt¦QFlõfÉs±0 a%›ZƒT±˜¤ ‚®¨P`Õ* ÇmŸjHPÆ1 ØÓPxSó!B™̦êÓÊ—‚ÉËXö+¯±+i߇D%BÊ`>`\•&ìA® Æ Z¬NÖbÌ”Z –bì•A2†Ž 0ët×´^f5›XÖ£ª5ºÁØÙ€òL'æ9/‚U“à¼b•$ @ D&×íC(¡¦!„H8¡-}9s@OŒ†ŠilX7Û‚H|¯:JêÍvêi '¬ZM‚[YZLÇ ìRj $&)]Œª#X‰ŠÅ2%ZS³¦[i}%•G£µ‘ŠÊ›¶©ª S ŒÊb".C€‘!‹5ÍÁ6M©YoTJ›ô" 3+ao/.;:ØÇ4ÈKmW% AB«P¯Û«Ç:Kñ%¤Ö˜Ç(2º~Ú)åSËÞãhŠG‚YŠ4Rô¢Ž1¯„UĈàÐf&Ñ"¤+¥ÒT%DÆö§¢NÔ¨iR)#(1  «V“°âz9¼1?”ÌjîyQ1yô‚ÊŠ D¶µæTØüâõsÉÇ*HðýHY+i(®ò€|” U„¡¥sÄõsx(Ò]Ï>ú•ú¹¯5(~Ì‘.Õed¬5Ïä®pÞGzLú ›5²”ÔëúŒ‹hz c,½Ê %–c(‚Hl­Ú0"ÄA"’b²M8CåûË1j%ÙÃD%ª‰JÁ Ý*ÑÇ´óƒÛ߇â`À±a´ &\P:ÛôãÓúåN[›§!«DeB‚A5š1ï•’$ADeŒ÷Y5lYVY«Ç>õŽv:ñøÞÇÊMgés¿—£{Foã²4†T³ÅíàòÊ2é½y„=³—­Í01ÆÔ€y|íD笋—w>Œ®D`1ˆDÇ1+ L#h_y•i­•BJÐ r¬r7¨Ò¡ÐH{Ý Ñ ±©¸UˆÀà¸sv}>N.‡\(¢Ikc“i m×G­u:49{èœûþdݾ¿šã¢“%-O’¦q¢ JJöbŒñePZm\3óðàþéo~öïu‰ç|ÿ»[P3™¥¤¡%B¡Ä•Ut¼¦]N„™+NöÇúS‡—V 8%¤­lÍ"‹¬!ËÀXAŒB‘´a J1iBhKGERHJ* XUIšpÑ—rŠn•w¹Û“ÅßøÁá;àÈðÄá_Ä·w‹ÌðïjÁqñðõ:nyß7޵û­ÿtçS³Þq÷ñn_D¥ŒÖpÿ­Ÿ;ÞêOvË¥}~òw>z»fàßÈjBDÄÓ:Ó›žÙ´ü´ÄêÔ¥½À¡B1òl6]ÿÙ¡ â¥J»3K‘{ËÕ|%^ìn×J/ÎQj5±è§÷íÞõä¡Z¦»ã[PA6¤……½` FDb¢0ˆ”QŽäúà²?}\G¡‚Tɘ€\p² À Ö¡Ât£½$! ¬=DJ rdWyP(„1œ¥vl½_ŸŠJZ£ŽÌ‹e‚+¾³øèmöÛ_¸ãåWÿpï¾ëò£¾ý%‘ºúÊ+f¹ùﳯ~ÛÖ?ý¹|ÿÇ.½êÝüͯ{ëÏýÍoxÅ…WÿüÎnÜÜÖ`­ãnüû›·]rÍ…›G®zëÍß{ïιLœ~åEg®™X{Óyà_ÓªçwÕ¦6Šh"G§ls¢7-\…biį N7ÖF)ÇŠåáªêµ7.ëú›îûÏ@+q>æ!x§”‰ @ÒüØtÏ-çÃáˆÙtZ*˜Ô3Åbtˆßú+¤ˆH£H,Bœë$Vå:µaEiBµ:š‡Ç9m Öγc«ÂùàCåCÅGÕ ƒ•wŽï©PJ'ÑI5²‚"W¥‹ÕrÐÑàD0«·×­Am° þ¹Fë­Á`)²ýåX·­,)Ê%ï¿sCÛhÕÃJ¿ð®{èÆÏýåܾÕX£Õ,1àßáfÒ° þ ­"ŒÂ±ŒÊÖI§b¢çPî?#º|MD a?ÓܸÒZÛO†Q7ëÅà¥ßøËñêñÌä±ÌC(êÐ7¦,Cô5ÓéO?ºëIØxŽ:e[jdPˆ=( 1ú*åcá¨ÙE&Tu©Vdd}$—6}S¨š$™ÊH%™­ÕÓ´fm½fµA@ Þ ‰i‘N8Æà\¨ ðA˜²Át¥·X^bæ;Ü^?.}Ï+ËÜY†ÿßIPÙØØHøÂßüƒç¼á?Ýž¹þÚÿøÉ÷è£W½çý?ñ¾m¡'~å7~íÚ|`dÃy/ÙX»î?yíûu/ÀÚs^ûî«&?ôþ÷ÿÂO¿ëï›oí¿pýsÝ®zÏÏÔž½î#ýôû>ø›o~ßOž5Ñ„{«wÖ¢/#VJRd’X¡©£2+i{rå €ÔŠ9$ÝBE$Ž]ݾ¾éÒƒí5/~ê+Û“Û¾yvk¡×®\ÿ‰Ý;_|þæ †ö/å#cmªüÛ+N;OkâJÐ""*»^aSøJŒÂ `Åg­ÌvòèA¬Šëü¯–ç¨êÇZM †ÊYc …V.²"ÀyOÕj4ÔBkMªÁ³Ž+ÇZ‹¨¨bYKìKL¼”SÍá,[™™©úójØ |»µç¾îK÷¼tx²uÞÏ~æòhàêßü¯¯›Œ¶ozxÏ@²‰Öeû¾—SMéißó×_üZ§WÀ»Þ2±v"Õê3×߸Ô-àÇßI&™˜˜øÔgÿnq¥x×Ç”Ÿœzù'®û‘¹ µÇ&Û™¹é‘=ÎÆê—|ÝáØøÈ ·|}¹WÂ5?4¹v’BþÐÍo™ÏàŠkn½èÍcc ükZ…êôÇ—ŒÜ²éC eP%’+K¤tTièí™<{²è +†×nZz&ºüÙ©û§vl˜yb¬7;¨·:g½¢ßÚZÌ•÷ß~ã;ܽO½îç>óÙ¿¸àò7}ã Ÿýðð#/ã®mo˽Ñ…è1 ˆ+QQdÑÚÔRÓLlš‚50½”k­^ÔœiK¬u¾öåÎ-_L·¬!0UgAg-ÐÆ…(*@m(SˆØC^bÐ µC(@¶.ÑS=ES»¡~Ù¦Àéoâgw×'Önx÷OÙ‘qxAZ•—Òø¾Øù·Ç)HABŒ"ÁÛX¬·Únš?4ÔÙ£°ØÆÝ¡³.œzÕ÷Ÿ±eóKŠgG[µ•ÓÏvùÖGoº`×ç÷/vV»µï7׿³]³éþgœyzËî]Z¾þ¿¥~Q$‚V†Œ$v,1è,C"âHÀã­ÄK¬*Ð,g·½áÜE‰®‚dþ(‰E_(š‘a ®êt|¾¢Ä%ªY‹ˆ „è LR2P#‘8¤¸,`PJ/ÔíäšÌ {§eÐMê£àW°Šà9ˆ¤HÐî‰ Çu½™fÙè?ôÒ3¯¹fäò7dç] Î_{Ú©—\qÞe¯»ìü 7\xEÝŒgË’Ýñ»rðÙ^·úæ¾ý#IcnnúU‡îìé6×LÉ´%T „¥A”–!F2†óXËP<ŠCêJL˜Êròª·È¦ìDA"l$Q$ ,e š€YœS@ˆ Ñ t¢˜LŠÆ"Äh€ê㢇Ӊ±Ø E·ÃE ("€á„U«ç h­J?X ̹—eë– ‚ª±íü§l«,FîWNBpX0ÅÓ`GZõ¤a&¦vßóõÝzøÙW§¿ûãµ¾ý™¹ß3VÜ#=Õ›››rcJÈ@A(ÆT¬ÈÖtwà+GëÆÀå¥ËMM‘°ä¹ U ‹P#ô"µT7 k„4Ö ‚D±:žŠÂ›ÖÈñÞ  © Õ€Òš]³¾šÚ¨S ÅrÕ=¬ Õ@x¡[…Ï'A™Fð‹ˆZ ª±X*H%øæö‹ðÂXoë-€dšd¹*H×&EÏÕœo¬!ÛñËÒÏ}¾Qªhj÷‘+.zzÇ`o±gAb\™ëŸÆË9ˆ²äCŠ,D„‘,U®’ÈNÛ¼·RÛÒ¢…A”¡çWZv¨êõc 9†¦x’¬I$#J¢Ò#GD€€hŒ ˆÎ‘}tMb‡6r{rxíƒþüÞ°¸¨PIô„ày«V¯å6I9äȹ˜ZÚ笭ý29ûÕ:©ÓâÁ¾R£Ãmð¡™bð~@ÖöcŒG`xª¾íŒB*NW}·8¿˜:|¸Súyq£¹Êî¿aéu EH€GB +¶ݨ0bhæ•GŠçÑ´ØzÔ#ý™iŽ‘l‚Ѧ¢jÕ£‡D(–BáÀóuJBE% R¤µ­¯OÇÏ ±6ÓG ƒCè+P‚”Ôày«V“â\”ŠÐBdŮʧÖÕ¶¿fHq^ôê-Ñy·d׫׌Kë¢FmUÔØ—½²Ñ_ÿÆØyËÝ-ªÍ…;0]˜ÆF°¤w´ mvgóÖJŸ)U‘E€µU𹭱ВÚ@ Q*ƒ{ä´FQ 6©Z[75g¢ë³s„Îr"BdÁéá1“ ˆ"-! PÐü@^Ùº­µk§ž¡›ã`3LÔýñoX_ìÁ²Ò3 ž·j5 $úçO y¾½Æo:o[-ÁÒ5j)*½²T¬–L®‘"H¬tÊ‹9öÒW7¦²¬ÉÓ¥øœóA§'Iî ûƒ`Í*.Y%’ŸaNÓ´Îí$™êK¿ëûªtÜp¡Šè¨j-SË0Uâw—Ê¢Khˆ,§†½Òº>dF¦ÔÄ:³~½Ø¦(.t–wçNßk­èƒmf˜]:„U«I€çD‡¡¨ M4, Ö‡†ÆÐ¨Yv|ìwƒè”P‰Q¤%:×Ïj­2ÆÌdaý(=u€úù¶v¾RsËífEåÞ™Cç_pqc˶È@¾?êºYmdrú®ùtnv/@ÞS…ƒbà"BÝšJt€0Èq1¹Z#ÝrŠökl±‚ý•àg$T Sñ…s @ 嵊,)”(JReëªVgêö(ØÌê0-¿rpöÈÜDg%ì_¡„¡žú¢Ç913z¬D}ëàóã¿ý±æ;Ïvö”‘MEGàsâ:óÛU’Á «V“€˜\ yÔÐiŒC‡A1Åœ(Dß/ðp J¬/zeËÞ`VK¼ƒÂsfi½b›ó¦û~P&!uq*§#5šéCyyá©›7\ü2çuÝÊÈÐÈ)³ÓÉÞÝó;^Õn ¯Ig}ÏQ’* ð¢Ó@+¸ã 8AÅcEßJäX)à À'0ˆ@81ø<CpíÏÂï|tL6=3 ¥³µI_å. ¢Màÿƒ£_Z˜«b’5dž›ð¿!¸2ˆN ßnÐϠѨ@à5 ß"Ï«z=ïBC§³Øž´ NèvæûMMZ‚”/û ‹+d²Ñ±Mð Vúµvþ…ü¿äÝypTUú7ð眻öšt:Ýd'$ˆ€aA•qÑA—‘ŸŽŽŽ£Ž3ï8‚û‹.¸d"뢑} $Y $²‘ @’t:Ýéí.çž7,–ƒ…–ÎkýÊ*?uºëܪsî_÷[uêT=õ|·RÇçíPµ> R7ˆ!—Z‹MÓ4Püˆ(/2@£ (zJ<^¯Çía€êž–ç9¦Ú)Ù‚ôÔ#ý”QtV¤óûTï\{ÙgŸð~‡ªj„b[DLOG7\¨c0¢S!ŠF ýŽŸ…۱¶€¬}u¶øvl)€Íû!+ŸîÚ Û÷ÁŽ<ØÑÿ¿väöº+úGÎnÈɽ2ö@Î.øz7äî¾ Ö©0«GØÄ©GÓü‚‘C †ïp•l}ç©ër²>ødC\VYV€k¬­éòHð=Î×çm…ëU–]»fãš5{ ·jÍ–*øOžÆÌ‡døÿuº¦Æá•¡ŸÔ]t¨þW¸Úê–ºÚ€«¼-•›s6-]\tÞ?Âñ½™«ÖnûlÑ'2\OS¼kW|Õßµ÷à>w@ý’ RŸ§»ÛÙÚÅŸkf„¨¶0T¥»Ê³TÓ4†õÔN,£ñ:^/ˆŒ¦ö¹ÝX hÀz}}—$v¼]'¸¤ÄñªÞ®×°_eNñÙI‹“RPKΔ0Wç›ÚŽÛ |òk« ”‚×P`ð0øºÊJ‚¦Ö¨ŽPèZ[U²ì•ù·'%€ÿþ œæãmˆ˜¨e(U)BÜg}`Î ÓS§>6ïñx“üeúkkv$¹çôá¯-(oê€Â¬]m¾Î¢œê3‡JZ{ÝmUüßW32‹ we¼öÚ‚ÜÒÊ=[7~±zÓúeŸ|¼*ëòÅûõ–}íŽóGŠOÕìÊkq˾ÕÓxàÍ7æW4»OìßúÖ‚E•ç{Avd¯Ï|ïí+šPqhGC§çdÙ®Š²ƒïÎ_˜W~êHÉñ€&•WWÓÚe[³ó?ZðÚê¬#²»ù³·Þúç{Ë.º¼ž‹'-|cíÖmËWŸ¾xaÃg~¼$«¾îØšŒ%e§»êŽæT¶¸ÎV|]q¼ô_óßÞYÔPVtÔOIyaiá½K?^áÐ(‘;W¿ývúÛúœ-Ëß[¸|}q]ÕáUéïf¬Éß0ël··¶tW›[ÑdWöŠOß_¼nßÎm N«ÞWÍÊ;uÖ3 Õr­r÷¼™o¼6í¾ZOÓG‹.ýêÀ‰Ò¯ßZ°¸¶µ—z/é0>ñè}‘ƒ†ݲäýE_,[ùñ»K·{e_Á† FÃуg5OóÞÜúò]ë^ŸÿÊWk–-[‘ë%ôgH‘«·Q{ 3nŽ4öA_pBåeÀªÇéu;UYA A±ÈžÐ!J$]°„x?p½’Š*aݺ²*—l”0n„5Nó8dJuœ¬ê­·ãeE&*ƒLY]äFÖHÛ•R“b°A´—A\vãÐob ÿ/b@à*ÊÑÆd@ûçî6ªHðƒ¨¯wÆc¯¢ çŽÖÔUì)àÆ.t@¤®©4¯8óØŠóç»Z›” ¡3F6ÅÚbìƒÕ“â´<"Ù$$ÜöÜ#w1Wâe¥U%yy™‡W:§dø–ÊG/xiNYÞž%›ýrËÊå9~É}ö‚ð§gîÉË* àĪ#e=5•'}éÉê#ªjÏ(šZ_sJP=íJ’X“Ýÿû劙›'ýñÿŒ4ÔÕÔW{X£•0ñÖižcyûª›N•íÙ°ipÒã†ØlKí¡}y%]uåe³_~áÔñýUµ 2ÕNÖÔWWÝõ§§¬Ü´~ÔSŸ5rÐîmYÃzÆBOTÄß6/žkj=ÕSyô`aXÍ\kCY züŒqB».á7L1Á5ç=ݸþÍ×?Ù|ôl*[*J÷ýmÁóþò‚W^Zp¾ÛSY±vÏ‘æÇþöçáQÁ­õõÝç6få;Üš01Oy8±íâþ][}#gÎÈ{>crdcáÞSõ…§ìS^}q^À©>÷æ?à ÜÏ„ð9/„ýæ û=¿Ã£Ò¢nJ´XÌ"Ëé4U ’ú\„†jHö†úºX†3RèM êü„CšfÃþ§ RIQFª‚ª0ŒQ4†p,Oüª ÀøXµ»Û¯b¿Ob@SD+gfT_·ÇÝ£Ç0Ðjh ÆHýÿ:\CX„ÄíbÁ¨ ¥ÁâCãCpS|ê© ŽÖ@„Éûv×?ž|¢U6ð²£>»Åuÿ˜ÂííO¿ô§H›Q µêyD©¯Ïu5åñ)É%ÇÉýö®v,Àuì1  &nä­¯Ì_ððm£Y$¢0¡F zÄÈêý£Æ$@•e…0Œ¡OñÊR·ä‡~ÛC8!èþöú?Ÿ~<Ì„úרš‚-î¾)©•ÇŽø ±º<3ÿ¥çF$„Yô`Ozþx™eD¢IRÆF/ñ*J—ß‹,Ö ú± •eEòù¨Ò?Ó4DyŽ¡ŠÈ&MWš“—–$`Œ‰*+Wïñ¾Ñ°ï`اMMné•F§9Nd;}ÆI·w Ixüã¯ÿå¡{îžuÓøAÁ<œj«ŸõÂë/ÿùI³Ü™:8>§‰Ü$:ÏÛƒËÛÔña½»+°'Œi¦{z:±4c„µ¨ò\Þ=*Êò3Ý™#0Ò¼‰ÆP'ÒuxY›ñI¢àl.0vkØÂ²¬èt:Ÿ£‡…0 €hT$©[’M:ƒèç‚8ü”ðÔïé¨Yñz­~ăæ‡Kõ§å¶66™•],•Y]ßÞÞÔ®²V_‡E§íf³úaòãb×Úü\3.œ ˆ‡ëcpõQä@“À/ &›JzYNtøQ¼¢‚7”t{Šó£Æç;rÜhá¸0òù_ÿöÉ¿C?óˆ'w¤K ‰B´r‰h½\OÛæí'†ß¡_²tStÊÄäèèøááÍ5kÈú™Óƒ/ïˆ5wNÄÐ(}ˆdã;š%¸L¼ü 7’ ‘;.(L=½ôÓ÷ÿaÖx[ãÎ…ËÖw>ü‡GàꚸèaÉ#CÂÙ5™[î|øQþÚåŸ,Jœ(`cTê0nÔC/}ñÎ{â˜ûfÏ~lÕ'ÿÞy¦ëÅys‡Å7nÚžöèäæèð˜Q©‡¯\½úÖ‡æ eϦ°ØKj¼U—Mþýÿ¬_”Q›òøïÙ´t:cˆùÈþÌeƒ¦Þ÷Ðø “ã@ÿ×Zµ¶Ä?÷ÞøÎ>3\– ÿìã÷‡N˜õèƒü;ék–@dP•Öm.2sî¬!öÌÏ7ÆNI¢‹K€~ŠÛdœœ.‚êõú¥LŒÃgË6m?óÇçg7ælùwú–´gCkÁ¿}8ò¶¹³-,ºçñgÏWµ:%‹Nÿß÷Q¢èZÍZõ‹- &½½®ˆ›ŠÔÀª>?ñ{ !‚9DÓ0‹‰ë‚tHo r¹½I5è ]šPT- ÙyŸëó/-û¸Ù#û Ñ3z+Ègõ „ ð>œl²Þ²v½:hà ,•-J§çLƒ£"[³%r©wS£®]ˆXµMƞöüˆ\yd)e)èMpëDj"OÅÅ}]mmHg`õ¡‡Ê¹m›ØKç‚ii°â‰XNaPP•€äñ÷qú”¹ÏŠAVø’{ÊkcSãáŠæÊücž°ßN?BSIΗyå1#ï~tf‡|¿Ž“Åû[usï¼~Šæ“'„°øp‹îLùž“$î¾´DøÑæ›t;‹Ñ/¥fmÆE¨Ëfá Ö`ðòú®à!ß%ÉXVЋFÄÊN޽ÀÑàP5èqpS ‚¬i€E‘ ø|]çZ½T§ „E–p¡¯9)=Á½²ætvja7…0˜EŠúèXWµY½xÎÓ,2C8^Óóûbÿ©®—»ìå®È]òÖ_>xëŵNø~Îöææv7ü‡€«­þ¬~˜çìÊÌB®§újk»;ÏŸksÁÔWžôV-]~¥7se–ç†oûµUob†SYƒ‰UY^À‚ÇF˜ XÐIÀû°(²~;:Ù‰bŽcX¬(Š×À/)Ý2ÇàÔAИ6įJ2fTªY“‰„£j2EVU1ŠHâƒÌ)“êRgáóÝjÎÎK5ªªþ@ &M ¼ñWç¼{[ÿñ´öÉ«²Ý*™$Ï멪SÎÔÆR ‹%Iª«B "­28.4Lá*ÄóšÏ«ñ¬B5Ð4¤¨šêC”Â8šŽ•´â¿¾üê+ÏÝ{î@ñééK–nìh¥{·¤§oM{ð©ÇfÞyçïžyñù?'Ð@KuñÒôµÍ‡ òvå•ÎUî_ž¹>oû—+w>S¹;==}oYmuùáõ+?\üå.;Y˜“žþU§«ëPÑI"9Õ}½ªå‰V—âwž¨o!J߉ºó5‡¶öoßW\¸ßÔÛ^öÙ••Çvœ>’_«ñVƒ¥¯³qCv™*;•ž"JϡҽÉêïnÙ™W}Ó(£Ü^z0ÿx‹~RrÈîÙå­êŒ 15Õí 1ƒÇ$´¸;¤¤’ßMWŽ–TìXŸ Xø x¯£D!xý3”À÷õÔq´i­uù;ZqÀ¨Ÿ“6èLŸ©ºÅýÞüçÆ<ðÄ] zøODRÙà°p+–UcÔ@{ˆ«8ñö»â„î ½ý»µ’µÇn›óû›‘µGD°õ—·SÕo4î‰'Ÿš:<öΤÈ÷³ïMåºfϾg°,ëQˆªºIwÉÖÆ{f?d·uz“À2À›ã†$…›e¿5ÚlÖ`aNЛ "}Sê{ˆ&yõöaÍ{òž›‡0€Ñ`±ÞmC¬9,<”Wd/ÑÙX üD¡Ô­<~l°‡ÇD™&ï¡¿@ß$ÁÌF%ˆÁ~ÆL0¯3™E£ sŒ*© pTU‰¤PEC*kÌ«ª(à—Û"ÔvQës‚‰cˆEÓ 5 H AH4ðHB  þÎNUUEÊèxcêpô"*Õ˜˜a¶”Û‘È*ŠÿJ¾{StKŠ‚.6s a–BïE¾¬8ÁÓ«ïìÓÜÎ^€‘¢PqãFéîV{hîÅ;jV/‹¸Ðà[Œ¨§¯¢²ÔÀcÑŒ Ãÿ}ÝÈ'Ìœ¸ý£·6á'ï—20•¸;#§Î¹~ùŠA#îÐq×ï£Óâ`ñÊwLŸ””.kÀjkuž:)¥¹´!j’=ë«õ’Þ’8$Öd s–—¹8˰ûnÖ/[•–™0~­ÉcB ÑI}k6ìµFG'ѺðßëCíƒ7¬Ëbl‘ê¥Æ.&11>z€Ig¶î­~çýå—®|²Ã"™ý%=‰qVÄY“GÏœµvu¶>&ŒC‚7gÉâÓ$ú¶ñ#l¡“R×elL:mÚø„UŸ~΄ÆO¸ÅüáÂƈ¿½sçÂ7²ëZÓb™ýg u+äÿ±wŸAvVgžÀŸ“ÞpsߎA­V£€"!À€M F$³fÀ^Œmï]TÍÜoÖZ)¤ÂPg3n¶OŽuû7V÷mƒýår±Ì«ùRÎS»1I;’ðà œƒf” °Ê[ÖµT'83EP„s 0ayy×›ÂE—nbýÎ=%aLòJ50 F~!¹¤VY3 YÔs¹ÁÐAòßj-ôWÿ3ûëÏŒP@( ¤hho7M Ü?Pε0@5¼Eƒb.«o M³€PL*uRûL ˜6c& Ja„{: ·bUBy%«‹%”Ÿ’™ƒx¬ßL ¢ÀÇa…{e›â„Cl†´_¤:D˜ìzøñ©ÝU„tÈ(>,•`¡Vóœrè–tÓ½Ï0*eX@¬(E£” |…º lÁ±09îù…?XÿýGÊ Õm³oº9O©¡H¿=L±äÃHI>6ãÑÿ[ Ž&AT«¶×M×:ш „«™§ÐÎ8fîˆÚ,D b¢I‡€qu …¾‡G¡/¦&hÄFÑ8Z­ÆÙXpÀ:é_%C–Zj¬ŽÌƒžma¥ À…q(¢q-‰Ñt<óô#™&››'J^S}D ­œH¢L¢Dâò1BcŽìåõ‘L¯½²Ö¡Np×WÈåzøU)ÄÚg+Ç58®—œJDB .”p¶ óCÖq1@0-­Îiq„0L›1ÓUÁ1'A)äH\…RNÈ™@H¥ÌAàå°?A #¢XˆâHÂ3.³™2+PfËë§Î>òZãa4JIh+V9­h¬€æŽNõµ¤ÇÌܧä”J÷àÆÐMÇ£QChÅQªì˜Ñ:CÀ¼cÂtÍV,"Q)£ZfÁ×¾žÿæ·²ÿðÕ\’L•*ÞÙ—uÜñw½½aÂ3:5>&Ó¯C °YÍÆŠÛ5Í&†:']O„l3 €¡pØ”¯´cÑǯ^æaUQ%ÝØhšE§‚Ú b!& E\UªÊUnväÔÓ¨õJn"ÕÞ~pÿòO~*ÖÑê÷ QšCÂô‚9cçÚ êæ“yïÁ§YDmºìf»ÄSÚXÈê¬ô‘h3kaxv+ñåø±ƒÖ6%åæÎª'Üâ üÓ÷€02€4ˆ•D¾Ð„y;J ÜNER°"cC1Ž:3ÝÑ 0Gº#ß šâ0C˜íãþ£ íaÕ ¢é¨¡Zæ-b(–ÍD¿¯UjéÒâDv˃ÏbS( Žmxö1™R$8ÜÔ¶ 5¥aáiƒNy=œ‹xì)?@8"•®jmIl1J‰Á À¼ý´ô›.a—œ5õê®_aÓ1 W_©ôî{í÷m¢bìxÝôð޽:>Ç*FR5@+‚11 Ø8A®ämÞ×ß54ÑÖ˜>{áìY )ø ˜éŽœ-Ï©]`÷¶`ç:´w#›ì3¢Ô\®É•,V´ÍR1ãD$Âq,Ëj÷öñ§ŸtC^Ú°n|Í6£ƒ¾×6çîÍ‚Z3n¥´ÉDƒj£ Ûgë‘6¿ÇJ§ÊM 4F!CÆh­M)à\H ÀPŒÁ5àsþy¨}vë׿%ÚÚM"­š[ÍÇ>ÅÛ ­ù}ed¸þèFâ„À 18r4 À`„±Q Œ©s#€ñ‰1øÍË›C¿tí¹ öä+ÛûGspÄš•?¾kÅŠw}c}WN0•«Àa~¥T ü…™IÂè€ê—={IW§å±Å ';‘Ù×>še¾G”á 9¥À/¤®”ûöt­yibx°Z©êŠLZr’°dëÄ4Šp·…&U6À8ƒw©Æ»{œâ¨um©tÈ¥Ö¡1!)• 2¢Ž~üPuh¸tÙéèß~Äï¹§üůÖXûŸ}ÔZ¿é<­Ù{Áôh1“&ðd® ýÐøÂfÆÀñ6îík«uN>9öRåY·Î[~ÞÉ/mî„#†K±oÜ}÷Ý+þz׳o'GtöT¸ªæÆvv ô ds“™î¾ />ñâæ¾ ’ïîìš,TrÙñ¡ÁQ¡ÄØÔäáÀLæÇ†*È£‚|¾0–™(€_œìêìÌW¹WÈvuö–<r|´§«'W(ŽçóZ¹bþfny!eh, Q',VH’*‹H†$%¢l¦±Òšû!u¨ èøæÇmc…}oqM´ÏŠJ¥3‘ËÂì6Ñ“dàUü ƒ„aÖè„ ÊMlZ¼ö¤z†y~Ù5r’'jlTÀ‚hJ@#0°õ…Ø6S­ŸÅ'úUþêï_¬ùûo`Áa¦FaÎL`‡ K*NW«{8{ý¹Ïž~0óÐú¾7~~é}Uÿ¡'÷ݳbʇ—áoþá'­?ýêÈðjKöå솆¶7ÛÒ ,ª‹É¥'­~ðw†ª,6ËÊνèÊåõÖo~rßsý3¾j*£³ß§¶=ôho÷ÎÎpÙ5 :3š¸ðKŸèøÅ¯^“†žt΂ÊÁL,½xÑI5ë^ÊÔ茸¢…øâk®ùPà†«šøÍÚ%ç/^vëá}Ïv!«4Hcæœ{ÅÅËæ@¥kÒYvÇg.ã£<‡>{Ë¢ûW®¡ó–~ò¶%¿ü×7N]–jÍ®«nù,¼fÀˆ"„AIÌÓ¡9HÂT*´2R‚ÔS©5¥.#¶ëFâ©t>ðF¦rå`¬¢ÍlárýBXÍçÊy™+XRÆõ(&F²Ä8I™ôøž–òAZ!ª´É¢D»ãÚ­*j̱7Süɨwl)˜æ—ÊÅÜD !‚sR˜ ôN|öæ¡-ò¦ý£u¨ý——ÿêüæK_ØÔ¹dÁ,8‰¸ ö¬+íîÁ^Z7x`¥N›-Öÿ{?ê,®…z÷­ˆ„%7¾Ò{ñM‹§ö÷{ÜMÅé@6Î]6™™¼ì¬3ÌþG¾ûïkϺúŠp×#ßùÙÃÒqÜéÁÏØüùdÛ?Þõß[=1›ìüÞ=¿ªY<§°ûµ{þǸgŸ¼xÖÜB–4:ðç0Ó .-, ÆÊ!”HNEÃhm£P –åÆÏL‡RjTÈÙŠˆÔžå’GòDZã˜HWæ Ò 7- ýƒn*ræ¼víWLn"UÌEkG3õg L“~†·ÊŽP€§[š÷!‡×äíÊm>Jx¹´ª,´ˆr99„9ÝØ†™ ÇhoJ_sÁi‡àsáXìì…mç.j‡Ã„»û÷í^±ûÔ·¿}£m”ý‹Qô´\uLJç,‡cœ5%¼ŸáÊëowíôßùŸoüpzqÔ·ó ˜vÉ5àgV™[>}¹~yßË×,¿ þLf’`[”€TÊX ?$€”A 85L£•0Øãñb‘Ö¦AhD,flÜå}!…-%€]ÎO)j;pC™Ð9 ކIăɲCæ7µÖ´Ìfáj‹Êñ„Ù–ˆ¦kŠ*&‘¥ä… ôÑ ZÞ—-V°În9}âXu´`üC¿ µb"TÆ 8ÁÜÖº/ÿ§ ጱ»OœxƒÄ-ßøæ-ð.°ÈÇ?ûux¯ÜÖÏ|ºqRŸûۯßÏL¤„bFŒ_õ0&†‚1ÕÄ`! b¤#*Z*&0‹$NjmÞÙ;ìcWbYäP•‘ˆa}QQ¬oHVÆREêL–вV0­õºW­sù¥Lk£¸Î×ECÍsa1´ÜˆÍ„¯ 0Qpìg¹ÀoÇ^ÿÕÓûæã.5Bš.&oOeÃáå ½O#QUî.Tçš½¸fŽËÚL›1“‡!¢$W(A” 0Â÷mJ0Aĵµª*ˆck¥´ç!ÛÑLhžwíòÒäø`ßPч”¦H)KW9rk ,H•P$^Ñ– ®uËÙ\A“…± ÆPÛ6@žgÛ(‘e¡ høòßz½ï´fÀ!ñyAi@Eåq+"+ `ÚŒ™$øå*Fš!šrµ±± kɽðí®Ò@,f´"$D"­Dú” .:Øÿ( X3˜À eXùɪxyŠ5UÄvI¹$òµÞ®D¼¾ÑÎõ&ë›í†@¸£$÷ ÑàD ÀOï…Ÿþè¸ø›¢iT5êO6EGvØ€o™“-tMu8ª`öFÕÐ+ÎøGpš`ÆL¦‡  ƪ,4AXG]S‹û\ >B‰ÁØÐÅ5(*°_ñ‡;;k#̑ҧlVT³‚ˆEêÀÇÀÍ,@>S’– ›å¹Œš`rüÍ7·~äÊ+£IKJJ ̦ڶAgݘ¿ä¦pik ”¯zI]j„0©u‰äH‡Å)–*²S„#Âmfª2šlçêT\ˆ„yȃáA‚âD¥ €)0ªªûÊFÒªK@}ªE”ë»&f0´è賑܀Å(D]˜IÉnŒ%•6Z›·¾8—JŒ´Ö1ã];‚ñ|ÂB ƒ!WXWŠãÜrY´¶^Sà ØL0Ó  ªêCn*LÔÅPM¤cÈ2ˆYv$‚ uå!CHEjC½%lÇb”`£ãÌ(M(Â4èp\â¼ø,L˜xÌ0×2JãX,c#¨£–C#‘%6J["‘0–F@mq„ÊéÙ¹ýB{ÄáJëîá죫·ïèÊ©àbfÚ)aÂ×´T8JHú<Œ’‚´B°cSitÈÕ[“×*?>5#š4ˆâR䤠E´’Z…Jé ‘©RƒlymËÐÞ1<åçÀÛ(…1É'gB­”Œ [ùp‡?ÓUõQ( ÛÙRdÕbJ!sª|`V%{Vµ^PåØ1…@#d46š€&&d¥B©©«Ñ6Á6¦DɪÁB¨é¬âЇGb<„ã…B>ôÒ–çÖmí¨c½ƒ?yâÕ²w´fßÚ§ï=¬7'áxÃ=]ÙRïξûCxor£ýƒãå?QðÒc?(Á‰6½tÿ¯Ÿ|¡*`ÇÚ‡ï½ÿ‘‘RÓ”¿gw7ÌÀüÆÆcű ”TƒíÄ,£!Š ±)‰8–c30Èa„±âøðèÀÀÐ@ÁÊ„ºY±M*˜rY¢PE6–PÚPõ!P_†v¯Ú0úôZ-¬ÀÜ+*ÐÜ€ÇRÀ!"S,a0JØD€V¶ƒ° T‡Y.óOWJÜ›ÂÉ2×iãE`//=߈¡Z„1( ¡’b7®¤1ZÛõ ¤±ÞN¤H¨h„ѤKÞ*v àæŽúeX¹ñ‚…íMé«Î™Áâ¶'_Ù GlÝ9rí­o™• '¡–VÕ °ª©"b!¥ ål!¬ ª Ú²ÍÐÔHz"¾ñ8Æ„Pb|~2> ­ÒsºGyar²Ñ¢» IÝf÷g+*(ŒÑ’jL©)ì„”HdÐj™-LÅ £mrM¡Žô8ˆJ7J @ˆÇ65!E¥J `b 2Z(l „àööd.>m–mÛ–e3ÆNio~cï0aÊ#Ï=õTêÛÈAráç³/ßßqÎY¯¼´ª(‹;ZºV=._®6•­š]¯?›)ê$TGR®Í¯{rÕ¾Ú…Ýyû¥»×ÿvµuQjì_ÿ×·‹áì¯^wÒ¿=ø*­=åï¿ö‰xÐýÝ+%Òg|üªî§V'ZÓÙñ¬o·Þ~Û¹ÏÞÿDçØä¼ó& ¾dÓ·m”æ7?×㇠)·ðSnøèüžU/?ÿFõª«‚Ÿÿb;j]t~<»w’|úïîh‹·^·ýǽ«–4&b-MsÛõ¦=ØòÔŸ|¥· w,}ã‘ß>¿ƒ¦:ˆ ¿ü¥ÿõïJƒC²ùŸþ÷Ð’ 4)”k]ò4’ÄŽ ¨àÀBŒP@,¥(A0AvrrÏPÌ2(°R¸ðXˆBmˆa6¥†)/$ájŽhŒ JGÈ(èÓë)ïJ-è@°RHi(ø'ÕU^C”z â£$Šš Ëšu§Æ™PØ€kГi>5T¿0 "fx[Ø äÛÌ"(ð#Ôb:WŠ5V€„JX@]j¸È@jíR£µV1JÀ IˆE©ñt (e\j‹R8E/¹âŠØ ɹ<þœ$³.dXWñðx¦±>Í„Ò: «~UH~*_³xÉÕ§Ï]uÿÏ*ͦ¿«^Þvê9×ȨîÛôWûùþýWÏ<ðTŽÖ8£=ãUDzvÑå_¼¹ñ'÷®væ]xZ[É^~«é_÷êêKoºsyuçšã¡PŠòLWWíÒO~ï²y™½ëZÀó/8ÿÚ€½ùÚÆ¿ÿçï¯]ùËÑÀúäŸm‹Ù@ÜôÅ6ïͱZ%9#Âñ]ãÍwÝó‰‡V®õ&ÝÕ_üÒr÷©_O}™Ê­lO4ª`wd@F„2%”âL#$Ÿš’Å¢.xHÁiŒÒ(äa&?e÷[Û êˆUQʸ€ÔÊØ;€¶]L£ØŠ²i¶lʈ‹¶î?°éµUÂ/@(u#ƲbJÜV~aq~û«ÝQµ·Ét2ßUâTáX"R©1ˆJ#‰¤bÍùa28`ØcWµÐ!Ò«-|éW€r§§F±æ ;žÚ¿ö™§^Ù„šò»ž{èû^ß:|èÝ<˜†–,€‡ïûÍNâŽMÉôÖºï]ù‹ {ëÛOÁ^»ÿ™ÍuMÀ’mNÏÊ•Oì9˜m^8;¤ãÌó×ýaûeóì8(ŽaTóÐ'6¥‰:H¡F#Àµàyঢ˜*@Ì(`ñ$·¡ «æV\;¡²²¢PÕ@Œv‰Í@øÀ¬ ØŒ¤y\Tò@$‰Â©ºÞÝ;眹,^[G#q¢P2é[‹‚¡²e“s« mžØÐéÎõHóBûDç¬bŸTQ£U˜å¸Œ1¨PòBJj-±² ÷‘R†À ʾ\ûÔãHÄ JA”Ù€0ïÔŽ¦R5xpÕ®–ºD¡¤“Ñë/X ‡)%E21ÚÓ³æüÌŠŸádc–ÓþauÙ% u)×&£™Å¢­õ©‰±L ICCM5/Z/éèÍÄÛâºeÉçnŸ­O$¹áÖ'Ó©¦–ý(ÕÔhS!½`Á9/ûØùï§ÛÒì ó\ëqÛÿZsßëoš›¾2+³2˨ŒJ¥ª¢Kˆ’ B1Ý=MCÃL7 M3L4´3j!$(È•Sy—UYéÝMsý}ïkͱÛ?n ‘7i¢çÇ™èê|bÿ ßXϳÏÙëäJUºn[þD|Ë% '–Òskf ×ãà ‚µå;½ï0o667ž¼uPÿþŸú8öÒ»lýF¼r2AÅ ‚…s?ó£0ÖÁ©ÍGO r<¹¹ Œàý¹S;GŸê,ö#»µ;üáJ¯¿öí~ì'Ïý™?ÿ“kŸáýÁ¼ï<ü˱ôºÑàrOÆx¯™®.XbÄEÄBé°0¬ÿÅ?ýI]Šý °HÜŒù‘7.,mÜbµ!ç‰2yé)dÊòꨣؤ_‰Û½B¾ûOžzä]"éz«ÁˆcE‘È£^ÿ…Þû$T?²õùð³Åíæø®éU] àAI™02m@J°3àø·[‚ðÀc@ `à 2íœæ(¡‰vÇ{ç…äHÞÐÊüQÕéÂÿδ¨'y7þW^yÞ±´´´ºº ÿ¿åêã©[è'ð„­ë­¥“íÿ€íÀÛýƒx€„ïðÈE»m‹)ò¨xǘ[—^CØé‘µ¬®V;ÑÍíl•3âBzk$€D š¸|íQ"Xp–˜ñkR-´XViÈ[2NŠ”¥o?ÿâÂÚz{Y¢wFD•'LkУ£³ú;¯/<>Ñùk‹Oæ,Ú —[kpƒHÏ8&-„‰Ïs"$ò®(H7’Å]0 JîS6#OÜ*H… ä\qŠ¡õh<üÓIÂNÂÿ΃>ÿÿÃÃ…>üe}óÌú»#àÜ4%͸c„Œ=1rÜÔcçˆ"D®@Päz:á¡bÚÜ¿qþx2jb±¾v"¦ÌVE{¿oøÖ¹ç Á‹ÑHª&pØBf96ÎôÓ°ÚΛÚá8£®ÆNLemê €b,iÕ=Ó«+y&Yôàá÷9ÇZ»¥ú˜y Ðoj ¹$ò¾)LÓ`ÀeÜA@"`(¼Õ(%Zý>Š ­nK®8ùÿDÈ@ ãpÇÜ|ß2ÎP7ÐXtÄP2ð Á(.ëÆeLñ vÎërŠVWNœSé>”£Ðaè HÚƒˆ‘uä·¼`pÇÜ|&üÕé÷t+Çà§Ž×n_Ǥ ĉ$c\€Ñˆ ŽŠá¡Î2uî|L•ØÙï•Á4Ë‚T1 ¹.c’£o\ÐãLòClÖ0êmg¼ÅEP¿Üqà§¥Ÿ¢¼xêTTV$±œt#¾7Ñ—ž¿ôèÇEîbBt(8X £¤Ùƒ)¬ D{¡Á{VåȬL"Ê 8«!×6¢ó,„ "E-ÃtNŸ­³yߌÆi ‰˜­sh!dÀÜ17/aýžwס͛æ/—îüÞ¿_XYýƒÑBYc®É ÆôˆÐ4{yñý§¿úùs$7v†Wßì)yœë“¡Ú6&HB3±‘ce®¹¦`EÍ*£h 4ÈcÎÁ·t8›VAÈk·wvníì·O¬¯uÛu®}øƒ—¿óì%E?û‰Çƒ¢4±2dŽ –2m(&¡®-‚#£™ò€gÄºîÆ½Ñòˆ‰Ä:„ƒ($ dž•…HB˜M}3x]B@ðNiwÌÍOGƒHTp¢Ý{ªÛ?ÞøÉߟ>øWîÙå!4 zÇÐ6ä¼kkË·“•o<ÿÕ¨lfïÿ“³ÈËZ&e¦b‘ÔÖX+8D%¶e›Ð0žµIt•KÊ@Ô,òuöI+°¯|ë»nœGqðøûž,:öÒoüêgaÓ÷Î9NeERÉv£D†! WBx];ëméuîÄÒz÷ÁGÕ]DËáÒz0è%˾´$â¶ .â® #ž ‚^_¶ ”,Ž ©x'Ess Þqý¸:82ÛS3îT뉳«Ó²ÿ+ìá"ðJó`Ù¬n~iL7ßøÞS‹áôôý¯Ô)jNÄ-†læ½°ÞzÒÓÆT&YQ,aN!p0Æ1°Œ"š ®desbiêé0؃þgÛ~èõ_þå–Æ…±Ä‘{]ÈP¨VËúª«ÉƒsÔxdQ'Y?ã§eÔfi¥¢@8!¼'«!†iÊZ ëv":C”`xÅX·‹q@@óæÁ€›'æyR)61À©ÕõgnÞ:Ø€3,ÈIÈ‚ ôšÜ¸½;»„ëÏ]æîø·–úÀÑÛÿ¢ð¼/ÈÕ]E4è¨30mPwi…Ft”άà‚#"ð½ø¼‚=2FáÂÆ*9[7u»’½ §Nìƒ;ÿîWŸûÏ&Ÿþã”W~:ö‰,g.ú"®Þh§óžµ{ñÉ{@µTˆXZã¸à ã˜÷àU(<÷„‘϶Gq™H[èÊÊm‘Jø6‡€ Þq\êDÛeôhÝž…¬ž–¿®ïž.¤ØI½õûW^ùÖ×?_RôÕßÿ,ì¼<ãiY—n¾]ž|¢U’[Å´ÝrMêl 8€ó> å šq"›øÆ ˆ3Ƚ£âJj³¼q¹·;‡»,V ëX&ëI2ݺàv¿þô³‘— “Âg3;žZ€Ÿ•<8ÓÝXáqË3IœÈ[Æ €8Ñ£k—‚GÈ9Cr Û¨‚H†±@a¸áöan€Á;¤§«ã#ò³’Wó† z ½?:ù~oÒÁ…1§O<®œýíßý§[7®,6ÅO/·ÎÍÕ/ÿîÖŇÇmwÌ4óÎŽ­Ï­9²©VTb¯‚qo@ CyhWÒxéÒ8 CÆ›X¤«}×R[gù´²ìÿôÿž1¸ž¹ƒý?/MÇ¡í½Ñ,t ñ–±ÞNJÞëC’îöNNY(P0.爞ˆg*äñ^{k]ãˆ9ˆZ>`AgÙ6Æ+w)W'TÁsó®Vª8ˆZ“L‡µ×¹a€YS^»øQ›vpBê&iû¾Ç»oÎÂ~œ³%ì-LŽ›Þ­ï½gÇ}:½Ð tæúœ¯d\¨~N-Ýf#5K]ƒcC°è´ðSÝ„rÒÒdk×ï|çrÈoýÎk‹áÚ©Ýav°7}ööäK6±Î3;<0“quãšUªõþ,>ñC“õ[¦`»ÝTÇ“£ëŒ±ž9°Ö ð º…ˆœ¤+[׿Û{ôÍ=Ï~1½}hnM'ÿÂûÇx¢i÷¶Þ*âî ³…¾]ÛüÌu-ìHPå”DFŽG\(É¥$ODdŒþÏé{"°†  D„¦ªn|çÎ܉ä?››—°6H¯îQS ççVºw¯u8çhé ò÷¹³g{êÉûÏ ùøw–ž²Ü)†€Õ(¥zùÔÇű½».´³IK¡—±O¤6Qˆ®A9áØTZ jVšFS95Z“o„¯t£lgãTÔ§Þ~v|p9?éPA_q®´ðJëüþן8»÷7·söì¥×A›(kš60ΰD²Þ¹rV:S9LjP S\x`!°9s(dˆ˜ bLÀþÀÜüGÝôxœM³û6Xî4ÞWÆ1bi›´ö38§NÏÖÿÆ[¿ý×Îì|¯ntÞy{ÿè[! yK«˜»™g"Ž‘ú ò£ À =•‹ 〠oLhjf3…ªí‚2Í3ÿ‘·ÞŽÓÜ­íŠ`2hMù,ޏ>~<>gŽöþåø7?ùÇ.!ór±ÔAÌvÆS#YhÙ;¢p@È[ãÏ1ä%e+ã%ææ¼Ã7öÁõŇO®Ÿ_H õg À4š+‹Ã¦Î”ä'ÒUÿáI• ä8v!1UXhh(&h°S¶”ˆ!;(Êi µfVMEÛŠRÊ&†Ý–«VätQmwîQBؘïQ°c8ÀTÐé¬×Þç Ì"] ÎË¥–yîÛ_üÜÜJÎÝwî¼ôÆ{ ¦Ì9'EÎ9k-2QWÎZBkjðÈŠÆXO€R¦,hƒiô´ IîêÆYwÌÍKàä%R§©XY’Á¸1L› T–Ë2PˆDÒzAœ8}þàäýCߨŽ,j/ÆÈb^öÙˆ‘ˆl…Fêlÿ«­©Ã0ªÝ°¾ïYîÍT¦å¥=S3‚™«§fÌ;üÊ3Üñþæ]‘äÌÇöLQ“`g·žÞ{û¹¹×:÷ðG;A ¸‡‰ñº"ç¹%‡œ g#‰š!ôD¬+&•öˆÖ-šÊ* QŽìx´%ñòæÂ5'Þñ;W¾1ÂH/˜’3+I=«–JðI(-㯎vÒ.å{òÚ‡ d*²;ÚêˆEÀ(£¥*7iˆB@ж’d«­+°°eãÀÃÑ þˆ-n]¿ÚY¹íâ'Tß{BÏHIÎwˆÚbÄ!8k½­eJºöeqê¼ßßÝ~~*:¢JY¹ÑJãªæÌ†á@±˜œ£(€wÌÍK`Ά"Èd0ÔF 98°Äó2·. µuk?áõùµd}e°Øf÷ÞìßµqãÁóûG7B!Sí‡Úô¬Ç~ ¦Q›™, ¢¼ša[˜âœULQ¼ÓNfe™ÖT7œKnžqƒMs|Ú[Æ‘©Ë¬Ðçd*´ílôåÏÔÞmŸ½ O<>¾| {ÄK…mHÏïÖ—Êdu3-&3ë”ÓƒæHê’8‡‚óˆ+†æ}ÓïæöM¿X †¸Ã¾BFpÇܼ„* ²˜fºÔŒgSãg›ÕúäbÿGïZ_ëö† Ÿ4Áåqµþöoðû‹‡OGÔ‡›+'jXš5w $P/V¹É²„³Øb5.±ªyV.ò¬å¡[ù$PS¢%³z‹æ•ï~ýÔäåÍã— NÕRG¯l*ç;ÌÉv¼˜,aB-à&:ãUxuTìÜ|óxø7^Ü~©·yµaŸ6¶nzÒ\`£–Ð!Õÿòì·/Ãßziò»CV²X±JÓ„ÓB9!ËܸJ3%­µ@tÂNdûÜzG\¯ÛCÅ5àÊÊ×– Ü17/!¬V7z_3ôÞ9Z‹0Z³ý¶«lÙ08ÌÆí£×£7^Ýoôn=Êg6ß²™–*lXU–©¯!Ÿr´¶òz:B!‰q!I"püL >"m» d±}¬‡ $_?¸¼~¼ë˶ØÕ* ÕªFnܚ휵7mrïñ´­(JãR ~ý•âï|sú•-ëØ752­­·Î:cœÛÔ䛢æ<€1s@–PsT6ÈÃsóòš8É;¡Å†È2ZL[Æ»”¢a-jÛû×OM^jŒ„%Æ‹TBÜpŽ0ò ¯Q׺42ShDIÀ-1I~dI(B%KÀ¡‹,â<ˆcÁ‚dº‡*DîñľXÞõLà´*âi))UUS˜ñ}búÍ~>âo_IgÛ-³s"¸R%,éÞÌÄo¾QüÍß¿ü›×êÏ B†¶³¢Q ƒ^i1H’Ô5+K½T€ åL¥anŽÁ;¬áÈÓÄf™a–Àx'…ç¦È{ó`î¼vâæ³M5³)ŸŠ4áH`©ö°!L]¢¹¬«ii-9¶Ä„qlLe!™„HV[í-Ä–¡‡ jÐGû·'£\C€Œ% u¬\õ© sM× Ã…§:máÆ=ÚàüÛ}s|ĺKõ‰û^î>®43žš)5‹WëÒôo~uçém¶=š}óúä·ÞȾùöäåɸ6ñº›aÍ!XÇBŽ ÁÀÃÜœ€wìŽÇA¬8k<ÇEÓ¯–“.¦]%ÀíW?òÖoŠ×Ž]"B¦9¶½4ee@Ë€’@3;5ñ¾]ÞÉ¥{~5S“Œª¹ê,ó¤àÉ ÌÀ"¯uy”ÙIÔ\;¾!Œu˜Â´W)ßYD¸6žW®Àí„©4\q—ßzF›Zût­ó‰ò+ß(7¹†IBKŽ9¢ ¤{®¢_|njŒ3‡0ˆå©ýKrºÖ0Œk9 %ƒà`C „;ææ%bÌ… dÕPcíb£v˜DGš`¥:‚ƒ1íAkLǰ´‚ý«“Ü+žVžé@±Ê*SOQÀ«LŸÁp ƒ: Ó0+·|T¯²"@àÖ6HΆù4v‰†e7UÂ:ŸÖ€bU´V™rì²ÑÍë¯o~¤N—ÒA²vtÀY`^ºpBNÏc\͹w)@µ¦Æ#gqÈÍ0ø¹ïìüÓW›Àmr¢EÛ¢5N@˜›cðŽDDô½­¹±ƒPÔžE–HeðÅ:Ëuˆ  IÍÛgŠ3´°á$½J"¸"GEìZ‘jVµä.­aâ¼µžy@…T7µmL§b½Lµ«ÀxÏ ¶¦"«­\R”¢šíìË™—P4­t©¼,ªünuðǪ¯}R¿xBá)Àu‰çZêL‹.¬°A‡–{¡ ø²ô­XÃÖb7·íø¬s®Œ”˜÷Èd ³ þP só5òÚ7ÆGH’.Ü2fý±U3Ó׋[­V€Dãm]â œTŒYflc+îŠ6b‹{„ÀúØ#OD¾)*æ¡!_’ÈEä\Ò‰Oݳûâ`ø•>~§îÙƒý÷¯ ªò®âö]nël/ àì@¬D\96¬¹t`EàkÝ6‹Ícn|îVýå‘Ê‹=¦Îç¡Æ€`nŽÁ;˜”\É<ãÐNR¹…‰CçE+޽ïü+gBoœiÐo—3Õ€‰H ~·ÉnÛIàQÊRÈxhX˰–ìhz;p²Õ¨Ûœ³€÷Ðcª£P&l¼¸t#ÚtÂϬ÷hC–qK “ê@¸’š¼3):õa}°ÿÖG·¢‹_Oß+¼?ç­ 3¢Òë ¤8ÇÔ¢2Þ“§….”olŒwXŸ[ù^©ýþ!UpƃgT¹?TÂܼ‚sÇ€)q2 { ݰªÁXI–3<±ÔþäGÿÄÍ÷ÿ%¶t¦‘8 h¡B ¤¬ Úp/”'cŒ6lЄ+oÆÖx³†r |˳4‘ä¾v¥<¥Üi]ØZZ™D”…¾bV’G`¡•ë…KB(¥ŸIãÀæõÁþJçX-këKÑêékÑ£Ç~p¯ÂfQã(/ÆyY± ä°€u"IÞ˜dqÆ9[:›FÄþôÛ+ÏMu9<@¨Á›²ÌwpÇܼ!™! ˆc(ÐÆÕy‰å„㬮Ñ-l«båºP† $SÒ‹š>âJ€<ŸuúeGAEæ¨ÌBÇÚ3|ïÍûGo¢ç†}D´ÚÔ5£0Õ±mñiù¤{üv̧ºÙ[ò³ta#*?~ø­¯œúK…ö¨ŽÌHÁ[ª¨l¥©6 (‘Jžúä´”Óúî~e‚cxÍ-¼øÆµ9yzqƒÃsó™*‘¡%9õž„Îó­tzÄXٸ‰ke½ âó§ÿÌì}—}nÚ~ÖP¦%ñ¸4Á G)°ö 4ðýªÄ¦ ¹#„ÚT¥B”z¾AÃ(P”C¾Rm´kÕi½°Ì·hªB&m§ k–,?ª¦ñr_œ)ŠŽ]8qòÝXŽ?vó_®½õÚÞ›ÍÊ„&å,ofµ¯“˜¤d¤¤·z–\Jæ †*ÎÙu§[Õ’Þ§R,ÆiÐT ¶Ÿ¾÷Ï>wñO~}õǼÇF+D4$6–À”ž{ìXZ¥°ÓF±RX@RAgKo}CfÈ+‰`«<ˆb>¤%KèÕÈٙתÉc¢Ç'Ü/:.G9å[¶¾²0ys:<þ½«M³?úÖ?°Q˜&­Y7nÜz÷k¿ü£ÿþg¯ÿ(­q”´Wá(×ãBo7£Š*×,ÌÞ^šo.ÿ‘„pÇÜüt4™2PK*gÁ•zXÕ #É8AålQ»(9k‚Œ›\ŽOýzP‚órbxÀœÅP÷ÔADuBÕâ"w<G‚ÆLa%ZblÜ¢Xo„õLÀ-æ*gJ[ÕZ¦G\(ªîCmïåàÔI[ß(*QZªÍÛJ²ÝÝúD¿¤Fm¬Ç¬‰^|v¸¸—¨“ë]¸’Éoüþ÷Ï;ý™Ù…ÙÓ7¡B•÷¤ ³%Wª(Mé¢úLwcyãÀ‰žäcpÇÜ|&H¡ ±]aÚñ¦²£ˆ»½àp_9©˜ôÄW¥«#mjˆ€(Ô<2QC.ßڬ諃öåïÅéqÙzp©%üWýƒéWþ—s·¾wbmy¹ë>–=¿Ï—ÿê©fHW´^Nx)à«?úÀÁ3Él‡\sóî,"»þÆÛVoηÍ1xG€|h°ÖÆ  ¼c€Ä”µ:+fµ.d’µß9õÞ+~ùK'ØîÄÙ½A}³Û ¨1¬ÐCÜõ‚f´#-CTd 0<Ä¡ˆcDæÀå±¥¦à¦<´,òÛ ¦Jh?Üì4(-ж¼Ar‘ Å„¼²9¢ã e7À½^¦¹ì QÜÈÔ¬)>IZ£™¾ðVïø­Í­­l™?~í×¾¹öÞ>T-³möK7Öþžío½Ø¾¿‰ZçoãݯþûêW¸x· —`5Æ õ‘µ“™¿uè_ØmvKà\,p”œx·Ÿ5gŸÿ7?¹ó»#ž>}â©Szïâøˆ>A ¦Nd€‚Žš%hJ°Si§"õ†bÍŒ#)mÞŽo  ø¦÷Òðó+ï1i²:¹”Ø.É, 8›9ï9pŽ,s<‚0RI,cä™&-hFecõ²º|êô3ÿéæ+ßX*®>9܉Ǿ™Õcÿóÿ§ÍÑkŸ¾úk¦ÊÀ|üðË©€ïÅ÷ýë{þBôŸ?w%ÙL¢X wÌÍOG‡Ã¼—œwÌ5V{ˆDÜ"»]cÄpè¯e^Ào|<¼]jëøbE7«Ú¦õÔ’èÎè¨{]Ó.±qàuÓ›8åÅq`ÓP•<|»}îâáËœøÞ´>C¯žê¶‹ÛǬb’˜# â.‘?nê¶GÒ>`"±¼å¡ôÎ{`Õ´4NBç†b¬Ë~yØ*ö×ëÛ¿!óz‘G&f4=ú#ŸÿÛ³GßÏÖ>nŽ*5œoÚ©´¨|ícºð¸ó‚s -€=p ²„ ë1žXaD-‚º4a½ò¶%ªÑ;îKEYä_9Ü·GGyõ7þè›ÿ›VÀ:˜[;Ü-Ç¢½ucöÍ—ÜX;ã·ê÷¼ñAuwÌÍOG ¨ßîi«­§ƒ…"ŽÊ."êt@ç£úæ¸.k GÒ{_WÞ-I!M¬ß­öÈ7!¹Ã ÓÓAg»uÁZŒ9’µ76–ž]y¯r dÝFÁ¢f”Á‚ŸJ:2h ô–qb¾"Ù8Ç=ň}o$™|R·""'šY££ -Ì*«Q¸ˆUKêˆÊgâÖìÜ·þÃwW?¨òºÓµ‹½ì(«^LŸx%<)•$ÎØñ«ÃüÊÌjwÌÍKXŽeÂ|„L¢ª+l݈DF’sí€j]goªóMwyXÔNhŵ íHj­´#í ûºf¾dõ9#Q$M.ãþô†'.„Ç%õJ|uòºâ¦jxÜí&€=î&Ü…{ZàG¢DÊ0'šÜú„ ¦ AŶ"¤Â%œ–*ƒGÌ$½ˆ;!Pè_è](ÂU¥¡š˜nå>xë+167½Ù`þwÕýÛ{G·_º¹»w¼ý¶žh:ô Ù<€9ï b‡Ú†ÒJ Œ‚܇‚ ë€+Ñ”b²G·ŽjÝGh:‡3)Ðv@’¬¹¢ßP./y䫞 w±¼çèy7°ª±>³6®6Ê=éê#ÄB¥…ê)WË„fqVXIÞ‹–°‰3!{Ô„Œy¡3V@è4dÈ“jsð±;ø—ç œÑ™%H@æKpþääÊEÊ#â㬠Á„‰(j´GÀöWÎ]í<òé·OBx0š´Ñ·o¯Y<&̽?͘!™6fZLJ1ëJVŒÈ+F…§6bɰ®¬ê‚à¥e1¸Èxp (»­ó¯%÷mœÜ/*Œò‚ÝòW^ÿ„yþ‹wý${ûõþþ¥“ÑŠæÞÝ«Go}¸óC!Âsó™C™qÙÔX)€p¨Ãk—ÛülïOu_èe/ß<Øsw½ûËkOVp}¶= ¹Fâ *'‚#[“=Ɇ7VîÍNžø '¡4cì®ndoU…ÕÔ*Ž»wíŸy¼Ý=s —¹ ªid0‘F"¨8aÌMXЕó )ó^+ 4°‘WÀK2¤©{ÌÔ‘*:æž8|û]Ó§¢nN¾ÚôAK@?þ[ü½Ð–ÞúE˜E]‡zdއÅî#ÏCÒ0¸cn^ÂKÙæïïÌ¿ý5÷+ÿhú…Wî>”ç2Û3¥ Ìw?0þ›ïyõŽ~ã‰[ŸvÎ~áÑ¿pûÂYýA tì”PÉÖÒ™çïº8æ¸~ãÚGö›¿¹u¯Û´Áàæúûx_¾a£¤ò³´dI·7.÷’R¹®÷؈™Z±Â:Ž k5Ȳ©Á"·Ž)ÅtåðedyÛò°2Ê‚PŒb¨ Пa²ëܹ}ÂeºÁ€‹v³UG?œ~ùGþòõÎ](!I¢ tîz„„/Ц-àŽ¹y ¯ýWñý–úÚõþË»7~õ7ÿÍ/í^™]dm§¦U¿q!ÿý|jøé GOÄÇ6ì¾±þ¡«ƒó";AÅ‚ÇÙrg[ëÇ»ˆváäæcþÏœíÝ›÷XŽÛ~|:~Ìm>^ Ê^Ý/J­ë§êËÜ`êÌ)ßY–¸á(ô¬Ã‡jpj)áÛ÷:O–¼öuN®ñ•T ¡Y¥ç–ÌBlbŸž]²à{@‰‰Nú.ÓH!‰iÓ[Œ;˲Åéá`7µºsfåv:eòX2<¼‘(¦®ÔDÃsó†G}õä¹Ía÷¡iÇìýÎgw›E©=x2±ãúðþÇ‹¿ò3æ/†_xwñꉮ h,Ä„šgÛ ÷Œ»™í`áüßûäH¿Õ:b`#›• ˆ,r!šÒ‚ZäC2€²ŽTµÕí0RS罬±˜z/¶d,ü¡ ÿè}•êw^ø™Wñ”HÔ‹íûêÚ¿ú­3ìþô?³[~á+ÿÒ/yøÏææ%4¤×–—aĦñ6=6-»$®IÚG!×µçÏõÇã³ç?}ñ+Ï}³=¾¾²ÕóRhD±õÏv§Õµô^wñ›ùà+7È×V!tXžçQ_&¸<ýàÊ—ÿÁÚŸ…í[ι­ÁC§níƒv®†ÊE*¨˜…v)¥ç#euhM ˜¥CÓnû¦5³ÊZ—RØ–¼ô³š»%ÕµnÀ¹Ò\¿=;ûž¿²ûO_àçò¡r1{û®òÚÆ­×ÇW‡çí÷ ™~ýÔ¼‹ï U$¸cn~:ºŠãçõìU]¾žŸ©nõó#ÑTühw„`ê€r°VQ}VN­µG–''ï+INÑÞ“†ñĆjm3YÞm Úmµ~ã69KŠ1ç}ƒdÈÖjïÃr$€ü¤.o•©À«üÆ[Ÿ^s¬^ëMÓAÞ_ûЪ„[tËq°TçLó±–•½àS µ· œõ}œˆ0–|1¤O~ô×/þ¥ïvÝ“‹«£›ƒÉîæ——~ó î™ÁÂgnìïüâÿð×?õ#ßùâiŸ ¸cn>„¥%/”gB¶2W[áomüüÏ<ñ~¼à´"V1ïÐ8àaàæz~雯¬©ÅIÚÁÞqe@% ,,·o½–/ú6>}kg½#o92†HÞï,gÜ€'&ã½ë[›ÉŽÔæ½ö…ÒPˆV¡µ}ìWåËíóuÞp¥Ë„ 81¦)MßŠÜ ƒ&µ¾ªQV+ãµàPz×åá=ï¹ë×Þû³®ðß^{Ïf½óè­o¯å=û/_߉ÌÝgŽâãÓ¯ÇÑÍêz~+=7*‚;ææ%ÄÉéëÓ‹bÊZÆwwË?_þ½¯¸É7÷?ý‰SçÚ·u‰Ë¯4ëß{M鯇:#[S•¿«|m¥þê÷®ôìôóÄÒ½ÿã¥+ÿÝŃ ØÙŠÖ¿cƒ0á¦BGBr͉Yï8sD!xÎd!†ŽwX0™-÷bhƒËDá¦ÝßJÚ—:O<¸t9?vS„H¹´'5çˆ@¬Œ#w¨³ÒHåÁ€D±œôŸ|ÏS÷ÞnmÜùËû÷ÿ"·uÏ»ÍR«:Â¥áP¶·ªªÉÓæT«õßþ´_iÁsó¼#Œ:rêСGF $³Þ1e±ê×Ûïn^Ü [¾K3Õ¸ÂY²ÈëN —Âñ_`ÌYÌ**jÈ#ˆY;¥ÙÐu½‹íÚðáóKÏžÿðë?üé§ÿþéÏ}3ښžº¸–Ìöx7ZʇoF·z37R}øÖùCkK€üàšC ð†L—3(½ ÀÉ´êÁÙ}{åõ­¿5 ïzäÌâu~ôðõWÍ¢\ÇpûkÙþ=|­…»úôæùµäʶøÐ½âÿúýôù”Ä´sŒ3‚ÎŒSŒUÆ:çLQÙ[ú\ñºhšýåW­õu½³+@Hqƒ¯º8ØN/,Šƒ>+´5œp>!pZ!’…·{çÞ»ÿÕY‰Rr)À¯C:.ëŸ8þÒ½òYùê^0\"I{Ù–ªÞëìžáòÆt2°ã_x¼ªtó+/Ç/î¾þQ¨‘àŽ¹ùL¨ê¼åµ<±x½Ù™©¤Án®;¹À[÷Ž|ZÝøª_}âBÃßÌþgÅ«ÿíbÿW‡ƒïN¶þ/›C‚tØ8§ßü©4žN½Þ(vº,,‰Œum2À8DŽH0V:rÎy3bÚ‘D|¢~ ¶Æ‹yÐ9y²ñÅŽ>6ª{~òý„Ù§×>yÆl<|&HÜ4Ù† Í,0<&+!ò‡·2Aïl6œÝþíE¾Ô¶Á¦YoÀ['¢ƒ,]Ûú/n½¶ÿÅåwéüjÅN~# H`n^@+L‹µèpòö­…­è„/Zû7®àq¹¯n’ C¸ì[Ÿøæ(ÝÏíõ´3À²R›îØþŒ:¾B7ÞŸõO](¯m-®œ7à4ZBNBÆ­÷ Q"2ŽØ8}è²4aâµoô×W?õöToC´Ø/~ñ‰¿®÷y5‹‡£%™+3%· H ¤ˆŠ ‘%DÈoY×éH5t¨éø éö×ZŸºopÏýòí?ÈV¯®Òbxtñ$ü¾ðD÷¾Y i'Êx¶ÜÚ¿EÿþËõ/üU¸cn^Ân¹=–³Vé^[ŇÓÒŒ‚ÓǬ™E¶í÷Âq°²ûÜÍÖû·žXÖ§¡µë''+·BѰv§R«ÃKNx»r³¤}þ|uëvã| # ÐD“™ã= Kã¶n2‰ÈR9Áª.lOisîÜý«+ý…Íýïî 7›.áO?yßÚÝý··Š›¯_h醸`×y=n¯È¥ƒÛ±ä±° O¦aÐ9ª—¦-¥Œ•^ðV¶x‘Á¶éÇæ¤;õ\3<™î> Õ`X_÷nÁèÖ[·¢±B^‰¯ªWK`œÏ˜cðެ3S¬Q(SŠ62Óºrõl¥»˜ø…Š.Nö†/uvéø¡øð}êùGèµÇø©Ë~é¹j»}ä3³Åß~ Ü}oG¬1 ¹b¬vÔh L,ðÆ{J…õŸ]f­?êìF÷ôì÷^¨^ÿZðï¾ÑùOoVƒÖË;Ÿ~°ÿÐûúy2¨; „È—ý(–&¢p¶j¥¨Z }´Q˜²Jú€0)myå‡ßÊßü̵/o'¯Äÿî•{? ÿºj={¸²çj­u^^>³Å Ù¹² yH07'à²Ä" ÙЕc'SÆ(<È•ƒ6^c¬½xâÙñÊÙýå&¿¶”%Bd!<ô½<‡{Ë!·.§ª*&³¶cûÔaÜ"L‡UÀ%œ[ª-:Ñv3É]3J0MDWË•ïÞÈÍÎ)Å—ƒuëaÐêu~ÿ•^nÃýÝF…ÙÔËÝ4*†™­O†šœHðJëÞJ¤3‚eô½”O#§s D6>¯¾Úïžx©:°»N·¦nÆÞ¼Z¸5±Xì¿p3l¯=õÈöêü8* 9ø7‡Àà:MUÜ®wÇK¦›­2?à…Tª^×ӬϦ]áÒþìÆ^¸oúWêÔn§Ýƒûåá·ŽÖ÷c 5u›¥÷Þ«î:1¥\JXî·ïMRß”“Kz„=2øé¿p"¾k» ‹}Þ1^[ ɉõþFÚéùÑ~¿Ýô…‡­ËI+åa$XÐwb5ŒAƒÙQ’t|Ù±³ˆ º!éZ;Æ £b‰eÄÍGØÆâÊãï]¹û¡ÓO>ÖþÈãqÀäÒàh66œ1‘VΆ!w‹œƒ;ææ3aáÏ=ÉÓø~å®õ3·W—8túlÃðm·´-%.ýÐÖ7J‹ß5ipogéððÁÖTS±â¦çS˜µØâ=_'±Ñ¹ñÖuÇ.¦kolm²HE‘*f†Á%¥ŸYºpZßXüÁv~ê±Þ>ºýòËWã¢Ët4+ŠÓ–Rvmvt°¦Tëô }è¢rûkß*³*öPGüV°˜&ÅꇧÏV™ŽŽL#Ø[ÝËé}´Ÿ×žÊ%­ÅŠ«ƒë{å }ôÈfw§?÷_lýǯÛéÑz»åíLk»çFÍ òÎ,ÌÍ x‡ u¹[­Ñg˯áÑØÝwþ=Gû/¼Q]¦vŒÌ“_Üi^ëÎNTï^E;êðæš{ÿÞa]?’>õæAÐëMm(\º¾ž oÌV9¿xékKŠî0|í¥ è¯ªϾv£žX¾žÖ °z%.¸)¡.›W¾ðå³ÓÖ—^,<õ¸Ð,Jš¦¶n/¹ûQsýf#B€0…&6ßj¼ƒd¬º=öí'yÀ(9×>u)µKƒKÝÑú‹N6ïyð…k¯Ÿ:Ù·?¶±Ö^ž]lx€þNGsó/u; ê}5lUÍ…W—ÚIô žÕzš³ ?=}ýÃGø—ê~àI®ž8qºu÷ÉäÞ'·m–èÉ4?</È6â½ëz;æÇ¿\í}çZÙʳÉåw­ÿÔ“}èSOÜ^XLh)Ú›M²oøÿð[ÉÛÃÃ[ׯ^»6"}|VŒÞO­“ mÑJ$F ­þÁ÷^¨‡³A 9)O–<”c}1¿bêA‘-‡XsŸÄQ2zëÅÒòɯýx‹-‹G/'?ý»Rýà—ö~Çï]NƒݼqúÌ…ÕÿêCÑßøÜŸZ+ÞC“_ºÅÿ›7Ån wÌÍgBúÍÄùÅY6Lž™%íþÉÃ[ãSíçÞß$x|4쪥uÉ[éáìíí)¸}°],ýís—›üþ£­¯|æ—˶ŽBu”ÁÅཱིÛWÄÅ ~}àÿÝçÞ{s­ú±M}¼u¹Ú*;MÊò&0n²~ý¹ë{o­õñŽêo×¼Ô*vw²Gîß3¾ôÖa/4 ©ÈÕYÝKûÞ7çØ Ú–ûi0F_¥"DNõéÝbqqý«á¤Mìƒo·Ï¿2:ÊõõIÓJB“E§Ï’Æb:“/žÙM^|©ù½ƒúׇ'ßÚíyÞÃsóêo½óÝò¡ˆ[lÊ&³Ü:óÐÝ §õm:eƒr˜MÇ݇–CÕ?¨5Æê?{áôr»ùÝÃã/}õ¹_Zëu†¯]ýÞÙ8]ß[ØûÞ¿+òÛ¸óvko¿óä#÷ÜóÑäžþäú›ÇÏMS½VéÉõ7 îò¥E§‹dZÆÛ9s÷Þþ(~ऻžµ0zýn½p‰«$ \h›:åA¯*ð€QÅ“H›²œl—«R­;÷ôÏžQmvê&‹.7Ûo¿±þc>y7~æûõ­sõŽI’¬VÓ|ÍøÜÚ=8ÚïµR7¿.Ï!ýA ½H‰pñÊsüÏ®}R‰gŽÍà7ònªù™Ùì…‰bHÞç*(ª¥N»ê^,šâÐ~xu£zàÍË·;>æi+Ù Ë[ÇÏ"73mØÍ¦ìÖ#Wäò…Œá¨õæí%Ýi'lÌêYî{'{fI°ËãH·E…êü…pïhçëß>ü™ݾ«‚¢~þ¿ZȮþÛ+€uÖô*>ÓUÂy“Bô.βì¸_úùջޢûn¥áQMÏ>/¡NÍîÇ¿ûîö³“Ñg<»Uoßu¶z‹{þ(×*T‚CÖ8@„;ææ3eðò­—¿ðÞÎM°wZíßóŒí^/£ìú‡zYÕš¼,wZjJgöWî­"?bEÝ˧'—ïýýKI2XTñ­Çnó8ìÄöøòhÃÈW7éZ÷p¯æ)ˆ„Õwb!lÅ#ncÙðÂéêäêB;9øÎþò3Ãhôˆ —](¿ñKgùçÓSߪoÿ©Ãfým\ÿ¼Û!ª4;‘|÷Ï·ƒ”W•Éî.‡‹½ÝÕp»œþÆ7–†Áî_Y¹y¡ºë ÿ7—ô翟(=+¹*¦¦”†!—pKßJ—’݃Kø%m]½òöúÆØC^rçËIrß?vëõ­,ÐüƒŠÌQÿâ¹WNï²µÃiÝ9ùB'È¿óÉ·š‘kË…@…®^M:¦nÿµ§Ã+8<¸¹ùÊŽó.Ÿøj¹âï”ùf«í5k—²;HoŽF¸HÑ{/ŸK>(?T}ó÷ÿbùÏÿÉB7jV¤+w®=• Ûa«i¶ø…çSL5ÖÙñOÝ;>÷|çj4d{ŸÄ‡já­ÆÅ׃0Ðo½µxíþàµëíüý¥SýL4ã'ï¹¹÷øÚï„^Bö‡2˜›—°xjCž‹Ó÷ì}ee§sm¯,‡·¢Ðgí¥êøÍ­éõôÜÃK¿³7¼’ä•jGTqV\i°Úz”‚ŸMó¢ßòN¸½Ñ›îHܽÄ?°1Ø»gû3Ÿù±wwWu)5¯Á¥É·ŽmÙô(_ [[ß»Ôi§?xf{ÿhñªP>ø;³[?¸"ÅvýkÍÆ·®3­`1é:X,Þ,‰%“+<[êœÎE$Ý„!“Ñý«gO¼¬özÿøU.Ãl<ú¾¿ÄªXäÑTx&•w\FOwÌÍKøÐGS¹*35=ø™»ßþêÒá׿ÝL_‘>6…˜luYûì'~dØI\_²=1Š›Ï×üamv±èôJ‡#“Û'fä'µ×‰ŽÖ j-)ñ'{2d[3ž >j¿}õ•ÎG…Õï;~±cî>|ä'Û_ø,߉ְCZ¶¾ôZõÚ[~Cô.þÆ\_yû½r,vZîÚ7_Ó¶ ¸´¦½Pq›ÕzôÍoßúÚ¡9ûèÊûÂ^×lG¼¹®E»ÿÍ{w¿VwŸ}Û|)W-æht=r²—ÐØœl’ÎÂݾ™LÇGuÝÁ!Ü17/¡YïC»eu%Ë·ßý‘¥—ùS·/}k¦\~ß&»}ûP„,íœëZKet6Ÿ¸7öì‹—àÞ9Š*}»ž–ƒq¹}wt.®v L¦W a”°¿¬4竇¦êb¼S]oùëá‡{oï|ñŸoäù}²k+ÓMW0ãJ-¸ê¨¼6ÜÛý—uî{wg/š8ºÞ¿Ø½ëUwûT¯ºØ¾þÉ“ÿÏW‹—/UªŠN¯§OuúmY1} óêžp°Þ?ñÛæÆ·ž®`çäJüªXDyXÚô@±m=)d7mdØæ¦ÑV3`ðmPÀ;N$ÇÛfBÃb¬]ÑúÔêgЯ|ý#®õ®“›Úð&Ëj³@„-zrSí?þžkFŽ^<ßÎÃj>ö® öù›:•ƒ†ŸXtÏ¡K•{kt†’ßìâ9¥m«Ý›~×hçÕîÉþÙ3'WÓS¸šÿõ)²^3èíc‹wo¾˜ùœ2Ú~í{a¡ó3‹ñ[Å¢Ž^ú¹'؇Ó)íÎê½+\†??<_u l_ƒçôqÈõXÀߤúÏtTÓ–íÛu™÷ùz‰¾u"ýðÙâž…ào|÷Êøzäâ@zŒ•‡;ææ3i(È ÷JUL_X;Èë»]=r„µbÆÈ„Ämë- mšt³u.ûÐâþc÷”¼Îõ„òÅðÌæÝ}—òqíë¸'°rH§FVþHi>{Mfe6£v¨7Þóž(]mzzïÚ[ÙÓ×ÇíõÙêZÿÆW[ñ©ž_8y߯woð£k|kÖÜ~39ÈäbÐ ÍÊÕÙsËGÓ»£U»ïÒ.,oÅ'¾­÷6|ðt'¡¾œG®ö$ÒÕ>,ï^8QæloëÅAGSµÔéŒ6(¾{|<Ó½ý“•Ý»>Ù‘p+e·X ~þ‘Žö÷ ’ˆÕ¡ÐXQ2Ó@áb K ø´Ñl<#Ç®r‡)ÔÒ-ùYˆšñ½‹Ø*ÈÞnFc`)9³"ò§?~kµß‚ÃsóxE<²“QUk®™€À‡i{Å2+ªV”Æ5hŽ’ °E¾¦%Ruç^ÜòÎZ×dR·É ÝL§‹ályUÎÆÚ‚A;Š»þDË +ŽÈƺݗœe kªÜU0Ï×Ð…¼·V†ÉÇ7nÜwÿBz&’ª`Ù1ŸN#_SK½e>(b7Ekg³€ÊY§K=ÓH ¬«ß.SO‰’[­ª<êÆy×8WëÌ 1šMÃîêxZ2]ó³— MP-ƒÐ•EMµˆ;¤¹#<ìù^e-—º†Â kêR…©0ìxë©)I-Eq€Ú°: nì Éú­Öhæ…2æ8€ÜTE¯×;¹¹ÆXF~Zf£,/Mt 8u'# I{9¾¸‚ȘÚÙAÛ}¥lì*„¢aÕPsOÊøØè:cÜɈ¸P@YJÌ ¨*x©³¾ÓM c™ÖVˆòh8ð‚{%]wÌÍK`$ë²Ê™J÷†¬`kVå#ʇΒeTŒŠ::æ:«’v§šfFò¤#Ó%çü˜ËØOÚÈ÷SWN% ` M-0\nm®{à¤÷ý¬–. "¥ WO'‰HÓõ¤Ð6,rn¨î®õÛ‘ØG‹•K˜ÎE6ä¢f w #ç¹¶/¹«½kòˆKcaša]')F­VQ ÂHǤ¡®¸O]ÂÔ-ô>nBYM¤Ñ[ø7G$àHhŒÕ¥é¤K ƒVƒ8_f¡KЦ,­kݔκ`œ×í¥Þb”MoÄæ˜ @V×n²vbgFÔ0ˆ%4%™1e<ó,`Œ!CKE–3NMV³tÅ›.ÇØ[VÓ(vfv;øÒA8Ë™Tƒ,jFÊ!$ÐD~\±a‰É4垘8éD>i|oÐI,³Šû~¢½7Þ£HžCc¤ âÀSM¬¬t$x®DÎᎹùL0Rp±Áæ ÐöÜhoIø™qÌ…’Ùër§Ñjw•÷‡QKº­bBÔº¨Ìø( Qå … <C* ©–TÞyà,mµ|S– ÞeÎÖE.câ ·ÕTõ¤3Æ•‰©1”}ŒK’G‚q[Ypq=gk%¹äR†ÝVS½ÉÛ«NÏUl_ Ë­(kÏ8kx¯©ã’±m‘¶SG ÇE1 —~`›,è,nsÌÂ(u𢨣(y¨¼©úq L(g“ý´›:½oKëøDrtÞ•Ô€ÅR3æt? ÑsªS cWg—>Ÿ–YåGQOIAœ€·³³Ùu©"¸Œ²’[±¤k rÊV4À•)<ðj#Û³i-„ÂåÃb³t= ¢ Q }£Ó¸ãêãÆR+9èÙµ~Š ”›í–1ºªjBwÌÍK˜\É8«ûëyÀ%†¬É,ƒ¨ƒ°ôMÜfŒ¹ìp_¹AXstÇ!ÙW<&¬XœZã€(RŽ07'à<Ìb/Ëíý ä<2º¶A<0•Á¸Ñ¹N²ò¸q3fµ'mɳp°¬meêBS`Q¡× :!r†Ö{«­-¢6F2 ÃQ— êºÄ[{qÔ!ôÃim&M“Me …ëkÉ5ÑL3튦vÑ©5†ÜÛ™h ,0Nyï\È}{Àˆ8r«É2Fàäkòt`-'ð<ÐìP´“®î³8˜MwE0`õ„@sŒ®ÎºDpÇܼ„¤Ë}ÙDí€êÆTF¸ój6³^\T³°íë#•O„‘&¬¬˜dRi ™É«¦Qa$q¤ÍPÆÂ:ªšåÀÊÒe1—Ú–ò#loVÞpgù ÛñU1)¬d‹”C3÷N3fÉk§›@Hb¬W1,‘d `Æ’X1SÚ¦ðÚ« ¬Q5MTUï‹Æ.=¡jð&çQH”sp 9Œ#ÊЮ>®Ç³ŠŒe¡`l?D²‘äùØ…Ú™ ¨4„i‹5PM'Þ7Æãá¸é8®=Féˆ!–Þitªï<ãpÇܼÓAlô0l&+=f‚)ÙõzæT¡T“}Sç1élefN)‘ÊkC¢½¢‚ áC߈:,gMªÚ¶Á(廢6 €‡í¶k2ë­óšê)i”2!yæ½C`ŒûÚòQH“UÜ[Î0@æXúÐ1.«I¥]ÒŠ»Ú e$£TŠ–kÁ%]â¬"*%W+ú¸°nj´Ç/•`šIÖ[MÚQ;”zêʉœKÖÃs0/ÁN[’q£9$¶}‚ƒ²"’¬-s§ã%¾5¶ô‘®¬ÈDÖGq¨lT íXj]VSlÅmšp[A£*2µŠD–ƒ#Á¹³%‚®ô„yBÈ®ç)¼dhhXžâèù’…BwŽA€— ptÀ hhhô–ñct`8¿Ä'¬µŠÅÒão®24AC\œ•x»‰'÷Ù¶×M<|”ë~Å Ï©Ì)Þj 2&’Ldôß<û×>ö—Çߺ|ùÁ¾©_)É“{¹-Í^ dlrÚ“Ÿ§–¥˜°ÚnB)M&‰?|^¿·%Ôs«Ï[ú|RèËؽɇ Òײ0 Ž?ü÷Pþ{û¼WÏ_{çgGr Æõ Wöÿô˜CMPõ3¥8 ©Þ}iYò÷M†˜mÕvåjÊ ss"EÑé'wº†d6§±ÚÝyç±,èŒ<Ã/LÞìš®¨¯¶X˜PL¥’@-…Uùξ1JqÏ•/Î\é)ÜZÒ“Jó‹Ï/ó÷ìnú@ T~Ú}âüõ×[[KœzH¡cºz|…ÄÑ¡>êhn¨Ú U[C£·ýÙYïn(2÷ûÏ‹Ž#?|íꩯ&‘®µõÀÝ ÿ˜$ކ7Ø’Ž¦d%IWƒÊbïÝkg%WúÕG×û—«Æ¢í¹Oý10å_2Õþâ'­z5%ID9H‰†8?áŸcê¶Jñ@ˆÕÀN/Ê„`x69ñ”5ïp°boGû7ߌ7ïnY¥º ˜¤hqRJ+·ï˜é¾ 1_n»ózýïî³üædϯ>9ú /(ÓòUïy“\¼ÒÕ[òZMŠ;W¦ßò E-DˆÈ”R„GYND=ÃývÞ»óðÇáî¶¶‹í•o;R¨ë8û·›NÇ|÷cØÒ°-Ùh‰ƒ–ÓÕ ³Åá°y¸pòïS¼ƒÜo—Ë‹s"Ñw?ú´ýÄïý¡H©M¯v·)• *&hÖ‚"gÿýŽ®êêmN)O’ŽD¦‡6ŸOŒôÛì‚hä ÍɆ;ÊÆûzíÖï: üšMŒiêrÅêò+<ü—÷g6VpUá@èaÿÀkuæ›C³³‘ÈÞR’û—oôI{VBSZGÐZ«²©„ ;߆—º#A½«¾ÑGï`ÞdÔ³‹”º\†ÁŽö`·Œ8[sóv·Å¸ E(¤8—A4žŸÄz*ª¼½÷†6¹J,B5›™cç ¸ø ýưNhØä¹êÒ©› Á°\añWþ¼¬”cAÁ™[ìuÌ…%[u×ëœ È‚×WªŒ&‡Áé€e"É©VGQÎ퉲®]u†¦W¶Œ N:Þ¨“i}i¾ipp<bh bòÖ«uÆW Á˜H`WÖZJStö¸£Gß¿ÑÑëljÙVd¹}¯Ç³ÿ@‰7ÏaÕç5íà̦@w÷ Ò×ÔTNtuNbSSiAƤ^%’„RÅ5¦–ô‚8Ö~kÚ”kÞÜØ”3àZš]zü¯s_ó>ô¶UǪùD‰Ò \— ¼Á‚ôÇ&ËòºÒ°y³ |¾x€Î™—ž ”b‚)I®¢ £¡… \Vo°5î*‰gUlQ¦¢4‰óì6Õ®3ÆX&+MP< hòtcîî]¹ °cçÎx´Áî€ÒÚúRˆá«®õ©4¿•("¯ú‹D0^K³\^ÇJóó’Á¬ÇS»ëUPØÓÒj/t ©Bcó’[fB Iu:Bh-Ý€²²²õuÖðʃ‡pç4ú’ÓfXæZ`È”°H±,é( ŽEÃc§YÈÂVBÉÈĬÍlˆä…ÁÑ 3'2j¿h“û_ñÃÐÜ (ͺèülÔ¡@ƒ¡EJ—û š ßÂ`Ð…BÁ…Ð\ÖzÌÏÆu:ápƒùÌ­Û²ÈAšdð ,‹š*…r ˆA‡š‹ÿ|ù¡•ן®¥ÏýüÍ(ì«÷¾:x±ch6ÒÃìo.GˆÑVG `YÖf5ÃÁ±ì{¯—½¿—C”dĤiŒEJ—UbjJ\µe1™€ÒŠ%•P_È8­¦ã߯CˆA€²“Nb9šÈ“6AƒŒ Þ°ôX¼¸¡g/i;u6 Í Í ÕsXL¶ùÁÿ/K"¥Ë&P´(×|‰…ç‘d~µ Ty¼HP¦»±úN.¤<2Þî„T~Wåi™ÔºÞë¦þ,´Ž\ô‚'ŒÒ˜›êh™q 󣀂¼ß#¾è×`ÝW[ý4Ñš6õ¡¤Ã©¿(Aê‹>Sºz|•ÌõgÛuÖÿ*¬9ú_5ºe§µ«)˜IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtwizard-modern2.png0000644000076500000240000003535112536324517022660 0ustar philstaff00000000000000‰PNG  IHDRÜû¬SÒ:°IDATx^ìÙ{pTUžðïïœsowÒ Ï ˆ Á¢AYÄ]|3® »ŽŽå¸0âc†Ç¬ø*‡±œ§\”ñ1:ÎŒ˜–e0*¨„§€"D Cb’¤Ó¾¯s~»ª ¤XW-ÿÀ¶?uªûÜ_:·nõùÞÓ}›˜¹â@üá5o~,l¥,‹lEÊVÂ$ €‰5Ò„4Ç ƒ´F $3ƒ6 K­Ù `r=šT[4+{â˜^ªb_×ÔeGƒüÞ*/KpHiK’€!HÃ8>›8Ù_kÌlÞFƒ=“|× 0 ˆ¡“‡ ãC—7æ¾¹¤eãÃM_øÑ†ƒBYP v–")!djñ0Ã'0  ÒÈ\cú\%khm¸çš€“}?€ÀŒîÄô>á‚rôANB6ì0”€H"0C†4';Ì™0œ!2ô¢esòó²•ç#ÐÇ—gjÙk]ÛÚýÛrgüþåeõh‡ï²1`cØhÖA·Qîóryníµ Ý|‘•kXú$f­™!¾L„¿ö %ƒÓçCœ;9·µ]F»¸ñÇp}ö5Ÿ»ºq´Ý7¤ýÜ‘û.ivd3{®>Öb ø>»Ý:ÕmG4sáËoœ φŽ)°€°aìËKcŽà$äeYçÈÖµ{†‚, íP2#í!]Ø–liç>½HÝ|þ¸Þóîk}|>ña € !HÚ–Ì²Ãø´01 Å¡°( FáQÙÑîU!ëÜË/´ÂžùÛè»´í>àù¹jTÊÉ¢í{¼xDN!;êM‡ÍäÑV>¸|Ÿ×é¡©ÕèlsNŸî)äÄ£G¨_ÞÇïwÄJ¶WÕ_zÁè³"cׯð[öÀ,lÙ墯5²å*þ¯½ÁØQvéP«8»Év쾨 $ÒQ<Á¼çcÞz@7¶sÿ~¤“&0ÆÄºØõ:ž_‘ËÝ"¯wÖ…Û·ÄÛ¿•Œ$È‚´@RA…a… @8ÈøDY ,m¬1då7FΛÉÛ¶e§(_dÿ|j°`÷ò÷û¯lÈѱs½S¸b:í*((Þ»mí±œë.>©sßÞ¼âŸ÷ïÝ1>64سGÉBÓa]sÖ¬õÏýÞ€NËÒÃGr³£þpÀܲ¦HI¿iÃíïöÆ+”ÿƒìª_½½lÔ9ÿ:ôãÕ{„ß߆°’í+gðµ‘A¢+ÁJ²6Hx<ób5ã"¹jcД€& ˜ -°1ñ.‘Í~íGñ·Êò®¿=þÆŸ½ÒØ@)X6DHA„!¤¶¾ÉWÜ9ìÀº½N;oV‘Ý5,\ÒÐË‹F;j„¾À„CÛ+ÕOç¼·nw¼tìôpó³uÓ<°ç6‡Ïûå-ÞCK_?tÑ•ÏLlzôíÄ}#:­øÀ;Öµ•Þ:3ïЖvË‹}ÔAZP!|åiŽÓèIu%‚°ÍR š1N.ÿï â;È3€´Ø°IÄȲ£ÇçL›}åÉì)³r¯™_ó[ád4¬,XR ((ë]õ+¥þFëÑØÜ«„‚%ûê=ý¬x ma‡6׆®¹¶x8ÙïWÇë}ÚÚ–[Sè‰ÙhR à!¹Ök‰+9òÔ®ÞýúZûÛì÷kÎæœ„¨ë š®àõ N䇇DëjòÇLB(9ÿúðÀºêøðÉ#DlâÁËsûï i#”]]cnœrþ•uá°"( ¶Y%_Òƒ] ?;„MðŸïéƒGY Dݼ &¹'XEßÊù½èŸŸrw¾TnÍûá#ÁÁ]x§FÃ! –‚a(×ý΃ÐB„!hØÀˆBDrÀT]ãÝ¿?ªº·{ŽõÇÖ!¢†;Ö»™+ßÃè›_Ë>»é£G"âmÙo5 “wT;Í}ÜâšÊ;ÖùúîïÛf××Vò(ô² 0ü>Öéuv™ëú˜þùkÞŽmܧɯ¯héb®®«‰ÝÜ"Ãu[ÞÍ Õ…c ’ú[[÷caƒÓ§¥âî¨w4<ˆB _TƒMÚ$º²å-0ªH­ÛÇž׃ër ¶ÅÌ:ÖéÕl}âÞàÈß»^Õ®öŸß¤›jëc ,H’„‘U(éGya²$YR*I$Á@l`bÙog”Œ™`öT46µ¹! ¹Ž¡„‡Àqodvv˜_¼·ô¥µç’²Fp µÏ›ˆåÿø¹)¯Î@§ƒúr0˜“Q2ZjK %˜D€0ÁƤwÄ,æéâ•íæÎKòr”K ô0 c"U-vUuðD÷ˆ…ß}±w‚b&c†á® ´jÿhh 0À„‘•(Œ@D!”‚$(Ù„$Ì7ä–IHoÌ0éàÔ;èé0 d ˆ 9َ׃0šßVB›pozöŽÂEÈã›$Ãõqãâ(<²d_Þ?7ÄÍß<±„ÁeŸà¬§Î<oÁò2€`ÀàÝS<å ‡  “'ûÇ럞Á€WÏÀرH™'#ãXvÄ=×BàSŸïÉTÿä"ÔŸ:ÉëëQ_ÿuHBFF¿\:+ËN¾ÁÖnœº@ž~7Àà¢Ô gr22 €Îþ¸) ØÜÓ7'Š`X€<^äuêL'{-`Ìù©Á'ø|Ú½÷ÐOî]´xñ#Ëu¨%úî «_Û°ñ×KVw"ÉhïÅ?©>†O‹þáá¥ëwÕlxé±g×ïÆgr¢‡—Ï¿çOñÓå¿ïp¤ž“p|œÄ‰wòÁ¦UO—;HK©Uޝ>‚q:,ŸK´±²bs0Ù²ßrÕ–¿¬ßö·u›vì~õ?ÖÅÄ:Øð§•‡ùN?0Hêuñ„¡‹î}ð¥gYü|ã¥ãK\Çq]Okíy>Ïs=×uÇ=~?²ö…ƒ·ÿûÒ1AùœOë g6×{wÅ‚[üÉ1Úéáyåϯٹ}óÚ²‰ž1® Ýd|Å1Àñ¤òó)D0ÀçÖZ¿åÑÅ‹[µê¹•e±Ó¥êç}{ê¢]{Õ=¿v{Â0lê܇æd-~bÃʧ–ì\qÛÌ›æÎ¾ôÊß<ù‹YSi©¾aöÄ'L˜ôOsŸ~õm)B]}Íu›>ÜüÐìió|ü’ËÇ=ûææª=;꫟zò‰‡ï¿ýŠ›îzæñÕUÍ]@ðâÒ[g|gÎ7Ì«íô‘†2>+öçŒI6;ƒ_îÛQJ¿¢‹X¶ìΙ“ð»jÎ’ŸÝ=¯¡æ€Ÿ:å·/º¨xÔaÌ;¯µÝ¶è·Ì*,Û´íäY¯ûÁýwÝt…:ÚêòMÝš¿²-ýW|çìÁ%#ÇMÈrŽT¼µ>晣퇮F’:ò”!yjÐð‘~šn °qúœ.8ƒ³bà@€O‰Aj<ð?ìœip[U–ǯž6[^dË»#ɒרqã„8‹IØY †$„n`¦¡fèbz ¡›@'MÓݦ;ËNìx‹%ï[¯‹â}Vk±,ÙÖºXûòæÉO:¤&ÐàŠò¯î‡[§Î[î»:uëüﹺO$,?úâÃßç1§ÿíÈ3VKÏG|³Ðž†ÉOÂëž„SÁ)à‡öÃ/€?¾ÿÇ xc&œ–ÿç›ðȰþÝúwí·<ÿ²[«…y<á/Ž+vm‡M‡o³a„’‘ÝipcüÙpUÉ7Õ»d ìô.9[a¥òþ«AX8óºûµ_J^9füÇû`ß=¿ù ˜žžìê·š¼hQ¨€0)œ×i}x< x›ÕfÔ9°0¸/ ÿhGpJþrê­S§Þúà|Q^¡Âdßtôã“o·t\½\p™Qfw¡¹Œ‹‡®„Ç7j8ŒÂÛàA4žÿ㬺I™~Ñ`™éϯºóõÝJ†Á=˜D/ÿê ÎÌ<¯é«W>¼j[4Ú”ùWë-à_A!žTÏÛÀ÷?Î]¼ òZѬÅñ=žÅí,©ê.Œt^Þw½†ÄŒTÔPΪÁ=8ô×s+MHÇi.ÊAfáÁ ÔVp§Ë,žÞ? üÀû¿qL úÿpÖëÄŸðN»-%A¸qƒ“L\>0ÏP0H]‰^,t™M¢h@*™ê÷[ʧ—1c¶zÓNœ9“îO˜6̻캚ëùµ­£¥ ¸€Á¬k1èæÊK Øœidü:£`D䙑æF~e6›-f³^ؤk­bäææÉqáÇQ‘óYãH95ž_ÀàH§û:Zn5³o–—²jÙ»¹»†y£¢mÞ ,*n[jµZÇZk¯Tk­‹ÕÎgßdä3G_ «´¡Óá‚Á"°“F äϪ”Z•ÖŸ×WÍ`0úxÓ³Õ¤‘ܼ5 WN3®±Çå_—£³¡´¼µ_x‡o@Äás8cuÌê¡ÞÖ«Œ’)­ñi*Î.ïâ͆ 7&çæ=¡>'¹Us£¬‚­ÒÈZj«Ù½%Œü~Ž‚w»_kw n÷Lë,°]ÍÌÍ­ë™pÚµÕ×êÚÆn€0ÚQ†¼Ï¨DƒôÕb¾@ªÕÉ„ccœšŒë¥,•ÑŽ|ÏHÛêò‹«”V§g@6rÍM¶@įcæuÝîd5´igxž)¨o5˜¬&³eq·G0P‡Ü¼‡#3Îð‹òòÙ\™Y#)É»Ö6*àŽÖ²ê»ss™jèkfÞh첨%×òÆX$=b¬—‰ŸÏ(äN/X\v-‹QP*@Fýcro x! xa&ºÈSаáQÜG›½^ˆÁã€ÙŒ‚¬M£arÒvCAÁàß_‚5ê©j¦F2A»k©Y>íH}ç£Ó§§‚£#ñ˜Afný‡•›ÃQ;Íss U5õå5½Ã\!{8?û‹aþèW—ŠuN7‰B‰‰ ë·/½‡¶;Å\vaýø† ˆZ8Ñ ÖnH¢4W5ÖÖsŠ¡Š&vsEQÞ•«EU­]e5]B¬·_dB<¥ìîh½Â`r‡eýN“¤¶[¾!Þ”å_ÖLIUwm`“hQª¾ö1C8…ä…CcgEù%Í qﹿW®Škø*»‡Ï½rž¡tÛ¼¤º iª_X}³Ý »¹­©´G *¼˜+àw_ºÜhs»IátZª±¡%&–XÒè‹å£½Bm~~´°°fDâœd×'®©nl°êÙM½Â’ö.~_ÿ-&Ã+ikx0¡ï£aˆW–se\áYq(´B8RÀì´€v+;:ÙjÈÛe4v7ß”Î+Åì®öö;ÊÍÉÑà¡“q¡…7uíü¥Òür\±¡V¨r•6”iv®¾²º¡•-×,:<7+º“_XYS]I^·ÉÇÇÝZQº6èµ—ÖûQ9 $Üæ‹y,Ö—5²Qi+«’3;ÃíÌ ŠN`^º<ÁÈþ¢|Þdí<#ŽâcåÕàG¾7Eöƒ½;€ÅìPÌ…áƒ4·“¥²ðy3J«5ºnÄ™F¤`TTðÓGÁ«¯”ª‘œKÚ¶šµöû ?A‰ïœ9óÊs;±J3cÜœqðÙC{”=þñ驉lȪô-kg¦Ft¶€}OÝ·m‚|CBÑw ©FþÈ >+c›Éj_2úCH~Þ 'ÄRË@‹ Äc’Òv{j䤧ì8šu(.Ôƒõ ðÅ;ÍF"-õÈ‘gR¨$·}åO£P#|è-YO¡5#j«,ábác#¨8”îv¹xç¾L?o &Ѩ6£ž7`÷dÉz, å½ýÐA»¢ß:ï¶`rØA`X"=ç{øÈ±k£ Dð òlPpüê(¬ÕîÚk-†J&¹P˜¨x:„ ˆOŒöGÁÔ´C‚ÊO#ÃC@¥CÅ­Ž ÷÷ÒÍÓ2!DÀ b×Î=±ï Æ3e´”puoçL0Å1¥±Òwo]kµ{FÈ#xLõ”rÓ£YO?ð˜OhØêXj-6„H¯m'&>’š@vº–ŠÑôlÿ‘ýûˆ^°ÞáG Æ£tVBL-„€Å„®Š§øú†­{æè±ÍÔ°-YYjÈIŽKO¦ˆe"«@Ún7ÙQaž9ºgÓj4 ˜ÍöÀ:5" ~<<+À½J„þ€ìçB¹<Æ…·¨Apî¼|x0‚A\, Ji$“å.×PS™{žÖ×–l³à—¢k¡8oÙ"M]Œ¸È(Êî—ž5´ÕÉ,kÒ'úêFd†P’WoïPÄÆG>Ü^\aö&ú@€@ !RéT:Òhd |8!@\TÓ¿jÑHõh^Ñ¡˜Ž…„BûxŒQ!É~ÓCí#òÔƒW™M·'I!Da£è‘>~ÁI§o£ØÊ*{Ãb7Æ£&Þ»Úœ¡”ôèCãWy[š¸íK§†¦íÈ–Õ´¨j2¦¢¼åOJÞµýð¬ñ®Î´çž,¾1‹D"@o)íŠM9òíÓS§„vò&x?ú“G²Š½#B°(@öêg+7Ä@;ÏJMOÁyai)ø¼Šë~|ç†ðÐÛã¾úóg¥}B“(kÒ¶®¦DGí=¸£èïñm>¿|\×\5,· È¥Áñö²Š&¯@?ÏBÞÉ6¦®OŽXE1èúoöŠÈ ß'iýÃAjö§Ì¾˜H?ÄkÏ?/*)àÐ 14/<‘N%…“É«7%Œ÷ÔŽÊç¿s /"e­W%«ÆMŒØ¹)òóOÎYý"w§Ç]þóY=.ˆN§ø'e¦à®·…ÆÆ(%·  $LsÇX¦5^ðZµš$·îÚ¿æfQ‹h `MÛÃ:{¥Ì€qM4 ˦'Zy?ü_+QßLíp{È|ú 7‰è^ÚyШ@kKœZCDú)y’ãÆÝ碫KÖŽ÷ÅÕDØÝ}ù>‹Ž%>¿\*ê ’‰ÞžþÙÁëhÊ KµhðìÉ“gþ”-Ò;ƒÃfÒë-?HEåÀG óDÁ4eÿBÛ§dÀeÀY¿rMŠíˆÏØ„íðqç–]ðÖðŽð®0"˜îÛOIá¹™¹×-DÓÌÍðÞMðÞ -Þ›ïßß*‡/¼×Þ¥¢†_À€ådjâF*ø·mûÝmÃlX2`pø,»¹OM‘\ ½y>ý–e}²÷{'æûÎiÁ-SÄÆ  šÔ)dAØo !nX°€{9µ£éÙÿKVc·qdzð=h-}ïÝÓH¥vqs¿§ªï»ã²Õ2LàÁèÕJã7ò¥†?Ž/à§À žÙ¾ibýÎû8™Â•œDX+…`bã=mûvàM:=LôŽOT:@cþ) Pð2«¨N§ëÓœf“nª««k˜+VÍÎqÇØC³a®ïv×ÀW­R-ñîœF5Ü×Õ;8bv­œ‹\ÂM ¦$n—cjZÄéBÐY¿³`Èt`OFfæ!_åÀˆlv¼¯gäŽT"áëÍóP"ô¸ŠJ™H8<< äŽÞMË¥âÁ>¶dF?+Ÿ³ÛôýÈÍÅ*°€~ZØÝÕ¥šwjeHgHou.D‚J1#Ÿî—"©µAØ«v€ÿWV¸w5À ï­0ÕjÐ-­h«ÙŠÃÚðXðÒËæwN*‘¶-]©œSRÈÄ­êyñú­bˆîŸÂÀµü*ªÕfsÙ´Ý·š.^Ì-ËùGÇEk]Ý”RÙßÙš{%;5×QUÖÞ+rØMã½%yÝœ9$§•µ5Ô\È.¬`¼ÊÊQéxïͪk…·½S xvJ2'Ï¿VJòóï¯g]-©dd_éèªÏ¾x¶e€¯¶Ô³¾d”^Í.îéh`Uw2‹+®g_Êå_æ³ì°«ÿFNaõÍsŸ\V;pjJ®ktS­åM%…×ev^Ë8@Êh,)¹Õ#h©e)àP•Ti?Vpüò)·ÞvÏy_ ž”Èe¡6+¸xÞuê„ãô[Žw^s¼ýªãÝ×]9…úâÿúºFpŸ0p/ãéMTRlìdã@@ÌZ_ݰÍ~à‰LNm™ {ò¥&•Vå´Óà©ÁL wêÍVÀ&>yu²bD™‘”“Sÿij{Ç¿­K¢jÀjÂA–aÎ Þ©é˜ÀÓ€JOO àÐÉë£[ËÎmØ{l²¼)zub?GëKOJKõ–·̌˜ðÑ»3ŸgX`4w@¶ƒ ²¸a¬3æ€M™høƒE­©‘³«´`¼júc(A³Ac¡öÝÿ‡³ ‰"ŠâøÙYÝvrwý -,Å6Åbì[£¡²´(—>²H((zˆXú|è¡ò¥z ´"J2 QÜ…¤$Yuý`Õ”•mW]W·]w&ݽ b3e ,…¸Æýqî=œ¹oΜsï=ˆ¨éÄ–™Î 9c³BAZ ÐeÞ½õº\ëx·À$ðR2¤rQPØyab £± KÑôZÛ†™iµVMâ˜jy\ ­ÝÑ3äöSºã¥å„­µ}”›ð öÙLjXhmjÓȮî‰i›glîªÄ|Ìl$ãbŠ7e¸9í±Ee—®œ=¿¯àd¡Â1`ž|o2•.8MF†ä,ÝAB¡ÑPŠX•JÃOX·µòö}¸^Ÿ¸÷\§ÅìòJÂkn:h¾Yah¶)׀ޕµÙ¹kG»¬Žñ)š|óøAý—™¬ôe>¿Šâ\ý|¼ZLbn°•E”—QyÛÂZ ˆWƒíaéi¶¡Ájl¢a.ZG$ƒY9²(­¢Nkž>¬ÿàœgöÚ-/žUóôŽøa$|÷¿¬ª›‚©¸{¯êù«Î!¿òô[^{àbƒèì…%ဠæí†O„>¶0 òAîóÛÞæ­­ë3\ë*Úä˦ù;`~.”*˜ç@= õëgG6ÔgA}&4ÕÀ'×acutVQ屇N]þÓ¬N¥¦Ò rêpI!ˆUò-ÃUa¥ÕÑÅ:  ÞÄÏ”À=ŽîÈs²<©+™ð çtb{Ò׉À# 0éh€Ï}ˆº¼ –Fãrqαä'sr‡yþ[d~à2 %d ‡BajI(‹•¢ùOò¡ØÛ‹ü'ˆà zA @âÝH Áø2/¡¿#J0 ” ÌÊ@öK#0 E£x…›¿;‡ç¹  |n[Þ “RÂvî b`— ü;Xˆ@Ê~瀄ǀJèoJ­ïæÀæ…½hu\öî<¨É3ø“‹œä‚$Ü‘óPQ.Áb@ŠÚ±Öªm·¶]g·»ÓÙÙÙwm«¬®¬Òz¯RA  *•[ €¢Äƒ#’Äp¹$$“@îc#3Œ£b ®³måùü‘y’y&ÿüxçyÞo~Ï/-KºA\ì3Mf™Ÿê•´Nøì¶ÒôÝàé Ó']Ã,€ô‹¿'@Ð’Åàjõ+:3ïEÍ,P³U‚PÐŽÃXÁAdšëS•àææ„·C€‚ &¦'•`2¨L`Á Þ6 Á'k4½@ÀJ€ €€÷‚¹#‚•A¿ÊÜÑ \k±€ù‚ œ’Ež>•Ð/G†ú»ƒy‚ ¶.É+®‹Q+‰u»À%‹ ðfOÀ²ðºÖΣ5,h1Á¦M)Ê)ÁžFµŸ¥ô¥#R– ÌJ)L† H$œcs%$˜›–º«M’qÙ€ðNS/ø9X-&­v¸4µö‘No±>™ÐÛv«¨¨¼¸”Ûü|7 ³Ž[X¥OÔ•VŒëÍ`<ÖmnúN[6Ưߴ-&„VvöБ“›yêè–¶³)iÿÙ—v_m¨¼x*ùà¡›­ÂóéÙG.áV]ªé”uóov>EaNÞÉ”£×E^qrò± å¼+—òOü&'+çÄ…Zy_Û±ƒ'²ŠšMeoÀ žÀQÝcãW/õ ŽsÍÿî̹´ìÉIÉÇóä3ÆŽú‚ó¼^þÕ¤/÷/kíåú|Ï™Ì+S*iÖ‰ÄÃé…`Æ­òâÔS{“OfɺӒ’¾:–:2asÁ½#3D›±](ïU$0y b¼{„‹÷N|w{·‰ºë³eåùD¤#Â4U«]j`ýå³mãrœy°µ¾cØîÌú1%ú·Ÿ~250‚@Ó1f£­sä¢-qÔL”äZ,üÚ:©¼ÊfcÒ(Mîl\Іœ«¨OÆ{ùšõ‘>åéyr‹žWVœWÖñÑÞýïFú›Ì–ÍŸîei=š™=*é‰Ú¶kSQ\üñŸÿôþ¤Åæ‚•à—Ô5 :ë›Ú‡Õc’‡pÁ ’ph¬V\.î“Ò¼€@ˆxwýJ€FÚÓh$(Â"&R4rÅRרաªÇªPg½fL¤vú8&lÕfÇ€q]LDìÊE,cu¤ÊHˆæ„à‘`¨1«Ð2‡ÎÙ4Ð=±2,6zÓÉ;l‰ëkVĽÿžµOD^ìC¶ÆG'Á³œ£·…Úá˜q«—ø…%x '}8﬋]»vu›Ñ,,fÍÇÛÕb!+|ùÆw·kÄ­èÀ¥Û6rð$'a5<c»˜ŽEGEÅmÚÎÔc)‹ÜˆãÃ`aƒ(Ÿ{¤(zç5ÞüˆšÚ›R©Ì6 RÉomx󹥩¢OŠôeSÁó´W[z£"B‰vHð²Ú@|¸?˜'ªºÓî…/¦Ñ$ *Aƒ¹‰‹/†ÂÑ}Ù`vxÚZN8øßŒŽ+¯5ÝóA­€×èÉÚú xDy-sGxx/}´!ˆ×§*ø*wÌÉŠøe”¹UÂt_¼_8W%6ÔÌwQ_ñ¯7Å7¯ìÜ™œüuJål <³FÖÞx3«ø¾<ëFye—tÒ6h®«i“L€—Õ'>š9+¶ÿFIrÊY¥þÉ„–š‹‰û÷%&îN>~¼Ix_ܯxêë·¤¦fɨä ‚çܪ(n•(À\@pÅl±#oúäw_ìúë*Oluiqqí­²üËý2UUAvzæÅ‘I‹ù1 `r¤3==»àj£Q§,͹t¥A`4ª+ó.Õ¶ öq‹¸·ïÜÍ:{©µw|ø~SFnñ°\YUrùÊ-¡A3Ñ-/`ûëýb1·ð»ìÂÂ’’:,%@%iLMÉ +G„õ¢)rl ££kÈÒÐë¹{Nœ¯lnäåçñ®ž:]¨VÛôÁÕƒg.«5c—¾=_É7Z¦*3Ó² ¹“z3¿673¯D5]Zª‘û™))um}ªQzJê]áPÛ݆K9©×kÊ.TÝ Ü;Ò?*þ>#ùë´ªkwF¦(ÒÆ.æ"ÿž”‚%Ȇº‹+y­"9˜†§8"§45ÜܲRÒ²7Bœ·ë{YdûÀ½{F2ƒ_Zþ@>œ“‘_õÃ)³UÜÔÒÄë™’Lèqd/:x®Ž÷“óº~Êêì½b9½®önLüÒ’k·ä*¥Y¥–ý&%g‡ †/öäWÜö qæ÷é6„š²«{.^áAËÛóÒúF+rÎ}Ÿ‘Ç„3‰ƒ]B’‡Ó ûeÀ¤¬,«^¹eV"Ê/® Kˆ½VSÎã6²}\[„V•H¤ ¬,uóŽß±ëK\Xn,¢‹E#NÊúÄêoEM0£ùâu¿õ›B|™S:+N#`½•L£í(<ÉÙ™j{Ùºýý-1!~œ({Daà¬_3!á«Ì(, ~™íçåBÂá0x2!HL&m2 f #i¬–!Ì-w$¬‹!âq†‹ ‹!82“Ö@Ûáˆx¼VeN°úÉ{d4šâàÀrv"8zøz{Øp‹XM:3Þ6‡É¢™,8Ëgµ"™Î®N4†‡²‚… VÅ{»ôâãu‚Háʤzy»íüý|q¸ž‹Už>l_¶Ïtî( 6àfI~ÿ$bõZNóå¡Ú.&6ª§º°qÔàÃv¤³Öo©¹pECv £-ºÈˆÀ~1BÕÉüðnžž>d†åÁ¶ ènœ ÚéÔNlDp‡:9À`»QÜ#ãB<Ý\eMm¬O #ÐÛ*>R:²}ÓJŸ€à « )pÇGÒ² Mú„-ït_>›YÉcûùÓIXgw&Ü»1¼*Æ/#i?_…Þ°& +åì’踥þžDÓÛîà…¯'òNàýç'x.<² ŽŽøô#ð ¼ÊžÙ Ñ›Êpq¤€y€`ψŠÑ3°ý„ín?…J+Œ‚Ÿ@( Wk'ÔZ0 ‚´:ÃxÖ_Mo9e5ËÀ <Š=åå~Ç ÁÞ+^' u4ØwôHJzŸÜøLoº …Ò fh«XÁ³î·¶ö˦l‰°C<¤/e¨çNAOoÖs³Oïýê›>©ênIÆÎ¤C=Cõ'?ߟ|»{ 0!¹»çoÿLLLÌ­ºûdòdoY]˜³Ñž¶&‘¼ØÜÓ_î±EþþQ'ƒYÆ«ªš 3ïÆÄ »ÿ¾ëßIû#z0M¯WóúÁÓŒùGÏUhÔÃÜê©b<ÇbÒ7pÏïNÜq‰«1i;÷LQ ˜fÖ*NÚyìÛ|Õj{s!7M«Qú_‡R2ÇÕš¢sv<Þ5,+É9tàðɹ@OUÂÙ¹ö ¦Î,žš’‚„È[@¼⪥SÐ)>ŠÎÚÇÎX»U‘®»îît§Ý™ZkGìjj;®S]¨QžMA! ‚ y’×ÍûæAž›\’ܰ—b§ý£»³ãþëùãΙo~s¾ßœûýæûî™óÝÿÍÜ>´àöoÏ‘ó5szBi „PH«Ré¡¶mZbÐÈ%R9ìu«õ.L ŸC&“«ôfõë@%/qÀ>H¥æ $z³M¯Ñ™ç,r)hqú|.«L¡†‘Mm´‡P¿Óæûõ^s½LÌסóFµ-ñÀkɼÉœYôÄG¥Q~ͤ/ýDi1(^\âÛP|”Åbx#G¯ZH#;Ý6‘P")‘PȤÁ‘ÃõZdÖ+0¢ZÄçQHE2På*Å o²zÌ¥D¦ö"°N­4˜æd"±Á /‘Ñ»HŸœþëô1iïŒÝb‹°µ@r,²Åøœs!F¢E.l#[Þ:ö×;ù\‰g%] 9H¤òÿtIÊ“‡/XLÖ9É4÷JM—sÑ)dJÍÏd»š/vÑϱÎíȤÏ2¡2hÓº~œÆ#0?ÚK·N@A!—3ă‚~_îž¿íŒ#‰ycòåEŸìY+ÊR_;ø^>C(q/l/;ðZú%4š‹}§g°û^ßÿÖw 5=Z‹[ÐâIî½Û w¸º¥Wô˜î÷WV·MŽõÝûaRê5ÒñÎû£¹†7>ÔÖÁ½[Wßz»«¦¾·ÿ»™ÝÙ×ÿ‹ÖXÛç ùVï¯RÈÛ¶# áH±IØÞ %чGsíÚ ;ŒR©D º¡E\î¹Y^VÆb³Ùåÿj©úæ"—û}ë ù“ñžÖ†Q•ôÉ»©²®¥³â|Ý@w3»khøÞÝg<ÙHïÝêÊÊþÁ¾Ö¶ŽiÁ¬Ö0[óÝÕÆëÕ-ÍmW¯°{*ºL}{£ý9›ôŸg¾<ñiUÒ¶„Žºk£÷;nŽˆU‚QvsMuë§¥jäÑ´ÌéùEÝwk/]®]ÃŒ:Âi¹y¹ã¡.ä·ÔWWMt76?5,¡ø&pˆôó°Ëh2€ÏzÛ;û›š…æç ´Z­‰)ë0'y“ŠÚ„i NüPáÆF(É[mCßÞæŽ*Ѱ ü7ëi8Rôú{×ôløB£EDF­°Â3V.p†G#cVâ^Ø^và}öéa:Idí)ÊðX‚Œ)Ë#ñqé9ét?È$®ŠÆ4±‡f”ËÈ1ø*á‚=oîṴ̈@ÞME»wçgSHÔ-¯çÁoljbr4%&+%.ŠD±hT ÂG¤¬þ/D&¡:úÕcï¯CæÕŒmÙ¿uF$q!hÀï#~TB¥¸äc«lw~ZFAqffvñ¾]œUp äÈN‡€?;áIˆ_e¶9âr “éôüß¾{èGbQ«ޤ’‰RÄ(|çí]¯ã42 ¤¦§RÂñÙ…EDòêƒGßc„£ÏÏv´uŸ}yæó?mUªäÞ…‡K‹QRüȶ*>Þf ¯d¿èÝܘå¿H u߇?söx&Í£•ââci&«uiñi{KŽì°Ï1HÈ-Õ‚P€hœžÀGÅçdntÛüù{÷F^’󧽈á¶›1¶[™ËBTðéclä2íø©K»6ÅùÄCÄÃÝœ)¹ÁKY}ôíu"½Ë#ˆ×E!=xÚ¡ýÛg"Ü ØK%ˆDbsb“ ‡ìÚ>ùÚTŠP¬š'†EÁ&î$vêt(•† @È„Eá‰ÐœÎèònÈãÔ^o—dd%ŒµÝjxÀ#¤0 mÇ>†U¢…}»V£œóáQßb4>äµñ&tÿ‰-™J"F¥údßÝÔ—œùj,cÕr0'Õþøôå–˜„, „_>h¹‚}'ÔtŽaSyÙ²Åç³;•_\êb¾™·@pÊj„HâÆÍéÜšòsß\T[CsN­ÆdKÊX#ꮪ`®bna&„” ‰L¥‘J“tþó¯Œ+“—*dÀ~»"g;U£ö Ÿ¾Ð¾zæU€*˜·ž*=ûUèFl D(4-²"„‡ñ‹_F‚f…B)äÈøl@}çdùýM…k0ŒbdŠùVIIÉóè¨f2A¦ÓëÊ»$®”DâT×/–ÿ´ì {²ìäÕëMO¥»ÿ¹ôHi¤YçÄv»öÂùãµS+>øðãú+~pnL°²âÔUŽ˜¹¹0RÔ~¶~<5†Útãë‹ëÒÒpÿ¿½ìÀû7;÷¯ÒHpø\™è£.)ŒŠ,dKß`ÁJŸÑÒÚÆF±ÄF‹ü—˜+FA¤P#2Î÷Á0Ý0ÍÃ…Ãýž ¼ºº<»îN¶fñiÇG§í¥ÅøîÀ+ÇÞC/ßÞw¢„jæLÄH~~¾Ýê‡Qߊ’žž"Ê ÈWÛ»{ñNð»^ü¨ ¼åötT öŽ@  P(”J%€@  P(”J%€@  P(”J%€@  P(”J%€@  P Hý€ü¶pN%€%@Α>T˜  P(”J%€@  P(P¤Èyp `&€@  P†•f(”J%J€”‡”f(”J”)")ÌP(”J% ƒïÀ3”J%J€œ#¥a%€™J%€@ @}n·HQ5ós/¯8¿¸ùUËQ10Ó\Œè½Î„…¹©úxT \ßýh :'€3(”¢Ú Ïà±}3‹‰ë¼âøùî½³/ Ã2ÆfŒƒÁ¬3õž`ì7^’¦‘#×R*ª5éC•—¼Tj¢>ô)y‰[×]ìÔr£(©wãcãl &€‡Å¬ÌÀl÷~ßiFW"ñdæÂ5ÕXªç/ ¸ßoÎáü?oÆ(•(ª "2U¹&G"_ Ï „y *‰ Ô UxŽ I„ÎqœLg”2FñIè U$"Žã¿¡Ëá3ÑÓJþ·"<Ûš˜šû¤a0DyÕ×rŸ | ‘$©8ϰ³*Ov‚¿ÔÓï×BÔ A½žKoî*0õr5·Ü¿ÔúA£€„~ºÍ•“a•c“³'®RÐ!  ‹¢Xé6W—å’¸gÞ M£[Ê‹¶–º IÎûÇ3»¼¼\Êa‰vOí}Á¢O=(Âékmýã5.½l¦ú¶ñ÷ìÌHµ0FþÀèÔ_ÎÔ~©(ˆÐ‡~¸¹¼ªÐ™˜äÏúC;WSÁǘG’N˜ ŠiV#¥RbpŠˆŒ‘ʵècŠŽ­Hç@ó1‘‘0…y…DšbÒ†Ã!H„Ðnäù¿MµÏ/fÚ—|PÊ!1é„XbT¢T\dwÜwçFKߨ²••ëKœÑu64¨·;¬Âó 3FåÆT¥(J¥$s²¿wNŸéLãûúå­ÈâáÉ%‰(Jì±€•c§¾¨ûÒ–[°¥j-O@Y³S£³Ì’•fŒ×ÛKR(j>¦‹K~hvb|N—›iüºw(Û'§x ç#ߥ]lg¡+,®’NÆZÿ§††œTTÿçËÙ‡ötœ½TPtÐþxe´5Ýpx¶¯^fQ^hFq$ÊD)§î›g?éâýÎKuuw_?ô¢þ»&ùº¥y$½Æëdƒc¹ŽLP”q]4 ‘!b<#9z²¼ºÆ×ÑÔåt?çЂ¢†{Z{¤‚©Îøû1è‹i̦Þ»Þçxu›óÊù«{¾_NqÃ…ËÛvЮ`ÐEFŠ@„gY¨¸ÁÄ@sC]ßÙµ/‘!‡gøz>:~,¹oü¨äÔÇgçL¶œ4›áa×Ñ“Ï|Åe3ÄeEMŠ )cˆâ­ÙEŽáÖ®ADÚqùÓÓ—;²×”øuanÚ§'/M;¶lö¼®E”FÛœox¾¶6?M7DJ1VøíëB»·¢h ­ñ ÜúÝ$}VEž¹{èþLؾÿÇ[¯ÿ|ŒèjkwܾðÏ1f¯(É[¼Ñd–]I(…;o_=+ft Mlüªáÿ]1æU¦\<þ§áñ¡€©ô—oÔê²c  )Tš æF:ZF¹Ÿìßi†BŠÝ¦ƒáÉ9^¡íßgÌ¡ê·~á$þºG?üèÆá_½ï²é0&‘B´(àŒZX¹~²ýö´ûüD£?+³§shß6ëïuüæÝw‡Z@ ÄU¼åEvñr[gþÖ’ø} )F®>!LBDB€†x!L:t§jœvö·××_l,Üsp¶®ùì©›_ §ÙgÚïÃꊵñF‹ ’é  f«Ýn3jౌkììN£T°Ü í{ó½Æ#òÝ6ýB»MJVH:Pqb2: =ËGOÿl÷Ë{,D`Á@pbfŠ¿z/gÆ©ú9Ùº»õ×ï'Ghú;oon=SçÌÚ›kÕ/²(JQyºâuŽU¹šÏîLí¬Z%,+òûîu÷l-3ßl훚 «ÝZd=wê®u‰Õ;WÅJvÅÎʦ|Áwî|= ô´§õåU.ü’jLF=?‡˜‘aèmnœn—ˆ`óz+³¬ÆY1ˆ ‹ Š“|e>wUQE…³³¥/'#ߪ-ÆÁÉGü#˜ž»ÛxíN[£åcpÕ˜.é@T,D^·¶jGÁs£!D‰‚©8«ûú ë W‰Ç=0>›½«ÖS¹²·©%`YçÉ´mö‹ XT?ªTuTb¢¤Ô…“ #Ägl*3x~°º¿wÌþB™„ån‡©·÷aÈÇaDÌä,=Xš&3â:2QdüwçZD…“=áÀ×®5w¦yjÖæYoµtänß‘ïÌ´§è3=ë³i¸½}’èKJ GÚZǨÉãÎdÄ×W²Iâ$_Yã½6<ØØ4aJ7¯¨òXz†´5Þ =ý×¹/4”îÞµ'EÇ/ä'T^ &ŒRDª¼XÒšÓµ@%ÊL޼RGH‚eÓÆu2`µ×;0¸Üñ€Q 'EØŒ*˜rZúfgEÈH1h ¶ªMùó¬U«­r™j“¡ ¢”JlÞ ó+V¥Ø9cúæMé2ný† ߆™jwi¹"r—º”¿e“Htò±b–@£ãÅ™Ñ`ÖS‘+Ý´Ql©©MÍÎÒ›|D’tB ™ôÚDz,À-n3Î[Y:ð=šTÛ†ùfý’$Â!P€T ´µOU`V€d]í O*©$굦ùKO §™µ ¸|ÆõLÙ̆y€Å¨í1 ᓟ—“õÍÇ÷3o4ëB3S¡Å%Ú7‡(Ÿ'$ð=m,Îù{}ßõ¶ÕøD}é ŽTW®œ¿Ù¡ÓiwW˜O7ݒ¨•ú ¹N@ÆD`OO)£OÁ‡áiF/&ß©ót•TRI'$•TÒ I%¥´bö‡ãíøÿURIˆ²ÌI%ï L䣢¤‰vÊŸK”²ÓPŃÊÏ’Xã#>ùV¢ª?S?§àó¶0ɸäü‚‰Š×¦"|u“8ÂÌB ócàÂK i-½ÂêO±‰âpÊõAT'W}¤=¾J¦zpœ RKÿ/,]Rè¿ÍÁ•IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qtwizard-nonmacpage.png0000644000076500000240000006367512536324517023434 0ustar philstaff00000000000000‰PNG  IHDRñÒR6dÖ‰PLTE  `—\ˆhØ n£p8e² $ wÉ'ˆð((((+((Œø0,-0002508,8=>;>—òEFDHLHPOP]^^`d``x`”èfcchhhhliprop”·wyxx€€€€€„€†‡‡ˆ¨À‰B˜Te˜˜˜˜œ˜    £ ¡¤¨¥–Ш„§¨¤Õ¨¨¨¨¬ø©[b¬u}¯BN°°°°°ø°´°±§Ù³³¾¸Œˆ¸´ø¸¸ø¸¼¸¸Èܺ¹Ô¿À¿À¼øÀÀøÀÄÀÃÄÝÇËÐÈÄøÈÈÈÈÌÈɼÆÌ¤§ÐËÐÐÌøÐÐÐÐÐøÐÓÑÐÓöÐÔØÐØØÕØòרàØÔØØÔøØØØØØøØÜØØÜàØÜøØààßÜøàÍÃàÜàààèààøàäààäèàä÷àìøçä÷èààèäèèèèèèøèìèèìøðìøðððððøðôððøøøøððøôøøõðøøøðôøÿÿÿˆ¼øÈÈø<€÷ÃIúeïIDATx^ìÒA1“ƒšÜ<¼eX9Išþ ë ÆgàØµƒÝ¶a Š¢\XÈ¢°ÝâД‰¡E‘EêU~ ëþ“~yg4 Y––j¸êZïÚ¢@˜Ëc 4Oñïï4ÓÐ<Å¿½Ñ† âÑZZIŸ¸i±XTg6kñw¾} ˜_Ò%†Ö»Ýn½Ýn;ñŒÿlñOÍë÷=õµ ]yñ´ÿöÒC÷tõA<ÄÓCÛZµO#އ±ýÅ /ùçañ_¼÷ø;Š£·ß<Ÿ&~lÉY¡µ\l|ÅÏùN<߸j¸t„xmãœ#ò–R&u­æî³[ùŒ—Aç:¦ïAÚ–Ì!ðç˜x)éMˆ³G¹Î²µý5QØÇ+è8‘ª¡ß!~ã–Þ“vè$¢Ü|)þãGÿx$ç4r^³bê ^ÅóP€Öz^ÕÀFâÝÒ6Ó‰Ñ=†w5ÇÉg—S‹‡xMÁ§™TßèC|}Kd]m)ÅØ¥â¬fl¯“„<ŸL¼Ç3¾*ÊÁÇ5¯ÔëºqSìI|Æ]îùYM)ž‹k#ÿiÄc¯¦«‘Œ‰#Ä7÷ÔÕî[WžÇ_N8«aëb^†þ,¸ÌôiA|»¡.ÿüô•þÏ þô >½=öôzx¦+â!¾¦Øã½§kïÕ@üÌ‚xˆÿÉ û @d“¡ƒŽ]:Fˆ¡j%Øîå¦ 0E`°XfH3Ä]<¹†ˆxÍäçÿ½‹ÿEn¡æxo]\w*ÚTªJ—KªÔfg¾î’âfÆËîLæLL™ì;$D´NöL±øÓy(L”ÀÅâcí¯{×ÿÚF²ä{d8$ñò½‘؆Ë3Nb‹=%»?;aYCÀ°<üåXâþ¢ ô6:íZžQëò&ÝsÜ_~UÕÝS3n)‘ÖZ?;™êÔtOOwψ|R©©©ª T >ƒ÷Å,\Pl5š8щe+diJ,•–X¤ŒÔPE2”–á´%†¶ ûa?X…æË ß…¦ß8]¦k¸Ûív. ô:]æãN…èøìÌÈøñ‹F{¡ÁS™KN'– ñK,Ž"Òã%ëñ¦LÑ㑱dõx¾Õâ‰A¨“.O¨ï ˆÏãý㽡‡‰wCJ¬t¢R ïIy­¥5Iwm$|dä{ÈxHR~8^8ߨƒ”ïÂ;+0A¾‹ Xï`éöPºw;À]Ôá;g$éQÊw ÄW* C{zƽRÀ–XÆ«¬­å¼ UˆR~~[ Ky >Êw"c«a'î!_h5©„¿g cÈ?P]>QȾ¯¥•ò@¡Îèñ€q§Ç³” “|ïWæ£HxÔiŽ;PÃùÃ×ãÜœñ A*•!Ê—Ó!e”¶òDçî/LK’UREP°;ù•j¬R«%Èî73꯫é@˜/èVµÜ|¬fB^Ï9¥’9}àˆçæï—ñ• éŠ ß#*ké$<–,ŮƖ&É.QÊ;ÍT³ŒÏ‰vnò!a†ÂíÌ; E|AºŸ¶_<¾µ}4Ï4ox’ñ¨-Z ’XRí¤|†©„€ÕPA­£X‡j‡ZGjËR*W´tuNÂ'Ä Õĉ9Ï[ôðœVA‚ÛÏ m_Ï1óá#žß눹é®ÌŒxüi÷\’>HÄ+SðmÊŒ=^Z[MEJFÀî-Éýßš³Õ¡€„7´uh,5¯š®µÇ³_ Úâ;=˜Ú;ë¡_ ~y=žñN!ª å;¹‰”ï¼cÄ443âÍ£z3®ÖªÁrâó™¿ÞªŠ'É ô®Á3?GVÈ+bg©!+ÊZk4½ëiû^ÄÖš¼¥Í‘PU*h?yžÒÖoh–0Ü{ÎuÇ–3ä½vhÌh«©8J›^'wç;ïôÍ•;fDü?ª ¤ïçD| ®Ç3©sâ«òy““¢âÙ㕵qá‘='s2޳Ǔˆï·òÛC#ã¡ä%=àÞÈøN‡Øâ;]jÌŽx8z¿ÉwxÆúm¿!®ŸŠºçy£<ÚO’_A©ñk^äv-x|µÀÓv=¨·éÒ»rŽÍríýZPÛs ™q8“ÇÚ%:╳Åë™üj¬µKF,å­ŒÏJùa8 ;<¹ì¾Hÿâ0E:ûÕ\Üô«9ë¡!íñàW3—ŒçʸßÄʶîñD³#~ò¿eq€ø|gýHúëX?æšOÉ?R…SžšNœ±ìbÄóX»ÄW¢È+sø¢|%–¦äýj"WœŒ7Z<ðÑ›ó;CïìWÓóýã;À,ã;V¯TæA<?x¢ƒx _ * •W@D€½ûÐäšß}/;¸!Ö®×DÏÖÆ—plï‹€¢qBðX^â#^¥ÌÒkϯ†ôx %ÔÆ§&ïWƒœõâƽ }gÕI~5=𯙬Ç;ߣÇCxNÄÓá>#>7êw:°yÄï­/c½*Ä£k®ñç‰2 ú÷p\‹’éÆãx”YˆÏcíñ¾|g=É×ã•4~5±”y¿*7l5$ãIÊ÷Ã]k®‰/<ßɼo­5,ã¿@“OüÄç&Ýó7WD»ªZN«i‰õ¬ÕËFU4¸fÄgK€â÷Åcîç…x垯C«'Ÿ×ãÍ·‹-5,å#«ÇG7¼'Q7~ˆå¿¬"¯ÈG¾KœúÇX?C&x.Ï8ŸŽx>ÞŒg}$ÓL£Ç¯‹ÆåÕ±lPXïÛç"pµ‡xÖjF«FSá¼i_]ÃÇ~UˆgÇx¶Æ[ÒT¥¾éOz|^‡goiÐ?µˆOŒŒïO÷g6SGZ kàÜäþäv¶škc|kPˆ'eq™<ƾFbëiˆËo£< ¿PÕ¼Òòدñʲ¶Ç:«Ã+IR^’ÿ¤ÖPw×(åí—íÐ×ã åFÆ÷ƒ ô')â­O–{êŸÑäÏPǘî9íñVÎQÇšOï»·0ÊòªùÇ0-òdµ,ÿ-!dôS-xr(þ#:yR*5N¥´µ’ ¯ëXk!"ƒ¡Õ^êoµ‚žX)ècÞƒ…öÅ3Õ. èPÐX¨áªÕ㣇շ‚rXúÕ"~žÉÜø¶ýãÁê¿öš$&’mÄaÎ{2²~ÝÖƒÖ§F“žš-Úóš$é§”2:.{ ùmSõ»D|øÓí­[oŽ ÄO—ñè,Ìž“X³ü$"PÇæˆ^" 8[¥SÝÕs¢ÌùÇ3Äë¿SĈw_©¶§#¾ñù¬o<±óœ´ÒþãA-ñ§©·ÙQø‰o®3½ïþa(("{MĶ𬵆¿¹r¤+Ûjú`¦—VK½îÎsGo†.A¯CæI2SˆÏ@ú>…œ>À¨?§™i¨Èï|kR‹„£µÅÇäYc@3_M”s…ÚÙãû˜Ë€m5Ư&g¿øOv¯Ôh©9F{<å3 {|øû-Æ¢g<£Ÿ_S&úÕP¾úœ_M4å›ëÀ“ñö›+0ûÇo§ˆÿNõºÙo®Ô8.ÏT~ygq25Ûã}¿—¯†0oüj¼Œdý~5ÃAÖo¾¸æüãwSÄïü¨2äß9Kýj ¿p­¢ eX}Ö?˜óÕ°œg-~¢_ –É2žýãß8¥fÿIÔãŽIƈpáG·Ÿzp½N¾ìWÃùjó‘—w’$¼ó« ÷,â?]8¿šœ|o›¬5o~Uƒc›w%<ëñâgüèY5¨m~öµƒG3üD1팧O§€§Ì+Ko‰Y§ÏúˆÂJxáâ\áûNÆÄ±”p”R¡uˆ ïŹ”w2žôxíz8ðòÇwÑ?~ðÃÝ£_=°þ“•ŠÉ_èñ„ø9$üJk”\¯o|Ží[ýÄ ½A!¾Ð/fAüü¨`*»È›lŸÏHƱ®F“ý-k}<ÌŹvÙ?¾×þwÏúÇŸuIïrœkøYUšÒª«2@¢U^ZÁÉFyé/*IÆ«¥Ú>"ÅFKAOõ+q¾²ô=Ÿ.Qx_;–÷ ÛM!¸`M”LØàz¹Ô¸„¾½rïTn7ËpÍ­AcDÂÃÌT$7ÄÝ–ÇÐmìò‰]¢Y…yü€øwäØUHþ#U/“s±Ÿ\Víª„|³˜2= è}WÕ«§Ÿ()T¤”@Ç’Í ɉöx–òoRûãn¯Ÿ—óö7Þñä- Ç3Žs-?«_oŽ,F—?Œ7Ö’¤Õ^74¯U»Ýô§ñ#Œxµj>¾¿‚Zãq³L²]ƒn;…ÿô Ê@³Ù„±0Ý„P­^¿.­Û¯Aš‡Ù©H<„nËc,âó2¾qóø7ñïÈ?°«üGZý>y%ZÉëU\UÁªZİXÜ®«zb艕–·RÉÖŠl6¯F›«!€]‡‘Qª+›w r=/ååNï#_=OéÅ è2Óâ\ ïÇ]z—ã\B¾†áóN²_MèŠ4,Ñ›òfN²HVKO[{JFâŒOª2úóo:Ö5-ëWdyZŠX·JËå=ÊN&ö@¨-+¢X(Un%Ø„V}äüjŠçÐЄjù:I~«BßÄ×e¢€V•Hîª85<äç$-óñ<ïÑj‹æ:¶s7+¿ÂU<—×µñí­gÉÚÓ•díUºªàÅøùÚ ¨íy5ƒoô ¾aÈïÌë;ùпм“ìW¥,±6%ùÔÈlÞɽ—O‚MŠ+ê Ö ¤,iúŠ(´REÕ¿ªŸêRű¦ÿ²U U¼·±RZ½õX¡,%iÞI¡a¯T%…Ú2´éÅÌ?o¬Öñ%Rªs°á!´ñÏ}æ7P7ÏßìGxàÄT<—×U¦ï—zRß«&µs¾/ưVÕ_’½ú”GgÈÏ€ø¿3âß|Kˆçæíd0âÆ–=ðƒxóYÄ=[ß ÀüccÝV<—×µT>¯&ÕýTlóæaýr5YmyåIµ/#~‡¿] ~nïKyg3 )Ïy'ËWPGK*?é責£ú‰–R‡ºvEþñBJ!•¼\:/]IJ+,öcõ?Iµô[¬þ*4Jô}R]ÕÆ©¿‰PJ8íFY•Á PÁ¨_ºàÝÐjò‚’‡ÀµZ~ÌùÄ×/5ƒ~¾Ò«x.¯kééÚJ²²²’E¿Ž`žoqˆg¼OMG³À¼“ó|k}Y Êë ºÄ÷Õò³kcý{ Òp¼Ô÷º{6¡ ™1KO@ˆ¾«õ×pí纱ݹ)>âiÑòê¹x·ÆÆR Nýa 1·å1í@ÔÞÚ©@Xó<ó€øwxl*$ÿÝ/ÞïI SVMábŠìñJXŸšŸÄ!åz©¼ò·Hácý †*Ÿ¯ÆDç°5žýjÐRƒ|±eá¾sšÀ÷ºù} :=ãJÝœ¯¦3­ÆnåŽ#žî#žŽ‹Í;éßûvú؇ê·îSÃé r~5êC•½j””h—^¾D¼œè;IÌß\9¼èSÉïEÞ2‰vr5èÏxÖa&7Žø)VªfÏ;y÷ˆÃgÙo›È§F±ç¤ûâ:ZßàèßPE±6y'óùjx·ðÈίÆIùÞsC×Q·?q?W¨=þ¬Kùj*@l¿§ˆ'šñDó"žoºÄ—ãoî¯è˜R©1ÊøÈËHIåç«!OÅÏW3ÈûÇìUÃùjÞîlïìo®ÌJÿBÄ3æïñ¼ÞüTÊ41I{߯F¿­5î¶¢³¹'IƇQ&³0!=çW“‰úK)£Ç§ïµ»acŸP'|_e<Ó¼ˆ÷Áú¯ŠÄ( ¯²…‰}'¥Zõ÷ìöe|4-Ε}j8ÖµÛs¦Ë-5$MžÔw8tÉmø¡¼¹~¼“7W öñ· vUY=Þ±’\´T!„—È”9B²?ɯÆsõóÇ¿MS(´Öt¬_ÍûNÞ3뤯Ç;ò›~ÞÉEéñ·¢B‹W®ö$<–Ø›ù'Kyïåïçr8ÏþñÛ.Ê5=¾›Ïo¿@1nsئ³çôoý¯ˆ-:˜Â=%?ï$e^“Ùí¨u4TÈd‡×67Éä²N².ïâ\Q—0âydzNçº•ŠøN‡<äϬ=þl{ütÑÿ•ä$‹Âl±^Ú¡Û£›Ô m†»§«’*ˆHfEÝÉNÁQQ;AŽÔļg75Ó¦cÐ9+¶SÅDpGŽÜ÷„]â®R–Ü&CÓ©ñ Í;ÉÊûCEüt¿9ݯ†X…&ïd µË.´–ØÀ1´—8›w2±µË7©\Nã<†Ç¶Ê‚^ئEqˆç¸§»Cü­r’¹T‡ F<ÒGütÿxi#q¸UOä¹8”—Uõ7ŠR‘hýIm-€b›ZS|Í”¾±Tn ¬ËKÏb¥Ìx@´=Ç"unÃÉ ´ï~wdüÈÞm¤¡J"qMœ01Š&zP°d£œüÀ'®ÖÊÕ×|Ž™ÊÜ›ïqÿÿ†ˆ‡xVÞ¿ ïyORJ»[71´W^…-±¶VÃåÖU³iñä\ÿÔe,C`¡¥D7©ÍÒUuk}tþHHÝj®^7%Œÿ ÛAbÏ•k£“äÏ­«Q³Œ2Þ$é‰ã¥ÞýÅ]¡Snz‘P<Ñ €¢€%åä>ñðæËñåc‘" s¯¹Ç}Dü§æÚéˆ/¢þ|U2éñFñãÅ!=™ù3ÇyqGCÄ‹%|㎠ûgÀ!OÉ6ýH(žè@}à('/ð‰‡?ºBǰüa˜{Í=¦“òví¶o2Ú½áDJ*drÞIbJâAe81ïdÖVÓX[ ûÕ9¯ù¾‰s…’ÏIvV ~fÈs¤‡#ùˆ/ñK%µÇgäÅ¡XÏ,ÆŽ;ûõfæJn5/œˆ'ú—„r~à÷ž9‹xî¥{L#m@ŸÍ;©%1çŒbÎWC…ÆRsï¦Ïy'1“AÿÈ!>ÍdÀöøm+â%ûÕ¸ý\9'YøÙ Ï‘>Žä#>p l+‹ž1_Onžób|Èʼn֨v™›ÂM?œˆ'ò%®m§øÄ+âUzñãì=¦û°9^MÊWC…÷r Ù¯†â‹C9Ù eÇYcú(ã öýžõ«Ù²"žrÕØ}»M¾š¹óN¹ 8҇Ѧh5.·@uŸãŒÜøü9/f/0Xåy57…›~$Oô 8ÊÉ|âá¯ø™=Äc/ßc Ö‰9#™³Ly_]¥Ô´ÓŸtùjBÒiü¼“CëO_]OwÝÆÛªÏd6ïä‰ñ¿J» ‘ÉW3oÞÉ"_ Gúp¬öæc‹\|¼¹^68ÎȌϟçc›8 ‰ã¥{<…góÝxežè@ ŽròŸxø«Íqî™ñ|owi¤»Â”ßÏ•Àzùj&Å@UH¾÷2Y v¥ó¤#Ñ®ÍozÈÛ½þºóëñEN2ŽôáX#ìÍÇ¥ñA¦£\mgdÆçÎs±MîÇK%?.óžÍwã•y¢%8ÊÉ|âáÉf¹Üâ»äïzù¾œ·%f)ïûÕÄÖ?^ M‘iîI9)ïä ìäÉ?~›¿u 2þñ]â7$â¯#ãß9¶û¹âV3å«)òNÞž®¿Á€(•ÛÏ•Žy O,C,R"#à§îÙm5ýä#\­ÆQ®ï&»g·Ëß;³û¹z|å…|ù{5ÚXÿf}(u’Ï!/‰9ïdˆLRÞû¹²„BmÕš~ÿ$›µ#b¬»üñoIøÿ3´Z¼Óe*ÇÝ"ï¤E<@þÌÿn9(ÿE}[@ÇâjÖâ'í"mq*¼õZšh«±¹V‡[)àÿ÷YÿxòŽß1Zü€óNR¶É®o/¿€-  R®ÖyöœÄÚÏ. Lq®‰x¨¼”Gÿø~hwí>zá’vÄ€vÏ?~¯}¢O|Œ ˆG{~;ôÑÐŒn-ßþîÍÎÑhÊ Oß=ß:õ¦Uø¤ØÏ5%}j˜%ë5ùñP±©kåw¯P >Nòžt2ž}ãïôÜùe…Œ'#ç+—PK–ñÖ{2Lý>t$‡Šê8’&ï$Ö1´èÓT±r{Aí¼N›˜6ë¼XbV‡«Úð/ï”»ÅS±ÓŸå*Í{{ïQ‘6ïCç«ñ÷J™s ˆ©\`áÝ\±t‰m¶¨Ñ*Oe…=ž_‰Fà]žòœdFÌSÑÚîç %ÔäS£]ÞI¨>ZjlF2 ö>€œ€ŽÌYÉÀ}’2“qAw!ƵCYÉ {<¿ÎÏMÝÖ¯&bïI¦Iû@!óžÝzg‹ÏîçÚãâ¾¹ZÌ›¼d`¢,ìñ†þŸ½³YA †°'¡WË{ØSdñ°T¼ˆ?øä&ÃSB™&Ã4­b³yxÇWÒÊ!ÜðÔñ @A éÓ=xワæá ƒüµÀ5r'½;Ù(ùÚHÎÓ¬ã üØ}‚7¾þé4¼o^uă©dJ¿ŒÄ1Ÿ•°öBÞOzwÊ¯ŽŸ-¶úÎj²u£ã½Q9¸ãG+0 ;W5ûÞ œÇwáJUDT@ú+>ì™=Ž1F‰H9áDh£eÕZT‰­•\AG–3ZÜ €99õç±=½›-ZêU¹<xúTíÙ`ø± çÿ6¾\GùðO²ÚxÇ?$áMøRr©…f®µPóhàõB´ +î¨$*L<¹ÆF°Ô jhl|6š×fÎ/6ÞñŒ'±]È¿žžÞ3^W#›ó$»í7–ñ’ð{Å^Ú³ë1êጧ¢6‚MÀÇËÀãwöýÙçÉWÈxþÓ[á%åÿ°wv½i$Y[Z±–ìU"4q²R–ÁqðqphŒ´7¡'êÄL§s³ÆäbF­â2X«Åöþò­:§>»‰Å¬Ò2cÕ©®®Æ´|õpôÖ©S§Œªà¹yh@ºn.\èÝíræjcÊ]|7æák{š5æ@¼–<)ioÞñ?ý}q_ìÇŸ–oˆ—Nރƣ“WãiÌ#òJ&™>q‚Ô ¯;ùæžn¥9ÀOžLLÇâ ñº‹:€÷<-‰ÌÒqÞêÒ{>èDrÉT'ßLDÇâÍÌu«ÁxôÀ;ÜÐpÁ•;y»Û²Ê¥½h— 6e~îC8žtßoÚ‚wÝͯ¸æzñ$“Þ®‡Ôw%þÁKàåéˆmîŽã^KýþÑ…~.rz͉7>žÂîsâ‘uºñŒx=/£’R×T{Ò~sâ­jÕ*ƒYM[N\ì’öˆÿœ=ø<>Ùª|oâSgd˜=HidÏwãÄ+ãtGÿ"µ¦Ä›èd,8éQÿΤ¼:mu™ªAÜãÉ ùnxf m0k/jVS3±ÍUb_»øèpòˆÿðh3}9¦Ó;'|Kl¥Ò‡ü ú9“yQÈÐ?Mó™Í'còŠNü~… ‡…Ô'8ŠùzkŠðnȃcÈ¿»XÀ¿>bp_oŠïSÌàØÜˆ¼PÉ‹kA¼ññ̤¬ñC¡ô8ˆÓ ðz,žÝºÝZ1Âõ„mÚ‹Y)Œ0Ï‘_)w2ûG vç`4ÚÏL§äÃ,ðËÜGòo¤vG•ôãýÓÁÁxTÙùø‹‡døáSj‘;!/#ȳŒ$žÐ{”%O¹ ?‚>Û?ß§pÀ£À“çGŸáÅ;&Þ¯Åã=ä©5ÇÀs=L3pÔĘ-o]›_¬[Vb3WM”5Õ8ò½®È«¡ ¿’ŽO%ñ`c2f¨®‡A|ùA#õ‘ ø3ÑNŒøÅÃO‹ÑrTÖ¿E¢žH¢3/Ðk]0ÀÁãÄïL‹ñq-ˆ7ª¦ß×]|H;%ÞãJ¾U-×=îü  —ZÞÆé+Š—ÆÙÍp0ß5ö³‰Í¬Ygî¿A ŠͿ㵪ŽßЈ?ÍïfÉx”Êæ§8ˆ/õ7ÈÅ{š‚šŽ_<'c°õqñv‰Î<™I¢ORÛ……ø¬²'~¦±ð¼.Ä/ —ŸÈÅ÷ƒ§7Õ2.©9”\ܸa·UµÊÖ+»Ë÷„Ø]дƒ¡ëPÇÞ 'C†;ÂÁùx2™ ‡~?äG‰ÔEÓ\‰øt½x²'(È?=|*$[¾!~3qâG[ÁÎgJèþãÅãŠdU’ûñ$—×_é8ñiø¼vÄ›™«ŒÖðx<2_%ø¢Í€vÖÁÈPYamæä»ßØ­W¯ªU«Zm!ï´5Ã.Ñóh¸û ˆoF÷ºªy5ßÞçšåRyðn^ÊQ»¼åƒ ^¾¡¿ýq9ñ‹\þ!Œ£ÍÏ™i„ø üô!!~º%¾×UͺúxD/s'}Ex÷ú€;oôzµ§XYH ^ûªe3«í•k ø&þïFÐUxg/Ö\k·E'/F/2ÇïVeüv›ŒÙãÃ4ñò øç…Ѩ[B|%Ŧ¡»?<‘¬ÂŒõ"G>mG—>-äå÷ŸfÐa溽VÄU_sE ½ÐR.®q™ïš…¸©{Ùü´©5-*ÜÛM»Û¬ñ—.¯¢kVÇc¼ñÁÂ{œMg+d<ÍB(I¼|CÑÉô±è$õË#$ômê½ÊêQ:•=&Ÿ~Þ–QÉÓùO¯å÷…Í è$:™y|±nÄU#e¼¤=¤7̃i€Ü9óžÂõ³g ô¿ð5¨RùC°¦ÿ)N<8¹V™dŸ·îg^‰Nz"wRññž}|v9ŸX äiÔÆÆ-¶§7“/w9xÒ,õ×€d‡ùV,6øø?’-œ–ñ×ù½#ÞÄjúÚª«ÞÂLÀôÌÇÃà`¤ý,øâ»ŽSª]›mîvÎzm’ yþu>ÿÒÆLxØÙ­óÞ¸¼q—ïú#ãšøøÜõý$ÞìsåÞ]èšÐ“…'Qȇ®bNµlMo¡KÓ%ÀÅ;ìn—vÇupT '¨°êª8ÿ¢õõjÀöüuâ:>ùZ&[Ødx´IƒeW´2y˜°"îä ýÁ€p_’ °ÝÜZå*aзkøk˜c1mJºÕ¶ÚD+ C½&Ùëh鎤‰7ě݊б1C!ïc”†v@Þ±-‘AÃ…|—åÕXe^äP^NX´¦5ÓÀ¦ ÑyaqŸñ†x“e xyEÇ à¥—>>¤íM4ð2À"|Æ)•Ë¥g"$ãB¥Õ_Š"ôŽ›dÀãÕ¼“Ý?Þ[ag·ññä4€þz¹Eݼªî½›‰# ¡‡ÁÀïÄt¼Vgµ–ñ†x£júwú¥K_ y·…BSÉ\×a.¾øõ ÒiZ‚ñÒ¿ò%½T,6¬Þ4¸ Þ…—'œ“ŽÌw¾uTâš ñ&Ëà8º: eÖ°ƒB€ÇXÍøKy”ªp?󉔯ZçÁ`0$rǵÑä”—4qàôɨcÆÇ£ŠïëÀãÎ¥P˜ëAD‹Äø¼µ1q"!Êg³Ì^C—áë"ìÒòqÏqo&4ÄÏ/$ìrÖkÍ7JxÒE!.,´qVZ.i“TâÛ]~º%ŸÔ ´Œ ÊF;à2®ã"Þ˜ññŽ÷Šl/¸öý0„dÉ@®¹º^  ò"[¸®dz{õöy08âctð’ù&^TÇ#í"—5‰Åã™è¤ñ¥YÐ÷Àh4ò·@©UãɈ<ÏÖÖŸ¬ß'îdàQÜy›ÞPÕÄN>ÃK¼FËð%íã ñÆÇ—!:3—EÉ~Ï} ž#_ÙN7y÷êÝÑý¦,$?™§ªgv#í]hzuaÄœ_ÐãSV$þn|üéóûb§·oÖ\ß·7ýH’çIæ1;˜»t²ÉZV£Q·z³«¾ëÀÚ“0:iª“ç9óôŽ–d Ψ¿“5×ÓÂÑ}±Âé·‰7y5 jzóH¾0¹ò­²&bæˆy' ýúwèœzÛ!5ÕÇãÉg\Û`®°.išìº#Uóühq_lô|9ñ&:)düùÐ÷5'O]Â;ðÐóæ.–g •|(iXÇêñ*ïp¾%Æá;ñˆükèRÑ$w*Ž!Þèx¿‘˜¡¼ï¿)×í /åº(ÿ~3÷@^·.64уq”™+a‘—Ñ]Ö{’+P†xsÔ;ŒÄPЙ TàÆ¯äQ#C‹‘!ò!/,̼Ô5J¸<ª œ’¿|ÅUD'ÿœÄ€¾æÄ›èd´Ê•¢i0öø»ïze•öùÐçyÒktO.¼m ÜqÎ*g®£±õ-P¯ô+f CÕöÜûUPNý!âgù­ôV~–@áøõ ÞÔì·±ê5ß÷wŒ˜Ÿ¨ø"(™ËùÕÐÇ"MÀ{LÕàqݤ“ÁÉXleMZl押³åJñxÄøsaç»ÛãÊÃY…ã׃xSw2dÕQCâÝy¢Ì³³€êû—¯ó ¥Ýe•V™§Móòò„ ŒçÊžv¼`\Z¼c5â§£ÍHíxQl¼»‘=½¥À|j ñû@¥°X$P8~-ˆ7ùñ<Ò^Ô«É,;ëOÊÊ{¨žå O8k¥À ä;¬óåVb\ßHY#Ça5âG…ýHíx½*|¾2~‘½µÀ|œøgÚY$P8~ˆ7±61éÖ8:î¬|¼ÃhWeÍGtðô³^æÆC¬†7jËójV=Ï5V‰ÔŽ×«ÂgG·˜_N<4Ø\$P8~=ˆ7>½¼´R/˜°š5º9BÈG솴Sìv]ÆSÞ9î˜D©‡ãuß\ÍÇW²‘ÚñzUøômæo'þz#ÂñëC¼9ë¯]¸[—Á¤¯Ñî N ç]4MÄ#ð䯽ºRÕ@ž'ÈÃ-DÚWÕ€ÛNÇjÇcUx…ø[ Ìlj€ªæ}.ÂñkB¼9¥Þ£·³v½nYgÓ›ÉójèqwÑ@×,;±)w G¢5M©äqù ;â.=B¿êÌ5£×Ž—Uᥪ¹½À||æZ ¸?íV(¿.Ä›z5˜6Ùü:¨‰d2Rœ–í1oÃ…¢]¼©±…ªÑ¢“Ñ%×øŽÚíª&ÿ4R;^¯ Ÿ?fo-0'>È.F66®(¿FÄ›Sq<߃‹Wªñc:^9Šöøú“ I¸Å7„`Ã[x`~åL2Ù£HíxQlô(½}zKùÔÒ¨d7¶ » Ž¿{â ñóH<23W}ΊwF>X¨úxÄ]6¤^Ç3Éí:õ2Ãg’½¼§y5&¯Fõò` eüGÝ/ü+f3YƒIŒx-<És'é€þ^ánÿWÝÉ?PFÞd’ß×€GæÉ3À×4¤KY£X—Cö UÓṓ‚t=Ç@Ÿü!†xSwÒÃVÒŽGj€yl¡‘§i“¨ã™Ÿ—.Þѳ °»—ä#î2[­)f®ßÏ ñ&:uò”$Ý'M ÉóN›rzq¨úy[$Ö7~tT6üòB¯EO4[Øo|<ÒwT5@<ÈKÿ]ªšh¬Æ¶9ôvwÉ´U*¹ÏÕŽóžè®?C¼É2ÐNíFó14 W$4©mâñI‡Åáéhc1߃&jTMsgõjN £ûbßÜÙmf®¾²ê‚ªù{WÔÛ6r„)P¸ $E £Íåá,Äbälˆc'‘ïN4ª“ h奵ÇãK óp0Úí/ïî‡ß“‹Ðœ’³}‚òðaîÛáÌ7b4Öôc>x!¸Ã ÔÔ27‰WPÁÄ„4Sƒêšîb¼ªwhvV5‹™°n|e„1îè r\M&â;ÖäwÑóGw"^štò‚<Î&ðDhñðówÆ~8«a)2ç„N!½[V£ˆ×!˜ÒœÆpJ¾ B;-«)#õÚ¸ŽQG& ¬ƒ^MHkZE2Z;RïPSÄG¬Æ4q¾GtÙ¼ 4öÄÎ5/èŠNbNα=އívãñZWƒÑ8ÆÇø*y… %WZ«áì¤äñ€=KwÐ}b{(¯éZ…O¯;Wæ3Ý'² À÷f¢Mk̤ó"1 €ýŠõjÔ4Æ» /`ïœ(3‹j<zd"ÈG°E PÎ¥»V€þj²“Šxݹrº1^T’•Ηصõ~ŸXS;‰Y®À\@¯æPÔM]Ú^~ˆ×\xçJ¸—Bâ#¼K>ç€uÔÖˆba„z‘­Y$;9ø7Œ‹ÁwœYïÅ¢òµÓÑ^¯£GëþÔ»Y9ݵ'÷—{··Îðè 6ñavÉøŠ}BkÐÂGÂáÁkb)¾!-±ì¤ÌÇ» þ7ÑÏúÞÀ/íX¿õÍÁ‚H±9]}p4=Ù¼[‡úGÓúÅZ«wgÁ—ß­l¾›ÜÚ¢?|ù1^y<oÜQU îa¤²Z¶„†/ïÙÐÿ$»Ñù´‹Ôä^ÒæúÛˆÏ2 ö¾õŒøÞŽ_¶nCRÛë^WYY;³io?|à—Í>ò€mõ¡Þ"~Ýëàn‚ølsyyûÁ²ûqú=Öö¦ÙÓÛ>ºVÄ+¹1TH1›õÂ)ÞAà½s·I_7ªj؇˜•d !ÞƒÝ_„xÀ­†¤vfQµÓ >[¿m•µ³³X{ûÎ[¿Q݆zwŠø•W´¦ˆ¿Woõ¾­ÝÓï±¶7ýûìÞu ^+ÉŽÓ t„Tq G±°1‚Ó0£) wæó°!»ªdxÿ”òøÝùˆw÷€Ijg¯éyðÊÚþÃ×O—€%<‚zwÌã{ÓÙˆ?²¿q(yCóµu·ßY>t뚯¹î I‹…ÑÙÍ:ÈñBQ›h¼õîœDm|³îE˪|úôÉGx»ñ„DHjÓ£àóô ÊÚÙlííšGÓÔ»Ó¿4ñ¸è÷ t<¥ß"wµ¦1>¦3\fP%o]Çt•¡–A2'/Z&]²´N\!¢jQVãOOb|x3ùÊÚöŒ"ôâÕ‡«xtûÄ/oW Þ ćߪ·ç!žˆoÁž]âõ«{»–3ªd¥AGˆÐG!Ù8ML²Ú¶nšOo]/‹ø–ÇŠw®;=’Ôâ£ÏPÖ¶g¤½ý°oá~ÿí½Mú eí¥WuóNEnYí0;¹öðíYýtíÔ»ï<¬7×âìäI½½übâñ{Ðö>£ëÊu ^yüñL.o0®‹7Lj`@=ª…ÇIí$Å{à=5 øÝ J"¾oÿÑûø ÔÎ$µ ñÑg(k÷—–ødõ}û—§ý?Å/¥²[ß½ Ô»Wz«¯°s¥äãݧsy<~ÚÞÖÖ¿Y¾÷úª¯1>»!Ghçí+x|, /gÔSgw.šòR½ƒk ©2âaƒÏ ‹í›\e ï\cЛ [#Ë&ÃËyàÝ]ôàòi:\é=ØÁæÅãêjº· öE!^w®²<Þ‡vx‘’‡v< Ï3B Â'l˜£p4^LL@–ˆ¿>¼Þä¯LLmªDÎ`Œj2YaZû"š|6"^ä#S`žNíéñÊjÀh¼•‡AhU Ö¦5mT@iÐÌar‹ô÷†Åx5E|\d°“îÇäÃ#6Œq-Š\ŠÖŒÜ1„þ$¸Ø½v¨;©¦u51Üq´Èæ9_ÓÂÝH­Õ}®ÂÐiòDšÄdht¬Ð¤ˆWVc°´ñý§ý‰3èÁæÉEX/ˆÔÄc»Ñò׎ÅaóÚ¸½ðvíŠÇ«)âa‚Öã׿³ç1P„zÐxèÔðÅ oÕ´1Á8r5ÈÕt‚x5Eüéñ±ä4 ûï7<â?„DžáNÂ|Î'Ú»NÓV`^7LL0v‚x5}çj ›WÂ:þøÇï µ…Qbà/òñpÖÚÙ <‰nWlZ1§#ýx5ݹÊ*Õì;À?ûõŠ‚ÉGuñ|“ó²šçjø€‰ù–dì\Õ”Õ¤‚d¨3 Róø×_€wêùÕ“ñùx†= ùx ´&)Ÿl×N¯ˆ×Ég@=25.Æ?: †½/KÔOưoóñÖ’Ágœ«'v9õ¬û«"^5ÉØ1æÚ°ö~ÂX7ð=àïÑÖ©°÷‘ÔÒæ*ƒ®”VÕ”Õ³C;×7§)«i§Ô O+ŸbÞ<'Äÿù¹ë]í¤ ñÈÕ`^wá¼ñw‰(@~M2ÜB´í€øÃ›¤$¹½¬‘é[ù ôðìs|å«B¼²t¸bçú÷7Ï<“?6e»y{IO˜ï4Æ+âµÏ†Y®Õ„`o@ä9Iã=b<¬€Þ*¹Â²Š(ó ÕÇï~vÄ+âµÊ«ñ7Y­¸šìùõ òÎ{ô£Z˜\>§»Ûƒ<òv ¡.ê㻎ñŠxÕ20huÅlËGdÿ0eÃj /¦v‡!žh¼ls…,O~N}ünWˆWīҪ‰ú\+cíÉW”•ÛÉï0‘ÉlPF– ¸Ð;‹ñŠxÕG¯œÃÛ'Þ¾î7eç˜^,³“yÀÓMÊâ Ýxï*‡@‰úøN¯ˆWýøc 0æ³ 'v?yì¨üû%O>³+a^ÄyÐxdjäÞuØd'enõñ±E¼æã¥¶°[šŒ¡ëçŸÿyþ¡*ƒ!PÑÎ5Ù¸¢zRöA!;É(xtÏjñ:ÝÛWl\+CÆòóyÄ#?)÷­QU õvƒØ ¡±ŠdT$“õñ»ŸñŠxí‘B5þ+r5Þ|}A‰!!e¬´šóênx˜kÀŽi<_ùUÖÇ+âñ©©&TJCÀ7ô¡Šƒ<¨¼õ¥IêjüED!ž lB«#p›H;>°Ýîb¼"^ëã+ïAi€wŠëv [»1ø,G‘A½kÁ!¾æ0YWfÓ}}¼"^y|<ÂØDµ5&¢5¾.>ìë.…Œ|޽«ƒ¼?¤xœQO ­ ^¯µ“BÄ€¼½V3&W¢Ê€ hgÝIÌ·Lë hJ=êj‚½õñ/ÅçNu»¯ñ:Á8IÔ±)«(;Éá]¼u-‚QHÈ#Ä£l²=%±­ù?˜*qÕý[½[뵿]çÛl®¦poþçLâ¦SÝîî¯U@}xäjˆÃ7Œ†«kè ”O:?³¬†ã|0‡Ñ°ƒÆ/\-<üxqqñã }8]}p4=Ù¼[»ÛþÑ´~±V¼Ò2ù·Ò:Òíîñ:Á8NOBÀƒr5î(¡-lLõÒ{ˆD•5)Þ‰Ç@CÞBÝ» +yÉy®ƒðþìíOIÆ ‘N€„NYY‡ ‚$ L²bÈÙÞ ËÌ*ñœ4|†|ˆÞ¬dkuY{Di‘u7÷—_wUõT¿p{ àU®k^Úvì|úQz¦ºúiÁ»ŒÏß«OŸnÀ°½žeørw]º©®Þ«¿AþÖî­ _möß^k¿¥ùËðƒ?„o·'~qqñ澓üØŠ7d/:•ªQ{vSpŽW{„pI¾ceyšmÅÚ$Œ¶¨Ùk5ʨ’4üçÏJج¼ƒáx…_Þ¬=8í>··GÃݧš¯6ûo×¥åÓîªöeøÁùv{â™ÜÙïêxJíðB¾b!2^íç /SË“Œ÷sÅÚÆVò´ÂÛ–ñ”àacü£¤ñ”â xLò¬›GóY6Ï/k"9W€¿©ë—5J öß~^£ÈÛüeˆåáÏ·Û_~(Þ¸×Sæ)"¯ösu70Æ›ÚÏ5ÁÃRðÆ®8œëUv‡ÖŸ´NJ:4=Cà!Lâ‡ó ¿rÌ–£¸×DÈÜlélöß-½É^Ý׿ 1w¾ÝÕï‰ÿp•·0O¥ªÈ§=Uª(:…‘úœhïÐs+u„Ú®8Ļ鳊9¾ý^=¼î_3Ç+à™ø•cÔ;Òoø ^¾[6‰'ì˜Hµé¿½ñ([Ýֿ̨WàÛý€òMÜyDvùqÁÀ_ç_À[yUÃ%y¥j8Í÷îòB؉t…;GÇÞ‡U<7’Qއwî Tžõ;ã°¤ªQÀ3ñO×îkï$±(ÀŸ¯£ª9[æîß„­j ÿí³{oï õ/óníÛí‰'~ù…ûÁ¢À¹õ7BW©¾sÊ‘Gƒ¥y%hÒT=·b'YʼÇcïx¼õHÔôxAíéêDŒwüþ&Æ'^ÁKÒcj23a3mÍ<…ülˆ÷Ä{ßI ú\u°Ž§R™ÛiW†½£< Tñè„x'àv¨R†âh©Š|ÙV«¸¥æÌˆ÷Ä{oaŠ\ç^\=5ràš ûÕ8ÓOäÝ¡ˆo ŠN²ˆ/ÕYCÚ…½j¸»†„ülˆ÷Ä{ßIVïÊ©†]šTއ‹j“@=ŒVi#Žw¨‹`¢=¹Ê Na7,äMæå@B~&Ä{⽎7Ë5¬ä¹V£ òj &yÇz²S8 ÷Ç­BÈï5¶äÂ&Ù)‰³Qæø…<«xÌñ$äg@¼'Þ{ômEƒ*žT œ)²^X3å8ºæÔD&_ ä{q i§h©\B?Mƒ„<"/ÎVäƒVcq±΂xO¼÷fý®ò|QžTÓOìXc…ÞVG€øysS&Í»‚“ ùž‘àÉÇ£U4",.n¶:žxOümÃ]œõxÒJ(¨Læ\«IR]¿çz’‡)W¢4 ÏÑH(ÉG¡ò熂‡â$÷ñÍñï‰÷:Þ²ZÍõXš”/‡„t¼µªη"ñ æ¼}xØm>—Ý”TM©Š|döÈãbø­ƒ;$Þï‰wvtµž\¹0ɞ¼ÂÛ˜€êäIÐl`’ õþñ²ßKâòöÖXÕlTßpf첸sì,.Ná ˆ÷Ä{ÿxâwÅ1\øØlÕòÏ÷1¯Oè&f»ÓT‘oIžJòUäQÌÀÐÐiou³‹µo/\–xßeÀUy caê$£Ã‰8V¤þ”Cƒ9Ïûð^–`/j/Äýí²æ.\½põÄûZMßTñp‘®qw>ãü®“r`3€5ÝïÇÄEÈOžLî!P„l‘9BO2 ýÓ„ €ø[z ?–Ÿ­Ý_“Ÿíwæ-üª.Æå—Ëâ^ÉÑ£……]°ä¸·ð”ƒ+°®‚xßeP¤ø^u 0oÖ¤âÔ—¼?AÆÇ‚øTÝlƒÇ¥ÝH¼¶$‰Ï#ªÉpüÒ'Om7ñ^@­_é-¼4ÌŽ—³¥·Ùp|º1<~ ÆÝo†Ç+l\½pUÄû=»ÝùV8x_œ”˜7‘WÒýÉe"#¾“oO{`FK™¦•ã©§r"‰§g\ŽÃ_'qh8Ö„¥¼…xüUÞ«ßf»kÙÚvöb]…ϲì•¿ÌýÀÆÁØ W@¼'yïᕯ–‘òþú Z{I*hƱS+4‡ý¤ò§ILAO®— ¶Ôpn7g¡JûNÖ0®ò~¾–­¾Ì^>Ì=ìæåç4ŽØ8¸{áJ‰÷µš¼žˆ×e %ú€XÝjHèó@äw`ügj%ë@ùe܉UE¾=(¹bur,+“íãAÊò„ý-ˆw½…‡ËRØ †âžé¤x¬Æ^¸zâýª?€ ·ëñùÁÖ&G ´ÍéD~Ö¾P-ò¨\òøµ„+5".?Èù§€hÿõbÇìe@Ìߎx×[8«]—÷zi{p†jæ¨0®À^¸2âýоÀ\ bþµ¨ÉlÑĵ ò)öÔÄÀòiÖTº Â8Þo<¡ò|mV»G"·çq¤ãÎÝÂðâ†:ÞõζkòÃgµmÄnwcø®.ÇÇÃw_±qpöÂÕïWý½dÄ{Ü‚Ü.îjlžHä‘ñm~Fë°Jâèa•ZÉPä@}2°oNÏ#jK&žõŒÚ°;œ¥·0ÇKÚ WO¼÷2à&yžsÕÅÌáô¢SQ- ¸/+6[ð°J Ã@üæ¥à}Ï®@nN8<út1èu >ÜÁ8ÂÓ¢]8΀xO¼ï¦z¼=åÌ@H|žæ”ã ~,…üžù| ücjO4ga¸aàÞ–Î^ úÌr¼'ÞϹº«”áÍæÉ×h!“±O®š„â8ýE*™‹s´Òîždåù0.r|䈶Ä{⽪aäx#ôN=¡'WT9ÉIÁž?Mó¸’ÄÊBž¬VC^íSÄ‹÷޳0gùÙï‰÷9ÞR5¼Êê Ä<~ Í÷Ò„jíGã„"hcr2éÅè?éóŽ®xcä1T¹f¦:ÞïûãÝ62:YÈC´AK‰˜æ¸Ÿñáï¿\L½bGœ$1¹zÊïļ#ã¹Î2Ç{âý!rÈ5ßIyè‘€7£9—AÇÜJßײ£1Oi¹7s<7!÷³ÊñžxŸãMMõI¼¸Xsâ6É rÇ¢I H¼8 v>B⣈R="Ï2ÞÉðDüþï‰÷9ž µÕå>¸æ' “÷Óé€k0ÁÇ*ÇCŠïèȇ<=°ïNðW8g¨j<ñ~Õ…ûÄÚ³„üi·¹Ùn·³Ë~š¤FЧ ]ɉvúKŒȳªÁÝJá^bÏîòá‰÷õøÜñhÂã5¶äÆãÁª”¦Ñ*^¬ãQÃ':õÄ9pO¡^é=œmŽ÷Äû'W[Ö0ì)út@5^Ð.-b¤ž äiæ)#2ëñòŠwöÓæÞî®® éT˜»]<å|'x“xÛ:ø‡õÕe›ø ü‚+#Þõ¾gÅŽ ¼ëY4Ú˜`:þ;&Ðî8±Q·±‰ÕÀ¬ó+Å;ÜÊ:4=#à¯&~ÄŸl/o¿zk_‘_põÄûÞI6ÔÎ9Ïk;\@;FâÔjbBžqgæ#áš°qD^‹Gê÷¯Ÿã?[ÄSEÒ´¾w&&8‰üZ~ÁUïëñ}g—zÞ‡qç\aðÓ+!_0#yÕ€/rüÕ>«Ü _Î[gÏÕI2ÆO–vGoîרõ·Ž¿øWN¼×ñ¹»3Žnßût§⽸ìcź+æÑʧ<3À—öÆ`oažBS`ò;á7¼[c×ß8þVå\=ñ¾Ë Ç›iaïeòŽŒ»•I»NƒwB>¶{Éà0u|Ioa×#ÞëøœN:HƳªIÀT˜y·:ÉŒò$kyÖñª[˜ýjb7Ésƒ<×ãoâ-\+â?ì]1ã:¾ê€kïWØHá™-6[¬§HÄ “"¹t/oÚT/0`¤x|¾_~4eâŠ6Ö/3îR˲£âAQYjrÄ{cF|PäAA­i6²lÌñäÂí`Dyàh`è‡Òi°rýþu±…ñ.ãòÖ¯&v1 "¬oñª‘-ž*1…eíª¶\Q¦òwÄ»Œg=þ7#â­u€o´ß mBq££NæñT‘1ÆÉiïˆ÷S6ÝŸ]¼öl¥aÌ7={O¢Øô9“á”+|㥠<ñ©e¼#Þ­“féŠ@«Àú–j(ÛÍ€VƒukKàðçKļqT4I,G¼#þw“ ¸×$ç88;¼¬\á^cäud&yЄ2ÞïˆçŠ,®Œväì6jÍ2¾±ëVª±›$a'±É3ú•‘æˆwÄ{ÆC:¦ð^YkX·ÙÔ‹ˆú;Ü `7®:ꤥG Þïç\©0í¹R¬IbŒú=›T.é¡A¼óÅØC²kÌCÎCÔS3=âñîe@ßgÔ‹xgÌôĘoˆ Ù=Wë"ŸK›Ãi2>Åõ¶G¼Ç†i²ÙkËäVà¾í„ŸO†xG¼ûÕ4¬Ñ`*(5ıßíDÁ­F+6|™!9j*£ÇãšÚ:éˆwßHAÆníe´7²lè—õÐj4!_Ž °#–DüôˆwÄ{>WœuÕæÉm@»ìF™ˆdËP ÕØu+V­T-õÓ­\ñžù +WdÅ!àäê î`¦IðøkB¨Pr®?¢€5ærÄ»Œ‡uJ¼ÍÙ½é.Y¸Œk{|L9Ì“ý¾Â:ßdˆwÄ{®?¥ÌŒ/ ÙNr:¼ñÆ ‚h‡¯07ñº5Ï$ãñž1AÇ1àÆzÖ³öxA¹Re6ÒÀÏ–x#æ!ãwòû˜s® ;…œÊ¯¥Ó`ÿtºñ?¾ÑÙ-­e’9Uµjm¬tçÊW¿Ÿ#_”¤^‚is/ãÓžî]ÒÒ¡IIU~)%Õgÿ'¹ó߯#Þýjš`—ß‹CŽƒÀu;®Ì5AÐ3ë÷2àÒ˜W[®ãuÝ»ô@àžÆb¦þbÄ×ãû?1cÇ#Þ3ŸÁTÃ[±¥ö]7,ÞõÛî5NââsfÄ• W?‹øäP_©Ùe$ý^fé¼íZÏ’dWâþ8ËÊ÷ç4ÉveB$ÍÓìØŽMÓ§3¿›Î/ï?šÍ|}—$Ô…?Hx6<\úå~N$“À ç³Ù« XÍ`xö<ð/!Þýã÷¡Áy¿ˆÄJCe«%ãvëYC°ÆFvåSóiÄ×Wn«º\¯«ÛaM]ß.õ1¹âþgUݲõŸ·×Ù•Æ×µ<`œ½ÝŽYU®Vôx^•Iv¾­~VO'ŽËWWv„|=9ÔÔÍßã?`à£áÒ/¯ðó’H&!ß UÏ öòÕú׈÷s®Tl¼„g¦«´ÊÒŠx´ÿxÄ6Ù\±ëŠ=×{ß=«Ê¬ºVUF°(o-âÔ}UÖt“Ô<^µ¿Ë+-¯Õev+“÷ºmßžéivºõŒ¯ÏvÜM¿Ââ³JúÕ+¬€w“À iÀ) >žÁàìy`õ—ïöx8Öt×Þ@^ðÞãTSt®d SRÑ™DÚÇK×p }Mû ≞0,*îW÷åñå[Æ7HÔ=Ä;·ÐÎþ(õÙÒî’ì…»ñÏÑ."L.ÔÚ Ï>tŒC¼Ûã£|\‰ï¡‰.ª)|CJ—ï-Ìš´òPß·r½ñe]3Vê–BW|¿Î^O—€y€÷¹Qx^Í«oëÝÍùôô"ÈÆs 7]˜„º¯ÚA5—Lý®dlkìl[V,ˆc„ý:0|¯–y\kÎýêLß(¯|Ϥgð‹ÙC¼ÛãmÆî–÷†Ó†Im®ÍÆäÄÑÙþ> yÉé °kIO™Ïîð«I@_»…ú²â_§¤žÀ“ÌíñØ€"’+T–ò îËBã»Ö’:“h5ù—Dï¨A_‰·ôéÏëÿ=â=– Ç€5}šà+ ßš¢' ߯Z'EÈ#ø¤rª“Íÿž·°àM´žÇÓ— Þe¼ ²ÊÌ^Txäãí§"Øiˆµµ  hgfBXWaütˆwÿxßsÕ àùGwT‹úÎ@Y#Î:ÎV×͉óØx5Žxßê¼ °ïj N5!¿üàe›M¡—®âc°C¥qÆÊu"Ä;âñ:a‚4Mož¥Õ¯ã +€÷`˜ì²&,: /j<>e«¹‡ñ®Õ˜xd}2~¤o·ñ6^ —ÐQR¥ÈÛdPã¥Ç;â=g7k¤2qôø72`=Vg˜/?žÉ½Ç\•Çï{®óÜíò|³Ýö¼ˆ´š\âÇCÊ/L(.ðŸñŽx×já um©’ÀLÖD¹” j|AÜ&‚Ò9»—€»ˆøpåSÅtÄ;âyÄ2`¾·žÂ|1ê¹ö„ÚÅ2Nº" ”¥‡æúsÄ»VÃx‡£Žµë7ʱþ:†Aoe<¶]öòíʃr2[#Þ#­þ¦txj„ò©â;i¢ð!àdQ°5¾ˆð¾@ŒÕå5äóId¼#ÞOýý>à!OU¥·D(ø’õÛkZ mº.¸F)ê ê¡ÇOotÄ»'Yð6Ò*0Ï Öx­Ç³OM#®EA ˜¸Ô,zýjïãÎ@­yCNéjñ.ã•”·Iñ}»!ቿ˜å ˜'aŽï*ýV~5Pj€z#ã-ä59¿éˆÜ)=Am€ú¶DQš–óð.b¸/Yxat•ô_ö®ŸE’Û‰þ"Ã¥¿1†…íènðκYVJÔAÃÑ‘o™ôBŸ9&ð2ØíOîUUu?©¤ËFpA½VzòÇã©T ñ7ÁN® ¸JQK¼ÊV^6PÞCåâ4`=Š °#ƒ3LãU*Y+?•®òÀÉ!EṫÁ; ð­)õ›Üª<€èdã­_ fEH;V2/ŒÇÙ±šüÕé³-=4Þ`7Py&™õ‡k¨Í¿WM'e¾çƒºñ…#O”G ù–Ð+,ƒn0Æ›ïÛÞ”§mCà%¦&l•;-îÏ„¼EwÖôÔxƒùx&ž?0ëO\Ul2ã=ô=ÈÁ5€ð¸’ >¹‚ï½oŒ·L2£,1ÉsÓ¼m Ó&ñR¾“e€>U•k_ÆìÎõUÅiâjHâu>Ž‚ýÄrº«L2¶ÄoÌxƒi¼.tEn|«î|¼ 2 Ãé‰ ¸¶;w5¨íS㊠ÆpñO®Óø³.ø+8_YP]: O¯ÉÄó*\ÍÇaøD^Þ©!u·àØ1oŒ·ÞÂà}kºeéitưŸ>¿M’,$>IïxIöƵjBDçiuôñë;™—@­ò‹ÊnÌ‚šÐ_ϸû–έJãO‡„û3‡ix9­ó¿@ä;1Þ`>¾9G?«]ͺsFþéáñŽD~¡p|„˔չ‚ì÷ÎñxƒùøÊÕh ¿l\Ïg„ÐgéjÒZ~O´~øJ.>=›Ì;¶<Wô2 W§€ñ}O®Æxë¯e¾—Ÿò9P05@)y²ðÛ#øôNøçË—ô™äÝyMvúèíj ÆøÈÖF¦Z¯Î­œ &"öáóìEåw8ÿôòÇeu{ªp]E\ï{r5ØÉõ¼h•GU€¬I•PVi<_ŸÏAT^ÝBq FMMÐ-šz2Þ`y5âºÄ%½äi¢z6Ï›‹OY8^v™Ó}GFžØ^ÅäÇ‘HïFN8hÖ¹bõ`¼Á/ÑÉH‹¶DüH”o ‚JL§—¶Ð=ý&#w¥l25!„—KÝÖ[Øë©8½}¼1Þb5ù”zäÇ Û#Ü»<Äx±4µ« lä×=¯á“£ì|GçÉNŒ7˜Æç™“—®*DYOL€Ô”;IFþté"ònß™ð#õÖØéNowÆãmòÙ^óW‡itŠÀ´÷Ìøèê~8IÝc”ª¿p<údjøªÔx¸ø®®Æo>^wF4^^AyþªÞq:0žWÔ„È-Ôi8ž¢sÞAáާ :h¼Á4ŒZÉ&Y¸}U…®>-Òx <|Sy¾v}‹äj¤™|ÛÔôóñÓx ÏO\Ê`Í\ºšy®æ@…^ÿ3§P¾EP#_N=^'6ò* gVÚ{ùxƒùør&ÎZŒ·Ô®b?Õ®€÷“?RåËõ5”ePÄøÓÅmh>¶÷ŠÇLãÕ4×¢EÓÒ¸sÅ/, ‘QSŽO^ÖíÜÊ¿N¾ll¯Œ›ÒìÃGÉÄìEõ2Æ_·cSx¯xϦ¦‹ÆÌÕÔ'×Y嵫™DèçªY n]³Ô)‚NdãåÒ•ÞÂÇ£"„öÞ®ÆoŒã‚¹Åô)—®èO¿zFˆªîöSÔBH/õà#Æ?_3ïš¹dDû^Œ7XÕߢ‘ |ݸfÞ}¼|çðÈ‘¿»–ùñn$Æ¿d6Þi®ç‘šîŒ7Æ›ÆK*ÙšuZd´#N£2Éø ”%âyX¸š·WÊÖ+`ôY7Wc0Â#0I¤§ƒ«nÎ$k®ûLJ|¢ëfä¹&y5ƒDãájŠªnUÕçäj°“ë«*ìV=V5éÑ¡©=¢žðmÅ®åܳ!³ñ#DÞ7âñ´÷`¼Á\M•;¹D!½¸ÙÓ£T^¹6ò^>(ïGˆ¼¯¸N[7o0Æë‘ ˆÈ7o\™èRõÇ>ž~¼øÏ´'#]Ë ÆîxºFÇ)ò㘖*ïûô20ãÏH%«o]#=!!Pxuí*áI?lŒ/'ººó«sÞmø^’A·(ƒ\ÉÖh;£d”iyW“ ^[—P2ÚRz“=¾Í>g»“j‰ÕŒéÑd‡Àw™e°¼šbÔŠ;W⻘°»ùyN{•79‰ÕH÷É ­ ñc#“ ÁÉ.>Þ`®æ5y}bq­žd+Ò„uŒ’Œ¼çìø·óä˜ï~c|1ÓU¬ÌÈï®õnÊxƒiü€ßo¨ñÓxö3?*ßoÍxƒe,?úÀe*ô2ÇH èt˜ÑP|r³h…*iån‰ß¼áø†Ÿ5ÒÙ|OÒõ<ñƒOÒ½àdðIºL^syõâ!Þp’îdžâIá99Íåñó šâƒ¦øñÿCQS|Ôÿ@<ÄŸ“t‡A¼ÂsrŠËkññÏÒ½‹ç9Ù)ÏÉ©.‡xˆor‹í~|ç/ù¢ø¦ûø år¾$ÞïVíºãQSæûúÅCüƒÝ2XmÂð8Å„œ%Á$M u0Døà|é!‡…@0¥‡ ?zƒ¾À.ûäk¥Ñbí:˜¬ï0Ø#˜ùB\uAuIäê»±ŒWn(:»êÆ2Þ}Îx…b’©6ÝËm¼7¾XXjœÇJ—ã€í•Â݈=½÷‹¤Ÿñ§¡RI†œ]úŦç¯f']çYªžg8OЬÝ}gGÓ0q)>©<0±ÍÊáï‡íèBfþ&š¯ò.lãá„P¬tE$L4Ý®jíoc„ t´b_WÚ Öxo<%Ö÷E LVŒ€ é—,ím<–…®iÌÃêO êgü¨1ÞÄm¦šØf¥7þïø;^œñòh¿Ó ^o1þe²näxZÝvÇ¿vt¹‰Û2Þ¬$×ð¡ï·#]DŒ+à›ýª_ÁAu‹ñxØéQ'\Hùn P§ï@Õa|ÂuÍæ×¸d?Æ®+É5|Æ{ã¡q;o½j’ 0Éä!"à!—9{ï³ò߯ÃÉHS!Ò§9À4Æ÷ãÝçlW‰<,L\c¼‰mV×xo¼ì€jµ²`Ä2’R¬öT÷ë³}$ÛØÆK'¤K¦ë}Ä•\>Ö£b™ŒF² Ûxéâe9fÒÄm–™Øf¥î´„ñÞøïeü' ß=fro¼7ž g<þ7ã³s‡FA EQ@‹¥$ Z¸`¨{šÙ¸Ÿ2O§ ñˆß²S‰7”‡|ËxÄ#þÓA<â¿f§o(ù–#ño"§x9Å ñˆG<âÿ•y\²S?4¥—Ç$çò6ÅóÂÇ âvî  @`¨'Ì d €>“ÓƒýŸaç-œV.ß‚â[P| ŠoAñ-(¾Å· øß‚âsØíÒAA/f$Ããn3,{<Èã‘äx9~¹Ô?ÛÐíä> bIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qundoview.png0000644000076500000240000001355112536324516021465 0ustar philstaff00000000000000‰PNG  IHDRº¿Æ¡Q0IDATxÚíyTS×¾Çýû­·îz÷ݵ¼¯ë.o­¶u®Š‚ˆ8Õ±–Ip*‚ ÅÙå\oëPD, *"H¡ŠDA”"–ˆˆ2¦„LC€ßNNÂ8Iòû®ßŠÇ}ö!µûÃïìsÎ÷üö¨”””“ B¨ŒBH@ =„P\@€‹IŠv^:×p™¬pùâ>B A—‘y¦@cÜ¡Ñ(‚Pã›·…Øpã:“JÛp±¸È4"â‚q¸h»ÉtDì ¸ŒX\Ú4BCÞ¦#ì¯8\´»´u·Ç%E%h -}ãÒÚÚJÌ+X#úÄáÒª®3¦~áRQQñáÃhô–¾q‘J¥D\°Fô‰ÃEª#mO­úu2ú ´ …–>pinnF£Þ¬#-4h‡ ±î±aîç…!{VÂhllDCÞ¨#Ý¿âpÑvÐöÑÝþ8¸Àyahž•0ÐoÝvÝ¿âpÁöûc-çÊÎ Có¬„ ‰ˆs‘F8\D} .¤Gþ…tCŸÂá¢ggÀeÄ>@cÜGàèÙpÉÄ|ÒGŒÏrKcžC@ @0ô… ÆÊ†— PàˆÁケòA£7n¬Ó[¨óÐЖ>ç Ý3Ñîß’úâ‚  =ûSÌÆo#–|Fhꀺ¡Î0C\+Í-´c0.6lX±xÓ©ŸƒnQí2ÿ÷¨à2ô¥'+(Þ–¢ÎÆàâæ´9,ôúC ¡]ÆOúd¸(ÄÌð3áL±†ß8\$Mm´a<.ë=¼b¢cŸ#½Pêù lý©ü¸wïwÔ4Êò–š ‰EEqaÇyÌóˆc“ü…¤(1áEM‹õ8¨piKiÃx\6®÷Jzœü¾°Pè£ð=ö‡ªåñãdÔ¡\ÐÈuÔÄŸñZ0yÚ²}w‹¤Š¶ª„c«§ka5ÃíÌ3nFÀl;OÏå_›±ìPØ…‹¿2³^úS†P®Ú5c¦ÛÚ¥S¬Ì¬l}£ÒbvÌþìoÿõ7«o}üV-ÛýD¨¨½0ÄeéÞÔz…´èî¾eÓ'/ð>_ÐÐÐâ"¨o¤ ãqÙ¾}û«W¯ê(„v¡T¸(¤¥±GÖÌšêðÃ/±y™rh;*¢~Xâ}«´µ»K”}zå¢=)B%î_NñP#bþê`9çXº°‘yfÑœ­‰|Õ®¯¦þøGe›\Zêlã^̲KWuŒ÷2ŸxŽ\Ñ’wvÍÊŸ²›ÔpÈy±¿üà0eÖš#±¥R  —/Ò ôP ׂÂx\Nœ8‘——'ø¡F´ u ÄE˜¶×n¼Ý–‹É¥] •x ^ÿñ/ËñJ³ü÷„ïCÞµiÏ/ v,aC³ ÎXQ.ö›æª[ºy‰+¼¢«DÙÇW9æ·jr‰BÑ%)I¾¸}ñÞ4!à‚Ç…]'Ô†ö1¤n# ãq ðõõÝ´iÓF‚P#Ú…:ôq2ênçåF÷°<ÇíHT6»•Ëð²û.¼¤£U=¸Po \*nº.Ø–øZÛ"Ê8üÝú_Ãv¯Úp½TyêQt·²³£Ž¸Í™lëq<:—×Þ ˆq©aó°À=¸Ö¶£0—5kÖ„……ÅÄÄ\¿~=22òîÝ»qqqñññ III¨ýT·«±49È×ó`R ëΆY‹Od;Qh,{ù¢X$ï÷¯§íŒ¯i—Kó/;Ù®ª¨~°ÑÎåV¥r>Ûüש%cÇLÛ[ƒå®º¤ƒž~AªTpPáRYÍA1ŠLØ.ý¸vsCwl\Urqqa2™ïß¿/++c±X%%%÷ïßG º–Õ>9é6kœÅرV_Ú®?R+£É.Ó§ïäøµ¥™µýÑ¥-Šö²[žSÍçíKE3)óôRû“Ý*Z}p)gÕÐF?.¤×¯OKKÛ²e‹··7tëÅÙÙÙÉÉi î»Ð\6+äâìS..§ÿjP À¥¤¬’6ŒÇÅËË+##ÃßßÏž=~~~8\ Æ’%KV®\9ÏŒ¨pQ¶ R.úÂjŠóÙì9äCp),®  ãqÙ¿?ºZ¦Â%88Íy+È ã1,pA(èÆà2sæLGGGOOO‡eË–-Z´è˜FGݽ{7bèÞ½{ÀÊpÁEOVŒÁEä•a$ƒ*…üD¸.¦>wÑ3 >a× ]UÑëÆY»ßfuêÜÛ ^³·(ºê_…û-šd5ÖrìØqÓ{Ÿ}\Õ ÷H—&©Œ6Œ™»¨†\V|Åc¾Ã{÷ÐÂvÃqg\`·óAU[·ò=''þ÷ŒêvÀeÄâÒ’wÎÕíüŸÙk]~eJј7FùÚZ™YNZèì4c‚ƒØ¢ƒ‹ð‰ÿܹ»V·u뢦9ÄjÊbgìÝgCšívÊ©õöÓ¾oi1nΖ«ùݪ]¶Kvú®œâ°?á/¼€Ð—ÆævÚ0IÖq¯Èòd;ðv9ö\,+w™íòV*—q÷ÏœäÇ"´ô:µ×&ÿâ<ùsó©ßn>ü[Â~{·2a!ÃEÑ.âp•çÀ¶‚K+ìÔ~«ÿ³;œÊo#1Bƒ†‹ê¯àÉÎéÿ=Æ iÌèÑSý“òã=í]¢XòžAÍ}ˆo!Þ•·r Rnžò]úÕ¸…ÇžòØ$‡áÒ)Èñ]2Õ=\û¯ÿ±ÒP5syh¡ŒÔ@ &.òÚ¸m«ü\Õ‰¤›ó`û2ïË¡^.7+ºzõõ£­¸6åo¹¬(tå\χù$‡àò.óàüYÞQï%dÝx$F>¸ ˆWùÞÊn¬[ì÷ˆ‡=íUt×=Üæèt舓ÍwA¯›äuUç‘ʲȵ½[tOFMÅî<È­kUf’.ñ›+ë箾ðFBrˆBìgcw(­^Þ%y{mÓĉîqL†·íÊßÞ·w·sŸŸw²¿6V—N#1x¸ ùÂêù¾‰JZ°–n.cû¼?G‡ûÙZ}>ökG'õÄVZx ×Ò“ŸÄ÷ޝ_0O,--'ÌuÿùKyM<‘Upmó7fc,';xî X`ãWSŸufÍ—ÿ6³ž²pÛ‰îs–ža¶è&!¢€4\>t‡†p\†.âÆVÚ¢¸€à)¸ˆ$-´¸€ÐÂ¥_n¢¿­¥RæÊ·š?3·´´õOäêô—ä½üªÑÈk"}î#ƒˆ¸ Ô+õúg`èA\†.ý00U½­q ¤äõiT°qÜyÀËqŠÕ³o6_+hÒùêEÎxÛ±ªÀ1¸ôÇÀ@‰ æ@è¢1*¸Oœ¸éZ¾¸K^ŸvÈÎÆ/™Mm{¨3ƒ¸Ô‹šicP 8\0­Q¡×êu¤_¤Þ`‚™aàòQ $¸dTÐvcRÛ˜`f|\úk`З¾ Ún•en³WãlØ®*03„Km ‚A_\èŒ šíîæ÷7}æZö²=hº™A\„ M´1ìoÓ!Ûo}EGŠæ.ò†ŒcŽ{Ÿ5ÀslÀ… ¹0û’—ý×–ææc'-?ü° ^@1—FÚ€‡ ®| \Àpé _(¡ À4¸¨.;du™ÁÛM¶¶Dõ¬§/÷Éä´3vžE«þY¬ŸYWŸÉ‘(Ô2‰JŠ‹\øìÈÂo\Ïgr”/Äw5³R/úO<‹5üqáÜß`çz·º»§Å4*EhpӆḠ‡ÏÎöž1Õ½ÿ—‘Y Œw P”)€zz-ºQkn1n¶gX>¯äÞ®…-ÌÇ~¹hOLiÏmßb»Ö !Pÿ´^}2cýU‹P|6[éÕRË4*E`¸ðbÚ0cË|ôH¿Ø ‰µ@`¬Úx è`ÝÞ0ÓñX¿­lëb冻Íq)¢…$Bœç¬(Ã’«4‚Ø®5H`’‘õÁ—-2‰J‹‹×|µaŸ]pÖ£ÔÆe…yNåš1ç&xiŽ•³nºØ{%` Iä’µ« =(Pkz•"4¸ˆhÃp\Úß]þnÞ–l9 .ýp P”¹ÍÞ)¢¬SçHÕ±]å7œzáBÖ®›9¸4}ˆ©•"H¨! #¦ºFÀÜë.¿ä+½LriuFÈ×óK>žÚx è¬ŽÙlƒ~ÅùèdÄ)y—ê6kuP^sWÓëÀU³\#J{NFdíº¸Èôèc•"4Õka%žÚhÿ•òòÒÂzêRŸ ÔêÖÚé@ 2(×É⦟õ@»,,'Øl Ê©-¾·Ëq¢…™ù„;£K¤½¦ºdíºÿ›úîc:•"4¸4ÐÆ ߦæ“DÂp¹¯þc¸ÔñhcàBæ@\ÐÇ¥ž6P.)*adn. 5.® lƒjÛ\¶žOÛµ>GÞ§Ú0ì§CŒ¼Ðà"¤ òKOœ{¸-œ™#’¾JLÝ~î!ú«¶}ë•¿^±ÙaW¨[BsÒ8-I‹ ±½½««±±EÀa] Õéü<:»àdðC#ÿýÄo„ mvAËDcslÉhÒmc³Ë9ÆÑvIM}iñÛc Äe p1*»`Xh×'Ý66»eÄ–p~¿û<¦¸.îVâÖs þ7^§sZ$ME¥uU<4TÄj\°mŽ õ ¯¶¦<0 kgì-zY+©µÔ‹DÏŸ¤ÿx^Õ­N˜úª¦HÐ"n’d%§ûë|u¡ö‹4?Ù7<‡Q.áKZ<Î1O|Î@}dm™]¢K˜y‡‡W3³³Ó¢JÄÌÔôçûþ(¯r®ZhqËÊ^fï¹ 3Ø—Ÿì f ½¾‘oÙÕ—BT»š³“Ó.$ìú½¬¬®òâ²/Â~ÂÕ§ï/ÓüÎ'ì¼[˜_]øàB™]j9Ú0<»(A“/2%M­m M­ Ͳf+èæ«¬Úºˆ«:Ü"´ÐâÂåß¾ÁÐigì¾û6½ª‘f9’öV1G7mÐ|‘zW΋†‰DÊ¡h5pïD>8¨² ¢›£`dnž]Ð$÷Ê_™¬àP '!ùüOß¾¨©‹¸¦3fQ9™¸Z\pÛ‘YkÅ/? ¸@à .d_¤Å…ÍŠ`úe>6GATÛFdÆá$va^Ξóª1;—°ïAUQiÙ£RÑ›´ ÿž“ÑÓŽ[ Å 6‡w囋O~M¯ˆ(²ËÕ§‘Åbüa»ÂS¯Š ³²v#à.<>|çÅÑËGÙ…O†g—‹éÑåõé$÷\ …æd°ùñòŸõžØî¸ñú™AS]üvÒ™Ln]s+_ ÌÌ*Fá?n="놦ºy¸/Òtó¹’}¿XÌolŠ›Ë ¯@¦¡Ì.5l>m{e4tâc×µ§û‚ÐFÂÎ{%E5åçÓ¹°‡Ð;»Ô°yØmPm€»ºI§ÓjJ…-õ­B!?ñAªï9ÀŸìÂÃæ(ZDˆÛÃ?»@|¤ìR]Ë£ xf‘ Á…KðD>µÙ…‹ÍQ02H·ÁïRû]ªj¸ØmPm. \hÃ\”/®šý÷¤ôš&¦Æ?ÙüÝÌÝèüª—ÄÈוèy3Y³®„Ñ&jX°—:Ú0ñÿû¹íÔz-Í9g–Zþ}üÇY²aàpé—Êê:Ú0Ûù¿w=˜¦¬I*Í=·Ùu½-¡îÁ»×ák—íŘ’]q]²ë‰XZæ]ëO²®„‰4ð¸Ì[{ñ’Ÿë¡g"´öH W@à…µ$u“¯mZÄïV´½ v^~(S@Rv€—O²®à¢Â…CFãâó2ÖÇõpçmðÿè¬Òºñ¯b·¬Ø‘À•¾¹à´ê§—Mdehpù$ëJ.ŽK\MMÌv×}!'·î¸Íª¢¨{PÇeø¯Úò{§³¯[´eúžO¶®Ì`p¸°ª8´Ñ\Øhy=¯o¬§mŒ,ïdSÔ=)„)ûM›>Óí²òw˜¬ì€‚¶ðÇÀ¯+ÙE… ›6úƒ‹¢«òŽ»Í÷WÑo*UÝUy·C³¾Xs­›QˆËÀ¬+¸ .C\ýªÃ`áRQɦŠËp®ê0x¸ÔÒ<. Ãq)gÕÒàÒâRC€ pŽKYE m»J=ºÅU½nœµûmV§B·º‚X?’¤Å4–fn¸TӆѸȊ¯xÌwX`ïZØn8.¦±4à¢Á¥%Ûù?³׺üÊ”*t  ±»¨Ä\LciÀE-IÖq¯ÈòŽŽŠ(o—cÏÅÄUX$“‘I,Í0¼p)-¯¦ ãªv žìœþÏÑcÌÆŒ=Õ?)?o ³ð¥†.U´a .òÚ¸m«ü\Õ‰¤›ó`û2ïË¡^8ÃÀk ÕîH]špA¸t”ÝX·Øï¯óuw×=ÜæètèˆSïU*IÖYèÉ+¦±4ÃðÂ¥¤¬Š6 ÇÍVÏ÷MTÒ‚µtsÛç­ø9:·ªq…žüdK3 7\*icˆÞ¦×>ภi\ŠK+i€´¸°hp. Ãq)*aÑàÒâRA€ h qÁ^ÿ¨Ë Þ¶h²µ%²XO_î’Éi×2úÜAîëX+Æg–ÅÄÕgr$šµÉMÂh1 ¸È…ÏŽ,üÆõ|&Gù<¹«™•zéÐâY¬á çþ;×»ÕÝ=-¦a´Àp),.§ ÃqAÏí=cª;‰¯“áË _-X$A;„2vêéµè¦­¹Å¸Ùžaù<Ýš¥-½^õk‹9Ô?­WŸÌXÿÙªÒ2³ÕueLÇh1¸ uâç£$/«âË Œ­–PIiBPt°no˜éx,߉–çU±rÃ{Õ|ˆ(ëYvœÐ®-æ€IFÖïú3 £ÅÀââ5_m3 º«.ƒ`tµ&¥ AéO˜çQ®s.¾æCBni-e»ÊáЃÕ±¦g´Àpy_TN†ãÒþîòwó¶<`Ëißm6ºZ“Ò„ ÌmöNe:¸ô®ùKQ "—9¸4}ˆ©F .e´aÄT·“Ø;cÝå—|å«èriuFÈ×óK>^µ„*J‚¢³:f³ úçw “§ä]V(®æ‹¢ñD#Ó£i-4Õka%žÚhÿ•òòÒÂzêRŸ ÔêÖÚY-Ê„€êটõ@»,,'Øl Ê©-î]óªÙSß}LÇháò®°LÔÛtýZÂÈxr®Á¥TŸl\†sµ„ƒ‹ž¬ÀCÐT”û¤ÞB““ÉDŸh õü\L]ú³‚Ø\ »@vAvAvAvAvAv\ »@vAvAvAvAvAv\ »@véZô´¼ n¨3àbÒÂXAþKÚ{胞¬`~^0_.J\$Mm´¸€Ô¸4ˆ¥´¸€Ô¸êip©qáòEº1jÔ(\ À¤Æ…]'ÔÆ(tQ. 5.5l£zKÛŽp©q©¬æ E&l ÀKw‚ Çe¯ úô¸WÐà>;@C(ØÒWP°dXv1H€ Ì]:ô Àp¿ È@\Àï2𻀠Àü. pÑÚ\ˆ¿  ÑìB´¼. ¼ßE×ò¢Û~P.ZS‹Öø‚k¿ ¨𻀠Àü. p¿ È\ÀÀÒK˜AOVÀÀ`êúÈ;žå– Ý¨Æ B‚-18VÈq¨¸€ÐÀáb;dÊB¨ü?¥ýÀp.i™ZIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qurl-authority.png0000644000076500000240000001175312536324475022463 0ustar philstaff00000000000000‰PNG  IHDRH´ª¤ÃPLTEˆ""‘33™DD¢UUªff³ww» !!3™39›9@Ÿ@I¤IZ­Zb±bi´ip·pw»w{½{ˆˆÄ™™ÌªªÕ»»Ý‚Á‚”É”™Ì™£Ñ£±Ø±ÌÌæÝÝîÌæÌîî÷wwwÿÿÿ»»»"""DDDîîîUUUÌÌÌÝÝÝ333™™™fffˆˆˆªªªî÷îC¡C*”*T©T»Ý»ˆÀàÀ‡ÝîÝP§P … «Õ«ŠÄŠAOL(ãIDATx^ìÖÙjã@…áó.U½/’²Ï>ïÿTcƒB ò\õù!H¨ _}tz‡ƒÞc„ĉ#$Ɖ#$&ý2÷å!±äFH¶JHìšp ¤èŠ­ˆÉ"$‹µBXãùMŠž*Ò´-ðÒT e !¹AæòÎO7VØÀžBbVªîý„ Tºm °{m8?e¬f¤ñ{yBHlC-ªÅcÝAº\mHEuA²ÕîT]G;zͶ cU=¢ªxkaÓâSH>¾ÑЦ§ªAŠº‡$6^±N ‰¥k–Ë—¨Õm°‡4î62'$–W × É‡/jk6ØAw[FÐ!±„%Ý’ ÙߌXBʆàHU­zRFÒÞã”õ¤õSH—Õè§Ô£aщ!Rô «½_´À”ÒH7-$^m›k¾#tq­HÞå=¤Ò‘œ[ÐóÒX=U¯sBbÙ@È@ÐXÀgSƒ°‡4v»Ó¤±z®Bf…ÄbɪN6UÝDÚ‘M÷Ù|‹zéãjE!¤Ã±ŒªG#$! êщI8$Ɖ#$öîûñ—î{#¤ã1B²!ÿG"$žH„Äx"1B"$^m„ĉO$Bâ‰DH<‘‰‰ñj#$žH„ĉط'BºG„ôHHÇc¯¿ŸéhìçËŸç_„t0öúò¨oÏ„ô?úGLÄ0õß ‚ý´‚Ð êa‘^9÷ŸÊ?GH³À#Ò÷l:K9ÇPUã‡zCb7{Ñ,#·áðrþÏ$Ȧ{™hýØ·c„(Š¢6‚A…`ae3òW`0ƒÄ"û_•ý”"øžÓ½þ¶¯KHã\"Ö¡t©.È…õÔ!¤éÙp®Û‡4¼#Æyû^‘—EH?@„„R" !!¤dBBHÉ ¤BBHIH !!¤c¤Cy6!¥…§-BºÚù„tÝ·óO éíµ-ǭðCI´ø–ù$†ÿÿ'ëKXuœõnÏ%xÈ †- °­ëMË‘g»‡X€¾²Â^Äudþ;hª"Åþ0t`–¾±.̹ ­ ¯H17kSYˆ4{ %Eû üE‘tˆ 0Àyä—÷ñ~Lü€ýYäPtâÔWÊIUBýí°eŠô­"Uêæ }ñB»@ÜFíSJàËÈ}d¢0èÝ}¼ò‡‹4†ö ÃjSB_Mq8Qnú½")ÙýÅiúOIâÚ F†8\Of­ÄìßX$ÔoÔfʲ°ŠCëÍìÕ"5Õjm™ì,@±ú³^Dt.™YÚꡳc×|Y¤®ª«Zˆl£ÊͨœËu‘úV žäÅ}L"¢¹­©ú>²jí£4› ª UEDªÝE„‡óŒi&oÁÖ¤;DÆ"¡ªð™êï?|J?DÆ"á^ËL¡H>|g‘x'…IPÐA£| Ѫü“ê 9C‘Âä¾z`ÆâÎ×E¢iéM÷÷¡Ä+"ÛŒ#c‘PUøLõl©ûÈè(T ŠÃwir)½(R ãamq}•qa(Ò æ‡Û³gŠÔ©>ô„ÔÆÐïïCiÒþb/eŒŒEBUáSÕ׋„U¡ê >|k‘ÂJò`ˆéu‘ÆtX[¥ÇbOÞH^=öÌ=°ì9‰å”#'¡é•}ÐoýjO"c‘PUøDõÌ"_i Å_Û¯Ë ï ê„ÄŸQèOpt§¨s^¤>}%Ê,…^5˜·²œ&ʦ­ÀZ(¶º”‹ÈSh}»©ýé}T?«¿ ­3/¡šõ”!2ÉU½ ¨êŽ0Ô¼|ðÀ½æP×[Ãí¦Ðax³H.Z8Ï$éfò–‹(ÀŽwtÀcI<†ìð0céyâ…Îj²þédÉ/ȬÐ8û†|9ÇY®I§÷1øY{ú|¦¶õhm’G†"ª›‚ª;î‡-‡qùà{Í©ùu»¯Gá’ÞÛÈLQÚ¨çÀ)Œ~E_|]‹:J+d»ǨºšúýÑcJÄÌ$ýóG®DsÈÊqåpÀLc`NAì:ò"s¢Aoí#}&ÎÄÌaŽ,´žñ¡ÄûÈË&”HçGU¡  ºw܆)ävˆ ‡½ÒÝ.1æ 8Äãx‘®ÑT›_+ÖµšCK¿¸P¡Zw”š¡‡1ÒOþfCQdî¯ö=èîícwg½ŒŒpU„«¢£¯#ã^Ñ£½õÛ0"âüÛ‘»`±;艈R1`ÿ«/S…øoH6Íi»Y€Þˆd’[M*¹ZÅ™ÃèðzÏ>^UýÁE*<£žŒ;Ð;öŸîãýª³s;ŠQ†gë”´ ÞÕ($$ç naÝ&”U¼ÿSͦ!cÓ¤-Ó’û-5¤ôø³ÄU…¤”†¤4$¥!) É®G×+p›'.aþOX'Owëi.$±¸ž•'ü ÑäÀ%ÌŸ ë$öîaÅjH’†¤!iH’†¤!­…†¤!iH’†¤!­Œ†¤!iH’†¤!­Œ†¤!iH’†¤!½2 ICÒ4$ )Ãõ²g„´/0 =þâ3ɰ2Ó/æJܤ7s!õ®÷Þ?!¤ó#—caá8«Ã:õï“û'UîæBò)«5ò„lŽÑÑbYÜb¬á&6Î…„Χ¬ž õ¸É6bÄ]Ä¢N„©Îc•ìé7À³!‘MX=9Þt¼aŒCÄr¸ørOÚa¢aŒö #YÝĔwf\¥è8ùs§;ñ?1–2UÊÊñĺúö‚Ø“91¾ârÆêÄ —÷P/HÁBmùÀ'C‡ÝãäáR¤ª$ÈX$ÙÖ#YøX8;å2»›¾ØÀÔšÆ~b2{)k¨Æ×87tˆ’¨”DcP¥^*iÊþ".HÑ´ƒM;6Ó¶ýdc©þæI¡ß+ó»‰Më¬m›ý¦ˆDLõådæÊcP^¾WMjM»ü¾óH7$Mæl¢¦5²mÝ[⥩Gýé×ðÑXÊäAOÚŠi€7#¸GMÙffÆ ºnœï£_7üq'ä”ãUÈÖ1òpÄÂÙžCÿ¸G¶¹¡¾a,Á[ÃÈC%Dç¯ã$xü(v„Ç…„º 5’Ÿ¥«±ŒÍ/„;ñÃPð Mƒ¥pãâ?öÌ aˆ¢Ù”â :Rpo‰M-½ÿ©\ºp%ÉH¾¼w„òæÍ´5'âbJœ£õÆ3ZS‘–bnŒób?L‰S"EÊÙܸGó"k‰4ö'Ò‘ÛŠ”sãØ©Û_ÄGi,Rò¼çÌ‹"&Rþÿ"%É9, ‘ ‘*¤çFâØÖ‰‰ÕF‘xk£H¬¶z(EŠÄw$n$ŠD‘$o$ŠD‘("Q$DŠÄ±íå6«mµ:(ÒšXm^ð$*DÚ¶ VY‘˜Ch,s‚IƒH&#ÜæéK‘¦0!’âOøf1‘é=ÿŸ Ò‹=sËq\‡híEÑÛ’íýoîŠtì’#qîGœ ?Bl‘@ñ”º‘.&K’MÑOï½ly, ½É9ú6z¿„­_K5g7¦:N+fk¼ÊçÜÙaP‘¿×öÅÅ¥TÔªÌp¦üHöP(UHT!©@Ù\*ð¢Ã‰Iè™°çìÖ§‹®L§Î(’kÌcP˜¶“ âR*jåuI§ VVg»” $ß a3µ‚ jäÒ•?i%C”¥fÔÒNõÄ NéUÌá‘'¹¶bÊí²Ã2tcº"êÝYEnÕ¶AådàÚÑ‚@¢Ât?÷Aÿ+Fq)—òâWýKUå¸Ûá½P ág-›¾üHÀñwÀ Õ+W)¼ìàTm@P^wo³Û˜Ö–!bj%ù˜¶AEòmPÛ^$*L÷wû ÿ¿£¸ƒT›V/A:üK¹d€˜EÞ8¾R0ÊN]¥\ûòg 9^¨Ø’ØÊó›×÷ÙiÝ fè¦)Z,á±À5ûÀð´>¥±ß‰ ÓýÝ>îøÕFq©T«w Ñ¿;„3VyðÃ~‘ï…¶ô~º˜±|$…Ñ›$…–h8É\èðü±´ï )»©i “iÔE$êà÷A÷}¨0Ýßíã(n/•¼‰þÝ!Ì6 ‚ûE¾{KކòG =òì¸D¼OŸ€<?G˜®Ûæ6È×6Ï<ª{üHT¸w?÷ñ‡DÿRfê+G|/NAbù34rñ¨­ÅÄ oAZ"bz¦ì6¦¢ H²7»šºè›A…¾¹;@¢¸”ê"Hôïk4Ò)H,_i×ï’$„?‡ ùb.€dŽk@Ø™êºu©Ö°è-Ñh¿€}…Ó‹ë€Ä}ÜÅí¥ºý{Òð^œ‚4}ú×\pÜ“ˆÄgÞ]© uÇ"8˜¾[ßø‘(þUu™·Añä°¨ñn‰îç>n‰âRªK ÑÊ„°À ñ½8‰å+êUcËä¤í_ìêEÄPWk*Ö Ák DF¹U\EÌ}7¦-ªˆ"n‰âR*R¯tÁŸ‚4ø7U»FI Rÿ^œ€4”/ÄjLéò%1/á’il(fÉZh™IÛÑØé´ŽƒòÞï6èþnôÿׂâŽR1r;:iô¯­’Na‰ïÅ)H,!tð_Txp?÷1úÿ§ÅEïßÃâC¯ ïËÿ@úÿA÷sêÿÿÚ·›Ö¶•0ŽâÏÖ8&iênJ{!Ì4zÙI7ÍMâïÿ©ŠGâ:É]TÁ-•Ð9 a=Z˜#!ìi@úMÉ…R4‚/ẅÿˆ€D@" ‰€D@Úï5®¾iÄi½Ö4ÚÝhN H@€D@€$  H¤á H@€$€$ Ý®4>?iÄéîNÓè|ÜØ‘šF·£†¤¯Ëµ¦ÐóÝ8 éj1Iû§FtµZ®Ï׿îãã“>]©ëúŸ‹õ/ût1à¤õãdzåèIÚ­o~¤ÕòáùÀèÛâfÈE‡AºÜ]knñw¤ç§óÃýòZ¤“ú÷áòìR¤Sûrÿ$ÒéÝ/uz¤ÅJ§G@zØëôHß' HìHÄŽD@bG;€DÜÚHìH@¸µH@ÏH@bG" ýéÏF@" ˆ€äÍéuÛÚ‚NŒ€”G Nï‹€”ûê­¬ Ò‰)¤ÆU’T¹&Ci¡û\4WUEP—w¾[iChKÉ·–¥a߆PxÍ3 óÿm+e´C±’ÔX*ä’œ5ÑL]ÎÜá°éÎõré4ÉYªjsR^X+Uɧ9‹u©×bQ)¯­èGµµè%­ÑÜ’%îepRÛ¨¢å‰M®7²<é ý¨ên ±ZsH™9õESª0/9kõRÛOõ‡Üú$oÞ©1‹Á• ~ ©¬ƒäþÉõSÇÃæÌ’ª63³¬LúJ ½/ ¥ª&X”¬Ö±AúzÖ€´±Ð¿K’2óÊ,WZwà ɺÜLó HIyv€dY©<>Mg!µÝ€³Bs H΢óM}€¤ÚBã·Áj)Vl½‹¶©ŠVxßZ,5Ç€”×–ž¯-Hev|›]¦õØh ¤~8zÍ2 I[皟7å‹õüÚæúë‰H$‰H$ÑO)Ÿ¡>Eì8•IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qurl-authority2.png0000644000076500000240000000445612536324475022547 0ustar philstaff00000000000000‰PNG  IHDR>ez:ƒ«PLTE"""333DDDUUUfffwww … ‡ˆ !!*”*3™39›9@Ÿ@C¡CP§PT©Ti´iw»wˆˆˆ™™™ªªª»»»ŠÄДɔ£Ñ£«Õ«±Ø±»Ý»ÌÌÌÝÝÝÌæÌÝîÝîîîî÷îww»DD¢»»Ýÿÿÿ™™ÌÌÌæÝÝîˆ33™îî÷ff³""‘ªªÕUUªˆˆÄ^PîG>IDATx^ìZínãFëëÌ×~¯¤÷²ÂÒS‰=’“Ã55 &G.'¼µbç/»>øÃêóÁ§>•Nè9>øÔg ÿ'|ê“Zç,Íî¡ _°Û¸‡¿I•(Ø7Cgªþ’!Ò ÉY}zK–¦qbJv ¡EûàvR{– pùê>¾“<`ß‹–ƒNRê RT)ǦÆO깚ƒõíËuîƒõt±N¥T`€ÓÈuæ<ëÉ>~3è›ë³äô ó° ¹SNÜ’žÕGÙî¯K3ÐßUê£7 p9™ÌRè͇?±>¨Ÿ8­Thc‡V“Ù½ú$Õhi!šì—ŠkWU5«H7áÐD( ]«ªêi}ªªµºÆ£šÃ­ˆ$ÒÂëúÔgmj¡7÷1‘zä4RÕ}dÕXJ¶~AU¯ª"E º‹ çËÃgõXY.òÀFºnDEª¯ðpÛT  c"…M{£y=RàBªÄÓfØW³(¹ z°ûE)¼©­*Tl€Ê‘™Õ9“êÒK<í"ƒìuCåøÏK¨5>páöIÊ‹ú=@9¯­Œd³˜ÃRÔ1å°ÆXÖaòŸ›¿Ú$Vô0ž s »[§ ™?¬˜Ù”e ‹=ƒ±Bd¨¨º¨: Ú.2z ƒúÀðkê3ù`Œô¼>)/‡eõñÖƒ >3™nϮԧr|è«-¹Þ߇ò¤þö[i냪ï× ÂÑ`øN}ò m6DÍŠôu}–rXVÍ¡ö`o/œÌ{æXqŒ\ÈZi] ñôÎ>x‚÷æb- "c}P•d§ €!D†úÀá‚¿¥>–Ÿ'^©>¢“?{1³?äÓ*…^04·°¦ÓS[¥l¸„‘§œê²T ëå}D?kˆ+9šÕÒ 2ÖÇU½¨êŽ0Ô¶|ðÀ½¶Ç]ávS®0¼T— ÒVÒ3U3ÍíiËœO?¯@ðØr.yf;<$ Çêc^d£«¶Ô„Ì/f~ò³È­¯r‰2]ÞÇìg­e®ë „Ó³=£?êªn ªî¸¦–—]äƒäWë8^íäÃËozG»wJ[ŒÚ²”¼øuÄòâÃRÔQç›r‘ÞU‡©ÿÒŽSaaª½H—ȼF‹ÒgÚÌ´g‘’É^G^r)<ë­}¨E$¯‘‰ÇJ²¼mB™uýrT%~â  ŽcXrK‡ÈàqØ+Œ‰Å,’ †Çã`}–T“_!V5šCC}qù B5î('Cÿ¨bPø—µÏA‘¹¿Ós¨ªÞÛÇ´ìÎú22ÂU®ŠŽ>|÷Šéëÿ\ŒgŸWÜ…ÝA-Ì\‚)ûO}”Iò#ÿÚ0i+ÏÿûˆF@Ó­þ„­.…û‚Ìa|x}Í>ÞUýqõ ²"þb\Þm°?¸ïQý»];Øq‡Â(|!eâ™TuèL¦›Ww èÍÿþ¯7m£ŠÊRfÄdηˆ/裯  ŸÇòù€|@>çFË5g}òéZîØë€|@> Ÿù€|@> Ÿù€|@> Ÿµù€|@> ÏA˲|@>o;-÷ü¦O@>ç–«{|>ÛµÔåIOsÔRß|r/_´È÷ÝE9ÏåÛ¾ùñÞ'§~öórþìû÷÷þô£ÙÏŠ@>™¾ùr8&õqöòÇþ$I§ýÓËïÕúxøÒœÈ´D¿¯¥¿ö½þ?.uóV_t~=ýùK÷ù¨®u/ÏËN÷ù 8:? °y|ÀæòùzÀæþ}ÀÑäó€Àæ6/Èç|Véq€|@> o^äòù€|Fïœó£¢P9· s>ãÖ¹*\o©ZEÁÃïŸÔ:çÚl¼>ä3cŠ&iãU5¯I­%nš»²Èm-òÙxuÈgc^š*ÛJAzµbŠ!U£´µJ­h¥nŒŸŠ)º8.²ñê¥ßÁùXR+Å(:y+'IÁœ´—ÇÂ&É›»F§É,¯ ù”敤¢1Œò¶ÕG>…)©,\ÏÔÎÂÜ^>^òIûóÃG+ù“WZ²Â%å­|òñúðäµ-ͬþ;Ÿd¸‘O6^òIÆÖYñïùltu+ŸÖŠ|Fß**-Èlš·3ŸåSÎËzõ7òÉÆ«C>V**mPõ‘F—ås=F—7òÉÆ+Ä{׆ÎÙF ó¡«l£,Ÿ©°ª ¾°îF>ÙxuÈg(¯ïŒŠx¹™ò|4lârÑêF>ÙxM`J:ï_%Së}Pæã–vÒlù|mÈäòþ]½{ÖVW¬ôIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qurl-authority3.png0000644000076500000240000000674012536324475022546 0ustar philstaff00000000000000‰PNG  IHDR7³BHÍ{½PLTE"""333DDDUUUfffwww … ‡ˆ*”*3™39›9C¡CI¤IP§PZ­Zb±bi´ip·pw»w{½{ˆˆˆ™™™ªªª»»»‚Á‚ŠÄДɔ™Ì™£Ñ£«Õ«±Ø±»Ý»ÌÌÌÝÝÝÀàÀÝîÝîîîî÷îww»DD¢»»ÝÿÿÿÌÌæÝÝî""‘ff³33™îî÷ˆ™™ÌªªÕUUªˆˆÄÌæÌT©T!!xLh ÞIDATx^ìZÛrëDäƒæ¶÷•üÿgkåÖm¢²M÷Crº&§{fÜY©¤üb_‰ßíÇá_3³‡sóÆÿxnÞxç¦ÐS¼ñÎÍÆ@ÿxç&æ$³=‡Ôþ ö: G>/~?¢*Q·/†®ÌTý"Áœ#"ñÝܤ-.}Šözê:¯Cò'¹Ñ55îÀÎá##pß‹…/°¯En].õ \T©…»Å˜%ɽÜ©æ}ñ¸q28|¨K)ØgÀ‘ëÆ"mÕ“}|#è‹s³µx!ëaÓ[=L±¸HŽz77*öüž´ý®ÜP:ÃÀ>Ž /f±§ìÅŸ˜ÔwÊ4XÀ¢Õhö`n¢j°¸-ö—`ŠûÖ˜ÕN¤C¸gfЇ‡îŽuüÃ2UUµz¹–jë7lG æÜÏsS¯y©…^ÜÇBDê#Çcª:¬êFÑö/¨ê¹AUD'¢`]§‘ÁáÃù·²Aqà^nXŒ6X _0Hâ.™¨põÝÝœ/(èsÓ”iÝ{éRH•d†i7 Ü£‡¸_à"CmW¡b¨Ü2³º6RÝR æÀ‘¯:Ja *õ}B*D”F‹”nX‡ydN©µÞVjŠªžT½oÉ9-ÓÈà{¨þ|ìä Åóó&ªlê¿ùÔÚ®œËÑö"Âæ°L†uL¥ïýo{1úæ–(Š&k)}êt„©ù É 3[Žsª'çMëf[¢&ÑRh3B#µãô*ugF¦‹I6Û ¨znP-·QGØëJÓ6ˆ¡8ððý ‰ÎןUÄ5FR‘¢Ž©´€Þ”—u5ô°FÁjorã;Ÿ™©Äƒ%ú<7A¢©ã4¦|`3˜¯ŽÝƒ“KE_âÝÅ9¨ßSð:H…‘ÁÃ÷êPY 7P|.7å [ºŒÍû÷“ (æ&L”.˜ÚcƒÇ@},7y5ï¡2M¿æ‘¦G÷ᨲ˜Ïs'§ #Cn@Õ%Põþ•¤×ydôÀ½ZrãÅçsÃÓ¢±ñtÐ#¤D(r¨´é²s9CnÚâ¾zÃŒÉÏs#Ëø€dy~*| ±]Å‘17¨ê>¨z©óÈèèÒ rÅs³¸9”žä&¶mö¥td‡k¡– #cnP•xR@F†Ü@s݆Ëo Ïssïþ‹„üþ₺ò:'¹ MüÖ†xx²ü¾Ûúè&ÑU[ÅÖípé'¹YZ¬ÛV­S¨ï#x¯þÀ1ì¼·`VK†‘17®ê¹AUw„¢æyäÜkná8$Üni‹ç¹™Zîœw’U3mùê'Ò`¥ðnm»¹@­×K½ð »?q ™uÙ̼sŽœÓ.©ÑÃûX½×ZÖºwÀ¯±9‚ã#Cn@ÕMAÕçbÌm›Gž=p¯¹ 1QÿDj",ž?÷óT&fIGÿ57.móHøä&ê¨8[Zá”TÝt]G<–"Ì,T ©pâ "zaœVÍ3M¹42Œ¼µÄ\dÕ§öQì@ÍÂÌm™äèñ¢ÄóÈc*¢ãË*É :;^‹¥åx32zÌ{•+tðИAÛñÜ ¢jôÜ[Õ`íõä¸A„j˜¨DC»0(þÏšÖ®ÈÜÐsèžÛDzM½žŽŒpU„«¢£ÏGƽ¢G|åï¶p"ÀÉ+†gÀdÏ )Ý”€ý§Þ7ÿ¬¿÷‹šËüÛ~òŠáQz*8=«[‘´!s˜ÜàÄëÙ}¼ªúsrÓyG°û¨@Ÿ Ø¿¸¯Qý£=;jJ]×Ã8üOkÚ õ`wÓlöZ,Úm¸y?€òý?Ö™„Ú©zFÁ}º§Àû»`2‘$7Ï„N=7]ŒÑ £F7Œn–ø^ë5ºŠ' Zº)†s3=c7¼o¦csÃèæl£›ã¾atÃø;5¼Æû†ñ¾¡Þ7|C7¼oè†Ï7Œ÷ÍÈ¢Þ7tÃÿ30ºùŒ¿SƒÅxß0Þ7ŒnÆÿ"‚ccÂ+—nè†nè†nèÖ4Ð?µÖa¢gaÎ4M¦?Ù.ÓºôÙLÇqo·Þ°=®1f¿q>s­3÷æ ö³ºÑ⢠Ñ@­$¤+1í#V‰|²C)¡ÔH¥w»õ‡FJF⩹Ø0Žåèòé~æDÜÐM*ð™ä@#Ê.ÎQiý™<É=š4,«$m€&‘²·[XI¶_b(iP‰r€Sb»ƒŒ$(åDÜÐD¬µ6íU4J|pã?•—įŠxX]€éíöv¨H&)P‡t•íA^$*=•û†n1hS‚X&FòÏå•­Ÿ m™˜þní°ÛÐI©Å£¼èÛƒ*ѹqC7VDiSG¶JÇ’èÆ ¯ýZ]ˆ˜Þnï†Fj#2©£×˜îêŽ;7tƒ&OD$©£›¶ú7^‹ˆÎ31ýÝúÃF4´‚•à ÜÐM¬±Z )º¾tSun2ÉêvØß­?LÅK¨%ÜëAiç¦lûñ»¡›RtûHÄ!Pipcºe"¾%Ôß­7Œ¦¤Œ«‚·¸¢EÒºq’ TÚ Ý”|ÜHÒ¨_Ÿ…$¸Q€Õ*»™þn½!P‹HŒ¨(&ßd$ë€&ÁŽØ ÝQÆÙ4¸A*ÚºJK x%Y匒ê7’Xg$ÌÂ*›(ÉšÞný! D!òÉ Q’9—‹ª;7•H&£uC7íËÙ¤nê¤{GŒ:Î+‹Ü”qÁëºѽÝúC ߃QÁY·D¹ÞAVBV× Ý•1¶7.ëÞ¼?ì É[S6ykL 8SõwëûuUýš¸ß¢›aŸ¬ÇÝÐ £F7F×`t3ŽÝ0ºatÃè†1ºatÃè†ÑÍj…Óèùã‰nЧÑfCctC7tC7tC7tC7tC7Œnè†nè†nè†nè†nè†Ñ ÝÐ ÝÐ ÝÐÍͧџŒ'º™ÍpÝÊ ï›kœF7crC7¿vN¡õì?OtƒçëS€³šl0¦èÏó]qW|Ýãý!_úãû¶¿Š/ûãá¡øºûÇÛÝØØÐ °)ÿ77óÝtÔ¼\/Ùô07ËÍD7cj=¹ ?~[0º9¦§éòv F7GöójF7GwµÃÑ1º¹žãèÝLW8:F7?þu7Œ÷ ã}Ãè†÷ Ý𾡺aüb¼oÝÐ ÝðwŠnè†Ñ ãóÍð1Þ7ŒnþF£F7Œn£F7N ÞV¥¢q\Œn¼mðiŒn¼kÞCÒ`tóutC7Ö4Ð?µÖa¢g!gš&{ÅáŒÛÏäZç5àrIâb—k9\Dt£Åu—F­$¤+1í±JûŒ˜ðQ* 9˜øµ0ËqiÑMHøLr eg`D¥5ÞºQYŸJÖ.E%ÊN‰Å…E7M×Ú¹Xh”ø¨Äã›ÄG,úÕMº_`%Å…E7‰´)A, ¬Œäè»éf\çÆ‹  ]VtcE”6uÔ­t,Ù»1ܘnU÷Ñ9¼¬èMžˆHRG7m5Ý|ÝÄ«E’¢ë07í‚ô’ÜÐM)º}‡$âˆG¨4‡¹ìx\DtSðIp#Ië¦F÷à›è&ß/0’á¢#Ê8›7HE[WiI¯$«œQRè¦Q’9—‹ªqÑO%> uÒ½#Fç•ÅnÚÅÊᢠ2ÆöÆeÝ›÷GnTy\FtÓÑ £ÆŒÑ £F7Œnû/Øh!ké£iIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qurl-fragment.png0000644000076500000240000000443512536324475022235 0ustar philstaff00000000000000‰PNG  IHDRA\^ ‘ó±PLTE"""333DDDUUUfffwww€ … ‰"‘"(“(3™3;;@Ÿ@C¡CO§OT©Td²di´ivºvˆˆˆ™™™ªªª»»»‰Ä‰‘É‘™Ì™£Ñ£ªÕª±Ø±»Ý»ÌÌÌÝÝÝÌæÌÑèÑÝîÝîîîî÷îww»DD¢»»ÝÌÌæÝÝîˆff³™™Ìîî÷""‘ˆˆÄÿÿÿ33™ªªÕUUªhh³¡]ˇ'IDATx^Ü™ërÛ: „û<¸ðz‘Ô÷°3”äâбöØ©§Å3`ù&´£íáC†ì_ŠÏ{Zµ5—Þiˆük~´¶ŠÐ›äD‚ìSáTWÎz‰ô0N6æ×”÷$o4¤¬‘VIʉHÿO[ë(‰ y02{È>Id+úbºtèéJÏ Çü[å†ê¯T´5¢==OÆnçjˆD%A}´Æ<!ûhÈ«ñ¥Ãú´9óCʕ㪵$ èMž²æ¨+É$­¾ÿXÑo (Ù¿Az"úSÉÐXÜë=‡ItGPÚdsç5ÌÚ#ß'Jä³ýIŨfDg+%¢Ÿ— ¶n"ÑÝJx«”ëV¸Ä¼ï¤U¢Ë$”¿’'ŠõÆðDº_Ï™ypè4ÆcgPd·ŽëÚ†N—cm€rŸŒXå[ÐØi÷qŒR¦HkEOçlÏðqá²éWcA‚bZ¤$Me¯EÂÒÃÝ'J¥†¨jRÝ8¥¢˜Ç'%þ¼L€ X’j ½>m¼Úw¶ä›Û¤ïD^Ö–Mã†òºi¨ÉV$i ΙypHRŠí˜¢NF ½AWcm ûF§>N*B:vê>vÄHl¸Bª«ðŠž:A7Om äšO¡âXP’ ~ ˆéT9¿Å„{c»³³Ý$­a¶Õn¨ ~’Ü-ùй×K>_,ÊuÉ­u˜2£¼nëA§°žÞÇsf=ÙyP”éaÿbÌ£Q9þÂø¶9v26¶eY‡¶@FÚl|ÃX@RÚ8Á;i[&Ñ­À±– Ò{BV¥5ß Õe’ŒaLÕØN„:@`\åæ’Až™ÆzxŸ«À9$¨¬@ШÈ(t5f°å5†Ô‚ “4Ú0‚Vd£IŒ¢Ü!®|®ÕÛ¦–¾@æ9·º„®i–Œ¡Žˆ§¤~”©03 ä5Q¬7!ÏqOA¨Hn½‘ *57 È: å˜T]kS‚¬^æk‚,Ry… Æ CÒ×Ù²¶âJ™%ch¡3Ò=AyÙܾA(OëMÂs G‚P‘è»Â^ã;iÑ ‚À†'‘ÀÅÍ ²–Ô÷0Aˆ…[„†‹Œ¢+¢Ód ÏÙ’ñKÛÕ-†òD±Þ„ <Ç£'Q=;¾N†§ØÙ`":  ç™eFÕk®Ì‚ü9‚J>V‚Ïb×4´5ÇçIu»¹›<¼“6k‰‘ “g&¡žu‚ðž PäN ›§W R7žäÖ°SGF`C’õ›¤½ÞQâ‚rÈוzð‰ÄÅ·–ãÒà³Øä™j¾µ%¬ó¤3Ÿ_»P÷%w²s[|ÿN¦P€ ·›†zÖ ‚sfÞ<Aƒ¢F»†-2xºóœ bV :yv­ya²{Éq»ok­¬^_žD{9!{¤çÅÚ9è)!j»ODײÇÜà³Øä™ê\åóŒª5‚Șxqbõ†D¥Øt°µº%jsÉL!âô¦D]Uc[ýìD"‚ˆþò„ÛTZ­à»IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qurl-ftppath.png0000644000076500000240000000366612536324475022105 0ustar philstaff00000000000000‰PNG  IHDRâ[˜…v˜®PLTE"""333DDDUUUfffwww … ˆŽ$’$)”)2™28›8C¡CI¤IUªU\®\f³fjµjv»vˆˆˆ™™™ªªª»»»‚Á‚ˆÄˆ™Ì™£Ñ£«Õ«±Ø±»Ý»ÌÌÌÝÝÝÀàÀÌæÌÞîÞîîîî÷îww»DD¢»»ÝÌÌæÝÝîff³™™Ìˆîî÷""‘33™ÿÿÿUUªˆˆÄªªÕõ÷’ÃIDATx^Ü™ënã: „÷yHê~±ýþ/v"YYyÒzí.šEù£C蛡 ÒæWýrI‚懕¤û‡ÞïüëÛ˜ ù uk©o¸ Köš‰_z’ÙÑ [ްQÜ·–Ù.\À­ ±˜Ùœº_ó$A®8׈m$ÙhЮ¸KÁB£8å}Gyæ%Ë—1¸á窤špè^if["¾â\#^]Õ WÜ8h§¼o+þë“»¡Iîž |ÈMÒç1ѽHR´ÐtÜOˆ7<×ÄC_ø¾s؈sò¨´7AF#D6³“0ëÍ„»Äó ³3­¡GÙýѼ®KÙ¥>ð;“ˆé5q¯•ÈzßëJÈ‹|ZjR²D²¿&OMC´½ºÛϬ¾ÎJ(¥f5€q›-m¤ó4áù÷¤nD¦ûœMŒˆ‰sæG™½ <¡¼F'²f_GòU«ffÂ}ÌÃrÙ‹¬±h =âX¨ o«Y¸ \(ÛË"νä±ki#_rƒo‘Lµ>®3|^jV²ÄÔ_cÚ57ÎD%¸ “Idã°ÕI ¤Ôì@+)œ½ølŸ¶%^2{Y£Ý• QvÄd'çoÔºPúe ÁèØs…Fqg¼¹¨¤î5v¾+iÿ¡Õ¯Prªµ¥ÂK à>R²˜(u®KMJc?}pì1ùh‡ß{Þê¤{¨Y|£4¤`øIƒw% â8xý2fyŠ8oÅñæŠV?$ìkº›ð^òX‡JÀêªføX œcÄ|ÊÛ±H”`5‹óx`Äôœ(<Äqñ१jZ­N%Wh&Ü9OY‘örcŸ 'ÊáQ#F à@©T-Þª0bÉè#öûÈÆã! ΋Pš¤ÀìåˆNqœG¬¯a±‡Fqy’i”?DœÊbú"ž n¾44T_FÌœcÄ:‚›°ÄC6“F¬fïF,ÇÙŸF<»5¥bI†FqWy6$m¦7j¿|øF<ÀR¬Z´ŽÆd€÷¥Ð9F¼*b>dlø|Pš¤Àìåˆ5¿BÇiÄyg‚OÔð¿KŒøœ·-cq½¨š·ÌŒý± N¥æQò-1_è×¥@iu㌎z ‡¼f6)MR`özÄ6›ýŽâxqn‚–\ã¹bkM®TøD _@`Äç¼Â6&®ýá¢ᎇm/$Š#F,ˆ;J™ÜG>ºÆj€FHG¸.J¶]‚å0".c”àP4¾ÔYi’³ÀG\}&Ù\!Ò8¦ˆ9ì%Ï+`ÎÑIçm¹pp©ê'j{öK¬¸Oxø7˜á]×Ti€â–·#Nv,n‘ÑÄSÝ0ãPªâ¸+Š…w®Ks˜Ñn&HcD—ð&\)M)ÍJ(¥fçú´[ãiÃ}2ãïdßcW1–ˆÑ_ #I'Iì§_@\äÙÕT-Ûu±’H&ð´RæÿD™ð¸*¡¥Öâ!“š J§fµ¹Vn1\áÅ/ nò°ÞÂà QéüÐûÊD;™8X(;"ÿz¸ØWÍMÖx¸á%=ôž""ŽLœFLt9’Ÿw_é¿ví`·M £ðÅx`€86i]ƒ§IlLjÜm¥+õý_¬š`E‰ÔRº©5£sV?ëO@½uÓÄ?÷1ŠŸ˜ †˜Î|—Ë1Õ†Þn1Ä‘1AYÄC 1ÄC 1ÄC 1ÄSõUCo³™"¦²ÖÐ+杻©¼ÓÐ+ÖSÄT• »]9yPSõ¹è^OÓ‹>UÛ§çnnÇnn/úÖ±›ß¡û‡žëõñ|þ 1]vŸîê¹Ý×s+—ãÙa]TõüÖ›z~«íã ¯çÑå©Úl¿Ô«CÄ70A^•ÅýE#&¦®X~Ó¨‰i¹Ô¸‰©("'¦Õ*rbÚlnCLÄ1A 1ÄC 1ÄÄ1ALÓ"&ˆ b‚˜¬¸h‰ÉØÈ‰ILÄ1µV]fL3ŒO™¹îÖÊÂ:OÜçÆä.Xb2ÒŠ/õ®©¼mã‡U+6Ÿ —b±ƒö©äª{I{ÕÞHóî –|Ð!—,Tb2#ÞÈ ­Ùûíľ#6~bÂ%†Ø©ÏÊ^¯5ˆ[õ…L ñ8ܫ멱&•Ä."bˆ#"&³‘C<¨o/V3Éz¯1Ä­úrq*©j„Ä/U=I¢Wâ!‹ŒbI[giÔÔε‹d<¯eáú(ˆ!n¿§~™“¼‚¦"6 bˆuhmÓûí—=©:»÷uq\ €x¢›Ä1Yñ#ˆ búOFuö‚)Ý«IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qurl-mailtopath.png0000644000076500000240000000321712536324475022571 0ustar philstaff00000000000000‰PNG  IHDR‰\¬‡¹§¨PLTE"""333DDDUUUfffwww‚ … ˆ!!,•,0˜0;;D¢DUªUf³fh³hp·pw»w|¾|ˆˆˆ™™™ªªª»»»ˆÄˆ–Ë–£Ñ£ªÕª±Ø±»Ý»ÌÌÌÝÝÝÌæÌÝîÝîîîî÷îDD¢»»Ýww»ˆUUªÌÌæÝÝî™™Ì""‘ff³îî÷33™ÿÿÿªªÕˆˆÄEÍÆÏ¢IDATx^ìV nã0 ÜçðÐ}ØÿÿÙÊ–RJæ"NÝ  ”(ªœ!g<ã_õ{ÔO½”„gÿ-Äþ$AH†#Ú~rÑ7âýIé£Ã_kÿ’õæ’ñî$2å¹"¿ÖþC–O±ìù åÂû’ú}­dKþÖI0gŸ`?y·cš¹•ÿ£GHGu O£Õâ¨Ñ3$ªçÏÆ–q7Š„¤EÔ`[Ïu3Õc37”q½¿ÃŠþú!›´±¡“qRK‹}“w5\’´”Ša*!Ù૳ð‘D$•Ä ÁQ§‚Ͱ«>˜}4‡Gq7‰hAá\d¢ p[ÆÝ(’QS D» = `2L›¡jCãYË¡FwÁ±Å3 SxÚ¤4L6T2N—=Z¡˜mñ¾—$*ÛvnXÑÉÊÛ§S6ÔÏGjñÁt£uÅÙÐÛ4îV‘4«?|œqãòükÆ#Àp«¼+\*¹ÿ›7i bC’Pk¥––ÇÕûu¸$Ác0ºã¯%±§Ñ vx™’`iM8I‚hw«HHŠeü`§~ôDú•ð¬q©äö·zÔĆ€ÔZ©µe·‹wþ$‰Ì[™O$!ßÐŒãܽ¤µâS r˸EBÒ,2Ü+ IxÓÓO»ÆÕdF²I'!6Ä—^»¹˜½¿–D.ÖÕãøT¤ÒÑ=T8Ï£›¨wŠ„¤“ˆ<*¬I¸xΉ\³ñ 'IȦ'ITIB¯]j0õ=z1‰`ÿâéÄ»˜¾„Ñ*Wœëþ÷8»S$$%ÂcoÉyHx³YS¨$“§“lRI,6´¬Õå4fï¯%1ôüL‡;Ü“|A`ô€Wœ˜Ãé¸U$$Å‚‡×|I‚mÝZ“5N~±çM: ±!I¨µ½6»_Z9,Þ_KÂטlâ}ñØã8#Š?6CúÝ)¶êÆ$«Æ=Q$$Årãå8¿&‘K:umÀõŠKEòM«eC’Pk[!â6Zñls½G:‰AÄZ¹"5¦ Çç 8êDÊÕØM:±)'í¢ÿP¼Å2Z‚æÉ@^ÇÝ(’á _´Õ„½ºÑœp¼¼ ®Ã†3¨ó¦‹±¡o„Œ›¿†Ò2@‹we°'¡+åúZÍ/14Ó2-ïN®µ4ÎåÖè@=N+Ò$ÍòOFÈ …»õ.6Téq~Ÿ.]¼ÿn×vÜ„¡( _6nä“4epÜN §j7m¥óþ¯V]Mªt6“C3çßø®¬O @ñßi\*‘ºùo#½„þ&ø­ïw©K¿ùKh7 ¡ÍF‚ÝŠ£%\Ž $ \Ž” £%%.D F JÌ6J0JP‚Q‚GÌ#J´¸k“HÔ¸ûœDb9àåØq™DâSõ2î¶)$Zl—õþ±ݾßá¼ûöz|kìëå­J\¿C}_­G·z…K¼_~<8ÖU±Z¯Zou_ÞâÙŽaóþËÝ×jsà)›É{¨Š˜>J`S¬1‡(Ñ{JÌ¢c1Pb %(A JP‚” %(A JP‚” %(q»½ûÏ$%(Á(Á(á$Pb⌣Ä<ó&%(A ï¬1M„æ­y𽓅 P‰¾4¦ì(qíŒxÑr¥Èåïltu*á2Ñ®%ÄEô¹”ÀNòè4ÿ<¤Œˆ¥X\;JX]b&ÞìtâÎOKÔåÊQ"@s²Ã©æ™„‡–@‚ÀùFègry&ÒKP"1ÖM#A‰m'Vl¯(ÓHPÂC+%@r`: J,"€N2œ$¢F‚’ûà2i+6¿ÈÄö€,BŸT‚>;}O£[èd:ä".©%½kzur܈ H%f%(A J8s Œ”`”`¾€âäbÛ)IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qurl-querystring.png0000644000076500000240000000561312536324475023025 0ustar philstaff00000000000000‰PNG  IHDRh]ç—µŒ¢PLTE"""333DDDUUUfffwww „ ‰Ž"‘"3™38›8C¡CH£HP§PS©SZ¬Zm¶mvºvˆˆˆ™™™ªªª»»»ŠÄŠšÍšªÕª»Ý»ÌÌÌÝÝÝÌæÌÝîÝîîîî÷îDD¢ww»""‘33™ÌÌæÝÝ̻»Ýîî÷ˆff³ÿÿÿUUªˆˆÄªªÕhh³—Šr ¤IDATx^ì[[rÜ8 ÜË|¿$åþW[K⸗„†cÕ<7åþ°ƒ ÀŸ&ÿ”§ã¿øÅãÍGaüeðñÝ™~ñ»h6Eaü 8W”e ãô½Ï—O–ñ ™>Ñ".Afa¼ ÆûåQ}9Y”^‘ÜfrÌDåi¸c PÆ9¼>fâm‹f–¹í" ㇈Á ã]pD“zð ¨óóàlä½q&Ç<‡ò4` îËDEñ-fâOGßJ„ñCpÆ[AõlQÑÇ1Üûy¦ç.¦àdƒ_{Ã3Ûˆ·ÄôI D«²`tì$*í|¹…Õg‡iëClÓö­±þgª5S8Ш¡!PNKâPKÉAXw/ wlè¥(£Ö/£ƒW\áºE‹z2Û·Á¢ôå €šÅÄô‹†¢à¯Áä Ô,¹ÞI.”*ƒÑØ ‹v®\f9;xª‹´mk}ãDCçˤK2Æ"„<ñ–Ä¡–’ƒ°îZ4ôßè"àÕƒ³Q…³M£‡ FóttÓàéz¸„x‡h’ó\ £Dp§Vz}kÑf,Z+_®N‹X4(!´£‘S§˜\´{Ê•ƒÄTœêçhК %ZYÓ¨¡ +ŽP–À@KpÖý‹¦bóv6쟾ÂâÏÅΣb™æn(Kì~R+pA,ZC¢ÊxÇ™¢[ Õã‰Ûà(J:«ÌNi8y 7ñEC&PÒbÑ „ÐŒN¢¡˜htº\o®-ZL‹òý‰Ö'Jz#ä íÈÊ#hŒ´ÌaýxÑÔêb9 ƒ²¶¥Ä¬ ~ëxûãÄ)ÙRtZFE¡þÙ¤¶ÉÉÔ«ßìú‘“‹ÖЃ¨"^ŸIm'.Mk(mË!vÁQ”t*N±_²¾ùtÔ•^,šo¯i"±hPBh Fc'(&¦*—C€ÑRáT##­l p¢¡.øuÒ£†Š8,Ú±–’Cg/š_àMØ@;U"•²/½A~QšB¾°V!ØÛ'ÞtšCrq íyÍNoM¾Ós‰V‚ßûÂVòÜÒ£PÑÅ;Δªþœ4Õmp%Šeš\a>ÈÛŒà=Uõp¯6 ~ò­Nc´ß¨]j”Z‚ÑÈ Š‰)€F§ÊÅ¢‰A*¦K“V¶øyC9P☠*Bà¨Õh)9ÀjŠE;€÷æÈXÉ·hôö¡'¶³a‘·Aô`Hzâg2ÿèa(J8y.7!œÆ™àtB ÁH:ƒFçË…Æb&–iÑšûjë­ •G§µXùÿhä?õãÄ’ÞË?Nl’}M&ànFäŸ\§ˆ´ïjè ʽÑ<«ÌìÏ&+Œ×ôžƒqQÌLÉ=/Óy€ÑýŠÝ_®!¢”ȉ´ïkèùr_¸hÌo)üóé1óçÈн Üè7X‘öÓç åþÛÎè4ŽC}NpjÚe Ó8 ̼ÿÿ¹];‹J³ JÒä ÅðLƒ*]µJ*týЬB 8½hÁ³ ºàöY žÑM¡ÐB#4¡Ð 4B¡@h„B#4¡„Fh 4Bö'…î®°¿U¼^­°¿Q<®üŠþúÉ Ú~åЀããõI·íùp{\ûbðr{s¼;]îát¹»Ç_Z¼<=|ÏŸðpÿ÷áI3ÑU¿žþù¦Ðîïoî_U_O‡Ûï ídzêŸP;nî^ù/X«NûÕo1ðzuõBhk®¯tm„\ï muÀñHh¡}#€ÐB#4€ÐBû~¡„Fh¡„¡„¡§[ €èg@h pm €u„¶:@l[Çme ´s„øÁZ—‚S .jæ|>DgíWe«ÁÍʱHÎæ_VUï¤s¡íŒZÖÎÚݬÅ4X;©ó[ ØIÖí¤]›ˑÂ&̓Ɉè,ƒf½Ôv¢‘¬WU›®î\ÉɸÌC;»ÁÐ/&¨Ž"g¡E1^5ôâJhÆæQ'Ió¨Ó…ËÓ4ˆ_òl;khf—4íJž“ôs>ÏöBÚ«ÓxÚn©'Š”|º–/{G]Ø<ÔÙÖÐÚÎZ‰*•C/1v› ¨dé<4#ZØ’Ì’V}ïØIÔÅ N-´±…&¾Úy¦-†„·TìYhblÑIhí$•ÚªÙˆÜü!´ðZë¶'Ú9Z1·:ñåëMܱéË¡é¦C¡õç¡õÚ,ƒúÞј¤ÎÞŠýrhq“¡ÒÕZh³ØåMb6ºÚÍ¢/;­¢óõ‡Ÿ„ÖÎã70ÈXKhumóºô¤kù”U÷¶n×ù;óyhõ@¿ÉЀ ² Ó FT'1.LÖtV5¦àŒLB‹RãÒš“]š”.Ä߇D\˜ú†x#ÿqVÞ>½af›c˜ûò¯Ý´¶œ¾›;ÉlZ&â~Z=O7o44 nŒo÷žóI«Ð¾iÊçfrnœß'èÿHÞùeØph€ýŠYz½ˆµšyq„ö ZÄëE†RØl$í³MÒëeb'Æö"^7àì—6¹¤Jã`­‹ú¡ 4€Ðˆ®À¿6è„@‚NÜgIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qvboxlayout-with-5-children.png0000644000076500000240000000563612536324501024741 0ustar philstaff00000000000000‰PNG  IHDRaÁßÞMbKGDÿÿÿ ½§“ pHYs  šœtIMEÙ '2æ¡5B +IDATxÚí{pTÕÇ?»I6ï7$"I<3Ñ8”ƒ•„hðTTŠZQ@ñÅXÁ¡LGDëÆ¢XA…¨£$X”N…–:j ¤c‚HxdóÚ¼öô¼òØ]ÝÝœ ¿ÏÌ!÷n6»ç»çÜsÏÞ?Éê*…0 ¥ $AB AB$ A8 _GX_W'­åÁ!!® áØ±ãnß&-ë™3‰qM<°d‰´¬¬yᇃ0Ø[;zkÃX²«Õ*-ëµæZ6¼ù¿7Ï5ÑRJBp¥o/‡B°Z­XÛÚ¤eÀ™örlv¤Ú{ƒàLOP® A¡$7† åÅšµ~[žœÃã=Œ‘Ó™»b_Õ Î!ѱ:†#OlÖºoxú¦y¼oº‘?m+¦üؾ۽™'§×óêœÇùôD«Ç^Ë/Û\Bçpäþ­‰Ã¯?ÌŽ«ÞbÃï¯'5>£ßÀh’ÒîdåÜýüáÅ4(…ª)"sÌå¼üìýLGTx8¡1)ÜÿÑ4w>_KŸ=u —ŒeH|2Y}@Y£‡Þ Þ:5!ïc¸å¦$zô!ú²v~D…¥s2¾çwæ‰üý;uœk'³óÑE|ih¡|ã6XFá¾#üXòO$Ë× Ñ;‡#}zšªø×é. õíõ¸oèhÌ_SÝÜÑÝG±ð™LŒ~ K¿•D“…V¥P–È}û$3Ó/&Òß¿°üjf:վš÷¿\>;òÔÕÚF“Ua ¯1ÕØq¬c3E“é×ýÚTû ÐèqvÞÅŠ £°½f5DNã¡f… )jïø aRd eµ-¤…ö|i-u?ЖB”ŸB5)À€Á&0Û0”Â:‰-{ò¹:ÊÐó)}BÐëœàÇ ÙðÎÇå4õòQ¨ýn'jÚµÄû;ò\Ñ\ÞBy]«LQÛL$ÞµŠ©Ûïâ¾5…”Tš±´¶Òdþ‰}Ÿ½ÎÖÆ±táEtŽ»½ÌÚºö™â™Âß¶}ÃцVÚ+ÙõJ)YoPÞì™sœ÷^1Mà¡M¯±õ•çxèšÅì«l$ðü1¤eÏeÑÚ\iì8ñuwûîáÈvŸ‰‘w¿Â¼Õ’=¡ˆïB9å6V®›Cœ¯^ÑCKÙó, Éb‘µ'¨¯«#77×uKÙ²€' x´ŸÐ&ß'8wÉcuñ—:ʪ$'isõ—:òõ¦{{‚ÝÙQçÝ9³gKË:Aî–-®»ÛÂ6Áqœ¹ïÈàŒ.(­ë‹s‹å¾î|rÁ•kG‚„ !‚„ H‚ !H‚GqÐM¸EÌÍÝ,-ë997»^\¶üIiY'qPDÔ5@ÄA-z‚ÜwäU!èw±fþœŒá¡‡ô² ŸI‘ù\½XóäpšÆö#æ®@2'¯â‰ÝL ³é—Êz‚‹—-<'ös«»R¨†½<2)õÍ(¥°\Í¥Ã'²toJ)šË^cꤥ”4(TÓä-¿ž”„"cIÎz”-åϽv¼Ücî“À8®M¬!o- +§K>å§ú*¾Øs‚V¬Ôì-À<êZ›8¼n!ïŽXNáJªÊþÍúY¥¬~|§4ìEz‰ƒ}¸ÀÝ?3jV–Q¯êø~ë)FÎK¢&ÿ fk=‡>8ÊÐFÔXÆ{ï7’9¡FŒCIΚMDiåRhqõ‰YyP&ïÙ­mÿ¶‘È”+0•|JåéJv”†’3ëf"+ò©8y„m‚˜‘±ù_ž6`ìú]c@,~ ßSÛìÉ¡t0LQÏÛÿé?ìj.n\Æ §¨5™gÆ\N™ú€îÿ‚¢–dž‹õCµÙ†gÓ›­­X•gNì^ÿ[ôKP×WÍÆO6Q}~qQqdÅŸfóÖœL¼Ž„@ÀMj„•c–î«Ö¶Æ£XðÇÇàµçô˜)…2„16#â5%g&ÄÂè¬PJÿRJDöÓ. æÜ@Þ¶o9ni¥ÕREqÁf*ýÇî+Ñ“}ÚöÄܹӘ´T"ŒµLNÆGùúk†5rÕ¥‘ø(…ÂÄÈ»×0{Õb2Ç|AE[ ã¯Ìaå_—p¡¿~шƒnBÄAYÀÜ‚ˆƒÎ#â ˆ8èe=AÄA7!â ˆ88Àˆ8è…È Á‚ !H‚„ !‚„ H"â ›qPDÔ5@ÄA qPDÔ¢'È}G^ÂÀ\¬9"š?'cÜàõŽ‘ÍÕB”wˆ‚={‚‹—-Ü-ÒÇóc=Åî—ç“>¶—Š‚5EdŽ›ÁÇ…«ÉHŠ%áÊ(µ8PeÐSU8X{€W÷ŒféÖ½íQQ0ͲãYW|ÝëG¢¿½*ƒzV!Ô@ì>‘õØt>¿ˆß$…á{vEA&qÏ}Ó‰eXb0F{U=X…л*ª^ü²Îý~Q$÷UQ…ò‹d|„Íq{U ž«Bè]SÔ^äÀîýŒôQQ^*ZíT4{® áàûÃ^•AM«j!ö9;¢ÿ}=ŽÛ«2èá*„^4Ùž˜íì·ÝGo¿g¯Ê çªŠ8¨"Êžà–Dt5@ÄA/ë "º 5@ÄÁFÄA/Dn– AB$ A$ABÐÝ„ˆƒ â ˆ8¨"j€ˆƒ â =Aî;òªô¸X;« ê7)á—S¸ÏV<«/*oë .^¶ðDÅAùýU¬)"sÜLŠjlo»¯/ÑPƒŠƒ¾ÞóÙ²­"8‘hNðÍÆ{™ÿø.®zûJ"ö¾fÙŽÅäÄ·ÊH¬¿W Gn>1+ æs2ãÂÏÜ>…m{óÛ‡(KGÁwÛ«BGÁõy”7N#Ÿ¡K44A0]Ü@G/v†>…‚’¼^Î ÚQEprGAàÌ*‚ôQàŽ~DC™¢öò©éÏÞWvªÒËs´µ´ïíK4”)ª“üŒ*‚Í'‹9Ù¬ÿ[Ó¦â ÝÙ‘Ý*‚Fü›Êxçï•4Y›8Uºƒ—[Ça‹“3°s¶â`_òà™]¡ÿ*‚þ—ðÒÓÓȾwçÝe"rÔn_´œ‰ÿÛÔh¨Çp$â ›qPð·„ â óˆ8¨"zYOqÐMˆ8¨"0"z!rC°„ H‚ !H‚„ !‚†ˆ8è&DÔ5@ÄA qPDÔµè rß‘W… ×ÅÚ9Z‰P¯áÈ4¶ï-@w™Ð+ÅA‡o_ïÿQú!³Rïà“ê¶3Ž·ØÁ¼©‹ÙSëÁꂃºâ`/|H:¦ü—§Þ+§Ûi¦b˳”N_Àø=« þü<&VÐ%††ÙlñY6jlgï #åÁl^–/k¬í×2µÅ¼øf·ÏM"ÀƒÕ½¿âàÙaÛmܵ€Qw2?:ƒ•[+Ùz[,Õ…O±ó¼ûxì|_Tƒçª ®)ªƒa×c|‡qÍÃxfٟٟqùÏ"yÕT†Êê¹ê‚ Aã3CÒa†õ^*8ÅW-W³>5œY]0ÊOówáÄU‹ÙÑÙ Ëýs‚ødE¦›ïá¢@«Š8ØwØ]¹ïáèìǘH¸u!ã7¼É-³0uI‚ž«.øK‡#Ý„ˆƒ²€'¸%GÄA qÐËz‚ˆƒnBÄA qp€qÐ ‘‚%AB AB$ A8›ÿ­‹‚'ËfÁIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/qwebview-diagram.png0000644000076500000240000002151412536324523022673 0ustar philstaff00000000000000‰PNG  IHDR#Â!ŽÒ pHYsÄÄ•+tIMEØ 2%Ázµp"ëIDATxÚíýUåÀÏ@b仌h†h$Lq8uHhé¬bRŒÚEÈ #ñ…4eš&€¬/õm—ÄuX°¾léVŠZÊ€ˆ ˆ"”¢Ö…µk–˜4ì6MšþÄž×ç<ï÷Ü™ûvîý|òDçž{îyy.÷û9Ï÷yÎy‚+ÐñT @€ 2dÈ @€ 2€–‘A%„ß 2@€ A}d0óä0%,ß9õ°V¾ú'rYxf­\î>·Q+ÃçŸÒʾØl–Õ_¾(—wj噯^×Êè×{‚ 2èt d€ 0A.ƒ1 ~?Èt– 2@˜ d€ ¾Þ³óÒ;È ƒN72@È d€ 02@È d€ 02@ÈÄe÷7‡2@nd€ &@È`d€ AÅ2í‘® èÚÖ&@È ´2íÕ&f™ôÈ¢üݽ“´%iX·.ìêÞ[ ÂÐßjiÏœ ˜3ïFçïŸqSÜ´`~¨í³Ã^ÿRK› ƒRÊ`êâ@àqô/È–,êƒðìiú§l Õ%e šý[f„Û»z‹Ñ&Ø·`rôlÛ6´š Þþóqd€ Ê&ƒ¸M0y´Âr#ˆGzòâ^s¡ÖVðË@Î õŸºýêp—K~¨e‡æ¯¿64L²C‰ 2(Ÿ â |K_o hΈš]Ý£Q"_¨¬ÜH:¥2HZ ÷Þ.|з$|Ý×§ô<刖.NMðRØH˜µ_˜`Í@¾—®kÒè?¶¨;¬®]™ /¹&f½œ™àȲž èµ^&@È t2ˆCvžòx"ºêkF1=òDôq=ЛY&©Ë!éi?›ô ôïwU\õèÒ¤Ÿ`p[_øf÷6©Ç8Î …9¢´) É`øÀѶ†V¤m‚w†èÞ´>ÀÊ™Ùßaôð±¢.IÛ¯Þ· ÕÍÈ”NJˆ·¥tò¾¹? ü; îÒÂÜ+fÏðDòÇt);tã£S‚`F_ÚWüÃî8S$F õ/Ôñ]‘ÊdFÿCáåý‹¤ìÐЦëƒ`ÞqkàŽûÂw=5¿õæàš›CÌO04ËVÕÍÈ´³ ¤—q‡Á¨H %­Ña`ë9ˆV‹>od†,ƒ¸ß¸{ÚoÓÔÐÀºnÑC°ðÌâ0Ÿóí «îVe0p Œþ+zã¼ÒO°k^Ø»ü½±Í™æßÊ ÊÝpëá‘þ45ôì ç‰gëgd€ Ê™&rŒÿÑ»D¶g´WKEbÈÂýL¹?@!z7iÈ2ˆSC¹ ’±C“×?”åˆò‚LS#$9" © ò~‚—ç7/Y•4†Wo¼¸:±BýLpèòid€ Ê%O²ÙhHAY‡A¾04„´ç˜"‘š.ÝY&Ë ï1Žï*øn˜ºiáä±C;æ¦2ÈZî±Cqvè±ÇïYž¶Ò®‚¨÷ø–êid€ Ê'ƒd»“ž^mÈirG¤ÙÊú±z'çÑöNi¹‡`ºtgY4‚hÎà€tq<–ôÚYû‡®WsDQF(—A<Žè¾•žQ¤¡‚åóûƒé $}Å«ãÓô``ÅÚzš ƒÊ@Ü>&…ïtÌٗݨ¬HÂ\¨ß³6ßC9 –Á”ž½© Äð!åiû|;ÍùÈ£HŸReðT2~TõÁÊYI?ARÂQ÷§]ÇApÝ“Ï×ÕÈ”R•G¡åŽô´R²P{ …rŸAMdð­9bq” 2Ÿ;%ˆ¢a£Cúe™ ²è¿þ{ýÊ^¼P~gY|?Aš#Jƽv[¸ÎÜ×êkd€ J+ƒj)ѱÏ"-hd€ ÚAÎT`‚b&8ù—óÈ”_¢ÏÀìÀL€ A›È€6ÁDL€ 2ÀÈ L€ 2ÀÈtº 0ARÎýõ"2@*L L€ A‡ÊÈ&@È e€ 4 dÐq2À¦ 2è,`« .þí2@"Là22@"Là12@!Là72@í/LPÑÈ´¹ 0A|ó÷ËÈÔQP.2@€ A=k#´ˆÙÆðû@È d€ 2@È dÞ: ¨U@Ô)2dÈ @€ ÊË…­ƒÁÈÁ¦ízpë…V®™ZTMMN³VSÛš¯íQ!duåàˆëÆêèWÜÌ€Y » §Ù´ÊþM”:†#dµ¾lbXèˆä9ÍfÙ°‰­Ad€  5]„…¸µŸ·Œ…;bÉ‘NÙ¾­›JV?(víÞI¼æÈÈ åpÔfओò|ʹW%`*»q†Qyb»®Ó4o«ÿ\²qÍn•>]è+óÔ†K[Æ÷©ï±àQÜ;2@ÐÄKÔôGšý6£5â¿•8àKfHÛLÂEòBúˆkS®]»b¬–¤ˆªlëJê1<5ée[òšP¶›T…ç4µ;ÏÅ<~Û‰úÎKÛœ£A¢·òïÖ^EŽÊÿ] d-”$’¥«¸£‚;€ÄŒŒä/’íúL±\S ßòùQ>5÷m¶Àsðž$‘%˜K—àU~eÕןViŽT>*ÿw ´’ ,aBoÓûÚõÙO;ü’¢ÕØkß”q8ΘkD=5eä/ô(«º©Ð©I;Í?ãŽaf\OÒsšÆ [ÏÅšŽ©æ+3ŽÀuiîNÙk òQù¿ d€  ¥’D–kÁªº5“•Žˆ¡I#‹\üVç{8‰óRJfÄeó£(zjfÈ9sÛAšŸç4Õ·\çâMrúÊ<µQ]ûK«GUÅÞ‘2€ÖKU7Ê'ÚFØ·›Û(WdïFGêÇ·¦ú†'1¡õk9µ‚™”š%‰œçR0ã±4±$‘cµñ%‰Zna à÷5Î (ÁÈs-'wýˆÎM™}Š;%ô5•)ÖêæÌ·*Ÿš´Sy wŠÃÑ{ì9M÷ µ‘P,ã9/sGÎÞcûjö(–$ò}È@k'‰¤hPq,¥ÿ*Ö½©â# }kJ££æˆî é-ý4+œš9L¦òˆHÛ°RÿiʇÐ.•Ó1¾ó’މǯ:ÎB—ºU‹ç¶S+rTþï €ñK¬ú-tÂmÎeù6[í» l!(MvkB.๠í$vd€  ƒ]Põ¥¤r¯,‚¦ÇÿÖþ.[È +p|PuÈP€ ˆeT bµ ã{ÖAùghñœ—ô¸<:Ò‘áŒÚkÜœ¶=ÐÌ¿ÀºuӞǬµs|ô=áŒÚk‰ U);tœZÃ{;[¥øç ƒm-§‡ áŒÚk• U#9Ÿî?þT¾YV~×5…‹cK‹B^¤ÝÊ`Ùxøè*Ò6h–{Ügz3dP§àÅxGLPe«À~Ñ.e)üªâa×3…‹soªÀ¼7•'ð©Â ˜¥Ç3w MdÐpP?È ² 2È.aEPoy§¦q>.Íâ u¦È óÞTšÀ§ªÖQÝgéq2@È´BŽÈ5€q¡+ý¡cçÔ4Ŧ‘ѵTtÏ>U)±þ³ôx§ M„ î*T–º8Ÿ³KÍæ›šÆ7[Žý!üæE¸g~Ï>Õ¸ þ³ôx'† a€ ,j˜ÊšPןH­<ã8ŽŠ[=ÏÍ/œ‚I_˜ØÅæ½ñOà3á$QMgéñY d€ šŒ>¬ÔfzEŒŒ1ž„_yªœ+•fËÉð<ÁÒ˜Ëf Ç.fË1´b®ùa*Mà£GfÛÂFÍÒco2Ð,@Mu‚ *[¡ó"S£fé)2¿) d€ Z¥‰Ði±©q³ôè6°ÞíÈ > B0A!Tœ]¹ã[Cã&ï¬hÁ è‘2d€ :FÔ2@ø€ŠEÈÚ2@Ô&@„6j•@Ô)¡@ÈýñCéÀÈ2@õ‘Á̓Ô°|çÔÃZùþéŸÈeᙵr¹ûÜF­ ŸJ+?úb³YVù¢\6^Ü©•g¾z]+£_ï 2@È ÓM€ 2Àõ•&@&(… 2@˜ —Á˜2@È SL°óÒ;È ƒN72@ÈÔQ˜t¢ Jjd€ &@È`d€ &ËîoÕC˜t ÚÀÈ L€ 2ÀÈ ƒ"eÚ#]AÐ;µ}M€ A™e0Ú«ÍÍ2é‘Eù»{&iKÒ°n]ØÕ½· Èèß2C;Œo­»¿\&¨‡ 02h„ ¦.ôGÿ`ñ‚lÉ¢îÙA0{`šþ)ÛBu‰_Zƒ –A÷´ß¦ ‚ÁßNwqÓ‚ùå1ÁÛ>Ž A e· &VXn\Ñ/ÃôäŽæB­­à‘™ÜÖ'Ë ÀöÐBAÏöÒ˜ ƒRÊ ¾Àדø–ր挨éÐÕ=5 ò…Ê:ñǤS*ƒ½W‰÷î½]ôÈ2HóBûbë¬èî—úÕRÏÀÕîìoöÏ›®~ßJÉßz³ôá'ž­“ 2(£ ⧃<žˆ‚²X3Šé‘'¢ëÞÌ2I]IOC0gÞI^hï¼Ð W=º4Í e2È; b|{êHCCy›`ÇÜ ˜šû ztoZŸ¶ÆEb¸oej‚ÃK® _.IpdYO惚› æ2ÀÈ 2PB¼-¥“÷%ÈýáßIp—æ^1{„'â?fL—RC7>:%úú$ÌØ—wÏ_m·gí7³C+ÂfHׯ5ñßk¾—µ²²>Z²|$‘Á=˃àæ%«¤¼Ðª'¦Á-ÔÁÈ´¹ ¤—qêfT¤†’Öƒè0°õD«EŸC¿"95ÿ}m.ƒ¸Ã@j ]¯¦Š$퀙»ä~‚õQR(•ÁÈ,5/•Wo û®£µ7A ᇀ ’&rŒÿÑ»D¶g´WKEbÈÂ}š#²ÐÕ³÷aMz?ÁöÙÚg®)m ü`CO,†Y'AÚ2I!YiA"ƒÃKzìǣȠV&8tùtý&·dÐød³Ñ&‚²ƒ|ahi;ö1ERR(•¥Ÿ ’AÚ2PEm‚,)”Ë í$PewÇ2Øxqu{Œe dPJ$C€ÌØôôjCN“;&ÍVÖÝÐ;9tJ«=‘ ÄÝÅ}KÂþäÁùy^(’>Štÿ¨Ïa‡<|hÅ̼Çx¥ø[;”ö?»p †W7ÆÈ”Sâö1)|§c~̾„ìFeEæBu4Q4jèÔíWLje0%¿­,j¤·hÝÅqñšðò¾ÿÎE’ äáCC›Â–Ãõ·~1ï1r$Ǘ’ÖÍ n{ &@È ¬2¨ü8 -w¤§•’…ÚS(”û ‚xühÖ2èþÖ±X;ËÀ:v(Í eÌ»Cj $åÁÇnoÏzùñ°5 v?{×€r<×=ù|=L€ A™ePÍ#%Êð,Ò¨Ÿ ÿÕ ë'@È Ýdà|@E+›àåùâ®qÁP3Lpò/ç‘2h ˆ>³{ eÛ¡ d–­j’ 2h0S͸M€ 2ÀÈ L€ 2ÀÈtº 0ARÎýõ"2@*L L€ A‡ÊÈ&@È e€ 4 dÐq2À¦ 2è,`« .þí2@"Là22@"Là12@!Là72@í/LPÑÈ´¹ 0A|ó÷ËÈÔQP.2@€ Aýk#¬q³-á÷€ 2@È d€ 2@È d€ 2@2¶#› ÕÄÁ‘t¬ØàÖ ¥;xç¦&v25<˜šO¬eeÐV‚ ¨ÕvCÄLƒè·YÃß{ÃCp»ÒWe;§¦kôO§Ù È@chy~ïípØã;)‡#:¢Ñˆ 4ÆÉï=nÃç­£Eá EÉV·Ž¨ ¥=-PÛ'Jˆ1'†[ócqE"e[ѱ%Q4;‹l‰mw¶x (SÙ«3ŒJµ­l79¶ƒâÝø=ye±ÐwvÙ+eºNͺ»ŠÚRþeÙ*¡àÜ;2@Pó Ïô×—ýè¢5D¿D–"ùíñPY‡8mÉ#’$£×nÕkeí,’%öÝ;Úâ5 ½£ìG>£º”íŠ}ú.¼g'¯é©Lç©i5înèM†ü_–½ ˜º÷*Sc„-dN™×¦Ü¿õʆ1öbeZÌ—ç–ƒ)°SEwE޶p ¨a°bNÅXIZ ¿—½ßÙ9+Óyj®ýWþ—”oÒñ™fûfªHQ¶LÔ–ß¿ÞX÷5Ø­ºÂ¶QKjcÜÁȶ¢}wE¶p H!+ÿŒ;†™q=?×±UwvJ.ÆV™®S+ ñI"{%80½fªí3'l!˜h’Èr…WM¥íGlt¨ÁT]EIÙ/7 $‰Œ(jß]¡£­¢Ì%掎`my~.?;=ã¼v·žšM‹Å\`7ªT ¬Š½#dJU3R§PÚÅÖ…[Ç$‘úöx’D…kÀ±žëØk‘$*vvîÊôŒXšp’ȱÚ8’DU#l!¨y’( àJ¼žX’H–z][$‘Ò)«ì®pJ«h HaP^Ãí1wï±Ù{*eu´”Œûì*&‰Ü§féËöôÛ×´WB‘SOSÿG‚ 4#I¤&wüIð‚ii°áȈýʶvI"el£²»¢I¢¢5`Ž‘©<"Ò1¬Ô3¦R>›ƒî³+–$òš´8|[iY¾¦Ùm¸‡89Lþlt^UÞXAØBІW.ÕÞdGØBÐöXd€ :¬æÇUíÿÇqÛ12@Ô< BÕÈ€¨Dµ2 *QíD[NZ`?Íò<;ª Ámþ±óû!*QíMÆýdjïÍ`Èg²—‰ö8–»¢›wÞöGj4ý+ l•¨óV¹B¼¢ß8j>Ù¼™ªÂe¡G'Än»ynl§Ü|éÙã~+Ø€°E`¢Î[*:ùžš¯ÞÕª?TÇ5ÑŠ1ÙËëó(,›²M¡Sù&_ó™pæÓ5ŒÍÖhnŸ+î‰_üO;*2«Ï•j&ö±Wˆ3è·ÀŒh„-uÞÄVùû—ká^}¨òDeÇ2¾É^ÏjóÎicx犸 †sû\©0ñ‹ãapgõ©æPÎö<­¨ÉM‰:o%8d]8Šh¢<‘ÈÙÏàyŽg‘$‘çIꃣ'ô´ÌÎísÅý°Q£Ã ?±‚óÞ\×f]ÖFm†¸»Œ/GäJæ—Ü"beˆìCÆ÷€g/ªuÖ÷Ä)ÕLãS, ŽnŸ+þgzz$¶«ŠªõËsÕi¢v÷õƒ ªº8Ïg«3qåa¥R€)4Ù‹Ë,³¾x&NÇÑŒ}ÖhnŸ+žgz6Á=«O‡ê®Ü¯EÈ:IFl°¥¨•‡Çág«çJØ}¬I"÷Ž)t\§øÀ¼È7&<®ÑÜ>µHùj Š‰}ìâkµÂMD+d€ ZÃ å¹ ¸E‚W›|Éͳ!ƒ’ø€jA…›%¹¸e‚W;Ø 5îŠFu—u‚ ªÓ¶äæÆÿÎzŒQ=+ÒÕ' t¼ A[û€ AÈP·Èt¼ ¨ d€ ð‹ 2 N!d€ ¨d€ RÔ*õ € ¨S‚• € þ’¡t d€  ƒúÈ`æÉaJX¾sêa­|ÿôOä²ðÌZ¹Ü}n£V†Ï?¥•}±Ù,«¿|Q./îÔÊ3_½®•ѯ÷„ dÐé&hA`d€ md€ &@È`d€ &ËÎKï´” 02ÀM02@Èä2h‘Û2ÀM02@Èä28tù“¤ýß³Z9ñçÃÒ`d€ šcM. d€ ÚÙ»¿9$dà12@È M dð«óûµò›ÏÇä’¬ö±Ê… 2èh´‡ \2ÐLÐ`d€ šf!ƒ·.åݯŽieìO'“Õ.H dО2˜öHWôNí$˜2°š ƒÁh¯6Ú}Ò#‹òw÷LÒ–¤aݺ°«{ï8elSgμ2›@Èà§ÿ¶),kw>¡•õ»žNJ²ÚR‰çž{.üo­:–‘2ð•©‹=‚ÇÑ?X¼ [²¨{v̘¦ʶP]R½ fLo£6AXÞþóq! ê-L€ *· &VXnñ“Ãw÷š µ¶BU2¸ñÑ)š ÚÀB[>ûµ\¶}¾gÇß’K²Ú+§ßå­cûùé>d€ ê.ƒøßÕր挨éÐÕ=5 ò…Ê:ñǤS*ƒ¤å‘µ?ÂЯÉ@8`ðôýÓæ„×Ì‹nO6:»?1ÁKýjFiêÀ\ †‚ ÑЮyâí™»B¬œ%^/QMðìÂ|[×=ù|ML`•i‚]|[“ÁîO÷!dÐÄ!;Oy<]õ‹5£˜y"ú¸èÍ,“Ôåö Çdo%Ñ_–Ü e0ã¦$‡²Xi„2ÊÛ;æÊ>¸ã¾ø#÷­LZéËà†[Ç ‚ÃK® eñjf‚#ËzÂ7‡W§8ºâºÌ4)« ^ÿò]Y¡ 2h˜ ”oKéä} r@øwÜ¥…¹WÌžá 3M$÷Ä2Ðè닲CE2ÐL`É­Û&]×$Ù¡(ú‡-‘Š›³^Ù¡Ç£vÀðêDCÃA0°l­”Zûd¸±Û~4ËÁð;£míG‘®4eð Bªõg2ˆ£ÿów…ß¿®&°ÊÀ4Áîÿ< É`ÏÙ5‘&@ÅJøNÇü˜=»QY‘„¹P¿g-i.ˆ䮤5 ‚«·¤c‡„ Œû Vi2ˆ£ÿš0Óßç"É&ƒ›—È2è1e >¾”°i~°ðÇ6)« ö\8$Ë 42@ •AåÇQh¹#=­”,ÔžB¡Üg(CK§\5G,ŽD¢‡ ‘A¿åÎ2Er^H:îyw¨-ƒ{–+2HÊ2[IûàÞ¹Ê1ßðÔÖ‰›@“˲  dÐpTóH žEZ• dxL d L€ A3eà|@&— Nþ%ÂÌo— Þ:;6`d0ÁM–îLP½ „ ü&°ÊàÝÇ2hš hÔÐV˜&Ø{ñ=Moÿ~L–Á¸áW € 0AóM`ÊÀj‚}ÿõ,ƒÐš ø± ƒËh2p™@–Abd€ ÚD˜@“ÇBÂÈ´ƒ 0ARÎýõbz×.¼{î2@e•&&2ð›À*ƒß}x ƒ²ÊÈ&°ÊÀ4Áþ¯Ži2Øî2@e•&ÐL`ÊÀj‚C:)Ë 42@e•&0M ÉÀeY‰ 2(¥ 0ÕÿvIÈÀc!ad€ Ê'Là2ß.Œýá2@å&ð˜@ÈÀo« ÆN¼‡ A9d€ ü&°ÊÀ4Á‘ÿ>¥É Ô2@å&¨hSVÿúSY‘ 2(… 0A|ó÷˲ \&eš ƒ"2€rá7And€ Aûá7KïŸ? A œñÂ×oˆ²î£-aù‡ç—…å®ãk›UîþðgZYzbƒ\–Ÿ|L.œúùC§ž–Ë?þ§‘O6Ëeí§/ÈåÑ3[²áìvQþñìK??·K.OŸûÅ?ÿáu­lùì×rÙöùžd"{Q*Î^Yñ~« ¬28|ò}d€ ÚS˜Àj‚Oþç¼&ƒ£ŸDÈ =e€ \&Ðdš ƒö”&ð˜@–Abd€ ÚP˜Ào!ad€ ÚM˜ ¢ \2øð³‘2h`‚"&øý¥/L¼òd€ j#(Â'>ÿ dÐÑ2M€ A½ø8fiÌ꣛[­üìƒÑÊÆc/Êå‰ãÛåò̉ZÙ|òZyá£×ͲíÔ¯ä²ã“=Zyåô›ZÙýé>­ì9{@+ò\öòì•ÊS©åŒ¥Q¤rIL€ A'Êh&Hdðñg2è`Óaùà£ãÈÔKÏÅl;üZ‹”}ïßµ²ã½ÝrÙuä?äòÊûohåµ÷£•_}Ó,¿:ú¶\Þø`ŸV~sì­¼ul¿VöÿVÞýpL+át•Z‰ž?ª–pبVÂv€\B dP.Ĥ-ƒ÷7·BùÙÑçµ²áØ¹<~|»\žþp‡V6Ÿø…V^øè5³l;µ[.;>~C+¯|ò¦V~ùé>­¼qæ€VÞ:;¦•p {­˜m‚ðV2­„}r  2@õ9h&J+áDiüØA{ÊT5Q?6dP@¹àÇ€  dÈ @€ 2dÈ @€ 2€Rñÿ¬†×B÷ÊG·IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/rb-logo.png0000644000076500000240000000214312536324466021004 0ustar philstaff00000000000000‰PNG  IHDR üí£ pHYsÄÄ•+IDATH‰µ–KL\U‡ÿç̽3÷·f†™KC[^V„´eŠEM(6išZ«ibº0Æh\4Õnìª.¬†>RWÝ Ô¦$(”V-VÄPÌ¥8OæÁ<ï㸘QÑ*åöÛœÝ÷äææü!Ö!ɤwÂß=ì.3ißj´T2(i‡X$~a䬺 ˜ m#šº)W¢{Ø=ç‹h²´ÕU­¢õ„ _Xy¸z¼ÑòZm.Žß€à9H=€MP?9Ëì‘o'V.¸›Êuï½dÕÐxƒ@J”?¿õèçGáOÚJŸµDÐòIˆßÜL½m+Ñ_œtsg{ùÚgv¾ÿj‰šÊ42‡LÈÕQŸiß½ß4¼¶-Ø öòÚö›ÎtìãÃ×îzä¿î Œ9B½þÓ-ÖŠ|7øZAtlÁžFtÀbkE¾çt‹µgÜoçÃÿb)éâëÅ ­ŒBþNþز=ÓX@K¶2ú…rÝ—ƒÎxJʦ¡¸ØuÈŒÃç!eB{šäŸïj0‡bâÀoÀ¢Dz'ü¯T ¬Â_lËž&|!õ½\mè÷‹Á3¾¨7˜l©ÒCä2ÈAr"—[ªõž`rÖÅcŽUÏXu¢= ØÓD{ŠuتgÆøžöD«Š8$¹@˜Q, üŽ$we!7íŽbg Qb`A˜ €ÂÃë $ðjTÐeÑ º•³€èÒqôjLÀ‚Dh I( 5…‘` …’¢ (KáÖ&YMa¬ãè@$T‘•uy-¥çh\¬gù¥8¨Ëi³#Ôå¼?^l`pE!÷«sMÆ@W) «e\0åŒTr¸¾4ÛLÎ- ÀU,À½>·˜ò†Rõ¥Ù¸$Ý•ÇöO.CÖ1P™°«L„;vkr¹Ô¨-6°X…QG]þàôŠ+œÙ Ç+6Aö‡®`öÐôJGQ…€†½¹E:M÷°[âN{x[~¶EäNt¸¬zƶ'Òï†Â§š­v>ts2B W€®|B;]E Wnþççš‹ÒÏræÉ,·d½a35äúiž…‚~P×lÙ®®…‚þ癯o»Þl´ì3gþÜL!Ôñ|þ‘š¼³}üíY-1ÂŽw¨ÿç¦`Ç»Ätgh–ù´o«Ék¯5"”ù–ÿÚE’L®Ýõ\¿ïk«1v5˜µ²‚ŸAbH|c3bi†œb¨îê¨çÆÿÑú‚΃æõÛ ýgÙBFg‚—î¸;ÕMU…ÿ÷@˜9^v{€9ìaBíšr®}sÏ»Io´*Ëùûîí½ÞñTÔÛûÚŸjÝw(±$6 4ÛÞÒz*n¯Án_­IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/relationaltable.png0000644000076500000240000001026212536324522022577 0ustar philstaff00000000000000‰PNG  IHDRÉÍä{áPLTE€€ˆ  ˆ\ˆ`ˆdhh˜l˜l p t¨x¨x°„ÀŒÈ ˆˆÐ  $ $($((((((((˜(,((,˜0$00(00,000000˜04004˜84888888˜88 8<8@4@@<@@@@@@ @D@@D H@HHDHHHHHH HH¨HLHHL¨PDPPHPPLPPPPPP¨PTPPT¨XLXXPXXTXXXXXX¨X\X`\`````d``d°h`hhdhhhhhh°hlhhl¸plppppptpxtxxxxxx¸x|xx|À€t€€x€€|€€€€€„€€„Àˆ„ˆˆˆˆˆˆÀˆŒˆˆŒÈŒÈ””ȘŒ˜˜”˜˜˜˜˜˜È˜œ˜˜œÐ ˜  œ     ¤  ¤Ð¨¤¨¨¨¨¨¨Ð¨¬¨¨¬Ð¨¬Ø°¬°°°°°°Ø°´°°´Ø¸´¸¸¸¸¸¸Ø¸¼¸¸¼àÀ¼ÀÀÀÀÀÀàÀÄÀÈÈÈÈÈàÈÌÈÈÌàÈÌèÐÐÐÐÐèÐÔÐÐÔèØØØØØèØÜØØÜèØÜðàààààðàäààäðèèèèèðèìèèìððððððøðôððôøøøøøüxøüø0¸ø¨ð8PXÈøYcrhWIDATx^ìÀƒ@ú‡aÚÐÞž5Ôà±g6­mAžCNd¯±)ÁÆ`B|I1—Ԙ¶Pڊи”ÞZrHÿ@é©ä?-íOìd¤ôešÓblícV;»³Òåa?$ó.øI?x}Édâ¨'t»ÝÐétÚíìP8Zë±A“Éäp8ìõû}5BøG&ߞ̧\ñmŸ·–d’ÏV³œK&—¼½$“ÅíâE¡Ñç9KTд¡‹+þìõÇÚNDMÝ'ãµ&y~™OX˜œÃQYÁ‰^|“†zɤ”^–eA楚”ú/LÒï\­I^]½Z02 Hð “R 6!ZFzí3”2Â31Nh´I*‰·÷…Èš¬öÇå~Z“Qo6& ÀÈ0 “´&í 3&ÍÍh5Ú¤­U%DZ“ó=.rV¢Bwñþ“ŠñÆŽI¸ñL¢×5©)äMÕ¤}2*¾É é™äÓâìCÞ)MVEAè˜DÒ[]­IŠ9: …]3)s°'ç× 6ÛRÔ¤ÔÆ$ÕÌÉ–kòKþþf1f…JD¦üÜÕ‘k²vuE…¼¿4cLSL*¤x&1#côLžÎ˜¯^¾{Æ@$*µû¤³­»O2?2VSLÇ$Dúg×ï',\,f9LÕŸ]¡ ›´&Ñë]aÒ?»¦÷Iœ-¯Æ$¾ì\\¾.œ÷ÉÄÿ9»J ƒÁ }(„²,kùÐ^&ñeçɧ٘7I2¹0y|ΫÑô9o-Éä5ŒÆiR¦ÿ'7L2ÙÚn0ù‹=:4„ øMgiŒ ÒÂOR"‘™ßNœµ&<'јø}r½°Ôø†Í޵¦ Åa~ Av=X™„ ½R¡( ½XñbRZÊÒ•]4Ð2V„É`Š"ÄCÉïì+Œí#”H‘ &8Úó‡$äêååápNÂóIŠž®a3žŸ¤•´’VÒJZI+i%­¤•”ž§¤@’v’â$U@…J¦§¡+$ É7JN5æÁÑ®%Á|?ö'ÅI¶¢Â%MèD‹»þ@Q’/š§ƒÆ- t[ÅIšòLê®SK@QàTú—e''žÓ4[f´uÆZQ’4–kO£¼$[ç¬&=rÝ÷)@«:áIûÚ‹©gv"9õŠ“¤_]õ®ÜÞ™vÔ˜šžÛœšnºµ™9<Þ2Ã×l-¹ºhènTÏ­‡—EtêIRëÜ“lΖM Öœ/àèŒH¦N’tN²Ì+ÐÌêÁoË GlJBK·yöX?†±ŸÉeu²÷¨^1ö OoM’¾é#ì¹R™Ý´œü×$oõ͸a~=¼X“êá'\—iEOpŸ†¯À fSÒÏ òÚ'3ɯz÷Y—û>¹^“æÿ”¤r¤»9»¶½I¡’|<”®ÓIsS²WŸ0ln™±¨8fyv•ÀÕ tª^šŸäØ‹˳ë‡z’ìw Ú5³ûuJ£µd¬OOñ{€šà&PmJr8•xË L/täÕ@‚³’ÄR/ÇŒJNÃÝ¡ë¥ð#”¿Î©«µdÙþãÉ3£ä.vÔ£~•£¤•¼Q{G=.*ä'i%í-v#©`ð|%mVÒJþeŽm (ˆ*Õ6³˜ ¬ Œh‰Hÿ-pÅé9Bcjs’>ÙÉfßZZÇÂ0B™õ,$¹7"\(H….Fº)EFÇeŠ ]”±P\A.#÷"”R % !¼ÌüĹ7žÃéi§ iµ~ßîÉK}8œ4ô}­ßpÞ`ãá SrUz‰—%Y’%Y’3X’%Y’%Y’%9ƒ%9ƒ%é]H²$KÑ’$-IÙ,9®W*õq¡’äË;¿=¹, /Yžœ:ý8î;ÓB%[×,™Í]Õ}€ºŽ¤.»ÔÖþxÃŒVºÇ:HN*•“4Gɸ:qgºäM2‚±‡Y£bù!js7ÞbIç6ŸT¢ú9péÏã  Psž\l˜á„º:8ûäŸç(‰‡ƒÔ¸3µ"´{˜WôÚ¨~IâÓî«NºØFÉlq=Ïò¦ÀTbD@O@bmš‘@jéÀýäæ)‰ó ãΣ&:Î š£, q€ƒ¦"Ùæsò[÷ɹ•Ë|ÊiOꔫdºÿ°xg ìj ¾Öl"FU´®·ý‰çÎ]Ø“!t>åsN¶dJQ{“j¼¸'àpøû£C@ cÄ`ïÂK·Z²5Mï€Ïçd§>KÇM%™Ó³«NÎdPž’¸>Öw~–슮DØ¥³&ÒŸe|Ÿ$2$³¿”sNv­ê½|vMt„µ7ÌIãºm×ÇÐ)@T*'IÎ’ðõŸ%­!‘gy½Lr7ýïxhëß»6ØI–ìW± ’,IÞ7~ƒÎ,¹Ù°$K²$g°$K+ó.%YòçæM ÖÌÇéjýTüð9YŽdPô $I–¤bgVš$K¢Èy¿’,9[œàK²äüž$K²$K²$K²¤B 'É’,ÙÿUXön{QòÞ·wŽ£RÚT´d|êY;G_Ö¤ä ¶¿ÔïÞ€ä§ßßÖ©¡%áß%Ñ©¿’~{†hX+L2ô.çéÓÈ+çä=ÙKçdb•$©ÚLYÇI/€4°îÆ’VŒltŒn醕ls©®ØzIz-tºT~êyVõáf7‹2£uo«É+K’·‡%Iª6SÖqÒ àüG}kcÉÃÖ× FÇè˜nX©6—ꊭߓ RIº!²Q—ÊÏAGó¤S‘Qf´îm 9ô‡)ùèM –”Õf…P ÝàØXòébßg±ŽÑ-0âÊ6—?'%¤’´RÕW—R™¢¢ÌhÕÛ*Bòw›.Ì^ȃ÷ˆ²ö¤j3 ræòì: |#FféK¶¹TWl½¤.ј{’Vkf:ÊŒV½­ü%GŸéÓ_f›`è>¢$IÝf"@-rÜ“êÐ7chyOª6—_øÄsÜ‘’êÒUI3Zõ¶ò—¼¬Ø§Km‚+1AY’ºÍD€±8oDQccÉÚ0BxV“1¦¤înÉ6—ꊽ@rî^ÎÒøžô¥+’f´êmå/Ir´$(›¸IÝf"ÀX$¹<»~9Ú±Ü ”1¦¤înÉ6—ꊽ@óÀ•ß'å¥+’f´ìmå)Éï]cû•Þñ4ÈS’%¯k¯#Ù¯"OI–¤½Ç²%W{[,ÉoÐY’%Y20æÝJ²ä«ýÞ•%gwµJ’¤Âçwµþcïì~šöÂ8~¾¥^{kœ “¨#qΠ$ IQ.Ä%ê/j‰DÂàÈ’ˆKt¾ Ó8_Aüv8yÙ¡Ñ?ÑmàI¥†Âi©yž^õòÉ'Ÿ<'§ù>Íü+Ű.÷a”Õrg¾°uÈ-FsÒ%’[ëD’œô7Ir’H’“ä¤6ú…/?kÇ_Ëò“äd~,=Q@Ò]'ÉI®a£"“«<¬n“h$ÕñÕÕñÐ1ÏÍ›†J嬶$'_MœÝ3ß®j£€• «ýïÉÔ´®ç‡RW <ôçÃZzl:IN6 },›©MËÔ`5*$—š€¦%Àì €yÐKûÔI:»žHç3…r….`Ùäæk€§'KfÀk|ëdò¤R×öÂNrªU©¿\”KRd¨äßñ¨04AÒá$€Žªš¡Ÿ]E*ÂÞQ’%½ »?3s=j'Ù–[Yh‘IRd¨$;YHè¥ Àrg ’u’LMêúô00ѸPú¦#æìŽœ$í5Ž4z5'_*[çäÚ™$*{ºiïœl¾Ì—Ò! s‘/v;IªéÊÙU®ýÏçÏè3ù\b—NŠŽ¬©¸Ÿò†äÌ­–-$× ™$*{ºÉ;­Œ]—ÓI[G–‘±žd¬þñŸ$ JÍj92TŽt“ü{מv]N'm-×*-xãäè'WZe’Ü6CÅ\qÒš;µ·NŠŽzYµz=›“®fš·ÍP1?} 92»7Õt¬‰é:És™×¹+1;É«Ÿxñ®ÔL³#C%ÉI¹O•ä`ì çocIÑÑïid\'9ÐÈêœä“¨”»ûÑ¡’BÒ’\¬ k$ª(Ñ[*,ž«ÈÅéŽÇòÉjQš€HI"I$™§$‰$‘$’³F]1ëw’DRü©Ùß$‰¤ø{úb/ØTç ’”Õ$ƒÅêKñ°ØK'6Õù‰$eµ*àjîqEì¥[±ö†¤õ‹½;fi$ˆ8ºë+‚ÒRJ eŠÀu×XÜUv’ÆâHs )DAÁ""$,ƒ÷…Åɰ`‘Beçx¿f‡mR<†$°ûŸ­$¯ß+ü'ÕödœK—&Õ}È|I$Ó÷äaœK—ö$É|ªývséÒ¤:’Ùôörgg|â\º4©Ždm¿eH’$I’$I’$I’$I’$I’$‹¬%I9I’,úÕª_ä¾'IVö/ÙK’<††‹Í{'ñÈjYN÷Û³x§Ù’$Cï:\õÂF2Y-F«I¼ÓpI’Æa4O’ñÈjÙ]VñN£%I–y§L’µkQ&¢á’$ÃI1«®­u«ºdw™$É´¯Ó»Óñ{òyš›$ÉÛƒV÷´.YNÚíÉä™’$I’$I’$ÉÏŽ¤š')’")’$ER$E’$I’")’"IR$ER$I’$)’"I’$I‘I‘$)’")’$_Ù£c`ŽÎÞï NtôúB×Yü$¼ÅµGÇ4 ™ñï$²<´ù³p?)7©N“LŽ,9lwH‘;¹IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/rintersect.png0000644000076500000240000000033512536324512021616 0ustar philstaff00000000000000‰PNG  IHDRd0š“7& PLTEøÿÿÿzT¦IDAT8ËcX… 0Œ0™ ½‚A ]¦(°‚ Â@–Yæ3ˆ&T0w…À*¸"¸ ˜·0Lu!ˬ3ZC½@Ô"dG44l² Ø€¡¡!`-$¨5¡h1À­ E³Ÿ Ì¡hNÜ2äøw¸á kÜñƒ;Nq§~GæIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/roaming-states.png0000644000076500000240000002246712536324520022402 0ustar philstaff00000000000000‰PNG  IHDR9‡ í^ÆsRGB®ÎégAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<0PLTE$$$(((888@@@UUUqqqyyyºººÊÊÊÖÖÖæææÿÿÿ’ Ñ$yIDATxÚímpÇ™çaO:QÔÚ²¹?dU³(°ÑÄ݇­»Ýû¢BÍRÑ+rU‰wë^6\,LG¥QxÚäìÔ »•”KɽXÁ±äP– æÒ±,kT:¯êdë‹§Z£Òyuå:ïá„SdK+k68x¸ æ¹~z@bð6Ì™U˜žžæôÓýLÏt÷ã«úÛŸœ|S´|tOèï<,~ÿ׿yò™/üÇn £²JGùãÿ@¿¾7ÕítRé¨ÑTé×ÛG»]„Ê"~ãç‚Ðí2tNÖèÈ˿սÝ.Cçd΢¨Û¸Ëw»“%:…oè·ÔÃÝ.DÇd‰ÎÑh³d‰ÎþÊM%ÜíRtJVèÈ\UÄd·KÑ)Y¡s[¬ŠX[Ϥ'd…ÎëÕßíbtHVè쯎(pÝ.F‡dŽú›51_îv1:$ täXMT¿6ËèÔie~ÜíbtHVè¤j¢»]ŒÉœPõ—Ý.F‡dÎ/Åš¨ÿÑíbtHí¡³ÒíbtHè|žª‰ºÜíbtHí±Yn«¼¡5¾&êÝ.F‡dN~Ãþ–3é YéIÔôjû}"+½Ðš~C¾EÈ  Uçþ°?d…NÑêW“e‰Nõsä¾}€aí©ûó•›ÿb·KÑ)Y¢s7U±Ù¯wÊé¨oõ•¬½)þPÐmôí «tÔYþ-ÿa·ËÐ9Y¡r÷Èú¯â„Øí2tNVÇ~½vBûVÿ-ßí"tP–Ç ¾ú•4ùüÙ?á»]‚NÊ2øÙ?ø‚‡"ê_Y§Cº}ö–:ðx·Ï¾ÓréÉ¥c$—Ž‘\:FréÉ¥c$—Ž‘\:FréÉ¥c$—Ž‘\:FréÉ¥c$—Ž‘\:FréÉD·Ï¾Ó²E§ïUE']7Ñgú Ulš©`¼»h" g¨’NfSM‚ €øŸ."42R“ˆWtqrhÓXnD(0©†»]lKtâÔ$`!ç_M–‹£ ~p :M>XÔÅ›úy(½Ô˜Ž†g»]lKtfj°p*…­e:ÁÚ4y}¦ÍptrʾNj*ÌúN\<{mô“‘Cx<„¦’\6Œé—×¶¶®Fè1…ÍïïæÏ&9z`´êbs°âÊ ä8¸˜ž¨üvXâÕ)à ¼Ê6L'…!;•V†” 2”Á´F‡ƒEP†òGŽO…0.Féðà—9Xðrð¼0…íd_íBïÐáaiu²‡fã‰ÍÎzÉvI(l™}i( p¼8ˆé² È…‰½A:7XÖè$>>Mé¸l‚%ÍÁ„tØÅ÷Æ<†$Ë ¾ÙY?It éôÊxBG t–X–åg€aÙ1J'?À²âØP“æÎWÐYÒÑùy–ÒYZ§“ “k#…tŠ!ß± :«$¿½ôÀÞ¢ÃÃ¥äÚáA%(ÆDJGÙNö^I+!?|äŠ(ÓÉð\§µšEâ4:ò(©‡A¤#$ùP:dÒÆ‹Y<°·èp%gKÚ†¤0qAõS:ÄTI¤ôª.r m“Fa™_§CÒ†4ÜO’å)Ònͧ‘xE˜O ’ó)J'?ãBä‰#‡‘€ìv¹MÓñ!tŠÞ—|äÚÉ ÇÃùCã¼¼y†™™`x`_òÂ:" ‘ý,Ò9ö\4P8?¤øNoJgÙ{|3mwÖ¶œQ¢bCÂÍ=Ó\Ñw:Çiß"tÎìÕ9€{c<¼°8 …Ü¡pü»—'IÔ=öùwOðp`NMÄòËI(L\HäSÞøé9>ç@M,È/’Á›$/™Çc@>“Ô™I€OöÞƒ›"Vãž¡“hù ‰'½•ô1HŠå­Þö„¬Ñ üÕÖVÒÓ;Å ƒ=³2éIð­5övЛÐm=W³¼‘Så>ý2’ûäÔHîSw#¹tŒäÒ1’KÇH.#¹tŒäÒ1’KÇH.#¹tŒäÒ1’KÇH6èÜöx»}þ• :²Ç3ØíÓï°lÐQŸðôíÒ2%Ùiwæ=|·O¿Ã²Cçv¿7;¶èÈýÞìØ¢ÓÎ…wÔw[“èx:ŸþFûÎQú½¯·¢¯qN§#éÞ“m;:KË©ÒWLÇd.¼S^†Ç®úŒŽú},ÏÛÿ©MçÑgt^ÃOõG|{Σ¿èÜ*9¤S'Òm9¾¢óé¾óüŠØŽóè':ò—Äßí1\}D§r¸¶®þ¡£™«²Úa¸ú‡Îks•ÛêæmŸGßÐùëÿ©ê3i»çÑ/t>ýçuNöŸ‰6Ï£OèÈ¿S/6ÿ»6Ï£?èŸëÆßý7öΣ/è¨ßkTŠÿbÏp:òdh/àü°Ó qpˆDÆ™# ‡ü¥0 jÄËcp*× wÙ3\„NÞ{58?ì’˜…¤º~ÎÂüÙd¬¸ÜÔµQ ¥ó×î¾í.¤³–œ–å/p&…”€8ŒAžÓBa{–‡gÒ©g®Ê²e¸N²Î“¸oOº \ A€|cÀé]ÒÀ[€Á‘tꛫ²ì®u:8?L’8“BfÆ"ê¹*IPpz,ìÓà@:ÌUY6 ×:œÑ›I‡s2Éu£&´@v€<¬ÇÑil®Êj`¸ ‰ŠŒJßGïÖ¡ƒóÀ g %¸ÁC&@ cÀé]†18޹*«¾áªœB|ºÉIº×éàü0˜Iøª,çŸ ‰7ExöLsÒðé§08Ž‘¹*«¾áRý«}eDu´‚¹Âò"΃{éíèÎΧՙ# ²cqHƒÓ蛫²ª —ð_<ƒtîÏ}Â9QžMY>z….°1QA§9‹N3sUV¥áöz“¡p>({C,ø˜·v‹Ä¼»bh¦“¥T?{šNssUV…ábÄ‹å!œÖ¯xɹ‹ÁiþIAÞ¦juCÐR?)ö03æª,½áÆiþ#ù º=Œk÷ Òòà¤÷é¡ãž'Ñ»tnÇZÊó[ïÄß_¢C§ýûB¸€Æ† tÎjÉžðx¾Ð»tÌ·:¨üïnŒ”¸ZEGòÿ4NèøVW? tæ´dãž¿è]:¦-=q½ÕZ§CnìX²qƒ§5+ 0‰ÝÌš5À÷p»cönUydzNG \óâ'3.rkÛŠCK¥¤Q^o³hàáz†âúŽõŒ‹FÇÜ2ªònyD|ÇÉ†Ìø’©äˆÌ0½Uñ²„;ëƒÌžˆé˜0\OÔ®Õwá¾nƒÐ…¤8òö\x)¦úi͉_2Äà)[HÍÊã27È;‘NSÃeçÉ2¡ÃAöÂNÒ:ì¡tÆ¿«µ;¼d3Ìí_]á†ñY¡é43\vÞJ: rïíƒÂ6ga-¸$ÄEЮ)¹DdG¶;`d¸l¾I't6¿ïúNÒQ}<Àôùd,3ycêÒ‘·üÔ{5"f¦’N¥ÓÐpÙ…Aèìfô°Ä}˜†I8Îä¡=°6&‡ö.|v;·˜#PŒì?âT: —í<„N¸…äN¥SßpÙýÕ/tê.›0锺ææäX:u —ÝÁ;Ðãï$*Tm¸lü‚~¢Se¸ì„¾¢Sa¸Ú0àú‹ŽÞpµa°2ô²á²o®¨úŠÎ†ájƒ¹¢ê/:%ÃÕsEÕgt¨áj‹¹¢ê7:ÄpµÇ\Qõxíù¶ÇçßyîNÿÐYÛ¼úöSåÍa¡ÆC¯2Táµ7ZZW$ ‹qþ² Œ(Åú†ÎŨ:Æ#µ)ªÜÌJ«‹ÛNèL€~]–^£s듉٧îƒS…ƒõ&ÜeöÑp“°à]L/Bñ€´è+FJq·˜£°¸àåANÌ^‰9°¸Æ“D¼iLgž âBs»{—ÎRàÚ6`¯FÒcpŒ[ {i${u<…;”€à/l~‡'—LÎw&;õÞ <˜ö}«!1¾o%9§ûŸ?õ+Ä £IE¯&¹÷«¾UNqNv¼Õsrüò(H\Ø`–Æ8ÜãR³ü¤™×èáΟLìTšü¼‘Êqj€\3,0 Iõ0©W¹°D’—Ä&¨­®×1ö¬ùgOo¤£7EÚæ"僸éd¸öÒ!}ðúV¤Cârá86K‘Õk£¸2 i¬DïÇ œ6~` Aѯ[ЗN§øôÃö,¼ö¯¬äp:¸"f{í3 Óx\‚ÃéÐÕTÛ²à£l¢ÑgÓ)­ÄÛŽÅBû¯fm¬â܆…futÔ¹èQ¸wëh!z‡Ë§`a/ºr½'Êì‰^¡£[Üþ"Å::Šw2".³8þ0•dwöÄÃù :gŸ õýêñöW ÕÓÙŒc\cèc1œåå`6•¥€»¢î çÒ©ô<`Ûpéél§ã£•ÁÕ÷·Ka‰Ë&†XJ'ôJÅAÎ¥SåµÂ®áÒÓÑFç71ÌHa4“Ê&üëtîîî :+ÕOîîoQJ§@'rù“ »v@9Æ÷OjY¬œ°O]:ƒtl½€üA˜ÙMèD@&tæ¯ïêƒÊátäzõè5¾Mt6¤Éurìl2™QBçæÔÛ£EœÆ^=¥ÿ#Τ£Œ‰ubÕ¨Ð:ƒ¡#ðašúWBߤ_ŒøDXð]KKÌ^ýAޤ£¯AÙ-¶”O#:Cfr$†UH¶n¸ºAçm¥RÒJcÏ’Ö —žÎˆÙƒlÒé„>1"`Ùpu£Ú5©=V ×£¡ÓÈØ~)e‹¦úæª,«†««td®¶ †¾¹*Ë¢áêjÍʦàP;ò1QqÌ.àV!VÞ6KG³CGæaáð›jbæ0Àân±pn7\KãTÕvÌV]9j"‘)ÃEþW“°¯u:%sÿ¶5:85~Ú¯x…Dixf4όɛOïÄyóäò±«OÌl3†ËrZ§ýŒ[¥“¿²2‰ùŒåñ¡uWçhüðÚ¬LßìUÖ¿ûgD€7ø Èg@rAjV”ЉÒ'È)Úîd9¸(DAÑLæy˜Æ@k–„Ë´DìÑx§ÞR&lÒùKfñ¨?âËù¼¢â%C$u“[:(‚OHÒeÒ()Ífåw y)L·¶M:¨Ža tÄy>ÃɃ%:É é\äïÖ.˶Ƶa­¶O÷™Lø¶þÍ±ÄøâäÃ_ >XšfÈõ̤ס“^¥£0ÞdLf¼i-T†£”-L”“PFHíX†Œß"<ãMկ޶cý‰[f:¤+q¤bSYÿ(…%A Ôb@­‹Ú¬bºô±è1eV…Ê?Ô¶ç;ûy¼:g"ѽ'÷—o"6ìt9²IO¢þÓT‡=ý2c¸tæÊÒWönÐy¼Ýxš.½¹jPÒÒ·\àMÓ)u>«ä4:M W…¹jA}2º©‰ázÛâ@§>¡cl¸ªÌ•yõ #ÃÕÌ\5V#:cçD: WSsÕXëtîVÅë–">WçD: WssÕœNõ ºçÊ?7Öw6†Ëª¹ª¦SÈ÷ÿø”4Fá§rÒy ân‡Ó©o¸¬š+=ü?íM oº™Ü1Ål† %@>I§‹Ën b/M yN§žá²l®ôtȵ“ÅžøÀ;Ùò¦Ô|šÕzç|!€=ÄåXî ¼1×Ò©tj —usUE' Uña²‹?÷°^ù‹Û@.¥Þî@­á²a®ªèŒ³,CºUÙD‰>æ„7¢[Á/°ìi˜fO§ÊpÙ1WUt"³³³Õt2¾—ɵ#ûggçzƒN…á²e®ªè⟯¦±fᛩYk;˜ŽÞpÙ2W•tÄ §újéÈ[aXQ ç8ÅÛ tʆ˞¹ª sÃ/3¡p5›Þ±1.{AaB=qíl.›æª‚Nñ:Ü?‹s®ƒBúTEõôP¸’"5úÂg½AG3\vÍU–äl:ÔpÙ6WTýH‡®‡¶ÍU_ÒOËþ¬GÔÓ'é…†{N:ž|§=Ùü¬!‚?ÿw wñާÓñ•­~)ìtéˆ;]:¢ÁN—Žh°Ó¥#ìtéˆ;]:¢ÁN—Žh°Ó¥#ìtéˆ;]:¢ÁN—Žh°Ó¥#ìtéˆ;]:¢ÁN—Žh°Ó¥#ìt:ŽË¥c¤^¥s¯â¼J¢µlš¨W锽UÂçp.XÔ«tÊSp‚¥{mäÕX=Gç³{)õÒ¹r\8gà“qô“ï•éÌ„ÂIÖGjVÎâ!IðÐO·úU¦sŠ€åÄ’¥ t§.ãOû«%ô864kÁ%aÔaò Ä)žkþ*Ó‘61Lpéò¹5+`«Lé„]:ý««ÂÒõÀêêu\›Å¥SAG…µ­YG²1H惸¤…[³JtÀ+& SüÝ`~§:&>²½ZBÑYa†‰E_c¼L3œÊ$ˆE_mçÜtPhOBÁS§+Í€ýÕêª'éͧu¤qÞÙ‘¿Ò£t$¯~Kæò±Žü™¥£¤*6/ä;ógz”Î#ROÓqŸ+É¥c$—Ž‘\:FréÉ¥c$—Ž‘\:FréÉ¥ÓXÅÎûGïa:À?zÓ]÷ÞËt:ï½—éä:î½—étÞ?z/ÓÑ/[ÖuŠÎݯÿOOËúÉI#Mîý¡í¿þ'ÿâ÷þ°#tÖ<ž-öáÀ?0‘Ž|FsšI Kô Á¼Õ޳^È•üHbÈ&ð3ϲØÁ•X?IáC甜æaþÒat~€jˆ ÎmºCŠ‚aIÀOô‰tØ]aê4 K“4Agð†ãR§-‹y²‰¸ æé¨Ù‹¼¼µ0˱ ¯ø5“Ђ;­GA§H¯eÒ°M¨8·)Nº*è§Qêç=ÉÛ©ÓL,,=êõæthWÓ+àt Gˆ%9‚­2±)c8!‘ì˜&íÎN"5wZó0Y:ÇÐÑþYò ¨Ímš' Ã!ê“¶;#Ôi&–ê¶Ø”Ž#ÉM“Eœ”ßáKcÈ&H;ÌR#CŒï!!gFó0 ð¼£è¬h_oŒÎm’˜Ý€a ÝÀú©§¾tšI [*:×”Îm?ßÛu§AazCè:èêêªæarý0§Ð)W]ôÒ¹Mp?ÆPC‡:Í$…åµô_nJç2æú§ãp:ÐeR».Ó wä‚ñ•èËÒO~JÁ¤Ïi&>O9ˆNéA©ó÷qnÓë ÿmö Ž:ͼþ§s~ДÅîƒKïä8Ÿß|:  å™ç¼6é´pç^Ig¼ 5ÞbÎ'ÕW=vè€Î$Э2Þ‘ öjÖ¢Å2¾Ú„Že»‹¯z<‡ß5¡út l'M1¹#ÑûØ¢óºÅ2¨O4¡cþ¾¥J Ox<¿þuªOgôGÔ:V®6¥cùÚyýþvjV[¯«5KÙÕ¬UNXÌùpÿ t|¤³xƒGg÷m sÙä9W;¹.4k•ëß󸦉Xôû¼u:ÌÙS¼xok‰Î|ý÷i&鬘¤Sr7_.|S:u9˜X’Âô£åút†#{f¼|ñ9)-Õ_¸©Í÷;ÕtòÖ„NUàc .$5:Ÿ¡[Irk)@Ù¿äÆq¦G Ô§ã7u¬I:ÿ/]¹MnSñlÕU­4Xüù šŽt±Y?Kß#¾Í°“’ßDˆvðÓ̰ߥù—Ô©ÔqªÆ3›ÄB.aÌæå$ÉO‰ñUѹݬŸ?ÖýÎTJÝZÒ4¼¹¶“lãÕ’I]Rów‘€Ž®¤Ha!¤ƒ¤ËΤæwÊÛ ƒ#Â¥*:‹ÍŸ~ééIgÙ¯=A³’M@†“T×’I]Rî&蘓٧_•Õœž­S¤sK 1"…!#Õ¢ŠÎdS:Ú»Ž0,+¥Çiøï]HÞÅ—BÁ’Ÿ7Ýaæo1Wle´ðÑqO›ÐÉzÙÐþ!P*é¨ÍŸ ê¯ÊºtŽí~½ó¯ÒÊç¸%:kÏO¯Ó94;{¾†ÎßüÍd%(=ÆG:Y²üX³ªé˜4øHèTž9[,D‡itHyätäJ:+&Þgý_±’}¤ÑÁví¡îÔÒ1ÿн‚ÎêBqåßB8ÓtÔŠK™œ-"“PC%:ò ÌóQñN%IttÜ)œ—áe´èĬ„Bg‡·×Йl–k]:Å‘Ê]ºûÒnÖĵð.tE¬¤ƒ…BÇÒRˆÍ$n¸‚)¸‰QåWSÅ4¾z~×nž®“Fé ×Kþ%ËÅzÑ¥ñØá»skt*®8|ZŠ…xWÄë¸%@ñ\àJZÐsY4CGoµLÊl·¯ŠÎ'[øBôäo~sq¯å ùÝhäè$$ý¢ÌòPˆÎZ¢SeµÌGJ˜ £¶¼8­ÜÂŒ*:ó‡"©lh»g˜c_Ú ÓÏ'vÖd·5:Ò‹­âCÁÜØ¯»‰3~A´F‡Ô,ÒÔ‡³a‰Ù ¾CÌ´ õ*ÎÂ2?’5:pº•s‚ÒØÔ¨Ê–JKh¾ØJê :ÊàêûØÆ³ØÐì!tÂp‰\½Ë„NnÿêÊÑ•V·:rkƒUZfStäßiϧ­ù® “ßÄ0#•t–a :Y†a¦ªîØZ‘»r¢•³ÒÞ§˜Íý铿ñÜÿ óikèphTÕ'`Í—ÛêN(X¥¯¶0®xA+ir&À]³ãÄÕ¿heÐt ÒÆäVÑ! N–Ð! N.a½ÝÁû_Ì¥¼ÿGSÐ (|kàéæ3_øÚc¦§ Ô¡£úøcg“±*:ÅÍ«‘°äè½çÏÆ-ÓøÙ®ßþƒæ…xæ«—‚ùHÊ;Í363ÓÄ€çò¡=ød§ÙLÊù¼ Þs‹lúq3ÅY§ƒ3DšB7ÓÄÖŒë¶èqǶa~–qþ.£ü]:Fù»tŒòï:mf†"4О§óŒ™¡ ôt§éü$죶Î]…MIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/rsubtract.png0000644000076500000240000000034012536324512021441 0ustar philstaff00000000000000‰PNG  IHDRd0š“7& PLTEøÿÿÿzT¦’IDATx^å“A Ä ECïÐ}×9J—¥¹O[˜ÍÜ¢®‚§¬IIQÃàÀlÌFùùš|!~ªÞÈie¬É6iƒ%ሎ’ìÖIcAôÈU|ç„Ij¾Å“S Þ"çä¥6&âC›XÙ˜¾ vùŸÉ//õ}köÚϧ=SŸƒfv|Þšõ¹îòo_OeÒámÙÀIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/runion.png0000644000076500000240000000033512536324512020746 0ustar philstaff00000000000000‰PNG  IHDRd0š“7& PLTEøÿÿÿzT¦IDAT8ËåÓ1 `z.Á)ŒI·¾ûÔÁƒ¸‘žÒE %Áɤ¬ßð??aëp0YCضBje„2qN{)&¸ìåù9í$Â"µ–f3Üjy‚h\Ë2¤JÞ1š ðÑä3€f„ÿ–_nÚßÛ`×ý÷é¿i¿ƒîôûÖïè ×‡øÛ/!g‘xãp*"IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/rxor.png0000644000076500000240000000033612536324512020427 0ustar philstaff00000000000000‰PNG  IHDRd0š“7& PLTEøÿÿÿzT¦IDATx^å“1… †Ë!Ü{ ãøÆz<ˆá”bk°1\L` I?È_ÚÈO«7²@‰ ïdˆ ¢ [’ ç6·d=Aydž𕿄_MIjã5Ù™ ÄX“M2×]T¢2ù&*“UÈ%Z@Ö¾KÞ¼ÔöÍíµ?Së×;Öo®G­¯»üÛrt§´ÔT¶IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/simpleanchorlayout-example.png0000644000076500000240000003222712536324504025015 0ustar philstaff00000000000000‰PNG  IHDRØí­4^IDATxœbüÿÿÿ†Q0 FÁˆÿÿbhŒ‚Q0 ÿÿ-FÁ( ÿÿbÁ'ùïß?†ÿÿ30ÒË5£`Œªƒÿ LŒŒ LL¸ë}ÿÿbÄ5FðÿÿFÆÑ"`Œ‚áðåiÿÿÂÚ"øû÷/333Ãúõë6lØÄ ,,ÄðçÏš:rŒ‚Q@}ÀÂÂÂðöí;_†  `xÞFÿÿÂ(`¥Æ† ëZ'­`°´öa`ç`e`ùûa´…0 FÁÐÿÿ30331ðqþf蜺†™™™Á×ÇkËÿÿÂÚ5øöõ3ƒ—ƒ¸FÃçß™ Q0 FÁÿ˜˜˜þÿÿÍðîÞf†}»60prrc¨ÿÿÂÚ5øÿÿ?ƒ˜¨3ûŸØÙØF—Œ‚Q0tãÿ_ ¼<< L8ZõÿÿÂ9kðçÏFFVf¦Ñ‚`Œ‚! þ33üû÷§ ÿÿä™; à Cßsîe+ƒÓ¡¥ò¢Õ‹%ƒ…­Ÿñá¿JA!áma©(ˆÛeº¯_h¯ˆuî®éF!ù¬í‡JéÆo8^Ùç,5ÆÐ7™CÕhùm–*Ý!„°8%ÚC°ÿÿÔ™QŽ1 C_’6îU ÓšÐü¬ „V‹YŠìXίF À܈p"þW" ܸöÁiY˜Sì[ÒZnbq7$q<]è½cfdVZìÉ?õìkA}íhÌ|ãP˜x$c¬’æµÙcŠãr¥„“›>ÅóUHÜùc—…¿<Ò½¯^ÎIZýQ`KP«#Mö)íõ}lTDB‰‘µ˜ìš‹AËÃ0Ã\¾ÿüÃÜVG(ö;qÓ“u}’©0OØÞÊÑ>kpuÑ¢\Ì3OT“/ jÖË\wNé´O¨V „ÙçÀL1ST3ñ'¯8Ì|ÙT©vßFQñõf2ý€UÇÃý—ç¼½¾E9‚@Ž>©åyìu)î*ýÁ€0д¿ª¤z’ñMçëqŽÍ,ÍzÃÒA˜AfbðÃïó„WÄ¥ºT½Å¿qÎÎ%âæØ–´«¤|Ç"åÂ>1–òÌkIâçÇOú/êýϼ©ç&Ç1µÊZ‰ !Ž´MïnoZ<õº ûψú§­Š¤ÞÊŠ5=Ëéׂ.ñ,z´ŠÝÒ_ûõ7ÿÿÌ—»ŠA†¿êî™Ù„C5”qAðÐ5Q#CAÔÅÀÄK¶‘/à hd&²Šš*ˆ ‰NwU×µ»Ê ›YdU ·à„E:çü}õg#è7 !È»yÜ3QäŽ;ÈÃ;8z¸ab^²qå$k§WñÞ“ì_³ymÊÅ3+,éW¼ãòôrö,/ÊPIƒ±¥yžÓƈT¥J{Ú˜Èsu²ÒXïQÆS)GMO‘á°àóû§|ùôrjm 2~Ì=wïmñäñ:£  k‹¬=Æ5 v^¸JjÓ`]$Š"ÇǹS«<º}žû7§q† E‘£´£’ëRYjíH)‘eÍÕÚ!•CÛ¦GèÝyjc¢#—¶T}nµñ “[ÜÝJåBðàÖ'Ž$¾}ýÈÒxŒiA*µîê'µ§iZ 1¯toÒpœo˜Wñçv¦&Êb]`ö³fsý,W/­°ýâ£É2Bt¤cbßdÈöÛï\߸Áëç[$1b^ÖXµG*GÛF²lg¦:ñBÙçYm)+MìÉÎX¿«G«[¶tò[dÝ÷ø_ëÿÿÄ™ÛKÓ†Ÿßæœn]:‰Xæ©2x`N³&Q:„ÐTHë¢"B.2»„ ®¼ò›,JÓÂChæ K#§T8Mó05')ÚLÝrºÕ…uÝÕ÷|/¼ßû>ß®Œѯë÷ÿ« lo;ñõ‘q­½HCóë6bñîQüŸŽ ðý/‰àÿÿÌšIH”Çß7£3.e®é¸S~CŒ¤Q˜.Y*¢¸@‘R™9¤† ¥Y/]Z$2ŠQº˜†–FRv(Ó´’ÒÁe\’ÑÆ­qæÓ†A‡:Öáÿ¿Çãÿàÿx O+Ûí)…v»Œf½^ëÔÜ©¬FÚÇ®è4Ú:ÆP;­%ÐËÎÔD?QáZjjîcžU›d )9…ð±¤gb“—ѱ]ïIýûdeøÔÙ€ë7.^¹NtL¢<͙㻱˜Mh|=ÐKfÆÚÉÍ/¤£½s'ö¡ÕˆØl2:I¢¶ö õäŽÂÑ>„R°’ÉôxjÅ"eE)8‰“ÜŸBkË#&ßäëJá±îU^%>>c'òL/SæoDïØàÁ©Ógyý¦‡\C –Ady™Í’?a>4=®æryi alÝ(01>LI^{Âý)ÈÏáFÅ%¬S˜·Lüä ^åÌÏŠFi3â¢(+NÁdìäè‘LB6¹“—Êœe ¿•Þ>6‘“ÏÓº[("Ž*”JDay嘹,ãìäD}c ‘Q{ii~BéÉ8¬³#Øeˆðdùû(Îjé‰Ûø:ÒENjۜ/IÃ4ðî7]3Þè%?º^U!JBõZ´>ó\+¿Àâ’ÈØè09†\žÕÝDå("  QÀn·!i}HKMâsO3oô: #}Ï).)%Tçáä`LC}¨ÔêŸü ²„^Ò0;ÚÊPÿ{<=ÜÑKºÛªð÷v  û׌FÌMvãª)+JåKïK"#cðó1Áº`AÄî—UßÿüÿÿÄ›ËKTqÇ?sçªÓ8£i££“/Æ™æÂDRZÖ¢E‹6Bÿ@›v E-"Š EÃrÛb({Ú¾¦´" BK5³|4^ï;wîï×âIAm=p8Ëß9œó;œï—sþÑ\©Fâ*( )»ÑºŽ×@b In~9–¹†m gb0W0ô̸N~Q ¶-ÉP“\¿x’Óm;‹’áÝÄÈèk"‘A*Úh8p ;¡s¤¥‰¾¥áZªÂ|ýô PÂâÚÕ+øòêx:Çï÷ZÌL`èÉ#^ ¿ç‡YÀ—a CÇ‚åŶdSʦ½ý,ÂSÁ¼Yêé!)`%¦s´µ™®Þbv!Ós1òYÚ¿÷"¼{;ÁË1ƒ’â2ªKL™45Ö2?ù)Øûún’ÚÃî–3H!q+ n·Ã¤©*ªê¢ª¼”þ;l>ANN6Ës£tõ?¤®~'¿Á–ÍiT–8w¡ƒªm æeÒÓ}ã¯w£XI¶¥!…@Q4=A‚Åî2­mY„øž÷Ûœ;)\:ÝIª£ˆ™ßó¨~[AQ ¤lЖÎѵ§„ïZ!±í–íð£Z'’‚WÇ.rgz’çn!Ò«òna…• &ÆF=ZâÕü/_¿§çàíÙ_û®¯`& 4CÇ®;†JÂPB²}pB!°­žc5?ëâ…W:Š$ª›B6hiͲ·X& }|ß¶ÐvH¢ÆfŸÇqiO%‘R`èU+àÒµ™&F7§Î344̦ãðaq‰'g?[¡R9A½ú]7Pø÷œÙáîßââŸÿÿÌ™ÉKÔqÅ?¿å;›ã,:–Æ4$„äH%Hd¥ †”dTÚ¢ÞæP´Z.HêÖ¥C:DAiP‚VhXàŠ–ÍaÔÁ4™ßÌü:HF¯õþ‚oYû>äO¼ø?ꎎŤ23»HÛ£njª«XçùÊRÂJUy>/èêþ@Þ?wî½äÜ™4_®`lRf9ÙÁ/’0â4˸Ýnq PTYÒ ‡çñúQ°ûf‹UH&€³þZBa•GK¦ýyß1TUÁát׍Є*&³YÒBÅa·œž§§wœ–æz:{Bx7yyÖþ ‹ÕNi‘ÞþtdË&¢Ñ0½¯ïÒÚö=¡qòt Kš‚‹ÑÔXOmu÷¾Å d²²²H&HzUUHs:‰'‚<éâHùaŒŽŸL—…¹ô Ef&´Dnn.—Îû‰Ý|›X@•Wª£¤˜BXd‹IÅ ì(ªB2©‘î°s»Aÿ;>ëÀTè''ŽW`t)-ò!„@#™)ì/)àýGûŠF‘0ýÝ­x¶UÓÓ7NþvóÚF\®L2] w‘Ô–W›ߣáZþÿÿÌšÛKÓ†7wðІ“‰‡<&L4¬4( Jň,/‚®¼è¢›î2º)‰J¬ÔBÔ µÔÒÒýÜ©yÀ´åæh9(š¡éœæ48×E ¢kÿ‚ï»yß÷ù^¾ÁoˆØ> D;¦øp»A.“ ma`ÀB b™©‡ Rûp.·€À¨ã¨‚›œåjŽ–¸HO”>¬¯®•¥¥«ë-‘‘QTéÌ´¼ÈA.• “yòeÆÁµÜZ"Ônd® òó‹Pz;ùîœG*•âr­¡­¯#ýìÊŠ²ôľ‚Ãb)ÖŒ ÕâïÇÒ&÷‹*4£9˜Éƒâ§ ~üÀÞä4 µæFå³BS€©’˜„tL–ÂTß0÷ܺÞʪKÁøçY ó®03ï"éä%\[[ôÚZJï ö)+Ý(s‹ ÙÁæÆÚøapoSÁ4üÿÿÌ›¿kÅ?¹Mš¤m.—ÞÕ¤¹¤µ±5EÔ¿ÁÁA\ .Ž‚‹ƒ£èâ ˆà .âèâîÐU\Eú‹¤m~\ïÚ¤&æÇ%iîΡZ7ñÍ_xúUñÜáQ=*å¦}¨¿?d4$4¿yTÀé4Pâq’éyDA‚€ÀÞžmÁ &tôÔÜ_;ù¿ƒO âtÛ8ö –Ÿ?# ÿvõÿÿÌœ=ŠAEOýW¿7 ƒh¨èd¢+0AP1010w ™‹p®E0p 2¢28Ý]_—AÌ<ʼn§6Pnq“{¨ ‹àÚ­'üøùëR¬ûnˆjæ“#?âÊþwî=Z2Ö{œ (µÎ9Ò*¥$ŒV¸°%ç™E* …6”2H«øà8ú~ÌóÇ÷¹{ã˜/ßòôõGZJžŽ÷m<9MÐBܰtEÉ#1,]Sò„¬s8é@I ‘Š1ç#ÆX¤ 9Xk±n8å[ÿ‚P Bˆt,Ò> ¤´òŸgè}Á‹¥ µdjMpN(ά ôÞ)y¦µ•-Æ-¥VZMÀjh:?ìdÑd¡æï#Ú8DÆ(¦¹rsË«g|=ü»÷xðð W¯ßFjFiõϽÒê©ÕjñaXUm©hãÈy¦/Œuˆ,¤ùä¯w1îQjEZfØìQJ¥–„sç7g¹«³™OkµÃ¯È%O;µ&”<­¦è¹La]-jI—bn_OGkÃ8þfþöÿ"øÿÿÂ[ˆªø0¼ÿaÐ ÿ!kÊ!‘ÉÈÀÌÂÎÀÈðáÏŸ_ðâ½ÿˆf#„`dddøÿrÆVµŒ%ÊLŒÿþ2°1œ=²–AHŸAÝÀá÷ÏïÐ&ÔÈ&¸Y0>#lý”͸z¸Ü‘(f"¼Œ° ›¸Ì„,{ÆíN³ÐÂåT‹:$€ì_„þ1°°p2ܽ}Žáé½ó JjF ²Ê† ~ý$Â^Ô°Âê_¨½˜Iáf ÷£Å;ª>T÷3üGòZaw'ªÜÀHAðåó'†¯Ï÷ã,ÿÿ"¸éˆ‘5m*ÀÈoœ2220üûó‘e=>bÄ‹v´ÁLµ6+Ã_G¯†¿þ0üøþ™™…¯>d>>9ÂnÄCU‹Û\bì!FDœP8á“cbøÿ¶ƒ®¡=ïŸß~ýüÎÀ„ö¸íń܀îf ÷ãÄ#Þ-ÄÉ 8€Ö„œÿÿ"°²yênðF,G0Q |ýüމ‰vv [ÀÈÈðóçw†?¾Â Gý#´ÂÄרÿÿÂ[0C7T –i£a@0ZˆÒü‡WFh×*ÿÿ½Žàÿ?†Ÿ?ÿ0üøù›™÷£`Œ‚Á 3)ÿ~þü ÁÿÿÂÝ"`ådPfø÷‡‹a´6£`(‚ÿÿ!;Y_¿ãb¸ö‘ç ?ÿÿÂZüûÏÈÀÈ/Áj "ÎÅðóÏ?œg‚Q0 /ø÷ÿ?;+3Ãõ§ŸÊŸ]eø‹ã„.ÿÿÂÝ"øÿáÛ·_ Ÿ¾03ü-FÁ(’àßÿÿ ¿X™¾~ýÉðÿ/î»IÿÿÂ;XÈÄÙÚÉÄÄ8ZŒ‚Q0ôX?&Øi)8ÿÿíü‚Q0 ÿÿÂ¿Ž€øÿŸaô&´Q@KÀÊ:Ð.ÿÿ"» øÿŸAPptjqÐ 02|ü8ˆŽüÆÿÿ"« øÿŸƒƒáî]&†¥K9 gÅQÛi£`¤†üüŸ llÿGÓÿÿ"« ø÷ƒã?ÃýûL ÔvÓ(p•õ“} ]1üÿÿ¢¸kÀÊ )¹GÇ FµéÂŒòÿÿ¢x°ð÷ïÑAÃQ@@Ã=d£ ÿÿ>£`0ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ¢hÓÑ(À !—qÂî¦‡í¢ƒ]­÷ÿ?d;÷è¡£`0ÿÿ-¨`ž‰ ²óï_ÂêGuƒÿÿ-¨kz~~mmYYqqˆšÏŸÞ½c`¸r…áâED‹`´@ ÿÿ-¨`7vËÊ20øù10xz20()10ˆ‰10`ßWÿêÃýû Ó§30,^ )F ƒQ0Pÿÿ-¨˜™!]E‹ˆÓ#&Áææ ¡¡ ÉÉ /_" •Q0 è ÿÿ-¨XÐBóêU~ñ‚áËH/&ÆÀ`hÁ qoo†Í›\]>}¢¿»GÁ(ÿÿ-¨ØÙ!-ƒ©SÖ¬a`¸{R ×ðbb ÖÖ ==.Äïß ¦¦ íí YY¡ÆQ0 ¨ ÿÿ]G@ë×/^ÌÀ`lÌÀPPÀÀpäÃóçB€™rÈ+++¤UðêÃúõÀ­[ñ?"#!-…¿GÏëôÿÿ-¨`ÁäÉ —.AØLLˆuÿBj}ØA¯LLnĽ{Bãï_ˆ¸€C@Dÿèé½£€žÿÿ-¨`ŸR8`[0›^üû¢öȆ3gW{™šB.ùóg´0ôÿÿ-¨Ð3>##¤‰ÏÌ i cVV†?Ο‡¨ÿÿŸAC2†Ó? F=ÿÿ,¤2@_JLÌ ß“'ú÷oHáѣт`Ðÿÿ-¨±±Ašùff šš ¢¢Õ…˜êåä |Xëþn#ÿÿ-¨!™Z@€!!!;›AQ‘´ÑX·b´ ôÿÿ-¨`«UU.d`°´¤Ì<¦Ñ‘›Q@gÿÿ-(LLB@D„aÉHWà×/H­þïÃ… @={ÆÀðõ+ÃÏŸ9VVȸ@RCb"„¾:qŒzÿÿMvX— #Rüø¸qƒ!'‡áàAÂÄ::BèÑ=£` ÿÿ-(LLYHFfaa`xýš!"²Í6òkî#ÏÀ–‹‹ÓÝé£` ÿÿ-(°L-+ËÀ £i°°00ìÚYaÈÌŒ˜E@ß^ [qÈÎÎÀ /ÿÿMzT\\îÀïßþ£G6~€ ÀN3’’‚ìO€-=£` ÿÿMzTè ðÈzþÿg`ðõe`”DL2 FÁ@ÿÿMzXfÿú•áûwÄ~##ûß?Ôu°3 YY!ÝUU†êjLu£`Ðÿÿ-¨?f`¸|’Éÿ†l/މdö¿»  ™þ÷o†eË û F[£` ÿÿM‚XMþáúu¨û ¦Ne`hh``PW‡¨ûó"®¦ÆÀ›ËÀ°{7ƒ‰ ¤%ñêBß(ÿÿ5 üÿ)¦N…ZjoÉôìì õõ ))J`‹ŒÄÅ!³ 00}:ädãÊJH¡ÀÉ9Z ŒúÿÿmP`Ó‚_¾00DG30ìÜ éÀšûÒÒšßÊ Bà /_¦Mc`(.†ll#ÐÙØ üQ0 è ÿÿmPÀ¦þž>e`ðña`HKƒÌCvÂÀ·o ·o30œ<ÉÀ°z5Þ=ñ]» ËŽÿ† $Þ¹ƒ0wŒzÿÿ-¨þýƒtþüÔôóæA¶óó#f¾~…¬:|ñ¢¶ yÿ~Æfæ(ôÿÿ-¨`ãÌÌ=·naW‡|–!â€m8 F½ÿÿ-¨ þÿGœ7ˆ|ù)LF#×ö°iÆQ0  ÿÿ-h`G•‚Q0ÿÿ5£`0ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ¢hòÝ~£s检ڀñ?#333Ãhâ"þ1ücøOA8ÿÿ"» €­«]7 hþpüdøÊø•á?ÃßÑ{ ñ¶ÿl L ä7ðÿÿ"« €ÿ,,þÀ壀à?óÖ¿ 'y1hŠc`üÇÌðŸi4a, , þ0lüº‘Áå· Ã{Æ÷ Ì ¤Ÿ{ÿÿìÔ; ÑM*Ü ÷Ì ˆüЄž€«nÖU0b”R=ßw4é(„‘i8~ý AX,w¡Üÿÿì×Á CÑwî?!@¢CàÉðfh“¶t "À½7[{+1öX&•ƒþ+!’Ĩõðÿÿ¢x°pô®¾Q@ Àòó˜øQ@;ÿÿ>£`0ÿÿ-FÁ( ÿÿ-FÁ( ÿÿíá‚QÈ㑌 LË9ÿÿ-FÁ(€@Åg200Ä100t200H0 É–ÿÿ-FÁ(Àxv1@jû_P1XW€uÍ+Ã"†{ kĆ\ËÿÿìÔ1 À À[`Æg“.x«‚5ÀR, ŸZhB‰¸ÅÞÚ¶Ÿ<8EI„p¡ãECEÁ@ÆÃR|&ÿÿmŒ‚Q€ <‡bV†é Éhò ¦ Á !Pµ, k–000Ä0 ©.ÿÿ"Σ€Î¶%¹žRüa@&ü³d``XÈÉð°eÉ Ÿ -ƒ!2­ÿÿ-FÁ(@, L­ÇÀÀ e3A1¬ÙÏU÷‡Á…!’1Àx“a'TíÙ³ÿÿ-FÁ(ÀB »ñ5ñaS†)P>+dÌ`/’üÿÿ"Σ€Žà7ƒq£ÿŒ êPü*v•Ò=€ƒÿÿ-FÁ(ÀÄ ›ÐÙ…°BB˜A IìÃK(ÿÿ-FÁ(À$·`㬠RP1†7 _¡ü!Pÿÿ-FÁ(ÀØ - „»°½£`0ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿÝ}8 F‘võ!¶~ŒHôP¼ ÿÿ-FÁ(Àþ1 2öpn>ÿÿìÜ¡ €0EÑã(‚F#»¿!é]¡¢–4©¨@1@“†x¹êÅ„ð£ûÎ~dT¼Ø°ãÄ… ‡Y«”Áÿÿ-FÁ(Àþ1@  ³f@Ù„Îÿ`d``p```ØÇ)H†Jÿÿ*nÖ8ÌÀÀÉÀÀp•½ÿ -…¡ÿÿ-FÁ(@°–Àn†H—€rl8ƒƒƒ”ÿ…á!Æ nÃO:»™ÿÿ-FÁ(€ØÀà=†8ÔBÀƒ¡‡2€ üb``ØÎÀÀp ÊJƒ‹ÿÿ-FÁ(@Œ e ñHæe``XÈÀÀÀÉ€˜>ü¤†Ùü¡˜ahÿÿ-FÁ(```øÃÉøG¶1@2ö_5È`!'¤ÅÀÄ€&¶Ö€Œ«ÿÿJ…Ö(4¾3@j÷ÿ Ö¤P &³01 ½B€ÿÿ-FÁˆÿ ­/ §¡b¿ÄœOÿÿ-FÁ(€‚ 7 Mÿ &  ÃU!ÿÿîþ£€ €ÕøŸ^1 É300p0@ºCe… ¹ÿÿ-FÁ(€‚PVðAéàzÿÿ-FÁ(€ä)A†¡³<˜ÿÿ-FÁ(€XƇµ¾CéáÞ-````ÿÿ-FÁˆ°ŒÎÍ€íxÅ€Xr<Üÿÿ-FÁ(€ÈVbØ ì×Þ3 f†3ÿÿ-FÁˆŒ ñ1=¨d#Ñܧ 'ÿÿ-FÁˆŒ %ÆL Ž ˆ‚áÃtÒŽƒéjÿÿ-FÁ(`@ †100(3 †% ë¡ì¿PqäÖ¬µð—2¶0TÿÿŠn£€ê¶ÉH¡œ’¹a™?…²™R`ÀÆ `…#TŽ•rÁ}¨™C©;ÿÿìÛ± €0„áâ‚ViSˆ…ó8Ždšà‚E8ƒðþæºëîï.E$A1¾¡ù‰.ܦ$–ÈŽ+öè{ü‡ÿÿIk&FÁ( `ãÓ Mý¥PqØxÁ"ÈéD¼ ‚à7diò†·Pµött/µÿÿ-FÁ(@°‚€ƒ2> Ã©éŸBå¿200\'`Æ;š¹Žvÿÿ-FÁ(@°Â€‘¡‚ÒÜ_É9Îü ÃK4õÌ ±)ÈF%W$s† ÿÿ-FÁ(À`™ø/ƒ:C¤5ðŒÒøÉ€8‰ˆƒr)ƒ0dÐah­Hÿÿ-FÁ(À`ˆÿ KU‰Ðƒ|1ÊPÿÿ-FÁ( ˜ ýàRd€|÷áP+ÿÿ-FÁ(  ÅËM‰ÿÿ]G0 FÁ(`ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁ( ÿÿ-FÁàÿ gýüJzé `aóŸ²Óÿÿ]P4 'øÿŸƒƒá?3óha€ °°00üù # ÿÿ-FÁà,, ŒŸ>1|Y½šñßP<þà?ã§Odÿÿ-FÁà°ãp]ÔKeðïEÝÿÿ-FÁ࣭ºÿÿ,£`0ÿÿ-FÁ( ÿÿ-FÁ( ÿÿÂ;Fðÿÿ†ÿÿ3üÿÿHÑ> FÁ(€DƯÿÿÂYüÿÿŸƒ‡“áÇŸ Ì££·£` 9ð÷ÿNVföŸ ÿñ”ÿÿÂY°±23»x‡á$ã_†á{.Ë(Ã02ügøõ™“gËÿÿbüVL@¸Œ 7îÞghî›ÃÀÍÍÅðotgŒ‚! ˜˜˜¾}ûÆP[˜Â ®¬ÈÀÀ🭅ÿÿÂ(FÁ(#ÿÿÂ;F0Ú£`ø&&&Œ– ÿÿmŒ‚Q0 ÿÿ]G0 FÁ(`ÿÿ-FÁ( ÿÿ»=£ÏÝ7IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/swipegesture.png0000644000076500000240000001532012536324504022163 0ustar philstaff00000000000000‰PNG  IHDR݃ @sBIT|dˆ pHYs  šœtEXtSoftwarewww.inkscape.org›î<MIDATxœíÝ}TÓ×ýð÷7OD‚„Äg i SË“¢¨}˜ÊY»¶*Ö3תíVpv£¥³ÎZ©nlÕuÊÚj±Ýé©Ô®*òœ¢ØáŠAMAPh‚‰$!$ûû£&?ð ’ô¾ÎéiýÞû½÷æœ~¼ßï}ú2„܆a¸æ‚$>ŸJo4Ez½^h6›Ù÷U(E¹‹Õíîî®áñx7†i4 —u:]€Bˆé~Êdî5è†yV(¾ÑÙÙ™lZºtéh‰DÂò÷÷‡¿¿?üüüÀãñî§-årŒF#”J%šššÐÔÔ„ªª*óáÇÛ ×ÍÍ­P£Ñürì^ÊrÐ1 - ?‹ÅmܸqôâÅ‹!‹ïë‡PÔH§R©pôèQdff¶«TªjFó&!äìPî4è†ñ …Ÿòùü˜]»v –-[Æ0 3, §¨‘Ž‚ÜÜ\²~ýzÁ`(Õh4¯Bšº‡5P"Ã0 Ùºuë<–/_NŽ¢z`Ë—/g<Ö­[— d Ã<>à=ýõtl6ûgîîîŸø€BˆV«%‹/&cÇŽµ¦q¹\òý÷ßÛ»Ye7‡2 …ÂrÒ3è<+‘Hn›Ív9²aÀ0 CRSSImm­Í|555$--„‡‡“êêj»·‹¢ìÅl6‰DrÀ³ÄtB¡ðkË#ž½åä丸8RTTtO÷µ´´o¾ù†8â/Šnûöí#B¡ðkrg¶€ËçóuJ¥ÒÙíPZZ@¶lÙâì¦PÔ=S*•„ÏçëpYæ›ì¹x¹¢¢>>>xï½÷ŋƒalݺ/^ÆÖQ”ý‰Åb›Ìa ‚¤¥K—޶g…ï¼óZZZ`6›ï»Œ9sæ %%F£éééÃØ:ŠrŒ¥K—ŽI,>Ÿ*‘H\øü ÎŸ?X±bÅ•“šš 8wîÜ·‰¢M"‘°ø|~(‡2Þßßßn566B©TÂÛÛTV`` f̘ƒÁ0L­£(Çñ÷÷!d<Çh4ŠìtUUU€3f šW£Ñ€ËåÂÝݽß<øòË/qûömŒ3fØÚIQöæïï£Ñ(béõz¡ŸŸŸÝ*ŠŒŒÄÚµkñî»ïš÷Ïþ3¼¼¼‡ôôtXæ­víÚ…_þò—øüóÏíÔbв???èõz!Çl6³íy¦‰P(ÄÇ<¤¼‹-Bww7¤R)233‘““ƒÆÆÆ^yÊÊÊ€A8<f³™Í w÷&ÃM©TB­V#$$dÈ÷èõzÔÕÕ!,,¬×u777F¤¤¤à§?ý)bbb0z´]_)jØ0 ‡Ýœ9sðÝwß¡ººãÇ¿ïr®^½Š   ðx<B`2™ðòË/ãðáÃÃØZв†a>#e¸…Bttt`ÇŽTŽZ­<óÌ3P«ÕÈÏÏÇúõë{å1›Í˜?>6mÚ„ãÇC«Õ>Pev_SQQAx<a†H¥Ò*«  € ´dM©T’èèhÂår ÂápÈgŸ}ö@uRÔp@òx ï½÷Þyç ªª löÐÖjµP(ˆŒŒÄPO#Óét8sæ ¤R)V®\Ùë}²¦¦ÙÙÙHHH@\\<<<îù÷PÔý°üÿë7™LdÞ¼y$$$äžî“J¥dÊ”))((–¶äææ‡cí gÍšE®_¿>,eSÔ@àȞ΢»»l6µµµ())A||<‚‚‚úä»}û6222••B¢¢¢PTT4lâZ­§OŸ†T*EYYNž< ‡cM?þ<Ôj5bcc!†¥NŠrhOw·_üâÖÝá^^^dÁ‚d÷îÝÖô™3g„Çã‘­[·“ÉäÐö­X±Âºs=::šn)¢†œÑÓYTVVâøÎ;‡ææO¡æóùhkkŸÏÇöíÛQZZŠ?ýéOpÆÉd–ž°¸¸R©^^^8~üx¯A'˜9šcÇ +/w‰ @wP®Å —Ɔ‡cá…ضmJKKñÑGáÚµkðôôÄk¯½fÍïææ†àà`xzz⣦MëU®+ AG¹þ¯+u\¹ÒëºT*FôJkkkCGG‡Íse,åðïá+ÀöFƒŽr)‚¨(€îüù^×e2ÆŽ‹ððð>÷h4èõz…Â>i–r,åºt”KᮟºZZÐyõªõºL&ƒX,¶t&“ „H$’^×;¯^EWK ¸~~.ó>Р£\ÇïY(ÿúW?~^íòåË É' ×ë­yëëë­[îþÐŒå~û>2 \ÎÝ+Ršüü0mÚ4|øá‡ðððÀþýû…¶¶6\ºt ‰yyyÖ3b×^‘B§ (—ãñéé¸ñÎ;¨[µ òwßcúôéX¸p!är9¼¼¼ ‰°fÍ„„„X®[£AݪU!Ÿžî2gA{:Ê%õÜeðOOOü³½—.]²ù¤¸¸8Ì™3» è;å’A_|Ad$j5&O˜`3à´Z-nܸiþþ¨_·òyó¬ôÅ.p®×"ŠºÃ-0¡ee¸æç‡°°0›y @™ \ç8@ƒŽrqúÎN4´¶âùà`›é–  ‰àíòg¤4è(wéÒ%BÒÏŠ…B1£Gã™;ß­ è;åÒ.^¼]D ²# :Ê¥Éd2¸»»÷ûMz…BÑgRÜÕÑÇKÊ¥Éd2H$›go677£­­ íííøÛßþ¥R‰îîn¬^½NhíÐÐy:Ê¥‰D"$&&âƒ>è“öŸÿü¯¼òŠõÏl6 À‚—_~Û·oÇĉÙÜAÑy:Ê¥)•Jܺu ÁýŒ\Êïì‘[·n.\¸€êêj”––bõêÕ8rä^zé%˜ÍfG6yHhÐQ.K&“¦ÝÙˆj+ÝÇÇ)));v,X,|}}±yófüþ÷¿Ç¹sçð¿ÿýÏ‘Mt”˲Ý@=]DD„uÍeO=ö€7¸º:B¹,™L___Œ;¶OšÉdBmm-æÏŸoóÞ7nÊÊÊPQQ¥R ooo¼þúëðôô´k»CƒŽrY/^ì·—»zõ*ºººú¿³¼ï¥§§øñkµ&“ ï¿ÿ>~õ«_!##ÃæZNG —”K²l\í/è,Ë¿zôäñx8pà*++Q]]£G"..Û·oGFF†ÝÚ>t”Kª©©Á`èwE.—ƒÃáô;wåÊ<ýôÓ˜3gŽõã—Ó§OÇž={°hÑ"ìÛ·Ïnm :Ê% 6ˆ¢P(ds¥µµ·nÝÂOif³UUU>Z°9ÈÂçó1a¨Õêûj÷PÑ £†U{{;V­Z¸¹¹!66§OŸ¾§2¹œŸ7ß|%%%xñűcÇÄÄÄàjƒÜM&“õÂ2Õ0Ð*€5Â,[¶ —/_îó(éíímÛ¶!;;W¯^Å“O>‰Ï>û¬Ïý*• 7oÞì÷}îA 6ê©P(àççŸa¯»'tÔ°JNN†‡‡~÷»ß¡³³³Oúüùóñí·ßbÚ´iHNNƪU« Õj­é–A{ôt\. .ì÷àZ¹\îCŽhÐQÃÊÇLJBEEÒÒÒ`ëüqãÆ!77©©©øä“O†cÇŽ|äòADDD`ïÞ½‹Å}Ò,S 4è¨iÉ’%رc¾ùæìܹÓf6›õë×ãÈ‘#ðððÀsÏ=‡ääd”””ô»qÕžÐÑÑá £ ž)»HKKƒB¡ÀG}„©S§â…^°™/""_ý5þñ ++ F£ñññníÿ¿ïÑžŽÑöìÙƒyóæaóæÍ8sæL¿ù8~ýë_ãøñã˜1c†]-såʰÙl„††Ú½.zî%eWjµ111¨««Cvv6âââÌo6›ÑÜÜ ???µðGo¼ñjkk­ÓöBϽ¤ìÎÓÓÅÅÅ Ä«¯¾ŠS§N ˜ŸÅb9<àÇÏNƒŽ²;±XŒââbãµ×^ƒT*uv“z1 ¸ví :êá"‰PTT„°°0¬Y³EEEÎn’UUUÌf3 :êáãííÂÂBDDD`íÚµ(..vv“8vä AG9˜—— ”””×`:Š\.‡»»;R :Êá„B!Ž9www¬Y³¦×20gËå ‹å˜p AG9Å„ ð¯ý õõõøÍo~cs¹˜£8úÃ’4è(§™={6víÚ…‚‚dee9¥ ---¸uë–CƒŽ.£œ*%%åååÈÊÊBXX,XàÐúµ‡®'ÚÓQN÷ñǃÇãáøñ㯛õHR«Õèìì´ËºÁÈårøúúÂ×××auÒ £œÎžWãèA€åœtŽÜ¸Ú :Êé*++1vìXˆD"‡Ö[__ƒÁ@ƒŽzôØëô¯Á8cX,«Ûh4:´Rв0›Í¸|ù²ÓÞçX,V¿ 7£Ñ‹ÕÍrww×(•J‡TJQw«­­…^¯wJÐ]¹rpwwwH}J¥îîîÇ»ÙÔÔäJ)ênö<ýk0޹ljjÇ»Éb¦‘å,2™ , ‰Ä¡õvtt ¡¡«³©© Ã4² Ã媪*ç||™zäUVVbâĉ5j”CëuôÆÕ;uš Ãe–N§Ë;|øp»Ãj¦¨nݺ…úúz¤¤¤ ¹¹Ùaõ:cäòðáÃí:. D¡PpU*•Ã*§(‹o¿ýo¿ý6òó󑘘ˆÝ»w£­­Íîõ* Œ5 AAAv¯ øñ …‚  „E1¹¹¹=zÔ!•STO|>[¶lL&C||<233Í›7£²²Ònûìär9BCC¶qõèÑ£pss+$„˜B†yV"‘|.—ËGÛã›`5T•••ÈÊÊÂÁƒa0 ‰ƒøøxÄÆÆÚüäñýˆŒŒÄ’%K““3,å „‚öªªª— !ÇXw.S©TÕ¹¹¹ôÔYÊ©ÂÃñoß>\¿~ÙÙÙ˜?>Ξ=‹ 6 ::‰‰‰ÈÈÈÀÉ“'ÑÚÚz_=a]]Z[[ö>—››KT*U5!ä0–F3 -‹ó±, ‹ñÄO ** QQQ˜;w®Ío§ŒŒ cVV–T­V?m¹Ö+è†ñ²C‡‰’’’èË5"BÐÚÚŠ¶¶6Œ3žžžv.[òòòHrròMN7baî~&fæqÓ¥¥¥Ž^}MQ ™L†˜˜­V«#„TôLë3^J©Ðëõ+u–uqE L&Cbb¢N¯×¯¼;à€~öÓuwwÕÒÒòJLLŒ6//ŽhRÔåå员˜mKKË+ÝÝÝ_ÙÊÓïÌ`ww÷WZ­6.99ùfFF†‘î¹£¨þFddd“““ojµÚ¸þ°ñN×'Ãø …ÂOù|~Ì®]»Ë–-cè:Eýˆ‚ÜÜ\²~ýzÁ`(Õh4¯ô4±eР³fd˜h¡Pø‘X,~lãÆ£/^ ±X<, §¨‘F¥RáèÑ£ÈÌÌlW©TÕæMË<Ü`†tÖæY¡PøFgggbpp°iéÒ¥£% ËßßþþþðóósÊð,EÙƒÑh„R©DSSšššPUUe>|øp»B¡àº¹¹j4š¿[Vš Õ=õF†á˜#’ø|~(!d¼Ñhéõz¡ÙlfßW¡åbX,V·»»»†ÇãÝd¦Ñ`0\ÖétyJ!¦A °áÿícQ¢Ê‚øIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/system-tray.png0000644000076500000240000001426612536324514021747 0ustar philstaff00000000000000‰PNG  IHDR@•¦v´Õ pHYs  šœtIMEÖ…ŒUIDATxÚí |E¾ÇS«&„̑Ɋ>Ÿ'»o=>¸®¼õXpwåÐ…pƒÜDƒ‘H$!÷¹H !‡\¢°"EHäyA“; ‚ânoõ1=Ý=G& oÈ$¿ù|?ýé®®®îtê;ÿêL€³‚S@` 0 0 €À €À@`@` 0 €À €À@`@` 0 0€À8 @`@` 0 0oѱâƒõîúê2L9æô\Å^ÔQ`¯Æö8 oŽÀ¨” ÝC`„_p ¹zå»S%;Klišfî¹AátA¨–ׯ50ÌÕ6¡Ùhf AxÄZì„Î0›à€SCC«=öòp™Í~9¥G8Üí¾ø¯_ ÃÌÌhhÐÓî w3¯ý4ûê_†y¢±î¶·—¼ºÀÿ<ñɶœX©±t‘&¶!ð_BMC`g¸¾’†ßÞ s ¯¾:ôÆ)€>€­Á!EÝC`ª+ÅE[ówï ܾñÓ[̵Û/žwûpÇo¨Æõ—z/+´wóò$?þæeA©L— Êoy…. ±Ðs0I_ð¢ñ€ù úî(°(í¾Ù…½Vþãì„»“À?V±á—÷ÛÉsSF AxÊÄíØïE?¿¤r6¥´€ï" ”›Œµhx·˜"ªKgìºæƒ0îâ_¿t£á†q#Äç2áåçG2ÌíOicbv´Gं—=·’T XÈBôã$/×K"#ï•2ÅØ]äá]/©ì­ì–ÀFQå¥è¥·UfwX ¸ë \wš0?©iÔ2ð~Oòæ¬qƒÆ›.Žö×.Ëiç”Ñ—šæÖ æpJÐyóxh=Bò!ÝXšD0Þ=á+Ãlv l5ÛQf·mB?:;À× +êO߯´zPc#–>òoà¢9/07ÜÆõÌ~íêÕÅí˜7Mœá”ãÍ‘Í"i"/†yŠ"‘/Í$­D`‹»è¤Àö”ÙmobA`'¸îä×+=˜WæWR˜ß÷åç(öùåÇÛ˜ëhÊ¿ íØBÌ´Z¥ Tó&«Q!Iëº mGÈŽ ì,Q÷&?F‚ÀÎ"ð/†ˆÆS·3-ó=aêÉ•oÝÞO»—ù…0­ ½*þ¦X·víÞÎlÔÒhˆÅm¥Á͘ÂûÉ)dùëÀ$³í]t¬ mG™Ý¶#vkõä×ïµÌ¥^LaIÍ7äH1a „¹J˜Ÿ óoo:0jb§–ð^“¾»ëÕTÞdç‹N0˜;…À %÷\;A˜ïÆßSGèëõBÿíM_  2³‰—Ss;SC†ümV—© ÒŽ]è9s÷NIàËÇo:H®!×KÈÏ%„ùšÐPüï“„ù†üZÊ&^?J˜S„9Cþðä«§ÿùÜè)cú!°³\g¤¥ù½³á{ÊQ~~!~Üû±LÃýøªÏMeéŠ!{R=L›X:Iº¥¢ÄƒçwG%‡'Ìh|éòÀdù¥‡¤8~eQÒ¥í¦aâk€:tª-}¡˜.Óæ¸» ,¼ÏÍ{Ùfª—Â{¡ÄAùƶҙä7¼\…3½kΨn¹yºdÊøfÚÄÒˆéÂÈ^z0^R‰-ÆOî%^ØZ6Ïf¡(áÌèC¤ß¬“£:wªm¬<-¸ÛßÄ’¾ÆMZ!è¿ß¢œFe/s´Ö„–ÄÞrkéŒM­€)s{- ·~ð«»4ì[< ÛMhù·•$äÊßïa­ùÝÉSm+ËOK9îw¡¹¯ùvÕ*óhÖ¥qÌaKÔï{6/Ê⻦;)°µ oÜÃöÏÂ?ÞR»Îb­’6}e-Ly(nS`i%ë°Àf­qåÁ[?<6§ Ô¦0bQ!Â53ûv{‰?v4¡í?ÕŠ¿Èâ"½hO[;À’—K™¿¼ÊJ«ØjÓÑtQÍßIJO`ë/OoS`óV¥µƒ—_óÓ›RâËÜ…CµÒ’—¼UÏjZY”äN•òɜ䘭ÜÄjÇ©V¼v×ô‡X>-9ð«bö?ÊêOtnIW Ûä—MÚsËC` †ÀCà."°-ܲEƒC`[½8Ä(²ç1ïÍÆp ¿vj¹‡¦[Gl׿ŽEàÎ c€Àwô9°YOe–ô¿/>¹UvQhcƒÕ.þò1ŠG£æó»ÖÛaöXU(îKÑ5ªÍÁæƒ"¬-€ÀØÑ=±¬uÙj¿¼ó©…õ޾¶†1Xìâ/®f“+»¶9(¸­0€.†„p«ŠB”³¬ °1(ÂúÐ -°µ ]‹WÂBä±ô´¶Í^ÐÖºøÛØVÑ‘XѵÈö .§>„ÿ=a÷ÐüKÁv'Mó>Õ6†@`|ëôÛ'°_’^íØJû–îÚ>ÙØ«ç£.×xÖÈzwXàî~5ÿ&–&4×wÊR/ß6†1Xéâ/uµ­&´¸k˃"̶¥;õ{‘?Ôò‚Ú¶<ÞúàKƒ"lŽâ€ÀØÁ‘d?«mþIÚÿ¾@v±ªp¸a 6ºøKÇ ´y‹ßµù^Ìï<)ÆÓ™¿·kð€¥AæC 0FO,!0 !0€À €ÀÎ%0±#ç¿A8wø…Àp8¥½bø…À]Çah ÚPWj¯~!pWÓ§þtVQk^]©½bø…À]úŸà¿Sùÿ¯¢ˆÿ<ÐÅé¨Ã2E­!ÖÑÞî~R`…ÃRSÐ!‡e·¦l Ö Ñ^Üu–j œˆö;,{´k±nt{{R`Ña©ÆÀéh§Ãʾ¶kH÷¶×YVh œ”ö8l¡s•mº½ºN/0èõÏ^‡{PïÈvñägp$îSŽI±Óašçާºþ9ÖmøV÷ Ü'—*Ê陸ü)®GÒï…É÷~~í®×ú|ÐÂÑlÃ4ƒÊ?FûvWÊç¾›*ûl7ôy¿¹›Sdc——ÖTàHž:• Lé»ÿ*åî}­”6¦k5sbuË7úf¿kGõÝÅÍw|ÅéÙ«àG{$·Sž½Â¼Kÿ*Ißãyiøõ)lñÙÜÌcÛaºÊcR”z^®.ò¨wÆ÷>9õ>¹+4J¦æé»ÓÍW5JR%‹Š‹»n´T¦1NwVƒoV-Å;³Þg]­E¼3kù<—ßÍ»€#Q=:J¸ˆS7ÿ²ˆ ‡Y'Dªçäz†é½R/zÓzœÕàôdÖ›Èh`ą̊ñJ«H¥Ó–”ZŸÔ*ï5,¾k.Q\žvGâþÄè>­~¨äê][ >š|Ö|²LXs˜&ö¡òÏÑ.ýLwÞ+©ŠVk§'™#©†eUWbµ.¾Jw‰%ö’.¦ÒH…%ºœ%†#¶‚F]tyhÒ·8*ðƒW=Xj8K&°O¦e‡»³À¼ÃœÀ‚ÜƜ¥•r{y¢~`~pâIï'ÆPÅìÅcðÎ4’Rnî0+ðËïPTSÓ5sßÓ¾µSø‰çŠc^ñ¼RêÌñM¸pÏÒOî Úãó­wrµ·¥<"½–LðŒ:ä•XÎgÓÆ}ê•x¶Í­n&ky=L³AXˆÃfGC`Ð5¦QW!°.ò‹­%Dá0ŸLÞ # ›Iþ²µ”#êéëX‡ÍÄxØÕ€ 4bÄ¿q¯Ü?3É+šÒšHeôQ/œâ¹ô°&b«GØs½S]{-š¡ ;å½úRW˜wX)ðTàop$‚ÀG[ï.lò¥wb%×À¼ÆžÁûóö³®J¦3CÇ‘!ãÈÊl’»l>Ê:ì>x¡&ð]JObbáŒÙqýÿ<æ™gž6lØØ±c§M›æïï?þ|Ýô ÏÈ3^Éu:3ÔÑøíúíÖÝ×;ƒ{÷ÎÇvÜÙw‹Æ}…¯ÊƒgÔ·žÉuž–¶jžrÄt™ÀIrY‡9X is˜xGâÑŸ»>¢ØÛ(°vÉîŒq¯‘Óåá¢ÃtúÞG³ÿ6’,Ž%k?"ï~F6!nÏÎPÍߥMª§Ü³è`jêÖcÇŽQ{ýüüÆG§aaa±±±}e›3¾‚Ï,¥×; ßøâOþ%ONÐ?úÒþG|tïï?èã•ÖÛmÔ+ê ½çêZóM:††C\deNªõdÕ­åg<kXªMijH4®4Ž.×Eý c#ð¤³8’6#08¹Œ}•|u1ìÈé`ñ•©ë'=õ<+vh:IßI ·ç¦«|ȇ߿Ìνvíç¿ÿýï#GŽdèoÀ––Λ÷æÚµkÓÓÓiö˜èþ•yx¼/nÌòò—æŸ~öõOýì^øð~ŸpímÃÂûê*O{Ãl‹¾©u47?úįŒôs¡Å<ÓüGšZÇrØ;éòSîóìŽÀN.À‘Ø7“Ñ3Éñ²ì ¨i:È |®|wîæà¼Âyú¯ƒÃÖ’¬Ý²‹ôôú˜1c»xqtppöôéÓ‹‹‹KJJöìÙç6è ÕÛ‡øÌ ܧ®ó xdôî'Çì|Zq–¦øùÍY´()3óÃÐÐíϽ‘¤ZvL³ªÆâ¶&6²Z]¯1BÙð{Ü ¬¥o´Ÿ[lÑÐǵ«je$Ô˜4ænJSuµ‘,´'Öy { üi5íÈÑgÛ ‹ÚK¡ÞòèÖ6jwÇSˆþ댼éUE6n ý´4ôà‰àYA$~£L`uìÞ¯åÒ;gÎ<ê0%3sÃÉ“'iøÍÉɹÀ·¡Aª¥%óW¦™¶µ˜˜½+û‰ðß.HZ8~üÌáÃg»8=}[XØ{[·}ÖwV[cŸÀ²WíÏ/˜,ó\³ªŽ"ÕX]I1 <ý;‰=Ókà©o‘aÈÿþ•lÚ.²}WøÁ¡%ß„ú’˜<™ÀšÕuê¨sÃ'ÎX¶lÙöíÛi˙ޑޱcÇÁƒiøu}j¼û´,udYRV¥akL¦…pzæÌ™øøø§Ÿ™™3lØ”‘#çfdÐrŽÓ¯¿€H{5ñ•íØ~Û!°áݦv Œ˜ù¾Ð>›.Su=×*Qî¡w¡cóIp™<|¬g9¾¯$üÐÉð£§ÃKN‡¾¶„DoG`Îáÿž›GuÍÏÏß¶mµ÷ðáÃtñŽG‡öz)˜ÚûVÊÉñË˶º1råE…NÃGÿøã÷íÛ7|øðI“¦'$¤:¤§‹………SçzÿuVïÙ…ê˜ íX~m7¡‹¯ë‹mm^cMB*®FS-:Œ  { lX›Ó¢Î¼¬Înf¡3KŠ“ %a#Y’@¨±ß„—PþÉòf(‰Î%®ÏÊf‰>ÿðÔh*í|î3lüŒ;úì5,ˆÚ»mOSJzÅ#k›¶¼g!*Þ;:ˆÞý¢A;++kýúõTÝÝ»w¿¾x¹ÏŸÆº œí>1Y¤·G7=7âT¤T~å+ó³k¥›ËÔU'š óó»<2ã; /0mBÓ±„T`MöeuN³‰ìf ½‰[…öš\™EE“ׂȴ3“¹¡$$•Ä×çfx,øHÒ NÐ$ÕªWžîýZÛKAn/¼á6x‘û+Éê˜s¿_qvk‘áñÈòøy|èyvºUrmÿ˜ÃŠŠŠÚ¸q m~Ǧø>;ÎmÐl÷ñ óÿ¡ ûRP©á÷’Ò9,• ¢$7¨’êU«$ÔªVÕ±S‘ø:N`Ña—~3/àHd綨iÞТÎå¦+ÑT<ÔÒȾŽí¼!AVf²á—>jrºÈcÉ~õƒMZ½:î¼jÅ1UðaUH‰:úÛå)g"ÖW=]Qøéõ)Šüê4ޤKý&-_¹2!:9§ßàÉ®g¹OHôX°Kñµ:©J#fK3(7ïiêTNcÑaj¯B`Ña~žÓØ¥Ÿÿ ?˜¸°E“ÿ#«nž UüWîsr܆º¾àï6Èß•g e¦ëŸM¸ [ìîŸ­ŠøBM/›Û"ð£k{öý´0±ÜZMF£6â„vFZ¯K{‹ê°]ù¥:µZcGáÀÀ’aP§d³º^™7™Î$J0ºíÒïÕïp$¦kàÂí¦+šwT’]­NüJµò*d¯jÙ^à½K9Þ)f 2r@}J½¦RMá6)ØÖ™WÿPr­ílšuuêø3ª°£ª˜/i±š,C›%w,9™MêuœÏ¢ÉœÌ*±imŽñ G#>Fò)jñÜÚ¢ÝrÅ2Ôí-,ù\|[ڹƩE6ئYI.ŸØbÍ…¿Ô_ÙD¶Âd³°Ì#½Z6^»ô{í ß•’F`ï]Wtï_ñÜn‰­‚Ût*h¼QÐX“ÇÓÌÎÛ ÏŒ\‘f<㔇_«ØDVH³i[)üÁäI‹jVîEà²@Žœlƒˆ`2¯1…k]³ˆ·¾¸E nÀ¾G«ûœ¾î³·ÕëÃVÝN9ï³V{moæÖÑgÅÚ|#y”&Ó¢Eò$äš!¤7i74±S -0×zÎ<É~s¹œâ†¹’ò¹ ybVØÀ"uÕĺFajD›ÞÀ’Ö¨Mm h’ëy´Éu:ãòˆÿE‰êñ)÷|ýcß³¿Üy •:Lã°ØgG µW`£G—ßȲÒÀ’C§õ,ÒDÓ*ãŒmÖ×ërêtÙõÜŒ|-“¦g×›v´Käç³å°›Ô±…l0Â/f×K2‹óYuº %ÔUé¢gZ6¥–B‡ k“kXVÇ SV³`4p42w´ø¾ßä»ÍÀÃoØTÏRPç“[K¡ï@ȨñNçÞ¨J§ëª¼3.™XWe‚®¥9×pÒ«„Mø­Ò%‰BQ•Þi”Kâ»Ze¤]b3Hw”Á¥ð[­1–`,Ä´V(ù [Žq^ÈYéıªBÄ+±’‡¦ó3ºa*¼Ý.¶‚ÃÀÁHŠp¹oÔ‰æwï9ÖtoéÕ;s+ú¤\ì³ZB‚€oÌwJ¢ÎûFðÓs¾eì|äÿùF•±‹QÜ"Ë9n>ü›^&L#Œ™Wže çסké&¡ç}¾a!ì¼(_%âr÷_6àHð‹d7‘ÿ„¾òÒ°¾ïIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/taskmenuextension-example-faded.png0000644000076500000240000001273412536324525025724 0ustar philstaff00000000000000‰PNG  IHDRP`í’!t£IDATx^ìÝAJ#[Çák(|­½èºÄMä Å‘‹Ò½”C{dk ¹PØœ §­Sßy ;IªýÑeüÇ‹išÚ8ŽíóψssÎ9çÜ! þkÇà×к«¶oíCè∈gèòˆˆç< qDÄ3hQñì " žA@ȈgPÄ30±¸ÚÈòÀ9çœsîíØ%ÒÕ¢Çyx[ò˜/‘šÛy@<— *¢€x&*¢€xæ*¢€xö€Š( ží?âtݾ2M¯m}$®®‡x&š¸¿˜xouH\\ñLÔí< ž!±"Êø8¶énj¯E‹ £Dÿz@—Äsù¹|Dü×¥sq<³ýÚ?õ^Qâëëaa”—hônbAD ®®‡xVÔb Ïd@óeÛ4ÝyNÏÊ€æ#*žÁñœÏê€æ‰è!0çœσÍÄñŒ*¢"*žˆgPQñD<‹—H§QO # £ú%Ò9FTDÅÓÂÈÂ(¿Dr;/¢â‰ÛöØ®U£©‡J< €€Šhaž€€Š¨x‚€Š¨x怊h>ž€€Šh>ž€€ŠhO@@E4O@@E4OÀIDñÄÉ9K$-ˆ'<–HçAD¿/ž€€(ñ›H€€²|atüb PñL,–ÏDDÏLDÏ8¢€%’xf#Š%’s–Hâ™(–HÎY"‰g>¢€€Šg"¢€€Š§ˆ‚€ŠgADOÏ‚ˆ*ž" *ž" –HÄSD-‘œ³DÏ‚ˆb‰d‰„xŠ(X"‰giDA@OOÏz" *ž" *ž" *ž" –HÄÁIÄÓs²DrÎID7óœ°à±Dàg@@€¡}ƒñql|ýZx˜î¦†€ÆADc¯…×K$À ,‘œ³D:Ç­´ý7–HÎ ë†æðgùì¯þ9ÕÇ< €aÍ­t>8>U©‡2Ûú°‚€ÖGT<ãÆñL\Ðꈊg½D¸ÃÈy]€áMij&Ú‡Ç ×%qm@@O/¢â¹ÆuI\ÐʈŠg×<ž® hQñLܲoæ–,‘∊gÀ-½%’s~'RADÅ3ùÎ=–HÎíüŠÜ0dbÕ#ÚCô€Šhù»í™x¾N  "ZϘ»Ð|Dýœg}Dí¥‚€ÖF4Oß÷Œ‰(ú3#ê#éŒ @@-Чï'¼v`‰TÑúx‚%Ò)ET<±DrÎ)Qñ,‘O@@Óãiéy€õ Gžè‘]%žÃ¿[£\ÿ%n¯¿íÓv»©¯,‘.fšeL}æ—òd ÏüH\1ÔP#\kKAx?S|!ÚÁ  ôùNì‹ÿ«V­Rš4" *=Œ¬—Ir‰‡\.çÌkooWš ,P <òÏ£'R ñ+~=‘&k²ïw±¼i¹š››Õ`Záûn¯$5áÓw‘þVx€F$ @€ @€ Œ‰Œ‰”=‘pÇwhÙÒ¥òÐiTÂÝ7ukÛΗÕÓQÐÍËöè{kÖÌ r6c͘ߊÿޯ/.ïÖÝó´.8ëÜ:œXÎð»`RFFuƒ0Ž uG.µ—ÇÅ7ïù}þê’>ÿWK4å#Gô‹[ëž'(R}³‡³NfxÒ ¯Ü÷¼–?ù+ýõ•»tÍÇÞÑT·qP7nÐÀñ÷µrÅýáépNhc¾ó÷Ê„š/bI "g¬ü†yL@€âÁ§ºôoϾªIá^]û—¨âùukÔÝuX¿è-¿ïËzô‘oÅ‚Uÿî<—4.LÎ<çïuÑÆ OnáñõGkëO^ÐEW|B÷|ý.Ýø7颋>®Í/µé¡‡Vhó÷ê¾oü«Òîí³TCßöƒ…Úw¼¦w:sš:}¶öîéPÛú5úAÛKêìêPCÖZæn× ôƨ} xæÁEš;çM™òiuzS‹~B3gž©]»~®Î®5ª@O$è©o.Ô«OLVž¡W~öKÍ¿W¯mºWw/û†þî¶›Õ¶î»ú³nÔšgÿC55Ug2– ÕhTùLO¤äÀ–'Î×Ôòëºeå¯õ…#}ôü9Ú¼‚Öþ¨KÚúÓݺùKKõèè©)«/¬ólIM?Ð)«QóÏôLû$mÙÞ§Gÿa¦~ïœ&}í‰CÚýú1ý¦UO|O×]ÿY½²yƒþgýS^!ê¶èÚ­ÁðnÉnäžMÉüYx +~ЯÛþh¼ÞZ;G§f³úûÙ­}ʲû׊•ÿüaOâßœ†l4º§’½]x\Ä’žÉ½ Ј„¥ß> Š³$-¾U¦M/î¬W«­ÑkÉ( «wO­-ßN™‘ OÙåèÊ øœ`jý/bö|{™]ιIð P ôD€ÔõDz"hDP @€ @€=‘€žH@O$†5FTÜ£°ø~õsfœÞøé¿«õª‡4(v|ÿV2³UùþƒšÝz±Æ6·èxaŠÎšÿ·ÚòôÕºìÆÃ40$GªØã¥ŠæqE:aá’ÇÕÝÝ£––fulúGÍúèÅ:rl¬Î<ç*Mœv¾ï‰e ç>±ú¡»ý”\x PDy),I™¬…z¿¿GÓg^¨¹‹¾¬}¯¬P¾yŽž|ìN}äÔ^ßðô? ¨‹ÇL€"*Há1I)3F㚤çÖ~w0[=ª³Îž¬3gÏБ}þái¯WK-É=Ò-“âÛÍø/b3=‘HQñ䟥^>m¬®¾rž®¼ìB),(ŸÏ«X,(ŠÂ‘:q*SeþPår0‚È.?äxûÕÏÕå·Lœ¤é3NרÒA½µ¿#Qµ¿ø  ™Œ¤’”{CRF*öHå^)Ê©cÛF­ºÿVÍ»ì]ÿÅŸù†—Ó¢k”µ^G2ÊÕ»÷08f従5ÏLt2HO½D½ÇN×Kmkôܦn=ôìÀpœ•Éjq7Ë©Zþÿ].½ü/b>8fZáL’šrêìì׫Ûvê¹uhϾƒúáö½pý·‡ç„ð/k—‡}¡q—e2I:æø xaõ÷õüúÍzõµqç€._âÝXsÒxä³çÛËü#ñP\ù™ï N1œ¬‰  +#¡ÆÛE€žHÀ˜H@O$@V& ( À{ “'Ÿ6DËÕjÊè·EŠp ôDr·—êr}·÷Ås|éÐÉ¿”_V‘ @#Rc¶¶cÙÎÖ×Ù«r9”2‘2QF«VÞ¡ó¢ÿÒuKûåÀЮ§/Õ§–µzõjõôö¨/(Ðq彨ҬÓôä½×jîys5&›Õþ=Ûô¹{·Ö2Œ°1 C70¾åR^Ó§ô×S©”×Ä YMnê×]w(2Rª\.k _Ö…ïukÅ-­ºë±=µ'á FÐûbæ„^Ak-K~PÓ aiÊÌúô’V]wÝ<]ó©yj½à cB©üžö«T8¢žîCš~f«®øã›wØZj‡•)‰¿ç˜žÔ@1&ÈhBKVSmÂø±3&£Þ£¤(/)TF%x«Cmë×)|÷5]ò‡u«µ#ŒÝa<¬õGï­µE6+µL̪iʕˑwÓ–í}z»´V ûu¢KWóæÎÒ¬™§i÷ÖÃFÎí¼3λ“ukh¹ø÷Y]uùÅš1}ª”m‘ÆLSOÏÑú·»óêúna ¤é[ã Œ$¡Ñ€ÚwôjWG¯ÞyS:𶔥?¿3#e›• &é½wjûÖjÍêµzlÍëõhquæ-ó•ùÖ¶Œ ImmÖ~ÛÀ?œ@€b×ÏßÔË;¤ƒ]R[{5Lй.íiß©õÏ­ÕË[~¢ ÛôÉÏüS}žmºó|·Å­¿¢Æĸ¹@€â¦ût“\Aó ]¸ø¶¦¯ú߆fñ‡¨_Y»á§ÇA€‚“  @O$Ê% À˜H”cL$€žHY%ð P ( @€  'åÐÉF9z"H@º†6vÛþYÀ¨ $ ÿ!.øßÛíïŽüÉŸ#p.ßq’üƒÖ.Ë r <“t"ð»àbF€‚Û}{]£œ3bçÐ5;œì@Š?é­ÏºƒËœrûO(p ÂÓ¾å÷_× ôD¢\j¢Îä±îˆîôD èÁCO¤Ø[éý×i '’—Ù‘@c‘;ßcÝúmä °ßÍ4BÌ\§öuÝwPåö6É–i-7–ùo?n @AÓF`C +?@€è‰D9ÆD¢\rôDÐ \.çÌkooWš ,ˆ-@Á?.(š››€×˜€P=‘(WôD¢z"H@€5ޝÎÏ– @€ÀØ[ô…'‚;¦’=޼»ÌÞ‡µk¾³-ghä‘FˆV¾wœƒŸP4Ù![ÝO­û¨lÇÙ&ÑxoáÁžîg§æg£žÖ6ýÛù Ò£Åz™´ŽåruÚ/åøÇ†Ò®k1÷¤ÉyorÉç>?4ŸWÚ·Ý <ãï‰(>9 Æçš h!<` ?jk%n)n*p4v"Ak"Ds$I|@D!!K$$P''U))\--`//d11k66n88p77s99{<}Ò@~Õ ƒ†ˆ‹#Ž(&'˜*’.” -›3–0• 6˜9™?œ?›9 B@F K¢R¥V¨[©[ª3]¬8c­h¯l±r´v¸x¶{¹d¯L@€Ö@‚ÛB†áDˆåE‹é€>>…AAŒEEGG”IIœLL OO¤QQªSS°VVµYY»\\À^^ÅaaÌddÒffÕiiÛkkánnåqqëssöyyƒ¼ˆ¾ŒÁ“ęƜɤ̩ΦЫѳӹּ؆Áe‘Æv’Æy“ÈzÃÛÉÞÇàÍâÓãÚæÜéãëëîæòìñðïóóôøúõýû€Ž¢‚¨±¦²²²··¸¸·¶¹¸·¹¸¹¼»À¡Ïˆ Ó…¦ÑŽ¨Ò°Ö™¸Ú¦¹Û©Â½ÅÂß±Ãà²Êé¹ÞÞÞÞßàØëÌàßßâðÚáááçòáéóäìõèòøîøúöõõõýýýúË„* IDATx^ì–Qƒ0 C¹ÿíž{¡ ³Õh?lÃWT©ÅiéÔ^@xTÈ$ߢÜɸLßN³6tÅð`{÷^˜ñ)`ÿ&R}“R¹šÎ´ãÁ§ìn¬H_à·QÆóŸXWÑÆ‡7À’ˆj’ggjÝ=†($°d¯(MÁ‘‚‰½ÍÌq,UâXqÖ† /rækƒH=ãQ Õ!Z!×rÞ !ˆ€ü¢—¯(÷·wƱư|¤†‚=Ö<Ýâ9ÖÅ‹«í°­iï,…PŸ]P!W &™ÉþSÃr{,Ax ý|+<§sH•5*ezã\&•{vjëi/RÊ–bscEM_T?Ìlš¦´SŒØû3SöÁ‚Õtí„Öý.VÚi˜?(}5ô¸)'®0>üu¬ù‰T›#ëן Ÿ,Ýš¦Ã¶Æ½–ÖYÓæäÁCô}¬¿¼[ÛŽãJ…gxE€øü ‰&ÛSSc:é–ú2Á€&LóÒIçzN:ÝQK‡/£™'G?ÄÚUö˜\fÜÝ'‡šŒw­UÛ»ZÊÒ®]eçêÿ––¶õ÷*¿Æúüí›·oß¾yƒ+þ›îk¦2´Î™Ïìk¶›üØÚ^6Æt,Œáí¼éP„íd¨*D]Y·¸·‚/°°Þ}ô«ù-]帤ÆúþS‡’–tDŠ)ÃùÍÁg—u³ ød€QÆlw”p÷Þ,vfÞŠãl³RI›±XYhÎZúb+cíÿº³ƒ,”ï¼5y΋Ãp¹hK-/»·=ÖŒ“–Àø2¸ Ã/-ðz¼˜Ã‚¿ëå—ÀJ6‚;÷/n¯I§X5‚…/˜—óü®¯©.ï.áwVµ‚;«0ŽpJ]÷îZñk^Ì/0~Ý¿CXàh1?'¥[ý»èÔºõhqs‡Öa|†Nª)²²=•ÖZÈZYÆÊ©ÊYW?ºž°òöï¿}uÿÊè° g¬¡¶j¬ï°°´èÄø„ô"^†BkÇ/|Æëx5‚ «©»_“¬Ï»q¼u¼€¯ôÖç㸢•Ó[Ÿ«ãU_@7°=q‡‹³~lùñð`å)1ZœÂR |×Ѳë‹ÔÂoŒñµ¦“x½ê@ "œŸŽ–·…±1¬¦èæ4\h:† %Mg§ã+Ió eÿkÄìïûÊ­"ïà ¬ÃÈ%›)Ÿ+>ò€ôÐ'Í<·ÍŒ¥ÕbX¦[H§®!g¦å€±£ëj:JÁª–z”%KiÝ+Éeþr4æŒw;úX†cÑ‹ý’^‚ñï«©pëÅí’^ùwÒ>ŠÛeûÕZÜ*y+ŸÀOãËqkzÚ5k”á#0>ó-.Wu Øa=ë€?Ž_À¯á€Ÿ·ÜE¹sJ4é*MVIc֬ςôü Â:P:ÐAD¾°®¶³RVõÀ6Íek]³ÝGž%4wå´K¦/ú}Â…ÉòBŠá’¨@X, sIÃIx‚•²2aJ1«,ÇÆÃqEKÆÂôªáøh}")B•É Êßcu2_[KŠà«SȒ꫺¤é r¼fT˜ïb)«³nEcâÊ ,¬jŠf]¡¤sã› u¤èƯj×™ûø4ï€?[zJÎy §Û6ãµÖÀÆ[»gÚ²–¥åüòïyÈqCÿ¾DÆ*< ‰åcekRî‚Ùåïûò]8N^ʲK¡Ô‹ KWY^R/ÏI°¤4®ÒÎÈf¬3£ ËcICH‚…ub%¥!§‹p@Z;d,e¬£‰…%&}Á¸Çx<íUê–à\¥ÍUb2ãûhùÐñúH¢GÀ7œ¡N€ÑÃ_Á²°N×Ðâ $¥hn„µ|n…–ÖX*»š K&Šûýü‡[Ka!G;ÇÚáîÉ{QñÓ4cýû@K¡½õê«Z7¯ÌRh3Ô`bª ‰0²L“ÉXŠF¼”!3 ¬cäej¨U njáÁÇ’¥<’Èd¾×%zà!'â%­¦Ð+£nƒ…°¼Ö, ž—fðBR„käì1Àœ©”²µ3mÄwYNt¡Ñ­ÍXÙ®­!$“@iÆ*Þ/m7‰S†Bñ^Y®øãýKaó^«Wsï&ðjSX/ùŽ`3©±h–åbDšJ½°LÊQK EåÁ¸$•¤Òpô~7£²^ …¼–õ™ü°ŒñùµRñhX²Ø‹ƒ*p؆ôá§æ½ê/¡œR€W·Á“ZÜ©êE·‹xå©Ï~T‚%-EyÚ)C7K¿t·é”§m`oÙ~r·H‰Ê¬ÅóSVÉ#Ã7HQenñõ“S®±TºúeÅ»±;CS¼o¥“Ý/èðo>6ÿYá«ÍÒ&wÛÌõn>|·ØLw…tOç«Òa´\G¤sÆÇ®ž0öÉ ­¥‹8š£.2vYw½I´^F¢ŒkäEÑzµ]ºŒ'ŒíxÛñ¢ [¢ë8Z,jT›NâEÔr-ö”hÇXðÑú6jUêfüZÔ§Q|5\êÄáòn:ß áÇÑr® ~¿tŽÁÏ£$‚8\?‰"à x²¾±¢²ÂòRM™¥PÉ÷o;¼ƒ°~½¹þñ…‚yp+<¾¢ÏÀûï ›QÎFñ¾=xïí^3Ï+ ¼uŽ¥d«ß­K©ý~×ï78jRén¯Ûí7¤µ—¤üjü…«¶yX¬U»ïa¼Çø‚¼ÀZ¥Á{RûÝþ9iàü”î¾§$û1ïõúÆÖ¬ð‡u „Zï;K°’µ>Ÿó°|ÀØóûm-³s¬ôĉ÷;Â/ø|t÷ R4£¬Œ,>F-®å‹ì^ÜW¼¿Ë„õuüüëÑ‹Öã‹wë•#JSci­4 ºÐ‚ˆ*.cGHá /\r\8JëOƒg—ñ3`Gðf\+%¹HT?"ðZ9Ž‹ Á²»Â|ÌWšï#ç©–¿Ê+ýLqÇæøLssáGD–HŒ !:š Û]éäë}¶Ú÷Úô‹öj…‘SY=z˜ÿÎ{!'cå}óמÊÿ}¨gã˜NFîoॵ2q—›wîÞ¿KAŽr‡wàî„ÙÝ b“vÞomC?­­>òcŠbª.˜ÂWö+œ\]öé®°¾½¹+lfËÞ~Mí/àÒpb¶û>Öçö½„7Ù Ùûö’ŒZ*kvˆ?©ÛkXs5ÃÙ-À`ÑÒû¶£fód0ñ~Í|hãï°&O=²Y¼Ï»üyÒ$+tµB¶úçÞ7H3õðªTx´”Š÷LYyÛƒýÂz÷¯½Ìÿåww¹«]ñ5ï' l€ëG&þ/{×ÖÔFr…eÀгF\ c{Ùâ ð ‹]»Ê`@` ÌŒzªRµ©MåZÉSö1ÓÆ0–% =-“äWì&»É¦ò”ª$CþPN÷ÌxÄ\Ôº¬ñnƒ˜V߯Uþê;§OŸsú;ã…Æ8_Jͽ1̉óÇÒƒç»×ÞÕ»Â͈ŽåŒ¤k-3JGNí"‘ØmqéA¸iF+¡†À¡ôĨHNh'˜j 9ú³ÝJx ÷ ú¼öèZ'ÞtºÝ_*ŽŸ-iËSÙ•¤¾Š¥ã£ev.¹ÖkÅ åéDB·“üÃyG‘ЊüX’±ÌDI¸±±QÜ(ʲ%`µ175=½VŒ¢½b’ fû§7M£Ôq1„ÔVÛóÇâÆÆÇÆÒ0ŠÇkvuFïäG![AÜ܈æ€܃B}àöÞî­ܳ­ú}(ólªÌe—ö7åû°Ëe©BìÁ𞕯æž ¶ÃX©_Ràé\3ëV/c]ô;®jþxóiÎmºaˆÉjw™xÆÒtÔÑ´€±”»Â‹pÎëãP~ƒOaWºË¹Íù}¸[·ø<¼8²ëÜ^€tÕ]Ä~•Np,ÕQ(Û8ìµ]©¼]'X´Î`%JÊDË95í'ZS¼µû¤êÄkz¤4;55}ú¦°<*Ñ)ÈÌ‹³C0T2È"\šÁæû`˜xõ~.l=žÎÀÕ]uKååLϵ[ ±¯Å¹£Ûc°Ï-ËB$ŒÛì”ù]d*é¾5¯lËCÂ^Ý̵‹C92–íê··ï)jŒìذšykɤ½¿j¤çÅñ+)âÁM\< òºç‹ÏˆAé$,›æ2\“Ù–‹}°Lå :”ò¬˜ÊhÞl*qCŒ’IK¦¯¶áâD¬(‘eЦ„£ÂÄ` ÕîŒÁK>.&{_ä+ÌE`I\•a„Éév5ÿàP«þõ,«¾7(4³*·øN¶<i””‡£iH§÷xòîÐêeÒÞCJ*RoØâ=†~ù$9(P «dú ÖUŠÍ½³.?ÑëðH ÐèÕ̺hZžš^”çBÅ"]þèiQ¢M+n&B*|LåWݘ^ Ù0”‘Ð*çO†ÀâH\•ÁtÙC!¯ÖçáÁÛ><*Š< „¸í¥Î- ¬O ÌØÀÂþm©òôàÈÞN1ygU·—vàcʱ@1ÀrÎÄ=‹N‹ã»¿¯ÐiбÂN Do¨¡_v?óþ¶nyÕ ‹0I5Á=“°Ä®h”ø{D*\9$*Ò?´p–ðEt‡ÓU©¼¡À¤xøL>‹Ù ¶›m†5üµ°,ÁG£»YBǺoU*•1¸ç‰߆ü-ÑI`!°x Pób<79ÿÆlþææyýö›”Zõý•m~RåªàéKöLIbšA‰A–aò¹hZ ^(õ@fj}‹R!Ú´a¸Z|r†‘ë.fú§çVäöÓ¼ Eº©¹­å <Äm$\ü`f•øü’êŒ~ÍNƒk°lWÐÙ²“IŠB¯ÜõЄ-/|˳}Æâ»ÿ=ÇraÄB`íÔk‡5Ä"ÛOíJ¾Šøä4=+tz†§'‹zFݲ°xŒE§\f2 q\cÐe¸RX]Yº“¦¯‘-õ@jbF#:ƒë”šƒEj Áâ6ÕΧž’Ò“Ô- ¤Öž•è:¤J´ç D\#æpº9c%ææÀ’Œ•}ÛV© Ýü8ŸÏ/ì#<|ƺϽÅ*•·Œu´c yüD -ˆ²*ËnÜZѳ"V³ñÊ“Þq…“$ {ÃX9Ò4ëZ°„Ä^ &ÕÍ%ðÊõ·ÓQ2®Î\îȆmB¶c?2–†’òÌQ—·× ‡dGžO¦ÖXS.® CÃùm„سZhWÈ‚àîŠBVI§\%5%¸Ímä§#yŽåêXc>ÈP¡¯ßÇËZ^ñÌ €e%ç˪1 ,§Ç< ?Õ÷ª-ï$´1;ïë†d,Í ëË[’±VVVW׃à1JKôYI[É<¡—`(7<œ‚‹„ \¢ºf„,ì ÁÔ7Œ%—¹çX¦zè$§ëÄk–«cÉMÚƒºoV¸ÏÝ]aÕHN³díBU€ê ~ð9o½®TªÕš° ¾Æ˜€å‹Åر¾Lv’qz¥/ŸòK|ãáCè¨4{¾‡.si( /Áêö"šLjš¦æÛ¡ÈÒœ|Pä¦ÛCêÃ’éŸ@ƺHÄÌhkˆN²²/•É,o`)dF#-(ïª .°¤á)[áÒ*5ÒܰÃC#…U¬‡Òïç>c½€;G %Üí{Œ ¯mO¾„ݨÕv,çÌëêÎ;X6AÇÒèKKâ"õÄDfˆÌ–ØŠS?Íx;Z5Í\kô"<ö!B.Rl¦Áê ¶’| _I ÔÀj?`5¹0X©—ÜSγåÃ:«Œ#áX|>,VKÃ|Í®î¤ÓeÆ%c¥ÐD‘…}Îí<ÌÛÜe¬*äc½< Q³è]:=+gê0é ER,©Z#.†J±¶=W©‰»Biý 3óŠ61ãÙ ¸þü*S¥Òöræ!%’±Ì'è':Ùèë×i‰áŒF×àQBz.ÑjŠtÜÊ䳭e å]Âl ;>š‚;ÜSÕes0Ÿí§ÆÆÓ zõfʶ½/³ÂZmÈXv™ÍÞƒ‘[q‚˜…®‡¯°€qXŒ "_FóÒÎ?C&ä¯8:îÙå‚ÇGÁz¤>ÿêrþÕ7!¬š6j†$Í›ÛÖ/˜0izr×äfÓ7dEmsN6w…xÀÐw]¡  j¦" ±¡|ÎÞ¹öÖפð’äpÊ‘ìÁg×D3à°/²›ì=IºÿŽó!òlÆW6yÀ Ï üUv¿%Á|Àøð%‰¹ÆŽÂ6À>ÆéøÜFL5ï!üM¾*øÑ<„N¡ŽÝ&×9;'OÉ‘À7ùiŸ…õQUXþ¿­Ói±ñZ£ùH}ÿK¼êµ22ÜÍ<ÇRw‚¥œ\S UÔ]w³Ù²p³Uwž{öxoŽ˜eg]?ŸÑ8FÞ8;íù̆Ùc÷<ƒ ™j|‘J¡f¬æyúó6…ävKz#¬†¤M_Ž ¯^Ã5Ú;µ.‹fã5Xžüí'DjÍSÎXZZR–3–°­ÍYŸÿã¦$wì²ki{xûHûzçc!“¥Íx ì3N—½  7‰mAÖ‚ë{à4$Dz“Â6%,°E:¢Q0Þ¥§R(l<Þû ûÀË„qÐ;å˜{$ŽÄÞ¶cs|¿·Úa6e¾/™—Â’*JaůЀö­½ã“Yëw·Šü:ü £¶ÊŠ '¼š¾´ÕÞœI#,ÞÆè¶…,&*—Ca l|ßÈÚÀ@žP^,™žömã§ ãi–O{2E)N{.J¡¯bHÎÐJ=Á%³çîl@Ÿ|¼m'¾% Äqo ^Ú¤p¹Ö8 È!J={“Ü'a3vhñiî[a&=–³ŸZ’P2­>ãRÅ™}'AGGr?Æ8J§Å¥Oá#Ç>KkžO‡æ®ÐÔ?IJcJcåž±A5H²j>ðˆ°¾òå7 ?„6K«ÈܶÊÉ[XìÝðÅg¯ITj!kª|1pAòΟ ºÙxïó)¹ ?½ò'Š¿ò§ÝÞ{×ù„F‹ } žîÝßy7ù˜ÆÇÁþ2˜(|›hï/|ð Ä`,ÄæÎ»Ë\àE~Îx{ëÝí]ÎÓxœ¸b†ùšqríÝ'R8ˆÄ øUà¿WX"n·BLЧi°ÌO1.Ó+ÅOƒ8?=füÖ{V3Ö£ªóR¿µo¨Í6«/ý¥›7·=À—°ÕñoVdˆÚ6F˜µH¹½WÌÞ˿͒t»Íb³m²9ÃYšnwYhyi>ÿl1ÐxA/Iï®ɽ/h®Ž?&šï’;ÆÈÛeÁ‘Ÿî¶ÛÔ'òÁÏé‡í.åN¢q–0&…=AÇÉn›¤¡“Üò¢j>Ìð3t4Oaš~kþh™&›$-1~™ñy&‚ñç3r$ ëÙ¯ £émýÑêü#™Èm§G£åv›ÛFÏÝÉEOÎDmìê£6ÙÕ]“¿P±ðz—ºSzG¢ýÈÉ/¼ €Ù´Þ)yÆR ø°"%IÌK•l jŒ<>“õ¡•ãÁƒÖX¿'ƲÀ|>aŽ.øâºÃBA¾¶,Æ‘Xð‘œ_¿+¬kÞ8Þo­>^ŸsÉÔkQ[ÎXmÚIVuYßKô©"{ÒÆ¯³Öµ´Ì⽨ƒ¤[ß6? |ªõMŠ u†ólÃWOÑǵjG6CÓúu~PÏ7xø1î _4­{Ð4hn/8µ˜äšrk3¥é6ºÕ ÒIÛõÓá­ÉK‡×Z¬&‰ÿAì úÒâ­t»7Æô¦£œQ2@æ•ü'`éb_;ÄXã›üòüÈ,»d9êLTTßnh~tðýÎÓ5«.,Í¡rܾûoò®.§qïxÝŽ„Pfʼ„´¢]‰#À ÅpvÁß ©ûÆ¢«é^ˆÄ±5±“©LUµ¤ìØ“É˧oÆ£ñØ‹ûL¡lþ³# Û˜qO“¾¹Ð,¯èÇkÝ6+Ä&?¶¡†òKäc½¤¥&£æz} ЬèÁQfqÛivM3DnšTÑon ¢å,·>,gaZhpq»ÃÑ02Ïþɵ¼p­\¸é„úÝá—EŸWØQÁñÛß],øpjP#‘èéoJ€ô24r:¯8¹6.¦Š64•KKôó+Ä´*Æ’Í[|ÝŒ…C٠ʢ§º1÷ûs« D˜,ŠóÞ¥…·_§¥MöŸX`1o} R~H0…H!è/ Õzå+Ce’âšfeÙë5HÅךøâ'1¯.ùå¸ Y>$¯ÀÎ ÀоpÀ ;XÓØY 67¢¬Œ}5ù¬¥Këç²óµl¸çp [ì×_Ü6¦ ‚Qol´ž±Bù®4@Äo á†þÓWk-¸Äy7ùGZ)/fìßu\+rNĵ¡jÓ•2Á‡¯}Öy×®yÅZu¨òx¶dв nÁ€ %K‹€È÷Úò=±­ÂµäGÖS]{_d+Ýÿ‘aÝd „4¡Ozß^Óxãµf­Iù¼Y#y¹*Ö«&ÓHßXH‘æ¢T‘qJØÌC[…áêV 7¼sw+Ã@Ô]í¶ W¿JªvN‚žü‰ýñ/DSÇ ¤þi&ᥤ¤x°ßòfòfz裓=l7…çEœsàMAÓz”ó§zx/=µîÝk#°kBÊÖ@£YŸ¢¨ êÔ: ƒ>ŠÑ‘°&~íœNmÛ¡Äi š5ÖvéRà@!ÿÛº]……§ÖÃ۽ĮìŸåÃ{p€†&_ ÷9Ä~ð!¢é(ƒ³ DÖRç3m(¨ 뜱˜YØà  e‘KˆÊ ˜1<ÙF?ˆÒ:h‡ÅÛùùþ-eÃk_WÅÞ“UÊ«Zu³»MV[g\ =ÓØ«Uf¬ Û‡]¿“Íãõÿ¯pÛÈ5dï¤@‰Í€Õ•ƒ.›z X–C·²±f+Òsï Ì>ôѸ°°Æ9Œ°è> õfÜu®ûxÒë<‘Q Bã©JQ®õÓÞ¹Ü ƒ0”ý·{éB RªªÈ|Êc öºçÙ8éiá)¤'V®„!båê0Hpe½‹·C$ñ›Õßä!ዌ?Ö ûÆôJÚH¡?•8˜,•µª…u:rEq­çc‚ÉIïYg˜Ÿ*#G)OÀr;£"–ìÁ Do{ü>BIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/texttable-merge.png0000644000076500000240000000135212536324515022530 0ustar philstaff00000000000000‰PNG  IHDRxF0Ê =‡PLTEÿÿÿÿ¿uIœß¿uÿßœu¿ÿÿ¿¿ÿÿIIIœIœßœIuu¿ÿßÿÿÿÿßœIœßÿuÀÀÀßßœ¿ßœIuœœIuœuIuuuIœIIuußÿ߀€€¿ÿ¿IIuu¿IIuuIIIœ¿ßÿ¿II¿œIu¿¿Iu¿œ¿œ…PãKIDATx^í–çŽÜ0 „E5÷¶íZzoïÿ|ÑP¤Y\‰â±?,íXßrH{)N;…8‰}bWð«¿+x‡lÿ?pK²¹À’\tSXVÇ¡‚žTV°¦-‚cd#7!9sMDÃ¥!â °Æ"Ó€¤BÆórsðàž©ùÀ=!¬cÁD*£Õkb Ƶ`®ÍÕ\Ý$i¨X“ V3Ò46ããd¸£àòðúH7oR«»éßxspï0cŠ2enBˆ¦ÌŒwÚ \À¦ž†þ·ÁóÒM×ÀÕcÆÊjˆ†Â¯£J¥[Y6ïÞ®‚_Ô?Ü(;–]WÏ¢zûkà^ieäL{O4^»õ¥`Ãm;I§nÜ-óBôaÁ 7`롽jˆ #•‚çç—‡Ï@ZÓŒH+µZ%à¾;·/—‹ó]í(Øe+,>.4Y¯ÅI^ð1Ê"˜5ÎV¹sQïöæ%5Æ/„„ç{ì¬eBqBóœUp‰²Ì3«rç}B¥·`v$­Q·Ÿ­HM UAž AmÀ3Œ“Ý™‘ý6c9 sWÏ‹Šà`õ¤UuD’PÀÅ×_Yè¶ ÷‚(KÀPÁÎoî 4Ä ¯¸m"Ø×ä=¦¼ûuƒ1óâŸ?M{A”=ñÍ%™Ñ‘þ•ÙƒõXþ$2€³N™?û²L™eÊ,Sppp—)³L™ß‚7‘<ïi`IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/texttable-split.png0000644000076500000240000000136112536324515022564 0ustar philstaff00000000000000‰PNG  IHDRŠE¢çŽ7‡PLTEÿÿÿu¿Iœß¿uÿßœÿ¿ußÿÿ¿ÿÿIIIœIœu¿ÿußœIÿÿ¿ÿÿßœIœßÿußßœ¿ßœIuuœœIÀÀÀœuIuuuIœIIuußÿ߀€€¿ÿ¿IIuu¿IIuuIIIœ¿ßÿ¿II¿œIu¿¿Iu¿œ¿œÿpq<%IDATx^í—‡Šì0 Eãž^¦l{½×ÿÿ¾§k¯×~°L& k–A"Û܈cIru_½{e(·ä/a(É_$"×Â(VÈr(Vu. ¦ýPÇñ(TaY™f¨s”dÅQ° :šÞñ¡7V$P4&¥Pð2 hTŒÊ¼Üí 0aåPF““„‚ ”L=Oµ‚±Ž(>s²\ÙvΊ¡Ž(Z¨” RšF=ÌÆ×*r3|Ú‹»Ïy‚:ÇÛgŒQå~ƒm‘oó{?wü|˜Å´î2x¸e^:w>Ê´G‡yh+† 9J'•ÂÒóô9Šùúm·å}ýŸ+‹VæÊôvWM_ÎC•öÐ#¶kÚ!úóQh~lBuÛ:Kß7äd^„ø¾ô ˆìXzÓ> µTO2•£Ìïv´³h¥izlôt‚T†2v‡öÃÒcr¸© «`´™2há;~$Y† Ñ{¥ä×At²lIžª»ÀGþZ‡•X>D¥ût¯ €‚c’å(£ Säï'*fÅÇ1ÏuDiÉ*/aý;æX‚L–£Ì®íb\Ší+sSÏ‹J(1AN«i@@0)?þã…´y$Y†Bþ—¡°VQa_ %äöÕ«BÎp{‰Á›—pú5yw1©IvqgåªÕ_¢¡ûu½î¹Í¾îø¹ã玟Q…Q…Q…Q…;~îø¹ãÿú¢Õ€ï<IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/udppackets.png0000644000076500000240000006020312536324470021602 0ustar philstaff00000000000000‰PNG  IHDRXq†8J\`JIDATxÚí]˜EÓî#˜ *9K†»ã9(s@‚DP1‘Ä (™C2ˆA2 w䜓 HŽ ÿ[]3³}Ó3Ãùß»00Ï>½Õ55ݵ{ýnUWU‹‹ÿ]¸p_ÕŽ]nÌ¿Å`»K¥ØzÝ(êºpÇÇ9òØdêÃÖç«NÓñ­Ç\<¥ÞeÓŒ­K¼®L}ŽrlƒôP‘þ‘ef^ŽmÛÓ/ùUq›ˆÇø=¾rŽÒ¼¿“ÞêuTŽÛWÝñËæ¡ŠKþYycÝ>tǯ®‡d¿ ïÛMÉnêõžšã—ÓíïÝMÞ_{oµ÷ƒW-Yx ¿$³·Ý ·/ƒ›†ÿ¬¼'zqÓžÐdf ôÖ¡ÛG`Ñ…„>ú@è¡„>^Ó@h“{þüy~Uÿ9v¹1[üƒí.•bëu£¨7êÂçÈc“©[Ÿ¯:MÇ·sñP”z—M3¶.}ðº2õa8ʱ ÒCEúG–™y9¶mO¿äWÅm"ã÷øÊ9JóþNz«×Q9n_uÇ/›‡*.ùgåýuûпº’=þ‚¼?n7%»©×{jŽ_N·¿w75zí=¾ÕÞr\µú@è¡„>ú@è¡>7— ï½ \£™YFÿ§@ÈíKºh.kÔ¦ ÂÌø/kÔM?WÚ¾“¾kôjrª“Õ¿Â`¼¿:¾EŠ¡þù÷u0¾²¡#*_Á=ÂÌÏå´3ÌWÁ¡ÇDß"¼:,B›—aÐ Ï;—žžn½ªoùŸNQ»Ô[lw©[¯E½Qîø8G›L}ض1Ø&îøÖc.ŠRï²iÆÖ¥^W¦> G9ê 3cOüOƒeÐ>wþ\:þ㻦4¸­¾µzUfǶ#.MeP%_ò‡êe–QÇok{ÌÎ6)›®ltGÉúç⦟«,XÆP»çÂ⸀¸ý‘:ÞåøgëÍì¶¼x,Gú"ã¶Òz¬czCgp{¢‡7í¹MfÖ@oª¯ŽƒÎ®QpGGGçÎ;÷æË—/~\ÜÀ+_:EíRo±Ý¥Rl½nõF]¸ããyl2õaÛÆ`›¸ã[¹x(J½Ë¦[—>x]™ú0œåàmþü Ì‘#Ç‚ øƒ¾"®ÑóΣÝiæcõFÝñØø‚ŽÏß`\>¼ò…¶úÖ굈*ƒY§ëÒT\ '¬;*Çû³žÆÎ_8wÅ]£çΧãuéÞßj¼­á„BÖ8Õ1{ÌNíÒue£;J¶©c¨5â–~‹;ðØ®V×(þ@Áßþ:ð7‚?ë/IþÝ ¾Ô¶Õk#ºÝe[É2ì÷ÚxÇ`µU6ýq¶mm}¾nÌ6~!nÚS‡äØ«-^ƒ·M¼@ü@4àЗpÑ ä,P €",,Løÿ®®Y³fÅëŒ3ðA§¥¥]‹×ú&?F—øR„ÉRi°¨8Hà•/´Õ·V¯ETlÌ:]—¦2à ’µø—¢Å”ôÍ?—~Å-ÂôsiɼSŠö£±YãTÇì1;µKוî(٦ƈ!ÙŠô]ç4¡/̹ԫÕ"Äß&ˆ¿ ëoÄÿw5ýc,®Ýè'o&- â¶qO<1§qãi/¼0£Q£éæ+_:EíâËj;vé½nõF]¸ããyl2õaÛÆ 6ÜÞzÌÅCQê]6ÍØºôÁëÊÔ‡¡ËÁõëóÏ/lÖ,*~|²³ûñ\!‹~”µœS~€ˆÏ=,,z˜ˆŠ×°Øø°¸á"&^  Ñ z¬IÄ[…_Hþ0“_H~¢›üf–k03lÙÊ ¯ü\SZ<Áb.Ü5µL›5NStá-S¸×š—¥ÊdýD”,¢ãÃ,9Ì-ÆHeÆ Cƒø%s\|öû¾=æ5¥/Ìù´«Õ"äõñ·Y³ñב³HTÜ[ £^û5ªÝôè×gð+7øRÛV¯èv—Ŭ÷º1ë½6Ç1Xm•MœíF[[Ÿ¯³ßCˆ›öÔ!9öÚ¦ï=xEδ˜Žs›Ã'[°@a™šŸ—ËÆ·´m»¦M›u/¿¼Ö|åK§¨]|YmÇ.½×¢Þ¨ w|œ#M¦>lÛÔ†Û[¹x(J½Ë¦[—>x]™ú0t9¸V·n½«]»ê… á“5sæ·›OŽ.Û«p–*CEäZˆa‚À8ƒ%Tf€ âPãvÉ}ýEɯˆ™ þA¢˜ä/;À »ñ{ȉ–Óæ§à²ìœøÁØãBã/õ]U† 7ºE„~*˜ú)7ÞÚøïÓùüåþ˜aÙJ~)>˜{MX„3›…¿Ž\%ª×þdWõ.««w][£Û:~å_jÛêµÝõ^7f½×Æã8«­²é³Ýhkëóuc¶ñ{qÓž:$Ç^Ûô½¯ÈYS³Ç–˜ô§@þüØ(̬EˆmòüÒ5 [(˜Ð²åòV­ÍW¾tŠÚÅ—ÕvìÒ{Ý(êºpÇÇ9òØdêöAm¸½õ˜‹‡¢Ô»lš±uéƒ×•©C—ƒkY‹›^}µª´õƒÁ"l1%¦XL<!,ðÁ¢Á81n¹øyxcš¨<F -ÄX‘-zÌ#—‘½<‹’F'ÆKþ¿ÒÛh“ÿ¡1⣹âëedô0ù úÇsÅð¥dúXô˜ø¬ÀÑ—®laéþ46y$’xd¬øb¡¸Øø‰ Òû,‰I´ôóü$ñÝ*1eh9™~d€A°h0Vôû]|õÜž’_ê ¾߯“׈æ?üU¤Å\Š,Â&ׄEø-—¹ŠW­ÙcSÕw—U}/±ÚûËù•|©m«×Ft»ËbÖ{ݘõ^㬶ʦ?Îv£­­Ï×ÙÆï!ÄM{ê{mÓ÷¼"'X»PºFó#\ÆÁ"ôBxÕÖ¿ü2VÒ•­[¯0_ùÒ)j_VÛ±Kïu£¨7êÂçÈc“©Û6µáöÖc.ŠRï²iÆÖ¥^W¦> ]Î ‡°ïƒyAÇrü÷qà¨X¶S\b÷1¡lL¼„>^@èºG(ëÚ´ÁŠet¹ùÊ—NQ»ø²ÚŽ]z¯E½Qîø8G›L}ض1¨ ··sñP”z—M3¶.}ðº2õaèrp%´h±ÙtÕ!ÌŽbýÄŒÍbõ²BÊoOé)ŠÀ6PîéM^»Ô³lðøÁË&qí~áý™"5Y›俻—höƒH9C0 ì/-'épú%ŸFˆAþ=BÞȬ"ÇŸ»'iæøqÚe¢Eo&H@ׯbêZ3ʃ‹C'è×ëá®ÏE·Yâð1Òó·þC~Qâ †/޽×â!¹F7W}7¡ê{pµ­àWn𥶭^Ñí.ÛRžf½×Æã8«­²é³Ýhkëóuc¶ñ{qÓž:$Ç^Ûô½¯ÈI¬Þu¢f¼ö} ô0€¿ms6S° Öë¦?ˆä3„€=€Ö÷V“ Ø ”üs7‹$ÿ@Ñb²H:-ª 7øAyu*ž„‘ÒŽýµŸˆ3„€ÐŠ‹Á˜Q°cÇišVKœt~0[9FÉÀ†€ MûDüR ƒeÙ}¶8t”¦^èóýd®øÇ¤0pný[ ZL7a58Bé¡„>ú@èáåÂٛŬM¢ÄWäßkò}c¥c³ÕB¸F#e¸øçoÓÖ?x`ç1†K~˜2¯þD@ˆ=B H@ÇÊþÚÏĉ=B‹*@ˆñ—60r¨ÉÂ@XZáQ¹GÈéÀ3ìö ý“P ³î:+„8ñ“yDê |äN·$×+P$Ü­!„æ½ç.YÌÏB} ô0ذx?1iµØuˆbúáÀ„½r!•`,\ætßÛ[<÷-AcåAÄÉü?®Û’Åþ^óʲu"dnÀ½½Dãïð°ô#gßÊ ¸§—hú½8{Z`otƘPqbüyzŠ7§‰#ÇEѾFò®ò’—é¡c™ï¥ûÞ²Ýâ÷í´áíM\pBNîÏEç™âàQ¨Y‡äýJ¬Ø+æm¾ùz‹V‹ÇBÃ5jÅþåy«Ü…ó>ú@è¡„¡„Q2Ãï‘q"%MLXIkúéd±h'-Ĉæ@è·Ùbø2‘ž*>›O›aU¥Í×p¼HKcWPLRŠX°à &lGðLi)d÷¼;ÓpжžB†Ñ(…@ ‹>Oز߯gΊæP ÓÛý"Þÿ~œ>K.з¦ÚÁ‰Úr Ó~µˆÌ;ÄÊ~³’0?ÚKþ©ëÅÉ3¤¨7¥hà埈!HÏ£˜Ò±Ë…@[„´¨ý}jש”ãû ?Ás¾Eèá¿B?jÔ †<ÂéßCTç™SâÄ ò‘>0š€ "S0ý,eVìó¶dà_±ÛÈH½øëz’ þ + ó:*¸Ó'04ƯþªÊа~v}Â8å²F V…u¸¨Í:t;ÓBÐwú®Ñ+¿GÈ®ËR2‰­ìÀ Ö í„ 0ºJõ7–l7~‹^ÚS®ª5ʳ€Ç²¤œWÐV­:쌖êoÌË2”3ð›ÌUdWi“¿tÿÑà@ûˆþPp~³¦/FN'u˜Åf ‡RDqÕø[ú.n÷·bª{‡¾kÔwú®Qß" "‹;UˆvykU|F­ÑjJEl\µûYløKìýGŒL0 ¢Ñ4àGñ”?wPi¸´!§þhЍüiX¼rì¸ËA=Òû(Ü™æ–ë/T¢FQ‘ÕãƒH¢Ë™)n »ío B!ºpó\ŽÇÆS<-—¨<ØDMÙ…¤Cðï<@%¼¡I&6”üó·PÈ '懜EhTÛ1ݼ€ÃHË:\ìlú¡oú®ÑkƒÁ"l>%¦Œ™Gˆ… y„ˆÚOJ§’(q¾²¹@×%Î$SŠêž iÏ…dÇàBÂóŸ8kcƒgK6jf‚žœ,ŽŸ¡Äy^è(BœJ(2äO’óá<2€¤ç0„Ác.Ø5ÕB`鯨ž*æ•–*ö3€tX{Ï~+.œ££(ÿ¡ý¯døÂÔþsñ#çdçãWñ bu˜>2Ç&ÛŸ‰é( {ˆÿ\šØvØ ƒÛ",Ñ/„Vñ9ÓOž•ö¥u8tÛ;ôÐB¯9 œ>ý|Ðg“O§¤%¥¦'[Þ2…V¯õV¥ëœz[e³ˆÉigðô—&Ga ¶,Âg&Š?’цþÚ#Œ¢'X¿˜žLKÿŸŠ)kűS°!Åe6wê$•^cÀÃ]L[ÒÙ²d9ÈPL>K7¢¨÷ŒâŸT˜TÂIaë©Õ0¤¤Ô3¶‰Û4ã¨kvðЛž”z#™³ý;Õ"Ä,OU>G¥Ñ*#'Oï¬-”üŽ (,°|·Øt@”—ŵQ:àÅïD¯T#ƪA ™¨¦ý×JÉGy5{źý„ކê¬8¡6å¾CF*½ „YŠÒmN#ú¤žòø¸mS5à6_G©·Ø¤ÙÞb<ÕØU=U‹PU­Ã8mï¯Xú| ôÐÂkc äÃ'õö ¾Ï[Tîúcr?86uá-S¸aõZoUºÎ©·U6Cl|vuµÂÊ `¹G¶_-³¸•^Û"~—'!€¡íO"%ɨ8†}óRaù™®T–ƒò(-'ŠnsQoXTð+R¢Å ñƯ"é,ã»äQMÙ›×6A]3ŽÊ±f硽éô‡Ææ­3òöˆ!B:¹ÂÊ‹£ÄZ%±²oø[|³‚ôôúlž8|€=¼¢XywYƒ´‚RŒ{ËA:zü°&{/Sµ(“ÿcYƒTBÖOµá7<¤éG¼£Ò¿Bn*µÝb“¦ Ǩjޏ%µ(*Ã:Dd)àðÀ©=¼&ú¡„>^[@#°Tû°èÑd‘“mhàÂ[¦pÃêµÞªtSo«lÆ«¼¬]®HËò5EØ2á&1g“Y\ûG*´fA°Ž6²iõŒÅµ±Ž¿¢Ý6€PÖ&…®DŠBk±ñø´Í¦iZ½nl6íéz³Ñif>‰ºšs­Ñ®JÑíhiéb÷tTù–©¸¶\‰ve±içËSéx¦Ú#røô ²%g”¤ÿP³ •V¸H7Ê­%OáXSÛdUµxLÓêuc³iO×›ÎòÊ1æ5œÌ8Xx¨üb¥@ ø¾ÐáK Ãp j°•ö"Aù” @Ý‘ãÆ¡Œ|îà¶èT&.ƨ™CÒ^Œ’üxtÏùF1îØøÀ£9 ÿ’·Mc6M:Î×QEê-6iú[¼büÑ3#mªã†Ùƒ³ÓrêŽÊŸØ—>?jÔõ-ÂkÊ5šŸlãžµ?^Ú´ó¬çºÌy¾ëܬ o™Â «×z«ÒuN½­²© Ýç5®7:WåÁ·Öå<½ÄßÈbÙƒDᾆÅ3t©8z’ü™¹>'Óû…Õ$€q±i„Šœ9M™Eúäà|¾ç'Qý0 è,'ÝÿsœöÃîêIE¨±_3Œc,ÃPËû1¹b› ®GåX³óЀ‡Þ4ús=æ7móSõJT#;ÌHò“åCs~.:üJÐr éƒÝ»_7Š-Èt†cçX”öóc7´Ø#Ì÷…‹'ÚoÜOê…£uá6±OÚQ²:øQ†üBT©¯¬& N(üáüfç<çñqÛ4¦jÀm¾Ž*Ro±I³½Åx0ªÆ?T®hêJ·9Ž4ÒØ)ÌRi0í§ŠÅÓ©'|רoú®Q?j4(¢F9ïÇl*§‰ΣØN‹˜O,pp{"þsÝ>1Y†•N\E¿åaóÁÖÿ;ˆï$yÀÐÌ t {º¤OZI¶äÀj<$VïSלÑfQéà’GLàXùéëÅò½Tš|úÚçã#)&q>rH&yõùì$üÂÀ™Jp¯ü‹beÁß‘ò×ÃÄ…t±HÚÙàï¹Ààü§øuX½OœM¡XføC4j4c° Yøa‰Ôs÷¸U=¹H7Ëœ72ˆ| ô]£¾kôšK¨Ÿ9s:>èäÔ$dba-°.¼e 7¬^ë­J×9õ¶ÊfSÏ%K Œ‚õ†„z.*Ý{!1.ØJ«ö’TA1Q2CùmH.LØE«¶‘?â-þ¥;È‚#»b_þAôùLßI[ŒB–Óå7’ƒ ±—¼Ï$wŒ²àé°À0¤”ôdÛÄmšqTŽ5; xèÍFOIOÂHæíüÁ*ºÍ´L«öZòš¸‹%eÅpÂ6ø3¡L®Q«‚6²)T~äW°ƒüP5ø¡dåÁüø¡€ã&Všüˆ>E~E¸Qn&+ ¹û¼é “~Öãã¶iLÕ€Û|U¤Þb“f{‹ñÈ¢Û½9¡ÞÑ)ªXyÈ L‘Vàä¦ÊÕÐ@aß5ê»F}‹ÐO¨¿’ õìúƒkþ=læÁ)WL6,¯ 0 ›… bE¶É-þ’’›ˆŠœ = g€)§ H'TÎ#ĘÕy• ¸.iÊ à2*Å Í?TWFåÿ*¿å ¹„zg+pµƒè'Ôû¡ïõ0¸jÂ.‰F!!8‰‹dªµ1‰>œ +£ ZÖÆ¬*ùã~KºT9rMðW ©Ê2¶ùêú©*çk×Ig~ SüÃ4}~2E·M 4÷Ã`ÅZ{㬽@²ÓüZ£>ú@èaŸ>!_¹hdƺ¦÷w c±£ÌŠA’iÿ}¸ä/¡ð‡„Ehé§ò`cüµùÂÈcs0rH¦è¥ºe)B~ )¿Ò :}@ˆ=Bª5j³{9[Îû@è¡¿GèïcÑmý#'¬ÅdÊ€E©F»¥¤Ç(tÊòþšú,OO œGÈüHè6˰x,~$ öüO}cðW …ƒy­bâuFŠOæR±˜GÇÆÏ¾þ U"T¶Ç˜ÞÞŽâ;VK´”ÿhJÉÇŽãÃc £‡…LÑmŒ)ÿ•I+pl8Bu+Ðö1ùçú{„þ¡o‘EÈ¥¿úý..¦S@㙣ÖhŒ¤#Z’èçÄ©#ÑžÄ4"”ôìYJHK¡L|l%¶£’¤éTNóxR Ö(ÛCH8sF<*R“E“ïÉZ²E­EˆYÃ3¼÷°8yJ>.NŸO »>i•œï±ûX ¦(@ôûÕ’~Qì<šþヾù‚ƒ•¸U‹RmÇORÞáñS„…\q&$,ÂÂ}0µ,õÇÜãmúçú¡oúaZ„5:P|>ŸÒÚÆ¯ÇNˆ:£È@‰•tDŠ‚>aUT@†›5VzÌ¡šÑŽù¿Ëÿkþ"`@H$NT@()2± #î4‚ùeZÐF ³­Ù/–ï!àŒ!'Â]"RR¨ ï垣bÖfBA$²éÛDA¤{qžúõ2Jøy¶QY¡ô_Ö‹]ÿÖ!˳œÒKÂ¥×ôà x ,Âo×~‰A~³¦êlú¡o:[„>ú@ ®QÊHyÜHOO2ÏÈHå¡Q:í¬YSf8í ÎÞ*6주.–ž"ª  öÿP~*ÎÀwÊ@ˆ}¯Û)­àwŸ¬Ÿ£0n8÷†btí~:#©ŒÜûüz)gx+/ Àÿ‰Š3 l|QaÏ©6)jÍTÌH¿ësÑeýPàš21ò‡ÅÖƒ”pRZÊÇÏŽfo0!SDq2嘤H+ðÂyýëç¡„>ú@Ô@¨—X³€Ð¢cÏ/õl ¸² € H!/.#GPƒõhªKؼUÕDQbÍB°ý±Ì#ެi3•j ‹[_ëÿ¢ãÑ€•ÌðÆuyªÊÒk°™bíª%Ö*e¤C22)¹©en? .&Ä~4—ÎåƒK#‘Á Ô…ø@è¡„ÎbÕ­8¯,ÆHã DTˆÇ1Œè0bZM& ¬%] „ð9ı¥„±2=E·Säy„‘&.ÚN@È!—/‡ ÂüEu`R9eÎv4×q¸x&ý£9„•ÍH"¦CÈ'+ bç0ᎃ´½Š`õãBåÞónãñР–Áë²-]BNЕ t%š¼ò• Ýn»×vè„b=ÌËeƒ_Gøß –qÔ†,cŃ &\ 8}‚ÂgÌ\o¦ãh=b7äi37Ѿ ®P_*ƒx™j24(/ý@§Opþøq\ßœ-bź½ˆMI±ÆÙÁžGȵRWî¥}A¨…Faº=%‹kKý`—5bpÜRɯG€Ž£Ð Šh—øÒNGH-Ž[â3=8XiÓß´/XHʇé ×(ßÌÁ2ºdÛ÷Mgóƒeü`™Ë,ýk_~yG»v_}UïZݦÍöví`¦p´á•WÀ¼íµ×Ô < 3nÙîµÔ6ž˜¨y6“‘Qñ\Œj³ùºéÕWÝMÃÿÜ"äÆªÖ­y:Ë3Þr[„px6O•²áâCYmXlhÓ1I O ö‡sEZ¹4ц%«»€%í1—r!œ«ö‘} µ4Ÿ›D®¿Ô$ÑjŠä'~„•"X¦Ûl:øÐ)‘¸×À€°çoL£ùvœFÇó¢(ÎãŰaá=ó-e ”¥ø¹€¹S®ÈPƒ¿”AI:˜±‡Š]ا&R(Í1¦KJ€|”ÛFÍRXE¥¥‹Ÿ6g5ȃetɶïÛe°¹ ÔŒ{g™£¹SõÝDÙµœ…`]Æ[BYyq[¾&V“k·j©œoIt´·ï-·Ä*òWõ)ÿ;‹0ÃHE™°§¯Z‹7®mÓæ—çžë3ü‘GÖš¢ø®Õ­[/hÒ¤sÕª}êÕ[i2yì±÷«VíQ³&®jÔÀë‡5kv­^}âOlíµÕRß;¯qã®Õª1úÚ½zõ/¼`3†­›M­ZÁ0šòÌ3+V$GŽâwÞYâÎ;«(0ê±Ç6¾òÊÊK™€ÿ‰Eá¾ô¦<®aÃu&Zû!,6˜,¨š(Px8qjÄùd ýÀaL(úõãêýB2Å”b§0Ršz}D&˜á6¤TÂAdGN]K€gñȲݜª*šÌ¿î/ñäãÔ…HŸ¨"ƒ€PYûb•BC¶&µx;M ó=}J\L¥­¾*²ˆJ‰ªô­J@©U•¾e¿±×ˆ×» ùyÿ(#mß·½M~­õá¶Úï¨F8g¿¢j²³z—5lÔ辡öÇ;k}´¯¸ ÙÞQëíÕÞ'˜ FW© ²Í7î¨ùÁfG#L¾…´–aòm)a;zù)—4ªþc‹0±F·uµ?Ù…)ÛžxmU–pkÛ¶=ëÔ¨‹ƒ¹Š…‘°Š¾ê)t»ãŽ5mÚ,mÞP÷|™2 d ÿeË’å¢E4m ü€ Ö„ÇÝÎ'ÿ]Ÿ5kïzõ€… æã,`Àsaù½Áœyn¾¹Ðí·ç¸á~Û D ¶&õ„Âÿég¿ø"‚T¾< _Ö†„\ëûyuGÑî`Ý‘F#Ê…n¬#à%¢"±¡­ð×5ùkÌp.«Á?(P\&øK¬Yet`ºÑÔF„3JˆŸê|k0&«Ó9™Ò‘n“º’™é¡·k”ÛùãZä­ôDtÇyÕ»¬VVj Áú¢õßÍUúþðÖ?Tï²oK?Ý7w¹‡ï:OÅÇq‹¼žD»ø#à^ ù\gÔë³òV~2oå§L¶'ä-Oâ*ûÜ€šlÒ]£°ktÛP¡Ù˜ÜåÉøy{¥'0Îèö³kvßH¦áÿÒ5J#龡|ã¹J?pß“_Xóº]£pfüz×­ Q/— (Ü™pHþðôÓè‚A¶V°¡Iùò ¼T¡Â”§Ÿýè£c{ €÷jDL7:W=gÎ%Í›ãvÜûí“O‚RôŽ;¾}â °á‚™ƒˆËP:éÉ'mH@ÑÖ×^û¬vm0ä¿í64à¨å÷fÍúׯ_!OпzàŒÙ'ï.—–¥å›µ&N»}JW¢|„M9 ¦4`ÑΑ@جB…¯¿ÎOYaÞ¾Üܹ„á¸Â”`n^²·øš« ² b%ð…†› ºuÎ(œb=ìÿÉä®QÛa³<~Y@ü[½Yvt:ßé$ßwfÆ5zýíwãÆ*¯MÔÁgô¾—;ïÎbÕÐUîùÁ5?ØXû£mùc›Ó/ø,Yõ_ð7ÜQ b³±dí½»¬f÷ m~Îÿè÷¾Ø—$.Ïà|/¡öGÛK>ú1…eu¼1Û ·Un5 O©fz, ï® n®Q7Ç^À Ðb¾'Þ[¥Ú ½— 5r”æíƒõ8ºò®Ñÿ‡Eøb¹r t«^ýà›o®åÞÀÛõúë‹_z©Ì]w¡ë͘˜5œ¥x "<›Ìkg»v±ùèöçʔٮ<‘ÍAàzå¼yÑ xÞß±£<­[ÿÕ¡£rÉœ9­yÁ„Údnâ€ÌU­¹¹a¡‚ˆ©1ÏF¹ÑРܰòvîÅO9ã)ML‹0Q>’­)!‹ÛM ,y¥”…8š¤WM­Ñ¨ŒçŒ{ÐÕ®¨aúùsÿ‚?TNŸøWóu¤[¢tº‡|ß"ÌŒExCŽ{qcdÛi0>`‚½ï&@ÎÅk «ìóƒaÕì±µ@µ6x[°F[Ø|ÑçǼù{l§Åå^’ë¾ûéüõ·F¾ú ¼—¸"^ž ÊM¹ ƒl|žõGÑÞÉ’ýFt•~ª/°Ð§„ŸepÒ–jø)zs—{&fÌóqKÌ› c;ýñÊÔœ%j¢+ûMwF¶ý5à#•f\Ö[’‰)bàõe9¯D›ñ'MXy;í‰&˜Úuá­¿/T³m…&#à#Uw7UÕ;—Ô^QM*MyV¢åS 03±ó*\™³PƒÃ"ì%-‡Šs³‹)aci¾ …ñ— ¡âÏæÍ!glÆôãâÖ[Á T` ,•+@”ÂGMÎ-&ô>]ºô剼_,)+õǧŸL.U¢Rñ8Üòx©RÓ-AÚO#4ˆ¾÷^Ø£@k˜qàò±m‡{ß‹ƒaŠ{–,Yð¶Û°ÝøVt4ʦ^á òÐCQ÷Þ[4G0t©V ˆÎ®Q ;$`ðà„É‹{ñ€4lÓ-rƒcÄ~T³æÀ„~j*T­@«É"l=µjÅHk»6B7ñÊÚê[«×"ª 6f®KSpaˆšiûKí ²ßõÌåªÃ¯·Æ©ŽÙcvj—®+ÝQ²M¨á‰ß+ÍÉ·ÿ+aj­ñ¶HŽu>Ýž]×Tï² l¸ò”k€®»+? xrD¼<…2è꼪nÏ¿ï‰x– ®ìðÿ`Ú,BÂ<«óén~=¥óÊZm”f»ñvôVl:ºVÍÕL´†Xàeì[‹ÀÆ?¬)W•³ÄÁƒÁ°ŸÓˆýy7o1Zº½Ób¼%fRÝJ2źox ïñ:Ÿì¦§tßHû…ÐÏ{Ë•¸˜U´… m›ÛŠtû;Kg‘äõü,‹™â;Kã:-þ¯Y„Á „Æ0U&LÆ;o¤ßA|pOûö¼G dL²Ò-`>yß}èzê¾ût ÄCãòçGoùܹ~öY[lr­–¦p·¬’#Çh?—€ oBÁÛoÏ)].wn ð†‡ÎkÒ”zEŠ”¾ë®¬Y²¹ãŽìY²€Ò1* Æ.FÉ›~ZH¸CîDÞ—3§eb3,K¶,Ùoˆî07F´!‹ðÆœ…¤éöÑòªï,¢”yæ+¶ù¼€°|@]Õwþ0†×¸N‹r9 G6ƒ^<d¹†nÙyzc΂eŸ¢?öù`s±;g¿ùNf¸½@e t­[1; ¢[ÂÛüx[þŠÜ{Ý-¹Š?Ü ½d‡uY ¬Â†hÉ=ê~¶·ìsa—~º_-é••ø´®ÊkÓï*S¿pd2Êg­×)Û9XZŽÂQUÚN“¾â`yl§EÀ~ 5ÅÖêa|L× &Jþ‡$®¼÷÷oŒ—@X6wî};B2øacf¾ð]0¤6›¦•µáʰ‡6>òlÙªÜsÏ;qq0û̉l>Œ¾÷“§â®›nŠä %ðݶØJ„UËa/·dÏJÂ…±Ëˆ1ŒzôQ`o±4aGï¾åÐ!pQ³f/‡‡ß$oá=BÌ«†„¥ÇJ”€ø-î€LP:‹·ÐRÛnÃ[8{Ñ#øj±é»8jå']ç4údAË´øh~s¼ò…¶úÖ굈*ƒY§ëÒT\@×9/àìr.PrÅ%l9¼²Ëìç?YÐʧ:fÙ©]º®ltGÉ65~²°UçÙÏþ´éký‡‚„ÿ¶‡qcm›Y×wÒ ,©ûÙ_ˆ¯±!û ë~¾xÀ6Ÿæ­ø8lGxa_Js=lÐȶ¿°¶ \£]Ö€dâ½Ã;KÔÌY²6·ï{²7[f@šBµÛƒ’%ûM¹Ë5¸­@eö¬b—‘ ÍnëÑ`óöf 8Ú…jµ@ÂÒ}s!¤Ò÷qè¾'zóShk“ü®d;–x¤k¨ ûŸrx·`j·Þ[õÖÜðK›x ~H;ø¡%lK ÜüßÂàÜ#òöž%a’{„ØÞcO)>Ÿ(U @òh‰0#﹇ªV•*mR¶ë¬< PxÀB8Þ0Z2ŸÁ½qo/¹îÖá„K¥Ï“cJ ê˜>‘ãúë;ÅÆ¨<ÊÜàÑfD„Ìp>ÃÒÔˆG#¶xwåÍš-’R…ïÄÆ‚­}•*€.N„À¼6Kìd_(¬C #œ«sePL¥¼y7J7é ù\ #üº¼Gxô­·ÚEF¢Ý¦reŒg~“&04oÚlˆh0h|°/áþe‹9Ñýä¦Ð –1¢B°øœKÅ«Úà¶úÖêU™ÛŽ<º4•A•¬/©WÍ×sêømmÙÙ&eÓ•î(Yÿ\ðŠKljø@ø_BÎ%\Kê­Ó±îgû*·œD‹RÖì@¯sÆuÓ]Å`!ñbUâ‘jÉAfLŸ ,ÑàC¹œiQ£aYk²›p[¾²ÀäpïÃÈî>ÝÿÅQ¾½èýêö<À¨p]šD¸ ‡¼0 a§²éYôwèsŒ|º¬®×ëŸJÍ'°ˆÁèså®çS˜8<œhÐÈô ]É®ë˜nUøE±§xËÝeD–¬Ð‘ Òî*]Ùuw¥'ÙùÊÔJ/«Ôü›Ê-&¸„™ýæ\˜>v%9ü‡,<¤6Š'[¥H ¤Á‚,P•TýN¨"ºý,¤”`x_W¹Å7‘¯þÌ A¨-va•¢}OÄs{·:>ÁëíeæZ¡•É0ù™g.iòhY” “îJô² ±t®\3ô®–äP¨‹RnT5¸ ¢Faбg…Œ €ƒÌOk×3ü¥€(ìJÂéŠÁ#×¾Sx_‰ƒÍ?Ì‹ðÙ2e8Fe!‡ÒÀºÕœ=¥M›iÏ?Ï@x´S'B`9¼»Þ@>ÏBU`íliÂ* ¿ûî­ÒMzÕ$Ô{XTŽžIý7¾›S§;šwnV]0Y„ç=L(Ù9>EW£‡dGsê’zð-B²)ó!£EøÁæ;‹UÍ”k”Jɬ¼%/ú®ûFÏþÒ\£ ½ {~–-ø¾L9°»F?•ðóäý}Ž/¹  ¹^¯ðX¢ëŽ"±'àá¶|,KÑf8ÂÃYç³}yÊ?J;5ï,µräërÞ¹aÒÁô”ÙŠð…"ò“-B €ôùÎRVTT»™xú wäÏzýÍÀT´áe͒퇔I™pyo•ë|º—-Â|ÑMÈÑ*0ô*Ë †€ÐʈX"wÑØ½‰Ì¾-}›Hc°€ y~ðˆÒWíž{À¼áå—yƒí¾\¹Ö¹Ô‚±!;c'É4|$*¬• 4 ‡@Y<ýYY×8þ0éee“#žÁ¶ƒUŠ=¿2/‚¡î9 ³……6%¶k³NšÔx' w5U\£í£¢Žuê´Ifâ)Ø œÙ¨Pp­ul‚ú@è¡„!„0Yd)µDƒþmûå,YKæº!›ƒœÀõ†[% þŒÃ[ÿè,C+»ž§ï"t0÷öŸF…Ò·—87ñæ<¥ªu^ ø¹U!ü±p‡#±'WìÁ.°K=þ967 „˜ „˜#Wqc Ì[±!žX¬¾q{ñ‡º•z¼'°àD¶† „;0LêžÈØ=‹9R>eõ—¹¶\TûÙ2böFiÂv“r ­sÉG?®Ë:›ÀC ÕXU]a¢4°¦sæÀ× `oh„k³ÌO¯.ŸòJx8ÁÞK/HK DÉPxÁ°C†ƒùà dB”&òö-ëÿ=®hD…‡?©]þUlàm”ãÙ)ÓPq ]ñ? ÌcëÏ#Yb½,Ò]Iî&b û€:"‰s@~Ð[11°5ñNÕ` Me°Ì·r …säÀá(ÆSv·o?Zþ8ˆÉ—o³,SžÃ·} ô0ÈÑž9i¹¨Ðd$–õ¸w–Ľ“`ÚƒGʾ0„üª@ÿÞR¶ê]× Z¨@ÁÅkÀiIÙèFúDa€–^]Ìñô Õ"†É,ˆeÆheͳJ-&r¨ 'ÿÝ^~‹#<Æ"<·5{lBê!˜…*awË„E 8F‹=B )nÌS±!6ê€úùbš‘gõñÏèsTÂüæÚS öñ ¼EÅ—È|‰i Ò\X R‹o°”ÅnbX¶ë€Jé†(¦Úc3ƒÐY¤O¤¢Òj M ´¢=ÛJÓ©xÏ•-‹\˜eÅhYÿ%×M7!BIJá3äöÂOˆ\õ¼·ÜBÞu×98Ñèõo ˜A§>û,\¬ð|>R¢²Ý!ç»'Ÿ„39‚ô,N.წsµjÓ°a}™¼òoxºåüt°ͨё>Ê8HÒÇSæZ]‚!&Xz²T)¼E„*Ô‚§|\«ŒH@)œÆÐüJ} ô0Èa¢ˆ˜­Eê¾E)#ਤìx¸"?Ú†]´¢÷¿Mk×ÝeÍp˜í EêQ( ù'¥ÃŽAÎR@ú„ ª\Â\Eþ5š õn@Èõk`ÒÝ÷x/J+}?89Ë›yœ›øV–ü@%ÇŒ>ÝÓqn–¬×e¿)ð{‡ìD…9‹]U@)p[†äÀŒi– Ú‚.X“0Cò^wÝ-¹1Y649ª›2Üô}<¢8ãzY²'â婤*°Éÿ×óZ”V•+~lþ_`Ï7O<k)Ñ 6A^ÕÜË–Me»9{öû‹–ð.#Ú|'mëeAQ3uÕ6ž²Yæ/–—°§†©~šU¬hì2J6lÚ"YòƒØNðàB8 0Æ‘,œƒðvòOHø fMNç°þ!|¡-*Uâ”y\œàf?ðÜM2‰OAN$`Ò ÿñƒe2,#_© %.jz“—N±Ñu~Ç{ÝØ¬^ùÁ2 ÏyÛŒÔ;jÏMŽzVµ¤«W¿Ýípùà –á^dŽ¿ýç 2±þÈ€EUâ‘îVZ^é§úÈe} °e¯iµ¹%!0“«0²ôhÝ»³ £f÷M²ÖèF®,‹࡟@ä| S†„úGkË9c´HWムp8x‡’ð:¯âx™;ŠÄ y±øÃÝï,Z•kÖˆRºýVöÞ’§T±úïÃo‰†Œ}GÆ¿lÜRoÞÒˆvÂÔ£·w—¡°O¤À˶ö‡Û•Ý‘`5_Tã:fœQ(PÏD¬û³5BQ¾°U6èÁgŒ‚3¬= 6Ø€7‹ÌWÞÀ[/C=-NÜ…LDŠÚFå}B=c!D¥†>ü0ö»Ëñ øÙoa–œå Û‚S“ºË÷»ÿ~ ñjòÊÒ8HU…JhÖÌ’àAð'KÀ³P× 2ù®UR¤a0êׇ|#ÃOÜ©Tø]*á*;Ðõ£F¯ª¨Ñ÷¨H 야ŸàŒrëß­÷–çÝA™BNA¤À’ï,„ J‡ÈUD¦F‚¯)pýÕ0Ï…``¸é®¢¨AÊ%@3„‰ˆÆ,÷ü Tx)Xýž…:Zdä©Ð;š@#Blãq­ë€µI%ú.粟˜—Pc®p7Œã¢ ¹óª<å3zå딿8­ºLo@Ô(ìEÊ—ÿpbG˜zsîâK$Êĉåh%¦ó”ó+¨¾pè}k0èÝŒ#s¿ùx ›àÜœ²>Ü"çµÞ6 yX#ý ü¢ L*Ãl’GJ[ã8ëàMŸÐÏðãŒ+T¿]?{Ï±ŠŠ[iï`›ØÄŒãq;wÐʲHÐ4pÉómÜ4™ ðØt{UžGxöÓäŸ-lc†êŽÊQkä­¶«æˆ[øÒ)6ºÎïx¯7êŒÊóþØý‹<ã"íÊî’#ò­û¦ÕÇuFÝn›¸:LêAçT5à¨^«àÈ ³îyzˆíª”Äì¶N&9l”[n)&ó¾œX ,ÃDùjä!˜  NGþ&*w]z™ycÌj+O·÷Z3¼‰1Ì&¼ê{ Ÿf©¶ µlÌc­YóyÊD8™d…5c¾ïègáF )J}–5re!,£ÃÃ%Áãò¡Ç ºnBþ+'Ô;>ë<˜÷²!Ù^Ýæ6)ÖÇ eãã÷Ô‹Þ³NæS)6ºÎïx¯7"‡f-ñ¥˜¿sJaºÂVSk ²6Æf›¸íÀÂÌèAçT5à¨^«9” ¯7›¢@h¦ÏÓ¡E&¤%Ê-±D“¸\C¬ºLýêYµnèëx¾®¦:W#ã‘smÛ˜3JP,ºyT“5ßFº Ãë`^k¨¦ ,?(tO¨÷ÐÂ+ „Ìk‚66>{Ô°0¾ª ¥×˜ø0ëàY…Žƒpé@Zó Z~ëP_ЙÍ⦋ˆ1ñÙpÐî‚ BG\v€ýøßhš¯°tbéAÒs·ô-õ Û”lʱè–|aÊ7ŠàÌ)ÔÚ@èTnØ\@ø?8¡ÞCH0žPï¡„W3Îm‚ƒ„p´¬uÒ,áÜPÕ¿â  ÇÏbEŒ#™Vä(ål[Æ?ðWÒø+3ÿÀ¿>L•“íâ8â2t6rÖÀÁ¼CI?´AgÖó¤€UÃD¥Á¤f3”ÀôAzàì_KŽdó KådÁ‘‡ÍCÝ"ôÐB} f ä»t¥ЂÞb²h8žËZЋõF‰×~M¾7èzÛr²xTã¿4ñ7þÞNÀ¤Wb9¡„‘C)c.M ñC_~ (Õ_<2Žô=,€…nt\À¹f?ˆ¶?‹:#IQR‘ ½¶IÇ]>ú@è¡„>^&‹‹õ­âÀQK‹‰«D ê"" š&߉§EÊYq!Mü²ž¬–*ÒÜY´Íà»"À_f€xéqòŒH–üSÖ%6ž^›ÿ(N™ô×…±$ø-B¶Õ¦m ‘CÇO‰'ÔøþLqðˆ8}V¤$‹º# ,¡ÜØå7IOIÉx•Mà¬0PÌÚ,.¤’œ#'ųÉ>†Þ@ŸÃô$qø¤xúI÷-B} ôÐÂË„X¦±XoÙ/–ì{J!Ž&Æô”®Ü#Vì£ÅýåŸÄÅ ¢Í:Ÿ½þh±íoñçvñ×a1iU€ذvŸX¶W”þJ¼ö ñ·ø‘0£â@±ò÷`Þë¿ÖûZƒù×À+SiÌ­¦ ÀÒªý"q7AlâÁ‹Å#bîfqâ$YŠ „˜ÎÐ? úñ²=tr^4ƒNˆ Åâ¤Èïø+Ñ›ü@b7ý#~ßN£| ôÐB} ¼l®Q¼V$òö ¶ˆiëEÑ~dÆU’NÑ‹éâƒ9uðÝ:.¾—0IFÌ qwo±h»˜ºÖà‡ó³þqñÙCà»ïØ ñíjQà Ñ`<Ña?ÉPUqü¤¿Ò€Ï BŒ㜼Nx?¡>3 õ8N¯=Œ¨Ñl·"ÃAãâÉà £>Àb_Џá´|?0†–øg&ŠÊCDñ/Éúó:êÅ²Ž Pš¸‹€ù±ú?<–øŸ˜@¨ iKwˆÉkD>¢á¢c÷‘é¸ë»U†FÂúY¸k*¯õW<¡þÜùsjÔ(Ø—ôã®ch:y^Â[½Ñ¼ÁÞ…u›ž„¤LÒëð :¼ÁiI˜5ô9ðÎÚDr «¦ß‹”3t sþ1s#ѱûßròQcmÄÆÄg±¢FÏ_8Š õn ïú]³ÞëÆüoêmƒTÙôÇyä¤ë Áí‰BÜ´§ɱױ¶Nˆ%ÔûáUgf09B%j”pñvñëz lÒ"Dx K?ý’_‘/”í¿8—í4PZ„égi‹ þ„â‡Õ"ÿâ±ñDR$èËw‰I+ 9ÁobœÐÉÛD‰¯ÀM©À <@´d¡Ô'Ói©g dBÎìMbÎ&’cz õó¶ˆY%}hù£H>-ªû¡oú¡o†¢EÈoåbšv>c¡ä µ­”5,ßûÐrÿË:rfF3, )¢ÕdÚì­ûKLYO† –uðc7l¾/Œ,‚‡ÆŠ‹©´Äƒ€·i¿ø~‰}lÑ ãÚò·øv!'$,BD ­ÝKÀ¤°Kz.…,Âpƒé¼0‰€°æ×~Qf¶%8G@X}8ÑñCóE¤ ¬a4ð+äõŸEZЍ;š,¹[è'ü¢ wøE¤&“Eî[„¾Eè[„¾EZ¡çÓø¬€“)ÇPÏóâ…‹!abAæE ¥åø·Ô¨5’VsXEKwRü e r¹H;dA‰»€+v“ÛøGi…Ëw‹•{ D;N'þî³)î1 .ßK`ù¦¤w™EA%ÑAorIJ °ÇÙîrW®Þ/ö§œaÍ´™÷ÊO„Co1#ð0¹äž@ocdHí«SIÂŽ vãA±ëÉY ·žJ ºù±ã0 ÷Ó'|‹Ð–ñ0d€P±é›t:åÄ7kúÀØš¸¶‰:—Ì@%#;sú”8—$ΧжåñË ð¾T¤ `,=…¶¸bd˜ÌƒcÄÙÓªä ù¥Ÿ±$i’ÿ·MFª8§UXtì‡Y‰äÁŸ>l–ÃhCàhšL{hÿ3yö7+hî”[’*Î'‹“'É™\´/í€Zô ÉâÄ r ©l§QèáÐ ÂEN/Ú!‚”éÿœ8etù+ÁB}רï bרñ•¸@V ;BO¥·ºWý1÷”€ß¬ék¹"ƒ:Xf(­Å¾£Tw¼âBô’ÁÇÒÇ'P.9Bf¨NÊPg~„É0¸Éÿ´ÉÏÞBП0éeL:W f×(»ŽaØ´{ñ;?²‹æ - À;ÊÚˆ•ôkªAN¯‰‚ÞªÃEÙFáºpiDZt$ÆÊñ]£¾kÔwúa°Z„v+0õĸÕ=ë̓¡JƒÂª ¿03aMŸà·­ô‰r2C†.µÐì9˜€ÜÅeÕª ÉÀ_n`†Bk“ߪF¦ÓC¨ÄZ„9eÆ{&V”EÔXiåä¥Ò˱2M:w…›r"L9nt¿Äšoú¡o£EènÞ \‘a„ØU ƒ¥D ‹Ð°Ì†‘5ÃuŸÑ J(&=.Þ(ºm•–]à±èÑC´v$ZrbÌ[œå„‚EhUÄŽ‹7æeQªHUX“Š5çËJ€aÇü\ÄU™¯ÁoÖÝv—ï[„¾Eè[„¾El¡ƒ¸ªgý1¹É  ðâ) &XZˆ0œ°:,BËŒ —åCaʰ…e% b. Gd, zINr›rØåHs9ÀoVw îZ£CŒy„zb:•g,®=̰ü0_®—m$Ôrå/£ðG¸ó³>}‹Ð·ý`¯<Ê<À@D¨böÌ`Ê£s¬%/´€°ŠD/l}ÍØ@áû‹wfŽP¬Ëoü*†.¡‚a_ýAá0lô€ÿibت·Òïw¢³Ý~„"[rP­íÍi†ð¿5MÄ/ÿ½ü!„ŒRØóë¹€ÒÞ·þMäbâQ²¸ö{3ÅþÃTb … Ãyšàcã¨p rð7ï§MÁp…ewþ>BüHSÕÈü(5µ weã>Qm¸Áï¡„>ú@xåP±S­ˆÐ±dæ1­À,dñ˜)XÖáøÕ½qKrúY (à‡/«Í õU½@áËÖVßÚ$ØÜä`<U÷¹/–" ÌÊÙßůÅ™dÑyUÊ>“BÑ0éðš’*’ÓÄÅ4*Æ]Ü,½†Z£©i")A'¬$zÌ0CθUâäYñÞtñ+`UÖU¡óÈXq.]œM%þÑË ~çíø£JIOrT…‡¢Ü´ç¨+]ŽM¸RÒ“%V—@˜ã¤ß4+)åãèiqæ,­ D3ô”BÕY;Ïg“E|Ùy˜Î¤ÕÄì4Õçblà‡ˆ¢äTñÝjÑõ7‘œ"-%~\?®%þã§©¾¹´ FaH©ç’mvü’èßG5z|ml7&§&áéÓgÎðÐß#ô÷¯¹=BþÐÓñ3ܲWõ´íZ{9êEÛE¡´GÈ!‘Hâ¹LÜù.H‘@…N ‡¸Gôþ¡Wã¨Q¦£Ö̳ă¨œ‰:™Cþw|*ªÆSýà%$§º)µf¾_mÈ •=Bè†PXd&! Pa¾øˆG-iÉ„XÐÛ˜D:;ƒѤ0òzŸtZÔ%K¬Å?*¬âü |9?£Ô‹³g‰i°8Q|§íO””RS¦Òû{„þ¡¿Gè[„Ábò^àØ {V zI'X~þ7þ¡ò‡ó›užó\×¹/t™ó<_V›ê«z—­­¾µI°1¸ÉÁx0ª† c„gÔP£¸62ØÈ ¢âè/²ôv´¬“_VùÉ,®Æ³®(é¶)kE·QY‡À<ÈE…tûï×rÀ¢£+wSŽ*cÀ`õ˜ß´KF]eFQnÚsÔ•.ǦF¾>˜×ä1¹+Sl˜Ò9XýR¤Þè\Ýç5Öìø%Ñ¿ŽjôøÚØnì<ë¹—6mÔ«þ:î,ë[„¾kÔÂkùsšÐ¥ÆˆÛyåÒ÷Ý€_+Èœkö}¡Á—Õæ†úª^|—Õ« ±ÞÚ$ؼå¨ÇÊ£:™X‚‘'0㊣ØÁRkŠ.Q€P­Mº,#"Ñ>Ué†L®)ú½ {±Ò$Ò¥ÁîÑu•E¹iÏQWº75†¶EôЧ‰’ii5HßjöRÏgPÄ*µFU DÕœÍ~HÃU(º]SÂøAƒRv)ЂaÇÏý’o=Ôèñµ±ëQ<ñ¢`Û,øë¸£hŒ„>ú@x-¡Œ˜´®à …ÊRö[X N—%ó@ˆ×&Ê,4¾¬67ÔWõ…/[[}k“`cp•cÒ«˜qždŽ&×(ŠkGÈÓ!àÅ )12 NTX„€F Y\¼1;Ðï“eµ ã-|h¹ Q\;RÊ¡¢ÛkHN¬”s_B”á.¥È¡W9’ˆ¡v]eFQî·èºÒå8¨ÑüÔøàxa¬ÜäâÚûH.¢ÝWLß,H „3óÅïŒÛàää€:Pîe8“Á?{+Uç!þÁT…€-Br´ÆS’%\©)J­¯–•µa}Á´o…Ç[5z|mìúÄçhQ²½„>ú@x »FSÎ%OÛ2æéoKbÝÇÏ|lÛ¨p脜]sÄ-Í Ÿêƒcóà•/«Í õU½@áËÖVßÚ$ØÜä Q!å?bH,ÿû˜˜°‚öº€X(œ6v9­×\T~XîaÉÝþ‰Ušè`þ}›˜¸’èXýÙr:|BŒL9>¥ „Ø _ƒ1X–c þ(%W½ÎÈÛu]eFQ·èºÒåØÔhóÆÆg·Ò<8Úóž^´“‡ó"¨Úx_š)fÔk!íùÆ05h{«8 ƒïî^TI{„|6!ó÷ýCœ=Cí\Ÿ“>ñã;©à‡| K{„hé›!éƒq°ã—Dÿ>8ªÑãkc×ç¨Ü ¾ÏùvNÂb>úÁ2~°Ì5,Ãш쟾eì3ß–’5i§áÐ#XÁ5¸ñlê©Ôôä”´$¾¬67ÔWõ…/[[}k“`cp“ƒñȨÑF°Ïbe 1+˜T·Y¸[pï:±pÖÁ 7éâmâøYqà¤Xµ[|>Ÿ˜MÊôIâÀ ¢:O”—¹qÏ#9pî;*’’(Ì+;ì‚q¤û%?Šw—ÀÙå,3wûwURêiGUx(ÊM{ŽºÒåØÔˆ+)õŒŒ­&ƒe²`„'r'Öì«ÿç/ˆ•{(/‚ö%F¢÷þcâ­4kÄËP¡™Aâ‹…Ä¿ÆäÇqÇ *tQJô¯£¤gðXfðù‡X½G¬Û'Î'£yÞfP)Xf 5šœvÆ6`Ç/‰þ}pT£ÇׯvãÙäÓxú¯3¦ùÁ2~°Œo^“áã¿Ì $8ÄÁpHÖá gëÐHŸèÔQ£ˆQó9×ÑžÓ7ˆ‰+Èô©4Ø8EáÇÕä&Üz8es¯;’N_RéïÎéó²‚ ò‘’8a9¡ ü~p6°•ç*ócŸ¬Ótâœ>dQ£Va´L™ïü#UŒK¤èY4°“)-9ø31/è …€ºhyZ~U ™ò“¥ÈdþW¦üHÖä´ ð0;ÀÞI«ŒC|»0ŒæÁ5ê[„¾Eè[„×\‰5uAªµažO¾pHÎRÝ:TÒ'‚8¡>cÑmë=tðùé\ ÛEHuîM\ˆlä:ÑX£énr"49åÌŠ£l[B½Zt›± c.&Ï#,&\4†ÉÅ:,ÕŸ` Úðëé¦Õ!s SeÊ’¤­ÁÁ‹©¾ 0Œ9. B"û/¢­>løE™üŽ£mÅ—§ø9%î1IÇæ™Eç.œð9 ©5¨O*E·1k¤ZXDãÇyô•-#ø5•T¸ˆ,<+Дé(¯Š[bãŵ!…i-ãW~XNúrJ´·äû¡oúé>õ õVUî€uH‘¥ãhõûˆ‰Ò" ~×(UÜ.þ>N'°#”qâQ¬ 8GL[_÷•ÁÜü·ü‚UÑÌ?vñÇÆ·¤“ÖA½2 †ªkBÎÚ¿¨ü&^‘æY¸F1µ­ÄñSbý>šV þI3Åïæ³i„”•!¸C–ú9“jÔš‰23wý#Žž¤œ×¦ÜJîÚ}H}?•c}í'¢û'Ôû@è¡„Á„{‡³¶O¬7ú®Ñ+¿ °!°ÏB±j¬jVA² fn¡”Á‡ÇÑâÞeyð°è»’’i‰,f!jNZI)¬ÿ‹D7÷œ?m üÂÇ¿!9fç05¬@ˆbxÝfª=8–ò‘¿çA~î Ré€ÓiH5á(P83[‹ÈOXx'N@#å|2~% úè]Ÿ‹ßwŠmÿPèŸ- z­‘D_´Kl9H™ˆþÁ¼>ú{„þa0îÚvû<öO§žüûÔnI<Ì{„¼A…ý-˜ ÈòF‚<"û¹ˆ6Öèƈ ©¢ã¯dÀ¡Xè¶bòzŠi¤ôpÉO¥×ÖŠh#:ô»zRé5äW°äÎ?<ž’ë_ý‰rN v÷?â›Õ$'6>Ø÷1BŒŽ•PLz€#…ÅëŽ6vCïé-žš(Î%I‹pH ”ôîÞâÙo©ò*ù“‡ ?)Öî%%`#`™žBrŠÈŠ3È#äcîqNò8kHﱿGèï^á=B} üW@hõªç×;ÞœÁ2Õd)µ?wйz Mõ3± W–'Ó"‰þ§µì1Â.1umàTŠ(³$Êm€PžÆ€âd8À!\–^KÜES±BŒ¹}(À !()žzÖ°ÿâä¡T(––n!ÇqåUÑN;BÈ™µ‰ò!§¢,±†:5¸ ugA2¤Å¿4î@á¡„>ú@r@¨vщ¾¾XA „Uå¹BBX„%díP,ô¨ƒS)Pú ¦ˆ8iÁ²ÿ˜ º°Ð³4JÉs'&¯5ä`Ño0žä4œ@¦gI Ÿß…âǪÉ`:'œA „±²F(!¢]"†€°aqF5€pÎÂBÈ46ý*‹2Îß*fl$: ô%}  üåùçWµn½´E‹„–-—™¯|鵋/«íØ¥÷ºQÔuáŽsä±ÉÔ‡mƒÚp{ë1E©wÙ4cëÒ¯+S†.×’æÍ7¼òJïþÇ@è~ÁìÅ‚›çsZîQ;U\p{~(¢ýîLqooÚÒûë°øq.H†#þžd#ÒÀ.·Ç 9=ÉeŠMGÐ9„–%êpvœFrÀ€sí'¬ ×(LXJŒ`xóõ¦}A¸yáÒ —A4¿O}C6"jÊ”øÒH‡™Xà ú¨«"é,?¶¤Ÿƒj2p±b¿)%?¯›èÍ!]ù®QC¿ôÒ¾¶¿öÚÎvív˜¯|鵋/«íØ¥÷ºQÔuáŽsä±ÉÔ‡mƒÚp{ë1E©wÙ4cëÒ¯+S†.×¶¶m½ùf­Â…ÿ+ah!£ ì•7¦Q@ÿÆ¿EÂnñêTÑh’±q8i8|J´žLå³äÒá ˜¬!sÀXÊ%;‰CX~ÕMú¶ƒbñ¢?/åꦮ§ª¤-£IºÊ Ô Z ä‘(’šF‡C‡N‰5ûêTÐÒçw‚®®³D»ŸÉc þF߽ߴ ˆ=?¦ÃFĹéébèñÊqìŒHÜC¾PðJAü'ÑOœËvY˜>ú@Œ@xîܹÂr¹lùf\\û˜˜±±Ö+_:EíâËj;vé½nõF]¸ããyl2õaÛÆ 6ÜÞzÌÅCQê]6ÍØºôÁëÊÔ‡¡ËÁõzLÌÛժϛ,ÂY³®5 „;n½#ÇDòiqø˜øç(,?:P†S‡ö)§ÅñV Ëü ;NG+Xü¨ Ë™ˆ`cú!IGÝQÈq‰®ƒG踱ç|yúİH¨çÚ1˜Âˆ¥â|q@8}>\ž`ŒÒ ShF˜ÚÙSâðQ²}áÅéóÚ€*øp%”aÃá,çÏí¢ÁXúõ€_!… B¦£4ù#’d@HQ£9‹ÅÕè¶!îí%qï,Cì(¿rƒ/µmõÚˆnwYÌz¯³ÞkãqƒÕVÙôÇÙn´µõùº1Ûø=„¸iO’c¯múÞƒWä,­ÖyU•¶¿ü€°€´Äÿïêú—5kV¼Î”éתuR¸XšZ75|W¦WàA•ŒõST~7º£¥xJ°W–áqrU®; ÛÎ6»eúª*lt›œŠƒÅwéA„³È"¼«T­z½Õúp[­vÔþx'¿rƒ/µmõÚˆnwYÌz¯³ÞkãqƒÕVÙôÇÙn´µõùº1Ûø=„¸iO’c¯múÞƒWäl¯óÙ¾¸·súÄ¿qž?ß³gÏN:uíÜW—÷ßW_ùÒ)j—z£í.•bëu£¨7êÂçÈc“©Û6}úú[¹x(J½Ë¦[—>x]™ú0t9Vÿ:vì¸eË+™æÚÙ#¬2ÔáÈVؘBËú¥ø=äDf”SeX(•XãêqŒåÑÚŒ¬†ÝMŽAê ?˜€,Âw/þÀÛEë¼^´Nûbu;ð+7øRÛV¯èv—Ŭ÷º1ë½6Ç1Xm•MœíF[[Ÿ¯³ßCˆ›öÔ!9öÚ¦ï=ø O¬÷fáê-ñÉÂÓ 3ïÒ%ÖÔüS﯎÷_¬Û7Õq±Óïuüf;b¶Û†Û_ŽÛšâ6_·¿«ÌÌÅCQ:äx¬e’ïò^ùóŽ/™Pï‘îxW°%Ô[gÀFe, 8A^éRväϼœ*±f ÞcF¶©9ÒåxÈž„ú3fX^ÿßÕô½›ðtò/žKW–áW|-RSS­Wõ-ÿÓ)j—z‹í.•bëu£¨7êÂçÈc“©Û6ÛÄßzÌÅCQê]6ÍØºôÁëÊÔ‡á(G$~]r½ €!à'.>{ô°0Û%KŒFQô£b£ëüŽ÷º±qVi™à;†é•ŸkÀÃÁŶ‰«ÓɤtNUŽêµÚ@ù¢¥´¯²¡OÉo¼Ñ¹K—Î]»½ß¥+.nàÕ¢XDõ­A¥Ûõ^7f½×Æã8} Žc³Ýhkëóuc¶ñ{qÓž:$Ç^Ûô½¯çí·ß†§ÓZú.]YÆÑòð-«À"tó]­®Ñ®sš  IÄlY´]Ø âK§Øè:¿ã½nlÜ’Q6ów—k´åÔÅ锌¬¶‰«ÓɤtNUŽêµÚáC² §¢éWÒ5ê±Ú¸ÕWr[Ö¼«29þÙz3»ýz,GnƒŽ«ºÇŸ•÷‚àñD!nÚsšÌ¬Þ:tû¼NŸpûÙîø“ßí§«ÛO6Ç_ýŽÏÒäæÂu|œÛOH·×n?ŸÝ~`ff.Šr8çÁýG½‡dÇ»<Œ·ŸÆWŸE« _ô~‹;Ôqkà …Ÿßv5—/b£ëüŽ÷º±qc¨=ò¶%{g‰EÈ`üÞ¬§êŽÊÑpBAÛÄÕédR:§ªGõZíÇÆ¬7êŽN3“¿Î]‹)0¼]MŽ.%7·ã]ŽŽof7‡“‡ƒJw;¹ùÞ<<[zCgp{¢‡7í¹¹3ãóÖ¡úêøWæ¡„W'ëÚùs\U¿@çK§Øè:¿ã½nlV/^½Uq9ЦÛÄÕédRŽzVµ¤«W¿ý’_Îÿ)º­6Žë˜Ûרc5s~If·?CåÈíoÐqU÷ø³ò^<žè!ÄM{nßÒ̬Þ:tû|רï½Ê]£êõþNz«×Íoãí&ºä÷á2»FݾN¹KêÁCÉn=©ù®Qß5ê»F}‹Ð·ÿS‹ÐM½ÞßIoõºý\õþu|ÉïÃe¶ݾ¶È%õà¡dkÆcj¾Eè[„¾Eè[„¾Eè[„¾Eè[„¾ExY,B} ôÐB} ôÐB} ôÐBý=BÐß#ô÷ý=BÐß#¼ööÿöúí¶x¾S3IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/whatsthis.png0000644000076500000240000000564712536324516021471 0ustar philstaff00000000000000‰PNG  IHDRö3‚È‚šPLTEÿÿÿ9DRÀÀÀtŠ­…™ÀˆÃ```ÄÄÄÁÁÁ¼¼¼²±±¯¯¯¬¬¬ªªª§§§¥¤¤¢¢¢ ŸŸ»»»¹¸¸¶¶¶³³³®­­«ªª¨¨¨£¢¢~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQššš‡œÂ«Êÿ¨Éò©Çûv­˜——‡›ÂZlŠez›p‡«|”»‡¡Ë’®Üž»ì©ÈüVl‡•••———†›ÁZm‹YmŠ“’’•””†šÁZk‰bu•j~¡r‡­z‘¸šÄ’‘‘…šÀ¥Îúމ£Ðau•i~ x¶€˜Á‡¡Ìª×‹ŠŠ‘­ÛŒŒ„™¿_s’g|n„¨v³~–¾…ŸÉ¨Ô•°ßˆˆˆ™¶çЉ‰ƒ˜¾dyšl‚¥t‹°{“»ƒœÆ‹¥Ñš·ç†……¡¿ó‡††ƒ—¾j¢rˆ­y‘¸šÃ‰£Î«Ù˜´ä ½ïƒƒƒ©Èÿ„ƒƒ‚—½o†ªw޵—À† Ëީ֖²áºì¥Ã÷€€‚–½uŒ²}•½„žÈŒ¦Ó”¯Þ›¸é£ÁôªÉÿ~}}~~–¼|{{•¼yxx{zz€•»wvvìì쀀€€€ƒ¿Â¿ó÷ó÷óÆÃÆ„‚„ÿÿðððÿÿÜÅÆÅ»¼»susƒ™ÅŸŸŸ¥¥¥¹¹¹···´´´²²²°°°­­­«««©¨©¦¦¦¤£¤¢¡¢ÂÃÂÀÁÀ¾¾¾s‰¬œ›š›oã;·ÈIDATx^ìз À0 AsÜÅ%n#œüÔkÄsœWh»~§yY·=¦ªIIþ&Ç»jesÜÍCŽQwó’c4|ä×gSSið±»b_RHBB(Ò’P¤7€(ºÀÁ¶ËbÝÅ^ÅžQì"v‘²ø kÙQ÷»ì9w„CñE¸3ùÏÜ7÷åoN{Ц§ü$ïâPÝôøaüÇ:ÞÅ¡žB?>²qƒÿ Îø±wqhÞNà„O±Š&Mž2uÚôfN` þ9köœ·sçÍïýq†ˆ"—ËCCàExxDD„R©T©ÔjµF£‰ŒÔjµ:N¯×GE £Ñm2™bbbbcãâââãã,HHHHLLLJJNNNII1›Í‹ÕjMMMMKKOOÏÈÈX¸0333+++;;'''777//??¿  À»84‹ ‡³±gTèk8´§mØ¢Ÿ˜{­ˆp8[±¯áÐ'¬V²¸tÉÒ²e˶•gSQéÆÊèqÜ8`¤‡C÷ á`OÙWV•WÙ°¾bªXYýG.ønÀbÝ~„ÓÞ M áPݰU«×¬]÷‹€6¿ÖöÇ %À `T*µ ´ Ãqc4˜Ðã©r,’Ä¡»˜pІ¹ò›½ª¦Žp¨§˜h³^@› 2@¡@¥ ´È£Ó Á€: êxl+ÂÛ @R8ôf ¬V²qSéæ-¿ÿ!ÔÔÕÍ&ÚlÐfÛö!p”ª¡pLžq€lÌdƒ8¨¡÷á`O±;wíÞ³wߟB]}áÐ,f¢Í~m4Ž3 €k »·€dpz{0„ƒó†FûGuŽ#É&¼[«•†[7qt…#K‚ p$°Än™¬•nãtº?8(šÔª¬“6pêÁy8QÇÙª•÷¡\uÛ8œñy8â`c£Vzâõ+I 6+Zi²Ö8ÆtÀ‘ñ•brR`c£VÁ’áäS–ÊN­(lMŽV“3MS˜å'Ɇjµmœ¾¯qæyÇŒC\ıV«Ê¦‰“'¶ Ù«UeÓÂÁŠŒVÇ^­Æ/ÏÌD¥Ã- ›8Îs'ۤĹ⡞Aÿ°CÇ4€0ÀÿŠàæ™…™AÆXÒJèn¢&çö GŽ9räüKŽ9räÔ“#GŽ9räÈ‘óØ7÷a Þû?Ò€Kû£û\…1  &\";ŸêœäÝM ãxå»pÙñn8S—/†88óï_|ñÅÌ9Žc8_Òy%œãïK>1§Ûs _N.cŽlüþÆd0UE•µ® ód*š×1ÇïEå@µ‚ã8 çJæ :Â)& “F@Q#VŒrŒQà{G•Á‹˜s8Áa¬0ÌHÉÌØ”²\àÅÌ™¾U+8R€á5œjp®`NcsNÁ 8×2§±YÃ):ëïhÎÌF:x¸êp cà&æ8Ö}Î8ñvµ¸¬À4ô÷Ö îVÙ•N̉9§G̉91VÛð˜ƒ?ïdŽÏÚ™ùÖåå«€ƒÛ˜c¿~ 1â*ãqsÄÑ'kä$D8áfæ8̺€¥XBQf0wgs ö¥<swÿÌépÌù¬ÁܽïVí²*„ÓJ„cîf}éwƒs²·Ê®<æÄœ­G̉91'æÄœ˜sbNÌ œ˜sbN̉91žœ.`LÅæλ͑ÎúWVN”P-¦˜ à ·4G8¾\¶´„‡)®œ,2ÍÆæE­àXcb¦Ð€.àL¶5Gk8€‰9Ò/Eÿ˜ W+8Àisv‚c¢G¦”¶Z›S—2‡ÎÀéùÏœßßï%îVHÀÈÙ»UÁ¨1M:ä§FöV1'æÄœ˜sà;h‹Å ŠÍÍ*ø68+4—èíüp_4ªe¢€Â%í]ζ‹£L"íÉņæG@ž©–S­—þ0?žKX<¹ØÜœ>Y±&bÁ”˜÷¥x˜rÚÙ•óp€gàW1§ê,xΜÝïVÀú²‚“p8 ‡}û­qY`¢Ã­‘Ùœj†ƒÜ`ëÒ!o çÓÍÉ®<»ò˜sàa+sh˘ӈ0wc´þ [Ý3ùØ¿b¬°‚úÌyÇÃé³Í ÁùÄÏL0ÅbÎ]V»Õ/xYO”9{«˜sbN̉91'æΟöîØ@†¢ °ÿDŸš&+xJ*ªKH÷½Áéõî)ç·{µ³¼œgùîF*{Îl-7_N¯N¥r$­:ÊQŽr”sµœO÷ƒÎúÁ8pàÀs:¬DB‡²ŸËIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/widgetdelegate.png0000644000076500000240000001643112536324500022413 0ustar philstaff00000000000000‰PNG  IHDR/—D0ÝtàIDATxœíyxçÇ¿3ºlù66Øø>0w8"r%`Xr7i´…l“4ͦݲYÒn¶ »}vÓ 4›ÐÜiº)!IC’¦qH4„Á€ 66Æ'`lclcY¶diÿ#K£ÍŒkFú}žgiæ}ç÷þÞwÞùÎû¾óJ/ƒs/}Ø‚ •Ó\µŽ=à®%÷<]‚ dð àj®ZÇè9áj=m¶OA’dͼ \zî€}x(zÞA(„Ä‹ Ækß)8{ÃnWŸ”sÚĘMÇ/œûb±…=q‚ |±õÃ1Ø‹™3¦‡Ýví¡Ã°0$¦Æ\:B°c_Úh£-Â[¤nt˜9cú¹Pì¥ã»¹ñ´¼À0üs ‚7 Ù{³ké ÷ŠІíà;˜•܃´´48ì¶–ÀX|IÀs§¡´§ µ})H±Ü¥Øo‚ˆ=|[‘³kéøã/FB=MÓ®Æ@ë&ÜwãõÐétHøðoØy¦†ŒÁøNۣéGâôe’ö "`&¢÷g?ÖÒBv·‘5%¡#k1^s.¿È‚™SËÑøéÇèNº ¬)É7A¸Õù<ŒæÔK”’z."ˆµîœº`È(ÀÁÞ ˜vïFvVfeዺw€óîõMàØV̘|Ô”ŠÔY³CuŸ bˆèwçþ¸Jþ=yÏóCNG܆œ8aè6r$–]†½Õ­˜Òw,Ëb23Œ–ÆÏ`ª¨8:ã´SØrð,Ò.X´*ïX³ÀïXÿ¯ëÅú-m Ê®7if=þúOó—ýûîí… ï¼?ôzöµ ¦å&áÅÌð„]óßûÐguŒ»DD¸›å±¦tÚ÷oEÁÜE!¥óÇU³q㯯œ%?‚zÛhš} š¾zi®@jßv ˜'@—Y‚rëW¨>Õ Ó¼•€N/aIšŽ®~8NzLÊHƵ󲡵â×ÃêB3î•çÞúȘvyˆÞ†ŸS7v CoNÃôüdŸ°¾Æ]pæÌ«3DÉ;B)L„[^ Î ŠD: xFÒÖçÏýÄc5˜tîÝP‹×WÎàª{7Ôz¸㾾ˆ§#„¢n£'¦Þfîr íYÖ8ª–= Ž^œ-¹‰ ÂË”rÛÿ‡>Û(‹çãw-Ãâ¹ùXóÊ$äN Ѻož#C`æm†a»sÊsñ§{¡KHÅÌÉIqŒÂ¨m׈ ®DùJD¨žñ#ânx‰t æU*°\:÷þá^ÿ‘»·ðúÊ™>ûÀ˜p‰úˆ‹£ân#‡!5C¥×Ãtìô3pêu˜ÀôâiÒr*Ù’"yò 0¬{{Î¥­×Aï@ºÉ‰–”⢲Td$éa³;q¨ÃŠÿÝÚ†“Vw¾\?? ·^0ù™ èr`ë¡^<·µÃ/Ï&‹gyIxiû lÞ×…• ó$íß~Ñ$Üuñ$0 ðôÇmøÕwK×þîú¬äg˜ðPe>æ§¾iêÇú-í8Ù70߇ŽÂœò\8‡Á¸œ˜ž—„C-=˜[æû“‰ÌdV-Ìõ3ͬLJ?=ðøÛMxpq>&¥q´ÓŠÿü¨õ'¬ÈHÒG<¯Þ~¬|µk®/Æûûºñæ× k„†QQ·Q®‚ñ¤³ü…Ãxí‡î‰¬BÂU8I ÄEí³Þ‘”n†Á8]@?“ŠŠ,F£&3([Ro/ØÄd\230`Æ Õ†'¾[ŽkæL '¶W7£½³–’Áæ‡qçR ¿û2ÿK¦§ ;Å€?}zO½úôæ4üâîX8‹ Gð~#Àê‚yßßx0»8 ö$÷¸Öþ†àæúÄë \éç{â>øôf|]ÛŽ²‚‰ØüÔ(š”ô4¢Ï:[²,CÍëöãcÕíã]Gðú'1pö,œæ¸v0"åSHt³Âb_f·Q¶"-/Ùéxí¾zðùs?Áòëe¦-l?¨nãè@'ÞEïh R,wÃÞw½^„înéð›°§<½9C¶M1 &¥{¾X‡ñáÎ:<³i'Œ)YxòÝ#¸¢`w-»åÙ(ËIñÄeœv$¸lÈMwß;¶ qb F’2ð_nÃÙŽCÈLIðÄðæ‹õÇ:À“‘˜U„_o>†Ë&‰Ú79m(œ`lÙÝsV1¶·êð¸—ÿÓóÜcw->w->Ï'o³K²ñÖ750O,,ÿÚcp:]˜Sž‹³.·¯œ yó›÷[qéÄ3¢~ºlVÏþ×µ­0çT Û0‡uŽàÉM5¸¢ÐѼ~RÛ`>`ýÛ_•8Æì©ÐëŒçîƒÞÔjAF7+,öe¤3^ÝÆWWŒ #-|àÏ‹€×~0÷½tD*qQûŠß6º#HnÜ;ÀXSLËa›vÿŒ“»•t¦ñŒœ·`Xi£¸ìçÑ;0öw= «ƒ!9¦Ì|üò{Ó±hf&ö5õào»ÑØÖ… .óÄu:Ǻ….— Fst¦$è’‘\z®œ6.+ÖýÆ!°¢å_ÓÖ›.̃1E‡ý Ðó~Š%§„`X߀“glÈŸÙ¼²Nð‰‹®¢Ü wh´ìþ+Š\+lŸ–éŒÍá’FØŽ¼t€1áâû{ÿËGñÊ÷ÝIéüø#¿Û8p ÌMØß6 ÃÌ[V ;¨ÓãÄÄ%è©ÆìòB Àqì¶ N‚.9Û?¾þ©:ðÈ•©(ËË„uä4~öÂ6üÇ÷/CŠÙ„+æ–â³à/ßž†íÌqÜ~E9.¬ÈFïà0^þ¨ë7}ôì\{ýlúªw^^ŒŸ}ï|üzÓ~üˆ7ñ ÐR¹ÿ•&4ó2[böU–Nñ×Iû(!·¸8ê:üÇR¼mÚŠk *aLË ½ÇPìj„ÍfƒÝ>‚ö4Ë>G€îUÜÝFCj¶_Ë ¬Çc¸ïFíÃÐaÌÈ­«.ç(ÌÙÅ0çL}¨¶®VØ­½p:†Á0zSÜãf «CßÑoi¥èS1plìÖ^茉0¥MÂ𙓂öÓsËðã›/†Ó>ŒvìÇÃG1wJ.ÞXs F.XV¬GÂäÙÐ'ebèT#샽µ t¦$˜&äCŸ }b*^wÐ;ï.h®$Ož cjN×m÷)›¡õËÁ”YˆÞú¿{òiHžà—ŽÃÚ‹á3Í+£7áLý??â…¡îæˆýyàþ÷ÑĬâ˜KÇkgºk·Êï6êËÁÀXY€ÌR´ Ô³+ëÌ“JaHÊôø'äcâÄèRܳþY`tÐéM`f0 ç¨FsØlŽá,°:½gìEgHk0ÁœSù7£:½æœR8íÃ` `:S2½ÑÏ>Xó‹’0-7w\š‡“½CÈÍtá|òÍØí£H`u`õz˜'–Â~ö4\ ëöÃê¡KHöì‹åݘ sN9 fw7ÑéýÊFª–ñÉ'W–Þv²‹ÎåÕßF¸òÊ0Â~Äáé6´/³;§­tüQõ?©&åJÏcf$dúLñšë“3 Ožº‘ÄûE€1Õw ÚÀ·çµÿø_:ðC ‹Kgå#73Ýgññ®#XÿöNè“3Á°,†cL„)3O2?ŸxyOÊ™0œ‘Qü| ÙÑeñÆÔ"W!?â†ñ˜ç%ÑÓd:=I•pÓ3èÄ›Ž`ä¥/àê‡Ëé«Ó܉Č<°:SÈÓEÔB<å5rŒÃT ÁYòZOÇŸ ÛHœƒÌÙ%ЛÌpº\`Xý¹1ú„U¶jƒ"žò!L©Ù¨=\‡Y'ª9t¦Ôl0 sé¡ên£V`ô˜2ó¥#Æñ”×H Otÿr¡æÐá°Û6¦dyìÇZ:BP·‘ Æ}b*ô"kR: Òå¾pM³‘îqw‚ B #o- Ÿwô#Ýøðá©Ø²¯um§ÇÕ1‚ !¦d¢r^®]Wï#`~Œ8᪮®W ‚ „™+xÔO¼8áZ¾p*jköÜÌYs˜`Àž={‚¶AÄ‹¨Þ¨‹Å‚ üÃOÞÜVw®'èû#~Ñ2jköcùý+ƒšBár¹ðÚ+ hDüAõF]p×#Úâ%FÀå}†ñùO,¹tt´…lƒˆ?¨Þ¨ ïë¡F$×&s¹\!'DüAõ†‰¡Z¨Þ±*l8*UB"¨ÞâPËKä ¥í¤ìýxê ˆ¸¯âÂ\4·ú¯È3Þ¶øeä½ßÜzBÕe)"‘çâÂ\¿cáºþÄø"C¼BODí÷]8ý Öÿ<µ—Ùx©28Öâ+VÅ…¹~Çõ÷-/À׿ÒâÉhj>ŽÒâÉ€¦fÿª¹0ïø%E¹>çñãŠÙ Ôòâ| ÖG.®P<5©z#d—;&V¶B×Ü©ò‡]~¸Ô¹± Øàûç®h~ßÝûy>ûÜùMͼ°1›üóù6…|Ú—òÑ;ݱJ®öëÀ'Rþ Ùå?,Æ®£yæñÊ_^ycW¬ž ‹¨åÿŽk÷9¨U¤ÔÖÑcí(+É—´)µ/å£w¸Xšj'Rþr¢Á!t”–§œòÆ®’ºoxA™p46µ¡¬$ßg?йP^ZRšáØ;¦f"å¯Ô5“[vR"#Ç®w]âÇ Tפêa<@âåBÐp´Õó½¼´ÀgŸwJY¡O8wŒÄKšñó’ ”xñë?^ º(, ñBpB .U‰+Ê‹‚JSéþ”²Bil ˜¦ÚQ“xI•§œò–²ªïZ»¾¡Bö” –W”û„ilæ…ywrÇÆö‹¥©tŸKÃÛá4ÕÎxØ‹‡óË“;ÆÅ“_ÞÒvÇl®kRõ0ˆûy^õ Í>þÉÙ÷F,,Ðñ`ÒT²/拚¯ƒ‘ðW¨¬ä„ºîüp¡ò–k×û<¹uMÈŸx€ºqÀ´ŠÚ»Zó—C«å­5H¼b”éSK}ö×7iî:hÉßX(o­Ac^1Êáú£¼#Z¼Úñ96Ê[[PË‹P-Toˆ@xª…ê /BµP½!P¼zzº`µZ5›Ç–( ÖP½QÞ×CˆŠ×ÌYsðÁæw‚6Ì­ÛŠ "þàÖm¤z£¸ë¡FDÅ+1Á’áÄ*++që­·¢··ôIŸ’ŸU[>ÇÒÊ…háÙhb±XPYY‰ª-Ÿ#===ÚîÂ/}صäžÇÐpj#ÝXZlEuu5,Ù¶ýío‹ÞÞÞð{MÄ$øó[ï‚…{öìÁ-·Ým—â–M߀ÅbzÏÃ$Z<÷Þ×èîBU³Æ”, ´× »vkd%á"”Àµ¼8áê²:±ëPlþSÂ…3 qñ¬"éˆQbõêÕX»v-æ[.ж+¢Dt’*× 9p-/Ž]‡Zq´kXÖ¹öá!Yñ ¦DUØ«k?ª0µÃJEp¹”o$\„„ê‹ÖDI‰½XmUŽ2ÄË¥xãÈÈȈ¨óDlAõ…P‚¤x¹»J77Ôò"”@õ…Pµ¼Õ@õ…PBÌy3µCËéÆÔò"”•·ÜO¿]ã‹›TÞ•Æö5ÁÛ¨&žô:ŸýUO೿þÇ‹}özöÓ€6¼ÏÇû!(ê6æz69ÝFz’ŽÁ/#9-5~y‚aÑë ÔZ_8ÑYõôžM N´øbÆísçòÅP‹×+Ú(ê665÷,).§Û(4†áý”áßÀÜ>Ã0¢77æWN<¡ãbéãG8ᄈCJìøñµŠǼ¼…K N˜8á0!h¸!xBè6Jß,bOÒ@7š÷È¿)ùÍë@ÂâGH ¼ã ÝüáðCÈ/!ÂÖ»ŒÀØ {5"Õm -^+5ÔÛF±ãáxÛê‰Rqä®É?„ÎQ*xJˆ´ýH£Æ–¿ËÈ3)¸Ö˜wKî‘[/÷´ª#Ù’U‚þ3B97,¿å%Ô:ˆF—'ÚDR›‘´?¨¹å¼[kœˆ µâce ÒȘ¤eba`;VQsË+üÏ[_DÛMÑn£Ð˜—P\%"æ7И—T¹á¡ø!.Ÿßr’z Å×"j|Û(gl‹?-‚?€ÏçùG¯ ë˜Y¼Ñn£÷üºÄ#¤‘ñ¶qŒŠò"¿ïG[Dã{?I¥ZBq„Α;.'½`÷寑&×~(ñµ‚šÇ¼¤ZJrÅJÈV,\»h ¨åUßÐ0œO¤ÿÏK«Ý#Bµ¶¼uÑfGB¸øƒýôÔŠÔ8æE¨—ˆþ%N$ÞÑ›ÂØ%ÞÞ6¡sÿ*Ahª/„4×ò"bª/„47æEÄ.T_%Ð?©ªA¨¾hqa ¹ö.œQ(ë\BEó¼”BORB üy^Î(d¯°c ³7‘µ§öuµ@Ð3ìå@ë6JàæyY,lÚøV¯^M7x”X»ví¹³ÕK@ñêéé‚ÕjUlÔl6p?I9£Oú”óYµåsTVVpß@Dt°X,¨¬¬Tí/€)^ú°kÉ=¡áÔFº±´ØŠêêj¬Z6 {öì Ú°[µ#Ú+%bXZ¹0ªé?÷Þ×èîBU³Æ”, ´× »vkdÕ%Ú™&´GՖϱ´r!¶lÙÒÓ -´¼DÅkÏž=X~ÿÊ ~?èr¹ðÚ+<Í‚P'\·Üvw´]‰[6m|ãÜ7õöžzÆ0 œNåCvmA;DœpuYØ%ò¶‘ÞÖE–Õ«WcíÚµ˜o¹(Ú®ˆÑu "vjÅÑ®aþó¤êÚÏ XÑß6D¸š *Ö*#⃈Îó"‚ˆÔm$B“PË‹ M"C¼ÆÃ ‚ eŒk·Ql¥Ÿ`mEªUh¥ŸpÄ'´ƒœk«4å(±sˆÀ(ê6–Mö ;Ör\q‚Z¸H|嬛¨$>›x/c&&PBáTW‚CQ·±©ÙW¬JŠ&û îb -}îë‹ïq©øÞabizïŠOÄ'R #óë˜@:—Ž0tÃs³K‰‰w…à*H µƒýYS°Ð¢¡D0P] žß6*-ü@+Y²ìÊÖ¡"· ($²ø¯Šíýð¥ñÒà Z¼ÊK ÐØÔ¦¸°ÇãâÈ@ÈÛŽR‚Y"öêê]ÒÈX=ÈŸòÒ‚pû6‚½øBƒîBÇ "P½ Å-¯)eîE޶Füx ‘œÖL¸ZZIDATx^Ô—çnê@…!Ø”$@zvÝ»éÔrûû?Ñ™Õ8VtäJ؉6ò2+ù;gw ÔdõTËë}q½¯×§ðïñ¶ërø79ùÜ?/ÓÒ¯Fþ-]ÓšÍÃFã ^~Ÿü•P»ÝÒu äø=ŸóO…ÉÇâÐQGYùw;p  düñ£¢±%å Îÿ² ËÓñQ— ¿Gøœÿü›©lñbâ»áÄ[¼½âð‡•íðé—ßC{dIwgQ¹Ðü{'ä€ ?ïÿx”EŸ&8XÍv–J87²·L Ë·¼&ðQâòäâ4è“Xæ'|•vsÈQÓáØ¢+›Ê}4`ª2󧉼7yrùŸ ú=0ÐnÁ ¿JŸów_MÂ6‘ ˜‰U)Q‰ËÌ?ÿ9»sJh…ó³S4@  úNΟû1#Ã~„~ø3 $)æóSù7À,äŽ`((úùsyAhþõüèù9Ážœ…X¨­ä`úÙÈ&~*#ùæ:Ô<¹@]è\à_fªÊ÷ï5ÀеšŸWÀS’_O7`àü”@+ð÷gIü…ªüü+ðæo5vv„ FQXdVQû/Ôn ÷« gþ $‘õ#÷·Ç8¯¯ýýùý‹\†ûs: È÷©0€i!À€ü¿À°íäü€È˜×Í€œßÐ1€P÷Àb@ÎÏèbÊý0Näþ‚–€rû#Ú@-0 ÷w4g@-èò~‚pÄ”rq ïW¡¡€,žÕ7!\tQ/ÒôbQ@IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windows-lcdnumber.png0000644000076500000240000000075312536324507023107 0ustar philstaff00000000000000‰PNG  IHDRL>¶£ ÓZPLTEÿÿÿjhdÔÐÈÿÿÿ·¸AñtRNS $8>%IDATXÃí—ÁNÃ@ D=Ciáÿÿe9"TU!ÀÃÁ»I ½Ôk¤âC‘ò4šñN>Í“­†æ#cv3 ÌXÝ Ã‡ýþ~·»#‡a AŒ+#Ȱ‡q £F²oLY¥gµiAƒ(C3Í ”‹i˜z~²³šH)£K’ä¬8è ½&ª¼‚6Ø•9”¤‰å: ›)(€¡fR0ýæØN@ÂùxÔÐ˱æ½¶­ä\þpÜVcƒm°J ÿêÜë~89MÓôòz<½½|~}·rÉMó,ê)KjZ´¥¬Ýͱš®µ2—gĹ˃וɂæº: IÖ=ÓlZ"ÏÅ2­”ÚŽ9̦,ËùEüe•ž•¦¹Ú³”´¾g?ò©ô`ŠJ‹àIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windows-lineedit.png0000644000076500000240000000156412536324507022732 0ustar philstaff00000000000000‰PNG  IHDR8 ±S”ÆPLTEÿÿÿIuIœu¿IIIIuIIuIIœIuuIœßjhduuIuuuIu¿¿u¿ßu¿ÿœIœIIœuœ¿œœßÿ¿u¿ßœ¿ÿÿßœIßßœßÿ¿ßÿÿéçãÿ¿uÿßœÿÿ¿ÿÿßÿÿÿÒn‡~tRNS $8>BIDAThÞíÙYSâ@Àq0¨„C<" ëî†]Bóý¿”Ý=2ce_|Hõ¿,«r½üªsœ°Œ¥wð·y¢»NmÈÔþ´G6‰Òa”ït䪢pŸä`ævpùÄ¡ Âäè-Æ8¤Ó·|âV²°ÿÑÕq`ŠG&…ëuü6Èy.ŒÜq¸ý2ÿ~IŒpËI¤V)¸ _ ײßë¢Ü¸i‚çe.?ÊüT&rèp𱟸÷ç°ÂpƒK’£‘+<޼*8ÓÍAûéÙþh8áNððéTóU‡³<¨ê5î äà:‡#g•yN~@!¸k’Ñsì2pqÈjwrý.œÍ?¹î»áÖ\Ét8ž¤òip˜ãµÎÛÞåàêú†3§ÝU Îmž]øJŽ3§=Ça¶‹#çwQŽ3§ýr 89’ë8sÚoUÌ‘C¹N¯Ï™ÓÞŽ`§8r ×¹.gN{Gp–íx$×ö9sÚ`¬r®¢ãÌißn'tœ9í+VWr@vœ1í»*V#9ˆ©ã¾ªø%Ÿàju¤#;î‹@ ÙÀíÇ_õ„+½ÈÀIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windows-radiobutton.png0000644000076500000240000000175512536324512023465 0ustar philstaff00000000000000‰PNG  IHDR¿(ìÚÞPLTEÿÿÿÔÐÈÔ·{º€8ºÐÈÔЖ+/7bœÈ‚·È;{`–ÿÿÿº·{Ôœ\<;{éçã<<`\žÐÈ<€¯b€{ž`ž·{8b\ºÐ–‚`‚;ÔЯ\žÐ–‚·–<\jhdbž`\‚;8b;b`–<8b€¯b‰{bœ¯<;\b8<`–y ò˜tRNS $8>£IDATx^Ô–oÛ@ ……4µl'i3»x§é½³w÷üÿ($ £jäBÏ€à“ŽÔ÷È£á€ê§`IEþlóŸçäÏjYÿGˆþ“þ¹þ O 8¨Ký[Í0l4^no¿ØÚ ô}WZ#7Šm1ô>_½«âú·Û­f3ÂßûšÌM¼Ÿ¯!KwVÂ3µÚÝÙ5~’ˆCK¿®áw³•üÕ×ÿÕÞ®PþRþŒÒ  IÎ;y\Ýèêv–~ô~1ºÒcà ßÅ]ìÂå×ÿóZÜ\{?Õ]š€tóxr£'Šk/©„ö_‹1Pà‡N}Ä…rØs“`Àã/Ãn¬eÆh9E=÷­3<ï,?À®KK ‘Êîܧ;òTýÄ: üËç'Óá3*,õõݼ<6 ÃÔ€ÎdQx0д‰D°Œ›WrPŽöa ÝB ó«J/47* ”rüWà'vpfqåêr|Ĥà_ø3r˜âVàˆë¯§ ÈoçÇøu°±´Fâ¶&"÷n>ß[•ÒÛ7b@1;{°÷ñÌ’œœø”Ç‘ùe½(ò“ΡñëôLu—& Ì#KÄÓ<·¸’õ˜nø¡>T£ÿ?ïÅ7 TµÑsþþ€“#i@X¿ÿŸEþªúúoþó×zªÆÎŽ„Á( k€,àÂ*jÿ…šãÃ-á~äÌ?$²~äþöçõµ¿?_²‘ËpNg€ù~"0-ÿ8¶Ý€œóºó:PêX Èù]L¹?ÆÉ€Ü_ÐPÎrDû¨äþŽæ ¨ý`@ÞOŽ€˜R.äý !4à€Å³ú&„ë6†#ós=GIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windows-slider.png0000644000076500000240000000074512536324512022413 0ustar philstaff00000000000000‰PNG  IHDR8ÂëSÌ`PLTEÿÿÿ+/7jhdÔÐÈÿÿÿpGá;tRNS $8>IDAThÞí—KNÄ@ D]•af8î°,G¡¿‰Í¢;Mg‘n¶õ|ƒ§RÙæsááñIÓ« EÆšÎ,ĉ¿â·%noâîϧÓñxw8 ¤ÄmHH€‹Ä…hâ $sµ8-0dm–7ˆ61`™8ˆ&«‰S‹µ™Ö:Nìܪ¢sÇ‘Hæ`JܦÄ!—œ¡zò%¦›8à·äx+wŠ™kZÃjÃÇq//¯o×÷Ïï¯éæšÕ©6l^é£p]ý·+I² ™Y䢓¹®·œ·:q®ÐuãæÉÝœ¸°dÎC¿|ƒd.ÂæŽ‹Rr’Ó5—\|©RÓ3WŽ^–Š›ì)qÿJœ:n_Çi«îܪÕ':êæ;îoKtq˜â™IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-dateedit.png0000644000076500000240000000212312536324502023253 0ustar philstaff00000000000000‰PNG  IHDR:‹Ö"únPLTEÿÿÿIuIœu¿IIIIIœIuuIœ§IœßMa…uuuuIœu¿ÿ¹œIœuœßÿ«Áô­Ãö®Éù°Åò°Åó°È÷±Åó±Çó±Ëú±Îû²Èô³Èõ´ÑûµÈ÷µÍú¶Íû¶Îû·Æñ·Êõ·Íü·Ïû¸Éò¸Ëö¸Ë÷¹Éó¹Ëó¹ÍûºËôºÌôºÎú¼Îù¾Ðü¿u¿Ñü¿ÿ¿¿ÿÿÀÐ÷ÀÑüÀÒûÁÒüÁÓûÂÓûÂÔûÃÔûÄÒ÷ÄÓüÅÕüÅÖüÇÖûÈÖûÈ×ûÉØüÊØùÊØýÊÙýÎÜýÐÞüÑßýÔáü×ãýÙãöÚæþÛãøÜåùßœIßßœßÿ¿ßÿÿáêþæîüÿ¿uÿßœÿÿ¿ÿÿßÿÿÿDÞöYtRNS $8>yIDAThÞíÙÏkÔ@ð7IÚ´[­PðGÁ¢)Z°(x(zT ÝR ‚ÿa—€m{ö¢TP±"BýXt÷`Ýü˜qÞÌd3»Ø$=ç}“Íγ{øð&“MØPêçÕf +R;!ÑÕNò;=8ˆ9ÄiÂû×§ˆ®~ºÇú™DšÅâ«DW?{“œsñèF"â8ã—Ã]d¡vEÇ7÷kóò=¼ããăž»îüŠ”mHžžÑ0—J•Ö•ðƒfSE·ó¾mÞƒ(€eÁê(d†6‰î 6f5Ý' §ìŽo]šWV˜le°™ÛÁTN´±èÔ ö¶ÚºÇ‹/Ñ龈"9¾†éd+íÜí´ÚéÖ¢tñ­Ú¤ +8tÍ„ý¦Õøé¢ZëØò: ¸k᪯+pÒk"Ýó³ð¿©”»°ë³Åð»Vã¸:aW¶Ž/Ë£¦ó1IDATx^ì–åo1Æ£®k ÝVÙ>„0S™ÆÌÌÌŒÿø^“Ü$ZÔûxÒ=ÒÙ÷ÆOÊO!¢ûP¨ÈnéhÏ µwt¡~”æî_3›ÍŸ«/˧>ù@ªtbåír©X\xú(gz>Ð…š[y·\\póܼd6‘E£}}û{{÷õôtõçã´³²¬klxiS}‹|ž¤-yc $Ýr¶VFYc‡@‰´˜,­ÎÌLç\×ýV­Vÿ =‘ˆÇbQÆN ³9*k)%``ù¢diÈN£ú ÎGºåìÆ††j@FyË¿•Ë „/¤‚ˆÎ¥èúûgÑ*;C;YÛ4^8õ› Œ¸$:áÆó@ù;&ÄiÙv-G;¯›q欃8Îk’¿ãÌ aÄì$£ãÌ»f÷µ«qæ7f‡vZ*ãÌzÌîm—D3ãôiÏÞn„aŠBZ ”÷þË·B"?žÀg„«|9ÿå¦2/µµ»FÂ^íÖ‘°CþÚyíÙƒnû­_³Â\ŠÍúƒ÷ºÑ“O¥úu8*H>oÚ°ú®¯zO<´—*+*èØáv•~¬r©\:1[2Ro‹ó £Ts7wË;=ÄÛ8Q¼FÜz¡Ðȱ£Y’únÏ*g‡æÊ¥ µ/Œ[2ŸÆŽ^kƒt-ƒý«W.Q᩵ÀÍékXÅ{Kzê] ^ux‘½›í‡¹Ù»ø7!x$K‘¹Á»%+.],5@0°ÆA»³2œ2͆ 1´R][L)‚üG³e Éðæ¥˜z50qùRêúòKÔ¢y3ú±ßwv¡´o¸Ÿ£=¸A“öJË®]‘|¤eôk€à…ò:­t3¡ËcÂY‘²Aƒ4ãçÉÕ¯ÇÇF0foŽKÎÜÜ JPùÇsìZ°– WÆ/‹0nDPºyãšjí Êx™\ÕíÿŠÏœ¦ì}Û¹ÐB€h«}JÈͺ:1«“ãX®“7í+œ‡Ë—ÎÓÅó%¬n§wÉG‰\/»FÇïçË :yœ*r®QRVvµÚd?rýàÊj%§O§ó%gùÄZð(Á«ä­F‡B+<@ñë§ Ž±¸ìBi±$BoÉÞ—ÅîK­I× @hÞÏS&p§}çÎRIq¡ô"îÏÞ?ÍÈIg óÝ/^(¡‚¼Ã|ˆþ‚Äø¥ÜÅ]•žw4wŸ,9éòÅóT^~]0µ¹†Ý_Á‰\¢é‚68 ÿ÷´'+ƒ»˜ ΂šëh_¹|‘™^£Ì¨­y×@ô%€ßV2L¥-Å=%)Ž5šðf>áuÎS­µH:caKÏ¡Cûõ‘ä–r¦éŠŽ¨¢õcí­mÞ.ˆÆEë=ñøcT¯^=ÖYký²ófÒâs¸ûÛï¿ßtÙAp1͇g¯NiAP‹NçßöZ€ß¶Æ`7 Y‚NáÕÉ˵3¡ Oˆ{Õ‘¸æ­`{ZXôËÔà`JÃBS¸ zÜ'ÂÛ}këˆOªËˆ¶/ÞˆJˆóÔzxR¾ˆüýÓn:£rî¤ò×ÍsbЦŒn"ÞRg7oVÖ8,@f \Ô6õ¼_„1JÍD¯¹‘“#QŠNº”å°+H àD#2EeL0)!šõ¤ó â9¤Ì\oìLgõL˜O#î1¨\P7ÑKþëìiÜ€àÔì)ŽØJÆ‹h%°'óŽ˜ úú@—ç@,L¨«?wötÖîfdEé>$·M”AP湈ýömœ—›Œ@äÊßÚ` ¥Ñ£µðÀ)M8¨ð¿}¾"gÞgØây\3„̆+‹^üÁû™Â¯0ŸY²ï¿ëãTTކ3 Ćèðà•ËX™H5“<=•yœf%#tPîË#Cp±" Fê bU§Ç‚„¶ÀÔ’W¡Y{ ºŽ0¾ÊtÎ¥ð_8NµÇ‰©L³fL5•¼Ð|“¼P˜xˆ¯_¿F'ŽRõ7óæüÂÆk™Í__Ç´8ÓA#4sP°YIM]-6*”ü†â"‡‹LŒÒú£æbþ‰Â­zIIq£F(½ÅÈßÊMÿ5Jú(ÍÛêRð:ÐåišÐ&*+?Á[6­e\r"ÜÕ\K'¯©” Ìë4ËG=­ìÚUÅ“A<ÆàW^2Gàà¨ixÑ@0±Å-ÔâfV'~¼’¾;x™“'Œ¡Ó'sE<.L¿íD ¬m¦ƒ¶<—LY±Œmø˜Î÷ÈÃmÉËË“FùÝÚSV'šÂ‰í±ŸÞ hÈé5gÔõÂó»Ê è+žžžôè#³A˜Ýmµp.ˆæŒÃÀTv4µØ.Üpd2Œžç‰à÷ÒÅóòS¡bÂØ>ÅkàÐþ,Káy›¤sˆIXs¬=ÎÃЕŠ1ÈI ƶ”¡M+ÿ„s'¬<Î듹Ïš»UÛð©€q±aŒ~hä¤@9*ÂV‹Çiôƒ¥fÿ>•”ááÜd”¯ô\‘c²qVørS)‘Ú¿a>ÕænuíNÂ@ò˜¨C ¢¼œŽåîwèq¤ã~x~yµ¹[Ý\·:¦÷¢!o ¼£÷qÒ{{wòÛ£Ú‡í'.FmáÇŠ£zþø ¥çX7‘Ô{hñö2€ëiˆp¼õÉ ¦ì‰sŠ8sAσ0°gü~ó&&g?AcE•ǹ.™[ðª¼ç«vÞsFÚ*J[»Ò8c–†° ³a÷¯-1Ü—¦¢Ç‡×†î!Û×1ñ€WÄGq ^Á‰Ãt½Ì>õk‰é…Ë¢Cõ0!.’:¿Ø‰Z¶lÁ8$RCÛp” Î}Ðc/çŶø ÏwD Ÿ&ç2èxÇÞ—ç n‰ôΣÀ"/wé,X³(íÄTŠIãGˆ “&Œ¦Èð…šgîQz·%ã!AAc:xŸÉ†¡w(Þ*é·ÄÄ{q¾ÙðYi™kY\ˆòV €¤ïùÒâÛ^ŽÓž›¹Ïšxp•òhÊ´Bœß‡$·VšqãÆí”ù„e‘ìØ‚íœO†é„×Yx²M+´š7è¡í1“¸ð™–šÄ¦!¢¹†÷ñZ(ò¨Åg~ì@Vf‹Ëjê•¢[é3æq ÍÃéf¼ƒ‡‚3ø:Z21@ëè-qEIeWYÏà‹ ox8{+³Œ ò㮥ÛÙŒ©Œ‹íñ“‰ ò§&MÛyP¨#bj½+ûb'tÜâó1‹^'ï'»bV¶T׸ާ Ž3Úâ=ÞªêR,q8\Ψ˜Hˆ!8æ\ÍùJº˜º*žÚ´y>ÿg/ÙΜ& •ž•€½´ Ìõò#÷çN0–™žíä )Á!)½{õ¤‡jCë„mÆ4A©P³'AAqPÂËDÙ%'{_•Ç™º‚û=fSíps¬©Gï¸"à© '7[ôÜÙ"6t«2ð žõô2ì×z~7ZÒH@#›"µ™£â0yb0WÀRA:ÚàyFŒ¯4@$kmMâDdkP€µç±,&’fΘƭljq&ðŽ1PH*΃³åê -ܧEêœxkø>CìsÈÚXAÆð8ùZ'óFõ¶#!cgqül­ƒÛºvéÌ<.gÚ„NÙÐ% ©´¤D–.hfftŽKJ™Ç)ƒÓ‰ ôZ‘½ „Xç­7ßP¤MhW;¸oÉxŸÇs¹qR`.­Ljœý§$³+òÆ__£»¿§Õ1äÆùÅ:*žüÐíí7Yª*“Ëzçp˜"\s0™žxˆï…Æ¡ ­ï¡ðŠSÉç qÑ©cM Φ˜P¥™€ÝæÁÖv§€â‰ÇìOäCA†Ez*['0ñ¹0AÍ -9KG%è‹ÐÀV­ZR¨ÂJK­?G^‰©}ú©?²É÷Î÷TÁQÖÊ´µåKÚºEsƒ×²îM,84´àâeÁÉ!€ž”XPoìD·h+RàIipª+àý– lµ°±E•mAt‹¶"Ïj:mµÏÓ‚“CmµP Äæ–/s‹¶ÒÜx¶Úœî“°®„Ú‚ØD¢[´±Ùƒg¯}¼OB Å Š÷ĦnÑ\Ä{ž<{íóð¸×€uE z9ѪnÑV¼€ç%¯®3ï•ÑÓ nÑV¤€ó”ÏãŽ#å@ém¥¾hçÀ:N@)Ó-Ú‰— pŽÁóð¸G À{€hR¬‘nÑGê‰Öº®CðœhÑH)0Ý¢½ˆA³®Ž£?ü3¶o¥Ž¬ ËIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-fontcombobox.png0000644000076500000240000000260012536324503024170 0ustar philstaff00000000000000‰PNG  IHDR:‹Ö"úÑPLTEÿÿÿÿÿÿ¹œßÿ»Îý¼Îú¿ÿÿßœIßÿÿÿßœMa…¾Ðüu¿ÿuuºÍüIœÂÓüÅÖüÉØüÑàý²Ïûÿ¿u¶Îûÿÿ¿¹Éó¸Éò³ÈõÍÛüÊÙý¹ÍûIÈÖûßßœIœßu¿¸ËöÎÛýI¹ÏûuIIºÔüuIœuuu½Î÷IuIIu¿u¿uu¿Ðø¿ßœœIœIuÂÕüÄÓ÷ÅÕüIIœÈÕûÿÿßÊØùÊØý­Éù¯Íû°ÅòÐÝü±ÆóÔáüÚæþ±ËúºÌôßÿ¿²ÈôIu¿½Óû¶Íû·Óü·ÊõIuuuu­ÃöÁÓûµÈ÷µÉó¿ÿ¿µÍúÁÒûœuuI¶ÑûÃÕý·Æñuœœ·Ëù·ÍüuœßÈØû®È÷¯Åô¯Ëú¹Ëóu¿¿¹ÎûÎÝýu¿ßÑÞý±ÇöØãüÙãöuIÛãøÜæù¿¿ußœuß¿u¼Ìó²ÍûßÿßœIIáêþæîü³ÇõII³Ñü¿uI´ÈöÅÓü«Áô²IÃxtRNS $8>CIDAThÞí™esâP†»´Åjh- .-R§î.ÔÝ»îîîvϹ 3¤K3Ë—)sŸÀœ››ϼ÷Ä 8Jd±”æÿ©{zì]}©›ŸÜÜì<8ûõîkª.ê>¯¯Õ­tu5߇ ª.æ×Ÿ?éjŽDf~…<ŽM–Ói5µº¸¨¨P¥Bus r2åÊ:]èn‡Í߃B7ôÚò[ÝôZ]S$2;ë±ÛíŽ÷,§×ë´ZèNJp„626Ük˪JŸ×êÆV5»ÛÚÚìw êJKJ@žè.CJ¿dO0^ äÉÉ0A޽ëÀH‡ø¹I^œ?ÅãÎ>^HOu2d¯K ü?þꛚÜn·ÝÞÛPW^VšvwHÝ7[´Õ n¡T5**ñ )±[ç€7ÞïçDƒ®¸|uÒTÌf´CèöâÐñW×YXkgà{³z¡‚È#îäê RøIBc|çý>^Ã!±Èÿ°Žï;R¯ º¤u;.Mu‘j’.ÔÀbEonw,¶wŸåLFârw”:©±Å‰<s^Oú?N¾ñJJ‡øCê ¸âòCÝÏÌíÆbαœÅd4€;½b—UÝ–Ÿ¨¹ÅÎ}²I=Í‹¬ÐÛξ°Is¢>^Z°Öù“ºg¡p8|uÊÝW__¿ÑÈrV‹Ý‘ØeU'®º-?ôKcعÄ¿lcÅ–FêN8'ÓDzê^åäºÓžPh èÛÿ¾to›åª*‰;;zI¬¬.à¹èñìîî_©_Z\e¹jpýcGÕ)óûÆC‡ÃÑÓ³÷acñÎ2ËÕw;­†>9QäÕµ†D"ÑÐÐØ¸½ºü‚åjÁÕLbGÕåÄ!u”©C´úÒrƒÉRYU]SKQBÖëˆ:]IY…QtGQBv†E4:ŒÑŒî(JÈ®ëˆ:Œqg­¢(!»›@Ô;tg²X)JÈîa‘bŒ¸ƒ~g¦(!{rBÔ©5Z=qg0R”=¯CŠÐN”GQBö”˜¨K»y%dï&BÑÈ{doÄq§Ö@ò(Êd¾‡%êT…(Ø£(ÞP˜;ñí«¬à‰ IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-groupbox.png0000644000076500000240000000374012536324506023347 0ustar philstaff00000000000000‰PNG  IHDRéNmæ³PLTEÿÿÿ8\;z`•Q€!¡!<<8<\<;\<;z<`\<€¯bb8b\b;b€zb€¯bœ•bœ¯bœÇ‚;‚;8‚`‚œz‚·Çž`ž`\ž·zžÐ•žÐǺ€8º·zºÐ•ºÐ¯ºÐÇÔœ\Ô·zÔЕÔЯÜÜ×ÞÞÙààÛââÝââÞããßååáååâççãèèåêêæììéïïìññïóóñõõóõõô÷÷öùùøúúùûûúüüûýýüýýýþþþÿÿÿÔÐÇÔÐÈGÕԼϞÐÈ+/7ÁIDATx^Ì”wOã@Ä-éÜ%\€·Å½;½Ñ{½»Ì¾·k'’Q´™H‰gäüñÓŒžAsYúè”±®¨i!ý(žù¹)ýÒVvÊmÆffyRå ØîN,šø?%ݪNõZ­ZÝ«TvwvV˜·4ÆNB까]e~tJ…O|nóPR8hÑÎÿq3d샙ɳkƪWÍf£^¯IÔ÷&Øiχ‹©IÑ{®#ì`iÊÖ¸È_ÿ£[¨ôyèä눗“˜ÛLDo§íVK°JTƒQ²dm²½òØ3“¨Ä#ƒÌsÅ7Gw )þú9)¾<XèÒhLȯý¶BÒàœ€Ômá!0!iö/Vþeâ«…¬ÈV¤üR‹hÓc@:¿‘QÓ3™[Hª6Œ[AÚ—~pR9K¿¤ó¿àŠö޳.Ö«:%úôtzÐETѪ ©8¿›©:*x‘<·/}Ä`Újàx}úù®U Ρéê"éí5ît;µÙ¥J¿=QLËH'ipØû¨XjAú5@Ч¨„,­¤ÇGˆŠ¥®uº™Ï»ööÔ4…Ü'¯÷û%ÐÒŠ@Á[P[±MÝl@QDP°xßwžõ}Ö¿Ú“³»Y2ša2}È’ù2Ìβçäá7»M;ߤRéu¢Òg5ÝT–ÖöÚ½ÁTÚTzüÖ[z“¨W.ñ¦BZÙ)¤B )¤B )¤B )¤Sû¯zKWWW_­­ol¾}·Us©ƒnH匨…ÔB[Û£)ãÁI$sÑs©…¶F;5—®­·ÚÚù“F·ïA¨d;bÝåÅ ˜“mš¥Zj<[ U2ßåiV”tãƒÅ ôNº¾Ñjiè§¼ôVWÅ“O;¡¦«¸™N’…¾i˜î«'}ZŒ›zjŠ|c<ÑÂ7éÆ&1ú%/%O2ÿ˜F2è5“`²¯TÒIG²õB=ÍŠK4á?ߤ|túµHÊû+ócíÝ_0ì¬(}•¦_/ú¥Äë*5h¦¦¸1¤ RÓ(è˜&Pä=µüüí93ÕEŸ¥i¨‘*sTÛ|Lã ˜=U/˜ÓÅté ¤Xk¦¶ù*uP’–þÖˆI}÷–—öBdB )¤BêÓ)¤"ï]YYyþâåë7&Õ\ê [ãä½Üæ·ÔAß“‚š@&/'¼GR+ÿ{"uÐ’y/M$7é‘÷4éÐ,ëžå¼0MÓÑ2GÄ¢:©ƒ~,“÷*^’Ü´¤G’RÔmKúô;lÊv¨âFĹpuRý\&ïÕ›mšÌ™Oªëæ9½Dcªæ+“:h©¼WòÒ¤¶ô¯Tp.\ÔAKå½T6…ØŽöôʬ;;½,8®Nj¡%ó^ÅK7I=’”ï m·{"±tȹpuR-Ÿ÷r5Î{ý—"s€RH!…RH!…y/òÞ…úä½å¥®ÏeÀþç½ãK_ÞËžðûtwuVd_îå>óò}E°ÿyoBˆ-ۜ̽Ü;侈s^A¥¢ Xøž÷Z˜ 9Ýk"ûª¯Æ‰¢ Xøž÷,eƒÌ¤…°ÿyoÂ…}§—ŠºÓžP'¥RQ,AÞ»‡ ßÒ+ÜÇ»§ï+È€…yo}÷ÖZZþ‚RH!…RH!…RH!…RH!…ô{¥?rÒ½Ÿµ…þÙËIÕB謹ÜÝ;€ CQüƒ êæè­qÿžh•-äîàô3\Zê-©>…KÁö㼆¸ç㼤Еx°n˜ÿ§J¡Ëÿ`FõR¥Ð70õKMY }耣"5Ä$%†·»;½†a0 éå<öß•¸^ÁßOQ~û·º‚ŽêTÿÕG*ZÒA)—©6êyIEëH(‚:w«T´x…âGu«T´b†B§ºµ.RÑ2²FÍÅ節 "³+°Z §CÇœÓwöÇŸõÈIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-horizontalscrollbar.png0000644000076500000240000000273212536324512025574 0ustar philstaff00000000000000‰PNG  IHDR8 ·€i%PLTEÿÿÿMa…|ŸÓ}ŸÔ} Ô~ŸÒ~¡Õ‚¤Öƒ¤Ó„¨ë…¤Õ†©ì†ªïˆ§Øˆ¬ðˆ¬ñ”¯Ù”°Ý”±ÙšµÜŸµÒ µÓ¤¸Ó¨»ÔªÀáªÀóªÂä¬Âõ­Ãö­Éù®ÀÖ®Äå®È÷®Êú¯Åô¯Ìû¯Îû°Äò°Åò°Ëù±ÂÕ±Åó±Æó±Çö±Èó±Ëú²Èô²Íû²Ïû³Çõ³Èõ³Ïü³Ñü´ÈöµÈ÷µÉóµÍú¶Ä×¶Íû¶Îû¶Ñû·Æñ·Êõ·Ëù·Íü·Óü¸Éò¸Ëö¸Ïú¹Éó¹Ëó¹Íû¹Îû¹ÏûºËôºÌôºÍüºÐüºÑüºÓüºÔü»Íõ»Îù»Îý»Óý¼Ìó¼Íú¼Îú½ËÚ½Î÷½Óû¾Ðø¾Ðü¾ÑüÀÐ÷ÁÒûÁÓûÂÓüÂÕüÃÓýÃÔçÃÕýÄÒ÷ÄÔ÷ÅÓüÅÕüÅÖüÆÑÜÆÕýÆÖýÈÖûÈØûÉØüÊØùÊØýÊÙýÍÚüÍÛüÎÛýÎÝýÏ×ÝÐÝüÐßüÑÞýÑàýÔáüØãüÙãöÚæþÛãøÜæùßâááêþåêîæìñæîüççãèíòèîõêðöêð÷ìò÷íñóîíåóñìôñìôóîõôïöõð÷÷óùøôùù÷ûûøûûùýýúþþûÿÿÿ@¸ê/tRNS $8>IIDAThÞíÙ1h$UÇñïÿÍlÖÍíÆÁ€ulDP;±ð„Ãîà,Žˆ³;‹€¢báq V6!ʼn)ÂÁÉa#XØÙœ±±³·9𪠻n2»™Ù}óþ‹7›Û$²I?óÅggÙâÃïÏ{»#?ÑÔEëæÜëô’;y3;ýF¬¯¾vµsZ>M3‘ºý,¾àÐþàÖ+£Þ~öG¾âÉYñùŠíÝï¾ø¦vpghNÀ‘-/u-ÓÒçG{7ÇdËoú¶âi«okl¿mR¿Ñ¸šÀ¹êñ`„CŽWS‹#7[ÿ\@¤§ÈIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-label.png0000644000076500000240000000127012536324507022556 0ustar philstaff00000000000000‰PNG  IHDRL"·Ï3·PLTEÿÿÿÔ·{º€8‚·È<8<\<;{<€¯bb\<ž`ž·{žÐÈ;{º·{ºÐ–Ôœ\`–ÔЖÔÐÈ8<;\žÐ–žÐ¯b8\b;bœÈºÐÈ‚;‚;8‚·¯<`\£útRNS $8>•IDATx^íÖÇŽÂ0P&@-•f'ôÞ¦÷ÿÿ®y%#Í#,v#î!lŽ®#lS9]™ÊŸÜ°Ë⹎cÛõZ­jYWc¾ï¹®CÚ%˜ž¼‹÷2ÍF8Ö* 3•ßeá2¬Ýj`rÜ :đƘ^¨ûü8›žôè냊²)ø\?¼Â+Ï)cQHt+°ã|¦?}æçÍö=ÊOÙfGs¶%,‰Â4߃j„A1¥^ÖPd*—‰ôxEsV%,MbÔ¨cÅ”ý@-0ÖKX¯KUãeÎÞÐ:Οs(±fŒÅŒšežSÆú ÁsÃjŒñrv@îa±Kê·À…/•úžlqç,3 «¹ÎÕ;`ZSµÿ…Ý0Œë7ÛA”t{ýÁÐ4âwF˜×huBÖL#vÆñ°Z£f±7 Ãj¤¥=ÓˆScc5Ô¢$58Ï0u¬<·Ø4â¤%Ìv\Ÿ´ 4¸05Ô<æL#n'Â~5àL#îML•5àÀ3Œ¸Ñ1i¶íŒ#þkfU‘CÏ4$!ÖÝ÷81×ûnIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-lcdnumber.png0000644000076500000240000000075512536324507023461 0ustar philstaff00000000000000‰PNG  IHDRL@‡‹abZPLTEÿÿÿjhdÔÐÈÿÿÿ·¸AñtRNS $8>'IDATXÃí—ÁNÄ0CÇfÙ…o@üÿ—õˆZ!„€1‡$m½lb¤:‡*åɲg¦ Çê!VÅÈ‘Šø Ô˜¯†a÷w§Óñx{8ÜÃ0 €Æ•d±‡q Ã#Y‰SæôÌ›&Qhƒ2TÓ  XLsÀæ8{`j§et¦$IIÇÖ`10Pö}¶Ã®ÌÁ’&–ç(l¦ÀƒRaææØ' Ãùò5òЖ£–mm‡e.ÿ…î­±ÃvØfa4Þ73}WaNÓ4==¿œ_ßÞ?>¿ê¦ê«êYÙu½¤z0ÊêUÔ·}¬ªk­,•=â2•…×”) -uu…&EóL³iy.–i€¤®î˜Ã¬Êz9¿ˆÿ Ìé™5ÍUŸuIk}ö å6ôds)þIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-listview.png0000644000076500000240000001241712536324507023352 0ustar philstaff00000000000000‰PNG  IHDRý®ý/ ¥ÖIDATxÚíklWÝÆ×M“&&ôH+(!½ý€ÄW>EQ?–¯ˆ/E(!¤•*hJp›P"„+¿$ˆ ÒÒ:v\ljsqâØ±_âdm×¹8nð[µIÚØÞÝØ»öÿÿٙݳgçÌeï»ó<Ò#{Ç3³ëÄ¿ùŸsæTJèø[ï¯Ñµù5š¸•¤Ëï®ÒøL’Æ®¯ÒÅ««48 þ©$õF’tjl…N -Šã.½3SèxËE×l mÛÖB³~Žé SCCƒp¸'Ïs@P¡ç ÏÀOÏÀß\MÃ>4¤þIÑðgÆ èGW¨{dIwzøš€> m2¼Ñð#¦7˜^oøaÓë ?$ì½—~ýÆixxØút…dðDA¡Ì§±Í HßÀöP¸aµÌJÇzTz¨”Ð÷MÄÓ~ôzRÀΜLÐOŽ­¦Í•þÔHªÒ·÷NZÐ7š¶àß(ÁŸ ¾ô¡Ñ„yF|µ3CïÔÄÏÀ¦ð6Èô¶mÎ@úV\\ÂÔShk‚Êý™ñ©æüŒÙœŸJ?ûƒ=ôîÑ$Mˆ¯l úÃ'',è7þ˜éF¥òç‚ïz';AŸUé ðzZ ÈMê¹Ê‡[2@Î?³šå jµN7Û¥íê¾¢Ê7Hç0[ò9lC¥‡* =Úq…½–©ò ¼e¾ËŸmAèxÄ‚þQ×àwßz'ñ¾÷JÏà1˜F%vkz3àÜ÷KWpóv•Üî{õ½Ñ€ª z¡gÐ/N¯ ËÀ[>6–¿{8Õ§?Ø™†þqÃiàÏßô!Ú ¥n}ë½Zég­~¼Ý [V–ª´x­ÀªVtëçNÐ;‡JUz¾%'7é-Ÿ‹$rÀ?ÆÕ~xQ…~‹á'4àËß;ôx“tñ­ùÕ¥WúÝY@ªýý °Ü-H:Uh7èQÙ¡*„þíÁ˜¥—ç×½†O+àwŽ®P§yËî@ç úOJà?®€o5õ3ÕÞkó>«Òï çSém!U~.ú÷Êvn!¤ÆR}÷pOèŽC¥‡*}û@LÜ’ã{ñxãëùÉU}÷D’Ž^JÏ_Û‡W¨c0ªB¿Õÿ6àçV{7èÝfåù®ôšíV³Ÿ½-¶¹¤ àÛu\¡'ýqTAèß:·æüó‘ììs“ }—±½ãr’ŽÍûÖ‹+Ô>˜SéŸ2ü¤üÜjï=íÅ®•¾Æ…J•ú7{£âVƒîJ‚΀³¹iÏÀ»œUþÈH‚ÞZ¦öþè?¥€/÷ñÕj¿¡ y²J2#‚ýg©kx™N•\L¾1|rÌx})5pwÔp›ñs¾u0Nmý ê@ÞÓðÕjŸjâë ñe§JÐ é¡¿>÷€º.ܧãC b^½e~ÍýwöÑÁ%j¿°Hm} tu.&Žk=;eAÿYü­R3_­ööÐËóéý‚ ПŸ¸×±­}北µEyz*ôwï/Íû[´¿ý*½ú¯izùP„vœ —\¡D„ùµå¦CS´¿m†î,Ä‹}±òôé¡/ÆC4н¹åé!rïÓÛ=DC~†õ0 õ!·oÏUzäé óø¡‚ ·{ˆ†ü +_¯>DãÂåŇ¾Ð<}µ’§·™£ï:‹ÐC@Ÿž{?šajUXÌÊ3 Ñ}9™3÷^ºO_\è—§W÷7/Žàz¨è­¹÷Vè†§á ›3óÄt\ž•w)©›{_|èóÍÓ«PÔDžÞ`·s¤/jŸßñ<˜dèåh-Wû F…gó”\NÚ±»Ç“9ÑÚ’A鷺ÌÓÛn·ŽÕœCI Ú†rÿ¤ÖZ €¾ú Ï/OoRÕçé ×öK Ùîx1€}•@¨<½SóÞkëÀ znÉz@_íÍû|òô®]Õ’§·»eUyë8Í9ì>¿Õ=‘ZéßK¾Ëè}µAˆ<½ }Vó]ðsì†äÊÉ”éß+=0‰<@_e·ì ÍÓCe \B€¾ÒÐû ÷˹ÿtB€¾¤Ð#OAP@<=°Ò#OAƒyz ô^„<=zäé “k úyz«Ûz¨ž GžÞ最ªw胧·‰Ó:}NÍ{Øþ~êv?Ÿªè«î!N Dž>+ç§÷óòï'íßvÈìƒ@_^è–§×aÜòônŸ-ç¼VëÄãïúrAØ<½ÚŸ÷ξ8Ei%øQÙ}µ4ï›§c r×Â)Oï#oo~¶pæJ@-b ÓásB€¾Ð2O¯|ÖÔ`›Ý ¢Û`aæ=l?eðq[ftÍ ôUõ äé!(`Ðû ‡ ‡yz ôÈÓCPÀ ‡ ( Ð¯­­e‚ âC_sïY#ÍÏÐð_¿ECù& ìÿ:ݼy“¢Ñ(þ§ ¨„п÷þ=š¿sŸþ{wþ{/Jï3/=ô ¼ªÞ?~•øj Àw+ÀmÖf¥A®ô¯þ€ö¾~‡ö¾ñ!½úæG†ï — ú ðÍŠ‰NÿöKÔýë/P×+Ÿ£Î¦ÏPÇîOSÛ®§D+ ‹zªÅJÏMzŠÿ‰hé¹¶Që/¶Ò¾}ûhffÆ{ÅôT=•žûðôÁ¢ùÝÔÿç¯Ùúìï¿B§~óE:¾çóôö¯žŸÍßtíX¬÷zyî½¶Ò—rî=ÚÑ»?p{’qq`ýã§¢âÛK·;Ö{‡½¸ÑUú’A/`Ÿø‰Ù·ovõƒþüíܹÓ[sÝ-ŽõÞ!TúòUz¥§‘çS}{›û÷þðÔ÷Ä~Û±žvìØáz¬÷úÊVzî¯3ô©æ}sªïàùŽgÅ~-?Z§‡^Y={v¬÷úŠæéù¶Cßó»/§ 7ú÷N¾ñúwÅ~¯ý°ÁzÊz}Ö:íXï 8ôŸ†Ë÷áz™Ðý{'G~Gì×ü|Hß§/·°Þ;è½CÏ·Ýä‰7|þß/l¡ÃáÇèŸ?Û,FéyÐŽûðܤç ÏÀoß¾ššš*È9$ ú¼ çi¶<Ý–ææºWóþ|A5½>WüÉÉIÏF ‚jz¬OA„ëÓCPy Çúôè¸>}¾ËLWJµ<™½ }ÑÖ§¯5è ]ÞÐCµ }QÖ§G¥Çg‡j ú‚×§·þ¸l¦É:®Kï¶î»ùó–°5!‡×ƒ“çò+sòíþгæóóñ¹Ki·H²â»®ÏЬ¦«¾Ù­S/-ã•>Îø]zÔg 8­{—½lVƒ§å½ì&8eŸ“‹ }}®Oï5ïn·.½kî^ù#”§àj§ãfÎǰ…ÃaóÆv›å­Ó§H§ùœžÙž yy¿œuêå „µ¸%宀›µÀfÖ•-ûèúìÝgW/¤P@ /Þúôö•V³ ¤ßܽ4OÍÍú#–Šì §À€ñy¬‹íEÇ¥Ûá´=ýYÞÏnzÊþÜY?g™k›ÖŒÓ…ÒÏgGó?˜Ð¼>½.ïî².ý¬ßÜ}úívåÞ&±8Þlf÷˜¸Ð;¾_N3ZúÜfzÐúÚZŸ^—ww[—ÞçºïêøÁ¶–YÇÖGØh2[û̶„E³[;¦Óv>@¦‰ìþ~¹ëÔËàJï§~&ù‚š3^ kÆûùìhÞú¢¬O/U,Oë¶{][^[…dp<^ˆTxÜÃåéùê`˜æýlשW.tVß=§«£Tóœ×6v~?»r\Š }0Ö§/uÞ]íNÔ“òmn£™è˽>}9óîò ô€ëÓC ·«ÚXŸ‚Vé‘§‡ €A<=•zäé!Ð#O?‹¿Ð#OA€yzôÈÓëÂ(ÖϤ©¥-šœú¬Ÿü:ù‡yú²äémB$ºœºçü:å}UMí§<½ãç±Ýf¶z¼FY!(?è¯Ï= ® ÷éøÐ0ª¸lÞÆîŒRû…Ejë[ «s1qܱ¾w§Ï¼KžÐCUýk7ò:öÞÿÇ#O¯Œdå鲿vç².TNùu*ú»÷iÿ‘«ôò¡í:0A/ˆhýÒß'iÏ¡IÚß6Cw⥃¾nòô.Ys1g—SwʯCPÐ/Þ¿CKìÅ{]úbÑ(_¤åK´¼§DâáeáÕÕZ[K¤]è•§÷Ù…€ º„Þj>Oè¡ C<=zäé!(€•yz ôÈÓCPÀ ÷"äé!(€Ð×dž#ò ·‡¾nóô€ôzèë2Oè!@ï }½®Oo»î<z'Õlž^»î<zsKçéÑ܇}Àòô€ôuž§ô ×C_—yz@z{è±>= z?ÂúôTãÐ#OA‚yz ôúµµµ,CTÇÐ4?CÃý ýå›4°ÿëtóæMŠF£øŸ‚ z„žWÕûǯÒÀÀ€_m A5 }øfÅD§û%êþõ¨ë•ÏQgÓg¨c÷§©m×S¢‹Åô¿&¿@PõBÏMzŠÿ‰hé¹¶Që/¶Ò¾}ûhff‚jzîÃÓ{ˆæwSÿŸ¿f볿ÿ úÍéøžÏÓÛ¿zZT|6W|ÇJ¯¬õîIåßå<»m¾Þ:‡Í4^Ûœ½z´2 @¯‡žíèÝŸ ¸=ɸ8°þñÓFQñ]¡·Àsñ¥ïòõÚ<¾SÎ>³½'Œõç @¯…^À>ñ³oßìêýß_þøÚ¹s§‡J/UhÝ÷nÁ·œ½y‘Àb“ ÷=ÒÓÈó©¾=ƒÍý{xê{b¿¿íXO;vì( z]¾Þ)ïØtü w…žûë }ªyßœêß;x¾ãY±_ËÖz»|½.ï³gvÎÙB ÏˆoË1ô=¿ûr z£ïä¯Wì÷Ú ‡ž4ùz«ï:× ]$¤ó€xÐë¡çûð =Ì èþ½“#¿#ök~>¤ïÓ[¥ÎãCP çÛnòľÿï¶ÐáðcôÏŸm£ô}µä镾¾ç5ï•ýp€êú’­O_¨J‘§G3ôþTjèKž§ôPСÇúô è±>=•z¹ã‘§‡ ƒž5/Iã³Iº8½L}Wâtv¡]'è¥WèÅa~m¹éÐío›¡; ñ ‡a¸víz2o»[6´Ñp£á͆5ü¸á-†?iøIó¤Ÿ2ßä³0 WÜ2ðOš¬n1Ù}Ôd¹Ñd[ ý&óÊðqóJñ„ø0 WÖvÀÛUyf{ƒô˜;¨Õþ ³É ‚Ãpe-o5ëÕ*¿Éd[ ½ZííÀßj¾ ÕõV ðj•g¶×ÛA¿Á¦Ú«ào‘À‡a¸²–›ô2ð¹U^ýz›j/ƒ/÷ñ?ÃpÅ-÷áeàs«|(ô°ú øð­ªÃpeý¸øF ø NÐ?lþ&øa®¬í`ßd |(´N½ø2ü0 WÖ›%.€×B¿Î|~ùÃpåܨÀ®>zÈú‡4à[ðË•†áêðF‰Ï Zà ·ÀWá·»À0\yË «°¯“¸nø?îß©ô±ÓIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-menu.png0000644000076500000240000000264212536324510022441 0ustar philstaff00000000000000‰PNG  IHDRÁVAÿUPLTEÿÿÿÿÿÿßÿÿ¿ÿÿÿßœœßÿu¿ÿ¿ußœIÿ¿uIœßÿÿ¿IœIuœIuuIIœßßœßÿ¿IuIÿÿßIIIu¿¬¨™IœIuuuIœu¿ßœIIuII¿uuIu¿IuußÿßIIu¿uI¿¿ußœuuuuœuœII¿œII‰ˆu¿ßœuœœ¿œ¿ÿßß¿uœß¿u¿¿uIuœœäÜuitRNS ! % $  Í« <1IDATx^ìšgSÛ@†M ŒIŒƒ!HæŠjqï^Óëÿÿ+¹ÂbÂQÆc+s œŽÓîyiÏÞÙL¥Òº¯À4Á̦ ²¹L~wçõÛw©%ØÞÈæ y†Z‚£Õí\†!,)­à‚Ã7 ¡°ûWÚè°Ñj¬l ³d͵,«;ó‹š~D°¿·Æò;‚jˆàòÄ@´ ›=¯9#‚Ð)QØ8-‰î¦@ÈvTÕ²WjìçβLZ©]þ²>—øì¢dñ•†Õ3h}0Ä…m{^¹’ˆ¬l¾ß;XÝÈäCUþ§ÔËc‘­a"7`×cÃí®¬+7¨—IRE‹ê“6ÌÉ;€$"ë+›û‡GÛ¹B˜ :€ÝlñäÅ÷Wþòÿcƒ6XíŽHBG®2oì,nŸd‚­õ•—/ÖV³… »É‚VÉLò@ûMC!€*‚$b á‰ç2…Àé äÌÄOr‘(0‹#ôÏõ¯^FNA|›"Û:Ÿ 6A, 7M  4&è¦Ît©¦ 4&К@Õb‰ „˜bNQ[¥rŠÃ\@RAÔ@’ŒÀ|iÜ" ÔÑDœp<Û®zìÖˆ<ð("–¨ˆ. ©¢ž!E@©;Ö|Ž¥Îé8TE\;r:U4fþr‰ŠH¼À*ªEFȹi„„s‘(²³X‹Ùâüò8Dð=Çbæ¥@êÔ@Po’€«¦ü TQˆ@.MÄÏÅ|›ŽH¸–°k‰“,1üæWÅíèIÆbˆÇÜeI´ ·“j­ÂæoEkÿ&К@«ŽºŠ4&К@h‚ù­¨F–:¿Lœ[Ób•bCU$%eì|ñ½ŽX<'èUÃôŒžµúßúä E²H®ŒÓ1s¸ï;óTí2LP“újÏOßëx,tv ðË×&ºù1ÄO8?‡}æ6@Q'ãm¾^GŒœÉ;@Wm¹mOÑ"@V¢'º¹5”^X Ú#ŒÜ!_ÄÎGßëˆm~ò&ü…&+.œÌ)¹JJŽŒíñFy†e¬Ö*nš@hMRÛúS½æ A­ (±¥í‚¶€ÞÿšîÄdî0ß öe1Æ´ûû~¹>”⊂0 }û8A).‰ °yy›A)®¹ Èiú”⢂Õ@èûM)®!¨98a8F¥¸,… ÔlivƒR\÷BÐJ]spƒR\XCp¶ƒ¥ ÷;àû&Ö7•¼oDIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-progressbar.png0000644000076500000240000000175712536324512024036 0ustar philstaff00000000000000‰PNG  IHDR·"*¸]&PLTEÿÿÿ\;{`–(Ò+)Ò,.Ó1/Ó25Õ75Õ8<<8<\<;{<`\<€¯A×DB×EMÚPNÚP[Ý][Ý^bb8bœÈfßhhhhuâwvâwvâxwww{ã}|ä~~}‚;‚;8‚·ÈŽçè”é••é–ž`žÐÈ«í¬¬«¦¬«§³³³º€8ºÐ–ºÐȾ¾¾Ôœ\Ô·{ÔЖÔЯÔÐÈïïïðððñññòòòóóóôôôõõõöööøøøùùùúúúûûûüüüÿÿÿmëâtRNS $8>]IDATXÃÕ–ËnÓ@†ÏŒ;Øq@1‘’ŠEÕ ªØ°iñ‚` /À“ñ°GÂÐ ·* ŠFiQ„" NÚ$ŽÇíØTSµfaO¾\ôç&}9ù}búüÉã= xöôz ý~ÖêVœC1è´ Zõt½¢Þ Xx1†'HV€6/ê « BœÊ€Y7zÛ­º®kZMUJÑû"!D äPJ(!ðŠÞ‹ÅrÁ˜(•!tÃáÐHœÄâ‘÷Á;´¤Rz’}ƒ®Û‹ÂŸwKvì¾õ ø¼>dëH<š÷Åy ¶CÊõ›Î~}‚Ú#ØÄÙÁ¬aeÞnŽÞ+ß÷W+†¢TnOÔm è9ßO_nÁ󮞆Ã~Xóþ.eÛíÝ›™ÚUý®%¯}Ò©y¿Ýï½ßvÃ.o¹hŸHåÍM›´gÏzˆƒulùdÝ“XÍ¥ðÎ$‚æ/~?ÿˆ¤à ɼ3 v”,BÞû³ ¶ûe+õÎ Nym(QðªˆR)„ëTw~P>Àš»6Ðg_[{¯ z†aâÍPQ*eÞÞÿüDjMUT„RQ’è¼ê’wO³t½®S*J 'TÓ0ÍèFˆ(•Ô½èG¬Ÿ­–´ìéT”¼2€q£¨wçöé rNït‹z¿xùúàÓaïëÑ·þàd8WÂñ‡Wo®'ÌHV>ÏŒ…Ò“8BHãó±äY鵓iççÍ¢ “|Ø,VOçÍε™ÄÄâ\ò=‘\›±¬Þaî¸äæ’‹§ë$™÷(_’ßìyoh¿7uŸäö·ìO÷÷_÷¨_~KÑs.IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-pushbutton.png0000644000076500000240000000266612536324501023716 0ustar philstaff00000000000000‰PNG  IHDRY%5µ'sPLTEÿÿÿM}Ác„žh‰¡i‚îjŠ¢z•¨‰­ä‹­ä‹¯å¯åŽ¯æ‘±æ‘±çÎȾÏÊÀÑÍÅÖÒÊÛØÍÜØÒßÜÖãàÛåâÝéçãéèáëéåëëåìëåìëæíëçíìåíìéîíêïíëïîèïîëïïéðïìððêððëñðíõôòÝÚÔ×IDATx^¬ÐeoA€a+McHÚK¿gv÷ÀÌdff(333333þ¤ÎNú!ΞEº×òX7Ò=Ù úž,ÞÃEBÀçFó v§ÜŽ.Ü8ü>Kö§+^ÛSÅùH¶ðz…-o #Köñ{âï÷ùQ·ËéÌË[ž›»,'Çá磷ÛЯ;·øqÇír9‰–ò>ñÓ†~ˆœäç£=G£œL~·¡­É=œ­\QðŸ&ùŒØ¾Ä¶]:¤ìRâ4g…«È&åÄÉ”E]p.eÝlj-ÊÎH$8+."¯&ùˆ0ÔzvÆ0~­Š›ÊNÇ8+-.*DÚãÆ£¥<¨Âï^6“Ñp±9n¾8k¼=…3Æ…¥|å²ÒIÓÑ(÷ ])ö¥'Õ²3nÒ[l¬lÒõêñ=fn07+o<œ­YM4òPß+¥òÆMs¿a€›#øPÞ('=CÝU\,LëÝÅÙZ¤ñ¿–G“,T¹zªàOíhΗqÐTeò:¢åÑ.'ÊÓmšZ}ÝMÛ¹¡U«¿^‹óQÃŽÊošöx>´*/œiãl=Òe%t´”Ÿ‹¨EŸàEt/À³Pm¨*š Ue&¾ÊqM.vW|àì_«u²”0EadÀ‰Ç¡£2:‹SÁÒÞáðV.Øó¢öIŠÅ1 ·¿ìÿº•ªî¾ÿÊö¯£N;W>Õ# ÞôI®Ç¼Äǹ²Òû{©áVßTîΕÒV>5¿¤rooº{`ÅtÿšÊý³#Ko÷áã•çW·OÉ2ŸK$ÉóûøuFeð««ëµ¨±ÙÚÚÞ¡Ó ~°²¶fiº‘À 0tXGZ„nQð0tšn¶DèæC#5š"ôZAC›´ù×uza¡âz~5M×BÚ  ŒtµEh“ò"mÚ"´}A)K›¶‰KÐÆNšv=3· m¹à8%´—A].þfB”Ò¥?‰[IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-spinbox.png0000644000076500000240000000171612536324512023162 0ustar philstaff00000000000000‰PNG  IHDR:‹Ö"úPPLTEÿÿÿIœIIIIIœIuuIœßMa…uIu¿ÿ¹œIIœßÿ«Áô­Ãö®Éù°Åò°Åó°È÷±Åó±Çó±Ëú±Îû²Èô³Èõ´ÑûµÈ÷µÍú¶Íû¶Îû·Æñ·Êõ·Íü·Ïû¸Éò¸Ëö¸Ë÷¹Éó¹Ëó¹ÍûºËôºÌôºÎú¼Îù¾Ðü¿u¿ÑüÀÐ÷ÀÑüÀÒûÁÒüÁÓûÂÓûÂÔûÃÔûÄÒ÷ÄÓüÅÕüÅÖüÇÖûÈÖûÈ×ûÉØüÊØùÊØýÊÙýÎÜýÐÞüÑßýÔáü×ãýÙãöÚæþÛãøÜåùßœIßÿÿáêþæîüÿ¿uÿßœÿÿ¿ÿÿßÿÿÿ¢÷ÿBtRNS $8>IDATíÁ±KUaÇñïóÞG¯ -AE-ECS!A»¦Hƒý™µ”aÑn••549´äzï9ç>¿Þs/èUì Íïçãw).oSΊËÚfŠ“=Fq¡ú° š jê>šgšSt8\¨g¯H¨UÇßï3Í):4u(ô~¹VÕà0/!$$œ‰½Oëþ2˜Ý ˜òó&~äÃõ´f’ dÈÛûÚCýµØ~»BqÖG`‘±$“Èd8­Á·õ-| ëQœ³K»üZ¤•$&„Óz·1¢ÃUг K cIcA怨^Àëõ~¼™ëSL™I‰Þq4ÜþÙ7H 2ေÉhkµÛ¾B1­ŽPdõèpR$2œ£Wó+çíÀÒ>Ü¢eI‘“!çD=úó‚Ù Š3ì° ‹Œ%EŠfÈœ‰ÞSؤ8ç÷ÜÌ̽/pux4¨ŽÁHa˜™LNÑA£^Å×ÔTUo‰°LædÏ(.öøsôàÆ©ši–Á›StXxÈ?9ÛÿÅ÷€¹4aEÂi©$Šn’"ÔBN&S†"Qt’Bc§%¤H‘ÂE‡B¡ 9™0‰Ha)(:(¤„„“É„ ,…QtBcHNK ²0£è àdÂ&(:hŠÓ2£è ¡ p2™Èd&£è $”!9™0Lf¢è"!$$œ–™LFÑI!„þb¯W%®llIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-tableview.png0000644000076500000240000000620412536324514023461 0ustar philstaff00000000000000‰PNG  IHDRý®Êñû—²PLTEÿÿÿ¸Ïú»Óýÿÿÿu¿ÿ¿ußÿÿÿßœI¹ÍûMa…¿ÿÿÂÓüÂÕüÅÖüÈÖûÉØüßœI¹ÿ¿uœßÿÿÿßIœßÅÕü+/7²ÏûIIœ¼Îú¾Ðüu¿ßœ|ŸÓÁÓû} ÔœIIœ³ÈõÊÙýÎÛý¶Îû¸Éòíñóýýú¸Ëöÿÿ¿¹ÉóuuîíåÈØûºÍüþþûßßœI»Îý¼Ìóu¿uœœÀÀÀÍÛüuI·Íü·Óüˆ¬ñÃÓýÃÕýšµÜ½Î÷ÆÕýÆÖýœIIIuÊØùÊØýŸµÒ·ÊõºÔüÐÝüÐßüÑàýÔáüÚæþ»Íõßœu­ÉùIIuóñìûûùuƒ¤Ó½ÓûµÉó¾ÑüµÍú¶Íû µÓºÓüuIIÍÚü±Ëúœu¹ÏûºËôºÌôœ¿œºÐüºÑü¹Ëó~ŸÒ~¡Õ»ÎùuI¤¸Ó¨»Ô¼ÍúªÀá½ËÚªÀóªÂä¾Ðø¬Âõ­ÃöII¿uI¿œI®ÀÖ¿ÿ¿¿ÿß®Äå®È÷ÀÐ÷ÁÒû®ÊúÁÕû¯Åô¯Ìû¯ÎûÃÔç°ÄòÄÒ÷ÄÔ÷ÅÓü°Åò°ËùÆÑܱÂÕ±ÅóÈÕû±Æó±Çö±Èó‚¤Ö²Èô²Íû¹Îûu¿¿³ÇõÎÝýÏ×Ý„¨ë³ÏüÑÞý³Ñü´ÈöØãüÙãöµÈ÷ÛãøÜæù…¤Õ†©ì¶Ä×ßâáßÿ¿†ªïáêþåêîæìñæîüççãèíòèîõêðöêð÷ìò÷ˆ§Ø¶Ñû·Æñôñìôóîõôïöõð÷÷óùøôùù÷ûûøˆ¬ð·ËùIII”¯Ù”°Ý”±ÙIuu}ŸÔÙ$åätRNS $8> fIDATx^ìõÜFÇ£$=JÚKÒ˜–™™!ÈÌÌPffffffff¦ÿ£ól_¼·£j+y]ì79Í忇;}ô™ÕÚóÝç7!æ¶1!sÄH©åÿæËÇ¿ýžö¬Ÿ³èK‰Õ£ÔNzòцUwß´tKÇÚמ¹í òN¶{뇭ôÞß¼iãúæ¦ÞP ¢‹<ç2÷«6¿òbsS$}o ò¢ÓÉ%±â¢Â‚‚#&Ož4q¢óÝß³iãÜHäáÊ¡¡¡Šaò`¬¤¤¸¨¨PÃw¾ûË×?Ûû†ú¼}}ÃäÂØÔ)S(¿†ï|÷K瞉ø|>ï|¯w˜\;êÈ©cø“œï¾#²zµFË|ïiä`lÚÑ*¿Šï|÷kÃaŠ^ øΦô3¦«øÔ>Ð;ÝýËi žî¡óþ½dMlÖŒéÓ(~I1•¯ºOÖ ²Õ^₲ƒþÑ@ÈZ\Wæ+;¹‘ÒÏž5ðUùº{¥\¶Ø}¼Êoû++‹‚Á[×-xéŽ[£ôÇ£â«òÁ½F„Á„R~Š ˆô§Ì•ªëëEÒ9/aÊËÕ ›vþ}•7ïÛ·gÁWe·o{ˆÒGñékäŒsQ<"‰7 ½±ßàËŒûÎ]‚ ˆvÐ_úëSçzàÉû·Ýx9;^ÅùE…†{Å#:7Ì™+¤³Û/‰f¼Ào ÊJ¿ ô¯ÝÚÕÕÕÚØøÄ#w½J®@ñgÏTåv?pUfƒ>c…één¿)÷@Ÿ\‘øÿéï·pCO=,ê»=:æžJŠ+°7<)“^¤”=îÛ.þóËÝuçÔÔÔÕÕ=þÇÙô¥ðšLIþÒ­ËQø¿|x…˜Óîá]u0ÁÁéë>÷ˆ›º°ÿtƒolé€Ó÷ÿaH"1áÞþÓ z¼Ñܧ0î~ß^¾|q p\ç¯aÜ;ý:?…ÒÁà¡à:ß]îá·wÙ²Eµµg®›Ü³ôèÝ£{to}ŽÇóûýG†Þ½×zHôHôHôHôb¸Œ2¡Êo-=DY#Ò±õîã"„¼œë±ôŠ"ÛíçëÁmµ¹ —õi'ôìο®Û¯…w_yD¢˜ rYúd=$ø|º×_ýšñ•êl6ÈeÝÏãwç³AϹ¦¼H"·ô»D>:¢’› rYú­ ®ÝmÃ$«+f‚\–>ŸÝà4˱6ÈuDš!‰„_zÌré‘éñté?øð“O?ûܵîŸë½_.D÷îÊp]ì_÷p§»‡{<ÒkîÙIîù=Ý@z¤Ç{<¤‡(à ôŠ*©A¶’2¡—ôÛOLå·rKéãjÊ#}ù5)"fäµ~HÛGÕšÜ3±Ò" +êpùÌï!ÅeÜ; ×x¢lWkk#ÒÄz\¶XI‰1ã–LÍlD,‘¯’ï,n$d©|.Qü#ܹçœnóÞ:]g1 ÏY¾o¿zêl~¯¦i¶¾-#´¨J}•±_ûÔõ†ZUã(•’¾õøá<4d¨xUk…†w9àªÆFåÇ ‘=¯ÿƒ´ÿÿÝþIwž„ýˆŽL;fˆíYý'„öèh6ÇÄ´¥›ºa?4¤x#Ñ$mïÈBb{Vÿ ëÿp¡­0'ˆ±(^[–Ï¡+5|3írPRAe„ö¬þ—³þu±h€ÃD)^[QŸCWj`îºå@2"{Vÿyÿ‡ÛÎd$ÎIb"¯­ˆÏ¡+5~ _’öHFd¿ iý2dz¤=’Ù³úÏûèa¿?3܇dA2"ûÿÆwô’!CA´'üÁ„êþÚý‚“ÞBj÷ÔŸÅ-—“eÌë~¬ü>KÞâ«OûQiñͧx]½êCÂ|jà[øFXŸÂ«Ç|å÷i¾®x¬NõóÁgéæ^×/½Ãü¿7óñ·<º10Zj€Øí¿lxèômðîÞÇ𸾸žXüþ†¯¯Â4õeð«ûÃ{>»~ñ;³-üÔgç›_[øÔ쟠Oà³Ô$Ìäø©Oyø1@ô@vÃïQDŒé„ÐÎIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-tabwidget.png0000644000076500000240000001214412536324514023451 0ustar philstaff00000000000000‰PNG  IHDRý¬°çª®+IDATxÚí]l×uǹ–-[ªãÈvì"(Ô­‘ mÑ"ESÀ@VKúP†Ç}ŠˆDRR^‚>ØI›"Z[2EÉrPKq-ʼnÛ"‘DR&!Á‘mѰÕJ‰(’iQ¤H‘’ø¹»Ü/Ò§÷ÜÙÙjÎìÞåŸÀ»{÷Îììû;çÎÝÝË–¥…ëtãç;ÿ˜¦ôGFsóà34ö«#~O—/°!P-µÐÂÂÏ¿ñ5JŸþ:ÑÀ3F“=óçú½ð{BgÞGú±£Gé^%üùg4ø'fä­ ¿~OoŸ>KûŽŸl:Žžè£Kôh#°.é÷½þcZ]ýLÃÙ÷M†ßÓÍÙ»ÔŒsK1ê~ÿ]¼rÒƒ{—ÞD¼¿§Ï>û¬IY£ÉÙ;z$éÓÒÒ²EñâA‹Í(î·Ø¤¸OÓ¬™~mmUÝg²ME6›¡•ø²êCz`I¿Õ–ÿ!‡ü¥â‡šéÇ^§;^§±2}&“nBR”PÂ/Î߆ôÀ)ýÊ߲ØêÊü¥âלéYÜH„";_¯^héý2}*µÒt$“ Š-ÍÓÜíiHœÒ?¢øœCþrâoª1ÓŸ¡½‘txÌñxJï—éWVâŠXy†;)ÊÁ«£»¨¼·C•E;i¸ÒöÕì?ˆýX$Ë´´x‡îÌL@zà”~›âó>ò—Š_[¦gé¿Cý%å×éðgö?£ïíw‹~‡ôE#†B ;¼#¿ŸÈ:DNze¹%ß>%ŸO¹ëùÁNuýíQž“–ƒƒÏöîúŽò¶ÎKÖ>.QgÔ±–—ç”ôÓJúO!=pJÿ;>⻳}nˆ/ú<¾îásy/émIÊrù%ß+t¹Lù©¶BжíÌ•{mwjgñ…³ž»~þñ/¬ oí¿óbÙã]ZºKsw§èÖÍ1HœÒÉ%þŽa¾;Û?XS¦Wøâ7Ó_2„é»÷<^Zš«'UhûEàû]\¼KwïLÑô$¤IßLß½·3c9Ê1›Jû°9Ùæ¼ìù6¬r»ZX\¼£¤¿©¤…ô œLoÒ¯ìlIš‰……Yºs{’¦&®Azl¦7íÖKúÅÅÛM\w{æÝœô`ãfz?éï¨k_æ®fÚxø½Ìjá¯ÒøØeH ½[zš7®ÑäøEHÀF€½½ø¿gUú5aÐêÎ1¤“¬0è`8~ƒeÃ;t6pŽ+ãàG>I/Ó Yõ¦%‘ZšN3 ï '0AI/&¦x–‘=aÙ¬,«ÂdWCmTàGV饥7¼CH™Ìxé Àá½0†Ki|P …UY ŠÁI/Ö©We10RƒËœ†$¼¦—jÔUa¤;²L³ŸcùÑh°‰.ÀL/Ó©³ ÎmÜl˜éј˜Øë*ýäìï»@/|ïMzú¹Ö·ü˜ËCkÐLV˜Uad?£ÚHÓ¥ÌddiØL_ËIN¥³Ô30DO=û=úæŽÒñž÷èêèUúù»Ò·~xL—óó\/›5›Œ0âA%q¤Ïƒtâ0‹à2} Ù£÷üzö»‡éØ©³4>~&&>¥©© 𙙢»wgé—ï] o¼tT׫K&=L;ZÓh ,Ÿ% &”÷€À."}µo`rv^gr?áx=·:õþE]ë{Ê:úšó5%f…²JÃW/Ô~Zy?ö­_½*ïpY²! -tIïƒnय²Ž÷}¢‡ôå„Åøß0Åi×ËïèúeŬT¶žN½ŽàQ/šAzóƒJF” E€ÃûLUèÉ:u _Iødr…N êúžû=¤Ä<¤Äô)ãûùÕe[éµÑ\ÑC­ŽUg[éШոª~«sÝyÞ—9ní)<¿§¯ÌvÎfºôÙŒ8ò™8c6 ›éÓ™ªàYzž´«$|:¢åxB×÷l·lEÒõÑžÈêsÖuɨéÛC‘=}ê>×w‰ì–Þù3@ÿø£ãºœŸçzÒZ>°ÄE—~%.OR–$ŸgAäo°í\¦¯¡‘N)¡Ÿû§ÓÛ§ÏÑÔÔ ºuk’nߞί¦sâÜÿé_Üq=iiÄ;„ìFº¨µµ‹FÏ’ñ&ÀôK,éãoTé«<ÁãÓ3:“û o¯¦cƧf”<ñR†¸Æl§Ó^õ>Þè z¿Í ½tÛK‹iØñ‡.ý[§ôÞ~bæSz{ôýÍÙ¿¦#¿þš™Ÿ¦D"¦'‘v½ò_ôVï@uõ¶SDBª ¤QÇÛªŽ/pib²4r Ý0Ä%Àá}u/øêkx;óðÏþ-ýÕ¹¿ ¯þôËtø“Cùå³Þýè =ÿÒQZQ¯„‘NжvÒp¾¬›:"mÔ«îŒ:FQê)Ôïêà2ïz‡}FL¬ s°£0ªéòØ^×k§ŽhaûŽÞBÊmï(¿ç "-}ÈJ³"Œ|âöœ&}µ ijôDTèµ_ßLî±C¬€Ê$„Q}I’†ÞW{þ³÷¼þXΞ´ãkxÒ?Ýõ4úè ÍÇæ´ðkkkz‘L®ïÙÐC–\^å<¤rÕs×Ï×S ›X.Ô³3pÂUžßÞQîµ½»ž%}W¯O0¹ÇíƒD: 'ä/ä¥7‹à®é«<Áã7oéYyþX.·æ}, ogxÞ^÷þºª_³ôŽòü°ßKz‡œùz‰S9I‡ªÞk{WyÒ "%# ¯‘Ç:Ï’ËògJÓ?è \¦¯¡‘x½{þ¾[ï-<¯{Ïõ|#Ÿ)KŸëuL–E;Ú\Ãó õø9}î7l¯âuŠ>JT×óA¢äñ:I #.d>¼:HÕEú¸ÊðöÿŸçåx–ž'íøÞ^÷žŸçzò™f©<ÚOV®g3ôª’ùU%³õX¼C,‰’Pm$Í (KÐí ôµw¨ë7§Ô5û‡ôü‹Gèé羯où1—W³}¹5ï«?ŽÒFîm÷ÈÔÕâÊà -Ž+â,×?ð6xà’?þ` Lztêúthqâò˜.%2}ƒG¹ðƒŠpˆËÊ{Fº¤ ¸½ƒËô¦v:ñ,¶(‹p‡?~Í’ÙˆŸƒFÞÇ…nÔEQăJ3€À*Þð "~ù£—,¦IzP ¤—–FºC˜NFP¤gA´1€ôÒ¨öY ¸zIpŠ PúC‘=añØ‚( aâa .½é½a¥’Fg9 |AzŒ¶*p Lz¹,`¶ôò™~Q”¦>f8šéã±ùš›˜¤7»ß§ç_|Ãúîýú1—êI-…f^˜&MH'ÂHpÃ{%hµÄ–æèä¹ ú×tßüÁQ:Þó]½J?÷CúÖér~žëÍ*Tæ…Yh„Û(.M°}¦.Ò³ÐÏ~÷0;u–ÆÇ¯ÑÄħ455A33Sz­_¾wAÿ·®WË~ײXݳ˜| KiØdmèÃ{ºs&÷Þ^FËþ½}ñPßÁà>ŠF÷Ñ•Je•žG&®o–lŠ÷éËÂ×ì<¤/'|n­8ízùUÿïÆܯÞ¯®¡=·™uF~´… å$téy²Ž¯á+ ÏËhÔõדé¯tnw,wÅe—è€c-úhç¥æF|è šÐ¥çYzž´«$<¯›·Oèú5KÏ·‘Ôc•÷´Y÷+ ÿ€ô2™žgé+ ŸÍf¨ÿãáufúÔ®3zAü8¤ >Òó5=,WIøµµU½H&×_ÿDžK~H@ýfïùc¹rÂÛëÞ¯kö^ݶç¯ÙùZ~;´žwg ½ü7òNœË}ÏËù ÏëÞs½x¹ßŠÖ—W2— ïK'ízÚšl"¤_^šÓBëuï_~GÏÒó¤_ÃÛëÞóó\' €&¾¶ïÞûã·æ=N, *=Ò =Ò =Ò =Òé!=Òé!=>ôïÞ ü•ߺ÷ø•Mö{újÖ½/û{z€Òºî}Ñ"kâU˽.£…e¸¤÷§öuïß— ÒHoèº÷ž£Gö÷,w­‡ß¶Sï÷@[¡¬½»†íy®¢zÖú|èl`£Jèº÷žÃûÜúx¶¨úŸ^´ ¸o¹+€Xû͋޽ÓúgUn¯ë¹ F`£gz±uï½Êípýʽ¤w׳ÿFµÛ5×@³\Ó‹­{ß(Ò#³H_:{/²î}~x½Žá½ß?Äp-«]q{W=ð9},Àuï™ÈË‘_ߚȻâõ:Õl_2‘gÿMt6€oäaÝ{ðÝû`Ö½ÇÚ÷àWvH¤‡ô@zH¤‡ô@zH¤@z¤@z¤@z¤@z¤ÒCz =¤ÒCz =¤Ò =Ò =Ò =Ò =Ò =Òé!=Òé!=ééæH0‡®#Gèò¥_ÑÍë”`,ü‘ŸýŒF†ÎÓôÍßÔ.ýÈÈoô0`œáYxÚÏNÖ.=o0Òs†gáïÌ Õ.=¡þRlU<¬xD±Mñ˜â Š'­~Ñz‘/êŽSø'-W³Ü}Äry«å¶¯ô[¬Èð9+RÂou¿¹œô÷{ˆ¿¥Œü€úâ%ûOá[Z6ùI_I|§ü€úò°ÃËrÂûJ¿©ŒøNùP?¶ºd÷¾¥å>/éïóß–ß™ùÁC?7û _Fz[|·ü^Pœ¢»eßäð:òÿ9=Õçä?,IEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-timeedit.png0000644000076500000240000000222412536324502023276 0ustar philstaff00000000000000‰PNG  IHDR:‹Ö"ú€PLTEÿÿÿuIœu¿IIIIuIIIIIuIIœIœßMa…uuIuuuIIuIœuœœu¿ÿ¹œIœIIœ¿œœßÿ«Áô­Ãö®Éù°Åò°Åó°È÷±Åó±Çó±Ëú±Îû²Èô³Èõ´ÑûµÈ÷µÍú¶Íû¶Îû·Æñ·Êõ·Íü·Ïû¸Éò¸Ëö¸Ë÷¹Éó¹Ëó¹ÍûºËôºÌôºÎú¼Îù¾Ðü¿u¿œI¿Ñü¿ßœ¿ÿ¿¿ÿÿÀÐ÷ÀÑüÀÒûÁÒüÁÓûÂÓûÂÔûÃÔûÄÒ÷ÄÓüÅÕüÅÖüÇÖûÈÖûÈ×ûÉØüÊØùÊØýÊÙýÎÜýÐÞüÑßýÔáü×ãýÙãöÚæþÛãøÜåùßœIßßœßÿ¿ßÿÿáêþæîüÿ¿uÿßœÿÿ¿ÿÿßÿÿÿ®­;tRNS $8>¨IDAThÞíÙëWAÀadw•«¨›v“-+¶¢´‹E%Y&mt¡Hºjˆ`eQ‹ó¯÷¾3K1{jüÞý²Ó¨×·?ªXyI×G[»_wêÛFõã‡7Ï­15UQüþaŸÏëñ8ts-bÓõÛÖ–œu¿ýÞ…iüú áh€[ÞÜܨ†ñ —Ë-="f  ©ªÂì]SvštÎdp[L“挳OÍ8ËÉÙ§30‡. ³s¦Îf{3öñLg®ü¢k˽§Ò©b ŽŸ¥HñüÀÓ[™Ú!ÝèH¨kç¢ûOÕ™{I×’{Ï€ÛÓ-Ä|1ûsð§®²^.wOØðÅ£vs¾º©Ü{ø2|Ö¢ž¶›nµZ«Uߢ\íþÚcbF#Ô控säˆûuï›:” =Q²êÞ­#ݺx4»€c×C§&ÁÚ{[pïñþš&¤=ÍNUû°\ë]"C;:vÝ;¬®§aªÞ‡÷þß„^:$tΖÑ%Ç©;ùH,ìÊÚÓòk»}³¼8˜`×;;I'îòê˲Œ¥»‹ÖüµbNR;;U‘t¾ß[Éçó+Ùì­ü…oÄœ»DŒŽ¤ëï¥O'ë#ŽS¡Ñp4>žœ˜œ’‰â®u”N ŽŒE˜Lw‡Å Ç.C;™(ÒáØQ»DR&Šû5ùqìÐ.OÈDq¿a±a;°ƒë]L&Š{sBéüŠ váˆL÷¾ó¡Æðd¢¸·Ä”®kx2Qܘ—ÙèÉqÿˆajçW`òdâzÿ‡¥t/âQ=™0pC8;ò?œRqœöIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/images/windowsxp-treeview.png0000644000076500000240000001324312536324516023334 0ustar philstaff00000000000000‰PNG  IHDRý¯6sØjIDATxÚí}lg^Çí¦M›Ðëµ¹KOÇqœ„@€à$¤û'üeUý—ÑIôxI@ÉÒ ®åÈ]ŽB¡KeHNš ­_’:vì$v¿¿Ûk»vÇuÝ$Gš¤‰ß6öîæÇüž™Y?óòÌÎîÎÎÌî~¿ÒWk¯gg×;ó™ßó<3ßgjþö?. ÃåkM5ù¸†_ôÙ½0 ‡ì‡nS&³C…Š_èa¸Ì gÝy˜¦©å4,lSßL’z¦’ty"I]ã›Ô1ºEí#›Ô6”¤óƒ›ÔÜ¿A7ïl‹×-²èa¸¡gàWî=¥ëwžÒìJš¦?ÎÐÔRš&ndhd1CC )êŸOSo"M—&vèâðºxÝäGK€¾Ü=ØNlL|Õ±=Lè¹Â3ð «ð·2Y؇ÒÔ?§9¡eJƒ~|‡:Ç6Äë.^Ð×ÔÔìÓü‚æç ï5üœæg ïÑüŒ0 ôp´Ð÷Í&³~üFZÀΚK л&2Ys¥¿4¦WúÖÞ9úý†Mø_àw‚è=-ôW¦žèÍù%£9?Ÿ~ý[Çèãiº8žlú3]³&ô/jþÃûm•ß > ôp´Ðó Wøñë»Už7ÍÀ·à³Mè;&ô/iþ‚¿ø1…~üª­¥CÇ{¬Ï:FØÉbµj ‹mUaÛ(,èy„žAYÈËÀ›¾0± ~ç¨Þ§?Ý–…þeÍ_TÀï?¶ÐzƒŽú&ôñs#©•¶ ÿ~¸Û£@èù”œÜ¤7}5‘r€«ýèºúš_Q€/Wü¸C¯ÞüÕš;“ýÄñof+L­¹óeúóGš{èxög·ê$ï´€>èß fÕv»·ûÝ›Û æßTÐ8´%FéeÀù÷^Í—mà·ïP›qÊîTÛŒ ý—%ð_¶o6õw«}¬¡×~n>,í0n•Þ<0ˆÊØ‘ø9ùgñ:ÛŽÖC95ïy»xå ïö–Ñ÷ô­ƒ[┟‹Àk׿2úÎÙ4›ÔÁçÇÖÑ:?´i‡þ þ—\ÀwVû¸CŸýÙþœTEjÝþîöúZkõ©u«V€>?‹líîWY>—Á÷ô\Û§æük vöÕ¹”€¾]{þütššµæ}Óȵ9*ýW4¿ªßYíc½Ñœ?r\†×¥¯ïú*¯,%oî[¾c½‰oéZ•Ù˜LXп߻)NÅ1øWgRtEœÍM{þÂtJTùæ±}0¼M­ýè¿j_îãÛ«}y@¯ïT.ÝìßûÞXGv'ôÅm·f½}ÜÅ2¸ÿï?*èÏö¬Sûè6]Ô*¹¸øFsׄöû¤>pwNs‹öw¾i(I-ýkö¼¯)À·W{½‰_ÐË}C©?ɧŠ¿á¯Ò«º€¾ÛêäÁÔݬ£óï?*èo¬>¡öÇÔ1¼&®«7Í¿sÿ}nhƒZÖ©¥oW·ÄëšzæMè¿nÿ ÔÌ·Wûçqq ‡#„þÚìÝ‚bµM}·³ÑZ@ .#è<^ך÷+t¢u‘Þ~o¾ß˜ 7OÏÒ[§fè»§Âü»é£ót¢e‰î¯%=v2¸¡b @Ã0‰†<‘†9™†}»wW ‡þ“[ã0 ‡l¯I4ä‰4Ì|½}é›…C??Ó ÃpÈv\{¿ _?0ŸWåhtN§×ÞKçéó‡~t°†ám¿öÞ Ýðe¸ÂÆ•yâr\¾*o2­ºö>èýèÏþä(úµßüݪx„*_nÑZ®öZ…gó%¹œ´cwN¥ÑÚ’C„ž>}jq¡ÀCP%AIó>ŒJ?vòwhôG¿MÃÿþ[4xâ7èÖ­[´¹¹‰-*}%VzÞ®Þã¿Jƒƒƒ|{ @Õ P¬µÜ@uu ´\®•¾¥7AßùQ›Òü÷ü€?i3Ñåü%êüû_ öü<µý9:ÿ½Ÿ¥–7¿"Z[[[>¾ã:KT³®aYýå›Ïñcö5õÔmþ½»Þû¬ïv®ÇX¦¾•¾j¡văµ}HÞ·üB¯-»JÏ`{)×ßMq“ž’ÿJ´ñ/N»¨éoÒ;ï¼CKKKŽŠ/!€·|ÁÝTo‚ï½ËAA?xHÁ·´1³¼Ž–±ï£’Pé%èc3zÏP§Ó)Êdtk ‹ßÓéJn­û†žûðôÙ1¢;ߣþûuW÷üó¯Ð¥øEê8ö úðï¾&*>›+¾»p½Ž¸Jè—©¡N³¥u`[FÕb@¥¯>èÝö;ËþᾯƮyÏP'“›†7ô[[ôøÑgt{åºoèyÐŽ>þk·/iÖýå~Qñ]PQù``«Ð¹ G­X®Î¥Âë­ ³™/Z ¥lóCeÖ¼7öC¯ƒE\+ýææc»ÝË7f²Ð›£úªÑ}ûì_}û“9ý¤ÿÅãé?žŽ9’g3ª@èUM2³Â7Ô[»ö×x8P髯ҫåЧ_[{Hݧî Øïýß*­~¼H7æÇ|Wz¥§±oë}{›û÷þüÒˆåþóðstøðaA6ïë²-g©æ%„ªèsõí%èU“h˜i˜“iØ'ѸÐ÷Qðк²H7&i!1, ŸŸ ™±šêò =÷×z½yRïß{øÎù×År ºÇ½cäÞe OçÒ ²´¾òDßß§­ÍG”L®Óö“ ÚÞNR*õDó¶0O¸ñôi*ëÀ¡J|ÚM¾ð†ÏÃÿïwЙú/ÒÿÕ‹b”ží¸ÏMz®ð ük¯½FGõ Dw½Çéôá]{Ï—Ùòå¶ 07×ýš—ç×U›Pé}ÙWz|®øsss¾íÈA¬ôePé!ªÂJoªØ<=ú2ªôÈÓCPUú òôy©‚NãAe¢òô±‚¾òô€ ê€óô±‚>Žyz@ź’WôñÍÓ³ôKb-—àº]úhlˆ†zùrY—×BP¡Ð‘§ôqËÓKߘ¿Xaµ…l1ÇÝeÝ^ AA6ïýçéc}YåéÝâ®ný,4û¡RWú<òô±ƒ>nyz@• ô>óô±ƒ>¾yzUó~·ï”ÍÛ;6š÷P©ûôþóô±ƒ>nyz¯þ•ø‚¥i¬ëêë½gÑÁ@Ú@ž:O_‘çéCÉÓCP yzyzôÈÓC ¯ä<=zäé!Ð#OA€yzô˜§êJ;\á¸/ O_lž>jèu@<}n…–§G¥‡¢ÞÖÈÓë -Oß çæ­—×ZoYe\Ÿ¿¬^Þß-±¬ëA¥¯bè‘§·*´<½=7ß]ï¼ÞÙ|Þ¼OëòŠ\¾*# èѼGžÞªÈóôªÊo7ÈþTÙ•yúäéåæU.¸í-„\Pz@<½U¡åé}VneÎÞÒ4s9H¨2Ò€Ð#OoUhyúuó¾[¬Sæìåߥ\¾z ÏÖM°¬÷¨Ç@òôå›§7þ (`!O£<½Ü2¨Ee†ªzäé!•>/𑧇 *©ôUa¥7…<=UQ¥Gž‚ª¨Ò—²ÔP…7ï‘§/}žÞOÐÁí5~2öæÆs]¯9{mçÊRC•]é‘§!OŸ+;ïz`ð™±7äªõJ-ËQˆT7ôÈÓ§÷w/zKóÜ^µ}dìÅóf3^±|ýî‘€êø3ùÈRCÞ§Gž¾4yz·{Ñ“";Ÿ}Éî@ž2c¯È@»¯×:9gÝîQÈ;K UÙ@òô¸?=òô¸?=è‘§GžôÈÓC Gž‚=òôè‘§‡ @<}±Â•wP‘ûòô¥ÎÓ . ¯N¨‘§Ï­Øäé=TêJŽ<½®°óôÖçåd“í~öÝÎŒ½òµnÏKØ5SUôÈÓ[nžÞú|60ãvÃKÇFT½Vñ¼%ÙgÏÔCÕݼGž>¼<½W4Öë­Z§ÛkÏ»dê¡ê®ôÈÓ‡œ§z{÷ðzäéÃËÓÒ¼·ÜFº°æ½3S>ª»O<}¨yzƒq»DÎØ6§ÈÔCÈCžþ„<=í yzäé!@<=òô Gž‚=òôè‘§‡ @<=úJÊÓCP„<½øæé!(,¨‘§Ï­Pòô‡JŽ<½®pòôÒýåz·»Îâúx(@è‘§·ªtyz÷¼2_KŸ :dïO{ÆCa6ï‘§/Mž^•W΂Î?Ê-Ü3 ©Ò#OBžÞúGj¨ã/X;Úª²òTjè‘§/Ež^WæÌ{=Çm³)Ü3 ³O<}iòô^yeÇ€ážñP„yÈÓ#OA„<=òô GžyzÐ#OA€yzôÈÓC Gž‚}eä饹ïqá ¹§·tžÞz—›Ro Bž>ê<½ÛUw€в’#O¯«4yzë­¤jÉ&ë­§êí·³rÞ›÷˜‡ †yz«J“§'÷–7¾xK¾Þ-y‡{ÌC6ï‘§>Oï­ßÛL»¾·™†¬ôÈÓ— O8ôönà‡Š„ÞgžžA.TU–§Ï£yï½Ô÷Ç=æ¡àúôþóô¢Gû0MSËiYئ¾™$õL%éòD’ºÆ7©ct‹ÚG6©m(Iç7©¹ƒnÞÙÖWñÉJæéÕ]uy÷×ìÞ›¾÷˜‡J8§ÎÓ³ø•{Oéú§4»’¦é34µ”¦‰YÌÐÐBŠúçÓÔ›HÓ¥‰º8¼.^7ùÑòôTN2¡ç ÏÀ/¬jÀßÊda^HSÿœæ„ü•) úñêÛÐ êèuäé!¨¡ï›Mf+üø´€=4— wMd²æJiL¯ô­½sÈÓCP9Beê‰Þœ_2šóó©¬ôÎñ4]O‰G¶ ý™®Yäé!¨¡çA;®ðã×Óôú·Že+=ϰ³ùyógúÆŽòôTŽÐó=CÎ`›¾šH _˜HYžTïÓŸnK OAå=Ÿ’3›óvðåßùp«ýèz8Ð#OA¥þá-}”Þ° ºxÍmã;Ôfœ²;Õ6ƒûÓ¢Bb’$ï;yBß:¸%NÉñ¹xÓ2ðç&SY·ŽîÐù¡ÍÒ@ë<}¡@ú¼<ÐCÊ}#à<=ëƒk[âÔƒ-‘¡^­Ú÷¿s6MíÚóç§ÓÔ¬Uú¦‘j*Q¥¯ÈûÓz¨”ûOп߻)NÅ1øWgRtEœ}YëÓ3ð¦õ*ß<–¢†·©µ¿„ÐÇ6OoÓ™—'—||Ž ½|{?ÙhË{# SÕБ§gíY§öÑmº¨Urqñæ® í÷I}àîœæíï |ÓP’Zú×J3ë<½-ÂèÈË«òñ^Gbó×~³Ñö÷†Ð¼/ OϺ±ú„ÚSÇ𚸮Þ4ÿÎýwö¹¡ jX§–¾5Z\Õ»¾M=óUvz·&¸-åä–aV‡t¤xüd£ÑüG¥Wíyäé¯ÍÞ-è£4õÝ®ÒûÓçHÑ9òñŽæ—ÔìRe¢smh è‹ÈÓ?x¼®5ïWèDë"½ýÞ}¿1Aožž¥·NÍÐwO%„ùwÓGçéDËÝ_K=¿†áp„ †¾˜Ù;XÅÎ…§wÛnŠêÂÓ4Á…;f"…^ŒŸyÌÞágy¼_eįñ2/WŒù=r¹ØÏõúƒz^ŽŒX'šõyÙà‚3‘Bï5{'€rÍà!¯ƒ¯!æË Í´Êr„°Ë—.ª\ìgˆzýA½/Ç#Ä,î7òDŒpኙH¡÷š½ƒ¯ Ê5ƒ‡¼þGygYÈxZ,WŒ}Šþ ¯?¨÷àåøëÍS³bæU¸p{1üdè9˜‰zÕìò5À^3xˆuÌèëÈî°ìðE;ÏÏpûÞCÏÇbׯÿ Z‡YexD˜§Z† ·Š™—\³ÞD½Ûìvà½fð`qŸ†¿€ùŒhÒ Ìe¼=_œå€‚Êù~†;÷ÓÎ|¦|,výaünïÁËÉÐóÜêpáV1cç&3‘B/ÏÞa?b™3v°ÛÂ>ƒG¥@ÿÓkôßÜW>V ôâf pÁvcFžñFæÇ‹™H¡7gïྟjÓæ?!Ïàa~ |仦í`ÜŸáħ犳ŸA°|?ÃOnÒÏ~®|,výaünïÁËY ßNÂEØÎŒi“û*f"…^ž½ÃÞD¹lƒÞmŸ¦àÁ ¸àh ü¸¹×ä(Øs¹ïg¸÷h‹Þ~ÿ‘ò±Øõ‡ñ?¸½/gä1ôúí’àBͲO~aº×6†jŒÈ¡Ïäç\¯W˜¿r Ojp?V>VôÛpV1Ã-+¿`D½W?ÛDñó›ÍÐèÔ–éÔ–íœÊáé"ðá>Ã}L8‹]ÿƒã=´åÌн3öB™‹™H¡÷ ò›À{…ùY|ÕÜ”9?™ý/;º yšß#—‹ý Q¯?¨÷àå8šÉzëÇsâ2R¸p{1#Îvi?ÌD ½W¿cr'g˜ŸÅ—òëxYî¿È£þn¾P¤E)‡‹ý Q¯?¨÷àå8‹Í:Ö8g¹å1œ¿ƒb&R轂ü~Âü,¾®X¼nt] XðH¥—y¹bÌï‘ËÅ~†¨×Ô{ðræöâh&À-ú ˜‰ úBƒür˜*íýTd±nqŽ 3Cï'ÈŸ+ÌϾ{w•¦oŠþ ?_èû9ö€3‘BÃpù:o赃…Åš^м_ó‹š_Òü²æš¿¬ùUc¥_5Þäë0 GnøW Vì¾d°¼ß`[ ý>ãÈðãHñŠø0 Gk7àݪ<³½× úçìÕþ£É`†áh-o6ëíU~ŸÁ¶z{µwÿ ñf0 Gëƒ àíUžÙ~Î ú½.ÕÞþ |†£µÜ¤—wVyôϹT{|¹ÿ%†#·Ü‡—wVùššgUÐï•À߯߬ú0 Gë—Àï—€ßëý³.àïó€†áhíû>Wàkjö¨ Ï¾ ? ÃÑúE‰K/à•Ðïñ_†_>À0÷Û`W_SóŒôÏ(À7á—+? Ãñð Ÿ{•À{@o‚o‡ßíÃpô–A·Ã¾Gâºöÿ0Á®ëI¦äkIEND®B`‚PyQt-x11-gpl-4.11.4/doc/html/incompatibilities.html0000644000076500000240000005717412536324430022073 0ustar philstaff00000000000000 Potential Incompatibilities with Earlier Versions — PyQt 4.11.4 Reference Guide

Potential Incompatibilities with Earlier Versions¶

PyQt4 v4.11¶

Execution of Python Slots¶

Until the release of PyQt4 v4.9.4, when a signal was emitted to a Python slot that was not decorated with pyqtSlot(), it would first check that the underlying C++ receiver instance still existed. If it didn’t then the slot was ignored thereby reflecting the standard C++ behaviour.

In v4.9.4 (strictly speaking it was the release of SIP at the time) the check was removed. It was done so that an object could connect its destroyed() signal to itself so that it could monitor when its underlying C++ instance was destroyed. Unfortunately this turned out to be an undocumented and incompatible change and a potential source of obscure bugs for more common code.

In v4.11 the check was reintroduced - hence creating an incompatibility for any code that relies on the v4.9.4 behaviour. As a workaround for this the no_receiver_check argument has been added to connect() which allows the check to be suppressed on a per connection basis.

PyQt4 v4.9.2¶

QPyNullVariant¶

In previous versions a QPyNullVariant would always evaluate to True when converted to a bool.

In this version a QPyNullVariant will always evaluate to False when converted to a bool. This makes it behave like None in these circumstances.

PyQt4 v4.8.3¶

SQL Models¶

In previous versions, when using v2 of the QVariant API (the default for Python v3), there was no way to represent a null QVariant. Therefore when reading values of certain types from an SQL model it was impossible to distinguish between, for example, a null integer and an integer with the value zero.

In this version the QPyNullVariant class is used to represent a null QVariant. Therefore the object read from an SQL model may now be a QPyNullVariant instance.

A null QVariant is only converted to a QPyNullVariant if the underlying C++ type of the QVariant cannot be tested for null, i.e. it does not implement an isNull() method. This ensures that existing code that uses non-SQL models will continue to work unchanged.

PyQt4 v4.8¶

QVariantList¶

In previous versions PyQt4 would always try and convert a Python list to a QVariantList. In this version PyQt4 will first try to convert it to a QVariant containing a QList<QObject *>, but only if QList<QObject *> has been registered with Qt as a meta-type.

Normally it is only the QtDeclarative module that registers this meta-type and so the behaviour of existing applications should be unchanged. It is possible however that you might observe different conversion behaviour after importing the QtDeclarative module.

PyQt4 v4.7.4¶

pyqtSignal() with dict and list¶

In previous versions a Qt signal defined using pyqtSignal() that had an argument specified as a dict then, when emitting a value, PyQt4 would try and convert the value to a QVariantMap if possible. If it wasn’t possible, normally because the dict had non-string keys, then the value would be left as a dict object.

In this version PyQt4 will not attempt to convert the value to a QVariantMap and will always leave it as a dict object. If you want the value to be converted to a QVariantMap then define the signal argument as 'QVariantMap'.

The same applies to conversions between lists and QVariantList.

PyQt4 v4.7.1¶

QVariant¶

This version introduces a slight incompatibility in the conversion between sub-classes of standard Python types and QVariant.

Take, for example, the following code:

from PyQt4.QtCore import QVariant

class MyFloat(float):
    pass

myfloat = MyFloat(5.0)
variant = QVariant(myfloat)

With this version of PyQt4 myfloat will be converted in such a way as to preserve any additional attributes (including methods) and will not be converted to a C++ double. In other words, the following assertions are true:

assert(variant.type() != QVariant.Double)
assert(variant.toPyObject() is myfloat)

Prior to this version myfloat would be converted to a C++ double. In other words, the following assertions would be true:

assert(variant.type() == QVariant.Double)
assert(variant.toPyObject() == myfloat)
assert(type(variant.toPyObject()) is float)

The same change also affects objects that implement the sequence protocol. Prior to this version such an object would be converted to a QVariantList which would mean that it was converted back to a Python list rather than to the original type.

PyQt4 v4.5¶

QVariant¶

This version introduces a slight incompatibility in the conversion between Python sub-classes of certain Qt classes and QVariant. The Qt classes affected are those that QVariant has explicit support for, e.g. QSize, QBitmap.

Take, for example, the following code:

from PyQt4.QtCore import QSize, QVariant

class MySize(QSize):
    pass

mysize = MySize(5, 5)
variant = QVariant(mysize)

With this version of PyQt4 mysize will be converted in such a way as to preserve any additional attributes (including methods) and will not be converted to a C++ QSize instance. In other words, the following assertions are true:

assert(variant.type() != QVariant.Size)
assert(variant.toPyObject() is mysize)

Prior to this version mysize would be converted to a C++ QSize instance. In other words, the following assertions would be true:

assert(variant.type() == QVariant.Size)
assert(variant.toPyObject() == mysize)
assert(type(variant.toPyObject()) is QSize)

It is hoped that this change of behaviour will not have a significant impact. However if you need the old behaviour then simply create a copy of your sub-class instance using the base class constructor as shown below:

variant = QVariant(QSize(mysize))

A similar issue also affects the conversion of the Python datetime, date and time types to QVariant. These are no longer converted to the corresponding QDateTime, QDate and QTime classes. The values can be retrieved using QVariant.toPyObject(). Again, the old behaviour can be achieved using an explicit conversion to the Qt class before converting to QVariant.

A further incompatible change is the handling of Python sub-classes of QObject. In previous versions QVariant.userType() would return an internal type and an extra reference would be kept to the Python object. In the current version QVariant.userType() will correctly return QMetaType.QObjectStar (or QMetaType.QWidgetStar) but an extra reference to the Python object is not kept. To avoid a potential crash you should ensure that you keep a separate reference to the Python object, either explicitly or implicitly by giving it a parent.

pyrcc4 Support for Python v3¶

pyrcc4 will now generate code for Python v3 when the new -py3 command line option is used. The generated code will also work with Python v2.6 and later.

By default pyrcc4 will generate code for all Python v2 versions but you should use the new -py2 command line option to enforce this in case the default is changed in the future.

PyQt-x11-gpl-4.11.4/doc/html/incompatible_apis.html0000644000076500000240000001523612536324430022036 0ustar philstaff00000000000000 Selecting Incompatible APIs — PyQt 4.11.4 Reference Guide

Selecting Incompatible APIs¶

PyQt4 provides limited support for multiple incompatible APIs and the ability for an application to select between them at run-time. For example, an application can choose whether QString is implemented as a Python type, or is automatically converted to and from a Python v2 unicode object or a Python v3 string object.

This ability allows developers to decide how to manage the transition from an older deprecated, API to a newer incompatible API.

Each API that can be selected in this way has a name and a range of version numbers. An application calls sip.setapi() to set the version number of a particular API. This call must be made before any module that implements the API is imported. Once set the version number cannot be changed. If not set then an API will use its default version.

For example the following code will disable the use of QString:

import sip
sip.setapi('QString', 2)

from PyQt4 import QtCore

# This will raise an attribute exception because QString is only wrapped
# in version 1 of the API.
s = QtCore.QString()

The following APIs are currently implemented:

  • QDate v1, v2
  • QDateTime v1, v2
  • QString v1, v2
  • QTextStream v1, v2
  • QTime v1, v2
  • QUrl v1, v2
  • QVariant v1, v2
PyQt-x11-gpl-4.11.4/doc/html/index.html0000644000076500000240000004165412536324430017466 0ustar philstaff00000000000000 PyQt4 Reference Guide — PyQt 4.11.4 Reference Guide

PyQt4 Reference Guide¶

PyQt-x11-gpl-4.11.4/doc/html/installation.html0000644000076500000240000020017712536324430021055 0ustar philstaff00000000000000 Installing PyQt4 — PyQt 4.11.4 Reference Guide

Installing PyQt4¶

Downloading SIP¶

SIP must be installed before building and using PyQt4. You can get the latest release of the SIP source code from http://www.riverbankcomputing.com/software/sip/download.

The SIP documentation can be found at http://pyqt.sourceforge.net/Docs/sip4/.

Downloading PyQt4¶

You can get the latest release of the GPL version of the PyQt4 source code from http://www.riverbankcomputing.com/software/pyqt/download.

If you are using the commercial version of PyQt4 then you should use the download instructions which were sent to you when you made your purchase. You must also download your license file.

Configuring PyQt4¶

After unpacking the source package (either a .tar.gz or a .zip file depending on your platform) you should then check for any README files that relate to your platform.

If you are using the commercial version of PyQt4 then you must copy your license file to the sip directory, or to the directory specified by the --license-dir option of configure-ng.py.

You need to make sure your environment variables are set properly for your development environment.

In order to configure the build of PyQt4 you need to run either the configure-ng.py or the configure.py script.

configure.py is the original configuration script that uses the build system of SIP v4 (i.e. the sip.sipconfig module). It will be supported for the life of PyQt4.

configure-ng.py is the new configuration script that uses Qt’s qmake program to do all the heavy lifting. It has the following advantages:

  • it supports cross-compilation
  • it is the basis of PyQt5’s configuration script
  • generated Makefiles have an uninstall target
  • it will work with SIP v5 (which will have no build system).

Users are encouraged to switch to using configure-ng.py in order to ease the future transition to SIP v5 and/or PyQt5.

Using configure-ng.py¶

New in version 4.10.1.

The configure-ng.py script is used to configure PyQt4 as follows:

python configure-ng.py

This assumes that the Python interpreter is on your path. Something like the following may be appropriate on Windows:

c:\python34\python configure-ng.py

If you have multiple versions of Python installed then make sure you use the interpreter for which you wish to build PyQt4 for.

The full set of command line options is:

--assume-shared¶

Normally Qt is checked to see if it has been built as shared libraries. Some Linux distributions configure their Qt builds to make this check unreliable. This option ignores the result of the check and assumes that Qt has been built as shared libraries.

--bindir <DIR>, -b <DIR>¶

The pyuic4, pyrcc4 and pylupdate4 utilities will be installed in the directory <DIR>.

--concatenate, -c¶

The C++ source files for a Python module will be concatenated. This results in significantly reduced compilation times. Most, but not all, C++ compilers can handle the large files that result. See also the --concatenate-split option.

--concatenate-split <N>, -j <N>¶

If the --concatenate option is used to concatenate the C++ source files then this option determines how many files are created. The default is 1.

--configuration <FILE>¶

<FILE> contains the configuration of the PyQt4 build to be used instead of dynamically introspecting the system and is typically used when cross-compiling. See Configuring with Configuration Files.

--confirm-license¶

Using this confirms that you accept the terms of the PyQt4 license.

--dbus <DIR>, -s <DIR>¶

The dbus-python.h header file of the dbus-python package can be found in the directory <DIR>/dbus.

--debug, -u¶

The PyQt4 modules will be built with debugging symbols. On Windows this requires that a debug version of Python is installed.

--designer-plugindir <DIR>¶

The Python plugin for Qt Designer will be installed in the directory <DIR>.

--destdir <DIR>, -d <DIR>¶

The PyQt4 Python package will be installed in the directory <DIR>. The default is the Python installation’s site-packages directory. If you use this option then the PYTHONPATH environment variable must include <DIR>.

--enable <MODULE>, -e <MODULE>¶

Normally all PyQt4 modules are enabled and are built if the corresponding Qt library can be found. Using this option only those modules specifically enabled will be checked for and built. The option may be specified any number of times.

--help, -h¶

Display a help message.

--license-dir <DIR>¶

The license files needed by the commercial version of PyQt4 can be found in the directory <DIR>.

--no-deprecated¶

All Qt v4 features that have been deprecated in Qt v5 will be disabled. This is useful when porting PyQt4 applications to PyQt5.

--no-designer-plugin¶

The Qt Designer plugin will not be built.

--no-docstrings¶

The PyQt4 modules will not contain automatically generated docstrings.

--no-python-dbus¶

The Qt support for the standard Python DBus bindings is disabled.

--no-qsci-api¶

The PyQt4.api QScintilla API file is not installed even if QScintilla does appear to be installed.

--no-sip-files¶

The .sip files for the PyQt4 modules will not be installed.

--no-tools¶

New in version 4.11.

The pyuic4, pyrcc4 and pylupdate4 tools will not be built.

--no-timestamp, -T¶

Normally the header comments of each generated C/C++ source file includes a timestamp corresponding to when the file was generated. This option suppresses the inclusion of the timestamp.

--plugin <PLUGIN>, -t <PLUGIN>¶

If Qt has been built as static libraries then the static plugin <PLUGIN> will be linked with the appropriate PyQt4 module. The option may be specified any number of times.

--protected-is-public¶

On certain platforms the size of PyQt4 modules can be significantly reduced by redefining the C++ protected keyword as public during compilation. This option enables this behaviour and is the default on Linux and MacOS/X.

--protected-not-public¶

The default redefinition of protected to public during compilation on Linux and MacOS/X is disabled.

--pyuic4-interpreter <FILE>¶

<FILE> is the name of the Python interpreter used in the pyuic4 wrapper. The default is platform dependent.

--qmake <FILE>, -q <FILE>¶

Qt’s qmake program is used to determine how your Qt installation is laid out. Normally qmake is found on your PATH. This option can be used to specify a particular instance of qmake to use. This option is not available on Windows where qmake must be on PATH.

--qsci-api, -a¶

The PyQt4.api QScintilla API file is installed even if QScintilla does not appear to be installed. This option is implied if the --qsci-api-destdir option is specified.

--qsci-api-destdir <DIR>, -n <DIR>¶

The QScintilla API file will be installed in the python subdirectory of the api subdirectory of the directory <DIR>.

--sip <FILE>¶

The sip program is used to generate PyQt4’s C++ source code. Normally sip is found on your PATH. This option can be used to specify a particular instance of sip to use.

--sip-incdir <DIR>¶

The sip.h header file can be found in the directory <DIR>.

--sipdir <DIR>, -v <DIR>¶

The .sip files for the PyQt4 modules will be installed in the directory <DIR>.

--spec <SPEC>¶

The argument -spec SPEC will be passed to qmake. The default behaviour is platform specific. On Windows configure-ng.py will choose the value that is correct for the version of Python that is being used. (However if you have built Python yourself then you may need to explicitly specify <SPEC>.) On MacOS configure-ng.py will try and avoid macx-xcode if possible.)

--static, -k¶

The PyQt4 modules will be built as static libraries. This is useful when building a custom interpreter with the PyQt4 modules built in to the interpreter.

--sysroot <DIR>¶

New in version 4.11.

<DIR> is the name of an optional directory that replaces sys.prefix in the names of other directories (specifically those specifying where the various PyQt4 components will be installed and where the Python include and library directories can be found). It is typically used when cross-compiling or when building a static version of PyQt4. See Configuring with Configuration Files.

--target-py-version <VERSION>¶

New in version 4.11.

<VERSION> is the major and minor version (e.g. 3.4) of the version of Python being targetted. By default the version of Python being used to run the configure.py script is used. It is typically used when cross-compiling. See Configuring with Configuration Files.

--trace, -r¶

The generated PyQt4 modules contain additional tracing code that is enabled using SIP’s sip.settracemask() function.

--verbose, -w¶

Compiler commands and any output issued during configuration is displayed instead of being suppressed. Use this if configure-ng.py is having problems to see what exactly is going wrong.

--version¶

Display the PyQt4 version number.

Any remaining command line arguments are expected to be in the form name=value or name+=value. Such arguments are added to any qmake .pro file created by configure-ng.py.

Using configure.py¶

The configure.py script is used to configure PyQt4 as follows:

python configure.py

This assumes that the Python interpreter is on your path. Something like the following may be appropriate on Windows:

c:\python34\python configure.py

If you have multiple versions of Python installed then make sure you use the interpreter for which you wish to build PyQt4 for.

The full set of command line options is:

--assume-shared¶

Normally Qt is checked to see if it has been built as shared libraries. Some Linux distributions configure their Qt builds to make this check unreliable. This option ignores the result of the check and assumes that Qt has been built as shared libraries.

--bindir <DIR>, -b <DIR>¶

The pyuic4, pyrcc4 and pylupdate4 utilities will be installed in the directory <DIR>.

--concatenate, -c¶

The C++ source files for a Python module will be concatenated. This results in significantly reduced compilation times. Most, but not all, C++ compilers can handle the large files that result. See also the --concatenate-split option.

--concatenate-split <N>, -j <N>¶

If the --concatenate option is used to concatenate the C++ source files then this option determines how many files are created. The default is 1.

--confirm-license¶

Using this confirms that you accept the terms of the PyQt4 license.

--consolidate, -g¶

Normally each PyQt4 module (except for the Qt module) is linked against the corresponding Qt library. This option creates a module called _qt which is linked against all the required Qt libraries and the other modules are stub modules that populate their module dictionaries from this one. This is useful when linking against static Qt libraries to eliminate the need to distribute the Qt libraries while minimising the memory footprint of the PyQt4 modules.

--dbus <DIR>, -s <DIR>¶

The dbus-python.h header file of the dbus-python package can be found in the directory <DIR>/dbus.

--debug, -u¶

The PyQt4 modules will be built with debugging symbols. On Windows this requires that a debug version of Python is installed.

--destdir <DIR>, -d <DIR>¶

The PyQt4 Python package will be installed in the directory <DIR>. The default is the Python installation’s site-packages directory. If you use this option then the PYTHONPATH environment variable must include <DIR>.

--enable <MODULE>, -e <MODULE>¶

Normally all PyQt4 modules are enabled and are built if the corresponding Qt library can be found. Using this option only those modules specifically enabled will be checked for and built. The option may be specified any number of times.

--help, -h¶

Display a help message.

--no-deprecated¶

All Qt v4 features that have been deprecated in Qt v5 will be disabled. This is useful when porting PyQt4 applications to PyQt5.

--no-designer-plugin¶

The Qt Designer plugin will not be built.

--no-docstrings¶

The PyQt4 modules will not contain automatically generated docstrings.

--no-qsci-api¶

The PyQt4.api QScintilla API file is not installed even if QScintilla does appear to be installed.

--no-sip-files¶

The .sip files for the PyQt4 modules will not be installed.

--no-timestamp, -T¶

Normally the header comments of each generated C/C++ source file includes a timestamp corresponding to when the file was generated. This option suppresses the inclusion of the timestamp.

--plugin <PLUGIN>, -t <PLUGIN>¶

If Qt has been built as static libraries then the static plugin <PLUGIN> will be linked with the appropriate PyQt4 module. The option may be specified any number of times.

--plugin-destdir <DIR>, -p <DIR>¶

The Qt Designer plugin that manages plugins implemented in Python will be installed in the designer subdirectory of the directory <DIR>.

--protected-is-public¶

On certain platforms the size of PyQt4 modules can be significantly reduced by redefining the C++ protected keyword as public during compilation. This option enables this behaviour and is the default on Linux and MacOS/X.

--protected-not-public¶

The default redefinition of protected to public during compilation on Linux and MacOS/X is disabled.

--qmake <FILE>, -q <FILE>¶

Qt’s qmake program is used to determine how your Qt installation is laid out. Normally qmake is found on your PATH. This option can be used to specify a particular instance of qmake to use. This option is not available on Windows.

--qsci-api, -a¶

The PyQt4.api QScintilla API file is installed even if QScintilla does not appear to be installed. This option is implied if the --qsci-api-destdir option is specified.

--qsci-api-destdir <DIR>, -n <DIR>¶

The QScintilla API file will be installed in the python subdirectory of the api subdirectory of the directory <DIR>.

--sipdir <DIR>, -v <DIR>¶

The .sip files for the PyQt4 modules will be installed in the directory <DIR>.

--static, -k¶

The PyQt4 modules will be built as static libraries. This is useful when building a custom interpreter with the PyQt4 modules built in to the interpreter.

--trace, -r¶

The generated PyQt4 modules contain additional tracing code that is enabled using SIP’s sip.settracemask() function.

--use-arch <ARCH>¶

When pyuic4 calls the Python interpreter on MacOS it will be run using the architecture <ARCH>. See the section Configuring SIP and PyQt4 for MacOS.

--verbose, -w¶

Compiler commands and any output issued during configuration is displayed instead of being suppressed. Use this if configure.py is having problems to see what exactly is going wrong.

--version¶

Display the PyQt4 version number.

Configuring SIP and PyQt4 for MacOS¶

Note that this section only applies if you are using the configure.py script to configure PyQt4. The configure-ng.py script leaves it to Qt’s qmake program to handle the details. configure-ng.py does not support the creation of universal binaries.

Building applications for MacOS can be a complex process. Typically the following need to be taken into account:

  • the architectures (i.e. i386, x86_64, ppc) that you want to support
  • the earliest version of MacOS you want to support (i.e. the deployment target)
  • the version of the SDK you want to use.

If you are using a binary installer for Python and/or Qt then you also need to consider how they have been built regarding the above, and what bugs they have.

SIP’s and PyQt4’s configure.py scripts provide the necessary command line options to allow the correct configurations to be specified - the trick is to work out which options to use depending on the versions of Python and Qt you have installed.

SIP provides the following command line options to its configure.py script.

  • --arch <ARCH> specifies the target architecture and may be specified a number of times.
  • --universal is a shortcut for --arch i386 --arch ppc.
  • --deployment-target <VERSION> specifies the earliest version of MacOS you want to support. This sets the MACOSX_DEPLOYMENT_TARGET environment variable and should be used rather than setting the environment variable in the shell (to work around bugs in some versions of Python).
  • --sdk <SDK> specifies the SDK to use.

PyQt4 provides the --use-arch option that specifies which architecture certain PyQt4 tools (actually only pyuic4 at the moment) will use when running Python. For example, if your Qt installation is 32 bits, and your Python installation is 32 bits and 64 bits then you will need to specify --use-arch i386 to ensure that pyuic4 runs the 32 bit version of Python.

Building PyQt4¶

The next step is to build PyQt4 by running your platform’s make command. For example:

make

The final step is to install PyQt4 by running the following command:

make install

(Depending on your system you may require root or administrator privileges.)

This will install the various PyQt4 components.

Configuring with Configuration Files¶

The configure.py script normally introspects the Python installation of the interpreter running it in order to determine the names of the various files and directories it needs. This is fine for a native build of PyQt4 but isn’t appropriate when cross-compiling. In this case it is possible to supply a configuration file, specified using the --configuration option, which contains definitions of all the required values.

A configuration file is made up of a number of named sections each of which contains a number of configuration items. The format of a configuration file is as follows:

  • a section name is a single line with the name enclosed between [ and ]
  • a configuration item is a single line containing a name/value pair separated by =
  • values may be extended to lines immediately following if they are indented by at least one space
  • a value may include another value by embedding the name of that value enclosed between %( and )
  • comments begin with # and continue to the end of the line
  • blank lines are ignored.

Those configuration items that appear before the first section name are automatically added to all sections.

A configuration file defines a section for each version of Qt that requires a different configuration. configure.py will choose the most appropriate section according to the version of Qt you are actually using. For example, if a configuration file contains sections for Qt v5.3 and Qt v5.1 and you are using Qt v5.2.1 then the section for Qt v5.1 will be chosen.

configure.py provides the following preset values for a configuration:

py_major
is the major version number of the target Python installation.
py_minor
is the minor version number of the target Python installation.
sysroot
is the name of the system root directory. This is specified with the --sysroot option.

The following is an example configuration file:

# The target Python installation.
py_platform = linux
py_inc_dir = %(sysroot)/usr/include/python%(py_major).%(py_minor)
py_pylib_dir = %(sysroot)/usr/lib/python%(py_major).%(py_minor)/config
py_pylib_lib = python%(py_major).%(py_minor)mu

# The target PyQt installation.
pyqt_module_dir = %(sysroot)/usr/lib/python%(py_major)/dist-packages
pyqt_bin_dir = %(sysroot)/usr/bin
pyqt_sip_dir = %(sysroot)/usr/share/sip/PyQt4
pyuic_interpreter = /usr/bin/python%(py_major).%(py_minor)
pyqt_disabled_features = PyQt_Desktop_OpenGL PyQt_qreal_double

# Qt configuration common to all versions.
qt_shared = True

[Qt 5.1]
pyqt_modules = QtCore QtDBus QtDesigner QtGui QtHelp QtMultimedia
    QtMultimediaWidgets QtNetwork QtOpenGL QtPrintSupport QtQml QtQuick
    QtSensors QtSerialPort QtSql QtSvg QtTest QtWebKit QtWebKitWidgets
    QtWidgets QtXmlPatterns _QOpenGLFunctions_ES2

This example contains a section for Qt v5.1. We have defined a number of values before the start of the section as they are not specific to any particular version of Qt. Note that if you use this configuration with a version of Qt earlier than v5.1 then you will get an error.

The following values can be specified in the configuration file:

qt_shared
is set if Qt has been built as shared libraries. The default value is False.
py_platform
is the target Python platform.
py_inc_dir
is the target Python include directory, i.e. the directory containing the Python.h file.
py_pylib_dir
is the target Python library directory.
py_pylib_lib
is the target Python interpreter library. It should not include any platform-specific prefix or suffix.
pyqt_disabled_features
is the space separated list of features (as defined by SIP’s %Feature directive) that should be disabled.
pyqt_module_dir
is the target directory where the PyQt4 modules will be installed. It can be overridden by the --destdir option.
pyqt_modules
is the space separated list of PyQt4 modules that will be built. It can be overridden by the --enable option.
pyqt_bin_dir
is the name of the target directory where the PyQt4 related executables will be installed. It can be overridden by the --bindir option.
pyqt_sip_dir
is the name of the target directory where the PyQt4 .sip files will be installed. It can be overridden by the --sipdir option.
pyuic_interpreter
is the name of the Python interpreter (as it would be called from the target system) that will be used to run pyuic4. It can be overridden by the --pyuic4-interpreter option.
PyQt-x11-gpl-4.11.4/doc/html/introduction.html0000644000076500000240000004251312536324430021073 0ustar philstaff00000000000000 Introduction — PyQt 4.11.4 Reference Guide

Introduction¶

This is the reference guide for PyQt4 4.11.4. PyQt4 is a set of Python bindings for v4 and v5 of the Qt application framework from Digia.

There is a separate PyQt4 Class Reference.

Qt is a set of C++ libraries and development tools that includes platform independent abstractions for graphical user interfaces, networking, threads, Unicode, regular expressions, SQL databases, SVG, OpenGL, XML, and user and application settings. PyQt4 implements 440 of these classes as a set of Python modules.

PyQt4 supports the Windows, Linux, UNIX and MacOS/X platforms.

PyQt4 does not include Qt itself - you must obtain it separately.

The homepage for PyQt4 is http://www.riverbankcomputing.com/software/pyqt/. Here you will always find the latest stable version, current development previews, and the latest version of this documentation.

PyQt4 is built using the SIP bindings generator. SIP must be installed in order to build and use PyQt4.

Earlier versions of Qt are supported by PyQt v3.

License¶

PyQt4 is dual licensed on all platforms under the Riverbank Commercial License and the GPL v3. Your PyQt4 license must be compatible with your Qt license. If you use the GPL versions then your own code must also use a compatible license.

PyQt4, unlike Qt, is not available under the LGPL.

You can purchase a commercial PyQt4 license here.

PyQt4 Components¶

PyQt4 comprises a number of different components. First of all there are a number of Python extension modules. These are all installed in the PyQt4 Python package.

  • The QtCore module. This contains the core non-GUI classes, including the event loop and Qt’s signal and slot mechanism. It also includes platform independent abstractions for Unicode, threads, mapped files, shared memory, regular expressions, and user and application settings.
  • The QtGui module. This contains the majority of the GUI classes.
  • The QtHelp module. This contains classes for creating and viewing searchable documentation.
  • The QtNetwork module. This module contains classes for writing UDP and TCP clients and servers. It includes classes that implement FTP and HTTP clients and support DNS lookups.
  • The QtOpenGL module. This module contains classes that enable the use of OpenGL in rendering 3D graphics in PyQt4 applications.
  • The QtScript module. This module contains classes that enable PyQt4 applications to be scripted using Qt’s JavaScript interpreter.
  • The QtScriptTools module. This module contains classes that contain additional components (e.g. a debugger) that are used with Qt’s JavaScript interpreter.
  • The QtSql module. This module contains classes that integrate with SQL databases. It includes editable data models for database tables that can be used with GUI classes. It also includes an implementation of SQLite.
  • The QtSvg module. This module contains classes for displaying the contents of SVG files.
  • The QtTest module. This module contains functions that enable unit testing of PyQt4 applications. (PyQt4 does not implement the complete Qt unit test framework. Instead it assumes that the standard Python unit test framework will be used and implements those functions that simulate a user interacting with a GUI.)
  • The QtWebKit module. This module implements a web browser engine based on the WebKit open source browser engine.
  • The QtXml module. This module contains classes that implement SAX and DOM interfaces to Qt’s XML parser.
  • The QtXmlPatterns module. This module contains classes that implement XQuery and XPath support for XML and custom data models.
  • The phonon module. This module contains classes that implement a cross-platform multimedia framework that enables the use of audio and video content in PyQt4 applications.
  • The QtDBus module. This Unix-only module provides classes that support Inter-Process Communication using the D-Bus protocol.
  • The QtDeclarative module. This module provides a declarative framework for building highly dynamic, custom user interfaces using QML.
  • The QtMultimedia module. This module provides low-level multimedia functionality. Application developers would normally use the phonon module.
  • The QtAssistant module. This module contains classes that allow Qt Assistant to be integrated with a PyQt4 application to provide online help. This module is not available with Qt v4.7 and later - use the QtHelp module instead.
  • The QtDesigner module. This module contains classes that allow Qt Designer to be extended using PyQt4. See Writing Qt Designer Plugins for a full description of how to do this.
  • The QAxContainer module. This Windows-only module contains classes that allow access to ActiveX controls and COM objects.
  • The Qt module. This module consolidates the classes contained in all of the modules described above into a single module. This has the advantage that you don’t have to worry about which underlying module contains a particular class. It has the disadvantage that it loads the whole of the Qt framework, thereby increasing the memory footprint of an application. Whether you use this consolidated module, or the individual component modules is down to personal taste.
  • The DBus support module is installed as dbus.mainloop.qt. This module provides support for the Qt event loop in the same way that the dbus.mainloop.glib included with the standard dbus-python bindings package provides support for the GLib event loop. The API is described in DBus Support. It is only available if the dbus-python v0.80 (or later) bindings package is installed. The QtDBus module provides a more Qt-like interface to DBus.
  • The uic module. This module contains classes for handling the .ui files created by Qt Designer that describe the whole or part of a graphical user interface. It includes classes that load a .ui file and render it directly, and classes that generate Python code from a .ui file for later execution.
  • The pyqtconfig module is an extention of the SIP build system and is created when PyQt4 is configured. It encapsulates all the necessary information about your Qt installation and makes it easier to write installation scripts for bindings built on top of PyQt4. It is covered in detail in The PyQt4 Build System.

PyQt4 also contains a number of utility programs.

  • pyuic4 corresponds to the Qt uic utility. It converts GUIs created using Qt Designer to Python code.

  • pyrcc4 corresponds to the Qt rcc utility. It embeds arbitrary resources (eg. icons, images, translation files) described by a resource collection file in a Python module.

    Note

    It will only be included if your copy of Qt includes the XML module.

  • pylupdate4 corresponds to the Qt lupdate utility. It extracts all of the translatable strings from Python code and creates or updates .ts translation files. These are then used by Qt Linguist to manage the translation of those strings.

    Note

    It will only be included if your copy of Qt includes the XML module.

When PyQt4 is configured a file called PyQt4.api is generated. This can be used by the QScintilla editor component (at http://www.riverbankcomputing.com/software/qscintilla/) to enable the use of auto-completion and call tips when editing PyQt4 code. The API file is installed automatically if QScintilla is already installed.

PyQt4 includes a large number of examples. These are ports to Python of many of the C++ examples provided with Qt. They can be found in the examples directory.

Finally, PyQt4 contains the .sip files used by SIP to generate PyQt4 itself. These can be used by developers of bindings of other Qt based class libraries - for example PyQwt and PyQwt3D.

PyQt-x11-gpl-4.11.4/doc/html/keyword_arguments.html0000644000076500000240000001241612536324430022122 0ustar philstaff00000000000000 Support for Keyword Arguments — PyQt 4.11.4 Reference Guide

Support for Keyword Arguments¶

Starting with v4.7 PyQt4 supports the use of keyword arguments for optional arguments.

One thing to be aware of is that, although the PyQt4 and Qt documentation may indicate that an argument has a particular name, you may find that PyQt4 actually uses a different name. This is because the name of an argument is not part of the Qt API and there is some inconsistency in the way that similar arguments are named. Different versions of Qt may use a different name for an argument which wouldn’t affect the C++ API but would break the Python API.

The docstrings that PyQt4 generates for all classes, functions and methods will contain the correct argument names. In a future version of PyQt4 the documentation will also contain the correct argument names.

PyQt-x11-gpl-4.11.4/doc/html/modules.html0000644000076500000240000001052412536324467020031 0ustar philstaff00000000000000 PyQt's Modules
  Home · All Classes · Modules

PyQt's Modules

PyQt consists of several modules all of which are part of the PyQt4 Python package.

QtConsolidates all other modules into a single module for ease of use at the expense of memory
QtCoreCore non-GUI classes used by other modules
QtDBusClasses for Inter-Process Communication using the D-Bus protocol
QtDeclarativeDeclarative framework for graphical user interfaces
QtGuiGraphical user interface components
QtHelpClasses for online help
QtMultimediaClasses for low-level multimedia programming
QtNetworkClasses for network programming
QtOpenGLOpenGL support classes
QtScriptClasses for evaluating Qt Scripts
QtScriptToolsAdditional Qt Script components
QtSqlClasses for database integration using SQL
QtSvgClasses for displaying the contents of SVG files
QtTestFunctions for unit testing PyQt applications
QtWebKitClasses for rendering and editing HTML
QtXmlClasses for handling XML
QtXmlPatternsAn XQuery and XPath engine for XML and custom data models
phononMultimedia framework classes
QtAssistantSupport for online help
QtDesignerClasses for extending Qt Designer
QAxContainerClasses for accessing ActiveX controls


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/new_style_signals_slots.html0000644000076500000240000010237212536324430023327 0ustar philstaff00000000000000 New-style Signal and Slot Support — PyQt 4.11.4 Reference Guide

New-style Signal and Slot Support¶

This section describes the new style of connecting signals and slots introduced in PyQt4 v4.5.

One of the key features of Qt is its use of signals and slots to communicate between objects. Their use encourages the development of reusable components.

A signal is emitted when something of potential interest happens. A slot is a Python callable. If a signal is connected to a slot then the slot is called when the signal is emitted. If a signal isn’t connected then nothing happens. The code (or component) that emits the signal does not know or care if the signal is being used.

The signal/slot mechanism has the following features.

  • A signal may be connected to many slots.
  • A signal may also be connected to another signal.
  • Signal arguments may be any Python type.
  • A slot may be connected to many signals.
  • Connections may be direct (ie. synchronous) or queued (ie. asynchronous).
  • Connections may be made across threads.
  • Signals may be disconnected.

Unbound and Bound Signals¶

A signal (specifically an unbound signal) is an attribute of a class that is a sub-class of QObject. When a signal is referenced as an attribute of an instance of the class then PyQt4 automatically binds the instance to the signal in order to create a bound signal. This is the same mechanism that Python itself uses to create bound methods from class functions.

A bound signal has connect(), disconnect() and emit() methods that implement the associated functionality. It also has a signal attribute that is the signature of the signal that would be returned by Qt’s SIGNAL() macro.

A signal may be overloaded, ie. a signal with a particular name may support more than one signature. A signal may be indexed with a signature in order to select the one required. A signature is a sequence of types. A type is either a Python type object or a string that is the name of a C++ type. The name of a C++ type is automatically normalised so that, for example, QString can be used instead of the non-normalised const QString &.

If a signal is overloaded then it will have a default that will be used if no index is given.

When a signal is emitted then any arguments are converted to C++ types if possible. If an argument doesn’t have a corresponding C++ type then it is wrapped in a special C++ type that allows it to be passed around Qt’s meta-type system while ensuring that its reference count is properly maintained.

Defining New Signals with pyqtSignal()¶

PyQt4 automatically defines signals for all Qt’s built-in signals. New signals can be defined as class attributes using the pyqtSignal() factory.

PyQt4.QtCore.pyqtSignal(types[, name])¶

Create one or more overloaded unbound signals as a class attribute.

Parameters:
  • types – the types that define the C++ signature of the signal. Each type may be a Python type object or a string that is the name of a C++ type. Alternatively each may be a sequence of type arguments. In this case each sequence defines the signature of a different signal overload. The first overload will be the default.
  • name – the name of the signal. If it is omitted then the name of the class attribute is used. This may only be given as a keyword argument.
Return type:

an unbound signal

The following example shows the definition of a number of new signals:

from PyQt4.QtCore import QObject, pyqtSignal

class Foo(QObject):

    # This defines a signal called 'closed' that takes no arguments.
    closed = pyqtSignal()

    # This defines a signal called 'rangeChanged' that takes two
    # integer arguments.
    range_changed = pyqtSignal(int, int, name='rangeChanged')

    # This defines a signal called 'valueChanged' that has two overloads,
    # one that takes an integer argument and one that takes a QString
    # argument.  Note that because we use a string to specify the type of
    # the QString argument then this code will run under Python v2 and v3.
    valueChanged = pyqtSignal([int], ['QString'])

New signals should only be defined in sub-classes of QObject. They must be part of the class definition and cannot be dynamically added as class attributes after the class has been defined.

New signals defined in this way will be automatically added to the class’s QMetaObject. This means that they will appear in Qt Designer and can be introspected using the QMetaObject API.

Overloaded signals should be used with care when an argument has a Python type that has no corresponding C++ type. PyQt4 uses the same internal C++ class to represent such objects and so it is possible to have overloaded signals with different Python signatures that are implemented with identical C++ signatures with unexpected results. The following is an example of this:

class Foo(QObject):

    # This will cause problems because each has the same C++ signature.
    valueChanged = pyqtSignal([dict], [list])

Connecting, Disconnecting and Emitting Signals¶

Signals are connected to slots using the connect() method of a bound signal.

connect(slot[, type=PyQt4.QtCore.Qt.AutoConnection[, no_receiver_check=False]])¶

Connect a signal to a slot. An exception will be raised if the connection failed.

Parameters:
  • slot – the slot to connect to, either a Python callable or another bound signal.
  • type – the type of the connection to make.
  • no_receiver_check – suppress the check that the underlying C++ receiver instance still exists and deliver the signal anyway.

Signals are disconnected from slots using the disconnect() method of a bound signal.

disconnect([slot])¶

Disconnect one or more slots from a signal. An exception will be raised if the slot is not connected to the signal or if the signal has no connections at all.

Parameters:slot – the optional slot to disconnect from, either a Python callable or another bound signal. If it is omitted then all slots connected to the signal are disconnected.

Signals are emitted from using the emit() method of a bound signal.

emit(*args)¶

Emit a signal.

Parameters:args – the optional sequence of arguments to pass to any connected slots.

The following code demonstrates the definition, connection and emit of a signal without arguments:

from PyQt4.QtCore import QObject, pyqtSignal

class Foo(QObject):

    # Define a new signal called 'trigger' that has no arguments.
    trigger = pyqtSignal()

    def connect_and_emit_trigger(self):
        # Connect the trigger signal to a slot.
        self.trigger.connect(self.handle_trigger)

        # Emit the signal.
        self.trigger.emit()

    def handle_trigger(self):
        # Show that the slot has been called.

        print "trigger signal received"

The following code demonstrates the connection of overloaded signals:

from PyQt4.QtGui import QComboBox

class Bar(QComboBox):

    def connect_activated(self):
        # The PyQt4 documentation will define what the default overload is.
        # In this case it is the overload with the single integer argument.
        self.activated.connect(self.handle_int)

        # For non-default overloads we have to specify which we want to
        # connect.  In this case the one with the single string argument.
        # (Note that we could also explicitly specify the default if we
        # wanted to.)
        self.activated[str].connect(self.handle_string)

    def handle_int(self, index):
        print "activated signal passed integer", index

    def handle_string(self, text):
        print "activated signal passed QString", text

Connecting Signals Using Keyword Arguments¶

It is also possible to connect signals by passing a slot as a keyword argument corresponding to the name of the signal when creating an object, or using the pyqtConfigure() method of QObject. For example the following three fragments are equivalent:

act = QtGui.QAction("Action", self)
act.triggered.connect(self.on_triggered)

act = QtGui.QAction("Action", self, triggered=self.on_triggered)

act = QtGui.QAction("Action", self)
act.pyqtConfigure(triggered=self.on_triggered)

The pyqtSlot() Decorator¶

Although PyQt4 allows any Python callable to be used as a slot when connecting signals, it is sometimes necessary to explicitly mark a Python method as being a Qt slot and to provide a C++ signature for it. PyQt4 provides the pyqtSlot() function decorator to do this.

PyQt4.QtCore.pyqtSlot(types[, name[, result]])¶

Decorate a Python method to create a Qt slot.

Parameters:
  • types – the types that define the C++ signature of the slot. Each type may be a Python type object or a string that is the name of a C++ type.
  • name – the name of the slot that will be seen by C++. If omitted the name of the Python method being decorated will be used. This may only be given as a keyword argument.
  • result – the type of the result and may be a Python type object or a string that specifies a C++ type. This may only be given as a keyword argument.

Connecting a signal to a decorated Python method also has the advantage of reducing the amount of memory used and is slightly faster.

For example:

from PyQt4.QtCore import QObject, pyqtSlot

class Foo(QObject):

    @pyqtSlot()
    def foo(self):
        """ C++: void foo() """

    @pyqtSlot(int, str)
    def foo(self, arg1, arg2):
        """ C++: void foo(int, QString) """

    @pyqtSlot(int, name='bar')
    def foo(self, arg1):
        """ C++: void bar(int) """

    @pyqtSlot(int, result=int)
    def foo(self, arg1):
        """ C++: int foo(int) """

    @pyqtSlot(int, QObject)
    def foo(self, arg1):
        """ C++: int foo(int, QObject *) """

It is also possible to chain the decorators in order to define a Python method several times with different signatures. For example:

from PyQt4.QtCore import QObject, pyqtSlot

class Foo(QObject):

    @pyqtSlot(int)
    @pyqtSlot('QString')
    def valueChanged(self, value):
        """ Two slots will be defined in the QMetaObject. """

Connecting Slots By Name¶

PyQt4 supports the QtCore.QMetaObject.connectSlotsByName() function that is most commonly used by pyuic4 generated Python code to automatically connect signals to slots that conform to a simple naming convention. However, where a class has overloaded Qt signals (ie. with the same name but with different arguments) PyQt4 needs additional information in order to automatically connect the correct signal.

For example the QtGui.QSpinBox class has the following signals:

void valueChanged(int i);
void valueChanged(const QString &text);

When the value of the spin box changes both of these signals will be emitted. If you have implemented a slot called on_spinbox_valueChanged (which assumes that you have given the QSpinBox instance the name spinbox) then it will be connected to both variations of the signal. Therefore, when the user changes the value, your slot will be called twice - once with an integer argument, and once with a unicode or QString argument.

This also happens with signals that take optional arguments. Qt implements this using multiple signals. For example, QtGui.QAbstractButton has the following signal:

void clicked(bool checked = false);

Qt implements this as the following:

void clicked();
void clicked(bool checked);

The pyqtSlot() decorator can be used to specify which of the signals should be connected to the slot.

For example, if you were only interested in the integer variant of the signal then your slot definition would look like the following:

@pyqtSlot(int)
def on_spinbox_valueChanged(self, i):
    # i will be an integer.
    pass

If you wanted to handle both variants of the signal, but with different Python methods, then your slot definitions might look like the following:

@pyqtSlot(int, name='on_spinbox_valueChanged')
def spinbox_int_value(self, i):
    # i will be an integer.
    pass

@pyqtSlot(str, name='on_spinbox_valueChanged')
def spinbox_qstring_value(self, s):
    # s will be a Python string object (or a QString if they are enabled).
    pass

The following shows an example using a button when you are not interested in the optional argument:

@pyqtSlot()
def on_button_clicked(self):
    pass

Mixing New-style and Old-style Connections¶

The implementation of new-style connections is slightly different to the implementation of old-style connections. An application can freely use both styles subject to the restriction that any individual new-style connection should only be disconnected using the new style. Similarly any individual old-style connection should only be disconnected using the old style.

You should also be aware that pyuic4 generates code that uses old-style connections.

PyQt-x11-gpl-4.11.4/doc/html/objects.inv0000644000076500000240000000264612536324430017636 0ustar philstaff00000000000000# Sphinx inventory version 2 # Project: PyQt # Version: 4.11.4 # The remainder of this file is compressed using zlib. xÚÅšÁnÛ8†ïy Û«‚í¶§ÞÒÛ ¶ÙÚ°íÍ ¤±Í†"i’²£·ß¡dË–ãv#Í> Lýߌ†äCñþcå§áQHýÅ›ØúòÒyF'o“"«üí:”ê·7Iz3©§áýí4|2nm½ g,¸PŸ©6aaÛ ¿’ÏäJ u&Ö°[øP+Xø¦Ù/¼2á—l‰êÜè¥\E}iŠJAò{’UR _ûe+i›ÒKÊÛOÍ•määJxN¼Äü¿¾iXdR/ é"L„àdV Û–…p+ÏÅ ðzÙF™ÑC/-¯‡¸T‚3Š[p~?pX8þy^‘ÂåëBÁLd²óøPPÈÀÕ%ˆ[:QÂθ'. Ô9çë*™qâÂÚ( àâqNÄí0z]ÊœÞ=#3àz î±IXâ –WŽá¹î¼—>XqEdÀÜ㎀(‰qß²8q%g ùçJ2Pþe0• ²ÄŒ#`ÿ@ˆy†ôÕ‚þü…4Ë´ 47Fq ÎÙFqP¶+Ê»‚Ô¸–*Õ.ö$/‹¶5Í÷;H5ލš‡Õ°d‹{(š7£!ÉEÿˆ¾ÐH—0©· {›Í­Ñ¼SØIéNvl)]™*™ƒöpuÚ)Ê% bGÆ£ âKDõU+ª#'€6a¦¶I§ôIÀpMJ‡ÀI•)êÀ 9ž!¯ÎÇj™:ÊmëÛûV¸t¦Lei ~¸zûyÕàˆDtzƒ Ãp×÷©%¥=mpøY11WfõA½©ÊáØ£™Ü'õÊ3xFa‚l1Í‘í¶ñ¹L…•W%b¼´i,Þ‚:åÄê%¥¥»DAõ8±È&ºcª`«Y‰eªÒ§gKàXU1—m%ìFD™€õ©ô©­2Ì×Ô°°/à´ Ü’G^½ ïÒÖ‚ÑÍ߸Âpب+å¦Op%ÆÀ“•9RòÁ´ fÀu,ÞT.Ç*³Z.åóðÁƒ ñuâ#uN ‚®9,P>äÕ GBí1Ô³Œ Ü 0ÍÕéá‘çDWbt€ KŠø½˜ÂÀpd†|†2žrŠxÙ/¯™ü<:žr@ÌiÌ ¦Í´ ˜Îh¦3‚ibn¢d%béM©¶‰S•2G)‡yëÁ{M{QJV”ƒýAsöÁÙ'šé'‚ibÒ¥d[3¸‹,U1È?[ÿÑW6¹þ¥A— Ö6´NØ^’¸Ï¥ìp‰‡&”£$â^”ò­¢™®¦·4Ó[‚éá':;š³;‚³ƒË×èø]¡Õ)‘JÒ·Éá×V—<Ä¿oJS\x‹šCÃþéöúÆ^ä`™6·6ÒöÖF_|é>Ç| Is£!ù[“YÓÚ€zŸqOe;ÞËX½I¥^%;ÖIÿ÷Ÿ‘Òл£ðwz+>^–Kf•_ÚÇûßÎ¥g×-¾9¢Ón¸%í=Öx¼¬XZâ©Æ‹—j›d¦`›Ì(ÈêÃÉ#ÉÝä¡e–"74{˜$BûX—<ŠüëìÆCWêu¬ö·}§ÏÚ&b7ÿâp„FPyQt-x11-gpl-4.11.4/doc/html/old_style_signals_slots.html0000644000076500000240000004113412536324430023312 0ustar philstaff00000000000000 Old-style Signal and Slot Support — PyQt 4.11.4 Reference Guide

Old-style Signal and Slot Support¶

This section describes the older style for connecting signals and slots. It uses the same API that a C++ application would use. This has a number of advantages.

  • It is well understood and documented.
  • Any future changes to the C++ API should be easily included.

It also has a number of disadvantages.

  • It requires knowledge of the C++ types of signal arguments.
  • It is error prone in that if you mis-type the signal name or signature then no exception is raised, either when the signal is connected or emitted.
  • It is verbose.
  • It is not Pythonic.

This older style of connecting signals and slots will continue to be supported throughout the life of PyQt4.

PyQt4 Signals and Qt Signals¶

Qt signals are statically defined as part of a C++ class. They are referenced using the QtCore.SIGNAL() function. This method takes a single string argument that is the name of the signal and its C++ signature. For example:

QtCore.SIGNAL('finished(int)')

The returned value is normally passed to the QtCore.QObject.connect() method.

PyQt4 allows new signals to be defined dynamically. The act of emitting a PyQt4 signal implicitly defines it. PyQt4 signals are also referenced using the QtCore.SIGNAL() function.

The PyQt_PyObject Signal Argument Type¶

It is possible to pass any Python object as a signal argument by specifying PyQt_PyObject as the type of the argument in the signature. For example:

QtCore.SIGNAL('finished(PyQt_PyObject)')

While this would normally be used for passing objects like lists and dictionaries as signal arguments, it can be used for any Python type. Its advantage when passing, for example, an integer is that the normal conversions from a Python object to a C++ integer and back again are not required.

The reference count of the object being passed is maintained automatically. There is no need for the emitter of a signal to keep a reference to the object after the call to QtCore.QObject.emit(), even if a connection is queued.

Short-circuit Signals¶

There is also a special form of a PyQt4 signal known as a short-circuit signal. Short-circut signals implicitly declare each argument as being of type PyQt_PyObject.

Short-circuit signals do not have a list of arguments or the surrounding parentheses.

Short-circuit signals may only be connected to slots that have been implemented in Python. They cannot be connected to Qt slots or the Python callables that wrap Qt slots.

PyQt4 Slots and Qt Slots¶

Qt slots are statically defined as part of a C++ class. They are referenced using the QtCore.SLOT() function. This method takes a single string argument that is the name of the slot and its C++ signature. For example:

QtCore.SLOT('done(int)')

The returned value is normally passed to the QtCore.QObject.connect() method.

PyQt4 allows any Python callable to be used as a slot, not just Qt slots. This is done by simply referencing the callable. Because Qt slots are implemented as class methods they are also available as Python callables. Therefore it is not usually necessary to use QtCore.SLOT() for Qt slots. However, doing so is more efficient as it avoids a conversion to Python and back to C++.

Qt allows a signal to be connected to a slot that requires fewer arguments than the signal passes. The extra arguments are quietly discarded. PyQt4 slots can be used in the same way.

Note that when a slot is a Python callable its reference count is not increased. This means that a class instance can be deleted without having to explicitly disconnect any signals connected to its methods. However, if a slot is a lambda function or a partial function then its reference count is automatically incremented to prevent it from being immediately garbage collected.

Connecting Signals and Slots¶

Connections between signals and slots (and other signals) are made using the QtCore.QObject.connect() method. For example:

QtCore.QObject.connect(a, QtCore.SIGNAL('QtSig()'), pyFunction)
QtCore.QObject.connect(a, QtCore.SIGNAL('QtSig()'), pyClass.pyMethod)
QtCore.QObject.connect(a, QtCore.SIGNAL('QtSig()'), b, QtCore.SLOT('QtSlot()'))
QtCore.QObject.connect(a, QtCore.SIGNAL('PySig()'), b, QtCore.SLOT('QtSlot()'))
QtCore.QObject.connect(a, QtCore.SIGNAL('PySig'), pyFunction)

Disconnecting signals works in exactly the same way using the QtCore.QObject.disconnect() method. However, not all the variations of that method are supported by PyQt4. Signals must be disconnected one at a time.

Emitting Signals¶

Any instance of a class that is derived from the QtCore.QObject class can emit a signal using its emit() method. This takes a minimum of one argument which is the signal. Any other arguments are passed to the connected slots as the signal arguments. For example:

a.emit(QtCore.SIGNAL('clicked()'))
a.emit(QtCore.SIGNAL('pySig'), "Hello", "World")

The QtCore.pyqtSignature() Decorator¶

The QtCore.pyqtSignature() serves the same purpose as the pyqtSlot() decorator but has a less Pythonic API.

PyQt-x11-gpl-4.11.4/doc/html/phonon-abstractaudiooutput.html0000644000076500000240000000340312536324524023756 0ustar philstaff00000000000000 Phonon.AbstractAudioOutput Class Reference
  Home · All Classes · Modules

Phonon.AbstractAudioOutput Class Reference
[phonon module]

Inherits QObject and MediaNode.

Inherited by AudioOutput.


Detailed Description


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-abstractvideooutput.html0000644000076500000240000000333412536324524023766 0ustar philstaff00000000000000 Phonon.AbstractVideoOutput Class Reference
  Home · All Classes · Modules

Phonon.AbstractVideoOutput Class Reference
[
phonon module]

Inherits MediaNode.

Inherited by VideoWidget.


Detailed Description


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-audiocapturedevice.html0000644000076500000240000001144512536324524023522 0ustar philstaff00000000000000 Phonon.AudioCaptureDevice Class Reference
  Home · All Classes · Modules

Phonon.AudioCaptureDevice Class Reference
[
phonon module]

Methods

Static Methods

Special Methods

  • bool __eq__ (self, AudioCaptureDevice otherDescription)
  • bool __ne__ (self, AudioCaptureDevice otherDescription)

Detailed Description


Method Documentation

AudioCaptureDevice.__init__ (self)

AudioCaptureDevice.__init__ (self, int index, dict-of-QByteArray-QVariant properties)

AudioCaptureDevice.__init__ (self, AudioCaptureDevice)

QString AudioCaptureDevice.description (self)

AudioCaptureDevice AudioCaptureDevice.fromIndex (int index)

int AudioCaptureDevice.index (self)

bool AudioCaptureDevice.isValid (self)

QString AudioCaptureDevice.name (self)

QVariant AudioCaptureDevice.property (self, str name)

list-of-QByteArray AudioCaptureDevice.propertyNames (self)

bool AudioCaptureDevice.__eq__ (self, AudioCaptureDevice otherDescription)

bool AudioCaptureDevice.__ne__ (self, AudioCaptureDevice otherDescription)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-audiochanneldescription.html0000644000076500000240000001200112536324524024540 0ustar philstaff00000000000000 Phonon.AudioChannelDescription Class Reference
  Home · All Classes · Modules

Phonon.AudioChannelDescription Class Reference
[phonon module]

Methods

Static Methods

  • AudioChannelDescription fromIndex (int index)

Special Methods

  • bool __eq__ (self, AudioChannelDescription otherDescription)
  • bool __ne__ (self, AudioChannelDescription otherDescription)

Detailed Description


Method Documentation

AudioChannelDescription.__init__ (self)

AudioChannelDescription.__init__ (self, int index, dict-of-QByteArray-QVariant properties)

AudioChannelDescription.__init__ (self, AudioChannelDescription)

QString AudioChannelDescription.description (self)

AudioChannelDescription AudioChannelDescription.fromIndex (int index)

int AudioChannelDescription.index (self)

bool AudioChannelDescription.isValid (self)

QString AudioChannelDescription.name (self)

QVariant AudioChannelDescription.property (self, str name)

list-of-QByteArray AudioChannelDescription.propertyNames (self)

bool AudioChannelDescription.__eq__ (self, AudioChannelDescription otherDescription)

bool AudioChannelDescription.__ne__ (self, AudioChannelDescription otherDescription)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-audiooutput.html0000644000076500000240000002625612536324524022245 0ustar philstaff00000000000000 Phonon.AudioOutput Class Reference
  Home · All Classes · Modules

Phonon.AudioOutput Class Reference
[phonon module]

The AudioOutput class is used to send data to audio output devices. More...

Inherits AbstractAudioOutput.

Methods

Qt Signals


Detailed Description

The AudioOutput class is used to send data to audio output devices.

The AudioOutput class plays sound over a sound device. The audio output needs to be connected to a MediaObject using createPath(). To start playback, you call play() on the media object.

     Phonon.MediaObject *mediaObject = new Phonon.MediaObject(this);
     mediaObject->setCurrentSource(Phonon.MediaSource("/mymusic/barbiegirl.wav"));
     Phonon.AudioOutput *audioOutput =
         new Phonon.AudioOutput(Phonon.MusicCategory, this);
     Phonon.Path path = Phonon.createPath(mediaObject, audioOutput);

The class supports changing the volume(). It is also possible to mute the sound.

To find out what AudioOutputDevices are available for AudioOutput, you can call BackendCapabilities.availableAudioOutputDevices(). A default device is selected by the backend, but it is possible to set the device to be used with setOutputDevice(). The outputDeviceChanged() signal will be emitted if the device changes.

If an error occurs with the playback, for instance, if no valid output device is found, the media object will receive a stateChanged() signal with the ErrorState.

Note that the default values of properties are dependent on the backend.


Method Documentation

AudioOutput.__init__ (self, Category category, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new AudioOutput with the given parent that defines output to a physical device.

The category can be used by mixer applications to group volume controls of applications into categories. That makes it easier for the user to identify the programs. The category is also used for the default output device that is configured centrally. As an example: often users want to have the audio signal of a VoIP application go to their USB headset while all other sounds should go to the internal soundcard.

See also Phonon.categoryToString() and outputDevice.

AudioOutput.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new AudioOutput that defines output to the system default device with the {Phonon.Category.}{NoCategory} category

See also Phonon.categoryToString() and outputDevice.

Category AudioOutput.category (self)

Returns the category of this output.

See also Phonon.AudioOutput.AudioOutput().

bool AudioOutput.isMuted (self)

QString AudioOutput.name (self)

AudioOutputDevice AudioOutput.outputDevice (self)

AudioOutput.setMuted (self, bool mute)

This method is also a Qt slot with the C++ signature void setMuted(bool).

AudioOutput.setName (self, QString newName)

This method is also a Qt slot with the C++ signature void setName(const QString&).

bool AudioOutput.setOutputDevice (self, AudioOutputDevice newAudioOutputDevice)

This method is also a Qt slot with the C++ signature bool setOutputDevice(const Phonon::AudioOutputDevice&).

AudioOutput.setVolume (self, float newVolume)

This method is also a Qt slot with the C++ signature void setVolume(qreal).

AudioOutput.setVolumeDecibel (self, float newVolumeDecibel)

This method is also a Qt slot with the C++ signature void setVolumeDecibel(qreal).

float AudioOutput.volume (self)

float AudioOutput.volumeDecibel (self)


Qt Signal Documentation

void mutedChanged (bool)

This is the default overload of this signal.

This signal is emitted when the muted property has changed. The muted value passed by the signal indicates the state of the muted property. As this property can change by IPC (DBus) calls a UI element showing the muted property should listen to this signal.

void outputDeviceChanged (const Phonon::AudioOutputDevice&)

This is the default overload of this signal.

This signal is emitted when the (hardware) device for the output has changed. newAudioOutputDevice is the new device.

The change can happen either through setOutputDevice or if the global configuration for the used category has changed.

See also outputDevice.

void volumeChanged (qreal)

This is the default overload of this signal.

This signal is emitted whenever the volume has changed. As the volume can change without a call to setVolume (calls over dbus) this is important to keep a widget showing the current volume up to date.

newVolume is the new volume level.

See also setVolume() and volume().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-audiooutputdevice.html0000644000076500000240000001137112536324524023415 0ustar philstaff00000000000000 Phonon.AudioOutputDevice Class Reference
  Home · All Classes · Modules

Phonon.AudioOutputDevice Class Reference
[phonon module]

Methods

Static Methods

Special Methods

  • bool __eq__ (self, AudioOutputDevice otherDescription)
  • bool __ne__ (self, AudioOutputDevice otherDescription)

Detailed Description


Method Documentation

AudioOutputDevice.__init__ (self)

AudioOutputDevice.__init__ (self, int index, dict-of-QByteArray-QVariant properties)

AudioOutputDevice.__init__ (self, AudioOutputDevice)

QString AudioOutputDevice.description (self)

AudioOutputDevice AudioOutputDevice.fromIndex (int index)

int AudioOutputDevice.index (self)

bool AudioOutputDevice.isValid (self)

QString AudioOutputDevice.name (self)

QVariant AudioOutputDevice.property (self, str name)

list-of-QByteArray AudioOutputDevice.propertyNames (self)

bool AudioOutputDevice.__eq__ (self, AudioOutputDevice otherDescription)

bool AudioOutputDevice.__ne__ (self, AudioOutputDevice otherDescription)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-audiooutputdevicemodel.html0000644000076500000240000001734712536324524024447 0ustar philstaff00000000000000 Phonon.AudioOutputDeviceModel Class Reference
  Home · All Classes · Modules

Phonon.AudioOutputDeviceModel Class Reference
[phonon module]

Inherits QAbstractListModel.

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, list-of-Phonon.AudioOutputDevice data, QObject parent = None)
  • QVariant data (self, QModelIndex index, int role = Qt.DisplayRole)
  • bool dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)
  • Qt.ItemFlags flags (self, QModelIndex index)
  • QMimeData mimeData (self, list-of-QModelIndex indexes)
  • QStringList mimeTypes (self)
  • list-of-Phonon.AudioOutputDevice modelData (self)
  • AudioOutputDevice modelData (self, QModelIndex index)
  • moveDown (self, QModelIndex index)
  • moveUp (self, QModelIndex index)
  • bool removeRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • int rowCount (self, QModelIndex parent = QModelIndex())
  • setModelData (self, list-of-Phonon.AudioOutputDevice data)
  • Qt.DropActions supportedDropActions (self)
  • int tupleIndexAtPositionIndex (self, int positionIndex)
  • list-of-int tupleIndexOrder (self)

Detailed Description


Method Documentation

AudioOutputDeviceModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

AudioOutputDeviceModel.__init__ (self, list-of-Phonon.AudioOutputDevice data, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QVariant AudioOutputDeviceModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

bool AudioOutputDeviceModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Qt.ItemFlags AudioOutputDeviceModel.flags (self, QModelIndex index)

QMimeData AudioOutputDeviceModel.mimeData (self, list-of-QModelIndex indexes)

QStringList AudioOutputDeviceModel.mimeTypes (self)

list-of-Phonon.AudioOutputDevice AudioOutputDeviceModel.modelData (self)

AudioOutputDevice AudioOutputDeviceModel.modelData (self, QModelIndex index)

AudioOutputDeviceModel.moveDown (self, QModelIndex index)

AudioOutputDeviceModel.moveUp (self, QModelIndex index)

bool AudioOutputDeviceModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

int AudioOutputDeviceModel.rowCount (self, QModelIndex parent = QModelIndex())

AudioOutputDeviceModel.setModelData (self, list-of-Phonon.AudioOutputDevice data)

Qt.DropActions AudioOutputDeviceModel.supportedDropActions (self)

int AudioOutputDeviceModel.tupleIndexAtPositionIndex (self, int positionIndex)

list-of-int AudioOutputDeviceModel.tupleIndexOrder (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-backendcapabilities-notifier.html0000644000076500000240000000616512536324524025436 0ustar philstaff00000000000000 Phonon.BackendCapabilities.Notifier Class Reference
  Home · All Classes · Modules

Phonon.BackendCapabilities.Notifier Class Reference
[
phonon module]

Inherits: QObject and QObject.

This class was introduced in Qt 4.4.

Inherits QObject.

Qt Signals


Detailed Description

Notifications about backend capabilities.


Qt Signal Documentation

void availableAudioCaptureDevicesChanged ()

This is the default overload of this signal.

void availableAudioOutputDevicesChanged ()

This is the default overload of this signal.

This signal is emitted when audio output devices were plugged or unplugged.

Check BackendCapabilities.availableAudioOutputDevices to get the current list of available devices.

void capabilitiesChanged ()

This is the default overload of this signal.

This signal is emitted if the capabilities have changed. This can happen if the user has requested a backend change.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-backendcapabilities.html0000644000076500000240000001323012536324524023610 0ustar philstaff00000000000000 Phonon.BackendCapabilities Class Reference
  Home · All Classes · Modules

Phonon.BackendCapabilities Class Reference
[
phonon module]

The BackendCapabilities namespace contains functions to describe the capabilities of the multimedia backend. More...

Types

Static Methods


Detailed Description

The BackendCapabilities namespace contains functions to describe the capabilities of the multimedia backend.


Method Documentation

list-of-Phonon.AudioCaptureDevice BackendCapabilities.availableAudioCaptureDevices ()

list-of-Phonon.EffectDescription BackendCapabilities.availableAudioEffects ()

Returns descriptions for the audio effects the backend supports.

Returns A list of AudioEffectDescription objects that give a name and description for every supported audio effect.

list-of-Phonon.AudioOutputDevice BackendCapabilities.availableAudioOutputDevices ()

Returns the audio output devices the backend supports.

Returns A list of AudioOutputDevice objects that give a name and description for every supported audio output device.

QStringList BackendCapabilities.availableMimeTypes ()

Returns a list of mime types that the Backend can decode.

See also isMimeTypeAvailable().

bool BackendCapabilities.isMimeTypeAvailable (QString mimeType)

Often all you want to know is whether one given MIME type can be decoded by the backend. Use this method in favor of availableMimeTypes() as it can give you a negative answer without having a backend loaded.

Returns true if the given mimeType is supported by the backend; otherwise, returns false.

See also availableMimeTypes().

Notifier BackendCapabilities.notifier ()

Use this function to get a QObject pointer to connect to the capabilitiesChanged signal.

Returns a pointer to a QObject.

The capabilitiesChanged signal is emitted if the capabilities have changed. This can happen if the user has requested a backend change.

To connect to this signal do the following:

 QObject.connect(BackendCapabilities.notifier(), SIGNAL(capabilitiesChanged()), ...

See also Notifier.capabilitiesChanged().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-effect.html0000644000076500000240000002001712536324524021104 0ustar philstaff00000000000000 Phonon.Effect Class Reference
  Home · All Classes · Modules

Phonon.Effect Class Reference
[phonon module]

The Effect class is used to transform audio streams. More...

Inherits QObject and MediaNode.

Methods


Detailed Description

The Effect class is used to transform audio streams.

An effect is a media node which is inserted into a path between a MediaObject and an audio output node, for instance, an AudioOutput. The Effect transforms the media stream on that path.

Examples may include simple modifiers, such as fading or pitch shifting, and more complex mathematical transformations. You can query the backend for available effects with BackendCapabilities.availableAudioEffects(). Note that the effects available is dependent on the underlying system (DirectDraw, GStreamer, or QuickTime).

In order to use an effect, insert it into the path as follows:

 Path path = Phonon.createPath(...);
 Effect *effect = new Effect(this);
 path.insertEffect(effect);

The effect will immediately begin applying it's transformations on the path. To stop it, remove the Effect from the path.

To create an effect, you use the EffectDescription class, which you get from availableAudioEffects(). We give a code example below.

     QList<Phonon.EffectDescription> effectDescriptions =
             Phonon.BackendCapabilities.availableAudioEffects();
     Phonon.EffectDescription effectDescription = effectDescriptions.at(4);

     Phonon.Path path = Phonon.createPath(mediaObject, audioOutput);

     Phonon.Effect *effect = new Phonon.Effect(effectDescription);
     path.insertEffect(effect);

An effect can have one or more parameters, which let you alter how the effect works, for instance, by specifying the depth of a reverb effect. See the EffectParameter class description for details.

Phonon also provides EffectWidget, which lets the user modify the parameters of an effect an the fly; e.g., with combo boxes.


Method Documentation

Effect.__init__ (self, EffectDescription description, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new effect object with the given description and parent object.

The EffectDescription object determines the type of the effect.

See also Phonon.BackendCapabilities.availableAudioEffects().

EffectDescription Effect.description (self)

Returns the description of this effect. This is the same description that was passed to the constructor.

list-of-Phonon.EffectParameter Effect.parameters (self)

Returns a list of parameters that this effect provides to control its behavior.

See also EffectParameter and EffectWidget.

QVariant Effect.parameterValue (self, EffectParameter)

Returns the value of the given effect parameter. You can fetch the available parameters for an effect with parameters().

See also setParameterValue() and EffectParameter.

Effect.setParameterValue (self, EffectParameter, QVariant value)

Sets the given effect parameter to the specified value.

Parameters for an effect are returned by parameters(). You can check which QVariant.Type an EffectParameter takes with the EffectParameter.type() function.

See also parameterValue() and EffectParameter.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-effectdescription.html0000644000076500000240000001137112536324524023353 0ustar philstaff00000000000000 Phonon.EffectDescription Class Reference
  Home · All Classes · Modules

Phonon.EffectDescription Class Reference
[phonon module]

Methods

Static Methods

Special Methods

  • bool __eq__ (self, EffectDescription otherDescription)
  • bool __ne__ (self, EffectDescription otherDescription)

Detailed Description


Method Documentation

EffectDescription.__init__ (self)

EffectDescription.__init__ (self, int index, dict-of-QByteArray-QVariant properties)

EffectDescription.__init__ (self, EffectDescription)

QString EffectDescription.description (self)

EffectDescription EffectDescription.fromIndex (int index)

int EffectDescription.index (self)

bool EffectDescription.isValid (self)

QString EffectDescription.name (self)

QVariant EffectDescription.property (self, str name)

list-of-QByteArray EffectDescription.propertyNames (self)

bool EffectDescription.__eq__ (self, EffectDescription otherDescription)

bool EffectDescription.__ne__ (self, EffectDescription otherDescription)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-effectdescriptionmodel.html0000644000076500000240000001734712536324524024405 0ustar philstaff00000000000000 Phonon.EffectDescriptionModel Class Reference
  Home · All Classes · Modules

Phonon.EffectDescriptionModel Class Reference
[phonon module]

Inherits QAbstractListModel.

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, list-of-Phonon.EffectDescription data, QObject parent = None)
  • QVariant data (self, QModelIndex index, int role = Qt.DisplayRole)
  • bool dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)
  • Qt.ItemFlags flags (self, QModelIndex index)
  • QMimeData mimeData (self, list-of-QModelIndex indexes)
  • QStringList mimeTypes (self)
  • list-of-Phonon.EffectDescription modelData (self)
  • EffectDescription modelData (self, QModelIndex index)
  • moveDown (self, QModelIndex index)
  • moveUp (self, QModelIndex index)
  • bool removeRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • int rowCount (self, QModelIndex parent = QModelIndex())
  • setModelData (self, list-of-Phonon.EffectDescription data)
  • Qt.DropActions supportedDropActions (self)
  • int tupleIndexAtPositionIndex (self, int positionIndex)
  • list-of-int tupleIndexOrder (self)

Detailed Description


Method Documentation

EffectDescriptionModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

EffectDescriptionModel.__init__ (self, list-of-Phonon.EffectDescription data, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QVariant EffectDescriptionModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

bool EffectDescriptionModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Qt.ItemFlags EffectDescriptionModel.flags (self, QModelIndex index)

QMimeData EffectDescriptionModel.mimeData (self, list-of-QModelIndex indexes)

QStringList EffectDescriptionModel.mimeTypes (self)

list-of-Phonon.EffectDescription EffectDescriptionModel.modelData (self)

EffectDescription EffectDescriptionModel.modelData (self, QModelIndex index)

EffectDescriptionModel.moveDown (self, QModelIndex index)

EffectDescriptionModel.moveUp (self, QModelIndex index)

bool EffectDescriptionModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

int EffectDescriptionModel.rowCount (self, QModelIndex parent = QModelIndex())

EffectDescriptionModel.setModelData (self, list-of-Phonon.EffectDescription data)

Qt.DropActions EffectDescriptionModel.supportedDropActions (self)

int EffectDescriptionModel.tupleIndexAtPositionIndex (self, int positionIndex)

list-of-int EffectDescriptionModel.tupleIndexOrder (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-effectparameter-hints.html0000644000076500000240000001374212536324524024137 0ustar philstaff00000000000000 Phonon.EffectParameter.Hints Class Reference
  Home · All Classes · Modules

Phonon.EffectParameter.Hints Class Reference
[
phonon module]

Methods

Special Methods


Detailed Description

Hint may be used whenever Hints is expected.


Method Documentation

Hints.__init__ (self, Hints)

Hints.__init__ (self, int)

Hints.__init__ (self)

Hints Hints.__and__ (self, int mask)

int Hints.__bool__ (self)

bool Hints.__eq__ (self, Hints f)

Hints Hints.__iand__ (self, int mask)

int Hints.__int__ (self)

Hints Hints.__invert__ (self)

Hints Hints.__ior__ (self, Hints f)

Hints Hints.__ixor__ (self, Hints f)

bool Hints.__ne__ (self, Hints f)

Hints Hints.__or__ (self, Hints f)

Hints Hints.__or__ (self, int f)

Hints Hints.__xor__ (self, Hints f)

Hints Hints.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-effectparameter.html0000644000076500000240000002544412536324524023016 0ustar philstaff00000000000000 Phonon.EffectParameter Class Reference
  Home · All Classes · Modules

Phonon.EffectParameter Class Reference
[phonon module]

The EffectParameter class describes one parameter of an effect. More...

Types

  • enum Hint { ToggledHint, LogarithmicHint, IntegerHint }
  • class Hints

Methods

Special Methods


Detailed Description

The EffectParameter class describes one parameter of an effect.

You fetch the parameters of an Effect with Effect.parameters().

     QList<Phonon.EffectParameter> parameters = effect->parameters();

     foreach(Phonon.EffectParameter parameter, parameters) {
         // Do something with parameter
     }

To describe itself, an effect parameter gives a name() and possibly description() (depending on the backend used). These are suited to present the effect parameter to the user of a Phonon application.

Note that effects are created by the backend, and that their name and descriptions may vary.

The value of an effect parameter is stored in a QVariant, of which type() is usually int or double.

The value is retrieved with Effect.parameterValue() and set with setParameterValue() - both of which takes the EffectParameter as argument. Note that not all effect parameters support setting of their value.

You get the values a parameter can take with possibleValues(); an empty list is returned if the values are continuous.

A parameter may also specify default(), minimum(), and maximum() values. Values are returned as QVariants. If the parameter does not have the requested value, an QVariant.Invalid invalid QVariant is returned from these functions.

The EffectWidget provides a widget with which one can control the parameters of an Effect.

     Phonon.EffectWidget *effectWidget = new Phonon.EffectWidget(effect);

Type Documentation

EffectParameter.Hint

Only for backend developers:

Flags to set the return values of isToggleControl(), isLogarithmicControl(), isIntegerControl(), isBoundedBelow() and isBoundedAbove(). The values of the flags correspond to the values used for LADSPA effects.

Constant Value Description
Phonon.EffectParameter.ToggledHint 0x04 If this hint is set it means that the control has only two states: zero and non-zero (see isToggleControl()).
Phonon.EffectParameter.LogarithmicHint 0x10 LADSPA's SAMPLE_RATE hint needs to be translated by the backend to normal bounds, as the backend knows the sample rate - and the frontend doesn't (see isLogarithmicControl()).
Phonon.EffectParameter.IntegerHint 0x20 See isIntegerControl().

The Hints type is a typedef for QFlags<Hint>. It stores an OR combination of Hint values.


Method Documentation

EffectParameter.__init__ (self, int parameterId, QString name, Hints hints, QVariant defaultValue, QVariant min = QVariant(), QVariant max = QVariant(), list-of-QVariant values = [], QString description = QString())

Constructs a copy of the other effect parameter.

EffectParameter.__init__ (self, EffectParameter rhs)

QVariant EffectParameter.defaultValue (self)

The default value.

QString EffectParameter.description (self)

The parameter may come with a description (LADSPA doesn't have a field for this, so don't expect many effects to provide a description).

The description can be used for a tooltip or WhatsThis help.

Returns A text describing the parameter.

bool EffectParameter.isLogarithmicControl (self)

Returns whether the parameter should be displayed using a logarithmic scale. This is particularly useful for frequencies and gains.

QVariant EffectParameter.maximumValue (self)

The maximum value to be used for the control to edit the parameter.

If the returned QVariant is invalid the value is not bounded from above.

QVariant EffectParameter.minimumValue (self)

The minimum value to be used for the control to edit the parameter.

If the returned QVariant is invalid the value is not bounded from below.

QString EffectParameter.name (self)

The name of the parameter. Can be used as the label.

Returns A label for the parameter.

list-of-QVariant EffectParameter.possibleValues (self)

The possible values to be used for the control to edit the parameter.

if the value of this parameter is to be picked from predefined values this returns the list (otherwise it returns an empty QVariantList).

Type EffectParameter.type (self)

Returns the parameter type.

Common types are QVariant.Int, QVariant.Double, QVariant.Bool and QVariant.String. When QVariant.String is returned you get the possible values from possibleValues.

int EffectParameter.__hash__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-effectwidget.html0000644000076500000240000000674512536324524022324 0ustar philstaff00000000000000 Phonon.EffectWidget Class Reference
  Home · All Classes · Modules

Phonon.EffectWidget Class Reference
[
phonon module]

The EffectWidget class provides a widget to control the parameters of an Effect. More...

Inherits QWidget.

Methods

  • __init__ (self, Effect effect, QWidget parent = None)

Detailed Description

The EffectWidget class provides a widget to control the parameters of an Effect.

The EffectWidget class provides a widget, with which an effects parameters can be controlled. The widget does not have an API, and is constructed with the Effect, of which parameters should be controlled.

     Phonon.Effect *effect = new Phonon.Effect(effectDescription);
     path.insertEffect(effect);

     Phonon.EffectWidget *effectWidget = new Phonon.EffectWidget(effect);
     effectWidget->show();

The following image shows an example of an effect widget.

Note that some audio effects do not have parameters, and the widget will then not show() at all.


Method Documentation

EffectWidget.__init__ (self, Effect effect, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-mediacontroller-features.html0000644000076500000240000001436612536324524024661 0ustar philstaff00000000000000 Phonon.MediaController.Features Class Reference
  Home · All Classes · Modules

Phonon.MediaController.Features Class Reference
[phonon module]

Methods

Special Methods


Detailed Description

Feature may be used whenever Features is expected.


Method Documentation

Features.__init__ (self, Features)

Features.__init__ (self, int)

Features.__init__ (self)

Features Features.__and__ (self, int mask)

int Features.__bool__ (self)

bool Features.__eq__ (self, Features f)

Features Features.__iand__ (self, int mask)

int Features.__int__ (self)

Features Features.__invert__ (self)

Features Features.__ior__ (self, Features f)

Features Features.__ixor__ (self, Features f)

bool Features.__ne__ (self, Features f)

Features Features.__or__ (self, Features f)

Features Features.__or__ (self, int f)

Features Features.__xor__ (self, Features f)

Features Features.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-mediacontroller.html0000644000076500000240000004524312536324524023043 0ustar philstaff00000000000000 Phonon.MediaController Class Reference
  Home · All Classes · Modules

Phonon.MediaController Class Reference
[phonon module]

The MediaController class controls optional features of a media file/device. More...

Inherits QObject.

Types

Methods

Qt Signals


Detailed Description

The MediaController class controls optional features of a media file/device.

Some media sources have content that the MediaObject does not provide control over, for instance, chapters in a DVD file. The functionality the media controller offers is dependent on the type of media source that is played back. Commonly, the media controller allows you to:

  • Navigate between chapters.
  • Navigate between titles.
  • Select between angles.

The Feature enum explains these terms in more detail, and their context in playback of CD and DVD.

The media controller keeps a MediaObject, of which media source is played back. You can still call the media object's functions, e.g., stop(); this is all handled correctly by the media controller. You have the option of letting the media controller play all titles of a source in sequence by setting the autoplay titles option.

To start a playback using a media object, you call play() on the media object. To play a specific title, use setCurrentTitle() and then call play().

Warning: The Phonon.MediaController class is not yet supported by Qt backends.


Type Documentation

MediaController.Feature

The values of this enum are interpreted differently depending on the type of media source, e.g., DVD or CD. We give examples for these sources.

Constant Value Description
Phonon.MediaController.Angles 1 In the VOB (DVD) format, it is possible to to give several video streams of the same scene, each of which displays the scene from a different angle. The DVD viewer can then change between these angles.
Phonon.MediaController.Chapters 2 In the VOB format, chapters are points in a single video stream that can be played and seeked to separately.
Phonon.MediaController.Titles 4 On a CD, a title is a separate sound track. On DVD, a title is a separate VOB file.

The Features type is a typedef for QFlags<Feature>. It stores an OR combination of Feature values.


Method Documentation

MediaController.__init__ (self, MediaObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new MediaController with the media object (parent) to be used by the media controller.

See also MediaObject and Feature.

bool MediaController.autoplayTitles (self)

Returns true if titles will automatically be played when the media is played; otherwise returns false.

The media controller will play the titles of the media source in sequence when the media object's play() function is called. If the autoplay option is disabled, the media object will play the MediaController.currentTitle(){current title} and then finish the playback.

See also setAutoplayTitles() and currentTitle().

int MediaController.availableAngles (self)

Returns the available angles that is available for the current media source.

See also Feature.

list-of-Phonon.AudioChannelDescription MediaController.availableAudioChannels (self)

int MediaController.availableChapters (self)

Returns the number of chapters the current media source contains.

See also Feature.

list-of-Phonon.SubtitleDescription MediaController.availableSubtitles (self)

int MediaController.availableTitles (self)

Returns the number of titles that the current media source contains.

See also Feature.

int MediaController.currentAngle (self)

Returns the angle that is currently used.

See also setCurrentAngle() and Feature.

AudioChannelDescription MediaController.currentAudioChannel (self)

int MediaController.currentChapter (self)

Returns the chapter that is currently being played back.

See also setCurrentChapter() and Feature.

SubtitleDescription MediaController.currentSubtitle (self)

int MediaController.currentTitle (self)

Returns the title that is currently played back.

The current title is 0 (the first) by default.

See also setCurrentTitle() and Feature.

MediaController.nextTitle (self)

This method is also a Qt slot with the C++ signature void nextTitle().

Skips to the next title.

If it was playing before the title change it will start playback on the next title if autoplayTitles is enabled.

See also Feature.

MediaController.previousTitle (self)

This method is also a Qt slot with the C++ signature void previousTitle().

Skips to the previous title.

If it was playing before the title change it will start playback on the previous title if autoplayTitles is enabled.

See also Feature.

MediaController.setAutoplayTitles (self, bool)

This method is also a Qt slot with the C++ signature void setAutoplayTitles(bool).

Sets the titles to play automatically when the media is played if enable is true; otherwise disables this option.

The media controller will play the titles of the media source in sequence when the media object's play() function is called. If the autoplay option is disabled, the media object will play the MediaController.currentTitle(){current title} and then finish the playback.

See also autoplayTitles() and currentTitle().

MediaController.setCurrentAngle (self, int angleNumber)

This method is also a Qt slot with the C++ signature void setCurrentAngle(int).

Sets the current angle to the given angleNumber if the media file or device supports navigation by angle number.

See also currentAngle() and Feature.

MediaController.setCurrentAudioChannel (self, AudioChannelDescription stream)

MediaController.setCurrentChapter (self, int chapterNumber)

This method is also a Qt slot with the C++ signature void setCurrentChapter(int).

Sets the current chapter to the given chapterNumber if the media file or device supports navigation by chapter number.

See also currentChapter() and Feature.

MediaController.setCurrentSubtitle (self, SubtitleDescription stream)

MediaController.setCurrentTitle (self, int titleNumber)

This method is also a Qt slot with the C++ signature void setCurrentTitle(int).

Skips to the given title titleNumber.

If it was playing before the title change it will start playback on the new title if autoplayTitles is enabled.

See also currentTitle() and Feature.

Features MediaController.supportedFeatures (self)


Qt Signal Documentation

void angleChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the current angle changes. The new angle number is given by angleNumber.

See also Feature.

void availableAnglesChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the number of available angles changes. The new number of available angles is given by availableAngles.

See also Feature.

void availableAudioChannelsChanged ()

This is the default overload of this signal.

void availableChaptersChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the number of available chapters changes. The new number of available chapters is given by availableChapters.

See also Feature.

void availableSubtitlesChanged ()

This is the default overload of this signal.

void availableTitlesChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the number of available titles changes. The new number of available titles is given by availableTitles.

See also Feature.

void chapterChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the current chapter changes. The new chapter number is given by chapterNumber.

See also Feature.

void titleChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the current title changes. The new title number is given by titleNumber.

See also Feature.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-medianode.html0000644000076500000240000001620412536324524021600 0ustar philstaff00000000000000 Phonon.MediaNode Class Reference
  Home · All Classes · Modules

Phonon.MediaNode Class Reference
[phonon module]

The MediaNode class is the base class for all nodes in a media graph. More...

Inherited by AbstractAudioOutput, AbstractVideoOutput, Effect and MediaObject.

Methods


Detailed Description

The MediaNode class is the base class for all nodes in a media graph.

In all phonon applications, one builds a media graph consisting of MediaNodes. The graph will take multimedia content, e.g., from a file, as input. After its nodes have processed the multimedia, the graph will output the media again, e.g., to a sound card.

The multimedia content is streamed over Paths between the nodes in the graph. You can query the paths that are connected to a media node with inputPaths() and outputPaths().

You can check whether the node is implemented by the current backend by calling isValid(). This does not guarantee that an instance of the class works as expected, but that the backend has implemented functionality for the class.

Currently, Phonon has four media nodes: MediaObject, AudioOutput, VideoWidget, and Effect. Please refer to their class descriptions for details about their usage, and to find out which nodes can be connected to each other. See also Building Graphs in Phonon's overview document.

Two nodes are connected to each other using the Phonon.createPath() or Path.insertEffect() functions (only Phonon.Effects use insertEffect()). We show a code example below, in which we build a media graph for video playback and then query its media nodes for their Paths:

     Phonon.MediaObject *mediaObject = new Phonon.MediaObject;
     Phonon.AudioOutput *audioOutput = new Phonon.AudioOutput;
     Phonon.VideoWidget *videoWidget = new Phonon.VideoWidget;

     Phonon.createPath(mediaObject, audioOutput);
     Phonon.createPath(mediaObject, videoWidget);

     QList<Phonon.Path> inputPaths =
         audioOutput->inputPaths();   // inputPaths = [ mediaObject ]
     QList<Phonon.Path> outputPaths =
         mediaObject->outputPaths(); // outputPaths = [ audioOutput, videoWidget ]

When you create a Phonon application, you will likely build the graph yourself. This makes isValid() the most useful function of this class. The other two functions help navigate the graph, which you do not need to do as you created the nodes yourself.


Method Documentation

list-of-Phonon.Path MediaNode.inputPaths (self)

Returns the paths that inputs multimedia to this media node.

See also outputPaths().

bool MediaNode.isValid (self)

Returns true if the backend provides an implementation of this class; otherwise returns false.

This does not guarantee that instances of the class works as expected, but that the backend has implemented the functionality for this class. For instance, Qt's GStreamer backend will return true for instances of the AudioOutput class, even if there is a problem with GStreamer and it could not play sound.

list-of-Phonon.Path MediaNode.outputPaths (self)

Returns the paths to which this media node outputs media.

See also inputPaths().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-mediaobject.html0000644000076500000240000011501012536324524022114 0ustar philstaff00000000000000 Phonon.MediaObject Class Reference
  Home · All Classes · Modules

Phonon.MediaObject Class Reference
[phonon module]

The MediaObject class provides an interface for media playback. More...

Inherits QObject and MediaNode.

Methods

Qt Signals


Detailed Description

The MediaObject class provides an interface for media playback.

The media object manages a MediaSource, which supplies the media object with multimedia content, e.g., from a file. A playback in Phonon is always started by calling the play() function.

The state of play (play, pause, stop, seek) is controlled by the media object, and you can also query the current state(). It keeps track of the playback position in the media stream, and emits the tick() signal when the current position in the stream changes.

Notice that most functions of this class are asynchronous, so you cannot rely on that a state is entered after a function call before you receive the stateChanged() signal. The description of the State enum gives a description of the different states.

Before play() is called, the media object should be connected to output nodes, which outputs the media to the underlying hardware. The output nodes required are dependent on the contents of the multimedia file that is played back. Phonon has currently two output nodes: the AudioOutput for audio content and VideoWidget for video content. If a MediaSource contains both audio and video, both nodes need to be connected to the media object.

     Phonon.MediaObject *mediaObject = new Phonon.MediaObject(this);

     Phonon.VideoWidget *videoWidget = new Phonon.VideoWidget(this);
     Phonon.createPath(mediaObject, videoWidget);

     Phonon.AudioOutput *audioOutput =
         new Phonon.AudioOutput(Phonon.VideoCategory, this);
     Phonon.createPath(mediaObject, audioOutput);
     mediaObject->play();

The media object can queue sources for playback. When it has finished to play one source, it will start playing the next in the queue; the new source is then removed from the queue. The queue can be altered at any time.

 media->setCurrentSource(":/sounds/startsound.ogg");
 media->enqueue("/home/username/music/song.mp3");
 media->enqueue(":/sounds/endsound.ogg");

You can also make use of the aboutToFinish() signal, which is guaranteed to be emitted in time for altering the queue.

   media->setCurrentSource(":/sounds/startsound.ogg");
   connect(media, SIGNAL(aboutToFinish()), SLOT(enqueueNextSource()));
 }

 void enqueueNextSource()
 {
   media->enqueue("/home/username/music/song.mp3");
 }

When playback is finishing, i.e., when a media source has been played to the end and the queue is empty, several signals are emitted. First, the media object will emit aboutToFinish() - shortly before the playback has finished - and then finished(). The stateChanged() signal will also be emitted with PausedState, which is the state the media object takes when the playback is finished. If you wish to enter another state, you can connect a slot to finished() and set a new state there.

The media object resolves the meta information, such as title, artist, and album. The meta data is not resolved immediately after a new source is provided, but will be resolved before the object leaves the LoadingState. The data is queried by string keys - which should follow the Ogg Vorbis specification http://xiph.org/vorbis/doc/v-comment.html - or by using the MetaData enum. The data available will depend on the type and content of the individual media files. metaDataChanged() will be emitted when the media object has resolved new meta data.

Errors encountered during playback and loading of media sources are reported by emitting a state changed signal with ErrorState. The severity of the error can be queried by the ErrorType. With a NormalError, it might be possible to continue the playback, for instance, if only audio playback fails for a media source which also has video. A FatalError indicates that Phonon cannot continue playback of the current source, but it is possible to try with a different one. A user readable error message is given by errorString().


Method Documentation

MediaObject.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

MediaObject.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Stops and removes all playing and enqueued media sources.

See also setCurrentSource().

MediaObject.clearQueue (self)

Clears the queue of media sources.

See also queue() and enqueue().

MediaSource MediaObject.currentSource (self)

Returns the current media source, i.e., the media source that is being played back. The current source is either set with setCurrentSource() or taken from the media queue() when a media source has finished playing.

See also setCurrentSource().

int MediaObject.currentTime (self)

Returns the current time (in milliseconds), i.e., position in the media stream, of the file currently being played.

See also tick(), totalTime(), and remainingTime().

MediaObject.enqueue (self, MediaSource source)

Appends source to the queue.

You can use this function to provide the next source after the aboutToFinish() signal has been emitted.

See also aboutToFinish(), setQueue(), and clearQueue().

MediaObject.enqueue (self, list-of-Phonon.MediaSource sources)

Appends multiple sources to the queue.

See also setQueue() and clearQueue().

MediaObject.enqueue (self, list-of-QUrl urls)

Appends the URLs in urls to the media source queue.

The function will create MediaSources from the QUrls, and append these to the queue.

See also setQueue() and clearQueue().

QString MediaObject.errorString (self)

Returns a human-readable description of the last error that occurred. The strings given may vary between backends.

The error description can be used to give a message to the user - and the developer - when the stateChanged() signal is emitted with ErrorState.

Qt Backends

On Windows, Qt fetches its error messages from the DirectShow backend. This usually includes an error number, which can be looked up in the DirectShow documentation: http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dx81_c/directx_cpp/htm/errorandsuccesscodes.asp.

On Linux and Mac, the error strings are not fetched directly from the backend, but are created in the backend.

See also Phonon.ErrorState and stateChanged().

ErrorType MediaObject.errorType (self)

Tells your program what to do about the last error that occurred. Use this function after receiving a stateChanged() signal with ErrorState.

See also Phonon.ErrorType, Phonon.ErrorState, and stateChanged().

bool MediaObject.hasVideo (self)

Check whether the current media source includes a video stream.

Warning: This information is not resolved immediately after a media object gets a new source. Listen to the hasVideoChanged() signal instead.

   connect(media, SIGNAL(hasVideoChanged(bool)), hasVideoChanged(bool));
   media->setCurrentSource("somevideo.avi");
   media->hasVideo(); // returns false;
 }

 void hasVideoChanged(bool b)
 {
   // b == true
   media->hasVideo(); // returns true;
 }

Returns true if the media contains video data; otherwise, returns false.

See also hasVideoChanged().

bool MediaObject.isSeekable (self)

Check whether it is possible to seek, i.e., change the playback position in the media stream.

Warning: This information is not solved immediately after the media object gets a new media source. The hasVideoChanged() signal is emitted after this information is available.

   connect(media, SIGNAL(hasVideoChanged(bool)), hasVideoChanged(bool));
   media->setCurrentSource("somevideo.avi");
   media->hasVideo(); // returns false;
 }

 void hasVideoChanged(bool b)
 {
   // b == true
   media->hasVideo(); // returns true;
 }

Returns true if the current media may be seeked; otherwise, returns false.

See also seekableChanged().

QStringList MediaObject.metaData (self, QString key)

Returns the strings associated with the given key.

Backends should use the keys specified in the Ogg Vorbis documentation: http://xiph.org/vorbis/doc/v-comment.html

Therefore the following should work with every backend:

Note that meta data is not resolved before the metaDataChanged() signal is emitted.

A typical usage looks like this:

 setMetaArtist(media->metaData("ARTIST"));
 setMetaAlbum(media->metaData("ALBUM"));
 setMetaTitle(media->metaData("TITLE"));
 setMetaDate(media->metaData("DATE"));
 setMetaGenre(media->metaData("GENRE"));
 setMetaTrack(media->metaData("TRACKNUMBER"));
 setMetaComment(media->metaData("DESCRIPTION"));

QStringList MediaObject.metaData (self, MetaData key)

Returns the strings associated with the given key.

Same as above except that the keys are defined in the Phonon.MetaData enum.

See also metaDataChanged().

dict-of-QString-list-of-QString MediaObject.metaData (self)

Returns all meta data in a multi map.

See also metaDataChanged().

MediaObject.pause (self)

This method is also a Qt slot with the C++ signature void pause().

Requests playback to pause, and the media object to enter the PausedState. If it was paused already, nothing changes.

This function is asynchronous and the media might not be paused immediately.

See also play(), stop(), and stateChanged().

MediaObject.play (self)

This method is also a Qt slot with the C++ signature void play().

Requests playback of the media data to start.

Playback starts when the stateChanged() signal is emitted with PlayingState.

If the media object is already in a PlayingState, nothing happens.

See also stop(), pause(), and stateChanged().

int MediaObject.prefinishMark (self)

list-of-Phonon.MediaSource MediaObject.queue (self)

Returns the queued media sources.

This does list does not include the current source, returned by currentSource().

See also setQueue() and enqueue().

int MediaObject.remainingTime (self)

Get the remaining time (in milliseconds) of the file currently being played.

Returns the remaining time in milliseconds.

See also totalTime(), currentTime(), and totalTimeChanged().

MediaObject.seek (self, int time)

This method is also a Qt slot with the C++ signature void seek(qint64).

Requests a seek to the time indicated, specified in milliseconds.

You can only seek if state() is PlayingState, BufferingState or PausedState.

The call is asynchronous, so currentTime can still be the old value right after this method was called. If all you need is a slider that shows the current position and allows the user to seek, use the class SeekSlider.

If the current source of the media object is not seekable, calls to this functions do nothing.

See also SeekSlider and tick().

MediaObject.setCurrentSource (self, MediaSource source)

Set the media source the MediaObject should use.

After the media object receives a new source, it will enter the LoadingState. When it is ready to play, it enters the StoppedState unless another state has been requested, e.g., by calling play().

source is the MediaSource object to the media data. You can just as well use a QUrl or QString (for a local file) here.

We show an example:

 QUrl url("http://www.example.com/music.ogg");
 media->setCurrentSource(url);

See also currentSource() and MediaSource.

MediaObject.setPrefinishMark (self, int msecToEnd)

MediaObject.setQueue (self, list-of-Phonon.MediaSource sources)

Set the sources to play when the current source has finished.

This function will overwrite the current queue.

See also clearQueue() and enqueue().

MediaObject.setQueue (self, list-of-QUrl urls)

Set the urls to play when the current media has finished.

This function overwrites the current queue.

See also clearQueue() and enqueue().

MediaObject.setTickInterval (self, int newTickInterval)

This method is also a Qt slot with the C++ signature void setTickInterval(qint32).

MediaObject.setTransitionTime (self, int msec)

State MediaObject.state (self)

Returns the current Phonon.State of the object.

See also Phonon.State and stateChanged().

MediaObject.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Requests playback to stop, and the media object to enter the StoppedState. If it was stopped before nothing changes.

This function is asynchronous and the media might not be stopped immediately.

See also play(), pause(), and stateChanged().

int MediaObject.tickInterval (self)

int MediaObject.totalTime (self)

Get the total time (in milliseconds) of the file currently being played.

Returns the total time in milliseconds.

Warning: The total time is not defined before the media object enters the LoadingState.

See also totalTimeChanged().

int MediaObject.transitionTime (self)


Qt Signal Documentation

void aboutToFinish ()

This is the default overload of this signal.

Emitted before the playback of the whole queue ends. When this signal is emitted you still have time to enqueue() a new MediaSource, so that playback continues.

If you need a signal to be emitted at a specific time before playback is finished, you should use the prefinishMarkReached() signal instead.

See also enqueue(), prefinishMark, and prefinishMarkReached().

void bufferStatus (int)

This is the default overload of this signal.

Provides information about the status of the buffer.

When a MediaObject is in the BufferingState, it will send this signal regularly. percentFilled is a number between 0 and 100 telling you how much the buffer is filled.

You can use this signal to show a progress bar to the user when in BufferingState:

 progressBar->setRange(0, 100); // this is the default
 connect(media, SIGNAL(bufferStatus(int)), progressBar, SLOT(setValue(int)));

Note that the BufferingState is commonly used when waiting for data over a network connection, but this might not be true for all backends.

void currentSourceChanged (const Phonon::MediaSource&)

This is the default overload of this signal.

Emitted when the MediaObject fetches a new MediaSource from the queue() and before it enters the LoadingState for the new source. The media object will take a new source from the queue() when it has finished the playback of the current source.

newSource is the source that starts to play at the time the signal is emitted.

void finished ()

This is the default overload of this signal.

Emitted when the object has finished playback. It is not emitted if you call stop(), pause() or load(). It is emitted only when the current media source has finished playing and the media queue() is empty, or when a fatal error occurs.

Warning: This signal is not emitted when the current source has finished and there's another source in the queue. It is only emitted when the queue is empty.

See also currentSourceChanged(), aboutToFinish(), and prefinishMarkReached().

void hasVideoChanged (bool)

This is the default overload of this signal.

Emitted whenever the return value of hasVideo() changes, i.e., the media source being played back contains video.

Normally you'll check hasVideo() first and then let this signal tell you whether video is available now or not. That way you don't have to poll hasVideo().

hasVideo is true when the stream contains video and adding a VideoWidget will show a video, and false if there is no video data in the stream and adding a VideoWidget will show an empty (black) VideoWidget.

void metaDataChanged ()

This is the default overload of this signal.

This signal is emitted when the media object has resolved new meta data. This will happen before the media object leaves the LoadingState after a new source has been set.

This signal is not emitted when the media object removes the current data, i.e., when a new source is set or an error has occurred. If you need to know this, you can listen for the ErrorState, and connect to the currentSourceChanged() signal.

You can get the new meta data with the metaData methods.

See also metaData(), currentSourceChanged(), stateChanged(), and Phonon.State.

void prefinishMarkReached (qint32)

This is the default overload of this signal.

Emitted when there are only msecToEnd milliseconds left of playback.

Warning: This signal is not emitted when there is another source in the queue. It is only emitted when the queue is empty.

See also setPrefinishMark(), prefinishMark(), aboutToFinish(), and finished().

void seekableChanged (bool)

This is the default overload of this signal.

This signal is emitted when the media object's ability to seek in the media stream changes. isSeekable is true if it is possible to seek(); otherwise, it is false.

Change in the ability to seek in the stream usually happens when the current source changes or when an error occurs.

Normally you'll check isSeekable() after setting a new media source, and then let this signal tell you when seeking is possible. That way you don't have to poll isSeekable().

void stateChanged (Phonon::State,Phonon::State)

This is the default overload of this signal.

This signal is emitted when the state of the MediaObject has changed. The oldstate and newstate parameters indicate the previous state and current state of the media object.

If you are only interested in the new state of the media object, you can connect this signal to a slot that accepts only one State argument.

void tick (qint64)

This is the default overload of this signal.

This signal is emitted in intervals defined by the tickInterval property. The current position of the media object in the stream is given by the time parameter. The time is specified in milliseconds.

See also tickInterval.

void totalTimeChanged (qint64)

This is the default overload of this signal.

This signal is emitted as soon as the total time of the media file is known or has changed. For most non-local media data the total time of the media can only be known after some time. At that time the totalTime function can not return useful information. You have to wait for this signal to know the real total time.

newTotalTime is the length of the media file in milliseconds.

See also totalTime().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-mediasource.html0000644000076500000240000003160212536324524022152 0ustar philstaff00000000000000 Phonon.MediaSource Class Reference
  Home · All Classes · Modules

Phonon.MediaSource Class Reference
[phonon module]

The MediaSource class provides multimedia data for media objects. More...

Types

  • enum Type { Invalid, LocalFile, Url, Disc, Stream, Empty }

Methods

Special Methods

  • bool __eq__ (self, MediaSource rhs)
  • bool __ne__ (self, MediaSource rhs)

Detailed Description

The MediaSource class provides multimedia data for media objects.

The MediaSource class manages a source of multimedia content, such as a music or video file, of which data is given to a MediaObject.

The media source knows how fetch its data from several sources, e.g., from files, a QIODevice, or a CD. The possible source types are described by the Type enum. The type of the source is set by the media source itself, and is dependent on the constructor used to create it. Note that it is possible to provide data from any source by implementing a QIODevice.

The class has several functions to acquire information about the source it manages, e.g., fileName() and url(). The return from these functions are dependent on the type() of the media source.

Normally, a programmer does not need to be concerned with media sources. It's constructors are implicit, so one can, for instance, send an URL or filename directly to the constructors of the MediaObject.

 MediaObject m;
 QString fileName("/home/foo/bar.ogg");
 QUrl url("http://www.example.com/stream.mp3");
 QBuffer *someBuffer;
 m.setCurrentSource(fileName);
 m.setCurrentSource(url);
 m.setCurrentSource(someBuffer);
 m.setCurrentSource(Phonon.Cd);

A MediaSource object cannot be reused for another multimedia source. It is possible to play the same source again, and also stop and start a non-seekable media source, such as a radio stream, with the same MediaSource object.

Qt Backends

Currently, Qt's backends support files in local and remote locations. Support for other sources, such as CD/DVD, are planned for the future.


Type Documentation

MediaSource.Type

Identifies the type of media described by the MediaSource object.

Constant Value Description
Phonon.MediaSource.Invalid -1 The MediaSource object does not describe any valid source.
Phonon.MediaSource.LocalFile 0 The MediaSource object describes a local file.
Phonon.MediaSource.Url 1 The MediaSource object describes an URL, which can be either a local file or a file on the network.
Phonon.MediaSource.Disc 2 The MediaSource object describes a disc, e.g., a CD.
Phonon.MediaSource.Stream 3 The MediaSource object describes a data stream. This is the type used for QIODevices. Note that a stream opened with a QUrl, will still be of the Url type.
Phonon.MediaSource.Empty 4 The media source doesn't have a source.

See also MediaSource.type().


Method Documentation

MediaSource.__init__ (self, QString fileName)

Creates a MediaSource object for the file specified by fileName. You can also use this constructor with Qt resources

MediaSource.__init__ (self, QUrl url)

MediaSource.__init__ (self, DiscType discType, QString deviceName = QString())

Creates a MediaSource object for a the URL specified by url.

If the multimedia content you would like to play back is on a remote network location, you should use this constructor; though, it also possible to specify an URL to a local file.

See also QUrl.

MediaSource.__init__ (self, QIODevice ioDevice)

Creates a MediaSource object for the type of disc specified by discType in the named device referred to by deviceName.

Note: deviceName is a platform dependent device name. It can be useful to specify this if the computer has more than one CD drive. On KDE, it is recommended to use the Solid hardware discovery framework to retrieve the device name in a portable way.

MediaSource.__init__ (self, MediaSource rhs)

bool MediaSource.autoDelete (self)

Returns the setting of the auto-delete option. The default is false.

See also setAutoDelete().

QString MediaSource.deviceName (self)

Returns the device name of the MediaSource if type() == Disc; otherwise returns QString().

See also type().

DiscType MediaSource.discType (self)

Returns the disc type of the MediaSource if type() == Disc; otherwise returns NoDisc.

See also type().

QString MediaSource.fileName (self)

Returns the file name of the MediaSource if type() == LocalFile; otherwise, returns QString().

See also type().

MediaSource.setAutoDelete (self, bool enable)

If enable is true, the media source will take ownership of the object passed in the MediaSource's constructor object that was passed in the constructor; otherwise, the programmer is responsible for deletion of this object.

This setting is false by default. If you enable it, you should only access the stream or device as long as you keep the media source object around. As long as you keep the media source wrapping the stream or device, the object will not get deleted.

See also autoDelete().

Type MediaSource.type (self)

Returns the type of the MediaSource (depends on the constructor that was used).

See also Type.

QUrl MediaSource.url (self)

Returns the URL of the MediaSource if type() == URL or type() == LocalFile; otherwise returns QUrl().

See also type().

bool MediaSource.__eq__ (self, MediaSource rhs)

bool MediaSource.__ne__ (self, MediaSource rhs)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-module.html0000644000076500000240000005323712536324470021147 0ustar philstaff00000000000000 phonon Module
  Home · All Classes · Modules

phonon Module

Phonon is a cross-platform multimedia framework that enables the use of audio and video content in PyQt applications. More...

Types


Detailed Description

Phonon is a cross-platform multimedia framework that enables the use of audio and video content in Qt applications. The Phonon namespace contains a list of all classes, functions and namespaces provided by the module.

To import the module use, for example, the following statement:

from PyQt4 import phonon

The Phonon module is part of the Qt Desktop Edition and the Qt Open Source Edition.

License Information

This file is part of the KDE project

Copyright (C) 2005-2007 Matthias Kretz <kretz@kde.org>

Copyright (C) 2007-2008 Trolltech ASA. <thierry.bastian@trolltech.com>

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License version 2 as published by the Free Software Foundation.

This library 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 Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Phonon Overview

Introduction

Multimedia is content that combines multiple forms of media information, such as audio, text, animations and video, within a single stream of data, and which is often used to provide a basic level of interactivity in applications.

Qt uses the Phonon multimedia framework to provide functionality for playback of the most common multimedia formats.The media can be read from files or streamed over a network, using an URL to a file.

In this overview, we take a look at the main concepts of Phonon. We also explain the architecture, examine the core API classes, and show examples on how to use the classes provided.

Architecture

Phonon has tree basic concepts: media objects, sinks, and paths. A media object manages a media source, for instance, a music file; it provides simple playback control, such as starting, stopping, and pausing the playback. A sink is an output device, which can play back the media, e.g., video on a widget using a graphics card, or sound using a sound card. Paths are used to connect Phonon objects, i.e., a media object and a sink, in a graph.

When using Phonon for playback, one builds a graph, of which each node takes a media stream as input, processes it, and then outputs it again, either to another node in the graph, or to an output device, such as a sound card. The playback is started by a media object. As an example, we show a media graph for an audio stream:

The playback is started and managed by the media object, which send the media stream to any sinks connected to it by a path. The sink then plays the stream back, usually though a sound card.

All nodes in the graph are synchronized by the framework, meaning that if more than one sink is connected to the same media object, the framework will handle the synchronization between the sinks; this happens for instance when a media source containing video with sound is played back. More on this later.

Media Objects

The media object, an instance of the MediaObject class, knows how to playback media, and provides control over the state of the playback. For video playback, for instance, a media object can start, stop, fast forward, and rewind. You may think of the object as a simple media player. It can also queue media for playback.

The media data is provided by a media source, which is encapsulated by the media object. The media source is a separate object, an instance of MediaSource, in Phonon, and not part of the graph itself. The source will supply the media object with raw data. The data can be read from files and streamed over a network. The contents of the source will be interpreted by the media object.

A media object is always instantiated with the default constructor and then supplied with a media source. Concrete code examples are given later in this overview.

As a complement to the media object, Phonon also provides MediaController, which provides control over features that are optional for a given media. For instance, for chapters, menus, and titles of a vob file will be features managed by a MediaController.

Sinks

A sink is a node that can output media from the graph, i.e., it does not send its output to other nodes. A sink is usually a rendering device.

The input of sinks in a Phonon media graph comes from a MediaObject, though it might have been processed through other nodes on the way.

While the MediaObject controls the playback, the sink has basic controls for manipulation of the media. With an audio sink, for instance, you can control the volume and mute the sound, i.e., it represents a virtual audio device. Another example is the VideoWidget, which can render video on a QWidget and alter the brightness, hue, and scaling of the video.

As an example we give an image of a graph used for playing back a video file with sound.

Processors

Phonon does not allow manipulation of media streams directly, i.e., one cannot alter a media stream's bytes programmatically after they have been given to a media object. We have other nodes to help with this: processors, which are placed in the graph on the path somewhere between the media object and its sinks. In Phonon, processors are subclasses of the Effect class.

When inserted into the rendering process, the processor will alter the media stream, and will be active as long as it is part of the graph. To stop, it needs to be removed.

The Effects may also have controls that affect how the media stream is manipulated. A processor applying a depth effect to audio, for instance, can have a value controlling the amount of depth. An Effect can be configured at any point in time.

Playback

In some common cases, it is not necessary to build a graph yourself.

Phonon has convenience functions for building common graphs. For playing an audio file, you can use the createPlayer() function. This will set up the necessary graph and return the media object node; the sound can then be started by calling its play() function.

     Phonon.MediaObject *music =
         Phonon.createPlayer(Phonon.MusicCategory,
                              Phonon.MediaSource("/path/mysong.wav"));
     music->play();

We have a similar solution for playing video files, the VideoPlayer.

     Phonon.VideoPlayer *player =
         new Phonon.VideoPlayer(Phonon.VideoCategory, parentWidget);
     player->play(url);

The VideoPlayer is a widget onto which the video will be drawn.

The .pro file for a project needs the following line to be added:

         QT += phonon

Phonon comes with several widgets that provide functionality commonly associated with multimedia players - notably SeekSlider for controlling the position of the stream, VolumeSlider for controlling sound volume, and EffectWidget for controlling the parameters of an effect. You can learn about them in the API documentation.

Building Graphs

If you need more freedom than the convenience functions described in the previous section offers you, you can build the graphs yourself. We will now take a look at how some common graphs are built. Starting a graph up is a matter of calling the play() function of the media object.

If the media source contains several types of media, for instance, a stream with both video and audio, the graph will contain two output nodes: one for the video and one for the audio.

We will now look at the code required to build the graphs discussed previously in the Architecture section.

Audio

When playing back audio, you create the media object and connect it to an audio output node - a node that inherits from AbstractAudioOutput. Currently, AudioOutput, which outputs audio to the sound card, is provided.

The code to create the graph is straight forward:

     Phonon.MediaObject *mediaObject = new Phonon.MediaObject(this);
     mediaObject->setCurrentSource(Phonon.MediaSource("/mymusic/barbiegirl.wav"));
     Phonon.AudioOutput *audioOutput =
         new Phonon.AudioOutput(Phonon.MusicCategory, this);
     Phonon.Path path = Phonon.createPath(mediaObject, audioOutput);

Notice that the type of media an input source has is resolved by Phonon, so you need not be concerned with this. If a source contains multiple media formats, this is also handled automatically.

The media object is always created using the default constructor since it handles all multimedia formats.

The setting of a Category, Phonon.MusicCategory in this case, does not affect the actual playback; the category can be used by KDE to control the playback through, for instance, the control panel.

The AudioOutput class outputs the audio media to a sound card, that is, one of the audio devices of the operating system. An audio device can be a sound card or a intermediate technology, such as DirectShow on windows. A default device will be chosen if one is not set with setOutputDevice().

The AudioOutput node will work with all audio formats supported by the back end, so you don't need to know what format a specific media source has.

For a an extensive example of audio playback, see the Phonon Music Player.

Audio Effects

Since a media stream cannot be manipulated directly, the backend can produce nodes that can process the media streams. These nodes are inserted into the graph between a media object and an output node.

Nodes that process media streams inherit from the Effect class. The effects available depends on the underlying system. Most of these effects will be supported by Phonon. See the Querying Backends for Support section for information on how to resolve the available effects on a particular system.

We will now continue the example from above using the Path variable path to add an effect. The code is again trivial:

     Phonon.Effect *effect =
         new Phonon.Effect(
             Phonon.BackendCapabilities.availableAudioEffects()[0], this);
     path.insertEffect(effect);

Here we simply take the first available effect on the system.

The effect will start immediately after being inserted into the graph if the media object is playing. To stop it, you have to detach it again using removeEffect() of the Path.

Video

For playing video, VideoWidget is provided. This class functions both as a node in the graph and as a widget upon which it draws the video stream. The widget will automatically chose an available device for playing the video, which is usually a technology between the Qt application and the graphics card, such as DirectShow on Windows.

The video widget does not play the audio (if any) in the media stream. If you want to play the audio as well, you will need an AudioOutput node. You create and connect it to the graph as shown in the previous section.

The code for creating this graph is given below, after which one can play the video with play().

     Phonon.MediaObject *mediaObject = new Phonon.MediaObject(this);

     Phonon.VideoWidget *videoWidget = new Phonon.VideoWidget(this);
     Phonon.createPath(mediaObject, videoWidget);

     Phonon.AudioOutput *audioOutput =
         new Phonon.AudioOutput(Phonon.VideoCategory, this);
     Phonon.createPath(mediaObject, audioOutput);

The VideoWidget does not need to be set to a Category, it is automatically classified to VideoCategory, we only need to assure that the audio is also classified in the same category.

The media object will split files with different media content into separate streams before sending them off to other nodes in the graph. It is the media object that determines the type of content appropriate for nodes that connect to it.

Backends

The multimedia functionality is not implemented by Phonon itself, but by a back end - often also referred to as an engine. This includes connecting to, managing, and driving the underlying hardware or intermediate technology. For the programmer, this implies that the media nodes, e.g., media objects, processors, and sinks, are produced by the back end. Also, it is responsible for building the graph, i.e., connecting the nodes.

The backends of Qt use the media systems DirectShow (which requires DirectX) on Windows, QuickTime on Mac, and GStreamer on Linux. The functionality provided on the different platforms are dependent on these underlying systems and may vary somewhat, e.g., in the media formats supported.

Backends expose information about the underlying system. It can tell which media formats are supported, e.g., AVI, mp3, or OGG.

A user can often add support for new formats and filters to the underlying system, by, for instance, installing the DivX codex. We can therefore not give an exact overview of which formats are available with the Qt backends.

Querying Backends for Support

As mentioned, Phonon depends on the backend to provide its functionality. Depending on the individual backend, full support of the API may not be in place. Applications therefore need to check with the backend if functionality they require is implemented. In this section, we take look at how this is done.

The backend provides the availableMimeTypes() and isMimeTypeAvailable() functions to query which MIME types the backend can produce nodes for. The types are listed as strings, which for any type is equal for any backend or platform.

The backend will emit a signal - Notifier.capabilitiesChanged() - if it's abilities have changed. If the available audio devices have changed, the Phonon.BackendCapabilities.Notifier.availableAudioOutputDevicesChanged() signal is emitted instead.

To query the actual audio devices possible, we have the availableAudioDevices() as mentioned in the Sinks section. To query information about the individual devices, you can examine its name(); this string is dependent on the operating system, and the Qt backends does not analyze the devices further.

The sink for playback of video does not have a selection of devices. For convenience, the VideoWidget is both a node in the graph and a widget on which the video output is rendered. To query the various video formats available, use isMimeTypeAvailable(). To add it to a path, you can use the Phonon.createPath() as usual. After creating a media object, it is also possible to call its hasVideo() function.

See also the Capabilities Example.

Installing Phonon

Windows

On Windows, Phonon requires DirectX version 9 or higher.

For Phonon application development, the platform and DirectX SDKs must be installed. The name of the platform SDK may very between Windows versions; on Vista, it is called Windows SDK.

Note that these SDKs must be placed before your compiler in the include path; though, this should be auto-detected and handled by Windows.

Linux

The Qt backend on Linux uses GStreamer (minimum version is 0.10), which must be installed on the system. It is a good idea to install every package available for GStreamer to get support for as many MIME types, and audio effects as possible. At a minimum, you need the GStreamer library and base plugins, which provides support for .ogg files. The package names may vary between Linux distributions; on Mandriva, they have the following names:

PackageDescription
libgstreamer0.10_0.10The GStreamer base library.
libgstreamer0.10_0.10-develContains files for developing applications with GStreamer.
libgstreamer-plugins-base0.10Contains the basic plugins for audio and video playback, and will enable support for ogg files.
libgstreamer-plugins-base0.10-develMakes it possible to develop applications using the base plugins.

Mac OS X

On Mac OS X, Qt uses QuickTime for its backend. The minimum supported version is 7.0.

Work in Progress

Phonon and its Qt backends, though fully functional for multimedia playback, are still under development. Functionality to come is the possibility to capture media and more processors for both music and video files.

Another important consideration is to implement support for storing media to files; i.e., not playing back media directly.

We also hope in the future to be able to support direct manipulation of media streams. This will give the programmer more freedom to manipulate streams than just through processors.

Currently, the multimedia framework supports one input source. It will be possible to include several sources. This is useful in, for example, audio mixer applications where several audio sources can be sent, processed and output as a single audio stream.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-path.html0000644000076500000240000003115312536324524020607 0ustar philstaff00000000000000 Phonon.Path Class Reference
  Home · All Classes · Modules

Phonon.Path Class Reference
[
phonon module]

The Path class describes connections between media nodes. More...

Methods

Special Methods


Detailed Description

The Path class describes connections between media nodes.

In a media graph, MediaNodes are connected by Paths. The multimedia travels in streams over these paths.

You create a path between two media nodes using the static Phonon.createPath() function, which takes two nodes as arguments. The first argument will send the media stream to the second. Please refer to the class description of the individual media nodes and the Phonon overview to see which nodes can be connected to each other.

Paths are also used to insert audio Effects between two media nodes. The effect will then alter the stream on the path. Notice that Effects also are media nodes, but that insertEffect() - instead of Phonon.createPath() - is used to insert them into the media graph.

The following code example shows how to create a path between two media nodes and insert an effect on that path.

 MediaObject *media = new MediaObject;
 AudioOutput *output = new AudioOutput(Phonon.MusicCategory);
 Path path = Phonon.createPath(media, output);
 Q_ASSERT(path.isValid()); // for this simple case the path should always be
                           //valid - there are unit tests to ensure it
 // insert an effect
 QList<EffectDescription> effectList = BackendCapabilities.availableAudioEffects();
 if (!effectList.isEmpty()) {
     Effect *effect = path.insertEffect(effectList.first());
 }

Method Documentation

Path.__init__ (self)

Creates an invalid path.

You can still make it a valid path by calling reconnect. It is recommended to use the Phonon.createPath() function to create paths.

See also Phonon.createPath() and isValid().

Path.__init__ (self, Path)

Constructs a copy of the other path specified.

This constructor is fast thanks to explicit sharing.

bool Path.disconnect (self)

Tries to disconnect the path from the MediaNodes it is connected to, returning true if successful or false if unsuccessful.

If successful, the path is invalidated: isValid() will returns false.

list-of-Phonon.Effect Path.effects (self)

Returns a list of Effect objects that are currently used as effects. The order in the list determines the order the signal is sent through the effects.

Returns A list with all current effects.

See also insertEffect() and removeEffect().

Effect Path.insertEffect (self, EffectDescription desc, Effect before = None)

Creates and inserts an effect into the path.

You may insert effects of the same class as often as you like, but if you insert the same object, the call will fail.

desc is the EffectDescription object for the effect to be inserted.

If you already inserted an effect you can tell with insertBefore in which order the data gets processed. If this is 0 the effect is appended at the end of the processing list. If the effect has not been inserted before the method will do nothing and return false.

Returns a pointer to the effect object if it could be inserted at the specified position. If 0 is returned, the effect was not inserted.

Below is a code example for inserting an effect into a path:

     QList<Phonon.EffectDescription> effectDescriptions =
             Phonon.BackendCapabilities.availableAudioEffects();
     Phonon.EffectDescription effectDescription = effectDescriptions.at(4);

     Phonon.Path path = Phonon.createPath(mediaObject, audioOutput);

     Phonon.Effect *effect = new Phonon.Effect(effectDescription);
     path.insertEffect(effect);

See also removeEffect() and effects().

bool Path.insertEffect (self, Effect newEffect, Effect before = None)

Inserts the given effect into the path before the effect specified by insertBefore and returns true if successful; otherwise returns false.

If insertBefore is zero, the effect is appended to the processing list.

You may insert effects of the same class as often as you like, but if you insert the same object, the call will fail.

effect will be inserted right before insertBefore. If insertBefore is 0, the effect is appended at the end of the processing list. If the effect has not been inserted before the method will do nothing and return false.

Returns whether the effect could be inserted at the specified position. If false is returned the effect was not inserted.

See also removeEffect() and effects().

bool Path.isValid (self)

A path is considered valid if it is connected to two media nodes, in which case this function returns true. If it is connected to one or no media nodes, it is consider invalid, and this function will then return false.

bool Path.reconnect (self, MediaNode source, MediaNode sink)

Changes the media nodes the path is connected to by connecting the path to the source and sink nodes specified. Returns true if successful; otherwise returns false.

If unsuccessful, the path remains connected to the same nodes as before.

See also Phonon.createPath() and Phonon Overview.

bool Path.removeEffect (self, Effect effect)

Removes the given effect from the path and returns true; otherwise returns false.

Removes an effect from the path.

If the effect is deleted while it is still connected, the effect will be removed automatically.

See also insertEffect() and effects().

MediaNode Path.sink (self)

Returns the sink MediaNode used by the path.

MediaNode Path.source (self)

Returns the source MediaNode used by the path.

bool Path.__eq__ (self, Path p)

bool Path.__ne__ (self, Path p)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-seekslider.html0000644000076500000240000002102112536324524021776 0ustar philstaff00000000000000 Phonon.SeekSlider Class Reference
  Home · All Classes · Modules

Phonon.SeekSlider Class Reference
[phonon module]

The SeekSlider class provides a slider for seeking to positions in media streams. More...

Inherits QWidget.

Methods


Detailed Description

The SeekSlider class provides a slider for seeking to positions in media streams.

The SeekSlider connects to a MediaObject, and controls the seek position in the object's media stream.

The slider will connect to the necessary signals to keep track of the sliders maximum, minimum, and current values. It will also disable itself for non-seekable streams, and update the media object when the current value of the slider changes.

Here follows a typical example of SeekSlider usage:

     Phonon.MediaObject *moo = new Phonon.MediaObject;;
     Phonon.AudioOutput *device = new Phonon.AudioOutput;
     Phonon.createPath(moo, device);
     moo->setCurrentSource(QString("/home/gvatteka/Music/Lumme-Badloop.ogg"));

     Phonon.SeekSlider *slider = new Phonon.SeekSlider;
     slider->setMediaObject(moo);

     slider->show();
     moo->play();

Method Documentation

SeekSlider.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a seek slider widget with the given parent.

SeekSlider.__init__ (self, MediaObject media, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a seek slider widget for the specified media with the given parent.

bool SeekSlider.hasTracking (self)

QSize SeekSlider.iconSize (self)

bool SeekSlider.isIconVisible (self)

MediaObject SeekSlider.mediaObject (self)

Return the media object this SeekSlider controls.

See also setMediaObject().

Qt.Orientation SeekSlider.orientation (self)

int SeekSlider.pageStep (self)

SeekSlider.setIconSize (self, QSize size)

This method is also a Qt slot with the C++ signature void setIconSize(const QSize&).

SeekSlider.setIconVisible (self, bool)

This method is also a Qt slot with the C++ signature void setIconVisible(bool).

SeekSlider.setMediaObject (self, MediaObject)

This method is also a Qt slot with the C++ signature void setMediaObject(Phonon::MediaObject*).

Sets the media object to be controlled by this slider to the media specified.

See also mediaObject().

SeekSlider.setOrientation (self, Qt.Orientation)

This method is also a Qt slot with the C++ signature void setOrientation(Qt::Orientation).

SeekSlider.setPageStep (self, int milliseconds)

SeekSlider.setSingleStep (self, int milliseconds)

SeekSlider.setTracking (self, bool tracking)

int SeekSlider.singleStep (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-subtitledescription.html0000644000076500000240000001152112536324524023747 0ustar philstaff00000000000000 Phonon.SubtitleDescription Class Reference
  Home · All Classes · Modules

Phonon.SubtitleDescription Class Reference
[
phonon module]

Methods

Static Methods

Special Methods

  • bool __eq__ (self, SubtitleDescription otherDescription)
  • bool __ne__ (self, SubtitleDescription otherDescription)

Detailed Description


Method Documentation

SubtitleDescription.__init__ (self)

SubtitleDescription.__init__ (self, int index, dict-of-QByteArray-QVariant properties)

SubtitleDescription.__init__ (self, SubtitleDescription)

QString SubtitleDescription.description (self)

SubtitleDescription SubtitleDescription.fromIndex (int index)

int SubtitleDescription.index (self)

bool SubtitleDescription.isValid (self)

QString SubtitleDescription.name (self)

QVariant SubtitleDescription.property (self, str name)

list-of-QByteArray SubtitleDescription.propertyNames (self)

bool SubtitleDescription.__eq__ (self, SubtitleDescription otherDescription)

bool SubtitleDescription.__ne__ (self, SubtitleDescription otherDescription)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-videoplayer.html0000644000076500000240000003161612536324524022202 0ustar philstaff00000000000000 Phonon.VideoPlayer Class Reference
  Home · All Classes · Modules

Phonon.VideoPlayer Class Reference
[phonon module]

The VideoPlayer widget is used to perform playback of video. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The VideoPlayer widget is used to perform playback of video.

With VideoPlayer you can get results quickly and easily. You can do the standard playback tasks like play(), pause(), and stop(), but also set a playback volume and seek - if the media and backend supports seeking.

VideoPlayer is provided for convenience and removes the need to create a media graph with a MediaObject, AudioOutput, and VideoWidget. If you need functionality not supported by the player, you can build this graph yourself.

Keep in mind that when the VideoPlayer instance is deleted the playback will stop.

Note also that most of the functions in this class are asynchronous. For instance, a media source may not play immediately after you call the play() function.

A play and forget code example:

 VideoPlayer *player = new VideoPlayer(Phonon.VideoCategory, parentWidget);
 connect(player, SIGNAL(finished()), player, SLOT(deleteLater()));
 player->play(url);

Method Documentation

VideoPlayer.__init__ (self, Category category, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new VideoPlayer instance with the specified parent.

category is the category used for the audio output device.

VideoPlayer.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new video widget with a parent using Phonon.VideoCategory as its category.

parent The QObject parent.

AudioOutput VideoPlayer.audioOutput (self)

int VideoPlayer.currentTime (self)

Get the current time (in milliseconds) of the file currently being played.

bool VideoPlayer.isPaused (self)

Returns true if it is currently paused; otherwise returns false if it is currently playing or stopped.

bool VideoPlayer.isPlaying (self)

Returns true if it is currently playing; otherwise returns false if it is currently stopped or paused

VideoPlayer.load (self, MediaSource source)

This method is also a Qt slot with the C++ signature void load(const Phonon::MediaSource&).

Starts pre-loading the media data from the specified source and filling audio buffers in the backend.

When there's already a media playing (or paused) it will be stopped (the finished signal will not be emitted).

See also MediaObject.setCurrentSource().

MediaObject VideoPlayer.mediaObject (self)

Returns the media object being used by the player.

The media object can be accessed directly instead of using the VideoPlayers convenience functions, e.g., play() and stop(). It is also possible to give the object to other Phonon widgets, e.g., a SeekSlider or a VolumeSlider.

See also Phonon.SeekSlider and Phonon.MediaObject.

VideoPlayer.pause (self)

This method is also a Qt slot with the C++ signature void pause().

Pauses the playback.

See also MediaObject.pause().

VideoPlayer.play (self, MediaSource source)

This method is also a Qt slot with the C++ signature void play(const Phonon::MediaSource&).

Plays the media from the given source. Starts playback as fast as possible. This can take a considerable time depending on the URL and the backend.

If you need low latency between calling play() and the sound actually starting to play on your output device you need to use MediaObject and be able to set the URL before calling play(). Note that

 audioPlayer->load(url);
 audioPlayer->play();

doesn't make a difference: the application should be idle between the load and play calls so that the backend can start preloading the media and fill audio buffers.

VideoPlayer.play (self)

This method is also a Qt slot with the C++ signature void play().

Continues playback of paused media. Restarts playback of a stopped (or newly loaded) media.

See also MediaObject.play() and play().

VideoPlayer.seek (self, int ms)

This method is also a Qt slot with the C++ signature void seek(qint64).

Seeks to the requested time. Note that the backend is free to ignore the seek request if the media source isn't seekable; you can check this by asking the media object of the VideoPlayer.

     player->mediaObject()->isSeekable();

The ms parameter is the time in milliseconds from the start of the media.

The call is asynchronous, so currentTime() can still be the old value right after this method was called. If all you need is a slider that shows the current position and allows the user to seek, use the class SeekSlider.

See also MediaObject.seek(), MediaObject.isSeekable(), and mediaObject().

VideoPlayer.setVolume (self, float volume)

This method is also a Qt slot with the C++ signature void setVolume(float).

Sets the volume of the output as voltage factor.

1.0 means 100%, 0.5 means 50% voltage/25% power, 0.0 means 0%

See also volume().

VideoPlayer.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Stops the playback.

See also MediaObject.stop().

int VideoPlayer.totalTime (self)

Get the total time (in milliseconds) of the file currently being played.

VideoWidget VideoPlayer.videoWidget (self)

float VideoPlayer.volume (self)

This is the current volume of the output as voltage factor.

1.0 means 100%, 0.5 means 50% voltage/25% power, 0.0 means 0%

See also setVolume().


Qt Signal Documentation

void finished ()

This is the default overload of this signal.

This signal is emitted when the playback finished.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-videowidget.html0000644000076500000240000003005412536324524022164 0ustar philstaff00000000000000 Phonon.VideoWidget Class Reference
  Home · All Classes · Modules

Phonon.VideoWidget Class Reference
[
phonon module]

The VideoWidget class provides a widget that is used to display video. More...

Inherits QWidget and AbstractVideoOutput.

Types

  • enum AspectRatio { AspectRatioAuto, AspectRatioWidget, AspectRatio4_3, AspectRatio16_9 }
  • enum ScaleMode { FitInView, ScaleAndCrop }

Methods


Detailed Description

The VideoWidget class provides a widget that is used to display video.

The VideoWidget class renders the video of a media stream on a QWidget. It is connected to the MediaObject, of which video stream it should render. You connect the two objects using the Phonon.createPath() function.

The widget has some possibilities to manipulate the video stream. You can change the brightness(), hue(), saturation(), and contrast().

Resizing of the video is handled automatically, but you can affect the way the video is resized with the aspectRatio and scaleMode properties. By default, the widget will use the aspect ratio of the video stream itself.

The video widget takes the size of the video when it receives a new video stream (i.e., when a new MediaSource is set on the MediaObject to which it is connected). If you need to know the size of the video, you can call sizeHint() after the video has been loaded (i.e., after the MediaObject leaves the LoadingState).

It is also possible to go to full screen mode.

A typical example of usage follows below:

 MediaObject *media = new MediaObject(parent);
 VideoWidget *vwidget = new VideoWidget(parent);
 Phonon.createPath(media, vwidget);

Type Documentation

VideoWidget.AspectRatio

Defines the width:height to be used for the video.

Constant Value Description
Phonon.VideoWidget.AspectRatioAuto 0 Let the decoder find the aspect ratio automatically from the media file (this is the default).
Phonon.VideoWidget.AspectRatioWidget 1 Fits the video into the widget making the aspect ratio depend solely on the size of the widget. This way the aspect ratio is freely resizeable by the user.
Phonon.VideoWidget.AspectRatio4_3 2 Make width/height == 4/3, which is the old TV size and monitor size (1024/768 == 4/3). (4:3)
Phonon.VideoWidget.AspectRatio16_9 3 Make width/height == 16/9, which is the size of most current media. (16:9)

VideoWidget.ScaleMode

The ScaleMode enum describes how to treat aspect ratio during resizing of video.

Constant Value Description
Phonon.VideoWidget.FitInView 0 The video will be fitted to fill the view keeping aspect ratio.
Phonon.VideoWidget.ScaleAndCrop 1 The video is scaled

Method Documentation

VideoWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new video widget with the specified parent.

AspectRatio VideoWidget.aspectRatio (self)

float VideoWidget.brightness (self)

float VideoWidget.contrast (self)

VideoWidget.enterFullScreen (self)

This method is also a Qt slot with the C++ signature void enterFullScreen().

Convenience slot, calling setFullScreen(true)

bool VideoWidget.event (self, QEvent)

Reimplemented from QObject.event().

VideoWidget.exitFullScreen (self)

This method is also a Qt slot with the C++ signature void exitFullScreen().

Convenience slot, calling setFullScreen(false)

float VideoWidget.hue (self)

VideoWidget.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

float VideoWidget.saturation (self)

ScaleMode VideoWidget.scaleMode (self)

VideoWidget.setAspectRatio (self, AspectRatio)

This method is also a Qt slot with the C++ signature void setAspectRatio(Phonon::VideoWidget::AspectRatio).

VideoWidget.setBrightness (self, float value)

This method is also a Qt slot with the C++ signature void setBrightness(qreal).

VideoWidget.setContrast (self, float value)

This method is also a Qt slot with the C++ signature void setContrast(qreal).

VideoWidget.setFullScreen (self, bool fullscreen)

This method is also a Qt slot with the C++ signature void setFullScreen(bool).

VideoWidget.setHue (self, float value)

This method is also a Qt slot with the C++ signature void setHue(qreal).

VideoWidget.setSaturation (self, float value)

This method is also a Qt slot with the C++ signature void setSaturation(qreal).

VideoWidget.setScaleMode (self, ScaleMode)

This method is also a Qt slot with the C++ signature void setScaleMode(Phonon::VideoWidget::ScaleMode).

QImage VideoWidget.snapshot (self)

Returns a snapshot of the current frame shown in the widget.

This function was introduced in Qt 4.7.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon-volumeslider.html0000644000076500000240000002105412536324524022364 0ustar philstaff00000000000000 Phonon.VolumeSlider Class Reference
  Home · All Classes · Modules

Phonon.VolumeSlider Class Reference
[phonon module]

The VolumeSlider widget provides a slider that is used to control the volume of an audio output device. More...

Inherits QWidget.

Methods


Detailed Description

The VolumeSlider widget provides a slider that is used to control the volume of an audio output device.

The slider also displays an icon indicating if the volume of the AudioOutput it is connected to is muted. The icon can be removed with setMuteVisible().

It is possible to set the maximum value of the slider. By default, the minimum and maximum values of the slider are 0.0 (no sound) to 1.0 (the maximum volume the audio output can produce).

Here follows a code example:

     Phonon.AudioOutput *audioOutput = new Phonon.AudioOutput(Phonon.MusicCategory);
     Phonon.createPath(mediaObject, audioOutput);

     Phonon.VolumeSlider *volumeSlider = new Phonon.VolumeSlider;
     volumeSlider->setAudioOutput(audioOutput);

Method Documentation

VolumeSlider.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new volume slider with the given parent.

VolumeSlider.__init__ (self, AudioOutput, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new volume slider with the given output object and parent.

AudioOutput VolumeSlider.audioOutput (self)

bool VolumeSlider.hasTracking (self)

QSize VolumeSlider.iconSize (self)

bool VolumeSlider.isMuteVisible (self)

float VolumeSlider.maximumVolume (self)

Qt.Orientation VolumeSlider.orientation (self)

int VolumeSlider.pageStep (self)

VolumeSlider.setAudioOutput (self, AudioOutput)

This method is also a Qt slot with the C++ signature void setAudioOutput(Phonon::AudioOutput*).

Sets the audio output object to be controlled by this slider to the specified output object.

See also audioOutput().

VolumeSlider.setIconSize (self, QSize size)

This method is also a Qt slot with the C++ signature void setIconSize(const QSize&).

VolumeSlider.setMaximumVolume (self, float)

This method is also a Qt slot with the C++ signature void setMaximumVolume(qreal).

VolumeSlider.setMuteVisible (self, bool)

This method is also a Qt slot with the C++ signature void setMuteVisible(bool).

VolumeSlider.setOrientation (self, Qt.Orientation)

This method is also a Qt slot with the C++ signature void setOrientation(Qt::Orientation).

VolumeSlider.setPageStep (self, int milliseconds)

VolumeSlider.setSingleStep (self, int milliseconds)

VolumeSlider.setTracking (self, bool tracking)

int VolumeSlider.singleStep (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/phonon.html0000644000076500000240000004173712536324524017666 0ustar philstaff00000000000000 Phonon Class Reference
  Home · All Classes · Modules

Phonon Class Reference
[
phonon module]

The Phonon namespace contains classes and functions for multimedia applications. More...

Types

Static Methods


Detailed Description

The Phonon namespace contains classes and functions for multimedia applications.

This namespace contains classes to access multimedia functions for audio and video playback. Those classes are not dependent on any specific framework, but rather use exchangeable backends to do the work.

See the Phonon Module page for general information about the framework and the Phonon Overview for an introductory tour of its features.


Type Documentation

Phonon.Category

Sets the category your program should be listed in in the mixer.

Constant Value Description
Phonon.NoCategory -1 Will make use of the default device.
Phonon.NotificationCategory 0 If the sounds produced are notifications (ping, beep and such) you should use this category.
Phonon.MusicCategory 1 If your application is a music player (like a jukebox or media player playing an audio file).
Phonon.VideoCategory 2 If the sound is the audio channel of a video.
Phonon.CommunicationCategory 3 If your applications produces sounds from communication with somebody else (VoIP, voice chat).
Phonon.GameCategory 4 Sound produced by a computer game should go into this category.
Phonon.AccessibilityCategory 5 Sounds produced for accessibility (e.g., Text-To-Speech) Holds the largest value of categories.

A Jukebox will set this to Music, a VoIP program to Communication, a DVD player to video, and so on.

Note: These categories can also become useful for an application that controls the volumes automatically, like turning down the music when a call comes in, or turning down the notifications when the media player knows it's playing classical music.

Phonon.DiscType

Enum to identify the media discs supported by MediaObject.

Constant Value Description
Phonon.NoDisc -1 No disc was selected. This is only useful as a return value from MediaSource.diskType().
Phonon.Cd 0 Identifies Audio CDs.
Phonon.Dvd 1 Identifies DVDs (not arbitrary data DVDs, only movie DVDs).
Phonon.Vcd 2 Identifies Video CDs.

See also MediaSource and MediaObject.

Phonon.ErrorType

This enum describes the severity when an error has occurred during playback.

After a media object has entered the ErrorState, one can query the type of error from MediaObject.errorType(). Note that you should query the error when receiving the MediaObject.stateChanged() signal, because the error type will be lost if the media object leaves the error state.

Constant Value Description
Phonon.NoError 0 No error. MediaObject.errorType() returns this if MediaObject.state() != Phonon.ErrorState.
Phonon.NormalError 1 An error has occurred with the playback of the current source. It might be possible to continue playback, for instance, if only the audio stream in a video cannot be played back. The media object will then leave the error state again.
Phonon.FatalError 2 . Something important does not work. Your program cannot continue the playback of the current source, but it might be possible to try another.

See also MediaObject.errorType().

Phonon.MetaData

Provided as keys for Phonon.MediaObject.metaData(). The enum values matches strings defined in the Ogg Vorbis specification

Constant Value
Phonon.ArtistMetaData 0
Phonon.AlbumMetaData 1
Phonon.TitleMetaData 2
Phonon.DateMetaData 3
Phonon.GenreMetaData 4
Phonon.TracknumberMetaData 5
Phonon.DescriptionMetaData 6
Phonon.MusicBrainzDiscIdMetaData 7

Phonon.State

The state enum describes the different states a media object can take. Several functions of MediaObject are asynchronous, so even if a you have requested a state change through a function call, e.g., through play(), you cannot be sure that the change has taken place before you receive the stateChanged() signal.

A media object can at any time change into any state, regardless of the state it previously had.

Constant Value Description
Phonon.LoadingState 0 After construction it might take a while before the media object is ready to play(). This state is commonly used by backends to initialize the media graph and loading the source. When the object leaves the loading state, it will enter the StoppedState unless an error occurred or another state is requested through a function call, e.g., MediaObject.play().
Phonon.StoppedState 1 In the stopped state, the media object is ready to play its current media source. The current position in the media stream is then 0.
Phonon.PlayingState 2 The media object is playing back its media source.
Phonon.BufferingState 3 The Player is waiting for data to be able to start or continue playing. This state is commonly used to wait for media data over a network connection.
Phonon.PausedState 4 The media player has currently paused its playback, i.e., it stops playing but keeps the current playback position in the stream.
Phonon.ErrorState 5 When a media object enters the error state a problem with the playback has occurred. The possible errors are grouped into two categories by Phonon.ErrorType, and the type can be queried through errorType(). A FatalError implies that the playback cannot continue, but one can still try with a new media source. With a NormalError it might be possible to continue playback, and a media object may therefore change state from the ErrorState.

This enum was introduced or modified in Qt 4.4.

See also MediaObject.


Method Documentation

QString Phonon.categoryToString (Category c)

Returns a (translated) string to show to the user identifying the given Category (c).

Path Phonon.createPath (MediaNode source, MediaNode sink)

Creates a new Path connecting the two MediaNodes source and sink.

The implementation will automatically select the right format and media type. E.g. connecting a MediaObject and AudioOutput will create a Path object connecting the audio. This might be represented as PCM or perhaps even AC3 depending on the AudioOutput object.

source The MediaNode to connect an output from sink The MediaNode to connect to.

MediaObject Phonon.createPlayer (Category category, MediaSource source = Phonon.MediaSource())

Convenience function to create a MediaObject and AudioOutput connected by a path. The MediaObject return will have source set as its current source and the specified category.

str Phonon.phononVersion ()

Returns the Phonon version.

This function was introduced in Qt 4.5.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/pickle.html0000644000076500000240000001231212536324430017613 0ustar philstaff00000000000000 Support for Pickling — PyQt 4.11.4 Reference Guide

Support for Pickling¶

The following PyQt4 classes may be pickled.

  • QByteArray
  • QChar
  • QColor
  • QDate
  • QDateTime
  • QKeySequence
  • QLatin1Char
  • QLatin1String
  • QLine
  • QLineF
  • QMatrix
  • QPoint
  • QPointF
  • QPolygon
  • QRect
  • QRectF
  • QSize
  • QSizeF
  • QString
  • QTime

Also all named enums (QtCore.Qt.Key for example) may be pickled.

PyQt-x11-gpl-4.11.4/doc/html/py-modindex.html0000644000076500000240000001044212536324430020603 0ustar philstaff00000000000000 Python Module Index — PyQt 4.11.4 Reference Guide

Python Module Index

p
 
p
PyQt4
    PyQt4.pyqtconfig
    PyQt4.uic
PyQt-x11-gpl-4.11.4/doc/html/pyqt_qsettings.html0000644000076500000240000003211612536324430021446 0ustar philstaff00000000000000 Support for QSettings — PyQt 4.11.4 Reference Guide

Support for QSettings¶

New in version v4.8.3.

Qt provies the QSettings class as a platform independent API for the persistent storage and retrieval of application settings. Settings are retrieved using the QSettings.value() method which, when using v1 of PyQt4’s QVariant API returns a QVariant object. An application will then typically convert the QVariant to the appropriate fundamental type using QVariant.toBool(), QVariant.toInt().

The explicit use of these conversion methods works around a problem with the way different platforms implement the storage of settings. Some platforms only ever store string values which means that the type of the original value is lost. Explicitly calling a conversion method provides the missing type information about the value being retrieved.

A problem then arises when v2 of the QVariant API is used (i.e. the default for Python v3) because those explicit conversion methods are not available. Therefore a setting with an integer value of 42 may be retrieved as a string value of '42'. This inconsistency is made worse by being platform specific.

As a solution to the problem PyQt4’s implementation of QSettings.value() takes an optional third argument called type. This is either a Python type object, e.g. int, or a string that is the name of a C++ type, e.g. 'QStringList'. The value returned will be an object of the requested type.

For example:

from PyQt4.QtCore import QSettings, QPoint

settings = QSettings('foo', 'foo')

settings.setValue('int_value', 42)
settings.setValue('point_value', QPoint(10, 12))

# This will write the setting to the platform specific storage.
del settings

settings = QSettings('foo', 'foo')

int_value = settings.value('int_value', type=int)
print("int_value: %s" % repr(int_value))

point_value = settings.value('point_value', type=QPoint)
print("point_value: %s" % repr(point_value))

When this is executed then the following will be displayed for all platforms:

int_value: 42
point_value: PyQt4.QtCore.QPoint(10, 20)

If the value of the setting is a container (corresponding to either QVariantList, QVariantMap or QVariantHash) then the type is applied to the contents of the container.

For example:

from PyQt4.QtCore import QSettings

settings = QSettings('foo', 'foo')

settings.setValue('list_value', [1, 2, 3])
settings.setValue('dict_value', {'one': 1, 'two': 2})

# This will write the setting to the platform specific storage.
del settings

settings = QSettings('foo', 'foo')

list_value = settings.value('list_value', type=int)
print("list_value: %s" % repr(list_value))

dict_value = settings.value('dict_value', type=int)
print("dict_value: %s" % repr(dict_value))

When this is executed then the following will be displayed for all platforms:

list_value: [1, 2, 3]
dict_value: {'one': 1, 'two': 2}
PyQt-x11-gpl-4.11.4/doc/html/pyqt_qvariant.html0000644000076500000240000001340312536324430021250 0ustar philstaff00000000000000 Python Objects and QVariant — PyQt 4.11.4 Reference Guide

Python Objects and QVariant¶

Qt uses the QVariant class as a wrapper for any C++ data type. PyQt4 allows any Python object to be wrapped as a QVariant and passed around Qt’s meta-object system like any other type.

PyQt4 will try to convert the Python object to a C++ equivalent if it can so that the QVariant can be passed to other C++ code that doesn’t know what a Python object is.

Version 2 of PyQt4’s QVariant API will automatically convert a QVariant back to a Python object of the correct type.

Version 1 of the QVariant API provides the QVariant.toPyObject() method to convert the QVariant back to a Python object of the correct type.

Both versions will raise a Python exception if the conversion cannot be done.

PyQt-x11-gpl-4.11.4/doc/html/python_shell.html0000644000076500000240000001544012536324430021061 0ustar philstaff00000000000000 Using PyQt4 from the Python Shell — PyQt 4.11.4 Reference Guide

Using PyQt4 from the Python Shell¶

PyQt4 installs an input hook (using PyOS_InputHook) that processes events when an interactive interpreter is waiting for user input. This means that you can, for example, create widgets from the Python shell prompt, interact with them, and still being able to enter other Python commands.

For example, if you enter the following in the Python shell:

>>> from PyQt4 import QtGui
>>> a = QtGui.QApplication([])
>>> w = QtGui.QWidget()
>>> w.show()
>>> w.hide()
>>>

The widget would be displayed when w.show() was entered amd hidden as soon as w.hide() was entered.

The installation of an input hook can cause problems for certain applications (particularly those that implement a similar feature using different means). The QtCore module contains the pyqtRemoveInputHook() and pyqtRestoreInputHook() functions that remove and restore the input hook respectively.

PyQt-x11-gpl-4.11.4/doc/html/python_v3.html0000644000076500000240000006074012536324430020305 0ustar philstaff00000000000000 PyQt4 and Python v3 — PyQt 4.11.4 Reference Guide

PyQt4 and Python v3¶

PyQt4 fully supports all versions of Python v3. The default behaviour is different in some areas to the default behaviour with Python v2. These incompatible differences were introduced in order to make PyQt4 more Pythonic. However it is very easy to revert to the default Python v2 behaviour on a class by class basis if required. (See the section Selecting Incompatible APIs.)

QAbstractSpinBox¶

The following PyQt4 calls have changed signatures to avoid the need for mutable strings:

QAbstractSpinBox.fixup(str input) -> str
QAbstractSpinBox.validate(str input, int pos) -> QValidator.State, str, int

QChar¶

The QChar class is implemented as a mapped type that is automatically converted to and from a Python string.

QClipboard¶

The following PyQt4 call has a changed signature to avoid the need for mutable strings:

QClipboard.text(str subtype, QClipboard.Mode mode=QClipboard.Clipboard) -> str, str

QDate¶

The QDate.__hash__() returns a hash of the string representation so that two objects with the same date will have the same hash.

The default behaviour with Python v2 is to return the object’s id() so that two objects with the same date will have different hashes.

QDateTime¶

The QDateTime.__hash__() method returns a hash of the string representation so that two objects with the same date and time will have the same hash.

The default behaviour with Python v2 is to return the object’s id() so that two objects with the same date and time will have different hashes.

QDateTimeEdit¶

The following PyQt4 calls have changed signatures to avoid the need for mutable strings:

QDateTimeEdit.fixup(str input) -> str
QDateTimeEdit.validate(str input, int pos) -> QValidator.State, str, int

QDoubleSpinBox¶

The following PyQt4 calls have changed signatures to avoid the need for mutable strings:

QDoubleSpinBox.fixup(str input) -> str
QDoubleSpinBox.validate(str input, int pos) -> QValidator.State, str, int

QDoubleValidator¶

The following PyQt4 call has a changed signature to avoid the need for mutable strings:

QDoubleValidator.validate(str input, int pos) -> QValidator.State, str, int

QFileDialog¶

The following PyQt4 calls have changed signatures to avoid the need for mutable strings:

QFileDialog.getOpenFileName(QWidget parent=None, str caption=None, str dir=None, str filter=None, QFileDialog.Options options=0) -> str
QFileDialog.getOpenFileNames(QWidget parent=None, str caption=None, str dir=None, str filter=None, QFileDialog.Options options=0) -> list(str)
QFileDialog.getSaveFileName(QWidget parent=None, str caption=None, str dir=None, str filter=None, QFileDialog.Options options=0) -> str

The static methods QFileDialog.getOpenFileNameAndFilter(), QFileDialog.getOpenFileNamesAndFilter() and QFileDialog.getSaveFileNameAndFilter() have been added which return a tuple of the name(s) and the selected filter. These can also be used with Python v2.

QFontMetrics¶

The methods QFontMetrics.widthChar() and QFontMetrics.boundingRectChar() have been added which accept a Python string of length one and call the C++ QFontMetrics::width() and QFontMetrics::boundingRect() methods passing the character as a QChar (rather than a single character QString).

QFontMetricsF¶

The methods QFontMetricsF.widthChar() and QFontMetricsF.boundingRectChar() have been added which accept a Python string of length one and call the C++ QFontMetricsF::width() and QFontMetricsF::boundingRect() methods passing the character as a QChar (rather than a single character QString).

QIntValidator¶

The following PyQt4 call has a changed signature to avoid the need for mutable strings:

QIntValidator.validate(str input, int pos) -> QValidator.State, str, int

QLatin1Char¶

The QLatin1Char class is not implemented.

QLatin1String¶

The QLatin1String class is not implemented.

QPyNullVariant¶

The QPyNullVariant class is used to represent a null QVariant. It is automatically converted to a C++ QVariant when required.

A null C++ QVariant is automatically converted to a QPyNullVariant unless the type of the data in the QVariant itself supports the concept of a null value (i.e. it has an isNull() method). In this case a null C++ QVariant is converted to a null instance of the data type. The exception to this rule is that a C++ QVariant containing a null QString is always converted to a QPyNullVariant.

QRegExpValidator¶

The following PyQt4 call has a changed signature to avoid the need for mutable strings:

QRegExpValidator.validate(str input, int pos) -> QValidator.State, str, int

QSettings¶

The QSettings.value() method takes an optional type keyword argument that specifies the type of the value to return. It can either be a Python type object or a string specifying the name of a C++ type.

Using this argument avoids potential portability problems where the type of a value may not be as expected because the platform specific backend to QSettings may not store the necessary type information.

The argument can also be used with Python v2.

QSpinBox¶

The following PyQt4 calls have changed signatures to avoid the need for mutable strings:

QSpinBox.fixup(str input) -> str
QSpinBox.validate(str input, int pos) -> QValidator.State, str, int

QString¶

The QString class is implemented as a mapped type that is automatically converted to and from a Python string. In addition a None is converted to a null QString. However, a null QString is converted to an empty Python string (and not None). (This is because Qt often returns a null QString when it should probably return an empty QString.)

QStringList¶

The QStringList class is implemented as a mapped type that is automatically converted to and from a Python list of strings.

QStringMatcher¶

The QStringMatcher class is not implemented.

QStringRef¶

The QStringRef class is implemented as a mapped type that is automatically converted to and from a Python string.

QTextDecoder¶

The following C++ call is not wrapped because it expects QString to be mutable:

void toUnicode(QString *target, const char *chars, int len)

QTextStream¶

The C++ functions bin(), hex() and oct() are named bin_(), hex_() and oct_() respectively in Python. This allows the import style from PyQt4.QtCore import * to be used without them clashing with the Python built-in functions with the same names.

The following C++ calls are not wrapped because they expect QString to be mutable:

QTextStream(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite)
void setString(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite)
QString *string()
QTextStream &operator>>(QChar &c)
QTextStream &operator>>(QString &s)

QTime¶

The QTime.__hash__() returns a hash of the string representation so that two objects with the same time will have the same hash.

The default behaviour with Python v2 is to return the object’s id() so that two objects with the same time will have different hashes.

QUrl¶

The QUrl.__hash__() method returns a hash of the string representation so that two objects with the same URL will have the same hash.

The default behaviour with Python v2 is to return the object’s id() so that two objects with the same URL will have different hashes.

QValidator¶

The following PyQt4 calls have changed signatures to avoid the need for mutable strings:

QValidator.fixup(str input) -> str
QValidator.validate(str input, int pos) -> QValidator.State, str, int

QVariant¶

The QVariant class is implemented as a mapped type. Any Python object can be passed when a QVariant instance is expected. When Qt returns a QVariant then it will automatically be converted to the original Python object or an equivalent.

None is interpreted as an invalid QVariant and vice versa.

The QPyNullVariant class is used to represent a null QVariant.

QWebPage¶

The following PyQt4 call has a changed signature to avoid the need for mutable strings:

QWebPage.javaScriptPrompt(QWebFrame originatingFrame, str msg, str defaultValue) -> bool, str

QXmlStreamWriter¶

The following C++ call is not wrapped because it expects QString to be mutable:

QXmlStreamWriter(QString *string)
PyQt-x11-gpl-4.11.4/doc/html/qabstractanimation.html0000644000076500000240000005564312536324470022252 0ustar philstaff00000000000000 QAbstractAnimation Class Reference
  Home · All Classes · Modules

QAbstractAnimation Class Reference
[QtCore module]

The QAbstractAnimation class is the base of all animations. More...

Inherits QObject.

Inherited by QAnimationGroup, QPauseAnimation and QVariantAnimation.

Types

Methods

Qt Signals


Detailed Description

The QAbstractAnimation class is the base of all animations.

The class defines the functions for the functionality shared by all animations. By inheriting this class, you can create custom animations that plug into the rest of the animation framework.

The progress of an animation is given by its current time (currentLoopTime()), which is measured in milliseconds from the start of the animation (0) to its end (duration()). The value is updated automatically while the animation is running. It can also be set directly with setCurrentTime().

At any point an animation is in one of three states: Running, Stopped, or Paused--as defined by the State enum. The current state can be changed by calling start(), stop(), pause(), or resume(). An animation will always reset its current time when it is started. If paused, it will continue with the same current time when resumed. When an animation is stopped, it cannot be resumed, but will keep its current time (until started again). QAbstractAnimation will emit stateChanged() whenever its state changes.

An animation can loop any number of times by setting the loopCount property. When an animation's current time reaches its duration(), it will reset the current time and keep running. A loop count of 1 (the default value) means that the animation will run one time. Note that a duration of -1 means that the animation will run until stopped; the current time will increase indefinitely. When the current time equals duration() and the animation is in its final loop, the Stopped state is entered, and the finished() signal is emitted.

QAbstractAnimation provides pure virtual functions used by subclasses to track the progress of the animation: duration() and updateCurrentTime(). The duration() function lets you report a duration for the animation (as discussed above). The animation framework calls updateCurrentTime() when current time has changed. By reimplementing this function, you can track the animation progress. Note that neither the interval between calls nor the number of calls to this function are defined; though, it will normally be 60 updates per second.

By reimplementing updateState(), you can track the animation's state changes, which is particularly useful for animations that are not driven by time.


Type Documentation

QAbstractAnimation.DeletionPolicy

Constant Value Description
QAbstractAnimation.KeepWhenStopped 0 The animation will not be deleted when stopped.
QAbstractAnimation.DeleteWhenStopped 1 The animation will be automatically deleted when stopped.

QAbstractAnimation.Direction

This enum describes the direction of the animation when in Running state.

Constant Value Description
QAbstractAnimation.Forward 0 The current time of the animation increases with time (i.e., moves from 0 and towards the end / duration).
QAbstractAnimation.Backward 1 The current time of the animation decreases with time (i.e., moves from the end / duration and towards 0).

See also direction.

QAbstractAnimation.State

This enum describes the state of the animation.

Constant Value Description
QAbstractAnimation.Stopped 0 The animation is not running. This is the initial state of QAbstractAnimation, and the state QAbstractAnimation reenters when finished. The current time remain unchanged until either setCurrentTime() is called, or the animation is started by calling start().
QAbstractAnimation.Paused 1 The animation is paused (i.e., temporarily suspended). Calling resume() will resume animation activity.
QAbstractAnimation.Running 2 The animation is running. While control is in the event loop, QAbstractAnimation will update its current time at regular intervals, calling updateCurrentTime() when appropriate.

See also state() and stateChanged().


Method Documentation

QAbstractAnimation.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs the QAbstractAnimation base class, and passes parent to QObject's constructor.

See also QVariantAnimation and QAnimationGroup.

int QAbstractAnimation.currentLoop (self)

int QAbstractAnimation.currentLoopTime (self)

Returns the current time inside the current loop. It can go from 0 to duration().

See also duration() and currentTime.

int QAbstractAnimation.currentTime (self)

Direction QAbstractAnimation.direction (self)

int QAbstractAnimation.duration (self)

This method is abstract and should be reimplemented in any sub-class.

bool QAbstractAnimation.event (self, QEvent event)

Reimplemented from QObject.event().

QAnimationGroup QAbstractAnimation.group (self)

If this animation is part of a QAnimationGroup, this function returns a pointer to the group; otherwise, it returns 0.

See also QAnimationGroup.addAnimation().

int QAbstractAnimation.loopCount (self)

QAbstractAnimation.pause (self)

This method is also a Qt slot with the C++ signature void pause().

Pauses the animation. When the animation is paused, state() returns Paused. The value of currentTime will remain unchanged until resume() or start() is called. If you want to continue from the current time, call resume().

See also start(), state(), and resume().

QAbstractAnimation.resume (self)

This method is also a Qt slot with the C++ signature void resume().

Resumes the animation after it was paused. When the animation is resumed, it emits the resumed() and stateChanged() signals. The currenttime is not changed.

See also start(), pause(), and state().

QAbstractAnimation.setCurrentTime (self, int msecs)

This method is also a Qt slot with the C++ signature void setCurrentTime(int).

QAbstractAnimation.setDirection (self, Direction direction)

QAbstractAnimation.setLoopCount (self, int loopCount)

QAbstractAnimation.setPaused (self, bool)

This method is also a Qt slot with the C++ signature void setPaused(bool).

If paused is true, the animation is paused. If paused is false, the animation is resumed.

See also state(), pause(), and resume().

QAbstractAnimation.start (self, DeletionPolicy policy = QAbstractAnimation.KeepWhenStopped)

This method is also a Qt slot with the C++ signature void start(QAbstractAnimation::DeletionPolicy = QAbstractAnimation.KeepWhenStopped).

Starts the animation. The policy argument says whether or not the animation should be deleted when it's done. When the animation starts, the stateChanged() signal is emitted, and state() returns Running. When control reaches the event loop, the animation will run by itself, periodically calling updateCurrentTime() as the animation progresses.

If the animation is currently stopped or has already reached the end, calling start() will rewind the animation and start again from the beginning. When the animation reaches the end, the animation will either stop, or if the loop level is more than 1, it will rewind and continue from the beginning.

If the animation is already running, this function does nothing.

See also stop() and state().

State QAbstractAnimation.state (self)

QAbstractAnimation.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Stops the animation. When the animation is stopped, it emits the stateChanged() signal, and state() returns Stopped. The current time is not changed.

If the animation stops by itself after reaching the end (i.e., currentLoopTime() == duration() and currentLoop() > loopCount() - 1), the finished() signal is emitted.

See also start() and state().

int QAbstractAnimation.totalDuration (self)

Returns the total and effective duration of the animation, including the loop count.

See also duration() and currentTime.

QAbstractAnimation.updateCurrentTime (self, int currentTime)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function is called every time the animation's currentTime changes.

See also updateState().

QAbstractAnimation.updateDirection (self, Direction direction)

This virtual function is called by QAbstractAnimation when the direction of the animation is changed. The direction argument is the new direction.

See also setDirection() and direction().

QAbstractAnimation.updateState (self, State newState, State oldState)

This virtual function is called by QAbstractAnimation when the state of the animation is changed from oldState to newState.

See also start(), stop(), pause(), and resume().


Qt Signal Documentation

void currentLoopChanged (int)

This is the default overload of this signal.

QAbstractAnimation emits this signal whenever the current loop changes. currentLoop is the current loop.

See also currentLoop() and loopCount().

void directionChanged (QAbstractAnimation::Direction)

This is the default overload of this signal.

QAbstractAnimation emits this signal whenever the direction has been changed. newDirection is the new direction.

See also direction.

void finished ()

This is the default overload of this signal.

QAbstractAnimation emits this signal after the animation has stopped and has reached the end.

This signal is emitted after stateChanged().

See also stateChanged().

void stateChanged (QAbstractAnimation::State,QAbstractAnimation::State)

This is the default overload of this signal.

QAbstractAnimation emits this signal whenever the state of the animation has changed from oldState to newState. This signal is emitted after the virtual updateState() function is called.

See also updateState().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractbutton.html0000644000076500000240000006167212536324500021577 0ustar philstaff00000000000000 QAbstractButton Class Reference
  Home · All Classes · Modules

QAbstractButton Class Reference
[QtGui module]

The QAbstractButton class is the abstract base class of button widgets, providing functionality common to buttons. More...

Inherits QWidget.

Inherited by QCheckBox, QPushButton, QRadioButton and QToolButton.

Methods

Qt Signals


Detailed Description

The QAbstractButton class is the abstract base class of button widgets, providing functionality common to buttons.

This class implements an abstract button. Subclasses of this class handle user actions, and specify how the button is drawn.

QAbstractButton provides support for both push buttons and checkable (toggle) buttons. Checkable buttons are implemented in the QRadioButton and QCheckBox classes. Push buttons are implemented in the QPushButton and QToolButton classes; these also provide toggle behavior if required.

Any button can display a label containing text and an icon. setText() sets the text; setIcon() sets the icon. If a button is disabled, its label is changed to give the button a "disabled" appearance.

If the button is a text button with a string containing an ampersand ('&'), QAbstractButton automatically creates a shortcut key. For example:

 QPushButton *button = new QPushButton(tr("Ro&ck && Roll"), this);

The Alt+C shortcut is assigned to the button, i.e., when the user presses Alt+C the button will call animateClick(). See the QShortcut documentation for details (to display an actual ampersand, use '&&').

You can also set a custom shortcut key using the setShortcut() function. This is useful mostly for buttons that do not have any text, because they have no automatic shortcut.

 button->setIcon(QIcon(":/images/print.png"));
 button->setShortcut(tr("Alt+F7"));

All of the buttons provided by Qt (QPushButton, QToolButton, QCheckBox, and QRadioButton) can display both text and icons.

A button can be made the default button in a dialog are provided by QPushButton.setDefault() and QPushButton.setAutoDefault().

QAbstractButton provides most of the states used for buttons:

  • isDown() indicates whether the button is pressed down.
  • isChecked() indicates whether the button is checked. Only checkable buttons can be checked and unchecked (see below).
  • isEnabled() indicates whether the button can be pressed by the user. Note: As opposed to other widgets, buttons derived from QAbstractButton accepts mouse and context menu events when disabled.
  • setAutoRepeat() sets whether the button will auto-repeat if the user holds it down. autoRepeatDelay and autoRepeatInterval define how auto-repetition is done.
  • setCheckable() sets whether the button is a toggle button or not.

The difference between isDown() and isChecked() is as follows. When the user clicks a toggle button to check it, the button is first pressed then released into the checked state. When the user clicks it again (to uncheck it), the button moves first to the pressed state, then to the unchecked state (isChecked() and isDown() are both false).

QAbstractButton provides four signals:

  1. pressed() is emitted when the left mouse button is pressed while the mouse cursor is inside the button.
  2. released() is emitted when the left mouse button is released.
  3. clicked() is emitted when the button is first pressed and then released, when the shortcut key is typed, or when click() or animateClick() is called.
  4. toggled() is emitted when the state of a toggle button changes.

To subclass QAbstractButton, you must reimplement at least paintEvent() to draw the button's outline and its text or pixmap. It is generally advisable to reimplement sizeHint() as well, and sometimes hitButton() (to determine whether a button press is within the button). For buttons with more than two states (like tri-state buttons), you will also have to reimplement checkStateSet() and nextCheckState().


Method Documentation

QAbstractButton.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an abstract button with a parent.

QAbstractButton.animateClick (self, int msecs = 100)

This method is also a Qt slot with the C++ signature void animateClick(int = 100).

Performs an animated click: the button is pressed immediately, and released msec milliseconds later (the default is 100 ms).

Calling this function again before the button was released will reset the release timer.

All signals associated with a click are emitted as appropriate.

This function does nothing if the button is disabled.

See also click().

bool QAbstractButton.autoExclusive (self)

bool QAbstractButton.autoRepeat (self)

int QAbstractButton.autoRepeatDelay (self)

int QAbstractButton.autoRepeatInterval (self)

QAbstractButton.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

QAbstractButton.checkStateSet (self)

This virtual handler is called when setChecked() was called, unless it was called from within nextCheckState(). It allows subclasses to reset their intermediate button states.

See also nextCheckState().

QAbstractButton.click (self)

This method is also a Qt slot with the C++ signature void click().

Performs a click.

All the usual signals associated with a click are emitted as appropriate. If the button is checkable, the state of the button is toggled.

This function does nothing if the button is disabled.

See also animateClick().

bool QAbstractButton.event (self, QEvent e)

Reimplemented from QObject.event().

QAbstractButton.focusInEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusInEvent().

QAbstractButton.focusOutEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusOutEvent().

QButtonGroup QAbstractButton.group (self)

Returns the group that this button belongs to.

If the button is not a member of any QButtonGroup, this function returns 0.

See also QButtonGroup.

bool QAbstractButton.hitButton (self, QPoint pos)

Returns true if pos is inside the clickable button rectangle; otherwise returns false.

By default, the clickable area is the entire widget. Subclasses may reimplement this function to provide support for clickable areas of different shapes and sizes.

QIcon QAbstractButton.icon (self)

QSize QAbstractButton.iconSize (self)

bool QAbstractButton.isCheckable (self)

bool QAbstractButton.isChecked (self)

bool QAbstractButton.isDown (self)

QAbstractButton.keyPressEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyPressEvent().

QAbstractButton.keyReleaseEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyReleaseEvent().

QAbstractButton.mouseMoveEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseMoveEvent().

QAbstractButton.mousePressEvent (self, QMouseEvent e)

Reimplemented from QWidget.mousePressEvent().

QAbstractButton.mouseReleaseEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseReleaseEvent().

QAbstractButton.nextCheckState (self)

This virtual handler is called when a button is clicked. The default implementation calls setChecked(!isChecked()) if the button isCheckable(). It allows subclasses to implement intermediate button states.

See also checkStateSet().

QAbstractButton.paintEvent (self, QPaintEvent e)

This method is abstract and should be reimplemented in any sub-class.

Reimplemented from QWidget.paintEvent().

QAbstractButton.setAutoExclusive (self, bool)

QAbstractButton.setAutoRepeat (self, bool)

QAbstractButton.setAutoRepeatDelay (self, int)

QAbstractButton.setAutoRepeatInterval (self, int)

QAbstractButton.setCheckable (self, bool)

QAbstractButton.setChecked (self, bool)

This method is also a Qt slot with the C++ signature void setChecked(bool).

QAbstractButton.setDown (self, bool)

QAbstractButton.setIcon (self, QIcon icon)

QAbstractButton.setIconSize (self, QSize size)

This method is also a Qt slot with the C++ signature void setIconSize(const QSize&).

QAbstractButton.setShortcut (self, QKeySequence key)

QAbstractButton.setText (self, QString text)

QKeySequence QAbstractButton.shortcut (self)

QString QAbstractButton.text (self)

QAbstractButton.timerEvent (self, QTimerEvent e)

Reimplemented from QObject.timerEvent().

QAbstractButton.toggle (self)

This method is also a Qt slot with the C++ signature void toggle().

Toggles the state of a checkable button.

See also checked.


Qt Signal Documentation

void clicked (bool = 0)

This is the default overload of this signal.

This signal is emitted when the button is activated (i.e. pressed down then released while the mouse cursor is inside the button), when the shortcut key is typed, or when click() or animateClick() is called. Notably, this signal is not emitted if you call setDown(), setChecked() or toggle().

If the button is checkable, checked is true if the button is checked, or false if the button is unchecked.

See also pressed(), released(), and toggled().

void pressed ()

This is the default overload of this signal.

This signal is emitted when the button is pressed down.

See also released() and clicked().

void released ()

This is the default overload of this signal.

This signal is emitted when the button is released.

See also pressed(), clicked(), and toggled().

void toggled (bool)

This is the default overload of this signal.

This signal is emitted whenever a checkable button changes its state. checked is true if the button is checked, or false if the button is unchecked.

This may be the result of a user action, click() slot activation, or because setChecked() was called.

The states of buttons in exclusive button groups are updated before this signal is emitted. This means that slots can act on either the "off" signal or the "on" signal emitted by the buttons in the group whose states have changed.

For example, a slot that reacts to signals emitted by newly checked buttons but which ignores signals from buttons that have been unchecked can be implemented using the following pattern:

 void MyWidget.reactToToggle(bool checked)
 {
    if (checked) {
       // Examine the new button states.
       ...
    }
 }

Button groups can be created using the QButtonGroup class, and updates to the button states monitored with the QButtonGroup.buttonClicked() signal.

See also checked and clicked().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstracteventdispatcher.html0000644000076500000240000003771412536324470023462 0ustar philstaff00000000000000 QAbstractEventDispatcher Class Reference
  Home · All Classes · Modules

QAbstractEventDispatcher Class Reference
[QtCore module]

The QAbstractEventDispatcher class provides an interface to manage Qt's event queue. More...

Inherits QObject.

Methods

Static Methods

  • QAbstractEventDispatcher instance (QThread thread = None)

Qt Signals


Detailed Description

The QAbstractEventDispatcher class provides an interface to manage Qt's event queue.

An event dispatcher receives events from the window system and other sources. It then sends them to the QCoreApplication or QApplication instance for processing and delivery. QAbstractEventDispatcher provides fine-grained control over event delivery.

For simple control of event processing use QCoreApplication.processEvents().

For finer control of the application's event loop, call instance() and call functions on the QAbstractEventDispatcher object that is returned. If you want to use your own instance of QAbstractEventDispatcher or of a QAbstractEventDispatcher subclass, you must create your instance before you create the QApplication object.

The main event loop is started by calling QCoreApplication.exec(), and stopped by calling QCoreApplication.exit(). Local event loops can be created using QEventLoop.

Programs that perform long operations can call processEvents() with a bitwise OR combination of various QEventLoop.ProcessEventsFlag values to control which events should be delivered.

QAbstractEventDispatcher also allows the integration of an external event loop with the Qt event loop. For example, the Motif Extension includes a reimplementation of QAbstractEventDispatcher that merges Qt and Motif events together.


Method Documentation

QAbstractEventDispatcher.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new event dispatcher with the given parent.

QAbstractEventDispatcher.closingDown (self)

bool QAbstractEventDispatcher.filterEvent (self, sip.voidptr message)

Sends message through the event filter that was set by setEventFilter(). If no event filter has been set, this function returns false; otherwise, this function returns the result of the event filter function.

Subclasses of QAbstractEventDispatcher must call this function for all messages received from the system to ensure compatibility with any extensions that may be used in the application.

Note that the type of message is platform dependent. See QAbstractEventDispatcher.EventFilter for details.

See also setEventFilter().

QAbstractEventDispatcher.flush (self)

This method is abstract and should be reimplemented in any sub-class.

Flushes the event queue. This normally returns almost immediately. Does nothing on platforms other than X11.

bool QAbstractEventDispatcher.hasPendingEvents (self)

This method is abstract and should be reimplemented in any sub-class.

Returns true if there is an event waiting; otherwise returns false.

QAbstractEventDispatcher QAbstractEventDispatcher.instance (QThread thread = None)

Returns a pointer to the event dispatcher object for the specified thread. If thread is zero, the current thread is used. If no event dispatcher exists for the specified thread, this function returns 0.

Note: If Qt is built without thread support, the thread argument is ignored.

QAbstractEventDispatcher.interrupt (self)

This method is abstract and should be reimplemented in any sub-class.

Interrupts event dispatching; i.e. the event dispatcher will return from processEvents() as soon as possible.

bool QAbstractEventDispatcher.processEvents (self, QEventLoop.ProcessEventsFlags flags)

This method is abstract and should be reimplemented in any sub-class.

Processes pending events that match flags until there are no more events to process. Returns true if an event was processed; otherwise returns false.

This function is especially useful if you have a long running operation and want to show its progress without allowing user input; i.e. by using the QEventLoop.ExcludeUserInputEvents flag.

If the QEventLoop.WaitForMoreEvents flag is set in flags, the behavior of this function is as follows:

  • If events are available, this function returns after processing them.
  • If no events are available, this function will wait until more are available and return after processing newly available events.

If the QEventLoop.WaitForMoreEvents flag is not set in flags, and no events are available, this function will return immediately.

Note: This function does not process events continuously; it returns after all available events are processed.

See also hasPendingEvents().

list-of-tuple-of-int-int QAbstractEventDispatcher.registeredTimers (self, QObject object)

This method is abstract and should be reimplemented in any sub-class.

Returns a list of registered timers for object. The timer ID is the first member in each pair; the interval is the second.

QAbstractEventDispatcher.registerSocketNotifier (self, QSocketNotifier notifier)

This method is abstract and should be reimplemented in any sub-class.

Registers notifier with the event loop. Subclasses must implement this method to tie a socket notifier into another event loop.

int QAbstractEventDispatcher.registerTimer (self, int interval, QObject object)

Registers a timer with the specified interval for the given object.

QAbstractEventDispatcher.registerTimer (self, int timerId, int interval, QObject object)

This method is abstract and should be reimplemented in any sub-class.

Register a timer with the specified timerId and interval for the given object.

callable QAbstractEventDispatcher.setEventFilter (self, callable filter)

The filter argument may also be None.

Replaces the event filter function for this QAbstractEventDispatcher with filter and returns the replaced event filter function. Only the current event filter function is called. If you want to use both filter functions, save the replaced EventFilter in a place where yours can call it.

The event filter function set here is called for all messages taken from the system event loop before the event is dispatched to the respective target, including the messages not meant for Qt objects.

The event filter function should return true if the message should be filtered, (i.e. stopped). It should return false to allow processing the message to continue.

By default, no event filter function is set (i.e., this function returns a null EventFilter the first time it is called).

QAbstractEventDispatcher.startingUp (self)

QAbstractEventDispatcher.unregisterSocketNotifier (self, QSocketNotifier notifier)

This method is abstract and should be reimplemented in any sub-class.

Unregisters notifier from the event dispatcher. Subclasses must reimplement this method to tie a socket notifier into another event loop. Reimplementations must call the base implementation.

bool QAbstractEventDispatcher.unregisterTimer (self, int timerId)

This method is abstract and should be reimplemented in any sub-class.

Unregisters the timer with the given timerId. Returns true if successful; otherwise returns false.

See also registerTimer() and unregisterTimers().

bool QAbstractEventDispatcher.unregisterTimers (self, QObject object)

This method is abstract and should be reimplemented in any sub-class.

Unregisters all the timers associated with the given object. Returns true if all timers were successful removed; otherwise returns false.

See also unregisterTimer() and registeredTimers().

QAbstractEventDispatcher.wakeUp (self)

This method is abstract and should be reimplemented in any sub-class.

Wakes up the event loop.

Note: This function is thread-safe.

See also awake().


Qt Signal Documentation

void aboutToBlock ()

This is the default overload of this signal.

This signal is emitted before the event loop calls a function that could block.

See also awake().

void awake ()

This is the default overload of this signal.

This signal is emitted after the event loop returns from a function that could block.

See also wakeUp() and aboutToBlock().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractextensionfactory.html0000644000076500000240000001001212536324525023655 0ustar philstaff00000000000000 QAbstractExtensionFactory Class Reference
  Home · All Classes · Modules

QAbstractExtensionFactory Class Reference
[QtDesigner module]

The QAbstractExtensionFactory class provides an interface for extension factories in Qt Designer. More...

Inherited by QExtensionFactory.

Methods


Detailed Description

The QAbstractExtensionFactory class provides an interface for extension factories in Qt Designer.

QAbstractExtensionFactory is not intended to be instantiated directly; use the QExtensionFactory instead.

In Qt Designer, extension factories are used to look up and create named extensions as they are required. For that reason, when implementing a custom extension, you must also create a QExtensionFactory, i.e a class that is able to make an instance of your extension, and register it using Qt Designer's extension manager.

When an extension is required, Qt Designer's extension manager will run through all its registered factories calling QExtensionFactory.createExtension() for each until the first one that is able to create the requested extension for the selected object, is found. This factory will then make an instance of the extension.


Method Documentation

QAbstractExtensionFactory.__init__ (self)

QAbstractExtensionFactory.__init__ (self, QAbstractExtensionFactory)

QObject QAbstractExtensionFactory.extension (self, QObject object, QString iid)

This method is abstract and should be reimplemented in any sub-class.

Returns the extension specified by iid for the given object.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractextensionmanager.html0000644000076500000240000001222512536324525023630 0ustar philstaff00000000000000 QAbstractExtensionManager Class Reference
  Home · All Classes · Modules

QAbstractExtensionManager Class Reference
[QtDesigner module]

The QAbstractExtensionManager class provides an interface for extension managers in Qt Designer. More...

Inherited by QExtensionManager.

Methods


Detailed Description

The QAbstractExtensionManager class provides an interface for extension managers in Qt Designer.

QAbstractExtensionManager is not intended to be instantiated directly; use the QExtensionManager instead.

In Qt Designer, extension are not created until they are required. For that reason, when implementing a custom extension, you must also create a QExtensionFactory, i.e a class that is able to make an instance of your extension, and register it using Qt Designer's extension manager.

When an extension is required, Qt Designer's extension manager will run through all its registered factories calling QExtensionFactory.createExtension() for each until the first one that is able to create the requested extension for the selected object, is found. This factory will then make an instance of the extension.


Method Documentation

QAbstractExtensionManager.__init__ (self)

QAbstractExtensionManager.__init__ (self, QAbstractExtensionManager)

QObject QAbstractExtensionManager.extension (self, QObject object, QString iid)

This method is abstract and should be reimplemented in any sub-class.

Returns the extension, specified by iid, for the given object.

QAbstractExtensionManager.registerExtensions (self, QAbstractExtensionFactory factory, QString iid)

This method is abstract and should be reimplemented in any sub-class.

Register the given extension factory with the extension specified by iid.

QAbstractExtensionManager.unregisterExtensions (self, QAbstractExtensionFactory factory, QString iid)

This method is abstract and should be reimplemented in any sub-class.

Unregister the given factory with the extension specified by iid.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractfileengine-fileflags.html0000644000076500000240000001434612536324470024325 0ustar philstaff00000000000000 QAbstractFileEngine.FileFlags Class Reference
  Home · All Classes · Modules

QAbstractFileEngine.FileFlags Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

FileFlag may be used whenever FileFlags is expected.


Method Documentation

FileFlags.__init__ (self, FileFlags)

FileFlags.__init__ (self, int)

FileFlags.__init__ (self)

FileFlags FileFlags.__and__ (self, int mask)

int FileFlags.__bool__ (self)

bool FileFlags.__eq__ (self, FileFlags f)

FileFlags FileFlags.__iand__ (self, int mask)

int FileFlags.__int__ (self)

FileFlags FileFlags.__invert__ (self)

FileFlags FileFlags.__ior__ (self, FileFlags f)

FileFlags FileFlags.__ixor__ (self, FileFlags f)

bool FileFlags.__ne__ (self, FileFlags f)

FileFlags FileFlags.__or__ (self, FileFlags f)

FileFlags FileFlags.__or__ (self, int f)

FileFlags FileFlags.__xor__ (self, FileFlags f)

FileFlags FileFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractfileengine.html0000644000076500000240000011073412536324470022371 0ustar philstaff00000000000000 QAbstractFileEngine Class Reference
  Home · All Classes · Modules

QAbstractFileEngine Class Reference
[QtCore module]

The QAbstractFileEngine class provides an abstraction for accessing the filesystem. More...

Inherited by QFSFileEngine.

Types

  • enum FileFlag { ReadOwnerPerm, WriteOwnerPerm, ExeOwnerPerm, ReadUserPerm, ..., Refresh }
  • class FileFlags
  • enum FileName { DefaultName, BaseName, PathName, AbsoluteName, ..., BundleName }
  • enum FileOwner { OwnerUser, OwnerGroup }
  • enum FileTime { CreationTime, ModificationTime, AccessTime }

Methods

  • __init__ (self)
  • bool atEnd (self)
  • QAbstractFileEngineIterator beginEntryList (self, QDir.Filters filters, QStringList filterNames)
  • bool caseSensitive (self)
  • bool close (self)
  • bool copy (self, QString newName)
  • QStringList entryList (self, QDir.Filters filters, QStringList filterNames)
  • QFile.FileError error (self)
  • QString errorString (self)
  • FileFlags fileFlags (self, FileFlags type = QAbstractFileEngine.FileInfoAll)
  • QString fileName (self, FileName file = QAbstractFileEngine.DefaultName)
  • QDateTime fileTime (self, FileTime time)
  • bool flush (self)
  • int handle (self)
  • bool isRelativePath (self)
  • bool isSequential (self)
  • bool link (self, QString newName)
  • sip.voidptr map (self, int offset, int size, QFile.MemoryMapFlags flags)
  • bool mkdir (self, QString dirName, bool createParentDirectories)
  • bool open (self, QIODevice.OpenMode openMode)
  • QString owner (self, FileOwner)
  • int ownerId (self, FileOwner)
  • int pos (self)
  • str read (self, int maxlen)
  • str readLine (self, int maxlen)
  • bool remove (self)
  • bool rename (self, QString newName)
  • bool rmdir (self, QString dirName, bool recurseParentDirectories)
  • bool seek (self, int pos)
  • setError (self, QFile.FileError error, QString str)
  • setFileName (self, QString file)
  • bool setPermissions (self, int perms)
  • bool setSize (self, int size)
  • int size (self)
  • bool unmap (self, sip.voidptr ptr)
  • int write (self, str data)

Static Methods

  • QAbstractFileEngine create (QString fileName)

Detailed Description

The QAbstractFileEngine class provides an abstraction for accessing the filesystem.

The QDir, QFile, and QFileInfo classes all make use of a QAbstractFileEngine internally. If you create your own QAbstractFileEngine subclass (and register it with Qt by creating a QAbstractFileEngineHandler subclass), your file engine will be used when the path is one that your file engine handles.

A QAbstractFileEngine refers to one file or one directory. If the referent is a file, the setFileName(), rename(), and remove() functions are applicable. If the referent is a directory the mkdir(), rmdir(), and entryList() functions are applicable. In all cases the caseSensitive(), isRelativePath(), fileFlags(), ownerId(), owner(), and fileTime() functions are applicable.

A QAbstractFileEngine subclass can be created to do synchronous network I/O based file system operations, local file system operations, or to operate as a resource system to access file based resources.


Type Documentation

QAbstractFileEngine.FileFlag

The permissions and types of a file, suitable for OR'ing together.

Constant Value Description
QAbstractFileEngine.ReadOwnerPerm 0x4000 The owner of the file has permission to read it.
QAbstractFileEngine.WriteOwnerPerm 0x2000 The owner of the file has permission to write to it.
QAbstractFileEngine.ExeOwnerPerm 0x1000 The owner of the file has permission to execute it.
QAbstractFileEngine.ReadUserPerm 0x0400 The current user has permission to read the file.
QAbstractFileEngine.WriteUserPerm 0x0200 The current user has permission to write to the file.
QAbstractFileEngine.ExeUserPerm 0x0100 The current user has permission to execute the file.
QAbstractFileEngine.ReadGroupPerm 0x0040 Members of the current user's group have permission to read the file.
QAbstractFileEngine.WriteGroupPerm 0x0020 Members of the current user's group have permission to write to the file.
QAbstractFileEngine.ExeGroupPerm 0x0010 Members of the current user's group have permission to execute the file.
QAbstractFileEngine.ReadOtherPerm 0x0004 All users have permission to read the file.
QAbstractFileEngine.WriteOtherPerm 0x0002 All users have permission to write to the file.
QAbstractFileEngine.ExeOtherPerm 0x0001 All users have permission to execute the file.
QAbstractFileEngine.LinkType 0x10000 The file is a link to another file (or link) in the file system (i.e. not a file or directory).
QAbstractFileEngine.FileType 0x20000 The file is a regular file to the file system (i.e. not a link or directory)
QAbstractFileEngine.BundleType 0x80000 The file is a Mac OS X bundle implies DirectoryType
QAbstractFileEngine.DirectoryType 0x40000 The file is a directory in the file system (i.e. not a link or file).
QAbstractFileEngine.HiddenFlag 0x0100000 The file is hidden.
QAbstractFileEngine.ExistsFlag 0x0400000 The file actually exists in the file system.
QAbstractFileEngine.RootFlag 0x0800000 The file or the file pointed to is the root of the filesystem.
QAbstractFileEngine.LocalDiskFlag 0x0200000 The file resides on the local disk and can be passed to standard file functions.
QAbstractFileEngine.Refresh 0x1000000 Passing this flag will force the file engine to refresh all flags.

The FileFlags type is a typedef for QFlags<FileFlag>. It stores an OR combination of FileFlag values.

See also fileFlags() and setFileName().

QAbstractFileEngine.FileName

These values are used to request a file name in a particular format.

Constant Value Description
QAbstractFileEngine.DefaultName 0 The same filename that was passed to the QAbstractFileEngine.
QAbstractFileEngine.BaseName 1 The name of the file excluding the path.
QAbstractFileEngine.PathName 2 The path to the file excluding the base name.
QAbstractFileEngine.AbsoluteName 3 The absolute path to the file (including the base name).
QAbstractFileEngine.AbsolutePathName 4 The absolute path to the file (excluding the base name).
QAbstractFileEngine.LinkName 5 The full file name of the file that this file is a link to. (This will be empty if this file is not a link.)
QAbstractFileEngine.CanonicalName 6 Often very similar to LinkName. Will return the true path to the file.
QAbstractFileEngine.CanonicalPathName 7 Same as CanonicalName, excluding the base name.
QAbstractFileEngine.BundleName 8 Returns the name of the bundle implies BundleType is set.

See also fileName() and setFileName().

QAbstractFileEngine.FileOwner

Constant Value Description
QAbstractFileEngine.OwnerUser 0 The user who owns the file.
QAbstractFileEngine.OwnerGroup 1 The group who owns the file.

See also owner(), ownerId(), and setFileName().

QAbstractFileEngine.FileTime

These are used by the fileTime() function.

Constant Value Description
QAbstractFileEngine.CreationTime 0 When the file was created.
QAbstractFileEngine.ModificationTime 1 When the file was most recently modified.
QAbstractFileEngine.AccessTime 2 When the file was most recently accessed (e.g. read or written to).

See also setFileName().


Method Documentation

QAbstractFileEngine.__init__ (self)

Constructs a new QAbstractFileEngine that does not refer to any file or directory.

See also setFileName().

bool QAbstractFileEngine.atEnd (self)

Returns true if the current position is at the end of the file; otherwise, returns false.

This function bases its behavior on calling extension() with AtEndExtension. If the engine does not support this extension, false is returned.

This function was introduced in Qt 4.3.

See also extension(), supportsExtension(), and QFile.atEnd().

QAbstractFileEngineIterator QAbstractFileEngine.beginEntryList (self, QDir.Filters filters, QStringList filterNames)

Returns an instance of a QAbstractFileEngineIterator using filters for entry filtering and filterNames for name filtering. This function is called by QDirIterator to initiate directory iteration.

QDirIterator takes ownership of the returned instance, and deletes it when it's done.

See also QDirIterator.

bool QAbstractFileEngine.caseSensitive (self)

Should return true if the underlying file system is case-sensitive; otherwise return false.

This virtual function must be reimplemented by all subclasses.

bool QAbstractFileEngine.close (self)

Closes the file, returning true if successful; otherwise returns false.

The default implementation always returns false.

bool QAbstractFileEngine.copy (self, QString newName)

Copies the contents of this file to a file with the name newName. Returns true on success; otherwise, false is returned.

QAbstractFileEngine QAbstractFileEngine.create (QString fileName)

Creates and returns a QAbstractFileEngine suitable for processing fileName.

You should not need to call this function; use QFile, QFileInfo or QDir directly instead.

If you reimplemnt this function, it should only return file engines that knows how to handle fileName; otherwise, it should return 0.

See also QAbstractFileEngineHandler.

QStringList QAbstractFileEngine.entryList (self, QDir.Filters filters, QStringList filterNames)

Requests that a list of all the files matching the filters list based on the filterNames in the file engine's directory are returned.

Should return an empty list if the file engine refers to a file rather than a directory, or if the directory is unreadable or does not exist or if nothing matches the specifications.

This virtual function must be reimplemented by all subclasses.

See also setFileName().

QFile.FileError QAbstractFileEngine.error (self)

Returns the QFile.FileError that resulted from the last failed operation. If QFile.UnspecifiedError is returned, QFile will use its own idea of the error status.

See also setError(), QFile.FileError, and errorString().

QString QAbstractFileEngine.errorString (self)

Returns the human-readable message appropriate to the current error reported by error(). If no suitable string is available, an empty string is returned.

See also error().

FileFlags QAbstractFileEngine.fileFlags (self, FileFlags type = QAbstractFileEngine.FileInfoAll)

This function should return the set of OR'd flags that are true for the file engine's file, and that are in the type's OR'd members.

In your reimplementation you can use the type argument as an optimization hint and only return the OR'd set of members that are true and that match those in type; in other words you can ignore any members not mentioned in type, thus avoiding some potentially expensive lookups or system calls.

This virtual function must be reimplemented by all subclasses.

See also setFileName().

QString QAbstractFileEngine.fileName (self, FileName file = QAbstractFileEngine.DefaultName)

Return the file engine's current file name in the format specified by file.

If you don't handle some FileName possibilities, return the file name set in setFileName() when an unhandled format is requested.

This virtual function must be reimplemented by all subclasses.

See also setFileName() and FileName.

QDateTime QAbstractFileEngine.fileTime (self, FileTime time)

If time is CreationTime, return when the file was created. If time is ModificationTime, return when the file was most recently modified. If time is AccessTime, return when the file was most recently accessed (e.g. read or written). If the time cannot be determined return QDateTime() (an invalid date time).

This virtual function must be reimplemented by all subclasses.

See also setFileName(), QDateTime, QDateTime.isValid(), and FileTime.

bool QAbstractFileEngine.flush (self)

Flushes the open file, returning true if successful; otherwise returns false.

The default implementation always returns false.

int QAbstractFileEngine.handle (self)

Returns the native file handle for this file engine. This handle must be used with care; its value and type are platform specific, and using it will most likely lead to non-portable code.

bool QAbstractFileEngine.isRelativePath (self)

Return true if the file referred to by this file engine has a relative path; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also setFileName().

bool QAbstractFileEngine.isSequential (self)

Returns true if the file is a sequential access device; returns false if the file is a direct access device.

Operations involving size() and seek(int) are not valid on sequential devices.

bool QAbstractFileEngine.link (self, QString newName)

Creates a link from the file currently specified by fileName() to newName. What a link is depends on the underlying filesystem (be it a shortcut on Windows or a symbolic link on Unix). Returns true if successful; otherwise returns false.

sip.voidptr QAbstractFileEngine.map (self, int offset, int size, QFile.MemoryMapFlags flags)

Maps size bytes of the file into memory starting at offset. Returns a pointer to the memory if successful; otherwise returns false if, for example, an error occurs.

This function bases its behavior on calling extension() with MapExtensionOption. If the engine does not support this extension, 0 is returned.

flags is currently not used, but could be used in the future.

This function was introduced in Qt 4.4.

See also unmap() and supportsExtension().

bool QAbstractFileEngine.mkdir (self, QString dirName, bool createParentDirectories)

Requests that the directory dirName be created. If createParentDirectories is true, then any sub-directories in dirName that don't exist must be created. If createParentDirectories is false then any sub-directories in dirName must already exist for the function to succeed. If the operation succeeds return true; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also setFileName(), rmdir(), and isRelativePath().

bool QAbstractFileEngine.open (self, QIODevice.OpenMode openMode)

Opens the file in the specified mode. Returns true if the file was successfully opened; otherwise returns false.

The mode is an OR combination of QIODevice.OpenMode and QIODevice.HandlingMode values.

QString QAbstractFileEngine.owner (self, FileOwner)

If owner is OwnerUser return the name of the user who owns the file. If owner is OwnerGroup return the name of the group that own the file. If you can't determine the owner return QString().

This virtual function must be reimplemented by all subclasses.

See also ownerId(), setFileName(), and FileOwner.

int QAbstractFileEngine.ownerId (self, FileOwner)

If owner is OwnerUser return the ID of the user who owns the file. If owner is OwnerGroup return the ID of the group that own the file. If you can't determine the owner return -2.

This virtual function must be reimplemented by all subclasses.

See also owner(), setFileName(), and FileOwner.

int QAbstractFileEngine.pos (self)

Returns the current file position.

This is the position of the data read/write head of the file.

str QAbstractFileEngine.read (self, int maxlen)

Reads a number of characters from the file into data. At most maxlen characters will be read.

Returns -1 if a fatal error occurs, or 0 if there are no bytes to read.

str QAbstractFileEngine.readLine (self, int maxlen)

This function reads one line, terminated by a '\n' character, from the file info data. At most maxlen characters will be read. The end-of-line character is included.

bool QAbstractFileEngine.remove (self)

Requests that the file is deleted from the file system. If the operation succeeds return true; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also setFileName() and rmdir().

bool QAbstractFileEngine.rename (self, QString newName)

Requests that the file be renamed to newName in the file system. If the operation succeeds return true; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also setFileName().

bool QAbstractFileEngine.rmdir (self, QString dirName, bool recurseParentDirectories)

Requests that the directory dirName is deleted from the file system. When recurseParentDirectories is true, then any empty parent-directories in dirName must also be deleted. If recurseParentDirectories is false, only the dirName leaf-node should be deleted. In most file systems a directory cannot be deleted using this function if it is non-empty. If the operation succeeds return true; otherwise return false.

This virtual function must be reimplemented by all subclasses.

See also setFileName(), remove(), mkdir(), and isRelativePath().

bool QAbstractFileEngine.seek (self, int pos)

Sets the file position to the given offset. Returns true if the position was successfully set; otherwise returns false.

The offset is from the beginning of the file, unless the file is sequential.

See also isSequential().

QAbstractFileEngine.setError (self, QFile.FileError error, QString str)

Sets the error type to error, and the error string to errorString. Call this function to set the error values returned by the higher-level classes.

See also QFile.error(), QIODevice.errorString(), and QIODevice.setErrorString().

QAbstractFileEngine.setFileName (self, QString file)

Sets the file engine's file name to file. This file name is the file that the rest of the virtual functions will operate on.

This virtual function must be reimplemented by all subclasses.

See also fileName() and rename().

bool QAbstractFileEngine.setPermissions (self, int perms)

Requests that the file's permissions be set to perms. The argument perms will be set to the OR-ed together combination of QAbstractFileEngine.FileInfo, with only the QAbstractFileEngine.PermsMask being honored. If the operations succceeds return true; otherwise return false;

This virtual function must be reimplemented by all subclasses.

See also size().

bool QAbstractFileEngine.setSize (self, int size)

Requests that the file be set to size size. If size is larger than the current file then it is filled with 0's, if smaller it is simply truncated. If the operations succceeds return true; otherwise return false;

This virtual function must be reimplemented by all subclasses.

See also size().

int QAbstractFileEngine.size (self)

Returns the size of the file.

See also setSize().

bool QAbstractFileEngine.unmap (self, sip.voidptr ptr)

Unmaps the memory address. Returns true if the unmap succeeds; otherwise returns false.

This function bases its behavior on calling extension() with UnMapExtensionOption. If the engine does not support this extension, false is returned.

This function was introduced in Qt 4.4.

See also map() and supportsExtension().

int QAbstractFileEngine.write (self, str data)

Writes len bytes from data to the file. Returns the number of characters written on success; otherwise returns -1.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractfileenginehandler.html0000644000076500000240000001741312536324470023727 0ustar philstaff00000000000000 QAbstractFileEngineHandler Class Reference
  Home · All Classes · Modules

QAbstractFileEngineHandler Class Reference
[
QtCore module]

The QAbstractFileEngineHandler class provides a way to register custom file engines with your application. More...

Methods

  • __init__ (self)
  • __init__ (self, QAbstractFileEngineHandler)
  • QAbstractFileEngine create (self, QString fileName)

Detailed Description

The QAbstractFileEngineHandler class provides a way to register custom file engines with your application.

QAbstractFileEngineHandler is a factory for creating QAbstractFileEngine objects (file engines), which are used internally by QFile, QFileInfo, and QDir when working with files and directories.

When you open a file, Qt chooses a suitable file engine by passing the file name from QFile or QDir through an internal list of registered file engine handlers. The first handler to recognize the file name is used to create the engine. Qt provides internal file engines for working with regular files and resources, but you can also register your own QAbstractFileEngine subclasses.

To install an application-specific file engine, you subclass QAbstractFileEngineHandler and reimplement create(). When you instantiate the handler (e.g. by creating an instance on the stack or on the heap), it will automatically register with Qt. (The latest registered handler takes precedence over existing handlers.)

For example:

 class ZipEngineHandler : public QAbstractFileEngineHandler
 {
 public:
     QAbstractFileEngine *create(const QString &fileName) const;
 };

 QAbstractFileEngine *ZipEngineHandler.create(const QString &fileName) const
 {
     // ZipEngineHandler returns a ZipEngine for all .zip files
     return fileName.toLower().endsWith(".zip") ? new ZipEngine(fileName) : 0;
 }

 int main(int argc, char **argv)
 {
     QApplication app(argc, argv);

     ZipEngineHandler engine;

     MainWindow window;
     window.show();

     return app.exec();
 }

When the handler is destroyed, it is automatically removed from Qt.

The most common approach to registering a handler is to create an instance as part of the start-up phase of your application. It is also possible to limit the scope of the file engine handler to a particular area of interest (e.g. a special file dialog that needs a custom file engine). By creating the handler inside a local scope, you can precisely control the area in which your engine will be applied without disturbing file operations in other parts of your application.


Method Documentation

QAbstractFileEngineHandler.__init__ (self)

Constructs a file handler and registers it with Qt. Once created this handler's create() function will be called (along with all the other handlers) for any paths used. The most recently created handler that recognizes the given path (i.e. that returns a QAbstractFileEngine) is used for the new path.

See also create().

QAbstractFileEngineHandler.__init__ (self, QAbstractFileEngineHandler)

QAbstractFileEngine QAbstractFileEngineHandler.create (self, QString fileName)

This method is abstract and should be reimplemented in any sub-class.

Creates a file engine for file fileName. Returns 0 if this file handler cannot handle fileName.

Example:

 QAbstractSocketEngine *ZipEngineHandler.create(const QString &fileName) const
 {
     // ZipEngineHandler returns a ZipEngine for all .zip files
     return fileName.toLower().endsWith(".zip") ? new ZipEngine(fileName) : 0;
 }

See also QAbstractFileEngine.create().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractfileengineiterator.html0000644000076500000240000003025512536324471024143 0ustar philstaff00000000000000 QAbstractFileEngineIterator Class Reference
  Home · All Classes · Modules

QAbstractFileEngineIterator Class Reference
[QtCore module]

The QAbstractFileEngineIterator class provides an iterator interface for custom file engines. More...

Methods


Detailed Description

The QAbstractFileEngineIterator class provides an iterator interface for custom file engines.

If all you want is to iterate over entries in a directory, see QDirIterator instead. This class is only for custom file engine authors.

QAbstractFileEngineIterator is a unidirectional single-use virtual iterator that plugs into QDirIterator, providing transparent proxy iteration for custom file engines.

You can subclass QAbstractFileEngineIterator to provide an iterator when writing your own file engine. To plug the iterator into your file system, you simply return an instance of this subclass from a reimplementation of QAbstractFileEngine.beginEntryList().

Example:

 QAbstractFileEngineIterator *
 CustomFileEngine.beginEntryList(QDir.Filters filters, const QStringList &filterNames)
 {
     return new CustomFileEngineIterator(filters, filterNames);
 }

QAbstractFileEngineIterator is associated with a path, name filters, and entry filters. The path is the directory that the iterator lists entries in. The name filters and entry filters are provided for file engines that can optimize directory listing at the iterator level (e.g., network file systems that need to minimize network traffic), but they can also be ignored by the iterator subclass; QAbstractFileEngineIterator already provides the required filtering logics in the matchesFilters() function. You can call dirName() to get the directory name, nameFilters() to get a stringlist of name filters, and filters() to get the entry filters.

The pure virtual function hasNext() returns true if the current directory has at least one more entry (i.e., the directory name is valid and accessible, and we have not reached the end of the entry list), and false otherwise. Reimplement next() to seek to the next entry.

The pure virtual function currentFileName() returns the name of the current entry without advancing the iterator. The currentFilePath() function is provided for convenience; it returns the full path of the current entry.

Here is an example of how to implement an iterator that returns each of three fixed entries in sequence.

 class CustomIterator : public QAbstractFileEngineIterator
 {
 public:
     CustomIterator(const QStringList &nameFilters, QDir.Filters filters)
         : QAbstractFileEngineIterator(nameFilters, filters), index(0)
     {
         // In a real iterator, these entries are fetched from the
         // file system based on the value of path().
         entries << "entry1" << "entry2" << "entry3";
     }

     bool hasNext() const
     {
         return index < entries.size() - 1;
     }

     QString next()
     {
        if (!hasNext())
            return QString();
        ++index;
        return currentFilePath();
     }

     QString currentFileName()
     {
         return entries.at(index);
     }

 private:
     QStringList entries;
     int index;
 };

Note: QAbstractFileEngineIterator does not deal with QDir.IteratorFlags; it simply returns entries for a single directory.


Method Documentation

QAbstractFileEngineIterator.__init__ (self, QDir.Filters filters, QStringList nameFilters)

Constructs a QAbstractFileEngineIterator, using the entry filters filters, and wildcard name filters nameFilters.

QFileInfo QAbstractFileEngineIterator.currentFileInfo (self)

The virtual function returns a QFileInfo for the current directory entry. This function is provided for convenience. It can also be slightly faster than creating a QFileInfo object yourself, as the object returned by this function might contain cached information that QFileInfo otherwise would have to access through the file engine.

See also currentFileName().

QString QAbstractFileEngineIterator.currentFileName (self)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function returns the name of the current directory entry, excluding the path.

See also currentFilePath().

QString QAbstractFileEngineIterator.currentFilePath (self)

Returns the path to the current directory entry. It's the same as prepending path() to the return value of currentFileName().

See also currentFileName().

QDir.Filters QAbstractFileEngineIterator.filters (self)

Returns the entry filters for this iterator.

See also QDir.filter(), nameFilters(), and path().

bool QAbstractFileEngineIterator.hasNext (self)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function returns true if there is at least one more entry in the current directory (i.e., the iterator path is valid and accessible, and the iterator has not reached the end of the entry list).

See also QDirIterator.hasNext().

QStringList QAbstractFileEngineIterator.nameFilters (self)

Returns the name filters for this iterator.

See also QDir.nameFilters(), filters(), and path().

QString QAbstractFileEngineIterator.next (self)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function advances the iterator to the next directory entry, and returns the file path to the current entry.

This function can optionally make use of nameFilters() and filters() to optimize its performance.

Reimplement this function in a subclass to advance the iterator.

See also QDirIterator.next().

QString QAbstractFileEngineIterator.path (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractformbuilder.html0000644000076500000240000001624112536324524022574 0ustar philstaff00000000000000 QAbstractFormBuilder Class Reference
  Home · All Classes · Modules

QAbstractFormBuilder Class Reference
[
QtDesigner module]

The QAbstractFormBuilder class provides a default implementation for classes that create user interfaces at run-time. More...

Inherited by QFormBuilder.

Methods


Detailed Description

The QAbstractFormBuilder class provides a default implementation for classes that create user interfaces at run-time.

QAbstractFormBuilder provides a standard interface and a default implementation for constructing forms from user interface files. It is not intended to be instantiated directly. Use the QFormBuilder class to create user interfaces from UI files at run-time. For example:

         MyForm.MyForm(QWidget *parent)
             : QWidget(parent)
         {
             QFormBuilder builder;
             QFile file(":/forms/myWidget.ui");
             file.open(QFile.ReadOnly);
             QWidget *myWidget = builder.load(&file, this);
             file.close();

             QVBoxLayout *layout = new QVBoxLayout;
             layout->addWidget(myWidget);
             setLayout(layout);
         }

To override certain aspects of the form builder's behavior, subclass QAbstractFormBuilder and reimplement the relevant virtual functions:

  • load() handles reading of UI format files from arbitrary QIODevices, and construction of widgets from the XML data that they contain.
  • save() handles saving of widget details in UI format to arbitrary QIODevices.
  • workingDirectory() and setWorkingDirectory() control the directory in which forms are held. The form builder looks for other resources on paths relative to this directory.

The QFormBuilder class is typically used by custom components and applications that embed Qt Designer. Standalone applications that need to dynamically generate user interfaces at run-time use the QUiLoader, found in the QtUiTools module.


Method Documentation

QAbstractFormBuilder.__init__ (self)

Constructs a new form builder.

QWidget QAbstractFormBuilder.load (self, QIODevice device, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Loads an XML representation of a widget from the given device, and constructs a new widget with the specified parent.

See also save().

QAbstractFormBuilder.save (self, QIODevice dev, QWidget widget)

Saves an XML representation of the given widget to the specified device in the standard UI file format.

See also load().

QAbstractFormBuilder.setWorkingDirectory (self, QDir directory)

Sets the current working directory of the form builder to the specified directory.

See also workingDirectory().

QDir QAbstractFormBuilder.workingDirectory (self)

Returns the current working directory of the form builder.

See also setWorkingDirectory().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractgraphicsshapeitem.html0000644000076500000240000001412612536324505023761 0ustar philstaff00000000000000 QAbstractGraphicsShapeItem Class Reference
  Home · All Classes · Modules

QAbstractGraphicsShapeItem Class Reference
[QtGui module]

The QAbstractGraphicsShapeItem class provides a common base for all path items. More...

Inherits QGraphicsItem.

Inherited by QGraphicsEllipseItem, QGraphicsPathItem, QGraphicsPolygonItem, QGraphicsRectItem and QGraphicsSimpleTextItem.

Methods


Detailed Description

The QAbstractGraphicsShapeItem class provides a common base for all path items.

This class does not fully implement an item by itself; in particular, it does not implement boundingRect() and paint(), which are inherited by QGraphicsItem.

You can subclass this item to provide a simple base implementation of accessors for the item's pen and brush.


Method Documentation

QAbstractGraphicsShapeItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QAbstractGraphicsShapeItem. parent is passed to QGraphicsItem's constructor.

QBrush QAbstractGraphicsShapeItem.brush (self)

Returns the item's brush, or an empty brush if no brush has been set.

See also setBrush().

bool QAbstractGraphicsShapeItem.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QPainterPath QAbstractGraphicsShapeItem.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

QPen QAbstractGraphicsShapeItem.pen (self)

Returns the item's pen. If no pen has been set, this function returns QPen(), a default black solid line pen with 0 width.

See also setPen().

QAbstractGraphicsShapeItem.setBrush (self, QBrush brush)

Sets the item's brush to brush.

The item's brush is used to fill the item.

If you use a brush with a QGradient, the gradient is relative to the item's coordinate system.

See also brush().

QAbstractGraphicsShapeItem.setPen (self, QPen pen)

Sets the pen for this item to pen.

The pen is used to draw the item's outline.

See also pen().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractitemdelegate.html0000644000076500000240000005105412536324500022706 0ustar philstaff00000000000000 QAbstractItemDelegate Class Reference
  Home · All Classes · Modules

QAbstractItemDelegate Class Reference
[QtGui module]

The QAbstractItemDelegate class is used to display and edit data items from a model. More...

Inherits QObject.

Inherited by QItemDelegate and QStyledItemDelegate.

Types

  • enum EndEditHint { NoHint, EditNextItem, EditPreviousItem, SubmitModelCache, RevertModelCache }

Methods

  • __init__ (self, QObject parent = None)
  • QWidget createEditor (self, QWidget parent, QStyleOptionViewItem option, QModelIndex index)
  • bool editorEvent (self, QEvent event, QAbstractItemModel model, QStyleOptionViewItem option, QModelIndex index)
  • bool helpEvent (self, QHelpEvent event, QAbstractItemView view, QStyleOptionViewItem option, QModelIndex index)
  • paint (self, QPainter painter, QStyleOptionViewItem option, QModelIndex index)
  • setEditorData (self, QWidget editor, QModelIndex index)
  • setModelData (self, QWidget editor, QAbstractItemModel model, QModelIndex index)
  • QSize sizeHint (self, QStyleOptionViewItem option, QModelIndex index)
  • updateEditorGeometry (self, QWidget editor, QStyleOptionViewItem option, QModelIndex index)

Static Methods

  • QString elidedText (QFontMetrics fontMetrics, int width, Qt.TextElideMode mode, QString text)

Qt Signals


Detailed Description

The QAbstractItemDelegate class is used to display and edit data items from a model.

A QAbstractItemDelegate provides the interface and common functionality for delegates in the model/view architecture. Delegates display individual items in views, and handle the editing of model data.

The QAbstractItemDelegate class is one of the Model/View Classes and is part of Qt's model/view framework.

To render an item in a custom way, you must implement paint() and sizeHint(). The QItemDelegate class provides default implementations for these functions; if you do not need custom rendering, subclass that class instead.

We give an example of drawing a progress bar in items; in our case for a package management program.

We create the WidgetDelegate class, which inherits from QStyledItemDelegate. We do the drawing in the paint() function:

 void WidgetDelegate.paint(QPainter *painter, const QStyleOptionViewItem &option,
                            const QModelIndex &index) const
 {
     if (index.column() == 1) {
         int progress = index.data().toInt();

         QStyleOptionProgressBar progressBarOption;
         progressBarOption.rect = option.rect;
         progressBarOption.minimum = 0;
         progressBarOption.maximum = 100;
         progressBarOption.progress = progress;
         progressBarOption.text = QString.number(progress) + "%";
         progressBarOption.textVisible = true;

         QApplication.style()->drawControl(QStyle.CE_ProgressBar,
                                            &progressBarOption, painter);
     } else
         QStyledItemDelegate.paint(painter, option, index);

Notice that we use a QStyleOptionProgressBar and initialize its members. We can then use the current QStyle to draw it.

To provide custom editing, there are two approaches that can be used. The first approach is to create an editor widget and display it directly on top of the item. To do this you must reimplement createEditor() to provide an editor widget, setEditorData() to populate the editor with the data from the model, and setModelData() so that the delegate can update the model with data from the editor.

The second approach is to handle user events directly by reimplementing editorEvent().


Type Documentation

QAbstractItemDelegate.EndEditHint

This enum describes the different hints that the delegate can give to the model and view components to make editing data in a model a comfortable experience for the user.

Constant Value Description
QAbstractItemDelegate.NoHint 0 There is no recommended action to be performed.

These hints let the delegate influence the behavior of the view:

Constant Value Description
QAbstractItemDelegate.EditNextItem 1 The view should use the delegate to open an editor on the next item in the view.
QAbstractItemDelegate.EditPreviousItem 2 The view should use the delegate to open an editor on the previous item in the view.

Note that custom views may interpret the concepts of next and previous differently.

The following hints are most useful when models are used that cache data, such as those that manipulate data locally in order to increase performance or conserve network bandwidth.

Constant Value Description
QAbstractItemDelegate.SubmitModelCache 3 If the model caches data, it should write out cached data to the underlying data store.
QAbstractItemDelegate.RevertModelCache 4 If the model caches data, it should discard cached data and replace it with data from the underlying data store.

Although models and views should respond to these hints in appropriate ways, custom components may ignore any or all of them if they are not relevant.


Method Documentation

QAbstractItemDelegate.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new abstract item delegate with the given parent.

QWidget QAbstractItemDelegate.createEditor (self, QWidget parent, QStyleOptionViewItem option, QModelIndex index)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Returns the editor to be used for editing the data item with the given index. Note that the index contains information about the model being used. The editor's parent widget is specified by parent, and the item options by option.

The base implementation returns 0. If you want custom editing you will need to reimplement this function.

The returned editor widget should have Qt.StrongFocus; otherwise, QMouseEvents received by the widget will propagate to the view. The view's background will shine through unless the editor paints its own background (e.g., with setAutoFillBackground()).

See also setModelData() and setEditorData().

bool QAbstractItemDelegate.editorEvent (self, QEvent event, QAbstractItemModel model, QStyleOptionViewItem option, QModelIndex index)

When editing of an item starts, this function is called with the event that triggered the editing, the model, the index of the item, and the option used for rendering the item.

Mouse events are sent to editorEvent() even if they don't start editing of the item. This can, for instance, be useful if you wish to open a context menu when the right mouse button is pressed on an item.

The base implementation returns false (indicating that it has not handled the event).

QString QAbstractItemDelegate.elidedText (QFontMetrics fontMetrics, int width, Qt.TextElideMode mode, QString text)

bool QAbstractItemDelegate.helpEvent (self, QHelpEvent event, QAbstractItemView view, QStyleOptionViewItem option, QModelIndex index)

This method is also a Qt slot with the C++ signature bool helpEvent(QHelpEvent*,QAbstractItemView*,const QStyleOptionViewItem&,const QModelIndex&).

Whenever a help event occurs, this function is called with the event view option and the index that corresponds to the item where the event occurs.

Returns true if the delegate can handle the event; otherwise returns false. A return value of true indicates that the data obtained using the index had the required role.

For QEvent.ToolTip and QEvent.WhatsThis events that were handled successfully, the relevant popup may be shown depending on the user's system configuration.

This function was introduced in Qt 4.3.

See also QHelpEvent.

QAbstractItemDelegate.paint (self, QPainter painter, QStyleOptionViewItem option, QModelIndex index)

This method is abstract and should be reimplemented in any sub-class.

This pure abstract function must be reimplemented if you want to provide custom rendering. Use the painter and style option to render the item specified by the item index.

If you reimplement this you must also reimplement sizeHint().

QAbstractItemDelegate.setEditorData (self, QWidget editor, QModelIndex index)

Sets the contents of the given editor to the data for the item at the given index. Note that the index contains information about the model being used.

The base implementation does nothing. If you want custom editing you will need to reimplement this function.

See also setModelData().

QAbstractItemDelegate.setModelData (self, QWidget editor, QAbstractItemModel model, QModelIndex index)

Sets the data for the item at the given index in the model to the contents of the given editor.

The base implementation does nothing. If you want custom editing you will need to reimplement this function.

See also setEditorData().

QSize QAbstractItemDelegate.sizeHint (self, QStyleOptionViewItem option, QModelIndex index)

This method is abstract and should be reimplemented in any sub-class.

This pure abstract function must be reimplemented if you want to provide custom rendering. The options are specified by option and the model item by index.

If you reimplement this you must also reimplement paint().

QAbstractItemDelegate.updateEditorGeometry (self, QWidget editor, QStyleOptionViewItem option, QModelIndex index)

Updates the geometry of the editor for the item with the given index, according to the rectangle specified in the option. If the item has an internal layout, the editor will be laid out accordingly. Note that the index contains information about the model being used.

The base implementation does nothing. If you want custom editing you must reimplement this function.


Qt Signal Documentation

void closeEditor (QWidget*,QAbstractItemDelegate::EndEditHint = QAbstractItemDelegate.NoHint)

This is the default overload of this signal.

This signal is emitted when the user has finished editing an item using the specified editor.

The hint provides a way for the delegate to influence how the model and view behave after editing is completed. It indicates to these components what action should be performed next to provide a comfortable editing experience for the user. For example, if EditNextItem is specified, the view should use a delegate to open an editor on the next item in the model.

See also EndEditHint.

void commitData (QWidget*)

This is the default overload of this signal.

This signal must be emitted when the editor widget has completed editing the data, and wants to write it back into the model.

void sizeHintChanged (const QModelIndex&)

This is the default overload of this signal.

This signal must be emitted when the sizeHint() of index changed.

Views automatically connect to this signal and relayout items as necessary.

This function was introduced in Qt 4.4.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractitemmodel.html0000644000076500000240000027421212536324471022246 0ustar philstaff00000000000000 QAbstractItemModel Class Reference
  Home · All Classes · Modules

QAbstractItemModel Class Reference
[QtCore module]

The QAbstractItemModel class provides the abstract interface for item model classes. More...

Inherits QObject.

Inherited by QAbstractListModel, QAbstractProxyModel, QAbstractTableModel, QDirModel, QFileSystemModel, QHelpContentModel, QProxyModel and QStandardItemModel.

Methods

  • __init__ (self, QObject parent = None)
  • beginInsertColumns (self, QModelIndex parent, int first, int last)
  • beginInsertRows (self, QModelIndex parent, int first, int last)
  • bool beginMoveColumns (self, QModelIndex sourceParent, int sourceFirst, int sourceLast, QModelIndex destinationParent, int destinationColumn)
  • bool beginMoveRows (self, QModelIndex sourceParent, int sourceFirst, int sourceLast, QModelIndex destinationParent, int destinationRow)
  • beginRemoveColumns (self, QModelIndex parent, int first, int last)
  • beginRemoveRows (self, QModelIndex parent, int first, int last)
  • QModelIndex buddy (self, QModelIndex index)
  • bool canFetchMore (self, QModelIndex parent)
  • changePersistentIndex (self, QModelIndex from, QModelIndex to)
  • changePersistentIndexList (self, list-of-QModelIndex from, list-of-QModelIndex to)
  • int columnCount (self, QModelIndex parent = QModelIndex())
  • QModelIndex createIndex (self, int row, int column, object object = 0)
  • QVariant data (self, QModelIndex index, int role = Qt.DisplayRole)
  • bool decodeData (self, int row, int column, QModelIndex parent, QDataStream stream)
  • bool dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)
  • encodeData (self, list-of-QModelIndex indexes, QDataStream stream)
  • fetchMore (self, QModelIndex parent)
  • Qt.ItemFlags flags (self, QModelIndex index)
  • bool hasChildren (self, QModelIndex parent = QModelIndex())
  • bool hasIndex (self, int row, int column, QModelIndex parent = QModelIndex())
  • QVariant headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)
  • QModelIndex index (self, int row, int column, QModelIndex parent = QModelIndex())
  • bool insertColumn (self, int column, QModelIndex parent = QModelIndex())
  • bool insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())
  • bool insertRow (self, int row, QModelIndex parent = QModelIndex())
  • bool insertRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • dict-of-int-QVariant itemData (self, QModelIndex index)
  • list-of-QModelIndex match (self, QModelIndex start, int role, QVariant value, int hits = 1, Qt.MatchFlags flags = Qt.MatchStartsWith|Qt.MatchWrap)
  • QMimeData mimeData (self, list-of-QModelIndex indexes)
  • QStringList mimeTypes (self)
  • QModelIndex parent (self, QModelIndex child)
  • QObject parent (self)
  • list-of-QModelIndex persistentIndexList (self)
  • bool removeColumn (self, int column, QModelIndex parent = QModelIndex())
  • bool removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())
  • bool removeRow (self, int row, QModelIndex parent = QModelIndex())
  • bool removeRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • reset (self)
  • revert (self)
  • dict-of-int-QByteArray roleNames (self)
  • int rowCount (self, QModelIndex parent = QModelIndex())
  • bool setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)
  • bool setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)
  • bool setItemData (self, QModelIndex index, dict-of-int-QVariant roles)
  • setRoleNames (self, dict-of-int-QByteArray roleNames)
  • setSupportedDragActions (self, Qt.DropActions)
  • QModelIndex sibling (self, int row, int column, QModelIndex idx)
  • sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)
  • QSize span (self, QModelIndex index)
  • bool submit (self)
  • Qt.DropActions supportedDragActions (self)
  • Qt.DropActions supportedDropActions (self)

Qt Signals


Detailed Description

The QAbstractItemModel class provides the abstract interface for item model classes.

The QAbstractItemModel class defines the standard interface that item models must use to be able to interoperate with other components in the model/view architecture. It is not supposed to be instantiated directly. Instead, you should subclass it to create new models.

The QAbstractItemModel class is one of the Model/View Classes and is part of Qt's model/view framework.

If you need a model to use with a QListView or a QTableView, you should consider subclassing QAbstractListModel or QAbstractTableModel instead of this class.

The underlying data model is exposed to views and delegates as a hierarchy of tables. If you do not make use of the hierarchy, then the model is a simple table of rows and columns. Each item has a unique index specified by a QModelIndex.

Every item of data that can be accessed via a model has an associated model index. You can obtain this model index using the index() function. Each index may have a sibling() index; child items have a parent() index.

Each item has a number of data elements associated with it and they can be retrieved by specifying a role (see Qt.ItemDataRole) to the model's data() function. Data for all available roles can be obtained at the same time using the itemData() function.

Data for each role is set using a particular Qt.ItemDataRole. Data for individual roles are set individually with setData(), or they can be set for all roles with setItemData().

Items can be queried with flags() (see Qt.ItemFlag) to see if they can be selected, dragged, or manipulated in other ways.

If an item has child objects, hasChildren() returns true for the corresponding index.

The model has a rowCount() and a columnCount() for each level of the hierarchy. Rows and columns can be inserted and removed with insertRows(), insertColumns(), removeRows(), and removeColumns().

The model emits signals to indicate changes. For example, dataChanged() is emitted whenever items of data made available by the model are changed. Changes to the headers supplied by the model cause headerDataChanged() to be emitted. If the structure of the underlying data changes, the model can emit layoutChanged() to indicate to any attached views that they should redisplay any items shown, taking the new structure into account.

The items available through the model can be searched for particular data using the match() function.

To sort the model, you can use sort().

Subclassing

Note: Some general guidelines for subclassing models are available in the Model Subclassing Reference.

When subclassing QAbstractItemModel, at the very least you must implement index(), parent(), rowCount(), columnCount(), and data(). These functions are used in all read-only models, and form the basis of editable models.

You can also reimplement hasChildren() to provide special behavior for models where the implementation of rowCount() is expensive. This makes it possible for models to restrict the amount of data requested by views, and can be used as a way to implement lazy population of model data.

To enable editing in your model, you must also implement setData(), and reimplement flags() to ensure that ItemIsEditable is returned. You can also reimplement headerData() and setHeaderData() to control the way the headers for your model are presented.

The dataChanged() and headerDataChanged() signals must be emitted explicitly when reimplementing the setData() and setHeaderData() functions, respectively.

Custom models need to create model indexes for other components to use. To do this, call createIndex() with suitable row and column numbers for the item, and an identifier for it, either as a pointer or as an integer value. The combination of these values must be unique for each item. Custom models typically use these unique identifiers in other reimplemented functions to retrieve item data and access information about the item's parents and children. See the Simple Tree Model Example for more information about unique identifiers.

It is not necessary to support every role defined in Qt.ItemDataRole. Depending on the type of data contained within a model, it may only be useful to implement the data() function to return valid information for some of the more common roles. Most models provide at least a textual representation of item data for the Qt.DisplayRole, and well-behaved models should also provide valid information for the Qt.ToolTipRole and Qt.WhatsThisRole. Supporting these roles enables models to be used with standard Qt views. However, for some models that handle highly-specialized data, it may be appropriate to provide data only for user-defined roles.

Models that provide interfaces to resizable data structures can provide implementations of insertRows(), removeRows(), insertColumns(),and removeColumns(). When implementing these functions, it is important to notify any connected views about changes to the model's dimensions both before and after they occur:

The private signals that these functions emit give attached components the chance to take action before any data becomes unavailable. The encapsulation of the insert and remove operations with these begin and end functions also enables the model to manage persistent model indexes correctly. If you want selections to be handled properly, you must ensure that you call these functions. If you insert or remove an item with children, you do not need to call these functions for the child items. In other words, the parent item will take care of its child items.

To create models that populate incrementally, you can reimplement fetchMore() and canFetchMore(). If the reimplementation of fetchMore() adds rows to the model, beginInsertRows() and endInsertRows() must be called.


Method Documentation

QAbstractItemModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an abstract item model with the given parent.

QAbstractItemModel.beginInsertColumns (self, QModelIndex parent, int first, int last)

Begins a column insertion operation.

When reimplementing insertColumns() in a subclass, you must call this function before inserting data into the model's underlying data store.

The parent index corresponds to the parent into which the new columns are inserted; first and last are the column numbers of the new columns will have after they have been inserted.

Inserting columns Specify the first and last column numbers for the span of columns you want to insert into an item in a model.

For example, as shown in the diagram, we insert three columns before column 4, so first is 4 and last is 6:

 beginInsertColumns(parent, 4, 6);

This inserts the three new columns as columns 4, 5, and 6.

Appending columns To append columns, insert them after the last column.

For example, as shown in the diagram, we append three columns to a collection of six existing columns (ending in column 5), so first is 6 and last is 8:

 beginInsertColumns(parent, 6, 8);

This appends the two new columns as columns 6, 7, and 8.

Note: This function emits the columnsAboutToBeInserted() signal which connected views (or proxies) must handle before the data is inserted. Otherwise, the views may end up in an invalid state.

See also endInsertColumns().

QAbstractItemModel.beginInsertRows (self, QModelIndex parent, int first, int last)

Begins a row insertion operation.

When reimplementing insertRows() in a subclass, you must call this function before inserting data into the model's underlying data store.

The parent index corresponds to the parent into which the new rows are inserted; first and last are the row numbers that the new rows will have after they have been inserted.

Inserting rows Specify the first and last row numbers for the span of rows you want to insert into an item in a model.

For example, as shown in the diagram, we insert three rows before row 2, so first is 2 and last is 4:

 beginInsertRows(parent, 2, 4);

This inserts the three new rows as rows 2, 3, and 4.

Appending rows To append rows, insert them after the last row.

For example, as shown in the diagram, we append two rows to a collection of 4 existing rows (ending in row 3), so first is 4 and last is 5:

 beginInsertRows(parent, 4, 5);

This appends the two new rows as rows 4 and 5.

Note: This function emits the rowsAboutToBeInserted() signal which connected views (or proxies) must handle before the data is inserted. Otherwise, the views may end up in an invalid state.

See also endInsertRows().

bool QAbstractItemModel.beginMoveColumns (self, QModelIndex sourceParent, int sourceFirst, int sourceLast, QModelIndex destinationParent, int destinationColumn)

Begins a column move operation.

When reimplementing a subclass, this method simplifies moving entities in your model. This method is responsible for moving persistent indexes in the model, which you would otherwise be required to do yourself. Using beginMoveRows and endMoveRows is an alternative to emitting layoutAboutToBeChanged and layoutChanged directly along with changePersistentIndexes. layoutAboutToBeChanged is emitted by this method for compatibility reasons.

The sourceParent index corresponds to the parent from which the columns are moved; sourceFirst and sourceLast are the first and last column numbers of the columns to be moved. The destinationParent index corresponds to the parent into which those columns are moved. The destinationChild is the column to which the columns will be moved. That is, the index at column sourceFirst in sourceParent will become column destinationChild in destinationParent, followed by all other columns up to sourceLast.

However, when moving columns down in the same parent (sourceParent and destinationParent are equal), the columnss will be placed before the destinationChild index. That is, if you wish to move columns 0 and 1 so they will become columns 1 and 2, destinationChild should be 3. In this case, the new index for the source column i (which is between sourceFirst and sourceLast) is equal to (destinationChild-sourceLast-1+i).

Note that if sourceParent and destinationParent are the same, you must ensure that the destinationChild is not within the range of sourceFirst and sourceLast + 1. You must also ensure that you do not attempt to move a column to one of its own children or ancestors. This method returns false if either condition is true, in which case you should abort your move operation.

This function was introduced in Qt 4.6.

See also endMoveColumns().

bool QAbstractItemModel.beginMoveRows (self, QModelIndex sourceParent, int sourceFirst, int sourceLast, QModelIndex destinationParent, int destinationRow)

Begins a row move operation.

When reimplementing a subclass, this method simplifies moving entities in your model. This method is responsible for moving persistent indexes in the model, which you would otherwise be required to do yourself. Using beginMoveRows and endMoveRows is an alternative to emitting layoutAboutToBeChanged and layoutChanged directly along with changePersistentIndexes. layoutAboutToBeChanged is emitted by this method for compatibility reasons.

The sourceParent index corresponds to the parent from which the rows are moved; sourceFirst and sourceLast are the first and last row numbers of the rows to be moved. The destinationParent index corresponds to the parent into which those rows are moved. The destinationChild is the row to which the rows will be moved. That is, the index at row sourceFirst in sourceParent will become row destinationChild in destinationParent, followed by all other rows up to sourceLast.

However, when moving rows down in the same parent (sourceParent and destinationParent are equal), the rows will be placed before the destinationChild index. That is, if you wish to move rows 0 and 1 so they will become rows 1 and 2, destinationChild should be 3. In this case, the new index for the source row i (which is between sourceFirst and sourceLast) is equal to (destinationChild-sourceLast-1+i).

Note that if sourceParent and destinationParent are the same, you must ensure that the destinationChild is not within the range of sourceFirst and sourceLast + 1. You must also ensure that you do not attempt to move a row to one of its own children or ancestors. This method returns false if either condition is true, in which case you should abort your move operation.

Moving rows to another parent Specify the first and last row numbers for the span of rows in the source parent you want to move in the model. Also specify the row in the destination parent to move the span to.

For example, as shown in the diagram, we move three rows from row 2 to 4 in the source, so sourceFirst is 2 and sourceLast is 4. We move those items to above row 2 in the destination, so destinationChild is 2.

 beginMoveRows(sourceParent, 2, 4, destinationParent, 2);

This moves the three rows rows 2, 3, and 4 in the source to become 2, 3 and 4 in the destination. Other affected siblings are displaced accordingly.

Moving rows to append to another parent To append rows to another parent, move them to after the last row.

For example, as shown in the diagram, we move three rows to a collection of 6 existing rows (ending in row 5), so destinationChild is 6:

 beginMoveRows(sourceParent, 2, 4, destinationParent, 6);

This moves the target rows to the end of the target parent as 6, 7 and 8.

Moving rows in the same parent up To move rows within the same parent, specify the row to move them to.

For example, as shown in the diagram, we move one item from row 2 to row 0, so sourceFirst and sourceLast are 2 and destinationChild is 0.

 beginMoveRows(parent, 2, 2, parent, 0);

Note that other rows may be displaced accordingly. Note also that when moving items within the same parent you should not attempt invalid or no-op moves. In the above example, item 2 is at row 2 before the move, so it can not be moved to row 2 (where it is already) or row 3 (no-op as row 3 means above row 3, where it is already)

Moving rows in the same parent down To move rows within the same parent, specify the row to move them to.

For example, as shown in the diagram, we move one item from row 2 to row 4, so sourceFirst and sourceLast are 2 and destinationChild is 4.

 beginMoveRows(parent, 2, 2, parent, 4);

Note that other rows may be displaced accordingly.

This function was introduced in Qt 4.6.

See also endMoveRows().

QAbstractItemModel.beginRemoveColumns (self, QModelIndex parent, int first, int last)

Begins a column removal operation.

When reimplementing removeColumns() in a subclass, you must call this function before removing data from the model's underlying data store.

The parent index corresponds to the parent from which the new columns are removed; first and last are the column numbers of the first and last columns to be removed.

Removing columns Specify the first and last column numbers for the span of columns you want to remove from an item in a model.

For example, as shown in the diagram, we remove the three columns from column 4 to column 6, so first is 4 and last is 6:

 beginRemoveColumns(parent, 4, 6);

Note: This function emits the columnsAboutToBeRemoved() signal which connected views (or proxies) must handle before the data is removed. Otherwise, the views may end up in an invalid state.

See also endRemoveColumns().

QAbstractItemModel.beginRemoveRows (self, QModelIndex parent, int first, int last)

Begins a row removal operation.

When reimplementing removeRows() in a subclass, you must call this function before removing data from the model's underlying data store.

The parent index corresponds to the parent from which the new rows are removed; first and last are the row numbers of the rows to be removed.

Removing rows Specify the first and last row numbers for the span of rows you want to remove from an item in a model.

For example, as shown in the diagram, we remove the two rows from row 2 to row 3, so first is 2 and last is 3:

 beginRemoveRows(parent, 2, 3);

Note: This function emits the rowsAboutToBeRemoved() signal which connected views (or proxies) must handle before the data is removed. Otherwise, the views may end up in an invalid state.

See also endRemoveRows().

QAbstractItemModel.beginResetModel (self)

Begins a model reset operation.

A reset operation resets the model to its current state in any attached views.

Note: Any views attached to this model will be reset as well.

When a model is reset it means that any previous data reported from the model is now invalid and has to be queried for again. This also means that the current item and any selected items will become invalid.

When a model radically changes its data it can sometimes be easier to just call this function rather than emit dataChanged() to inform other components when the underlying data source, or its structure, has changed.

You must call this function before resetting any internal data structures in your model or proxy model.

This function was introduced in Qt 4.6.

See also modelAboutToBeReset(), modelReset(), and endResetModel().

QModelIndex QAbstractItemModel.buddy (self, QModelIndex index)

Returns a model index for the buddy of the item represented by index. When the user wants to edit an item, the view will call this function to check whether another item in the model should be edited instead. Then, the view will construct a delegate using the model index returned by the buddy item.

The default implementation of this function has each item as its own buddy.

bool QAbstractItemModel.canFetchMore (self, QModelIndex parent)

Returns true if there is more data available for parent; otherwise returns false.

The default implementation always returns false.

If canFetchMore() returns true, QAbstractItemView will call fetchMore(). However, the fetchMore() function is only called when the model is being populated incrementally.

See also fetchMore().

QAbstractItemModel.changePersistentIndex (self, QModelIndex from, QModelIndex to)

Changes the QPersistentModelIndex that is equal to the given from model index to the given to model index.

If no persistent model index equal to the given from model index was found, nothing is changed.

See also persistentIndexList() and changePersistentIndexList().

QAbstractItemModel.changePersistentIndexList (self, list-of-QModelIndex from, list-of-QModelIndex to)

Changes the QPersistentModelIndexes that is equal to the indexes in the given from model index list to the given to model index list.

If no persistent model indexes equal to the indexes in the given from model index list was found, nothing is changed.

This function was introduced in Qt 4.1.

See also persistentIndexList() and changePersistentIndex().

int QAbstractItemModel.columnCount (self, QModelIndex parent = QModelIndex())

This method is abstract and should be reimplemented in any sub-class.

Returns the number of columns for the children of the given parent.

In most subclasses, the number of columns is independent of the parent.

For example:

 int DomModel.columnCount(const QModelIndex &/*parent*/) const
 {
     return 3;
 }

Note: When implementing a table based model, columnCount() should return 0 when the parent is valid.

See also rowCount().

QModelIndex QAbstractItemModel.createIndex (self, int row, int column, object object = 0)

Creates a model index for the given row and column with the internal pointer ptr.

When using a QSortFilterProxyModel, its indexes have their own internal pointer. It is not advisable to access this internal pointer outside of the model. Use the data() function instead.

This function provides a consistent interface that model subclasses must use to create model indexes.

QVariant QAbstractItemModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

This method is abstract and should be reimplemented in any sub-class.

Returns the data stored under the given role for the item referred to by the index.

Note: If you do not have a value to return, return an invalid QVariant instead of returning 0.

See also Qt.ItemDataRole, setData(), and headerData().

bool QAbstractItemModel.decodeData (self, int row, int column, QModelIndex parent, QDataStream stream)

bool QAbstractItemModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Handles the data supplied by a drag and drop operation that ended with the given action.

Returns true if the data and action can be handled by the model; otherwise returns false.

The specified row, column and parent indicate the location of an item in the model where the operation ended. It is the responsibility of the model to complete the action at the correct location.

For instance, a drop action on an item in a QTreeView can result in new items either being inserted as children of the item specified by row, column, and parent, or as siblings of the item.

When row and column are -1 it means that the dropped data should be considered as dropped directly on parent. Usually this will mean appending the data as child items of parent. If row and column are greater than or equal zero, it means that the drop occurred just before the specified row and column in the specified parent.

See also supportedDropActions() and Using drag and drop with item views.

QAbstractItemModel.encodeData (self, list-of-QModelIndex indexes, QDataStream stream)

QAbstractItemModel.endInsertColumns (self)

Ends a column insertion operation.

When reimplementing insertColumns() in a subclass, you must call this function after inserting data into the model's underlying data store.

See also beginInsertColumns().

QAbstractItemModel.endInsertRows (self)

Ends a row insertion operation.

When reimplementing insertRows() in a subclass, you must call this function after inserting data into the model's underlying data store.

See also beginInsertRows().

QAbstractItemModel.endMoveColumns (self)

Ends a column move operation.

When implementing a subclass, you must call this function after moving data within the model's underlying data store.

layoutChanged is emitted by this method for compatibility reasons.

This function was introduced in Qt 4.6.

See also beginMoveColumns().

QAbstractItemModel.endMoveRows (self)

Ends a row move operation.

When implementing a subclass, you must call this function after moving data within the model's underlying data store.

layoutChanged is emitted by this method for compatibility reasons.

This function was introduced in Qt 4.6.

See also beginMoveRows().

QAbstractItemModel.endRemoveColumns (self)

Ends a column removal operation.

When reimplementing removeColumns() in a subclass, you must call this function after removing data from the model's underlying data store.

See also beginRemoveColumns().

QAbstractItemModel.endRemoveRows (self)

Ends a row removal operation.

When reimplementing removeRows() in a subclass, you must call this function after removing data from the model's underlying data store.

See also beginRemoveRows().

QAbstractItemModel.endResetModel (self)

Completes a model reset operation.

You must call this function after resetting any internal data structure in your model or proxy model.

This function was introduced in Qt 4.6.

See also beginResetModel().

QAbstractItemModel.fetchMore (self, QModelIndex parent)

Fetches any available data for the items with the parent specified by the parent index.

Reimplement this if you are populating your model incrementally.

The default implementation does nothing.

See also canFetchMore().

Qt.ItemFlags QAbstractItemModel.flags (self, QModelIndex index)

Returns the item flags for the given index.

The base class implementation returns a combination of flags that enables the item (ItemIsEnabled) and allows it to be selected (ItemIsSelectable).

See also Qt.ItemFlags.

bool QAbstractItemModel.hasChildren (self, QModelIndex parent = QModelIndex())

Returns true if parent has any children; otherwise returns false.

Use rowCount() on the parent to find out the number of children.

See also parent() and index().

bool QAbstractItemModel.hasIndex (self, int row, int column, QModelIndex parent = QModelIndex())

Returns true if the model returns a valid QModelIndex for row and column with parent, otherwise returns false.

QVariant QAbstractItemModel.headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)

Returns the data for the given role and section in the header with the specified orientation.

For horizontal headers, the section number corresponds to the column number. Similarly, for vertical headers, the section number corresponds to the row number.

See also Qt.ItemDataRole, setHeaderData(), and QHeaderView.

QModelIndex QAbstractItemModel.index (self, int row, int column, QModelIndex parent = QModelIndex())

This method is abstract and should be reimplemented in any sub-class.

Returns the index of the item in the model specified by the given row, column and parent index.

When reimplementing this function in a subclass, call createIndex() to generate model indexes that other components can use to refer to items in your model.

See also createIndex().

bool QAbstractItemModel.insertColumn (self, int column, QModelIndex parent = QModelIndex())

Inserts a single column before the given column in the child items of the parent specified.

Returns true if the column is inserted; otherwise returns false.

See also insertColumns(), insertRow(), and removeColumn().

bool QAbstractItemModel.insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())

On models that support this, inserts count new columns into the model before the given column. The items in each new column will be children of the item represented by the parent model index.

If column is 0, the columns are prepended to any existing columns.

If column is columnCount(), the columns are appended to any existing columns.

If parent has no children, a single row with count columns is inserted.

Returns true if the columns were successfully inserted; otherwise returns false.

The base class implementation does nothing and returns false.

If you implement your own model, you can reimplement this function if you want to support insertions. Alternatively, you can provide your own API for altering the data.

See also insertRows(), removeColumns(), beginInsertColumns(), and endInsertColumns().

bool QAbstractItemModel.insertRow (self, int row, QModelIndex parent = QModelIndex())

Note: The base class implementation of this function does nothing and returns false.

Inserts a single row before the given row in the child items of the parent specified.

Returns true if the row is inserted; otherwise returns false.

See also insertRows(), insertColumn(), and removeRow().

bool QAbstractItemModel.insertRows (self, int row, int count, QModelIndex parent = QModelIndex())

Note: The base class implementation of this function does nothing and returns false.

On models that support this, inserts count rows into the model before the given row. Items in the new row will be children of the item represented by the parent model index.

If row is 0, the rows are prepended to any existing rows in the parent.

If row is rowCount(), the rows are appended to any existing rows in the parent.

If parent has no children, a single column with count rows is inserted.

Returns true if the rows were successfully inserted; otherwise returns false.

If you implement your own model, you can reimplement this function if you want to support insertions. Alternatively, you can provide your own API for altering the data. In either case, you will need to call beginInsertRows() and endInsertRows() to notify other components that the model has changed.

See also insertColumns(), removeRows(), beginInsertRows(), and endInsertRows().

dict-of-int-QVariant QAbstractItemModel.itemData (self, QModelIndex index)

Returns a map with values for all predefined roles in the model for the item at the given index.

Reimplement this function if you want to extend the default behavior of this function to include custom roles in the map.

See also setItemData(), Qt.ItemDataRole, and data().

list-of-QModelIndex QAbstractItemModel.match (self, QModelIndex start, int role, QVariant value, int hits = 1, Qt.MatchFlags flags = Qt.MatchStartsWith|Qt.MatchWrap)

Returns a list of indexes for the items in the column of the start index where data stored under the given role matches the specified value. The way the search is performed is defined by the flags given. The list that is returned may be empty.

The search begins from the start index, and continues until the number of matching data items equals hits, the search reaches the last row, or the search reaches start again - depending on whether MatchWrap is specified in flags. If you want to search for all matching items, use hits = -1.

By default, this function will perform a wrapping, string-based comparison on all items, searching for items that begin with the search term specified by value.

Note: The default implementation of this function only searches columns. Reimplement this function to include a different search behavior.

QMimeData QAbstractItemModel.mimeData (self, list-of-QModelIndex indexes)

The QMimeData result

Returns an object that contains serialized items of data corresponding to the list of indexes specified. The formats used to describe the encoded data is obtained from the mimeTypes() function.

If the list of indexes is empty, or there are no supported MIME types, 0 is returned rather than a serialized empty list.

See also mimeTypes() and dropMimeData().

QStringList QAbstractItemModel.mimeTypes (self)

Returns a list of MIME types that can be used to describe a list of model indexes.

See also mimeData().

QModelIndex QAbstractItemModel.parent (self, QModelIndex child)

This method is abstract and should be reimplemented in any sub-class.

Returns the parent of the model item with the given index. If the item has no parent, an invalid QModelIndex is returned.

A common convention used in models that expose tree data structures is that only items in the first column have children. For that case, when reimplementing this function in a subclass the column of the returned QModelIndex would be 0.

When reimplementing this function in a subclass, be careful to avoid calling QModelIndex member functions, such as QModelIndex.parent(), since indexes belonging to your model will simply call your implementation, leading to infinite recursion.

See also createIndex().

QObject QAbstractItemModel.parent (self)

list-of-QModelIndex QAbstractItemModel.persistentIndexList (self)

Returns the list of indexes stored as persistent indexes in the model.

This function was introduced in Qt 4.2.

bool QAbstractItemModel.removeColumn (self, int column, QModelIndex parent = QModelIndex())

Removes the given column from the child items of the parent specified.

Returns true if the column is removed; otherwise returns false.

See also removeColumns(), removeRow(), and insertColumn().

bool QAbstractItemModel.removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())

On models that support this, removes count columns starting with the given column under parent parent from the model.

Returns true if the columns were successfully removed; otherwise returns false.

The base class implementation does nothing and returns false.

If you implement your own model, you can reimplement this function if you want to support removing. Alternatively, you can provide your own API for altering the data.

See also removeColumn(), removeRows(), insertColumns(), beginRemoveColumns(), and endRemoveColumns().

bool QAbstractItemModel.removeRow (self, int row, QModelIndex parent = QModelIndex())

Removes the given row from the child items of the parent specified.

Returns true if the row is removed; otherwise returns false.

This is a convenience function that calls removeRows(). The QAbstractItemModel implementation of removeRows() does nothing.

See also removeRows(), removeColumn(), and insertRow().

bool QAbstractItemModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

On models that support this, removes count rows starting with the given row under parent parent from the model.

Returns true if the rows were successfully removed; otherwise returns false.

The base class implementation does nothing and returns false.

If you implement your own model, you can reimplement this function if you want to support removing. Alternatively, you can provide your own API for altering the data.

See also removeRow(), removeColumns(), insertColumns(), beginRemoveRows(), and endRemoveRows().

QAbstractItemModel.reset (self)

Resets the model to its original state in any attached views.

Note: Use beginResetModel() and endResetModel() instead whenever possible. Use this method only if there is no way to call beginResetModel() before invalidating the model. Otherwise it could lead to unexpected behaviour, especially when used with proxy models.

QAbstractItemModel.resetInternalData (self)

This method is also a Qt slot with the C++ signature void resetInternalData().

This slot is called just after the internal data of a model is cleared while it is being reset.

This slot is provided the convenience of subclasses of concrete proxy models, such as subclasses of QSortFilterProxyModel which maintain extra data.

 class CustomDataProxy : public QSortFilterProxyModel
 {
     Q_OBJECT
 public:
     CustomDataProxy(QObject *parent)
       : QSortFilterProxyModel(parent)
     {
     }

     ...

     QVariant data(const QModelIndex &index, int role)
     {
         if (role != Qt.BackgroundRole)
             return QSortFilterProxyModel.data(index, role);

         if (m_customData.contains(index.row()))
             return m_customData.value(index.row());
         return QSortFilterProxyModel.data(index, role);
     }

 private slots:
     void resetInternalData()
     {
         m_customData.clear();
     }

 private:
   QHash<int, QVariant> m_customData;
 };

This function was introduced in Qt 4.8.

See also modelAboutToBeReset() and modelReset().

QAbstractItemModel.revert (self)

This method is also a Qt slot with the C++ signature void revert().

Lets the model know that it should discard cached information. This function is typically used for row editing.

See also submit().

dict-of-int-QByteArray QAbstractItemModel.roleNames (self)

Returns the model's role names.

This function was introduced in Qt 4.6.

See also setRoleNames().

int QAbstractItemModel.rowCount (self, QModelIndex parent = QModelIndex())

This method is abstract and should be reimplemented in any sub-class.

Returns the number of rows under the given parent. When the parent is valid it means that rowCount is returning the number of children of parent.

Note: When implementing a table based model, rowCount() should return 0 when the parent is valid.

See also columnCount().

bool QAbstractItemModel.setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)

Sets the role data for the item at index to value.

Returns true if successful; otherwise returns false.

The dataChanged() signal should be emitted if the data was successfully set.

The base class implementation returns false. This function and data() must be reimplemented for editable models.

See also Qt.ItemDataRole, data(), and itemData().

bool QAbstractItemModel.setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)

Sets the data for the given role and section in the header with the specified orientation to the value supplied.

Returns true if the header's data was updated; otherwise returns false.

When reimplementing this function, the headerDataChanged() signal must be emitted explicitly.

See also Qt.ItemDataRole and headerData().

bool QAbstractItemModel.setItemData (self, QModelIndex index, dict-of-int-QVariant roles)

Sets the role data for the item at index to the associated value in roles, for every Qt.ItemDataRole.

Returns true if successful; otherwise returns false.

Roles that are not in roles will not be modified.

See also setData(), data(), and itemData().

QAbstractItemModel.setRoleNames (self, dict-of-int-QByteArray roleNames)

Sets the model's role names to roleNames.

This function allows mapping of role identifiers to role property names in Declarative UI. This function must be called before the model is used. Modifying the role names after the model has been set may result in undefined behaviour.

This function was introduced in Qt 4.6.

See also roleNames().

QAbstractItemModel.setSupportedDragActions (self, Qt.DropActions)

Sets the supported drag actions for the items in the model.

This function was introduced in Qt 4.2.

See also supportedDragActions() and Using drag and drop with item views.

QModelIndex QAbstractItemModel.sibling (self, int row, int column, QModelIndex idx)

Returns the sibling at row and column for the item at index, or an invalid QModelIndex if there is no sibling at that location.

sibling() is just a convenience function that finds the item's parent, and uses it to retrieve the index of the child item in the specified row and column.

See also index(), QModelIndex.row(), and QModelIndex.column().

QAbstractItemModel.sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Sorts the model by column in the given order.

The base class implementation does nothing.

QSize QAbstractItemModel.span (self, QModelIndex index)

Returns the row and column span of the item represented by index.

Note: Currently, span is not used.

bool QAbstractItemModel.submit (self)

This method is also a Qt slot with the C++ signature bool submit().

Lets the model know that it should submit cached information to permanent storage. This function is typically used for row editing.

Returns true if there is no error; otherwise returns false.

See also revert().

Qt.DropActions QAbstractItemModel.supportedDragActions (self)

Returns the actions supported by the data in this model.

The default implementation returns supportedDropActions() unless specific values have been set with setSupportedDragActions().

supportedDragActions() is used by QAbstractItemView.startDrag() as the default values when a drag occurs.

See also setSupportedDragActions(), Qt.DropActions, and Using drag and drop with item views.

Qt.DropActions QAbstractItemModel.supportedDropActions (self)

Returns the drop actions supported by this model.

The default implementation returns Qt.CopyAction. Reimplement this function if you wish to support additional actions. You must also reimplement the dropMimeData() function to handle the additional operations.

This function was introduced in Qt 4.2.

See also dropMimeData(), Qt.DropActions, and Using drag and drop with item views.


Qt Signal Documentation

void columnsAboutToBeInserted (const QModelIndex&,int,int)

This is the default overload of this signal.

This signal is emitted just before columns are inserted into the model. The new items will be positioned between start and end inclusive, under the given parent item.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

See also insertColumns() and beginInsertColumns().

void columnsAboutToBeMoved (const QModelIndex&,int,int,const QModelIndex&,int)

This is the default overload of this signal.

This signal is emitted just before columns are moved within the model. The items that will be moved are those between sourceStart and sourceEnd inclusive, under the given sourceParent item. They will be moved to destinationParent starting at the column destinationColumn.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

This function was introduced in Qt 4.6.

See also beginMoveRows().

void columnsAboutToBeRemoved (const QModelIndex&,int,int)

This is the default overload of this signal.

This signal is emitted just before columns are removed from the model. The items to be removed are those between start and end inclusive, under the given parent item.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

See also removeColumns() and beginRemoveColumns().

void columnsInserted (const QModelIndex&,int,int)

This is the default overload of this signal.

This signal is emitted after columns have been inserted into the model. The new items are those between start and end inclusive, under the given parent item.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

See also insertColumns() and beginInsertColumns().

void columnsMoved (const QModelIndex&,int,int,const QModelIndex&,int)

This is the default overload of this signal.

This signal is emitted after columns have been moved within the model. The items between sourceStart and sourceEnd inclusive, under the given sourceParent item have been moved to destinationParent starting at the column destinationColumn.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

This function was introduced in Qt 4.6.

See also beginMoveRows().

void columnsRemoved (const QModelIndex&,int,int)

This is the default overload of this signal.

This signal is emitted after columns have been removed from the model. The removed items are those between start and end inclusive, under the given parent item.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

See also removeColumns() and beginRemoveColumns().

void dataChanged (const QModelIndex&,const QModelIndex&)

This is the default overload of this signal.

This signal is emitted whenever the data in an existing item changes.

If the items are of the same parent, the affected ones are those between topLeft and bottomRight inclusive. If the items do not have the same parent, the behavior is undefined.

When reimplementing the setData() function, this signal must be emitted explicitly.

See also headerDataChanged(), setData(), and layoutChanged().

void headerDataChanged (Qt::Orientation,int,int)

This is the default overload of this signal.

This signal is emitted whenever a header is changed. The orientation indicates whether the horizontal or vertical header has changed. The sections in the header from the first to the last need to be updated.

When reimplementing the setHeaderData() function, this signal must be emitted explicitly.

If you are changing the number of columns or rows you do not need to emit this signal, but use the begin/end functions (refer to the section on subclassing in the QAbstractItemModel class description for details).

See also headerData(), setHeaderData(), and dataChanged().

void layoutAboutToBeChanged ()

This is the default overload of this signal.

This signal is emitted just before the layout of a model is changed. Components connected to this signal use it to adapt to changes in the model's layout.

Subclasses should update any persistent model indexes after emitting layoutAboutToBeChanged().

This function was introduced in Qt 4.2.

See also layoutChanged() and changePersistentIndex().

void layoutChanged ()

This is the default overload of this signal.

This signal is emitted whenever the layout of items exposed by the model has changed; for example, when the model has been sorted. When this signal is received by a view, it should update the layout of items to reflect this change.

When subclassing QAbstractItemModel or QAbstractProxyModel, ensure that you emit layoutAboutToBeChanged() before changing the order of items or altering the structure of the data you expose to views, and emit layoutChanged() after changing the layout.

Subclasses should update any persistent model indexes before emitting layoutChanged(). In other words, when the structure changes:

See also layoutAboutToBeChanged(), dataChanged(), headerDataChanged(), modelReset(), and changePersistentIndex().

void modelAboutToBeReset ()

This is the default overload of this signal.

This signal is emitted when reset() is called, before the model's internal state (e.g. persistent model indexes) has been invalidated.

This function was introduced in Qt 4.2.

See also beginResetModel() and modelReset().

void modelReset ()

This is the default overload of this signal.

This signal is emitted when reset() is called, after the model's internal state (e.g. persistent model indexes) has been invalidated.

This function was introduced in Qt 4.1.

See also endResetModel() and modelAboutToBeReset().

void rowsAboutToBeInserted (const QModelIndex&,int,int)

This is the default overload of this signal.

This signal is emitted just before rows are inserted into the model. The new items will be positioned between start and end inclusive, under the given parent item.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

See also insertRows() and beginInsertRows().

void rowsAboutToBeMoved (const QModelIndex&,int,int,const QModelIndex&,int)

This is the default overload of this signal.

This signal is emitted just before rows are moved within the model. The items that will be moved are those between sourceStart and sourceEnd inclusive, under the given sourceParent item. They will be moved to destinationParent starting at the row destinationRow.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

This function was introduced in Qt 4.6.

See also beginMoveRows().

void rowsAboutToBeRemoved (const QModelIndex&,int,int)

This is the default overload of this signal.

This signal is emitted just before rows are removed from the model. The items that will be removed are those between start and end inclusive, under the given parent item.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

See also removeRows() and beginRemoveRows().

void rowsInserted (const QModelIndex&,int,int)

This is the default overload of this signal.

This signal is emitted after rows have been inserted into the model. The new items are those between start and end inclusive, under the given parent item.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

See also insertRows() and beginInsertRows().

void rowsMoved (const QModelIndex&,int,int,const QModelIndex&,int)

This is the default overload of this signal.

This signal is emitted after rows have been moved within the model. The items between sourceStart and sourceEnd inclusive, under the given sourceParent item have been moved to destinationParent starting at the row destinationRow.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

This function was introduced in Qt 4.6.

See also beginMoveRows().

void rowsRemoved (const QModelIndex&,int,int)

This is the default overload of this signal.

This signal is emitted after rows have been removed from the model. The removed items are those between start and end inclusive, under the given parent item.

Note: Components connected to this signal use it to adapt to changes in the model's dimensions. It can only be emitted by the QAbstractItemModel implementation, and cannot be explicitly emitted in subclass code.

See also removeRows() and beginRemoveRows().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractitemview-edittriggers.html0000644000076500000240000001466012536324500024602 0ustar philstaff00000000000000 QAbstractItemView.EditTriggers Class Reference
  Home · All Classes · Modules

QAbstractItemView.EditTriggers Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

EditTrigger may be used whenever EditTriggers is expected.


Method Documentation

EditTriggers.__init__ (self, EditTriggers)

EditTriggers.__init__ (self, int)

EditTriggers.__init__ (self)

EditTriggers EditTriggers.__and__ (self, int mask)

int EditTriggers.__bool__ (self)

bool EditTriggers.__eq__ (self, EditTriggers f)

EditTriggers EditTriggers.__iand__ (self, int mask)

int EditTriggers.__int__ (self)

EditTriggers EditTriggers.__invert__ (self)

EditTriggers EditTriggers.__ior__ (self, EditTriggers f)

EditTriggers EditTriggers.__ixor__ (self, EditTriggers f)

bool EditTriggers.__ne__ (self, EditTriggers f)

EditTriggers EditTriggers.__or__ (self, EditTriggers f)

EditTriggers EditTriggers.__or__ (self, int f)

EditTriggers EditTriggers.__xor__ (self, EditTriggers f)

EditTriggers EditTriggers.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractitemview.html0000644000076500000240000027712512536324500022117 0ustar philstaff00000000000000 QAbstractItemView Class Reference
  Home · All Classes · Modules

QAbstractItemView Class Reference
[QtGui module]

The QAbstractItemView class provides the basic functionality for item view classes. More...

Inherits QAbstractScrollArea.

Inherited by QColumnView, QHeaderView, QListView, QTableView and QTreeView.

Types

  • enum CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, ..., MovePrevious }
  • enum DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove }
  • enum DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport }
  • enum EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, ..., AllEditTriggers }
  • enum ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, PositionAtCenter }
  • enum ScrollMode { ScrollPerItem, ScrollPerPixel }
  • enum SelectionBehavior { SelectItems, SelectRows, SelectColumns }
  • enum SelectionMode { NoSelection, SingleSelection, MultiSelection, ExtendedSelection, ContiguousSelection }
  • enum State { NoState, DraggingState, DragSelectingState, EditingState, ..., AnimatingState }

Methods

Qt Signals


Detailed Description

The QAbstractItemView class provides the basic functionality for item view classes.

QAbstractItemView class is the base class for every standard view that uses a QAbstractItemModel. QAbstractItemView is an abstract class and cannot itself be instantiated. It provides a standard interface for interoperating with models through the signals and slots mechanism, enabling subclasses to be kept up-to-date with changes to their models. This class provides standard support for keyboard and mouse navigation, viewport scrolling, item editing, and selections. The keyboard navigation implements this functionality:

Keys Functionality
Arrow keys Changes the current item and selects it.
Ctrl+Arrow keys Changes the current item but does not select it.
Shift+Arrow keys Changes the current item and selects it. The previously selected item(s) is not deselected.
Ctr+Space Toggles selection of the current item.
Tab/Backtab Changes the current item to the next/previous item.
Home/End Selects the first/last item in the model.
Page up/Page down Scrolls the rows shown up/down by the number of visible rows in the view.
Ctrl+A Selects all items in the model.

Note that the above table assumes that the selection mode allows the operations. For instance, you cannot select items if the selection mode is QAbstractItemView.NoSelection.

The QAbstractItemView class is one of the Model/View Classes and is part of Qt's model/view framework.

The view classes that inherit QAbstractItemView only need to implement their own view-specific functionality, such as drawing items, returning the geometry of items, finding items, etc.

QAbstractItemView provides common slots such as edit() and setCurrentIndex(). Many protected slots are also provided, including dataChanged(), rowsInserted(), rowsAboutToBeRemoved(), selectionChanged(), and currentChanged().

The root item is returned by rootIndex(), and the current item by currentIndex(). To make sure that an item is visible use scrollTo().

Some of QAbstractItemView's functions are concerned with scrolling, for example setHorizontalScrollMode() and setVerticalScrollMode(). To set the range of the scroll bars, you can, for example, reimplement the view's resizeEvent() function:

 void MyView.resizeEvent(QResizeEvent *event) {
     horizontalScrollBar()->setRange(0, realWidth - width());
     ...
 }

Note that the range is not updated until the widget is shown.

Several other functions are concerned with selection control; for example setSelectionMode(), and setSelectionBehavior(). This class provides a default selection model to work with (selectionModel()), but this can be replaced by using setSelectionModel() with an instance of QItemSelectionModel.

For complete control over the display and editing of items you can specify a delegate with setItemDelegate().

QAbstractItemView provides a lot of protected functions. Some are concerned with editing, for example, edit(), and commitData(), whilst others are keyboard and mouse event handlers.

Note: If you inherit QAbstractItemView and intend to update the contents of the viewport, you should use viewport->update() instead of update() as all painting operations take place on the viewport.


Type Documentation

QAbstractItemView.CursorAction

This enum describes the different ways to navigate between items,

Constant Value Description
QAbstractItemView.MoveUp 0 Move to the item above the current item.
QAbstractItemView.MoveDown 1 Move to the item below the current item.
QAbstractItemView.MoveLeft 2 Move to the item left of the current item.
QAbstractItemView.MoveRight 3 Move to the item right of the current item.
QAbstractItemView.MoveHome 4 Move to the top-left corner item.
QAbstractItemView.MoveEnd 5 Move to the bottom-right corner item.
QAbstractItemView.MovePageUp 6 Move one page up above the current item.
QAbstractItemView.MovePageDown 7 Move one page down below the current item.
QAbstractItemView.MoveNext 8 Move to the item after the current item.
QAbstractItemView.MovePrevious 9 Move to the item before the current item.

See also moveCursor().

QAbstractItemView.DragDropMode

Describes the various drag and drop events the view can act upon. By default the view does not support dragging or dropping (NoDragDrop).

Constant Value Description
QAbstractItemView.NoDragDrop 0 Does not support dragging or dropping.
QAbstractItemView.DragOnly 1 The view supports dragging of its own items
QAbstractItemView.DropOnly 2 The view accepts drops
QAbstractItemView.DragDrop 3 The view supports both dragging and dropping
QAbstractItemView.InternalMove 4 The view accepts move (not copy) operations only from itself.

Note that the model used needs to provide support for drag and drop operations.

This enum was introduced or modified in Qt 4.2.

See also setDragDropMode() and Using drag and drop with item views.

QAbstractItemView.DropIndicatorPosition

This enum indicates the position of the drop indicator in relation to the index at the current mouse position:

Constant Value Description
QAbstractItemView.OnItem 0 The item will be dropped on the index.
QAbstractItemView.AboveItem 1 The item will be dropped above the index.
QAbstractItemView.BelowItem 2 The item will be dropped below the index.
QAbstractItemView.OnViewport 3 The item will be dropped onto a region of the viewport with no items. The way each view handles items dropped onto the viewport depends on the behavior of the underlying model in use.

QAbstractItemView.EditTrigger

This enum describes actions which will initiate item editing.

Constant Value Description
QAbstractItemView.NoEditTriggers 0 No editing possible.
QAbstractItemView.CurrentChanged 1 Editing start whenever current item changes.
QAbstractItemView.DoubleClicked 2 Editing starts when an item is double clicked.
QAbstractItemView.SelectedClicked 4 Editing starts when clicking on an already selected item.
QAbstractItemView.EditKeyPressed 8 Editing starts when the platform edit key has been pressed over an item.
QAbstractItemView.AnyKeyPressed 16 Editing starts when any key is pressed over an item.
QAbstractItemView.AllEditTriggers 31 Editing starts for all above actions.

The EditTriggers type is a typedef for QFlags<EditTrigger>. It stores an OR combination of EditTrigger values.

QAbstractItemView.ScrollHint

Constant Value Description
QAbstractItemView.EnsureVisible 0 Scroll to ensure that the item is visible.
QAbstractItemView.PositionAtTop 1 Scroll to position the item at the top of the viewport.
QAbstractItemView.PositionAtBottom 2 Scroll to position the item at the bottom of the viewport.
QAbstractItemView.PositionAtCenter 3 Scroll to position the item at the center of the viewport.

QAbstractItemView.ScrollMode

Constant Value Description
QAbstractItemView.ScrollPerItem 0 The view will scroll the contents one item at a time.
QAbstractItemView.ScrollPerPixel 1 The view will scroll the contents one pixel at a time.

This enum was introduced or modified in Qt 4.2.

QAbstractItemView.SelectionBehavior

Constant Value Description
QAbstractItemView.SelectItems 0 Selecting single items.
QAbstractItemView.SelectRows 1 Selecting only rows.
QAbstractItemView.SelectColumns 2 Selecting only columns.

QAbstractItemView.SelectionMode

This enum indicates how the view responds to user selections:

Constant Value Description
QAbstractItemView.SingleSelection 1 When the user selects an item, any already-selected item becomes unselected, and the user cannot unselect the selected item by clicking on it.
QAbstractItemView.ContiguousSelection 4 When the user selects an item in the usual way, the selection is cleared and the new item selected. However, if the user presses the Shift key while clicking on an item, all items between the current item and the clicked item are selected or unselected, depending on the state of the clicked item.
QAbstractItemView.ExtendedSelection 3 When the user selects an item in the usual way, the selection is cleared and the new item selected. However, if the user presses the Ctrl key when clicking on an item, the clicked item gets toggled and all other items are left untouched. If the user presses the Shift key while clicking on an item, all items between the current item and the clicked item are selected or unselected, depending on the state of the clicked item. Multiple items can be selected by dragging the mouse over them.
QAbstractItemView.MultiSelection 2 When the user selects an item in the usual way, the selection status of that item is toggled and the other items are left alone. Multiple items can be toggled by dragging the mouse over them.
QAbstractItemView.NoSelection 0 Items cannot be selected.

The most commonly used modes are SingleSelection and ExtendedSelection.

QAbstractItemView.State

Describes the different states the view can be in. This is usually only interesting when reimplementing your own view.

Constant Value Description
QAbstractItemView.NoState 0 The is the default state.
QAbstractItemView.DraggingState 1 The user is dragging items.
QAbstractItemView.DragSelectingState 2 The user is selecting items.
QAbstractItemView.EditingState 3 The user is editing an item in a widget editor.
QAbstractItemView.ExpandingState 4 The user is opening a branch of items.
QAbstractItemView.CollapsingState 5 The user is closing a branch of items.
QAbstractItemView.AnimatingState 6 The item view is performing an animation.

Method Documentation

QAbstractItemView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an abstract item view with the given parent.

bool QAbstractItemView.alternatingRowColors (self)

int QAbstractItemView.autoScrollMargin (self)

QAbstractItemView.clearSelection (self)

This method is also a Qt slot with the C++ signature void clearSelection().

Deselects all selected items. The current index will not be changed.

See also setSelection() and selectAll().

QAbstractItemView.closeEditor (self, QWidget editor, QAbstractItemDelegate.EndEditHint hint)

This method is also a Qt slot with the C++ signature void closeEditor(QWidget*,QAbstractItemDelegate::EndEditHint).

Closes the given editor, and releases it. The hint is used to specify how the view should respond to the end of the editing operation. For example, the hint may indicate that the next item in the view should be opened for editing.

See also edit() and commitData().

QAbstractItemView.closePersistentEditor (self, QModelIndex index)

Closes the persistent editor for the item at the given index.

See also openPersistentEditor().

QAbstractItemView.commitData (self, QWidget editor)

This method is also a Qt slot with the C++ signature void commitData(QWidget*).

Commit the data in the editor to the model.

See also closeEditor().

QAbstractItemView.currentChanged (self, QModelIndex current, QModelIndex previous)

This method is also a Qt slot with the C++ signature void currentChanged(const QModelIndex&,const QModelIndex&).

This slot is called when a new item becomes the current item. The previous current item is specified by the previous index, and the new item by the current index.

If you want to know about changes to items see the dataChanged() signal.

QModelIndex QAbstractItemView.currentIndex (self)

Returns the model index of the current item.

See also setCurrentIndex().

QAbstractItemView.dataChanged (self, QModelIndex topLeft, QModelIndex bottomRight)

This method is also a Qt slot with the C++ signature void dataChanged(const QModelIndex&,const QModelIndex&).

This slot is called when items are changed in the model. The changed items are those from topLeft to bottomRight inclusive. If just one item is changed topLeft == bottomRight.

Qt.DropAction QAbstractItemView.defaultDropAction (self)

QPoint QAbstractItemView.dirtyRegionOffset (self)

Returns the offset of the dirty regions in the view.

If you use scrollDirtyRegion() and implement a paintEvent() in a subclass of QAbstractItemView, you should translate the area given by the paint event with the offset returned from this function.

See also scrollDirtyRegion() and setDirtyRegion().

DragDropMode QAbstractItemView.dragDropMode (self)

bool QAbstractItemView.dragDropOverwriteMode (self)

bool QAbstractItemView.dragEnabled (self)

QAbstractItemView.dragEnterEvent (self, QDragEnterEvent e)

Reimplemented from QWidget.dragEnterEvent().

This function is called with the given event when a drag and drop operation enters the widget. If the drag is over a valid dropping place (e.g. over an item that accepts drops), the event is accepted; otherwise it is ignored.

See also dropEvent() and startDrag().

QAbstractItemView.dragLeaveEvent (self, QDragLeaveEvent e)

Reimplemented from QWidget.dragLeaveEvent().

This function is called when the item being dragged leaves the view. The event describes the state of the drag and drop operation.

QAbstractItemView.dragMoveEvent (self, QDragMoveEvent e)

Reimplemented from QWidget.dragMoveEvent().

This function is called continuously with the given event during a drag and drop operation over the widget. It can cause the view to scroll if, for example, the user drags a selection to view's right or bottom edge. In this case, the event will be accepted; otherwise it will be ignored.

See also dropEvent() and startDrag().

QAbstractItemView.dropEvent (self, QDropEvent e)

Reimplemented from QWidget.dropEvent().

This function is called with the given event when a drop event occurs over the widget. If the model accepts the even position the drop event is accepted; otherwise it is ignored.

See also startDrag().

DropIndicatorPosition QAbstractItemView.dropIndicatorPosition (self)

Returns the position of the drop indicator in relation to the closest item.

This function was introduced in Qt 4.1.

QAbstractItemView.edit (self, QModelIndex index)

This method is also a Qt slot with the C++ signature void edit(const QModelIndex&).

Starts editing the item corresponding to the given index if it is editable.

Note that this function does not change the current index. Since the current index defines the next and previous items to edit, users may find that keyboard navigation does not work as expected. To provide consistent navigation behavior, call setCurrentIndex() before this function with the same model index.

See also QModelIndex.flags().

bool QAbstractItemView.edit (self, QModelIndex index, EditTrigger trigger, QEvent event)

Starts editing the item at index, creating an editor if necessary, and returns true if the view's State is now EditingState; otherwise returns false.

The action that caused the editing process is described by trigger, and the associated event is specified by event.

Editing can be forced by specifying the trigger to be QAbstractItemView.AllEditTriggers.

See also closeEditor().

QAbstractItemView.editorDestroyed (self, QObject editor)

This method is also a Qt slot with the C++ signature void editorDestroyed(QObject*).

This function is called when the given editor has been destroyed.

See also closeEditor().

EditTriggers QAbstractItemView.editTriggers (self)

bool QAbstractItemView.event (self, QEvent event)

Reimplemented from QObject.event().

QAbstractItemView.executeDelayedItemsLayout (self)

Executes the scheduled layouts without waiting for the event processing to begin.

See also scheduleDelayedItemsLayout().

QAbstractItemView.focusInEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusInEvent().

This function is called with the given event when the widget obtains the focus. By default, the event is ignored.

See also setFocus() and focusOutEvent().

bool QAbstractItemView.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QAbstractItemView.focusOutEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusOutEvent().

This function is called with the given event when the widget looses the focus. By default, the event is ignored.

See also clearFocus() and focusInEvent().

bool QAbstractItemView.hasAutoScroll (self)

int QAbstractItemView.horizontalOffset (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the horizontal offset of the view.

In the base class this is a pure virtual function.

See also verticalOffset().

QAbstractItemView.horizontalScrollbarAction (self, int action)

This method is also a Qt slot with the C++ signature void horizontalScrollbarAction(int).

QAbstractItemView.horizontalScrollbarValueChanged (self, int value)

This method is also a Qt slot with the C++ signature void horizontalScrollbarValueChanged(int).

ScrollMode QAbstractItemView.horizontalScrollMode (self)

int QAbstractItemView.horizontalStepsPerItem (self)

QSize QAbstractItemView.iconSize (self)

QModelIndex QAbstractItemView.indexAt (self, QPoint p)

This method is abstract and should be reimplemented in any sub-class.

Returns the model index of the item at the viewport coordinates point.

In the base class this is a pure virtual function.

See also visualRect().

QWidget QAbstractItemView.indexWidget (self, QModelIndex index)

Returns the widget for the item at the given index.

This function was introduced in Qt 4.1.

See also setIndexWidget().

QAbstractItemView.inputMethodEvent (self, QInputMethodEvent event)

Reimplemented from QWidget.inputMethodEvent().

QVariant QAbstractItemView.inputMethodQuery (self, Qt.InputMethodQuery query)

Reimplemented from QWidget.inputMethodQuery().

bool QAbstractItemView.isIndexHidden (self, QModelIndex index)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the item referred to by the given index is hidden in the view, otherwise returns false.

Hiding is a view specific feature. For example in TableView a column can be marked as hidden or a row in the TreeView.

In the base class this is a pure virtual function.

QAbstractItemDelegate QAbstractItemView.itemDelegate (self)

Returns the item delegate used by this view and model. This is either one set with setItemDelegate(), or the default one.

See also setItemDelegate().

QAbstractItemDelegate QAbstractItemView.itemDelegate (self, QModelIndex index)

Returns the item delegate used by this view and model for the given index.

QAbstractItemDelegate QAbstractItemView.itemDelegateForColumn (self, int column)

Returns the item delegate used by this view and model for the given column. You can call itemDelegate() to get a pointer to the current delegate for a given index.

This function was introduced in Qt 4.2.

See also setItemDelegateForColumn(), itemDelegateForRow(), and itemDelegate().

QAbstractItemDelegate QAbstractItemView.itemDelegateForRow (self, int row)

Returns the item delegate used by this view and model for the given row, or 0 if no delegate has been assigned. You can call itemDelegate() to get a pointer to the current delegate for a given index.

This function was introduced in Qt 4.2.

See also setItemDelegateForRow(), itemDelegateForColumn(), and setItemDelegate().

QAbstractItemView.keyboardSearch (self, QString search)

Moves to and selects the item best matching the string search. If no item is found nothing happens.

In the default implementation, the search is reset if search is empty, or the time interval since the last search has exceeded QApplication.keyboardInputInterval().

QAbstractItemView.keyPressEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyPressEvent().

This function is called with the given event when a key event is sent to the widget. The default implementation handles basic cursor movement, e.g. Up, Down, Left, Right, Home, PageUp, and PageDown; the activated() signal is emitted if the current index is valid and the activation key is pressed (e.g. Enter or Return, depending on the platform). This function is where editing is initiated by key press, e.g. if F2 is pressed.

See also edit(), moveCursor(), keyboardSearch(), and tabKeyNavigation.

QAbstractItemModel QAbstractItemView.model (self)

Returns the model that this view is presenting.

See also setModel().

QAbstractItemView.mouseDoubleClickEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseDoubleClickEvent().

This function is called with the given event when a mouse button is double clicked inside the widget. If the double-click is on a valid item it emits the doubleClicked() signal and calls edit() on the item.

QAbstractItemView.mouseMoveEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseMoveEvent().

This function is called with the given event when a mouse move event is sent to the widget. If a selection is in progress and new items are moved over the selection is extended; if a drag is in progress it is continued.

QAbstractItemView.mousePressEvent (self, QMouseEvent e)

Reimplemented from QWidget.mousePressEvent().

This function is called with the given event when a mouse button is pressed while the cursor is inside the widget. If a valid item is pressed on it is made into the current item. This function emits the pressed() signal.

QAbstractItemView.mouseReleaseEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseReleaseEvent().

This function is called with the given event when a mouse button is released, after a mouse press event on the widget. If a user presses the mouse inside your widget and then drags the mouse to another location before releasing the mouse button, your widget receives the release event. The function will emit the clicked() signal if an item was being pressed.

QModelIndex QAbstractItemView.moveCursor (self, CursorAction cursorAction, Qt.KeyboardModifiers modifiers)

This method is abstract and should be reimplemented in any sub-class.

Returns a QModelIndex object pointing to the next object in the view, based on the given cursorAction and keyboard modifiers specified by modifiers.

In the base class this is a pure virtual function.

QAbstractItemView.openPersistentEditor (self, QModelIndex index)

Opens a persistent editor on the item at the given index. If no editor exists, the delegate will create a new editor.

See also closePersistentEditor().

QAbstractItemView.reset (self)

This method is also a Qt slot with the C++ signature void reset().

Reset the internal state of the view.

Warning: This function will reset open editors, scroll bar positions, selections, etc. Existing changes will not be committed. If you would like to save your changes when resetting the view, you can reimplement this function, commit your changes, and then call the superclass' implementation.

QAbstractItemView.resizeEvent (self, QResizeEvent e)

Reimplemented from QWidget.resizeEvent().

This function is called with the given event when a resize event is sent to the widget.

See also QWidget.resizeEvent().

QModelIndex QAbstractItemView.rootIndex (self)

Returns the model index of the model's root item. The root item is the parent item to the view's toplevel items. The root can be invalid.

See also setRootIndex().

QAbstractItemView.rowsAboutToBeRemoved (self, QModelIndex parent, int start, int end)

This method is also a Qt slot with the C++ signature void rowsAboutToBeRemoved(const QModelIndex&,int,int).

This slot is called when rows are about to be removed. The deleted rows are those under the given parent from start to end inclusive.

See also rowsInserted().

QAbstractItemView.rowsInserted (self, QModelIndex parent, int start, int end)

This method is also a Qt slot with the C++ signature void rowsInserted(const QModelIndex&,int,int).

This slot is called when rows are inserted. The new rows are those under the given parent from start to end inclusive. The base class implementation calls fetchMore() on the model to check for more data.

See also rowsAboutToBeRemoved().

QAbstractItemView.scheduleDelayedItemsLayout (self)

Schedules a layout of the items in the view to be executed when the event processing starts.

Even if scheduleDelayedItemsLayout() is called multiple times before events are processed, the view will only do the layout once.

See also executeDelayedItemsLayout().

QAbstractItemView.scrollDirtyRegion (self, int dx, int dy)

Prepares the view for scrolling by (dx,dy) pixels by moving the dirty regions in the opposite direction. You only need to call this function if you are implementing a scrolling viewport in your view subclass.

If you implement scrollContentsBy() in a subclass of QAbstractItemView, call this function before you call QWidget.scroll() on the viewport. Alternatively, just call update().

See also scrollContentsBy(), dirtyRegionOffset(), and setDirtyRegion().

QAbstractItemView.scrollTo (self, QModelIndex index, ScrollHint hint = QAbstractItemView.EnsureVisible)

This method is abstract and should be reimplemented in any sub-class.

Scrolls the view if necessary to ensure that the item at index is visible. The view will try to position the item according to the given hint.

In the base class this is a pure virtual function.

QAbstractItemView.scrollToBottom (self)

This method is also a Qt slot with the C++ signature void scrollToBottom().

Scrolls the view to the bottom.

This function was introduced in Qt 4.1.

See also scrollTo() and scrollToTop().

QAbstractItemView.scrollToTop (self)

This method is also a Qt slot with the C++ signature void scrollToTop().

Scrolls the view to the top.

This function was introduced in Qt 4.1.

See also scrollTo() and scrollToBottom().

QAbstractItemView.selectAll (self)

This method is also a Qt slot with the C++ signature void selectAll().

Selects all items in the view. This function will use the selection behavior set on the view when selecting.

See also setSelection(), selectedIndexes(), and clearSelection().

list-of-QModelIndex QAbstractItemView.selectedIndexes (self)

This convenience function returns a list of all selected and non-hidden item indexes in the view. The list contains no duplicates, and is not sorted.

See also QItemSelectionModel.selectedIndexes().

SelectionBehavior QAbstractItemView.selectionBehavior (self)

QAbstractItemView.selectionChanged (self, QItemSelection selected, QItemSelection deselected)

This method is also a Qt slot with the C++ signature void selectionChanged(const QItemSelection&,const QItemSelection&).

This slot is called when the selection is changed. The previous selection (which may be empty), is specified by deselected, and the new selection by selected.

See also setSelection().

QItemSelectionModel.SelectionFlags QAbstractItemView.selectionCommand (self, QModelIndex index, QEvent event = None)

Returns the SelectionFlags to be used when updating a selection with to include the index specified. The event is a user input event, such as a mouse or keyboard event.

Reimplement this function to define your own selection behavior.

See also setSelection().

SelectionMode QAbstractItemView.selectionMode (self)

QItemSelectionModel QAbstractItemView.selectionModel (self)

Returns the current selection model.

See also setSelectionModel() and selectedIndexes().

QAbstractItemView.setAlternatingRowColors (self, bool enable)

QAbstractItemView.setAutoScroll (self, bool enable)

QAbstractItemView.setAutoScrollMargin (self, int margin)

QAbstractItemView.setCurrentIndex (self, QModelIndex index)

This method is also a Qt slot with the C++ signature void setCurrentIndex(const QModelIndex&).

Sets the current item to be the item at index.

Unless the current selection mode is NoSelection, the item is also be selected. Note that this function also updates the starting position for any new selections the user performs.

To set an item as the current item without selecting it, call

selectionModel()->setCurrentIndex(index, QItemSelectionModel.NoUpdate);

See also currentIndex(), currentChanged(), and selectionMode.

QAbstractItemView.setDefaultDropAction (self, Qt.DropAction dropAction)

QAbstractItemView.setDirtyRegion (self, QRegion region)

Marks the given region as dirty and schedules it to be updated. You only need to call this function if you are implementing your own view subclass.

This function was introduced in Qt 4.1.

See also scrollDirtyRegion() and dirtyRegionOffset().

QAbstractItemView.setDragDropMode (self, DragDropMode behavior)

QAbstractItemView.setDragDropOverwriteMode (self, bool overwrite)

QAbstractItemView.setDragEnabled (self, bool enable)

QAbstractItemView.setDropIndicatorShown (self, bool enable)

QAbstractItemView.setEditTriggers (self, EditTriggers triggers)

QAbstractItemView.setHorizontalScrollMode (self, ScrollMode mode)

QAbstractItemView.setHorizontalStepsPerItem (self, int steps)

QAbstractItemView.setIconSize (self, QSize size)

QAbstractItemView.setIndexWidget (self, QModelIndex index, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the given widget on the item at the given index, passing the ownership of the widget to the viewport.

If index is invalid (e.g., if you pass the root index), this function will do nothing.

The given widget's autoFillBackground property must be set to true, otherwise the widget's background will be transparent, showing both the model data and the item at the given index.

If index widget A is replaced with index widget B, index widget A will be deleted. For example, in the code snippet below, the QLineEdit object will be deleted.

 setIndexWidget(index, new QLineEdit);
 ...
 setIndexWidget(index, new QTextEdit);

This function should only be used to display static content within the visible area corresponding to an item of data. If you want to display custom dynamic content or implement a custom editor widget, subclass QItemDelegate instead.

This function was introduced in Qt 4.1.

See also indexWidget() and Delegate Classes.

QAbstractItemView.setItemDelegate (self, QAbstractItemDelegate delegate)

Sets the item delegate for this view and its model to delegate. This is useful if you want complete control over the editing and display of items.

Any existing delegate will be removed, but not deleted. QAbstractItemView does not take ownership of delegate.

Warning: You should not share the same instance of a delegate between views. Doing so can cause incorrect or unintuitive editing behavior since each view connected to a given delegate may receive the closeEditor() signal, and attempt to access, modify or close an editor that has already been closed.

See also itemDelegate().

QAbstractItemView.setItemDelegateForColumn (self, int column, QAbstractItemDelegate delegate)

Sets the given item delegate used by this view and model for the given column. All items on column will be drawn and managed by delegate instead of using the default delegate (i.e., itemDelegate()).

Any existing column delegate for column will be removed, but not deleted. QAbstractItemView does not take ownership of delegate.

Note: If a delegate has been assigned to both a row and a column, the row delegate will take precedence and manage the intersecting cell index.

Warning: You should not share the same instance of a delegate between views. Doing so can cause incorrect or unintuitive editing behavior since each view connected to a given delegate may receive the closeEditor() signal, and attempt to access, modify or close an editor that has already been closed.

This function was introduced in Qt 4.2.

See also itemDelegateForColumn(), setItemDelegateForRow(), and itemDelegate().

QAbstractItemView.setItemDelegateForRow (self, int row, QAbstractItemDelegate delegate)

Sets the given item delegate used by this view and model for the given row. All items on row will be drawn and managed by delegate instead of using the default delegate (i.e., itemDelegate()).

Any existing row delegate for row will be removed, but not deleted. QAbstractItemView does not take ownership of delegate.

Note: If a delegate has been assigned to both a row and a column, the row delegate (i.e., this delegate) will take precedence and manage the intersecting cell index.

Warning: You should not share the same instance of a delegate between views. Doing so can cause incorrect or unintuitive editing behavior since each view connected to a given delegate may receive the closeEditor() signal, and attempt to access, modify or close an editor that has already been closed.

This function was introduced in Qt 4.2.

See also itemDelegateForRow(), setItemDelegateForColumn(), and itemDelegate().

QAbstractItemView.setModel (self, QAbstractItemModel model)

Sets the model for the view to present.

This function will create and set a new selection model, replacing any model that was previously set with setSelectionModel(). However, the old selection model will not be deleted as it may be shared between several views. We recommend that you delete the old selection model if it is no longer required. This is done with the following code:

 QItemSelectionModel *m = view->selectionModel();
 view->setModel(new model);
 delete m;

If both the old model and the old selection model do not have parents, or if their parents are long-lived objects, it may be preferable to call their deleteLater() functions to explicitly delete them.

The view does not take ownership of the model unless it is the model's parent object because the model may be shared between many different views.

See also model(), selectionModel(), and setSelectionModel().

QAbstractItemView.setRootIndex (self, QModelIndex index)

This method is also a Qt slot with the C++ signature void setRootIndex(const QModelIndex&).

Sets the root item to the item at the given index.

See also rootIndex().

QAbstractItemView.setSelection (self, QRect rect, QItemSelectionModel.SelectionFlags command)

This method is abstract and should be reimplemented in any sub-class.

Applies the selection flags to the items in or touched by the rectangle, rect.

When implementing your own itemview setSelection should call selectionModel()->select(selection, flags) where selection is either an empty QModelIndex or a QItemSelection that contains all items that are contained in rect.

See also selectionCommand() and selectedIndexes().

QAbstractItemView.setSelectionBehavior (self, SelectionBehavior behavior)

QAbstractItemView.setSelectionMode (self, SelectionMode mode)

QAbstractItemView.setSelectionModel (self, QItemSelectionModel selectionModel)

Sets the current selection model to the given selectionModel.

Note that, if you call setModel() after this function, the given selectionModel will be replaced by one created by the view.

Note: It is up to the application to delete the old selection model if it is no longer needed; i.e., if it is not being used by other views. This will happen automatically when its parent object is deleted. However, if it does not have a parent, or if the parent is a long-lived object, it may be preferable to call its deleteLater() function to explicitly delete it.

See also selectionModel(), setModel(), and clearSelection().

QAbstractItemView.setState (self, State state)

Sets the item view's state to the given state.

See also state().

QAbstractItemView.setTabKeyNavigation (self, bool enable)

QAbstractItemView.setTextElideMode (self, Qt.TextElideMode mode)

QAbstractItemView.setVerticalScrollMode (self, ScrollMode mode)

QAbstractItemView.setVerticalStepsPerItem (self, int steps)

bool QAbstractItemView.showDropIndicator (self)

int QAbstractItemView.sizeHintForColumn (self, int column)

Returns the width size hint for the specified column or -1 if there is no model.

This function is used in views with a horizontal header to find the size hint for a header section based on the contents of the given column.

See also sizeHintForRow().

QSize QAbstractItemView.sizeHintForIndex (self, QModelIndex index)

Returns the size hint for the item with the specified index or an invalid size for invalid indexes.

See also sizeHintForRow() and sizeHintForColumn().

int QAbstractItemView.sizeHintForRow (self, int row)

Returns the height size hint for the specified row or -1 if there is no model.

The returned height is calculated using the size hints of the given row's items, i.e. the returned value is the maximum height among the items. Note that to control the height of a row, you must reimplement the QAbstractItemDelegate.sizeHint() function.

This function is used in views with a vertical header to find the size hint for a header section based on the contents of the given row.

See also sizeHintForColumn().

QAbstractItemView.startDrag (self, Qt.DropActions supportedActions)

Starts a drag by calling drag->exec() using the given supportedActions.

State QAbstractItemView.state (self)

Returns the item view's state.

See also setState().

bool QAbstractItemView.tabKeyNavigation (self)

Qt.TextElideMode QAbstractItemView.textElideMode (self)

QAbstractItemView.timerEvent (self, QTimerEvent e)

Reimplemented from QObject.timerEvent().

This function is called with the given event when a timer event is sent to the widget.

See also QObject.timerEvent().

QAbstractItemView.update (self)

This method is also a Qt slot with the C++ signature void update().

Updates the area occupied by the given index.

This function was introduced in Qt 4.3.

QAbstractItemView.update (self, QModelIndex index)

This method is also a Qt slot with the C++ signature void update(const QModelIndex&).

QAbstractItemView.updateEditorData (self)

This method is also a Qt slot with the C++ signature void updateEditorData().

QAbstractItemView.updateEditorGeometries (self)

This method is also a Qt slot with the C++ signature void updateEditorGeometries().

QAbstractItemView.updateGeometries (self)

This method is also a Qt slot with the C++ signature void updateGeometries().

Updates the geometry of the child widgets of the view.

This function was introduced in Qt 4.4.

int QAbstractItemView.verticalOffset (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the vertical offset of the view.

In the base class this is a pure virtual function.

See also horizontalOffset().

QAbstractItemView.verticalScrollbarAction (self, int action)

This method is also a Qt slot with the C++ signature void verticalScrollbarAction(int).

QAbstractItemView.verticalScrollbarValueChanged (self, int value)

This method is also a Qt slot with the C++ signature void verticalScrollbarValueChanged(int).

ScrollMode QAbstractItemView.verticalScrollMode (self)

int QAbstractItemView.verticalStepsPerItem (self)

QStyleOptionViewItem QAbstractItemView.viewOptions (self)

Returns a QStyleOptionViewItem structure populated with the view's palette, font, state, alignments etc.

bool QAbstractItemView.viewportEvent (self, QEvent e)

Reimplemented from QAbstractScrollArea.viewportEvent().

This function is used to handle tool tips, and What's This? mode, if the given event is a QEvent.ToolTip,or a QEvent.WhatsThis. It passes all other events on to its base class viewportEvent() handler.

QRect QAbstractItemView.visualRect (self, QModelIndex index)

This method is abstract and should be reimplemented in any sub-class.

Returns the rectangle on the viewport occupied by the item at index.

If your item is displayed in several areas then visualRect should return the primary area that contains index and not the complete area that index might encompasses, touch or cause drawing.

In the base class this is a pure virtual function.

See also indexAt() and visualRegionForSelection().

QRegion QAbstractItemView.visualRegionForSelection (self, QItemSelection selection)

This method is abstract and should be reimplemented in any sub-class.

Returns the region from the viewport of the items in the given selection.

In the base class this is a pure virtual function.

See also visualRect() and selectedIndexes().


Qt Signal Documentation

void activated (const QModelIndex&)

This is the default overload of this signal.

This signal is emitted when the item specified by index is activated by the user. How to activate items depends on the platform; e.g., by single- or double-clicking the item, or by pressing the Return or Enter key when the item is current.

See also clicked(), doubleClicked(), entered(), and pressed().

void clicked (const QModelIndex&)

This is the default overload of this signal.

This signal is emitted when a mouse button is clicked. The item the mouse was clicked on is specified by index. The signal is only emitted when the index is valid.

See also activated(), doubleClicked(), entered(), and pressed().

void doubleClicked (const QModelIndex&)

This is the default overload of this signal.

This signal is emitted when a mouse button is double-clicked. The item the mouse was double-clicked on is specified by index. The signal is only emitted when the index is valid.

See also clicked() and activated().

void entered (const QModelIndex&)

This is the default overload of this signal.

This signal is emitted when the mouse cursor enters the item specified by index. Mouse tracking needs to be enabled for this feature to work.

See also viewportEntered(), activated(), clicked(), doubleClicked(), and pressed().

void pressed (const QModelIndex&)

This is the default overload of this signal.

This signal is emitted when a mouse button is pressed. The item the mouse was pressed on is specified by index. The signal is only emitted when the index is valid.

Use the QApplication.mouseButtons() function to get the state of the mouse buttons.

See also activated(), clicked(), doubleClicked(), and entered().

void viewportEntered ()

This is the default overload of this signal.

This signal is emitted when the mouse cursor enters the viewport. Mouse tracking needs to be enabled for this feature to work.

See also entered().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractlistmodel.html0000644000076500000240000001745712536324471022271 0ustar philstaff00000000000000 QAbstractListModel Class Reference
  Home · All Classes · Modules

QAbstractListModel Class Reference
[QtCore module]

The QAbstractListModel class provides an abstract model that can be subclassed to create one-dimensional list models. More...

Inherits QAbstractItemModel.

Inherited by AudioOutputDeviceModel, EffectDescriptionModel and QStringListModel.

Methods

  • __init__ (self, QObject parent = None)
  • bool dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)
  • QModelIndex index (self, int row, int column = 0, QModelIndex parent = QModelIndex())

Detailed Description

The QAbstractListModel class provides an abstract model that can be subclassed to create one-dimensional list models.

QAbstractListModel provides a standard interface for models that represent their data as a simple non-hierarchical sequence of items. It is not used directly, but must be subclassed.

Since the model provides a more specialized interface than QAbstractItemModel, it is not suitable for use with tree views; you will need to subclass QAbstractItemModel if you want to provide a model for that purpose. If you need to use a number of list models to manage data, it may be more appropriate to subclass QAbstractTableModel class instead.

Simple models can be created by subclassing this class and implementing the minimum number of required functions. For example, we could implement a simple read-only QStringList-based model that provides a list of strings to a QListView widget. In such a case, we only need to implement the rowCount() function to return the number of items in the list, and the data() function to retrieve items from the list.

Since the model represents a one-dimensional structure, the rowCount() function returns the total number of items in the model. The columnCount() function is implemented for interoperability with all kinds of views, but by default informs views that the model contains only one column.

Subclassing

When subclassing QAbstractListModel, you must provide implementations of the rowCount() and data() functions. Well behaved models also provide a headerData() implementation.

For editable list models, you must also provide an implementation of setData(), implement the flags() function so that it returns a value containing Qt.ItemIsEditable.

Note that QAbstractListModel provides a default implementation of columnCount() that informs views that there is only a single column of items in this model.

Models that provide interfaces to resizable list-like data structures can provide implementations of insertRows() and removeRows(). When implementing these functions, it is important to call the appropriate functions so that all connected views are aware of any changes:

Note: Some general guidelines for subclassing models are available in the Model Subclassing Reference.


Method Documentation

QAbstractListModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an abstract list model with the given parent.

bool QAbstractListModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Reimplemented from QAbstractItemModel.dropMimeData().

QModelIndex QAbstractListModel.index (self, int row, int column = 0, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.index().

Returns the index of the data in row and column with parent.

See also parent().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractmessagehandler.html0000644000076500000240000001631712536324524023250 0ustar philstaff00000000000000 QAbstractMessageHandler Class Reference
  Home · All Classes · Modules

QAbstractMessageHandler Class Reference
[QtXmlPatterns module]

The QAbstractMessageHandler class provides a callback interface for handling messages. More...

Inherits QObject.

Methods

  • __init__ (self, QObject parent = None)
  • handleMessage (self, QtMsgType type, QString description, QUrl identifier, QSourceLocation sourceLocation)
  • message (self, QtMsgType type, QString description, QUrl identifier = QUrl(), QSourceLocation sourceLocation = QSourceLocation())

Detailed Description

The QAbstractMessageHandler class provides a callback interface for handling messages.

QAbstractMessageHandler is an abstract base class that provides a callback interface for handling messages. For example, class QXmlQuery parses and runs an XQuery. When it detects a compile or runtime error, it generates an appropriate error message, but rather than output the message itself, it passes the message to the message() function of its QAbstractMessageHandler. See QXmlQuery.setMessageHandler().

You create a message handler by subclassing QAbstractMessageHandler and implementing handleMessage(). You then pass a pointer to an instance of your subclass to any classes that must generate messages. The messages are sent to the message handler via the message() function, which forwards them to your handleMessge(). The effect is to serialize the handling of all messages, which means your QAbstractMessageHandler subclass is thread safe.

A single instance of QAbstractMessageHandler can be called on to handle messages from multiple sources. Hence, the content of a message, which is the description parameter passed to message() and handleMessage(), must be interpreted in light of the context that required the message to be sent. That context is specified by the identifier and sourceLocation parameters to message() handleMessage().


Method Documentation

QAbstractMessageHandler.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QAbstractMessageHandler. The parent is passed to the QObject base class constructor.

QAbstractMessageHandler.handleMessage (self, QtMsgType type, QString description, QUrl identifier, QSourceLocation sourceLocation)

This method is abstract and should be reimplemented in any sub-class.

This function must be implemented by the sub-class. message() will call this function, passing in its parameters, type, description, identifier and sourceLocation unmodified.

QAbstractMessageHandler.message (self, QtMsgType type, QString description, QUrl identifier = QUrl(), QSourceLocation sourceLocation = QSourceLocation())

Sends a message to this message handler. type is the kind of message being sent. description is the message content. The identifier is a URI that identifies the message and is the key to interpreting the other arguments.

Typically, this class is used for reporting errors, as is the case for QXmlQuery, which uses a QAbstractMessageHandler to report compile and runtime XQuery errors. Hence, using a QUrl as the message identifier is was inspired by the explanation of error handling in the XQuery language. Because the identifier is composed of a namespace URI and a local part, identifiers with the same local part are unique. The caller is responsible for ensuring that identifier is either a valid QUrl or a default constructed QUrl.

sourceLocation identifies a location in a resource (i.e., file or document) where the need for reporting a message was detected.

This function unconditionally calls handleMessage(), passing all its parameters unmodified.

See also http://www.w3.org/TR/xquery/#errors.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractnetworkcache.html0000644000076500000240000002221112536324517022733 0ustar philstaff00000000000000 QAbstractNetworkCache Class Reference
  Home · All Classes · Modules

QAbstractNetworkCache Class Reference
[QtNetwork module]

The QAbstractNetworkCache class provides the interface for cache implementations. More...

Inherits QObject.

Inherited by QNetworkDiskCache.

Methods


Detailed Description

The QAbstractNetworkCache class provides the interface for cache implementations.

QAbstractNetworkCache is the base class for every standard cache that is used be QNetworkAccessManager. QAbstractNetworkCache is an abstract class and cannot be instantiated.


Method Documentation

QAbstractNetworkCache.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an abstract network cache with the given parent.

int QAbstractNetworkCache.cacheSize (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the current size taken up by the cache. Depending upon the cache implementation this might be disk or memory size.

In the base class this is a pure virtual function.

See also clear().

QAbstractNetworkCache.clear (self)

This method is also a Qt slot with the C++ signature void clear().

This method is abstract and should be reimplemented in any sub-class.

Removes all items from the cache. Unless there was failures clearing the cache cacheSize() should return 0 after a call to clear.

In the base class this is a pure virtual function.

See also cacheSize() and remove().

QIODevice QAbstractNetworkCache.data (self, QUrl url)

This method is abstract and should be reimplemented in any sub-class.

Returns the data associated with url.

It is up to the application that requests the data to delete the QIODevice when done with it.

If there is no cache for url, the url is invalid, or if there is an internal cache error 0 is returned.

In the base class this is a pure virtual function.

See also metaData() and prepare().

QAbstractNetworkCache.insert (self, QIODevice device)

This method is abstract and should be reimplemented in any sub-class.

Inserts the data in device and the prepared meta data into the cache. After this function is called the data and meta data should be retrievable using data() and metaData().

To cancel a prepared inserted call remove() on the metadata's url.

In the base class this is a pure virtual function.

See also prepare() and remove().

QNetworkCacheMetaData QAbstractNetworkCache.metaData (self, QUrl url)

This method is abstract and should be reimplemented in any sub-class.

Returns the meta data for the url url.

If the url is valid and the cache contains the data for url, a valid QNetworkCacheMetaData is returned.

In the base class this is a pure virtual function.

See also updateMetaData() and data().

QIODevice QAbstractNetworkCache.prepare (self, QNetworkCacheMetaData metaData)

This method is abstract and should be reimplemented in any sub-class.

Returns the device that should be populated with the data for the cache item metaData. When all of the data has been written insert() should be called. If metaData is invalid or the url in the metadata is invalid 0 is returned.

The cache owns the device and will take care of deleting it when it is inserted or removed.

To cancel a prepared inserted call remove() on the metadata's url.

In the base class this is a pure virtual function.

See also remove(), updateMetaData(), and insert().

bool QAbstractNetworkCache.remove (self, QUrl url)

This method is abstract and should be reimplemented in any sub-class.

Removes the cache entry for url, returning true if success otherwise false.

In the base class this is a pure virtual function.

See also clear() and prepare().

QAbstractNetworkCache.updateMetaData (self, QNetworkCacheMetaData metaData)

This method is abstract and should be reimplemented in any sub-class.

Updates the cache meta date for the metaData's url to metaData

If the cache does not contains a cache item for the url then no action is taken.

In the base class this is a pure virtual function.

See also metaData() and prepare().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractprintdialog-printdialogoptions.html0000644000076500000240000001610412536324500026514 0ustar philstaff00000000000000 QAbstractPrintDialog.PrintDialogOptions Class Reference
  Home · All Classes · Modules

QAbstractPrintDialog.PrintDialogOptions Class Reference
[QtGui module]

Methods

Special Methods

  • PrintDialogOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, PrintDialogOptions f)
  • PrintDialogOptions __iand__ (self, int mask)
  • int __int__ (self)
  • PrintDialogOptions __invert__ (self)
  • PrintDialogOptions __ior__ (self, PrintDialogOptions f)
  • PrintDialogOptions __ixor__ (self, PrintDialogOptions f)
  • bool __ne__ (self, PrintDialogOptions f)
  • PrintDialogOptions __or__ (self, PrintDialogOptions f)
  • PrintDialogOptions __or__ (self, int f)
  • PrintDialogOptions __xor__ (self, PrintDialogOptions f)
  • PrintDialogOptions __xor__ (self, int f)

Detailed Description

PrintDialogOption may be used whenever PrintDialogOptions is expected.


Method Documentation

PrintDialogOptions.__init__ (self, PrintDialogOptions)

PrintDialogOptions.__init__ (self, int)

PrintDialogOptions.__init__ (self)

PrintDialogOptions PrintDialogOptions.__and__ (self, int mask)

int PrintDialogOptions.__bool__ (self)

bool PrintDialogOptions.__eq__ (self, PrintDialogOptions f)

PrintDialogOptions PrintDialogOptions.__iand__ (self, int mask)

int PrintDialogOptions.__int__ (self)

PrintDialogOptions PrintDialogOptions.__invert__ (self)

PrintDialogOptions PrintDialogOptions.__ior__ (self, PrintDialogOptions f)

PrintDialogOptions PrintDialogOptions.__ixor__ (self, PrintDialogOptions f)

bool PrintDialogOptions.__ne__ (self, PrintDialogOptions f)

PrintDialogOptions PrintDialogOptions.__or__ (self, PrintDialogOptions f)

PrintDialogOptions PrintDialogOptions.__or__ (self, int f)

PrintDialogOptions PrintDialogOptions.__xor__ (self, PrintDialogOptions f)

PrintDialogOptions PrintDialogOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractprintdialog.html0000644000076500000240000003072312536324500022571 0ustar philstaff00000000000000 QAbstractPrintDialog Class Reference
  Home · All Classes · Modules

QAbstractPrintDialog Class Reference
[QtGui module]

The QAbstractPrintDialog class provides a base implementation for print dialogs used to configure printers. More...

Inherits QDialog.

Inherited by QPrintDialog.

Types

Methods


Detailed Description

The QAbstractPrintDialog class provides a base implementation for print dialogs used to configure printers.

This class implements getter and setter functions that are used to customize settings shown in print dialogs, but it is not used directly. Use QPrintDialog to display a print dialog in your application.

In Symbian, there is no support for printing. Hence, this dialog should not be used in Symbian.


Type Documentation

QAbstractPrintDialog.PrintDialogOption

Used to specify which parts of the print dialog should be visible.

Constant Value Description
QAbstractPrintDialog.None 0x0000 None of the options are enabled.
QAbstractPrintDialog.PrintToFile 0x0001 The print to file option is enabled.
QAbstractPrintDialog.PrintSelection 0x0002 The print selection option is enabled.
QAbstractPrintDialog.PrintPageRange 0x0004 The page range selection option is enabled.
QAbstractPrintDialog.PrintShowPageSize 0x0008 Show the page size + margins page only if this is enabled.
QAbstractPrintDialog.PrintCollateCopies 0x0010 The collate copies option is enabled
QAbstractPrintDialog.PrintCurrentPage 0x0040 The print current page option is enabled (This value was introduced in 4.7.)

This value is obsolete and does nothing since Qt 4.5:

Constant Value Description
QAbstractPrintDialog.DontUseSheet 0x0020 In previous versions of Qt, exec_() the print dialog would create a sheet by default the dialog was given a parent. This is no longer supported in Qt 4.5. If you want to use sheets, use QPrintDialog.open() instead.

The PrintDialogOptions type is a typedef for QFlags<PrintDialogOption>. It stores an OR combination of PrintDialogOption values.

QAbstractPrintDialog.PrintRange

Used to specify the print range selection option.

Constant Value Description
QAbstractPrintDialog.AllPages 0 All pages should be printed.
QAbstractPrintDialog.Selection 1 Only the selection should be printed.
QAbstractPrintDialog.PageRange 2 The specified page range should be printed.
QAbstractPrintDialog.CurrentPage 3 Only the currently visible page should be printed. (This value was introduced in 4.7.)

See also QPrinter.PrintRange.


Method Documentation

QAbstractPrintDialog.__init__ (self, QPrinter printer, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an abstract print dialog for printer with parent as parent widget.

QAbstractPrintDialog.addEnabledOption (self, PrintDialogOption option)

PrintDialogOptions QAbstractPrintDialog.enabledOptions (self)

int QAbstractPrintDialog.exec_ (self)

This method is abstract and should be reimplemented in any sub-class.

This virtual function is called to pop up the dialog. It must be reimplemented in subclasses.

int QAbstractPrintDialog.fromPage (self)

Returns the first page to be printed By default, this value is set to 0.

bool QAbstractPrintDialog.isOptionEnabled (self, PrintDialogOption option)

int QAbstractPrintDialog.maxPage (self)

Returns the maximum page in the page range. As of Qt 4.4, this function returns INT_MAX by default. Previous versions returned 1 by default.

int QAbstractPrintDialog.minPage (self)

Returns the minimum page in the page range. By default, this value is set to 1.

QPrinter QAbstractPrintDialog.printer (self)

Returns the printer that this printer dialog operates on.

PrintRange QAbstractPrintDialog.printRange (self)

Returns the print range.

See also setPrintRange().

QAbstractPrintDialog.setEnabledOptions (self, PrintDialogOptions options)

QAbstractPrintDialog.setFromTo (self, int fromPage, int toPage)

Sets the range in the print dialog to be from from to to.

QAbstractPrintDialog.setMinMax (self, int min, int max)

Sets the page range in this dialog to be from min to max. This also enables the PrintPageRange option.

QAbstractPrintDialog.setOptionTabs (self, list-of-QWidget tabs)

Set a list of widgets as tabs to be shown on the print dialog, if supported.

Currently this option is only supported on X11.

Setting the option tabs will transfer their ownership to the print dialog.

This function was introduced in Qt 4.4.

QAbstractPrintDialog.setPrintRange (self, PrintRange range)

Sets the print range option in to be range.

See also printRange().

int QAbstractPrintDialog.toPage (self)

Returns the last page to be printed. By default, this value is set to 0.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractproxymodel.html0000644000076500000240000003760112536324500022461 0ustar philstaff00000000000000 QAbstractProxyModel Class Reference
  Home · All Classes · Modules

QAbstractProxyModel Class Reference
[
QtGui module]

The QAbstractProxyModel class provides a base class for proxy item models that can do sorting, filtering or other data processing tasks. More...

Inherits QAbstractItemModel.

Inherited by QIdentityProxyModel and QSortFilterProxyModel.

Methods

  • __init__ (self, QObject parent = None)
  • QModelIndex buddy (self, QModelIndex index)
  • bool canFetchMore (self, QModelIndex parent)
  • QVariant data (self, QModelIndex proxyIndex, int role = Qt.DisplayRole)
  • fetchMore (self, QModelIndex parent)
  • Qt.ItemFlags flags (self, QModelIndex index)
  • bool hasChildren (self, QModelIndex parent = QModelIndex())
  • QVariant headerData (self, int section, Qt.Orientation orientation, int role)
  • dict-of-int-QVariant itemData (self, QModelIndex index)
  • QModelIndex mapFromSource (self, QModelIndex sourceIndex)
  • QItemSelection mapSelectionFromSource (self, QItemSelection selection)
  • QItemSelection mapSelectionToSource (self, QItemSelection selection)
  • QModelIndex mapToSource (self, QModelIndex proxyIndex)
  • QMimeData mimeData (self, list-of-QModelIndex indexes)
  • QStringList mimeTypes (self)
  • revert (self)
  • bool setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)
  • bool setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)
  • bool setItemData (self, QModelIndex index, dict-of-int-QVariant roles)
  • setSourceModel (self, QAbstractItemModel sourceModel)
  • sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)
  • QAbstractItemModel sourceModel (self)
  • QSize span (self, QModelIndex index)
  • bool submit (self)
  • Qt.DropActions supportedDropActions (self)

Detailed Description

The QAbstractProxyModel class provides a base class for proxy item models that can do sorting, filtering or other data processing tasks.

This class defines the standard interface that proxy models must use to be able to interoperate correctly with other model/view components. It is not supposed to be instantiated directly.

All standard proxy models are derived from the QAbstractProxyModel class. If you need to create a new proxy model class, it is usually better to subclass an existing class that provides the closest behavior to the one you want to provide.

Proxy models that filter or sort items of data from a source model should be created by using or subclassing QSortFilterProxyModel.

To subclass QAbstractProxyModel, you need to implement mapFromSource() and mapToSource(). The mapSelectionFromSource() and mapSelectionToSource() functions only need to be reimplemented if you need a behavior different from the default behavior.

Note: If the source model is deleted or no source model is specified, the proxy model operates on a empty placeholder model.


Method Documentation

QAbstractProxyModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a proxy model with the given parent.

QModelIndex QAbstractProxyModel.buddy (self, QModelIndex index)

Reimplemented from QAbstractItemModel.buddy().

This function was introduced in Qt 4.8.

bool QAbstractProxyModel.canFetchMore (self, QModelIndex parent)

Reimplemented from QAbstractItemModel.canFetchMore().

This function was introduced in Qt 4.8.

QVariant QAbstractProxyModel.data (self, QModelIndex proxyIndex, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.data().

See also setData().

QAbstractProxyModel.fetchMore (self, QModelIndex parent)

Reimplemented from QAbstractItemModel.fetchMore().

This function was introduced in Qt 4.8.

Qt.ItemFlags QAbstractProxyModel.flags (self, QModelIndex index)

Reimplemented from QAbstractItemModel.flags().

bool QAbstractProxyModel.hasChildren (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.hasChildren().

This function was introduced in Qt 4.8.

QVariant QAbstractProxyModel.headerData (self, int section, Qt.Orientation orientation, int role)

Reimplemented from QAbstractItemModel.headerData().

See also setHeaderData().

dict-of-int-QVariant QAbstractProxyModel.itemData (self, QModelIndex index)

Reimplemented from QAbstractItemModel.itemData().

See also setItemData().

QModelIndex QAbstractProxyModel.mapFromSource (self, QModelIndex sourceIndex)

This method is abstract and should be reimplemented in any sub-class.

Reimplement this function to return the model index in the proxy model that corresponds to the sourceIndex from the source model.

See also mapToSource().

QItemSelection QAbstractProxyModel.mapSelectionFromSource (self, QItemSelection selection)

Returns a proxy selection mapped from the specified sourceSelection.

Reimplement this method to map source selections to proxy selections.

QItemSelection QAbstractProxyModel.mapSelectionToSource (self, QItemSelection selection)

Returns a source selection mapped from the specified proxySelection.

Reimplement this method to map proxy selections to source selections.

QModelIndex QAbstractProxyModel.mapToSource (self, QModelIndex proxyIndex)

This method is abstract and should be reimplemented in any sub-class.

Reimplement this function to return the model index in the source model that corresponds to the proxyIndex in the proxy model.

See also mapFromSource().

QMimeData QAbstractProxyModel.mimeData (self, list-of-QModelIndex indexes)

The QMimeData result

Reimplemented from QAbstractItemModel.mimeData().

This function was introduced in Qt 4.8.

QStringList QAbstractProxyModel.mimeTypes (self)

Reimplemented from QAbstractItemModel.mimeTypes().

This function was introduced in Qt 4.8.

QAbstractProxyModel.revert (self)

Reimplemented from QAbstractItemModel.revert().

bool QAbstractProxyModel.setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setData().

See also data().

bool QAbstractProxyModel.setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setHeaderData().

See also headerData().

bool QAbstractProxyModel.setItemData (self, QModelIndex index, dict-of-int-QVariant roles)

Reimplemented from QAbstractItemModel.setItemData().

See also itemData().

QAbstractProxyModel.setSourceModel (self, QAbstractItemModel sourceModel)

Sets the given sourceModel to be processed by the proxy model.

See also sourceModel().

QAbstractProxyModel.sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Reimplemented from QAbstractItemModel.sort().

This function was introduced in Qt 4.8.

QAbstractItemModel QAbstractProxyModel.sourceModel (self)

Returns the model that contains the data that is available through the proxy model.

See also setSourceModel().

QSize QAbstractProxyModel.span (self, QModelIndex index)

Reimplemented from QAbstractItemModel.span().

This function was introduced in Qt 4.8.

bool QAbstractProxyModel.submit (self)

Reimplemented from QAbstractItemModel.submit().

Qt.DropActions QAbstractProxyModel.supportedDropActions (self)

Reimplemented from QAbstractItemModel.supportedDropActions().

This function was introduced in Qt 4.8.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractscrollarea.html0000644000076500000240000010711612536324500022405 0ustar philstaff00000000000000 QAbstractScrollArea Class Reference
  Home · All Classes · Modules

QAbstractScrollArea Class Reference
[QtGui module]

The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars. More...

Inherits QFrame.

Inherited by QAbstractItemView, QGraphicsView, QMdiArea, QPlainTextEdit, QScrollArea and QTextEdit.

Methods


Detailed Description

The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.

QAbstractScrollArea is a low-level abstraction of a scrolling area. The area provides a central widget called the viewport, in which the contents of the area is to be scrolled (i.e, the visible parts of the contents are rendered in the viewport).

Next to the viewport is a vertical scroll bar, and below is a horizontal scroll bar. When all of the area contents fits in the viewport, each scroll bar can be either visible or hidden depending on the scroll bar's Qt.ScrollBarPolicy. When a scroll bar is hidden, the viewport expands in order to cover all available space. When a scroll bar becomes visible again, the viewport shrinks in order to make room for the scroll bar.

It is possible to reserve a margin area around the viewport, see setViewportMargins(). The feature is mostly used to place a QHeaderView widget above or beside the scrolling area. Subclasses of QAbstractScrollArea should implement margins.

When inheriting QAbstractScrollArea, you need to do the following:

  • Control the scroll bars by setting their range, value, page step, and tracking their movements.
  • Draw the contents of the area in the viewport according to the values of the scroll bars.
  • Handle events received by the viewport in viewportEvent() - notably resize events.
  • Use viewport->update() to update the contents of the viewport instead of update() as all painting operations take place on the viewport.

With a scroll bar policy of Qt.ScrollBarAsNeeded (the default), QAbstractScrollArea shows scroll bars when they provide a non-zero scrolling range, and hides them otherwise.

The scroll bars and viewport should be updated whenever the viewport receives a resize event or the size of the contents changes. The viewport also needs to be updated when the scroll bars values change. The initial values of the scroll bars are often set when the area receives new contents.

We give a simple example, in which we have implemented a scroll area that can scroll any QWidget. We make the widget a child of the viewport; this way, we do not have to calculate which part of the widget to draw but can simply move the widget with QWidget.move(). When the area contents or the viewport size changes, we do the following:

     QSize areaSize = viewport()->size();
     QSize  widgetSize = widget->size();

     verticalScrollBar()->setPageStep(areaSize.height());
     horizontalScrollBar()->setPageStep(areaSize.width());
     verticalScrollBar()->setRange(0, widgetSize.height() - areaSize.height());
     horizontalScrollBar()->setRange(0, widgetSize.width() - areaSize.width());
     updateWidgetPosition();

When the scroll bars change value, we need to update the widget position, i.e., find the part of the widget that is to be drawn in the viewport:

     int hvalue = horizontalScrollBar()->value();
     int vvalue = verticalScrollBar()->value();
     QPoint topLeft = viewport()->rect().topLeft();

     widget->move(topLeft.x() - hvalue, topLeft.y() - vvalue);

In order to track scroll bar movements, reimplement the virtual function scrollContentsBy(). In order to fine-tune scrolling behavior, connect to a scroll bar's QAbstractSlider.actionTriggered() signal and adjust the QAbstractSlider.sliderPosition as you wish.

For convenience, QAbstractScrollArea makes all viewport events available in the virtual viewportEvent() handler. QWidget's specialized handlers are remapped to viewport events in the cases where this makes sense. The remapped specialized handlers are: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), and resizeEvent().

QScrollArea, which inherits QAbstractScrollArea, provides smooth scrolling for any QWidget (i.e., the widget is scrolled pixel by pixel). You only need to subclass QAbstractScrollArea if you need more specialized behavior. This is, for instance, true if the entire contents of the area is not suitable for being drawn on a QWidget or if you do not want smooth scrolling.


Method Documentation

QAbstractScrollArea.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a viewport.

The parent argument is sent to the QWidget constructor.

QAbstractScrollArea.addScrollBarWidget (self, QWidget widget, Qt.Alignment alignment)

The widget argument has it's ownership transferred to Qt.

Adds widget as a scroll bar widget in the location specified by alignment.

Scroll bar widgets are shown next to the horizontal or vertical scroll bar, and can be placed on either side of it. If you want the scroll bar widgets to be always visible, set the scrollBarPolicy for the corresponding scroll bar to AlwaysOn.

alignment must be one of Qt.Alignleft and Qt.AlignRight, which maps to the horizontal scroll bar, or Qt.AlignTop and Qt.AlignBottom, which maps to the vertical scroll bar.

A scroll bar widget can be removed by either re-parenting the widget or deleting it. It's also possible to hide a widget with QWidget.hide()

The scroll bar widget will be resized to fit the scroll bar geometry for the current style. The following describes the case for scroll bar widgets on the horizontal scroll bar:

The height of the widget will be set to match the height of the scroll bar. To control the width of the widget, use QWidget.setMinimumWidth and QWidget.setMaximumWidth, or implement QWidget.sizeHint() and set a horizontal size policy. If you want a square widget, call QStyle.pixelMetric(QStyle.PM_ScrollBarExtent) and set the width to this value.

This function was introduced in Qt 4.2.

See also scrollBarWidgets().

QAbstractScrollArea.contextMenuEvent (self, QContextMenuEvent)

Reimplemented from QWidget.contextMenuEvent().

This event handler can be reimplemented in a subclass to receive context menu events for the viewport() widget. The event is passed in e.

See also QWidget.contextMenuEvent().

QWidget QAbstractScrollArea.cornerWidget (self)

Returns the widget in the corner between the two scroll bars.

By default, no corner widget is present.

This function was introduced in Qt 4.2.

See also setCornerWidget().

QAbstractScrollArea.dragEnterEvent (self, QDragEnterEvent)

Reimplemented from QWidget.dragEnterEvent().

This event handler can be reimplemented in a subclass to receive drag enter events (passed in event), for the viewport() widget.

See also QWidget.dragEnterEvent().

QAbstractScrollArea.dragLeaveEvent (self, QDragLeaveEvent)

Reimplemented from QWidget.dragLeaveEvent().

This event handler can be reimplemented in a subclass to receive drag leave events (passed in event), for the viewport() widget.

See also QWidget.dragLeaveEvent().

QAbstractScrollArea.dragMoveEvent (self, QDragMoveEvent)

Reimplemented from QWidget.dragMoveEvent().

This event handler can be reimplemented in a subclass to receive drag move events (passed in event), for the viewport() widget.

See also QWidget.dragMoveEvent().

QAbstractScrollArea.dropEvent (self, QDropEvent)

Reimplemented from QWidget.dropEvent().

This event handler can be reimplemented in a subclass to receive drop events (passed in event), for the viewport() widget.

See also QWidget.dropEvent().

bool QAbstractScrollArea.event (self, QEvent)

Reimplemented from QObject.event().

This is the main event handler for the QAbstractScrollArea widget (not the scrolling area viewport()). The specified event is a general event object that may need to be cast to the appropriate class depending on its type.

See also QEvent.type().

QScrollBar QAbstractScrollArea.horizontalScrollBar (self)

Returns the horizontal scroll bar.

See also setHorizontalScrollBar(), horizontalScrollBarPolicy, and verticalScrollBar().

Qt.ScrollBarPolicy QAbstractScrollArea.horizontalScrollBarPolicy (self)

QAbstractScrollArea.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

This function is called with key event e when key presses occur. It handles PageUp, PageDown, Up, Down, Left, and Right, and ignores all other key presses.

QSize QAbstractScrollArea.maximumViewportSize (self)

Returns the size of the viewport as if the scroll bars had no valid scrolling range.

QSize QAbstractScrollArea.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QAbstractScrollArea.mouseDoubleClickEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseDoubleClickEvent().

This event handler can be reimplemented in a subclass to receive mouse double click events for the viewport() widget. The event is passed in e.

See also QWidget.mouseDoubleClickEvent().

QAbstractScrollArea.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

This event handler can be reimplemented in a subclass to receive mouse move events for the viewport() widget. The event is passed in e.

See also QWidget.mouseMoveEvent().

QAbstractScrollArea.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

This event handler can be reimplemented in a subclass to receive mouse press events for the viewport() widget. The event is passed in e.

See also QWidget.mousePressEvent().

QAbstractScrollArea.mouseReleaseEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

This event handler can be reimplemented in a subclass to receive mouse release events for the viewport() widget. The event is passed in e.

See also QWidget.mouseReleaseEvent().

QAbstractScrollArea.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

This event handler can be reimplemented in a subclass to receive paint events (passed in event), for the viewport() widget.

Note: If you open a painter, make sure to open it on the viewport().

See also QWidget.paintEvent().

QAbstractScrollArea.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

This event handler can be reimplemented in a subclass to receive resize events (passed in event), for the viewport() widget.

When resizeEvent() is called, the viewport already has its new geometry: Its new size is accessible through the QResizeEvent.size() function, and the old size through QResizeEvent.oldSize().

See also QWidget.resizeEvent().

list-of-QWidget QAbstractScrollArea.scrollBarWidgets (self, Qt.Alignment alignment)

Returns a list of the currently set scroll bar widgets. alignment can be any combination of the four location flags.

This function was introduced in Qt 4.2.

See also addScrollBarWidget().

QAbstractScrollArea.scrollContentsBy (self, int dx, int dy)

This virtual handler is called when the scroll bars are moved by dx, dy, and consequently the viewport's contents should be scrolled accordingly.

The default implementation simply calls update() on the entire viewport(), subclasses can reimplement this handler for optimization purposes, or - like QScrollArea - to move a contents widget. The parameters dx and dy are there for convenience, so that the class knows how much should be scrolled (useful e.g. when doing pixel-shifts). You may just as well ignore these values and scroll directly to the position the scroll bars indicate.

Calling this function in order to scroll programmatically is an error, use the scroll bars instead (e.g. by calling QScrollBar.setValue() directly).

QAbstractScrollArea.setCornerWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the widget in the corner between the two scroll bars to be widget.

You will probably also want to set at least one of the scroll bar modes to AlwaysOn.

Passing 0 shows no widget in the corner.

Any previous corner widget is hidden.

You may call setCornerWidget() with the same widget at different times.

All widgets set here will be deleted by the scroll area when it is destroyed unless you separately reparent the widget after setting some other corner widget (or 0).

Any newly set widget should have no current parent.

By default, no corner widget is present.

This function was introduced in Qt 4.2.

See also cornerWidget(), horizontalScrollBarPolicy, and horizontalScrollBarPolicy.

QAbstractScrollArea.setHorizontalScrollBar (self, QScrollBar scrollbar)

The scrollbar argument has it's ownership transferred to Qt.

Replaces the existing horizontal scroll bar with scrollBar, and sets all the former scroll bar's slider properties on the new scroll bar. The former scroll bar is then deleted.

QAbstractScrollArea already provides horizontal and vertical scroll bars by default. You can call this function to replace the default horizontal scroll bar with your own custom scroll bar.

This function was introduced in Qt 4.2.

See also horizontalScrollBar() and setVerticalScrollBar().

QAbstractScrollArea.setHorizontalScrollBarPolicy (self, Qt.ScrollBarPolicy)

QAbstractScrollArea.setupViewport (self, QWidget viewport)

This method is also a Qt slot with the C++ signature void setupViewport(QWidget*).

This slot is called by QAbstractScrollArea after setViewport(viewport) has been called. Reimplement this function in a subclass of QAbstractScrollArea to initialize the new viewport before it is used.

See also setViewport().

QAbstractScrollArea.setVerticalScrollBar (self, QScrollBar scrollbar)

The scrollbar argument has it's ownership transferred to Qt.

Replaces the existing vertical scroll bar with scrollBar, and sets all the former scroll bar's slider properties on the new scroll bar. The former scroll bar is then deleted.

QAbstractScrollArea already provides vertical and horizontal scroll bars by default. You can call this function to replace the default vertical scroll bar with your own custom scroll bar.

This function was introduced in Qt 4.2.

See also verticalScrollBar() and setHorizontalScrollBar().

QAbstractScrollArea.setVerticalScrollBarPolicy (self, Qt.ScrollBarPolicy)

QAbstractScrollArea.setViewport (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the viewport to be the given widget. The QAbstractScrollArea will take ownership of the given widget.

If widget is 0, QAbstractScrollArea will assign a new QWidget instance for the viewport.

This function was introduced in Qt 4.2.

See also viewport().

QAbstractScrollArea.setViewportMargins (self, int left, int top, int right, int bottom)

Sets the margins around the scrolling area to left, top, right and bottom. This is useful for applications such as spreadsheets with "locked" rows and columns. The marginal space is is left blank; put widgets in the unused area.

Note that this function is frequently called by QTreeView and QTableView, so margins must be implemented by QAbstractScrollArea subclasses. Also, if the subclasses are to be used in item views, they should not call this function.

By default all margins are zero.

QAbstractScrollArea.setViewportMargins (self, QMargins margins)

Sets margins around the scrolling area. This is useful for applications such as spreadsheets with "locked" rows and columns. The marginal space is is left blank; put widgets in the unused area.

By default all margins are zero.

This function was introduced in Qt 4.6.

QSize QAbstractScrollArea.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QScrollBar QAbstractScrollArea.verticalScrollBar (self)

Returns the vertical scroll bar.

See also setVerticalScrollBar(), verticalScrollBarPolicy, and horizontalScrollBar().

Qt.ScrollBarPolicy QAbstractScrollArea.verticalScrollBarPolicy (self)

QWidget QAbstractScrollArea.viewport (self)

Returns the viewport widget.

Use the QScrollArea.widget() function to retrieve the contents of the viewport widget.

See also setViewport() and QScrollArea.widget().

bool QAbstractScrollArea.viewportEvent (self, QEvent)

The main event handler for the scrolling area (the viewport() widget). It handles the event specified, and can be called by subclasses to provide reasonable default behavior.

Returns true to indicate to the event system that the event has been handled, and needs no further processing; otherwise returns false to indicate that the event should be propagated further.

You can reimplement this function in a subclass, but we recommend using one of the specialized event handlers instead.

Specialized handlers for viewport events are: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), and resizeEvent().

QAbstractScrollArea.wheelEvent (self, QWheelEvent)

Reimplemented from QWidget.wheelEvent().

This event handler can be reimplemented in a subclass to receive wheel events for the viewport() widget. The event is passed in e.

See also QWidget.wheelEvent().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractslider.html0000644000076500000240000005571012536324500021542 0ustar philstaff00000000000000 QAbstractSlider Class Reference
  Home · All Classes · Modules

QAbstractSlider Class Reference
[QtGui module]

The QAbstractSlider class provides an integer value within a range. More...

Inherits QWidget.

Inherited by QDial, QScrollBar and QSlider.

Types

  • enum SliderAction { SliderNoAction, SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, ..., SliderMove }
  • enum SliderChange { SliderRangeChange, SliderOrientationChange, SliderStepsChange, SliderValueChange }

Methods

Qt Signals


Detailed Description

The QAbstractSlider class provides an integer value within a range.

The class is designed as a common super class for widgets like QScrollBar, QSlider and QDial.

Here are the main properties of the class:

  1. value: The bounded integer that QAbstractSlider maintains.
  2. minimum: The lowest possible value.
  3. maximum: The highest possible value.
  4. singleStep: The smaller of two natural steps that an abstract sliders provides and typically corresponds to the user pressing an arrow key.
  5. pageStep: The larger of two natural steps that an abstract slider provides and typically corresponds to the user pressing PageUp or PageDown.
  6. tracking: Whether slider tracking is enabled.
  7. sliderPosition: The current position of the slider. If tracking is enabled (the default), this is identical to value.

Unity (1) may be viewed as a third step size. setValue() lets you set the current value to any integer in the allowed range, not just minimum() + n * singleStep() for integer values of n. Some widgets may allow the user to set any value at all; others may just provide multiples of singleStep() or pageStep().

QAbstractSlider emits a comprehensive set of signals:

Signal Emitted when
valueChanged() the value has changed. The tracking determines whether this signal is emitted during user interaction.
sliderPressed() the user starts to drag the slider.
sliderMoved() the user drags the slider.
sliderReleased() the user releases the slider.
actionTriggered() a slider action was triggerd.
rangeChanged() a the range has changed.

QAbstractSlider provides a virtual sliderChange() function that is well suited for updating the on-screen representation of sliders. By calling triggerAction(), subclasses trigger slider actions. Two helper functions QStyle.sliderPositionFromValue() and QStyle.sliderValueFromPosition() help subclasses and styles to map screen coordinates to logical range values.


Type Documentation

QAbstractSlider.SliderAction

Constant Value
QAbstractSlider.SliderNoAction 0
QAbstractSlider.SliderSingleStepAdd 1
QAbstractSlider.SliderSingleStepSub 2
QAbstractSlider.SliderPageStepAdd 3
QAbstractSlider.SliderPageStepSub 4
QAbstractSlider.SliderToMinimum 5
QAbstractSlider.SliderToMaximum 6
QAbstractSlider.SliderMove 7

QAbstractSlider.SliderChange

Constant Value
QAbstractSlider.SliderRangeChange 0
QAbstractSlider.SliderOrientationChange 1
QAbstractSlider.SliderStepsChange 2
QAbstractSlider.SliderValueChange 3

Method Documentation

QAbstractSlider.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an abstract slider.

The parent argument is sent to the QWidget constructor.

The minimum defaults to 0, the maximum to 99, with a singleStep size of 1 and a pageStep size of 10, and an initial value of 0.

QAbstractSlider.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

bool QAbstractSlider.event (self, QEvent e)

Reimplemented from QObject.event().

bool QAbstractSlider.hasTracking (self)

bool QAbstractSlider.invertedAppearance (self)

bool QAbstractSlider.invertedControls (self)

bool QAbstractSlider.isSliderDown (self)

QAbstractSlider.keyPressEvent (self, QKeyEvent ev)

Reimplemented from QWidget.keyPressEvent().

int QAbstractSlider.maximum (self)

int QAbstractSlider.minimum (self)

Qt.Orientation QAbstractSlider.orientation (self)

int QAbstractSlider.pageStep (self)

SliderAction QAbstractSlider.repeatAction (self)

Returns the current repeat action.

See also setRepeatAction().

QAbstractSlider.setInvertedAppearance (self, bool)

QAbstractSlider.setInvertedControls (self, bool)

QAbstractSlider.setMaximum (self, int)

QAbstractSlider.setMinimum (self, int)

QAbstractSlider.setOrientation (self, Qt.Orientation)

This method is also a Qt slot with the C++ signature void setOrientation(Qt::Orientation).

QAbstractSlider.setPageStep (self, int)

QAbstractSlider.setRange (self, int min, int max)

Sets the slider's minimum to min and its maximum to max.

If max is smaller than min, min becomes the only legal value.

See also minimum and maximum.

QAbstractSlider.setRepeatAction (self, SliderAction action, int thresholdTime = 500, int repeatTime = 50)

Sets action action to be triggered repetitively in intervals of repeatTime, after an initial delay of thresholdTime.

See also triggerAction() and repeatAction().

QAbstractSlider.setSingleStep (self, int)

QAbstractSlider.setSliderDown (self, bool)

QAbstractSlider.setSliderPosition (self, int)

QAbstractSlider.setTracking (self, bool enable)

QAbstractSlider.setValue (self, int)

This method is also a Qt slot with the C++ signature void setValue(int).

int QAbstractSlider.singleStep (self)

QAbstractSlider.sliderChange (self, SliderChange change)

Reimplement this virtual function to track slider changes such as SliderRangeChange, SliderOrientationChange, SliderStepsChange, or SliderValueChange. The default implementation only updates the display and ignores the change parameter.

int QAbstractSlider.sliderPosition (self)

QAbstractSlider.timerEvent (self, QTimerEvent)

Reimplemented from QObject.timerEvent().

QAbstractSlider.triggerAction (self, SliderAction action)

Triggers a slider action. Possible actions are SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, SliderToMinimum, SliderToMaximum, and SliderMove.

See also actionTriggered().

int QAbstractSlider.value (self)

QAbstractSlider.wheelEvent (self, QWheelEvent e)

Reimplemented from QWidget.wheelEvent().


Qt Signal Documentation

void actionTriggered (int)

This is the default overload of this signal.

This signal is emitted when the slider action action is triggered. Actions are SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, SliderToMinimum, SliderToMaximum, and SliderMove.

When the signal is emitted, the sliderPosition has been adjusted according to the action, but the value has not yet been propagated (meaning the valueChanged() signal was not yet emitted), and the visual display has not been updated. In slots connected to this signal you can thus safely adjust any action by calling setSliderPosition() yourself, based on both the action and the slider's value.

See also triggerAction().

void rangeChanged (int,int)

This is the default overload of this signal.

This signal is emitted when the slider range has changed, with min being the new minimum, and max being the new maximum.

See also minimum and maximum.

void sliderMoved (int)

This is the default overload of this signal.

This signal is emitted when sliderDown is true and the slider moves. This usually happens when the user is dragging the slider. The value is the new slider position.

This signal is emitted even when tracking is turned off.

See also setTracking(), valueChanged(), isSliderDown(), sliderPressed(), and sliderReleased().

void sliderPressed ()

This is the default overload of this signal.

This signal is emitted when the user presses the slider with the mouse, or programmatically when setSliderDown(true) is called.

See also sliderReleased(), sliderMoved(), and isSliderDown().

void sliderReleased ()

This is the default overload of this signal.

This signal is emitted when the user releases the slider with the mouse, or programmatically when setSliderDown(false) is called.

See also sliderPressed(), sliderMoved(), and sliderDown.

void valueChanged (int)

This is the default overload of this signal.

This signal is emitted when the slider value has changed, with the new slider value as argument.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractsocket.html0000644000076500000240000017232212536324517021557 0ustar philstaff00000000000000 QAbstractSocket Class Reference
  Home · All Classes · Modules

QAbstractSocket Class Reference
[
QtNetwork module]

The QAbstractSocket class provides the base functionality common to all socket types. More...

Inherits QIODevice.

Inherited by QTcpSocket and QUdpSocket.

Types

  • enum NetworkLayerProtocol { IPv4Protocol, IPv6Protocol, UnknownNetworkLayerProtocol }
  • enum SocketError { ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, SocketAccessError, ..., UnknownSocketError }
  • enum SocketOption { LowDelayOption, KeepAliveOption, MulticastTtlOption, MulticastLoopbackOption }
  • enum SocketState { UnconnectedState, HostLookupState, ConnectingState, ConnectedState, ..., ClosingState }
  • enum SocketType { TcpSocket, UdpSocket, UnknownSocketType }

Methods

Qt Signals


Detailed Description

The QAbstractSocket class provides the base functionality common to all socket types.

QAbstractSocket is the base class for QTcpSocket and QUdpSocket and contains all common functionality of these two classes. If you need a socket, you have two options:

TCP (Transmission Control Protocol) is a reliable, stream-oriented, connection-oriented transport protocol. UDP (User Datagram Protocol) is an unreliable, datagram-oriented, connectionless protocol. In practice, this means that TCP is better suited for continuous transmission of data, whereas the more lightweight UDP can be used when reliability isn't important.

QAbstractSocket's API unifies most of the differences between the two protocols. For example, although UDP is connectionless, connectToHost() establishes a virtual connection for UDP sockets, enabling you to use QAbstractSocket in more or less the same way regardless of the underlying protocol. Internally, QAbstractSocket remembers the address and port passed to connectToHost(), and functions like read() and write() use these values.

At any time, QAbstractSocket has a state (returned by state()). The initial state is UnconnectedState. After calling connectToHost(), the socket first enters HostLookupState. If the host is found, QAbstractSocket enters ConnectingState and emits the hostFound() signal. When the connection has been established, it enters ConnectedState and emits connected(). If an error occurs at any stage, error() is emitted. Whenever the state changes, stateChanged() is emitted. For convenience, isValid() returns true if the socket is ready for reading and writing, but note that the socket's state must be ConnectedState before reading and writing can occur.

Read or write data by calling read() or write(), or use the convenience functions readLine() and readAll(). QAbstractSocket also inherits getChar(), putChar(), and ungetChar() from QIODevice, which work on single bytes. The bytesWritten() signal is emitted when data has been written to the socket (i.e., when the client has read the data). Note that Qt does not limit the write buffer size. You can monitor its size by listening to this signal.

The readyRead() signal is emitted every time a new chunk of data has arrived. bytesAvailable() then returns the number of bytes that are available for reading. Typically, you would connect the readyRead() signal to a slot and read all available data there. If you don't read all the data at once, the remaining data will still be available later, and any new incoming data will be appended to QAbstractSocket's internal read buffer. To limit the size of the read buffer, call setReadBufferSize().

To close the socket, call disconnectFromHost(). QAbstractSocket enters QAbstractSocket.ClosingState. After all pending data has been written to the socket, QAbstractSocket actually closes the socket, enters QAbstractSocket.ClosedState, and emits disconnected(). If you want to abort a connection immediately, discarding all pending data, call abort() instead. If the remote host closes the connection, QAbstractSocket will emit error(QAbstractSocket.RemoteHostClosedError), during which the socket state will still be ConnectedState, and then the disconnected() signal will be emitted.

The port and address of the connected peer is fetched by calling peerPort() and peerAddress(). peerName() returns the host name of the peer, as passed to connectToHost(). localPort() and localAddress() return the port and address of the local socket.

QAbstractSocket provides a set of functions that suspend the calling thread until certain signals are emitted. These functions can be used to implement blocking sockets:

We show an example:

     int numRead = 0, numReadTotal = 0;
     char buffer[50];

     forever {
         numRead  = socket.read(buffer, 50);

         // do whatever with array

         numReadTotal += numRead;
         if (numRead == 0 && !socket.waitForReadyRead())
             break;
     }

If waitForReadyRead() returns false, the connection has been closed or an error has occurred.

Programming with a blocking socket is radically different from programming with a non-blocking socket. A blocking socket doesn't require an event loop and typically leads to simpler code. However, in a GUI application, blocking sockets should only be used in non-GUI threads, to avoid freezing the user interface. See the network/fortuneclient and network/blockingfortuneclient examples for an overview of both approaches.

Note: We discourage the use of the blocking functions together with signals. One of the two possibilities should be used.

QAbstractSocket can be used with QTextStream and QDataStream's stream operators (operator<<() and operator>>()). There is one issue to be aware of, though: You must make sure that enough data is available before attempting to read it using operator>>().


Type Documentation

QAbstractSocket.NetworkLayerProtocol

This enum describes the network layer protocol values used in Qt.

Constant Value Description
QAbstractSocket.IPv4Protocol 0 IPv4
QAbstractSocket.IPv6Protocol 1 IPv6
QAbstractSocket.UnknownNetworkLayerProtocol -1 Other than IPv4 and IPv6

See also QHostAddress.protocol().

QAbstractSocket.SocketError

This enum describes the socket errors that can occur.

Constant Value Description
QAbstractSocket.ConnectionRefusedError 0 The connection was refused by the peer (or timed out).
QAbstractSocket.RemoteHostClosedError 1 The remote host closed the connection. Note that the client socket (i.e., this socket) will be closed after the remote close notification has been sent.
QAbstractSocket.HostNotFoundError 2 The host address was not found.
QAbstractSocket.SocketAccessError 3 The socket operation failed because the application lacked the required privileges.
QAbstractSocket.SocketResourceError 4 The local system ran out of resources (e.g., too many sockets).
QAbstractSocket.SocketTimeoutError 5 The socket operation timed out.
QAbstractSocket.DatagramTooLargeError 6 The datagram was larger than the operating system's limit (which can be as low as 8192 bytes).
QAbstractSocket.NetworkError 7 An error occurred with the network (e.g., the network cable was accidentally plugged out).
QAbstractSocket.AddressInUseError 8 The address specified to QUdpSocket.bind() is already in use and was set to be exclusive.
QAbstractSocket.SocketAddressNotAvailableError 9 The address specified to QUdpSocket.bind() does not belong to the host.
QAbstractSocket.UnsupportedSocketOperationError 10 The requested socket operation is not supported by the local operating system (e.g., lack of IPv6 support).
QAbstractSocket.ProxyAuthenticationRequiredError 12 The socket is using a proxy, and the proxy requires authentication.
QAbstractSocket.SslHandshakeFailedError 13 The SSL/TLS handshake failed, so the connection was closed (only used in QSslSocket) (This value was introduced in 4.4.)
QAbstractSocket.UnfinishedSocketOperationError 11 Used by QAbstractSocketEngine only, The last operation attempted has not finished yet (still in progress in the background). (This value was introduced in 4.4.)
QAbstractSocket.ProxyConnectionRefusedError 14 Could not contact the proxy server because the connection to that server was denied (This value was introduced in 4.5.)
QAbstractSocket.ProxyConnectionClosedError 15 The connection to the proxy server was closed unexpectedly (before the connection to the final peer was established) (This value was introduced in 4.5.)
QAbstractSocket.ProxyConnectionTimeoutError 16 The connection to the proxy server timed out or the proxy server stopped responding in the authentication phase. (This value was introduced in 4.5.)
QAbstractSocket.ProxyNotFoundError 17 The proxy address set with setProxy() (or the application proxy) was not found. (This value was introduced in 4.5.)
QAbstractSocket.ProxyProtocolError 18 The connection negotiation with the proxy server because the response from the proxy server could not be understood. (This value was introduced in 4.5.)
QAbstractSocket.UnknownSocketError -1 An unidentified error occurred.

See also QAbstractSocket.error().

QAbstractSocket.SocketOption

This enum represents the options that can be set on a socket. If desired, they can be set after having received the connected() signal from the socket or after having received a new socket from a QTcpServer.

Constant Value Description
QAbstractSocket.LowDelayOption 0 Try to optimize the socket for low latency. For a QTcpSocket this would set the TCP_NODELAY option and disable Nagle's algorithm. Set this to 1 to enable.
QAbstractSocket.KeepAliveOption 1 Set this to 1 to enable the SO_KEEPALIVE socket option
QAbstractSocket.MulticastTtlOption 2 Set this to an integer value to set IP_MULTICAST_TTL (TTL for multicast datagrams) socket option.
QAbstractSocket.MulticastLoopbackOption 3 Set this to 1 to enable the IP_MULTICAST_LOOP (multicast loopback) socket option.

This enum was introduced or modified in Qt 4.6.

See also QAbstractSocket.setSocketOption() and QAbstractSocket.socketOption().

QAbstractSocket.SocketState

This enum describes the different states in which a socket can be.

Constant Value Description
QAbstractSocket.UnconnectedState 0 The socket is not connected.
QAbstractSocket.HostLookupState 1 The socket is performing a host name lookup.
QAbstractSocket.ConnectingState 2 The socket has started establishing a connection.
QAbstractSocket.ConnectedState 3 A connection is established.
QAbstractSocket.BoundState 4 The socket is bound to an address and port (for servers).
QAbstractSocket.ClosingState 6 The socket is about to close (data may still be waiting to be written).
QAbstractSocket.ListeningState 5 For internal use only.

See also QAbstractSocket.state().

QAbstractSocket.SocketType

This enum describes the transport layer protocol.

Constant Value Description
QAbstractSocket.TcpSocket 0 TCP
QAbstractSocket.UdpSocket 1 UDP
QAbstractSocket.UnknownSocketType -1 Other than TCP and UDP

See also QAbstractSocket.socketType().


Method Documentation

QAbstractSocket.__init__ (self, SocketType socketType, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new abstract socket of type socketType. The parent argument is passed to QObject's constructor.

See also socketType(), QTcpSocket, and QUdpSocket.

QAbstractSocket.abort (self)

Aborts the current connection and resets the socket. Unlike disconnectFromHost(), this function immediately closes the socket, discarding any pending data in the write buffer.

See also disconnectFromHost() and close().

bool QAbstractSocket.atEnd (self)

Reimplemented from QIODevice.atEnd().

Returns true if no more data is currently available for reading; otherwise returns false.

This function is most commonly used when reading data from the socket in a loop. For example:

  // This slot is connected to QAbstractSocket.readyRead()
  void SocketClass.readyReadSlot()
  {
      while (!socket.atEnd()) {
          QByteArray data = socket.read(100);
          ....
      }
  }

See also bytesAvailable() and readyRead().

int QAbstractSocket.bytesAvailable (self)

Reimplemented from QIODevice.bytesAvailable().

Returns the number of incoming bytes that are waiting to be read.

See also bytesToWrite() and read().

int QAbstractSocket.bytesToWrite (self)

Reimplemented from QIODevice.bytesToWrite().

Returns the number of bytes that are waiting to be written. The bytes are written when control goes back to the event loop or when flush() is called.

See also bytesAvailable() and flush().

bool QAbstractSocket.canReadLine (self)

Reimplemented from QIODevice.canReadLine().

Returns true if a line of data can be read from the socket; otherwise returns false.

See also readLine().

QAbstractSocket.close (self)

Reimplemented from QIODevice.close().

Closes the I/O device for the socket, disconnects the socket's connection with the host, closes the socket, and resets the name, address, port number and underlying socket descriptor.

See QIODevice.close() for a description of the actions that occur when an I/O device is closed.

See also abort().

QAbstractSocket.connectToHost (self, QString hostName, int port, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Attempts to make a connection to hostName on the given port.

The socket is opened in the given openMode and first enters HostLookupState, then performs a host name lookup of hostName. If the lookup succeeds, hostFound() is emitted and QAbstractSocket enters ConnectingState. It then attempts to connect to the address or addresses returned by the lookup. Finally, if a connection is established, QAbstractSocket enters ConnectedState and emits connected().

At any point, the socket can emit error() to signal that an error occurred.

hostName may be an IP address in string form (e.g., "43.195.83.32"), or it may be a host name (e.g., "example.com"). QAbstractSocket will do a lookup only if required. port is in native byte order.

See also state(), peerName(), peerAddress(), peerPort(), and waitForConnected().

QAbstractSocket.connectToHost (self, QHostAddress address, int port, QIODevice.OpenMode mode = QIODevice.ReadWrite)

This is an overloaded function.

Attempts to make a connection to address on port port.

QAbstractSocket.connectToHostImplementation (self, QString hostName, int port, QIODevice.OpenMode mode = QIODevice.ReadWrite)

This method is also a Qt slot with the C++ signature void connectToHostImplementation(const QString&,quint16,QIODevice::OpenMode = QIODevice.ReadWrite).

Contains the implementation of connectToHost().

Attempts to make a connection to hostName on the given port. The socket is opened in the given openMode.

This function was introduced in Qt 4.1.

QAbstractSocket.disconnectFromHost (self)

Attempts to close the socket. If there is pending data waiting to be written, QAbstractSocket will enter ClosingState and wait until all data has been written. Eventually, it will enter UnconnectedState and emit the disconnected() signal.

See also connectToHost().

QAbstractSocket.disconnectFromHostImplementation (self)

This method is also a Qt slot with the C++ signature void disconnectFromHostImplementation().

Contains the implementation of disconnectFromHost().

This function was introduced in Qt 4.1.

SocketError QAbstractSocket.error (self)

Returns the type of error that last occurred.

See also state() and errorString().

bool QAbstractSocket.flush (self)

This function writes as much as possible from the internal write buffer to the underlying network socket, without blocking. If any data was written, this function returns true; otherwise false is returned.

Call this function if you need QAbstractSocket to start sending buffered data immediately. The number of bytes successfully written depends on the operating system. In most cases, you do not need to call this function, because QAbstractSocket will start sending data automatically once control goes back to the event loop. In the absence of an event loop, call waitForBytesWritten() instead.

See also write() and waitForBytesWritten().

bool QAbstractSocket.isSequential (self)

Reimplemented from QIODevice.isSequential().

bool QAbstractSocket.isValid (self)

Returns true if the socket is valid and ready for use; otherwise returns false.

Note: The socket's state must be ConnectedState before reading and writing can occur.

See also state().

QHostAddress QAbstractSocket.localAddress (self)

Returns the host address of the local socket if available; otherwise returns QHostAddress.Null.

This is normally the main IP address of the host, but can be QHostAddress.LocalHost (127.0.0.1) for connections to the local host.

See also localPort(), peerAddress(), and setLocalAddress().

int QAbstractSocket.localPort (self)

Returns the host port number (in native byte order) of the local socket if available; otherwise returns 0.

See also localAddress(), peerPort(), and setLocalPort().

QHostAddress QAbstractSocket.peerAddress (self)

Returns the address of the connected peer if the socket is in ConnectedState; otherwise returns QHostAddress.Null.

See also peerName(), peerPort(), localAddress(), and setPeerAddress().

QString QAbstractSocket.peerName (self)

Returns the name of the peer as specified by connectToHost(), or an empty QString if connectToHost() has not been called.

See also peerAddress(), peerPort(), and setPeerName().

int QAbstractSocket.peerPort (self)

Returns the port of the connected peer if the socket is in ConnectedState; otherwise returns 0.

See also peerAddress(), localPort(), and setPeerPort().

QNetworkProxy QAbstractSocket.proxy (self)

Returns the network proxy for this socket. By default QNetworkProxy.DefaultProxy is used, which means this socket will query the default proxy settings for the application.

This function was introduced in Qt 4.1.

See also setProxy(), QNetworkProxy, and QNetworkProxyFactory.

int QAbstractSocket.readBufferSize (self)

Returns the size of the internal read buffer. This limits the amount of data that the client can receive before you call read() or readAll().

A read buffer size of 0 (the default) means that the buffer has no size limit, ensuring that no data is lost.

See also setReadBufferSize() and read().

str QAbstractSocket.readData (self, int maxlen)

Reimplemented from QIODevice.readData().

str QAbstractSocket.readLineData (self, int maxlen)

Reimplemented from QIODevice.readLineData().

QAbstractSocket.setLocalAddress (self, QHostAddress address)

Sets the address on the local side of a connection to address.

You can call this function in a subclass of QAbstractSocket to change the return value of the localAddress() function after a connection has been established. This feature is commonly used by proxy connections for virtual connection settings.

Note that this function does not bind the local address of the socket prior to a connection (e.g., QUdpSocket.bind()).

This function was introduced in Qt 4.1.

See also localAddress(), setLocalPort(), and setPeerAddress().

QAbstractSocket.setLocalPort (self, int port)

Sets the port on the local side of a connection to port.

You can call this function in a subclass of QAbstractSocket to change the return value of the localPort() function after a connection has been established. This feature is commonly used by proxy connections for virtual connection settings.

Note that this function does not bind the local port of the socket prior to a connection (e.g., QUdpSocket.bind()).

This function was introduced in Qt 4.1.

See also localPort(), localAddress(), setLocalAddress(), and setPeerPort().

QAbstractSocket.setPeerAddress (self, QHostAddress address)

Sets the address of the remote side of the connection to address.

You can call this function in a subclass of QAbstractSocket to change the return value of the peerAddress() function after a connection has been established. This feature is commonly used by proxy connections for virtual connection settings.

This function was introduced in Qt 4.1.

See also peerAddress(), setPeerPort(), and setLocalAddress().

QAbstractSocket.setPeerName (self, QString name)

Sets the host name of the remote peer to name.

You can call this function in a subclass of QAbstractSocket to change the return value of the peerName() function after a connection has been established. This feature is commonly used by proxy connections for virtual connection settings.

This function was introduced in Qt 4.1.

See also peerName().

QAbstractSocket.setPeerPort (self, int port)

Sets the port of the remote side of the connection to port.

You can call this function in a subclass of QAbstractSocket to change the return value of the peerPort() function after a connection has been established. This feature is commonly used by proxy connections for virtual connection settings.

This function was introduced in Qt 4.1.

See also peerPort(), setPeerAddress(), and setLocalPort().

QAbstractSocket.setProxy (self, QNetworkProxy networkProxy)

Sets the explicit network proxy for this socket to networkProxy.

To disable the use of a proxy for this socket, use the QNetworkProxy.NoProxy proxy type:

 socket->setProxy(QNetworkProxy.NoProxy);

The default value for the proxy is QNetworkProxy.DefaultProxy, which means the socket will use the application settings: if a proxy is set with QNetworkProxy.setApplicationProxy, it will use that; otherwise, if a factory is set with QNetworkProxyFactory.setApplicationProxyFactory, it will query that factory with type QNetworkProxyQuery.TcpSocket.

This function was introduced in Qt 4.1.

See also proxy(), QNetworkProxy, and QNetworkProxyFactory.queryProxy().

QAbstractSocket.setReadBufferSize (self, int size)

Sets the size of QAbstractSocket's internal read buffer to be size bytes.

If the buffer size is limited to a certain size, QAbstractSocket won't buffer more than this size of data. Exceptionally, a buffer size of 0 means that the read buffer is unlimited and all incoming data is buffered. This is the default.

This option is useful if you only read the data at certain points in time (e.g., in a real-time streaming application) or if you want to protect your socket against receiving too much data, which may eventually cause your application to run out of memory.

Only QTcpSocket uses QAbstractSocket's internal buffer; QUdpSocket does not use any buffering at all, but rather relies on the implicit buffering provided by the operating system. Because of this, calling this function on QUdpSocket has no effect.

See also readBufferSize() and read().

bool QAbstractSocket.setSocketDescriptor (self, int socketDescriptor, SocketState state = QAbstractSocket.ConnectedState, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Initializes QAbstractSocket with the native socket descriptor socketDescriptor. Returns true if socketDescriptor is accepted as a valid socket descriptor; otherwise returns false. The socket is opened in the mode specified by openMode, and enters the socket state specified by socketState.

Note: It is not possible to initialize two abstract sockets with the same native socket descriptor.

See also socketDescriptor().

QAbstractSocket.setSocketError (self, SocketError socketError)

Sets the type of error that last occurred to socketError.

See also setSocketState() and setErrorString().

QAbstractSocket.setSocketOption (self, SocketOption option, QVariant value)

Sets the given option to the value described by value.

This function was introduced in Qt 4.6.

See also socketOption().

QAbstractSocket.setSocketState (self, SocketState state)

Sets the state of the socket to state.

See also state().

int QAbstractSocket.socketDescriptor (self)

Returns the native socket descriptor of the QAbstractSocket object if this is available; otherwise returns -1.

If the socket is using QNetworkProxy, the returned descriptor may not be usable with native socket functions.

The socket descriptor is not available when QAbstractSocket is in UnconnectedState.

See also setSocketDescriptor().

QVariant QAbstractSocket.socketOption (self, SocketOption option)

Returns the value of the option option.

This function was introduced in Qt 4.6.

See also setSocketOption().

SocketType QAbstractSocket.socketType (self)

Returns the socket type (TCP, UDP, or other).

See also QTcpSocket and QUdpSocket.

SocketState QAbstractSocket.state (self)

Returns the state of the socket.

See also error().

bool QAbstractSocket.waitForBytesWritten (self, int msecs = 30000)

Reimplemented from QIODevice.waitForBytesWritten().

bool QAbstractSocket.waitForConnected (self, int msecs = 30000)

Waits until the socket is connected, up to msecs milliseconds. If the connection has been established, this function returns true; otherwise it returns false. In the case where it returns false, you can call error() to determine the cause of the error.

The following example waits up to one second for a connection to be established:

 socket->connectToHost("imap", 143);
 if (socket->waitForConnected(1000))
     qDebug("Connected!");

If msecs is -1, this function will not time out.

Note: This function may wait slightly longer than msecs, depending on the time it takes to complete the host lookup.

Note: Multiple calls to this functions do not accumulate the time. If the function times out, the connecting process will be aborted.

See also connectToHost() and connected().

bool QAbstractSocket.waitForDisconnected (self, int msecs = 30000)

Waits until the socket has disconnected, up to msecs milliseconds. If the connection has been disconnected, this function returns true; otherwise it returns false. In the case where it returns false, you can call error() to determine the cause of the error.

The following example waits up to one second for a connection to be closed:

 socket->disconnectFromHost();
     if (socket->state() == QAbstractSocket.UnconnectedState ||
         socket->waitForDisconnected(1000))
         qDebug("Disconnected!");

If msecs is -1, this function will not time out.

See also disconnectFromHost() and close().

bool QAbstractSocket.waitForReadyRead (self, int msecs = 30000)

Reimplemented from QIODevice.waitForReadyRead().

This function blocks until new data is available for reading and the readyRead() signal has been emitted. The function will timeout after msecs milliseconds; the default timeout is 30000 milliseconds.

The function returns true if the readyRead() signal is emitted and there is new data available for reading; otherwise it returns false (if an error occurred or the operation timed out).

See also waitForBytesWritten().

int QAbstractSocket.writeData (self, str data)

Reimplemented from QIODevice.writeData().


Qt Signal Documentation

void connected ()

This is the default overload of this signal.

This signal is emitted after connectToHost() has been called and a connection has been successfully established.

Note: On some operating systems the connected() signal may be directly emitted from the connectToHost() call for connections to the localhost.

See also connectToHost() and disconnected().

void disconnected ()

This is the default overload of this signal.

This signal is emitted when the socket has been disconnected.

Warning: If you need to delete the sender() of this signal in a slot connected to it, use the deleteLater() function.

See also connectToHost(), disconnectFromHost(), and abort().

void error (QAbstractSocket::SocketError)

This is the default overload of this signal.

This signal is emitted after an error occurred. The socketError parameter describes the type of error that occurred.

QAbstractSocket.SocketError is not a registered metatype, so for queued connections, you will have to register it with Q_DECLARE_METATYPE() and qRegisterMetaType().

See also error(), errorString(), and Creating Custom Qt Types.

void hostFound ()

This is the default overload of this signal.

This signal is emitted after connectToHost() has been called and the host lookup has succeeded.

Note: Since Qt 4.6.3 QAbstractSocket may emit hostFound() directly from the connectToHost() call since a DNS result could have been cached.

See also connected().

void proxyAuthenticationRequired (const QNetworkProxy&,QAuthenticator*)

This is the default overload of this signal.

This signal can be emitted when a proxy that requires authentication is used. The authenticator object can then be filled in with the required details to allow authentication and continue the connection.

Note: It is not possible to use a QueuedConnection to connect to this signal, as the connection will fail if the authenticator has not been filled in with new information when the signal returns.

This function was introduced in Qt 4.3.

See also QAuthenticator and QNetworkProxy.

void stateChanged (QAbstractSocket::SocketState)

This is the default overload of this signal.

This signal is emitted whenever QAbstractSocket's state changes. The socketState parameter is the new state.

QAbstractSocket.SocketState is not a registered metatype, so for queued connections, you will have to register it with Q_REGISTER_METATYPE() and qRegisterMetaType().

See also state() and Creating Custom Qt Types.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractspinbox-stepenabled.html0000644000076500000240000001447712536324500024233 0ustar philstaff00000000000000 QAbstractSpinBox.StepEnabled Class Reference
  Home · All Classes · Modules

QAbstractSpinBox.StepEnabled Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

StepEnabledFlag may be used whenever StepEnabled is expected.


Method Documentation

StepEnabled.__init__ (self, StepEnabled)

StepEnabled.__init__ (self, int)

StepEnabled.__init__ (self)

StepEnabled StepEnabled.__and__ (self, int mask)

int StepEnabled.__bool__ (self)

bool StepEnabled.__eq__ (self, StepEnabled f)

StepEnabled StepEnabled.__iand__ (self, int mask)

int StepEnabled.__int__ (self)

StepEnabled StepEnabled.__invert__ (self)

StepEnabled StepEnabled.__ior__ (self, StepEnabled f)

StepEnabled StepEnabled.__ixor__ (self, StepEnabled f)

bool StepEnabled.__ne__ (self, StepEnabled f)

StepEnabled StepEnabled.__or__ (self, StepEnabled f)

StepEnabled StepEnabled.__or__ (self, int f)

StepEnabled StepEnabled.__xor__ (self, StepEnabled f)

StepEnabled StepEnabled.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractspinbox.html0000644000076500000240000006773712536324500021756 0ustar philstaff00000000000000 QAbstractSpinBox Class Reference
  Home · All Classes · Modules

QAbstractSpinBox Class Reference
[QtGui module]

The QAbstractSpinBox class provides a spinbox and a line edit to display values. More...

Inherits QWidget.

Inherited by QDateTimeEdit, QDoubleSpinBox and QSpinBox.

Types

Methods

Qt Signals


Detailed Description

The QAbstractSpinBox class provides a spinbox and a line edit to display values.

The class is designed as a common super class for widgets like QSpinBox, QDoubleSpinBox and QDateTimeEdit

Here are the main properties of the class:

  1. text: The text that is displayed in the QAbstractSpinBox.
  2. alignment: The alignment of the text in the QAbstractSpinBox.
  3. wrapping: Whether the QAbstractSpinBox wraps from the minimum value to the maximum value and vica versa.

QAbstractSpinBox provides a virtual stepBy() function that is called whenever the user triggers a step. This function takes an integer value to signify how many steps were taken. E.g. Pressing Qt.Key_Down will trigger a call to stepBy(-1).

QAbstractSpinBox also provide a virtual function stepEnabled() to determine whether stepping up/down is allowed at any point. This function returns a bitset of StepEnabled.


Type Documentation

QAbstractSpinBox.ButtonSymbols

This enum type describes the symbols that can be displayed on the buttons in a spin box.

Constant Value Description
QAbstractSpinBox.UpDownArrows 0 Little arrows in the classic style.
QAbstractSpinBox.PlusMinus 1 + and - symbols.
QAbstractSpinBox.NoButtons 2 Don't display buttons.

See also QAbstractSpinBox.buttonSymbols.

QAbstractSpinBox.CorrectionMode

This enum type describes the mode the spinbox will use to correct an Intermediate value if editing finishes.

Constant Value Description
QAbstractSpinBox.CorrectToPreviousValue 0 The spinbox will revert to the last valid value.
QAbstractSpinBox.CorrectToNearestValue 1 The spinbox will revert to the nearest valid value.

See also correctionMode.

QAbstractSpinBox.StepEnabledFlag

Constant Value
QAbstractSpinBox.StepNone 0x00
QAbstractSpinBox.StepUpEnabled 0x01
QAbstractSpinBox.StepDownEnabled 0x02

The StepEnabled type is a typedef for QFlags<StepEnabledFlag>. It stores an OR combination of StepEnabledFlag values.


Method Documentation

QAbstractSpinBox.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an abstract spinbox with the given parent with default wrapping, and alignment properties.

Qt.Alignment QAbstractSpinBox.alignment (self)

ButtonSymbols QAbstractSpinBox.buttonSymbols (self)

QAbstractSpinBox.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

QAbstractSpinBox.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Clears the lineedit of all text but prefix and suffix.

QAbstractSpinBox.closeEvent (self, QCloseEvent e)

Reimplemented from QWidget.closeEvent().

QAbstractSpinBox.contextMenuEvent (self, QContextMenuEvent e)

Reimplemented from QWidget.contextMenuEvent().

CorrectionMode QAbstractSpinBox.correctionMode (self)

bool QAbstractSpinBox.event (self, QEvent event)

Reimplemented from QObject.event().

QString input QAbstractSpinBox.fixup (self, QString input)

This virtual function is called by the QAbstractSpinBox if the input is not validated to QValidator.Acceptable when Return is pressed or interpretText() is called. It will try to change the text so it is valid. Reimplemented in the various subclasses.

QAbstractSpinBox.fixup (self, QString input)

QAbstractSpinBox.focusInEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusInEvent().

QAbstractSpinBox.focusOutEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusOutEvent().

bool QAbstractSpinBox.hasAcceptableInput (self)

bool QAbstractSpinBox.hasFrame (self)

QAbstractSpinBox.hideEvent (self, QHideEvent e)

Reimplemented from QWidget.hideEvent().

QAbstractSpinBox.initStyleOption (self, QStyleOptionSpinBox option)

Initialize option with the values from this QSpinBox. This method is useful for subclasses when they need a QStyleOptionSpinBox, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QVariant QAbstractSpinBox.inputMethodQuery (self, Qt.InputMethodQuery)

Reimplemented from QWidget.inputMethodQuery().

QAbstractSpinBox.interpretText (self)

This function interprets the text of the spin box. If the value has changed since last interpretation it will emit signals.

bool QAbstractSpinBox.isAccelerated (self)

bool QAbstractSpinBox.isReadOnly (self)

bool QAbstractSpinBox.keyboardTracking (self)

QAbstractSpinBox.keyPressEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyPressEvent().

This function handles keyboard input.

The following keys are handled specifically:

Enter/Return This will reinterpret the text and emit a signal even if the value has not changed since last time a signal was emitted.
Up This will invoke stepBy(1)
Down This will invoke stepBy(-1)
Page up This will invoke stepBy(10)
Page down This will invoke stepBy(-10)

QAbstractSpinBox.keyReleaseEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyReleaseEvent().

QLineEdit QAbstractSpinBox.lineEdit (self)

This function returns a pointer to the line edit of the spin box.

See also setLineEdit().

QSize QAbstractSpinBox.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QAbstractSpinBox.mouseMoveEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseMoveEvent().

QAbstractSpinBox.mousePressEvent (self, QMouseEvent e)

Reimplemented from QWidget.mousePressEvent().

QAbstractSpinBox.mouseReleaseEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseReleaseEvent().

QAbstractSpinBox.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

QAbstractSpinBox.resizeEvent (self, QResizeEvent e)

Reimplemented from QWidget.resizeEvent().

QAbstractSpinBox.selectAll (self)

This method is also a Qt slot with the C++ signature void selectAll().

Selects all the text in the spinbox except the prefix and suffix.

QAbstractSpinBox.setAccelerated (self, bool on)

QAbstractSpinBox.setAlignment (self, Qt.Alignment flag)

QAbstractSpinBox.setButtonSymbols (self, ButtonSymbols bs)

QAbstractSpinBox.setCorrectionMode (self, CorrectionMode cm)

QAbstractSpinBox.setFrame (self, bool)

QAbstractSpinBox.setKeyboardTracking (self, bool kt)

QAbstractSpinBox.setLineEdit (self, QLineEdit e)

The e argument has it's ownership transferred to Qt.

Sets the line edit of the spinbox to be lineEdit instead of the current line edit widget. lineEdit can not be 0.

QAbstractSpinBox takes ownership of the new lineEdit

If QLineEdit.validator() for the lineEdit returns 0, the internal validator of the spinbox will be set on the line edit.

See also lineEdit().

QAbstractSpinBox.setReadOnly (self, bool r)

QAbstractSpinBox.setSpecialValueText (self, QString s)

QAbstractSpinBox.setWrapping (self, bool w)

QAbstractSpinBox.showEvent (self, QShowEvent e)

Reimplemented from QWidget.showEvent().

QSize QAbstractSpinBox.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QString QAbstractSpinBox.specialValueText (self)

QAbstractSpinBox.stepBy (self, int steps)

Virtual function that is called whenever the user triggers a step. The steps parameter indicates how many steps were taken, e.g. Pressing Qt.Key_Down will trigger a call to stepBy(-1), whereas pressing Qt.Key_Prior will trigger a call to stepBy(10).

If you subclass QAbstractSpinBox you must reimplement this function. Note that this function is called even if the resulting value will be outside the bounds of minimum and maximum. It's this function's job to handle these situations.

QAbstractSpinBox.stepDown (self)

This method is also a Qt slot with the C++ signature void stepDown().

Steps down by one linestep Calling this slot is analogous to calling stepBy(-1);

See also stepBy() and stepUp().

StepEnabled QAbstractSpinBox.stepEnabled (self)

Virtual function that determines whether stepping up and down is legal at any given time.

The up arrow will be painted as disabled unless (stepEnabled() & StepUpEnabled) != 0.

The default implementation will return (StepUpEnabled| StepDownEnabled) if wrapping is turned on. Else it will return StepDownEnabled if value is > minimum() or'ed with StepUpEnabled if value < maximum().

If you subclass QAbstractSpinBox you will need to reimplement this function.

See also QSpinBox.minimum(), QSpinBox.maximum(), and wrapping().

QAbstractSpinBox.stepUp (self)

This method is also a Qt slot with the C++ signature void stepUp().

Steps up by one linestep Calling this slot is analogous to calling stepBy(1);

See also stepBy() and stepDown().

QString QAbstractSpinBox.text (self)

QAbstractSpinBox.timerEvent (self, QTimerEvent e)

Reimplemented from QObject.timerEvent().

(QValidator.State, QString input, int pos) QAbstractSpinBox.validate (self, QString input, int pos)

This virtual function is called by the QAbstractSpinBox to determine whether input is valid. The pos parameter indicates the position in the string. Reimplemented in the various subclasses.

(QValidator.State, int pos) QAbstractSpinBox.validate (self, QString input, int pos)

QAbstractSpinBox.wheelEvent (self, QWheelEvent e)

Reimplemented from QWidget.wheelEvent().

bool QAbstractSpinBox.wrapping (self)


Qt Signal Documentation

void editingFinished ()

This is the default overload of this signal.

This signal is emitted editing is finished. This happens when the spinbox loses focus and when enter is pressed.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractstate.html0000644000076500000240000001461712536324471021410 0ustar philstaff00000000000000 QAbstractState Class Reference
  Home · All Classes · Modules

QAbstractState Class Reference
[
QtCore module]

The QAbstractState class is the base class of states of a QStateMachine. More...

Inherits QObject.

Inherited by QFinalState, QHistoryState and QState.

Methods

Qt Signals


Detailed Description

The QAbstractState class is the base class of states of a QStateMachine.

The QAbstractState class is the abstract base class of states that are part of a QStateMachine. It defines the interface that all state objects have in common. QAbstractState is part of The State Machine Framework.

The entered() signal is emitted when the state has been entered. The exited() signal is emitted when the state has been exited.

The parentState() function returns the state's parent state. The machine() function returns the state machine that the state is part of.

Subclassing

The onEntry() function is called when the state is entered; reimplement this function to perform custom processing when the state is entered.

The onExit() function is called when the state is exited; reimplement this function to perform custom processing when the state is exited.


Method Documentation

QAbstractState.__init__ (self, QState parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new state with the given parent state.

bool QAbstractState.event (self, QEvent e)

Reimplemented from QObject.event().

QStateMachine QAbstractState.machine (self)

Returns the state machine that this state is part of, or 0 if the state is not part of a state machine.

QAbstractState.onEntry (self, QEvent event)

This method is abstract and should be reimplemented in any sub-class.

This function is called when the state is entered. The given event is what caused the state to be entered. Reimplement this function to perform custom processing when the state is entered.

QAbstractState.onExit (self, QEvent event)

This method is abstract and should be reimplemented in any sub-class.

This function is called when the state is exited. The given event is what caused the state to be exited. Reimplement this function to perform custom processing when the state is exited.

QState QAbstractState.parentState (self)

Returns this state's parent state, or 0 if the state has no parent state.


Qt Signal Documentation

void entered ()

This is the default overload of this signal.

This signal is emitted when the state has been entered (after onEntry() has been called).

void exited ()

This is the default overload of this signal.

This signal is emitted when the state has been exited (after onExit() has been called).


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstracttablemodel.html0000644000076500000240000001745612536324471022404 0ustar philstaff00000000000000 QAbstractTableModel Class Reference
  Home · All Classes · Modules

QAbstractTableModel Class Reference
[QtCore module]

The QAbstractTableModel class provides an abstract model that can be subclassed to create table models. More...

Inherits QAbstractItemModel.

Inherited by QSqlQueryModel.

Methods

  • __init__ (self, QObject parent = None)
  • bool dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)
  • QModelIndex index (self, int row, int column, QModelIndex parent = QModelIndex())

Detailed Description

The QAbstractTableModel class provides an abstract model that can be subclassed to create table models.

QAbstractTableModel provides a standard interface for models that represent their data as a two-dimensional array of items. It is not used directly, but must be subclassed.

Since the model provides a more specialized interface than QAbstractItemModel, it is not suitable for use with tree views, although it can be used to provide data to a QListView. If you need to represent a simple list of items, and only need a model to contain a single column of data, subclassing the QAbstractListModel may be more appropriate.

The rowCount() and columnCount() functions return the dimensions of the table. To retrieve a model index corresponding to an item in the model, use index() and provide only the row and column numbers.

Subclassing

When subclassing QAbstractTableModel, you must implement rowCount(), columnCount(), and data(). Default implementations of the index() and parent() functions are provided by QAbstractTableModel. Well behaved models will also implement headerData().

Editable models need to implement setData(), and implement flags() to return a value containing Qt.ItemIsEditable.

Models that provide interfaces to resizable data structures can provide implementations of insertRows(), removeRows(), insertColumns(), and removeColumns(). When implementing these functions, it is important to call the appropriate functions so that all connected views are aware of any changes:

Note: Some general guidelines for subclassing models are available in the Model Subclassing Reference.

Note:


Method Documentation

QAbstractTableModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an abstract table model for the given parent.

bool QAbstractTableModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Reimplemented from QAbstractItemModel.dropMimeData().

QModelIndex QAbstractTableModel.index (self, int row, int column, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.index().

Returns the index of the data in row and column with parent.

See also parent().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstracttextdocumentlayout-paintcontext.html0000644000076500000240000001200512536324500026745 0ustar philstaff00000000000000 QAbstractTextDocumentLayout.PaintContext Class Reference
  Home · All Classes · Modules

QAbstractTextDocumentLayout.PaintContext Class Reference
[QtGui module]

The QAbstractTextDocumentLayout.PaintContext class is a convenience class defining the parameters used when painting a document's layout. More...

Methods

Members


Detailed Description

The QAbstractTextDocumentLayout.PaintContext class is a convenience class defining the parameters used when painting a document's layout.

A paint context is used when rendering custom layouts for QTextDocuments with the QAbstractTextDocumentLayout.draw() function. It is specified by a cursor position, default text color, clip rectangle and a collection of selections.


Method Documentation

PaintContext.__init__ (self)

PaintContext.__init__ (self, PaintContext)


Member Documentation

QRectF clip

This variable holds a hint to the layout specifying the area around paragraphs, frames or text require painting.

Everything outside of this rectangle does not need to be painted.

Specifying a clip rectangle can speed up drawing of large documents significantly. Note that the clip rectangle is in document coordinates (not in viewport coordinates). It is not a substitute for a clip region set on the painter but merely a hint.

The default value is a null rectangle indicating everything needs to be painted.

int cursorPosition

This variable holds the position within the document, where the cursor line should be drawn.

The default value is -1.

QPalette palette

This variable holds the default color that is used for the text, when no color is specified.

The default value is the application's default palette.

list-of-QAbstractTextDocumentLayout.Selection selections

This variable holds the collection of selections that will be rendered when passing this paint context to QAbstractTextDocumentLayout's draw() function.

The default value is an empty vector indicating no selection.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstracttextdocumentlayout-selection.html0000644000076500000240000000704512536324500026222 0ustar philstaff00000000000000 QAbstractTextDocumentLayout.Selection Class Reference
  Home · All Classes · Modules

QAbstractTextDocumentLayout.Selection Class Reference
[
QtGui module]

The QAbstractTextDocumentLayout.Selection class is a convenience class defining the parameters of a selection. More...

Methods

Members


Detailed Description

The QAbstractTextDocumentLayout.Selection class is a convenience class defining the parameters of a selection.

A selection can be used to specify a part of a document that should be highlighted when drawing custom layouts for QTextDocuments with the QAbstractTextDocumentLayout.draw() function. It is specified using cursor and a format.


Method Documentation

Selection.__init__ (self)

Selection.__init__ (self, Selection)


Member Documentation

QTextCursor cursor

This variable holds the selection's cursor.

The default value is a null cursor.

QTextCharFormat format

This variable holds the format of the selection.

The default value is QTextFormat.InvalidFormat.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstracttextdocumentlayout.html0000644000076500000240000004424412536324500024241 0ustar philstaff00000000000000 QAbstractTextDocumentLayout Class Reference
  Home · All Classes · Modules

QAbstractTextDocumentLayout Class Reference
[QtGui module]

The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for QTextDocuments. More...

Inherits QObject.

Inherited by QPlainTextDocumentLayout.

Types

Methods

Qt Signals


Detailed Description

The QAbstractTextDocumentLayout class is an abstract base class used to implement custom layouts for QTextDocuments.

The standard layout provided by Qt can handle simple word processing including inline images, lists and tables.

Some applications, e.g., a word processor or a DTP application might need more features than the ones provided by Qt's layout engine, in which case you can subclass QAbstractTextDocumentLayout to provide custom layout behavior for your text documents.

An instance of the QAbstractTextDocumentLayout subclass can be installed on a QTextDocument object with the setDocumentLayout() function.

You can insert custom objects into a QTextDocument; see the QTextObjectInterface class description for details.


Method Documentation

QAbstractTextDocumentLayout.__init__ (self, QTextDocument doc)

Creates a new text document layout for the given document.

QString QAbstractTextDocumentLayout.anchorAt (self, QPointF pos)

Returns the reference of the anchor the given position, or an empty string if no anchor exists at that point.

QRectF QAbstractTextDocumentLayout.blockBoundingRect (self, QTextBlock block)

This method is abstract and should be reimplemented in any sub-class.

Returns the bounding rectangle of block.

QTextDocument QAbstractTextDocumentLayout.document (self)

Returns the text document that this layout is operating on.

QAbstractTextDocumentLayout.documentChanged (self, int from, int charsRemoved, int charsAdded)

This method is abstract and should be reimplemented in any sub-class.

This function is called whenever the contents of the document change. A change occurs when text is inserted, removed, or a combination of these two. The change is specified by position, charsRemoved, and charsAdded corresponding to the starting character position of the change, the number of characters removed from the document, and the number of characters added.

For example, when inserting the text "Hello" into an empty document, charsRemoved would be 0 and charsAdded would be 5 (the length of the string).

Replacing text is a combination of removing and inserting. For example, if the text "Hello" gets replaced by "Hi", charsRemoved would be 5 and charsAdded would be 2.

For subclasses of QAbstractTextDocumentLayout, this is the central function where a large portion of the work to lay out and position document contents is done.

For example, in a subclass that only arranges blocks of text, an implementation of this function would have to do the following:

  • Determine the list of changed QTextBlock(s) using the parameters provided.
  • Each QTextBlock object's corresponding QTextLayout object needs to be processed. You can access the QTextBlock's layout using the QTextBlock.layout() function. This processing should take the document's page size into consideration.
  • If the total number of pages changed, the pageCountChanged() signal should be emitted.
  • If the total size changed, the documentSizeChanged() signal should be emitted.
  • The update() signal should be emitted to schedule a repaint of areas in the layout that require repainting.

See also QTextLayout.

QSizeF QAbstractTextDocumentLayout.documentSize (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the total size of the document's layout.

This information can be used by display widgets to update their scroll bars correctly.

See also documentSizeChanged() and QTextDocument.pageSize.

QAbstractTextDocumentLayout.draw (self, QPainter painter, PaintContext context)

This method is abstract and should be reimplemented in any sub-class.

Draws the layout with the given painter using the given context.

QAbstractTextDocumentLayout.drawInlineObject (self, QPainter painter, QRectF rect, QTextInlineObject object, int posInDocument, QTextFormat format)

This function is called to draw the inline object, object, with the given painter within the rectangle specified by rect using the specified text format.

posInDocument specifies the position of the object within the document.

The default implementation calls drawObject() on the object handlers. This function is called only within Qt. Subclasses can reimplement this function to customize the drawing of inline objects.

See also draw().

QTextCharFormat QAbstractTextDocumentLayout.format (self, int pos)

Returns the character format that is applicable at the given position.

QRectF QAbstractTextDocumentLayout.frameBoundingRect (self, QTextFrame frame)

This method is abstract and should be reimplemented in any sub-class.

Returns the bounding rectangle of frame.

QTextObjectInterface QAbstractTextDocumentLayout.handlerForObject (self, int objectType)

Returns a handler for objects of the given objectType.

int QAbstractTextDocumentLayout.hitTest (self, QPointF point, Qt.HitTestAccuracy accuracy)

This method is abstract and should be reimplemented in any sub-class.

Returns the cursor postion for the given point with the specified accuracy. Returns -1 if no valid cursor position was found.

int QAbstractTextDocumentLayout.pageCount (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the number of pages contained in the layout.

See also pageCountChanged().

QPaintDevice QAbstractTextDocumentLayout.paintDevice (self)

Returns the paint device used to render the document's layout.

See also setPaintDevice().

QAbstractTextDocumentLayout.positionInlineObject (self, QTextInlineObject item, int posInDocument, QTextFormat format)

Lays out the inline object item using the given text format.

posInDocument specifies the position of the object within the document.

The default implementation does nothing. This function is called only within Qt. Subclasses can reimplement this function to customize the position of inline objects.

See also drawInlineObject().

QAbstractTextDocumentLayout.registerHandler (self, int objectType, QObject component)

Registers the given component as a handler for items of the given objectType.

Note: registerHandler() has to be called once for each object type. This means that there is only one handler for multiple replacement characters of the same object type.

QAbstractTextDocumentLayout.resizeInlineObject (self, QTextInlineObject item, int posInDocument, QTextFormat format)

Sets the size of the inline object item corresponding to the text format.

posInDocument specifies the position of the object within the document.

The default implementation resizes the item to the size returned by the object handler's intrinsicSize() function. This function is called only within Qt. Subclasses can reimplement this function to customize the resizing of inline objects.

QAbstractTextDocumentLayout.setPaintDevice (self, QPaintDevice device)

Sets the paint device used for rendering the document's layout to the given device.

See also paintDevice().


Qt Signal Documentation

void documentSizeChanged (const QSizeF&)

This is the default overload of this signal.

This signal is emitted when the size of the document layout changes to newSize.

Subclasses of QAbstractTextDocumentLayout should emit this signal when the document's entire layout size changes. This signal is useful for widgets that display text documents since it enables them to update their scroll bars correctly.

See also documentSize().

void pageCountChanged (int)

This is the default overload of this signal.

This signal is emitted when the number of pages in the layout changes; newPages is the updated page count.

Subclasses of QAbstractTextDocumentLayout should emit this signal when the number of pages in the layout has changed. Changes to the page count are caused by changes to the layout or the document content itself.

See also pageCount().

void update (const QRectF& = QRectF (0,0,1e+09,1e+09))

This is the default overload of this signal.

This signal is emitted when the rectangle rect has been updated.

Subclasses of QAbstractTextDocumentLayout should emit this signal when the layout of the contents change in order to repaint.

void updateBlock (const QTextBlock&)

This is the default overload of this signal.

This signal is emitted when the specified block has been updated.

Subclasses of QAbstractTextDocumentLayout should emit this signal when the layout of block has changed in order to repaint.

This function was introduced in Qt 4.4.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstracttransition.html0000644000076500000240000002252212536324471022454 0ustar philstaff00000000000000 QAbstractTransition Class Reference
  Home · All Classes · Modules

QAbstractTransition Class Reference
[QtCore module]

The QAbstractTransition class is the base class of transitions between QAbstractState objects. More...

Inherits QObject.

Inherited by QEventTransition and QSignalTransition.

Methods

Qt Signals


Detailed Description

The QAbstractTransition class is the base class of transitions between QAbstractState objects.

The QAbstractTransition class is the abstract base class of transitions between states (QAbstractState objects) of a QStateMachine. QAbstractTransition is part of The State Machine Framework.

The sourceState() function returns the source of the transition. The targetStates() function returns the targets of the transition. The machine() function returns the state machine that the transition is part of.

The triggered() signal is emitted when the transition has been triggered.

Transitions can cause animations to be played. Use the addAnimation() function to add an animation to the transition.

Subclassing

The eventTest() function is called by the state machine to determine whether an event should trigger the transition. In your reimplementation you typically check the event type and cast the event object to the proper type, and check that one or more properties of the event meet your criteria.

The onTransition() function is called when the transition is triggered; reimplement this function to perform custom processing for the transition.


Method Documentation

QAbstractTransition.__init__ (self, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QAbstractTransition object with the given sourceState.

QAbstractTransition.addAnimation (self, QAbstractAnimation animation)

Adds the given animation to this transition. The transition does not take ownership of the animation.

See also removeAnimation() and animations().

list-of-QAbstractAnimation QAbstractTransition.animations (self)

Returns the list of animations associated with this transition, or an empty list if it has no animations.

See also addAnimation().

bool QAbstractTransition.event (self, QEvent e)

Reimplemented from QObject.event().

bool QAbstractTransition.eventTest (self, QEvent event)

This method is abstract and should be reimplemented in any sub-class.

This function is called to determine whether the given event should cause this transition to trigger. Reimplement this function and return true if the event should trigger the transition, otherwise return false.

QStateMachine QAbstractTransition.machine (self)

Returns the state machine that this transition is part of, or 0 if the transition is not part of a state machine.

QAbstractTransition.onTransition (self, QEvent event)

This method is abstract and should be reimplemented in any sub-class.

This function is called when the transition is triggered. The given event is what caused the transition to trigger. Reimplement this function to perform custom processing when the transition is triggered.

QAbstractTransition.removeAnimation (self, QAbstractAnimation animation)

Removes the given animation from this transition.

See also addAnimation().

QAbstractTransition.setTargetState (self, QAbstractState target)

QAbstractTransition.setTargetStates (self, list-of-QAbstractState targets)

QState QAbstractTransition.sourceState (self)

QAbstractState QAbstractTransition.targetState (self)

list-of-QAbstractState QAbstractTransition.targetStates (self)


Qt Signal Documentation

void triggered ()

This is the default overload of this signal.

This signal is emitted when the transition has been triggered (after onTransition() has been called).


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstracturiresolver.html0000644000076500000240000001133712536324524022644 0ustar philstaff00000000000000 QAbstractUriResolver Class Reference
  Home · All Classes · Modules

QAbstractUriResolver Class Reference
[QtXmlPatterns module]

The QAbstractUriResolver class is a callback interface for resolving Uniform Resource Identifiers. More...

Inherits QObject.

Methods

  • __init__ (self, QObject parent = None)
  • QUrl resolve (self, QUrl relative, QUrl baseURI)

Detailed Description

The QAbstractUriResolver class is a callback interface for resolving Uniform Resource Identifiers.

A Uniform Resource Identifier (URI) is a string that uniquely identifies a resource. URIs are versatile global identifiers. It is often useful to transform a URI that identifies something logical into a URI that locates something physical (a URL), or to simply map a URI to a different URI. QAbstractUriResolver.resolve() provides this functionality.

For example, one could write a QAbstractUriResolver subclass that rewrites library ISBN number URIs as book title URLs, e.g., urn:isbn:0-345-33973-8 would be rewritten as file:///books/returnOfTheKing.doc. Or a QAbstractUriResolver subclass could be written for a web browser to let the web browser protect the user's private files by mapping incoming requests for them to null URIs.


Method Documentation

QAbstractUriResolver.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QAbstractUriResolver with the specified parent.

QUrl QAbstractUriResolver.resolve (self, QUrl relative, QUrl baseURI)

This method is abstract and should be reimplemented in any sub-class.

Returns the relative URI resolved using the baseURI.

The caller guarantees that both relative and baseURI are valid, and that baseURI is absolute. relative can be relative, absolute, or empty.

The returned QUrl can be a default constructed QUrl. If it is not a default constructed QUrl, it will be absolute and valid. If a default constructed QUrl is returned, it means the relative URI was not accepted to be resolved.

If the reimplemented resolve() function decides it has nothing to do about resolving the relative URI, it should simply return the relative URI resolved against the baseURI, i.e.:

 return baseURI.resolved(relative);

See also QUrl.isRelative() and QUrl.isValid().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractvideobuffer.html0000644000076500000240000002446212536324517022570 0ustar philstaff00000000000000 QAbstractVideoBuffer Class Reference
  Home · All Classes · Modules

QAbstractVideoBuffer Class Reference
[QtMultimedia module]

The QAbstractVideoBuffer class is an abstraction for video data. More...

Types

  • enum HandleType { NoHandle, GLTextureHandle, XvShmImageHandle, CoreImageHandle, QPixmapHandle, UserHandle }
  • enum MapMode { NotMapped, ReadOnly, WriteOnly, ReadWrite }

Methods


Detailed Description

The QAbstractVideoBuffer class is an abstraction for video data.

The QVideoFrame class makes use of a QAbstractVideoBuffer internally to reference a buffer of video data. Creating a subclass of QAbstractVideoBuffer will allow you to construct video frames from preallocated or static buffers.

The contents of a buffer can be accessed by mapping the buffer to memory using the map() function which returns a pointer to memory containing the contents of the the video buffer. The memory returned by map() is released by calling the unmap() function.

The handle() of a buffer may also be used to manipulate it's contents using type specific APIs. The type of a buffer's handle is given by the handleType() function.


Type Documentation

QAbstractVideoBuffer.HandleType

Identifies the type of a video buffers handle.

Constant Value Description
QAbstractVideoBuffer.NoHandle 0 The buffer has no handle, its data can only be accessed by mapping the buffer.
QAbstractVideoBuffer.GLTextureHandle 1 The handle of the buffer is an OpenGL texture ID.
QAbstractVideoBuffer.XvShmImageHandle 2 The handle contains pointer to shared memory XVideo image.
QAbstractVideoBuffer.CoreImageHandle 3 The handle contains pointer to Mac OS X CIImage.
QAbstractVideoBuffer.QPixmapHandle 4 The handle of the buffer is a QPixmap.
QAbstractVideoBuffer.UserHandle 1000 Start value for user defined handle types.

See also handleType().

QAbstractVideoBuffer.MapMode

Enumerates how a video buffer's data is mapped to memory.

Constant Value Description
QAbstractVideoBuffer.NotMapped 0x00 The video buffer has is not mapped to memory.
QAbstractVideoBuffer.ReadOnly 0x01 The mapped memory is populated with data from the video buffer when mapped, but the content of the mapped memory may be discarded when unmapped.
QAbstractVideoBuffer.WriteOnly 0x02 The mapped memory is uninitialized when mapped, and the content will be used to populate the video buffer when unmapped.
QAbstractVideoBuffer.ReadWrite ReadOnly | WriteOnly The mapped memory is populated with data from the video buffer, and the video buffer is repopulated with the content of the mapped memory.

See also mapMode() and map().


Method Documentation

QAbstractVideoBuffer.__init__ (self, HandleType type)

Constructs an abstract video buffer of the given type.

QVariant QAbstractVideoBuffer.handle (self)

Returns a type specific handle to the data buffer.

The type of the handle is given by handleType() function.

See also handleType().

HandleType QAbstractVideoBuffer.handleType (self)

Returns the type of a video buffer's handle.

See also handle().

(sip.voidptr, int numBytes, int bytesPerLine) QAbstractVideoBuffer.map (self, MapMode mode)

This method is abstract and should be reimplemented in any sub-class.

Maps the contents of a video buffer to memory.

The map mode indicates whether the contents of the mapped memory should be read from and/or written to the buffer. If the map mode includes the QAbstractVideoBuffer.ReadOnly flag the mapped memory will be populated with the content of the video buffer when mapped. If the map mode includes the QAbstractVideoBuffer.WriteOnly flag the content of the mapped memory will be persisted in the buffer when unmapped.

When access to the data is no longer needed be sure to call the unmap() function to release the mapped memory.

Returns a pointer to the mapped memory region, or a null pointer if the mapping failed. The size in bytes of the mapped memory region is returned in numBytes, and the line stride in bytesPerLine.

When access to the data is no longer needed be sure to unmap() the buffer.

Note: Writing to memory that is mapped as read-only is undefined, and may result in changes to shared data.

See also unmap() and mapMode().

MapMode QAbstractVideoBuffer.mapMode (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the mode a video buffer is mapped in.

See also map().

QAbstractVideoBuffer.unmap (self)

This method is abstract and should be reimplemented in any sub-class.

Releases the memory mapped by the map() function

If the MapMode included the QAbstractVideoBuffer.WriteOnly flag this will persist the current content of the mapped memory to the video frame.

See also map().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractvideosurface.html0000644000076500000240000003315512536324517022746 0ustar philstaff00000000000000 QAbstractVideoSurface Class Reference
  Home · All Classes · Modules

QAbstractVideoSurface Class Reference
[QtMultimedia module]

The QAbstractVideoSurface class is a base class for video presentation surfaces. More...

Inherits QObject.

Types

  • enum Error { NoError, UnsupportedFormatError, IncorrectFormatError, StoppedError, ResourceError }

Methods

Qt Signals


Detailed Description

The QAbstractVideoSurface class is a base class for video presentation surfaces.

The QAbstractVideoSurface class defines the standard interface that video producers use to inter-operate with video presentation surfaces. It is not supposed to be instantiated directly. Instead, you should subclass it to create new video surfaces.

A video surface presents a continuous stream of identically formatted frames, where the format of each frame is compatible with a stream format supplied when starting a presentation.

A list of pixel formats a surface can present is given by the supportedPixelFormats() function, and the isFormatSupported() function will test if a video surface format is supported. If a format is not supported the nearestFormat() function may be able to suggest a similar format. For example if a surface supports fixed set of resolutions it may suggest the smallest supported resolution that contains the proposed resolution.

The start() function takes a supported format and enables a video surface. Once started a surface will begin displaying the frames it receives in the present() function. Surfaces may hold a reference to the buffer of a presented video frame until a new frame is presented or streaming is stopped. The stop() function will disable a surface and a release any video buffers it holds references to.


Type Documentation

QAbstractVideoSurface.Error

This enum describes the errors that may be returned by the error() function.

Constant Value Description
QAbstractVideoSurface.NoError 0 No error occurred.
QAbstractVideoSurface.UnsupportedFormatError 1 A video format was not supported.
QAbstractVideoSurface.IncorrectFormatError 2 A video frame was not compatible with the format of the surface.
QAbstractVideoSurface.StoppedError 3 The surface has not been started.
QAbstractVideoSurface.ResourceError 4 The surface could not allocate some resource.

Method Documentation

QAbstractVideoSurface.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a video surface with the given parent.

Error QAbstractVideoSurface.error (self)

Returns the last error that occurred.

If a surface fails to start(), or stops unexpectedly this function can be called to discover what error occurred.

See also setError().

bool QAbstractVideoSurface.isActive (self)

Indicates whether a video surface has been started.

Returns true if the surface has been started, and false otherwise.

bool QAbstractVideoSurface.isFormatSupported (self, QVideoSurfaceFormat format)

Tests a video surface format to determine if a surface can accept it.

Returns true if the format is supported by the surface, and false otherwise.

QVideoSurfaceFormat QAbstractVideoSurface.nearestFormat (self, QVideoSurfaceFormat format)

Returns a supported video surface format that is similar to format.

A similar surface format is one that has the same pixel format and handle type but differs in some of the other properties. For example if there are restrictions on the frame sizes a video surface can accept it may suggest a format with a larger frame size and a viewport the size of the original frame size.

If the format is already supported it will be returned unchanged, or if there is no similar supported format an invalid format will be returned.

bool QAbstractVideoSurface.present (self, QVideoFrame frame)

This method is abstract and should be reimplemented in any sub-class.

Presents a video frame.

Returns true if the frame was presented, and false if an error occurred.

Not all surfaces will block until the presentation of a frame has completed. Calling present() on a non-blocking surface may fail if called before the presentation of a previous frame has completed. In such cases the surface may not return to a ready state until it's had an opportunity to process events.

If present() fails for any other reason the surface will immediately enter the stopped state and an error() value will be set.

A video surface must be in the started state for present() to succeed, and the format of the video frame must be compatible with the current video surface format.

See also error().

QAbstractVideoSurface.setError (self, Error error)

Sets the value of error() to error.

See also error().

bool QAbstractVideoSurface.start (self, QVideoSurfaceFormat format)

Starts a video surface presenting format frames.

Returns true if the surface was started, and false if an error occurred.

See also isActive() and stop().

QAbstractVideoSurface.stop (self)

Stops a video surface presenting frames and releases any resources acquired in start().

See also isActive() and start().

list-of-QVideoFrame.PixelFormat QAbstractVideoSurface.supportedPixelFormats (self, QAbstractVideoBuffer.HandleType type = QAbstractVideoBuffer.NoHandle)

This method is abstract and should be reimplemented in any sub-class.

Returns a list of pixel formats a video surface can present for a given handle type.

The pixel formats returned for the QAbstractVideoBuffer.NoHandle type are valid for any buffer that can be mapped in read-only mode.

Types that are first in the list can be assumed to be faster to render.

QVideoSurfaceFormat QAbstractVideoSurface.surfaceFormat (self)

Returns the format of a video surface.


Qt Signal Documentation

void activeChanged (bool)

This is the default overload of this signal.

Signals that the active state of a video surface has changed.

See also isActive(), start(), and stop().

void supportedFormatsChanged ()

This is the default overload of this signal.

Signals that the set of formats supported by a video surface has changed.

See also supportedPixelFormats() and isFormatSupported().

void surfaceFormatChanged (const QVideoSurfaceFormat&)

This is the default overload of this signal.

Signals that the configured format of a video surface has changed.

See also surfaceFormat() and start().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractxmlnodemodel.html0000644000076500000240000010000112536324524022735 0ustar philstaff00000000000000 QAbstractXmlNodeModel Class Reference
  Home · All Classes · Modules

QAbstractXmlNodeModel Class Reference
[QtXmlPatterns module]

The QAbstractXmlNodeModel class is an abstract base class for modeling non-XML data to look like XML for QXmlQuery. More...

Inherited by QSimpleXmlNodeModel.

Types

  • enum SimpleAxis { Parent, FirstChild, PreviousSibling, NextSibling }

Methods

  • __init__ (self)
  • list-of-QXmlNodeModelIndex attributes (self, QXmlNodeModelIndex element)
  • QUrl baseUri (self, QXmlNodeModelIndex ni)
  • QXmlNodeModelIndex.DocumentOrder compareOrder (self, QXmlNodeModelIndex ni1, QXmlNodeModelIndex ni2)
  • QXmlNodeModelIndex createIndex (self, int data)
  • QXmlNodeModelIndex createIndex (self, int data, int additionalData)
  • QXmlNodeModelIndex createIndex (self, object pointer, int additionalData = 0)
  • QUrl documentUri (self, QXmlNodeModelIndex ni)
  • QXmlNodeModelIndex elementById (self, QXmlName NCName)
  • QXmlNodeModelIndex.NodeKind kind (self, QXmlNodeModelIndex ni)
  • QXmlName name (self, QXmlNodeModelIndex ni)
  • list-of-QXmlName namespaceBindings (self, QXmlNodeModelIndex n)
  • QXmlNodeModelIndex nextFromSimpleAxis (self, SimpleAxis axis, QXmlNodeModelIndex origin)
  • list-of-QXmlNodeModelIndex nodesByIdref (self, QXmlName NCName)
  • QXmlNodeModelIndex root (self, QXmlNodeModelIndex n)
  • QSourceLocation sourceLocation (self, QXmlNodeModelIndex index)
  • QString stringValue (self, QXmlNodeModelIndex n)
  • QVariant typedValue (self, QXmlNodeModelIndex n)

Detailed Description

The QAbstractXmlNodeModel class is an abstract base class for modeling non-XML data to look like XML for QXmlQuery.

The QAbstractXmlNodeModel specifies the interface that a node model must implement for that node model be accessible to the query engine for processing XQuery queries. A node model represents data as a structure that can be queried as if the data were XML.

The node model represented by a subclass of QAbstractXmlNodeModel is meant to be accessed by the QtXmlPatterns query engine. If the API seems a little strange in a few places, it is because the member functions are called by the query engine as it evaluates an XQuery. They aren't meant to be used programatically.

Usage

QAbstractXmlNodeModel bridges the gap between the arbitrary structure of the non-XML data to be queried and the well-defined structure of XML data understood by QXmlQuery.

Consider a chemistry application that reads the file chemistryData, which contains non-XML data that represents a chemical structure composed of molecules and atoms. The application will query this chemistry data with an XQuery it reads from file queryFile. We write a custom subclass of QAbstractXmlNodeModel (ChemistryNodeModel) that reads chemistryData and builds a data structure, perhaps composed of objects of our own classes molecule and atom. Clearly, this data structure is not XML. Our custom subclass will know how to traverse this non-XML structure and present it through the XPath Data Model interface.

 QFile queryFile(argv[1]);
 QFile chemistryData(argv[2]);
 QString moleculeName = argv[3];

 QXmlQuery query;
 query.setQuery(&queryFile, QUrl.fromLocalFile(queryFile.fileName()));

 ChemistryNodeModel myNodeModel(query.namePool(), chemistryData);
 QXmlNodeModelIndex startNode = myNodeModel.nodeFor(moleculeName);
 query.bindVariable("queryRoot", startNode);

 QFile out;
 out.open(stdout, QIODevice.WriteOnly);

 QXmlSerializer serializer(query, &out);
 query.evaluateTo(&serializer);

The application first creates an instance of QXmlQuery and calls setQuery() to read queryFile containing the XQuery we want to run. Then it creates an instance of our custom node model class, ChemistryNodeModel, which is a subclass of QAbstractXmlNodeModel. Its constructor is called with the name pool obtained from our QXmlQuery, and with the chemistryFile containing the structure of molecules and atoms to be queried. The name pool is required because our custom node model has the member function name(), which returns the name of any node in the model. The query and the custom node model must use the same name pool for constructing these names. The constructor would then read chemistryFile and build the custom node model structure.

To connect the query to the custom node model, we must bind a variable name used in the query to a node in the model. The variable can then be used in the query as a starting node. First, an index for the desired starting node is retrieved by calling QAbstractXmlNodeModel.createIndex(). Then the index is bound to a variable name, in this case queryRoot, by passing the name and the index to QXmlQuery.bindVariable(). The query can then use a variable reference $queryRoot to refer to the starting node. Note that if the query uses multiple variable references, a call to QXmlQuery.bindVariable() is required to bind each different variable name to a node in the model.

The query is executed when the application calls one of the QXmlQuery evaluation functions. The application uses QXmlQuery.evaluateTo(QAbstractXmlReceiver *), because it then uses a serializer to out the query result as XML to stdout. We could have used QXmlQuery.evaluateTo(QXmlResultItems *) to get a list of result items, or QXmlQuery.evaluateTo(QStringList *) if the query evaluated to a sequence of xs:string values.

During query execution, the engine iterates over the node model using nextFromSimpleAxis() to get the index of the next node to be visited. The engine can get the name of a node by calling name() with the node's index. stringValue(), baseUri(), documentUri() and kind() are also called as needed with a node index.

The example demonstrates the standard pattern for using a subclass of QAbstractXmlNodeModel in combination with QXmlQuery to perform an XQuery.

  1. Instantiate QXmlQuery and give it the XQuery to be run;
  2. Instantiate a subclass of QAbstractXmlNodeModel or QSimpleXmlNodeModel;
  3. Retrieve a QXmlNodeModelIndex for the node in the model where the QXmlQuery should start the query;
  4. Use QXmlQuery.bindVariable() to bind the QXmlNodeModelIndex to $variable name;
  5. Call one of the QXmlQuery evaluation functions to run the query.

Subclassing

Because the XPath Data Model interface presented by QAbstractXmlNodeModel allows QXmlQuery to operate on non-XML data as if it were XML, implementing subclasses of QAbstractXmlNodeModel can involve a significant amount of work. The QSimpleXmlNodeModel class is provided to simplify the implementation for many common use cases.

Thread Safety

Because the node model can be accessed concurrently by threads in the QtXmlPatterns module, subclasses of QAbstractXmlNodeModel must be written to be thread-safe. Classes that simplify implementing thread-safety include QReadLocker and QWriteLocker.

See the example File System Example for a demonstration.


Type Documentation

QAbstractXmlNodeModel.SimpleAxis

Four axes that each contain one node only.

Constant Value Description
QAbstractXmlNodeModel.Parent 0 The parent of the context node
QAbstractXmlNodeModel.FirstChild 1 The first child of the context node
QAbstractXmlNodeModel.PreviousSibling 2 The previous child of the context node
QAbstractXmlNodeModel.NextSibling 3 The next child of the context node

Method Documentation

QAbstractXmlNodeModel.__init__ (self)

Default constructor.

list-of-QXmlNodeModelIndex QAbstractXmlNodeModel.attributes (self, QXmlNodeModelIndex element)

This method is abstract and should be reimplemented in any sub-class.

Returns the attributes of element. The caller guarantees that element is an element in this node model.

QUrl QAbstractXmlNodeModel.baseUri (self, QXmlNodeModelIndex ni)

This method is abstract and should be reimplemented in any sub-class.

Returns the base URI for the node whose index is n. The caller guarantees that n is not null and that it belongs to a node in this node model.

The base URI of a node can be extracted using the fn:base-uri() function. The base URI is typically used for resolving relative URIs that appear in the node or its children. It is conformant to just return the document URI, although that might not properly reflect the underlying data.

This function maps to the dm:base-uri accessor, which returns a base URI according to the following:

  • For document nodes, the base URI and the document URI are the same.
  • For elements, the base URI is the URI appearing in the element's xml:base attribute, if present, or it is resolved to the parent element's base URI.
  • Namespace nodes have no base URI.
  • The base URI for a processing instruction, comment, attribute, or text node is the base URI of the node's parent element.

The implementation guarantees to return a valid QUrl, or a default constructed QUrl. If a node has no base URI, as in the case where a comment has no parent, a default constructed QUrl is returned.

See also XQuery 1.0 and XPath 2.0 Data Model (XDM), 5.2 base-uri Accessor.

QXmlNodeModelIndex.DocumentOrder QAbstractXmlNodeModel.compareOrder (self, QXmlNodeModelIndex ni1, QXmlNodeModelIndex ni2)

This method is abstract and should be reimplemented in any sub-class.

This function returns the relative document order for the nodes indexed by ni1 and ni2. It is used for the Is operator and for sorting nodes in document order.

The caller guarantees that ni1 and ni2 are not null and that both identify nodes in this node model.

If ni1 is identical to ni2, QXmlNodeModelIndex.Is is returned. If ni1 precedes ni2 in document order, QXmlNodeModelIndex.Precedes is returned. If ni1 follows ni2 in document order, QXmlNodeModelIndex.Follows is returned.

See also XQuery 1.0 and XPath 2.0 Data Model (XDM), 2.4 Document Order.

QXmlNodeModelIndex QAbstractXmlNodeModel.createIndex (self, int data)

Creates a node index with data as its internal data. data is not constrained.

QXmlNodeModelIndex QAbstractXmlNodeModel.createIndex (self, int data, int additionalData)

Creates a node index with pointer and additionalData as its internal data.

What pointer and additionalData is, is not constrained.

QXmlNodeModelIndex QAbstractXmlNodeModel.createIndex (self, object pointer, int additionalData = 0)

This is an overloaded function.

Creates a QXmlNodeModelIndex containing data and additionalData.

QUrl QAbstractXmlNodeModel.documentUri (self, QXmlNodeModelIndex ni)

This method is abstract and should be reimplemented in any sub-class.

Returns the document URI of n. The document URI identifies the resource which is the document. For example, the document could be a regular file, e.g., file:/, or it could be the http:// URL of the location of a file. The document URI is used for resolving URIs and to simply know where the document is.

If the node model maps to a URI in a natural way, return that URI. Otherwise, return the company or product URI. The document URI can be any URI as long as its valid and absolute.

The caller guarantees that n is not null and that it belongs to this QAbstractXmlNodeModel.

This function maps to the dm:document-uri accessor, which returns a document URI according to the following:

  • If n is a document node, return an absolute QUrl containing the document URI, or a default constructed QUrl. The latter signals that no document URI is available for the document node.
  • For all other nodes, return a default constructed QUrl.

See also XQuery 1.0 and XPath 2.0 Data Model (XDM), 5.4 document-uri Accessor, QUrl.isValid(), and QUrl.isRelative().

QXmlNodeModelIndex QAbstractXmlNodeModel.elementById (self, QXmlName NCName)

This method is abstract and should be reimplemented in any sub-class.

Returns the index of the element identified as id. XQuery's id() function calls this function.

The node index returned will be the element node whose value is of type ID and equals id, or it will be the element node that has an attribute whose typed value is of type ID and equals id. If there is no such element, a default constructed QXmlNodeModelIndex instance is returned. The implementor guarantees that if the returned node index is not null, it identifies an element.

It is not sufficient for an attribute or element to merely be called id. Its value type must also be ID. However, the reserved name xml:id is sufficient.

In id, the namespace URI and the prefix are undefined, and the local name is the ID that should be looked up.

See also XQuery 1.0 and XPath 2.0 Functions and Operators, 15.5.2 fn:id.

QXmlNodeModelIndex.NodeKind QAbstractXmlNodeModel.kind (self, QXmlNodeModelIndex ni)

This method is abstract and should be reimplemented in any sub-class.

Returns a value indicating the kind of node identified by ni. The caller guarantees that ni is not null and that it identifies a node in this node model. This function maps to the dm:node-kind() accessor.

See also XQuery 1.0 and XPath 2.0 Data Model (XDM), 5.10 node-kind Accessor.

QXmlName QAbstractXmlNodeModel.name (self, QXmlNodeModelIndex ni)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of ni. The caller guarantees that ni is not null and that it belongs to this QAbstractXmlNodeModel.

If a node does not have a name, e.g., comment nodes, a null QXmlName is returned. QXmlNames must be created with the instance of QXmlQuery that is being used for evaluating queries using this QAbstractXmlNodeModel.

This function maps to the dm:node-name() accessor.

If ni is a processing instruction, a QXmlName is returned with the local name as the target name and the namespace URI and prefix both empty.

See also XQuery 1.0 and XPath 2.0 Data Model (XDM), 5.11 node-name Accessor and QXmlName.

list-of-QXmlName QAbstractXmlNodeModel.namespaceBindings (self, QXmlNodeModelIndex n)

This method is abstract and should be reimplemented in any sub-class.

Returns the in-scope namespaces of n. The caller guarantees that n is not null and that it belongs to this QAbstractXmlNodeModel.

This function corresponds to the dm:namespace-nodes accessor.

The returned vector of namespace declarations includes namespaces of the ancestors of n.

The caller guarantees that n is an Element that belongs to this QAbstractXmlNodeModel.

QXmlNodeModelIndex QAbstractXmlNodeModel.nextFromSimpleAxis (self, SimpleAxis axis, QXmlNodeModelIndex origin)

This method is abstract and should be reimplemented in any sub-class.

When QtXmlPatterns evaluate path expressions, it emulate them through a combination of calls with QSimpleXmlNodeModel.SimpleAxis values. Therefore, the implementation of this function must return the node, if any, that appears on the axis emanating from the origin.

If no such node is available, a default constructed QXmlNodeModelIndex is returned.

QSimpleXmlNodeModel eliminates the need to handle redundant corner cases by guaranteeing that it will never ask for:

  • Children or siblings for attributes.
  • Children for comments, processing instructions, and text nodes.
  • Siblings or parents for document nodes.

A typical implementation performs a switch on the value of axis:

 QXmlNodeModelIndex MyTreeModel.nextFromSimpleAxis(SimpleAxis axis, const QXmlNodeModelIndex &origin) const
 {
   // Convert the QXmlNodeModelIndex to a value that is specific to what we represent.
   const MyValue value = toMyValue(ni);

   switch(axis)
   {
       case Parent:
           return toNodeIndex(value.parent());
       case FirstChild:
       case PreviousSibling:
       case NextSibling:
           // and so on
   }
 }

list-of-QXmlNodeModelIndex QAbstractXmlNodeModel.nodesByIdref (self, QXmlName NCName)

This method is abstract and should be reimplemented in any sub-class.

Returns the elements and/or attributes that have an IDREF value equal to idref. XQuery's idref() function calls this function.

The implementor guarantees that the nodes identified by the returned indexes are elements or attributes.

It is not sufficient for an attribute or element to merely be called idref. It must also be of type IDREF. Elements must be typed as xs:IDREF or xs:IDREFS, or, in the case of attributes, as IDREF or IDREFS in the schema.

In idref, the namespace URI and the prefix are undefined, and the local name is the ID that should be looked up.

See also XQuery 1.0 and XPath 2.0 Functions and Operators, 15.5.3 fn:idref.

QXmlNodeModelIndex QAbstractXmlNodeModel.root (self, QXmlNodeModelIndex n)

This method is abstract and should be reimplemented in any sub-class.

Returns the root node of the tree that contains the node whose index is n. The caller guarantees that n is not null and that it identifies a node in this node model.

If n identifies a node that is a direct child of the root, parent() would return the same QXmlNodeModelIndex returned by this function.

QSourceLocation QAbstractXmlNodeModel.sourceLocation (self, QXmlNodeModelIndex index)

Returns the source location for the object with the given index or a default constructed QSourceLocation in case no location information is available.

This function was introduced in Qt 4.6.

QString QAbstractXmlNodeModel.stringValue (self, QXmlNodeModelIndex n)

This method is abstract and should be reimplemented in any sub-class.

Returns the string value for node n.

The caller guarantees that n is not null and that it belong to this QAbstractXmlNodeModel instance.

This function maps to the dm:string-value() accessor, which the specification completely specifies. Here's a summary:

  • For processing instructions, the string value is the data section(excluding any whitespace appearing between the name and the data).
  • For text nodes, the string value equals the text node.
  • For comments, the content of the comment
  • For elements, the concatenation of all text nodes that are descendants. Note, this is not only the children, but the childrens' childrens' text nodes, and so forth.
  • For document nodes, the concatenation of all text nodes in the document.

See also XQuery 1.0 and XPath 2.0 Data Model (XDM), 5.13 string-value Accessor.

QVariant QAbstractXmlNodeModel.typedValue (self, QXmlNodeModelIndex n)

This method is abstract and should be reimplemented in any sub-class.

Returns the typed value for node node.

The typed value is an atomic value, which an element or attribute contains.

The caller guarantees that node is either an element or an attribute. The implementor guarantees that the returned QVariant has a value which is supported in XQuery. It cannot be an arbitrary QVariant value. The implementor also guarantees that stringValue() returns a lexical representation of typedValue()(this is guaranteed by QSimpleXmlNodeModel.stringValue()).

If the return QVariant is a default constructed variant, it signals that node has no typed value.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qabstractxmlreceiver.html0000644000076500000240000003744412536324524022617 0ustar philstaff00000000000000 QAbstractXmlReceiver Class Reference
  Home · All Classes · Modules

QAbstractXmlReceiver Class Reference
[QtXmlPatterns module]

The QAbstractXmlReceiver class provides a callback interface for transforming the output of a QXmlQuery. More...

Inherited by QXmlSerializer.

Methods


Detailed Description

The QAbstractXmlReceiver class provides a callback interface for transforming the output of a QXmlQuery.

QAbstractXmlReceiver is an abstract base class that provides a callback interface for receiving an XQuery sequence, usually the output of an QXmlQuery, and transforming that sequence into a structure of your choosing, usually XML. Consider the example:

 QXmlQuery query;
 query.setQuery("doc('index.html')/html/body/p[1]");

 QXmlSerializer serializer(query, myOutputDevice);
 query.evaluateTo(&serializer);

First it constructs a query that gets the first paragraph from document index.html. Then it constructs an XML serializer with the query and myOutputDevice (Note the serializer is an XML receiver, ie a subclass of QAbstractXmlReceiver). Finally, it evaluates the query, producing an ordered sequence of calls to the serializer's callback functions. The sequence of callbacks transforms the query output to XML and writes it to myOutputDevice.

Although the example uses QXmlQuery to produce the sequence of callbacks to functions in QAbstractXmlReceiver, you can call the callback functions directly as long as your sequence of calls represents a valid XQuery sequence.

XQuery Sequences

An XQuery sequence is an ordered collection of zero, one, or many items. Each item is either an atomic value or a node. An atomic value is a simple data value.

There are six kinds of nodes.

  • An Element Node represents an XML element.
  • An Attribute Node represents an XML attribute.
  • A Document Node represents an entire XML document.
  • A Text Node represents character data (element content).
  • A Processing Instruction Node represents an XML processing instruction, which is used in an XML document to tell the application reading the document to perform some action. A typical example is to use a processing instruction to tell the application to use a particular XSLT stylesheet to display the document.
  • And a Comment node represents an XML comment.

The sequence of nodes and atomic values obeys the following rules. Note that Namespace Node refers to a special Attribute Node with name xmlns.

  • Each node appears in the sequence before its children and their descendants appear.
  • A node's descendants appear in the sequence before any of its siblings appear.
  • A Document Node represents an entire document. Zero or more Document Nodes can appear in a sequence, but they can only be top level items (i.e., a Document Node can't be a child of another node.
  • Namespace Nodes immediately follow the Element Node with which they are associated.
  • Attribute Nodes immediately follow the Namespace Nodes of the element with which they are associated, or...
  • If there are no Namespace Nodes following an element, then the Attribute Nodes immediately follow the element.
  • An atomic value can only appear as a top level item, i.e., it can't appear as a child of a node.
  • Processing Instruction Nodes do not have children, and their parent is either a Document Node or an Element Node.
  • Comment Nodes do not have children, and their parent is either a Document Node or an Element Node.

The sequence of nodes and atomic values is sent to an QAbstractXmlReceiver (QXmlSerializer in the example above) as a sequence of calls to the receiver's callback functions. The mapping of callback functions to sequence items is as follows.

For a complete explanation of XQuery sequences, visit XQuery Data Model.


Method Documentation

QAbstractXmlReceiver.__init__ (self)

Constructs an abstract xml receiver.

QAbstractXmlReceiver.atomicValue (self, QVariant value)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when an atomic value appears in the sequence. The value is a simple data value. It is guaranteed to be valid.

QAbstractXmlReceiver.attribute (self, QXmlName name, QStringRef value)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when an attribute node appears in the sequence. name is the attribute name and the value string contains the attribute value.

QAbstractXmlReceiver.characters (self, QStringRef value)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when a text node appears in the sequence. The value contains the text. Adjacent text nodes may not occur in the sequence, i.e., this callback must not be called twice in a row.

QAbstractXmlReceiver.comment (self, QString value)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when a comment node appears in the sequence. The value is the comment text, which must not contain the string "--".

QAbstractXmlReceiver.endDocument (self)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when the end of a document node appears in the sequence.

QAbstractXmlReceiver.endElement (self)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when the end of an element node appears in the sequence.

QAbstractXmlReceiver.endOfSequence (self)

This method is abstract and should be reimplemented in any sub-class.

This callback is called once only, right after the sequence ends.

QAbstractXmlReceiver.namespaceBinding (self, QXmlName name)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when a namespace binding is in scope of an element. A namespace is defined by a URI. In the QXmlName name, the value of QXmlName.namespaceUri() is that URI. The value of QXmlName.prefix() is the prefix that the URI is bound to. The local name is insignificant and can be an arbitrary value.

QAbstractXmlReceiver.processingInstruction (self, QXmlName target, QString value)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when a processing instruction appears in the sequence. A processing instruction is used in an XML document to tell the application reading the document to perform some action. A typical example is to use a processing instruction to tell the application to use a particular XSLT stylesheet to process the document.

 <?xml-stylesheet type="test/xsl" href="formatter.xsl"?>

target is the name of the processing instruction. Its prefix and namespace URI must both be empty. Its local name is the target. In the above example, the name is xml-stylesheet.

The value specifies the action to be taken. Note that the value must not contain the string "?>". In the above example, the value is type="test/xsl" href="formatter.xsl.

Generally, use of processing instructions should be avoided, because they are not namespace aware and in many contexts are stripped out anyway. Processing instructions can often be replaced with elements from a custom namespace.

QAbstractXmlReceiver.startDocument (self)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when a document node appears in the sequence.

QAbstractXmlReceiver.startElement (self, QXmlName name)

This method is abstract and should be reimplemented in any sub-class.

This callback is called when a new element node appears in the sequence. name is the valid name of the node element.

QAbstractXmlReceiver.startOfSequence (self)

This method is abstract and should be reimplemented in any sub-class.

This callback is called once only, right before the sequence begins.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qaction.html0000644000076500000240000010343312536324501020006 0ustar philstaff00000000000000 QAction Class Reference
  Home · All Classes · Modules

QAction Class Reference
[QtGui module]

The QAction class provides an abstract user interface action that can be inserted into widgets. More...

Inherits QObject.

Inherited by QWidgetAction.

Types

  • enum ActionEvent { Trigger, Hover }
  • enum MenuRole { NoRole, TextHeuristicRole, ApplicationSpecificRole, AboutQtRole, ..., QuitRole }
  • enum Priority { LowPriority, NormalPriority, HighPriority }
  • enum SoftKeyRole { NoSoftKey, PositiveSoftKey, NegativeSoftKey, SelectSoftKey }

Methods

Qt Signals


Detailed Description

The QAction class provides an abstract user interface action that can be inserted into widgets.

In applications many common commands can be invoked via menus, toolbar buttons, and keyboard shortcuts. Since the user expects each command to be performed in the same way, regardless of the user interface used, it is useful to represent each command as an action.

Actions can be added to menus and toolbars, and will automatically keep them in sync. For example, in a word processor, if the user presses a Bold toolbar button, the Bold menu item will automatically be checked.

Actions can be created as independent objects, but they may also be created during the construction of menus; the QMenu class contains convenience functions for creating actions suitable for use as menu items.

A QAction may contain an icon, menu text, a shortcut, status text, "What's This?" text, and a tooltip. Most of these can be set in the constructor. They can also be set independently with setIcon(), setText(), setIconText(), setShortcut(), setStatusTip(), setWhatsThis(), and setToolTip(). For menu items, it is possible to set an individual font with setFont().

Actions are added to widgets using QWidget.addAction() or QGraphicsWidget.addAction(). Note that an action must be added to a widget before it can be used; this is also true when the shortcut should be global (i.e., Qt.ApplicationShortcut as Qt.ShortcutContext).

Once a QAction has been created it should be added to the relevant menu and toolbar, then connected to the slot which will perform the action. For example:

     openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
     openAct->setShortcuts(QKeySequence.Open);
     openAct->setStatusTip(tr("Open an existing file"));
     connect(openAct, SIGNAL(triggered()), this, SLOT(open()));

     fileMenu->addAction(openAct);
     fileToolBar->addAction(openAct);

We recommend that actions are created as children of the window they are used in. In most cases actions will be children of the application's main window.


Type Documentation

QAction.ActionEvent

This enum type is used when calling QAction.activate()

Constant Value Description
QAction.Trigger 0 this will cause the QAction.triggered() signal to be emitted.
QAction.Hover 1 this will cause the QAction.hovered() signal to be emitted.

QAction.MenuRole

This enum describes how an action should be moved into the application menu on Mac OS X.

Constant Value Description
QAction.NoRole 0 This action should not be put into the application menu
QAction.TextHeuristicRole 1 This action should be put in the application menu based on the action's text as described in the QMenuBar documentation.
QAction.ApplicationSpecificRole 2 This action should be put in the application menu with an application specific role
QAction.AboutQtRole 3 This action matches handles the "About Qt" menu item.
QAction.AboutRole 4 This action should be placed where the "About" menu item is in the application menu. The text of the menu item will be set to "About <application name>". The application name is fetched from the Info.plist file in the application's bundle (See Deploying an Application on Mac OS X).
QAction.PreferencesRole 5 This action should be placed where the "Preferences..." menu item is in the application menu.
QAction.QuitRole 6 This action should be placed where the Quit menu item is in the application menu.

Setting this value only has effect on items that are in the immediate menus of the menubar, not the submenus of those menus. For example, if you have File menu in your menubar and the File menu has a submenu, setting the MenuRole for the actions in that submenu have no effect. They will never be moved.

QAction.Priority

This enum defines priorities for actions in user interface.

Constant Value Description
QAction.LowPriority 0 The action should not be prioritized in the user interface.
QAction.NormalPriority 128  
QAction.HighPriority 256 The action should be prioritized in the user interface.

This enum was introduced or modified in Qt 4.6.

See also priority.

QAction.SoftKeyRole

This enum describes how an action should be placed in the softkey bar. Currently this enum only has an effect on the Symbian platform.

Constant Value Description
QAction.NoSoftKey 0 This action should not be used as a softkey
QAction.PositiveSoftKey 1 This action is used to describe a softkey with a positive or non-destructive role such as Ok, Select, or Options.
QAction.NegativeSoftKey 2 This action is used to describe a soft ey with a negative or destructive role role such as Cancel, Discard, or Close.
QAction.SelectSoftKey 3 This action is used to describe a role that selects a particular item or widget in the application.

Actions with a softkey role defined are only visible in the softkey bar when the widget containing the action has focus. If no widget currently has focus, the softkey framework will traverse up the widget parent hierarchy looking for a widget containing softkey actions.

This enum was introduced or modified in Qt 4.6.


Method Documentation

QAction.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an action with parent. If parent is an action group the action will be automatically inserted into the group.

QAction.__init__ (self, QString text, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an action with some text and parent. If parent is an action group the action will be automatically inserted into the group.

The action uses a stripped version of text (e.g. "&Menu Option..." becomes "Menu Option") as descriptive text for tool buttons. You can override this by setting a specific description with setText(). The same text will be used for tooltips unless you specify a different text using setToolTip().

QAction.__init__ (self, QIcon icon, QString text, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an action with an icon and some text and parent. If parent is an action group the action will be automatically inserted into the group.

The action uses a stripped version of text (e.g. "&Menu Option..." becomes "Menu Option") as descriptive text for tool buttons. You can override this by setting a specific description with setText(). The same text will be used for tooltips unless you specify a different text using setToolTip().

QActionGroup QAction.actionGroup (self)

Returns the action group for this action. If no action group manages this action then 0 will be returned.

See also QActionGroup and QAction.setActionGroup().

QAction.activate (self, ActionEvent event)

Sends the relevant signals for ActionEvent event.

Action based widgets use this API to cause the QAction to emit signals as well as emitting their own.

list-of-QGraphicsWidget QAction.associatedGraphicsWidgets (self)

Returns a list of widgets this action has been added to.

This function was introduced in Qt 4.5.

See also QWidget.addAction() and associatedWidgets().

list-of-QWidget QAction.associatedWidgets (self)

Returns a list of widgets this action has been added to.

This function was introduced in Qt 4.2.

See also QWidget.addAction() and associatedGraphicsWidgets().

bool QAction.autoRepeat (self)

QVariant QAction.data (self)

Returns the user data as set in QAction.setData.

See also setData().

bool QAction.event (self, QEvent)

Reimplemented from QObject.event().

QFont QAction.font (self)

QAction.hover (self)

This method is also a Qt slot with the C++ signature void hover().

This is a convenience slot that calls activate(Hover).

QIcon QAction.icon (self)

QString QAction.iconText (self)

bool QAction.isCheckable (self)

bool QAction.isChecked (self)

bool QAction.isEnabled (self)

bool QAction.isIconVisibleInMenu (self)

bool QAction.isSeparator (self)

Returns true if this action is a separator action; otherwise it returns false.

See also QAction.setSeparator().

bool QAction.isVisible (self)

QMenu QAction.menu (self)

Returns the menu contained by this action. Actions that contain menus can be used to create menu items with submenus, or inserted into toolbars to create buttons with popup menus.

See also setMenu() and QMenu.addAction().

MenuRole QAction.menuRole (self)

QWidget QAction.parentWidget (self)

Returns the parent widget.

Priority QAction.priority (self)

QAction.setActionGroup (self, QActionGroup group)

Sets this action group to group. The action will be automatically added to the group's list of actions.

Actions within the group will be mutually exclusive.

See also QActionGroup and QAction.actionGroup().

QAction.setAutoRepeat (self, bool)

QAction.setCheckable (self, bool)

QAction.setChecked (self, bool)

This method is also a Qt slot with the C++ signature void setChecked(bool).

QAction.setData (self, QVariant var)

Sets the action's internal data to the given userData.

See also data().

QAction.setDisabled (self, bool b)

This method is also a Qt slot with the C++ signature void setDisabled(bool).

This is a convenience function for the enabled property, that is useful for signals--slots connections. If b is true the action is disabled; otherwise it is enabled.

QAction.setEnabled (self, bool)

This method is also a Qt slot with the C++ signature void setEnabled(bool).

QAction.setFont (self, QFont font)

QAction.setIcon (self, QIcon icon)

QAction.setIconText (self, QString text)

QAction.setIconVisibleInMenu (self, bool visible)

QAction.setMenu (self, QMenu menu)

Sets the menu contained by this action to the specified menu.

See also menu().

QAction.setMenuRole (self, MenuRole menuRole)

QAction.setPriority (self, Priority priority)

QAction.setSeparator (self, bool b)

If b is true then this action will be considered a separator.

How a separator is represented depends on the widget it is inserted into. Under most circumstances the text, submenu, and icon will be ignored for separator actions.

See also QAction.isSeparator().

QAction.setShortcut (self, QKeySequence shortcut)

QAction.setShortcutContext (self, Qt.ShortcutContext context)

QAction.setShortcuts (self, list-of-QKeySequence shortcuts)

Sets shortcuts as the list of shortcuts that trigger the action. The first element of the list is the primary shortcut.

This function was introduced in Qt 4.2.

See also shortcuts() and shortcut.

QAction.setShortcuts (self, QKeySequence.StandardKey)

Sets a platform dependent list of shortcuts based on the key. The result of calling this function will depend on the currently running platform. Note that more than one shortcut can assigned by this action. If only the primary shortcut is required, use setShortcut instead.

This function was introduced in Qt 4.2.

See also QKeySequence.keyBindings().

QAction.setSoftKeyRole (self, SoftKeyRole softKeyRole)

QAction.setStatusTip (self, QString statusTip)

QAction.setText (self, QString text)

QAction.setToolTip (self, QString tip)

QAction.setVisible (self, bool)

This method is also a Qt slot with the C++ signature void setVisible(bool).

QAction.setWhatsThis (self, QString what)

QKeySequence QAction.shortcut (self)

Qt.ShortcutContext QAction.shortcutContext (self)

list-of-QKeySequence QAction.shortcuts (self)

Returns the list of shortcuts, with the primary shortcut as the first element of the list.

This function was introduced in Qt 4.2.

See also setShortcuts().

bool QAction.showStatusText (self, QWidget widget = None)

Updates the relevant status bar for the widget specified by sending a QStatusTipEvent to its parent widget. Returns true if an event was sent; otherwise returns false.

If a null widget is specified, the event is sent to the action's parent.

See also statusTip.

SoftKeyRole QAction.softKeyRole (self)

QString QAction.statusTip (self)

QString QAction.text (self)

QAction.toggle (self)

This method is also a Qt slot with the C++ signature void toggle().

This is a convenience function for the checked property. Connect to it to change the checked state to its opposite state.

QString QAction.toolTip (self)

QAction.trigger (self)

This method is also a Qt slot with the C++ signature void trigger().

This is a convenience slot that calls activate(Trigger).

QString QAction.whatsThis (self)


Qt Signal Documentation

void changed ()

This is the default overload of this signal.

This signal is emitted when an action has changed. If you are only interested in actions in a given widget, you can watch for QWidget.actionEvent() sent with an QEvent.ActionChanged.

See also QWidget.actionEvent().

void hovered ()

This is the default overload of this signal.

This signal is emitted when an action is highlighted by the user; for example, when the user pauses with the cursor over a menu option, toolbar button, or presses an action's shortcut key combination.

See also QAction.activate().

void toggled (bool)

This is the default overload of this signal.

This signal is emitted whenever a checkable action changes its isChecked() status. This can be the result of a user interaction, or because setChecked() was called.

checked is true if the action is checked, or false if the action is unchecked.

See also QAction.activate(), QAction.triggered(), and checked.

void triggered (bool = 0)

This is the default overload of this signal.

This signal is emitted when an action is activated by the user; for example, when the user clicks a menu option, toolbar button, or presses an action's shortcut key combination, or when trigger() was called. Notably, it is not emitted when setChecked() or toggle() is called.

If the action is checkable, checked is true if the action is checked, or false if the action is unchecked.

See also QAction.activate(), QAction.toggled(), and checked.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qactionevent.html0000644000076500000240000001070112536324503021045 0ustar philstaff00000000000000 QActionEvent Class Reference
  Home · All Classes · Modules

QActionEvent Class Reference
[QtGui module]

The QActionEvent class provides an event that is generated when a QAction is added, removed, or changed. More...

Inherits QEvent.

Methods

  • __init__ (self, int type, QAction action, QAction before = None)
  • __init__ (self, QActionEvent)
  • QAction action (self)
  • QAction before (self)

Detailed Description

The QActionEvent class provides an event that is generated when a QAction is added, removed, or changed.

Actions can be added to widgets using QWidget.addAction(). This generates an ActionAdded event, which you can handle to provide custom behavior. For example, QToolBar reimplements QWidget.actionEvent() to create QToolButtons for the actions.


Method Documentation

QActionEvent.__init__ (self, int type, QAction action, QAction before = None)

Constructs an action event. The type can be ActionChanged, ActionAdded, or ActionRemoved.

action is the action that is changed, added, or removed. If type is ActionAdded, the action is to be inserted before the action before. If before is 0, the action is appended.

QActionEvent.__init__ (self, QActionEvent)

QAction QActionEvent.action (self)

Returns the action that is changed, added, or removed.

See also before().

QAction QActionEvent.before (self)

If type() is ActionAdded, returns the action that should appear before action(). If this function returns 0, the action should be appended to already existing actions on the same widget.

See also action() and QWidget.actions().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qactiongroup.html0000644000076500000240000002624112536324501021064 0ustar philstaff00000000000000 QActionGroup Class Reference
  Home · All Classes · Modules

QActionGroup Class Reference
[QtGui module]

The QActionGroup class groups actions together. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QActionGroup class groups actions together.

In some situations it is useful to group QAction objects together. For example, if you have a Left Align action, a Right Align action, a Justify action, and a Center action, only one of these actions should be active at any one time. One simple way of achieving this is to group the actions together in an action group.

Here's a example (from the Menus example):

     alignmentGroup = new QActionGroup(this);
     alignmentGroup->addAction(leftAlignAct);
     alignmentGroup->addAction(rightAlignAct);
     alignmentGroup->addAction(justifyAct);
     alignmentGroup->addAction(centerAct);
     leftAlignAct->setChecked(true);

Here we create a new action group. Since the action group is exclusive by default, only one of the actions in the group is checked at any one time.

Alignment options in a QMenu

A QActionGroup emits an triggered() signal when one of its actions is chosen. Each action in an action group emits its triggered() signal as usual.

As stated above, an action group is exclusive by default; it ensures that only one checkable action is active at any one time. If you want to group checkable actions without making them exclusive, you can turn of exclusiveness by calling setExclusive(false).

Actions can be added to an action group using addAction(), but it is usually more convenient to specify a group when creating actions; this ensures that actions are automatically created with a parent. Actions can be visually separated from each other by adding a separator action to the group; create an action and use QAction's setSeparator() function to make it considered a separator. Action groups are added to widgets with the QWidget.addActions() function.


Method Documentation

QActionGroup.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an action group for the parent object.

The action group is exclusive by default. Call setExclusive(false) to make the action group non-exclusive.

list-of-QAction QActionGroup.actions (self)

Returns the list of this groups's actions. This may be empty.

QAction QActionGroup.addAction (self, QAction a)

The a argument has it's ownership transferred to Qt.

Adds the action to this group, and returns it.

Normally an action is added to a group by creating it with the group as its parent, so this function is not usually used.

See also QAction.setActionGroup().

QAction QActionGroup.addAction (self, QString text)

Creates and returns an action with text. The newly created action is a child of this action group.

Normally an action is added to a group by creating it with the group as parent, so this function is not usually used.

See also QAction.setActionGroup().

QAction QActionGroup.addAction (self, QIcon icon, QString text)

Creates and returns an action with text and an icon. The newly created action is a child of this action group.

Normally an action is added to a group by creating it with the group as its parent, so this function is not usually used.

See also QAction.setActionGroup().

QAction QActionGroup.checkedAction (self)

Returns the currently checked action in the group, or 0 if none are checked.

bool QActionGroup.isEnabled (self)

bool QActionGroup.isExclusive (self)

bool QActionGroup.isVisible (self)

QActionGroup.removeAction (self, QAction a)

The a argument

Removes the action from this group. The action will have no parent as a result.

See also QAction.setActionGroup().

QActionGroup.setDisabled (self, bool b)

This method is also a Qt slot with the C++ signature void setDisabled(bool).

This is a convenience function for the enabled property, that is useful for signals--slots connections. If b is true the action group is disabled; otherwise it is enabled.

QActionGroup.setEnabled (self, bool)

This method is also a Qt slot with the C++ signature void setEnabled(bool).

QActionGroup.setExclusive (self, bool)

This method is also a Qt slot with the C++ signature void setExclusive(bool).

QActionGroup.setVisible (self, bool)

This method is also a Qt slot with the C++ signature void setVisible(bool).


Qt Signal Documentation

void hovered (QAction*)

This is the default overload of this signal.

This signal is emitted when the given action in the action group is highlighted by the user; for example, when the user pauses with the cursor over a menu option, toolbar button, or presses an action's shortcut key combination.

See also QAction.activate().

void selected (QAction*)

This is the default overload of this signal.

void triggered (QAction*)

This is the default overload of this signal.

This signal is emitted when the given action in the action group is activated by the user; for example, when the user clicks a menu option, toolbar button, or presses an action's shortcut key combination.

Connect to this signal for command actions.

See also QAction.activate().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qanimationgroup.html0000644000076500000240000002442712536324471021600 0ustar philstaff00000000000000 QAnimationGroup Class Reference
  Home · All Classes · Modules

QAnimationGroup Class Reference
[QtCore module]

The QAnimationGroup class is an abstract base class for groups of animations. More...

Inherits QAbstractAnimation.

Inherited by QParallelAnimationGroup and QSequentialAnimationGroup.

Methods


Detailed Description

The QAnimationGroup class is an abstract base class for groups of animations.

An animation group is a container for animations (subclasses of QAbstractAnimation). A group is usually responsible for managing the state of its animations, i.e., it decides when to start, stop, resume, and pause them. Currently, Qt provides two such groups: QParallelAnimationGroup and QSequentialAnimationGroup. Look up their class descriptions for details.

Since QAnimationGroup inherits from QAbstractAnimation, you can combine groups, and easily construct complex animation graphs. You can query QAbstractAnimation for the group it belongs to (using the group() function).

To start a top-level animation group, you simply use the start() function from QAbstractAnimation. By a top-level animation group, we think of a group that itself is not contained within another group. Starting sub groups directly is not supported, and may lead to unexpected behavior.

QAnimationGroup provides methods for adding and retrieving animations. Besides that, you can remove animations by calling remove(), and clear the animation group by calling clear(). You may keep track of changes in the group's animations by listening to QEvent.ChildAdded and QEvent.ChildRemoved events.

QAnimationGroup takes ownership of the animations it manages, and ensures that they are deleted when the animation group is deleted.


Method Documentation

QAnimationGroup.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QAnimationGroup. parent is passed to QObject's constructor.

QAnimationGroup.addAnimation (self, QAbstractAnimation animation)

The animation argument has it's ownership transferred to Qt.

Adds animation to this group. This will call insertAnimation with index equals to animationCount().

Note: The group takes ownership of the animation.

See also removeAnimation().

QAbstractAnimation QAnimationGroup.animationAt (self, int index)

Returns a pointer to the animation at index in this group. This function is useful when you need access to a particular animation. index is between 0 and animationCount() - 1.

See also animationCount() and indexOfAnimation().

int QAnimationGroup.animationCount (self)

Returns the number of animations managed by this group.

See also indexOfAnimation(), addAnimation(), and animationAt().

QAnimationGroup.clear (self)

Removes and deletes all animations in this animation group, and resets the current time to 0.

See also addAnimation() and removeAnimation().

bool QAnimationGroup.event (self, QEvent event)

Reimplemented from QObject.event().

int QAnimationGroup.indexOfAnimation (self, QAbstractAnimation animation)

Returns the index of animation. The returned index can be passed to the other functions that take an index as an argument.

See also insertAnimation(), animationAt(), and takeAnimation().

QAnimationGroup.insertAnimation (self, int index, QAbstractAnimation animation)

The animation argument has it's ownership transferred to Qt.

Inserts animation into this animation group at index. If index is 0 the animation is inserted at the beginning. If index is animationCount(), the animation is inserted at the end.

Note: The group takes ownership of the animation.

See also takeAnimation(), addAnimation(), indexOfAnimation(), and removeAnimation().

QAnimationGroup.removeAnimation (self, QAbstractAnimation animation)

The animation argument

Removes animation from this group. The ownership of animation is transferred to the caller.

See also takeAnimation(), insertAnimation(), and addAnimation().

QAbstractAnimation QAnimationGroup.takeAnimation (self, int index)

The QAbstractAnimation result

Returns the animation at index and removes it from the animation group.

Note: The ownership of the animation is transferred to the caller.

See also removeAnimation(), addAnimation(), insertAnimation(), and indexOfAnimation().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qapplication.html0000644000076500000240000025157712536324501021051 0ustar philstaff00000000000000 QApplication Class Reference
  Home · All Classes · Modules

QApplication Class Reference
[QtGui module]

The QApplication class manages the GUI application's control flow and main settings. More...

Inherits QCoreApplication.

Types

  • enum ColorSpec { NormalColor, CustomColor, ManyColor }
  • enum Type { Tty, GuiClient, GuiServer }

Methods

Static Methods

Qt Signals


Detailed Description

The QApplication class manages the GUI application's control flow and main settings.

QApplication contains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization, finalization, and provides session management. In addition, QApplication handles most of the system-wide and application-wide settings.

For any GUI application using Qt, there is precisely one QApplication object, no matter whether the application has 0, 1, 2 or more windows at any given time. For non-GUI Qt applications, use QCoreApplication instead, as it does not depend on the QtGui library.

The QApplication object is accessible through the instance() function that returns a pointer equivalent to the global qApp pointer.

QApplication's main areas of responsibility are:

  • It initializes the application with the user's desktop settings such as palette(), font() and doubleClickInterval(). It keeps track of these properties in case the user changes the desktop globally, for example through some kind of control panel.
  • It performs event handling, meaning that it receives events from the underlying window system and dispatches them to the relevant widgets. By using sendEvent() and postEvent() you can send your own events to widgets.
  • It parses common command line arguments and sets its internal state accordingly. See the constructor documentation below for more details.
  • It defines the application's look and feel, which is encapsulated in a QStyle object. This can be changed at runtime with setStyle().
  • It specifies how the application is to allocate colors. See setColorSpec() for details.
  • It provides localization of strings that are visible to the user via translate().
  • It provides some magical objects like the desktop() and the clipboard().
  • It knows about the application's windows. You can ask which widget is at a certain position using widgetAt(), get a list of topLevelWidgets() and closeAllWindows(), etc.
  • It manages the application's mouse cursor handling, see setOverrideCursor()
  • On the X window system, it provides functions to flush and sync the communication stream, see flushX() and syncX().
  • It provides support for sophisticated session management. This makes it possible for applications to terminate gracefully when the user logs out, to cancel a shutdown process if termination isn't possible and even to preserve the entire application's state for a future session. See isSessionRestored(), sessionId() and commitData() and saveState() for details.

Since the QApplication object does so much initialization, it must be created before any other objects related to the user interface are created. QApplication also deals with common command line arguments. Hence, it is usually a good idea to create it before any interpretation or modification of argv is done in the application itself.

Groups of functions
System settings desktopSettingsAware(), setDesktopSettingsAware(), cursorFlashTime(), setCursorFlashTime(), doubleClickInterval(), setDoubleClickInterval(), setKeyboardInputInterval(), wheelScrollLines(), setWheelScrollLines(), palette(), setPalette(), font(), setFont(), fontMetrics().
Event handling exec_(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), hasPendingEvents(), notify(), macEventFilter(), qwsEventFilter(), x11EventFilter(), x11ProcessEvent(), winEventFilter().
GUI Styles style(), setStyle().
Color usage colorSpec(), setColorSpec(), qwsSetCustomColors().
Text handling installTranslator(), removeTranslator() translate().
Widgets allWidgets(), topLevelWidgets(), desktop(), activePopupWidget(), activeModalWidget(), clipboard(), focusWidget(), activeWindow(), widgetAt().
Advanced cursor handling overrideCursor(), setOverrideCursor(), restoreOverrideCursor().
X Window System synchronization flushX(), syncX().
Session management isSessionRestored(), sessionId(), commitData(), saveState().
Miscellaneous closeAllWindows(), startingUp(), closingDown(), type().

Type Documentation

QApplication.ColorSpec

Constant Value Description
QApplication.NormalColor 0 the default color allocation policy
QApplication.CustomColor 1 the same as NormalColor for X11; allocates colors to a palette on demand under Windows
QApplication.ManyColor 2 the right choice for applications that use thousands of colors

See setColorSpec() for full details.

QApplication.Type

Constant Value Description
QApplication.Tty 0 a console application
QApplication.GuiClient 1 a GUI client application
QApplication.GuiServer 2 a GUI server application (for Qt for Embedded Linux)

Method Documentation

QApplication.__init__ (self, list-of-str argv)

Initializes the window system and constructs an application object with argc command line arguments in argv.

Warning: The data referred to by argc and argv must stay valid for the entire lifetime of the QApplication object. In addition, argc must be greater than zero and argv must contain at least one valid character string.

The global qApp pointer refers to this application object. Only one application object should be created.

This application object must be constructed before any paint devices (including widgets, pixmaps, bitmaps etc.).

Note: argc and argv might be changed as Qt removes command line arguments that it recognizes.

Qt debugging options (not available if Qt was compiled without the QT_DEBUG flag defined):

  • -nograb, tells Qt that it must never grab the mouse or the keyboard.
  • -dograb (only under X11), running under a debugger can cause an implicit -nograb, use -dograb to override.
  • -sync (only under X11), switches to synchronous mode for debugging.

See Debugging Techniques for a more detailed explanation.

All Qt programs automatically support the following command line options:

  • -style= style, sets the application GUI style. Possible values are motif, windows, and platinum. If you compiled Qt with additional styles or have additional styles as plugins these will be available to the -style command line option.
  • -style style, is the same as listed above.
  • -stylesheet= stylesheet, sets the application styleSheet. The value must be a path to a file that contains the Style Sheet. Note: Relative URLs in the Style Sheet file are relative to the Style Sheet file's path.
  • -stylesheet stylesheet, is the same as listed above.
  • -session= session, restores the application from an earlier session.
  • -session session, is the same as listed above.
  • -widgetcount, prints debug message at the end about number of widgets left undestroyed and maximum number of widgets existed at the same time
  • -reverse, sets the application's layout direction to Qt.RightToLeft
  • -graphicssystem, sets the backend to be used for on-screen widgets and QPixmaps. Available options are raster and opengl.
  • -qmljsdebugger=, activates the QML/JS debugger with a specified port. The value must be of format port:1234[,block], where block is optional and will make the application wait until a debugger connects to it.

The X11 version of Qt supports some traditional X11 command line options:

  • -display display, sets the X display (default is $DISPLAY).
  • -geometry geometry, sets the client geometry of the first window that is shown.
  • -fn or -font font, defines the application font. The font should be specified using an X logical font description. Note that this option is ignored when Qt is built with fontconfig support enabled.
  • -bg or -background color, sets the default background color and an application palette (light and dark shades are calculated).
  • -fg or -foreground color, sets the default foreground color.
  • -btn or -button color, sets the default button color.
  • -name name, sets the application name.
  • -title title, sets the application title.
  • -visual TrueColor, forces the application to use a TrueColor visual on an 8-bit display.
  • -ncols count, limits the number of colors allocated in the color cube on an 8-bit display, if the application is using the QApplication.ManyColor color specification. If count is 216 then a 6x6x6 color cube is used (i.e. 6 levels of red, 6 of green, and 6 of blue); for other values, a cube approximately proportional to a 2x3x1 cube is used.
  • -cmap, causes the application to install a private color map on an 8-bit display.
  • -im, sets the input method server (equivalent to setting the XMODIFIERS environment variable)
  • -inputstyle, defines how the input is inserted into the given widget, e.g., onTheSpot makes the input appear directly in the widget, while overTheSpot makes the input appear in a box floating over the widget and is not inserted until the editing is done.

X11 Notes

If QApplication fails to open the X11 display, it will terminate the process. This behavior is consistent with most X11 applications.

See also arguments().

QApplication.__init__ (self, list-of-str argv, bool GUIenabled)

Constructs an application object with argc command line arguments in argv. If GUIenabled is true, a GUI application is constructed, otherwise a non-GUI (console) application is created.

Warning: The data referred to by argc and argv must stay valid for the entire lifetime of the QApplication object. In addition, argc must be greater than zero and argv must contain at least one valid character string.

Set GUIenabled to false for programs without a graphical user interface that should be able to run without a window system.

On X11, the window system is initialized if GUIenabled is true. If GUIenabled is false, the application does not connect to the X server. On Windows and Mac OS, currently the window system is always initialized, regardless of the value of GUIenabled. This may change in future versions of Qt.

The following example shows how to create an application that uses a graphical interface when available.

 int main(int argc, char **argv)
 {
 #ifdef Q_WS_X11
     bool useGUI = getenv("DISPLAY") != 0;
 #else
     bool useGUI = true;
 #endif
     QApplication app(argc, argv, useGUI);

     if (useGUI) {
        // start GUI version
        ...
     } else {
        // start non-GUI version
        ...
     }
     return app.exec();
 }

QApplication.__init__ (self, list-of-str argv, Type)

Constructs an application object with argc command line arguments in argv.

Warning: The data referred to by argc and argv must stay valid for the entire lifetime of the QApplication object. In addition, argc must be greater than zero and argv must contain at least one valid character string.

With Qt for Embedded Linux, passing QApplication.GuiServer for type makes this application the server (equivalent to running with the -qws option).

QApplication.__init__ (self, Display display, int visual = 0, int colormap = 0)

Creates an application, given an already open display display. If visual and colormap are non-zero, the application will use those values as the default Visual and Colormap contexts.

Warning: Qt only supports TrueColor visuals at depths higher than 8 bits-per-pixel.

This function is only available on X11.

QApplication.__init__ (self, Display dpy, list-of-str argv, int visual = 0, int cmap = 0)

Creates an application, given an already open display and using argc command line arguments in argv. If visual and colormap are non-zero, the application will use those values as the default Visual and Colormap contexts.

Warning: Qt only supports TrueColor visuals at depths higher than 8 bits-per-pixel.

This function is only available on X11.

QApplication.aboutQt ()

This method is also a Qt slot with the C++ signature void aboutQt().

Displays a simple message box about Qt. The message includes the version number of Qt being used by the application.

This is useful for inclusion in the Help menu of an application, as shown in the Menus example.

This function is a convenience slot for QMessageBox.aboutQt().

QWidget QApplication.activeModalWidget ()

Returns the active modal widget.

A modal widget is a special top-level widget which is a subclass of QDialog that specifies the modal parameter of the constructor as true. A modal widget must be closed before the user can continue with other parts of the program.

Modal widgets are organized in a stack. This function returns the active modal widget at the top of the stack.

See also activePopupWidget() and topLevelWidgets().

QWidget QApplication.activePopupWidget ()

Returns the active popup widget.

A popup widget is a special top-level widget that sets the Qt.WType_Popup widget flag, e.g. the QMenu widget. When the application opens a popup widget, all events are sent to the popup. Normal widgets and modal widgets cannot be accessed before the popup widget is closed.

Only other popup widgets may be opened when a popup widget is shown. The popup widgets are organized in a stack. This function returns the active popup widget at the top of the stack.

See also activeModalWidget() and topLevelWidgets().

QWidget QApplication.activeWindow ()

Returns the application top-level window that has the keyboard input focus, or 0 if no application window has the focus. There might be an activeWindow() even if there is no focusWidget(), for example if no widget in that window accepts key events.

See also setActiveWindow(), QWidget.setFocus(), QWidget.hasFocus(), and focusWidget().

QApplication.alert (QWidget widget, int msecs = 0)

Causes an alert to be shown for widget if the window is not the active window. The alert is shown for msec miliseconds. If msec is zero (the default), then the alert is shown indefinitely until the window becomes active again.

Currently this function does nothing on Qt for Embedded Linux.

On Mac OS X, this works more at the application level and will cause the application icon to bounce in the dock.

On Windows, this causes the window's taskbar entry to flash for a time. If msec is zero, the flashing will stop and the taskbar entry will turn a different color (currently orange).

On X11, this will cause the window to be marked as "demands attention", the window must not be hidden (i.e. not have hide() called on it, but be visible in some sort of way) in order for this to work.

This function was introduced in Qt 4.3.

list-of-QWidget QApplication.allWidgets ()

Returns a list of all the widgets in the application.

The list is empty (QList.isEmpty()) if there are no widgets.

Note: Some of the widgets may be hidden.

Example:

 void updateAllWidgets()
 {
     foreach (QWidget *widget, QApplication.allWidgets())
         widget->update();
 }

See also topLevelWidgets() and QWidget.isVisible().

bool QApplication.autoSipEnabled (self)

QApplication.beep ()

Sounds the bell, using the default volume and sound. The function is not available in Qt for Embedded Linux.

QApplication.changeOverrideCursor (QCursor)

Changes the currently active application override cursor to cursor.

This function has no effect if setOverrideCursor() was not called.

See also setOverrideCursor(), overrideCursor(), restoreOverrideCursor(), and QWidget.setCursor().

QClipboard QApplication.clipboard ()

Returns a pointer to the application global clipboard.

Note: The QApplication object should already be constructed before accessing the clipboard.

QApplication.closeAllWindows ()

This method is also a Qt slot with the C++ signature void closeAllWindows().

Closes all top-level windows.

This function is particularly useful for applications with many top-level windows. It could, for example, be connected to a Exit entry in the File menu:

     exitAct = new QAction(tr("E&xit"), this);
     exitAct->setShortcuts(QKeySequence.Quit);
     exitAct->setStatusTip(tr("Exit the application"));
     connect(exitAct, SIGNAL(triggered()), qApp, SLOT(closeAllWindows()));

The windows are closed in random order, until one window does not accept the close event. The application quits when the last window was successfully closed; this can be turned off by setting quitOnLastWindowClosed to false.

See also quitOnLastWindowClosed, lastWindowClosed(), QWidget.close(), QWidget.closeEvent(), lastWindowClosed(), quit(), topLevelWidgets(), and QWidget.isWindow().

int QApplication.colorSpec ()

Returns the color specification.

See also QApplication.setColorSpec().

QApplication.commitData (self, QSessionManager sm)

This function deals with session management. It is invoked when the QSessionManager wants the application to commit all its data.

Usually this means saving all open files, after getting permission from the user. Furthermore you may want to provide a means by which the user can cancel the shutdown.

You should not exit the application within this function. Instead, the session manager may or may not do this afterwards, depending on the context.

Warning: Within this function, no user interaction is possible, unless you ask the manager for explicit permission. See QSessionManager.allowsInteraction() and QSessionManager.allowsErrorInteraction() for details and example usage.

The default implementation requests interaction and sends a close event to all visible top-level widgets. If any event was rejected, the shutdown is canceled.

See also isSessionRestored(), sessionId(), saveState(), and Session Management.

int QApplication.cursorFlashTime ()

QDesktopWidget QApplication.desktop ()

Returns the desktop widget (also called the root window).

The desktop may be composed of multiple screens, so it would be incorrect, for example, to attempt to center some widget in the desktop's geometry. QDesktopWidget has various functions for obtaining useful geometries upon the desktop, such as QDesktopWidget.screenGeometry() and QDesktopWidget.availableGeometry().

On X11, it is also possible to draw on the desktop.

bool QApplication.desktopSettingsAware ()

Returns true if Qt is set to use the system's standard colors, fonts, etc.; otherwise returns false. The default is true.

See also setDesktopSettingsAware().

int QApplication.doubleClickInterval ()

bool QApplication.event (self, QEvent)

Reimplemented from QObject.event().

int QApplication.exec_ ()

Enters the main event loop and waits until exit() is called, then returns the value that was set to exit() (which is 0 if exit() is called via quit()).

It is necessary to call this function to start event handling. The main event loop receives events from the window system and dispatches these to the application widgets.

Generally, no user interaction can take place before calling exec(). As a special case, modal widgets like QMessageBox can be used before calling exec(), because modal widgets call exec() to start a local event loop.

To make your application perform idle processing, i.e., executing a special function whenever there are no pending events, use a QTimer with 0 timeout. More advanced idle processing schemes can be achieved using processEvents().

We recommend that you connect clean-up code to the aboutToQuit() signal, instead of putting it in your application's main() function. This is because, on some platforms the QApplication.exec() call may not return. For example, on the Windows platform, when the user logs off, the system terminates the process after Qt closes all top-level windows. Hence, there is no guarantee that the application will have time to exit its event loop and execute code at the end of the main() function, after the QApplication.exec() call.

See also quitOnLastWindowClosed, quit(), exit(), processEvents(), and QCoreApplication.exec().

QWidget QApplication.focusWidget ()

Returns the application widget that has the keyboard input focus, or 0 if no widget in this application has the focus.

See also QWidget.setFocus(), QWidget.hasFocus(), activeWindow(), and focusChanged().

QFont QApplication.font ()

Returns the default application font.

See also setFont(), fontMetrics(), and QWidget.font().

QFont QApplication.font (QWidget)

This is an overloaded function.

Returns the default font for the widget.

See also fontMetrics() and QWidget.setFont().

QFont QApplication.font (str className)

This is an overloaded function.

Returns the font for widgets of the given className.

See also setFont() and QWidget.font().

QFontMetrics QApplication.fontMetrics ()

Returns display (screen) font metrics for the application font.

See also font(), setFont(), QWidget.fontMetrics(), and QPainter.fontMetrics().

QSize QApplication.globalStrut ()

QInputContext QApplication.inputContext (self)

Returns the QInputContext instance used by the application.

See also setInputContext().

bool QApplication.isEffectEnabled (Qt.UIEffect)

Returns true if effect is enabled; otherwise returns false.

By default, Qt will try to use the desktop settings. To prevent this, call setDesktopSettingsAware(false).

Note: All effects are disabled on screens running at less than 16-bit color depth.

See also setEffectEnabled() and Qt.UIEffect.

bool QApplication.isLeftToRight ()

Returns true if the application's layout direction is Qt.LeftToRight; otherwise returns false.

See also layoutDirection() and isRightToLeft().

bool QApplication.isRightToLeft ()

Returns true if the application's layout direction is Qt.RightToLeft; otherwise returns false.

See also layoutDirection() and isLeftToRight().

bool QApplication.isSessionRestored (self)

Returns true if the application has been restored from an earlier session; otherwise returns false.

See also sessionId(), commitData(), and saveState().

Qt.LayoutDirection QApplication.keyboardInputDirection ()

Returns the current keyboard input direction.

This function was introduced in Qt 4.2.

int QApplication.keyboardInputInterval ()

QLocale QApplication.keyboardInputLocale ()

Returns the current keyboard input locale.

This function was introduced in Qt 4.2.

Qt.KeyboardModifiers QApplication.keyboardModifiers ()

Returns the current state of the modifier keys on the keyboard. The current state is updated sychronously as the event queue is emptied of events that will spontaneously change the keyboard state (QEvent.KeyPress and QEvent.KeyRelease events).

It should be noted this may not reflect the actual keys held on the input device at the time of calling but rather the modifiers as last reported in one of the above events. If no keys are being held Qt.NoModifier is returned.

See also mouseButtons() and queryKeyboardModifiers().

Qt.LayoutDirection QApplication.layoutDirection ()

Qt.MouseButtons QApplication.mouseButtons ()

Returns the current state of the buttons on the mouse. The current state is updated syncronously as the event queue is emptied of events that will spontaneously change the mouse state (QEvent.MouseButtonPress and QEvent.MouseButtonRelease events).

It should be noted this may not reflect the actual buttons held on the input device at the time of calling but rather the mouse buttons as last reported in one of the above events. If no mouse buttons are being held Qt.NoButton is returned.

See also keyboardModifiers().

bool QApplication.notify (self, QObject, QEvent)

Reimplemented from QCoreApplication.notify().

QCursor QApplication.overrideCursor ()

Returns the active application override cursor.

This function returns 0 if no application cursor has been defined (i.e. the internal cursor stack is empty).

See also setOverrideCursor() and restoreOverrideCursor().

QPalette QApplication.palette ()

Returns the application palette.

See also setPalette() and QWidget.palette().

QPalette QApplication.palette (QWidget)

This is an overloaded function.

If a widget is passed, the default palette for the widget's class is returned. This may or may not be the application palette. In most cases there is no special palette for certain types of widgets, but one notable exception is the popup menu under Windows, if the user has defined a special background color for menus in the display settings.

See also setPalette() and QWidget.palette().

QPalette QApplication.palette (str className)

This is an overloaded function.

Returns the palette for widgets of the given className.

See also setPalette() and QWidget.palette().

Qt.KeyboardModifiers QApplication.queryKeyboardModifiers ()

Queries and returns the state of the modifier keys on the keyboard. Unlike keyboardModifiers, this method returns the actual keys held on the input device at the time of calling the method.

It does not rely on the keypress events having been received by this process, which makes it possible to check the modifiers while moving a window, for instance. Note that in most cases, you should use keyboardModifiers(), which is faster and more accurate since it contains the state of the modifiers as they were when the currently processed event was received.

This function was introduced in Qt 4.8.

See also keyboardModifiers().

bool QApplication.quitOnLastWindowClosed ()

QApplication.restoreOverrideCursor ()

Undoes the last setOverrideCursor().

If setOverrideCursor() has been called twice, calling restoreOverrideCursor() will activate the first cursor set. Calling this function a second time restores the original widgets' cursors.

See also setOverrideCursor() and overrideCursor().

QApplication.saveState (self, QSessionManager sm)

This function deals with session management. It is invoked when the session manager wants the application to preserve its state for a future session.

For example, a text editor would create a temporary file that includes the current contents of its edit buffers, the location of the cursor and other aspects of the current editing session.

You should never exit the application within this function. Instead, the session manager may or may not do this afterwards, depending on the context. Futhermore, most session managers will very likely request a saved state immediately after the application has been started. This permits the session manager to learn about the application's restart policy.

Warning: Within this function, no user interaction is possible, unless you ask the manager for explicit permission. See QSessionManager.allowsInteraction() and QSessionManager.allowsErrorInteraction() for details.

See also isSessionRestored(), sessionId(), commitData(), and Session Management.

QString QApplication.sessionId (self)

Returns the current session's identifier.

If the application has been restored from an earlier session, this identifier is the same as it was in that previous session. The session identifier is guaranteed to be unique both for different applications and for different instances of the same application.

See also isSessionRestored(), sessionKey(), commitData(), and saveState().

QString QApplication.sessionKey (self)

Returns the session key in the current session.

If the application has been restored from an earlier session, this key is the same as it was when the previous session ended.

The session key changes with every call of commitData() or saveState().

See also isSessionRestored(), sessionId(), commitData(), and saveState().

QApplication.setActiveWindow (QWidget act)

Sets the active window to the active widget in response to a system event. The function is called from the platform specific event handlers.

Warning: This function does not set the keyboard focus to the active widget. Call QWidget.activateWindow() instead.

It sets the activeWindow() and focusWidget() attributes and sends proper WindowActivate/WindowDeactivate and FocusIn/FocusOut events to all appropriate widgets. The window will then be painted in active state (e.g. cursors in line edits will blink), and it will have tool tips enabled.

See also activeWindow() and QWidget.activateWindow().

QApplication.setAutoSipEnabled (self, bool enabled)

This method is also a Qt slot with the C++ signature void setAutoSipEnabled(const bool).

QApplication.setColorSpec (int)

Sets the color specification for the application to spec.

The color specification controls how the application allocates colors when run on a display with a limited amount of colors, e.g. 8 bit / 256 color displays.

The color specification must be set before you create the QApplication object.

The options are:

  • QApplication.NormalColor. This is the default color allocation strategy. Use this option if your application uses buttons, menus, texts and pixmaps with few colors. With this option, the application uses system global colors. This works fine for most applications under X11, but on the Windows platform, it may cause dithering of non-standard colors.
  • QApplication.CustomColor. Use this option if your application needs a small number of custom colors. On X11, this option is the same as NormalColor. On Windows, Qt creates a Windows palette, and allocates colors to it on demand.
  • QApplication.ManyColor. Use this option if your application is very color hungry, e.g., it requires thousands of colors.
    Under X11 the effect is:
    • For 256-color displays which have at best a 256 color true color visual, the default visual is used, and colors are allocated from a color cube. The color cube is the 6x6x6 (216 color) "Web palette" (the red, green, and blue components always have one of the following values: 0x00, 0x33, 0x66, 0x99, 0xCC, or 0xFF), but the number of colors can be changed by the -ncols option. The user can force the application to use the true color visual with the -visual option.
    • For 256-color displays which have a true color visual with more than 256 colors, use that visual. Silicon Graphics X servers this feature, for example. They provide an 8 bit visual by default but can deliver true color when asked.

    On Windows, Qt creates a Windows palette, and fills it with a color cube.

Be aware that the CustomColor and ManyColor choices may lead to colormap flashing: The foreground application gets (most) of the available colors, while the background windows will look less attractive.

Example:

 int main(int argc, char *argv[])
 {
     QApplication.setColorSpec(QApplication.ManyColor);
     QApplication app(argc, argv);
     ...
     return app.exec();
 }

See also colorSpec().

QApplication.setCursorFlashTime (int)

QApplication.setDesktopSettingsAware (bool)

Sets whether Qt should use the system's standard colors, fonts, etc., to on. By default, this is true.

This function must be called before creating the QApplication object, like this:

 int main(int argc, char *argv[])
 {
     QApplication.setDesktopSettingsAware(false);
     QApplication app(argc, argv);
     ...
     return app.exec();
 }

See also desktopSettingsAware().

QApplication.setDoubleClickInterval (int)

QApplication.setEffectEnabled (Qt.UIEffect effect, bool enabled = True)

Enables the UI effect effect if enable is true, otherwise the effect will not be used.

Note: All effects are disabled on screens running at less than 16-bit color depth.

See also isEffectEnabled(), Qt.UIEffect, and setDesktopSettingsAware().

QApplication.setFont (QFont font, str className = None)

Changes the default application font to font. If className is passed, the change applies only to classes that inherit className (as reported by QObject.inherits()).

On application start-up, the default font depends on the window system. It can vary depending on both the window system version and the locale. This function lets you override the default font; but overriding may be a bad idea because, for example, some locales need extra large fonts to support their special characters.

Warning: Do not use this function in conjunction with Qt Style Sheets. The font of an application can be customized using the "font" style sheet property. To set a bold font for all QPushButtons, set the application styleSheet() as "QPushButton { font: bold }"

See also font(), fontMetrics(), and QWidget.setFont().

QApplication.setGlobalStrut (QSize)

QApplication.setGraphicsSystem (QString)

Sets the default graphics backend to system, which will be used for on-screen widgets and QPixmaps. The available systems are "native", "raster" and "opengl".

There are several ways to set the graphics backend, in order of decreasing precedence:

  • the application commandline -graphicssystem switch
  • QApplication.setGraphicsSystem()
  • the QT_GRAPHICSSYSTEM environment variable
  • the Qt configure -graphicssystem switch

If the highest precedence switch sets an invalid name, the error will be ignored and the default backend will be used.

Warning: This function is only effective before the QApplication constructor is called.

Note: The "opengl" option is currently experimental.

This function was introduced in Qt 4.5.

QApplication.setInputContext (self, QInputContext)

The QInputContext argument has it's ownership transferred to Qt.

This function replaces the QInputContext instance used by the application with inputContext.

Qt takes ownership of the given inputContext.

See also inputContext().

QApplication.setKeyboardInputInterval (int)

QApplication.setLayoutDirection (Qt.LayoutDirection direction)

QApplication.setOverrideCursor (QCursor)

Sets the application override cursor to cursor.

Application override cursors are intended for showing the user that the application is in a special state, for example during an operation that might take some time.

This cursor will be displayed in all the application's widgets until restoreOverrideCursor() or another setOverrideCursor() is called.

Application cursors are stored on an internal stack. setOverrideCursor() pushes the cursor onto the stack, and restoreOverrideCursor() pops the active cursor off the stack. changeOverrideCursor() changes the curently active application override cursor.

Every setOverrideCursor() must eventually be followed by a corresponding restoreOverrideCursor(), otherwise the stack will never be emptied.

Example:

 QApplication.setOverrideCursor(QCursor(Qt.WaitCursor));
 calculateHugeMandelbrot();              // lunch time...
 QApplication.restoreOverrideCursor();

See also overrideCursor(), restoreOverrideCursor(), changeOverrideCursor(), and QWidget.setCursor().

QApplication.setPalette (QPalette palette, str className = None)

Changes the default application palette to palette.

If className is passed, the change applies only to widgets that inherit className (as reported by QObject.inherits()). If className is left 0, the change affects all widgets, thus overriding any previously set class specific palettes.

The palette may be changed according to the current GUI style in QStyle.polish().

Warning: Do not use this function in conjunction with Qt Style Sheets. When using style sheets, the palette of a widget can be customized using the "color", "background-color", "selection-color", "selection-background-color" and "alternate-background-color".

Note: Some styles do not use the palette for all drawing, for instance, if they make use of native theme engines. This is the case for the Windows XP, Windows Vista, and Mac OS X styles.

See also QWidget.setPalette(), palette(), and QStyle.polish().

QApplication.setQuitOnLastWindowClosed (bool quit)

QApplication.setStartDragDistance (int l)

QApplication.setStartDragTime (int ms)

QApplication.setStyle (QStyle)

The QStyle argument has it's ownership transferred to Qt.

Sets the application's GUI style to style. Ownership of the style object is transferred to QApplication, so QApplication will delete the style object on application exit or when a new style is set and the old style is still the parent of the application object.

Example usage:

 QApplication.setStyle(new QWindowsStyle);

When switching application styles, the color palette is set back to the initial colors or the system defaults. This is necessary since certain styles have to adapt the color palette to be fully style-guide compliant.

Setting the style before a palette has been set, i.e., before creating QApplication, will cause the application to use QStyle.standardPalette() for the palette.

Warning: Qt style sheets are currently not supported for custom QStyle subclasses. We plan to address this in some future release.

See also style(), QStyle, setPalette(), and desktopSettingsAware().

QStyle QApplication.setStyle (QString)

This is an overloaded function.

Requests a QStyle object for style from the QStyleFactory.

The string must be one of the QStyleFactory.keys(), typically one of "windows", "motif", "cde", "plastique", "windowsxp", or "macintosh". Style names are case insensitive.

Returns 0 if an unknown style is passed, otherwise the QStyle object returned is set as the application's GUI style.

Warning: To ensure that the application's style is set correctly, it is best to call this function before the QApplication constructor, if possible.

QApplication.setStyleSheet (self, QString sheet)

This method is also a Qt slot with the C++ signature void setStyleSheet(const QString&).

QApplication.setWheelScrollLines (int)

QApplication.setWindowIcon (QIcon icon)

int QApplication.startDragDistance ()

int QApplication.startDragTime ()

QStyle QApplication.style ()

Returns the application's style object.

See also setStyle() and QStyle.

QString QApplication.styleSheet (self)

QApplication.syncX ()

Synchronizes with the X server in the X11 implementation. This normally takes some time. Does nothing on other platforms.

QWidget QApplication.topLevelAt (QPoint p)

Returns the top-level widget at the given point; returns 0 if there is no such widget.

QWidget QApplication.topLevelAt (int x, int y)

This is an overloaded function.

Returns the top-level widget at the point (x, y); returns 0 if there is no such widget.

list-of-QWidget QApplication.topLevelWidgets ()

Returns a list of the top-level widgets (windows) in the application.

Note: Some of the top-level widgets may be hidden, for example a tooltip if no tooltip is currently shown.

Example:

 void showAllHiddenTopLevelWidgets()
 {
     foreach (QWidget *widget, QApplication.topLevelWidgets()) {
         if (widget->isHidden())
             widget->show();
     }
 }

See also allWidgets(), QWidget.isWindow(), and QWidget.isHidden().

Type QApplication.type ()

Returns the type of application (Tty, GuiClient, or GuiServer). The type is set when constructing the QApplication object.

int QApplication.wheelScrollLines ()

QWidget QApplication.widgetAt (QPoint p)

Returns the widget at global screen position point, or 0 if there is no Qt widget there.

This function can be slow.

See also QCursor.pos(), QWidget.grabMouse(), and QWidget.grabKeyboard().

QWidget QApplication.widgetAt (int x, int y)

QIcon QApplication.windowIcon ()

bool QApplication.x11EventFilter (self, sip.voidptr)

Warning: This virtual function is only implemented under X11.

If you create an application that inherits QApplication and reimplement this function, you get direct access to all X events that the are received from the X server. The events are passed in the event parameter.

Return true if you want to stop the event from being processed. Return false for normal event dispatching. The default implementation returns false.

It is only the directly addressed messages that are filtered. You must install an event filter directly on the event dispatcher, which is returned by QAbstractEventDispatcher.instance(), to handle system wide messages.

See also x11ProcessEvent().

int QApplication.x11ProcessEvent (self, sip.voidptr)

This function does the core processing of individual X events, normally by dispatching Qt events to the right destination.

It returns 1 if the event was consumed by special handling, 0 if the event was consumed by normal handling, and -1 if the event was for an unrecognized widget.

See also x11EventFilter().


Qt Signal Documentation

void commitDataRequest (QSessionManager&)

This is the default overload of this signal.

This signal deals with session management. It is emitted when the QSessionManager wants the application to commit all its data.

Usually this means saving all open files, after getting permission from the user. Furthermore you may want to provide a means by which the user can cancel the shutdown.

You should not exit the application within this signal. Instead, the session manager may or may not do this afterwards, depending on the context.

Warning: Within this signal, no user interaction is possible, unless you ask the manager for explicit permission. See QSessionManager.allowsInteraction() and QSessionManager.allowsErrorInteraction() for details and example usage.

Note: You should use Qt.DirectConnection when connecting to this signal.

This function was introduced in Qt 4.2.

See also isSessionRestored(), sessionId(), saveState(), and Session Management.

void focusChanged (QWidget*,QWidget*)

This is the default overload of this signal.

This signal is emitted when the widget that has keyboard focus changed from old to now, i.e., because the user pressed the tab-key, clicked into a widget or changed the active window. Both old and now can be the null-pointer.

The signal is emitted after both widget have been notified about the change through QFocusEvent.

This function was introduced in Qt 4.1.

See also QWidget.setFocus(), QWidget.clearFocus(), and Qt.FocusReason.

void fontDatabaseChanged ()

This is the default overload of this signal.

This signal is emitted when application fonts are loaded or removed.

This function was introduced in Qt 4.5.

See also QFontDatabase.addApplicationFont(), QFontDatabase.addApplicationFontFromData(), QFontDatabase.removeAllApplicationFonts(), and QFontDatabase.removeApplicationFont().

void lastWindowClosed ()

This is the default overload of this signal.

This signal is emitted from QApplication.exec() when the last visible primary window (i.e. window with no parent) with the Qt.WA_QuitOnClose attribute set is closed.

By default,

  • this attribute is set for all widgets except transient windows such as splash screens, tool windows, and popup menus
  • QApplication implicitly quits when this signal is emitted.

This feature can be turned off by setting quitOnLastWindowClosed to false.

See also QWidget.close().

void saveStateRequest (QSessionManager&)

This is the default overload of this signal.

This signal deals with session management. It is invoked when the session manager wants the application to preserve its state for a future session.

For example, a text editor would create a temporary file that includes the current contents of its edit buffers, the location of the cursor and other aspects of the current editing session.

You should never exit the application within this signal. Instead, the session manager may or may not do this afterwards, depending on the context. Futhermore, most session managers will very likely request a saved state immediately after the application has been started. This permits the session manager to learn about the application's restart policy.

Warning: Within this function, no user interaction is possible, unless you ask the manager for explicit permission. See QSessionManager.allowsInteraction() and QSessionManager.allowsErrorInteraction() for details.

Note: You should use Qt.DirectConnection when connecting to this signal.

This function was introduced in Qt 4.2.

See also isSessionRestored(), sessionId(), commitData(), and Session Management.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qassistantclient.html0000644000076500000240000001034012536324524021740 0ustar philstaff00000000000000 QAssistantClient Class Reference
  Home · All Classes · Modules

QAssistantClient Class Reference
[QtAssistant module]

Inherits QObject.

Methods

Qt Signals


Detailed Description


Method Documentation

QAssistantClient.__init__ (self, QString path, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QAssistantClient.closeAssistant (self)

This method is also a Qt slot with the C++ signature void closeAssistant().

bool QAssistantClient.isOpen (self)

QAssistantClient.openAssistant (self)

This method is also a Qt slot with the C++ signature void openAssistant().

QAssistantClient.setArguments (self, QStringList arguments)

QAssistantClient.showPage (self, QString page)

This method is also a Qt slot with the C++ signature void showPage(const QString&).


Qt Signal Documentation

void assistantClosed ()

This is the default overload of this signal.

void assistantOpened ()

This is the default overload of this signal.

void error (const QString&)

This is the default overload of this signal.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qaudio.html0000644000076500000240000001172512536324517017643 0ustar philstaff00000000000000 QAudio Class Reference
  Home · All Classes · Modules

QAudio Class Reference
[
QtMultimedia module]

The QAudio namespace contains enums used by the audio classes. More...

Types

  • enum Error { NoError, OpenError, IOError, UnderrunError, FatalError }
  • enum Mode { AudioInput, AudioOutput }
  • enum State { ActiveState, SuspendedState, StoppedState, IdleState }

Detailed Description

The QAudio namespace contains enums used by the audio classes.


Type Documentation

QAudio.Error

Constant Value Description
QAudio.NoError 0 No errors have occurred
QAudio.OpenError 1 An error opening the audio device
QAudio.IOError 2 An error occurred during read/write of audio device
QAudio.UnderrunError 3 Audio data is not being fed to the audio device at a fast enough rate
QAudio.FatalError 4 A non-recoverable error has occurred, the audio device is not usable at this time.

QAudio.Mode

Constant Value Description
QAudio.AudioOutput 1 audio output device
QAudio.AudioInput 0 audio input device

QAudio.State

Constant Value Description
QAudio.ActiveState 0 Audio data is being processed, this state is set after start() is called and while audio data is available to be processed.
QAudio.SuspendedState 1 The audio device is in a suspended state, this state will only be entered after suspend() is called.
QAudio.StoppedState 2 The audio device is closed, not processing any audio data
QAudio.IdleState 3 The QIODevice passed in has no data and audio system's buffer is empty, this state is set after start() is called and while no audio data is available to be processed.

PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qaudiodeviceinfo.html0000644000076500000240000003145612536324517021702 0ustar philstaff00000000000000 QAudioDeviceInfo Class Reference
  Home · All Classes · Modules

QAudioDeviceInfo Class Reference
[
QtMultimedia module]

The QAudioDeviceInfo class provides an interface to query audio devices and their functionality. More...

Methods

Static Methods


Detailed Description

The QAudioDeviceInfo class provides an interface to query audio devices and their functionality.

QAudioDeviceInfo lets you query for audio devices--such as sound cards and USB headsets--that are currently available on the system. The audio devices available are dependent on the platform or audio plugins installed.

You can also query each device for the formats it supports. A format in this context is a set consisting of a specific byte order, channel, codec, frequency, sample rate, and sample type. A format is represented by the QAudioFormat class.

The values supported by the the device for each of these parameters can be fetched with supportedByteOrders(), supportedChannelCounts(), supportedCodecs(), supportedSampleRates(), supportedSampleSizes(), and supportedSampleTypes(). The combinations supported are dependent on the platform, audio plugins installed and the audio device capabilities. If you need a specific format, you can check if the device supports it with isFormatSupported(), or fetch a supported format that is as close as possible to the format with nearestFormat(). For instance:

         QAudioFormat format;
         format.setFrequency(44100);
         ...
         format.setSampleType(QAudioFormat.SignedInt);

         QAudioDeviceInfo info(QAudioDeviceInfo.defaultOutputDevice());

         if (!info.isFormatSupported(format))
             format = info.nearestFormat(format);

A QAudioDeviceInfo is used by Qt to construct classes that communicate with the device--such as QAudioInput, and QAudioOutput. The static functions defaultInputDevice(), defaultOutputDevice(), and availableDevices() let you get a list of all available devices. Devices are fetch according to the value of mode this is specified by the QAudio.Mode enum. The QAudioDeviceInfo returned are only valid for the QAudio.Mode.

For instance:

 foreach(const QAudioDeviceInfo &deviceInfo, QAudioDeviceInfo.availableDevices(QAudio.AudioOutput))
     qDebug() << "Device name: " << deviceInfo.deviceName();

In this code sample, we loop through all devices that are able to output sound, i.e., play an audio stream in a supported format. For each device we find, we simply print the deviceName().


Method Documentation

QAudioDeviceInfo.__init__ (self)

Constructs an empty QAudioDeviceInfo object.

QAudioDeviceInfo.__init__ (self, QAudioDeviceInfo other)

Constructs a copy of other.

list-of-QAudioDeviceInfo QAudioDeviceInfo.availableDevices (QAudio.Mode mode)

Returns a list of audio devices that support mode.

QAudioDeviceInfo QAudioDeviceInfo.defaultInputDevice ()

Returns the name of the default input audio device. All platform and audio plugin implementations provide a default audio device to use.

QAudioDeviceInfo QAudioDeviceInfo.defaultOutputDevice ()

Returns the name of the default output audio device. All platform and audio plugin implementations provide a default audio device to use.

QString QAudioDeviceInfo.deviceName (self)

Returns human readable name of audio device.

Device names vary depending on platform/audio plugin being used.

They are a unique string identifiers for the audio device.

eg. default, Intel, U0x46d0x9a4

bool QAudioDeviceInfo.isFormatSupported (self, QAudioFormat format)

Returns true if settings are supported by the audio device of this QAudioDeviceInfo.

bool QAudioDeviceInfo.isNull (self)

Returns whether this QAudioDeviceInfo object holds a device definition.

QAudioFormat QAudioDeviceInfo.nearestFormat (self, QAudioFormat format)

Returns closest QAudioFormat to settings that system audio supports.

These settings are provided by the platform/audio plugin being used.

They also are dependent on the QAudio.Mode being used.

QAudioFormat QAudioDeviceInfo.preferredFormat (self)

Returns QAudioFormat of default settings.

These settings are provided by the platform/audio plugin being used.

They also are dependent on the QAudio.Mode being used.

A typical audio system would provide something like:

  • Input settings: 8000Hz mono 8 bit.
  • Output settings: 44100Hz stereo 16 bit little endian.

list-of-QAudioFormat.Endian QAudioDeviceInfo.supportedByteOrders (self)

Returns a list of supported byte orders.

list-of-int QAudioDeviceInfo.supportedChannelCounts (self)

Returns a list of supported channel counts.

This function was introduced in Qt 4.7.

list-of-int QAudioDeviceInfo.supportedChannels (self)

QStringList QAudioDeviceInfo.supportedCodecs (self)

Returns a list of supported codecs.

All platform and plugin implementations should provide support for:

"audio/pcm" - Linear PCM

For writing plugins to support additional codecs refer to:

http://www.iana.org/assignments/media-types/audio/

list-of-int QAudioDeviceInfo.supportedFrequencies (self)

list-of-int QAudioDeviceInfo.supportedSampleRates (self)

Returns a list of supported sample rates.

This function was introduced in Qt 4.7.

list-of-int QAudioDeviceInfo.supportedSampleSizes (self)

Returns a list of supported sample sizes.

list-of-QAudioFormat.SampleType QAudioDeviceInfo.supportedSampleTypes (self)

Returns a list of supported sample types.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qaudioformat.html0000644000076500000240000003133712536324517021055 0ustar philstaff00000000000000 QAudioFormat Class Reference
  Home · All Classes · Modules

QAudioFormat Class Reference
[
QtMultimedia module]

The QAudioFormat class stores audio parameter information. More...

Types

  • enum Endian { BigEndian, LittleEndian }
  • enum SampleType { Unknown, SignedInt, UnSignedInt, Float }

Methods

Special Methods

  • bool __eq__ (self, QAudioFormat other)
  • bool __ne__ (self, QAudioFormat other)

Detailed Description

The QAudioFormat class stores audio parameter information.

An audio format specifies how data in an audio stream is arranged, i.e, how the stream is to be interpreted. The encoding itself is specified by the codec() used for the stream.

In addition to the encoding, QAudioFormat contains other parameters that further specify how the audio data is arranged. These are the frequency, the number of channels, the sample size, the sample type, and the byte order. The following table describes these in more detail.

Parameter Description
Sample Rate Samples per second of audio data in Hertz.
Number of channels The number of audio channels (typically one for mono or two for stereo)
Sample size How much data is stored in each sample (typically 8 or 16 bits)
Sample type Numerical representation of sample (typically signed integer, unsigned integer or float)
Byte order Byte ordering of sample (typically little endian, big endian)

You can obtain audio formats compatible with the audio device used through functions in QAudioDeviceInfo. This class also lets you query available parameter values for a device, so that you can set the parameters yourself. See the QAudioDeviceInfo class description for details. You need to know the format of the audio streams you wish to play. Qt does not set up formats for you.


Type Documentation

QAudioFormat.Endian

Constant Value Description
QAudioFormat.BigEndian QSysInfo.BigEndian samples are big endian byte order
QAudioFormat.LittleEndian QSysInfo.LittleEndian samples are little endian byte order

QAudioFormat.SampleType

Constant Value Description
QAudioFormat.Unknown 0 Not Set
QAudioFormat.SignedInt 1 samples are signed integers
QAudioFormat.UnSignedInt 2 samples are unsigned intergers
QAudioFormat.Float 3 samples are floats

Method Documentation

QAudioFormat.__init__ (self)

Construct a new audio format.

Values are initialized as follows:

QAudioFormat.__init__ (self, QAudioFormat other)

Construct a new audio format using other.

Endian QAudioFormat.byteOrder (self)

Returns the current byteOrder value.

See also setByteOrder().

int QAudioFormat.channelCount (self)

Returns the current channel count value.

This function was introduced in Qt 4.7.

See also setChannelCount().

int QAudioFormat.channels (self)

QString QAudioFormat.codec (self)

Returns the current codec value.

See also setCodec() and QAudioDeviceInfo.supportedCodecs().

int QAudioFormat.frequency (self)

bool QAudioFormat.isValid (self)

Returns true if all of the parameters are valid.

int QAudioFormat.sampleRate (self)

Returns the current sample rate in Hertz.

This function was introduced in Qt 4.7.

See also setSampleRate().

int QAudioFormat.sampleSize (self)

Returns the current sample size value.

See also setSampleSize().

SampleType QAudioFormat.sampleType (self)

Returns the current SampleType value.

See also setSampleType().

QAudioFormat.setByteOrder (self, Endian byteOrder)

Sets the byteOrder to byteOrder.

See also byteOrder().

QAudioFormat.setChannelCount (self, int channelCount)

Sets the channel count to channels.

This function was introduced in Qt 4.7.

See also channelCount().

QAudioFormat.setChannels (self, int channels)

QAudioFormat.setCodec (self, QString codec)

Sets the codec to codec.

See also codec() and QAudioDeviceInfo.supportedCodecs().

QAudioFormat.setFrequency (self, int frequency)

QAudioFormat.setSampleRate (self, int sampleRate)

Sets the sample rate to samplerate Hertz.

This function was introduced in Qt 4.7.

See also sampleRate().

QAudioFormat.setSampleSize (self, int sampleSize)

Sets the sample size to the sampleSize specified.

See also sampleSize().

QAudioFormat.setSampleType (self, SampleType sampleType)

Sets the sampleType to sampleType.

See also sampleType().

bool QAudioFormat.__eq__ (self, QAudioFormat other)

bool QAudioFormat.__ne__ (self, QAudioFormat other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qaudioinput.html0000644000076500000240000005473212536324517020730 0ustar philstaff00000000000000 QAudioInput Class Reference
  Home · All Classes · Modules

QAudioInput Class Reference
[QtMultimedia module]

The QAudioInput class provides an interface for receiving audio data from an audio input device. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QAudioInput class provides an interface for receiving audio data from an audio input device.

You can construct an audio input with the system's default audio input device. It is also possible to create QAudioInput with a specific QAudioDeviceInfo. When you create the audio input, you should also send in the QAudioFormat to be used for the recording (see the QAudioFormat class description for details).

To record to a file:

QAudioInput lets you record audio with an audio input device. The default constructor of this class will use the systems default audio device, but you can also specify a QAudioDeviceInfo for a specific device. You also need to pass in the QAudioFormat in which you wish to record.

Starting up the QAudioInput is simply a matter of calling start() with a QIODevice opened for writing. For instance, to record to a file, you can:

     QFile outputFile;         // class member.
     QAudioInput *audioInput;  // class member.
     ...
     void startRecording()
     {
         outputFile.setFileName("/tmp/test.raw");
         outputFile.open( QIODevice.WriteOnly | QIODevice.Truncate );

         QAudioFormat format;
         // set up the format you want, eg.
         format.setFrequency(8000);
         format.setChannels(1);
         format.setSampleSize(8);
         format.setCodec("audio/pcm");
         format.setByteOrder(QAudioFormat.LittleEndian);
         format.setSampleType(QAudioFormat.UnSignedInt);

         QAudioDeviceInfo info = QAudioDeviceInfo.defaultInputDevice();
         if (!info.isFormatSupported(format)) {
             qWarning()<<"default format not supported try to use nearest";
             format = info.nearestFormat(format);
         }

         audioInput = new QAudioInput(format, this);
         QTimer.singleShot(3000, this, SLOT(stopRecording()));
         audioInput->start(&outputFile);
         // Records audio for 3000ms
     }

This will start recording if the format specified is supported by the input device (you can check this with QAudioDeviceInfo.isFormatSupported(). In case there are any snags, use the error() function to check what went wrong. We stop recording in the stopRecording() slot.

     void stopRecording()
     {
         audioInput->stop();
         outputFile.close();
         delete audioInput;
     }

At any point in time, QAudioInput will be in one of four states: active, suspended, stopped, or idle. These states are specified by the QAudio.State enum. You can request a state change directly through suspend(), resume(), stop(), reset(), and start(). The current state is reported by state(). QAudioOutput will also signal you when the state changes (stateChanged()).

QAudioInput provides several ways of measuring the time that has passed since the start() of the recording. The processedUSecs() function returns the length of the stream in microseconds written, i.e., it leaves out the times the audio input was suspended or idle. The elapsedUSecs() function returns the time elapsed since start() was called regardless of which states the QAudioInput has been in.

If an error should occur, you can fetch its reason with error(). The possible error reasons are described by the QAudio.Error enum. The QAudioInput will enter the StoppedState when an error is encountered. Connect to the stateChanged() signal to handle the error:

     void stateChanged(QAudio.State newState)
     {
         switch(newState) {
             case QAudio.StoppedState:
             if (audioInput->error() != QAudio.NoError) {
                  // Perform error handling
             } else {

             }
             break;

Symbian Platform Security Requirements

On Symbian, processes which use this class must have the UserEnvironment platform security capability. If the client process lacks this capability, calls to either overload of start() will fail. This failure is indicated by the QAudioInput object setting its error() value to QAudio.OpenError and then emitting a stateChanged(QAudio.StoppedState) signal.

Platform security capabilities are added via the TARGET.CAPABILITY qmake variable.


Method Documentation

QAudioInput.__init__ (self, QAudioFormat format = QAudioFormat(), QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Construct a new audio input and attach it to parent. The default audio input device is used with the output format parameters.

QAudioInput.__init__ (self, QAudioDeviceInfo audioDevice, QAudioFormat format = QAudioFormat(), QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Construct a new audio input and attach it to parent. The device referenced by audioDevice is used with the input format parameters.

int QAudioInput.bufferSize (self)

Returns the audio buffer size in milliseconds.

If called before start(), returns platform default value. If called before start() but setBufferSize() was called prior, returns value set by setBufferSize(). If called after start(), returns the actual buffer size being used. This may not be what was set previously by setBufferSize().

See also setBufferSize().

int QAudioInput.bytesReady (self)

Returns the amount of audio data available to read in bytes.

NOTE: returned value is only valid while in QAudio.ActiveState or QAudio.IdleState state, otherwise returns zero.

int QAudioInput.elapsedUSecs (self)

Returns the microseconds since start() was called, including time in Idle and Suspend states.

QAudio.Error QAudioInput.error (self)

Returns the error state.

QAudioFormat QAudioInput.format (self)

Returns the QAudioFormat being used.

int QAudioInput.notifyInterval (self)

Returns the notify interval in milliseconds.

See also setNotifyInterval().

int QAudioInput.periodSize (self)

Returns the period size in bytes.

Note: This is the recommended read size in bytes.

int QAudioInput.processedUSecs (self)

Returns the amount of audio data processed since start() was called in microseconds.

QAudioInput.reset (self)

Drops all audio data in the buffers, resets buffers to zero.

QAudioInput.resume (self)

Resumes processing audio data after a suspend().

Sets error() to QAudio.NoError. Sets state() to QAudio.ActiveState if you previously called start(QIODevice*). Sets state() to QAudio.IdleState if you previously called start(). emits stateChanged() signal.

QAudioInput.setBufferSize (self, int bytes)

Sets the audio buffer size to value milliseconds.

Note: This function can be called anytime before start(), calls to this are ignored after start(). It should not be assumed that the buffer size set is the actual buffer size used, calling bufferSize() anytime after start() will return the actual buffer size being used.

See also bufferSize().

QAudioInput.setNotifyInterval (self, int milliSeconds)

Sets the interval for notify() signal to be emitted. This is based on the ms of audio data processed not on actual real-time. The minimum resolution of the timer is platform specific and values should be checked with notifyInterval() to confirm actual value being used.

See also notifyInterval().

QAudioInput.start (self, QIODevice device)

Uses the device as the QIODevice to transfer data. Passing a QIODevice allows the data to be transferred without any extra code. All that is required is to open the QIODevice. QAudioInput does not take ownership of device.

The QAudioInput will write to the device when new data is available. You can subclass QIODevice and reimplement writeData() if you wish to access the data. If you simply want to save data to a file, you can pass a QFile to this function.

If able to successfully get audio data from the systems audio device the state() is set to either QAudio.ActiveState or QAudio.IdleState, error() is set to QAudio.NoError and the stateChanged() signal is emitted.

If a problem occurs during this process the error() is set to QAudio.OpenError, state() is set to QAudio.StoppedState and stateChanged() signal is emitted.

QAudioInput#Symbian Platform Security Requirements

See also QIODevice.

QIODevice QAudioInput.start (self)

Returns a pointer to a new QIODevice that will be used to handle the data transfer. This QIODevice can be used to read() audio data directly. You will typically connect to the readyRead() signal, and read from the device in the slot you connect to. QAudioInput keeps ownership of the device.

If able to access the systems audio device the state() is set to QAudio.IdleState, error() is set to QAudio.NoError and the stateChanged() signal is emitted.

If a problem occurs during this process the error() is set to QAudio.OpenError, state() is set to QAudio.StoppedState and stateChanged() signal is emitted.

QAudioInput#Symbian Platform Security Requirements

See also QIODevice.

QAudio.State QAudioInput.state (self)

Returns the state of audio processing.

QAudioInput.stop (self)

Stops the audio input, detaching from the system resource.

Sets error() to QAudio.NoError, state() to QAudio.StoppedState and emit stateChanged() signal.

QAudioInput.suspend (self)

Stops processing audio data, preserving buffered audio data.

Sets error() to QAudio.NoError, state() to QAudio.SuspendedState and emit stateChanged() signal.


Qt Signal Documentation

void notify ()

This is the default overload of this signal.

This signal is emitted when x ms of audio data has been processed the interval set by setNotifyInterval(x).

void stateChanged (QAudio::State)

This is the default overload of this signal.

This signal is emitted when the device state has changed.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qaudiooutput.html0000644000076500000240000005506112536324517021125 0ustar philstaff00000000000000 QAudioOutput Class Reference
  Home · All Classes · Modules

QAudioOutput Class Reference
[
QtMultimedia module]

The QAudioOutput class provides an interface for sending audio data to an audio output device. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QAudioOutput class provides an interface for sending audio data to an audio output device.

You can construct an audio output with the system's default audio output device. It is also possible to create QAudioOutput with a specific QAudioDeviceInfo. When you create the audio output, you should also send in the QAudioFormat to be used for the playback (see the QAudioFormat class description for details).

To play a file:

Starting to play an audio stream is simply a matter of calling start() with a QIODevice. QAudioOutput will then fetch the data it needs from the io device. So playing back an audio file is as simple as:

     QFile inputFile;           // class member.
     QAudioOutput *audioOutput; // class member.
     ...
     void startPlaying()
     {
         inputFile.setFileName("/tmp/test.raw");
         inputFile.open(QIODevice.ReadOnly);

         QAudioFormat format;
         // Set up the format, eg.
         format.setFrequency(8000);
         format.setChannels(1);
         format.setSampleSize(8);
         format.setCodec("audio/pcm");
         format.setByteOrder(QAudioFormat.LittleEndian);
         format.setSampleType(QAudioFormat.UnSignedInt);

         QAudioDeviceInfo info(QAudioDeviceInfo.defaultOutputDevice());
         if (!info.isFormatSupported(format)) {
             qWarning()<<"raw audio format not supported by backend, cannot play audio.";
             return;
         }

         audioOutput = new QAudioOutput(format, this);
         connect(audioOutput,SIGNAL(stateChanged(QAudio.State)),SLOT(finishedPlaying(QAudio.State)));
         audioOutput->start(&inputFile);
     }

The file will start playing assuming that the audio system and output device support it. If you run out of luck, check what's up with the error() function.

After the file has finished playing, we need to stop the device:

     void finishedPlaying(QAudio.State state)
     {
         if (state == QAudio.IdleState) {
             audioOutput->stop();
             inputFile.close();
             delete audioOutput;
         }
     }

At any given time, the QAudioOutput will be in one of four states: active, suspended, stopped, or idle. These states are described by the QAudio.State enum. State changes are reported through the stateChanged() signal. You can use this signal to, for instance, update the GUI of the application; the mundane example here being changing the state of a play/pause button. You request a state change directly with suspend(), stop(), reset(), resume(), and start().

While the stream is playing, you can set a notify interval in milliseconds with setNotifyInterval(). This interval specifies the time between two emissions of the notify() signal. This is relative to the position in the stream, i.e., if the QAudioOutput is in the SuspendedState or the IdleState, the notify() signal is not emitted. A typical use-case would be to update a slider that allows seeking in the stream. If you want the time since playback started regardless of which states the audio output has been in, elapsedUSecs() is the function for you.

If an error occurs, you can fetch the error type with the error() function. Please see the QAudio.Error enum for a description of the possible errors that are reported. When an error is encountered, the state changes to QAudio.StoppedState. You can check for errors by connecting to the stateChanged() signal:

     void stateChanged(QAudio.State newState)
     {
         switch (newState) {
             case QAudio.StoppedState:
                 if (audioOutput->error() != QAudio.NoError) {
                     // Perform error handling
                 } else {
                     // Normal stop
                 }
                 break;

Method Documentation

QAudioOutput.__init__ (self, QAudioFormat format = QAudioFormat(), QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Construct a new audio output and attach it to parent. The default audio output device is used with the output format parameters.

QAudioOutput.__init__ (self, QAudioDeviceInfo audioDevice, QAudioFormat format = QAudioFormat(), QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Construct a new audio output and attach it to parent. The device referenced by audioDevice is used with the output format parameters.

int QAudioOutput.bufferSize (self)

Returns the audio buffer size in bytes.

If called before start(), returns platform default value. If called before start() but setBufferSize() was called prior, returns value set by setBufferSize(). If called after start(), returns the actual buffer size being used. This may not be what was set previously by setBufferSize().

See also setBufferSize().

int QAudioOutput.bytesFree (self)

Returns the free space available in bytes in the audio buffer.

NOTE: returned value is only valid while in QAudio.ActiveState or QAudio.IdleState state, otherwise returns zero.

int QAudioOutput.elapsedUSecs (self)

Returns the microseconds since start() was called, including time in Idle and Suspend states.

QAudio.Error QAudioOutput.error (self)

Returns the error state.

QAudioFormat QAudioOutput.format (self)

Returns the QAudioFormat being used.

int QAudioOutput.notifyInterval (self)

Returns the notify interval in milliseconds.

See also setNotifyInterval().

int QAudioOutput.periodSize (self)

Returns the period size in bytes.

Note: This is the recommended write size in bytes.

int QAudioOutput.processedUSecs (self)

Returns the amount of audio data processed by the class since start() was called in microseconds.

Note: The amount of audio data played can be determined by subtracting the microseconds of audio data still in the systems audio buffer.

 long bytesInBuffer = bufferSize() - bytesFree();
 long usInBuffer = (long)(1000000) * bytesInBuffer / ( channels() * sampleSize() / 8 ) / frequency();
 long usPlayed = processedUSecs() - usInBuffer;

QAudioOutput.reset (self)

Drops all audio data in the buffers, resets buffers to zero.

QAudioOutput.resume (self)

Resumes processing audio data after a suspend().

Sets error() to QAudio.NoError. Sets state() to QAudio.ActiveState if you previously called start(QIODevice*). Sets state() to QAudio.IdleState if you previously called start(). emits stateChanged() signal.

Note: signal will always be emitted during execution of the resume() function.

QAudioOutput.setBufferSize (self, int bytes)

Sets the audio buffer size to value in bytes.

Note: This function can be called anytime before start(), calls to this are ignored after start(). It should not be assumed that the buffer size set is the actual buffer size used, calling bufferSize() anytime after start() will return the actual buffer size being used.

See also bufferSize().

QAudioOutput.setNotifyInterval (self, int milliSeconds)

Sets the interval for notify() signal to be emitted. This is based on the ms of audio data processed not on actual real-time. The minimum resolution of the timer is platform specific and values should be checked with notifyInterval() to confirm actual value being used.

See also notifyInterval().

QAudioOutput.start (self, QIODevice device)

Uses the device as the QIODevice to transfer data. Passing a QIODevice allows the data to be transferred without any extra code. All that is required is to open the QIODevice.

If able to successfully output audio data to the systems audio device the state() is set to QAudio.ActiveState, error() is set to QAudio.NoError and the stateChanged() signal is emitted.

If a problem occurs during this process the error() is set to QAudio.OpenError, state() is set to QAudio.StoppedState and stateChanged() signal is emitted.

In either case, the stateChanged() signal may be emitted either synchronously during execution of the start() function or asynchronously after start() has returned to the caller.

See also QIODevice.

QIODevice QAudioOutput.start (self)

Returns a pointer to the QIODevice being used to handle the data transfer. This QIODevice can be used to write() audio data directly.

If able to access the systems audio device the state() is set to QAudio.IdleState, error() is set to QAudio.NoError and the stateChanged() signal is emitted.

If a problem occurs during this process the error() is set to QAudio.OpenError, state() is set to QAudio.StoppedState and stateChanged() signal is emitted.

In either case, the stateChanged() signal may be emitted either synchronously during execution of the start() function or asynchronously after start() has returned to the caller.

See also QIODevice.

QAudio.State QAudioOutput.state (self)

Returns the state of audio processing.

QAudioOutput.stop (self)

Stops the audio output, detaching from the system resource.

Sets error() to QAudio.NoError, state() to QAudio.StoppedState and emit stateChanged() signal.

QAudioOutput.suspend (self)

Stops processing audio data, preserving buffered audio data.

Sets error() to QAudio.NoError, state() to QAudio.SuspendedState and emit stateChanged() signal.


Qt Signal Documentation

void notify ()

This is the default overload of this signal.

This signal is emitted when x ms of audio data has been processed the interval set by setNotifyInterval(x).

void stateChanged (QAudio::State)

This is the default overload of this signal.

This signal is emitted when the device state has changed. This is the current state of the audio output.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qauthenticator.html0000644000076500000240000002257512536324517021421 0ustar philstaff00000000000000 QAuthenticator Class Reference
  Home · All Classes · Modules

QAuthenticator Class Reference
[
QtNetwork module]

The QAuthenticator class provides an authentication object. More...

Methods

Special Methods

  • bool __eq__ (self, QAuthenticator other)
  • bool __ne__ (self, QAuthenticator other)

Detailed Description

The QAuthenticator class provides an authentication object.

The QAuthenticator class is usually used in the authenticationRequired() and proxyAuthenticationRequired() signals of QNetworkAccessManager and QAbstractSocket. The class provides a way to pass back the required authentication information to the socket when accessing services that require authentication.

QAuthenticator supports the following authentication methods:

  • Basic
  • NTLM version 2
  • Digest-MD5

Options

In addition to the username and password required for authentication, a QAuthenticator object can also contain additional options. The options() function can be used to query incoming options sent by the server; the setOption() function can be used to set outgoing options, to be processed by the authenticator calculation. The options accepted and provided depend on the authentication type (see method()).

The following tables list known incoming options as well as accepted outgoing options. The list of incoming options is not exhaustive, since servers may include additional information at any time. The list of outgoing options is exhaustive, however, and no unknown options will be treated or sent back to the server.

Basic

Option Direction Description
realm Incoming Contains the realm of the authentication, the same as realm()

The Basic authentication mechanism supports no outgoing options.

NTLM version 2

The NTLM authentication mechanism currently supports no incoming or outgoing options.

Digest-MD5

Option Direction Description
realm Incoming Contains the realm of the authentication, the same as realm()

The Digest-MD5 authentication mechanism supports no outgoing options.


Method Documentation

QAuthenticator.__init__ (self)

Constructs an empty authentication object

QAuthenticator.__init__ (self, QAuthenticator other)

Constructs a copy of other.

bool QAuthenticator.isNull (self)

Returns true if the authenticator is null.

QVariant QAuthenticator.option (self, QString opt)

Returns the value related to option opt if it was set by the server. See QAuthenticator#Options for more information on incoming options. If option opt isn't found, an invalid QVariant will be returned.

This function was introduced in Qt 4.7.

See also setOption(), options(), and QAuthenticator#Options.

dict-of-QString-QVariant QAuthenticator.options (self)

Returns all incoming options set in this QAuthenticator object by parsing the server reply. See QAuthenticator#Options for more information on incoming options.

This function was introduced in Qt 4.7.

See also option() and QAuthenticator#Options.

QString QAuthenticator.password (self)

returns the password used for authentication.

See also setPassword().

QString QAuthenticator.realm (self)

returns the realm requiring authentication.

QAuthenticator.setOption (self, QString opt, QVariant value)

Sets the outgoing option opt to value value. See QAuthenticator#Options for more information on outgoing options.

This function was introduced in Qt 4.7.

See also options(), option(), and QAuthenticator#Options.

QAuthenticator.setPassword (self, QString password)

Sets the password used for authentication.

See also password().

QAuthenticator.setUser (self, QString user)

Sets the user used for authentication.

See also user().

QString QAuthenticator.user (self)

returns the user used for authentication.

See also setUser().

bool QAuthenticator.__eq__ (self, QAuthenticator other)

bool QAuthenticator.__ne__ (self, QAuthenticator other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qaxcontainer.html0000644000076500000240000001750312536324470021053 0ustar philstaff00000000000000 QAxContainer Module
  Home · All Classes · Modules

QAxContainer Module

The QAxContainer module provides classes for accessing ActiveX controls and COM objects. It is only available in the commercial version of PyQt for Windows. More...


Detailed Description

The QAxContainer module provides classes for accessing ActiveX controls and COM objects. It is only available in the commercial version of PyQt for Windows.

To import the module use, for example, the following statement:

from PyQt4 import QAxContainer

The QAxContainer module provides a QWidget subclass, QAxWidget, that acts as a container for ActiveX controls, and a QObject subclass, QAxObject, that can be used to easily access non-visual COM objects.

The module consists of three classes

  1. QAxBase is an abstract class that provides an API to initialize and access a COM object or ActiveX control.
  2. QAxObject provides a QObject that wraps a COM object.
  3. QAxWidget is a QWidget that wraps an ActiveX control.

Topics:

Instantiating COM Objects

To instantiate a COM object use the QAxBase.setControl() API, or pass the name of the object directly into the constructor of the QAxBase subclass you are using.

The control can be specified in a variety of formats, but the fastest and most powerful format is to use the class ID (CLSID) of the object directly. The class ID can be prepended with information about a remote machine that the object should run on, and can include a license key for licensed controls.

Typical Error Messages

ActiveQt prints error messages to the debug output when it encounters error situations at runtime. Usually you must run your program in the debugger to see these messages (e.g. in Visual Studio's Debug output).

Requested control could not be instantiated

The control requested in QAxBase.setControl() is not installed on this system, or is not accessible for the current user.

The control might require administrator rights, or a license key. If the control is licensed, pass the license key to QAxBase.setControl as documented.

Accessing the Object API

ActiveQt provides a Qt API to the COM object, and replaces COM datatypes with Qt equivalents.

There are two ways to call APIs on the COM object:

  • Call-by-name
  • Using the native COM interfaces

Call-by-Name

Use QAxBase.dynamicCall() and QAxBase.querySubObject() as well as the QObject.setProperty() and QObject.property() APIs to call the methods and properties of the COM object through their name. Use the dumpdoc tool to get the documentation of the Qt API for any COM object and its subobjects; note that not all of the COM object's APIs might be avaiable.

See the Webbrowser example for more information.

Calling a Function Using the Native COM Interfaces

To call functions of the COM object that can not be accessed via any of the above methods it is possible to request the COM interface directly using QAxBase.queryInterface(). To get a C++ definition of the respective interface classes use the #import directive with the type library provided with the control; see your compiler manual for details.

Typical Error Messages

ActiveQt prints error messages to the debug output when it encounters error situations at runtime. Usually you must run your program in the debugger to see these messages (e.g. in Visual Studio's Debug output).

QAxBase.internalInvoke: No such method

A QAxBase.dynamicCall() failed - the function prototype did not match any function available in the object's API.

Error calling IDispatch member: Non-optional parameter missing

A QAxBase.dynamicCall() failed - the function prototype was correct, but too few parameters were provided.

Error calling IDispatch member: Type mismatch in parameter n

A QAxBase.dynamicCall() failed - the function prototype was correct, but the paramter at index n was of the wrong type and could not be coerced to the correct type.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qbasictimer.html0000644000076500000240000001174112536324471020661 0ustar philstaff00000000000000 QBasicTimer Class Reference
  Home · All Classes · Modules

QBasicTimer Class Reference
[QtCore module]

The QBasicTimer class provides timer events for objects. More...

Methods


Detailed Description

The QBasicTimer class provides timer events for objects.

This is a fast, lightweight, and low-level class used by Qt internally. We recommend using the higher-level QTimer class rather than this class if you want to use timers in your applications. Note that this timer is a repeating timer that will send subsequent timer events unless the stop() function is called.

To use this class, create a QBasicTimer, and call its start() function with a timeout interval and with a pointer to a QObject subclass. When the timer times out it will send a timer event to the QObject subclass. The timer can be stopped at any time using stop(). isActive() returns true for a timer that is running; i.e. it has been started, has not reached the timeout time, and has not been stopped. The timer's ID can be retrieved using timerId().

The Wiggly example uses QBasicTimer to repaint a widget at regular intervals.


Method Documentation

QBasicTimer.__init__ (self)

Contructs a basic timer.

See also start().

QBasicTimer.__init__ (self, QBasicTimer)

bool QBasicTimer.isActive (self)

Returns true if the timer is running and has not been stopped; otherwise returns false.

See also start() and stop().

QBasicTimer.start (self, int msec, QObject obj)

Starts (or restarts) the timer with a msec milliseconds timeout.

The given object will receive timer events.

See also stop(), isActive(), and QObject.timerEvent().

QBasicTimer.stop (self)

Stops the timer.

See also start() and isActive().

int QBasicTimer.timerId (self)

Returns the timer's ID.

See also QTimerEvent.timerId().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qbitarray.html0000644000076500000240000005122112536324471020351 0ustar philstaff00000000000000 QBitArray Class Reference
  Home · All Classes · Modules

QBitArray Class Reference
[QtCore module]

The QBitArray class provides an array of bits. More...

Methods

Special Methods


Detailed Description

The QBitArray class provides an array of bits.

A QBitArray is an array that gives access to individual bits and provides operators (AND, OR, XOR, and NOT) that work on entire arrays of bits. It uses implicit sharing (copy-on-write) to reduce memory usage and to avoid the needless copying of data.

The following code constructs a QBitArray containing 200 bits initialized to false (0):

 QBitArray ba(200);

To initialize the bits to true, either pass true as second argument to the constructor, or call fill() later on.

QBitArray uses 0-based indexes, just like C++ arrays. To access the bit at a particular index position, you can use operator[](). On non-const bit arrays, operator[]() returns a reference to a bit that can be used on the left side of an assignment. For example:

 QBitArray ba;
 ba.resize(3);
 ba[0] = true;
 ba[1] = false;
 ba[2] = true;

For technical reasons, it is more efficient to use testBit() and setBit() to access bits in the array than operator[](). For example:

 QBitArray ba(3);
 ba.setBit(0, true);
 ba.setBit(1, false);
 ba.setBit(2, true);

QBitArray supports & (AND), | (OR), ^ (XOR), ~ (NOT), as well as &=, |=, and ^=. These operators work in the same way as the built-in C++ bitwise operators of the same name. For example:

 QBitArray x(5);
 x.setBit(3, true);
 // x: [ 0, 0, 0, 1, 0 ]

 QBitArray y(5);
 y.setBit(4, true);
 // y: [ 0, 0, 0, 0, 1 ]

 x |= y;
 // x: [ 0, 0, 0, 1, 1 ]

For historical reasons, QBitArray distinguishes between a null bit array and an empty bit array. A null bit array is a bit array that is initialized using QBitArray's default constructor. An empty bit array is any bit array with size 0. A null bit array is always empty, but an empty bit array isn't necessarily null:

 QBitArray().isNull();           // returns true
 QBitArray().isEmpty();          // returns true

 QBitArray(0).isNull();          // returns false
 QBitArray(0).isEmpty();         // returns true

 QBitArray(3).isNull();          // returns false
 QBitArray(3).isEmpty();         // returns false

All functions except isNull() treat null bit arrays the same as empty bit arrays; for example, QBitArray() compares equal to QBitArray(0). We recommend that you always use isEmpty() and avoid isNull().


Method Documentation

QBitArray.__init__ (self)

Constructs an empty bit array.

See also isEmpty().

QBitArray.__init__ (self, int size, bool value = False)

Constructs a bit array containing size bits. The bits are initialized with value, which defaults to false (0).

QBitArray.__init__ (self, QBitArray other)

Constructs a copy of other.

This operation takes constant time, because QBitArray is implicitly shared. This makes returning a QBitArray from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes linear time.

See also operator=().

bool QBitArray.at (self, int i)

Returns the value of the bit at index position i.

i must be a valid index position in the bit array (i.e., 0 <= i < size()).

See also operator[]().

QBitArray.clear (self)

Clears the contents of the bit array and makes it empty.

See also resize() and isEmpty().

QBitArray.clearBit (self, int i)

Sets the bit at index position i to 0.

i must be a valid index position in the bit array (i.e., 0 <= i < size()).

See also setBit() and toggleBit().

int QBitArray.count (self)

Same as size().

int QBitArray.count (self, bool on)

If on is true, this function returns the number of 1-bits stored in the bit array; otherwise the number of 0-bits is returned.

QBitArray.detach (self)

QBitArray.fill (self, bool val, int first, int last)

Sets every bit in the bit array to value, returning true if successful; otherwise returns false. If size is different from -1 (the default), the bit array is resized to size beforehand.

Example:

 QBitArray ba(8);
 ba.fill(true);
 // ba: [ 1, 1, 1, 1, 1, 1, 1, 1 ]

 ba.fill(false, 2);
 // ba: [ 0, 0 ]

See also resize().

bool QBitArray.fill (self, bool value, int size = -1)

This is an overloaded function.

Sets bits at index positions begin up to and excluding end to value.

begin and end must be a valid index position in the bit array (i.e., 0 <= begin <= size() and 0 <= end <= size()).

bool QBitArray.isDetached (self)

bool QBitArray.isEmpty (self)

Returns true if this bit array has size 0; otherwise returns false.

See also size().

bool QBitArray.isNull (self)

Returns true if this bit array is null; otherwise returns false.

Example:

 QBitArray().isNull();           // returns true
 QBitArray(0).isNull();          // returns false
 QBitArray(3).isNull();          // returns false

Qt makes a distinction between null bit arrays and empty bit arrays for historical reasons. For most applications, what matters is whether or not a bit array contains any data, and this can be determined using isEmpty().

See also isEmpty().

QBitArray.resize (self, int size)

Resizes the bit array to size bits.

If size is greater than the current size, the bit array is extended to make it size bits with the extra bits added to the end. The new bits are initialized to false (0).

If size is less than the current size, bits are removed from the end.

See also size().

QBitArray.setBit (self, int i)

Sets the bit at index position i to 1.

i must be a valid index position in the bit array (i.e., 0 <= i < size()).

See also clearBit() and toggleBit().

QBitArray.setBit (self, int i, bool val)

This is an overloaded function.

Sets the bit at index position i to value.

int QBitArray.size (self)

Returns the number of bits stored in the bit array.

See also resize().

QBitArray.swap (self, QBitArray other)

Swaps bit array other with this bit array. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

bool QBitArray.testBit (self, int i)

Returns true if the bit at index position i is 1; otherwise returns false.

i must be a valid index position in the bit array (i.e., 0 <= i < size()).

See also setBit() and clearBit().

bool QBitArray.toggleBit (self, int i)

Inverts the value of the bit at index position i, returning the previous value of that bit as either true (if it was set) or false (if it was unset).

If the previous value was 0, the new value will be 1. If the previous value was 1, the new value will be 0.

i must be a valid index position in the bit array (i.e., 0 <= i < size()).

See also setBit() and clearBit().

QBitArray.truncate (self, int pos)

Truncates the bit array at index position pos.

If pos is beyond the end of the array, nothing happens.

See also resize().

QBitArray QBitArray.__and__ (self, QBitArray)

bool QBitArray.__eq__ (self, QBitArray a)

bool QBitArray.__getitem__ (self, int i)

int QBitArray.__hash__ (self)

QBitArray QBitArray.__iand__ (self, QBitArray)

QBitArray QBitArray.__invert__ (self)

QBitArray QBitArray.__ior__ (self, QBitArray)

QBitArray QBitArray.__ixor__ (self, QBitArray)

QBitArray.__len__ (self)

bool QBitArray.__ne__ (self, QBitArray a)

QBitArray QBitArray.__or__ (self, QBitArray)

QBitArray QBitArray.__xor__ (self, QBitArray)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qbitmap.html0000644000076500000240000002363012536324501020005 0ustar philstaff00000000000000 QBitmap Class Reference
  Home · All Classes · Modules

QBitmap Class Reference
[QtGui module]

The QBitmap class provides monochrome (1-bit depth) pixmaps. More...

Inherits QPixmap.

Methods

Static Methods

  • QBitmap fromData (QSize size, str bits, QImage.Format format = QImage.Format_MonoLSB)
  • QBitmap fromImage (QImage image, Qt.ImageConversionFlags flags = Qt.AutoColor)

Detailed Description

The QBitmap class provides monochrome (1-bit depth) pixmaps.

The QBitmap class is a monochrome off-screen paint device used mainly for creating custom QCursor and QBrush objects, constructing QRegion objects, and for setting masks for pixmaps and widgets.

QBitmap is a QPixmap subclass ensuring a depth of 1, except for null objects which have a depth of 0. If a pixmap with a depth greater than 1 is assigned to a bitmap, the bitmap will be dithered automatically.

Use the QColor objects Qt.color0 and Qt.color1 when drawing on a QBitmap object (or a QPixmap object with depth 1).

Painting with Qt.color0 sets the bitmap bits to 0, and painting with Qt.color1 sets the bits to 1. For a bitmap, 0-bits indicate background (or transparent pixels) and 1-bits indicate foreground (or opaque pixels). Use the clear() function to set all the bits to Qt.color0. Note that using the Qt.black and Qt.white colors make no sense because the QColor.pixel() value is not necessarily 0 for black and 1 for white.

The QBitmap class provides the transformed() function returning a transformed copy of the bitmap; use the QTransform argument to translate, scale, shear, and rotate the bitmap. In addition, QBitmap provides the static fromData() function which returns a bitmap constructed from the given uchar data, and the static fromImage() function returning a converted copy of a QImage object.

Just like the QPixmap class, QBitmap is optimized by the use of implicit data sharing. For more information, see the Implicit Data Sharing documentation.


Method Documentation

QBitmap.__init__ (self)

Constructs a null bitmap.

See also QPixmap.isNull().

QBitmap.__init__ (self, QPixmap)

Constructs a bitmap that is a copy of the given pixmap.

If the pixmap has a depth greater than 1, the resulting bitmap will be dithered automatically.

See also QPixmap.depth(), fromImage(), and fromData().

QBitmap.__init__ (self, int w, int h)

Constructs a bitmap with the given width and height. The pixels inside are uninitialized.

See also clear().

QBitmap.__init__ (self, QSize)

Constructs a bitmap with the given size. The pixels in the bitmap are uninitialized.

See also clear().

QBitmap.__init__ (self, QString fileName, str format = None)

Constructs a bitmap from the file specified by the given fileName. If the file does not exist, or has an unknown format, the bitmap becomes a null bitmap.

The fileName and format parameters are passed on to the QPixmap.load() function. If the file format uses more than 1 bit per pixel, the resulting bitmap will be dithered automatically.

See also QPixmap.isNull() and QImageReader.imageFormat().

QBitmap.__init__ (self, QVariant variant)

QBitmap.__init__ (self, QBitmap)

QBitmap.clear (self)

Clears the bitmap, setting all its bits to Qt.color0.

QBitmap QBitmap.fromData (QSize size, str bits, QImage.Format format = QImage.Format_MonoLSB)

Constructs a bitmap with the given size, and sets the contents to the bits supplied.

The bitmap data has to be byte aligned and provided in in the bit order specified by monoFormat. The mono format must be either QImage.Format_Mono or QImage.Format_MonoLSB. Use QImage.Format_Mono to specify data on the XBM format.

See also fromImage().

QBitmap QBitmap.fromImage (QImage image, Qt.ImageConversionFlags flags = Qt.AutoColor)

Returns a copy of the given image converted to a bitmap using the specified image conversion flags.

See also fromData().

QBitmap.swap (self, QBitmap other)

Swaps bitmap other with this bitmap. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QBitmap QBitmap.transformed (self, QMatrix)

Returns a copy of this bitmap, transformed according to the given matrix.

See also QPixmap.transformed().

QBitmap QBitmap.transformed (self, QTransform matrix)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qboxlayout.html0000644000076500000240000006426712536324501020572 0ustar philstaff00000000000000 QBoxLayout Class Reference
  Home · All Classes · Modules

QBoxLayout Class Reference
[QtGui module]

The QBoxLayout class lines up child widgets horizontally or vertically. More...

Inherits QLayout.

Inherited by QHBoxLayout and QVBoxLayout.

Types

  • enum Direction { LeftToRight, RightToLeft, TopToBottom, BottomToTop, Down, Up }

Methods


Detailed Description

The QBoxLayout class lines up child widgets horizontally or vertically.

QBoxLayout takes the space it gets (from its parent layout or from the parentWidget()), divides it up into a row of boxes, and makes each managed widget fill one box.

Horizontal box layout with five child widgets

If the QBoxLayout's orientation is Qt.Horizontal the boxes are placed in a row, with suitable sizes. Each widget (or other box) will get at least its minimum size and at most its maximum size. Any excess space is shared according to the stretch factors (more about that below).

Vertical box layout with five child widgets

If the QBoxLayout's orientation is Qt.Vertical, the boxes are placed in a column, again with suitable sizes.

The easiest way to create a QBoxLayout is to use one of the convenience classes, e.g. QHBoxLayout (for Qt.Horizontal boxes) or QVBoxLayout (for Qt.Vertical boxes). You can also use the QBoxLayout constructor directly, specifying its direction as LeftToRight, RightToLeft, TopToBottom, or BottomToTop.

If the QBoxLayout is not the top-level layout (i.e. it is not managing all of the widget's area and children), you must add it to its parent layout before you can do anything with it. The normal way to add a layout is by calling parentLayout->addLayout().

Once you have done this, you can add boxes to the QBoxLayout using one of four functions:

  • addWidget() to add a widget to the QBoxLayout and set the widget's stretch factor. (The stretch factor is along the row of boxes.)
  • addSpacing() to create an empty box; this is one of the functions you use to create nice and spacious dialogs. See below for ways to set margins.
  • addStretch() to create an empty, stretchable box.
  • addLayout() to add a box containing another QLayout to the row and set that layout's stretch factor.

Use insertWidget(), insertSpacing(), insertStretch() or insertLayout() to insert a box at a specified position in the layout.

QBoxLayout also includes two margin widths:

  • setContentsMargins() sets the width of the outer border on each side of the widget. This is the width of the reserved space along each of the QBoxLayout's four sides.
  • setSpacing() sets the width between neighboring boxes. (You can use addSpacing() to get more space at a particular spot.)

The margin default is provided by the style. The default margin most Qt styles specify is 9 for child widgets and 11 for windows. The spacing defaults to the same as the margin width for a top-level layout, or to the same as the parent layout.

To remove a widget from a layout, call removeWidget(). Calling QWidget.hide() on a widget also effectively removes the widget from the layout until QWidget.show() is called.

You will almost always want to use QVBoxLayout and QHBoxLayout rather than QBoxLayout because of their convenient constructors.


Type Documentation

QBoxLayout.Direction

This type is used to determine the direction of a box layout.

Constant Value Description
QBoxLayout.LeftToRight 0 Horizontal from left to right.
QBoxLayout.RightToLeft 1 Horizontal from right to left.
QBoxLayout.TopToBottom 2 Vertical from top to bottom.
QBoxLayout.BottomToTop 3 Vertical from bottom to top.

Method Documentation

QBoxLayout.__init__ (self, Direction direction, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QBoxLayout with direction dir and parent widget parent.

See also direction().

QBoxLayout.addItem (self, QLayoutItem)

The QLayoutItem argument has it's ownership transferred to Qt.

Reimplemented from QLayout.addItem().

QBoxLayout.addLayout (self, QLayout layout, int stretch = 0)

The layout argument has it's ownership transferred to Qt.

Adds layout to the end of the box, with serial stretch factor stretch.

See also insertLayout(), addItem(), and addWidget().

QBoxLayout.addSpacerItem (self, QSpacerItem spacerItem)

The spacerItem argument has it's ownership transferred to Qt.

Adds spacerItem to the end of this box layout.

This function was introduced in Qt 4.4.

See also addSpacing() and addStretch().

QBoxLayout.addSpacing (self, int size)

Adds a non-stretchable space (a QSpacerItem) with size size to the end of this box layout. QBoxLayout provides default margin and spacing. This function adds additional space.

See also insertSpacing(), addItem(), and QSpacerItem.

QBoxLayout.addStretch (self, int stretch = 0)

Adds a stretchable space (a QSpacerItem) with zero minimum size and stretch factor stretch to the end of this box layout.

See also insertStretch(), addItem(), and QSpacerItem.

QBoxLayout.addStrut (self, int)

Limits the perpendicular dimension of the box (e.g. height if the box is LeftToRight) to a minimum of size. Other constraints may increase the limit.

See also addItem().

QBoxLayout.addWidget (self, QWidget, int stretch = 0, Qt.Alignment alignment = 0)

Adds widget to the end of this box layout, with a stretch factor of stretch and alignment alignment.

The stretch factor applies only in the direction of the QBoxLayout, and is relative to the other boxes and widgets in this QBoxLayout. Widgets and boxes with higher stretch factors grow more.

If the stretch factor is 0 and nothing else in the QBoxLayout has a stretch factor greater than zero, the space is distributed according to the QWidget:sizePolicy() of each widget that's involved.

The alignment is specified by alignment. The default alignment is 0, which means that the widget fills the entire cell.

See also insertWidget(), addItem(), addLayout(), addStretch(), addSpacing(), and addStrut().

int QBoxLayout.count (self)

Reimplemented from QLayout.count().

Direction QBoxLayout.direction (self)

Returns the direction of the box. addWidget() and addSpacing() work in this direction; the stretch stretches in this direction.

See also setDirection(), QBoxLayout.Direction, addWidget(), and addSpacing().

Qt.Orientations QBoxLayout.expandingDirections (self)

Reimplemented from QLayoutItem.expandingDirections().

bool QBoxLayout.hasHeightForWidth (self)

Reimplemented from QLayoutItem.hasHeightForWidth().

int QBoxLayout.heightForWidth (self, int)

Reimplemented from QLayoutItem.heightForWidth().

QBoxLayout.insertItem (self, int index, QLayoutItem)

The QLayoutItem argument, if not None, causes self to be owned by Qt instead of PyQt.

Inserts item into this box layout at position index. If index is negative, the item is added at the end.

See also addItem(), insertWidget(), insertLayout(), insertStretch(), and insertSpacing().

QBoxLayout.insertLayout (self, int index, QLayout layout, int stretch = 0)

The layout argument has it's ownership transferred to Qt.

Inserts layout at position index, with stretch factor stretch. If index is negative, the layout is added at the end.

layout becomes a child of the box layout.

See also addLayout() and insertItem().

QBoxLayout.insertSpacerItem (self, int index, QSpacerItem spacerItem)

The spacerItem argument has it's ownership transferred to Qt.

Inserts spacerItem at position index, with zero minimum size and stretch factor. If index is negative the space is added at the end.

This function was introduced in Qt 4.4.

See also addSpacerItem(), insertStretch(), and insertSpacing().

QBoxLayout.insertSpacing (self, int index, int size)

Inserts a non-stretchable space (a QSpacerItem) at position index, with size size. If index is negative the space is added at the end.

The box layout has default margin and spacing. This function adds additional space.

See also addSpacing(), insertItem(), and QSpacerItem.

QBoxLayout.insertStretch (self, int index, int stretch = 0)

Inserts a stretchable space (a QSpacerItem) at position index, with zero minimum size and stretch factor stretch. If index is negative the space is added at the end.

See also addStretch(), insertItem(), and QSpacerItem.

QBoxLayout.insertWidget (self, int index, QWidget widget, int stretch = 0, Qt.Alignment alignment = 0)

Inserts widget at position index, with stretch factor stretch and alignment alignment. If index is negative, the widget is added at the end.

The stretch factor applies only in the direction of the QBoxLayout, and is relative to the other boxes and widgets in this QBoxLayout. Widgets and boxes with higher stretch factors grow more.

If the stretch factor is 0 and nothing else in the QBoxLayout has a stretch factor greater than zero, the space is distributed according to the QWidget:sizePolicy() of each widget that's involved.

The alignment is specified by alignment. The default alignment is 0, which means that the widget fills the entire cell.

See also addWidget() and insertItem().

QBoxLayout.invalidate (self)

Reimplemented from QLayoutItem.invalidate().

Resets cached information.

QLayoutItem QBoxLayout.itemAt (self, int)

Reimplemented from QLayout.itemAt().

QSize QBoxLayout.maximumSize (self)

Reimplemented from QLayoutItem.maximumSize().

int QBoxLayout.minimumHeightForWidth (self, int)

Reimplemented from QLayoutItem.minimumHeightForWidth().

QSize QBoxLayout.minimumSize (self)

Reimplemented from QLayoutItem.minimumSize().

QBoxLayout.setDirection (self, Direction)

Sets the direction of this layout to direction.

See also direction().

QBoxLayout.setGeometry (self, QRect)

Reimplemented from QLayoutItem.setGeometry().

QBoxLayout.setSpacing (self, int spacing)

Reimplements QLayout.setSpacing(). Sets the spacing property to spacing.

See also QLayout.setSpacing() and spacing().

QBoxLayout.setStretch (self, int index, int stretch)

Sets the stretch factor at position index. to stretch.

This function was introduced in Qt 4.5.

See also stretch().

bool QBoxLayout.setStretchFactor (self, QWidget w, int stretch)

Sets the stretch factor for widget to stretch and returns true if widget is found in this layout (not including child layouts); otherwise returns false.

See also setAlignment().

bool QBoxLayout.setStretchFactor (self, QLayout l, int stretch)

This is an overloaded function.

Sets the stretch factor for the layout layout to stretch and returns true if layout is found in this layout (not including child layouts); otherwise returns false.

QSize QBoxLayout.sizeHint (self)

Reimplemented from QLayoutItem.sizeHint().

int QBoxLayout.spacing (self)

Reimplements QLayout.spacing(). If the spacing property is valid, that value is returned. Otherwise, a value for the spacing property is computed and returned. Since layout spacing in a widget is style dependent, if the parent is a widget, it queries the style for the (horizontal or vertical) spacing of the layout. Otherwise, the parent is a layout, and it queries the parent layout for the spacing().

See also QLayout.spacing() and setSpacing().

int QBoxLayout.stretch (self, int index)

Returns the stretch factor at position index.

This function was introduced in Qt 4.5.

See also setStretch().

QLayoutItem QBoxLayout.takeAt (self, int)

The QLayoutItem result

Reimplemented from QLayout.takeAt().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qbrush.html0000644000076500000240000005346612536324501017666 0ustar philstaff00000000000000 QBrush Class Reference
  Home · All Classes · Modules

QBrush Class Reference
[QtGui module]

The QBrush class defines the fill pattern of shapes drawn by QPainter. More...

Methods

Special Methods


Detailed Description

A QColor or a QGradient may be used whenever a QBrush is expected.

The QBrush class defines the fill pattern of shapes drawn by QPainter.

A brush has a style, a color, a gradient and a texture.

The brush style() defines the fill pattern using the Qt.BrushStyle enum. The default brush style is Qt.NoBrush (depending on how you construct a brush). This style tells the painter to not fill shapes. The standard style for filling is Qt.SolidPattern. The style can be set when the brush is created using the appropriate constructor, and in addition the setStyle() function provides means for altering the style once the brush is constructed.

Brush Styles

The brush color() defines the color of the fill pattern. The color can either be one of Qt's predefined colors, Qt.GlobalColor, or any other custom QColor. The currently set color can be retrieved and altered using the color() and setColor() functions, respectively.

The gradient() defines the gradient fill used when the current style is either Qt.LinearGradientPattern, Qt.RadialGradientPattern or Qt.ConicalGradientPattern. Gradient brushes are created by giving a QGradient as a constructor argument when creating the QBrush. Qt provides three different gradients: QLinearGradient, QConicalGradient, and QRadialGradient - all of which inherit QGradient.

     QRadialGradient gradient(50, 50, 50, 50, 50);
     gradient.setColorAt(0, QColor.fromRgbF(0, 1, 0, 1));
     gradient.setColorAt(1, QColor.fromRgbF(0, 0, 0, 0));

     QBrush brush(gradient);

The texture() defines the pixmap used when the current style is Qt.TexturePattern. You can create a brush with a texture by providing the pixmap when the brush is created or by using setTexture().

Note that applying setTexture() makes style() == Qt.TexturePattern, regardless of previous style settings. Also, calling setColor() will not make a difference if the style is a gradient. The same is the case if the style is Qt.TexturePattern style unless the current texture is a QBitmap.

The isOpaque() function returns true if the brush is fully opaque otherwise false. A brush is considered opaque if:

  • The alpha component of the color() is 255.
  • Its texture() does not have an alpha channel and is not a QBitmap.
  • The colors in the gradient() all have an alpha component that is 255.
Outlines To specify the style and color of lines and outlines, use the QPainter's pen combined with Qt.PenStyle and Qt.GlobalColor:
 QPainter painter(this);

 painter.setBrush(Qt.cyan);
 painter.setPen(Qt.darkCyan);
 painter.drawRect(0, 0, 100,100);

 painter.setBrush(Qt.NoBrush);
 painter.setPen(Qt.darkGreen);
 painter.drawRect(40, 40, 100, 100);

Note that, by default, QPainter renders the outline (using the currently set pen) when drawing shapes. Use painter.setPen(Qt.NoPen) to disable this behavior.

For more information about painting in general, see the Paint System.


Method Documentation

QBrush.__init__ (self)

Constructs a default black brush with the style Qt.NoBrush (i.e. this brush will not fill shapes).

QBrush.__init__ (self, Qt.BrushStyle bs)

Constructs a black brush with the given style.

See also setStyle().

QBrush.__init__ (self, QColor color, Qt.BrushStyle style = Qt.SolidPattern)

Constructs a brush with the given color and style.

See also setColor() and setStyle().

QBrush.__init__ (self, Qt.GlobalColor color, Qt.BrushStyle style = Qt.SolidPattern)

Constructs a brush with the given color and style.

See also setColor() and setStyle().

QBrush.__init__ (self, QColor color, QPixmap pixmap)

Constructs a brush with the given color and the custom pattern stored in pixmap.

The style is set to Qt.TexturePattern. The color will only have an effect for QBitmaps.

See also setColor() and setPixmap().

QBrush.__init__ (self, Qt.GlobalColor color, QPixmap pixmap)

Constructs a brush with the given color and the custom pattern stored in pixmap.

The style is set to Qt.TexturePattern. The color will only have an effect for QBitmaps.

See also setColor() and setPixmap().

QBrush.__init__ (self, QPixmap pixmap)

Constructs a brush with a black color and a texture set to the given pixmap. The style is set to Qt.TexturePattern.

See also setTexture().

QBrush.__init__ (self, QImage image)

Constructs a brush with a black color and a texture set to the given image. The style is set to Qt.TexturePattern.

See also setTextureImage().

QBrush.__init__ (self, QGradient gradient)

Constructs a copy of other.

QBrush.__init__ (self, QBrush brush)

Constructs a brush based on the given gradient.

The brush style is set to the corresponding gradient style (either Qt.LinearGradientPattern, Qt.RadialGradientPattern or Qt.ConicalGradientPattern).

QBrush.__init__ (self, QVariant variant)

QColor QBrush.color (self)

Returns the brush color.

See also setColor().

QGradient QBrush.gradient (self)

Returns the gradient describing this brush.

bool QBrush.isOpaque (self)

Returns true if the brush is fully opaque otherwise false. A brush is considered opaque if:

QMatrix QBrush.matrix (self)

Returns the current transformation matrix for the brush.

This function was introduced in Qt 4.2.

See also setMatrix().

QBrush.setColor (self, QColor color)

Sets the brush color to the given color.

Note that calling setColor() will not make a difference if the style is a gradient. The same is the case if the style is Qt.TexturePattern style unless the current texture is a QBitmap.

See also color().

QBrush.setColor (self, Qt.GlobalColor acolor)

This is an overloaded function.

Sets the brush color to the given color.

QBrush.setMatrix (self, QMatrix mat)

Sets matrix as an explicit transformation matrix on the current brush. The brush transformation matrix is merged with QPainter transformation matrix to produce the final result.

This function was introduced in Qt 4.2.

See also matrix().

QBrush.setStyle (self, Qt.BrushStyle)

Sets the brush style to style.

See also style().

QBrush.setTexture (self, QPixmap pixmap)

Sets the brush pixmap to pixmap. The style is set to Qt.TexturePattern.

The current brush color will only have an effect for monochrome pixmaps, i.e. for QPixmap.depth() == 1 (QBitmaps).

See also texture().

QBrush.setTextureImage (self, QImage image)

Sets the brush image to image. The style is set to Qt.TexturePattern.

Note the current brush color will not have any affect on monochrome images, as opposed to calling setTexture() with a QBitmap. If you want to change the color of monochrome image brushes, either convert the image to QBitmap with QBitmap.fromImage() and set the resulting QBitmap as a texture, or change the entries in the color table for the image.

This function was introduced in Qt 4.2.

See also textureImage() and setTexture().

QBrush.setTransform (self, QTransform)

Sets matrix as an explicit transformation matrix on the current brush. The brush transformation matrix is merged with QPainter transformation matrix to produce the final result.

This function was introduced in Qt 4.3.

See also transform().

Qt.BrushStyle QBrush.style (self)

Returns the brush style.

See also setStyle().

QBrush.swap (self, QBrush other)

Swaps brush other with this brush. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QPixmap QBrush.texture (self)

Returns the custom brush pattern, or a null pixmap if no custom brush pattern has been set.

See also setTexture().

QImage QBrush.textureImage (self)

Returns the custom brush pattern, or a null image if no custom brush pattern has been set.

If the texture was set as a QPixmap it will be converted to a QImage.

This function was introduced in Qt 4.2.

See also setTextureImage().

QTransform QBrush.transform (self)

Returns the current transformation matrix for the brush.

This function was introduced in Qt 4.3.

See also setTransform().

bool QBrush.__eq__ (self, QBrush b)

bool QBrush.__ne__ (self, QBrush b)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qbuffer.html0000644000076500000240000003777412536324471020026 0ustar philstaff00000000000000 QBuffer Class Reference
  Home · All Classes · Modules

QBuffer Class Reference
[QtCore module]

The QBuffer class provides a QIODevice interface for a QByteArray. More...

Inherits QIODevice.

Methods


Detailed Description

The QBuffer class provides a QIODevice interface for a QByteArray.

QBuffer allows you to access a QByteArray using the QIODevice interface. The QByteArray is treated just as a standard random-accessed file. Example:

     QBuffer buffer;
     char ch;

     buffer.open(QBuffer.ReadWrite);
     buffer.write("Qt rocks!");
     buffer.seek(0);
     buffer.getChar(&ch);  // ch == 'Q'
     buffer.getChar(&ch);  // ch == 't'
     buffer.getChar(&ch);  // ch == ' '
     buffer.getChar(&ch);  // ch == 'r'

By default, an internal QByteArray buffer is created for you when you create a QBuffer. You can access this buffer directly by calling buffer(). You can also use QBuffer with an existing QByteArray by calling setBuffer(), or by passing your array to QBuffer's constructor.

Call open() to open the buffer. Then call write() or putChar() to write to the buffer, and read(), readLine(), readAll(), or getChar() to read from it. size() returns the current size of the buffer, and you can seek to arbitrary positions in the buffer by calling seek(). When you are done with accessing the buffer, call close().

The following code snippet shows how to write data to a QByteArray using QDataStream and QBuffer:

     QByteArray byteArray;
     QBuffer buffer(&byteArray);
     buffer.open(QIODevice.WriteOnly);

     QDataStream out(&buffer);
     out << QApplication.palette();

Effectively, we convert the application's QPalette into a byte array. Here's how to read the data from the QByteArray:

     QPalette palette;
     QBuffer buffer(&byteArray);
     buffer.open(QIODevice.ReadOnly);

     QDataStream in(&buffer);
     in >> palette;

QTextStream and QDataStream also provide convenience constructors that take a QByteArray and that create a QBuffer behind the scenes.

QBuffer emits readyRead() when new data has arrived in the buffer. By connecting to this signal, you can use QBuffer to store temporary data before processing it. For example, you can pass the buffer to QFtp when downloading a file from an FTP server. Whenever a new payload of data has been downloaded, readyRead() is emitted, and you can process the data that just arrived. QBuffer also emits bytesWritten() every time new data has been written to the buffer.


Method Documentation

QBuffer.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty buffer with the given parent. You can call setData() to fill the buffer with data, or you can open it in write mode and use write().

See also open().

QBuffer.__init__ (self, QByteArray byteArray, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QBuffer that uses the QByteArray pointed to by byteArray as its internal buffer, and with the given parent. The caller is responsible for ensuring that byteArray remains valid until the QBuffer is destroyed, or until setBuffer() is called to change the buffer. QBuffer doesn't take ownership of the QByteArray.

If you open the buffer in write-only mode or read-write mode and write something into the QBuffer, byteArray will be modified.

Example:

     QByteArray byteArray("abc");
     QBuffer buffer(&byteArray);
     buffer.open(QIODevice.WriteOnly);
     buffer.seek(3);
     buffer.write("def", 3);
     buffer.close();
     // byteArray == "abcdef"

See also open(), setBuffer(), and setData().

bool QBuffer.atEnd (self)

Reimplemented from QIODevice.atEnd().

QByteArray QBuffer.buffer (self)

Returns a reference to the QBuffer's internal buffer. You can use it to modify the QByteArray behind the QBuffer's back.

See also setBuffer() and data().

bool QBuffer.canReadLine (self)

Reimplemented from QIODevice.canReadLine().

QBuffer.close (self)

Reimplemented from QIODevice.close().

QBuffer.connectNotify (self, SIGNAL())

QByteArray QBuffer.data (self)

Returns the data contained in the buffer.

This is the same as buffer().

See also setData() and setBuffer().

QBuffer.disconnectNotify (self, SIGNAL())

bool QBuffer.open (self, QIODevice.OpenMode openMode)

Reimplemented from QIODevice.open().

int QBuffer.pos (self)

Reimplemented from QIODevice.pos().

str QBuffer.readData (self, int maxlen)

Reimplemented from QIODevice.readData().

bool QBuffer.seek (self, int off)

Reimplemented from QIODevice.seek().

QBuffer.setBuffer (self, QByteArray a)

Makes QBuffer uses the QByteArray pointed to by byteArray as its internal buffer. The caller is responsible for ensuring that byteArray remains valid until the QBuffer is destroyed, or until setBuffer() is called to change the buffer. QBuffer doesn't take ownership of the QByteArray.

Does nothing if isOpen() is true.

If you open the buffer in write-only mode or read-write mode and write something into the QBuffer, byteArray will be modified.

Example:

     QByteArray byteArray("abc");
     QBuffer buffer;
     buffer.setBuffer(&byteArray);
     buffer.open(QIODevice.WriteOnly);
     buffer.seek(3);
     buffer.write("def", 3);
     buffer.close();
     // byteArray == "abcdef"

If byteArray is 0, the buffer creates its own internal QByteArray to work on. This byte array is initially empty.

See also buffer(), setData(), and open().

QBuffer.setData (self, QByteArray data)

Sets the contents of the internal buffer to be data. This is the same as assigning data to buffer().

Does nothing if isOpen() is true.

See also data() and setBuffer().

QBuffer.setData (self, str adata)

This is an overloaded function.

Sets the contents of the internal buffer to be the first size bytes of data.

int QBuffer.size (self)

Reimplemented from QIODevice.size().

int QBuffer.writeData (self, str data)

Reimplemented from QIODevice.writeData().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qbuttongroup.html0000644000076500000240000003036112536324501021120 0ustar philstaff00000000000000 QButtonGroup Class Reference
  Home · All Classes · Modules

QButtonGroup Class Reference
[QtGui module]

The QButtonGroup class provides a container to organize groups of button widgets. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QButtonGroup class provides a container to organize groups of button widgets.

QButtonGroup provides an abstract container into which button widgets can be placed. It does not provide a visual representation of this container (see QGroupBox for a container widget), but instead manages the states of each of the buttons in the group.

An exclusive button group switches off all checkable (toggle) buttons except the one that was clicked. By default, a button group is exclusive. The buttons in a button group are usually checkable QPushButton's, QCheckBoxes (normally for non-exclusive button groups), or QRadioButtons. If you create an exclusive button group, you should ensure that one of the buttons in the group is initially checked; otherwise, the group will initially be in a state where no buttons are checked.

A button is added to the group with addButton(). It can be removed from the group with removeButton(). If the group is exclusive, the currently checked button is available as checkedButton(). If a button is clicked the buttonClicked() signal is emitted. For a checkable button in an exclusive group this means that the button was checked. The list of buttons in the group is returned by buttons().

In addition, QButtonGroup can map between integers and buttons. You can assign an integer id to a button with setId(), and retrieve it with id(). The id of the currently checked button is available with checkedId(), and there is an overloaded signal buttonClicked() which emits the id of the button. The id -1 is reserved by QButtonGroup to mean "no such button". The purpose of the mapping mechanism is to simplify the representation of enum values in a user interface.


Method Documentation

QButtonGroup.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new, empty button group with the given parent.

See also addButton() and setExclusive().

QButtonGroup.addButton (self, QAbstractButton)

Adds the given button to the end of the group's internal list of buttons. An id will be assigned to the button by this QButtonGroup. Automatically assigned ids are guaranteed to be negative, starting with -2. If you are also assigning your own ids, use positive values to avoid conflicts.

See also removeButton() and buttons().

QButtonGroup.addButton (self, QAbstractButton, int id)

Adds the given button to the button group, with the given id. It is recommended to assign only positive ids.

See also removeButton() and buttons().

QAbstractButton QButtonGroup.button (self, int id)

Returns the button with the specified id, or 0 if no such button exists.

This function was introduced in Qt 4.1.

list-of-QAbstractButton QButtonGroup.buttons (self)

Returns the list of this groups's buttons. This may be empty.

See also addButton() and removeButton().

QAbstractButton QButtonGroup.checkedButton (self)

Returns the button group's checked button, or 0 if no buttons are checked.

See also buttonClicked().

int QButtonGroup.checkedId (self)

Returns the id of the checkedButton(), or -1 if no button is checked.

This function was introduced in Qt 4.1.

See also setId().

bool QButtonGroup.exclusive (self)

int QButtonGroup.id (self, QAbstractButton button)

Returns the id for the specified button, or -1 if no such button exists.

This function was introduced in Qt 4.1.

See also setId().

QButtonGroup.removeButton (self, QAbstractButton)

Removes the given button from the button group.

See also addButton() and buttons().

QButtonGroup.setExclusive (self, bool)

QButtonGroup.setId (self, QAbstractButton button, int id)

Sets the id for the specified button. Note that id can not be -1.

This function was introduced in Qt 4.1.

See also id().


Qt Signal Documentation

void buttonClicked (QAbstractButton*)

This is the default overload of this signal.

This signal is emitted when the given button is clicked. A button is clicked when it is first pressed and then released, when its shortcut key is typed, or programmatically when QAbstractButton.click() or QAbstractButton.animateClick() is called.

See also checkedButton() and QAbstractButton.clicked().

void buttonClicked (int)

This signal is emitted when a button with the given id is clicked.

See also checkedButton() and QAbstractButton.clicked().

void buttonPressed (QAbstractButton*)

This is the default overload of this signal.

This signal is emitted when the given button is pressed down.

This function was introduced in Qt 4.2.

See also QAbstractButton.pressed().

void buttonPressed (int)

This signal is emitted when a button with the given id is pressed down.

This function was introduced in Qt 4.2.

See also QAbstractButton.pressed().

void buttonReleased (QAbstractButton*)

This is the default overload of this signal.

This signal is emitted when the given button is released.

This function was introduced in Qt 4.2.

See also QAbstractButton.released().

void buttonReleased (int)

This signal is emitted when a button with the given id is released.

This function was introduced in Qt 4.2.

See also QAbstractButton.released().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qbytearray.html0000644000076500000240000027560412536324471020553 0ustar philstaff00000000000000 QByteArray Class Reference
  Home · All Classes · Modules

QByteArray Class Reference
[QtCore module]

The QByteArray class provides an array of bytes. More...

Methods

  • __init__ (self)
  • __init__ (self, int size, str c)
  • __init__ (self, QByteArray a)
  • QByteArray append (self, QByteArray a)
  • QByteArray append (self, QString s)
  • str at (self, int i)
  • int capacity (self)
  • chop (self, int n)
  • clear (self)
  • bool contains (self, QByteArray a)
  • int count (self, QByteArray a)
  • int count (self)
  • str data (self)
  • bool endsWith (self, QByteArray a)
  • QByteArray fill (self, str ch, int size = -1)
  • int indexOf (self, QByteArray ba, int from = 0)
  • int indexOf (self, QString str, int from = 0)
  • QByteArray insert (self, int i, QByteArray a)
  • QByteArray insert (self, int i, QString s)
  • bool isEmpty (self)
  • bool isNull (self)
  • int lastIndexOf (self, QByteArray ba, int from = -1)
  • int lastIndexOf (self, QString str, int from = -1)
  • QByteArray left (self, int len)
  • QByteArray leftJustified (self, int width, str fill = ' ', bool truncate = False)
  • int length (self)
  • QByteArray mid (self, int pos, int length = -1)
  • QByteArray prepend (self, QByteArray a)
  • push_back (self, QByteArray a)
  • push_front (self, QByteArray a)
  • QByteArray remove (self, int index, int len)
  • QByteArray repeated (self, int times)
  • QByteArray replace (self, int index, int len, QByteArray s)
  • QByteArray replace (self, QByteArray before, QByteArray after)
  • QByteArray replace (self, QString before, QByteArray after)
  • reserve (self, int size)
  • resize (self, int size)
  • QByteArray right (self, int len)
  • QByteArray rightJustified (self, int width, str fill = ' ', bool truncate = False)
  • QByteArray setNum (self, int n, int base = 10)
  • QByteArray setNum (self, float n, str format = 'g', int precision = 6)
  • QByteArray setNum (self, int n, int base = 10)
  • QByteArray setNum (self, int n, int base = 10)
  • QByteArray simplified (self)
  • int size (self)
  • list-of-QByteArray split (self, str sep)
  • squeeze (self)
  • bool startsWith (self, QByteArray a)
  • swap (self, QByteArray other)
  • QByteArray toBase64 (self)
  • (float, bool ok) toDouble (self)
  • (float, bool ok) toFloat (self)
  • QByteArray toHex (self)
  • (int, bool ok) toInt (self, int base = 10)
  • (int, bool ok) toLong (self, int base = 10)
  • (int, bool ok) toLongLong (self, int base = 10)
  • QByteArray toLower (self)
  • QByteArray toPercentEncoding (self, QByteArray exclude = QByteArray(), QByteArray include = QByteArray(), str percent = '%')
  • (int, bool ok) toShort (self, int base = 10)
  • (int, bool ok) toUInt (self, int base = 10)
  • (int, bool ok) toULong (self, int base = 10)
  • (int, bool ok) toULongLong (self, int base = 10)
  • QByteArray toUpper (self)
  • (int, bool ok) toUShort (self, int base = 10)
  • QByteArray trimmed (self)
  • truncate (self, int pos)

Static Methods

  • QByteArray fromBase64 (QByteArray base64)
  • QByteArray fromHex (QByteArray hexEncoded)
  • QByteArray fromPercentEncoding (QByteArray input, str percent = '%')
  • QByteArray fromRawData (str)
  • QByteArray number (int n, int base = 10)
  • QByteArray number (float n, str format = 'g', int precision = 6)
  • QByteArray number (int n, int base = 10)
  • QByteArray number (int n, int base = 10)

Special Methods


Detailed Description

This class can be pickled.

A Python string object may be used whenever a QByteArray is expected.

The QByteArray class provides an array of bytes.

QByteArray can be used to store both raw bytes (including '\0's) and traditional 8-bit '\0'-terminated strings. Using QByteArray is much more convenient than using const char *. Behind the scenes, it always ensures that the data is followed by a '\0' terminator, and uses implicit sharing (copy-on-write) to reduce memory usage and avoid needless copying of data.

In addition to QByteArray, Qt also provides the QString class to store string data. For most purposes, QString is the class you want to use. It stores 16-bit Unicode characters, making it easy to store non-ASCII/non-Latin-1 characters in your application. Furthermore, QString is used throughout in the Qt API. The two main cases where QByteArray is appropriate are when you need to store raw binary data, and when memory conservation is critical (e.g., with Qt for Embedded Linux).

One way to initialize a QByteArray is simply to pass a const char * to its constructor. For example, the following code creates a byte array of size 5 containing the data "Hello":

 QByteArray ba("Hello");

Although the size() is 5, the byte array also maintains an extra '\0' character at the end so that if a function is used that asks for a pointer to the underlying data (e.g. a call to data()), the data pointed to is guaranteed to be '\0'-terminated.

QByteArray makes a deep copy of the const char * data, so you can modify it later without experiencing side effects. (If for performance reasons you don't want to take a deep copy of the character data, use QByteArray.fromRawData() instead.)

Another approach is to set the size of the array using resize() and to initialize the data byte per byte. QByteArray uses 0-based indexes, just like C++ arrays. To access the byte at a particular index position, you can use operator[](). On non-const byte arrays, operator[]() returns a reference to a byte that can be used on the left side of an assignment. For example:

 QByteArray ba;
 ba.resize(5);
 ba[0] = 0x3c;
 ba[1] = 0xb8;
 ba[2] = 0x64;
 ba[3] = 0x18;
 ba[4] = 0xca;

For read-only access, an alternative syntax is to use at():

 for (int i = 0; i < ba.size(); ++i) {
     if (ba.at(i) >= 'a' && ba.at(i) <= 'f')
         cout << "Found character in range [a-f]" << endl;
 }

at() can be faster than operator[](), because it never causes a deep copy to occur.

To extract many bytes at a time, use left(), right(), or mid().

A QByteArray can embed '\0' bytes. The size() function always returns the size of the whole array, including embedded '\0' bytes. If you want to obtain the length of the data up to and excluding the first '\0' character, call qstrlen() on the byte array.

After a call to resize(), newly allocated bytes have undefined values. To set all the bytes to a particular value, call fill().

To obtain a pointer to the actual character data, call data() or constData(). These functions return a pointer to the beginning of the data. The pointer is guaranteed to remain valid until a non-const function is called on the QByteArray. It is also guaranteed that the data ends with a '\0' byte unless the QByteArray was created from a raw data. This '\0' byte is automatically provided by QByteArray and is not counted in size().

QByteArray provides the following basic functions for modifying the byte data: append(), prepend(), insert(), replace(), and remove(). For example:

 QByteArray x("and");
 x.prepend("rock ");         // x == "rock and"
 x.append(" roll");          // x == "rock and roll"
 x.replace(5, 3, "&");       // x == "rock & roll"

The replace() and remove() functions' first two arguments are the position from which to start erasing and the number of bytes that should be erased.

When you append() data to a non-empty array, the array will be reallocated and the new data copied to it. You can avoid this behavior by calling reserve(), which preallocates a certain amount of memory. You can also call capacity() to find out how much memory QByteArray actually allocated. Data appended to an empty array is not copied.

A frequent requirement is to remove whitespace characters from a byte array ('\n', '\t', ' ', etc.). If you want to remove whitespace from both ends of a QByteArray, use trimmed(). If you want to remove whitespace from both ends and replace multiple consecutive whitespaces with a single space character within the byte array, use simplified().

If you want to find all occurrences of a particular character or substring in a QByteArray, use indexOf() or lastIndexOf(). The former searches forward starting from a given index position, the latter searches backward. Both return the index position of the character or substring if they find it; otherwise, they return -1. For example, here's a typical loop that finds all occurrences of a particular substring:

 QByteArray ba("We must be <b>bold</b>, very <b>bold</b>");
 int j = 0;
 while ((j = ba.indexOf("<b>", j)) != -1) {
     cout << "Found <b> tag at index position " << j << endl;
     ++j;
 }

If you simply want to check whether a QByteArray contains a particular character or substring, use contains(). If you want to find out how many times a particular character or substring occurs in the byte array, use count(). If you want to replace all occurrences of a particular value with another, use one of the two-parameter replace() overloads.

QByteArrays can be compared using overloaded operators such as operator<(), operator<=(), operator==(), operator>=(), and so on. The comparison is based exclusively on the numeric values of the characters and is very fast, but is not what a human would expect. QString.localeAwareCompare() is a better choice for sorting user-interface strings.

For historical reasons, QByteArray distinguishes between a null byte array and an empty byte array. A null byte array is a byte array that is initialized using QByteArray's default constructor or by passing (const char *)0 to the constructor. An empty byte array is any byte array with size 0. A null byte array is always empty, but an empty byte array isn't necessarily null:

 QByteArray().isNull();          // returns true
 QByteArray().isEmpty();         // returns true

 QByteArray("").isNull();        // returns false
 QByteArray("").isEmpty();       // returns true

 QByteArray("abc").isNull();     // returns false
 QByteArray("abc").isEmpty();    // returns false

All functions except isNull() treat null byte arrays the same as empty byte arrays. For example, data() returns a pointer to a '\0' character for a null byte array (not a null pointer), and QByteArray() compares equal to QByteArray(""). We recommend that you always use isEmpty() and avoid isNull().

Notes on Locale

Number-String Conversions

Functions that perform conversions between numeric data types and strings are performed in the C locale, irrespective of the user's locale settings. Use QString to perform locale-aware conversions between numbers and strings.

8-bit Character Comparisons

In QByteArray, the notion of uppercase and lowercase and of which character is greater than or less than another character is locale dependent. This affects functions that support a case insensitive option or that compare or lowercase or uppercase their arguments. Case insensitive operations and comparisons will be accurate if both strings contain only ASCII characters. (If $LC_CTYPE is set, most Unix systems do "the right thing".) Functions that this affects include contains(), indexOf(), lastIndexOf(), operator<(), operator<=(), operator>(), operator>=(), toLower() and toUpper().

This issue does not apply to QStrings since they represent characters using Unicode.


Method Documentation

QByteArray.__init__ (self)

Constructs an empty byte array.

See also isEmpty().

QByteArray.__init__ (self, int size, str c)

Constructs a byte array initialized with the string str.

QByteArray makes a deep copy of the string data.

QByteArray.__init__ (self, QByteArray a)

Constructs a byte array containing the first size bytes of array data.

If data is 0, a null byte array is constructed.

QByteArray makes a deep copy of the string data.

See also fromRawData().

QByteArray QByteArray.append (self, QByteArray a)

Appends the byte array ba onto the end of this byte array.

Example:

 QByteArray x("free");
 QByteArray y("dom");
 x.append(y);
 // x == "freedom"

This is the same as insert(size(), ba).

Note: QByteArray is an implicitly shared class. Consequently, if this is an empty QByteArray, then this will just share the data held in ba. In this case, no copying of data is done, taking constant time. If a shared instance is modified, it will be copied (copy-on-write), taking linear time.

If this is not an empty QByteArray, a deep copy of the data is performed, taking linear time.

This operation typically does not suffer from allocation overhead, because QByteArray preallocates extra space at the end of the data so that it may grow without reallocating for each append operation.

See also operator+=(), prepend(), and insert().

QByteArray QByteArray.append (self, QString s)

This is an overloaded function.

Appends the string str to this byte array. The Unicode data is converted into 8-bit characters using QString.toAscii().

If the QString contains non-ASCII Unicode characters, using this function can lead to loss of information. You can disable this function by defining QT_NO_CAST_TO_ASCII when you compile your applications. You then need to call QString.toAscii() (or QString.toLatin1() or QString.toUtf8() or QString.toLocal8Bit()) explicitly if you want to convert the data to const char *.

str QByteArray.at (self, int i)

Returns the character at index position i in the byte array.

i must be a valid index position in the byte array (i.e., 0 <= i < size()).

See also operator[]().

int QByteArray.capacity (self)

Returns the maximum number of bytes that can be stored in the byte array without forcing a reallocation.

The sole purpose of this function is to provide a means of fine tuning QByteArray's memory usage. In general, you will rarely ever need to call this function. If you want to know how many bytes are in the byte array, call size().

See also reserve() and squeeze().

QByteArray.chop (self, int n)

Removes n bytes from the end of the byte array.

If n is greater than size(), the result is an empty byte array.

Example:

 QByteArray ba("STARTTLS\r\n");
 ba.chop(2);                 // ba == "STARTTLS"

See also truncate(), resize(), and left().

QByteArray.clear (self)

Clears the contents of the byte array and makes it empty.

See also resize() and isEmpty().

bool QByteArray.contains (self, QByteArray a)

Returns true if the byte array contains an occurrence of the byte array ba; otherwise returns false.

See also indexOf() and count().

int QByteArray.count (self, QByteArray a)

Returns the number of (potentially overlapping) occurrences of byte array ba in this byte array.

See also contains() and indexOf().

int QByteArray.count (self)

This is an overloaded function.

Returns the number of (potentially overlapping) occurrences of string str in the byte array.

str QByteArray.data (self)

Returns a pointer to the data stored in the byte array. The pointer can be used to access and modify the bytes that compose the array. The data is '\0'-terminated, i.e. the number of bytes in the returned character string is size() + 1 for the '\0' terminator.

Example:

 QByteArray ba("Hello world");
 char *data = ba.data();
 while (*data) {
     cout << "[" << *data << "]" << endl;
     ++data;
 }

The pointer remains valid as long as the byte array isn't reallocated or destroyed. For read-only access, constData() is faster because it never causes a deep copy to occur.

This function is mostly useful to pass a byte array to a function that accepts a const char *.

The following example makes a copy of the char* returned by data(), but it will corrupt the heap and cause a crash because it does not allocate a byte for the '\0' at the end:

 QString tmp = "test";
 QByteArray text = tmp.toLocal8Bit();
 char *data = new char[text.size()]
 strcpy(data, text.data());
 delete [] data;

This one allocates the correct amount of space:

 QString tmp = "test";
 QByteArray text = tmp.toLocal8Bit();
 char *data = new char[text.size() + 1]
 strcpy(data, text.data());
 delete [] data;

Note: A QByteArray can store any byte values including '\0's, but most functions that take char * arguments assume that the data ends at the first '\0' they encounter.

See also constData() and operator[]().

bool QByteArray.endsWith (self, QByteArray a)

Returns true if this byte array ends with byte array ba; otherwise returns false.

Example:

 QByteArray url("http://qt.nokia.com/index.html");
 if (url.endsWith(".html"))
     ...

See also startsWith() and right().

QByteArray QByteArray.fill (self, str ch, int size = -1)

Sets every byte in the byte array to character ch. If size is different from -1 (the default), the byte array is resized to size size beforehand.

Example:

 QByteArray ba("Istambul");
 ba.fill('o');
 // ba == "oooooooo"

 ba.fill('X', 2);
 // ba == "XX"

See also resize().

QByteArray QByteArray.fromBase64 (QByteArray base64)

Returns a decoded copy of the Base64 array base64. Input is not checked for validity; invalid characters in the input are skipped, enabling the decoding process to continue with subsequent characters.

For example:

 QByteArray text = QByteArray.fromBase64("UXQgaXMgZ3JlYXQh");
 text.data();            // returns "Qt is great!"

The algorithm used to decode Base64-encoded data is defined in RFC 2045.

See also toBase64().

QByteArray QByteArray.fromHex (QByteArray hexEncoded)

Returns a decoded copy of the hex encoded array hexEncoded. Input is not checked for validity; invalid characters in the input are skipped, enabling the decoding process to continue with subsequent characters.

For example:

 QByteArray text = QByteArray.fromHex("517420697320677265617421");
 text.data();            // returns "Qt is great!"

See also toHex().

QByteArray QByteArray.fromPercentEncoding (QByteArray input, str percent = '%')

Returns a decoded copy of the URI/URL-style percent-encoded input. The percent parameter allows you to replace the '%' character for another (for instance, '_' or '=').

For example:

 QByteArray text = QByteArray.fromPercentEncoding("Qt%20is%20great%33");
 text.data();            // returns "Qt is great!"

This function was introduced in Qt 4.4.

See also toPercentEncoding() and QUrl.fromPercentEncoding().

QByteArray QByteArray.fromRawData (str)

Constructs a QByteArray that uses the first size bytes of the data array. The bytes are not copied. The QByteArray will contain the data pointer. The caller guarantees that data will not be deleted or modified as long as this QByteArray and any copies of it exist that have not been modified. In other words, because QByteArray is an implicitly shared class and the instance returned by this function contains the data pointer, the caller must not delete data or modify it directly as long as the returned QByteArray and any copies exist. However, QByteArray does not take ownership of data, so the QByteArray destructor will never delete the raw data, even when the last QByteArray referring to data is destroyed.

A subsequent attempt to modify the contents of the returned QByteArray or any copy made from it will cause it to create a deep copy of the data array before doing the modification. This ensures that the raw data array itself will never be modified by QByteArray.

Here is an example of how to read data using a QDataStream on raw data in memory without copying the raw data into a QByteArray:

  static const char mydata[] = {
     0x00, 0x00, 0x03, 0x84, 0x78, 0x9c, 0x3b, 0x76,
     0xec, 0x18, 0xc3, 0x31, 0x0a, 0xf1, 0xcc, 0x99,
     ...
     0x6d, 0x5b
 };

 QByteArray data = QByteArray.fromRawData(mydata, sizeof(mydata));
 QDataStream in(&data, QIODevice.ReadOnly);
 ...

Warning: A byte array created with fromRawData() is not null-terminated, unless the raw data contains a 0 character at position size. While that does not matter for QDataStream or functions like indexOf(), passing the byte array to a function accepting a const char * expected to be '\0'-terminated will fail.

See also setRawData(), data(), and constData().

int QByteArray.indexOf (self, QByteArray ba, int from = 0)

Returns the index position of the first occurrence of the byte array ba in this byte array, searching forward from index position from. Returns -1 if ba could not be found.

Example:

 QByteArray x("sticky question");
 QByteArray y("sti");
 x.indexOf(y);               // returns 0
 x.indexOf(y, 1);            // returns 10
 x.indexOf(y, 10);           // returns 10
 x.indexOf(y, 11);           // returns -1

See also lastIndexOf(), contains(), and count().

int QByteArray.indexOf (self, QString str, int from = 0)

This is an overloaded function.

Returns the index position of the first occurrence of the string str in the byte array, searching forward from index position from. Returns -1 if str could not be found.

The Unicode data is converted into 8-bit characters using QString.toAscii().

If the QString contains non-ASCII Unicode characters, using this function can lead to loss of information. You can disable this function by defining QT_NO_CAST_TO_ASCII when you compile your applications. You then need to call QString.toAscii() (or QString.toLatin1() or QString.toUtf8() or QString.toLocal8Bit()) explicitly if you want to convert the data to const char *.

QByteArray QByteArray.insert (self, int i, QByteArray a)

Inserts the byte array ba at index position i and returns a reference to this byte array.

Example:

 QByteArray ba("Meal");
 ba.insert(1, QByteArray("ontr"));
 // ba == "Montreal"

See also append(), prepend(), replace(), and remove().

QByteArray QByteArray.insert (self, int i, QString s)

This is an overloaded function.

Inserts the string str at index position i in the byte array. The Unicode data is converted into 8-bit characters using QString.toAscii().

If i is greater than size(), the array is first extended using resize().

If the QString contains non-ASCII Unicode characters, using this function can lead to loss of information. You can disable this function by defining QT_NO_CAST_TO_ASCII when you compile your applications. You then need to call QString.toAscii() (or QString.toLatin1() or QString.toUtf8() or QString.toLocal8Bit()) explicitly if you want to convert the data to const char *.

bool QByteArray.isEmpty (self)

Returns true if the byte array has size 0; otherwise returns false.

Example:

 QByteArray().isEmpty();         // returns true
 QByteArray("").isEmpty();       // returns true
 QByteArray("abc").isEmpty();    // returns false

See also size().

bool QByteArray.isNull (self)

Returns true if this byte array is null; otherwise returns false.

Example:

 QByteArray().isNull();          // returns true
 QByteArray("").isNull();        // returns false
 QByteArray("abc").isNull();     // returns false

Qt makes a distinction between null byte arrays and empty byte arrays for historical reasons. For most applications, what matters is whether or not a byte array contains any data, and this can be determined using isEmpty().

See also isEmpty().

int QByteArray.lastIndexOf (self, QByteArray ba, int from = -1)

Returns the index position of the last occurrence of the byte array ba in this byte array, searching backward from index position from. If from is -1 (the default), the search starts at the last byte. Returns -1 if ba could not be found.

Example:

 QByteArray x("crazy azimuths");
 QByteArray y("az");
 x.lastIndexOf(y);           // returns 6
 x.lastIndexOf(y, 6);        // returns 6
 x.lastIndexOf(y, 5);        // returns 2
 x.lastIndexOf(y, 1);        // returns -1

See also indexOf(), contains(), and count().

int QByteArray.lastIndexOf (self, QString str, int from = -1)

This is an overloaded function.

Returns the index position of the last occurrence of the string str in the byte array, searching backward from index position from. If from is -1 (the default), the search starts at the last (size() - 1) byte. Returns -1 if str could not be found.

The Unicode data is converted into 8-bit characters using QString.toAscii().

If the QString contains non-ASCII Unicode characters, using this function can lead to loss of information. You can disable this function by defining QT_NO_CAST_TO_ASCII when you compile your applications. You then need to call QString.toAscii() (or QString.toLatin1() or QString.toUtf8() or QString.toLocal8Bit()) explicitly if you want to convert the data to const char *.

QByteArray QByteArray.left (self, int len)

Returns a byte array that contains the leftmost len bytes of this byte array.

The entire byte array is returned if len is greater than size().

Example:

 QByteArray x("Pineapple");
 QByteArray y = x.left(4);
 // y == "Pine"

See also right(), mid(), startsWith(), and truncate().

QByteArray QByteArray.leftJustified (self, int width, str fill = ' ', bool truncate = False)

Returns a byte array of size width that contains this byte array padded by the fill character.

If truncate is false and the size() of the byte array is more than width, then the returned byte array is a copy of this byte array.

If truncate is true and the size() of the byte array is more than width, then any bytes in a copy of the byte array after position width are removed, and the copy is returned.

Example:

 QByteArray x("apple");
 QByteArray y = x.leftJustified(8, '.');   // y == "apple..."

See also rightJustified().

int QByteArray.length (self)

Same as size().

QByteArray QByteArray.mid (self, int pos, int length = -1)

Returns a byte array containing len bytes from this byte array, starting at position pos.

If len is -1 (the default), or pos + len >= size(), returns a byte array containing all bytes starting at position pos until the end of the byte array.

Example:

 QByteArray x("Five pineapples");
 QByteArray y = x.mid(5, 4);     // y == "pine"
 QByteArray z = x.mid(5);        // z == "pineapples"

See also left() and right().

QByteArray QByteArray.number (int n, int base = 10)

Returns a byte array containing the string equivalent of the number n to base base (10 by default). The base can be any value between 2 and 36.

Example:

 int n = 63;
 QByteArray.number(n);              // returns "63"
 QByteArray.number(n, 16);          // returns "3f"
 QByteArray.number(n, 16).toUpper();  // returns "3F"

Note: The format of the number is not localized; the default C locale is used irrespective of the user's locale.

See also setNum() and toInt().

QByteArray QByteArray.number (float n, str format = 'g', int precision = 6)

This is an overloaded function.

See also toUInt().

QByteArray QByteArray.number (int n, int base = 10)

This is an overloaded function.

See also toLongLong().

QByteArray QByteArray.number (int n, int base = 10)

This is an overloaded function.

See also toULongLong().

QByteArray QByteArray.prepend (self, QByteArray a)

Prepends the byte array ba to this byte array and returns a reference to this byte array.

Example:

 QByteArray x("ship");
 QByteArray y("air");
 x.prepend(y);
 // x == "airship"

This is the same as insert(0, ba).

Note: QByteArray is an implicitly shared class. Consequently, if this is an empty QByteArray, then this will just share the data held in ba. In this case, no copying of data is done, taking constant time. If a shared instance is modified, it will be copied (copy-on-write), taking linear time.

If this is not an empty QByteArray, a deep copy of the data is performed, taking linear time.

See also append() and insert().

QByteArray.push_back (self, QByteArray a)

This function is provided for STL compatibility. It is equivalent to append(other).

QByteArray.push_front (self, QByteArray a)

This function is provided for STL compatibility. It is equivalent to prepend(other).

QByteArray QByteArray.remove (self, int index, int len)

Removes len bytes from the array, starting at index position pos, and returns a reference to the array.

If pos is out of range, nothing happens. If pos is valid, but pos + len is larger than the size of the array, the array is truncated at position pos.

Example:

 QByteArray ba("Montreal");
 ba.remove(1, 4);
 // ba == "Meal"

See also insert() and replace().

QByteArray QByteArray.repeated (self, int times)

Returns a copy of this byte array repeated the specified number of times.

If times is less than 1, an empty byte array is returned.

Example:

 QByteArray ba("ab");
 ba.repeated(4);             // returns "abababab"

This function was introduced in Qt 4.5.

QByteArray QByteArray.replace (self, int index, int len, QByteArray s)

Replaces len bytes from index position pos with the byte array after, and returns a reference to this byte array.

Example:

 QByteArray x("Say yes!");
 QByteArray y("no");
 x.replace(4, 3, y);
 // x == "Say no!"

See also insert() and remove().

QByteArray QByteArray.replace (self, QByteArray before, QByteArray after)

This is an overloaded function.

Replaces len bytes from index position pos with the zero terminated string after.

Notice: this can change the length of the byte array.

QByteArray QByteArray.replace (self, QString before, QByteArray after)

This is an overloaded function.

Replaces len bytes from index position pos with alen bytes from the string after. after is allowed to have '\0' characters.

This function was introduced in Qt 4.7.

QByteArray.reserve (self, int size)

Attempts to allocate memory for at least size bytes. If you know in advance how large the byte array will be, you can call this function, and if you call resize() often you are likely to get better performance. If size is an underestimate, the worst that will happen is that the QByteArray will be a bit slower.

The sole purpose of this function is to provide a means of fine tuning QByteArray's memory usage. In general, you will rarely ever need to call this function. If you want to change the size of the byte array, call resize().

See also squeeze() and capacity().

QByteArray.resize (self, int size)

Sets the size of the byte array to size bytes.

If size is greater than the current size, the byte array is extended to make it size bytes with the extra bytes added to the end. The new bytes are uninitialized.

If size is less than the current size, bytes are removed from the end.

See also size() and truncate().

QByteArray QByteArray.right (self, int len)

Returns a byte array that contains the rightmost len bytes of this byte array.

The entire byte array is returned if len is greater than size().

Example:

 QByteArray x("Pineapple");
 QByteArray y = x.right(5);
 // y == "apple"

See also endsWith(), left(), and mid().

QByteArray QByteArray.rightJustified (self, int width, str fill = ' ', bool truncate = False)

Returns a byte array of size width that contains the fill character followed by this byte array.

If truncate is false and the size of the byte array is more than width, then the returned byte array is a copy of this byte array.

If truncate is true and the size of the byte array is more than width, then the resulting byte array is truncated at position width.

Example:

 QByteArray x("apple");
 QByteArray y = x.rightJustified(8, '.');    // y == "...apple"

See also leftJustified().

QByteArray QByteArray.setNum (self, int n, int base = 10)

Sets the byte array to the printed value of n in base base (10 by default) and returns a reference to the byte array. The base can be any value between 2 and 36.

Example:

 QByteArray ba;
 int n = 63;
 ba.setNum(n);           // ba == "63"
 ba.setNum(n, 16);       // ba == "3f"

Note: The format of the number is not localized; the default C locale is used irrespective of the user's locale.

See also number() and toInt().

QByteArray QByteArray.setNum (self, float n, str format = 'g', int precision = 6)

This is an overloaded function.

See also toUInt().

QByteArray QByteArray.setNum (self, int n, int base = 10)

This is an overloaded function.

See also toShort().

QByteArray QByteArray.setNum (self, int n, int base = 10)

This is an overloaded function.

See also toUShort().

QByteArray QByteArray.simplified (self)

Returns a byte array that has whitespace removed from the start and the end, and which has each sequence of internal whitespace replaced with a single space.

Whitespace means any character for which the standard C++ isspace() function returns true. This includes the ASCII characters '\t', '\n', '\v', '\f', '\r', and ' '.

Example:

 QByteArray ba("  lots\t of\nwhitespace\r\n ");
 ba = ba.simplified();
 // ba == "lots of whitespace";

See also trimmed().

int QByteArray.size (self)

Returns the number of bytes in this byte array.

The last byte in the byte array is at position size() - 1. In addition, QByteArray ensures that the byte at position size() is always '\0', so that you can use the return value of data() and constData() as arguments to functions that expect '\0'-terminated strings. If the QByteArray object was created from a raw data that didn't include the trailing null-termination character then QByteArray doesn't add it automaticall unless the deep copy is created.

Example:

 QByteArray ba("Hello");
 int n = ba.size();          // n == 5
 ba.data()[0];               // returns 'H'
 ba.data()[4];               // returns 'o'
 ba.data()[5];               // returns '\0'

See also isEmpty() and resize().

list-of-QByteArray QByteArray.split (self, str sep)

Splits the byte array into subarrays wherever sep occurs, and returns the list of those arrays. If sep does not match anywhere in the byte array, split() returns a single-element list containing this byte array.

QByteArray.squeeze (self)

Releases any memory not required to store the array's data.

The sole purpose of this function is to provide a means of fine tuning QByteArray's memory usage. In general, you will rarely ever need to call this function.

See also reserve() and capacity().

bool QByteArray.startsWith (self, QByteArray a)

Returns true if this byte array starts with byte array ba; otherwise returns false.

Example:

 QByteArray url("ftp://ftp.qt.nokia.com/");
 if (url.startsWith("ftp:"))
     ...

See also endsWith() and left().

QByteArray.swap (self, QByteArray other)

Swaps byte array other with this byte array. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QByteArray QByteArray.toBase64 (self)

Returns a copy of the byte array, encoded as Base64.

 QByteArray text("Qt is great!");
 text.toBase64();        // returns "UXQgaXMgZ3JlYXQh"

The algorithm used to encode Base64-encoded data is defined in RFC 2045.

See also fromBase64().

(float, bool ok) QByteArray.toDouble (self)

Returns the byte array converted to a double value.

Returns 0.0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

 QByteArray string("1234.56");
 double a = string.toDouble();   // a == 1234.56

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

See also number().

(float, bool ok) QByteArray.toFloat (self)

Returns the byte array converted to a float value.

Returns 0.0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

See also number().

QByteArray QByteArray.toHex (self)

Returns a hex encoded copy of the byte array. The hex encoding uses the numbers 0-9 and the letters a-f.

See also fromHex().

(int, bool ok) QByteArray.toInt (self, int base = 10)

Returns the byte array converted to an int using base base, which is 10 by default and must be between 2 and 36, or 0.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

 QByteArray str("FF");
 bool ok;
 int hex = str.toInt(&ok, 16);     // hex == 255, ok == true
 int dec = str.toInt(&ok, 10);     // dec == 0, ok == false

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

See also number().

(int, bool ok) QByteArray.toLong (self, int base = 10)

Returns the byte array converted to a long int using base base, which is 10 by default and must be between 2 and 36, or 0.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

 QByteArray str("FF");
 bool ok;
 long hex = str.toLong(&ok, 16);   // hex == 255, ok == true
 long dec = str.toLong(&ok, 10);   // dec == 0, ok == false

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

This function was introduced in Qt 4.1.

See also number().

(int, bool ok) QByteArray.toLongLong (self, int base = 10)

Returns the byte array converted to a long long using base base, which is 10 by default and must be between 2 and 36, or 0.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

See also number().

QByteArray QByteArray.toLower (self)

Returns a lowercase copy of the byte array. The bytearray is interpreted as a Latin-1 encoded string.

Example:

 QByteArray x("Qt by NOKIA");
 QByteArray y = x.toLower();
 // y == "qt by nokia"

See also toUpper() and 8-bit Character Comparisons.

QByteArray QByteArray.toPercentEncoding (self, QByteArray exclude = QByteArray(), QByteArray include = QByteArray(), str percent = '%')

Returns a URI/URL-style percent-encoded copy of this byte array. The percent parameter allows you to override the default '%' character for another.

By default, this function will encode all characters that are not one of the following:

ALPHA ("a" to "z" and "A" to "Z") / DIGIT (0 to 9) / "-" / "." / "_" / "~"

To prevent characters from being encoded pass them to exclude. To force characters to be encoded pass them to include. The percent character is always encoded.

Example:

 QByteArray text = "{a fishy string?}";
 QByteArray ba = text.toPercentEncoding("{}", "s");
 qDebug(ba.constData());
 // prints "{a fi%73hy %73tring%3F}"

The hex encoding uses the numbers 0-9 and the uppercase letters A-F.

This function was introduced in Qt 4.4.

See also fromPercentEncoding() and QUrl.toPercentEncoding().

(int, bool ok) QByteArray.toShort (self, int base = 10)

Returns the byte array converted to a short using base base, which is 10 by default and must be between 2 and 36, or 0.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

See also number().

(int, bool ok) QByteArray.toUInt (self, int base = 10)

Returns the byte array converted to an unsigned int using base base, which is 10 by default and must be between 2 and 36, or 0.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

See also number().

(int, bool ok) QByteArray.toULong (self, int base = 10)

Returns the byte array converted to an unsigned long int using base base, which is 10 by default and must be between 2 and 36, or 0.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

This function was introduced in Qt 4.1.

See also number().

(int, bool ok) QByteArray.toULongLong (self, int base = 10)

Returns the byte array converted to an unsigned long long using base base, which is 10 by default and must be between 2 and 36, or 0.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

See also number().

QByteArray QByteArray.toUpper (self)

Returns an uppercase copy of the byte array. The bytearray is interpreted as a Latin-1 encoded string.

Example:

 QByteArray x("Qt by NOKIA");
 QByteArray y = x.toUpper();
 // y == "QT BY NOKIA"

See also toLower() and 8-bit Character Comparisons.

(int, bool ok) QByteArray.toUShort (self, int base = 10)

Returns the byte array converted to an unsigned short using base base, which is 10 by default and must be between 2 and 36, or 0.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not 0: if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

Note: The conversion of the number is performed in the default C locale, irrespective of the user's locale.

See also number().

QByteArray QByteArray.trimmed (self)

Returns a byte array that has whitespace removed from the start and the end.

Whitespace means any character for which the standard C++ isspace() function returns true. This includes the ASCII characters '\t', '\n', '\v', '\f', '\r', and ' '.

Example:

 QByteArray ba("  lots\t of\nwhitespace\r\n ");
 ba = ba.trimmed();
 // ba == "lots\t of\nwhitespace";

Unlike simplified(), trimmed() leaves internal whitespace alone.

See also simplified().

QByteArray.truncate (self, int pos)

Truncates the byte array at index position pos.

If pos is beyond the end of the array, nothing happens.

Example:

 QByteArray ba("Stockholm");
 ba.truncate(5);             // ba == "Stock"

See also chop(), resize(), and left().

QByteArray QByteArray.__add__ (self, QByteArray a2)

QString QByteArray.__add__ (self, QString s)

int QByteArray.__contains__ (self, QByteArray a)

bool QByteArray.__eq__ (self, QString s2)

bool QByteArray.__eq__ (self, QByteArray a2)

bool QByteArray.__ge__ (self, QString s2)

bool QByteArray.__ge__ (self, QByteArray a2)

str QByteArray.__getitem__ (self, int i)

QByteArray QByteArray.__getitem__ (self, slice slice)

bool QByteArray.__gt__ (self, QString s2)

bool QByteArray.__gt__ (self, QByteArray a2)

int QByteArray.__hash__ (self)

QByteArray QByteArray.__iadd__ (self, QByteArray a)

QByteArray QByteArray.__iadd__ (self, QString s)

QByteArray QByteArray.__imul__ (self, int m)

bool QByteArray.__le__ (self, QString s2)

bool QByteArray.__le__ (self, QByteArray a2)

QByteArray.__len__ (self)

bool QByteArray.__lt__ (self, QString s2)

bool QByteArray.__lt__ (self, QByteArray a2)

QByteArray QByteArray.__mul__ (self, int m)

bool QByteArray.__ne__ (self, QString s2)

bool QByteArray.__ne__ (self, QByteArray a2)

str QByteArray.__repr__ (self)

str QByteArray.__str__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qbytearraymatcher.html0000644000076500000240000001321712536324471022105 0ustar philstaff00000000000000 QByteArrayMatcher Class Reference
  Home · All Classes · Modules

QByteArrayMatcher Class Reference
[
QtCore module]

The QByteArrayMatcher class holds a sequence of bytes that can be quickly matched in a byte array. More...

Methods


Detailed Description

The QByteArrayMatcher class holds a sequence of bytes that can be quickly matched in a byte array.

This class is useful when you have a sequence of bytes that you want to repeatedly match against some byte arrays (perhaps in a loop), or when you want to search for the same sequence of bytes multiple times in the same byte array. Using a matcher object and indexIn() is faster than matching a plain QByteArray with QByteArray.indexOf() if repeated matching takes place. This class offers no benefit if you are doing one-off byte array matches.

Create the QByteArrayMatcher with the QByteArray you want to search for. Then call indexIn() on the QByteArray that you want to search.


Method Documentation

QByteArrayMatcher.__init__ (self)

Constructs an empty byte array matcher that won't match anything. Call setPattern() to give it a pattern to match.

QByteArrayMatcher.__init__ (self, QByteArray pattern)

Constructs a byte array matcher that will search for pattern. Call indexIn() to perform a search.

QByteArrayMatcher.__init__ (self, QByteArrayMatcher other)

Constructs a byte array matcher from pattern. pattern has the given length. pattern must remain in scope, but the destructor does not delete pattern.

int QByteArrayMatcher.indexIn (self, QByteArray ba, int from = 0)

Searches the byte array ba, from byte position from (default 0, i.e. from the first byte), for the byte array pattern() that was set in the constructor or in the most recent call to setPattern(). Returns the position where the pattern() matched in ba, or -1 if no match was found.

QByteArray QByteArrayMatcher.pattern (self)

Returns the byte array pattern that this byte array matcher will search for.

See also setPattern().

QByteArrayMatcher.setPattern (self, QByteArray pattern)

Sets the byte array that this byte array matcher will search for to pattern.

See also pattern() and indexIn().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcalendarwidget.html0000644000076500000240000010536612536324502021516 0ustar philstaff00000000000000 QCalendarWidget Class Reference
  Home · All Classes · Modules

QCalendarWidget Class Reference
[QtGui module]

The QCalendarWidget class provides a monthly based calendar widget allowing the user to select a date. More...

Inherits QWidget.

Types

Methods

Qt Signals


Detailed Description

The QCalendarWidget class provides a monthly based calendar widget allowing the user to select a date.

The widget is initialized with the current month and year, but QCalendarWidget provides several public slots to change the year and month that is shown.

By default, today's date is selected, and the user can select a date using both mouse and keyboard. The currently selected date can be retrieved using the selectedDate() function. It is possible to constrain the user selection to a given date range by setting the minimumDate and maximumDate properties. Alternatively, both properties can be set in one go using the setDateRange() convenience slot. Set the selectionMode property to NoSelection to prohibit the user from selecting at all. Note that a date also can be selected programmatically using the setSelectedDate() slot.

The currently displayed month and year can be retrieved using the monthShown() and yearShown() functions, respectively.

A newly created calendar widget uses abbreviated day names, and both Saturdays and Sundays are marked in red. The calendar grid is not visible. The week numbers are displayed, and the first column day is Sunday.

The notation of the days can be altered to a single letter abbreviations ("M" for "Monday") by setting the horizontalHeaderFormat property to QCalendarWidget.SingleLetterDayNames. Setting the same property to QCalendarWidget.LongDayNames makes the header display the complete day names. The week numbers can be removed by setting the verticalHeaderFormat property to QCalendarWidget.NoVerticalHeader. The calendar grid can be turned on by setting the gridVisible property to true using the setGridVisible() function:

 QCalendarWidget *calendar;
 calendar->setGridVisible(true);

Finally, the day in the first column can be altered using the setFirstDayOfWeek() function.

The QCalendarWidget class also provides three signals, selectionChanged(), activated() and currentPageChanged() making it possible to respond to user interaction.

The rendering of the headers, weekdays or single days can be largely customized by setting QTextCharFormat's for some special weekday, a special date or for the rendering of the headers.

Only a subset of the properties in QTextCharFormat are used by the calendar widget. Currently, the foreground, background and font properties are used to determine the rendering of individual cells in the widget.


Type Documentation

QCalendarWidget.HorizontalHeaderFormat

This enum type defines the various formats the horizontal header can display.

Constant Value Description
QCalendarWidget.SingleLetterDayNames 1 The header displays a single letter abbreviation for day names (e.g. M for Monday).
QCalendarWidget.ShortDayNames 2 The header displays a short abbreviation for day names (e.g. Mon for Monday).
QCalendarWidget.LongDayNames 3 The header displays complete day names (e.g. Monday).
QCalendarWidget.NoHorizontalHeader 0 The header is hidden.

See also horizontalHeaderFormat() and VerticalHeaderFormat.

QCalendarWidget.SelectionMode

This enum describes the types of selection offered to the user for selecting dates in the calendar.

Constant Value Description
QCalendarWidget.NoSelection 0 Dates cannot be selected.
QCalendarWidget.SingleSelection 1 Single dates can be selected.

See also selectionMode.

QCalendarWidget.VerticalHeaderFormat

This enum type defines the various formats the vertical header can display.

Constant Value Description
QCalendarWidget.ISOWeekNumbers 1 The header displays ISO week numbers as described by QDate.weekNumber().
QCalendarWidget.NoVerticalHeader 0 The header is hidden.

See also verticalHeaderFormat() and HorizontalHeaderFormat.


Method Documentation

QCalendarWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a calendar widget with the given parent.

The widget is initialized with the current month and year, and the currently selected date is today.

See also setCurrentPage().

int QCalendarWidget.dateEditAcceptDelay (self)

dict-of-QDate-QTextCharFormat QCalendarWidget.dateTextFormat (self)

Returns a QMap from QDate to QTextCharFormat showing all dates that use a special format that alters their rendering.

See also setDateTextFormat().

QTextCharFormat QCalendarWidget.dateTextFormat (self, QDate date)

Returns a QTextCharFormat for date. The char format can be be empty if the date is not renderd specially.

bool QCalendarWidget.event (self, QEvent event)

Reimplemented from QObject.event().

bool QCalendarWidget.eventFilter (self, QObject watched, QEvent event)

Reimplemented from QObject.eventFilter().

Qt.DayOfWeek QCalendarWidget.firstDayOfWeek (self)

QTextCharFormat QCalendarWidget.headerTextFormat (self)

Returns the text char format for rendering the header.

See also setHeaderTextFormat().

HorizontalHeaderFormat QCalendarWidget.horizontalHeaderFormat (self)

bool QCalendarWidget.isDateEditEnabled (self)

bool QCalendarWidget.isGridVisible (self)

bool QCalendarWidget.isHeaderVisible (self)

bool QCalendarWidget.isNavigationBarVisible (self)

QCalendarWidget.keyPressEvent (self, QKeyEvent event)

Reimplemented from QWidget.keyPressEvent().

QDate QCalendarWidget.maximumDate (self)

QDate QCalendarWidget.minimumDate (self)

QSize QCalendarWidget.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

int QCalendarWidget.monthShown (self)

Returns the currently displayed month. Months are numbered from 1 to 12.

See also yearShown() and setCurrentPage().

QCalendarWidget.mousePressEvent (self, QMouseEvent event)

Reimplemented from QWidget.mousePressEvent().

QCalendarWidget.paintCell (self, QPainter painter, QRect rect, QDate date)

Paints the cell specified by the given date, using the given painter and rect.

QCalendarWidget.resizeEvent (self, QResizeEvent event)

Reimplemented from QWidget.resizeEvent().

QDate QCalendarWidget.selectedDate (self)

SelectionMode QCalendarWidget.selectionMode (self)

QCalendarWidget.setCurrentPage (self, int year, int month)

This method is also a Qt slot with the C++ signature void setCurrentPage(int,int).

Displays the given month of the given year without changing the selected date. Use the setSelectedDate() function to alter the selected date.

The currently displayed month and year can be retrieved using the monthShown() and yearShown() functions respectively.

See also yearShown(), monthShown(), showPreviousMonth(), showNextMonth(), showPreviousYear(), and showNextYear().

QCalendarWidget.setDateEditAcceptDelay (self, int delay)

QCalendarWidget.setDateEditEnabled (self, bool enable)

QCalendarWidget.setDateRange (self, QDate min, QDate max)

This method is also a Qt slot with the C++ signature void setDateRange(const QDate&,const QDate&).

Defines a date range by setting the minimumDate and maximumDate properties.

The date range restricts the user selection, i.e. the user can only select dates within the specified date range. Note that

 QCalendarWidget *calendar;

 calendar->setDateRange(min, max);

is analogous to

 QCalendarWidget *calendar;

 calendar->setMinimumDate(min);
 calendar->setMaximumDate(max);

If either the min or max parameters are not valid QDate objects, this function does nothing.

See also setMinimumDate() and setMaximumDate().

QCalendarWidget.setDateTextFormat (self, QDate date, QTextCharFormat color)

Sets the format used to render the given date to that specified by format.

If date is null, all date formats are cleared.

See also dateTextFormat().

QCalendarWidget.setFirstDayOfWeek (self, Qt.DayOfWeek dayOfWeek)

QCalendarWidget.setGridVisible (self, bool show)

QCalendarWidget.setHeaderTextFormat (self, QTextCharFormat format)

Sets the text char format for rendering the header to format. If you also set a weekday text format, this format's foreground and background color will take precedence over the header's format. The other formatting information will still be decided by the header's format.

See also headerTextFormat().

QCalendarWidget.setHeaderVisible (self, bool show)

QCalendarWidget.setHorizontalHeaderFormat (self, HorizontalHeaderFormat format)

QCalendarWidget.setMaximumDate (self, QDate date)

QCalendarWidget.setMinimumDate (self, QDate date)

QCalendarWidget.setNavigationBarVisible (self, bool visible)

This method is also a Qt slot with the C++ signature void setNavigationBarVisible(bool).

QCalendarWidget.setSelectedDate (self, QDate date)

This method is also a Qt slot with the C++ signature void setSelectedDate(const QDate&).

QCalendarWidget.setSelectionMode (self, SelectionMode mode)

QCalendarWidget.setVerticalHeaderFormat (self, VerticalHeaderFormat format)

QCalendarWidget.setWeekdayTextFormat (self, Qt.DayOfWeek dayOfWeek, QTextCharFormat format)

Sets the text char format for rendering of day in the week dayOfWeek to format. The format will take precedence over the header format in case of foreground and background color. Other text formatting information is taken from the headers format.

See also weekdayTextFormat() and setHeaderTextFormat().

QCalendarWidget.showNextMonth (self)

This method is also a Qt slot with the C++ signature void showNextMonth().

Shows the next month relative to the currently displayed month. Note that the selected date is not changed.

See also showPreviousMonth(), setCurrentPage(), and setSelectedDate().

QCalendarWidget.showNextYear (self)

This method is also a Qt slot with the C++ signature void showNextYear().

Shows the currently displayed month in the next year relative to the currently displayed year. Note that the selected date is not changed.

See also showPreviousYear(), setCurrentPage(), and setSelectedDate().

QCalendarWidget.showPreviousMonth (self)

This method is also a Qt slot with the C++ signature void showPreviousMonth().

Shows the previous month relative to the currently displayed month. Note that the selected date is not changed.

See also showNextMonth(), setCurrentPage(), and setSelectedDate().

QCalendarWidget.showPreviousYear (self)

This method is also a Qt slot with the C++ signature void showPreviousYear().

Shows the currently displayed month in the previous year relative to the currently displayed year. Note that the selected date is not changed.

See also showNextYear(), setCurrentPage(), and setSelectedDate().

QCalendarWidget.showSelectedDate (self)

This method is also a Qt slot with the C++ signature void showSelectedDate().

Shows the month of the selected date.

See also selectedDate() and setCurrentPage().

QCalendarWidget.showToday (self)

This method is also a Qt slot with the C++ signature void showToday().

Shows the month of the today's date.

See also selectedDate() and setCurrentPage().

QSize QCalendarWidget.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QCalendarWidget.updateCell (self, QDate date)

Updates the cell specified by the given date unless updates are disabled or the cell is hidden.

This function was introduced in Qt 4.4.

See also updateCells(), yearShown(), and monthShown().

QCalendarWidget.updateCells (self)

Updates all visible cells unless updates are disabled.

This function was introduced in Qt 4.4.

See also updateCell().

VerticalHeaderFormat QCalendarWidget.verticalHeaderFormat (self)

QTextCharFormat QCalendarWidget.weekdayTextFormat (self, Qt.DayOfWeek dayOfWeek)

Returns the text char format for rendering of day in the week dayOfWeek.

See also setWeekdayTextFormat() and headerTextFormat().

int QCalendarWidget.yearShown (self)

Returns the year of the currently displayed month. Months are numbered from 1 to 12.

See also monthShown() and setCurrentPage().


Qt Signal Documentation

void activated (const QDate&)

This is the default overload of this signal.

This signal is emitted whenever the user presses the Return or Enter key or double-clicks a date in the calendar widget.

void clicked (const QDate&)

This is the default overload of this signal.

This signal is emitted when a mouse button is clicked. The date the mouse was clicked on is specified by date. The signal is only emitted when clicked on a valid date, e.g., dates are not outside the minimumDate() and maximumDate(). If the selection mode is NoSelection, this signal will not be emitted.

void currentPageChanged (int,int)

This is the default overload of this signal.

This signal is emitted when the currently shown month is changed. The new year and month are passed as parameters.

See also setCurrentPage().

void selectionChanged ()

This is the default overload of this signal.

This signal is emitted when the currently selected date is changed.

The currently selected date can be changed by the user using the mouse or keyboard, or by the programmer using setSelectedDate().

See also selectedDate().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qchar.html0000644000076500000240000013646112536324471017463 0ustar philstaff00000000000000 QChar Class Reference
  Home · All Classes · Modules

QChar Class Reference
[QtCore module]

The QChar class provides a 16-bit Unicode character. More...

Types

  • enum Category { NoCategory, Mark_NonSpacing, Mark_SpacingCombining, Mark_Enclosing, ..., Symbol_Other }
  • enum CombiningClass { Combining_BelowLeftAttached, Combining_BelowAttached, Combining_BelowRightAttached, Combining_LeftAttached, ..., Combining_IotaSubscript }
  • enum Decomposition { NoDecomposition, Canonical, Font, NoBreak, ..., Fraction }
  • enum Direction { DirL, DirR, DirEN, DirES, ..., DirBN }
  • enum Joining { OtherJoining, Dual, Right, Center }
  • enum SpecialCharacter { Null, Nbsp, ReplacementCharacter, ObjectReplacementCharacter, ..., LineSeparator }
  • enum UnicodeVersion { Unicode_Unassigned, Unicode_1_1, Unicode_2_0, Unicode_2_1_2, ..., Unicode_5_0 }

Methods

Static Methods

Special Methods


Detailed Description

This class can be pickled.

The QChar class provides a 16-bit Unicode character.

In Qt, Unicode characters are 16-bit entities without any markup or structure. This class represents such an entity. It is lightweight, so it can be used everywhere. Most compilers treat it like a unsigned short.

QChar provides a full complement of testing/classification functions, converting to and from other formats, converting from composed to decomposed Unicode, and trying to compare and case-convert if you ask it to.

The classification functions include functions like those in the standard C++ header <cctype> (formerly <ctype.h>), but operating on the full range of Unicode characters. They all return true if the character is a certain type of character; otherwise they return false. These classification functions are isNull() (returns true if the character is '\0'), isPrint() (true if the character is any sort of printable character, including whitespace), isPunct() (any sort of punctation), isMark() (Unicode Mark), isLetter() (a letter), isNumber() (any sort of numeric character, not just 0-9), isLetterOrNumber(), and isDigit() (decimal digits). All of these are wrappers around category() which return the Unicode-defined category of each character.

QChar also provides direction(), which indicates the "natural" writing direction of this character. The joining() function indicates how the character joins with its neighbors (needed mostly for Arabic) and finally hasMirrored(), which indicates whether the character needs to be mirrored when it is printed in its "unnatural" writing direction.

Composed Unicode characters (like å) can be converted to decomposed Unicode ("a" followed by "ring above") by using decomposition().

In Unicode, comparison is not necessarily possible and case conversion is very difficult at best. Unicode, covering the "entire" world, also includes most of the world's case and sorting problems. operator==() and friends will do comparison based purely on the numeric Unicode value (code point) of the characters, and toUpper() and toLower() will do case changes when the character has a well-defined uppercase/lowercase equivalent. For locale-dependent comparisons, use QString.localeAwareCompare().

The conversion functions include unicode() (to a scalar), toLatin1() (to scalar, but converts all non-Latin-1 characters to 0), row() (gives the Unicode row), cell() (gives the Unicode cell), digitValue() (gives the integer value of any of the numerous digit characters), and a host of constructors.

QChar provides constructors and cast operators that make it easy to convert to and from traditional 8-bit chars. If you defined QT_NO_CAST_FROM_ASCII and QT_NO_CAST_TO_ASCII, as explained in the QString documentation, you will need to explicitly call fromAscii() or fromLatin1(), or use QLatin1Char, to construct a QChar from an 8-bit char, and you will need to call toAscii() or toLatin1() to get the 8-bit value back.


Type Documentation

QChar.Category

This enum maps the Unicode character categories.

The following characters are normative in Unicode:

Constant Value Description
QChar.Mark_NonSpacing 1 Unicode class name Mn
QChar.Mark_SpacingCombining 2 Unicode class name Mc
QChar.Mark_Enclosing 3 Unicode class name Me
QChar.Number_DecimalDigit 4 Unicode class name Nd
QChar.Number_Letter 5 Unicode class name Nl
QChar.Number_Other 6 Unicode class name No
QChar.Separator_Space 7 Unicode class name Zs
QChar.Separator_Line 8 Unicode class name Zl
QChar.Separator_Paragraph 9 Unicode class name Zp
QChar.Other_Control 10 Unicode class name Cc
QChar.Other_Format 11 Unicode class name Cf
QChar.Other_Surrogate 12 Unicode class name Cs
QChar.Other_PrivateUse 13 Unicode class name Co
QChar.Other_NotAssigned 14 Unicode class name Cn

The following categories are informative in Unicode:

Constant Value Description
QChar.Letter_Uppercase 15 Unicode class name Lu
QChar.Letter_Lowercase 16 Unicode class name Ll
QChar.Letter_Titlecase 17 Unicode class name Lt
QChar.Letter_Modifier 18 Unicode class name Lm
QChar.Letter_Other 19 Unicode class name Lo
QChar.Punctuation_Connector 20 Unicode class name Pc
QChar.Punctuation_Dash 21 Unicode class name Pd
QChar.Punctuation_Open 22 Unicode class name Ps
QChar.Punctuation_Close 23 Unicode class name Pe
QChar.Punctuation_InitialQuote 24 Unicode class name Pi
QChar.Punctuation_FinalQuote 25 Unicode class name Pf
QChar.Punctuation_Other 26 Unicode class name Po
QChar.Symbol_Math 27 Unicode class name Sm
QChar.Symbol_Currency 28 Unicode class name Sc
QChar.Symbol_Modifier 29 Unicode class name Sk
QChar.Symbol_Other 30 Unicode class name So
QChar.NoCategory 0 Qt cannot find an appropriate category for the character.

See also category().

QChar.CombiningClass

QChar.Decomposition

This enum type defines the Unicode decomposition attributes. See the Unicode Standard for a description of the values.

Constant Value
QChar.NoDecomposition 0
QChar.Canonical 1
QChar.Circle 8
QChar.Compat 16
QChar.Final 6
QChar.Font 2
QChar.Fraction 17
QChar.Initial 4
QChar.Isolated 7
QChar.Medial 5
QChar.Narrow 13
QChar.NoBreak 3
QChar.Small 14
QChar.Square 15
QChar.Sub 10
QChar.Super 9
QChar.Vertical 11
QChar.Wide 12

See also decomposition().

QChar.Direction

This enum type defines the Unicode direction attributes. See the Unicode Standard for a description of the values.

In order to conform to C/C++ naming conventions "Dir" is prepended to the codes used in the Unicode Standard.

Constant Value
QChar.DirAL 13
QChar.DirAN 5
QChar.DirB 7
QChar.DirBN 18
QChar.DirCS 6
QChar.DirEN 2
QChar.DirES 3
QChar.DirET 4
QChar.DirL 0
QChar.DirLRE 11
QChar.DirLRO 12
QChar.DirNSM 17
QChar.DirON 10
QChar.DirPDF 16
QChar.DirR 1
QChar.DirRLE 14
QChar.DirRLO 15
QChar.DirS 8
QChar.DirWS 9

See also direction().

QChar.Joining

This enum type defines the Unicode joining attributes. See the Unicode Standard for a description of the values.

Constant Value
QChar.Center 3
QChar.Dual 1
QChar.OtherJoining 0
QChar.Right 2

See also joining().

QChar.SpecialCharacter

Constant Value Description
QChar.Null 0x0000 A QChar with this value isNull().
QChar.Nbsp 0x00a0 Non-breaking space.
QChar.ReplacementCharacter 0xfffd The character shown when a font has no glyph for a certain codepoint. A special question mark character is often used. Codecs use this codepoint when input data cannot be represented in Unicode.
QChar.ObjectReplacementCharacter 0xfffc Used to represent an object such as an image when such objects cannot be presented.
QChar.ByteOrderMark 0xfeff  
QChar.ByteOrderSwapped 0xfffe  
QChar.ParagraphSeparator 0x2029  
QChar.LineSeparator 0x2028  

QChar.UnicodeVersion

Specifies which version of the Unicode standard introduced a certain character.

Constant Value Description
QChar.Unicode_1_1 1 Version 1.1
QChar.Unicode_2_0 2 Version 2.0
QChar.Unicode_2_1_2 3 Version 2.1.2
QChar.Unicode_3_0 4 Version 3.0
QChar.Unicode_3_1 5 Version 3.1
QChar.Unicode_3_2 6 Version 3.2
QChar.Unicode_4_0 7 Version 4.0
QChar.Unicode_4_1 8 Version 4.1
QChar.Unicode_5_0 9 Version 5.0
QChar.Unicode_Unassigned 0 The value is not assigned to any character in version 5.0 of Unicode.

See also unicodeVersion().


Method Documentation

QChar.__init__ (self)

Constructs a null QChar ('\0').

See also isNull().

QChar.__init__ (self, str c)

Constructs a QChar corresponding to ASCII/Latin-1 character ch.

QChar.__init__ (self, QLatin1Char ch)

Constructs a QChar corresponding to ASCII/Latin-1 character ch.

QChar.__init__ (self, str c, str r)

Constructs a QChar corresponding to ASCII/Latin-1 character ch.

QChar.__init__ (self, int rc)

Constructs a QChar for Unicode cell cell in row row.

See also cell() and row().

QChar.__init__ (self, SpecialCharacter s)

Constructs a QChar for the character with Unicode code point code.

QChar.__init__ (self, QChar)

Constructs a QChar for the character with Unicode code point code.

Category QChar.category (self)

Returns the character's category.

Category QChar.category (int ucs4)

This is an overloaded function.

Returns the category of the UCS-4-encoded character specified by ucs4.

This function was introduced in Qt 4.3.

str QChar.cell (self)

Returns the cell (least significant byte) of the Unicode character.

See also row().

str QChar.combiningClass (self)

Returns the combining class for the character as defined in the Unicode standard. This is mainly useful as a positioning hint for marks attached to a base character.

The Qt text rendering engine uses this information to correctly position non-spacing marks around a base character.

str QChar.combiningClass (int ucs4)

This is an overloaded function.

Returns the combining class for the UCS-4-encoded character specified by ucs4, as defined in the Unicode standard.

UnicodeVersion QChar.currentUnicodeVersion ()

Returns the most recent supported Unicode version.

This function was introduced in Qt 4.8.

QString QChar.decomposition (self)

Decomposes a character into its parts. Returns an empty string if no decomposition exists.

QString QChar.decomposition (int ucs4)

This is an overloaded function.

Decomposes the UCS-4-encoded character specified by ucs4 into its constituent parts. Returns an empty string if no decomposition exists.

Decomposition QChar.decompositionTag (self)

Returns the tag defining the composition of the character. Returns QChar.Single if no decomposition exists.

Decomposition QChar.decompositionTag (int ucs4)

This is an overloaded function.

Returns the tag defining the composition of the UCS-4-encoded character specified by ucs4. Returns QChar.Single if no decomposition exists.

int QChar.digitValue (self)

Returns the numeric value of the digit, or -1 if the character is not a digit.

int QChar.digitValue (int ucs4)

This is an overloaded function.

Returns the numeric value of the digit, specified by the UCS-2-encoded character, ucs2, or -1 if the character is not a digit.

Direction QChar.direction (self)

Returns the character's direction.

Direction QChar.direction (int ucs4)

This is an overloaded function.

Returns the direction of the UCS-4-encoded character specified by ucs4.

QChar QChar.fromAscii (str c)

Converts the ASCII character c to its equivalent QChar. This is mainly useful for non-internationalized software.

An alternative is to use QLatin1Char.

See also fromLatin1(), unicode(), and QTextCodec.codecForCStrings().

QChar QChar.fromLatin1 (str c)

Converts the Latin-1 character c to its equivalent QChar. This is mainly useful for non-internationalized software.

See also fromAscii(), unicode(), and QTextCodec.codecForCStrings().

bool QChar.hasMirrored (self)

Returns true if the character should be reversed if the text direction is reversed; otherwise returns false.

Same as (ch.mirroredChar() != ch).

See also mirroredChar().

int QChar.highSurrogate (int ucs4)

Returns the high surrogate value of a ucs4 code point. The returned result is undefined if ucs4 is smaller than 0x10000.

bool QChar.isDigit (self)

Returns true if the character is a decimal digit (Number_DecimalDigit); otherwise returns false.

bool QChar.isHighSurrogate (self)

Returns true if the QChar is the high part of a utf16 surrogate (ie. if its code point is between 0xd800 and 0xdbff, inclusive).

bool QChar.isHighSurrogate (int ucs4)

Returns true if the UCS-4-encoded character specified by ucs4 is the high part of a utf16 surrogate (ie. if its code point is between 0xd800 and 0xdbff, inclusive).

This function was introduced in Qt 4.7.

bool QChar.isLetter (self)

Returns true if the character is a letter (Letter_* categories); otherwise returns false.

bool QChar.isLetterOrNumber (self)

Returns true if the character is a letter or number (Letter_* or Number_* categories); otherwise returns false.

bool QChar.isLower (self)

Returns true if the character is a lowercase letter, i.e. category() is Letter_Lowercase.

See also isUpper(), toLower(), and toUpper().

bool QChar.isLowSurrogate (self)

Returns true if the QChar is the low part of a utf16 surrogate (ie. if its code point is between 0xdc00 and 0xdfff, inclusive).

bool QChar.isLowSurrogate (int ucs4)

Returns true if the UCS-4-encoded character specified by ucs4 is the low part of a utf16 surrogate (ie. if its code point is between 0xdc00 and 0xdfff, inclusive).

This function was introduced in Qt 4.7.

bool QChar.isMark (self)

Returns true if the character is a mark (Mark_* categories); otherwise returns false.

See QChar.Category for more information regarding marks.

bool QChar.isNull (self)

Returns true if the character is the Unicode character 0x0000 ('\0'); otherwise returns false.

bool QChar.isNumber (self)

Returns true if the character is a number (Number_* categories, not just 0-9); otherwise returns false.

See also isDigit().

bool QChar.isPrint (self)

Returns true if the character is a printable character; otherwise returns false. This is any character not of category Cc or Cn.

Note that this gives no indication of whether the character is available in a particular font.

bool QChar.isPunct (self)

Returns true if the character is a punctuation mark (Punctuation_* categories); otherwise returns false.

bool QChar.isSpace (self)

Returns true if the character is a separator character (Separator_* categories); otherwise returns false.

bool QChar.isSymbol (self)

Returns true if the character is a symbol (Symbol_* categories); otherwise returns false.

bool QChar.isTitleCase (self)

Returns true if the character is a titlecase letter, i.e. category() is Letter_Titlecase.

This function was introduced in Qt 4.3.

See also isLower(), toUpper(), toLower(), and toTitleCase().

bool QChar.isUpper (self)

Returns true if the character is an uppercase letter, i.e. category() is Letter_Uppercase.

See also isLower(), toUpper(), and toLower().

Joining QChar.joining (self)

Returns information about the joining properties of the character (needed for certain languages such as Arabic).

Joining QChar.joining (int ucs4)

This is an overloaded function.

Returns information about the joining properties of the UCS-4-encoded character specified by ucs4 (needed for certain languages such as Arabic).

int QChar.lowSurrogate (int ucs4)

Returns the low surrogate value of a ucs4 code point. The returned result is undefined if ucs4 is smaller than 0x10000.

QChar QChar.mirroredChar (self)

Returns the mirrored character if this character is a mirrored character; otherwise returns the character itself.

See also hasMirrored().

int QChar.mirroredChar (int ucs4)

This is an overloaded function.

Returns the mirrored character if the UCS-4-encoded character specified by ucs4 is a mirrored character; otherwise returns the character itself.

See also hasMirrored().

bool QChar.requiresSurrogates (int ucs4)

Returns true if the UCS-4-encoded character specified by ucs4 can be split into the high and low parts of a utf16 surrogate (ie. if its code point is greater than or equals to 0x10000).

This function was introduced in Qt 4.7.

str QChar.row (self)

Returns the row (most significant byte) of the Unicode character.

See also cell().

QChar.setCell (self, str acell)

QChar.setRow (self, str arow)

int QChar.surrogateToUcs4 (int high, int low)

Converts a UTF16 surrogate pair with the given high and low values to its UCS-4 code point.

int QChar.surrogateToUcs4 (QChar high, QChar low)

Converts a utf16 surrogate pair (high, low) to its ucs4 code point.

str QChar.toAscii (self)

Returns the character value of the QChar obtained using the current codec used to read C strings, or 0 if the character is not representable using this codec. The default codec handles Latin-1 encoded text, but this can be changed to assist developers writing source code using other encodings.

The main purpose of this function is to preserve ASCII characters used in C strings. This is mainly useful for developers of non-internationalized software.

See also toLatin1(), unicode(), and QTextCodec.codecForCStrings().

QChar QChar.toCaseFolded (self)

Returns the case folded equivalent of the character. For most Unicode characters this is the same as toLowerCase().

int QChar.toCaseFolded (int ucs4)

This is an overloaded function.

Returns the case folded equivalent of the UCS-4-encoded character specified by ucs4. For most Unicode characters this is the same as toLowerCase().

str QChar.toLatin1 (self)

Returns the Latin-1 character equivalent to the QChar, or 0. This is mainly useful for non-internationalized software.

See also toAscii(), unicode(), and QTextCodec.codecForCStrings().

QChar QChar.toLower (self)

Returns the lowercase equivalent if the character is uppercase or titlecase; otherwise returns the character itself.

int QChar.toLower (int ucs4)

This is an overloaded function.

Returns the lowercase equivalent of the UCS-4-encoded character specified by ucs4 if the character is uppercase or titlecase; otherwise returns the character itself.

QChar QChar.toTitleCase (self)

Returns the title case equivalent if the character is lowercase or uppercase; otherwise returns the character itself.

int QChar.toTitleCase (int ucs4)

This is an overloaded function.

Returns the title case equivalent of the UCS-4-encoded character specified by ucs4 if the character is lowercase or uppercase; otherwise returns the character itself.

QChar QChar.toUpper (self)

Returns the uppercase equivalent if the character is lowercase or titlecase; otherwise returns the character itself.

int QChar.toUpper (int ucs4)

This is an overloaded function.

Returns the uppercase equivalent of the UCS-4-encoded character specified by ucs4 if the character is lowercase or titlecase; otherwise returns the character itself.

int QChar.unicode (self)

Returns a reference to the numeric Unicode value of the QChar.

UnicodeVersion QChar.unicodeVersion (self)

Returns the Unicode version that introduced this character.

UnicodeVersion QChar.unicodeVersion (int ucs4)

This is an overloaded function.

Returns the Unicode version that introduced the character specified in its UCS-4-encoded form as ucs4.

QString QChar.__add__ (self, QString s2)

bool QChar.__eq__ (self, QChar c2)

bool QChar.__ge__ (self, QChar c2)

bool QChar.__gt__ (self, QChar c2)

int QChar.__hash__ (self)

bool QChar.__le__ (self, QChar c2)

bool QChar.__lt__ (self, QChar c2)

bool QChar.__ne__ (self, QChar c2)

str QChar.__repr__ (self)

str QChar.__str__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcheckbox.html0000644000076500000240000003153412536324502020322 0ustar philstaff00000000000000 QCheckBox Class Reference
  Home · All Classes · Modules

QCheckBox Class Reference
[
QtGui module]

The QCheckBox widget provides a checkbox with a text label. More...

Inherits QAbstractButton.

Methods

Qt Signals


Detailed Description

The QCheckBox widget provides a checkbox with a text label.

A QCheckBox is an option button that can be switched on (checked) or off (unchecked). Checkboxes are typically used to represent features in an application that can be enabled or disabled without affecting others, but different types of behavior can be implemented. For example, a QButtonGroup can be used to group check buttons logically, allowing exclusive checkboxes. However, QButtonGroup does not provide any visual representation.

The image below further illustrates the differences between exclusive and non-exclusive checkboxes.

Whenever a checkbox is checked or cleared it emits the signal stateChanged(). Connect to this signal if you want to trigger an action each time the checkbox changes state. You can use isChecked() to query whether or not a checkbox is checked.

In addition to the usual checked and unchecked states, QCheckBox optionally provides a third state to indicate "no change". This is useful whenever you need to give the user the option of neither checking nor unchecking a checkbox. If you need this third state, enable it with setTristate(), and use checkState() to query the current toggle state.

Just like QPushButton, a checkbox displays text, and optionally a small icon. The icon is set with setIcon(). The text can be set in the constructor or with setText(). A shortcut key can be specified by preceding the preferred character with an ampersand. For example:

 QCheckBox *checkbox = new QCheckBox("C&ase sensitive", this);

In this example the shortcut is Alt+A. See the QShortcut documentation for details (to display an actual ampersand, use '&&').

Important inherited functions: text(), setText(), text(), pixmap(), setPixmap(), accel(), setAccel(), isToggleButton(), setDown(), isDown(), isOn(), checkState(), autoRepeat(), isExclusiveToggle(), group(), setAutoRepeat(), toggle(), pressed(), released(), clicked(), toggled(), checkState(), and stateChanged().

Screenshot of a Macintosh style checkbox A checkbox shown in the Macintosh widget style.
Screenshot of a Windows XP style checkbox A checkbox shown in the Windows XP widget style.
Screenshot of a Plastique style checkbox A checkbox shown in the Plastique widget style.

Method Documentation

QCheckBox.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a checkbox with the given parent, but with no text.

parent is passed on to the QAbstractButton constructor.

QCheckBox.__init__ (self, QString text, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a checkbox with the given parent and text.

parent is passed on to the QAbstractButton constructor.

Qt.CheckState QCheckBox.checkState (self)

Returns the check box's check state. If you do not need tristate support, you can also use QAbstractButton.isChecked() which returns a boolean.

See also setCheckState() and Qt.CheckState.

QCheckBox.checkStateSet (self)

Reimplemented from QAbstractButton.checkStateSet().

bool QCheckBox.event (self, QEvent e)

Reimplemented from QObject.event().

bool QCheckBox.hitButton (self, QPoint pos)

Reimplemented from QAbstractButton.hitButton().

QCheckBox.initStyleOption (self, QStyleOptionButton option)

Initializes option with the values from this QCheckBox. This method is useful for subclasses that require a QStyleOptionButton, but do not want to fill in all the information themselves.

See also QStyleOption.initFrom().

bool QCheckBox.isTristate (self)

QSize QCheckBox.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

This function was introduced in Qt 4.8.

QCheckBox.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QCheckBox.nextCheckState (self)

Reimplemented from QAbstractButton.nextCheckState().

QCheckBox.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QCheckBox.setCheckState (self, Qt.CheckState state)

Sets the check box's check state to state. If you do not need tristate support, you can also use QAbstractButton.setChecked() which takes a boolean.

See also checkState() and Qt.CheckState.

QCheckBox.setTristate (self, bool on = True)

QSize QCheckBox.sizeHint (self)

Reimplemented from QWidget.sizeHint().


Qt Signal Documentation

void stateChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the check box's state changes, i.e. whenever the user checks or unchecks it.

state contains the check box's new Qt.CheckState.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qchildevent.html0000644000076500000240000001124112536324471020657 0ustar philstaff00000000000000 QChildEvent Class Reference
  Home · All Classes · Modules

QChildEvent Class Reference
[QtCore module]

The QChildEvent class contains event parameters for child object events. More...

Inherits QEvent.

Methods


Detailed Description

The QChildEvent class contains event parameters for child object events.

Child events are sent immediately to objects when children are added or removed.

In both cases you can only rely on the child being a QObject (or, if QObject.isWidgetType() returns true, a QWidget). This is because in the QEvent.ChildAdded case the child is not yet fully constructed; in the QEvent.ChildRemoved case it might have already been destructed.

The handler for these events is QObject.childEvent().


Method Documentation

QChildEvent.__init__ (self, QEvent.Type type, QObject child)

Constructs a child event object of a particular type for the child.

type can be QEvent.ChildAdded, QEvent.ChildRemoved, QEvent.ChildPolished, or QEvent.ChildRemoved.

See also child().

QChildEvent.__init__ (self, QChildEvent)

bool QChildEvent.added (self)

Returns true if type() is QEvent.ChildAdded; otherwise returns false.

QObject QChildEvent.child (self)

Returns the child object that was added or removed.

bool QChildEvent.polished (self)

Returns true if type() is QEvent.ChildPolished; otherwise returns false.

bool QChildEvent.removed (self)

Returns true if type() is QEvent.ChildRemoved; otherwise returns false.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qclipboard.html0000644000076500000240000006436212536324502020500 0ustar philstaff00000000000000 QClipboard Class Reference
  Home · All Classes · Modules

QClipboard Class Reference
[QtGui module]

The QClipboard class provides access to the window system clipboard. More...

Inherits QObject.

Types

  • enum Mode { Clipboard, Selection, FindBuffer }

Methods

  • clear (self, Mode mode = QClipboard.Clipboard)
  • connectNotify (self, SIGNAL())
  • bool event (self, QEvent)
  • QImage image (self, Mode mode = QClipboard.Clipboard)
  • QMimeData mimeData (self, Mode mode = QClipboard.Clipboard)
  • bool ownsClipboard (self)
  • bool ownsFindBuffer (self)
  • bool ownsSelection (self)
  • QPixmap pixmap (self, Mode mode = QClipboard.Clipboard)
  • setImage (self, QImage, Mode mode = QClipboard.Clipboard)
  • setMimeData (self, QMimeData data, Mode mode = QClipboard.Clipboard)
  • setPixmap (self, QPixmap, Mode mode = QClipboard.Clipboard)
  • setText (self, QString, Mode mode = QClipboard.Clipboard)
  • bool supportsFindBuffer (self)
  • bool supportsSelection (self)
  • QString text (self, Mode mode = QClipboard.Clipboard)
  • (QString, QString) text (self, QString subtype, Mode mode = QClipboard.Clipboard)
  • QString text (self, QString subtype, Mode mode = QClipboard.Clipboard)

Qt Signals


Detailed Description

The QClipboard class provides access to the window system clipboard.

The clipboard offers a simple mechanism to copy and paste data between applications.

QClipboard supports the same data types that QDrag does, and uses similar mechanisms. For advanced clipboard usage read Drag and Drop.

There is a single QClipboard object in an application, accessible as QApplication.clipboard().

Example:

 QClipboard *clipboard = QApplication.clipboard();
 QString originalText = clipboard->text();
 ...
 clipboard->setText(newText);

QClipboard features some convenience functions to access common data types: setText() allows the exchange of Unicode text and setPixmap() and setImage() allows the exchange of QPixmaps and QImages between applications. The setMimeData() function is the ultimate in flexibility: it allows you to add any QMimeData into the clipboard. There are corresponding getters for each of these, e.g. text(), image() and pixmap(). You can clear the clipboard by calling clear().

A typical example of the use of these functions follows:

 void DropArea.paste()
 {
     const QClipboard *clipboard = QApplication.clipboard();
     const QMimeData *mimeData = clipboard->mimeData();

     if (mimeData->hasImage()) {
         setPixmap(qvariant_cast<QPixmap>(mimeData->imageData()));
     } else if (mimeData->hasHtml()) {
         setText(mimeData->html());
         setTextFormat(Qt.RichText);
     } else if (mimeData->hasText()) {
         setText(mimeData->text());
         setTextFormat(Qt.PlainText);
     } else {
         setText(tr("Cannot display data"));
     }

Notes for X11 Users

  • The X11 Window System has the concept of a separate selection and clipboard. When text is selected, it is immediately available as the global mouse selection. The global mouse selection may later be copied to the clipboard. By convention, the middle mouse button is used to paste the global mouse selection.
  • X11 also has the concept of ownership; if you change the selection within a window, X11 will only notify the owner and the previous owner of the change, i.e. it will not notify all applications that the selection or clipboard data changed.
  • Lastly, the X11 clipboard is event driven, i.e. the clipboard will not function properly if the event loop is not running. Similarly, it is recommended that the contents of the clipboard are stored or retrieved in direct response to user-input events, e.g. mouse button or key presses and releases. You should not store or retrieve the clipboard contents in response to timer or non-user-input events.
  • Since there is no standard way to copy and paste files between applications on X11, various MIME types and conventions are currently in use. For instance, Nautilus expects files to be supplied with a x-special/gnome-copied-files MIME type with data beginning with the cut/copy action, a newline character, and the URL of the file.

Notes for Mac OS X Users

Mac OS X supports a separate find buffer that holds the current search string in Find operations. This find clipboard can be accessed by specifying the FindBuffer mode.

Notes for Windows and Mac OS X Users

  • Windows and Mac OS X do not support the global mouse selection; they only supports the global clipboard, i.e. they only add text to the clipboard when an explicit copy or cut is made.
  • Windows and Mac OS X does not have the concept of ownership; the clipboard is a fully global resource so all applications are notified of changes.

Type Documentation

QClipboard.Mode

This enum type is used to control which part of the system clipboard is used by QClipboard.mimeData(), QClipboard.setMimeData() and related functions.

Constant Value Description
QClipboard.Clipboard 0 indicates that data should be stored and retrieved from the global clipboard.
QClipboard.Selection 1 indicates that data should be stored and retrieved from the global mouse selection. Support for Selection is provided only on systems with a global mouse selection (e.g. X11).
QClipboard.FindBuffer 2 indicates that data should be stored and retrieved from the Find buffer. This mode is used for holding search strings on Mac OS X.

See also QClipboard.supportsSelection().


Method Documentation

QClipboard.clear (self, Mode mode = QClipboard.Clipboard)

Clear the clipboard contents.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, this function clears the global clipboard contents. If mode is QClipboard.Selection, this function clears the global mouse selection contents. If mode is QClipboard.FindBuffer, this function clears the search string buffer.

See also QClipboard.Mode and supportsSelection().

QClipboard.connectNotify (self, SIGNAL())

bool QClipboard.event (self, QEvent)

Reimplemented from QObject.event().

QImage QClipboard.image (self, Mode mode = QClipboard.Clipboard)

Returns the clipboard image, or returns a null image if the clipboard does not contain an image or if it contains an image in an unsupported image format.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, the image is retrieved from the global clipboard. If mode is QClipboard.Selection, the image is retrieved from the global mouse selection.

See also setImage(), pixmap(), mimeData(), and QImage.isNull().

QMimeData QClipboard.mimeData (self, Mode mode = QClipboard.Clipboard)

Returns a reference to a QMimeData representation of the current clipboard data.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, the data is retrieved from the global clipboard. If mode is QClipboard.Selection, the data is retrieved from the global mouse selection. If mode is QClipboard.FindBuffer, the data is retrieved from the search string buffer.

The text(), image(), and pixmap() functions are simpler wrappers for retrieving text, image, and pixmap data.

See also setMimeData().

bool QClipboard.ownsClipboard (self)

Returns true if this clipboard object owns the clipboard data; otherwise returns false.

bool QClipboard.ownsFindBuffer (self)

Returns true if this clipboard object owns the find buffer data; otherwise returns false.

This function was introduced in Qt 4.2.

bool QClipboard.ownsSelection (self)

Returns true if this clipboard object owns the mouse selection data; otherwise returns false.

QPixmap QClipboard.pixmap (self, Mode mode = QClipboard.Clipboard)

Returns the clipboard pixmap, or null if the clipboard does not contain a pixmap. Note that this can lose information. For example, if the image is 24-bit and the display is 8-bit, the result is converted to 8 bits, and if the image has an alpha channel, the result just has a mask.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, the pixmap is retrieved from the global clipboard. If mode is QClipboard.Selection, the pixmap is retrieved from the global mouse selection.

See also setPixmap(), image(), mimeData(), and QPixmap.convertFromImage().

QClipboard.setImage (self, QImage, Mode mode = QClipboard.Clipboard)

Copies the image into the clipboard.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, the image is stored in the global clipboard. If mode is QClipboard.Selection, the data is stored in the global mouse selection.

This is shorthand for:

 QMimeData *data = new QMimeData;
 data->setImageData(image);
 clipboard->setMimeData(data, mode);

See also image(), setPixmap(), and setMimeData().

QClipboard.setMimeData (self, QMimeData data, Mode mode = QClipboard.Clipboard)

Sets the clipboard data to src. Ownership of the data is transferred to the clipboard. If you want to remove the data either call clear() or call setMimeData() again with new data.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, the data is stored in the global clipboard. If mode is QClipboard.Selection, the data is stored in the global mouse selection. If mode is QClipboard.FindBuffer, the data is stored in the search string buffer.

The setText(), setImage() and setPixmap() functions are simpler wrappers for setting text, image and pixmap data respectively.

See also mimeData().

QClipboard.setPixmap (self, QPixmap, Mode mode = QClipboard.Clipboard)

Copies pixmap into the clipboard. Note that this is slower than setImage() because it needs to convert the QPixmap to a QImage first.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, the pixmap is stored in the global clipboard. If mode is QClipboard.Selection, the pixmap is stored in the global mouse selection.

See also pixmap(), setImage(), and setMimeData().

QClipboard.setText (self, QString, Mode mode = QClipboard.Clipboard)

Copies text into the clipboard as plain text.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, the text is stored in the global clipboard. If mode is QClipboard.Selection, the text is stored in the global mouse selection. If mode is QClipboard.FindBuffer, the text is stored in the search string buffer.

See also text() and setMimeData().

bool QClipboard.supportsFindBuffer (self)

Returns true if the clipboard supports a separate search buffer; otherwise returns false.

bool QClipboard.supportsSelection (self)

Returns true if the clipboard supports mouse selection; otherwise returns false.

QString QClipboard.text (self, Mode mode = QClipboard.Clipboard)

Returns the clipboard text as plain text, or an empty string if the clipboard does not contain any text.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, the text is retrieved from the global clipboard. If mode is QClipboard.Selection, the text is retrieved from the global mouse selection. If mode is QClipboard.FindBuffer, the text is retrieved from the search string buffer.

See also setText() and mimeData().

(QString, QString) QClipboard.text (self, QString subtype, Mode mode = QClipboard.Clipboard)

This is an overloaded function.

Returns the clipboard text in subtype subtype, or an empty string if the clipboard does not contain any text. If subtype is null, any subtype is acceptable, and subtype is set to the chosen subtype.

The mode argument is used to control which part of the system clipboard is used. If mode is QClipboard.Clipboard, the text is retrieved from the global clipboard. If mode is QClipboard.Selection, the text is retrieved from the global mouse selection.

Common values for subtype are "plain" and "html".

Note that calling this function repeatedly, for instance from a key event handler, may be slow. In such cases, you should use the dataChanged() signal instead.

See also setText() and mimeData().

QString QClipboard.text (self, QString subtype, Mode mode = QClipboard.Clipboard)


Qt Signal Documentation

void changed (QClipboard::Mode)

This is the default overload of this signal.

This signal is emitted when the data for the given clipboard mode is changed.

This function was introduced in Qt 4.2.

See also dataChanged(), selectionChanged(), and findBufferChanged().

void dataChanged ()

This is the default overload of this signal.

This signal is emitted when the clipboard data is changed.

On Mac OS X and with Qt version 4.3 or higher, clipboard changes made by other applications will only be detected when the application is activated.

See also findBufferChanged(), selectionChanged(), and changed().

void findBufferChanged ()

This is the default overload of this signal.

This signal is emitted when the find buffer is changed. This only applies to Mac OS X.

With Qt version 4.3 or higher, clipboard changes made by other applications will only be detected when the application is activated.

This function was introduced in Qt 4.2.

See also dataChanged(), selectionChanged(), and changed().

void selectionChanged ()

This is the default overload of this signal.

This signal is emitted when the selection is changed. This only applies to windowing systems that support selections, e.g. X11. Windows and Mac OS X don't support selections.

See also dataChanged(), findBufferChanged(), and changed().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcloseevent.html0000644000076500000240000001076312536324503020705 0ustar philstaff00000000000000 QCloseEvent Class Reference
  Home · All Classes · Modules

QCloseEvent Class Reference
[QtGui module]

The QCloseEvent class contains parameters that describe a close event. More...

Inherits QEvent.

Methods


Detailed Description

The QCloseEvent class contains parameters that describe a close event.

Close events are sent to widgets that the user wants to close, usually by choosing "Close" from the window menu, or by clicking the X title bar button. They are also sent when you call QWidget.close() to close a widget programmatically.

Close events contain a flag that indicates whether the receiver wants the widget to be closed or not. When a widget accepts the close event, it is hidden (and destroyed if it was created with the Qt.WA_DeleteOnClose flag). If it refuses to accept the close event nothing happens. (Under X11 it is possible that the window manager will forcibly close the window; but at the time of writing we are not aware of any window manager that does this.)

The event handler QWidget.closeEvent() receives close events. The default implementation of this event handler accepts the close event. If you do not want your widget to be hidden, or want some special handing, you should reimplement the event handler and ignore() the event.

The closeEvent() in the Application example shows a close event handler that asks whether to save a document before closing.

If you want the widget to be deleted when it is closed, create it with the Qt.WA_DeleteOnClose flag. This is very useful for independent top-level windows in a multi-window application.

QObjects emits the destroyed() signal when they are deleted.

If the last top-level window is closed, the QApplication.lastWindowClosed() signal is emitted.

The isAccepted() function returns true if the event's receiver has agreed to close the widget; call accept() to agree to close the widget and call ignore() if the receiver of this event does not want the widget to be closed.


Method Documentation

QCloseEvent.__init__ (self)

Constructs a close event object.

See also accept().

QCloseEvent.__init__ (self, QCloseEvent)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcolor.html0000644000076500000240000021126612536324501017653 0ustar philstaff00000000000000 QColor Class Reference
  Home · All Classes · Modules

QColor Class Reference
[QtGui module]

The QColor class provides colors based on RGB, HSV or CMYK values. More...

Types

  • enum Spec { Invalid, Rgb, Hsv, Cmyk, Hsl }

Methods

Static Methods

  • QStringList colorNames ()
  • QColor fromCmyk (int c, int m, int y, int k, int alpha = 255)
  • QColor fromCmykF (float c, float m, float y, float k, float alpha = 1)
  • QColor fromHsl (int h, int s, int l, int alpha = 255)
  • QColor fromHslF (float h, float s, float l, float alpha = 1)
  • QColor fromHsv (int h, int s, int v, int alpha = 255)
  • QColor fromHsvF (float h, float s, float v, float alpha = 1)
  • QColor fromRgb (int rgb)
  • QColor fromRgb (int r, int g, int b, int alpha = 255)
  • QColor fromRgba (int rgba)
  • QColor fromRgbF (float r, float g, float b, float alpha = 1)
  • bool isValidColor (QString name)
  • setAllowX11ColorNames (bool enabled)

Special Methods


Detailed Description

This class can be pickled.

A Qt.GlobalColor may be used whenever a QColor is expected.

The QColor class provides colors based on RGB, HSV or CMYK values.

A color is normally specified in terms of RGB (red, green, and blue) components, but it is also possible to specify it in terms of HSV (hue, saturation, and value) and CMYK (cyan, magenta, yellow and black) components. In addition a color can be specified using a color name. The color name can be any of the SVG 1.0 color names.

RGB HSV CMYK

The QColor constructor creates the color based on RGB values. To create a QColor based on either HSV or CMYK values, use the toHsv() and toCmyk() functions respectively. These functions return a copy of the color using the desired format. In addition the static fromRgb(), fromHsv() and fromCmyk() functions create colors from the specified values. Alternatively, a color can be converted to any of the three formats using the convertTo() function (returning a copy of the color in the desired format), or any of the setRgb(), setHsv() and setCmyk() functions altering this color's format. The spec() function tells how the color was specified.

A color can be set by passing an RGB string (such as "#112233"), or a color name (such as "blue"), to the setNamedColor() function. The color names are taken from the SVG 1.0 color names. The name() function returns the name of the color in the format "#RRGGBB". Colors can also be set using setRgb(), setHsv() and setCmyk(). To get a lighter or darker color use the lighter() and darker() functions respectively.

The isValid() function indicates whether a QColor is legal at all. For example, a RGB color with RGB values out of range is illegal. For performance reasons, QColor mostly disregards illegal colors, and for that reason, the result of using an invalid color is undefined.

The color components can be retrieved individually, e.g with red(), hue() and cyan(). The values of the color components can also be retrieved in one go using the getRgb(), getHsv() and getCmyk() functions. Using the RGB color model, the color components can in addition be accessed with rgb().

There are several related non-members: QRgb is a typdef for an unsigned int representing the RGB value triplet (r, g, b). Note that it also can hold a value for the alpha-channel (for more information, see the Alpha-Blended Drawing section). The qRed(), qBlue() and qGreen() functions return the respective component of the given QRgb value, while the qRgb() and qRgba() functions create and return the QRgb triplet based on the given component values. Finally, the qAlpha() function returns the alpha component of the provided QRgb, and the qGray() function calculates and return a gray value based on the given value.

QColor is platform and device independent. The QColormap class maps the color to the hardware.

For more information about painting in general, see the Paint System documentation.

Integer vs. Floating Point Precision

QColor supports floating point precision and provides floating point versions of all the color components functions, e.g. getRgbF(), hueF() and fromCmykF(). Note that since the components are stored using 16-bit integers, there might be minor deviations between the values set using, for example, setRgbF() and the values returned by the getRgbF() function due to rounding.

While the integer based functions take values in the range 0-255 (except hue() which must have values within the range 0-359), the floating point functions accept values in the range 0.0 - 1.0.

Alpha-Blended Drawing

QColor also support alpha-blended outlining and filling. The alpha channel of a color specifies the transparency effect, 0 represents a fully transparent color, while 255 represents a fully opaque color. For example:

 // Specify semi-transparent red
 painter.setBrush(QColor(255, 0, 0, 127));
 painter.drawRect(0, 0, width()/2, height());

 // Specify semi-transparent blue
 painter.setBrush(QColor(0, 0, 255, 127));
 painter.drawRect(0, 0, width(), height()/2);

The code above produces the following output:

Alpha-blended drawing is supported on Windows, Mac OS X, and on X11 systems that have the X Render extension installed.

The alpha channel of a color can be retrieved and set using the alpha() and setAlpha() functions if its value is an integer, and alphaF() and setAlphaF() if its value is qreal (double). By default, the alpha-channel is set to 255 (opaque). To retrieve and set all the RGB color components (including the alpha-channel) in one go, use the rgba() and setRgba() functions.

Predefined Colors

There are 20 predefined QColors described by the Qt.GlobalColor enum, including black, white, primary and secondary colors, darker versions of these colors and three shades of gray. QColor also recognizes a variety of color names; the static colorNames() function returns a QStringList color names that QColor knows about.

Qt Colors

Additionally, the Qt.color0, Qt.color1 and Qt.transparent colors are used for special purposes.

Qt.color0 (zero pixel value) and Qt.color1 (non-zero pixel value) are special colors for drawing in QBitmaps. Painting with Qt.color0 sets the bitmap bits to 0 (transparent; i.e., background), and painting with Qt.color1 sets the bits to 1 (opaque; i.e., foreground).

Qt.transparent is used to indicate a transparent pixel. When painting with this value, a pixel value will be used that is appropriate for the underlying pixel format in use.

The HSV Color Model

The RGB model is hardware-oriented. Its representation is close to what most monitors show. In contrast, HSV represents color in a way more suited to the human perception of color. For example, the relationships "stronger than", "darker than", and "the opposite of" are easily expressed in HSV but are much harder to express in RGB.

HSV, like RGB, has three components:

  • H, for hue, is in the range 0 to 359 if the color is chromatic (not gray), or meaningless if it is gray. It represents degrees on the color wheel familiar to most people. Red is 0 (degrees), green is 120, and blue is 240.

  • S, for saturation, is in the range 0 to 255, and the bigger it is, the stronger the color is. Grayish colors have saturation near 0; very strong colors have saturation near 255.

  • V, for value, is in the range 0 to 255 and represents lightness or brightness of the color. 0 is black; 255 is as far from black as possible.

Here are some examples: pure red is H=0, S=255, V=255; a dark red, moving slightly towards the magenta, could be H=350 (equivalent to -10), S=255, V=180; a grayish light red could have H about 0 (say 350-359 or 0-10), S about 50-100, and S=255.

Qt returns a hue value of -1 for achromatic colors. If you pass a hue value that is too large, Qt forces it into range. Hue 360 or 720 is treated as 0; hue 540 is treated as 180.

In addition to the standard HSV model, Qt provides an alpha-channel to feature alpha-blended drawing.

The HSL Color Model

HSL is similar to HSV. Instead of value parameter from HSV, HSL has the lightness parameter. The lightness parameter goes from black to color and from color to white. If you go outside at the night its black or dark gray. At day its colorful but if you look in a really strong light a things they are going to white and wash out.

The CMYK Color Model

While the RGB and HSV color models are used for display on computer monitors, the CMYK model is used in the four-color printing process of printing presses and some hard-copy devices.

CMYK has four components, all in the range 0-255: cyan (C), magenta (M), yellow (Y) and black (K). Cyan, magenta and yellow are called subtractive colors; the CMYK color model creates color by starting with a white surface and then subtracting color by applying the appropriate components. While combining cyan, magenta and yellow gives the color black, subtracting one or more will yield any other color. When combined in various percentages, these three colors can create the entire spectrum of colors.

Mixing 100 percent of cyan, magenta and yellow does produce black, but the result is unsatisfactory since it wastes ink, increases drying time, and gives a muddy colour when printing. For that reason, black is added in professional printing to provide a solid black tone; hence the term 'four color process'.

In addition to the standard CMYK model, Qt provides an alpha-channel to feature alpha-blended drawing.


Type Documentation

QColor.Spec

The type of color specified, either RGB, HSV, CMYK or HSL.

Constant Value
QColor.Rgb 1
QColor.Hsv 2
QColor.Cmyk 3
QColor.Hsl 4
QColor.Invalid 0

See also spec() and convertTo().


Method Documentation

QColor.__init__ (self, Qt.GlobalColor color)

Constructs an invalid color with the RGB value (0, 0, 0). An invalid color is a color that is not properly set up for the underlying window system.

The alpha value of an invalid color is unspecified.

See also isValid().

QColor.__init__ (self, int rgb)

Constructs a color with the RGB value r, g, b, and the alpha-channel (transparency) value of a.

The color is left invalid if any of the arguments are invalid.

See also setRgba() and isValid().

QColor.__init__ (self, QVariant variant)

Constructs a color with the value color. The alpha component is ignored and set to solid.

See also fromRgb() and isValid().

QColor.__init__ (self)

Constructs a named color in the same way as setNamedColor() using the given name.

The color is left invalid if the name cannot be parsed.

See also setNamedColor(), name(), and isValid().

QColor.__init__ (self, int r, int g, int b, int alpha = 255)

Constructs a named color in the same way as setNamedColor() using the given name.

The color is left invalid if the name cannot be parsed.

See also setNamedColor(), name(), and isValid().

QColor.__init__ (self, QString aname)

Constructs a color that is a copy of color.

See also isValid().

QColor.__init__ (self, QColor acolor)

bool QColor.allowX11ColorNames ()

Returns true if setNamedColor() is allowed to look up colors in the X11 color database. By default, this function returns false.

Note: This function is only available on the X11 platform.

See also setAllowX11ColorNames().

int QColor.alpha (self)

Returns the alpha color component of this color.

See also setAlpha(), alphaF(), and Alpha-Blended Drawing.

float QColor.alphaF (self)

Returns the alpha color component of this color.

See also setAlphaF(), alpha(), and Alpha-Blended Drawing.

int QColor.black (self)

Returns the black color component of this color.

See also blackF(), getCmyk(), and The CMYK Color Model.

float QColor.blackF (self)

Returns the black color component of this color.

See also black(), getCmykF(), and The CMYK Color Model.

int QColor.blue (self)

Returns the blue color component of this color.

See also setBlue(), blueF(), and getRgb().

float QColor.blueF (self)

Returns the blue color component of this color.

See also setBlueF(), blue(), and getRgbF().

QStringList QColor.colorNames ()

Returns a QStringList containing the color names Qt knows about.

See also Predefined Colors.

QColor QColor.convertTo (self, Spec colorSpec)

Creates a copy of this color in the format specified by colorSpec.

See also spec(), toCmyk(), toHsv(), toRgb(), and isValid().

int QColor.cyan (self)

Returns the cyan color component of this color.

See also cyanF(), getCmyk(), and The CMYK Color Model.

float QColor.cyanF (self)

Returns the cyan color component of this color.

See also cyan(), getCmykF(), and The CMYK Color Model.

QColor QColor.dark (self, int factor = 200)

QColor QColor.darker (self, int factor = 200)

Returns a darker (or lighter) color, but does not change this object.

If the factor is greater than 100, this functions returns a darker color. Setting factor to 300 returns a color that has one-third the brightness. If the factor is less than 100, the return color is lighter, but we recommend using the lighter() function for this purpose. If the factor is 0 or negative, the return value is unspecified.

The function converts the current RGB color to HSV, divides the value (V) component by factor and converts the color back to RGB.

This function was introduced in Qt 4.3.

See also lighter() and isValid().

QColor QColor.fromCmyk (int c, int m, int y, int k, int alpha = 255)

Static convenience function that returns a QColor constructed from the given CMYK color values: c (cyan), m (magenta), y (yellow), k (black), and a (alpha-channel, i.e. transparency).

All the values must be in the range 0-255.

See also toCmyk(), fromCmykF(), isValid(), and The CMYK Color Model.

QColor QColor.fromCmykF (float c, float m, float y, float k, float alpha = 1)

This is an overloaded function.

Static convenience function that returns a QColor constructed from the given CMYK color values: c (cyan), m (magenta), y (yellow), k (black), and a (alpha-channel, i.e. transparency).

All the values must be in the range 0.0-1.0.

See also toCmyk(), fromCmyk(), isValid(), and The CMYK Color Model.

QColor QColor.fromHsl (int h, int s, int l, int alpha = 255)

Static convenience function that returns a QColor constructed from the HSV color values, h (hue), s (saturation), l (lightness), and a (alpha-channel, i.e. transparency).

The value of s, l, and a must all be in the range 0-255; the value of h must be in the range 0-359.

This function was introduced in Qt 4.6.

See also toHsl(), fromHslF(), and isValid().

QColor QColor.fromHslF (float h, float s, float l, float alpha = 1)

This is an overloaded function.

Static convenience function that returns a QColor constructed from the HSV color values, h (hue), s (saturation), l (lightness), and a (alpha-channel, i.e. transparency).

All the values must be in the range 0.0-1.0.

This function was introduced in Qt 4.6.

See also toHsl(), fromHsl(), and isValid().

QColor QColor.fromHsv (int h, int s, int v, int alpha = 255)

Static convenience function that returns a QColor constructed from the HSV color values, h (hue), s (saturation), v (value), and a (alpha-channel, i.e. transparency).

The value of s, v, and a must all be in the range 0-255; the value of h must be in the range 0-359.

See also toHsv(), fromHsvF(), isValid(), and The HSV Color Model.

QColor QColor.fromHsvF (float h, float s, float v, float alpha = 1)

This is an overloaded function.

Static convenience function that returns a QColor constructed from the HSV color values, h (hue), s (saturation), v (value), and a (alpha-channel, i.e. transparency).

All the values must be in the range 0.0-1.0.

See also toHsv(), fromHsv(), isValid(), and The HSV Color Model.

QColor QColor.fromRgb (int rgb)

Static convenience function that returns a QColor constructed from the given QRgb value rgb.

The alpha component of rgb is ignored (i.e. it is automatically set to 255), use the fromRgba() function to include the alpha-channel specified by the given QRgb value.

See also fromRgba(), fromRgbF(), toRgb(), and isValid().

QColor QColor.fromRgb (int r, int g, int b, int alpha = 255)

Static convenience function that returns a QColor constructed from the RGB color values, r (red), g (green), b (blue), and a (alpha-channel, i.e. transparency).

All the values must be in the range 0-255.

See also toRgb(), fromRgbF(), and isValid().

QColor QColor.fromRgba (int rgba)

Static convenience function that returns a QColor constructed from the given QRgb value rgba.

Unlike the fromRgb() function, the alpha-channel specified by the given QRgb value is included.

See also fromRgb() and isValid().

QColor QColor.fromRgbF (float r, float g, float b, float alpha = 1)

Static convenience function that returns a QColor constructed from the RGB color values, r (red), g (green), b (blue), and a (alpha-channel, i.e. transparency).

All the values must be in the range 0.0-1.0.

See also fromRgb(), toRgb(), and isValid().

(int c, int m, int y, int k, int alpha) QColor.getCmyk (self)

Sets the contents pointed to by c, m, y, k, and a, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.

These components can be retrieved individually using the cyan(), magenta(), yellow(), black() and alpha() functions.

See also setCmyk() and The CMYK Color Model.

(float c, float m, float y, float k, float alpha) QColor.getCmykF (self)

Sets the contents pointed to by c, m, y, k, and a, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.

These components can be retrieved individually using the cyanF(), magentaF(), yellowF(), blackF() and alphaF() functions.

See also setCmykF() and The CMYK Color Model.

(int h, int s, int l, int alpha) QColor.getHsl (self)

Sets the contents pointed to by h, s, l, and a, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.

These components can be retrieved individually using the hueHsl(), saturationHsl(), lightness() and alpha() functions.

This function was introduced in Qt 4.6.

See also setHsl().

(float h, float s, float l, float alpha) QColor.getHslF (self)

Sets the contents pointed to by h, s, l, and a, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.

These components can be retrieved individually using the hueHslF(), saturationHslF(), lightnessF() and alphaF() functions.

This function was introduced in Qt 4.6.

See also setHsl().

(int h, int s, int v, int alpha) QColor.getHsv (self)

Sets the contents pointed to by h, s, v, and a, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.

These components can be retrieved individually using the hue(), saturation(), value() and alpha() functions.

See also setHsv() and The HSV Color Model.

(float h, float s, float v, float alpha) QColor.getHsvF (self)

Sets the contents pointed to by h, s, v, and a, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.

These components can be retrieved individually using the hueF(), saturationF(), valueF() and alphaF() functions.

See also setHsv() and The HSV Color Model.

(int r, int g, int b, int alpha) QColor.getRgb (self)

Sets the contents pointed to by r, g, b, and a, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.

These components can be retrieved individually using the red(), green(), blue() and alpha() functions.

See also rgb() and setRgb().

(float r, float g, float b, float alpha) QColor.getRgbF (self)

Sets the contents pointed to by r, g, b, and a, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.

These components can be retrieved individually using the redF(), greenF(), blueF() and alphaF() functions.

See also rgb() and setRgb().

int QColor.green (self)

Returns the green color component of this color.

See also setGreen(), greenF(), and getRgb().

float QColor.greenF (self)

Returns the green color component of this color.

See also setGreenF(), green(), and getRgbF().

int QColor.hslHue (self)

Returns the hue color component of this color.

This function was introduced in Qt 4.6.

See also getHslF() and getHsl().

float QColor.hslHueF (self)

Returns the hue color component of this color.

This function was introduced in Qt 4.6.

See also hue() and getHslF().

int QColor.hslSaturation (self)

Returns the saturation color component of this color.

This function was introduced in Qt 4.6.

See also saturationF(), getHsv(), and The HSV Color Model.

float QColor.hslSaturationF (self)

Returns the saturation color component of this color.

This function was introduced in Qt 4.6.

See also saturationF() and getHslF().

int QColor.hsvHue (self)

Returns the hue color component of this color.

See also hueF(), getHsv(), and The HSV Color Model.

float QColor.hsvHueF (self)

Returns the hue color component of this color.

See also hue(), getHsvF(), and The HSV Color Model.

int QColor.hsvSaturation (self)

Returns the saturation color component of this color.

See also saturationF(), getHsv(), and The HSV Color Model.

float QColor.hsvSaturationF (self)

Returns the saturation color component of this color.

See also saturation(), getHsvF(), and The HSV Color Model.

int QColor.hue (self)

Returns the hue color component of this color.

The color is implicitly converted to HSV.

See also hsvHue(), hueF(), getHsv(), and The HSV Color Model.

float QColor.hueF (self)

Returns the hue color component of this color.

The color is implicitly converted to HSV.

See also hsvHueF(), hue(), getHsvF(), and The HSV Color Model.

bool QColor.isValid (self)

Returns true if the color is valid; otherwise returns false.

bool QColor.isValidColor (QString name)

Returns true if the name is a valid color name and can be used to construct a valid QColor object, otherwise returns false.

It uses the same algorithm used in setNamedColor().

This function was introduced in Qt 4.7.

See also setNamedColor().

QColor QColor.light (self, int factor = 150)

QColor QColor.lighter (self, int factor = 150)

Returns a lighter (or darker) color, but does not change this object.

If the factor is greater than 100, this functions returns a lighter color. Setting factor to 150 returns a color that is 50% brighter. If the factor is less than 100, the return color is darker, but we recommend using the darker() function for this purpose. If the factor is 0 or negative, the return value is unspecified.

The function converts the current RGB color to HSV, multiplies the value (V) component by factor and converts the color back to RGB.

This function was introduced in Qt 4.3.

See also darker() and isValid().

int QColor.lightness (self)

Returns the lightness color component of this color.

This function was introduced in Qt 4.6.

See also lightnessF() and getHsl().

float QColor.lightnessF (self)

Returns the lightness color component of this color.

This function was introduced in Qt 4.6.

See also value() and getHslF().

int QColor.magenta (self)

Returns the magenta color component of this color.

See also magentaF(), getCmyk(), and The CMYK Color Model.

float QColor.magentaF (self)

Returns the magenta color component of this color.

See also magenta(), getCmykF(), and The CMYK Color Model.

QString QColor.name (self)

Returns the name of the color in the format "#RRGGBB"; i.e. a "#" character followed by three two-digit hexadecimal numbers.

See also setNamedColor().

int QColor.red (self)

Returns the red color component of this color.

See also setRed(), redF(), and getRgb().

float QColor.redF (self)

Returns the red color component of this color.

See also setRedF(), red(), and getRgbF().

int QColor.rgb (self)

Returns the RGB value of the color. The alpha value is opaque.

See also setRgb(), getRgb(), and rgba().

int QColor.rgba (self)

Returns the RGB value of the color, including its alpha.

For an invalid color, the alpha value of the returned color is unspecified.

See also setRgba() and rgb().

int QColor.saturation (self)

Returns the saturation color component of this color.

The color is implicitly converted to HSV.

See also hsvSaturation(), saturationF(), getHsv(), and The HSV Color Model.

float QColor.saturationF (self)

Returns the saturation color component of this color.

The color is implicitly converted to HSV.

See also hsvSaturationF(), saturation(), getHsvF(), and The HSV Color Model.

QColor.setAllowX11ColorNames (bool enabled)

Allow setNamedColor() to look up colors in the X11 color database if enabled. By default, setNamedColor() does not look up colors in the X11 color database.

Note: This function is only available on the X11 platform.

See also setNamedColor() and allowX11ColorNames().

QColor.setAlpha (self, int alpha)

Sets the alpha of this color to alpha. Integer alpha is specified in the range 0-255.

See also alpha(), alphaF(), and Alpha-Blended Drawing.

QColor.setAlphaF (self, float alpha)

Sets the alpha of this color to alpha. qreal alpha is specified in the range 0.0-1.0.

See also alphaF(), alpha(), and Alpha-Blended Drawing.

QColor.setBlue (self, int blue)

Sets the blue color component of this color to blue. Integer components are specified in the range 0-255.

See also blue(), blueF(), and setRgb().

QColor.setBlueF (self, float blue)

Sets the blue color component of this color to blue. Float components are specified in the range 0.0-1.0.

See also blueF(), blue(), and setRgbF().

QColor.setCmyk (self, int c, int m, int y, int k, int alpha = 255)

Sets the color to CMYK values, c (cyan), m (magenta), y (yellow), k (black), and a (alpha-channel, i.e. transparency).

All the values must be in the range 0-255.

See also getCmyk(), setCmykF(), and The CMYK Color Model.

QColor.setCmykF (self, float c, float m, float y, float k, float alpha = 1)

This is an overloaded function.

Sets the color to CMYK values, c (cyan), m (magenta), y (yellow), k (black), and a (alpha-channel, i.e. transparency).

All the values must be in the range 0.0-1.0.

See also getCmykF(), setCmyk(), and The CMYK Color Model.

QColor.setGreen (self, int green)

Sets the green color component of this color to green. Integer components are specified in the range 0-255.

See also green(), greenF(), and setRgb().

QColor.setGreenF (self, float green)

Sets the green color component of this color to green. Float components are specified in the range 0.0-1.0.

See also greenF(), green(), and setRgbF().

QColor.setHsl (self, int h, int s, int l, int alpha = 255)

Sets a HSL color value; h is the hue, s is the saturation, l is the lightness and a is the alpha component of the HSL color.

The saturation, value and alpha-channel values must be in the range 0-255, and the hue value must be greater than -1.

This function was introduced in Qt 4.6.

See also getHsl() and setHslF().

QColor.setHslF (self, float h, float s, float l, float alpha = 1)

Sets a HSL color lightness; h is the hue, s is the saturation, l is the lightness and a is the alpha component of the HSL color.

All the values must be in the range 0.0-1.0.

This function was introduced in Qt 4.6.

See also getHslF() and setHsl().

QColor.setHsv (self, int h, int s, int v, int alpha = 255)

Sets a HSV color value; h is the hue, s is the saturation, v is the value and a is the alpha component of the HSV color.

The saturation, value and alpha-channel values must be in the range 0-255, and the hue value must be greater than -1.

See also hsv(), getHsv(), setHsvF(), and The HSV Color Model.

QColor.setHsvF (self, float h, float s, float v, float alpha = 1)

Sets a HSV color value; h is the hue, s is the saturation, v is the value and a is the alpha component of the HSV color.

All the values must be in the range 0.0-1.0.

See also getHsvF(), setHsv(), and The HSV Color Model.

QColor.setNamedColor (self, QString name)

Sets the RGB value of this QColor to name, which may be in one of these formats:

  • #RGB (each of R, G, and B is a single hex digit)
  • #RRGGBB
  • #RRRGGGBBB
  • #RRRRGGGGBBBB
  • A name from the list of colors defined in the list of SVG color keyword names provided by the World Wide Web Consortium; for example, "steelblue" or "gainsboro". These color names work on all platforms. Note that these color names are not the same as defined by the Qt.GlobalColor enums, e.g. "green" and Qt.green does not refer to the same color.
  • transparent - representing the absence of a color.
  • X11 only: If allowX11ColorNames() returns true, any valid X11 color name. See the documentation for XParseColor() for information about valid X11 color names.

The color is invalid if name cannot be parsed.

See also QColor(), name(), isValid(), and allowX11ColorNames().

QColor.setRed (self, int red)

Sets the red color component of this color to red. Integer components are specified in the range 0-255.

See also red(), redF(), and setRgb().

QColor.setRedF (self, float red)

Sets the red color component of this color to red. Float components are specified in the range 0.0-1.0.

See also redF(), red(), and setRgbF().

QColor.setRgb (self, int r, int g, int b, int alpha = 255)

Sets the RGB value to r, g, b and the alpha value to a.

All the values must be in the range 0-255.

See also rgb(), getRgb(), and setRgbF().

QColor.setRgb (self, int rgb)

This is an overloaded function.

Sets the RGB value to rgb. The alpha value is set to opaque.

QColor.setRgba (self, int rgba)

Sets the RGB value to rgba, including its alpha.

See also rgba() and rgb().

QColor.setRgbF (self, float r, float g, float b, float alpha = 1)

Sets the color channels of this color to r (red), g (green), b (blue) and a (alpha, transparency).

All values must be in the range 0.0-1.0.

See also rgb(), getRgbF(), and setRgb().

Spec QColor.spec (self)

Returns how the color was specified.

See also Spec and convertTo().

QColor QColor.toCmyk (self)

Creates and returns a CMYK QColor based on this color.

See also fromCmyk(), convertTo(), isValid(), and The CMYK Color Model.

QColor QColor.toHsl (self)

Creates and returns an HSL QColor based on this color.

See also fromHsl(), convertTo(), and isValid().

QColor QColor.toHsv (self)

Creates and returns an HSV QColor based on this color.

See also fromHsv(), convertTo(), isValid(), and The HSV Color Model.

QColor QColor.toRgb (self)

Create and returns an RGB QColor based on this color.

See also fromRgb(), convertTo(), and isValid().

int QColor.value (self)

Returns the value color component of this color.

See also valueF(), getHsv(), and The HSV Color Model.

float QColor.valueF (self)

Returns the value color component of this color.

See also value(), getHsvF(), and The HSV Color Model.

int QColor.yellow (self)

Returns the yellow color component of this color.

See also yellowF(), getCmyk(), and The CMYK Color Model.

float QColor.yellowF (self)

Returns the yellow color component of this color.

See also yellow(), getCmykF(), and The CMYK Color Model.

bool QColor.__eq__ (self, QColor c)

bool QColor.__ne__ (self, QColor c)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcolordialog-colordialogoptions.html0000644000076500000240000001512512536324502024740 0ustar philstaff00000000000000 QColorDialog.ColorDialogOptions Class Reference
  Home · All Classes · Modules

QColorDialog.ColorDialogOptions Class Reference
[QtGui module]

Methods

Special Methods

  • ColorDialogOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, ColorDialogOptions f)
  • ColorDialogOptions __iand__ (self, int mask)
  • int __int__ (self)
  • ColorDialogOptions __invert__ (self)
  • ColorDialogOptions __ior__ (self, ColorDialogOptions f)
  • ColorDialogOptions __ixor__ (self, ColorDialogOptions f)
  • bool __ne__ (self, ColorDialogOptions f)
  • ColorDialogOptions __or__ (self, ColorDialogOptions f)
  • ColorDialogOptions __or__ (self, int f)
  • ColorDialogOptions __xor__ (self, ColorDialogOptions f)
  • ColorDialogOptions __xor__ (self, int f)

Detailed Description


Method Documentation

ColorDialogOptions.__init__ (self, ColorDialogOptions)

ColorDialogOptions.__init__ (self, int)

ColorDialogOptions.__init__ (self)

ColorDialogOptions ColorDialogOptions.__and__ (self, int mask)

int ColorDialogOptions.__bool__ (self)

bool ColorDialogOptions.__eq__ (self, ColorDialogOptions f)

ColorDialogOptions ColorDialogOptions.__iand__ (self, int mask)

int ColorDialogOptions.__int__ (self)

ColorDialogOptions ColorDialogOptions.__invert__ (self)

ColorDialogOptions ColorDialogOptions.__ior__ (self, ColorDialogOptions f)

ColorDialogOptions ColorDialogOptions.__ixor__ (self, ColorDialogOptions f)

bool ColorDialogOptions.__ne__ (self, ColorDialogOptions f)

ColorDialogOptions ColorDialogOptions.__or__ (self, ColorDialogOptions f)

ColorDialogOptions ColorDialogOptions.__or__ (self, int f)

ColorDialogOptions ColorDialogOptions.__xor__ (self, ColorDialogOptions f)

ColorDialogOptions ColorDialogOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcolordialog.html0000644000076500000240000004171312536324502021032 0ustar philstaff00000000000000 QColorDialog Class Reference
  Home · All Classes · Modules

QColorDialog Class Reference
[QtGui module]

The QColorDialog class provides a dialog widget for specifying colors. More...

Inherits QDialog.

Types

Methods

Static Methods

Qt Signals


Detailed Description

The QColorDialog class provides a dialog widget for specifying colors.

The color dialog's function is to allow users to choose colors. For example, you might use this in a drawing program to allow the user to set the brush color.

The static functions provide modal color dialogs.

The static getColor() function shows the dialog, and allows the user to specify a color. This function can also be used to let users choose a color with a level of transparency: pass the ShowAlphaChannel option as an additional argument.

The user can store customCount() different custom colors. The custom colors are shared by all color dialogs, and remembered during the execution of the program. Use setCustomColor() to set the custom colors, and use customColor() to get them.

The Standard Dialogs example shows how to use QColorDialog as well as other built-in Qt dialogs.

A color dialog in the Plastique widget style.


Type Documentation

QColorDialog.ColorDialogOption

This enum specifies various options that affect the look and feel of a color dialog.

Constant Value Description
QColorDialog.ShowAlphaChannel 0x00000001 Allow the user to select the alpha component of a color.
QColorDialog.NoButtons 0x00000002 Don't display OK and Cancel buttons. (Useful for "live dialogs".)
QColorDialog.DontUseNativeDialog 0x00000004 Use Qt's standard color dialog on the Mac instead of the operating system native color dialog.

This enum was introduced or modified in Qt 4.5.

The ColorDialogOptions type is a typedef for QFlags<ColorDialogOption>. It stores an OR combination of ColorDialogOption values.

See also options, setOption(), testOption(), and windowModality().


Method Documentation

QColorDialog.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a color dialog with the given parent.

This function was introduced in Qt 4.5.

QColorDialog.__init__ (self, QColor initial, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a color dialog with the given parent and specified initial color.

This function was introduced in Qt 4.5.

QColorDialog.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

QColor QColorDialog.currentColor (self)

int QColorDialog.customColor (int)

Returns the custom color at the given index as a QRgb value.

This function was introduced in Qt 4.5.

See also setCustomColor().

int QColorDialog.customCount ()

Returns the number of custom colors supported by QColorDialog. All color dialogs share the same custom colors.

QColorDialog.done (self, int result)

Reimplemented from QDialog.done().

Closes the dialog and sets its result code to result. If this dialog is shown with exec_(), done() causes the local event loop to finish, and exec_() to return result.

See also QDialog.done().

QColor QColorDialog.getColor (QColor initial = Qt.white, QWidget parent = None)

Pops up a modal color dialog with the given window title (or "Select Color" if none is specified), lets the user choose a color, and returns that color. The color is initially set to initial. The dialog is a child of parent. It returns an invalid (see QColor.isValid()) color if the user cancels the dialog.

The options argument allows you to customize the dialog.

On Symbian, this static function will use the native color dialog and not a QColorDialog. On Symbian the parameters title and parent has no relevance and the options parameter is only used to define if the native color dialog is used or not.

This function was introduced in Qt 4.5.

QColor QColorDialog.getColor (QColor initial, QWidget parent, QString title, ColorDialogOptions options = 0)

Pops up a modal color dialog, lets the user choose a color, and returns that color. The color is initially set to initial. The dialog is a child of parent. It returns an invalid (see QColor.isValid()) color if the user cancels the dialog.

On Symbian, this static function will use the native color dialog and not a QColorDialog.

(int, bool ok) QColorDialog.getRgba (int initial = 4294967295, QWidget parent = None)

QColorDialog.open (self)

Shows the dialog as a window modal dialog, returning immediately.

This function was introduced in Qt 4.5.

See also QDialog.open().

QColorDialog.open (self, QObject receiver, SLOT()SLOT() member)

This is an overloaded function.

Opens the dialog and connects its colorSelected() signal to the slot specified by receiver and member.

The signal will be disconnected from the slot when the dialog is closed.

This function was introduced in Qt 4.5.

QColorDialog.open (self, callable receiver)

ColorDialogOptions QColorDialog.options (self)

QColor QColorDialog.selectedColor (self)

Returns the color that the user selected by clicking the OK or equivalent button.

Note: This color is not always the same as the color held by the currentColor property since the user can choose different colors before finally selecting the one to use.

QColorDialog.setCurrentColor (self, QColor color)

QColorDialog.setCustomColor (int, int)

Sets the custom color at index to the QRgb color value.

Note: This function does not apply to the Native Color Dialog on the Mac OS X platform. If you still require this function, use the QColorDialog.DontUseNativeDialog option.

See also customColor().

QColorDialog.setOption (self, ColorDialogOption option, bool on = True)

Sets the given option to be enabled if on is true; otherwise, clears the given option.

See also options and testOption().

QColorDialog.setOptions (self, ColorDialogOptions options)

QColorDialog.setStandardColor (int, int)

Sets the standard color at index to the QRgb color value.

Note: This function does not apply to the Native Color Dialog on the Mac OS X platform. If you still require this function, use the QColorDialog.DontUseNativeDialog option.

QColorDialog.setVisible (self, bool visible)

Reimplemented from QWidget.setVisible().

Changes the visibility of the dialog. If visible is true, the dialog is shown; otherwise, it is hidden.

bool QColorDialog.testOption (self, ColorDialogOption option)

Returns true if the given option is enabled; otherwise, returns false.

This function was introduced in Qt 4.5.

See also options and setOption().


Qt Signal Documentation

void colorSelected (const QColor&)

This is the default overload of this signal.

This signal is emitted just after the user has clicked OK to select a color to use. The chosen color is specified by color.

See also color and currentColorChanged().

void currentColorChanged (const QColor&)

This is the default overload of this signal.

This signal is emitted whenever the current color changes in the dialog. The current color is specified by color.

See also color and colorSelected().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcolumnview.html0000644000076500000240000003734512536324502020732 0ustar philstaff00000000000000 QColumnView Class Reference
  Home · All Classes · Modules

QColumnView Class Reference
[QtGui module]

The QColumnView class provides a model/view implementation of a column view. More...

Inherits QAbstractItemView.

Methods

Qt Signals


Detailed Description

The QColumnView class provides a model/view implementation of a column view.

QColumnView displays a model in a number of QListViews, one for each hierarchy in the tree. This is sometimes referred to as a cascading list.

The QColumnView class is one of the Model/View Classes and is part of Qt's model/view framework.

QColumnView implements the interfaces defined by the QAbstractItemView class to allow it to display data provided by models derived from the QAbstractItemModel class.


Method Documentation

QColumnView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a column view with a parent to represent a model's data. Use setModel() to set the model.

See also QAbstractItemModel.

list-of-int QColumnView.columnWidths (self)

Returns a list of the width of all the columns in this view.

See also setColumnWidths().

QAbstractItemView QColumnView.createColumn (self, QModelIndex rootIndex)

To use a custom widget for the final column when you select an item overload this function and return a widget. index is the root index that will be assigned to the view.

Return the new view. QColumnView will automatically take ownership of the widget.

See also setPreviewWidget().

QColumnView.currentChanged (self, QModelIndex current, QModelIndex previous)

This method is also a Qt slot with the C++ signature void currentChanged(const QModelIndex&,const QModelIndex&).

Reimplemented from QAbstractItemView.currentChanged().

int QColumnView.horizontalOffset (self)

Reimplemented from QAbstractItemView.horizontalOffset().

QModelIndex QColumnView.indexAt (self, QPoint point)

Reimplemented from QAbstractItemView.indexAt().

QColumnView.initializeColumn (self, QAbstractItemView column)

Copies the behavior and options of the column view and applies them to the column such as the iconSize(), textElideMode() and alternatingRowColors(). This can be useful when reimplementing createColumn().

This function was introduced in Qt 4.4.

See also createColumn().

bool QColumnView.isIndexHidden (self, QModelIndex index)

Reimplemented from QAbstractItemView.isIndexHidden().

QModelIndex QColumnView.moveCursor (self, QAbstractItemView.CursorAction cursorAction, Qt.KeyboardModifiers modifiers)

Reimplemented from QAbstractItemView.moveCursor().

Move left should go to the parent index Move right should go to the child index or down if there is no child

QWidget QColumnView.previewWidget (self)

Returns the preview widget, or 0 if there is none.

See also setPreviewWidget() and updatePreviewWidget().

QColumnView.resizeEvent (self, QResizeEvent event)

Reimplemented from QWidget.resizeEvent().

bool QColumnView.resizeGripsVisible (self)

QColumnView.rowsInserted (self, QModelIndex parent, int start, int end)

Reimplemented from QAbstractItemView.rowsInserted().

QColumnView.scrollContentsBy (self, int dx, int dy)

Reimplemented from QAbstractScrollArea.scrollContentsBy().

QColumnView.scrollTo (self, QModelIndex index, QAbstractItemView.ScrollHint hint = QAbstractItemView.EnsureVisible)

Reimplemented from QAbstractItemView.scrollTo().

QColumnView.selectAll (self)

Reimplemented from QAbstractItemView.selectAll().

QColumnView.setColumnWidths (self, list-of-int list)

Sets the column widths to the values given in the list. Extra values in the list are kept and used when the columns are created.

If list contains too few values, only width of the rest of the columns will not be modified.

See also columnWidths() and createColumn().

QColumnView.setModel (self, QAbstractItemModel model)

Reimplemented from QAbstractItemView.setModel().

QColumnView.setPreviewWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the preview widget.

The widget becomes a child of the column view, and will be destroyed when the column area is deleted or when a new widget is set.

See also previewWidget() and updatePreviewWidget().

QColumnView.setResizeGripsVisible (self, bool visible)

QColumnView.setRootIndex (self, QModelIndex index)

Reimplemented from QAbstractItemView.setRootIndex().

QColumnView.setSelection (self, QRect rect, QItemSelectionModel.SelectionFlags command)

Reimplemented from QAbstractItemView.setSelection().

QColumnView.setSelectionModel (self, QItemSelectionModel selectionModel)

Reimplemented from QAbstractItemView.setSelectionModel().

QSize QColumnView.sizeHint (self)

Reimplemented from QWidget.sizeHint().

int QColumnView.verticalOffset (self)

Reimplemented from QAbstractItemView.verticalOffset().

QRect QColumnView.visualRect (self, QModelIndex index)

Reimplemented from QAbstractItemView.visualRect().

QRegion QColumnView.visualRegionForSelection (self, QItemSelection selection)

Reimplemented from QAbstractItemView.visualRegionForSelection().


Qt Signal Documentation

void updatePreviewWidget (const QModelIndex&)

This is the default overload of this signal.

This signal is emitted when the preview widget should be updated to provide rich information about index

See also previewWidget().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcombobox.html0000644000076500000240000013443112536324502020344 0ustar philstaff00000000000000 QComboBox Class Reference
  Home · All Classes · Modules

QComboBox Class Reference
[QtGui module]

The QComboBox widget is a combined button and popup list. More...

Inherits QWidget.

Inherited by QFontComboBox.

Types

  • enum InsertPolicy { NoInsert, InsertAtTop, InsertAtCurrent, InsertAtBottom, ..., InsertAlphabetically }
  • enum SizeAdjustPolicy { AdjustToContents, AdjustToContentsOnFirstShow, AdjustToMinimumContentsLength, AdjustToMinimumContentsLengthWithIcon }

Methods

Special Methods

Qt Signals


Detailed Description

The QComboBox widget is a combined button and popup list.

A QComboBox provides a means of presenting a list of options to the user in a way that takes up the minimum amount of screen space.

A combobox is a selection widget that displays the current item, and can pop up a list of selectable items. A combobox may be editable, allowing the user to modify each item in the list.

Comboboxes can contain pixmaps as well as strings; the insertItem() and setItemText() functions are suitably overloaded. For editable comboboxes, the function clearEditText() is provided, to clear the displayed string without changing the combobox's contents.

There are two signals emitted if the current item of a combobox changes, currentIndexChanged() and activated(). currentIndexChanged() is always emitted regardless if the change was done programmatically or by user interaction, while activated() is only emitted when the change is caused by user interaction. The highlighted() signal is emitted when the user highlights an item in the combobox popup list. All three signals exist in two versions, one with a QString argument and one with an int argument. If the user selects or highlights a pixmap, only the int signals are emitted. Whenever the text of an editable combobox is changed the editTextChanged() signal is emitted.

When the user enters a new string in an editable combobox, the widget may or may not insert it, and it can insert it in several locations. The default policy is is AtBottom but you can change this using setInsertPolicy().

It is possible to constrain the input to an editable combobox using QValidator; see setValidator(). By default, any input is accepted.

A combobox can be populated using the insert functions, insertItem() and insertItems() for example. Items can be changed with setItemText(). An item can be removed with removeItem() and all items can be removed with clear(). The text of the current item is returned by currentText(), and the text of a numbered item is returned with text(). The current item can be set with setCurrentIndex(). The number of items in the combobox is returned by count(); the maximum number of items can be set with setMaxCount(). You can allow editing using setEditable(). For editable comboboxes you can set auto-completion using setCompleter() and whether or not the user can add duplicates is set with setDuplicatesEnabled().

QComboBox uses the model/view framework for its popup list and to store its items. By default a QStandardItemModel stores the items and a QListView subclass displays the popuplist. You can access the model and view directly (with model() and view()), but QComboBox also provides functions to set and get item data (e.g., setItemData() and itemText()). You can also set a new model and view (with setModel() and setView()). For the text and icon in the combobox label, the data in the model that has the Qt.DisplayRole and Qt.DecorationRole is used. Note that you cannot alter the SelectionMode of the view(), e.g., by using setSelectionMode().

Comboboxes in the different built-in styles.


Type Documentation

QComboBox.InsertPolicy

This enum specifies what the QComboBox should do when a new string is entered by the user.

Constant Value Description
QComboBox.NoInsert 0 The string will not be inserted into the combobox.
QComboBox.InsertAtTop 1 The string will be inserted as the first item in the combobox.
QComboBox.InsertAtCurrent 2 The current item will be replaced by the string.
QComboBox.InsertAtBottom 3 The string will be inserted after the last item in the combobox.
QComboBox.InsertAfterCurrent 4 The string is inserted after the current item in the combobox.
QComboBox.InsertBeforeCurrent 5 The string is inserted before the current item in the combobox.
QComboBox.InsertAlphabetically 6 The string is inserted in the alphabetic order in the combobox.

QComboBox.SizeAdjustPolicy

This enum specifies how the size hint of the QComboBox should adjust when new content is added or content changes.

Constant Value Description
QComboBox.AdjustToContents 0 The combobox will always adjust to the contents
QComboBox.AdjustToContentsOnFirstShow 1 The combobox will adjust to its contents the first time it is shown.
QComboBox.AdjustToMinimumContentsLength 2 Use AdjustToContents or AdjustToContentsOnFirstShow instead.
QComboBox.AdjustToMinimumContentsLengthWithIcon 3 The combobox will adjust to minimumContentsLength plus space for an icon. For performance reasons use this policy on large models.

Method Documentation

QComboBox.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a combobox with the given parent, using the default model QStandardItemModel.

QComboBox.addItem (self, QString text, QVariant userData = QVariant())

Adds an item to the combobox with the given text, and containing the specified userData (stored in the Qt.UserRole). The item is appended to the list of existing items.

QComboBox.addItem (self, QIcon icon, QString text, QVariant userData = QVariant())

Adds an item to the combobox with the given icon and text, and containing the specified userData (stored in the Qt.UserRole). The item is appended to the list of existing items.

QComboBox.addItems (self, QStringList texts)

Adds each of the strings in the given texts to the combobox. Each item is appended to the list of existing items in turn.

bool QComboBox.autoCompletion (self)

Qt.CaseSensitivity QComboBox.autoCompletionCaseSensitivity (self)

QComboBox.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

QComboBox.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Clears the combobox, removing all items.

Note: If you have set an external model on the combobox this model will still be cleared when calling this function.

QComboBox.clearEditText (self)

This method is also a Qt slot with the C++ signature void clearEditText().

Clears the contents of the line edit used for editing in the combobox.

QCompleter QComboBox.completer (self)

Returns the completer that is used to auto complete text input for the combobox.

This function was introduced in Qt 4.2.

See also setCompleter() and editable.

QComboBox.contextMenuEvent (self, QContextMenuEvent e)

Reimplemented from QWidget.contextMenuEvent().

int QComboBox.count (self)

int QComboBox.currentIndex (self)

QString QComboBox.currentText (self)

bool QComboBox.duplicatesEnabled (self)

bool QComboBox.event (self, QEvent event)

Reimplemented from QObject.event().

int QComboBox.findData (self, QVariant data, int role = Qt.UserRole, Qt.MatchFlags flags = Qt.MatchExactly|Qt.MatchCaseSensitive)

Returns the index of the item containing the given data for the given role; otherwise returns -1.

The flags specify how the items in the combobox are searched.

int QComboBox.findText (self, QString text, Qt.MatchFlags flags = Qt.MatchExactly|Qt.MatchCaseSensitive)

Returns the index of the item containing the given text; otherwise returns -1.

The flags specify how the items in the combobox are searched.

QComboBox.focusInEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusInEvent().

QComboBox.focusOutEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusOutEvent().

bool QComboBox.hasFrame (self)

QComboBox.hideEvent (self, QHideEvent e)

Reimplemented from QWidget.hideEvent().

QComboBox.hidePopup (self)

Hides the list of items in the combobox if it is currently visible and resets the internal state, so that if the custom pop-up was shown inside the reimplemented showPopup(), then you also need to reimplement the hidePopup() function to hide your custom pop-up and call the base class implementation to reset the internal state whenever your custom pop-up widget is hidden.

See also showPopup().

QSize QComboBox.iconSize (self)

QComboBox.initStyleOption (self, QStyleOptionComboBox option)

Initialize option with the values from this QComboBox. This method is useful for subclasses when they need a QStyleOptionComboBox, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QComboBox.inputMethodEvent (self, QInputMethodEvent)

Reimplemented from QWidget.inputMethodEvent().

QVariant QComboBox.inputMethodQuery (self, Qt.InputMethodQuery)

Reimplemented from QWidget.inputMethodQuery().

QComboBox.insertItem (self, int index, QString text, QVariant userData = QVariant())

Inserts the text and userData (stored in the Qt.UserRole) into the combobox at the given index.

If the index is equal to or higher than the total number of items, the new item is appended to the list of existing items. If the index is zero or negative, the new item is prepended to the list of existing items.

See also insertItems().

QComboBox.insertItem (self, int index, QIcon icon, QString text, QVariant userData = QVariant())

Inserts the icon, text and userData (stored in the Qt.UserRole) into the combobox at the given index.

If the index is equal to or higher than the total number of items, the new item is appended to the list of existing items. If the index is zero or negative, the new item is prepended to the list of existing items.

See also insertItems().

QComboBox.insertItems (self, int index, QStringList texts)

Inserts the strings from the list into the combobox as separate items, starting at the index specified.

If the index is equal to or higher than the total number of items, the new items are appended to the list of existing items. If the index is zero or negative, the new items are prepended to the list of existing items.

See also insertItem().

InsertPolicy QComboBox.insertPolicy (self)

QComboBox.insertSeparator (self, int index)

Inserts a separator item into the combobox at the given index.

If the index is equal to or higher than the total number of items, the new item is appended to the list of existing items. If the index is zero or negative, the new item is prepended to the list of existing items.

This function was introduced in Qt 4.4.

See also insertItem().

bool QComboBox.isEditable (self)

QVariant QComboBox.itemData (self, int index, int role = Qt.UserRole)

Returns the data for the given role in the given index in the combobox, or QVariant.Invalid if there is no data for this role.

See also setItemData().

QAbstractItemDelegate QComboBox.itemDelegate (self)

Returns the item delegate used by the popup list view.

See also setItemDelegate().

QIcon QComboBox.itemIcon (self, int index)

Returns the icon for the given index in the combobox.

See also setItemIcon().

QString QComboBox.itemText (self, int index)

Returns the text for the given index in the combobox.

See also setItemText().

QComboBox.keyPressEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyPressEvent().

QComboBox.keyReleaseEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyReleaseEvent().

QLineEdit QComboBox.lineEdit (self)

Returns the line edit used to edit items in the combobox, or 0 if there is no line edit.

Only editable combo boxes have a line edit.

See also setLineEdit().

int QComboBox.maxCount (self)

int QComboBox.maxVisibleItems (self)

int QComboBox.minimumContentsLength (self)

QSize QComboBox.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QAbstractItemModel QComboBox.model (self)

Returns the model used by the combobox.

See also setModel().

int QComboBox.modelColumn (self)

QComboBox.mousePressEvent (self, QMouseEvent e)

Reimplemented from QWidget.mousePressEvent().

QComboBox.mouseReleaseEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseReleaseEvent().

QComboBox.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

QComboBox.removeItem (self, int index)

Removes the item at the given index from the combobox. This will update the current index if the index is removed.

This function does nothing if index is out of range.

QComboBox.resizeEvent (self, QResizeEvent e)

Reimplemented from QWidget.resizeEvent().

QModelIndex QComboBox.rootModelIndex (self)

Returns the root model item index for the items in the combobox.

See also setRootModelIndex().

QComboBox.setAutoCompletion (self, bool enable)

QComboBox.setAutoCompletionCaseSensitivity (self, Qt.CaseSensitivity sensitivity)

QComboBox.setCompleter (self, QCompleter c)

Sets the completer to use instead of the current completer. If completer is 0, auto completion is disabled.

By default, for an editable combo box, a QCompleter that performs case insensitive inline completion is automatically created.

This function was introduced in Qt 4.2.

See also completer().

QComboBox.setCurrentIndex (self, int index)

QComboBox.setDuplicatesEnabled (self, bool enable)

QComboBox.setEditable (self, bool editable)

QComboBox.setEditText (self, QString text)

This method is also a Qt slot with the C++ signature void setEditText(const QString&).

Sets the text in the combobox's text edit.

QComboBox.setFrame (self, bool)

QComboBox.setIconSize (self, QSize size)

QComboBox.setInsertPolicy (self, InsertPolicy policy)

QComboBox.setItemData (self, int index, QVariant value, int role = Qt.UserRole)

Sets the data role for the item on the given index in the combobox to the specified value.

See also itemData().

QComboBox.setItemDelegate (self, QAbstractItemDelegate delegate)

Sets the item delegate for the popup list view. The combobox takes ownership of the delegate.

Warning: You should not share the same instance of a delegate between comboboxes, widget mappers or views. Doing so can cause incorrect or unintuitive editing behavior since each view connected to a given delegate may receive the closeEditor() signal, and attempt to access, modify or close an editor that has already been closed.

See also itemDelegate().

QComboBox.setItemIcon (self, int index, QIcon icon)

Sets the icon for the item on the given index in the combobox.

See also itemIcon().

QComboBox.setItemText (self, int index, QString text)

Sets the text for the item on the given index in the combobox.

See also itemText().

QComboBox.setLineEdit (self, QLineEdit edit)

The edit argument has it's ownership transferred to Qt.

Sets the line edit to use instead of the current line edit widget.

The combo box takes ownership of the line edit.

See also lineEdit().

QComboBox.setMaxCount (self, int max)

QComboBox.setMaxVisibleItems (self, int maxItems)

QComboBox.setMinimumContentsLength (self, int characters)

QComboBox.setModel (self, QAbstractItemModel model)

Sets the model to be model. model must not be 0. If you want to clear the contents of a model, call clear().

See also model() and clear().

QComboBox.setModelColumn (self, int visibleColumn)

QComboBox.setRootModelIndex (self, QModelIndex index)

Sets the root model item index for the items in the combobox.

See also rootModelIndex().

QComboBox.setSizeAdjustPolicy (self, SizeAdjustPolicy policy)

QComboBox.setValidator (self, QValidator v)

Sets the validator to use instead of the current validator.

See also validator().

QComboBox.setView (self, QAbstractItemView itemView)

The itemView argument has it's ownership transferred to Qt.

Sets the view to be used in the combobox popup to the given itemView. The combobox takes ownership of the view.

Note: If you want to use the convenience views (like QListWidget, QTableWidget or QTreeWidget), make sure to call setModel() on the combobox with the convenience widgets model before calling this function.

See also view().

QComboBox.showEvent (self, QShowEvent e)

Reimplemented from QWidget.showEvent().

QComboBox.showPopup (self)

Displays the list of items in the combobox. If the list is empty then the no items will be shown.

If you reimplement this function to show a custom pop-up, make sure you call hidePopup() to reset the internal state.

See also hidePopup().

SizeAdjustPolicy QComboBox.sizeAdjustPolicy (self)

QSize QComboBox.sizeHint (self)

Reimplemented from QWidget.sizeHint().

This implementation caches the size hint to avoid resizing when the contents change dynamically. To invalidate the cached value change the sizeAdjustPolicy.

QValidator QComboBox.validator (self)

Returns the validator that is used to constrain text input for the combobox.

See also setValidator() and editable.

QAbstractItemView QComboBox.view (self)

Returns the list view used for the combobox popup.

See also setView().

QComboBox.wheelEvent (self, QWheelEvent e)

Reimplemented from QWidget.wheelEvent().

QComboBox.__len__ (self)


Qt Signal Documentation

void activated (int)

This is the default overload of this signal.

This signal is sent when the user chooses an item in the combobox. The item's index is passed. Note that this signal is sent even when the choice is not changed. If you need to know when the choice actually changes, use signal currentIndexChanged().

void activated (const QString&)

This signal is sent when the user chooses an item in the combobox. The item's text is passed. Note that this signal is sent even when the choice is not changed. If you need to know when the choice actually changes, use signal currentIndexChanged().

void currentIndexChanged (int)

This is the default overload of this signal.

This signal is sent whenever the currentIndex in the combobox changes either through user interaction or programmatically. The item's index is passed or -1 if the combobox becomes empty or the currentIndex was reset.

This function was introduced in Qt 4.1.

void currentIndexChanged (const QString&)

This signal is sent whenever the currentIndex in the combobox changes either through user interaction or programmatically. The item's text is passed.

This function was introduced in Qt 4.1.

void editTextChanged (const QString&)

This is the default overload of this signal.

This signal is emitted when the text in the combobox's line edit widget is changed. The new text is specified by text.

void highlighted (int)

This is the default overload of this signal.

This signal is sent when an item in the combobox popup list is highlighted by the user. The item's index is passed.

void highlighted (const QString&)

This signal is sent when an item in the combobox popup list is highlighted by the user. The item's text is passed.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcommandlinkbutton.html0000644000076500000240000001440312536324501022257 0ustar philstaff00000000000000 QCommandLinkButton Class Reference
  Home · All Classes · Modules

QCommandLinkButton Class Reference
[
QtGui module]

The QCommandLinkButton widget provides a Vista style command link button. More...

Inherits QPushButton.

Methods


Detailed Description

The QCommandLinkButton widget provides a Vista style command link button.

The command link is a new control that was introduced by Windows Vista. It's intended use is similar to that of a radio button in that it is used to choose between a set of mutually exclusive options. Command link buttons should not be used by themselves but rather as an alternative to radio buttons in Wizards and dialogs and makes pressing the "next" button redundant. The appearance is generally similar to that of a flat pushbutton, but it allows for a descriptive text in addition to the normal button text. By default it will also carry an arrow icon, indicating that pressing the control will open another window or page.


Method Documentation

QCommandLinkButton.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a command link with no text and a parent.

QCommandLinkButton.__init__ (self, QString text, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a command link with the parent parent and the text text.

QCommandLinkButton.__init__ (self, QString text, QString description, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a command link with a text, a description, and a parent.

QString QCommandLinkButton.description (self)

bool QCommandLinkButton.event (self, QEvent e)

Reimplemented from QObject.event().

int QCommandLinkButton.heightForWidth (self, int)

Reimplemented from QWidget.heightForWidth().

QSize QCommandLinkButton.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QCommandLinkButton.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QCommandLinkButton.setDescription (self, QString description)

QSize QCommandLinkButton.sizeHint (self)

Reimplemented from QWidget.sizeHint().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcommonstyle.html0000644000076500000240000003123312536324502021101 0ustar philstaff00000000000000 QCommonStyle Class Reference
  Home · All Classes · Modules

QCommonStyle Class Reference
[QtGui module]

The QCommonStyle class encapsulates the common Look and Feel of a GUI. More...

Inherits QStyle.

Methods

  • __init__ (self)
  • drawComplexControl (self, QStyle.ComplexControl cc, QStyleOptionComplex opt, QPainter p, QWidget widget = None)
  • drawControl (self, QStyle.ControlElement element, QStyleOption opt, QPainter p, QWidget widget = None)
  • drawPrimitive (self, QStyle.PrimitiveElement pe, QStyleOption opt, QPainter p, QWidget widget = None)
  • QPixmap generatedIconPixmap (self, QIcon.Mode iconMode, QPixmap pixmap, QStyleOption opt)
  • QStyle.SubControl hitTestComplexControl (self, QStyle.ComplexControl cc, QStyleOptionComplex opt, QPoint pt, QWidget widget = None)
  • int pixelMetric (self, QStyle.PixelMetric m, QStyleOption option = None, QWidget widget = None)
  • polish (self, QWidget widget)
  • polish (self, QApplication app)
  • QPalette polish (self, QPalette)
  • QSize sizeFromContents (self, QStyle.ContentsType ct, QStyleOption opt, QSize contentsSize, QWidget widget = None)
  • QIcon standardIconImplementation (self, QStyle.StandardPixmap standardIcon, QStyleOption option = None, QWidget widget = None)
  • QPixmap standardPixmap (self, QStyle.StandardPixmap sp, QStyleOption option = None, QWidget widget = None)
  • int styleHint (self, QStyle.StyleHint sh, QStyleOption option = None, QWidget widget = None, QStyleHintReturn returnData = None)
  • QRect subControlRect (self, QStyle.ComplexControl cc, QStyleOptionComplex opt, QStyle.SubControl sc, QWidget widget = None)
  • QRect subElementRect (self, QStyle.SubElement r, QStyleOption opt, QWidget widget = None)
  • unpolish (self, QWidget widget)
  • unpolish (self, QApplication application)

Detailed Description

The QCommonStyle class encapsulates the common Look and Feel of a GUI.

This abstract class implements some of the widget's look and feel that is common to all GUI styles provided and shipped as part of Qt.

Since QCommonStyle inherits QStyle, all of its functions are fully documented in the QStyle documentation.


Method Documentation

QCommonStyle.__init__ (self)

Constructs a QCommonStyle.

QCommonStyle.drawComplexControl (self, QStyle.ComplexControl cc, QStyleOptionComplex opt, QPainter p, QWidget widget = None)

Reimplemented from QStyle.drawComplexControl().

QCommonStyle.drawControl (self, QStyle.ControlElement element, QStyleOption opt, QPainter p, QWidget widget = None)

Reimplemented from QStyle.drawControl().

QCommonStyle.drawPrimitive (self, QStyle.PrimitiveElement pe, QStyleOption opt, QPainter p, QWidget widget = None)

Reimplemented from QStyle.drawPrimitive().

QPixmap QCommonStyle.generatedIconPixmap (self, QIcon.Mode iconMode, QPixmap pixmap, QStyleOption opt)

Reimplemented from QStyle.generatedIconPixmap().

QStyle.SubControl QCommonStyle.hitTestComplexControl (self, QStyle.ComplexControl cc, QStyleOptionComplex opt, QPoint pt, QWidget widget = None)

Reimplemented from QStyle.hitTestComplexControl().

int QCommonStyle.pixelMetric (self, QStyle.PixelMetric m, QStyleOption option = None, QWidget widget = None)

Reimplemented from QStyle.pixelMetric().

QCommonStyle.polish (self, QWidget widget)

Reimplemented from QStyle.polish().

QCommonStyle.polish (self, QApplication app)

Reimplemented from QStyle.polish().

QPalette QCommonStyle.polish (self, QPalette)

Reimplemented from QStyle.polish().

QSize QCommonStyle.sizeFromContents (self, QStyle.ContentsType ct, QStyleOption opt, QSize contentsSize, QWidget widget = None)

Reimplemented from QStyle.sizeFromContents().

QIcon QCommonStyle.standardIconImplementation (self, QStyle.StandardPixmap standardIcon, QStyleOption option = None, QWidget widget = None)

This method is also a Qt slot with the C++ signature QIcon standardIconImplementation(QStyle::StandardPixmap,const QStyleOption* = 0,const QWidget* = 0) const.

QPixmap QCommonStyle.standardPixmap (self, QStyle.StandardPixmap sp, QStyleOption option = None, QWidget widget = None)

Reimplemented from QStyle.standardPixmap().

int QCommonStyle.styleHint (self, QStyle.StyleHint sh, QStyleOption option = None, QWidget widget = None, QStyleHintReturn returnData = None)

Reimplemented from QStyle.styleHint().

QRect QCommonStyle.subControlRect (self, QStyle.ComplexControl cc, QStyleOptionComplex opt, QStyle.SubControl sc, QWidget widget = None)

Reimplemented from QStyle.subControlRect().

QRect QCommonStyle.subElementRect (self, QStyle.SubElement r, QStyleOption opt, QWidget widget = None)

Reimplemented from QStyle.subElementRect().

QCommonStyle.unpolish (self, QWidget widget)

Reimplemented from QStyle.unpolish().

QCommonStyle.unpolish (self, QApplication application)

Reimplemented from QStyle.unpolish().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcompleter.html0000644000076500000240000007717012536324502020534 0ustar philstaff00000000000000 QCompleter Class Reference
  Home · All Classes · Modules

QCompleter Class Reference
[QtGui module]

The QCompleter class provides completions based on an item model. More...

Inherits QObject.

Types

  • enum CompletionMode { PopupCompletion, UnfilteredPopupCompletion, InlineCompletion }
  • enum ModelSorting { UnsortedModel, CaseSensitivelySortedModel, CaseInsensitivelySortedModel }

Methods

Qt Signals


Detailed Description

The QCompleter class provides completions based on an item model.

You can use QCompleter to provide auto completions in any Qt widget, such as QLineEdit and QComboBox. When the user starts typing a word, QCompleter suggests possible ways of completing the word, based on a word list. The word list is provided as a QAbstractItemModel. (For simple applications, where the word list is static, you can pass a QStringList to QCompleter's constructor.)

Basic Usage

A QCompleter is used typically with a QLineEdit or QComboBox. For example, here's how to provide auto completions from a simple word list in a QLineEdit:

 QStringList wordList;
 wordList << "alpha" << "omega" << "omicron" << "zeta";

 QLineEdit *lineEdit = new QLineEdit(this);

 QCompleter *completer = new QCompleter(wordList, this);
 completer->setCaseSensitivity(Qt.CaseInsensitive);
 lineEdit->setCompleter(completer);

A QFileSystemModel can be used to provide auto completion of file names. For example:

 QCompleter *completer = new QCompleter(this);
 completer->setModel(new QDirModel(completer));
 lineEdit->setCompleter(completer);

To set the model on which QCompleter should operate, call setModel(). By default, QCompleter will attempt to match the completion prefix (i.e., the word that the user has started typing) against the Qt.EditRole data stored in column 0 in the model case sensitively. This can be changed using setCompletionRole(), setCompletionColumn(), and setCaseSensitivity().

If the model is sorted on the column and role that are used for completion, you can call setModelSorting() with either QCompleter.CaseSensitivelySortedModel or QCompleter.CaseInsensitivelySortedModel as the argument. On large models, this can lead to significant performance improvements, because QCompleter can then use binary search instead of linear search.

The model can be a list model, a table model, or a tree model. Completion on tree models is slightly more involved and is covered in the Handling Tree Models section below.

The completionMode() determines the mode used to provide completions to the user.

Iterating Through Completions

To retrieve a single candidate string, call setCompletionPrefix() with the text that needs to be completed and call currentCompletion(). You can iterate through the list of completions as below:

 for (int i = 0; completer->setCurrentRow(i); i++)
     qDebug() << completer->currentCompletion() << " is match number " << i;

completionCount() returns the total number of completions for the current prefix. completionCount() should be avoided when possible, since it requires a scan of the entire model.

The Completion Model

completionModel() return a list model that contains all possible completions for the current completion prefix, in the order in which they appear in the model. This model can be used to display the current completions in a custom view. Calling setCompletionPrefix() automatically refreshes the completion model.

Handling Tree Models

QCompleter can look for completions in tree models, assuming that any item (or sub-item or sub-sub-item) can be unambiguously represented as a string by specifying the path to the item. The completion is then performed one level at a time.

Let's take the example of a user typing in a file system path. The model is a (hierarchical) QFileSystemModel. The completion occurs for every element in the path. For example, if the current text is C:\Wind, QCompleter might suggest Windows to complete the current path element. Similarly, if the current text is C:\Windows\Sy, QCompleter might suggest System.

For this kind of completion to work, QCompleter needs to be able to split the path into a list of strings that are matched at each level. For C:\Windows\Sy, it needs to be split as "C:", "Windows" and "Sy". The default implementation of splitPath(), splits the completionPrefix using QDir.separator() if the model is a QFileSystemModel.

To provide completions, QCompleter needs to know the path from an index. This is provided by pathFromIndex(). The default implementation of pathFromIndex(), returns the data for the edit role for list models and the absolute file path if the mode is a QFileSystemModel.


Type Documentation

QCompleter.CompletionMode

This enum specifies how completions are provided to the user.

Constant Value Description
QCompleter.PopupCompletion 0 Current completions are displayed in a popup window.
QCompleter.InlineCompletion 2 Completions appear inline (as selected text).
QCompleter.UnfilteredPopupCompletion 1 All possible completions are displayed in a popup window with the most likely suggestion indicated as current.

See also setCompletionMode().

QCompleter.ModelSorting

This enum specifies how the items in the model are sorted.

Constant Value Description
QCompleter.UnsortedModel 0 The model is unsorted.
QCompleter.CaseSensitivelySortedModel 1 The model is sorted case sensitively.
QCompleter.CaseInsensitivelySortedModel 2 The model is sorted case insensitively.

See also setModelSorting().


Method Documentation

QCompleter.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a completer object with the given parent.

QCompleter.__init__ (self, QAbstractItemModel model, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a completer object with the given parent that provides completions from the specified model.

QCompleter.__init__ (self, QStringList list, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QCompleter object with the given parent that uses the specified list as a source of possible completions.

Qt.CaseSensitivity QCompleter.caseSensitivity (self)

QCompleter.complete (self, QRect rect = QRect())

This method is also a Qt slot with the C++ signature void complete(const QRect& = QRect()).

For QCompleter.PopupCompletion and QCompletion.UnfilteredPopupCompletion modes, calling this function displays the popup displaying the current completions. By default, if rect is not specified, the popup is displayed on the bottom of the widget(). If rect is specified the popup is displayed on the left edge of the rectangle.

For QCompleter.InlineCompletion mode, the highlighted() signal is fired with the current completion.

int QCompleter.completionColumn (self)

int QCompleter.completionCount (self)

Returns the number of completions for the current prefix. For an unsorted model with a large number of items this can be expensive. Use setCurrentRow() and currentCompletion() to iterate through all the completions.

CompletionMode QCompleter.completionMode (self)

QAbstractItemModel QCompleter.completionModel (self)

Returns the completion model. The completion model is a read-only list model that contains all the possible matches for the current completion prefix. The completion model is auto-updated to reflect the current completions.

Note: The return value of this function is defined to be an QAbstractItemModel purely for generality. This actual kind of model returned is an instance of an QAbstractProxyModel subclass.

See also completionPrefix and model().

QString QCompleter.completionPrefix (self)

int QCompleter.completionRole (self)

QString QCompleter.currentCompletion (self)

Returns the current completion string. This includes the completionPrefix. When used alongside setCurrentRow(), it can be used to iterate through all the matches.

See also setCurrentRow() and currentIndex().

QModelIndex QCompleter.currentIndex (self)

Returns the model index of the current completion in the completionModel().

See also setCurrentRow(), currentCompletion(), and model().

int QCompleter.currentRow (self)

Returns the current row.

See also setCurrentRow().

bool QCompleter.event (self, QEvent)

Reimplemented from QObject.event().

bool QCompleter.eventFilter (self, QObject o, QEvent e)

Reimplemented from QObject.eventFilter().

int QCompleter.maxVisibleItems (self)

QAbstractItemModel QCompleter.model (self)

Returns the model that provides completion strings.

See also setModel() and completionModel().

ModelSorting QCompleter.modelSorting (self)

QString QCompleter.pathFromIndex (self, QModelIndex index)

Returns the path for the given index. The completer object uses this to obtain the completion text from the underlying model.

The default implementation returns the edit role of the item for list models. It returns the absolute file path if the model is a QFileSystemModel.

See also splitPath().

QAbstractItemView QCompleter.popup (self)

Returns the popup used to display completions.

See also setPopup().

QCompleter.setCaseSensitivity (self, Qt.CaseSensitivity caseSensitivity)

QCompleter.setCompletionColumn (self, int column)

QCompleter.setCompletionMode (self, CompletionMode mode)

QCompleter.setCompletionPrefix (self, QString prefix)

This method is also a Qt slot with the C++ signature void setCompletionPrefix(const QString&).

QCompleter.setCompletionRole (self, int role)

bool QCompleter.setCurrentRow (self, int row)

Sets the current row to the row specified. Returns true if successful; otherwise returns false.

This function may be used along with currentCompletion() to iterate through all the possible completions.

See also currentRow(), currentCompletion(), and completionCount().

QCompleter.setMaxVisibleItems (self, int maxItems)

QCompleter.setModel (self, QAbstractItemModel c)

Sets the model which provides completions to model. The model can be list model or a tree model. If a model has been already previously set and it has the QCompleter as its parent, it is deleted.

For convenience, if model is a QFileSystemModel, QCompleter switches its caseSensitivity to Qt.CaseInsensitive on Windows and Qt.CaseSensitive on other platforms.

See also completionModel(), modelSorting, and Handling Tree Models.

QCompleter.setModelSorting (self, ModelSorting sorting)

QCompleter.setPopup (self, QAbstractItemView popup)

The popup argument has it's ownership transferred to Qt.

Sets the popup used to display completions to popup. QCompleter takes ownership of the view.

A QListView is automatically created when the completionMode() is set to QCompleter.PopupCompletion or QCompleter.UnfilteredPopupCompletion. The default popup displays the completionColumn().

Ensure that this function is called before the view settings are modified. This is required since view's properties may require that a model has been set on the view (for example, hiding columns in the view requires a model to be set on the view).

See also popup().

QCompleter.setWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the widget for which completion are provided for to widget. This function is automatically called when a QCompleter is set on a QLineEdit using QLineEdit.setCompleter() or on a QComboBox using QComboBox.setCompleter(). The widget needs to be set explicitly when providing completions for custom widgets.

See also widget(), setModel(), and setPopup().

QCompleter.setWrapAround (self, bool wrap)

This method is also a Qt slot with the C++ signature void setWrapAround(bool).

QStringList QCompleter.splitPath (self, QString path)

Splits the given path into strings that are used to match at each level in the model().

The default implementation of splitPath() splits a file system path based on QDir.separator() when the sourceModel() is a QFileSystemModel.

When used with list models, the first item in the returned list is used for matching.

See also pathFromIndex() and Handling Tree Models.

QWidget QCompleter.widget (self)

Returns the widget for which the completer object is providing completions.

See also setWidget().

bool QCompleter.wrapAround (self)


Qt Signal Documentation

void activated (const QString&)

This is the default overload of this signal.

This signal is sent when an item in the popup() is activated by the user (by clicking or pressing return). The item's text is given.

void activated (const QModelIndex&)

This signal is sent when an item in the popup() is activated by the user. (by clicking or pressing return). The item's index in the completionModel() is given.

void highlighted (const QString&)

This is the default overload of this signal.

This signal is sent when an item in the popup() is highlighted by the user. It is also sent if complete() is called with the completionMode() set to QCompleter.InlineCompletion. The item's text is given.

void highlighted (const QModelIndex&)

This signal is sent when an item in the popup() is highlighted by the user. It is also sent if complete() is called with the completionMode() set to QCompleter.InlineCompletion. The item's index in the completionModel() is given.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qconicalgradient.html0000644000076500000240000001705412536324501021662 0ustar philstaff00000000000000 QConicalGradient Class Reference
  Home · All Classes · Modules

QConicalGradient Class Reference
[QtGui module]

The QConicalGradient class is used in combination with QBrush to specify a conical gradient brush. More...

Inherits QGradient.

Methods


Detailed Description

The QConicalGradient class is used in combination with QBrush to specify a conical gradient brush.

Conical gradients interpolate interpolate colors counter-clockwise around a center point.

The colors in a gradient is defined using stop points of the QGradientStop type, i.e. a position and a color. Use the QGradient.setColorAt() or the QGradient.setStops() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.

In addition to the functions inherited from QGradient, the QConicalGradient class provides the angle() and center() functions returning the start angle and center of the gradient.

Note that the setSpread() function has no effect for conical gradients. The reason is that the conical gradient is closed by definition, i.e. the conical gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.


Method Documentation

QConicalGradient.__init__ (self)

Constructs a conical with center at (0, 0) starting the interpolation at angle 0.

See also QGradient.setColorAt(), setCenter(), and setAngle().

QConicalGradient.__init__ (self, QPointF center, float startAngle)

Constructs a conical gradient with the given center, starting the interpolation at the given angle. The angle must be specified in degrees between 0 and 360.

See also QGradient.setColorAt() and QGradient.setStops().

QConicalGradient.__init__ (self, float cx, float cy, float startAngle)

Constructs a conical gradient with the given center (cx, cy), starting the interpolation at the given angle. The angle must be specified in degrees between 0 and 360.

See also QGradient.setColorAt() and QGradient.setStops().

QConicalGradient.__init__ (self, QConicalGradient)

float QConicalGradient.angle (self)

Returns the start angle of the conical gradient in logical coordinates.

See also setAngle() and stops().

QPointF QConicalGradient.center (self)

Returns the center of the conical gradient in logical coordinates.

See also setCenter() and stops().

QConicalGradient.setAngle (self, float angle)

Sets angle to be the start angle for this conical gradient in logical coordinates.

This function was introduced in Qt 4.2.

See also angle().

QConicalGradient.setCenter (self, QPointF center)

Sets the center of this conical gradient in logical coordinates to center.

See also center().

QConicalGradient.setCenter (self, float x, float y)

This is an overloaded function.

Sets the center of this conical gradient in logical coordinates to (x, y).

See also center().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcontextmenuevent.html0000644000076500000240000002332012536324503022142 0ustar philstaff00000000000000 QContextMenuEvent Class Reference
  Home · All Classes · Modules

QContextMenuEvent Class Reference
[QtGui module]

The QContextMenuEvent class contains parameters that describe a context menu event. More...

Inherits QInputEvent.

Types

  • enum Reason { Mouse, Keyboard, Other }

Methods

  • __init__ (self, Reason reason, QPoint pos, QPoint globalPos, Qt.KeyboardModifiers modifiers)
  • __init__ (self, Reason reason, QPoint pos, QPoint globalPos)
  • __init__ (self, Reason reason, QPoint pos)
  • __init__ (self, QContextMenuEvent)
  • QPoint globalPos (self)
  • int globalX (self)
  • int globalY (self)
  • QPoint pos (self)
  • Reason reason (self)
  • int x (self)
  • int y (self)

Detailed Description

The QContextMenuEvent class contains parameters that describe a context menu event.

Context menu events are sent to widgets when a user performs an action associated with opening a context menu. The actions required to open context menus vary between platforms; for example, on Windows, pressing the menu button or clicking the right mouse button will cause this event to be sent.

When this event occurs it is customary to show a QMenu with a context menu, if this is relevant to the context.

Context menu events contain a special accept flag that indicates whether the receiver accepted the event. If the event handler does not accept the event then, if possible, whatever triggered the event will be handled as a regular input event.


Type Documentation

QContextMenuEvent.Reason

This enum describes the reason why the event was sent.

Constant Value Description
QContextMenuEvent.Mouse 0 The mouse caused the event to be sent. Normally this means the right mouse button was clicked, but this is platform dependent.
QContextMenuEvent.Keyboard 1 The keyboard caused this event to be sent. On Windows, this means the menu button was pressed.
QContextMenuEvent.Other 2 The event was sent by some other means (i.e. not by the mouse or keyboard).

Method Documentation

QContextMenuEvent.__init__ (self, Reason reason, QPoint pos, QPoint globalPos, Qt.KeyboardModifiers modifiers)

Constructs a context menu event object with the accept parameter flag set to false.

The reason parameter must be QContextMenuEvent.Mouse or QContextMenuEvent.Keyboard.

The pos parameter specifies the mouse position relative to the receiving widget. globalPos is the mouse position in absolute coordinates. The modifiers holds the keyboard modifiers.

QContextMenuEvent.__init__ (self, Reason reason, QPoint pos, QPoint globalPos)

Constructs a context menu event object with the accept parameter flag set to false.

The reason parameter must be QContextMenuEvent.Mouse or QContextMenuEvent.Keyboard.

The pos parameter specifies the mouse position relative to the receiving widget. globalPos is the mouse position in absolute coordinates.

QContextMenuEvent.__init__ (self, Reason reason, QPoint pos)

Constructs a context menu event object with the accept parameter flag set to false.

The reason parameter must be QContextMenuEvent.Mouse or QContextMenuEvent.Keyboard.

The pos parameter specifies the mouse position relative to the receiving widget.

The globalPos() is initialized to QCursor.pos(), which may not be appropriate. Use the other constructor to specify the global position explicitly.

QContextMenuEvent.__init__ (self, QContextMenuEvent)

QPoint QContextMenuEvent.globalPos (self)

Returns the global position of the mouse pointer at the time of the event.

See also x(), y(), and pos().

int QContextMenuEvent.globalX (self)

Returns the global x position of the mouse pointer at the time of the event.

See also globalY() and globalPos().

int QContextMenuEvent.globalY (self)

Returns the global y position of the mouse pointer at the time of the event.

See also globalX() and globalPos().

QPoint QContextMenuEvent.pos (self)

Returns the position of the mouse pointer relative to the widget that received the event.

See also x(), y(), and globalPos().

Reason QContextMenuEvent.reason (self)

Returns the reason for this context event.

int QContextMenuEvent.x (self)

Returns the x position of the mouse pointer, relative to the widget that received the event.

See also y() and pos().

int QContextMenuEvent.y (self)

Returns the y position of the mouse pointer, relative to the widget that received the event.

See also x() and pos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcoreapplication.html0000644000076500000240000013547012536324471021721 0ustar philstaff00000000000000 QCoreApplication Class Reference
  Home · All Classes · Modules

QCoreApplication Class Reference
[QtCore module]

The QCoreApplication class provides an event loop for console Qt applications. More...

Inherits QObject.

Inherited by QApplication.

Types

  • enum Encoding { CodecForTr, UnicodeUTF8, DefaultCodec }

Methods

Static Methods

Qt Signals


Detailed Description

The QCoreApplication class provides an event loop for console Qt applications.

This class is used by non-GUI applications to provide their event loop. For non-GUI application that uses Qt, there should be exactly one QCoreApplication object. For GUI applications, see QApplication.

QCoreApplication contains the main event loop, where all events from the operating system (e.g., timer and network events) and other sources are processed and dispatched. It also handles the application's initialization and finalization, as well as system-wide and application-wide settings.

The Event Loop and Event Handling

The event loop is started with a call to exec_(). Long running operations can call processEvents() to keep the application responsive.

In general, we recommend that you create a QCoreApplication or a QApplication object in your main() function as early as possible. exec_() will not return until the event loop exits; e.g., when quit() is called.

Several static convenience functions are also provided. The QCoreApplication object is available from instance(). Events can be sent or posted using sendEvent(), postEvent(), and sendPostedEvents(). Pending events can be removed with removePostedEvents() or flushed with flush().

The class provides a quit() slot and an aboutToQuit() signal.

Application and Library Paths

An application has an applicationDirPath() and an applicationFilePath(). Library paths (see QLibrary) can be retrieved with libraryPaths() and manipulated by setLibraryPaths(), addLibraryPath(), and removeLibraryPath().

Internationalization and Translations

Translation files can be added or removed using installTranslator() and removeTranslator(). Application strings can be translated using translate(). The QObject.tr() and QObject.trUtf8() functions are implemented in terms of translate().

Accessing Command Line Arguments

The command line arguments which are passed to QCoreApplication's constructor should be accessed using the arguments() function. Note that some arguments supplied by the user may have been processed and removed by QCoreApplication.

In cases where command line arguments need to be obtained using the argv() function, you must convert them from the local string encoding using QString.fromLocal8Bit().

Locale Settings

On Unix/Linux Qt is configured to use the system locale settings by default. This can cause a conflict when using POSIX functions, for instance, when converting between data types such as floats and strings, since the notation may differ between locales. To get around this problem, call the POSIX function setlocale(LC_NUMERIC,"C") right after initializing QApplication or QCoreApplication to reset the locale that is used for number formatting to "C"-locale.


Type Documentation

QCoreApplication.Encoding

This enum type defines the 8-bit encoding of character string arguments to translate():

Constant Value Description
QCoreApplication.CodecForTr 0 The encoding specified by QTextCodec.codecForTr() (Latin-1 if none has been set).
QCoreApplication.UnicodeUTF8 1 UTF-8.
QCoreApplication.DefaultCodec CodecForTr (Obsolete) Use CodecForTr instead.

See also QObject.tr(), QObject.trUtf8(), and QString.fromUtf8().


Method Documentation

QCoreApplication.__init__ (self, list-of-str argv)

Constructs a Qt kernel application. Kernel applications are applications without a graphical user interface. These type of applications are used at the console or as server processes.

The argc and argv arguments are processed by the application, and made available in a more convenient form by the arguments() function.

Warning: The data referred to by argc and argv must stay valid for the entire lifetime of the QCoreApplication object. In addition, argc must be greater than zero and argv must contain at least one valid character string.

QCoreApplication.addLibraryPath (QString)

Prepends path to the beginning of the library path list, ensuring that it is searched for libraries first. If path is empty or already in the path list, the path list is not changed.

The default path list consists of a single entry, the installation directory for plugins. The default installation directory for plugins is INSTALL/plugins, where INSTALL is the directory where Qt was installed.

In Symbian this function is only useful for adding paths for finding Qt extension plugin stubs, since the OS can only load libraries from the /sys/bin directory.

See also removeLibraryPath(), libraryPaths(), and setLibraryPaths().

QString QCoreApplication.applicationDirPath ()

Returns the directory that contains the application executable.

For example, if you have installed Qt in the C:\Trolltech\Qt directory, and you run the regexp example, this function will return "C:/Trolltech/Qt/examples/tools/regexp".

On Mac OS X this will point to the directory actually containing the executable, which may be inside of an application bundle (if the application is bundled).

Warning: On Linux, this function will try to get the path from the /proc file system. If that fails, it assumes that argv[0] contains the absolute file name of the executable. The function also assumes that the current directory has not been changed by the application.

In Symbian this function will return the application private directory, not the path to executable itself, as those are always in /sys/bin. If the application is in a read only drive, i.e. ROM, then the private path on the system drive will be returned.

See also applicationFilePath().

QString QCoreApplication.applicationFilePath ()

Returns the file path of the application executable.

For example, if you have installed Qt in the /usr/local/qt directory, and you run the regexp example, this function will return "/usr/local/qt/examples/tools/regexp/regexp".

Warning: On Linux, this function will try to get the path from the /proc file system. If that fails, it assumes that argv[0] contains the absolute file name of the executable. The function also assumes that the current directory has not been changed by the application.

See also applicationDirPath().

QString QCoreApplication.applicationName ()

int QCoreApplication.applicationPid ()

Returns the current process ID for the application.

This function was introduced in Qt 4.4.

QString QCoreApplication.applicationVersion ()

int QCoreApplication.argc ()

QStringList QCoreApplication.arguments ()

Returns the list of command-line arguments.

Usually arguments().at(0) is the program name, arguments().at(1) is the first argument, and arguments().last() is the last argument. See the note below about Windows.

Calling this function is slow - you should store the result in a variable when parsing the command line.

Warning: On Unix, this list is built from the argc and argv parameters passed to the constructor in the main() function. The string-data in argv is interpreted using QString.fromLocal8Bit(); hence it is not possible to pass, for example, Japanese command line arguments on a system that runs in a Latin1 locale. Most modern Unix systems do not have this limitation, as they are Unicode-based.

On NT-based Windows, this limitation does not apply either. On Windows, the arguments() are not built from the contents of argv/argc, as the content does not support Unicode. Instead, the arguments() are constructed from the return value of GetCommandLine(). As a result of this, the string given by arguments().at(0) might not be the program name on Windows, depending on how the application was started.

For Symbian applications started with RApaLsSession.StartApp one can specify arguments using CApaCommandLine.SetTailEndL function. Such arguments are only available via this method; they will not be passed to main function. Also note that only 8-bit string data set with CApaCommandLine.SetTailEndL is supported by this function.

This function was introduced in Qt 4.1.

See also applicationFilePath().

list-of-str QCoreApplication.argv ()

bool QCoreApplication.closingDown ()

Returns true if the application objects are being destroyed; otherwise returns false.

See also startingUp().

bool QCoreApplication.event (self, QEvent)

Reimplemented from QObject.event().

int QCoreApplication.exec_ ()

Enters the main event loop and waits until exit() is called. Returns the value that was set to exit() (which is 0 if exit() is called via quit()).

It is necessary to call this function to start event handling. The main event loop receives events from the window system and dispatches these to the application widgets.

To make your application perform idle processing (i.e. executing a special function whenever there are no pending events), use a QTimer with 0 timeout. More advanced idle processing schemes can be achieved using processEvents().

We recommend that you connect clean-up code to the aboutToQuit() signal, instead of putting it in your application's main() function because on some platforms the QCoreApplication.exec() call may not return. For example, on Windows when the user logs off, the system terminates the process after Qt closes all top-level windows. Hence, there is no guarantee that the application will have time to exit its event loop and execute code at the end of the main() function after the QCoreApplication.exec() call.

See also quit(), exit(), processEvents(), and QApplication.exec().

QCoreApplication.exit (int returnCode = 0)

Tells the application to exit with a return code.

After this function has been called, the application leaves the main event loop and returns from the call to exec_(). The exec_() function returns returnCode. If the event loop is not running, this function does nothing.

By convention, a returnCode of 0 means success, and any non-zero value indicates an error.

Note that unlike the C library function of the same name, this function does return to the caller -- it is event processing that stops.

See also quit() and exec_().

QCoreApplication.flush ()

Flushes the platform specific event queues.

If you are doing graphical changes inside a loop that does not return to the event loop on asynchronous window systems like X11 or double buffered window systems like Mac OS X, and you want to visualize these changes immediately (e.g. Splash Screens), call this function.

See also sendPostedEvents().

bool QCoreApplication.hasPendingEvents ()

This function returns true if there are pending events; otherwise returns false. Pending events can be either from the window system or posted events using postEvent().

See also QAbstractEventDispatcher.hasPendingEvents().

QCoreApplication.installTranslator (QTranslator)

Adds the translation file translationFile to the list of translation files to be used for translations.

Multiple translation files can be installed. Translations are searched for in the reverse order in which they were installed, so the most recently installed translation file is searched first and the first translation file installed is searched last. The search stops as soon as a translation containing a matching string is found.

Installing or removing a QTranslator, or changing an installed QTranslator generates a LanguageChange event for the QCoreApplication instance. A QApplication instance will propagate the event to all toplevel windows, where a reimplementation of changeEvent can re-translate the user interface by passing user-visible strings via the tr() function to the respective property setters. User-interface classes generated by Qt Designer provide a retranslateUi() function that can be called.

See also removeTranslator(), translate(), QTranslator.load(), and Dynamic Translation.

QCoreApplication QCoreApplication.instance ()

Returns a pointer to the application's QCoreApplication (or QApplication) instance.

If no instance has been allocated, null is returned.

QStringList QCoreApplication.libraryPaths ()

Returns a list of paths that the application will search when dynamically loading libraries.

Qt provides default library paths, but they can also be set using a qt.conf file. Paths specified in this file will override default values.

This list will include the installation directory for plugins if it exists (the default installation directory for plugins is INSTALL/plugins, where INSTALL is the directory where Qt was installed). The directory of the application executable (NOT the working directory) is always added, as well as the colon separated entries of the QT_PLUGIN_PATH environment variable.

If you want to iterate over the list, you can use the foreach pseudo-keyword:

 foreach (const QString &path, app.libraryPaths())
     do_something(path);

See also setLibraryPaths(), addLibraryPath(), removeLibraryPath(), QLibrary, and How to Create Qt Plugins.

bool QCoreApplication.notify (self, QObject, QEvent)

Sends event to receiver: receiver->event(event). Returns the value that is returned from the receiver's event handler. Note that this function is called for all events sent to any object in any thread.

For certain types of events (e.g. mouse and key events), the event will be propagated to the receiver's parent and so on up to the top-level object if the receiver is not interested in the event (i.e., it returns false).

There are five different ways that events can be processed; reimplementing this virtual function is just one of them. All five approaches are listed below:

  1. Reimplementing paintEvent(), mousePressEvent() and so on. This is the commonest, easiest and least powerful way.
  2. Reimplementing this function. This is very powerful, providing complete control; but only one subclass can be active at a time.
  3. Installing an event filter on QCoreApplication.instance(). Such an event filter is able to process all events for all widgets, so it's just as powerful as reimplementing notify(); furthermore, it's possible to have more than one application-global event filter. Global event filters even see mouse events for disabled widgets. Note that application event filters are only called for objects that live in the main thread.
  4. Reimplementing QObject.event() (as QWidget does). If you do this you get Tab key presses, and you get to see the events before any widget-specific event filters.
  5. Installing an event filter on the object. Such an event filter gets all the events, including Tab and Shift+Tab key press events, as long as they do not change the focus widget.

See also QObject.event() and installEventFilter().

QString QCoreApplication.organizationDomain ()

QString QCoreApplication.organizationName ()

QCoreApplication.postEvent (QObject receiver, QEvent event)

The event argument has it's ownership transferred to Qt.

Adds the event event, with the object receiver as the receiver of the event, to an event queue and returns immediately.

The event must be allocated on the heap since the post event queue will take ownership of the event and delete it once it has been posted. It is not safe to access the event after it has been posted.

When control returns to the main event loop, all events that are stored in the queue will be sent using the notify() function.

Events are processed in the order posted. For more control over the processing order, use the postEvent() overload below, which takes a priority argument. This function posts all event with a Qt.NormalEventPriority.

Note: This function is thread-safe.

See also sendEvent(), notify(), and sendPostedEvents().

QCoreApplication.postEvent (QObject receiver, QEvent event, int priority)

The event argument has it's ownership transferred to Qt.

This function overloads postEvent().

Adds the event event, with the object receiver as the receiver of the event, to an event queue and returns immediately.

The event must be allocated on the heap since the post event queue will take ownership of the event and delete it once it has been posted. It is not safe to access the event after it has been posted.

When control returns to the main event loop, all events that are stored in the queue will be sent using the notify() function.

Events are sorted in descending priority order, i.e. events with a high priority are queued before events with a lower priority. The priority can be any integer value, i.e. between INT_MAX and INT_MIN, inclusive; see Qt.EventPriority for more details. Events with equal priority will be processed in the order posted.

Note: This function is thread-safe.

This function was introduced in Qt 4.3.

See also sendEvent(), notify(), sendPostedEvents(), and Qt.EventPriority.

QCoreApplication.processEvents (QEventLoop.ProcessEventsFlags flags = QEventLoop.AllEvents)

Processes all pending events for the calling thread according to the specified flags until there are no more events to process.

You can call this function occasionally when your program is busy performing a long operation (e.g. copying a file).

In event you are running a local loop which calls this function continuously, without an event loop, the DeferredDelete events will not be processed. This can affect the behaviour of widgets, e.g. QToolTip, that rely on DeferredDelete events to function properly. An alternative would be to call sendPostedEvents() from within that local loop.

Calling this function processes events only for the calling thread.

Note: This function is thread-safe.

See also exec_(), QTimer, QEventLoop.processEvents(), flush(), and sendPostedEvents().

QCoreApplication.processEvents (QEventLoop.ProcessEventsFlags flags, int maxtime)

This function overloads processEvents().

Processes pending events for the calling thread for maxtime milliseconds or until there are no more events to process, whichever is shorter.

You can call this function occasionally when you program is busy doing a long operation (e.g. copying a file).

Calling this function processes events only for the calling thread.

Note: This function is thread-safe.

See also exec_(), QTimer, and QEventLoop.processEvents().

QCoreApplication.quit ()

This method is also a Qt slot with the C++ signature void quit().

Tells the application to exit with return code 0 (success). Equivalent to calling QCoreApplication.exit(0).

It's common to connect the QApplication.lastWindowClosed() signal to quit(), and you also often connect e.g. QAbstractButton.clicked() or signals in QAction, QMenu, or QMenuBar to it.

Example:

 QPushButton *quitButton = new QPushButton("Quit");
 connect(quitButton, SIGNAL(clicked()), &app, SLOT(quit()));

See also exit(), aboutToQuit(), and QApplication.lastWindowClosed().

QCoreApplication.removeLibraryPath (QString)

Removes path from the library path list. If path is empty or not in the path list, the list is not changed.

See also addLibraryPath(), libraryPaths(), and setLibraryPaths().

QCoreApplication.removePostedEvents (QObject receiver)

Removes all events posted using postEvent() for receiver.

The events are not dispatched, instead they are removed from the queue. You should never need to call this function. If you do call it, be aware that killing events may cause receiver to break one or more invariants.

Note: This function is thread-safe.

QCoreApplication.removePostedEvents (QObject receiver, int eventType)

This function overloads removePostedEvents().

Removes all events of the given eventType that were posted using postEvent() for receiver.

The events are not dispatched, instead they are removed from the queue. You should never need to call this function. If you do call it, be aware that killing events may cause receiver to break one or more invariants.

If receiver is null, the events of eventType are removed for all objects. If eventType is 0, all the events are removed for receiver.

Note: This function is thread-safe.

This function was introduced in Qt 4.3.

QCoreApplication.removeTranslator (QTranslator)

Removes the translation file translationFile from the list of translation files used by this application. (It does not delete the translation file from the file system.)

See also installTranslator(), translate(), and QObject.tr().

bool QCoreApplication.sendEvent (QObject receiver, QEvent event)

Sends event event directly to receiver receiver, using the notify() function. Returns the value that was returned from the event handler.

The event is not deleted when the event has been sent. The normal approach is to create the event on the stack, for example:

 QMouseEvent event(QEvent.MouseButtonPress, pos, 0, 0, 0);
 QApplication.sendEvent(mainWindow, &event);

See also postEvent() and notify().

QCoreApplication.sendPostedEvents (QObject receiver, int event_type)

Immediately dispatches all events which have been previously queued with QCoreApplication.postEvent() and which are for the object receiver and have the event type event_type.

Events from the window system are not dispatched by this function, but by processEvents().

If receiver is null, the events of event_type are sent for all objects. If event_type is 0, all the events are sent for receiver.

Note: This method must be called from the same thread as its QObject parameter, receiver.

See also flush() and postEvent().

QCoreApplication.sendPostedEvents ()

This function overloads sendPostedEvents().

Dispatches all posted events, i.e. empties the event queue.

QCoreApplication.setApplicationName (QString application)

QCoreApplication.setApplicationVersion (QString version)

QCoreApplication.setAttribute (Qt.ApplicationAttribute attribute, bool on = True)

Sets the attribute attribute if on is true; otherwise clears the attribute.

One of the attributes that can be set with this method is Qt.AA_ImmediateWidgetCreation. It tells Qt to create toplevel windows immediately. Normally, resources for widgets are allocated on demand to improve efficiency and minimize resource usage. Therefore, if it is important to minimize resource consumption, do not set this attribute.

See also testAttribute().

QCoreApplication.setLibraryPaths (QStringList)

Sets the list of directories to search when loading libraries to paths. All existing paths will be deleted and the path list will consist of the paths given in paths.

In Symbian this function is only useful for setting paths for finding Qt extension plugin stubs, since the OS can only load libraries from the /sys/bin directory.

See also libraryPaths(), addLibraryPath(), removeLibraryPath(), and QLibrary.

QCoreApplication.setOrganizationDomain (QString orgDomain)

QCoreApplication.setOrganizationName (QString orgName)

bool QCoreApplication.startingUp ()

Returns true if an application object has not been created yet; otherwise returns false.

See also closingDown().

bool QCoreApplication.testAttribute (Qt.ApplicationAttribute attribute)

Returns true if attribute attribute is set; otherwise returns false.

See also setAttribute().

QString QCoreApplication.translate (str context, str sourceText, str disambiguation = None, Encoding encoding = QCoreApplication.CodecForTr)

Returns the translation text for sourceText, by querying the installed translation files. The translation files are searched from the most recently installed file back to the first installed file.

QObject.tr() and QObject.trUtf8() provide this functionality more conveniently.

context is typically a class name (e.g., "MyDialog") and sourceText is either English text or a short identifying text.

disambiguation is an identifying string, for when the same sourceText is used in different roles within the same context. By default, it is null.

See the QTranslator and QObject.tr() documentation for more information about contexts, disambiguations and comments.

encoding indicates the 8-bit encoding of character strings.

n is used in conjunction with %n to support plural forms. See QObject.tr() for details.

If none of the translation files contain a translation for sourceText in context, this function returns a QString equivalent of sourceText. The encoding of sourceText is specified by encoding; it defaults to CodecForTr.

This function is not virtual. You can use alternative translation techniques by subclassing QTranslator.

Warning: This method is reentrant only if all translators are installed before calling this method. Installing or removing translators while performing translations is not supported. Doing so will most likely result in crashes or other undesirable behavior.

Note: This function is reentrant.

This function was introduced in Qt 4.5.

See also QObject.tr(), installTranslator(), and QTextCodec.codecForTr().

QString QCoreApplication.translate (str context, str sourceText, str disambiguation, Encoding encoding, int n)

This function overloads translate().


Qt Signal Documentation

void aboutToQuit ()

This is the default overload of this signal.

This signal is emitted when the application is about to quit the main event loop, e.g. when the event loop level drops to zero. This may happen either after a call to quit() from inside the application or when the users shuts down the entire desktop session.

The signal is particularly useful if your application has to do some last-second cleanup. Note that no user interaction is possible in this state.

See also quit().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcryptographichash.html0000644000076500000240000001167312536324471022265 0ustar philstaff00000000000000 QCryptographicHash Class Reference
  Home · All Classes · Modules

QCryptographicHash Class Reference
[QtCore module]

The QCryptographicHash class provides a way to generate cryptographic hashes. More...

Types

Methods

Static Methods

  • QByteArray hash (QByteArray data, Algorithm method)

Detailed Description

The QCryptographicHash class provides a way to generate cryptographic hashes.

QCryptographicHash can be used to generate cryptographic hashes of binary or text data.

Currently MD4, MD5, and SHA-1 are supported.


Type Documentation

QCryptographicHash.Algorithm

Constant Value Description
QCryptographicHash.Md4 0 Generate an MD4 hash sum
QCryptographicHash.Md5 1 Generate an MD5 hash sum
QCryptographicHash.Sha1 2 Generate an SHA1 hash sum

Method Documentation

QCryptographicHash.__init__ (self, Algorithm method)

Constructs an object that can be used to create a cryptographic hash from data using method.

QCryptographicHash.addData (self, str data)

Adds the first length chars of data to the cryptographic hash.

QCryptographicHash.addData (self, QByteArray data)

This function overloads addData().

QByteArray QCryptographicHash.hash (QByteArray data, Algorithm method)

Returns the hash of data using method.

QCryptographicHash.reset (self)

Resets the object.

QByteArray QCryptographicHash.result (self)

Returns the final hash value.

See also QByteArray.toHex().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qcursor.html0000644000076500000240000003733612536324502020057 0ustar philstaff00000000000000 QCursor Class Reference
  Home · All Classes · Modules

QCursor Class Reference
[QtGui module]

The QCursor class provides a mouse cursor with an arbitrary shape. More...

Methods

  • __init__ (self)
  • __init__ (self, Qt.CursorShape shape)
  • __init__ (self, QBitmap bitmap, QBitmap mask, int hotX = -1, int hotY = -1)
  • __init__ (self, QPixmap pixmap, int hotX = -1, int hotY = -1)
  • __init__ (self, QCursor cursor)
  • __init__ (self, QVariant variant)
  • QBitmap bitmap (self)
  • QPoint hotSpot (self)
  • QBitmap mask (self)
  • QPixmap pixmap (self)
  • setShape (self, Qt.CursorShape newShape)
  • Qt.CursorShape shape (self)

Static Methods


Detailed Description

A Qt.CursorShape may be used whenever a QCursor is expected.

The QCursor class provides a mouse cursor with an arbitrary shape.

This class is mainly used to create mouse cursors that are associated with particular widgets and to get and set the position of the mouse cursor.

Qt has a number of standard cursor shapes, but you can also make custom cursor shapes based on a QBitmap, a mask and a hotspot.

To associate a cursor with a widget, use QWidget.setCursor(). To associate a cursor with all widgets (normally for a short period of time), use QApplication.setOverrideCursor().

To set a cursor shape use QCursor.setShape() or use the QCursor constructor which takes the shape as argument, or you can use one of the predefined cursors defined in the Qt.CursorShape enum.

If you want to create a cursor with your own bitmap, either use the QCursor constructor which takes a bitmap and a mask or the constructor which takes a pixmap as arguments.

To set or get the position of the mouse cursor use the static methods QCursor.pos() and QCursor.setPos().

Note: It is possible to create a QCursor before QApplication, but it is not useful except as a place-holder for a real QCursor created after QApplication. Attempting to use a QCursor that was created before QApplication will result in a crash.

A Note for X11 Users

On X11, Qt supports the Xcursor library, which allows for full color icon themes. The table below shows the cursor name used for each Qt.CursorShape value. If a cursor cannot be found using the name shown below, a standard X11 cursor will be used instead. Note: X11 does not provide appropriate cursors for all possible Qt.CursorShape values. It is possible that some cursors will be taken from the Xcursor theme, while others will use an internal bitmap cursor.

Shape Qt.CursorShape Value Cursor Name Shape Qt.CursorShape Value Cursor Name
Qt.ArrowCursor left_ptr Qt.SizeVerCursor size_ver
Qt.UpArrowCursor up_arrow Qt.SizeHorCursor size_hor
Qt.CrossCursor cross Qt.SizeBDiagCursor size_bdiag
Qt.IBeamCursor ibeam Qt.SizeFDiagCursor size_fdiag
Qt.WaitCursor wait Qt.SizeAllCursor size_all
Qt.BusyCursor left_ptr_watch Qt.SplitVCursor split_v
Qt.ForbiddenCursor forbidden Qt.SplitHCursor split_h
Qt.PointingHandCursor pointing_hand Qt.OpenHandCursor openhand
Qt.WhatsThisCursor whats_this Qt.ClosedHandCursor closedhand
Qt.DragMoveCursor dnd-move or move Qt.DragCopyCursor dnd-copy or copy
Qt.DragLinkCursor dnd-link or link

Method Documentation

QCursor.__init__ (self)

Constructs a cursor with the default arrow shape.

QCursor.__init__ (self, Qt.CursorShape shape)

Constructs a cursor with the specified shape.

See Qt.CursorShape for a list of shapes.

See also setShape().

QCursor.__init__ (self, QBitmap bitmap, QBitmap mask, int hotX = -1, int hotY = -1)

Constructs a custom bitmap cursor.

bitmap and mask make up the bitmap. hotX and hotY define the cursor's hot spot.

If hotX is negative, it is set to the bitmap().width()/2. If hotY is negative, it is set to the bitmap().height()/2.

The cursor bitmap (B) and mask (M) bits are combined like this:

  • B=1 and M=1 gives black.
  • B=0 and M=1 gives white.
  • B=0 and M=0 gives transparent.
  • B=1 and M=0 gives an XOR'd result under Windows, undefined results on all other platforms.

Use the global Qt color Qt.color0 to draw 0-pixels and Qt.color1 to draw 1-pixels in the bitmaps.

Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.

Note: On Windows CE, the cursor size is fixed. If the pixmap is bigger than the system size, it will be scaled.

See also QBitmap.QBitmap() and QBitmap.setMask().

QCursor.__init__ (self, QPixmap pixmap, int hotX = -1, int hotY = -1)

Constructs a custom pixmap cursor.

pixmap is the image. It is usual to give it a mask (set using QPixmap.setMask()). hotX and hotY define the cursor's hot spot.

If hotX is negative, it is set to the pixmap().width()/2. If hotY is negative, it is set to the pixmap().height()/2.

Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.

Note: On Windows CE, the cursor size is fixed. If the pixmap is bigger than the system size, it will be scaled.

See also QPixmap.QPixmap() and QPixmap.setMask().

QCursor.__init__ (self, QCursor cursor)

Constructs a copy of the cursor c.

QCursor.__init__ (self, QVariant variant)

Constructs a Qt cursor from the given Windows cursor.

Warning: This function is only available on Windows.

See also handle().

QBitmap QCursor.bitmap (self)

Returns the cursor bitmap, or 0 if it is one of the standard cursors.

QPoint QCursor.hotSpot (self)

Returns the cursor hot spot, or (0, 0) if it is one of the standard cursors.

QBitmap QCursor.mask (self)

Returns the cursor bitmap mask, or 0 if it is one of the standard cursors.

QPixmap QCursor.pixmap (self)

Returns the cursor pixmap. This is only valid if the cursor is a pixmap cursor.

QPoint QCursor.pos ()

Returns the position of the cursor (hot spot) in global screen coordinates.

You can call QWidget.mapFromGlobal() to translate it to widget coordinates.

See also setPos(), QWidget.mapFromGlobal(), and QWidget.mapToGlobal().

QCursor.setPos (int x, int y)

Moves the cursor (hot spot) to the global screen position (x, y).

You can call QWidget.mapToGlobal() to translate widget coordinates to global screen coordinates.

See also pos(), QWidget.mapFromGlobal(), and QWidget.mapToGlobal().

QCursor.setPos (QPoint p)

This is an overloaded function.

Moves the cursor (hot spot) to the global screen position at point p.

QCursor.setShape (self, Qt.CursorShape newShape)

Sets the cursor to the shape identified by shape.

See Qt.CursorShape for the list of cursor shapes.

See also shape().

Qt.CursorShape QCursor.shape (self)

Returns the cursor shape identifier. The return value is one of the Qt.CursorShape enum values (cast to an int).

See also setShape().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdatastream.html0000644000076500000240000023521112536324472020665 0ustar philstaff00000000000000 QDataStream Class Reference
  Home · All Classes · Modules

QDataStream Class Reference
[QtCore module]

The QDataStream class provides serialization of binary data to a QIODevice. More...

Types

  • enum ByteOrder { BigEndian, LittleEndian }
  • enum FloatingPointPrecision { SinglePrecision, DoublePrecision }
  • enum Status { Ok, ReadPastEnd, ReadCorruptData, WriteFailed }
  • enum Version { Qt_1_0, Qt_2_0, Qt_2_1, Qt_3_0, ..., Qt_4_8 }

Methods

Special Methods


Detailed Description

The QDataStream class provides serialization of binary data to a QIODevice.

A data stream is a binary stream of encoded information which is 100% independent of the host computer's operating system, CPU or byte order. For example, a data stream that is written by a PC under Windows can be read by a Sun SPARC running Solaris.

You can also use a data stream to read/write raw unencoded binary data. If you want a "parsing" input stream, see QTextStream.

The QDataStream class implements the serialization of C++'s basic data types, like char, short, int, char *, etc. Serialization of more complex data is accomplished by breaking up the data into primitive units.

A data stream cooperates closely with a QIODevice. A QIODevice represents an input/output medium one can read data from and write data to. The QFile class is an example of an I/O device.

Example (write binary data to a stream):

 QFile file("file.dat");
 file.open(QIODevice.WriteOnly);
 QDataStream out(&file);   // we will serialize the data into the file
 out << QString("the answer is");   // serialize a string
 out << (qint32)42;        // serialize an integer

Example (read binary data from a stream):

 QFile file("file.dat");
 file.open(QIODevice.ReadOnly);
 QDataStream in(&file);    // read the data serialized from the file
 QString str;
 qint32 a;
 in >> str >> a;           // extract "the answer is" and 42

Each item written to the stream is written in a predefined binary format that varies depending on the item's type. Supported Qt types include QBrush, QColor, QDateTime, QFont, QPixmap, QString, QVariant and many others. For the complete list of all Qt types supporting data streaming see Serializing Qt Data Types.

For integers it is best to always cast to a Qt integer type for writing, and to read back into the same Qt integer type. This ensures that you get integers of the size you want and insulates you from compiler and platform differences.

To take one example, a char * string is written as a 32-bit integer equal to the length of the string including the '\0' byte, followed by all the characters of the string including the '\0' byte. When reading a char * string, 4 bytes are read to create the 32-bit length value, then that many characters for the char * string including the '\0' terminator are read.

The initial I/O device is usually set in the constructor, but can be changed with setDevice(). If you've reached the end of the data (or if there is no I/O device set) atEnd() will return true.

Versioning

QDataStream's binary format has evolved since Qt 1.0, and is likely to continue evolving to reflect changes done in Qt. When inputting or outputting complex types, it's very important to make sure that the same version of the stream (version()) is used for reading and writing. If you need both forward and backward compatibility, you can hardcode the version number in the application:

 stream.setVersion(QDataStream.Qt_4_0);

If you are producing a new binary data format, such as a file format for documents created by your application, you could use a QDataStream to write the data in a portable format. Typically, you would write a brief header containing a magic string and a version number to give yourself room for future expansion. For example:

 QFile file("file.xxx");
 file.open(QIODevice.WriteOnly);
 QDataStream out(&file);

 // Write a header with a "magic number" and a version
 out << (quint32)0xA0B0C0D0;
 out << (qint32)123;

 out.setVersion(QDataStream.Qt_4_0);

 // Write the data
 out << lots_of_interesting_data;

Then read it in with:

 QFile file("file.xxx");
 file.open(QIODevice.ReadOnly);
 QDataStream in(&file);

 // Read and check the header
 quint32 magic;
 in >> magic;
 if (magic != 0xA0B0C0D0)
     return XXX_BAD_FILE_FORMAT;

 // Read the version
 qint32 version;
 in >> version;
 if (version < 100)
     return XXX_BAD_FILE_TOO_OLD;
 if (version > 123)
     return XXX_BAD_FILE_TOO_NEW;

 if (version <= 110)
     in.setVersion(QDataStream.Qt_3_2);
 else
     in.setVersion(QDataStream.Qt_4_0);

 // Read the data
 in >> lots_of_interesting_data;
 if (version >= 120)
     in >> data_new_in_XXX_version_1_2;
 in >> other_interesting_data;

You can select which byte order to use when serializing data. The default setting is big endian (MSB first). Changing it to little endian breaks the portability (unless the reader also changes to little endian). We recommend keeping this setting unless you have special requirements.

Reading and writing raw binary data

You may wish to read/write your own raw binary data to/from the data stream directly. Data may be read from the stream into a preallocated char * using readRawData(). Similarly data can be written to the stream using writeRawData(). Note that any encoding/decoding of the data must be done by you.

A similar pair of functions is readBytes() and writeBytes(). These differ from their raw counterparts as follows: readBytes() reads a quint32 which is taken to be the length of the data to be read, then that number of bytes is read into the preallocated char *; writeBytes() writes a quint32 containing the length of the data, followed by the data. Note that any encoding/decoding of the data (apart from the length quint32) must be done by you.

Reading and writing Qt collection classes

The Qt container classes can also be serialized to a QDataStream. These include QList, QLinkedList, QVector, QSet, QHash, and QMap. The stream operators are declared as non-members of the classes.

Reading and writing other Qt classes.

In addition to the overloaded stream operators documented here, any Qt classes that you might want to serialize to a QDataStream will have appropriate stream operators declared as non-member of the class:

 QDataStream &operator<<(QDataStream &, const QXxx &);
 QDataStream &operator>>(QDataStream &, QXxx &);

For example, here are the stream operators declared as non-members of the QImage class:

 QDataStream & operator<< (QDataStream& stream, const QImage& image);
 QDataStream & operator>> (QDataStream& stream, QImage& image);

To see if your favorite Qt class has similar stream operators defined, check the Related Non-Members section of the class's documentation page.


Type Documentation

QDataStream.ByteOrder

The byte order used for reading/writing the data.

Constant Value Description
QDataStream.BigEndian QSysInfo.BigEndian Most significant byte first (the default)
QDataStream.LittleEndian QSysInfo.LittleEndian Least significant byte first

QDataStream.FloatingPointPrecision

The precision of floating point numbers used for reading/writing the data. This will only have an effect if the version of the data stream is Qt_4_6 or higher.

Warning: The floating point precision must be set to the same value on the object that writes and the object that reads the data stream.

Constant Value Description
QDataStream.SinglePrecision 0 All floating point numbers in the data stream have 32-bit precision.
QDataStream.DoublePrecision 1 All floating point numbers in the data stream have 64-bit precision.

See also setFloatingPointPrecision() and floatingPointPrecision().

QDataStream.Status

This enum describes the current status of the data stream.

Constant Value Description
QDataStream.Ok 0 The data stream is operating normally.
QDataStream.ReadPastEnd 1 The data stream has read past the end of the data in the underlying device.
QDataStream.ReadCorruptData 2 The data stream has read corrupt data.
QDataStream.WriteFailed 3 The data stream cannot write to the underlying device.

QDataStream.Version

This enum provides symbolic synonyms for the data serialization format version numbers.

Constant Value Description
QDataStream.Qt_1_0 1 Version 1 (Qt 1.x)
QDataStream.Qt_2_0 2 Version 2 (Qt 2.0)
QDataStream.Qt_2_1 3 Version 3 (Qt 2.1, 2.2, 2.3)
QDataStream.Qt_3_0 4 Version 4 (Qt 3.0)
QDataStream.Qt_3_1 5 Version 5 (Qt 3.1, 3.2)
QDataStream.Qt_3_3 6 Version 6 (Qt 3.3)
QDataStream.Qt_4_0 7 Version 7 (Qt 4.0, Qt 4.1)
QDataStream.Qt_4_1 Qt_4_0 Version 7 (Qt 4.0, Qt 4.1)
QDataStream.Qt_4_2 8 Version 8 (Qt 4.2)
QDataStream.Qt_4_3 9 Version 9 (Qt 4.3)
QDataStream.Qt_4_4 10 Version 10 (Qt 4.4)
QDataStream.Qt_4_5 11 Version 11 (Qt 4.5)
QDataStream.Qt_4_6 12 Version 12 (Qt 4.6, Qt 4.7, Qt 4.8)
QDataStream.Qt_4_7 Qt_4_6 Same as Qt_4_6.
QDataStream.Qt_4_8 Qt_4_7 Qt_4_9 = Qt_4_8 Same as Qt_4_6.

See also setVersion() and version().


Method Documentation

QDataStream.__init__ (self)

Constructs a data stream that has no I/O device.

See also setDevice().

QDataStream.__init__ (self, QIODevice)

Constructs a data stream that uses the I/O device d.

Warning: If you use QSocket or QSocketDevice as the I/O device d for reading data, you must make sure that enough data is available on the socket for the operation to successfully proceed; QDataStream does not have any means to handle or recover from short-reads.

See also setDevice() and device().

QDataStream.__init__ (self, QByteArray, QIODevice.OpenMode flags)

QDataStream.__init__ (self, QByteArray)

Constructs a data stream that operates on a byte array, a. The mode describes how the device is to be used.

Alternatively, you can use QDataStream(const QByteArray &) if you just want to read from a byte array.

Since QByteArray is not a QIODevice subclass, internally a QBuffer is created to wrap the byte array.

bool QDataStream.atEnd (self)

Returns true if the I/O device has reached the end position (end of the stream or file) or if there is no I/O device set; otherwise returns false.

See also QIODevice.atEnd().

ByteOrder QDataStream.byteOrder (self)

Returns the current byte order setting -- either BigEndian or LittleEndian.

See also setByteOrder().

QIODevice QDataStream.device (self)

Returns the I/O device currently set, or 0 if no device is currently set.

See also setDevice().

FloatingPointPrecision QDataStream.floatingPointPrecision (self)

Returns the floating point precision of the data stream.

This function was introduced in Qt 4.6.

See also FloatingPointPrecision and setFloatingPointPrecision().

bool QDataStream.readBool (self)

str QDataStream.readBytes (self)

Reads the buffer s from the stream and returns a reference to the stream.

The buffer s is allocated using new. Destroy it with the delete[] operator.

The l parameter is set to the length of the buffer. If the string read is empty, l is set to 0 and s is set to a null pointer.

The serialization format is a quint32 length specifier first, then l bytes of data.

See also readRawData() and writeBytes().

float QDataStream.readDouble (self)

float QDataStream.readFloat (self)

int QDataStream.readInt (self)

int QDataStream.readInt16 (self)

int QDataStream.readInt32 (self)

int QDataStream.readInt64 (self)

str QDataStream.readInt8 (self)

QString QDataStream.readQString (self)

QStringList QDataStream.readQStringList (self)

QVariant QDataStream.readQVariant (self)

dict-of-QString-QVariant QDataStream.readQVariantHash (self)

list-of-QVariant QDataStream.readQVariantList (self)

dict-of-QString-QVariant QDataStream.readQVariantMap (self)

str QDataStream.readRawData (self, int len)

Reads at most len bytes from the stream into s and returns the number of bytes read. If an error occurs, this function returns -1.

The buffer s must be preallocated. The data is not encoded.

See also readBytes(), QIODevice.read(), and writeRawData().

str QDataStream.readString (self)

int QDataStream.readUInt16 (self)

int QDataStream.readUInt32 (self)

int QDataStream.readUInt64 (self)

str QDataStream.readUInt8 (self)

QDataStream.resetStatus (self)

Resets the status of the data stream.

See also Status, status(), and setStatus().

QDataStream.setByteOrder (self, ByteOrder)

Sets the serialization byte order to bo.

The bo parameter can be QDataStream.BigEndian or QDataStream.LittleEndian.

The default setting is big endian. We recommend leaving this setting unless you have special requirements.

See also byteOrder().

QDataStream.setDevice (self, QIODevice)

void QDataStream.setDevice(QIODevice *d)

Sets the I/O device to d, which can be 0 to unset to current I/O device.

See also device().

QDataStream.setFloatingPointPrecision (self, FloatingPointPrecision precision)

Sets the floating point precision of the data stream to precision. If the floating point precision is DoublePrecision and the version of the data stream is Qt_4_6 or higher, all floating point numbers will be written and read with 64-bit precision. If the floating point precision is SinglePrecision and the version is Qt_4_6 or higher, all floating point numbers will be written and read with 32-bit precision.

For versions prior to Qt_4_6, the precision of floating point numbers in the data stream depends on the stream operator called.

The default is DoublePrecision.

Warning: This property must be set to the same value on the object that writes and the object that reads the data stream.

This function was introduced in Qt 4.6.

See also floatingPointPrecision().

QDataStream.setStatus (self, Status status)

Sets the status of the data stream to the status given.

Subsequent calls to setStatus() are ignored until resetStatus() is called.

See also Status, status(), and resetStatus().

QDataStream.setVersion (self, int v)

Sets the version number of the data serialization format to v.

You don't have to set a version if you are using the current version of Qt, but for your own custom binary formats we recommend that you do; see Versioning in the Detailed Description.

To accommodate new functionality, the datastream serialization format of some Qt classes has changed in some versions of Qt. If you want to read data that was created by an earlier version of Qt, or write data that can be read by a program that was compiled with an earlier version of Qt, use this function to modify the serialization format used by QDataStream.

Qt Version QDataStream Version
Qt 4.6 12
Qt 4.5 11
Qt 4.4 10
Qt 4.3 9
Qt 4.2 8
Qt 4.0, 4.1 7
Qt 3.3 6
Qt 3.1, 3.2 5
Qt 3.0 4
Qt 2.1, 2.2, 2.3 3
Qt 2.0 2
Qt 1.x 1

The Version enum provides symbolic constants for the different versions of Qt. For example:

 QDataStream out(file);
 out.setVersion(QDataStream.Qt_4_0);

See also version() and Version.

int QDataStream.skipRawData (self, int len)

Skips len bytes from the device. Returns the number of bytes actually skipped, or -1 on error.

This is equivalent to calling readRawData() on a buffer of length len and ignoring the buffer.

This function was introduced in Qt 4.1.

See also QIODevice.seek().

Status QDataStream.status (self)

Returns the status of the data stream.

See also Status, setStatus(), and resetStatus().

QDataStream.unsetDevice (self)

int QDataStream.version (self)

Returns the version number of the data serialization format.

See also setVersion() and Version.

QDataStream.writeBool (self, bool i)

QDataStream QDataStream.writeBytes (self, str)

Writes the length specifier len and the buffer s to the stream and returns a reference to the stream.

The len is serialized as a quint32, followed by len bytes from s. Note that the data is not encoded.

See also writeRawData() and readBytes().

QDataStream.writeDouble (self, float f)

QDataStream.writeFloat (self, float f)

QDataStream.writeInt (self, int i)

QDataStream.writeInt16 (self, int i)

QDataStream.writeInt32 (self, int i)

QDataStream.writeInt64 (self, int i)

QDataStream.writeInt8 (self, str i)

QDataStream.writeQString (self, QString qstr)

QDataStream.writeQStringList (self, QStringList qstrlst)

QDataStream.writeQVariant (self, QVariant qvar)

QDataStream.writeQVariantHash (self, dict-of-QString-QVariant qvarhash)

QDataStream.writeQVariantList (self, list-of-QVariant qvarlst)

QDataStream.writeQVariantMap (self, dict-of-QString-QVariant qvarmap)

int QDataStream.writeRawData (self, str)

Writes len bytes from s to the stream. Returns the number of bytes actually written, or -1 on error. The data is not encoded.

See also writeBytes(), QIODevice.write(), and readRawData().

QDataStream.writeString (self, str str)

QDataStream.writeUInt16 (self, int i)

QDataStream.writeUInt32 (self, int i)

QDataStream.writeUInt64 (self, int i)

QDataStream.writeUInt8 (self, str i)

QDataStream __lshift__ (self, QColor)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QNetworkCacheMetaData)

This method is only available if the QtNetwork module is imported.

QDataStream __lshift__ (self, QScriptContextInfo)

This method is only available if the QtScript module is imported.

QDataStream __lshift__ (self, QWebHistory)

This method is only available if the QtWebKit module is imported.

QDataStream __lshift__ (self, QBrush)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QHostAddress)

This method is only available if the QtNetwork module is imported.

QDataStream __lshift__ (self, QCursor cursor)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QFont)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QIcon)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QImage)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QKeySequence ks)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QListWidgetItem item)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QMatrix)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QMatrix4x4)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QPainterPath)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QPalette p)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QPen)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QPicture p)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QPixmap)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QPolygonF array)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QPolygon polygon)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QQuaternion)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QRegion)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QSizePolicy)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QStandardItem item)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QTableWidgetItem item)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QTextLength)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QTextFormat)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QTransform)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QTreeWidgetItem item)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QVector2D)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QVector3D)

This method is only available if the QtGui module is imported.

QDataStream __lshift__ (self, QVector4D)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QColor)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QNetworkCacheMetaData)

This method is only available if the QtNetwork module is imported.

QDataStream __rshift__ (self, QScriptContextInfo)

This method is only available if the QtScript module is imported.

QDataStream __rshift__ (self, QWebHistory)

This method is only available if the QtWebKit module is imported.

QDataStream __rshift__ (self, QBrush)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QHostAddress)

This method is only available if the QtNetwork module is imported.

QDataStream __rshift__ (self, QCursor cursor)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QFont)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QIcon)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QImage)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QKeySequence ks)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QListWidgetItem item)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QMatrix)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QMatrix4x4)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QPainterPath)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QPalette p)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QPen)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QPicture p)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QPixmap)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QPolygonF array)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QPolygon polygon)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QQuaternion)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QRegion)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QSizePolicy)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QStandardItem item)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QTableWidgetItem item)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QTextLength)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QTextFormat)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QTransform)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QTreeWidgetItem item)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QVector2D)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QVector3D)

This method is only available if the QtGui module is imported.

QDataStream __rshift__ (self, QVector4D)

This method is only available if the QtGui module is imported.

QDataStream QDataStream.__lshift__ (self, QBitArray)

QDataStream QDataStream.__lshift__ (self, QByteArray)

QDataStream QDataStream.__lshift__ (self, QChar)

QDataStream QDataStream.__lshift__ (self, QDate)

QDataStream QDataStream.__lshift__ (self, QTime)

QDataStream QDataStream.__lshift__ (self, QDateTime)

QDataStream QDataStream.__lshift__ (self, QEasingCurve)

QDataStream QDataStream.__lshift__ (self, QLine)

QDataStream QDataStream.__lshift__ (self, QLineF)

QDataStream QDataStream.__lshift__ (self, QLocale)

QDataStream QDataStream.__lshift__ (self, QPoint)

QDataStream QDataStream.__lshift__ (self, QPointF)

QDataStream QDataStream.__lshift__ (self, QRect)

QDataStream QDataStream.__lshift__ (self, QRectF)

QDataStream QDataStream.__lshift__ (self, QRegExp regExp)

QDataStream QDataStream.__lshift__ (self, QSize)

QDataStream QDataStream.__lshift__ (self, QSizeF)

QDataStream QDataStream.__lshift__ (self, QString)

QDataStream QDataStream.__lshift__ (self, QStringList list)

QDataStream QDataStream.__lshift__ (self, QUrl)

QDataStream QDataStream.__lshift__ (self, QUuid)

QDataStream QDataStream.__lshift__ (self, QVariant p)

QDataStream QDataStream.__lshift__ (self, Type p)

QDataStream QDataStream.__rshift__ (self, QBitArray)

QDataStream QDataStream.__rshift__ (self, QByteArray)

QDataStream QDataStream.__rshift__ (self, QChar)

QDataStream QDataStream.__rshift__ (self, QDate)

QDataStream QDataStream.__rshift__ (self, QTime)

QDataStream QDataStream.__rshift__ (self, QDateTime)

QDataStream QDataStream.__rshift__ (self, QEasingCurve)

QDataStream QDataStream.__rshift__ (self, QLine)

QDataStream QDataStream.__rshift__ (self, QLineF)

QDataStream QDataStream.__rshift__ (self, QLocale)

QDataStream QDataStream.__rshift__ (self, QPoint)

QDataStream QDataStream.__rshift__ (self, QPointF)

QDataStream QDataStream.__rshift__ (self, QRect)

QDataStream QDataStream.__rshift__ (self, QRectF)

QDataStream QDataStream.__rshift__ (self, QRegExp regExp)

QDataStream QDataStream.__rshift__ (self, QSize)

QDataStream QDataStream.__rshift__ (self, QSizeF)

QDataStream QDataStream.__rshift__ (self, QString)

QDataStream QDataStream.__rshift__ (self, QStringList list)

QDataStream QDataStream.__rshift__ (self, QUrl)

QDataStream QDataStream.__rshift__ (self, QUuid)

QDataStream QDataStream.__rshift__ (self, QVariant p)

QDataStream QDataStream.__rshift__ (self, Type p)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdatawidgetmapper.html0000644000076500000240000006306412536324502022061 0ustar philstaff00000000000000 QDataWidgetMapper Class Reference
  Home · All Classes · Modules

QDataWidgetMapper Class Reference
[QtGui module]

The QDataWidgetMapper class provides mapping between a section of a data model to widgets. More...

Inherits QObject.

Types

Methods

Qt Signals


Detailed Description

The QDataWidgetMapper class provides mapping between a section of a data model to widgets.

QDataWidgetMapper can be used to create data-aware widgets by mapping them to sections of an item model. A section is a column of a model if the orientation is horizontal (the default), otherwise a row.

Every time the current index changes, each widget is updated with data from the model via the property specified when its mapping was made. If the user edits the contents of a widget, the changes are read using the same property and written back to the model. By default, each widget's user property is used to transfer data between the model and the widget. Since Qt 4.3, an additional addMapping() function enables a named property to be used instead of the default user property.

It is possible to set an item delegate to support custom widgets. By default, a QItemDelegate is used to synchronize the model with the widgets.

Let us assume that we have an item model named model with the following contents:

1 Qt Norway Oslo
2 Qt Australia Brisbane
3 Qt USA Palo Alto
4 Qt China Beijing
5 Qt Germany Berlin

The following code will map the columns of the model to widgets called mySpinBox, myLineEdit and myCountryChooser:

 QDataWidgetMapper *mapper = new QDataWidgetMapper;
 mapper->setModel(model);
 mapper->addMapping(mySpinBox, 0);
 mapper->addMapping(myLineEdit, 1);
 mapper->addMapping(myCountryChooser, 2);
 mapper->toFirst();

After the call to toFirst(), mySpinBox displays the value 1, myLineEdit displays Qt Norway and myCountryChooser displays Oslo. The navigational functions toFirst(), toNext(), toPrevious(), toLast() and setCurrentIndex() can be used to navigate in the model and update the widgets with contents from the model.

The setRootIndex() function enables a particular item in a model to be specified as the root index - children of this item will be mapped to the relevant widgets in the user interface.

QDataWidgetMapper supports two submit policies, AutoSubmit and ManualSubmit. AutoSubmit will update the model as soon as the current widget loses focus, ManualSubmit will not update the model unless submit() is called. ManualSubmit is useful when displaying a dialog that lets the user cancel all modifications. Also, other views that display the model won't update until the user finishes all their modifications and submits.

Note that QDataWidgetMapper keeps track of external modifications. If the contents of the model are updated in another module of the application, the widgets are updated as well.


Type Documentation

QDataWidgetMapper.SubmitPolicy

This enum describes the possible submit policies a QDataWidgetMapper supports.

Constant Value Description
QDataWidgetMapper.AutoSubmit 0 Whenever a widget loses focus, the widget's current value is set to the item model.
QDataWidgetMapper.ManualSubmit 1 The model is not updated until submit() is called.

Method Documentation

QDataWidgetMapper.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QDataWidgetMapper with parent object parent. By default, the orientation is horizontal and the submit policy is AutoSubmit.

See also setOrientation() and setSubmitPolicy().

QDataWidgetMapper.addMapping (self, QWidget widget, int section)

Adds a mapping between a widget and a section from the model. The section is a column in the model if the orientation is horizontal (the default), otherwise a row.

For the following example, we assume a model myModel that has two columns: the first one contains the names of people in a group, and the second column contains their ages. The first column is mapped to the QLineEdit nameLineEdit, and the second is mapped to the QSpinBox ageSpinBox:

 QDataWidgetMapper *mapper = new QDataWidgetMapper();
 mapper->setModel(myModel);
 mapper->addMapping(nameLineEdit, 0);
 mapper->addMapping(ageSpinBox, 1);

Notes:

  • If the widget is already mapped to a section, the old mapping will be replaced by the new one.
  • Only one-to-one mappings between sections and widgets are allowed. It is not possible to map a single section to multiple widgets, or to map a single widget to multiple sections.

See also removeMapping(), mappedSection(), and clearMapping().

QDataWidgetMapper.addMapping (self, QWidget widget, int section, QByteArray propertyName)

Essentially the same as addMapping(), but adds the possibility to specify the property to use specifying propertyName.

This function was introduced in Qt 4.3.

See also addMapping().

QDataWidgetMapper.clearMapping (self)

Clears all mappings.

See also addMapping() and removeMapping().

int QDataWidgetMapper.currentIndex (self)

QAbstractItemDelegate QDataWidgetMapper.itemDelegate (self)

Returns the current item delegate.

See also setItemDelegate().

QByteArray QDataWidgetMapper.mappedPropertyName (self, QWidget widget)

Returns the name of the property that is used when mapping data to the given widget.

This function was introduced in Qt 4.3.

See also mappedSection(), addMapping(), and removeMapping().

int QDataWidgetMapper.mappedSection (self, QWidget widget)

Returns the section the widget is mapped to or -1 if the widget is not mapped.

See also addMapping() and removeMapping().

QWidget QDataWidgetMapper.mappedWidgetAt (self, int section)

Returns the widget that is mapped at section, or 0 if no widget is mapped at that section.

See also addMapping() and removeMapping().

QAbstractItemModel QDataWidgetMapper.model (self)

Returns the current model.

See also setModel().

Qt.Orientation QDataWidgetMapper.orientation (self)

QDataWidgetMapper.removeMapping (self, QWidget widget)

Removes the mapping for the given widget.

See also addMapping() and clearMapping().

QDataWidgetMapper.revert (self)

This method is also a Qt slot with the C++ signature void revert().

Repopulates all widgets with the current data of the model. All unsubmitted changes will be lost.

See also submit() and setSubmitPolicy().

QModelIndex QDataWidgetMapper.rootIndex (self)

Returns the current root index.

See also setRootIndex().

QDataWidgetMapper.setCurrentIndex (self, int index)

This method is also a Qt slot with the C++ signature void setCurrentIndex(int).

QDataWidgetMapper.setCurrentModelIndex (self, QModelIndex index)

This method is also a Qt slot with the C++ signature void setCurrentModelIndex(const QModelIndex&).

Sets the current index to the row of the index if the orientation is horizontal (the default), otherwise to the column of the index.

Calls setCurrentIndex() internally. This convenience slot can be connected to the signal currentRowChanged() or currentColumnChanged() of another view's selection model.

The following example illustrates how to update all widgets with new data whenever the selection of a QTableView named myTableView changes:

 QDataWidgetMapper *mapper = new QDataWidgetMapper();
 connect(myTableView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
         mapper, SLOT(setCurrentModelIndex(QModelIndex)));

See also currentIndex().

QDataWidgetMapper.setItemDelegate (self, QAbstractItemDelegate delegate)

Sets the item delegate to delegate. The delegate will be used to write data from the model into the widget and from the widget to the model, using QAbstractItemDelegate.setEditorData() and QAbstractItemDelegate.setModelData().

The delegate also decides when to apply data and when to change the editor, using QAbstractItemDelegate.commitData() and QAbstractItemDelegate.closeEditor().

Warning: You should not share the same instance of a delegate between widget mappers or views. Doing so can cause incorrect or unintuitive editing behavior since each view connected to a given delegate may receive the closeEditor() signal, and attempt to access, modify or close an editor that has already been closed.

See also itemDelegate().

QDataWidgetMapper.setModel (self, QAbstractItemModel model)

Sets the current model to model. If another model was set, all mappings to that old model are cleared.

See also model().

QDataWidgetMapper.setOrientation (self, Qt.Orientation aOrientation)

QDataWidgetMapper.setRootIndex (self, QModelIndex index)

Sets the root item to index. This can be used to display a branch of a tree. Pass an invalid model index to display the top-most branch.

See also rootIndex().

QDataWidgetMapper.setSubmitPolicy (self, SubmitPolicy policy)

bool QDataWidgetMapper.submit (self)

This method is also a Qt slot with the C++ signature bool submit().

Submits all changes from the mapped widgets to the model.

For every mapped section, the item delegate reads the current value from the widget and sets it in the model. Finally, the model's submit() method is invoked.

Returns true if all the values were submitted, otherwise false.

Note: For database models, QSqlQueryModel.lastError() can be used to retrieve the last error.

See also revert() and setSubmitPolicy().

SubmitPolicy QDataWidgetMapper.submitPolicy (self)

QDataWidgetMapper.toFirst (self)

This method is also a Qt slot with the C++ signature void toFirst().

Populates the widgets with data from the first row of the model if the orientation is horizontal (the default), otherwise with data from the first column.

This is equivalent to calling setCurrentIndex(0).

See also toLast() and setCurrentIndex().

QDataWidgetMapper.toLast (self)

This method is also a Qt slot with the C++ signature void toLast().

Populates the widgets with data from the last row of the model if the orientation is horizontal (the default), otherwise with data from the last column.

Calls setCurrentIndex() internally.

See also toFirst() and setCurrentIndex().

QDataWidgetMapper.toNext (self)

This method is also a Qt slot with the C++ signature void toNext().

Populates the widgets with data from the next row of the model if the orientation is horizontal (the default), otherwise with data from the next column.

Calls setCurrentIndex() internally. Does nothing if there is no next row in the model.

See also toPrevious() and setCurrentIndex().

QDataWidgetMapper.toPrevious (self)

This method is also a Qt slot with the C++ signature void toPrevious().

Populates the widgets with data from the previous row of the model if the orientation is horizontal (the default), otherwise with data from the previous column.

Calls setCurrentIndex() internally. Does nothing if there is no previous row in the model.

See also toNext() and setCurrentIndex().


Qt Signal Documentation

void currentIndexChanged (int)

This is the default overload of this signal.

This signal is emitted after the current index has changed and all widgets were populated with new data. index is the new current index.

See also currentIndex() and setCurrentIndex().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdate.html0000644000076500000240000012561612536324472017464 0ustar philstaff00000000000000 QDate Class Reference
  Home · All Classes · Modules

QDate Class Reference
[QtCore module]

The QDate class provides date functions. More...

Types

Methods

Static Methods

Special Methods


Detailed Description

This class can be pickled.

A Python date object may be used whenever a QDate is expected.

The QDate class provides date functions.

A QDate object contains a calendar date, i.e. year, month, and day numbers, in the Gregorian calendar. (see Use of Gregorian and Julian Calendars for dates prior to 15 October 1582). It can read the current date from the system clock. It provides functions for comparing dates, and for manipulating dates. For example, it is possible to add and subtract days, months, and years to dates.

A QDate object is typically created either by giving the year, month, and day numbers explicitly. Note that QDate interprets two digit years as is, i.e., years 0 - 99. A QDate can also be constructed with the static function currentDate(), which creates a QDate object containing the system clock's date. An explicit date can also be set using setDate(). The fromString() function returns a QDate given a string and a date format which is used to interpret the date within the string.

The year(), month(), and day() functions provide access to the year, month, and day numbers. Also, dayOfWeek() and dayOfYear() functions are provided. The same information is provided in textual format by the toString(), shortDayName(), longDayName(), shortMonthName(), and longMonthName() functions.

QDate provides a full set of operators to compare two QDate objects where smaller means earlier, and larger means later.

You can increment (or decrement) a date by a given number of days using addDays(). Similarly you can use addMonths() and addYears(). The daysTo() function returns the number of days between two dates.

The daysInMonth() and daysInYear() functions return how many days there are in this date's month and year, respectively. The isLeapYear() function indicates whether a date is in a leap year.

Use of Gregorian and Julian Calendars

QDate uses the Gregorian calendar in all locales, beginning on the date 15 October 1582. For dates up to and including 4 October 1582, the Julian calendar is used. This means there is a 10-day gap in the internal calendar between the 4th and the 15th of October 1582. When you use QDateTime for dates in that epoch, the day after 4 October 1582 is 15 October 1582, and the dates in the gap are invalid.

The Julian to Gregorian changeover date used here is the date when the Gregorian calendar was first introduced, by Pope Gregory XIII. That change was not universally accepted and some localities only executed it at a later date (if at all). QDateTime doesn't take any of these historical facts into account. If an application must support a locale-specific dating system, it must do so on its own, remembering to convert the dates using the Julian day.

No Year 0

There is no year 0. Dates in that year are considered invalid. The year -1 is the year "1 before Christ" or "1 before current era." The day before 0001-01-01 is December 31st, 1 BCE.

Range of Valid Dates

The range of valid dates is from January 2nd, 4713 BCE, to sometime in the year 11 million CE. The Julian Day returned by QDate.toJulianDay() is a number in the contiguous range from 1 to overflow, even across QDateTime's "date holes". It is suitable for use in applications that must convert a QDateTime to a date in another calendar system, e.g., Hebrew, Islamic or Chinese.


Type Documentation

QDate.MonthNameType

This enum describes the types of the string representation used for the month name.

Constant Value Description
QDate.DateFormat 0 This type of name can be used for date-to-string formatting.
QDate.StandaloneFormat 1 This type is used when you need to enumerate months or weekdays. Usually standalone names are represented in singular forms with capitalized first letter.

This enum was introduced or modified in Qt 4.5.


Method Documentation

QDate.__init__ (self)

Constructs a null date. Null dates are invalid.

See also isNull() and isValid().

QDate.__init__ (self, int y, int m, int d)

Constructs a date with year y, month m and day d.

If the specified date is invalid, the date is not set and isValid() returns false. A date before 2 January 4713 B.C. is considered invalid.

Warning: Years 0 to 99 are interpreted as is, i.e., years 0-99.

See also isValid().

QDate.__init__ (self, QDate)

QDate QDate.addDays (self, int days)

Returns a QDate object containing a date ndays later than the date of this object (or earlier if ndays is negative).

See also addMonths(), addYears(), and daysTo().

QDate QDate.addMonths (self, int months)

Returns a QDate object containing a date nmonths later than the date of this object (or earlier if nmonths is negative).

Note: If the ending day/month combination does not exist in the resulting month/year, this function will return a date that is the latest valid date.

Warning: QDate has a date hole around the days introducing the Gregorian calendar (the days 5 to 14 October 1582, inclusive, do not exist). If the calculation ends in one of those days, QDate will return either October 4 or October 15.

See also addDays() and addYears().

QDate QDate.addYears (self, int years)

Returns a QDate object containing a date nyears later than the date of this object (or earlier if nyears is negative).

Note: If the ending day/month combination does not exist in the resulting year (i.e., if the date was Feb 29 and the final year is not a leap year), this function will return a date that is the latest valid date (that is, Feb 28).

See also addDays() and addMonths().

QDate QDate.currentDate ()

Returns the current date, as reported by the system clock.

See also QTime.currentTime() and QDateTime.currentDateTime().

int QDate.day (self)

Returns the day of the month (1 to 31) of this date.

See also year(), month(), and dayOfWeek().

int QDate.dayOfWeek (self)

Returns the weekday (1 = Monday to 7 = Sunday) for this date.

See also day(), dayOfYear(), and Qt.DayOfWeek.

int QDate.dayOfYear (self)

Returns the day of the year (1 to 365 or 366 on leap years) for this date.

See also day() and dayOfWeek().

int QDate.daysInMonth (self)

Returns the number of days in the month (28 to 31) for this date.

See also day() and daysInYear().

int QDate.daysInYear (self)

Returns the number of days in the year (365 or 366) for this date.

See also day() and daysInMonth().

int QDate.daysTo (self, QDate)

Returns the number of days from this date to d (which is negative if d is earlier than this date).

Example:

 QDate d1(1995, 5, 17);  // May 17, 1995
 QDate d2(1995, 5, 20);  // May 20, 1995
 d1.daysTo(d2);          // returns 3
 d2.daysTo(d1);          // returns -3

See also addDays().

QDate QDate.fromJulianDay (int jd)

Converts the Julian day jd to a QDate.

See also toJulianDay().

QDate QDate.fromString (QString string, Qt.DateFormat format = Qt.TextDate)

Returns the QDate represented by the string, using the format given, or an invalid date if the string cannot be parsed.

Note for Qt.TextDate: It is recommended that you use the English short month names (e.g. "Jan"). Although localized month names can also be used, they depend on the user's locale settings.

QDate QDate.fromString (QString s, QString format)

Returns the QDate represented by the string, using the format given, or an invalid date if the string cannot be parsed.

These expressions may be used for the format:

Expression Output
d The day as a number without a leading zero (1 to 31)
dd The day as a number with a leading zero (01 to 31)
ddd The abbreviated localized day name (e.g. 'Mon' to 'Sun'). Uses QDate.shortDayName().
dddd The long localized day name (e.g. 'Monday' to 'Sunday'). Uses QDate.longDayName().
M The month as a number without a leading zero (1 to 12)
MM The month as a number with a leading zero (01 to 12)
MMM The abbreviated localized month name (e.g. 'Jan' to 'Dec'). Uses QDate.shortMonthName().
MMMM The long localized month name (e.g. 'January' to 'December'). Uses QDate.longMonthName().
yy The year as two digit number (00 to 99)
yyyy The year as four digit number. If the year is negative, a minus sign is prepended in addition.

All other input characters will be treated as text. Any sequence of characters that are enclosed in single quotes will also be treated as text and will not be used as an expression. For example:

 QDate date = QDate.fromString("1MM12car2003", "d'MM'MMcaryyyy");
 // date is 1 December 2003

If the format is not satisfied, an invalid QDate is returned. The expressions that don't expect leading zeroes (d, M) will be greedy. This means that they will use two digits even if this will put them outside the accepted range of values and leaves too few digits for other sections. For example, the following format string could have meant January 30 but the M will grab two digits, resulting in an invalid date:

 QDate date = QDate.fromString("130", "Md"); // invalid

For any field that is not represented in the format the following defaults are used:

Field Default value
Year 1900
Month 1
Day 1

The following examples demonstrate the default values:

 QDate.fromString("1.30", "M.d");           // January 30 1900
 QDate.fromString("20000110", "yyyyMMdd");  // January 10, 2000
 QDate.fromString("20000110", "yyyyMd");    // January 10, 2000

See also QDateTime.fromString(), QTime.fromString(), QDate.toString(), QDateTime.toString(), and QTime.toString().

(int year, int month, int day) QDate.getDate (self)

Extracts the date's year, month, and day, and assigns them to *year, *month, and *day. The pointers may be null.

This function was introduced in Qt 4.5.

See also year(), month(), day(), and isValid().

int QDate.gregorianToJulian (int y, int m, int d)

bool QDate.isLeapYear (int year)

Returns true if the specified year is a leap year; otherwise returns false.

bool QDate.isNull (self)

Returns true if the date is null; otherwise returns false. A null date is invalid.

Note: The behavior of this function is equivalent to isValid().

See also isValid().

bool QDate.isValid (self)

Returns true if this date is valid; otherwise returns false.

See also isNull().

bool QDate.isValid (int y, int m, int d)

This is an overloaded function.

Returns true if the specified date (year, month, and day) is valid; otherwise returns false.

Example:

 QDate.isValid(2002, 5, 17);  // true
 QDate.isValid(2002, 2, 30);  // false (Feb 30 does not exist)
 QDate.isValid(2004, 2, 29);  // true (2004 is a leap year)
 QDate.isValid(2000, 2, 29);  // true (2000 is a leap year)
 QDate.isValid(2006, 2, 29);  // false (2006 is not a leap year)
 QDate.isValid(2100, 2, 29);  // false (2100 is not a leap year)
 QDate.isValid(1202, 6, 6);   // true (even though 1202 is pre-Gregorian)

See also isNull() and setDate().

(int y, int m, int d) QDate.julianToGregorian (int jd)

QString QDate.longDayName (int weekday)

Returns the long version of the name of the weekday. The returned name is in normal type which can be used for date formatting.

See also toString(), shortDayName(), shortMonthName(), and longMonthName().

QString QDate.longDayName (int weekday, MonthNameType type)

Returns the long name of the weekday for the representation specified by type.

The days are enumerated using the following convention:

  • 1 = "Monday"
  • 2 = "Tuesday"
  • 3 = "Wednesday"
  • 4 = "Thursday"
  • 5 = "Friday"
  • 6 = "Saturday"
  • 7 = "Sunday"

The day names will be localized according to the system's default locale settings.

This function was introduced in Qt 4.5.

See also toString(), shortDayName(), shortMonthName(), and longMonthName().

QString QDate.longMonthName (int month)

Returns the long version of the name of the month. The returned name is in normal type which can be used for date formatting.

See also toString(), shortMonthName(), shortDayName(), and longDayName().

QString QDate.longMonthName (int month, MonthNameType type)

Returns the long name of the month for the representation specified by type.

The months are enumerated using the following convention:

  • 1 = "January"
  • 2 = "February"
  • 3 = "March"
  • 4 = "April"
  • 5 = "May"
  • 6 = "June"
  • 7 = "July"
  • 8 = "August"
  • 9 = "September"
  • 10 = "October"
  • 11 = "November"
  • 12 = "December"

The month names will be localized according to the system's default locale settings.

This function was introduced in Qt 4.5.

See also toString(), shortMonthName(), shortDayName(), and longDayName().

int QDate.month (self)

Returns the number corresponding to the month of this date, using the following convention:

  • 1 = "January"
  • 2 = "February"
  • 3 = "March"
  • 4 = "April"
  • 5 = "May"
  • 6 = "June"
  • 7 = "July"
  • 8 = "August"
  • 9 = "September"
  • 10 = "October"
  • 11 = "November"
  • 12 = "December"

See also year() and day().

bool QDate.setDate (self, int year, int month, int date)

Sets the date's year, month, and day. Returns true if the date is valid; otherwise returns false.

If the specified date is invalid, the QDate object is set to be invalid. Any date before 2 January 4713 B.C. is considered invalid.

This function was introduced in Qt 4.2.

See also isValid().

bool QDate.setYMD (self, int y, int m, int d)

QString QDate.shortDayName (int weekday)

Returns the short version of the name of the weekday. The returned name is in normal type which can be used for date formatting.

See also toString(), longDayName(), shortMonthName(), and longMonthName().

QString QDate.shortDayName (int weekday, MonthNameType type)

Returns the short name of the weekday for the representation specified by type.

The days are enumerated using the following convention:

  • 1 = "Mon"
  • 2 = "Tue"
  • 3 = "Wed"
  • 4 = "Thu"
  • 5 = "Fri"
  • 6 = "Sat"
  • 7 = "Sun"

The day names will be localized according to the system's default locale settings.

This function was introduced in Qt 4.5.

See also toString(), shortMonthName(), longMonthName(), and longDayName().

QString QDate.shortMonthName (int month)

Returns the short version of the name of the month. The returned name is in normal type which can be used for date formatting.

See also toString(), longMonthName(), shortDayName(), and longDayName().

QString QDate.shortMonthName (int month, MonthNameType type)

Returns the short name of the month for the representation specified by type.

The months are enumerated using the following convention:

  • 1 = "Jan"
  • 2 = "Feb"
  • 3 = "Mar"
  • 4 = "Apr"
  • 5 = "May"
  • 6 = "Jun"
  • 7 = "Jul"
  • 8 = "Aug"
  • 9 = "Sep"
  • 10 = "Oct"
  • 11 = "Nov"
  • 12 = "Dec"

The month names will be localized according to the system's default locale settings.

This function was introduced in Qt 4.5.

See also toString(), longMonthName(), shortDayName(), and longDayName().

int QDate.toJulianDay (self)

Converts the date to a Julian day.

See also fromJulianDay().

datetime.date QDate.toPyDate (self)

QString QDate.toString (self, Qt.DateFormat format = Qt.TextDate)

Returns the date as a string. The format parameter determines the format of the result string.

These expressions may be used:

Expression Output
d the day as number without a leading zero (1 to 31)
dd the day as number with a leading zero (01 to 31)
ddd the abbreviated localized day name (e.g. 'Mon' to 'Sun'). Uses QDate.shortDayName().
dddd the long localized day name (e.g. 'Monday' to 'Sunday'). Uses QDate.longDayName().
M the month as number without a leading zero (1 to 12)
MM the month as number with a leading zero (01 to 12)
MMM the abbreviated localized month name (e.g. 'Jan' to 'Dec'). Uses QDate.shortMonthName().
MMMM the long localized month name (e.g. 'January' to 'December'). Uses QDate.longMonthName().
yy the year as two digit number (00 to 99)
yyyy the year as four digit number. If the year is negative, a minus sign is prepended in addition.

All other input characters will be ignored. Any sequence of characters that are enclosed in singlequotes will be treated as text and not be used as an expression. Two consecutive singlequotes ("''") are replaced by a singlequote in the output.

Example format strings (assuming that the QDate is the 20 July 1969):

Format Result
dd.MM.yyyy 20.07.1969
ddd MMMM d yy Sun July 20 69
'The day is' dddd The day is Sunday

If the datetime is invalid, an empty string will be returned.

Warning: The Qt.ISODate format is only valid for years in the range 0 to 9999. This restriction may apply to locale-aware formats as well, depending on the locale settings.

See also QDateTime.toString() and QTime.toString().

QString QDate.toString (self, QString format)

This is an overloaded function.

Returns the date as a string. The format parameter determines the format of the string.

If the format is Qt.TextDate, the string is formatted in the default way. QDate.shortDayName() and QDate.shortMonthName() are used to generate the string, so the day and month names will be localized names using the default locale from the system. An example of this formatting is "Sat May 20 1995".

If the format is Qt.ISODate, the string format corresponds to the ISO 8601 extended specification for representations of dates and times, taking the form YYYY-MM-DD, where YYYY is the year, MM is the month of the year (between 01 and 12), and DD is the day of the month between 01 and 31.

If the format is Qt.SystemLocaleShortDate or Qt.SystemLocaleLongDate, the string format depends on the locale settings of the system. Identical to calling QLocale.system().toString(date, QLocale.ShortFormat) or QLocale.system().toString(date, QLocale.LongFormat).

If the format is Qt.DefaultLocaleShortDate or Qt.DefaultLocaleLongDate, the string format depends on the default application locale. This is the locale set with QLocale.setDefault(), or the system locale if no default locale has been set. Identical to calling QLocale().toString(date, QLocale.ShortFormat) or QLocale().toString(date, QLocale.LongFormat).

If the date is invalid, an empty string will be returned.

Warning: The Qt.ISODate format is only valid for years in the range 0 to 9999. This restriction may apply to locale-aware formats as well, depending on the locale settings.

See also shortDayName() and shortMonthName().

(int, int yearNumber) QDate.weekNumber (self)

Returns the week number (1 to 53), and stores the year in *yearNumber unless yearNumber is null (the default).

Returns 0 if the date is invalid.

In accordance with ISO 8601, weeks start on Monday and the first Thursday of a year is always in week 1 of that year. Most years have 52 weeks, but some have 53.

*yearNumber is not always the same as year(). For example, 1 January 2000 has week number 52 in the year 1999, and 31 December 2002 has week number 1 in the year 2003.

See also isValid().

int QDate.year (self)

Returns the year of this date. Negative numbers indicate years before 1 A.D. = 1 C.E., such that year -44 is 44 B.C.

See also month() and day().

int QDate.__bool__ (self)

bool QDate.__eq__ (self, QDate other)

bool QDate.__ge__ (self, QDate other)

bool QDate.__gt__ (self, QDate other)

int QDate.__hash__ (self)

bool QDate.__le__ (self, QDate other)

bool QDate.__lt__ (self, QDate other)

bool QDate.__ne__ (self, QDate other)

str QDate.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdateedit.html0000644000076500000240000001070112536324502020310 0ustar philstaff00000000000000 QDateEdit Class Reference
  Home · All Classes · Modules

QDateEdit Class Reference
[
QtGui module]

The QDateEdit class provides a widget for editing dates based on the QDateTimeEdit widget. More...

Inherits QDateTimeEdit.

Methods

  • __init__ (self, QWidget parent = None)
  • __init__ (self, QDate date, QWidget parent = None)

Detailed Description

The QDateEdit class provides a widget for editing dates based on the QDateTimeEdit widget.

Many of the properties and functions provided by QDateEdit are implemented in QDateTimeEdit. The following properties are most relevant to users of this class:

  • date holds the date displayed by the widget.
  • minimumDate defines the minimum (earliest) date that can be set by the user.
  • maximumDate defines the maximum (latest) date that can be set by the user.
  • displayFormat contains a string that is used to format the date displayed in the widget.
Screenshot of a Windows XP style date editing widget A date editing widget shown in the Windows XP widget style.
Screenshot of a Macintosh style date editing widget A date editing widget shown in the Macintosh widget style.
Screenshot of a Plastique style date editing widget A date editing widget shown in the Plastique widget style.

Method Documentation

QDateEdit.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty date editor with a parent.

QDateEdit.__init__ (self, QDate date, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty date editor with a parent. The date is set to date.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdatetime.html0000644000076500000240000013633412536324472020342 0ustar philstaff00000000000000 QDateTime Class Reference
  Home · All Classes · Modules

QDateTime Class Reference
[QtCore module]

The QDateTime class provides date and time functions. More...

Methods

Static Methods

Special Methods


Detailed Description

This class can be pickled.

A Python datetime object may be used whenever a QDateTime is expected.

The QDateTime class provides date and time functions.

A QDateTime object contains a calendar date and a clock time (a "datetime"). It is a combination of the QDate and QTime classes. It can read the current datetime from the system clock. It provides functions for comparing datetimes and for manipulating a datetime by adding a number of seconds, days, months, or years.

A QDateTime object is typically created either by giving a date and time explicitly in the constructor, or by using the static function currentDateTime() that returns a QDateTime object set to the system clock's time. The date and time can be changed with setDate() and setTime(). A datetime can also be set using the setTime_t() function that takes a POSIX-standard "number of seconds since 00:00:00 on January 1, 1970" value. The fromString() function returns a QDateTime, given a string and a date format used to interpret the date within the string.

The date() and time() functions provide access to the date and time parts of the datetime. The same information is provided in textual format by the toString() function.

QDateTime provides a full set of operators to compare two QDateTime objects where smaller means earlier and larger means later.

You can increment (or decrement) a datetime by a given number of milliseconds using addMSecs(), seconds using addSecs(), or days using addDays(). Similarly you can use addMonths() and addYears(). The daysTo() function returns the number of days between two datetimes, secsTo() returns the number of seconds between two datetimes, and msecsTo() returns the number of milliseconds between two datetimes.

QDateTime can store datetimes as local time or as UTC. QDateTime.currentDateTime() returns a QDateTime expressed as local time; use toUTC() to convert it to UTC. You can also use timeSpec() to find out if a QDateTime object stores a UTC time or a local time. Operations such as addSecs() and secsTo() are aware of daylight saving time (DST).

Note: QDateTime does not account for leap seconds.

Use of Gregorian and Julian Calendars

QDate uses the Gregorian calendar in all locales, beginning on the date 15 October 1582. For dates up to and including 4 October 1582, the Julian calendar is used. This means there is a 10-day gap in the internal calendar between the 4th and the 15th of October 1582. When you use QDateTime for dates in that epoch, the day after 4 October 1582 is 15 October 1582, and the dates in the gap are invalid.

The Julian to Gregorian changeover date used here is the date when the Gregorian calendar was first introduced, by Pope Gregory XIII. That change was not universally accepted and some localities only executed it at a later date (if at all). QDateTime doesn't take any of these historical facts into account. If an application must support a locale-specific dating system, it must do so on its own, remembering to convert the dates using the Julian day.

No Year 0

There is no year 0. Dates in that year are considered invalid. The year -1 is the year "1 before Christ" or "1 before current era." The day before 0001-01-01 is December 31st, 1 BCE.

Range of Valid Dates

The range of valid dates is from January 2nd, 4713 BCE, to sometime in the year 11 million CE. The Julian Day returned by QDate.toJulianDay() is a number in the contiguous range from 1 to overflow, even across QDateTime's "date holes". It is suitable for use in applications that must convert a QDateTime to a date in another calendar system, e.g., Hebrew, Islamic or Chinese.

The Gregorian calendar was introduced in different places around the world on different dates. QDateTime uses QDate to store the date, so it uses the Gregorian calendar for all locales, beginning on the date 15 October 1582. For dates up to and including 4 October 1582, QDateTime uses the Julian calendar. This means there is a 10-day gap in the QDateTime calendar between the 4th and the 15th of October 1582. When you use QDateTime for dates in that epoch, the day after 4 October 1582 is 15 October 1582, and the dates in the gap are invalid.

Use of System Timezone

QDateTime uses the system's time zone information to determine the offset of local time from UTC. If the system is not configured correctly or not up-to-date, QDateTime will give wrong results as well.

Daylight Savings Time (DST)

QDateTime takes into account the system's time zone information when dealing with DST. On modern Unix systems, this means it applies the correct historical DST data whenever possible. On Windows and Windows CE, where the system doesn't support historical DST data, historical accuracy is not maintained with respect to DST.

The range of valid dates taking DST into account is 1970-01-01 to the present, and rules are in place for handling DST correctly until 2037-12-31, but these could change. For dates falling outside that range, QDateTime makes a best guess using the rules for year 1970 or 2037, but we can't guarantee accuracy. This means QDateTime doesn't take into account changes in a locale's time zone before 1970, even if the system's time zone database supports that information.


Method Documentation

QDateTime.__init__ (self)

Constructs a null datetime (i.e. null date and null time). A null datetime is invalid, since the date is invalid.

See also isValid().

QDateTime.__init__ (self, QDateTime other)

Constructs a datetime with the given date, a valid time(00:00:00.000), and sets the timeSpec() to Qt.LocalTime.

QDateTime.__init__ (self, QDate)

Constructs a datetime with the given date and time, using the time specification defined by spec.

If date is valid and time is not, the time will be set to midnight.

QDateTime.__init__ (self, QDate date, QTime time, Qt.TimeSpec timeSpec = Qt.LocalTime)

Constructs a copy of the other datetime.

QDateTime.__init__ (self, int y, int m, int d, int h, int m, int s = 0, int msec = 0, int timeSpec = 0)

QDateTime QDateTime.addDays (self, int days)

Returns a QDateTime object containing a datetime ndays days later than the datetime of this object (or earlier if ndays is negative).

See also daysTo(), addMonths(), addYears(), and addSecs().

QDateTime QDateTime.addMonths (self, int months)

Returns a QDateTime object containing a datetime nmonths months later than the datetime of this object (or earlier if nmonths is negative).

See also daysTo(), addDays(), addYears(), and addSecs().

QDateTime QDateTime.addMSecs (self, int msecs)

Returns a QDateTime object containing a datetime msecs miliseconds later than the datetime of this object (or earlier if msecs is negative).

See also addSecs(), msecsTo(), addDays(), addMonths(), and addYears().

QDateTime QDateTime.addSecs (self, int secs)

Returns a QDateTime object containing a datetime s seconds later than the datetime of this object (or earlier if s is negative).

See also addMSecs(), secsTo(), addDays(), addMonths(), and addYears().

QDateTime QDateTime.addYears (self, int years)

Returns a QDateTime object containing a datetime nyears years later than the datetime of this object (or earlier if nyears is negative).

See also daysTo(), addDays(), addMonths(), and addSecs().

QDateTime QDateTime.currentDateTime ()

Returns the current datetime, as reported by the system clock, in the local time zone.

See also currentDateTimeUtc(), QDate.currentDate(), QTime.currentTime(), and toTimeSpec().

QDateTime QDateTime.currentDateTimeUtc ()

Returns the current datetime, as reported by the system clock, in UTC.

This function was introduced in Qt 4.7.

See also currentDateTime(), QDate.currentDate(), QTime.currentTime(), and toTimeSpec().

int QDateTime.currentMSecsSinceEpoch ()

Returns the number of milliseconds since 1970-01-01T00:00:00 Universal Coordinated Time. This number is like the POSIX time_t variable, but expressed in milliseconds instead.

This function was introduced in Qt 4.7.

See also currentDateTime(), currentDateTimeUtc(), toTime_t(), and toTimeSpec().

QDate QDateTime.date (self)

Returns the date part of the datetime.

See also setDate(), time(), and timeSpec().

int QDateTime.daysTo (self, QDateTime)

Returns the number of days from this datetime to the other datetime. If the other datetime is earlier than this datetime, the value returned is negative.

See also addDays(), secsTo(), and msecsTo().

QDateTime QDateTime.fromMSecsSinceEpoch (int msecs)

Returns a datetime whose date and time are the number of milliseconds, msecs, that have passed since 1970-01-01T00:00:00.000, Coordinated Universal Time (Qt.UTC). On systems that do not support time zones, the time will be set as if local time were Qt.UTC.

Note that there are possible values for msecs that lie outside the valid range of QDateTime, both negative and positive. The behavior of this function is undefined for those values.

This function was introduced in Qt 4.7.

See also toTime_t() and setTime_t().

QDateTime QDateTime.fromString (QString string, Qt.DateFormat format = Qt.TextDate)

Returns the QDateTime represented by the string, using the format given, or an invalid datetime if this is not possible.

Note for Qt.TextDate: It is recommended that you use the English short month names (e.g. "Jan"). Although localized month names can also be used, they depend on the user's locale settings.

QDateTime QDateTime.fromString (QString s, QString format)

Returns the QDateTime represented by the string, using the format given, or an invalid datetime if the string cannot be parsed.

These expressions may be used for the date part of the format string:

Expression Output
d the day as number without a leading zero (1 to 31)
dd the day as number with a leading zero (01 to 31)
ddd the abbreviated localized day name (e.g. 'Mon' to 'Sun'). Uses QDate.shortDayName().
dddd the long localized day name (e.g. 'Monday' to 'Sunday'). Uses QDate.longDayName().
M the month as number without a leading zero (1-12)
MM the month as number with a leading zero (01-12)
MMM the abbreviated localized month name (e.g. 'Jan' to 'Dec'). Uses QDate.shortMonthName().
MMMM the long localized month name (e.g. 'January' to 'December'). Uses QDate.longMonthName().
yy the year as two digit number (00-99)
yyyy the year as four digit number

Note: Unlike the other version of this function, day and month names must be given in the user's local language. It is only possible to use the English names if the user's language is English.

These expressions may be used for the time part of the format string:

Expression Output
h the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)
hh the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)
H the hour without a leading zero (0 to 23, even with AM/PM display)
HH the hour with a leading zero (00 to 23, even with AM/PM display)
m the minute without a leading zero (0 to 59)
mm the minute with a leading zero (00 to 59)
s the second without a leading zero (0 to 59)
ss the second with a leading zero (00 to 59)
z the milliseconds without leading zeroes (0 to 999)
zzz the milliseconds with leading zeroes (000 to 999)
AP or A interpret as an AM/PM time. AP must be either "AM" or "PM".
ap or a Interpret as an AM/PM time. ap must be either "am" or "pm".

All other input characters will be treated as text. Any sequence of characters that are enclosed in singlequotes will also be treated as text and not be used as an expression.

 QTime time1 = QTime.fromString("131", "HHh");
 // time1 is 13:00:00
 QTime time1 = QTime.fromString("1apA", "1amAM");
 // time1 is 01:00:00

 QDateTime dateTime2 = QDateTime.fromString("M1d1y9800:01:02",
                                             "'M'M'd'd'y'yyhh:mm:ss");
 // dateTime is 1 January 1998 00:01:02

If the format is not satisfied an invalid QDateTime is returned. The expressions that don't have leading zeroes (d, M, h, m, s, z) will be greedy. This means that they will use two digits even if this will put them outside the range and/or leave too few digits for other sections.

 QDateTime dateTime = QDateTime.fromString("130", "Mm"); // invalid

This could have meant 1 January 00:30.00 but the M will grab two digits.

For any field that is not represented in the format the following defaults are used:

Field Default value
Year 1900
Month 1 (January)
Day 1
Hour 0
Minute 0
Second 0

For example:

 QDateTime dateTime = QDateTime.fromString("1.30.1", "M.d.s");
 // dateTime is January 30 in 1900 at 00:00:01.

QDateTime.toString() QTime.toString()

See also QDate.fromString(), QTime.fromString(), and QDate.toString().

QDateTime QDateTime.fromTime_t (int secsSince1Jan1970UTC)

Returns a datetime whose date and time are the number of seconds that have passed since 1970-01-01T00:00:00, Coordinated Universal Time (Qt.UTC). On systems that do not support time zones, the time will be set as if local time were Qt.UTC.

This function was introduced in Qt 4.2.

See also toTime_t() and setTime_t().

bool QDateTime.isNull (self)

Returns true if both the date and the time are null; otherwise returns false. A null datetime is invalid.

See also QDate.isNull(), QTime.isNull(), and isValid().

bool QDateTime.isValid (self)

Returns true if both the date and the time are valid; otherwise returns false.

See also QDate.isValid() and QTime.isValid().

int QDateTime.msecsTo (self, QDateTime)

Returns the number of milliseconds from this datetime to the other datetime. If the other datetime is earlier than this datetime, the value returned is negative.

Before performing the comparison, the two datetimes are converted to Qt.UTC to ensure that the result is correct if one of the two datetimes has daylight saving time (DST) and the other doesn't.

This function was introduced in Qt 4.7.

See also addMSecs(), daysTo(), and QTime.msecsTo().

int QDateTime.secsTo (self, QDateTime)

Returns the number of seconds from this datetime to the other datetime. If the other datetime is earlier than this datetime, the value returned is negative.

Before performing the comparison, the two datetimes are converted to Qt.UTC to ensure that the result is correct if one of the two datetimes has daylight saving time (DST) and the other doesn't.

Example:

 QDateTime now = QDateTime.currentDateTime();
 QDateTime xmas(QDate(now.date().year(), 12, 25), QTime(0, 0));
 qDebug("There are %d seconds to Christmas", now.secsTo(xmas));

See also addSecs(), daysTo(), and QTime.secsTo().

QDateTime.setDate (self, QDate date)

Sets the date part of this datetime to date. If no time is set, it is set to midnight.

See also date(), setTime(), and setTimeSpec().

QDateTime.setMSecsSinceEpoch (self, int msecs)

Sets the date and time given the number of milliseconds,msecs, that have passed since 1970-01-01T00:00:00.000, Coordinated Universal Time (Qt.UTC). On systems that do not support time zones this function will behave as if local time were Qt.UTC.

Note that there are possible values for msecs that lie outside the valid range of QDateTime, both negative and positive. The behavior of this function is undefined for those values.

This function was introduced in Qt 4.7.

See also toMSecsSinceEpoch() and setTime_t().

QDateTime.setTime (self, QTime time)

Sets the time part of this datetime to time.

See also time(), setDate(), and setTimeSpec().

QDateTime.setTime_t (self, int secsSince1Jan1970UTC)

Sets the date and time given the number of seconds that have passed since 1970-01-01T00:00:00, Coordinated Universal Time (Qt.UTC). On systems that do not support time zones this function will behave as if local time were Qt.UTC.

See also toTime_t().

QDateTime.setTimeSpec (self, Qt.TimeSpec spec)

Sets the time specification used in this datetime to spec.

See also timeSpec(), setDate(), setTime(), and Qt.TimeSpec.

QTime QDateTime.time (self)

Returns the time part of the datetime.

See also setTime(), date(), and timeSpec().

Qt.TimeSpec QDateTime.timeSpec (self)

Returns the time specification of the datetime.

See also setTimeSpec(), date(), time(), and Qt.TimeSpec.

QDateTime QDateTime.toLocalTime (self)

Returns a datetime containing the date and time information in this datetime, but specified using the Qt.LocalTime definition.

See also toTimeSpec().

int QDateTime.toMSecsSinceEpoch (self)

Returns the datetime as the number of milliseconds that have passed since 1970-01-01T00:00:00.000, Coordinated Universal Time (Qt.UTC).

On systems that do not support time zones, this function will behave as if local time were Qt.UTC.

The behavior for this function is undefined if the datetime stored in this object is not valid. However, for all valid dates, this function returns a unique value.

This function was introduced in Qt 4.7.

See also toTime_t() and setMSecsSinceEpoch().

datetime.datetime QDateTime.toPyDateTime (self)

QString QDateTime.toString (self, Qt.DateFormat format = Qt.TextDate)

Returns the datetime as a string. The format parameter determines the format of the result string.

These expressions may be used for the date:

Expression Output
d the day as number without a leading zero (1 to 31)
dd the day as number with a leading zero (01 to 31)
ddd the abbreviated localized day name (e.g. 'Mon' to 'Sun'). Uses QDate.shortDayName().
dddd the long localized day name (e.g. 'Monday' to 'Qt.Sunday'). Uses QDate.longDayName().
M the month as number without a leading zero (1-12)
MM the month as number with a leading zero (01-12)
MMM the abbreviated localized month name (e.g. 'Jan' to 'Dec'). Uses QDate.shortMonthName().
MMMM the long localized month name (e.g. 'January' to 'December'). Uses QDate.longMonthName().
yy the year as two digit number (00-99)
yyyy the year as four digit number

These expressions may be used for the time:

Expression Output
h the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)
hh the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)
m the minute without a leading zero (0 to 59)
mm the minute with a leading zero (00 to 59)
s the second without a leading zero (0 to 59)
ss the second with a leading zero (00 to 59)
z the milliseconds without leading zeroes (0 to 999)
zzz the milliseconds with leading zeroes (000 to 999)
AP use AM/PM display. AP will be replaced by either "AM" or "PM".
ap use am/pm display. ap will be replaced by either "am" or "pm".

All other input characters will be ignored. Any sequence of characters that are enclosed in singlequotes will be treated as text and not be used as an expression. Two consecutive singlequotes ("''") are replaced by a singlequote in the output.

Example format strings (assumed that the QDateTime is 21 May 2001 14:13:09):

Format Result
dd.MM.yyyy 21.05.2001
ddd MMMM d yy Tue May 21 01
hh:mm:ss.zzz 14:13:09.042
h:m:s ap 2:13:9 pm

If the datetime is invalid, an empty string will be returned.

See also QDate.toString() and QTime.toString().

QString QDateTime.toString (self, QString format)

This is an overloaded function.

Returns the datetime as a string in the format given.

If the format is Qt.TextDate, the string is formatted in the default way. QDate.shortDayName(), QDate.shortMonthName(), and QTime.toString() are used to generate the string, so the day and month names will be localized names. An example of this formatting is "Wed May 20 03:40:13 1998".

If the format is Qt.ISODate, the string format corresponds to the ISO 8601 extended specification for representations of dates and times, taking the form YYYY-MM-DDTHH:mm:ss[Z|[+|-]HH:mm], depending on the timeSpec() of the QDateTime. If the timeSpec() is Qt.UTC, Z will be appended to the string; if the timeSpec() is Qt.OffsetFromUTC the offset in hours and minutes from UTC will be appended to the string.

If the format is Qt.SystemLocaleShortDate or Qt.SystemLocaleLongDate, the string format depends on the locale settings of the system. Identical to calling QLocale.system().toString(datetime, QLocale.ShortFormat) or QLocale.system().toString(datetime, QLocale.LongFormat).

If the format is Qt.DefaultLocaleShortDate or Qt.DefaultLocaleLongDate, the string format depends on the default application locale. This is the locale set with QLocale.setDefault(), or the system locale if no default locale has been set. Identical to calling QLocale().toString(datetime, QLocale.ShortFormat) or QLocale().toString(datetime, QLocale.LongFormat).

If the datetime is invalid, an empty string will be returned.

Warning: The Qt.ISODate format is only valid for years in the range 0 to 9999. This restriction may apply to locale-aware formats as well, depending on the locale settings.

See also QDate.toString(), QTime.toString(), and Qt.DateFormat.

int QDateTime.toTime_t (self)

Returns the datetime as the number of seconds that have passed since 1970-01-01T00:00:00, Coordinated Universal Time (Qt.UTC).

On systems that do not support time zones, this function will behave as if local time were Qt.UTC.

Note: This function returns a 32-bit unsigned integer, so it does not support dates before 1970, but it does support dates after 2038-01-19T03:14:06, which may not be valid time_t values. Be careful when passing those time_t values to system functions, which could interpret them as negative dates.

If the date is outside the range 1970-01-01T00:00:00 to 2106-02-07T06:28:14, this function returns -1 cast to an unsigned integer (i.e., 0xFFFFFFFF).

To get an extended range, use toMSecsSinceEpoch().

See also toMSecsSinceEpoch() and setTime_t().

QDateTime QDateTime.toTimeSpec (self, Qt.TimeSpec spec)

Returns a copy of this datetime configured to use the given time specification.

See also timeSpec(), toUTC(), and toLocalTime().

QDateTime QDateTime.toUTC (self)

Returns a datetime containing the date and time information in this datetime, but specified using the Qt.UTC definition.

See also toTimeSpec().

int QDateTime.__bool__ (self)

bool QDateTime.__eq__ (self, QDateTime other)

bool QDateTime.__ge__ (self, QDateTime other)

bool QDateTime.__gt__ (self, QDateTime other)

int QDateTime.__hash__ (self)

bool QDateTime.__le__ (self, QDateTime other)

bool QDateTime.__lt__ (self, QDateTime other)

bool QDateTime.__ne__ (self, QDateTime other)

str QDateTime.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdatetimeedit-sections.html0000644000076500000240000001366012536324502023023 0ustar philstaff00000000000000 QDateTimeEdit.Sections Class Reference
  Home · All Classes · Modules

QDateTimeEdit.Sections Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description

Section may be used whenever Sections is expected.


Method Documentation

Sections.__init__ (self, Sections)

Sections.__init__ (self, int)

Sections.__init__ (self)

Sections Sections.__and__ (self, int mask)

int Sections.__bool__ (self)

bool Sections.__eq__ (self, Sections f)

Sections Sections.__iand__ (self, int mask)

int Sections.__int__ (self)

Sections Sections.__invert__ (self)

Sections Sections.__ior__ (self, Sections f)

Sections Sections.__ixor__ (self, Sections f)

bool Sections.__ne__ (self, Sections f)

Sections Sections.__or__ (self, Sections f)

Sections Sections.__or__ (self, int f)

Sections Sections.__xor__ (self, Sections f)

Sections Sections.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdatetimeedit.html0000644000076500000240000010427412536324502021200 0ustar philstaff00000000000000 QDateTimeEdit Class Reference
  Home · All Classes · Modules

QDateTimeEdit Class Reference
[QtGui module]

The QDateTimeEdit class provides a widget for editing dates and times. More...

Inherits QAbstractSpinBox.

Inherited by QDateEdit and QTimeEdit.

Types

  • enum Section { NoSection, AmPmSection, MSecSection, SecondSection, ..., DateSections_Mask }
  • class Sections

Methods

Qt Signals


Detailed Description

The QDateTimeEdit class provides a widget for editing dates and times.

QDateTimeEdit allows the user to edit dates by using the keyboard or the arrow keys to increase and decrease date and time values. The arrow keys can be used to move from section to section within the QDateTimeEdit box. Dates and times appear in accordance with the format set; see setDisplayFormat().

 QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate.currentDate());
 dateEdit->setMinimumDate(QDate.currentDate().addDays(-365));
 dateEdit->setMaximumDate(QDate.currentDate().addDays(365));
 dateEdit->setDisplayFormat("yyyy.MM.dd");

Here we've created a new QDateTimeEdit object initialized with today's date, and restricted the valid date range to today plus or minus 365 days. We've set the order to month, day, year.

The minimum value for QDateTimeEdit is 14 September 1752, and 2 January 4713BC for QDate. You can change this by calling setMinimumDate(), setMaximumDate(), setMinimumTime(), and setMaximumTime().

Using a Pop-up Calendar Widget

QDateTimeEdit can be configured to allow a QCalendarWidget to be used to select dates. This is enabled by setting the calendarPopup property. Additionally, you can supply a custom calendar widget for use as the calendar pop-up by calling the setCalendarWidget() function. The existing calendar widget can be retrieved with calendarWidget().

Screenshot of a Windows XP style date time editing widget A date time editing widget shown in the Windows XP widget style.
Screenshot of a Macintosh style date time editing widget A date time editing widget shown in the Macintosh widget style.
Screenshot of a Plastique style date time editing widget A date time editing widget shown in the Plastique widget style.

Type Documentation

QDateTimeEdit.Section

Constant Value
QDateTimeEdit.NoSection 0x0000
QDateTimeEdit.AmPmSection 0x0001
QDateTimeEdit.MSecSection 0x0002
QDateTimeEdit.SecondSection 0x0004
QDateTimeEdit.MinuteSection 0x0008
QDateTimeEdit.HourSection 0x0010
QDateTimeEdit.DaySection 0x0100
QDateTimeEdit.MonthSection 0x0200
QDateTimeEdit.YearSection 0x0400

The Sections type is a typedef for QFlags<Section>. It stores an OR combination of Section values.


Method Documentation

QDateTimeEdit.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty date time editor with a parent.

QDateTimeEdit.__init__ (self, QDateTime datetime, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty date time editor with a parent. The value is set to datetime.

QDateTimeEdit.__init__ (self, QDate date, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty date time editor with a parent. The value is set to date.

QDateTimeEdit.__init__ (self, QTime time, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty date time editor with a parent. The value is set to time.

bool QDateTimeEdit.calendarPopup (self)

QCalendarWidget QDateTimeEdit.calendarWidget (self)

Returns the calendar widget for the editor if calendarPopup is set to true and (sections() & DateSections_Mask) != 0.

This function creates and returns a calendar widget if none has been set.

This function was introduced in Qt 4.4.

See also setCalendarWidget().

QDateTimeEdit.clear (self)

Reimplemented from QAbstractSpinBox.clear().

QDateTimeEdit.clearMaximumDate (self)

QDateTimeEdit.clearMaximumDateTime (self)

QDateTimeEdit.clearMaximumTime (self)

QDateTimeEdit.clearMinimumDate (self)

QDateTimeEdit.clearMinimumDateTime (self)

QDateTimeEdit.clearMinimumTime (self)

Section QDateTimeEdit.currentSection (self)

int QDateTimeEdit.currentSectionIndex (self)

QDate QDateTimeEdit.date (self)

QDateTime QDateTimeEdit.dateTime (self)

QDateTime QDateTimeEdit.dateTimeFromText (self, QString text)

Returns an appropriate datetime for the given text.

This virtual function is used by the datetime edit whenever it needs to interpret text entered by the user as a value.

See also textFromDateTime() and validate().

Sections QDateTimeEdit.displayedSections (self)

QString QDateTimeEdit.displayFormat (self)

bool QDateTimeEdit.event (self, QEvent e)

Reimplemented from QObject.event().

QString input QDateTimeEdit.fixup (self, QString input)

Reimplemented from QAbstractSpinBox.fixup().

QDateTimeEdit.fixup (self, QString input)

QDateTimeEdit.focusInEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusInEvent().

bool QDateTimeEdit.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QDateTimeEdit.initStyleOption (self, QStyleOptionSpinBox option)

Initialize option with the values from this QDataTimeEdit. This method is useful for subclasses when they need a QStyleOptionSpinBox, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QDateTimeEdit.keyPressEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyPressEvent().

QDate QDateTimeEdit.maximumDate (self)

QDateTime QDateTimeEdit.maximumDateTime (self)

QTime QDateTimeEdit.maximumTime (self)

QDate QDateTimeEdit.minimumDate (self)

QDateTime QDateTimeEdit.minimumDateTime (self)

QTime QDateTimeEdit.minimumTime (self)

QDateTimeEdit.mousePressEvent (self, QMouseEvent event)

Reimplemented from QWidget.mousePressEvent().

QDateTimeEdit.paintEvent (self, QPaintEvent event)

Reimplemented from QWidget.paintEvent().

Section QDateTimeEdit.sectionAt (self, int index)

Returns the Section at index.

If the format is 'yyyy/MM/dd', sectionAt(0) returns YearSection, sectionAt(1) returns MonthSection, and sectionAt(2) returns YearSection,

This function was introduced in Qt 4.3.

int QDateTimeEdit.sectionCount (self)

QString QDateTimeEdit.sectionText (self, Section s)

Returns the text from the given section.

See also currentSection().

QDateTimeEdit.setCalendarPopup (self, bool enable)

QDateTimeEdit.setCalendarWidget (self, QCalendarWidget calendarWidget)

The calendarWidget argument has it's ownership transferred to Qt.

Sets the given calendarWidget as the widget to be used for the calendar pop-up. The editor does not automatically take ownership of the calendar widget.

Note: calendarPopup must be set to true before setting the calendar widget.

This function was introduced in Qt 4.4.

See also calendarWidget() and calendarPopup.

QDateTimeEdit.setCurrentSection (self, Section section)

QDateTimeEdit.setCurrentSectionIndex (self, int index)

QDateTimeEdit.setDate (self, QDate date)

This method is also a Qt slot with the C++ signature void setDate(const QDate&).

QDateTimeEdit.setDateRange (self, QDate min, QDate max)

Convenience function to set minimum and maximum date with one function call.

 setDateRange(min, max);

is analogous to:

 setMinimumDate(min);
 setMaximumDate(max);

If either min or max are not valid, this function does nothing.

See also setMinimumDate(), maximumDate(), setMaximumDate(), clearMinimumDate(), setMinimumTime(), maximumTime(), setMaximumTime(), clearMinimumTime(), and QDate.isValid().

QDateTimeEdit.setDateTime (self, QDateTime dateTime)

This method is also a Qt slot with the C++ signature void setDateTime(const QDateTime&).

QDateTimeEdit.setDateTimeRange (self, QDateTime min, QDateTime max)

Convenience function to set minimum and maximum date time with one function call.

 setDateTimeRange(min, max);

is analogous to:

 setMinimumDateTime(min);
 setMaximumDateTime(max);

If either min or max are not valid, this function does nothing.

This function was introduced in Qt 4.4.

See also setMinimumDate(), maximumDate(), setMaximumDate(), clearMinimumDate(), setMinimumTime(), maximumTime(), setMaximumTime(), clearMinimumTime(), and QDateTime.isValid().

QDateTimeEdit.setDisplayFormat (self, QString format)

QDateTimeEdit.setMaximumDate (self, QDate max)

QDateTimeEdit.setMaximumDateTime (self, QDateTime dt)

QDateTimeEdit.setMaximumTime (self, QTime max)

QDateTimeEdit.setMinimumDate (self, QDate min)

QDateTimeEdit.setMinimumDateTime (self, QDateTime dt)

QDateTimeEdit.setMinimumTime (self, QTime min)

QDateTimeEdit.setSelectedSection (self, Section section)

Selects section. If section doesn't exist in the currently displayed sections this function does nothing. If section is NoSection this function will unselect all text in the editor. Otherwise this function will move the cursor and the current section to the selected section.

This function was introduced in Qt 4.2.

See also currentSection().

QDateTimeEdit.setTime (self, QTime time)

This method is also a Qt slot with the C++ signature void setTime(const QTime&).

QDateTimeEdit.setTimeRange (self, QTime min, QTime max)

Convenience function to set minimum and maximum time with one function call.

 setTimeRange(min, max);

is analogous to:

 setMinimumTime(min);
 setMaximumTime(max);

If either min or max are not valid, this function does nothing.

See also setMinimumDate(), maximumDate(), setMaximumDate(), clearMinimumDate(), setMinimumTime(), maximumTime(), setMaximumTime(), clearMinimumTime(), and QTime.isValid().

QDateTimeEdit.setTimeSpec (self, Qt.TimeSpec spec)

QSize QDateTimeEdit.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QDateTimeEdit.stepBy (self, int steps)

Reimplemented from QAbstractSpinBox.stepBy().

QAbstractSpinBox.StepEnabled QDateTimeEdit.stepEnabled (self)

Reimplemented from QAbstractSpinBox.stepEnabled().

QString QDateTimeEdit.textFromDateTime (self, QDateTime dt)

This virtual function is used by the date time edit whenever it needs to display dateTime.

If you reimplement this, you may also need to reimplement validate().

See also dateTimeFromText() and validate().

QTime QDateTimeEdit.time (self)

Qt.TimeSpec QDateTimeEdit.timeSpec (self)

(QValidator.State, QString input, int pos) QDateTimeEdit.validate (self, QString input, int pos)

Reimplemented from QAbstractSpinBox.validate().

(QValidator.State, int pos) QDateTimeEdit.validate (self, QString input, int pos)

QDateTimeEdit.wheelEvent (self, QWheelEvent e)

Reimplemented from QWidget.wheelEvent().


Qt Signal Documentation

void dateChanged (const QDate&)

This is the default overload of this signal.

This signal is emitted whenever the date is changed. The new date is passed in date.

void dateTimeChanged (const QDateTime&)

This is the default overload of this signal.

This signal is emitted whenever the date or time is changed. The new date and time is passed in datetime.

void timeChanged (const QTime&)

This is the default overload of this signal.

This signal is emitted whenever the time is changed. The new time is passed in time.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbus.html0000644000076500000240000000666312536324476017510 0ustar philstaff00000000000000 QDBus Class Reference
  Home · All Classes · Modules

QDBus Class Reference
[
QtDBus module]

The QDBus namespace contains miscellaneous identifiers used throughout the QtDBus library. More...

Types

  • enum CallMode { NoBlock, Block, BlockWithGui, AutoDetect }

Detailed Description

The QDBus namespace contains miscellaneous identifiers used throughout the QtDBus library.


Type Documentation

QDBus.CallMode

This enum describes the various ways of placing a function call. The valid modes are:

Constant Value Description
QDBus.NoBlock 0 Place the call but don't wait for the reply (the reply's contents will be discarded).
QDBus.Block 1 Don't use an event loop to wait for a reply, but instead block on network operations while waiting. This means the user-interface may not be updated until the function returns.
QDBus.BlockWithGui 2 Use the Qt event loop to wait for a reply. This means that the user-interface will stay responsive (processing input events), but it also means other events may happen, like signal delivery and other D-Bus method calls.
QDBus.AutoDetect 3 Automatically detect if the called function has a reply.

When using BlockWithGui, applications must be prepared for reentrancy in any function.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusabstractadaptor.html0000644000076500000240000001152512536324476022600 0ustar philstaff00000000000000 QDBusAbstractAdaptor Class Reference
  Home · All Classes · Modules

QDBusAbstractAdaptor Class Reference
[
QtDBus module]

The QDBusAbstractAdaptor class is the base class of D-Bus adaptor classes. More...

Inherits QObject.

Methods


Detailed Description

The QDBusAbstractAdaptor class is the base class of D-Bus adaptor classes.

The QDBusAbstractAdaptor class is the starting point for all objects intending to provide interfaces to the external world using D-Bus. This is accomplished by attaching a one or more classes derived from QDBusAbstractAdaptor to a normal QObject and then registering that QObject with QDBusConnection.registerObject. QDBusAbstractAdaptor objects are intended to be light-weight wrappers, mostly just relaying calls into the real object (its parent) and the signals from it.

Each QDBusAbstractAdaptor-derived class should define the D-Bus interface it is implementing using the Q_CLASSINFO macro in the class definition. Note that only one interface can be exposed in this way.

QDBusAbstractAdaptor uses the standard QObject mechanism of signals, slots and properties to determine what signals, methods and properties to export to the bus. Any signal emitted by QDBusAbstractAdaptor-derived classes will be automatically be relayed through any D-Bus connections the object is registered on.

Classes derived from QDBusAbstractAdaptor must be created on the heap using the new operator and must not be deleted by the user (they will be deleted automatically when the object they are connected to is also deleted).


Method Documentation

QDBusAbstractAdaptor.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QDBusAbstractAdaptor with obj as the parent object.

bool QDBusAbstractAdaptor.autoRelaySignals (self)

Returns true if automatic signal relaying from the real object (see object()) is enabled, otherwiser returns false.

See also setAutoRelaySignals().

QDBusAbstractAdaptor.setAutoRelaySignals (self, bool enable)

Toggles automatic signal relaying from the real object (see object()).

Automatic signal relaying consists of signal-to-signal connection of the signals on the parent that have the exact same method signatue in both classes.

If enable is set to true, connect the signals; if set to false, disconnect all signals.

See also autoRelaySignals().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusabstractinterface.html0000644000076500000240000005462212536324476023113 0ustar philstaff00000000000000 QDBusAbstractInterface Class Reference
  Home · All Classes · Modules

QDBusAbstractInterface Class Reference
[QtDBus module]

The QDBusAbstractInterface class is the base class for all D-Bus interfaces in the QtDBus binding, allowing access to remote interfaces More...

Inherits QObject.

Inherited by QDBusConnectionInterface and QDBusInterface.

Methods

  • __init__ (self, QString service, QString path, str interface, QDBusConnection connection, QObject parent)
  • QDBusPendingCall asyncCall (self, QString method, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant(), QVariant arg4 = QVariant(), QVariant arg5 = QVariant(), QVariant arg6 = QVariant(), QVariant arg7 = QVariant(), QVariant arg8 = QVariant())
  • QDBusPendingCall asyncCallWithArgumentList (self, QString method, list-of-QVariant args)
  • QDBusMessage call (self, QString method, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant(), QVariant arg4 = QVariant(), QVariant arg5 = QVariant(), QVariant arg6 = QVariant(), QVariant arg7 = QVariant(), QVariant arg8 = QVariant())
  • QDBusMessage call (self, QDBus.CallMode mode, QString method, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant(), QVariant arg4 = QVariant(), QVariant arg5 = QVariant(), QVariant arg6 = QVariant(), QVariant arg7 = QVariant(), QVariant arg8 = QVariant())
  • QDBusMessage callWithArgumentList (self, QDBus.CallMode mode, QString method, list-of-QVariant args)
  • bool callWithCallback (self, QString method, list-of-QVariant args, QObject receiver, SLOT() returnMethod, SLOT() errorMethod)
  • object callWithCallback (self, QString method, list-of-QVariant args, callable returnMethod, callable errorMethod)
  • bool callWithCallback (self, QString method, list-of-QVariant args, QObject receiver, SLOT() slot)
  • object callWithCallback (self, QString method, list-of-QVariant args, callable slot)
  • QDBusConnection connection (self)
  • connectNotify (self, SIGNAL() signal)
  • disconnectNotify (self, SIGNAL() signal)
  • QString interface (self)
  • bool isValid (self)
  • QDBusError lastError (self)
  • QString path (self)
  • QString service (self)
  • setTimeout (self, int timeout)
  • int timeout (self)

Detailed Description

The QDBusAbstractInterface class is the base class for all D-Bus interfaces in the QtDBus binding, allowing access to remote interfaces

Generated-code classes also derive from QDBusAbstractInterface, all methods described here are also valid for generated-code classes. In addition to those described here, generated-code classes provide member functions for the remote methods, which allow for compile-time checking of the correct parameters and return values, as well as property type-matching and signal parameter-matching.


Method Documentation

QDBusAbstractInterface.__init__ (self, QString service, QString path, str interface, QDBusConnection connection, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QDBusPendingCall QDBusAbstractInterface.asyncCall (self, QString method, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant(), QVariant arg4 = QVariant(), QVariant arg5 = QVariant(), QVariant arg6 = QVariant(), QVariant arg7 = QVariant(), QVariant arg8 = QVariant())

Calls the method method on this interface and passes the parameters to this function to the method.

The parameters to call are passed on to the remote function via D-Bus as input arguments. The returned QDBusPendingCall object can be used to find out information about the reply.

This function can be used with up to 8 parameters, passed in arguments arg1, arg2, arg3, arg4, arg5, arg6, arg7 and arg8. If you need more than 8 parameters or if you have a variable number of parameters to be passed, use asyncCallWithArgumentList().

It can be used the following way:

 QString value = retrieveValue();
 QDBusPendingCall pcall = interface->asyncCall(QLatin1String("Process"), value);

 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall, this);

 QObject.connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
                  this, SLOT(callFinishedSlot(QDBusPendingCallWatcher*)));

This example illustrates function calling with 0, 1 and 2 parameters and illustrates different parameter types passed in each (the first call to "ProcessWorkUnicode" will contain one Unicode string, the second call to "ProcessWork" will contain one string and one byte array).

This function was introduced in Qt 4.5.

QDBusPendingCall QDBusAbstractInterface.asyncCallWithArgumentList (self, QString method, list-of-QVariant args)

Places a call to the remote method specified by method on this interface, using args as arguments. This function returns a QDBusPendingCall object that can be used to track the status of the reply and access its contents once it has arrived.

Normally, you should place calls using asyncCall().

Note: This function is thread-safe.

This function was introduced in Qt 4.5.

QDBusMessage QDBusAbstractInterface.call (self, QString method, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant(), QVariant arg4 = QVariant(), QVariant arg5 = QVariant(), QVariant arg6 = QVariant(), QVariant arg7 = QVariant(), QVariant arg8 = QVariant())

Calls the method method on this interface and passes the parameters to this function to the method.

The parameters to call are passed on to the remote function via D-Bus as input arguments. Output arguments are returned in the QDBusMessage reply. If the reply is an error reply, lastError() will also be set to the contents of the error message.

This function can be used with up to 8 parameters, passed in arguments arg1, arg2, arg3, arg4, arg5, arg6, arg7 and arg8. If you need more than 8 parameters or if you have a variable number of parameters to be passed, use callWithArgumentList().

It can be used the following way:

 QString value = retrieveValue();
 QDBusMessage reply;

 QDBusReply<int> api = interface->call(QLatin1String("GetAPIVersion"));
 if (api >= 14)
   reply = interface->call(QLatin1String("ProcessWorkUnicode"), value);
 else
   reply = interface->call(QLatin1String("ProcessWork"), QLatin1String("UTF-8"), value.toUtf8());

This example illustrates function calling with 0, 1 and 2 parameters and illustrates different parameter types passed in each (the first call to "ProcessWorkUnicode" will contain one Unicode string, the second call to "ProcessWork" will contain one string and one byte array).

QDBusMessage QDBusAbstractInterface.call (self, QDBus.CallMode mode, QString method, QVariant arg1 = QVariant(), QVariant arg2 = QVariant(), QVariant arg3 = QVariant(), QVariant arg4 = QVariant(), QVariant arg5 = QVariant(), QVariant arg6 = QVariant(), QVariant arg7 = QVariant(), QVariant arg8 = QVariant())

This is an overloaded function.

Calls the method method on this interface and passes the parameters to this function to the method. If mode is NoWaitForReply, then this function will return immediately after placing the call, without waiting for a reply from the remote method. Otherwise, mode indicates whether this function should activate the Qt Event Loop while waiting for the reply to arrive.

This function can be used with up to 8 parameters, passed in arguments arg1, arg2, arg3, arg4, arg5, arg6, arg7 and arg8. If you need more than 8 parameters or if you have a variable number of parameters to be passed, use callWithArgumentList().

If this function reenters the Qt event loop in order to wait for the reply, it will exclude user input. During the wait, it may deliver signals and other method calls to your application. Therefore, it must be prepared to handle a reentrancy whenever a call is placed with call().

QDBusMessage QDBusAbstractInterface.callWithArgumentList (self, QDBus.CallMode mode, QString method, list-of-QVariant args)

Places a call to the remote method specified by method on this interface, using args as arguments. This function returns the message that was received as a reply, which can be a normal QDBusMessage.ReplyMessage (indicating success) or QDBusMessage.ErrorMessage (if the call failed). The mode parameter specifies how this call should be placed.

If the call succeeds, lastError() will be cleared; otherwise, it will contain the error this call produced.

Normally, you should place calls using call().

Warning: If you use UseEventLoop, your code must be prepared to deal with any reentrancy: other method calls and signals may be delivered before this function returns, as well as other Qt queued signals and events.

Note: This function is thread-safe.

bool QDBusAbstractInterface.callWithCallback (self, QString method, list-of-QVariant args, QObject receiver, SLOT() returnMethod, SLOT() errorMethod)

Places a call to the remote method specified by method on this interface, using args as arguments. This function returns immediately after queueing the call. The reply from the remote function is delivered to the returnMethod on object receiver. If an error occurs, the errorMethod on object receiver is called instead.

This function returns true if the queueing succeeds. It does not indicate that the executed call succeeded. If it fails, the errorMethod is called. If the queueing failed, this function returns false and no slot will be called.

The returnMethod must have as its parameters the types returned by the function call. Optionally, it may have a QDBusMessage parameter as its last or only parameter. The errorMethod must have a QDBusError as its only parameter.

This function was introduced in Qt 4.3.

See also QDBusError and QDBusMessage.

object QDBusAbstractInterface.callWithCallback (self, QString method, list-of-QVariant args, callable returnMethod, callable errorMethod)

This is an overloaded function.

This function is deprecated. Please use the overloaded version.

Places a call to the remote method specified by method on this interface, using args as arguments. This function returns immediately after queueing the call. The reply from the remote function or any errors emitted by it are delivered to the slot slot on object receiver.

This function returns true if the queueing succeeded: it does not indicate that the call succeeded. If it failed, the slot will be called with an error message. lastError() will not be set under those circumstances.

See also QDBusError and QDBusMessage.

bool QDBusAbstractInterface.callWithCallback (self, QString method, list-of-QVariant args, QObject receiver, SLOT() slot)

object QDBusAbstractInterface.callWithCallback (self, QString method, list-of-QVariant args, callable slot)

QDBusConnection QDBusAbstractInterface.connection (self)

Returns the connection this interface is assocated with.

QDBusAbstractInterface.connectNotify (self, SIGNAL() signal)

QDBusAbstractInterface.disconnectNotify (self, SIGNAL() signal)

QString QDBusAbstractInterface.interface (self)

Returns the name of this interface.

bool QDBusAbstractInterface.isValid (self)

Returns true if this is a valid reference to a remote object. It returns false if there was an error during the creation of this interface (for instance, if the remote application does not exist).

Note: when dealing with remote objects, it is not always possible to determine if it exists when creating a QDBusInterface.

QDBusError QDBusAbstractInterface.lastError (self)

Returns the error the last operation produced, or an invalid error if the last operation did not produce an error.

QString QDBusAbstractInterface.path (self)

QString QDBusAbstractInterface.service (self)

Returns the name of the service this interface is associated with.

QDBusAbstractInterface.setTimeout (self, int timeout)

Sets the timeout in milliseconds for all future DBus calls to timeout. -1 means the default DBus timeout (usually 25 seconds).

This function was introduced in Qt 4.8.

See also timeout().

int QDBusAbstractInterface.timeout (self)

Returns the current value of the timeout in milliseconds. -1 means the default DBus timeout (usually 25 seconds).

This function was introduced in Qt 4.8.

See also setTimeout().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusargument.html0000644000076500000240000003614412536324476021250 0ustar philstaff00000000000000 QDBusArgument Class Reference
  Home · All Classes · Modules

QDBusArgument Class Reference
[QtDBus module]

The QDBusArgument class is used to marshall and demarshall D-Bus arguments. More...

Methods


Detailed Description

In C++ the QDBusArgument class is used to marshall and demarshall DBus collection types, i.e. arrays, structures and maps. In PyQt values are de-marshalled automatically and QDBusArgument is only used to marshall values. In C++ marshalling is done using overloaded left shift operators. In PyQt the single add() function is used.


Method Documentation

QDBusArgument.__init__ (self)

Constructs an empty QDBusArgument argument.

An empty QDBusArgument object does not allow either reading or writing to be performed.

QDBusArgument.__init__ (self, QDBusArgument other)

Constructs a copy of the other QDBusArgument object.

Both objects will therefore contain the same state from this point forward. QDBusArguments are explicitly shared and, therefore, any modification to either copy will affect the other one too.

QDBusArgument.__init__ (self, object arg, int id = QMetaType.Int)

QDBusArgument.add (self, object arg, int id = QMetaType.Int)

QDBusArgument.beginArray (self, int id)

Opens a new D-Bus array suitable for appending elements of meta-type id.

This function is used usually in operator<< streaming operators, as in the following example:

 // append an array of MyElement types
 QDBusArgument &operator<<(QDBusArgument &argument, const MyArray &myarray)
 {
     argument.beginArray( qMetaTypeId<MyElement>() );
     for ( int i = 0; i < myarray.length; ++i )
         argument << myarray.elements[i];
     argument.endArray();
     return argument;
 }

If the type you want to marshall is a QList, QVector or any of the Qt's Container Classes that take one template parameter, you need not declare an operator<< function for it, since QtDBus provides generic templates to do the job of marshalling the data. The same applies for STL's sequence containers, such as std.list, std.vector, etc.

See also endArray(), beginStructure(), and beginMap().

QDBusArgument.beginMap (self, int kid, int vid)

Opens a new D-Bus map suitable for appending elements. Maps are containers that associate one entry (the key) to another (the value), such as Qt's QMap or QHash. The ids of the map's key and value meta types must be passed in kid and vid respectively.

This function is used usually in operator<< streaming operators, as in the following example:

 // append a dictionary that associates ints to MyValue types
 QDBusArgument &operator<<(QDBusArgument &argument, const MyDictionary &mydict)
 {
     argument.beginMap( QVariant.Int, qMetaTypeId<MyValue>() );
     for ( int i = 0; i < mydict.length; ++i ) {
         argument.beginMapEntry();
         argument << mydict.data[i].key << mydict.data[i].value;
         argument.endMapEntry();
     }
     argument.endMap();
     return argument;
 }

If the type you want to marshall is a QMap or QHash, you need not declare an operator<< function for it, since QtDBus provides generic templates to do the job of marshalling the data.

See also endMap(), beginStructure(), beginArray(), and beginMapEntry().

QDBusArgument.beginMapEntry (self)

Opens a D-Bus map entry suitable for appending the key and value entries. This function is only valid when a map has been opened with beginMap().

See beginMap() for an example of usage of this function.

See also endMapEntry() and beginMap().

QDBusArgument.beginStructure (self)

Opens a new D-Bus structure suitable for appending new arguments.

This function is used usually in operator<< streaming operators, as in the following example:

 QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &mystruct)
 {
     argument.beginStructure();
     argument << mystruct.member1 << mystruct.member2 << ... ;
     argument.endStructure();
     return argument;
 }

Structures can contain other structures, so the following code is also valid:

 QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &mystruct)
 {
     argument.beginStructure();
     argument << mystruct.member1 << mystruct.member2;

     argument.beginStructure();
     argument << mystruct.member3.subMember1 << mystruct.member3.subMember2;
     argument.endStructure();

     argument << mystruct.member4;
     argument.endStructure();
     return argument;
 }

See also endStructure(), beginArray(), and beginMap().

QDBusArgument.endArray (self)

Closes a D-Bus array opened with beginArray(). This function must be called same number of times that beginArray() is called.

See also beginArray(), endStructure(), and endMap().

QDBusArgument.endMap (self)

Closes a D-Bus map opened with beginMap(). This function must be called same number of times that beginMap() is called.

See also beginMap(), endStructure(), and endArray().

QDBusArgument.endMapEntry (self)

Closes a D-Bus map entry opened with beginMapEntry(). This function must be called same number of times that beginMapEntry() is called.

See also beginMapEntry().

QDBusArgument.endStructure (self)

Closes a D-Bus structure opened with beginStructure(). This function must be called same number of times that beginStructure() is called.

See also beginStructure(), endArray(), and endMap().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusconnection-connectioncapabilities.html0000644000076500000240000001603512536324476026271 0ustar philstaff00000000000000 QDBusConnection.ConnectionCapabilities Class Reference
  Home · All Classes · Modules

QDBusConnection.ConnectionCapabilities Class Reference
[QtDBus module]

Methods

Special Methods

  • ConnectionCapabilities __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, ConnectionCapabilities f)
  • ConnectionCapabilities __iand__ (self, int mask)
  • int __int__ (self)
  • ConnectionCapabilities __invert__ (self)
  • ConnectionCapabilities __ior__ (self, ConnectionCapabilities f)
  • ConnectionCapabilities __ixor__ (self, ConnectionCapabilities f)
  • bool __ne__ (self, ConnectionCapabilities f)
  • ConnectionCapabilities __or__ (self, ConnectionCapabilities f)
  • ConnectionCapabilities __or__ (self, int f)
  • ConnectionCapabilities __xor__ (self, ConnectionCapabilities f)
  • ConnectionCapabilities __xor__ (self, int f)

Detailed Description


Method Documentation

ConnectionCapabilities.__init__ (self, ConnectionCapabilities)

ConnectionCapabilities.__init__ (self, int)

ConnectionCapabilities.__init__ (self)

ConnectionCapabilities ConnectionCapabilities.__and__ (self, int mask)

int ConnectionCapabilities.__bool__ (self)

bool ConnectionCapabilities.__eq__ (self, ConnectionCapabilities f)

ConnectionCapabilities ConnectionCapabilities.__iand__ (self, int mask)

int ConnectionCapabilities.__int__ (self)

ConnectionCapabilities ConnectionCapabilities.__invert__ (self)

ConnectionCapabilities ConnectionCapabilities.__ior__ (self, ConnectionCapabilities f)

ConnectionCapabilities ConnectionCapabilities.__ixor__ (self, ConnectionCapabilities f)

bool ConnectionCapabilities.__ne__ (self, ConnectionCapabilities f)

ConnectionCapabilities ConnectionCapabilities.__or__ (self, ConnectionCapabilities f)

ConnectionCapabilities ConnectionCapabilities.__or__ (self, int f)

ConnectionCapabilities ConnectionCapabilities.__xor__ (self, ConnectionCapabilities f)

ConnectionCapabilities ConnectionCapabilities.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusconnection-registeroptions.html0000644000076500000240000001466512536324476025027 0ustar philstaff00000000000000 QDBusConnection.RegisterOptions Class Reference
  Home · All Classes · Modules

QDBusConnection.RegisterOptions Class Reference
[QtDBus module]

Methods

Special Methods

  • RegisterOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, RegisterOptions f)
  • RegisterOptions __iand__ (self, int mask)
  • int __int__ (self)
  • RegisterOptions __invert__ (self)
  • RegisterOptions __ior__ (self, RegisterOptions f)
  • RegisterOptions __ixor__ (self, RegisterOptions f)
  • bool __ne__ (self, RegisterOptions f)
  • RegisterOptions __or__ (self, RegisterOptions f)
  • RegisterOptions __or__ (self, int f)
  • RegisterOptions __xor__ (self, RegisterOptions f)
  • RegisterOptions __xor__ (self, int f)

Detailed Description


Method Documentation

RegisterOptions.__init__ (self, RegisterOptions)

RegisterOptions.__init__ (self, int)

RegisterOptions.__init__ (self)

RegisterOptions RegisterOptions.__and__ (self, int mask)

int RegisterOptions.__bool__ (self)

bool RegisterOptions.__eq__ (self, RegisterOptions f)

RegisterOptions RegisterOptions.__iand__ (self, int mask)

int RegisterOptions.__int__ (self)

RegisterOptions RegisterOptions.__invert__ (self)

RegisterOptions RegisterOptions.__ior__ (self, RegisterOptions f)

RegisterOptions RegisterOptions.__ixor__ (self, RegisterOptions f)

bool RegisterOptions.__ne__ (self, RegisterOptions f)

RegisterOptions RegisterOptions.__or__ (self, RegisterOptions f)

RegisterOptions RegisterOptions.__or__ (self, int f)

RegisterOptions RegisterOptions.__xor__ (self, RegisterOptions f)

RegisterOptions RegisterOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusconnection.html0000644000076500000240000012561512536324476021567 0ustar philstaff00000000000000 QDBusConnection Class Reference
  Home · All Classes · Modules

QDBusConnection Class Reference
[QtDBus module]

The QDBusConnection class represents a connection to the D-Bus bus daemon. More...

Types

Methods

  • __init__ (self, QString name)
  • __init__ (self, QDBusConnection other)
  • QDBusPendingCall asyncCall (self, QDBusMessage message, int timeout = -1)
  • QString baseService (self)
  • QDBusMessage call (self, QDBusMessage message, QDBus.CallMode mode = QDBus.Block, int timeout = -1)
  • bool callWithCallback (self, QDBusMessage message, QObject receiver, SLOT() returnMethod, SLOT() errorMethod, int timeout = -1)
  • object callWithCallback (self, QDBusMessage message, callable returnMethod, callable errorMethod, int timeout = -1)
  • bool callWithCallback (self, QDBusMessage message, QObject receiver, SLOT() slot, int timeout = -1)
  • object callWithCallback (self, QDBusMessage message, callable slot, int timeout = -1)
  • bool connect (self, QString service, QString path, QString interface, QString name, QObject receiver, SLOT() slot)
  • object connect (self, QString service, QString path, QString interface, QString name, callable slot)
  • bool connect (self, QString service, QString path, QString interface, QString name, QString signature, QObject receiver, SLOT() slot)
  • object connect (self, QString service, QString path, QString interface, QString name, QString signature, callable slot)
  • bool connect (self, QString service, QString path, QString interface, QString name, QStringList argumentMatch, QString signature, QObject receiver, SLOT() slot)
  • object connect (self, QString service, QString path, QString interface, QString name, QStringList argumentMatch, QString signature, callable slot)
  • ConnectionCapabilities connectionCapabilities (self)
  • bool disconnect (self, QString service, QString path, QString interface, QString name, QObject receiver, SLOT() slot)
  • object disconnect (self, QString service, QString path, QString interface, QString name, callable slot)
  • bool disconnect (self, QString service, QString path, QString interface, QString name, QString signature, QObject receiver, SLOT() slot)
  • object disconnect (self, QString service, QString path, QString interface, QString name, QString signature, callable slot)
  • bool disconnect (self, QString service, QString path, QString interface, QString name, QStringList argumentMatch, QString signature, QObject receiver, SLOT() slot)
  • object disconnect (self, QString service, QString path, QString interface, QString name, QStringList argumentMatch, QString signature, callable slot)
  • QDBusConnectionInterface interface (self)
  • bool isConnected (self)
  • QDBusError lastError (self)
  • QString name (self)
  • QObject objectRegisteredAt (self, QString path)
  • bool registerObject (self, QString path, QObject object, RegisterOptions options = QDBusConnection.ExportAdaptors)
  • bool registerService (self, QString serviceName)
  • bool send (self, QDBusMessage message)
  • unregisterObject (self, QString path, UnregisterMode mode = QDBusConnection.UnregisterNode)
  • bool unregisterService (self, QString serviceName)

Static Methods


Detailed Description

The QDBusConnection class represents a connection to the D-Bus bus daemon.

This class is the initial point in a D-Bus session. Using it, you can get access to remote objects, interfaces; connect remote signals to your object's slots; register objects, etc.

D-Bus connections are created using the connectToBus() function, which opens a connection to the server daemon and does the initial handshaking, associating that connection with a name. Further attempts to connect using the same name will return the same connection.

The connection is then torn down using the disconnectFromBus() function.

Once disconnected, calling connectToBus() will not reestablish a connection, you must create a new QDBusConnection instance.

As a convenience for the two most common connection types, the sessionBus() and systemBus() functions return open connections to the session server daemon and the system server daemon, respectively. Those connections are opened when first used and are closed when the QCoreApplication destructor is run.

D-Bus also supports peer-to-peer connections, without the need for a bus server daemon. Using this facility, two applications can talk to each other and exchange messages. This can be achieved by passing an address to connectToBus() function, which was opened by another D-Bus application using QDBusServer.


Type Documentation

QDBusConnection.BusType

Specifies the type of the bus connection. The valid bus types are:

Constant Value Description
QDBusConnection.SessionBus 0 the session bus, associated with the running desktop session
QDBusConnection.SystemBus 1 the system bus, used to communicate with system-wide processes
QDBusConnection.ActivationBus 2 the activation bus, the "alias" for the bus that started the service

On the Session Bus, one can find other applications by the same user that are sharing the same desktop session (hence the name). On the System Bus, however, processes shared for the whole system are usually found.

QDBusConnection.ConnectionCapability

This enum describes the available capabilities for a D-Bus connection.

Constant Value Description
QDBusConnection.UnixFileDescriptorPassing 0x0001 enables passing of Unix file descriptors to other processes (see QDBusUnixFileDescriptor)

This enum was introduced or modified in Qt 4.8.

The ConnectionCapabilities type is a typedef for QFlags<ConnectionCapability>. It stores an OR combination of ConnectionCapability values.

See also connectionCapabilities().

QDBusConnection.RegisterOption

Specifies the options for registering objects with the connection. The possible values are:

Constant Value Description
QDBusConnection.ExportAdaptors 0x01 export the contents of adaptors found in this object
QDBusConnection.ExportScriptableSlots 0x10 export this object's scriptable slots
QDBusConnection.ExportScriptableSignals 0x20 export this object's scriptable signals
QDBusConnection.ExportScriptableProperties 0x40 export this object's scriptable properties
QDBusConnection.ExportScriptableInvokables 0x80 export this object's scriptable invokables
QDBusConnection.ExportScriptableContents 0xf0 shorthand form for ExportScriptableSlots | ExportScriptableSignals | ExportScriptableProperties
QDBusConnection.ExportNonScriptableSlots 0x100 export this object's non-scriptable slots
QDBusConnection.ExportNonScriptableSignals 0x200 export this object's non-scriptable signals
QDBusConnection.ExportNonScriptableProperties 0x400 export this object's non-scriptable properties
QDBusConnection.ExportNonScriptableInvokables 0x800 export this object's non-scriptable invokables
QDBusConnection.ExportNonScriptableContents 0xf00 shorthand form for ExportNonScriptableSlots | ExportNonScriptableSignals | ExportNonScriptableProperties
QDBusConnection.ExportAllSlots ExportScriptableSlots | ExportNonScriptableSlots export all of this object's slots
QDBusConnection.ExportAllSignals ExportScriptableSignals | ExportNonScriptableSignals export all of this object's signals
QDBusConnection.ExportAllProperties ExportScriptableProperties | ExportNonScriptableProperties export all of this object's properties
QDBusConnection.ExportAllInvokables ExportScriptableInvokables | ExportNonScriptableInvokables export all of this object's invokables
QDBusConnection.ExportAllContents ExportScriptableContents | ExportNonScriptableContents export all of this object's contents
QDBusConnection.ExportChildObjects 0x1000 export this object's child objects

The RegisterOptions type is a typedef for QFlags<RegisterOption>. It stores an OR combination of RegisterOption values.

See also registerObject(), QDBusAbstractAdaptor, and Using adaptors.

QDBusConnection.UnregisterMode

The mode for unregistering an object path:

Constant Value Description
QDBusConnection.UnregisterNode 0 unregister this node only: do not unregister child objects
QDBusConnection.UnregisterTree 1 unregister this node and all its sub-tree

Note, however, if this object was registered with the ExportChildObjects option, UnregisterNode will unregister the child objects too.


Method Documentation

QDBusConnection.__init__ (self, QString name)

Creates a QDBusConnection object attached to the connection with name name.

This does not open the connection. You have to call connectToBus() to open it.

QDBusConnection.__init__ (self, QDBusConnection other)

Creates a copy of the other connection.

QDBusPendingCall QDBusConnection.asyncCall (self, QDBusMessage message, int timeout = -1)

Sends the message over this connection and returns immediately. This function is suitable for method calls only. It returns an object of type QDBusPendingCall which can be used to track the status of the reply.

If no reply is received within timeout milliseconds, an automatic error will be delivered indicating the expiration of the call. The default timeout is -1, which will be replaced with an implementation-defined value that is suitable for inter-process communications (generally, 25 seconds). This timeout is also the upper limit for waiting in QDBusPendingCall.waitForFinished().

See the QDBusInterface.asyncCall() function for a more friendly way of placing calls.

This function was introduced in Qt 4.5.

QString QDBusConnection.baseService (self)

Returns the unique connection name for this connection, if this QDBusConnection object is connected, or an empty QString otherwise.

A Unique Connection Name is a string in the form ":x.xxx" (where x are decimal digits) that is assigned by the D-Bus server daemon upon connection. It uniquely identifies this client in the bus.

This function returns an empty QString for peer-to-peer connections.

QDBusMessage QDBusConnection.call (self, QDBusMessage message, QDBus.CallMode mode = QDBus.Block, int timeout = -1)

Sends the message over this connection and blocks, waiting for a reply, for at most timeout milliseconds. This function is suitable for method calls only. It returns the reply message as its return value, which will be either of type QDBusMessage.ReplyMessage or QDBusMessage.ErrorMessage.

If no reply is received within timeout milliseconds, an automatic error will be delivered indicating the expiration of the call. The default timeout is -1, which will be replaced with an implementation-defined value that is suitable for inter-process communications (generally, 25 seconds).

See the QDBusInterface.call() function for a more friendly way of placing calls.

Warning: If mode is QDBus.BlockWithGui, this function will reenter the Qt event loop in order to wait for the reply. During the wait, it may deliver signals and other method calls to your application. Therefore, it must be prepared to handle a reentrancy whenever a call is placed with call().

bool QDBusConnection.callWithCallback (self, QDBusMessage message, QObject receiver, SLOT() returnMethod, SLOT() errorMethod, int timeout = -1)

Sends the message over this connection and returns immediately. When the reply is received, the method returnMethod is called in the receiver object. If an error occurs, the method errorMethod will be called instead.

If no reply is received within timeout milliseconds, an automatic error will be delivered indicating the expiration of the call. The default timeout is -1, which will be replaced with an implementation-defined value that is suitable for inter-process communications (generally, 25 seconds).

This function is suitable for method calls only. It is guaranteed that the slot will be called exactly once with the reply, as long as the parameter types match and no error occurs.

Returns true if the message was sent, or false if the message could not be sent.

object QDBusConnection.callWithCallback (self, QDBusMessage message, callable returnMethod, callable errorMethod, int timeout = -1)

This function is deprecated.

This is an overloaded function.

Sends the message over this connection and returns immediately. When the reply is received, the method returnMethod is called in the receiver object.

This function is suitable for method calls only. It is guaranteed that the slot will be called exactly once with the reply, as long as the parameter types match and no error occurs.

This function is dangerous because it cannot report errors, including the expiration of the timeout.

Returns true if the message was sent, or false if the message could not be sent.

bool QDBusConnection.callWithCallback (self, QDBusMessage message, QObject receiver, SLOT() slot, int timeout = -1)

object QDBusConnection.callWithCallback (self, QDBusMessage message, callable slot, int timeout = -1)

bool QDBusConnection.connect (self, QString service, QString path, QString interface, QString name, QObject receiver, SLOT() slot)

Connects the signal specified by the service, path, interface and name parameters to the slot slot in object receiver. The arguments service and path can be empty, denoting a connection to any signal of the (interface, name) pair, from any remote application.

Returns true if the connection was successful.

Warning: The signal will only be delivered to the slot if the parameters match. This verification can be done only when the signal is received, not at connection time.

object QDBusConnection.connect (self, QString service, QString path, QString interface, QString name, callable slot)

This is an overloaded function.

Connects the signal to the slot slot in object receiver. Unlike the previous connect() overload, this function allows one to specify the parameter signature to be connected using the signature variable. The function will then verify that this signature can be delivered to the slot specified by slot and return false otherwise.

Returns true if the connection was successful.

Note: This function verifies that the signal signature matches the slot's parameters, but it does not verify that the actual signal exists with the given signature in the remote service.

bool QDBusConnection.connect (self, QString service, QString path, QString interface, QString name, QString signature, QObject receiver, SLOT() slot)

This is an overloaded function.

Connects the signal to the slot slot in object receiver. Unlike the previous connect() overload, this function allows one to specify the parameter signature to be connected using the signature variable. The function will then verify that this signature can be delivered to the slot specified by slot and return false otherwise.

The argumentMatch parameter lists the string parameters to be matched, in sequential order. Note that, to match an empty string, you need to pass a QString that is empty but not null (i.e., QString("")). A null QString skips matching at that position.

Returns true if the connection was successful.

Note: This function verifies that the signal signature matches the slot's parameters, but it does not verify that the actual signal exists with the given signature in the remote service.

This function was introduced in Qt 4.6.

object QDBusConnection.connect (self, QString service, QString path, QString interface, QString name, QString signature, callable slot)

bool QDBusConnection.connect (self, QString service, QString path, QString interface, QString name, QStringList argumentMatch, QString signature, QObject receiver, SLOT() slot)

object QDBusConnection.connect (self, QString service, QString path, QString interface, QString name, QStringList argumentMatch, QString signature, callable slot)

ConnectionCapabilities QDBusConnection.connectionCapabilities (self)

Returns the capabilities of this connection as negotiated with the bus server or peer. If this QDBusConnection is not connected, this function returns no capabilities.

This function was introduced in Qt 4.8.

QDBusConnection QDBusConnection.connectToBus (BusType type, QString name)

Opens a connection of type type to one of the known busses and associate with it the connection name name. Returns a QDBusConnection object associated with that connection.

QDBusConnection QDBusConnection.connectToBus (QString address, QString name)

Opens a connection to a private bus on address address and associate with it the connection name name. Returns a QDBusConnection object associated with that connection.

QDBusConnection QDBusConnection.connectToPeer (QString address, QString name)

Opens a peer-to-peer connection on address address and associate with it the connection name name. Returns a QDBusConnection object associated with that connection.

This function was introduced in Qt 4.8.

bool QDBusConnection.disconnect (self, QString service, QString path, QString interface, QString name, QObject receiver, SLOT() slot)

Disconnects the signal specified by the service, path, interface and name parameters from the slot slot in object receiver. The arguments must be the same as passed to the connect() function.

Returns true if the disconnection was successful.

object QDBusConnection.disconnect (self, QString service, QString path, QString interface, QString name, callable slot)

This is an overloaded function.

Disconnects the signal specified by the service, path, interface, name, and signature parameters from the slot slot in object receiver. The arguments must be the same as passed to the connect() function.

Returns true if the disconnection was successful.

bool QDBusConnection.disconnect (self, QString service, QString path, QString interface, QString name, QString signature, QObject receiver, SLOT() slot)

This is an overloaded function.

Disconnects the signal specified by the service, path, interface, name, argumentMatch, and signature parameters from the slot slot in object receiver. The arguments must be the same as passed to the connect() function.

Returns true if the disconnection was successful.

This function was introduced in Qt 4.6.

object QDBusConnection.disconnect (self, QString service, QString path, QString interface, QString name, QString signature, callable slot)

bool QDBusConnection.disconnect (self, QString service, QString path, QString interface, QString name, QStringList argumentMatch, QString signature, QObject receiver, SLOT() slot)

object QDBusConnection.disconnect (self, QString service, QString path, QString interface, QString name, QStringList argumentMatch, QString signature, callable slot)

QDBusConnection.disconnectFromBus (QString name)

Closes the bus connection of name name.

Note that if there are still QDBusConnection objects associated with the same connection, the connection will not be closed until all references are dropped. However, no further references can be created using the QDBusConnection constructor.

QDBusConnection.disconnectFromPeer (QString name)

Closes the peer connection of name name.

Note that if there are still QDBusConnection objects associated with the same connection, the connection will not be closed until all references are dropped. However, no further references can be created using the QDBusConnection constructor.

This function was introduced in Qt 4.8.

QDBusConnectionInterface QDBusConnection.interface (self)

Returns a QDBusConnectionInterface object that represents the D-Bus server interface on this connection.

bool QDBusConnection.isConnected (self)

Returns true if this QDBusConnection object is connected.

QDBusError QDBusConnection.lastError (self)

Returns the last error that happened in this connection.

This function is provided for low-level code. If you're using QDBusInterface.call(), error codes are reported by its return value.

See also QDBusInterface and QDBusMessage.

QByteArray QDBusConnection.localMachineId ()

Returns the local machine ID as known to the D-Bus system. Each node or host that runs D-Bus has a unique identifier that can be used to distinguish it from other hosts if they are sharing resources like the filesystem.

Note that the local machine ID is not guaranteed to be persistent across boots of the system, so this identifier should not be stored in persistent storage (like the filesystem). It is guaranteed to remain constant only during the lifetime of this boot session.

This function was introduced in Qt 4.8.

QString QDBusConnection.name (self)

Returns the connection name for this connection, as given as the name parameter to connectToBus().

The connection name can be used to uniquely identify actual underlying connections to buses. Copies made from a single connection will always implicitly share the underlying connection, and hence will have the same connection name.

Inversely, two connections having different connection names will always either be connected to different buses, or have a different unique name (as returned by baseService()) on that bus.

This function was introduced in Qt 4.5.

See also connectToBus() and disconnectFromBus().

QObject QDBusConnection.objectRegisteredAt (self, QString path)

Return the object that was registered with the registerObject() at the object path given by path.

bool QDBusConnection.registerObject (self, QString path, QObject object, RegisterOptions options = QDBusConnection.ExportAdaptors)

Registers the object object at path path and returns true if the registration was successful. The options parameter specifies how much of the object object will be exposed through D-Bus.

This function does not replace existing objects: if there is already an object registered at path path, this function will return false. Use unregisterObject() to unregister it first.

You cannot register an object as a child object of an object that was registered with QDBusConnection.ExportChildObjects.

bool QDBusConnection.registerService (self, QString serviceName)

Attempts to register the serviceName on the D-Bus server and returns true if the registration succeeded. The registration will fail if the name is already registered by another application.

See also unregisterService() and QDBusConnectionInterface.registerService().

bool QDBusConnection.send (self, QDBusMessage message)

Sends the message over this connection, without waiting for a reply. This is suitable for errors, signals, and return values as well as calls whose return values are not necessary.

Returns true if the message was queued successfully, false otherwise.

QDBusConnection QDBusConnection.sender ()

Returns the connection that sent the signal, if called in a slot activated by QDBus; otherwise it returns 0.

Note: Please avoid this function. This function is not thread-safe, so if there's any other thread delivering a D-Bus call, this function may return the wrong connection. In new code, please use QDBusContext.connection() (see that class for a description on how to use it).

Warning: This function is not reentrant.

QDBusConnection QDBusConnection.sessionBus ()

Returns a QDBusConnection object opened with the session bus. The object reference returned by this function is valid until the application terminates, at which point the connection will be closed and the object deleted.

QDBusConnection QDBusConnection.systemBus ()

Returns a QDBusConnection object opened with the system bus. The object reference returned by this function is valid until the QCoreApplication's destructor is run, when the connection will be closed and the object, deleted.

QDBusConnection.unregisterObject (self, QString path, UnregisterMode mode = QDBusConnection.UnregisterNode)

Unregisters an object that was registered with the registerObject() at the object path given by path and, if mode is QDBusConnection.UnregisterTree, all of its sub-objects too.

Note that you cannot unregister objects that were not registered with registerObject().

bool QDBusConnection.unregisterService (self, QString serviceName)

Unregisters the service serviceName that was previously registered with registerService() and returns true if it succeeded.

See also registerService() and QDBusConnectionInterface.unregisterService().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusconnectioninterface.html0000644000076500000240000004037012536324476023442 0ustar philstaff00000000000000 QDBusConnectionInterface Class Reference
  Home · All Classes · Modules

QDBusConnectionInterface Class Reference
[QtDBus module]

The QDBusConnectionInterface class provides access to the D-Bus bus daemon service. More...

Inherits QDBusAbstractInterface.

Types

Methods

Qt Signals


Detailed Description

The QDBusConnectionInterface class provides access to the D-Bus bus daemon service.

The D-Bus bus server daemon provides one special interface org.freedesktop.DBus that allows clients to access certain properties of the bus, such as the current list of clients connected. The QDBusConnectionInterface class provides access to that interface.

The most common uses of this class are to register and unregister service names on the bus using the registerService() and unregisterService() functions, query about existing names using the isServiceRegistered(), registeredServiceNames() and serviceOwner() functions, and to receive notification that a client has registered or de-registered through the serviceRegistered(), serviceUnregistered() and serviceOwnerChanged() signals.


Type Documentation

QDBusConnectionInterface.RegisterServiceReply

The possible return values from registerService():

Constant Value Description
QDBusConnectionInterface.ServiceNotRegistered 0 The call failed and the service name was not registered.
QDBusConnectionInterface.ServiceRegistered 1 The caller is now the owner of the service name.
QDBusConnectionInterface.ServiceQueued 2 The caller specified the QueueService flag and the service was already registered, so we are in queue.

The serviceRegistered() signal will be emitted when the service is acquired by this application.

QDBusConnectionInterface.ServiceQueueOptions

Flags for determining how a service registration should behave, in case the service name is already registered.

Constant Value Description
QDBusConnectionInterface.DontQueueService 0 If an application requests a name that is already owned, no queueing will be performed. The registeredService() call will simply fail. This is the default.
QDBusConnectionInterface.QueueService 1 Attempts to register the requested service, but do not try to replace it if another application already has it registered. Instead, simply put this application in queue, until it is given up. The serviceRegistered() signal will be emitted when that happens.
QDBusConnectionInterface.ReplaceExistingService 2 If another application already has the service name registered, attempt to replace it.

See also ServiceReplacementOptions.

QDBusConnectionInterface.ServiceReplacementOptions

Flags for determining if the D-Bus server should allow another application to replace a name that this application has registered with the ReplaceExistingService option.

The possible values are:

Constant Value Description
QDBusConnectionInterface.DontAllowReplacement 0 Do not allow another application to replace us. The service must be explicitly unregistered with unregisterService() for another application to acquire it. This is the default.
QDBusConnectionInterface.AllowReplacement 1 Allow other applications to replace us with the ReplaceExistingService option to registerService() without intervention. If that happens, the serviceUnregistered() signal will be emitted.

See also ServiceQueueOptions.


Method Documentation

QDBusConnectionInterface.connectNotify (self, SIGNAL())

QDBusConnectionInterface.disconnectNotify (self, SIGNAL())

QDBusReply QDBusConnectionInterface.isServiceRegistered (self, QString serviceName)

Returns true if the service name serviceName has is currently registered.

QDBusReply QDBusConnectionInterface.registeredServiceNames (self)

QDBusReply QDBusConnectionInterface.registerService (self, QString serviceName, ServiceQueueOptions qoption = QDBusConnectionInterface.DontQueueService, ServiceReplacementOptions roption = QDBusConnectionInterface.DontAllowReplacement)

Requests to register the service name serviceName on the bus. The qoption flag specifies how the D-Bus server should behave if serviceName is already registered. The roption flag specifies if the server should allow another application to replace our registered name.

If the service registration succeeds, the serviceRegistered() signal will be emitted. If we are placed in queue, the signal will be emitted when we obtain the name. If roption is AllowReplacement, the serviceUnregistered() signal will be emitted if another application replaces this one.

See also unregisterService().

QDBusReply QDBusConnectionInterface.serviceOwner (self, QString name)

Returns the unique connection name of the primary owner of the name name. If the requested name doesn't have an owner, returns a org.freedesktop.DBus.Error.NameHasNoOwner error.

QDBusReply QDBusConnectionInterface.servicePid (self, QString serviceName)

Returns the Unix Process ID (PID) for the process currently holding the bus service serviceName.

QDBusReply QDBusConnectionInterface.serviceUid (self, QString serviceName)

Returns the Unix User ID (UID) for the process currently holding the bus service serviceName.

QDBusReply QDBusConnectionInterface.startService (self, QString name)

Requests that the bus start the service given by the name name.

QDBusReply QDBusConnectionInterface.unregisterService (self, QString serviceName)

Releases the claim on the bus service name serviceName, that had been previously registered with registerService(). If this application had ownership of the name, it will be released for other applications to claim. If it only had the name queued, it gives up its position in the queue.


Qt Signal Documentation

void callWithCallbackFailed (const QDBusError&,const QDBusMessage&)

This is the default overload of this signal.

This signal is emitted when there is an error during a QDBusConnection.callWithCallback(). error specifies the error. call is the message that couldn't be delivered.

See also QDBusConnection.callWithCallback().

void serviceOwnerChanged (const QString&,const QString&,const QString&)

This is the default overload of this signal.

This signal is emitted by the D-Bus server whenever a service ownership change happens in the bus, including apparition and disparition of names.

This signal means the application oldOwner lost ownership of bus name name to application newOwner. If oldOwner is an empty string, it means the name name has just been created; if newOwner is empty, the name name has no current owner and is no longer available.

Note: connecting to this signal will make the application listen for and receive every single service ownership change on the bus. Depending on how many services are running, this make the application be activated to receive more signals than it needs. To avoid this problem, use the QDBusServiceWatcher class, which can listen for specific changes.

void serviceRegistered (const QString&)

This is the default overload of this signal.

This signal is emitted by the D-Bus server when the bus service name (unique connection name or well-known service name) given by serviceName is acquired by this application.

Acquisition happens after this application has requested a name using registerService().

void serviceUnregistered (const QString&)

This is the default overload of this signal.

This signal is emitted by the D-Bus server when this application loses ownership of the bus service name given by serviceName.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbuserror.html0000644000076500000240000002616012536324476020554 0ustar philstaff00000000000000 QDBusError Class Reference
  Home · All Classes · Modules

QDBusError Class Reference
[
QtDBus module]

The QDBusError class represents an error received from the D-Bus bus or from remote applications found in the bus. More...

Types

  • enum ErrorType { NoError, Other, Failed, NoMemory, ..., InvalidMember }

Methods

Static Methods


Detailed Description

The QDBusError class represents an error received from the D-Bus bus or from remote applications found in the bus.

When dealing with the D-Bus bus service or with remote applications over D-Bus, a number of error conditions can happen. This error conditions are sometimes signalled by a returned error value or by a QDBusError.

C++ and Java exceptions are a valid analogy for D-Bus errors: instead of returning normally with a return value, remote applications and the bus may decide to throw an error condition. However, the QtDBus implementation does not use the C++ exception-throwing mechanism, so you will receive QDBusErrors in the return reply (see QDBusReply.error()).

QDBusError objects are used to inspect the error name and message as received from the bus and remote applications. You should not create such objects yourself to signal error conditions when called from D-Bus: instead, use QDBusMessage.createError() and QDBusConnection.send().


Type Documentation

QDBusError.ErrorType

In order to facilitate verification of the most common D-Bus errors generated by the D-Bus implementation and by the bus daemon itself, QDBusError can be compared to a set of pre-defined values:

Constant Value Description
QDBusError.NoError 0 QDBusError is invalid (i.e., the call succeeded)
QDBusError.Other 1 QDBusError contains an error that is one of the well-known ones
QDBusError.Failed 2 The call failed (org.freedesktop.DBus.Error.Failed)
QDBusError.NoMemory 3 Out of memory (org.freedesktop.DBus.Error.NoMemory)
QDBusError.ServiceUnknown 4 The called service is not known (org.freedesktop.DBus.Error.ServiceUnknown)
QDBusError.NoReply 5 The called method did not reply within the specified timeout (org.freedesktop.DBus.Error.NoReply)
QDBusError.BadAddress 6 The address given is not valid (org.freedesktop.DBus.Error.BadAddress)
QDBusError.NotSupported 7 The call/operation is not supported (org.freedesktop.DBus.Error.NotSupported)
QDBusError.LimitsExceeded 8 The limits allocated to this process/call/connection exceeded the pre-defined values (org.freedesktop.DBus.Error.LimitsExceeded)
QDBusError.AccessDenied 9 The call/operation tried to access a resource it isn't allowed to (org.freedesktop.DBus.Error.AccessDenied)
QDBusError.NoServer 10 Documentation doesn't say what this is for (org.freedesktop.DBus.Error.NoServer)
QDBusError.Timeout 11 Documentation doesn't say what this is for or how it's used (org.freedesktop.DBus.Error.Timeout)
QDBusError.NoNetwork 12 Documentation doesn't say what this is for (org.freedesktop.DBus.Error.NoNetwork)
QDBusError.AddressInUse 13 QDBusServer tried to bind to an address that is already in use (org.freedesktop.DBus.Error.AddressInUse)
QDBusError.Disconnected 14 The call/process/message was sent after QDBusConnection disconnected (org.freedesktop.DBus.Error.Disconnected)
QDBusError.InvalidArgs 15 The arguments passed to this call/operation are not valid (org.freedesktop.DBus.Error.InvalidArgs)
QDBusError.UnknownMethod 16 The method called was not found in this object/interface with the given parameters (org.freedesktop.DBus.Error.UnknownMethod)
QDBusError.TimedOut 17 Documentation doesn't say... (org.freedesktop.DBus.Error.TimedOut)
QDBusError.InvalidSignature 18 The type signature is not valid or compatible (org.freedesktop.DBus.Error.InvalidSignature)
QDBusError.UnknownInterface 19 The interface is not known
QDBusError.InternalError 20 An internal error occurred (com.trolltech.QtDBus.Error.InternalError)
QDBusError.InvalidObjectPath 23 The object path provided is invalid.
QDBusError.InvalidService 22 The service requested is invalid.
QDBusError.InvalidMember 25 The member is invalid.
QDBusError.InvalidInterface 24 The interface is invalid.
QDBusError.UnknownObject 21 The remote object could not be found.

Method Documentation

QDBusError.__init__ (self, QDBusError other)

QString QDBusError.errorString (ErrorType error)

Returns the error name associated with error condition error.

This function was introduced in Qt 4.3.

bool QDBusError.isValid (self)

Returns true if this is a valid error condition (i.e., if there was an error), otherwise false.

QString QDBusError.message (self)

Returns the message that the callee associated with this error. Error messages are implementation defined and usually contain a human-readable error code, though this does not mean it is suitable for your end-users.

QString QDBusError.name (self)

Returns this error's name. Error names are similar to D-Bus Interface names, like org.freedesktop.DBus.InvalidArgs.

See also type().

ErrorType QDBusError.type (self)

Returns this error's ErrorType.

See also ErrorType.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusinterface.html0000644000076500000240000001336212536324476021363 0ustar philstaff00000000000000 QDBusInterface Class Reference
  Home · All Classes · Modules

QDBusInterface Class Reference
[QtDBus module]

The QDBusInterface class is a proxy for interfaces on remote objects. More...

Inherits QDBusAbstractInterface.

Methods

  • __init__ (self, QString service, QString path, QString interface = QString(), QDBusConnection connection = QDBusConnection.sessionBus(), QObject parent = None)

Detailed Description

The QDBusInterface class is a proxy for interfaces on remote objects.

QDBusInterface is a generic accessor class that is used to place calls to remote objects, connect to signals exported by remote objects and get/set the value of remote properties. This class is useful for dynamic access to remote objects: that is, when you do not have a generated code that represents the remote interface.

Calls are usually placed by using the call() function, which constructs the message, sends it over the bus, waits for the reply and decodes the reply. Signals are connected to by using the normal QObject.connect() function. Finally, properties are accessed using the QObject.property() and QObject.setProperty() functions.

The following code snippet demonstrates how to perform a mathematical operation of "2 + 2" in a remote application called com.example.Calculator, accessed via the session bus.

 QDBusInterface remoteApp( "com.example.Calculator", "/Calculator/Operations",
                           "org.mathematics.RPNCalculator" );
 remoteApp.call( "PushOperand", 2 );
 remoteApp.call( "PushOperand", 2 );
 remoteApp.call( "ExecuteOperation", "+" );
 QDBusReply<int> reply = remoteApp.call( "PopOperand" );

 if ( reply.isValid() )
     printf( "%d", reply.value() );          // prints 4

Method Documentation

QDBusInterface.__init__ (self, QString service, QString path, QString interface = QString(), QDBusConnection connection = QDBusConnection.sessionBus(), QObject parent = None)

Creates a dynamic QDBusInterface object associated with the interface interface on object at path path on service service, using the given connection. If interface is an empty string, the object created will refer to the merging of all interfaces found in that object.

parent is passed to the base class constructor.

If the remote service service is not present or if an error occurs trying to obtain the description of the remote interface interface, the object created will not be valid (see isValid()).


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusmessage.html0000644000076500000240000004362112536324476021050 0ustar philstaff00000000000000 QDBusMessage Class Reference
  Home · All Classes · Modules

QDBusMessage Class Reference
[QtDBus module]

The QDBusMessage class represents one message sent or received over the D-Bus bus. More...

Types

  • enum MessageType { InvalidMessage, MethodCallMessage, ReplyMessage, ErrorMessage, SignalMessage }

Methods

Static Methods

  • QDBusMessage createError (QString name, QString msg)
  • QDBusMessage createError (QDBusError error)
  • QDBusMessage createError (QDBusError.ErrorType type, QString msg)
  • QDBusMessage createMethodCall (QString service, QString path, QString interface, QString method)
  • QDBusMessage createSignal (QString path, QString interface, QString name)

Special Methods


Detailed Description

The QDBusMessage class represents one message sent or received over the D-Bus bus.

This object can represent any of the four different types of messages (MessageType) that can occur on the bus:

  • Method calls
  • Method return values
  • Signal emissions
  • Error codes

Objects of this type are created with the static createError(), createMethodCall() and createSignal() functions. Use the QDBusConnection.send() function to send the messages.


Type Documentation

QDBusMessage.MessageType

The possible message types:

Constant Value Description
QDBusMessage.MethodCallMessage 1 a message representing an outgoing or incoming method call
QDBusMessage.SignalMessage 4 a message representing an outgoing or incoming signal emission
QDBusMessage.ReplyMessage 2 a message representing the return values of a method call
QDBusMessage.ErrorMessage 3 a message representing an error condition in response to a method call
QDBusMessage.InvalidMessage 0 an invalid message: this is never set on messages received from D-Bus

Method Documentation

QDBusMessage.__init__ (self)

Constructs an empty, invalid QDBusMessage object.

See also createError(), createMethodCall(), and createSignal().

QDBusMessage.__init__ (self, QDBusMessage other)

Constructs a copy of the object given by other.

Note: QDBusMessage objects are shared. Modifications made to the copy will affect the original one as well. See setDelayedReply() for more information.

list-of-QVariant QDBusMessage.arguments (self)

Returns the list of arguments that are going to be sent or were received from D-Bus.

See also setArguments().

bool QDBusMessage.autoStartService (self)

Returns the auto start flag, as set by setAutoStartService(). By default, this flag is true, which means QtDBus will auto start a service, if it is not running already.

This function was introduced in Qt 4.7.

See also setAutoStartService().

QDBusMessage QDBusMessage.createError (QString name, QString msg)

Constructs a new DBus message representing an error, with the given name and msg.

QDBusMessage QDBusMessage.createError (QDBusError error)

Constructs a new DBus message representing the given error.

QDBusMessage QDBusMessage.createError (QDBusError.ErrorType type, QString msg)

Constructs a new DBus message for the error type type using the message msg. Returns the DBus message.

QDBusMessage QDBusMessage.createErrorReply (self, QString name, QString msg)

Constructs a new DBus message representing an error reply message, with the given name and msg.

QDBusMessage QDBusMessage.createErrorReply (self, QDBusError error)

Constructs a new DBus message representing an error reply message, from the given error object.

QDBusMessage QDBusMessage.createErrorReply (self, QDBusError.ErrorType type, QString msg)

Constructs a new DBus reply message for the error type type using the message msg. Returns the DBus message.

QDBusMessage QDBusMessage.createMethodCall (QString service, QString path, QString interface, QString method)

Constructs a new DBus message representing a method call. A method call always informs its destination address (service, path, interface and method).

The DBus bus allows calling a method on a given remote object without specifying the destination interface, if the method name is unique. However, if two interfaces on the remote object export the same method name, the result is undefined (one of the two may be called or an error may be returned).

When using DBus in a peer-to-peer context (i.e., not on a bus), the service parameter is optional.

The QDBusObject and QDBusInterface classes provide a simpler abstraction to synchronous method calling.

This function returns a QDBusMessage object that can be sent with QDBusConnection.call().

QDBusMessage QDBusMessage.createReply (self, list-of-QVariant arguments = QList<QVariant>())

Constructs a new DBus message representing a reply, with the given arguments.

QDBusMessage QDBusMessage.createReply (self, QVariant argument)

Constructs a new DBus message representing a reply, with the given argument.

QDBusMessage QDBusMessage.createSignal (QString path, QString interface, QString name)

Constructs a new DBus message with the given path, interface and name, representing a signal emission.

A DBus signal is emitted from one application and is received by all applications that are listening for that signal from that interface.

The QDBusMessage object that is returned can be sent using the QDBusConnection.send() function.

QString QDBusMessage.errorMessage (self)

Returns the human-readable message associated with the error that was received.

This function was introduced in Qt 4.3.

QString QDBusMessage.errorName (self)

Returns the name of the error that was received.

QString QDBusMessage.interface (self)

Returns the interface of the method being called (in the case of a method call) or of the signal being received from.

bool QDBusMessage.isDelayedReply (self)

Returns the delayed reply flag, as set by setDelayedReply(). By default, this flag is false, which means QtDBus will generate automatic replies when necessary.

bool QDBusMessage.isReplyRequired (self)

Returns the flag that indicates if this message should see a reply or not. This is only meaningful for method call messages: any other kind of message cannot have replies and this function will always return false for them.

QString QDBusMessage.member (self)

Returns the name of the signal that was emitted or the name of the method that was called.

QString QDBusMessage.path (self)

QString QDBusMessage.service (self)

Returns the name of the service or the bus address of the remote method call.

QDBusMessage.setArguments (self, list-of-QVariant arguments)

Sets the arguments that are going to be sent over D-Bus to arguments. Those will be the arguments to a method call or the parameters in the signal.

See also arguments().

QDBusMessage.setAutoStartService (self, bool enable)

Sets the auto start flag to enable. This flag only makes sense for method call messages, where it tells the D-Bus server to either auto start the service responsible for the service name, or not to auto start it.

By default this flag is true, i.e. a service is autostarted. This means:

When the service that this method call is sent to is already running, the method call is sent to it. If the service is not running yet, the D-Bus daemon is requested to autostart the service that is assigned to this service name. This is handled by .service files that are placed in a directory known to the D-Bus server. These files then each contain a service name and the path to a program that should be executed when this service name is requested.

This function was introduced in Qt 4.7.

See also autoStartService().

QDBusMessage.setDelayedReply (self, bool enable)

Sets whether the message will be replied later (if enable is true) or if an automatic reply should be generated by QtDBus (if enable is false).

In D-Bus, all method calls must generate a reply to the caller, unless the caller explicitly indicates otherwise (see isReplyRequired()). QtDBus automatically generates such replies for any slots being called, but it also allows slots to indicate whether they will take responsibility of sending the reply at a later time, after the function has finished processing.

See also isDelayedReply() and Delayed Replies.

QString QDBusMessage.signature (self)

Returns the signature of the signal that was received or for the output arguments of a method call.

MessageType QDBusMessage.type (self)

Returns the message type.

QDBusMessage QDBusMessage.__lshift__ (self, QVariant arg)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusobjectpath.html0000644000076500000240000001142712536324476021546 0ustar philstaff00000000000000 QDBusObjectPath Class Reference
  Home · All Classes · Modules

QDBusObjectPath Class Reference
[QtDBus module]

The QDBusObjectPath class enables the programmer to identify the OBJECT_PATH type provided by the D-Bus typesystem. More...

Methods

Special Methods

  • bool __eq__ (self, QDBusObjectPath rhs)
  • bool __ge__ (self, QDBusObjectPath rhs)
  • int __hash__ (self)
  • bool __lt__ (self, QDBusObjectPath rhs)
  • bool __ne__ (self, QDBusObjectPath rhs)

Detailed Description

The QDBusObjectPath class enables the programmer to identify the OBJECT_PATH type provided by the D-Bus typesystem.


Method Documentation

QDBusObjectPath.__init__ (self)

Constructs a new object path.

QDBusObjectPath.__init__ (self, QString path)

Constructs a new object path from the given path.

See also setPath().

QDBusObjectPath.__init__ (self, QDBusObjectPath)

Constructs a new object path from the given path.

QString QDBusObjectPath.path (self)

QDBusObjectPath.setPath (self, QString path)

Assigns the value of the given path to this object path.

See also path().

bool QDBusObjectPath.__eq__ (self, QDBusObjectPath rhs)

bool QDBusObjectPath.__ge__ (self, QDBusObjectPath rhs)

int QDBusObjectPath.__hash__ (self)

bool QDBusObjectPath.__lt__ (self, QDBusObjectPath rhs)

bool QDBusObjectPath.__ne__ (self, QDBusObjectPath rhs)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbuspendingcall.html0000644000076500000240000001227212536324476021702 0ustar philstaff00000000000000 QDBusPendingCall Class Reference
  Home · All Classes · Modules

QDBusPendingCall Class Reference
[QtDBus module]

The QDBusPendingCall class refers to one pending asynchronous call More...

Inherited by QDBusPendingCallWatcher and QDBusPendingReply.

Methods

  • __init__ (self, QDBusPendingCall other)

Static Methods


Detailed Description

The QDBusPendingCall class refers to one pending asynchronous call

A QDBusPendingCall object is a reference to a method call that was sent over D-Bus without waiting for a reply. QDBusPendingCall is an opaque type, meant to be used as a handle for a pending reply.

In most programs, the QDBusPendingCall class will not be used directly. It can be safely replaced with the template-based QDBusPendingReply, in order to access the contents of the reply or wait for it to be complete.

The QDBusPendingCallWatcher class allows one to connect to a signal that will indicate when the reply has arrived or if the call has timed out. It also provides the QDBusPendingCallWatcher.waitForFinished() method which will suspend the execution of the program until the reply has arrived.

Note: If you create a copy of a QDBusPendingCall object, all information will be shared among the many copies. Therefore, QDBusPendingCall is an explicitly-shared object and does not provide a method of detaching the copies (since they refer to the same pending call)


Method Documentation

QDBusPendingCall.__init__ (self, QDBusPendingCall other)

Creates a copy of the other pending asynchronous call. Note that both objects will refer to the same pending call.

QDBusPendingCall QDBusPendingCall.fromCompletedCall (QDBusMessage message)

Creates a QDBusPendingCall object based on the message msg. The message must be of type QDBusMessage.ErrorMessage or QDBusMessage.ReplyMessage (that is, a message that is typical of a completed call).

This function is useful for code that requires simulating a pending call, but that has already finished.

This function was introduced in Qt 4.6.

See also fromError().

QDBusPendingCall QDBusPendingCall.fromError (QDBusError error)

Creates a QDBusPendingCall object based on the error condition error. The resulting pending call object will be in the "finished" state and QDBusPendingReply.isError() will return true.

This function was introduced in Qt 4.6.

See also fromCompletedCall().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbuspendingcallwatcher.html0000644000076500000240000001744712536324476023271 0ustar philstaff00000000000000 QDBusPendingCallWatcher Class Reference
  Home · All Classes · Modules

QDBusPendingCallWatcher Class Reference
[QtDBus module]

The QDBusPendingCallWatcher class provides a convenient way for waiting for asynchronous replies More...

Inherits QObject and QDBusPendingCall.

Methods

Qt Signals

  • void finished (QDBusPendingCallWatcher*)

Detailed Description

The QDBusPendingCallWatcher class provides a convenient way for waiting for asynchronous replies

The QDBusPendingCallWatcher provides the finished() signal that will be emitted when a reply arrives.

It is usually used like the following example:

     QDBusPendingCall async = iface->asyncCall("RemoteMethod", value1, value2);
     QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(async, this);

     QObject.connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
                      this, SLOT(callFinishedSlot(QDBusPendingCallWatcher*)));

Note that it is not necessary to keep the original QDBusPendingCall object around since QDBusPendingCallWatcher inherits from that class too.

The slot connected to by the above code could be something similar to the following:

 void MyClass.callFinishedSlot(QDBusPendingCallWatcher *call)
 {
     QDBusPendingReply<QString, QByteArray> reply = *call;
     if (reply.isError()) {
         showError();
     } else {
         QString text = reply.argumentAt<0>();
         QByteArray data = reply.argumentAt<1>();
         showReply(text, data);
     }
     call->deleteLater();
 }

Note the use of QDBusPendingReply to validate the argument types in the reply. If the reply did not contain exactly two arguments (one string and one QByteArray), QDBusPendingReply.isError() will return true.


Method Documentation

QDBusPendingCallWatcher.__init__ (self, QDBusPendingCall call, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a QDBusPendingCallWatcher object to watch for replies on the asynchronous pending call call and sets this object's parent to parent.

bool QDBusPendingCallWatcher.isFinished (self)

Returns true if the pending call has finished processing and the reply has been received.

Note that this function only changes state if you call waitForFinished() or if an external D-Bus event happens, which in general only happens if you return to the event loop execution.

See also QDBusPendingReply.isFinished().

QDBusPendingCallWatcher.waitForFinished (self)

Suspends the execution of the calling thread until the reply is received and processed. After this function returns, isFinished() should return true, indicating the reply's contents are ready to be processed.

See also QDBusPendingReply.waitForFinished().


Qt Signal Documentation

void finished (QDBusPendingCallWatcher*)

This is the default overload of this signal.

This signal is emitted when the pending call has finished and its reply is available. The self parameter is a pointer to the object itself, passed for convenience so that the slot can access the properties and determine the contents of the reply.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbuspendingreply.html0000644000076500000240000003172712536324476022130 0ustar philstaff00000000000000 QDBusPendingReply Class Reference
  Home · All Classes · Modules

QDBusPendingReply Class Reference
[
QtDBus module]

The QDBusPendingReply class contains the reply to an asynchronous method call More...

Inherits QDBusPendingCall.

Methods


Detailed Description

The QDBusPendingReply class contains the reply to an asynchronous method call

The QDBusPendingReply is a template class with up to 8 template parameters. Those parameters are the types that will be used to extract the contents of the reply's data.

This class is similar in functionality to QDBusReply, but with two important differences:

  • QDBusReply accepts exactly one return type, whereas QDBusPendingReply can have from 1 to 8 types
  • QDBusReply only works on already completed replies, whereas QDBusPendingReply allows one to wait for replies from pending calls

Where with QDBusReply you would write:

 QDBusReply<QString> reply = interface->call("RemoteMethod");
 if (reply.isValid())
     // use the returned value
     useValue(reply.value());
 else
     // call failed. Show an error condition.
     showError(reply.error());

with QDBusPendingReply, the equivalent code (including the blocking wait for the reply) would be:

     QDBusPendingReply<QString> reply = interface->asyncCall("RemoteMethod");
     reply.waitForFinished();
     if (reply.isError())
         // call failed. Show an error condition.
         showError(reply.error());
     else
         // use the returned value
         useValue(reply.value());

For method calls that have more than one output argument, with QDBusReply, you would write:

 QString reply = interface->call("RemoteMethod");

whereas with QDBusPendingReply, all of the output arguments should be template parameters:

     QDBusPendingReply<bool, QString> reply = interface->asyncCall("RemoteMethod");
     reply.waitForFinished();
     if (!reply.isError()) {
         if (reply.argumentAt<0>())
             showSuccess(reply.argumentAt<1>());
         else
             showFailure(reply.argumentAt<1>());
     }

QDBusPendingReply objects can be associated with QDBusPendingCallWatcher objects, which emit signals when the reply arrives.


Method Documentation

QDBusPendingReply.__init__ (self)

Creates an empty QDBusPendingReply object. Without assigning a QDBusPendingCall object to this reply, QDBusPendingReply cannot do anything. All functions return their failure values.

QDBusPendingReply.__init__ (self, QDBusPendingReply other)

Creates a copy of the other QDBusPendingReply object. Just like QDBusPendingCall and QDBusPendingCallWatcher, this QDBusPendingReply object will share the same pending call reference. All copies share the same return values.

QDBusPendingReply.__init__ (self, QDBusPendingCall call)

Creates a QDBusPendingReply object that will take its contents from the call pending asynchronous call. This QDBusPendingReply object will share the same pending call reference as call.

QDBusPendingReply.__init__ (self, QDBusMessage reply)

Creates a QDBusPendingReply object that will take its contents from the message message. In this case, this object will be already in its finished state and the reply's contents will be accessible.

See also isFinished().

QVariant QDBusPendingReply.argumentAt (self, int index)

Returns the argument at position index in the reply's contents. If the reply doesn't have that many elements, this function's return value is undefined (will probably cause an assertion failure), so it is important to verify that the processing is finished and the reply is valid.

QDBusError QDBusPendingReply.error (self)

Retrieves the error content of the reply message, if it has finished processing. If the reply message has not finished processing or if it contains a normal reply message (non-error), this function returns an invalid QDBusError.

bool QDBusPendingReply.isError (self)

Returns true if the reply contains an error message, false if it contains a normal method reply.

If the pending call has not finished processing, this function also returns true.

bool QDBusPendingReply.isFinished (self)

Returns true if the pending call has finished processing and the reply has been received. If this function returns true, the isError(), error() and reply() methods should return valid information.

Note that this function only changes state if you call waitForFinished() or if an external D-Bus event happens, which in general only happens if you return to the event loop execution.

See also QDBusPendingCallWatcher.isFinished().

bool QDBusPendingReply.isValid (self)

Returns true if the reply contains a normal reply message, false if it contains anything else.

If the pending call has not finished processing, this function return false.

QDBusMessage QDBusPendingReply.reply (self)

Retrieves the reply message received for the asynchronous call that was sent, if it has finished processing. If the pending call is not finished, this function returns a QDBusMessage of type QDBusMessage.InvalidMessage.

After it has finished processing, the message type will either be an error message or a normal method reply message.

object QDBusPendingReply.value (self, object type = None)

Returns the first argument in this reply, cast to type T1 (the first template parameter of this class). This is equivalent to calling argumentAt<0>().

This function is provided as a convenience, matching the QDBusReply.value() function.

Note that, if the reply hasn't arrived, this function causes the calling thread to block until the reply is processed.

QDBusPendingReply.waitForFinished (self)

Suspends the execution of the calling thread until the reply is received and processed. After this function returns, isFinished() should return true, indicating the reply's contents are ready to be processed.

See also QDBusPendingCallWatcher.waitForFinished().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusreply.html0000644000076500000240000001570312536324476020557 0ustar philstaff00000000000000 QDBusReply Class Reference
  Home · All Classes · Modules

QDBusReply Class Reference
[QtDBus module]

The QDBusReply class stores the reply for a method call to a remote object. More...

Methods


Detailed Description

The QDBusReply class stores the reply for a method call to a remote object.

A QDBusReply object is a subset of the QDBusMessage object that represents a method call's reply. It contains only the first output argument or the error code and is used by QDBusInterface-derived classes to allow returning the error code as the function's return argument.

It can be used in the following manner:

 QDBusReply<QString> reply = interface->call("RemoteMethod");
 if (reply.isValid())
     // use the returned value
     useValue(reply.value());
 else
     // call failed. Show an error condition.
     showError(reply.error());

If the remote method call cannot fail, you can skip the error checking:

 QString reply = interface->call("RemoteMethod");

However, if it does fail under those conditions, the value returned by QDBusReply.value() is a default-constructed value. It may be indistinguishable from a valid return value.

QDBusReply objects are used for remote calls that have no output arguments or return values (i.e., they have a "void" return type). Use the isValid() function to test if the reply succeeded.


Method Documentation

QDBusReply.__init__ (self, QDBusMessage reply)

Automatically construct a QDBusReply object from the reply message reply, extracting the first return value from it if it is a success reply.

QDBusReply.__init__ (self, QDBusPendingCall call)

Automatically construct a QDBusReply object from the asynchronous pending call pcall. If the call isn't finished yet, QDBusReply will call QDBusPendingCall.waitForFinished(), which is a blocking operation.

If the return types patch, QDBusReply will extract the first return argument from the reply.

QDBusReply.__init__ (self, QDBusError error)

Constructs a QDBusReply object from the pending reply message, reply.

QDBusReply.__init__ (self, QDBusReply other)

Constructs an error reply from the D-Bus error code given by error.

QDBusError QDBusReply.error (self)

Returns the error code that was returned from the remote function call. If the remote call did not return an error (i.e., if it succeeded), then the QDBusError object that is returned will not be a valid error code (QDBusError.isValid() will return false).

See also isValid().

bool QDBusReply.isValid (self)

Returns true if no error occurred; otherwise, returns false.

See also error().

object QDBusReply.value (self, object type = None)

Returns the remote function's calls return value. If the remote call returned with an error, the return value of this function is undefined and may be undistinguishable from a valid return value.

This function is not available if the remote call returns void.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusservicewatcher-watchmode.html0000644000076500000240000001405512536324476024412 0ustar philstaff00000000000000 QDBusServiceWatcher.WatchMode Class Reference
  Home · All Classes · Modules

QDBusServiceWatcher.WatchMode Class Reference
[
QtDBus module]

Methods

Special Methods


Detailed Description


Method Documentation

WatchMode.__init__ (self, WatchMode)

WatchMode.__init__ (self, int)

WatchMode.__init__ (self)

WatchMode WatchMode.__and__ (self, int mask)

int WatchMode.__bool__ (self)

bool WatchMode.__eq__ (self, WatchMode f)

WatchMode WatchMode.__iand__ (self, int mask)

int WatchMode.__int__ (self)

WatchMode WatchMode.__invert__ (self)

WatchMode WatchMode.__ior__ (self, WatchMode f)

WatchMode WatchMode.__ixor__ (self, WatchMode f)

bool WatchMode.__ne__ (self, WatchMode f)

WatchMode WatchMode.__or__ (self, WatchMode f)

WatchMode WatchMode.__or__ (self, int f)

WatchMode WatchMode.__xor__ (self, WatchMode f)

WatchMode WatchMode.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusservicewatcher.html0000644000076500000240000003105012536324476022433 0ustar philstaff00000000000000 QDBusServiceWatcher Class Reference
  Home · All Classes · Modules

QDBusServiceWatcher Class Reference
[QtDBus module]

The QDBusServiceWatcher class allows the user to watch for a bus service change. More...

Inherits QObject.

Types

Methods

Qt Signals


Detailed Description

The QDBusServiceWatcher class allows the user to watch for a bus service change.

A QDBusServiceWatcher object can be used to notify the application about an ownership change of a service name on the bus. It has three watch modes:

  • Watching for service registration only.
  • Watching for service unregistration only.
  • Watching for any kind of service ownership change (the default mode).

Besides being created or deleted, services may change owners without a unregister/register operation happening. So the serviceRegistered() and serviceUnregistered() signals may not be emitted if that happens.

This class is more efficient than using the QDBusConnectionInterface.serviceOwnerChanged() signal because it allows one to receive only the signals for which the class is interested in.


Type Documentation

QDBusServiceWatcher.WatchModeFlag

QDBusServiceWatcher supports three different watch modes, which are configured by this flag:

Constant Value Description
QDBusServiceWatcher.WatchForRegistration 0x01 watch for service registration only, ignoring any signals related to other service ownership change.
QDBusServiceWatcher.WatchForUnregistration 0x02 watch for service unregistration only, ignoring any signals related to other service ownership change.
QDBusServiceWatcher.WatchForOwnerChange 0x03 watch for any kind of service ownership change.

The WatchMode type is a typedef for QFlags<WatchModeFlag>. It stores an OR combination of WatchModeFlag values.


Method Documentation

QDBusServiceWatcher.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a QDBusServiceWatcher object. Note that until you set a connection with setConnection(), this object will not emit any signals.

The parent parameter is passed to QObject to set the parent of this object.

QDBusServiceWatcher.__init__ (self, QString service, QDBusConnection connection, WatchMode watchMode = QDBusServiceWatcher.WatchForOwnerChange, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a QDBusServiceWatcher object and attaches it to the connection connection. Also, this function immediately starts watching for watchMode changes to service service.

The parent parameter is passed to QObject to set the parent of this object.

QDBusServiceWatcher.addWatchedService (self, QString newService)

Adds newService to the list of services to be watched by this object. This function is more efficient than setWatchedServices() and should be used whenever possible to add services.

QDBusConnection QDBusServiceWatcher.connection (self)

Returns the QDBusConnection that this object is attached to.

See also setConnection().

bool QDBusServiceWatcher.removeWatchedService (self, QString service)

Removes the service from the list of services being watched by this object. Note that D-Bus notifications are asynchronous, so there may still be signals pending delivery about service. Those signals will still be emitted whenever the D-Bus messages are processed.

This function returns true if any services were removed.

QDBusServiceWatcher.setConnection (self, QDBusConnection connection)

Sets the D-Bus connection that this object is attached to be connection. All services watched will be transferred to this connection.

Note that QDBusConnection objects are reference counted: QDBusServiceWatcher will keep a reference for this connection while it exists. The connection is not closed until the reference count drops to zero, so this will ensure that any notifications are received while this QDBusServiceWatcher object exists.

See also connection().

QDBusServiceWatcher.setWatchedServices (self, QStringList services)

QDBusServiceWatcher.setWatchMode (self, WatchMode mode)

QStringList QDBusServiceWatcher.watchedServices (self)

WatchMode QDBusServiceWatcher.watchMode (self)


Qt Signal Documentation

void serviceOwnerChanged (const QString&,const QString&,const QString&)

This is the default overload of this signal.

This signal is emitted whenever this object detects that there was a service ownership change relating to the serviceName service. The oldOwner parameter contains the old owner name and newOwner is the new owner. Both oldOwner and newOwner are unique connection names.

Note that this signal is also emitted whenever the serviceName service was registered or unregistered. If it was registered, oldOwner will contain an empty string, whereas if it was unregistered, newOwner will contain an empty string.

If you need only to find out if the service is registered or unregistered only, without being notified that the ownership changed, consider using the specific modes for those operations. This class is more efficient if you use the more specific modes.

See also serviceRegistered() and serviceUnregistered().

void serviceRegistered (const QString&)

This is the default overload of this signal.

This signal is emitted whenever this object detects that the service serviceName became available on the bus.

See also serviceUnregistered() and serviceOwnerChanged().

void serviceUnregistered (const QString&)

This is the default overload of this signal.

This signal is emitted whenever this object detects that the service serviceName was unregistered from the bus and is no longer available.

See also serviceRegistered() and serviceOwnerChanged().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbussignature.html0000644000076500000240000001152512536324476021423 0ustar philstaff00000000000000 QDBusSignature Class Reference
  Home · All Classes · Modules

QDBusSignature Class Reference
[QtDBus module]

The QDBusSignature class enables the programmer to identify the SIGNATURE type provided by the D-Bus typesystem. More...

Methods

Special Methods

  • bool __eq__ (self, QDBusSignature rhs)
  • bool __ge__ (self, QDBusSignature rhs)
  • int __hash__ (self)
  • bool __lt__ (self, QDBusSignature rhs)
  • bool __ne__ (self, QDBusSignature rhs)

Detailed Description

The QDBusSignature class enables the programmer to identify the SIGNATURE type provided by the D-Bus typesystem.


Method Documentation

QDBusSignature.__init__ (self)

Constructs a new signature.

See also setSignature().

QDBusSignature.__init__ (self, QString signature)

Constructs a new signature from the given signature.

QDBusSignature.__init__ (self, QDBusSignature)

Constructs a new signature from the given signature.

QDBusSignature.setSignature (self, QString signature)

Assigns the value of the given signature to this signature.

See also signature().

QString QDBusSignature.signature (self)

Returns this signature.

See also setSignature().

bool QDBusSignature.__eq__ (self, QDBusSignature rhs)

bool QDBusSignature.__ge__ (self, QDBusSignature rhs)

int QDBusSignature.__hash__ (self)

bool QDBusSignature.__lt__ (self, QDBusSignature rhs)

bool QDBusSignature.__ne__ (self, QDBusSignature rhs)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusunixfiledescriptor.html0000644000076500000240000002323612536324476023346 0ustar philstaff00000000000000 QDBusUnixFileDescriptor Class Reference
  Home · All Classes · Modules

QDBusUnixFileDescriptor Class Reference
[QtDBus module]

The QDBusUnixFileDescriptor class holds one Unix file descriptor. More...

Methods

Static Methods


Detailed Description

The QDBusUnixFileDescriptor class holds one Unix file descriptor.

The QDBusUnixFileDescriptor class is used to hold one Unix file descriptor for use with the QtDBus module. This allows applications to send and receive Unix file descriptors over the D-Bus connection, mapping automatically to the D-Bus type 'h'.

Objects of type QDBusUnixFileDescriptors can be used also as parameters in signals and slots that get exported to D-Bus by registering with QDBusConnection.registerObject.

QDBusUnixFileDescriptor does not take ownership of the file descriptor. Instead, it will use the Unix system call dup(2) to make a copy of the file descriptor. This file descriptor belongs to the QDBusUnixFileDescriptor object and should not be stored or closed by the user. Instead, you should make your own copy if you need that.

Availability

Unix file descriptor passing is not available in all D-Bus connections. This feature is present with D-Bus library and bus daemon version 1.4 and upwards on Unix systems. QtDBus automatically enables the feature if such a version was found at compile-time and run-time.

To verify that your connection does support passing file descriptors, check if the QDBusConnection.UnixFileDescriptorPassing capability is set with QDBusConnection.connectionCapabilities(). If the flag is not active, then you will not be able to make calls to methods that have QDBusUnixFileDescriptor as arguments or even embed such a type in a variant. You will also not receive calls containing that type.

Note also that remote applications may not have support for Unix file descriptor passing. If you make a D-Bus to a remote application that cannot receive such a type, you will receive an error reply. If you try to send a signal containing a D-Bus file descriptor or return one from a method call, the message will be silently dropped.

Even if the feature is not available, QDBusUnixFileDescriptor will continue to operate, so code need not have compile-time checks for the availability of this feature.

On non-Unix systems, QDBusUnixFileDescriptor will always report an invalid state and QDBusUnixFileDescriptor.isSupported() will return false.


Method Documentation

QDBusUnixFileDescriptor.__init__ (self)

Constructs a QDBusUnixFileDescriptor without a wrapped file descriptor. This is equivalent to constructing the object with an invalid file descriptor (like -1).

See also fileDescriptor() and isValid().

QDBusUnixFileDescriptor.__init__ (self, int fileDescriptor)

Constructs a QDBusUnixFileDescriptor object by copying the fileDescriptor parameter. The original file descriptor is not touched and must be closed by the user.

Note that the value returned by fileDescriptor() will be different from the fileDescriptor parameter passed.

If the fileDescriptor parameter is not valid, isValid() will return false and fileDescriptor() will return -1.

See also setFileDescriptor() and fileDescriptor().

QDBusUnixFileDescriptor.__init__ (self, QDBusUnixFileDescriptor other)

Constructs a QDBusUnixFileDescriptor object by copying other.

int QDBusUnixFileDescriptor.fileDescriptor (self)

Returns the Unix file descriptor contained by this QDBusUnixFileDescriptor object. An invalid file descriptor is represented by the value -1.

Note that the file descriptor returned by this function is owned by the QDBusUnixFileDescriptor object and must not be stored past the lifetime of this object. It is ok to use it while this object is valid, but if one wants to store it for longer use, the file descriptor should be cloned using the Unix dup(2), dup2(2) or dup3(2) functions.

See also setFileDescriptor() and isValid().

bool QDBusUnixFileDescriptor.isSupported ()

Returns true if Unix file descriptors are supported on this platform. In other words, this function returns true if this is a Unix platform.

Note that QDBusUnixFileDescriptor continues to operate even if this function returns false. The only difference is that the QDBusUnixFileDescriptor objects will always be in the isValid() == false state and fileDescriptor() will always return -1. The class will not consume any operating system resources.

bool QDBusUnixFileDescriptor.isValid (self)

Returns true if this Unix file descriptor is valid. A valid Unix file descriptor is not -1.

See also fileDescriptor().

QDBusUnixFileDescriptor.setFileDescriptor (self, int fileDescriptor)

Sets the file descriptor that this QDBusUnixFileDescriptor object holds to a copy of fileDescriptor. The original file descriptor is not touched and must be closed by the user.

Note that the value returned by fileDescriptor() will be different from the fileDescriptor parameter passed.

If the fileDescriptor parameter is not valid, isValid() will return false and fileDescriptor() will return -1.

See also isValid() and fileDescriptor().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdbusvariant.html0000644000076500000240000001411412536324476021063 0ustar philstaff00000000000000 QDBusVariant Class Reference
  Home · All Classes · Modules

QDBusVariant Class Reference
[QtDBus module]

The QDBusVariant class enables the programmer to identify the variant type provided by the D-Bus typesystem. More...

Methods

Special Methods

  • bool __eq__ (self, QDBusVariant v2)
  • bool __ne__ (self, QDBusVariant v2)

Detailed Description

The QDBusVariant class enables the programmer to identify the variant type provided by the D-Bus typesystem.

A D-Bus function that takes an integer, a D-Bus variant and a string as parameters can be called with the following argument list (see QDBusMessage.setArguments()):

     QList<QVariant> arguments;
     arguments << QVariant(42) << QVariant.fromValue(QDBusVariant(43)) << QVariant("hello");
     myDBusMessage.setArguments(arguments);

When a D-Bus function returns a D-Bus variant, it can be retrieved as follows:

     // call a D-Bus function that returns a D-Bus variant
     QVariant v = callMyDBusFunction();
     // retrieve the D-Bus variant
     QDBusVariant dbusVariant = qvariant_cast<QDBusVariant>(v);
     // retrieve the actual value stored in the D-Bus variant
     QVariant result = dbusVariant.variant();

The QVariant within a QDBusVariant is required to distinguish between a normal D-Bus value and a value within a D-Bus variant.


Method Documentation

QDBusVariant.__init__ (self)

Constructs a new D-Bus variant.

QDBusVariant.__init__ (self, QVariant variant)

Constructs a new D-Bus variant from the given Qt variant.

See also setVariant().

QDBusVariant.__init__ (self, QDBusVariant)

QDBusVariant.setVariant (self, QVariant variant)

Assigns the value of the given Qt variant to this D-Bus variant.

See also variant().

QVariant QDBusVariant.variant (self)

Returns this D-Bus variant as a QVariant object.

See also setVariant().

bool QDBusVariant.__eq__ (self, QDBusVariant v2)

bool QDBusVariant.__ne__ (self, QDBusVariant v2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativecomponent.html0000644000076500000240000004471412536324476022760 0ustar philstaff00000000000000 QDeclarativeComponent Class Reference
  Home · All Classes · Modules

QDeclarativeComponent Class Reference
[QtDeclarative module]

The QDeclarativeComponent class encapsulates a QML component definition. More...

Inherits QObject.

Types

  • enum Status { Null, Ready, Loading, Error }

Methods

Qt Signals


Detailed Description

The QDeclarativeComponent class encapsulates a QML component definition.

Components are reusable, encapsulated QML elements with well-defined interfaces. They are often defined in Component Files.

A QDeclarativeComponent instance can be created from a QML file. For example, if there is a main.qml file like this:

 import QtQuick 1.0

 Item {
     width: 200
     height: 200
 }

The following code loads this QML file as a component, creates an instance of this component using create(), and then queries the Item's width value:

 QDeclarativeEngine *engine = new QDeclarativeEngine;
 QDeclarativeComponent component(engine, QUrl.fromLocalFile("main.qml"));

 QObject *myObject = component.create();
 QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(myObject);
 int width = item->width();  // width = 200

Network Components

If the URL passed to QDeclarativeComponent is a network resource, or if the QML document references a network resource, the QDeclarativeComponent has to fetch the network data before it is able to create objects. In this case, the QDeclarativeComponent will have a Loading status. An application will have to wait until the component is Ready before calling QDeclarativeComponent.create().

The following example shows how to load a QML file from a network resource. After creating the QDeclarativeComponent, it tests whether the component is loading. If it is, it connects to the QDeclarativeComponent.statusChanged() signal and otherwise calls the continueLoading() method directly. Note that QDeclarativeComponent.isLoading() may be false for a network component if the component has been cached and is ready immediately.

 MyApplication.MyApplication()
 {
     // ...
     component = new QDeclarativeComponent(engine, QUrl("http://www.example.com/main.qml"));
     if (component->isLoading())
         QObject.connect(component, SIGNAL(statusChanged(QDeclarativeComponent.Status)),
                          this, SLOT(continueLoading()));
     else
         continueLoading();
 }

 void MyApplication.continueLoading()
 {
     if (component->isError()) {
         qWarning() << component->errors();
     } else {
         QObject *myObject = component->create();
     }
 }

Type Documentation

QDeclarativeComponent.Status

Specifies the loading status of the QDeclarativeComponent.

Constant Value Description
QDeclarativeComponent.Null 0 This QDeclarativeComponent has no data. Call loadUrl() or setData() to add QML content.
QDeclarativeComponent.Ready 1 This QDeclarativeComponent is ready and create() may be called.
QDeclarativeComponent.Loading 2 This QDeclarativeComponent is loading network data.
QDeclarativeComponent.Error 3 An error has occurred. Call errors() to retrieve a list of {QDeclarativeError}{errors}.

Method Documentation

QDeclarativeComponent.__init__ (self, QDeclarativeEngine, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Create a QDeclarativeComponent with no data and give it the specified engine and parent. Set the data with setData().

QDeclarativeComponent.__init__ (self, QDeclarativeEngine, QString fileName, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QDeclarativeComponent.__init__ (self, QDeclarativeEngine, QUrl url, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Create a QDeclarativeComponent from the given fileName and give it the specified parent and engine.

See also loadUrl().

QObject QDeclarativeComponent.beginCreate (self, QDeclarativeContext)

This method provides more advanced control over component instance creation. In general, programmers should use QDeclarativeComponent.create() to create a component.

Create an object instance from this component. Returns 0 if creation failed. context specifies the context within which to create the object instance.

When QDeclarativeComponent constructs an instance, it occurs in three steps:

  1. The object hierarchy is created, and constant values are assigned.
  2. Property bindings are evaluated for the the first time.
  3. If applicable, QDeclarativeParserStatus.componentComplete() is called on objects.

QDeclarativeComponent.beginCreate() differs from QDeclarativeComponent.create() in that it only performs step 1. QDeclarativeComponent.completeCreate() must be called to complete steps 2 and 3.

This breaking point is sometimes useful when using attached properties to communicate information to an instantiated component, as it allows their initial values to be configured before property bindings take effect.

QDeclarativeComponent.completeCreate (self)

This method provides more advanced control over component instance creation. In general, programmers should use QDeclarativeComponent.create() to create a component.

Complete a component creation begin with QDeclarativeComponent.beginCreate().

QObject QDeclarativeComponent.create (self, QDeclarativeContext context = None)

Create an object instance from this component. Returns 0 if creation failed. context specifies the context within which to create the object instance.

If context is 0 (the default), it will create the instance in the engine' s root context.

QDeclarativeContext QDeclarativeComponent.creationContext (self)

Returns the QDeclarativeContext the component was created in. This is only valid for components created directly from QML.

list-of-QDeclarativeError QDeclarativeComponent.errors (self)

Return the list of errors that occurred during the last compile or create operation. An empty list is returned if isError() is not set.

bool QDeclarativeComponent.isError (self)

Returns true if status() == QDeclarativeComponent.Error.

bool QDeclarativeComponent.isLoading (self)

Returns true if status() == QDeclarativeComponent.Loading.

bool QDeclarativeComponent.isNull (self)

Returns true if status() == QDeclarativeComponent.Null.

bool QDeclarativeComponent.isReady (self)

Returns true if status() == QDeclarativeComponent.Ready.

QDeclarativeComponent.loadUrl (self, QUrl url)

Load the QDeclarativeComponent from the provided url.

Ensure that the URL provided is full and correct, in particular, use QUrl.fromLocalFile() when loading a file from the local filesystem.

float QDeclarativeComponent.progress (self)

QDeclarativeComponent.setData (self, QByteArray, QUrl baseUrl)

Sets the QDeclarativeComponent to use the given QML data. If url is provided, it is used to set the component name and to provide a base path for items resolved by this component.

Status QDeclarativeComponent.status (self)

QUrl QDeclarativeComponent.url (self)


Qt Signal Documentation

void progressChanged (qreal)

This is the default overload of this signal.

Emitted whenever the component's loading progress changes. progress will be the current progress between 0.0 (nothing loaded) and 1.0 (finished).

void statusChanged (QDeclarativeComponent::Status)

This is the default overload of this signal.

Emitted whenever the component's status changes. status will be the new status.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativecontext.html0000644000076500000240000003622012536324476022433 0ustar philstaff00000000000000 QDeclarativeContext Class Reference
  Home · All Classes · Modules

QDeclarativeContext Class Reference
[
QtDeclarative module]

The QDeclarativeContext class defines a context within a QML engine. More...

Inherits QObject.

Methods


Detailed Description

The QDeclarativeContext class defines a context within a QML engine.

Contexts allow data to be exposed to the QML components instantiated by the QML engine.

Each QDeclarativeContext contains a set of properties, distinct from its QObject properties, that allow data to be explicitly bound to a context by name. The context properties are defined and updated by calling QDeclarativeContext.setContextProperty(). The following example shows a Qt model being bound to a context and then accessed from a QML file.

 QDeclarativeEngine engine;
 QStringListModel modelData;
 QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
 context->setContextProperty("myModel", &modelData);

 QDeclarativeComponent component(&engine);
 component.setData("import QtQuick 1.0\nListView { model: myModel }", QUrl());
 QObject *window = component.create(context);

Note it is the responsibility of the creator to delete any QDeclarativeContext it constructs. If the context object in the example is no longer needed when the window component instance is destroyed, the context must be destroyed explicitly. The simplest way to ensure this is to set window as the parent of context.

To simplify binding and maintaining larger data sets, a context object can be set on a QDeclarativeContext. All the properties of the context object are available by name in the context, as though they were all individually added through calls to QDeclarativeContext.setContextProperty(). Changes to the property's values are detected through the property's notify signal. Setting a context object is both faster and easier than manually adding and maintaing context property values.

The following example has the same effect as the previous one, but it uses a context object.

 class MyDataSet : ... {
     ...
     Q_PROPERTY(QAbstractItemModel *myModel READ model NOTIFY modelChanged)
     ...
 };

 MyDataSet myDataSet;
 QDeclarativeEngine engine;
 QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
 context->setContextObject(&myDataSet);

 QDeclarativeComponent component(&engine);
 component.setData("import QtQuick 1.0\nListView { model: myModel }", QUrl());
 component.create(context);

All properties added explicitly by QDeclarativeContext.setContextProperty() take precedence over the context object's properties.

The Context Hierarchy

Contexts form a hierarchy. The root of this hierarchy is the QML engine's root context. Child contexts inherit the context properties of their parents; if a child context sets a context property that already exists in its parent, the new context property overrides that of the parent.

The following example defines two contexts - context1 and context2. The second context overrides the "b" context property inherited from the first with a new value.

 QDeclarativeEngine engine;
 QDeclarativeContext *context1 = new QDeclarativeContext(engine.rootContext());
 QDeclarativeContext *context2 = new QDeclarativeContext(context1);

 context1->setContextProperty("a", 12);
 context1->setContextProperty("b", 12);

 context2->setContextProperty("b", 15);

While QML objects instantiated in a context are not strictly owned by that context, their bindings are. If a context is destroyed, the property bindings of outstanding QML objects will stop evaluating.

Warning: Setting the context object or adding new context properties after an object has been created in that context is an expensive operation (essentially forcing all bindings to reevaluate). Thus whenever possible you should complete "setup" of the context before using it to create any objects.


Method Documentation

QDeclarativeContext.__init__ (self, QDeclarativeEngine engine, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Create a new QDeclarativeContext as a child of engine's root context, and the QObject parent.

QDeclarativeContext.__init__ (self, QDeclarativeContext context, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Create a new QDeclarativeContext with the given parentContext, and the QObject parent.

QUrl QDeclarativeContext.baseUrl (self)

Returns the base url of the component, or the containing component if none is set.

See also setBaseUrl().

QObject QDeclarativeContext.contextObject (self)

Return the context object, or 0 if there is no context object.

See also setContextObject().

QVariant QDeclarativeContext.contextProperty (self, QString)

Returns the value of the name property for this context as a QVariant.

See also setContextProperty().

QDeclarativeEngine QDeclarativeContext.engine (self)

Return the context's QDeclarativeEngine, or 0 if the context has no QDeclarativeEngine or the QDeclarativeEngine was destroyed.

bool QDeclarativeContext.isValid (self)

Returns whether the context is valid.

To be valid, a context must have a engine, and it's contextObject(), if any, must not have been deleted.

QDeclarativeContext QDeclarativeContext.parentContext (self)

Return the context's parent QDeclarativeContext, or 0 if this context has no parent or if the parent has been destroyed.

QUrl QDeclarativeContext.resolvedUrl (self, QUrl)

Resolves the URL src relative to the URL of the containing component.

See also QDeclarativeEngine.baseUrl() and setBaseUrl().

QDeclarativeContext.setBaseUrl (self, QUrl)

Explicitly sets the url resolvedUrl() will use for relative references to baseUrl.

Calling this function will override the url of the containing component used by default.

See also baseUrl() and resolvedUrl().

QDeclarativeContext.setContextObject (self, QObject)

Set the context object.

See also contextObject().

QDeclarativeContext.setContextProperty (self, QString, QObject)

Set the value of the name property on this context.

QDeclarativeContext does not take ownership of value.

See also contextProperty().

QDeclarativeContext.setContextProperty (self, QString, QVariant)

Set a the value of the name property on this context.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativeengine.html0000644000076500000240000006001512536324476022213 0ustar philstaff00000000000000 QDeclarativeEngine Class Reference
  Home · All Classes · Modules

QDeclarativeEngine Class Reference
[
QtDeclarative module]

The QDeclarativeEngine class provides an environment for instantiating QML components. More...

Inherits QObject.

Types

Methods

Static Methods

Qt Signals


Detailed Description

The QDeclarativeEngine class provides an environment for instantiating QML components.

Each QML component is instantiated in a QDeclarativeContext. QDeclarativeContext's are essential for passing data to QML components. In QML, contexts are arranged hierarchically and this hierarchy is managed by the QDeclarativeEngine.

Prior to creating any QML components, an application must have created a QDeclarativeEngine to gain access to a QML context. The following example shows how to create a simple Text item.

 QDeclarativeEngine engine;
 QDeclarativeComponent component(&engine);
 component.setData("import QtQuick 1.0\nText { text: \"Hello world!\" }", QUrl());
 QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(component.create());

 //add item to view, etc
 ...

In this case, the Text item will be created in the engine's root context.


Type Documentation

QDeclarativeEngine.ObjectOwnership

Ownership controls whether or not QML automatically destroys the QObject when the object is garbage collected by the JavaScript engine. The two ownership options are:

Constant Value Description
QDeclarativeEngine.CppOwnership 0 The object is owned by C++ code, and will never be deleted by QML. The JavaScript destroy() method cannot be used on objects with CppOwnership. This option is similar to QScriptEngine.QtOwnership.
QDeclarativeEngine.JavaScriptOwnership 1 The object is owned by JavaScript. When the object is returned to QML as the return value of a method call or property access, QML will delete the object if there are no remaining JavaScript references to it and it has no QObject.parent(). This option is similar to QScriptEngine.ScriptOwnership.

Generally an application doesn't need to set an object's ownership explicitly. QML uses a heuristic to set the default object ownership. By default, an object that is created by QML has JavaScriptOwnership. The exception to this are the root objects created by calling QDeclarativeCompnent.create() or QDeclarativeComponent.beginCreate() which have CppOwnership by default. The ownership of these root-level objects is considered to have been transferred to the C++ caller.

Objects not-created by QML have CppOwnership by default. The exception to this is objects returned from a C++ method call. The ownership of these objects is passed to JavaScript.

Calling setObjectOwnership() overrides the default ownership heuristic used by QML.


Method Documentation

QDeclarativeEngine.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Create a new QDeclarativeEngine with the given parent.

QDeclarativeEngine.addImageProvider (self, QString id, QDeclarativeImageProvider)

Sets the provider to use for images requested via the image: url scheme, with host providerId. The QDeclarativeEngine takes ownership of provider.

Image providers enable support for pixmap and threaded image requests. See the QDeclarativeImageProvider documentation for details on implementing and using image providers.

All required image providers should be added to the engine before any QML sources files are loaded.

See also removeImageProvider().

QDeclarativeEngine.addImportPath (self, QString dir)

Adds path as a directory where the engine searches for installed modules in a URL-based directory structure. The path may be a local filesystem directory or a URL.

The newly added path will be first in the importPathList().

See also setImportPathList() and QML Modules.

QDeclarativeEngine.addPluginPath (self, QString dir)

Adds path as a directory where the engine searches for native plugins for imported modules (referenced in the qmldir file).

By default, the list contains only ., i.e. the engine searches in the directory of the qmldir file itself.

The newly added path will be first in the pluginPathList().

See also setPluginPathList().

QUrl QDeclarativeEngine.baseUrl (self)

Return the base URL for this engine. The base URL is only used to resolve components when a relative URL is passed to the QDeclarativeComponent constructor.

If a base URL has not been explicitly set, this method returns the application's current working directory.

See also setBaseUrl().

QDeclarativeEngine.clearComponentCache (self)

Clears the engine's internal component cache.

Normally the QDeclarativeEngine caches components loaded from qml files. This method clears this cache and forces the component to be reloaded.

QDeclarativeContext QDeclarativeEngine.contextForObject (QObject)

Returns the QDeclarativeContext for the object, or 0 if no context has been set.

When the QDeclarativeEngine instantiates a QObject, the context is set automatically.

See also setContextForObject().

QDeclarativeImageProvider QDeclarativeEngine.imageProvider (self, QString id)

Returns the QDeclarativeImageProvider set for providerId.

QStringList QDeclarativeEngine.importPathList (self)

Returns the list of directories where the engine searches for installed modules in a URL-based directory structure.

For example, if /opt/MyApp/lib/imports is in the path, then QML that imports com.mycompany.Feature will cause the QDeclarativeEngine to look in /opt/MyApp/lib/imports/com/mycompany/Feature/ for the components provided by that module. A qmldir file is required for defining the type version mapping and possibly declarative extensions plugins.

By default, the list contains the directory of the application executable, paths specified in the QML_IMPORT_PATH environment variable, and the builtin ImportsPath from QLibraryInfo.

See also addImportPath() and setImportPathList().

(bool, QString errorString) QDeclarativeEngine.importPlugin (self, QString filePath, QString uri)

Imports the plugin named filePath with the uri provided. Returns true if the plugin was successfully imported; otherwise returns false.

On failure and if non-null, *errorString will be set to a message describing the failure.

The plugin has to be a Qt plugin which implements the QDeclarativeExtensionPlugin interface.

QNetworkAccessManager QDeclarativeEngine.networkAccessManager (self)

Returns a common QNetworkAccessManager which can be used by any QML element instantiated by this engine.

If a QDeclarativeNetworkAccessManagerFactory has been set and a QNetworkAccessManager has not yet been created, the QDeclarativeNetworkAccessManagerFactory will be used to create the QNetworkAccessManager; otherwise the returned QNetworkAccessManager will have no proxy or cache set.

See also setNetworkAccessManagerFactory().

QDeclarativeNetworkAccessManagerFactory QDeclarativeEngine.networkAccessManagerFactory (self)

Returns the current QDeclarativeNetworkAccessManagerFactory.

See also setNetworkAccessManagerFactory().

ObjectOwnership QDeclarativeEngine.objectOwnership (QObject)

Returns the ownership of object.

See also setObjectOwnership().

QString QDeclarativeEngine.offlineStoragePath (self)

bool QDeclarativeEngine.outputWarningsToStandardError (self)

Returns true if warning messages will be output to stderr in addition to being emitted by the warnings() signal, otherwise false.

The default value is true.

See also setOutputWarningsToStandardError().

QStringList QDeclarativeEngine.pluginPathList (self)

Returns the list of directories where the engine searches for native plugins for imported modules (referenced in the qmldir file).

By default, the list contains only ., i.e. the engine searches in the directory of the qmldir file itself.

See also addPluginPath() and setPluginPathList().

QDeclarativeEngine.removeImageProvider (self, QString id)

Removes the QDeclarativeImageProvider for providerId.

Returns the provider if it was found; otherwise returns 0.

See also addImageProvider().

QDeclarativeContext QDeclarativeEngine.rootContext (self)

Returns the engine's root context.

The root context is automatically created by the QDeclarativeEngine. Data that should be available to all QML component instances instantiated by the engine should be put in the root context.

Additional data that should only be available to a subset of component instances should be added to sub-contexts parented to the root context.

QDeclarativeEngine.setBaseUrl (self, QUrl)

Set the base URL for this engine to url.

See also baseUrl().

QDeclarativeEngine.setContextForObject (QObject, QDeclarativeContext)

Sets the QDeclarativeContext for the object to context. If the object already has a context, a warning is output, but the context is not changed.

When the QDeclarativeEngine instantiates a QObject, the context is set automatically.

See also contextForObject().

QDeclarativeEngine.setImportPathList (self, QStringList paths)

Sets paths as the list of directories where the engine searches for installed modules in a URL-based directory structure.

By default, the list contains the directory of the application executable, paths specified in the QML_IMPORT_PATH environment variable, and the builtin ImportsPath from QLibraryInfo.

See also importPathList() and addImportPath().

QDeclarativeEngine.setNetworkAccessManagerFactory (self, QDeclarativeNetworkAccessManagerFactory)

Sets the factory to use for creating QNetworkAccessManager(s).

QNetworkAccessManager is used for all network access by QML. By implementing a factory it is possible to create custom QNetworkAccessManager with specialized caching, proxy and cookie support.

The factory must be set before executing the engine.

See also networkAccessManagerFactory().

QDeclarativeEngine.setObjectOwnership (QObject, ObjectOwnership)

Sets the ownership of object.

See also objectOwnership().

QDeclarativeEngine.setOfflineStoragePath (self, QString dir)

QDeclarativeEngine.setOutputWarningsToStandardError (self, bool)

Set whether warning messages will be output to stderr to enabled.

If enabled is true, any warning messages generated by QML will be output to stderr and emitted by the warnings() signal. If enabled is false, on the warnings() signal will be emitted. This allows applications to handle warning output themselves.

The default value is true.

See also outputWarningsToStandardError().

QDeclarativeEngine.setPluginPathList (self, QStringList paths)

Sets the list of directories where the engine searches for native plugins for imported modules (referenced in the qmldir file) to paths.

By default, the list contains only ., i.e. the engine searches in the directory of the qmldir file itself.

See also pluginPathList() and addPluginPath().


Qt Signal Documentation

void quit ()

This is the default overload of this signal.

This signal is emitted when the QML loaded by the engine would like to quit.

void warnings (const QList<QDeclarativeError>&)

This is the default overload of this signal.

This signal is emitted when warnings messages are generated by QML.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativeerror.html0000644000076500000240000001442212536324476022100 0ustar philstaff00000000000000 QDeclarativeError Class Reference
  Home · All Classes · Modules

QDeclarativeError Class Reference
[
QtDeclarative module]

The QDeclarativeError class encapsulates a QML error. More...

Methods


Detailed Description

The QDeclarativeError class encapsulates a QML error.

QDeclarativeError includes a textual description of the error, as well as location information (the file, line, and column). The toString() method creates a single-line, human-readable string containing all of this information, for example:

 file:///home/user/test.qml:7:8: Invalid property assignment: double expected

You can use qDebug() or qWarning() to output errors to the console. This method will attempt to open the file indicated by the error and include additional contextual information.

 file:///home/user/test.qml:7:8: Invalid property assignment: double expected
         y: "hello"
            ^

Method Documentation

QDeclarativeError.__init__ (self)

Creates an empty error object.

QDeclarativeError.__init__ (self, QDeclarativeError)

Creates a copy of other.

int QDeclarativeError.column (self)

Returns the error column number.

See also setColumn().

QString QDeclarativeError.description (self)

Returns the error description.

See also setDescription().

bool QDeclarativeError.isValid (self)

Returns true if this error is valid, otherwise false.

int QDeclarativeError.line (self)

Returns the error line number.

See also setLine().

QDeclarativeError.setColumn (self, int)

Sets the error column number.

See also column().

QDeclarativeError.setDescription (self, QString)

Sets the error description.

See also description().

QDeclarativeError.setLine (self, int)

Sets the error line number.

See also line().

QDeclarativeError.setUrl (self, QUrl)

Sets the url for the file that caused this error.

See also url().

QString QDeclarativeError.toString (self)

Returns the error as a human readable string.

QUrl QDeclarativeError.url (self)

Returns the url for the file that caused this error.

See also setUrl().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativeexpression.html0000644000076500000240000003240612536324476023150 0ustar philstaff00000000000000 QDeclarativeExpression Class Reference
  Home · All Classes · Modules

QDeclarativeExpression Class Reference
[QtDeclarative module]

The QDeclarativeExpression class evaluates JavaScript in a QML context. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QDeclarativeExpression class evaluates JavaScript in a QML context.

For example, given a file main.qml like this:

 import QtQuick 1.0

 Item {
     width: 200; height: 200
 }

The following code evaluates a JavaScript expression in the context of the above QML:

 QDeclarativeEngine *engine = new QDeclarativeEngine;
 QDeclarativeComponent component(engine, QUrl.fromLocalFile("main.qml"));

 QObject *myObject = component.create();
 QDeclarativeExpression *expr = new QDeclarativeExpression(engine->rootContext(), myObject, "width * 2");
 int result = expr->evaluate().toInt();  // result = 400

Method Documentation

QDeclarativeExpression.__init__ (self)

Create an invalid QDeclarativeExpression.

As the expression will not have an associated QDeclarativeContext, this will be a null expression object and its value will always be an invalid QVariant.

QDeclarativeExpression.__init__ (self, QDeclarativeContext, QObject, QString, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Create a QDeclarativeExpression object that is a child of parent.

The expression JavaScript will be executed in the ctxt QDeclarativeContext. If specified, the scope object's properties will also be in scope during the expression's execution.

QDeclarativeExpression.clearError (self)

Clear any expression errors. Calls to hasError() following this will return false.

See also hasError() and error().

QDeclarativeContext QDeclarativeExpression.context (self)

Returns the QDeclarativeContext this expression is associated with, or 0 if there is no association or the QDeclarativeContext has been destroyed.

QDeclarativeEngine QDeclarativeExpression.engine (self)

Returns the QDeclarativeEngine this expression is associated with, or 0 if there is no association or the QDeclarativeEngine has been destroyed.

QDeclarativeError QDeclarativeExpression.error (self)

Return any error from the last call to evaluate(). If there was no error, this returns an invalid QDeclarativeError instance.

See also hasError() and clearError().

(QVariant, bool valueIsUndefined) QDeclarativeExpression.evaluate (self)

Evaulates the expression, returning the result of the evaluation, or an invalid QVariant if the expression is invalid or has an error.

valueIsUndefined is set to true if the expression resulted in an undefined value.

See also hasError() and error().

QString QDeclarativeExpression.expression (self)

Returns the expression string.

See also setExpression().

bool QDeclarativeExpression.hasError (self)

Returns true if the last call to evaluate() resulted in an error, otherwise false.

See also error() and clearError().

int QDeclarativeExpression.lineNumber (self)

Returns the source file line number for this expression. The source location must have been previously set by calling setSourceLocation().

bool QDeclarativeExpression.notifyOnValueChanged (self)

Returns true if the valueChanged() signal is emitted when the expression's evaluated value changes.

See also setNotifyOnValueChanged().

QObject QDeclarativeExpression.scopeObject (self)

Returns the expression's scope object, if provided, otherwise 0.

In addition to data provided by the expression's QDeclarativeContext, the scope object's properties are also in scope during the expression's evaluation.

QDeclarativeExpression.setExpression (self, QString)

Set the expression to expression.

See also expression().

QDeclarativeExpression.setNotifyOnValueChanged (self, bool)

Sets whether the valueChanged() signal is emitted when the expression's evaluated value changes.

If notifyOnChange is true, the QDeclarativeExpression will monitor properties involved in the expression's evaluation, and emit QDeclarativeExpression.valueChanged() if they have changed. This allows an application to ensure that any value associated with the result of the expression remains up to date.

If notifyOnChange is false (default), the QDeclarativeExpression will not montitor properties involved in the expression's evaluation, and QDeclarativeExpression.valueChanged() will never be emitted. This is more efficient if an application wants a "one off" evaluation of the expression.

See also notifyOnValueChanged().

QDeclarativeExpression.setSourceLocation (self, QString fileName, int line)

Set the location of this expression to line of url. This information is used by the script engine.

QString QDeclarativeExpression.sourceFile (self)

Returns the source file URL for this expression. The source location must have been previously set by calling setSourceLocation().


Qt Signal Documentation

void valueChanged ()

This is the default overload of this signal.

Emitted each time the expression value changes from the last time it was evaluated. The expression must have been evaluated at least once (by calling QDeclarativeExpression.evaluate()) before this signal will be emitted.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativeextensionplugin.html0000644000076500000240000002242312536324476024202 0ustar philstaff00000000000000 QDeclarativeExtensionPlugin Class Reference
  Home · All Classes · Modules

QDeclarativeExtensionPlugin Class Reference
[QtDeclarative module]

The QDeclarativeExtensionPlugin class provides an abstract base for custom QML extension plugins. More...

Inherits QObject.

Methods


Detailed Description

The QDeclarativeExtensionPlugin class provides an abstract base for custom QML extension plugins.

QDeclarativeExtensionPlugin is a plugin interface that makes it possible to create QML extensions that can be loaded dynamically into QML applications. These extensions allow custom QML types to be made available to the QML engine.

To write a QML extension plugin:

QML extension plugins can be used to provide either application-specific or library-like plugins. Library plugins should limit themselves to registering types, as any manipulation of the engine's root context may cause conflicts or other issues in the library user's code.

An example

Suppose there is a new TimeModel C++ class that should be made available as a new QML element. It provides the current time through hour and minute properties, like this:

 class TimeModel : public QObject
 {
     Q_OBJECT
     Q_PROPERTY(int hour READ hour NOTIFY timeChanged)
     Q_PROPERTY(int minute READ minute NOTIFY timeChanged)
     ...

To make this class available as a QML type, create a plugin that registers this type with a specific module using qmlRegisterType(). For this example the plugin module will be named com.nokia.TimeExample (as defined in the project file further below).

 class QExampleQmlPlugin : public QDeclarativeExtensionPlugin
 {
     Q_OBJECT
 public:
     void registerTypes(const char *uri)
     {
         Q_ASSERT(uri == QLatin1String("org.qtproject.TimeExample"));
         qmlRegisterType<TimeModel>(uri, 1, 0, "Time");
     }
 };

 Q_EXPORT_PLUGIN2(qmlqtimeexampleplugin, QExampleQmlPlugin);

This registers the TimeModel class with the 1.0 version of this plugin library, as a QML type called Time. The Q_ASSERT statement ensures the module is imported correctly by any QML components that use this plugin.

The project file defines the project as a plugin library and specifies it should be built into the com/nokia/TimeExample directory:

 TEMPLATE = lib
 CONFIG += qt plugin
 QT += declarative

 DESTDIR = com/nokia/TimeExample
 TARGET = qmlqtimeexampleplugin
 ...

Finally, a qmldir file is required in the com/nokia/TimeExample directory that describes the plugin. This directory includes a Clock.qml file that should be bundled with the plugin, so it needs to be specified in the qmldir file:


Once the project is built and installed, the new Time element can be used by any QML component that imports the com.nokia.TimeExample module:

 import org.qtproject.TimeExample 1.0 // import types from the plugin

 Clock { // this class is defined in QML (org/qtproject/TimeExample/Clock.qml)

     Time { // this class is defined in C++ (plugin.cpp)
         id: time
     }

     hours: time.hour
     minutes: time.minute
 }

The full source code is available in the plugins example.

The Tutorial: Writing QML extensions with C++ also contains a chapter on creating QML plugins.


Method Documentation

QDeclarativeExtensionPlugin.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QML extension plugin with the given parent.

Note that this constructor is invoked automatically by the Q_EXPORT_PLUGIN2() macro, so there is no need for calling it explicitly.

QDeclarativeExtensionPlugin.initializeEngine (self, QDeclarativeEngine engine, str uri)

Initializes the extension from the uri using the engine. Here an application plugin might, for example, expose some data or objects to QML, as context properties on the engine's root context.

QDeclarativeExtensionPlugin.registerTypes (self, str uri)

This method is abstract and should be reimplemented in any sub-class.

Registers the QML types in the given uri. Subclasses should implement this to call qmlRegisterType() for all types which are provided by the extension plugin.

The uri is an identifier for the plugin generated by the QML engine based on the name and path of the extension's plugin library.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativeimageprovider.html0000644000076500000240000003720312536324476023606 0ustar philstaff00000000000000 QDeclarativeImageProvider Class Reference
  Home · All Classes · Modules

QDeclarativeImageProvider Class Reference
[QtDeclarative module]

The QDeclarativeImageProvider class provides an interface for supporting pixmaps and threaded image requests in QML. More...

Types

Methods

  • __init__ (self, ImageType type)
  • __init__ (self, QDeclarativeImageProvider)
  • ImageType imageType (self)
  • QImage requestImage (self, QString id, QSize size, QSize requestedSize)
  • QPixmap requestPixmap (self, QString id, QSize size, QSize requestedSize)

Detailed Description

The QDeclarativeImageProvider class provides an interface for supporting pixmaps and threaded image requests in QML.

QDeclarativeImageProvider is used to provide advanced image loading features in QML applications. It allows images in QML to be:

To specify that an image should be loaded by an image provider, use the "image:" scheme for the URL source of the image, followed by the identifiers of the image provider and the requested image. For example:

 Image { source: "image://myimageprovider/image.png" }

This specifies that the image should be loaded by the image provider named "myimageprovider", and the image to be loaded is named "image.png". The QML engine invokes the appropriate image provider according to the providers that have been registered through QDeclarativeEngine.addImageProvider().

Note that the identifiers are case-insensitive, but the rest of the URL will be passed on with preserved case. For example, the below snippet would still specify that the image is loaded by the image provider named "myimageprovider", but it would request a different image than the above snippet ("Image.png" instead of "image.png").

 Image { source: "image://MyImageProvider/Image.png" }

If you want the rest of the URL to be case insensitive, you will have to take care of that yourself inside your image provider.

An example

Here are two images. Their source values indicate they should be loaded by an image provider named "colors", and the images to be loaded are "yellow" and "red", respectively:

 Column {
     Image { source: "image://colors/yellow" }
     Image { source: "image://colors/red" }
 }

When these images are loaded by QML, it looks for a matching image provider and calls its requestImage() or requestPixmap() method (depending on its imageType()) to load the image. The method is called with the id parameter set to "yellow" for the first image, and "red" for the second.

Here is an image provider implementation that can load the images requested by the above QML. This implementation dynamically generates QPixmap images that are filled with the requested color:

 class ColorImageProvider : public QDeclarativeImageProvider
 {
 public:
     ColorImageProvider()
         : QDeclarativeImageProvider(QDeclarativeImageProvider.Pixmap)
     {
     }

     QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
     {
         int width = 100;
         int height = 50;

         if (size)
             *size = QSize(width, height);
         QPixmap pixmap(requestedSize.width() > 0 ? requestedSize.width() : width,
                        requestedSize.height() > 0 ? requestedSize.height() : height);
         pixmap.fill(QColor(id).rgba());

         return pixmap;
     }
 };

To make this provider accessible to QML, it is registered with the QML engine with a "colors" identifier:

 int main(int argc, char *argv[])
 {
     ...

     QDeclarativeEngine engine;
     engine->addImageProvider(QLatin1String("colors"), new ColorPixmapProvider);

     ...
 }

Now the images can be successfully loaded in QML:

A complete example is available in Qt's examples/declarative/cppextensions/imageprovider directory. Note the example registers the provider via a plugin instead of registering it in the application main() function as shown above.

Asynchronous image loading

Image providers that support QImage loading automatically include support for asychronous loading of images. To enable asynchronous loading for an image source, set the asynchronous property to true for the relevant Image, BorderImage or AnimatedImage object. When this is enabled, the image request to the provider is run in a low priority thread, allowing image loading to be executed in the background, and reducing the performance impact on the user interface.

Asynchronous loading is not supported for image providers that provide QPixmap rather than QImage values, as pixmaps can only be created in the main thread. In this case, if asynchronous is set to true, the value is ignored and the image is loaded synchronously.

Image caching

Images returned by a QDeclarativeImageProvider are automatically cached, similar to any image loaded by the QML engine. When an image with a "image://" prefix is loaded from cache, requestImage() and requestPixmap() will not be called for the relevant image provider. If an image should always be fetched from the image provider, and should not be cached at all, set the cache property to false for the relevant Image, BorderImage or AnimatedImage object.


Type Documentation

QDeclarativeImageProvider.ImageType

Defines the type of image supported by this image provider.

Constant Value Description
QDeclarativeImageProvider.Image 0 The Image Provider provides QImage images. The requestImage() method will be called for all image requests.
QDeclarativeImageProvider.Pixmap 1 The Image Provider provides QPixmap images. The requestPixmap() method will be called for all image requests.

Method Documentation

QDeclarativeImageProvider.__init__ (self, ImageType type)

Creates an image provider that will provide images of the given type.

QDeclarativeImageProvider.__init__ (self, QDeclarativeImageProvider)

ImageType QDeclarativeImageProvider.imageType (self)

Returns the image type supported by this provider.

QImage QDeclarativeImageProvider.requestImage (self, QString id, QSize size, QSize requestedSize)

Implement this method to return the image with id. The default implementation returns an empty image.

The id is the requested image source, with the "image:" scheme and provider identifier removed. For example, if the image source was "image://myprovider/icons/home", the given id would be "icons/home".

The requestedSize corresponds to the Image.sourceSize requested by an Image element. If requestedSize is a valid size, the image returned should be of that size.

In all cases, size must be set to the original size of the image. This is used to set the width and height of the relevant Image if these values have not been set explicitly.

Note: this method may be called by multiple threads, so ensure the implementation of this method is reentrant.

QPixmap QDeclarativeImageProvider.requestPixmap (self, QString id, QSize size, QSize requestedSize)

Implement this method to return the pixmap with id. The default implementation returns an empty pixmap.

The id is the requested image source, with the "image:" scheme and provider identifier removed. For example, if the image source was "image://myprovider/icons/home", the given id would be "icons/home".

The requestedSize corresponds to the Image.sourceSize requested by an Image element. If requestedSize is a valid size, the image returned should be of that size.

In all cases, size must be set to the original size of the image. This is used to set the width and height of the relevant Image if these values have not been set explicitly.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativeitem.html0000644000076500000240000003771112536324476021713 0ustar philstaff00000000000000 QDeclarativeItem Class Reference
  Home · All Classes · Modules

QDeclarativeItem Class Reference
[QtDeclarative module]

The QDeclarativeItem class provides the most basic of all visual items in QML. More...

Inherits QGraphicsObject and QDeclarativeParserStatus.

Types

Methods


Detailed Description

The QDeclarativeItem class provides the most basic of all visual items in QML.

All visual items in Qt Declarative inherit from QDeclarativeItem. Although QDeclarativeItem has no visual appearance, it defines all the properties that are common across visual items - such as the x and y position, the width and height, anchoring and key handling.

You can subclass QDeclarativeItem to provide your own custom visual item that inherits these features. Note that, because it does not draw anything, QDeclarativeItem sets the QGraphicsItem.ItemHasNoContents flag. If you subclass QDeclarativeItem to create a visual item, you will need to unset this flag.


Type Documentation

QDeclarativeItem.TransformOrigin

Controls the point about which simple transforms like scale apply.

Constant Value Description
QDeclarativeItem.TopLeft 0 The top-left corner of the item.
QDeclarativeItem.Top 1 The center point of the top of the item.
QDeclarativeItem.TopRight 2 The top-right corner of the item.
QDeclarativeItem.Left 3 The left most point of the vertical middle.
QDeclarativeItem.Center 4 The center of the item.
QDeclarativeItem.Right 5 The right most point of the vertical middle.
QDeclarativeItem.BottomLeft 6 The bottom-left corner of the item.
QDeclarativeItem.Bottom 7 The center point of the bottom of the item.
QDeclarativeItem.BottomRight 8 The bottom-right corner of the item.

Method Documentation

QDeclarativeItem.__init__ (self, QDeclarativeItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QDeclarativeItem with the given parent.

float QDeclarativeItem.baselineOffset (self)

QRectF QDeclarativeItem.boundingRect (self)

QRectF QDeclarativeItem.childrenRect (self)

QDeclarativeItem.classBegin (self)

bool QDeclarativeItem.clip (self)

QDeclarativeItem.componentComplete (self)

bool QDeclarativeItem.event (self, QEvent)

QDeclarativeItem.geometryChanged (self, QRectF newGeometry, QRectF oldGeometry)

This function is called to handle this item's changes in geometry from oldGeometry to newGeometry. If the two geometries are the same, it doesn't do anything.

bool QDeclarativeItem.hasFocus (self)

bool QDeclarativeItem.heightValid (self)

Returns whether the height property has been set explicitly.

float QDeclarativeItem.implicitHeight (self)

float QDeclarativeItem.implicitWidth (self)

QDeclarativeItem.inputMethodEvent (self, QInputMethodEvent)

QVariant QDeclarativeItem.inputMethodQuery (self, Qt.InputMethodQuery query)

bool QDeclarativeItem.isComponentComplete (self)

Returns true if construction of the QML component is complete; otherwise returns false.

It is often desirable to delay some processing until the component is completed.

See also componentComplete().

QVariant QDeclarativeItem.itemChange (self, QGraphicsItem.GraphicsItemChange, QVariant)

bool QDeclarativeItem.keepMouseGrab (self)

Returns a value indicating whether mouse input should remain with this item exclusively.

See also setKeepMouseGrab().

QDeclarativeItem.keyPressEvent (self, QKeyEvent event)

QDeclarativeItem.keyReleaseEvent (self, QKeyEvent event)

QDeclarativeItem.paint (self, QPainter, QStyleOptionGraphicsItem, QWidget)

QDeclarativeItem QDeclarativeItem.parentItem (self)

bool QDeclarativeItem.sceneEvent (self, QEvent)

QDeclarativeItem.setBaselineOffset (self, float)

QDeclarativeItem.setClip (self, bool)

QDeclarativeItem.setHeight (self, float)

QDeclarativeItem.setImplicitHeight (self, float)

Sets the implied height of the item to h. This is the height implied by other properties that determine the content.

See also implicitHeight().

QDeclarativeItem.setImplicitWidth (self, float)

Sets the implied width of the item to w. This is the width implied by other properties that determine the content.

See also implicitWidth().

QDeclarativeItem.setKeepMouseGrab (self, bool)

The flag indicating whether the mouse should remain with this item is set to keep.

This is useful for items that wish to grab and keep mouse interaction following a predefined gesture. For example, an item that is interested in horizontal mouse movement may set keepMouseGrab to true once a threshold has been exceeded. Once keepMouseGrab has been set to true, filtering items will not react to mouse events.

If the item does not indicate that it wishes to retain mouse grab, a filtering item may steal the grab. For example, Flickable may attempt to steal a mouse grab if it detects that the user has begun to move the viewport.

See also keepMouseGrab().

QDeclarativeItem.setParentItem (self, QDeclarativeItem parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QDeclarativeItem.setSmooth (self, bool)

QDeclarativeItem.setTransformOrigin (self, TransformOrigin)

Set the transform origin.

See also transformOrigin().

QDeclarativeItem.setWidth (self, float)

bool QDeclarativeItem.smooth (self)

TransformOrigin QDeclarativeItem.transformOrigin (self)

Returns the current transform origin.

See also setTransformOrigin().

bool QDeclarativeItem.widthValid (self)

Returns whether the width property has been set explicitly.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativelistreference.html0000644000076500000240000002373512536324476023610 0ustar philstaff00000000000000 QDeclarativeListReference Class Reference
  Home · All Classes · Modules

QDeclarativeListReference Class Reference
[
QtDeclarative module]

The QDeclarativeListReference class allows the manipulation of QDeclarativeListProperty properties. More...

Methods


Detailed Description

The QDeclarativeListReference class allows the manipulation of QDeclarativeListProperty properties.

QDeclarativeListReference allows C++ programs to read from, and assign values to a QML list property in a simple and type safe way. A QDeclarativeListReference can be created by passing an object and property name or through a QDeclarativeProperty instance. These two are equivalant:

 QDeclarativeListReference ref1(object, "children");

 QDeclarativeProperty ref2(object, "children");
 QDeclarativeListReference ref2 = qvariant_cast<QDeclarativeListReference>(ref2.read());

Not all QML list properties support all operations. A set of methods, canAppend(), canAt(), canClear() and canCount() allow programs to query whether an operation is supported on a given property.

QML list properties are typesafe. Only QObject's that derive from the correct base class can be assigned to the list. The listElementType() method can be used to query the QMetaObject of the QObject type supported. Attempting to add objects of the incorrect type to a list property will fail.

Like with normal lists, when accessing a list element by index, it is the callers responsibility to ensure that it does not request an out of range element using the count() method before calling at().


Method Documentation

QDeclarativeListReference.__init__ (self)

Constructs an invalid instance.

QDeclarativeListReference.__init__ (self, QObject, str property, QDeclarativeEngine engine = None)

Constructs a QDeclarativeListReference for object's property. If property is not a list property, an invalid QDeclarativeListReference is created. If object is destroyed after the reference is constructed, it will automatically become invalid. That is, it is safe to hold QDeclarativeListReference instances even after object is deleted.

Passing engine is required to access some QML created list properties. If in doubt, and an engine is available, pass it.

QDeclarativeListReference.__init__ (self, QDeclarativeListReference)

bool QDeclarativeListReference.append (self, QObject)

Appends object to the list. Returns true if the operation succeeded, otherwise false.

See also canAppend().

QObject QDeclarativeListReference.at (self, int)

Returns the list element at index, or 0 if the operation failed.

See also canAt().

bool QDeclarativeListReference.canAppend (self)

Returns true if the list property can be appended to, otherwise false. Returns false if the reference is invalid.

See also append().

bool QDeclarativeListReference.canAt (self)

Returns true if the list property can queried by index, otherwise false. Returns false if the reference is invalid.

See also at().

bool QDeclarativeListReference.canClear (self)

Returns true if the list property can be cleared, otherwise false. Returns false if the reference is invalid.

See also clear().

bool QDeclarativeListReference.canCount (self)

Returns true if the list property can be queried for its element count, otherwise false. Returns false if the reference is invalid.

See also count().

bool QDeclarativeListReference.clear (self)

Clears the list. Returns true if the operation succeeded, otherwise false.

See also canClear().

int QDeclarativeListReference.count (self)

Returns the number of objects in the list, or 0 if the operation failed.

bool QDeclarativeListReference.isValid (self)

Returns true if the instance refers to a valid list property, otherwise false.

QMetaObject QDeclarativeListReference.listElementType (self)

Returns the QMetaObject for the elements stored in the list property. Returns 0 if the reference is invalid.

The QMetaObject can be used ahead of time to determine whether a given instance can be added to a list.

QObject QDeclarativeListReference.object (self)

Returns the list property's object. Returns 0 if the reference is invalid.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativenetworkaccessmanagerfactory.html0000644000076500000240000001341512536324476026546 0ustar philstaff00000000000000 QDeclarativeNetworkAccessManagerFactory Class Reference
  Home · All Classes · Modules

QDeclarativeNetworkAccessManagerFactory Class Reference
[QtDeclarative module]

The QDeclarativeNetworkAccessManagerFactory class creates QNetworkAccessManager instances for a QML engine. More...

Methods

  • __init__ (self)
  • __init__ (self, QDeclarativeNetworkAccessManagerFactory)
  • QNetworkAccessManager create (self, QObject parent)

Detailed Description

The QDeclarativeNetworkAccessManagerFactory class creates QNetworkAccessManager instances for a QML engine.

A QML engine uses QNetworkAccessManager for all network access. By implementing a factory, it is possible to provide the QML engine with custom QNetworkAccessManager instances with specialized caching, proxy and cookies support.

To implement a factory, subclass QDeclarativeNetworkAccessManagerFactory and implement the virtual create() method, then assign it to the relevant QML engine using QDeclarativeEngine.setNetworkAccessManagerFactory().

Note the QML engine may create QNetworkAccessManager instances from multiple threads. Because of this, the implementation of the create() method must be reentrant. In addition, the developer should be careful if the signals of the object to be returned from create() are connected to the slots of an object that may be created in a different thread:

For more information about signals and threads, see Threads and QObjects and Signals and Slots Across Threads.


Method Documentation

QDeclarativeNetworkAccessManagerFactory.__init__ (self)

QDeclarativeNetworkAccessManagerFactory.__init__ (self, QDeclarativeNetworkAccessManagerFactory)

QNetworkAccessManager QDeclarativeNetworkAccessManagerFactory.create (self, QObject parent)

This method is abstract and should be reimplemented in any sub-class.

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates and returns a network access manager with the specified parent. This method must return a new QNetworkAccessManager instance each time it is called.

Note: this method may be called by multiple threads, so ensure the implementation of this method is reentrant.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativeparserstatus.html0000644000076500000240000001173612536324476023514 0ustar philstaff00000000000000 QDeclarativeParserStatus Class Reference
  Home · All Classes · Modules

QDeclarativeParserStatus Class Reference
[QtDeclarative module]

The QDeclarativeParserStatus class provides updates on the QML parser state. More...

Inherited by QDeclarativeItem.

Methods


Detailed Description

The QDeclarativeParserStatus class provides updates on the QML parser state.

QDeclarativeParserStatus provides a mechanism for classes instantiated by a QDeclarativeEngine to receive notification at key points in their creation.

This class is often used for optimization purposes, as it allows you to defer an expensive operation until after all the properties have been set on an object. For example, QML's Text element uses the parser status to defer text layout until all of its properties have been set (we don't want to layout when the text is assigned, and then relayout when the font is assigned, and relayout again when the width is assigned, and so on).

To use QDeclarativeParserStatus, you must inherit both a QObject-derived class and QDeclarativeParserStatus, and use the Q_INTERFACES() macro.

 class MyObject : public QObject, public QDeclarativeParserStatus
 {
     Q_OBJECT
     Q_INTERFACES(QDeclarativeParserStatus)

 public:
     MyObject(QObject *parent = 0);
     ...
     void classBegin();
     void componentComplete();
 }

Method Documentation

QDeclarativeParserStatus.__init__ (self)

QDeclarativeParserStatus.__init__ (self, QDeclarativeParserStatus)

QDeclarativeParserStatus.classBegin (self)

This method is abstract and should be reimplemented in any sub-class.

Invoked after class creation, but before any properties have been set.

QDeclarativeParserStatus.componentComplete (self)

This method is abstract and should be reimplemented in any sub-class.

Invoked after the root component that caused this instantiation has completed construction. At this point all static values and binding values have been assigned to the class.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativeproperty.html0000644000076500000240000006014012536324477022632 0ustar philstaff00000000000000 QDeclarativeProperty Class Reference
  Home · All Classes · Modules

QDeclarativeProperty Class Reference
[
QtDeclarative module]

The QDeclarativeProperty class abstracts accessing properties on objects created from QML. More...

Types

Methods

Static Methods

  • QVariant read (QObject, QString)
  • QVariant read (QObject, QString, QDeclarativeContext)
  • QVariant read (QObject, QString, QDeclarativeEngine)
  • bool write (QObject, QString, QVariant)
  • bool write (QObject, QString, QVariant, QDeclarativeContext)
  • bool write (QObject, QString, QVariant, QDeclarativeEngine)

Special Methods


Detailed Description

The QDeclarativeProperty class abstracts accessing properties on objects created from QML.

As QML uses Qt's meta-type system all of the existing QMetaObject classes can be used to introspect and interact with objects created by QML. However, some of the new features provided by QML - such as type safety and attached properties - are most easily used through the QDeclarativeProperty class that simplifies some of their natural complexity.

Unlike QMetaProperty which represents a property on a class type, QDeclarativeProperty encapsulates a property on a specific object instance. To read a property's value, programmers create a QDeclarativeProperty instance and call the read() method. Likewise to write a property value the write() method is used.

For example, for the following QML code:

 // MyItem.qml
 import QtQuick 1.0

 Text { text: "A bit of text" }

The Text object's properties could be accessed using QDeclarativeProperty, like this:

 #include <QDeclarativeProperty>
 #include <QGraphicsObject>

 ...

 QDeclarativeView view(QUrl.fromLocalFile("MyItem.qml"));
 QDeclarativeProperty property(view.rootObject(), "font.pixelSize");
 qWarning() << "Current pixel size:" << property.read().toInt();
 property.write(24);
 qWarning() << "Pixel size should now be 24:" << property.read().toInt();

Type Documentation

QDeclarativeProperty.PropertyTypeCategory

This enum specifies a category of QML property.

Constant Value Description
QDeclarativeProperty.InvalidCategory 0 The property is invalid, or is a signal property.
QDeclarativeProperty.List 1 The property is a QDeclarativeListProperty list property
QDeclarativeProperty.Object 2 The property is a QObject derived type pointer
QDeclarativeProperty.Normal 3 The property is a normal value property.

QDeclarativeProperty.Type

This enum specifies a type of QML property.

Constant Value Description
QDeclarativeProperty.Invalid 0 The property is invalid.
QDeclarativeProperty.Property 1 The property is a regular Qt property.
QDeclarativeProperty.SignalProperty 2 The property is a signal property.

Method Documentation

QDeclarativeProperty.__init__ (self)

Create an invalid QDeclarativeProperty.

QDeclarativeProperty.__init__ (self, QObject)

Creates a QDeclarativeProperty for the default property of obj. If there is no default property, an invalid QDeclarativeProperty will be created.

QDeclarativeProperty.__init__ (self, QObject, QDeclarativeContext)

Creates a QDeclarativeProperty for the default property of obj using the context ctxt. If there is no default property, an invalid QDeclarativeProperty will be created.

QDeclarativeProperty.__init__ (self, QObject, QDeclarativeEngine)

Creates a QDeclarativeProperty for the default property of obj using the environment for instantiating QML components that is provided by engine. If there is no default property, an invalid QDeclarativeProperty will be created.

QDeclarativeProperty.__init__ (self, QObject, QString)

Creates a QDeclarativeProperty for the property name of obj.

QDeclarativeProperty.__init__ (self, QObject, QString, QDeclarativeContext)

Creates a QDeclarativeProperty for the property name of obj using the context ctxt.

Creating a QDeclarativeProperty without a context will render some properties - like attached properties - inaccessible.

QDeclarativeProperty.__init__ (self, QObject, QString, QDeclarativeEngine)

Creates a QDeclarativeProperty for the property name of obj using the environment for instantiating QML components that is provided by engine.

QDeclarativeProperty.__init__ (self, QDeclarativeProperty)

Create a copy of other.

bool QDeclarativeProperty.connectNotifySignal (self, QObject dest, SLOT()SLOT() slot)

Connects the property's change notifier signal to the specified slot of the dest object and returns true. Returns false if this metaproperty does not represent a regular Qt property or if it has no change notifier signal, or if the dest object does not have the specified slot.

bool QDeclarativeProperty.connectNotifySignal (self, callable dest)

Connects the property's change notifier signal to the specified method of the dest object and returns true. Returns false if this metaproperty does not represent a regular Qt property or if it has no change notifier signal, or if the dest object does not have the specified method.

bool QDeclarativeProperty.connectNotifySignal (self, QObject dest, int method)

bool QDeclarativeProperty.hasNotifySignal (self)

Returns true if the property has a change notifier signal, otherwise false.

int QDeclarativeProperty.index (self)

Return the Qt metaobject index of the property.

bool QDeclarativeProperty.isDesignable (self)

Returns true if the property is designable, otherwise false.

bool QDeclarativeProperty.isProperty (self)

Returns true if this QDeclarativeProperty represents a regular Qt property.

bool QDeclarativeProperty.isResettable (self)

Returns true if the property is resettable, otherwise false.

bool QDeclarativeProperty.isSignalProperty (self)

Returns true if this QDeclarativeProperty represents a QML signal property.

bool QDeclarativeProperty.isValid (self)

Returns true if the QDeclarativeProperty refers to a valid property, otherwise false.

bool QDeclarativeProperty.isWritable (self)

Returns true if the property is writable, otherwise false.

QMetaMethod QDeclarativeProperty.method (self)

Return the QMetaMethod for this property if it is a SignalProperty, otherwise returns an invalid QMetaMethod.

QString QDeclarativeProperty.name (self)

Return the name of this QML property.

bool QDeclarativeProperty.needsNotifySignal (self)

Returns true if the property needs a change notifier signal for bindings to remain upto date, false otherwise.

Some properties, such as attached properties or those whose value never changes, do not require a change notifier.

QObject QDeclarativeProperty.object (self)

Returns the QDeclarativeProperty's QObject.

QMetaProperty QDeclarativeProperty.property (self)

Returns the Qt property associated with this QML property.

int QDeclarativeProperty.propertyType (self)

Returns the QVariant type of the property, or QVariant.Invalid if the property has no QVariant type.

PropertyTypeCategory QDeclarativeProperty.propertyTypeCategory (self)

Returns the property category.

str QDeclarativeProperty.propertyTypeName (self)

Returns the type name of the property, or 0 if the property has no type name.

QVariant QDeclarativeProperty.read (self)

Returns the property value.

QVariant QDeclarativeProperty.read (QObject, QString)

Return the name property value of object. This method is equivalent to:

 QDeclarativeProperty p(object, name);
 p.read();

QVariant QDeclarativeProperty.read (QObject, QString, QDeclarativeContext)

Return the name property value of object using the context ctxt. This method is equivalent to:

 QDeclarativeProperty p(object, name, context);
 p.read();

QVariant QDeclarativeProperty.read (QObject, QString, QDeclarativeEngine)

Return the name property value of object using the environment for instantiating QML components that is provided by engine. . This method is equivalent to:

 QDeclarativeProperty p(object, name, engine);
 p.read();

bool QDeclarativeProperty.reset (self)

Resets the property and returns true if the property is resettable. If the property is not resettable, nothing happens and false is returned.

Type QDeclarativeProperty.type (self)

Returns the type of the property.

bool QDeclarativeProperty.write (self, QVariant)

Sets the property value to value and returns true. Returns false if the property can't be set because the value is the wrong type, for example.

bool QDeclarativeProperty.write (QObject, QString, QVariant)

Writes value to the name property of object. This method is equivalent to:

 QDeclarativeProperty p(object, name);
 p.write(value);

bool QDeclarativeProperty.write (QObject, QString, QVariant, QDeclarativeContext)

Writes value to the name property of object using the context ctxt. This method is equivalent to:

 QDeclarativeProperty p(object, name, ctxt);
 p.write(value);

bool QDeclarativeProperty.write (QObject, QString, QVariant, QDeclarativeEngine)

Writes value to the name property of object using the environment for instantiating QML components that is provided by engine. This method is equivalent to:

 QDeclarativeProperty p(object, name, engine);
 p.write(value);

bool QDeclarativeProperty.__eq__ (self, QDeclarativeProperty)

int QDeclarativeProperty.__hash__ (self)

bool QDeclarativeProperty.__ne__ (self, QDeclarativeProperty)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativepropertymap.html0000644000076500000240000002256212536324477023336 0ustar philstaff00000000000000 QDeclarativePropertyMap Class Reference
  Home · All Classes · Modules

QDeclarativePropertyMap Class Reference
[QtDeclarative module]

The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings. More...

Inherits QObject.

Methods

Special Methods

Qt Signals


Detailed Description

The QDeclarativePropertyMap class allows you to set key-value pairs that can be used in QML bindings.

QDeclarativePropertyMap provides a convenient way to expose domain data to the UI layer. The following example shows how you might declare data in C++ and then access it in QML.

In the C++ file:

 // create our data
 QDeclarativePropertyMap ownerData;
 ownerData.insert("name", QVariant(QString("John Smith")));
 ownerData.insert("phone", QVariant(QString("555-5555")));

 // expose it to the UI layer
 QDeclarativeView view;
 QDeclarativeContext *ctxt = view.rootContext();
 ctxt->setContextProperty("owner", &ownerData);

 view.setSource(QUrl.fromLocalFile("main.qml"));
 view.show();

Then, in main.qml:

 Text { text: owner.name + " " + owner.phone }

The binding is dynamic - whenever a key's value is updated, anything bound to that key will be updated as well.

To detect value changes made in the UI layer you can connect to the valueChanged() signal. However, note that valueChanged() is NOT emitted when changes are made by calling insert() or clear() - it is only emitted when a value is updated from QML.

Note: It is not possible to remove keys from the map; once a key has been added, you can only modify or clear its associated value.


Method Documentation

QDeclarativePropertyMap.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a bindable map with parent object parent.

QDeclarativePropertyMap.clear (self, QString key)

Clears the value (if any) associated with key.

bool QDeclarativePropertyMap.contains (self, QString key)

Returns true if the map contains key.

See also size().

int QDeclarativePropertyMap.count (self)

This is an overloaded function.

Same as size().

QDeclarativePropertyMap.insert (self, QString key, QVariant value)

Sets the value associated with key to value.

If the key doesn't exist, it is automatically created.

bool QDeclarativePropertyMap.isEmpty (self)

Returns true if the map contains no keys; otherwise returns false.

See also size().

QStringList QDeclarativePropertyMap.keys (self)

Returns the list of keys.

Keys that have been cleared will still appear in this list, even though their associated values are invalid QVariants.

int QDeclarativePropertyMap.size (self)

Returns the number of keys in the map.

See also isEmpty() and count().

QVariant QDeclarativePropertyMap.value (self, QString key)

Returns the value associated with key.

If no value has been set for this key (or if the value has been cleared), an invalid QVariant is returned.

QVariant QDeclarativePropertyMap.__getitem__ (self, QString key)

QDeclarativePropertyMap.__len__ (self)


Qt Signal Documentation

void valueChanged (const QString&,const QVariant&)

This is the default overload of this signal.

This signal is emitted whenever one of the values in the map is changed. key is the key corresponding to the value that was changed.

Note: valueChanged() is NOT emitted when changes are made by calling insert() or clear() - it is only emitted when a value is updated from QML.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativepropertyvaluesource.html0000644000076500000240000000665112536324477025117 0ustar philstaff00000000000000 QDeclarativePropertyValueSource Class Reference
  Home · All Classes · Modules

QDeclarativePropertyValueSource Class Reference
[QtDeclarative module]

The QDeclarativePropertyValueSource class is an interface for property value sources such as animations and bindings. More...

Inherited by QPyDeclarativePropertyValueSource.

Methods


Detailed Description

The QDeclarativePropertyValueSource class is an interface for property value sources such as animations and bindings.

See Property Value Sources for information on writing custom property value sources.


Method Documentation

QDeclarativePropertyValueSource.__init__ (self)

Constructs a QDeclarativePropertyValueSource.

QDeclarativePropertyValueSource.__init__ (self, QDeclarativePropertyValueSource)

QDeclarativePropertyValueSource.setTarget (self, QDeclarativeProperty)

This method is abstract and should be reimplemented in any sub-class.

Set the target property for the value source. This method will be called by the QML engine when assigning a value source.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativescriptstring.html0000644000076500000240000001422112536324477023500 0ustar philstaff00000000000000 QDeclarativeScriptString Class Reference
  Home · All Classes · Modules

QDeclarativeScriptString Class Reference
[QtDeclarative module]

The QDeclarativeScriptString class encapsulates a script and its context. More...

Methods


Detailed Description

The QDeclarativeScriptString class encapsulates a script and its context.

QDeclarativeScriptString is used to create QObject properties that accept a script "assignment" from QML.

Normally, the following QML would result in a binding being established for the script property; i.e. script would be assigned the value obtained from running myObj.value = Math.max(myValue, 100)

 MyType {
     script: myObj.value = Math.max(myValue, 100)
 }

If instead the property had a type of QDeclarativeScriptString, the script itself -- myObj.value = Math.max(myValue, 100) -- would be passed to the script property and the class could choose how to handle it. Typically, the class will evaluate the script at some later time using a QDeclarativeExpression.

 QDeclarativeExpression expr(scriptString.context(), scriptString.script(), scriptStr.scopeObject());
 expr.value();

Method Documentation

QDeclarativeScriptString.__init__ (self)

Constructs an empty instance.

QDeclarativeScriptString.__init__ (self, QDeclarativeScriptString)

Copies other.

QDeclarativeContext QDeclarativeScriptString.context (self)

Returns the context for the script.

See also setContext().

QObject QDeclarativeScriptString.scopeObject (self)

Returns the scope object for the script.

See also setScopeObject().

QString QDeclarativeScriptString.script (self)

Returns the script text.

See also setScript().

QDeclarativeScriptString.setContext (self, QDeclarativeContext)

Sets the context for the script.

See also context().

QDeclarativeScriptString.setScopeObject (self, QObject)

Sets the scope object for the script.

See also scopeObject().

QDeclarativeScriptString.setScript (self, QString)

Sets the script text.

See also script().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdeclarativeview.html0000644000076500000240000003266212536324477021730 0ustar philstaff00000000000000 QDeclarativeView Class Reference
  Home · All Classes · Modules

QDeclarativeView Class Reference
[QtDeclarative module]

The QDeclarativeView class provides a widget for displaying a Qt Declarative user interface. More...

Inherits QGraphicsView.

Types

  • enum ResizeMode { SizeViewToRootObject, SizeRootObjectToView }
  • enum Status { Null, Ready, Loading, Error }

Methods

Qt Signals


Detailed Description

The QDeclarativeView class provides a widget for displaying a Qt Declarative user interface.

QDeclarativeItem objects can be placed on a standard QGraphicsScene and displayed with QGraphicsView. QDeclarativeView is a QGraphicsView subclass provided as a convenience for displaying QML files, and connecting between QML and C++ Qt objects.

QDeclarativeView provides:

Typical usage:

 QDeclarativeView *view = new QDeclarativeView;
 view->setSource(QUrl.fromLocalFile("myqmlfile.qml"));
 view->show();

Since QDeclarativeView is a QWidget-based class, it can be used to display QML interfaces within QWidget-based GUI applications that do not use the Graphics View framework.

To receive errors related to loading and executing QML with QDeclarativeView, you can connect to the statusChanged() signal and monitor for QDeclarativeView.Error. The errors are available via QDeclarativeView.errors().

If you're using your own QGraphicsScene-based scene with QDeclarativeView, remember to enable scene's sticky focus mode and to set itemIndexMethod to QGraphicsScene.NoIndex.


Type Documentation

QDeclarativeView.ResizeMode

This enum specifies how to resize the view.

Constant Value Description
QDeclarativeView.SizeViewToRootObject 0 The view resizes with the root item in the QML.
QDeclarativeView.SizeRootObjectToView 1 The view will automatically resize the root item to the size of the view.

QDeclarativeView.Status

Specifies the loading status of the QDeclarativeView.

Constant Value Description
QDeclarativeView.Null 0 This QDeclarativeView has no source set.
QDeclarativeView.Ready 1 This QDeclarativeView has loaded and created the QML component.
QDeclarativeView.Loading 2 This QDeclarativeView is loading network data.
QDeclarativeView.Error 3 One or more errors has occurred. Call errors() to retrieve a list of errors.

Method Documentation

QDeclarativeView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QDeclarativeView with the given parent.

QDeclarativeView.__init__ (self, QUrl source, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QDeclarativeView with the given QML source and parent.

QDeclarativeEngine QDeclarativeView.engine (self)

Returns a pointer to the QDeclarativeEngine used for instantiating QML Components.

list-of-QDeclarativeError QDeclarativeView.errors (self)

Return the list of errors that occurred during the last compile or create operation. When the status is not Error, an empty list is returned.

bool QDeclarativeView.eventFilter (self, QObject watched, QEvent e)

QSize QDeclarativeView.initialSize (self)

Returns the initial size of the root object

QDeclarativeView.paintEvent (self, QPaintEvent event)

QDeclarativeView.resizeEvent (self, QResizeEvent)

ResizeMode QDeclarativeView.resizeMode (self)

QDeclarativeContext QDeclarativeView.rootContext (self)

This function returns the root of the context hierarchy. Each QML component is instantiated in a QDeclarativeContext. QDeclarativeContext's are essential for passing data to QML components. In QML, contexts are arranged hierarchically and this hierarchy is managed by the QDeclarativeEngine.

QGraphicsObject QDeclarativeView.rootObject (self)

Returns the view's root item.

QDeclarativeView.setResizeMode (self, ResizeMode)

QDeclarativeView.setSource (self, QUrl)

QSize QDeclarativeView.sizeHint (self)

QUrl QDeclarativeView.source (self)

Status QDeclarativeView.status (self)

QDeclarativeView.timerEvent (self, QTimerEvent)


Qt Signal Documentation

void sceneResized (QSize)

This is the default overload of this signal.

This signal is emitted when the view is resized to size.

void statusChanged (QDeclarativeView::Status)

This is the default overload of this signal.

This signal is emitted when the component's current status changes.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesigneractioneditorinterface.html0000644000076500000240000001404112536324524024620 0ustar philstaff00000000000000 QDesignerActionEditorInterface Class Reference
  Home · All Classes · Modules

QDesignerActionEditorInterface Class Reference
[
QtDesigner module]

The QDesignerActionEditorInterface class allows you to change the focus of Qt Designer's action editor. More...

Inherits QWidget.

Methods


Detailed Description

The QDesignerActionEditorInterface class allows you to change the focus of Qt Designer's action editor.

The QDesignerActionEditorInterface class is not intended to be instantiated directly. You can retrieve an interface to Qt Designer's action editor using the QDesignerFormEditorInterface.actionEditor() function.

You can control which actions that are available in the action editor's window using the manageAction() and unmanageAction() functions. An action that is managed by Qt Designer is available in the action editor while an unmanaged action is ignored.

QDesignerActionEditorInterface also provides the core() function that you can use to retrieve a pointer to Qt Designer's current QDesignerFormEditorInterface object, and the setFormWindow() function that enables you to change the currently selected form window.


Method Documentation

QDesignerActionEditorInterface.__init__ (self, QWidget parent, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an action editor interface with the given parent and the specified window flags.

QDesignerFormEditorInterface QDesignerActionEditorInterface.core (self)

Returns a pointer to Qt Designer's current QDesignerFormEditorInterface object.

QDesignerActionEditorInterface.manageAction (self, QAction action)

This method is abstract and should be reimplemented in any sub-class.

Instructs Qt Designer to manage the specified action. An action that is managed by Qt Designer is available in the action editor.

See also unmanageAction().

QDesignerActionEditorInterface.setFormWindow (self, QDesignerFormWindowInterface formWindow)

This method is also a Qt slot with the C++ signature void setFormWindow(QDesignerFormWindowInterface*).

This method is abstract and should be reimplemented in any sub-class.

Sets the currently selected form window to formWindow.

QDesignerActionEditorInterface.unmanageAction (self, QAction action)

This method is abstract and should be reimplemented in any sub-class.

Instructs Qt Designer to ignore the specified action. An unmanaged action is not available in the action editor.

See also manageAction().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignercontainerextension.html0000644000076500000240000003717712536324525024212 0ustar philstaff00000000000000 QDesignerContainerExtension Class Reference
  Home · All Classes · Modules

QDesignerContainerExtension Class Reference
[QtDesigner module]

The QDesignerContainerExtension class allows you to add pages to a custom multi-page container in Qt Designer's workspace. More...

Inherited by QPyDesignerContainerExtension.

Methods

Special Methods


Detailed Description

The QDesignerContainerExtension class allows you to add pages to a custom multi-page container in Qt Designer's workspace.

QDesignerContainerExtension provide an interface for creating custom container extensions. A container extension consists of a collection of functions that Qt Designer needs to manage a multi-page container plugin, and a list of the container's pages.

Warning: This is not an extension for container plugins in general, only custom multi-page containers.

To create a container extension, your extension class must inherit from both QObject and QDesignerContainerExtension. For example:

 class MyContainerExtension : public QObject,
        public QDesignerContainerExtension
 {
     Q_OBJECT
     Q_INTERFACES(QDesignerContainerExtension)

 public:
     MyContainerExtension(MyCustomWidget *widget,
                          QObject *parent = 0);
     int count() const;
     QWidget *widget(int index) const;
     int currentIndex() const;
     void setCurrentIndex(int index);
     void addWidget(QWidget *widget);
     void insertWidget(int index, QWidget *widget);
     void remove(int index);

 private:
     MyCustomWidget *myWidget;
 };

Since we are implementing an interface, we must ensure that it's made known to the meta object system using the Q_INTERFACES() macro. This enables Qt Designer to use the qobject_cast() function to query for supported interfaces using nothing but a QObject pointer.

You must reimplement several functions to enable Qt Designer to manage a custom multi-page container widget: Qt Designer uses count() to keep track of the number pages in your container, widget() to return the page at a given index in the list of the container's pages, and currentIndex() to return the list index of the selected page. Qt Designer uses the addWidget() function to add a given page to the container, expecting it to be appended to the list of pages, while it expects the insertWidget() function to add a given page to the container by inserting it at a given index.

In Qt Designer the extensions are not created until they are required. For that reason you must also create a QExtensionFactory, i.e a class that is able to make an instance of your extension, and register it using Qt Designer's extension manager.

When a container extension is required, Qt Designer's extension manager will run through all its registered factories calling QExtensionFactory.createExtension() for each until the first one that is able to create a container extension, is found. This factory will then create the extension for the plugin.

There are four available types of extensions in Qt Designer: QDesignerContainerExtension , QDesignerMemberSheetExtension, QDesignerPropertySheetExtension and QDesignerTaskMenuExtension. Qt Designer's behavior is the same whether the requested extension is associated with a multi page container, a member sheet, a property sheet or a task menu.

The QExtensionFactory class provides a standard extension factory, and can also be used as an interface for custom extension factories. You can either create a new QExtensionFactory and reimplement the QExtensionFactory.createExtension() function. For example:

 QObject *ANewExtensionFactory.createExtension(QObject *object,
         const QString &iid, QObject *parent) const
 {
     if (iid != Q_TYPEID(QDesignerContainerExtension))
         return 0;

     if (MyCustomWidget *widget = qobject_cast<MyCustomWidget*>
            (object))
         return new MyContainerExtension(widget, parent);

     return 0;
 }

Or you can use an existing factory, expanding the QExtensionFactory.createExtension() function to make the factory able to create a container extension as well. For example:

 QObject *AGeneralExtensionFactory.createExtension(QObject *object,
         const QString &iid, QObject *parent) const
 {
     MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object);

     if (widget && (iid == Q_TYPEID(QDesignerTaskMenuExtension))) {
         return new MyTaskMenuExtension(widget, parent);

     } else if (widget && (iid == Q_TYPEID(QDesignerContainerExtension))) {
         return new MyContainerExtension(widget, parent);

     } else {
         return 0;
     }
 }

For a complete example using the QDesignerContainerExtension class, see the Container Extension example. The example shows how to create a custom multi-page plugin for Qt Designer.


Method Documentation

QDesignerContainerExtension.__init__ (self)

QDesignerContainerExtension.__init__ (self, QDesignerContainerExtension)

QDesignerContainerExtension.addWidget (self, QWidget widget)

This method is abstract and should be reimplemented in any sub-class.

Adds the given page to the container by appending it to the extension's list of pages.

See also insertWidget(), remove(), and widget().

int QDesignerContainerExtension.count (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the number of pages in the container.

int QDesignerContainerExtension.currentIndex (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the index of the currently selected page in the container.

See also setCurrentIndex().

QDesignerContainerExtension.insertWidget (self, int index, QWidget widget)

This method is abstract and should be reimplemented in any sub-class.

Adds the given page to the container by inserting it at the given index in the extension's list of pages.

See also addWidget(), remove(), and widget().

QDesignerContainerExtension.remove (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Removes the page at the given index from the extension's list of pages.

See also addWidget() and insertWidget().

QDesignerContainerExtension.setCurrentIndex (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Sets the currently selected page in the container to be the page at the given index in the extension's list of pages.

See also currentIndex().

QWidget QDesignerContainerExtension.widget (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the page at the given index in the extension's list of pages.

See also addWidget() and insertWidget().

QDesignerContainerExtension.__len__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignercustomwidgetcollectioninterface.html0000644000076500000240000001661112536324525026734 0ustar philstaff00000000000000 QDesignerCustomWidgetCollectionInterface Class Reference
  Home · All Classes · Modules

QDesignerCustomWidgetCollectionInterface Class Reference
[
QtDesigner module]

The QDesignerCustomWidgetCollectionInterface class allows you to include several custom widgets in one single library. More...

Inherited by QPyDesignerCustomWidgetCollectionPlugin.

Methods


Detailed Description

The QDesignerCustomWidgetCollectionInterface class allows you to include several custom widgets in one single library.

When implementing a custom widget plugin, you build it as a separate library. If you want to include several custom widget plugins in the same library, you must in addition subclass QDesignerCustomWidgetCollectionInterface.

QDesignerCustomWidgetCollectionInterface contains one single function returning a list of the collection's QDesignerCustomWidgetInterface objects. For example, if you have several custom widgets CustomWidgetOne, CustomWidgetTwo and CustomWidgetThree, the class definition may look like this:

 #include customwidgetoneinterface.h
 #include customwidgettwointerface.h
 #include customwidgetthreeinterface.h

 #include <QtDesigner/QtDesigner>
 #include <QtCore/qplugin.h>

 class MyCustomWidgets: public QObject, public QDesignerCustomWidgetCollectionInterface
 {
     Q_OBJECT
     Q_INTERFACES(QDesignerCustomWidgetCollectionInterface)

 public:
     MyCustomWidgets(QObject *parent = 0);

     virtual QList<QDesignerCustomWidgetInterface*> customWidgets() const;

 private:
     QList<QDesignerCustomWidgetInterface*> widgets;
 };

In the class constructor you add the interfaces to your custom widgets to the list which you return in the customWidgets() function:

 MyCustomWidgets.MyCustomWidgets(QObject *parent)
         : QObject(parent)
 {
     widgets.append(new CustomWidgetOneInterface(this));
     widgets.append(new CustomWidgetTwoInterface(this));
     widgets.append(new CustomWidgetThreeInterface(this));
 }

 QList<QDesignerCustomWidgetInterface*> MyCustomWidgets.customWidgets() const
 {
     return widgets;
 }

 Q_EXPORT_PLUGIN2(customwidgetsplugin, MyCustomWidgets)

Note that instead of exporting each custom widget plugin using the Q_EXPORT_PLUGIN2() macro, you export the entire collection. The Q_EXPORT_PLUGIN2() macro ensures that Qt Designer can access and construct the custom widgets. Without this macro, there is no way for Qt Designer to use them.


Method Documentation

QDesignerCustomWidgetCollectionInterface.__init__ (self)

QDesignerCustomWidgetCollectionInterface.__init__ (self, QDesignerCustomWidgetCollectionInterface)

list-of-QDesignerCustomWidgetInterface QDesignerCustomWidgetCollectionInterface.customWidgets (self)

This method is abstract and should be reimplemented in any sub-class.

Returns a list of interfaces to the collection's custom widgets.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignercustomwidgetinterface.html0000644000076500000240000003433512536324525024663 0ustar philstaff00000000000000 QDesignerCustomWidgetInterface Class Reference
  Home · All Classes · Modules

QDesignerCustomWidgetInterface Class Reference
[
QtDesigner module]

The QDesignerCustomWidgetInterface class enables Qt Designer to access and construct custom widgets. More...

Inherited by QPyDesignerCustomWidgetPlugin.

Methods


Detailed Description

The QDesignerCustomWidgetInterface class enables Qt Designer to access and construct custom widgets.

QDesignerCustomWidgetInterface provides a custom widget with an interface. The class contains a set of functions that must be subclassed to return basic information about the widget, such as its class name and the name of its header file. Other functions must be implemented to initialize the plugin when it is loaded, and to construct instances of the custom widget for Qt Designer to use.

When implementing a custom widget you must subclass QDesignerCustomWidgetInterface to expose your widget to Qt Designer. For example, this is the declaration for the plugin used in the Custom Widget Plugin example that enables an analog clock custom widget to be used by Qt Designer:

 class AnalogClockPlugin : public QObject, public QDesignerCustomWidgetInterface
 {
     Q_OBJECT
     Q_INTERFACES(QDesignerCustomWidgetInterface)

 public:
     AnalogClockPlugin(QObject *parent = 0);

     bool isContainer() const;
     bool isInitialized() const;
     QIcon icon() const;
     QString domXml() const;
     QString group() const;
     QString includeFile() const;
     QString name() const;
     QString toolTip() const;
     QString whatsThis() const;
     QWidget *createWidget(QWidget *parent);
     void initialize(QDesignerFormEditorInterface *core);

 private:
     bool initialized;
 };

Note that the only part of the class definition that is specific to this particular custom widget is the class name. In addition, since we are implementing an interface, we must ensure that it's made known to the meta object system using the Q_INTERFACES() macro. This enables Qt Designer to use the qobject_cast() function to query for supported interfaces using nothing but a QObject pointer.

After Qt Designer loads a custom widget plugin, it calls the interface's initialize() function to enable it to set up any resources that it may need. This function is called with a QDesignerFormEditorInterface parameter that provides the plugin with a gateway to all of Qt Designer's API.

Qt Designer constructs instances of the custom widget by calling the plugin's createWidget() function with a suitable parent widget. Plugins must construct and return an instance of a custom widget with the specified parent widget.

In the implementation of the class you must remember to export your custom widget plugin to Qt Designer using the Q_EXPORT_PLUGIN2() macro. For example, if a library called libcustomwidgetplugin.so (on Unix) or libcustomwidget.dll (on Windows) contains a widget class called MyCustomWidget, we can export it by adding the following line to the file containing the plugin implementation:

 Q_EXPORT_PLUGIN2(customwidgetplugin, MyCustomWidget)

This macro ensures that Qt Designer can access and construct the custom widget. Without this macro, there is no way for Qt Designer to use it.

When implementing a custom widget plugin, you build it as a separate library. If you want to include several custom widget plugins in the same library, you must in addition subclass QDesignerCustomWidgetCollectionInterface.

Warning: If your custom widget plugin contains QVariant properties, be aware that only the following types are supported:

For a complete example using the QDesignerCustomWidgetInterface class, see the Custom Widget Example. The example shows how to create a custom widget plugin for Qt Designer.


Method Documentation

QDesignerCustomWidgetInterface.__init__ (self)

QDesignerCustomWidgetInterface.__init__ (self, QDesignerCustomWidgetInterface)

QString QDesignerCustomWidgetInterface.codeTemplate (self)

This function is reserved for future use by Qt Designer.

QWidget QDesignerCustomWidgetInterface.createWidget (self, QWidget parent)

This method is abstract and should be reimplemented in any sub-class.

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Returns a new instance of the custom widget, with the given parent.

QString QDesignerCustomWidgetInterface.domXml (self)

Returns the XML that is used to describe the custom widget's properties to Qt Designer.

QString QDesignerCustomWidgetInterface.group (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the group to which the custom widget belongs.

QIcon QDesignerCustomWidgetInterface.icon (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the icon used to represent the custom widget in Qt Designer's widget box.

QString QDesignerCustomWidgetInterface.includeFile (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the path to the include file that uic uses when creating code for the custom widget.

QDesignerCustomWidgetInterface.initialize (self, QDesignerFormEditorInterface core)

Initializes the widget for use with the specified formEditor interface.

See also isInitialized().

bool QDesignerCustomWidgetInterface.isContainer (self)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the custom widget is intended to be used as a container; otherwise returns false.

Most custom widgets are not used to hold other widgets, so their implementations of this function will return false, but custom containers will return true to ensure that they behave correctly in Qt Designer.

bool QDesignerCustomWidgetInterface.isInitialized (self)

Returns true if the widget has been initialized; otherwise returns false.

See also initialize().

QString QDesignerCustomWidgetInterface.name (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the class name of the custom widget supplied by the interface.

The name returned must be identical to the class name used for the custom widget.

QString QDesignerCustomWidgetInterface.toolTip (self)

This method is abstract and should be reimplemented in any sub-class.

Returns a short description of the widget that can be used by Qt Designer in a tool tip.

QString QDesignerCustomWidgetInterface.whatsThis (self)

This method is abstract and should be reimplemented in any sub-class.

Returns a description of the widget that can be used by Qt Designer in "What's This?" help for the widget.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignerformeditorinterface.html0000644000076500000240000002531312536324524024312 0ustar philstaff00000000000000 QDesignerFormEditorInterface Class Reference
  Home · All Classes · Modules

QDesignerFormEditorInterface Class Reference
[
QtDesigner module]

The QDesignerFormEditorInterface class allows you to access Qt Designer's various components. More...

Inherits QObject.

Methods


Detailed Description

The QDesignerFormEditorInterface class allows you to access Qt Designer's various components.

Qt Designer's current QDesignerFormEditorInterface object holds information about all Qt Designer's components: The action editor, the object inspector, the property editor, the widget box, and the extension and form window managers. QDesignerFormEditorInterface contains a collection of functions that provides interfaces to all these components. They are typically used to query (and manipulate) the respective component. For example:

         QDesignerObjectInspectorInterface *objectInspector = 0;
         objectInspector = formEditor->objectInspector();

         QDesignerFormWindowManagerInterface *manager = 0;
         manager = formEditor->formWindowManager();

         objectInspector->setFormWindow(manager->formWindow(0));

QDesignerFormEditorInterface is not intended to be instantiated directly. A pointer to Qt Designer's current QDesignerFormEditorInterface object (formEditor in the example above) is provided by the QDesignerCustomWidgetInterface.initialize() function's parameter. When implementing a custom widget plugin, you must subclass the QDesignerCustomWidgetInterface to expose your plugin to Qt Designer.

QDesignerFormEditorInterface also provides functions that can set the action editor, property editor, object inspector and widget box. These are only useful if you want to provide your own custom components.

If designer is embedded in another program, one could to provide its own settings manager. The manager is used by the components of Qt Designer to store/retrieve persistent configuration settings. The default manager uses QSettings as the backend.

Finally, QDesignerFormEditorInterface provides the topLevel() function that returns Qt Designer's top-level widget.


Method Documentation

QDesignerFormEditorInterface.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QDesignerFormEditorInterface object with the given parent.

QDesignerActionEditorInterface QDesignerFormEditorInterface.actionEditor (self)

Returns an interface to Qt Designer's action editor.

See also setActionEditor().

QExtensionManager QDesignerFormEditorInterface.extensionManager (self)

Returns an interface to Qt Designer's extension manager.

QDesignerFormWindowManagerInterface QDesignerFormEditorInterface.formWindowManager (self)

Returns an interface to Qt Designer's form window manager.

QDesignerObjectInspectorInterface QDesignerFormEditorInterface.objectInspector (self)

Returns an interface to Qt Designer's object inspector.

See also setObjectInspector().

QDesignerPropertyEditorInterface QDesignerFormEditorInterface.propertyEditor (self)

Returns an interface to Qt Designer's property editor.

See also setPropertyEditor().

QDesignerFormEditorInterface.setActionEditor (self, QDesignerActionEditorInterface actionEditor)

Sets Qt Designer's action editor to be the specified actionEditor.

See also actionEditor().

QDesignerFormEditorInterface.setObjectInspector (self, QDesignerObjectInspectorInterface objectInspector)

Sets Qt Designer's object inspector to be the specified objectInspector.

See also objectInspector().

QDesignerFormEditorInterface.setPropertyEditor (self, QDesignerPropertyEditorInterface propertyEditor)

Sets Qt Designer's property editor to be the specified propertyEditor.

See also propertyEditor().

QDesignerFormEditorInterface.setWidgetBox (self, QDesignerWidgetBoxInterface widgetBox)

Sets Qt Designer's widget box to be the specified widgetBox.

See also widgetBox().

QWidget QDesignerFormEditorInterface.topLevel (self)

Returns Qt Designer's top-level widget.

QDesignerWidgetBoxInterface QDesignerFormEditorInterface.widgetBox (self)

Returns an interface to Qt Designer's widget box.

See also setWidgetBox().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignerformwindowcursorinterface.html0000644000076500000240000004425712536324524025601 0ustar philstaff00000000000000 QDesignerFormWindowCursorInterface Class Reference
  Home · All Classes · Modules

QDesignerFormWindowCursorInterface Class Reference
[QtDesigner module]

The QDesignerFormWindowCursorInterface class allows you to query and modify a form window's widget selection, and in addition modify the properties of all the form's widgets. More...

Types

Methods


Detailed Description

The QDesignerFormWindowCursorInterface class allows you to query and modify a form window's widget selection, and in addition modify the properties of all the form's widgets.

QDesignerFormWindowCursorInterface is a convenience class that provides an interface to the associated form window's text cursor; it provides a collection of functions that enables you to query a given form window's selection and change the selection's focus according to defined modes (MoveMode) and movements (MoveOperation). You can also use the interface to query the form's widgets and change their properties.

The interface is not intended to be instantiated directly, but to provide access to the selections and widgets of Qt Designer's current form windows. QDesignerFormWindowInterface always provides an associated cursor interface. The form window for a given widget can be retrieved using the static QDesignerFormWindowInterface.findFormWindow() functions. For example:

     QDesignerFormWindowInterface *formWindow = 0;
     formWindow = QDesignerFormWindowInterface.findFormWindow(myWidget);

     formWindow->cursor()->setProperty(myWidget, myProperty, newValue);

You can retrieve any of Qt Designer's current form windows through Qt Designer's form window manager.

Once you have a form window's cursor interface, you can check if the form window has a selection at all using the hasSelection() function. You can query the form window for its total widgetCount() and selectedWidgetCount(). You can retrieve the currently selected widget (or widgets) using the current() or selectedWidget() functions.

You can retrieve any of the form window's widgets using the widget() function, and check if a widget is selected using the isWidgetSelected() function. You can use the setProperty() function to set the selected widget's properties, and the setWidgetProperty() or resetWidgetProperty() functions to modify the properties of any given widget.

Finally, you can change the selection by changing the text cursor's position() using the setPosition() and movePosition() functions.


Type Documentation

QDesignerFormWindowCursorInterface.MoveMode

This enum describes the different modes that are used when the text cursor moves.

Constant Value Description
QDesignerFormWindowCursorInterface.MoveAnchor 0 The anchor moves with the cursor to its new location.
QDesignerFormWindowCursorInterface.KeepAnchor 1 The anchor remains at the cursor's old location.

QDesignerFormWindowCursorInterface.MoveOperation

This enum describes the types of text cursor operation that can occur in a form window.

Constant Value Description
QDesignerFormWindowCursorInterface.NoMove 0 The cursor does not move.
QDesignerFormWindowCursorInterface.Start 1 Moves the cursor to the start of the focus chain.
QDesignerFormWindowCursorInterface.End 2 Moves the cursor to the end of the focus chain.
QDesignerFormWindowCursorInterface.Next 3 Moves the cursor to the next widget in the focus chain.
QDesignerFormWindowCursorInterface.Prev 4 Moves the cursor to the previous widget in the focus chain.
QDesignerFormWindowCursorInterface.Left 5 The cursor moves to the left.
QDesignerFormWindowCursorInterface.Right 6 The cursor moves to the right.
QDesignerFormWindowCursorInterface.Up 7 The cursor moves upwards.
QDesignerFormWindowCursorInterface.Down 8 The cursor moves downwards.

Method Documentation

QDesignerFormWindowCursorInterface.__init__ (self)

QDesignerFormWindowCursorInterface.__init__ (self, QDesignerFormWindowCursorInterface)

QWidget QDesignerFormWindowCursorInterface.current (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the currently selected widget in the form window.

See also selectedWidget().

QDesignerFormWindowInterface QDesignerFormWindowCursorInterface.formWindow (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the form window interface associated with this cursor interface.

bool QDesignerFormWindowCursorInterface.hasSelection (self)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the form window contains a selection; otherwise returns false.

bool QDesignerFormWindowCursorInterface.isWidgetSelected (self, QWidget widget)

Returns true if the specified widget is selected; otherwise returns false.

bool QDesignerFormWindowCursorInterface.movePosition (self, MoveOperation op, MoveMode mode = QDesignerFormWindowCursorInterface.MoveAnchor)

This method is abstract and should be reimplemented in any sub-class.

Performs the given operation on the cursor using the specified mode, and returns true if it completed successfully; otherwise returns false.

See also position() and setPosition().

int QDesignerFormWindowCursorInterface.position (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the cursor position.

See also setPosition() and movePosition().

QDesignerFormWindowCursorInterface.resetWidgetProperty (self, QWidget widget, QString name)

This method is abstract and should be reimplemented in any sub-class.

Resets the property with the given name for the specified widget to its default value.

See also setProperty() and setWidgetProperty().

QWidget QDesignerFormWindowCursorInterface.selectedWidget (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the widget with the given index in the list of selected widgets.

See also current() and widget().

int QDesignerFormWindowCursorInterface.selectedWidgetCount (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the number of selected widgets in the form window.

See also widgetCount().

QDesignerFormWindowCursorInterface.setPosition (self, int pos, MoveMode mode = QDesignerFormWindowCursorInterface.MoveAnchor)

This method is abstract and should be reimplemented in any sub-class.

Sets the position of the cursor to the given position using the mode to specify how it is moved there.

See also position() and movePosition().

QDesignerFormWindowCursorInterface.setProperty (self, QString name, QVariant value)

This method is abstract and should be reimplemented in any sub-class.

Sets the property with the given name for the currently selected widget to the specified value.

See also setWidgetProperty() and resetWidgetProperty().

QDesignerFormWindowCursorInterface.setWidgetProperty (self, QWidget widget, QString name, QVariant value)

This method is abstract and should be reimplemented in any sub-class.

Sets the property with the given name for the given widget to the specified value.

See also resetWidgetProperty() and setProperty().

QWidget QDesignerFormWindowCursorInterface.widget (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the widget with the given index in the list of widgets in the form window.

See also selectedWidget().

int QDesignerFormWindowCursorInterface.widgetCount (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the number of widgets in the form window.

See also selectedWidgetCount().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignerformwindowinterface-feature.html0000644000076500000240000001461112536324524025763 0ustar philstaff00000000000000 QDesignerFormWindowInterface.Feature Class Reference
  Home · All Classes · Modules

QDesignerFormWindowInterface.Feature Class Reference
[QtDesigner module]

Methods

Special Methods


Detailed Description

FeatureFlag may be used whenever Feature is expected.


Method Documentation

Feature.__init__ (self, Feature)

Feature.__init__ (self, int)

Feature.__init__ (self)

Feature Feature.__and__ (self, int mask)

int Feature.__bool__ (self)

bool Feature.__eq__ (self, Feature f)

Feature Feature.__iand__ (self, int mask)

int Feature.__int__ (self)

Feature Feature.__invert__ (self)

Feature Feature.__ior__ (self, Feature f)

Feature Feature.__ixor__ (self, Feature f)

bool Feature.__ne__ (self, Feature f)

Feature Feature.__or__ (self, Feature f)

Feature Feature.__or__ (self, int f)

Feature Feature.__xor__ (self, Feature f)

Feature Feature.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignerformwindowinterface.html0000644000076500000240000012636412536324524024343 0ustar philstaff00000000000000 QDesignerFormWindowInterface Class Reference
  Home · All Classes · Modules

QDesignerFormWindowInterface Class Reference
[QtDesigner module]

The QDesignerFormWindowInterface class allows you to query and manipulate form windows appearing in Qt Designer's workspace. More...

Inherits QWidget.

Types

  • class Feature
  • enum FeatureFlag { EditFeature, GridFeature, TabOrderFeature, DefaultFeature }

Methods

Static Methods

Qt Signals


Detailed Description

The QDesignerFormWindowInterface class allows you to query and manipulate form windows appearing in Qt Designer's workspace.

QDesignerFormWindowInterface provides information about the associated form window as well as allowing its properties to be altered. The interface is not intended to be instantiated directly, but to provide access to Qt Designer's current form windows controlled by Qt Designer's form window manager.

If you are looking for the form window containing a specific widget, you can use the static QDesignerFormWindowInterface.findFormWindow() function:

     QDesignerFormWindowInterface *formWindow;
     formWindow = QDesignerFormWindowInterface.findFormWindow(myWidget);

But in addition, you can access any of the current form windows through Qt Designer's form window manager: Use the QDesignerFormEditorInterface.formWindowManager() function to retrieve an interface to the manager. Once you have this interface, you have access to all of Qt Designer's current form windows through the QDesignerFormWindowManagerInterface.formWindow() function. For example:

     QList<QDesignerFormWindowInterface *> forms;
     QDesignerFormWindowInterface *formWindow;

     QDesignerFormWindowManagerInterface *manager = formEditor->formWindowManager();

     for (int i = 0; i < manager->formWindowCount(); i++) {
         formWindow = manager->formWindow(i);
         forms.append(formWindow);
     }

The pointer to Qt Designer's current QDesignerFormEditorInterface object (formEditor in the example above) is provided by the QDesignerCustomWidgetInterface.initialize() function's parameter. When implementing a custom widget plugin, you must subclass the QDesignerCustomWidgetInterface class to expose your plugin to Qt Designer.

Once you have the form window, you can query its properties. For example, a plain custom widget plugin is managed by Qt Designer only at its top level, i.e. none of its child widgets can be resized in Qt Designer's workspace. But QDesignerFormWindowInterface provides you with functions that enables you to control whether a widget should be managed by Qt Designer, or not:

         if (formWindow->isManaged(myWidget))
             formWindow->manageWidget(myWidget->childWidget);

The complete list of functions concerning widget management is: isManaged(), manageWidget() and unmanageWidget(). There is also several associated signals: widgetManaged(), widgetRemoved(), aboutToUnmanageWidget() and widgetUnmanaged().

In addition to controlling the management of widgets, you can control the current selection in the form window using the selectWidget(), clearSelection() and emitSelectionChanged() functions, and the selectionChanged() signal.

You can also retrieve information about where the form is stored using absoluteDir(), its include files using includeHints(), and its layout and pixmap functions using layoutDefault(), layoutFunction() and pixmapFunction(). You can find out whether the form window has been modified (but not saved) or not, using the isDirty() function. You can retrieve its author(), its contents(), its fileName(), associated comment() and exportMacro(), its mainContainer(), its features(), its grid() and its resourceFiles().

The interface provides you with functions and slots allowing you to alter most of this information as well. The exception is the directory storing the form window. Finally, there is several signals associated with changes to the information mentioned above and to the form window in general.


Type Documentation

QDesignerFormWindowInterface.FeatureFlag

This enum describes the features that are available and can be controlled by the form window interface. These values are used when querying the form window to determine which features it supports:

Constant Value Description
QDesignerFormWindowInterface.EditFeature 0x01 Form editing
QDesignerFormWindowInterface.GridFeature 0x02 Grid display and snap-to-grid facilities for editing
QDesignerFormWindowInterface.TabOrderFeature 0x04 Tab order management
QDesignerFormWindowInterface.DefaultFeature EditFeature | GridFeature Support for default features (form editing and grid)

The Feature type is a typedef for QFlags<FeatureFlag>. It stores an OR combination of FeatureFlag values.

See also hasFeature() and features().


Method Documentation

QDesignerFormWindowInterface.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a form window interface with the given parent and the specified window flags.

QDir QDesignerFormWindowInterface.absoluteDir (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the absolute location of the directory containing the form shown in the form window.

QDesignerFormWindowInterface.addResourceFile (self, QString path)

This method is abstract and should be reimplemented in any sub-class.

Adds the resource file at the given path to those used by the form.

See also resourceFiles() and resourceFilesChanged().

QString QDesignerFormWindowInterface.author (self)

This method is abstract and should be reimplemented in any sub-class.

Returns details of the author or creator of the form currently being displayed in the window.

See also setAuthor().

QDesignerFormWindowInterface.clearSelection (self, bool update = True)

This method is also a Qt slot with the C++ signature void clearSelection(bool = 1).

This method is abstract and should be reimplemented in any sub-class.

Clears the current selection in the form window. If update is true, the emitSelectionChanged() function is called, emitting the selectionChanged() signal.

See also selectWidget().

QString QDesignerFormWindowInterface.comment (self)

This method is abstract and should be reimplemented in any sub-class.

Returns comments about the form currently being displayed in the window.

See also setComment().

QString QDesignerFormWindowInterface.contents (self)

This method is abstract and should be reimplemented in any sub-class.

Returns details of the contents of the form currently being displayed in the window.

See also setContents().

QDesignerFormEditorInterface QDesignerFormWindowInterface.core (self)

Returns a pointer to Qt Designer's current QDesignerFormEditorInterface object.

QDesignerFormWindowCursorInterface QDesignerFormWindowInterface.cursor (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the cursor interface used by the form window.

QDesignerFormWindowInterface.emitSelectionChanged (self)

This method is abstract and should be reimplemented in any sub-class.

Emits the selectionChanged() signal.

See also selectWidget() and clearSelection().

QString QDesignerFormWindowInterface.exportMacro (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the export macro associated with the form currently being displayed in the window. The export macro is used when the form is compiled to create a widget plugin.

See also setExportMacro() and Creating Custom Widgets for Qt Designer.

Feature QDesignerFormWindowInterface.features (self)

This method is abstract and should be reimplemented in any sub-class.

Returns a combination of the features provided by the form window associated with the interface. The value returned can be tested against the Feature enum values to determine which features are supported by the window.

See also setFeatures() and hasFeature().

QString QDesignerFormWindowInterface.fileName (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the file name of the UI file that describes the form currently being shown.

See also setFileName().

QDesignerFormWindowInterface QDesignerFormWindowInterface.findFormWindow (QWidget w)

Returns the form window interface for the given widget.

QDesignerFormWindowInterface QDesignerFormWindowInterface.findFormWindow (QObject obj)

Returns the form window interface for the given object.

This function was introduced in Qt 4.4.

QPoint QDesignerFormWindowInterface.grid (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the grid spacing used by the form window.

See also setGrid().

bool QDesignerFormWindowInterface.hasFeature (self, Feature f)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the form window offers the specified feature; otherwise returns false.

See also features().

QStringList QDesignerFormWindowInterface.includeHints (self)

This method is abstract and should be reimplemented in any sub-class.

Returns a list of the header files that will be included in the form window's associated UI file.

Header files may be local, i.e. relative to the project's directory, "mywidget.h", or global, i.e. part of Qt or the compilers standard libraries: <QtGui/QWidget>.

See also setIncludeHints().

bool QDesignerFormWindowInterface.isDirty (self)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the form window is "dirty" (modified but not saved); otherwise returns false.

See also setDirty().

bool QDesignerFormWindowInterface.isManaged (self, QWidget widget)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the specified widget is managed by the form window; otherwise returns false.

See also manageWidget().

(int margin, int spacing) QDesignerFormWindowInterface.layoutDefault (self)

This method is abstract and should be reimplemented in any sub-class.

Fills in the default margin and spacing for the form's default layout in the margin and spacing variables specified.

See also setLayoutDefault().

(QString margin, QString spacing) QDesignerFormWindowInterface.layoutFunction (self)

This method is abstract and should be reimplemented in any sub-class.

Fills in the current margin and spacing for the form's layout in the margin and spacing variables specified.

See also setLayoutFunction().

QWidget QDesignerFormWindowInterface.mainContainer (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the main container widget for the form window.

See also setMainContainer().

QDesignerFormWindowInterface.manageWidget (self, QWidget widget)

This method is also a Qt slot with the C++ signature void manageWidget(QWidget*).

This method is abstract and should be reimplemented in any sub-class.

Instructs the form window to manage the specified widget.

See also isManaged(), unmanageWidget(), and widgetManaged().

QString QDesignerFormWindowInterface.pixmapFunction (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the function used to load pixmaps into the form window.

See also setPixmapFunction().

QDesignerFormWindowInterface.removeResourceFile (self, QString path)

This method is abstract and should be reimplemented in any sub-class.

Removes the resource file at the specified path from the list of those used by the form.

See also resourceFiles() and resourceFilesChanged().

QStringList QDesignerFormWindowInterface.resourceFiles (self)

This method is abstract and should be reimplemented in any sub-class.

Returns a list of paths to resource files that are currently being used by the form window.

See also addResourceFile() and removeResourceFile().

QDesignerFormWindowInterface.selectWidget (self, QWidget widget, bool select = True)

This method is also a Qt slot with the C++ signature void selectWidget(QWidget*,bool = 1).

This method is abstract and should be reimplemented in any sub-class.

If select is true, the given widget is selected; otherwise the widget is deselected.

See also clearSelection() and selectionChanged().

QDesignerFormWindowInterface.setAuthor (self, QString author)

This method is abstract and should be reimplemented in any sub-class.

Sets the details for the author or creator of the form to the author specified.

See also author().

QDesignerFormWindowInterface.setComment (self, QString comment)

This method is abstract and should be reimplemented in any sub-class.

Sets the information about the form to the comment specified. This information should be a human-readable comment about the form.

See also comment().

QDesignerFormWindowInterface.setContents (self, QIODevice dev)

This method is abstract and should be reimplemented in any sub-class.

Sets the form's contents using data obtained from the given device.

Data can be read from QFile objects or any other subclass of QIODevice.

See also contents().

QDesignerFormWindowInterface.setContents (self, QString contents)

This method is also a Qt slot with the C++ signature void setContents(const QString&).

This method is abstract and should be reimplemented in any sub-class.

Sets the contents of the form using data read from the specified contents string.

See also contents().

QDesignerFormWindowInterface.setDirty (self, bool dirty)

This method is also a Qt slot with the C++ signature void setDirty(bool).

This method is abstract and should be reimplemented in any sub-class.

If dirty is true, the form window is marked as dirty, meaning that it is modified but not saved. If dirty is false, the form window is considered to be unmodified.

See also isDirty().

QDesignerFormWindowInterface.setExportMacro (self, QString exportMacro)

This method is abstract and should be reimplemented in any sub-class.

Sets the form window's export macro to exportMacro. The export macro is used when building a widget plugin to export the form's interface to other components.

See also exportMacro().

QDesignerFormWindowInterface.setFeatures (self, Feature f)

This method is also a Qt slot with the C++ signature void setFeatures(QDesignerFormWindowInterface::Feature).

This method is abstract and should be reimplemented in any sub-class.

Enables the specified features for the form window.

See also features() and featureChanged().

QDesignerFormWindowInterface.setFileName (self, QString fileName)

This method is also a Qt slot with the C++ signature void setFileName(const QString&).

This method is abstract and should be reimplemented in any sub-class.

Sets the file name for the form to the given fileName.

See also fileName() and fileNameChanged().

QDesignerFormWindowInterface.setGrid (self, QPoint grid)

This method is also a Qt slot with the C++ signature void setGrid(const QPoint&).

This method is abstract and should be reimplemented in any sub-class.

Sets the grid size for the form window to the point specified by grid. In this function, the coordinates in the QPoint are used to specify the dimensions of a rectangle in the grid.

See also grid().

QDesignerFormWindowInterface.setIncludeHints (self, QStringList includeHints)

This method is abstract and should be reimplemented in any sub-class.

Sets the header files that will be included in the form window's associated UI file to the specified includeHints.

Header files may be local, i.e. relative to the project's directory, "mywidget.h", or global, i.e. part of Qt or the compilers standard libraries: <QtGui/QWidget>.

See also includeHints().

QDesignerFormWindowInterface.setLayoutDefault (self, int margin, int spacing)

This method is abstract and should be reimplemented in any sub-class.

Sets the default margin and spacing for the form's layout.

See also layoutDefault().

QDesignerFormWindowInterface.setLayoutFunction (self, QString margin, QString spacing)

This method is abstract and should be reimplemented in any sub-class.

Sets the margin and spacing for the form's layout.

The default layout properties will be replaced by the corresponding layout functions when uic generates code for the form, that is, if the functions are specified. This is useful when different environments requires different layouts for the same form.

See also layoutFunction().

QDesignerFormWindowInterface.setMainContainer (self, QWidget mainContainer)

This method is abstract and should be reimplemented in any sub-class.

Sets the main container widget on the form to the specified mainContainer.

See also mainContainer() and mainContainerChanged().

QDesignerFormWindowInterface.setPixmapFunction (self, QString pixmapFunction)

This method is abstract and should be reimplemented in any sub-class.

Sets the function used to load pixmaps into the form window to the given pixmapFunction.

See also pixmapFunction().

QDesignerFormWindowInterface.unmanageWidget (self, QWidget widget)

This method is also a Qt slot with the C++ signature void unmanageWidget(QWidget*).

This method is abstract and should be reimplemented in any sub-class.

Instructs the form window not to manage the specified widget.

See also aboutToUnmanageWidget() and widgetUnmanaged().


Qt Signal Documentation

void aboutToUnmanageWidget (QWidget*)

This is the default overload of this signal.

This signal is emitted whenever a widget on the form is about to become unmanaged. When this signal is emitted, the specified widget is still managed, and a widgetUnmanaged() signal will follow, indicating when it is no longer managed.

See also unmanageWidget() and isManaged().

void activated (QWidget*)

This is the default overload of this signal.

This signal is emitted whenever a widget is activated on the form. The activated widget is specified by widget.

void changed ()

This is the default overload of this signal.

This signal is emitted whenever a form is changed.

void featureChanged (QDesignerFormWindowInterface::Feature)

This is the default overload of this signal.

This signal is emitted whenever a feature changes in the form. The new feature is specified by feature.

See also setFeatures().

void fileNameChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the file name of the form changes. The new file name is specified by fileName.

See also setFileName().

void geometryChanged ()

This is the default overload of this signal.

This signal is emitted whenever the form's geometry changes.

void mainContainerChanged (QWidget*)

This is the default overload of this signal.

This signal is emitted whenever the main container changes. The new container is specified by mainContainer.

See also setMainContainer().

void objectRemoved (QObject*)

This is the default overload of this signal.

This signal is emitted whenever an object (such as an action or a QButtonGroup) is removed from the form. The object that was removed is specified by object.

This function was introduced in Qt 4.5.

void resourceFilesChanged ()

This is the default overload of this signal.

This signal is emitted whenever the list of resource files used by the form changes.

See also resourceFiles().

void selectionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the selection in the form changes.

See also selectWidget() and clearSelection().

void widgetManaged (QWidget*)

This is the default overload of this signal.

This signal is emitted whenever a widget on the form becomes managed. The newly managed widget is specified by widget.

See also manageWidget().

void widgetRemoved (QWidget*)

This is the default overload of this signal.

This signal is emitted whenever a widget is removed from the form. The widget that was removed is specified by widget.

void widgetUnmanaged (QWidget*)

This is the default overload of this signal.

This signal is emitted whenever a widget on the form becomes unmanaged. The newly released widget is specified by widget.

See also unmanageWidget() and aboutToUnmanageWidget().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignerformwindowmanagerinterface.html0000644000076500000240000005471412536324524025675 0ustar philstaff00000000000000 QDesignerFormWindowManagerInterface Class Reference
  Home · All Classes · Modules

QDesignerFormWindowManagerInterface Class Reference
[QtDesigner module]

The QDesignerFormWindowManagerInterface class allows you to manipulate the collection of form windows in Qt Designer, and control Qt Designer's form editing actions. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QDesignerFormWindowManagerInterface class allows you to manipulate the collection of form windows in Qt Designer, and control Qt Designer's form editing actions.

QDesignerFormWindowManagerInterface is not intended to be instantiated directly. Qt Designer uses the form window manager to control the various form windows in its workspace. You can retrieve an interface to Qt Designer's form window manager using the QDesignerFormEditorInterface.formWindowManager() function. For example:

         QDesignerFormWindowManagerInterface *manager = 0;
         QDesignerFormWindowInterface *formWindow = 0;

         manager = formEditor->formWindowManager();
         formWindow = manager->formWindow(0);

         manager->setActiveFormWindow(formWindow);

When implementing a custom widget plugin, a pointer to Qt Designer's current QDesignerFormEditorInterface object (formEditor in the example above) is provided by the QDesignerCustomWidgetInterface.initialize() function's parameter. You must subclass the QDesignerCustomWidgetInterface to expose your plugin to Qt Designer.

The form window manager interface provides the createFormWindow() function that enables you to create a new form window which you can add to the collection of form windows that the manager maintains, using the addFormWindow() slot. It also provides the formWindowCount() function returning the number of form windows currently under the manager's control, the formWindow() function returning the form window associated with a given index, and the activeFormWindow() function returning the currently selected form window. The removeFormWindow() slot allows you to reduce the number of form windows the manager must maintain, and the setActiveFormWindow() slot allows you to change the form window focus in Qt Designer's workspace.

In addition, QDesignerFormWindowManagerInterface contains a collection of functions that enables you to intervene and control Qt Designer's form editing actions. All these functions return the original action, making it possible to propagate the function further after intervention.

Finally, the interface provides three signals which are emitted when a form window is added, when the currently selected form window changes, or when a form window is removed, respectively. All the signals carry the form window in question as their parameter.


Method Documentation

QDesignerFormWindowManagerInterface.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an interface with the given parent for the form window manager.

QAction QDesignerFormWindowManagerInterface.actionAdjustSize (self)

Allows you to intervene and control Qt Designer's "adjust size" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionBreakLayout (self)

Allows you to intervene and control Qt Designer's "break layout" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionCopy (self)

Allows you to intervene and control Qt Designer's "copy" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionCut (self)

Allows you to intervene and control Qt Designer's "cut" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionDelete (self)

Allows you to intervene and control Qt Designer's "delete" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionFormLayout (self)

Allows you to intervene and control Qt Designer's "form layout" action. The function returns the original action.

FormWindowManagerPrivateMap *fwmpm = g_FormWindowManagerPrivateMap();

This function was introduced in Qt 4.4.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionGridLayout (self)

Allows you to intervene and control a request for grid layout for a form window in Qt Designer's workspace. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionHorizontalLayout (self)

Allows you to intervene and control a request for horizontal layout for a form window in Qt Designer's workspace. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionLower (self)

Allows you to intervene and control the action of lowering a form window in Qt Designer's workspace. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionPaste (self)

Allows you to intervene and control Qt Designer's "paste" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionRaise (self)

Allows you to intervene and control the action of raising of a form window in Qt Designer's workspace. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionRedo (self)

Allows you to intervene and control Qt Designer's "redo" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionSelectAll (self)

Allows you to intervene and control Qt Designer's "select all" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionSimplifyLayout (self)

Allows you to intervene and control Qt Designer's "simplify layout" action. The function returns the original action.

This function was introduced in Qt 4.4.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionSplitHorizontal (self)

Allows you to intervene and control Qt Designer's "split horizontal" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionSplitVertical (self)

Allows you to intervene and control Qt Designer's "split vertical" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionUndo (self)

Allows you to intervene and control Qt Designer's "undo" action. The function returns the original action.

See also QAction.

QAction QDesignerFormWindowManagerInterface.actionVerticalLayout (self)

Allows you to intervene and control a request for vertical layout for a form window in Qt Designer's workspace. The function returns the original action.

See also QAction.

QDesignerFormWindowInterface QDesignerFormWindowManagerInterface.activeFormWindow (self)

Returns the currently active form window in Qt Designer's workspace.

See also setActiveFormWindow() and removeFormWindow().

QDesignerFormWindowManagerInterface.addFormWindow (self, QDesignerFormWindowInterface formWindow)

This method is also a Qt slot with the C++ signature void addFormWindow(QDesignerFormWindowInterface*).

Adds the given formWindow to the collection of windows that Qt Designer's form window manager maintains.

See also formWindowAdded().

QDesignerFormEditorInterface QDesignerFormWindowManagerInterface.core (self)

Returns a pointer to Qt Designer's current QDesignerFormEditorInterface object.

QDesignerFormWindowInterface QDesignerFormWindowManagerInterface.createFormWindow (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a form window with the given parent and the given window flags.

See also addFormWindow().

QDesignerFormWindowInterface QDesignerFormWindowManagerInterface.formWindow (self, int index)

Returns the form window at the given index.

See also setActiveFormWindow() and removeFormWindow().

int QDesignerFormWindowManagerInterface.formWindowCount (self)

Returns the number of form windows maintained by Qt Designer's form window manager.

QDesignerFormWindowManagerInterface.removeFormWindow (self, QDesignerFormWindowInterface formWindow)

This method is also a Qt slot with the C++ signature void removeFormWindow(QDesignerFormWindowInterface*).

Removes the given formWindow from the collection of windows that Qt Designer's form window manager maintains.

See also formWindow() and formWindowRemoved().

QDesignerFormWindowManagerInterface.setActiveFormWindow (self, QDesignerFormWindowInterface formWindow)

This method is also a Qt slot with the C++ signature void setActiveFormWindow(QDesignerFormWindowInterface*).

Sets the given formWindow to be the currently active form window in Qt Designer's workspace.

See also activeFormWindow() and activeFormWindowChanged().


Qt Signal Documentation

void activeFormWindowChanged (QDesignerFormWindowInterface*)

This is the default overload of this signal.

This signal is emitted when the contents of the currently active form window in Qt Designer's workspace changed. A pointer to the currently active formWindow is passed as an argument.

See also activeFormWindow().

void formWindowAdded (QDesignerFormWindowInterface*)

This is the default overload of this signal.

This signal is emitted when a new form window is added to the collection of windows that Qt Designer's form window manager maintains. A pointer to the new formWindow is passed as an argument.

See also addFormWindow() and setActiveFormWindow().

void formWindowRemoved (QDesignerFormWindowInterface*)

This is the default overload of this signal.

This signal is emitted when a form window is removed from the collection of windows that Qt Designer's form window manager maintains. A pointer to the removed formWindow is passed as an argument.

See also removeFormWindow().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignermembersheetextension.html0000644000076500000240000005045312536324525024520 0ustar philstaff00000000000000 QDesignerMemberSheetExtension Class Reference
  Home · All Classes · Modules

QDesignerMemberSheetExtension Class Reference
[QtDesigner module]

The QDesignerMemberSheetExtension class allows you to manipulate a widget's member functions which is displayed when configuring connections using Qt Designer's mode for editing signals and slots. More...

Inherited by QPyDesignerMemberSheetExtension.

Methods

Special Methods


Detailed Description

The QDesignerMemberSheetExtension class allows you to manipulate a widget's member functions which is displayed when configuring connections using Qt Designer's mode for editing signals and slots.

QDesignerMemberSheetExtension is a collection of functions that is typically used to query a widget's member functions, and to manipulate the member functions' appearance in Qt Designer's signals and slots editing mode. For example:

 QDesignerMemberSheetExtension *memberSheet  = 0;
 QExtensionManager manager = formEditor->extensionManager();

 memberSheet = qt_extension<QDesignerMemberSheetExtension*>(manager, widget);
 int index = memberSheet->indexOf(setEchoMode);
 memberSheet->setVisible(index, false);

 delete memberSheet;

When implementing a custom widget plugin, a pointer to Qt Designer's current QDesignerFormEditorInterface object (formEditor in the example above) is provided by the QDesignerCustomWidgetInterface.initialize() function's parameter.

The member sheet (and any other extension), can be retrieved by querying Qt Designer's extension manager using the qt_extension() function. When you want to release the extension, you only need to delete the pointer.

All widgets have a default member sheet used in Qt Designer's signals and slots editing mode with the widget's member functions. But QDesignerMemberSheetExtension also provides an interface for creating custom member sheet extensions.

Warning: Qt Designer uses the QDesignerMemberSheetExtension to facilitate the signal and slot editing mode. Whenever a connection between two widgets is requested, Qt Designer will query for the widgets' member sheet extensions. If a widget has an implemented member sheet extension, this extension will override the default member sheet.

To create a member sheet extension, your extension class must inherit from both QObject and QDesignerMemberSheetExtension. Then, since we are implementing an interface, we must ensure that it's made known to the meta object system using the Q_INTERFACES() macro:

 class MyMemberSheetExtension : public QObject,
         public QDesignerMemberSheetExtension
 {
     Q_OBJECT
     Q_INTERFACES(QDesignerMemberSheetExtension)

 public:
     ...
 }

This enables Qt Designer to use qobject_cast() to query for supported interfaces using nothing but a QObject pointer.

In Qt Designer the extensions are not created until they are required. For that reason, when implementing a member sheet extension, you must also create a QExtensionFactory, i.e a class that is able to make an instance of your extension, and register it using Qt Designer's extension manager.

When a widget's member sheet extension is required, Qt Designer's extension manager will run through all its registered factories calling QExtensionFactory.createExtension() for each until the first one that is able to create a member sheet extension for that widget, is found. This factory will then make an instance of the extension. If no such factory is found, Qt Designer will use the default member sheet.

There are four available types of extensions in Qt Designer: QDesignerContainerExtension, QDesignerMemberSheetExtension, QDesignerPropertySheetExtension and QDesignerTaskMenuExtension. Qt Designer's behavior is the same whether the requested extension is associated with a multi page container, a member sheet, a property sheet or a task menu.

The QExtensionFactory class provides a standard extension factory, and can also be used as an interface for custom extension factories. You can either create a new QExtensionFactory and reimplement the QExtensionFactory.createExtension() function. For example:

 QObject *ANewExtensionFactory.createExtension(QObject *object,
         const QString &iid, QObject *parent) const
 {
     if (iid != Q_TYPEID(QDesignerMemberSheetExtension))
         return 0;

     if (MyCustomWidget *widget = qobject_cast<MyCustomWidget*>
            (object))
         return new MyMemberSheetExtension(widget, parent);

     return 0;
 }

Or you can use an existing factory, expanding the QExtensionFactory.createExtension() function to make the factory able to create a member sheet extension as well. For example:

 QObject *AGeneralExtensionFactory.createExtension(QObject *object,
         const QString &iid, QObject *parent) const
 {
     MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object);

     if (widget && (iid == Q_TYPEID(QDesignerTaskMenuExtension))) {
         return new MyTaskMenuExtension(widget, parent);

     } else if (widget && (iid == Q_TYPEID(QDesignerMemberSheetExtension))) {
         return new MyMemberSheetExtension(widget, parent);

     } else {
         return 0;
     }
 }

For a complete example using an extension class, see Task Menu Extension example. The example shows how to create a custom widget plugin for Qt Designer, and how to to use the QDesignerTaskMenuExtension class to add custom items to Qt Designer's task menu.


Method Documentation

QDesignerMemberSheetExtension.__init__ (self)

QDesignerMemberSheetExtension.__init__ (self, QDesignerMemberSheetExtension)

int QDesignerMemberSheetExtension.count (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the extension's number of member functions.

QString QDesignerMemberSheetExtension.declaredInClass (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the class in which the member function with the given index is declared.

See also indexOf().

int QDesignerMemberSheetExtension.indexOf (self, QString name)

This method is abstract and should be reimplemented in any sub-class.

Returns the index of the member function specified by the given name.

See also memberName().

bool QDesignerMemberSheetExtension.inheritedFromWidget (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the member function with the given index is inherited from QWidget, otherwise false.

See also indexOf().

bool QDesignerMemberSheetExtension.isSignal (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the member function with the given index is a signal, otherwise false.

See also indexOf().

bool QDesignerMemberSheetExtension.isSlot (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the member function with the given index is a slot, otherwise false.

See also indexOf().

bool QDesignerMemberSheetExtension.isVisible (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the member function with the given index is visible in Qt Designer's signal and slot editor, otherwise false.

See also indexOf() and setVisible().

QString QDesignerMemberSheetExtension.memberGroup (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the member group specified for the function with the given index.

See also indexOf() and setMemberGroup().

QString QDesignerMemberSheetExtension.memberName (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the member function with the given index.

See also indexOf().

list-of-QByteArray QDesignerMemberSheetExtension.parameterNames (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the parameter names of the member function with the given index, as a QByteArray list.

See also indexOf() and parameterTypes().

list-of-QByteArray QDesignerMemberSheetExtension.parameterTypes (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the parameter types of the member function with the given index, as a QByteArray list.

See also indexOf() and parameterNames().

QDesignerMemberSheetExtension.setMemberGroup (self, int index, QString group)

This method is abstract and should be reimplemented in any sub-class.

Sets the member group of the member function with the given index, to group.

See also indexOf() and memberGroup().

QDesignerMemberSheetExtension.setVisible (self, int index, bool b)

This method is abstract and should be reimplemented in any sub-class.

If visible is true, the member function with the given index is visible in Qt Designer's signals and slots editing mode; otherwise the member function is hidden.

See also indexOf() and isVisible().

QString QDesignerMemberSheetExtension.signature (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the signature of the member function with the given index.

See also indexOf().

QDesignerMemberSheetExtension.__len__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignerobjectinspectorinterface.html0000644000076500000240000001412012536324525025330 0ustar philstaff00000000000000 QDesignerObjectInspectorInterface Class Reference
  Home · All Classes · Modules

QDesignerObjectInspectorInterface Class Reference
[
QtDesigner module]

The QDesignerObjectInspectorInterface class allows you to change the focus of Qt Designer's object inspector. More...

Inherits QWidget.

Methods

  • __init__ (self, QWidget parent, Qt.WindowFlags flags = 0)
  • QDesignerFormEditorInterface core (self)
  • setFormWindow (self, QDesignerFormWindowInterface formWindow)

Detailed Description

The QDesignerObjectInspectorInterface class allows you to change the focus of Qt Designer's object inspector.

You can use the QDesignerObjectInspectorInterface to change the current form window selection. For example, when implementing a custom widget plugin:

         QDesignerObjectInspectorInterface *objectInspector = 0;
         objectInspector = formEditor->objectInspector();

         QDesignerFormWindowManagerInterface *manager = 0;
         manager = formEditor->formWindowManager();

         objectInspector->setFormWindow(manager->formWindow(0));

The QDesignerObjectInspectorInterface class is not intended to be instantiated directly. You can retrieve an interface to Qt Designer's object inspector using the QDesignerFormEditorInterface.objectInspector() function. A pointer to Qt Designer's current QDesignerFormEditorInterface object (formEditor in the example above) is provided by the QDesignerCustomWidgetInterface.initialize() function's parameter. When implementing a custom widget plugin, you must subclass the QDesignerCustomWidgetInterface to expose your plugin to Qt Designer.

The interface provides the core() function that you can use to retrieve a pointer to Qt Designer's current QDesignerFormEditorInterface object, and the setFormWindow() function that enables you to change the current form window selection.


Method Documentation

QDesignerObjectInspectorInterface.__init__ (self, QWidget parent, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an object inspector interface with the given parent and the specified window flags.

QDesignerFormEditorInterface QDesignerObjectInspectorInterface.core (self)

Returns a pointer to Qt Designer's current QDesignerFormEditorInterface object.

QDesignerObjectInspectorInterface.setFormWindow (self, QDesignerFormWindowInterface formWindow)

This method is also a Qt slot with the C++ signature void setFormWindow(QDesignerFormWindowInterface*).

This method is abstract and should be reimplemented in any sub-class.

Sets the currently selected form window to formWindow.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignerpropertyeditorinterface.html0000644000076500000240000003134412536324525025235 0ustar philstaff00000000000000 QDesignerPropertyEditorInterface Class Reference
  Home · All Classes · Modules

QDesignerPropertyEditorInterface Class Reference
[QtDesigner module]

The QDesignerPropertyEditorInterface class allows you to query and manipulate the current state of Qt Designer's property editor. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QDesignerPropertyEditorInterface class allows you to query and manipulate the current state of Qt Designer's property editor.

QDesignerPropertyEditorInterface contains a collection of functions that is typically used to query the property editor for its current state, and several slots manipulating it's state. The interface also provide a signal, propertyChanged(), which is emitted whenever a property changes in the property editor. The signal's arguments are the property that changed and its new value.

For example, when implementing a custom widget plugin, you can connect the signal to a custom slot:

         QDesignerPropertyEditorInterface *propertyEditor = 0;
         propertyEditor = formEditor->propertyEditor();

         connect(propertyEditor, SIGNAL(propertyChanged(QString, QVariant)),
                 this, SLOT(checkProperty(QString, QVariant)));

Then the custom slot can check if the new value is within the range we want when a specified property, belonging to a particular widget, changes:

         void checkProperty(QString property, QVariant value) {
             QDesignerPropertyEditorInterface *propertyEditor = 0;
             propertyEditor = formEditor->propertyEditor();

             QObject *object = propertyeditor->object();
             MyCustomWidget *widget = qobject_cast<MyCustomWidget>(object);

             if (widget && property == aProperty && value != expectedValue)
                 {...}
         }

The QDesignerPropertyEditorInterface class is not intended to be instantiated directly. You can retrieve an interface to Qt Designer's property editor using the QDesignerFormEditorInterface.propertyEditor() function. A pointer to Qt Designer's current QDesignerFormEditorInterface object (formEditor in the examples above) is provided by the QDesignerCustomWidgetInterface.initialize() function's parameter. When implementing a custom widget plugin, you must subclass the QDesignerCustomWidgetInterface to expose your plugin to Qt Designer.

The functions accessing the property editor are the core() function that you can use to retrieve an interface to the form editor, the currentPropertyName() function that returns the name of the currently selected property in the property editor, the object() function that returns the currently selected object in Qt Designer's workspace, and the isReadOnly() function that returns true if the property editor is write proteced (otherwise false).

The slots manipulating the property editor's state are the setObject() slot that you can use to change the currently selected object in Qt Designer's workspace, the setPropertyValue() slot that changes the value of a given property and the setReadOnly() slot that control the write protection of the property editor.


Method Documentation

QDesignerPropertyEditorInterface.__init__ (self, QWidget parent, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a property editor interface with the given parent and the specified window flags.

QDesignerFormEditorInterface QDesignerPropertyEditorInterface.core (self)

Returns a pointer to Qt Designer's current QDesignerFormEditorInterface object.

QString QDesignerPropertyEditorInterface.currentPropertyName (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the currently selected property in the property editor.

See also setPropertyValue().

bool QDesignerPropertyEditorInterface.isReadOnly (self)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the property editor is write protected; otherwise false.

See also setReadOnly().

QObject QDesignerPropertyEditorInterface.object (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the currently selected object in Qt Designer's workspace.

See also setObject().

QDesignerPropertyEditorInterface.setObject (self, QObject object)

This method is also a Qt slot with the C++ signature void setObject(QObject*).

This method is abstract and should be reimplemented in any sub-class.

Changes the currently selected object in Qt Designer's workspace, to object.

See also object().

QDesignerPropertyEditorInterface.setPropertyValue (self, QString name, QVariant value, bool changed = True)

This method is also a Qt slot with the C++ signature void setPropertyValue(const QString&,const QVariant&,bool = 1).

This method is abstract and should be reimplemented in any sub-class.

Sets the value of the property specified by name to value.

In addition, the property is marked as changed in the property editor, i.e. its value is different from the default value.

See also currentPropertyName() and propertyChanged().

QDesignerPropertyEditorInterface.setReadOnly (self, bool readOnly)

This method is also a Qt slot with the C++ signature void setReadOnly(bool).

This method is abstract and should be reimplemented in any sub-class.

If readOnly is true, the property editor is made write protected; otherwise the write protection is removed.

See also isReadOnly().


Qt Signal Documentation

void propertyChanged (const QString&,const QVariant&)

This is the default overload of this signal.

This signal is emitted whenever a property changes in the property editor. The property that changed and its new value are specified by name and value respectively.

See also setPropertyValue().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignerpropertysheetextension.html0000644000076500000240000005746412536324525025146 0ustar philstaff00000000000000 QDesignerPropertySheetExtension Class Reference
  Home · All Classes · Modules

QDesignerPropertySheetExtension Class Reference
[QtDesigner module]

The QDesignerPropertySheetExtension class allows you to manipulate a widget's properties which is displayed in Qt Designer's property editor. More...

Inherited by QPyDesignerPropertySheetExtension.

Methods

Special Methods


Detailed Description

The QDesignerPropertySheetExtension class allows you to manipulate a widget's properties which is displayed in Qt Designer's property editor.

QDesignerPropertySheetExtension provides a collection of functions that are typically used to query a widget's properties, and to manipulate the properties' appearance in the property editor. For example:

 QDesignerPropertySheetExtension *propertySheet  = 0;
 QExtensionManager manager = formEditor->extensionManager();

 propertySheet = qt_extension<QDesignerPropertySheetExtension*>(manager, widget);
 int index = propertySheet->indexOf(QLatin1String("margin"));

 propertySheet->setProperty(index, 10);
 propertySheet->setChanged(index, true);

 delete propertySheet;

Note that if you change the value of a property using the QDesignerPropertySheetExtension.setProperty() function, the undo stack is not updated. To ensure that a property's value can be reverted using the undo stack, you must use the QDesignerFormWindowCursorInterface.setProperty() function, or its buddy setWidgetProperty(), instead.

When implementing a custom widget plugin, a pointer to Qt Designer's current QDesignerFormEditorInterface object (formEditor in the example above) is provided by the QDesignerCustomWidgetInterface.initialize() function's parameter.

The property sheet, or any other extension, can be retrieved by querying Qt Designer's extension manager using the qt_extension() function. When you want to release the extension, you only need to delete the pointer.

All widgets have a default property sheet which populates Qt Designer's property editor with the widget's properties (i.e the ones defined with the Q_PROPERTY() macro). But QDesignerPropertySheetExtension also provides an interface for creating custom property sheet extensions.

Warning: Qt Designer uses the QDesignerPropertySheetExtension to feed its property editor. Whenever a widget is selected in its workspace, Qt Designer will query for the widget's property sheet extension. If the selected widget has an implemented property sheet extension, this extension will override the default property sheet.

To create a property sheet extension, your extension class must inherit from both QObject and QDesignerPropertySheetExtension. Then, since we are implementing an interface, we must ensure that it's made known to the meta object system using the Q_INTERFACES() macro:

 class MyPropertySheetExtension : public QObject,
         public QDesignerPropertySheetExtension
 {
     Q_OBJECT
     Q_INTERFACES(QDesignerPropertySheetExtension)

 public:
     ...
 }

This enables Qt Designer to use qobject_cast() to query for supported interfaces using nothing but a QObject pointer.

In Qt Designer the extensions are not created until they are required. For that reason, when implementing a property sheet extension, you must also create a QExtensionFactory, i.e a class that is able to make an instance of your extension, and register it using Qt Designer's extension manager.

When a property sheet extension is required, Qt Designer's extension manager will run through all its registered factories calling QExtensionFactory.createExtension() for each until the first one that is able to create a property sheet extension for the selected widget, is found. This factory will then make an instance of the extension. If no such factory can be found, Qt Designer will use the default property sheet.

There are four available types of extensions in Qt Designer: QDesignerContainerExtension, QDesignerMemberSheetExtension, QDesignerPropertySheetExtension and QDesignerTaskMenuExtension. Qt Designer's behavior is the same whether the requested extension is associated with a multi page container, a member sheet, a property sheet or a task menu.

The QExtensionFactory class provides a standard extension factory, and can also be used as an interface for custom extension factories. You can either create a new QExtensionFactory and reimplement the QExtensionFactory.createExtension() function. For example:

 QObject *ANewExtensionFactory.createExtension(QObject *object,
         const QString &iid, QObject *parent) const
 {
     if (iid != Q_TYPEID(QDesignerPropertySheetExtension))
         return 0;

     if (MyCustomWidget *widget = qobject_cast<MyCustomWidget*>
            (object))
         return new MyPropertySheetExtension(widget, parent);

     return 0;
 }

Or you can use an existing factory, expanding the QExtensionFactory.createExtension() function to make the factory able to create a property sheet extension extension as well. For example:

 QObject *AGeneralExtensionFactory.createExtension(QObject *object,
         const QString &iid, QObject *parent) const
 {
     MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object);

     if (widget && (iid == Q_TYPEID(QDesignerTaskMenuExtension))) {
         return new MyTaskMenuExtension(widget, parent);

     } else if (widget && (iid == Q_TYPEID(QDesignerPropertySheetExtension))) {
         return new MyPropertySheetExtension(widget, parent);

     } else {
         return 0;
     }
 }

For a complete example using an extension class, see the Task Menu Extension example. The example shows how to create a custom widget plugin for Qt Designer, and how to to use the QDesignerTaskMenuExtension class to add custom items to Qt Designer's task menu.


Method Documentation

QDesignerPropertySheetExtension.__init__ (self)

QDesignerPropertySheetExtension.__init__ (self, QDesignerPropertySheetExtension)

int QDesignerPropertySheetExtension.count (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the selected widget's number of properties.

bool QDesignerPropertySheetExtension.hasReset (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the property at the given index has a reset button in Qt Designer's property editor, otherwise false.

See also indexOf() and reset().

int QDesignerPropertySheetExtension.indexOf (self, QString name)

This method is abstract and should be reimplemented in any sub-class.

Returns the index for a given property name.

See also propertyName().

bool QDesignerPropertySheetExtension.isAttribute (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the property at the given index is an attribute, which will be excluded from the UI file, otherwise false.

See also indexOf() and setAttribute().

bool QDesignerPropertySheetExtension.isChanged (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the value of the property at the given index differs from the property's default value, otherwise false.

See also indexOf(), setChanged(), and reset().

bool QDesignerPropertySheetExtension.isVisible (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the property at the given index is visible in Qt Designer's property editor, otherwise false.

See also indexOf() and setVisible().

QVariant QDesignerPropertySheetExtension.property (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the value of the property at the given index.

See also indexOf(), setProperty(), and propertyGroup().

QString QDesignerPropertySheetExtension.propertyGroup (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the property group for the property at the given index.

Qt Designer's property editor supports property groups, i.e. sections of related properties. A property can be related to a group using the setPropertyGroup() function. The default group of any property is the name of the class that defines it. For example, the QObject.objectName property appears within the QObject property group.

See also indexOf() and setPropertyGroup().

QString QDesignerPropertySheetExtension.propertyName (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the property at the given index.

See also indexOf().

bool QDesignerPropertySheetExtension.reset (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Resets the value of the property at the given index, to the default value. Returns true if a default value could be found, otherwise false.

See also indexOf(), hasReset(), and isChanged().

QDesignerPropertySheetExtension.setAttribute (self, int index, bool b)

This method is abstract and should be reimplemented in any sub-class.

If attribute is true, the property at the given index is made an attribute which will be excluded from the UI file; otherwise it will be included.

See also indexOf() and isAttribute().

QDesignerPropertySheetExtension.setChanged (self, int index, bool changed)

This method is abstract and should be reimplemented in any sub-class.

Sets whether the property at the given index is different from its default value, or not, depending on the changed parameter.

See also indexOf() and isChanged().

QDesignerPropertySheetExtension.setProperty (self, int index, QVariant value)

This method is abstract and should be reimplemented in any sub-class.

Sets the value of the property at the given index.

Warning: If you change the value of a property using this function, the undo stack is not updated. To ensure that a property's value can be reverted using the undo stack, you must use the QDesignerFormWindowCursorInterface.setProperty() function, or its buddy setWidgetProperty(), instead.

See also indexOf(), property(), and propertyGroup().

QDesignerPropertySheetExtension.setPropertyGroup (self, int index, QString group)

This method is abstract and should be reimplemented in any sub-class.

Sets the property group for the property at the given index to group.

Relating a property to a group makes it appear within that group's section in the property editor. The default property group of any property is the name of the class that defines it. For example, the QObject.objectName property appears within the QObject property group.

See also indexOf(), property(), and propertyGroup().

QDesignerPropertySheetExtension.setVisible (self, int index, bool b)

This method is abstract and should be reimplemented in any sub-class.

If visible is true, the property at the given index is visible in Qt Designer's property editor; otherwise the property is hidden.

See also indexOf() and isVisible().

QDesignerPropertySheetExtension.__len__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignertaskmenuextension.html0000644000076500000240000003066612536324525024053 0ustar philstaff00000000000000 QDesignerTaskMenuExtension Class Reference
  Home · All Classes · Modules

QDesignerTaskMenuExtension Class Reference
[
QtDesigner module]

The QDesignerTaskMenuExtension class allows you to add custom menu entries to Qt Designer's task menu. More...

Inherited by QPyDesignerTaskMenuExtension.

Methods


Detailed Description

The QDesignerTaskMenuExtension class allows you to add custom menu entries to Qt Designer's task menu.

QDesignerTaskMenuExtension provides an interface for creating custom task menu extensions. It is typically used to create task menu entries that are specific to a plugin in Qt Designer.

Qt Designer uses the QDesignerTaskMenuExtension to feed its task menu. Whenever a task menu is requested, Qt Designer will query for the selected widget's task menu extension.

A task menu extension is a collection of QActions. The actions appear as entries in the task menu when the plugin with the specified extension is selected. The image above shows the custom Edit State... action which appears in addition to Qt Designer's default task menu entries: Cut, Copy, Paste etc.

To create a custom task menu extension, your extension class must inherit from both QObject and QDesignerTaskMenuExtension. For example:

 class MyTaskMenuExtension : public QObject,
         public QDesignerTaskMenuExtension
 {
     Q_OBJECT
     Q_INTERFACES(QDesignerTaskMenuExtension)

 public:
     MyTaskMenuExtension(MyCustomWidget *widget, QObject *parent);

     QAction *preferredEditAction() const;
     QList<QAction *> taskActions() const;

 private slots:
     void mySlot();

 private:
     MyCustomWidget *widget;
     QAction *myAction;
 };

Since we are implementing an interface, we must ensure that it is made known to the meta-object system using the Q_INTERFACES() macro. This enables Qt Designer to use the qobject_cast() function to query for supported interfaces using nothing but a QObject pointer.

You must reimplement the taskActions() function to return a list of actions that will be included in Qt Designer task menu. Optionally, you can reimplement the preferredEditAction() function to set the action that is invoked when selecting your plugin and pressing F2. The preferred edit action must be one of the actions returned by taskActions() and, if it's not defined, pressing the F2 key will simply be ignored.

In Qt Designer, extensions are not created until they are required. A task menu extension, for example, is created when you click the right mouse button over a widget in Qt Designer's workspace. For that reason you must also construct an extension factory, using either QExtensionFactory or a subclass, and register it using Qt Designer's extension manager.

When a task menu extension is required, Qt Designer's extension manager will run through all its registered factories calling QExtensionFactory.createExtension() for each until it finds one that is able to create a task menu extension for the selected widget. This factory will then make an instance of the extension.

There are four available types of extensions in Qt Designer: QDesignerContainerExtension, QDesignerMemberSheetExtension, QDesignerPropertySheetExtension, and QDesignerTaskMenuExtension. Qt Designer's behavior is the same whether the requested extension is associated with a container, a member sheet, a property sheet or a task menu.

The QExtensionFactory class provides a standard extension factory, and can also be used as an interface for custom extension factories. You can either create a new QExtensionFactory and reimplement the QExtensionFactory.createExtension() function. For example:

 QObject *ANewExtensionFactory.createExtension(QObject *object,
         const QString &iid, QObject *parent) const
 {
     if (iid != Q_TYPEID(QDesignerTaskMenuExtension))
         return 0;

     if (MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object))
         return new MyTaskMenuExtension(widget, parent);

     return 0;
 }

Or you can use an existing factory, expanding the QExtensionFactory.createExtension() function to make the factory able to create a task menu extension as well. For example:

 QObject *AGeneralExtensionFactory.createExtension(QObject *object,
         const QString &iid, QObject *parent) const
 {
     MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object);

     if (widget && (iid == Q_TYPEID(QDesignerContainerExtension))) {
         return new MyContainerExtension(widget, parent);

     } else if (widget && (iid == Q_TYPEID(QDesignerTaskMenuExtension))) {
         return new MyTaskMenuExtension(widget, parent);

     } else {
         return 0;
     }
 }

For a complete example using the QDesignerTaskMenuExtension class, see the Task Menu Extension example. The example shows how to create a custom widget plugin for Qt Designer, and how to to use the QDesignerTaskMenuExtension class to add custom items to Qt Designer's task menu.


Method Documentation

QDesignerTaskMenuExtension.__init__ (self)

QDesignerTaskMenuExtension.__init__ (self, QDesignerTaskMenuExtension)

QAction QDesignerTaskMenuExtension.preferredEditAction (self)

Returns the action that is invoked when selecting a plugin with the specified extension and pressing F2.

The action must be one of the actions returned by taskActions().

list-of-QAction QDesignerTaskMenuExtension.taskActions (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the task menu extension as a list of actions which will be included in Qt Designer's task menu when a plugin with the specified extension is selected.

The function must be reimplemented to add actions to the list.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesignerwidgetboxinterface.html0000644000076500000240000002236312536324525024137 0ustar philstaff00000000000000 QDesignerWidgetBoxInterface Class Reference
  Home · All Classes · Modules

QDesignerWidgetBoxInterface Class Reference
[
QtDesigner module]

The QDesignerWidgetBoxInterface class allows you to control the contents of Qt Designer's widget box. More...

Inherits QWidget.

Methods


Detailed Description

The QDesignerWidgetBoxInterface class allows you to control the contents of Qt Designer's widget box.

QDesignerWidgetBoxInterface contains a collection of functions that is typically used to manipulate the contents of Qt Designer's widget box.

Qt Designer uses an XML file to populate its widget box. The name of that file is one of the widget box's properties, and you can retrieve it using the fileName() function.

QDesignerWidgetBoxInterface also provides the save() function that saves the contents of the widget box in the file specified by the widget box's file name property. If you have made changes to the widget box, for example by dropping a widget into the widget box, without calling the save() function, the original content can be restored by a simple invocation of the load() function:

         QDesignerWidgetBoxInterface *widgetBox = 0:
         widgetBox = formEditor->widgetBox();

         widgetBox->load();

The QDesignerWidgetBoxInterface class is not intended to be instantiated directly. You can retrieve an interface to Qt Designer's widget box using the QDesignerFormEditorInterface.widgetBox() function. A pointer to Qt Designer's current QDesignerFormEditorInterface object (formEditor in the example above) is provided by the QDesignerCustomWidgetInterface.initialize() function's parameter. When implementing a custom widget plugin, you must subclass the QDesignerCustomWidgetInterface to expose your plugin to Qt Designer.

If you want to save your changes, and at the same time preserve the original contents, you can use the save() function combined with the setFileName() function to save your changes into another file. Remember to store the name of the original file first:

         QString originalFile = widgetBox->fileName();

         widgetBox->setFileName("myWidgetBox.xml");
         widgetBox->save();

Then you can restore the original contents of the widget box by resetting the file name to the original file and calling load():

         widgetBox->setFileName(originalFile);
         widgetBox->load();

In a similar way, you can later use your customized XML file:

         if (widgetBox->filename() != "myWidgetBox.xml") {
             widgetBox->setFileName("myWidgetBox.xml");
             widgetBox->load();
         }

Method Documentation

QDesignerWidgetBoxInterface.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a widget box interface with the given parent and the specified window flags.

QString QDesignerWidgetBoxInterface.fileName (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the XML file Qt Designer is currently using to populate its widget box.

See also setFileName().

bool QDesignerWidgetBoxInterface.load (self)

This method is abstract and should be reimplemented in any sub-class.

Populates Qt Designer's widget box by loading (or reloading) the currently specified XML file. Returns true if the file is successfully loaded; otherwise false.

See also setFileName().

bool QDesignerWidgetBoxInterface.save (self)

This method is abstract and should be reimplemented in any sub-class.

Saves the contents of Qt Designer's widget box in the file specified by the fileName() function. Returns true if the content is successfully saved; otherwise false.

See also fileName() and setFileName().

QDesignerWidgetBoxInterface.setFileName (self, QString file_name)

This method is abstract and should be reimplemented in any sub-class.

Sets the XML file that Qt Designer will use to populate its widget box, to fileName. You must call load() to update the widget box with the new XML file.

See also fileName() and load().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesktopservices.html0000644000076500000240000003530712536324502021753 0ustar philstaff00000000000000 QDesktopServices Class Reference
  Home · All Classes · Modules

QDesktopServices Class Reference
[QtGui module]

The QDesktopServices class provides methods for accessing common desktop services. More...

Types

  • enum StandardLocation { DesktopLocation, DocumentsLocation, FontsLocation, ApplicationsLocation, ..., CacheLocation }

Methods

Static Methods


Detailed Description

The QDesktopServices class provides methods for accessing common desktop services.

Many desktop environments provide services that can be used by applications to perform common tasks, such as opening a web page, in a way that is both consistent and takes into account the user's application preferences.

This class contains functions that provide simple interfaces to these services that indicate whether they succeeded or failed.

The openUrl() function is used to open files located at arbitrary URLs in external applications. For URLs that correspond to resources on the local filing system (where the URL scheme is "file"), a suitable application will be used to open the file; otherwise, a web browser will be used to fetch and display the file.

The user's desktop settings control whether certain executable file types are opened for browsing, or if they are executed instead. Some desktop environments are configured to prevent users from executing files obtained from non-local URLs, or to ask the user's permission before doing so.

URL Handlers

The behavior of the openUrl() function can be customized for individual URL schemes to allow applications to override the default handling behavior for certain types of URLs.

The dispatch mechanism allows only one custom handler to be used for each URL scheme; this is set using the setUrlHandler() function. Each handler is implemented as a slot which accepts only a single QUrl argument.

The existing handlers for each scheme can be removed with the unsetUrlHandler() function. This returns the handling behavior for the given scheme to the default behavior.

This system makes it easy to implement a help system, for example. Help could be provided in labels and text browsers using help://myapplication/mytopic URLs, and by registering a handler it becomes possible to display the help text inside the application:

 class MyHelpHandler : public QObject
 {
     Q_OBJECT
 public:
     ...
 public slots:
     void showHelp(const QUrl &url);
 };

 QDesktopServices.setUrlHandler("help", helpInstance, "showHelp");

If inside the handler you decide that you can't open the requested URL, you can just call QDesktopServices.openUrl() again with the same argument, and it will try to open the URL using the appropriate mechanism for the user's desktop environment.


Type Documentation

QDesktopServices.StandardLocation

This enum describes the different locations that can be queried by QDesktopServices.storageLocation and QDesktopServices.displayName.

Constant Value Description
QDesktopServices.DesktopLocation 0 Returns the user's desktop directory.
QDesktopServices.DocumentsLocation 1 Returns the user's document.
QDesktopServices.FontsLocation 2 Returns the user's fonts.
QDesktopServices.ApplicationsLocation 3 Returns the user's applications.
QDesktopServices.MusicLocation 4 Returns the users music.
QDesktopServices.MoviesLocation 5 Returns the user's movies.
QDesktopServices.PicturesLocation 6 Returns the user's pictures.
QDesktopServices.TempLocation 7 Returns the system's temporary directory.
QDesktopServices.HomeLocation 8 Returns the user's home directory.
QDesktopServices.DataLocation 9 Returns a directory location where persistent application data can be stored. QCoreApplication.applicationName and QCoreApplication.organizationName should work on all platforms.
QDesktopServices.CacheLocation 10 Returns a directory location where user-specific non-essential (cached) data should be written.

This enum was introduced or modified in Qt 4.4.

See also storageLocation() and displayName().


Method Documentation

QDesktopServices.__init__ (self)

QDesktopServices.__init__ (self, QDesktopServices)

QString QDesktopServices.displayName (StandardLocation type)

Returns a localized display name for the given location type or an empty QString if no relevant location can be found.

bool QDesktopServices.openUrl (QUrl url)

Opens the given url in the appropriate Web browser for the user's desktop environment, and returns true if successful; otherwise returns false.

If the URL is a reference to a local file (i.e., the URL scheme is "file") then it will be opened with a suitable application instead of a Web browser.

The following example opens a file on the Windows file system residing on a path that contains spaces:

 QDesktopServices.openUrl(QUrl("file:///C:/Documents and Settings/All Users/Desktop", QUrl.TolerantMode));

If a mailto URL is specified, the user's e-mail client will be used to open a composer window containing the options specified in the URL, similar to the way mailto links are handled by a Web browser.

For example, the following URL contains a recipient (user@foo.com), a subject (Test), and a message body (Just a test):

 mailto:user@foo.com?subject=Test&body=Just a test

Warning: Although many e-mail clients can send attachments and are Unicode-aware, the user may have configured their client without these features. Also, certain e-mail clients (e.g., Lotus Notes) have problems with long URLs.

Note: On Symbian OS, SwEvent capability is required to open the given url if the Web browser is already running.

See also setUrlHandler().

QDesktopServices.setUrlHandler (QString scheme, QObject receiver, str method)

Sets the handler for the given scheme to be the handler method provided by the receiver object.

This function provides a way to customize the behavior of openUrl(). If openUrl() is called with a URL with the specified scheme then the given method on the receiver object is called instead of QDesktopServices launching an external application.

The provided method must be implemented as a slot that only accepts a single QUrl argument.

If setUrlHandler() is used to set a new handler for a scheme which already has a handler, the existing handler is simply replaced with the new one. Since QDesktopServices does not take ownership of handlers, no objects are deleted when a handler is replaced.

Note that the handler will always be called from within the same thread that calls QDesktopServices.openUrl().

See also openUrl() and unsetUrlHandler().

QDesktopServices.setUrlHandler (QString scheme, callable method)

QString QDesktopServices.storageLocation (StandardLocation type)

Returns the default system directory where files of type belong, or an empty string if the location cannot be determined.

Note: The storage location returned can be a directory that does not exist; i.e., it may need to be created by the system or the user.

Note: On Symbian OS, ApplicationsLocation always point /sys/bin folder on the same drive with executable. FontsLocation always points to folder on ROM drive. Symbian OS does not have desktop concept, DesktopLocation returns same path as DocumentsLocation. Rest of the standard locations point to folder on same drive with executable, except that if executable is in ROM the folder from C drive is returned.

This function was introduced in Qt 4.4.

QDesktopServices.unsetUrlHandler (QString scheme)

Removes a previously set URL handler for the specified scheme.

See also setUrlHandler().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdesktopwidget.html0000644000076500000240000003330412536324502021406 0ustar philstaff00000000000000 QDesktopWidget Class Reference
  Home · All Classes · Modules

QDesktopWidget Class Reference
[QtGui module]

The QDesktopWidget class provides access to screen information on multi-head systems. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QDesktopWidget class provides access to screen information on multi-head systems.

Systems with more than one graphics card and monitor can manage the physical screen space available either as multiple desktops, or as a large virtual desktop.

This class provides information about the user's desktop, such as its total size, number of screens, the geometry of each screen, and whether they are configured as separate desktops or a single virtual desktop.

Widgets provided by Qt use this class to place tooltips, menus and dialog boxes on the correct screen for their parent or application widgets. Applications can use this class to obtain information that can be used to save window positions, or to place child widgets and dialogs on one particular screen.

Obtaining a Desktop Widget

The QApplication.desktop() function is used to get an instance of QDesktopWidget.

The widget's screenGeometry() function provides information about the geometry of the available screens with. The number of screens available is returned by screenCount, and the screenCountChanged() signal is emitted when screens are added or removed. The screen number that a particular point or widget is located in is returned by screenNumber().

Screen Geometry

To obtain the dimensions of a particular screen, call the screenGeometry() function. On some desktop environments, not all of the screen is available for applications to use; for example, an application dock or menu bar may take up some space. Use the availableGeometry() function to obtain the available area for applications.

QDesktopWidget also inherits the QWidget properties, width() and height(), which specify the size of the desktop. However, for desktops with multiple screens, the size of the desktop is the union of all the screen sizes, so width() and height() should not be used for computing the size of a widget to be placed on one of the screens.

On systems that are configured to use the available screens as a single, large virtual desktop, the virtualDesktop property will be set to true. In this case, the widget's size is usually the size of the bounding rectangle of all the screens.

Use of the Primary Screen

For an application, the screen where the main widget resides is the primary screen. This is stored in the primaryScreen property. All windows opened in the context of the application should be constrained to the boundaries of the primary screen; for example, it would be inconvenient if a dialog box popped up on a different screen, or split over two screens.

Managing Multiple Screens

In the illustration above, Application One's primary screen is screen 0, and App Two's primary screen is screen 1.


Method Documentation

QDesktopWidget.__init__ (self)

QRect QDesktopWidget.availableGeometry (self, int screen = -1)

Returns the available geometry of the screen with index screen. What is available will be subrect of screenGeometry() based on what the platform decides is available (for example excludes the dock and menu bar on Mac OS X, or the task bar on Windows). The default screen is used if screen is -1.

Note: In Symbian devices the available geometry reported by QDesktopWidget is not guaranteed to be correct at the time the geometry change resize event is passed to widgets. The correct way to listen for available geometry changes is to connect to the workAreaResized() signal of QDesktopWidget.

See also screenNumber() and screenGeometry().

QRect QDesktopWidget.availableGeometry (self, QWidget widget)

This is an overloaded function.

Returns the available geometry of the screen which contains widget.

See also screenGeometry().

QRect QDesktopWidget.availableGeometry (self, QPoint point)

This is an overloaded function.

Returns the available geometry of the screen which contains p.

See also screenGeometry().

bool QDesktopWidget.isVirtualDesktop (self)

int QDesktopWidget.numScreens (self)

int QDesktopWidget.primaryScreen (self)

QDesktopWidget.resizeEvent (self, QResizeEvent e)

Reimplemented from QWidget.resizeEvent().

QWidget QDesktopWidget.screen (self, int screen = -1)

Returns a widget that represents the screen with index screen (a value of -1 means the default screen).

If the system uses a virtual desktop, the returned widget will have the geometry of the entire virtual desktop; i.e., bounding every screen.

See also primaryScreen, screenCount, and virtualDesktop.

int QDesktopWidget.screenCount (self)

QRect QDesktopWidget.screenGeometry (self, int screen = -1)

Returns the geometry of the screen with index screen. The default screen is used if screen is -1.

Note: In Symbian devices the screen geometry reported by QDesktopWidget is not guaranteed to be correct at the time the geometry change resize event is passed to widgets. The correct way to listen for screen geometry changes is to connect to the resized() signal of QDesktopWidget.

See also screenNumber().

QRect QDesktopWidget.screenGeometry (self, QWidget widget)

This is an overloaded function.

Returns the geometry of the screen which contains widget.

QRect QDesktopWidget.screenGeometry (self, QPoint point)

This is an overloaded function.

Returns the geometry of the screen which contains p.

int QDesktopWidget.screenNumber (self, QWidget widget = None)

Returns the index of the screen that contains the largest part of widget, or -1 if the widget not on a screen.

See also primaryScreen.

int QDesktopWidget.screenNumber (self, QPoint)

This is an overloaded function.

Returns the index of the screen that contains the point, or the screen which is the shortest distance from the point.

See also primaryScreen.


Qt Signal Documentation

void resized (int)

This is the default overload of this signal.

This signal is emitted when the size of screen changes.

void screenCountChanged (int)

This is the default overload of this signal.

This signal is emitted when the number of screens changes to newCount.

This function was introduced in Qt 4.6.

See also screenCount.

void workAreaResized (int)

This is the default overload of this signal.

This signal is emitted when the work area available on screen changes.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdial.html0000644000076500000240000002663712536324502017455 0ustar philstaff00000000000000 QDial Class Reference
  Home · All Classes · Modules

QDial Class Reference
[
QtGui module]

The QDial class provides a rounded range control (like a speedometer or potentiometer). More...

Inherits QAbstractSlider.

Methods


Detailed Description

The QDial class provides a rounded range control (like a speedometer or potentiometer).

QDial is used when the user needs to control a value within a program-definable range, and the range either wraps around (for example, with angles measured from 0 to 359 degrees) or the dialog layout needs a square widget.

Since QDial inherits from QAbstractSlider, the dial behaves in a similar way to a slider. When wrapping() is false (the default setting) there is no real difference between a slider and a dial. They both share the same signals, slots and member functions. Which one you use depends on the expectations of your users and on the type of application.

The dial initially emits valueChanged() signals continuously while the slider is being moved; you can make it emit the signal less often by disabling the tracking property. The sliderMoved() signal is emitted continuously even when tracking is disabled.

The dial also emits sliderPressed() and sliderReleased() signals when the mouse button is pressed and released. Note that the dial's value can change without these signals being emitted since the keyboard and wheel can also be used to change the value.

Unlike the slider, QDial attempts to draw a "nice" number of notches rather than one per line step. If possible, the number of notches drawn is one per line step, but if there aren't enough pixels to draw every one, QDial will skip notches to try and draw a uniform set (e.g. by drawing every second or third notch).

Like the slider, the dial makes the QAbstractSlider functions setValue(), addLine(), subtractLine(), addPage() and subtractPage() available as slots.

The dial's keyboard interface is fairly simple: The left/up and right/down arrow keys adjust the dial's value by the defined singleStep, Page Up and Page Down by the defined pageStep, and the Home and End keys set the value to the defined minimum and maximum values.

If you are using the mouse wheel to adjust the dial, the increment value is determined by the lesser value of wheelScrollLines multipled by singleStep, and pageStep.

Screenshot of a dial in the Plastique widget style Screenshot of a dial in the Windows XP widget style Screenshot of a dial in the Macintosh widget style
Dials shown in various widget styles (from left to right): Plastique, Windows XP, Macintosh.

Method Documentation

QDial.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a dial.

The parent argument is sent to the QAbstractSlider constructor.

bool QDial.event (self, QEvent e)

Reimplemented from QObject.event().

QDial.initStyleOption (self, QStyleOptionSlider option)

Initialize option with the values from this QDial. This method is useful for subclasses when they need a QStyleOptionSlider, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QSize QDial.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QDial.mouseMoveEvent (self, QMouseEvent me)

Reimplemented from QWidget.mouseMoveEvent().

QDial.mousePressEvent (self, QMouseEvent me)

Reimplemented from QWidget.mousePressEvent().

QDial.mouseReleaseEvent (self, QMouseEvent me)

Reimplemented from QWidget.mouseReleaseEvent().

bool QDial.notchesVisible (self)

int QDial.notchSize (self)

float QDial.notchTarget (self)

QDial.paintEvent (self, QPaintEvent pe)

Reimplemented from QWidget.paintEvent().

QDial.resizeEvent (self, QResizeEvent re)

Reimplemented from QWidget.resizeEvent().

QDial.setNotchesVisible (self, bool visible)

This method is also a Qt slot with the C++ signature void setNotchesVisible(bool).

QDial.setNotchTarget (self, float target)

QDial.setWrapping (self, bool on)

This method is also a Qt slot with the C++ signature void setWrapping(bool).

QSize QDial.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QDial.sliderChange (self, QAbstractSlider.SliderChange change)

Reimplemented from QAbstractSlider.sliderChange().

bool QDial.wrapping (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdialog.html0000644000076500000240000006031612536324500017771 0ustar philstaff00000000000000 QDialog Class Reference
  Home · All Classes · Modules

QDialog Class Reference
[
QtGui module]

The QDialog class is the base class of dialog windows. More...

Inherits QWidget.

Inherited by QAbstractPrintDialog, QColorDialog, QErrorMessage, QFileDialog, QFontDialog, QInputDialog, QMessageBox, QPageSetupDialog, QPrintPreviewDialog, QProgressDialog and QWizard.

Types

Methods

Qt Signals


Detailed Description

The QDialog class is the base class of dialog windows.

A dialog window is a top-level window mostly used for short-term tasks and brief communications with the user. QDialogs may be modal or modeless. QDialogs can provide a return value, and they can have default buttons. QDialogs can also have a QSizeGrip in their lower-right corner, using setSizeGripEnabled().

Note that QDialog (and any other widget that has type Qt.Dialog) uses the parent widget slightly differently from other classes in Qt. A dialog is always a top-level widget, but if it has a parent, its default location is centered on top of the parent's top-level widget (if it is not top-level itself). It will also share the parent's taskbar entry.

Use the overload of the QWidget.setParent() function to change the ownership of a QDialog widget. This function allows you to explicitly set the window flags of the reparented widget; using the overloaded function will clear the window flags specifying the window-system properties for the widget (in particular it will reset the Qt.Dialog flag).

Modal Dialogs

A modal dialog is a dialog that blocks input to other visible windows in the same application. Dialogs that are used to request a file name from the user or that are used to set application preferences are usually modal. Dialogs can be application modal (the default) or window modal.

When an application modal dialog is opened, the user must finish interacting with the dialog and close it before they can access any other window in the application. Window modal dialogs only block access to the window associated with the dialog, allowing the user to continue to use other windows in an application.

The most common way to display a modal dialog is to call its exec_() function. When the user closes the dialog, exec_() will provide a useful return value. Typically, to get the dialog to close and return the appropriate value, we connect a default button, e.g. OK, to the accept() slot and a Cancel button to the reject() slot. Alternatively you can call the done() slot with Accepted or Rejected.

An alternative is to call setModal(true) or setWindowModality(), then show(). Unlike exec_(), show() returns control to the caller immediately. Calling setModal(true) is especially useful for progress dialogs, where the user must have the ability to interact with the dialog, e.g. to cancel a long running operation. If you use show() and setModal(true) together to perform a long operation, you must call QApplication.processEvents() periodically during processing to enable the user to interact with the dialog. (See QProgressDialog.)

Modeless Dialogs

A modeless dialog is a dialog that operates independently of other windows in the same application. Find and replace dialogs in word-processors are often modeless to allow the user to interact with both the application's main window and with the dialog.

Modeless dialogs are displayed using show(), which returns control to the caller immediately.

If you invoke the show() function after hiding a dialog, the dialog will be displayed in its original position. This is because the window manager decides the position for windows that have not been explicitly placed by the programmer. To preserve the position of a dialog that has been moved by the user, save its position in your closeEvent() handler and then move the dialog to that position, before showing it again.

Default Button

A dialog's default button is the button that's pressed when the user presses Enter (Return). This button is used to signify that the user accepts the dialog's settings and wants to close the dialog. Use QPushButton.setDefault(), QPushButton.isDefault() and QPushButton.autoDefault() to set and control the dialog's default button.

Escape Key

If the user presses the Esc key in a dialog, QDialog.reject() will be called. This will cause the window to close: The close event cannot be ignored.

Extensibility

Extensibility is the ability to show the dialog in two ways: a partial dialog that shows the most commonly used options, and a full dialog that shows all the options. Typically an extensible dialog will initially appear as a partial dialog, but with a More toggle button. If the user presses the More button down, the dialog is expanded. The Extension Example shows how to achieve extensible dialogs using Qt.

Return Value (Modal Dialogs)

Modal dialogs are often used in situations where a return value is required, e.g. to indicate whether the user pressed OK or Cancel. A dialog can be closed by calling the accept() or the reject() slots, and exec_() will return Accepted or Rejected as appropriate. The exec_() call returns the result of the dialog. The result is also available from result() if the dialog has not been destroyed.

In order to modify your dialog's close behavior, you can reimplement the functions accept(), reject() or done(). The closeEvent() function should only be reimplemented to preserve the dialog's position or to override the standard close or reject behavior.

Code Examples

A modal dialog:

 void EditorWindow.countWords()
 {
     WordCountDialog dialog(this);
     dialog.setWordCount(document().wordCount());
     dialog.exec();
 }

A modeless dialog:

 void EditorWindow.find()
 {
     if (!findDialog) {
         findDialog = new FindDialog(this);
         connect(findDialog, SIGNAL(findNext()), this, SLOT(findNext()));
     }

     findDialog->show();
     findDialog->raise();
     findDialog->activateWindow();
 }

Type Documentation

QDialog.DialogCode

The value returned by a modal dialog.

Constant Value
QDialog.Accepted 1
QDialog.Rejected 0

Method Documentation

QDialog.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a dialog with parent parent.

A dialog is always a top-level widget, but if it has a parent, its default location is centered on top of the parent. It will also share the parent's taskbar entry.

The widget flags f are passed on to the QWidget constructor. If, for example, you don't want a What's This button in the title bar of the dialog, pass Qt.WindowTitleHint | Qt.WindowSystemMenuHint in f.

See also QWidget.setWindowFlags().

QDialog.accept (self)

This method is also a Qt slot with the C++ signature void accept().

Hides the modal dialog and sets the result code to Accepted.

See also reject() and done().

QDialog.closeEvent (self, QCloseEvent)

Reimplemented from QWidget.closeEvent().

QDialog.contextMenuEvent (self, QContextMenuEvent)

Reimplemented from QWidget.contextMenuEvent().

QDialog.done (self, int)

This method is also a Qt slot with the C++ signature void done(int).

Closes the dialog and sets its result code to r. If this dialog is shown with exec_(), done() causes the local event loop to finish, and exec_() to return r.

As with QWidget.close(), done() deletes the dialog if the Qt.WA_DeleteOnClose flag is set. If the dialog is the application's main widget, the application terminates. If the dialog is the last window closed, the QApplication.lastWindowClosed() signal is emitted.

See also accept(), reject(), QApplication.activeWindow(), and QApplication.quit().

bool QDialog.eventFilter (self, QObject, QEvent)

Reimplemented from QObject.eventFilter().

int QDialog.exec_ (self)

This method is also a Qt slot with the C++ signature int exec().

Shows the dialog as a modal dialog, blocking until the user closes it. The function returns a DialogCode result.

If the dialog is application modal, users cannot interact with any other window in the same application until they close the dialog. If the dialog is window modal, only interaction with the parent window is blocked while the dialog is open. By default, the dialog is application modal.

See also open(), show(), result(), and setWindowModality().

QWidget QDialog.extension (self)

bool QDialog.isSizeGripEnabled (self)

QDialog.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

QSize QDialog.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QDialog.open (self)

This method is also a Qt slot with the C++ signature void open().

Shows the dialog as a window modal dialog, returning immediately.

This function was introduced in Qt 4.5.

See also exec_(), show(), result(), and setWindowModality().

Qt.Orientation QDialog.orientation (self)

QDialog.reject (self)

This method is also a Qt slot with the C++ signature void reject().

Hides the modal dialog and sets the result code to Rejected.

See also accept() and done().

QDialog.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

int QDialog.result (self)

In general returns the modal dialog's result code, Accepted or Rejected.

Note: When used from QMessageBox instance the result code type is QMessageBox.StandardButton

Do not call this function if the dialog was constructed with the Qt.WA_DeleteOnClose attribute.

See also setResult().

QDialog.setExtension (self, QWidget extension)

The extension argument has it's ownership transferred to Qt.

QDialog.setModal (self, bool modal)

QDialog.setOrientation (self, Qt.Orientation orientation)

QDialog.setResult (self, int r)

Sets the modal dialog's result code to i.

Note: We recommend that you use one of the values defined by QDialog.DialogCode.

See also result().

QDialog.setSizeGripEnabled (self, bool)

QDialog.setVisible (self, bool visible)

Reimplemented from QWidget.setVisible().

QDialog.showEvent (self, QShowEvent)

Reimplemented from QWidget.showEvent().

QDialog.showExtension (self, bool)

This method is also a Qt slot with the C++ signature void showExtension(bool).

QSize QDialog.sizeHint (self)

Reimplemented from QWidget.sizeHint().


Qt Signal Documentation

void accepted ()

This is the default overload of this signal.

This signal is emitted when the dialog has been accepted either by the user or by calling accept() or done() with the QDialog.Accepted argument.

Note that this signal is not emitted when hiding the dialog with hide() or setVisible(false). This includes deleting the dialog while it is visible.

This function was introduced in Qt 4.1.

See also finished() and rejected().

void finished (int)

This is the default overload of this signal.

This signal is emitted when the dialog's result code has been set, either by the user or by calling done(), accept(), or reject().

Note that this signal is not emitted when hiding the dialog with hide() or setVisible(false). This includes deleting the dialog while it is visible.

This function was introduced in Qt 4.1.

See also accepted() and rejected().

void rejected ()

This is the default overload of this signal.

This signal is emitted when the dialog has been rejected either by the user or by calling reject() or done() with the QDialog.Rejected argument.

Note that this signal is not emitted when hiding the dialog with hide() or setVisible(false). This includes deleting the dialog while it is visible.

This function was introduced in Qt 4.1.

See also finished() and accepted().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdialogbuttonbox-standardbuttons.html0000644000076500000240000001524012536324503025152 0ustar philstaff00000000000000 QDialogButtonBox.StandardButtons Class Reference
  Home · All Classes · Modules

QDialogButtonBox.StandardButtons Class Reference
[QtGui module]

Methods

Special Methods

  • StandardButtons __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, StandardButtons f)
  • StandardButtons __iand__ (self, int mask)
  • int __int__ (self)
  • StandardButtons __invert__ (self)
  • StandardButtons __ior__ (self, StandardButtons f)
  • StandardButtons __ixor__ (self, StandardButtons f)
  • bool __ne__ (self, StandardButtons f)
  • StandardButtons __or__ (self, StandardButtons f)
  • StandardButtons __or__ (self, int f)
  • StandardButtons __xor__ (self, StandardButtons f)
  • StandardButtons __xor__ (self, int f)

Detailed Description

StandardButton may be used whenever StandardButtons is expected.


Method Documentation

StandardButtons.__init__ (self, StandardButtons)

StandardButtons.__init__ (self, int)

StandardButtons.__init__ (self)

StandardButtons StandardButtons.__and__ (self, int mask)

int StandardButtons.__bool__ (self)

bool StandardButtons.__eq__ (self, StandardButtons f)

StandardButtons StandardButtons.__iand__ (self, int mask)

int StandardButtons.__int__ (self)

StandardButtons StandardButtons.__invert__ (self)

StandardButtons StandardButtons.__ior__ (self, StandardButtons f)

StandardButtons StandardButtons.__ixor__ (self, StandardButtons f)

bool StandardButtons.__ne__ (self, StandardButtons f)

StandardButtons StandardButtons.__or__ (self, StandardButtons f)

StandardButtons StandardButtons.__or__ (self, int f)

StandardButtons StandardButtons.__xor__ (self, StandardButtons f)

StandardButtons StandardButtons.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdialogbuttonbox.html0000644000076500000240000007706612536324503021753 0ustar philstaff00000000000000 QDialogButtonBox Class Reference
  Home · All Classes · Modules

QDialogButtonBox Class Reference
[QtGui module]

The QDialogButtonBox class is a widget that presents buttons in a layout that is appropriate to the current widget style. More...

Inherits QWidget.

Types

Methods

Qt Signals


Detailed Description

The QDialogButtonBox class is a widget that presents buttons in a layout that is appropriate to the current widget style.

Dialogs and message boxes typically present buttons in a layout that conforms to the interface guidelines for that platform. Invariably, different platforms have different layouts for their dialogs. QDialogButtonBox allows a developer to add buttons to it and will automatically use the appropriate layout for the user's desktop environment.

Most buttons for a dialog follow certain roles. Such roles include:

  • Accepting or rejecting the dialog.
  • Asking for help.
  • Performing actions on the dialog itself (such as resetting fields or applying changes).

There can also be alternate ways of dismissing the dialog which may cause destructive results.

Most dialogs have buttons that can almost be considered standard (e.g. OK and Cancel buttons). It is sometimes convenient to create these buttons in a standard way.

There are a couple ways of using QDialogButtonBox. One ways is to create the buttons (or button texts) yourself and add them to the button box, specifying their role.

     findButton = new QPushButton(tr("&Find"));
     findButton->setDefault(true);

     moreButton = new QPushButton(tr("&More"));
     moreButton->setCheckable(true);
     moreButton->setAutoDefault(false);

     buttonBox = new QDialogButtonBox(Qt.Vertical);
     buttonBox->addButton(findButton, QDialogButtonBox.ActionRole);
     buttonBox->addButton(moreButton, QDialogButtonBox.ActionRole);

Alternatively, QDialogButtonBox provides several standard buttons (e.g. OK, Cancel, Save) that you can use. They exist as flags so you can OR them together in the constructor.

     buttonBox = new QDialogButtonBox(QDialogButtonBox.Ok
                                      | QDialogButtonBox.Cancel);

     connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
     connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));

You can mix and match normal buttons and standard buttons.

Currently the buttons are laid out in the following way if the button box is horizontal:

GnomeLayout Horizontal Button box laid out in horizontal GnomeLayout
KdeLayout Horizontal Button box laid out in horizontal KdeLayout
MacLayout Horizontal Button box laid out in horizontal MacLayout
WinLayout Horizontal Button box laid out in horizontal WinLayout

The buttons are laid out the following way if the button box is vertical:

GnomeLayout KdeLayout MacLayout WinLayout
GnomeLayout Vertical KdeLayout Vertical MacLayout Vertical WinLayout Vertical

Additionally, button boxes that contain only buttons with ActionRole or HelpRole can be considered modeless and have an alternate look on Mac OS X:

modeless horizontal MacLayout Screenshot of modeless horizontal MacLayout

When a button is clicked in the button box, the clicked() signal is emitted for the actual button is that is pressed. For convenience, if the button has an AcceptRole, RejectRole, or HelpRole, the accepted(), rejected(), or helpRequested() signals are emitted respectively.

If you want a specific button to be default you need to call QPushButton.setDefault() on it yourself. However, if there is no default button set and to preserve which button is the default button across platforms when using the QPushButton.autoDefault property, the first push button with the accept role is made the default button when the QDialogButtonBox is shown,


Type Documentation

QDialogButtonBox.ButtonLayout

This enum describes the layout policy to be used when arranging the buttons contained in the button box.

Constant Value Description
QDialogButtonBox.WinLayout 0 Use a policy appropriate for applications on Windows.
QDialogButtonBox.MacLayout 1 Use a policy appropriate for applications on Mac OS X.
QDialogButtonBox.KdeLayout 2 Use a policy appropriate for applications on KDE.
QDialogButtonBox.GnomeLayout 3 Use a policy appropriate for applications on GNOME.

The button layout is specified by the current style. However, on the X11 platform, it may be influenced by the desktop environment.

QDialogButtonBox.ButtonRole

This enum describes the roles that can be used to describe buttons in the button box. Combinations of these roles are as flags used to describe different aspects of their behavior.

Constant Value Description
QDialogButtonBox.InvalidRole -1 The button is invalid.
QDialogButtonBox.AcceptRole 0 Clicking the button causes the dialog to be accepted (e.g. OK).
QDialogButtonBox.RejectRole 1 Clicking the button causes the dialog to be rejected (e.g. Cancel).
QDialogButtonBox.DestructiveRole 2 Clicking the button causes a destructive change (e.g. for Discarding Changes) and closes the dialog.
QDialogButtonBox.ActionRole 3 Clicking the button causes changes to the elements within the dialog.
QDialogButtonBox.HelpRole 4 The button can be clicked to request help.
QDialogButtonBox.YesRole 5 The button is a "Yes"-like button.
QDialogButtonBox.NoRole 6 The button is a "No"-like button.
QDialogButtonBox.ApplyRole 8 The button applies current changes.
QDialogButtonBox.ResetRole 7 The button resets the dialog's fields to default values.

See also StandardButton.

QDialogButtonBox.StandardButton

These enums describe flags for standard buttons. Each button has a defined ButtonRole.

Constant Value Description
QDialogButtonBox.Ok 0x00000400 An "OK" button defined with the AcceptRole.
QDialogButtonBox.Open 0x00002000 A "Open" button defined with the AcceptRole.
QDialogButtonBox.Save 0x00000800 A "Save" button defined with the AcceptRole.
QDialogButtonBox.Cancel 0x00400000 A "Cancel" button defined with the RejectRole.
QDialogButtonBox.Close 0x00200000 A "Close" button defined with the RejectRole.
QDialogButtonBox.Discard 0x00800000 A "Discard" or "Don't Save" button, depending on the platform, defined with the DestructiveRole.
QDialogButtonBox.Apply 0x02000000 An "Apply" button defined with the ApplyRole.
QDialogButtonBox.Reset 0x04000000 A "Reset" button defined with the ResetRole.
QDialogButtonBox.RestoreDefaults 0x08000000 A "Restore Defaults" button defined with the ResetRole.
QDialogButtonBox.Help 0x01000000 A "Help" button defined with the HelpRole.
QDialogButtonBox.SaveAll 0x00001000 A "Save All" button defined with the AcceptRole.
QDialogButtonBox.Yes 0x00004000 A "Yes" button defined with the YesRole.
QDialogButtonBox.YesToAll 0x00008000 A "Yes to All" button defined with the YesRole.
QDialogButtonBox.No 0x00010000 A "No" button defined with the NoRole.
QDialogButtonBox.NoToAll 0x00020000 A "No to All" button defined with the NoRole.
QDialogButtonBox.Abort 0x00040000 An "Abort" button defined with the RejectRole.
QDialogButtonBox.Retry 0x00080000 A "Retry" button defined with the AcceptRole.
QDialogButtonBox.Ignore 0x00100000 An "Ignore" button defined with the AcceptRole.
QDialogButtonBox.NoButton 0x00000000 An invalid button.

The StandardButtons type is a typedef for QFlags<StandardButton>. It stores an OR combination of StandardButton values.

See also ButtonRole and standardButtons.


Method Documentation

QDialogButtonBox.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty, horizontal button box with the given parent.

See also orientation and addButton().

QDialogButtonBox.__init__ (self, Qt.Orientation orientation, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty button box with the given orientation and parent.

See also orientation and addButton().

QDialogButtonBox.__init__ (self, StandardButtons buttons, Qt.Orientation orientation = Qt.Horizontal, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a button box with the given orientation and parent, containing the standard buttons specified by buttons.

See also orientation and addButton().

QDialogButtonBox.addButton (self, QAbstractButton button, ButtonRole role)

The button argument has it's ownership transferred to Qt.

Adds the given button to the button box with the specified role. If the role is invalid, the button is not added.

If the button has already been added, it is removed and added again with the new role.

Note: The button box takes ownership of the button.

See also removeButton() and clear().

QPushButton QDialogButtonBox.addButton (self, QString text, ButtonRole role)

Creates a push button with the given text, adds it to the button box for the specified role, and returns the corresponding push button. If role is invalid, no button is created, and zero is returned.

See also removeButton() and clear().

QPushButton QDialogButtonBox.addButton (self, StandardButton button)

Adds a standard button to the button box if it is valid to do so, and returns a push button. If button is invalid, it is not added to the button box, and zero is returned.

See also removeButton() and clear().

QPushButton QDialogButtonBox.button (self, StandardButton which)

Returns the QPushButton corresponding to the standard button which, or 0 if the standard button doesn't exist in this button box.

See also standardButton(), standardButtons(), and buttons().

ButtonRole QDialogButtonBox.buttonRole (self, QAbstractButton button)

Returns the button role for the specified button. This function returns InvalidRole if button is 0 or has not been added to the button box.

See also buttons() and addButton().

list-of-QAbstractButton QDialogButtonBox.buttons (self)

Returns a list of all the buttons that have been added to the button box.

See also buttonRole(), addButton(), and removeButton().

bool QDialogButtonBox.centerButtons (self)

QDialogButtonBox.changeEvent (self, QEvent event)

Reimplemented from QWidget.changeEvent().

QDialogButtonBox.clear (self)

Clears the button box, deleting all buttons within it.

See also removeButton() and addButton().

bool QDialogButtonBox.event (self, QEvent event)

Reimplemented from QObject.event().

Qt.Orientation QDialogButtonBox.orientation (self)

QDialogButtonBox.removeButton (self, QAbstractButton button)

The button argument

Removes button from the button box without deleting it and sets its parent to zero.

See also clear(), buttons(), and addButton().

QDialogButtonBox.setCenterButtons (self, bool center)

QDialogButtonBox.setOrientation (self, Qt.Orientation orientation)

QDialogButtonBox.setStandardButtons (self, StandardButtons buttons)

StandardButton QDialogButtonBox.standardButton (self, QAbstractButton button)

Returns the standard button enum value corresponding to the given button, or NoButton if the given button isn't a standard button.

See also button(), buttons(), and standardButtons().

StandardButtons QDialogButtonBox.standardButtons (self)


Qt Signal Documentation

void accepted ()

This is the default overload of this signal.

This signal is emitted when a button inside the button box is clicked, as long as it was defined with the AcceptRole or YesRole.

See also rejected(), clicked(), and helpRequested().

void clicked (QAbstractButton*)

This is the default overload of this signal.

This signal is emitted when a button inside the button box is clicked. The specific button that was pressed is specified by button.

See also accepted(), rejected(), and helpRequested().

void helpRequested ()

This is the default overload of this signal.

This signal is emitted when a button inside the button box is clicked, as long as it was defined with the HelpRole.

See also accepted(), rejected(), and clicked().

void rejected ()

This is the default overload of this signal.

This signal is emitted when a button inside the button box is clicked, as long as it was defined with the RejectRole or NoRole.

See also accepted(), helpRequested(), and clicked().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdir-filters.html0000644000076500000240000001302212536324472020756 0ustar philstaff00000000000000 QDir.Filters Class Reference
  Home · All Classes · Modules

QDir.Filters Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

Filter may be used whenever Filters is expected.


Method Documentation

Filters.__init__ (self, Filters)

Filters.__init__ (self, int)

Filters.__init__ (self)

Filters Filters.__and__ (self, int mask)

int Filters.__bool__ (self)

bool Filters.__eq__ (self, Filters f)

Filters Filters.__iand__ (self, int mask)

int Filters.__int__ (self)

Filters Filters.__invert__ (self)

Filters Filters.__ior__ (self, Filters f)

Filters Filters.__ixor__ (self, Filters f)

bool Filters.__ne__ (self, Filters f)

Filters Filters.__or__ (self, Filters f)

Filters Filters.__or__ (self, int f)

Filters Filters.__xor__ (self, Filters f)

Filters Filters.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdir-sortflags.html0000644000076500000240000001331212536324472021314 0ustar philstaff00000000000000 QDir.SortFlags Class Reference
  Home · All Classes · Modules

QDir.SortFlags Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

SortFlag may be used whenever SortFlags is expected.


Method Documentation

SortFlags.__init__ (self, SortFlags)

SortFlags.__init__ (self, int)

SortFlags.__init__ (self)

SortFlags SortFlags.__and__ (self, int mask)

int SortFlags.__bool__ (self)

bool SortFlags.__eq__ (self, SortFlags f)

SortFlags SortFlags.__iand__ (self, int mask)

int SortFlags.__int__ (self)

SortFlags SortFlags.__invert__ (self)

SortFlags SortFlags.__ior__ (self, SortFlags f)

SortFlags SortFlags.__ixor__ (self, SortFlags f)

bool SortFlags.__ne__ (self, SortFlags f)

SortFlags SortFlags.__or__ (self, SortFlags f)

SortFlags SortFlags.__or__ (self, int f)

SortFlags SortFlags.__xor__ (self, SortFlags f)

SortFlags SortFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdir.html0000644000076500000240000021456512536324472017327 0ustar philstaff00000000000000 QDir Class Reference
  Home · All Classes · Modules

QDir Class Reference
[QtCore module]

The QDir class provides access to directory structures and their contents. More...

Types

Methods

Static Methods

Special Methods


Detailed Description

The QDir class provides access to directory structures and their contents.

A QDir is used to manipulate path names, access information regarding paths and files, and manipulate the underlying file system. It can also be used to access Qt's resource system.

Qt uses "/" as a universal directory separator in the same way that "/" is used as a path separator in URLs. If you always use "/" as a directory separator, Qt will translate your paths to conform to the underlying operating system.

A QDir can point to a file using either a relative or an absolute path. Absolute paths begin with the directory separator (optionally preceded by a drive specification under Windows). Relative file names begin with a directory name or a file name and specify a path relative to the current directory.

Examples of absolute paths:

 QDir("/home/user/Documents")
 QDir("C:/Documents and Settings")

On Windows, the second example above will be translated to C:\Documents and Settings when used to access files.

Examples of relative paths:

 QDir("images/landscape.png")

You can use the isRelative() or isAbsolute() functions to check if a QDir is using a relative or an absolute file path. Call makeAbsolute() to convert a relative QDir to an absolute one.

Navigation and Directory Operations

A directory's path can be obtained with the path() function, and a new path set with the setPath() function. The absolute path to a directory is found by calling absolutePath().

The name of a directory is found using the dirName() function. This typically returns the last element in the absolute path that specifies the location of the directory. However, it can also return "." if the QDir represents the current directory.

 QDir("Documents/Letters/Applications").dirName() // "Applications"
 QDir().dirName()                                 // "."

The path for a directory can also be changed with the cd() and cdUp() functions, both of which operate like familiar shell commands. When cd() is called with the name of an existing directory, the QDir object changes directory so that it represents that directory instead. The cdUp() function changes the directory of the QDir object so that it refers to its parent directory; i.e. cd("..") is equivalent to cdUp().

Directories can be created with mkdir(), renamed with rename(), and removed with rmdir().

You can test for the presence of a directory with a given name by using exists(), and the properties of a directory can be tested with isReadable(), isAbsolute(), isRelative(), and isRoot().

The refresh() function re-reads the directory's data from disk.

Files and Directory Contents

Directories contain a number of entries, representing files, directories, and symbolic links. The number of entries in a directory is returned by count(). A string list of the names of all the entries in a directory can be obtained with entryList(). If you need information about each entry, use entryInfoList() to obtain a list of QFileInfo objects.

Paths to files and directories within a directory can be constructed using filePath() and absoluteFilePath(). The filePath() function returns a path to the specified file or directory relative to the path of the QDir object; absoluteFilePath() returns an absolute path to the specified file or directory. Neither of these functions checks for the existence of files or directory; they only construct paths.

 QDir directory("Documents/Letters");
 QString path = directory.filePath("contents.txt");
 QString absolutePath = directory.absoluteFilePath("contents.txt");

Files can be removed by using the remove() function. Directories cannot be removed in the same way as files; use rmdir() to remove them instead.

It is possible to reduce the number of entries returned by entryList() and entryInfoList() by applying filters to a QDir object. You can apply a name filter to specify a pattern with wildcards that file names need to match, an attribute filter that selects properties of entries and can distinguish between files and directories, and a sort order.

Name filters are lists of strings that are passed to setNameFilters(). Attribute filters consist of a bitwise OR combination of Filters, and these are specified when calling setFilter(). The sort order is specified using setSorting() with a bitwise OR combination of SortFlags.

You can test to see if a filename matches a filter using the match() function.

Filter and sort order flags may also be specified when calling entryList() and entryInfoList() in order to override previously defined behavior.

The Current Directory and Other Special Paths

Access to some common directories is provided with a number of static functions that return QDir objects. There are also corresponding functions for these that return strings:

QDir QString Return Value
current() currentPath() The application's working directory
home() homePath() The user's home directory
root() rootPath() The root directory
temp() tempPath() The system's temporary directory

The setCurrent() static function can also be used to set the application's working directory.

If you want to find the directory containing the application's executable, see QCoreApplication.applicationDirPath().

The drives() static function provides a list of root directories for each device that contains a filing system. On Unix systems this returns a list containing a single root directory "/"; on Windows the list will usually contain C:/, and possibly other drive letters such as D:/, depending on the configuration of the user's system.

Path Manipulation and Strings

Paths containing "." elements that reference the current directory at that point in the path, ".." elements that reference the parent directory, and symbolic links can be reduced to a canonical form using the canonicalPath() function.

Paths can also be simplified by using cleanPath() to remove redundant "/" and ".." elements.

It is sometimes necessary to be able to show a path in the native representation for the user's platform. The static toNativeSeparators() function returns a copy of the specified path in which each directory separator is replaced by the appropriate separator for the underlying operating system.

Examples

Check if a directory exists:

 QDir dir("example");
 if (!dir.exists())
     qWarning("Cannot find the example directory");

(We could also use the static convenience function QFile.exists().)

Traversing directories and reading a file:

 QDir dir = QDir.root();                 // "/"
 if (!dir.cd("tmp")) {                    // "/tmp"
     qWarning("Cannot find the \"/tmp\" directory");
 } else {
     QFile file(dir.filePath("ex1.txt")); // "/tmp/ex1.txt"
     if (!file.open(QIODevice.ReadWrite))
         qWarning("Cannot create the file %s", file.name());
 }

A program that lists all the files in the current directory (excluding symbolic links), sorted by size, smallest first:

 #include <QDir>
 #include <iostream>

 int main(int argc, char *argv[])
 {
     QCoreApplication app(argc, argv);
     QDir dir;
     dir.setFilter(QDir.Files | QDir.Hidden | QDir.NoSymLinks);
     dir.setSorting(QDir.Size | QDir.Reversed);

     QFileInfoList list = dir.entryInfoList();
     std.cout << "     Bytes Filename" << std.endl;
     for (int i = 0; i < list.size(); ++i) {
         QFileInfo fileInfo = list.at(i);
         std.cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10)
                                                 .arg(fileInfo.fileName()));
         std.cout << std.endl;
     }
     return 0;
 }

Type Documentation

QDir.Filter

This enum describes the filtering options available to QDir; e.g. for entryList() and entryInfoList(). The filter value is specified by combining values from the following list using the bitwise OR operator:

Constant Value Description
QDir.Dirs 0x001 List directories that match the filters.
QDir.AllDirs 0x400 List all directories; i.e. don't apply the filters to directory names.
QDir.Files 0x002 List files.
QDir.Drives 0x004 List disk drives (ignored under Unix).
QDir.NoSymLinks 0x008 Do not list symbolic links (ignored by operating systems that don't support symbolic links).
QDir.NoDotAndDotDot 0x1000 Do not list the special entries "." and "..".
QDir.NoDot 0x2000 Do not list the special entry ".".
QDir.NoDotDot 0x4000 Do not list the special entry "..".
QDir.AllEntries Dirs | Files | Drives List directories, files, drives and symlinks (this does not list broken symlinks unless you specify System).
QDir.Readable 0x010 List files for which the application has read access. The Readable value needs to be combined with Dirs or Files.
QDir.Writable 0x020 List files for which the application has write access. The Writable value needs to be combined with Dirs or Files.
QDir.Executable 0x040 List files for which the application has execute access. The Executable value needs to be combined with Dirs or Files.
QDir.Modified 0x080 Only list files that have been modified (ignored on Unix).
QDir.Hidden 0x100 List hidden files (on Unix, files starting with a ".").
QDir.System 0x200 List system files (on Unix, FIFOs, sockets and device files are included; on Windows, .lnk files are included)
QDir.CaseSensitive 0x800 The filter should be case sensitive.

Functions that use Filter enum values to filter lists of files and directories will include symbolic links to files and directories unless you set the NoSymLinks value.

A default constructed QDir will not filter out files based on their permissions, so entryList() and entryInfoList() will return all files that are readable, writable, executable, or any combination of the three. This makes the default easy to write, and at the same time useful.

For example, setting the Readable, Writable, and Files flags allows all files to be listed for which the application has read access, write access or both. If the Dirs and Drives flags are also included in this combination then all drives, directories, all files that the application can read, write, or execute, and symlinks to such files/directories can be listed.

To retrieve the permissons for a directory, use the entryInfoList() function to get the associated QFileInfo objects and then use the QFileInfo.permissons() to obtain the permissions and ownership for each file.

The Filters type is a typedef for QFlags<Filter>. It stores an OR combination of Filter values.

QDir.SortFlag

This enum describes the sort options available to QDir, e.g. for entryList() and entryInfoList(). The sort value is specified by OR-ing together values from the following list:

Constant Value Description
QDir.Name 0x00 Sort by name.
QDir.Time 0x01 Sort by time (modification time).
QDir.Size 0x02 Sort by file size.
QDir.Type 0x80 Sort by file type (extension).
QDir.Unsorted 0x03 Do not sort.
QDir.NoSort -1 Not sorted by default.
QDir.DirsFirst 0x04 Put the directories first, then the files.
QDir.DirsLast 0x20 Put the files first, then the directories.
QDir.Reversed 0x08 Reverse the sort order.
QDir.IgnoreCase 0x10 Sort case-insensitively.
QDir.LocaleAware 0x40 Sort items appropriately using the current locale settings.

You can only specify one of the first four.

If you specify both DirsFirst and Reversed, directories are still put first, but in reverse order; the files will be listed after the directories, again in reverse order.

The SortFlags type is a typedef for QFlags<SortFlag>. It stores an OR combination of SortFlag values.


Method Documentation

QDir.__init__ (self, QDir)

Constructs a QDir object that is a copy of the QDir object for directory dir.

See also operator=().

QDir.__init__ (self, QString path = QString())

Constructs a QDir pointing to the given directory path. If path is empty the program's working directory, ("."), is used.

See also currentPath().

QDir.__init__ (self, QString path, QString nameFilter, SortFlags sort = QDir.Name|QDir.IgnoreCase, Filters filters = QDir.AllEntries)

Constructs a QDir with path path, that filters its entries by name using nameFilter and by attributes using filters. It also sorts the names using sort.

The default nameFilter is an empty string, which excludes nothing; the default filters is AllEntries, which also means exclude nothing. The default sort is Name | IgnoreCase, i.e. sort by name case-insensitively.

If path is an empty string, QDir uses "." (the current directory). If nameFilter is an empty string, QDir uses the name filter "*" (all files).

Note that path need not exist.

See also exists(), setPath(), setNameFilter(), setFilter(), and setSorting().

QString QDir.absoluteFilePath (self, QString fileName)

Returns the absolute path name of a file in the directory. Does not check if the file actually exists in the directory; but see exists(). Redundant multiple separators or "." and ".." directories in fileName are not removed (see cleanPath()).

See also relativeFilePath(), filePath(), and canonicalPath().

QString QDir.absolutePath (self)

Returns the absolute path (a path that starts with "/" or with a drive specification), which may contain symbolic links, but never contains redundant ".", ".." or multiple separators.

See also setPath(), canonicalPath(), exists(), cleanPath(), dirName(), and absoluteFilePath().

QDir.addResourceSearchPath (QString path)

QDir.addSearchPath (QString prefix, QString path)

Adds path to the search path for prefix.

This function was introduced in Qt 4.3.

See also setSearchPaths().

QString QDir.canonicalPath (self)

Returns the canonical path, i.e. a path without symbolic links or redundant "." or ".." elements.

On systems that do not have symbolic links this function will always return the same string that absolutePath() returns. If the canonical path does not exist (normally due to dangling symbolic links) canonicalPath() returns an empty string.

Example:

 QString bin = "/local/bin";         // where /local/bin is a symlink to /usr/bin
 QDir binDir(bin);
 QString canonicalBin = binDir.canonicalPath();
 // canonicalBin now equals "/usr/bin"

 QString ls = "/local/bin/ls";       // where ls is the executable "ls"
 QDir lsDir(ls);
 QString canonicalLs = lsDir.canonicalPath();
 // canonicalLS now equals "/usr/bin/ls".

See also path(), absolutePath(), exists(), cleanPath(), dirName(), and absoluteFilePath().

bool QDir.cd (self, QString dirName)

Changes the QDir's directory to dirName.

Returns true if the new directory exists and is readable; otherwise returns false. Note that the logical cd() operation is not performed if the new directory does not exist.

Calling cd("..") is equivalent to calling cdUp().

See also cdUp(), isReadable(), exists(), and path().

bool QDir.cdUp (self)

Changes directory by moving one directory up from the QDir's current directory.

Returns true if the new directory exists and is readable; otherwise returns false. Note that the logical cdUp() operation is not performed if the new directory does not exist.

See also cd(), isReadable(), exists(), and path().

QString QDir.cleanPath (QString path)

Removes all multiple directory separators "/" and resolves any "."s or ".."s found in the path, path.

Symbolic links are kept. This function does not return the canonical path, but rather the simplest version of the input. For example, "./local" becomes "local", "local/../bin" becomes "bin" and "/local/usr/../bin" becomes "/local/bin".

See also absolutePath() and canonicalPath().

QString QDir.convertSeparators (QString pathName)

int QDir.count (self)

Returns the total number of directories and files in the directory.

Equivalent to entryList().count().

See also operator[]() and entryList().

QDir QDir.current ()

Returns the application's current directory.

The directory is constructed using the absolute path of the current directory, ensuring that its path() will be the same as its absolutePath().

See also currentPath(), setCurrent(), home(), root(), and temp().

QString QDir.currentPath ()

Returns the absolute path of the application's current directory.

See also current(), setCurrent(), homePath(), rootPath(), and tempPath().

QString QDir.dirName (self)

Returns the name of the directory; this is not the same as the path, e.g. a directory with the name "mail", might have the path "/var/spool/mail". If the directory has no name (e.g. it is the root directory) an empty string is returned.

No check is made to ensure that a directory with this name actually exists; but see exists().

See also path(), filePath(), absolutePath(), and absoluteFilePath().

list-of-QFileInfo QDir.drives ()

Returns a list of the root directories on this system.

On Windows this returns a list of QFileInfo objects containing "C:/", "D:/", etc. On other operating systems, it returns a list containing just one root directory (i.e. "/").

See also root() and rootPath().

list-of-QFileInfo QDir.entryInfoList (self, Filters filters = QDir.NoFilter, SortFlags sort = QDir.NoSort)

Returns a list of QFileInfo objects for all the files and directories in the directory, ordered according to the name and attribute filters previously set with setNameFilters() and setFilter(), and sorted according to the flags set with setSorting().

The name filter, file attribute filter, and sorting specification can be overridden using the nameFilters, filters, and sort arguments.

Returns an empty list if the directory is unreadable, does not exist, or if nothing matches the specification.

See also entryList(), setNameFilters(), setSorting(), setFilter(), isReadable(), and exists().

list-of-QFileInfo QDir.entryInfoList (self, QStringList nameFilters, Filters filters = QDir.NoFilter, SortFlags sort = QDir.NoSort)

This is an overloaded function.

Returns a list of QFileInfo objects for all the files and directories in the directory, ordered according to the name and attribute filters previously set with setNameFilters() and setFilter(), and sorted according to the flags set with setSorting().

The attribute filter and sorting specifications can be overridden using the filters and sort arguments.

Returns an empty list if the directory is unreadable, does not exist, or if nothing matches the specification.

See also entryList(), setNameFilters(), setSorting(), setFilter(), isReadable(), and exists().

QStringList QDir.entryList (self, Filters filters = QDir.NoFilter, SortFlags sort = QDir.NoSort)

Returns a list of the names of all the files and directories in the directory, ordered according to the name and attribute filters previously set with setNameFilters() and setFilter(), and sorted according to the flags set with setSorting().

The name filter, file attribute filter, and sorting specification can be overridden using the nameFilters, filters, and sort arguments.

Returns an empty list if the directory is unreadable, does not exist, or if nothing matches the specification.

See also entryInfoList(), setNameFilters(), setSorting(), and setFilter().

QStringList QDir.entryList (self, QStringList nameFilters, Filters filters = QDir.NoFilter, SortFlags sort = QDir.NoSort)

This is an overloaded function.

Returns a list of the names of all the files and directories in the directory, ordered according to the name and attribute filters previously set with setNameFilters() and setFilter(), and sorted according to the flags set with setSorting().

The attribute filter and sorting specifications can be overridden using the filters and sort arguments.

Returns an empty list if the directory is unreadable, does not exist, or if nothing matches the specification.

Note: To list symlinks that point to non existing files, System must be passed to the filter.

See also entryInfoList(), setNameFilters(), setSorting(), and setFilter().

bool QDir.exists (self)

Returns true if the file called name exists; otherwise returns false.

Unless name contains an absolute file path, the file name is assumed to be relative to the directory itself, so this function is typically used to check for the presence of files within a directory.

See also QFileInfo.exists() and QFile.exists().

bool QDir.exists (self, QString name)

This is an overloaded function.

Returns true if the directory exists; otherwise returns false. (If a file with the same name is found this function will return false).

The overload of this function that accepts an argument is used to test for the presence of files and directories within a directory.

See also QFileInfo.exists() and QFile.exists().

QString QDir.filePath (self, QString fileName)

Returns the path name of a file in the directory. Does not check if the file actually exists in the directory; but see exists(). If the QDir is relative the returned path name will also be relative. Redundant multiple separators or "." and ".." directories in fileName are not removed (see cleanPath()).

See also dirName(), absoluteFilePath(), isRelative(), and canonicalPath().

Filters QDir.filter (self)

Returns the value set by setFilter()

See also setFilter().

QString QDir.fromNativeSeparators (QString pathName)

Returns pathName using '/' as file separator. On Windows, for instance, fromNativeSeparators("c:\\winnt\\system32") returns "c:/winnt/system32".

The returned string may be the same as the argument on some operating systems, for example on Unix.

This function was introduced in Qt 4.2.

See also toNativeSeparators() and separator().

QDir QDir.home ()

Returns the user's home directory.

The directory is constructed using the absolute path of the home directory, ensuring that its path() will be the same as its absolutePath().

See homePath() for details.

See also drives(), current(), root(), and temp().

QString QDir.homePath ()

Returns the absolute path of the user's home directory.

Under Windows this function will return the directory of the current user's profile. Typically, this is:

 C:/Documents and Settings/Username

Use the toNativeSeparators() function to convert the separators to the ones that are appropriate for the underlying operating system.

If the directory of the current user's profile does not exist or cannot be retrieved, the following alternatives will be checked (in the given order) until an existing and available path is found:

  1. The path specified by the USERPROFILE environment variable.
  2. The path formed by concatenating the HOMEDRIVE and HOMEPATH environment variables.
  3. The path specified by the HOME environment variable.
  4. The path returned by the rootPath() function (which uses the SystemDrive environment variable)
  5. The C:/ directory.

Under non-Windows operating systems the HOME environment variable is used if it exists, otherwise the path returned by the rootPath().

On Symbian this typically returns "c:/data", i.e. the same as native PathInfo.PhoneMemoryRootPath().

See also home(), currentPath(), rootPath(), and tempPath().

bool QDir.isAbsolute (self)

Returns true if the directory's path is absolute; otherwise returns false. See isAbsolutePath().

See also isRelative(), makeAbsolute(), and cleanPath().

bool QDir.isAbsolutePath (QString path)

Returns true if path is absolute; returns false if it is relative.

See also isAbsolute(), isRelativePath(), makeAbsolute(), and cleanPath().

bool QDir.isReadable (self)

Returns true if the directory is readable and we can open files by name; otherwise returns false.

Warning: A false value from this function is not a guarantee that files in the directory are not accessible.

See also QFileInfo.isReadable().

bool QDir.isRelative (self)

Returns true if the directory path is relative; otherwise returns false. (Under Unix a path is relative if it does not start with a "/").

See also makeAbsolute(), isAbsolute(), isAbsolutePath(), and cleanPath().

bool QDir.isRelativePath (QString path)

Returns true if path is relative; returns false if it is absolute.

See also isRelative(), isAbsolutePath(), and makeAbsolute().

bool QDir.isRoot (self)

Returns true if the directory is the root directory; otherwise returns false.

Note: If the directory is a symbolic link to the root directory this function returns false. If you want to test for this use canonicalPath(), e.g.

 QDir dir("/tmp/root_link");
 dir = dir.canonicalPath();
 if (dir.isRoot())
     qWarning("It is a root link");

See also root() and rootPath().

bool QDir.makeAbsolute (self)

Converts the directory path to an absolute path. If it is already absolute nothing happens. Returns true if the conversion succeeded; otherwise returns false.

See also isAbsolute(), isAbsolutePath(), isRelative(), and cleanPath().

bool QDir.match (QStringList filters, QString fileName)

Returns true if the fileName matches the wildcard (glob) pattern filter; otherwise returns false. The filter may contain multiple patterns separated by spaces or semicolons. The matching is case insensitive.

See also QRegExp wildcard matching, QRegExp.exactMatch(), entryList(), and entryInfoList().

bool QDir.match (QString filter, QString fileName)

This is an overloaded function.

Returns true if the fileName matches any of the wildcard (glob) patterns in the list of filters; otherwise returns false. The matching is case insensitive.

See also QRegExp wildcard matching, QRegExp.exactMatch(), entryList(), and entryInfoList().

bool QDir.mkdir (self, QString dirName)

Creates a sub-directory called dirName.

Returns true on success; otherwise returns false.

If the directory already exists when this function is called, it will return false.

See also rmdir().

bool QDir.mkpath (self, QString dirPath)

Creates the directory path dirPath.

The function will create all parent directories necessary to create the directory.

Returns true if successful; otherwise returns false.

If the path already exists when this function is called, it will return true.

See also rmpath().

QStringList QDir.nameFilters (self)

Returns the string list set by setNameFilters()

See also setNameFilters().

QStringList QDir.nameFiltersFromString (QString nameFilter)

QString QDir.path (self)

QDir.refresh (self)

Refreshes the directory information.

QString QDir.relativeFilePath (self, QString fileName)

Returns the path to fileName relative to the directory.

 QDir dir("/home/bob");
 QString s;

 s = dir.relativeFilePath("images/file.jpg");     // s is "images/file.jpg"
 s = dir.relativeFilePath("/home/mary/file.txt"); // s is "../mary/file.txt"

See also absoluteFilePath(), filePath(), and canonicalPath().

bool QDir.remove (self, QString fileName)

Removes the file, fileName.

Returns true if the file is removed successfully; otherwise returns false.

bool QDir.rename (self, QString oldName, QString newName)

Renames a file or directory from oldName to newName, and returns true if successful; otherwise returns false.

On most file systems, rename() fails only if oldName does not exist, if newName and oldName are not on the same partition or if a file with the new name already exists. However, there are also other reasons why rename() can fail. For example, on at least one file system rename() fails if newName points to an open file.

bool QDir.rmdir (self, QString dirName)

Removes the directory specified by dirName.

The directory must be empty for rmdir() to succeed.

Returns true if successful; otherwise returns false.

See also mkdir().

bool QDir.rmpath (self, QString dirPath)

Removes the directory path dirPath.

The function will remove all parent directories in dirPath, provided that they are empty. This is the opposite of mkpath(dirPath).

Returns true if successful; otherwise returns false.

See also mkpath().

QDir QDir.root ()

Returns the root directory.

The directory is constructed using the absolute path of the root directory, ensuring that its path() will be the same as its absolutePath().

See rootPath() for details.

See also drives(), current(), home(), and temp().

QString QDir.rootPath ()

Returns the absolute path of the root directory.

For Unix operating systems this returns "/". For Windows and Symbian file systems this normally returns "c:/". I.E. the root of the system drive.

See also root(), drives(), currentPath(), homePath(), and tempPath().

QStringList QDir.searchPaths (QString prefix)

Returns the search paths for prefix.

This function was introduced in Qt 4.3.

See also setSearchPaths() and addSearchPath().

QChar QDir.separator ()

Returns the native directory separator: "/" under Unix (including Mac OS X) and "\" under Windows.

You do not need to use this function to build file paths. If you always use "/", Qt will translate your paths to conform to the underlying operating system. If you want to display paths to the user using their operating system's separator use toNativeSeparators().

bool QDir.setCurrent (QString path)

Sets the application's current working directory to path. Returns true if the directory was successfully changed; otherwise returns false.

See also current(), currentPath(), home(), root(), and temp().

QDir.setFilter (self, Filters filter)

Sets the filter used by entryList() and entryInfoList() to filters. The filter is used to specify the kind of files that should be returned by entryList() and entryInfoList(). See QDir.Filter.

See also filter() and setNameFilters().

QDir.setNameFilters (self, QStringList nameFilters)

Sets the name filters used by entryList() and entryInfoList() to the list of filters specified by nameFilters.

Each name filter is a wildcard (globbing) filter that understands * and ? wildcards. (See QRegExp wildcard matching.)

For example, the following code sets three name filters on a QDir to ensure that only files with extensions typically used for C++ source files are listed:

     QStringList filters;
     filters << "*.cpp" << "*.cxx" << "*.cc";
     dir.setNameFilters(filters);

See also nameFilters() and setFilter().

QDir.setPath (self, QString path)

Sets the path of the directory to path. The path is cleaned of redundant ".", ".." and of multiple separators. No check is made to see whether a directory with this path actually exists; but you can check for yourself using exists().

The path can be either absolute or relative. Absolute paths begin with the directory separator "/" (optionally preceded by a drive specification under Windows). Relative file names begin with a directory name or a file name and specify a path relative to the current directory. An example of an absolute path is the string "/tmp/quartz", a relative path might look like "src/fatlib".

See also path(), absolutePath(), exists(), cleanPath(), dirName(), absoluteFilePath(), isRelative(), and makeAbsolute().

QDir.setSearchPaths (QString prefix, QStringList searchPaths)

Sets or replaces Qt's search paths for file names with the prefix prefix to searchPaths.

To specify a prefix for a file name, prepend the prefix followed by a single colon (e.g., "images:undo.png", "xmldocs:books.xml"). prefix can only contain letters or numbers (e.g., it cannot contain a colon, nor a slash).

Qt uses this search path to locate files with a known prefix. The search path entries are tested in order, starting with the first entry.

 QDir.setSearchPaths("icons", QStringList(QDir.homePath() + "/images"));
 QDir.setSearchPaths("docs", QStringList(":/embeddedDocuments"));
 ...
 QPixmap pixmap("icons:undo.png"); // will look for undo.png in QDir.homePath() + "/images"
 QFile file("docs:design.odf"); // will look in the :/embeddedDocuments resource path

File name prefix must be at least 2 characters long to avoid conflicts with Windows drive letters.

Search paths may contain paths to The Qt Resource System.

This function was introduced in Qt 4.3.

See also searchPaths().

QDir.setSorting (self, SortFlags sort)

Sets the sort order used by entryList() and entryInfoList().

The sort is specified by OR-ing values from the enum QDir.SortFlag.

See also sorting() and SortFlag.

SortFlags QDir.sorting (self)

Returns the value set by setSorting()

See also setSorting() and SortFlag.

QDir QDir.temp ()

Returns the system's temporary directory.

The directory is constructed using the absolute path of the temporary directory, ensuring that its path() will be the same as its absolutePath().

See tempPath() for details.

See also drives(), current(), home(), and root().

QString QDir.tempPath ()

Returns the absolute path of the system's temporary directory.

On Unix/Linux systems this is the path in the TMPDIR environment variable or /tmp if TMPDIR is not defined. On Windows this is usually the path in the TEMP or TMP environment variable. Whether a directory separator is added to the end or not, depends on the operating system.

See also temp(), currentPath(), homePath(), and rootPath().

QString QDir.toNativeSeparators (QString pathName)

Returns pathName with the '/' separators converted to separators that are appropriate for the underlying operating system.

On Windows, toNativeSeparators("c:/winnt/system32") returns "c:\winnt\system32".

The returned string may be the same as the argument on some operating systems, for example on Unix.

This function was introduced in Qt 4.2.

See also fromNativeSeparators() and separator().

int QDir.__contains__ (self, QString)

bool QDir.__eq__ (self, QDir dir)

QString QDir.__getitem__ (self, int)

QStringList QDir.__getitem__ (self, slice)

QDir.__len__ (self)

bool QDir.__ne__ (self, QDir dir)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdiriterator-iteratorflags.html0000644000076500000240000001453212536324472023735 0ustar philstaff00000000000000 QDirIterator.IteratorFlags Class Reference
  Home · All Classes · Modules

QDirIterator.IteratorFlags Class Reference
[QtCore module]

Methods

Special Methods

  • IteratorFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, IteratorFlags f)
  • IteratorFlags __iand__ (self, int mask)
  • int __int__ (self)
  • IteratorFlags __invert__ (self)
  • IteratorFlags __ior__ (self, IteratorFlags f)
  • IteratorFlags __ixor__ (self, IteratorFlags f)
  • bool __ne__ (self, IteratorFlags f)
  • IteratorFlags __or__ (self, IteratorFlags f)
  • IteratorFlags __or__ (self, int f)
  • IteratorFlags __xor__ (self, IteratorFlags f)
  • IteratorFlags __xor__ (self, int f)

Detailed Description

IteratorFlag may be used whenever IteratorFlags is expected.


Method Documentation

IteratorFlags.__init__ (self, IteratorFlags)

IteratorFlags.__init__ (self, int)

IteratorFlags.__init__ (self)

IteratorFlags IteratorFlags.__and__ (self, int mask)

int IteratorFlags.__bool__ (self)

bool IteratorFlags.__eq__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__iand__ (self, int mask)

int IteratorFlags.__int__ (self)

IteratorFlags IteratorFlags.__invert__ (self)

IteratorFlags IteratorFlags.__ior__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__ixor__ (self, IteratorFlags f)

bool IteratorFlags.__ne__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__or__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__or__ (self, int f)

IteratorFlags IteratorFlags.__xor__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdiriterator.html0000644000076500000240000003360112536324472021067 0ustar philstaff00000000000000 QDirIterator Class Reference
  Home · All Classes · Modules

QDirIterator Class Reference
[QtCore module]

The QDirIterator class provides an iterator for directory entrylists. More...

Types

Methods

  • __init__ (self, QDir dir, IteratorFlags flags = QDirIterator.NoIteratorFlags)
  • __init__ (self, QString path, IteratorFlags flags = QDirIterator.NoIteratorFlags)
  • __init__ (self, QString path, QDir.Filters filters, IteratorFlags flags = QDirIterator.NoIteratorFlags)
  • __init__ (self, QString path, QStringList nameFilters, QDir.Filters filters = QDir.NoFilter, IteratorFlags flags = QDirIterator.NoIteratorFlags)
  • QFileInfo fileInfo (self)
  • QString fileName (self)
  • QString filePath (self)
  • bool hasNext (self)
  • QString next (self)
  • QString path (self)

Detailed Description

The QDirIterator class provides an iterator for directory entrylists.

You can use QDirIterator to navigate entries of a directory one at a time. It is similar to QDir.entryList() and QDir.entryInfoList(), but because it lists entries one at a time instead of all at once, it scales better and is more suitable for large directories. It also supports listing directory contents recursively, and following symbolic links. Unlike QDir.entryList(), QDirIterator does not support sorting.

The QDirIterator constructor takes a QDir or a directory as argument. After construction, the iterator is located before the first directory entry. Here's how to iterate over all the entries sequentially:

 QDirIterator it("/etc", QDirIterator.Subdirectories);
 while (it.hasNext()) {
     qDebug() << it.next();

     // /etc/.
     // /etc/..
     // /etc/X11
     // /etc/X11/fs
     // ...
 }

The next() function returns the path to the next directory entry and advances the iterator. You can also call filePath() to get the current file path without advancing the iterator. The fileName() function returns only the name of the file, similar to how QDir.entryList() works. You can also call fileInfo() to get a QFileInfo for the current entry.

Unlike Qt's container iterators, QDirIterator is uni-directional (i.e., you cannot iterate directories in reverse order) and does not allow random access.

QDirIterator works with all supported file engines, and is implemented using QAbstractFileEngineIterator.


Type Documentation

QDirIterator.IteratorFlag

This enum describes flags that you can combine to configure the behavior of QDirIterator.

Constant Value Description
QDirIterator.NoIteratorFlags 0x0 The default value, representing no flags. The iterator will return entries for the assigned path.
QDirIterator.Subdirectories 0x2 List entries inside all subdirectories as well.
QDirIterator.FollowSymlinks 0x1 When combined with Subdirectories, this flag enables iterating through all subdirectories of the assigned path, following all symbolic links. Symbolic link loops (e.g., "link" => "." or "link" => "..") are automatically detected and ignored.

The IteratorFlags type is a typedef for QFlags<IteratorFlag>. It stores an OR combination of IteratorFlag values.


Method Documentation

QDirIterator.__init__ (self, QDir dir, IteratorFlags flags = QDirIterator.NoIteratorFlags)

Constructs a QDirIterator that can iterate over dir's entrylist, using dir's name filters and regular filters. You can pass options via flags to decide how the directory should be iterated.

By default, flags is NoIteratorFlags, which provides the same behavior as in QDir.entryList().

The sorting in dir is ignored.

Note: To list symlinks that point to non existing files, QDir.System must be passed to the flags.

See also hasNext(), next(), and IteratorFlags.

QDirIterator.__init__ (self, QString path, IteratorFlags flags = QDirIterator.NoIteratorFlags)

Constructs a QDirIterator that can iterate over path. You can pass options via flags to decide how the directory should be iterated.

By default, flags is NoIteratorFlags, which provides the same behavior as in QDir.entryList().

Note: To list symlinks that point to non existing files, QDir.System must be passed to the flags.

See also hasNext(), next(), and IteratorFlags.

QDirIterator.__init__ (self, QString path, QDir.Filters filters, IteratorFlags flags = QDirIterator.NoIteratorFlags)

Constructs a QDirIterator that can iterate over path, with no name filtering and filters for entry filtering. You can pass options via flags to decide how the directory should be iterated.

By default, filters is QDir.NoFilter, and flags is NoIteratorFlags, which provides the same behavior as in QDir.entryList().

Note: To list symlinks that point to non existing files, QDir.System must be passed to the flags.

See also hasNext(), next(), and IteratorFlags.

QDirIterator.__init__ (self, QString path, QStringList nameFilters, QDir.Filters filters = QDir.NoFilter, IteratorFlags flags = QDirIterator.NoIteratorFlags)

Constructs a QDirIterator that can iterate over path, using nameFilters and filters. You can pass options via flags to decide how the directory should be iterated.

By default, flags is NoIteratorFlags, which provides the same behavior as QDir.entryList().

Note: To list symlinks that point to non existing files, QDir.System must be passed to the flags.

See also hasNext(), next(), and IteratorFlags.

QFileInfo QDirIterator.fileInfo (self)

Returns a QFileInfo for the current directory entry.

See also filePath() and fileName().

QString QDirIterator.fileName (self)

Returns the file name for the current directory entry, without the path prepended.

This function is convenient when iterating a single directory. When using the QDirIterator.Subdirectories flag, you can use filePath() to get the full path.

See also filePath() and fileInfo().

QString QDirIterator.filePath (self)

Returns the full file path for the current directory entry.

See also fileInfo() and fileName().

bool QDirIterator.hasNext (self)

Returns true if there is at least one more entry in the directory; otherwise, false is returned.

See also next(), fileName(), filePath(), and fileInfo().

QString QDirIterator.next (self)

Advances the iterator to the next entry, and returns the file path of this new entry. If hasNext() returns false, this function does nothing, and returns a null QString.

You can call fileName() or filePath() to get the current entry file name or path, or fileInfo() to get a QFileInfo for the current entry.

See also hasNext(), fileName(), filePath(), and fileInfo().

QString QDirIterator.path (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdirmodel.html0000644000076500000240000005732112536324503020336 0ustar philstaff00000000000000 QDirModel Class Reference
  Home · All Classes · Modules

QDirModel Class Reference
[
QtGui module]

The QDirModel class provides a data model for the local filesystem. More...

Inherits QAbstractItemModel.

Types

  • enum Roles { FileIconRole, FilePathRole, FileNameRole }

Methods

  • __init__ (self, QStringList nameFilters, QDir.Filters filters, QDir.SortFlags sort, QObject parent = None)
  • __init__ (self, QObject parent = None)
  • int columnCount (self, QModelIndex parent = QModelIndex())
  • QVariant data (self, QModelIndex index, int role = Qt.DisplayRole)
  • bool dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)
  • QIcon fileIcon (self, QModelIndex index)
  • QFileInfo fileInfo (self, QModelIndex index)
  • QString fileName (self, QModelIndex index)
  • QString filePath (self, QModelIndex index)
  • QDir.Filters filter (self)
  • Qt.ItemFlags flags (self, QModelIndex index)
  • bool hasChildren (self, QModelIndex parent = QModelIndex())
  • QVariant headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)
  • QFileIconProvider iconProvider (self)
  • QModelIndex index (self, int row, int column, QModelIndex parent = QModelIndex())
  • QModelIndex index (self, QString path, int column = 0)
  • bool isDir (self, QModelIndex index)
  • bool isReadOnly (self)
  • bool lazyChildCount (self)
  • QMimeData mimeData (self, list-of-QModelIndex indexes)
  • QStringList mimeTypes (self)
  • QModelIndex mkdir (self, QModelIndex parent, QString name)
  • QStringList nameFilters (self)
  • QModelIndex parent (self, QModelIndex child)
  • QObject parent (self)
  • refresh (self, QModelIndex parent = QModelIndex())
  • bool remove (self, QModelIndex index)
  • bool resolveSymlinks (self)
  • bool rmdir (self, QModelIndex index)
  • int rowCount (self, QModelIndex parent = QModelIndex())
  • bool setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)
  • setFilter (self, QDir.Filters filters)
  • setIconProvider (self, QFileIconProvider provider)
  • setLazyChildCount (self, bool enable)
  • setNameFilters (self, QStringList filters)
  • setReadOnly (self, bool enable)
  • setResolveSymlinks (self, bool enable)
  • setSorting (self, QDir.SortFlags sort)
  • sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)
  • QDir.SortFlags sorting (self)
  • Qt.DropActions supportedDropActions (self)

Detailed Description

The QDirModel class provides a data model for the local filesystem.

The usage of QDirModel is not recommended anymore. The QFileSystemModel class is a more performant alternative.

This class provides access to the local filesystem, providing functions for renaming and removing files and directories, and for creating new directories. In the simplest case, it can be used with a suitable display widget as part of a browser or filer.

QDirModel keeps a cache with file information. The cache needs to be updated with refresh().

QDirModel can be accessed using the standard interface provided by QAbstractItemModel, but it also provides some convenience functions that are specific to a directory model. The fileInfo() and isDir() functions provide information about the underlying files and directories related to items in the model.

Directories can be created and removed using mkdir(), rmdir(), and the model will be automatically updated to take the changes into account.

Note: QDirModel requires an instance of a GUI application.


Type Documentation

QDirModel.Roles

Constant Value
QDirModel.FileIconRole Qt.DecorationRole
QDirModel.FilePathRole Qt.UserRole + 1
QDirModel.FileNameRole ?

Method Documentation

QDirModel.__init__ (self, QStringList nameFilters, QDir.Filters filters, QDir.SortFlags sort, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new directory model with the given parent. Only those files matching the nameFilters and the filters are included in the model. The sort order is given by the sort flags.

QDirModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a directory model with the given parent.

int QDirModel.columnCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.columnCount().

Returns the number of columns in the parent model item.

QVariant QDirModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.data().

Returns the data for the model item index with the given role.

See also setData().

bool QDirModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Reimplemented from QAbstractItemModel.dropMimeData().

Handles the data supplied by a drag and drop operation that ended with the given action over the row in the model specified by the row and column and by the parent index.

See also supportedDropActions().

QIcon QDirModel.fileIcon (self, QModelIndex index)

Returns the icons for the item stored in the model under the given index.

QFileInfo QDirModel.fileInfo (self, QModelIndex index)

Returns the file information for the specified model index.

Note: If the model index represents a symbolic link in the underlying filing system, the file information returned will contain information about the symbolic link itself, regardless of whether resolveSymlinks is enabled or not.

See also QFileInfo.symLinkTarget().

QString QDirModel.fileName (self, QModelIndex index)

Returns the name of the item stored in the model under the index given.

QString QDirModel.filePath (self, QModelIndex index)

Returns the path of the item stored in the model under the index given.

QDir.Filters QDirModel.filter (self)

Returns the filter specification for the directory model.

See also setFilter() and QDir.Filters.

Qt.ItemFlags QDirModel.flags (self, QModelIndex index)

Reimplemented from QAbstractItemModel.flags().

Returns the item flags for the given index in the model.

See also Qt.ItemFlags.

bool QDirModel.hasChildren (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.hasChildren().

Returns true if the parent model item has children; otherwise returns false.

QVariant QDirModel.headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.headerData().

Returns the data stored under the given role for the specified section of the header with the given orientation.

QFileIconProvider QDirModel.iconProvider (self)

Returns the file icon provider for this directory model.

See also setIconProvider().

QModelIndex QDirModel.index (self, int row, int column, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.index().

Returns the model item index for the item in the parent with the given row and column.

QModelIndex QDirModel.index (self, QString path, int column = 0)

This is an overloaded function.

Returns the model item index for the given path.

bool QDirModel.isDir (self, QModelIndex index)

Returns true if the model item index represents a directory; otherwise returns false.

bool QDirModel.isReadOnly (self)

bool QDirModel.lazyChildCount (self)

QMimeData QDirModel.mimeData (self, list-of-QModelIndex indexes)

The QMimeData result

Reimplemented from QAbstractItemModel.mimeData().

Returns an object that contains a serialized description of the specified indexes. The format used to describe the items corresponding to the indexes is obtained from the mimeTypes() function.

If the list of indexes is empty, 0 is returned rather than a serialized empty list.

QStringList QDirModel.mimeTypes (self)

Reimplemented from QAbstractItemModel.mimeTypes().

Returns a list of MIME types that can be used to describe a list of items in the model.

QModelIndex QDirModel.mkdir (self, QModelIndex parent, QString name)

Create a directory with the name in the parent model item.

QStringList QDirModel.nameFilters (self)

Returns a list of filters applied to the names in the model.

See also setNameFilters().

QModelIndex QDirModel.parent (self, QModelIndex child)

Reimplemented from QAbstractItemModel.parent().

Return the parent of the given child model item.

QObject QDirModel.parent (self)

QDirModel.refresh (self, QModelIndex parent = QModelIndex())

QDirModel caches file information. This function updates the cache. The parent parameter is the directory from which the model is updated; the default value will update the model from root directory of the file system (the entire model).

bool QDirModel.remove (self, QModelIndex index)

Removes the model item index from the directory model and deletes the corresponding file from the file system, returning true if successful. If the item cannot be removed, false is returned.

Warning: This function deletes files from the file system; it does not move them to a location where they can be recovered.

See also rmdir().

bool QDirModel.resolveSymlinks (self)

bool QDirModel.rmdir (self, QModelIndex index)

Removes the directory corresponding to the model item index in the directory model and deletes the corresponding directory from the file system, returning true if successful. If the directory cannot be removed, false is returned.

Warning: This function deletes directories from the file system; it does not move them to a location where they can be recovered.

See also remove().

int QDirModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

Returns the number of rows in the parent model item.

bool QDirModel.setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setData().

Sets the data for the model item index with the given role to the data referenced by the value. Returns true if successful; otherwise returns false.

See also data() and Qt.ItemDataRole.

QDirModel.setFilter (self, QDir.Filters filters)

Sets the directory model's filter to that specified by filters.

Note that the filter you set should always include the QDir.AllDirs enum value, otherwise QDirModel won't be able to read the directory structure.

See also filter() and QDir.Filters.

QDirModel.setIconProvider (self, QFileIconProvider provider)

Sets the provider of file icons for the directory model.

See also iconProvider().

QDirModel.setLazyChildCount (self, bool enable)

QDirModel.setNameFilters (self, QStringList filters)

Sets the name filters for the directory model.

See also nameFilters().

QDirModel.setReadOnly (self, bool enable)

QDirModel.setResolveSymlinks (self, bool enable)

QDirModel.setSorting (self, QDir.SortFlags sort)

Sets the directory model's sorting order to that specified by sort.

See also sorting() and QDir.SortFlags.

QDirModel.sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Reimplemented from QAbstractItemModel.sort().

Sort the model items in the column using the order given. The order is a value defined in Qt.SortOrder.

QDir.SortFlags QDirModel.sorting (self)

Returns the sorting method used for the directory model.

See also setSorting() and QDir.SortFlags.

Qt.DropActions QDirModel.supportedDropActions (self)

Reimplemented from QAbstractItemModel.supportedDropActions().

Returns the drop actions supported by this model.

See also Qt.DropActions.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdockwidget-dockwidgetfeatures.html0000644000076500000240000001540012536324503024534 0ustar philstaff00000000000000 QDockWidget.DockWidgetFeatures Class Reference
  Home · All Classes · Modules

QDockWidget.DockWidgetFeatures Class Reference
[QtGui module]

Methods

Special Methods

  • DockWidgetFeatures __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, DockWidgetFeatures f)
  • DockWidgetFeatures __iand__ (self, int mask)
  • int __int__ (self)
  • DockWidgetFeatures __invert__ (self)
  • DockWidgetFeatures __ior__ (self, DockWidgetFeatures f)
  • DockWidgetFeatures __ixor__ (self, DockWidgetFeatures f)
  • bool __ne__ (self, DockWidgetFeatures f)
  • DockWidgetFeatures __or__ (self, DockWidgetFeatures f)
  • DockWidgetFeatures __or__ (self, int f)
  • DockWidgetFeatures __xor__ (self, DockWidgetFeatures f)
  • DockWidgetFeatures __xor__ (self, int f)

Detailed Description

DockWidgetFeature may be used whenever DockWidgetFeatures is expected.


Method Documentation

DockWidgetFeatures.__init__ (self, DockWidgetFeatures)

DockWidgetFeatures.__init__ (self, int)

DockWidgetFeatures.__init__ (self)

DockWidgetFeatures DockWidgetFeatures.__and__ (self, int mask)

int DockWidgetFeatures.__bool__ (self)

bool DockWidgetFeatures.__eq__ (self, DockWidgetFeatures f)

DockWidgetFeatures DockWidgetFeatures.__iand__ (self, int mask)

int DockWidgetFeatures.__int__ (self)

DockWidgetFeatures DockWidgetFeatures.__invert__ (self)

DockWidgetFeatures DockWidgetFeatures.__ior__ (self, DockWidgetFeatures f)

DockWidgetFeatures DockWidgetFeatures.__ixor__ (self, DockWidgetFeatures f)

bool DockWidgetFeatures.__ne__ (self, DockWidgetFeatures f)

DockWidgetFeatures DockWidgetFeatures.__or__ (self, DockWidgetFeatures f)

DockWidgetFeatures DockWidgetFeatures.__or__ (self, int f)

DockWidgetFeatures DockWidgetFeatures.__xor__ (self, DockWidgetFeatures f)

DockWidgetFeatures DockWidgetFeatures.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdockwidget.html0000644000076500000240000004740312536324503020663 0ustar philstaff00000000000000 QDockWidget Class Reference
  Home · All Classes · Modules

QDockWidget Class Reference
[QtGui module]

The QDockWidget class provides a widget that can be docked inside a QMainWindow or floated as a top-level window on the desktop. More...

Inherits QWidget.

Types

  • enum DockWidgetFeature { DockWidgetClosable, DockWidgetMovable, DockWidgetFloatable, DockWidgetVerticalTitleBar, AllDockWidgetFeatures, NoDockWidgetFeatures }

Methods

Qt Signals


Detailed Description

The QDockWidget class provides a widget that can be docked inside a QMainWindow or floated as a top-level window on the desktop.

QDockWidget provides the concept of dock widgets, also know as tool palettes or utility windows. Dock windows are secondary windows placed in the dock widget area around the central widget in a QMainWindow.

Dock windows can be moved inside their current area, moved into new areas and floated (e.g., undocked) by the end-user. The QDockWidget API allows the programmer to restrict the dock widgets ability to move, float and close, as well as the areas in which they can be placed.

Appearance

A QDockWidget consists of a title bar and the content area. The title bar displays the dock widgets window title, a float button and a close button. Depending on the state of the QDockWidget, the float and close buttons may be either disabled or not shown at all.

The visual appearance of the title bar and buttons is dependent on the style in use.

A QDockWidget acts as a wrapper for its child widget, set with setWidget(). Custom size hints, minimum and maximum sizes and size policies should be implemented in the child widget. QDockWidget will respect them, adjusting its own constraints to include the frame and title. Size constraints should not be set on the QDockWidget itself, because they change depending on whether it is docked; a docked QDockWidget has no frame and a smaller title bar.


Type Documentation

QDockWidget.DockWidgetFeature

Constant Value Description
QDockWidget.DockWidgetClosable 0x01 The dock widget can be closed. On some systems the dock widget always has a close button when it's floating (for example on MacOS 10.5).
QDockWidget.DockWidgetMovable 0x02 The dock widget can be moved between docks by the user.
QDockWidget.DockWidgetFloatable 0x04 The dock widget can be detached from the main window, and floated as an independent window.
QDockWidget.DockWidgetVerticalTitleBar 0x08 The dock widget displays a vertical title bar on its left side. This can be used to increase the amount of vertical space in a QMainWindow.
QDockWidget.AllDockWidgetFeatures DockWidgetClosable | DockWidgetMovable | DockWidgetFloatable (Deprecated) The dock widget can be closed, moved, and floated. Since new features might be added in future releases, the look and behavior of dock widgets might change if you use this flag. Please specify individual flags instead.
QDockWidget.NoDockWidgetFeatures 0x00 The dock widget cannot be closed, moved, or floated.

The DockWidgetFeatures type is a typedef for QFlags<DockWidgetFeature>. It stores an OR combination of DockWidgetFeature values.


Method Documentation

QDockWidget.__init__ (self, QString title, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QDockWidget with parent parent and window flags flags. The dock widget will be placed in the left dock widget area.

The window title is set to title. This title is used when the QDockWidget is docked and undocked. It is also used in the context menu provided by QMainWindow.

See also setWindowTitle().

QDockWidget.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QDockWidget with parent parent and window flags flags. The dock widget will be placed in the left dock widget area.

Qt.DockWidgetAreas QDockWidget.allowedAreas (self)

QDockWidget.changeEvent (self, QEvent event)

Reimplemented from QWidget.changeEvent().

QDockWidget.closeEvent (self, QCloseEvent event)

Reimplemented from QWidget.closeEvent().

bool QDockWidget.event (self, QEvent event)

Reimplemented from QObject.event().

DockWidgetFeatures QDockWidget.features (self)

QDockWidget.initStyleOption (self, QStyleOptionDockWidget option)

Initialize option with the values from this QDockWidget. This method is useful for subclasses when they need a QStyleOptionDockWidget, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

bool QDockWidget.isAreaAllowed (self, Qt.DockWidgetArea area)

Returns true if this dock widget can be placed in the given area; otherwise returns false.

bool QDockWidget.isFloating (self)

QDockWidget.paintEvent (self, QPaintEvent event)

Reimplemented from QWidget.paintEvent().

QDockWidget.setAllowedAreas (self, Qt.DockWidgetAreas areas)

QDockWidget.setFeatures (self, DockWidgetFeatures features)

QDockWidget.setFloating (self, bool floating)

QDockWidget.setTitleBarWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets an arbitrary widget as the dock widget's title bar. If widget is 0, any custom title bar widget previously set on the dock widget is removed, but not deleted, and the default title bar will be used instead.

If a title bar widget is set, QDockWidget will not use native window decorations when it is floated.

Here are some tips for implementing custom title bars:

  • Mouse events that are not explicitly handled by the title bar widget must be ignored by calling QMouseEvent.ignore(). These events then propagate to the QDockWidget parent, which handles them in the usual manner, moving when the title bar is dragged, docking and undocking when it is double-clicked, etc.
  • When DockWidgetVerticalTitleBar is set on QDockWidget, the title bar widget is repositioned accordingly. In resizeEvent(), the title bar should check what orientation it should assume:
     QDockWidget *dockWidget = qobject_cast<QDockWidget*>(parentWidget());
     if (dockWidget->features() & QDockWidget.DockWidgetVerticalTitleBar) {
         // I need to be vertical
     } else {
         // I need to be horizontal
     }
    
  • The title bar widget must have a valid QWidget.sizeHint() and QWidget.minimumSizeHint(). These functions should take into account the current orientation of the title bar.
  • It is not possible to remove a title bar from a dock widget. However, a similar effect can be achieved by setting a default constructed QWidget as the title bar widget.

Using qobject_cast() as shown above, the title bar widget has full access to its parent QDockWidget. Hence it can perform such operations as docking and hiding in response to user actions.

This function was introduced in Qt 4.3.

See also titleBarWidget() and DockWidgetVerticalTitleBar.

QDockWidget.setWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the widget for the dock widget to widget.

If the dock widget is visible when widget is added, you must show() it explicitly.

Note that you must add the layout of the widget before you call this function; if not, the widget will not be visible.

See also widget().

QWidget QDockWidget.titleBarWidget (self)

Returns the custom title bar widget set on the QDockWidget, or 0 if no custom title bar has been set.

This function was introduced in Qt 4.3.

See also setTitleBarWidget().

QAction QDockWidget.toggleViewAction (self)

Returns a checkable action that can be used to show or close this dock widget.

The action's text is set to the dock widget's window title.

See also QAction.text and QWidget.windowTitle.

QWidget QDockWidget.widget (self)

Returns the widget for the dock widget. This function returns zero if the widget has not been set.

See also setWidget().


Qt Signal Documentation

void allowedAreasChanged (Qt::DockWidgetAreas)

This is the default overload of this signal.

This signal is emitted when the allowedAreas property changes. The allowedAreas parameter gives the new value of the property.

void dockLocationChanged (Qt::DockWidgetArea)

This is the default overload of this signal.

This signal is emitted when the dock widget is moved to another dock area, or is moved to a different location in its current dock area. This happens when the dock widget is moved programmatically or is dragged to a new location by the user.

This function was introduced in Qt 4.3.

void featuresChanged (QDockWidget::DockWidgetFeatures)

This is the default overload of this signal.

This signal is emitted when the features property changes. The features parameter gives the new value of the property.

void topLevelChanged (bool)

This is the default overload of this signal.

This signal is emitted when the floating property changes. The topLevel parameter is true if the dock widget is now floating; otherwise it is false.

See also isWindow().

void visibilityChanged (bool)

This is the default overload of this signal.

This signal is emitted when the dock widget becomes visible (or invisible). This happens when the widget is hidden or shown, as well as when it is docked in a tabbed dock area and its tab becomes selected or unselected.

This function was introduced in Qt 4.3.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomattr.html0000644000076500000240000001662412536324523020214 0ustar philstaff00000000000000 QDomAttr Class Reference
  Home · All Classes · Modules

QDomAttr Class Reference
[
QtXml module]

The QDomAttr class represents one attribute of a QDomElement. More...

Inherits QDomNode.

Methods


Detailed Description

The QDomAttr class represents one attribute of a QDomElement.

For example, the following piece of XML produces an element with no children, but two attributes:

 <link href="http://qt.nokia.com" color="red" />

You can access the attributes of an element with code like this:

 QDomElement e = //...
 //...
 QDomAttr a = e.attributeNode("href");
 cout << a.value() << endl;                // prints "http://qt.nokia.com"
 a.setValue("http://qt.nokia.com/doc"); // change the node's attribute
 QDomAttr a2 = e.attributeNode("href");
 cout << a2.value() << endl;               // prints "http://qt.nokia.com/doc"

This example also shows that changing an attribute received from an element changes the attribute of the element. If you do not want to change the value of the element's attribute you must use cloneNode() to get an independent copy of the attribute.

QDomAttr can return the name() and value() of an attribute. An attribute's value is set with setValue(). If specified() returns true the value was set with setValue(). The node this attribute is attached to (if any) is returned by ownerElement().

For further information about the Document Object Model see http://www.w3.org/TR/REC-DOM-Level-1/ and http://www.w3.org/TR/DOM-Level-2-Core/. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomAttr.__init__ (self)

Constructs an empty attribute.

QDomAttr.__init__ (self, QDomAttr x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QString QDomAttr.name (self)

Returns the attribute's name.

QDomNode.NodeType QDomAttr.nodeType (self)

Returns AttributeNode.

QDomElement QDomAttr.ownerElement (self)

Returns the element node this attribute is attached to or a null node if this attribute is not attached to any element.

QDomAttr.setValue (self, QString)

Sets the attribute's value to v.

See also value().

bool QDomAttr.specified (self)

Returns true if the attribute has been set by the user with setValue(). Returns false if the value hasn't been specified or set.

See also setValue().

QString QDomAttr.value (self)

Returns the value of the attribute or an empty string if the attribute has not been specified.

See also specified() and setValue().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomcdatasection.html0000644000076500000240000000763312536324523021703 0ustar philstaff00000000000000 QDomCDATASection Class Reference
  Home · All Classes · Modules

QDomCDATASection Class Reference
[QtXml module]

The QDomCDATASection class represents an XML CDATA section. More...

Inherits QDomText.

Methods


Detailed Description

The QDomCDATASection class represents an XML CDATA section.

CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. The only delimiter that is recognized in a CDATA section is the "]]&gt;" string that terminates the CDATA section. CDATA sections cannot be nested. Their primary purpose is for including material such as XML fragments, without needing to escape all the delimiters.

Adjacent QDomCDATASection nodes are not merged by the QDomNode.normalize() function.

For further information about the Document Object Model see http://www.w3.org/TR/REC-DOM-Level-1/ and http://www.w3.org/TR/DOM-Level-2-Core/. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomCDATASection.__init__ (self)

Constructs an empty CDATA section. To create a CDATA section with content, use the QDomDocument.createCDATASection() function.

QDomCDATASection.__init__ (self, QDomCDATASection x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomNode.NodeType QDomCDATASection.nodeType (self)

Returns CDATASection.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomcharacterdata.html0000644000076500000240000001620312536324523022021 0ustar philstaff00000000000000 QDomCharacterData Class Reference
  Home · All Classes · Modules

QDomCharacterData Class Reference
[QtXml module]

The QDomCharacterData class represents a generic string in the DOM. More...

Inherits QDomNode.

Inherited by QDomComment and QDomText.

Methods


Detailed Description

The QDomCharacterData class represents a generic string in the DOM.

Character data as used in XML specifies a generic data string. More specialized versions of this class are QDomText, QDomComment and QDomCDATASection.

The data string is set with setData() and retrieved with data(). You can retrieve a portion of the data string using substringData(). Extra data can be appended with appendData(), or inserted with insertData(). Portions of the data string can be deleted with deleteData() or replaced with replaceData(). The length of the data string is returned by length().

The node type of the node containing this character data is returned by nodeType().


Method Documentation

QDomCharacterData.__init__ (self)

Constructs an empty character data object.

QDomCharacterData.__init__ (self, QDomCharacterData x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomCharacterData.appendData (self, QString arg)

Appends the string arg to the stored string.

QString QDomCharacterData.data (self)

Returns the string stored in this object.

If the node is a null node, it will return an empty string.

See also setData().

QDomCharacterData.deleteData (self, int offset, int count)

Deletes a substring of length count from position offset.

QDomCharacterData.insertData (self, int offset, QString arg)

Inserts the string arg into the stored string at position offset.

int QDomCharacterData.length (self)

Returns the length of the stored string.

QDomNode.NodeType QDomCharacterData.nodeType (self)

Returns the type of node this object refers to (i.e. TextNode, CDATASectionNode, CommentNode or CharacterDataNode). For a null node, returns CharacterDataNode.

QDomCharacterData.replaceData (self, int offset, int count, QString arg)

Replaces the substring of length count starting at position offset with the string arg.

QDomCharacterData.setData (self, QString)

Sets this object's string to v.

See also data().

QString QDomCharacterData.substringData (self, int offset, int count)

Returns the substring of length count from position offset.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomcomment.html0000644000076500000240000000731712536324523020703 0ustar philstaff00000000000000 QDomComment Class Reference
  Home · All Classes · Modules

QDomComment Class Reference
[
QtXml module]

The QDomComment class represents an XML comment. More...

Inherits QDomCharacterData.

Methods


Detailed Description

The QDomComment class represents an XML comment.

A comment in the parsed XML such as this:

 <!-- this is a comment -->

is represented by QDomComment objects in the parsed Dom tree.

For further information about the Document Object Model see http://www.w3.org/TR/REC-DOM-Level-1/ and http://www.w3.org/TR/DOM-Level-2-Core/. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomComment.__init__ (self)

Constructs an empty comment. To construct a comment with content, use the QDomDocument.createComment() function.

QDomComment.__init__ (self, QDomComment x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomNode.NodeType QDomComment.nodeType (self)

Returns CommentNode.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomdocument.html0000644000076500000240000011437112536324523021056 0ustar philstaff00000000000000 QDomDocument Class Reference
  Home · All Classes · Modules

QDomDocument Class Reference
[QtXml module]

The QDomDocument class represents an XML document. More...

Inherits QDomNode.

Methods

  • __init__ (self)
  • __init__ (self, QString name)
  • __init__ (self, QDomDocumentType doctype)
  • __init__ (self, QDomDocument x)
  • QDomAttr createAttribute (self, QString name)
  • QDomAttr createAttributeNS (self, QString nsURI, QString qName)
  • QDomCDATASection createCDATASection (self, QString data)
  • QDomComment createComment (self, QString data)
  • QDomDocumentFragment createDocumentFragment (self)
  • QDomElement createElement (self, QString tagName)
  • QDomElement createElementNS (self, QString nsURI, QString qName)
  • QDomEntityReference createEntityReference (self, QString name)
  • QDomProcessingInstruction createProcessingInstruction (self, QString target, QString data)
  • QDomText createTextNode (self, QString data)
  • QDomDocumentType doctype (self)
  • QDomElement documentElement (self)
  • QDomElement elementById (self, QString elementId)
  • QDomNodeList elementsByTagName (self, QString tagname)
  • QDomNodeList elementsByTagNameNS (self, QString nsURI, QString localName)
  • QDomImplementation implementation (self)
  • QDomNode importNode (self, QDomNode importedNode, bool deep)
  • QDomNode.NodeType nodeType (self)
  • (bool, QString errorMsg, int errorLine, int errorColumn) setContent (self, QByteArray data, bool namespaceProcessing)
  • (bool, QString errorMsg, int errorLine, int errorColumn) setContent (self, QString text, bool namespaceProcessing)
  • (bool, QString errorMsg, int errorLine, int errorColumn) setContent (self, QIODevice dev, bool namespaceProcessing)
  • (bool, QString errorMsg, int errorLine, int errorColumn) setContent (self, QXmlInputSource source, bool namespaceProcessing)
  • (bool, QString errorMsg, int errorLine, int errorColumn) setContent (self, QByteArray buffer)
  • (bool, QString errorMsg, int errorLine, int errorColumn) setContent (self, QString text)
  • (bool, QString errorMsg, int errorLine, int errorColumn) setContent (self, QIODevice dev)
  • (bool, QString errorMsg, int errorLine, int errorColumn) setContent (self, QXmlInputSource source, QXmlReader reader)
  • QByteArray toByteArray (self, int indent = 1)
  • QString toString (self, int indent = 1)

Detailed Description

The QDomDocument class represents an XML document.

The QDomDocument class represents the entire XML document. Conceptually, it is the root of the document tree, and provides the primary access to the document's data.

Since elements, text nodes, comments, processing instructions, etc., cannot exist outside the context of a document, the document class also contains the factory functions needed to create these objects. The node objects created have an ownerDocument() function which associates them with the document within whose context they were created. The DOM classes that will be used most often are QDomNode, QDomDocument, QDomElement and QDomText.

The parsed XML is represented internally by a tree of objects that can be accessed using the various QDom classes. All QDom classes only reference objects in the internal tree. The internal objects in the DOM tree will get deleted once the last QDom object referencing them and the QDomDocument itself are deleted.

Creation of elements, text nodes, etc. is done using the various factory functions provided in this class. Using the default constructors of the QDom classes will only result in empty objects that cannot be manipulated or inserted into the Document.

The QDomDocument class has several functions for creating document data, for example, createElement(), createTextNode(), createComment(), createCDATASection(), createProcessingInstruction(), createAttribute() and createEntityReference(). Some of these functions have versions that support namespaces, i.e. createElementNS() and createAttributeNS(). The createDocumentFragment() function is used to hold parts of the document; this is useful for manipulating for complex documents.

The entire content of the document is set with setContent(). This function parses the string it is passed as an XML document and creates the DOM tree that represents the document. The root element is available using documentElement(). The textual representation of the document can be obtained using toString().

Note: The DOM tree might end up reserving a lot of memory if the XML document is big. For big XML documents, the QXmlStreamReader or the QXmlQuery classes might be better solutions.

It is possible to insert a node from another document into the document using importNode().

You can obtain a list of all the elements that have a particular tag with elementsByTagName() or with elementsByTagNameNS().

The QDom classes are typically used as follows:

 QDomDocument doc("mydocument");
 QFile file("mydocument.xml");
 if (!file.open(QIODevice.ReadOnly))
     return;
 if (!doc.setContent(&file)) {
     file.close();
     return;
 }
 file.close();

 // print out the element names of all elements that are direct children
 // of the outermost element.
 QDomElement docElem = doc.documentElement();

 QDomNode n = docElem.firstChild();
 while(!n.isNull()) {
     QDomElement e = n.toElement(); // try to convert the node to an element.
     if(!e.isNull()) {
         cout << qPrintable(e.tagName()) << endl; // the node really is an element.
     }
     n = n.nextSibling();
 }

 // Here we append a new element to the end of the document
 QDomElement elem = doc.createElement("img");
 elem.setAttribute("src", "myimage.png");
 docElem.appendChild(elem);

Once doc and elem go out of scope, the whole internal tree representing the XML document is deleted.

To create a document using DOM use code like this:

 QDomDocument doc("MyML");
 QDomElement root = doc.createElement("MyML");
 doc.appendChild(root);

 QDomElement tag = doc.createElement("Greeting");
 root.appendChild(tag);

 QDomText t = doc.createTextNode("Hello World");
 tag.appendChild(t);

 QString xml = doc.toString();

For further information about the Document Object Model see the Document Object Model (DOM) Level 1 and Level 2 Core Specifications.


Method Documentation

QDomDocument.__init__ (self)

Constructs an empty document.

QDomDocument.__init__ (self, QString name)

Creates a document and sets the name of the document type to name.

QDomDocument.__init__ (self, QDomDocumentType doctype)

Creates a document with the document type doctype.

See also QDomImplementation.createDocumentType().

QDomDocument.__init__ (self, QDomDocument x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomAttr QDomDocument.createAttribute (self, QString name)

Creates a new attribute called name that can be inserted into an element, e.g. using QDomElement.setAttributeNode().

If name is not a valid XML name, the behavior of this function is governed by QDomImplementation.InvalidDataPolicy.

See also createAttributeNS().

QDomAttr QDomDocument.createAttributeNS (self, QString nsURI, QString qName)

Creates a new attribute with namespace support that can be inserted into an element. The name of the attribute is qName and the namespace URI is nsURI. This function also sets QDomNode.prefix() and QDomNode.localName() to appropriate values (depending on qName).

If qName is not a valid XML name, the behavior of this function is governed by QDomImplementation.InvalidDataPolicy.

See also createAttribute().

QDomCDATASection QDomDocument.createCDATASection (self, QString data)

Creates a new CDATA section for the string value that can be inserted into the document, e.g. using QDomNode.appendChild().

If value contains characters which cannot be stored in a CDATA section, the behavior of this function is governed by QDomImplementation.InvalidDataPolicy.

See also QDomNode.appendChild(), QDomNode.insertBefore(), and QDomNode.insertAfter().

QDomComment QDomDocument.createComment (self, QString data)

Creates a new comment for the string value that can be inserted into the document, e.g. using QDomNode.appendChild().

If value contains characters which cannot be stored in an XML comment, the behavior of this function is governed by QDomImplementation.InvalidDataPolicy.

See also QDomNode.appendChild(), QDomNode.insertBefore(), and QDomNode.insertAfter().

QDomDocumentFragment QDomDocument.createDocumentFragment (self)

Creates a new document fragment, that can be used to hold parts of the document, e.g. when doing complex manipulations of the document tree.

QDomElement QDomDocument.createElement (self, QString tagName)

Creates a new element called tagName that can be inserted into the DOM tree, e.g. using QDomNode.appendChild().

If tagName is not a valid XML name, the behavior of this function is governed by QDomImplementation.InvalidDataPolicy.

QDomNode.insertAfter()

See also createElementNS(), QDomNode.appendChild(), and QDomNode.insertBefore().

QDomElement QDomDocument.createElementNS (self, QString nsURI, QString qName)

Creates a new element with namespace support that can be inserted into the DOM tree. The name of the element is qName and the namespace URI is nsURI. This function also sets QDomNode.prefix() and QDomNode.localName() to appropriate values (depending on qName).

If qName is an empty string, returns a null element regardless of whether the invalid data policy is set.

See also createElement().

QDomEntityReference QDomDocument.createEntityReference (self, QString name)

Creates a new entity reference called name that can be inserted into the document, e.g. using QDomNode.appendChild().

If name is not a valid XML name, the behavior of this function is governed by QDomImplementation.InvalidDataPolicy.

See also QDomNode.appendChild(), QDomNode.insertBefore(), and QDomNode.insertAfter().

QDomProcessingInstruction QDomDocument.createProcessingInstruction (self, QString target, QString data)

Creates a new processing instruction that can be inserted into the document, e.g. using QDomNode.appendChild(). This function sets the target for the processing instruction to target and the data to data.

If target is not a valid XML name, or data if contains characters which cannot appear in a processing instruction, the behavior of this function is governed by QDomImplementation.InvalidDataPolicy.

See also QDomNode.appendChild(), QDomNode.insertBefore(), and QDomNode.insertAfter().

QDomText QDomDocument.createTextNode (self, QString data)

Creates a text node for the string value that can be inserted into the document tree, e.g. using QDomNode.appendChild().

If value contains characters which cannot be stored as character data of an XML document (even in the form of character references), the behavior of this function is governed by QDomImplementation.InvalidDataPolicy.

See also QDomNode.appendChild(), QDomNode.insertBefore(), and QDomNode.insertAfter().

QDomDocumentType QDomDocument.doctype (self)

Returns the document type of this document.

QDomElement QDomDocument.documentElement (self)

Returns the root element of the document.

QDomElement QDomDocument.elementById (self, QString elementId)

Returns the element whose ID is equal to elementId. If no element with the ID was found, this function returns a null element.

Since the QDomClasses do not know which attributes are element IDs, this function returns always a null element. This may change in a future version.

QDomNodeList QDomDocument.elementsByTagName (self, QString tagname)

Returns a QDomNodeList, that contains all the elements in the document with the name tagname. The order of the node list is the order they are encountered in a preorder traversal of the element tree.

See also elementsByTagNameNS() and QDomElement.elementsByTagName().

QDomNodeList QDomDocument.elementsByTagNameNS (self, QString nsURI, QString localName)

Returns a QDomNodeList that contains all the elements in the document with the local name localName and a namespace URI of nsURI. The order of the node list is the order they are encountered in a preorder traversal of the element tree.

See also elementsByTagName() and QDomElement.elementsByTagNameNS().

QDomImplementation QDomDocument.implementation (self)

Returns a QDomImplementation object.

QDomNode QDomDocument.importNode (self, QDomNode importedNode, bool deep)

Imports the node importedNode from another document to this document. importedNode remains in the original document; this function creates a copy that can be used within this document.

This function returns the imported node that belongs to this document. The returned node has no parent. It is not possible to import QDomDocument and QDomDocumentType nodes. In those cases this function returns a null node.

If deep is true, this function imports not only the node importedNode but its whole subtree; if it is false, only the importedNode is imported. The argument deep has no effect on QDomAttr and QDomEntityReference nodes, since the descendants of QDomAttr nodes are always imported and those of QDomEntityReference nodes are never imported.

The behavior of this function is slightly different depending on the node types:

Node Type Behavior
QDomAttr The owner element is set to 0 and the specified flag is set to true in the generated attribute. The whole subtree of importedNode is always imported for attribute nodes: deep has no effect.
QDomDocument Document nodes cannot be imported.
QDomDocumentFragment If deep is true, this function imports the whole document fragment; otherwise it only generates an empty document fragment.
QDomDocumentType Document type nodes cannot be imported.
QDomElement Attributes for which QDomAttr.specified() is true are also imported, other attributes are not imported. If deep is true, this function also imports the subtree of importedNode; otherwise it imports only the element node (and some attributes, see above).
QDomEntity Entity nodes can be imported, but at the moment there is no way to use them since the document type is read-only in DOM level 2.
QDomEntityReference Descendants of entity reference nodes are never imported: deep has no effect.
QDomNotation Notation nodes can be imported, but at the moment there is no way to use them since the document type is read-only in DOM level 2.
QDomProcessingInstruction The target and value of the processing instruction is copied to the new node.
QDomText The text is copied to the new node.
QDomCDATASection The text is copied to the new node.
QDomComment The text is copied to the new node.

QDomNode.insertAfter() QDomNode.replaceChild() QDomNode.removeChild() QDomNode.appendChild()

See also QDomElement.setAttribute() and QDomNode.insertBefore().

QDomNode.NodeType QDomDocument.nodeType (self)

Returns DocumentNode.

(bool, QString errorMsg, int errorLine, int errorColumn) QDomDocument.setContent (self, QByteArray data, bool namespaceProcessing)

This function parses the XML document from the byte array data and sets it as the content of the document. It tries to detect the encoding of the document as required by the XML specification.

If namespaceProcessing is true, the parser recognizes namespaces in the XML file and sets the prefix name, local name and namespace URI to appropriate values. If namespaceProcessing is false, the parser does no namespace processing when it reads the XML file.

If a parse error occurs, this function returns false and the error message is placed in *errorMsg, the line number in *errorLine and the column number in *errorColumn (unless the associated pointer is set to 0); otherwise this function returns true. The various error messages are described in the QXmlParseException class documentation. Note that, if you want to display these error messages to your application's users, they will be displayed in English unless they are explicitly translated.

If namespaceProcessing is true, the function QDomNode.prefix() returns a string for all elements and attributes. It returns an empty string if the element or attribute has no prefix.

Text nodes consisting only of whitespace are stripped and won't appear in the QDomDocument. If this behavior is not desired, one can use the setContent() overload that allows a QXmlReader to be supplied.

If namespaceProcessing is false, the functions QDomNode.prefix(), QDomNode.localName() and QDomNode.namespaceURI() return an empty string.

Entity references are handled as follows:

  • References to internal general entities and character entities occurring in the content are included. The result is a QDomText node with the references replaced by their corresponding entity values.
  • References to parameter entities occurring in the internal subset are included. The result is a QDomDocumentType node which contains entity and notation declarations with the references replaced by their corresponding entity values.
  • Any general parsed entity reference which is not defined in the internal subset and which occurs in the content is represented as a QDomEntityReference node.
  • Any parsed entity reference which is not defined in the internal subset and which occurs outside of the content is replaced with an empty string.
  • Any unparsed entity reference is replaced with an empty string.

QDomNode.prefix() QString.isNull() QString.isEmpty()

Warning: This function is not reentrant.

See also QDomNode.namespaceURI() and QDomNode.localName().

(bool, QString errorMsg, int errorLine, int errorColumn) QDomDocument.setContent (self, QString text, bool namespaceProcessing)

This is an overloaded function.

This function reads the XML document from the string text, returning true if the content was successfully parsed; otherwise returns false. Since text is already a Unicode string, no encoding detection is done.

(bool, QString errorMsg, int errorLine, int errorColumn) QDomDocument.setContent (self, QIODevice dev, bool namespaceProcessing)

This is an overloaded function.

This function reads the XML document from the IO device dev, returning true if the content was successfully parsed; otherwise returns false.

(bool, QString errorMsg, int errorLine, int errorColumn) QDomDocument.setContent (self, QXmlInputSource source, bool namespaceProcessing)

This is an overloaded function.

This function reads the XML document from the QXmlInputSource source, returning true if the content was successfully parsed; otherwise returns false.

This function was introduced in Qt 4.5.

(bool, QString errorMsg, int errorLine, int errorColumn) QDomDocument.setContent (self, QByteArray buffer)

This is an overloaded function.

This function reads the XML document from the string text, returning true if the content was successfully parsed; otherwise returns false. Since text is already a Unicode string, no encoding detection is performed.

No namespace processing is performed either.

(bool, QString errorMsg, int errorLine, int errorColumn) QDomDocument.setContent (self, QString text)

This is an overloaded function.

This function reads the XML document from the byte array buffer, returning true if the content was successfully parsed; otherwise returns false.

No namespace processing is performed.

(bool, QString errorMsg, int errorLine, int errorColumn) QDomDocument.setContent (self, QIODevice dev)

This is an overloaded function.

This function reads the XML document from the IO device dev, returning true if the content was successfully parsed; otherwise returns false.

No namespace processing is performed.

(bool, QString errorMsg, int errorLine, int errorColumn) QDomDocument.setContent (self, QXmlInputSource source, QXmlReader reader)

This is an overloaded function.

This function reads the XML document from the QXmlInputSource source and parses it with the QXmlReader reader, returning true if the content was successfully parsed; otherwise returns false.

This function doesn't change the features of the reader. If you want to use certain features for parsing you can use this function to set up the reader appropriately.

See also QXmlSimpleReader.

QByteArray QDomDocument.toByteArray (self, int indent = 1)

Converts the parsed document back to its textual representation and returns a QByteArray containing the data encoded as UTF-8.

This function uses indent as the amount of space to indent subelements.

See also toString().

QString QDomDocument.toString (self, int indent = 1)

Converts the parsed document back to its textual representation.

This function uses indent as the amount of space to indent subelements.

If indent is -1, no whitespace at all is added.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomdocumentfragment.html0000644000076500000240000001025512536324523022576 0ustar philstaff00000000000000 QDomDocumentFragment Class Reference
  Home · All Classes · Modules

QDomDocumentFragment Class Reference
[
QtXml module]

The QDomDocumentFragment class is a tree of QDomNodes which is not usually a complete QDomDocument. More...

Inherits QDomNode.

Methods


Detailed Description

The QDomDocumentFragment class is a tree of QDomNodes which is not usually a complete QDomDocument.

If you want to do complex tree operations it is useful to have a lightweight class to store nodes and their relations. QDomDocumentFragment stores a subtree of a document which does not necessarily represent a well-formed XML document.

QDomDocumentFragment is also useful if you want to group several nodes in a list and insert them all together as children of some node. In these cases QDomDocumentFragment can be used as a temporary container for this list of children.

The most important feature of QDomDocumentFragment is that it is treated in a special way by QDomNode.insertAfter(), QDomNode.insertBefore(), QDomNode.replaceChild() and QDomNode.appendChild(): instead of inserting the fragment itself, all the fragment's children are inserted.


Method Documentation

QDomDocumentFragment.__init__ (self)

Constructs an empty document fragment.

QDomDocumentFragment.__init__ (self, QDomDocumentFragment x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomNode.NodeType QDomDocumentFragment.nodeType (self)

Returns DocumentFragment.

See also isDocumentFragment() and QDomNode.toDocumentFragment().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomdocumenttype.html0000644000076500000240000001443112536324523021754 0ustar philstaff00000000000000 QDomDocumentType Class Reference
  Home · All Classes · Modules

QDomDocumentType Class Reference
[QtXml module]

The QDomDocumentType class is the representation of the DTD in the document tree. More...

Inherits QDomNode.

Methods


Detailed Description

The QDomDocumentType class is the representation of the DTD in the document tree.

The QDomDocumentType class allows read-only access to some of the data structures in the DTD: it can return a map of all entities() and notations(). In addition the function name() returns the name of the document type as specified in the &lt;!DOCTYPE name&gt; tag. This class also provides the publicId(), systemId() and internalSubset() functions.


Method Documentation

QDomDocumentType.__init__ (self)

Creates an empty QDomDocumentType object.

QDomDocumentType.__init__ (self, QDomDocumentType x)

Constructs a copy of n.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomNamedNodeMap QDomDocumentType.entities (self)

Returns a map of all entities described in the DTD.

QString QDomDocumentType.internalSubset (self)

Returns the internal subset of the document type or an empty string if there is no internal subset.

See also publicId() and systemId().

QString QDomDocumentType.name (self)

Returns the name of the document type as specified in the &lt;!DOCTYPE name&gt; tag.

See also nodeName().

QDomNode.NodeType QDomDocumentType.nodeType (self)

Returns DocumentTypeNode.

See also isDocumentType() and QDomNode.toDocumentType().

QDomNamedNodeMap QDomDocumentType.notations (self)

Returns a map of all notations described in the DTD.

QString QDomDocumentType.publicId (self)

Returns the public identifier of the external DTD subset or an empty string if there is no public identifier.

See also systemId(), internalSubset(), and QDomImplementation.createDocumentType().

QString QDomDocumentType.systemId (self)

Returns the system identifier of the external DTD subset or an empty string if there is no system identifier.

See also publicId(), internalSubset(), and QDomImplementation.createDocumentType().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomelement.html0000644000076500000240000006166712536324523020702 0ustar philstaff00000000000000 QDomElement Class Reference
  Home · All Classes · Modules

QDomElement Class Reference
[QtXml module]

The QDomElement class represents one element in the DOM tree. More...

Inherits QDomNode.

Methods


Detailed Description

The QDomElement class represents one element in the DOM tree.

Elements have a tagName() and zero or more attributes associated with them. The tag name can be changed with setTagName().

Element attributes are represented by QDomAttr objects that can be queried using the attribute() and attributeNode() functions. You can set attributes with the setAttribute() and setAttributeNode() functions. Attributes can be removed with removeAttribute(). There are namespace-aware equivalents to these functions, i.e. setAttributeNS(), setAttributeNodeNS() and removeAttributeNS().

If you want to access the text of a node use text(), e.g.

 QDomElement e = //...
 //...
 QString s = e.text()

The text() function operates recursively to find the text (since not all elements contain text). If you want to find all the text in all of a node's children, iterate over the children looking for QDomText nodes, e.g.

 QString text;
 QDomElement element = doc.documentElement();
 for(QDomNode n = element.firstChild(); !n.isNull(); n = n.nextSibling())
 {
     QDomText t = n.toText();
     if (!t.isNull())
         text += t.data();
 }

Note that we attempt to convert each node to a text node and use text() rather than using firstChild().toText().data() or n.toText().data() directly on the node, because the node may not be a text element.

You can get a list of all the decendents of an element which have a specified tag name with elementsByTagName() or elementsByTagNameNS().

To browse the elements of a dom document use firstChildElement(), lastChildElement(), nextSiblingElement() and previousSiblingElement(). For example, to iterate over all child elements called "entry" in a root element called "database", you can use:

 QDomDocument doc = // ...
 QDomElement root = doc.firstChildElement("database");
 QDomElement elt = root.firstChildElement("entry");
 for (; !elt.isNull(); elt = elt.nextSiblingElement("entry")) {
     // ...
 }

For further information about the Document Object Model see Level 1 and Level 2 Core. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomElement.__init__ (self)

Constructs an empty element. Use the QDomDocument.createElement() function to construct elements with content.

QDomElement.__init__ (self, QDomElement x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QString QDomElement.attribute (self, QString name, QString defaultValue = QString())

Returns the attribute called name. If the attribute does not exist defValue is returned.

See also setAttribute(), attributeNode(), setAttributeNode(), and attributeNS().

QDomAttr QDomElement.attributeNode (self, QString name)

Returns the QDomAttr object that corresponds to the attribute called name. If no such attribute exists a null attribute is returned.

See also setAttributeNode(), attribute(), setAttribute(), and attributeNodeNS().

QDomAttr QDomElement.attributeNodeNS (self, QString nsURI, QString localName)

Returns the QDomAttr object that corresponds to the attribute with the local name localName and the namespace URI nsURI. If no such attribute exists a null attribute is returned.

See also setAttributeNodeNS(), setAttributeNode(), attribute(), and setAttribute().

QString QDomElement.attributeNS (self, QString nsURI, QString localName, QString defaultValue = QString())

Returns the attribute with the local name localName and the namespace URI nsURI. If the attribute does not exist defValue is returned.

See also setAttributeNS(), attributeNodeNS(), setAttributeNodeNS(), and attribute().

QDomNamedNodeMap QDomElement.attributes (self)

Returns a QDomNamedNodeMap containing all this element's attributes.

See also attribute(), setAttribute(), attributeNode(), and setAttributeNode().

QDomNodeList QDomElement.elementsByTagName (self, QString tagname)

Returns a QDomNodeList containing all descendants of this element named tagname encountered during a preorder traversal of the element subtree with this element as its root. The order of the elements in the returned list is the order they are encountered during the preorder traversal.

See also elementsByTagNameNS() and QDomDocument.elementsByTagName().

QDomNodeList QDomElement.elementsByTagNameNS (self, QString nsURI, QString localName)

Returns a QDomNodeList containing all descendants of this element with local name localName and namespace URI nsURI encountered during a preorder traversal of the element subtree with this element as its root. The order of the elements in the returned list is the order they are encountered during the preorder traversal.

See also elementsByTagName() and QDomDocument.elementsByTagNameNS().

bool QDomElement.hasAttribute (self, QString name)

Returns true if this element has an attribute called name; otherwise returns false.

Note: This function does not take the presence of namespaces into account. As a result, the specified name will be tested against fully-qualified attribute names that include any namespace prefixes that may be present.

Use hasAttributeNS() to explicitly test for attributes with specific namespaces and names.

bool QDomElement.hasAttributeNS (self, QString nsURI, QString localName)

Returns true if this element has an attribute with the local name localName and the namespace URI nsURI; otherwise returns false.

QDomNode.NodeType QDomElement.nodeType (self)

Returns ElementNode.

QDomElement.removeAttribute (self, QString name)

Removes the attribute called name name from this element.

See also setAttribute(), attribute(), and removeAttributeNS().

QDomAttr QDomElement.removeAttributeNode (self, QDomAttr oldAttr)

Removes the attribute oldAttr from the element and returns it.

See also attributeNode() and setAttributeNode().

QDomElement.removeAttributeNS (self, QString nsURI, QString localName)

Removes the attribute with the local name localName and the namespace URI nsURI from this element.

See also setAttributeNS(), attributeNS(), and removeAttribute().

QDomElement.setAttribute (self, QString name, QString value)

Adds an attribute called name with value value. If an attribute with the same name exists, its value is replaced by value.

See also attribute(), setAttributeNode(), and setAttributeNS().

QDomElement.setAttribute (self, QString name, int value)

This is an overloaded function.

The number is formatted according to the current locale.

QDomElement.setAttribute (self, QString name, int value)

This is an overloaded function.

The number is formatted according to the current locale.

QDomElement.setAttribute (self, QString name, float value)

This is an overloaded function.

The number is formatted according to the current locale.

QDomElement.setAttribute (self, QString name, int value)

This is an overloaded function.

The number is formatted according to the current locale.

QDomAttr QDomElement.setAttributeNode (self, QDomAttr newAttr)

Adds the attribute newAttr to this element.

If the element has another attribute that has the same name as newAttr, this function replaces that attribute and returns it; otherwise the function returns a null attribute.

See also attributeNode(), setAttribute(), and setAttributeNodeNS().

QDomAttr QDomElement.setAttributeNodeNS (self, QDomAttr newAttr)

Adds the attribute newAttr to this element.

If the element has another attribute that has the same local name and namespace URI as newAttr, this function replaces that attribute and returns it; otherwise the function returns a null attribute.

See also attributeNodeNS(), setAttributeNS(), and setAttributeNode().

QDomElement.setAttributeNS (self, QString nsURI, QString qName, QString value)

Adds an attribute with the qualified name qName and the namespace URI nsURI with the value value. If an attribute with the same local name and namespace URI exists, its prefix is replaced by the prefix of qName and its value is repaced by value.

Although qName is the qualified name, the local name is used to decide if an existing attribute's value should be replaced.

See also attributeNS(), setAttributeNodeNS(), and setAttribute().

QDomElement.setAttributeNS (self, QString nsURI, QString qName, int value)

This is an overloaded function.

QDomElement.setAttributeNS (self, QString nsURI, QString qName, int value)

This is an overloaded function.

QDomElement.setAttributeNS (self, QString nsURI, QString qName, float value)

This is an overloaded function.

QDomElement.setAttributeNS (self, QString nsURI, QString qName, int value)

This is an overloaded function.

QDomElement.setTagName (self, QString name)

Sets this element's tag name to name.

See also tagName().

QString QDomElement.tagName (self)

Returns the tag name of this element. For an XML element like this:

 <img src="myimg.png">

the tagname would return "img".

See also setTagName().

QString QDomElement.text (self)

Returns the element's text or an empty string.

Example:

 <h1>Hello <b>Qt</b> <![CDATA[<xml is cool>]]></h1>

The function text() of the QDomElement for the <h1> tag, will return the following text:

 Hello Qt <xml is cool>

Comments are ignored by this function. It only evaluates QDomText and QDomCDATASection objects.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomentity.html0000644000076500000240000001153412536324523020551 0ustar philstaff00000000000000 QDomEntity Class Reference
  Home · All Classes · Modules

QDomEntity Class Reference
[QtXml module]

The QDomEntity class represents an XML entity. More...

Inherits QDomNode.

Methods


Detailed Description

The QDomEntity class represents an XML entity.

This class represents an entity in an XML document, either parsed or unparsed. Note that this models the entity itself not the entity declaration.

DOM does not support editing entity nodes; if a user wants to make changes to the contents of an entity, every related QDomEntityReference node must be replaced in the DOM tree by a clone of the entity's contents, and then the desired changes must be made to each of the clones instead. All the descendants of an entity node are read-only.

An entity node does not have any parent.

You can access the entity's publicId(), systemId() and notationName() when available.

For further information about the Document Object Model see Level 1 and Level 2 Core. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomEntity.__init__ (self)

Constructs an empty entity.

QDomEntity.__init__ (self, QDomEntity x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomNode.NodeType QDomEntity.nodeType (self)

Returns EntityNode.

QString QDomEntity.notationName (self)

For unparsed entities this function returns the name of the notation for the entity. For parsed entities this function returns an empty string.

QString QDomEntity.publicId (self)

Returns the public identifier associated with this entity. If the public identifier was not specified an empty string is returned.

QString QDomEntity.systemId (self)

Returns the system identifier associated with this entity. If the system identifier was not specified an empty string is returned.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomentityreference.html0000644000076500000240000001042712536324523022430 0ustar philstaff00000000000000 QDomEntityReference Class Reference
  Home · All Classes · Modules

QDomEntityReference Class Reference
[
QtXml module]

The QDomEntityReference class represents an XML entity reference. More...

Inherits QDomNode.

Methods


Detailed Description

The QDomEntityReference class represents an XML entity reference.

A QDomEntityReference object may be inserted into the DOM tree when an entity reference is in the source document, or when the user wishes to insert an entity reference.

Note that character references and references to predefined entities are expanded by the XML processor so that characters are represented by their Unicode equivalent rather than by an entity reference.

Moreover, the XML processor may completely expand references to entities while building the DOM tree, instead of providing QDomEntityReference objects.

If it does provide such objects, then for a given entity reference node, it may be that there is no entity node representing the referenced entity; but if such an entity exists, then the child list of the entity reference node is the same as that of the entity node. As with the entity node, all descendants of the entity reference are read-only.

For further information about the Document Object Model see Level 1 and Level 2 Core. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomEntityReference.__init__ (self)

Constructs an empty entity reference. Use QDomDocument.createEntityReference() to create a entity reference with content.

QDomEntityReference.__init__ (self, QDomEntityReference x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomNode.NodeType QDomEntityReference.nodeType (self)

Returns EntityReference.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomimplementation.html0000644000076500000240000003142512536324523022263 0ustar philstaff00000000000000 QDomImplementation Class Reference
  Home · All Classes · Modules

QDomImplementation Class Reference
[QtXml module]

The QDomImplementation class provides information about the features of the DOM implementation. More...

Types

Methods

Static Methods

Special Methods

  • bool __eq__ (self, QDomImplementation)
  • bool __ne__ (self, QDomImplementation)

Detailed Description

The QDomImplementation class provides information about the features of the DOM implementation.

This class describes the features that are supported by the DOM implementation. Currently the XML subset of DOM Level 1 and DOM Level 2 Core are supported.

Normally you will use the function QDomDocument.implementation() to get the implementation object.

You can create a new document type with createDocumentType() and a new document with createDocument().

For further information about the Document Object Model see Level 1 and Level 2 Core. For a more general introduction of the DOM implementation see the QDomDocument documentation.

The QDom classes have a few issues of nonconformance with the XML specifications that cannot be fixed in Qt 4 without breaking backward compatibility. The QtXmlPatterns module and the QXmlStreamReader and QXmlStreamWriter classes have a higher degree of a conformance.


Type Documentation

QDomImplementation.InvalidDataPolicy

This enum specifies what should be done when a factory function in QDomDocument is called with invalid data.

Constant Value Description
QDomImplementation.AcceptInvalidChars 0 The data should be stored in the DOM object anyway. In this case the resulting XML document might not be well-formed. This is the default value and QDom's behavior in Qt < 4.1.
QDomImplementation.DropInvalidChars 1 The invalid characters should be removed from the data.
QDomImplementation.ReturnNullNode 2 The factory function should return a null node.

See also setInvalidDataPolicy() and invalidDataPolicy().


Method Documentation

QDomImplementation.__init__ (self)

Constructs a QDomImplementation object.

QDomImplementation.__init__ (self, QDomImplementation)

Constructs a copy of x.

QDomDocument QDomImplementation.createDocument (self, QString nsURI, QString qName, QDomDocumentType doctype)

Creates a DOM document with the document type doctype. This function also adds a root element node with the qualified name qName and the namespace URI nsURI.

QDomDocumentType QDomImplementation.createDocumentType (self, QString qName, QString publicId, QString systemId)

Creates a document type node for the name qName.

publicId specifies the public identifier of the external subset. If you specify an empty string (QString()) as the publicId, this means that the document type has no public identifier.

systemId specifies the system identifier of the external subset. If you specify an empty string as the systemId, this means that the document type has no system identifier.

Since you cannot have a public identifier without a system identifier, the public identifier is set to an empty string if there is no system identifier.

DOM level 2 does not support any other document type declaration features.

The only way you can use a document type that was created this way, is in combination with the createDocument() function to create a QDomDocument with this document type.

In the DOM specification, this is the only way to create a non-null document. For historical reasons, Qt also allows to create the document using the default empty constructor. The resulting document is null, but becomes non-null when a factory function, for example QDomDocument.createElement(), is called. The document also becomes non-null when setContent() is called.

See also createDocument().

bool QDomImplementation.hasFeature (self, QString feature, QString version)

The function returns true if QDom implements the requested version of a feature; otherwise returns false.

The currently supported features and their versions:

Feature Version
XML 1.0

InvalidDataPolicy QDomImplementation.invalidDataPolicy ()

Returns the invalid data policy, which specifies what should be done when a factory function in QDomDocument is passed invalid data.

Warning: This function is not reentrant.

This function was introduced in Qt 4.1.

See also setInvalidDataPolicy() and InvalidDataPolicy.

bool QDomImplementation.isNull (self)

Returns false if the object was created by QDomDocument.implementation(); otherwise returns true.

QDomImplementation.setInvalidDataPolicy (InvalidDataPolicy policy)

Sets the invalid data policy, which specifies what should be done when a factory function in QDomDocument is passed invalid data.

The policy is set for all instances of QDomDocument which already exist and which will be created in the future.

 QDomDocument doc;
 QDomImplementation impl;

 // This will create the element, but the resulting XML document will
 // be invalid, because '~' is not a valid character in a tag name.
 impl.setInvalidDataPolicy(QDomImplementation.AcceptInvalidData);
 QDomElement elt1 = doc.createElement("foo~bar");

 // This will create an element with the tag name "foobar".
 impl.setInvalidDataPolicy(QDomImplementation.DropInvalidData);
 QDomElement elt2 = doc.createElement("foo~bar");

 // This will create a null element.
 impl.setInvalidDataPolicy(QDomImplementation.ReturnNullNode);
 QDomElement elt3 = doc.createElement("foo~bar");

Warning: This function is not reentrant.

This function was introduced in Qt 4.1.

See also invalidDataPolicy() and InvalidDataPolicy.

bool QDomImplementation.__eq__ (self, QDomImplementation)

bool QDomImplementation.__ne__ (self, QDomImplementation)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomnamednodemap.html0000644000076500000240000002733012536324523021666 0ustar philstaff00000000000000 QDomNamedNodeMap Class Reference
  Home · All Classes · Modules

QDomNamedNodeMap Class Reference
[QtXml module]

The QDomNamedNodeMap class contains a collection of nodes that can be accessed by name. More...

Methods

Special Methods


Detailed Description

The QDomNamedNodeMap class contains a collection of nodes that can be accessed by name.

Note that QDomNamedNodeMap does not inherit from QDomNodeList. QDomNamedNodeMaps do not provide any specific node ordering. Although nodes in a QDomNamedNodeMap may be accessed by an ordinal index, this is simply to allow a convenient enumeration of the contents of a QDomNamedNodeMap, and does not imply that the DOM specifies an ordering of the nodes.

The QDomNamedNodeMap is used in three places:

  1. QDomDocumentType.entities() returns a map of all entities described in the DTD.
  2. QDomDocumentType.notations() returns a map of all notations described in the DTD.
  3. QDomNode.attributes() returns a map of all attributes of an element.

Items in the map are identified by the name which QDomNode.name() returns. Nodes are retrieved using namedItem(), namedItemNS() or item(). New nodes are inserted with setNamedItem() or setNamedItemNS() and removed with removeNamedItem() or removeNamedItemNS(). Use contains() to see if an item with the given name is in the named node map. The number of items is returned by length().

Terminology: in this class we use "item" and "node" interchangeably.


Method Documentation

QDomNamedNodeMap.__init__ (self)

Constructs an empty named node map.

QDomNamedNodeMap.__init__ (self, QDomNamedNodeMap)

Constructs a copy of n.

bool QDomNamedNodeMap.contains (self, QString name)

Returns true if the map contains a node called name; otherwise returns false.

Note: This function does not take the presence of namespaces into account. Use namedItemNS() to test whether the map contains a node with a specific namespace URI and name.

int QDomNamedNodeMap.count (self)

This function is provided for Qt API consistency. It is equivalent to length().

bool QDomNamedNodeMap.isEmpty (self)

Returns true if the map is empty; otherwise returns false. This function is provided for Qt API consistency.

QDomNode QDomNamedNodeMap.item (self, int index)

Retrieves the node at position index.

This can be used to iterate over the map. Note that the nodes in the map are ordered arbitrarily.

See also length().

int QDomNamedNodeMap.length (self)

Returns the number of nodes in the map.

See also item().

QDomNode QDomNamedNodeMap.namedItem (self, QString name)

Returns the node called name.

If the named node map does not contain such a node, a null node is returned. A node's name is the name returned by QDomNode.nodeName().

See also setNamedItem() and namedItemNS().

QDomNode QDomNamedNodeMap.namedItemNS (self, QString nsURI, QString localName)

Returns the node associated with the local name localName and the namespace URI nsURI.

If the map does not contain such a node, a null node is returned.

See also setNamedItemNS() and namedItem().

QDomNode QDomNamedNodeMap.removeNamedItem (self, QString name)

Removes the node called name from the map.

The function returns the removed node or a null node if the map did not contain a node called name.

See also setNamedItem(), namedItem(), and removeNamedItemNS().

QDomNode QDomNamedNodeMap.removeNamedItemNS (self, QString nsURI, QString localName)

Removes the node with the local name localName and the namespace URI nsURI from the map.

The function returns the removed node or a null node if the map did not contain a node with the local name localName and the namespace URI nsURI.

See also setNamedItemNS(), namedItemNS(), and removeNamedItem().

QDomNode QDomNamedNodeMap.setNamedItem (self, QDomNode newNode)

Inserts the node newNode into the named node map. The name used by the map is the node name of newNode as returned by QDomNode.nodeName().

If the new node replaces an existing node, i.e. the map contains a node with the same name, the replaced node is returned.

See also namedItem(), removeNamedItem(), and setNamedItemNS().

QDomNode QDomNamedNodeMap.setNamedItemNS (self, QDomNode newNode)

Inserts the node newNode in the map. If a node with the same namespace URI and the same local name already exists in the map, it is replaced by newNode. If the new node replaces an existing node, the replaced node is returned.

See also namedItemNS(), removeNamedItemNS(), and setNamedItem().

int QDomNamedNodeMap.size (self)

This function is provided for Qt API consistency. It is equivalent to length().

bool QDomNamedNodeMap.__eq__ (self, QDomNamedNodeMap)

QDomNamedNodeMap.__len__ (self)

bool QDomNamedNodeMap.__ne__ (self, QDomNamedNodeMap)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomnode.html0000644000076500000240000016566612536324523020202 0ustar philstaff00000000000000 QDomNode Class Reference
  Home · All Classes · Modules

QDomNode Class Reference
[QtXml module]

The QDomNode class is the base class for all the nodes in a DOM tree. More...

Inherited by QDomAttr, QDomCharacterData, QDomDocument, QDomDocumentFragment, QDomDocumentType, QDomElement, QDomEntity, QDomEntityReference, QDomNotation and QDomProcessingInstruction.

Types

  • enum EncodingPolicy { EncodingFromDocument, EncodingFromTextStream }
  • enum NodeType { ElementNode, AttributeNode, TextNode, CDATASectionNode, ..., CharacterDataNode }

Methods

Special Methods


Detailed Description

The QDomNode class is the base class for all the nodes in a DOM tree.

Many functions in the DOM return a QDomNode.

You can find out the type of a node using isAttr(), isCDATASection(), isDocumentFragment(), isDocument(), isDocumentType(), isElement(), isEntityReference(), isText(), isEntity(), isNotation(), isProcessingInstruction(), isCharacterData() and isComment().

A QDomNode can be converted into one of its subclasses using toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData() or toComment(). You can convert a node to a null node with clear().

Copies of the QDomNode class share their data using explicit sharing. This means that modifying one node will change all copies. This is especially useful in combination with functions which return a QDomNode, e.g. firstChild(). You can make an independent (deep) copy of the node with cloneNode().

A QDomNode can be null, much like a null pointer. Creating a copy of a null node results in another null node. It is not possible to modify a null node, but it is possible to assign another, possibly non-null node to it. In this case, the copy of the null node will remain null. You can check if a QDomNode is null by calling isNull(). The empty constructor of a QDomNode (or any of the derived classes) creates a null node.

Nodes are inserted with insertBefore(), insertAfter() or appendChild(). You can replace one node with another using replaceChild() and remove a node with removeChild().

To traverse nodes use firstChild() to get a node's first child (if any), and nextSibling() to traverse. QDomNode also provides lastChild(), previousSibling() and parentNode(). To find the first child node with a particular node name use namedItem().

To find out if a node has children use hasChildNodes() and to get a list of all of a node's children use childNodes().

The node's name and value (the meaning of which varies depending on its type) is returned by nodeName() and nodeValue() respectively. The node's type is returned by nodeType(). The node's value can be set with setNodeValue().

The document to which the node belongs is returned by ownerDocument().

Adjacent QDomText nodes can be merged into a single node with normalize().

QDomElement nodes have attributes which can be retrieved with attributes().

QDomElement and QDomAttr nodes can have namespaces which can be retrieved with namespaceURI(). Their local name is retrieved with localName(), and their prefix with prefix(). The prefix can be set with setPrefix().

You can write the XML representation of the node to a text stream with save().

The following example looks for the first element in an XML document and prints the names of all the elements that are its direct children.

 QDomDocument d;
 d.setContent(someXML);
 QDomNode n = d.firstChild();
 while (!n.isNull()) {
     if (n.isElement()) {
         QDomElement e = n.toElement();
         cout << "Element name: " << e.tagName() << endl;
         break;
     }
     n = n.nextSibling();
 }

For further information about the Document Object Model see Level 1 and Level 2 Core. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Type Documentation

QDomNode.EncodingPolicy

This enum specifies how QDomNode.save() determines what encoding to use when serializing.

Constant Value Description
QDomNode.EncodingFromDocument 1 The encoding is fetched from the document.
QDomNode.EncodingFromTextStream 2 The encoding is fetched from the QTextStream.

See also the overload of the save() function that takes an EncodingPolicy.

This enum was introduced or modified in Qt 4.3.

QDomNode.NodeType

This enum defines the type of the node:

Constant Value Description
QDomNode.ElementNode 1  
QDomNode.AttributeNode 2  
QDomNode.TextNode 3  
QDomNode.CDATASectionNode 4  
QDomNode.EntityReferenceNode 5  
QDomNode.EntityNode 6  
QDomNode.ProcessingInstructionNode 7  
QDomNode.CommentNode 8  
QDomNode.DocumentNode 9  
QDomNode.DocumentTypeNode 10  
QDomNode.DocumentFragmentNode 11  
QDomNode.NotationNode 12  
QDomNode.BaseNode 21 A QDomNode object, i.e. not a QDomNode subclass.
QDomNode.CharacterDataNode 22  

Method Documentation

QDomNode.__init__ (self)

Constructs a null node.

QDomNode.__init__ (self, QDomNode)

Constructs a copy of n.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomNode QDomNode.appendChild (self, QDomNode newChild)

Appends newChild as the node's last child.

If newChild is the child of another node, it is reparented to this node. If newChild is a child of this node, then its position in the list of children is changed.

If newChild is a QDomDocumentFragment, then the children of the fragment are removed from the fragment and appended.

If newChild is a QDomElement and this node is a QDomDocument that already has an element node as a child, newChild is not added as a child and a null node is returned.

Returns a new reference to newChild on success or a null node on failure.

Calling this function on a null node(created, for example, with the default constructor) does nothing and returns a null node.

The DOM specification disallow inserting attribute nodes, but for historical reasons, QDom accepts them anyway.

See also insertBefore(), insertAfter(), replaceChild(), and removeChild().

QDomNamedNodeMap QDomNode.attributes (self)

Returns a named node map of all attributes. Attributes are only provided for QDomElements.

Changing the attributes in the map will also change the attributes of this QDomNode.

QDomNodeList QDomNode.childNodes (self)

Returns a list of all direct child nodes.

Most often you will call this function on a QDomElement object.

For example, if the XML document looks like this:

 <body>
 <h1>Heading</h1>
 <p>Hello <b>you</b></p>
 </body>

Then the list of child nodes for the "body"-element will contain the node created by the &lt;h1&gt; tag and the node created by the &lt;p&gt; tag.

The nodes in the list are not copied; so changing the nodes in the list will also change the children of this node.

See also firstChild() and lastChild().

QDomNode.clear (self)

Converts the node into a null node; if it was not a null node before, its type and contents are deleted.

See also isNull().

QDomNode QDomNode.cloneNode (self, bool deep = True)

Creates a deep (not shallow) copy of the QDomNode.

If deep is true, then the cloning is done recursively which means that all the node's children are deep copied too. If deep is false only the node itself is copied and the copy will have no child nodes.

int QDomNode.columnNumber (self)

For nodes created by QDomDocument.setContent(), this function returns the column number in the XML document where the node was parsed. Otherwise, -1 is returned.

This function was introduced in Qt 4.1.

See also lineNumber() and QDomDocument.setContent().

QDomNode QDomNode.firstChild (self)

Returns the first child of the node. If there is no child node, a null node is returned. Changing the returned node will also change the node in the document tree.

See also lastChild() and childNodes().

QDomElement QDomNode.firstChildElement (self, QString tagName = QString())

Returns the first child element with tag name tagName if tagName is non-empty; otherwise returns the first child element. Returns a null element if no such child exists.

See also lastChildElement(), previousSiblingElement(), and nextSiblingElement().

bool QDomNode.hasAttributes (self)

Returns true if the node has attributes; otherwise returns false.

See also attributes().

bool QDomNode.hasChildNodes (self)

Returns true if the node has one or more children; otherwise returns false.

QDomNode QDomNode.insertAfter (self, QDomNode newChild, QDomNode refChild)

Inserts the node newChild after the child node refChild. refChild must be a direct child of this node. If refChild is null then newChild is appended as this node's last child.

If newChild is the child of another node, it is reparented to this node. If newChild is a child of this node, then its position in the list of children is changed.

If newChild is a QDomDocumentFragment, then the children of the fragment are removed from the fragment and inserted after refChild.

Returns a new reference to newChild on success or a null node on failure.

The DOM specification disallow inserting attribute nodes, but due to historical reasons QDom accept them nevertheless.

See also insertBefore(), replaceChild(), removeChild(), and appendChild().

QDomNode QDomNode.insertBefore (self, QDomNode newChild, QDomNode refChild)

Inserts the node newChild before the child node refChild. refChild must be a direct child of this node. If refChild is null then newChild is inserted as the node's first child.

If newChild is the child of another node, it is reparented to this node. If newChild is a child of this node, then its position in the list of children is changed.

If newChild is a QDomDocumentFragment, then the children of the fragment are removed from the fragment and inserted before refChild.

Returns a new reference to newChild on success or a null node on failure.

The DOM specification disallow inserting attribute nodes, but due to historical reasons QDom accept them nevertheless.

See also insertAfter(), replaceChild(), removeChild(), and appendChild().

bool QDomNode.isAttr (self)

Returns true if the node is an attribute; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomAttribute; you can get the QDomAttribute with toAttribute().

See also toAttr().

bool QDomNode.isCDATASection (self)

Returns true if the node is a CDATA section; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomCDATASection; you can get the QDomCDATASection with toCDATASection().

See also toCDATASection().

bool QDomNode.isCharacterData (self)

Returns true if the node is a character data node; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomCharacterData; you can get the QDomCharacterData with toCharacterData().

See also toCharacterData().

bool QDomNode.isComment (self)

Returns true if the node is a comment; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomComment; you can get the QDomComment with toComment().

See also toComment().

bool QDomNode.isDocument (self)

Returns true if the node is a document; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomDocument; you can get the QDomDocument with toDocument().

See also toDocument().

bool QDomNode.isDocumentFragment (self)

Returns true if the node is a document fragment; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomDocumentFragment; you can get the QDomDocumentFragment with toDocumentFragment().

See also toDocumentFragment().

bool QDomNode.isDocumentType (self)

Returns true if the node is a document type; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomDocumentType; you can get the QDomDocumentType with toDocumentType().

See also toDocumentType().

bool QDomNode.isElement (self)

Returns true if the node is an element; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomElement; you can get the QDomElement with toElement().

See also toElement().

bool QDomNode.isEntity (self)

Returns true if the node is an entity; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomEntity; you can get the QDomEntity with toEntity().

See also toEntity().

bool QDomNode.isEntityReference (self)

Returns true if the node is an entity reference; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomEntityReference; you can get the QDomEntityReference with toEntityReference().

See also toEntityReference().

bool QDomNode.isNotation (self)

Returns true if the node is a notation; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomNotation; you can get the QDomNotation with toNotation().

See also toNotation().

bool QDomNode.isNull (self)

Returns true if this node is null (i.e. if it has no type or contents); otherwise returns false.

bool QDomNode.isProcessingInstruction (self)

Returns true if the node is a processing instruction; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomProcessingInstruction; you can get the QProcessingInstruction with toProcessingInstruction().

See also toProcessingInstruction().

bool QDomNode.isSupported (self, QString feature, QString version)

Returns true if the DOM implementation implements the feature feature and this feature is supported by this node in the version version; otherwise returns false.

See also QDomImplementation.hasFeature().

bool QDomNode.isText (self)

Returns true if the node is a text node; otherwise returns false.

If this function returns true, it does not imply that this object is a QDomText; you can get the QDomText with toText().

See also toText().

QDomNode QDomNode.lastChild (self)

Returns the last child of the node. If there is no child node, a null node is returned. Changing the returned node will also change the node in the document tree.

See also firstChild() and childNodes().

QDomElement QDomNode.lastChildElement (self, QString tagName = QString())

Returns the last child element with tag name tagName if tagName is non-empty; otherwise returns the last child element. Returns a null element if no such child exists.

See also firstChildElement(), previousSiblingElement(), and nextSiblingElement().

int QDomNode.lineNumber (self)

For nodes created by QDomDocument.setContent(), this function returns the line number in the XML document where the node was parsed. Otherwise, -1 is returned.

This function was introduced in Qt 4.1.

See also columnNumber() and QDomDocument.setContent().

QString QDomNode.localName (self)

If the node uses namespaces, this function returns the local name of the node; otherwise it returns an empty string.

Only nodes of type ElementNode or AttributeNode can have namespaces. A namespace must have been specified at creation time; it is not possible to add a namespace afterwards.

QDomDocument.createAttributeNS()

See also prefix(), namespaceURI(), and QDomDocument.createElementNS().

QDomNode QDomNode.namedItem (self, QString name)

Returns the first direct child node for which nodeName() equals name.

If no such direct child exists, a null node is returned.

See also nodeName().

QString QDomNode.namespaceURI (self)

QDomNode QDomNode.nextSibling (self)

Returns the next sibling in the document tree. Changing the returned node will also change the node in the document tree.

If you have XML like this:

 <h1>Heading</h1>
 <p>The text...</p>
 <h2>Next heading</h2>

and this QDomNode represents the <p> tag, nextSibling() will return the node representing the <h2> tag.

See also previousSibling().

QDomElement QDomNode.nextSiblingElement (self, QString tagName = QString())

Returns the next sibling element with tag name tagName if tagName is non-empty; otherwise returns any next sibling element. Returns a null element if no such sibling exists.

See also firstChildElement(), previousSiblingElement(), and lastChildElement().

QString QDomNode.nodeName (self)

Returns the name of the node.

The meaning of the name depends on the subclass:

Name Meaning
QDomAttr The name of the attribute
QDomCDATASection The string "#cdata-section"
QDomComment The string "#comment"
QDomDocument The string "#document"
QDomDocumentFragment The string "#document-fragment"
QDomDocumentType The name of the document type
QDomElement The tag name
QDomEntity The name of the entity
QDomEntityReference The name of the referenced entity
QDomNotation The name of the notation
QDomProcessingInstruction The target of the processing instruction
QDomText The string "#text"

Note: This function does not take the presence of namespaces into account when processing the names of element and attribute nodes. As a result, the returned name can contain any namespace prefix that may be present. To obtain the node name of an element or attribute, use localName(); to obtain the namespace prefix, use namespaceURI().

See also nodeValue().

NodeType QDomNode.nodeType (self)

Returns the type of the node.

See also toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData(), and toComment().

QString QDomNode.nodeValue (self)

Returns the value of the node.

The meaning of the value depends on the subclass:

Name Meaning
QDomAttr The attribute value
QDomCDATASection The content of the CDATA section
QDomComment The comment
QDomProcessingInstruction The data of the processing instruction
QDomText The text

All the other subclasses do not have a node value and will return an empty string.

See also setNodeValue() and nodeName().

QDomNode.normalize (self)

Calling normalize() on an element converts all its children into a standard form. This means that adjacent QDomText objects will be merged into a single text object (QDomCDATASection nodes are not merged).

QDomDocument QDomNode.ownerDocument (self)

Returns the document to which this node belongs.

QDomNode QDomNode.parentNode (self)

Returns the parent node. If this node has no parent, a null node is returned (i.e. a node for which isNull() returns true).

QString QDomNode.prefix (self)

Returns the namespace prefix of the node or an empty string if the node has no namespace prefix.

Only nodes of type ElementNode or AttributeNode can have namespaces. A namespace prefix must be specified at creation time. If a node was created with a namespace prefix, you can change it later with setPrefix().

If you create an element or attribute with QDomDocument.createElement() or QDomDocument.createAttribute(), the prefix will be an empty string. If you use QDomDocument.createElementNS() or QDomDocument.createAttributeNS() instead, the prefix will not be an empty string; but it might be an empty string if the name does not have a prefix.

QDomDocument.createElementNS() QDomDocument.createAttributeNS()

See also setPrefix(), localName(), and namespaceURI().

QDomNode QDomNode.previousSibling (self)

Returns the previous sibling in the document tree. Changing the returned node will also change the node in the document tree.

For example, if you have XML like this:

 <h1>Heading</h1>
 <p>The text...</p>
 <h2>Next heading</h2>

and this QDomNode represents the &lt;p&gt; tag, previousSibling() will return the node representing the &lt;h1&gt; tag.

See also nextSibling().

QDomElement QDomNode.previousSiblingElement (self, QString tagName = QString())

Returns the previous sibilng element with tag name tagName if tagName is non-empty; otherwise returns any previous sibling element. Returns a null element if no such sibling exists.

See also firstChildElement(), nextSiblingElement(), and lastChildElement().

QDomNode QDomNode.removeChild (self, QDomNode oldChild)

Removes oldChild from the list of children. oldChild must be a direct child of this node.

Returns a new reference to oldChild on success or a null node on failure.

See also insertBefore(), insertAfter(), replaceChild(), and appendChild().

QDomNode QDomNode.replaceChild (self, QDomNode newChild, QDomNode oldChild)

Replaces oldChild with newChild. oldChild must be a direct child of this node.

If newChild is the child of another node, it is reparented to this node. If newChild is a child of this node, then its position in the list of children is changed.

If newChild is a QDomDocumentFragment, then oldChild is replaced by all of the children of the fragment.

Returns a new reference to oldChild on success or a null node an failure.

See also insertBefore(), insertAfter(), removeChild(), and appendChild().

QDomNode.save (self, QTextStream, int)

Writes the XML representation of the node and all its children to the stream str. This function uses indent as the amount of space to indent the node.

If this node is a document node, the encoding of text stream str's encoding is set by treating a processing instruction by name "xml" as an XML declaration, if such a one exists, and otherwise defaults to UTF-8. XML declarations are not processing instructions, but this behavior exists for historical reasons. If this node is not a document node, the text stream's encoding is used.

If the document contains invalid XML characters or characters that cannot be encoded in the given encoding, the result and behavior is undefined.

QDomNode.save (self, QTextStream, int, EncodingPolicy)

If encodingPolicy is QDomNode.EncodingFromDocument, this function behaves as save(QTextStream &str, int indent).

If encodingPolicy is EncodingFromTextStream and this node is a document node, this function behaves as save(QTextStream &str, int indent) with the exception that the encoding specified in the text stream str is used.

If the document contains invalid XML characters or characters that cannot be encoded in the given encoding, the result and behavior is undefined.

This function was introduced in Qt 4.2.

QDomNode.setNodeValue (self, QString)

Sets the node's value to v.

See also nodeValue().

QDomNode.setPrefix (self, QString pre)

If the node has a namespace prefix, this function changes the namespace prefix of the node to pre. Otherwise this function does nothing.

Only nodes of type ElementNode or AttributeNode can have namespaces. A namespace prefix must have be specified at creation time; it is not possible to add a namespace prefix afterwards.

QDomDocument.createElementNS() QDomDocument.createAttributeNS()

See also prefix(), localName(), and namespaceURI().

QDomAttr QDomNode.toAttr (self)

Converts a QDomNode into a QDomAttr. If the node is not an attribute, the returned object will be null.

See also isAttr().

QDomCDATASection QDomNode.toCDATASection (self)

Converts a QDomNode into a QDomCDATASection. If the node is not a CDATA section, the returned object will be null.

See also isCDATASection().

QDomCharacterData QDomNode.toCharacterData (self)

Converts a QDomNode into a QDomCharacterData. If the node is not a character data node the returned object will be null.

See also isCharacterData().

QDomComment QDomNode.toComment (self)

Converts a QDomNode into a QDomComment. If the node is not a comment the returned object will be null.

See also isComment().

QDomDocument QDomNode.toDocument (self)

Converts a QDomNode into a QDomDocument. If the node is not a document the returned object will be null.

See also isDocument().

QDomDocumentFragment QDomNode.toDocumentFragment (self)

Converts a QDomNode into a QDomDocumentFragment. If the node is not a document fragment the returned object will be null.

See also isDocumentFragment().

QDomDocumentType QDomNode.toDocumentType (self)

Converts a QDomNode into a QDomDocumentType. If the node is not a document type the returned object will be null.

See also isDocumentType().

QDomElement QDomNode.toElement (self)

Converts a QDomNode into a QDomElement. If the node is not an element the returned object will be null.

See also isElement().

QDomEntity QDomNode.toEntity (self)

Converts a QDomNode into a QDomEntity. If the node is not an entity the returned object will be null.

See also isEntity().

QDomEntityReference QDomNode.toEntityReference (self)

Converts a QDomNode into a QDomEntityReference. If the node is not an entity reference, the returned object will be null.

See also isEntityReference().

QDomNotation QDomNode.toNotation (self)

Converts a QDomNode into a QDomNotation. If the node is not a notation the returned object will be null.

See also isNotation().

QDomProcessingInstruction QDomNode.toProcessingInstruction (self)

Converts a QDomNode into a QDomProcessingInstruction. If the node is not a processing instruction the returned object will be null.

See also isProcessingInstruction().

QDomText QDomNode.toText (self)

Converts a QDomNode into a QDomText. If the node is not a text, the returned object will be null.

See also isText().

bool QDomNode.__eq__ (self, QDomNode)

bool QDomNode.__ne__ (self, QDomNode)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomnodelist.html0000644000076500000240000001410412536324523021052 0ustar philstaff00000000000000 QDomNodeList Class Reference
  Home · All Classes · Modules

QDomNodeList Class Reference
[QtXml module]

The QDomNodeList class is a list of QDomNode objects. More...

Methods

Special Methods


Detailed Description

The QDomNodeList class is a list of QDomNode objects.

Lists can be obtained by QDomDocument.elementsByTagName() and QDomNode.childNodes(). The Document Object Model (DOM) requires these lists to be "live": whenever you change the underlying document, the contents of the list will get updated.

You can get a particular node from the list with item(). The number of items in the list is returned by length().

For further information about the Document Object Model see Level 1 and Level 2 Core. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomNodeList.__init__ (self)

Creates an empty node list.

QDomNodeList.__init__ (self, QDomNodeList)

Constructs a copy of n.

QDomNode QDomNodeList.at (self, int index)

This function is provided for Qt API consistency. It is equivalent to item().

If index is negative or if index >= length() then a null node is returned (i.e. a node for which QDomNode.isNull() returns true).

int QDomNodeList.count (self)

This function is provided for Qt API consistency. It is equivalent to length().

bool QDomNodeList.isEmpty (self)

Returns true if the list contains no items; otherwise returns false. This function is provided for Qt API consistency.

QDomNode QDomNodeList.item (self, int index)

Returns the node at position index.

If index is negative or if index >= length() then a null node is returned (i.e. a node for which QDomNode.isNull() returns true).

See also length().

int QDomNodeList.length (self)

Returns the number of nodes in the list.

int QDomNodeList.size (self)

This function is provided for Qt API consistency. It is equivalent to length().

bool QDomNodeList.__eq__ (self, QDomNodeList)

QDomNodeList.__len__ (self)

bool QDomNodeList.__ne__ (self, QDomNodeList)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomnotation.html0000644000076500000240000001014512536324523021065 0ustar philstaff00000000000000 QDomNotation Class Reference
  Home · All Classes · Modules

QDomNotation Class Reference
[QtXml module]

The QDomNotation class represents an XML notation. More...

Inherits QDomNode.

Methods


Detailed Description

The QDomNotation class represents an XML notation.

A notation either declares, by name, the format of an unparsed entity (see section 4.7 of the XML 1.0 specification), or is used for formal declaration of processing instruction targets (see section 2.6 of the XML 1.0 specification).

DOM does not support editing notation nodes; they are therefore read-only.

A notation node does not have any parent.

You can retrieve the publicId() and systemId() from a notation node.

For further information about the Document Object Model see Level 1 and Level 2 Core. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomNotation.__init__ (self)

Constructor.

QDomNotation.__init__ (self, QDomNotation x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomNode.NodeType QDomNotation.nodeType (self)

Returns NotationNode.

QString QDomNotation.publicId (self)

Returns the public identifier of this notation.

QString QDomNotation.systemId (self)

Returns the system identifier of this notation.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomprocessinginstruction.html0000644000076500000240000001317212536324523023713 0ustar philstaff00000000000000 QDomProcessingInstruction Class Reference
  Home · All Classes · Modules

QDomProcessingInstruction Class Reference
[
QtXml module]

The QDomProcessingInstruction class represents an XML processing instruction. More...

Inherits QDomNode.

Methods


Detailed Description

The QDomProcessingInstruction class represents an XML processing instruction.

Processing instructions are used in XML to keep processor-specific information in the text of the document.

The XML declaration that appears at the top of an XML document, typically <?xml version='1.0' encoding='UTF-8'?>, is treated by QDom as a processing instruction. This is unfortunate, since the XML declaration is not a processing instruction; among other differences, it cannot be inserted into a document anywhere but on the first line.

Do not use this function to create an xml declaration, since although it has the same syntax as a processing instruction, it isn't, and might not be treated by QDom as such.

The content of the processing instruction is retrieved with data() and set with setData(). The processing instruction's target is retrieved with target().

For further information about the Document Object Model see Level 1 and Level 2 Core. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomProcessingInstruction.__init__ (self)

Constructs an empty processing instruction. Use QDomDocument.createProcessingInstruction() to create a processing instruction with content.

QDomProcessingInstruction.__init__ (self, QDomProcessingInstruction x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QString QDomProcessingInstruction.data (self)

Returns the content of this processing instruction.

See also setData() and target().

QDomNode.NodeType QDomProcessingInstruction.nodeType (self)

Returns ProcessingInstructionNode.

QDomProcessingInstruction.setData (self, QString d)

Sets the data contained in the processing instruction to d.

See also data().

QString QDomProcessingInstruction.target (self)

Returns the target of this processing instruction.

See also data().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdomtext.html0000644000076500000240000001022212536324523020212 0ustar philstaff00000000000000 QDomText Class Reference
  Home · All Classes · Modules

QDomText Class Reference
[QtXml module]

The QDomText class represents text data in the parsed XML document. More...

Inherits QDomCharacterData.

Inherited by QDomCDATASection.

Methods


Detailed Description

The QDomText class represents text data in the parsed XML document.

You can split the text in a QDomText object over two QDomText objecs with splitText().

For further information about the Document Object Model see Level 1 and Level 2 Core. For a more general introduction of the DOM implementation see the QDomDocument documentation.


Method Documentation

QDomText.__init__ (self)

Constructs an empty QDomText object.

To construct a QDomText with content, use QDomDocument.createTextNode().

QDomText.__init__ (self, QDomText x)

Constructs a copy of x.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().

QDomNode.NodeType QDomText.nodeType (self)

Returns TextNode.

QDomText QDomText.splitText (self, int offset)

Splits this DOM text object into two QDomText objects. This object keeps its first offset characters and the second (newly created) object is inserted into the document tree after this object with the remaining characters.

The function returns the newly created object.

See also QDomNode.normalize().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdoublespinbox.html0000644000076500000240000003442512536324512021414 0ustar philstaff00000000000000 QDoubleSpinBox Class Reference
  Home · All Classes · Modules

QDoubleSpinBox Class Reference
[QtGui module]

The QDoubleSpinBox class provides a spin box widget that takes doubles. More...

Inherits QAbstractSpinBox.

Methods

Qt Signals


Detailed Description

The QDoubleSpinBox class provides a spin box widget that takes doubles.

QDoubleSpinBox allows the user to choose a value by clicking the up and down buttons or by pressing Up or Down on the keyboard to increase or decrease the value currently displayed. The user can also type the value in manually. The spin box supports double values but can be extended to use different strings with validate(), textFromValue() and valueFromText().

Every time the value changes QDoubleSpinBox emits the valueChanged() signal. The current value can be fetched with value() and set with setValue().

Note: QDoubleSpinBox will round numbers so they can be displayed with the current precision. In a QDoubleSpinBox with decimals set to 2, calling setValue(2.555) will cause value() to return 2.56.

Clicking the up and down buttons or using the keyboard accelerator's Up and Down arrows will increase or decrease the current value in steps of size singleStep(). If you want to change this behavior you can reimplement the virtual function stepBy(). The minimum and maximum value and the step size can be set using one of the constructors, and can be changed later with setMinimum(), setMaximum() and setSingleStep(). The spinbox has a default precision of 2 decimal places but this can be changed using setDecimals().

Most spin boxes are directional, but QDoubleSpinBox can also operate as a circular spin box, i.e. if the range is 0.0-99.9 and the current value is 99.9, clicking "up" will give 0 if wrapping() is set to true. Use setWrapping() if you want circular behavior.

The displayed value can be prepended and appended with arbitrary strings indicating, for example, currency or the unit of measurement. See setPrefix() and setSuffix(). The text in the spin box is retrieved with text() (which includes any prefix() and suffix()), or with cleanText() (which has no prefix(), no suffix() and no leading or trailing whitespace).

It is often desirable to give the user a special (often default) choice in addition to the range of numeric values. See setSpecialValueText() for how to do this with QDoubleSpinBox.


Method Documentation

QDoubleSpinBox.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a spin box with 0.0 as minimum value and 99.99 as maximum value, a step value of 1.0 and a precision of 2 decimal places. The value is initially set to 0.00. The spin box has the given parent.

See also setMinimum(), setMaximum(), and setSingleStep().

QString QDoubleSpinBox.cleanText (self)

int QDoubleSpinBox.decimals (self)

QString str QDoubleSpinBox.fixup (self, QString str)

Reimplemented from QAbstractSpinBox.fixup().

QDoubleSpinBox.fixup (self, QString str)

float QDoubleSpinBox.maximum (self)

float QDoubleSpinBox.minimum (self)

QString QDoubleSpinBox.prefix (self)

QDoubleSpinBox.setDecimals (self, int prec)

QDoubleSpinBox.setMaximum (self, float max)

QDoubleSpinBox.setMinimum (self, float min)

QDoubleSpinBox.setPrefix (self, QString p)

QDoubleSpinBox.setRange (self, float min, float max)

Convenience function to set the minimum and maximum values with a single function call.

Note: The maximum and minimum values will be rounded to match the decimals property.

 setRange(minimum, maximum);

is equivalent to:

 setMinimum(minimum);
 setMaximum(maximum);

See also minimum and maximum.

QDoubleSpinBox.setSingleStep (self, float val)

QDoubleSpinBox.setSuffix (self, QString s)

QDoubleSpinBox.setValue (self, float val)

This method is also a Qt slot with the C++ signature void setValue(double).

float QDoubleSpinBox.singleStep (self)

QString QDoubleSpinBox.suffix (self)

QString QDoubleSpinBox.textFromValue (self, float v)

This virtual function is used by the spin box whenever it needs to display the given value. The default implementation returns a string containing value printed using QWidget.locale().toString(value, QLatin1Char('f'), decimals()) and will remove the thousand separator. Reimplementations may return anything.

Note: QDoubleSpinBox does not call this function for specialValueText() and that neither prefix() nor suffix() should be included in the return value.

If you reimplement this, you may also need to reimplement valueFromText().

See also valueFromText() and QLocale.groupSeparator().

(QValidator.State, QString input, int pos) QDoubleSpinBox.validate (self, QString input, int pos)

Reimplemented from QAbstractSpinBox.validate().

(QValidator.State, int pos) QDoubleSpinBox.validate (self, QString input, int pos)

float QDoubleSpinBox.value (self)

float QDoubleSpinBox.valueFromText (self, QString text)

This virtual function is used by the spin box whenever it needs to interpret text entered by the user as a value.

Subclasses that need to display spin box values in a non-numeric way need to reimplement this function.

Note: QDoubleSpinBox handles specialValueText() separately; this function is only concerned with the other values.

See also textFromValue() and validate().


Qt Signal Documentation

void valueChanged (double)

This is the default overload of this signal.

This signal is emitted whenever the spin box's value is changed. The new value is passed in d.

void valueChanged (const QString&)

This is an overloaded function.

The new value is passed literally in text with no prefix() or suffix().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdoublevalidator.html0000644000076500000240000002247312536324516021723 0ustar philstaff00000000000000 QDoubleValidator Class Reference
  Home · All Classes · Modules

QDoubleValidator Class Reference
[QtGui module]

The QDoubleValidator class provides range checking of floating-point numbers. More...

Inherits QValidator.

Types

  • enum Notation { StandardNotation, ScientificNotation }

Methods


Detailed Description

The QDoubleValidator class provides range checking of floating-point numbers.

QDoubleValidator provides an upper bound, a lower bound, and a limit on the number of digits after the decimal point. It does not provide a fixup() function.

You can set the acceptable range in one call with setRange(), or with setBottom() and setTop(). Set the number of decimal places with setDecimals(). The validate() function returns the validation state.

QDoubleValidator uses its locale() to interpret the number. For example, in the German locale, "1,234" will be accepted as the fractional number 1.234. In Arabic locales, QDoubleValidator will accept Arabic digits.

In addition, QDoubleValidator is always guaranteed to accept a number formatted according to the "C" locale. QDoubleValidator will not accept numbers with thousand-separators.


Type Documentation

QDoubleValidator.Notation

This enum defines the allowed notations for entering a double.

Constant Value Description
QDoubleValidator.StandardNotation 0 The string is written as a standard number (i.e. 0.015).
QDoubleValidator.ScientificNotation 1 The string is written in scientific form. It may have an exponent part(i.e. 1.5E-2).

This enum was introduced or modified in Qt 4.3.


Method Documentation

QDoubleValidator.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a validator object with a parent object that accepts any double.

QDoubleValidator.__init__ (self, float bottom, float top, int decimals, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a validator object with a parent object. This validator will accept doubles from bottom to top inclusive, with up to decimals digits after the decimal point.

float QDoubleValidator.bottom (self)

int QDoubleValidator.decimals (self)

Notation QDoubleValidator.notation (self)

QDoubleValidator.setBottom (self, float)

QDoubleValidator.setDecimals (self, int)

QDoubleValidator.setNotation (self, Notation)

QDoubleValidator.setRange (self, float minimum, float maximum, int decimals = 0)

Sets the validator to accept doubles from minimum to maximum inclusive, with at most decimals digits after the decimal point.

QDoubleValidator.setTop (self, float)

float QDoubleValidator.top (self)

(QValidator.State, QString, int) QDoubleValidator.validate (self, QString, int)

Reimplemented from QValidator.validate().

Returns Acceptable if the string input contains a double that is within the valid range and is in the correct format.

Returns Intermediate if input contains a double that is outside the range or is in the wrong format; e.g. with too many digits after the decimal point or is empty.

Returns Invalid if the input is not a double.

Note: If the valid range consists of just positive doubles (e.g. 0.0 to 100.0) and input is a negative double then Invalid is returned. If notation() is set to StandardNotation, and the input contains more digits before the decimal point than a double in the valid range may have, Invalid is returned. If notation() is ScientificNotation, and the input is not in the valid range, Intermediate is returned. The value may yet become valid by changing the exponent.

By default, the pos parameter is not used by this validator.

(QValidator.State, int) QDoubleValidator.validate (self, QString, int)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdrag.html0000644000076500000240000003514712536324503017456 0ustar philstaff00000000000000 QDrag Class Reference
  Home · All Classes · Modules

QDrag Class Reference
[QtGui module]

The QDrag class provides support for MIME-based drag and drop data transfer. More...

Inherits QObject.

Methods

  • __init__ (self, QWidget dragSource)
  • Qt.DropAction exec (self, Qt.DropActions supportedActions, Qt.DropAction defaultDropAction)
  • Qt.DropAction exec_ (self, Qt.DropActions supportedActions = Qt.MoveAction)
  • Qt.DropAction exec_ (self, Qt.DropActions supportedActions, Qt.DropAction defaultDropAction)
  • QPoint hotSpot (self)
  • QMimeData mimeData (self)
  • QPixmap pixmap (self)
  • setDragCursor (self, QPixmap cursor, Qt.DropAction action)
  • setHotSpot (self, QPoint hotspot)
  • setMimeData (self, QMimeData data)
  • setPixmap (self, QPixmap)
  • QWidget source (self)
  • Qt.DropAction start (self, Qt.DropActions supportedActions = Qt.CopyAction)
  • QWidget target (self)

Qt Signals


Detailed Description

The QDrag class provides support for MIME-based drag and drop data transfer.

Drag and drop is an intuitive way for users to copy or move data around in an application, and is used in many desktop environments as a mechanism for copying data between applications. Drag and drop support in Qt is centered around the QDrag class that handles most of the details of a drag and drop operation.

The data to be transferred by the drag and drop operation is contained in a QMimeData object. This is specified with the setMimeData() function in the following way:

         QDrag *drag = new QDrag(this);
         QMimeData *mimeData = new QMimeData;

         mimeData->setText(commentEdit->toPlainText());
         drag->setMimeData(mimeData);

Note that setMimeData() assigns ownership of the QMimeData object to the QDrag object. The QDrag must be constructed on the heap with a parent QWidget to ensure that Qt can clean up after the drag and drop operation has been completed.

A pixmap can be used to represent the data while the drag is in progress, and will move with the cursor to the drop target. This pixmap typically shows an icon that represents the MIME type of the data being transferred, but any pixmap can be set with setPixmap(). The cursor's hot spot can be given a position relative to the top-left corner of the pixmap with the setHotSpot() function. The following code positions the pixmap so that the cursor's hot spot points to the center of its bottom edge:

     drag->setHotSpot(QPoint(drag->pixmap().width()/2,
                             drag->pixmap().height()));

Note: On X11, the pixmap may not be able to keep up with the mouse movements if the hot spot causes the pixmap to be displayed directly under the cursor.

The source and target widgets can be found with source() and target(). These functions are often used to determine whether drag and drop operations started and finished at the same widget, so that special behavior can be implemented.

QDrag only deals with the drag and drop operation itself. It is up to the developer to decide when a drag operation begins, and how a QDrag object should be constructed and used. For a given widget, it is often necessary to reimplement mousePressEvent() to determine whether the user has pressed a mouse button, and reimplement mouseMoveEvent() to check whether a QDrag is required.


Method Documentation

QDrag.__init__ (self, QWidget dragSource)

The dragSource argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new drag object for the widget specified by dragSource.

Qt.DropAction QDrag.exec (self, Qt.DropActions supportedActions, Qt.DropAction defaultDropAction)

Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in supportedActions. The default proposed action will be selected among the allowed actions in the following order: Move, Copy and Link.

Note: On Linux and Mac OS X, the drag and drop operation can take some time, but this function does not block the event loop. Other events are still delivered to the application while the operation is performed. On Windows, the Qt event loop is blocked while during the operation.

This function was introduced in Qt 4.3.

Qt.DropAction QDrag.exec_ (self, Qt.DropActions supportedActions = Qt.MoveAction)

Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in supportedActions. The default proposed action will be selected among the allowed actions in the following order: Move, Copy and Link.

Note: On Linux and Mac OS X, the drag and drop operation can take some time, but this function does not block the event loop. Other events are still delivered to the application while the operation is performed. On Windows, the Qt event loop is blocked while during the operation.

This function was introduced in Qt 4.3.

Qt.DropAction QDrag.exec_ (self, Qt.DropActions supportedActions, Qt.DropAction defaultDropAction)

Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in supportedActions.

The defaultDropAction determines which action will be proposed when the user performs a drag without using modifier keys.

Note: On Linux and Mac OS X, the drag and drop operation can take some time, but this function does not block the event loop. Other events are still delivered to the application while the operation is performed. On Windows, the Qt event loop is blocked during the operation. However, QDrag.exec() on Windows causes processEvents() to be called frequently to keep the GUI responsive. If any loops or operations are called while a drag operation is active, it will block the drag operation.

This function was introduced in Qt 4.3.

QPoint QDrag.hotSpot (self)

Returns the position of the hot spot relative to the top-left corner of the cursor.

See also setHotSpot().

QMimeData QDrag.mimeData (self)

Returns the MIME data that is encapsulated by the drag object.

See also setMimeData().

QPixmap QDrag.pixmap (self)

Returns the pixmap used to represent the data in a drag and drop operation.

See also setPixmap().

QDrag.setDragCursor (self, QPixmap cursor, Qt.DropAction action)

Sets the drag cursor for the action. This allows you to override the default native cursors. To revert to using the native cursor for action pass in a null QPixmap as cursor.

The action can only be CopyAction, MoveAction or LinkAction. All other values of DropAction are ignored.

QDrag.setHotSpot (self, QPoint hotspot)

Sets the position of the hot spot relative to the top-left corner of the pixmap used to the point specified by hotspot.

Note: on X11, the pixmap may not be able to keep up with the mouse movements if the hot spot causes the pixmap to be displayed directly under the cursor.

See also hotSpot().

QDrag.setMimeData (self, QMimeData data)

The data argument has it's ownership transferred to Qt.

Sets the data to be sent to the given MIME data. Ownership of the data is transferred to the QDrag object.

See also mimeData().

QDrag.setPixmap (self, QPixmap)

Sets pixmap as the pixmap used to represent the data in a drag and drop operation. You can only set a pixmap before the drag is started.

See also pixmap().

QWidget QDrag.source (self)

Returns the source of the drag object. This is the widget where the drag and drop operation originated.

Qt.DropAction QDrag.start (self, Qt.DropActions supportedActions = Qt.CopyAction)

QWidget QDrag.target (self)

Returns the target of the drag and drop operation. This is the widget where the drag object was dropped.


Qt Signal Documentation

void actionChanged (Qt::DropAction)

This is the default overload of this signal.

This signal is emitted when the action associated with the drag changes.

See also targetChanged().

void targetChanged (QWidget*)

This is the default overload of this signal.

This signal is emitted when the target of the drag and drop operation changes, with newTarget the new target.

See also target() and actionChanged().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdragenterevent.html0000644000076500000240000000757112536324503021556 0ustar philstaff00000000000000 QDragEnterEvent Class Reference
  Home · All Classes · Modules

QDragEnterEvent Class Reference
[QtGui module]

The QDragEnterEvent class provides an event which is sent to a widget when a drag and drop action enters it. More...

Inherits QDragMoveEvent.

Methods

  • __init__ (self, QPoint pos, Qt.DropActions actions, QMimeData data, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers)
  • __init__ (self, QDragEnterEvent)

Detailed Description

The QDragEnterEvent class provides an event which is sent to a widget when a drag and drop action enters it.

A widget must accept this event in order to receive the drag move events that are sent while the drag and drop action is in progress. The drag enter event is always immediately followed by a drag move event.

QDragEnterEvent inherits most of its functionality from QDragMoveEvent, which in turn inherits most of its functionality from QDropEvent.


Method Documentation

QDragEnterEvent.__init__ (self, QPoint pos, Qt.DropActions actions, QMimeData data, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers)

Constructs a QDragEnterEvent that represents a drag entering a widget at the given point with mouse and keyboard states specified by buttons and modifiers.

The drag data is passed as MIME-encoded information in data, and the specified actions describe the possible types of drag and drop operation that can be performed.

Warning: Do not create a QDragEnterEvent yourself since these objects rely on Qt's internal state.

QDragEnterEvent.__init__ (self, QDragEnterEvent)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdragleaveevent.html0000644000076500000240000000551012536324503021524 0ustar philstaff00000000000000 QDragLeaveEvent Class Reference
  Home · All Classes · Modules

QDragLeaveEvent Class Reference
[QtGui module]

The QDragLeaveEvent class provides an event that is sent to a widget when a drag and drop action leaves it. More...

Inherits QEvent.

Methods


Detailed Description

The QDragLeaveEvent class provides an event that is sent to a widget when a drag and drop action leaves it.

This event is always preceded by a QDragEnterEvent and a series of QDragMoveEvents. It is not sent if a QDropEvent is sent instead.


Method Documentation

QDragLeaveEvent.__init__ (self)

Constructs a QDragLeaveEvent.

Warning: Do not create a QDragLeaveEvent yourself since these objects rely on Qt's internal state.

QDragLeaveEvent.__init__ (self, QDragLeaveEvent)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdragmoveevent.html0000644000076500000240000001455612536324503021410 0ustar philstaff00000000000000 QDragMoveEvent Class Reference
  Home · All Classes · Modules

QDragMoveEvent Class Reference
[QtGui module]

The QDragMoveEvent class provides an event which is sent while a drag and drop action is in progress. More...

Inherits QDropEvent.

Inherited by QDragEnterEvent.

Methods

  • __init__ (self, QPoint pos, Qt.DropActions actions, QMimeData data, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers, QEvent.Type type = QEvent.DragMove)
  • __init__ (self, QDragMoveEvent)
  • accept (self)
  • accept (self, QRect r)
  • QRect answerRect (self)
  • ignore (self)
  • ignore (self, QRect r)

Detailed Description

The QDragMoveEvent class provides an event which is sent while a drag and drop action is in progress.

A widget will receive drag move events repeatedly while the drag is within its boundaries, if it accepts drop events and enter events. The widget should examine the event to see what kind of data it provides, and call the accept() function to accept the drop if appropriate.

The rectangle supplied by the answerRect() function can be used to restrict drops to certain parts of the widget. For example, we can check whether the rectangle intersects with the geometry of a certain child widget and only call acceptProposedAction() if that is the case.

Note that this class inherits most of its functionality from QDropEvent.


Method Documentation

QDragMoveEvent.__init__ (self, QPoint pos, Qt.DropActions actions, QMimeData data, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers, QEvent.Type type = QEvent.DragMove)

Creates a QDragMoveEvent of the required type indicating that the mouse is at position pos given within a widget.

The mouse and keyboard states are specified by buttons and modifiers, and the actions describe the types of drag and drop operation that are possible. The drag data is passed as MIME-encoded information in data.

Warning: Do not attempt to create a QDragMoveEvent yourself. These objects rely on Qt's internal state.

QDragMoveEvent.__init__ (self, QDragMoveEvent)

QDragMoveEvent.accept (self)

The same as accept(), but also notifies that future moves will also be acceptable if they remain within the rectangle given on the widget. This can improve performance, but may also be ignored by the underlying system.

If the rectangle is empty, drag move events will be sent continuously. This is useful if the source is scrolling in a timer event.

QDragMoveEvent.accept (self, QRect r)

QRect QDragMoveEvent.answerRect (self)

Returns the rectangle in the widget where the drop will occur if accepted. You can use this information to restrict drops to certain places on the widget.

QDragMoveEvent.ignore (self)

The opposite of the accept(const QRect&) function. Moves within the rectangle are not acceptable, and will be ignored.

QDragMoveEvent.ignore (self, QRect r)

This is an overloaded function.

Calls QDropEvent.ignore().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdropevent.html0000644000076500000240000002453612536324503020547 0ustar philstaff00000000000000 QDropEvent Class Reference
  Home · All Classes · Modules

QDropEvent Class Reference
[QtGui module]

The QDropEvent class provides an event which is sent when a drag and drop action is completed. More...

Inherits QEvent and QMimeSource.

Inherited by QDragMoveEvent.

Methods


Detailed Description

The QDropEvent class provides an event which is sent when a drag and drop action is completed.

When a widget accepts drop events, it will receive this event if it has accepted the most recent QDragEnterEvent or QDragMoveEvent sent to it.

The drop event contains a proposed action, available from proposedAction(), for the widget to either accept or ignore. If the action can be handled by the widget, you should call the acceptProposedAction() function. Since the proposed action can be a combination of Qt.DropAction values, it may be useful to either select one of these values as a default action or ask the user to select their preferred action.

If the proposed drop action is not suitable, perhaps because your custom widget does not support that action, you can replace it with any of the possible drop actions by calling setDropAction() with your preferred action. If you set a value that is not present in the bitwise OR combination of values returned by possibleActions(), the default copy action will be used. Once a replacement drop action has been set, call accept() instead of acceptProposedAction() to complete the drop operation.

The mimeData() function provides the data dropped on the widget in a QMimeData object. This contains information about the MIME type of the data in addition to the data itself.


Method Documentation

QDropEvent.__init__ (self, QPoint pos, Qt.DropActions actions, QMimeData data, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers, QEvent.Type type = QEvent.Drop)

Constructs a drop event of a certain type corresponding to a drop at the point specified by pos in the destination widget's coordinate system.

The actions indicate which types of drag and drop operation can be performed, and the drag data is stored as MIME-encoded data in data.

The states of the mouse buttons and keyboard modifiers at the time of the drop are specified by buttons and modifiers.

QDropEvent.__init__ (self, QDropEvent)

QDropEvent.acceptProposedAction (self)

Sets the drop action to be the proposed action.

See also setDropAction(), proposedAction(), and accept().

Qt.DropAction QDropEvent.dropAction (self)

Returns the action to be performed on the data by the target. This may be different from the action supplied in proposedAction() if you have called setDropAction() to explicitly choose a drop action.

See also setDropAction().

QByteArray QDropEvent.encodedData (self, str)

str QDropEvent.format (self, int n = 0)

Qt.KeyboardModifiers QDropEvent.keyboardModifiers (self)

Returns the modifier keys that are pressed.

QMimeData QDropEvent.mimeData (self)

Returns the data that was dropped on the widget and its associated MIME type information.

Qt.MouseButtons QDropEvent.mouseButtons (self)

Returns the mouse buttons that are pressed..

QPoint QDropEvent.pos (self)

Returns the position where the drop was made.

Qt.DropActions QDropEvent.possibleActions (self)

Returns an OR-combination of possible drop actions.

See also dropAction().

Qt.DropAction QDropEvent.proposedAction (self)

Returns the proposed drop action.

See also dropAction().

bool QDropEvent.provides (self, str)

QDropEvent.setDropAction (self, Qt.DropAction action)

Sets the action to be performed on the data by the target. Use this to override the proposed action with one of the possible actions.

If you set a drop action that is not one of the possible actions, the drag and drop operation will default to a copy operation.

Once you have supplied a replacement drop action, call accept() instead of acceptProposedAction().

See also dropAction().

QWidget QDropEvent.source (self)

If the source of the drag operation is a widget in this application, this function returns that source; otherwise it returns 0. The source of the operation is the first parameter to the QDrag object used instantiate the drag.

This is useful if your widget needs special behavior when dragging to itself.

See also QDrag.QDrag().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qdynamicpropertychangeevent.html0000644000076500000240000000661512536324471024204 0ustar philstaff00000000000000 QDynamicPropertyChangeEvent Class Reference
  Home · All Classes · Modules

QDynamicPropertyChangeEvent Class Reference
[QtCore module]

The QDynamicPropertyChangeEvent class contains event parameters for dynamic property change events. More...

Inherits QEvent.

Methods


Detailed Description

The QDynamicPropertyChangeEvent class contains event parameters for dynamic property change events.

Dynamic property change events are sent to objects when properties are dynamically added, changed or removed using QObject.setProperty().


Method Documentation

QDynamicPropertyChangeEvent.__init__ (self, QByteArray name)

Constructs a dynamic property change event object with the property name set to name.

QDynamicPropertyChangeEvent.__init__ (self, QDynamicPropertyChangeEvent)

QByteArray QDynamicPropertyChangeEvent.propertyName (self)

Returns the name of the dynamic property that was added, changed or removed.

See also QObject.setProperty() and QObject.dynamicPropertyNames().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qeasingcurve.html0000644000076500000240000006341412536324472021057 0ustar philstaff00000000000000 QEasingCurve Class Reference
  Home · All Classes · Modules

QEasingCurve Class Reference
[QtCore module]

The QEasingCurve class provides easing curves for controlling animation. More...

Types

  • enum Type { Linear, InQuad, OutQuad, InOutQuad, ..., Custom }

Methods

Special Methods

  • bool __eq__ (self, QEasingCurve other)
  • bool __ne__ (self, QEasingCurve other)

Detailed Description

The QEasingCurve class provides easing curves for controlling animation.

Easing curves describe a function that controls how the speed of the interpolation between 0 and 1 should be. Easing curves allow transitions from one value to another to appear more natural than a simple constant speed would allow. The QEasingCurve class is usually used in conjunction with the QVariantAnimation and QPropertyAnimation classes but can be used on its own. It is usually used to accelerate the interpolation from zero velocity (ease in) or decelerate to zero velocity (ease out). Ease in and ease out can also be combined in the same easing curve.

To calculate the speed of the interpolation, the easing curve provides the function valueForProgress(), where the progress argument specifies the progress of the interpolation: 0 is the start value of the interpolation, 1 is the end value of the interpolation. The returned value is the effective progress of the interpolation. If the returned value is the same as the input value for all input values the easing curve is a linear curve. This is the default behaviour.

For example,

 QEasingCurve easing(QEasingCurve.InOutQuad);

 for(qreal t = 0.0; t < 1.0; t+=0.1)
     qWarning() << "Effective progress" << t << " is
                << easing.valueForProgress(t);
 

will print the effective progress of the interpolation between 0 and 1.

When using a QPropertyAnimation, the associated easing curve will be used to control the progress of the interpolation between startValue and endValue:

 QPropertyAnimation animation;
 animation.setStartValue(0);
 animation.setEndValue(1000);
 animation.setDuration(1000);
 animation.setEasingCurve(QEasingCurve.InOutQuad);

The ability to set an amplitude, overshoot, or period depends on the QEasingCurve type. Amplitude access is available to curves that behave as springs such as elastic and bounce curves. Changing the amplitude changes the height of the curve. Period access is only available to elastic curves and setting a higher period slows the rate of bounce. Only curves that have "boomerang" behaviors such as the InBack, OutBack, InOutBack, and OutInBack have overshoot settings. These curves will interpolate beyond the end points and return to the end point, acting similar to a boomerang.

The Easing Curves Example contains samples of QEasingCurve types and lets you change the curve settings.


Type Documentation

QEasingCurve.Type

The type of easing curve.

Constant Value Description
QEasingCurve.Linear 0
Easing curve for a linear (t) function: velocity is constant.
QEasingCurve.InQuad 1
Easing curve for a quadratic (t^2) function: accelerating from zero velocity.
QEasingCurve.OutQuad 2
Easing curve for a quadratic (t^2) function: decelerating to zero velocity.
QEasingCurve.InOutQuad 3
Easing curve for a quadratic (t^2) function: acceleration until halfway, then deceleration.
QEasingCurve.OutInQuad 4
Easing curve for a quadratic (t^2) function: deceleration until halfway, then acceleration.
QEasingCurve.InCubic 5
Easing curve for a cubic (t^3) function: accelerating from zero velocity.
QEasingCurve.OutCubic 6
Easing curve for a cubic (t^3) function: decelerating to zero velocity.
QEasingCurve.InOutCubic 7
Easing curve for a cubic (t^3) function: acceleration until halfway, then deceleration.
QEasingCurve.OutInCubic 8
Easing curve for a cubic (t^3) function: deceleration until halfway, then acceleration.
QEasingCurve.InQuart 9
Easing curve for a quartic (t^4) function: accelerating from zero velocity.
QEasingCurve.OutQuart 10
Easing curve for a quartic (t^4) function: decelerating to zero velocity.
QEasingCurve.InOutQuart 11
Easing curve for a quartic (t^4) function: acceleration until halfway, then deceleration.
QEasingCurve.OutInQuart 12
Easing curve for a quartic (t^4) function: deceleration until halfway, then acceleration.
QEasingCurve.InQuint 13
Easing curve for a quintic (t^5) easing in: accelerating from zero velocity.
QEasingCurve.OutQuint 14
Easing curve for a quintic (t^5) function: decelerating to zero velocity.
QEasingCurve.InOutQuint 15
Easing curve for a quintic (t^5) function: acceleration until halfway, then deceleration.
QEasingCurve.OutInQuint 16
Easing curve for a quintic (t^5) function: deceleration until halfway, then acceleration.
QEasingCurve.InSine 17
Easing curve for a sinusoidal (sin(t)) function: accelerating from zero velocity.
QEasingCurve.OutSine 18
Easing curve for a sinusoidal (sin(t)) function: decelerating from zero velocity.
QEasingCurve.InOutSine 19
Easing curve for a sinusoidal (sin(t)) function: acceleration until halfway, then deceleration.
QEasingCurve.OutInSine 20
Easing curve for a sinusoidal (sin(t)) function: deceleration until halfway, then acceleration.
QEasingCurve.InExpo 21
Easing curve for an exponential (2^t) function: accelerating from zero velocity.
QEasingCurve.OutExpo 22
Easing curve for an exponential (2^t) function: decelerating from zero velocity.
QEasingCurve.InOutExpo 23
Easing curve for an exponential (2^t) function: acceleration until halfway, then deceleration.
QEasingCurve.OutInExpo 24
Easing curve for an exponential (2^t) function: deceleration until halfway, then acceleration.
QEasingCurve.InCirc 25
Easing curve for a circular (sqrt(1-t^2)) function: accelerating from zero velocity.
QEasingCurve.OutCirc 26
Easing curve for a circular (sqrt(1-t^2)) function: decelerating from zero velocity.
QEasingCurve.InOutCirc 27
Easing curve for a circular (sqrt(1-t^2)) function: acceleration until halfway, then deceleration.
QEasingCurve.OutInCirc 28
Easing curve for a circular (sqrt(1-t^2)) function: deceleration until halfway, then acceleration.
QEasingCurve.InElastic 29
Easing curve for an elastic (exponentially decaying sine wave) function: accelerating from zero velocity. The peak amplitude can be set with the amplitude parameter, and the period of decay by the period parameter.
QEasingCurve.OutElastic 30
Easing curve for an elastic (exponentially decaying sine wave) function: decelerating from zero velocity. The peak amplitude can be set with the amplitude parameter, and the period of decay by the period parameter.
QEasingCurve.InOutElastic 31
Easing curve for an elastic (exponentially decaying sine wave) function: acceleration until halfway, then deceleration.
QEasingCurve.OutInElastic 32
Easing curve for an elastic (exponentially decaying sine wave) function: deceleration until halfway, then acceleration.
QEasingCurve.InBack 33
Easing curve for a back (overshooting cubic function: (s+1)*t^3 - s*t^2) easing in: accelerating from zero velocity.
QEasingCurve.OutBack 34
Easing curve for a back (overshooting cubic function: (s+1)*t^3 - s*t^2) easing out: decelerating to zero velocity.
QEasingCurve.InOutBack 35
Easing curve for a back (overshooting cubic function: (s+1)*t^3 - s*t^2) easing in/out: acceleration until halfway, then deceleration.
QEasingCurve.OutInBack 36
Easing curve for a back (overshooting cubic easing: (s+1)*t^3 - s*t^2) easing out/in: deceleration until halfway, then acceleration.
QEasingCurve.InBounce 37
Easing curve for a bounce (exponentially decaying parabolic bounce) function: accelerating from zero velocity.
QEasingCurve.OutBounce 38
Easing curve for a bounce (exponentially decaying parabolic bounce) function: decelerating from zero velocity.
QEasingCurve.InOutBounce 39
Easing curve for a bounce (exponentially decaying parabolic bounce) function easing in/out: acceleration until halfway, then deceleration.
QEasingCurve.OutInBounce 40
Easing curve for a bounce (exponentially decaying parabolic bounce) function easing out/in: deceleration until halfway, then acceleration.
QEasingCurve.Custom 45 This is returned if the user specified a custom curve type with setCustomType(). Note that you cannot call setType() with this value, but type() can return it.

Method Documentation

QEasingCurve.__init__ (self, Type type = QEasingCurve.Linear)

Constructs an easing curve of the given type.

QEasingCurve.__init__ (self, QEasingCurve other)

Construct a copy of other.

float QEasingCurve.amplitude (self)

Returns the amplitude. This is not applicable for all curve types. It is only applicable for bounce and elastic curves (curves of type() QEasingCurve.InBounce, QEasingCurve.OutBounce, QEasingCurve.InOutBounce, QEasingCurve.OutInBounce, QEasingCurve.InElastic, QEasingCurve.OutElastic, QEasingCurve.InOutElastic or QEasingCurve.OutInElastic).

See also setAmplitude().

callable QEasingCurve.customType (self)

Returns the function pointer to the custom easing curve. If type() does not return QEasingCurve.Custom, this function will return 0.

See also setCustomType().

float QEasingCurve.overshoot (self)

Returns the overshoot. This is not applicable for all curve types. It is only applicable if type() is QEasingCurve.InBack, QEasingCurve.OutBack, QEasingCurve.InOutBack or QEasingCurve.OutInBack.

See also setOvershoot().

float QEasingCurve.period (self)

Returns the period. This is not applicable for all curve types. It is only applicable if type() is QEasingCurve.InElastic, QEasingCurve.OutElastic, QEasingCurve.InOutElastic or QEasingCurve.OutInElastic.

See also setPeriod().

QEasingCurve.setAmplitude (self, float amplitude)

Sets the amplitude to amplitude.

This will set the amplitude of the bounce or the amplitude of the elastic "spring" effect. The higher the number, the higher the amplitude.

See also amplitude().

QEasingCurve.setCustomType (self, callable func)

Sets a custom easing curve that is defined by the user in the function func. The signature of the function is qreal myEasingFunction(qreal progress), where progress and the return value is considered to be normalized between 0 and 1. (In some cases the return value can be outside that range) After calling this function type() will return QEasingCurve.Custom. func cannot be zero.

See also customType() and valueForProgress().

QEasingCurve.setOvershoot (self, float overshoot)

Sets the overshoot to overshoot.

0 produces no overshoot, and the default value of 1.70158 produces an overshoot of 10 percent.

See also overshoot().

QEasingCurve.setPeriod (self, float period)

Sets the period to period. Setting a small period value will give a high frequency of the curve. A large period will give it a small frequency.

See also period().

QEasingCurve.setType (self, Type type)

Sets the type of the easing curve to type.

See also type().

Type QEasingCurve.type (self)

Returns the type of the easing curve.

See also setType().

float QEasingCurve.valueForProgress (self, float progress)

Return the effective progress for the easing curve at progress. While progress must be between 0 and 1, the returned effective progress can be outside those bounds. For instance, QEasingCurve.InBack will return negative values in the beginning of the function.

bool QEasingCurve.__eq__ (self, QEasingCurve other)

bool QEasingCurve.__ne__ (self, QEasingCurve other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qelapsedtimer.html0000644000076500000240000005535512536324472021227 0ustar philstaff00000000000000 QElapsedTimer Class Reference
  Home · All Classes · Modules

QElapsedTimer Class Reference
[QtCore module]

The QElapsedTimer class provides a fast way to calculate elapsed times. More...

Types

  • enum ClockType { SystemTime, MonotonicClock, TickCounter, MachAbsoluteTime, PerformanceCounter }

Methods

Static Methods

Special Methods

  • bool __eq__ (self, QElapsedTimer other)
  • bool __ge__ (self, QElapsedTimer v2)
  • bool __lt__ (self, QElapsedTimer v2)
  • bool __ne__ (self, QElapsedTimer other)

Detailed Description

The QElapsedTimer class provides a fast way to calculate elapsed times.

The QElapsedTimer class is usually used to quickly calculate how much time has elapsed between two events. Its API is similar to that of QTime, so code that was using that can be ported quickly to the new class.

However, unlike QTime, QElapsedTimer tries to use monotonic clocks if possible. This means it's not possible to convert QElapsedTimer objects to a human-readable time.

The typical use-case for the class is to determine how much time was spent in a slow operation. The simplest example of such a case is for debugging purposes, as in the following example:

     QElapsedTimer timer;
     timer.start();

     slowOperation1();

     qDebug() << "The slow operation took" << timer.elapsed() << "milliseconds";

In this example, the timer is started by a call to start() and the elapsed timer is calculated by the elapsed() function.

The time elapsed can also be used to recalculate the time available for another operation, after the first one is complete. This is useful when the execution must complete within a certain time period, but several steps are needed. The waitFor-type functions in QIODevice and its subclasses are good examples of such need. In that case, the code could be as follows:

 void executeSlowOperations(int timeout)
 {
     QElapsedTimer timer;
     timer.start();
     slowOperation1();

     int remainingTime = timeout - timer.elapsed();
     if (remainingTime > 0)
         slowOperation2(remainingTime);
 }

Another use-case is to execute a certain operation for a specific timeslice. For this, QElapsedTimer provides the hasExpired() convenience function, which can be used to determine if a certain number of milliseconds has already elapsed:

 void executeOperationsForTime(int ms)
 {
     QElapsedTimer timer;
     timer.start();

     while (!timer.hasExpired(ms))
         slowOperation1();
 }

Reference clocks

QElapsedTimer will use the platform's monotonic reference clock in all platforms that support it (see QElapsedTimer.isMonotonic()). This has the added benefit that QElapsedTimer is immune to time adjustments, such as the user correcting the time. Also unlike QTime, QElapsedTimer is immune to changes in the timezone settings, such as daylight savings periods.

On the other hand, this means QElapsedTimer values can only be compared with other values that use the same reference. This is especially true if the time since the reference is extracted from the QElapsedTimer object (QElapsedTimer.msecsSinceReference()) and serialised. These values should never be exchanged across the network or saved to disk, since there's no telling whether the computer node receiving the data is the same as the one originating it or if it has rebooted since.

It is, however, possible to exchange the value with other processes running on the same machine, provided that they also use the same reference clock. QElapsedTimer will always use the same clock, so it's safe to compare with the value coming from another process in the same machine. If comparing to values produced by other APIs, you should check that the clock used is the same as QElapsedTimer (see QElapsedTimer.clockType()).

32-bit overflows

Some of the clocks that QElapsedTimer have a limited range and may overflow after hitting the upper limit (usually 32-bit). QElapsedTimer deals with this overflow issue and presents a consistent timing. However, when extracting the time since reference from QElapsedTimer, two different processes in the same machine may have different understanding of how much time has actually elapsed.

The information on which clocks types may overflow and how to remedy that issue is documented along with the clock types.


Type Documentation

QElapsedTimer.ClockType

This enum contains the different clock types that QElapsedTimer may use.

QElapsedTimer will always use the same clock type in a particular machine, so this value will not change during the lifetime of a program. It is provided so that QElapsedTimer can be used with other non-Qt implementations, to guarantee that the same reference clock is being used.

Constant Value Description
QElapsedTimer.SystemTime 0 The human-readable system time. This clock is not monotonic.
QElapsedTimer.MonotonicClock 1 The system's monotonic clock, usually found in Unix systems. This clock is monotonic and does not overflow.
QElapsedTimer.TickCounter 2 The system's tick counter, used on Windows and Symbian systems. This clock may overflow.
QElapsedTimer.MachAbsoluteTime 3 The Mach kernel's absolute time (Mac OS X). This clock is monotonic and does not overflow.
QElapsedTimer.PerformanceCounter 4 The high-resolution performance counter provided by Windows. This clock is monotonic and does not overflow.
SystemTime

The system time clock is purely the real time, expressed in milliseconds since Jan 1, 1970 at 0:00 UTC. It's equivalent to the value returned by the C and POSIX time function, with the milliseconds added. This clock type is currently only used on Unix systems that do not support monotonic clocks (see below).

This is the only non-monotonic clock that QElapsedTimer may use.

MonotonicClock

This is the system's monotonic clock, expressed in milliseconds since an arbitrary point in the past. This clock type is used on Unix systems which support POSIX monotonic clocks (_POSIX_MONOTONIC_CLOCK).

This clock does not overflow.

TickCounter

The tick counter clock type is based on the system's or the processor's tick counter, multiplied by the duration of a tick. This clock type is used on Windows and Symbian platforms. If the high-precision performance counter is available on Windows, the PerformanceCounter clock type is used instead.

The TickCounter clock type is the only clock type that may overflow. Windows Vista and Windows Server 2008 support the extended 64-bit tick counter, which allows avoiding the overflow.

On Windows systems, the clock overflows after 2^32 milliseconds, which corresponds to roughly 49.7 days. This means two processes's reckoning of the time since the reference may be different by multiples of 2^32 milliseconds. When comparing such values, it's recommended that the high 32 bits of the millisecond count be masked off.

On Symbian systems, the overflow happens after 2^32 ticks, the duration of which can be obtained from the platform HAL using the constant HAL.ENanoTickPeriod. When comparing values between processes, it's necessary to divide the value by the tick duration and mask off the high 32 bits.

MachAbsoluteTime

This clock type is based on the absolute time presented by Mach kernels, such as that found on Mac OS X. This clock type is presented separately from MonotonicClock since Mac OS X is also a Unix system and may support a POSIX monotonic clock with values differing from the Mach absolute time.

This clock is monotonic and does not overflow.

PerformanceCounter

This clock uses the Windows functions QueryPerformanceCounter and QueryPerformanceFrequency to access the system's high-precision performance counter. Since this counter may not be available on all systems, QElapsedTimer will fall back to the TickCounter clock automatically, if this clock cannot be used.

This clock is monotonic and does not overflow.

See also clockType() and isMonotonic().


Method Documentation

QElapsedTimer.__init__ (self)

QElapsedTimer.__init__ (self, QElapsedTimer)

ClockType QElapsedTimer.clockType ()

Returns the clock type that this QElapsedTimer implementation uses.

See also isMonotonic().

int QElapsedTimer.elapsed (self)

Returns the number of milliseconds since this QElapsedTimer was last started. Calling this function in a QElapsedTimer that was invalidated will result in undefined results.

See also start(), restart(), hasExpired(), and invalidate().

bool QElapsedTimer.hasExpired (self, int timeout)

Returns true if this QElapsedTimer has already expired by timeout milliseconds (that is, more than timeout milliseconds have elapsed). The value of timeout can be -1 to indicate that this timer does not expire, in which case this function will always return false.

See also elapsed().

QElapsedTimer.invalidate (self)

Marks this QElapsedTimer object as invalid.

An invalid object can be checked with isValid(). Calculations of timer elapsed since invalid data are undefined and will likely produce bizarre results.

See also isValid(), start(), and restart().

bool QElapsedTimer.isMonotonic ()

Returns true if this is a monotonic clock, false otherwise. See the information on the different clock types to understand which ones are monotonic.

See also clockType() and QElapsedTimer.ClockType.

bool QElapsedTimer.isValid (self)

Returns false if this object was invalidated by a call to invalidate() and has not been restarted since.

See also invalidate(), start(), and restart().

int QElapsedTimer.msecsSinceReference (self)

Returns the number of milliseconds between last time this QElapsedTimer object was started and its reference clock's start.

This number is usually arbitrary for all clocks except the QElapsedTimer.SystemTime clock. For that clock type, this number is the number of milliseconds since January 1st, 1970 at 0:00 UTC (that is, it is the Unix time expressed in milliseconds).

See also clockType() and elapsed().

int QElapsedTimer.msecsTo (self, QElapsedTimer other)

Returns the number of milliseconds between this QElapsedTimer and other. If other was started before this object, the returned value will be positive. If it was started later, the returned value will be negative.

The return value is undefined if this object or other were invalidated.

See also secsTo() and elapsed().

int QElapsedTimer.nsecsElapsed (self)

Returns the number of nanoseconds since this QElapsedTimer was last started. Calling this function in a QElapsedTimer that was invalidated will result in undefined results.

On platforms that do not provide nanosecond resolution, the value returned will be the best estimate available.

This function was introduced in Qt 4.8.

See also start(), restart(), hasExpired(), and invalidate().

int QElapsedTimer.restart (self)

Restarts the timer and returns the time elapsed since the previous start. This function is equivalent to obtaining the elapsed time with elapsed() and then starting the timer again with start(), but it does so in one single operation, avoiding the need to obtain the clock value twice.

The following example illustrates how to use this function to calibrate a parameter to a slow operation (for example, an iteration count) so that this operation takes at least 250 milliseconds:

     QElapsedTimer timer;

     int count = 1;
     timer.start();
     do {
         count *= 2;
         slowOperation2(count);
     } while (timer.restart() < 250);

     return count;

See also start(), invalidate(), and elapsed().

int QElapsedTimer.secsTo (self, QElapsedTimer other)

Returns the number of seconds between this QElapsedTimer and other. If other was started before this object, the returned value will be positive. If it was started later, the returned value will be negative.

The return value is undefined if this object or other were invalidated.

See also msecsTo() and elapsed().

QElapsedTimer.start (self)

Starts this timer. Once started, a timer value can be checked with elapsed() or msecsSinceReference().

Normally, a timer is started just before a lengthy operation, such as:

     QElapsedTimer timer;
     timer.start();

     slowOperation1();

     qDebug() << "The slow operation took" << timer.elapsed() << "milliseconds";

Also, starting a timer makes it valid again.

See also restart(), invalidate(), and elapsed().

bool QElapsedTimer.__eq__ (self, QElapsedTimer other)

bool QElapsedTimer.__ge__ (self, QElapsedTimer v2)

bool QElapsedTimer.__lt__ (self, QElapsedTimer v2)

bool QElapsedTimer.__ne__ (self, QElapsedTimer other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qerrormessage.html0000644000076500000240000001472012536324503021231 0ustar philstaff00000000000000 QErrorMessage Class Reference
  Home · All Classes · Modules

QErrorMessage Class Reference
[QtGui module]

The QErrorMessage class provides an error message display dialog. More...

Inherits QDialog.

Methods

Static Methods


Detailed Description

The QErrorMessage class provides an error message display dialog.

An error message widget consists of a text label and a checkbox. The checkbox lets the user control whether the same error message will be displayed again in the future, typically displaying the text, "Show this message again" translated into the appropriate local language.

For production applications, the class can be used to display messages which the user only needs to see once. To use QErrorMessage like this, you create the dialog in the usual way, and show it by calling the showMessage() slot or connecting signals to it.

The static qtHandler() function installs a message handler using qInstallMsgHandler() and creates a QErrorMessage that displays qDebug(), qWarning() and qFatal() messages. This is most useful in environments where no console is available to display warnings and error messages.

In both cases QErrorMessage will queue pending messages and display them in order, with each new message being shown as soon as the user has accepted the previous message. Once the user has specified that a message is not to be shown again it is automatically skipped, and the dialog will show the next appropriate message in the queue.

The Standard Dialogs example shows how to use QErrorMessage as well as other built-in Qt dialogs.


Method Documentation

QErrorMessage.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs and installs an error handler window with the given parent.

QErrorMessage.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

QErrorMessage.done (self, int)

Reimplemented from QDialog.done().

QErrorMessage QErrorMessage.qtHandler ()

Returns a pointer to a QErrorMessage object that outputs the default Qt messages. This function creates such an object, if there isn't one already.

QErrorMessage.showMessage (self, QString message)

This method is also a Qt slot with the C++ signature void showMessage(const QString&).

Shows the given message, message, and returns immediately. If the user has requested for the message not to be shown again, this function does nothing.

Normally, the message is displayed immediately. However, if there are pending messages, it will be queued to be displayed later.

QErrorMessage.showMessage (self, QString message, QString type)

This method is also a Qt slot with the C++ signature void showMessage(const QString&,const QString&).

This is an overloaded function.

Shows the given message, message, and returns immediately. If the user has requested for messages of type, type, not to be shown again, this function does nothing.

Normally, the message is displayed immediately. However, if there are pending messages, it will be queued to be displayed later.

This function was introduced in Qt 4.5.

See also showMessage().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qevent.html0000644000076500000240000011236312536324471017662 0ustar philstaff00000000000000 QEvent Class Reference
  Home · All Classes · Modules

QEvent Class Reference
[QtCore module]

The QEvent class is the base class of all event classes. Event objects contain event parameters. More...

Inherited by QActionEvent, QChildEvent, QCloseEvent, QDragLeaveEvent, QDropEvent, QDynamicPropertyChangeEvent, QFileOpenEvent, QFocusEvent, QGestureEvent, QGraphicsSceneEvent, QHelpEvent, QHideEvent, QHoverEvent, QIconDragEvent, QInputEvent, QInputMethodEvent, QMoveEvent, QPaintEvent, QResizeEvent, QShortcutEvent, QShowEvent, SignalEvent, WrappedEvent, QStatusTipEvent, QTimerEvent, QWhatsThisClickedEvent and QWindowStateChangeEvent.

Types

  • enum Type { None, Timer, MouseButtonPress, MouseButtonRelease, ..., MaxUser }

Methods

Static Methods


Detailed Description

The QEvent class is the base class of all event classes. Event objects contain event parameters.

Qt's main event loop (QCoreApplication.exec()) fetches native window system events from the event queue, translates them into QEvents, and sends the translated events to QObjects.

In general, events come from the underlying window system (spontaneous() returns true), but it is also possible to manually send events using QCoreApplication.sendEvent() and QCoreApplication.postEvent() (spontaneous() returns false).

QObjects receive events by having their QObject.event() function called. The function can be reimplemented in subclasses to customize event handling and add additional event types; QWidget.event() is a notable example. By default, events are dispatched to event handlers like QObject.timerEvent() and QWidget.mouseMoveEvent(). QObject.installEventFilter() allows an object to intercept events destined for another object.

The basic QEvent contains only an event type parameter and an "accept" flag. The accept flag set with accept(), and cleared with ignore(). It is set by default, but don't rely on this as subclasses may choose to clear it in their constructor.

Subclasses of QEvent contain additional parameters that describe the particular event.


Type Documentation

QEvent.Type

This enum type defines the valid event types in Qt. The event types and the specialized classes for each type are as follows:

Constant Value Description
QEvent.None 0 Not an event.
QEvent.AccessibilityDescription 130 Used to query accessibility description texts (QAccessibleEvent).
QEvent.AccessibilityHelp 119 Used to query accessibility help texts (QAccessibleEvent).
QEvent.AccessibilityPrepare 86 Accessibility information is requested.
QEvent.ActionAdded 114 A new action has been added (QActionEvent).
QEvent.ActionChanged 113 An action has been changed (QActionEvent).
QEvent.ActionRemoved 115 An action has been removed (QActionEvent).
QEvent.ActivationChange 99 A widget's top-level window activation state has changed.
QEvent.ApplicationActivate 121 The application has been made available to the user.
QEvent.ApplicationActivated ApplicationActivate This enum has been deprecated. Use ApplicationActivate instead.
QEvent.ApplicationDeactivate 122 The application has been suspended, and is unavailable to the user.
QEvent.ApplicationFontChange 36 The default application font has changed.
QEvent.ApplicationLayoutDirectionChange 37 The default application layout direction has changed.
QEvent.ApplicationPaletteChange 38 The default application palette has changed.
QEvent.ApplicationWindowIconChange 35 The application's icon has changed.
QEvent.ChildAdded 68 An object gets a child (QChildEvent).
QEvent.ChildInserted 70 An object gets a child (QChildEvent). Qt3Support only, use ChildAdded instead.
QEvent.ChildPolished 69 A widget child gets polished (QChildEvent).
QEvent.ChildRemoved 71 An object loses a child (QChildEvent).
QEvent.Clipboard 40 The clipboard contents have changed (QClipboardEvent).
QEvent.Close 19 Widget was closed (QCloseEvent).
QEvent.CloseSoftwareInputPanel 200 A widget wants to close the software input panel (SIP).
QEvent.ContentsRectChange 178 The margins of the widget's content rect changed.
QEvent.ContextMenu 82 Context popup menu (QContextMenuEvent).
QEvent.CursorChange 183 The widget's cursor has changed.
QEvent.DeferredDelete 52 The object will be deleted after it has cleaned up.
QEvent.DragEnter 60 The cursor enters a widget during a drag and drop operation (QDragEnterEvent).
QEvent.DragLeave 62 The cursor leaves a widget during a drag and drop operation (QDragLeaveEvent).
QEvent.DragMove 61 A drag and drop operation is in progress (QDragMoveEvent).
QEvent.Drop 63 A drag and drop operation is completed (QDropEvent).
QEvent.EnabledChange 98 Widget's enabled state has changed.
QEvent.Enter 10 Mouse enters widget's boundaries.
QEvent.EnterEditFocus 150 An editor widget gains focus for editing.
QEvent.EnterWhatsThisMode 124 Send to toplevel widgets when the application enters "What's This?" mode.
QEvent.FileOpen 116 File open request (QFileOpenEvent).
QEvent.FocusIn 8 Widget gains keyboard focus (QFocusEvent).
QEvent.FocusOut 9 Widget loses keyboard focus (QFocusEvent).
QEvent.FontChange 97 Widget's font has changed.
QEvent.GrabKeyboard 188 Item gains keyboard grab (QGraphicsItem only).
QEvent.GrabMouse 186 Item gains mouse grab (QGraphicsItem only).
QEvent.GraphicsSceneContextMenu 159 Context popup menu over a graphics scene (QGraphicsSceneContextMenuEvent).
QEvent.GraphicsSceneDragEnter 164 The cursor enters a graphics scene during a drag and drop operation (QGraphicsSceneDragDropEvent).
QEvent.GraphicsSceneDragLeave 166 The cursor leaves a graphics scene during a drag and drop operation (QGraphicsSceneDragDropEvent).
QEvent.GraphicsSceneDragMove 165 A drag and drop operation is in progress over a scene (QGraphicsSceneDragDropEvent).
QEvent.GraphicsSceneDrop 167 A drag and drop operation is completed over a scene (QGraphicsSceneDragDropEvent).
QEvent.GraphicsSceneHelp 163 The user requests help for a graphics scene (QHelpEvent).
QEvent.GraphicsSceneHoverEnter 160 The mouse cursor enters a hover item in a graphics scene (QGraphicsSceneHoverEvent).
QEvent.GraphicsSceneHoverLeave 162 The mouse cursor leaves a hover item in a graphics scene (QGraphicsSceneHoverEvent).
QEvent.GraphicsSceneHoverMove 161 The mouse cursor moves inside a hover item in a graphics scene (QGraphicsSceneHoverEvent).
QEvent.GraphicsSceneMouseDoubleClick 158 Mouse press again (double click) in a graphics scene (QGraphicsSceneMouseEvent).
QEvent.GraphicsSceneMouseMove 155 Move mouse in a graphics scene (QGraphicsSceneMouseEvent).
QEvent.GraphicsSceneMousePress 156 Mouse press in a graphics scene (QGraphicsSceneMouseEvent).
QEvent.GraphicsSceneMouseRelease 157 Mouse release in a graphics scene (QGraphicsSceneMouseEvent).
QEvent.GraphicsSceneMove 182 Widget was moved (QGraphicsSceneMoveEvent).
QEvent.GraphicsSceneResize 181 Widget was resized (QGraphicsSceneResizeEvent).
QEvent.GraphicsSceneWheel 168 Mouse wheel rolled in a graphics scene (QGraphicsSceneWheelEvent).
QEvent.Hide 18 Widget was hidden (QHideEvent).
QEvent.HideToParent 27 A child widget has been hidden.
QEvent.HoverEnter 127 The mouse cursor enters a hover widget (QHoverEvent).
QEvent.HoverLeave 128 The mouse cursor leaves a hover widget (QHoverEvent).
QEvent.HoverMove 129 The mouse cursor moves inside a hover widget (QHoverEvent).
QEvent.IconDrag 96 The main icon of a window has been dragged away (QIconDragEvent).
QEvent.IconTextChange 101 Widget's icon text has been changed.
QEvent.InputMethod 83 An input method is being used (QInputMethodEvent).
QEvent.KeyPress 6 Key press (QKeyEvent).
QEvent.KeyRelease 7 Key release (QKeyEvent).
QEvent.LanguageChange 89 The application translation changed.
QEvent.LayoutDirectionChange 90 The direction of layouts changed.
QEvent.LayoutRequest 76 Widget layout needs to be redone.
QEvent.Leave 11 Mouse leaves widget's boundaries.
QEvent.LeaveEditFocus 151 An editor widget loses focus for editing.
QEvent.LeaveWhatsThisMode 125 Send to toplevel widgets when the application leaves "What's This?" mode.
QEvent.LocaleChange 88 The system locale has changed.
QEvent.NonClientAreaMouseButtonDblClick 176 A mouse double click occurred outside the client area.
QEvent.NonClientAreaMouseButtonPress 174 A mouse button press occurred outside the client area.
QEvent.NonClientAreaMouseButtonRelease 175 A mouse button release occurred outside the client area.
QEvent.NonClientAreaMouseMove 173 A mouse move occurred outside the client area.
QEvent.MacSizeChange 177 The user changed his widget sizes (Mac OS X only).
QEvent.MenubarUpdated 153 The window's menu bar has been updated.
QEvent.MetaCall 43 An asynchronous method invocation via QMetaObject.invokeMethod().
QEvent.ModifiedChange 102 Widgets modification state has been changed.
QEvent.MouseButtonDblClick 4 Mouse press again (QMouseEvent).
QEvent.MouseButtonPress 2 Mouse press (QMouseEvent).
QEvent.MouseButtonRelease 3 Mouse release (QMouseEvent).
QEvent.MouseMove 5 Mouse move (QMouseEvent).
QEvent.MouseTrackingChange 109 The mouse tracking state has changed.
QEvent.Move 13 Widget's position changed (QMoveEvent).
QEvent.Paint 12 Screen update necessary (QPaintEvent).
QEvent.PaletteChange 39 Palette of the widget changed.
QEvent.ParentAboutToChange 131 The widget parent is about to change.
QEvent.ParentChange 21 The widget parent has changed.
QEvent.PlatformPanel 212 A platform specific panel has been requested.
QEvent.Polish 75 The widget is polished.
QEvent.PolishRequest 74 The widget should be polished.
QEvent.QueryWhatsThis 123 The widget should accept the event if it has "What's This?" help.
QEvent.RequestSoftwareInputPanel 199 A widget wants to open a software input panel (SIP).
QEvent.Resize 14 Widget's size changed (QResizeEvent).
QEvent.Shortcut 117 Key press in child for shortcut key handling (QShortcutEvent).
QEvent.ShortcutOverride 51 Key press in child, for overriding shortcut key handling (QKeyEvent).
QEvent.Show 17 Widget was shown on screen (QShowEvent).
QEvent.ShowToParent 26 A child widget has been shown.
QEvent.SockAct 50 Socket activated, used to implement QSocketNotifier.
QEvent.StateMachineSignal 192 A signal delivered to a state machine (QStateMachine.SignalEvent).
QEvent.StateMachineWrapped 193 The event is a wrapper for, i.e., contains, another event (QStateMachine.WrappedEvent).
QEvent.StatusTip 112 A status tip is requested (QStatusTipEvent).
QEvent.StyleChange 100 Widget's style has been changed.
QEvent.TabletMove 87 Wacom tablet move (QTabletEvent).
QEvent.TabletPress 92 Wacom tablet press (QTabletEvent).
QEvent.TabletRelease 93 Wacom tablet release (QTabletEvent).
QEvent.OkRequest 94 Ok button in decoration pressed. Supported only for Windows CE.
QEvent.TabletEnterProximity 171 Wacom tablet enter proximity event (QTabletEvent), sent to QApplication.
QEvent.TabletLeaveProximity 172 Wacom tablet leave proximity event (QTabletEvent), sent to QApplication.
QEvent.Timer 1 Regular timer events (QTimerEvent).
QEvent.ToolBarChange 120 The toolbar button is toggled on Mac OS X.
QEvent.ToolTip 110 A tooltip was requested (QHelpEvent).
QEvent.ToolTipChange 184 The widget's tooltip has changed.
QEvent.UngrabKeyboard 189 Item loses keyboard grab (QGraphicsItem only).
QEvent.UngrabMouse 187 Item loses mouse grab (QGraphicsItem only).
QEvent.UpdateLater 78 The widget should be queued to be repainted at a later time.
QEvent.UpdateRequest 77 The widget should be repainted.
QEvent.WhatsThis 111 The widget should reveal "What's This?" help (QHelpEvent).
QEvent.WhatsThisClicked 118 A link in a widget's "What's This?" help was clicked.
QEvent.Wheel 31 Mouse wheel rolled (QWheelEvent).
QEvent.WinEventAct 132 A Windows-specific activation event has occurred.
QEvent.WindowActivate 24 Window was activated.
QEvent.WindowBlocked 103 The window is blocked by a modal dialog.
QEvent.WindowDeactivate 25 Window was deactivated.
QEvent.WindowIconChange 34 The window's icon has changed.
QEvent.WindowStateChange 105 The window's state (minimized, maximized or full-screen) has changed (QWindowStateChangeEvent).
QEvent.WindowTitleChange 33 The window title has changed.
QEvent.WindowUnblocked 104 The window is unblocked after a modal dialog exited.
QEvent.ZOrderChange 126 The widget's z-order has changed. This event is never sent to top level windows.
QEvent.KeyboardLayoutChange 169 The keyboard layout has changed.
QEvent.DynamicPropertyChange 170 A dynamic property was added, changed or removed from the object.
QEvent.TouchBegin 194 Beginning of a sequence of touch-screen and/or track-pad events (QTouchEvent)
QEvent.TouchUpdate 195 Touch-screen event (QTouchEvent)
QEvent.TouchEnd 196 End of touch-event sequence (QTouchEvent)
QEvent.WinIdChange 203 The window system identifer for this native widget has changed
QEvent.Gesture 198 A gesture was triggered (QGestureEvent)
QEvent.GestureOverride 202 A gesture override was triggered (QGestureEvent)

User events should have values between User and MaxUser:

Constant Value Description
QEvent.User 1000 User-defined event.
QEvent.MaxUser 65535 Last user event ID.

For convenience, you can use the registerEventType() function to register and reserve a custom event type for your application. Doing so will allow you to avoid accidentally re-using a custom event type already in use elsewhere in your application.


Method Documentation

QEvent.__init__ (self, Type type)

Contructs an event object of type type.

QEvent.__init__ (self, QEvent)

QEvent.accept (self)

Sets the accept flag of the event object, the equivalent of calling setAccepted(true).

Setting the accept parameter indicates that the event receiver wants the event. Unwanted events might be propagated to the parent widget.

See also ignore().

QEvent.ignore (self)

Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).

Clearing the accept parameter indicates that the event receiver does not want the event. Unwanted events might be propagated to the parent widget.

See also accept().

bool QEvent.isAccepted (self)

int QEvent.registerEventType (int hint = -1)

Registers and returns a custom event type. The hint provided will be used if it is available, otherwise it will return a value between QEvent.User and QEvent.MaxUser that has not yet been registered. The hint is ignored if its value is not between QEvent.User and QEvent.MaxUser.

Note: This function is thread-safe.

This function was introduced in Qt 4.4.

QEvent.setAccepted (self, bool accepted)

bool QEvent.spontaneous (self)

Returns true if the event originated outside the application (a system event); otherwise returns false.

The return value of this function is not defined for paint events.

Type QEvent.type (self)

Returns the event type.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qeventloop-processeventsflags.html0000644000076500000240000001533612536324472024475 0ustar philstaff00000000000000 QEventLoop.ProcessEventsFlags Class Reference
  Home · All Classes · Modules

QEventLoop.ProcessEventsFlags Class Reference
[QtCore module]

Methods

Special Methods

  • ProcessEventsFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, ProcessEventsFlags f)
  • ProcessEventsFlags __iand__ (self, int mask)
  • int __int__ (self)
  • ProcessEventsFlags __invert__ (self)
  • ProcessEventsFlags __ior__ (self, ProcessEventsFlags f)
  • ProcessEventsFlags __ixor__ (self, ProcessEventsFlags f)
  • bool __ne__ (self, ProcessEventsFlags f)
  • ProcessEventsFlags __or__ (self, ProcessEventsFlags f)
  • ProcessEventsFlags __or__ (self, int f)
  • ProcessEventsFlags __xor__ (self, ProcessEventsFlags f)
  • ProcessEventsFlags __xor__ (self, int f)

Detailed Description

ProcessEventsFlag may be used whenever ProcessEventsFlags is expected.


Method Documentation

ProcessEventsFlags.__init__ (self, ProcessEventsFlags)

ProcessEventsFlags.__init__ (self, int)

ProcessEventsFlags.__init__ (self)

ProcessEventsFlags ProcessEventsFlags.__and__ (self, int mask)

int ProcessEventsFlags.__bool__ (self)

bool ProcessEventsFlags.__eq__ (self, ProcessEventsFlags f)

ProcessEventsFlags ProcessEventsFlags.__iand__ (self, int mask)

int ProcessEventsFlags.__int__ (self)

ProcessEventsFlags ProcessEventsFlags.__invert__ (self)

ProcessEventsFlags ProcessEventsFlags.__ior__ (self, ProcessEventsFlags f)

ProcessEventsFlags ProcessEventsFlags.__ixor__ (self, ProcessEventsFlags f)

bool ProcessEventsFlags.__ne__ (self, ProcessEventsFlags f)

ProcessEventsFlags ProcessEventsFlags.__or__ (self, ProcessEventsFlags f)

ProcessEventsFlags ProcessEventsFlags.__or__ (self, int f)

ProcessEventsFlags ProcessEventsFlags.__xor__ (self, ProcessEventsFlags f)

ProcessEventsFlags ProcessEventsFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qeventloop.html0000644000076500000240000002537412536324472020562 0ustar philstaff00000000000000 QEventLoop Class Reference
  Home · All Classes · Modules

QEventLoop Class Reference
[QtCore module]

The QEventLoop class provides a means of entering and leaving an event loop. More...

Inherits QObject.

Types

Methods

  • __init__ (self, QObject parent = None)
  • int exec_ (self, ProcessEventsFlags flags = QEventLoop.AllEvents)
  • exit (self, int returnCode = 0)
  • bool isRunning (self)
  • bool processEvents (self, ProcessEventsFlags flags = QEventLoop.AllEvents)
  • processEvents (self, ProcessEventsFlags flags, int maximumTime)
  • quit (self)
  • wakeUp (self)

Detailed Description

The QEventLoop class provides a means of entering and leaving an event loop.

At any time, you can create a QEventLoop object and call exec_() on it to start a local event loop. From within the event loop, calling exit() will force exec_() to return.


Type Documentation

QEventLoop.ProcessEventsFlag

This enum controls the types of events processed by the processEvents() functions.

Constant Value Description
QEventLoop.AllEvents 0x00 All events. Note that DeferredDelete events are processed specially. See QObject.deleteLater() for more details.
QEventLoop.ExcludeUserInputEvents 0x01 Do not process user input events, such as ButtonPress and KeyPress. Note that the events are not discarded; they will be delivered the next time processEvents() is called without the ExcludeUserInputEvents flag.
QEventLoop.ExcludeSocketNotifiers 0x02 Do not process socket notifier events. Note that the events are not discarded; they will be delivered the next time processEvents() is called without the ExcludeSocketNotifiers flag.
QEventLoop.WaitForMoreEvents 0x04 Wait for events if no pending events are available.
QEventLoop.DeferredDeletion 0x10 deprecated - do not use.

The ProcessEventsFlags type is a typedef for QFlags<ProcessEventsFlag>. It stores an OR combination of ProcessEventsFlag values.

See also processEvents().


Method Documentation

QEventLoop.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an event loop object with the given parent.

int QEventLoop.exec_ (self, ProcessEventsFlags flags = QEventLoop.AllEvents)

Enters the main event loop and waits until exit() is called. Returns the value that was passed to exit().

If flags are specified, only events of the types allowed by the flags will be processed.

It is necessary to call this function to start event handling. The main event loop receives events from the window system and dispatches these to the application widgets.

Generally speaking, no user interaction can take place before calling exec(). As a special case, modal widgets like QMessageBox can be used before calling exec(), because modal widgets use their own local event loop.

To make your application perform idle processing (i.e. executing a special function whenever there are no pending events), use a QTimer with 0 timeout. More sophisticated idle processing schemes can be achieved using processEvents().

See also QApplication.quit(), exit(), and processEvents().

QEventLoop.exit (self, int returnCode = 0)

Tells the event loop to exit with a return code.

After this function has been called, the event loop returns from the call to exec_(). The exec_() function returns returnCode.

By convention, a returnCode of 0 means success, and any non-zero value indicates an error.

Note that unlike the C library function of the same name, this function does return to the caller -- it is event processing that stops.

See also QCoreApplication.quit(), quit(), and exec_().

bool QEventLoop.isRunning (self)

Returns true if the event loop is running; otherwise returns false. The event loop is considered running from the time when exec_() is called until exit() is called.

See also exec_() and exit().

bool QEventLoop.processEvents (self, ProcessEventsFlags flags = QEventLoop.AllEvents)

Processes pending events that match flags until there are no more events to process. Returns true if pending events were handled; otherwise returns false.

This function is especially useful if you have a long running operation and want to show its progress without allowing user input; i.e. by using the ExcludeUserInputEvents flag.

This function is simply a wrapper for QAbstractEventDispatcher.processEvents(). See the documentation for that function for details.

QEventLoop.processEvents (self, ProcessEventsFlags flags, int maximumTime)

Process pending events that match flags for a maximum of maxTime milliseconds, or until there are no more events to process, whichever is shorter. This function is especially useful if you have a long running operation and want to show its progress without allowing user input, i.e. by using the ExcludeUserInputEvents flag.

Notes:

  • This function does not process events continuously; it returns after all available events are processed.
  • Specifying the WaitForMoreEvents flag makes no sense and will be ignored.

QEventLoop.quit (self)

This method is also a Qt slot with the C++ signature void quit().

Tells the event loop to exit normally.

Same as exit(0).

See also QCoreApplication.quit() and exit().

QEventLoop.wakeUp (self)

Wakes up the event loop.

See also QAbstractEventDispatcher.wakeUp().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qeventtransition.html0000644000076500000240000002061612536324472021775 0ustar philstaff00000000000000 QEventTransition Class Reference
  Home · All Classes · Modules

QEventTransition Class Reference
[QtCore module]

The QEventTransition class provides a QObject-specific transition for Qt events. More...

Inherits QAbstractTransition.

Inherited by QKeyEventTransition and QMouseEventTransition.

Methods


Detailed Description

The QEventTransition class provides a QObject-specific transition for Qt events.

A QEventTransition object binds an event to a particular QObject. QEventTransition is part of The State Machine Framework.

Example:

 QPushButton *button = ...;
 QState *s1 = ...;
 QState *s2 = ...;
 // If in s1 and the button receives an Enter event, transition to s2
 QEventTransition *enterTransition = new QEventTransition(button, QEvent.Enter);
 enterTransition->setTargetState(s2);
 s1->addTransition(enterTransition);
 // If in s2 and the button receives an Exit event, transition back to s1
 QEventTransition *leaveTransition = new QEventTransition(button, QEvent.Leave);
 leaveTransition->setTargetState(s1);
 s2->addTransition(leaveTransition);

Subclassing

When reimplementing the eventTest() function, you should first call the base implementation to verify that the event is a QStateMachine.WrappedEvent for the proper object and event type. You may then cast the event to a QStateMachine.WrappedEvent and get the original event by calling QStateMachine.WrappedEvent.event(), and perform additional checks on that object.


Method Documentation

QEventTransition.__init__ (self, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QEventTransition object with the given sourceState.

QEventTransition.__init__ (self, QObject object, QEvent.Type type, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QEventTransition object associated with events of the given type for the given object, and with the given sourceState.

bool QEventTransition.event (self, QEvent e)

Reimplemented from QObject.event().

QObject QEventTransition.eventSource (self)

bool QEventTransition.eventTest (self, QEvent event)

Reimplemented from QAbstractTransition.eventTest().

QEvent.Type QEventTransition.eventType (self)

QEventTransition.onTransition (self, QEvent event)

Reimplemented from QAbstractTransition.onTransition().

QEventTransition.setEventSource (self, QObject object)

QEventTransition.setEventType (self, QEvent.Type type)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qextensionfactory.html0000644000076500000240000002403312536324525022141 0ustar philstaff00000000000000 QExtensionFactory Class Reference
  Home · All Classes · Modules

QExtensionFactory Class Reference
[QtDesigner module]

The QExtensionFactory class allows you to create a factory that is able to make instances of custom extensions in Qt Designer. More...

Inherits QObject and QAbstractExtensionFactory.

Methods


Detailed Description

The QExtensionFactory class allows you to create a factory that is able to make instances of custom extensions in Qt Designer.

In Qt Designer the extensions are not created until they are required. For that reason, when implementing a custom extension, you must also create a QExtensionFactory, i.e. a class that is able to make an instance of your extension, and register it using Qt Designer's extension manager.

The QExtensionManager class provides extension management facilities for Qt Designer. When an extension is required, Qt Designer's extension manager will run through all its registered factories calling QExtensionFactory.createExtension() for each until the first one that is able to create a requested extension for the selected object, is found. This factory will then make an instance of the extension.

There are four available types of extensions in Qt Designer: QDesignerContainerExtension , QDesignerMemberSheetExtension, QDesignerPropertySheetExtension and QDesignerTaskMenuExtension. Qt Designer's behavior is the same whether the requested extension is associated with a multi page container, a member sheet, a property sheet or a task menu.

You can either create a new QExtensionFactory and reimplement the QExtensionFactory.createExtension() function. For example:

         QObject *ANewExtensionFactory.createExtension(QObject *object,
                 const QString &iid, QObject *parent) const
         {
             if (iid != Q_TYPEID(QDesignerContainerExtension))
                 return 0;

             if (MyCustomWidget *widget = qobject_cast<MyCustomWidget*>
                    (object))
                 return new MyContainerExtension(widget, parent);

             return 0;
         }

Or you can use an existing factory, expanding the QExtensionFactory.createExtension() function to make the factory able to create your extension as well. For example:

         QObject *AGeneralExtensionFactory.createExtension(QObject *object,
                 const QString &iid, QObject *parent) const
         {
             MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object);

             if (widget && (iid == Q_TYPEID(QDesignerTaskMenuExtension))) {
                 return new MyTaskMenuExtension(widget, parent);

             } else if (widget && (iid == Q_TYPEID(QDesignerContainerExtension))) {
                 return new MyContainerExtension(widget, parent);

             } else {
                 return 0;
             }
         }

For a complete example using the QExtensionFactory class, see the Task Menu Extension example. The example shows how to create a custom widget plugin for Qt Designer, and how to to use the QDesignerTaskMenuExtension class to add custom items to Qt Designer's task menu.


Method Documentation

QExtensionFactory.__init__ (self, QExtensionManager parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an extension factory with the given parent.

QObject QExtensionFactory.createExtension (self, QObject object, QString iid, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an extension specified by iid for the given object. The extension object is created as a child of the specified parent.

See also extension().

QObject QExtensionFactory.extension (self, QObject object, QString iid)

Reimplemented from QAbstractExtensionFactory.extension().

Returns the extension specified by iid for the given object.

See also createExtension().

QExtensionManager QExtensionFactory.extensionManager (self)

Returns the extension manager for the extension factory.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qextensionmanager.html0000644000076500000240000002016312536324525022104 0ustar philstaff00000000000000 QExtensionManager Class Reference
  Home · All Classes · Modules

QExtensionManager Class Reference
[QtDesigner module]

The QExtensionManager class provides extension management facilities for Qt Designer. More...

Inherits QObject and QAbstractExtensionManager.

Methods

  • __init__ (self, QObject parent = None)
  • QObject extension (self, QObject object, QString iid)
  • registerExtensions (self, QAbstractExtensionFactory factory, QString iid = QString())
  • unregisterExtensions (self, QAbstractExtensionFactory factory, QString iid = QString())

Detailed Description

The QExtensionManager class provides extension management facilities for Qt Designer.

In Qt Designer the extensions are not created until they are required. For that reason, when implementing an extension, you must also create a QExtensionFactory, i.e a class that is able to make an instance of your extension, and register it using Qt Designer's extension manager.

The registration of an extension factory is typically made in the QDesignerCustomWidgetInterface.initialize() function:

         void MyPlugin.initialize(QDesignerFormEditorInterface *formEditor)
         {
             if (initialized)
                 return;

             QExtensionManager *manager = formEditor->extensionManager();
             Q_ASSERT(manager != 0);

             manager->registerExtensions(new MyExtensionFactory(manager),
                                         Q_TYPEID(QDesignerTaskMenuExtension));

             initialized = true;
         }

The QExtensionManager is not intended to be instantiated directly. You can retrieve an interface to Qt Designer's extension manager using the QDesignerFormEditorInterface.extensionManager() function. A pointer to Qt Designer's current QDesignerFormEditorInterface object (formEditor in the example above) is provided by the QDesignerCustomWidgetInterface.initialize() function's parameter. When implementing a custom widget plugin, you must subclass the QDesignerCustomWidgetInterface to expose your plugin to Qt Designer.

Then, when an extension is required, Qt Designer's extension manager will run through all its registered factories calling QExtensionFactory.createExtension() for each until the first one that is able to create the requested extension for the selected object, is found. This factory will then make an instance of the extension.

There are four available types of extensions in Qt Designer: QDesignerContainerExtension , QDesignerMemberSheetExtension, QDesignerPropertySheetExtension and QDesignerTaskMenuExtension. Qt Designer's behavior is the same whether the requested extension is associated with a container, a member sheet, a property sheet or a task menu.

For a complete example using the QExtensionManager class, see the Task Menu Extension example. The example shows how to create a custom widget plugin for Qt Designer, and how to to use the QDesignerTaskMenuExtension class to add custom items to Qt Designer's task menu.


Method Documentation

QExtensionManager.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an extension manager with the given parent.

QObject QExtensionManager.extension (self, QObject object, QString iid)

Reimplemented from QAbstractExtensionManager.extension().

Returns the extension specified by iid, for the given object.

QExtensionManager.registerExtensions (self, QAbstractExtensionFactory factory, QString iid = QString())

Reimplemented from QAbstractExtensionManager.registerExtensions().

Register the extension specified by the given factory and extension identifier iid.

QExtensionManager.unregisterExtensions (self, QAbstractExtensionFactory factory, QString iid = QString())

Reimplemented from QAbstractExtensionManager.unregisterExtensions().

Unregister the extension specified by the given factory and extension identifier iid.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfile-filehandleflags.html0000644000076500000240000001414112536324472022562 0ustar philstaff00000000000000 QFile.FileHandleFlags Class Reference
  Home · All Classes · Modules

QFile.FileHandleFlags Class Reference
[QtCore module]

Methods

Special Methods

  • FileHandleFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, FileHandleFlags f)
  • FileHandleFlags __iand__ (self, int mask)
  • int __int__ (self)
  • FileHandleFlags __invert__ (self)
  • FileHandleFlags __ior__ (self, FileHandleFlags f)
  • FileHandleFlags __ixor__ (self, FileHandleFlags f)
  • bool __ne__ (self, FileHandleFlags f)
  • FileHandleFlags __or__ (self, FileHandleFlags f)
  • FileHandleFlags __or__ (self, int f)
  • FileHandleFlags __xor__ (self, FileHandleFlags f)
  • FileHandleFlags __xor__ (self, int f)

Detailed Description


Method Documentation

FileHandleFlags.__init__ (self, FileHandleFlags)

FileHandleFlags.__init__ (self, int)

FileHandleFlags.__init__ (self)

FileHandleFlags FileHandleFlags.__and__ (self, int mask)

int FileHandleFlags.__bool__ (self)

bool FileHandleFlags.__eq__ (self, FileHandleFlags f)

FileHandleFlags FileHandleFlags.__iand__ (self, int mask)

int FileHandleFlags.__int__ (self)

FileHandleFlags FileHandleFlags.__invert__ (self)

FileHandleFlags FileHandleFlags.__ior__ (self, FileHandleFlags f)

FileHandleFlags FileHandleFlags.__ixor__ (self, FileHandleFlags f)

bool FileHandleFlags.__ne__ (self, FileHandleFlags f)

FileHandleFlags FileHandleFlags.__or__ (self, FileHandleFlags f)

FileHandleFlags FileHandleFlags.__or__ (self, int f)

FileHandleFlags FileHandleFlags.__xor__ (self, FileHandleFlags f)

FileHandleFlags FileHandleFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfile-permissions.html0000644000076500000240000001364612536324472022036 0ustar philstaff00000000000000 QFile.Permissions Class Reference
  Home · All Classes · Modules

QFile.Permissions Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

Permission may be used whenever Permissions is expected.


Method Documentation

Permissions.__init__ (self, Permissions)

Permissions.__init__ (self, int)

Permissions.__init__ (self)

Permissions Permissions.__and__ (self, int mask)

int Permissions.__bool__ (self)

bool Permissions.__eq__ (self, Permissions f)

Permissions Permissions.__iand__ (self, int mask)

int Permissions.__int__ (self)

Permissions Permissions.__invert__ (self)

Permissions Permissions.__ior__ (self, Permissions f)

Permissions Permissions.__ixor__ (self, Permissions f)

bool Permissions.__ne__ (self, Permissions f)

Permissions Permissions.__or__ (self, Permissions f)

Permissions Permissions.__or__ (self, int f)

Permissions Permissions.__xor__ (self, Permissions f)

Permissions Permissions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfile.html0000644000076500000240000013352212536324472017461 0ustar philstaff00000000000000 QFile Class Reference
  Home · All Classes · Modules

QFile Class Reference
[QtCore module]

The QFile class provides an interface for reading from and writing to files. More...

Inherits QIODevice.

Inherited by QTemporaryFile.

Types

Methods

Static Methods

  • bool copy (QString fileName, QString newName)
  • QString decodeName (QByteArray localFileName)
  • QString decodeName (str localFileName)
  • QByteArray encodeName (QString fileName)
  • bool exists (QString fileName)
  • bool link (QString oldname, QString newName)
  • Permissions permissions (QString filename)
  • QString readLink (QString fileName)
  • bool remove (QString fileName)
  • bool rename (QString oldName, QString newName)
  • bool resize (QString filename, int sz)
  • bool setPermissions (QString filename, Permissions permissionSpec)
  • QString symLinkTarget (QString fileName)

Detailed Description

The QFile class provides an interface for reading from and writing to files.

QFile is an I/O device for reading and writing text and binary files and resources. A QFile may be used by itself or, more conveniently, with a QTextStream or QDataStream.

The file name is usually passed in the constructor, but it can be set at any time using setFileName(). QFile expects the file separator to be '/' regardless of operating system. The use of other separators (e.g., '\') is not supported.

You can check for a file's existence using exists(), and remove a file using remove(). (More advanced file system related operations are provided by QFileInfo and QDir.)

The file is opened with open(), closed with close(), and flushed with flush(). Data is usually read and written using QDataStream or QTextStream, but you can also call the QIODevice-inherited functions read(), readLine(), readAll(), write(). QFile also inherits getChar(), putChar(), and ungetChar(), which work one character at a time.

The size of the file is returned by size(). You can get the current file position using pos(), or move to a new file position using seek(). If you've reached the end of the file, atEnd() returns true.

Reading Files Directly

The following example reads a text file line by line:

     QFile file("in.txt");
     if (!file.open(QIODevice.ReadOnly | QIODevice.Text))
         return;

     while (!file.atEnd()) {
         QByteArray line = file.readLine();
         process_line(line);
     }

The QIODevice.Text flag passed to open() tells Qt to convert Windows-style line terminators ("\r\n") into C++-style terminators ("\n"). By default, QFile assumes binary, i.e. it doesn't perform any conversion on the bytes stored in the file.

Using Streams to Read Files

The next example uses QTextStream to read a text file line by line:

     QFile file("in.txt");
     if (!file.open(QIODevice.ReadOnly | QIODevice.Text))
         return;

     QTextStream in(&file);
     while (!in.atEnd()) {
         QString line = in.readLine();
         process_line(line);
     }

QTextStream takes care of converting the 8-bit data stored on disk into a 16-bit Unicode QString. By default, it assumes that the user system's local 8-bit encoding is used (e.g., ISO 8859-1 for most of Europe; see QTextCodec.codecForLocale() for details). This can be changed using setCodec().

To write text, we can use operator<<(), which is overloaded to take a QTextStream on the left and various data types (including QString) on the right:

     QFile file("out.txt");
     if (!file.open(QIODevice.WriteOnly | QIODevice.Text))
         return;

     QTextStream out(&file);
     out << "The magic number is: " << 49 << "\n";

QDataStream is similar, in that you can use operator<<() to write data and operator>>() to read it back. See the class documentation for details.

When you use QFile, QFileInfo, and QDir to access the file system with Qt, you can use Unicode file names. On Unix, these file names are converted to an 8-bit encoding. If you want to use standard C++ APIs (<cstdio> or <iostream>) or platform-specific APIs to access files instead of QFile, you can use the encodeName() and decodeName() functions to convert between Unicode file names and 8-bit file names.

On Unix, there are some special system files (e.g. in /proc) for which size() will always return 0, yet you may still be able to read more data from such a file; the data is generated in direct response to you calling read(). In this case, however, you cannot use atEnd() to determine if there is more data to read (since atEnd() will return true for a file that claims to have size 0). Instead, you should either call readAll(), or call read() or readLine() repeatedly until no more data can be read. The next example uses QTextStream to read /proc/modules line by line:

     QFile file("/proc/modules");
     if (!file.open(QIODevice.ReadOnly | QIODevice.Text))
         return;

     QTextStream in(&file);
     QString line = in.readLine();
     while (!line.isNull()) {
         process_line(line);
         line = in.readLine();
     }

Signals

Unlike other QIODevice implementations, such as QTcpSocket, QFile does not emit the aboutToClose(), bytesWritten(), or readyRead() signals. This implementation detail means that QFile is not suitable for reading and writing certain types of files, such as device files on Unix platforms.

Platform Specific Issues

File permissions are handled differently on Linux/Mac OS X and Windows. In a non writable directory on Linux, files cannot be created. This is not always the case on Windows, where, for instance, the 'My Documents' directory usually is not writable, but it is still possible to create files in it.


Type Documentation

QFile.FileError

This enum describes the errors that may be returned by the error() function.

Constant Value Description
QFile.NoError 0 No error occurred.
QFile.ReadError 1 An error occurred when reading from the file.
QFile.WriteError 2 An error occurred when writing to the file.
QFile.FatalError 3 A fatal error occurred.
QFile.ResourceError 4  
QFile.OpenError 5 The file could not be opened.
QFile.AbortError 6 The operation was aborted.
QFile.TimeOutError 7 A timeout occurred.
QFile.UnspecifiedError 8 An unspecified error occurred.
QFile.RemoveError 9 The file could not be removed.
QFile.RenameError 10 The file could not be renamed.
QFile.PositionError 11 The position in the file could not be changed.
QFile.ResizeError 12 The file could not be resized.
QFile.PermissionsError 13 The file could not be accessed.
QFile.CopyError 14 The file could not be copied.

QFile.FileHandleFlag

This enum is used when opening a file to specify additional options which only apply to files and not to a generic QIODevice.

Constant Value Description
QFile.AutoCloseHandle 0x0001 The file handle passed into open() should be closed by close(), the default behaviour is that close just flushes the file and the application is responsible for closing the file handle. When opening a file by name, this flag is ignored as Qt always "owns" the file handle and must close it.
QFile.DontCloseHandle 0 The file handle passed into open() will not be closed by Qt. The application must ensure that close() is called.

This enum was introduced or modified in Qt 4.8.

The FileHandleFlags type is a typedef for QFlags<FileHandleFlag>. It stores an OR combination of FileHandleFlag values.

QFile.MemoryMapFlags

This enum describes special options that may be used by the map() function.

Constant Value Description
QFile.NoOptions 0 No options.

This enum was introduced or modified in Qt 4.4.

QFile.Permission

This enum is used by the permission() function to report the permissions and ownership of a file. The values may be OR-ed together to test multiple permissions and ownership values.

Constant Value Description
QFile.ReadOwner 0x4000 The file is readable by the owner of the file.
QFile.WriteOwner 0x2000 The file is writable by the owner of the file.
QFile.ExeOwner 0x1000 The file is executable by the owner of the file.
QFile.ReadUser 0x0400 The file is readable by the user.
QFile.WriteUser 0x0200 The file is writable by the user.
QFile.ExeUser 0x0100 The file is executable by the user.
QFile.ReadGroup 0x0040 The file is readable by the group.
QFile.WriteGroup 0x0020 The file is writable by the group.
QFile.ExeGroup 0x0010 The file is executable by the group.
QFile.ReadOther 0x0004 The file is readable by anyone.
QFile.WriteOther 0x0002 The file is writable by anyone.
QFile.ExeOther 0x0001 The file is executable by anyone.

Warning: Because of differences in the platforms supported by Qt, the semantics of ReadUser, WriteUser and ExeUser are platform-dependent: On Unix, the rights of the owner of the file are returned and on Windows the rights of the current user are returned. This behavior might change in a future Qt version.

Note that Qt does not by default check for permissions on NTFS file systems, as this may decrease the performance of file handling considerably. It is possible to force permission checking on NTFS by including the following code in your source:

 extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;

Permission checking is then turned on and off by incrementing and decrementing qt_ntfs_permission_lookup by 1.

 qt_ntfs_permission_lookup++; // turn checking on
 qt_ntfs_permission_lookup--; // turn it off again

The Permissions type is a typedef for QFlags<Permission>. It stores an OR combination of Permission values.


Method Documentation

QFile.__init__ (self)

Constructs a new file object to represent the file with the given name.

QFile.__init__ (self, QString name)

QFile.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new file object with the given parent.

QFile.__init__ (self, QString name, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new file object with the given parent to represent the file with the specified name.

bool QFile.atEnd (self)

Reimplemented from QIODevice.atEnd().

Returns true if the end of the file has been reached; otherwise returns false.

For regular empty files on Unix (e.g. those in /proc), this function returns true, since the file system reports that the size of such a file is 0. Therefore, you should not depend on atEnd() when reading data from such a file, but rather call read() until no more data can be read.

QFile.close (self)

Reimplemented from QIODevice.close().

Calls QFile.flush() and closes the file. Errors from flush are ignored.

See also QIODevice.close().

bool QFile.copy (self, QString newName)

Copies the file currently specified by fileName() to a file called newName. Returns true if successful; otherwise returns false.

Note that if a file with the name newName already exists, copy() returns false (i.e. QFile will not overwrite it).

The source file is closed before it is copied.

See also setFileName().

bool QFile.copy (QString fileName, QString newName)

This is an overloaded function.

Copies the file fileName to newName. Returns true if successful; otherwise returns false.

If a file with the name newName already exists, copy() returns false (i.e., QFile will not overwrite it).

See also rename().

QString QFile.decodeName (QByteArray localFileName)

This does the reverse of QFile.encodeName() using localFileName.

See also setDecodingFunction() and encodeName().

QString QFile.decodeName (str localFileName)

This is an overloaded function.

Returns the Unicode version of the given localFileName. See encodeName() for details.

QByteArray QFile.encodeName (QString fileName)

By default, this function converts fileName to the local 8-bit encoding determined by the user's locale. This is sufficient for file names that the user chooses. File names hard-coded into the application should only use 7-bit ASCII filename characters.

See also decodeName() and setEncodingFunction().

FileError QFile.error (self)

Returns the file error status.

The I/O device status returns an error code. For example, if open() returns false, or a read/write operation returns -1, this function can be called to find out the reason why the operation failed.

See also unsetError().

bool QFile.exists (self)

Returns true if the file specified by fileName exists; otherwise returns false.

bool QFile.exists (QString fileName)

This is an overloaded function.

Returns true if the file specified by fileName() exists; otherwise returns false.

See also fileName() and setFileName().

QAbstractFileEngine QFile.fileEngine (self)

QString QFile.fileName (self)

Returns the name set by setFileName() or to the QFile constructors.

See also setFileName() and QFileInfo.fileName().

bool QFile.flush (self)

Flushes any buffered data to the file. Returns true if successful; otherwise returns false.

int QFile.handle (self)

Returns the file handle of the file.

This is a small positive integer, suitable for use with C library functions such as fdopen() and fcntl(). On systems that use file descriptors for sockets (i.e. Unix systems, but not Windows) the handle can be used with QSocketNotifier as well.

If the file is not open, or there is an error, handle() returns -1.

This function is not supported on Windows CE.

On Symbian, this function returns -1 if the file was opened normally, as Symbian OS native file handles do not fit in an int, and are incompatible with C library functions that the handle would be used for. If the file was opened using the overloads that take an open C library file handle / file descriptor, then this function returns that same handle.

See also QSocketNotifier.

bool QFile.isSequential (self)

Reimplemented from QIODevice.isSequential().

Returns true if the file can only be manipulated sequentially; otherwise returns false.

Most files support random-access, but some special files may not.

See also QIODevice.isSequential().

bool QFile.link (self, QString newName)

Creates a link named linkName that points to the file currently specified by fileName(). What a link is depends on the underlying filesystem (be it a shortcut on Windows or a symbolic link on Unix). Returns true if successful; otherwise returns false.

This function will not overwrite an already existing entity in the file system; in this case, link() will return false and set error() to return RenameError.

Note: To create a valid link on Windows, linkName must have a .lnk file extension.

Note: Symbian filesystem does not support links.

See also setFileName().

bool QFile.link (QString oldname, QString newName)

This is an overloaded function.

Creates a link named linkName that points to the file fileName. What a link is depends on the underlying filesystem (be it a shortcut on Windows or a symbolic link on Unix). Returns true if successful; otherwise returns false.

See also link().

sip.voidptr QFile.map (self, int offset, int size, MemoryMapFlags flags = QFile.NoOptions)

Maps size bytes of the file into memory starting at offset. A file should be open for a map to succeed but the file does not need to stay open after the memory has been mapped. When the QFile is destroyed or a new file is opened with this object, any maps that have not been unmapped will automatically be unmapped.

Any mapping options can be passed through flags.

Returns a pointer to the memory or 0 if there is an error.

Note: On Windows CE 5.0 the file will be closed before mapping occurs.

This function was introduced in Qt 4.4.

See also unmap() and QAbstractFileEngine.supportsExtension().

bool QFile.open (self, QIODevice.OpenMode flags)

Reimplemented from QIODevice.open().

Opens the file using OpenMode mode, returning true if successful; otherwise false.

The mode must be QIODevice.ReadOnly, QIODevice.WriteOnly, or QIODevice.ReadWrite. It may also have additional flags, such as QIODevice.Text and QIODevice.Unbuffered.

Note: In WriteOnly or ReadWrite mode, if the relevant file does not already exist, this function will try to create a new file before opening it.

See also QIODevice.OpenMode and setFileName().

bool QFile.open (self, int fd, QIODevice.OpenMode flags)

bool QFile.open (self, int fd, QIODevice.OpenMode flags, FileHandleFlags handleFlags)

Permissions QFile.permissions (self)

Returns the complete OR-ed together combination of QFile.Permission for the file.

See also setPermissions() and setFileName().

Permissions QFile.permissions (QString filename)

This is an overloaded function.

Returns the complete OR-ed together combination of QFile.Permission for fileName.

int QFile.pos (self)

Reimplemented from QIODevice.pos().

str QFile.readData (self, int maxlen)

Reimplemented from QIODevice.readData().

str QFile.readLineData (self, int maxlen)

Reimplemented from QIODevice.readLineData().

QString QFile.readLink (self)

QString QFile.readLink (QString fileName)

bool QFile.remove (self)

Removes the file specified by fileName(). Returns true if successful; otherwise returns false.

The file is closed before it is removed.

See also setFileName().

bool QFile.remove (QString fileName)

This is an overloaded function.

Removes the file specified by the fileName given.

Returns true if successful; otherwise returns false.

See also remove().

bool QFile.rename (self, QString newName)

Renames the file currently specified by fileName() to newName. Returns true if successful; otherwise returns false.

If a file with the name newName already exists, rename() returns false (i.e., QFile will not overwrite it).

The file is closed before it is renamed.

See also setFileName().

bool QFile.rename (QString oldName, QString newName)

This is an overloaded function.

Renames the file oldName to newName. Returns true if successful; otherwise returns false.

If a file with the name newName already exists, rename() returns false (i.e., QFile will not overwrite it).

See also rename().

bool QFile.resize (self, int sz)

Sets the file size (in bytes) sz. Returns true if the file if the resize succeeds; false otherwise. If sz is larger than the file currently is the new bytes will be set to 0, if sz is smaller the file is simply truncated.

See also size() and setFileName().

bool QFile.resize (QString filename, int sz)

This is an overloaded function.

Sets fileName to size (in bytes) sz. Returns true if the file if the resize succeeds; false otherwise. If sz is larger than fileName currently is the new bytes will be set to 0, if sz is smaller the file is simply truncated.

See also resize().

bool QFile.seek (self, int offset)

Reimplemented from QIODevice.seek().

For random-access devices, this function sets the current position to pos, returning true on success, or false if an error occurred. For sequential devices, the default behavior is to do nothing and return false.

Seeking beyond the end of a file: If the position is beyond the end of a file, then seek() shall not immediately extend the file. If a write is performed at this position, then the file shall be extended. The content of the file between the previous end of file and the newly written data is UNDEFINED and varies between platforms and file systems.

QFile.setFileName (self, QString name)

Sets the name of the file. The name can have no path, a relative path, or an absolute path.

Do not call this function if the file has already been opened.

If the file name has no path or a relative path, the path used will be the application's current directory path at the time of the open() call.

Example:

 QFile file;
 QDir.setCurrent("/tmp");
 file.setFileName("readme.txt");
 QDir.setCurrent("/home");
 file.open(QIODevice.ReadOnly);      // opens "/home/readme.txt" under Unix

Note that the directory separator "/" works for all operating systems supported by Qt.

See also fileName(), QFileInfo, and QDir.

bool QFile.setPermissions (self, Permissions permissionSpec)

Sets the permissions for the file to the permissions specified. Returns true if successful, or false if the permissions cannot be modified.

See also permissions() and setFileName().

bool QFile.setPermissions (QString filename, Permissions permissionSpec)

This is an overloaded function.

Sets the permissions for fileName file to permissions.

int QFile.size (self)

Reimplemented from QIODevice.size().

Returns the size of the file.

For regular empty files on Unix (e.g. those in /proc), this function returns 0; the contents of such a file are generated on demand in response to you calling read().

QString QFile.symLinkTarget (self)

Returns the absolute path of the file or directory referred to by the symlink (or shortcut on Windows) specified by fileName, or returns an empty string if the fileName does not correspond to a symbolic link.

This name may not represent an existing file; it is only a string. QFile.exists() returns true if the symlink points to an existing file.

This function was introduced in Qt 4.2.

QString QFile.symLinkTarget (QString fileName)

This is an overloaded function.

Returns the absolute path of the file or directory a symlink (or shortcut on Windows) points to, or a an empty string if the object isn't a symbolic link.

This name may not represent an existing file; it is only a string. QFile.exists() returns true if the symlink points to an existing file.

This function was introduced in Qt 4.2.

See also fileName() and setFileName().

bool QFile.unmap (self, sip.voidptr address)

Unmaps the memory address.

Returns true if the unmap succeeds; false otherwise.

This function was introduced in Qt 4.4.

See also map() and QAbstractFileEngine.supportsExtension().

QFile.unsetError (self)

Sets the file's error to QFile.NoError.

See also error().

int QFile.writeData (self, str data)

Reimplemented from QIODevice.writeData().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfiledialog-options.html0000644000076500000240000001341412536324503022322 0ustar philstaff00000000000000 QFileDialog.Options Class Reference
  Home · All Classes · Modules

QFileDialog.Options Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

Option may be used whenever Options is expected.


Method Documentation

Options.__init__ (self, Options)

Options.__init__ (self, int)

Options.__init__ (self)

Options Options.__and__ (self, int mask)

int Options.__bool__ (self)

bool Options.__eq__ (self, Options f)

Options Options.__iand__ (self, int mask)

int Options.__int__ (self)

Options Options.__invert__ (self)

Options Options.__ior__ (self, Options f)

Options Options.__ixor__ (self, Options f)

bool Options.__ne__ (self, Options f)

Options Options.__or__ (self, Options f)

Options Options.__or__ (self, int f)

Options Options.__xor__ (self, Options f)

Options Options.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfiledialog.html0000644000076500000240000017707312536324503020645 0ustar philstaff00000000000000 QFileDialog Class Reference
  Home · All Classes · Modules

QFileDialog Class Reference
[QtGui module]

The QFileDialog class provides a dialog that allow users to select files or directories. More...

Inherits QDialog.

Types

  • enum AcceptMode { AcceptOpen, AcceptSave }
  • enum DialogLabel { LookIn, FileName, FileType, Accept, Reject }
  • enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly }
  • enum Option { ShowDirsOnly, DontResolveSymlinks, DontConfirmOverwrite, DontUseSheet, ..., HideNameFilterDetails }
  • class Options
  • enum ViewMode { Detail, List }

Methods

Static Methods

  • QString getExistingDirectory (QWidget parent = None, QString caption = QString(), QString directory = QString(), Options options = QFileDialog.ShowDirsOnly)
  • QString getOpenFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), Options options = 0)
  • QString getOpenFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString selectedFilter = None, Options options = 0)
  • (QString, QString) getOpenFileNameAndFilter (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString initialFilter = QString(), Options options = 0)
  • QStringList getOpenFileNames (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), Options options = 0)
  • QStringList getOpenFileNames (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString selectedFilter = None, Options options = 0)
  • (QString, QString) getOpenFileNamesAndFilter (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString initialFilter = QString(), Options options = 0)
  • QString getSaveFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), Options options = 0)
  • QString getSaveFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString selectedFilter = None, Options options = 0)
  • (QString, QString) getSaveFileNameAndFilter (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString initialFilter = QString(), Options options = 0)

Qt Signals


Detailed Description

The QFileDialog class provides a dialog that allow users to select files or directories.

The QFileDialog class enables a user to traverse the file system in order to select one or many files or a directory.

The easiest way to create a QFileDialog is to use the static functions. On Windows, Mac OS X, KDE and GNOME, these static functions will call the native file dialog when possible.

 fileName = QFileDialog.getOpenFileName(this,
     tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));

In the above example, a modal QFileDialog is created using a static function. The dialog initially displays the contents of the "/home/jana" directory, and displays files matching the patterns given in the string "Image Files (*.png *.jpg *.bmp)". The parent of the file dialog is set to this, and the window title is set to "Open Image".

If you want to use multiple filters, separate each one with two semicolons. For example:

 "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

You can create your own QFileDialog without using the static functions. By calling setFileMode(), you can specify what the user must select in the dialog:

 QFileDialog dialog(this);
 dialog.setFileMode(QFileDialog.AnyFile);

In the above example, the mode of the file dialog is set to AnyFile, meaning that the user can select any file, or even specify a file that doesn't exist. This mode is useful for creating a "Save As" file dialog. Use ExistingFile if the user must select an existing file, or Directory if only a directory may be selected. See the QFileDialog.FileMode enum for the complete list of modes.

The fileMode property contains the mode of operation for the dialog; this indicates what types of objects the user is expected to select. Use setNameFilter() to set the dialog's file filter. For example:

 dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)"));

In the above example, the filter is set to "Images (*.png *.xpm *.jpg)", this means that only files with the extension png, xpm, or jpg will be shown in the QFileDialog. You can apply several filters by using setNameFilters(). Use selectNameFilter() to select one of the filters you've given as the file dialog's default filter.

The file dialog has two view modes: List and Detail. List presents the contents of the current directory as a list of file and directory names. Detail also displays a list of file and directory names, but provides additional information alongside each name, such as the file size and modification date. Set the mode with setViewMode():

 dialog.setViewMode(QFileDialog.Detail);

The last important function you will need to use when creating your own file dialog is selectedFiles().

 QStringList fileNames;
 if (dialog.exec())
     fileNames = dialog.selectedFiles();

In the above example, a modal file dialog is created and shown. If the user clicked OK, the file they selected is put in fileName.

The dialog's working directory can be set with setDirectory(). Each file in the current directory can be selected using the selectFile() function.

The Standard Dialogs example shows how to use QFileDialog as well as other built-in Qt dialogs.


Type Documentation

QFileDialog.AcceptMode

Constant Value
QFileDialog.AcceptOpen 0
QFileDialog.AcceptSave 1

QFileDialog.DialogLabel

Constant Value
QFileDialog.LookIn 0
QFileDialog.FileName 1
QFileDialog.FileType 2
QFileDialog.Accept 3
QFileDialog.Reject 4

QFileDialog.FileMode

This enum is used to indicate what the user may select in the file dialog; i.e. what the dialog will return if the user clicks OK.

Constant Value Description
QFileDialog.AnyFile 0 The name of a file, whether it exists or not.
QFileDialog.ExistingFile 1 The name of a single existing file.
QFileDialog.Directory 2 The name of a directory. Both files and directories are displayed.
QFileDialog.ExistingFiles 3 The names of zero or more existing files.

This value is obsolete since Qt 4.5:

Constant Value Description
QFileDialog.DirectoryOnly 4 Use Directory and setOption(ShowDirsOnly, true) instead.

See also setFileMode().

QFileDialog.Option

Constant Value Description
QFileDialog.ShowDirsOnly 0x00000001 Only show directories in the file dialog. By default both files and directories are shown. (Valid only in the Directory file mode.)
QFileDialog.DontResolveSymlinks 0x00000002 Don't resolve symlinks in the file dialog. By default symlinks are resolved.
QFileDialog.DontConfirmOverwrite 0x00000004 Don't ask for confirmation if an existing file is selected. By default confirmation is requested.
QFileDialog.DontUseNativeDialog 0x00000010 Don't use the native file dialog. By default, the native file dialog is used unless you use a subclass of QFileDialog that contains the Q_OBJECT macro.
QFileDialog.ReadOnly 0x00000020 Indicates that the model is readonly.
QFileDialog.HideNameFilterDetails 0x00000040 Indicates if the file name filter details are hidden or not.
QFileDialog.DontUseSheet 0x00000008 In previous versions of Qt, the static functions would create a sheet by default if the static function was given a parent. This is no longer supported and does nothing in Qt 4.5, The static functions will always be an application modal dialog. If you want to use sheets, use QFileDialog.open() instead.
QFileDialog.DontUseCustomDirectoryIcons 0x00000080 Always use the default directory icon. Some platforms allow the user to set a different icon. Custom icon lookup cause a big performance impact over network or removable drives. Setting this will affect the behavior of the icon provider. This enum value was added in Qt 4.8.6.

The Options type is a typedef for QFlags<Option>. It stores an OR combination of Option values.

QFileDialog.ViewMode

This enum describes the view mode of the file dialog; i.e. what information about each file will be displayed.

Constant Value Description
QFileDialog.Detail 0 Displays an icon, a name, and details for each item in the directory.
QFileDialog.List 1 Displays only an icon and a name for each item in the directory.

See also setViewMode().


Method Documentation

QFileDialog.__init__ (self, QWidget parent, Qt.WindowFlags f)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a file dialog with the given parent and widget flags.

QFileDialog.__init__ (self, QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString())

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a file dialog with the given parent and caption that initially displays the contents of the specified directory. The contents of the directory are filtered before being shown in the dialog, using a semicolon-separated list of filters specified by filter.

QFileDialog.accept (self)

Reimplemented from QDialog.accept().

AcceptMode QFileDialog.acceptMode (self)

QFileDialog.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

bool QFileDialog.confirmOverwrite (self)

QString QFileDialog.defaultSuffix (self)

QDir QFileDialog.directory (self)

Returns the directory currently being displayed in the dialog.

See also setDirectory().

QFileDialog.done (self, int result)

Reimplemented from QDialog.done().

FileMode QFileDialog.fileMode (self)

QDir.Filters QFileDialog.filter (self)

Returns the filter that is used when displaying files.

This function was introduced in Qt 4.4.

See also setFilter().

QStringList QFileDialog.filters (self)

QString QFileDialog.getExistingDirectory (QWidget parent = None, QString caption = QString(), QString directory = QString(), Options options = QFileDialog.ShowDirsOnly)

This is a convenience static function that will return an existing directory selected by the user.

 QString dir = QFileDialog.getExistingDirectory(this, tr("Open Directory"),
                                                 "/home",
                                                 QFileDialog.ShowDirsOnly
                                                 | QFileDialog.DontResolveSymlinks);

This function creates a modal file dialog with the given parent widget. If parent is not 0, the dialog will be shown centered over the parent widget.

The dialog's working directory is set to dir, and the caption is set to caption. Either of these may be an empty string in which case the current directory and a default caption will be used respectively.

The options argument holds various options about how to run the dialog, see the QFileDialog.Option enum for more information on the flags you can pass. To ensure a native file dialog, ShowDirsOnly must be set.

On Windows, Mac OS X and Symbian^3, this static function will use the native file dialog and not a QFileDialog. On Windows CE, if the device has no native file dialog, a QFileDialog will be used.

On Unix/X11, the normal behavior of the file dialog is to resolve and follow symlinks. For example, if /usr/tmp is a symlink to /var/tmp, the file dialog will change to /var/tmp after entering /usr/tmp. If options includes DontResolveSymlinks, the file dialog will treat symlinks as regular directories.

On Windows the dialog will spin a blocking modal event loop that will not dispatch any QTimers, and if parent is not 0 then it will position the dialog just below the parent's title bar.

On Symbian^3 the options parameter is only used to define if the native file dialog is used.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFileDialog constructors.

See also getOpenFileName(), getOpenFileNames(), and getSaveFileName().

QString QFileDialog.getOpenFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), Options options = 0)

This is a convenience static function that returns an existing file selected by the user. If the user presses Cancel, it returns a null string.

 QString fileName = QFileDialog.getOpenFileName(this, tr("Open File"),
                                                 "/home",
                                                 tr("Images (*.png *.xpm *.jpg)"));

The function creates a modal file dialog with the given parent widget. If parent is not 0, the dialog will be shown centered over the parent widget.

The file dialog's working directory will be set to dir. If dir includes a file name, the file will be selected. Only files that match the given filter are shown. The filter selected is set to selectedFilter. The parameters dir, selectedFilter, and filter may be empty strings. If you want multiple filters, separate them with ';;', for example:

 "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

The options argument holds various options about how to run the dialog, see the QFileDialog.Option enum for more information on the flags you can pass.

The dialog's caption is set to caption. If caption is not specified then a default caption will be used.

On Windows, Mac OS X and Symbian^3, this static function will use the native file dialog and not a QFileDialog.

On Windows the dialog will spin a blocking modal event loop that will not dispatch any QTimers, and if parent is not 0 then it will position the dialog just below the parent's title bar.

On Unix/X11, the normal behavior of the file dialog is to resolve and follow symlinks. For example, if /usr/tmp is a symlink to /var/tmp, the file dialog will change to /var/tmp after entering /usr/tmp. If options includes DontResolveSymlinks, the file dialog will treat symlinks as regular directories.

On Symbian^3 the parameter selectedFilter has no meaning and the options parameter is only used to define if the native file dialog is used.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFileDialog constructors.

See also getOpenFileNames(), getSaveFileName(), and getExistingDirectory().

QString QFileDialog.getOpenFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString selectedFilter = None, Options options = 0)

(QString, QString) QFileDialog.getOpenFileNameAndFilter (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString initialFilter = QString(), Options options = 0)

QStringList QFileDialog.getOpenFileNames (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), Options options = 0)

This is a convenience static function that will return one or more existing files selected by the user.

 QStringList files = QFileDialog.getOpenFileNames(
                         this,
                         "Select one or more files to open",
                         "/home",
                         "Images (*.png *.xpm *.jpg)");

This function creates a modal file dialog with the given parent widget. If parent is not 0, the dialog will be shown centered over the parent widget.

The file dialog's working directory will be set to dir. If dir includes a file name, the file will be selected. The filter is set to filter so that only those files which match the filter are shown. The filter selected is set to selectedFilter. The parameters dir, selectedFilter and filter may be empty strings. If you need multiple filters, separate them with ';;', for instance:

 "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

The dialog's caption is set to caption. If caption is not specified then a default caption will be used.

On Windows, Mac OS X and Symbian^3, this static function will use the native file dialog and not a QFileDialog.

On Windows the dialog will spin a blocking modal event loop that will not dispatch any QTimers, and if parent is not 0 then it will position the dialog just below the parent's title bar.

On Unix/X11, the normal behavior of the file dialog is to resolve and follow symlinks. For example, if /usr/tmp is a symlink to /var/tmp, the file dialog will change to /var/tmp after entering /usr/tmp. The options argument holds various options about how to run the dialog, see the QFileDialog.Option enum for more information on the flags you can pass.

Note: If you want to iterate over the list of files, you should iterate over a copy. For example:

 QStringList list = files;
 QStringList.Iterator it = list.begin();
 while(it != list.end()) {
     myProcessing(*it);
     ++it;
 }

On Symbian^3 the parameter selectedFilter has no meaning and the options parameter is only used to define if the native file dialog is used. On Symbian^3, this function can only return a single filename.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFileDialog constructors.

See also getOpenFileName(), getSaveFileName(), and getExistingDirectory().

QStringList QFileDialog.getOpenFileNames (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString selectedFilter = None, Options options = 0)

(QString, QString) QFileDialog.getOpenFileNamesAndFilter (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString initialFilter = QString(), Options options = 0)

QString QFileDialog.getSaveFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), Options options = 0)

This is a convenience static function that will return a file name selected by the user. The file does not have to exist.

It creates a modal file dialog with the given parent widget. If parent is not 0, the dialog will be shown centered over the parent widget.

 QString fileName = QFileDialog.getSaveFileName(this, tr("Save File"),
                            "/home/jana/untitled.png",
                            tr("Images (*.png *.xpm *.jpg)"));

The file dialog's working directory will be set to dir. If dir includes a file name, the file will be selected. Only files that match the filter are shown. The filter selected is set to selectedFilter. The parameters dir, selectedFilter, and filter may be empty strings. Multiple filters are separated with ';;'. For instance:

 "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

The options argument holds various options about how to run the dialog, see the QFileDialog.Option enum for more information on the flags you can pass.

The default filter can be chosen by setting selectedFilter to the desired value.

The dialog's caption is set to caption. If caption is not specified, a default caption will be used.

On Windows, Mac OS X and Symbian^3, this static function will use the native file dialog and not a QFileDialog.

On Windows the dialog will spin a blocking modal event loop that will not dispatch any QTimers, and if parent is not 0 then it will position the dialog just below the parent's title bar. On Mac OS X, with its native file dialog, the filter argument is ignored.

On Unix/X11, the normal behavior of the file dialog is to resolve and follow symlinks. For example, if /usr/tmp is a symlink to /var/tmp, the file dialog will change to /var/tmp after entering /usr/tmp. If options includes DontResolveSymlinks the file dialog will treat symlinks as regular directories.

On Symbian^3 the parameters filter and selectedFilter have no meaning. The options parameter is only used to define if the native file dialog is used.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFileDialog constructors.

See also getOpenFileName(), getOpenFileNames(), and getExistingDirectory().

QString QFileDialog.getSaveFileName (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString selectedFilter = None, Options options = 0)

(QString, QString) QFileDialog.getSaveFileNameAndFilter (QWidget parent = None, QString caption = QString(), QString directory = QString(), QString filter = QString(), QString initialFilter = QString(), Options options = 0)

QStringList QFileDialog.history (self)

Returns the browsing history of the filedialog as a list of paths.

See also setHistory().

QFileIconProvider QFileDialog.iconProvider (self)

Returns the icon provider used by the filedialog.

See also setIconProvider().

bool QFileDialog.isNameFilterDetailsVisible (self)

bool QFileDialog.isReadOnly (self)

QAbstractItemDelegate QFileDialog.itemDelegate (self)

Returns the item delegate used to render the items in the views in the filedialog.

See also setItemDelegate().

QString QFileDialog.labelText (self, DialogLabel label)

Returns the text shown in the filedialog in the specified label.

See also setLabelText().

QStringList QFileDialog.nameFilters (self)

Returns the file type filters that are in operation on this file dialog.

This function was introduced in Qt 4.4.

See also setNameFilters().

QFileDialog.open (self)

This is an overloaded function.

This function connects one of its signals to the slot specified by receiver and member. The specific signal depends is filesSelected() if fileMode is ExistingFiles and fileSelected() if fileMode is anything else.

The signal will be disconnected from the slot when the dialog is closed.

This function was introduced in Qt 4.5.

QFileDialog.open (self, QObject receiver, SLOT()SLOT() member)

QFileDialog.open (self, callable receiver)

Options QFileDialog.options (self)

QAbstractProxyModel QFileDialog.proxyModel (self)

Returns the proxy model used by the file dialog. By default no proxy is set.

See also setProxyModel().

bool QFileDialog.resolveSymlinks (self)

bool QFileDialog.restoreState (self, QByteArray state)

Restores the dialogs's layout, history and current directory to the state specified.

Typically this is used in conjunction with QSettings to restore the size from a past session.

Returns false if there are errors

This function was introduced in Qt 4.3.

QByteArray QFileDialog.saveState (self)

Saves the state of the dialog's layout, history and current directory.

Typically this is used in conjunction with QSettings to remember the size for a future session. A version number is stored as part of the data.

This function was introduced in Qt 4.3.

QStringList QFileDialog.selectedFiles (self)

Returns a list of strings containing the absolute paths of the selected files in the dialog. If no files are selected, or the mode is not ExistingFiles or ExistingFile, selectedFiles() contains the current path in the viewport.

See also selectedNameFilter() and selectFile().

QString QFileDialog.selectedFilter (self)

QString QFileDialog.selectedNameFilter (self)

Returns the filter that the user selected in the file dialog.

This function was introduced in Qt 4.4.

See also selectedFiles().

QFileDialog.selectFile (self, QString filename)

Selects the given filename in the file dialog.

See also selectedFiles().

QFileDialog.selectFilter (self, QString filter)

QFileDialog.selectNameFilter (self, QString filter)

Sets the current file type filter. Multiple filters can be passed in filter by separating them with semicolons or spaces.

This function was introduced in Qt 4.4.

See also setNameFilter(), setNameFilters(), and selectedNameFilter().

QFileDialog.setAcceptMode (self, AcceptMode mode)

QFileDialog.setConfirmOverwrite (self, bool enabled)

QFileDialog.setDefaultSuffix (self, QString suffix)

QFileDialog.setDirectory (self, QString directory)

Sets the file dialog's current directory.

See also directory().

QFileDialog.setDirectory (self, QDir adirectory)

This is an overloaded function.

QFileDialog.setFileMode (self, FileMode mode)

QFileDialog.setFilter (self, QString filter)

Sets the filter used by the model to filters. The filter is used to specify the kind of files that should be shown.

This function was introduced in Qt 4.4.

See also filter().

QFileDialog.setFilter (self, QDir.Filters filters)

QFileDialog.setFilters (self, QStringList filters)

QFileDialog.setHistory (self, QStringList paths)

Sets the browsing history of the filedialog to contain the given paths.

See also history().

QFileDialog.setIconProvider (self, QFileIconProvider provider)

Sets the icon provider used by the filedialog to the specified provider.

See also iconProvider().

QFileDialog.setItemDelegate (self, QAbstractItemDelegate delegate)

Sets the item delegate used to render items in the views in the file dialog to the given delegate.

Warning: You should not share the same instance of a delegate between views. Doing so can cause incorrect or unintuitive editing behavior since each view connected to a given delegate may receive the closeEditor() signal, and attempt to access, modify or close an editor that has already been closed.

Note that the model used is QFileSystemModel. It has custom item data roles, which is described by the Roles enum. You can use a QFileIconProvider if you only want custom icons.

See also itemDelegate(), setIconProvider(), and QFileSystemModel.

QFileDialog.setLabelText (self, DialogLabel label, QString text)

Sets the text shown in the filedialog in the specified label.

See also labelText().

QFileDialog.setNameFilter (self, QString filter)

Sets the filter used in the file dialog to the given filter.

If filter contains a pair of parentheses containing one or more of anything*something, separated by spaces, then only the text contained in the parentheses is used as the filter. This means that these calls are all equivalent:

 dialog.setNameFilter("All C++ files (*.cpp *.cc *.C *.cxx *.c++)");
 dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++");

This function was introduced in Qt 4.4.

See also setNameFilters().

QFileDialog.setNameFilterDetailsVisible (self, bool enabled)

QFileDialog.setNameFilters (self, QStringList filters)

Sets the filters used in the file dialog.

 QStringList filters;
 filters << "Image files (*.png *.xpm *.jpg)"
         << "Text files (*.txt)"
         << "Any files (*)";

 QFileDialog dialog(this);
 dialog.setNameFilters(filters);
 dialog.exec_();

This function was introduced in Qt 4.4.

See also nameFilters().

QFileDialog.setOption (self, Option option, bool on = True)

Sets the given option to be enabled if on is true; otherwise, clears the given option.

This function was introduced in Qt 4.5.

See also options and testOption().

QFileDialog.setOptions (self, Options options)

QFileDialog.setProxyModel (self, QAbstractProxyModel model)

The model argument has it's ownership transferred to Qt.

Sets the model for the views to the given proxyModel. This is useful if you want to modify the underlying model; for example, to add columns, filter data or add drives.

Any existing proxy model will be removed, but not deleted. The file dialog will take ownership of the proxyModel.

This function was introduced in Qt 4.3.

See also proxyModel().

QFileDialog.setReadOnly (self, bool enabled)

QFileDialog.setResolveSymlinks (self, bool enabled)

QFileDialog.setSidebarUrls (self, list-of-QUrl urls)

Sets the urls that are located in the sidebar.

For instance:

     QList<QUrl> urls;
     urls << QUrl.fromLocalFile("/home/gvatteka/dev/qt-45")
          << QUrl.fromLocalFile(QDesktopServices.storageLocation(QDesktopServices.MusicLocation));

     QFileDialog dialog;
     dialog.setSidebarUrls(urls);
     dialog.setFileMode(QFileDialog.AnyFile);
     if(dialog.exec()) {
         // ...
     }

The file dialog will then look like this:

This function was introduced in Qt 4.3.

See also sidebarUrls().

QFileDialog.setViewMode (self, ViewMode mode)

QFileDialog.setVisible (self, bool visible)

Reimplemented from QWidget.setVisible().

list-of-QUrl QFileDialog.sidebarUrls (self)

Returns a list of urls that are currently in the sidebar

This function was introduced in Qt 4.3.

See also setSidebarUrls().

bool QFileDialog.testOption (self, Option option)

Returns true if the given option is enabled; otherwise, returns false.

This function was introduced in Qt 4.5.

See also options and setOption().

ViewMode QFileDialog.viewMode (self)


Qt Signal Documentation

void currentChanged (const QString&)

This is the default overload of this signal.

When the current file changes, this signal is emitted with the new file name as the path parameter.

See also filesSelected().

void directoryEntered (const QString&)

This is the default overload of this signal.

This signal is emitted when the user enters a directory.

This function was introduced in Qt 4.3.

void fileSelected (const QString&)

This is the default overload of this signal.

When the selection changes and the dialog is accepted, this signal is emitted with the (possibly empty) selected file.

See also currentChanged() and QDialog.Accepted.

void filesSelected (const QStringList&)

This is the default overload of this signal.

When the selection changes and the dialog is accepted, this signal is emitted with the (possibly empty) list of selected files.

See also currentChanged() and QDialog.Accepted.

void filterSelected (const QString&)

This is the default overload of this signal.

This signal is emitted when the user selects a filter.

This function was introduced in Qt 4.3.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfileiconprovider.html0000644000076500000240000001071712536324503022100 0ustar philstaff00000000000000 QFileIconProvider Class Reference
  Home · All Classes · Modules

QFileIconProvider Class Reference
[
QtGui module]

The QFileIconProvider class provides file icons for the QDirModel(obsolete) and the QFileSystemModel classes. More...

Types

  • enum IconType { Computer, Desktop, Trashcan, Network, ..., File }

Methods

  • __init__ (self)
  • QIcon icon (self, IconType type)
  • QIcon icon (self, QFileInfo info)
  • QString type (self, QFileInfo info)

Detailed Description

The QFileIconProvider class provides file icons for the QDirModel(obsolete) and the QFileSystemModel classes.


Type Documentation

QFileIconProvider.IconType

Constant Value
QFileIconProvider.Computer 0
QFileIconProvider.Desktop 1
QFileIconProvider.Trashcan 2
QFileIconProvider.Network 3
QFileIconProvider.Drive 4
QFileIconProvider.Folder 5
QFileIconProvider.File 6

Method Documentation

QFileIconProvider.__init__ (self)

Constructs a file icon provider.

QIcon QFileIconProvider.icon (self, IconType type)

Returns an icon set for the given type.

QIcon QFileIconProvider.icon (self, QFileInfo info)

Returns an icon for the file described by info.

QString QFileIconProvider.type (self, QFileInfo info)

Returns the type of the file described by info.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfileinfo.html0000644000076500000240000012673712536324472020347 0ustar philstaff00000000000000 QFileInfo Class Reference
  Home · All Classes · Modules

QFileInfo Class Reference
[QtCore module]

The QFileInfo class provides system-independent file information. More...

Methods

Special Methods

  • bool __eq__ (self, QFileInfo fileinfo)
  • bool __ne__ (self, QFileInfo fileinfo)

Detailed Description

The QFileInfo class provides system-independent file information.

QFileInfo provides information about a file's name and position (path) in the file system, its access rights and whether it is a directory or symbolic link, etc. The file's size and last modified/read times are also available. QFileInfo can also be used to obtain information about a Qt resource.

A QFileInfo can point to a file with either a relative or an absolute file path. Absolute file paths begin with the directory separator "/" (or with a drive specification on Windows). Relative file names begin with a directory name or a file name and specify a path relative to the current working directory. An example of an absolute path is the string "/tmp/quartz". A relative path might look like "src/fatlib". You can use the function isRelative() to check whether a QFileInfo is using a relative or an absolute file path. You can call the function makeAbsolute() to convert a relative QFileInfo's path to an absolute path.

The file that the QFileInfo works on is set in the constructor or later with setFile(). Use exists() to see if the file exists and size() to get its size.

The file's type is obtained with isFile(), isDir() and isSymLink(). The symLinkTarget() function provides the name of the file the symlink points to.

On Unix (including Mac OS X), the symlink has the same size() has the file it points to, because Unix handles symlinks transparently; similarly, opening a symlink using QFile effectively opens the link's target. For example:

 #ifdef Q_OS_UNIX

 QFileInfo info1("/home/bob/bin/untabify");
 info1.isSymLink();          // returns true
 info1.absoluteFilePath();   // returns "/home/bob/bin/untabify"
 info1.size();               // returns 56201
 info1.symLinkTarget();      // returns "/opt/pretty++/bin/untabify"

 QFileInfo info2(info1.symLinkTarget());
 info2.isSymLink();          // returns false
 info2.absoluteFilePath();   // returns "/opt/pretty++/bin/untabify"
 info2.size();               // returns 56201

 #endif

On Windows, symlinks (shortcuts) are .lnk files. The reported size() is that of the symlink (not the link's target), and opening a symlink using QFile opens the .lnk file. For example:

 #ifdef Q_OS_WIN

 QFileInfo info1("C:\\Documents and Settings\\Bob\\untabify.lnk");
 info1.isSymLink();          // returns true
 info1.absoluteFilePath();   // returns "C:/Documents and Settings/Bob/untabify.lnk"
 info1.size();               // returns 743
 info1.symLinkTarget();      // returns "C:/Pretty++/untabify"

 QFileInfo info2(info1.symLinkTarget());
 info2.isSymLink();          // returns false
 info2.absoluteFilePath();   // returns "C:/Pretty++/untabify"
 info2.size();               // returns 63942

 #endif

Elements of the file's name can be extracted with path() and fileName(). The fileName()'s parts can be extracted with baseName(), suffix() or completeSuffix(). QFileInfo objects to directories created by Qt classes will not have a trailing file separator. If you wish to use trailing separators in your own file info objects, just append one to the file name given to the constructors or setFile().

The file's dates are returned by created(), lastModified() and lastRead(). Information about the file's access permissions is obtained with isReadable(), isWritable() and isExecutable(). The file's ownership is available from owner(), ownerId(), group() and groupId(). You can examine a file's permissions and ownership in a single statement using the permission() function.

Performance Issues

Some of QFileInfo's functions query the file system, but for performance reasons, some functions only operate on the file name itself. For example: To return the absolute path of a relative file name, absolutePath() has to query the file system. The path() function, however, can work on the file name directly, and so it is faster.

Note: To speed up performance, QFileInfo caches information about the file.

To speed up performance, QFileInfo caches information about the file. Because files can be changed by other users or programs, or even by other parts of the same program, there is a function that refreshes the file information: refresh(). If you want to switch off a QFileInfo's caching and force it to access the file system every time you request information from it call setCaching(false).


Method Documentation

QFileInfo.__init__ (self)

Constructs an empty QFileInfo object.

Note that an empty QFileInfo object contain no file reference.

See also setFile().

QFileInfo.__init__ (self, QString file)

QFileInfo.__init__ (self, QFile file)

Constructs a new QFileInfo that gives information about the given file. The file can also include an absolute or relative path.

See also setFile(), isRelative(), QDir.setCurrent(), and QDir.isRelativePath().

QFileInfo.__init__ (self, QDir dir, QString file)

Constructs a new QFileInfo that gives information about file file.

If the file has a relative path, the QFileInfo will also have a relative path.

See also isRelative().

QFileInfo.__init__ (self, QFileInfo fileinfo)

Constructs a new QFileInfo that gives information about the given file in the directory dir.

If dir has a relative path, the QFileInfo will also have a relative path.

If file is an absolute path, then the directory specified by dir will be disregarded.

See also isRelative().

QDir QFileInfo.absoluteDir (self)

Returns the file's absolute path as a QDir object.

See also dir(), filePath(), fileName(), and isRelative().

QString QFileInfo.absoluteFilePath (self)

Returns an absolute path including the file name.

The absolute path name consists of the full path and the file name. On Unix this will always begin with the root, '/', directory. On Windows this will always begin 'D:/' where D is a drive letter, except for network shares that are not mapped to a drive letter, in which case the path will begin '//sharename/'. QFileInfo will uppercase drive letters. Note that QDir does not do this. The code snippet below shows this.

     QFileInfo fi("c:/temp/foo"); => fi.absoluteFilePath() => "C:/temp/foo"

This function returns the same as filePath(), unless isRelative() is true. In contrast to canonicalFilePath(), symbolic links or redundant "." or ".." elements are not necessarily removed.

If the QFileInfo is empty it returns QDir.currentPath().

See also filePath(), canonicalFilePath(), and isRelative().

QString QFileInfo.absolutePath (self)

Returns a file's path absolute path. This doesn't include the file name.

On Unix the absolute path will always begin with the root, '/', directory. On Windows this will always begin 'D:/' where D is a drive letter, except for network shares that are not mapped to a drive letter, in which case the path will begin '//sharename/'.

In contrast to canonicalPath() symbolic links or redundant "." or ".." elements are not necessarily removed.

Warning: If the QFileInfo object was created with an empty QString, the behavior of this function is undefined.

See also absoluteFilePath(), path(), canonicalPath(), fileName(), and isRelative().

QString QFileInfo.baseName (self)

Returns the base name of the file without the path.

The base name consists of all characters in the file up to (but not including) the first '.' character.

Example:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString base = fi.baseName();  // base = "archive"

The base name of a file is computed equally on all platforms, independent of file naming conventions (e.g., ".bashrc" on Unix has an empty base name, and the suffix is "bashrc").

See also fileName(), suffix(), completeSuffix(), and completeBaseName().

QString QFileInfo.bundleName (self)

Returns the name of the bundle.

On Mac OS X this returns the proper localized name for a bundle if the path isBundle(). On all other platforms an empty QString is returned.

Example:

 QFileInfo fi("/Applications/Safari.app");
 QString bundle = fi.bundleName();                // name = "Safari"

This function was introduced in Qt 4.3.

See also isBundle(), filePath(), baseName(), and extension().

bool QFileInfo.caching (self)

Returns true if caching is enabled; otherwise returns false.

See also setCaching() and refresh().

QString QFileInfo.canonicalFilePath (self)

Returns the canonical path including the file name, i.e. an absolute path without symbolic links or redundant "." or ".." elements.

If the file does not exist, canonicalFilePath() returns an empty string.

See also filePath(), absoluteFilePath(), and dir().

QString QFileInfo.canonicalPath (self)

Returns the file's path canonical path (excluding the file name), i.e. an absolute path without symbolic links or redundant "." or ".." elements.

If the file does not exist, canonicalPath() returns an empty string.

See also path() and absolutePath().

QString QFileInfo.completeBaseName (self)

Returns the complete base name of the file without the path.

The complete base name consists of all characters in the file up to (but not including) the last '.' character.

Example:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString base = fi.completeBaseName();  // base = "archive.tar"

See also fileName(), suffix(), completeSuffix(), and baseName().

QString QFileInfo.completeSuffix (self)

Returns the complete suffix of the file.

The complete suffix consists of all characters in the file after (but not including) the first '.'.

Example:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString ext = fi.completeSuffix();  // ext = "tar.gz"

See also fileName(), suffix(), baseName(), and completeBaseName().

QDateTime QFileInfo.created (self)

Returns the date and time when the file was created.

On most Unix systems, this function returns the time of the last status change. A status change occurs when the file is created, but it also occurs whenever the user writes or sets inode information (for example, changing the file permissions).

If neither creation time nor "last status change" time are not available, returns the same as lastModified().

See also lastModified() and lastRead().

QDir QFileInfo.dir (self)

Returns the path of the object's parent directory as a QDir object.

Note: The QDir returned always corresponds to the object's parent directory, even if the QFileInfo represents a directory.

For each of the following, dir() returns a QDir for "~/examples/191697".

     QFileInfo fileInfo1("~/examples/191697/.");
     QFileInfo fileInfo2("~/examples/191697/..");
     QFileInfo fileInfo3("~/examples/191697/main.cpp");

For each of the following, dir() returns a QDir for ".".

     QFileInfo fileInfo4(".");
     QFileInfo fileInfo5("..");
     QFileInfo fileInfo6("main.cpp");

See also absolutePath(), filePath(), fileName(), isRelative(), and absoluteDir().

bool QFileInfo.exists (self)

Returns true if the file exists; otherwise returns false.

Note: If the file is a symlink that points to a non existing file, false is returned.

QString QFileInfo.fileName (self)

Returns the name of the file, excluding the path.

Example:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString name = fi.fileName();                // name = "archive.tar.gz"

Note that, if this QFileInfo object is given a path ending in a slash, the name of the file is considered empty.

See also isRelative(), filePath(), baseName(), and extension().

QString QFileInfo.filePath (self)

Returns the file name, including the path (which may be absolute or relative).

See also absoluteFilePath(), canonicalFilePath(), and isRelative().

QString QFileInfo.group (self)

Returns the group of the file. On Windows, on systems where files do not have groups, or if an error occurs, an empty string is returned.

This function can be time consuming under Unix (in the order of milliseconds).

See also groupId(), owner(), and ownerId().

int QFileInfo.groupId (self)

Returns the id of the group the file belongs to.

On Windows and on systems where files do not have groups this function always returns (uint) -2.

See also group(), owner(), and ownerId().

bool QFileInfo.isAbsolute (self)

Returns true if the file path name is absolute, otherwise returns false if the path is relative.

See also isRelative().

bool QFileInfo.isBundle (self)

Returns true if this object points to a bundle or to a symbolic link to a bundle on Mac OS X; otherwise returns false.

This function was introduced in Qt 4.3.

See also isDir(), isSymLink(), and isFile().

bool QFileInfo.isDir (self)

Returns true if this object points to a directory or to a symbolic link to a directory; otherwise returns false.

See also isFile(), isSymLink(), and isBundle().

bool QFileInfo.isExecutable (self)

Returns true if the file is executable; otherwise returns false.

See also isReadable(), isWritable(), and permission().

bool QFileInfo.isFile (self)

Returns true if this object points to a file or to a symbolic link to a file. Returns false if the object points to something which isn't a file, such as a directory.

See also isDir(), isSymLink(), and isBundle().

bool QFileInfo.isHidden (self)

Returns true if this is a `hidden' file; otherwise returns false.

Note: This function returns true for the special entries "." and ".." on Unix, even though QDir.entryList threats them as shown.

bool QFileInfo.isReadable (self)

Returns true if the user can read the file; otherwise returns false.

See also isWritable(), isExecutable(), and permission().

bool QFileInfo.isRelative (self)

Returns true if the file path name is relative, otherwise returns false if the path is absolute (e.g. under Unix a path is absolute if it begins with a "/").

See also isAbsolute().

bool QFileInfo.isRoot (self)

Returns true if the object points to a directory or to a symbolic link to a directory, and that directory is the root directory; otherwise returns false.

bool QFileInfo.isSymLink (self)

Returns true if this object points to a symbolic link (or to a shortcut on Windows); otherwise returns false.

On Unix (including Mac OS X), opening a symlink effectively opens the link's target. On Windows, it opens the .lnk file itself.

Example:

 QFileInfo info(fileName);
 if (info.isSymLink())
     fileName = info.symLinkTarget();

Note: If the symlink points to a non existing file, exists() returns false.

See also isFile(), isDir(), and symLinkTarget().

bool QFileInfo.isWritable (self)

Returns true if the user can write to the file; otherwise returns false.

See also isReadable(), isExecutable(), and permission().

QDateTime QFileInfo.lastModified (self)

Returns the date and time when the file was last modified.

See also created() and lastRead().

QDateTime QFileInfo.lastRead (self)

Returns the date and time when the file was last read (accessed).

On platforms where this information is not available, returns the same as lastModified().

See also created() and lastModified().

bool QFileInfo.makeAbsolute (self)

Converts the file's path to an absolute path if it is not already in that form. Returns true to indicate that the path was converted; otherwise returns false to indicate that the path was already absolute.

See also filePath() and isRelative().

QString QFileInfo.owner (self)

Returns the owner of the file. On systems where files do not have owners, or if an error occurs, an empty string is returned.

This function can be time consuming under Unix (in the order of milliseconds).

See also ownerId(), group(), and groupId().

int QFileInfo.ownerId (self)

Returns the id of the owner of the file.

On Windows and on systems where files do not have owners this function returns ((uint) -2).

See also owner(), group(), and groupId().

QString QFileInfo.path (self)

bool QFileInfo.permission (self, QFile.Permissions permissions)

Tests for file permissions. The permissions argument can be several flags of type QFile.Permissions OR-ed together to check for permission combinations.

On systems where files do not have permissions this function always returns true.

Example:

 QFileInfo fi("/tmp/archive.tar.gz");
 if (fi.permission(QFile.WriteUser | QFile.ReadGroup))
     qWarning("I can change the file; my group can read the file");
 if (fi.permission(QFile.WriteGroup | QFile.WriteOther))
     qWarning("The group or others can change the file");

See also isReadable(), isWritable(), and isExecutable().

QFile.Permissions QFileInfo.permissions (self)

Returns the complete OR-ed together combination of QFile.Permissions for the file.

QString QFileInfo.readLink (self)

QFileInfo.refresh (self)

Refreshes the information about the file, i.e. reads in information from the file system the next time a cached property is fetched.

Note: On Windows CE, there might be a delay for the file system driver to detect changes on the file.

QFileInfo.setCaching (self, bool on)

If enable is true, enables caching of file information. If enable is false caching is disabled.

When caching is enabled, QFileInfo reads the file information from the file system the first time it's needed, but generally not later.

Caching is enabled by default.

See also refresh() and caching().

QFileInfo.setFile (self, QString file)

Sets the file that the QFileInfo provides information about to file.

The file can also include an absolute or relative file path. Absolute paths begin with the directory separator (e.g. "/" under Unix) or a drive specification (under Windows). Relative file names begin with a directory name or a file name and specify a path relative to the current directory.

Example:

 QString absolute = "/local/bin";
 QString relative = "local/bin";
 QFileInfo absFile(absolute);
 QFileInfo relFile(relative);

 QDir.setCurrent(QDir.rootPath());
 // absFile and relFile now point to the same file

 QDir.setCurrent("/tmp");
 // absFile now points to "/local/bin",
 // while relFile points to "/tmp/local/bin"

See also isFile(), isRelative(), QDir.setCurrent(), and QDir.isRelativePath().

QFileInfo.setFile (self, QFile file)

This is an overloaded function.

Sets the file that the QFileInfo provides information about to file.

If file includes a relative path, the QFileInfo will also have a relative path.

See also isRelative().

QFileInfo.setFile (self, QDir dir, QString file)

This is an overloaded function.

Sets the file that the QFileInfo provides information about to file in directory dir.

If file includes a relative path, the QFileInfo will also have a relative path.

See also isRelative().

int QFileInfo.size (self)

Returns the file size in bytes. If the file does not exist or cannot be fetched, 0 is returned.

See also exists().

QString QFileInfo.suffix (self)

Returns the suffix of the file.

The suffix consists of all characters in the file after (but not including) the last '.'.

Example:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString ext = fi.suffix();  // ext = "gz"

The suffix of a file is computed equally on all platforms, independent of file naming conventions (e.g., ".bashrc" on Unix has an empty base name, and the suffix is "bashrc").

See also fileName(), completeSuffix(), baseName(), and completeBaseName().

QString QFileInfo.symLinkTarget (self)

Returns the absolute path to the file or directory a symlink (or shortcut on Windows) points to, or a an empty string if the object isn't a symbolic link.

This name may not represent an existing file; it is only a string. QFileInfo.exists() returns true if the symlink points to an existing file.

This function was introduced in Qt 4.2.

See also exists(), isSymLink(), isDir(), and isFile().

bool QFileInfo.__eq__ (self, QFileInfo fileinfo)

bool QFileInfo.__ne__ (self, QFileInfo fileinfo)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfileopenevent.html0000644000076500000240000000764512536324503021406 0ustar philstaff00000000000000 QFileOpenEvent Class Reference
  Home · All Classes · Modules

QFileOpenEvent Class Reference
[QtGui module]

The QFileOpenEvent class provides an event that will be sent when there is a request to open a file or a URL. More...

Inherits QEvent.

Methods

  • QString file (self)
  • bool openFile (self, QFile file, QIODevice.OpenMode flags)
  • QUrl url (self)

Detailed Description

The QFileOpenEvent class provides an event that will be sent when there is a request to open a file or a URL.

File open events will be sent to the QApplication.instance() when the operating system requests that a file or URL should be opened. This is a high-level event that can be caused by different user actions depending on the user's desktop environment; for example, double clicking on an file icon in the Finder on Mac OS X.

This event is only used to notify the application of a request. It may be safely ignored.

Note: This class is currently supported for Mac OS X and Symbian only.


Method Documentation

QString QFileOpenEvent.file (self)

Returns the file that is being opened.

bool QFileOpenEvent.openFile (self, QFile file, QIODevice.OpenMode flags)

Opens a QFile on the file referenced by this event in the mode specified by flags. Returns true if successful; otherwise returns false.

This is necessary as some files cannot be opened by name, but require specific information stored in this event. For example, if this QFileOpenEvent contains a request to open a Symbian data caged file, the QFile could only be opened from the Symbian RFile used in the construction of this event.

This function was introduced in Qt 4.8.

QUrl QFileOpenEvent.url (self)

Returns the url that is being opened.

This function was introduced in Qt 4.6.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfilesystemmodel.html0000644000076500000240000007272412536324503021750 0ustar philstaff00000000000000 QFileSystemModel Class Reference
  Home · All Classes · Modules

QFileSystemModel Class Reference
[QtGui module]

The QFileSystemModel class provides a data model for the local filesystem. More...

Inherits QAbstractItemModel.

Types

  • enum Roles { FileIconRole, FilePathRole, FileNameRole, FilePermissions }

Methods

Qt Signals


Detailed Description

The QFileSystemModel class provides a data model for the local filesystem.

This class provides access to the local filesystem, providing functions for renaming and removing files and directories, and for creating new directories. In the simplest case, it can be used with a suitable display widget as part of a browser or filter.

QFileSystemModel can be accessed using the standard interface provided by QAbstractItemModel, but it also provides some convenience functions that are specific to a directory model. The fileInfo(), isDir(), name(), and path() functions provide information about the underlying files and directories related to items in the model. Directories can be created and removed using mkdir(), rmdir().

Note: QFileSystemModel requires an instance of a GUI application.

Example Usage

A directory model that displays the contents of a default directory is usually constructed with a parent object:

     QFileSystemModel *model = new QFileSystemModel;
     model->setRootPath(QDir.currentPath());

A tree view can be used to display the contents of the model

     QTreeView *tree = new QTreeView(splitter);
     tree->setModel(model);

and the contents of a particular directory can be displayed by setting the tree view's root index:

     tree->setRootIndex(model->index(QDir.currentPath()));

The view's root index can be used to control how much of a hierarchical model is displayed. QDirModel(obsolete) provides a convenience function that returns a suitable model index for a path to a directory within the model.

Caching and Performance

QFileSystemModel will not fetch any files or directories until setRootPath() is called. This will prevent any unnecessary querying on the file system until that point such as listing the drives on Windows.

Unlike QDirModel(obsolete), QFileSystemModel uses a separate thread to populate itself so it will not cause the main thread to hang as the file system is being queried. Calls to rowCount() will return 0 until the model populates a directory.

QFileSystemModel keeps a cache with file information. The cache is automatically kept up to date using the QFileSystemWatcher.


Type Documentation

QFileSystemModel.Roles

Constant Value
QFileSystemModel.FileIconRole Qt.DecorationRole
QFileSystemModel.FilePathRole Qt.UserRole + 1
QFileSystemModel.FileNameRole Qt.UserRole + 2
QFileSystemModel.FilePermissions Qt.UserRole + 3

Method Documentation

QFileSystemModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a file system model with the given parent.

bool QFileSystemModel.canFetchMore (self, QModelIndex parent)

Reimplemented from QAbstractItemModel.canFetchMore().

int QFileSystemModel.columnCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.columnCount().

QVariant QFileSystemModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.data().

See also setData().

bool QFileSystemModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Reimplemented from QAbstractItemModel.dropMimeData().

Handles the data supplied by a drag and drop operation that ended with the given action over the row in the model specified by the row and column and by the parent index.

See also supportedDropActions().

bool QFileSystemModel.event (self, QEvent event)

Reimplemented from QObject.event().

QFileSystemModel.fetchMore (self, QModelIndex parent)

Reimplemented from QAbstractItemModel.fetchMore().

QIcon QFileSystemModel.fileIcon (self, QModelIndex aindex)

Returns the icon for the item stored in the model under the given index.

QFileInfo QFileSystemModel.fileInfo (self, QModelIndex aindex)

Returns the QFileInfo for the item stored in the model under the given index.

QString QFileSystemModel.fileName (self, QModelIndex aindex)

Returns the file name for the item stored in the model under the given index.

QString QFileSystemModel.filePath (self, QModelIndex index)

Returns the path of the item stored in the model under the index given.

QDir.Filters QFileSystemModel.filter (self)

Returns the filter specified for the directory model.

If a filter has not been set, the default filter is QDir.AllEntries | QDir.NoDotAndDotDot | QDir.AllDirs.

See also setFilter() and QDir.Filters.

Qt.ItemFlags QFileSystemModel.flags (self, QModelIndex index)

Reimplemented from QAbstractItemModel.flags().

bool QFileSystemModel.hasChildren (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.hasChildren().

QVariant QFileSystemModel.headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.headerData().

QFileIconProvider QFileSystemModel.iconProvider (self)

Returns the file icon provider for this directory model.

See also setIconProvider().

QModelIndex QFileSystemModel.index (self, int row, int column, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.index().

QModelIndex QFileSystemModel.index (self, QString path, int column = 0)

This is an overloaded function.

Returns the model item index for the given path and column.

bool QFileSystemModel.isDir (self, QModelIndex index)

Returns true if the model item index represents a directory; otherwise returns false.

bool QFileSystemModel.isReadOnly (self)

QDateTime QFileSystemModel.lastModified (self, QModelIndex index)

Returns the date and time when index was last modified.

QMimeData QFileSystemModel.mimeData (self, list-of-QModelIndex indexes)

Reimplemented from QAbstractItemModel.mimeData().

Returns an object that contains a serialized description of the specified indexes. The format used to describe the items corresponding to the indexes is obtained from the mimeTypes() function.

If the list of indexes is empty, 0 is returned rather than a serialized empty list.

QStringList QFileSystemModel.mimeTypes (self)

Reimplemented from QAbstractItemModel.mimeTypes().

Returns a list of MIME types that can be used to describe a list of items in the model.

QModelIndex QFileSystemModel.mkdir (self, QModelIndex parent, QString name)

Create a directory with the name in the parent model index.

QVariant QFileSystemModel.myComputer (self, int role = Qt.DisplayRole)

Returns the data stored under the given role for the item "My Computer".

See also Qt.ItemDataRole.

bool QFileSystemModel.nameFilterDisables (self)

QStringList QFileSystemModel.nameFilters (self)

Returns a list of filters applied to the names in the model.

See also setNameFilters().

QModelIndex QFileSystemModel.parent (self, QModelIndex child)

Reimplemented from QAbstractItemModel.parent().

QFile.Permissions QFileSystemModel.permissions (self, QModelIndex index)

Returns the complete OR-ed together combination of QFile.Permission for the index.

bool QFileSystemModel.remove (self, QModelIndex aindex)

Removes the model item index from the file system model and deletes the corresponding file from the file system, returning true if successful. If the item cannot be removed, false is returned.

Warning: This function deletes files from the file system; it does not move them to a location where they can be recovered.

See also rmdir().

bool QFileSystemModel.resolveSymlinks (self)

bool QFileSystemModel.rmdir (self, QModelIndex aindex)

Removes the directory corresponding to the model item index in the file system model and deletes the corresponding directory from the file system, returning true if successful. If the directory cannot be removed, false is returned.

Warning: This function deletes directories from the file system; it does not move them to a location where they can be recovered.

See also remove().

QDir QFileSystemModel.rootDirectory (self)

The currently set directory

See also rootPath().

QString QFileSystemModel.rootPath (self)

The currently set root path

See also setRootPath() and rootDirectory().

int QFileSystemModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

bool QFileSystemModel.setData (self, QModelIndex idx, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setData().

See also data().

QFileSystemModel.setFilter (self, QDir.Filters filters)

Sets the directory model's filter to that specified by filters.

Note that the filter you set should always include the QDir.AllDirs enum value, otherwise QFileSystemModel won't be able to read the directory structure.

See also filter() and QDir.Filters.

QFileSystemModel.setIconProvider (self, QFileIconProvider provider)

Sets the provider of file icons for the directory model.

See also iconProvider().

QFileSystemModel.setNameFilterDisables (self, bool enable)

QFileSystemModel.setNameFilters (self, QStringList filters)

Sets the name filters to apply against the existing files.

See also nameFilters().

QFileSystemModel.setReadOnly (self, bool enable)

QFileSystemModel.setResolveSymlinks (self, bool enable)

QModelIndex QFileSystemModel.setRootPath (self, QString path)

Sets the directory that is being watched by the model to newPath by installing a file system watcher on it. Any changes to files and directories within this directory will be reflected in the model.

If the path is changed, the rootPathChanged() signal will be emitted.

Note: This function does not change the structure of the model or modify the data available to views. In other words, the "root" of the model is not changed to include only files and directories within the directory specified by newPath in the file system.

See also rootPath().

int QFileSystemModel.size (self, QModelIndex index)

Returns the size in bytes of index. If the file does not exist, 0 is returned.

QFileSystemModel.sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Reimplemented from QAbstractItemModel.sort().

Qt.DropActions QFileSystemModel.supportedDropActions (self)

Reimplemented from QAbstractItemModel.supportedDropActions().

QFileSystemModel.timerEvent (self, QTimerEvent event)

Reimplemented from QObject.timerEvent().

QString QFileSystemModel.type (self, QModelIndex index)

Returns the type of file index such as "Directory" or "JPEG file".


Qt Signal Documentation

void directoryLoaded (const QString&)

This is the default overload of this signal.

This signal is emitted when the gatherer thread has finished to load the path.

This function was introduced in Qt 4.7.

void fileRenamed (const QString&,const QString&,const QString&)

This is the default overload of this signal.

This signal is emitted whenever a file with the oldName is successfully renamed to newName. The file is located in in the directory path.

void rootPathChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the root path has been changed to a newPath.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfilesystemwatcher.html0000644000076500000240000002524312536324472022304 0ustar philstaff00000000000000 QFileSystemWatcher Class Reference
  Home · All Classes · Modules

QFileSystemWatcher Class Reference
[
QtCore module]

The QFileSystemWatcher class provides an interface for monitoring files and directories for modifications. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QFileSystemWatcher class provides an interface for monitoring files and directories for modifications.

QFileSystemWatcher monitors the file system for changes to files and directories by watching a list of specified paths.

Call addPath() to watch a particular file or directory. Multiple paths can be added using the addPaths() function. Existing paths can be removed by using the removePath() and removePaths() functions.

QFileSystemWatcher examines each path added to it. Files that have been added to the QFileSystemWatcher can be accessed using the files() function, and directories using the directories() function.

The fileChanged() signal is emitted when a file has been modified, renamed or removed from disk. Similarly, the directoryChanged() signal is emitted when a directory or its contents is modified or removed. Note that QFileSystemWatcher stops monitoring files once they have been renamed or removed from disk, and directories once they have been removed from disk.

Note: On systems running a Linux kernel without inotify support, file systems that contain watched paths cannot be unmounted.

Note: Windows CE does not support directory monitoring by default as this depends on the file system driver installed.

Note: The act of monitoring files and directories for modifications consumes system resources. This implies there is a limit to the number of files and directories your process can monitor simultaneously. On Mac OS X 10.4 and all BSD variants, for example, an open file descriptor is required for each monitored file. Some system limits the number of open file descriptors to 256 by default. This means that addPath() and addPaths() will fail if your process tries to add more than 256 files or directories to the file system monitor. Also note that your process may have other file descriptors open in addition to the ones for files being monitored, and these other open descriptors also count in the total. Mac OS X 10.5 and up use a different backend and do not suffer from this issue.


Method Documentation

QFileSystemWatcher.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new file system watcher object with the given parent.

QFileSystemWatcher.__init__ (self, QStringList paths, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new file system watcher object with the given parent which monitors the specified paths list.

QFileSystemWatcher.addPath (self, QString file)

Adds path to the file system watcher if path exists. The path is not added if it does not exist, or if it is already being monitored by the file system watcher.

If path specifies a directory, the directoryChanged() signal will be emitted when path is modified or removed from disk; otherwise the fileChanged() signal is emitted when path is modified, renamed or removed.

Note: There is a system dependent limit to the number of files and directories that can be monitored simultaneously. If this limit has been reached, path will not be added to the file system watcher, and a warning message will be printed to stderr.

See also addPaths() and removePath().

QFileSystemWatcher.addPaths (self, QStringList files)

Adds each path in paths to the file system watcher. Paths are not added if they not exist, or if they are already being monitored by the file system watcher.

If a path specifies a directory, the directoryChanged() signal will be emitted when the path is modified or removed from disk; otherwise the fileChanged() signal is emitted when the path is modified, renamed, or removed.

Note: There is a system dependent limit to the number of files and directories that can be monitored simultaneously. If this limit has been reached, the excess paths will not be added to the file system watcher, and a warning message will be printed to stderr for each path that could not be added.

See also addPath() and removePaths().

QStringList QFileSystemWatcher.directories (self)

Returns a list of paths to directories that are being watched.

See also files().

QStringList QFileSystemWatcher.files (self)

Returns a list of paths to files that are being watched.

See also directories().

QFileSystemWatcher.removePath (self, QString file)

Removes the specified path from the file system watcher.

See also removePaths() and addPath().

QFileSystemWatcher.removePaths (self, QStringList files)

Removes the specified paths from the file system watcher.

See also removePath() and addPaths().


Qt Signal Documentation

void directoryChanged (const QString&)

This is the default overload of this signal.

This signal is emitted when the directory at a specified path, is modified (e.g., when a file is added, modified or deleted) or removed from disk. Note that if there are several changes during a short period of time, some of the changes might not emit this signal. However, the last change in the sequence of changes will always generate this signal.

See also fileChanged().

void fileChanged (const QString&)

This is the default overload of this signal.

This signal is emitted when the file at the specified path is modified, renamed or removed from disk.

See also directoryChanged().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfinalstate.html0000644000076500000240000001245312536324472020673 0ustar philstaff00000000000000 QFinalState Class Reference
  Home · All Classes · Modules

QFinalState Class Reference
[QtCore module]

The QFinalState class provides a final state. More...

Inherits QAbstractState.

Methods


Detailed Description

The QFinalState class provides a final state.

A final state is used to communicate that (part of) a QStateMachine has finished its work. When a final top-level state is entered, the state machine's finished() signal is emitted. In general, when a final substate (a child of a QState) is entered, the parent state's finished() signal is emitted. QFinalState is part of The State Machine Framework.

To use a final state, you create a QFinalState object and add a transition to it from another state. Example:

 QPushButton button;

 QStateMachine machine;
 QState *s1 = new QState();
 QFinalState *s2 = new QFinalState();
 s1->addTransition(&button, SIGNAL(clicked()), s2);
 machine.addState(s1);
 machine.addState(s2);

 QObject.connect(&machine, SIGNAL(finished()), QApplication.instance(), SLOT(quit()));
 machine.setInitialState(s1);
 machine.start();

Method Documentation

QFinalState.__init__ (self, QState parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QFinalState object with the given parent state.

bool QFinalState.event (self, QEvent e)

Reimplemented from QObject.event().

QFinalState.onEntry (self, QEvent event)

Reimplemented from QAbstractState.onEntry().

QFinalState.onExit (self, QEvent event)

Reimplemented from QAbstractState.onExit().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfocusevent.html0000644000076500000240000001054612536324503020716 0ustar philstaff00000000000000 QFocusEvent Class Reference
  Home · All Classes · Modules

QFocusEvent Class Reference
[QtGui module]

The QFocusEvent class contains event parameters for widget focus events. More...

Inherits QEvent.

Methods


Detailed Description

The QFocusEvent class contains event parameters for widget focus events.

Focus events are sent to widgets when the keyboard input focus changes. Focus events occur due to mouse actions, key presses (such as Tab or Backtab), the window system, popup menus, keyboard shortcuts, or other application-specific reasons. The reason for a particular focus event is returned by reason() in the appropriate event handler.

The event handlers QWidget.focusInEvent(), QWidget.focusOutEvent(), QGraphicsItem.focusInEvent and QGraphicsItem.focusOutEvent() receive focus events.


Method Documentation

QFocusEvent.__init__ (self, QEvent.Type type, Qt.FocusReason reason = Qt.OtherFocusReason)

Constructs a focus event object.

The type parameter must be either QEvent.FocusIn or QEvent.FocusOut. The reason describes the cause of the change in focus.

QFocusEvent.__init__ (self, QFocusEvent)

bool QFocusEvent.gotFocus (self)

Returns true if type() is QEvent.FocusIn; otherwise returns false.

bool QFocusEvent.lostFocus (self)

Returns true if type() is QEvent.FocusOut; otherwise returns false.

Qt.FocusReason QFocusEvent.reason (self)

Returns the reason for this focus event.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfocusframe.html0000644000076500000240000001447212536324503020671 0ustar philstaff00000000000000 QFocusFrame Class Reference
  Home · All Classes · Modules

QFocusFrame Class Reference
[QtGui module]

The QFocusFrame widget provides a focus frame which can be outside of a widget's normal paintable area. More...

Inherits QWidget.

Methods


Detailed Description

The QFocusFrame widget provides a focus frame which can be outside of a widget's normal paintable area.

Normally an application will not need to create its own QFocusFrame as QStyle will handle this detail for you. A style writer can optionally use a QFocusFrame to have a focus area outside of the widget's paintable geometry. In this way space need not be reserved for the widget to have focus but only set on a QWidget with QFocusFrame.setWidget. It is, however, legal to create your own QFocusFrame on a custom widget and set its geometry manually via QWidget.setGeometry however you will not get auto-placement when the focused widget changes size or placement.


Method Documentation

QFocusFrame.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QFocusFrame.

The focus frame will not monitor parent for updates but rather can be placed manually or by using QFocusFrame.setWidget. A QFocusFrame sets Qt.WA_NoChildEventsForParent attribute; as a result the parent will not receive a QEvent.ChildInserted event, this will make it possible to manually set the geometry of the QFocusFrame inside of a QSplitter or other child event monitoring widget.

See also QFocusFrame.setWidget().

bool QFocusFrame.event (self, QEvent e)

Reimplemented from QObject.event().

bool QFocusFrame.eventFilter (self, QObject, QEvent)

Reimplemented from QObject.eventFilter().

QFocusFrame.initStyleOption (self, QStyleOption option)

Initialize option with the values from this QFocusFrame. This method is useful for subclasses when they need a QStyleOption, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QFocusFrame.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QFocusFrame.setWidget (self, QWidget widget)

QFocusFrame will track changes to widget and resize itself automatically. If the monitored widget's parent changes, QFocusFrame will follow the widget and place itself around the widget automatically. If the monitored widget is deleted, QFocusFrame will set it to zero.

See also QFocusFrame.widget().

QWidget QFocusFrame.widget (self)

Returns the currently monitored widget for automatically resize and update.

See also QFocusFrame.setWidget().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfont.html0000644000076500000240000020237512536324503017506 0ustar philstaff00000000000000 QFont Class Reference
  Home · All Classes · Modules

QFont Class Reference
[QtGui module]

The QFont class specifies a font used for drawing text. More...

Types

  • enum Capitalization { MixedCase, AllUppercase, AllLowercase, SmallCaps, Capitalize }
  • enum HintingPreference { PreferDefaultHinting, PreferNoHinting, PreferVerticalHinting, PreferFullHinting }
  • enum SpacingType { PercentageSpacing, AbsoluteSpacing }
  • enum Stretch { UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, ..., UltraExpanded }
  • enum Style { StyleNormal, StyleItalic, StyleOblique }
  • enum StyleHint { Helvetica, SansSerif, Times, Serif, ..., Fantasy }
  • enum StyleStrategy { PreferDefault, PreferBitmap, PreferDevice, PreferOutline, ..., ForceIntegerMetrics }
  • enum Weight { Light, Normal, DemiBold, Bold, Black }

Methods

Static Methods

Special Methods


Detailed Description

The QFont class specifies a font used for drawing text.

When you create a QFont object you specify various attributes that you want the font to have. Qt will use the font with the specified attributes, or if no matching font exists, Qt will use the closest matching installed font. The attributes of the font that is actually used are retrievable from a QFontInfo object. If the window system provides an exact match exactMatch() returns true. Use QFontMetrics to get measurements, e.g. the pixel length of a string using QFontMetrics.width().

Note that a QApplication instance must exist before a QFont can be used. You can set the application's default font with QApplication.setFont().

If a chosen font does not include all the characters that need to be displayed, QFont will try to find the characters in the nearest equivalent fonts. When a QPainter draws a character from a font the QFont will report whether or not it has the character; if it does not, QPainter will draw an unfilled square.

Create QFonts like this:

 QFont serifFont("Times", 10, QFont.Bold);
 QFont sansFont("Helvetica [Cronyx]", 12);

The attributes set in the constructor can also be set later, e.g. setFamily(), setPointSize(), setPointSizeFloat(), setWeight() and setItalic(). The remaining attributes must be set after contstruction, e.g. setBold(), setUnderline(), setOverline(), setStrikeOut() and setFixedPitch(). QFontInfo objects should be created after the font's attributes have been set. A QFontInfo object will not change, even if you change the font's attributes. The corresponding "get" functions, e.g. family(), pointSize(), etc., return the values that were set, even though the values used may differ. The actual values are available from a QFontInfo object.

If the requested font family is unavailable you can influence the font matching algorithm by choosing a particular QFont.StyleHint and QFont.StyleStrategy with setStyleHint(). The default family (corresponding to the current style hint) is returned by defaultFamily().

The font-matching algorithm has a lastResortFamily() and lastResortFont() in cases where a suitable match cannot be found. You can provide substitutions for font family names using insertSubstitution() and insertSubstitutions(). Substitutions can be removed with removeSubstitution(). Use substitute() to retrieve a family's first substitute, or the family name itself if it has no substitutes. Use substitutes() to retrieve a list of a family's substitutes (which may be empty).

Every QFont has a key() which you can use, for example, as the key in a cache or dictionary. If you want to store a user's font preferences you could use QSettings, writing the font information with toString() and reading it back with fromString(). The operator<<() and operator>>() functions are also available, but they work on a data stream.

It is possible to set the height of characters shown on the screen to a specified number of pixels with setPixelSize(); however using setPointSize() has a similar effect and provides device independence.

In X11 you can set a font using its system specific name with setRawName().

Loading fonts can be expensive, especially on X11. QFont contains extensive optimizations to make the copying of QFont objects fast, and to cache the results of the slow window system functions it depends upon.

The font matching algorithm works as follows:

  1. The specified font family is searched for.
  2. If not found, the styleHint() is used to select a replacement family.
  3. Each replacement font family is searched for.
  4. If none of these are found or there was no styleHint(), "helvetica" will be searched for.
  5. If "helvetica" isn't found Qt will try the lastResortFamily().
  6. If the lastResortFamily() isn't found Qt will try the lastResortFont() which will always return a name of some kind.

Note that the actual font matching algorithm varies from platform to platform.

In Windows a request for the "Courier" font is automatically changed to "Courier New", an improved version of Courier that allows for smooth scaling. The older "Courier" bitmap font can be selected by setting the PreferBitmap style strategy (see setStyleStrategy()).

Once a font is found, the remaining attributes are matched in order of priority:

  1. fixedPitch()
  2. pointSize() (see below)
  3. weight()
  4. style()

If you have a font which matches on family, even if none of the other attributes match, this font will be chosen in preference to a font which doesn't match on family but which does match on the other attributes. This is because font family is the dominant search criteria.

The point size is defined to match if it is within 20% of the requested point size. When several fonts match and are only distinguished by point size, the font with the closest point size to the one requested will be chosen.

The actual family, font size, weight and other font attributes used for drawing text will depend on what's available for the chosen family under the window system. A QFontInfo object can be used to determine the actual values used for drawing the text.

Examples:

 QFont f("Helvetica");

If you had both an Adobe and a Cronyx Helvetica, you might get either.

 QFont f("Helvetica [Cronyx]");

You can specify the foundry you want in the family name. The font f in the above example will be set to "Helvetica [Cronyx]".

To determine the attributes of the font actually used in the window system, use a QFontInfo object, e.g.

 QFontInfo info(f1);
 QString family = info.family();

To find out font metrics use a QFontMetrics object, e.g.

 QFontMetrics fm(f1);
 int textWidthInPixels = fm.width("How many pixels wide is this text?");
 int textHeightInPixels = fm.height();

For more general information on fonts, see the comp.fonts FAQ. Information on encodings can be found from Roman Czyborra's page.


Type Documentation

QFont.Capitalization

Rendering option for text this font applies to.

Constant Value Description
QFont.MixedCase 0 This is the normal text rendering option where no capitalization change is applied.
QFont.AllUppercase 1 This alters the text to be rendered in all uppercase type.
QFont.AllLowercase 2 This alters the text to be rendered in all lowercase type.
QFont.SmallCaps 3 This alters the text to be rendered in small-caps type.
QFont.Capitalize 4 This alters the text to be rendered with the first character of each word as an uppercase character.

This enum was introduced or modified in Qt 4.4.

QFont.HintingPreference

This enum describes the different levels of hinting that can be applied to glyphs to improve legibility on displays where it might be warranted by the density of pixels.

Constant Value Description
QFont.PreferDefaultHinting 0 Use the default hinting level for the target platform.
QFont.PreferNoHinting 1 If possible, render text without hinting the outlines of the glyphs. The text layout will be typographically accurate and scalable, using the same metrics as are used e.g. when printing.
QFont.PreferVerticalHinting 2 If possible, render text with no horizontal hinting, but align glyphs to the pixel grid in the vertical direction. The text will appear crisper on displays where the density is too low to give an accurate rendering of the glyphs. But since the horizontal metrics of the glyphs are unhinted, the text's layout will be scalable to higher density devices (such as printers) without impacting details such as line breaks.
QFont.PreferFullHinting 3 If possible, render text with hinting in both horizontal and vertical directions. The text will be altered to optimize legibility on the target device, but since the metrics will depend on the target size of the text, the positions of glyphs, line breaks, and other typographical detail will not scale, meaning that a text layout may look different on devices with different pixel densities.

Please note that this enum only describes a preference, as the full range of hinting levels are not supported on all of Qt's supported platforms. The following table details the effect of a given hinting preference on a selected set of target platforms.

PreferDefaultHinting PreferNoHinting PreferVerticalHinting PreferFullHinting
Windows Vista (w/o Platform Update) and earlier Full hinting Full hinting Full hinting Full hinting
Windows 7 and Windows Vista (w/Platform Update) and DirectWrite enabled in Qt Full hinting Vertical hinting Vertical hinting Full hinting
FreeType Operating System setting No hinting Vertical hinting (light) Full hinting
Cocoa on Mac OS X No hinting No hinting No hinting No hinting

Note: Please be aware that altering the hinting preference on Windows is available through the DirectWrite font engine. This is available on Windows Vista after installing the platform update, and on Windows 7. In order to use this extension, configure Qt using -directwrite. The target application will then depend on the availability of DirectWrite on the target system.

This enum was introduced or modified in Qt 4.8.

QFont.SpacingType

Constant Value Description
QFont.PercentageSpacing 0 A value of 100 will keep the spacing unchanged; a value of 200 will enlarge the spacing after a character by the width of the character itself.
QFont.AbsoluteSpacing 1 A positive value increases the letter spacing by the corresponding pixels; a negative value decreases the spacing.

This enum was introduced or modified in Qt 4.4.

QFont.Stretch

Predefined stretch values that follow the CSS naming convention. The higher the value, the more stretched the text is.

Constant Value Description
QFont.UltraCondensed 50 50
QFont.ExtraCondensed 62 62
QFont.Condensed 75 75
QFont.SemiCondensed 87 87
QFont.Unstretched 100 100
QFont.SemiExpanded 112 112
QFont.Expanded 125 125
QFont.ExtraExpanded 150 150
QFont.UltraExpanded 200 200

See also setStretch() and stretch().

QFont.Style

This enum describes the different styles of glyphs that are used to display text.

Constant Value Description
QFont.StyleNormal 0 Normal glyphs used in unstyled text.
QFont.StyleItalic 1 Italic glyphs that are specifically designed for the purpose of representing italicized text.
QFont.StyleOblique 2 Glyphs with an italic appearance that are typically based on the unstyled glyphs, but are not fine-tuned for the purpose of representing italicized text.

See also Weight.

QFont.StyleHint

Style hints are used by the font matching algorithm to find an appropriate default family if a selected font family is not available.

Constant Value Description
QFont.AnyStyle ? leaves the font matching algorithm to choose the family. This is the default.
QFont.SansSerif Helvetica the font matcher prefer sans serif fonts.
QFont.Helvetica 0 is a synonym for SansSerif.
QFont.Serif Times the font matcher prefers serif fonts.
QFont.Times ? is a synonym for Serif.
QFont.TypeWriter Courier the font matcher prefers fixed pitch fonts.
QFont.Courier ? a synonym for TypeWriter.
QFont.OldEnglish ? the font matcher prefers decorative fonts.
QFont.Decorative OldEnglish is a synonym for OldEnglish.
QFont.Monospace ? the font matcher prefers fonts that map to the CSS generic font-family 'monospace'.
QFont.Fantasy ? the font matcher prefers fonts that map to the CSS generic font-family 'fantasy'.
QFont.Cursive ? the font matcher prefers fonts that map to the CSS generic font-family 'cursive'.
QFont.System ? the font matcher prefers system fonts.

QFont.StyleStrategy

The style strategy tells the font matching algorithm what type of fonts should be used to find an appropriate default family.

The following strategies are available:

Constant Value Description
QFont.PreferDefault 0x0001 the default style strategy. It does not prefer any type of font.
QFont.PreferBitmap 0x0002 prefers bitmap fonts (as opposed to outline fonts).
QFont.PreferDevice 0x0004 prefers device fonts.
QFont.PreferOutline 0x0008 prefers outline fonts (as opposed to bitmap fonts).
QFont.ForceOutline 0x0010 forces the use of outline fonts.
QFont.NoAntialias 0x0100 don't antialias the fonts.
QFont.PreferAntialias 0x0080 antialias if possible.
QFont.OpenGLCompatible 0x0200 forces the use of OpenGL compatible fonts.
QFont.NoFontMerging 0x8000 If the font selected for a certain writing system does not contain a character requested to draw, then Qt automatically chooses a similar looking font that contains the character. The NoFontMerging flag disables this feature. Please note that enabling this flag will not prevent Qt from automatically picking a suitable font when the selected font does not support the writing system of the text.

Any of these may be OR-ed with one of these flags:

Constant Value Description
QFont.PreferMatch 0x0020 prefer an exact match. The font matcher will try to use the exact font size that has been specified.
QFont.PreferQuality 0x0040 prefer the best quality font. The font matcher will use the nearest standard point size that the font supports.
QFont.ForceIntegerMetrics 0x0400 forces the use of integer values in font engines that support fractional font metrics.

QFont.Weight

Qt uses a weighting scale from 0 to 99 similar to, but not the same as, the scales used in Windows or CSS. A weight of 0 is ultralight, whilst 99 will be an extremely black.

This enum contains the predefined font weights:

Constant Value Description
QFont.Light 25 25
QFont.Normal 50 50
QFont.DemiBold 63 63
QFont.Bold 75 75
QFont.Black 87 87

Method Documentation

QFont.__init__ (self)

Constructs a font object that uses the application's default font.

See also QApplication.setFont() and QApplication.font().

QFont.__init__ (self, QString family, int pointSize = -1, int weight = -1, bool italic = False)

Constructs a font object with the specified family, pointSize, weight and italic settings.

If pointSize is zero or negative, the point size of the font is set to a system-dependent default value. Generally, this is 12 points, except on Symbian where it is 7 points.

The family name may optionally also include a foundry name, e.g. "Helvetica [Cronyx]". If the family is available from more than one foundry and the foundry isn't specified, an arbitrary foundry is chosen. If the family isn't available a family will be set using the font matching algorithm.

See also Weight, setFamily(), setPointSize(), setWeight(), setItalic(), setStyleHint(), and QApplication.font().

QFont.__init__ (self, QFont, QPaintDevice pd)

Constructs a font from font for use on the paint device pd.

QFont.__init__ (self, QFont)

Constructs a font that is a copy of font.

QFont.__init__ (self, QVariant variant)

bool QFont.bold (self)

Returns true if weight() is a value greater than QFont.Normal; otherwise returns false.

See also weight(), setBold(), and QFontInfo.bold().

QFont.cacheStatistics ()

Capitalization QFont.capitalization (self)

Returns the current capitalization type of the font.

This function was introduced in Qt 4.4.

See also setCapitalization().

QFont.cleanup ()

QString QFont.defaultFamily (self)

Returns the family name that corresponds to the current style hint.

See also StyleHint, styleHint(), and setStyleHint().

bool QFont.exactMatch (self)

Returns true if a window system font exactly matching the settings of this font is available.

See also QFontInfo.

QString QFont.family (self)

Returns the requested font family name, i.e. the name set in the constructor or the last setFont() call.

See also setFamily(), substitutes(), and substitute().

bool QFont.fixedPitch (self)

Returns true if fixed pitch has been set; otherwise returns false.

See also setFixedPitch() and QFontInfo.fixedPitch().

bool QFont.fromString (self, QString)

Sets this font to match the description descrip. The description is a comma-separated list of the font attributes, as returned by toString().

See also toString().

int QFont.handle (self)

Returns the window system handle to the font, for low-level access. Using this function is not portable.

HintingPreference QFont.hintingPreference (self)

Returns the currently preferred hinting level for glyphs rendered with this font.

This function was introduced in Qt 4.8.

See also setHintingPreference().

QFont.initialize ()

QFont.insertSubstitution (QString, QString)

Inserts substituteName into the substitution table for the family familyName.

See also insertSubstitutions(), removeSubstitution(), substitutions(), substitute(), and substitutes().

QFont.insertSubstitutions (QString, QStringList)

Inserts the list of families substituteNames into the substitution list for familyName.

See also insertSubstitution(), removeSubstitution(), substitutions(), and substitute().

bool QFont.isCopyOf (self, QFont)

Returns true if this font and f are copies of each other, i.e. one of them was created as a copy of the other and neither has been modified since. This is much stricter than equality.

See also operator=() and operator==().

bool QFont.italic (self)

Returns true if the style() of the font is not QFont.StyleNormal

See also setItalic() and style().

bool QFont.kerning (self)

Returns true if kerning should be used when drawing text with this font.

See also setKerning().

QString QFont.key (self)

Returns the font's key, a textual representation of a font. It is typically used as the key for a cache or dictionary of fonts.

See also QMap.

QString QFont.lastResortFamily (self)

Returns the "last resort" font family name.

The current implementation tries a wide variety of common fonts, returning the first one it finds. Is is possible that no family is found in which case an empty string is returned.

See also lastResortFont().

QString QFont.lastResortFont (self)

Returns a "last resort" font name for the font matching algorithm. This is used if the last resort family is not available. It will always return a name, if necessary returning something like "fixed" or "system".

The current implementation tries a wide variety of common fonts, returning the first one it finds. The implementation may change at any time, but this function will always return a string containing something.

It is theoretically possible that there really isn't a lastResortFont() in which case Qt will abort with an error message. We have not been able to identify a case where this happens. Please report it as a bug if it does, preferably with a list of the fonts you have installed.

See also lastResortFamily() and rawName().

float QFont.letterSpacing (self)

Returns the letter spacing for the font.

This function was introduced in Qt 4.4.

See also setLetterSpacing(), letterSpacingType(), and setWordSpacing().

SpacingType QFont.letterSpacingType (self)

Returns the spacing type used for letter spacing.

This function was introduced in Qt 4.4.

See also letterSpacing(), setLetterSpacing(), and setWordSpacing().

bool QFont.overline (self)

Returns true if overline has been set; otherwise returns false.

See also setOverline().

int QFont.pixelSize (self)

Returns the pixel size of the font if it was set with setPixelSize(). Returns -1 if the size was set with setPointSize() or setPointSizeF().

See also setPixelSize(), pointSize(), QFontInfo.pointSize(), and QFontInfo.pixelSize().

int QFont.pointSize (self)

Returns the point size of the font. Returns -1 if the font size was specified in pixels.

See also setPointSize() and pointSizeF().

float QFont.pointSizeF (self)

Returns the point size of the font. Returns -1 if the font size was specified in pixels.

See also pointSize(), setPointSizeF(), pixelSize(), QFontInfo.pointSize(), and QFontInfo.pixelSize().

bool QFont.rawMode (self)

Returns true if raw mode is used for font name matching; otherwise returns false.

See also setRawMode() and rawName().

QString QFont.rawName (self)

Returns the name of the font within the underlying window system.

On X11, this function will return an empty string if Qt is built with FontConfig support; otherwise the XLFD (X Logical Font Description) is returned.

Using the return value of this function is usually not portable.

See also setRawName().

QFont.removeSubstitution (QString)

Removes all the substitutions for familyName.

See also insertSubstitutions(), insertSubstitution(), substitutions(), and substitute().

QFont QFont.resolve (self, QFont)

Returns a new QFont that has attributes copied from other that have not been previously set on this font.

QFont.setBold (self, bool enable)

If enable is true sets the font's weight to QFont.Bold; otherwise sets the weight to QFont.Normal.

For finer boldness control use setWeight().

See also bold() and setWeight().

QFont.setCapitalization (self, Capitalization)

Sets the capitalization of the text in this font to caps.

A font's capitalization makes the text appear in the selected capitalization mode.

This function was introduced in Qt 4.4.

See also capitalization().

QFont.setFamily (self, QString)

Sets the family name of the font. The name is case insensitive and may include a foundry name.

The family name may optionally also include a foundry name, e.g. "Helvetica [Cronyx]". If the family is available from more than one foundry and the foundry isn't specified, an arbitrary foundry is chosen. If the family isn't available a family will be set using the font matching algorithm.

See also family(), setStyleHint(), and QFontInfo.

QFont.setFixedPitch (self, bool)

If enable is true, sets fixed pitch on; otherwise sets fixed pitch off.

See also fixedPitch() and QFontInfo.

QFont.setHintingPreference (self, HintingPreference hintingPreference)

Set the preference for the hinting level of the glyphs to hintingPreference. This is a hint to the underlying font rendering system to use a certain level of hinting, and has varying support across platforms. See the table in the documentation for QFont.HintingPreference for more details.

The default hinting preference is QFont.PreferDefaultHinting.

This function was introduced in Qt 4.8.

See also hintingPreference().

QFont.setItalic (self, bool b)

Sets the style() of the font to QFont.StyleItalic if enable is true; otherwise the style is set to QFont.StyleNormal.

See also italic() and QFontInfo.

QFont.setKerning (self, bool)

Enables kerning for this font if enable is true; otherwise disables it. By default, kerning is enabled.

When kerning is enabled, glyph metrics do not add up anymore, even for Latin text. In other words, the assumption that width('a') + width('b') is equal to width("ab") is not neccesairly true.

See also kerning() and QFontMetrics.

QFont.setLetterSpacing (self, SpacingType type, float spacing)

Sets the letter spacing for the font to spacing and the type of spacing to type.

Letter spacing changes the default spacing between individual letters in the font. The spacing between the letters can be made smaller as well as larger.

This function was introduced in Qt 4.4.

See also letterSpacing(), letterSpacingType(), and setWordSpacing().

QFont.setOverline (self, bool)

If enable is true, sets overline on; otherwise sets overline off.

See also overline() and QFontInfo.

QFont.setPixelSize (self, int)

Sets the font size to pixelSize pixels.

Using this function makes the font device dependent. Use setPointSize() or setPointSizeF() to set the size of the font in a device independent manner.

See also pixelSize().

QFont.setPointSize (self, int)

Sets the point size to pointSize. The point size must be greater than zero.

See also pointSize() and setPointSizeF().

QFont.setPointSizeF (self, float)

Sets the point size to pointSize. The point size must be greater than zero. The requested precision may not be achieved on all platforms.

See also pointSizeF(), setPointSize(), and setPixelSize().

QFont.setRawMode (self, bool)

If enable is true, turns raw mode on; otherwise turns raw mode off. This function only has an effect under X11.

If raw mode is enabled, Qt will search for an X font with a complete font name matching the family name, ignoring all other values set for the QFont. If the font name matches several fonts, Qt will use the first font returned by X. QFontInfo cannot be used to fetch information about a QFont using raw mode (it will return the values set in the QFont for all parameters, including the family name).

Warning: Do not use raw mode unless you really, really need it! In most (if not all) cases, setRawName() is a much better choice.

See also rawMode() and setRawName().

QFont.setRawName (self, QString)

Sets a font by its system specific name. The function is particularly useful under X, where system font settings (for example X resources) are usually available in XLFD (X Logical Font Description) form only. You can pass an XLFD as name to this function.

A font set with setRawName() is still a full-featured QFont. It can be queried (for example with italic()) or modified (for example with setItalic()) and is therefore also suitable for rendering rich text.

If Qt's internal font database cannot resolve the raw name, the font becomes a raw font with name as its family.

Note that the present implementation does not handle wildcards in XLFDs well, and that font aliases (file fonts.alias in the font directory on X11) are not supported.

See also rawName(), setRawMode(), and setFamily().

QFont.setStretch (self, int)

Sets the stretch factor for the font.

The stretch factor changes the width of all characters in the font by factor percent. For example, setting factor to 150 results in all characters in the font being 1.5 times (ie. 150%) wider. The default stretch factor is 100. The minimum stretch factor is 1, and the maximum stretch factor is 4000.

The stretch factor is only applied to outline fonts. The stretch factor is ignored for bitmap fonts.

NOTE: QFont cannot stretch XLFD fonts. When loading XLFD fonts on X11, the stretch factor is matched against a predefined set of values for the SETWIDTH_NAME field of the XLFD.

See also stretch() and QFont.Stretch.

QFont.setStrikeOut (self, bool)

If enable is true, sets strikeout on; otherwise sets strikeout off.

See also strikeOut() and QFontInfo.

QFont.setStyle (self, Style style)

Sets the style of the font to style.

See also style(), italic(), and QFontInfo.

QFont.setStyleHint (self, StyleHint hint, StyleStrategy strategy = QFont.PreferDefault)

Sets the style hint and strategy to hint and strategy, respectively.

If these aren't set explicitly the style hint will default to AnyStyle and the style strategy to PreferDefault.

Qt does not support style hints on X11 since this information is not provided by the window system.

See also StyleHint, styleHint(), StyleStrategy, styleStrategy(), and QFontInfo.

QFont.setStyleName (self, QString styleName)

Sets the style name of the font to the given styleName. When set, other style properties like style() and weight() will be ignored for font matching.

This function was introduced in Qt 4.8.

See also styleName().

QFont.setStyleStrategy (self, StyleStrategy s)

Sets the style strategy for the font to s.

See also styleStrategy() and QFont.StyleStrategy.

QFont.setUnderline (self, bool)

If enable is true, sets underline on; otherwise sets underline off.

See also underline() and QFontInfo.

QFont.setWeight (self, int)

Sets the weight the font to weight, which should be a value from the QFont.Weight enumeration.

See also weight() and QFontInfo.

QFont.setWordSpacing (self, float spacing)

Sets the word spacing for the font to spacing.

Word spacing changes the default spacing between individual words. A positive value increases the word spacing by a corresponding amount of pixels, while a negative value decreases the inter-word spacing accordingly.

Word spacing will not apply to writing systems, where indiviaul words are not separated by white space.

This function was introduced in Qt 4.4.

See also wordSpacing() and setLetterSpacing().

int QFont.stretch (self)

Returns the stretch factor for the font.

See also setStretch().

bool QFont.strikeOut (self)

Returns true if strikeout has been set; otherwise returns false.

See also setStrikeOut().

Style QFont.style (self)

Returns the style of the font.

See also setStyle().

StyleHint QFont.styleHint (self)

Returns the StyleHint.

The style hint affects the font matching algorithm. See QFont.StyleHint for the list of available hints.

See also setStyleHint(), QFont.StyleStrategy, and QFontInfo.styleHint().

QString QFont.styleName (self)

Returns the requested font style name, it will be used to match the font with irregular styles (that can't be normalized in other style properties). It depends on system font support, thus only works for Mac OS X and X11 so far. On Windows irregular styles will be added as separate font families so there is no need for this.

This function was introduced in Qt 4.8.

See also setStyleName(), setFamily(), and setStyle().

StyleStrategy QFont.styleStrategy (self)

Returns the StyleStrategy.

The style strategy affects the font matching algorithm. See QFont.StyleStrategy for the list of available strategies.

See also setStyleStrategy(), setStyleHint(), and QFont.StyleHint.

QString QFont.substitute (QString)

Returns the first family name to be used whenever familyName is specified. The lookup is case insensitive.

If there is no substitution for familyName, familyName is returned.

To obtain a list of substitutions use substitutes().

See also setFamily(), insertSubstitutions(), insertSubstitution(), and removeSubstitution().

QStringList QFont.substitutes (QString)

Returns a list of family names to be used whenever familyName is specified. The lookup is case insensitive.

If there is no substitution for familyName, an empty list is returned.

See also substitute(), insertSubstitutions(), insertSubstitution(), and removeSubstitution().

QStringList QFont.substitutions ()

Returns a sorted list of substituted family names.

See also insertSubstitution(), removeSubstitution(), and substitute().

QString QFont.toString (self)

Returns a description of the font. The description is a comma-separated list of the attributes, perfectly suited for use in QSettings.

See also fromString().

bool QFont.underline (self)

Returns true if underline has been set; otherwise returns false.

See also setUnderline().

int QFont.weight (self)

Returns the weight of the font which is one of the enumerated values from QFont.Weight.

See also setWeight(), Weight, and QFontInfo.

float QFont.wordSpacing (self)

Returns the word spacing for the font.

This function was introduced in Qt 4.4.

See also setWordSpacing() and setLetterSpacing().

bool QFont.__eq__ (self, QFont)

bool QFont.__ge__ (self, QFont)

bool QFont.__lt__ (self, QFont)

bool QFont.__ne__ (self, QFont)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfontcombobox-fontfilters.html0000644000076500000240000001430412536324503023565 0ustar philstaff00000000000000 QFontComboBox.FontFilters Class Reference
  Home · All Classes · Modules

QFontComboBox.FontFilters Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

FontFilter may be used whenever FontFilters is expected.


Method Documentation

FontFilters.__init__ (self, FontFilters)

FontFilters.__init__ (self, int)

FontFilters.__init__ (self)

FontFilters FontFilters.__and__ (self, int mask)

int FontFilters.__bool__ (self)

bool FontFilters.__eq__ (self, FontFilters f)

FontFilters FontFilters.__iand__ (self, int mask)

int FontFilters.__int__ (self)

FontFilters FontFilters.__invert__ (self)

FontFilters FontFilters.__ior__ (self, FontFilters f)

FontFilters FontFilters.__ixor__ (self, FontFilters f)

bool FontFilters.__ne__ (self, FontFilters f)

FontFilters FontFilters.__or__ (self, FontFilters f)

FontFilters FontFilters.__or__ (self, int f)

FontFilters FontFilters.__xor__ (self, FontFilters f)

FontFilters FontFilters.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfontcombobox.html0000644000076500000240000001770012536324503021233 0ustar philstaff00000000000000 QFontComboBox Class Reference
  Home · All Classes · Modules

QFontComboBox Class Reference
[QtGui module]

The QFontComboBox widget is a combobox that lets the user select a font family. More...

Inherits QComboBox.

Types

  • enum FontFilter { AllFonts, ScalableFonts, NonScalableFonts, MonospacedFonts, ProportionalFonts }

Methods

Qt Signals


Detailed Description

The QFontComboBox widget is a combobox that lets the user select a font family.

The combobox is populated with an alphabetized list of font family names, such as Arial, Helvetica, and Times New Roman. Family names are displayed using the actual font when possible. For fonts such as Symbol, where the name is not representable in the font itself, a sample of the font is displayed next to the family name.

QFontComboBox is often used in toolbars, in conjunction with a QComboBox for controlling the font size and two QToolButtons for bold and italic.

When the user selects a new font, the currentFontChanged() signal is emitted in addition to currentIndexChanged().

Call setWritingSystem() to tell QFontComboBox to show only fonts that support a given writing system, and setFontFilters() to filter out certain types of fonts as e.g. non scalable fonts or monospaced fonts.

Screenshot of QFontComboBox on Windows XP


Type Documentation

QFontComboBox.FontFilter

This enum can be used to only show certain types of fonts in the font combo box.

Constant Value Description
QFontComboBox.AllFonts 0 Show all fonts
QFontComboBox.ScalableFonts 0x1 Show scalable fonts
QFontComboBox.NonScalableFonts 0x2 Show non scalable fonts
QFontComboBox.MonospacedFonts 0x4 Show monospaced fonts
QFontComboBox.ProportionalFonts 0x8 Show proportional fonts

The FontFilters type is a typedef for QFlags<FontFilter>. It stores an OR combination of FontFilter values.


Method Documentation

QFontComboBox.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a font combobox with the given parent.

QFont QFontComboBox.currentFont (self)

bool QFontComboBox.event (self, QEvent e)

Reimplemented from QObject.event().

FontFilters QFontComboBox.fontFilters (self)

QFontComboBox.setCurrentFont (self, QFont f)

This method is also a Qt slot with the C++ signature void setCurrentFont(const QFont&).

QFontComboBox.setFontFilters (self, FontFilters filters)

QFontComboBox.setWritingSystem (self, QFontDatabase.WritingSystem)

QSize QFontComboBox.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QFontDatabase.WritingSystem QFontComboBox.writingSystem (self)


Qt Signal Documentation

void currentFontChanged (const QFont&)

This is the default overload of this signal.

This signal is emitted whenever the current font changes, with the new font.

See also currentFont.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfontdatabase.html0000644000076500000240000007117412536324503021174 0ustar philstaff00000000000000 QFontDatabase Class Reference
  Home · All Classes · Modules

QFontDatabase Class Reference
[QtGui module]

The QFontDatabase class provides information about the fonts available in the underlying window system. More...

Types

Methods

  • __init__ (self)
  • __init__ (self, QFontDatabase)
  • bool bold (self, QString family, QString style)
  • QStringList families (self, WritingSystem writingSystem = QFontDatabase.Any)
  • QFont font (self, QString family, QString style, int pointSize)
  • bool isBitmapScalable (self, QString family, QString style = QString())
  • bool isFixedPitch (self, QString family, QString style = QString())
  • bool isScalable (self, QString family, QString style = QString())
  • bool isSmoothlyScalable (self, QString family, QString style = QString())
  • bool italic (self, QString family, QString style)
  • list-of-int pointSizes (self, QString family, QString style = QString())
  • list-of-int smoothSizes (self, QString family, QString style)
  • QStringList styles (self, QString family)
  • QString styleString (self, QFont font)
  • QString styleString (self, QFontInfo fontInfo)
  • int weight (self, QString family, QString style)
  • list-of-QFontDatabase.WritingSystem writingSystems (self)
  • list-of-QFontDatabase.WritingSystem writingSystems (self, QString family)

Static Methods


Detailed Description

The QFontDatabase class provides information about the fonts available in the underlying window system.

The most common uses of this class are to query the database for the list of font families() and for the pointSizes() and styles() that are available for each family. An alternative to pointSizes() is smoothSizes() which returns the sizes at which a given family and style will look attractive.

If the font family is available from two or more foundries the foundry name is included in the family name; for example: "Helvetica [Adobe]" and "Helvetica [Cronyx]". When you specify a family, you can either use the old hyphenated "foundry-family" format or the bracketed "family [foundry]" format; for example: "Cronyx-Helvetica" or "Helvetica [Cronyx]". If the family has a foundry it is always returned using the bracketed format, as is the case with the value returned by families().

The font() function returns a QFont given a family, style and point size.

A family and style combination can be checked to see if it is italic() or bold(), and to retrieve its weight(). Similarly we can call isBitmapScalable(), isSmoothlyScalable(), isScalable() and isFixedPitch().

Use the styleString() to obtain a text version of a style.

The QFontDatabase class also supports some static functions, for example, standardSizes(). You can retrieve the description of a writing system using writingSystemName(), and a sample of characters in a writing system with writingSystemSample().

Example:

     QFontDatabase database;
     QTreeWidget fontTree;
     fontTree.setColumnCount(2);
     fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes");

     foreach (const QString &family, database.families()) {
         QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree);
         familyItem->setText(0, family);

         foreach (const QString &style, database.styles(family)) {
             QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem);
             styleItem->setText(0, style);

             QString sizes;
             foreach (int points, database.smoothSizes(family, style))
                 sizes += QString.number(points) + " ";

             styleItem->setText(1, sizes.trimmed());
         }
     }

This example gets the list of font families, the list of styles for each family, and the point sizes that are available for each combination of family and style, displaying this information in a tree view.


Type Documentation

QFontDatabase.WritingSystem

Constant Value Description
QFontDatabase.Any 0  
QFontDatabase.Latin 1  
QFontDatabase.Greek 2  
QFontDatabase.Cyrillic 3  
QFontDatabase.Armenian 4  
QFontDatabase.Hebrew 5  
QFontDatabase.Arabic 6  
QFontDatabase.Syriac 7  
QFontDatabase.Thaana 8  
QFontDatabase.Devanagari 9  
QFontDatabase.Bengali 10  
QFontDatabase.Gurmukhi 11  
QFontDatabase.Gujarati 12  
QFontDatabase.Oriya 13  
QFontDatabase.Tamil 14  
QFontDatabase.Telugu 15  
QFontDatabase.Kannada 16  
QFontDatabase.Malayalam 17  
QFontDatabase.Sinhala 18  
QFontDatabase.Thai 19  
QFontDatabase.Lao 20  
QFontDatabase.Tibetan 21  
QFontDatabase.Myanmar 22  
QFontDatabase.Georgian 23  
QFontDatabase.Khmer 24  
QFontDatabase.SimplifiedChinese 25  
QFontDatabase.TraditionalChinese 26  
QFontDatabase.Japanese 27  
QFontDatabase.Korean 28  
QFontDatabase.Vietnamese 29  
QFontDatabase.Symbol 30  
QFontDatabase.Other Symbol (the same as Symbol)
QFontDatabase.Ogham ?  
QFontDatabase.Runic ?  
QFontDatabase.Nko ?  

Method Documentation

QFontDatabase.__init__ (self)

Creates a font database object.

QFontDatabase.__init__ (self, QFontDatabase)

int QFontDatabase.addApplicationFont (QString fileName)

Loads the font from the file specified by fileName and makes it available to the application. An ID is returned that can be used to remove the font again with removeApplicationFont() or to retrieve the list of family names contained in the font.

The function returns -1 if the font could not be loaded.

Currently only TrueType fonts, TrueType font collections, and OpenType fonts are supported.

Note: Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.

Note: On Symbian, the font family names get truncated to a length of 20 characters.

This function was introduced in Qt 4.2.

See also addApplicationFontFromData(), applicationFontFamilies(), and removeApplicationFont().

int QFontDatabase.addApplicationFontFromData (QByteArray fontData)

Loads the font from binary data specified by fontData and makes it available to the application. An ID is returned that can be used to remove the font again with removeApplicationFont() or to retrieve the list of family names contained in the font.

The function returns -1 if the font could not be loaded.

Currently only TrueType fonts and TrueType font collections are supported.

Note: Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.

Note: On Symbian, the font family names get truncated to a length of 20 characters.

This function was introduced in Qt 4.2.

See also addApplicationFont(), applicationFontFamilies(), and removeApplicationFont().

QStringList QFontDatabase.applicationFontFamilies (int id)

Returns a list of font families for the given application font identified by id.

This function was introduced in Qt 4.2.

See also addApplicationFont() and addApplicationFontFromData().

bool QFontDatabase.bold (self, QString family, QString style)

Returns true if the font that has family family and style style is bold; otherwise returns false.

See also italic() and weight().

QStringList QFontDatabase.families (self, WritingSystem writingSystem = QFontDatabase.Any)

Returns a sorted list of the available font families which support the writingSystem.

If a family exists in several foundries, the returned name for that font is in the form "family [foundry]". Examples: "Times [Adobe]", "Times [Cronyx]", "Palatino".

See also writingSystems().

QFont QFontDatabase.font (self, QString family, QString style, int pointSize)

Returns a QFont object that has family family, style style and point size pointSize. If no matching font could be created, a QFont object that uses the application's default font is returned.

bool QFontDatabase.isBitmapScalable (self, QString family, QString style = QString())

Returns true if the font that has family family and style style is a scalable bitmap font; otherwise returns false. Scaling a bitmap font usually produces an unattractive hardly readable result, because the pixels of the font are scaled. If you need to scale a bitmap font it is better to scale it to one of the fixed sizes returned by smoothSizes().

See also isScalable() and isSmoothlyScalable().

bool QFontDatabase.isFixedPitch (self, QString family, QString style = QString())

Returns true if the font that has family family and style style is fixed pitch; otherwise returns false.

bool QFontDatabase.isScalable (self, QString family, QString style = QString())

Returns true if the font that has family family and style style is scalable; otherwise returns false.

See also isBitmapScalable() and isSmoothlyScalable().

bool QFontDatabase.isSmoothlyScalable (self, QString family, QString style = QString())

Returns true if the font that has family family and style style is smoothly scalable; otherwise returns false. If this function returns true, it's safe to scale this font to any size, and the result will always look attractive.

See also isScalable() and isBitmapScalable().

bool QFontDatabase.italic (self, QString family, QString style)

Returns true if the font that has family family and style style is italic; otherwise returns false.

See also weight() and bold().

list-of-int QFontDatabase.pointSizes (self, QString family, QString style = QString())

Returns a list of the point sizes available for the font with the given family and style. The list may be empty.

See also smoothSizes() and standardSizes().

bool QFontDatabase.removeAllApplicationFonts ()

Removes all application-local fonts previously added using addApplicationFont() and addApplicationFontFromData().

Returns true if unloading of the fonts succeeded; otherwise returns false.

This function was introduced in Qt 4.2.

See also removeApplicationFont(), addApplicationFont(), and addApplicationFontFromData().

bool QFontDatabase.removeApplicationFont (int id)

Removes the previously loaded application font identified by id. Returns true if unloading of the font succeeded; otherwise returns false.

This function was introduced in Qt 4.2.

See also removeAllApplicationFonts(), addApplicationFont(), and addApplicationFontFromData().

list-of-int QFontDatabase.smoothSizes (self, QString family, QString style)

Returns the point sizes of a font with the given family and style that will look attractive. The list may be empty. For non-scalable fonts and bitmap scalable fonts, this function is equivalent to pointSizes().

See also pointSizes() and standardSizes().

list-of-int QFontDatabase.standardSizes ()

Returns a list of standard font sizes.

See also smoothSizes() and pointSizes().

QStringList QFontDatabase.styles (self, QString family)

Returns a list of the styles available for the font family family. Some example styles: "Light", "Light Italic", "Bold", "Oblique", "Demi". The list may be empty.

See also families().

QString QFontDatabase.styleString (self, QFont font)

Returns a string that describes the style of the font. For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.

QString QFontDatabase.styleString (self, QFontInfo fontInfo)

Returns a string that describes the style of the fontInfo. For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.

bool QFontDatabase.supportsThreadedFontRendering ()

Returns true if font rendering is supported outside the GUI thread, false otherwise. In other words, a return value of false means that all QPainter.drawText() calls outside the GUI thread will not produce readable output.

This function was introduced in Qt 4.4.

See also Painting In Threads.

int QFontDatabase.weight (self, QString family, QString style)

Returns the weight of the font that has family family and style style. If there is no such family and style combination, returns -1.

See also italic() and bold().

QString QFontDatabase.writingSystemName (WritingSystem writingSystem)

Returns the names the writingSystem (e.g. for displaying to the user in a dialog).

list-of-QFontDatabase.WritingSystem QFontDatabase.writingSystems (self)

Returns a sorted list of the available writing systems. This is list generated from information about all installed fonts on the system.

See also families().

list-of-QFontDatabase.WritingSystem QFontDatabase.writingSystems (self, QString family)

Returns a sorted list of the writing systems supported by a given font family.

See also families().

QString QFontDatabase.writingSystemSample (WritingSystem writingSystem)

Returns a string with sample characters from writingSystem.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfontdialog-fontdialogoptions.html0000644000076500000240000001473312536324503024425 0ustar philstaff00000000000000 QFontDialog.FontDialogOptions Class Reference
  Home · All Classes · Modules

QFontDialog.FontDialogOptions Class Reference
[QtGui module]

Methods

Special Methods

  • FontDialogOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, FontDialogOptions f)
  • FontDialogOptions __iand__ (self, int mask)
  • int __int__ (self)
  • FontDialogOptions __invert__ (self)
  • FontDialogOptions __ior__ (self, FontDialogOptions f)
  • FontDialogOptions __ixor__ (self, FontDialogOptions f)
  • bool __ne__ (self, FontDialogOptions f)
  • FontDialogOptions __or__ (self, FontDialogOptions f)
  • FontDialogOptions __or__ (self, int f)
  • FontDialogOptions __xor__ (self, FontDialogOptions f)
  • FontDialogOptions __xor__ (self, int f)

Detailed Description


Method Documentation

FontDialogOptions.__init__ (self, FontDialogOptions)

FontDialogOptions.__init__ (self, int)

FontDialogOptions.__init__ (self)

FontDialogOptions FontDialogOptions.__and__ (self, int mask)

int FontDialogOptions.__bool__ (self)

bool FontDialogOptions.__eq__ (self, FontDialogOptions f)

FontDialogOptions FontDialogOptions.__iand__ (self, int mask)

int FontDialogOptions.__int__ (self)

FontDialogOptions FontDialogOptions.__invert__ (self)

FontDialogOptions FontDialogOptions.__ior__ (self, FontDialogOptions f)

FontDialogOptions FontDialogOptions.__ixor__ (self, FontDialogOptions f)

bool FontDialogOptions.__ne__ (self, FontDialogOptions f)

FontDialogOptions FontDialogOptions.__or__ (self, FontDialogOptions f)

FontDialogOptions FontDialogOptions.__or__ (self, int f)

FontDialogOptions FontDialogOptions.__xor__ (self, FontDialogOptions f)

FontDialogOptions FontDialogOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfontdialog.html0000644000076500000240000004326412536324503020666 0ustar philstaff00000000000000 QFontDialog Class Reference
  Home · All Classes · Modules

QFontDialog Class Reference
[QtGui module]

The QFontDialog class provides a dialog widget for selecting a font. More...

Inherits QDialog.

Types

Methods

Static Methods

  • (QFont, bool ok) getFont (QFont initial, QWidget parent, QString title, FontDialogOptions options)
  • (QFont, bool ok) getFont (QFont def, QWidget parent, QString caption)
  • (QFont, bool ok) getFont (QFont initial, QWidget parent = None)
  • (QFont, bool ok) getFont (QWidget parent = None)

Qt Signals


Detailed Description

The QFontDialog class provides a dialog widget for selecting a font.

A font dialog is created through one of the static getFont() functions.

Examples:

 bool ok;
 QFont font = QFontDialog.getFont(
                 &ok, QFont("Helvetica [Cronyx]", 10), this);
 if (ok) {
     // the user clicked OK and font is set to the font the user selected
 } else {
     // the user canceled the dialog; font is set to the initial
     // value, in this case Helvetica [Cronyx], 10
 }

The dialog can also be used to set a widget's font directly:

 myWidget.setFont(QFontDialog.getFont(0, myWidget.font()));

If the user clicks OK the font they chose will be used for myWidget, and if they click Cancel the original font is used.

A font dialog in the Plastique widget style.


Type Documentation

QFontDialog.FontDialogOption

This enum specifies various options that affect the look and feel of a font dialog.

Constant Value Description
QFontDialog.NoButtons 0x00000001 Don't display OK and Cancel buttons. (Useful for "live dialogs".)
QFontDialog.DontUseNativeDialog 0x00000002 Use Qt's standard font dialog on the Mac instead of Apple's native font panel. (Currently, the native dialog is never used, but this is likely to change in future Qt releases.)

This enum was introduced or modified in Qt 4.5.

The FontDialogOptions type is a typedef for QFlags<FontDialogOption>. It stores an OR combination of FontDialogOption values.

See also options, setOption(), and testOption().


Method Documentation

QFontDialog.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a standard font dialog.

Use setCurrentFont() to set the initial font attributes.

The parent parameter is passed to the QDialog constructor.

This function was introduced in Qt 4.5.

See also getFont().

QFontDialog.__init__ (self, QFont initial, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a standard font dialog with the given parent and specified initial font.

This function was introduced in Qt 4.5.

QFontDialog.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

QFont QFontDialog.currentFont (self)

QFontDialog.done (self, int result)

Reimplemented from QDialog.done().

Closes the dialog and sets its result code to result. If this dialog is shown with exec_(), done() causes the local event loop to finish, and exec_() to return result.

See also QDialog.done().

(QFont, bool ok) QFontDialog.getFont (QFont initial, QWidget parent, QString title, FontDialogOptions options)

Executes a modal font dialog and returns a font.

If the user clicks OK, the selected font is returned. If the user clicks Cancel, the initial font is returned.

The dialog is constructed with the given parent and the options specified in options. title is shown as the window title of the dialog and initial is the initially selected font. If the ok parameter is not-null, the value it refers to is set to true if the user clicks OK, and set to false if the user clicks Cancel.

Examples:

 bool ok;
 QFont font = QFontDialog.getFont(&ok, QFont("Times", 12), this);
 if (ok) {
     // font is set to the font the user selected
 } else {
     // the user canceled the dialog; font is set to the initial
     // value, in this case Times, 12.
 }

The dialog can also be used to set a widget's font directly:

 myWidget.setFont(QFontDialog.getFont(0, myWidget.font()));

In this example, if the user clicks OK the font they chose will be used, and if they click Cancel the original font is used.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFontDialog constructors.

(QFont, bool ok) QFontDialog.getFont (QFont def, QWidget parent, QString caption)

Call getFont(ok, initial, parent) instead.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFontDialog constructors.

The name parameter is ignored.

This function was introduced in Qt 4.5.

(QFont, bool ok) QFontDialog.getFont (QFont initial, QWidget parent = None)

Call getFont(ok, parent) instead.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QFontDialog constructors.

The name parameter is ignored.

(QFont, bool ok) QFontDialog.getFont (QWidget parent = None)

This is an overloaded function.

This function was introduced in Qt 4.5.

QFontDialog.open (self)

This is an overloaded function.

Opens the dialog and connects its fontSelected() signal to the slot specified by receiver and member.

The signal will be disconnected from the slot when the dialog is closed.

This function was introduced in Qt 4.5.

QFontDialog.open (self, QObject receiver, SLOT()SLOT() member)

QFontDialog.open (self, callable receiver)

FontDialogOptions QFontDialog.options (self)

QFont QFontDialog.selectedFont (self)

Returns the font that the user selected by clicking the OK or equivalent button.

Note: This font is not always the same as the font held by the currentFont property since the user can choose different fonts before finally selecting the one to use.

QFontDialog.setCurrentFont (self, QFont font)

QFontDialog.setOption (self, FontDialogOption option, bool on = True)

Sets the given option to be enabled if on is true; otherwise, clears the given option.

See also options and testOption().

QFontDialog.setOptions (self, FontDialogOptions options)

QFontDialog.setVisible (self, bool visible)

Reimplemented from QWidget.setVisible().

bool QFontDialog.testOption (self, FontDialogOption option)

Returns true if the given option is enabled; otherwise, returns false.

See also options and setOption().


Qt Signal Documentation

void currentFontChanged (const QFont&)

This is the default overload of this signal.

This signal is emitted when the current font is changed. The new font is specified in font.

The signal is emitted while a user is selecting a font. Ultimately, the chosen font may differ from the font currently selected.

This function was introduced in Qt 4.5.

See also currentFont, fontSelected(), and selectedFont().

void fontSelected (const QFont&)

This is the default overload of this signal.

This signal is emitted when a font has been selected. The selected font is specified in font.

The signal is only emitted when a user has chosen the final font to be used. It is not emitted while the user is changing the current font in the font dialog.

This function was introduced in Qt 4.5.

See also selectedFont(), currentFontChanged(), and currentFont.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfontinfo.html0000644000076500000240000002330012536324503020347 0ustar philstaff00000000000000 QFontInfo Class Reference
  Home · All Classes · Modules

QFontInfo Class Reference
[QtGui module]

The QFontInfo class provides general information about fonts. More...

Methods


Detailed Description

The QFontInfo class provides general information about fonts.

The QFontInfo class provides the same access functions as QFont, e.g. family(), pointSize(), italic(), weight(), fixedPitch(), styleHint() etc. But whilst the QFont access functions return the values that were set, a QFontInfo object returns the values that apply to the font that will actually be used to draw the text.

For example, when the program asks for a 25pt Courier font on a machine that has a non-scalable 24pt Courier font, QFont will (normally) use the 24pt Courier for rendering. In this case, QFont.pointSize() returns 25 and QFontInfo.pointSize() returns 24.

There are three ways to create a QFontInfo object.

  1. Calling the QFontInfo constructor with a QFont creates a font info object for a screen-compatible font, i.e. the font cannot be a printer font. If the font is changed later, the font info object is not updated.

    (Note: If you use a printer font the values returned may be inaccurate. Printer fonts are not always accessible so the nearest screen font is used if a printer font is supplied.)

  2. QWidget.fontInfo() returns the font info for a widget's font. This is equivalent to calling QFontInfo(widget->font()). If the widget's font is changed later, the font info object is not updated.
  3. QPainter.fontInfo() returns the font info for a painter's current font. If the painter's font is changed later, the font info object is not updated.

Method Documentation

QFontInfo.__init__ (self, QFont)

Constructs a font info object for font.

The font must be screen-compatible, i.e. a font you use when drawing text in widgets or pixmaps, not QPicture or QPrinter.

The font info object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.

Use QPainter.fontInfo() to get the font info when painting. This will give correct results also when painting on paint device that is not screen-compatible.

QFontInfo.__init__ (self, QFontInfo)

Constructs a copy of fi.

bool QFontInfo.bold (self)

Returns true if weight() would return a value greater than QFont.Normal; otherwise returns false.

See also weight() and QFont.bold().

bool QFontInfo.exactMatch (self)

Returns true if the matched window system font is exactly the same as the one specified by the font; otherwise returns false.

See also QFont.exactMatch().

QString QFontInfo.family (self)

Returns the family name of the matched window system font.

See also QFont.family().

bool QFontInfo.fixedPitch (self)

Returns the fixed pitch value of the matched window system font.

See also QFont.fixedPitch().

bool QFontInfo.italic (self)

Returns the italic value of the matched window system font.

See also QFont.italic().

int QFontInfo.pixelSize (self)

Returns the pixel size of the matched window system font.

See also QFont.pointSize().

int QFontInfo.pointSize (self)

Returns the point size of the matched window system font.

See also pointSizeF() and QFont.pointSize().

float QFontInfo.pointSizeF (self)

Returns the point size of the matched window system font.

See also QFont.pointSizeF().

bool QFontInfo.rawMode (self)

Returns true if the font is a raw mode font; otherwise returns false.

If it is a raw mode font, all other functions in QFontInfo will return the same values set in the QFont, regardless of the font actually used.

See also QFont.rawMode().

QFont.Style QFontInfo.style (self)

Returns the style value of the matched window system font.

See also QFont.style().

QFont.StyleHint QFontInfo.styleHint (self)

Returns the style of the matched window system font.

Currently only returns the style hint set in QFont.

See also QFont.styleHint() and QFont.StyleHint.

QString QFontInfo.styleName (self)

Returns the style name of the matched window system font on system that supports it.

This function was introduced in Qt 4.8.

See also QFont.styleName().

int QFontInfo.weight (self)

Returns the weight of the matched window system font.

See also QFont.weight() and bold().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfontmetrics.html0000644000076500000240000006431312536324504021074 0ustar philstaff00000000000000 QFontMetrics Class Reference
  Home · All Classes · Modules

QFontMetrics Class Reference
[QtGui module]

The QFontMetrics class provides font metrics information. More...

Methods

Special Methods

  • bool __eq__ (self, QFontMetrics other)
  • bool __ne__ (self, QFontMetrics other)

Detailed Description

The QFontMetrics class provides font metrics information.

QFontMetrics functions calculate the size of characters and strings for a given font. There are three ways you can create a QFontMetrics object:

  1. Calling the QFontMetrics constructor with a QFont creates a font metrics object for a screen-compatible font, i.e. the font cannot be a printer font. If the font is changed later, the font metrics object is not updated.

    (Note: If you use a printer font the values returned may be inaccurate. Printer fonts are not always accessible so the nearest screen font is used if a printer font is supplied.)

  2. QWidget.fontMetrics() returns the font metrics for a widget's font. This is equivalent to QFontMetrics(widget->font()). If the widget's font is changed later, the font metrics object is not updated.
  3. QPainter.fontMetrics() returns the font metrics for a painter's current font. If the painter's font is changed later, the font metrics object is not updated.

Once created, the object provides functions to access the individual metrics of the font, its characters, and for strings rendered in the font.

There are several functions that operate on the font: ascent(), descent(), height(), leading() and lineSpacing() return the basic size properties of the font. The underlinePos(), overlinePos(), strikeOutPos() and lineWidth() functions, return the properties of the line that underlines, overlines or strikes out the characters. These functions are all fast.

There are also some functions that operate on the set of glyphs in the font: minLeftBearing(), minRightBearing() and maxWidth(). These are by necessity slow, and we recommend avoiding them if possible.

For each character, you can get its width(), leftBearing() and rightBearing() and find out whether it is in the font using inFont(). You can also treat the character as a string, and use the string functions on it.

The string functions include width(), to return the width of a string in pixels (or points, for a printer), boundingRect(), to return a rectangle large enough to contain the rendered string, and size(), to return the size of that rectangle.

Example:

 QFont font("times", 24);
 QFontMetrics fm(font);
 int pixelsWide = fm.width("What's the width of this text?");
 int pixelsHigh = fm.height();

Method Documentation

QFontMetrics.__init__ (self, QFont)

Constructs a font metrics object for font.

The font metrics will be compatible with the paintdevice used to create font.

The font metrics object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.

Use QFontMetrics(const QFont &, QPaintDevice *) to get the font metrics that are compatible with a certain paint device.

QFontMetrics.__init__ (self, QFont, QPaintDevice pd)

Constructs a font metrics object for font and paintdevice.

The font metrics will be compatible with the paintdevice passed. If the paintdevice is 0, the metrics will be screen-compatible, ie. the metrics you get if you use the font for drawing text on a widgets or pixmaps, not on a QPicture or QPrinter.

The font metrics object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.

QFontMetrics.__init__ (self, QFontMetrics)

Constructs a copy of fm.

int QFontMetrics.ascent (self)

Returns the ascent of the font.

The ascent of a font is the distance from the baseline to the highest position characters extend to. In practice, some font designers break this rule, e.g. when they put more than one accent on top of a character, or to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.

See also descent().

int QFontMetrics.averageCharWidth (self)

Returns the average width of glyphs in the font.

This function was introduced in Qt 4.2.

QRect QFontMetrics.boundingRect (self, QChar)

Returns the rectangle that is covered by ink if character ch were to be drawn at the origin of the coordinate system.

Note that the bounding rectangle may extend to the left of (0, 0) (e.g., for italicized fonts), and that the text output may cover all pixels in the bounding rectangle. For a space character the rectangle will usually be empty.

Note that the rectangle usually extends both above and below the base line.

Warning: The width of the returned rectangle is not the advance width of the character. Use boundingRect(const QString &) or width() instead.

See also width().

QRect QFontMetrics.boundingRect (self, QString text)

Returns the bounding rectangle of the characters in the string specified by text. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).

Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the width of the returned rectangle might be different than what the width() method returns.

If you want to know the advance width of the string (to layout a set of strings next to each other), use width() instead.

Newline characters are processed as normal characters, not as linebreaks.

The height of the bounding rectangle is at least as large as the value returned by height().

See also width(), height(), QPainter.boundingRect(), and tightBoundingRect().

QRect QFontMetrics.boundingRect (self, QRect rect, int flags, QString text, int tabStops = 0, list-of-int tabArray = 0)

The tabArray argument may also be None.

QRect QFontMetrics.boundingRect (self, int x, int y, int width, int height, int flags, QString text, int tabStops = 0, list-of-int tabArray = 0)

The tabArray argument may also be None.

QRect QFontMetrics.boundingRectChar (self, QChar)

int QFontMetrics.charWidth (self, QString str, int pos)

int QFontMetrics.descent (self)

Returns the descent of the font.

The descent is the distance from the base line to the lowest point characters extend to. In practice, some font designers break this rule, e.g. to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.

See also ascent().

QString QFontMetrics.elidedText (self, QString text, Qt.TextElideMode mode, int width, int flags = 0)

If the string text is wider than width, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.

The mode parameter specifies whether the text is elided on the left (e.g., "...tech"), in the middle (e.g., "Tr...ch"), or on the right (e.g., "Trol...").

The width is specified in pixels, not characters.

The flags argument is optional and currently only supports Qt.TextShowMnemonic as value.

The elide mark will follow the layout direction; it will be on the right side of the text for right-to-left layouts, and on the left side for right-to-left layouts. Note that this behavior is independent of the text language.

This function was introduced in Qt 4.2.

int QFontMetrics.height (self)

Returns the height of the font.

This is always equal to ascent()+descent()+1 (the 1 is for the base line).

See also leading() and lineSpacing().

bool QFontMetrics.inFont (self, QChar)

Returns true if character ch is a valid character in the font; otherwise returns false.

bool QFontMetrics.inFontUcs4 (self, int character)

Returns true if the given character encoded in UCS-4/UTF-32 is a valid character in the font; otherwise returns false.

This function was introduced in Qt 4.8.

int QFontMetrics.leading (self)

Returns the leading of the font.

This is the natural inter-line spacing.

See also height() and lineSpacing().

int QFontMetrics.leftBearing (self, QChar)

Returns the left bearing of character ch in the font.

The left bearing is the right-ward distance of the left-most pixel of the character from the logical origin of the character. This value is negative if the pixels of the character extend to the left of the logical origin.

See width(QChar) for a graphical description of this metric.

See also rightBearing(), minLeftBearing(), and width().

int QFontMetrics.lineSpacing (self)

Returns the distance from one base line to the next.

This value is always equal to leading()+height().

See also height() and leading().

int QFontMetrics.lineWidth (self)

Returns the width of the underline and strikeout lines, adjusted for the point size of the font.

See also underlinePos(), overlinePos(), and strikeOutPos().

int QFontMetrics.maxWidth (self)

Returns the width of the widest character in the font.

int QFontMetrics.minLeftBearing (self)

Returns the minimum left bearing of the font.

This is the smallest leftBearing(char) of all characters in the font.

Note that this function can be very slow if the font is large.

See also minRightBearing() and leftBearing().

int QFontMetrics.minRightBearing (self)

Returns the minimum right bearing of the font.

This is the smallest rightBearing(char) of all characters in the font.

Note that this function can be very slow if the font is large.

See also minLeftBearing() and rightBearing().

int QFontMetrics.overlinePos (self)

Returns the distance from the base line to where an overline should be drawn.

See also underlinePos(), strikeOutPos(), and lineWidth().

int QFontMetrics.rightBearing (self, QChar)

Returns the right bearing of character ch in the font.

The right bearing is the left-ward distance of the right-most pixel of the character from the logical origin of a subsequent character. This value is negative if the pixels of the character extend to the right of the width() of the character.

See width() for a graphical description of this metric.

See also leftBearing(), minRightBearing(), and width().

QSize QFontMetrics.size (self, int flags, QString text, int tabStops = 0, list-of-int tabArray = 0)

The tabArray argument may also be None.

Returns the size in pixels of text.

The flags argument is the bitwise OR of the following flags:

If Qt.TextExpandTabs is set in flags, then: if tabArray is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise if tabStops is non-zero, it is used as the tab spacing (in pixels).

Newline characters are processed as linebreaks.

Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.

See also boundingRect().

int QFontMetrics.strikeOutPos (self)

Returns the distance from the base line to where the strikeout line should be drawn.

See also underlinePos(), overlinePos(), and lineWidth().

QRect QFontMetrics.tightBoundingRect (self, QString text)

Returns a tight bounding rectangle around the characters in the string specified by text. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).

Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the width of the returned rectangle might be different than what the width() method returns.

If you want to know the advance width of the string (to layout a set of strings next to each other), use width() instead.

Newline characters are processed as normal characters, not as linebreaks.

Warning: Calling this method is very slow on Windows.

This function was introduced in Qt 4.3.

See also width(), height(), and boundingRect().

int QFontMetrics.underlinePos (self)

Returns the distance from the base line to where an underscore should be drawn.

See also overlinePos(), strikeOutPos(), and lineWidth().

int QFontMetrics.width (self, QChar)

Returns the width in pixels of the first len characters of text. If len is negative (the default), the entire string is used.

Note that this value is not equal to boundingRect().width(); boundingRect() returns a rectangle describing the pixels this string will cover whereas width() returns the distance to where the next string should be drawn.

See also boundingRect().

int QFontMetrics.width (self, QString text, int length = -1)

int QFontMetrics.widthChar (self, QChar)

int QFontMetrics.xHeight (self)

Returns the 'x' height of the font. This is often but not always the same as the height of the character 'x'.

bool QFontMetrics.__eq__ (self, QFontMetrics other)

bool QFontMetrics.__ne__ (self, QFontMetrics other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfontmetricsf.html0000644000076500000240000007241512536324504021244 0ustar philstaff00000000000000 QFontMetricsF Class Reference
  Home · All Classes · Modules

QFontMetricsF Class Reference
[QtGui module]

The QFontMetricsF class provides font metrics information. More...

Methods

Special Methods

  • bool __eq__ (self, QFontMetricsF other)
  • bool __ne__ (self, QFontMetricsF other)

Detailed Description

The QFontMetricsF class provides font metrics information.

QFontMetricsF functions calculate the size of characters and strings for a given font. You can construct a QFontMetricsF object with an existing QFont to obtain metrics for that font. If the font is changed later, the font metrics object is not updated.

Once created, the object provides functions to access the individual metrics of the font, its characters, and for strings rendered in the font.

There are several functions that operate on the font: ascent(), descent(), height(), leading() and lineSpacing() return the basic size properties of the font. The underlinePos(), overlinePos(), strikeOutPos() and lineWidth() functions, return the properties of the line that underlines, overlines or strikes out the characters. These functions are all fast.

There are also some functions that operate on the set of glyphs in the font: minLeftBearing(), minRightBearing() and maxWidth(). These are by necessity slow, and we recommend avoiding them if possible.

For each character, you can get its width(), leftBearing() and rightBearing() and find out whether it is in the font using inFont(). You can also treat the character as a string, and use the string functions on it.

The string functions include width(), to return the width of a string in pixels (or points, for a printer), boundingRect(), to return a rectangle large enough to contain the rendered string, and size(), to return the size of that rectangle.

Example:

 QFont font("times", 24);
 QFontMetricsF fm(font);
 qreal pixelsWide = fm.width("What's the width of this text?");
 qreal pixelsHigh = fm.height();

Method Documentation

QFontMetricsF.__init__ (self, QFont)

Constructs a font metrics object for font.

The font metrics will be compatible with the paintdevice used to create font.

The font metrics object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.

Use QFontMetricsF(const QFont &, QPaintDevice *) to get the font metrics that are compatible with a certain paint device.

QFontMetricsF.__init__ (self, QFont, QPaintDevice pd)

Constructs a font metrics object for font and paintdevice.

The font metrics will be compatible with the paintdevice passed. If the paintdevice is 0, the metrics will be screen-compatible, ie. the metrics you get if you use the font for drawing text on a widgets or pixmaps, not on a QPicture or QPrinter.

The font metrics object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.

QFontMetricsF.__init__ (self, QFontMetrics)

Constructs a font metrics object with floating point precision from the given fontMetrics object.

This function was introduced in Qt 4.2.

QFontMetricsF.__init__ (self, QFontMetricsF)

Constructs a copy of fm.

float QFontMetricsF.ascent (self)

Returns the ascent of the font.

The ascent of a font is the distance from the baseline to the highest position characters extend to. In practice, some font designers break this rule, e.g. when they put more than one accent on top of a character, or to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.

See also descent().

float QFontMetricsF.averageCharWidth (self)

Returns the average width of glyphs in the font.

This function was introduced in Qt 4.2.

QRectF QFontMetricsF.boundingRect (self, QChar)

Returns the bounding rectangle of the characters in the string specified by text. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).

Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the width of the returned rectangle might be different than what the width() method returns.

If you want to know the advance width of the string (to layout a set of strings next to each other), use width() instead.

Newline characters are processed as normal characters, not as linebreaks.

The height of the bounding rectangle is at least as large as the value returned height().

See also width(), height(), and QPainter.boundingRect().

QRectF QFontMetricsF.boundingRect (self, QString string)

Returns the bounding rectangle of the character ch relative to the left-most point on the base line.

Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the text output may cover all pixels in the bounding rectangle.

Note that the rectangle usually extends both above and below the base line.

See also width().

QRectF QFontMetricsF.boundingRect (self, QRectF rect, int flags, QString text, int tabStops = 0, list-of-int tabArray = 0)

The tabArray argument may also be None.

This is an overloaded function.

Returns the bounding rectangle of the characters in the given text. This is the set of pixels the text would cover if drawn when constrained to the bounding rectangle specified by rect.

The flags argument is the bitwise OR of the following flags:

Qt.Horizontal alignment defaults to Qt.AlignLeft and vertical alignment defaults to Qt.AlignTop.

If several of the horizontal or several of the vertical alignment flags are set, the resulting alignment is undefined.

These flags are defined in Qt.AlignmentFlag.

If Qt.TextExpandTabs is set in flags, the following behavior is used to interpret tab characters in the text:

  • If tabArray is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.
  • If tabStops is non-zero, it is used as the tab spacing (in pixels).

Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts.

Newline characters are processed as line breaks.

Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.

The bounding rectangle returned by this function is somewhat larger than that calculated by the simpler boundingRect() function. This function uses the maximum left and right font bearings as is necessary for multi-line text to align correctly. Also, fontHeight() and lineSpacing() are used to calculate the height, rather than individual character heights.

See also width(), QPainter.boundingRect(), and Qt.Alignment.

QRectF QFontMetricsF.boundingRectChar (self, QChar)

float QFontMetricsF.descent (self)

Returns the descent of the font.

The descent is the distance from the base line to the lowest point characters extend to. (Note that this is different from X, which adds 1 pixel.) In practice, some font designers break this rule, e.g. to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.

See also ascent().

QString QFontMetricsF.elidedText (self, QString text, Qt.TextElideMode mode, float width, int flags = 0)

If the string text is wider than width, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.

The mode parameter specifies whether the text is elided on the left (e.g., "...tech"), in the middle (e.g., "Tr...ch"), or on the right (e.g., "Trol...").

The width is specified in pixels, not characters.

The flags argument is optional and currently only supports Qt.TextShowMnemonic as value.

This function was introduced in Qt 4.2.

float QFontMetricsF.height (self)

Returns the height of the font.

This is always equal to ascent()+descent()+1 (the 1 is for the base line).

See also leading() and lineSpacing().

bool QFontMetricsF.inFont (self, QChar)

Returns true if character ch is a valid character in the font; otherwise returns false.

bool QFontMetricsF.inFontUcs4 (self, int character)

Returns true if the character given by ch, encoded in UCS-4/UTF-32, is a valid character in the font; otherwise returns false.

This function was introduced in Qt 4.8.

float QFontMetricsF.leading (self)

Returns the leading of the font.

This is the natural inter-line spacing.

See also height() and lineSpacing().

float QFontMetricsF.leftBearing (self, QChar)

Returns the left bearing of character ch in the font.

The left bearing is the right-ward distance of the left-most pixel of the character from the logical origin of the character. This value is negative if the pixels of the character extend to the left of the logical origin.

See width(QChar) for a graphical description of this metric.

See also rightBearing(), minLeftBearing(), and width().

float QFontMetricsF.lineSpacing (self)

Returns the distance from one base line to the next.

This value is always equal to leading()+height().

See also height() and leading().

float QFontMetricsF.lineWidth (self)

Returns the width of the underline and strikeout lines, adjusted for the point size of the font.

See also underlinePos(), overlinePos(), and strikeOutPos().

float QFontMetricsF.maxWidth (self)

Returns the width of the widest character in the font.

float QFontMetricsF.minLeftBearing (self)

Returns the minimum left bearing of the font.

This is the smallest leftBearing(char) of all characters in the font.

Note that this function can be very slow if the font is large.

See also minRightBearing() and leftBearing().

float QFontMetricsF.minRightBearing (self)

Returns the minimum right bearing of the font.

This is the smallest rightBearing(char) of all characters in the font.

Note that this function can be very slow if the font is large.

See also minLeftBearing() and rightBearing().

float QFontMetricsF.overlinePos (self)

Returns the distance from the base line to where an overline should be drawn.

See also underlinePos(), strikeOutPos(), and lineWidth().

float QFontMetricsF.rightBearing (self, QChar)

Returns the right bearing of character ch in the font.

The right bearing is the left-ward distance of the right-most pixel of the character from the logical origin of a subsequent character. This value is negative if the pixels of the character extend to the right of the width() of the character.

See width() for a graphical description of this metric.

See also leftBearing(), minRightBearing(), and width().

QSizeF QFontMetricsF.size (self, int flags, QString text, int tabStops = 0, list-of-int tabArray = 0)

The tabArray argument may also be None.

Returns the size in pixels of the characters in the given text.

The flags argument is the bitwise OR of the following flags:

These flags are defined in Qt.TextFlags.

If Qt.TextExpandTabs is set in flags, the following behavior is used to interpret tab characters in the text:

  • If tabArray is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.
  • If tabStops is non-zero, it is used as the tab spacing (in pixels).

Newline characters are processed as line breaks.

Note: Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.

See also boundingRect().

float QFontMetricsF.strikeOutPos (self)

Returns the distance from the base line to where the strikeout line should be drawn.

See also underlinePos(), overlinePos(), and lineWidth().

QRectF QFontMetricsF.tightBoundingRect (self, QString text)

Returns a tight bounding rectangle around the characters in the string specified by text. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).

Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the width of the returned rectangle might be different than what the width() method returns.

If you want to know the advance width of the string (to layout a set of strings next to each other), use width() instead.

Newline characters are processed as normal characters, not as linebreaks.

Warning: Calling this method is very slow on Windows.

This function was introduced in Qt 4.3.

See also width(), height(), and boundingRect().

float QFontMetricsF.underlinePos (self)

Returns the distance from the base line to where an underscore should be drawn.

See also overlinePos(), strikeOutPos(), and lineWidth().

float QFontMetricsF.width (self, QChar)

Returns the width in pixels of the characters in the given text.

Note that this value is not equal to the width returned by boundingRect().width() because boundingRect() returns a rectangle describing the pixels this string will cover whereas width() returns the distance to where the next string should be drawn.

See also boundingRect().

float QFontMetricsF.width (self, QString string)

This is an overloaded function.

Bearings

Returns the logical width of character ch in pixels. This is a distance appropriate for drawing a subsequent character after ch.

Some of the metrics are described in the image to the right. The central dark rectangles cover the logical width() of each character. The outer pale rectangles cover the leftBearing() and rightBearing() of each character. Notice that the bearings of "f" in this particular font are both negative, while the bearings of "o" are both positive.

Warning: This function will produce incorrect results for Arabic characters or non-spacing marks in the middle of a string, as the glyph shaping and positioning of marks that happens when processing strings cannot be taken into account. When implementing an interactive text control, use QTextLayout instead.

See also boundingRect().

float QFontMetricsF.widthChar (self, QChar)

float QFontMetricsF.xHeight (self)

Returns the 'x' height of the font. This is often but not always the same as the height of the character 'x'.

bool QFontMetricsF.__eq__ (self, QFontMetricsF other)

bool QFontMetricsF.__ne__ (self, QFontMetricsF other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qformbuilder.html0000644000076500000240000001771712536324525021062 0ustar philstaff00000000000000 QFormBuilder Class Reference
  Home · All Classes · Modules

QFormBuilder Class Reference
[QtDesigner module]

The QFormBuilder class is used to dynamically construct user interfaces from UI files at run-time. More...

Inherits QAbstractFormBuilder.

Methods


Detailed Description

The QFormBuilder class is used to dynamically construct user interfaces from UI files at run-time.

The QFormBuilder class provides a mechanism for dynamically creating user interfaces at run-time, based on UI files created with Qt Designer. For example:

         MyForm.MyForm(QWidget *parent)
             : QWidget(parent)
         {
             QFormBuilder builder;
             QFile file(":/forms/myWidget.ui");
             file.open(QFile.ReadOnly);
             QWidget *myWidget = builder.load(&file, this);
             file.close();

             QVBoxLayout *layout = new QVBoxLayout;
             layout->addWidget(myWidget);
             setLayout(layout);
         }

By including the user interface in the example's resources (myForm.qrc), we ensure that it will be present when the example is run:

     <!DOCTYPE RCC><RCC version="1.0">
     <qresource prefix="/forms">
        <file>mywidget.ui</file>
     </qresource>
     </RCC>

QFormBuilder extends the QAbstractFormBuilder base class with a number of functions that are used to support custom widget plugins:

  • pluginPaths() returns the list of paths that the form builder searches when loading custom widget plugins.
  • addPluginPath() allows additional paths to be registered with the form builder.
  • setPluginPath() is used to replace the existing list of paths with a list obtained from some other source.
  • clearPluginPaths() removes all paths registered with the form builder.
  • customWidgets() returns a list of interfaces to plugins that can be used to create new instances of registered custom widgets.

The QFormBuilder class is typically used by custom components and applications that embed Qt Designer. Standalone applications that need to dynamically generate user interfaces at run-time use the QUiLoader class, found in the QtUiTools module.


Method Documentation

QFormBuilder.__init__ (self)

Constructs a new form builder.

QFormBuilder.addPluginPath (self, QString pluginPath)

Adds a new plugin path specified by pluginPath to the list of paths that will be searched by the form builder when loading a custom widget plugin.

See also setPluginPath() and clearPluginPaths().

QFormBuilder.clearPluginPaths (self)

Clears the list of paths that the form builder uses to search for custom widget plugins.

See also pluginPaths().

list-of-QDesignerCustomWidgetInterface QFormBuilder.customWidgets (self)

Returns a list of the available plugins.

QStringList QFormBuilder.pluginPaths (self)

Returns the list of paths the form builder searches for plugins.

See also addPluginPath().

QFormBuilder.setPluginPath (self, QStringList pluginPaths)

Sets the list of plugin paths to the list specified by pluginPaths.

See also addPluginPath().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qformlayout.html0000644000076500000240000011156212536324504020737 0ustar philstaff00000000000000 QFormLayout Class Reference
  Home · All Classes · Modules

QFormLayout Class Reference
[QtGui module]

The QFormLayout class manages forms of input widgets and their associated labels. More...

Inherits QLayout.

Types

  • enum FieldGrowthPolicy { FieldsStayAtSizeHint, ExpandingFieldsGrow, AllNonFixedFieldsGrow }
  • enum ItemRole { LabelRole, FieldRole, SpanningRole }
  • enum RowWrapPolicy { DontWrapRows, WrapLongRows, WrapAllRows }

Methods


Detailed Description

The QFormLayout class manages forms of input widgets and their associated labels.

QFormLayout is a convenience layout class that lays out its children in a two-column form. The left column consists of labels and the right column consists of "field" widgets (line editors, spin boxes, etc.).

Traditionally, such two-column form layouts were achieved using QGridLayout. QFormLayout is a higher-level alternative that provides the following advantages:

  • Adherence to the different platform's look and feel guidelines.

    For example, the Mac OS X Aqua and KDE guidelines specify that the labels should be right-aligned, whereas Windows and GNOME applications normally use left-alignment.

  • Support for wrapping long rows.

    For devices with small displays, QFormLayout can be set to wrap long rows, or even to wrap all rows.

  • Convenient API for creating label--field pairs.

    The addRow() overload that takes a QString and a QWidget * creates a QLabel behind the scenes and automatically set up its buddy. We can then write code like this:

     QFormLayout *formLayout = new QFormLayout;
     formLayout->addRow(tr("&Name:"), nameLineEdit);
     formLayout->addRow(tr("&Email:"), emailLineEdit);
     formLayout->addRow(tr("&Age:"), ageSpinBox);
     setLayout(formLayout);
    

    Compare this with the following code, written using QGridLayout:

     nameLabel = new QLabel(tr("&Name:"));
     nameLabel->setBuddy(nameLineEdit);
    
     emailLabel = new QLabel(tr("&Name:"));
     emailLabel->setBuddy(emailLineEdit);
    
     ageLabel = new QLabel(tr("&Name:"));
     ageLabel->setBuddy(ageSpinBox);
    
     QGridLayout *gridLayout = new QGridLayout;
     gridLayout->addWidget(nameLabel, 0, 0);
     gridLayout->addWidget(nameLineEdit, 0, 1);
     gridLayout->addWidget(emailLabel, 1, 0);
     gridLayout->addWidget(emailLineEdit, 1, 1);
     gridLayout->addWidget(ageLabel, 2, 0);
     gridLayout->addWidget(ageSpinBox, 2, 1);
     setLayout(gridLayout);
    

The table below shows the default appearance in different styles.

QCommonStyle derived styles (except QPlastiqueStyle) QMacStyle QPlastiqueStyle Qt Extended styles
Traditional style used for Windows, GNOME, and earlier versions of KDE. Labels are left aligned, and expanding fields grow to fill the available space. (This normally corresponds to what we would get using a two-column QGridLayout.) Style based on the Mac OS X Aqua guidelines. Labels are right-aligned, the fields don't grow beyond their size hint, and the form is horizontally centered. Recommended style for KDE applications. Similar to MacStyle, except that the form is left-aligned and all fields grow to fill the available space. Default style for Qt Extended styles. Labels are right-aligned, expanding fields grow to fill the available space, and row wrapping is enabled for long lines.

The form styles can be also be overridden individually by calling setLabelAlignment(), setFormAlignment(), setFieldGrowthPolicy(), and setRowWrapPolicy(). For example, to simulate the form layout appearance of QMacStyle on all platforms, but with left-aligned labels, you could write:

 formLayout->setRowWrapPolicy(QFormLayout.DontWrapRows);
 formLayout->setFieldGrowthPolicy(QFormLayout.FieldsStayAtSizeHint);
 formLayout->setFormAlignment(Qt.AlignHCenter | Qt.AlignTop);
 formLayout->setLabelAlignment(Qt.AlignLeft);

Type Documentation

QFormLayout.FieldGrowthPolicy

This enum specifies the different policies that can be used to control the way in which the form's fields grow.

Constant Value Description
QFormLayout.FieldsStayAtSizeHint 0 The fields never grow beyond their effective size hint. This is the default for QMacStyle.
QFormLayout.ExpandingFieldsGrow 1 Fields with an horizontal size policy of Expanding or MinimumExpanding will grow to fill the available space. The other fields will not grow beyond their effective size hint. This is the default policy for Plastique.
QFormLayout.AllNonFixedFieldsGrow 2 All fields with a size policy that allows them to grow will grow to fill the available space. This is the default policy for most styles.

See also fieldGrowthPolicy.

QFormLayout.ItemRole

This enum specifies the types of widgets (or other layout items) that may appear in a row.

Constant Value Description
QFormLayout.LabelRole 0 A label widget.
QFormLayout.FieldRole 1 A field widget.
QFormLayout.SpanningRole 2 A widget that spans label and field columns.

See also itemAt() and getItemPosition().

QFormLayout.RowWrapPolicy

This enum specifies the different policies that can be used to control the way in which the form's rows wrap.

Constant Value Description
QFormLayout.DontWrapRows 0 Fields are always laid out next to their label. This is the default policy for all styles except Qt Extended styles and QS60Style.
QFormLayout.WrapLongRows 1 Labels are given enough horizontal space to fit the widest label, and the rest of the space is given to the fields. If the minimum size of a field pair is wider than the available space, the field is wrapped to the next line. This is the default policy for Qt Extended styles and and QS60Style.
QFormLayout.WrapAllRows 2 Fields are always laid out below their label.

See also rowWrapPolicy.


Method Documentation

QFormLayout.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new form layout with the given parent widget.

See also QWidget.setLayout().

QFormLayout.addItem (self, QLayoutItem item)

The item argument has it's ownership transferred to Qt.

Reimplemented from QLayout.addItem().

QFormLayout.addRow (self, QWidget label, QWidget field)

The label argument has it's ownership transferred to Qt.

The field argument has it's ownership transferred to Qt.

Adds a new row to the bottom of this form layout, with the given label and field.

See also insertRow().

QFormLayout.addRow (self, QWidget label, QLayout field)

The label argument has it's ownership transferred to Qt.

The field argument has it's ownership transferred to Qt.

This is an overloaded function.

QFormLayout.addRow (self, QString labelText, QWidget field)

The field argument has it's ownership transferred to Qt.

This is an overloaded function.

This overload automatically creates a QLabel behind the scenes with labelText as its text. The field is set as the new QLabel's buddy.

QFormLayout.addRow (self, QString labelText, QLayout field)

The field argument has it's ownership transferred to Qt.

This is an overloaded function.

This overload automatically creates a QLabel behind the scenes with labelText as its text.

QFormLayout.addRow (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

This is an overloaded function.

Adds the specified widget at the end of this form layout. The widget spans both columns.

QFormLayout.addRow (self, QLayout layout)

The layout argument has it's ownership transferred to Qt.

This is an overloaded function.

Adds the specified layout at the end of this form layout. The layout spans both columns.

int QFormLayout.count (self)

Reimplemented from QLayout.count().

Qt.Orientations QFormLayout.expandingDirections (self)

Reimplemented from QLayoutItem.expandingDirections().

FieldGrowthPolicy QFormLayout.fieldGrowthPolicy (self)

Qt.Alignment QFormLayout.formAlignment (self)

(int rowPtr, ItemRole rolePtr) QFormLayout.getItemPosition (self, int index)

Retrieves the row and role (column) of the item at the specified index. If index is out of bounds, *rowPtr is set to -1; otherwise the row is stored in *rowPtr and the role is stored in *rolePtr.

See also itemAt(), count(), getLayoutPosition(), and getWidgetPosition().

(int rowPtr, ItemRole rolePtr) QFormLayout.getLayoutPosition (self, QLayout layout)

Retrieves the row and role (column) of the specified child layout. If layout is not in the form layout, *rowPtr is set to -1; otherwise the row is stored in *rowPtr and the role is stored in *rolePtr.

(int rowPtr, ItemRole rolePtr) QFormLayout.getWidgetPosition (self, QWidget widget)

Retrieves the row and role (column) of the specified widget in the layout. If widget is not in the layout, *rowPtr is set to -1; otherwise the row is stored in *rowPtr and the role is stored in *rolePtr.

See also getItemPosition() and itemAt().

bool QFormLayout.hasHeightForWidth (self)

Reimplemented from QLayoutItem.hasHeightForWidth().

int QFormLayout.heightForWidth (self, int width)

Reimplemented from QLayoutItem.heightForWidth().

int QFormLayout.horizontalSpacing (self)

QFormLayout.insertRow (self, int row, QWidget label, QWidget field)

The label argument has it's ownership transferred to Qt.

The field argument has it's ownership transferred to Qt.

Inserts a new row at position row in this form layout, with the given label and field. If row is out of bounds, the new row is added at the end.

See also addRow().

QFormLayout.insertRow (self, int row, QWidget label, QLayout field)

The label argument has it's ownership transferred to Qt.

The field argument has it's ownership transferred to Qt.

This is an overloaded function.

QFormLayout.insertRow (self, int row, QString labelText, QWidget field)

The field argument has it's ownership transferred to Qt.

This is an overloaded function.

This overload automatically creates a QLabel behind the scenes with labelText as its text. The field is set as the new QLabel's buddy.

QFormLayout.insertRow (self, int row, QString labelText, QLayout field)

The field argument has it's ownership transferred to Qt.

This is an overloaded function.

This overload automatically creates a QLabel behind the scenes with labelText as its text.

QFormLayout.insertRow (self, int row, QWidget widget)

The widget argument has it's ownership transferred to Qt.

This is an overloaded function.

Inserts the specified widget at position row in this form layout. The widget spans both columns. If row is out of bounds, the widget is added at the end.

QFormLayout.insertRow (self, int row, QLayout layout)

The layout argument has it's ownership transferred to Qt.

This is an overloaded function.

Inserts the specified layout at position row in this form layout. The layout spans both columns. If row is out of bounds, the widget is added at the end.

QFormLayout.invalidate (self)

Reimplemented from QLayoutItem.invalidate().

QLayoutItem QFormLayout.itemAt (self, int row, ItemRole role)

Returns the layout item in the given row with the specified role (column). Returns 0 if there is no such item.

See also QLayout.itemAt() and setItem().

QLayoutItem QFormLayout.itemAt (self, int index)

Reimplemented from QLayout.itemAt().

Qt.Alignment QFormLayout.labelAlignment (self)

QWidget QFormLayout.labelForField (self, QWidget field)

Returns the label associated with the given field.

See also itemAt().

QWidget QFormLayout.labelForField (self, QLayout field)

This is an overloaded function.

QSize QFormLayout.minimumSize (self)

Reimplemented from QLayoutItem.minimumSize().

int QFormLayout.rowCount (self)

Returns the number of rows in the form.

See also QLayout.count().

RowWrapPolicy QFormLayout.rowWrapPolicy (self)

QFormLayout.setFieldGrowthPolicy (self, FieldGrowthPolicy policy)

QFormLayout.setFormAlignment (self, Qt.Alignment alignment)

QFormLayout.setGeometry (self, QRect rect)

Reimplemented from QLayoutItem.setGeometry().

QFormLayout.setHorizontalSpacing (self, int spacing)

QFormLayout.setItem (self, int row, ItemRole role, QLayoutItem item)

The item argument has it's ownership transferred to Qt.

Sets the item in the given row for the given role to item, extending the layout with empty rows if necessary.

If the cell is already occupied, the item is not inserted and an error message is sent to the console. The item spans both columns.

Warning: Do not use this function to add child layouts or child widget items. Use setLayout() or setWidget() instead.

See also setLayout().

QFormLayout.setLabelAlignment (self, Qt.Alignment alignment)

QFormLayout.setLayout (self, int row, ItemRole role, QLayout layout)

The layout argument has it's ownership transferred to Qt.

Sets the sub-layout in the given row for the given role to layout, extending the form layout with empty rows if necessary.

If the cell is already occupied, the layout is not inserted and an error message is sent to the console.

Note: For most applications, addRow() or insertRow() should be used instead of setLayout().

See also setWidget().

QFormLayout.setRowWrapPolicy (self, RowWrapPolicy policy)

QFormLayout.setSpacing (self, int)

This function sets both the vertical and horizontal spacing to spacing.

See also spacing(), setVerticalSpacing(), and setHorizontalSpacing().

QFormLayout.setVerticalSpacing (self, int spacing)

QFormLayout.setWidget (self, int row, ItemRole role, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the widget in the given row for the given role to widget, extending the layout with empty rows if necessary.

If the cell is already occupied, the widget is not inserted and an error message is sent to the console.

Note: For most applications, addRow() or insertRow() should be used instead of setWidget().

See also setLayout().

QSize QFormLayout.sizeHint (self)

Reimplemented from QLayoutItem.sizeHint().

int QFormLayout.spacing (self)

If the vertical spacing is equal to the horizontal spacing, this function returns that value; otherwise it returns -1.

See also setSpacing(), verticalSpacing(), and horizontalSpacing().

QLayoutItem QFormLayout.takeAt (self, int index)

The QLayoutItem result

Reimplemented from QLayout.takeAt().

int QFormLayout.verticalSpacing (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qframe.html0000644000076500000240000004170612536324500017626 0ustar philstaff00000000000000 QFrame Class Reference
  Home · All Classes · Modules

QFrame Class Reference
[
QtGui module]

The QFrame class is the base class of widgets that can have a frame. More...

Inherits QWidget.

Inherited by QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget and QToolBox.

Types

  • enum Shadow { Plain, Raised, Sunken }
  • enum Shape { NoFrame, Box, Panel, WinPanel, ..., StyledPanel }
  • enum StyleMask { Shadow_Mask, Shape_Mask }

Methods


Detailed Description

The QFrame class is the base class of widgets that can have a frame.

QMenu uses this to "raise" the menu above the surrounding screen. QProgressBar has a "sunken" look. QLabel has a flat look. The frames of widgets like these can be changed.

 QLabel label(...);
 label.setFrameStyle(QFrame.Panel | QFrame.Raised);
 label.setLineWidth(2);

 QProgressBar pbar(...);
 label.setFrameStyle(QFrame.NoFrame);

The QFrame class can also be used directly for creating simple placeholder frames without any contents.

The frame style is specified by a frame shape and a shadow style that is used to visually separate the frame from surrounding widgets. These properties can be set together using the setFrameStyle() function and read with frameStyle().

The frame shapes are NoFrame, Box, Panel, StyledPanel, HLine and VLine; the shadow styles are Plain, Raised and Sunken.

A frame widget has three attributes that describe the thickness of the border: lineWidth, midLineWidth, and frameWidth.

  • The line width is the width of the frame border. It can be modified to customize the frame's appearance.
  • The mid-line width specifies the width of an extra line in the middle of the frame, which uses a third color to obtain a special 3D effect. Notice that a mid-line is only drawn for Box, HLine and VLine frames that are raised or sunken.
  • The frame width is determined by the frame style, and the frameWidth() function is used to obtain the value defined for the style used.

The margin between the frame and the contents of the frame can be customized with the QWidget.setContentsMargins() function.

This table shows some of the combinations of styles and line widths:

Table of frame styles


Type Documentation

QFrame.Shadow

This enum type defines the types of shadow that are used to give a 3D effect to frames.

Constant Value Description
QFrame.Plain 0x0010 the frame and contents appear level with the surroundings; draws using the palette QPalette.WindowText color (without any 3D effect)
QFrame.Raised 0x0020 the frame and contents appear raised; draws a 3D raised line using the light and dark colors of the current color group
QFrame.Sunken 0x0030 the frame and contents appear sunken; draws a 3D sunken line using the light and dark colors of the current color group

Shadow interacts with QFrame.Shape, the lineWidth() and the midLineWidth(). See the picture of the frames in the main class documentation.

See also QFrame.Shape, lineWidth(), and midLineWidth().

QFrame.Shape

This enum type defines the shapes of frame available.

Constant Value Description
QFrame.NoFrame 0 QFrame draws nothing
QFrame.Box 0x0001 QFrame draws a box around its contents
QFrame.Panel 0x0002 QFrame draws a panel to make the contents appear raised or sunken
QFrame.StyledPanel 0x0006 draws a rectangular panel with a look that depends on the current GUI style. It can be raised or sunken.
QFrame.HLine 0x0004 QFrame draws a horizontal line that frames nothing (useful as separator)
QFrame.VLine 0x0005 QFrame draws a vertical line that frames nothing (useful as separator)
QFrame.WinPanel 0x0003 draws a rectangular panel that can be raised or sunken like those in Windows 2000. Specifying this shape sets the line width to 2 pixels. WinPanel is provided for compatibility. For GUI style independence we recommend using StyledPanel instead.

When it does not call QStyle, Shape interacts with QFrame.Shadow, the lineWidth() and the midLineWidth() to create the total result. See the picture of the frames in the main class documentation.

See also QFrame.Shadow, QFrame.style(), and QStyle.drawPrimitive().

QFrame.StyleMask

This enum defines two constants that can be used to extract the two components of frameStyle():

Constant Value Description
QFrame.Shadow_Mask 0x00f0 The Shadow part of frameStyle()
QFrame.Shape_Mask 0x000f The Shape part of frameStyle()

Normally, you don't need to use these, since frameShadow() and frameShape() already extract the Shadow and the Shape parts of frameStyle().

See also frameStyle() and setFrameStyle().


Method Documentation

QFrame.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a frame widget with frame style NoFrame and a 1-pixel frame width.

The parent and f arguments are passed to the QWidget constructor.

QFrame.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QFrame.drawFrame (self, QPainter)

bool QFrame.event (self, QEvent e)

Reimplemented from QObject.event().

QRect QFrame.frameRect (self)

Shadow QFrame.frameShadow (self)

Shape QFrame.frameShape (self)

int QFrame.frameStyle (self)

Returns the frame style.

The default value is QFrame.Plain.

See also setFrameStyle(), frameShape(), and frameShadow().

int QFrame.frameWidth (self)

int QFrame.lineWidth (self)

int QFrame.midLineWidth (self)

QFrame.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QFrame.setFrameRect (self, QRect)

QFrame.setFrameShadow (self, Shadow)

QFrame.setFrameShape (self, Shape)

QFrame.setFrameStyle (self, int)

Sets the frame style to style.

The style is the bitwise OR between a frame shape and a frame shadow style. See the picture of the frames in the main class documentation.

The frame shapes are given in QFrame.Shape and the shadow styles in QFrame.Shadow.

If a mid-line width greater than 0 is specified, an additional line is drawn for Raised or Sunken Box, HLine, and VLine frames. The mid-color of the current color group is used for drawing middle lines.

See also frameStyle().

QFrame.setLineWidth (self, int)

QFrame.setMidLineWidth (self, int)

QSize QFrame.sizeHint (self)

Reimplemented from QWidget.sizeHint().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qfsfileengine.html0000644000076500000240000004275012536324472021202 0ustar philstaff00000000000000 QFSFileEngine Class Reference
  Home · All Classes · Modules

QFSFileEngine Class Reference
[QtCore module]

The QFSFileEngine class implements Qt's default file engine. More...

Inherits QAbstractFileEngine.

Methods

  • __init__ (self)
  • __init__ (self, QString file)
  • bool caseSensitive (self)
  • bool close (self)
  • bool copy (self, QString newName)
  • QStringList entryList (self, QDir.Filters filters, QStringList filterNames)
  • QAbstractFileEngine.FileFlags fileFlags (self, QAbstractFileEngine.FileFlags type)
  • QString fileName (self, QAbstractFileEngine.FileName file)
  • QDateTime fileTime (self, QAbstractFileEngine.FileTime time)
  • bool flush (self)
  • int handle (self)
  • bool isRelativePath (self)
  • bool isSequential (self)
  • bool link (self, QString newName)
  • bool mkdir (self, QString dirName, bool createParentDirectories)
  • bool open (self, QIODevice.OpenMode openMode)
  • bool open (self, QIODevice.OpenMode openMode, int fd, QFile.FileHandleFlags handleFlags)
  • bool open (self, QIODevice.OpenMode flags, int fd)
  • QString owner (self, QAbstractFileEngine.FileOwner)
  • int ownerId (self, QAbstractFileEngine.FileOwner)
  • int pos (self)
  • str read (self, int maxlen)
  • str readLine (self, int maxlen)
  • bool remove (self)
  • bool rename (self, QString newName)
  • bool rmdir (self, QString dirName, bool recurseParentDirectories)
  • bool seek (self, int)
  • setFileName (self, QString file)
  • bool setPermissions (self, int perms)
  • bool setSize (self, int size)
  • int size (self)
  • int write (self, str data)

Static Methods


Detailed Description

The QFSFileEngine class implements Qt's default file engine.

This class is part of the file engine framework in Qt. If you only want to access files or directories, use QFile, QFileInfo or QDir instead.

QFSFileEngine is the default file engine for accessing regular files. It is provided for convenience; by subclassing this class, you can alter its behavior slightly, without having to write a complete QAbstractFileEngine subclass. To install your custom file engine, you must also subclass QAbstractFileEngineHandler and create an instance of your handler.

It can also be useful to create a QFSFileEngine object directly if you need to use the local file system inside QAbstractFileEngine.create(), in order to avoid recursion (as higher-level classes tend to call QAbstractFileEngine.create()).


Method Documentation

QFSFileEngine.__init__ (self)

Constructs a QFSFileEngine.

QFSFileEngine.__init__ (self, QString file)

Constructs a QFSFileEngine for the file name file.

bool QFSFileEngine.caseSensitive (self)

Reimplemented from QAbstractFileEngine.caseSensitive().

Returns true for Windows, false for Unix.

bool QFSFileEngine.close (self)

Reimplemented from QAbstractFileEngine.close().

bool QFSFileEngine.copy (self, QString newName)

Reimplemented from QAbstractFileEngine.copy().

For windows, copy the file to file copyName.

Not implemented for Unix.

QString QFSFileEngine.currentPath (QString fileName = QString())

For Unix, returns the current working directory for the file engine.

For Windows, returns the canonicalized form of the current path used by the file engine for the drive specified by fileName. On Windows, each drive has its own current directory, so a different path is returned for file names that include different drive names (e.g. A: or C:).

See also setCurrentPath().

list-of-QFileInfo QFSFileEngine.drives ()

For Windows, returns the list of drives in the file system as a list of QFileInfo objects. On unix, Mac OS X and Windows CE, only the root path is returned. On Windows, this function returns all drives (A:, C:, D:, etc.).

For Unix, the list contains just the root path "/".

QStringList QFSFileEngine.entryList (self, QDir.Filters filters, QStringList filterNames)

QAbstractFileEngine.FileFlags QFSFileEngine.fileFlags (self, QAbstractFileEngine.FileFlags type)

Reimplemented from QAbstractFileEngine.fileFlags().

QString QFSFileEngine.fileName (self, QAbstractFileEngine.FileName file)

Reimplemented from QAbstractFileEngine.fileName().

See also setFileName().

QDateTime QFSFileEngine.fileTime (self, QAbstractFileEngine.FileTime time)

Reimplemented from QAbstractFileEngine.fileTime().

bool QFSFileEngine.flush (self)

Reimplemented from QAbstractFileEngine.flush().

int QFSFileEngine.handle (self)

Reimplemented from QAbstractFileEngine.handle().

QString QFSFileEngine.homePath ()

Returns the home path of the current user.

See also rootPath().

bool QFSFileEngine.isRelativePath (self)

Reimplemented from QAbstractFileEngine.isRelativePath().

bool QFSFileEngine.isSequential (self)

Reimplemented from QAbstractFileEngine.isSequential().

bool QFSFileEngine.link (self, QString newName)

Reimplemented from QAbstractFileEngine.link().

Creates a link from the file currently specified by fileName() to newName. What a link is depends on the underlying filesystem (be it a shortcut on Windows or a symbolic link on Unix). Returns true if successful; otherwise returns false.

bool QFSFileEngine.mkdir (self, QString dirName, bool createParentDirectories)

Reimplemented from QAbstractFileEngine.mkdir().

bool QFSFileEngine.open (self, QIODevice.OpenMode openMode)

Reimplemented from QAbstractFileEngine.open().

bool QFSFileEngine.open (self, QIODevice.OpenMode openMode, int fd, QFile.FileHandleFlags handleFlags)

Opens the file handle fh in openMode mode. Returns true on success; otherwise returns false.

bool QFSFileEngine.open (self, QIODevice.OpenMode flags, int fd)

Opens the file descriptor fd in openMode mode. Returns true on success; otherwise returns false.

QString QFSFileEngine.owner (self, QAbstractFileEngine.FileOwner)

Reimplemented from QAbstractFileEngine.owner().

int QFSFileEngine.ownerId (self, QAbstractFileEngine.FileOwner)

Reimplemented from QAbstractFileEngine.ownerId().

In Unix, if stat() is successful, the uid is returned if own is the owner. Otherwise the gid is returned. If stat() is unsuccessful, -2 is reuturned.

For Windows, -2 is always returned.

int QFSFileEngine.pos (self)

Reimplemented from QAbstractFileEngine.pos().

str QFSFileEngine.read (self, int maxlen)

Reimplemented from QAbstractFileEngine.read().

str QFSFileEngine.readLine (self, int maxlen)

Reimplemented from QAbstractFileEngine.readLine().

bool QFSFileEngine.remove (self)

Reimplemented from QAbstractFileEngine.remove().

bool QFSFileEngine.rename (self, QString newName)

Reimplemented from QAbstractFileEngine.rename().

bool QFSFileEngine.rmdir (self, QString dirName, bool recurseParentDirectories)

Reimplemented from QAbstractFileEngine.rmdir().

QString QFSFileEngine.rootPath ()

Returns the root path.

See also homePath().

bool QFSFileEngine.seek (self, int)

Reimplemented from QAbstractFileEngine.seek().

bool QFSFileEngine.setCurrentPath (QString path)

Sets the current path (e.g., for QDir), to path. Returns true if the new path exists; otherwise this function does nothing, and returns false.

See also currentPath().

QFSFileEngine.setFileName (self, QString file)

Reimplemented from QAbstractFileEngine.setFileName().

See also fileName().

bool QFSFileEngine.setPermissions (self, int perms)

Reimplemented from QAbstractFileEngine.setPermissions().

bool QFSFileEngine.setSize (self, int size)

Reimplemented from QAbstractFileEngine.setSize().

See also size().

int QFSFileEngine.size (self)

Reimplemented from QAbstractFileEngine.size().

See also setSize().

QString QFSFileEngine.tempPath ()

Returns the temporary path (i.e., a path in which it is safe to store temporary files).

int QFSFileEngine.write (self, str data)

Reimplemented from QAbstractFileEngine.write().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qftp.html0000644000076500000240000014241212536324517017331 0ustar philstaff00000000000000 QFtp Class Reference
  Home · All Classes · Modules

QFtp Class Reference
[QtNetwork module]

The QFtp class provides an implementation of the client side of FTP protocol. More...

Inherits QObject.

Types

  • enum Command { None_, SetTransferMode, SetProxy, ConnectToHost, ..., RawCommand }
  • enum Error { NoError, UnknownError, HostNotFound, ConnectionRefused, NotConnected }
  • enum State { Unconnected, HostLookup, Connecting, Connected, LoggedIn, Closing }
  • enum TransferMode { Active, Passive }
  • enum TransferType { Binary, Ascii }

Methods

Qt Signals


Detailed Description

The QFtp class provides an implementation of the client side of FTP protocol.

This class provides a direct interface to FTP that allows you to have more control over the requests. However, for new applications, it is recommended to use QNetworkAccessManager and QNetworkReply, as those classes possess a simpler, yet more powerful API.

The class works asynchronously, so there are no blocking functions. If an operation cannot be executed immediately, the function will still return straight away and the operation will be scheduled for later execution. The results of scheduled operations are reported via signals. This approach depends on the event loop being in operation.

The operations that can be scheduled (they are called "commands" in the rest of the documentation) are the following: connectToHost(), login(), close(), list(), cd(), get(), put(), remove(), mkdir(), rmdir(), rename() and rawCommand().

All of these commands return a unique identifier that allows you to keep track of the command that is currently being executed. When the execution of a command starts, the commandStarted() signal with the command's identifier is emitted. When the command is finished, the commandFinished() signal is emitted with the command's identifier and a bool that indicates whether the command finished with an error.

In some cases, you might want to execute a sequence of commands, e.g. if you want to connect and login to a FTP server. This is simply achieved:

 QFtp *ftp = new QFtp(parent);
 ftp->connectToHost("ftp.qt.nokia.com");
 ftp->login();

In this case two FTP commands have been scheduled. When the last scheduled command has finished, a done() signal is emitted with a bool argument that tells you whether the sequence finished with an error.

If an error occurs during the execution of one of the commands in a sequence of commands, all the pending commands (i.e. scheduled, but not yet executed commands) are cleared and no signals are emitted for them.

Some commands, e.g. list(), emit additional signals to report their results.

Example: If you want to download the INSTALL file from the Qt FTP server, you would write this:

 ftp->connectToHost("ftp.qt.nokia.com");   // id == 1
 ftp->login();                             // id == 2
 ftp->cd("qt");                            // id == 3
 ftp->get("INSTALL");                      // id == 4
 ftp->close();                             // id == 5

For this example the following sequence of signals is emitted (with small variations, depending on network traffic, etc.):

 start(1)
 stateChanged(HostLookup)
 stateChanged(Connecting)
 stateChanged(Connected)
 finished(1, false)

 start(2)
 stateChanged(LoggedIn)
 finished(2, false)

 start(3)
 finished(3, false)

 start(4)
 dataTransferProgress(0, 3798)
 dataTransferProgress(2896, 3798)
 readyRead()
 dataTransferProgress(3798, 3798)
 readyRead()
 finished(4, false)

 start(5)
 stateChanged(Closing)
 stateChanged(Unconnected)
 finished(5, false)

 done(false)

The dataTransferProgress() signal in the above example is useful if you want to show a progress bar to inform the user about the progress of the download. The readyRead() signal tells you that there is data ready to be read. The amount of data can be queried then with the bytesAvailable() function and it can be read with the read() or readAll() function.

If the login fails for the above example, the signals would look like this:

 start(1)
 stateChanged(HostLookup)
 stateChanged(Connecting)
 stateChanged(Connected)
 finished(1, false)

 start(2)
 finished(2, true)

 done(true)

You can then get details about the error with the error() and errorString() functions.

For file transfer, QFtp can use both active or passive mode, and it uses passive file transfer mode by default; see the documentation for setTransferMode() for more details about this.

Call setProxy() to make QFtp connect via an FTP proxy server.

The functions currentId() and currentCommand() provide more information about the currently executing command.

The functions hasPendingCommands() and clearPendingCommands() allow you to query and clear the list of pending commands.

If you are an experienced network programmer and want to have complete control you can use rawCommand() to execute arbitrary FTP commands.

Warning: The current version of QFtp doesn't fully support non-Unix FTP servers.


Type Documentation

QFtp.Command

This enum is used as the return value for the currentCommand() function. This allows you to perform specific actions for particular commands, e.g. in a FTP client, you might want to clear the directory view when a list() command is started; in this case you can simply check in the slot connected to the start() signal if the currentCommand() is List.

Constant Value Description
QFtp.None 0 No command is being executed.
QFtp.SetTransferMode 1 set the transfer mode.
QFtp.SetProxy 2 switch proxying on or off.
QFtp.ConnectToHost 3 connectToHost() is being executed.
QFtp.Login 4 login() is being executed.
QFtp.Close 5 close() is being executed.
QFtp.List 6 list() is being executed.
QFtp.Cd 7 cd() is being executed.
QFtp.Get 8 get() is being executed.
QFtp.Put 9 put() is being executed.
QFtp.Remove 10 remove() is being executed.
QFtp.Mkdir 11 mkdir() is being executed.
QFtp.Rmdir 12 rmdir() is being executed.
QFtp.Rename 13 rename() is being executed.
QFtp.RawCommand 14 rawCommand() is being executed.

See also currentCommand().

QFtp.Error

This enum identifies the error that occurred.

Constant Value Description
QFtp.NoError 0 No error occurred.
QFtp.HostNotFound 2 The host name lookup failed.
QFtp.ConnectionRefused 3 The server refused the connection.
QFtp.NotConnected 4 Tried to send a command, but there is no connection to a server.
QFtp.UnknownError 1 An error other than those specified above occurred.

See also error().

QFtp.State

This enum defines the connection state:

Constant Value Description
QFtp.Unconnected 0 There is no connection to the host.
QFtp.HostLookup 1 A host name lookup is in progress.
QFtp.Connecting 2 An attempt to connect to the host is in progress.
QFtp.Connected 3 Connection to the host has been achieved.
QFtp.LoggedIn 4 Connection and user login have been achieved.
QFtp.Closing 5 The connection is closing down, but it is not yet closed. (The state will be Unconnected when the connection is closed.)

See also stateChanged() and state().

QFtp.TransferMode

FTP works with two socket connections; one for commands and another for transmitting data. While the command connection is always initiated by the client, the second connection can be initiated by either the client or the server.

This enum defines whether the client (Passive mode) or the server (Active mode) should set up the data connection.

Constant Value Description
QFtp.Passive 1 The client connects to the server to transmit its data.
QFtp.Active 0 The server connects to the client to transmit its data.

QFtp.TransferType

This enum identifies the data transfer type used with get and put commands.

Constant Value Description
QFtp.Binary 0 The data will be transferred in Binary mode.
QFtp.Ascii 1 The data will be transferred in Ascii mode and new line characters will be converted to the local format.

Method Documentation

QFtp.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QFtp object with the given parent.

QFtp.abort (self)

This method is also a Qt slot with the C++ signature void abort().

Aborts the current command and deletes all scheduled commands.

If there is an unfinished command (i.e. a command for which the commandStarted() signal has been emitted, but for which the commandFinished() signal has not been emitted), this function sends an ABORT command to the server. When the server replies that the command is aborted, the commandFinished() signal with the error argument set to true is emitted for the command. Due to timing issues, it is possible that the command had already finished before the abort request reached the server, in which case, the commandFinished() signal is emitted with the error argument set to false.

For all other commands that are affected by the abort(), no signals are emitted.

If you don't start further FTP commands directly after the abort(), there won't be any scheduled commands and the done() signal is emitted.

Warning: Some FTP servers, for example the BSD FTP daemon (version 0.3), wrongly return a positive reply even when an abort has occurred. For these servers the commandFinished() signal has its error flag set to false, even though the command did not complete successfully.

See also clearPendingCommands().

int QFtp.bytesAvailable (self)

Returns the number of bytes that can be read from the data socket at the moment.

See also get(), readyRead(), read(), and readAll().

int QFtp.cd (self, QString directory)

Changes the working directory of the server to dir.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also commandStarted() and commandFinished().

QFtp.clearPendingCommands (self)

Deletes all pending commands from the list of scheduled commands. This does not affect the command that is being executed. If you want to stop this as well, use abort().

See also hasPendingCommands() and abort().

int QFtp.close (self)

Closes the connection to the FTP server.

The stateChanged() signal is emitted when the state of the connecting process changes, e.g. to Closing, then Unconnected.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also stateChanged(), commandStarted(), and commandFinished().

int QFtp.connectToHost (self, QString host, int port = 21)

Connects to the FTP server host using port port.

The stateChanged() signal is emitted when the state of the connecting process changes, e.g. to HostLookup, then Connecting, then Connected.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also stateChanged(), commandStarted(), and commandFinished().

Command QFtp.currentCommand (self)

Returns the command type of the FTP command being executed or None if there is no command being executed.

See also currentId().

QIODevice QFtp.currentDevice (self)

Returns the QIODevice pointer that is used by the FTP command to read data from or store data to. If there is no current FTP command being executed or if the command does not use an IO device, this function returns 0.

This function can be used to delete the QIODevice in the slot connected to the commandFinished() signal.

See also get() and put().

int QFtp.currentId (self)

Returns the identifier of the FTP command that is being executed or 0 if there is no command being executed.

See also currentCommand().

Error QFtp.error (self)

Returns the last error that occurred. This is useful to find out what went wrong when receiving a commandFinished() or a done() signal with the error argument set to true.

If you start a new command, the error status is reset to NoError.

QString QFtp.errorString (self)

Returns a human-readable description of the last error that occurred. This is useful for presenting a error message to the user when receiving a commandFinished() or a done() signal with the error argument set to true.

The error string is often (but not always) the reply from the server, so it is not always possible to translate the string. If the message comes from Qt, the string has already passed through tr().

int QFtp.get (self, QString file, QIODevice device = None, TransferType type = QFtp.Binary)

Downloads the file file from the server.

If dev is 0, then the readyRead() signal is emitted when there is data available to read. You can then read the data with the read() or readAll() functions.

If dev is not 0, the data is written directly to the device dev. Make sure that the dev pointer is valid for the duration of the operation (it is safe to delete it when the commandFinished() signal is emitted). In this case the readyRead() signal is not emitted and you cannot read data with the read() or readAll() functions.

If you don't read the data immediately it becomes available, i.e. when the readyRead() signal is emitted, it is still available until the next command is started.

For example, if you want to present the data to the user as soon as there is something available, connect to the readyRead() signal and read the data immediately. On the other hand, if you only want to work with the complete data, you can connect to the commandFinished() signal and read the data when the get() command is finished.

The data is transferred as Binary or Ascii depending on the value of type.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

commandFinished()

See also readyRead(), dataTransferProgress(), and commandStarted().

bool QFtp.hasPendingCommands (self)

Returns true if there are any commands scheduled that have not yet been executed; otherwise returns false.

The command that is being executed is not considered as a scheduled command.

See also clearPendingCommands(), currentId(), and currentCommand().

int QFtp.list (self, QString directory = QString())

Lists the contents of directory dir on the FTP server. If dir is empty, it lists the contents of the current directory.

The listInfo() signal is emitted for each directory entry found.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also listInfo(), commandStarted(), and commandFinished().

int QFtp.login (self, QString user = QString(), QString password = QString())

Logs in to the FTP server with the username user and the password password.

The stateChanged() signal is emitted when the state of the connecting process changes, e.g. to LoggedIn.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also commandStarted() and commandFinished().

int QFtp.mkdir (self, QString dir)

Creates a directory called dir on the server.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also commandStarted() and commandFinished().

int QFtp.put (self, QByteArray data, QString file, TransferType type = QFtp.Binary)

Reads the data from the IO device dev, and writes it to the file called file on the server. The data is read in chunks from the IO device, so this overload allows you to transmit large amounts of data without the need to read all the data into memory at once.

The data is transferred as Binary or Ascii depending on the value of type.

Make sure that the dev pointer is valid for the duration of the operation (it is safe to delete it when the commandFinished() is emitted).

int QFtp.put (self, QIODevice device, QString file, TransferType type = QFtp.Binary)

This is an overloaded function.

Writes a copy of the given data to the file called file on the server. The progress of the upload is reported by the dataTransferProgress() signal.

The data is transferred as Binary or Ascii depending on the value of type.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

Since this function takes a copy of the data, you can discard your own copy when this function returns.

See also dataTransferProgress(), commandStarted(), and commandFinished().

int QFtp.rawCommand (self, QString command)

Sends the raw FTP command command to the FTP server. This is useful for low-level FTP access. If the operation you wish to perform has an equivalent QFtp function, we recommend using the function instead of raw FTP commands since the functions are easier and safer.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also rawCommandReply(), commandStarted(), and commandFinished().

str QFtp.read (self, int maxlen)

Reads maxlen bytes from the data socket into data and returns the number of bytes read. Returns -1 if an error occurred.

See also get(), readyRead(), bytesAvailable(), and readAll().

QByteArray QFtp.readAll (self)

Reads all the bytes available from the data socket and returns them.

See also get(), readyRead(), bytesAvailable(), and read().

int QFtp.remove (self, QString file)

Deletes the file called file from the server.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also commandStarted() and commandFinished().

int QFtp.rename (self, QString oldname, QString newname)

Renames the file called oldname to newname on the server.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also commandStarted() and commandFinished().

int QFtp.rmdir (self, QString dir)

Removes the directory called dir from the server.

The function does not block and returns immediately. The command is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by commandStarted() and commandFinished().

When the command is started the commandStarted() signal is emitted. When it is finished the commandFinished() signal is emitted.

See also commandStarted() and commandFinished().

int QFtp.setProxy (self, QString host, int port)

Enables use of the FTP proxy on host host and port port. Calling this function with host empty disables proxying.

QFtp does not support FTP-over-HTTP proxy servers. Use QNetworkAccessManager for this.

int QFtp.setTransferMode (self, TransferMode mode)

Sets the current FTP transfer mode to mode. The default is QFtp.Passive.

See also QFtp.TransferMode.

State QFtp.state (self)

Returns the current state of the object. When the state changes, the stateChanged() signal is emitted.

See also State and stateChanged().


Qt Signal Documentation

void commandFinished (int,bool)

This is the default overload of this signal.

This signal is emitted when processing the command identified by id has finished. error is true if an error occurred during the processing; otherwise error is false.

See also commandStarted(), done(), error(), and errorString().

void commandStarted (int)

This is the default overload of this signal.

This signal is emitted when processing the command identified by id starts.

See also commandFinished() and done().

void dataTransferProgress (qint64,qint64)

This is the default overload of this signal.

This signal is emitted in response to a get() or put() request to indicate the current progress of the download or upload.

done is the amount of data that has already been transferred and total is the total amount of data to be read or written. It is possible that the QFtp class is not able to determine the total amount of data that should be transferred, in which case total is 0. (If you connect this signal to a QProgressBar, the progress bar shows a busy indicator if the total is 0).

Warning: done and total are not necessarily the size in bytes, since for large files these values might need to be "scaled" to avoid overflow.

See also get(), put(), and QProgressBar.

void done (bool)

This is the default overload of this signal.

This signal is emitted when the last pending command has finished; (it is emitted after the last command's commandFinished() signal). error is true if an error occurred during the processing; otherwise error is false.

See also commandFinished(), error(), and errorString().

void listInfo (const QUrlInfo&)

This is the default overload of this signal.

This signal is emitted for each directory entry the list() command finds. The details of the entry are stored in i.

See also list().

void rawCommandReply (int,const QString&)

This is the default overload of this signal.

This signal is emitted in response to the rawCommand() function. replyCode is the 3 digit reply code and detail is the text that follows the reply code.

See also rawCommand().

void readyRead ()

This is the default overload of this signal.

This signal is emitted in response to a get() command when there is new data to read.

If you specify a device as the second argument in the get() command, this signal is not emitted; instead the data is written directly to the device.

You can read the data with the readAll() or read() functions.

This signal is useful if you want to process the data in chunks as soon as it becomes available. If you are only interested in the complete data, just connect to the commandFinished() signal and read the data then instead.

See also get(), read(), readAll(), and bytesAvailable().

void stateChanged (int)

This is the default overload of this signal.

This signal is emitted when the state of the connection changes. The argument state is the new state of the connection; it is one of the State values.

It is usually emitted in response to a connectToHost() or close() command, but it can also be emitted "spontaneously", e.g. when the server closes the connection unexpectedly.

See also connectToHost(), close(), state(), and State.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgenericargument.html0000644000076500000240000000362212536324473021717 0ustar philstaff00000000000000 QGenericArgument Class Reference
  Home · All Classes · Modules

QGenericArgument Class Reference
[QtCore module]

The QGenericArgument class is an internal helper class for marshalling arguments. More...


Detailed Description

The QGenericArgument class is an internal helper class for marshalling arguments.

This class should never be used directly. Please use the Q_ARG() macro instead.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgenericreturnargument.html0000644000076500000240000000367012536324473023162 0ustar philstaff00000000000000 QGenericReturnArgument Class Reference
  Home · All Classes · Modules

QGenericReturnArgument Class Reference
[QtCore module]

The QGenericReturnArgument class is an internal helper class for marshalling arguments. More...


Detailed Description

The QGenericReturnArgument class is an internal helper class for marshalling arguments.

This class should never be used directly. Please use the Q_RETURN_ARG() macro instead.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgesture.html0000644000076500000240000001735112536324504020215 0ustar philstaff00000000000000 QGesture Class Reference
  Home · All Classes · Modules

QGesture Class Reference
[QtGui module]

The QGesture class represents a gesture, containing properties that describe the corresponding user input. More...

Inherits QObject.

Inherited by QPanGesture, QPinchGesture, QSwipeGesture, QTapAndHoldGesture and QTapGesture.

Types

Methods


Detailed Description

The QGesture class represents a gesture, containing properties that describe the corresponding user input.

Gesture objects are not constructed directly by developers. They are created by the QGestureRecognizer object that is registered with the application; see QGestureRecognizer.registerRecognizer().

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures Programming document.

Gesture Properties

The class has a list of properties that can be queried by the user to get some gesture-specific arguments. For example, the pinch gesture has a scale factor that is exposed as a property.

Developers of custom gesture recognizers can add additional properties in order to provide additional information about a gesture. This can be done by adding new dynamic properties to a QGesture object, or by subclassing the QGesture class (or one of its subclasses).

Lifecycle of a Gesture Object

A QGesture instance is implicitly created when needed and is owned by Qt. Developers should never destroy them or store them for later use as Qt may destroy particular instances of them and create new ones to replace them.

The registered gesture recognizer monitors the input events for the target object via its recognize() function, updating the properties of the gesture object as required.

The gesture object may be delivered to the target object in a QGestureEvent if the corresponding gesture is active or has just been canceled. Each event that is delivered contains a list of gesture objects, since support for more than one gesture may be enabled for the target object. Due to the way events are handled in Qt, gesture events may be filtered by other objects.


Type Documentation

QGesture.GestureCancelPolicy

This enum describes how accepting a gesture can cancel other gestures automatically.

Constant Value Description
QGesture.CancelNone 0 On accepting this gesture no other gestures will be affected.
QGesture.CancelAllInContext 1 On accepting this gesture all gestures that are active in the context (respecting the Qt.GestureFlag that were specified when subscribed to the gesture) will be cancelled.

Method Documentation

QGesture.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new gesture object with the given parent.

QGesture objects are created by gesture recognizers in the QGestureRecognizer.create() function.

GestureCancelPolicy QGesture.gestureCancelPolicy (self)

Qt.GestureType QGesture.gestureType (self)

bool QGesture.hasHotSpot (self)

QPointF QGesture.hotSpot (self)

QGesture.setGestureCancelPolicy (self, GestureCancelPolicy policy)

QGesture.setHotSpot (self, QPointF value)

Qt.GestureState QGesture.state (self)

QGesture.unsetHotSpot (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgestureevent.html0000644000076500000240000003170012536324503021250 0ustar philstaff00000000000000 QGestureEvent Class Reference
  Home · All Classes · Modules

QGestureEvent Class Reference
[
QtGui module]

The QGestureEvent class provides the description of triggered gestures. More...

Inherits QEvent.

Methods


Detailed Description

The QGestureEvent class provides the description of triggered gestures.

The QGestureEvent class contains a list of gestures, which can be obtained using the gestures() function.

The gestures are either active or canceled. A list of those that are currently being executed can be obtained using the activeGestures() function. A list of those which were previously active and have been canceled can be accessed using the canceledGestures() function. A gesture might be canceled if the current window loses focus, for example, or because of a timeout, or for other reasons.

If the event handler does not accept the event by calling the generic QEvent.accept() function, all individual QGesture object that were not accepted and in the Qt.GestureStarted state will be propagated up the parent widget chain until a widget accepts them individually, by calling QGestureEvent.accept() for each of them, or an event filter consumes the event.

Further Reading

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures Programming document.


Method Documentation

QGestureEvent.__init__ (self, list-of-QGesture gestures)

Creates new QGestureEvent containing a list of gestures.

QGestureEvent.__init__ (self, QGestureEvent)

QGestureEvent.accept (self)

Accepts the event, the equivalent of calling setAccepted(true).

See also QEvent.accept().

QGestureEvent.accept (self, QGesture)

Sets the accept flag of the given gesture object, the equivalent of calling setAccepted(gesture, true).

Setting the accept flag indicates that the event receiver wants the gesture. Unwanted gestures may be propagated to the parent widget.

See also QGestureEvent.ignore().

QGestureEvent.accept (self, Qt.GestureType)

Sets the accept flag of the given gestureType, the equivalent of calling setAccepted(gestureType, true).

Setting the accept flag indicates that the event receiver wants the gesture. Unwanted gestures may be propagated to the parent widget.

See also QGestureEvent.ignore().

list-of-QGesture QGestureEvent.activeGestures (self)

Returns a list of active (not canceled) gestures.

list-of-QGesture QGestureEvent.canceledGestures (self)

Returns a list of canceled gestures.

QGesture QGestureEvent.gesture (self, Qt.GestureType type)

Returns a gesture object by type.

list-of-QGesture QGestureEvent.gestures (self)

Returns all gestures that are delivered in the event.

QGestureEvent.ignore (self)

Ignores the event, the equivalent of calling setAccepted(false).

See also QEvent.ignore().

QGestureEvent.ignore (self, QGesture)

Clears the accept flag parameter of the given gesture object, the equivalent of calling setAccepted(gesture, false).

Clearing the accept flag indicates that the event receiver does not want the gesture. Unwanted gestures may be propagated to the parent widget.

See also QGestureEvent.accept().

QGestureEvent.ignore (self, Qt.GestureType)

Clears the accept flag parameter of the given gestureType, the equivalent of calling setAccepted(gesture, false).

Clearing the accept flag indicates that the event receiver does not want the gesture. Unwanted gestures may be propgated to the parent widget.

See also QGestureEvent.accept().

bool QGestureEvent.isAccepted (self)

Returns true is the event has been accepted; otherwise returns false.

See also QEvent.accepted.

bool QGestureEvent.isAccepted (self, QGesture)

Returns true if the gesture is accepted; otherwise returns false.

bool QGestureEvent.isAccepted (self, Qt.GestureType)

Returns true if the gesture of type gestureType is accepted; otherwise returns false.

QPointF QGestureEvent.mapToGraphicsScene (self, QPointF gesturePoint)

Returns the scene-local coordinates if the gesturePoint is inside a graphics view.

This functional might be useful when the gesture event is delivered to a QGraphicsObject to translate a point in screen coordinates to scene-local coordinates.

See also QPointF.isNull() and ..

QGestureEvent.setAccepted (self, bool accepted)

Sets or clears the event's internal flag that determines whether it should be delivered to other objects.

Calling this function with a value of true for accepted indicates that the caller has accepted the event and that it should not be propagated further. Calling this function with a value of false indicates that the caller has ignored the event and that it should be delivered to other objects.

For convenience, the accept flag can also be set with accept(), and cleared with ignore().

See also isAccepted() and QEvent.accepted.

QGestureEvent.setAccepted (self, QGesture, bool)

Sets the accept flag of the given gesture object to the specified value.

Setting the accept flag indicates that the event receiver wants the gesture. Unwanted gestures may be propagated to the parent widget.

By default, gestures in events of type QEvent.Gesture are accepted, and gestures in QEvent.GestureOverride events are ignored.

For convenience, the accept flag can also be set with accept(gesture), and cleared with ignore(gesture).

QGestureEvent.setAccepted (self, Qt.GestureType, bool)

Sets the accept flag of the given gestureType object to the specified value.

Setting the accept flag indicates that the event receiver wants to receive gestures of the specified type, gestureType. Unwanted gestures may be propagated to the parent widget.

By default, gestures in events of type QEvent.Gesture are accepted, and gestures in QEvent.GestureOverride events are ignored.

For convenience, the accept flag can also be set with accept(gestureType), and cleared with ignore(gestureType).

QWidget QGestureEvent.widget (self)

Returns the widget on which the event occurred.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgesturerecognizer-result.html0000644000076500000240000001340112536324504023611 0ustar philstaff00000000000000 QGestureRecognizer.Result Class Reference
  Home · All Classes · Modules

QGestureRecognizer.Result Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description


Method Documentation

Result.__init__ (self, Result)

Result.__init__ (self, int)

Result.__init__ (self)

Result Result.__and__ (self, int mask)

int Result.__bool__ (self)

bool Result.__eq__ (self, Result f)

Result Result.__iand__ (self, int mask)

int Result.__int__ (self)

Result Result.__invert__ (self)

Result Result.__ior__ (self, Result f)

Result Result.__ixor__ (self, Result f)

bool Result.__ne__ (self, Result f)

Result Result.__or__ (self, Result f)

Result Result.__or__ (self, int f)

Result Result.__xor__ (self, Result f)

Result Result.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgesturerecognizer.html0000644000076500000240000003255312536324504022306 0ustar philstaff00000000000000 QGestureRecognizer Class Reference
  Home · All Classes · Modules

QGestureRecognizer Class Reference
[QtGui module]

The QGestureRecognizer class provides the infrastructure for gesture recognition. More...

Types

  • class Result
  • enum ResultFlag { Ignore, MayBeGesture, TriggerGesture, FinishGesture, CancelGesture, ConsumeEventHint }

Methods

  • __init__ (self)
  • __init__ (self, QGestureRecognizer)
  • QGesture create (self, QObject target)
  • Result recognize (self, QGesture state, QObject watched, QEvent event)
  • reset (self, QGesture state)

Static Methods


Detailed Description

The QGestureRecognizer class provides the infrastructure for gesture recognition.

Gesture recognizers are responsible for creating and managing QGesture objects and monitoring input events sent to QWidget and QGraphicsObject subclasses. QGestureRecognizer is the base class for implementing custom gestures.

Developers that only need to provide gesture recognition for standard gestures do not need to use this class directly. Instances will be created behind the scenes by the framework.

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures Programming document.

Recognizing Gestures

The process of recognizing gestures involves filtering input events sent to specific objects, and modifying the associated QGesture objects to include relevant information about the user's input.

Gestures are created when the framework calls create() to handle user input for a particular instance of a QWidget or QGraphicsObject subclass. A QGesture object is created for each widget or item that is configured to use gestures.

Once a QGesture has been created for a target object, the gesture recognizer will receive events for it in its recognize() handler function.

When a gesture is canceled, the reset() function is called, giving the recognizer the chance to update the appropriate properties in the corresponding QGesture object.

Supporting New Gestures

To add support for new gestures, you need to derive from QGestureRecognizer to create a custom recognizer class, construct an instance of this class, and register it with the application by calling QGestureRecognizer.registerRecognizer(). You can also subclass QGesture to create a custom gesture class, or rely on dynamic properties to express specific details of the gesture you want to handle.

Your custom QGestureRecognizer subclass needs to reimplement the recognize() function to handle and filter the incoming input events for QWidget and QGraphicsObject subclasses. Although the logic for gesture recognition is implemented in this function, you can store persistent information about the state of the recognition process in the QGesture object supplied. The recognize() function must return a value of QGestureRecognizer.Result that indicates the state of recognition for a given gesture and target object. This determines whether or not a gesture event will be delivered to a target object.

If you choose to represent a gesture by a custom QGesture subclass, you will need to reimplement the create() function to construct instances of your gesture class. Similarly, you may need to reimplement the reset() function if your custom gesture objects need to be specially handled when a gesture is canceled.


Type Documentation

QGestureRecognizer.ResultFlag

This enum describes the result of the current event filtering step in a gesture recognizer state machine.

The result consists of a state value (one of Ignore, MayBeGesture, TriggerGesture, FinishGesture, CancelGesture) and an optional hint (ConsumeEventHint).

Constant Value Description
QGestureRecognizer.Ignore 0x0001 The event does not change the state of the recognizer.
QGestureRecognizer.MayBeGesture 0x0002 The event changed the internal state of the recognizer, but it isn't clear yet if it is a gesture or not. The recognizer needs to filter more events to decide. Gesture recognizers in the MayBeGesture state may be reset automatically if they take too long to recognize gestures.
QGestureRecognizer.TriggerGesture 0x0004 The gesture has been triggered and the appropriate QGesture object will be delivered to the target as a part of a QGestureEvent.
QGestureRecognizer.FinishGesture 0x0008 The gesture has been finished successfully and the appropriate QGesture object will be delivered to the target as a part of a QGestureEvent.
QGestureRecognizer.CancelGesture 0x0010 The event made it clear that it is not a gesture. If the gesture recognizer was in GestureTriggered state before, then the gesture is canceled and the appropriate QGesture object will be delivered to the target as a part of a QGestureEvent.
QGestureRecognizer.ConsumeEventHint 0x0100 This hint specifies that the gesture framework should consume the filtered event and not deliver it to the receiver.

The Result type is a typedef for QFlags<ResultFlag>. It stores an OR combination of ResultFlag values.

See also QGestureRecognizer.recognize().


Method Documentation

QGestureRecognizer.__init__ (self)

Constructs a new gesture recognizer object.

QGestureRecognizer.__init__ (self, QGestureRecognizer)

QGesture QGestureRecognizer.create (self, QObject target)

This function is called by Qt to create a new QGesture object for the given target (QWidget or QGraphicsObject).

Reimplement this function to create a custom QGesture-derived gesture object if necessary.

The application takes ownership of the created gesture object.

Result QGestureRecognizer.recognize (self, QGesture state, QObject watched, QEvent event)

This method is abstract and should be reimplemented in any sub-class.

Handles the given event for the watched object, updating the state of the gesture object as required, and returns a suitable result for the current recognition step.

This function is called by the framework to allow the recognizer to filter input events dispatched to QWidget or QGraphicsObject instances that it is monitoring.

The result reflects how much of the gesture has been recognized. The state of the gesture object is set depending on the result.

See also QGestureRecognizer.Result.

Qt.GestureType QGestureRecognizer.registerRecognizer (QGestureRecognizer recognizer)

The recognizer argument has it's ownership transferred to Qt.

Registers the given recognizer in the gesture framework and returns a gesture ID for it.

The application takes ownership of the recognizer and returns the gesture type ID associated with it. For gesture recognizers which handle custom QGesture objects (i.e., those which return Qt.CustomGesture in a QGesture.gestureType() function) the return value is a generated gesture ID with the Qt.CustomGesture flag set.

See also unregisterRecognizer(), QGestureRecognizer.create(), and QGesture.

QGestureRecognizer.reset (self, QGesture state)

This function is called by the framework to reset a given gesture.

Reimplement this function to implement additional requirements for custom QGesture objects. This may be necessary if you implement a custom QGesture whose properties need special handling when the gesture is reset.

QGestureRecognizer.unregisterRecognizer (Qt.GestureType type)

Unregisters all gesture recognizers of the specified type.

See also registerRecognizer().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgl-formatoptions.html0000644000076500000240000001403212536324520022032 0ustar philstaff00000000000000 QGL.FormatOptions Class Reference
  Home · All Classes · Modules

QGL.FormatOptions Class Reference
[QtOpenGL module]

Methods

Special Methods

  • FormatOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, FormatOptions f)
  • FormatOptions __iand__ (self, int mask)
  • int __int__ (self)
  • FormatOptions __invert__ (self)
  • FormatOptions __ior__ (self, FormatOptions f)
  • FormatOptions __ixor__ (self, FormatOptions f)
  • bool __ne__ (self, FormatOptions f)
  • FormatOptions __or__ (self, FormatOptions f)
  • FormatOptions __or__ (self, int f)
  • FormatOptions __xor__ (self, FormatOptions f)
  • FormatOptions __xor__ (self, int f)

Detailed Description

FormatOption may be used whenever FormatOptions is expected.


Method Documentation

FormatOptions.__init__ (self, FormatOptions)

FormatOptions.__init__ (self, int)

FormatOptions.__init__ (self)

FormatOptions FormatOptions.__and__ (self, int mask)

int FormatOptions.__bool__ (self)

bool FormatOptions.__eq__ (self, FormatOptions f)

FormatOptions FormatOptions.__iand__ (self, int mask)

int FormatOptions.__int__ (self)

FormatOptions FormatOptions.__invert__ (self)

FormatOptions FormatOptions.__ior__ (self, FormatOptions f)

FormatOptions FormatOptions.__ixor__ (self, FormatOptions f)

bool FormatOptions.__ne__ (self, FormatOptions f)

FormatOptions FormatOptions.__or__ (self, FormatOptions f)

FormatOptions FormatOptions.__or__ (self, int f)

FormatOptions FormatOptions.__xor__ (self, FormatOptions f)

FormatOptions FormatOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgl.html0000644000076500000240000002024612536324520017134 0ustar philstaff00000000000000 QGL Class Reference
  Home · All Classes · Modules

QGL Class Reference
[QtOpenGL module]

The QGL namespace specifies miscellaneous identifiers used in the Qt OpenGL module. More...

Types

Static Methods


Detailed Description

The QGL namespace specifies miscellaneous identifiers used in the Qt OpenGL module.


Type Documentation

QGL.FormatOption

This enum specifies the format options that can be used to configure an OpenGL context. These are set using QGLFormat.setOption().

Constant Value Description
QGL.DoubleBuffer 0x0001 Specifies the use of double buffering.
QGL.DepthBuffer 0x0002 Enables the use of a depth buffer.
QGL.Rgba 0x0004 Specifies that the context should use RGBA as its pixel format.
QGL.AlphaChannel 0x0008 Enables the use of an alpha channel.
QGL.AccumBuffer 0x0010 Enables the use of an accumulation buffer.
QGL.StencilBuffer 0x0020 Enables the use of a stencil buffer.
QGL.StereoBuffers 0x0040 Enables the use of a stereo buffers for use with visualization hardware.
QGL.DirectRendering 0x0080 Specifies that the context is used for direct rendering to a display.
QGL.HasOverlay 0x0100 Enables the use of an overlay.
QGL.SampleBuffers 0x0200 Enables the use of sample buffers.
QGL.DeprecatedFunctions 0x0400 Enables the use of deprecated functionality for OpenGL 3.x contexts. A context with deprecated functionality enabled is called a full context in the OpenGL specification.
QGL.SingleBuffer DoubleBuffer<<16 Specifies the use of a single buffer, as opposed to double buffers.
QGL.NoDepthBuffer DepthBuffer<<16 Disables the use of a depth buffer.
QGL.ColorIndex Rgba<<16 Specifies that the context should use a color index as its pixel format.
QGL.NoAlphaChannel AlphaChannel<<16 Disables the use of an alpha channel.
QGL.NoAccumBuffer AccumBuffer<<16 Disables the use of an accumulation buffer.
QGL.NoStencilBuffer StencilBuffer<<16 Disables the use of a stencil buffer.
QGL.NoStereoBuffers StereoBuffers<<16 Disables the use of stereo buffers.
QGL.IndirectRendering DirectRendering<<16 Specifies that the context is used for indirect rendering to a buffer.
QGL.NoOverlay HasOverlay<<16 Disables the use of an overlay.
QGL.NoSampleBuffers SampleBuffers<<16 Disables the use of sample buffers.
QGL.NoDeprecatedFunctions DeprecatedFunctions<<16 Disables the use of deprecated functionality for OpenGL 3.x contexts. A context with deprecated functionality disabled is called a forward compatible context in the OpenGL specification.

The FormatOptions type is a typedef for QFlags<FormatOption>. It stores an OR combination of FormatOption values.

See also Sample Buffers Example.


Method Documentation

QGL.setPreferredPaintEngine (QPaintEngine.Type engineType)

Sets the preferred OpenGL paint engine that is used to draw onto QGLWidget, QGLPixelBuffer and QGLFramebufferObject targets with QPainter in Qt.

The engineType parameter specifies which of the GL engines to use. Only QPaintEngine.OpenGL and QPaintEngine.OpenGL2 are valid parameters to this function. All other values are ignored.

By default, the QPaintEngine.OpenGL2 engine is used if GL/GLES version 2.0 is available, otherwise QPaintEngine.OpenGL is used.

Warning: This function must be called before the QApplication constructor is called.

This function was introduced in Qt 4.6.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglbuffer.html0000644000076500000240000004725712536324521020342 0ustar philstaff00000000000000 QGLBuffer Class Reference
  Home · All Classes · Modules

QGLBuffer Class Reference
[QtOpenGL module]

The QGLBuffer class provides functions for creating and managing GL buffer objects. More...

Types

  • enum Access { ReadOnly, WriteOnly, ReadWrite }
  • enum Type { VertexBuffer, IndexBuffer, PixelPackBuffer, PixelUnpackBuffer }
  • enum UsagePattern { StreamDraw, StreamRead, StreamCopy, StaticDraw, ..., DynamicCopy }

Methods

Static Methods


Detailed Description

The QGLBuffer class provides functions for creating and managing GL buffer objects.

Buffer objects are created in the GL server so that the client application can avoid uploading vertices, indices, texture image data, etc every time they are needed.

QGLBuffer objects can be copied around as a reference to the underlying GL buffer object:

 QGLBuffer buffer1(QGLBuffer.IndexBuffer);
 buffer1.create();

 QGLBuffer buffer2 = buffer1;

QGLBuffer performs a shallow copy when objects are copied in this manner, but does not implement copy-on-write semantics. The original object will be affected whenever the copy is modified.


Type Documentation

QGLBuffer.Access

This enum defines the access mode for QGLBuffer.map().

Constant Value Description
QGLBuffer.ReadOnly 0x88B8 The buffer will be mapped for reading only.
QGLBuffer.WriteOnly 0x88B9 The buffer will be mapped for writing only.
QGLBuffer.ReadWrite 0x88BA The buffer will be mapped for reading and writing.

QGLBuffer.Type

This enum defines the type of GL buffer object to create with QGLBuffer.

Constant Value Description
QGLBuffer.VertexBuffer 0x8892 Vertex buffer object for use when specifying vertex arrays.
QGLBuffer.IndexBuffer 0x8893 Index buffer object for use with glDrawElements().
QGLBuffer.PixelPackBuffer 0x88EB Pixel pack buffer object for reading pixel data from the GL server (for example, with glReadPixels()). Not supported under OpenGL/ES.
QGLBuffer.PixelUnpackBuffer 0x88EC Pixel unpack buffer object for writing pixel data to the GL server (for example, with glTexImage2D()). Not supported under OpenGL/ES.

QGLBuffer.UsagePattern

This enum defines the usage pattern of a QGLBuffer object.

Constant Value Description
QGLBuffer.StreamDraw 0x88E0 The data will be set once and used a few times for drawing operations. Under OpenGL/ES 1.1 this is identical to StaticDraw.
QGLBuffer.StreamRead 0x88E1 The data will be set once and used a few times for reading data back from the GL server. Not supported under OpenGL/ES.
QGLBuffer.StreamCopy 0x88E2 The data will be set once and used a few times for reading data back from the GL server for use in further drawing operations. Not supported under OpenGL/ES.
QGLBuffer.StaticDraw 0x88E4 The data will be set once and used many times for drawing operations.
QGLBuffer.StaticRead 0x88E5 The data will be set once and used many times for reading data back from the GL server. Not supported under OpenGL/ES.
QGLBuffer.StaticCopy 0x88E6 The data will be set once and used many times for reading data back from the GL server for use in further drawing operations. Not supported under OpenGL/ES.
QGLBuffer.DynamicDraw 0x88E8 The data will be modified repeatedly and used many times for drawing operations.
QGLBuffer.DynamicRead 0x88E9 The data will be modified repeatedly and used many times for reading data back from the GL server. Not supported under OpenGL/ES.
QGLBuffer.DynamicCopy 0x88EA The data will be modified repeatedly and used many times for reading data back from the GL server for use in further drawing operations. Not supported under OpenGL/ES.

Method Documentation

QGLBuffer.__init__ (self)

Constructs a new buffer object of type QGLBuffer.VertexBuffer.

Note: this constructor just creates the QGLBuffer instance. The actual buffer object in the GL server is not created until create() is called.

See also create().

QGLBuffer.__init__ (self, Type type)

Constructs a new buffer object of type.

Note: this constructor just creates the QGLBuffer instance. The actual buffer object in the GL server is not created until create() is called.

See also create().

QGLBuffer.__init__ (self, QGLBuffer other)

Constructs a shallow copy of other.

Note: QGLBuffer does not implement copy-on-write semantics, so other will be affected whenever the copy is modified.

QGLBuffer.allocate (self, sip.voidptr data, int count)

Allocates count bytes of space to the buffer, initialized to the contents of data. Any previous contents will be removed.

It is assumed that create() has been called on this buffer and that it has been bound to the current context.

See also create(), read(), and write().

QGLBuffer.allocate (self, int count)

This is an overloaded function.

Allocates count bytes of space to the buffer. Any previous contents will be removed.

It is assumed that create() has been called on this buffer and that it has been bound to the current context.

See also create() and write().

bool QGLBuffer.bind (self)

Binds the buffer associated with this object to the current GL context. Returns false if binding was not possible, usually because type() is not supported on this GL implementation.

The buffer must be bound to the same QGLContext current when create() was called, or to another QGLContext that is sharing with it. Otherwise, false will be returned from this function.

See also release() and create().

int QGLBuffer.bufferId (self)

Returns the GL identifier associated with this buffer; zero if the buffer has not been created.

See also isCreated().

bool QGLBuffer.create (self)

Creates the buffer object in the GL server. Returns true if the object was created; false otherwise.

This function must be called with a current QGLContext. The buffer will be bound to and can only be used in that context (or any other context that is shared with it).

This function will return false if the GL implementation does not support buffers, or there is no current QGLContext.

See also isCreated(), allocate(), write(), and destroy().

QGLBuffer.destroy (self)

Destroys this buffer object, including the storage being used in the GL server. All references to the buffer will become invalid.

bool QGLBuffer.isCreated (self)

Returns true if this buffer has been created; false otherwise.

See also create() and destroy().

sip.voidptr QGLBuffer.map (self, Access access)

Maps the contents of this buffer into the application's memory space and returns a pointer to it. Returns null if memory mapping is not possible. The access parameter indicates the type of access to be performed.

It is assumed that create() has been called on this buffer and that it has been bound to the current context.

This function is only supported under OpenGL/ES if the GL_OES_mapbuffer extension is present.

See also unmap(), create(), and bind().

bool QGLBuffer.read (self, int offset, sip.voidptr data, int count)

Reads the count bytes in this buffer starting at offset into data. Returns true on success; false if reading from the buffer is not supported. Buffer reading is not supported under OpenGL/ES.

It is assumed that this buffer has been bound to the current context.

See also write() and bind().

QGLBuffer.release (self)

Releases the buffer associated with this object from the current GL context.

This function must be called with the same QGLContext current as when bind() was called on the buffer.

See also bind().

QGLBuffer.release (Type type)

Releases the buffer associated with type in the current QGLContext.

This function is a direct call to glBindBuffer(type, 0) for use when the caller does not know which QGLBuffer has been bound to the context but wants to make sure that it is released.

 QGLBuffer.release(QGLBuffer.VertexBuffer);

QGLBuffer.setUsagePattern (self, UsagePattern value)

Sets the usage pattern for this buffer object to value. This function must be called before allocate() or write().

See also usagePattern(), allocate(), and write().

int QGLBuffer.size (self)

Returns the size of the data in this buffer, for reading operations. Returns -1 if fetching the buffer size is not supported, or the buffer has not been created.

It is assumed that this buffer has been bound to the current context.

See also isCreated() and bind().

Type QGLBuffer.type (self)

Returns the type of buffer represented by this object.

bool QGLBuffer.unmap (self)

Unmaps the buffer after it was mapped into the application's memory space with a previous call to map(). Returns true if the unmap succeeded; false otherwise.

It is assumed that this buffer has been bound to the current context, and that it was previously mapped with map().

This function is only supported under OpenGL/ES if the GL_OES_mapbuffer extension is present.

See also map().

UsagePattern QGLBuffer.usagePattern (self)

Returns the usage pattern for this buffer object. The default value is StaticDraw.

See also setUsagePattern().

QGLBuffer.write (self, int offset, sip.voidptr data, int count)

Replaces the count bytes of this buffer starting at offset with the contents of data. Any other bytes in the buffer will be left unmodified.

It is assumed that create() has been called on this buffer and that it has been bound to the current context.

See also create(), read(), and allocate().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglcolormap.html0000644000076500000240000002221312536324521020666 0ustar philstaff00000000000000 QGLColormap Class Reference
  Home · All Classes · Modules

QGLColormap Class Reference
[QtOpenGL module]

The QGLColormap class is used for installing custom colormaps into a QGLWidget. More...

Methods


Detailed Description

The QGLColormap class is used for installing custom colormaps into a QGLWidget.

QGLColormap provides a platform independent way of specifying and installing indexed colormaps for a QGLWidget. QGLColormap is especially useful when using the OpenGL color-index mode.

Under X11 you must use an X server that supports either a PseudoColor or DirectColor visual class. If your X server currently only provides a GrayScale, TrueColor, StaticColor or StaticGray visual, you will not be able to allocate colorcells for writing. If this is the case, try setting your X server to 8 bit mode. It should then provide you with at least a PseudoColor visual. Note that you may experience colormap flashing if your X server is running in 8 bit mode.

The size() of the colormap is always set to 256 colors. Note that under Windows you can also install colormaps in child widgets.

This class uses implicit sharing as a memory and speed optimization.

Example of use:

 #include <QApplication>
 #include <QGLColormap>

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     MySuperGLWidget widget;     // a QGLWidget in color-index mode
     QGLColormap colormap;

     // This will fill the colormap with colors ranging from
     // black to white.
     const int size = 256;
     for (int i = 0; i < size; ++i)
         colormap.setEntry(i, qRgb(i, i, i));

     widget.setColormap(colormap);
     widget.show();
     return app.exec();
 }

Method Documentation

QGLColormap.__init__ (self)

Construct a QGLColormap.

QGLColormap.__init__ (self, QGLColormap)

Construct a shallow copy of map.

QGLColormap.detach (self)

QColor QGLColormap.entryColor (self, int idx)

Returns the QRgb value in the colorcell with index idx.

int QGLColormap.entryRgb (self, int idx)

Returns the QRgb value in the colorcell with index idx.

int QGLColormap.find (self, int color)

Returns the index of the color color. If color is not in the map, -1 is returned.

int QGLColormap.findNearest (self, int color)

Returns the index of the color that is the closest match to color color.

int QGLColormap.handle (self)

bool QGLColormap.isEmpty (self)

Returns true if the colormap is empty or it is not in use by a QGLWidget; otherwise returns false.

A colormap with no color values set is considered to be empty. For historical reasons, a colormap that has color values set but which is not in use by a QGLWidget is also considered empty.

Compare size() with zero to determine if the colormap is empty regardless of whether it is in use by a QGLWidget or not.

See also size().

QGLColormap.setEntries (self, list-of-int colors, int base = 0)

Set an array of cells in this colormap. count is the number of colors that should be set, colors is the array of colors, and base is the starting index. The first element in colors is set at base in the colormap.

QGLColormap.setEntry (self, int idx, int color)

Set cell at index idx in the colormap to color color.

QGLColormap.setEntry (self, int idx, QColor color)

This is an overloaded function.

Set the cell with index idx in the colormap to color color.

QGLColormap.setHandle (self, int ahandle)

int QGLColormap.size (self)

Returns the number of colorcells in the colormap.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglcontext-bindoptions.html0000644000076500000240000001365712536324520023077 0ustar philstaff00000000000000 QGLContext.BindOptions Class Reference
  Home · All Classes · Modules

QGLContext.BindOptions Class Reference
[
QtOpenGL module]

Methods

Special Methods


Detailed Description


Method Documentation

BindOptions.__init__ (self, BindOptions)

BindOptions.__init__ (self, int)

BindOptions.__init__ (self)

BindOptions BindOptions.__and__ (self, int mask)

int BindOptions.__bool__ (self)

bool BindOptions.__eq__ (self, BindOptions f)

BindOptions BindOptions.__iand__ (self, int mask)

int BindOptions.__int__ (self)

BindOptions BindOptions.__invert__ (self)

BindOptions BindOptions.__ior__ (self, BindOptions f)

BindOptions BindOptions.__ixor__ (self, BindOptions f)

bool BindOptions.__ne__ (self, BindOptions f)

BindOptions BindOptions.__or__ (self, BindOptions f)

BindOptions BindOptions.__or__ (self, int f)

BindOptions BindOptions.__xor__ (self, BindOptions f)

BindOptions BindOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglcontext.html0000644000076500000240000007152212536324520020544 0ustar philstaff00000000000000 QGLContext Class Reference
  Home · All Classes · Modules

QGLContext Class Reference
[QtOpenGL module]

The QGLContext class encapsulates an OpenGL rendering context. More...

Types

  • enum BindOption { NoBindOption, InvertedYBindOption, MipmapBindOption, PremultipliedAlphaBindOption, LinearFilteringBindOption, DefaultBindOption }

Methods

Static Methods


Detailed Description

The QGLContext class encapsulates an OpenGL rendering context.

An OpenGL rendering context is a complete set of OpenGL state variables. The rendering context's format is set in the constructor, but it can also be set later with setFormat(). The format options that are actually set are returned by format(); the options you asked for are returned by requestedFormat(). Note that after a QGLContext object has been constructed, the actual OpenGL context must be created by explicitly calling the create() function. The makeCurrent() function makes this context the current rendering context. You can make no context current using doneCurrent(). The reset() function will reset the context and make it invalid.

You can examine properties of the context with, e.g. isValid(), isSharing(), initialized(), windowCreated() and overlayTransparentColor().

If you're using double buffering you can swap the screen contents with the off-screen buffer using swapBuffers().

Please note that QGLContext is not thread-safe.


Type Documentation

QGLContext.BindOption

A set of options to decide how to bind a texture using bindTexture().

Constant Value Description
QGLContext.NoBindOption 0x0000 Don't do anything, pass the texture straight through.
QGLContext.InvertedYBindOption 0x0001 Specifies that the texture should be flipped over the X axis so that the texture coordinate 0,0 corresponds to the top left corner. Inverting the texture implies a deep copy prior to upload.
QGLContext.MipmapBindOption 0x0002 Specifies that bindTexture() should try to generate mipmaps. If the GL implementation supports the GL_SGIS_generate_mipmap extension, mipmaps will be automatically generated for the texture. Mipmap generation is only supported for the GL_TEXTURE_2D target.
QGLContext.PremultipliedAlphaBindOption 0x0004 Specifies that the image should be uploaded with premultiplied alpha and does a conversion accordingly.
QGLContext.LinearFilteringBindOption 0x0008 Specifies that the texture filtering should be set to GL_LINEAR. Default is GL_NEAREST. If mipmap is also enabled, filtering will be set to GL_LINEAR_MIPMAP_LINEAR.
QGLContext.DefaultBindOption LinearFilteringBindOption | InvertedYBindOption | MipmapBindOption In Qt 4.5 and earlier, bindTexture() would mirror the image and automatically generate mipmaps. This option helps preserve this default behavior.

Used by x11 from pixmap to choose whether or not it can bind the pixmap upside down or not.

Used by paint engines to indicate that the pixmap should be memory managed along side with the pixmap/image that it stems from, e.g. installing destruction hooks in them.

This enum was introduced or modified in Qt 4.6.

The BindOptions type is a typedef for QFlags<BindOption>. It stores an OR combination of BindOption values.


Method Documentation

QGLContext.__init__ (self, QGLFormat format, QPaintDevice device)

Constructs an OpenGL context with the given format which specifies several display options for the context.

If the underlying OpenGL/Window system cannot satisfy all the features requested in format, the nearest subset of features will be used. After creation, the format() method will return the actual format obtained.

Note that after a QGLContext object has been constructed, create() must be called explicitly to create the actual OpenGL context. The context will be invalid if it was not possible to obtain a GL context at all.

See also format() and isValid().

bool QGLContext.areSharing (QGLContext context1, QGLContext context2)

Returns true if context1 and context2 are sharing their GL resources such as textures, shader programs, etc; otherwise returns false.

This function was introduced in Qt 4.6.

int QGLContext.bindTexture (self, QImage image, int target = GL_TEXTURE_2D, int format = GL_RGBA)

Generates and binds a 2D GL texture to the current context, based on image. The generated texture id is returned and can be used in later glBindTexture() calls.

The target parameter specifies the texture target. The default target is GL_TEXTURE_2D.

The format parameter sets the internal format for the texture. The default format is GL_RGBA.

The binding options are a set of options used to decide how to bind the texture to the context.

The texture that is generated is cached, so multiple calls to bindTexture() with the same QImage will return the same texture id.

Note that we assume default values for the glPixelStore() and glPixelTransfer() parameters.

This function was introduced in Qt 4.6.

See also deleteTexture().

int QGLContext.bindTexture (self, QPixmap pixmap, int target = GL_TEXTURE_2D, int format = GL_RGBA)

This is an overloaded function.

Reads the compressed texture file fileName and generates a 2D GL texture from it.

This function can load DirectDrawSurface (DDS) textures in the DXT1, DXT3 and DXT5 DDS formats if the GL_ARB_texture_compression and GL_EXT_texture_compression_s3tc extensions are supported.

Since 4.6.1, textures in the ETC1 format can be loaded if the GL_OES_compressed_ETC1_RGB8_texture extension is supported and the ETC1 texture has been encapsulated in the PVR container format. Also, textures in the PVRTC2 and PVRTC4 formats can be loaded if the GL_IMG_texture_compression_pvrtc extension is supported.

See also deleteTexture().

int QGLContext.bindTexture (self, QString fileName)

Generates and binds a 2D GL texture to the current context, based on image. The generated texture id is returned and can be used in later glBindTexture() calls.

This is an overloaded function.

int QGLContext.bindTexture (self, QImage image, int target, int format, BindOptions options)

This is an overloaded function.

Generates and binds a 2D GL texture based on pixmap.

int QGLContext.bindTexture (self, QPixmap pixmap, int target, int format, BindOptions options)

This is an overloaded function.

Generates and binds a 2D GL texture to the current context, based on pixmap.

This function was introduced in Qt 4.6.

bool QGLContext.chooseContext (self, QGLContext shareContext = None)

This semi-internal function is called by create(). It creates a system-dependent OpenGL handle that matches the format() of shareContext as closely as possible, returning true if successful or false if a suitable handle could not be found.

On Windows, it calls the virtual function choosePixelFormat(), which finds a matching pixel format identifier. On X11, it calls the virtual function chooseVisual() which finds an appropriate X visual. On other platforms it may work differently.

sip.voidptr QGLContext.chooseVisual (self)

X11 only: This virtual function tries to find a visual that matches the format, reducing the demands if the original request cannot be met.

The algorithm for reducing the demands of the format is quite simple-minded, so override this method in your subclass if your application has spcific requirements on visual selection.

See also chooseContext().

bool QGLContext.create (self, QGLContext shareContext = None)

Creates the GL context. Returns true if it was successful in creating a valid GL rendering context on the paint device specified in the constructor; otherwise returns false (i.e. the context is invalid).

After successful creation, format() returns the set of features of the created GL rendering context.

If shareContext points to a valid QGLContext, this method will try to establish OpenGL display list and texture object sharing between this context and the shareContext. Note that this may fail if the two contexts have different formats. Use isSharing() to see if sharing is in effect.

Warning: Implementation note: initialization of C++ class members usually takes place in the class constructor. QGLContext is an exception because it must be simple to customize. The virtual functions chooseContext() (and chooseVisual() for X11) can be reimplemented in a subclass to select a particular context. The problem is that virtual functions are not properly called during construction (even though this is correct C++) because C++ constructs class hierarchies from the bottom up. For this reason we need a create() function.

See also chooseContext(), format(), and isValid().

QGLContext QGLContext.currentContext ()

Returns the current context, i.e. the context to which any OpenGL commands will currently be directed. Returns 0 if no context is current.

See also makeCurrent().

QGLContext.deleteTexture (self, int tx_id)

Removes the texture identified by id from the texture cache, and calls glDeleteTextures() to delete the texture from the context.

See also bindTexture().

QPaintDevice QGLContext.device (self)

Returns the paint device set for this context.

See also QGLContext.QGLContext().

bool QGLContext.deviceIsPixmap (self)

Returns true if the paint device of this context is a pixmap; otherwise returns false.

QGLContext.doneCurrent (self)

Makes no GL context the current context. Normally, you do not need to call this function; QGLContext calls it as necessary.

QGLContext.drawTexture (self, QRectF target, int textureId, int textureTarget = GL_TEXTURE_2D)

This function supports the following use cases:

  • On OpenGL and OpenGL ES 1.x it draws the given texture, textureId, to the given target rectangle, target, in OpenGL model space. The textureTarget should be a 2D texture target.
  • On OpenGL and OpenGL ES 2.x, if a painter is active, not inside a beginNativePainting / endNativePainting block, and uses the engine with type QPaintEngine.OpenGL2, the function will draw the given texture, textureId, to the given target rectangle, target, respecting the current painter state. This will let you draw a texture with the clip, transform, render hints, and composition mode set by the painter. Note that the texture target needs to be GL_TEXTURE_2D for this use case, and that this is the only supported use case under OpenGL ES 2.x.

This function was introduced in Qt 4.4.

QGLContext.drawTexture (self, QPointF point, int textureId, int textureTarget = GL_TEXTURE_2D)

This function supports the following use cases:

  • By default it draws the given texture, textureId, at the given point in OpenGL model space. The textureTarget should be a 2D texture target.
  • If a painter is active, not inside a beginNativePainting / endNativePainting block, and uses the engine with type QPaintEngine.OpenGL2, the function will draw the given texture, textureId, at the given point, respecting the current painter state. This will let you draw a texture with the clip, transform, render hints, and composition mode set by the painter. Note that the texture target needs to be GL_TEXTURE_2D for this use case.

Note: This function is not supported under any version of OpenGL ES.

This function was introduced in Qt 4.4.

QGLFormat QGLContext.format (self)

Returns the frame buffer format that was obtained (this may be a subset of what was requested).

See also setFormat() and requestedFormat().

QGLContext.generateFontDisplayLists (self, QFont fnt, int listBase)

sip.voidptr QGLContext.getProcAddress (self, QString proc)

Returns a function pointer to the GL extension function passed in proc. 0 is returned if a pointer to the function could not be obtained.

bool QGLContext.initialized (self)

Returns true if this context has been initialized, i.e. if QGLWidget.initializeGL() has been performed on it; otherwise returns false.

See also setInitialized().

bool QGLContext.isSharing (self)

Returns true if this context is sharing its GL context with another QGLContext, otherwise false is returned. Note that context sharing might not be supported between contexts with different formats.

bool QGLContext.isValid (self)

Returns true if a GL rendering context has been successfully created; otherwise returns false.

QGLContext.makeCurrent (self)

Makes this context the current OpenGL rendering context. All GL functions you call operate on this context until another context is made current.

In some very rare cases the underlying call may fail. If this occurs an error message is output to stderr.

QColor QGLContext.overlayTransparentColor (self)

If this context is a valid context in an overlay plane, returns the plane's transparent color. Otherwise returns an {QColor.isValid()}{invalid} color.

The returned QColor object will generally work as expected only when passed as the argument to QGLWidget.qglColor() or QGLWidget.qglClearColor(). Under certain circumstances it can also be used to draw transparent graphics with a QPainter.

QGLFormat QGLContext.requestedFormat (self)

Returns the frame buffer format that was originally requested in the constructor or setFormat().

See also format().

QGLContext.reset (self)

Resets the context and makes it invalid.

See also create() and isValid().

QGLContext.setFormat (self, QGLFormat format)

Sets a format for this context. The context is reset.

Call create() to create a new GL context that tries to match the new format.

 QGLContext *cx;
 //  ...
 QGLFormat f;
 f.setStereo(true);
 cx->setFormat(f);
 if (!cx->create())
     exit(); // no OpenGL support, or cannot render on the specified paintdevice
 if (!cx->format().stereo())
     exit(); // could not create stereo context

See also format(), reset(), and create().

QGLContext.setInitialized (self, bool on)

If on is true the context has been initialized, i.e. QGLContext.setInitialized() has been called on it. If on is false the context has not been initialized.

See also initialized().

QGLContext.setTextureCacheLimit (int size)

This function sets the limit for the texture cache to size, expressed in kilobytes.

By default, the cache limit is approximately 64 MB.

See also textureCacheLimit().

QGLContext.setWindowCreated (self, bool on)

If on is true the context has had a window created for it. If on is false no window has been created for the context.

See also windowCreated().

QGLContext.swapBuffers (self)

Swaps the screen contents with an off-screen buffer. Only works if the context is in double buffer mode.

See also QGLFormat.setDoubleBuffer().

int QGLContext.textureCacheLimit ()

Returns the current texture cache limit in kilobytes.

See also setTextureCacheLimit().

bool QGLContext.windowCreated (self)

Returns true if a window has been created for this context; otherwise returns false.

See also setWindowCreated().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglformat-openglversionflags.html0000644000076500000240000001527612536324520024261 0ustar philstaff00000000000000 QGLFormat.OpenGLVersionFlags Class Reference
  Home · All Classes · Modules

QGLFormat.OpenGLVersionFlags Class Reference
[QtOpenGL module]

Methods

Special Methods

  • OpenGLVersionFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, OpenGLVersionFlags f)
  • OpenGLVersionFlags __iand__ (self, int mask)
  • int __int__ (self)
  • OpenGLVersionFlags __invert__ (self)
  • OpenGLVersionFlags __ior__ (self, OpenGLVersionFlags f)
  • OpenGLVersionFlags __ixor__ (self, OpenGLVersionFlags f)
  • bool __ne__ (self, OpenGLVersionFlags f)
  • OpenGLVersionFlags __or__ (self, OpenGLVersionFlags f)
  • OpenGLVersionFlags __or__ (self, int f)
  • OpenGLVersionFlags __xor__ (self, OpenGLVersionFlags f)
  • OpenGLVersionFlags __xor__ (self, int f)

Detailed Description

OpenGLVersionFlag may be used whenever OpenGLVersionFlags is expected.


Method Documentation

OpenGLVersionFlags.__init__ (self, OpenGLVersionFlags)

OpenGLVersionFlags.__init__ (self, int)

OpenGLVersionFlags.__init__ (self)

OpenGLVersionFlags OpenGLVersionFlags.__and__ (self, int mask)

int OpenGLVersionFlags.__bool__ (self)

bool OpenGLVersionFlags.__eq__ (self, OpenGLVersionFlags f)

OpenGLVersionFlags OpenGLVersionFlags.__iand__ (self, int mask)

int OpenGLVersionFlags.__int__ (self)

OpenGLVersionFlags OpenGLVersionFlags.__invert__ (self)

OpenGLVersionFlags OpenGLVersionFlags.__ior__ (self, OpenGLVersionFlags f)

OpenGLVersionFlags OpenGLVersionFlags.__ixor__ (self, OpenGLVersionFlags f)

bool OpenGLVersionFlags.__ne__ (self, OpenGLVersionFlags f)

OpenGLVersionFlags OpenGLVersionFlags.__or__ (self, OpenGLVersionFlags f)

OpenGLVersionFlags OpenGLVersionFlags.__or__ (self, int f)

OpenGLVersionFlags OpenGLVersionFlags.__xor__ (self, OpenGLVersionFlags f)

OpenGLVersionFlags OpenGLVersionFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglformat.html0000644000076500000240000014435412536324520020354 0ustar philstaff00000000000000 QGLFormat Class Reference
  Home · All Classes · Modules

QGLFormat Class Reference
[QtOpenGL module]

The QGLFormat class specifies the display format of an OpenGL rendering context. More...

Types

Methods

Static Methods

Special Methods


Detailed Description

The QGLFormat class specifies the display format of an OpenGL rendering context.

A display format has several characteristics:

You can also specify preferred bit depths for the color buffer, depth buffer, alpha buffer, accumulation buffer and the stencil buffer with the functions: setRedBufferSize(), setGreenBufferSize(), setBlueBufferSize(), setDepthBufferSize(), setAlphaBufferSize(), setAccumBufferSize() and setStencilBufferSize().

Note that even if you specify that you prefer a 32 bit depth buffer (e.g. with setDepthBufferSize(32)), the format that is chosen may not have a 32 bit depth buffer, even if there is a format available with a 32 bit depth buffer. The main reason for this is how the system dependant picking algorithms work on the different platforms, and some format options may have higher precedence than others.

You create and tell a QGLFormat object what rendering options you want from an OpenGL rendering context.

OpenGL drivers or accelerated hardware may or may not support advanced features such as alpha channel or stereographic viewing. If you request some features that the driver/hardware does not provide when you create a QGLWidget, you will get a rendering context with the nearest subset of features.

There are different ways to define the display characteristics of a rendering context. One is to create a QGLFormat and make it the default for the entire application:

 QGLFormat fmt;
 fmt.setAlpha(true);
 fmt.setStereo(true);
 QGLFormat.setDefaultFormat(fmt);

Or you can specify the desired format when creating an object of your QGLWidget subclass:

 QGLFormat fmt;
 fmt.setDoubleBuffer(false);                 // single buffer
 fmt.setDirectRendering(false);              // software rendering
 MyGLWidget* myWidget = new MyGLWidget(fmt, ...);

After the widget has been created, you can find out which of the requested features the system was able to provide:

 QGLFormat fmt;
 fmt.setOverlay(true);
 fmt.setStereo(true);
 MyGLWidget* myWidget = new MyGLWidget(fmt, ...);
 if (!myWidget->format().stereo()) {
     // ok, goggles off
     if (!myWidget->format().hasOverlay()) {
         qFatal("Cool hardware required");
     }
 }

OpenGL is a trademark of Silicon Graphics, Inc. in the United States and other countries.


Type Documentation

QGLFormat.OpenGLContextProfile

This enum describes the OpenGL context profiles that can be specified for contexts implementing OpenGL version 3.2 or higher. These profiles are different from OpenGL ES profiles.

Constant Value Description
QGLFormat.NoProfile 0 OpenGL version is lower than 3.2.
QGLFormat.CoreProfile 1 Functionality deprecated in OpenGL version 3.0 is not available.
QGLFormat.CompatibilityProfile 2 Functionality from earlier OpenGL versions is available.

This enum was introduced or modified in Qt 4.7.

QGLFormat.OpenGLVersionFlag

This enum describes the various OpenGL versions that are recognized by Qt. Use the QGLFormat.openGLVersionFlags() function to identify which versions that are supported at runtime.

Constant Value Description
QGLFormat.OpenGL_Version_None 0x00000000 If no OpenGL is present or if no OpenGL context is current.
QGLFormat.OpenGL_Version_1_1 0x00000001 OpenGL version 1.1 or higher is present.
QGLFormat.OpenGL_Version_1_2 0x00000002 OpenGL version 1.2 or higher is present.
QGLFormat.OpenGL_Version_1_3 0x00000004 OpenGL version 1.3 or higher is present.
QGLFormat.OpenGL_Version_1_4 0x00000008 OpenGL version 1.4 or higher is present.
QGLFormat.OpenGL_Version_1_5 0x00000010 OpenGL version 1.5 or higher is present.
QGLFormat.OpenGL_Version_2_0 0x00000020 OpenGL version 2.0 or higher is present. Note that version 2.0 supports all the functionality of version 1.5.
QGLFormat.OpenGL_Version_2_1 0x00000040 OpenGL version 2.1 or higher is present.
QGLFormat.OpenGL_Version_3_0 0x00001000 OpenGL version 3.0 or higher is present.
QGLFormat.OpenGL_Version_3_1 0x00002000 OpenGL version 3.1 or higher is present. Note that OpenGL version 3.1 or higher does not necessarily support all the features of version 3.0 and lower.
QGLFormat.OpenGL_Version_3_2 0x00004000 OpenGL version 3.2 or higher is present.
QGLFormat.OpenGL_Version_3_3 0x00008000 OpenGL version 3.3 or higher is present.
QGLFormat.OpenGL_Version_4_0 0x00010000 OpenGL version 4.0 or higher is present.
QGLFormat.OpenGL_ES_CommonLite_Version_1_0 0x00000100 OpenGL ES version 1.0 Common Lite or higher is present.
QGLFormat.OpenGL_ES_Common_Version_1_0 0x00000080 OpenGL ES version 1.0 Common or higher is present. The Common profile supports all the features of Common Lite.
QGLFormat.OpenGL_ES_CommonLite_Version_1_1 0x00000400 OpenGL ES version 1.1 Common Lite or higher is present.
QGLFormat.OpenGL_ES_Common_Version_1_1 0x00000200 OpenGL ES version 1.1 Common or higher is present. The Common profile supports all the features of Common Lite.
QGLFormat.OpenGL_ES_Version_2_0 0x00000800 OpenGL ES version 2.0 or higher is present. Note that OpenGL ES version 2.0 does not support all the features of OpenGL ES 1.x. So if OpenGL_ES_Version_2_0 is returned, none of the ES 1.x flags are returned.

See also http://www.opengl.org for more information about the different revisions of OpenGL.

This enum was introduced or modified in Qt 4.2.

The OpenGLVersionFlags type is a typedef for QFlags<OpenGLVersionFlag>. It stores an OR combination of OpenGLVersionFlag values.

See also openGLVersionFlags().


Method Documentation

QGLFormat.__init__ (self)

Constructs a QGLFormat object with the following default settings:

QGLFormat.__init__ (self, QGL.FormatOptions options, int plane = 0)

Creates a QGLFormat object that is a copy of the current defaultFormat().

If options is not 0, the default format is modified by the specified format options. The options parameter should be QGL.FormatOption values OR'ed together.

This constructor makes it easy to specify a certain desired format in classes derived from QGLWidget, for example:

 // The rendering in MyGLWidget depends on using
 // stencil buffer and alpha channel
 MyGLWidget.MyGLWidget(QWidget* parent)
     : QGLWidget(QGLFormat(QGL.StencilBuffer | QGL.AlphaChannel), parent)
 {
     if (!format().stencil())
         qWarning("Could not get stencil buffer; results will be suboptimal");
     if (!format().alpha())
         qWarning("Could not get alpha channel; results will be suboptimal");
     ...
 }

Note that there are QGL.FormatOption values to turn format settings both on and off, e.g. QGL.DepthBuffer and QGL.NoDepthBuffer, QGL.DirectRendering and QGL.IndirectRendering, etc.

The plane parameter defaults to 0 and is the plane which this format should be associated with. Not all OpenGL implementations supports overlay/underlay rendering planes.

See also defaultFormat(), setOption(), and setPlane().

QGLFormat.__init__ (self, QGLFormat other)

Constructs a copy of other.

bool QGLFormat.accum (self)

Returns true if the accumulation buffer is enabled; otherwise returns false. The accumulation buffer is disabled by default.

See also setAccum() and setAccumBufferSize().

int QGLFormat.accumBufferSize (self)

Returns the accumulation buffer size.

See also setAccumBufferSize(), accum(), and setAccum().

bool QGLFormat.alpha (self)

Returns true if the alpha buffer in the framebuffer is enabled; otherwise returns false. The alpha buffer is disabled by default.

See also setAlpha() and setAlphaBufferSize().

int QGLFormat.alphaBufferSize (self)

Returns the alpha buffer size.

See also alpha(), setAlpha(), and setAlphaBufferSize().

int QGLFormat.blueBufferSize (self)

Returns the blue buffer size.

This function was introduced in Qt 4.2.

See also setBlueBufferSize().

QGLFormat QGLFormat.defaultFormat ()

Returns the default QGLFormat for the application. All QGLWidget objects that are created use this format unless another format is specified, e.g. when they are constructed.

If no special default format has been set using setDefaultFormat(), the default format is the same as that created with QGLFormat().

See also setDefaultFormat().

QGLFormat QGLFormat.defaultOverlayFormat ()

Returns the default QGLFormat for overlay contexts.

The default overlay format is:

See also setDefaultOverlayFormat() and setDefaultFormat().

bool QGLFormat.depth (self)

Returns true if the depth buffer is enabled; otherwise returns false. The depth buffer is enabled by default.

See also setDepth() and setDepthBufferSize().

int QGLFormat.depthBufferSize (self)

Returns the depth buffer size.

See also depth(), setDepth(), and setDepthBufferSize().

bool QGLFormat.directRendering (self)

Returns true if direct rendering is enabled; otherwise returns false.

Direct rendering is enabled by default.

See also setDirectRendering().

bool QGLFormat.doubleBuffer (self)

Returns true if double buffering is enabled; otherwise returns false. Double buffering is enabled by default.

See also setDoubleBuffer().

int QGLFormat.greenBufferSize (self)

Returns the green buffer size.

This function was introduced in Qt 4.2.

See also setGreenBufferSize().

bool QGLFormat.hasOpenGL ()

Returns true if the window system has any OpenGL support; otherwise returns false.

Warning: This function must not be called until the QApplication object has been created.

bool QGLFormat.hasOpenGLOverlays ()

Returns true if the window system supports OpenGL overlays; otherwise returns false.

Warning: This function must not be called until the QApplication object has been created.

bool QGLFormat.hasOverlay (self)

Returns true if overlay plane is enabled; otherwise returns false.

Overlay is disabled by default.

See also setOverlay().

int QGLFormat.majorVersion (self)

Returns the OpenGL major version.

This function was introduced in Qt 4.7.

See also setVersion() and minorVersion().

int QGLFormat.minorVersion (self)

Returns the OpenGL minor version.

This function was introduced in Qt 4.7.

See also setVersion() and majorVersion().

OpenGLVersionFlags QGLFormat.openGLVersionFlags ()

Identifies, at runtime, which OpenGL versions that are supported by the current platform.

Note that if OpenGL version 1.5 is supported, its predecessors (i.e., version 1.4 and lower) are also supported. To identify the support of a particular feature, like multi texturing, test for the version in which the feature was first introduced (i.e., version 1.3 in the case of multi texturing) to adapt to the largest possible group of runtime platforms.

This function needs a valid current OpenGL context to work; otherwise it will return OpenGL_Version_None.

This function was introduced in Qt 4.2.

See also hasOpenGL() and hasOpenGLOverlays().

int QGLFormat.plane (self)

Returns the plane of this format. The default for normal formats is 0, which means the normal plane. The default for overlay formats is 1, which is the first overlay plane.

See also setPlane() and defaultOverlayFormat().

OpenGLContextProfile QGLFormat.profile (self)

Returns the OpenGL context profile.

This function was introduced in Qt 4.7.

See also setProfile().

int QGLFormat.redBufferSize (self)

Returns the red buffer size.

This function was introduced in Qt 4.2.

See also setRedBufferSize().

bool QGLFormat.rgba (self)

Returns true if RGBA color mode is set. Returns false if color index mode is set. The default color mode is RGBA.

See also setRgba().

bool QGLFormat.sampleBuffers (self)

Returns true if multisample buffer support is enabled; otherwise returns false.

The multisample buffer is disabled by default.

See also setSampleBuffers().

int QGLFormat.samples (self)

Returns the number of samples per pixel when multisampling is enabled. By default, the highest number of samples that is available is used.

See also setSampleBuffers(), sampleBuffers(), and setSamples().

QGLFormat.setAccum (self, bool enable)

If enable is true enables the accumulation buffer; otherwise disables the accumulation buffer.

The accumulation buffer is disabled by default.

The accumulation buffer is used to create blur effects and multiple exposures.

See also accum() and setAccumBufferSize().

QGLFormat.setAccumBufferSize (self, int size)

Set the preferred accumulation buffer size, where size is the bit depth for each RGBA component.

See also accum(), setAccum(), and accumBufferSize().

QGLFormat.setAlpha (self, bool enable)

If enable is true enables the alpha buffer; otherwise disables the alpha buffer.

The alpha buffer is disabled by default.

The alpha buffer is typically used for implementing transparency or translucency. The A in RGBA specifies the transparency of a pixel.

See also alpha() and setAlphaBufferSize().

QGLFormat.setAlphaBufferSize (self, int size)

Set the preferred alpha buffer size to size. This function implicitly enables the alpha channel.

See also setRedBufferSize(), setGreenBufferSize(), and alphaBufferSize().

QGLFormat.setBlueBufferSize (self, int size)

Set the preferred blue buffer size to size.

This function was introduced in Qt 4.2.

See also blueBufferSize(), setRedBufferSize(), setGreenBufferSize(), and setAlphaBufferSize().

QGLFormat.setDefaultFormat (QGLFormat f)

Sets a new default QGLFormat for the application to f. For example, to set single buffering as the default instead of double buffering, your main() might contain code like this:

 QApplication a(argc, argv);
 QGLFormat f;
 f.setDoubleBuffer(false);
 QGLFormat.setDefaultFormat(f);

See also defaultFormat().

QGLFormat.setDefaultOverlayFormat (QGLFormat f)

Sets a new default QGLFormat for overlay contexts to f. This format is used whenever a QGLWidget is created with a format that hasOverlay() enabled.

For example, to get a double buffered overlay context (if available), use code like this:

 QGLFormat f = QGLFormat.defaultOverlayFormat();
 f.setDoubleBuffer(true);
 QGLFormat.setDefaultOverlayFormat(f);

As usual, you can find out after widget creation whether the underlying OpenGL system was able to provide the requested specification:

 // ...continued from above
 MyGLWidget* myWidget = new MyGLWidget(QGLFormat(QGL.HasOverlay), ...);
 if (myWidget->format().hasOverlay()) {
     // Yes, we got an overlay, let's check _its_ format:
     QGLContext* olContext = myWidget->overlayContext();
     if (olContext->format().doubleBuffer())
         ; // yes, we got a double buffered overlay
     else
         ; // no, only single buffered overlays are available
 }

See also defaultOverlayFormat().

QGLFormat.setDepth (self, bool enable)

If enable is true enables the depth buffer; otherwise disables the depth buffer.

The depth buffer is enabled by default.

The purpose of a depth buffer (or Z-buffering) is to remove hidden surfaces. Pixels are assigned Z values based on the distance to the viewer. A pixel with a high Z value is closer to the viewer than a pixel with a low Z value. This information is used to decide whether to draw a pixel or not.

See also depth() and setDepthBufferSize().

QGLFormat.setDepthBufferSize (self, int size)

Set the minimum depth buffer size to size.

See also depthBufferSize(), setDepth(), and depth().

QGLFormat.setDirectRendering (self, bool enable)

If enable is true enables direct rendering; otherwise disables direct rendering.

Direct rendering is enabled by default.

Enabling this option will make OpenGL bypass the underlying window system and render directly from hardware to the screen, if this is supported by the system.

See also directRendering().

QGLFormat.setDoubleBuffer (self, bool enable)

If enable is true sets double buffering; otherwise sets single buffering.

Double buffering is enabled by default.

Double buffering is a technique where graphics are rendered on an off-screen buffer and not directly to the screen. When the drawing has been completed, the program calls a swapBuffers() function to exchange the screen contents with the buffer. The result is flicker-free drawing and often better performance.

Note that single buffered contexts are currently not supported with EGL.

See also doubleBuffer(), QGLContext.swapBuffers(), and QGLWidget.swapBuffers().

QGLFormat.setGreenBufferSize (self, int size)

Set the preferred green buffer size to size.

This function was introduced in Qt 4.2.

See also greenBufferSize(), setRedBufferSize(), setBlueBufferSize(), and setAlphaBufferSize().

QGLFormat.setOption (self, QGL.FormatOptions opt)

Sets the format option to opt.

See also testOption().

QGLFormat.setOverlay (self, bool enable)

If enable is true enables an overlay plane; otherwise disables the overlay plane.

Enabling the overlay plane will cause QGLWidget to create an additional context in an overlay plane. See the QGLWidget documentation for further information.

See also hasOverlay().

QGLFormat.setPlane (self, int plane)

Sets the requested plane to plane. 0 is the normal plane, 1 is the first overlay plane, 2 is the second overlay plane, etc.; -1, -2, etc. are underlay planes.

Note that in contrast to other format specifications, the plane specifications will be matched exactly. This means that if you specify a plane that the underlying OpenGL system cannot provide, an invalid QGLWidget will be created.

See also plane().

QGLFormat.setProfile (self, OpenGLContextProfile profile)

Set the OpenGL context profile to profile. The profile is ignored if the requested OpenGL version is less than 3.2.

This function was introduced in Qt 4.7.

See also profile().

QGLFormat.setRedBufferSize (self, int size)

Set the preferred red buffer size to size.

This function was introduced in Qt 4.2.

See also redBufferSize(), setGreenBufferSize(), setBlueBufferSize(), and setAlphaBufferSize().

QGLFormat.setRgba (self, bool enable)

If enable is true sets RGBA mode. If enable is false sets color index mode.

The default color mode is RGBA.

RGBA is the preferred mode for most OpenGL applications. In RGBA color mode you specify colors as red + green + blue + alpha quadruplets.

In color index mode you specify an index into a color lookup table.

See also rgba().

QGLFormat.setSampleBuffers (self, bool enable)

If enable is true, a GL context with multisample buffer support is picked; otherwise ignored.

See also sampleBuffers(), setSamples(), and samples().

QGLFormat.setSamples (self, int numSamples)

Set the preferred number of samples per pixel when multisampling is enabled to numSamples. By default, the highest number of samples available is used.

See also setSampleBuffers(), sampleBuffers(), and samples().

QGLFormat.setStencil (self, bool enable)

If enable is true enables the stencil buffer; otherwise disables the stencil buffer.

The stencil buffer is enabled by default.

The stencil buffer masks certain parts of the drawing area so that masked parts are not drawn on.

See also stencil() and setStencilBufferSize().

QGLFormat.setStencilBufferSize (self, int size)

Set the preferred stencil buffer size to size.

See also stencilBufferSize(), setStencil(), and stencil().

QGLFormat.setStereo (self, bool enable)

If enable is true enables stereo buffering; otherwise disables stereo buffering.

Stereo buffering is disabled by default.

Stereo buffering provides extra color buffers to generate left-eye and right-eye images.

See also stereo().

QGLFormat.setSwapInterval (self, int interval)

Set the preferred swap interval. This can be used to sync the GL drawing into a system window to the vertical refresh of the screen. Setting an interval value of 0 will turn the vertical refresh syncing off, any value higher than 0 will turn the vertical syncing on.

Under Windows and under X11, where the WGL_EXT_swap_control and GLX_SGI_video_sync extensions are used, the interval parameter can be used to set the minimum number of video frames that are displayed before a buffer swap will occur. In effect, setting the interval to 10, means there will be 10 vertical retraces between every buffer swap.

Under Windows the WGL_EXT_swap_control extension has to be present, and under X11 the GLX_SGI_video_sync extension has to be present.

This function was introduced in Qt 4.2.

See also swapInterval().

QGLFormat.setVersion (self, int major, int minor)

Set the OpenGL version to the major and minor numbers. If a context compatible with the requested OpenGL version cannot be created, a context compatible with version 1.x is created instead.

This function was introduced in Qt 4.7.

See also majorVersion() and minorVersion().

bool QGLFormat.stencil (self)

Returns true if the stencil buffer is enabled; otherwise returns false. The stencil buffer is enabled by default.

See also setStencil() and setStencilBufferSize().

int QGLFormat.stencilBufferSize (self)

Returns the stencil buffer size.

See also stencil(), setStencil(), and setStencilBufferSize().

bool QGLFormat.stereo (self)

Returns true if stereo buffering is enabled; otherwise returns false. Stereo buffering is disabled by default.

See also setStereo().

int QGLFormat.swapInterval (self)

Returns the currently set swap interval. -1 is returned if setting the swap interval isn't supported in the system GL implementation.

This function was introduced in Qt 4.2.

See also setSwapInterval().

bool QGLFormat.testOption (self, QGL.FormatOptions opt)

Returns true if format option opt is set; otherwise returns false.

See also setOption().

bool QGLFormat.__eq__ (self, QGLFormat)

bool QGLFormat.__ne__ (self, QGLFormat)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglframebufferobject.html0000644000076500000240000005610712536324521022536 0ustar philstaff00000000000000 QGLFramebufferObject Class Reference
  Home · All Classes · Modules

QGLFramebufferObject Class Reference
[QtOpenGL module]

The QGLFramebufferObject class encapsulates an OpenGL framebuffer object. More...

Inherits QPaintDevice.

Types

  • enum Attachment { NoAttachment, CombinedDepthStencil, Depth }

Methods

  • __init__ (self, QSize size, int target = GL_TEXTURE_2D)
  • __init__ (self, int width, int height, int target = GL_TEXTURE_2D)
  • __init__ (self, QSize size, Attachment attachment, int target = GL_TEXTURE_2D, int internalFormat = GL_RGBA8)
  • __init__ (self, int width, int height, Attachment attachment, int target = GL_TEXTURE_2D, int internalFormat = GL_RGBA8)
  • __init__ (self, QSize size, QGLFramebufferObjectFormat format)
  • __init__ (self, int width, int height, QGLFramebufferObjectFormat format)
  • Attachment attachment (self)
  • bool bind (self)
  • drawTexture (self, QRectF target, int textureId, int textureTarget = GL_TEXTURE_2D)
  • drawTexture (self, QPointF point, int textureId, int textureTarget = GL_TEXTURE_2D)
  • QGLFramebufferObjectFormat format (self)
  • int handle (self)
  • bool isBound (self)
  • bool isValid (self)
  • int metric (self, QPaintDevice.PaintDeviceMetric metric)
  • QPaintEngine paintEngine (self)
  • bool release (self)
  • QSize size (self)
  • int texture (self)
  • QImage toImage (self)

Static Methods


Detailed Description

The QGLFramebufferObject class encapsulates an OpenGL framebuffer object.

The QGLFramebufferObject class encapsulates an OpenGL framebuffer object, defined by the GL_EXT_framebuffer_object extension. In addition it provides a rendering surface that can be painted on with a QPainter, rendered to using native GL calls, or both. This surface can be bound and used as a regular texture in your own GL drawing code. By default, the QGLFramebufferObject class generates a 2D GL texture (using the GL_TEXTURE_2D target), which is used as the internal rendering target.

It is important to have a current GL context when creating a QGLFramebufferObject, otherwise initialization will fail.

OpenGL framebuffer objects and pbuffers (see QGLPixelBuffer) can both be used to render to offscreen surfaces, but there are a number of advantages with using framebuffer objects instead of pbuffers:

  1. A framebuffer object does not require a separate rendering context, so no context switching will occur when switching rendering targets. There is an overhead involved in switching targets, but in general it is cheaper than a context switch to a pbuffer.
  2. Rendering to dynamic textures (i.e. render-to-texture functionality) works on all platforms. No need to do explicit copy calls from a render buffer into a texture, as was necessary on systems that did not support the render_texture extension.
  3. It is possible to attach several rendering buffers (or texture objects) to the same framebuffer object, and render to all of them without doing a context switch.
  4. The OpenGL framebuffer extension is a pure GL extension with no system dependant WGL, CGL, or GLX parts. This makes using framebuffer objects more portable.

When using a QPainter to paint to a QGLFramebufferObject you should take care that the QGLFramebufferObject is created with the CombinedDepthStencil attachment for QPainter to be able to render correctly. Note that you need to create a QGLFramebufferObject with more than one sample per pixel for primitives to be antialiased when drawing using a QPainter. To create a multisample framebuffer object you should use one of the constructors that take a QGLFramebufferObject parameter, and set the QGLFramebufferObject.samples() property to a non-zero value.

When painting to a QGLFramebufferObject using QPainter, the state of the current GL context will be altered by the paint engine to reflect its needs. Applications should not rely upon the GL state being reset to its original conditions, particularly the current shader program, GL viewport, texture units, and drawing modes.

For multisample framebuffer objects a color render buffer is created, otherwise a texture with the specified texture target is created. The color render buffer or texture will have the specified internal format, and will be bound to the GL_COLOR_ATTACHMENT0 attachment in the framebuffer object.

If you want to use a framebuffer object with multisampling enabled as a texture, you first need to copy from it to a regular framebuffer object using QGLContext.blitFramebuffer().

Threading

As of Qt 4.8, it's possible to draw into a QGLFramebufferObject using a QPainter in a separate thread. Note that OpenGL 2.0 or OpenGL ES 2.0 is required for this to work. Also, under X11, it's necessary to set the Qt.AA_X11InitThreads application attribute.


Type Documentation

QGLFramebufferObject.Attachment

This enum type is used to configure the depth and stencil buffers attached to the framebuffer object when it is created.

Constant Value Description
QGLFramebufferObject.NoAttachment 0 No attachment is added to the framebuffer object. Note that the OpenGL depth and stencil tests won't work when rendering to a framebuffer object without any depth or stencil buffers. This is the default value.
QGLFramebufferObject.CombinedDepthStencil 1 If the GL_EXT_packed_depth_stencil extension is present, a combined depth and stencil buffer is attached. If the extension is not present, only a depth buffer is attached.
QGLFramebufferObject.Depth 2 A depth buffer is attached to the framebuffer object.

This enum was introduced or modified in Qt 4.3.

See also attachment().


Method Documentation

QGLFramebufferObject.__init__ (self, QSize size, int target = GL_TEXTURE_2D)

Constructs an OpenGL framebuffer object and binds a 2D GL texture to the buffer of the size size. The texture is bound to the GL_COLOR_ATTACHMENT0 target in the framebuffer object.

The target parameter is used to specify the GL texture target. The default target is GL_TEXTURE_2D. Keep in mind that GL_TEXTURE_2D textures must have a power of 2 width and height (e.g. 256x512), unless you are using OpenGL 2.0 or higher.

By default, no depth and stencil buffers are attached. This behavior can be toggled using one of the overloaded constructors.

The default internal texture format is GL_RGBA8 for desktop OpenGL, and GL_RGBA for OpenGL/ES.

It is important that you have a current GL context set when creating the QGLFramebufferObject, otherwise the initialization will fail.

See also size(), texture(), and attachment().

QGLFramebufferObject.__init__ (self, int width, int height, int target = GL_TEXTURE_2D)

This is an overloaded function.

Constructs an OpenGL framebuffer object and binds a 2D GL texture to the buffer of the given width and height.

See also size() and texture().

QGLFramebufferObject.__init__ (self, QSize size, Attachment attachment, int target = GL_TEXTURE_2D, int internalFormat = GL_RGBA8)

This is an overloaded function.

Constructs an OpenGL framebuffer object of the given size based on the supplied format.

QGLFramebufferObject.__init__ (self, int width, int height, Attachment attachment, int target = GL_TEXTURE_2D, int internalFormat = GL_RGBA8)

This is an overloaded function.

Constructs an OpenGL framebuffer object of the given width and height based on the supplied format.

QGLFramebufferObject.__init__ (self, QSize size, QGLFramebufferObjectFormat format)

This is an overloaded function.

Constructs an OpenGL framebuffer object and binds a texture to the buffer of the given width and height.

The attachment parameter describes the depth/stencil buffer configuration, target the texture target and internal_format the internal texture format. The default texture target is GL_TEXTURE_2D, while the default internal format is GL_RGBA8 for desktop OpenGL and GL_RGBA for OpenGL/ES.

See also size(), texture(), and attachment().

QGLFramebufferObject.__init__ (self, int width, int height, QGLFramebufferObjectFormat format)

This is an overloaded function.

Constructs an OpenGL framebuffer object and binds a texture to the buffer of the given size.

The attachment parameter describes the depth/stencil buffer configuration, target the texture target and internal_format the internal texture format. The default texture target is GL_TEXTURE_2D, while the default internal format is GL_RGBA8 for desktop OpenGL and GL_RGBA for OpenGL/ES.

See also size(), texture(), and attachment().

Attachment QGLFramebufferObject.attachment (self)

Returns the status of the depth and stencil buffers attached to this framebuffer object.

bool QGLFramebufferObject.bind (self)

Switches rendering from the default, windowing system provided framebuffer to this framebuffer object. Returns true upon success, false otherwise.

See also release().

QGLFramebufferObject.blitFramebuffer (QGLFramebufferObject target, QRect targetRect, QGLFramebufferObject source, QRect sourceRect, int buffers = GL_COLOR_BUFFER_BIT, int filter = GL_NEAREST)

Blits from the sourceRect rectangle in the source framebuffer object to the targetRect rectangle in the target framebuffer object.

If source or target is 0, the default framebuffer will be used instead of a framebuffer object as source or target respectively.

The buffers parameter should be a mask consisting of any combination of GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, and GL_STENCIL_BUFFER_BIT. Any buffer type that is not present both in the source and target buffers is ignored.

The sourceRect and targetRect rectangles may have different sizes; in this case buffers should not contain GL_DEPTH_BUFFER_BIT or GL_STENCIL_BUFFER_BIT. The filter parameter should be set to GL_LINEAR or GL_NEAREST, and specifies whether linear or nearest interpolation should be used when scaling is performed.

If source equals target a copy is performed within the same buffer. Results are undefined if the source and target rectangles overlap and have different sizes. The sizes must also be the same if any of the framebuffer objects are multisample framebuffers.

Note that the scissor test will restrict the blit area if enabled.

This function will have no effect unless hasOpenGLFramebufferBlit() returns true.

This function was introduced in Qt 4.6.

See also hasOpenGLFramebufferBlit().

QGLFramebufferObject.drawTexture (self, QRectF target, int textureId, int textureTarget = GL_TEXTURE_2D)

Draws the given texture, textureId, to the given target rectangle, target, in OpenGL model space. The textureTarget should be a 2D texture target.

The framebuffer object should be bound when calling this function.

Equivalent to the corresponding QGLContext.drawTexture().

This function was introduced in Qt 4.4.

QGLFramebufferObject.drawTexture (self, QPointF point, int textureId, int textureTarget = GL_TEXTURE_2D)

Draws the given texture, textureId, at the given point in OpenGL model space. The textureTarget should be a 2D texture target.

The framebuffer object should be bound when calling this function.

Equivalent to the corresponding QGLContext.drawTexture().

This function was introduced in Qt 4.4.

QGLFramebufferObjectFormat QGLFramebufferObject.format (self)

Returns the format of this framebuffer object.

int QGLFramebufferObject.handle (self)

Returns the GL framebuffer object handle for this framebuffer object (returned by the glGenFrameBuffersEXT() function). This handle can be used to attach new images or buffers to the framebuffer. The user is responsible for cleaning up and destroying these objects.

bool QGLFramebufferObject.hasOpenGLFramebufferBlit ()

Returns true if the OpenGL GL_EXT_framebuffer_blit extension is present on this system; otherwise returns false.

This function was introduced in Qt 4.6.

See also blitFramebuffer().

bool QGLFramebufferObject.hasOpenGLFramebufferObjects ()

Returns true if the OpenGL GL_EXT_framebuffer_object extension is present on this system; otherwise returns false.

bool QGLFramebufferObject.isBound (self)

Returns true if the framebuffer object is currently bound to a context, otherwise false is returned.

This function was introduced in Qt 4.5.

bool QGLFramebufferObject.isValid (self)

Returns true if the framebuffer object is valid.

The framebuffer can become invalid if the initialization process fails, the user attaches an invalid buffer to the framebuffer object, or a non-power of two width/height is specified as the texture size if the texture target is GL_TEXTURE_2D. The non-power of two limitation does not apply if the OpenGL version is 2.0 or higher, or if the GL_ARB_texture_non_power_of_two extension is present.

The framebuffer can also become invalid if the QGLContext that the framebuffer was created within is destroyed and there are no other shared contexts that can take over ownership of the framebuffer.

int QGLFramebufferObject.metric (self, QPaintDevice.PaintDeviceMetric metric)

Reimplemented from QPaintDevice.metric().

QPaintEngine QGLFramebufferObject.paintEngine (self)

Reimplemented from QPaintDevice.paintEngine().

bool QGLFramebufferObject.release (self)

Switches rendering back to the default, windowing system provided framebuffer. Returns true upon success, false otherwise.

See also bind().

QSize QGLFramebufferObject.size (self)

Returns the size of the texture attached to this framebuffer object.

int QGLFramebufferObject.texture (self)

Returns the texture id for the texture attached as the default rendering target in this framebuffer object. This texture id can be bound as a normal texture in your own GL code.

If a multisample framebuffer object is used then the value returned from this function will be invalid.

QImage QGLFramebufferObject.toImage (self)

Returns the contents of this framebuffer object as a QImage.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglframebufferobjectformat.html0000644000076500000240000002525312536324521023745 0ustar philstaff00000000000000 QGLFramebufferObjectFormat Class Reference
  Home · All Classes · Modules

QGLFramebufferObjectFormat Class Reference
[QtOpenGL module]

The QGLFramebufferObjectFormat class specifies the format of an OpenGL framebuffer object. More...

Methods

Special Methods

  • bool __eq__ (self, QGLFramebufferObjectFormat other)
  • bool __ne__ (self, QGLFramebufferObjectFormat other)

Detailed Description

The QGLFramebufferObjectFormat class specifies the format of an OpenGL framebuffer object.

A framebuffer object has several characteristics:

Note that the desired attachments or number of samples per pixels might not be supported by the hardware driver. Call QGLFramebufferObject.format() after creating a QGLFramebufferObject to find the exact format that was used to create the frame buffer object.


Method Documentation

QGLFramebufferObjectFormat.__init__ (self)

Creates a QGLFramebufferObjectFormat object for specifying the format of an OpenGL framebuffer object.

By default the format specifies a non-multisample framebuffer object with no attachments, texture target GL_TEXTURE_2D, and internal format GL_RGBA8. On OpenGL/ES systems, the default internal format is GL_RGBA.

See also samples(), attachment(), and internalTextureFormat().

QGLFramebufferObjectFormat.__init__ (self, QGLFramebufferObjectFormat other)

Constructs a copy of other.

QGLFramebufferObject.Attachment QGLFramebufferObjectFormat.attachment (self)

Returns the configuration of the depth and stencil buffers attached to a framebuffer object. The default is QGLFramebufferObject.NoAttachment.

See also setAttachment().

int QGLFramebufferObjectFormat.internalTextureFormat (self)

Returns the internal format of a framebuffer object's texture or multisample framebuffer object's color buffer. The default is GL_RGBA8 on desktop OpenGL systems, and GL_RGBA on OpenGL/ES systems.

See also setInternalTextureFormat().

bool QGLFramebufferObjectFormat.mipmap (self)

Returns true if mipmapping is enabled.

This function was introduced in Qt 4.8.

See also setMipmap().

int QGLFramebufferObjectFormat.samples (self)

Returns the number of samples per pixel if a framebuffer object is a multisample framebuffer object. Otherwise, returns 0. The default value is 0.

See also setSamples().

QGLFramebufferObjectFormat.setAttachment (self, QGLFramebufferObject.Attachment attachment)

Sets the attachment configuration of a framebuffer object to attachment.

See also attachment().

QGLFramebufferObjectFormat.setInternalTextureFormat (self, int internalTextureFormat)

Sets the internal format of a framebuffer object's texture or multisample framebuffer object's color buffer to internalTextureFormat.

See also internalTextureFormat().

QGLFramebufferObjectFormat.setMipmap (self, bool enabled)

Enables mipmapping if enabled is true; otherwise disables it.

Mipmapping is disabled by default.

If mipmapping is enabled, additional memory will be allocated for the mipmap levels. The mipmap levels can be updated by binding the texture and calling glGenerateMipmap(). Mipmapping cannot be enabled for multisampled framebuffer objects.

This function was introduced in Qt 4.8.

See also mipmap() and QGLFramebufferObject.texture().

QGLFramebufferObjectFormat.setSamples (self, int samples)

Sets the number of samples per pixel for a multisample framebuffer object to samples. The default sample count of 0 represents a regular non-multisample framebuffer object.

If the desired amount of samples per pixel is not supported by the hardware then the maximum number of samples per pixel will be used. Note that multisample framebuffer objects can not be bound as textures. Also, the GL_EXT_framebuffer_multisample extension is required to create a framebuffer with more than one sample per pixel.

See also samples().

QGLFramebufferObjectFormat.setTextureTarget (self, int target)

Sets the texture target of the texture attached to a framebuffer object to target. Ignored for multisample framebuffer objects.

See also textureTarget() and samples().

int QGLFramebufferObjectFormat.textureTarget (self)

Returns the texture target of the texture attached to a framebuffer object. Ignored for multisample framebuffer objects. The default is GL_TEXTURE_2D.

See also setTextureTarget() and samples().

bool QGLFramebufferObjectFormat.__eq__ (self, QGLFramebufferObjectFormat other)

bool QGLFramebufferObjectFormat.__ne__ (self, QGLFramebufferObjectFormat other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglpixelbuffer.html0000644000076500000240000004434212536324521021374 0ustar philstaff00000000000000 QGLPixelBuffer Class Reference
  Home · All Classes · Modules

QGLPixelBuffer Class Reference
[QtOpenGL module]

The QGLPixelBuffer class encapsulates an OpenGL pbuffer. More...

Inherits QPaintDevice.

Methods

Static Methods


Detailed Description

The QGLPixelBuffer class encapsulates an OpenGL pbuffer.

Rendering into a pbuffer is normally done using full hardware acceleration. This can be significantly faster than rendering into a QPixmap.

There are three approaches to using this class:

  1. We can draw into the pbuffer and convert it to a QImage using toImage(). This is normally much faster than calling QGLWidget.renderPixmap().
  2. We can draw into the pbuffer and copy the contents into an OpenGL texture using updateDynamicTexture(). This allows us to create dynamic textures and works on all systems with pbuffer support.
  3. On systems that support it, we can bind the pbuffer to an OpenGL texture. The texture is then updated automatically when the pbuffer contents change, eliminating the need for additional copy operations. This is supported only on Windows and Mac OS X systems that provide the render_texture extension. Note that under Windows, a multi-sampled pbuffer can't be used in conjunction with the render_texture extension. If a multi-sampled pbuffer is requested under Windows, the render_texture extension is turned off for that pbuffer.

Threading

As of Qt 4.8, it's possible to render into a QGLPixelBuffer using a QPainter in a separate thread. Note that OpenGL 2.0 or OpenGL ES 2.0 is required for this to work. Also, under X11, it's necessary to set the Qt.AA_X11InitThreads application attribute.

Pbuffers are provided by the OpenGL pbuffer extension; call hasOpenGLPbuffer() to find out if the system provides pbuffers.


Method Documentation

QGLPixelBuffer.__init__ (self, QSize size, QGLFormat format = QGLFormat.defaultFormat(), QGLWidget shareWidget = None)

Constructs an OpenGL pbuffer of the given size. If no format is specified, the default format is used. If the shareWidget parameter points to a valid QGLWidget, the pbuffer will share its context with shareWidget.

If you intend to bind this pbuffer as a dynamic texture, the width and height components of size must be powers of two (e.g., 512 x 128).

See also size() and format().

QGLPixelBuffer.__init__ (self, int width, int height, QGLFormat format = QGLFormat.defaultFormat(), QGLWidget shareWidget = None)

This is an overloaded function.

Constructs an OpenGL pbuffer with the width and height. If no format is specified, the default format is used. If the shareWidget parameter points to a valid QGLWidget, the pbuffer will share its context with shareWidget.

If you intend to bind this pbuffer as a dynamic texture, the width and height components of size must be powers of two (e.g., 512 x 128).

See also size() and format().

int QGLPixelBuffer.bindTexture (self, QImage image, int target = GL_TEXTURE_2D)

Generates and binds a 2D GL texture to the current context, based on image. The generated texture id is returned and can be used in later glBindTexture() calls.

The target parameter specifies the texture target.

Equivalent to calling QGLContext.bindTexture().

See also deleteTexture().

int QGLPixelBuffer.bindTexture (self, QPixmap pixmap, int target = GL_TEXTURE_2D)

This is an overloaded function.

Generates and binds a 2D GL texture based on pixmap.

Equivalent to calling QGLContext.bindTexture().

See also deleteTexture().

int QGLPixelBuffer.bindTexture (self, QString fileName)

This is an overloaded function.

Reads the DirectDrawSurface (DDS) compressed file fileName and generates a 2D GL texture from it.

Equivalent to calling QGLContext.bindTexture().

See also deleteTexture().

bool QGLPixelBuffer.bindToDynamicTexture (self, int texture)

Binds the texture specified by texture_id to this pbuffer. Returns true on success; otherwise returns false.

The texture must be of the same size and format as the pbuffer.

To unbind the texture, call releaseFromDynamicTexture(). While the texture is bound, it is updated automatically when the pbuffer contents change, eliminating the need for additional copy operations.

Example:

 QGLPixelBuffer pbuffer(...);
 ...
 pbuffer.makeCurrent();
 GLuint dynamicTexture = pbuffer.generateDynamicTexture();
 pbuffer.bindToDynamicTexture(dynamicTexture);
 ...
 pbuffer.releaseFromDynamicTexture();

Warning: This function uses the render_texture extension, which is currently not supported under X11. An alternative that works on all systems (including X11) is to manually copy the pbuffer contents to a texture using updateDynamicTexture().

Warning: For the bindToDynamicTexture() call to succeed on the Mac OS X, the pbuffer needs a shared context, i.e. the QGLPixelBuffer must be created with a share widget.

See also generateDynamicTexture() and releaseFromDynamicTexture().

QGLPixelBuffer.deleteTexture (self, int texture_id)

Removes the texture identified by texture_id from the texture cache.

Equivalent to calling QGLContext.deleteTexture().

int QGLPixelBuffer.devType (self)

bool QGLPixelBuffer.doneCurrent (self)

Makes no context the current OpenGL context. Returns true on success; otherwise returns false.

QGLPixelBuffer.drawTexture (self, QRectF target, int textureId, int textureTarget = GL_TEXTURE_2D)

Draws the given texture, textureId, to the given target rectangle, target, in OpenGL model space. The textureTarget should be a 2D texture target.

Equivalent to the corresponding QGLContext.drawTexture().

This function was introduced in Qt 4.4.

QGLPixelBuffer.drawTexture (self, QPointF point, int textureId, int textureTarget = GL_TEXTURE_2D)

Draws the given texture, textureId, at the given point in OpenGL model space. The textureTarget parameter should be a 2D texture target.

Equivalent to the corresponding QGLContext.drawTexture().

This function was introduced in Qt 4.4.

QGLFormat QGLPixelBuffer.format (self)

Returns the format of the pbuffer. The format may be different from the one that was requested.

int QGLPixelBuffer.generateDynamicTexture (self)

Generates and binds a 2D GL texture that is the same size as the pbuffer, and returns the texture's ID. This can be used in conjunction with bindToDynamicTexture() and updateDynamicTexture().

See also size().

int QGLPixelBuffer.handle (self)

Returns the native pbuffer handle.

bool QGLPixelBuffer.hasOpenGLPbuffers ()

Returns true if the OpenGL pbuffer extension is present on this system; otherwise returns false.

bool QGLPixelBuffer.isValid (self)

Returns true if this pbuffer is valid; otherwise returns false.

bool QGLPixelBuffer.makeCurrent (self)

Makes this pbuffer the current OpenGL rendering context. Returns true on success; otherwise returns false.

See also QGLContext.makeCurrent() and doneCurrent().

int QGLPixelBuffer.metric (self, QPaintDevice.PaintDeviceMetric metric)

Reimplemented from QPaintDevice.metric().

QPaintEngine QGLPixelBuffer.paintEngine (self)

Reimplemented from QPaintDevice.paintEngine().

QGLPixelBuffer.releaseFromDynamicTexture (self)

Releases the pbuffer from any previously bound texture.

See also bindToDynamicTexture().

QSize QGLPixelBuffer.size (self)

Returns the size of the pbuffer.

QImage QGLPixelBuffer.toImage (self)

Returns the contents of the pbuffer as a QImage.

QGLPixelBuffer.updateDynamicTexture (self, int texture_id)

Copies the pbuffer contents into the texture specified with texture_id.

The texture must be of the same size and format as the pbuffer.

Example:

 QGLPixelBuffer pbuffer(...);
 ...
 pbuffer.makeCurrent();
 GLuint dynamicTexture = pbuffer.generateDynamicTexture();
 ...
 pbuffer.updateDynamicTexture(dynamicTexture);

An alternative on Windows and Mac OS X systems that support the render_texture extension is to use bindToDynamicTexture() to get dynamic updates of the texture.

See also generateDynamicTexture() and bindToDynamicTexture().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglshader-shadertype.html0000644000076500000240000001346512536324521022477 0ustar philstaff00000000000000 QGLShader.ShaderType Class Reference
  Home · All Classes · Modules

QGLShader.ShaderType Class Reference
[QtOpenGL module]

Methods

Special Methods


Detailed Description


Method Documentation

ShaderType.__init__ (self, ShaderType)

ShaderType.__init__ (self, int)

ShaderType.__init__ (self)

ShaderType ShaderType.__and__ (self, int mask)

int ShaderType.__bool__ (self)

bool ShaderType.__eq__ (self, ShaderType f)

ShaderType ShaderType.__iand__ (self, int mask)

int ShaderType.__int__ (self)

ShaderType ShaderType.__invert__ (self)

ShaderType ShaderType.__ior__ (self, ShaderType f)

ShaderType ShaderType.__ixor__ (self, ShaderType f)

bool ShaderType.__ne__ (self, ShaderType f)

ShaderType ShaderType.__or__ (self, ShaderType f)

ShaderType ShaderType.__or__ (self, int f)

ShaderType ShaderType.__xor__ (self, ShaderType f)

ShaderType ShaderType.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglshader.html0000644000076500000240000002412212536324521020321 0ustar philstaff00000000000000 QGLShader Class Reference
  Home · All Classes · Modules

QGLShader Class Reference
[QtOpenGL module]

The QGLShader class allows OpenGL shaders to be compiled. More...

Inherits QObject.

Types

Methods

Static Methods


Detailed Description

The QGLShader class allows OpenGL shaders to be compiled.

This class supports shaders written in the OpenGL Shading Language (GLSL) and in the OpenGL/ES Shading Language (GLSL/ES).

QGLShader and QGLShaderProgram shelter the programmer from the details of compiling and linking vertex and fragment shaders.


Type Documentation

QGLShader.ShaderTypeBit

This enum specifies the type of QGLShader that is being created.

Constant Value Description
QGLShader.Vertex 0x0001 Vertex shader written in the OpenGL Shading Language (GLSL).
QGLShader.Fragment 0x0002 Fragment shader written in the OpenGL Shading Language (GLSL).
QGLShader.Geometry 0x0004 Geometry shaders written in the OpenGL Shading Language (GLSL), based on the GL_EXT_geometry_shader4 extension.

The ShaderType type is a typedef for QFlags<ShaderTypeBit>. It stores an OR combination of ShaderTypeBit values.


Method Documentation

QGLShader.__init__ (self, ShaderType type, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGLShader object of the specified type and attaches it to parent. If shader programs are not supported, QGLShaderProgram.hasOpenGLShaderPrograms() will return false.

This constructor is normally followed by a call to compileSourceCode() or compileSourceFile().

The shader will be associated with the current QGLContext.

See also compileSourceCode() and compileSourceFile().

QGLShader.__init__ (self, ShaderType type, QGLContext context, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGLShader object of the specified type and attaches it to parent. If shader programs are not supported, then QGLShaderProgram.hasOpenGLShaderPrograms() will return false.

This constructor is normally followed by a call to compileSourceCode() or compileSourceFile().

The shader will be associated with context.

See also compileSourceCode() and compileSourceFile().

bool QGLShader.compileSourceCode (self, QByteArray source)

Sets the source code for this shader and compiles it. Returns true if the source was successfully compiled, false otherwise.

See also compileSourceFile().

bool QGLShader.compileSourceCode (self, QString source)

This is an overloaded function.

Sets the source code for this shader and compiles it. Returns true if the source was successfully compiled, false otherwise.

See also compileSourceFile().

bool QGLShader.compileSourceFile (self, QString fileName)

Sets the source code for this shader to the contents of fileName and compiles it. Returns true if the file could be opened and the source compiled, false otherwise.

See also compileSourceCode().

bool QGLShader.hasOpenGLShaders (ShaderType type, QGLContext context = None)

Returns true if shader programs of type type are supported on this system; false otherwise.

The context is used to resolve the GLSL extensions. If context is null, then QGLContext.currentContext() is used.

This function was introduced in Qt 4.7.

bool QGLShader.isCompiled (self)

Returns true if this shader has been compiled; false otherwise.

See also compileSourceCode() and compileSourceFile().

QString QGLShader.log (self)

Returns the errors and warnings that occurred during the last compile.

See also compileSourceCode() and compileSourceFile().

int QGLShader.shaderId (self)

Returns the OpenGL identifier associated with this shader.

See also QGLShaderProgram.programId().

ShaderType QGLShader.shaderType (self)

Returns the type of this shader.

QByteArray QGLShader.sourceCode (self)

Returns the source code for this shader.

See also compileSourceCode().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglshaderprogram.html0000644000076500000240000022421012536324521021711 0ustar philstaff00000000000000 QGLShaderProgram Class Reference
  Home · All Classes · Modules

QGLShaderProgram Class Reference
[QtOpenGL module]

The QGLShaderProgram class allows OpenGL shader programs to be linked and used. More...

Inherits QObject.

Methods

Static Methods


Detailed Description

The QGLShaderProgram class allows OpenGL shader programs to be linked and used.

Introduction

This class supports shader programs written in the OpenGL Shading Language (GLSL) and in the OpenGL/ES Shading Language (GLSL/ES).

QGLShader and QGLShaderProgram shelter the programmer from the details of compiling and linking vertex and fragment shaders.

The following example creates a vertex shader program using the supplied source code. Once compiled and linked, the shader program is activated in the current QGLContext by calling QGLShaderProgram.bind():

 QGLShader shader(QGLShader.Vertex);
 shader.compileSourceCode(code);

 QGLShaderProgram program(context);
 program.addShader(shader);
 program.link();

 program.bind();

Writing portable shaders

Shader programs can be difficult to reuse across OpenGL implementations because of varying levels of support for standard vertex attributes and uniform variables. In particular, GLSL/ES lacks all of the standard variables that are present on desktop OpenGL systems: gl_Vertex, gl_Normal, gl_Color, and so on. Desktop OpenGL lacks the variable qualifiers highp, mediump, and lowp.

The QGLShaderProgram class makes the process of writing portable shaders easier by prefixing all shader programs with the following lines on desktop OpenGL:

 #define highp
 #define mediump
 #define lowp

This makes it possible to run most GLSL/ES shader programs on desktop systems. The programmer should restrict themselves to just features that are present in GLSL/ES, and avoid standard variable names that only work on the desktop.

Simple shader example

 program.addShaderFromSourceCode(QGLShader.Vertex,
     "attribute highp vec4 vertex;\n"
     "uniform highp mat4 matrix;\n"
     "void main(void)\n"
     "{\n"
     "   gl_Position = matrix * vertex;\n"
     "}");
 program.addShaderFromSourceCode(QGLShader.Fragment,
     "uniform mediump vec4 color;\n"
     "void main(void)\n"
     "{\n"
     "   gl_FragColor = color;\n"
     "}");
 program.link();
 program.bind();

 int vertexLocation = program.attributeLocation("vertex");
 int matrixLocation = program.uniformLocation("matrix");
 int colorLocation = program.uniformLocation("color");

With the above shader program active, we can draw a green triangle as follows:

 static GLfloat const triangleVertices[] = {
     60.0f,  10.0f,  0.0f,
     110.0f, 110.0f, 0.0f,
     10.0f,  110.0f, 0.0f
 };

 QColor color(0, 255, 0, 255);

 QMatrix4x4 pmvMatrix;
 pmvMatrix.ortho(rect());

 program.enableAttributeArray(vertexLocation);
 program.setAttributeArray(vertexLocation, triangleVertices, 3);
 program.setUniformValue(matrixLocation, pmvMatrix);
 program.setUniformValue(colorLocation, color);

 glDrawArrays(GL_TRIANGLES, 0, 3);

 program.disableAttributeArray(vertexLocation);

Binary shaders and programs

Binary shaders may be specified using glShaderBinary() on the return value from QGLShader.shaderId(). The QGLShader instance containing the binary can then be added to the shader program with addShader() and linked in the usual fashion with link().

Binary programs may be specified using glProgramBinaryOES() on the return value from programId(). Then the application should call link(), which will notice that the program has already been specified and linked, allowing other operations to be performed on the shader program.


Method Documentation

QGLShaderProgram.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new shader program and attaches it to parent. The program will be invalid until addShader() is called.

The shader program will be associated with the current QGLContext.

See also addShader().

QGLShaderProgram.__init__ (self, QGLContext context, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new shader program and attaches it to parent. The program will be invalid until addShader() is called.

The shader program will be associated with context.

See also addShader().

bool QGLShaderProgram.addShader (self, QGLShader shader)

Adds a compiled shader to this shader program. Returns true if the shader could be added, or false otherwise.

Ownership of the shader object remains with the caller. It will not be deleted when this QGLShaderProgram instance is deleted. This allows the caller to add the same shader to multiple shader programs.

See also addShaderFromSourceCode(), addShaderFromSourceFile(), removeShader(), link(), and removeAllShaders().

bool QGLShaderProgram.addShaderFromSourceCode (self, QGLShader.ShaderType type, QByteArray source)

Compiles source as a shader of the specified type and adds it to this shader program. Returns true if compilation was successful, false otherwise. The compilation errors and warnings will be made available via log().

This function is intended to be a short-cut for quickly adding vertex and fragment shaders to a shader program without creating an instance of QGLShader first.

See also addShader(), addShaderFromSourceFile(), removeShader(), link(), log(), and removeAllShaders().

bool QGLShaderProgram.addShaderFromSourceCode (self, QGLShader.ShaderType type, QString source)

This is an overloaded function.

Compiles source as a shader of the specified type and adds it to this shader program. Returns true if compilation was successful, false otherwise. The compilation errors and warnings will be made available via log().

This function is intended to be a short-cut for quickly adding vertex and fragment shaders to a shader program without creating an instance of QGLShader first.

See also addShader(), addShaderFromSourceFile(), removeShader(), link(), log(), and removeAllShaders().

bool QGLShaderProgram.addShaderFromSourceFile (self, QGLShader.ShaderType type, QString fileName)

Compiles the contents of fileName as a shader of the specified type and adds it to this shader program. Returns true if compilation was successful, false otherwise. The compilation errors and warnings will be made available via log().

This function is intended to be a short-cut for quickly adding vertex and fragment shaders to a shader program without creating an instance of QGLShader first.

See also addShader() and addShaderFromSourceCode().

int QGLShaderProgram.attributeLocation (self, QByteArray name)

Returns the location of the attribute name within this shader program's parameter list. Returns -1 if name is not a valid attribute for this shader program.

See also uniformLocation() and bindAttributeLocation().

int QGLShaderProgram.attributeLocation (self, QString name)

This is an overloaded function.

Returns the location of the attribute name within this shader program's parameter list. Returns -1 if name is not a valid attribute for this shader program.

See also uniformLocation() and bindAttributeLocation().

bool QGLShaderProgram.bind (self)

Binds this shader program to the active QGLContext and makes it the current shader program. Any previously bound shader program is released. This is equivalent to calling glUseProgram() on programId(). Returns true if the program was successfully bound; false otherwise. If the shader program has not yet been linked, or it needs to be re-linked, this function will call link().

See also link() and release().

QGLShaderProgram.bindAttributeLocation (self, QByteArray name, int location)

Binds the attribute name to the specified location. This function can be called before or after the program has been linked. Any attributes that have not been explicitly bound when the program is linked will be assigned locations automatically.

When this function is called after the program has been linked, the program will need to be relinked for the change to take effect.

See also attributeLocation().

QGLShaderProgram.bindAttributeLocation (self, QString name, int location)

This is an overloaded function.

Binds the attribute name to the specified location. This function can be called before or after the program has been linked. Any attributes that have not been explicitly bound when the program is linked will be assigned locations automatically.

When this function is called after the program has been linked, the program will need to be relinked for the change to take effect.

See also attributeLocation().

QGLShaderProgram.disableAttributeArray (self, int location)

Disables the vertex array at location in this shader program that was enabled by a previous call to enableAttributeArray().

See also enableAttributeArray(), setAttributeArray(), setAttributeValue(), and setUniformValue().

QGLShaderProgram.disableAttributeArray (self, str name)

This is an overloaded function.

Disables the vertex array called name in this shader program that was enabled by a previous call to enableAttributeArray().

See also enableAttributeArray(), setAttributeArray(), setAttributeValue(), and setUniformValue().

QGLShaderProgram.enableAttributeArray (self, int location)

Enables the vertex array at location in this shader program so that the value set by setAttributeArray() on location will be used by the shader program.

See also disableAttributeArray(), setAttributeArray(), setAttributeValue(), and setUniformValue().

QGLShaderProgram.enableAttributeArray (self, str name)

This is an overloaded function.

Enables the vertex array called name in this shader program so that the value set by setAttributeArray() on name will be used by the shader program.

See also disableAttributeArray(), setAttributeArray(), setAttributeValue(), and setUniformValue().

int QGLShaderProgram.geometryInputType (self)

Returns the geometry shader input type, if active.

This parameter takes effect the next time the program is linked.

This function was introduced in Qt 4.7.

See also setGeometryInputType().

int QGLShaderProgram.geometryOutputType (self)

Returns the geometry shader output type, if active.

This parameter takes effect the next time the program is linked.

This function was introduced in Qt 4.7.

See also setGeometryOutputType().

int QGLShaderProgram.geometryOutputVertexCount (self)

Returns the maximum number of vertices the current geometry shader program will produce, if active.

This parameter takes effect the ntext time the program is linked.

This function was introduced in Qt 4.7.

See also setGeometryOutputVertexCount().

bool QGLShaderProgram.hasOpenGLShaderPrograms (QGLContext context = None)

Returns true if shader programs written in the OpenGL Shading Language (GLSL) are supported on this system; false otherwise.

The context is used to resolve the GLSL extensions. If context is null, then QGLContext.currentContext() is used.

bool QGLShaderProgram.isLinked (self)

Returns true if this shader program has been linked; false otherwise.

See also link().

bool QGLShaderProgram.link (self)

Links together the shaders that were added to this program with addShader(). Returns true if the link was successful or false otherwise. If the link failed, the error messages can be retrieved with log().

Subclasses can override this function to initialize attributes and uniform variables for use in specific shader programs.

If the shader program was already linked, calling this function again will force it to be re-linked.

See also addShader() and log().

QString QGLShaderProgram.log (self)

Returns the errors and warnings that occurred during the last link() or addShader() with explicitly specified source code.

See also link().

int QGLShaderProgram.programId (self)

Returns the OpenGL identifier associated with this shader program.

See also QGLShader.shaderId().

QGLShaderProgram.release (self)

Releases the active shader program from the current QGLContext. This is equivalent to calling glUseProgram(0).

See also bind().

QGLShaderProgram.removeAllShaders (self)

Removes all of the shaders that were added to this program previously. The QGLShader objects for the shaders will not be deleted if they were constructed externally. QGLShader objects that are constructed internally by QGLShaderProgram will be deleted.

See also addShader() and removeShader().

QGLShaderProgram.removeShader (self, QGLShader shader)

Removes shader from this shader program. The object is not deleted.

See also addShader(), link(), and removeAllShaders().

QGLShaderProgram.setAttributeArray (self, int location, sequence values)

Sets an array of vertex values on the attribute at location in this shader program. The tupleSize indicates the number of components per vertex (1, 2, 3, or 4), and the stride indicates the number of bytes between vertices. A default stride value of zero indicates that the vertices are densely packed in values.

The array will become active when enableAttributeArray() is called on the location. Otherwise the value specified with setAttributeValue() for location will be used.

See also setAttributeValue(), setUniformValue(), enableAttributeArray(), and disableAttributeArray().

QGLShaderProgram.setAttributeArray (self, str name, sequence values)

Sets an array of 2D vertex values on the attribute at location in this shader program. The stride indicates the number of bytes between vertices. A default stride value of zero indicates that the vertices are densely packed in values.

The array will become active when enableAttributeArray() is called on the location. Otherwise the value specified with setAttributeValue() for location will be used.

See also setAttributeValue(), setUniformValue(), enableAttributeArray(), and disableAttributeArray().

QGLShaderProgram.setAttributeBuffer (self, int location, int type, int offset, int tupleSize, int stride = 0)

Sets an array of vertex values on the attribute at location in this shader program, starting at a specific offset in the currently bound vertex buffer. The stride indicates the number of bytes between vertices. A default stride value of zero indicates that the vertices are densely packed in the value array.

The type indicates the type of elements in the vertex value array, usually GL_FLOAT, GL_UNSIGNED_BYTE, etc. The tupleSize indicates the number of components per vertex: 1, 2, 3, or 4.

The array will become active when enableAttributeArray() is called on the location. Otherwise the value specified with setAttributeValue() for location will be used.

This function was introduced in Qt 4.7.

See also setAttributeArray().

QGLShaderProgram.setAttributeBuffer (self, str name, int type, int offset, int tupleSize, int stride = 0)

This is an overloaded function.

Sets an array of vertex values on the attribute called name in this shader program, starting at a specific offset in the currently bound vertex buffer. The stride indicates the number of bytes between vertices. A default stride value of zero indicates that the vertices are densely packed in the value array.

The type indicates the type of elements in the vertex value array, usually GL_FLOAT, GL_UNSIGNED_BYTE, etc. The tupleSize indicates the number of components per vertex: 1, 2, 3, or 4.

The array will become active when enableAttributeArray() is called on the name. Otherwise the value specified with setAttributeValue() for name will be used.

This function was introduced in Qt 4.7.

See also setAttributeArray().

QGLShaderProgram.setAttributeValue (self, int location, float value)

Sets the attribute at location in the current context to value.

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, int location, float x, float y)

Sets the attribute at location in the current context to the 2D vector (x, y).

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, int location, float x, float y, float z)

Sets the attribute at location in the current context to the 3D vector (x, y, z).

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, int location, float x, float y, float z, float w)

Sets the attribute at location in the current context to the 4D vector (x, y, z, w).

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, int location, QVector2D value)

Sets the attribute at location in the current context to value.

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, int location, QVector3D value)

Sets the attribute at location in the current context to value.

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, int location, QVector4D value)

Sets the attribute at location in the current context to value.

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, int location, QColor value)

Sets the attribute at location in the current context to value.

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, str name, float value)

Sets the attribute at location in the current context to the contents of values, which contains columns elements, each consisting of rows elements. The rows value should be 1, 2, 3, or 4. This function is typically used to set matrix values and column vectors.

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, str name, float x, float y)

This is an overloaded function.

Sets the attribute called name in the current context to value.

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, str name, float x, float y, float z)

This is an overloaded function.

Sets the attribute called name in the current context to the 2D vector (x, y).

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, str name, float x, float y, float z, float w)

This is an overloaded function.

Sets the attribute called name in the current context to the 3D vector (x, y, z).

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, str name, QVector2D value)

This is an overloaded function.

Sets the attribute called name in the current context to the 4D vector (x, y, z, w).

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, str name, QVector3D value)

This is an overloaded function.

Sets the attribute called name in the current context to value.

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, str name, QVector4D value)

This is an overloaded function.

Sets the attribute called name in the current context to value.

See also setUniformValue().

QGLShaderProgram.setAttributeValue (self, str name, QColor value)

This is an overloaded function.

Sets the attribute called name in the current context to value.

See also setUniformValue().

QGLShaderProgram.setGeometryInputType (self, int inputType)

Sets the input type from inputType.

This parameter takes effect the next time the program is linked.

See also geometryInputType().

QGLShaderProgram.setGeometryOutputType (self, int outputType)

Sets the output type from the geometry shader, if active, to outputType.

This parameter takes effect the next time the program is linked.

This function was introduced in Qt 4.7.

See also geometryOutputType().

QGLShaderProgram.setGeometryOutputVertexCount (self, int count)

Sets the maximum number of vertices the current geometry shader program will produce, if active, to count.

This parameter takes effect the next time the program is linked.

This function was introduced in Qt 4.7.

See also geometryOutputVertexCount().

QGLShaderProgram.setUniformValue (self, int location, int value)

Sets the uniform variable at location in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, float value)

Sets the uniform variable at location in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, float x, float y)

Sets the uniform variable at location in the current context to value. This function should be used when setting sampler values.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, float x, float y, float z)

Sets the uniform variable at location in the current context to the 2D vector (x, y).

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, float x, float y, float z, float w)

Sets the uniform variable at location in the current context to the 3D vector (x, y, z).

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QVector2D value)

Sets the uniform variable at location in the current context to the 4D vector (x, y, z, w).

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QVector3D value)

Sets the uniform variable at location in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QVector4D value)

Sets the uniform variable at location in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QColor color)

Sets the uniform variable at location in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QPoint point)

Sets the uniform variable at location in the current context to the red, green, blue, and alpha components of color.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QPointF point)

Sets the uniform variable at location in the current context to the x and y coordinates of point.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QSize size)

Sets the uniform variable at location in the current context to the x and y coordinates of point.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QSizeF size)

Sets the uniform variable at location in the current context to the width and height of the given size.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QMatrix2x2 value)

Sets the uniform variable at location in the current context to the width and height of the given size.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QMatrix2x3 value)

Sets the uniform variable at location in the current context to a 2x2 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QMatrix2x4 value)

Sets the uniform variable at location in the current context to a 2x3 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QMatrix3x2 value)

Sets the uniform variable at location in the current context to a 2x4 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QMatrix3x3 value)

Sets the uniform variable at location in the current context to a 3x2 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QMatrix3x4 value)

Sets the uniform variable at location in the current context to a 3x3 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QMatrix4x2 value)

Sets the uniform variable at location in the current context to a 3x4 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QMatrix4x3 value)

Sets the uniform variable at location in the current context to a 4x2 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QMatrix4x4 value)

Sets the uniform variable at location in the current context to a 4x3 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, int location, QTransform value)

Sets the uniform variable at location in the current context to a 4x4 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, int value)

Sets the uniform variable at location in the current context to a 3x3 transformation matrix value that is specified as a QTransform value.

To set a QTransform value as a 4x4 matrix in a shader, use setUniformValue(location, QMatrix4x4(value)).

QGLShaderProgram.setUniformValue (self, str name, float value)

This is an overloaded function.

Sets the uniform variable called name in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, float x, float y)

This is an overloaded function.

Sets the uniform variable called name in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, float x, float y, float z)

This is an overloaded function.

Sets the uniform variable called name in the current context to value. This function should be used when setting sampler values.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, float x, float y, float z, float w)

This is an overloaded function.

Sets the uniform variable called name in the current context to the 2D vector (x, y).

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QVector2D value)

This is an overloaded function.

Sets the uniform variable called name in the current context to the 3D vector (x, y, z).

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QVector3D value)

This is an overloaded function.

Sets the uniform variable called name in the current context to the 4D vector (x, y, z, w).

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QVector4D value)

This is an overloaded function.

Sets the uniform variable called name in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QColor color)

This is an overloaded function.

Sets the uniform variable called name in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QPoint point)

This is an overloaded function.

Sets the uniform variable called name in the current context to value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QPointF point)

This is an overloaded function.

Sets the uniform variable called name in the current context to the red, green, blue, and alpha components of color.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QSize size)

This is an overloaded function.

Sets the uniform variable associated with name in the current context to the x and y coordinates of point.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QSizeF size)

This is an overloaded function.

Sets the uniform variable associated with name in the current context to the x and y coordinates of point.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QMatrix2x2 value)

This is an overloaded function.

Sets the uniform variable associated with name in the current context to the width and height of the given size.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QMatrix2x3 value)

This is an overloaded function.

Sets the uniform variable associated with name in the current context to the width and height of the given size.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QMatrix2x4 value)

This is an overloaded function.

Sets the uniform variable called name in the current context to a 2x2 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QMatrix3x2 value)

This is an overloaded function.

Sets the uniform variable called name in the current context to a 2x3 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QMatrix3x3 value)

This is an overloaded function.

Sets the uniform variable called name in the current context to a 2x4 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QMatrix3x4 value)

This is an overloaded function.

Sets the uniform variable called name in the current context to a 3x2 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QMatrix4x2 value)

This is an overloaded function.

Sets the uniform variable called name in the current context to a 3x3 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QMatrix4x3 value)

This is an overloaded function.

Sets the uniform variable called name in the current context to a 3x4 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QMatrix4x4 value)

This is an overloaded function.

Sets the uniform variable called name in the current context to a 4x2 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValue (self, str name, QTransform value)

This is an overloaded function.

Sets the uniform variable called name in the current context to a 4x3 matrix value.

See also setAttributeValue().

QGLShaderProgram.setUniformValueArray (self, int location, sequence values)

Sets the uniform variable array at location in the current context to the count elements of values. Each element has tupleSize components. The tupleSize must be 1, 2, 3, or 4.

See also setAttributeValue().

QGLShaderProgram.setUniformValueArray (self, str name, sequence values)

Sets the uniform variable array at location in the current context to the count elements of values.

See also setAttributeValue().

list-of-QGLShader QGLShaderProgram.shaders (self)

Returns a list of all shaders that have been added to this shader program using addShader().

See also addShader() and removeShader().

int QGLShaderProgram.uniformLocation (self, QByteArray name)

Returns the location of the uniform variable name within this shader program's parameter list. Returns -1 if name is not a valid uniform variable for this shader program.

See also attributeLocation().

int QGLShaderProgram.uniformLocation (self, QString name)

This is an overloaded function.

Returns the location of the uniform variable name within this shader program's parameter list. Returns -1 if name is not a valid uniform variable for this shader program.

See also attributeLocation().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglwidget.html0000644000076500000240000014276212536324521020351 0ustar philstaff00000000000000 QGLWidget Class Reference
  Home · All Classes · Modules

QGLWidget Class Reference
[QtOpenGL module]

The QGLWidget class is a widget for rendering OpenGL graphics. More...

Inherits QWidget.

Methods

Static Methods


Detailed Description

The QGLWidget class is a widget for rendering OpenGL graphics.

QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands.

QGLWidget provides three convenient virtual functions that you can reimplement in your subclass to perform the typical OpenGL tasks:

  • paintGL() - Renders the OpenGL scene. Gets called whenever the widget needs to be updated.
  • resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets called whenever the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically).
  • initializeGL() - Sets up the OpenGL rendering context, defines display lists, etc. Gets called once before the first time resizeGL() or paintGL() is called.

Here is a rough outline of how a QGLWidget subclass might look:

 class MyGLDrawer : public QGLWidget
 {
     Q_OBJECT        // must include this if you use Qt signals/slots

 public:
     MyGLDrawer(QWidget *parent)
         : QGLWidget(parent) {}

 protected:

     void initializeGL()
     {
         // Set up the rendering context, define display lists etc.:
         ...
         glClearColor(0.0, 0.0, 0.0, 0.0);
         glEnable(GL_DEPTH_TEST);
         ...
     }

     void resizeGL(int w, int h)
     {
         // setup viewport, projection etc.:
         glViewport(0, 0, (GLint)w, (GLint)h);
         ...
         glFrustum(...);
         ...
     }

     void paintGL()
     {
         // draw the scene:
         ...
         glRotatef(...);
         glMaterialfv(...);
         glBegin(GL_QUADS);
         glVertex3f(...);
         glVertex3f(...);
         ...
         glEnd();
         ...
     }

 };

If you need to trigger a repaint from places other than paintGL() (a typical example is when using timers to animate scenes), you should call the widget's updateGL() function.

Your widget's OpenGL rendering context is made current when paintGL(), resizeGL(), or initializeGL() is called. If you need to call the standard OpenGL API functions from other places (e.g. in your widget's constructor or in your own paint functions), you must call makeCurrent() first.

QGLWidget provides functions for requesting a new display format and you can also create widgets with customized rendering contexts.

You can also share OpenGL display lists between QGLWidget objects (see the documentation of the QGLWidget constructors for details).

Note that under Windows, the QGLContext belonging to a QGLWidget has to be recreated when the QGLWidget is reparented. This is necessary due to limitations on the Windows platform. This will most likely cause problems for users that have subclassed and installed their own QGLContext on a QGLWidget. It is possible to work around this issue by putting the QGLWidget inside a dummy widget and then reparenting the dummy widget, instead of the QGLWidget. This will side-step the issue altogether, and is what we recommend for users that need this kind of functionality.

On Mac OS X, when Qt is built with Cocoa support, a QGLWidget can't have any sibling widgets placed ontop of itself. This is due to limitations in the Cocoa API and is not supported by Apple.

Overlays

The QGLWidget creates a GL overlay context in addition to the normal context if overlays are supported by the underlying system.

If you want to use overlays, you specify it in the format. (Note: Overlay must be requested in the format passed to the QGLWidget constructor.) Your GL widget should also implement some or all of these virtual methods:

These methods work in the same way as the normal paintGL() etc. functions, except that they will be called when the overlay context is made current. You can explicitly make the overlay context current by using makeOverlayCurrent(), and you can access the overlay context directly (e.g. to ask for its transparent color) by calling overlayContext().

On X servers in which the default visual is in an overlay plane, non-GL Qt windows can also be used for overlays.

Painting Techniques

As described above, subclass QGLWidget to render pure 3D content in the following way:

It is also possible to draw 2D graphics onto a QGLWidget subclass, it is necessary to reimplement QGLWidget.paintEvent() and do the following:

Overpainting 2D content on top of 3D content takes a little more effort. One approach to doing this is shown in the Overpainting example.

Threading

As of Qt version 4.8, support for doing threaded GL rendering has been improved. There are three scenarios that we currently support:

  • 1. Buffer swapping in a thread.

    Swapping buffers in a double buffered context may be a synchronous, locking call that may be a costly operation in some GL implementations. Especially so on embedded devices. It's not optimal to have the CPU idling while the GPU is doing a buffer swap. In those cases it is possible to do the rendering in the main thread and do the actual buffer swap in a separate thread. This can be done with the following steps:

    1. Call doneCurrent() in the main thread when the rendering is finished.

    2. Notify the swapping thread that it can grab the context.

    3. Make the rendering context current in the swapping thread with makeCurrent() and then call swapBuffers().

    4. Call doneCurrent() in the swapping thread and notify the main thread that swapping is done.

    Doing this will free up the main thread so that it can continue with, for example, handling UI events or network requests. Even if there is a context swap involved, it may be preferable compared to having the main thread wait while the GPU finishes the swap operation. Note that this is highly implementation dependent.

  • 2. Texture uploading in a thread.

    Doing texture uploads in a thread may be very useful for applications handling large amounts of images that needs to be displayed, like for instance a photo gallery application. This is supported in Qt through the existing bindTexture() API. A simple way of doing this is to create two sharing QGLWidgets. One is made current in the main GUI thread, while the other is made current in the texture upload thread. The widget in the uploading thread is never shown, it is only used for sharing textures with the main thread. For each texture that is bound via bindTexture(), notify the main thread so that it can start using the texture.

  • 3. Using QPainter to draw into a QGLWidget in a thread.

    In Qt 4.8, it is possible to draw into a QGLWidget using a QPainter in a separate thread. Note that this is also possible for QGLPixelBuffers and QGLFramebufferObjects. Since this is only supported in the GL 2 paint engine, OpenGL 2.0 or OpenGL ES 2.0 is required.

    QGLWidgets can only be created in the main GUI thread. This means a call to doneCurrent() is necessary to release the GL context from the main thread, before the widget can be drawn into by another thread. Also, the main GUI thread will dispatch resize and paint events to a QGLWidget when the widget is resized, or parts of it becomes exposed or needs redrawing. It is therefore necessary to handle those events because the default implementations inside QGLWidget will try to make the QGLWidget's context current, which again will interfere with any threads rendering into the widget. Reimplement QGLWidget.paintEvent() and QGLWidget.resizeEvent() to notify the rendering thread that a resize or update is necessary, and be careful not to call the base class implementation. If you are rendering an animation, it might not be necessary to handle the paint event at all since the rendering thread is doing regular updates. Then it would be enough to reimplement QGLWidget.paintEvent() to do nothing.

As a general rule when doing threaded rendering: be aware that binding and releasing contexts in different threads have to be synchronized by the user. A GL rendering context can only be current in one thread at any time. If you try to open a QPainter on a QGLWidget and the widget's rendering context is current in another thread, it will fail.

Note that under X11 it is necessary to set the Qt.AA_X11InitThreads application attribute to make the X11 library and GLX calls thread safe, otherwise the above scenarios will fail.

In addition to this, rendering using raw GL calls in a separate thread is supported.

OpenGL is a trademark of Silicon Graphics, Inc. in the United States and other countries.


Method Documentation

QGLWidget.__init__ (self, QWidget parent = None, QGLWidget shareWidget = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an OpenGL widget with a parent widget.

The default format is used. The widget will be invalid if the system has no OpenGL support.

The parent and widget flag, f, arguments are passed to the QWidget constructor.

If shareWidget is a valid QGLWidget, this widget will share OpenGL display lists and texture objects with shareWidget. But if shareWidget and this widget have different formats, sharing might not be possible. You can check whether sharing is in effect by calling isSharing().

The initialization of OpenGL rendering state, etc. should be done by overriding the initializeGL() function, rather than in the constructor of your QGLWidget subclass.

See also QGLFormat.defaultFormat() and Textures Example.

QGLWidget.__init__ (self, QGLContext context, QWidget parent = None, QGLWidget shareWidget = None, Qt.WindowFlags flags = 0)

The context argument has it's ownership transferred to Qt.

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an OpenGL widget with parent parent.

The context argument is a pointer to the QGLContext that you wish to be bound to this widget. This allows you to pass in your own QGLContext sub-classes.

The widget will be invalid if the system has no OpenGL support.

The parent and widget flag, f, arguments are passed to the QWidget constructor.

If shareWidget is a valid QGLWidget, this widget will share OpenGL display lists and texture objects with shareWidget. But if shareWidget and this widget have different formats, sharing might not be possible. You can check whether sharing is in effect by calling isSharing().

The initialization of OpenGL rendering state, etc. should be done by overriding the initializeGL() function, rather than in the constructor of your QGLWidget subclass.

See also QGLFormat.defaultFormat() and isValid().

QGLWidget.__init__ (self, QGLFormat format, QWidget parent = None, QGLWidget shareWidget = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an OpenGL widget with parent parent.

The format argument specifies the desired rendering options. If the underlying OpenGL/Window system cannot satisfy all the features requested in format, the nearest subset of features will be used. After creation, the format() method will return the actual format obtained.

The widget will be invalid if the system has no OpenGL support.

The parent and widget flag, f, arguments are passed to the QWidget constructor.

If shareWidget is a valid QGLWidget, this widget will share OpenGL display lists and texture objects with shareWidget. But if shareWidget and this widget have different formats, sharing might not be possible. You can check whether sharing is in effect by calling isSharing().

The initialization of OpenGL rendering state, etc. should be done by overriding the initializeGL() function, rather than in the constructor of your QGLWidget subclass.

See also QGLFormat.defaultFormat() and isValid().

bool QGLWidget.autoBufferSwap (self)

Returns true if the widget is doing automatic GL buffer swapping; otherwise returns false.

See also setAutoBufferSwap().

int QGLWidget.bindTexture (self, QImage image, int target = GL_TEXTURE_2D, int format = GL_RGBA)

Calls QGLContext.:bindTexture(image, target, format) on the currently set context.

See also deleteTexture().

int QGLWidget.bindTexture (self, QPixmap pixmap, int target = GL_TEXTURE_2D, int format = GL_RGBA)

Calls QGLContext.:bindTexture(pixmap, target, format) on the currently set context.

See also deleteTexture().

int QGLWidget.bindTexture (self, QString fileName)

This is an overloaded function.

The binding options are a set of options used to decide how to bind the texture to the context.

This function was introduced in Qt 4.6.

int QGLWidget.bindTexture (self, QImage image, int target, int format, QGLContext.BindOptions options)

This is an overloaded function.

Generates and binds a 2D GL texture to the current context, based on pixmap. The generated texture id is returned and can be used in

The binding options are a set of options used to decide how to bind the texture to the context.

This function was introduced in Qt 4.6.

int QGLWidget.bindTexture (self, QPixmap pixmap, int target, int format, QGLContext.BindOptions options)

This is an overloaded function.

Calls QGLContext.bindTexture(fileName) on the currently set context.

See also deleteTexture().

QGLColormap QGLWidget.colormap (self)

Returns the colormap for this widget.

Usually it is only top-level widgets that can have different colormaps installed. Asking for the colormap of a child widget will return the colormap for the child's top-level widget.

If no colormap has been set for this widget, the QGLColormap returned will be empty.

See also setColormap() and QGLColormap.isEmpty().

QGLContext QGLWidget.context (self)

Returns the context of this widget.

It is possible that the context is not valid (see isValid()), for example, if the underlying hardware does not support the format attributes that were requested.

QImage QGLWidget.convertToGLFormat (QImage img)

Converts the image img into the unnamed format expected by OpenGL functions such as glTexImage2D(). The returned image is not usable as a QImage, but QImage.width(), QImage.height() and QImage.bits() may be used with OpenGL. The GL format used is GL_RGBA.

QGLWidget.deleteTexture (self, int tx_id)

Calls QGLContext.deleteTexture(id) on the currently set context.

See also bindTexture().

QGLWidget.doneCurrent (self)

Makes no GL context the current context. Normally, you do not need to call this function; QGLContext calls it as necessary. However, it may be useful in multithreaded environments.

bool QGLWidget.doubleBuffer (self)

Returns true if the contained GL rendering context has double buffering; otherwise returns false.

See also QGLFormat.doubleBuffer().

QGLWidget.drawTexture (self, QRectF target, int textureId, int textureTarget = GL_TEXTURE_2D)

Calls the corresponding QGLContext.drawTexture() with target, textureId, and textureTarget for this widget's context.

This function was introduced in Qt 4.4.

QGLWidget.drawTexture (self, QPointF point, int textureId, int textureTarget = GL_TEXTURE_2D)

Calls the corresponding QGLContext.drawTexture() with point, textureId, and textureTarget for this widget's context.

This function was introduced in Qt 4.4.

bool QGLWidget.event (self, QEvent)

Reimplemented from QObject.event().

int QGLWidget.fontDisplayListBase (self, QFont font, int listBase = 2000)

QGLFormat QGLWidget.format (self)

Returns the format of the contained GL rendering context.

See also setFormat().

QGLWidget.glDraw (self)

Executes the virtual function paintGL().

The widget's rendering context will become the current context and initializeGL() will be called if it hasn't already been called.

QGLWidget.glInit (self)

Initializes OpenGL for this widget's context. Calls the virtual function initializeGL().

QImage QGLWidget.grabFrameBuffer (self, bool withAlpha = False)

Returns an image of the frame buffer. If withAlpha is true the alpha channel is included.

Depending on your hardware, you can explicitly select which color buffer to grab with a glReadBuffer() call before calling this function.

QGLWidget.initializeGL (self)

This virtual function is called once before the first call to paintGL() or resizeGL(), and then once whenever the widget has been assigned a new QGLContext. Reimplement it in a subclass.

This function should set up any required OpenGL context rendering flags, defining display lists, etc.

There is no need to call makeCurrent() because this has already been done when this function is called.

QGLWidget.initializeOverlayGL (self)

This virtual function is used in the same manner as initializeGL() except that it operates on the widget's overlay context instead of the widget's main context. This means that initializeOverlayGL() is called once before the first call to paintOverlayGL() or resizeOverlayGL(). Reimplement it in a subclass.

This function should set up any required OpenGL context rendering flags, defining display lists, etc. for the overlay context.

There is no need to call makeOverlayCurrent() because this has already been done when this function is called.

bool QGLWidget.isSharing (self)

Returns true if this widget's GL context is shared with another GL context, otherwise false is returned. Context sharing might not be possible if the widgets use different formats.

See also format().

bool QGLWidget.isValid (self)

Returns true if the widget has a valid GL rendering context; otherwise returns false. A widget will be invalid if the system has no OpenGL support.

QGLWidget.makeCurrent (self)

Makes this widget the current widget for OpenGL operations, i.e. makes the widget's rendering context the current OpenGL rendering context.

QGLWidget.makeOverlayCurrent (self)

Makes the overlay context of this widget current. Use this if you need to issue OpenGL commands to the overlay context outside of initializeOverlayGL(), resizeOverlayGL(), and paintOverlayGL().

Does nothing if this widget has no overlay.

See also makeCurrent().

QGLContext QGLWidget.overlayContext (self)

Returns the overlay context of this widget, or 0 if this widget has no overlay.

See also context().

QPaintEngine QGLWidget.paintEngine (self)

QGLWidget.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

Handles paint events passed in the event parameter. Will cause the virtual paintGL() function to be called.

The widget's rendering context will become the current context and initializeGL() will be called if it hasn't already been called.

QGLWidget.paintGL (self)

This virtual function is called whenever the widget needs to be painted. Reimplement it in a subclass.

There is no need to call makeCurrent() because this has already been done when this function is called.

QGLWidget.paintOverlayGL (self)

This virtual function is used in the same manner as paintGL() except that it operates on the widget's overlay context instead of the widget's main context. This means that paintOverlayGL() is called whenever the widget's overlay needs to be painted. Reimplement it in a subclass.

There is no need to call makeOverlayCurrent() because this has already been done when this function is called.

QGLWidget.qglClearColor (self, QColor c)

Convenience function for specifying the clearing color to OpenGL. Calls glClearColor (in RGBA mode) or glClearIndex (in color-index mode) with the color c. Applies to this widgets GL context.

See also qglColor(), QGLContext.currentContext(), and QColor.

QGLWidget.qglColor (self, QColor c)

Convenience function for specifying a drawing color to OpenGL. Calls glColor4 (in RGBA mode) or glIndex (in color-index mode) with the color c. Applies to this widgets GL context.

Note: This function is not supported on OpenGL/ES 2.0 systems.

See also qglClearColor(), QGLContext.currentContext(), and QColor.

QPixmap QGLWidget.renderPixmap (self, int width = 0, int height = 0, bool useContext = False)

Renders the current scene on a pixmap and returns the pixmap.

You can use this method on both visible and invisible QGLWidget objects.

This method will create a pixmap and a temporary QGLContext to render on the pixmap. It will then call initializeGL(), resizeGL(), and paintGL() on this context. Finally, the widget's original GL context is restored.

The size of the pixmap will be w pixels wide and h pixels high unless one of these parameters is 0 (the default), in which case the pixmap will have the same size as the widget.

If useContext is true, this method will try to be more efficient by using the existing GL context to render the pixmap. The default is false. Only use true if you understand the risks. Note that under Windows a temporary context has to be created and usage of the useContext parameter is not supported.

Overlays are not rendered onto the pixmap.

If the GL rendering context and the desktop have different bit depths, the result will most likely look surprising.

Note that the creation of display lists, modifications of the view frustum etc. should be done from within initializeGL(). If this is not done, the temporary QGLContext will not be initialized properly, and the rendered pixmap may be incomplete/corrupted.

QGLWidget.renderText (self, int x, int y, QString str, QFont font = QFont(), int listBase = 2000)

Renders the string str into the GL context of this widget.

x and y are specified in window coordinates, with the origin in the upper left-hand corner of the window. If font is not specified, the currently set application font will be used to render the string. To change the color of the rendered text you can use the glColor() call (or the qglColor() convenience function), just before the renderText() call.

The listBase parameter is obsolete and will be removed in a future version of Qt.

Note: This function clears the stencil buffer.

Note: This function is not supported on OpenGL/ES systems.

Note: This function temporarily disables depth-testing when the text is drawn.

Note: This function can only be used inside a QPainter.beginNativePainting()/QPainter.endNativePainting() block if the default OpenGL paint engine is QPaintEngine.OpenGL. To make QPaintEngine.OpenGL the default GL engine, call QGL.setPreferredPaintEngine(QPaintEngine.OpenGL) before the QApplication constructor.

Overpaint with QPainter.drawText() instead.

QGLWidget.renderText (self, float x, float y, float z, QString str, QFont font = QFont(), int listBase = 2000)

This is an overloaded function.

x, y and z are specified in scene or object coordinates relative to the currently set projection and model matrices. This can be useful if you want to annotate models with text labels and have the labels move with the model as it is rotated etc.

Note: This function is not supported on OpenGL/ES systems.

Note: If depth testing is enabled before this function is called, then the drawn text will be depth-tested against the models that have already been drawn in the scene. Use glDisable(GL_DEPTH_TEST) before calling this function to annotate the models without depth-testing the text.

Overpaint with QPainter.drawText() instead.

QGLWidget.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

Handles resize events that are passed in the event parameter. Calls the virtual function resizeGL().

QGLWidget.resizeGL (self, int w, int h)

This virtual function is called whenever the widget has been resized. The new size is passed in width and height. Reimplement it in a subclass.

There is no need to call makeCurrent() because this has already been done when this function is called.

QGLWidget.resizeOverlayGL (self, int w, int h)

This virtual function is used in the same manner as paintGL() except that it operates on the widget's overlay context instead of the widget's main context. This means that resizeOverlayGL() is called whenever the widget has been resized. The new size is passed in width and height. Reimplement it in a subclass.

There is no need to call makeOverlayCurrent() because this has already been done when this function is called.

QGLWidget.setAutoBufferSwap (self, bool on)

If on is true automatic GL buffer swapping is switched on; otherwise it is switched off.

If on is true and the widget is using a double-buffered format, the background and foreground GL buffers will automatically be swapped after each paintGL() call.

The buffer auto-swapping is on by default.

See also autoBufferSwap(), doubleBuffer(), and swapBuffers().

QGLWidget.setColormap (self, QGLColormap map)

Set the colormap for this widget to cmap. Usually it is only top-level widgets that can have colormaps installed.

See also colormap().

QGLWidget.setContext (self, QGLContext context, QGLContext shareContext = None, bool deleteOldContext = True)

The context argument has it's ownership transferred to Qt.

QGLWidget.setFormat (self, QGLFormat format)

QGLWidget.setMouseTracking (self, bool enable)

If enable is true then mouse tracking is enabled; otherwise it is disabled.

QGLWidget.swapBuffers (self)

Swaps the screen contents with an off-screen buffer. This only works if the widget's format specifies double buffer mode.

Normally, there is no need to explicitly call this function because it is done automatically after each widget repaint, i.e. each time after paintGL() has been executed.

See also doubleBuffer(), setAutoBufferSwap(), and QGLFormat.setDoubleBuffer().

QGLWidget.updateGL (self)

This method is also a Qt slot with the C++ signature void updateGL().

Updates the widget by calling glDraw().

QGLWidget.updateOverlayGL (self)

This method is also a Qt slot with the C++ signature void updateOverlayGL().

Updates the widget's overlay (if any). Will cause the virtual function paintOverlayGL() to be executed.

The widget's rendering context will become the current context and initializeGL() will be called if it hasn't already been called.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qglyphrun.html0000644000076500000240000002516512536324504020411 0ustar philstaff00000000000000 QGlyphRun Class Reference
  Home · All Classes · Modules

QGlyphRun Class Reference
[QtGui module]

The QGlyphRun class provides direct access to the internal glyphs in a font. More...

Methods

Special Methods

  • bool __eq__ (self, QGlyphRun other)
  • bool __ne__ (self, QGlyphRun other)

Detailed Description

The QGlyphRun class provides direct access to the internal glyphs in a font.

When Qt displays a string of text encoded in Unicode, it will first convert the Unicode points into a list of glyph indexes and a list of positions based on one or more fonts. The Unicode representation of the text and the QFont object will in this case serve as a convenient abstraction that hides the details of what actually takes place when displaying the text on-screen. For instance, by the time the text actually reaches the screen, it may be represented by a set of fonts in addition to the one specified by the user, e.g. in case the originally selected font did not support all the writing systems contained in the text.

Under certain circumstances, it can be useful as an application developer to have more low-level control over which glyphs in a specific font are drawn to the screen. This could for instance be the case in applications that use an external font engine and text shaper together with Qt. QGlyphRun provides an interface to the raw data needed to get text on the screen. It contains a list of glyph indexes, a position for each glyph and a font.

It is the user's responsibility to ensure that the selected font actually contains the provided glyph indexes.

QTextLayout.glyphRuns() or QTextFragment.glyphRuns() can be used to convert unicode encoded text into a list of QGlyphRun objects, and QPainter.drawGlyphRun() can be used to draw the glyphs.

Note: Please note that QRawFont is considered local to the thread in which it is constructed. This in turn means that a new QRawFont will have to be created and set on the QGlyphRun if it is moved to a different thread. If the QGlyphRun contains a reference to a QRawFont from a different thread than the current, it will not be possible to draw the glyphs using a QPainter, as the QRawFont is considered invalid and inaccessible in this case.


Method Documentation

QGlyphRun.__init__ (self)

Constructs an empty QGlyphRun object.

QGlyphRun.__init__ (self, QGlyphRun other)

Constructs a QGlyphRun object which is a copy of other.

QGlyphRun.clear (self)

Clears all data in the QGlyphRun object.

list-of-int QGlyphRun.glyphIndexes (self)

Returns the glyph indexes for this QGlyphRun object.

See also setGlyphIndexes() and setPositions().

bool QGlyphRun.overline (self)

Returns true if this QGlyphRun should be painted with an overline decoration.

See also setOverline().

list-of-QPointF QGlyphRun.positions (self)

Returns the position of the edge of the baseline for each glyph in this set of glyph indexes.

See also setPositions().

QRawFont QGlyphRun.rawFont (self)

Returns the font selected for this QGlyphRun object.

See also setRawFont().

QGlyphRun.setGlyphIndexes (self, list-of-int glyphIndexes)

Set the glyph indexes for this QGlyphRun object to glyphIndexes. The glyph indexes must be valid for the selected font.

See also glyphIndexes().

QGlyphRun.setOverline (self, bool overline)

Indicates that this QGlyphRun should be painted with an overline decoration if overline is true. Otherwise the QGlyphRun should be painted with no overline decoration.

See also overline().

QGlyphRun.setPositions (self, list-of-QPointF positions)

Sets the positions of the edge of the baseline for each glyph in this set of glyph indexes to positions.

See also positions().

QGlyphRun.setRawFont (self, QRawFont rawFont)

Sets the font specified by rawFont to be the font used to look up the glyph indexes.

See also rawFont() and setGlyphIndexes().

QGlyphRun.setStrikeOut (self, bool strikeOut)

Indicates that this QGlyphRun should be painted with an strike out decoration if strikeOut is true. Otherwise the QGlyphRun should be painted with no strike out decoration.

See also strikeOut().

QGlyphRun.setUnderline (self, bool underline)

Indicates that this QGlyphRun should be painted with an underline decoration if underline is true. Otherwise the QGlyphRun should be painted with no underline decoration.

See also underline().

bool QGlyphRun.strikeOut (self)

Returns true if this QGlyphRun should be painted with a strike out decoration.

See also setStrikeOut().

bool QGlyphRun.underline (self)

Returns true if this QGlyphRun should be painted with an underline decoration.

See also setUnderline().

bool QGlyphRun.__eq__ (self, QGlyphRun other)

bool QGlyphRun.__ne__ (self, QGlyphRun other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgradient.html0000644000076500000240000004123312536324501020325 0ustar philstaff00000000000000 QGradient Class Reference
  Home · All Classes · Modules

QGradient Class Reference
[QtGui module]

The QGradient class is used in combination with QBrush to specify gradient fills. More...

Inherited by QConicalGradient, QLinearGradient and QRadialGradient.

Types

  • enum CoordinateMode { LogicalMode, StretchToDeviceMode, ObjectBoundingMode }
  • enum Spread { PadSpread, ReflectSpread, RepeatSpread }
  • enum Type { LinearGradient, RadialGradient, ConicalGradient, NoGradient }

Methods

Special Methods

  • bool __eq__ (self, QGradient gradient)
  • bool __ne__ (self, QGradient other)

Detailed Description

The QGradient class is used in combination with QBrush to specify gradient fills.

Qt currently supports three types of gradient fills:

  • Linear gradients interpolate colors between start and end points.
  • Simple radial gradients interpolate colors between a focal point and end points on a circle surrounding it.
  • Extended radial gradients interpolate colors between a center and a focal circle.
  • Conical gradients interpolate colors around a center point.

A gradient's type can be retrieved using the type() function. Each of the types is represented by a subclass of QGradient:

QLinearGradient QRadialGradient QConicalGradient

The colors in a gradient are defined using stop points of the QGradientStop type; i.e., a position and a color. Use the setColorAt() function to define a single stop point. Alternatively, use the setStops() function to define several stop points in one go. Note that the latter function replaces the current set of stop points.

It is the gradient's complete set of stop points (accessible through the stops() function) that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.

A diagonal linear gradient from black at (100, 100) to white at (200, 200) could be specified like this:

     QLinearGradient linearGrad(QPointF(100, 100), QPointF(200, 200));
     linearGrad.setColorAt(0, Qt.black);
     linearGrad.setColorAt(1, Qt.white);

A gradient can have an arbitrary number of stop points. The following would create a radial gradient starting with red in the center, blue and then green on the edges:

     QRadialGradient radialGrad(QPointF(100, 100), 100);
     radialGrad.setColorAt(0, Qt.red);
     radialGrad.setColorAt(0.5, Qt.blue);
     radialGrad.setColorAt(1, Qt.green);

It is possible to repeat or reflect the gradient outside its area by specifiying the spread method using the setSpread() function. The default is to pad the outside area with the color at the closest stop point. The currently set spread method can be retrieved using the spread() function. The QGradient.Spread enum defines three different methods:

PadSpread RepeatSpread ReflectSpread

Note that the setSpread() function only has effect for linear and radial gradients. The reason is that the conical gradient is closed by definition, i.e. the conical gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.

The gradient coordinates can be specified in logical coordinates, relative to device coordinates, or relative to object bounding box coordinates. The coordinate mode can be set using the setCoordinateMode() function. The default is LogicalMode, where the gradient coordinates are specified in the same way as the object coordinates. To retrieve the currently set coordinate mode use coordinateMode().


Type Documentation

QGradient.CoordinateMode

This enum specifies how gradient coordinates map to the paint device on which the gradient is used.

Constant Value Description
QGradient.LogicalMode 0 This is the default mode. The gradient coordinates are specified logical space just like the object coordinates.
QGradient.StretchToDeviceMode 1 In this mode the gradient coordinates are relative to the bounding rectangle of the paint device, with (0,0) in the top left corner, and (1,1) in the bottom right corner of the paint device.
QGradient.ObjectBoundingMode 2 In this mode the gradient coordinates are relative to the bounding rectangle of the object being drawn, with (0,0) in the top left corner, and (1,1) in the bottom right corner of the object's bounding rectangle.

This enum was introduced or modified in Qt 4.4.

QGradient.Spread

Specifies how the area outside the gradient area should be filled.

Constant Value Description
QGradient.PadSpread 0 The area is filled with the closest stop color. This is the default.
QGradient.RepeatSpread 2 The gradient is repeated outside the gradient area.
QGradient.ReflectSpread 1 The gradient is reflected outside the gradient area.

See also spread() and setSpread().

QGradient.Type

Specifies the type of gradient.

Constant Value Description
QGradient.LinearGradient 0 Interpolates colors between start and end points (QLinearGradient).
QGradient.RadialGradient 1 Interpolate colors between a focal point and end points on a circle surrounding it (QRadialGradient).
QGradient.ConicalGradient 2 Interpolate colors around a center point (QConicalGradient).
QGradient.NoGradient 3 No gradient is used.

See also type().


Method Documentation

QGradient.__init__ (self)

QGradient.__init__ (self, QGradient)

CoordinateMode QGradient.coordinateMode (self)

Returns the coordinate mode of this gradient. The default mode is LogicalMode.

This function was introduced in Qt 4.4.

See also setCoordinateMode().

QGradient.setColorAt (self, float pos, QColor color)

Creates a stop point at the given position with the given color. The given position must be in the range 0 to 1.

See also setStops() and stops().

QGradient.setCoordinateMode (self, CoordinateMode mode)

Sets the coordinate mode of this gradient to mode. The default mode is LogicalMode.

This function was introduced in Qt 4.4.

See also coordinateMode().

QGradient.setSpread (self, Spread aspread)

Specifies the spread method that should be used for this gradient.

Note that this function only has effect for linear and radial gradients.

See also spread().

QGradient.setStops (self, list-of-tuple-of-float-QColor stops)

Replaces the current set of stop points with the given stopPoints. The positions of the points must be in the range 0 to 1, and must be sorted with the lowest point first.

See also setColorAt() and stops().

Spread QGradient.spread (self)

Returns the spread method use by this gradient. The default is PadSpread.

See also setSpread().

list-of-tuple-of-float-QColor QGradient.stops (self)

Returns the stop points for this gradient.

If no stop points have been specified, a gradient of black at 0 to white at 1 is used.

See also setStops() and setColorAt().

Type QGradient.type (self)

Returns the type of gradient.

bool QGradient.__eq__ (self, QGradient gradient)

bool QGradient.__ne__ (self, QGradient other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsanchor.html0000644000076500000240000000715212536324504021530 0ustar philstaff00000000000000 QGraphicsAnchor Class Reference
  Home · All Classes · Modules

QGraphicsAnchor Class Reference
[QtGui module]

The QGraphicsAnchor class represents an anchor between two items in a QGraphicsAnchorLayout. More...

Inherits QObject.

Methods


Detailed Description

The QGraphicsAnchor class represents an anchor between two items in a QGraphicsAnchorLayout.

The graphics anchor provides an API that enables you to query and manipulate the properties an anchor has. When an anchor is added to the layout with QGraphicsAnchorLayout.addAnchor(), a QGraphicsAnchor instance is returned where the properties are initialized to their default values. The properties can then be further changed, and they will be picked up the next time the layout is activated.


Method Documentation

QGraphicsAnchor.setSizePolicy (self, QSizePolicy.Policy policy)

QGraphicsAnchor.setSpacing (self, float spacing)

QSizePolicy.Policy QGraphicsAnchor.sizePolicy (self)

float QGraphicsAnchor.spacing (self)

QGraphicsAnchor.unsetSpacing (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsanchorlayout.html0000644000076500000240000005006112536324504022763 0ustar philstaff00000000000000 QGraphicsAnchorLayout Class Reference
  Home · All Classes · Modules

QGraphicsAnchorLayout Class Reference
[
QtGui module]

The QGraphicsAnchorLayout class provides a layout where one can anchor widgets together in Graphics View. More...

Inherits QGraphicsLayout.

Methods

  • __init__ (self, QGraphicsLayoutItem parent = None)
  • QGraphicsAnchor addAnchor (self, QGraphicsLayoutItem firstItem, Qt.AnchorPoint firstEdge, QGraphicsLayoutItem secondItem, Qt.AnchorPoint secondEdge)
  • addAnchors (self, QGraphicsLayoutItem firstItem, QGraphicsLayoutItem secondItem, Qt.Orientations orientations = Qt.Horizontal|Qt.Vertical)
  • addCornerAnchors (self, QGraphicsLayoutItem firstItem, Qt.Corner firstCorner, QGraphicsLayoutItem secondItem, Qt.Corner secondCorner)
  • QGraphicsAnchor anchor (self, QGraphicsLayoutItem firstItem, Qt.AnchorPoint firstEdge, QGraphicsLayoutItem secondItem, Qt.AnchorPoint secondEdge)
  • int count (self)
  • float horizontalSpacing (self)
  • invalidate (self)
  • QGraphicsLayoutItem itemAt (self, int index)
  • removeAt (self, int index)
  • setGeometry (self, QRectF rect)
  • setHorizontalSpacing (self, float spacing)
  • setSpacing (self, float spacing)
  • setVerticalSpacing (self, float spacing)
  • QSizeF sizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())
  • float verticalSpacing (self)

Detailed Description

The QGraphicsAnchorLayout class provides a layout where one can anchor widgets together in Graphics View.

The anchor layout allows developers to specify how widgets should be placed relative to each other, and to the layout itself. The specification is made by adding anchors to the layout by calling addAnchor(), addAnchors() or addCornerAnchors().

Existing anchors in the layout can be accessed with the anchor() function. Items that are anchored are automatically added to the layout, and if items are removed, all their anchors will be automatically removed.

Using an anchor layout to align simple colored widgets.

Anchors are always set up between edges of an item, where the "center" is also considered to be an edge. Consider the following example:

 layout->addAnchor(b, Qt.AnchorLeft, a, Qt.AnchorRight);
 layout->addAnchor(b, Qt.AnchorTop, a, Qt.AnchorBottom);

Here, the right edge of item a is anchored to the left edge of item b and the bottom edge of item a is anchored to the top edge of item b, with the result that item b will be placed diagonally to the right and below item b.

The addCornerAnchors() function provides a simpler way of anchoring the corners of two widgets than the two individual calls to addAnchor() shown in the code above. Here, we see how a widget can be anchored to the top-left corner of the enclosing layout:

 layout->addCornerAnchors(a, Qt.TopLeftCorner, layout, Qt.TopLeftCorner);

In cases where anchors are used to match the widths or heights of widgets, it is convenient to use the addAnchors() function. As with the other functions for specifying anchors, it can also be used to anchor a widget to a layout.


Size Hints and Size Policies in an Anchor Layout

QGraphicsAnchorLayout respects each item's size hints and size policies. Note that there are some properties of QSizePolicy that are not respected.

Spacing within an Anchor Layout

The layout may distribute some space between the items. If the spacing has not been explicitly specified, the actual amount of space will usually be 0.

However, if the first edge is the opposite of the second edge (e.g., the right edge of the first widget is anchored to the left edge of the second widget), the size of the anchor will be queried from the style through a pixel metric: PM_LayoutHorizontalSpacing for horizontal anchors and PM_LayoutVerticalSpacing for vertical anchors.

If the spacing is negative, the items will overlap to some extent.

Known issues

There are some features that QGraphicsAnchorLayout currently does not support. This might change in the future, so avoid using these features if you want to avoid any future regressions in behaviour:


Method Documentation

QGraphicsAnchorLayout.__init__ (self, QGraphicsLayoutItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsAnchorLayout instance. parent is passed to QGraphicsLayout's constructor.

QGraphicsAnchor QGraphicsAnchorLayout.addAnchor (self, QGraphicsLayoutItem firstItem, Qt.AnchorPoint firstEdge, QGraphicsLayoutItem secondItem, Qt.AnchorPoint secondEdge)

The firstItem argument has it's ownership transferred to Qt.

The secondItem argument has it's ownership transferred to Qt.

Creates an anchor between the edge firstEdge of item firstItem and the edge secondEdge of item secondItem. The spacing of the anchor is picked up from the style. Anchors between a layout edge and an item edge will have a size of 0. If there is already an anchor between the edges, the the new anchor will replace the old one.

firstItem and secondItem are automatically added to the layout if they are not part of the layout. This means that count() can increase by up to 2.

The spacing an anchor will get depends on the type of anchor. For instance, anchors from the Right edge of one item to the Left edge of another (or vice versa) will use the default horizontal spacing. The same behaviour applies to Bottom to Top anchors, (but they will use the default vertical spacing). For all other anchor combinations, the spacing will be 0. All anchoring functions will follow this rule.

The spacing can also be set manually by using QGraphicsAnchor.setSpacing() method.

Calling this function where firstItem or secondItem are ancestors of the layout have undefined behaviour.

See also addAnchors() and addCornerAnchors().

QGraphicsAnchorLayout.addAnchors (self, QGraphicsLayoutItem firstItem, QGraphicsLayoutItem secondItem, Qt.Orientations orientations = Qt.Horizontal|Qt.Vertical)

The firstItem argument has it's ownership transferred to Qt.

The secondItem argument has it's ownership transferred to Qt.

Anchors two or four edges of firstItem with the corresponding edges of secondItem, so that firstItem has the same size as secondItem in the dimensions specified by orientations.

For example, the following example anchors the left and right edges of two items to match their widths:

 layout->addAnchor(b, Qt.AnchorLeft, c, Qt.AnchorLeft);
 layout->addAnchor(b, Qt.AnchorRight, c, Qt.AnchorRight);

This can also be achieved using the following line of code:

 layout->addAnchors(b, c, Qt.Horizontal);

See also addAnchor() and addCornerAnchors().

QGraphicsAnchorLayout.addCornerAnchors (self, QGraphicsLayoutItem firstItem, Qt.Corner firstCorner, QGraphicsLayoutItem secondItem, Qt.Corner secondCorner)

The firstItem argument has it's ownership transferred to Qt.

The secondItem argument has it's ownership transferred to Qt.

Creates two anchors between firstItem and secondItem specified by the corners, firstCorner and secondCorner, where one is for the horizontal edge and another one for the vertical edge.

This is a convenience function, since anchoring corners can be expressed as anchoring two edges. For instance:

 layout->addAnchor(a, Qt.AnchorTop, layout, Qt.AnchorTop);
 layout->addAnchor(a, Qt.AnchorLeft, layout, Qt.AnchorLeft);

This can also be achieved with the following line of code:

 layout->addCornerAnchors(a, Qt.TopLeftCorner, layout, Qt.TopLeftCorner);

If there is already an anchor between the edge pairs, it will be replaced by the anchors that this function specifies.

firstItem and secondItem are automatically added to the layout if they are not part of the layout. This means that count() can increase by up to 2.

See also addAnchor() and addAnchors().

QGraphicsAnchor QGraphicsAnchorLayout.anchor (self, QGraphicsLayoutItem firstItem, Qt.AnchorPoint firstEdge, QGraphicsLayoutItem secondItem, Qt.AnchorPoint secondEdge)

Returns the anchor between the anchor points defined by firstItem and firstEdge and secondItem and secondEdge. If there is no such anchor, the function will return 0.

int QGraphicsAnchorLayout.count (self)

Reimplemented from QGraphicsLayout.count().

float QGraphicsAnchorLayout.horizontalSpacing (self)

Returns the default horizontal spacing for the anchor layout.

See also verticalSpacing() and setHorizontalSpacing().

QGraphicsAnchorLayout.invalidate (self)

Reimplemented from QGraphicsLayout.invalidate().

QGraphicsLayoutItem QGraphicsAnchorLayout.itemAt (self, int index)

Reimplemented from QGraphicsLayout.itemAt().

QGraphicsAnchorLayout.removeAt (self, int index)

Reimplemented from QGraphicsLayout.removeAt().

Removes the layout item at index without destroying it. Ownership of the item is transferred to the caller.

Removing an item will also remove any of the anchors associated with it.

See also itemAt() and count().

QGraphicsAnchorLayout.setGeometry (self, QRectF rect)

Reimplemented from QGraphicsLayoutItem.setGeometry().

QGraphicsAnchorLayout.setHorizontalSpacing (self, float spacing)

Sets the default horizontal spacing for the anchor layout to spacing.

See also horizontalSpacing(), setVerticalSpacing(), and setSpacing().

QGraphicsAnchorLayout.setSpacing (self, float spacing)

Sets the default horizontal and the default vertical spacing for the anchor layout to spacing.

If an item is anchored with no spacing associated with the anchor, it will use the default spacing.

QGraphicsAnchorLayout does not support negative spacings. Setting a negative value will unset the previous spacing and make the layout use the spacing provided by the current widget style.

See also setHorizontalSpacing() and setVerticalSpacing().

QGraphicsAnchorLayout.setVerticalSpacing (self, float spacing)

Sets the default vertical spacing for the anchor layout to spacing.

See also verticalSpacing(), setHorizontalSpacing(), and setSpacing().

QSizeF QGraphicsAnchorLayout.sizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())

Reimplemented from QGraphicsLayoutItem.sizeHint().

float QGraphicsAnchorLayout.verticalSpacing (self)

Returns the default vertical spacing for the anchor layout.

See also horizontalSpacing() and setVerticalSpacing().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsblureffect-blurhints.html0000644000076500000240000001405312536324504024405 0ustar philstaff00000000000000 QGraphicsBlurEffect.BlurHints Class Reference
  Home · All Classes · Modules

QGraphicsBlurEffect.BlurHints Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description


Method Documentation

BlurHints.__init__ (self, BlurHints)

BlurHints.__init__ (self, int)

BlurHints.__init__ (self)

BlurHints BlurHints.__and__ (self, int mask)

int BlurHints.__bool__ (self)

bool BlurHints.__eq__ (self, BlurHints f)

BlurHints BlurHints.__iand__ (self, int mask)

int BlurHints.__int__ (self)

BlurHints BlurHints.__invert__ (self)

BlurHints BlurHints.__ior__ (self, BlurHints f)

BlurHints BlurHints.__ixor__ (self, BlurHints f)

bool BlurHints.__ne__ (self, BlurHints f)

BlurHints BlurHints.__or__ (self, BlurHints f)

BlurHints BlurHints.__or__ (self, int f)

BlurHints BlurHints.__xor__ (self, BlurHints f)

BlurHints BlurHints.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsblureffect.html0000644000076500000240000001744612536324504022406 0ustar philstaff00000000000000 QGraphicsBlurEffect Class Reference
  Home · All Classes · Modules

QGraphicsBlurEffect Class Reference
[QtGui module]

The QGraphicsBlurEffect class provides a blur effect. More...

Inherits QGraphicsEffect.

Types

Methods

Qt Signals


Detailed Description

The QGraphicsBlurEffect class provides a blur effect.

A blur effect blurs the source. This effect is useful for reducing details, such as when the source loses focus and you want to draw attention to other elements. The level of detail can be modified using the setBlurRadius() function. Use setBlurHints() to choose the blur hints.

By default, the blur radius is 5 pixels. The blur radius is specified in device coordinates.


Type Documentation

QGraphicsBlurEffect.BlurHint

This enum describes the possible hints that can be used to control how blur effects are applied. The hints might not have an effect in all the paint engines.

Constant Value Description
QGraphicsBlurEffect.PerformanceHint 0x00 Indicates that rendering performance is the most important factor, at the potential cost of lower quality.
QGraphicsBlurEffect.QualityHint 0x01 Indicates that rendering quality is the most important factor, at the potential cost of lower performance.
QGraphicsBlurEffect.AnimationHint 0x02 Indicates that the blur radius is going to be animated, hinting that the implementation can keep a cache of blurred verisons of the source. Do not use this hint if the source is going to be dynamically changing.

This enum was introduced or modified in Qt 4.6.

The BlurHints type is a typedef for QFlags<BlurHint>. It stores an OR combination of BlurHint values.

See also blurHints() and setBlurHints().


Method Documentation

QGraphicsBlurEffect.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGraphicsBlurEffect instance. The parent parameter is passed to QGraphicsEffect's constructor.

BlurHints QGraphicsBlurEffect.blurHints (self)

float QGraphicsBlurEffect.blurRadius (self)

QRectF QGraphicsBlurEffect.boundingRectFor (self, QRectF rect)

Reimplemented from QGraphicsEffect.boundingRectFor().

QGraphicsBlurEffect.draw (self, QPainter painter)

Reimplemented from QGraphicsEffect.draw().

QGraphicsBlurEffect.setBlurHints (self, BlurHints hints)

This method is also a Qt slot with the C++ signature void setBlurHints(QGraphicsBlurEffect::BlurHints).

QGraphicsBlurEffect.setBlurRadius (self, float blurRadius)

This method is also a Qt slot with the C++ signature void setBlurRadius(qreal).


Qt Signal Documentation

void blurHintsChanged (QGraphicsBlurEffect::BlurHints)

This is the default overload of this signal.

This signal is emitted whenever the effect's blur hints changes. The hints parameter holds the effect's new blur hints.

void blurRadiusChanged (qreal)

This is the default overload of this signal.

This signal is emitted whenever the effect's blur radius changes. The radius parameter holds the effect's new blur radius.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicscolorizeeffect.html0000644000076500000240000001244212536324504023257 0ustar philstaff00000000000000 QGraphicsColorizeEffect Class Reference
  Home · All Classes · Modules

QGraphicsColorizeEffect Class Reference
[
QtGui module]

The QGraphicsColorizeEffect class provides a colorize effect. More...

Inherits QGraphicsEffect.

Methods

Qt Signals


Detailed Description

The QGraphicsColorizeEffect class provides a colorize effect.

A colorize effect renders the source with a tint of its color(). The color can be modified using the setColor() function.

By default, the color is light blue (QColor(0, 0, 192)).


Method Documentation

QGraphicsColorizeEffect.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGraphicsColorizeEffect instance. The parent parameter is passed to QGraphicsEffect's constructor.

QColor QGraphicsColorizeEffect.color (self)

QGraphicsColorizeEffect.draw (self, QPainter painter)

Reimplemented from QGraphicsEffect.draw().

QGraphicsColorizeEffect.setColor (self, QColor c)

This method is also a Qt slot with the C++ signature void setColor(const QColor&).

QGraphicsColorizeEffect.setStrength (self, float strength)

This method is also a Qt slot with the C++ signature void setStrength(qreal).

float QGraphicsColorizeEffect.strength (self)


Qt Signal Documentation

void colorChanged (const QColor&)

This is the default overload of this signal.

This signal is emitted whenever the effect's color changes. The color parameter holds the effect's new color.

void strengthChanged (qreal)

This is the default overload of this signal.

This signal is emitted whenever setStrength() changes the colorize strength property. strength contains the new strength value of the colorize effect.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsdropshadoweffect.html0000644000076500000240000002167612536324504023614 0ustar philstaff00000000000000 QGraphicsDropShadowEffect Class Reference
  Home · All Classes · Modules

QGraphicsDropShadowEffect Class Reference
[QtGui module]

The QGraphicsDropShadowEffect class provides a drop shadow effect. More...

Inherits QGraphicsEffect.

Methods

Qt Signals


Detailed Description

The QGraphicsDropShadowEffect class provides a drop shadow effect.

A drop shadow effect renders the source with a drop shadow. The color of the drop shadow can be modified using the setColor() function. The drop shadow offset can be modified using the setOffset() function and the blur radius of the drop shadow can be changed with the setBlurRadius() function.

By default, the drop shadow is a semi-transparent dark gray (QColor(63, 63, 63, 180)) shadow, blurred with a radius of 1 at an offset of 8 pixels towards the lower right. The drop shadow offset is specified in device coordinates.


Method Documentation

QGraphicsDropShadowEffect.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGraphicsDropShadowEffect instance. The parent parameter is passed to QGraphicsEffect's constructor.

float QGraphicsDropShadowEffect.blurRadius (self)

QRectF QGraphicsDropShadowEffect.boundingRectFor (self, QRectF rect)

Reimplemented from QGraphicsEffect.boundingRectFor().

QColor QGraphicsDropShadowEffect.color (self)

QGraphicsDropShadowEffect.draw (self, QPainter painter)

Reimplemented from QGraphicsEffect.draw().

QPointF QGraphicsDropShadowEffect.offset (self)

QGraphicsDropShadowEffect.setBlurRadius (self, float blurRadius)

This method is also a Qt slot with the C++ signature void setBlurRadius(qreal).

QGraphicsDropShadowEffect.setColor (self, QColor color)

This method is also a Qt slot with the C++ signature void setColor(const QColor&).

QGraphicsDropShadowEffect.setOffset (self, QPointF ofs)

This method is also a Qt slot with the C++ signature void setOffset(const QPointF&).

QGraphicsDropShadowEffect.setOffset (self, float dx, float dy)

This method is also a Qt slot with the C++ signature void setOffset(qreal,qreal).

QGraphicsDropShadowEffect.setOffset (self, float d)

This method is also a Qt slot with the C++ signature void setOffset(qreal).

QGraphicsDropShadowEffect.setXOffset (self, float dx)

This method is also a Qt slot with the C++ signature void setXOffset(qreal).

QGraphicsDropShadowEffect.setYOffset (self, float dy)

This method is also a Qt slot with the C++ signature void setYOffset(qreal).

float QGraphicsDropShadowEffect.xOffset (self)

float QGraphicsDropShadowEffect.yOffset (self)


Qt Signal Documentation

void blurRadiusChanged (qreal)

This is the default overload of this signal.

This signal is emitted whenever the effect's blur radius changes. The blurRadius parameter holds the effect's new blur radius.

void colorChanged (const QColor&)

This is the default overload of this signal.

This signal is emitted whenever the effect's color changes. The color parameter holds the effect's new color.

void offsetChanged (const QPointF&)

This is the default overload of this signal.

This signal is emitted whenever the effect's shadow offset changes. The offset parameter holds the effect's new shadow offset.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicseffect-changeflags.html0000644000076500000240000001412312536324504023746 0ustar philstaff00000000000000 QGraphicsEffect.ChangeFlags Class Reference
  Home · All Classes · Modules

QGraphicsEffect.ChangeFlags Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description


Method Documentation

ChangeFlags.__init__ (self, ChangeFlags)

ChangeFlags.__init__ (self, int)

ChangeFlags.__init__ (self)

ChangeFlags ChangeFlags.__and__ (self, int mask)

int ChangeFlags.__bool__ (self)

bool ChangeFlags.__eq__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__iand__ (self, int mask)

int ChangeFlags.__int__ (self)

ChangeFlags ChangeFlags.__invert__ (self)

ChangeFlags ChangeFlags.__ior__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__ixor__ (self, ChangeFlags f)

bool ChangeFlags.__ne__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__or__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__or__ (self, int f)

ChangeFlags ChangeFlags.__xor__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicseffect.html0000644000076500000240000005010012536324504021501 0ustar philstaff00000000000000 QGraphicsEffect Class Reference
  Home · All Classes · Modules

QGraphicsEffect Class Reference
[QtGui module]

The QGraphicsEffect class is the base class for all graphics effects. More...

Inherits QObject.

Inherited by QGraphicsBlurEffect, QGraphicsColorizeEffect, QGraphicsDropShadowEffect and QGraphicsOpacityEffect.

Types

  • enum ChangeFlag { SourceAttached, SourceDetached, SourceBoundingRectChanged, SourceInvalidated }
  • enum PixmapPadMode { NoPad, PadToTransparentBorder, PadToEffectiveBoundingRect }

Methods

Qt Signals


Detailed Description

The QGraphicsEffect class is the base class for all graphics effects.

Effects alter the appearance of elements by hooking into the rendering pipeline and operating between the source (e.g., a QGraphicsPixmapItem) and the destination device (e.g., QGraphicsView's viewport). Effects can be disabled by calling setEnabled(false). If effects are disabled, the source is rendered directly.

To add a visual effect to a QGraphicsItem, for example, you can use one of the standard effects, or alternately, create your own effect by creating a subclass of QGraphicsEffect. The effect can then be installed on the item using QGraphicsItem.setGraphicsEffect().

Qt provides the following standard effects:

For more information on how to use each effect, refer to the specific effect's documentation.

To create your own custom effect, create a subclass of QGraphicsEffect (or any other existing effects) and reimplement the virtual function draw(). This function is called whenever the effect needs to redraw. The draw() function takes the painter with which to draw as an argument. For more information, refer to the documenation for draw(). In the draw() function you can call sourcePixmap() to get a pixmap of the graphics effect source which you can then process.

If your effect changes, use update() to request for a redraw. If your custom effect changes the bounding rectangle of the source, e.g., a radial glow effect may need to apply an extra margin, you can reimplement the virtual boundingRectFor() function, and call updateBoundingRect() to notify the framework whenever this rectangle changes. The virtual sourceChanged() function is called to notify the effects that the source has changed in some way - e.g., if the source is a QGraphicsRectItem and its rectangle parameters have changed.


Type Documentation

QGraphicsEffect.ChangeFlag

This enum describes what has changed in QGraphicsEffectSource.

Constant Value Description
QGraphicsEffect.SourceAttached 0x1 The effect is installed on a source.
QGraphicsEffect.SourceDetached 0x2 The effect is uninstalled on a source.
QGraphicsEffect.SourceBoundingRectChanged 0x4 The bounding rect of the source has changed.
QGraphicsEffect.SourceInvalidated 0x8 The visual appearance of the source has changed.

The ChangeFlags type is a typedef for QFlags<ChangeFlag>. It stores an OR combination of ChangeFlag values.

QGraphicsEffect.PixmapPadMode

This enum describes how the pixmap returned from sourcePixmap should be padded.

Constant Value Description
QGraphicsEffect.NoPad 0 The pixmap should not receive any additional padding.
QGraphicsEffect.PadToTransparentBorder 1 The pixmap should be padded to ensure it has a completely transparent border.
QGraphicsEffect.PadToEffectiveBoundingRect 2 The pixmap should be padded to match the effective bounding rectangle of the effect.

Method Documentation

QGraphicsEffect.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGraphicsEffect instance having the specified parent.

QRectF QGraphicsEffect.boundingRect (self)

Returns the effective bounding rectangle for this effect, i.e., the bounding rectangle of the source in device coordinates, adjusted by any margins applied by the effect itself.

See also boundingRectFor() and updateBoundingRect().

QRectF QGraphicsEffect.boundingRectFor (self, QRectF sourceRect)

Returns the effective bounding rectangle for this effect, given the provided rect in the device coordinates. When writing you own custom effect, you must call updateBoundingRect() whenever any parameters are changed that may cause this this function to return a different value.

See also sourceBoundingRect().

QGraphicsEffect.draw (self, QPainter painter)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function draws the effect and is called whenever the source needs to be drawn.

Reimplement this function in a QGraphicsEffect subclass to provide the effect's drawing implementation, using painter.

For example:

 MyGraphicsEffect.draw(QPainter *painter)
 {
     ...
     QPoint offset;
     if (sourceIsPixmap()) {
         // No point in drawing in device coordinates (pixmap will be scaled anyways).
         const QPixmap pixmap = sourcePixmap(Qt.LogicalCoordinates, &offset);
         ...
         painter->drawPixmap(offset, pixmap);
     } else {
         // Draw pixmap in device coordinates to avoid pixmap scaling;
         const QPixmap pixmap = sourcePixmap(Qt.DeviceCoordinates, &offset);
         painter->setWorldTransform(QTransform());
         ...
         painter->drawPixmap(offset, pixmap);
     }
     ...
 }

This function should not be called explicitly by the user, since it is meant for reimplementation purposes only.

QGraphicsEffect.drawSource (self, QPainter painter)

Draws the source directly using the given painter.

This function should only be called from QGraphicsEffect.draw().

For example:

 MyGraphicsOpacityEffect.draw(QPainter *painter)
 {
     // Fully opaque; draw directly without going through a pixmap.
     if (qFuzzyCompare(m_opacity, 1)) {
         drawSource(painter);
         return;
     }
     ...
 }

See also QGraphicsEffect.draw().

bool QGraphicsEffect.isEnabled (self)

QGraphicsEffect.setEnabled (self, bool enable)

This method is also a Qt slot with the C++ signature void setEnabled(bool).

QRectF QGraphicsEffect.sourceBoundingRect (self, Qt.CoordinateSystem system = Qt.LogicalCoordinates)

Returns the bounding rectangle of the source mapped to the given system.

Calling this function with Qt.DeviceCoordinates outside of QGraphicsEffect.draw() will give undefined results, as there is no device context available.

See also draw().

QGraphicsEffect.sourceChanged (self, ChangeFlags flags)

This virtual function is called by QGraphicsEffect to notify the effect that the source has changed. If the effect applies any cache, then this cache must be purged in order to reflect the new appearance of the source.

The flags describes what has changed.

bool QGraphicsEffect.sourceIsPixmap (self)

Returns true if the source effectively is a pixmap, e.g., a QGraphicsPixmapItem.

This function is useful for optimization purposes. For instance, there's no point in drawing the source in device coordinates to avoid pixmap scaling if this function returns true - the source pixmap will be scaled anyways.

(QPixmap, QPoint offset) QGraphicsEffect.sourcePixmap (self, Qt.CoordinateSystem system = Qt.LogicalCoordinates, PixmapPadMode mode = QGraphicsEffect.PadToEffectiveBoundingRect)

Returns a pixmap with the source painted into it.

The system specifies which coordinate system to be used for the source. The optional offset parameter returns the offset where the pixmap should be painted at using the current painter. For control on how the pixmap is padded use the mode parameter.

The returned pixmap is clipped to the current painter's device rectangle when system is Qt.DeviceCoordinates.

Calling this function with Qt.DeviceCoordinates outside of QGraphicsEffect.draw() will give undefined results, as there is no device context available.

See also draw() and boundingRect().

QGraphicsEffect.update (self)

This method is also a Qt slot with the C++ signature void update().

Schedules a redraw of the effect. Call this function whenever the effect needs to be redrawn. This function does not trigger a redraw of the source.

See also updateBoundingRect().

QGraphicsEffect.updateBoundingRect (self)

This function notifies the effect framework when the effect's bounding rectangle has changed. As a custom effect author, you must call this function whenever you change any parameters that will cause the virtual boundingRectFor() function to return a different value.

This function will call update() if this is necessary.

See also boundingRectFor(), boundingRect(), and sourceBoundingRect().


Qt Signal Documentation

void enabledChanged (bool)

This is the default overload of this signal.

This signal is emitted whenever the effect is enabled or disabled. The enabled parameter holds the effects's new enabled state.

See also isEnabled().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsellipseitem.html0000644000076500000240000003333112536324505022571 0ustar philstaff00000000000000 QGraphicsEllipseItem Class Reference
  Home · All Classes · Modules

QGraphicsEllipseItem Class Reference
[QtGui module]

The QGraphicsEllipseItem class provides an ellipse item that you can add to a QGraphicsScene. More...

Inherits QAbstractGraphicsShapeItem.

Methods

  • __init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • __init__ (self, QRectF rect, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • __init__ (self, float x, float y, float w, float h, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • QRectF boundingRect (self)
  • bool contains (self, QPointF point)
  • bool isObscuredBy (self, QGraphicsItem item)
  • QPainterPath opaqueArea (self)
  • paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)
  • QRectF rect (self)
  • setRect (self, QRectF rect)
  • setRect (self, float ax, float ay, float w, float h)
  • setSpanAngle (self, int angle)
  • setStartAngle (self, int angle)
  • QPainterPath shape (self)
  • int spanAngle (self)
  • int startAngle (self)
  • int type (self)

Detailed Description

The QGraphicsEllipseItem class provides an ellipse item that you can add to a QGraphicsScene.

QGraphicsEllipseItem respresents an ellipse with a fill and an outline, and you can also use it for ellipse segments (see startAngle(), spanAngle()).

To set the item's ellipse, pass a QRectF to QGraphicsEllipseItem's constructor, or call setRect(). The rect() function returns the current ellipse geometry.

QGraphicsEllipseItem uses the rect and the pen width to provide a reasonable implementation of boundingRect(), shape(), and contains(). The paint() function draws the ellipse using the item's associated pen and brush, which you can set by calling setPen() and setBrush().


Method Documentation

QGraphicsEllipseItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsEllipseItem. parent is passed to QAbstractGraphicsShapeItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsEllipseItem.__init__ (self, QRectF rect, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsEllipseItem using rect as the default rectangle. parent is passed to QAbstractGraphicsShapeItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsEllipseItem.__init__ (self, float x, float y, float w, float h, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsEllipseItem using the rectangle defined by (x, y) and the given width and height, as the default rectangle. parent is passed to QAbstractGraphicsShapeItem's constructor.

This function was introduced in Qt 4.3.

See also QGraphicsScene.addItem().

QRectF QGraphicsEllipseItem.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

bool QGraphicsEllipseItem.contains (self, QPointF point)

Reimplemented from QGraphicsItem.contains().

bool QGraphicsEllipseItem.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QPainterPath QGraphicsEllipseItem.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

QGraphicsEllipseItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

Reimplemented from QGraphicsItem.paint().

QRectF QGraphicsEllipseItem.rect (self)

Returns the item's ellipse geometry as a QRectF.

See also setRect() and QPainter.drawEllipse().

QGraphicsEllipseItem.setRect (self, QRectF rect)

Sets the item's ellipse geometry to rect. The rectangle's left edge defines the left edge of the ellipse, and the rectangle's top edge describes the top of the ellipse. The height and width of the rectangle describe the height and width of the ellipse.

See also rect() and QPainter.drawEllipse().

QGraphicsEllipseItem.setRect (self, float ax, float ay, float w, float h)

Sets the item's rectangle to the rectangle defined by (x, y) and the given width and height.

This convenience function is equivalent to calling setRect(QRectF(x, y, width, height))

See also rect().

QGraphicsEllipseItem.setSpanAngle (self, int angle)

Sets the span angle for an ellipse segment to angle, which is in 16ths of a degree. This angle is used together with startAngle() to represent an ellipse segment (a pie). By default, the span angle is 5760 (360 * 16, a full ellipse).

See also spanAngle(), setStartAngle(), and QPainter.drawPie().

QGraphicsEllipseItem.setStartAngle (self, int angle)

Sets the start angle for an ellipse segment to angle, which is in 16ths of a degree. This angle is used together with spanAngle() for representing an ellipse segment (a pie). By default, the start angle is 0.

See also startAngle(), setSpanAngle(), and QPainter.drawPie().

QPainterPath QGraphicsEllipseItem.shape (self)

Reimplemented from QGraphicsItem.shape().

int QGraphicsEllipseItem.spanAngle (self)

Returns the span angle of an ellipse segment in 16ths of a degree. This angle is used together with startAngle() for representing an ellipse segment (a pie). By default, this function returns 5760 (360 * 16, a full ellipse).

See also setSpanAngle() and startAngle().

int QGraphicsEllipseItem.startAngle (self)

Returns the start angle for an ellipse segment in 16ths of a degree. This angle is used together with spanAngle() for representing an ellipse segment (a pie). By default, the start angle is 0.

See also setStartAngle() and spanAngle().

int QGraphicsEllipseItem.type (self)

Reimplemented from QGraphicsItem.type().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsgridlayout.html0000644000076500000240000006672712536324504022456 0ustar philstaff00000000000000 QGraphicsGridLayout Class Reference
  Home · All Classes · Modules

QGraphicsGridLayout Class Reference
[QtGui module]

The QGraphicsGridLayout class provides a grid layout for managing widgets in Graphics View. More...

Inherits QGraphicsLayout.

Methods


Detailed Description

The QGraphicsGridLayout class provides a grid layout for managing widgets in Graphics View.

The most common way to use QGraphicsGridLayout is to construct an object on the heap with no parent, add widgets and layouts by calling addItem(), and finally assign the layout to a widget by calling QGraphicsWidget.setLayout(). QGraphicsGridLayout automatically computes the dimensions of the grid as you add items.

 QGraphicsScene scene;
 QGraphicsWidget *textEdit = scene.addWidget(new QTextEdit);
 QGraphicsWidget *pushButton = scene.addWidget(new QPushButton);

 QGraphicsGridLayout *layout = new QGraphicsGridLayout;
 layout->addItem(textEdit, 0, 0);
 layout->addItem(pushButton, 0, 1);

 QGraphicsWidget *form = new QGraphicsWidget;
 form->setLayout(layout);
 scene.addItem(form);

The layout takes ownership of the items. In some cases when the layout item also inherits from QGraphicsItem (such as QGraphicsWidget) there will be a ambiguity in ownership because the layout item belongs to two ownership hierarchies. See the documentation of QGraphicsLayoutItem.setOwnedByLayout() how to handle this. You can access each item in the layout by calling count() and itemAt(). Calling removeAt() will remove an item from the layout, without destroying it.

Size Hints and Size Policies in QGraphicsGridLayout

QGraphicsGridLayout respects each item's size hints and size policies, and when a cell in the grid has more space than the items can fill, each item is arranged according to the layout's alignment for that item. You can set an alignment for each item by calling setAlignment(), and check the alignment for any item by calling alignment(). You can also set the alignment for an entire row or column by calling setRowAlignment() and setColumnAlignment() respectively. By default, items are aligned to the top left.


Method Documentation

QGraphicsGridLayout.__init__ (self, QGraphicsLayoutItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsGridLayout instance. parent is passed to QGraphicsLayout's constructor.

QGraphicsGridLayout.addItem (self, QGraphicsLayoutItem item, int row, int column, int rowSpan, int columnSpan, Qt.Alignment alignment = 0)

The item argument has it's ownership transferred to Qt.

Adds item to the grid on row and column. You can specify a rowSpan and columnSpan and an optional alignment.

QGraphicsGridLayout.addItem (self, QGraphicsLayoutItem aitem, int arow, int acolumn, Qt.Alignment alignment = 0)

The aitem argument, if not None, causes self to be owned by Qt instead of PyQt.

Adds item to the grid on row and column. You can specify an optional alignment for item.

Qt.Alignment QGraphicsGridLayout.alignment (self, QGraphicsLayoutItem item)

Returns the alignment for item.

See also setAlignment().

Qt.Alignment QGraphicsGridLayout.columnAlignment (self, int column)

Returns the alignment for column.

See also setColumnAlignment().

int QGraphicsGridLayout.columnCount (self)

Returns the number of columns in the grid layout. This is always one more than the index of the last column that is occupied by a layout item (empty columns are counted except for those at the end).

float QGraphicsGridLayout.columnMaximumWidth (self, int column)

Returns the maximum width for column.

See also setColumnMaximumWidth().

float QGraphicsGridLayout.columnMinimumWidth (self, int column)

Returns the minimum width for column.

See also setColumnMinimumWidth().

float QGraphicsGridLayout.columnPreferredWidth (self, int column)

Returns the preferred width for column.

See also setColumnPreferredWidth().

float QGraphicsGridLayout.columnSpacing (self, int column)

Returns the column spacing for column.

See also setColumnSpacing().

int QGraphicsGridLayout.columnStretchFactor (self, int column)

Returns the stretch factor for column.

See also setColumnStretchFactor().

int QGraphicsGridLayout.count (self)

Reimplemented from QGraphicsLayout.count().

Returns the number of layout items in this grid layout.

float QGraphicsGridLayout.horizontalSpacing (self)

Returns the default horizontal spacing for the grid layout.

See also setHorizontalSpacing().

QGraphicsGridLayout.invalidate (self)

Reimplemented from QGraphicsLayout.invalidate().

QGraphicsLayoutItem QGraphicsGridLayout.itemAt (self, int row, int column)

Returns a pointer to the layout item at (row, column).

QGraphicsLayoutItem QGraphicsGridLayout.itemAt (self, int index)

Reimplemented from QGraphicsLayout.itemAt().

Returns the layout item at index, or 0 if there is no layout item at this index.

QGraphicsGridLayout.removeAt (self, int index)

Reimplemented from QGraphicsLayout.removeAt().

Removes the layout item at index without destroying it. Ownership of the item is transferred to the caller.

See also addItem().

QGraphicsGridLayout.removeItem (self, QGraphicsLayoutItem item)

The item argument

Removes the layout item item without destroying it. Ownership of the item is transferred to the caller.

This function was introduced in Qt 4.8.

See also addItem().

Qt.Alignment QGraphicsGridLayout.rowAlignment (self, int row)

Returns the alignment of row.

See also setRowAlignment().

int QGraphicsGridLayout.rowCount (self)

Returns the number of rows in the grid layout. This is always one more than the index of the last row that is occupied by a layout item (empty rows are counted except for those at the end).

float QGraphicsGridLayout.rowMaximumHeight (self, int row)

Returns the maximum height for row, row.

See also setRowMaximumHeight().

float QGraphicsGridLayout.rowMinimumHeight (self, int row)

Returns the minimum height for row, row.

See also setRowMinimumHeight().

float QGraphicsGridLayout.rowPreferredHeight (self, int row)

Returns the preferred height for row, row.

See also setRowPreferredHeight().

float QGraphicsGridLayout.rowSpacing (self, int row)

Returns the row spacing for row.

See also setRowSpacing().

int QGraphicsGridLayout.rowStretchFactor (self, int row)

Returns the stretch factor for row.

See also setRowStretchFactor().

QGraphicsGridLayout.setAlignment (self, QGraphicsLayoutItem item, Qt.Alignment alignment)

Sets the alignment for item to alignment.

See also alignment().

QGraphicsGridLayout.setColumnAlignment (self, int column, Qt.Alignment alignment)

Sets the alignment for column to alignment.

See also columnAlignment().

QGraphicsGridLayout.setColumnFixedWidth (self, int column, float width)

Sets the fixed width of column to width.

QGraphicsGridLayout.setColumnMaximumWidth (self, int column, float width)

Sets the maximum width of column to width.

See also columnMaximumWidth().

QGraphicsGridLayout.setColumnMinimumWidth (self, int column, float width)

Sets the minimum width for column to width.

See also columnMinimumWidth().

QGraphicsGridLayout.setColumnPreferredWidth (self, int column, float width)

Sets the preferred width for column to width.

See also columnPreferredWidth().

QGraphicsGridLayout.setColumnSpacing (self, int column, float spacing)

Sets the spacing for column to spacing.

See also columnSpacing().

QGraphicsGridLayout.setColumnStretchFactor (self, int column, int stretch)

Sets the stretch factor for column to stretch.

See also columnStretchFactor().

QGraphicsGridLayout.setGeometry (self, QRectF rect)

Reimplemented from QGraphicsLayoutItem.setGeometry().

Sets the bounding geometry of the grid layout to rect.

QGraphicsGridLayout.setHorizontalSpacing (self, float spacing)

Sets the default horizontal spacing for the grid layout to spacing.

See also horizontalSpacing().

QGraphicsGridLayout.setRowAlignment (self, int row, Qt.Alignment alignment)

Sets the alignment of row to alignment.

See also rowAlignment().

QGraphicsGridLayout.setRowFixedHeight (self, int row, float height)

Sets the fixed height for row, row, to height.

QGraphicsGridLayout.setRowMaximumHeight (self, int row, float height)

Sets the maximum height for row, row, to height.

See also rowMaximumHeight().

QGraphicsGridLayout.setRowMinimumHeight (self, int row, float height)

Sets the minimum height for row, row, to height.

See also rowMinimumHeight().

QGraphicsGridLayout.setRowPreferredHeight (self, int row, float height)

Sets the preferred height for row, row, to height.

See also rowPreferredHeight().

QGraphicsGridLayout.setRowSpacing (self, int row, float spacing)

Sets the spacing for row to spacing.

See also rowSpacing().

QGraphicsGridLayout.setRowStretchFactor (self, int row, int stretch)

Sets the stretch factor for row to stretch.

See also rowStretchFactor().

QGraphicsGridLayout.setSpacing (self, float spacing)

Sets the grid layout's default spacing, both vertical and horizontal, to spacing.

See also rowSpacing() and columnSpacing().

QGraphicsGridLayout.setVerticalSpacing (self, float spacing)

Sets the default vertical spacing for the grid layout to spacing.

See also verticalSpacing().

QSizeF QGraphicsGridLayout.sizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())

Reimplemented from QGraphicsLayoutItem.sizeHint().

float QGraphicsGridLayout.verticalSpacing (self)

Returns the default vertical spacing for the grid layout.

See also setVerticalSpacing().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsitem-graphicsitemflags.html0000644000076500000240000001535412536324505024712 0ustar philstaff00000000000000 QGraphicsItem.GraphicsItemFlags Class Reference
  Home · All Classes · Modules

QGraphicsItem.GraphicsItemFlags Class Reference
[QtGui module]

Methods

Special Methods

  • GraphicsItemFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, GraphicsItemFlags f)
  • GraphicsItemFlags __iand__ (self, int mask)
  • int __int__ (self)
  • GraphicsItemFlags __invert__ (self)
  • GraphicsItemFlags __ior__ (self, GraphicsItemFlags f)
  • GraphicsItemFlags __ixor__ (self, GraphicsItemFlags f)
  • bool __ne__ (self, GraphicsItemFlags f)
  • GraphicsItemFlags __or__ (self, GraphicsItemFlags f)
  • GraphicsItemFlags __or__ (self, int f)
  • GraphicsItemFlags __xor__ (self, GraphicsItemFlags f)
  • GraphicsItemFlags __xor__ (self, int f)

Detailed Description

GraphicsItemFlag may be used whenever GraphicsItemFlags is expected.


Method Documentation

GraphicsItemFlags.__init__ (self, GraphicsItemFlags)

GraphicsItemFlags.__init__ (self, int)

GraphicsItemFlags.__init__ (self)

GraphicsItemFlags GraphicsItemFlags.__and__ (self, int mask)

int GraphicsItemFlags.__bool__ (self)

bool GraphicsItemFlags.__eq__ (self, GraphicsItemFlags f)

GraphicsItemFlags GraphicsItemFlags.__iand__ (self, int mask)

int GraphicsItemFlags.__int__ (self)

GraphicsItemFlags GraphicsItemFlags.__invert__ (self)

GraphicsItemFlags GraphicsItemFlags.__ior__ (self, GraphicsItemFlags f)

GraphicsItemFlags GraphicsItemFlags.__ixor__ (self, GraphicsItemFlags f)

bool GraphicsItemFlags.__ne__ (self, GraphicsItemFlags f)

GraphicsItemFlags GraphicsItemFlags.__or__ (self, GraphicsItemFlags f)

GraphicsItemFlags GraphicsItemFlags.__or__ (self, int f)

GraphicsItemFlags GraphicsItemFlags.__xor__ (self, GraphicsItemFlags f)

GraphicsItemFlags GraphicsItemFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsitem.html0000644000076500000240000076226112536324505021226 0ustar philstaff00000000000000 QGraphicsItem Class Reference
  Home · All Classes · Modules

QGraphicsItem Class Reference
[QtGui module]

The QGraphicsItem class is the base class for all graphical items in a QGraphicsScene. More...

Inherited by QAbstractGraphicsShapeItem, QGraphicsItemGroup, QGraphicsLineItem, QGraphicsObject and QGraphicsPixmapItem.

Types

  • enum CacheMode { NoCache, ItemCoordinateCache, DeviceCoordinateCache }
  • enum GraphicsItemChange { ItemPositionChange, ItemMatrixChange, ItemVisibleChange, ItemEnabledChange, ..., ItemTransformOriginPointHasChanged }
  • enum GraphicsItemFlag { ItemIsMovable, ItemIsSelectable, ItemIsFocusable, ItemClipsToShape, ..., ItemSendsScenePositionChanges }
  • enum PanelModality { NonModal, PanelModal, SceneModal }

Methods

Static Members


Detailed Description

The QGraphicsItem class is the base class for all graphical items in a QGraphicsScene.

It provides a light-weight foundation for writing your own custom items. This includes defining the item's geometry, collision detection, its painting implementation and item interaction through its event handlers. QGraphicsItem is part of the Graphics View Framework

For convenience, Qt provides a set of standard graphics items for the most common shapes. These are:

All of an item's geometric information is based on its local coordinate system. The item's position, pos(), is the only function that does not operate in local coordinates, as it returns a position in parent coordinates. The Graphics View Coordinate System describes the coordinate system in detail.

You can set whether an item should be visible (i.e., drawn, and accepting events), by calling setVisible(). Hiding an item will also hide its children. Similarly, you can enable or disable an item by calling setEnabled(). If you disable an item, all its children will also be disabled. By default, items are both visible and enabled. To toggle whether an item is selected or not, first enable selection by setting the ItemIsSelectable flag, and then call setSelected(). Normally, selection is toggled by the scene, as a result of user interaction.

To write your own graphics item, you first create a subclass of QGraphicsItem, and then start by implementing its two pure virtual public functions: boundingRect(), which returns an estimate of the area painted by the item, and paint(), which implements the actual painting. For example:

 class SimpleItem : public QGraphicsItem
 {
 public:
     QRectF boundingRect() const
     {
         qreal penWidth = 1;
         return QRectF(-10 - penWidth / 2, -10 - penWidth / 2,
                       20 + penWidth, 20 + penWidth);
     }

     void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
                QWidget *widget)
     {
         painter->drawRoundedRect(-10, -10, 20, 20, 5, 5);
     }
 };

The boundingRect() function has many different purposes. QGraphicsScene bases its item index on boundingRect(), and QGraphicsView uses it both for culling invisible items, and for determining the area that needs to be recomposed when drawing overlapping items. In addition, QGraphicsItem's collision detection mechanisms use boundingRect() to provide an efficient cut-off. The fine grained collision algorithm in collidesWithItem() is based on calling shape(), which returns an accurate outline of the item's shape as a QPainterPath.

QGraphicsScene expects all items boundingRect() and shape() to remain unchanged unless it is notified. If you want to change an item's geometry in any way, you must first call prepareGeometryChange() to allow QGraphicsScene to update its bookkeeping.

Collision detection can be done in two ways:

  1. Reimplement shape() to return an accurate shape for your item, and rely on the default implementation of collidesWithItem() to do shape-shape intersection. This can be rather expensive if the shapes are complex.
  2. Reimplement collidesWithItem() to provide your own custom item and shape collision algorithm.

The contains() function can be called to determine whether the item contains a point or not. This function can also be reimplemented by the item. The default behavior of contains() is based on calling shape().

Items can contain other items, and also be contained by other items. All items can have a parent item and a list of children. Unless the item has no parent, its position is in parent coordinates (i.e., the parent's local coordinates). Parent items propagate both their position and their transformation to all children.

Transformations

QGraphicsItem supports projective transformations in addition to its base position, pos(). There are several ways to change an item's transformation. For simple transformations, you can call either of the convenience functions setRotation() or setScale(), or you can pass any transformation matrix to setTransform(). For advanced transformation control you also have the option of setting several combined transformations by calling setTransformations().

Item transformations accumulate from parent to child, so if both a parent and child item are rotated 90 degrees, the child's total transformation will be 180 degrees. Similarly, if the item's parent is scaled to 2x its original size, its children will also be twice as large. An item's transformation does not affect its own local geometry; all geometry functions (e.g., contains(), update(), and all the mapping functions) still operate in local coordinates. For convenience, QGraphicsItem provides the functions sceneTransform(), which returns the item's total transformation matrix (including its position and all parents' positions and transformations), and scenePos(), which returns its position in scene coordinates. To reset an item's matrix, call resetTransform().

Certain transformation operations produce a different outcome depending on the order in which they are applied. For example, if you scale an transform, and then rotate it, you may get a different result than if the transform was rotated first. However, the order you set the transformation properties on QGraphicsItem does not affect the resulting transformation; QGraphicsItem always applies the properties in a fixed, defined order:

Painting

The paint() function is called by QGraphicsView to paint the item's contents. The item has no background or default fill of its own; whatever is behind the item will shine through all areas that are not explicitly painted in this function. You can call update() to schedule a repaint, optionally passing the rectangle that needs a repaint. Depending on whether or not the item is visible in a view, the item may or may not be repainted; there is no equivalent to QWidget.repaint() in QGraphicsItem.

Items are painted by the view, starting with the parent items and then drawing children, in ascending stacking order. You can set an item's stacking order by calling setZValue(), and test it by calling zValue(), where items with low z-values are painted before items with high z-values. Stacking order applies to sibling items; parents are always drawn before their children.

Sorting

All items are drawn in a defined, stable order, and this same order decides which items will receive mouse input first when you click on the scene. Normally you don't have to worry about sorting, as the items follow a "natural order", following the logical structure of the scene.

An item's children are stacked on top of the parent, and sibling items are stacked by insertion order (i.e., in the same order that they were either added to the scene, or added to the same parent). If you add item A, and then B, then B will be on top of A. If you then add C, the items' stacking order will be A, then B, then C.

This example shows the stacking order of all limbs of the robot from the Drag and Drop Robot example. The torso is the root item (all other items are children or descendants of the torso), so it is drawn first. Next, the head is drawn, as it is the first item in the torso's list of children. Then the upper left arm is drawn. As the lower arm is a child of the upper arm, the lower arm is then drawn, followed by the upper arm's next sibling, which is the upper right arm, and so on.

For advanced users, there are ways to alter how your items are sorted:

  • You can call setZValue() on an item to explicitly stack it on top of, or under, other sibling items. The default Z value for an item is 0. Items with the same Z value are stacked by insertion order.
  • You can call stackBefore() to reorder the list of children. This will directly modify the insertion order.
  • You can set the ItemStacksBehindParent flag to stack a child item behind its parent.

The stacking order of two sibling items also counts for each item's children and descendant items. So if one item is on top of another, then all its children will also be on top of all the other item's children as well.

Events

QGraphicsItem receives events from QGraphicsScene through the virtual function sceneEvent(). This function distributes the most common events to a set of convenience event handlers:

You can filter events for any other item by installing event filters. This functionality is separate from Qt's regular event filters (see QObject.installEventFilter()), which only work on subclasses of QObject. After installing your item as an event filter for another item by calling installSceneEventFilter(), the filtered events will be received by the virtual function sceneEventFilter(). You can remove item event filters by calling removeSceneEventFilter().

Custom Data

Sometimes it's useful to register custom data with an item, be it a custom item, or a standard item. You can call setData() on any item to store data in it using a key-value pair (the key being an integer, and the value is a QVariant). To get custom data from an item, call data(). This functionality is completely untouched by Qt itself; it is provided for the user's convenience.


Type Documentation

QGraphicsItem.CacheMode

This enum describes QGraphicsItem's cache modes. Caching is used to speed up rendering by allocating and rendering to an off-screen pixel buffer, which can be reused when the item requires redrawing. For some paint devices, the cache is stored directly in graphics memory, which makes rendering very quick.

Constant Value Description
QGraphicsItem.NoCache 0 The default; all item caching is disabled. QGraphicsItem.paint() is called every time the item needs redrawing.
QGraphicsItem.ItemCoordinateCache 1 Caching is enabled for the item's logical (local) coordinate system. QGraphicsItem creates an off-screen pixel buffer with a configurable size / resolution that you can pass to QGraphicsItem.setCacheMode(). Rendering quality will typically degrade, depending on the resolution of the cache and the item transformation. The first time the item is redrawn, it will render itself into the cache, and the cache is then reused for every subsequent expose. The cache is also reused as the item is transformed. To adjust the resolution of the cache, you can call setCacheMode() again.
QGraphicsItem.DeviceCoordinateCache 2 Caching is enabled at the paint device level, in device coordinates. This mode is for items that can move, but are not rotated, scaled or sheared. If the item is transformed directly or indirectly, the cache will be regenerated automatically. Unlike ItemCoordinateCacheMode, DeviceCoordinateCache always renders at maximum quality.

This enum was introduced or modified in Qt 4.4.

See also QGraphicsItem.setCacheMode().

QGraphicsItem.GraphicsItemChange

This enum describes the state changes that are notified by QGraphicsItem.itemChange(). The notifications are sent as the state changes, and in some cases, adjustments can be made (see the documentation for each change for details).

Note: Be careful with calling functions on the QGraphicsItem itself inside itemChange(), as certain function calls can lead to unwanted recursion. For example, you cannot call setPos() in itemChange() on an ItemPositionChange notification, as the setPos() function will again call itemChange(ItemPositionChange). Instead, you can return the new, adjusted position from itemChange().

Constant Value Description
QGraphicsItem.ItemEnabledChange 3 The item's enabled state changes. If the item is presently enabled, it will become disabled, and vice verca. The value argument is the new enabled state (i.e., true or false). Do not call setEnabled() in itemChange() as this notification is delivered. Instead, you can return the new state from itemChange().
QGraphicsItem.ItemEnabledHasChanged 13 The item's enabled state has changed. The value argument is the new enabled state (i.e., true or false). Do not call setEnabled() in itemChange() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemMatrixChange 1 The item's affine transformation matrix is changing. This value is obsolete; you can use ItemTransformChange instead.
QGraphicsItem.ItemPositionChange 0 The item's position changes. This notification is sent if the ItemSendsGeometryChanges flag is enabled, and when the item's local position changes, relative to its parent (i.e., as a result of calling setPos() or moveBy()). The value argument is the new position (i.e., a QPointF). You can call pos() to get the original position. Do not call setPos() or moveBy() in itemChange() as this notification is delivered; instead, you can return the new, adjusted position from itemChange(). After this notification, QGraphicsItem immediately sends the ItemPositionHasChanged notification if the position changed.
QGraphicsItem.ItemPositionHasChanged 9 The item's position has changed. This notification is sent if the ItemSendsGeometryChanges flag is enabled, and after the item's local position, relative to its parent, has changed. The value argument is the new position (the same as pos()), and QGraphicsItem ignores the return value for this notification (i.e., a read-only notification).
QGraphicsItem.ItemTransformChange 8 The item's transformation matrix changes. This notification is send if the ItemSendsGeometryChanges flag is enabled, and when the item's local transformation matrix changes (i.e., as a result of calling setTransform(). The value argument is the new matrix (i.e., a QTransform); to get the old matrix, call transform(). Do not call setTransform() or set any of the transformation properties in itemChange() as this notification is delivered; instead, you can return the new matrix from itemChange(). This notification is not sent if you change the transformation properties.
QGraphicsItem.ItemTransformHasChanged 10 The item's transformation matrix has changed either because setTransform is called, or one of the transformation properties is changed. This notification is sent if the ItemSendsGeometryChanges flag is enabled, and after the item's local transformation matrix has changed. The value argument is the new matrix (same as transform()), and QGraphicsItem ignores the return value for this notification (i.e., a read-only notification).
QGraphicsItem.ItemRotationChange 28 The item's rotation property changes. This notification is sent if the ItemSendsGeometryChanges flag is enabled, and when the item's rotation property changes (i.e., as a result of calling setRotation()). The value argument is the new rotation (i.e., a double); to get the old rotation, call rotation(). Do not call setRotation() in itemChange() as this notification is delivered; instead, you can return the new rotation from itemChange().
QGraphicsItem.ItemRotationHasChanged 29 The item's rotation property has changed. This notification is sent if the ItemSendsGeometryChanges flag is enabled, and after the item's rotation property has changed. The value argument is the new rotation (i.e., a double), and QGraphicsItem ignores the return value for this notification (i.e., a read-only notification). Do not call setRotation() in itemChange() as this notification is delivered.
QGraphicsItem.ItemScaleChange 30 The item's scale property changes. This notification is sent if the ItemSendsGeometryChanges flag is enabled, and when the item's scale property changes (i.e., as a result of calling setScale()). The value argument is the new scale (i.e., a double); to get the old scale, call scale(). Do not call setScale() in itemChange() as this notification is delivered; instead, you can return the new scale from itemChange().
QGraphicsItem.ItemScaleHasChanged 31 The item's scale property has changed. This notification is sent if the ItemSendsGeometryChanges flag is enabled, and after the item's scale property has changed. The value argument is the new scale (i.e., a double), and QGraphicsItem ignores the return value for this notification (i.e., a read-only notification). Do not call setScale() in itemChange() as this notification is delivered.
QGraphicsItem.ItemTransformOriginPointChange 32 The item's transform origin point property changes. This notification is sent if the ItemSendsGeometryChanges flag is enabled, and when the item's transform origin point property changes (i.e., as a result of calling setTransformOriginPoint()). The value argument is the new origin point (i.e., a QPointF); to get the old origin point, call transformOriginPoint(). Do not call setTransformOriginPoint() in itemChange() as this notification is delivered; instead, you can return the new transform origin point from itemChange().
QGraphicsItem.ItemTransformOriginPointHasChanged 33 The item's transform origin point property has changed. This notification is sent if the ItemSendsGeometryChanges flag is enabled, and after the item's transform origin point property has changed. The value argument is the new origin point (i.e., a QPointF), and QGraphicsItem ignores the return value for this notification (i.e., a read-only notification). Do not call setTransformOriginPoint() in itemChange() as this notification is delivered.
QGraphicsItem.ItemSelectedChange 4 The item's selected state changes. If the item is presently selected, it will become unselected, and vice verca. The value argument is the new selected state (i.e., true or false). Do not call setSelected() in itemChange() as this notification is delivered; instead, you can return the new selected state from itemChange().
QGraphicsItem.ItemSelectedHasChanged 14 The item's selected state has changed. The value argument is the new selected state (i.e., true or false). Do not call setSelected() in itemChange() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemVisibleChange 2 The item's visible state changes. If the item is presently visible, it will become invisible, and vice verca. The value argument is the new visible state (i.e., true or false). Do not call setVisible() in itemChange() as this notification is delivered; instead, you can return the new visible state from itemChange().
QGraphicsItem.ItemVisibleHasChanged 12 The item's visible state has changed. The value argument is the new visible state (i.e., true or false). Do not call setVisible() in itemChange() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemParentChange 5 The item's parent changes. The value argument is the new parent item (i.e., a QGraphicsItem pointer). Do not call setParentItem() in itemChange() as this notification is delivered; instead, you can return the new parent from itemChange().
QGraphicsItem.ItemParentHasChanged 15 The item's parent has changed. The value argument is the new parent (i.e., a pointer to a QGraphicsItem). Do not call setParentItem() in itemChange() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemChildAddedChange 6 A child is added to this item. The value argument is the new child item (i.e., a QGraphicsItem pointer). Do not pass this item to any item's setParentItem() function as this notification is delivered. The return value is unused; you cannot adjust anything in this notification. Note that the new child might not be fully constructed when this notification is sent; calling pure virtual functions on the child can lead to a crash.
QGraphicsItem.ItemChildRemovedChange 7 A child is removed from this item. The value argument is the child item that is about to be removed (i.e., a QGraphicsItem pointer). The return value is unused; you cannot adjust anything in this notification.
QGraphicsItem.ItemSceneChange 11 The item is moved to a new scene. This notification is also sent when the item is added to its initial scene, and when it is removed. The item's scene() is the old scene (or 0 if the item has not been added to a scene yet). The value argument is the new scene (i.e., a QGraphicsScene pointer), or a null pointer if the item is removed from a scene. Do not override this change by passing this item to QGraphicsScene.addItem() as this notification is delivered; instead, you can return the new scene from itemChange(). Use this feature with caution; objecting to a scene change can quickly lead to unwanted recursion.
QGraphicsItem.ItemSceneHasChanged 16 The item's scene has changed. The item's scene() is the new scene. This notification is also sent when the item is added to its initial scene, and when it is removed.The value argument is the new scene (i.e., a pointer to a QGraphicsScene). Do not call setScene() in itemChange() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemCursorChange 17 The item's cursor changes. The value argument is the new cursor (i.e., a QCursor). Do not call setCursor() in itemChange() as this notification is delivered. Instead, you can return a new cursor from itemChange().
QGraphicsItem.ItemCursorHasChanged 18 The item's cursor has changed. The value argument is the new cursor (i.e., a QCursor). Do not call setCursor() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemToolTipChange 19 The item's tooltip changes. The value argument is the new tooltip (i.e., a QToolTip). Do not call setToolTip() in itemChange() as this notification is delivered. Instead, you can return a new tooltip from itemChange().
QGraphicsItem.ItemToolTipHasChanged 20 The item's tooltip has changed. The value argument is the new tooltip (i.e., a QToolTip). Do not call setToolTip() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemFlagsChange 21 The item's flags change. The value argument is the new flags (i.e., a quint32). Do not call setFlags() in itemChange() as this notification is delivered. Instead, you can return the new flags from itemChange().
QGraphicsItem.ItemFlagsHaveChanged 22 The item's flags have changed. The value argument is the new flags (i.e., a quint32). Do not call setFlags() in itemChange() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemZValueChange 23 The item's Z-value changes. The value argument is the new Z-value (i.e., a double). Do not call setZValue() in itemChange() as this notification is delivered. Instead, you can return a new Z-value from itemChange().
QGraphicsItem.ItemZValueHasChanged 24 The item's Z-value has changed. The value argument is the new Z-value (i.e., a double). Do not call setZValue() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemOpacityChange 25 The item's opacity changes. The value argument is the new opacity (i.e., a double). Do not call setOpacity() in itemChange() as this notification is delivered. Instead, you can return a new opacity from itemChange().
QGraphicsItem.ItemOpacityHasChanged 26 The item's opacity has changed. The value argument is the new opacity (i.e., a double). Do not call setOpacity() as this notification is delivered. The return value is ignored.
QGraphicsItem.ItemScenePositionHasChanged 27 The item's scene position has changed. This notification is sent if the ItemSendsScenePositionChanges flag is enabled, and after the item's scene position has changed (i.e., the position or transformation of the item itself or the position or transformation of any ancestor has changed). The value argument is the new scene position (the same as scenePos()), and QGraphicsItem ignores the return value for this notification (i.e., a read-only notification).

QGraphicsItem.GraphicsItemFlag

This enum describes different flags that you can set on an item to toggle different features in the item's behavior.

All flags are disabled by default.

Constant Value Description
QGraphicsItem.ItemIsMovable 0x1 The item supports interactive movement using the mouse. By clicking on the item and then dragging, the item will move together with the mouse cursor. If the item has children, all children are also moved. If the item is part of a selection, all selected items are also moved. This feature is provided as a convenience through the base implementation of QGraphicsItem's mouse event handlers.
QGraphicsItem.ItemIsSelectable 0x2 The item supports selection. Enabling this feature will enable setSelected() to toggle selection for the item. It will also let the item be selected automatically as a result of calling QGraphicsScene.setSelectionArea(), by clicking on an item, or by using rubber band selection in QGraphicsView.
QGraphicsItem.ItemIsFocusable 0x4 The item supports keyboard input focus (i.e., it is an input item). Enabling this flag will allow the item to accept focus, which again allows the delivery of key events to QGraphicsItem.keyPressEvent() and QGraphicsItem.keyReleaseEvent().
QGraphicsItem.ItemClipsToShape 0x8 The item clips to its own shape. The item cannot draw or receive mouse, tablet, drag and drop or hover events outside its shape. It is disabled by default. This behavior is enforced by QGraphicsView.drawItems() or QGraphicsScene.drawItems(). This flag was introduced in Qt 4.3.
QGraphicsItem.ItemClipsChildrenToShape 0x10 The item clips the painting of all its descendants to its own shape. Items that are either direct or indirect children of this item cannot draw outside this item's shape. By default, this flag is disabled; children can draw anywhere. This behavior is enforced by QGraphicsView.drawItems() or QGraphicsScene.drawItems(). This flag was introduced in Qt 4.3.
QGraphicsItem.ItemIgnoresTransformations 0x20 The item ignores inherited transformations (i.e., its position is still anchored to its parent, but the parent or view rotation, zoom or shear transformations are ignored). This flag is useful for keeping text label items horizontal and unscaled, so they will still be readable if the view is transformed. When set, the item's view geometry and scene geometry will be maintained separately. You must call deviceTransform() to map coordinates and detect collisions in the view. By default, this flag is disabled. This flag was introduced in Qt 4.3. Note: With this flag set you can still scale the item itself, and that scale transformation will influence the item's children.
QGraphicsItem.ItemIgnoresParentOpacity 0x40 The item ignores its parent's opacity. The item's effective opacity is the same as its own; it does not combine with the parent's opacity. This flags allows your item to keep its absolute opacity even if the parent is semitransparent. This flag was introduced in Qt 4.5.
QGraphicsItem.ItemDoesntPropagateOpacityToChildren 0x80 The item doesn't propagate its opacity to its children. This flag allows you to create a semitransparent item that does not affect the opacity of its children. This flag was introduced in Qt 4.5.
QGraphicsItem.ItemStacksBehindParent 0x100 The item is stacked behind its parent. By default, child items are stacked on top of the parent item. But setting this flag, the child will be stacked behind it. This flag is useful for drop shadow effects and for decoration objects that follow the parent item's geometry without drawing on top of it. This flag was introduced in Qt 4.5.
QGraphicsItem.ItemUsesExtendedStyleOption 0x200 The item makes use of either exposedRect or matrix(obsolete) in QStyleOptionGraphicsItem. By default, the exposedRect is initialized to the item's boundingRect() and the matrix(obsolete) is untransformed. You can enable this flag for the style options to be set up with more fine-grained values. Note that QStyleOptionGraphicsItem.levelOfDetail(obsolete) is unaffected by this flag and always initialized to 1. Use QStyleOptionGraphicsItem.levelOfDetailFromTransform() if you need a higher value. This flag was introduced in Qt 4.6.
QGraphicsItem.ItemHasNoContents 0x400 The item does not paint anything (i.e., calling paint() on the item has no effect). You should set this flag on items that do not need to be painted to ensure that Graphics View avoids unnecessary painting preparations. This flag was introduced in Qt 4.6.
QGraphicsItem.ItemSendsGeometryChanges 0x800 The item enables itemChange() notifications for ItemPositionChange, ItemPositionHasChanged, ItemMatrixChange, ItemTransformChange, ItemTransformHasChanged, ItemRotationChange, ItemRotationHasChanged, ItemScaleChange, ItemScaleHasChanged, ItemTransformOriginPointChange, and ItemTransformOriginPointHasChanged. For performance reasons, these notifications are disabled by default. You must enable this flag to receive notifications for position and transform changes. This flag was introduced in Qt 4.6.
QGraphicsItem.ItemAcceptsInputMethod 0x1000 The item supports input methods typically used for Asian languages. This flag was introduced in Qt 4.6.
QGraphicsItem.ItemNegativeZStacksBehindParent 0x2000 The item automatically stacks behind it's parent if it's z-value is negative. This flag enables setZValue() to toggle ItemStacksBehindParent. This flag was introduced in Qt 4.6.
QGraphicsItem.ItemIsPanel 0x4000 The item is a panel. A panel provides activation and contained focus handling. Only one panel can be active at a time (see QGraphicsItem.isActive()). When no panel is active, QGraphicsScene activates all non-panel items. Window items (i.e., QGraphicsItem.isWindow() returns true) are panels. This flag was introduced in Qt 4.6.
QGraphicsItem.ItemSendsScenePositionChanges 0x10000 The item enables itemChange() notifications for ItemScenePositionHasChanged. For performance reasons, these notifications are disabled by default. You must enable this flag to receive notifications for scene position changes. This flag was introduced in Qt 4.6.

The GraphicsItemFlags type is a typedef for QFlags<GraphicsItemFlag>. It stores an OR combination of GraphicsItemFlag values.

QGraphicsItem.PanelModality

This enum specifies the behavior of a modal panel. A modal panel is one that blocks input to other panels. Note that items that are children of a modal panel are not blocked.

The values are:

Constant Value Description
QGraphicsItem.NonModal 0 The panel is not modal and does not block input to other panels. This is the default value for panels.
QGraphicsItem.PanelModal 1 The panel is modal to a single item hierarchy and blocks input to its parent pane, all grandparent panels, and all siblings of its parent and grandparent panels.
QGraphicsItem.SceneModal 2 The window is modal to the entire scene and blocks input to all panels.

This enum was introduced or modified in Qt 4.6.

See also QGraphicsItem.setPanelModality(), QGraphicsItem.panelModality(), and QGraphicsItem.ItemIsPanel.


Method Documentation

QGraphicsItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsItem with the given parent item. It does not modify the parent object returned by QObject.parent().

If parent is 0, you can add the item to a scene by calling QGraphicsScene.addItem(). The item will then become a top-level item.

See also QGraphicsScene.addItem() and setParentItem().

bool QGraphicsItem.acceptDrops (self)

Returns true if this item can accept drag and drop events; otherwise, returns false. By default, items do not accept drag and drop events; items are transparent to drag and drop.

See also setAcceptDrops().

Qt.MouseButtons QGraphicsItem.acceptedMouseButtons (self)

Returns the mouse buttons that this item accepts mouse events for. By default, all mouse buttons are accepted.

If an item accepts a mouse button, it will become the mouse grabber item when a mouse press event is delivered for that mouse button. However, if the item does not accept the button, QGraphicsScene will forward the mouse events to the first item beneath it that does.

See also setAcceptedMouseButtons() and mousePressEvent().

bool QGraphicsItem.acceptHoverEvents (self)

Returns true if an item accepts hover events (QGraphicsSceneHoverEvent); otherwise, returns false. By default, items do not accept hover events.

This function was introduced in Qt 4.4.

See also setAcceptHoverEvents() and setAcceptedMouseButtons().

bool QGraphicsItem.acceptsHoverEvents (self)

bool QGraphicsItem.acceptTouchEvents (self)

Returns true if an item accepts touch events; otherwise, returns false. By default, items do not accept touch events.

This function was introduced in Qt 4.6.

See also setAcceptTouchEvents().

QGraphicsItem.advance (self, int phase)

This virtual function is called twice for all items by the QGraphicsScene.advance() slot. In the first phase, all items are called with phase == 0, indicating that items on the scene are about to advance, and then all items are called with phase == 1. Reimplement this function to update your item if you need simple scene-controlled animation.

The default implementation does nothing.

For individual item animation, an alternative to this function is to either use QGraphicsItemAnimation, or to multiple-inherit from QObject and QGraphicsItem, and animate your item using QObject.startTimer() and QObject.timerEvent().

See also QGraphicsItemAnimation and QTimeLine.

QRectF QGraphicsItem.boundingRect (self)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function defines the outer bounds of the item as a rectangle; all painting must be restricted to inside an item's bounding rect. QGraphicsView uses this to determine whether the item requires redrawing.

Although the item's shape can be arbitrary, the bounding rect is always rectangular, and it is unaffected by the items' transformation.

If you want to change the item's bounding rectangle, you must first call prepareGeometryChange(). This notifies the scene of the imminent change, so that its can update its item geometry index; otherwise, the scene will be unaware of the item's new geometry, and the results are undefined (typically, rendering artifacts are left around in the view).

Reimplement this function to let QGraphicsView determine what parts of the widget, if any, need to be redrawn.

Note: For shapes that paint an outline / stroke, it is important to include half the pen width in the bounding rect. It is not necessary to compensate for antialiasing, though.

Example:

 QRectF CircleItem.boundingRect() const
 {
     qreal penWidth = 1;
     return QRectF(-radius - penWidth / 2, -radius - penWidth / 2,
                   diameter + penWidth, diameter + penWidth);
 }

See also boundingRegion(), shape(), contains(), The Graphics View Coordinate System, and prepareGeometryChange().

QRegion QGraphicsItem.boundingRegion (self, QTransform itemToDeviceTransform)

Returns the bounding region for this item. The coordinate space of the returned region depends on itemToDeviceTransform. If you pass an identity QTransform as a parameter, this function will return a local coordinate region.

The bounding region describes a coarse outline of the item's visual contents. Although it's expensive to calculate, it's also more precise than boundingRect(), and it can help to avoid unnecessary repainting when an item is updated. This is particularly efficient for thin items (e.g., lines or simple polygons). You can tune the granularity for the bounding region by calling setBoundingRegionGranularity(). The default granularity is 0; in which the item's bounding region is the same as its bounding rect.

itemToDeviceTransform is the transformation from item coordinates to device coordinates. If you want this function to return a QRegion in scene coordinates, you can pass sceneTransform() as an argument.

This function was introduced in Qt 4.4.

See also boundingRegionGranularity().

float QGraphicsItem.boundingRegionGranularity (self)

Returns the item's bounding region granularity; a value between and including 0 and 1. The default value is 0 (i.e., the lowest granularity, where the bounding region corresponds to the item's bounding rectangle).

This function was introduced in Qt 4.4.

See also setBoundingRegionGranularity().

CacheMode QGraphicsItem.cacheMode (self)

Returns the cache mode for this item. The default mode is NoCache (i.e., cache is disabled and all painting is immediate).

This function was introduced in Qt 4.4.

See also setCacheMode().

list-of-QGraphicsItem QGraphicsItem.childItems (self)

Returns a list of this item's children.

The items are sorted by stacking order. This takes into account both the items' insertion order and their Z-values.

This function was introduced in Qt 4.4.

See also setParentItem(), zValue(), and Sorting.

QRectF QGraphicsItem.childrenBoundingRect (self)

Returns the bounding rect of this item's descendants (i.e., its children, their children, etc.) in local coordinates. The rectangle will contain all descendants after they have been mapped to local coordinates. If the item has no children, this function returns an empty QRectF.

This does not include this item's own bounding rect; it only returns its descendants' accumulated bounding rect. If you need to include this item's bounding rect, you can add boundingRect() to childrenBoundingRect() using QRectF.operator|().

This function is linear in complexity; it determines the size of the returned bounding rect by iterating through all descendants.

See also boundingRect() and sceneBoundingRect().

QGraphicsItem.clearFocus (self)

Takes keyboard input focus from the item.

If it has focus, a focus out event is sent to this item to tell it that it is about to lose the focus.

Only items that set the ItemIsFocusable flag, or widgets that set an appropriate focus policy, can accept keyboard focus.

See also setFocus(), hasFocus(), and QGraphicsWidget.focusPolicy.

QPainterPath QGraphicsItem.clipPath (self)

Returns this item's clip path, or an empty QPainterPath if this item is not clipped. The clip path constrains the item's appearance and interaction (i.e., restricts the area the item can draw, and it also restricts the area that the item receives events).

You can enable clipping by setting the ItemClipsToShape or ItemClipsChildrenToShape flags. The item's clip path is calculated by intersecting all clipping ancestors' shapes. If the item sets ItemClipsToShape, the final clip is intersected with the item's own shape.

Note: Clipping introduces a performance penalty for all items involved; you should generally avoid using clipping if you can (e.g., if your items always draw inside boundingRect() or shape() boundaries, clipping is not necessary).

This function was introduced in Qt 4.5.

See also isClipped(), shape(), and setFlags().

bool QGraphicsItem.collidesWithItem (self, QGraphicsItem other, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

Returns true if this item collides with other; otherwise returns false.

The mode is applied to other, and the resulting shape or bounding rectangle is then compared to this item's shape. The default value for mode is Qt.IntersectsItemShape; other collides with this item if it either intersects, contains, or is contained by this item's shape (see Qt.ItemSelectionMode for details).

The default implementation is based on shape intersection, and it calls shape() on both items. Because the complexity of arbitrary shape-shape intersection grows with an order of magnitude when the shapes are complex, this operation can be noticably time consuming. You have the option of reimplementing this function in a subclass of QGraphicsItem to provide a custom algorithm. This allows you to make use of natural constraints in the shapes of your own items, in order to improve the performance of the collision detection. For instance, two untransformed perfectly circular items' collision can be determined very efficiently by comparing their positions and radii.

Keep in mind that when reimplementing this function and calling shape() or boundingRect() on other, the returned coordinates must be mapped to this item's coordinate system before any intersection can take place.

See also contains() and shape().

bool QGraphicsItem.collidesWithPath (self, QPainterPath path, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

Returns true if this item collides with path.

The collision is determined by mode. The default value for mode is Qt.IntersectsItemShape; path collides with this item if it either intersects, contains, or is contained by this item's shape.

Note that this function checks whether the item's shape or bounding rectangle (depending on mode) is contained within path, and not whether path is contained within the items shape or bounding rectangle.

See also collidesWithItem(), contains(), and shape().

list-of-QGraphicsItem QGraphicsItem.collidingItems (self, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

Returns a list of all items that collide with this item.

The way collisions are detected is determined by applying mode to items that are compared to this item, i.e., each item's shape or bounding rectangle is checked against this item's shape. The default value for mode is Qt.IntersectsItemShape.

See also collidesWithItem().

QGraphicsItem QGraphicsItem.commonAncestorItem (self, QGraphicsItem other)

Returns the closest common ancestor item of this item and other, or 0 if either other is 0, or there is no common ancestor.

This function was introduced in Qt 4.4.

See also isAncestorOf().

bool QGraphicsItem.contains (self, QPointF point)

Returns true if this item contains point, which is in local coordinates; otherwise, false is returned. It is most often called from QGraphicsView to determine what item is under the cursor, and for that reason, the implementation of this function should be as light-weight as possible.

By default, this function calls shape(), but you can reimplement it in a subclass to provide a (perhaps more efficient) implementation.

See also shape(), boundingRect(), and collidesWithPath().

QGraphicsItem.contextMenuEvent (self, QGraphicsSceneContextMenuEvent event)

This event handler can be reimplemented in a subclass to process context menu events. The event parameter contains details about the event to be handled.

If you ignore the event, (i.e., by calling QEvent.ignore(),) event will propagate to any item beneath this item. If no items accept the event, it will be ignored by the scene, and propagate to the view.

It's common to open a QMenu in response to receiving a context menu event. Example:

 void CustomItem.contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
 {
     QMenu menu;
     QAction *removeAction = menu.addAction("Remove");
     QAction *markAction = menu.addAction("Mark");
     QAction *selectedAction = menu.exec(event->screenPos());
     // ...
 }

The default implementation ignores the event.

See also sceneEvent().

QCursor QGraphicsItem.cursor (self)

Returns the current cursor shape for the item. The mouse cursor will assume this shape when it's over this item. See the list of predefined cursor objects for a range of useful shapes.

An editor item might want to use an I-beam cursor:

 item->setCursor(Qt.IBeamCursor);

If no cursor has been set, the cursor of the item beneath is used.

See also setCursor(), hasCursor(), unsetCursor(), QWidget.cursor, and QApplication.overrideCursor().

QVariant QGraphicsItem.data (self, int key)

Returns this item's custom data for the key key as a QVariant.

Custom item data is useful for storing arbitrary properties in any item. Example:

 static const int ObjectName = 0;

 QGraphicsItem *item = scene.itemAt(100, 50);
 if (item->data(ObjectName).toString().isEmpty()) {
     if (qgraphicsitem_cast<ButtonItem *>(item))
         item->setData(ObjectName, "Button");
 }

Qt does not use this feature for storing data; it is provided solely for the convenience of the user.

See also setData().

QTransform QGraphicsItem.deviceTransform (self, QTransform viewportTransform)

Returns this item's device transformation matrix, using viewportTransform to map from scene to device coordinates. This matrix can be used to map coordinates and geometrical shapes from this item's local coordinate system to the viewport's (or any device's) coordinate system. To map coordinates from the viewport, you must first invert the returned matrix.

Example:

 QGraphicsRectItem rect;
 rect.setPos(100, 100);

 rect.deviceTransform(view->viewportTransform()).map(QPointF(0, 0));
 // returns the item's (0, 0) point in view's viewport coordinates

 rect.deviceTransform(view->viewportTransform()).inverted().map(QPointF(100, 100));
 // returns view's viewport's (100, 100) coordinate in item coordinates

This function is the same as combining this item's scene transform with the view's viewport transform, but it also understands the ItemIgnoresTransformations flag. The device transform can be used to do accurate coordinate mapping (and collision detection) for untransformable items.

This function was introduced in Qt 4.3.

See also transform(), setTransform(), scenePos(), The Graphics View Coordinate System, and itemTransform().

QGraphicsItem.dragEnterEvent (self, QGraphicsSceneDragDropEvent event)

This event handler, for event event, can be reimplemented to receive drag enter events for this item. Drag enter events are generated as the cursor enters the item's area.

By accepting the event, (i.e., by calling QEvent.accept(),) the item will accept drop events, in addition to receiving drag move and drag leave. Otherwise, the event will be ignored and propagate to the item beneath. If the event is accepted, the item will receive a drag move event before control goes back to the event loop.

A common implementation of dragEnterEvent accepts or ignores event depending on the associated mime data in event. Example:

 CustomItem.CustomItem()
 {
     setAcceptDrops(true);
     ...
 }

 void CustomItem.dragEnterEvent(QGraphicsSceneDragDropEvent *event)
 {
     event->setAccepted(event->mimeData()->hasFormat("text/plain"));
 }

Items do not receive drag and drop events by default; to enable this feature, call setAcceptDrops(true).

The default implementation does nothing.

See also dropEvent(), dragMoveEvent(), and dragLeaveEvent().

QGraphicsItem.dragLeaveEvent (self, QGraphicsSceneDragDropEvent event)

This event handler, for event event, can be reimplemented to receive drag leave events for this item. Drag leave events are generated as the cursor leaves the item's area. Most often you will not need to reimplement this function, but it can be useful for resetting state in your item (e.g., highlighting).

Calling QEvent.ignore() or QEvent.accept() on event has no effect.

Items do not receive drag and drop events by default; to enable this feature, call setAcceptDrops(true).

The default implementation does nothing.

See also dragEnterEvent(), dropEvent(), and dragMoveEvent().

QGraphicsItem.dragMoveEvent (self, QGraphicsSceneDragDropEvent event)

This event handler, for event event, can be reimplemented to receive drag move events for this item. Drag move events are generated as the cursor moves around inside the item's area. Most often you will not need to reimplement this function; it is used to indicate that only parts of the item can accept drops.

Calling QEvent.ignore() or QEvent.accept() on event toggles whether or not the item will accept drops at the position from the event. By default, event is accepted, indicating that the item allows drops at the specified position.

Items do not receive drag and drop events by default; to enable this feature, call setAcceptDrops(true).

The default implementation does nothing.

See also dropEvent(), dragEnterEvent(), and dragLeaveEvent().

QGraphicsItem.dropEvent (self, QGraphicsSceneDragDropEvent event)

This event handler, for event event, can be reimplemented to receive drop events for this item. Items can only receive drop events if the last drag move event was accepted.

Calling QEvent.ignore() or QEvent.accept() on event has no effect.

Items do not receive drag and drop events by default; to enable this feature, call setAcceptDrops(true).

The default implementation does nothing.

See also dragEnterEvent(), dragMoveEvent(), and dragLeaveEvent().

float QGraphicsItem.effectiveOpacity (self)

Returns this item's effective opacity, which is between 0.0 (transparent) and 1.0 (opaque). This value is a combination of this item's local opacity, and its parent and ancestors' opacities. The effective opacity decides how the item is rendered.

This function was introduced in Qt 4.5.

See also opacity(), setOpacity(), paint(), ItemIgnoresParentOpacity, and ItemDoesntPropagateOpacityToChildren.

QGraphicsItem.ensureVisible (self, QRectF rect = QRectF(), int xMargin = 50, int yMargin = 50)

If this item is part of a scene that is viewed by a QGraphicsView, this convenience function will attempt to scroll the view to ensure that rect is visible inside the view's viewport. If rect is a null rect (the default), QGraphicsItem will default to the item's bounding rect. xmargin and ymargin are the number of pixels the view should use for margins.

If the specified rect cannot be reached, the contents are scrolled to the nearest valid position.

If this item is not viewed by a QGraphicsView, this function does nothing.

See also QGraphicsView.ensureVisible().

QGraphicsItem.ensureVisible (self, float x, float y, float w, float h, int xMargin = 50, int yMargin = 50)

This convenience function is equivalent to calling ensureVisible(QRectF(x, y, w, h), xmargin, ymargin):

bool QGraphicsItem.filtersChildEvents (self)

Returns true if this item filters child events (i.e., all events intended for any of its children are instead sent to this item); otherwise, false is returned.

The default value is false; child events are not filtered.

This function was introduced in Qt 4.6.

See also setFiltersChildEvents().

GraphicsItemFlags QGraphicsItem.flags (self)

Returns this item's flags. The flags describe what configurable features of the item are enabled and not. For example, if the flags include ItemIsFocusable, the item can accept input focus.

By default, no flags are enabled.

See also setFlags() and setFlag().

QGraphicsItem.focusInEvent (self, QFocusEvent event)

This event handler, for event event, can be reimplemented to receive focus in events for this item. The default implementation calls ensureVisible().

See also focusOutEvent(), sceneEvent(), and setFocus().

QGraphicsItem QGraphicsItem.focusItem (self)

If this item, a child or descendant of this item currently has input focus, this function will return a pointer to that item. If no descendant has input focus, 0 is returned.

This function was introduced in Qt 4.6.

See also hasFocus(), setFocus(), and QWidget.focusWidget().

QGraphicsItem.focusOutEvent (self, QFocusEvent event)

This event handler, for event event, can be reimplemented to receive focus out events for this item. The default implementation does nothing.

See also focusInEvent(), sceneEvent(), and setFocus().

QGraphicsItem QGraphicsItem.focusProxy (self)

Returns this item's focus proxy, or 0 if this item has no focus proxy.

This function was introduced in Qt 4.6.

See also setFocusProxy(), setFocus(), and hasFocus().

QGraphicsItem.grabKeyboard (self)

Grabs the keyboard input.

The item will receive all keyboard input to the scene until one of the following events occur:

When an item gains the keyboard grab, it receives a QEvent.GrabKeyboard event. When it loses the keyboard grab, it receives a QEvent.UngrabKeyboard event. These events can be used to detect when your item gains or loses the keyboard grab through other means than gaining input focus.

It is almost never necessary to explicitly grab the keyboard in Qt, as Qt grabs and releases it sensibly. In particular, Qt grabs the keyboard when your item gains input focus, and releases it when your item loses input focus, or when the item is hidden.

Note that only visible items can grab keyboard input. Calling grabKeyboard() on an invisible item has no effect.

Keyboard events are not affected.

This function was introduced in Qt 4.4.

See also ungrabKeyboard(), grabMouse(), and setFocus().

QGraphicsItem.grabMouse (self)

Grabs the mouse input.

This item will receive all mouse events for the scene until any of the following events occurs:

When an item gains the mouse grab, it receives a QEvent.GrabMouse event. When it loses the mouse grab, it receives a QEvent.UngrabMouse event. These events can be used to detect when your item gains or loses the mouse grab through other means than receiving mouse button events.

It is almost never necessary to explicitly grab the mouse in Qt, as Qt grabs and releases it sensibly. In particular, Qt grabs the mouse when you press a mouse button, and keeps the mouse grabbed until you release the last mouse button. Also, Qt.Popup widgets implicitly call grabMouse() when shown, and ungrabMouse() when hidden.

Note that only visible items can grab mouse input. Calling grabMouse() on an invisible item has no effect.

Keyboard events are not affected.

This function was introduced in Qt 4.4.

See also QGraphicsScene.mouseGrabberItem(), ungrabMouse(), and grabKeyboard().

QGraphicsEffect QGraphicsItem.graphicsEffect (self)

Returns a pointer to this item's effect if it has one; otherwise 0.

This function was introduced in Qt 4.6.

See also setGraphicsEffect().

QGraphicsItemGroup QGraphicsItem.group (self)

Returns a pointer to this item's item group, or 0 if this item is not member of a group.

See also setGroup(), QGraphicsItemGroup, and QGraphicsScene.createItemGroup().

bool QGraphicsItem.handlesChildEvents (self)

bool QGraphicsItem.hasCursor (self)

Returns true if this item has a cursor set; otherwise, false is returned.

By default, items don't have any cursor set. cursor() will return a standard pointing arrow cursor.

See also unsetCursor().

bool QGraphicsItem.hasFocus (self)

Returns true if this item is active, and it or its focus proxy has keyboard input focus; otherwise, returns false.

See also focusItem(), setFocus(), QGraphicsScene.setFocusItem(), and isActive().

QGraphicsItem.hide (self)

Hides the item. (Items are visible by default.)

This convenience function is equivalent to calling setVisible(false).

See also show() and setVisible().

QGraphicsItem.hoverEnterEvent (self, QGraphicsSceneHoverEvent event)

This event handler, for event event, can be reimplemented to receive hover enter events for this item. The default implementation calls update(); otherwise it does nothing.

Calling QEvent.ignore() or QEvent.accept() on event has no effect.

See also hoverMoveEvent(), hoverLeaveEvent(), sceneEvent(), and setAcceptHoverEvents().

QGraphicsItem.hoverLeaveEvent (self, QGraphicsSceneHoverEvent event)

This event handler, for event event, can be reimplemented to receive hover leave events for this item. The default implementation calls update(); otherwise it does nothing.

Calling QEvent.ignore() or QEvent.accept() on event has no effect.

See also hoverEnterEvent(), hoverMoveEvent(), sceneEvent(), and setAcceptHoverEvents().

QGraphicsItem.hoverMoveEvent (self, QGraphicsSceneHoverEvent event)

This event handler, for event event, can be reimplemented to receive hover move events for this item. The default implementation does nothing.

Calling QEvent.ignore() or QEvent.accept() on event has no effect.

See also hoverEnterEvent(), hoverLeaveEvent(), sceneEvent(), and setAcceptHoverEvents().

QGraphicsItem.inputMethodEvent (self, QInputMethodEvent event)

This event handler, for event event, can be reimplemented to receive input method events for this item. The default implementation ignores the event.

See also inputMethodQuery() and sceneEvent().

Qt.InputMethodHints QGraphicsItem.inputMethodHints (self)

Returns the current input method hints of this item.

Input method hints are only relevant for input items. The hints are used by the input method to indicate how it should operate. For example, if the Qt.ImhNumbersOnly flag is set, the input method may change its visual components to reflect that only numbers can be entered.

The effect may vary between input method implementations.

This function was introduced in Qt 4.6.

See also setInputMethodHints(), inputMethodQuery(), and QInputContext.

QVariant QGraphicsItem.inputMethodQuery (self, Qt.InputMethodQuery query)

This method is only relevant for input items. It is used by the input method to query a set of properties of the item to be able to support complex input method operations, such as support for surrounding text and reconversions. query specifies which property is queried.

See also inputMethodEvent(), QInputMethodEvent, and QInputContext.

QGraphicsItem.installSceneEventFilter (self, QGraphicsItem filterItem)

Installs an event filter for this item on filterItem, causing all events for this item to first pass through filterItem's sceneEventFilter() function.

To filter another item's events, install this item as an event filter for the other item. Example:

 QGraphicsScene scene;
 QGraphicsEllipseItem *ellipse = scene.addEllipse(QRectF(-10, -10, 20, 20));
 QGraphicsLineItem *line = scene.addLine(QLineF(-10, -10, 20, 20));

 line->installSceneEventFilter(ellipse);
 // line's events are filtered by ellipse's sceneEventFilter() function.

 ellipse->installSceneEventFilter(line);
 // ellipse's events are filtered by line's sceneEventFilter() function.

An item can only filter events for other items in the same scene. Also, an item cannot filter its own events; instead, you can reimplement sceneEvent() directly.

Items must belong to a scene for scene event filters to be installed and used.

See also removeSceneEventFilter(), sceneEventFilter(), and sceneEvent().

bool QGraphicsItem.isActive (self)

Returns true if this item is active; otherwise returns false.

An item can only be active if the scene is active. An item is active if it is, or is a descendent of, an active panel. Items in non-active panels are not active.

Items that are not part of a panel follow scene activation when the scene has no active panel.

Only active items can gain input focus.

This function was introduced in Qt 4.6.

See also QGraphicsScene.isActive(), QGraphicsScene.activePanel(), panel(), and isPanel().

bool QGraphicsItem.isAncestorOf (self, QGraphicsItem child)

Returns true if this item is an ancestor of child (i.e., if this item is child's parent, or one of child's parent's ancestors).

See also parentItem().

(bool, QGraphicsItem blockingPanel) QGraphicsItem.isBlockedByModalPanel (self)

Returns true if this item is blocked by a modal panel, false otherwise. If blockingPanel is non-zero, blockingPanel will be set to the modal panel that is blocking this item. If this item is not blocked, blockingPanel will not be set by this function.

This function always returns false for items not in a scene.

This function was introduced in Qt 4.6.

See also panelModality(), setPanelModality(), and PanelModality.

bool QGraphicsItem.isClipped (self)

Returns true if this item is clipped. An item is clipped if it has either set the ItemClipsToShape flag, or if it or any of its ancestors has set the ItemClipsChildrenToShape flag.

Clipping affects the item's appearance (i.e., painting), as well as mouse and hover event delivery.

See also clipPath(), shape(), and setFlags().

bool QGraphicsItem.isEnabled (self)

Returns true if the item is enabled; otherwise, false is returned.

See also setEnabled().

bool QGraphicsItem.isObscured (self)

Returns true if this item's bounding rect is completely obscured by the opaque shape of any of colliding items above it (i.e., with a higher Z value than this item).

Its implementation is based on calling isObscuredBy(), which you can reimplement to provide a custom obscurity algorithm.

See also opaqueArea().

bool QGraphicsItem.isObscured (self, QRectF rect)

This convenience function is equivalent to calling isObscured(QRectF(x, y, w, h)).

This function was introduced in Qt 4.3.

bool QGraphicsItem.isObscured (self, float ax, float ay, float w, float h)

This is an overloaded function.

Returns true if rect is completely obscured by the opaque shape of any of colliding items above it (i.e., with a higher Z value than this item).

Unlike the default isObscured() function, this function does not call isObscuredBy().

This function was introduced in Qt 4.3.

See also opaqueArea().

bool QGraphicsItem.isObscuredBy (self, QGraphicsItem item)

Returns true if this item's bounding rect is completely obscured by the opaque shape of item.

The base implementation maps item's opaqueArea() to this item's coordinate system, and then checks if this item's boundingRect() is fully contained within the mapped shape.

You can reimplement this function to provide a custom algorithm for determining whether this item is obscured by item.

See also opaqueArea() and isObscured().

bool QGraphicsItem.isPanel (self)

Returns true if the item is a panel; otherwise returns false.

This function was introduced in Qt 4.6.

See also QGraphicsItem.panel() and ItemIsPanel.

bool QGraphicsItem.isSelected (self)

Returns true if this item is selected; otherwise, false is returned.

Items that are in a group inherit the group's selected state.

Items are not selected by default.

See also setSelected() and QGraphicsScene.setSelectionArea().

bool QGraphicsItem.isUnderMouse (self)

Returns true if this item is currently under the mouse cursor in one of the views; otherwise, false is returned.

This function was introduced in Qt 4,4.

See also QGraphicsScene.views() and QCursor.pos().

bool QGraphicsItem.isVisible (self)

Returns true if the item is visible; otherwise, false is returned.

Note that the item's general visibility is unrelated to whether or not it is actually being visualized by a QGraphicsView.

See also setVisible().

bool QGraphicsItem.isVisibleTo (self, QGraphicsItem parent)

Returns true if the item is visible to parent; otherwise, false is returned. parent can be 0, in which case this function will return whether the item is visible to the scene or not.

An item may not be visible to its ancestors even if isVisible() is true. It may also be visible to its ancestors even if isVisible() is false. If any ancestor is hidden, the item itself will be implicitly hidden, in which case this function will return false.

This function was introduced in Qt 4.4.

See also isVisible() and setVisible().

bool QGraphicsItem.isWidget (self)

Returns true if this item is a widget (i.e., QGraphicsWidget); otherwise, returns false.

This function was introduced in Qt 4.4.

bool QGraphicsItem.isWindow (self)

Returns true if the item is a QGraphicsWidget window, otherwise returns false.

This function was introduced in Qt 4.4.

See also QGraphicsWidget.windowFlags().

QVariant QGraphicsItem.itemChange (self, GraphicsItemChange change, QVariant value)

This virtual function is called by QGraphicsItem to notify custom items that some part of the item's state changes. By reimplementing this function, your can react to a change, and in some cases, (depending on change,) adjustments can be made.

change is the parameter of the item that is changing. value is the new value; the type of the value depends on change.

Example:

 QVariant Component.itemChange(GraphicsItemChange change, const QVariant &value)
 {
     if (change == ItemPositionChange && scene()) {
         // value is the new position.
         QPointF newPos = value.toPointF();
         QRectF rect = scene()->sceneRect();
         if (!rect.contains(newPos)) {
             // Keep the item inside the scene rect.
             newPos.setX(qMin(rect.right(), qMax(newPos.x(), rect.left())));
             newPos.setY(qMin(rect.bottom(), qMax(newPos.y(), rect.top())));
             return newPos;
         }
     }
     return QGraphicsItem.itemChange(change, value);
 }

The default implementation does nothing, and returns value.

Note: Certain QGraphicsItem functions cannot be called in a reimplementation of this function; see the GraphicsItemChange documentation for details.

See also GraphicsItemChange.

(QTransform, bool ok) QGraphicsItem.itemTransform (self, QGraphicsItem other)

Returns a QTransform that maps coordinates from this item to other. If ok is not null, and if there is no such transform, the boolean pointed to by ok will be set to false; otherwise it will be set to true.

This transform provides an alternative to the mapToItem() or mapFromItem() functions, by returning the appropriate transform so that you can map shapes and coordinates yourself. It also helps you write more efficient code when repeatedly mapping between the same two items.

Note: In rare circumstances, there is no transform that maps between two items.

This function was introduced in Qt 4.5.

See also mapToItem(), mapFromItem(), and deviceTransform().

QGraphicsItem.keyPressEvent (self, QKeyEvent event)

This event handler, for event event, can be reimplemented to receive key press events for this item. The default implementation ignores the event. If you reimplement this handler, the event will by default be accepted.

Note that key events are only received for items that set the ItemIsFocusable flag, and that have keyboard input focus.

See also keyReleaseEvent(), setFocus(), QGraphicsScene.setFocusItem(), and sceneEvent().

QGraphicsItem.keyReleaseEvent (self, QKeyEvent event)

This event handler, for event event, can be reimplemented to receive key release events for this item. The default implementation ignores the event. If you reimplement this handler, the event will by default be accepted.

Note that key events are only received for items that set the ItemIsFocusable flag, and that have keyboard input focus.

See also keyPressEvent(), setFocus(), QGraphicsScene.setFocusItem(), and sceneEvent().

QPointF QGraphicsItem.mapFromItem (self, QGraphicsItem item, QPointF point)

Maps the point point, which is in item's coordinate system, to this item's coordinate system, and returns the mapped coordinate.

If item is 0, this function returns the same as mapFromScene().

See also itemTransform(), mapFromParent(), mapFromScene(), transform(), mapToItem(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapFromItem (self, QGraphicsItem item, QRectF rect)

Maps the rectangle rect, which is in item's coordinate system, to this item's coordinate system, and returns the mapped rectangle as a polygon.

If item is 0, this function returns the same as mapFromScene()

See also itemTransform(), mapToItem(), mapFromParent(), transform(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapFromItem (self, QGraphicsItem item, QPolygonF polygon)

Maps the polygon polygon, which is in item's coordinate system, to this item's coordinate system, and returns the mapped polygon.

If item is 0, this function returns the same as mapFromScene().

See also itemTransform(), mapToItem(), mapFromParent(), transform(), and The Graphics View Coordinate System.

QPainterPath QGraphicsItem.mapFromItem (self, QGraphicsItem item, QPainterPath path)

Maps the path path, which is in item's coordinate system, to this item's coordinate system, and returns the mapped path.

If item is 0, this function returns the same as mapFromScene().

See also itemTransform(), mapFromParent(), mapFromScene(), mapToItem(), and The Graphics View Coordinate System.

QPointF QGraphicsItem.mapFromItem (self, QGraphicsItem item, float ax, float ay)

This convenience function is equivalent to calling mapFromItem(item, QRectF(x, y, w, h)).

This function was introduced in Qt 4.3.

QPolygonF QGraphicsItem.mapFromItem (self, QGraphicsItem item, float ax, float ay, float w, float h)

This is an overloaded function.

This convenience function is equivalent to calling mapFromItem(item, QPointF(x, y)).

QPointF QGraphicsItem.mapFromParent (self, QPointF point)

Maps the point point, which is in this item's parent's coordinate system, to this item's coordinate system, and returns the mapped coordinate.

See also mapFromItem(), mapFromScene(), transform(), mapToParent(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapFromParent (self, QRectF rect)

Maps the rectangle rect, which is in this item's parent's coordinate system, to this item's coordinate system, and returns the mapped rectangle as a polygon.

See also mapToParent(), mapFromItem(), transform(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapFromParent (self, QPolygonF polygon)

Maps the polygon polygon, which is in this item's parent's coordinate system, to this item's coordinate system, and returns the mapped polygon.

See also mapToParent(), mapToItem(), transform(), and The Graphics View Coordinate System.

QPainterPath QGraphicsItem.mapFromParent (self, QPainterPath path)

Maps the path path, which is in this item's parent's coordinate system, to this item's coordinate system, and returns the mapped path.

See also mapFromScene(), mapFromItem(), mapToParent(), and The Graphics View Coordinate System.

QPointF QGraphicsItem.mapFromParent (self, float ax, float ay)

This convenience function is equivalent to calling mapFromItem(QRectF(x, y, w, h)).

This function was introduced in Qt 4.3.

QPolygonF QGraphicsItem.mapFromParent (self, float ax, float ay, float w, float h)

This is an overloaded function.

This convenience function is equivalent to calling mapFromParent(QPointF(x, y)).

QPointF QGraphicsItem.mapFromScene (self, QPointF point)

Maps the point point, which is in this item's scene's coordinate system, to this item's coordinate system, and returns the mapped coordinate.

See also mapFromItem(), mapFromParent(), transform(), mapToScene(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapFromScene (self, QRectF rect)

Maps the rectangle rect, which is in this item's scene's coordinate system, to this item's coordinate system, and returns the mapped rectangle as a polygon.

See also mapToScene(), mapFromItem(), transform(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapFromScene (self, QPolygonF polygon)

Maps the polygon polygon, which is in this item's scene's coordinate system, to this item's coordinate system, and returns the mapped polygon.

See also mapToScene(), mapFromParent(), transform(), and The Graphics View Coordinate System.

QPainterPath QGraphicsItem.mapFromScene (self, QPainterPath path)

Maps the path path, which is in this item's scene's coordinate system, to this item's coordinate system, and returns the mapped path.

See also mapFromParent(), mapFromItem(), mapToScene(), and The Graphics View Coordinate System.

QPointF QGraphicsItem.mapFromScene (self, float ax, float ay)

This convenience function is equivalent to calling mapFromScene(QRectF(x, y, w, h)).

This function was introduced in Qt 4.3.

QPolygonF QGraphicsItem.mapFromScene (self, float ax, float ay, float w, float h)

This is an overloaded function.

This convenience function is equivalent to calling mapFromScene(QPointF(x, y)).

QRectF QGraphicsItem.mapRectFromItem (self, QGraphicsItem item, QRectF rect)

Maps the rectangle rect, which is in item's coordinate system, to this item's coordinate system, and returns the mapped rectangle as a new rectangle (i.e., the bounding rectangle of the resulting polygon).

If item is 0, this function returns the same as mapRectFromScene().

This function was introduced in Qt 4.5.

See also itemTransform(), mapToParent(), mapToScene(), mapFromItem(), and The Graphics View Coordinate System.

QRectF QGraphicsItem.mapRectFromItem (self, QGraphicsItem item, float ax, float ay, float w, float h)

This convenience function is equivalent to calling mapRectFromItem(item, QRectF(x, y, w, h)).

This function was introduced in Qt 4.5.

QRectF QGraphicsItem.mapRectFromParent (self, QRectF rect)

Maps the rectangle rect, which is in this item's parent's coordinate system, to this item's coordinate system, and returns the mapped rectangle as a new rectangle (i.e., the bounding rectangle of the resulting polygon).

This function was introduced in Qt 4.5.

See also itemTransform(), mapToParent(), mapToScene(), mapFromItem(), and The Graphics View Coordinate System.

QRectF QGraphicsItem.mapRectFromParent (self, float ax, float ay, float w, float h)

This convenience function is equivalent to calling mapRectFromParent(QRectF(x, y, w, h)).

This function was introduced in Qt 4.5.

QRectF QGraphicsItem.mapRectFromScene (self, QRectF rect)

Maps the rectangle rect, which is in scene coordinates, to this item's coordinate system, and returns the mapped rectangle as a new rectangle (i.e., the bounding rectangle of the resulting polygon).

This function was introduced in Qt 4.5.

See also itemTransform(), mapToParent(), mapToScene(), mapFromItem(), and The Graphics View Coordinate System.

QRectF QGraphicsItem.mapRectFromScene (self, float ax, float ay, float w, float h)

This convenience function is equivalent to calling mapRectFromScene(QRectF(x, y, w, h)).

This function was introduced in Qt 4.5.

QRectF QGraphicsItem.mapRectToItem (self, QGraphicsItem item, QRectF rect)

Maps the rectangle rect, which is in this item's coordinate system, to item's coordinate system, and returns the mapped rectangle as a new rectangle (i.e., the bounding rectangle of the resulting polygon).

If item is 0, this function returns the same as mapRectToScene().

This function was introduced in Qt 4.5.

See also itemTransform(), mapToParent(), mapToScene(), mapFromItem(), and The Graphics View Coordinate System.

QRectF QGraphicsItem.mapRectToItem (self, QGraphicsItem item, float ax, float ay, float w, float h)

This convenience function is equivalent to calling mapRectToItem(item, QRectF(x, y, w, h)).

This function was introduced in Qt 4.5.

QRectF QGraphicsItem.mapRectToParent (self, QRectF rect)

Maps the rectangle rect, which is in this item's coordinate system, to its parent's coordinate system, and returns the mapped rectangle as a new rectangle (i.e., the bounding rectangle of the resulting polygon).

This function was introduced in Qt 4.5.

See also itemTransform(), mapToParent(), mapToScene(), mapFromItem(), and The Graphics View Coordinate System.

QRectF QGraphicsItem.mapRectToParent (self, float ax, float ay, float w, float h)

This convenience function is equivalent to calling mapRectToParent(QRectF(x, y, w, h)).

This function was introduced in Qt 4.5.

QRectF QGraphicsItem.mapRectToScene (self, QRectF rect)

Maps the rectangle rect, which is in this item's coordinate system, to the scene coordinate system, and returns the mapped rectangle as a new rectangle (i.e., the bounding rectangle of the resulting polygon).

This function was introduced in Qt 4.5.

See also itemTransform(), mapToParent(), mapToScene(), mapFromItem(), and The Graphics View Coordinate System.

QRectF QGraphicsItem.mapRectToScene (self, float ax, float ay, float w, float h)

This convenience function is equivalent to calling mapRectToScene(QRectF(x, y, w, h)).

This function was introduced in Qt 4.5.

QPointF QGraphicsItem.mapToItem (self, QGraphicsItem item, QPointF point)

Maps the point point, which is in this item's coordinate system, to item's coordinate system, and returns the mapped coordinate.

If item is 0, this function returns the same as mapToScene().

See also itemTransform(), mapToParent(), mapToScene(), transform(), mapFromItem(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapToItem (self, QGraphicsItem item, QRectF rect)

Maps the rectangle rect, which is in this item's coordinate system, to item's coordinate system, and returns the mapped rectangle as a polygon.

If item is 0, this function returns the same as mapToScene().

See also itemTransform(), mapToParent(), mapToScene(), mapFromItem(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapToItem (self, QGraphicsItem item, QPolygonF polygon)

Maps the polygon polygon, which is in this item's coordinate system, to item's coordinate system, and returns the mapped polygon.

If item is 0, this function returns the same as mapToScene().

See also itemTransform(), mapToParent(), mapToScene(), mapFromItem(), and The Graphics View Coordinate System.

QPainterPath QGraphicsItem.mapToItem (self, QGraphicsItem item, QPainterPath path)

Maps the path path, which is in this item's coordinate system, to item's coordinate system, and returns the mapped path.

If item is 0, this function returns the same as mapToScene().

See also itemTransform(), mapToParent(), mapToScene(), mapFromItem(), and The Graphics View Coordinate System.

QPointF QGraphicsItem.mapToItem (self, QGraphicsItem item, float ax, float ay)

This convenience function is equivalent to calling mapToItem(item, QRectF(x, y, w, h)).

This function was introduced in Qt 4.3.

QPolygonF QGraphicsItem.mapToItem (self, QGraphicsItem item, float ax, float ay, float w, float h)

This is an overloaded function.

This convenience function is equivalent to calling mapToItem(item, QPointF(x, y)).

QPointF QGraphicsItem.mapToParent (self, QPointF point)

Maps the point point, which is in this item's coordinate system, to its parent's coordinate system, and returns the mapped coordinate. If the item has no parent, point will be mapped to the scene's coordinate system.

See also mapToItem(), mapToScene(), transform(), mapFromParent(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapToParent (self, QRectF rect)

Maps the rectangle rect, which is in this item's coordinate system, to its parent's coordinate system, and returns the mapped rectangle as a polygon. If the item has no parent, rect will be mapped to the scene's coordinate system.

See also mapToScene(), mapToItem(), mapFromParent(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapToParent (self, QPolygonF polygon)

Maps the polygon polygon, which is in this item's coordinate system, to its parent's coordinate system, and returns the mapped polygon. If the item has no parent, polygon will be mapped to the scene's coordinate system.

See also mapToScene(), mapToItem(), mapFromParent(), and The Graphics View Coordinate System.

QPainterPath QGraphicsItem.mapToParent (self, QPainterPath path)

Maps the path path, which is in this item's coordinate system, to its parent's coordinate system, and returns the mapped path. If the item has no parent, path will be mapped to the scene's coordinate system.

See also mapToScene(), mapToItem(), mapFromParent(), and The Graphics View Coordinate System.

QPointF QGraphicsItem.mapToParent (self, float ax, float ay)

This convenience function is equivalent to calling mapToParent(QRectF(x, y, w, h)).

This function was introduced in Qt 4.3.

QPolygonF QGraphicsItem.mapToParent (self, float ax, float ay, float w, float h)

This is an overloaded function.

This convenience function is equivalent to calling mapToParent(QPointF(x, y)).

QPointF QGraphicsItem.mapToScene (self, QPointF point)

Maps the point point, which is in this item's coordinate system, to the scene's coordinate system, and returns the mapped coordinate.

See also mapToItem(), mapToParent(), transform(), mapFromScene(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapToScene (self, QRectF rect)

Maps the rectangle rect, which is in this item's coordinate system, to the scene's coordinate system, and returns the mapped rectangle as a polygon.

See also mapToParent(), mapToItem(), mapFromScene(), and The Graphics View Coordinate System.

QPolygonF QGraphicsItem.mapToScene (self, QPolygonF polygon)

Maps the polygon polygon, which is in this item's coordinate system, to the scene's coordinate system, and returns the mapped polygon.

See also mapToParent(), mapToItem(), mapFromScene(), and The Graphics View Coordinate System.

QPainterPath QGraphicsItem.mapToScene (self, QPainterPath path)

Maps the path path, which is in this item's coordinate system, to the scene's coordinate system, and returns the mapped path.

See also mapToParent(), mapToItem(), mapFromScene(), and The Graphics View Coordinate System.

QPointF QGraphicsItem.mapToScene (self, float ax, float ay)

This convenience function is equivalent to calling mapToScene(QRectF(x, y, w, h)).

This function was introduced in Qt 4.3.

QPolygonF QGraphicsItem.mapToScene (self, float ax, float ay, float w, float h)

This is an overloaded function.

This convenience function is equivalent to calling mapToScene(QPointF(x, y)).

QMatrix QGraphicsItem.matrix (self)

QGraphicsItem.mouseDoubleClickEvent (self, QGraphicsSceneMouseEvent event)

This event handler, for event event, can be reimplemented to receive mouse doubleclick events for this item.

When doubleclicking an item, the item will first receive a mouse press event, followed by a release event (i.e., a click), then a doubleclick event, and finally a release event.

Calling QEvent.ignore() or QEvent.accept() on event has no effect.

The default implementation calls mousePressEvent(). If you want to keep the base implementation when reimplementing this function, call QGraphicsItem.mouseDoubleClickEvent() in your reimplementation.

Note that an item will not receive double click events if it is neither selectable nor movable (single mouse clicks are ignored in this case, and that stops the generation of double clicks).

See also mousePressEvent(), mouseMoveEvent(), mouseReleaseEvent(), and sceneEvent().

QGraphicsItem.mouseMoveEvent (self, QGraphicsSceneMouseEvent event)

This event handler, for event event, can be reimplemented to receive mouse move events for this item. If you do receive this event, you can be certain that this item also received a mouse press event, and that this item is the current mouse grabber.

Calling QEvent.ignore() or QEvent.accept() on event has no effect.

The default implementation handles basic item interaction, such as selection and moving. If you want to keep the base implementation when reimplementing this function, call QGraphicsItem.mouseMoveEvent() in your reimplementation.

Please note that mousePressEvent() decides which graphics item it is that receives mouse events. See the mousePressEvent() description for details.

See also mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), and sceneEvent().

QGraphicsItem.mousePressEvent (self, QGraphicsSceneMouseEvent event)

This event handler, for event event, can be reimplemented to receive mouse press events for this item. Mouse press events are only delivered to items that accept the mouse button that is pressed. By default, an item accepts all mouse buttons, but you can change this by calling setAcceptedMouseButtons().

The mouse press event decides which item should become the mouse grabber (see QGraphicsScene.mouseGrabberItem()). If you do not reimplement this function, the press event will propagate to any topmost item beneath this item, and no other mouse events will be delivered to this item.

If you do reimplement this function, event will by default be accepted (see QEvent.accept()), and this item is then the mouse grabber. This allows the item to receive future move, release and doubleclick events. If you call QEvent.ignore() on event, this item will lose the mouse grab, and event will propagate to any topmost item beneath. No further mouse events will be delivered to this item unless a new mouse press event is received.

The default implementation handles basic item interaction, such as selection and moving. If you want to keep the base implementation when reimplementing this function, call QGraphicsItem.mousePressEvent() in your reimplementation.

The event is QEvent.ignore()d for items that are neither movable nor selectable.

See also mouseMoveEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), and sceneEvent().

QGraphicsItem.mouseReleaseEvent (self, QGraphicsSceneMouseEvent event)

This event handler, for event event, can be reimplemented to receive mouse release events for this item.

Calling QEvent.ignore() or QEvent.accept() on event has no effect.

The default implementation handles basic item interaction, such as selection and moving. If you want to keep the base implementation when reimplementing this function, call QGraphicsItem.mouseReleaseEvent() in your reimplementation.

Please note that mousePressEvent() decides which graphics item it is that receives mouse events. See the mousePressEvent() description for details.

See also mousePressEvent(), mouseMoveEvent(), mouseDoubleClickEvent(), and sceneEvent().

QGraphicsItem.moveBy (self, float dx, float dy)

Moves the item by dx points horizontally, and dy point vertically. This function is equivalent to calling setPos(pos() + QPointF(dx, dy)).

float QGraphicsItem.opacity (self)

Returns this item's local opacity, which is between 0.0 (transparent) and 1.0 (opaque). This value is combined with parent and ancestor values into the effectiveOpacity(). The effective opacity decides how the item is rendered.

The opacity property decides the state of the painter passed to the paint() function. If the item is cached, i.e., ItemCoordinateCache or DeviceCoordinateCache, the effective property will be applied to the item's cache as it is rendered.

The default opacity is 1.0; fully opaque.

This function was introduced in Qt 4.5.

See also setOpacity(), paint(), ItemIgnoresParentOpacity, and ItemDoesntPropagateOpacityToChildren.

QPainterPath QGraphicsItem.opaqueArea (self)

This virtual function returns a shape representing the area where this item is opaque. An area is opaque if it is filled using an opaque brush or color (i.e., not transparent).

This function is used by isObscuredBy(), which is called by underlying items to determine if they are obscured by this item.

The default implementation returns an empty QPainterPath, indicating that this item is completely transparent and does not obscure any other items.

See also isObscuredBy(), isObscured(), and shape().

QGraphicsItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

This function, which is usually called by QGraphicsView, paints the contents of an item in local coordinates.

Reimplement this function in a QGraphicsItem subclass to provide the item's painting implementation, using painter. The option parameter provides style options for the item, such as its state, exposed area and its level-of-detail hints. The widget argument is optional. If provided, it points to the widget that is being painted on; otherwise, it is 0. For cached painting, widget is always 0.

 void RoundRectItem.paint(QPainter *painter,
                           const QStyleOptionGraphicsItem *option,
                           QWidget *widget)
 {
     painter->drawRoundedRect(-10, -10, 20, 20, 5, 5);
 }

The painter's pen is 0-width by default, and its pen is initialized to the QPalette.Text brush from the paint device's palette. The brush is initialized to QPalette.Window.

Make sure to constrain all painting inside the boundaries of boundingRect() to avoid rendering artifacts (as QGraphicsView does not clip the painter for you). In particular, when QPainter renders the outline of a shape using an assigned QPen, half of the outline will be drawn outside, and half inside, the shape you're rendering (e.g., with a pen width of 2 units, you must draw outlines 1 unit inside boundingRect()). QGraphicsItem does not support use of cosmetic pens with a non-zero width.

All painting is done in local coordinates.

See also setCacheMode(), QPen.width(), Item Coordinates, and ItemUsesExtendedStyleOption.

QGraphicsItem QGraphicsItem.panel (self)

Returns the item's panel, or 0 if this item does not have a panel. If the item is a panel, it will return itself. Otherwise it will return the closest ancestor that is a panel.

This function was introduced in Qt 4.6.

See also isPanel() and ItemIsPanel.

PanelModality QGraphicsItem.panelModality (self)

Returns the modality for this item.

This function was introduced in Qt 4.6.

See also setPanelModality().

QGraphicsItem QGraphicsItem.parentItem (self)

Returns a pointer to this item's parent item. If this item does not have a parent, 0 is returned.

See also setParentItem() and childItems().

QGraphicsObject QGraphicsItem.parentObject (self)

Returns a pointer to the item's parent, cast to a QGraphicsObject. returns 0 if the parent item is not a QGraphicsObject.

This function was introduced in Qt 4.6.

See also parentItem() and childItems().

QGraphicsWidget QGraphicsItem.parentWidget (self)

Returns a pointer to the item's parent widget. The item's parent widget is the closest parent item that is a widget.

This function was introduced in Qt 4.4.

See also parentItem() and childItems().

QPointF QGraphicsItem.pos (self)

Returns the position of the item in parent coordinates. If the item has no parent, its position is given in scene coordinates.

The position of the item describes its origin (local coordinate (0, 0)) in parent coordinates; this function returns the same as mapToParent(0, 0).

For convenience, you can also call scenePos() to determine the item's position in scene coordinates, regardless of its parent.

See also x(), y(), setPos(), transform(), and The Graphics View Coordinate System.

QGraphicsItem.prepareGeometryChange (self)

Prepares the item for a geometry change. Call this function before changing the bounding rect of an item to keep QGraphicsScene's index up to date.

prepareGeometryChange() will call update() if this is necessary.

Example:

 void CircleItem.setRadius(qreal newRadius)
 {
     if (radius != newRadius) {
         prepareGeometryChange();
         radius = newRadius;
     }
 }

See also boundingRect().

QGraphicsItem.removeSceneEventFilter (self, QGraphicsItem filterItem)

Removes an event filter on this item from filterItem.

See also installSceneEventFilter().

QGraphicsItem.resetMatrix (self)

QGraphicsItem.resetTransform (self)

Resets this item's transformation matrix to the identity matrix or all the transformation properties to their default values. This is equivalent to calling setTransform(QTransform()).

This function was introduced in Qt 4.3.

See also setTransform() and transform().

QGraphicsItem.rotate (self, float angle)

float QGraphicsItem.rotation (self)

Returns the clockwise rotation, in degrees, around the Z axis. The default value is 0 (i.e., the item is not rotated).

The rotation is combined with the item's scale(), transform() and transformations() to map the item's coordinate system to the parent item.

This function was introduced in Qt 4.6.

See also setRotation(), transformOriginPoint(), and Transformations.

QGraphicsItem.scale (self, float sx, float sy)

Returns the scale factor of the item. The default scale factor is 1.0 (i.e., the item is not scaled).

The scale is combined with the item's rotation(), transform() and transformations() to map the item's coordinate system to the parent item.

This function was introduced in Qt 4.6.

See also setScale(), rotation(), and Transformations.

float QGraphicsItem.scale (self)

QGraphicsScene QGraphicsItem.scene (self)

Returns the current scene for the item, or 0 if the item is not stored in a scene.

To add or move an item to a scene, call QGraphicsScene.addItem().

QRectF QGraphicsItem.sceneBoundingRect (self)

Returns the bounding rect of this item in scene coordinates, by combining sceneTransform() with boundingRect().

See also boundingRect() and The Graphics View Coordinate System.

bool QGraphicsItem.sceneEvent (self, QEvent event)

This virtual function receives events to this item. Reimplement this function to intercept events before they are dispatched to the specialized event handlers contextMenuEvent(), focusInEvent(), focusOutEvent(), hoverEnterEvent(), hoverMoveEvent(), hoverLeaveEvent(), keyPressEvent(), keyReleaseEvent(), mousePressEvent(), mouseReleaseEvent(), mouseMoveEvent(), and mouseDoubleClickEvent().

Returns true if the event was recognized and handled; otherwise, (e.g., if the event type was not recognized,) false is returned.

event is the intercepted event.

bool QGraphicsItem.sceneEventFilter (self, QGraphicsItem watched, QEvent event)

Filters events for the item watched. event is the filtered event.

Reimplementing this function in a subclass makes it possible for the item to be used as an event filter for other items, intercepting all the events send to those items before they are able to respond.

Reimplementations must return true to prevent further processing of a given event, ensuring that it will not be delivered to the watched item, or return false to indicate that the event should be propagated further by the event system.

See also installSceneEventFilter().

QMatrix QGraphicsItem.sceneMatrix (self)

QPointF QGraphicsItem.scenePos (self)

Returns the item's position in scene coordinates. This is equivalent to calling mapToScene(0, 0).

See also pos(), sceneTransform(), and The Graphics View Coordinate System.

QTransform QGraphicsItem.sceneTransform (self)

Returns this item's scene transformation matrix. This matrix can be used to map coordinates and geometrical shapes from this item's local coordinate system to the scene's coordinate system. To map coordinates from the scene, you must first invert the returned matrix.

Example:

 QGraphicsRectItem rect;
 rect.setPos(100, 100);

 rect.sceneTransform().map(QPointF(0, 0));
 // returns QPointF(100, 100);

 rect.sceneTransform().inverted().map(QPointF(100, 100));
 // returns QPointF(0, 0);

Unlike transform(), which returns only an item's local transformation, this function includes the item's (and any parents') position, and all the transfomation properties.

This function was introduced in Qt 4.3.

See also transform(), setTransform(), scenePos(), The Graphics View Coordinate System, and Transformations.

QGraphicsItem.scroll (self, float dx, float dy, QRectF rect = QRectF())

Scrolls the contents of rect by dx, dy. If rect is a null rect (the default), the item's bounding rect is scrolled.

Scrolling provides a fast alternative to simply redrawing when the contents of the item (or parts of the item) are shifted vertically or horizontally. Depending on the current transformation and the capabilities of the paint device (i.e., the viewport), this operation may consist of simply moving pixels from one location to another using memmove(). In most cases this is faster than rerendering the entire area.

After scrolling, the item will issue an update for the newly exposed areas. If scrolling is not supported (e.g., you are rendering to an OpenGL viewport, which does not benefit from scroll optimizations), this function is equivalent to calling update(rect).

Note: Scrolling is only supported when QGraphicsItem.ItemCoordinateCache is enabled; in all other cases calling this function is equivalent to calling update(rect). If you for sure know that the item is opaque and not overlapped by other items, you can map the rect to viewport coordinates and scroll the viewport.

 QTransform xform = item->deviceTransform(view->viewportTransform());
 QRect deviceRect = xform.mapRect(rect).toAlignedRect();
 view->viewport()->scroll(dx, dy, deviceRect);

This function was introduced in Qt 4.4.

See also boundingRect().

QGraphicsItem.setAcceptDrops (self, bool on)

If on is true, this item will accept drag and drop events; otherwise, it is transparent for drag and drop events. By default, items do not accept drag and drop events.

See also acceptDrops().

QGraphicsItem.setAcceptedMouseButtons (self, Qt.MouseButtons buttons)

Sets the mouse buttons that this item accepts mouse events for.

By default, all mouse buttons are accepted. If an item accepts a mouse button, it will become the mouse grabber item when a mouse press event is delivered for that button. However, if the item does not accept the mouse button, QGraphicsScene will forward the mouse events to the first item beneath it that does.

To disable mouse events for an item (i.e., make it transparent for mouse events), call setAcceptedMouseButtons(0).

See also acceptedMouseButtons() and mousePressEvent().

QGraphicsItem.setAcceptHoverEvents (self, bool enabled)

If enabled is true, this item will accept hover events; otherwise, it will ignore them. By default, items do not accept hover events.

Hover events are delivered when there is no current mouse grabber item. They are sent when the mouse cursor enters an item, when it moves around inside the item, and when the cursor leaves an item. Hover events are commonly used to highlight an item when it's entered, and for tracking the mouse cursor as it hovers over the item (equivalent to QWidget.mouseTracking).

Parent items receive hover enter events before their children, and leave events after their children. The parent does not receive a hover leave event if the cursor enters a child, though; the parent stays "hovered" until the cursor leaves its area, including its children's areas.

If a parent item handles child events, it will receive hover move, drag move, and drop events as the cursor passes through its children, but it does not receive hover enter and hover leave, nor drag enter and drag leave events on behalf of its children.

A QGraphicsWidget with window decorations will accept hover events regardless of the value of acceptHoverEvents().

This function was introduced in Qt 4.4.

See also acceptHoverEvents(), hoverEnterEvent(), hoverMoveEvent(), and hoverLeaveEvent().

QGraphicsItem.setAcceptsHoverEvents (self, bool enabled)

QGraphicsItem.setAcceptTouchEvents (self, bool enabled)

If enabled is true, this item will accept touch events; otherwise, it will ignore them. By default, items do not accept touch events.

This function was introduced in Qt 4.6.

See also acceptTouchEvents().

QGraphicsItem.setActive (self, bool active)

If active is true, and the scene is active, this item's panel will be activated. Otherwise, the panel is deactivated.

If the item is not part of an active scene, active will decide what happens to the panel when the scene becomes active or the item is added to the scene. If true, the item's panel will be activated when the item is either added to the scene or the scene is activated. Otherwise, the item will stay inactive independent of the scene's activated state.

This function was introduced in Qt 4.6.

See also isPanel(), QGraphicsScene.setActivePanel(), and QGraphicsScene.isActive().

QGraphicsItem.setBoundingRegionGranularity (self, float granularity)

Sets the bounding region granularity to granularity; a value between and including 0 and 1. The default value is 0 (i.e., the lowest granularity, where the bounding region corresponds to the item's bounding rectangle).

The granularity is used by boundingRegion() to calculate how fine the bounding region of the item should be. The highest achievable granularity is 1, where boundingRegion() will return the finest outline possible for the respective device (e.g., for a QGraphicsView viewport, this gives you a pixel-perfect bounding region). The lowest possible granularity is 0. The value of granularity describes the ratio between device resolution and the resolution of the bounding region (e.g., a value of 0.25 will provide a region where each chunk corresponds to 4x4 device units / pixels).

This function was introduced in Qt 4.4.

See also boundingRegionGranularity().

QGraphicsItem.setCacheMode (self, CacheMode mode, QSize logicalCacheSize = QSize())

Sets the item's cache mode to mode.

The optional logicalCacheSize argument is used only by ItemCoordinateCache mode, and describes the resolution of the cache buffer; if logicalCacheSize is (100, 100), QGraphicsItem will fit the item into 100x100 pixels in graphics memory, regardless of the logical size of the item itself. By default QGraphicsItem uses the size of boundingRect(). For all other cache modes than ItemCoordinateCache, logicalCacheSize is ignored.

Caching can speed up rendering if your item spends a significant time redrawing itself. In some cases the cache can also slow down rendering, in particular when the item spends less time redrawing than QGraphicsItem spends redrawing from the cache. When enabled, the item's paint() function will be called only once for each call to update(); for any subsequent repaint requests, the Graphics View framework will redraw from the cache. This approach works particularly well with QGLWidget, which stores all the cache as OpenGL textures.

Be aware that QPixmapCache's cache limit may need to be changed to obtain optimal performance.

You can read more about the different cache modes in the CacheMode documentation.

This function was introduced in Qt 4.4.

See also cacheMode(), CacheMode, and QPixmapCache.setCacheLimit().

QGraphicsItem.setCursor (self, QCursor cursor)

Sets the current cursor shape for the item to cursor. The mouse cursor will assume this shape when it's over this item. See the list of predefined cursor objects for a range of useful shapes.

An editor item might want to use an I-beam cursor:

 item->setCursor(Qt.IBeamCursor);

If no cursor has been set, the cursor of the item beneath is used.

See also cursor(), hasCursor(), unsetCursor(), QWidget.cursor, and QApplication.overrideCursor().

QGraphicsItem.setData (self, int key, QVariant value)

Sets this item's custom data for the key key to value.

Custom item data is useful for storing arbitrary properties for any item. Qt does not use this feature for storing data; it is provided solely for the convenience of the user.

See also data().

QGraphicsItem.setEnabled (self, bool enabled)

If enabled is true, the item is enabled; otherwise, it is disabled.

Disabled items are visible, but they do not receive any events, and cannot take focus nor be selected. Mouse events are discarded; they are not propagated unless the item is also invisible, or if it does not accept mouse events (see acceptedMouseButtons()). A disabled item cannot become the mouse grabber, and as a result of this, an item loses the grab if it becomes disabled when grabbing the mouse, just like it loses focus if it had focus when it was disabled.

Disabled items are traditionally drawn using grayed-out colors (see QPalette.Disabled).

If you disable a parent item, all its children will also be disabled. If you enable a parent item, all children will be enabled, unless they have been explicitly disabled (i.e., if you call setEnabled(false) on a child, it will not be reenabled if its parent is disabled, and then enabled again).

Items are enabled by default.

Note: If you install an event filter, you can still intercept events before they are delivered to items; this mechanism disregards the item's enabled state.

See also isEnabled().

QGraphicsItem.setFiltersChildEvents (self, bool enabled)

If enabled is true, this item is set to filter all events for all its children (i.e., all events intented for any of its children are instead sent to this item); otherwise, if enabled is false, this item will only handle its own events. The default value is false.

This function was introduced in Qt 4.6.

See also filtersChildEvents().

QGraphicsItem.setFlag (self, GraphicsItemFlag flag, bool enabled = True)

If enabled is true, the item flag flag is enabled; otherwise, it is disabled.

See also flags() and setFlags().

QGraphicsItem.setFlags (self, GraphicsItemFlags flags)

Sets the item flags to flags. All flags in flags are enabled; all flags not in flags are disabled.

If the item had focus and flags does not enable ItemIsFocusable, the item loses focus as a result of calling this function. Similarly, if the item was selected, and flags does not enabled ItemIsSelectable, the item is automatically unselected.

By default, no flags are enabled. (QGraphicsWidget enables the ItemSendsGeometryChanges flag by default in order to track position changes.)

See also flags() and setFlag().

QGraphicsItem.setFocus (self, Qt.FocusReason focusReason = Qt.OtherFocusReason)

Gives keyboard input focus to this item. The focusReason argument will be passed into any focus event generated by this function; it is used to give an explanation of what caused the item to get focus.

Only enabled items that set the ItemIsFocusable flag can accept keyboard focus.

If this item is not visible, not active, or not associated with a scene, it will not gain immediate input focus. However, it will be registered as the preferred focus item for its subtree of items, should it later become visible.

As a result of calling this function, this item will receive a focus in event with focusReason. If another item already has focus, that item will first receive a focus out event indicating that it has lost input focus.

See also clearFocus(), hasFocus(), focusItem(), and focusProxy().

QGraphicsItem.setFocusProxy (self, QGraphicsItem item)

Sets the item's focus proxy to item.

If an item has a focus proxy, the focus proxy will receive input focus when the item gains input focus. The item itself will still have focus (i.e., hasFocus() will return true), but only the focus proxy will receive the keyboard input.

A focus proxy can itself have a focus proxy, and so on. In such case, keyboard input will be handled by the outermost focus proxy.

The focus proxy item must belong to the same scene as this item.

This function was introduced in Qt 4.6.

See also focusProxy(), setFocus(), and hasFocus().

QGraphicsItem.setGraphicsEffect (self, QGraphicsEffect effect)

The effect argument has it's ownership transferred to Qt.

Sets effect as the item's effect. If there already is an effect installed on this item, QGraphicsItem will delete the existing effect before installing the new effect.

If effect is the installed on a different item, setGraphicsEffect() will remove the effect from the item and install it on this item.

QGraphicsItem takes ownership of effect.

Note: This function will apply the effect on itself and all its children.

This function was introduced in Qt 4.6.

See also graphicsEffect().

QGraphicsItem.setGroup (self, QGraphicsItemGroup group)

Adds this item to the item group group. If group is 0, this item is removed from any current group and added as a child of the previous group's parent.

See also group() and QGraphicsScene.createItemGroup().

QGraphicsItem.setHandlesChildEvents (self, bool enabled)

QGraphicsItem.setInputMethodHints (self, Qt.InputMethodHints hints)

Sets the current input method hints of this item to hints.

This function was introduced in Qt 4.6.

See also inputMethodHints(), inputMethodQuery(), and QInputContext.

QGraphicsItem.setMatrix (self, QMatrix matrix, bool combine = False)

QGraphicsItem.setOpacity (self, float opacity)

Sets this item's local opacity, between 0.0 (transparent) and 1.0 (opaque). The item's local opacity is combined with parent and ancestor opacities into the effectiveOpacity().

By default, opacity propagates from parent to child, so if a parent's opacity is 0.5 and the child is also 0.5, the child's effective opacity will be 0.25.

The opacity property decides the state of the painter passed to the paint() function. If the item is cached, i.e., ItemCoordinateCache or DeviceCoordinateCache, the effective property will be applied to the item's cache as it is rendered.

There are two item flags that affect how the item's opacity is combined with the parent: ItemIgnoresParentOpacity and ItemDoesntPropagateOpacityToChildren.

This function was introduced in Qt 4.5.

See also opacity() and effectiveOpacity().

QGraphicsItem.setPanelModality (self, PanelModality panelModality)

Sets the modality for this item to panelModality.

Changing the modality of a visible item takes effect immediately.

This function was introduced in Qt 4.6.

See also panelModality().

QGraphicsItem.setParentItem (self, QGraphicsItem parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Sets this item's parent item to newParent. If this item already has a parent, it is first removed from the previous parent. If newParent is 0, this item will become a top-level item.

Note that this implicitly adds this graphics item to the scene of the parent. You should not add the item to the scene yourself.

Calling this function on an item that is an ancestor of newParent have undefined behaviour.

See also parentItem() and childItems().

QGraphicsItem.setPos (self, QPointF pos)

Sets the position of the item to pos, which is in parent coordinates. For items with no parent, pos is in scene coordinates.

The position of the item describes its origin (local coordinate (0, 0)) in parent coordinates.

See also pos(), scenePos(), and The Graphics View Coordinate System.

QGraphicsItem.setPos (self, float ax, float ay)

This is an overloaded function.

This convenience function is equivalent to calling setPos(QPointF(x, y)).

QGraphicsItem.setRotation (self, float angle)

Sets the clockwise rotation angle, in degrees, around the Z axis. The default value is 0 (i.e., the item is not rotated). Assigning a negative value will rotate the item counter-clockwise. Normally the rotation angle is in the range (-360, 360), but it's also possible to assign values outside of this range (e.g., a rotation of 370 degrees is the same as a rotation of 10 degrees).

The item is rotated around its transform origin point, which by default is (0, 0). You can select a different transformation origin by calling setTransformOriginPoint().

The rotation is combined with the item's scale(), transform() and transformations() to map the item's coordinate system to the parent item.

This function was introduced in Qt 4.6.

See also rotation(), setTransformOriginPoint(), and Transformations.

QGraphicsItem.setScale (self, float scale)

Sets the scale factor of the item. The default scale factor is 1.0 (i.e., the item is not scaled). A scale factor of 0.0 will collapse the item to a single point. If you provide a negative scale factor, the item will be flipped and mirrored (i.e., rotated 180 degrees).

The item is scaled around its transform origin point, which by default is (0, 0). You can select a different transformation origin by calling setTransformOriginPoint().

The scale is combined with the item's rotation(), transform() and transformations() to map the item's coordinate system to the parent item.

This function was introduced in Qt 4.6.

See also scale(), setTransformOriginPoint(), and Transformations Example.

QGraphicsItem.setSelected (self, bool selected)

If selected is true and this item is selectable, this item is selected; otherwise, it is unselected.

If the item is in a group, the whole group's selected state is toggled by this function. If the group is selected, all items in the group are also selected, and if the group is not selected, no item in the group is selected.

Only visible, enabled, selectable items can be selected. If selected is true and this item is either invisible or disabled or unselectable, this function does nothing.

By default, items cannot be selected. To enable selection, set the ItemIsSelectable flag.

This function is provided for convenience, allowing individual toggling of the selected state of an item. However, a more common way of selecting items is to call QGraphicsScene.setSelectionArea(), which will call this function for all visible, enabled, and selectable items within a specified area on the scene.

See also isSelected() and QGraphicsScene.selectedItems().

QGraphicsItem.setToolTip (self, QString toolTip)

Sets the item's tool tip to toolTip. If toolTip is empty, the item's tool tip is cleared.

See also toolTip() and QToolTip.

QGraphicsItem.setTransform (self, QTransform matrix, bool combine = False)

Sets the item's current transformation matrix to matrix.

If combine is true, then matrix is combined with the current matrix; otherwise, matrix replaces the current matrix. combine is false by default.

To simplify interation with items using a transformed view, QGraphicsItem provides mapTo... and mapFrom... functions that can translate between items' and the scene's coordinates. For example, you can call mapToScene() to map an item coordiate to a scene coordinate, or mapFromScene() to map from scene coordinates to item coordinates.

The transformation matrix is combined with the item's rotation(), scale() and transformations() into a combined transformation that maps the item's coordinate system to its parent.

This function was introduced in Qt 4.3.

See also transform(), setRotation(), setScale(), setTransformOriginPoint(), The Graphics View Coordinate System, and Transformations.

QGraphicsItem.setTransformations (self, list-of-QGraphicsTransform transformations)

Sets a list of graphics transformations (QGraphicsTransform) that currently apply to this item.

If all you want is to rotate or scale an item, you should call setRotation() or setScale() instead. If you want to set an arbitrary transformation on an item, you can call setTransform().

QGraphicsTransform is for applying and controlling a chain of individual transformation operations on an item. It's particularly useful in animations, where each transform operation needs to be interpolated independently, or differently.

The transformations are combined with the item's rotation(), scale() and transform() to map the item's coordinate system to the parent item.

This function was introduced in Qt 4.6.

See also transformations(), scale(), setTransformOriginPoint(), and Transformations.

QGraphicsItem.setTransformOriginPoint (self, QPointF origin)

Sets the origin point for the transformation in item coordinates.

This function was introduced in Qt 4.6.

See also transformOriginPoint() and Transformations.

QGraphicsItem.setTransformOriginPoint (self, float ax, float ay)

This is an overloaded function.

Sets the origin point for the transformation in item coordinates. This is equivalent to calling setTransformOriginPoint(QPointF(x, y)).

This function was introduced in Qt 4.6.

See also setTransformOriginPoint() and Transformations.

QGraphicsItem.setVisible (self, bool visible)

If visible is true, the item is made visible. Otherwise, the item is made invisible. Invisible items are not painted, nor do they receive any events. In particular, mouse events pass right through invisible items, and are delivered to any item that may be behind. Invisible items are also unselectable, they cannot take input focus, and are not detected by QGraphicsScene's item location functions.

If an item becomes invisible while grabbing the mouse, (i.e., while it is receiving mouse events,) it will automatically lose the mouse grab, and the grab is not regained by making the item visible again; it must receive a new mouse press to regain the mouse grab.

Similarly, an invisible item cannot have focus, so if the item has focus when it becomes invisible, it will lose focus, and the focus is not regained by simply making the item visible again.

If you hide a parent item, all its children will also be hidden. If you show a parent item, all children will be shown, unless they have been explicitly hidden (i.e., if you call setVisible(false) on a child, it will not be reshown even if its parent is hidden, and then shown again).

Items are visible by default; it is unnecessary to call setVisible() on a new item.

See also isVisible(), show(), and hide().

QGraphicsItem.setX (self, float x)

Set's the x coordinate of the item's position. Equivalent to calling setPos(x, y()).

This function was introduced in Qt 4.6.

See also x() and setPos().

QGraphicsItem.setY (self, float y)

Set's the y coordinate of the item's position. Equivalent to calling setPos(x(), y).

This function was introduced in Qt 4.6.

See also y(), x(), and setPos().

QGraphicsItem.setZValue (self, float z)

Sets the Z-value of the item to z. The Z value decides the stacking order of sibling (neighboring) items. A sibling item of high Z value will always be drawn on top of another sibling item with a lower Z value.

If you restore the Z value, the item's insertion order will decide its stacking order.

The Z-value does not affect the item's size in any way.

The default Z-value is 0.

See also zValue(), Sorting, stackBefore(), and ItemStacksBehindParent.

QPainterPath QGraphicsItem.shape (self)

Returns the shape of this item as a QPainterPath in local coordinates. The shape is used for many things, including collision detection, hit tests, and for the QGraphicsScene.items() functions.

The default implementation calls boundingRect() to return a simple rectangular shape, but subclasses can reimplement this function to return a more accurate shape for non-rectangular items. For example, a round item may choose to return an elliptic shape for better collision detection. For example:

 QPainterPath RoundItem.shape() const
 {
     QPainterPath path;
     path.addEllipse(boundingRect());
     return path;
 }

The outline of a shape can vary depending on the width and style of the pen used when drawing. If you want to include this outline in the item's shape, you can create a shape from the stroke using QPainterPathStroker.

This function is called by the default implementations of contains() and collidesWithPath().

See also boundingRect(), contains(), prepareGeometryChange(), and QPainterPathStroker.

QGraphicsItem.shear (self, float sh, float sv)

QGraphicsItem.show (self)

Shows the item. (Items are visible by default.)

This convenience function is equivalent to calling setVisible(true).

See also hide() and setVisible().

QGraphicsItem.stackBefore (self, QGraphicsItem sibling)

Stacks this item before sibling, which must be a sibling item (i.e., the two items must share the same parent item, or must both be toplevel items). The sibling must have the same Z value as this item, otherwise calling this function will have no effect.

By default, all sibling items are stacked by insertion order (i.e., the first item you add is drawn before the next item you add). If two items' Z values are different, then the item with the highest Z value is drawn on top. When the Z values are the same, the insertion order will decide the stacking order.

This function was introduced in Qt 4.6.

See also setZValue(), ItemStacksBehindParent, and Sorting.

QGraphicsObject QGraphicsItem.toGraphicsObject (self)

Return the graphics item cast to a QGraphicsObject, if the class is actually a graphics object, 0 otherwise.

This function was introduced in Qt 4.6.

QString QGraphicsItem.toolTip (self)

Returns the item's tool tip, or an empty QString if no tool tip has been set.

See also setToolTip() and QToolTip.

QGraphicsItem QGraphicsItem.topLevelItem (self)

Returns this item's top-level item. The top-level item is the item's topmost ancestor item whose parent is 0. If an item has no parent, its own pointer is returned (i.e., a top-level item is its own top-level item).

See also parentItem().

QGraphicsWidget QGraphicsItem.topLevelWidget (self)

Returns a pointer to the item's top level widget (i.e., the item's ancestor whose parent is 0, or whose parent is not a widget), or 0 if this item does not have a top level widget. If the item is its own top level widget, this function returns a pointer to the item itself.

This function was introduced in Qt 4.4.

QTransform QGraphicsItem.transform (self)

Returns this item's transformation matrix.

The transformation matrix is combined with the item's rotation(), scale() and transformations() into a combined transformations for the item.

The default transformation matrix is an identity matrix.

This function was introduced in Qt 4.3.

See also setTransform() and sceneTransform().

list-of-QGraphicsTransform QGraphicsItem.transformations (self)

Returns a list of graphics transforms that currently apply to this item.

QGraphicsTransform is for applying and controlling a chain of individual transformation operations on an item. It's particularly useful in animations, where each transform operation needs to be interpolated independently, or differently.

The transformations are combined with the item's rotation(), scale() and transform() to map the item's coordinate system to the parent item.

This function was introduced in Qt 4.6.

See also setTransformations(), scale(), rotation(), transformOriginPoint(), and Transformations.

QPointF QGraphicsItem.transformOriginPoint (self)

Returns the origin point for the transformation in item coordinates.

The default is QPointF(0,0).

This function was introduced in Qt 4.6.

See also setTransformOriginPoint() and Transformations.

QGraphicsItem.translate (self, float dx, float dy)

int QGraphicsItem.type (self)

Returns the type of an item as an int. All standard graphicsitem classes are associated with a unique value; see QGraphicsItem.Type. This type information is used by qgraphicsitem_cast() to distinguish between types.

The default implementation (in QGraphicsItem) returns UserType.

To enable use of qgraphicsitem_cast() with a custom item, reimplement this function and declare a Type enum value equal to your custom item's type. Custom items must return a value larger than or equal to UserType (65536).

For example:

 class CustomItem : public QGraphicsItem
 {
    ...
    enum { Type = UserType + 1 };

    int type() const
    {
        // Enable the use of qgraphicsitem_cast with this item.
        return Type;
    }
    ...
 };

See also UserType.

QGraphicsItem.ungrabKeyboard (self)

Releases the keyboard grab.

This function was introduced in Qt 4.4.

See also grabKeyboard() and ungrabMouse().

QGraphicsItem.ungrabMouse (self)

Releases the mouse grab.

This function was introduced in Qt 4.4.

See also grabMouse() and ungrabKeyboard().

QGraphicsItem.unsetCursor (self)

Clears the cursor from this item.

See also hasCursor() and setCursor().

QGraphicsItem.update (self, QRectF rect = QRectF())

Schedules a redraw of the area covered by rect in this item. You can call this function whenever your item needs to be redrawn, such as if it changes appearance or size.

This function does not cause an immediate paint; instead it schedules a paint request that is processed by QGraphicsView after control reaches the event loop. The item will only be redrawn if it is visible in any associated view.

As a side effect of the item being repainted, other items that overlap the area rect may also be repainted.

If the item is invisible (i.e., isVisible() returns false), this function does nothing.

See also paint() and boundingRect().

QGraphicsItem.update (self, float ax, float ay, float width, float height)

This is an overloaded function.

This convenience function is equivalent to calling update(QRectF(x, y, width, height)).

QGraphicsItem.updateMicroFocus (self)

Updates the item's micro focus.

This function was introduced in Qt 4.7.

See also QInputContext.

QGraphicsItem.wheelEvent (self, QGraphicsSceneWheelEvent event)

This event handler, for event event, can be reimplemented to receive wheel events for this item. If you reimplement this function, event will be accepted by default.

If you ignore the event, (i.e., by calling QEvent.ignore(),) it will propagate to any item beneath this item. If no items accept the event, it will be ignored by the scene, and propagate to the view (e.g., the view's vertical scroll bar).

The default implementation ignores the event.

See also sceneEvent().

QGraphicsWidget QGraphicsItem.window (self)

Returns the item's window, or 0 if this item does not have a window. If the item is a window, it will return itself. Otherwise it will return the closest ancestor that is a window.

This function was introduced in Qt 4.4.

See also QGraphicsWidget.isWindow().

float QGraphicsItem.x (self)

This convenience function is equivalent to calling pos().x().

See also setX() and y().

float QGraphicsItem.y (self)

This convenience function is equivalent to calling pos().y().

See also setY() and x().

float QGraphicsItem.zValue (self)

Returns the Z-value of the item. The Z-value affects the stacking order of sibling (neighboring) items.

The default Z-value is 0.

See also setZValue(), Sorting, stackBefore(), and ItemStacksBehindParent.


Member Documentation

int UserType

This member should be treated as a constant.

The lowest permitted type value for custom items (subclasses of QGraphicsItem or any of the standard items). This value is used in conjunction with a reimplementation of QGraphicsItem.type() and declaring a Type enum value. Example:

 class CustomItem : public QGraphicsItem
 {
    ...
    enum { Type = UserType + 1 };

    int type() const
    {
        // Enable the use of qgraphicsitem_cast with this item.
        return Type;
    }
    ...
 };

Note: UserType = 65536


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsitemanimation.html0000644000076500000240000005016612536324505023120 0ustar philstaff00000000000000 QGraphicsItemAnimation Class Reference
  Home · All Classes · Modules

QGraphicsItemAnimation Class Reference
[QtGui module]

The QGraphicsItemAnimation class provides simple animation support for QGraphicsItem. More...

Inherits QObject.

Methods


Detailed Description

The QGraphicsItemAnimation class provides simple animation support for QGraphicsItem.

The QGraphicsItemAnimation class animates a QGraphicsItem. You can schedule changes to the item's transformation matrix at specified steps. The QGraphicsItemAnimation class has a current step value. When this value changes the transformations scheduled at that step are performed. The current step of the animation is set with the setStep() function.

QGraphicsItemAnimation will do a simple linear interpolation between the nearest adjacent scheduled changes to calculate the matrix. For instance, if you set the position of an item at values 0.0 and 1.0, the animation will show the item moving in a straight line between these positions. The same is true for scaling and rotation.

It is usual to use the class with a QTimeLine. The timeline's valueChanged() signal is then connected to the setStep() slot. For example, you can set up an item for rotation by calling setRotationAt() for different step values. The animations timeline is set with the setTimeLine() function.

An example animation with a timeline follows:

     QGraphicsItem *ball = new QGraphicsEllipseItem(0, 0, 20, 20);

     QTimeLine *timer = new QTimeLine(5000);
     timer->setFrameRange(0, 100);

     QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
     animation->setItem(ball);
     animation->setTimeLine(timer);

     for (int i = 0; i < 200; ++i)
         animation->setPosAt(i / 200.0, QPointF(i, i));

     QGraphicsScene *scene = new QGraphicsScene();
     scene->setSceneRect(0, 0, 250, 250);
     scene->addItem(ball);

     QGraphicsView *view = new QGraphicsView(scene);
     view->show();

     timer->start();

Note that steps lie between 0.0 and 1.0. It may be necessary to use setUpdateInterval(). The default update interval is 40 ms. A scheduled transformation cannot be removed when set, so scheduling several transformations of the same kind (e.g., rotations) at the same step is not recommended.


Method Documentation

QGraphicsItemAnimation.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an animation object with the given parent.

QGraphicsItemAnimation.afterAnimationStep (self, float step)

This method is meant to be overridden in subclasses that need to execute additional code after a new step has taken place. The animation step is provided for use in cases where the action depends on its value.

QGraphicsItemAnimation.beforeAnimationStep (self, float step)

This method is meant to be overridden by subclassed that needs to execute additional code before a new step takes place. The animation step is provided for use in cases where the action depends on its value.

QGraphicsItemAnimation.clear (self)

Clears the scheduled transformations used for the animation, but retains the item and timeline.

float QGraphicsItemAnimation.horizontalScaleAt (self, float step)

Returns the horizontal scale for the item at the specified step value.

See also setScaleAt().

float QGraphicsItemAnimation.horizontalShearAt (self, float step)

Returns the horizontal shear for the item at the specified step value.

See also setShearAt().

QGraphicsItem QGraphicsItemAnimation.item (self)

Returns the item on which the animation object operates.

See also setItem().

QMatrix QGraphicsItemAnimation.matrixAt (self, float step)

Returns the matrix used to transform the item at the specified step value.

QPointF QGraphicsItemAnimation.posAt (self, float step)

Returns the position of the item at the given step value.

See also setPosAt().

list-of-tuple-of-float-QPointF QGraphicsItemAnimation.posList (self)

Returns all explicitly inserted positions.

See also posAt() and setPosAt().

QGraphicsItemAnimation.reset (self)

This method is also a Qt slot with the C++ signature void reset().

float QGraphicsItemAnimation.rotationAt (self, float step)

Returns the angle at which the item is rotated at the specified step value.

See also setRotationAt().

list-of-tuple-of-float-float QGraphicsItemAnimation.rotationList (self)

Returns all explicitly inserted rotations.

See also rotationAt() and setRotationAt().

list-of-tuple-of-float-QPointF QGraphicsItemAnimation.scaleList (self)

Returns all explicitly inserted scales.

See also verticalScaleAt(), horizontalScaleAt(), and setScaleAt().

QGraphicsItemAnimation.setItem (self, QGraphicsItem item)

Sets the specified item to be used in the animation.

See also item().

QGraphicsItemAnimation.setPosAt (self, float step, QPointF pos)

Sets the position of the item at the given step value to the point specified.

See also posAt().

QGraphicsItemAnimation.setRotationAt (self, float step, float angle)

Sets the rotation of the item at the given step value to the angle specified.

See also rotationAt().

QGraphicsItemAnimation.setScaleAt (self, float step, float sx, float sy)

Sets the scale of the item at the given step value using the horizontal and vertical scale factors specified by sx and sy.

See also verticalScaleAt() and horizontalScaleAt().

QGraphicsItemAnimation.setShearAt (self, float step, float sh, float sv)

Sets the shear of the item at the given step value using the horizontal and vertical shear factors specified by sh and sv.

See also verticalShearAt() and horizontalShearAt().

QGraphicsItemAnimation.setStep (self, float x)

This method is also a Qt slot with the C++ signature void setStep(qreal).

Sets the current step value for the animation, causing the transformations scheduled at this step to be performed.

QGraphicsItemAnimation.setTimeLine (self, QTimeLine timeLine)

Sets the timeline object used to control the rate of animation to the timeLine specified.

See also timeLine().

QGraphicsItemAnimation.setTranslationAt (self, float step, float dx, float dy)

Sets the translation of the item at the given step value using the horizontal and vertical coordinates specified by dx and dy.

See also xTranslationAt() and yTranslationAt().

list-of-tuple-of-float-QPointF QGraphicsItemAnimation.shearList (self)

Returns all explicitly inserted shears.

See also verticalShearAt(), horizontalShearAt(), and setShearAt().

QTimeLine QGraphicsItemAnimation.timeLine (self)

Returns the timeline object used to control the rate at which the animation occurs.

See also setTimeLine().

list-of-tuple-of-float-QPointF QGraphicsItemAnimation.translationList (self)

Returns all explicitly inserted translations.

See also xTranslationAt(), yTranslationAt(), and setTranslationAt().

float QGraphicsItemAnimation.verticalScaleAt (self, float step)

Returns the vertical scale for the item at the specified step value.

See also setScaleAt().

float QGraphicsItemAnimation.verticalShearAt (self, float step)

Returns the vertical shear for the item at the specified step value.

See also setShearAt().

float QGraphicsItemAnimation.xTranslationAt (self, float step)

Returns the horizontal translation of the item at the specified step value.

See also setTranslationAt().

float QGraphicsItemAnimation.yTranslationAt (self, float step)

Returns the vertical translation of the item at the specified step value.

See also setTranslationAt().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsitemgroup.html0000644000076500000240000002335312536324505022273 0ustar philstaff00000000000000 QGraphicsItemGroup Class Reference
  Home · All Classes · Modules

QGraphicsItemGroup Class Reference
[QtGui module]

The QGraphicsItemGroup class provides a container that treats a group of items as a single item. More...

Inherits QGraphicsItem.

Methods


Detailed Description

The QGraphicsItemGroup class provides a container that treats a group of items as a single item.

A QGraphicsItemGroup is a special type of compound item that treats itself and all its children as one item (i.e., all events and geometries for all children are merged together). It's common to use item groups in presentation tools, when the user wants to group several smaller items into one big item in order to simplify moving and copying of items.

If all you want is to store items inside other items, you can use any QGraphicsItem directly by passing a suitable parent to setParentItem().

The boundingRect() function of QGraphicsItemGroup returns the bounding rectangle of all items in the item group. QGraphicsItemGroup ignores the ItemIgnoresTransformations flag on its children (i.e., with respect to the geometry of the group item, the children are treated as if they were transformable).

There are two ways to construct an item group. The easiest and most common approach is to pass a list of items (e.g., all selected items) to QGraphicsScene.createItemGroup(), which returns a new QGraphicsItemGroup item. The other approach is to manually construct a QGraphicsItemGroup item, add it to the scene calling QGraphicsScene.addItem(), and then add items to the group manually, one at a time by calling addToGroup(). To dismantle ("ungroup") an item group, you can either call QGraphicsScene.destroyItemGroup(), or you can manually remove all items from the group by calling removeFromGroup().

 // Group all selected items together
 QGraphicsItemGroup *group = scene->createItemGroup(scene->selecteditems());

 // Destroy the group, and delete the group item
 scene->destroyItemGroup(group);

The operation of adding and removing items preserves the items' scene-relative position and transformation, as opposed to calling setParentItem(), where only the child item's parent-relative position and transformation are kept.

The addtoGroup() function reparents the target item to this item group, keeping the item's position and transformation intact relative to the scene. Visually, this means that items added via addToGroup() will remain completely unchanged as a result of this operation, regardless of the item or the group's current position or transformation; although the item's position and matrix are likely to change.

The removeFromGroup() function has similar semantics to setParentItem(); it reparents the item to the parent item of the item group. As with addToGroup(), the item's scene-relative position and transformation remain intact.


Method Documentation

QGraphicsItemGroup.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsItemGroup. parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsItemGroup.addToGroup (self, QGraphicsItem item)

The item argument has it's ownership transferred to Qt.

Adds the given item and item's child items to this item group. The item and child items will be reparented to this group, but its position and transformation relative to the scene will stay intact.

See also removeFromGroup() and QGraphicsScene.createItemGroup().

QRectF QGraphicsItemGroup.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

Returns the bounding rect of this group item, and all its children.

bool QGraphicsItemGroup.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QPainterPath QGraphicsItemGroup.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

QGraphicsItemGroup.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

Reimplemented from QGraphicsItem.paint().

QGraphicsItemGroup.removeFromGroup (self, QGraphicsItem item)

Removes the specified item from this group. The item will be reparented to this group's parent item, or to 0 if this group has no parent. Its position and transformation relative to the scene will stay intact.

See also addToGroup() and QGraphicsScene.destroyItemGroup().

int QGraphicsItemGroup.type (self)

Reimplemented from QGraphicsItem.type().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicslayout.html0000644000076500000240000004407312536324504021576 0ustar philstaff00000000000000 QGraphicsLayout Class Reference
  Home · All Classes · Modules

QGraphicsLayout Class Reference
[QtGui module]

The QGraphicsLayout class provides the base class for all layouts in Graphics View. More...

Inherits QGraphicsLayoutItem.

Inherited by QGraphicsAnchorLayout, QGraphicsGridLayout and QGraphicsLinearLayout.

Methods

Special Methods


Detailed Description

The QGraphicsLayout class provides the base class for all layouts in Graphics View.

QGraphicsLayout is an abstract class that defines a virtual API for arranging QGraphicsWidget children and other QGraphicsLayoutItem objects for a QGraphicsWidget. QGraphicsWidget assigns responsibility to a QGraphicsLayout through QGraphicsWidget.setLayout(). As the widget is resized, the layout will automatically arrange the widget's children. QGraphicsLayout inherits QGraphicsLayoutItem, so, it can be managed by any layout, including its own subclasses.

Writing a Custom Layout

You can use QGraphicsLayout as a base to write your own custom layout (e.g., a flowlayout), but it is more common to use one of its subclasses instead - QGraphicsLinearLayout or QGraphicsGridLayout. When creating a custom layout, the following functions must be reimplemented as a bare minimum:

Function Description
QGraphicsLayoutItem.setGeometry() Notifies you when the geometry of the layout is set. You can store the geometry in your own layout class in a reimplementation of this function.
QGraphicsLayoutItem.sizeHint() Returns the layout's size hints.
QGraphicsLayout.count() Returns the number of items in your layout.
QGraphicsLayout.itemAt() Returns a pointer to an item in your layout.
QGraphicsLayout.removeAt() Removes an item from your layout without destroying it.

For more details on how to implement each function, refer to the individual function documentation.

Each layout defines its own API for arranging widgets and layout items. For example, with a grid layout, you require a row and a column index with optional row and column spans, alignment, spacing, and more. A linear layout, however, requires a single row or column index to position its items. For a grid layout, the order of insertion does not affect the layout in any way, but for a linear layout, the order is essential. When writing your own layout subclass, you are free to choose the API that best suits your layout.

For adding layout items to the custom layout, the QGraphicsLayout provides convenience function addChildLayoutItem(). The function will take care of automatically reparenting graphics items, if needed.

Activating the Layout

When the layout's geometry changes, QGraphicsLayout immediately rearranges all of its managed items by calling setGeometry() on each item. This rearrangement is called activating the layout.

QGraphicsLayout updates its own geometry to match the contentsRect() of the QGraphicsLayoutItem it is managing. Thus, it will automatically rearrange all its items when the widget is resized. QGraphicsLayout caches the sizes of all its managed items to avoid calling setGeometry() too often.

Note: A QGraphicsLayout will have the same geometry as the contentsRect() of the widget (not the layout) it is assigned to.

Activating the Layout Implicitly

The layout can be activated implicitly using one of two ways: by calling activate() or by calling invalidate(). Calling activate() activates the layout immediately. In contrast, calling invalidate() is delayed, as it posts a LayoutRequest event to the managed widget. Due to event compression, the activate() will only be called once after control has returned to the event loop. This is referred to as invalidating the layout. Invalidating the layout also invalidates any cached information. Also, the invalidate() function is a virtual function. So, you can invalidate your own cache in a subclass of QGraphicsLayout by reimplementing this function.

Event Handling

QGraphicsLayout listens to events for the widget it manages through the virtual widgetEvent() event handler. When the layout is assigned to a widget, all events delivered to the widget are first processed by widgetEvent(). This allows the layout to be aware of any relevant state changes on the widget such as visibility changes or layout direction changes.

Margin Handling

The margins of a QGraphicsLayout can be modified by reimplementing setContentsMargins() and getContentsMargins().


Method Documentation

QGraphicsLayout.__init__ (self, QGraphicsLayoutItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Contructs a QGraphicsLayout object.

parent is passed to QGraphicsLayoutItem's constructor and the QGraphicsLayoutItem's isLayout argument is set to true.

If parent is a QGraphicsWidget the layout will be installed on that widget. (Note that installing a layout will delete the old one installed.)

QGraphicsLayout.activate (self)

Activates the layout, causing all items in the layout to be immediately rearranged. This function is based on calling count() and itemAt(), and then calling setGeometry() on all items sequentially. When activated, the layout will adjust its geometry to its parent's contentsRect(). The parent will then invalidate any layout of its own.

If called in sequence or recursively, e.g., by one of the arranged items in response to being resized, this function will do nothing.

Note that the layout is free to use geometry caching to optimize this process. To forcefully invalidate any such cache, you can call invalidate() before calling activate().

See also invalidate().

QGraphicsLayout.addChildLayoutItem (self, QGraphicsLayoutItem layoutItem)

The layoutItem argument has it's ownership transferred to Qt.

This function is a convenience function provided for custom layouts, and will go through all items in the layout and reparent their graphics items to the closest QGraphicsWidget ancestor of the layout.

If layoutItem is already in a different layout, it will be removed from that layout.

If custom layouts want special behaviour they can ignore to use this function, and implement their own behaviour.

This function was introduced in Qt 4.6.

See also graphicsItem().

int QGraphicsLayout.count (self)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function must be reimplemented in a subclass of QGraphicsLayout to return the number of items in the layout.

The subclass is free to decide how to store the items.

See also itemAt() and removeAt().

(float left, float top, float right, float bottom) QGraphicsLayout.getContentsMargins (self)

Reimplemented from QGraphicsLayoutItem.getContentsMargins().

QGraphicsLayout.invalidate (self)

Clears any cached geometry and size hint information in the layout, and posts a LayoutRequest event to the managed parent QGraphicsLayoutItem.

See also activate() and setGeometry().

bool QGraphicsLayout.isActivated (self)

Returns true if the layout is currently being activated; otherwise, returns false. If the layout is being activated, this means that it is currently in the process of rearranging its items (i.e., the activate() function has been called, and has not yet returned).

See also activate() and invalidate().

QGraphicsLayoutItem QGraphicsLayout.itemAt (self, int i)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function must be reimplemented in a subclass of QGraphicsLayout to return a pointer to the item at index i. The reimplementation can assume that i is valid (i.e., it respects the value of count()). Together with count(), it is provided as a means of iterating over all items in a layout.

The subclass is free to decide how to store the items, and the visual arrangement does not have to be reflected through this function.

See also count() and removeAt().

QGraphicsLayout.removeAt (self, int index)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function must be reimplemented in a subclass of QGraphicsLayout to remove the item at index. The reimplementation can assume that index is valid (i.e., it respects the value of count()).

The implementation must ensure that the parentLayoutItem() of the removed item does not point to this layout, since the item is considered to be removed from the layout hierarchy.

If the layout is to be reused between applications, we recommend that the layout deletes the item, but the graphics view framework does not depend on this.

The subclass is free to decide how to store the items.

See also itemAt() and count().

QGraphicsLayout.setContentsMargins (self, float left, float top, float right, float bottom)

Sets the contents margins to left, top, right and bottom. The default contents margins for toplevel layouts are style dependent (by querying the pixelMetric for QStyle.PM_LayoutLeftMargin, QStyle.PM_LayoutTopMargin, QStyle.PM_LayoutRightMargin and QStyle.PM_LayoutBottomMargin).

For sublayouts the default margins are 0.

Changing the contents margins automatically invalidates the layout.

See also invalidate().

QGraphicsLayout.updateGeometry (self)

Reimplemented from QGraphicsLayoutItem.updateGeometry().

QGraphicsLayout.widgetEvent (self, QEvent e)

This virtual event handler receives all events for the managed widget. QGraphicsLayout uses this event handler to listen for layout related events such as geometry changes, layout changes or layout direction changes.

e is a pointer to the event.

You can reimplement this event handler to track similar events for your own custom layout.

See also QGraphicsWidget.event() and QGraphicsItem.sceneEvent().

QGraphicsLayout.__len__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicslayoutitem.html0000644000076500000240000010721512536324504022453 0ustar philstaff00000000000000 QGraphicsLayoutItem Class Reference
  Home · All Classes · Modules

QGraphicsLayoutItem Class Reference
[
QtGui module]

The QGraphicsLayoutItem class can be inherited to allow your custom items to be managed by layouts. More...

Inherited by QGraphicsLayout and QGraphicsWidget.

Methods


Detailed Description

The QGraphicsLayoutItem class can be inherited to allow your custom items to be managed by layouts.

QGraphicsLayoutItem is an abstract class that defines a set of virtual functions describing sizes, size policies, and size hints for any object arranged by QGraphicsLayout. The API contains functions relevant for both the item itself and for the user of the item as most of QGraphicsLayoutItem's functions are also part of the subclass' public API.

In most cases, existing layout-aware classes such as QGraphicsWidget and QGraphicsLayout already provide the functionality you require. However, subclassing these classes will enable you to create both graphical elements that work well with layouts (QGraphicsWidget) or custom layouts (QGraphicsLayout).

Subclassing QGraphicsLayoutItem

If you create a subclass of QGraphicsLayoutItem and reimplement its virtual functions, you will enable the layout to resize and position your item along with other QGraphicsLayoutItems including QGraphicsWidget and QGraphicsLayout.

You can start by reimplementing important functions: the protected sizeHint() function, as well as the public setGeometry() function. If you want your items to be aware of immediate geometry changes, you can also reimplement updateGeometry().

The geometry, size hint, and size policy affect the item's size and position. Calling setGeometry() will always resize and reposition the item immediately. Normally, this function is called by QGraphicsLayout after the layout has been activated, but it can also be called by the item's user at any time.

The sizeHint() function returns the item' minimum, preferred and maximum size hints. You can override these properties by calling setMinimumSize(), setPreferredSize() or setMaximumSize(). You can also use functions such as setMinimumWidth() or setMaximumHeight() to set only the width or height component if desired.

The effectiveSizeHint() function, on the other hand, returns a size hint for any given Qt.SizeHint, and guarantees that the returned size is bound to the minimum and maximum sizes and size hints. You can set the item's vertical and horizontal size policy by calling setSizePolicy(). The sizePolicy property is used by the layout system to describe how this item prefers to grow or shrink.

Nesting QGraphicsLayoutItems

QGraphicsLayoutItems can be nested within other QGraphicsLayoutItems, similar to layouts that can contain sublayouts. This is done either by passing a QGraphicsLayoutItem pointer to QGraphicsLayoutItem's protected constructor, or by calling setParentLayoutItem(). The parentLayoutItem() function returns a pointer to the item's layoutItem parent. If the item's parent is 0 or if the parent does not inherit from QGraphicsItem, the parentLayoutItem() function then returns 0. isLayout() returns true if the QGraphicsLayoutItem subclass is itself a layout, or false otherwise.

Qt uses QGraphicsLayoutItem to provide layout functionality in the Graphics View Framework, but in the future its use may spread throughout Qt itself.


Method Documentation

QGraphicsLayoutItem.__init__ (self, QGraphicsLayoutItem parent = None, bool isLayout = False)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs the QGraphicsLayoutItem object. parent becomes the object's parent. If isLayout is true the item is a layout, otherwise isLayout is false.

QRectF QGraphicsLayoutItem.contentsRect (self)

Returns the contents rect in local coordinates.

The contents rect defines the subrectangle used by an associated layout when arranging subitems. This function is a convenience function that adjusts the item's geometry() by its contents margins. Note that getContentsMargins() is a virtual function that you can reimplement to return the item's contents margins.

See also getContentsMargins() and geometry().

QSizeF QGraphicsLayoutItem.effectiveSizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())

Returns the effective size hint for this QGraphicsLayoutItem.

which is the size hint in question. constraint is an optional argument that defines a special constrain when calculating the effective size hint. By default, constraint is QSizeF(-1, -1), which means there is no constraint to the size hint.

If you want to specify the widget's size hint for a given width or height, you can provide the fixed dimension in constraint. This is useful for widgets that can grow only either vertically or horizontally, and need to set either their width or their height to a special value.

For example, a text paragraph item fit into a column width of 200 may grow vertically. You can pass QSizeF(200, -1) as a constraint to get a suitable minimum, preferred and maximum height).

You can adjust the effective size hint by reimplementing sizeHint() in a QGraphicsLayoutItem subclass, or by calling one of the following functions: setMinimumSize(), setPreferredSize, or setMaximumSize() (or a combination of both).

This function caches each of the size hints and guarantees that sizeHint() will be called only once for each value of which - unless constraint is not specified and updateGeometry() has been called.

See also sizeHint().

QRectF QGraphicsLayoutItem.geometry (self)

Returns the item's geometry (e.g., position and size) as a QRectF. This function is equivalent to QRectF(pos(), size()).

See also setGeometry().

(float left, float top, float right, float bottom) QGraphicsLayoutItem.getContentsMargins (self)

This virtual function provides the left, top, right and bottom contents margins for this QGraphicsLayoutItem. The default implementation assumes all contents margins are 0. The parameters point to values stored in qreals. If any of the pointers is 0, that value will not be updated.

See also QGraphicsWidget.setContentsMargins().

QGraphicsItem QGraphicsLayoutItem.graphicsItem (self)

Returns the QGraphicsItem that this layout item represents. For QGraphicsWidget it will return itself. For custom items it can return an aggregated value.

See also setGraphicsItem().

bool QGraphicsLayoutItem.isLayout (self)

Returns true if this QGraphicsLayoutItem is a layout (e.g., is inherited by an object that arranges other QGraphicsLayoutItem objects); otherwise returns false.

See also QGraphicsLayout.

float QGraphicsLayoutItem.maximumHeight (self)

Returns the maximum height.

See also setMaximumHeight(), setMaximumSize(), and maximumSize().

QSizeF QGraphicsLayoutItem.maximumSize (self)

Returns the maximum size.

See also setMaximumSize(), minimumSize(), preferredSize(), Qt.MaximumSize, and sizeHint().

float QGraphicsLayoutItem.maximumWidth (self)

Returns the maximum width.

See also setMaximumWidth(), setMaximumSize(), and maximumSize().

float QGraphicsLayoutItem.minimumHeight (self)

Returns the minimum height.

See also setMinimumHeight(), setMinimumSize(), and minimumSize().

QSizeF QGraphicsLayoutItem.minimumSize (self)

Returns the minimum size.

See also setMinimumSize(), preferredSize(), maximumSize(), Qt.MinimumSize, and sizeHint().

float QGraphicsLayoutItem.minimumWidth (self)

Returns the minimum width.

See also setMinimumWidth(), setMinimumSize(), and minimumSize().

bool QGraphicsLayoutItem.ownedByLayout (self)

Returns whether a layout should delete this item in its destructor. If its true, then the layout will delete it. If its false, then it is assumed that another object has the ownership of it, and the layout won't delete this item.

If the item inherits both QGraphicsItem and QGraphicsLayoutItem (such as QGraphicsWidget does) the item is really part of two ownership hierarchies. This property informs what the layout should do with its child items when it is destructed. In the case of QGraphicsWidget, it is preferred that when the layout is deleted it won't delete its children (since they are also part of the graphics item hierarchy).

By default this value is initialized to false in QGraphicsLayoutItem, but it is overridden by QGraphicsLayout to return true. This is because QGraphicsLayout is not normally part of the QGraphicsItem hierarchy, so the parent layout should delete it. Subclasses might override this default behaviour by calling setOwnedByLayout(true).

This function was introduced in Qt 4.6.

See also setOwnedByLayout().

QGraphicsLayoutItem QGraphicsLayoutItem.parentLayoutItem (self)

Returns the parent of this QGraphicsLayoutItem, or 0 if there is no parent, or if the parent does not inherit from QGraphicsLayoutItem (QGraphicsLayoutItem is often used through multiple inheritance with QObject-derived classes).

See also setParentLayoutItem().

float QGraphicsLayoutItem.preferredHeight (self)

Returns the preferred height.

See also setPreferredHeight(), setPreferredSize(), and preferredSize().

QSizeF QGraphicsLayoutItem.preferredSize (self)

Returns the preferred size.

See also setPreferredSize(), minimumSize(), maximumSize(), Qt.PreferredSize, and sizeHint().

float QGraphicsLayoutItem.preferredWidth (self)

Returns the preferred width.

See also setPreferredWidth(), setPreferredSize(), and preferredSize().

QGraphicsLayoutItem.setGeometry (self, QRectF rect)

This virtual function sets the geometry of the QGraphicsLayoutItem to rect, which is in parent coordinates (e.g., the top-left corner of rect is equivalent to the item's position in parent coordinates).

You must reimplement this function in a subclass of QGraphicsLayoutItem to receive geometry updates. The layout will call this function when it does a rearrangement.

If rect is outside of the bounds of minimumSize and maximumSize, it will be adjusted to its closest size so that it is within the legal bounds.

See also geometry().

QGraphicsLayoutItem.setGraphicsItem (self, QGraphicsItem item)

If the QGraphicsLayoutItem represents a QGraphicsItem, and it wants to take advantage of the automatic reparenting capabilities of QGraphicsLayout it should set this value. Note that if you delete item and not delete the layout item, you are responsible of calling setGraphicsItem(0) in order to avoid having a dangling pointer.

See also graphicsItem().

QGraphicsLayoutItem.setMaximumHeight (self, float height)

Sets the maximum height to height.

See also maximumHeight(), setMaximumSize(), and maximumSize().

QGraphicsLayoutItem.setMaximumSize (self, QSizeF size)

Sets the maximum size to size. This property overrides sizeHint() for Qt.MaximumSize and ensures that effectiveSizeHint() will never return a size larger than size. In order to unset the maximum size, use an invalid size.

See also maximumSize(), minimumSize(), preferredSize(), Qt.MaximumSize, and sizeHint().

QGraphicsLayoutItem.setMaximumSize (self, float aw, float ah)

This convenience function is equivalent to calling setMaximumSize(QSizeF(w, h)).

See also maximumSize(), setMinimumSize(), setPreferredSize(), and sizeHint().

QGraphicsLayoutItem.setMaximumWidth (self, float width)

Sets the maximum width to width.

See also maximumWidth(), setMaximumSize(), and maximumSize().

QGraphicsLayoutItem.setMinimumHeight (self, float height)

Sets the minimum height to height.

See also minimumHeight(), setMinimumSize(), and minimumSize().

QGraphicsLayoutItem.setMinimumSize (self, QSizeF size)

Sets the minimum size to size. This property overrides sizeHint() for Qt.MinimumSize and ensures that effectiveSizeHint() will never return a size smaller than size. In order to unset the minimum size, use an invalid size.

See also minimumSize(), maximumSize(), preferredSize(), Qt.MinimumSize, sizeHint(), setMinimumWidth(), and setMinimumHeight().

QGraphicsLayoutItem.setMinimumSize (self, float aw, float ah)

This convenience function is equivalent to calling setMinimumSize(QSizeF(w, h)).

See also minimumSize(), setMaximumSize(), setPreferredSize(), and sizeHint().

QGraphicsLayoutItem.setMinimumWidth (self, float width)

Sets the minimum width to width.

See also minimumWidth(), setMinimumSize(), and minimumSize().

QGraphicsLayoutItem.setOwnedByLayout (self, bool ownedByLayout)

Sets whether a layout should delete this item in its destructor or not. ownership must be true to in order for the layout to delete it.

This function was introduced in Qt 4.6.

See also ownedByLayout().

QGraphicsLayoutItem.setParentLayoutItem (self, QGraphicsLayoutItem parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Sets the parent of this QGraphicsLayoutItem to parent.

See also parentLayoutItem().

QGraphicsLayoutItem.setPreferredHeight (self, float height)

Sets the preferred height to height.

See also preferredHeight(), preferredWidth(), setPreferredSize(), and preferredSize().

QGraphicsLayoutItem.setPreferredSize (self, QSizeF size)

Sets the preferred size to size. This property overrides sizeHint() for Qt.PreferredSize and provides the default value for effectiveSizeHint(). In order to unset the preferred size, use an invalid size.

See also preferredSize(), minimumSize(), maximumSize(), Qt.PreferredSize, and sizeHint().

QGraphicsLayoutItem.setPreferredSize (self, float aw, float ah)

This convenience function is equivalent to calling setPreferredSize(QSizeF(w, h)).

See also preferredSize(), setMaximumSize(), setMinimumSize(), and sizeHint().

QGraphicsLayoutItem.setPreferredWidth (self, float width)

Sets the preferred width to width.

See also preferredWidth(), preferredHeight(), setPreferredSize(), and preferredSize().

QGraphicsLayoutItem.setSizePolicy (self, QSizePolicy policy)

Sets the size policy to policy. The size policy describes how the item should grow horizontally and vertically when arranged in a layout.

QGraphicsLayoutItem's default size policy is (QSizePolicy.Fixed, QSizePolicy.Fixed, QSizePolicy.DefaultType), but it is common for subclasses to change the default. For example, QGraphicsWidget defaults to (QSizePolicy.Preferred, QSizePolicy.Preferred, QSizePolicy.DefaultType).

See also sizePolicy() and QWidget.sizePolicy().

QGraphicsLayoutItem.setSizePolicy (self, QSizePolicy.Policy hPolicy, QSizePolicy.Policy vPolicy, QSizePolicy.ControlType controlType = QSizePolicy.DefaultType)

This is an overloaded function.

This function is equivalent to calling setSizePolicy(QSizePolicy(hPolicy, vPolicy, controlType)).

See also sizePolicy() and QWidget.sizePolicy().

QSizeF QGraphicsLayoutItem.sizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function returns the size hint for which of the QGraphicsLayoutItem, using the width or height of constraint to constrain the output.

Reimplement this function in a subclass of QGraphicsLayoutItem to provide the necessary size hints for your items.

See also effectiveSizeHint().

QSizePolicy QGraphicsLayoutItem.sizePolicy (self)

Returns the current size policy.

See also setSizePolicy() and QWidget.sizePolicy().

QGraphicsLayoutItem.updateGeometry (self)

This virtual function discards any cached size hint information. You should always call this function if you change the return value of the sizeHint() function. Subclasses must always call the base implementation when reimplementing this function.

See also effectiveSizeHint().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicslinearlayout.html0000644000076500000240000005233012536324505022765 0ustar philstaff00000000000000 QGraphicsLinearLayout Class Reference
  Home · All Classes · Modules

QGraphicsLinearLayout Class Reference
[QtGui module]

The QGraphicsLinearLayout class provides a horizontal or vertical layout for managing widgets in Graphics View. More...

Inherits QGraphicsLayout.

Methods


Detailed Description

The QGraphicsLinearLayout class provides a horizontal or vertical layout for managing widgets in Graphics View.

The default orientation for a linear layout is Qt.Horizontal. You can choose a vertical orientation either by calling setOrientation(), or by passing Qt.Vertical to QGraphicsLinearLayout's constructor.

The most common way to use QGraphicsLinearLayout is to construct an object on the heap with no parent, add widgets and layouts by calling addItem(), and finally assign the layout to a widget by calling QGraphicsWidget.setLayout().

 QGraphicsScene scene;
 QGraphicsWidget *textEdit = scene.addWidget(new QTextEdit);
 QGraphicsWidget *pushButton = scene.addWidget(new QPushButton);

 QGraphicsLinearLayout *layout = new QGraphicsLinearLayout;
 layout->addItem(textEdit);
 layout->addItem(pushButton);

 QGraphicsWidget *form = new QGraphicsWidget;
 form->setLayout(layout);
 scene.addItem(form);

You can add widgets, layouts, stretches (addStretch(), insertStretch() or setStretchFactor()), and spacings (setItemSpacing()) to a linear layout. The layout takes ownership of the items. In some cases when the layout item also inherits from QGraphicsItem (such as QGraphicsWidget) there will be a ambiguity in ownership because the layout item belongs to two ownership hierarchies. See the documentation of QGraphicsLayoutItem.setOwnedByLayout() how to handle this. You can access each item in the layout by calling count() and itemAt(). Calling removeAt() or removeItem() will remove an item from the layout, without destroying it.

Size Hints and Size Policies in QGraphicsLinearLayout

QGraphicsLinearLayout respects each item's size hints and size policies, and when the layout contains more space than the items can fill, each item is arranged according to the layout's alignment for that item. You can set an alignment for each item by calling setAlignment(), and check the alignment for any item by calling alignment(). By default, items are aligned to the top left.

Spacing within QGraphicsLinearLayout

Between the items, the layout distributes some space. The actual amount of space depends on the managed widget's current style, but the common spacing is 4. You can also set your own spacing by calling setSpacing(), and get the current spacing value by calling spacing(). If you want to configure individual spacing for your items, you can call setItemSpacing().

Stretch Factor in QGraphicsLinearLayout

You can assign a stretch factor to each item to control how much space it will get compared to the other items. By default, two identical widgets arranged in a linear layout will have the same size, but if the first widget has a stretch factor of 1 and the second widget has a stretch factor of 2, the first widget will get 1/3 of the available space, and the second will get 2/3.

QGraphicsLinearLayout calculates the distribution of sizes by adding up the stretch factors of all items, and then dividing the available space accordingly. The default stretch factor is 0 for all items; a factor of 0 means the item does not have any defined stretch factor; effectively this is the same as setting the stretch factor to 1. The stretch factor only applies to the available space in the lengthwise direction of the layout (following its orientation). If you want to control both the item's horizontal and vertical stretch, you can use QGraphicsGridLayout instead.

QGraphicsLinearLayout Compared to Other Layouts

QGraphicsLinearLayout is very similar to QVBoxLayout and QHBoxLayout, but in contrast to these classes, it is used to manage QGraphicsWidget and QGraphicsLayout instead of QWidget and QLayout.


Method Documentation

QGraphicsLinearLayout.__init__ (self, QGraphicsLayoutItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsLinearLayout instance using Qt.Horizontal orientation. parent is passed to QGraphicsLayout's constructor.

QGraphicsLinearLayout.__init__ (self, Qt.Orientation orientation, QGraphicsLayoutItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsLinearLayout instance. You can pass the orientation for the layout, either horizontal or vertical, and parent is passed to QGraphicsLayout's constructor.

QGraphicsLinearLayout.addItem (self, QGraphicsLayoutItem item)

The item argument has it's ownership transferred to Qt.

This convenience function is equivalent to calling insertItem(-1, item).

QGraphicsLinearLayout.addStretch (self, int stretch = 1)

This convenience function is equivalent to calling insertStretch(-1, stretch).

Qt.Alignment QGraphicsLinearLayout.alignment (self, QGraphicsLayoutItem item)

Returns the alignment for item. The default alignment is Qt.AlignTop | Qt.AlignLeft.

The alignment decides how the item is positioned within its assigned space in the case where there's more space available in the layout than the widgets can occupy.

See also setAlignment().

int QGraphicsLinearLayout.count (self)

Reimplemented from QGraphicsLayout.count().

QGraphicsLinearLayout.insertItem (self, int index, QGraphicsLayoutItem item)

The item argument has it's ownership transferred to Qt.

Inserts item into the layout at index, or before any item that is currently at index.

See also addItem(), itemAt(), insertStretch(), and setItemSpacing().

QGraphicsLinearLayout.insertStretch (self, int index, int stretch = 1)

Inserts a stretch of stretch at index, or before any item that is currently at index.

See also addStretch(), setStretchFactor(), setItemSpacing(), and insertItem().

QGraphicsLinearLayout.invalidate (self)

Reimplemented from QGraphicsLayout.invalidate().

QGraphicsLayoutItem QGraphicsLinearLayout.itemAt (self, int index)

Reimplemented from QGraphicsLayout.itemAt().

When iterating from 0 and up, it will return the items in the visual arranged order.

float QGraphicsLinearLayout.itemSpacing (self, int index)

Returns the spacing after item at index.

See also setItemSpacing().

Qt.Orientation QGraphicsLinearLayout.orientation (self)

Returns the layout orientation.

See also setOrientation().

QGraphicsLinearLayout.removeAt (self, int index)

Reimplemented from QGraphicsLayout.removeAt().

Removes the item at index without destroying it. Ownership of the item is transferred to the caller.

See also removeItem() and insertItem().

QGraphicsLinearLayout.removeItem (self, QGraphicsLayoutItem item)

The item argument

Removes item from the layout without destroying it. Ownership of item is transferred to the caller.

See also removeAt() and insertItem().

QGraphicsLinearLayout.setAlignment (self, QGraphicsLayoutItem item, Qt.Alignment alignment)

Sets the alignment of item to alignment. If item's alignment changes, the layout is automatically invalidated.

See also alignment() and invalidate().

QGraphicsLinearLayout.setGeometry (self, QRectF rect)

Reimplemented from QGraphicsLayoutItem.setGeometry().

QGraphicsLinearLayout.setItemSpacing (self, int index, float spacing)

Sets the spacing after item at index to spacing.

See also itemSpacing().

QGraphicsLinearLayout.setOrientation (self, Qt.Orientation orientation)

Change the layout orientation to orientation. Changing the layout orientation will automatically invalidate the layout.

See also orientation().

QGraphicsLinearLayout.setSpacing (self, float spacing)

Sets the layout's spacing to spacing. Spacing refers to the vertical and horizontal distances between items.

See also spacing(), setItemSpacing(), setStretchFactor(), and QGraphicsGridLayout.setSpacing().

QGraphicsLinearLayout.setStretchFactor (self, QGraphicsLayoutItem item, int stretch)

Sets the stretch factor for item to stretch. If an item's stretch factor changes, this function will invalidate the layout.

Setting stretch to 0 removes the stretch factor from the item, and is effectively equivalent to setting stretch to 1.

See also stretchFactor().

QSizeF QGraphicsLinearLayout.sizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())

Reimplemented from QGraphicsLayoutItem.sizeHint().

float QGraphicsLinearLayout.spacing (self)

Returns the layout's spacing. Spacing refers to the vertical and horizontal distances between items.

See also setSpacing().

int QGraphicsLinearLayout.stretchFactor (self, QGraphicsLayoutItem item)

Returns the stretch factor for item. The default stretch factor is 0, meaning that the item has no assigned stretch factor.

See also setStretchFactor().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicslineitem.html0000644000076500000240000002514612536324505022070 0ustar philstaff00000000000000 QGraphicsLineItem Class Reference
  Home · All Classes · Modules

QGraphicsLineItem Class Reference
[QtGui module]

The QGraphicsLineItem class provides a line item that you can add to a QGraphicsScene. More...

Inherits QGraphicsItem.

Methods

  • __init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • __init__ (self, QLineF line, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • __init__ (self, float x1, float y1, float x2, float y2, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • QRectF boundingRect (self)
  • bool contains (self, QPointF point)
  • bool isObscuredBy (self, QGraphicsItem item)
  • QLineF line (self)
  • QPainterPath opaqueArea (self)
  • paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)
  • QPen pen (self)
  • setLine (self, QLineF line)
  • setLine (self, float x1, float y1, float x2, float y2)
  • setPen (self, QPen pen)
  • QPainterPath shape (self)
  • int type (self)

Detailed Description

The QGraphicsLineItem class provides a line item that you can add to a QGraphicsScene.

To set the item's line, pass a QLineF to QGraphicsLineItem's constructor, or call the setLine() function. The line() function returns the current line. By default the line is black with a width of 0, but you can change this by calling setPen().

QGraphicsLineItem uses the line and the pen width to provide a reasonable implementation of boundingRect(), shape(), and contains(). The paint() function draws the line using the item's associated pen.


Method Documentation

QGraphicsLineItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsLineItem. parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsLineItem.__init__ (self, QLineF line, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsLineItem, using line as the default line. parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsLineItem.__init__ (self, float x1, float y1, float x2, float y2, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsLineItem, using the line between (x1, y1) and (x2, y2) as the default line. parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QRectF QGraphicsLineItem.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

bool QGraphicsLineItem.contains (self, QPointF point)

Reimplemented from QGraphicsItem.contains().

bool QGraphicsLineItem.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QLineF QGraphicsLineItem.line (self)

Returns the item's line, or a null line if no line has been set.

See also setLine().

QPainterPath QGraphicsLineItem.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

QGraphicsLineItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

Reimplemented from QGraphicsItem.paint().

QPen QGraphicsLineItem.pen (self)

Returns the item's pen, or a black solid 0-width pen if no pen has been set.

See also setPen().

QGraphicsLineItem.setLine (self, QLineF line)

Sets the item's line to be the given line.

See also line().

QGraphicsLineItem.setLine (self, float x1, float y1, float x2, float y2)

This is an overloaded function.

Sets the item's line to be the line between (x1, y1) and (x2, y2).

This is the same as calling setLine(QLineF(x1, y1, x2, y2)).

QGraphicsLineItem.setPen (self, QPen pen)

Sets the item's pen to pen. If no pen is set, the line will be painted using a black solid 0-width pen.

See also pen().

QPainterPath QGraphicsLineItem.shape (self)

Reimplemented from QGraphicsItem.shape().

int QGraphicsLineItem.type (self)

Reimplemented from QGraphicsItem.type().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsobject.html0000644000076500000240000002161412536324505021524 0ustar philstaff00000000000000 QGraphicsObject Class Reference
  Home · All Classes · Modules

QGraphicsObject Class Reference
[QtGui module]

The QGraphicsObject class provides a base class for all graphics items that require signals, slots and properties. More...

Inherits QObject and QGraphicsItem.

Inherited by QDeclarativeItem, QGraphicsSvgItem, QGraphicsTextItem and QGraphicsWidget.

Methods

Qt Signals


Detailed Description

The QGraphicsObject class provides a base class for all graphics items that require signals, slots and properties.

The class extends a QGraphicsItem with QObject's signal/slot and property mechanisms. It maps many of QGraphicsItem's basic setters and getters to properties and adds notification signals for many of them.

Parents and Children

Each graphics object can be constructed with a parent item. This ensures that the item will be destroyed when its parent item is destroyed. Although QGraphicsObject inherits from both QObject and QGraphicsItem, you should use the functions provided by QGraphicsItem, not QObject, to manage the relationships between parent and child items.

The relationships between items can be explored using the parentItem() and childItems() functions. In the hierarchy of items in a scene, the parentObject() and parentWidget() functions are the equivalent of the QWidget.parent() and QWidget.parentWidget() functions for QWidget subclasses.


Method Documentation

QGraphicsObject.__init__ (self, QGraphicsItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsObject with parent.

QGraphicsObject.grabGesture (self, Qt.GestureType type, Qt.GestureFlags flags = Qt.GestureFlags(0))

Subscribes the graphics object to the given gesture with specific flags.

See also ungrabGesture() and QGestureEvent.

QGraphicsObject.ungrabGesture (self, Qt.GestureType type)

Unsubscribes the graphics object from the given gesture.

See also grabGesture() and QGestureEvent.

QGraphicsObject.updateMicroFocus (self)

This method is also a Qt slot with the C++ signature void updateMicroFocus().

Updates the item's micro focus. This is slot for convenience.

This function was introduced in Qt 4.7.

See also QInputContext.


Qt Signal Documentation

void enabledChanged ()

This is the default overload of this signal.

This signal gets emitted whenever the item get's enabled or disabled.

See also isEnabled().

void opacityChanged ()

This is the default overload of this signal.

This signal gets emitted whenever the opacity of the item changes

See also QGraphicsItem.opacity().

void parentChanged ()

This is the default overload of this signal.

This signal gets emitted whenever the parent of the item changes

void rotationChanged ()

This is the default overload of this signal.

This signal gets emitted whenever the roation of the item changes.

void scaleChanged ()

This is the default overload of this signal.

This signal is emitted when the scale of the item changes.

void visibleChanged ()

This is the default overload of this signal.

This signal gets emitted whenever the visibility of the item changes

See also visible.

void xChanged ()

This is the default overload of this signal.

This signal gets emitted whenever the x position of the item changes

See also pos().

void yChanged ()

This is the default overload of this signal.

This signal gets emitted whenever the y position of the item changes.

See also pos().

void zChanged ()

This is the default overload of this signal.

This signal gets emitted whenever the z value of the item changes.

See also pos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsopacityeffect.html0000644000076500000240000001237012536324504023101 0ustar philstaff00000000000000 QGraphicsOpacityEffect Class Reference
  Home · All Classes · Modules

QGraphicsOpacityEffect Class Reference
[QtGui module]

The QGraphicsOpacityEffect class provides an opacity effect. More...

Inherits QGraphicsEffect.

Methods

Qt Signals


Detailed Description

The QGraphicsOpacityEffect class provides an opacity effect.

An opacity effect renders the source with an opacity. This effect is useful for making the source semi-transparent, similar to a fade-in/fade-out sequence. The opacity can be modified using the setOpacity() function.

By default, the opacity is 0.7.


Method Documentation

QGraphicsOpacityEffect.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGraphicsOpacityEffect instance. The parent parameter is passed to QGraphicsEffect's constructor.

QGraphicsOpacityEffect.draw (self, QPainter painter)

Reimplemented from QGraphicsEffect.draw().

float QGraphicsOpacityEffect.opacity (self)

QBrush QGraphicsOpacityEffect.opacityMask (self)

QGraphicsOpacityEffect.setOpacity (self, float opacity)

This method is also a Qt slot with the C++ signature void setOpacity(qreal).

QGraphicsOpacityEffect.setOpacityMask (self, QBrush mask)

This method is also a Qt slot with the C++ signature void setOpacityMask(const QBrush&).


Qt Signal Documentation

void opacityChanged (qreal)

This is the default overload of this signal.

This signal is emitted whenever the effect's opacity changes. The opacity parameter holds the effect's new opacity.

void opacityMaskChanged (const QBrush&)

This is the default overload of this signal.

This signal is emitted whenever the effect's opacity mask changes. The mask parameter holds the effect's new opacity mask.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicspathitem.html0000644000076500000240000002003612536324505022066 0ustar philstaff00000000000000 QGraphicsPathItem Class Reference
  Home · All Classes · Modules

QGraphicsPathItem Class Reference
[
QtGui module]

The QGraphicsPathItem class provides a path item that you can add to a QGraphicsScene. More...

Inherits QAbstractGraphicsShapeItem.

Methods

  • __init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • __init__ (self, QPainterPath path, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • QRectF boundingRect (self)
  • bool contains (self, QPointF point)
  • bool isObscuredBy (self, QGraphicsItem item)
  • QPainterPath opaqueArea (self)
  • paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)
  • QPainterPath path (self)
  • setPath (self, QPainterPath path)
  • QPainterPath shape (self)
  • int type (self)

Detailed Description

The QGraphicsPathItem class provides a path item that you can add to a QGraphicsScene.

To set the item's path, pass a QPainterPath to QGraphicsPathItem's constructor, or call the setPath() function. The path() function returns the current path.

QGraphicsPathItem uses the path to provide a reasonable implementation of boundingRect(), shape(), and contains(). The paint() function draws the path using the item's associated pen and brush, which you can set by calling the setPen() and setBrush() functions.


Method Documentation

QGraphicsPathItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsPath. parent is passed to QAbstractGraphicsShapeItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsPathItem.__init__ (self, QPainterPath path, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsPath item using path as the default path. parent is passed to QAbstractGraphicsShapeItem's constructor.

See also QGraphicsScene.addItem().

QRectF QGraphicsPathItem.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

bool QGraphicsPathItem.contains (self, QPointF point)

Reimplemented from QGraphicsItem.contains().

bool QGraphicsPathItem.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QPainterPath QGraphicsPathItem.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

QGraphicsPathItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

Reimplemented from QGraphicsItem.paint().

QPainterPath QGraphicsPathItem.path (self)

QGraphicsPathItem.setPath (self, QPainterPath path)

Sets the item's path to be the given path.

See also path().

QPainterPath QGraphicsPathItem.shape (self)

Reimplemented from QGraphicsItem.shape().

int QGraphicsPathItem.type (self)

Reimplemented from QGraphicsItem.type().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicspixmapitem.html0000644000076500000240000003556412536324505022444 0ustar philstaff00000000000000 QGraphicsPixmapItem Class Reference
  Home · All Classes · Modules

QGraphicsPixmapItem Class Reference
[QtGui module]

The QGraphicsPixmapItem class provides a pixmap item that you can add to a QGraphicsScene. More...

Inherits QGraphicsItem.

Types

  • enum ShapeMode { MaskShape, BoundingRectShape, HeuristicMaskShape }

Methods


Detailed Description

The QGraphicsPixmapItem class provides a pixmap item that you can add to a QGraphicsScene.

To set the item's pixmap, pass a QPixmap to QGraphicsPixmapItem's constructor, or call the setPixmap() function. The pixmap() function returns the current pixmap.

QGraphicsPixmapItem uses pixmap's optional alpha mask to provide a reasonable implementation of boundingRect(), shape(), and contains().

The pixmap is drawn at the item's (0, 0) coordinate, as returned by offset(). You can change the drawing offset by calling setOffset().

You can set the pixmap's transformation mode by calling setTransformationMode(). By default, Qt.FastTransformation is used, which provides fast, non-smooth scaling. Qt.SmoothTransformation enables QPainter.SmoothPixmapTransform on the painter, and the quality depends on the platform and viewport. The result is usually not as good as calling QPixmap.scale() directly. Call transformationMode() to get the current transformation mode for the item.


Type Documentation

QGraphicsPixmapItem.ShapeMode

This enum describes how QGraphicsPixmapItem calculates its shape and opaque area.

The default value is MaskShape.

Constant Value Description
QGraphicsPixmapItem.MaskShape 0 The shape is determined by calling QPixmap.mask(). This shape includes only the opaque pixels of the pixmap. Because the shape is more complex, however, it can be slower than the other modes, and uses more memory.
QGraphicsPixmapItem.BoundingRectShape 1 The shape is determined by tracing the outline of the pixmap. This is the fastest shape mode, but it does not take into account any transparent areas on the pixmap.
QGraphicsPixmapItem.HeuristicMaskShape 2 The shape is determine by calling QPixmap.createHeuristicMask(). The performance and memory consumption is similar to MaskShape.

Method Documentation

QGraphicsPixmapItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsPixmapItem. parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsPixmapItem.__init__ (self, QPixmap pixmap, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsPixmapItem, using pixmap as the default pixmap. parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QRectF QGraphicsPixmapItem.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

bool QGraphicsPixmapItem.contains (self, QPointF point)

Reimplemented from QGraphicsItem.contains().

bool QGraphicsPixmapItem.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QPointF QGraphicsPixmapItem.offset (self)

Returns the pixmap item's offset, which defines the point of the top-left corner of the pixmap, in local coordinates.

See also setOffset().

QPainterPath QGraphicsPixmapItem.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

QGraphicsPixmapItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget)

Reimplemented from QGraphicsItem.paint().

QPixmap QGraphicsPixmapItem.pixmap (self)

Returns the item's pixmap, or an invalid QPixmap if no pixmap has been set.

See also setPixmap().

QGraphicsPixmapItem.setOffset (self, QPointF offset)

Sets the pixmap item's offset to offset. QGraphicsPixmapItem will draw its pixmap using offset for its top-left corner.

See also offset().

QGraphicsPixmapItem.setOffset (self, float ax, float ay)

This convenience function is equivalent to calling setOffset(QPointF(x, y)).

This function was introduced in Qt 4.3.

QGraphicsPixmapItem.setPixmap (self, QPixmap pixmap)

Sets the item's pixmap to pixmap.

See also pixmap().

QGraphicsPixmapItem.setShapeMode (self, ShapeMode mode)

Sets the item's shape mode to mode. The shape mode describes how QGraphicsPixmapItem calculates its shape. The default mode is MaskShape.

See also shapeMode() and ShapeMode.

QGraphicsPixmapItem.setTransformationMode (self, Qt.TransformationMode mode)

Sets the pixmap item's transformation mode to mode, and toggles an update of the item. The default mode is Qt.FastTransformation, which provides quick transformation with no smoothing.

Qt.SmoothTransformation enables QPainter.SmoothPixmapTransform on the painter, and the quality depends on the platform and viewport. The result is usually not as good as calling QPixmap.scale() directly.

See also transformationMode().

QPainterPath QGraphicsPixmapItem.shape (self)

Reimplemented from QGraphicsItem.shape().

ShapeMode QGraphicsPixmapItem.shapeMode (self)

Returns the item's shape mode. The shape mode describes how QGraphicsPixmapItem calculates its shape. The default mode is MaskShape.

See also setShapeMode() and ShapeMode.

Qt.TransformationMode QGraphicsPixmapItem.transformationMode (self)

Returns the transformation mode of the pixmap. The default mode is Qt.FastTransformation, which provides quick transformation with no smoothing.

See also setTransformationMode().

int QGraphicsPixmapItem.type (self)

Reimplemented from QGraphicsItem.type().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicspolygonitem.html0000644000076500000240000002327612536324505022632 0ustar philstaff00000000000000 QGraphicsPolygonItem Class Reference
  Home · All Classes · Modules

QGraphicsPolygonItem Class Reference
[QtGui module]

The QGraphicsPolygonItem class provides a polygon item that you can add to a QGraphicsScene. More...

Inherits QAbstractGraphicsShapeItem.

Methods

  • __init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • __init__ (self, QPolygonF polygon, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • QRectF boundingRect (self)
  • bool contains (self, QPointF point)
  • Qt.FillRule fillRule (self)
  • bool isObscuredBy (self, QGraphicsItem item)
  • QPainterPath opaqueArea (self)
  • paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)
  • QPolygonF polygon (self)
  • setFillRule (self, Qt.FillRule rule)
  • setPolygon (self, QPolygonF polygon)
  • QPainterPath shape (self)
  • int type (self)

Detailed Description

The QGraphicsPolygonItem class provides a polygon item that you can add to a QGraphicsScene.

To set the item's polygon, pass a QPolygonF to QGraphicsPolygonItem's constructor, or call the setPolygon() function. The polygon() function returns the current polygon.

QGraphicsPolygonItem uses the polygon and the pen width to provide a reasonable implementation of boundingRect(), shape(), and contains(). The paint() function draws the polygon using the item's associated pen and brush, which you can set by calling the setPen() and setBrush() functions.


Method Documentation

QGraphicsPolygonItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsPolygonItem. parent is passed to QAbstractGraphicsShapeItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsPolygonItem.__init__ (self, QPolygonF polygon, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsPolygonItem with polygon as the default polygon. parent is passed to QAbstractGraphicsShapeItem's constructor.

See also QGraphicsScene.addItem().

QRectF QGraphicsPolygonItem.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

bool QGraphicsPolygonItem.contains (self, QPointF point)

Reimplemented from QGraphicsItem.contains().

Qt.FillRule QGraphicsPolygonItem.fillRule (self)

Returns the fill rule of the polygon. The default fill rule is Qt.OddEvenFill.

See also setFillRule(), QPainterPath.fillRule(), and QPainter.drawPolygon().

bool QGraphicsPolygonItem.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QPainterPath QGraphicsPolygonItem.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

QGraphicsPolygonItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

Reimplemented from QGraphicsItem.paint().

QPolygonF QGraphicsPolygonItem.polygon (self)

Returns the item's polygon, or an empty polygon if no polygon has been set.

See also setPolygon().

QGraphicsPolygonItem.setFillRule (self, Qt.FillRule rule)

Sets the fill rule of the polygon to rule. The default fill rule is Qt.OddEvenFill.

See also fillRule(), QPainterPath.fillRule(), and QPainter.drawPolygon().

QGraphicsPolygonItem.setPolygon (self, QPolygonF polygon)

Sets the item's polygon to be the given polygon.

See also polygon().

QPainterPath QGraphicsPolygonItem.shape (self)

Reimplemented from QGraphicsItem.shape().

int QGraphicsPolygonItem.type (self)

Reimplemented from QGraphicsItem.type().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsproxywidget.html0000644000076500000240000007741312536324505022653 0ustar philstaff00000000000000 QGraphicsProxyWidget Class Reference
  Home · All Classes · Modules

QGraphicsProxyWidget Class Reference
[QtGui module]

The QGraphicsProxyWidget class provides a proxy layer for embedding a QWidget in a QGraphicsScene. More...

Inherits QGraphicsWidget.

Methods


Detailed Description

The QGraphicsProxyWidget class provides a proxy layer for embedding a QWidget in a QGraphicsScene.

QGraphicsProxyWidget embeds QWidget-based widgets, for example, a QPushButton, QFontComboBox, or even QFileDialog, into QGraphicsScene. It forwards events between the two objects and translates between QWidget's integer-based geometry and QGraphicsWidget's qreal-based geometry. QGraphicsProxyWidget supports all core features of QWidget, including tab focus, keyboard input, Drag & Drop, and popups. You can also embed complex widgets, e.g., widgets with subwidgets.

Example:

 int main(int argc, char **argv)
 {
     QApplication app(argc, argv);

     QTabWidget *tabWidget = new QTabWidget;

     QGraphicsScene scene;
     QGraphicsProxyWidget *proxy = scene.addWidget(tabWidget);

     QGraphicsView view(&scene);
     view.show();

     return app.exec();
 }

QGraphicsProxyWidget takes care of automatically embedding popup children of embedded widgets through creating a child proxy for each popup. This means that when an embedded QComboBox shows its popup list, a new QGraphicsProxyWidget is created automatically, embedding the popup, and positioning it correctly. This only works if the popup is child of the embedded widget (for example QToolButton.setMenu() requires the QMenu instance to be child of the QToolButton).

Embedding a Widget with QGraphicsProxyWidget

There are two ways to embed a widget using QGraphicsProxyWidget. The most common way is to pass a widget pointer to QGraphicsScene.addWidget() together with any relevant Qt.WindowFlags. This function returns a pointer to a QGraphicsProxyWidget. You can then choose to reparent or position either the proxy, or the embedded widget itself.

For example, in the code snippet below, we embed a group box into the proxy:

 QGroupBox *groupBox = new QGroupBox("Contact Details");
 QLabel *numberLabel = new QLabel("Telephone number");
 QLineEdit *numberEdit = new QLineEdit;

 QFormLayout *layout = new QFormLayout;
 layout->addRow(numberLabel, numberEdit);
 groupBox->setLayout(layout);

 QGraphicsScene scene;
 QGraphicsProxyWidget *proxy = scene.addWidget(groupBox);

 QGraphicsView view(&scene);
 view.show();

The image below is the output obtained with its contents margin and contents rect labeled.

Alternatively, you can start by creating a new QGraphicsProxyWidget item, and then call setWidget() to embed a QWidget later. The widget() function returns a pointer to the embedded widget. QGraphicsProxyWidget shares ownership with QWidget, so if either of the two widgets are destroyed, the other widget will be automatically destroyed as well.

Synchronizing Widget States

QGraphicsProxyWidget keeps its state in sync with the embedded widget. For example, if the proxy is hidden or disabled, the embedded widget will be hidden or disabled as well, and vice versa. When the widget is embedded by calling addWidget(), QGraphicsProxyWidget copies the state from the widget into the proxy, and after that, the two will stay synchronized where possible. By default, when you embed a widget into a proxy, both the widget and the proxy will be visible because a QGraphicsWidget is visible when created (you do not have to call show()). If you explicitly hide the embedded widget, the proxy will also become invisible.

Example:

 QGraphicsScene scene;

 QLineEdit *edit = new QLineEdit;
 QGraphicsProxyWidget *proxy = scene.addWidget(edit);

 edit->isVisible();  // returns true
 proxy->isVisible(); // also returns true

 edit->hide();

 edit->isVisible();  // returns false
 proxy->isVisible(); // also returns false

QGraphicsProxyWidget maintains symmetry for the following states:

QWidget state QGraphicsProxyWidget state Notes
QWidget.enabled QGraphicsProxyWidget.enabled
QWidget.visible QGraphicsProxyWidget.visible The explicit state is also symmetric.
QWidget.geometry QGraphicsProxyWidget.geometry Geometry is only guaranteed to be symmetric while the embedded widget is visible.
QWidget.layoutDirection QGraphicsProxyWidget.layoutDirection
QWidget.style QGraphicsProxyWidget.style
QWidget.palette QGraphicsProxyWidget.palette
QWidget.font QGraphicsProxyWidget.font
QWidget.cursor QGraphicsProxyWidget.cursor The embedded widget overrides the proxy widget cursor. The proxy cursor changes depending on which embedded subwidget is currently under the mouse.
QWidget.sizeHint() QGraphicsProxyWidget.sizeHint() All size hint functionality from the embedded widget is forwarded by the proxy.
QWidget.getContentsMargins() QGraphicsProxyWidget.getContentsMargins() Updated once by setWidget().
QWidget.windowTitle QGraphicsProxyWidget.windowTitle Updated once by setWidget().

Note: QGraphicsScene keeps the embedded widget in a special state that prevents it from disturbing other widgets (both embedded and not embedded) while the widget is embedded. In this state, the widget may differ slightly in behavior from when it is not embedded.

Warning: This class is provided for convenience when bridging QWidgets and QGraphicsItems, it should not be used for high-performance scenarios.


Method Documentation

QGraphicsProxyWidget.__init__ (self, QGraphicsItem parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGraphicsProxy widget. parent and wFlags are passed to QGraphicsItem's constructor.

QGraphicsProxyWidget.contextMenuEvent (self, QGraphicsSceneContextMenuEvent event)

Reimplemented from QGraphicsItem.contextMenuEvent().

QGraphicsProxyWidget QGraphicsProxyWidget.createProxyForChildWidget (self, QWidget child)

Creates a proxy widget for the given child of the widget contained in this proxy.

This function makes it possible to acquire proxies for non top-level widgets. For instance, you can embed a dialog, and then transform only one of its widgets.

If the widget is already embedded, return the existing proxy widget.

This function was introduced in Qt 4.5.

See also newProxyWidget() and QGraphicsScene.addWidget().

QGraphicsProxyWidget.dragEnterEvent (self, QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem.dragEnterEvent().

QGraphicsProxyWidget.dragLeaveEvent (self, QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem.dragLeaveEvent().

QGraphicsProxyWidget.dragMoveEvent (self, QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem.dragMoveEvent().

QGraphicsProxyWidget.dropEvent (self, QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem.dropEvent().

bool QGraphicsProxyWidget.event (self, QEvent event)

Reimplemented from QObject.event().

bool QGraphicsProxyWidget.eventFilter (self, QObject object, QEvent event)

Reimplemented from QObject.eventFilter().

QGraphicsProxyWidget.focusInEvent (self, QFocusEvent event)

Reimplemented from QGraphicsItem.focusInEvent().

bool QGraphicsProxyWidget.focusNextPrevChild (self, bool next)

Reimplemented from QGraphicsWidget.focusNextPrevChild().

QGraphicsProxyWidget.focusOutEvent (self, QFocusEvent event)

Reimplemented from QGraphicsItem.focusOutEvent().

QGraphicsProxyWidget.grabMouseEvent (self, QEvent event)

Reimplemented from QGraphicsWidget.grabMouseEvent().

QGraphicsProxyWidget.hideEvent (self, QHideEvent event)

Reimplemented from QGraphicsWidget.hideEvent().

QGraphicsProxyWidget.hoverEnterEvent (self, QGraphicsSceneHoverEvent event)

Reimplemented from QGraphicsItem.hoverEnterEvent().

QGraphicsProxyWidget.hoverLeaveEvent (self, QGraphicsSceneHoverEvent event)

Reimplemented from QGraphicsItem.hoverLeaveEvent().

QGraphicsProxyWidget.hoverMoveEvent (self, QGraphicsSceneHoverEvent event)

Reimplemented from QGraphicsItem.hoverMoveEvent().

QVariant QGraphicsProxyWidget.itemChange (self, QGraphicsItem.GraphicsItemChange change, QVariant value)

Reimplemented from QGraphicsItem.itemChange().

QGraphicsProxyWidget.keyPressEvent (self, QKeyEvent event)

Reimplemented from QGraphicsItem.keyPressEvent().

QGraphicsProxyWidget.keyReleaseEvent (self, QKeyEvent event)

Reimplemented from QGraphicsItem.keyReleaseEvent().

QGraphicsProxyWidget.mouseDoubleClickEvent (self, QGraphicsSceneMouseEvent event)

Reimplemented from QGraphicsItem.mouseDoubleClickEvent().

QGraphicsProxyWidget.mouseMoveEvent (self, QGraphicsSceneMouseEvent event)

Reimplemented from QGraphicsItem.mouseMoveEvent().

QGraphicsProxyWidget.mousePressEvent (self, QGraphicsSceneMouseEvent event)

Reimplemented from QGraphicsItem.mousePressEvent().

QGraphicsProxyWidget.mouseReleaseEvent (self, QGraphicsSceneMouseEvent event)

Reimplemented from QGraphicsItem.mouseReleaseEvent().

QGraphicsProxyWidget QGraphicsProxyWidget.newProxyWidget (self, QWidget)

Creates a proxy widget for the given child of the widget contained in this proxy.

You should not call this function directly; use QGraphicsProxyWidget.createProxyForChildWidget() instead.

This function is a fake virtual slot that you can reimplement in your subclass in order to control how new proxy widgets are created. The default implementation returns a proxy created with the QGraphicsProxyWidget() constructor with this proxy widget as the parent.

This function was introduced in Qt 4.5.

See also createProxyForChildWidget().

QGraphicsProxyWidget.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget)

Reimplemented from QGraphicsItem.paint().

QGraphicsProxyWidget.resizeEvent (self, QGraphicsSceneResizeEvent event)

Reimplemented from QGraphicsWidget.resizeEvent().

QGraphicsProxyWidget.setGeometry (self, QRectF rect)

Reimplemented from QGraphicsLayoutItem.setGeometry().

QGraphicsProxyWidget.setWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Embeds widget into this proxy widget. The embedded widget must reside exclusively either inside or outside of Graphics View. You cannot embed a widget as long as it is is visible elsewhere in the UI, at the same time.

widget must be a top-level widget whose parent is 0.

When the widget is embedded, its state (e.g., visible, enabled, geometry, size hints) is copied into the proxy widget. If the embedded widget is explicitly hidden or disabled, the proxy widget will become explicitly hidden or disabled after embedding is complete. The class documentation has a full overview over the shared state.

QGraphicsProxyWidget's window flags determine whether the widget, after embedding, will be given window decorations or not.

After this function returns, QGraphicsProxyWidget will keep its state synchronized with that of widget whenever possible.

If a widget is already embedded by this proxy when this function is called, that widget will first be automatically unembedded. Passing 0 for the widget argument will only unembed the widget, and the ownership of the currently embedded widget will be passed on to the caller. Every child widget that are embedded will also be embedded and their proxy widget destroyed.

Note that widgets with the Qt.WA_PaintOnScreen widget attribute set and widgets that wrap an external application or controller cannot be embedded. Examples are QGLWidget and QAxWidget.

See also widget().

QGraphicsProxyWidget.showEvent (self, QShowEvent event)

Reimplemented from QGraphicsWidget.showEvent().

QSizeF QGraphicsProxyWidget.sizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())

Reimplemented from QGraphicsLayoutItem.sizeHint().

QRectF QGraphicsProxyWidget.subWidgetRect (self, QWidget widget)

Returns the rectangle for widget, which must be a descendant of widget(), or widget() itself, in this proxy item's local coordinates.

If no widget is embedded, widget is 0, or widget is not a descendant of the embedded widget, this function returns an empty QRectF.

See also widget().

int QGraphicsProxyWidget.type (self)

Reimplemented from QGraphicsItem.type().

QGraphicsProxyWidget.ungrabMouseEvent (self, QEvent event)

Reimplemented from QGraphicsWidget.ungrabMouseEvent().

QGraphicsProxyWidget.wheelEvent (self, QGraphicsSceneWheelEvent event)

Reimplemented from QGraphicsItem.wheelEvent().

QWidget QGraphicsProxyWidget.widget (self)

Returns a pointer to the embedded widget.

See also setWidget().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsrectitem.html0000644000076500000240000002472112536324505022074 0ustar philstaff00000000000000 QGraphicsRectItem Class Reference
  Home · All Classes · Modules

QGraphicsRectItem Class Reference
[QtGui module]

The QGraphicsRectItem class provides a rectangle item that you can add to a QGraphicsScene. More...

Inherits QAbstractGraphicsShapeItem.

Methods

  • __init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • __init__ (self, QRectF rect, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • __init__ (self, float x, float y, float w, float h, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • QRectF boundingRect (self)
  • bool contains (self, QPointF point)
  • bool isObscuredBy (self, QGraphicsItem item)
  • QPainterPath opaqueArea (self)
  • paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)
  • QRectF rect (self)
  • setRect (self, QRectF rect)
  • setRect (self, float ax, float ay, float w, float h)
  • QPainterPath shape (self)
  • int type (self)

Detailed Description

The QGraphicsRectItem class provides a rectangle item that you can add to a QGraphicsScene.

To set the item's rectangle, pass a QRectF to QGraphicsRectItem's constructor, or call the setRect() function. The rect() function returns the current rectangle.

QGraphicsRectItem uses the rectangle and the pen width to provide a reasonable implementation of boundingRect(), shape(), and contains(). The paint() function draws the rectangle using the item's associated pen and brush, which you can set by calling the setPen() and setBrush() functions.

Note: The rendering of invalid rectangles, such as those with negative widths or heights, is undefined. If you cannot be sure that you are using valid rectangles (for example, if you are creating rectangles using data from an unreliable source) then you should use QRectF.normalized() to create normalized rectangles, and use those instead.


Method Documentation

QGraphicsRectItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsRectItem. parent is passed to QAbstractGraphicsShapeItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsRectItem.__init__ (self, QRectF rect, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsRectItem, using rect as the default rectangle. parent is passed to QAbstractGraphicsShapeItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsRectItem.__init__ (self, float x, float y, float w, float h, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsRectItem with a default rectangle defined by (x, y) and the given width and height.

parent is passed to QAbstractGraphicsShapeItem's constructor.

See also QGraphicsScene.addItem().

QRectF QGraphicsRectItem.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

bool QGraphicsRectItem.contains (self, QPointF point)

Reimplemented from QGraphicsItem.contains().

bool QGraphicsRectItem.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QPainterPath QGraphicsRectItem.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

QGraphicsRectItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

Reimplemented from QGraphicsItem.paint().

QRectF QGraphicsRectItem.rect (self)

Returns the item's rectangle.

See also setRect().

QGraphicsRectItem.setRect (self, QRectF rect)

Sets the item's rectangle to be the given rectangle.

See also rect().

QGraphicsRectItem.setRect (self, float ax, float ay, float w, float h)

Sets the item's rectangle to the rectangle defined by (x, y) and the given width and height.

This convenience function is equivalent to calling setRect(QRectF(x, y, width, height))

See also rect().

QPainterPath QGraphicsRectItem.shape (self)

Reimplemented from QGraphicsItem.shape().

int QGraphicsRectItem.type (self)

Reimplemented from QGraphicsItem.type().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsrotation.html0000644000076500000240000001553612536324506022124 0ustar philstaff00000000000000 QGraphicsRotation Class Reference
  Home · All Classes · Modules

QGraphicsRotation Class Reference
[QtGui module]

The QGraphicsRotation class provides a rotation transformation around a given axis. More...

Inherits QGraphicsTransform.

Methods

Qt Signals


Detailed Description

The QGraphicsRotation class provides a rotation transformation around a given axis.

You can provide the desired axis by assigning a QVector3D to the axis property or by passing a member if Qt.Axis to the setAxis convenience function. By default the axis is (0, 0, 1) i.e., rotation around the Z axis.

The angle property, which is provided by QGraphicsRotation, now describes the number of degrees to rotate around this axis.

QGraphicsRotation provides certain parameters to help control how the rotation should be applied.

The origin is the point that the item is rotated around (i.e., it stays fixed relative to the parent as the rest of the item is rotated). By default the origin is QPointF(0, 0).

The angle property provides the number of degrees to rotate the item clockwise around the origin. This value also be negative, indicating a counter-clockwise rotation. For animation purposes it may also be useful to provide rotation angles exceeding (-360, 360) degrees, for instance to animate how an item rotates several times.

Note: the final rotation is the combined effect of a rotation in 3D space followed by a projection back to 2D. If several rotations are performed in succession, they will not behave as expected unless they were all around the Z axis.


Method Documentation

QGraphicsRotation.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGraphicsRotation with the given parent.

float QGraphicsRotation.angle (self)

QGraphicsRotation.applyTo (self, QMatrix4x4 matrix)

Reimplemented from QGraphicsTransform.applyTo().

QVector3D QGraphicsRotation.axis (self)

QVector3D QGraphicsRotation.origin (self)

QGraphicsRotation.setAngle (self, float)

QGraphicsRotation.setAxis (self, QVector3D axis)

QGraphicsRotation.setAxis (self, Qt.Axis axis)

QGraphicsRotation.setOrigin (self, QVector3D point)


Qt Signal Documentation

void angleChanged ()

This is the default overload of this signal.

This signal is emitted whenever the angle has changed.

See also QGraphicsRotation.angle.

void axisChanged ()

This is the default overload of this signal.

This signal is emitted whenever the axis of the object changes.

See also QGraphicsRotation.axis.

void originChanged ()

This is the default overload of this signal.

This signal is emitted whenever the origin has changed.

See also QGraphicsRotation.origin.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscale.html0000644000076500000240000001704112536324506021345 0ustar philstaff00000000000000 QGraphicsScale Class Reference
  Home · All Classes · Modules

QGraphicsScale Class Reference
[QtGui module]

The QGraphicsScale class provides a scale transformation. More...

Inherits QGraphicsTransform.

Methods

Qt Signals


Detailed Description

The QGraphicsScale class provides a scale transformation.

QGraphicsScene provides certain parameters to help control how the scale should be applied.

The origin is the point that the item is scaled from (i.e., it stays fixed relative to the parent as the rest of the item grows). By default the origin is QPointF(0, 0).

The parameters xScale, yScale, and zScale describe the scale factors to apply in horizontal, vertical, and depth directions. They can take on any value, including 0 (to collapse the item to a point) or negative value. A negative xScale value will mirror the item horizontally. A negative yScale value will flip the item vertically. A negative zScale will flip the item end for end.


Method Documentation

QGraphicsScale.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty QGraphicsScale object with the given parent.

QGraphicsScale.applyTo (self, QMatrix4x4 matrix)

Reimplemented from QGraphicsTransform.applyTo().

QVector3D QGraphicsScale.origin (self)

QGraphicsScale.setOrigin (self, QVector3D point)

QGraphicsScale.setXScale (self, float)

QGraphicsScale.setYScale (self, float)

QGraphicsScale.setZScale (self, float)

float QGraphicsScale.xScale (self)

float QGraphicsScale.yScale (self)

float QGraphicsScale.zScale (self)


Qt Signal Documentation

void originChanged ()

This is the default overload of this signal.

QGraphicsScale emits this signal when its origin changes.

See also QGraphicsScale.origin.

void scaleChanged ()

This is the default overload of this signal.

This signal is emitted whenever the xScale, yScale, or zScale of the object changes.

See also QGraphicsScale.xScale, QGraphicsScale.yScale, and QGraphicsScale.zScale.

void xScaleChanged ()

This is the default overload of this signal.

This signal is emitted whenever the xScale property changes.

This function was introduced in Qt 4.7.

void yScaleChanged ()

This is the default overload of this signal.

This signal is emitted whenever the yScale property changes.

This function was introduced in Qt 4.7.

void zScaleChanged ()

This is the default overload of this signal.

This signal is emitted whenever the zScale property changes.

This function was introduced in Qt 4.7.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscene-scenelayers.html0000644000076500000240000001435012536324506023666 0ustar philstaff00000000000000 QGraphicsScene.SceneLayers Class Reference
  Home · All Classes · Modules

QGraphicsScene.SceneLayers Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

SceneLayer may be used whenever SceneLayers is expected.


Method Documentation

SceneLayers.__init__ (self, SceneLayers)

SceneLayers.__init__ (self, int)

SceneLayers.__init__ (self)

SceneLayers SceneLayers.__and__ (self, int mask)

int SceneLayers.__bool__ (self)

bool SceneLayers.__eq__ (self, SceneLayers f)

SceneLayers SceneLayers.__iand__ (self, int mask)

int SceneLayers.__int__ (self)

SceneLayers SceneLayers.__invert__ (self)

SceneLayers SceneLayers.__ior__ (self, SceneLayers f)

SceneLayers SceneLayers.__ixor__ (self, SceneLayers f)

bool SceneLayers.__ne__ (self, SceneLayers f)

SceneLayers SceneLayers.__or__ (self, SceneLayers f)

SceneLayers SceneLayers.__or__ (self, int f)

SceneLayers SceneLayers.__xor__ (self, SceneLayers f)

SceneLayers SceneLayers.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscene.html0000644000076500000240000032303612536324506021357 0ustar philstaff00000000000000 QGraphicsScene Class Reference
  Home · All Classes · Modules

QGraphicsScene Class Reference
[QtGui module]

The QGraphicsScene class provides a surface for managing a large number of 2D graphical items. More...

Inherits QObject.

Types

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, QRectF sceneRect, QObject parent = None)
  • __init__ (self, float x, float y, float width, float height, QObject parent = None)
  • QGraphicsItem activePanel (self)
  • QGraphicsWidget activeWindow (self)
  • QGraphicsEllipseItem addEllipse (self, QRectF rect, QPen pen = QPen(), QBrush brush = QBrush())
  • QGraphicsEllipseItem addEllipse (self, float x, float y, float w, float h, QPen pen = QPen(), QBrush brush = QBrush())
  • addItem (self, QGraphicsItem item)
  • QGraphicsLineItem addLine (self, QLineF line, QPen pen = QPen())
  • QGraphicsLineItem addLine (self, float x1, float y1, float x2, float y2, QPen pen = QPen())
  • QGraphicsPathItem addPath (self, QPainterPath path, QPen pen = QPen(), QBrush brush = QBrush())
  • QGraphicsPixmapItem addPixmap (self, QPixmap pixmap)
  • QGraphicsPolygonItem addPolygon (self, QPolygonF polygon, QPen pen = QPen(), QBrush brush = QBrush())
  • QGraphicsRectItem addRect (self, QRectF rect, QPen pen = QPen(), QBrush brush = QBrush())
  • QGraphicsRectItem addRect (self, float x, float y, float w, float h, QPen pen = QPen(), QBrush brush = QBrush())
  • QGraphicsSimpleTextItem addSimpleText (self, QString text, QFont font = QFont())
  • QGraphicsTextItem addText (self, QString text, QFont font = QFont())
  • QGraphicsProxyWidget addWidget (self, QWidget widget, Qt.WindowFlags flags = 0)
  • advance (self)
  • QBrush backgroundBrush (self)
  • int bspTreeDepth (self)
  • clear (self)
  • clearFocus (self)
  • list-of-QGraphicsItem collidingItems (self, QGraphicsItem item, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)
  • contextMenuEvent (self, QGraphicsSceneContextMenuEvent event)
  • QGraphicsItemGroup createItemGroup (self, list-of-QGraphicsItem items)
  • destroyItemGroup (self, QGraphicsItemGroup group)
  • dragEnterEvent (self, QGraphicsSceneDragDropEvent event)
  • dragLeaveEvent (self, QGraphicsSceneDragDropEvent event)
  • dragMoveEvent (self, QGraphicsSceneDragDropEvent event)
  • drawBackground (self, QPainter painter, QRectF rect)
  • drawForeground (self, QPainter painter, QRectF rect)
  • drawItems (self, QPainter painter, list-of-QGraphicsItem items, list-of-QStyleOptionGraphicsItem options, QWidget widget = None)
  • dropEvent (self, QGraphicsSceneDragDropEvent event)
  • bool event (self, QEvent event)
  • bool eventFilter (self, QObject watched, QEvent event)
  • focusInEvent (self, QFocusEvent event)
  • QGraphicsItem focusItem (self)
  • bool focusNextPrevChild (self, bool next)
  • focusOutEvent (self, QFocusEvent event)
  • QFont font (self)
  • QBrush foregroundBrush (self)
  • bool hasFocus (self)
  • float height (self)
  • helpEvent (self, QGraphicsSceneHelpEvent event)
  • inputMethodEvent (self, QInputMethodEvent event)
  • QVariant inputMethodQuery (self, Qt.InputMethodQuery query)
  • invalidate (self, QRectF rect = QRectF(), SceneLayers layers = QGraphicsScene.AllLayers)
  • invalidate (self, float x, float y, float w, float h, SceneLayers layers = QGraphicsScene.AllLayers)
  • bool isActive (self)
  • bool isSortCacheEnabled (self)
  • QGraphicsItem itemAt (self, QPointF pos)
  • QGraphicsItem itemAt (self, float x, float y)
  • QGraphicsItem itemAt (self, QPointF pos, QTransform deviceTransform)
  • QGraphicsItem itemAt (self, float x, float y, QTransform deviceTransform)
  • ItemIndexMethod itemIndexMethod (self)
  • list-of-QGraphicsItem items (self)
  • list-of-QGraphicsItem items (self, Qt.SortOrder order)
  • list-of-QGraphicsItem items (self, QPointF pos)
  • list-of-QGraphicsItem items (self, QPointF pos, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())
  • list-of-QGraphicsItem items (self, QRectF rectangle, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)
  • list-of-QGraphicsItem items (self, QRectF rect, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())
  • list-of-QGraphicsItem items (self, QPolygonF polygon, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)
  • list-of-QGraphicsItem items (self, QPolygonF polygon, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())
  • list-of-QGraphicsItem items (self, QPainterPath path, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)
  • list-of-QGraphicsItem items (self, QPainterPath path, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())
  • list-of-QGraphicsItem items (self, float x, float y, float w, float h, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)
  • list-of-QGraphicsItem items (self, float x, float y, float w, float h, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())
  • QRectF itemsBoundingRect (self)
  • keyPressEvent (self, QKeyEvent event)
  • keyReleaseEvent (self, QKeyEvent event)
  • mouseDoubleClickEvent (self, QGraphicsSceneMouseEvent event)
  • QGraphicsItem mouseGrabberItem (self)
  • mouseMoveEvent (self, QGraphicsSceneMouseEvent event)
  • mousePressEvent (self, QGraphicsSceneMouseEvent event)
  • mouseReleaseEvent (self, QGraphicsSceneMouseEvent event)
  • QPalette palette (self)
  • removeItem (self, QGraphicsItem item)
  • render (self, QPainter painter, QRectF target = QRectF(), QRectF source = QRectF(), Qt.AspectRatioMode mode = Qt.KeepAspectRatio)
  • QRectF sceneRect (self)
  • list-of-QGraphicsItem selectedItems (self)
  • QPainterPath selectionArea (self)
  • bool sendEvent (self, QGraphicsItem item, QEvent event)
  • setActivePanel (self, QGraphicsItem item)
  • setActiveWindow (self, QGraphicsWidget widget)
  • setBackgroundBrush (self, QBrush brush)
  • setBspTreeDepth (self, int depth)
  • setFocus (self, Qt.FocusReason focusReason = Qt.OtherFocusReason)
  • setFocusItem (self, QGraphicsItem item, Qt.FocusReason focusReason = Qt.OtherFocusReason)
  • setFont (self, QFont font)
  • setForegroundBrush (self, QBrush brush)
  • setItemIndexMethod (self, ItemIndexMethod method)
  • setPalette (self, QPalette palette)
  • setSceneRect (self, QRectF rect)
  • setSceneRect (self, float x, float y, float w, float h)
  • setSelectionArea (self, QPainterPath path, QTransform deviceTransform)
  • setSelectionArea (self, QPainterPath path)
  • setSelectionArea (self, QPainterPath path, Qt.ItemSelectionMode)
  • setSelectionArea (self, QPainterPath path, Qt.ItemSelectionMode mode, QTransform deviceTransform)
  • setSortCacheEnabled (self, bool enabled)
  • setStickyFocus (self, bool enabled)
  • setStyle (self, QStyle style)
  • bool stickyFocus (self)
  • QStyle style (self)
  • update (self, QRectF rect = QRectF())
  • update (self, float x, float y, float w, float h)
  • list-of-QGraphicsView views (self)
  • wheelEvent (self, QGraphicsSceneWheelEvent event)
  • float width (self)

Qt Signals


Detailed Description

The QGraphicsScene class provides a surface for managing a large number of 2D graphical items.

The class serves as a container for QGraphicsItems. It is used together with QGraphicsView for visualizing graphical items, such as lines, rectangles, text, or even custom items, on a 2D surface. QGraphicsScene is part of the Graphics View Framework.

QGraphicsScene also provides functionality that lets you efficiently determine both the location of items, and for determining what items are visible within an arbitrary area on the scene. With the QGraphicsView widget, you can either visualize the whole scene, or zoom in and view only parts of the scene.

Example:

 QGraphicsScene scene;
 scene.addText("Hello, world!");

 QGraphicsView view(&scene);
 view.show();

Note that QGraphicsScene has no visual appearance of its own; it only manages the items. You need to create a QGraphicsView widget to visualize the scene.

To add items to a scene, you start off by constructing a QGraphicsScene object. Then, you have two options: either add your existing QGraphicsItem objects by calling addItem(), or you can call one of the convenience functions addEllipse(), addLine(), addPath(), addPixmap(), addPolygon(), addRect(), or addText(), which all return a pointer to the newly added item. The dimensions of the items added with these functions are relative to the item's coordinate system, and the items position is initialized to (0, 0) in the scene.

You can then visualize the scene using QGraphicsView. When the scene changes, (e.g., when an item moves or is transformed) QGraphicsScene emits the changed() signal. To remove an item, call removeItem().

QGraphicsScene uses an indexing algorithm to manage the location of items efficiently. By default, a BSP (Binary Space Partitioning) tree is used; an algorithm suitable for large scenes where most items remain static (i.e., do not move around). You can choose to disable this index by calling setItemIndexMethod(). For more information about the available indexing algorithms, see the itemIndexMethod property.

The scene's bounding rect is set by calling setSceneRect(). Items can be placed at any position on the scene, and the size of the scene is by default unlimited. The scene rect is used only for internal bookkeeping, maintaining the scene's item index. If the scene rect is unset, QGraphicsScene will use the bounding area of all items, as returned by itemsBoundingRect(), as the scene rect. However, itemsBoundingRect() is a relatively time consuming function, as it operates by collecting positional information for every item on the scene. Because of this, you should always set the scene rect when operating on large scenes.

One of QGraphicsScene's greatest strengths is its ability to efficiently determine the location of items. Even with millions of items on the scene, the items() functions can determine the location of an item within few milliseconds. There are several overloads to items(): one that finds items at a certain position, one that finds items inside or intersecting with a polygon or a rectangle, and more. The list of returned items is sorted by stacking order, with the topmost item being the first item in the list. For convenience, there is also an itemAt() function that returns the topmost item at a given position.

QGraphicsScene maintains selection information for the scene. To select items, call setSelectionArea(), and to clear the current selection, call clearSelection(). Call selectedItems() to get the list of all selected items.

Event Handling and Propagation

Another responsibility that QGraphicsScene has, is to propagate events from QGraphicsView. To send an event to a scene, you construct an event that inherits QEvent, and then send it using, for example, QApplication.sendEvent(). event() is responsible for dispatching the event to the individual items. Some common events are handled by convenience event handlers. For example, key press events are handled by keyPressEvent(), and mouse press events are handled by mousePressEvent().

Key events are delivered to the focus item. To set the focus item, you can either call setFocusItem(), passing an item that accepts focus, or the item itself can call QGraphicsItem.setFocus(). Call focusItem() to get the current focus item. For compatibility with widgets, the scene also maintains its own focus information. By default, the scene does not have focus, and all key events are discarded. If setFocus() is called, or if an item on the scene gains focus, the scene automatically gains focus. If the scene has focus, hasFocus() will return true, and key events will be forwarded to the focus item, if any. If the scene loses focus, (i.e., someone calls clearFocus()) while an item has focus, the scene will maintain its item focus information, and once the scene regains focus, it will make sure the last focus item regains focus.

For mouse-over effects, QGraphicsScene dispatches hover events. If an item accepts hover events (see QGraphicsItem.acceptHoverEvents()), it will receive a GraphicsSceneHoverEnter event when the mouse enters its area. As the mouse continues moving inside the item's area, QGraphicsScene will send it GraphicsSceneHoverMove events. When the mouse leaves the item's area, the item will receive a GraphicsSceneHoverLeave event.

All mouse events are delivered to the current mouse grabber item. An item becomes the scene's mouse grabber if it accepts mouse events (see QGraphicsItem.acceptedMouseButtons()) and it receives a mouse press. It stays the mouse grabber until it receives a mouse release when no other mouse buttons are pressed. You can call mouseGrabberItem() to determine what item is currently grabbing the mouse.


Type Documentation

QGraphicsScene.ItemIndexMethod

This enum describes the indexing algorithms QGraphicsScene provides for managing positional information about items on the scene.

Constant Value Description
QGraphicsScene.BspTreeIndex 0 A Binary Space Partitioning tree is applied. All QGraphicsScene's item location algorithms are of an order close to logarithmic complexity, by making use of binary search. Adding, moving and removing items is logarithmic. This approach is best for static scenes (i.e., scenes where most items do not move).
QGraphicsScene.NoIndex -1 No index is applied. Item location is of linear complexity, as all items on the scene are searched. Adding, moving and removing items, however, is done in constant time. This approach is ideal for dynamic scenes, where many items are added, moved or removed continuously.

See also setItemIndexMethod() and bspTreeDepth.

QGraphicsScene.SceneLayer

This enum describes the rendering layers in a QGraphicsScene. When QGraphicsScene draws the scene contents, it renders each of these layers separately, in order.

Each layer represents a flag that can be OR'ed together when calling functions such as invalidate() or QGraphicsView.invalidateScene().

Constant Value Description
QGraphicsScene.ItemLayer 0x1 The item layer. QGraphicsScene renders all items are in this layer by calling the virtual function drawItems(). The item layer is drawn after the background layer, but before the foreground layer.
QGraphicsScene.BackgroundLayer 0x2 The background layer. QGraphicsScene renders the scene's background in this layer by calling the virtual function drawBackground(). The background layer is drawn first of all layers.
QGraphicsScene.ForegroundLayer 0x4 The foreground layer. QGraphicsScene renders the scene's foreground in this layer by calling the virtual function drawForeground(). The foreground layer is drawn last of all layers.
QGraphicsScene.AllLayers 0xffff All layers; this value represents a combination of all three layers.

This enum was introduced or modified in Qt 4.3.

The SceneLayers type is a typedef for QFlags<SceneLayer>. It stores an OR combination of SceneLayer values.

See also invalidate() and QGraphicsView.invalidateScene().


Method Documentation

QGraphicsScene.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsScene object. The parent parameter is passed to QObject's constructor.

QGraphicsScene.__init__ (self, QRectF sceneRect, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsScene object, using sceneRect for its scene rectangle. The parent parameter is passed to QObject's constructor.

See also sceneRect.

QGraphicsScene.__init__ (self, float x, float y, float width, float height, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsScene object, using the rectangle specified by (x, y), and the given width and height for its scene rectangle. The parent parameter is passed to QObject's constructor.

See also sceneRect.

QGraphicsItem QGraphicsScene.activePanel (self)

Returns the current active panel, or 0 if no panel is currently active.

This function was introduced in Qt 4.6.

See also QGraphicsScene.setActivePanel().

QGraphicsWidget QGraphicsScene.activeWindow (self)

Returns the current active window, or 0 if no window is currently active.

This function was introduced in Qt 4.4.

See also QGraphicsScene.setActiveWindow().

QGraphicsEllipseItem QGraphicsScene.addEllipse (self, QRectF rect, QPen pen = QPen(), QBrush brush = QBrush())

Creates and adds an ellipse item to the scene, and returns the item pointer. The geometry of the ellipse is defined by rect, and its pen and brush are initialized to pen and brush.

Note that the item's geometry is provided in item coordinates, and its position is initialized to (0, 0).

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

See also addLine(), addPath(), addPixmap(), addRect(), addText(), addItem(), and addWidget().

QGraphicsEllipseItem QGraphicsScene.addEllipse (self, float x, float y, float w, float h, QPen pen = QPen(), QBrush brush = QBrush())

This convenience function is equivalent to calling addEllipse(QRectF(x, y, w, h), pen, brush).

This function was introduced in Qt 4.3.

QGraphicsScene.addItem (self, QGraphicsItem item)

The item argument has it's ownership transferred to Qt.

Adds or moves the item and all its childen to this scene. This scene takes ownership of the item.

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

If the item is already in a different scene, it will first be removed from its old scene, and then added to this scene as a top-level.

QGraphicsScene will send ItemSceneChange notifications to item while it is added to the scene. If item does not currently belong to a scene, only one notification is sent. If it does belong to scene already (i.e., it is moved to this scene), QGraphicsScene will send an addition notification as the item is removed from its previous scene.

If the item is a panel, the scene is active, and there is no active panel in the scene, then the item will be activated.

See also removeItem(), addEllipse(), addLine(), addPath(), addPixmap(), addRect(), addText(), addWidget(), and Sorting.

QGraphicsLineItem QGraphicsScene.addLine (self, QLineF line, QPen pen = QPen())

Creates and adds a line item to the scene, and returns the item pointer. The geometry of the line is defined by line, and its pen is initialized to pen.

Note that the item's geometry is provided in item coordinates, and its position is initialized to (0, 0).

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

See also addEllipse(), addPath(), addPixmap(), addRect(), addText(), addItem(), and addWidget().

QGraphicsLineItem QGraphicsScene.addLine (self, float x1, float y1, float x2, float y2, QPen pen = QPen())

This convenience function is equivalent to calling addLine(QLineF(x1, y1, x2, y2), pen).

This function was introduced in Qt 4.3.

QGraphicsPathItem QGraphicsScene.addPath (self, QPainterPath path, QPen pen = QPen(), QBrush brush = QBrush())

Creates and adds a path item to the scene, and returns the item pointer. The geometry of the path is defined by path, and its pen and brush are initialized to pen and brush.

Note that the item's geometry is provided in item coordinates, and its position is initialized to (0, 0).

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

See also addEllipse(), addLine(), addPixmap(), addRect(), addText(), addItem(), and addWidget().

QGraphicsPixmapItem QGraphicsScene.addPixmap (self, QPixmap pixmap)

Creates and adds a pixmap item to the scene, and returns the item pointer. The pixmap is defined by pixmap.

Note that the item's geometry is provided in item coordinates, and its position is initialized to (0, 0).

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

See also addEllipse(), addLine(), addPath(), addRect(), addText(), addItem(), and addWidget().

QGraphicsPolygonItem QGraphicsScene.addPolygon (self, QPolygonF polygon, QPen pen = QPen(), QBrush brush = QBrush())

Creates and adds a polygon item to the scene, and returns the item pointer. The polygon is defined by polygon, and its pen and brush are initialized to pen and brush.

Note that the item's geometry is provided in item coordinates, and its position is initialized to (0, 0).

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

See also addEllipse(), addLine(), addPath(), addRect(), addText(), addItem(), and addWidget().

QGraphicsRectItem QGraphicsScene.addRect (self, QRectF rect, QPen pen = QPen(), QBrush brush = QBrush())

Creates and adds a rectangle item to the scene, and returns the item pointer. The geometry of the rectangle is defined by rect, and its pen and brush are initialized to pen and brush.

Note that the item's geometry is provided in item coordinates, and its position is initialized to (0, 0). For example, if a QRect(50, 50, 100, 100) is added, its top-left corner will be at (50, 50) relative to the origin in the items coordinate system.

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

See also addEllipse(), addLine(), addPixmap(), addPixmap(), addText(), addItem(), and addWidget().

QGraphicsRectItem QGraphicsScene.addRect (self, float x, float y, float w, float h, QPen pen = QPen(), QBrush brush = QBrush())

This convenience function is equivalent to calling addRect(QRectF(x, y, w, h), pen, brush).

This function was introduced in Qt 4.3.

QGraphicsSimpleTextItem QGraphicsScene.addSimpleText (self, QString text, QFont font = QFont())

Creates and adds a QGraphicsSimpleTextItem to the scene, and returns the item pointer. The text string is initialized to text, and its font is initialized to font.

The item's position is initialized to (0, 0).

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

See also addEllipse(), addLine(), addPixmap(), addPixmap(), addRect(), addItem(), and addWidget().

QGraphicsTextItem QGraphicsScene.addText (self, QString text, QFont font = QFont())

Creates and adds a text item to the scene, and returns the item pointer. The text string is initialized to text, and its font is initialized to font.

The item's position is initialized to (0, 0).

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

See also addEllipse(), addLine(), addPixmap(), addPixmap(), addRect(), addItem(), and addWidget().

QGraphicsProxyWidget QGraphicsScene.addWidget (self, QWidget widget, Qt.WindowFlags flags = 0)

The widget argument has it's ownership transferred to Qt.

Creates a new QGraphicsProxyWidget for widget, adds it to the scene, and returns a pointer to the proxy. wFlags set the default window flags for the embedding proxy widget.

The item's position is initialized to (0, 0).

If the item is visible (i.e., QGraphicsItem.isVisible() returns true), QGraphicsScene will emit changed() once control goes back to the event loop.

Note that widgets with the Qt.WA_PaintOnScreen widget attribute set and widgets that wrap an external application or controller are not supported. Examples are QGLWidget and QAxWidget.

See also addEllipse(), addLine(), addPixmap(), addPixmap(), addRect(), addText(), addSimpleText(), and addItem().

QGraphicsScene.advance (self)

This method is also a Qt slot with the C++ signature void advance().

This slot advances the scene by one step, by calling QGraphicsItem.advance() for all items on the scene. This is done in two phases: in the first phase, all items are notified that the scene is about to change, and in the second phase all items are notified that they can move. In the first phase, QGraphicsItem.advance() is called passing a value of 0 as an argument, and 1 is passed in the second phase.

See also QGraphicsItem.advance(), QGraphicsItemAnimation, and QTimeLine.

QBrush QGraphicsScene.backgroundBrush (self)

int QGraphicsScene.bspTreeDepth (self)

QGraphicsScene.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Removes and deletes all items from the scene, but otherwise leaves the state of the scene unchanged.

This function was introduced in Qt 4.4.

See also addItem().

QGraphicsScene.clearFocus (self)

Clears focus from the scene. If any item has focus when this function is called, it will lose focus, and regain focus again once the scene regains focus.

A scene that does not have focus ignores key events.

See also hasFocus(), setFocus(), and setFocusItem().

QGraphicsScene.clearSelection (self)

Clears the current selection.

See also setSelectionArea() and selectedItems().

list-of-QGraphicsItem QGraphicsScene.collidingItems (self, QGraphicsItem item, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

Returns a list of all items that collide with item. Collisions are determined by calling QGraphicsItem.collidesWithItem(); the collision detection is determined by mode. By default, all items whose shape intersects item or is contained inside item's shape are returned.

The items are returned in descending stacking order (i.e., the first item in the list is the uppermost item, and the last item is the lowermost item).

See also items(), itemAt(), QGraphicsItem.collidesWithItem(), and Sorting.

QGraphicsScene.contextMenuEvent (self, QGraphicsSceneContextMenuEvent event)

This event handler, for event contextMenuEvent, can be reimplemented in a subclass to receive context menu events. The default implementation forwards the event to the topmost item that accepts context menu events at the position of the event. If no items accept context menu events at this position, the event is ignored.

See also QGraphicsItem.contextMenuEvent().

QGraphicsItemGroup QGraphicsScene.createItemGroup (self, list-of-QGraphicsItem items)

The items argument has it's ownership transferred to Qt.

Groups all items in items into a new QGraphicsItemGroup, and returns a pointer to the group. The group is created with the common ancestor of items as its parent, and with position (0, 0). The items are all reparented to the group, and their positions and transformations are mapped to the group. If items is empty, this function will return an empty top-level QGraphicsItemGroup.

QGraphicsScene has ownership of the group item; you do not need to delete it. To dismantle (ungroup) a group, call destroyItemGroup().

See also destroyItemGroup() and QGraphicsItemGroup.addToGroup().

QGraphicsScene.destroyItemGroup (self, QGraphicsItemGroup group)

The group argument has it's ownership transferred to Qt.

Reparents all items in group to group's parent item, then removes group from the scene, and finally deletes it. The items' positions and transformations are mapped from the group to the group's parent.

See also createItemGroup() and QGraphicsItemGroup.removeFromGroup().

QGraphicsScene.dragEnterEvent (self, QGraphicsSceneDragDropEvent event)

This event handler, for event event, can be reimplemented in a subclass to receive drag enter events for the scene.

The default implementation accepts the event and prepares the scene to accept drag move events.

See also QGraphicsItem.dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), and dropEvent().

QGraphicsScene.dragLeaveEvent (self, QGraphicsSceneDragDropEvent event)

This event handler, for event event, can be reimplemented in a subclass to receive drag leave events for the scene.

See also QGraphicsItem.dragLeaveEvent(), dragEnterEvent(), dragMoveEvent(), and dropEvent().

QGraphicsScene.dragMoveEvent (self, QGraphicsSceneDragDropEvent event)

This event handler, for event event, can be reimplemented in a subclass to receive drag move events for the scene.

See also QGraphicsItem.dragMoveEvent(), dragEnterEvent(), dragLeaveEvent(), and dropEvent().

QGraphicsScene.drawBackground (self, QPainter painter, QRectF rect)

Draws the background of the scene using painter, before any items and the foreground are drawn. Reimplement this function to provide a custom background for the scene.

All painting is done in scene coordinates. The rect parameter is the exposed rectangle.

If all you want is to define a color, texture, or gradient for the background, you can call setBackgroundBrush() instead.

See also drawForeground() and drawItems().

QGraphicsScene.drawForeground (self, QPainter painter, QRectF rect)

Draws the foreground of the scene using painter, after the background and all items have been drawn. Reimplement this function to provide a custom foreground for the scene.

All painting is done in scene coordinates. The rect parameter is the exposed rectangle.

If all you want is to define a color, texture or gradient for the foreground, you can call setForegroundBrush() instead.

See also drawBackground() and drawItems().

QGraphicsScene.drawItems (self, QPainter painter, list-of-QGraphicsItem items, list-of-QStyleOptionGraphicsItem options, QWidget widget = None)

QGraphicsScene.dropEvent (self, QGraphicsSceneDragDropEvent event)

This event handler, for event event, can be reimplemented in a subclass to receive drop events for the scene.

See also QGraphicsItem.dropEvent(), dragEnterEvent(), dragMoveEvent(), and dragLeaveEvent().

bool QGraphicsScene.event (self, QEvent event)

Reimplemented from QObject.event().

Processes the event event, and dispatches it to the respective event handlers.

In addition to calling the convenience event handlers, this function is responsible for converting mouse move events to hover events for when there is no mouse grabber item. Hover events are delivered directly to items; there is no convenience function for them.

Unlike QWidget, QGraphicsScene does not have the convenience functions enterEvent() and leaveEvent(). Use this function to obtain those events instead.

See also contextMenuEvent(), keyPressEvent(), keyReleaseEvent(), mousePressEvent(), mouseMoveEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), focusInEvent(), and focusOutEvent().

bool QGraphicsScene.eventFilter (self, QObject watched, QEvent event)

Reimplemented from QObject.eventFilter().

QGraphicsScene filters QApplication's events to detect palette and font changes.

QGraphicsScene.focusInEvent (self, QFocusEvent event)

This event handler, for event focusEvent, can be reimplemented in a subclass to receive focus in events.

The default implementation sets focus on the scene, and then on the last focus item.

See also QGraphicsItem.focusOutEvent().

QGraphicsItem QGraphicsScene.focusItem (self)

When the scene is active, this functions returns the scene's current focus item, or 0 if no item currently has focus. When the scene is inactive, this functions returns the item that will gain input focus when the scene becomes active.

The focus item receives keyboard input when the scene receives a key event.

See also setFocusItem(), QGraphicsItem.hasFocus(), and isActive().

bool QGraphicsScene.focusNextPrevChild (self, bool next)

Finds a new widget to give the keyboard focus to, as appropriate for Tab and Shift+Tab, and returns true if it can find a new widget, or false if it cannot. If next is true, this function searches forward; if next is false, it searches backward.

You can reimplement this function in a subclass of QGraphicsScene to provide fine-grained control over how tab focus passes inside your scene. The default implementation is based on the tab focus chain defined by QGraphicsWidget.setTabOrder().

This function was introduced in Qt 4.4.

QGraphicsScene.focusOutEvent (self, QFocusEvent event)

This event handler, for event focusEvent, can be reimplemented in a subclass to receive focus out events.

The default implementation removes focus from any focus item, then removes focus from the scene.

See also QGraphicsItem.focusInEvent().

QFont QGraphicsScene.font (self)

QBrush QGraphicsScene.foregroundBrush (self)

bool QGraphicsScene.hasFocus (self)

Returns true if the scene has focus; otherwise returns false. If the scene has focus, it will will forward key events from QKeyEvent to any item that has focus.

See also setFocus() and setFocusItem().

float QGraphicsScene.height (self)

This convenience function is equivalent to calling sceneRect().height().

See also width().

QGraphicsScene.helpEvent (self, QGraphicsSceneHelpEvent event)

This event handler, for event helpEvent, can be reimplemented in a subclass to receive help events. The events are of type QEvent.ToolTip, which are created when a tooltip is requested.

The default implementation shows the tooltip of the topmost item, i.e., the item with the highest z-value, at the mouse cursor position. If no item has a tooltip set, this function does nothing.

See also QGraphicsItem.toolTip() and QGraphicsSceneHelpEvent.

QGraphicsScene.inputMethodEvent (self, QInputMethodEvent event)

This event handler, for event event, can be reimplemented in a subclass to receive input method events for the scene.

The default implementation forwards the event to the focusItem(). If no item currently has focus or the current focus item does not accept input methods, this function does nothing.

See also QGraphicsItem.inputMethodEvent().

QVariant QGraphicsScene.inputMethodQuery (self, Qt.InputMethodQuery query)

This method is used by input methods to query a set of properties of the scene to be able to support complex input method operations as support for surrounding text and reconversions.

The query parameter specifies which property is queried.

See also QWidget.inputMethodQuery().

QGraphicsScene.invalidate (self, QRectF rect = QRectF(), SceneLayers layers = QGraphicsScene.AllLayers)

This method is also a Qt slot with the C++ signature void invalidate(const QRectF& = QRectF(),QGraphicsScene::SceneLayers = QGraphicsScene.AllLayers).

Invalidates and schedules a redraw of the layers in rect on the scene. Any cached content in layers is unconditionally invalidated and redrawn.

You can use this function overload to notify QGraphicsScene of changes to the background or the foreground of the scene. This function is commonly used for scenes with tile-based backgrounds to notify changes when QGraphicsView has enabled CacheBackground.

Example:

 QRectF TileScene.rectForTile(int x, int y) const
 {
     // Return the rectangle for the tile at position (x, y).
     return QRectF(x * tileWidth, y * tileHeight, tileWidth, tileHeight);
 }

 void TileScene.setTile(int x, int y, const QPixmap &pixmap)
 {
     // Sets or replaces the tile at position (x, y) with pixmap.
     if (x >= 0 && x < numTilesH && y >= 0 && y < numTilesV) {
         tiles[y][x] = pixmap;
         invalidate(rectForTile(x, y), BackgroundLayer);
     }
 }

 void TileScene.drawBackground(QPainter *painter, const QRectF &exposed)
 {
     // Draws all tiles that intersect the exposed area.
     for (int y = 0; y < numTilesV; ++y) {
         for (int x = 0; x < numTilesH; ++x) {
             QRectF rect = rectForTile(x, y);
             if (exposed.intersects(rect))
                 painter->drawPixmap(rect.topLeft(), tiles[y][x]);
         }
     }
 }

Note that QGraphicsView currently supports background caching only (see QGraphicsView.CacheBackground). This function is equivalent to calling update() if any layer but BackgroundLayer is passed.

See also QGraphicsView.resetCachedContent().

QGraphicsScene.invalidate (self, float x, float y, float w, float h, SceneLayers layers = QGraphicsScene.AllLayers)

This is an overloaded function.

This convenience function is equivalent to calling invalidate(QRectF(x, y, w, h), layers);

This function was introduced in Qt 4.3.

bool QGraphicsScene.isActive (self)

Returns true if the scene is active (e.g., it's viewed by at least one QGraphicsView that is active); otherwise returns false.

This function was introduced in Qt 4.6.

See also QGraphicsItem.isActive() and QWidget.isActiveWindow().

bool QGraphicsScene.isSortCacheEnabled (self)

QGraphicsItem QGraphicsScene.itemAt (self, QPointF pos)

Returns the topmost visible item at the specified position, or 0 if there are no items at this position.

deviceTransform is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.

This function was introduced in Qt 4.6.

See also items(), collidingItems(), and Sorting.

QGraphicsItem QGraphicsScene.itemAt (self, float x, float y)

QGraphicsItem QGraphicsScene.itemAt (self, QPointF pos, QTransform deviceTransform)

This is an overloaded function.

Returns the topmost item at the position specified by (x, y), or 0 if there are no items at this position.

deviceTransform is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.

This convenience function is equivalent to calling itemAt(QPointF(x, y), deviceTransform).

This function was introduced in Qt 4.6.

QGraphicsItem QGraphicsScene.itemAt (self, float x, float y, QTransform deviceTransform)

ItemIndexMethod QGraphicsScene.itemIndexMethod (self)

list-of-QGraphicsItem QGraphicsScene.items (self)

Returns a list of all items in the scene in descending stacking order.

See also addItem(), removeItem(), and Sorting.

list-of-QGraphicsItem QGraphicsScene.items (self, Qt.SortOrder order)

Returns an ordered list of all items on the scene. order decides the stacking order.

See also addItem(), removeItem(), and Sorting.

list-of-QGraphicsItem QGraphicsScene.items (self, QPointF pos)

Returns all visible items that, depending on mode, are at the specified pos in a list sorted using order.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with pos are returned.

deviceTransform is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.

This function was introduced in Qt 4.6.

See also itemAt() and Sorting.

list-of-QGraphicsItem QGraphicsScene.items (self, QPointF pos, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())

list-of-QGraphicsItem QGraphicsScene.items (self, QRectF rectangle, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

list-of-QGraphicsItem QGraphicsScene.items (self, QRectF rect, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())

list-of-QGraphicsItem QGraphicsScene.items (self, QPolygonF polygon, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This is an overloaded function.

Returns all visible items that, depending on mode, are either inside or intersect with the rectangle defined by x, y, w and h, in a list sorted using order.

deviceTransform is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.

This function was introduced in Qt 4.6.

list-of-QGraphicsItem QGraphicsScene.items (self, QPolygonF polygon, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())

list-of-QGraphicsItem QGraphicsScene.items (self, QPainterPath path, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

list-of-QGraphicsItem QGraphicsScene.items (self, QPainterPath path, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())

This is an overloaded function.

Returns all visible items that, depending on mode, are either inside or intersect with the specified rect and return a list sorted using order.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with or is contained by rect are returned.

deviceTransform is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.

This function was introduced in Qt 4.6.

See also itemAt() and Sorting.

list-of-QGraphicsItem QGraphicsScene.items (self, float x, float y, float w, float h, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This is an overloaded function.

Returns all visible items that, depending on mode, are either inside or intersect with the specified polygon and return a list sorted using order.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with or is contained by polygon are returned.

deviceTransform is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.

This function was introduced in Qt 4.6.

See also itemAt() and Sorting.

list-of-QGraphicsItem QGraphicsScene.items (self, float x, float y, float w, float h, Qt.ItemSelectionMode mode, Qt.SortOrder order, QTransform deviceTransform = QTransform())

This is an overloaded function.

Returns all visible items that, depending on mode, are either inside or intersect with the specified path and return a list sorted using order.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with or is contained by path are returned.

deviceTransform is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.

This function was introduced in Qt 4.6.

See also itemAt() and Sorting.

QRectF QGraphicsScene.itemsBoundingRect (self)

Calculates and returns the bounding rect of all items on the scene. This function works by iterating over all items, and because if this, it can be slow for large scenes.

See also sceneRect().

QGraphicsScene.keyPressEvent (self, QKeyEvent event)

This event handler, for event keyEvent, can be reimplemented in a subclass to receive keypress events. The default implementation forwards the event to current focus item.

See also QGraphicsItem.keyPressEvent() and focusItem().

QGraphicsScene.keyReleaseEvent (self, QKeyEvent event)

This event handler, for event keyEvent, can be reimplemented in a subclass to receive key release events. The default implementation forwards the event to current focus item.

See also QGraphicsItem.keyReleaseEvent() and focusItem().

QGraphicsScene.mouseDoubleClickEvent (self, QGraphicsSceneMouseEvent event)

This event handler, for event mouseEvent, can be reimplemented in a subclass to receive mouse doubleclick events for the scene.

If someone doubleclicks on the scene, the scene will first receive a mouse press event, followed by a release event (i.e., a click), then a doubleclick event, and finally a release event. If the doubleclick event is delivered to a different item than the one that received the first press and release, it will be delivered as a press event. However, tripleclick events are not delivered as doubleclick events in this case.

The default implementation is similar to mousePressEvent().

See also QGraphicsItem.mousePressEvent(), QGraphicsItem.mouseMoveEvent(), QGraphicsItem.mouseReleaseEvent(), and QGraphicsItem.setAcceptedMouseButtons().

QGraphicsItem QGraphicsScene.mouseGrabberItem (self)

Returns the current mouse grabber item, or 0 if no item is currently grabbing the mouse. The mouse grabber item is the item that receives all mouse events sent to the scene.

An item becomes a mouse grabber when it receives and accepts a mouse press event, and it stays the mouse grabber until either of the following events occur:

  • If the item receives a mouse release event when there are no other buttons pressed, it loses the mouse grab.
  • If the item becomes invisible (i.e., someone calls item->setVisible(false)), or if it becomes disabled (i.e., someone calls item->setEnabled(false)), it loses the mouse grab.
  • If the item is removed from the scene, it loses the mouse grab.

If the item loses its mouse grab, the scene will ignore all mouse events until a new item grabs the mouse (i.e., until a new item receives a mouse press event).

QGraphicsScene.mouseMoveEvent (self, QGraphicsSceneMouseEvent event)

This event handler, for event mouseEvent, can be reimplemented in a subclass to receive mouse move events for the scene.

The default implementation depends on the mouse grabber state. If there is a mouse grabber item, the event is sent to the mouse grabber. If there are any items that accept hover events at the current position, the event is translated into a hover event and accepted; otherwise it's ignored.

See also QGraphicsItem.mousePressEvent(), QGraphicsItem.mouseReleaseEvent(), QGraphicsItem.mouseDoubleClickEvent(), and QGraphicsItem.setAcceptedMouseButtons().

QGraphicsScene.mousePressEvent (self, QGraphicsSceneMouseEvent event)

This event handler, for event mouseEvent, can be reimplemented in a subclass to receive mouse press events for the scene.

The default implementation depends on the state of the scene. If there is a mouse grabber item, then the event is sent to the mouse grabber. Otherwise, it is forwarded to the topmost item that accepts mouse events at the scene position from the event, and that item promptly becomes the mouse grabber item.

If there is no item at the given position on the scene, the selection area is reset, any focus item loses its input focus, and the event is then ignored.

See also QGraphicsItem.mousePressEvent() and QGraphicsItem.setAcceptedMouseButtons().

QGraphicsScene.mouseReleaseEvent (self, QGraphicsSceneMouseEvent event)

This event handler, for event mouseEvent, can be reimplemented in a subclass to receive mouse release events for the scene.

The default implementation depends on the mouse grabber state. If there is no mouse grabber, the event is ignored. Otherwise, if there is a mouse grabber item, the event is sent to the mouse grabber. If this mouse release represents the last pressed button on the mouse, the mouse grabber item then loses the mouse grab.

See also QGraphicsItem.mousePressEvent(), QGraphicsItem.mouseMoveEvent(), QGraphicsItem.mouseDoubleClickEvent(), and QGraphicsItem.setAcceptedMouseButtons().

QPalette QGraphicsScene.palette (self)

QGraphicsScene.removeItem (self, QGraphicsItem item)

The item argument

Removes the item item and all its children from the scene. The ownership of item is passed on to the caller (i.e., QGraphicsScene will no longer delete item when destroyed).

See also addItem().

QGraphicsScene.render (self, QPainter painter, QRectF target = QRectF(), QRectF source = QRectF(), Qt.AspectRatioMode mode = Qt.KeepAspectRatio)

Renders the source rect from scene into target, using painter. This function is useful for capturing the contents of the scene onto a paint device, such as a QImage (e.g., to take a screenshot), or for printing with QPrinter. For example:

 QGraphicsScene scene;
 scene.addItem(...
 ...
 QPrinter printer(QPrinter.HighResolution);
 printer.setPaperSize(QPrinter.A4);

 QPainter painter(&printer);
 scene.render(&painter);

If source is a null rect, this function will use sceneRect() to determine what to render. If target is a null rect, the dimensions of painter's paint device will be used.

The source rect contents will be transformed according to aspectRatioMode to fit into the target rect. By default, the aspect ratio is kept, and source is scaled to fit in target.

See also QGraphicsView.render().

QRectF QGraphicsScene.sceneRect (self)

list-of-QGraphicsItem QGraphicsScene.selectedItems (self)

Returns a list of all currently selected items. The items are returned in no particular order.

See also setSelectionArea().

QPainterPath QGraphicsScene.selectionArea (self)

Returns the selection area that was previously set with setSelectionArea(), or an empty QPainterPath if no selection area has been set.

See also setSelectionArea().

bool QGraphicsScene.sendEvent (self, QGraphicsItem item, QEvent event)

Sends event event to item item through possible event filters.

The event is sent only if the item is enabled.

Returns false if the event was filtered or if the item is disabled. Otherwise returns the value that was returned from the event handler.

This function was introduced in Qt 4.6.

See also QGraphicsItem.sceneEvent() and QGraphicsItem.sceneEventFilter().

QGraphicsScene.setActivePanel (self, QGraphicsItem item)

Activates item, which must be an item in this scene. You can also pass 0 for item, in which case QGraphicsScene will deactivate any currently active panel.

If the scene is currently inactive, item remains inactive until the scene becomes active (or, ir item is 0, no item will be activated).

This function was introduced in Qt 4.6.

See also activePanel(), isActive(), and QGraphicsItem.isActive().

QGraphicsScene.setActiveWindow (self, QGraphicsWidget widget)

Activates widget, which must be a widget in this scene. You can also pass 0 for widget, in which case QGraphicsScene will deactivate any currently active window.

This function was introduced in Qt 4.4.

See also activeWindow() and QGraphicsWidget.isActiveWindow().

QGraphicsScene.setBackgroundBrush (self, QBrush brush)

QGraphicsScene.setBspTreeDepth (self, int depth)

QGraphicsScene.setFocus (self, Qt.FocusReason focusReason = Qt.OtherFocusReason)

Sets focus on the scene by sending a QFocusEvent to the scene, passing focusReason as the reason. If the scene regains focus after having previously lost it while an item had focus, the last focus item will receive focus with focusReason as the reason.

If the scene already has focus, this function does nothing.

See also hasFocus(), clearFocus(), and setFocusItem().

QGraphicsScene.setFocusItem (self, QGraphicsItem item, Qt.FocusReason focusReason = Qt.OtherFocusReason)

Sets the scene's focus item to item, with the focus reason focusReason, after removing focus from any previous item that may have had focus.

If item is 0, or if it either does not accept focus (i.e., it does not have the QGraphicsItem.ItemIsFocusable flag enabled), or is not visible or not enabled, this function only removes focus from any previous focusitem.

If item is not 0, and the scene does not currently have focus (i.e., hasFocus() returns false), this function will call setFocus() automatically.

See also focusItem(), hasFocus(), and setFocus().

QGraphicsScene.setFont (self, QFont font)

QGraphicsScene.setForegroundBrush (self, QBrush brush)

QGraphicsScene.setItemIndexMethod (self, ItemIndexMethod method)

QGraphicsScene.setPalette (self, QPalette palette)

QGraphicsScene.setSceneRect (self, QRectF rect)

QGraphicsScene.setSceneRect (self, float x, float y, float w, float h)

QGraphicsScene.setSelectionArea (self, QPainterPath path, QTransform deviceTransform)

Sets the selection area to path. All items within this area are immediately selected, and all items outside are unselected. You can get the list of all selected items by calling selectedItems().

deviceTransform is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.

For an item to be selected, it must be marked as selectable (QGraphicsItem.ItemIsSelectable).

This function was introduced in Qt 4.6.

See also clearSelection() and selectionArea().

QGraphicsScene.setSelectionArea (self, QPainterPath path)

QGraphicsScene.setSelectionArea (self, QPainterPath path, Qt.ItemSelectionMode)

QGraphicsScene.setSelectionArea (self, QPainterPath path, Qt.ItemSelectionMode mode, QTransform deviceTransform)

This is an overloaded function.

Sets the selection area to path using mode to determine if items are included in the selection area.

deviceTransform is the transformation that applies to the view, and needs to be provided if the scene contains items that ignore transformations.

This function was introduced in Qt 4.6.

See also clearSelection() and selectionArea().

QGraphicsScene.setSortCacheEnabled (self, bool enabled)

QGraphicsScene.setStickyFocus (self, bool enabled)

QGraphicsScene.setStyle (self, QStyle style)

The style argument has it's ownership transferred to Qt.

Sets or replaces the style of the scene to style, and reparents the style to this scene. Any previously assigned style is deleted. The scene's style defaults to QApplication.style(), and serves as the default for all QGraphicsWidget items in the scene.

Changing the style, either directly by calling this function, or indirectly by calling QApplication.setStyle(), will automatically update the style for all widgets in the scene that do not have a style explicitly assigned to them.

If style is 0, QGraphicsScene will revert to QApplication.style().

This function was introduced in Qt 4.4.

See also style().

bool QGraphicsScene.stickyFocus (self)

QStyle QGraphicsScene.style (self)

Returns the scene's style, or the same as QApplication.style() if the scene has not been explicitly assigned a style.

This function was introduced in Qt 4.4.

See also setStyle().

QGraphicsScene.update (self, QRectF rect = QRectF())

This method is also a Qt slot with the C++ signature void update(const QRectF& = QRectF()).

Schedules a redraw of the area rect on the scene.

See also sceneRect() and changed().

QGraphicsScene.update (self, float x, float y, float w, float h)

This is an overloaded function.

This function is equivalent to calling update(QRectF(x, y, w, h));

This function was introduced in Qt 4.3.

list-of-QGraphicsView QGraphicsScene.views (self)

Returns a list of all the views that display this scene.

See also QGraphicsView.scene().

QGraphicsScene.wheelEvent (self, QGraphicsSceneWheelEvent event)

This event handler, for event wheelEvent, can be reimplemented in a subclass to receive mouse wheel events for the scene.

By default, the event is delivered to the topmost visible item under the cursor. If ignored, the event propagates to the item beneath, and again until the event is accepted, or it reaches the scene. If no items accept the event, it is ignored.

See also QGraphicsItem.wheelEvent().

float QGraphicsScene.width (self)

This convenience function is equivalent to calling sceneRect().width().

See also height().


Qt Signal Documentation

void changed (const QList<QRectF>&)

This is the default overload of this signal.

This signal is emitted by QGraphicsScene when control reaches the event loop, if the scene content changes. The region parameter contains a list of scene rectangles that indicate the area that has been changed.

See also QGraphicsView.updateScene().

void sceneRectChanged (const QRectF&)

This is the default overload of this signal.

This signal is emitted by QGraphicsScene whenever the scene rect changes. The rect parameter is the new scene rectangle.

See also QGraphicsView.updateSceneRect().

void selectionChanged ()

This is the default overload of this signal.

This signal is emitted by QGraphicsScene whenever the selection changes. You can call selectedItems() to get the new list of selected items.

The selection changes whenever an item is selected or unselected, a selection area is set, cleared or otherwise changed, if a preselected item is added to the scene, or if a selected item is removed from the scene.

QGraphicsScene emits this signal only once for group selection operations. For example, if you set a selection area, select or unselect a QGraphicsItemGroup, or if you add or remove from the scene a parent item that contains several selected items, selectionChanged() is emitted only once after the operation has completed (instead of once for each item).

This function was introduced in Qt 4.3.

See also setSelectionArea(), selectedItems(), and QGraphicsItem.setSelected().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscenecontextmenuevent.html0000644000076500000240000001407512536324506024713 0ustar philstaff00000000000000 QGraphicsSceneContextMenuEvent Class Reference
  Home · All Classes · Modules

QGraphicsSceneContextMenuEvent Class Reference
[QtGui module]

The QGraphicsSceneContextMenuEvent class provides context menu events in the graphics view framework. More...

Inherits QGraphicsSceneEvent.

Types

  • enum Reason { Mouse, Keyboard, Other }

Methods


Detailed Description

The QGraphicsSceneContextMenuEvent class provides context menu events in the graphics view framework.

A QContextMenuEvent received by a QGraphicsView is translated into a QGraphicsSceneContextMenuEvent. The QContextMenuEvent.globalPos() is translated into item, scene, and screen coordinates (pos(), scenePos(), and screenPos()).


Type Documentation

QGraphicsSceneContextMenuEvent.Reason

This enum describes the reason why the context event was sent.

Constant Value Description
QGraphicsSceneContextMenuEvent.Mouse 0 The mouse caused the event to be sent. On most platforms, this means the right mouse button was clicked.
QGraphicsSceneContextMenuEvent.Keyboard 1 The keyboard caused this event to be sent. On Windows and Mac OS X, this means the menu button was pressed.
QGraphicsSceneContextMenuEvent.Other 2 The event was sent by some other means (i.e. not by the mouse or keyboard).

Method Documentation

Qt.KeyboardModifiers QGraphicsSceneContextMenuEvent.modifiers (self)

Returns the keyboard modifiers in use when the context menu was requested.

QPointF QGraphicsSceneContextMenuEvent.pos (self)

Returns the position of the mouse cursor in item coordinates at the moment the context menu was requested.

See also scenePos() and screenPos().

Reason QGraphicsSceneContextMenuEvent.reason (self)

Returns the reason for the context menu event.

See also QGraphicsSceneContextMenuEvent.Reason.

QPointF QGraphicsSceneContextMenuEvent.scenePos (self)

Returns the position of the mouse cursor in scene coordinates at the moment the the context menu was requested.

See also pos() and screenPos().

QPoint QGraphicsSceneContextMenuEvent.screenPos (self)

Returns the position of the mouse cursor in screen coordinates at the moment the the context menu was requested.

See also pos() and scenePos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscenedragdropevent.html0000644000076500000240000002275412536324506024147 0ustar philstaff00000000000000 QGraphicsSceneDragDropEvent Class Reference
  Home · All Classes · Modules

QGraphicsSceneDragDropEvent Class Reference
[QtGui module]

The QGraphicsSceneDragDropEvent class provides events for drag and drop in the graphics view framework. More...

Inherits QGraphicsSceneEvent.

Methods


Detailed Description

The QGraphicsSceneDragDropEvent class provides events for drag and drop in the graphics view framework.

QGraphicsView inherits the drag and drop functionality provided by QWidget. When it receives a drag and drop event, it translates it to a QGraphicsSceneDragDropEvent.

QGraphicsSceneDragDropEvent stores events of type GraphicsSceneDragEnter, GraphicsSceneDragLeave, GraphicsSceneDragMove, or GraphicsSceneDrop.

QGraphicsSceneDragDropEvent contains the position of the mouse cursor in both item, scene, and screen coordinates; this can be retrieved with pos(), scenePos(), and screenPos().

The scene sends the event to the first QGraphicsItem under the mouse cursor that accepts drops; a graphics item is set to accept drops with setAcceptDrops().


Method Documentation

QGraphicsSceneDragDropEvent.acceptProposedAction (self)

Sets the proposed action as accepted, i.e, the drop action is set to the proposed action. This is equal to:

 setDropAction(proposedAction());

When using this function, one should not call accept().

See also dropAction(), setDropAction(), and proposedAction().

Qt.MouseButtons QGraphicsSceneDragDropEvent.buttons (self)

Returns a Qt.MouseButtons value indicating which buttons were pressed on the mouse when this mouse event was generated.

See also Qt.MouseButtons.

Qt.DropAction QGraphicsSceneDragDropEvent.dropAction (self)

Returns the action that was performed in this drag and drop. This should be set by the receiver of the drop and is returned by QDrag.exec().

See also setDropAction() and acceptProposedAction().

QMimeData QGraphicsSceneDragDropEvent.mimeData (self)

This function returns the MIME data of the event.

Qt.KeyboardModifiers QGraphicsSceneDragDropEvent.modifiers (self)

Returns the keyboard modifiers that were pressed when the drag and drop event was created.

See also Qt.KeyboardModifiers.

QPointF QGraphicsSceneDragDropEvent.pos (self)

Returns the mouse position of the event relative to the view that sent the event.

See also QGraphicsView, screenPos(), and scenePos().

Qt.DropActions QGraphicsSceneDragDropEvent.possibleActions (self)

Returns the possible drop actions that the drag and drop can result in.

See also Qt.DropActions.

Qt.DropAction QGraphicsSceneDragDropEvent.proposedAction (self)

Returns the drop action that is proposed, i.e., preferred. The action must be one of the possible actions as defined by possibleActions().

See also Qt.DropAction and possibleActions().

QPointF QGraphicsSceneDragDropEvent.scenePos (self)

Returns the position of the mouse in scene coordinates.

See also pos() and screenPos().

QPoint QGraphicsSceneDragDropEvent.screenPos (self)

Returns the position of the mouse relative to the screen.

See also pos() and scenePos().

QGraphicsSceneDragDropEvent.setDropAction (self, Qt.DropAction action)

This function lets the receiver of the drop set the drop action that was performed to action, which should be one of the possible actions. Call accept() in stead of acceptProposedAction() if you use this function.

See also dropAction(), accept(), and possibleActions().

QWidget QGraphicsSceneDragDropEvent.source (self)

This function returns the QGraphicsView that created the QGraphicsSceneDragDropEvent.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicssceneevent.html0000644000076500000240000001231212536324506022411 0ustar philstaff00000000000000 QGraphicsSceneEvent Class Reference
  Home · All Classes · Modules

QGraphicsSceneEvent Class Reference
[QtGui module]

The QGraphicsSceneEvent class provides a base class for all graphics view related events. More...

Inherits QEvent.

Inherited by QGraphicsSceneContextMenuEvent, QGraphicsSceneDragDropEvent, QGraphicsSceneHelpEvent, QGraphicsSceneHoverEvent, QGraphicsSceneMouseEvent, QGraphicsSceneMoveEvent, QGraphicsSceneResizeEvent and QGraphicsSceneWheelEvent.

Methods


Detailed Description

The QGraphicsSceneEvent class provides a base class for all graphics view related events.

When a QGraphicsView receives Qt mouse, keyboard, and drag and drop events (QMouseEvent, QKeyEvent, QDragEvent, etc.), it translates them into instances of QGraphicsSceneEvent subclasses and forwards them to the QGraphicsScene it displays. The scene then forwards the events to the relevant items.

For example, when a QGraphicsView receives a QMouseEvent of type MousePress as a response to a user click, the view sends a QGraphicsSceneMouseEvent of type GraphicsSceneMousePress to the underlying QGraphicsScene through its mousePressEvent() function. The default QGraphicsScene.mousePressEvent() implementation determines which item was clicked and forwards the event to QGraphicsItem.mousePressEvent().

Subclasses such as QGraphicsSceneMouseEvent and QGraphicsSceneContextMenuEvent provide the coordinates from the original QEvent in screen, scene, and item coordinates (see screenPos(), scenePos(), and pos()). The item coordinates are set by the QGraphicsScene before it forwards the event to the event to a QGraphicsItem. The mouse events also add the possibility to retrieve the coordinates from the last event received by the view (see lastScreenPos(), lastScenePos(), and lastPos()).


Method Documentation

QGraphicsSceneEvent.setWidget (self, QWidget widget)

QWidget QGraphicsSceneEvent.widget (self)

Returns the widget where the event originated, or 0 if the event originates from another application.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscenehelpevent.html0000644000076500000240000000750112536324506023266 0ustar philstaff00000000000000 QGraphicsSceneHelpEvent Class Reference
  Home · All Classes · Modules

QGraphicsSceneHelpEvent Class Reference
[QtGui module]

The QGraphicsSceneHelpEvent class provides events when a tooltip is requested. More...

Inherits QGraphicsSceneEvent.

Methods


Detailed Description

The QGraphicsSceneHelpEvent class provides events when a tooltip is requested.

When a QGraphicsView receives a QEvent of type QEvent.ToolTip, it creates a QGraphicsSceneHelpEvent, which is forwarded to the scene. You can set a tooltip on a QGraphicsItem with setToolTip(); by default QGraphicsScene displays the tooltip of the QGraphicsItem with the highest z-value (i.e, the top-most item) under the mouse position.

QGraphicsView does not forward events when "What's This" and status tip help is requested. If you need this, you can reimplement QGraphicsView.viewportEvent() and forward QStatusTipEvent events and QEvents of type QEvent.WhatsThis to the scene.


Method Documentation

QPointF QGraphicsSceneHelpEvent.scenePos (self)

Returns the position of the mouse cursor in scene coordinates at the moment the help event was sent.

See also screenPos().

QPoint QGraphicsSceneHelpEvent.screenPos (self)

Returns the position of the mouse cursor in screen coordinates at the moment the help event was sent.

See also scenePos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscenehoverevent.html0000644000076500000240000001406612536324506023465 0ustar philstaff00000000000000 QGraphicsSceneHoverEvent Class Reference
  Home · All Classes · Modules

QGraphicsSceneHoverEvent Class Reference
[QtGui module]

The QGraphicsSceneHoverEvent class provides hover events in the graphics view framework. More...

Inherits QGraphicsSceneEvent.

Methods


Detailed Description

The QGraphicsSceneHoverEvent class provides hover events in the graphics view framework.

When a QGraphicsView receives a QHoverEvent event, it translates it into QGraphicsSceneHoverEvent. The event is then forwarded to the QGraphicsScene associated with the view.


Method Documentation

QPointF QGraphicsSceneHoverEvent.lastPos (self)

Returns the last recorded mouse cursor position in item coordinates.

This function was introduced in Qt 4.4.

See also lastScenePos(), lastScreenPos(), and pos().

QPointF QGraphicsSceneHoverEvent.lastScenePos (self)

Returns the last recorded, the scene coordinates of the previous mouse or hover event received by the view, that created the event mouse cursor position in scene coordinates.

This function was introduced in Qt 4.4.

See also lastPos(), lastScreenPos(), and scenePos().

QPoint QGraphicsSceneHoverEvent.lastScreenPos (self)

Returns the last recorded mouse cursor position in screen coordinates. The last recorded position is the position of the previous mouse or hover event received by the view that created the event.

This function was introduced in Qt 4.4.

See also lastPos(), lastScenePos(), and screenPos().

Qt.KeyboardModifiers QGraphicsSceneHoverEvent.modifiers (self)

Returns the keyboard modifiers at the moment the hover event was sent.

This function was introduced in Qt 4.4.

QPointF QGraphicsSceneHoverEvent.pos (self)

Returns the position of the mouse cursor in item coordinates at the moment the hover event was sent.

See also scenePos() and screenPos().

QPointF QGraphicsSceneHoverEvent.scenePos (self)

Returns the position of the mouse cursor in scene coordinates at the moment the hover event was sent.

See also pos() and screenPos().

QPoint QGraphicsSceneHoverEvent.screenPos (self)

Returns the position of the mouse cursor in screen coordinates at the moment the hover event was sent.

See also pos() and scenePos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscenemouseevent.html0000644000076500000240000002375312536324506023475 0ustar philstaff00000000000000 QGraphicsSceneMouseEvent Class Reference
  Home · All Classes · Modules

QGraphicsSceneMouseEvent Class Reference
[QtGui module]

The QGraphicsSceneMouseEvent class provides mouse events in the graphics view framework. More...

Inherits QGraphicsSceneEvent.

Methods


Detailed Description

The QGraphicsSceneMouseEvent class provides mouse events in the graphics view framework.

When a QGraphicsView receives a QMouseEvent, it translates it to a QGraphicsSceneMouseEvent. The event is then forwarded to the QGraphicsScene associated with the view. If the event is not handled by the scene, the view may use it, e.g., for the DragMode.

In addition to containing the item, scene, and screen coordinates of the event (as pos(), scenePos(), and screenPos()), mouse events also contain the coordinates of the previous mouse event received by the view. These can be retrieved with lastPos(), lastScreenPos(), and lastScenePos().


Method Documentation

Qt.MouseButton QGraphicsSceneMouseEvent.button (self)

Returns the mouse button (if any) that caused the event.

See also buttons() and modifiers().

QPointF QGraphicsSceneMouseEvent.buttonDownPos (self, Qt.MouseButton button)

Returns the mouse cursor position in item coordinates where the specified button was clicked.

See also buttonDownScenePos(), buttonDownScreenPos(), and pos().

QPointF QGraphicsSceneMouseEvent.buttonDownScenePos (self, Qt.MouseButton button)

Returns the mouse cursor position in scene coordinates where the specified button was clicked.

See also buttonDownPos(), buttonDownScreenPos(), and scenePos().

QPoint QGraphicsSceneMouseEvent.buttonDownScreenPos (self, Qt.MouseButton button)

Returns the mouse cursor position in screen coordinates where the specified button was clicked.

See also screenPos(), buttonDownPos(), and buttonDownScenePos().

Qt.MouseButtons QGraphicsSceneMouseEvent.buttons (self)

Returns the combination of mouse buttons that were pressed at the time the event was sent.

See also button() and modifiers().

QPointF QGraphicsSceneMouseEvent.lastPos (self)

Returns the last recorded mouse cursor position in item coordinates.

See also lastScenePos(), lastScreenPos(), and pos().

QPointF QGraphicsSceneMouseEvent.lastScenePos (self)

Returns the last recorded mouse cursor position in scene coordinates. The last recorded position is the position of the previous mouse event received by the view that created the event.

See also lastPos(), lastScreenPos(), and scenePos().

QPoint QGraphicsSceneMouseEvent.lastScreenPos (self)

Returns the last recorded mouse cursor position in screen coordinates. The last recorded position is the position of the previous mouse event received by the view that created the event.

See also lastPos(), lastScenePos(), and screenPos().

Qt.KeyboardModifiers QGraphicsSceneMouseEvent.modifiers (self)

Returns the keyboard modifiers in use at the time the event was sent.

See also buttons() and button().

QPointF QGraphicsSceneMouseEvent.pos (self)

Returns the mouse cursor position in item coordinates.

See also scenePos(), screenPos(), and lastPos().

QPointF QGraphicsSceneMouseEvent.scenePos (self)

Returns the mouse cursor position in scene coordinates.

See also pos(), screenPos(), and lastScenePos().

QPoint QGraphicsSceneMouseEvent.screenPos (self)

Returns the mouse cursor position in screen coordinates.

See also pos(), scenePos(), and lastScreenPos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscenemoveevent.html0000644000076500000240000000730012536324506023301 0ustar philstaff00000000000000 QGraphicsSceneMoveEvent Class Reference
  Home · All Classes · Modules

QGraphicsSceneMoveEvent Class Reference
[QtGui module]

The QGraphicsSceneMoveEvent class provides events for widget moving in the graphics view framework. More...

Inherits QGraphicsSceneEvent.

Methods


Detailed Description

The QGraphicsSceneMoveEvent class provides events for widget moving in the graphics view framework.

A QGraphicsWidget sends itself a QGraphicsSceneMoveEvent immediately when its local position changes. The delivery is implemented as part of QGraphicsItem.itemChange().

It's similar to QMoveEvent, but its positions, oldPos() and newPos(), use QPointF instead of QPoint.


Method Documentation

QGraphicsSceneMoveEvent.__init__ (self)

Constructs a QGraphicsSceneMoveEvent.

QPointF QGraphicsSceneMoveEvent.newPos (self)

Returns the new position (i.e., the current position).

See also oldPos() and QGraphicsItem.setPos().

QPointF QGraphicsSceneMoveEvent.oldPos (self)

Returns the old position (i.e., the position immediately before the widget was moved).

See also newPos() and QGraphicsItem.setPos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicssceneresizeevent.html0000644000076500000240000000717312536324506023644 0ustar philstaff00000000000000 QGraphicsSceneResizeEvent Class Reference
  Home · All Classes · Modules

QGraphicsSceneResizeEvent Class Reference
[QtGui module]

The QGraphicsSceneResizeEvent class provides events for widget resizing in the graphics view framework. More...

Inherits QGraphicsSceneEvent.

Methods


Detailed Description

The QGraphicsSceneResizeEvent class provides events for widget resizing in the graphics view framework.

A QGraphicsWidget sends itself a QGraphicsSceneResizeEvent immediately when its geometry changes.

It's similar to QResizeEvent, but its sizes, oldSize() and newSize(), use QSizeF instead of QSize.


Method Documentation

QGraphicsSceneResizeEvent.__init__ (self)

Constructs a QGraphicsSceneResizeEvent.

QSizeF QGraphicsSceneResizeEvent.newSize (self)

Returns the new size (i.e., the current size).

See also oldSize() and QGraphicsWidget.resize().

QSizeF QGraphicsSceneResizeEvent.oldSize (self)

Returns the old size (i.e., the size immediately before the widget was resized).

See also newSize() and QGraphicsWidget.resize().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsscenewheelevent.html0000644000076500000240000001317712536324506023450 0ustar philstaff00000000000000 QGraphicsSceneWheelEvent Class Reference
  Home · All Classes · Modules

QGraphicsSceneWheelEvent Class Reference
[QtGui module]

The QGraphicsSceneWheelEvent class provides wheel events in the graphics view framework. More...

Inherits QGraphicsSceneEvent.

Methods


Detailed Description

The QGraphicsSceneWheelEvent class provides wheel events in the graphics view framework.

The QGraphicsSceneWheelEvent class provides wheel events in the graphics view framework.

QWheelEvents received by a QGraphicsView are translated into QGraphicsSceneWheelEvents; it translates the QWheelEvent.globalPos() into item, scene, and screen coordinates (pos(), scenePos(), and screenPos()).


Method Documentation

Qt.MouseButtons QGraphicsSceneWheelEvent.buttons (self)

Returns the mouse buttons that were pressed when the wheel event occurred.

See also modifiers().

int QGraphicsSceneWheelEvent.delta (self)

Returns the distance that the wheel is rotated, in eighths (1/8s) of a degree. A positive value indicates that the wheel was rotated forwards away from the user; a negative value indicates that the wheel was rotated backwards toward the user.

Most mouse types work in steps of 15 degrees, in which case the delta value is a multiple of 120 (== 15 * 8).

Qt.KeyboardModifiers QGraphicsSceneWheelEvent.modifiers (self)

Returns the keyboard modifiers that were active when the wheel event occurred.

See also buttons().

Qt.Orientation QGraphicsSceneWheelEvent.orientation (self)

Returns the wheel orientation.

QPointF QGraphicsSceneWheelEvent.pos (self)

Returns the position of the cursor in item coordinates when the wheel event occurred.

See also scenePos() and screenPos().

QPointF QGraphicsSceneWheelEvent.scenePos (self)

Returns the position of the cursor in scene coordinates when the wheel event occurred.

See also pos() and screenPos().

QPoint QGraphicsSceneWheelEvent.screenPos (self)

Returns the position of the cursor in screen coordinates when the wheel event occurred.

See also pos() and scenePos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicssimpletextitem.html0000644000076500000240000002370012536324505023331 0ustar philstaff00000000000000 QGraphicsSimpleTextItem Class Reference
  Home · All Classes · Modules

QGraphicsSimpleTextItem Class Reference
[QtGui module]

The QGraphicsSimpleTextItem class provides a simple text path item that you can add to a QGraphicsScene. More...

Inherits QAbstractGraphicsShapeItem.

Methods

  • __init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • __init__ (self, QString text, QGraphicsItem parent = None, QGraphicsScene scene = None)
  • QRectF boundingRect (self)
  • bool contains (self, QPointF point)
  • QFont font (self)
  • bool isObscuredBy (self, QGraphicsItem item)
  • QPainterPath opaqueArea (self)
  • paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget)
  • setFont (self, QFont font)
  • setText (self, QString text)
  • QPainterPath shape (self)
  • QString text (self)
  • int type (self)

Detailed Description

The QGraphicsSimpleTextItem class provides a simple text path item that you can add to a QGraphicsScene.

To set the item's text, you can either pass a QString to QGraphicsSimpleTextItem's constructor, or call setText() to change the text later. To set the text fill color, call setBrush().

The simple text item can have both a fill and an outline; setBrush() will set the text fill (i.e., text color), and setPen() sets the pen that will be used to draw the text outline. (The latter can be slow, especially for complex pens, and items with long text content.) If all you want is to draw a simple line of text, you should call setBrush() only, and leave the pen unset; QGraphicsSimpleTextItem's pen is by default Qt.NoPen.

QGraphicsSimpleTextItem uses the text's formatted size and the associated font to provide a reasonable implementation of boundingRect(), shape(), and contains(). You can set the font by calling setFont().

QGraphicsSimpleText does not display rich text; instead, you can use QGraphicsTextItem, which provides full text control capabilities.


Method Documentation

QGraphicsSimpleTextItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsSimpleTextItem.

parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsSimpleTextItem.__init__ (self, QString text, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsSimpleTextItem, using text as the default plain text.

parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QRectF QGraphicsSimpleTextItem.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

bool QGraphicsSimpleTextItem.contains (self, QPointF point)

Reimplemented from QGraphicsItem.contains().

QFont QGraphicsSimpleTextItem.font (self)

Returns the font that is used to draw the item's text.

See also setFont().

bool QGraphicsSimpleTextItem.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QPainterPath QGraphicsSimpleTextItem.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

QGraphicsSimpleTextItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget)

Reimplemented from QGraphicsItem.paint().

QGraphicsSimpleTextItem.setFont (self, QFont font)

Sets the font that is used to draw the item's text to font.

See also font().

QGraphicsSimpleTextItem.setText (self, QString text)

Sets the item's text to text. The text will be displayed as plain text. Newline characters ('\n') as well as characters of type QChar.LineSeparator will cause item to break the text into multiple lines.

See also text().

QPainterPath QGraphicsSimpleTextItem.shape (self)

Reimplemented from QGraphicsItem.shape().

QString QGraphicsSimpleTextItem.text (self)

Returns the item's text.

See also setText().

int QGraphicsSimpleTextItem.type (self)

Reimplemented from QGraphicsItem.type().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicssvgitem.html0000644000076500000240000002353012536324522021732 0ustar philstaff00000000000000 QGraphicsSvgItem Class Reference
  Home · All Classes · Modules

QGraphicsSvgItem Class Reference
[QtSvg module]

The QGraphicsSvgItem class is a QGraphicsItem that can be used to render the contents of SVG files. More...

Inherits QGraphicsObject.

Methods


Detailed Description

The QGraphicsSvgItem class is a QGraphicsItem that can be used to render the contents of SVG files.

QGraphicsSvgItem provides a way of rendering SVG files onto QGraphicsView. QGraphicsSvgItem can be created by passing the SVG file to be rendered to its constructor or by explicit setting a shared QSvgRenderer on it.

Note that setting QSvgRenderer on a QGraphicsSvgItem doesn't make the item take ownership of the renderer, therefore if using setSharedRenderer() method one has to make sure that the lifetime of the QSvgRenderer object will be at least as long as that of the QGraphicsSvgItem.

QGraphicsSvgItem provides a way of rendering only parts of the SVG files via the setElementId. If setElementId() method is called, only the SVG element (and its children) with the passed id will be renderer. This provides a convenient way of selectively rendering large SVG files that contain a number of discrete elements. For example the following code renders only jokers from a SVG file containing a whole card deck:

 QSvgRenderer *renderer = new QSvgRenderer(QLatin1String("SvgCardDeck.svg"));
 QGraphicsSvgItem *black = new QGraphicsSvgItem();
 QGraphicsSvgItem *red   = new QGraphicsSvgItem();

 black->setSharedRenderer(renderer);
 black->setElementId(QLatin1String("black_joker"));

 red->setSharedRenderer(renderer);
 red->setElementId(QLatin1String("red_joker"));

Size of the item can be set via the setSize() method of the bounding rectangle or via direct manipulation of the items transformation matrix.

By default the SVG rendering is cached using QGraphicsItem.DeviceCoordinateCache mode to speedup the display of items. Caching can be disabled by passing QGraphicsItem.NoCache to the QGraphicsItem.setCacheMode() method.


Method Documentation

QGraphicsSvgItem.__init__ (self, QGraphicsItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new SVG item with the given parent.

QGraphicsSvgItem.__init__ (self, QString fileName, QGraphicsItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new item with the given parent and loads the contents of the SVG file with the specified fileName.

QRectF QGraphicsSvgItem.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

Returns the bounding rectangle of this item.

QString QGraphicsSvgItem.elementId (self)

bool QGraphicsSvgItem.isCachingEnabled (self)

QSize QGraphicsSvgItem.maximumCacheSize (self)

QGraphicsSvgItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

Reimplemented from QGraphicsItem.paint().

QSvgRenderer QGraphicsSvgItem.renderer (self)

Returns the currently use QSvgRenderer.

QGraphicsSvgItem.setCachingEnabled (self, bool)

QGraphicsSvgItem.setElementId (self, QString id)

QGraphicsSvgItem.setMaximumCacheSize (self, QSize size)

QGraphicsSvgItem.setSharedRenderer (self, QSvgRenderer renderer)

Sets renderer to be a shared QSvgRenderer on the item. By using this method one can share the same QSvgRenderer on a number of items. This means that the SVG file will be parsed only once. QSvgRenderer passed to this method has to exist for as long as this item is used.

int QGraphicsSvgItem.type (self)

Reimplemented from QGraphicsItem.type().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicstextitem.html0000644000076500000240000006742112536324505022127 0ustar philstaff00000000000000 QGraphicsTextItem Class Reference
  Home · All Classes · Modules

QGraphicsTextItem Class Reference
[QtGui module]

The QGraphicsTextItem class provides a text item that you can add to a QGraphicsScene to display formatted text. More...

Inherits QGraphicsObject.

Methods

Qt Signals


Detailed Description

The QGraphicsTextItem class provides a text item that you can add to a QGraphicsScene to display formatted text.

If you only need to show plain text in an item, consider using QGraphicsSimpleTextItem instead.

To set the item's text, pass a QString to QGraphicsTextItem's constructor, or call setHtml()/setPlainText().

QGraphicsTextItem uses the text's formatted size and the associated font to provide a reasonable implementation of boundingRect(), shape(), and contains(). You can set the font by calling setFont().

It is possible to make the item editable by setting the Qt.TextEditorInteraction flag using setTextInteractionFlags().

The item's preferred text width can be set using setTextWidth() and obtained using textWidth().

Note: In order to align HTML text in the center, the item's text width must be set.

Note: QGraphicsTextItem accepts hover events by default. You can change this with setAcceptHoverEvents().


Method Documentation

QGraphicsTextItem.__init__ (self, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsTextItem. parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsTextItem.__init__ (self, QString text, QGraphicsItem parent = None, QGraphicsScene scene = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

The scene argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsTextItem, using text as the default plain text. parent is passed to QGraphicsItem's constructor.

See also QGraphicsScene.addItem().

QGraphicsTextItem.adjustSize (self)

Adjusts the text item to a reasonable size.

QRectF QGraphicsTextItem.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

bool QGraphicsTextItem.contains (self, QPointF point)

Reimplemented from QGraphicsItem.contains().

QGraphicsTextItem.contextMenuEvent (self, QGraphicsSceneContextMenuEvent event)

Reimplemented from QGraphicsItem.contextMenuEvent().

QColor QGraphicsTextItem.defaultTextColor (self)

Returns the default text color that is used to for unformatted text.

See also setDefaultTextColor().

QTextDocument QGraphicsTextItem.document (self)

Returns the item's text document.

See also setDocument().

QGraphicsTextItem.dragEnterEvent (self, QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem.dragEnterEvent().

QGraphicsTextItem.dragLeaveEvent (self, QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem.dragLeaveEvent().

QGraphicsTextItem.dragMoveEvent (self, QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem.dragMoveEvent().

QGraphicsTextItem.dropEvent (self, QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem.dropEvent().

QGraphicsTextItem.focusInEvent (self, QFocusEvent event)

Reimplemented from QGraphicsItem.focusInEvent().

QGraphicsTextItem.focusOutEvent (self, QFocusEvent event)

Reimplemented from QGraphicsItem.focusOutEvent().

QFont QGraphicsTextItem.font (self)

Returns the item's font, which is used to render the text.

See also setFont().

QGraphicsTextItem.hoverEnterEvent (self, QGraphicsSceneHoverEvent event)

Reimplemented from QGraphicsItem.hoverEnterEvent().

QGraphicsTextItem.hoverLeaveEvent (self, QGraphicsSceneHoverEvent event)

Reimplemented from QGraphicsItem.hoverLeaveEvent().

QGraphicsTextItem.hoverMoveEvent (self, QGraphicsSceneHoverEvent event)

Reimplemented from QGraphicsItem.hoverMoveEvent().

QGraphicsTextItem.inputMethodEvent (self, QInputMethodEvent event)

Reimplemented from QGraphicsItem.inputMethodEvent().

QVariant QGraphicsTextItem.inputMethodQuery (self, Qt.InputMethodQuery query)

Reimplemented from QGraphicsItem.inputMethodQuery().

bool QGraphicsTextItem.isObscuredBy (self, QGraphicsItem item)

Reimplemented from QGraphicsItem.isObscuredBy().

QGraphicsTextItem.keyPressEvent (self, QKeyEvent event)

Reimplemented from QGraphicsItem.keyPressEvent().

QGraphicsTextItem.keyReleaseEvent (self, QKeyEvent event)

Reimplemented from QGraphicsItem.keyReleaseEvent().

QGraphicsTextItem.mouseDoubleClickEvent (self, QGraphicsSceneMouseEvent event)

Reimplemented from QGraphicsItem.mouseDoubleClickEvent().

QGraphicsTextItem.mouseMoveEvent (self, QGraphicsSceneMouseEvent event)

Reimplemented from QGraphicsItem.mouseMoveEvent().

QGraphicsTextItem.mousePressEvent (self, QGraphicsSceneMouseEvent event)

Reimplemented from QGraphicsItem.mousePressEvent().

QGraphicsTextItem.mouseReleaseEvent (self, QGraphicsSceneMouseEvent event)

Reimplemented from QGraphicsItem.mouseReleaseEvent().

QPainterPath QGraphicsTextItem.opaqueArea (self)

Reimplemented from QGraphicsItem.opaqueArea().

bool QGraphicsTextItem.openExternalLinks (self)

QGraphicsTextItem.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget)

Reimplemented from QGraphicsItem.paint().

bool QGraphicsTextItem.sceneEvent (self, QEvent event)

Reimplemented from QGraphicsItem.sceneEvent().

QGraphicsTextItem.setDefaultTextColor (self, QColor c)

Sets the color for unformatted text to col.

See also defaultTextColor().

QGraphicsTextItem.setDocument (self, QTextDocument document)

Sets the text document document on the item.

See also document().

QGraphicsTextItem.setFont (self, QFont font)

Sets the font used to render the text item to font.

See also font().

QGraphicsTextItem.setHtml (self, QString html)

Sets the item's text to text, assuming that text is HTML formatted. If the item has keyboard input focus, this function will also call ensureVisible() to ensure that the text is visible in all viewports.

See also toHtml(), hasFocus(), and QGraphicsSimpleTextItem.

QGraphicsTextItem.setOpenExternalLinks (self, bool open)

QGraphicsTextItem.setPlainText (self, QString text)

Sets the item's text to text. If the item has keyboard input focus, this function will also call ensureVisible() to ensure that the text is visible in all viewports.

See also toHtml() and hasFocus().

QGraphicsTextItem.setTabChangesFocus (self, bool b)

If b is true, the Tab key will cause the widget to change focus; otherwise, the tab key will insert a tab into the document.

In some occasions text edits should not allow the user to input tabulators or change indentation using the Tab key, as this breaks the focus chain. The default is false.

This function was introduced in Qt 4.5.

See also tabChangesFocus(), ItemIsFocusable, and textInteractionFlags().

QGraphicsTextItem.setTextCursor (self, QTextCursor cursor)

QGraphicsTextItem.setTextInteractionFlags (self, Qt.TextInteractionFlags flags)

Sets the flags flags to specify how the text item should react to user input.

The default for a QGraphicsTextItem is Qt.NoTextInteraction. This function also affects the ItemIsFocusable QGraphicsItem flag by setting it if flags is different from Qt.NoTextInteraction and clearing it otherwise.

By default, the text is read-only. To transform the item into an editor, set the Qt.TextEditable flag.

See also textInteractionFlags().

QGraphicsTextItem.setTextWidth (self, float width)

Sets the preferred width for the item's text. If the actual text is wider than the specified width then it will be broken into multiple lines.

If width is set to -1 then the text will not be broken into multiple lines unless it is enforced through an explicit line break or a new paragraph.

The default value is -1.

Note that QGraphicsTextItem keeps a QTextDocument internally, which is used to calculate the text width.

See also textWidth() and QTextDocument.setTextWidth().

QPainterPath QGraphicsTextItem.shape (self)

Reimplemented from QGraphicsItem.shape().

bool QGraphicsTextItem.tabChangesFocus (self)

Returns true if the Tab key will cause the widget to change focus; otherwise, false is returned.

By default, this behavior is disabled, and this function will return false.

This function was introduced in Qt 4.5.

See also setTabChangesFocus().

QTextCursor QGraphicsTextItem.textCursor (self)

Qt.TextInteractionFlags QGraphicsTextItem.textInteractionFlags (self)

Returns the current text interaction flags.

See also setTextInteractionFlags().

float QGraphicsTextItem.textWidth (self)

Returns the text width.

The width is calculated with the QTextDocument that QGraphicsTextItem keeps internally.

See also setTextWidth() and QTextDocument.textWidth().

QString QGraphicsTextItem.toHtml (self)

Returns the item's text converted to HTML, or an empty QString if no text has been set.

See also setHtml().

QString QGraphicsTextItem.toPlainText (self)

Returns the item's text converted to plain text, or an empty QString if no text has been set.

See also setPlainText().

int QGraphicsTextItem.type (self)

Reimplemented from QGraphicsItem.type().


Qt Signal Documentation

void linkActivated (const QString&)

This is the default overload of this signal.

This signal is emitted when the user clicks on a link on a text item that enables Qt.LinksAccessibleByMouse or Qt.LinksAccessibleByKeyboard. link is the link that was clicked.

See also setTextInteractionFlags().

void linkHovered (const QString&)

This is the default overload of this signal.

This signal is emitted when the user hovers over a link on a text item that enables Qt.LinksAccessibleByMouse. link is the link that was hovered over.

See also setTextInteractionFlags().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicstransform.html0000644000076500000240000001513012536324506022266 0ustar philstaff00000000000000 QGraphicsTransform Class Reference
  Home · All Classes · Modules

QGraphicsTransform Class Reference
[QtGui module]

The QGraphicsTransform class is an abstract base class for building advanced transformations on QGraphicsItems. More...

Inherits QObject.

Inherited by QGraphicsRotation and QGraphicsScale.

Methods


Detailed Description

The QGraphicsTransform class is an abstract base class for building advanced transformations on QGraphicsItems.

As an alternative to QGraphicsItem.transform, QGraphicsTransform lets you create and control advanced transformations that can be configured independently using specialized properties.

QGraphicsItem allows you to assign any number of QGraphicsTransform instances to one QGraphicsItem. Each QGraphicsTransform is applied in order, one at a time, to the QGraphicsItem it's assigned to.

QGraphicsTransform is particularly useful for animations. Whereas QGraphicsItem.setTransform() lets you assign any transform directly to an item, there is no direct way to interpolate between two different transformations (e.g., when transitioning between two states, each for which the item has a different arbitrary transform assigned). Using QGraphicsTransform you can interpolate the property values of each independent transformation. The resulting operation is then combined into a single transform which is applied to QGraphicsItem.

Transformations are computed in true 3D space using QMatrix4x4. When the transformation is applied to a QGraphicsItem, it will be projected back to a 2D QTransform. When multiple QGraphicsTransform objects are applied to a QGraphicsItem, all of the transformations are computed in true 3D space, with the projection back to 2D only occurring after the last QGraphicsTransform is applied. The exception to this is QGraphicsRotation, which projects back to 2D after each rotation to preserve the perspective effect around the X and Y axes.

If you want to create your own configurable transformation, you can create a subclass of QGraphicsTransform (or any or the existing subclasses), and reimplement the pure virtual applyTo() function, which takes a pointer to a QMatrix4x4. Each operation you would like to apply should be exposed as properties (e.g., customTransform->setVerticalShear(2.5)). Inside you reimplementation of applyTo(), you can modify the provided transform respectively.

QGraphicsTransform can be used together with QGraphicsItem.setTransform(), QGraphicsItem.setRotation(), and QGraphicsItem.setScale().


Method Documentation

QGraphicsTransform.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGraphicsTransform with the given parent.

QGraphicsTransform.applyTo (self, QMatrix4x4 matrix)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual method has to be reimplemented in derived classes.

It applies this transformation to matrix.

See also QGraphicsItem.transform() and QMatrix4x4.toTransform().

QGraphicsTransform.update (self)

This method is also a Qt slot with the C++ signature void update().

Notifies that this transform operation has changed its parameters in such a way that applyTo() will return a different result than before.

When implementing you own custom graphics transform, you must call this function every time you change a parameter, to let QGraphicsItem know that its transformation needs to be updated.

See also applyTo().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsview-cachemode.html0000644000076500000240000001403312536324506023134 0ustar philstaff00000000000000 QGraphicsView.CacheMode Class Reference
  Home · All Classes · Modules

QGraphicsView.CacheMode Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

CacheModeFlag may be used whenever CacheMode is expected.


Method Documentation

CacheMode.__init__ (self, CacheMode)

CacheMode.__init__ (self, int)

CacheMode.__init__ (self)

CacheMode CacheMode.__and__ (self, int mask)

int CacheMode.__bool__ (self)

bool CacheMode.__eq__ (self, CacheMode f)

CacheMode CacheMode.__iand__ (self, int mask)

int CacheMode.__int__ (self)

CacheMode CacheMode.__invert__ (self)

CacheMode CacheMode.__ior__ (self, CacheMode f)

CacheMode CacheMode.__ixor__ (self, CacheMode f)

bool CacheMode.__ne__ (self, CacheMode f)

CacheMode CacheMode.__or__ (self, CacheMode f)

CacheMode CacheMode.__or__ (self, int f)

CacheMode CacheMode.__xor__ (self, CacheMode f)

CacheMode CacheMode.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsview-optimizationflags.html0000644000076500000240000001535412536324506024776 0ustar philstaff00000000000000 QGraphicsView.OptimizationFlags Class Reference
  Home · All Classes · Modules

QGraphicsView.OptimizationFlags Class Reference
[QtGui module]

Methods

Special Methods

  • OptimizationFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, OptimizationFlags f)
  • OptimizationFlags __iand__ (self, int mask)
  • int __int__ (self)
  • OptimizationFlags __invert__ (self)
  • OptimizationFlags __ior__ (self, OptimizationFlags f)
  • OptimizationFlags __ixor__ (self, OptimizationFlags f)
  • bool __ne__ (self, OptimizationFlags f)
  • OptimizationFlags __or__ (self, OptimizationFlags f)
  • OptimizationFlags __or__ (self, int f)
  • OptimizationFlags __xor__ (self, OptimizationFlags f)
  • OptimizationFlags __xor__ (self, int f)

Detailed Description

OptimizationFlag may be used whenever OptimizationFlags is expected.


Method Documentation

OptimizationFlags.__init__ (self, OptimizationFlags)

OptimizationFlags.__init__ (self, int)

OptimizationFlags.__init__ (self)

OptimizationFlags OptimizationFlags.__and__ (self, int mask)

int OptimizationFlags.__bool__ (self)

bool OptimizationFlags.__eq__ (self, OptimizationFlags f)

OptimizationFlags OptimizationFlags.__iand__ (self, int mask)

int OptimizationFlags.__int__ (self)

OptimizationFlags OptimizationFlags.__invert__ (self)

OptimizationFlags OptimizationFlags.__ior__ (self, OptimizationFlags f)

OptimizationFlags OptimizationFlags.__ixor__ (self, OptimizationFlags f)

bool OptimizationFlags.__ne__ (self, OptimizationFlags f)

OptimizationFlags OptimizationFlags.__or__ (self, OptimizationFlags f)

OptimizationFlags OptimizationFlags.__or__ (self, int f)

OptimizationFlags OptimizationFlags.__xor__ (self, OptimizationFlags f)

OptimizationFlags OptimizationFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicsview.html0000644000076500000240000024723412536324506021241 0ustar philstaff00000000000000 QGraphicsView Class Reference
  Home · All Classes · Modules

QGraphicsView Class Reference
[QtGui module]

The QGraphicsView class provides a widget for displaying the contents of a QGraphicsScene. More...

Inherits QAbstractScrollArea.

Inherited by QDeclarativeView.

Types

Methods


Detailed Description

The QGraphicsView class provides a widget for displaying the contents of a QGraphicsScene.

QGraphicsView visualizes the contents of a QGraphicsScene in a scrollable viewport. To create a scene with geometrical items, see QGraphicsScene's documentation. QGraphicsView is part of the Graphics View Framework.

To visualize a scene, you start by constructing a QGraphicsView object, passing the address of the scene you want to visualize to QGraphicsView's constructor. Alternatively, you can call setScene() to set the scene at a later point. After you call show(), the view will by default scroll to the center of the scene and display any items that are visible at this point. For example:

 QGraphicsScene scene;
 scene.addText("Hello, world!");

 QGraphicsView view(&scene);
 view.show();

You can explicitly scroll to any position on the scene by using the scroll bars, or by calling centerOn(). By passing a point to centerOn(), QGraphicsView will scroll its viewport to ensure that the point is centered in the view. An overload is provided for scrolling to a QGraphicsItem, in which case QGraphicsView will see to that the center of the item is centered in the view. If all you want is to ensure that a certain area is visible, (but not necessarily centered,) you can call ensureVisible() instead.

QGraphicsView can be used to visualize a whole scene, or only parts of it. The visualized area is by default detected automatically when the view is displayed for the first time (by calling QGraphicsScene.itemsBoundingRect()). To set the visualized area rectangle yourself, you can call setSceneRect(). This will adjust the scroll bars' ranges appropriately. Note that although the scene supports a virtually unlimited size, the range of the scroll bars will never exceed the range of an integer (INT_MIN, INT_MAX).

QGraphicsView visualizes the scene by calling render(). By default, the items are drawn onto the viewport by using a regular QPainter, and using default render hints. To change the default render hints that QGraphicsView passes to QPainter when painting items, you can call setRenderHints().

By default, QGraphicsView provides a regular QWidget for the viewport widget. You can access this widget by calling viewport(), or you can replace it by calling setViewport(). To render using OpenGL, simply call setViewport(new QGLWidget). QGraphicsView takes ownership of the viewport widget.

QGraphicsView supports affine transformations, using QTransform. You can either pass a matrix to setTransform(), or you can call one of the convenience functions rotate(), scale(), translate() or shear(). The most two common transformations are scaling, which is used to implement zooming, and rotation. QGraphicsView keeps the center of the view fixed during a transformation. Because of the scene alignment (setAligment()), translating the view will have no visual impact.

You can interact with the items on the scene by using the mouse and keyboard. QGraphicsView translates the mouse and key events into scene events, (events that inherit QGraphicsSceneEvent,), and forward them to the visualized scene. In the end, it's the individual item that handles the events and reacts to them. For example, if you click on a selectable item, the item will typically let the scene know that it has been selected, and it will also redraw itself to display a selection rectangle. Similiary, if you click and drag the mouse to move a movable item, it's the item that handles the mouse moves and moves itself. Item interaction is enabled by default, and you can toggle it by calling setInteractive().

You can also provide your own custom scene interaction, by creating a subclass of QGraphicsView, and reimplementing the mouse and key event handlers. To simplify how you programmatically interact with items in the view, QGraphicsView provides the mapping functions mapToScene() and mapFromScene(), and the item accessors items() and itemAt(). These functions allow you to map points, rectangles, polygons and paths between view coordinates and scene coordinates, and to find items on the scene using view coordinates.


Type Documentation

QGraphicsView.CacheModeFlag

This enum describes the flags that you can set for a QGraphicsView's cache mode.

Constant Value Description
QGraphicsView.CacheNone 0x0 All painting is done directly onto the viewport.
QGraphicsView.CacheBackground 0x1 The background is cached. This affects both custom backgrounds, and backgrounds based on the backgroundBrush property. When this flag is enabled, QGraphicsView will allocate one pixmap with the full size of the viewport.

The CacheMode type is a typedef for QFlags<CacheModeFlag>. It stores an OR combination of CacheModeFlag values.

See also cacheMode.

QGraphicsView.DragMode

This enum describes the default action for the view when pressing and dragging the mouse over the viewport.

Constant Value Description
QGraphicsView.NoDrag 0 Nothing happens; the mouse event is ignored.
QGraphicsView.ScrollHandDrag 1 The cursor changes into a pointing hand, and dragging the mouse around will scroll the scrolbars. This mode works both in interactive and non-interactive mode.
QGraphicsView.RubberBandDrag 2 A rubber band will appear. Dragging the mouse will set the rubber band geometry, and all items covered by the rubber band are selected. This mode is disabled for non-interactive views.

See also dragMode and QGraphicsScene.setSelectionArea().

QGraphicsView.OptimizationFlag

This enum describes flags that you can enable to improve rendering performance in QGraphicsView. By default, none of these flags are set. Note that setting a flag usually imposes a side effect, and this effect can vary between paint devices and platforms.

Constant Value Description
QGraphicsView.DontClipPainter 0x1 This value is obsolete and has no effect.
QGraphicsView.DontSavePainterState 0x2 When rendering, QGraphicsView protects the painter state (see QPainter.save()) when rendering the background or foreground, and when rendering each item. This allows you to leave the painter in an altered state (i.e., you can call QPainter.setPen() or QPainter.setBrush() without restoring the state after painting). However, if the items consistently do restore the state, you should enable this flag to prevent QGraphicsView from doing the same.
QGraphicsView.DontAdjustForAntialiasing 0x4 Disables QGraphicsView's antialiasing auto-adjustment of exposed areas. Items that render antialiased lines on the boundaries of their QGraphicsItem.boundingRect() can end up rendering parts of the line outside. To prevent rendering artifacts, QGraphicsView expands all exposed regions by 2 pixels in all directions. If you enable this flag, QGraphicsView will no longer perform these adjustments, minimizing the areas that require redrawing, which improves performance. A common side effect is that items that do draw with antialiasing can leave painting traces behind on the scene as they are moved.
QGraphicsView.IndirectPainting 0x8 Since Qt 4.6, restore the old painting algorithm that calls QGraphicsView.drawItems() and QGraphicsScene.drawItems(). To be used only for compatibility with old code.

This enum was introduced or modified in Qt 4.3.

The OptimizationFlags type is a typedef for QFlags<OptimizationFlag>. It stores an OR combination of OptimizationFlag values.

QGraphicsView.ViewportAnchor

This enums describe the possible anchors that QGraphicsView can use when the user resizes the view or when the view is transformed.

Constant Value Description
QGraphicsView.NoAnchor 0 No anchor, i.e. the view leaves the scene's position unchanged.
QGraphicsView.AnchorViewCenter 1 The scene point at the center of the view is used as the anchor.
QGraphicsView.AnchorUnderMouse 2 The point under the mouse is used as the anchor.

See also resizeAnchor and transformationAnchor.

QGraphicsView.ViewportUpdateMode

This enum describes how QGraphicsView updates its viewport when the scene contents change or are exposed.

Constant Value Description
QGraphicsView.FullViewportUpdate 0 When any visible part of the scene changes or is reexposed, QGraphicsView will update the entire viewport. This approach is fastest when QGraphicsView spends more time figuring out what to draw than it would spend drawing (e.g., when very many small items are repeatedly updated). This is the preferred update mode for viewports that do not support partial updates, such as QGLWidget, and for viewports that need to disable scroll optimization.
QGraphicsView.MinimalViewportUpdate 1 QGraphicsView will determine the minimal viewport region that requires a redraw, minimizing the time spent drawing by avoiding a redraw of areas that have not changed. This is QGraphicsView's default mode. Although this approach provides the best performance in general, if there are many small visible changes on the scene, QGraphicsView might end up spending more time finding the minimal approach than it will spend drawing.
QGraphicsView.SmartViewportUpdate 2 QGraphicsView will attempt to find an optimal update mode by analyzing the areas that require a redraw.
QGraphicsView.BoundingRectViewportUpdate 4 The bounding rectangle of all changes in the viewport will be redrawn. This mode has the advantage that QGraphicsView searches only one region for changes, minimizing time spent determining what needs redrawing. The disadvantage is that areas that have not changed also need to be redrawn.
QGraphicsView.NoViewportUpdate 3 QGraphicsView will never update its viewport when the scene changes; the user is expected to control all updates. This mode disables all (potentially slow) item visibility testing in QGraphicsView, and is suitable for scenes that either require a fixed frame rate, or where the viewport is otherwise updated externally.

This enum was introduced or modified in Qt 4.3.

See also viewportUpdateMode.


Method Documentation

QGraphicsView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsView. parent is passed to QWidget's constructor.

QGraphicsView.__init__ (self, QGraphicsScene scene, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsView and sets the visualized scene to scene. parent is passed to QWidget's constructor.

Qt.Alignment QGraphicsView.alignment (self)

QBrush QGraphicsView.backgroundBrush (self)

CacheMode QGraphicsView.cacheMode (self)

QGraphicsView.centerOn (self, QPointF pos)

Scrolls the contents of the viewport to ensure that the scene coordinate pos, is centered in the view.

Because pos is a floating point coordinate, and the scroll bars operate on integer coordinates, the centering is only an approximation.

Note: If the item is close to or outside the border, it will be visible in the view, but not centered.

See also ensureVisible().

QGraphicsView.centerOn (self, QGraphicsItem item)

This is an overloaded function.

This function is provided for convenience. It's equivalent to calling centerOn(QPointF(x, y)).

QGraphicsView.centerOn (self, float ax, float ay)

This is an overloaded function.

Scrolls the contents of the viewport to ensure that item is centered in the view.

See also ensureVisible().

QGraphicsView.contextMenuEvent (self, QContextMenuEvent event)

Reimplemented from QWidget.contextMenuEvent().

QGraphicsView.dragEnterEvent (self, QDragEnterEvent event)

Reimplemented from QWidget.dragEnterEvent().

QGraphicsView.dragLeaveEvent (self, QDragLeaveEvent event)

Reimplemented from QWidget.dragLeaveEvent().

DragMode QGraphicsView.dragMode (self)

QGraphicsView.dragMoveEvent (self, QDragMoveEvent event)

Reimplemented from QWidget.dragMoveEvent().

QGraphicsView.drawBackground (self, QPainter painter, QRectF rect)

Draws the background of the scene using painter, before any items and the foreground are drawn. Reimplement this function to provide a custom background for this view.

If all you want is to define a color, texture or gradient for the background, you can call setBackgroundBrush() instead.

All painting is done in scene coordinates. rect is the exposed rectangle.

The default implementation fills rect using the view's backgroundBrush. If no such brush is defined (the default), the scene's drawBackground() function is called instead.

See also drawForeground() and QGraphicsScene.drawBackground().

QGraphicsView.drawForeground (self, QPainter painter, QRectF rect)

Draws the foreground of the scene using painter, after the background and all items are drawn. Reimplement this function to provide a custom foreground for this view.

If all you want is to define a color, texture or gradient for the foreground, you can call setForegroundBrush() instead.

All painting is done in scene coordinates. rect is the exposed rectangle.

The default implementation fills rect using the view's foregroundBrush. If no such brush is defined (the default), the scene's drawForeground() function is called instead.

See also drawBackground() and QGraphicsScene.drawForeground().

QGraphicsView.drawItems (self, QPainter painter, list-of-QGraphicsItem items, list-of-QStyleOptionGraphicsItem options)

QGraphicsView.dropEvent (self, QDropEvent event)

Reimplemented from QWidget.dropEvent().

QGraphicsView.ensureVisible (self, QRectF rect, int xMargin = 50, int yMargin = 50)

Scrolls the contents of the viewport so that the scene rectangle rect is visible, with margins specified in pixels by xmargin and ymargin. If the specified rect cannot be reached, the contents are scrolled to the nearest valid position. The default value for both margins is 50 pixels.

See also centerOn().

QGraphicsView.ensureVisible (self, QGraphicsItem item, int xMargin = 50, int yMargin = 50)

This is an overloaded function.

This function is provided for convenience. It's equivalent to calling ensureVisible(QRectF(x, y, w, h), xmargin, ymargin).

QGraphicsView.ensureVisible (self, float x, float y, float w, float h, int xMargin = 50, int yMargin = 50)

This is an overloaded function.

Scrolls the contents of the viewport so that the center of item item is visible, with margins specified in pixels by xmargin and ymargin. If the specified point cannot be reached, the contents are scrolled to the nearest valid position. The default value for both margins is 50 pixels.

See also centerOn().

bool QGraphicsView.event (self, QEvent event)

Reimplemented from QObject.event().

QGraphicsView.fitInView (self, QRectF rect, Qt.AspectRatioMode mode = Qt.IgnoreAspectRatio)

Scales the view matrix and scrolls the scroll bars to ensure that the scene rectangle rect fits inside the viewport. rect must be inside the scene rect; otherwise, fitInView() cannot guarantee that the whole rect is visible.

This function keeps the view's rotation, translation, or shear. The view is scaled according to aspectRatioMode. rect will be centered in the view if it does not fit tightly.

It's common to call fitInView() from inside a reimplementation of resizeEvent(), to ensure that the whole scene, or parts of the scene, scales automatically to fit the new size of the viewport as the view is resized. Note though, that calling fitInView() from inside resizeEvent() can lead to unwanted resize recursion, if the new transformation toggles the automatic state of the scrollbars. You can toggle the scrollbar policies to always on or always off to prevent this (see horizontalScrollBarPolicy() and verticalScrollBarPolicy()).

If rect is empty, or if the viewport is too small, this function will do nothing.

See also setTransform(), ensureVisible(), and centerOn().

QGraphicsView.fitInView (self, QGraphicsItem item, Qt.AspectRatioMode mode = Qt.IgnoreAspectRatio)

This is an overloaded function.

This convenience function is equivalent to calling fitInView(QRectF(x, y, w, h), aspectRatioMode).

See also ensureVisible() and centerOn().

QGraphicsView.fitInView (self, float x, float y, float w, float h, Qt.AspectRatioMode mode = Qt.IgnoreAspectRatio)

This is an overloaded function.

Ensures that item fits tightly inside the view, scaling the view according to aspectRatioMode.

See also ensureVisible() and centerOn().

QGraphicsView.focusInEvent (self, QFocusEvent event)

Reimplemented from QWidget.focusInEvent().

bool QGraphicsView.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QGraphicsView.focusOutEvent (self, QFocusEvent event)

Reimplemented from QWidget.focusOutEvent().

QBrush QGraphicsView.foregroundBrush (self)

QGraphicsView.inputMethodEvent (self, QInputMethodEvent event)

Reimplemented from QWidget.inputMethodEvent().

QVariant QGraphicsView.inputMethodQuery (self, Qt.InputMethodQuery query)

Reimplemented from QWidget.inputMethodQuery().

QGraphicsView.invalidateScene (self, QRectF rect = QRectF(), QGraphicsScene.SceneLayers layers = QGraphicsScene.AllLayers)

This method is also a Qt slot with the C++ signature void invalidateScene(const QRectF& = QRectF(),QGraphicsScene::SceneLayers = QGraphicsScene.AllLayers).

Invalidates and schedules a redraw of layers inside rect. rect is in scene coordinates. Any cached content for layers inside rect is unconditionally invalidated and redrawn.

You can call this function to notify QGraphicsView of changes to the background or the foreground of the scene. It is commonly used for scenes with tile-based backgrounds to notify changes when QGraphicsView has enabled background caching.

Note that QGraphicsView currently supports background caching only (see QGraphicsView.CacheBackground). This function is equivalent to calling update() if any layer but QGraphicsScene.BackgroundLayer is passed.

See also QGraphicsScene.invalidate() and update().

bool QGraphicsView.isInteractive (self)

bool QGraphicsView.isTransformed (self)

Returns true if the view is transformed (i.e., a non-identity transform has been assigned, or the scrollbars are adjusted).

This function was introduced in Qt 4.6.

See also setTransform(), horizontalScrollBar(), and verticalScrollBar().

QGraphicsItem QGraphicsView.itemAt (self, QPoint pos)

Returns the item at position pos, which is in viewport coordinates. If there are several items at this position, this function returns the topmost item.

Example:

 void CustomView.mousePressEvent(QMouseEvent *event)
 {
     if (QGraphicsItem *item = itemAt(event->pos())) {
         qDebug() << "You clicked on item" << item;
     } else {
         qDebug() << "You didn't click on an item.";
     }
 }

See also items() and Sorting.

QGraphicsItem QGraphicsView.itemAt (self, int ax, int ay)

This is an overloaded function.

This function is provided for convenience. It's equivalent to calling itemAt(QPoint(x, y)).

list-of-QGraphicsItem QGraphicsView.items (self)

Returns a list of all the items in the associated scene, in descending stacking order (i.e., the first item in the returned list is the uppermost item).

See also QGraphicsScene.items() and Sorting.

list-of-QGraphicsItem QGraphicsView.items (self, QPoint pos)

Returns a list of all the items at the position pos in the view. The items are listed in descending stacking order (i.e., the first item in the list is the uppermost item, and the last item is the lowermost item). pos is in viewport coordinates.

This function is most commonly called from within mouse event handlers in a subclass in QGraphicsView. pos is in untransformed viewport coordinates, just like QMouseEvent.pos().

 void CustomView.mousePressEvent(QMouseEvent *event)
 {
     qDebug() << "There are" << items(event->pos()).size()
              << "items at position" << mapToScene(event->pos());
 }

See also QGraphicsScene.items() and Sorting.

list-of-QGraphicsItem QGraphicsView.items (self, int ax, int ay)

This function is provided for convenience. It's equivalent to calling items(QPoint(x, y)).

list-of-QGraphicsItem QGraphicsView.items (self, int x, int y, int w, int h, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This convenience function is equivalent to calling items(QRectF(x, y, w, h), mode).

This function was introduced in Qt 4.3.

list-of-QGraphicsItem QGraphicsView.items (self, QRect rect, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This is an overloaded function.

Returns a list of all the items that, depending on mode, are either contained by or intersect with rect. rect is in viewport coordinates.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with or is contained by rect are returned.

The items are sorted in descending stacking order (i.e., the first item in the returned list is the uppermost item).

See also itemAt(), items(), mapToScene(), and Sorting.

list-of-QGraphicsItem QGraphicsView.items (self, QPolygon polygon, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This is an overloaded function.

Returns a list of all the items that, depending on mode, are either contained by or intersect with polygon. polygon is in viewport coordinates.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with or is contained by polygon are returned.

The items are sorted by descending stacking order (i.e., the first item in the returned list is the uppermost item).

See also itemAt(), items(), mapToScene(), and Sorting.

list-of-QGraphicsItem QGraphicsView.items (self, QPainterPath path, Qt.ItemSelectionMode mode = Qt.IntersectsItemShape)

This is an overloaded function.

Returns a list of all the items that, depending on mode, are either contained by or intersect with path. path is in viewport coordinates.

The default value for mode is Qt.IntersectsItemShape; all items whose exact shape intersects with or is contained by path are returned.

See also itemAt(), items(), mapToScene(), and Sorting.

QGraphicsView.keyPressEvent (self, QKeyEvent event)

Reimplemented from QWidget.keyPressEvent().

QGraphicsView.keyReleaseEvent (self, QKeyEvent event)

Reimplemented from QWidget.keyReleaseEvent().

QPoint QGraphicsView.mapFromScene (self, QPointF point)

Returns the scene coordinate point to viewport coordinates.

See also mapToScene().

QPolygon QGraphicsView.mapFromScene (self, QRectF rect)

Returns the scene rectangle rect to a viewport coordinate polygon.

See also mapToScene().

QPolygon QGraphicsView.mapFromScene (self, QPolygonF polygon)

Returns the scene coordinate polygon polygon to a viewport coordinate polygon.

See also mapToScene().

QPainterPath QGraphicsView.mapFromScene (self, QPainterPath path)

Returns the scene coordinate painter path path to a viewport coordinate painter path.

See also mapToScene().

QPoint QGraphicsView.mapFromScene (self, float ax, float ay)

This function is provided for convenience. It's equivalent to calling mapFromScene(QPointF(x, y)).

QPolygon QGraphicsView.mapFromScene (self, float ax, float ay, float w, float h)

This function is provided for convenience. It's equivalent to calling mapFromScene(QRectF(x, y, w, h)).

QPointF QGraphicsView.mapToScene (self, QPoint point)

Returns the viewport coordinate point mapped to scene coordinates.

Note: It can be useful to map the whole rectangle covered by the pixel at point instead of the point itself. To do this, you can call mapToScene(QRect(point, QSize(2, 2))).

See also mapFromScene().

QPolygonF QGraphicsView.mapToScene (self, QRect rect)

Returns the viewport rectangle rect mapped to a scene coordinate polygon.

See also mapFromScene().

QPolygonF QGraphicsView.mapToScene (self, QPolygon polygon)

Returns the viewport polygon polygon mapped to a scene coordinate polygon.

See also mapFromScene().

QPainterPath QGraphicsView.mapToScene (self, QPainterPath path)

Returns the viewport painter path path mapped to a scene coordinate painter path.

See also mapFromScene().

QPointF QGraphicsView.mapToScene (self, int ax, int ay)

This function is provided for convenience. It's equivalent to calling mapToScene(QPoint(x, y)).

QPolygonF QGraphicsView.mapToScene (self, int ax, int ay, int w, int h)

This function is provided for convenience. It's equivalent to calling mapToScene(QRect(x, y, w, h)).

QMatrix QGraphicsView.matrix (self)

Returns the current transformation matrix for the view. If no current transformation is set, the identity matrix is returned.

See also setMatrix(), transform(), rotate(), scale(), shear(), and translate().

QGraphicsView.mouseDoubleClickEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseDoubleClickEvent().

QGraphicsView.mouseMoveEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseMoveEvent().

QGraphicsView.mousePressEvent (self, QMouseEvent event)

Reimplemented from QWidget.mousePressEvent().

QGraphicsView.mouseReleaseEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseReleaseEvent().

OptimizationFlags QGraphicsView.optimizationFlags (self)

QGraphicsView.paintEvent (self, QPaintEvent event)

Reimplemented from QWidget.paintEvent().

QGraphicsView.render (self, QPainter painter, QRectF target = QRectF(), QRect source = QRect(), Qt.AspectRatioMode mode = Qt.KeepAspectRatio)

Renders the source rect, which is in view coordinates, from the scene into target, which is in paint device coordinates, using painter. This function is useful for capturing the contents of the view onto a paint device, such as a QImage (e.g., to take a screenshot), or for printing to QPrinter. For example:

 QGraphicsScene scene;
 scene.addItem(...
 ...

 QGraphicsView view(&scene);
 view.show();
 ...

 QPrinter printer(QPrinter.HighResolution);
 printer.setPageSize(QPrinter.A4);
 QPainter painter(&printer);

 // print, fitting the viewport contents into a full page
 view.render(&painter);

 // print the upper half of the viewport into the lower.
 // half of the page.
 QRect viewport = view.viewport()->rect();
 view.render(&painter,
             QRectF(0, printer.height() / 2,
                    printer.width(), printer.height() / 2),
             viewport.adjusted(0, 0, 0, -viewport.height() / 2));

If source is a null rect, this function will use viewport()->rect() to determine what to draw. If target is a null rect, the full dimensions of painter's paint device (e.g., for a QPrinter, the page size) will be used.

The source rect contents will be transformed according to aspectRatioMode to fit into the target rect. By default, the aspect ratio is kept, and source is scaled to fit in target.

See also QGraphicsScene.render().

QPainter.RenderHints QGraphicsView.renderHints (self)

QGraphicsView.resetCachedContent (self)

Resets any cached content. Calling this function will clear QGraphicsView's cache. If the current cache mode is CacheNone, this function does nothing.

This function is called automatically for you when the backgroundBrush or QGraphicsScene.backgroundBrush properties change; you only need to call this function if you have reimplemented QGraphicsScene.drawBackground() or QGraphicsView.drawBackground() to draw a custom background, and need to trigger a full redraw.

See also cacheMode().

QGraphicsView.resetMatrix (self)

Resets the view transformation matrix to the identity matrix.

See also resetTransform().

QGraphicsView.resetTransform (self)

Resets the view transformation to the identity matrix.

See also transform() and setTransform().

ViewportAnchor QGraphicsView.resizeAnchor (self)

QGraphicsView.resizeEvent (self, QResizeEvent event)

Reimplemented from QWidget.resizeEvent().

QGraphicsView.rotate (self, float angle)

Rotates the current view transformation angle degrees clockwise.

See also setTransform(), transform(), scale(), shear(), and translate().

Qt.ItemSelectionMode QGraphicsView.rubberBandSelectionMode (self)

QGraphicsView.scale (self, float sx, float sy)

Scales the current view transformation by (sx, sy).

See also setTransform(), transform(), rotate(), shear(), and translate().

QGraphicsScene QGraphicsView.scene (self)

Returns a pointer to the scene that is currently visualized in the view. If no scene is currently visualized, 0 is returned.

See also setScene().

QRectF QGraphicsView.sceneRect (self)

QGraphicsView.scrollContentsBy (self, int dx, int dy)

Reimplemented from QAbstractScrollArea.scrollContentsBy().

QGraphicsView.setAlignment (self, Qt.Alignment alignment)

QGraphicsView.setBackgroundBrush (self, QBrush brush)

QGraphicsView.setCacheMode (self, CacheMode mode)

QGraphicsView.setDragMode (self, DragMode mode)

QGraphicsView.setForegroundBrush (self, QBrush brush)

QGraphicsView.setInteractive (self, bool allowed)

QGraphicsView.setMatrix (self, QMatrix matrix, bool combine = False)

Sets the view's current transformation matrix to matrix.

If combine is true, then matrix is combined with the current matrix; otherwise, matrix replaces the current matrix. combine is false by default.

The transformation matrix tranforms the scene into view coordinates. Using the default transformation, provided by the identity matrix, one pixel in the view represents one unit in the scene (e.g., a 10x10 rectangular item is drawn using 10x10 pixels in the view). If a 2x2 scaling matrix is applied, the scene will be drawn in 1:2 (e.g., a 10x10 rectangular item is then drawn using 20x20 pixels in the view).

Example:

 QGraphicsScene scene;
 scene.addText("GraphicsView rotated clockwise");

 QGraphicsView view(&scene);
 view.rotate(90); // the text is rendered with a 90 degree clockwise rotation
 view.show();

To simplify interation with items using a transformed view, QGraphicsView provides mapTo... and mapFrom... functions that can translate between scene and view coordinates. For example, you can call mapToScene() to map a view coordinate to a floating point scene coordinate, or mapFromScene() to map from floating point scene coordinates to view coordinates.

See also matrix(), setTransform(), rotate(), scale(), shear(), and translate().

QGraphicsView.setOptimizationFlag (self, OptimizationFlag flag, bool enabled = True)

Enables flag if enabled is true; otherwise disables flag.

See also optimizationFlags.

QGraphicsView.setOptimizationFlags (self, OptimizationFlags flags)

QGraphicsView.setRenderHint (self, QPainter.RenderHint hint, bool on = True)

If enabled is true, the render hint hint is enabled; otherwise it is disabled.

See also renderHints.

QGraphicsView.setRenderHints (self, QPainter.RenderHints hints)

QGraphicsView.setResizeAnchor (self, ViewportAnchor anchor)

QGraphicsView.setRubberBandSelectionMode (self, Qt.ItemSelectionMode mode)

QGraphicsView.setScene (self, QGraphicsScene scene)

Sets the current scene to scene. If scene is already being viewed, this function does nothing.

When a scene is set on a view, the QGraphicsScene.changed() signal is automatically connected to this view's updateScene() slot, and the view's scroll bars are adjusted to fit the size of the scene.

See also scene().

QGraphicsView.setSceneRect (self, QRectF rect)

QGraphicsView.setSceneRect (self, float ax, float ay, float aw, float ah)

QGraphicsView.setTransform (self, QTransform matrix, bool combine = False)

Sets the view's current transformation matrix to matrix.

If combine is true, then matrix is combined with the current matrix; otherwise, matrix replaces the current matrix. combine is false by default.

The transformation matrix tranforms the scene into view coordinates. Using the default transformation, provided by the identity matrix, one pixel in the view represents one unit in the scene (e.g., a 10x10 rectangular item is drawn using 10x10 pixels in the view). If a 2x2 scaling matrix is applied, the scene will be drawn in 1:2 (e.g., a 10x10 rectangular item is then drawn using 20x20 pixels in the view).

Example:

 QGraphicsScene scene;
 scene.addText("GraphicsView rotated clockwise");

 QGraphicsView view(&scene);
 view.rotate(90); // the text is rendered with a 90 degree clockwise rotation
 view.show();

To simplify interation with items using a transformed view, QGraphicsView provides mapTo... and mapFrom... functions that can translate between scene and view coordinates. For example, you can call mapToScene() to map a view coordiate to a floating point scene coordinate, or mapFromScene() to map from floating point scene coordinates to view coordinates.

See also transform(), rotate(), scale(), shear(), and translate().

QGraphicsView.setTransformationAnchor (self, ViewportAnchor anchor)

QGraphicsView.setupViewport (self, QWidget widget)

This method is also a Qt slot with the C++ signature void setupViewport(QWidget*).

This slot is called by QAbstractScrollArea after setViewport() has been called. Reimplement this function in a subclass of QGraphicsView to initialize the new viewport widget before it is used.

See also setViewport().

QGraphicsView.setViewportUpdateMode (self, ViewportUpdateMode mode)

QGraphicsView.shear (self, float sh, float sv)

Shears the current view transformation by (sh, sv).

See also setTransform(), transform(), rotate(), scale(), and translate().

QGraphicsView.showEvent (self, QShowEvent event)

Reimplemented from QWidget.showEvent().

QSize QGraphicsView.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QTransform QGraphicsView.transform (self)

Returns the current transformation matrix for the view. If no current transformation is set, the identity matrix is returned.

See also setTransform(), rotate(), scale(), shear(), and translate().

ViewportAnchor QGraphicsView.transformationAnchor (self)

QGraphicsView.translate (self, float dx, float dy)

Translates the current view transformation by (dx, dy).

See also setTransform(), transform(), rotate(), and shear().

QGraphicsView.updateScene (self, list-of-QRectF rects)

This method is also a Qt slot with the C++ signature void updateScene(const QList<QRectF>&).

Schedules an update of the scene rectangles rects.

See also QGraphicsScene.changed().

QGraphicsView.updateSceneRect (self, QRectF rect)

This method is also a Qt slot with the C++ signature void updateSceneRect(const QRectF&).

Notifies QGraphicsView that the scene's scene rect has changed. rect is the new scene rect. If the view already has an explicitly set scene rect, this function does nothing.

See also sceneRect and QGraphicsScene.sceneRectChanged().

bool QGraphicsView.viewportEvent (self, QEvent event)

Reimplemented from QAbstractScrollArea.viewportEvent().

QTransform QGraphicsView.viewportTransform (self)

Returns a matrix that maps viewport coordinates to scene coordinates.

See also mapToScene() and mapFromScene().

ViewportUpdateMode QGraphicsView.viewportUpdateMode (self)

QGraphicsView.wheelEvent (self, QWheelEvent event)

Reimplemented from QWidget.wheelEvent().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicswebview.html0000644000076500000240000010053012536324522021720 0ustar philstaff00000000000000 QGraphicsWebView Class Reference
  Home · All Classes · Modules

QGraphicsWebView Class Reference
[QtWebKit module]

The QGraphicsWebView class allows Web content to be added to a GraphicsView. More...

Inherits QGraphicsWidget.

Methods

Qt Signals


Detailed Description

The QGraphicsWebView class allows Web content to be added to a GraphicsView.

An instance of this class renders Web content from a URL or supplied as data, using features of the QtWebKit module.

If the width and height of the item are not set, they will default to 800 and 600, respectively. If the Web page contents is larger than that, scrollbars will be shown if not disabled explicitly.

Browser Features

Many of the functions, signals and properties provided by QWebView are also available for this item, making it simple to adapt existing code to use QGraphicsWebView instead of QWebView.

The item uses a QWebPage object to perform the rendering of Web content, and this can be obtained with the page() function, enabling the document itself to be accessed and modified.

As with QWebView, the item records the browsing history using a QWebHistory object, accessible using the history() function. The QWebSettings object that defines the configuration of the browser can be obtained with the settings() function, enabling features like plugin support to be customized for each item.


Method Documentation

QGraphicsWebView.__init__ (self, QGraphicsItem parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty QGraphicsWebView with parent parent.

See also load().

QGraphicsWebView.back (self)

This method is also a Qt slot with the C++ signature void back().

Convenience slot that loads the previous document in the list of documents built by navigating links. Does nothing if there is no previous document.

See also forward().

QGraphicsWebView.contextMenuEvent (self, QGraphicsSceneContextMenuEvent)

Reimplemented from QGraphicsItem.contextMenuEvent().

QGraphicsWebView.dragEnterEvent (self, QGraphicsSceneDragDropEvent)

Reimplemented from QGraphicsItem.dragEnterEvent().

QGraphicsWebView.dragLeaveEvent (self, QGraphicsSceneDragDropEvent)

Reimplemented from QGraphicsItem.dragLeaveEvent().

QGraphicsWebView.dragMoveEvent (self, QGraphicsSceneDragDropEvent)

Reimplemented from QGraphicsItem.dragMoveEvent().

QGraphicsWebView.dropEvent (self, QGraphicsSceneDragDropEvent)

Reimplemented from QGraphicsItem.dropEvent().

bool QGraphicsWebView.event (self, QEvent)

Reimplemented from QObject.event().

bool QGraphicsWebView.findText (self, QString subString, QWebPage.FindFlags options = 0)

Finds the specified string, subString, in the page, using the given options.

If the HighlightAllOccurrences flag is passed, the function will highlight all occurrences that exist in the page. All subsequent calls will extend the highlight, rather than replace it, with occurrences of the new string.

If the HighlightAllOccurrences flag is not passed, the function will select an occurrence and all subsequent calls will replace the current occurrence with the next one.

To clear the selection, just pass an empty string.

Returns true if subString was found; otherwise returns false.

See also QWebPage.selectedText() and QWebPage.selectionChanged().

QGraphicsWebView.focusInEvent (self, QFocusEvent)

Reimplemented from QGraphicsItem.focusInEvent().

bool QGraphicsWebView.focusNextPrevChild (self, bool next)

Reimplemented from QGraphicsWidget.focusNextPrevChild().

QGraphicsWebView.focusOutEvent (self, QFocusEvent)

Reimplemented from QGraphicsItem.focusOutEvent().

QGraphicsWebView.forward (self)

This method is also a Qt slot with the C++ signature void forward().

Convenience slot that loads the next document in the list of documents built by navigating links. Does nothing if there is no next document.

See also back().

QWebHistory QGraphicsWebView.history (self)

Returns a pointer to the view's history of navigated web pages.

It is equivalent to

     view->page()->history();

QGraphicsWebView.hoverLeaveEvent (self, QGraphicsSceneHoverEvent)

Reimplemented from QGraphicsItem.hoverLeaveEvent().

QGraphicsWebView.hoverMoveEvent (self, QGraphicsSceneHoverEvent)

Reimplemented from QGraphicsItem.hoverMoveEvent().

QIcon QGraphicsWebView.icon (self)

QGraphicsWebView.inputMethodEvent (self, QInputMethodEvent)

Reimplemented from QGraphicsItem.inputMethodEvent().

QVariant QGraphicsWebView.inputMethodQuery (self, Qt.InputMethodQuery query)

Reimplemented from QGraphicsItem.inputMethodQuery().

bool QGraphicsWebView.isModified (self)

bool QGraphicsWebView.isTiledBackingStoreFrozen (self)

QVariant QGraphicsWebView.itemChange (self, QGraphicsItem.GraphicsItemChange change, QVariant value)

Reimplemented from QGraphicsItem.itemChange().

QGraphicsWebView.keyPressEvent (self, QKeyEvent)

Reimplemented from QGraphicsItem.keyPressEvent().

QGraphicsWebView.keyReleaseEvent (self, QKeyEvent)

Reimplemented from QGraphicsItem.keyReleaseEvent().

QGraphicsWebView.load (self, QUrl url)

Loads the specified url and displays it.

Note: The view remains the same until enough data has arrived to display the new url.

See also setUrl(), url(), and urlChanged().

QGraphicsWebView.load (self, QNetworkRequest request, QNetworkAccessManager.Operation operation = QNetworkAccessManager.GetOperation, QByteArray body = QByteArray())

Loads a network request, request, using the method specified in operation.

body is optional and is only used for POST operations.

Note: The view remains the same until enough data has arrived to display the new url.

See also url() and urlChanged().

QGraphicsWebView.mouseDoubleClickEvent (self, QGraphicsSceneMouseEvent)

Reimplemented from QGraphicsItem.mouseDoubleClickEvent().

QGraphicsWebView.mouseMoveEvent (self, QGraphicsSceneMouseEvent)

Reimplemented from QGraphicsItem.mouseMoveEvent().

QGraphicsWebView.mousePressEvent (self, QGraphicsSceneMouseEvent)

Reimplemented from QGraphicsItem.mousePressEvent().

QGraphicsWebView.mouseReleaseEvent (self, QGraphicsSceneMouseEvent)

Reimplemented from QGraphicsItem.mouseReleaseEvent().

QWebPage QGraphicsWebView.page (self)

Returns a pointer to the underlying web page.

See also setPage().

QAction QGraphicsWebView.pageAction (self, QWebPage.WebAction action)

Returns a pointer to a QAction that encapsulates the specified web action action.

QGraphicsWebView.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

Reimplemented from QGraphicsItem.paint().

QGraphicsWebView.reload (self)

This method is also a Qt slot with the C++ signature void reload().

Reloads the current document.

See also stop() and loadStarted().

QPainter.RenderHints QGraphicsWebView.renderHints (self)

bool QGraphicsWebView.resizesToContents (self)

bool QGraphicsWebView.sceneEvent (self, QEvent)

Reimplemented from QGraphicsItem.sceneEvent().

QGraphicsWebView.setContent (self, QByteArray data, QString mimeType = QString(), QUrl baseUrl = QUrl())

Sets the content of the web graphicsitem to the specified content data. If the mimeType argument is empty it is currently assumed that the content is HTML but in future versions we may introduce auto-detection.

External objects referenced in the content are located relative to baseUrl.

The data is loaded immediately; external objects are loaded asynchronously.

See also load(), setHtml(), and QWebFrame.toHtml().

QGraphicsWebView.setGeometry (self, QRectF rect)

Reimplemented from QGraphicsLayoutItem.setGeometry().

QGraphicsWebView.setHtml (self, QString html, QUrl baseUrl = QUrl())

Sets the content of the web view to the specified html.

External objects such as stylesheets or images referenced in the HTML document are located relative to baseUrl.

The html is loaded immediately; external objects are loaded asynchronously.

When using this method, WebKit assumes that external resources such as JavaScript programs or style sheets are encoded in UTF-8 unless otherwise specified. For example, the encoding of an external script can be specified through the charset attribute of the HTML script tag. Alternatively, the encoding can also be specified by the web server.

This is a convenience function equivalent to setContent(html, "text/html", baseUrl).

Warning: This function works only for HTML, for other mime types (i.e. XHTML, SVG) setContent() should be used instead.

See also load(), setContent(), QWebFrame.toHtml(), and QWebFrame.setContent().

QGraphicsWebView.setPage (self, QWebPage)

Makes page the new web page of the web graphicsitem.

The parent QObject of the provided page remains the owner of the object. If the current document is a child of the web view, it will be deleted.

See also page().

QGraphicsWebView.setRenderHint (self, QPainter.RenderHint hint, bool enabled = True)

If enabled is true, enables the specified render hint; otherwise disables it.

This function was introduced in Qt 4.8.

See also renderHints and QPainter.renderHints().

QGraphicsWebView.setRenderHints (self, QPainter.RenderHints hints)

QGraphicsWebView.setResizesToContents (self, bool enabled)

QGraphicsWebView.setTiledBackingStoreFrozen (self, bool frozen)

QWebSettings QGraphicsWebView.settings (self)

Returns a pointer to the view/page specific settings object.

It is equivalent to

     view->page()->settings();

See also QWebSettings.globalSettings().

QGraphicsWebView.setUrl (self, QUrl)

QGraphicsWebView.setZoomFactor (self, float)

QSizeF QGraphicsWebView.sizeHint (self, Qt.SizeHint which, QSizeF constraint)

Reimplemented from QGraphicsLayoutItem.sizeHint().

QGraphicsWebView.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Convenience slot that stops loading the document.

See also reload() and loadFinished().

QString QGraphicsWebView.title (self)

QGraphicsWebView.triggerPageAction (self, QWebPage.WebAction action, bool checked = False)

Triggers the specified action. If it is a checkable action the specified checked state is assumed.

See also pageAction().

QGraphicsWebView.updateGeometry (self)

Reimplemented from QGraphicsLayoutItem.updateGeometry().

QUrl QGraphicsWebView.url (self)

QGraphicsWebView.wheelEvent (self, QGraphicsSceneWheelEvent)

Reimplemented from QGraphicsItem.wheelEvent().

float QGraphicsWebView.zoomFactor (self)


Qt Signal Documentation

void iconChanged ()

This is the default overload of this signal.

This signal is emitted whenever the icon of the page is loaded or changes.

In order for icons to be loaded, you will need to set an icon database path using QWebSettings.setIconDatabasePath().

See also icon() and QWebSettings.setIconDatabasePath().

void linkClicked (const QUrl&)

This is the default overload of this signal.

This signal is emitted whenever the user clicks on a link and the page's linkDelegationPolicy property is set to delegate the link handling for the specified url.

See also QWebPage.linkDelegationPolicy().

void loadFinished (bool)

This is the default overload of this signal.

This signal is emitted when a load of the page is finished. ok will indicate whether the load was successful or any error occurred.

See also loadStarted().

void loadProgress (int)

This is the default overload of this signal.

This signal is emitted every time an element in the web page completes loading and the overall loading progress advances.

This signal tracks the progress of all child frames.

The current value is provided by progress and scales from 0 to 100, which is the default range of QProgressBar.

See also loadStarted() and loadFinished().

void loadStarted ()

This is the default overload of this signal.

This signal is emitted when a new load of the page is started.

See also loadProgress() and loadFinished().

void statusBarMessage (const QString&)

This is the default overload of this signal.

This signal is emitted when the statusbar text is changed by the page.

void titleChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the title of the main frame changes.

See also title().

void urlChanged (const QUrl&)

This is the default overload of this signal.

This signal is emitted when the url of the view changes.

See also url() and load().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgraphicswidget.html0000644000076500000240000020071512536324505021542 0ustar philstaff00000000000000 QGraphicsWidget Class Reference
  Home · All Classes · Modules

QGraphicsWidget Class Reference
[QtGui module]

The QGraphicsWidget class is the base class for all widget items in a QGraphicsScene. More...

Inherits QGraphicsObject and QGraphicsLayoutItem.

Inherited by QGraphicsProxyWidget and QGraphicsWebView.

Methods

Static Methods

  • setTabOrder (QGraphicsWidget first, QGraphicsWidget second)

Qt Signals


Detailed Description

The QGraphicsWidget class is the base class for all widget items in a QGraphicsScene.

QGraphicsWidget is an extended base item that provides extra functionality over QGraphicsItem. It is similar to QWidget in many ways:

Unlike QGraphicsItem, QGraphicsWidget is not an abstract class; you can create instances of a QGraphicsWidget without having to subclass it. This approach is useful for widgets that only serve the purpose of organizing child widgets into a layout.

QGraphicsWidget can be used as a base item for your own custom item if you require advanced input focus handling, e.g., tab focus and activation, or layouts.

Since QGraphicsWidget resembles QWidget and has similar API, it is easier to port a widget from QWidget to QGraphicsWidget, instead of QGraphicsItem.

Note: QWidget-based widgets can be directly embedded into a QGraphicsScene using QGraphicsProxyWidget.

Noticeable differences between QGraphicsWidget and QWidget are:

QGraphicsWidget QWidget
Coordinates and geometry are defined with qreals (doubles or floats, depending on the platform). QWidget uses integer geometry (QPoint, QRect).
The widget is already visible by default; you do not have to call show() to display the widget. QWidget is hidden by default until you call show().
A subset of widget attributes are supported. All widget attributes are supported.
A top-level item's style defaults to QGraphicsScene.style A top-level widget's style defaults to QApplication.style
Graphics View provides a custom drag and drop framework, different from QWidget. Standard drag and drop framework.
Widget items do not support modality. Full modality support.

QGraphicsWidget supports a subset of Qt's widget attributes, (Qt.WidgetAttribute), as shown in the table below. Any attributes not listed in this table are unsupported, or otherwise unused.

Widget Attribute Usage
Qt.WA_SetLayoutDirection Set by setLayoutDirection(), cleared by unsetLayoutDirection(). You can test this attribute to check if the widget has been explicitly assigned a layoutDirection. If the attribute is not set, the layoutDirection() is inherited.
Qt.WA_RightToLeft Toggled by setLayoutDirection(). Inherited from the parent/scene. If set, the widget's layout will order horizontally arranged widgets from right to left.
Qt.WA_SetStyle Set and cleared by setStyle(). If this attribute is set, the widget has been explicitly assigned a style. If it is unset, the widget will use the scene's or the application's style.
Qt.WA_Resized Set by setGeometry() and resize().
Qt.WA_SetPalette Set by setPalette().
Qt.WA_SetFont Set by setFont().
Qt.WA_WindowPropagation Enables propagation to window widgets.

Although QGraphicsWidget inherits from both QObject and QGraphicsItem, you should use the functions provided by QGraphicsItem, not QObject, to manage the relationships between parent and child items. These functions control the stacking order of items as well as their ownership.

Note: The QObject.parent() should always return 0 for QGraphicsWidgets, but this policy is not strictly defined.


Method Documentation

QGraphicsWidget.__init__ (self, QGraphicsItem parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QGraphicsWidget instance. The optional parent argument is passed to QGraphicsItem's constructor. The optional wFlags argument specifies the widget's window flags (e.g., whether the widget should be a window, a tool, a popup, etc).

list-of-QAction QGraphicsWidget.actions (self)

Returns the (possibly empty) list of this widget's actions.

This function was introduced in Qt 4.5.

See also insertAction(), removeAction(), QWidget.actions(), QAction.associatedWidgets(), and QAction.associatedGraphicsWidgets().

QGraphicsWidget.addAction (self, QAction action)

Appends the action action to this widget's list of actions.

All QGraphicsWidgets have a list of QActions, however they can be represented graphically in many different ways. The default use of the QAction list (as returned by actions()) is to create a context QMenu.

A QGraphicsWidget should only have one of each action and adding an action it already has will not cause the same action to be in the widget twice.

This function was introduced in Qt 4.5.

See also removeAction(), insertAction(), actions(), and QWidget.addAction().

QGraphicsWidget.addActions (self, list-of-QAction actions)

Appends the actions actions to this widget's list of actions.

This function was introduced in Qt 4.5.

See also removeAction(), QMenu, addAction(), and QWidget.addActions().

QGraphicsWidget.adjustSize (self)

Adjusts the size of the widget to its effective preferred size hint.

This function is called implicitly when the item is shown for the first time.

See also effectiveSizeHint() and Qt.MinimumSize.

bool QGraphicsWidget.autoFillBackground (self)

QRectF QGraphicsWidget.boundingRect (self)

Reimplemented from QGraphicsItem.boundingRect().

QGraphicsWidget.changeEvent (self, QEvent event)

This event handler can be reimplemented to handle state changes.

The state being changed in this event can be retrieved through event.

Change events include: QEvent.ActivationChange, QEvent.EnabledChange, QEvent.FontChange, QEvent.StyleChange, QEvent.PaletteChange, QEvent.ParentChange, QEvent.LayoutDirectionChange, and QEvent.ContentsRectChange.

bool QGraphicsWidget.close (self)

This method is also a Qt slot with the C++ signature bool close().

Call this function to close the widget.

Returns true if the widget was closed; otherwise returns false. This slot will first send a QCloseEvent to the widget, which may or may not accept the event. If the event was ignored, nothing happens. If the event was accepted, it will hide() the widget.

If the widget has the Qt.WA_DeleteOnClose attribute set it will be deleted.

QGraphicsWidget.closeEvent (self, QCloseEvent event)

This event handler, for event, can be reimplemented in a subclass to receive widget close events. The default implementation accepts the event.

See also close() and QCloseEvent.

bool QGraphicsWidget.event (self, QEvent event)

Reimplemented from QObject.event().

Handles the event. QGraphicsWidget handles the following events:

Polish Delivered to the widget some time after it has been shown.
GraphicsSceneMove Delivered to the widget after its local position has changed.
GraphicsSceneResize Delivered to the widget after its size has changed.
Show Delivered to the widget before it has been shown.
Hide Delivered to the widget after it has been hidden.
PaletteChange Delivered to the widget after its palette has changed.
FontChange Delivered to the widget after its font has changed.
EnabledChange Delivered to the widget after its enabled state has changed.
StyleChange Delivered to the widget after its style has changed.
LayoutDirectionChange Delivered to the widget after its layout direction has changed.
ContentsRectChange Delivered to the widget after its contents margins/ contents rect has changed.

QGraphicsWidget.focusInEvent (self, QFocusEvent event)

Reimplemented from QGraphicsItem.focusInEvent().

bool QGraphicsWidget.focusNextPrevChild (self, bool next)

Finds a new widget to give the keyboard focus to, as appropriate for Tab and Shift+Tab, and returns true if it can find a new widget; returns false otherwise. If next is true, this function searches forward; if next is false, it searches backward.

Sometimes, you will want to reimplement this function to provide special focus handling for your widget and its subwidgets. For example, a web browser might reimplement it to move its current active link forward or backward, and call the base implementation only when it reaches the last or first link on the page.

Child widgets call focusNextPrevChild() on their parent widgets, but only the window that contains the child widgets decides where to redirect focus. By reimplementing this function for an object, you gain control of focus traversal for all child widgets.

See also focusPolicy().

QGraphicsWidget.focusOutEvent (self, QFocusEvent event)

Reimplemented from QGraphicsItem.focusOutEvent().

Qt.FocusPolicy QGraphicsWidget.focusPolicy (self)

QGraphicsWidget QGraphicsWidget.focusWidget (self)

If this widget, a child or descendant of this widget currently has input focus, this function will return a pointer to that widget. If no descendant widget has input focus, 0 is returned.

See also QGraphicsItem.focusItem() and QWidget.focusWidget().

QFont QGraphicsWidget.font (self)

(float left, float top, float right, float bottom) QGraphicsWidget.getContentsMargins (self)

Reimplemented from QGraphicsLayoutItem.getContentsMargins().

Gets the widget's contents margins. The margins are stored in left, top, right and bottom, as pointers to qreals. Each argument can be omitted by passing 0.

See also setContentsMargins().

(float left, float top, float right, float bottom) QGraphicsWidget.getWindowFrameMargins (self)

Gets the widget's window frame margins. The margins are stored in left, top, right and bottom as pointers to qreals. Each argument can be omitted by passing 0.

See also setWindowFrameMargins() and windowFrameRect().

QGraphicsWidget.grabKeyboardEvent (self, QEvent event)

This event handler, for event, can be reimplemented in a subclass to receive notifications for QEvent.GrabKeyboard events.

See also grabKeyboard() and grabMouse().

QGraphicsWidget.grabMouseEvent (self, QEvent event)

This event handler, for event, can be reimplemented in a subclass to receive notifications for QEvent.GrabMouse events.

See also grabMouse() and grabKeyboard().

int QGraphicsWidget.grabShortcut (self, QKeySequence sequence, Qt.ShortcutContext context = Qt.WindowShortcut)

Adds a shortcut to Qt's shortcut system that watches for the given key sequence in the given context. If the context is Qt.ApplicationShortcut, the shortcut applies to the application as a whole. Otherwise, it is either local to this widget, Qt.WidgetShortcut, or to the window itself, Qt.WindowShortcut. For widgets that are not part of a window (i.e., top-level widgets and their children), Qt.WindowShortcut shortcuts apply to the scene.

If the same key sequence has been grabbed by several widgets, when the key sequence occurs a QEvent.Shortcut event is sent to all the widgets to which it applies in a non-deterministic order, but with the ``ambiguous'' flag set to true.

Warning: You should not normally need to use this function; instead create QActions with the shortcut key sequences you require (if you also want equivalent menu options and toolbar buttons), or create QShortcuts if you just need key sequences. Both QAction and QShortcut handle all the event filtering for you, and provide signals which are triggered when the user triggers the key sequence, so are much easier to use than this low-level function.

This function was introduced in Qt 4.5.

See also releaseShortcut(), setShortcutEnabled(), and QWidget.grabShortcut().

QGraphicsWidget.hideEvent (self, QHideEvent event)

This event handler, for Hide events, is delivered after the widget has been hidden, for example, setVisible(false) has been called for the widget or one of its ancestors when the widget was previously shown.

You can reimplement this event handler to detect when your widget is hidden. Calling QEvent.accept() or QEvent.ignore() on event has no effect.

See also showEvent(), QWidget.hideEvent(), and ItemVisibleChange.

QGraphicsWidget.hoverLeaveEvent (self, QGraphicsSceneHoverEvent event)

Reimplemented from QGraphicsItem.hoverLeaveEvent().

QGraphicsWidget.hoverMoveEvent (self, QGraphicsSceneHoverEvent event)

Reimplemented from QGraphicsItem.hoverMoveEvent().

QGraphicsWidget.initStyleOption (self, QStyleOption option)

Populates a style option object for this widget based on its current state, and stores the output in option. The default implementation populates option with the following properties.

Style Option Property Value
state & QStyle.State_Enabled Corresponds to QGraphicsItem.isEnabled().
state & QStyle.State_HasFocus Corresponds to QGraphicsItem.hasFocus().
state & QStyle.State_MouseOver Corresponds to QGraphicsItem.isUnderMouse().
direction Corresponds to QGraphicsWidget.layoutDirection().
rect Corresponds to QGraphicsWidget.rect().toRect().
palette Corresponds to QGraphicsWidget.palette().
fontMetrics Corresponds to QFontMetrics(QGraphicsWidget.font()).

Subclasses of QGraphicsWidget should call the base implementation, and then test the type of option using qstyleoption_cast<>() or test QStyleOption.Type before storing widget-specific options.

For example:

 void MyGroupBoxWidget.initStyleOption(QStyleOption *option) const
 {
     QGraphicsWidget.initStyleOption(option);
     if (QStyleOptionGroupBox *box = qstyleoption_cast<QStyleOptionGroupBox *>(option)) {
         // Add group box specific state.
         box->flat = isFlat();
         ...
     }
 }

See also QStyleOption.initFrom().

QGraphicsWidget.insertAction (self, QAction before, QAction action)

Inserts the action action to this widget's list of actions, before the action before. It appends the action if before is 0 or before is not a valid action for this widget.

A QGraphicsWidget should only have one of each action.

This function was introduced in Qt 4.5.

See also removeAction(), addAction(), QMenu, actions(), and QWidget.insertActions().

QGraphicsWidget.insertActions (self, QAction before, list-of-QAction actions)

Inserts the actions actions to this widget's list of actions, before the action before. It appends the action if before is 0 or before is not a valid action for this widget.

A QGraphicsWidget can have at most one of each action.

This function was introduced in Qt 4.5.

See also removeAction(), QMenu, insertAction(), and QWidget.insertActions().

bool QGraphicsWidget.isActiveWindow (self)

Returns true if this widget's window is in the active window, or if the widget does not have a window but is in an active scene (i.e., a scene that currently has focus).

The active window is the window that either contains a child widget that currently has input focus, or that itself has input focus.

See also QGraphicsScene.activeWindow(), QGraphicsScene.setActiveWindow(), and isActive().

QVariant QGraphicsWidget.itemChange (self, QGraphicsItem.GraphicsItemChange change, QVariant value)

Reimplemented from QGraphicsItem.itemChange().

QGraphicsWidget uses the base implementation of this function to catch and deliver events related to state changes in the item. Because of this, it is very important that subclasses call the base implementation.

change specifies the type of change, and value is the new value.

For example, QGraphicsWidget uses ItemVisibleChange to deliver Show and Hide events, ItemPositionHasChanged to deliver Move events, and ItemParentChange both to deliver ParentChange events, and for managing the focus chain.

QGraphicsWidget enables the ItemSendsGeometryChanges flag by default in order to track position changes.

See also QGraphicsItem.itemChange().

QGraphicsLayout QGraphicsWidget.layout (self)

Qt.LayoutDirection QGraphicsWidget.layoutDirection (self)

QGraphicsWidget.moveEvent (self, QGraphicsSceneMoveEvent event)

This event handler, for GraphicsSceneMove events, is delivered after the widget has moved (e.g., its local position has changed).

This event is only delivered when the item is moved locally. Calling setTransform() or moving any of the item's ancestors does not affect the item's local position.

You can reimplement this event handler to detect when your widget has moved. Calling QEvent.accept() or QEvent.ignore() on event has no effect.

See also ItemPositionChange and ItemPositionHasChanged.

QGraphicsWidget.paint (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

Reimplemented from QGraphicsItem.paint().

QGraphicsWidget.paintWindowFrame (self, QPainter painter, QStyleOptionGraphicsItem option, QWidget widget = None)

This virtual function is called by QGraphicsScene to draw the window frame for windows using painter, option, and widget, in local coordinates. The base implementation uses the current style to render the frame and title bar.

You can reimplement this function in a subclass of QGraphicsWidget to provide custom rendering of the widget's window frame.

See also QGraphicsItem.paint().

QPalette QGraphicsWidget.palette (self)

QGraphicsWidget.polishEvent (self)

This event is delivered to the item by the scene at some point after it has been constructed, but before it is shown or otherwise accessed through the scene. You can use this event handler to do last-minute initializations of the widget which require the item to be fully constructed.

The base implementation does nothing.

QRectF QGraphicsWidget.rect (self)

Returns the item's local rect as a QRectF. This function is equivalent to QRectF(QPointF(), size()).

See also setGeometry() and resize().

QGraphicsWidget.releaseShortcut (self, int id)

Removes the shortcut with the given id from Qt's shortcut system. The widget will no longer receive QEvent.Shortcut events for the shortcut's key sequence (unless it has other shortcuts with the same key sequence).

Warning: You should not normally need to use this function since Qt's shortcut system removes shortcuts automatically when their parent widget is destroyed. It is best to use QAction or QShortcut to handle shortcuts, since they are easier to use than this low-level function. Note also that this is an expensive operation.

This function was introduced in Qt 4.5.

See also grabShortcut(), setShortcutEnabled(), and QWidget.releaseShortcut().

QGraphicsWidget.removeAction (self, QAction action)

Removes the action action from this widget's list of actions.

This function was introduced in Qt 4.5.

See also insertAction(), actions(), insertAction(), and QWidget.removeAction().

QGraphicsWidget.resize (self, QSizeF size)

QGraphicsWidget.resize (self, float w, float h)

QGraphicsWidget.resizeEvent (self, QGraphicsSceneResizeEvent event)

This event handler, for GraphicsSceneResize events, is delivered after the widget has been resized (i.e., its local size has changed). event contains both the old and the new size.

This event is only delivered when the widget is resized locally; calling setTransform() on the widget or any of its ancestors or view, does not affect the widget's local size.

You can reimplement this event handler to detect when your widget has been resized. Calling QEvent.accept() or QEvent.ignore() on event has no effect.

See also geometry() and setGeometry().

bool QGraphicsWidget.sceneEvent (self, QEvent event)

Reimplemented from QGraphicsItem.sceneEvent().

QGraphicsWidget's implementation of sceneEvent() simply passes event to QGraphicsWidget.event(). You can handle all events for your widget in event() or in any of the convenience functions; you should not have to reimplement this function in a subclass of QGraphicsWidget.

See also QGraphicsItem.sceneEvent().

QGraphicsWidget.setAttribute (self, Qt.WidgetAttribute attribute, bool on = True)

If on is true, this function enables attribute; otherwise attribute is disabled.

See the class documentation for QGraphicsWidget for a complete list of which attributes are supported, and what they are for.

See also testAttribute() and QWidget.setAttribute().

QGraphicsWidget.setAutoFillBackground (self, bool enabled)

QGraphicsWidget.setContentsMargins (self, float left, float top, float right, float bottom)

Sets the widget's contents margins to left, top, right and bottom.

Contents margins are used by the assigned layout to define the placement of subwidgets and layouts. Margins are particularly useful for widgets that constrain subwidgets to only a section of its own geometry. For example, a group box with a layout will place subwidgets inside its frame, but below the title.

Changing a widget's contents margins will always trigger an update(), and any assigned layout will be activated automatically. The widget will then receive a ContentsRectChange event.

See also getContentsMargins() and setGeometry().

QGraphicsWidget.setFocusPolicy (self, Qt.FocusPolicy policy)

QGraphicsWidget.setFont (self, QFont font)

QGraphicsWidget.setGeometry (self, QRectF rect)

QGraphicsWidget.setGeometry (self, float ax, float ay, float aw, float ah)

QGraphicsWidget.setLayout (self, QGraphicsLayout layout)

The layout argument has it's ownership transferred to Qt.

QGraphicsWidget.setLayoutDirection (self, Qt.LayoutDirection direction)

QGraphicsWidget.setPalette (self, QPalette palette)

QGraphicsWidget.setShortcutAutoRepeat (self, int id, bool enabled = True)

If enabled is true, auto repeat of the shortcut with the given id is enabled; otherwise it is disabled.

This function was introduced in Qt 4.5.

See also grabShortcut(), releaseShortcut(), and QWidget.setShortcutAutoRepeat().

QGraphicsWidget.setShortcutEnabled (self, int id, bool enabled = True)

If enabled is true, the shortcut with the given id is enabled; otherwise the shortcut is disabled.

Warning: You should not normally need to use this function since Qt's shortcut system enables/disables shortcuts automatically as widgets become hidden/visible and gain or lose focus. It is best to use QAction or QShortcut to handle shortcuts, since they are easier to use than this low-level function.

This function was introduced in Qt 4.5.

See also grabShortcut(), releaseShortcut(), and QWidget.setShortcutEnabled().

QGraphicsWidget.setStyle (self, QStyle style)

Sets the widget's style to style. QGraphicsWidget does not take ownership of style.

If no style is assigned, or style is 0, the widget will use QGraphicsScene.style() (if this has been set). Otherwise the widget will use QApplication.style().

This function sets the Qt.WA_SetStyle attribute if style is not 0; otherwise it clears the attribute.

See also style().

QGraphicsWidget.setTabOrder (QGraphicsWidget first, QGraphicsWidget second)

Moves the second widget around the ring of focus widgets so that keyboard focus moves from the first widget to the second widget when the Tab key is pressed.

Note that since the tab order of the second widget is changed, you should order a chain like this:

 setTabOrder(a, b); // a to b
 setTabOrder(b, c); // a to b to c
 setTabOrder(c, d); // a to b to c to d

not like this:

 // WRONG
 setTabOrder(c, d); // c to d
 setTabOrder(a, b); // a to b AND c to d
 setTabOrder(b, c); // a to b to c, but not c to d

If first is 0, this indicates that second should be the first widget to receive input focus should the scene gain Tab focus (i.e., the user hits Tab so that focus passes into the scene). If second is 0, this indicates that first should be the first widget to gain focus if the scene gained BackTab focus.

By default, tab order is defined implicitly using widget creation order.

See also focusPolicy and Keyboard Focus.

QGraphicsWidget.setWindowFlags (self, Qt.WindowFlags wFlags)

QGraphicsWidget.setWindowFrameMargins (self, float left, float top, float right, float bottom)

Sets the widget's window frame margins to left, top, right and bottom. The default frame margins are provided by the style, and they depend on the current window flags.

If you would like to draw your own window decoration, you can set your own frame margins to override the default margins.

See also unsetWindowFrameMargins(), getWindowFrameMargins(), and windowFrameRect().

QGraphicsWidget.setWindowTitle (self, QString title)

QPainterPath QGraphicsWidget.shape (self)

Reimplemented from QGraphicsItem.shape().

QGraphicsWidget.showEvent (self, QShowEvent event)

This event handler, for Show events, is delivered before the widget has been shown, for example, setVisible(true) has been called for the widget or one of its ancestors when the widget was previously hidden.

You can reimplement this event handler to detect when your widget is shown. Calling QEvent.accept() or QEvent.ignore() on event has no effect.

See also hideEvent(), QWidget.showEvent(), and ItemVisibleChange.

QSizeF QGraphicsWidget.size (self)

QSizeF QGraphicsWidget.sizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())

Reimplemented from QGraphicsLayoutItem.sizeHint().

QStyle QGraphicsWidget.style (self)

Returns a pointer to the widget's style. If this widget does not have any explicitly assigned style, the scene's style is returned instead. In turn, if the scene does not have any assigned style, this function returns QApplication.style().

See also setStyle().

bool QGraphicsWidget.testAttribute (self, Qt.WidgetAttribute attribute)

Returns true if attribute is enabled for this widget; otherwise, returns false.

See also setAttribute().

int QGraphicsWidget.type (self)

Reimplemented from QGraphicsItem.type().

QGraphicsWidget.ungrabKeyboardEvent (self, QEvent event)

This event handler, for event, can be reimplemented in a subclass to receive notifications for QEvent.UngrabKeyboard events.

See also ungrabKeyboard() and ungrabMouse().

QGraphicsWidget.ungrabMouseEvent (self, QEvent event)

This event handler, for event, can be reimplemented in a subclass to receive notifications for QEvent.UngrabMouse events.

See also ungrabMouse() and ungrabKeyboard().

QGraphicsWidget.unsetLayoutDirection (self)

QGraphicsWidget.unsetWindowFrameMargins (self)

Resets the window frame margins to the default value, provided by the style.

See also setWindowFrameMargins(), getWindowFrameMargins(), and windowFrameRect().

QGraphicsWidget.updateGeometry (self)

Reimplemented from QGraphicsLayoutItem.updateGeometry().

If this widget is currently managed by a layout, this function notifies the layout that the widget's size hints have changed and the layout may need to resize and reposition the widget accordingly.

Call this function if the widget's sizeHint() has changed.

See also QGraphicsLayout.invalidate().

Qt.WindowFlags QGraphicsWidget.windowFlags (self)

bool QGraphicsWidget.windowFrameEvent (self, QEvent e)

This event handler, for event, receives events for the window frame if this widget is a window. Its base implementation provides support for default window frame interaction such as moving, resizing, etc.

You can reimplement this handler in a subclass of QGraphicsWidget to provide your own custom window frame interaction support.

Returns true if event has been recognized and processed; otherwise, returns false.

See also event().

QRectF QGraphicsWidget.windowFrameGeometry (self)

Returns the widget's geometry in parent coordinates including any window frame.

See also windowFrameRect(), getWindowFrameMargins(), and setWindowFrameMargins().

QRectF QGraphicsWidget.windowFrameRect (self)

Returns the widget's local rect including any window frame.

See also windowFrameGeometry(), getWindowFrameMargins(), and setWindowFrameMargins().

Qt.WindowFrameSection QGraphicsWidget.windowFrameSectionAt (self, QPointF pos)

Returns the window frame section at position pos, or Qt.NoSection if there is no window frame section at this position.

This function is used in QGraphicsWidget's base implementation for window frame interaction.

You can reimplement this function if you want to customize how a window can be interactively moved or resized. For instance, if you only want to allow a window to be resized by the bottom right corner, you can reimplement this function to return Qt.NoSection for all sections except Qt.BottomRightSection.

This function was introduced in Qt 4.4.

See also windowFrameEvent(), paintWindowFrame(), and windowFrameGeometry().

QString QGraphicsWidget.windowTitle (self)

Qt.WindowType QGraphicsWidget.windowType (self)

Returns the widgets window type.

See also windowFlags(), isWindow(), and isPanel().


Qt Signal Documentation

void geometryChanged ()

This is the default overload of this signal.

This signal gets emitted whenever the geometry is changed in setGeometry().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgridlayout.html0000644000076500000240000006446712536324506020736 0ustar philstaff00000000000000 QGridLayout Class Reference
  Home · All Classes · Modules

QGridLayout Class Reference
[QtGui module]

The QGridLayout class lays out widgets in a grid. More...

Inherits QLayout.

Methods


Detailed Description

The QGridLayout class lays out widgets in a grid.

QGridLayout takes the space made available to it (by its parent layout or by the parentWidget()), divides it up into rows and columns, and puts each widget it manages into the correct cell.

Columns and rows behave identically; we will discuss columns, but there are equivalent functions for rows.

Each column has a minimum width and a stretch factor. The minimum width is the greatest of that set using setColumnMinimumWidth() and the minimum width of each widget in that column. The stretch factor is set using setColumnStretch() and determines how much of the available space the column will get over and above its necessary minimum.

Normally, each managed widget or layout is put into a cell of its own using addWidget(). It is also possible for a widget to occupy multiple cells using the row and column spanning overloads of addItem() and addWidget(). If you do this, QGridLayout will guess how to distribute the size over the columns/rows (based on the stretch factors).

To remove a widget from a layout, call removeWidget(). Calling QWidget.hide() on a widget also effectively removes the widget from the layout until QWidget.show() is called.

This illustration shows a fragment of a dialog with a five-column, three-row grid (the grid is shown overlaid in magenta):

A grid layout

Columns 0, 2 and 4 in this dialog fragment are made up of a QLabel, a QLineEdit, and a QListBox. Columns 1 and 3 are placeholders made with setColumnMinimumWidth(). Row 0 consists of three QLabel objects, row 1 of three QLineEdit objects and row 2 of three QListBox objects. We used placeholder columns (1 and 3) to get the right amount of space between the columns.

Note that the columns and rows are not equally wide or tall. If you want two columns to have the same width, you must set their minimum widths and stretch factors to be the same yourself. You do this using setColumnMinimumWidth() and setColumnStretch().

If the QGridLayout is not the top-level layout (i.e. does not manage all of the widget's area and children), you must add it to its parent layout when you create it, but before you do anything with it. The normal way to add a layout is by calling addLayout() on the parent layout.

Once you have added your layout you can start putting widgets and other layouts into the cells of your grid layout using addWidget(), addItem(), and addLayout().

QGridLayout also includes two margin widths: the contents margin and the spacing(). The contents margin is the width of the reserved space along each of the QGridLayout's four sides. The spacing() is the width of the automatically allocated spacing between neighboring boxes.

The default contents margin values are provided by the style. The default value Qt styles specify is 9 for child widgets and 11 for windows. The spacing defaults to the same as the margin width for a top-level layout, or to the same as the parent layout.


Method Documentation

QGridLayout.__init__ (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QGridLayout with parent widget, parent. The layout has one row and one column initially, and will expand when new items are inserted.

QGridLayout.__init__ (self)

Constructs a new grid layout.

You must insert this grid into another layout. You can insert widgets and layouts into this layout at any time, but laying out will not be performed before this is inserted into another layout.

QGridLayout.addItem (self, QLayoutItem item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt.Alignment alignment = 0)

The item argument has it's ownership transferred to Qt.

Adds item at position row, column, spanning rowSpan rows and columnSpan columns, and aligns it according to alignment. If rowSpan and/or columnSpan is -1, then the item will extend to the bottom and/or right edge, respectively. The layout takes ownership of the item.

Warning: Do not use this function to add child layouts or child widget items. Use addLayout() or addWidget() instead.

QGridLayout.addItem (self, QLayoutItem)

The QLayoutItem argument has it's ownership transferred to Qt.

Reimplemented from QLayout.addItem().

QGridLayout.addLayout (self, QLayout, int row, int column, Qt.Alignment alignment = 0)

The QLayout argument has it's ownership transferred to Qt.

Places the layout at position (row, column) in the grid. The top-left position is (0, 0).

The alignment is specified by alignment. The default alignment is 0, which means that the widget fills the entire cell.

A non-zero alignment indicates that the layout should not grow to fill the available space but should be sized according to sizeHint().

layout becomes a child of the grid layout.

QGridLayout.addLayout (self, QLayout, int row, int column, int rowSpan, int columnSpan, Qt.Alignment alignment = 0)

The QLayout argument has it's ownership transferred to Qt.

This is an overloaded function.

This version adds the layout layout to the cell grid, spanning multiple rows/columns. The cell will start at row, column spanning rowSpan rows and columnSpan columns.

If rowSpan and/or columnSpan is -1, then the layout will extend to the bottom and/or right edge, respectively.

QGridLayout.addWidget (self, QWidget w)

Adds the given widget to the cell grid at row, column. The top-left position is (0, 0) by default.

The alignment is specified by alignment. The default alignment is 0, which means that the widget fills the entire cell.

QGridLayout.addWidget (self, QWidget, int row, int column, Qt.Alignment alignment = 0)

This is an overloaded function.

This version adds the given widget to the cell grid, spanning multiple rows/columns. The cell will start at fromRow, fromColumn spanning rowSpan rows and columnSpan columns. The widget will have the given alignment.

If rowSpan and/or columnSpan is -1, then the widget will extend to the bottom and/or right edge, respectively.

QGridLayout.addWidget (self, QWidget, int row, int column, int rowSpan, int columnSpan, Qt.Alignment alignment = 0)

QRect QGridLayout.cellRect (self, int row, int column)

Returns the geometry of the cell with row row and column column in the grid. Returns an invalid rectangle if row or column is outside the grid.

Warning: in the current version of Qt this function does not return valid results until setGeometry() has been called, i.e. after the parentWidget() is visible.

int QGridLayout.columnCount (self)

Returns the number of columns in this grid.

int QGridLayout.columnMinimumWidth (self, int column)

Returns the column spacing for column column.

See also setColumnMinimumWidth().

int QGridLayout.columnStretch (self, int column)

Returns the stretch factor for column column.

See also setColumnStretch().

int QGridLayout.count (self)

Reimplemented from QLayout.count().

Qt.Orientations QGridLayout.expandingDirections (self)

Reimplemented from QLayoutItem.expandingDirections().

(int row, int column, int rowSpan, int columnSpan) QGridLayout.getItemPosition (self, int idx)

Returns the position information of the item with the given index.

The variables passed as row and column are updated with the position of the item in the layout, and the rowSpan and columnSpan variables are updated with the vertical and horizontal spans of the item.

See also itemAtPosition() and itemAt().

bool QGridLayout.hasHeightForWidth (self)

Reimplemented from QLayoutItem.hasHeightForWidth().

int QGridLayout.heightForWidth (self, int)

Reimplemented from QLayoutItem.heightForWidth().

int QGridLayout.horizontalSpacing (self)

QGridLayout.invalidate (self)

Reimplemented from QLayoutItem.invalidate().

QLayoutItem QGridLayout.itemAt (self, int)

Reimplemented from QLayout.itemAt().

QLayoutItem QGridLayout.itemAtPosition (self, int row, int column)

Returns the layout item that occupies cell (row, column), or 0 if the cell is empty.

This function was introduced in Qt 4.4.

See also getItemPosition() and indexOf().

QSize QGridLayout.maximumSize (self)

Reimplemented from QLayoutItem.maximumSize().

int QGridLayout.minimumHeightForWidth (self, int)

Reimplemented from QLayoutItem.minimumHeightForWidth().

QSize QGridLayout.minimumSize (self)

Reimplemented from QLayoutItem.minimumSize().

Qt.Corner QGridLayout.originCorner (self)

Returns the corner that's used for the grid's origin, i.e. for position (0, 0).

See also setOriginCorner().

int QGridLayout.rowCount (self)

Returns the number of rows in this grid.

int QGridLayout.rowMinimumHeight (self, int row)

Returns the minimum width set for row row.

See also setRowMinimumHeight().

int QGridLayout.rowStretch (self, int row)

Returns the stretch factor for row row.

See also setRowStretch().

QGridLayout.setColumnMinimumWidth (self, int column, int minSize)

Sets the minimum width of column column to minSize pixels.

See also columnMinimumWidth() and setRowMinimumHeight().

QGridLayout.setColumnStretch (self, int column, int stretch)

Sets the stretch factor of column column to stretch. The first column is number 0.

The stretch factor is relative to the other columns in this grid. Columns with a higher stretch factor take more of the available space.

The default stretch factor is 0. If the stretch factor is 0 and no other column in this table can grow at all, the column may still grow.

An alternative approach is to add spacing using addItem() with a QSpacerItem.

See also columnStretch() and setRowStretch().

QGridLayout.setDefaultPositioning (self, int n, Qt.Orientation orient)

QGridLayout.setGeometry (self, QRect)

Reimplemented from QLayoutItem.setGeometry().

QGridLayout.setHorizontalSpacing (self, int spacing)

QGridLayout.setOriginCorner (self, Qt.Corner)

Sets the grid's origin corner, i.e. position (0, 0), to corner.

See also originCorner().

QGridLayout.setRowMinimumHeight (self, int row, int minSize)

Sets the minimum height of row row to minSize pixels.

See also rowMinimumHeight() and setColumnMinimumWidth().

QGridLayout.setRowStretch (self, int row, int stretch)

Sets the stretch factor of row row to stretch. The first row is number 0.

The stretch factor is relative to the other rows in this grid. Rows with a higher stretch factor take more of the available space.

The default stretch factor is 0. If the stretch factor is 0 and no other row in this table can grow at all, the row may still grow.

See also rowStretch(), setRowMinimumHeight(), and setColumnStretch().

QGridLayout.setSpacing (self, int spacing)

This function sets both the vertical and horizontal spacing to spacing.

See also spacing(), setVerticalSpacing(), and setHorizontalSpacing().

QGridLayout.setVerticalSpacing (self, int spacing)

QSize QGridLayout.sizeHint (self)

Reimplemented from QLayoutItem.sizeHint().

int QGridLayout.spacing (self)

If the vertical spacing is equal to the horizontal spacing, this function returns that value; otherwise it return -1.

See also setSpacing(), verticalSpacing(), and horizontalSpacing().

QLayoutItem QGridLayout.takeAt (self, int)

The QLayoutItem result

Reimplemented from QLayout.takeAt().

int QGridLayout.verticalSpacing (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qgroupbox.html0000644000076500000240000003360012536324506020401 0ustar philstaff00000000000000 QGroupBox Class Reference
  Home · All Classes · Modules

QGroupBox Class Reference
[
QtGui module]

The QGroupBox widget provides a group box frame with a title. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QGroupBox widget provides a group box frame with a title.

A group box provides a frame, a title and a keyboard shortcut, and displays various other widgets inside itself. The title is on top, the keyboard shortcut moves keyboard focus to one of the group box's child widgets.

QGroupBox also lets you set the title (normally set in the constructor) and the title's alignment. Group boxes can be checkable; child widgets in checkable group boxes are enabled or disabled depending on whether or not the group box is checked.

You can minimize the space consumption of a group box by enabling the flat property. In most styles, enabling this property results in the removal of the left, right and bottom edges of the frame.

QGroupBox doesn't automatically lay out the child widgets (which are often QCheckBoxes or QRadioButtons but can be any widgets). The following example shows how we can set up a QGroupBox with a layout:

     QGroupBox *groupBox = new QGroupBox(tr("Exclusive Radio Buttons"));

     QRadioButton *radio1 = new QRadioButton(tr("&Radio button 1"));
     QRadioButton *radio2 = new QRadioButton(tr("R&adio button 2"));
     QRadioButton *radio3 = new QRadioButton(tr("Ra&dio button 3"));

     radio1->setChecked(true);

     QVBoxLayout *vbox = new QVBoxLayout;
     vbox->addWidget(radio1);
     vbox->addWidget(radio2);
     vbox->addWidget(radio3);
     vbox->addStretch(1);
     groupBox->setLayout(vbox);
Screenshot of a Windows XP style group box Screenshot of a Macintosh style group box Screenshot of a Plastique style group box
A Windows XP style group box. A Macintosh style group box. A Plastique style group box.

Method Documentation

QGroupBox.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a group box widget with the given parent but with no title.

QGroupBox.__init__ (self, QString title, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a group box with the given title and parent.

Qt.Alignment QGroupBox.alignment (self)

QGroupBox.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QGroupBox.childEvent (self, QChildEvent)

Reimplemented from QObject.childEvent().

bool QGroupBox.event (self, QEvent)

Reimplemented from QObject.event().

QGroupBox.focusInEvent (self, QFocusEvent)

Reimplemented from QWidget.focusInEvent().

QGroupBox.initStyleOption (self, QStyleOptionGroupBox option)

Initialize option with the values from this QGroupBox. This method is useful for subclasses when they need a QStyleOptionGroupBox, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

bool QGroupBox.isCheckable (self)

bool QGroupBox.isChecked (self)

bool QGroupBox.isFlat (self)

QSize QGroupBox.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QGroupBox.mouseMoveEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseMoveEvent().

QGroupBox.mousePressEvent (self, QMouseEvent event)

Reimplemented from QWidget.mousePressEvent().

QGroupBox.mouseReleaseEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseReleaseEvent().

QGroupBox.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QGroupBox.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QGroupBox.setAlignment (self, int)

QGroupBox.setCheckable (self, bool b)

QGroupBox.setChecked (self, bool b)

This method is also a Qt slot with the C++ signature void setChecked(bool).

QGroupBox.setFlat (self, bool b)

QGroupBox.setTitle (self, QString)

QString QGroupBox.title (self)


Qt Signal Documentation

void clicked (bool = 0)

This is the default overload of this signal.

This signal is emitted when the check box is activated (i.e. pressed down then released while the mouse cursor is inside the button), or when the shortcut key is typed, Notably, this signal is not emitted if you call setChecked().

If the check box is checked checked is true; it is false if the check box is unchecked.

This function was introduced in Qt 4.2.

See also checkable, toggled(), and checked.

void toggled (bool)

This is the default overload of this signal.

If the group box is checkable, this signal is emitted when the check box is toggled. on is true if the check box is checked; otherwise it is false.

See also checkable.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhboxlayout.html0000644000076500000240000001316312536324501020727 0ustar philstaff00000000000000 QHBoxLayout Class Reference
  Home · All Classes · Modules

QHBoxLayout Class Reference
[QtGui module]

The QHBoxLayout class lines up widgets horizontally. More...

Inherits QBoxLayout.

Methods


Detailed Description

The QHBoxLayout class lines up widgets horizontally.

This class is used to construct horizontal box layout objects. See QBoxLayout for details.

The simplest use of the class is like this:

     QWidget *window = new QWidget;
     QPushButton *button1 = new QPushButton("One");
     QPushButton *button2 = new QPushButton("Two");
     QPushButton *button3 = new QPushButton("Three");
     QPushButton *button4 = new QPushButton("Four");
     QPushButton *button5 = new QPushButton("Five");

     QHBoxLayout *layout = new QHBoxLayout;
     layout->addWidget(button1);
     layout->addWidget(button2);
     layout->addWidget(button3);
     layout->addWidget(button4);
     layout->addWidget(button5);

     window->setLayout(layout);
     window->show();

First, we create the widgets we want in the layout. Then, we create the QHBoxLayout object and add the widgets into the layout. Finally, we call QWidget.setLayout() to install the QHBoxLayout object onto the widget. At that point, the widgets in the layout are reparented to have window as their parent.

Horizontal box layout with five child widgets


Method Documentation

QHBoxLayout.__init__ (self)

Constructs a new horizontal box. You must add it to another layout.

QHBoxLayout.__init__ (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new top-level horizontal box with parent parent.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qheaderview.html0000644000076500000240000015776212536324506020677 0ustar philstaff00000000000000 QHeaderView Class Reference
  Home · All Classes · Modules

QHeaderView Class Reference
[QtGui module]

The QHeaderView class provides a header row or header column for item views. More...

Inherits QAbstractItemView.

Types

  • enum ResizeMode { Interactive, Fixed, Stretch, ResizeToContents, Custom }

Methods

Special Methods

Qt Signals


Detailed Description

The QHeaderView class provides a header row or header column for item views.

A QHeaderView displays the headers used in item views such as the QTableView and QTreeView classes. It takes the place of Qt3's QHeader class previously used for the same purpose, but uses the Qt's model/view architecture for consistency with the item view classes.

The QHeaderView class is one of the Model/View Classes and is part of Qt's model/view framework.

The header gets the data for each section from the model using the QAbstractItemModel.headerData() function. You can set the data by using QAbstractItemModel.setHeaderData().

Each header has an orientation() and a number of sections, given by the count() function. A section refers to a part of the header - either a row or a column, depending on the orientation.

Sections can be moved and resized using moveSection() and resizeSection(); they can also be hidden and shown with hideSection() and showSection().

Each section of a header is described by a section ID, specified by its section(), and can be located at a particular visualIndex() in the header. A section can have a sort indicator set with setSortIndicator(); this indicates whether the items in the associated item view will be sorted in the order given by the section.

For a horizontal header the section is equivalent to a column in the model, and for a vertical header the section is equivalent to a row in the model.

Moving Header Sections

A header can be fixed in place, or made movable with setMovable(). It can be made clickable with setClickable(), and has resizing behavior in accordance with setResizeMode().

Note: Double-clicking on a header to resize a section only applies for visible rows.

A header will emit sectionMoved() if the user moves a section, sectionResized() if the user resizes a section, and sectionClicked() as well as sectionHandleDoubleClicked() in response to mouse clicks. A header will also emit sectionCountChanged() and sectionAutoResize().

You can identify a section using the logicalIndex() and logicalIndexAt() functions, or by its index position, using the visualIndex() and visualIndexAt() functions. The visual index will change if a section is moved, but the logical index will not change.

Appearance

QTableWidget and QTableView create default headers. If you want the headers to be visible, you can use setVisible().

Not all ItemDataRoles will have an effect on a QHeaderView. If you need to draw other roles, you can subclass QHeaderView and reimplement paintEvent(). QHeaderView respects the following item data roles: TextAlignmentRole, DisplayRole, FontRole, DecorationRole, ForegroundRole, and BackgroundRole.

Note: Each header renders the data for each section itself, and does not rely on a delegate. As a result, calling a header's setItemDelegate() function will have no effect.


Type Documentation

QHeaderView.ResizeMode

The resize mode specifies the behavior of the header sections. It can be set on the entire header view or on individual sections using setResizeMode().

Constant Value Description
QHeaderView.Interactive 0 The user can resize the section. The section can also be resized programmatically using resizeSection(). The section size defaults to defaultSectionSize. (See also cascadingSectionResizes.)
QHeaderView.Fixed 2 The user cannot resize the section. The section can only be resized programmatically using resizeSection(). The section size defaults to defaultSectionSize.
QHeaderView.Stretch 1 QHeaderView will automatically resize the section to fill the available space. The size cannot be changed by the user or programmatically.
QHeaderView.ResizeToContents 3 QHeaderView will automatically resize the section to its optimal size based on the contents of the entire column or row. The size cannot be changed by the user or programmatically. (This value was introduced in 4.2)

The following values are obsolete:

Constant Value Description
QHeaderView.Custom Fixed Use Fixed instead.

See also setResizeMode(), stretchLastSection, and minimumSectionSize.


Method Documentation

QHeaderView.__init__ (self, Qt.Orientation orientation, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new generic header with the given orientation and parent.

bool QHeaderView.cascadingSectionResizes (self)

int QHeaderView.count (self)

Returns the number of sections in the header.

See also sectionCountChanged() and length().

QHeaderView.currentChanged (self, QModelIndex current, QModelIndex old)

Reimplemented from QAbstractItemView.currentChanged().

QHeaderView.dataChanged (self, QModelIndex topLeft, QModelIndex bottomRight)

Qt.Alignment QHeaderView.defaultAlignment (self)

int QHeaderView.defaultSectionSize (self)

bool QHeaderView.event (self, QEvent e)

Reimplemented from QObject.event().

QHeaderView.headerDataChanged (self, Qt.Orientation orientation, int logicalFirst, int logicalLast)

This method is also a Qt slot with the C++ signature void headerDataChanged(Qt::Orientation,int,int).

Updates the changed header sections with the given orientation, from logicalFirst to logicalLast inclusive.

int QHeaderView.hiddenSectionCount (self)

Returns the number of sections in the header that has been hidden.

This function was introduced in Qt 4.1.

See also setSectionHidden() and isSectionHidden().

QHeaderView.hideSection (self, int alogicalIndex)

Hides the section specified by logicalIndex.

See also showSection(), isSectionHidden(), hiddenSectionCount(), and setSectionHidden().

bool QHeaderView.highlightSections (self)

int QHeaderView.horizontalOffset (self)

Reimplemented from QAbstractItemView.horizontalOffset().

Returns the horizontal offset of the header. This is 0 for vertical headers.

See also offset().

QModelIndex QHeaderView.indexAt (self, QPoint p)

QHeaderView.initialize (self)

QHeaderView.initializeSections (self)

QHeaderView.initializeSections (self, int start, int end)

QHeaderView.initStyleOption (self, QStyleOptionHeader option)

Initialize option with the values from this QHeaderView. This method is useful for subclasses when they need a QStyleOptionHeader, but do not want to fill in all the information themselves.

See also QStyleOption.initFrom().

bool QHeaderView.isClickable (self)

Returns true if the header is clickable; otherwise returns false. A clickable header could be set up to allow the user to change the representation of the data in the view related to the header.

See also setClickable().

bool QHeaderView.isIndexHidden (self, QModelIndex index)

bool QHeaderView.isMovable (self)

Returns true if the header can be moved by the user; otherwise returns false.

See also setMovable().

bool QHeaderView.isSectionHidden (self, int logicalIndex)

Returns true if the section specified by logicalIndex is explicitly hidden from the user; otherwise returns false.

See also hideSection(), showSection(), setSectionHidden(), and hiddenSectionCount().

bool QHeaderView.isSortIndicatorShown (self)

int QHeaderView.length (self)

Returns the length along the orientation of the header.

See also sizeHint(), setResizeMode(), and offset().

int QHeaderView.logicalIndex (self, int visualIndex)

Returns the logicalIndex for the section at the given visualIndex position, or -1 if visualIndex < 0 or visualIndex >= QHeaderView.count().

Note that the visualIndex is not affected by hidden sections.

See also visualIndex() and sectionPosition().

int QHeaderView.logicalIndexAt (self, int position)

Returns the section that covers the given position in the viewport.

See also visualIndexAt() and isSectionHidden().

int QHeaderView.logicalIndexAt (self, int ax, int ay)

Returns the logical index of the section at the given coordinate. If the header is horizontal x will be used, otherwise y will be used to find the logical index.

int QHeaderView.logicalIndexAt (self, QPoint apos)

Returns the logical index of the section at the position given in pos. If the header is horizontal the x-coordinate will be used, otherwise the y-coordinate will be used to find the logical index.

See also sectionPosition().

int QHeaderView.minimumSectionSize (self)

QHeaderView.mouseDoubleClickEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseDoubleClickEvent().

QHeaderView.mouseMoveEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseMoveEvent().

QHeaderView.mousePressEvent (self, QMouseEvent e)

Reimplemented from QWidget.mousePressEvent().

QHeaderView.mouseReleaseEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseReleaseEvent().

QModelIndex QHeaderView.moveCursor (self, QAbstractItemView.CursorAction, Qt.KeyboardModifiers)

QHeaderView.moveSection (self, int from, int to)

Moves the section at visual index from to occupy visual index to.

See also sectionsMoved().

int QHeaderView.offset (self)

Returns the offset of the header: this is the header's left-most (or top-most for vertical headers) visible pixel.

See also setOffset().

Qt.Orientation QHeaderView.orientation (self)

Returns the orientation of the header.

See also Qt.Orientation.

QHeaderView.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

QHeaderView.paintSection (self, QPainter painter, QRect rect, int logicalIndex)

Paints the section specified by the given logicalIndex, using the given painter and rect.

Normally, you do not have to call this function.

QHeaderView.reset (self)

Reimplemented from QAbstractItemView.reset().

ResizeMode QHeaderView.resizeMode (self, int logicalIndex)

Returns the resize mode that applies to the section specified by the given logicalIndex.

See also setResizeMode().

QHeaderView.resizeSection (self, int logicalIndex, int size)

Resizes the section specified by logicalIndex to size measured in pixels.

See also sectionResized(), resizeMode(), and sectionSize().

QHeaderView.resizeSections (self)

This method is also a Qt slot with the C++ signature void resizeSections().

Resizes the sections according to the given mode, ignoring the current resize mode.

See also resizeMode() and sectionResized().

QHeaderView.resizeSections (self, ResizeMode mode)

Resizes the sections according to their size hints. Normally, you do not have to call this function.

bool QHeaderView.restoreState (self, QByteArray state)

Restores the state of this header view. This function returns true if the state was restored; otherwise returns false.

This function was introduced in Qt 4.3.

See also saveState().

QHeaderView.rowsInserted (self, QModelIndex parent, int start, int end)

QByteArray QHeaderView.saveState (self)

Saves the current state of this header view.

To restore the saved state, pass the return value to restoreState().

This function was introduced in Qt 4.3.

See also restoreState().

QHeaderView.scrollContentsBy (self, int dx, int dy)

QHeaderView.scrollTo (self, QModelIndex index, QAbstractItemView.ScrollHint hint)

int QHeaderView.sectionPosition (self, int logicalIndex)

Returns the section position of the given logicalIndex, or -1 if the section is hidden. The position is measured in pixels from the first visible item's top-left corner to the top-left corner of the item with logicalIndex. The measurement is along the x-axis for horizontal headers and along the y-axis for vertical headers.

See also sectionViewportPosition().

QHeaderView.sectionsAboutToBeRemoved (self, QModelIndex parent, int logicalFirst, int logicalLast)

This method is also a Qt slot with the C++ signature void sectionsAboutToBeRemoved(const QModelIndex&,int,int).

This slot is called when sections are removed from the parent. logicalFirst and logicalLast signify where the sections were removed.

If only one section is removed, logicalFirst and logicalLast will be the same.

bool QHeaderView.sectionsHidden (self)

Returns true if sections in the header has been hidden; otherwise returns false;

This function was introduced in Qt 4.1.

See also setSectionHidden().

QHeaderView.sectionsInserted (self, QModelIndex parent, int logicalFirst, int logicalLast)

This method is also a Qt slot with the C++ signature void sectionsInserted(const QModelIndex&,int,int).

This slot is called when sections are inserted into the parent. logicalFirst and logicalLast indices signify where the new sections were inserted.

If only one section is inserted, logicalFirst and logicalLast will be the same.

int QHeaderView.sectionSize (self, int logicalIndex)

Returns the width (or height for vertical headers) of the given logicalIndex.

See also length(), setResizeMode(), and defaultSectionSize().

QSize QHeaderView.sectionSizeFromContents (self, int logicalIndex)

Returns the size of the contents of the section specified by the given logicalIndex.

See also defaultSectionSize().

int QHeaderView.sectionSizeHint (self, int logicalIndex)

Returns a suitable size hint for the section specified by logicalIndex.

See also sizeHint(), defaultSectionSize(), minimumSectionSize(), and Qt.SizeHintRole.

bool QHeaderView.sectionsMoved (self)

Returns true if sections in the header has been moved; otherwise returns false;

See also moveSection().

int QHeaderView.sectionViewportPosition (self, int logicalIndex)

Returns the section viewport position of the given logicalIndex.

If the section is hidden, the return value is undefined.

See also sectionPosition() and isSectionHidden().

QHeaderView.setCascadingSectionResizes (self, bool enable)

QHeaderView.setClickable (self, bool clickable)

If clickable is true, the header will respond to single clicks.

See also isClickable(), sectionClicked(), sectionPressed(), and setSortIndicatorShown().

QHeaderView.setDefaultAlignment (self, Qt.Alignment alignment)

QHeaderView.setDefaultSectionSize (self, int size)

QHeaderView.setHighlightSections (self, bool highlight)

QHeaderView.setMinimumSectionSize (self, int size)

QHeaderView.setModel (self, QAbstractItemModel model)

Reimplemented from QAbstractItemView.setModel().

QHeaderView.setMovable (self, bool movable)

If movable is true, the header may be moved by the user; otherwise it is fixed in place.

See also isMovable() and sectionMoved().

QHeaderView.setOffset (self, int offset)

This method is also a Qt slot with the C++ signature void setOffset(int).

Sets the header's offset to offset.

See also offset() and length().

QHeaderView.setOffsetToLastSection (self)

This method is also a Qt slot with the C++ signature void setOffsetToLastSection().

Sets the offset to make the last section visible.

This function was introduced in Qt 4.2.

See also setOffset(), sectionPosition(), and setOffsetToSectionPosition().

QHeaderView.setOffsetToSectionPosition (self, int visualIndex)

This method is also a Qt slot with the C++ signature void setOffsetToSectionPosition(int).

Sets the offset to the start of the section at the given visualIndex.

This function was introduced in Qt 4.2.

See also setOffset() and sectionPosition().

QHeaderView.setResizeMode (self, ResizeMode mode)

Sets the constraints on how the header can be resized to those described by the given mode.

See also resizeMode(), length(), sectionResized(), and sectionAutoResize().

QHeaderView.setResizeMode (self, int logicalIndex, ResizeMode mode)

This is an overloaded function.

Sets the constraints on how the section specified by logicalIndex in the header can be resized to those described by the given mode. The logical index should exist at the time this function is called.

Note: This setting will be ignored for the last section if the stretchLastSection property is set to true. This is the default for the horizontal headers provided by QTreeView.

See also setStretchLastSection().

QHeaderView.setSectionHidden (self, int logicalIndex, bool hide)

If hide is true the section specified by logicalIndex is hidden; otherwise the section is shown.

See also isSectionHidden() and hiddenSectionCount().

QHeaderView.setSelection (self, QRect, QItemSelectionModel.SelectionFlags)

Reimplemented from QAbstractItemView.setSelection().

Selects the items in the given rect according to the specified flags.

The base class implementation does nothing.

QHeaderView.setSortIndicator (self, int logicalIndex, Qt.SortOrder order)

Sets the sort indicator for the section specified by the given logicalIndex in the direction specified by order, and removes the sort indicator from any other section that was showing it.

logicalIndex may be -1, in which case no sort indicator will be shown and the model will return to its natural, unsorted order. Note that not all models support this and may even crash in this case.

See also sortIndicatorSection() and sortIndicatorOrder().

QHeaderView.setSortIndicatorShown (self, bool show)

QHeaderView.setStretchLastSection (self, bool stretch)

QHeaderView.showSection (self, int alogicalIndex)

Shows the section specified by logicalIndex.

See also hideSection(), isSectionHidden(), hiddenSectionCount(), and setSectionHidden().

QSize QHeaderView.sizeHint (self)

Reimplemented from QWidget.sizeHint().

Returns a suitable size hint for this header.

See also sectionSizeHint().

Qt.SortOrder QHeaderView.sortIndicatorOrder (self)

Returns the order for the sort indicator. If no section has a sort indicator the return value of this function is undefined.

See also setSortIndicator() and sortIndicatorSection().

int QHeaderView.sortIndicatorSection (self)

Returns the logical index of the section that has a sort indicator. By default this is section 0.

See also setSortIndicator(), sortIndicatorOrder(), and setSortIndicatorShown().

bool QHeaderView.stretchLastSection (self)

int QHeaderView.stretchSectionCount (self)

Returns the number of sections that are set to resize mode stretch. In views, this can be used to see if the headerview needs to resize the sections when the view's geometry changes.

This function was introduced in Qt 4.1.

See also stretchLastSection and resizeMode().

QHeaderView.swapSections (self, int first, int second)

Swaps the section at visual index first with the section at visual index second.

This function was introduced in Qt 4.2.

See also moveSection().

QHeaderView.updateGeometries (self)

QHeaderView.updateSection (self, int logicalIndex)

This method is also a Qt slot with the C++ signature void updateSection(int).

int QHeaderView.verticalOffset (self)

Reimplemented from QAbstractItemView.verticalOffset().

Returns the vertical offset of the header. This is 0 for horizontal headers.

See also offset().

bool QHeaderView.viewportEvent (self, QEvent e)

Reimplemented from QAbstractScrollArea.viewportEvent().

int QHeaderView.visualIndex (self, int logicalIndex)

Returns the visual index position of the section specified by the given logicalIndex, or -1 otherwise.

Hidden sections still have valid visual indexes.

See also logicalIndex().

int QHeaderView.visualIndexAt (self, int position)

Returns the visual index of the section that covers the given position in the viewport.

See also logicalIndexAt().

QRect QHeaderView.visualRect (self, QModelIndex index)

QRegion QHeaderView.visualRegionForSelection (self, QItemSelection selection)

QHeaderView.__len__ (self)


Qt Signal Documentation

void geometriesChanged ()

This is the default overload of this signal.

This signal is emitted when the header's geometries have changed.

This function was introduced in Qt 4.2.

void sectionAutoResize (int,QHeaderView::ResizeMode)

This is the default overload of this signal.

This signal is emitted when a section is automatically resized. The section's logical index is specified by logicalIndex, and the resize mode by mode.

See also setResizeMode() and stretchLastSection().

void sectionClicked (int)

This is the default overload of this signal.

This signal is emitted when a section is clicked. The section's logical index is specified by logicalIndex.

Note that the sectionPressed signal will also be emitted.

See also setClickable() and sectionPressed().

void sectionCountChanged (int,int)

This is the default overload of this signal.

This signal is emitted when the number of sections changes, i.e., when sections are added or deleted. The original count is specified by oldCount, and the new count by newCount.

See also count(), length(), and headerDataChanged().

void sectionDoubleClicked (int)

This is the default overload of this signal.

This signal is emitted when a section is double-clicked. The section's logical index is specified by logicalIndex.

See also setClickable().

void sectionEntered (int)

This is the default overload of this signal.

This signal is emitted when the cursor moves over the section and the left mouse button is pressed. The section's logical index is specified by logicalIndex.

This function was introduced in Qt 4.3.

See also setClickable() and sectionPressed().

void sectionHandleDoubleClicked (int)

This is the default overload of this signal.

This signal is emitted when a section is double-clicked. The section's logical index is specified by logicalIndex.

See also setClickable().

void sectionMoved (int,int,int)

This is the default overload of this signal.

This signal is emitted when a section is moved. The section's logical index is specified by logicalIndex, the old index by oldVisualIndex, and the new index position by newVisualIndex.

See also moveSection().

void sectionPressed (int)

This is the default overload of this signal.

This signal is emitted when a section is pressed. The section's logical index is specified by logicalIndex.

See also setClickable().

void sectionResized (int,int,int)

This is the default overload of this signal.

This signal is emitted when a section is resized. The section's logical number is specified by logicalIndex, the old size by oldSize, and the new size by newSize.

See also resizeSection().

void sortIndicatorChanged (int,Qt::SortOrder)

This is the default overload of this signal.

This signal is emitted when the section containing the sort indicator or the order indicated is changed. The section's logical index is specified by logicalIndex and the sort order is specified by order.

This function was introduced in Qt 4.3.

See also setSortIndicator().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpcontentitem.html0000644000076500000240000000757512536324517021754 0ustar philstaff00000000000000 QHelpContentItem Class Reference
  Home · All Classes · Modules

QHelpContentItem Class Reference
[QtHelp module]

The QHelpContentItem class provides an item for use with QHelpContentModel. More...

Methods


Detailed Description

The QHelpContentItem class provides an item for use with QHelpContentModel.


Method Documentation

QHelpContentItem QHelpContentItem.child (self, int row)

Returns the child of the content item in the give row.

See also parent().

int QHelpContentItem.childCount (self)

Returns the number of child items.

int QHelpContentItem.childPosition (self, QHelpContentItem child)

Returns the position of a given child.

QHelpContentItem QHelpContentItem.parent (self)

Returns the parent content item.

int QHelpContentItem.row (self)

Returns the row of this item from its parents view.

QString QHelpContentItem.title (self)

Returns the title of the content item.

QUrl QHelpContentItem.url (self)

Returns the URL of this content item.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpcontentmodel.html0000644000076500000240000001532612536324517022107 0ustar philstaff00000000000000 QHelpContentModel Class Reference
  Home · All Classes · Modules

QHelpContentModel Class Reference
[QtHelp module]

The QHelpContentModel class provides a model that supplies content to views. More...

Inherits QAbstractItemModel.

Methods

  • int columnCount (self, QModelIndex parent = QModelIndex())
  • QHelpContentItem contentItemAt (self, QModelIndex index)
  • createContents (self, QString customFilterName)
  • QVariant data (self, QModelIndex index, int role)
  • QModelIndex index (self, int row, int column, QModelIndex parent = QModelIndex())
  • bool isCreatingContents (self)
  • QModelIndex parent (self, QModelIndex index)
  • int rowCount (self, QModelIndex parent = QModelIndex())

Qt Signals


Detailed Description

The QHelpContentModel class provides a model that supplies content to views.


Method Documentation

int QHelpContentModel.columnCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.columnCount().

Returns the number of columns under the given parent. Currently returns always 1.

QHelpContentItem QHelpContentModel.contentItemAt (self, QModelIndex index)

Returns the help content item at the model index position index.

QHelpContentModel.createContents (self, QString customFilterName)

Creates new contents by querying the help system for contents specified for the customFilterName.

QVariant QHelpContentModel.data (self, QModelIndex index, int role)

Reimplemented from QAbstractItemModel.data().

Returns the data stored under the given role for the item referred to by the index.

QModelIndex QHelpContentModel.index (self, int row, int column, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.index().

Returns the index of the item in the model specified by the given row, column and parent index.

bool QHelpContentModel.isCreatingContents (self)

Returns true if the contents are currently rebuilt, otherwise false.

QModelIndex QHelpContentModel.parent (self, QModelIndex index)

Reimplemented from QAbstractItemModel.parent().

Returns the parent of the model item with the given index, or QModelIndex() if it has no parent.

int QHelpContentModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

Returns the number of rows under the given parent.


Qt Signal Documentation

void contentsCreated ()

This is the default overload of this signal.

This signal is emitted when the contents have been created.

void contentsCreationStarted ()

This is the default overload of this signal.

This signal is emitted when the creation of the contents has started. The current contents are invalid from this point on until the signal contentsCreated() is emitted.

See also isCreatingContents().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpcontentwidget.html0000644000076500000240000000537612536324517022276 0ustar philstaff00000000000000 QHelpContentWidget Class Reference
  Home · All Classes · Modules

QHelpContentWidget Class Reference
[QtHelp module]

The QHelpContentWidget class provides a tree view for displaying help content model items. More...

Inherits QTreeView.

Methods

  • QModelIndex indexOf (self, QUrl link)

Qt Signals


Detailed Description

The QHelpContentWidget class provides a tree view for displaying help content model items.


Method Documentation

QModelIndex QHelpContentWidget.indexOf (self, QUrl link)

Returns the index of the content item with the link. An invalid index is returned if no such an item exists.


Qt Signal Documentation

void linkActivated (const QUrl&)

This is the default overload of this signal.

This signal is emitted when a content item is activated and its associated link should be shown.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpengine.html0000644000076500000240000001000012536324517020641 0ustar philstaff00000000000000 QHelpEngine Class Reference
  Home · All Classes · Modules

QHelpEngine Class Reference
[
QtHelp module]

The QHelpEngine class provides access to contents and indices of the help engine. More...

Inherits QHelpEngineCore.

Methods


Detailed Description

The QHelpEngine class provides access to contents and indices of the help engine.


Method Documentation

QHelpEngine.__init__ (self, QString collectionFile, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new help engine with the given parent. The help engine uses the information stored in the collectionFile for providing help. If the collection file does not already exist, it will be created.

QHelpContentModel QHelpEngine.contentModel (self)

Returns the content model.

QHelpContentWidget QHelpEngine.contentWidget (self)

Returns the content widget.

QHelpIndexModel QHelpEngine.indexModel (self)

Returns the index model.

QHelpIndexWidget QHelpEngine.indexWidget (self)

Returns the index widget.

QHelpSearchEngine QHelpEngine.searchEngine (self)

Returns the default search engine.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpenginecore.html0000644000076500000240000004737212536324517021540 0ustar philstaff00000000000000 QHelpEngineCore Class Reference
  Home · All Classes · Modules

QHelpEngineCore Class Reference
[QtHelp module]

The QHelpEngineCore class provides the core functionality of the help system. More...

Inherits QObject.

Inherited by QHelpEngine.

Methods

Static Methods

  • QVariant metaData (QString documentationFileName, QString name)
  • QString namespaceName (QString documentationFileName)

Qt Signals


Detailed Description

The QHelpEngineCore class provides the core functionality of the help system.

Before the help engine can be used, it must be initialized by calling setupData(). At the beginning of the setup process the signal setupStarted() is emitted. From this point on until the signal setupFinished() is emitted, is the help data in an undefined meaning unusable state.

The core help engine can be used to perform different tasks. By calling linksForIdentifier() the engine returns urls specifying the file locations inside the help system. The actual file data can then be retrived by calling fileData(). In contrast to all other functions in this class, linksForIdentifier() depends on the currently set custom filter. Depending on the filter, the function may return different hits.

Every help engine can contain any number of custom filters. A custom filter is defined by a name and set of filter attributes and can be added to the help engine by calling addCustomFilter(). Analogous, it is removed by calling removeCustomFilter(). customFilters() returns all defined filters.

The help engine also offers the possibility to set and read values in a persistant way comparable to ini files or Windows registry entries. For more information see setValue() or value().

This class does not offer any GUI components or functionality for indices or contents. If you need one of those use QHelpEngine instead.

When creating a custom help viewer the viewer can be configured by writing a custom collection file which could contain various keywords to be used to configure the help engine. These keywords and values and their meaning can be found in the help information for creating a custom help collection file for Assistant.


Method Documentation

QHelpEngineCore.__init__ (self, QString collectionFile, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new core help engine with a parent. The help engine uses the information stored in the collectionFile to provide help. If the collection file does not exist yet, it'll be created.

bool QHelpEngineCore.addCustomFilter (self, QString filterName, QStringList attributes)

Adds the new custom filter filterName. The filter attributes are specified by attributes. If the filter already exists, its attribute set is replaced. The function returns true if the operation succeeded, otherwise it returns false.

See also customFilters() and removeCustomFilter().

bool QHelpEngineCore.autoSaveFilter (self)

QString QHelpEngineCore.collectionFile (self)

bool QHelpEngineCore.copyCollectionFile (self, QString fileName)

Creates the file fileName and copies all contents from the current collection file into the newly created file, and returns true if successful; otherwise returns false.

The copying process makes sure that file references to Qt Collection files (.qch) files are updated accordingly.

QString QHelpEngineCore.currentFilter (self)

QStringList QHelpEngineCore.customFilters (self)

Returns a list of custom filters.

See also addCustomFilter() and removeCustomFilter().

QVariant QHelpEngineCore.customValue (self, QString key, QVariant defaultValue = QVariant())

Returns the value assigned to the key. If the requested key does not exist, the specified defaultValue is returned.

See also setCustomValue() and removeCustomValue().

QString QHelpEngineCore.documentationFileName (self, QString namespaceName)

Returns the absolute file name of the Qt compressed help file (.qch) identified by the namespaceName. If there is no Qt compressed help file with the specified namespace registered, an empty string is returned.

See also namespaceName().

QString QHelpEngineCore.error (self)

Returns a description of the last error that occurred.

QByteArray QHelpEngineCore.fileData (self, QUrl url)

Returns the data of the file specified by url. If the file does not exist, an empty QByteArray is returned.

See also findFile().

list-of-QUrl QHelpEngineCore.files (self, QString namespaceName, QStringList filterAttributes, QString extensionFilter = QString())

Returns a list of files contained in the Qt compressed help file namespaceName. The files can be filtered by filterAttributes as well as by their extension extensionFilter (e.g. 'html').

QStringList QHelpEngineCore.filterAttributes (self)

Returns a list of all defined filter attributes.

QStringList QHelpEngineCore.filterAttributes (self, QString filterName)

Returns a list of filter attributes used by the custom filter filterName.

list-of-QStringList QHelpEngineCore.filterAttributeSets (self, QString namespaceName)

Returns a list of filter attributes for the different filter sections defined in the Qt compressed help file with the given namespace namespaceName.

QUrl QHelpEngineCore.findFile (self, QUrl url)

Returns an invalid URL if the file url cannot be found. If the file exists, either the same url is returned or a different url if the file is located in a different namespace which is merged via a common virtual folder.

dict-of-QString-QUrl QHelpEngineCore.linksForIdentifier (self, QString id)

Returns a map of hits found for the id. A hit contains the title of the document and the url where the keyword is located. The result depends on the current filter, meaning only the keywords registered for the current filter will be returned.

QVariant QHelpEngineCore.metaData (QString documentationFileName, QString name)

Returns the meta data for the Qt compressed help file documentationFileName. If there is no data available for name, an invalid QVariant() is returned. The meta data is defined when creating the Qt compressed help file and cannot be modified later. Common meta data includes e.g. the author of the documentation.

QString QHelpEngineCore.namespaceName (QString documentationFileName)

Returns the namespace name defined for the Qt compressed help file (.qch) specified by its documentationFileName. If the file is not valid, an empty string is returned.

See also documentationFileName().

bool QHelpEngineCore.registerDocumentation (self, QString documentationFileName)

Registers the Qt compressed help file (.qch) contained in the file documentationFileName. One compressed help file, uniquely identified by its namespace can only be registered once. True is returned if the registration was successful, otherwise false.

See also unregisterDocumentation() and error().

QStringList QHelpEngineCore.registeredDocumentations (self)

Returns a list of all registered Qt compressed help files of the current collection file. The returned names are the namespaces of the registered Qt compressed help files (.qch).

bool QHelpEngineCore.removeCustomFilter (self, QString filterName)

Returns true if the filter filterName was removed successfully, otherwise false.

See also addCustomFilter() and customFilters().

bool QHelpEngineCore.removeCustomValue (self, QString key)

Removes the key from the settings section in the collection file. Returns true if the value was removed successfully, otherwise false.

See also customValue() and setCustomValue().

QHelpEngineCore.setAutoSaveFilter (self, bool save)

QHelpEngineCore.setCollectionFile (self, QString fileName)

QHelpEngineCore.setCurrentFilter (self, QString filterName)

bool QHelpEngineCore.setCustomValue (self, QString key, QVariant value)

Save the value under the key. If the key already exist, the value will be overwritten. Returns true if the value was saved successfully, otherwise false.

See also customValue() and removeCustomValue().

bool QHelpEngineCore.setupData (self)

Sets up the help engine by processing the information found in the collection file and returns true if successful; otherwise returns false.

By calling the function, the help engine is forced to initialize itself immediately. Most of the times, this function does not have to be called explicitly because getter functions which depend on a correctly set up help engine do that themselves.

Note: qsqlite4.dll needs to be deployed with the application as the help system uses the sqlite driver when loading help collections.

bool QHelpEngineCore.unregisterDocumentation (self, QString namespaceName)

Unregisters the Qt compressed help file (.qch) identified by its namespaceName from the help collection. Returns true on success, otherwise false.

See also registerDocumentation() and error().


Qt Signal Documentation

void currentFilterChanged (const QString&)

This is the default overload of this signal.

This signal is emitted when the current filter is changed to newFilter.

void setupFinished ()

This is the default overload of this signal.

This signal is emitted when the setup is complete.

void setupStarted ()

This is the default overload of this signal.

This signal is emitted when setup is started.

void warning (const QString&)

This is the default overload of this signal.

This signal is emitted when a non critical error occurs. The warning message is stored in msg.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpevent.html0000644000076500000240000001347312536324503020531 0ustar philstaff00000000000000 QHelpEvent Class Reference
  Home · All Classes · Modules

QHelpEvent Class Reference
[
QtGui module]

The QHelpEvent class provides an event that is used to request helpful information about a particular point in a widget. More...

Inherits QEvent.

Methods


Detailed Description

The QHelpEvent class provides an event that is used to request helpful information about a particular point in a widget.

This event can be intercepted in applications to provide tooltips or "What's This?" help for custom widgets. The type() can be either QEvent.ToolTip or QEvent.WhatsThis.


Method Documentation

QHelpEvent.__init__ (self, QEvent.Type type, QPoint pos, QPoint globalPos)

Constructs a help event with the given type corresponding to the widget-relative position specified by pos and the global position specified by globalPos.

type must be either QEvent.ToolTip or QEvent.WhatsThis.

See also pos() and globalPos().

QHelpEvent.__init__ (self, QHelpEvent)

QPoint QHelpEvent.globalPos (self)

Returns the mouse cursor position when the event was generated in global coordinates.

See also pos(), globalX(), and globalY().

int QHelpEvent.globalX (self)

Same as globalPos().x().

See also x(), globalY(), and globalPos().

int QHelpEvent.globalY (self)

Same as globalPos().y().

See also y(), globalX(), and globalPos().

QPoint QHelpEvent.pos (self)

Returns the mouse cursor position when the event was generated, relative to the widget to which the event is dispatched.

See also globalPos(), x(), and y().

int QHelpEvent.x (self)

Same as pos().x().

See also y(), pos(), and globalPos().

int QHelpEvent.y (self)

Same as pos().y().

See also x(), pos(), and globalPos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpindexmodel.html0000644000076500000240000001125612536324517021542 0ustar philstaff00000000000000 QHelpIndexModel Class Reference
  Home · All Classes · Modules

QHelpIndexModel Class Reference
[QtHelp module]

The QHelpIndexModel class provides a model that supplies index keywords to views. More...

Inherits QStringListModel.

Methods

Qt Signals


Detailed Description

The QHelpIndexModel class provides a model that supplies index keywords to views.


Method Documentation

QHelpIndexModel.createIndex (self, QString customFilterName)

Creates a new index by querying the help system for keywords for the specified customFilterName.

QModelIndex QHelpIndexModel.filter (self, QString filter, QString wildcard = QString())

Filters the indices and returns the model index of the best matching keyword. In a first step, only the keywords containing filter are kept in the model's index list. Analogously, if wildcard is not empty, only the keywords matched are left in the index list. In a second step, the best match is determined and its index model returned. When specifying a wildcard expression, the filter string is used to search for the best match.

bool QHelpIndexModel.isCreatingIndex (self)

Returns true if the index is currently built up, otherwise false.

dict-of-QString-QUrl QHelpIndexModel.linksForKeyword (self, QString keyword)

Returns all hits found for the keyword. A hit consists of the URL and the document title.


Qt Signal Documentation

void indexCreated ()

This is the default overload of this signal.

This signal is emitted when the index has been created.

void indexCreationStarted ()

This is the default overload of this signal.

This signal is emitted when the creation of a new index has started. The current index is invalid from this point on until the signal indexCreated() is emitted.

See also isCreatingIndex().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpindexwidget.html0000644000076500000240000001037612536324517021727 0ustar philstaff00000000000000 QHelpIndexWidget Class Reference
  Home · All Classes · Modules

QHelpIndexWidget Class Reference
[QtHelp module]

The QHelpIndexWidget class provides a list view displaying the QHelpIndexModel. More...

Inherits QListView.

Methods

Qt Signals


Detailed Description

The QHelpIndexWidget class provides a list view displaying the QHelpIndexModel.


Method Documentation

QHelpIndexWidget.activateCurrentItem (self)

This method is also a Qt slot with the C++ signature void activateCurrentItem().

Activates the current item which will result eventually in the emitting of a linkActivated() or linksActivated() signal.

QHelpIndexWidget.filterIndices (self, QString filter, QString wildcard = QString())

This method is also a Qt slot with the C++ signature void filterIndices(const QString&,const QString& = QString()).

Filters the indices according to filter or wildcard. The item with the best match is set as current item.

See also QHelpIndexModel.filter().


Qt Signal Documentation

void linkActivated (const QUrl&,const QString&)

This is the default overload of this signal.

This signal is emitted when an item is activated and its associated link should be shown. To know where the link belongs to, the keyword is given as a second paremeter.

void linksActivated (const QMap<QString,QUrl>&,const QString&)

This is the default overload of this signal.

This signal is emitted when the item representing the keyword is activated and the item has more than one link associated. The links consist of the document title and their URL.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpsearchengine.html0000644000076500000240000002446112536324517022047 0ustar philstaff00000000000000 QHelpSearchEngine Class Reference
  Home · All Classes · Modules

QHelpSearchEngine Class Reference
[
QtHelp module]

The QHelpSearchEngine class provides access to widgets reusable to integrate fulltext search as well as to index and search documentation. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QHelpSearchEngine class provides access to widgets reusable to integrate fulltext search as well as to index and search documentation.

Before the search engine can be used, one has to instantiate at least a QHelpEngineCore object that needs to be passed to the search engines constructor. This is required as the search engine needs to be connected to the help engines setupFinished() signal to know when it can start to index documentation.

After starting the indexing process the signal indexingStarted() is emitted and on the end of the indexing process the indexingFinished() is emitted. To stop the indexing one can call cancelIndexing().

While the indexing process has finished, the search engine can now be used to search thru its index for a given term. To do this one may use the possibility of creating the QHelpSearchQuery list by self or reuse the QHelpSearchQueryWidget which has the inbuild functionality to set up a proper search queries list that get's passed to the search engines search() function.

After the list of queries have been passed to the search engine, the signal searchingStarted() is emitted and after the search has finished the searchingFinished() signal is emitted. The search process can be stopped by calling cancelSearching().

If the search succeeds, the searchingFinished() will be called with the search hits count, which can be reused to fetch the search hits from the search engine. Calling the hits() function with the range of hits you would like to get will return a list of the requested SearchHits. They basically constist at the moment of a pair of strings where the values of that pair are the documentation file path and the page title.

To display the given hits use the QHelpSearchResultWidget or build up your own one if you need more advanced functionality. Note that the QHelpSearchResultWidget can not be instantiated directly, you must retrieve the widget from the search engine in use as all connections will be established for you by the widget itself.


Method Documentation

QHelpSearchEngine.__init__ (self, QHelpEngineCore helpEngine, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new search engine with the given parent. The search engine uses the given helpEngine to access the documentation that needs to be indexed. The QHelpEngine's setupFinished() signal is automatically connected to the QHelpSearchEngine's indexing function, so that new documentation will be indexed after the signal is emitted.

QHelpSearchEngine.cancelIndexing (self)

This method is also a Qt slot with the C++ signature void cancelIndexing().

Stops the indexing process.

QHelpSearchEngine.cancelSearching (self)

This method is also a Qt slot with the C++ signature void cancelSearching().

Stops the search process.

int QHelpSearchEngine.hitCount (self)

Returns the amount of hits the search engine found.

This function was introduced in Qt 4.6.

list-of-tuple-of-QString-QString QHelpSearchEngine.hits (self, int start, int end)

Returns a list of search hits within the range of start end.

int QHelpSearchEngine.hitsCount (self)

list-of-QHelpSearchQuery QHelpSearchEngine.query (self)

Returns the list of queries last searched for.

This function was introduced in Qt 4.5.

QHelpSearchQueryWidget QHelpSearchEngine.queryWidget (self)

Returns a widget to use as input widget. Depending on your search engine configuration you will get a different widget with more or less subwidgets.

QHelpSearchEngine.reindexDocumentation (self)

This method is also a Qt slot with the C++ signature void reindexDocumentation().

Forces the search engine to reindex all documentation files.

QHelpSearchResultWidget QHelpSearchEngine.resultWidget (self)

Returns a widget that can hold and display the search results.

QHelpSearchEngine.search (self, list-of-QHelpSearchQuery queryList)

This method is also a Qt slot with the C++ signature void search(const QList<QHelpSearchQuery>&).

Starts the search process using the given list of queries queryList build by the search field name and the values to search for.


Qt Signal Documentation

void indexingFinished ()

This is the default overload of this signal.

This signal is emitted when the indexing process is complete.

void indexingStarted ()

This is the default overload of this signal.

This signal is emitted when indexing process is started.

void searchingFinished (int)

This is the default overload of this signal.

This signal is emitted when the search process is complete. The hit count is stored in hits.

void searchingStarted ()

This is the default overload of this signal.

This signal is emitted when the search process is started.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpsearchquery.html0000644000076500000240000001212012536324517021734 0ustar philstaff00000000000000 QHelpSearchQuery Class Reference
  Home · All Classes · Modules

QHelpSearchQuery Class Reference
[
QtHelp module]

The QHelpSearchQuery class contains the field name and the associated search term More...

Types

  • enum FieldName { DEFAULT, FUZZY, WITHOUT, PHRASE, ALL, ATLEAST }

Methods


Detailed Description

The QHelpSearchQuery class contains the field name and the associated search term

The QHelpSearchQuery class contains the field name and the associated search term. Depending on the field the search term might get split up into separate terms to be parsed differently by the search engine.


Type Documentation

QHelpSearchQuery.FieldName

This enum type specifies the field names that are handled by the search engine.

Constant Value Description
QHelpSearchQuery.DEFAULT 0 the default field provided by the search widget, several terms should be split and stored in the word list except search terms enclosed in quotes.
QHelpSearchQuery.FUZZY 1 a field only provided in use with clucene. Terms should be split in separate words and passed to the search engine.
QHelpSearchQuery.WITHOUT 2 a field only provided in use with clucene. Terms should be split in separate words and passed to the search engine.
QHelpSearchQuery.PHRASE 3 a field only provided in use with clucene. Terms should not be split in separate words.
QHelpSearchQuery.ALL 4 a field only provided in use with clucene. Terms should be split in separate words and passed to the search engine
QHelpSearchQuery.ATLEAST 5 a field only provided in use with clucene. Terms should be split in separate words and passed to the search engine

Method Documentation

QHelpSearchQuery.__init__ (self)

Constructs a new empty QHelpSearchQuery.

QHelpSearchQuery.__init__ (self, FieldName field, QStringList wordList)

Constructs a new QHelpSearchQuery and initializes it with the given field and wordList.

QHelpSearchQuery.__init__ (self, QHelpSearchQuery)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpsearchquerywidget.html0000644000076500000240000001225412536324517023150 0ustar philstaff00000000000000 QHelpSearchQueryWidget Class Reference
  Home · All Classes · Modules

QHelpSearchQueryWidget Class Reference
[QtHelp module]

The QHelpSearchQueryWidget class provides a simple line edit or an advanced widget to enable the user to input a search term in a standardized input mask. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QHelpSearchQueryWidget class provides a simple line edit or an advanced widget to enable the user to input a search term in a standardized input mask.


Method Documentation

QHelpSearchQueryWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new search query widget with the given parent.

QHelpSearchQueryWidget.collapseExtendedSearch (self)

Collapses the search query widget so that only the default search field is shown.

This function was introduced in Qt 4.8.

QHelpSearchQueryWidget.expandExtendedSearch (self)

Expands the search query widget so that the extended search fields are shown.

This function was introduced in Qt 4.8.

list-of-QHelpSearchQuery QHelpSearchQueryWidget.query (self)

Returns a list of queries to use in combination with the search engines search(QList<QHelpSearchQuery> &queryList) function.

See also setQuery().

QHelpSearchQueryWidget.setQuery (self, list-of-QHelpSearchQuery queryList)

Sets the QHelpSearchQueryWidget input fields to the values specified by queryList search field name. Please note that one has to call the search engine's search(QList<QHelpSearchQuery> &queryList) function to perform the actual search.

This function was introduced in Qt 4.8.

See also query().


Qt Signal Documentation

void search ()

This is the default overload of this signal.

This signal is emitted when a the user has the search button invoked. After reciving the signal you can ask the QHelpSearchQueryWidget for the build list of QHelpSearchQuery's that you may pass to the QHelpSearchEngine's search() function.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhelpsearchresultwidget.html0000644000076500000240000000561212536324517023321 0ustar philstaff00000000000000 QHelpSearchResultWidget Class Reference
  Home · All Classes · Modules

QHelpSearchResultWidget Class Reference
[QtHelp module]

The QHelpSearchResultWidget class provides either a tree widget or a text browser depending on the used search engine to display the hits found by the search. More...

Inherits QWidget.

Methods

  • QUrl linkAt (self, QPoint point)

Qt Signals


Detailed Description

The QHelpSearchResultWidget class provides either a tree widget or a text browser depending on the used search engine to display the hits found by the search.


Method Documentation

QUrl QHelpSearchResultWidget.linkAt (self, QPoint point)

Returns a reference of the URL that the item at point owns, or an empty URL if no item exists at that point.


Qt Signal Documentation

void requestShowLink (const QUrl&)

This is the default overload of this signal.

This signal is emitted when a item is activated and its associated link should be shown.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhideevent.html0000644000076500000240000000565612536324503020516 0ustar philstaff00000000000000 QHideEvent Class Reference
  Home · All Classes · Modules

QHideEvent Class Reference
[
QtGui module]

The QHideEvent class provides an event which is sent after a widget is hidden. More...

Inherits QEvent.

Methods


Detailed Description

The QHideEvent class provides an event which is sent after a widget is hidden.

This event is sent just before QWidget.hide() returns, and also when a top-level window has been hidden (iconified) by the user.

If spontaneous() is true, the event originated outside the application. In this case, the user hid the window using the window manager controls, either by iconifying the window or by switching to another virtual desktop where the window isn't visible. The window will become hidden but not withdrawn. If the window was iconified, QWidget.isMinimized() returns true.


Method Documentation

QHideEvent.__init__ (self)

Constructs a QHideEvent.

QHideEvent.__init__ (self, QHideEvent)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhistorystate.html0000644000076500000240000002214512536324472021302 0ustar philstaff00000000000000 QHistoryState Class Reference
  Home · All Classes · Modules

QHistoryState Class Reference
[QtCore module]

The QHistoryState class provides a means of returning to a previously active substate. More...

Inherits QAbstractState.

Types

Methods


Detailed Description

The QHistoryState class provides a means of returning to a previously active substate.

A history state is a pseudo-state that represents the child state that the parent state was in the last time the parent state was exited. A transition with a history state as its target is in fact a transition to one of the other child states of the parent state. QHistoryState is part of The State Machine Framework.

Use the setDefaultState() function to set the state that should be entered if the parent state has never been entered. Example:

 QStateMachine machine;

 QState *s1 = new QState();
 QState *s11 = new QState(s1);
 QState *s12 = new QState(s1);

 QHistoryState *s1h = new QHistoryState(s1);
 s1h->setDefaultState(s11);

 machine.addState(s1);

 QState *s2 = new QState();
 machine.addState(s2);

 QPushButton *button = new QPushButton();
 // Clicking the button will cause the state machine to enter the child state
 // that s1 was in the last time s1 was exited, or the history state's default
 // state if s1 has never been entered.
 s1->addTransition(button, SIGNAL(clicked()), s1h);

By default a history state is shallow, meaning that it won't remember nested states. This can be configured through the historyType property.


Type Documentation

QHistoryState.HistoryType

This enum specifies the type of history that a QHistoryState records.

Constant Value Description
QHistoryState.ShallowHistory 0 Only the immediate child states of the parent state are recorded. In this case a transition with the history state as its target will end up in the immediate child state that the parent was in the last time it was exited. This is the default.
QHistoryState.DeepHistory 1 Nested states are recorded. In this case a transition with the history state as its target will end up in the most deeply nested descendant state the parent was in the last time it was exited.

Method Documentation

QHistoryState.__init__ (self, QState parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new shallow history state with the given parent state.

QHistoryState.__init__ (self, HistoryType type, QState parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new history state of the given type, with the given parent state.

QAbstractState QHistoryState.defaultState (self)

bool QHistoryState.event (self, QEvent e)

Reimplemented from QObject.event().

HistoryType QHistoryState.historyType (self)

QHistoryState.onEntry (self, QEvent event)

Reimplemented from QAbstractState.onEntry().

QHistoryState.onExit (self, QEvent event)

Reimplemented from QAbstractState.onExit().

QHistoryState.setDefaultState (self, QAbstractState state)

QHistoryState.setHistoryType (self, HistoryType type)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhostaddress.html0000644000076500000240000004322512536324517021065 0ustar philstaff00000000000000 QHostAddress Class Reference
  Home · All Classes · Modules

QHostAddress Class Reference
[QtNetwork module]

The QHostAddress class provides an IP address. More...

Types

  • enum SpecialAddress { Null, Broadcast, LocalHost, LocalHostIPv6, AnyIPv6, Any }

Methods

Static Methods

  • tuple-of-QHostAddress-int parseSubnet (QString subnet)

Special Methods

  • bool __eq__ (self, QHostAddress address)
  • bool __eq__ (self, SpecialAddress address)
  • int __hash__ (self)
  • bool __ne__ (self, QHostAddress address)
  • bool __ne__ (self, SpecialAddress address)

Detailed Description

The QHostAddress class provides an IP address.

This class holds an IPv4 or IPv6 address in a platform- and protocol-independent manner.

QHostAddress is normally used with the QTcpSocket, QTcpServer, and QUdpSocket to connect to a host or to set up a server.

A host address is set with setAddress(), and retrieved with toIPv4Address(), toIPv6Address(), or toString(). You can check the type with protocol().

Note: Please note that QHostAddress does not do DNS lookups. QHostInfo is needed for that.

The class also supports common predefined addresses: Null, LocalHost, LocalHostIPv6, Broadcast, and Any.


Type Documentation

QHostAddress.SpecialAddress

Constant Value Description
QHostAddress.Null 0 The null address object. Equivalent to QHostAddress().
QHostAddress.LocalHost 2 The IPv4 localhost address. Equivalent to QHostAddress("127.0.0.1").
QHostAddress.LocalHostIPv6 3 The IPv6 localhost address. Equivalent to QHostAddress(".1").
QHostAddress.Broadcast 1 The IPv4 broadcast address. Equivalent to QHostAddress("255.255.255.255").
QHostAddress.Any 4 The IPv4 any-address. Equivalent to QHostAddress("0.0.0.0").
QHostAddress.AnyIPv6 5 The IPv6 any-address. Equivalent to QHostAddress(".").

Method Documentation

QHostAddress.__init__ (self)

Constructs a host address object with the IP address 0.0.0.0.

See also clear().

QHostAddress.__init__ (self, SpecialAddress address)

Constructs a host address object with the IPv4 address ip4Addr.

QHostAddress.__init__ (self, int ip4Addr)

Constructs a host address object with the IPv6 address ip6Addr.

ip6Addr must be a 16-byte array in network byte order (big endian).

QHostAddress.__init__ (self, QString address)

Constructs a host address object with the IPv6 address ip6Addr.

QHostAddress.__init__ (self, 16-tuple-of-int ip6Addr)

Constructs an IPv4 or IPv6 address using the address specified by the native structure sockaddr.

See also setAddress().

QHostAddress.__init__ (self, QHostAddress copy)

Constructs an IPv4 or IPv6 address based on the string address (e.g., "127.0.0.1").

See also setAddress().

QHostAddress.clear (self)

Sets the host address to 0.0.0.0.

bool QHostAddress.isInSubnet (self, QHostAddress subnet, int netmask)

Returns true if this IP is in the subnet described by the network prefix subnet and netmask netmask.

An IP is considered to belong to a subnet if it is contained between the lowest and the highest address in that subnet. In the case of IP version 4, the lowest address is the network address, while the highest address is the broadcast address.

The subnet argument does not have to be the actual network address (the lowest address in the subnet). It can be any valid IP belonging to that subnet. In particular, if it is equal to the IP address held by this object, this function will always return true (provided the netmask is a valid value).

This function was introduced in Qt 4.5.

See also parseSubnet().

bool QHostAddress.isInSubnet (self, tuple-of-QHostAddress-int subnet)

This is an overloaded function.

Returns true if this IP is in the subnet described by subnet. The QHostAddress member of subnet contains the network prefix and the int (second) member contains the netmask (prefix length).

This function was introduced in Qt 4.5.

bool QHostAddress.isNull (self)

Returns true if this host address is null (INADDR_ANY or in6addr_any). The default constructor creates a null address, and that address is not valid for any host or interface.

tuple-of-QHostAddress-int QHostAddress.parseSubnet (QString subnet)

Parses the IP and subnet information contained in subnet and returns the network prefix for that network and its prefix length.

The IP address and the netmask must be separated by a slash (/).

This function supports arguments in the form:

  • 123.123.123.123/n where n is any value between 0 and 32
  • 123.123.123.123/255.255.255.255
  • <ipv6-address>/n where n is any value between 0 and 128

For IP version 4, this function accepts as well missing trailing components (i.e., less than 4 octets, like "192.168.1"), followed or not by a dot. If the netmask is also missing in that case, it is set to the number of octets actually passed (in the example above, it would be 24, for 3 octets).

This function was introduced in Qt 4.5.

See also isInSubnet().

QAbstractSocket.NetworkLayerProtocol QHostAddress.protocol (self)

Returns the network layer protocol of the host address.

QString QHostAddress.scopeId (self)

Returns the scope ID of an IPv6 address. For IPv4 addresses, or if the address does not contain a scope ID, an empty QString is returned.

The IPv6 scope ID specifies the scope of reachability for non-global IPv6 addresses, limiting the area in which the address can be used. All IPv6 addresses are associated with such a reachability scope. The scope ID is used to disambiguate addresses that are not guaranteed to be globally unique.

IPv6 specifies the following four levels of reachability:

  • Node-local: Addresses that are only used for communicating with services on the same interface (e.g., the loopback interface ".1").
  • Link-local: Addresses that are local to the network interface (link). There is always one link-local address for each IPv6 interface on your host. Link-local addresses ("fe80...") are generated from the MAC address of the local network adaptor, and are not guaranteed to be unique.
  • Site-local: Addresses that are local to the site / private network (e.g., the company intranet). Site-local addresses ("fec0...") are usually distributed by the site router, and are not guaranteed to be unique outside of the local site.
  • Global: For globally routable addresses, such as public servers on the Internet.

When using a link-local or site-local address for IPv6 connections, you must specify the scope ID. The scope ID for a link-local address is usually the same as the interface name (e.g., "eth0", "en1") or number (e.g., "1", "2").

This function was introduced in Qt 4.1.

See also setScopeId().

QHostAddress.setAddress (self, int ip4Addr)

Set the IPv4 address specified by ip4Addr.

bool QHostAddress.setAddress (self, QString address)

This is an overloaded function.

Set the IPv6 address specified by ip6Addr.

ip6Addr must be an array of 16 bytes in network byte order (high-order byte first).

QHostAddress.setAddress (self, 16-tuple-of-int ip6Addr)

This is an overloaded function.

Set the IPv6 address specified by ip6Addr.

QHostAddress.setScopeId (self, QString id)

Sets the IPv6 scope ID of the address to id. If the address protocol is not IPv6, this function does nothing.

This function was introduced in Qt 4.1.

See also scopeId().

int QHostAddress.toIPv4Address (self)

Returns the IPv4 address as a number.

For example, if the address is 127.0.0.1, the returned value is 2130706433 (i.e. 0x7f000001).

This value is only valid if the Protocol() is IPv4Protocol.

See also toString().

16-tuple-of-int QHostAddress.toIPv6Address (self)

Returns the IPv6 address as a Q_IPV6ADDR structure. The structure consists of 16 unsigned characters.

 Q_IPV6ADDR addr = hostAddr.toIPv6Address();
 // addr contains 16 unsigned characters

 for (int i = 0; i < 16; ++i) {
     // process addr[i]
 }

This value is only valid if the protocol() is IPv6Protocol.

See also toString().

QString QHostAddress.toString (self)

Returns the address as a string.

For example, if the address is the IPv4 address 127.0.0.1, the returned string is "127.0.0.1". For IPv6 the string format will follow the RFC5952 recommendation.

See also toIPv4Address().

bool QHostAddress.__eq__ (self, QHostAddress address)

bool QHostAddress.__eq__ (self, SpecialAddress address)

int QHostAddress.__hash__ (self)

bool QHostAddress.__ne__ (self, QHostAddress address)

bool QHostAddress.__ne__ (self, SpecialAddress address)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhostinfo.html0000644000076500000240000004356312536324517020400 0ustar philstaff00000000000000 QHostInfo Class Reference
  Home · All Classes · Modules

QHostInfo Class Reference
[QtNetwork module]

The QHostInfo class provides static functions for host name lookups. More...

Types

Methods

Static Methods


Detailed Description

The QHostInfo class provides static functions for host name lookups.

QHostInfo uses the lookup mechanisms provided by the operating system to find the IP address(es) associated with a host name, or the host name associated with an IP address. The class provides two static convenience functions: one that works asynchronously and emits a signal once the host is found, and one that blocks and returns a QHostInfo object.

To look up a host's IP addresses asynchronously, call lookupHost(), which takes the host name or IP address, a receiver object, and a slot signature as arguments and returns an ID. You can abort the lookup by calling abortHostLookup() with the lookup ID.

Example:

 // To find the IP address of qt.nokia.com
 QHostInfo.lookupHost("qt.nokia.com",
                       this, SLOT(printResults(QHostInfo)));

 // To find the host name for 4.2.2.1
 QHostInfo.lookupHost("4.2.2.1",
                       this, SLOT(printResults(QHostInfo)));

The slot is invoked when the results are ready. The results are stored in a QHostInfo object. Call addresses() to get the list of IP addresses for the host, and hostName() to get the host name that was looked up.

If the lookup failed, error() returns the type of error that occurred. errorString() gives a human-readable description of the lookup error.

If you want a blocking lookup, use the QHostInfo.fromName() function:

 QHostInfo info = QHostInfo.fromName("qt.nokia.com");

QHostInfo supports Internationalized Domain Names (IDNs) through the IDNA and Punycode standards.

To retrieve the name of the local host, use the static QHostInfo.localHostName() function.

Note: Since Qt 4.6.1 QHostInfo is using multiple threads for DNS lookup instead of one dedicated DNS thread. This improves performance, but also changes the order of signal emissions when using lookupHost() compared to previous versions of Qt. Note: Since Qt 4.6.3 QHostInfo is using a small internal 60 second DNS cache for performance improvements.


Type Documentation

QHostInfo.HostInfoError

This enum describes the various errors that can occur when trying to resolve a host name.

Constant Value Description
QHostInfo.NoError 0 The lookup was successful.
QHostInfo.HostNotFound 1 No IP addresses were found for the host.
QHostInfo.UnknownError 2 An unknown error occurred.

See also error() and setError().


Method Documentation

QHostInfo.__init__ (self, int id = -1)

Constructs an empty host info object with lookup ID id.

See also lookupId().

QHostInfo.__init__ (self, QHostInfo d)

Constructs a copy of other.

QHostInfo.abortHostLookup (int lookupId)

Aborts the host lookup with the ID id, as returned by lookupHost().

See also lookupHost() and lookupId().

list-of-QHostAddress QHostInfo.addresses (self)

Returns the list of IP addresses associated with hostName(). This list may be empty.

Example:

 QHostInfo info;
 ...
 if (!info.addresses().isEmpty()) {
     QHostAddress address = info.addresses().first();
     // use the first IP address
 }

See also setAddresses(), hostName(), and error().

HostInfoError QHostInfo.error (self)

Returns the type of error that occurred if the host name lookup failed; otherwise returns NoError.

See also setError() and errorString().

QString QHostInfo.errorString (self)

If the lookup failed, this function returns a human readable description of the error; otherwise "Unknown error" is returned.

See also setErrorString() and error().

QHostInfo QHostInfo.fromName (QString name)

Looks up the IP address(es) for the given host name. The function blocks during the lookup which means that execution of the program is suspended until the results of the lookup are ready. Returns the result of the lookup in a QHostInfo object.

If you pass a literal IP address to name instead of a host name, QHostInfo will search for the domain name for the IP (i.e., QHostInfo will perform a reverse lookup). On success, the returned QHostInfo will contain both the resolved domain name and IP addresses for the host name.

See also lookupHost().

QString QHostInfo.hostName (self)

Returns the name of the host whose IP addresses were looked up.

See also setHostName() and localHostName().

QString QHostInfo.localDomainName ()

Returns the DNS domain of this machine.

Note: DNS domains are not related to domain names found in Windows networks.

See also hostName().

QString QHostInfo.localHostName ()

Returns the host name of this machine.

See also hostName().

int QHostInfo.lookupHost (QString name, QObject receiver, SLOT(QHostInfo)SLOT() member)

Looks up the IP address(es) associated with host name name, and returns an ID for the lookup. When the result of the lookup is ready, the slot or signal member in receiver is called with a QHostInfo argument. The QHostInfo object can then be inspected to get the results of the lookup.

The lookup is performed by a single function call, for example:

 QHostInfo.lookupHost("www.kde.org",
                       this, SLOT(lookedUp(QHostInfo)));

The implementation of the slot prints basic information about the addresses returned by the lookup, or reports an error if it failed:

 void MyWidget.lookedUp(const QHostInfo &host)
 {
     if (host.error() != QHostInfo.NoError) {
         qDebug() << "Lookup failed:" << host.errorString();
         return;
     }

     foreach (const QHostAddress &address, host.addresses())
         qDebug() << "Found address:" << address.toString();
 }

If you pass a literal IP address to name instead of a host name, QHostInfo will search for the domain name for the IP (i.e., QHostInfo will perform a reverse lookup). On success, the resulting QHostInfo will contain both the resolved domain name and IP addresses for the host name. Example:

 QHostInfo.lookupHost("4.2.2.1",
                       this, SLOT(lookedUp(QHostInfo)));

Note: There is no guarantee on the order the signals will be emitted if you start multiple requests with lookupHost().

See also abortHostLookup(), addresses(), error(), and fromName().

int QHostInfo.lookupHost (QString name, callable receiver)

int QHostInfo.lookupId (self)

Returns the ID of this lookup.

See also setLookupId(), abortHostLookup(), and hostName().

QHostInfo.setAddresses (self, list-of-QHostAddress addresses)

Sets the list of addresses in this QHostInfo to addresses.

See also addresses().

QHostInfo.setError (self, HostInfoError error)

Sets the error type of this QHostInfo to error.

See also error() and errorString().

QHostInfo.setErrorString (self, QString errorString)

Sets the human readable description of the error that occurred to str if the lookup failed.

See also errorString() and setError().

QHostInfo.setHostName (self, QString name)

Sets the host name of this QHostInfo to hostName.

See also hostName().

QHostInfo.setLookupId (self, int id)

Sets the ID of this lookup to id.

See also lookupId() and lookupHost().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhoverevent.html0000644000076500000240000001366212536324503020724 0ustar philstaff00000000000000 QHoverEvent Class Reference
  Home · All Classes · Modules

QHoverEvent Class Reference
[QtGui module]

The QHoverEvent class contains parameters that describe a mouse event. More...

Inherits QEvent.

Methods

  • __init__ (self, QEvent.Type type, QPoint pos, QPoint oldPos)
  • __init__ (self, QHoverEvent)
  • QPoint oldPos (self)
  • QPoint pos (self)

Detailed Description

The QHoverEvent class contains parameters that describe a mouse event.

Mouse events occur when a mouse cursor is moved into, out of, or within a widget, and if the widget has the Qt.WA_Hover attribute.

The function pos() gives the current cursor position, while oldPos() gives the old mouse position.

There are a few similarities between the events QEvent.HoverEnter and QEvent.HoverLeave, and the events QEvent.Enter and QEvent.Leave. However, they are slightly different because we do an update() in the event handler of HoverEnter and HoverLeave.

QEvent.HoverMove is also slightly different from QEvent.MouseMove. Let us consider a top-level window A containing a child B which in turn contains a child C (all with mouse tracking enabled):

Now, if you move the cursor from the top to the bottom in the middle of A, you will get the following QEvent.MouseMove events:

  1. A.MouseMove
  2. B.MouseMove
  3. C.MouseMove

You will get the same events for QEvent.HoverMove, except that the event always propagates to the top-level regardless whether the event is accepted or not. It will only stop propagating with the Qt.WA_NoMousePropagation attribute.

In this case the events will occur in the following way:

  1. A.HoverMove
  2. A.HoverMove, B.HoverMove
  3. A.HoverMove, B.HoverMove, C.HoverMove

Method Documentation

QHoverEvent.__init__ (self, QEvent.Type type, QPoint pos, QPoint oldPos)

Constructs a hover event object.

The type parameter must be QEvent.HoverEnter, QEvent.HoverLeave, or QEvent.HoverMove.

The pos is the current mouse cursor's position relative to the receiving widget, while oldPos is the previous mouse cursor's position relative to the receiving widget.

QHoverEvent.__init__ (self, QHoverEvent)

QPoint QHoverEvent.oldPos (self)

Returns the previous position of the mouse cursor, relative to the widget that received the event. If there is no previous position, oldPos() will return the same position as pos().

On QEvent.HoverEnter events, this position will always be QPoint(-1, -1).

See also pos().

QPoint QHoverEvent.pos (self)

Returns the position of the mouse cursor, relative to the widget that received the event.

On QEvent.HoverLeave events, this position will always be QPoint(-1, -1).

See also oldPos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhttp.html0000644000076500000240000016104612536324517017523 0ustar philstaff00000000000000 QHttp Class Reference
  Home · All Classes · Modules

QHttp Class Reference
[QtNetwork module]

The QHttp class provides an implementation of the HTTP protocol. More...

Inherits QObject.

Types

  • enum ConnectionMode { ConnectionModeHttp, ConnectionModeHttps }
  • enum Error { NoError, UnknownError, HostNotFound, ConnectionRefused, ..., ProxyAuthenticationRequiredError }
  • enum State { Unconnected, HostLookup, Connecting, Sending, ..., Closing }

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, QString hostName, int port = 80, QObject parent = None)
  • __init__ (self, QString hostname, ConnectionMode mode, int port = 0, QObject parent = None)
  • abort (self)
  • int bytesAvailable (self)
  • int close (self)
  • QIODevice currentDestinationDevice (self)
  • int currentId (self)
  • QHttpRequestHeader currentRequest (self)
  • QIODevice currentSourceDevice (self)
  • Error error (self)
  • QString errorString (self)
  • int get (self, QString path, QIODevice to = None)
  • bool hasPendingRequests (self)
  • int head (self, QString path)
  • QHttpResponseHeader lastResponse (self)
  • int post (self, QString path, QIODevice data, QIODevice to = None)
  • int post (self, QString path, QByteArray data, QIODevice to = None)
  • str read (self, int maxlen)
  • QByteArray readAll (self)
  • int request (self, QHttpRequestHeader header, QIODevice data = None, QIODevice to = None)
  • int request (self, QHttpRequestHeader header, QByteArray data, QIODevice to = None)
  • int setHost (self, QString hostName, int port = 80)
  • int setHost (self, QString hostname, ConnectionMode mode, int port = 0)
  • int setProxy (self, QString host, int port, QString user = QString(), QString password = QString())
  • int setProxy (self, QNetworkProxy proxy)
  • int setSocket (self, QTcpSocket socket)
  • int setUser (self, QString userName, QString password = QString())
  • State state (self)

Qt Signals


Detailed Description

The QHttp class provides an implementation of the HTTP protocol.

This class provides a direct interface to HTTP that allows you to download and upload data with the HTTP protocol. However, for new applications, it is recommended to use QNetworkAccessManager and QNetworkReply, as those classes possess a simpler, yet more powerful API and a more modern protocol implementation.

The class works asynchronously, so there are no blocking functions. If an operation cannot be executed immediately, the function will still return straight away and the operation will be scheduled for later execution. The results of scheduled operations are reported via signals. This approach depends on the event loop being in operation.

The operations that can be scheduled (they are called "requests" in the rest of the documentation) are the following: setHost(), get(), post(), head() and request().

All of these requests return a unique identifier that allows you to keep track of the request that is currently executed. When the execution of a request starts, the requestStarted() signal with the identifier is emitted and when the request is finished, the requestFinished() signal is emitted with the identifier and a bool that indicates if the request finished with an error.

To make an HTTP request you must set up suitable HTTP headers. The following example demonstrates how to request the main HTML page from the Qt website (i.e., the URL http://qt.nokia.com/index.html):

 QHttpRequestHeader header("GET", QUrl.toPercentEncoding("/index.html"));
 header.setValue("Host", "qt.nokia.com");
 http->setHost("qt.nokia.com");
 http->request(header);

For the common HTTP requests GET, POST and HEAD, QHttp provides the convenience functions get(), post() and head(). They already use a reasonable header and if you don't have to set special header fields, they are easier to use. The above example can also be written as:

 http->setHost("qt.nokia.com");                // id == 1
 http->get(QUrl.toPercentEncoding("/index.html")); // id == 2

For this example the following sequence of signals is emitted (with small variations, depending on network traffic, etc.):

 requestStarted(1)
 requestFinished(1, false)

 requestStarted(2)
 stateChanged(Connecting)
 stateChanged(Sending)
 dataSendProgress(77, 77)
 stateChanged(Reading)
 responseHeaderReceived(responseheader)
 dataReadProgress(5388, 0)
 readyRead(responseheader)
 dataReadProgress(18300, 0)
 readyRead(responseheader)
 stateChanged(Connected)
 requestFinished(2, false)

 done(false)

 stateChanged(Closing)
 stateChanged(Unconnected)

The dataSendProgress() and dataReadProgress() signals in the above example are useful if you want to show a progress bar to inform the user about the progress of the download. The second argument is the total size of data. In certain cases it is not possible to know the total amount in advance, in which case the second argument is 0. (If you connect to a QProgressBar a total of 0 results in a busy indicator.)

When the response header is read, it is reported with the responseHeaderReceived() signal.

The readyRead() signal tells you that there is data ready to be read. The amount of data can then be queried with the bytesAvailable() function and it can be read with the read() or readAll() functions.

If an error occurs during the execution of one of the commands in a sequence of commands, all the pending commands (i.e. scheduled, but not yet executed commands) are cleared and no signals are emitted for them.

For example, if you have the following sequence of requests

 http->setHost("www.foo.bar");       // id == 1
 http->get("/index.html");           // id == 2
 http->post("register.html", data);  // id == 3

and the get() request fails because the host lookup fails, then the post() request is never executed and the signals would look like this:

 requestStarted(1)
 requestFinished(1, false)

 requestStarted(2)
 stateChanged(HostLookup)
 requestFinished(2, true)

 done(true)

 stateChanged(Unconnected)

You can then get details about the error with the error() and errorString() functions. Note that only unexpected behavior, like network failure is considered as an error. If the server response contains an error status, like a 404 response, this is reported as a normal response case. So you should always check the status code of the response header.

The functions currentId() and currentRequest() provide more information about the currently executing request.

The functions hasPendingRequests() and clearPendingRequests() allow you to query and clear the list of pending requests.


Type Documentation

QHttp.ConnectionMode

This enum is used to specify the mode of connection to use:

Constant Value Description
QHttp.ConnectionModeHttp 0 The connection is a regular HTTP connection to the server
QHttp.ConnectionModeHttps 1 The HTTPS protocol is used and the connection is encrypted using SSL.

When using the HTTPS mode, care should be taken to connect to the sslErrors signal, and handle possible SSL errors.

This enum was introduced or modified in Qt 4.3.

See also QSslSocket.

QHttp.Error

This enum identifies the error that occurred.

Constant Value Description
QHttp.NoError 0 No error occurred.
QHttp.HostNotFound 2 The host name lookup failed.
QHttp.ConnectionRefused 3 The server refused the connection.
QHttp.UnexpectedClose 4 The server closed the connection unexpectedly.
QHttp.InvalidResponseHeader 5 The server sent an invalid response header.
QHttp.WrongContentLength 6 The client could not read the content correctly because an error with respect to the content length occurred.
QHttp.Aborted 7 The request was aborted with abort().
QHttp.ProxyAuthenticationRequiredError 9 QHttp is using a proxy, and the proxy server requires authentication to establish a connection.
QHttp.AuthenticationRequiredError 8 The web server requires authentication to complete the request.
QHttp.UnknownError 1 An error other than those specified above occurred.

See also error().

QHttp.State

This enum is used to specify the state the client is in:

Constant Value Description
QHttp.Unconnected 0 There is no connection to the host.
QHttp.HostLookup 1 A host name lookup is in progress.
QHttp.Connecting 2 An attempt to connect to the host is in progress.
QHttp.Sending 3 The client is sending its request to the server.
QHttp.Reading 4 The client's request has been sent and the client is reading the server's response.
QHttp.Connected 5 The connection to the host is open, but the client is neither sending a request, nor waiting for a response.
QHttp.Closing 6 The connection is closing down, but is not yet closed. (The state will be Unconnected when the connection is closed.)

See also stateChanged() and state().


Method Documentation

QHttp.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QHttp object. The parent parameter is passed on to the QObject constructor.

QHttp.__init__ (self, QString hostName, int port = 80, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QHttp object. Subsequent requests are done by connecting to the server hostName on port port.

The parent parameter is passed on to the QObject constructor.

See also setHost().

QHttp.__init__ (self, QString hostname, ConnectionMode mode, int port = 0, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QHttp object. Subsequent requests are done by connecting to the server hostName on port port using the connection mode mode.

If port is 0, it will use the default port for the mode used (80 for Http and 443 for Https).

The parent parameter is passed on to the QObject constructor.

See also setHost().

QHttp.abort (self)

This method is also a Qt slot with the C++ signature void abort().

Aborts the current request and deletes all scheduled requests.

For the current request, the requestFinished() signal with the error argument true is emitted. For all other requests that are affected by the abort(), no signals are emitted.

Since this slot also deletes the scheduled requests, there are no requests left and the done() signal is emitted (with the error argument true).

See also clearPendingRequests().

int QHttp.bytesAvailable (self)

Returns the number of bytes that can be read from the response content at the moment.

See also get(), post(), request(), readyRead(), read(), and readAll().

QHttp.clearPendingRequests (self)

Deletes all pending requests from the list of scheduled requests. This does not affect the request that is being executed. If you want to stop this as well, use abort().

See also hasPendingRequests() and abort().

int QHttp.close (self)

Closes the connection; this is useful if you have a keep-alive connection and want to close it.

For the requests issued with get(), post() and head(), QHttp sets the connection to be keep-alive. You can also do this using the header you pass to the request() function. QHttp only closes the connection to the HTTP server if the response header requires it to do so.

The function does not block; instead, it returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.

If you want to close the connection immediately, you have to use abort() instead.

See also stateChanged(), abort(), requestStarted(), requestFinished(), and done().

QIODevice QHttp.currentDestinationDevice (self)

Returns the QIODevice pointer that is used as to store the data of the HTTP request being executed. If there is no current request or if the request does not store the data to an IO device, this function returns 0.

This function can be used to delete the QIODevice in the slot connected to the requestFinished() signal.

See also currentSourceDevice(), get(), post(), and request().

int QHttp.currentId (self)

Returns the identifier of the HTTP request being executed or 0 if there is no request being executed (i.e. they've all finished).

See also currentRequest().

QHttpRequestHeader QHttp.currentRequest (self)

Returns the request header of the HTTP request being executed. If the request is one issued by setHost() or close(), it returns an invalid request header, i.e. QHttpRequestHeader.isValid() returns false.

See also currentId().

QIODevice QHttp.currentSourceDevice (self)

Returns the QIODevice pointer that is used as the data source of the HTTP request being executed. If there is no current request or if the request does not use an IO device as the data source, this function returns 0.

This function can be used to delete the QIODevice in the slot connected to the requestFinished() signal.

See also currentDestinationDevice(), post(), and request().

Error QHttp.error (self)

Returns the last error that occurred. This is useful to find out what happened when receiving a requestFinished() or a done() signal with the error argument true.

If you start a new request, the error status is reset to NoError.

QString QHttp.errorString (self)

Returns a human-readable description of the last error that occurred. This is useful to present a error message to the user when receiving a requestFinished() or a done() signal with the error argument true.

int QHttp.get (self, QString path, QIODevice to = None)

Sends a get request for path to the server set by setHost() or as specified in the constructor.

path must be a absolute path like /index.html or an absolute URI like http://example.com/index.html and must be encoded with either QUrl.toPercentEncoding() or QUrl.encodedPath().

If the IO device to is 0 the readyRead() signal is emitted every time new content data is available to read.

If the IO device to is not 0, the content data of the response is written directly to the device. Make sure that the to pointer is valid for the duration of the operation (it is safe to delete it when the requestFinished() signal is emitted).

Request Processing

The function does not block; instead, it returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.

See also setHost(), post(), head(), request(), requestStarted(), requestFinished(), and done().

bool QHttp.hasPendingRequests (self)

Returns true if there are any requests scheduled that have not yet been executed; otherwise returns false.

The request that is being executed is not considered as a scheduled request.

See also clearPendingRequests(), currentId(), and currentRequest().

int QHttp.head (self, QString path)

Sends a header request for path to the server set by setHost() or as specified in the constructor.

path must be an absolute path like /index.html or an absolute URI like http://example.com/index.html.

The function does not block; instead, it returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.

See also setHost(), get(), post(), request(), requestStarted(), requestFinished(), and done().

QHttp.ignoreSslErrors (self)

This method is also a Qt slot with the C++ signature void ignoreSslErrors().

Tells the QSslSocket used for the Http connection to ignore the errors reported in the sslErrors() signal.

Note that this function must be called from within a slot connected to the sslErrors() signal to have any effect.

See also QSslSocket and QSslSocket.sslErrors().

QHttpResponseHeader QHttp.lastResponse (self)

Returns the received response header of the most recently finished HTTP request. If no response has yet been received QHttpResponseHeader.isValid() will return false.

See also currentRequest().

int QHttp.post (self, QString path, QIODevice data, QIODevice to = None)

Sends a post request for path to the server set by setHost() or as specified in the constructor.

path must be an absolute path like /index.html or an absolute URI like http://example.com/index.html and must be encoded with either QUrl.toPercentEncoding() or QUrl.encodedPath().

The incoming data comes via the data IO device.

If the IO device to is 0 the readyRead() signal is emitted every time new content data is available to read.

If the IO device to is not 0, the content data of the response is written directly to the device. Make sure that the to pointer is valid for the duration of the operation (it is safe to delete it when the requestFinished() signal is emitted).

The function does not block; instead, it returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.

See also setHost(), get(), head(), request(), requestStarted(), requestFinished(), and done().

int QHttp.post (self, QString path, QByteArray data, QIODevice to = None)

This is an overloaded function.

data is used as the content data of the HTTP request.

str QHttp.read (self, int maxlen)

Reads maxlen bytes from the response content into data and returns the number of bytes read. Returns -1 if an error occurred.

See also get(), post(), request(), readyRead(), bytesAvailable(), and readAll().

QByteArray QHttp.readAll (self)

Reads all the bytes from the response content and returns them.

See also get(), post(), request(), readyRead(), bytesAvailable(), and read().

int QHttp.request (self, QHttpRequestHeader header, QIODevice data = None, QIODevice to = None)

Sends a request to the server set by setHost() or as specified in the constructor. Uses the header as the HTTP request header. You are responsible for setting up a header that is appropriate for your request.

The incoming data comes via the data IO device.

If the IO device to is 0 the readyRead() signal is emitted every time new content data is available to read.

If the IO device to is not 0, the content data of the response is written directly to the device. Make sure that the to pointer is valid for the duration of the operation (it is safe to delete it when the requestFinished() signal is emitted).

The function does not block; instead, it returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.

See also setHost(), get(), post(), head(), requestStarted(), requestFinished(), and done().

int QHttp.request (self, QHttpRequestHeader header, QByteArray data, QIODevice to = None)

This is an overloaded function.

data is used as the content data of the HTTP request.

int QHttp.setHost (self, QString hostName, int port = 80)

Sets the HTTP server that is used for requests to hostName on port port.

The function does not block; instead, it returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.

See also get(), post(), head(), request(), requestStarted(), requestFinished(), and done().

int QHttp.setHost (self, QString hostname, ConnectionMode mode, int port = 0)

Sets the HTTP server that is used for requests to hostName on port port using the connection mode mode.

If port is 0, it will use the default port for the mode used (80 for HTTP and 443 for HTTPS).

The function does not block; instead, it returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.

See also get(), post(), head(), request(), requestStarted(), requestFinished(), and done().

int QHttp.setProxy (self, QString host, int port, QString user = QString(), QString password = QString())

Enables HTTP proxy support, using the proxy server host on port port. username and password can be provided if the proxy server requires authentication.

Example:

 void Ticker.getTicks()
 {
   http = new QHttp(this);
   connect(http, SIGNAL(done(bool)), this, SLOT(showPage()));
   http->setProxy("proxy.example.com", 3128);
   http->setHost("ticker.example.com");
   http->get("/ticks.asp");
 }

 void Ticker.showPage()
 {
   display(http->readAll());
 }

QHttp supports non-transparent web proxy servers only, such as the Squid Web proxy cache server (from http://www.squid.org/). For transparent proxying, such as SOCKS5, use QNetworkProxy instead.

Note: setProxy() has to be called before setHost() for it to take effect. If setProxy() is called after setHost(), then it will not apply until after setHost() is called again.

See also QFtp.setProxy().

int QHttp.setProxy (self, QNetworkProxy proxy)

This is an overloaded function.

Enables HTTP proxy support using the proxy settings from proxy. If proxy is a transparent proxy, QHttp will call QAbstractSocket.setProxy() on the underlying socket. If the type is QNetworkProxy.HttpCachingProxy, QHttp will behave like the previous function.

Note: for compatibility with Qt 4.3, if the proxy type is QNetworkProxy.HttpProxy and the request type is unencrypted (that is, ConnectionModeHttp), QHttp will treat the proxy as a caching proxy.

int QHttp.setSocket (self, QTcpSocket socket)

Replaces the internal QTcpSocket that QHttp uses with socket. This is useful if you want to use your own custom QTcpSocket subclass instead of the plain QTcpSocket that QHttp uses by default. QHttp does not take ownership of the socket, and will not delete socket when destroyed.

The function does not block; instead, it returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.

Note: If QHttp is used in a non-GUI thread that runs its own event loop, you must move socket to that thread before calling setSocket().

See also QObject.moveToThread() and Thread Support in Qt.

int QHttp.setUser (self, QString userName, QString password = QString())

This function sets the user name userName and password password for web pages that require authentication.

The function does not block; instead, it returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().

When the request is started the requestStarted() signal is emitted. When it is finished the requestFinished() signal is emitted.

State QHttp.state (self)

Returns the current state of the object. When the state changes, the stateChanged() signal is emitted.

See also State and stateChanged().


Qt Signal Documentation

void authenticationRequired (const QString&,quint16,QAuthenticator*)

This is the default overload of this signal.

This signal can be emitted when a web server on a given hostname and port requires authentication. The authenticator object can then be filled in with the required details to allow authentication and continue the connection.

Note: It is not possible to use a QueuedConnection to connect to this signal, as the connection will fail if the authenticator has not been filled in with new information when the signal returns.

This function was introduced in Qt 4.3.

See also QAuthenticator and QNetworkProxy.

void dataReadProgress (int,int)

This is the default overload of this signal.

This signal is emitted when this object reads data from a HTTP server to indicate the current progress of the download.

done is the amount of data that has already arrived and total is the total amount of data. It is possible that the total amount of data that should be transferred cannot be determined, in which case total is 0.(If you connect to a QProgressBar, the progress bar shows a busy indicator if the total is 0).

Warning: done and total are not necessarily the size in bytes, since for large files these values might need to be "scaled" to avoid overflow.

See also dataSendProgress(), get(), post(), request(), and QProgressBar.

void dataSendProgress (int,int)

This is the default overload of this signal.

This signal is emitted when this object sends data to a HTTP server to inform it about the progress of the upload.

done is the amount of data that has already arrived and total is the total amount of data. It is possible that the total amount of data that should be transferred cannot be determined, in which case total is 0.(If you connect to a QProgressBar, the progress bar shows a busy indicator if the total is 0).

Warning: done and total are not necessarily the size in bytes, since for large files these values might need to be "scaled" to avoid overflow.

See also dataReadProgress(), post(), request(), and QProgressBar.

void done (bool)

This is the default overload of this signal.

This signal is emitted when the last pending request has finished; (it is emitted after the last request's requestFinished() signal). error is true if an error occurred during the processing; otherwise error is false.

See also requestFinished(), error(), and errorString().

void proxyAuthenticationRequired (const QNetworkProxy&,QAuthenticator*)

This is the default overload of this signal.

This signal can be emitted when a proxy that requires authentication is used. The authenticator object can then be filled in with the required details to allow authentication and continue the connection.

Note: It is not possible to use a QueuedConnection to connect to this signal, as the connection will fail if the authenticator has not been filled in with new information when the signal returns.

This function was introduced in Qt 4.3.

See also QAuthenticator and QNetworkProxy.

void readyRead (const QHttpResponseHeader&)

This is the default overload of this signal.

This signal is emitted when there is new response data to read.

If you specified a device in the request where the data should be written to, then this signal is not emitted; instead the data is written directly to the device.

The response header is passed in resp.

You can read the data with the readAll() or read() functions

This signal is useful if you want to process the data in chunks as soon as it becomes available. If you are only interested in the complete data, just connect to the requestFinished() signal and read the data then instead.

See also get(), post(), request(), readAll(), read(), and bytesAvailable().

void requestFinished (int,bool)

This is the default overload of this signal.

This signal is emitted when processing the request identified by id has finished. error is true if an error occurred during the processing; otherwise error is false.

See also requestStarted(), done(), error(), and errorString().

void requestStarted (int)

This is the default overload of this signal.

This signal is emitted when processing the request identified by id starts.

See also requestFinished() and done().

void responseHeaderReceived (const QHttpResponseHeader&)

This is the default overload of this signal.

This signal is emitted when the HTTP header of a server response is available. The header is passed in resp.

See also get(), post(), head(), request(), and readyRead().

void sslErrors (const QList<QSslError>&)

This is the default overload of this signal.

Forwards the sslErrors signal from the QSslSocket used in QHttp. errors is the list of errors that occurred during the SSL handshake. Unless you call ignoreSslErrors() from within a slot connected to this signal when an error occurs, QHttp will tear down the connection immediately after emitting the signal.

This function was introduced in Qt 4.3.

See also QSslSocket and QSslSocket.ignoreSslErrors().

void stateChanged (int)

This is the default overload of this signal.

This signal is emitted when the state of the QHttp object changes. The argument state is the new state of the connection; it is one of the State values.

This usually happens when a request is started, but it can also happen when the server closes the connection or when a call to close() succeeded.

See also get(), post(), head(), request(), close(), state(), and State.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhttpheader.html0000644000076500000240000003412512536324517020671 0ustar philstaff00000000000000 QHttpHeader Class Reference
  Home · All Classes · Modules

QHttpHeader Class Reference
[QtNetwork module]

The QHttpHeader class contains header information for HTTP. More...

Inherited by QHttpRequestHeader and QHttpResponseHeader.

Methods


Detailed Description

The QHttpHeader class contains header information for HTTP.

In most cases you should use the more specialized derivatives of this class, QHttpResponseHeader and QHttpRequestHeader, rather than directly using QHttpHeader.

QHttpHeader provides the HTTP header fields. A HTTP header field consists of a name followed by a colon, a single space, and the field value. (See RFC 1945.) Field names are case-insensitive. A typical header field looks like this:

 content-type: text/html

In the API the header field name is called the "key" and the content is called the "value". You can get and set a header field's value by using its key with value() and setValue(), e.g.

 header.setValue("content-type", "text/html");
 QString contentType = header.value("content-type");

Some fields are so common that getters and setters are provided for them as a convenient alternative to using value() and setValue(), e.g. contentLength() and contentType(), setContentLength() and setContentType().

Each header key has a single value associated with it. If you set the value for a key which already exists the previous value will be discarded.


Method Documentation

QHttpHeader.__init__ (self)

Constructs an empty HTTP header.

QHttpHeader.__init__ (self, QHttpHeader header)

Constructs a copy of header.

QHttpHeader.__init__ (self, QString str)

Constructs a HTTP header for str.

This constructor parses the string str for header fields and adds this information. The str should consist of one or more "\r\n" delimited lines; each of these lines should have the format key, colon, space, value.

QHttpHeader.addValue (self, QString key, QString value)

Adds a new entry with the key and value.

QStringList QHttpHeader.allValues (self, QString key)

Returns all the entries with the given key. If no entry has this key, an empty string list is returned.

int QHttpHeader.contentLength (self)

Returns the value of the special HTTP header field content-length.

See also setContentLength() and hasContentLength().

QString QHttpHeader.contentType (self)

Returns the value of the special HTTP header field content-type.

See also setContentType() and hasContentType().

bool QHttpHeader.hasContentLength (self)

Returns true if the header has an entry for the special HTTP header field content-length; otherwise returns false.

See also contentLength() and setContentLength().

bool QHttpHeader.hasContentType (self)

Returns true if the header has an entry for the special HTTP header field content-type; otherwise returns false.

See also contentType() and setContentType().

bool QHttpHeader.hasKey (self, QString key)

Returns true if the HTTP header has an entry with the given key; otherwise returns false.

See also value(), setValue(), and keys().

bool QHttpHeader.isValid (self)

Returns true if the HTTP header is valid; otherwise returns false.

A QHttpHeader is invalid if it was created by parsing a malformed string.

QStringList QHttpHeader.keys (self)

Returns a list of the keys in the HTTP header.

See also hasKey().

int QHttpHeader.majorVersion (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the major protocol-version of the HTTP header.

int QHttpHeader.minorVersion (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the minor protocol-version of the HTTP header.

bool QHttpHeader.parse (self, QString str)

bool QHttpHeader.parseLine (self, QString line, int number)

QHttpHeader.removeAllValues (self, QString key)

Removes all the entries with the key key from the HTTP header.

QHttpHeader.removeValue (self, QString key)

Removes the entry with the key key from the HTTP header.

See also value() and setValue().

QHttpHeader.setContentLength (self, int len)

Sets the value of the special HTTP header field content-length to len.

See also contentLength() and hasContentLength().

QHttpHeader.setContentType (self, QString type)

Sets the value of the special HTTP header field content-type to type.

See also contentType() and hasContentType().

QHttpHeader.setValid (self, bool)

QHttpHeader.setValue (self, QString key, QString value)

Sets the value of the entry with the key to value.

If no entry with key exists, a new entry with the given key and value is created. If an entry with the key already exists, the first value is discarded and replaced with the given value.

See also value(), hasKey(), and removeValue().

QHttpHeader.setValues (self, list-of-tuple-of-QString-QString values)

Sets the header entries to be the list of key value pairs in values.

See also values().

QString QHttpHeader.toString (self)

Returns a string representation of the HTTP header.

The string is suitable for use by the constructor that takes a QString. It consists of lines with the format: key, colon, space, value, "\r\n".

QString QHttpHeader.value (self, QString key)

Returns the first value for the entry with the given key. If no entry has this key, an empty string is returned.

See also setValue(), removeValue(), hasKey(), and keys().

list-of-tuple-of-QString-QString QHttpHeader.values (self)

Returns all the entries in the header.

See also setValues().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhttpmultipart.html0000644000076500000240000002655212536324520021461 0ustar philstaff00000000000000 QHttpMultiPart Class Reference
  Home · All Classes · Modules

QHttpMultiPart Class Reference
[QtNetwork module]

The QHttpMultiPart class resembles a MIME multipart message to be sent over HTTP. More...

Inherits QObject.

Types

  • enum ContentType { MixedType, RelatedType, FormDataType, AlternativeType }

Methods


Detailed Description

The QHttpMultiPart class resembles a MIME multipart message to be sent over HTTP.

The QHttpMultiPart resembles a MIME multipart message, as described in RFC 2046, which is to be sent over HTTP. A multipart message consists of an arbitrary number of body parts (see QHttpPart), which are separated by a unique boundary. The boundary of the QHttpMultiPart is constructed with the string "boundary_.oOo._" followed by random characters, and provides enough uniqueness to make sure it does not occur inside the parts itself. If desired, the boundary can still be set via setBoundary().

As an example, consider the following code snippet, which constructs a multipart message containing a text part followed by an image part:

 QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart.FormDataType);

 QHttpPart textPart;
 textPart.setHeader(QNetworkRequest.ContentDispositionHeader, QVariant("form-data; name=\"text\""));
 textPart.setBody("my text");

 QHttpPart imagePart;
 imagePart.setHeader(QNetworkRequest.ContentTypeHeader, QVariant("image/jpeg"));
 imagePart.setHeader(QNetworkRequest.ContentDispositionHeader, QVariant("form-data; name=\"image\""));
 QFile *file = new QFile("image.jpg");
 file->open(QIODevice.ReadOnly);
 imagePart.setBodyDevice(file);
 file->setParent(multiPart); // we cannot delete the file now, so delete it with the multiPart

 multiPart->append(textPart);
 multiPart->append(imagePart);

 QUrl url("http://my.server.tld");
 QNetworkRequest request(url);

 QNetworkAccessManager manager;
 QNetworkReply *reply = manager.post(request, multiPart);
 multiPart->setParent(reply); // delete the multiPart with the reply
 // here connect signals etc.

Type Documentation

QHttpMultiPart.ContentType

List of known content types for a multipart subtype as described in RFC 2046 and others.

Constant Value Description
QHttpMultiPart.MixedType 0 corresponds to the "multipart/mixed" subtype, meaning the body parts are independent of each other, as described in RFC 2046.
QHttpMultiPart.RelatedType 1 corresponds to the "multipart/related" subtype, meaning the body parts are related to each other, as described in RFC 2387.
QHttpMultiPart.FormDataType 2 corresponds to the "multipart/form-data" subtype, meaning the body parts contain form elements, as described in RFC 2388.
QHttpMultiPart.AlternativeType 3 corresponds to the "multipart/alternative" subtype, meaning the body parts are alternative representations of the same information, as described in RFC 2046.

See also setContentType().


Method Documentation

QHttpMultiPart.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QHttpMultiPart with content type MixedType and sets parent as the parent object.

See also QHttpMultiPart.ContentType.

QHttpMultiPart.__init__ (self, ContentType contentType, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QHttpMultiPart with content type contentType and sets parent as the parent object.

See also QHttpMultiPart.ContentType.

QHttpMultiPart.append (self, QHttpPart httpPart)

Appends httpPart to this multipart.

QByteArray QHttpMultiPart.boundary (self)

returns the boundary.

See also setBoundary().

QHttpMultiPart.setBoundary (self, QByteArray boundary)

Sets the boundary to boundary.

Usually, you do not need to generate a boundary yourself; upon construction the boundary is initiated with the string "boundary_.oOo._" followed by random characters, and provides enough uniqueness to make sure it does not occur inside the parts itself.

See also boundary().

QHttpMultiPart.setContentType (self, ContentType contentType)

Sets the content type to contentType. The content type will be used in the HTTP header section when sending the multipart message via QNetworkAccessManager.post(). In case you want to use a multipart subtype not contained in QHttpMultiPart.ContentType, you can add the "Content-Type" header field to the QNetworkRequest by hand, and then use this request together with the multipart message for posting.

See also QHttpMultiPart.ContentType and QNetworkAccessManager.post().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhttppart.html0000644000076500000240000002616412536324517020413 0ustar philstaff00000000000000 QHttpPart Class Reference
  Home · All Classes · Modules

QHttpPart Class Reference
[QtNetwork module]

The QHttpPart class holds a body part to be used inside a HTTP multipart MIME message. More...

Methods

Special Methods

  • bool __eq__ (self, QHttpPart other)
  • bool __ne__ (self, QHttpPart other)

Detailed Description

The QHttpPart class holds a body part to be used inside a HTTP multipart MIME message.

The QHttpPart class holds a body part to be used inside a HTTP multipart MIME message (which is represented by the QHttpMultiPart class). A QHttpPart consists of a header block and a data block, which are separated by each other by two consecutive new lines. An example for one part would be:

 Content-Type: text/plain
 Content-Disposition: form-data; name="text"

 here goes the body

For setting headers, use setHeader() and setRawHeader(), which behave exactly like QNetworkRequest.setHeader() and QNetworkRequest.setRawHeader().

For reading small pieces of data, use setBody(); for larger data blocks like e.g. images, use setBodyDevice(). The latter method saves memory by not copying the data internally, but reading directly from the device. This means that the device must be opened and readable at the moment when the multipart message containing the body part is sent on the network via QNetworkAccessManager.post().

To construct a QHttpPart with a small body, consider the following snippet (this produces the data shown in the example above):

 QHttpPart textPart;
 textPart.setHeader(QNetworkRequest.ContentTypeHeader, QVariant("text/plain"));
 textPart.setHeader(QNetworkRequest.ContentDispositionHeader, QVariant("form-data; name=\"text\""));
 textPart.setBody("here goes the body");

To construct a QHttpPart reading from a device (e.g. a file), the following can be applied:

 QHttpPart imagePart;
 imagePart.setHeader(QNetworkRequest.ContentTypeHeader, QVariant("image/jpeg"));
 imagePart.setHeader(QNetworkRequest.ContentDispositionHeader, QVariant("form-data; name=\"image\""));
 imagePart.setRawHeader("Content-ID", "my@content.id"); // add any headers you like via setRawHeader()
 QFile *file = new QFile("image.jpg");
 file->open(QIODevice.ReadOnly);
 imagePart.setBodyDevice(file);

Be aware that QHttpPart does not take ownership of the device when set, so it is the developer's responsibility to destroy it when it is not needed anymore. A good idea might be to set the multipart message as parent object for the device, as documented at the documentation for QHttpMultiPart.


Method Documentation

QHttpPart.__init__ (self)

Constructs an empty QHttpPart object.

QHttpPart.__init__ (self, QHttpPart other)

Creates a copy of other.

QHttpPart.setBody (self, QByteArray body)

Sets the body of this MIME part to body. The body set with this method will be used unless the device is set via setBodyDevice(). For a large amount of data (e.g. an image), use setBodyDevice(), which will not copy the data internally.

See also setBodyDevice().

QHttpPart.setBodyDevice (self, QIODevice device)

Sets the device to read the content from to device. For large amounts of data this method should be preferred over setBody(), because the content is not copied when using this method, but read directly from the device. device must be open and readable. QHttpPart does not take ownership of device, i.e. the device must be closed and destroyed if necessary. if device is sequential (e.g. sockets, but not files), QNetworkAccessManager.post() should be called after device has emitted finished(). For unsetting the device and using data set via setBody(), use "setBodyDevice(0)".

See also setBody() and QNetworkAccessManager.post().

QHttpPart.setHeader (self, QNetworkRequest.KnownHeaders header, QVariant value)

Sets the value of the known header header to be value, overriding any previously set headers.

See also QNetworkRequest.KnownHeaders, setRawHeader(), and QNetworkRequest.setHeader().

QHttpPart.setRawHeader (self, QByteArray headerName, QByteArray headerValue)

Sets the header headerName to be of value headerValue. If headerName corresponds to a known header (see QNetworkRequest.KnownHeaders), the raw format will be parsed and the corresponding "cooked" header will be set as well.

Note: setting the same header twice overrides the previous setting. To accomplish the behaviour of multiple HTTP headers of the same name, you should concatenate the two values, separating them with a comma (",") and set one single raw header.

See also QNetworkRequest.KnownHeaders, setHeader(), and QNetworkRequest.setRawHeader().

bool QHttpPart.__eq__ (self, QHttpPart other)

bool QHttpPart.__ne__ (self, QHttpPart other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhttprequestheader.html0000644000076500000240000002063612536324517022304 0ustar philstaff00000000000000 QHttpRequestHeader Class Reference
  Home · All Classes · Modules

QHttpRequestHeader Class Reference
[QtNetwork module]

The QHttpRequestHeader class contains request header information for HTTP. More...

Inherits QHttpHeader.

Methods


Detailed Description

The QHttpRequestHeader class contains request header information for HTTP.

This class is used in the QHttp class to report the header information if the client requests something from the server.

HTTP requests have a method which describes the request's action. The most common requests are "GET" and "POST". In addition to the request method the header also includes a request-URI to specify the location for the method to use.

The method, request-URI and protocol-version can be set using a constructor or later using setRequest(). The values can be obtained using method(), path(), majorVersion() and minorVersion().

Note that the request-URI must be in the format expected by the HTTP server. That is, all reserved characters must be encoded in %HH (where HH are two hexadecimal digits). See QUrl.toPercentEncoding() for more information.

Important inherited functions: setValue() and value().


Method Documentation

QHttpRequestHeader.__init__ (self)

Constructs an empty HTTP request header.

QHttpRequestHeader.__init__ (self, QString method, QString path, int major = 1, int minor = 1)

Constructs a HTTP request header for the method method, the request-URI path and the protocol-version majorVer and minorVer. The path argument must be properly encoded for an HTTP request.

QHttpRequestHeader.__init__ (self, QHttpRequestHeader header)

Constructs a copy of header.

QHttpRequestHeader.__init__ (self, QString str)

Constructs a HTTP request header from the string str. The str should consist of one or more "\r\n" delimited lines; the first line should be the request-line (format: method, space, request-URI, space HTTP-version); each of the remaining lines should have the format key, colon, space, value.

int QHttpRequestHeader.majorVersion (self)

Reimplemented from QHttpHeader.majorVersion().

Returns the major protocol-version of the HTTP request header.

See also minorVersion(), method(), path(), and setRequest().

QString QHttpRequestHeader.method (self)

Returns the method of the HTTP request header.

See also path(), majorVersion(), minorVersion(), and setRequest().

int QHttpRequestHeader.minorVersion (self)

Reimplemented from QHttpHeader.minorVersion().

Returns the minor protocol-version of the HTTP request header.

See also majorVersion(), method(), path(), and setRequest().

bool QHttpRequestHeader.parseLine (self, QString line, int number)

QString QHttpRequestHeader.path (self)

QHttpRequestHeader.setRequest (self, QString method, QString path, int major = 1, int minor = 1)

This function sets the request method to method, the request-URI to path and the protocol-version to majorVer and minorVer. The path argument must be properly encoded for an HTTP request.

See also method(), path(), majorVersion(), and minorVersion().

QString QHttpRequestHeader.toString (self)

Reimplemented from QHttpHeader.toString().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qhttpresponseheader.html0000644000076500000240000002061512536324517022447 0ustar philstaff00000000000000 QHttpResponseHeader Class Reference
  Home · All Classes · Modules

QHttpResponseHeader Class Reference
[QtNetwork module]

The QHttpResponseHeader class contains response header information for HTTP. More...

Inherits QHttpHeader.

Methods


Detailed Description

The QHttpResponseHeader class contains response header information for HTTP.

This class is used by the QHttp class to report the header information that the client received from the server.

HTTP responses have a status code that indicates the status of the response. This code is a 3-digit integer result code (for details see to RFC 1945). In addition to the status code, you can also specify a human-readable text that describes the reason for the code ("reason phrase"). This class allows you to get the status code and the reason phrase.


Method Documentation

QHttpResponseHeader.__init__ (self)

Constructs an empty HTTP response header.

QHttpResponseHeader.__init__ (self, QHttpResponseHeader header)

Constructs a copy of header.

QHttpResponseHeader.__init__ (self, QString str)

Constructs a HTTP response header from the string str. The string is parsed and the information is set. The str should consist of one or more "\r\n" delimited lines; the first line should be the status-line (format: HTTP-version, space, status-code, space, reason-phrase); each of remaining lines should have the format key, colon, space, value.

QHttpResponseHeader.__init__ (self, int code, QString text = QString(), int major = 1, int minor = 1)

Constructs a QHttpResponseHeader, setting the status code to code, the reason phrase to text and the protocol-version to majorVer and minorVer.

This function was introduced in Qt 4.1.

See also statusCode(), reasonPhrase(), majorVersion(), and minorVersion().

int QHttpResponseHeader.majorVersion (self)

Reimplemented from QHttpHeader.majorVersion().

Returns the major protocol-version of the HTTP response header.

See also minorVersion(), statusCode(), and reasonPhrase().

int QHttpResponseHeader.minorVersion (self)

Reimplemented from QHttpHeader.minorVersion().

Returns the minor protocol-version of the HTTP response header.

See also majorVersion(), statusCode(), and reasonPhrase().

bool QHttpResponseHeader.parseLine (self, QString line, int number)

QString QHttpResponseHeader.reasonPhrase (self)

Returns the reason phrase of the HTTP response header.

See also statusCode(), majorVersion(), and minorVersion().

QHttpResponseHeader.setStatusLine (self, int code, QString text = QString(), int major = 1, int minor = 1)

Sets the status code to code, the reason phrase to text and the protocol-version to majorVer and minorVer.

This function was introduced in Qt 4.1.

See also statusCode(), reasonPhrase(), majorVersion(), and minorVersion().

int QHttpResponseHeader.statusCode (self)

Returns the status code of the HTTP response header.

See also reasonPhrase(), majorVersion(), and minorVersion().

QString QHttpResponseHeader.toString (self)

Reimplemented from QHttpHeader.toString().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qicon.html0000644000076500000240000006550612536324506017476 0ustar philstaff00000000000000 QIcon Class Reference
  Home · All Classes · Modules

QIcon Class Reference
[QtGui module]

The QIcon class provides scalable icons in different modes and states. More...

Types

  • enum Mode { Normal, Disabled, Active, Selected }
  • enum State { On, Off }

Methods

  • __init__ (self)
  • __init__ (self, QPixmap pixmap)
  • __init__ (self, QIcon other)
  • __init__ (self, QString fileName)
  • __init__ (self, QIconEngine engine)
  • __init__ (self, QIconEngineV2 engine)
  • __init__ (self, QVariant variant)
  • QSize actualSize (self, QSize size, Mode mode = QIcon.Normal, State state = QIcon.Off)
  • addFile (self, QString fileName, QSize size = QSize(), Mode mode = QIcon.Normal, State state = QIcon.Off)
  • addPixmap (self, QPixmap pixmap, Mode mode = QIcon.Normal, State state = QIcon.Off)
  • list-of-QSize availableSizes (self, Mode mode = QIcon.Normal, State state = QIcon.Off)
  • int cacheKey (self)
  • bool isDetached (self)
  • bool isNull (self)
  • QString name (self)
  • paint (self, QPainter painter, QRect rect, Qt.Alignment alignment = Qt.AlignCenter, Mode mode = QIcon.Normal, State state = QIcon.Off)
  • paint (self, QPainter painter, int x, int y, int w, int h, Qt.Alignment alignment = Qt.AlignCenter, Mode mode = QIcon.Normal, State state = QIcon.Off)
  • QPixmap pixmap (self, QSize size, Mode mode = QIcon.Normal, State state = QIcon.Off)
  • QPixmap pixmap (self, int w, int h, Mode mode = QIcon.Normal, State state = QIcon.Off)
  • QPixmap pixmap (self, int extent, Mode mode = QIcon.Normal, State state = QIcon.Off)
  • int serialNumber (self)
  • swap (self, QIcon other)

Static Methods


Detailed Description

The QIcon class provides scalable icons in different modes and states.

A QIcon can generate smaller, larger, active, and disabled pixmaps from the set of pixmaps it is given. Such pixmaps are used by Qt widgets to show an icon representing a particular action.

The simplest use of QIcon is to create one from a QPixmap file or resource, and then use it, allowing Qt to work out all the required icon styles and sizes. For example:

 QToolButton *button = new QToolButton;
 button->setIcon(QIcon("open.xpm"));

To undo a QIcon, simply set a null icon in its place:

 button->setIcon(QIcon());

Use the QImageReader.supportedImageFormats() and QImageWriter.supportedImageFormats() functions to retrieve a complete list of the supported file formats.

When you retrieve a pixmap using pixmap(QSize, Mode, State), and no pixmap for this given size, mode and state has been added with addFile() or addPixmap(), then QIcon will generate one on the fly. This pixmap generation happens in a QIconEngineV2. The default engine scales pixmaps down if required, but never up, and it uses the current style to calculate a disabled appearance. By using custom icon engines, you can customize every aspect of generated icons. With QIconEnginePluginV2 it is possible to register different icon engines for different file suffixes, making it possible for third parties to provide additional icon engines to those included with Qt.

Note: Since Qt 4.2, an icon engine that supports SVG is included.

Making Classes that Use QIcon

If you write your own widgets that have an option to set a small pixmap, consider allowing a QIcon to be set for that pixmap. The Qt class QToolButton is an example of such a widget.

Provide a method to set a QIcon, and when you draw the icon, choose whichever pixmap is appropriate for the current state of your widget. For example:

 void MyWidget.drawIcon(QPainter *painter, QPoint pos)
 {
     QPixmap pixmap = icon.pixmap(QSize(22, 22),
                                    isEnabled() ? QIcon.Normal
                                                : QIcon.Disabled,
                                    isChecked() ? QIcon.On
                                                : QIcon.Off);
     painter->drawPixmap(pos, pixmap);
 }

You might also make use of the Active mode, perhaps making your widget Active when the mouse is over the widget (see QWidget.enterEvent()), while the mouse is pressed pending the release that will activate the function, or when it is the currently selected item. If the widget can be toggled, the "On" mode might be used to draw a different icon.

QIcon


Type Documentation

QIcon.Mode

This enum type describes the mode for which a pixmap is intended to be used. The currently defined modes are:

Constant Value Description
QIcon.Normal 0 Display the pixmap when the user is not interacting with the icon, but the functionality represented by the icon is available.
QIcon.Disabled 1 Display the pixmap when the functionality represented by the icon is not available.
QIcon.Active 2 Display the pixmap when the functionality represented by the icon is available and the user is interacting with the icon, for example, moving the mouse over it or clicking it.
QIcon.Selected 3 Display the pixmap when the item represented by the icon is selected.

QIcon.State

This enum describes the state for which a pixmap is intended to be used. The state can be:

Constant Value Description
QIcon.Off 1 Display the pixmap when the widget is in an "off" state
QIcon.On 0 Display the pixmap when the widget is in an "on" state

Method Documentation

QIcon.__init__ (self)

Constructs a null icon.

QIcon.__init__ (self, QPixmap pixmap)

Constructs an icon from a pixmap.

QIcon.__init__ (self, QIcon other)

Constructs a copy of other. This is very fast.

QIcon.__init__ (self, QString fileName)

Constructs an icon from the file with the given fileName. The file will be loaded on demand.

If fileName contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.

The file name can be either refer to an actual file on disk or to one of the application's embedded resources. See the Resource System overview for details on how to embed images and other resource files in the application's executable.

Use the QImageReader.supportedImageFormats() and QImageWriter.supportedImageFormats() functions to retrieve a complete list of the supported file formats.

QIcon.__init__ (self, QIconEngine engine)

The engine argument has it's ownership transferred to Qt.

Creates an icon with a specific icon engine. The icon takes ownership of the engine.

QIcon.__init__ (self, QIconEngineV2 engine)

The engine argument has it's ownership transferred to Qt.

Creates an icon with a specific icon engine. The icon takes ownership of the engine.

QIcon.__init__ (self, QVariant variant)

QSize QIcon.actualSize (self, QSize size, Mode mode = QIcon.Normal, State state = QIcon.Off)

Returns the actual size of the icon for the requested size, mode, and state. The result might be smaller than requested, but never larger.

See also pixmap() and paint().

QIcon.addFile (self, QString fileName, QSize size = QSize(), Mode mode = QIcon.Normal, State state = QIcon.Off)

Adds an image from the file with the given fileName to the icon, as a specialization for size, mode and state. The file will be loaded on demand. Note: custom icon engines are free to ignore additionally added pixmaps.

If fileName contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.

The file name can be either refer to an actual file on disk or to one of the application's embedded resources. See the Resource System overview for details on how to embed images and other resource files in the application's executable.

Use the QImageReader.supportedImageFormats() and QImageWriter.supportedImageFormats() functions to retrieve a complete list of the supported file formats.

Note: When you add a non-empty filename to a QIcon, the icon becomes non-null, even if the file doesn't exist or points to a corrupt file.

See also addPixmap().

QIcon.addPixmap (self, QPixmap pixmap, Mode mode = QIcon.Normal, State state = QIcon.Off)

Adds pixmap to the icon, as a specialization for mode and state.

Custom icon engines are free to ignore additionally added pixmaps.

See also addFile().

list-of-QSize QIcon.availableSizes (self, Mode mode = QIcon.Normal, State state = QIcon.Off)

Returns a list of available icon sizes for the specified mode and state.

This function was introduced in Qt 4.5.

int QIcon.cacheKey (self)

Returns a number that identifies the contents of this QIcon object. Distinct QIcon objects can have the same key if they refer to the same contents.

The cacheKey() will change when the icon is altered via addPixmap() or addFile().

Cache keys are mostly useful in conjunction with caching.

This function was introduced in Qt 4.3.

See also QPixmap.cacheKey().

QIcon QIcon.fromTheme (QString name, QIcon fallback = QIcon())

Returns the QIcon corresponding to name in the current icon theme. If no such icon is found in the current theme fallback is returned instead.

The latest version of the freedesktop icon specification and naming specification can be obtained here:

To fetch an icon from the current icon theme:

     QIcon undoicon = QIcon.fromTheme("edit-undo");

Or if you want to provide a guaranteed fallback for platforms that do not support theme icons, you can use the second argument:

     QIcon undoicon = QIcon.fromTheme("edit-undo", QIcon(":/undo.png"));

Note: By default, only X11 will support themed icons. In order to use themed icons on Mac and Windows, you will have to bundle a compliant theme in one of your themeSearchPaths() and set the appropriate themeName().

This function was introduced in Qt 4.6.

See also themeName(), setThemeName(), and themeSearchPaths().

bool QIcon.hasThemeIcon (QString name)

Returns true if there is an icon available for name in the current icon theme, otherwise returns false.

This function was introduced in Qt 4.6.

See also themeSearchPaths(), fromTheme(), and setThemeName().

bool QIcon.isDetached (self)

bool QIcon.isNull (self)

Returns true if the icon is empty; otherwise returns false.

An icon is empty if it has neither a pixmap nor a filename.

Note: Even a non-null icon might not be able to create valid pixmaps, eg. if the file does not exist or cannot be read.

QString QIcon.name (self)

Returns the name used to create the icon, if available.

Depending on the way the icon was created, it may have an associated name. This is the case for icons created with fromTheme() or icons using a QIconEngine which supports the QIconEngineV2.IconNameHook.

This function was introduced in Qt 4.7.

See also fromTheme() and QIconEngine.

QIcon.paint (self, QPainter painter, QRect rect, Qt.Alignment alignment = Qt.AlignCenter, Mode mode = QIcon.Normal, State state = QIcon.Off)

Uses the painter to paint the icon with specified alignment, required mode, and state into the rectangle rect.

See also actualSize() and pixmap().

QIcon.paint (self, QPainter painter, int x, int y, int w, int h, Qt.Alignment alignment = Qt.AlignCenter, Mode mode = QIcon.Normal, State state = QIcon.Off)

This is an overloaded function.

Paints the icon into the rectangle QRect(x, y, w, h).

QPixmap QIcon.pixmap (self, QSize size, Mode mode = QIcon.Normal, State state = QIcon.Off)

Returns a pixmap with the requested size, mode, and state, generating one if necessary. The pixmap might be smaller than requested, but never larger.

See also setPixmap(), actualSize(), and paint().

QPixmap QIcon.pixmap (self, int w, int h, Mode mode = QIcon.Normal, State state = QIcon.Off)

QPixmap QIcon.pixmap (self, int extent, Mode mode = QIcon.Normal, State state = QIcon.Off)

int QIcon.serialNumber (self)

QIcon.setThemeName (QString path)

Sets the current icon theme to name.

The name should correspond to a directory name in the themeSearchPath() containing an index.theme file describing it's contents.

This function was introduced in Qt 4.6.

See also themeSearchPaths() and themeName().

QIcon.setThemeSearchPaths (QStringList searchpath)

Sets the search paths for icon themes to paths.

This function was introduced in Qt 4.6.

See also themeSearchPaths(), fromTheme(), and setThemeName().

QIcon.swap (self, QIcon other)

Swaps icon other with this icon. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QString QIcon.themeName ()

Returns the name of the current icon theme.

On X11, the current icon theme depends on your desktop settings. On other platforms it is not set by default.

This function was introduced in Qt 4.6.

See also setThemeName(), themeSearchPaths(), fromTheme(), and hasThemeIcon().

QStringList QIcon.themeSearchPaths ()

Returns the search paths for icon themes.

The default value will depend on the platform:

On X11, the search path will use the XDG_DATA_DIRS environment variable if available.

By default all platforms will have the resource directory :\icons as a fallback. You can use "rcc -project" to generate a resource file from your icon theme.

This function was introduced in Qt 4.6.

See also setThemeSearchPaths(), fromTheme(), and setThemeName().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qicondragevent.html0000644000076500000240000000527012536324503021363 0ustar philstaff00000000000000 QIconDragEvent Class Reference
  Home · All Classes · Modules

QIconDragEvent Class Reference
[QtGui module]

The QIconDragEvent class indicates that a main icon drag has begun. More...

Inherits QEvent.

Methods


Detailed Description

The QIconDragEvent class indicates that a main icon drag has begun.

Icon drag events are sent to widgets when the main icon of a window has been dragged away. On Mac OS X, this happens when the proxy icon of a window is dragged off the title bar.

It is normal to begin using drag and drop in response to this event.


Method Documentation

QIconDragEvent.__init__ (self)

Constructs an icon drag event object with the accept flag set to false.

See also accept().

QIconDragEvent.__init__ (self, QIconDragEvent)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qiconengine.html0000644000076500000240000001623612536324506020660 0ustar philstaff00000000000000 QIconEngine Class Reference
  Home · All Classes · Modules

QIconEngine Class Reference
[QtGui module]

The QIconEngine class provides an abstract base class for QIcon renderers. More...

Inherited by QIconEngineV2.

Methods

  • __init__ (self)
  • __init__ (self, QIconEngine)
  • QSize actualSize (self, QSize size, QIcon.Mode mode, QIcon.State state)
  • addFile (self, QString fileName, QSize size, QIcon.Mode mode, QIcon.State state)
  • addPixmap (self, QPixmap pixmap, QIcon.Mode mode, QIcon.State state)
  • paint (self, QPainter painter, QRect rect, QIcon.Mode mode, QIcon.State state)
  • QPixmap pixmap (self, QSize size, QIcon.Mode mode, QIcon.State state)

Detailed Description

The QIconEngine class provides an abstract base class for QIcon renderers.

Use QIconEngineV2 instead.

An icon engine provides the rendering functions for a QIcon. Each icon has a corresponding icon engine that is responsible for drawing the icon with a requested size, mode and state.

The icon is rendered by the paint() function, and the icon can additionally be obtained as a pixmap with the pixmap() function (the default implementation simply uses paint() to achieve this). The addPixmap() function can be used to add new pixmaps to the icon engine, and is used by QIcon to add specialized custom pixmaps.

The paint(), pixmap(), and addPixmap() functions are all virtual, and can therefore be reimplemented in subclasses of QIconEngine.


Method Documentation

QIconEngine.__init__ (self)

QIconEngine.__init__ (self, QIconEngine)

QSize QIconEngine.actualSize (self, QSize size, QIcon.Mode mode, QIcon.State state)

Returns the actual size of the icon the engine provides for the requested size, mode and state. The default implementation returns the given size.

QIconEngine.addFile (self, QString fileName, QSize size, QIcon.Mode mode, QIcon.State state)

Called by QIcon.addFile(). Adds a specialized pixmap from the file with the given fileName, size, mode and state. The default pixmap-based engine stores any supplied file names, and it loads the pixmaps on demand instead of using scaled pixmaps if the size of a pixmap matches the size of icon requested. Custom icon engines that implement scalable vector formats are free to ignores any extra files.

QIconEngine.addPixmap (self, QPixmap pixmap, QIcon.Mode mode, QIcon.State state)

Called by QIcon.addPixmap(). Adds a specialized pixmap for the given mode and state. The default pixmap-based engine stores any supplied pixmaps, and it uses them instead of scaled pixmaps if the size of a pixmap matches the size of icon requested. Custom icon engines that implement scalable vector formats are free to ignores any extra pixmaps.

QIconEngine.paint (self, QPainter painter, QRect rect, QIcon.Mode mode, QIcon.State state)

This method is abstract and should be reimplemented in any sub-class.

Uses the given painter to paint the icon with the required mode and state into the rectangle rect.

QPixmap QIconEngine.pixmap (self, QSize size, QIcon.Mode mode, QIcon.State state)

Returns the icon as a pixmap with the required size, mode, and state. The default implementation creates a new pixmap and calls paint() to fill it.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qiconenginev2-availablesizesargument.html0000644000076500000240000000721512536324506025664 0ustar philstaff00000000000000 QIconEngineV2.AvailableSizesArgument Class Reference
  Home · All Classes · Modules

QIconEngineV2.AvailableSizesArgument Class Reference
[QtGui module]

This class was introduced in Qt 4.5.

Methods

Members


Detailed Description

This struct represents arguments to virtual_hook() function when id parameter is QIconEngineV2.AvailableSizesHook.


Method Documentation

AvailableSizesArgument.__init__ (self)

AvailableSizesArgument.__init__ (self, AvailableSizesArgument)


Member Documentation

QIcon.Mode mode

This variable holds the requested mode of an image.

See also QIcon.Mode.

list-of-QSize sizes

This variable holds image sizes that are available with specified mode and state. This is an output parameter and is filled after call to virtual_hook(). Engines that work in terms of a scalable, vectorial format normally return an empty list.

QIcon.State state

This variable holds the requested state of an image.

See also QIcon.State.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qiconenginev2.html0000644000076500000240000001773612536324506021136 0ustar philstaff00000000000000 QIconEngineV2 Class Reference
  Home · All Classes · Modules

QIconEngineV2 Class Reference
[QtGui module]

The QIconEngineV2 class provides an abstract base class for QIcon renderers. More...

Inherits QIconEngine.

Types

Methods

  • __init__ (self)
  • __init__ (self, QIconEngineV2)
  • list-of-QSize availableSizes (self, QIcon.Mode mode = QIcon.Normal, QIcon.State state = QIcon.Off)
  • QIconEngineV2 clone (self)
  • QString iconName (self)
  • QString key (self)
  • bool read (self, QDataStream in)
  • bool write (self, QDataStream out)

Detailed Description

The QIconEngineV2 class provides an abstract base class for QIcon renderers.

An icon engine renders QIcons. With icon engines, you can customize icons. Qt provides a default engine that makes icons adhere to the current style by scaling the icons and providing a disabled appearance.

An engine is installed on an icon either through a QIcon constructor or through a QIconEnginePluginV2. The plugins are used by Qt if a specific engine is not given when the icon is created. See the QIconEngineV2 class description to learn how to create icon engine plugins.

An icon engine provides the rendering functions for a QIcon. Each icon has a corresponding icon engine that is responsible for drawing the icon with a requested size, mode and state.

QIconEngineV2 extends the API of QIconEngine to allow streaming of the icon engine contents, and should be used instead of QIconEngine for implementing new icon engines.


Type Documentation

QIconEngineV2.IconEngineHook

These enum values are used for virtual_hook() to allow additional queries to icon engine without breaking binary compatibility.

Constant Value Description
QIconEngineV2.AvailableSizesHook 1 Allows to query the sizes of the contained pixmaps for pixmap-based engines. The data argument of the virtual_hook() function is a AvailableSizesArgument pointer that should be filled with icon sizes. Engines that work in terms of a scalable, vectorial format normally return an empty list.
QIconEngineV2.IconNameHook 2 Allows to query the name used to create the icon, for example when instantiating an icon using QIcon.fromTheme().

This enum was introduced or modified in Qt 4.5.

See also virtual_hook().


Method Documentation

QIconEngineV2.__init__ (self)

QIconEngineV2.__init__ (self, QIconEngineV2)

list-of-QSize QIconEngineV2.availableSizes (self, QIcon.Mode mode = QIcon.Normal, QIcon.State state = QIcon.Off)

Returns sizes of all images that are contained in the engine for the specific mode and state.

Note: This is a helper method and the actual work is done by virtual_hook() method, hence this method depends on icon engine support and may not work with all icon engines.

This function was introduced in Qt 4.5.

QIconEngineV2 QIconEngineV2.clone (self)

Returns a clone of this icon engine.

QString QIconEngineV2.iconName (self)

Returns the name used to create the engine, if available.

Note: This is a helper method and the actual work is done by virtual_hook() method, hence this method depends on icon engine support and may not work with all icon engines.

This function was introduced in Qt 4.7.

QString QIconEngineV2.key (self)

Returns a key that identifies this icon engine.

bool QIconEngineV2.read (self, QDataStream in)

Reads icon engine contents from the QDataStream in. Returns true if the contents were read; otherwise returns false.

QIconEngineV2's default implementation always return false.

bool QIconEngineV2.write (self, QDataStream out)

Writes the contents of this engine to the QDataStream out. Returns true if the contents were written; otherwise returns false.

QIconEngineV2's default implementation always return false.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qidentityproxymodel.html0000644000076500000240000003140612536324506022512 0ustar philstaff00000000000000 QIdentityProxyModel Class Reference
  Home · All Classes · Modules

QIdentityProxyModel Class Reference
[QtGui module]

The QIdentityProxyModel class proxies its source model unmodified More...

Inherits QAbstractProxyModel.

Methods

  • __init__ (self, QObject parent = None)
  • int columnCount (self, QModelIndex parent = QModelIndex())
  • bool dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)
  • QModelIndex index (self, int row, int column, QModelIndex parent = QModelIndex())
  • bool insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())
  • bool insertRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • QModelIndex mapFromSource (self, QModelIndex sourceIndex)
  • QItemSelection mapSelectionFromSource (self, QItemSelection selection)
  • QItemSelection mapSelectionToSource (self, QItemSelection selection)
  • QModelIndex mapToSource (self, QModelIndex proxyIndex)
  • list-of-QModelIndex match (self, QModelIndex start, int role, QVariant value, int hits = 1, Qt.MatchFlags flags = Qt.MatchStartsWith|Qt.MatchWrap)
  • QModelIndex parent (self, QModelIndex child)
  • bool removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())
  • bool removeRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • int rowCount (self, QModelIndex parent = QModelIndex())
  • setSourceModel (self, QAbstractItemModel sourceModel)

Detailed Description

The QIdentityProxyModel class proxies its source model unmodified

QIdentityProxyModel can be used to forward the structure of a source model exactly, with no sorting, filtering or other transformation. This is similar in concept to an identity matrix where A.I = A.

Because it does no sorting or filtering, this class is most suitable to proxy models which transform the data() of the source model. For example, a proxy model could be created to define the font used, or the background colour, or the tooltip etc. This removes the need to implement all data handling in the same class that creates the structure of the model, and can also be used to create re-usable components.

This also provides a way to change the data in the case where a source model is supplied by a third party which can not be modified.

 class DateFormatProxyModel : public QIdentityProxyModel
 {
   // ...

   void setDateFormatString(const QString &formatString)
   {
     m_formatString = formatString;
   }

   QVariant data(const QModelIndex &index, int role)
   {
     if (role != Qt.DisplayRole)
       return QIdentityProxyModel.data(index, role);

     const QDateTime dateTime = sourceModel()->data(SourceClass.DateRole).toDateTime();

     return dateTime.toString(m_formatString);
   }

 private:
   QString m_formatString;
 };

Method Documentation

QIdentityProxyModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an identity model with the given parent.

int QIdentityProxyModel.columnCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.columnCount().

bool QIdentityProxyModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Reimplemented from QAbstractItemModel.dropMimeData().

QModelIndex QIdentityProxyModel.index (self, int row, int column, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.index().

bool QIdentityProxyModel.insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertColumns().

bool QIdentityProxyModel.insertRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertRows().

QModelIndex QIdentityProxyModel.mapFromSource (self, QModelIndex sourceIndex)

Reimplemented from QAbstractProxyModel.mapFromSource().

QItemSelection QIdentityProxyModel.mapSelectionFromSource (self, QItemSelection selection)

Reimplemented from QAbstractProxyModel.mapSelectionFromSource().

QItemSelection QIdentityProxyModel.mapSelectionToSource (self, QItemSelection selection)

Reimplemented from QAbstractProxyModel.mapSelectionToSource().

QModelIndex QIdentityProxyModel.mapToSource (self, QModelIndex proxyIndex)

Reimplemented from QAbstractProxyModel.mapToSource().

list-of-QModelIndex QIdentityProxyModel.match (self, QModelIndex start, int role, QVariant value, int hits = 1, Qt.MatchFlags flags = Qt.MatchStartsWith|Qt.MatchWrap)

Reimplemented from QAbstractItemModel.match().

QModelIndex QIdentityProxyModel.parent (self, QModelIndex child)

Reimplemented from QAbstractItemModel.parent().

bool QIdentityProxyModel.removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeColumns().

bool QIdentityProxyModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeRows().

int QIdentityProxyModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

QIdentityProxyModel.setSourceModel (self, QAbstractItemModel sourceModel)

Reimplemented from QAbstractProxyModel.setSourceModel().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qimage.html0000644000076500000240000027344012536324506017626 0ustar philstaff00000000000000 QImage Class Reference
  Home · All Classes · Modules

QImage Class Reference
[QtGui module]

The QImage class provides a hardware-independent image representation that allows direct access to the pixel data, and can be used as a paint device. More...

Inherits QPaintDevice.

Types

  • enum Format { Format_Invalid, Format_Mono, Format_MonoLSB, Format_Indexed8, ..., Format_ARGB4444_Premultiplied }
  • enum InvertMode { InvertRgb, InvertRgba }

Methods

Static Methods

  • QImage fromData (str data, str format = None)
  • QImage fromData (QByteArray data, str format = None)
  • QMatrix trueMatrix (QMatrix, int w, int h)
  • QTransform trueMatrix (QTransform, int w, int h)

Special Methods


Detailed Description

The QImage class provides a hardware-independent image representation that allows direct access to the pixel data, and can be used as a paint device.

Qt provides four classes for handling image data: QImage, QPixmap, QBitmap and QPicture. QImage is designed and optimized for I/O, and for direct pixel access and manipulation, while QPixmap is designed and optimized for showing images on screen. QBitmap is only a convenience class that inherits QPixmap, ensuring a depth of 1. Finally, the QPicture class is a paint device that records and replays QPainter commands.

Because QImage is a QPaintDevice subclass, QPainter can be used to draw directly onto images. When using QPainter on a QImage, the painting can be performed in another thread than the current GUI thread.

The QImage class supports several image formats described by the Format enum. These include monochrome, 8-bit, 32-bit and alpha-blended images which are available in all versions of Qt 4.x.

QImage provides a collection of functions that can be used to obtain a variety of information about the image. There are also several functions that enables transformation of the image.

QImage objects can be passed around by value since the QImage class uses implicit data sharing. QImage objects can also be streamed and compared.

Note: If you would like to load QImage objects in a static build of Qt, refer to the Plugin HowTo.

Warning: Painting on a QImage with the format QImage.Format_Indexed8 is not supported.

Reading and Writing Image Files

QImage provides several ways of loading an image file: The file can be loaded when constructing the QImage object, or by using the load() or loadFromData() functions later on. QImage also provides the static fromData() function, constructing a QImage from the given data. When loading an image, the file name can either refer to an actual file on disk or to one of the application's embedded resources. See The Qt Resource System overview for details on how to embed images and other resource files in the application's executable.

Simply call the save() function to save a QImage object.

The complete list of supported file formats are available through the QImageReader.supportedImageFormats() and QImageWriter.supportedImageFormats() functions. New file formats can be added as plugins. By default, Qt supports the following formats:

Format Description Qt's support
BMP Windows Bitmap Read/write
GIF Graphic Interchange Format (optional) Read
JPG Joint Photographic Experts Group Read/write
JPEG Joint Photographic Experts Group Read/write
PNG Portable Network Graphics Read/write
PBM Portable Bitmap Read
PGM Portable Graymap Read
PPM Portable Pixmap Read/write
TIFF Tagged Image File Format Read/write
XBM X11 Bitmap Read/write
XPM X11 Pixmap Read/write

Image Information

QImage provides a collection of functions that can be used to obtain a variety of information about the image:

Available Functions
Geometry The size(), width(), height(), dotsPerMeterX(), and dotsPerMeterY() functions provide information about the image size and aspect ratio.

The rect() function returns the image's enclosing rectangle. The valid() function tells if a given pair of coordinates is within this rectangle. The offset() function returns the number of pixels by which the image is intended to be offset by when positioned relative to other images, which also can be manipulated using the setOffset() function.

Colors The color of a pixel can be retrieved by passing its coordinates to the pixel() function. The pixel() function returns the color as a QRgb value indepedent of the image's format.

In case of monochrome and 8-bit images, the colorCount() and colorTable() functions provide information about the color components used to store the image data: The colorTable() function returns the image's entire color table. To obtain a single entry, use the pixelIndex() function to retrieve the pixel index for a given pair of coordinates, then use the color() function to retrieve the color. Note that if you create an 8-bit image manually, you have to set a valid color table on the image as well.

The hasAlphaChannel() function tells if the image's format respects the alpha channel, or not. The allGray() and isGrayscale() functions tell whether an image's colors are all shades of gray.

See also the Pixel Manipulation and Image Transformations sections.

Text The text() function returns the image text associated with the given text key. An image's text keys can be retrieved using the textKeys() function. Use the setText() function to alter an image's text.
Low-level information The depth() function returns the depth of the image. The supported depths are 1 (monochrome), 8, 16, 24 and 32 bits. The bitPlaneCount() function tells how many of those bits that are used. For more information see the Image Formats section.

The format(), bytesPerLine(), and byteCount() functions provide low-level information about the data stored in the image.

The cacheKey() function returns a number that uniquely identifies the contents of this QImage object.

Pixel Manipulation

The functions used to manipulate an image's pixels depend on the image format. The reason is that monochrome and 8-bit images are index-based and use a color lookup table, while 32-bit images store ARGB values directly. For more information on image formats, see the Image Formats section.

In case of a 32-bit image, the setPixel() function can be used to alter the color of the pixel at the given coordinates to any other color specified as an ARGB quadruplet. To make a suitable QRgb value, use the qRgb() (adding a default alpha component to the given RGB values, i.e. creating an opaque color) or qRgba() function. For example:

32-bit
 QImage image(3, 3, QImage.Format_RGB32);
 QRgb value;

 value = qRgb(189, 149, 39); // 0xffbd9527
 image.setPixel(1, 1, value);

 value = qRgb(122, 163, 39); // 0xff7aa327
 image.setPixel(0, 1, value);
 image.setPixel(1, 0, value);

 value = qRgb(237, 187, 51); // 0xffedba31
 image.setPixel(2, 1, value);

In case of a 8-bit and monchrome images, the pixel value is only an index from the image's color table. So the setPixel() function can only be used to alter the color of the pixel at the given coordinates to a predefined color from the image's color table, i.e. it can only change the pixel's index value. To alter or add a color to an image's color table, use the setColor() function.

An entry in the color table is an ARGB quadruplet encoded as an QRgb value. Use the qRgb() and qRgba() functions to make a suitable QRgb value for use with the setColor() function. For example:

8-bit
 QImage image(3, 3, QImage.Format_Indexed8);
 QRgb value;

 value = qRgb(122, 163, 39); // 0xff7aa327
 image.setColor(0, value);

 value = qRgb(237, 187, 51); // 0xffedba31
 image.setColor(1, value);

 value = qRgb(189, 149, 39); // 0xffbd9527
 image.setColor(2, value);

 image.setPixel(0, 1, 0);
 image.setPixel(1, 0, 0);
 image.setPixel(1, 1, 2);
 image.setPixel(2, 1, 1);

QImage also provide the scanLine() function which returns a pointer to the pixel data at the scanline with the given index, and the bits() function which returns a pointer to the first pixel data (this is equivalent to scanLine(0)).

Image Formats

Each pixel stored in a QImage is represented by an integer. The size of the integer varies depending on the format. QImage supports several image formats described by the Format enum.

Monochrome images are stored using 1-bit indexes into a color table with at most two colors. There are two different types of monochrome images: big endian (MSB first) or little endian (LSB first) bit order.

8-bit images are stored using 8-bit indexes into a color table, i.e. they have a single byte per pixel. The color table is a QVector<QRgb>, and the QRgb typedef is equivalent to an unsigned int containing an ARGB quadruplet on the format 0xAARRGGBB.

32-bit images have no color table; instead, each pixel contains an QRgb value. There are three different types of 32-bit images storing RGB (i.e. 0xffRRGGBB), ARGB and premultiplied ARGB values respectively. In the premultiplied format the red, green, and blue channels are multiplied by the alpha component divided by 255.

An image's format can be retrieved using the format() function. Use the convertToFormat() functions to convert an image into another format. The allGray() and isGrayscale() functions tell whether a color image can safely be converted to a grayscale image.

Image Transformations

QImage supports a number of functions for creating a new image that is a transformed version of the original: The createAlphaMask() function builds and returns a 1-bpp mask from the alpha buffer in this image, and the createHeuristicMask() function creates and returns a 1-bpp heuristic mask for this image. The latter function works by selecting a color from one of the corners, then chipping away pixels of that color starting at all the edges.

The mirrored() function returns a mirror of the image in the desired direction, the scaled() returns a copy of the image scaled to a rectangle of the desired measures, and the rgbSwapped() function constructs a BGR image from a RGB image.

The scaledToWidth() and scaledToHeight() functions return scaled copies of the image.

The transformed() function returns a copy of the image that is transformed with the given transformation matrix and transformation mode: Internally, the transformation matrix is adjusted to compensate for unwanted translation, i.e. transformed() returns the smallest image containing all transformed points of the original image. The static trueMatrix() function returns the actual matrix used for transforming the image.

There are also functions for changing attributes of an image in-place:

Function Description
setDotsPerMeterX() Defines the aspect ratio by setting the number of pixels that fit horizontally in a physical meter.
setDotsPerMeterY() Defines the aspect ratio by setting the number of pixels that fit vertically in a physical meter.
fill() Fills the entire image with the given pixel value.
invertPixels() Inverts all pixel values in the image using the given InvertMode value.
setColorTable() Sets the color table used to translate color indexes. Only monochrome and 8-bit formats.
setColorCount() Resizes the color table. Only monochrome and 8-bit formats.

Legal Information

For smooth scaling, the transformed() functions use code based on smooth scaling algorithm by Daniel M. Duley.

Copyright (C) 2004, 2005 Daniel M. Duley

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Type Documentation

QImage.Format

The following image formats are available in Qt. Values greater than QImage.Format_RGB16 were added in Qt 4.4. See the notes after the table.

Constant Value Description
QImage.Format_Invalid 0 The image is invalid.
QImage.Format_Mono 1 The image is stored using 1-bit per pixel. Bytes are packed with the most significant bit (MSB) first.
QImage.Format_MonoLSB 2 The image is stored using 1-bit per pixel. Bytes are packed with the less significant bit (LSB) first.
QImage.Format_Indexed8 3 The image is stored using 8-bit indexes into a colormap.
QImage.Format_RGB32 4 The image is stored using a 32-bit RGB format (0xffRRGGBB).
QImage.Format_ARGB32 5 The image is stored using a 32-bit ARGB format (0xAARRGGBB).
QImage.Format_ARGB32_Premultiplied 6 The image is stored using a premultiplied 32-bit ARGB format (0xAARRGGBB), i.e. the red, green, and blue channels are multiplied by the alpha component divided by 255. (If RR, GG, or BB has a higher value than the alpha channel, the results are undefined.) Certain operations (such as image composition using alpha blending) are faster using premultiplied ARGB32 than with plain ARGB32.
QImage.Format_RGB16 7 The image is stored using a 16-bit RGB format (5-6-5).
QImage.Format_ARGB8565_Premultiplied 8 The image is stored using a premultiplied 24-bit ARGB format (8-5-6-5).
QImage.Format_RGB666 9 The image is stored using a 24-bit RGB format (6-6-6). The unused most significant bits is always zero.
QImage.Format_ARGB6666_Premultiplied 10 The image is stored using a premultiplied 24-bit ARGB format (6-6-6-6).
QImage.Format_RGB555 11 The image is stored using a 16-bit RGB format (5-5-5). The unused most significant bit is always zero.
QImage.Format_ARGB8555_Premultiplied 12 The image is stored using a premultiplied 24-bit ARGB format (8-5-5-5).
QImage.Format_RGB888 13 The image is stored using a 24-bit RGB format (8-8-8).
QImage.Format_RGB444 14 The image is stored using a 16-bit RGB format (4-4-4). The unused bits are always zero.
QImage.Format_ARGB4444_Premultiplied 15 The image is stored using a premultiplied 16-bit ARGB format (4-4-4-4).

Note: Drawing into a QImage with QImage.Format_Indexed8 is not supported.

Note: Do not render into ARGB32 images using QPainter. Using QImage.Format_ARGB32_Premultiplied is significantly faster.

See also format() and convertToFormat().

QImage.InvertMode

This enum type is used to describe how pixel values should be inverted in the invertPixels() function.

Constant Value Description
QImage.InvertRgb 0 Invert only the RGB values and leave the alpha channel unchanged.
QImage.InvertRgba 1 Invert all channels, including the alpha channel.

See also invertPixels().


Method Documentation

QImage.__init__ (self)

Constructs a null image.

See also isNull().

QImage.__init__ (self, QSize size, Format format)

Constructs an image with the given size and format.

A null image is returned if memory cannot be allocated.

Warning: This will create a QImage with uninitialized data. Call fill() to fill the image with an appropriate pixel value before drawing onto it with QPainter.

QImage.__init__ (self, int width, int height, Format format)

Constructs an image with the given width, height and format.

A null image will be returned if memory cannot be allocated.

Warning: This will create a QImage with uninitialized data. Call fill() to fill the image with an appropriate pixel value before drawing onto it with QPainter.

QImage.__init__ (self, str data, int width, int height, Format format)

Constructs an image with the given width, height and format, that uses an existing memory buffer, data. The width and height must be specified in pixels, data must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.

The buffer must remain valid throughout the life of the QImage. The image does not delete the buffer at destruction.

If format is an indexed color format, the image color table is initially empty and must be sufficiently expanded with setColorCount() or setColorTable() before the image is used.

QImage.__init__ (self, sip.voidptr data, int width, int height, Format format)

Constructs an image with the given width, height and format, that uses an existing read-only memory buffer, data. The width and height must be specified in pixels, data must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.

The buffer must remain valid throughout the life of the QImage and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction.

If format is an indexed color format, the image color table is initially empty and must be sufficiently expanded with setColorCount() or setColorTable() before the image is used.

Unlike the similar QImage constructor that takes a non-const data buffer, this version will never alter the contents of the buffer. For example, calling QImage.bits() will return a deep copy of the image, rather than the buffer passed to the constructor. This allows for the efficiency of constructing a QImage from raw data, without the possibility of the raw data being changed.

QImage.__init__ (self, str data, int width, int height, int bytesPerLine, Format format)

Constructs an image with the given width, height and format, that uses an existing memory buffer, data. The width and height must be specified in pixels. bytesPerLine specifies the number of bytes per line (stride).

The buffer must remain valid throughout the life of the QImage. The image does not delete the buffer at destruction.

If format is an indexed color format, the image color table is initially empty and must be sufficiently expanded with setColorCount() or setColorTable() before the image is used.

QImage.__init__ (self, sip.voidptr data, int width, int height, int bytesPerLine, Format format)

Constructs an image with the given width, height and format, that uses an existing memory buffer, data. The width and height must be specified in pixels. bytesPerLine specifies the number of bytes per line (stride).

The buffer must remain valid throughout the life of the QImage. The image does not delete the buffer at destruction.

If format is an indexed color format, the image color table is initially empty and must be sufficiently expanded with setColorCount() or setColorTable() before the image is used.

Unlike the similar QImage constructor that takes a non-const data buffer, this version will never alter the contents of the buffer. For example, calling QImage.bits() will return a deep copy of the image, rather than the buffer passed to the constructor. This allows for the efficiency of constructing a QImage from raw data, without the possibility of the raw data being changed.

QImage.__init__ (self, list-of-str xpm)

Constructs an image from the given xpm image.

Make sure that the image is a valid XPM image. Errors are silently ignored.

Note that it's possible to squeeze the XPM variable a little bit by using an unusual declaration:

 static const char * const start_xpm[] = {
     "16 15 8 1",
     "a c #cec6bd",
 ....

The extra const makes the entire definition read-only, which is slightly more efficient (e.g., when the code is in a shared library) and able to be stored in ROM with the application.

QImage.__init__ (self, QString fileName, str format = None)

Constructs an image and tries to load the image from the file with the given fileName.

The loader attempts to read the image using the specified format. If the format is not specified (which is the default), the loader probes the file for a header to guess the file format.

If the loading of the image failed, this object is a null image.

The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the Resource System overview for details on how to embed images and other resource files in the application's executable.

See also isNull() and Reading and Writing Image Files.

QImage.__init__ (self, QImage)

Constructs an image and tries to load the image from the file with the given fileName.

The loader attempts to read the image using the specified format. If the format is not specified (which is the default), the loader probes the file for a header to guess the file format.

If the loading of the image failed, this object is a null image.

The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the Resource System overview for details on how to embed images and other resource files in the application's executable.

You can disable this constructor by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful, for example, if you want to ensure that all user-visible strings go through QObject.tr().

See also QString.fromAscii(), isNull(), and Reading and Writing Image Files.

QImage.__init__ (self, QVariant variant)

Constructs a shallow copy of the given image.

For more information about shallow copies, see the Implicit Data Sharing documentation.

See also copy().

bool QImage.allGray (self)

Returns true if all the colors in the image are shades of gray (i.e. their red, green and blue components are equal); otherwise false.

Note that this function is slow for images without color table.

See also isGrayscale().

QImage QImage.alphaChannel (self)

int QImage.bitPlaneCount (self)

Returns the number of bit planes in the image.

The number of bit planes is the number of bits of color and transparency information for each pixel. This is different from (i.e. smaller than) the depth when the image format contains unused bits.

This function was introduced in Qt 4.7.

See also depth(), format(), and Image Formats.

sip.voidptr QImage.bits (self)

Returns a pointer to the first pixel data. This is equivalent to scanLine(0).

Note that QImage uses implicit data sharing. This function performs a deep copy of the shared pixel data, thus ensuring that this QImage is the only one using the current return value.

See also scanLine(), byteCount(), and constBits().

int QImage.byteCount (self)

Returns the number of bytes occupied by the image data.

This function was introduced in Qt 4.6.

See also bytesPerLine(), bits(), and Image Information.

int QImage.bytesPerLine (self)

Returns the number of bytes per image scanline.

This is equivalent to byteCount() / height().

See also scanLine().

int QImage.cacheKey (self)

Returns a number that identifies the contents of this QImage object. Distinct QImage objects can only have the same key if they refer to the same contents.

The key will change when the image is altered.

int QImage.color (self, int i)

Returns the color in the color table at index i. The first color is at index 0.

The colors in an image's color table are specified as ARGB quadruplets (QRgb). Use the qAlpha(), qRed(), qGreen(), and qBlue() functions to get the color value components.

See also setColor(), pixelIndex(), and Pixel Manipulation.

int QImage.colorCount (self)

Returns the size of the color table for the image.

Notice that colorCount() returns 0 for 32-bpp images because these images do not use color tables, but instead encode pixel values as ARGB quadruplets.

This function was introduced in Qt 4.6.

See also setColorCount() and Image Information.

list-of-int QImage.colorTable (self)

Returns a list of the colors contained in the image's color table, or an empty list if the image does not have a color table

See also setColorTable(), colorCount(), and color().

sip.voidptr QImage.constBits (self)

Returns a pointer to the first pixel data.

Note that QImage uses implicit data sharing, but this function does not perform a deep copy of the shared pixel data, because the returned data is const.

This function was introduced in Qt 4.7.

See also bits() and constScanLine().

sip.voidptr QImage.constScanLine (self, int)

Returns a pointer to the pixel data at the scanline with index i. The first scanline is at index 0.

The scanline data is aligned on a 32-bit boundary.

Note that QImage uses implicit data sharing, but this function does not perform a deep copy of the shared pixel data, because the returned data is const.

This function was introduced in Qt 4.7.

See also scanLine() and constBits().

QImage QImage.convertToFormat (self, Format format, Qt.ImageConversionFlags flags = Qt.AutoColor)

Returns a copy of the image in the given format.

The specified image conversion flags control how the image data is handled during the conversion process.

See also Image Format.

QImage QImage.convertToFormat (self, Format format, list-of-int colorTable, Qt.ImageConversionFlags flags = Qt.AutoColor)

This is an overloaded function.

Returns a copy of the image converted to the given format, using the specified colorTable.

Conversion from 32 bit to 8 bit indexed is a slow operation and will use a straightforward nearest color approach, with no dithering.

QImage QImage.copy (self, QRect rect = QRect())

Returns a sub-area of the image as a new image.

The returned image is copied from the position (rectangle.x(), rectangle.y()) in this image, and will always have the size of the given rectangle.

In areas beyond this image, pixels are set to 0. For 32-bit RGB images, this means black; for 32-bit ARGB images, this means transparent black; for 8-bit images, this means the color with index 0 in the color table which can be anything; for 1-bit images, this means Qt.color0.

If the given rectangle is a null rectangle the entire image is copied.

See also QImage().

QImage QImage.copy (self, int x, int y, int w, int h)

QImage QImage.createAlphaMask (self, Qt.ImageConversionFlags flags = Qt.AutoColor)

Builds and returns a 1-bpp mask from the alpha buffer in this image. Returns a null image if the image's format is QImage.Format_RGB32.

The flags argument is a bitwise-OR of the Qt.ImageConversionFlags, and controls the conversion process. Passing 0 for flags sets all the default options.

The returned image has little-endian bit order (i.e. the image's format is QImage.Format_MonoLSB), which you can convert to big-endian (QImage.Format_Mono) using the convertToFormat() function.

See also createHeuristicMask() and Image Transformations.

QImage QImage.createHeuristicMask (self, bool clipTight = True)

Creates and returns a 1-bpp heuristic mask for this image.

The function works by selecting a color from one of the corners, then chipping away pixels of that color starting at all the edges. The four corners vote for which color is to be masked away. In case of a draw (this generally means that this function is not applicable to the image), the result is arbitrary.

The returned image has little-endian bit order (i.e. the image's format is QImage.Format_MonoLSB), which you can convert to big-endian (QImage.Format_Mono) using the convertToFormat() function.

If clipTight is true (the default) the mask is just large enough to cover the pixels; otherwise, the mask is larger than the data pixels.

Note that this function disregards the alpha buffer.

See also createAlphaMask() and Image Transformations.

QImage QImage.createMaskFromColor (self, int color, Qt.MaskMode mode = Qt.MaskInColor)

Creates and returns a mask for this image based on the given color value. If the mode is MaskInColor (the default value), all pixels matching color will be opaque pixels in the mask. If mode is MaskOutColor, all pixels matching the given color will be transparent.

See also createAlphaMask() and createHeuristicMask().

int QImage.depth (self)

Returns the depth of the image.

The image depth is the number of bits used to store a single pixel, also called bits per pixel (bpp).

The supported depths are 1, 8, 16, 24 and 32.

See also bitPlaneCount(), convertToFormat(), Image Formats, and Image Information.

QImage.detach (self)

int QImage.devType (self)

int QImage.dotsPerMeterX (self)

Returns the number of pixels that fit horizontally in a physical meter. Together with dotsPerMeterY(), this number defines the intended scale and aspect ratio of the image.

See also setDotsPerMeterX() and Image Information.

int QImage.dotsPerMeterY (self)

Returns the number of pixels that fit vertically in a physical meter. Together with dotsPerMeterX(), this number defines the intended scale and aspect ratio of the image.

See also setDotsPerMeterY() and Image Information.

QImage.fill (self, Qt.GlobalColor color)

Fills the entire image with the given pixelValue.

If the depth of this image is 1, only the lowest bit is used. If you say fill(0), fill(2), etc., the image is filled with 0s. If you say fill(1), fill(3), etc., the image is filled with 1s. If the depth is 8, the lowest 8 bits are used and if the depth is 16 the lowest 16 bits are used.

Note: QImage.pixel() returns the color of the pixel at the given coordinates while QColor.pixel() returns the pixel value of the underlying window system (essentially an index value), so normally you will want to use QImage.pixel() to use a color from an existing image or QColor.rgb() to use a specific color.

See also depth() and Image Transformations.

QImage.fill (self, QColor color)

This is an overloaded function.

Fills the image with the given color, described as a standard global color.

This function was introduced in Qt 4.8.

QImage.fill (self, int pixel)

This is an overloaded function.

Fills the entire image with the given color.

If the depth of the image is 1, the image will be filled with 1 if color equals Qt.color1; it will otherwise be filled with 0.

If the depth of the image is 8, the image will be filled with the index corresponding the color in the color table if present; it will otherwise be filled with 0.

This function was introduced in Qt 4.8.

Format QImage.format (self)

Returns the format of the image.

See also Image Formats.

QImage QImage.fromData (str data, str format = None)

Constructs a QImage from the first size bytes of the given binary data. The loader attempts to read the image using the specified format. If format is not specified (which is the default), the loader probes the file for a header to guess the file format. binary data. The loader attempts to read the image, either using the optional image format specified or by determining the image format from the data.

If format is not specified (which is the default), the loader probes the file for a header to determine the file format. If format is specified, it must be one of the values returned by QImageReader.supportedImageFormats().

If the loading of the image fails, the image returned will be a null image.

See also load(), save(), and Reading and Writing Image Files.

QImage QImage.fromData (QByteArray data, str format = None)

This is an overloaded function.

Loads an image from the given QByteArray data.

bool QImage.hasAlphaChannel (self)

Returns true if the image has a format that respects the alpha channel, otherwise returns false.

See also Image Information.

int QImage.height (self)

Returns the height of the image.

See also Image Information.

QImage.invertPixels (self, InvertMode mode = QImage.InvertRgb)

Inverts all pixel values in the image.

The given invert mode only have a meaning when the image's depth is 32. The default mode is InvertRgb, which leaves the alpha channel unchanged. If the mode is InvertRgba, the alpha bits are also inverted.

Inverting an 8-bit image means to replace all pixels using color index i with a pixel using color index 255 minus i. The same is the case for a 1-bit image. Note that the color table is not changed.

See also Image Transformations.

bool QImage.isDetached (self)

bool QImage.isGrayscale (self)

For 32-bit images, this function is equivalent to allGray().

For 8-bpp images, this function returns true if color(i) is QRgb(i, i, i) for all indexes of the color table; otherwise returns false.

See also allGray() and Image Formats.

bool QImage.isNull (self)

Returns true if it is a null image, otherwise returns false.

A null image has all parameters set to zero and no allocated data.

bool QImage.load (self, QIODevice device, str format)

Loads an image from the file with the given fileName. Returns true if the image was successfully loaded; otherwise returns false.

The loader attempts to read the image using the specified format, e.g., PNG or JPG. If format is not specified (which is the default), the loader probes the file for a header to guess the file format.

The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the Resource System overview for details on how to embed images and other resource files in the application's executable.

See also Reading and Writing Image Files.

bool QImage.load (self, QString fileName, str format = None)

This is an overloaded function.

This function reads a QImage from the given device. This can, for example, be used to load an image directly into a QByteArray.

bool QImage.loadFromData (self, str data, str format = None)

Loads an image from the first len bytes of the given binary data. Returns true if the image was successfully loaded; otherwise returns false.

The loader attempts to read the image using the specified format, e.g., PNG or JPG. If format is not specified (which is the default), the loader probes the file for a header to guess the file format.

See also Reading and Writing Image Files.

bool QImage.loadFromData (self, QByteArray data, str format = None)

This is an overloaded function.

Loads an image from the given QByteArray data.

int QImage.metric (self, QPaintDevice.PaintDeviceMetric metric)

QImage QImage.mirrored (self, bool horizontal = False, bool vertical = True)

Returns a mirror of the image, mirrored in the horizontal and/or the vertical direction depending on whether horizontal and vertical are set to true or false.

Note that the original image is not changed.

See also Image Transformations.

int QImage.numBytes (self)

int QImage.numColors (self)

QPoint QImage.offset (self)

Returns the number of pixels by which the image is intended to be offset by when positioning relative to other images.

See also setOffset() and Image Information.

QPaintEngine QImage.paintEngine (self)

int QImage.pixel (self, QPoint pt)

Returns the color of the pixel at the given position.

If the position is not valid, the results are undefined.

Warning: This function is expensive when used for massive pixel manipulations.

See also setPixel(), valid(), and Pixel Manipulation.

int QImage.pixel (self, int x, int y)

This is an overloaded function.

Returns the color of the pixel at coordinates (x, y).

int QImage.pixelIndex (self, QPoint pt)

Returns the pixel index at the given position.

If position is not valid, or if the image is not a paletted image (depth() > 8), the results are undefined.

See also valid(), depth(), and Pixel Manipulation.

int QImage.pixelIndex (self, int x, int y)

This is an overloaded function.

Returns the pixel index at (x, y).

QRect QImage.rect (self)

Returns the enclosing rectangle (0, 0, width(), height()) of the image.

See also Image Information.

QImage QImage.rgbSwapped (self)

Returns a QImage in which the values of the red and blue components of all pixels have been swapped, effectively converting an RGB image to an BGR image.

The original QImage is not changed.

See also Image Transformations.

bool QImage.save (self, QString fileName, str format = None, int quality = -1)

Saves the image to the file with the given fileName, using the given image file format and quality factor. If format is 0, QImage will attempt to guess the format by looking at fileName's suffix.

The quality factor must be in the range 0 to 100 or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 (the default) to use the default settings.

Returns true if the image was successfully saved; otherwise returns false.

See also Reading and Writing Image Files.

bool QImage.save (self, QIODevice device, str format = None, int quality = -1)

This is an overloaded function.

This function writes a QImage to the given device.

This can, for example, be used to save an image directly into a QByteArray:

         QImage image;
         QByteArray ba;
         QBuffer buffer(&ba);
         buffer.open(QIODevice.WriteOnly);
         image.save(&buffer, "PNG"); // writes image into ba in PNG format

QImage QImage.scaled (self, int width, int height, Qt.AspectRatioMode aspectRatioMode = Qt.IgnoreAspectRatio, Qt.TransformationMode transformMode = Qt.FastTransformation)

Returns a copy of the image scaled to a rectangle defined by the given size according to the given aspectRatioMode and transformMode.

  • If aspectRatioMode is Qt.IgnoreAspectRatio, the image is scaled to size.
  • If aspectRatioMode is Qt.KeepAspectRatio, the image is scaled to a rectangle as large as possible inside size, preserving the aspect ratio.
  • If aspectRatioMode is Qt.KeepAspectRatioByExpanding, the image is scaled to a rectangle as small as possible outside size, preserving the aspect ratio.

If the given size is empty, this function returns a null image.

See also isNull() and Image Transformations.

QImage QImage.scaled (self, QSize size, Qt.AspectRatioMode aspectRatioMode = Qt.IgnoreAspectRatio, Qt.TransformationMode transformMode = Qt.FastTransformation)

This is an overloaded function.

Returns a copy of the image scaled to a rectangle with the given width and height according to the given aspectRatioMode and transformMode.

If either the width or the height is zero or negative, this function returns a null image.

QImage QImage.scaledToHeight (self, int height, Qt.TransformationMode mode = Qt.FastTransformation)

Returns a scaled copy of the image. The returned image is scaled to the given height using the specified transformation mode.

This function automatically calculates the width of the image so that the ratio of the image is preserved.

If the given height is 0 or negative, a null image is returned.

See also Image Transformations.

QImage QImage.scaledToWidth (self, int width, Qt.TransformationMode mode = Qt.FastTransformation)

Returns a scaled copy of the image. The returned image is scaled to the given width using the specified transformation mode.

This function automatically calculates the height of the image so that its aspect ratio is preserved.

If the given width is 0 or negative, a null image is returned.

See also Image Transformations.

sip.voidptr QImage.scanLine (self, int)

Returns a pointer to the pixel data at the scanline with index i. The first scanline is at index 0.

The scanline data is aligned on a 32-bit boundary.

Warning: If you are accessing 32-bpp image data, cast the returned pointer to QRgb* (QRgb has a 32-bit size) and use it to read/write the pixel value. You cannot use the uchar* pointer directly, because the pixel format depends on the byte order on the underlying platform. Use qRed(), qGreen(), qBlue(), and qAlpha() to access the pixels.

See also bytesPerLine(), bits(), Pixel Manipulation, and constScanLine().

int QImage.serialNumber (self)

QImage.setAlphaChannel (self, QImage alphaChannel)

QImage.setColor (self, int i, int c)

Sets the color at the given index in the color table, to the given to colorValue. The color value is an ARGB quadruplet.

If index is outside the current size of the color table, it is expanded with setColorCount().

See also color(), colorCount(), setColorTable(), and Pixel Manipulation.

QImage.setColorCount (self, int)

Resizes the color table to contain colorCount entries.

If the color table is expanded, all the extra colors will be set to transparent (i.e qRgba(0, 0, 0, 0)).

When the image is used, the color table must be large enough to have entries for all the pixel/index values present in the image, otherwise the results are undefined.

This function was introduced in Qt 4.6.

See also colorCount(), colorTable(), setColor(), and Image Transformations.

QImage.setColorTable (self, list-of-int colors)

Sets the color table used to translate color indexes to QRgb values, to the specified colors.

When the image is used, the color table must be large enough to have entries for all the pixel/index values present in the image, otherwise the results are undefined.

See also colorTable(), setColor(), and Image Transformations.

QImage.setDotsPerMeterX (self, int)

Sets the number of pixels that fit horizontally in a physical meter, to x.

Together with dotsPerMeterY(), this number defines the intended scale and aspect ratio of the image, and determines the scale at which QPainter will draw graphics on the image. It does not change the scale or aspect ratio of the image when it is rendered on other paint devices.

See also dotsPerMeterX() and Image Information.

QImage.setDotsPerMeterY (self, int)

Sets the number of pixels that fit vertically in a physical meter, to y.

Together with dotsPerMeterX(), this number defines the intended scale and aspect ratio of the image, and determines the scale at which QPainter will draw graphics on the image. It does not change the scale or aspect ratio of the image when it is rendered on other paint devices.

See also dotsPerMeterY() and Image Information.

QImage.setNumColors (self, int)

QImage.setOffset (self, QPoint)

Sets the number of pixels by which the image is intended to be offset by when positioning relative to other images, to offset.

See also offset() and Image Information.

QImage.setPixel (self, QPoint pt, int index_or_rgb)

Sets the pixel index or color at the given position to index_or_rgb.

If the image's format is either monochrome or 8-bit, the given index_or_rgb value must be an index in the image's color table, otherwise the parameter must be a QRgb value.

If position is not a valid coordinate pair in the image, or if index_or_rgb >= colorCount() in the case of monochrome and 8-bit images, the result is undefined.

Warning: This function is expensive due to the call of the internal detach() function called within; if performance is a concern, we recommend the use of scanLine() to access pixel data directly.

See also pixel() and Pixel Manipulation.

QImage.setPixel (self, int x, int y, int index_or_rgb)

This is an overloaded function.

Sets the pixel index or color at (x, y) to index_or_rgb.

QImage.setText (self, QString key, QString value)

Sets the image text to the given text and associate it with the given key.

If you just want to store a single text block (i.e., a "comment" or just a description), you can either pass an empty key, or use a generic key like "Description".

The image text is embedded into the image data when you call save() or QImageWriter.write().

Not all image formats support embedded text. You can find out if a specific image or format supports embedding text by using QImageWriter.supportsOption(). We give an example:

         QImageWriter writer;
         writer.setFormat("png");
         if (writer.supportsOption(QImageIOHandler.Description))
             qDebug() << "Png supports embedded text";

You can use QImageWriter.supportedImageFormats() to find out which image formats are available to you.

See also text() and textKeys().

QSize QImage.size (self)

Returns the size of the image, i.e. its width() and height().

See also Image Information.

QImage.swap (self, QImage other)

Swaps image other with this image. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QString QImage.text (self, QString key = QString())

Returns the image text associated with the given key. If the specified key is an empty string, the whole image text is returned, with each key-text pair separated by a newline.

See also setText() and textKeys().

QStringList QImage.textKeys (self)

Returns the text keys for this image.

You can use these keys with text() to list the image text for a certain key.

See also text().

QImage QImage.transformed (self, QMatrix matrix, Qt.TransformationMode mode = Qt.FastTransformation)

Returns a copy of the image that is transformed using the given transformation matrix and transformation mode.

The transformation matrix is internally adjusted to compensate for unwanted translation; i.e. the image produced is the smallest image that contains all the transformed points of the original image. Use the trueMatrix() function to retrieve the actual matrix used for transforming an image.

See also trueMatrix() and Image Transformations.

QImage QImage.transformed (self, QTransform matrix, Qt.TransformationMode mode = Qt.FastTransformation)

Returns a copy of the image that is transformed using the given transformation matrix and transformation mode.

The transformation matrix is internally adjusted to compensate for unwanted translation; i.e. the image produced is the smallest image that contains all the transformed points of the original image. Use the trueMatrix() function to retrieve the actual matrix used for transforming an image.

Unlike the other overload, this function can be used to perform perspective transformations on images.

See also trueMatrix() and Image Transformations.

QMatrix QImage.trueMatrix (QMatrix, int w, int h)

Returns the actual matrix used for transforming an image with the given width, height and matrix.

When transforming an image using the transformed() function, the transformation matrix is internally adjusted to compensate for unwanted translation, i.e. transformed() returns the smallest image containing all transformed points of the original image. This function returns the modified matrix, which maps points correctly from the original image into the new image.

See also transformed() and Image Transformations.

QTransform QImage.trueMatrix (QTransform, int w, int h)

Returns the actual matrix used for transforming an image with the given width, height and matrix.

When transforming an image using the transformed() function, the transformation matrix is internally adjusted to compensate for unwanted translation, i.e. transformed() returns the smallest image containing all transformed points of the original image. This function returns the modified matrix, which maps points correctly from the original image into the new image.

Unlike the other overload, this function creates transformation matrices that can be used to perform perspective transformations on images.

See also transformed() and Image Transformations.

bool QImage.valid (self, QPoint pt)

Returns true if pos is a valid coordinate pair within the image; otherwise returns false.

See also rect() and QRect.contains().

bool QImage.valid (self, int x, int y)

This is an overloaded function.

Returns true if QPoint(x, y) is a valid coordinate pair within the image; otherwise returns false.

int QImage.width (self)

Returns the width of the image.

See also Image Information.

bool QImage.__eq__ (self, QImage)

bool QImage.__ne__ (self, QImage)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qimageiohandler.html0000644000076500000240000005040012536324506021501 0ustar philstaff00000000000000 QImageIOHandler Class Reference
  Home · All Classes · Modules

QImageIOHandler Class Reference
[QtGui module]

The QImageIOHandler class defines the common image I/O interface for all image formats in Qt. More...

Types

  • enum ImageOption { Size, ClipRect, Description, ScaledClipRect, ..., BackgroundColor }

Methods


Detailed Description

The QImageIOHandler class defines the common image I/O interface for all image formats in Qt.

Qt uses QImageIOHandler for reading and writing images through QImageReader and QImageWriter. You can also derive from this class to write your own image format handler using Qt's plugin mechanism.

Call setDevice() to assign a device to the handler, and setFormat() to assign a format to it. One QImageIOHandler may support more than one image format. canRead() returns true if an image can be read from the device, and read() and write() return true if reading or writing an image was completed successfully.

QImageIOHandler also has support for animations formats, through the functions loopCount(), imageCount(), nextImageDelay() and currentImageNumber().

In order to determine what options an image handler supports, Qt will call supportsOption() and setOption(). Make sure to reimplement these functions if you can provide support for any of the options in the ImageOption enum.

To write your own image handler, you must at least reimplement canRead() and read(). Then create a QImageIOPlugin that can create the handler. Finally, install your plugin, and QImageReader and QImageWriter will then automatically load the plugin, and start using it.


Type Documentation

QImageIOHandler.ImageOption

This enum describes the different options supported by QImageIOHandler. Some options are used to query an image for properties, and others are used to toggle the way in which an image should be written.

Constant Value Description
QImageIOHandler.Size 0 The original size of an image. A handler that supports this option is expected to read the size of the image from the image metadata, and return this size from option() as a QSize.
QImageIOHandler.ClipRect 1 The clip rect, or ROI (Region Of Interest). A handler that supports this option is expected to only read the provided QRect area from the original image in read(), before any other transformation is applied.
QImageIOHandler.ScaledSize 4 The scaled size of the image. A handler that supports this option is expected to scale the image to the provided size (a QSize), after applying any clip rect transformation (ClipRect). If the handler does not support this option, QImageReader will perform the scaling after the image has been read.
QImageIOHandler.ScaledClipRect 3 The scaled clip rect (or ROI, Region Of Interest) of the image. A handler that supports this option is expected to apply the provided clip rect (a QRect), after applying any scaling (ScaleSize) or regular clipping (ClipRect). If the handler does not support this option, QImageReader will apply the scaled clip rect after the image has been read.
QImageIOHandler.Description 2 The image description. Some image formats, such as GIF and PNG, allow embedding of text or comments into the image data (e.g., for storing copyright information). It's common that the text is stored in key-value pairs, but some formats store all text in one continuous block. QImageIOHandler returns the text as one QString, where keys and values are separated by a ':', and keys-value pairs are separated by two newlines (\n\n). For example, "Title: Sunset\n\nAuthor: Jim Smith\nSarah Jones\n\n". Formats that store text in a single block can use "Description" as the key.
QImageIOHandler.CompressionRatio 5 The compression ratio of the image data. A handler that supports this option is expected to set its compression rate depending on the value of this option (an int) when writing.
QImageIOHandler.Gamma 6 The gamma level of the image. A handler that supports this option is expected to set the image gamma level depending on the value of this option (a float) when writing.
QImageIOHandler.Quality 7 The quality level of the image. A handler that supports this option is expected to set the image quality level depending on the value of this option (an int) when writing.
QImageIOHandler.Name 8 The name of the image. A handler that supports this option is expected to read the name from the image metadata and return this as a QString, or when writing an image it is expected to store the name in the image metadata.
QImageIOHandler.SubType 9 The subtype of the image. A handler that supports this option can use the subtype value to help when reading and writing images. For example, a PPM handler may have a subtype value of "ppm" or "ppmraw".
QImageIOHandler.IncrementalReading 10 A handler that supports this option is expected to read the image in several passes, as if it was an animation. QImageReader will treat the image as an animation.
QImageIOHandler.Endianness 11 The endianness of the image. Certain image formats can be stored as BigEndian or LittleEndian. A handler that supports Endianness uses the value of this option to determine how the image should be stored.
QImageIOHandler.Animation 12 Image formats that support animation return true for this value in supportsOption(); otherwise, false is returned.
QImageIOHandler.BackgroundColor 13 Certain image formats allow the background color to be specified. A handler that supports BackgroundColor initializes the background color to this option (a QColor) when reading an image.
QImageIOHandler.ImageFormat 14 The image's data format returned by the handler. This can be any of the formats listed in QImage.Format.

Method Documentation

QImageIOHandler.__init__ (self)

Constructs a QImageIOHandler object.

bool QImageIOHandler.canRead (self)

This method is abstract and should be reimplemented in any sub-class.

Returns true if an image can be read from the device (i.e., the image format is supported, the device can be read from and the initial header information suggests that the image can be read); otherwise returns false.

When reimplementing canRead(), make sure that the I/O device (device()) is left in its original state (e.g., by using peek() rather than read()).

See also read() and QIODevice.peek().

int QImageIOHandler.currentImageNumber (self)

For image formats that support animation, this function returns the sequence number of the current image in the animation. If this function is called before any image is read(), -1 is returned. The number of the first image in the sequence is 0.

If the image format does not support animation, 0 is returned.

See also read().

QRect QImageIOHandler.currentImageRect (self)

Returns the rect of the current image. If no rect is defined for the image, and empty QRect() is returned.

This function is useful for animations, where only parts of the frame may be updated at a time.

QIODevice QImageIOHandler.device (self)

Returns the device currently assigned to the QImageIOHandler. If not device has been assigned, 0 is returned.

See also setDevice().

QByteArray QImageIOHandler.format (self)

Returns the format that is currently assigned to QImageIOHandler. If no format has been assigned, an empty string is returned.

See also setFormat().

int QImageIOHandler.imageCount (self)

For image formats that support animation, this function returns the number of images in the animation. If the image format does not support animation, or if it is unable to determine the number of images, 0 is returned.

The default implementation returns 1 if canRead() returns true; otherwise 0 is returned.

bool QImageIOHandler.jumpToImage (self, int imageNumber)

For image formats that support animation, this function jumps to the image whose sequence number is imageNumber. The next call to read() will attempt to read this image.

The default implementation does nothing, and returns false.

bool QImageIOHandler.jumpToNextImage (self)

For image formats that support animation, this function jumps to the next image.

The default implementation does nothing, and returns false.

int QImageIOHandler.loopCount (self)

For image formats that support animation, this function returns the number of times the animation should loop. If the image format does not support animation, 0 is returned.

QByteArray QImageIOHandler.name (self)

int QImageIOHandler.nextImageDelay (self)

For image formats that support animation, this function returns the number of milliseconds to wait until reading the next image. If the image format does not support animation, 0 is returned.

QVariant QImageIOHandler.option (self, ImageOption option)

Returns the value assigned to option as a QVariant. The type of the value depends on the option. For example, option(Size) returns a QSize variant.

See also setOption() and supportsOption().

bool QImageIOHandler.read (self, QImage image)

This method is abstract and should be reimplemented in any sub-class.

Read an image from the device, and stores it in image. Returns true if the image is successfully read; otherwise returns false.

For image formats that support incremental loading, and for animation formats, the image handler can assume that image points to the previous frame.

See also canRead().

QImageIOHandler.setDevice (self, QIODevice device)

Sets the device of the QImageIOHandler to device. The image handler will use this device when reading and writing images.

The device can only be set once and must be set before calling canRead(), read(), write(), etc. If you need to read multiple files, construct multiple instances of the appropriate QImageIOHandler subclass.

See also device().

QImageIOHandler.setFormat (self, QByteArray format)

Sets the format of the QImageIOHandler to format. The format is most useful for handlers that support multiple image formats.

See also format().

QImageIOHandler.setOption (self, ImageOption option, QVariant value)

Sets the option option with the value value.

See also option() and ImageOption.

bool QImageIOHandler.supportsOption (self, ImageOption option)

Returns true if the QImageIOHandler supports the option option; otherwise returns false. For example, if the QImageIOHandler supports the Size option, supportsOption(Size) must return true.

See also setOption() and option().

bool QImageIOHandler.write (self, QImage image)

Writes the image image to the assigned device. Returns true on success; otherwise returns false.

The default implementation does nothing, and simply returns false.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qimagereader.html0000644000076500000240000012006212536324506021000 0ustar philstaff00000000000000 QImageReader Class Reference
  Home · All Classes · Modules

QImageReader Class Reference
[QtGui module]

The QImageReader class provides a format independent interface for reading images from files or other devices. More...

Types

  • enum ImageReaderError { UnknownError, FileNotFoundError, DeviceError, UnsupportedFormatError, InvalidDataError }

Methods

Static Methods


Detailed Description

The QImageReader class provides a format independent interface for reading images from files or other devices.

The most common way to read images is through QImage and QPixmap's constructors, or by calling QImage.load() and QPixmap.load(). QImageReader is a specialized class which gives you more control when reading images. For example, you can read an image into a specific size by calling setScaledSize(), and you can select a clip rect, effectively loading only parts of an image, by calling setClipRect(). Depending on the underlying support in the image format, this can save memory and speed up loading of images.

To read an image, you start by constructing a QImageReader object. Pass either a file name or a device pointer, and the image format to QImageReader's constructor. You can then set several options, such as the clip rect (by calling setClipRect()) and scaled size (by calling setScaledSize()). canRead() returns the image if the QImageReader can read the image (i.e., the image format is supported and the device is open for reading). Call read() to read the image.

If any error occurs when reading the image, read() will return a null QImage. You can then call error() to find the type of error that occurred, or errorString() to get a human readable description of what went wrong.

Call supportedImageFormats() for a list of formats that QImageReader can read. QImageReader supports all built-in image formats, in addition to any image format plugins that support reading.

QImageReader autodetects the image format by default, by looking at the provided (optional) format string, the file name suffix, and the data stream contents. You can enable or disable this feature, by calling setAutoDetectImageFormat().


Type Documentation

QImageReader.ImageReaderError

This enum describes the different types of errors that can occur when reading images with QImageReader.

Constant Value Description
QImageReader.FileNotFoundError 1 QImageReader was used with a file name, but not file was found with that name. This can also happen if the file name contained no extension, and the file with the correct extension is not supported by Qt.
QImageReader.DeviceError 2 QImageReader encountered a device error when reading the image. You can consult your particular device for more details on what went wrong.
QImageReader.UnsupportedFormatError 3 Qt does not support the requested image format.
QImageReader.InvalidDataError 4 The image data was invalid, and QImageReader was unable to read an image from it. The can happen if the image file is damaged.
QImageReader.UnknownError 0 An unknown error occurred. If you get this value after calling read(), it is most likely caused by a bug in QImageReader.

Method Documentation

QImageReader.__init__ (self)

Constructs an empty QImageReader object. Before reading an image, call setDevice() or setFileName().

QImageReader.__init__ (self, QIODevice device, QByteArray format = QByteArray())

Constructs a QImageReader object with the device device and the image format format.

QImageReader.__init__ (self, QString fileName, QByteArray format = QByteArray())

Constructs a QImageReader object with the file name fileName and the image format format.

See also setFileName().

bool QImageReader.autoDetectImageFormat (self)

Returns true if image format autodetection is enabled on this image reader; otherwise returns false. By default, autodetection is enabled.

See also setAutoDetectImageFormat().

QColor QImageReader.backgroundColor (self)

Returns the background color that's used when reading an image. If the image format does not support setting the background color an invalid color is returned.

This function was introduced in Qt 4.1.

See also setBackgroundColor() and read().

bool QImageReader.canRead (self)

Returns true if an image can be read for the device (i.e., the image format is supported, and the device seems to contain valid data); otherwise returns false.

canRead() is a lightweight function that only does a quick test to see if the image data is valid. read() may still return false after canRead() returns true, if the image data is corrupt.

For images that support animation, canRead() returns false when all frames have been read.

See also read() and supportedImageFormats().

QRect QImageReader.clipRect (self)

Returns the clip rect (also known as the ROI, or Region Of Interest) of the image. If no clip rect has been set, an invalid QRect is returned.

See also setClipRect().

int QImageReader.currentImageNumber (self)

For image formats that support animation, this function returns the sequence number of the current frame. If the image format doesn't support animation, 0 is returned.

This function returns -1 if an error occurred.

See also supportsAnimation(), QImageIOHandler.currentImageNumber(), and canRead().

QRect QImageReader.currentImageRect (self)

For image formats that support animation, this function returns the rect for the current frame. Otherwise, a null rect is returned.

See also supportsAnimation() and QImageIOHandler.currentImageRect().

bool QImageReader.decideFormatFromContent (self)

Returns whether the image reader should decide which plugin to use only based on the contents of the datastream rather than on the file extension.

See also setDecideFormatFromContent().

QIODevice QImageReader.device (self)

Returns the device currently assigned to QImageReader, or 0 if no device has been assigned.

See also setDevice().

ImageReaderError QImageReader.error (self)

Returns the type of error that occurred last.

See also ImageReaderError and errorString().

QString QImageReader.errorString (self)

Returns a human readable description of the last error that occurred.

See also error().

QString QImageReader.fileName (self)

If the currently assigned device is a QFile, or if setFileName() has been called, this function returns the name of the file QImageReader reads from. Otherwise (i.e., if no device has been assigned or the device is not a QFile), an empty QString is returned.

See also setFileName() and setDevice().

QByteArray QImageReader.format (self)

Returns the format QImageReader uses for reading images.

You can call this function after assigning a device to the reader to determine the format of the device. For example:

 QImageReader reader("image.png");
 // reader.format() == "png"

If the reader cannot read any image from the device (e.g., there is no image there, or the image has already been read), or if the format is unsupported, this function returns an empty QByteArray().

See also setFormat() and supportedImageFormats().

int QImageReader.imageCount (self)

For image formats that support animation, this function returns the total number of images in the animation. If the format does not support animation, 0 is returned.

This function returns -1 if an error occurred.

See also supportsAnimation(), QImageIOHandler.imageCount(), and canRead().

QByteArray QImageReader.imageFormat (QString fileName)

Returns the format of the image, without actually reading the image contents. The format describes the image format QImageReader.read() returns, not the format of the actual image.

If the image format does not support this feature, this function returns an invalid format.

This function was introduced in Qt 4.5.

See also QImageIOHandler.ImageOption, QImageIOHandler.option(), and QImageIOHandler.supportsOption().

QByteArray QImageReader.imageFormat (QIODevice device)

If supported, this function returns the image format of the file fileName. Otherwise, an empty string is returned.

QImage.Format QImageReader.imageFormat (self)

If supported, this function returns the image format of the device device. Otherwise, an empty string is returned.

See also QImageReader.autoDetectImageFormat().

bool QImageReader.jumpToImage (self, int imageNumber)

For image formats that support animation, this function skips to the image whose sequence number is imageNumber, returning true if successful or false if the corresponding image cannot be found.

The next call to read() will attempt to read this image.

See also jumpToNextImage() and QImageIOHandler.jumpToImage().

bool QImageReader.jumpToNextImage (self)

For image formats that support animation, this function steps over the current image, returning true if successful or false if there is no following image in the animation.

The default implementation calls read(), then discards the resulting image, but the image handler may have a more efficient way of implementing this operation.

See also jumpToImage() and QImageIOHandler.jumpToNextImage().

int QImageReader.loopCount (self)

For image formats that support animation, this function returns the number of times the animation should loop. If this function returns -1, it can either mean the animation should loop forever, or that an error occurred. If an error occurred, canRead() will return false.

See also supportsAnimation(), QImageIOHandler.loopCount(), and canRead().

int QImageReader.nextImageDelay (self)

For image formats that support animation, this function returns the number of milliseconds to wait until displaying the next frame in the animation. If the image format doesn't support animation, 0 is returned.

This function returns -1 if an error occurred.

See also supportsAnimation(), QImageIOHandler.nextImageDelay(), and canRead().

int QImageReader.quality (self)

Returns the quality level of the image.

This function was introduced in Qt 4.2.

See also setQuality().

QImage QImageReader.read (self)

Reads an image from the device. On success, the image that was read is returned; otherwise, a null QImage is returned. You can then call error() to find the type of error that occurred, or errorString() to get a human readable description of the error.

For image formats that support animation, calling read() repeatedly will return the next frame. When all frames have been read, a null image will be returned.

See also canRead(), supportedImageFormats(), supportsAnimation(), and QMovie.

bool QImageReader.read (self, QImage image)

This is an overloaded function.

Reads an image from the device into image, which must point to a QImage. Returns true on success; otherwise, returns false.

If image has same format and size as the image data that is about to be read, this function may not need to allocate a new image before reading. Because of this, it can be faster than the other read() overload, which always constructs a new image; especially when reading several images with the same format and size.

 QImage icon(64, 64, QImage.Format_RGB32);
 QImageReader reader("icon_64x64.bmp");
 if (reader.read(&icon)) {
     // Display icon
 }

For image formats that support animation, calling read() repeatedly will return the next frame. When all frames have been read, a null image will be returned.

See also canRead(), supportedImageFormats(), supportsAnimation(), and QMovie.

QRect QImageReader.scaledClipRect (self)

Returns the scaled clip rect of the image.

See also setScaledClipRect().

QSize QImageReader.scaledSize (self)

Returns the scaled size of the image.

See also setScaledSize().

QImageReader.setAutoDetectImageFormat (self, bool enabled)

If enabled is true, image format autodetection is enabled; otherwise, it is disabled. By default, autodetection is enabled.

QImageReader uses an extensive approach to detecting the image format; firstly, if you pass a file name to QImageReader, it will attempt to detect the file extension if the given file name does not point to an existing file, by appending supported default extensions to the given file name, one at a time. It then uses the following approach to detect the image format:

  • Image plugins are queried first, based on either the optional format string, or the file name suffix (if the source device is a file). No content detection is done at this stage. QImageReader will choose the first plugin that supports reading for this format.
  • If no plugin supports the image format, Qt's built-in handlers are checked based on either the optional format string, or the file name suffix.
  • If no capable plugins or built-in handlers are found, each plugin is tested by inspecting the content of the data stream.
  • If no plugins could detect the image format based on data contents, each built-in image handler is tested by inspecting the contents.
  • Finally, if all above approaches fail, QImageReader will report failure when trying to read the image.

By disabling image format autodetection, QImageReader will only query the plugins and built-in handlers based on the format string (i.e., no file name extensions are tested).

See also autoDetectImageFormat(), QImageIOHandler.canRead(), and QImageIOPlugin.capabilities().

QImageReader.setBackgroundColor (self, QColor color)

Sets the background color to color. Image formats that support this operation are expected to initialize the background to color before reading an image.

This function was introduced in Qt 4.1.

See also backgroundColor() and read().

QImageReader.setClipRect (self, QRect rect)

Sets the image clip rect (also known as the ROI, or Region Of Interest) to rect. The coordinates of rect are relative to the untransformed image size, as returned by size().

See also clipRect(), setScaledSize(), and setScaledClipRect().

QImageReader.setDecideFormatFromContent (self, bool ignored)

If ignored is set to true, then the image reader will ignore specified formats or file extensions and decide which plugin to use only based on the contents in the datastream.

Setting this flag means that all image plugins gets loaded. Each plugin will read the first bytes in the image data and decide if the plugin is compatible or not.

This also disables auto detecting the image format.

See also decideFormatFromContent().

QImageReader.setDevice (self, QIODevice device)

Sets QImageReader's device to device. If a device has already been set, the old device is removed from QImageReader and is otherwise left unchanged.

If the device is not already open, QImageReader will attempt to open the device in QIODevice.ReadOnly mode by calling open(). Note that this does not work for certain devices, such as QProcess, QTcpSocket and QUdpSocket, where more logic is required to open the device.

See also device() and setFileName().

QImageReader.setFileName (self, QString fileName)

Sets the file name of QImageReader to fileName. Internally, QImageReader will create a QFile object and open it in QIODevice.ReadOnly mode, and use this when reading images.

If fileName does not include a file extension (e.g., .png or .bmp), QImageReader will cycle through all supported extensions until it finds a matching file.

See also fileName(), setDevice(), and supportedImageFormats().

QImageReader.setFormat (self, QByteArray format)

Sets the format QImageReader will use when reading images, to format. format is a case insensitive text string. Example:

 QImageReader reader;
 reader.setFormat("png"); // same as reader.setFormat("PNG");

You can call supportedImageFormats() for the full list of formats QImageReader supports.

See also format().

QImageReader.setQuality (self, int quality)

This is an image format specific function that sets the quality level of the image to quality. For image formats that do not support setting the quality, this value is ignored.

The value range of quality depends on the image format. For example, the "jpeg" format supports a quality range from 0 (low quality, high compression) to 100 (high quality, low compression).

This function was introduced in Qt 4.2.

See also quality().

QImageReader.setScaledClipRect (self, QRect rect)

Sets the scaled clip rect to rect. The scaled clip rect is the clip rect (also known as ROI, or Region Of Interest) that is applied after the image has been scaled.

See also scaledClipRect() and setScaledSize().

QImageReader.setScaledSize (self, QSize size)

Sets the scaled size of the image to size. The scaling is performed after the initial clip rect, but before the scaled clip rect is applied. The algorithm used for scaling depends on the image format. By default (i.e., if the image format does not support scaling), QImageReader will use QImage.scale() with Qt.SmoothScaling.

See also scaledSize(), setClipRect(), and setScaledClipRect().

QSize QImageReader.size (self)

Returns the size of the image, without actually reading the image contents.

If the image format does not support this feature, this function returns an invalid size. Qt's built-in image handlers all support this feature, but custom image format plugins are not required to do so.

See also QImageIOHandler.ImageOption, QImageIOHandler.option(), and QImageIOHandler.supportsOption().

list-of-QByteArray QImageReader.supportedImageFormats ()

Returns the list of image formats supported by QImageReader.

By default, Qt can read the following formats:

Format Description
BMP Windows Bitmap
GIF Graphic Interchange Format (optional)
JPG Joint Photographic Experts Group
JPEG Joint Photographic Experts Group
MNG Multiple-image Network Graphics
PNG Portable Network Graphics
PBM Portable Bitmap
PGM Portable Graymap
PPM Portable Pixmap
TIFF Tagged Image File Format
XBM X11 Bitmap
XPM X11 Pixmap
SVG Scalable Vector Graphics
TGA Targa Image Format

Reading and writing SVG files is supported through Qt's SVG Module.

TGA support only extends to reading non-RLE compressed files. In particular calls to capabilities for the tga plugin returns only QImageIOPlugin.CanRead, not QImageIOPlugin.CanWrite.

To configure Qt with GIF support, pass -qt-gif to the configure script or check the appropriate option in the graphical installer.

Note that the QApplication instance must be created before this function is called.

See also setFormat(), QImageWriter.supportedImageFormats(), and QImageIOPlugin.

bool QImageReader.supportsAnimation (self)

Returns true if the image format supports animation; otherwise, false is returned.

This function was introduced in Qt 4.1.

See also QMovie.supportedFormats().

bool QImageReader.supportsOption (self, QImageIOHandler.ImageOption option)

Returns true if the reader supports option; otherwise returns false.

Different image formats support different options. Call this function to determine whether a certain option is supported by the current format. For example, the PNG format allows you to embed text into the image's metadata (see text()), and the BMP format allows you to determine the image's size without loading the whole image into memory (see size()).

 QImageReader reader(":/image.png");
 if (reader.supportsOption(QImageIOHandler.Size))
     qDebug() << "Size:" << reader.size();

This function was introduced in Qt 4.2.

See also QImageWriter.supportsOption().

QString QImageReader.text (self, QString key)

Returns the image text associated with key.

Support for this option is implemented through QImageIOHandler.Description.

This function was introduced in Qt 4.1.

See also textKeys() and QImageWriter.setText().

QStringList QImageReader.textKeys (self)

Returns the text keys for this image. You can use these keys with text() to list the image text for a certain key.

Support for this option is implemented through QImageIOHandler.Description.

This function was introduced in Qt 4.1.

See also text(), QImageWriter.setText(), and QImage.textKeys().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qimagewriter.html0000644000076500000240000005130412536324507021055 0ustar philstaff00000000000000 QImageWriter Class Reference
  Home · All Classes · Modules

QImageWriter Class Reference
[QtGui module]

The QImageWriter class provides a format independent interface for writing images to files or other devices. More...

Types

Methods

Static Methods


Detailed Description

The QImageWriter class provides a format independent interface for writing images to files or other devices.

QImageWriter supports setting format specific options, such as the gamma level, compression level and quality, prior to storing the image. If you do not need such options, you can use QImage.save() or QPixmap.save() instead.

To store an image, you start by constructing a QImageWriter object. Pass either a file name or a device pointer, and the image format to QImageWriter's constructor. You can then set several options, such as the gamma level (by calling setGamma()) and quality (by calling setQuality()). canWrite() returns true if QImageWriter can write the image (i.e., the image format is supported and the device is open for writing). Call write() to write the image to the device.

If any error occurs when writing the image, write() will return false. You can then call error() to find the type of error that occurred, or errorString() to get a human readable description of what went wrong.

Call supportedImageFormats() for a list of formats that QImageWriter can write. QImageWriter supports all built-in image formats, in addition to any image format plugins that support writing.


Type Documentation

QImageWriter.ImageWriterError

This enum describes errors that can occur when writing images with QImageWriter.

Constant Value Description
QImageWriter.DeviceError 1 QImageWriter encountered a device error when writing the image data. Consult your device for more details on what went wrong.
QImageWriter.UnsupportedFormatError 2 Qt does not support the requested image format.
QImageWriter.UnknownError 0 An unknown error occurred. If you get this value after calling write(), it is most likely caused by a bug in QImageWriter.

Method Documentation

QImageWriter.__init__ (self)

Constructs an empty QImageWriter object. Before writing, you must call setFormat() to set an image format, then setDevice() or setFileName().

QImageWriter.__init__ (self, QIODevice device, QByteArray format)

Constructs a QImageWriter object using the device device and image format format.

QImageWriter.__init__ (self, QString fileName, QByteArray format = QByteArray())

Constructs a QImageWriter objects that will write to a file with the name fileName, using the image format format. If format is not provided, QImageWriter will detect the image format by inspecting the extension of fileName.

bool QImageWriter.canWrite (self)

Returns true if QImageWriter can write the image; i.e., the image format is supported and the assigned device is open for reading.

See also write(), setDevice(), and setFormat().

int QImageWriter.compression (self)

Returns the compression of the image.

See also setCompression().

QString QImageWriter.description (self)

QIODevice QImageWriter.device (self)

Returns the device currently assigned to QImageWriter, or 0 if no device has been assigned.

See also setDevice().

ImageWriterError QImageWriter.error (self)

Returns the type of error that last occurred.

See also ImageWriterError and errorString().

QString QImageWriter.errorString (self)

Returns a human readable description of the last error that occurred.

See also error().

QString QImageWriter.fileName (self)

If the currently assigned device is a QFile, or if setFileName() has been called, this function returns the name of the file QImageWriter writes to. Otherwise (i.e., if no device has been assigned or the device is not a QFile), an empty QString is returned.

See also setFileName() and setDevice().

QByteArray QImageWriter.format (self)

Returns the format QImageWriter uses for writing images.

See also setFormat().

float QImageWriter.gamma (self)

Returns the gamma level of the image.

See also setGamma().

int QImageWriter.quality (self)

Returns the quality level of the image.

See also setQuality().

QImageWriter.setCompression (self, int compression)

This is an image format specific function that set the compression of an image. For image formats that do not support setting the compression, this value is ignored.

The value range of compression depends on the image format. For example, the "tiff" format supports two values, 0(no compression) and 1(LZW-compression).

See also compression().

QImageWriter.setDescription (self, QString description)

QImageWriter.setDevice (self, QIODevice device)

Sets QImageWriter's device to device. If a device has already been set, the old device is removed from QImageWriter and is otherwise left unchanged.

If the device is not already open, QImageWriter will attempt to open the device in QIODevice.WriteOnly mode by calling open(). Note that this does not work for certain devices, such as QProcess, QTcpSocket and QUdpSocket, where more logic is required to open the device.

See also device() and setFileName().

QImageWriter.setFileName (self, QString fileName)

Sets the file name of QImageWriter to fileName. Internally, QImageWriter will create a QFile and open it in QIODevice.WriteOnly mode, and use this file when writing images.

See also fileName() and setDevice().

QImageWriter.setFormat (self, QByteArray format)

Sets the format QImageWriter will use when writing images, to format. format is a case insensitive text string. Example:

 QImageWriter writer;
 writer.setFormat("png"); // same as writer.setFormat("PNG");

You can call supportedImageFormats() for the full list of formats QImageWriter supports.

See also format().

QImageWriter.setGamma (self, float gamma)

This is an image format specific function that sets the gamma level of the image to gamma. For image formats that do not support setting the gamma level, this value is ignored.

The value range of gamma depends on the image format. For example, the "png" format supports a gamma range from 0.0 to 1.0.

See also gamma() and quality().

QImageWriter.setQuality (self, int quality)

This is an image format specific function that sets the quality level of the image to quality. For image formats that do not support setting the quality, this value is ignored.

The value range of quality depends on the image format. For example, the "jpeg" format supports a quality range from 0 (low quality, high compression) to 100 (high quality, low compression).

See also quality().

QImageWriter.setText (self, QString key, QString text)

Sets the image text associated with the key key to text. This is useful for storing copyright information or other information about the image. Example:

 QImage image("some/image.jpeg");
 QImageWriter writer("images/outimage.png", "png");
 writer.setText("Author", "John Smith");
 writer.write(image);

If you want to store a single block of data (e.g., a comment), you can pass an empty key, or use a generic key like "Description".

The key and text will be embedded into the image data after calling write().

Support for this option is implemented through QImageIOHandler.Description.

This function was introduced in Qt 4.1.

See also QImage.setText() and QImageReader.text().

list-of-QByteArray QImageWriter.supportedImageFormats ()

Returns the list of image formats supported by QImageWriter.

By default, Qt can write the following formats:

Format Description
BMP Windows Bitmap
JPG Joint Photographic Experts Group
JPEG Joint Photographic Experts Group
PNG Portable Network Graphics
PPM Portable Pixmap
TIFF Tagged Image File Format
XBM X11 Bitmap
XPM X11 Pixmap

Reading and writing SVG files is supported through Qt's SVG Module.

Note that the QApplication instance must be created before this function is called.

See also setFormat(), QImageReader.supportedImageFormats(), and QImageIOPlugin.

bool QImageWriter.supportsOption (self, QImageIOHandler.ImageOption option)

Returns true if the writer supports option; otherwise returns false.

Different image formats support different options. Call this function to determine whether a certain option is supported by the current format. For example, the PNG format allows you to embed text into the image's metadata (see text()).

 QImageWriter writer(fileName);
 if (writer.supportsOption(QImageIOHandler.Description))
     writer.setText("Author", "John Smith");

Options can be tested after the writer has been associated with a format.

This function was introduced in Qt 4.2.

See also QImageReader.supportsOption() and setFormat().

bool QImageWriter.write (self, QImage image)

Writes the image image to the assigned device or file name. Returns true on success; otherwise returns false. If the operation fails, you can call error() to find the type of error that occurred, or errorString() to get a human readable description of the error.

See also canWrite(), error(), and errorString().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qinputcontext.html0000644000076500000240000004104012536324507021276 0ustar philstaff00000000000000 QInputContext Class Reference
  Home · All Classes · Modules

QInputContext Class Reference
[QtGui module]

The QInputContext class abstracts the input method dependent data and composing state. More...

Inherits QObject.

Types

Methods


Detailed Description

The QInputContext class abstracts the input method dependent data and composing state.

An input method is responsible for inputting complex text that cannot be inputted via simple keymap. It converts a sequence of input events (typically key events) into a text string through the input method specific converting process. The class of the processes are widely ranging from simple finite state machine to complex text translator that pools a whole paragraph of a text with text editing capability to perform grammar and semantic analysis.

To abstract such different input method specific intermediate information, Qt offers the QInputContext as base class. The concept is well known as 'input context' in the input method domain. An input context is created for a text widget in response to a demand. It is ensured that an input context is prepared for an input method before input to a text widget.

Multiple input contexts that belong to a single input method may concurrently coexist. Suppose multi-window text editor. Each text widget of window A and B holds different QInputContext instance which contains different state information such as partially composed text.

Groups of Functions

Context Functions
Receiving information x11FilterEvent(), filterEvent(), mouseHandler()
Sending back composed text sendEvent()
State change notification setFocusWidget(), reset()
Context information identifierName(), language(), font(), isComposing()

Licensing Information

Copyright (C) 2003-2004 immodule for Qt Project. All rights reserved.

This file is written to contribute to Nokia Corporation and/or its subsidiary(-ies) under their own license. You may use this file under your Qt license. Following description is copied from their original file headers. Contact immodule-qt@freedesktop.org if any conditions of this licensing are not clear to you.


Type Documentation

QInputContext.StandardFormat

Constant Value Description
QInputContext.PreeditFormat 0 The preedit text.
QInputContext.SelectionFormat 1 The selection text.

See also standardFormat().


Method Documentation

QInputContext.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an input context with the given parent.

list-of-QAction QInputContext.actions (self)

This is a preliminary interface for Qt 4.

bool QInputContext.filterEvent (self, QEvent event)

This function can be reimplemented in a subclass to filter input events.

Return true if the event has been consumed. Otherwise, the unfiltered event will be forwarded to widgets as ordinary way. Although the input events have accept() and ignore() methods, leave it untouched.

event is currently restricted to events of these types:

  • CloseSoftwareInputPanel
  • KeyPress
  • KeyRelease
  • MouseButtonDblClick
  • MouseButtonPress
  • MouseButtonRelease
  • MouseMove
  • RequestSoftwareInputPanel

But some input method related events such as QWheelEvent or QTabletEvent may be added in future.

The filtering opportunity is always given to the input context as soon as possible. It has to be taken place before any other key event consumers such as eventfilters and accelerators because some input methods require quite various key combination and sequences. It often conflicts with accelerators and so on, so we must give the input context the filtering opportunity first to ensure all input methods work properly regardless of application design.

Ordinary input methods require discrete key events to work properly, so Qt's key compression is always disabled for any input contexts.

See also QKeyEvent and x11FilterEvent().

QWidget QInputContext.focusWidget (self)

Returns the widget that has an input focus for this input context.

The return value may differ from holderWidget() if the input context is shared between several text widgets.

Warning: To ensure platform independence and support flexible configuration of widgets, ordinary input methods should not call this function directly.

See also setFocusWidget().

QFont QInputContext.font (self)

Returns the font of the current input widget

QString QInputContext.identifierName (self)

This method is abstract and should be reimplemented in any sub-class.

This function must be implemented in any subclasses to return the identifier name of the input method.

Return value is the name to identify and specify input methods for the input method switching mechanism and so on. The name has to be consistent with QInputContextPlugin.keys(). The name has to consist of ASCII characters only.

There are two different names with different responsibility in the input method domain. This function returns one of them. Another name is called 'display name' that stands for the name for endusers appeared in a menu and so on.

See also QInputContextPlugin.keys() and QInputContextPlugin.displayName().

bool QInputContext.isComposing (self)

This method is abstract and should be reimplemented in any sub-class.

This function indicates whether InputMethodStart event had been sent to the current focus widget. It is ensured that an input context can send InputMethodCompose or InputMethodEnd event safely if this function returned true.

The state is automatically being tracked through sendEvent().

See also sendEvent().

QString QInputContext.language (self)

This method is abstract and should be reimplemented in any sub-class.

This function must be implemented in any subclasses to return a language code (e.g. "zh_CN", "zh_TW", "zh_HK", "ja", "ko", ...) of the input context. If the input context can handle multiple languages, return the currently used one. The name has to be consistent with QInputContextPlugin.language().

This information will be used by language tagging feature in QInputMethodEvent. It is required to distinguish unified han characters correctly. It enables proper font and character code handling. Suppose CJK-awared multilingual web browser (that automatically modifies fonts in CJK-mixed text) and XML editor (that automatically inserts lang attr).

QInputContext.mouseHandler (self, int x, QMouseEvent event)

This function can be reimplemented in a subclass to handle mouse press, release, double-click, and move events within the preedit text. You can use the function to implement mouse-oriented user interface such as text selection or popup menu for candidate selection.

The x parameter is the offset within the string that was sent with the InputMethodCompose event. The alteration boundary of x is ensured as character boundary of preedit string accurately.

The event parameter is the event that was sent to the editor widget. The event type is QEvent.MouseButtonPress, QEvent.MouseButtonRelease, QEvent.MouseButtonDblClick or QEvent.MouseMove. The event's button and state indicate the kind of operation that was performed.

QInputContext.reset (self)

This method is abstract and should be reimplemented in any sub-class.

This function can be reimplemented in a subclass to reset the state of the input method.

This function is called by several widgets to reset input state. For example, a text widget call this function before inserting a text to make widget ready to accept a text.

Default implementation is sufficient for simple input method. You can override this function to reset external input method engines in complex input method. In the case, call QInputContext.reset() to ensure proper termination of inputting.

In a reimplementation of reset(), you must not send any QInputMethodEvent containing preedit text. You can only commit string and attributes; otherwise, you risk breaking input state consistency.

QInputContext.sendEvent (self, QInputMethodEvent event)

Sends an input method event specified by event to the current focus widget. Implementations of QInputContext should call this method to send the generated input method events and not QApplication.sendEvent(), as the events might have to get dispatched to a different application on some platforms.

Some complex input methods route the handling to several child contexts (e.g. to enable language switching). To account for this, QInputContext will check if the parent object is a QInputContext. If yes, it will call the parents sendEvent() implementation instead of sending the event directly.

See also QInputMethodEvent.

QInputContext.setFocusWidget (self, QWidget w)

Sets the widget that has an input focus for this input context.

Warning: Ordinary input methods must not call this function directly.

See also focusWidget().

QTextFormat QInputContext.standardFormat (self, StandardFormat s)

Returns a QTextFormat object that specifies the format for component s.

QInputContext.update (self)

This virtual function is called when a state in the focus widget has changed. QInputContext can then use QWidget.inputMethodQuery() to query the new state of the widget.

QInputContext.widgetDestroyed (self, QWidget w)

This virtual function is called when the specified widget is destroyed. The widget is a widget on which this input context is installed.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qinputcontextfactory.html0000644000076500000240000001705512536324507022677 0ustar philstaff00000000000000 QInputContextFactory Class Reference
  Home · All Classes · Modules

QInputContextFactory Class Reference
[QtGui module]

The QInputContextFactory class creates QInputContext objects. More...

Methods

Static Methods


Detailed Description

The QInputContextFactory class creates QInputContext objects.

The input context factory creates a QInputContext object for a given key with QInputContextFactory.create().

The input contexts are either built-in or dynamically loaded from an input context plugin (see QInputContextPlugin).

keys() returns a list of valid keys. The keys are the names used, for example, to identify and specify input methods for the input method switching mechanism. The names have to be consistent with QInputContext.identifierName(), and may only contain ASCII characters.

A key can be used to retrieve the associated input context's supported languages using languages(). You can retrieve the input context's description using description() and finally you can get a user friendly internationalized name of the QInputContext object specified by the key using displayName().

Copyright (C) 2003-2004 immodule for Qt Project. All rights reserved.

This file is written to contribute to Nokia Corporation and/or its subsidiary(-ies) under their own license. You may use this file under your Qt license. Following description is copied from their original file headers. Contact immodule-qt@freedesktop.org if any conditions of this licensing are not clear to you.


Method Documentation

QInputContextFactory.__init__ (self)

QInputContextFactory.__init__ (self, QInputContextFactory)

QInputContext QInputContextFactory.create (QString key, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates and returns a QInputContext object for the input context specified by key with the given parent. Keys are case sensitive.

See also keys().

QString QInputContextFactory.description (QString key)

Returns an internationalized brief description of the QInputContext object specified by key. You can, for example, use this description in a user interface.

See also keys() and displayName().

QString QInputContextFactory.displayName (QString key)

Returns a user friendly internationalized name of the QInputContext object specified by key. You can, for example, use this name in a menu.

See also keys() and QInputContext.identifierName().

QStringList QInputContextFactory.keys ()

Returns the list of keys this factory can create input contexts for.

The keys are the names used, for example, to identify and specify input methods for the input method switching mechanism. The names have to be consistent with QInputContext.identifierName(), and may only contain ASCII characters.

See also create(), displayName(), and QInputContext.identifierName().

QStringList QInputContextFactory.languages (QString key)

Returns the languages supported by the QInputContext object specified by key.

The languages are expressed as language code (e.g. "zh_CN", "zh_TW", "zh_HK", "ja", "ko", ...). An input context that supports multiple languages can return all supported languages as a QStringList. The name has to be consistent with QInputContext.language().

This information may be used to optimize a user interface.

See also keys(), QInputContext.language(), and QLocale.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qinputdialog-inputdialogoptions.html0000644000076500000240000001512512536324507025007 0ustar philstaff00000000000000 QInputDialog.InputDialogOptions Class Reference
  Home · All Classes · Modules

QInputDialog.InputDialogOptions Class Reference
[QtGui module]

Methods

Special Methods

  • InputDialogOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, InputDialogOptions f)
  • InputDialogOptions __iand__ (self, int mask)
  • int __int__ (self)
  • InputDialogOptions __invert__ (self)
  • InputDialogOptions __ior__ (self, InputDialogOptions f)
  • InputDialogOptions __ixor__ (self, InputDialogOptions f)
  • bool __ne__ (self, InputDialogOptions f)
  • InputDialogOptions __or__ (self, InputDialogOptions f)
  • InputDialogOptions __or__ (self, int f)
  • InputDialogOptions __xor__ (self, InputDialogOptions f)
  • InputDialogOptions __xor__ (self, int f)

Detailed Description


Method Documentation

InputDialogOptions.__init__ (self, InputDialogOptions)

InputDialogOptions.__init__ (self, int)

InputDialogOptions.__init__ (self)

InputDialogOptions InputDialogOptions.__and__ (self, int mask)

int InputDialogOptions.__bool__ (self)

bool InputDialogOptions.__eq__ (self, InputDialogOptions f)

InputDialogOptions InputDialogOptions.__iand__ (self, int mask)

int InputDialogOptions.__int__ (self)

InputDialogOptions InputDialogOptions.__invert__ (self)

InputDialogOptions InputDialogOptions.__ior__ (self, InputDialogOptions f)

InputDialogOptions InputDialogOptions.__ixor__ (self, InputDialogOptions f)

bool InputDialogOptions.__ne__ (self, InputDialogOptions f)

InputDialogOptions InputDialogOptions.__or__ (self, InputDialogOptions f)

InputDialogOptions InputDialogOptions.__or__ (self, int f)

InputDialogOptions InputDialogOptions.__xor__ (self, InputDialogOptions f)

InputDialogOptions InputDialogOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qinputdialog.html0000644000076500000240000011651412536324507021062 0ustar philstaff00000000000000 QInputDialog Class Reference
  Home · All Classes · Modules

QInputDialog Class Reference
[QtGui module]

The QInputDialog class provides a simple convenience dialog to get a single value from the user. More...

Inherits QDialog.

Types

Methods

Static Methods

  • (float, bool ok) getDouble (QWidget parent, QString title, QString label, float value = 0, float min = -2147483647, float max = 2147483647, int decimals = 1, Qt.WindowFlags flags = 0)
  • (int, bool ok) getInt (QWidget parent, QString title, QString label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, Qt.WindowFlags flags = 0)
  • (int, bool ok) getInteger (QWidget parent, QString title, QString label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, Qt.WindowFlags flags = 0)
  • (QString, bool ok) getItem (QWidget parent, QString title, QString label, QStringList list, int current = 0, bool editable = True, Qt.WindowFlags flags = 0)
  • (QString, bool ok) getItem (QWidget parent, QString title, QString label, QStringList list, int current, bool editable, Qt.WindowFlags flags, Qt.InputMethodHints inputMethodHints)
  • (QString, bool ok) getText (QWidget parent, QString title, QString label, QLineEdit.EchoMode mode = QLineEdit.Normal, QString text = QString(), Qt.WindowFlags flags = 0)
  • (QString, bool ok) getText (QWidget parent, QString title, QString label, QLineEdit.EchoMode mode, QString text, Qt.WindowFlags flags, Qt.InputMethodHints inputMethodHints)

Qt Signals


Detailed Description

The QInputDialog class provides a simple convenience dialog to get a single value from the user.

The input value can be a string, a number or an item from a list. A label must be set to tell the user what they should enter.

Four static convenience functions are provided: getText(), getInt(), getDouble(), and getItem(). All the functions can be used in a similar way, for example:

     bool ok;
     QString text = QInputDialog.getText(this, tr("QInputDialog.getText()"),
                                          tr("User name:"), QLineEdit.Normal,
                                          QDir.home().dirName(), &ok);
     if (ok && !text.isEmpty())
         textLabel->setText(text);

The ok variable is set to true if the user clicks OK; otherwise it is set to false.

Input Dialogs

The Standard Dialogs example shows how to use QInputDialog as well as other built-in Qt dialogs.


Type Documentation

QInputDialog.InputDialogOption

This enum specifies various options that affect the look and feel of an input dialog.

Constant Value Description
QInputDialog.NoButtons 0x00000001 Don't display OK and Cancel buttons. (Useful for "live dialogs".)
QInputDialog.UseListViewForComboBoxItems 0x00000002 Use a QListView rather than a non-editable QComboBox for displaying the items set with setComboBoxItems().

This enum was introduced or modified in Qt 4.5.

The InputDialogOptions type is a typedef for QFlags<InputDialogOption>. It stores an OR combination of InputDialogOption values.

See also options, setOption(), and testOption().

QInputDialog.InputMode

This enum describes the different modes of input that can be selected for the dialog.

Constant Value Description
QInputDialog.TextInput 0 Used to input text strings.
QInputDialog.IntInput 1 Used to input integers.
QInputDialog.DoubleInput 2 Used to input floating point numbers with double precision accuracy.

This enum was introduced or modified in Qt 4.5.

See also inputMode.


Method Documentation

QInputDialog.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new input dialog with the given parent and window flags.

This function was introduced in Qt 4.5.

QString QInputDialog.cancelButtonText (self)

QStringList QInputDialog.comboBoxItems (self)

QInputDialog.done (self, int result)

Reimplemented from QDialog.done().

Closes the dialog and sets its result code to result. If this dialog is shown with exec_(), done() causes the local event loop to finish, and exec_() to return result.

See also QDialog.done().

int QInputDialog.doubleDecimals (self)

float QInputDialog.doubleMaximum (self)

float QInputDialog.doubleMinimum (self)

float QInputDialog.doubleValue (self)

(float, bool ok) QInputDialog.getDouble (QWidget parent, QString title, QString label, float value = 0, float min = -2147483647, float max = 2147483647, int decimals = 1, Qt.WindowFlags flags = 0)

Static convenience function to get a floating point number from the user.

title is the text which is displayed in the title bar of the dialog. label is the text which is shown to the user (it should say what should be entered). value is the default floating point number that the line edit will be set to. min and max are the minimum and maximum values the user may choose. decimals is the maximum number of decimal places the number may have.

If ok is nonnull, *ok will be set to true if the user pressed OK and to false if the user pressed Cancel. The dialog's parent is parent. The dialog will be modal and uses the widget flags.

This function returns the floating point number which has been entered by the user.

Use this static function like this:

     bool ok;
     double d = QInputDialog.getDouble(this, tr("QInputDialog.getDouble()"),
                                        tr("Amount:"), 37.56, -10000, 10000, 2, &ok);
     if (ok)
         doubleLabel->setText(QString("$%1").arg(d));

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QInputDialog constructors.

See also getText(), getInt(), and getItem().

(int, bool ok) QInputDialog.getInt (QWidget parent, QString title, QString label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, Qt.WindowFlags flags = 0)

Static convenience function to get an integer input from the user.

title is the text which is displayed in the title bar of the dialog. label is the text which is shown to the user (it should say what should be entered). value is the default integer which the spinbox will be set to. min and max are the minimum and maximum values the user may choose. step is the amount by which the values change as the user presses the arrow buttons to increment or decrement the value.

If ok is nonnull *ok will be set to true if the user pressed OK and to false if the user pressed Cancel. The dialog's parent is parent. The dialog will be modal and uses the widget flags.

On success, this function returns the integer which has been entered by the user; on failure, it returns the initial value.

Use this static function like this:

     bool ok;
     int i = QInputDialog.getInt(this, tr("QInputDialog.getInteger()"),
                                  tr("Percentage:"), 25, 0, 100, 1, &ok);
     if (ok)
         integerLabel->setText(tr("%1%").arg(i));

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QInputDialog constructors.

This function was introduced in Qt 4.5.

See also getText(), getDouble(), and getItem().

(int, bool ok) QInputDialog.getInteger (QWidget parent, QString title, QString label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, Qt.WindowFlags flags = 0)

(QString, bool ok) QInputDialog.getItem (QWidget parent, QString title, QString label, QStringList list, int current = 0, bool editable = True, Qt.WindowFlags flags = 0)

Static convenience function to let the user select an item from a string list.

title is the text which is displayed in the title bar of the dialog. label is the text which is shown to the user (it should say what should be entered). items is the string list which is inserted into the combobox. current is the number of the item which should be the current item. inputMethodHints is the input method hints that will be used if the combobox is editable and an input method is active.

If editable is true the user can enter their own text; otherwise the user may only select one of the existing items.

If ok is nonnull *a ok will be set to true if the user pressed OK and to false if the user pressed Cancel. The dialog's parent is parent. The dialog will be modal and uses the widget flags.

This function returns the text of the current item, or if editable is true, the current text of the combobox.

Use this static function like this:

     QStringList items;
     items << tr("Spring") << tr("Summer") << tr("Fall") << tr("Winter");

     bool ok;
     QString item = QInputDialog.getItem(this, tr("QInputDialog.getItem()"),
                                          tr("Season:"), items, 0, false, &ok);
     if (ok && !item.isEmpty())
         itemLabel->setText(item);

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QInputDialog constructors.

See also getText(), getInt(), and getDouble().

(QString, bool ok) QInputDialog.getItem (QWidget parent, QString title, QString label, QStringList list, int current, bool editable, Qt.WindowFlags flags, Qt.InputMethodHints inputMethodHints)

(QString, bool ok) QInputDialog.getText (QWidget parent, QString title, QString label, QLineEdit.EchoMode mode = QLineEdit.Normal, QString text = QString(), Qt.WindowFlags flags = 0)

Static convenience function to get a string from the user.

title is the text which is displayed in the title bar of the dialog. label is the text which is shown to the user (it should say what should be entered). text is the default text which is placed in the line edit. mode is the echo mode the line edit will use. inputMethodHints is the input method hints that will be used in the edit widget if an input method is active.

If ok is nonnull *a ok will be set to true if the user pressed OK and to false if the user pressed Cancel. The dialog's parent is parent. The dialog will be modal and uses the specified widget flags.

If the dialog is accepted, this function returns the text in the dialog's line edit. If the dialog is rejected, a null QString is returned.

Use this static function like this:

     bool ok;
     QString text = QInputDialog.getText(this, tr("QInputDialog.getText()"),
                                          tr("User name:"), QLineEdit.Normal,
                                          QDir.home().dirName(), &ok);
     if (ok && !text.isEmpty())
         textLabel->setText(text);

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QInputDialog constructors.

See also getInt(), getDouble(), and getItem().

(QString, bool ok) QInputDialog.getText (QWidget parent, QString title, QString label, QLineEdit.EchoMode mode, QString text, Qt.WindowFlags flags, Qt.InputMethodHints inputMethodHints)

InputMode QInputDialog.inputMode (self)

int QInputDialog.intMaximum (self)

int QInputDialog.intMinimum (self)

int QInputDialog.intStep (self)

int QInputDialog.intValue (self)

bool QInputDialog.isComboBoxEditable (self)

QString QInputDialog.labelText (self)

QSize QInputDialog.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QString QInputDialog.okButtonText (self)

QInputDialog.open (self)

This is an overloaded function.

This function connects one of its signals to the slot specified by receiver and member. The specific signal depends on the arguments that are specified in member. These are:

The signal will be disconnected from the slot when the dialog is closed.

This function was introduced in Qt 4.5.

QInputDialog.open (self, QObject receiver, SLOT()SLOT() member)

QInputDialog.open (self, callable receiver)

InputDialogOptions QInputDialog.options (self)

QInputDialog.setCancelButtonText (self, QString text)

QInputDialog.setComboBoxEditable (self, bool editable)

QInputDialog.setComboBoxItems (self, QStringList items)

QInputDialog.setDoubleDecimals (self, int decimals)

QInputDialog.setDoubleMaximum (self, float max)

QInputDialog.setDoubleMinimum (self, float min)

QInputDialog.setDoubleRange (self, float min, float max)

Sets the range of double precision floating point values accepted by the dialog when used in DoubleInput mode, with minimum and maximum values specified by min and max respectively.

QInputDialog.setDoubleValue (self, float value)

QInputDialog.setInputMode (self, InputMode mode)

QInputDialog.setIntMaximum (self, int max)

QInputDialog.setIntMinimum (self, int min)

QInputDialog.setIntRange (self, int min, int max)

Sets the range of integer values accepted by the dialog when used in IntInput mode, with minimum and maximum values specified by min and max respectively.

QInputDialog.setIntStep (self, int step)

QInputDialog.setIntValue (self, int value)

QInputDialog.setLabelText (self, QString text)

QInputDialog.setOkButtonText (self, QString text)

QInputDialog.setOption (self, InputDialogOption option, bool on = True)

Sets the given option to be enabled if on is true; otherwise, clears the given option.

See also options and testOption().

QInputDialog.setOptions (self, InputDialogOptions options)

QInputDialog.setTextEchoMode (self, QLineEdit.EchoMode mode)

QInputDialog.setTextValue (self, QString text)

QInputDialog.setVisible (self, bool visible)

Reimplemented from QWidget.setVisible().

QSize QInputDialog.sizeHint (self)

Reimplemented from QWidget.sizeHint().

bool QInputDialog.testOption (self, InputDialogOption option)

Returns true if the given option is enabled; otherwise, returns false.

See also options and setOption().

QLineEdit.EchoMode QInputDialog.textEchoMode (self)

QString QInputDialog.textValue (self)


Qt Signal Documentation

void doubleValueChanged (double)

This is the default overload of this signal.

This signal is emitted whenever the double value changes in the dialog. The current value is specified by value.

This signal is only relevant when the input dialog is used in DoubleInput mode.

void doubleValueSelected (double)

This is the default overload of this signal.

This signal is emitted whenever the user selects a double value by accepting the dialog; for example, by clicking the OK button. The selected value is specified by value.

This signal is only relevant when the input dialog is used in DoubleInput mode.

void intValueChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the integer value changes in the dialog. The current value is specified by value.

This signal is only relevant when the input dialog is used in IntInput mode.

void intValueSelected (int)

This is the default overload of this signal.

This signal is emitted whenever the user selects a integer value by accepting the dialog; for example, by clicking the OK button. The selected value is specified by value.

This signal is only relevant when the input dialog is used in IntInput mode.

void textValueChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the text string changes in the dialog. The current string is specified by text.

This signal is only relevant when the input dialog is used in TextInput mode.

void textValueSelected (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the user selects a text string by accepting the dialog; for example, by clicking the OK button. The selected string is specified by text.

This signal is only relevant when the input dialog is used in TextInput mode.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qinputevent.html0000644000076500000240000000514012536324503020730 0ustar philstaff00000000000000 QInputEvent Class Reference
  Home · All Classes · Modules

QInputEvent Class Reference
[QtGui module]

The QInputEvent class is the base class for events that describe user input. More...

Inherits QEvent.

Inherited by QContextMenuEvent, QKeyEvent, QMouseEvent, QTabletEvent, QTouchEvent and QWheelEvent.

Methods


Detailed Description

The QInputEvent class is the base class for events that describe user input.


Method Documentation

Qt.KeyboardModifiers QInputEvent.modifiers (self)

Returns the keyboard modifier flags that existed immediately before the event occurred.

See also QApplication.keyboardModifiers().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qinputmethodevent-attribute.html0000644000076500000240000000636112536324503024140 0ustar philstaff00000000000000 QInputMethodEvent.Attribute Class Reference
  Home · All Classes · Modules

QInputMethodEvent.Attribute Class Reference
[QtGui module]

The QInputMethodEvent.Attribute class stores an input method attribute. More...

Methods

  • __init__ (self, AttributeType t, int s, int l, QVariant val)
  • __init__ (self, Attribute)

Members


Detailed Description

The QInputMethodEvent.Attribute class stores an input method attribute.


Method Documentation

Attribute.__init__ (self, AttributeType t, int s, int l, QVariant val)

Attribute.__init__ (self, Attribute)


Member Documentation

int length

int start

AttributeType type

QVariant value


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qinputmethodevent.html0000644000076500000240000004130312536324503022132 0ustar philstaff00000000000000 QInputMethodEvent Class Reference
  Home · All Classes · Modules

QInputMethodEvent Class Reference
[
QtGui module]

The QInputMethodEvent class provides parameters for input method events. More...

Inherits QEvent.

Types

Methods


Detailed Description

The QInputMethodEvent class provides parameters for input method events.

Input method events are sent to widgets when an input method is used to enter text into a widget. Input methods are widely used to enter text for languages with non-Latin alphabets.

Note that when creating custom text editing widgets, the Qt.WA_InputMethodEnabled window attribute must be set explicitly (using the QWidget.setAttribute() function) in order to receive input method events.

The events are of interest to authors of keyboard entry widgets who want to be able to correctly handle languages with complex character input. Text input in such languages is usually a three step process:

  1. Starting to Compose

    When the user presses the first key on a keyboard, an input context is created. This input context will contain a string of the typed characters.

  2. Composing

    With every new key pressed, the input method will try to create a matching string for the text typed so far called preedit string. While the input context is active, the user can only move the cursor inside the string belonging to this input context.

  3. Completing

    At some point, the user will activate a user interface component (perhaps using a particular key) where they can choose from a number of strings matching the text they have typed so far. The user can either confirm their choice cancel the input; in either case the input context will be closed.

QInputMethodEvent models these three stages, and transfers the information needed to correctly render the intermediate result. A QInputMethodEvent has two main parameters: preeditString() and commitString(). The preeditString() parameter gives the currently active preedit string. The commitString() parameter gives a text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

If the commitString() should replace parts of the of the text in the editor, replacementLength() will contain the number of characters to be replaced. replacementStart() contains the position at which characters are to be replaced relative from the start of the preedit string.

A number of attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only). The AttributeType enum describes the different attributes that can be set.

A class implementing QWidget.inputMethodEvent() or QGraphicsItem.inputMethodEvent() should at least understand and honor the TextFormat and Cursor attributes.

Since input methods need to be able to query certain properties from the widget or graphics item, subclasses must also implement QWidget.inputMethodQuery() and QGraphicsItem.inputMethodQuery(), respectively.

When receiving an input method event, the text widget has to performs the following steps:

  1. If the widget has selected text, the selected text should get removed.
  2. Remove the text starting at replacementStart() with length replacementLength() and replace it by the commitString(). If replacementLength() is 0, replacementStart() gives the insertion position for the commitString().

    When doing replacement the area of the preedit string is ignored, thus a replacement starting at -1 with a length of 2 will remove the last character before the preedit string and the first character afterwards, and insert the commit string directly before the preedit string.

    If the widget implements undo/redo, this operation gets added to the undo stack.

  3. If there is no current preedit string, insert the preeditString() at the current cursor position; otherwise replace the previous preeditString with the one received from this event.

    If the widget implements undo/redo, the preeditString() should not influence the undo/redo stack in any way.

    The widget should examine the list of attributes to apply to the preedit string. It has to understand at least the TextFormat and Cursor attributes and render them as specified.


Type Documentation

QInputMethodEvent.AttributeType

Constant Value Description
QInputMethodEvent.TextFormat 0 A QTextCharFormat for the part of the preedit string specified by start and length. value contains a QVariant of type QTextFormat specifying rendering of this part of the preedit string. There should be at most one format for every part of the preedit string. If several are specified for any character in the string the behaviour is undefined. A conforming implementation has to at least honor the backgroundColor, textColor and fontUnderline properties of the format.
QInputMethodEvent.Cursor 1 If set, a cursor should be shown inside the preedit string at position start. The length variable determines whether the cursor is visible or not. If the length is 0 the cursor is invisible. If value is a QVariant of type QColor this color will be used for rendering the cursor, otherwise the color of the surrounding text will be used. There should be at most one Cursor attribute per event. If several are specified the behaviour is undefined.
QInputMethodEvent.Language 2 The variant contains a QLocale object specifying the language of a certain part of the preedit string. There should be at most one language set for every part of the preedit string. If several are specified for any character in the string the behavior is undefined.
QInputMethodEvent.Ruby 3 The ruby text for a part of the preedit string. There should be at most one ruby text set for every part of the preedit string. If several are specified for any character in the string the behaviour is undefined.
QInputMethodEvent.Selection 4 If set, the edit cursor should be moved to the specified position in the editor text contents. In contrast with Cursor, this attribute does not work on the preedit text, but on the surrounding text. The cursor will be moved after the commit string has been committed, and the preedit string will be located at the new edit position. The start position specifies the new position and the length variable can be used to set a selection starting from that point. The value is unused.

See also Attribute.


Method Documentation

QInputMethodEvent.__init__ (self)

Constructs an event of type QEvent.InputMethod. The attributes(), preeditString(), commitString(), replacementStart(), and replacementLength() are initialized to default values.

See also setCommitString().

QInputMethodEvent.__init__ (self, QString preeditText, list-of-QInputMethodEvent.Attribute attributes)

Construcs an event of type QEvent.InputMethod. The preedit text is set to preeditText, the attributes to attributes.

The commitString(), replacementStart(), and replacementLength() values can be set using setCommitString().

See also preeditString() and attributes().

QInputMethodEvent.__init__ (self, QInputMethodEvent other)

Constructs a copy of other.

list-of-QInputMethodEvent.Attribute QInputMethodEvent.attributes (self)

Returns the list of attributes passed to the QInputMethodEvent constructor. The attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only).

See also preeditString() and Attribute.

QString QInputMethodEvent.commitString (self)

Returns the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

See also setCommitString(), preeditString(), replacementStart(), and replacementLength().

QString QInputMethodEvent.preeditString (self)

Returns the preedit text, i.e. the text before the user started editing it.

See also commitString() and attributes().

int QInputMethodEvent.replacementLength (self)

Returns the number of characters to be replaced in the preedit string.

See also replacementStart() and setCommitString().

int QInputMethodEvent.replacementStart (self)

Returns the position at which characters are to be replaced relative from the start of the preedit string.

See also replacementLength() and setCommitString().

QInputMethodEvent.setCommitString (self, QString commitString, int from = 0, int length = 0)

Sets the commit string to commitString.

The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

If the commit string should replace parts of the of the text in the editor, replaceLength specifies the number of characters to be replaced. replaceFrom specifies the position at which characters are to be replaced relative from the start of the preedit string.

See also commitString(), replacementStart(), and replacementLength().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qintvalidator.html0000644000076500000240000002642412536324516021243 0ustar philstaff00000000000000 QIntValidator Class Reference
  Home · All Classes · Modules

QIntValidator Class Reference
[QtGui module]

The QIntValidator class provides a validator that ensures a string contains a valid integer within a specified range. More...

Inherits QValidator.

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, int bottom, int top, QObject parent = None)
  • int bottom (self)
  • QString input fixup (self, QString input)
  • fixup (self, QString input)
  • setBottom (self, int)
  • setRange (self, int bottom, int top)
  • setTop (self, int)
  • int top (self)
  • (QValidator.State, QString, int) validate (self, QString, int)
  • (QValidator.State, int) validate (self, QString, int)

Detailed Description

The QIntValidator class provides a validator that ensures a string contains a valid integer within a specified range.

Example of use:

 QValidator *validator = new QIntValidator(100, 999, this);
 QLineEdit *edit = new QLineEdit(this);

 // the edit lineedit will only accept integers between 100 and 999
 edit->setValidator(validator);

Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.

 QString str;
 int pos = 0;
 QIntValidator v(100, 900, this);

 str = "1";
 v.validate(str, pos);     // returns Intermediate
 str = "012";
 v.validate(str, pos);     // returns Intermediate

 str = "123";
 v.validate(str, pos);     // returns Acceptable
 str = "678";
 v.validate(str, pos);     // returns Acceptable

 str = "999";
 v.validate(str, pos);    // returns Intermediate

 str = "1234";
 v.validate(str, pos);     // returns Invalid
 str = "-123";
 v.validate(str, pos);     // returns Invalid
 str = "abc";
 v.validate(str, pos);     // returns Invalid
 str = "12cm";
 v.validate(str, pos);     // returns Invalid

Notice that the value 999 returns Intermediate. Values consisting of a number of digits equal to or less than the max value are considered intermediate. This is intended because the digit that prevents a number to be in range is not necessarily the last digit typed. This also means that an intermediate number can have leading zeros.

The minimum and maximum values are set in one call with setRange(), or individually with setBottom() and setTop().

QIntValidator uses its locale() to interpret the number. For example, in Arabic locales, QIntValidator will accept Arabic digits. In addition, QIntValidator is always guaranteed to accept a number formatted according to the "C" locale.


Method Documentation

QIntValidator.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a validator with a parent object that accepts all integers.

QIntValidator.__init__ (self, int bottom, int top, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a validator with a parent, that accepts integers from minimum to maximum inclusive.

int QIntValidator.bottom (self)

QString input QIntValidator.fixup (self, QString input)

Reimplemented from QValidator.fixup().

QIntValidator.fixup (self, QString input)

QIntValidator.setBottom (self, int)

QIntValidator.setRange (self, int bottom, int top)

Sets the range of the validator to only accept integers between bottom and top inclusive.

QIntValidator.setTop (self, int)

int QIntValidator.top (self)

(QValidator.State, QString, int) QIntValidator.validate (self, QString, int)

Reimplemented from QValidator.validate().

Returns Acceptable if the input is an integer within the valid range, Intermediate if the input is a prefix of an integer in the valid range, and Invalid otherwise.

If the valid range consists of just positive integers (e.g., 32 to 100) and input is a negative integer, then Invalid is returned. (On the other hand, if the range consists of negative integers (e.g., -100 to -32) and input is a positive integer, then Intermediate is returned, because the user might be just about to type the minus (especially for right-to-left languages).

 int pos = 0;

 s = "abc";
 v.validate(s, pos);    // returns Invalid

 s = "5";
 v.validate(s, pos);    // returns Intermediate

 s = "50";
 v.validate(s, pos);    // returns Acceptable

By default, the pos parameter is not used by this validator.

(QValidator.State, int) QIntValidator.validate (self, QString, int)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qiodevice-openmode.html0000644000076500000240000001346112536324472022134 0ustar philstaff00000000000000 QIODevice.OpenMode Class Reference
  Home · All Classes · Modules

QIODevice.OpenMode Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

OpenModeFlag may be used whenever OpenMode is expected.


Method Documentation

OpenMode.__init__ (self, OpenMode)

OpenMode.__init__ (self, int)

OpenMode.__init__ (self)

OpenMode OpenMode.__and__ (self, int mask)

int OpenMode.__bool__ (self)

bool OpenMode.__eq__ (self, OpenMode f)

OpenMode OpenMode.__iand__ (self, int mask)

int OpenMode.__int__ (self)

OpenMode OpenMode.__invert__ (self)

OpenMode OpenMode.__ior__ (self, OpenMode f)

OpenMode OpenMode.__ixor__ (self, OpenMode f)

bool OpenMode.__ne__ (self, OpenMode f)

OpenMode OpenMode.__or__ (self, OpenMode f)

OpenMode OpenMode.__or__ (self, int f)

OpenMode OpenMode.__xor__ (self, OpenMode f)

OpenMode OpenMode.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qiodevice.html0000644000076500000240000013016512536324471020330 0ustar philstaff00000000000000 QIODevice Class Reference
  Home · All Classes · Modules

QIODevice Class Reference
[QtCore module]

The QIODevice class is the base interface class of all I/O devices in Qt. More...

Inherits QObject.

Inherited by QAbstractSocket, QBuffer, QFile, QLocalSocket, QNetworkReply and QProcess.

Types

Methods

Qt Signals


Detailed Description

The QIODevice class is the base interface class of all I/O devices in Qt.

QIODevice provides both a common implementation and an abstract interface for devices that support reading and writing of blocks of data, such as QFile, QBuffer and QTcpSocket. QIODevice is abstract and can not be instantiated, but it is common to use the interface it defines to provide device-independent I/O features. For example, Qt's XML classes operate on a QIODevice pointer, allowing them to be used with various devices (such as files and buffers).

Before accessing the device, open() must be called to set the correct OpenMode (such as ReadOnly or ReadWrite). You can then write to the device with write() or putChar(), and read by calling either read(), readLine(), or readAll(). Call close() when you are done with the device.

QIODevice distinguishes between two types of devices: random-access devices and sequential devices.

  • Random-access devices support seeking to arbitrary positions using seek(). The current position in the file is available by calling pos(). QFile and QBuffer are examples of random-access devices.
  • Sequential devices don't support seeking to arbitrary positions. The data must be read in one pass. The functions pos() and size() don't work for sequential devices. QTcpSocket and QProcess are examples of sequential devices.

You can use isSequential() to determine the type of device.

QIODevice emits readyRead() when new data is available for reading; for example, if new data has arrived on the network or if additional data is appended to a file that you are reading from. You can call bytesAvailable() to determine the number of bytes that are currently available for reading. It's common to use bytesAvailable() together with the readyRead() signal when programming with asynchronous devices such as QTcpSocket, where fragments of data can arrive at arbitrary points in time. QIODevice emits the bytesWritten() signal every time a payload of data has been written to the device. Use bytesToWrite() to determine the current amount of data waiting to be written.

Certain subclasses of QIODevice, such as QTcpSocket and QProcess, are asynchronous. This means that I/O functions such as write() or read() always return immediately, while communication with the device itself may happen when control goes back to the event loop. QIODevice provides functions that allow you to force these operations to be performed immediately, while blocking the calling thread and without entering the event loop. This allows QIODevice subclasses to be used without an event loop, or in a separate thread:

  • waitForReadyRead() - This function suspends operation in the calling thread until new data is available for reading.
  • waitForBytesWritten() - This function suspends operation in the calling thread until one payload of data has been written to the device.
  • waitFor....() - Subclasses of QIODevice implement blocking functions for device-specific operations. For example, QProcess has a function called waitForStarted() which suspends operation in the calling thread until the process has started.

Calling these functions from the main, GUI thread, may cause your user interface to freeze. Example:

 QProcess gzip;
 gzip.start("gzip", QStringList() << "-c");
 if (!gzip.waitForStarted())
     return false;

 gzip.write("uncompressed data");

 QByteArray compressed;
 while (gzip.waitForReadyRead())
     compressed += gzip.readAll();

By subclassing QIODevice, you can provide the same interface to your own I/O devices. Subclasses of QIODevice are only required to implement the protected readData() and writeData() functions. QIODevice uses these functions to implement all its convenience functions, such as getChar(), readLine() and write(). QIODevice also handles access control for you, so you can safely assume that the device is opened in write mode if writeData() is called.

Some subclasses, such as QFile and QTcpSocket, are implemented using a memory buffer for intermediate storing of data. This reduces the number of required device accessing calls, which are often very slow. Buffering makes functions like getChar() and putChar() fast, as they can operate on the memory buffer instead of directly on the device itself. Certain I/O operations, however, don't work well with a buffer. For example, if several users open the same device and read it character by character, they may end up reading the same data when they meant to read a separate chunk each. For this reason, QIODevice allows you to bypass any buffering by passing the Unbuffered flag to open(). When subclassing QIODevice, remember to bypass any buffer you may use when the device is open in Unbuffered mode.


Type Documentation

QIODevice.OpenModeFlag

This enum is used with open() to describe the mode in which a device is opened. It is also returned by openMode().

Constant Value Description
QIODevice.NotOpen 0x0000 The device is not open.
QIODevice.ReadOnly 0x0001 The device is open for reading.
QIODevice.WriteOnly 0x0002 The device is open for writing.
QIODevice.ReadWrite ReadOnly | WriteOnly The device is open for reading and writing.
QIODevice.Append 0x0004 The device is opened in append mode, so that all data is written to the end of the file.
QIODevice.Truncate 0x0008 If possible, the device is truncated before it is opened. All earlier contents of the device are lost.
QIODevice.Text 0x0010 When reading, the end-of-line terminators are translated to '\n'. When writing, the end-of-line terminators are translated to the local encoding, for example '\r\n' for Win32.
QIODevice.Unbuffered 0x0020 Any buffer in the device is bypassed.

Certain flags, such as Unbuffered and Truncate, are meaningless when used with some subclasses. Some of these restrictions are implied by the type of device that is represented by a subclass. In other cases, the restriction may be due to the implementation, or may be imposed by the underlying platform; for example, QTcpSocket does not support Unbuffered mode, and limitations in the native API prevent QFile from supporting Unbuffered on Windows.

The OpenMode type is a typedef for QFlags<OpenModeFlag>. It stores an OR combination of OpenModeFlag values.


Method Documentation

QIODevice.__init__ (self)

Constructs a QIODevice object.

QIODevice.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QIODevice object with the given parent.

bool QIODevice.atEnd (self)

Returns true if the current read and write position is at the end of the device (i.e. there is no more data available for reading on the device); otherwise returns false.

For some devices, atEnd() can return true even though there is more data to read. This special case only applies to devices that generate data in direct response to you calling read() (e.g., /dev or /proc files on Unix and Mac OS X, or console input / stdin on all platforms).

See also bytesAvailable(), read(), and isSequential().

int QIODevice.bytesAvailable (self)

Returns the number of bytes that are available for reading. This function is commonly used with sequential devices to determine the number of bytes to allocate in a buffer before reading.

Subclasses that reimplement this function must call the base implementation in order to include the size of QIODevices' buffer. Example:

 long CustomDevice.bytesAvailable() const
 {
     return buffer.size() + QIODevice.bytesAvailable();
 }

See also bytesToWrite(), readyRead(), and isSequential().

int QIODevice.bytesToWrite (self)

For buffered devices, this function returns the number of bytes waiting to be written. For devices with no buffer, this function returns 0.

See also bytesAvailable(), bytesWritten(), and isSequential().

bool QIODevice.canReadLine (self)

Returns true if a complete line of data can be read from the device; otherwise returns false.

Note that unbuffered devices, which have no way of determining what can be read, always return false.

This function is often called in conjunction with the readyRead() signal.

Subclasses that reimplement this function must call the base implementation in order to include the contents of the QIODevice's buffer. Example:

 bool CustomDevice.canReadLine() const
 {
     return buffer.contains('\n') || QIODevice.canReadLine();
 }

See also readyRead() and readLine().

QIODevice.close (self)

First emits aboutToClose(), then closes the device and sets its OpenMode to NotOpen. The error string is also reset.

See also setOpenMode() and OpenMode.

QString QIODevice.errorString (self)

Returns a human-readable description of the last device error that occurred.

See also setErrorString().

(bool, str c) QIODevice.getChar (self)

Reads one character from the device and stores it in c. If c is 0, the character is discarded. Returns true on success; otherwise returns false.

See also read(), putChar(), and ungetChar().

bool QIODevice.isOpen (self)

Returns true if the device is open; otherwise returns false. A device is open if it can be read from and/or written to. By default, this function returns false if openMode() returns NotOpen.

See also openMode() and OpenMode.

bool QIODevice.isReadable (self)

Returns true if data can be read from the device; otherwise returns false. Use bytesAvailable() to determine how many bytes can be read.

This is a convenience function which checks if the OpenMode of the device contains the ReadOnly flag.

See also openMode() and OpenMode.

bool QIODevice.isSequential (self)

Returns true if this device is sequential; otherwise returns false.

Sequential devices, as opposed to a random-access devices, have no concept of a start, an end, a size, or a current position, and they do not support seeking. You can only read from the device when it reports that data is available. The most common example of a sequential device is a network socket. On Unix, special files such as /dev/zero and fifo pipes are sequential.

Regular files, on the other hand, do support random access. They have both a size and a current position, and they also support seeking backwards and forwards in the data stream. Regular files are non-sequential.

The QIODevice implementation returns false.

See also bytesAvailable().

bool QIODevice.isTextModeEnabled (self)

Returns true if the Text flag is enabled; otherwise returns false.

See also setTextModeEnabled().

bool QIODevice.isWritable (self)

Returns true if data can be written to the device; otherwise returns false.

This is a convenience function which checks if the OpenMode of the device contains the WriteOnly flag.

See also openMode() and OpenMode.

bool QIODevice.open (self, OpenMode mode)

Opens the device and sets its OpenMode to mode. Returns true if successful; otherwise returns false. This function should be called from any reimplementations of open() or other functions that open the device.

See also openMode() and OpenMode.

OpenMode QIODevice.openMode (self)

Returns the mode in which the device has been opened; i.e. ReadOnly or WriteOnly.

See also setOpenMode() and OpenMode.

QByteArray QIODevice.peek (self, int maxlen)

Reads at most maxSize bytes from the device into data, without side effects (i.e., if you call read() after peek(), you will get the same data). Returns the number of bytes read. If an error occurs, such as when attempting to peek a device opened in WriteOnly mode, this function returns -1.

0 is returned when no more data is available for reading.

Example:

 bool isExeFile(QFile *file)
 {
     char buf[2];
     if (file->peek(buf, sizeof(buf)) == sizeof(buf))
         return (buf[0] == 'M' && buf[1] == 'Z');
     return false;
 }

This function was introduced in Qt 4.1.

See also read().

int QIODevice.pos (self)

For random-access devices, this function returns the position that data is written to or read from. For sequential devices or closed devices, where there is no concept of a "current position", 0 is returned.

The current read/write position of the device is maintained internally by QIODevice, so reimplementing this function is not necessary. When subclassing QIODevice, use QIODevice.seek() to notify QIODevice about changes in the device position.

See also isSequential() and seek().

bool QIODevice.putChar (self, str c)

Writes the character c to the device. Returns true on success; otherwise returns false.

See also write(), getChar(), and ungetChar().

str QIODevice.read (self, int maxlen)

Reads at most maxSize bytes from the device into data, and returns the number of bytes read. If an error occurs, such as when attempting to read from a device opened in WriteOnly mode, this function returns -1.

0 is returned when no more data is available for reading. However, reading past the end of the stream is considered an error, so this function returns -1 in those cases (that is, reading on a closed socket or after a process has died).

See also readData(), readLine(), and write().

QByteArray QIODevice.readAll (self)

This is an overloaded function.

Reads all available data from the device, and returns it as a QByteArray.

This function has no way of reporting errors; returning an empty QByteArray() can mean either that no data was currently available for reading, or that an error occurred.

str QIODevice.readData (self, int maxlen)

This method is abstract and should be reimplemented in any sub-class.

Reads up to maxSize bytes from the device into data, and returns the number of bytes read or -1 if an error occurred.

If there are no bytes to be read and there can never be more bytes available (examples include socket closed, pipe closed, sub-process finished), this function returns -1.

This function is called by QIODevice. Reimplement this function when creating a subclass of QIODevice.

When reimplementing this function it is important that this function reads all the required data before returning. This is required in order for QDataStream to be able to operate on the class. QDataStream assumes all the requested information was read and therefore does not retry reading if there was a problem.

See also read(), readLine(), and writeData().

str QIODevice.readLine (self, int maxlen = 0)

This function reads a line of ASCII characters from the device, up to a maximum of maxSize - 1 bytes, stores the characters in data, and returns the number of bytes read. If a line could not be read but no error ocurred, this function returns 0. If an error occurs, this function returns the length of what could be read, or -1 if nothing was read.

A terminating '\0' byte is always appended to data, so maxSize must be larger than 1.

Data is read until either of the following conditions are met:

  • The first '\n' character is read.
  • maxSize - 1 bytes are read.
  • The end of the device data is detected.

For example, the following code reads a line of characters from a file:

 QFile file("box.txt");
 if (file.open(QFile.ReadOnly)) {
     char buf[1024];
     long lineLength = file.readLine(buf, sizeof(buf));
     if (lineLength != -1) {
         // the line is available in buf
     }
 }

The newline character ('\n') is included in the buffer. If a newline is not encountered before maxSize - 1 bytes are read, a newline will not be inserted into the buffer. On windows newline characters are replaced with '\n'.

This function calls readLineData(), which is implemented using repeated calls to getChar(). You can provide a more efficient implementation by reimplementing readLineData() in your own subclass.

See also getChar(), read(), and write().

str QIODevice.readLineData (self, int maxlen)

Reads up to maxSize characters into data and returns the number of characters read.

This function is called by readLine(), and provides its base implementation, using getChar(). Buffered devices can improve the performance of readLine() by reimplementing this function.

readLine() appends a '\0' byte to data; readLineData() does not need to do this.

If you reimplement this function, be careful to return the correct value: it should return the number of bytes read in this line, including the terminating newline, or 0 if there is no line to be read at this point. If an error occurs, it should return -1 if and only if no bytes were read. Reading past EOF is considered an error.

bool QIODevice.reset (self)

Seeks to the start of input for random-access devices. Returns true on success; otherwise returns false (for example, if the device is not open).

Note that when using a QTextStream on a QFile, calling reset() on the QFile will not have the expected result because QTextStream buffers the file. Use the QTextStream.seek() function instead.

See also seek().

bool QIODevice.seek (self, int pos)

For random-access devices, this function sets the current position to pos, returning true on success, or false if an error occurred. For sequential devices, the default behavior is to do nothing and return false.

When subclassing QIODevice, you must call QIODevice.seek() at the start of your function to ensure integrity with QIODevice's built-in buffer. The base implementation always returns true.

See also pos() and isSequential().

QIODevice.setErrorString (self, QString errorString)

Sets the human readable description of the last device error that occurred to str.

See also errorString().

QIODevice.setOpenMode (self, OpenMode openMode)

Sets the OpenMode of the device to openMode. Call this function to set the open mode if the flags change after the device has been opened.

See also openMode() and OpenMode.

QIODevice.setTextModeEnabled (self, bool enabled)

If enabled is true, this function sets the Text flag on the device; otherwise the Text flag is removed. This feature is useful for classes that provide custom end-of-line handling on a QIODevice.

The IO device should be opened before calling this function.

See also isTextModeEnabled(), open(), and setOpenMode().

int QIODevice.size (self)

For open random-access devices, this function returns the size of the device. For open sequential devices, bytesAvailable() is returned.

If the device is closed, the size returned will not reflect the actual size of the device.

See also isSequential() and pos().

QIODevice.ungetChar (self, str c)

Puts the character c back into the device, and decrements the current position unless the position is 0. This function is usually called to "undo" a getChar() operation, such as when writing a backtracking parser.

If c was not previously read from the device, the behavior is undefined.

bool QIODevice.waitForBytesWritten (self, int msecs)

For buffered devices, this function waits until a payload of buffered written data has been written to the device and the bytesWritten() signal has been emitted, or until msecs milliseconds have passed. If msecs is -1, this function will not time out. For unbuffered devices, it returns immediately.

Returns true if a payload of data was written to the device; otherwise returns false (i.e. if the operation timed out, or if an error occurred).

This function can operate without an event loop. It is useful when writing non-GUI applications and when performing I/O operations in a non-GUI thread.

If called from within a slot connected to the bytesWritten() signal, bytesWritten() will not be reemitted.

Reimplement this function to provide a blocking API for a custom device. The default implementation does nothing, and returns false.

Warning: Calling this function from the main (GUI) thread might cause your user interface to freeze.

See also waitForReadyRead().

bool QIODevice.waitForReadyRead (self, int msecs)

Blocks until new data is available for reading and the readyRead() signal has been emitted, or until msecs milliseconds have passed. If msecs is -1, this function will not time out.

Returns true if new data is available for reading; otherwise returns false (if the operation timed out or if an error occurred).

This function can operate without an event loop. It is useful when writing non-GUI applications and when performing I/O operations in a non-GUI thread.

If called from within a slot connected to the readyRead() signal, readyRead() will not be reemitted.

Reimplement this function to provide a blocking API for a custom device. The default implementation does nothing, and returns false.

Warning: Calling this function from the main (GUI) thread might cause your user interface to freeze.

See also waitForBytesWritten().

int QIODevice.write (self, QByteArray data)

Writes at most maxSize bytes of data from data to the device. Returns the number of bytes that were actually written, or -1 if an error occurred.

See also read() and writeData().

int QIODevice.writeData (self, str data)

This method is abstract and should be reimplemented in any sub-class.

Writes up to maxSize bytes from data to the device. Returns the number of bytes written, or -1 if an error occurred.

This function is called by QIODevice. Reimplement this function when creating a subclass of QIODevice.

When reimplementing this function it is important that this function writes all the data available before returning. This is required in order for QDataStream to be able to operate on the class. QDataStream assumes all the information was written and therefore does not retry writing if there was a problem.

See also read() and write().


Qt Signal Documentation

void aboutToClose ()

This is the default overload of this signal.

This signal is emitted when the device is about to close. Connect this signal if you have operations that need to be performed before the device closes (e.g., if you have data in a separate buffer that needs to be written to the device).

void bytesWritten (qint64)

This is the default overload of this signal.

This signal is emitted every time a payload of data has been written to the device. The bytes argument is set to the number of bytes that were written in this payload.

bytesWritten() is not emitted recursively; if you reenter the event loop or call waitForBytesWritten() inside a slot connected to the bytesWritten() signal, the signal will not be reemitted (although waitForBytesWritten() may still return true).

See also readyRead().

void readChannelFinished ()

This is the default overload of this signal.

This signal is emitted when the input (reading) stream is closed in this device. It is emitted as soon as the closing is detected, which means that there might still be data available for reading with read().

This function was introduced in Qt 4.4.

See also atEnd() and read().

void readyRead ()

This is the default overload of this signal.

This signal is emitted once every time new data is available for reading from the device. It will only be emitted again once new data is available, such as when a new payload of network data has arrived on your network socket, or when a new block of data has been appended to your device.

readyRead() is not emitted recursively; if you reenter the event loop or call waitForReadyRead() inside a slot connected to the readyRead() signal, the signal will not be reemitted (although waitForReadyRead() may still return true).

Note for developers implementing classes derived from QIODevice: you should always emit readyRead() when new data has arrived (do not emit it only because there's data still to be read in your buffers). Do not emit readyRead() in other conditions.

See also bytesWritten().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qitemdelegate.html0000644000076500000240000006413512536324507021175 0ustar philstaff00000000000000 QItemDelegate Class Reference
  Home · All Classes · Modules

QItemDelegate Class Reference
[QtGui module]

The QItemDelegate class provides display and editing facilities for data items from a model. More...

Inherits QAbstractItemDelegate.

Inherited by QSqlRelationalDelegate.

Methods

  • __init__ (self, QObject parent = None)
  • QWidget createEditor (self, QWidget parent, QStyleOptionViewItem option, QModelIndex index)
  • drawBackground (self, QPainter painter, QStyleOptionViewItem option, QModelIndex index)
  • drawCheck (self, QPainter painter, QStyleOptionViewItem option, QRect rect, Qt.CheckState state)
  • drawDecoration (self, QPainter painter, QStyleOptionViewItem option, QRect rect, QPixmap pixmap)
  • drawDisplay (self, QPainter painter, QStyleOptionViewItem option, QRect rect, QString text)
  • drawFocus (self, QPainter painter, QStyleOptionViewItem option, QRect rect)
  • bool editorEvent (self, QEvent event, QAbstractItemModel model, QStyleOptionViewItem option, QModelIndex index)
  • bool eventFilter (self, QObject object, QEvent event)
  • bool hasClipping (self)
  • QItemEditorFactory itemEditorFactory (self)
  • paint (self, QPainter painter, QStyleOptionViewItem option, QModelIndex index)
  • setClipping (self, bool clip)
  • setEditorData (self, QWidget editor, QModelIndex index)
  • setItemEditorFactory (self, QItemEditorFactory factory)
  • setModelData (self, QWidget editor, QAbstractItemModel model, QModelIndex index)
  • QSize sizeHint (self, QStyleOptionViewItem option, QModelIndex index)
  • updateEditorGeometry (self, QWidget editor, QStyleOptionViewItem option, QModelIndex index)

Detailed Description

The QItemDelegate class provides display and editing facilities for data items from a model.

QItemDelegate can be used to provide custom display features and editor widgets for item views based on QAbstractItemView subclasses. Using a delegate for this purpose allows the display and editing mechanisms to be customized and developed independently from the model and view.

The QItemDelegate class is one of the Model/View Classes and is part of Qt's model/view framework. Note that QStyledItemDelegate has taken over the job of drawing Qt's item views. We recommend the use of QStyledItemDelegate when creating new delegates.

When displaying items from a custom model in a standard view, it is often sufficient to simply ensure that the model returns appropriate data for each of the roles that determine the appearance of items in views. The default delegate used by Qt's standard views uses this role information to display items in most of the common forms expected by users. However, it is sometimes necessary to have even more control over the appearance of items than the default delegate can provide.

This class provides default implementations of the functions for painting item data in a view and editing data from item models. Default implementations of the paint() and sizeHint() virtual functions, defined in QAbstractItemDelegate, are provided to ensure that the delegate implements the correct basic behavior expected by views. You can reimplement these functions in subclasses to customize the appearance of items.

When editing data in an item view, QItemDelegate provides an editor widget, which is a widget that is placed on top of the view while editing takes place. Editors are created with a QItemEditorFactory; a default static instance provided by QItemEditorFactory is installed on all item delegates. You can set a custom factory using setItemEditorFactory() or set a new default factory with QItemEditorFactory.setDefaultFactory(). It is the data stored in the item model with the Qt.EditRole that is edited.

Only the standard editing functions for widget-based delegates are reimplemented here:

  • createEditor() returns the widget used to change data from the model and can be reimplemented to customize editing behavior.
  • setEditorData() provides the widget with data to manipulate.
  • updateEditorGeometry() ensures that the editor is displayed correctly with respect to the item view.
  • setModelData() returns updated data to the model.

The closeEditor() signal indicates that the user has completed editing the data, and that the editor widget can be destroyed.

Standard Roles and Data Types

The default delegate used by the standard views supplied with Qt associates each standard role (defined by Qt.ItemDataRole) with certain data types. Models that return data in these types can influence the appearance of the delegate as described in the following table.

Role Accepted Types
Qt.BackgroundRole QBrush
Qt.BackgroundColorRole QColor (obsolete; use Qt.BackgroundRole instead)
Qt.CheckStateRole Qt.CheckState
Qt.DecorationRole QIcon, QPixmap and QColor
Qt.DisplayRole QString and types with a string representation
Qt.EditRole See QItemEditorFactory for details
Qt.FontRole QFont
Qt.SizeHintRole QSize
Qt.TextAlignmentRole Qt.Alignment
Qt.ForegroundRole QBrush
Qt.TextColorRole QColor (obsolete; use Qt.ForegroundRole instead)

If the default delegate does not allow the level of customization that you need, either for display purposes or for editing data, it is possible to subclass QItemDelegate to implement the desired behavior.

Subclassing

When subclassing QItemDelegate to create a delegate that displays items using a custom renderer, it is important to ensure that the delegate can render items suitably for all the required states; e.g. selected, disabled, checked. The documentation for the paint() function contains some hints to show how this can be achieved.

You can provide custom editors by using a QItemEditorFactory. The Color Editor Factory Example shows how a custom editor can be made available to delegates with the default item editor factory. This way, there is no need to subclass QItemDelegate. An alternative is to reimplement createEditor(), setEditorData(), setModelData(), and updateEditorGeometry(). This process is described in the Spin Box Delegate Example.

QStyledItemDelegate vs. QItemDelegate

Since Qt 4.4, there are two delegate classes: QItemDelegate and QStyledItemDelegate. However, the default delegate is QStyledItemDelegate. These two classes are independent alternatives to painting and providing editors for items in views. The difference between them is that QStyledItemDelegate uses the current style to paint its items. We therefore recommend using QStyledItemDelegate as the base class when implementing custom delegates or when working with Qt style sheets. The code required for either class should be equal unless the custom delegate needs to use the style for drawing.


Method Documentation

QItemDelegate.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an item delegate with the given parent.

QWidget QItemDelegate.createEditor (self, QWidget parent, QStyleOptionViewItem option, QModelIndex index)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Reimplemented from QAbstractItemDelegate.createEditor().

Returns the widget used to edit the item specified by index for editing. The parent widget and style option are used to control how the editor widget appears.

See also QAbstractItemDelegate.createEditor().

QItemDelegate.drawBackground (self, QPainter painter, QStyleOptionViewItem option, QModelIndex index)

Renders the item background for the given index, using the given painter and style option.

This function was introduced in Qt 4.2.

QItemDelegate.drawCheck (self, QPainter painter, QStyleOptionViewItem option, QRect rect, Qt.CheckState state)

Renders a check indicator within the rectangle specified by rect, using the given painter and style option, using the given state.

QItemDelegate.drawDecoration (self, QPainter painter, QStyleOptionViewItem option, QRect rect, QPixmap pixmap)

Renders the decoration pixmap within the rectangle specified by rect using the given painter and style option.

QItemDelegate.drawDisplay (self, QPainter painter, QStyleOptionViewItem option, QRect rect, QString text)

Renders the item view text within the rectangle specified by rect using the given painter and style option.

QItemDelegate.drawFocus (self, QPainter painter, QStyleOptionViewItem option, QRect rect)

Renders the region within the rectangle specified by rect, indicating that it has the focus, using the given painter and style option.

bool QItemDelegate.editorEvent (self, QEvent event, QAbstractItemModel model, QStyleOptionViewItem option, QModelIndex index)

Reimplemented from QAbstractItemDelegate.editorEvent().

bool QItemDelegate.eventFilter (self, QObject object, QEvent event)

Reimplemented from QObject.eventFilter().

Returns true if the given editor is a valid QWidget and the given event is handled; otherwise returns false. The following key press events are handled by default:

  • Tab
  • Backtab
  • Enter
  • Return
  • Esc

In the case of Tab, Backtab, Enter and Return key press events, the editor's data is comitted to the model and the editor is closed. If the event is a Tab key press the view will open an editor on the next item in the view. Likewise, if the event is a Backtab key press the view will open an editor on the previous item in the view.

If the event is a Esc key press event, the editor is closed without committing its data.

See also commitData() and closeEditor().

bool QItemDelegate.hasClipping (self)

QItemEditorFactory QItemDelegate.itemEditorFactory (self)

Returns the editor factory used by the item delegate. If no editor factory is set, the function will return null.

See also setItemEditorFactory().

QItemDelegate.paint (self, QPainter painter, QStyleOptionViewItem option, QModelIndex index)

Reimplemented from QAbstractItemDelegate.paint().

Renders the delegate using the given painter and style option for the item specified by index.

When reimplementing this function in a subclass, you should update the area held by the option's rect variable, using the option's state variable to determine the state of the item to be displayed, and adjust the way it is painted accordingly.

For example, a selected item may need to be displayed differently to unselected items, as shown in the following code:

     if (option.state & QStyle.State_Selected)
         painter->fillRect(option.rect, option.palette.highlight());

     int size = qMin(option.rect.width(), option.rect.height());
     int brightness = index.model()->data(index, Qt.DisplayRole).toInt();
     double radius = (size/2.0) - (brightness/255.0 * size/2.0);
     if (radius == 0.0)
         return;

     painter->save();
     painter->setRenderHint(QPainter.Antialiasing, true);
     painter->setPen(Qt.NoPen);
     if (option.state & QStyle.State_Selected)
         painter->setBrush(option.palette.highlightedText());
     else
     ...

After painting, you should ensure that the painter is returned to its the state it was supplied in when this function was called. For example, it may be useful to call QPainter.save() before painting and QPainter.restore() afterwards.

See also QStyle.State.

QItemDelegate.setClipping (self, bool clip)

QItemDelegate.setEditorData (self, QWidget editor, QModelIndex index)

Reimplemented from QAbstractItemDelegate.setEditorData().

Sets the data to be displayed and edited by the editor from the data model item specified by the model index.

The default implementation stores the data in the editor widget's user property.

See also QMetaProperty.isUser().

QItemDelegate.setItemEditorFactory (self, QItemEditorFactory factory)

Sets the editor factory to be used by the item delegate to be the factory specified. If no editor factory is set, the item delegate will use the default editor factory.

See also itemEditorFactory().

QItemDelegate.setModelData (self, QWidget editor, QAbstractItemModel model, QModelIndex index)

Reimplemented from QAbstractItemDelegate.setModelData().

Gets data from the editor widget and stores it in the specified model at the item index.

The default implementation gets the value to be stored in the data model from the editor widget's user property.

See also QMetaProperty.isUser().

QSize QItemDelegate.sizeHint (self, QStyleOptionViewItem option, QModelIndex index)

Reimplemented from QAbstractItemDelegate.sizeHint().

Returns the size needed by the delegate to display the item specified by index, taking into account the style information provided by option.

When reimplementing this function, note that in case of text items, QItemDelegate adds a margin (i.e. 2 * QStyle.PM_FocusFrameHMargin) to the length of the text.

QItemDelegate.updateEditorGeometry (self, QWidget editor, QStyleOptionViewItem option, QModelIndex index)

Reimplemented from QAbstractItemDelegate.updateEditorGeometry().

Updates the editor for the item specified by index according to the style option given.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qitemeditorcreatorbase.html0000644000076500000240000001425112536324507023116 0ustar philstaff00000000000000 QItemEditorCreatorBase Class Reference
  Home · All Classes · Modules

QItemEditorCreatorBase Class Reference
[QtGui module]

The QItemEditorCreatorBase class provides an abstract base class that must be subclassed when implementing new item editor creators. More...

Methods


Detailed Description

The QItemEditorCreatorBase class provides an abstract base class that must be subclassed when implementing new item editor creators.

QItemEditorCreatorBase objects are specialized widget factories that provide editor widgets for one particular QVariant data type. They are used by QItemEditorFactory to create editors for QItemDelegates. Creator bases must be registered with QItemEditorFactory.registerEditor().

An editor should provide a user property for the data it edits. QItemDelagates can then access the property using Qt's meta-object system to set and retrieve the editing data. A property is set as the user property with the USER keyword:

 Q_PROPERTY(QColor color READ color WRITE setColor USER true)

If the editor does not provide a user property, it must return the name of the property from valuePropertyName(); delegates will then use the name to access the property. If a user property exists, item delegates will not call valuePropertyName().

QStandardItemEditorCreator is a convenience template class that can be used to register widgets without the need to subclass QItemEditorCreatorBase.


Method Documentation

QItemEditorCreatorBase.__init__ (self)

QItemEditorCreatorBase.__init__ (self, QItemEditorCreatorBase)

QWidget QItemEditorCreatorBase.createWidget (self, QWidget parent)

This method is abstract and should be reimplemented in any sub-class.

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Returns an editor widget with the given parent.

When implementing this function in subclasses of this class, you must construct and return new editor widgets with the parent widget specified.

QByteArray QItemEditorCreatorBase.valuePropertyName (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the property used to get and set values in the creator's editor widgets.

When implementing this function in subclasses, you must ensure that the editor widget's property specified by this function can accept the type the creator is registered for. For example, a creator which constructs QCheckBox widgets to edit boolean values would return the checkable property name from this function, and must be registered in the item editor factory for the QVariant.Bool type.

Note: Since Qt 4.2 the item delegates query the user property of widgets, and only call this function if the widget has no user property. You can override this behavior by reimplementing QAbstractItemDelegate.setModelData() and QAbstractItemDelegate.setEditorData().

See also QMetaObject.userProperty() and QItemEditorFactory.registerEditor().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qitemeditorfactory.html0000644000076500000240000001750112536324507022274 0ustar philstaff00000000000000 QItemEditorFactory Class Reference
  Home · All Classes · Modules

QItemEditorFactory Class Reference
[QtGui module]

The QItemEditorFactory class provides widgets for editing item data in views and delegates. More...

Methods

Static Methods


Detailed Description

The QItemEditorFactory class provides widgets for editing item data in views and delegates.

When editing data in an item view, editors are created and displayed by a delegate. QItemDelegate, which is the delegate by default installed on Qt's item views, uses a QItemEditorFactory to create editors for it. A default unique instance provided by QItemEditorFactory is used by all item delegates. If you set a new default factory with setDefaultFactory(), the new factory will be used by existing and new delegates.

A factory keeps a collection of QItemEditorCreatorBase instances, which are specialized editors that produce editors for one particular QVariant data type (All Qt models store their data in QVariants).

Standard Editing Widgets

The standard factory implementation provides editors for a variety of data types. These are created whenever a delegate needs to provide an editor for data supplied by a model. The following table shows the relationship between types and the standard editors provided.

Type Editor Widget
bool QComboBox
double QDoubleSpinBox
int QSpinBox
unsigned int
QDate QDateEdit
QDateTime QDateTimeEdit
QPixmap QLabel
QString QLineEdit
QTime QTimeEdit

Additional editors can be registered with the registerEditor() function.


Method Documentation

QItemEditorFactory.__init__ (self)

Constructs a new item editor factory.

QItemEditorFactory.__init__ (self, QItemEditorFactory)

QWidget QItemEditorFactory.createEditor (self, Type type, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an editor widget with the given parent for the specified type of data, and returns it as a QWidget.

See also registerEditor().

QItemEditorFactory QItemEditorFactory.defaultFactory ()

Returns the default item editor factory.

See also setDefaultFactory().

QItemEditorFactory.registerEditor (self, Type type, QItemEditorCreatorBase creator)

The creator argument has it's ownership transferred to Qt.

Registers an item editor creator specified by creator for the given type of data.

Note: The factory takes ownership of the item editor creator and will destroy it if a new creator for the same type is registered later.

See also createEditor().

QItemEditorFactory.setDefaultFactory (QItemEditorFactory factory)

The factory argument has it's ownership transferred to Qt.

Sets the default item editor factory to the given factory. Both new and existing delegates will use the new factory.

See also defaultFactory().

QByteArray QItemEditorFactory.valuePropertyName (self, Type type)

Returns the property name used to access data for the given type of data.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qitemselection.html0000644000076500000240000004115412536324507021404 0ustar philstaff00000000000000 QItemSelection Class Reference
  Home · All Classes · Modules

QItemSelection Class Reference
[QtGui module]

The QItemSelection class manages information about selected items in a model. More...

Methods

  • __init__ (self)
  • __init__ (self, QModelIndex topLeft, QModelIndex bottomRight)
  • __init__ (self, QItemSelection)
  • append (self, QItemSelectionRange range)
  • clear (self)
  • bool contains (self, QModelIndex index)
  • int count (self, QItemSelectionRange range)
  • int count (self)
  • QItemSelectionRange first (self)
  • list-of-QModelIndex indexes (self)
  • int indexOf (self, QItemSelectionRange value, int from = 0)
  • insert (self, int i, QItemSelectionRange range)
  • bool isEmpty (self)
  • QItemSelectionRange last (self)
  • int lastIndexOf (self, QItemSelectionRange value, int from = -1)
  • merge (self, QItemSelection other, QItemSelectionModel.SelectionFlags command)
  • move (self, int from, int to)
  • prepend (self, QItemSelectionRange range)
  • int removeAll (self, QItemSelectionRange range)
  • removeAt (self, int i)
  • replace (self, int i, QItemSelectionRange range)
  • select (self, QModelIndex topLeft, QModelIndex bottomRight)
  • swap (self, int i, int j)
  • QItemSelectionRange takeAt (self, int i)
  • QItemSelectionRange takeFirst (self)
  • QItemSelectionRange takeLast (self)

Static Methods

  • split (QItemSelectionRange range, QItemSelectionRange other, QItemSelection result)

Special Methods


Detailed Description

The QItemSelection class manages information about selected items in a model.

A QItemSelection describes the items in a model that have been selected by the user. A QItemSelection is basically a list of selection ranges, see QItemSelectionRange. It provides functions for creating and manipulating selections, and selecting a range of items from a model.

The QItemSelection class is one of the Model/View Classes and is part of Qt's model/view framework.

An item selection can be constructed and initialized to contain a range of items from an existing model. The following example constructs a selection that contains a range of items from the given model, beginning at the topLeft, and ending at the bottomRight.

 QItemSelection *selection = new QItemSelection(topLeft, bottomRight);

An empty item selection can be constructed, and later populated as required. So, if the model is going to be unavailable when we construct the item selection, we can rewrite the above code in the following way:

 QItemSelection *selection = new QItemSelection();
 ...
 selection->select(topLeft, bottomRight);

QItemSelection saves memory, and avoids unnecessary work, by working with selection ranges rather than recording the model item index for each item in the selection. Generally, an instance of this class will contain a list of non-overlapping selection ranges.

Use merge() to merge one item selection into another without making overlapping ranges. Use split() to split one selection range into smaller ranges based on a another selection range.


Method Documentation

QItemSelection.__init__ (self)

Constructs an empty selection.

QItemSelection.__init__ (self, QModelIndex topLeft, QModelIndex bottomRight)

Constructs an item selection that extends from the top-left model item, specified by the topLeft index, to the bottom-right item, specified by bottomRight.

QItemSelection.__init__ (self, QItemSelection)

QItemSelection.append (self, QItemSelectionRange range)

QItemSelection.clear (self)

bool QItemSelection.contains (self, QModelIndex index)

Returns true if the selection contains the given index; otherwise returns false.

int QItemSelection.count (self, QItemSelectionRange range)

int QItemSelection.count (self)

QItemSelectionRange QItemSelection.first (self)

list-of-QModelIndex QItemSelection.indexes (self)

Returns a list of model indexes that correspond to the selected items.

int QItemSelection.indexOf (self, QItemSelectionRange value, int from = 0)

QItemSelection.insert (self, int i, QItemSelectionRange range)

bool QItemSelection.isEmpty (self)

QItemSelectionRange QItemSelection.last (self)

int QItemSelection.lastIndexOf (self, QItemSelectionRange value, int from = -1)

QItemSelection.merge (self, QItemSelection other, QItemSelectionModel.SelectionFlags command)

Merges the other selection with this QItemSelection using the command given. This method guarantees that no ranges are overlapping.

Note that only QItemSelectionModel.Select, QItemSelectionModel.Deselect, and QItemSelectionModel.Toggle are supported.

See also split().

QItemSelection.move (self, int from, int to)

QItemSelection.prepend (self, QItemSelectionRange range)

int QItemSelection.removeAll (self, QItemSelectionRange range)

QItemSelection.removeAt (self, int i)

QItemSelection.replace (self, int i, QItemSelectionRange range)

QItemSelection.select (self, QModelIndex topLeft, QModelIndex bottomRight)

Adds the items in the range that extends from the top-left model item, specified by the topLeft index, to the bottom-right item, specified by bottomRight to the list.

Note: topLeft and bottomRight must have the same parent.

QItemSelection.split (QItemSelectionRange range, QItemSelectionRange other, QItemSelection result)

Splits the selection range using the selection other range. Removes all items in other from range and puts the result in result. This can be compared with the semantics of the subtract operation of a set.

See also merge().

QItemSelection.swap (self, int i, int j)

QItemSelectionRange QItemSelection.takeAt (self, int i)

QItemSelectionRange QItemSelection.takeFirst (self)

QItemSelectionRange QItemSelection.takeLast (self)

int QItemSelection.__contains__ (self, QModelIndex index)

QItemSelection.__delitem__ (self, int i)

QItemSelection.__delitem__ (self, slice slice)

bool QItemSelection.__eq__ (self, QItemSelection other)

QItemSelectionRange QItemSelection.__getitem__ (self, int i)

QItemSelection QItemSelection.__getitem__ (self, slice slice)

QItemSelection QItemSelection.__iadd__ (self, QItemSelection other)

QItemSelection QItemSelection.__iadd__ (self, QItemSelectionRange value)

QItemSelection.__len__ (self)

bool QItemSelection.__ne__ (self, QItemSelection other)

QItemSelection.__setitem__ (self, int i, QItemSelectionRange range)

QItemSelection.__setitem__ (self, slice slice, QItemSelection list)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qitemselectionmodel-selectionflags.html0000644000076500000240000001526012536324507025424 0ustar philstaff00000000000000 QItemSelectionModel.SelectionFlags Class Reference
  Home · All Classes · Modules

QItemSelectionModel.SelectionFlags Class Reference
[QtGui module]

Methods

Special Methods

  • SelectionFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, SelectionFlags f)
  • SelectionFlags __iand__ (self, int mask)
  • int __int__ (self)
  • SelectionFlags __invert__ (self)
  • SelectionFlags __ior__ (self, SelectionFlags f)
  • SelectionFlags __ixor__ (self, SelectionFlags f)
  • bool __ne__ (self, SelectionFlags f)
  • SelectionFlags __or__ (self, SelectionFlags f)
  • SelectionFlags __or__ (self, int f)
  • SelectionFlags __xor__ (self, SelectionFlags f)
  • SelectionFlags __xor__ (self, int f)

Detailed Description

SelectionFlag may be used whenever SelectionFlags is expected.


Method Documentation

SelectionFlags.__init__ (self, SelectionFlags)

SelectionFlags.__init__ (self, int)

SelectionFlags.__init__ (self)

SelectionFlags SelectionFlags.__and__ (self, int mask)

int SelectionFlags.__bool__ (self)

bool SelectionFlags.__eq__ (self, SelectionFlags f)

SelectionFlags SelectionFlags.__iand__ (self, int mask)

int SelectionFlags.__int__ (self)

SelectionFlags SelectionFlags.__invert__ (self)

SelectionFlags SelectionFlags.__ior__ (self, SelectionFlags f)

SelectionFlags SelectionFlags.__ixor__ (self, SelectionFlags f)

bool SelectionFlags.__ne__ (self, SelectionFlags f)

SelectionFlags SelectionFlags.__or__ (self, SelectionFlags f)

SelectionFlags SelectionFlags.__or__ (self, int f)

SelectionFlags SelectionFlags.__xor__ (self, SelectionFlags f)

SelectionFlags SelectionFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qitemselectionmodel.html0000644000076500000240000005230412536324507022424 0ustar philstaff00000000000000 QItemSelectionModel Class Reference
  Home · All Classes · Modules

QItemSelectionModel Class Reference
[QtGui module]

The QItemSelectionModel class keeps track of a view's selected items. More...

Inherits QObject.

Types

Methods

Qt Signals


Detailed Description

The QItemSelectionModel class keeps track of a view's selected items.

A QItemSelectionModel keeps track of the selected items in a view, or in several views onto the same model. It also keeps track of the currently selected item in a view.

The QItemSelectionModel class is one of the Model/View Classes and is part of Qt's model/view framework.

The selected items are stored using ranges. Whenever you want to modify the selected items use select() and provide either a QItemSelection, or a QModelIndex and a QItemSelectionModel.SelectionFlag.

The QItemSelectionModel takes a two layer approach to selection management, dealing with both selected items that have been committed and items that are part of the current selection. The current selected items are part of the current interactive selection (for example with rubber-band selection or keyboard-shift selections).

To update the currently selected items, use the bitwise OR of QItemSelectionModel.Current and any of the other SelectionFlags. If you omit the QItemSelectionModel.Current command, a new current selection will be created, and the previous one added to the whole selection. All functions operate on both layers; for example, selectedItems() will return items from both layers.


Type Documentation

QItemSelectionModel.SelectionFlag

This enum describes the way the selection model will be updated.

Constant Value Description
QItemSelectionModel.NoUpdate 0x0000 No selection will be made.
QItemSelectionModel.Clear 0x0001 The complete selection will be cleared.
QItemSelectionModel.Select 0x0002 All specified indexes will be selected.
QItemSelectionModel.Deselect 0x0004 All specified indexes will be deselected.
QItemSelectionModel.Toggle 0x0008 All specified indexes will be selected or deselected depending on their current state.
QItemSelectionModel.Current 0x0010 The current selection will be updated.
QItemSelectionModel.Rows 0x0020 All indexes will be expanded to span rows.
QItemSelectionModel.Columns 0x0040 All indexes will be expanded to span columns.
QItemSelectionModel.SelectCurrent Select | Current A combination of Select and Current, provided for convenience.
QItemSelectionModel.ToggleCurrent Toggle | Current A combination of Toggle and Current, provided for convenience.
QItemSelectionModel.ClearAndSelect Clear | Select A combination of Clear and Select, provided for convenience.

The SelectionFlags type is a typedef for QFlags<SelectionFlag>. It stores an OR combination of SelectionFlag values.


Method Documentation

QItemSelectionModel.__init__ (self, QAbstractItemModel model)

The model argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a selection model that operates on the specified item model.

QItemSelectionModel.__init__ (self, QAbstractItemModel model, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a selection model that operates on the specified item model with parent.

QItemSelectionModel.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Clears the selection model. Emits selectionChanged() and currentChanged().

QItemSelectionModel.clearSelection (self)

This method is also a Qt slot with the C++ signature void clearSelection().

Clears the selection in the selection model. Emits selectionChanged().

This function was introduced in Qt 4.2.

bool QItemSelectionModel.columnIntersectsSelection (self, int column, QModelIndex parent)

Returns true if there are any items selected in the column with the given parent.

QModelIndex QItemSelectionModel.currentIndex (self)

Returns the model item index for the current item, or an invalid index if there is no current item.

See also setCurrentIndex().

QItemSelectionModel.emitSelectionChanged (self, QItemSelection newSelection, QItemSelection oldSelection)

Compares the two selections newSelection and oldSelection and emits selectionChanged() with the deselected and selected items.

bool QItemSelectionModel.hasSelection (self)

Returns true if the selection model contains any selection ranges; otherwise returns false.

This function was introduced in Qt 4.2.

bool QItemSelectionModel.isColumnSelected (self, int column, QModelIndex parent)

Returns true if all items are selected in the column with the given parent.

Note that this function is usually faster than calling isSelected() on all items in the same column and that unselectable items are ignored.

bool QItemSelectionModel.isRowSelected (self, int row, QModelIndex parent)

Returns true if all items are selected in the row with the given parent.

Note that this function is usually faster than calling isSelected() on all items in the same row and that unselectable items are ignored.

bool QItemSelectionModel.isSelected (self, QModelIndex index)

Returns true if the given model item index is selected.

QAbstractItemModel QItemSelectionModel.model (self)

Returns the item model operated on by the selection model.

QItemSelectionModel.reset (self)

This method is also a Qt slot with the C++ signature void reset().

Clears the selection model. Does not emit any signals.

bool QItemSelectionModel.rowIntersectsSelection (self, int row, QModelIndex parent)

Returns true if there are any items selected in the row with the given parent.

QItemSelectionModel.select (self, QModelIndex index, SelectionFlags command)

This method is also a Qt slot with the C++ signature void select(const QModelIndex&,QItemSelectionModel::SelectionFlags).

Selects the model item index using the specified command, and emits selectionChanged().

See also QItemSelectionModel.SelectionFlags.

QItemSelectionModel.select (self, QItemSelection selection, SelectionFlags command)

This method is also a Qt slot with the C++ signature void select(const QItemSelection&,QItemSelectionModel::SelectionFlags).

Selects the item selection using the specified command, and emits selectionChanged().

See also QItemSelectionModel.SelectionFlag.

list-of-QModelIndex QItemSelectionModel.selectedColumns (self, int row = 0)

Returns the indexes in the given row for columns where all rows are selected.

This function was introduced in Qt 4.2.

See also selectedIndexes() and selectedRows().

list-of-QModelIndex QItemSelectionModel.selectedIndexes (self)

Returns a list of all selected model item indexes. The list contains no duplicates, and is not sorted.

list-of-QModelIndex QItemSelectionModel.selectedRows (self, int column = 0)

Returns the indexes in the given column for the rows where all columns are selected.

This function was introduced in Qt 4.2.

See also selectedIndexes() and selectedColumns().

QItemSelection QItemSelectionModel.selection (self)

Returns the selection ranges stored in the selection model.

QItemSelectionModel.setCurrentIndex (self, QModelIndex index, SelectionFlags command)

This method is also a Qt slot with the C++ signature void setCurrentIndex(const QModelIndex&,QItemSelectionModel::SelectionFlags).

Sets the model item index to be the current item, and emits currentChanged(). The current item is used for keyboard navigation and focus indication; it is independent of any selected items, although a selected item can also be the current item.

Depending on the specified command, the index can also become part of the current selection.

See also currentIndex() and select().


Qt Signal Documentation

void currentChanged (const QModelIndex&,const QModelIndex&)

This is the default overload of this signal.

This signal is emitted whenever the current item changes. The previous model item index is replaced by the current index as the selection's current item.

Note that this signal will not be emitted when the item model is reset.

See also currentIndex(), setCurrentIndex(), and selectionChanged().

void currentColumnChanged (const QModelIndex&,const QModelIndex&)

This is the default overload of this signal.

This signal is emitted if the current item changes and its column is different to the column of the previous current item.

Note that this signal will not be emitted when the item model is reset.

See also currentChanged(), currentRowChanged(), currentIndex(), and setCurrentIndex().

void currentRowChanged (const QModelIndex&,const QModelIndex&)

This is the default overload of this signal.

This signal is emitted if the current item changes and its row is different to the row of the previous current item.

Note that this signal will not be emitted when the item model is reset.

See also currentChanged(), currentColumnChanged(), currentIndex(), and setCurrentIndex().

void selectionChanged (const QItemSelection&,const QItemSelection&)

This is the default overload of this signal.

This signal is emitted whenever the selection changes. The change in the selection is represented as an item selection of deselected items and an item selection of selected items.

Note the that the current index changes independently from the selection. Also note that this signal will not be emitted when the item model is reset.

See also select() and currentChanged().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qitemselectionrange.html0000644000076500000240000003164112536324507022421 0ustar philstaff00000000000000 QItemSelectionRange Class Reference
  Home · All Classes · Modules

QItemSelectionRange Class Reference
[QtGui module]

The QItemSelectionRange class manages information about a range of selected items in a model. More...

Methods

Special Methods

  • bool __eq__ (self, QItemSelectionRange other)
  • bool __ge__ (self, QItemSelectionRange other)
  • int __hash__ (self)
  • bool __lt__ (self, QItemSelectionRange other)
  • bool __ne__ (self, QItemSelectionRange other)

Detailed Description

The QItemSelectionRange class manages information about a range of selected items in a model.

A QItemSelectionRange contains information about a range of selected items in a model. A range of items is a contiguous array of model items, extending to cover a number of adjacent rows and columns with a common parent item; this can be visualized as a two-dimensional block of cells in a table. A selection range has a top(), left() a bottom(), right() and a parent().

The QItemSelectionRange class is one of the Model/View Classes and is part of Qt's model/view framework.

The model items contained in the selection range can be obtained using the indexes() function. Use QItemSelectionModel.selectedIndexes() to get a list of all selected items for a view.

You can determine whether a given model item lies within a particular range by using the contains() function. Ranges can also be compared using the overloaded operators for equality and inequality, and the intersects() function allows you to determine whether two ranges overlap.


Method Documentation

QItemSelectionRange.__init__ (self)

Constructs an empty selection range.

QItemSelectionRange.__init__ (self, QItemSelectionRange other)

Copy constructor. Constructs a new selection range with the same contents as the other range given.

QItemSelectionRange.__init__ (self, QModelIndex atopLeft, QModelIndex abottomRight)

Constructs a new selection range containing only the index specified by the topLeft and the index bottomRight.

QItemSelectionRange.__init__ (self, QModelIndex index)

Constructs a new selection range containing only the model item specified by the model index index.

int QItemSelectionRange.bottom (self)

Returns the row index corresponding to the lowermost selected row in the selection range.

QModelIndex QItemSelectionRange.bottomRight (self)

Returns the index for the item located at the bottom-right corner of the selection range.

See also bottom(), right(), and topLeft().

bool QItemSelectionRange.contains (self, QModelIndex index)

Returns true if the model item specified by the index lies within the range of selected items; otherwise returns false.

bool QItemSelectionRange.contains (self, int row, int column, QModelIndex parentIndex)

This is an overloaded function.

Returns true if the model item specified by (row, column) and with parentIndex as the parent item lies within the range of selected items; otherwise returns false.

int QItemSelectionRange.height (self)

Returns the number of selected rows in the selection range.

list-of-QModelIndex QItemSelectionRange.indexes (self)

Returns the list of model index items stored in the selection.

QItemSelectionRange QItemSelectionRange.intersect (self, QItemSelectionRange other)

QItemSelectionRange QItemSelectionRange.intersected (self, QItemSelectionRange other)

Returns a new selection range containing only the items that are found in both the selection range and the other selection range.

This function was introduced in Qt 4.2.

bool QItemSelectionRange.intersects (self, QItemSelectionRange other)

Returns true if this selection range intersects (overlaps with) the other range given; otherwise returns false.

bool QItemSelectionRange.isEmpty (self)

Returns true if the selection range contains no selectable item

This function was introduced in Qt 4.7.

bool QItemSelectionRange.isValid (self)

Returns true if the selection range is valid; otherwise returns false.

int QItemSelectionRange.left (self)

Returns the column index corresponding to the leftmost selected column in the selection range.

QAbstractItemModel QItemSelectionRange.model (self)

Returns the model that the items in the selection range belong to.

QModelIndex QItemSelectionRange.parent (self)

Returns the parent model item index of the items in the selection range.

int QItemSelectionRange.right (self)

Returns the column index corresponding to the rightmost selected column in the selection range.

int QItemSelectionRange.top (self)

Returns the row index corresponding to the uppermost selected row in the selection range.

QModelIndex QItemSelectionRange.topLeft (self)

Returns the index for the item located at the top-left corner of the selection range.

See also top(), left(), and bottomRight().

int QItemSelectionRange.width (self)

Returns the number of selected columns in the selection range.

bool QItemSelectionRange.__eq__ (self, QItemSelectionRange other)

bool QItemSelectionRange.__ge__ (self, QItemSelectionRange other)

int QItemSelectionRange.__hash__ (self)

bool QItemSelectionRange.__lt__ (self, QItemSelectionRange other)

bool QItemSelectionRange.__ne__ (self, QItemSelectionRange other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qkeyevent.html0000644000076500000240000002432112536324503020363 0ustar philstaff00000000000000 QKeyEvent Class Reference
  Home · All Classes · Modules

QKeyEvent Class Reference
[QtGui module]

The QKeyEvent class describes a key event. More...

Inherits QInputEvent.

Methods

Special Methods

  • bool __eq__ (self, QKeySequence.StandardKey key)
  • __len__ (self)
  • bool __ne__ (self, QKeySequence.StandardKey key)

Detailed Description

The QKeyEvent class describes a key event.

Key events are sent to the widget with keyboard input focus when keys are pressed or released.

A key event contains a special accept flag that indicates whether the receiver will handle the key event. You should call ignore() if the key press or release event is not handled by your widget. A key event is propagated up the parent widget chain until a widget accepts it with accept() or an event filter consumes it. Key events for multimedia keys are ignored by default. You should call accept() if your widget handles those events.

The QWidget.setEnable() function can be used to enable or disable mouse and keyboard events for a widget.

The event handlers QWidget.keyPressEvent(), QWidget.keyReleaseEvent(), QGraphicsItem.keyPressEvent() and QGraphicsItem.keyReleaseEvent() receive key events.


Method Documentation

QKeyEvent.__init__ (self, QEvent.Type type, int key, Qt.KeyboardModifiers modifiers, QString text = QString(), bool autorep = False, int count = 1)

Constructs a key event object.

The type parameter must be QEvent.KeyPress, QEvent.KeyRelease, or QEvent.ShortcutOverride.

Int key is the code for the Qt.Key that the event loop should listen for. If key is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. The modifiers holds the keyboard modifiers, and the given text is the Unicode text that the key generated. If autorep is true, isAutoRepeat() will be true. count is the number of keys involved in the event.

QKeyEvent.__init__ (self, QKeyEvent)

int QKeyEvent.count (self)

Returns the number of keys involved in this event. If text() is not empty, this is simply the length of the string.

See also Qt.WA_KeyCompression.

bool QKeyEvent.isAutoRepeat (self)

Returns true if this event comes from an auto-repeating key; returns false if it comes from an initial key press.

Note that if the event is a multiple-key compressed event that is partly due to auto-repeat, this function could return either true or false indeterminately.

int QKeyEvent.key (self)

Returns the code of the key that was pressed or released.

See Qt.Key for the list of keyboard codes. These codes are independent of the underlying window system. Note that this function does not distinguish between capital and non-capital letters, use the text() function (returning the Unicode text the key generated) for this purpose.

A value of either 0 or Qt.Key_unknown means that the event is not the result of a known key; for example, it may be the result of a compose sequence, a keyboard macro, or due to key event compression.

See also Qt.WA_KeyCompression.

bool QKeyEvent.matches (self, QKeySequence.StandardKey key)

Returns true if the key event matches the given standard key; otherwise returns false.

This function was introduced in Qt 4.2.

Qt.KeyboardModifiers QKeyEvent.modifiers (self)

Returns the keyboard modifier flags that existed immediately after the event occurred.

Warning: This function cannot always be trusted. The user can confuse it by pressing both Shift keys simultaneously and releasing one of them, for example.

See also QApplication.keyboardModifiers().

int QKeyEvent.nativeModifiers (self)

Returns the native modifiers of a key event. If the key event does not contain this data 0 is returned.

Note: The native modifiers may be 0, even if the key event contains extended information.

This function was introduced in Qt 4.2.

int QKeyEvent.nativeScanCode (self)

Returns the native scan code of the key event. If the key event does not contain this data 0 is returned.

Note: The native scan code may be 0, even if the key event contains extended information.

Note: On Mac OS/X, this function is not useful, because there is no way to get the scan code from Carbon or Cocoa. The function always returns 1 (or 0 in the case explained above).

This function was introduced in Qt 4.2.

int QKeyEvent.nativeVirtualKey (self)

Returns the native virtual key, or key sym of the key event. If the key event does not contain this data 0 is returned.

Note: The native virtual key may be 0, even if the key event contains extended information.

This function was introduced in Qt 4.2.

QString QKeyEvent.text (self)

Returns the Unicode text that this key generated. The text returned can be an empty string in cases where modifier keys, such as Shift, Control, Alt, and Meta, are being pressed or released. In such cases key() will contain a valid value.

See also Qt.WA_KeyCompression.

bool QKeyEvent.__eq__ (self, QKeySequence.StandardKey key)

QKeyEvent.__len__ (self)

bool QKeyEvent.__ne__ (self, QKeySequence.StandardKey key)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qkeyeventtransition.html0000644000076500000240000001207112536324507022501 0ustar philstaff00000000000000 QKeyEventTransition Class Reference
  Home · All Classes · Modules

QKeyEventTransition Class Reference
[QtGui module]

The QKeyEventTransition class provides a transition for key events. More...

Inherits QEventTransition.

Methods


Detailed Description

The QKeyEventTransition class provides a transition for key events.

QKeyEventTransition is part of The State Machine Framework.


Method Documentation

QKeyEventTransition.__init__ (self, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new key event transition with the given sourceState.

QKeyEventTransition.__init__ (self, QObject object, QEvent.Type type, int key, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new key event transition for events of the given type for the given object, with the given key and sourceState.

bool QKeyEventTransition.eventTest (self, QEvent event)

Reimplemented from QAbstractTransition.eventTest().

int QKeyEventTransition.key (self)

Qt.KeyboardModifiers QKeyEventTransition.modifierMask (self)

QKeyEventTransition.onTransition (self, QEvent event)

Reimplemented from QAbstractTransition.onTransition().

QKeyEventTransition.setKey (self, int key)

QKeyEventTransition.setModifierMask (self, Qt.KeyboardModifiers modifiers)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qkeysequence.html0000644000076500000240000013616212536324507021065 0ustar philstaff00000000000000 QKeySequence Class Reference
  Home · All Classes · Modules

QKeySequence Class Reference
[QtGui module]

The QKeySequence class encapsulates a key sequence as used by shortcuts. More...

Types

Methods

  • __init__ (self)
  • __init__ (self, QKeySequence ks)
  • __init__ (self, QString key, SequenceFormat format)
  • __init__ (self, int k1, int key2 = 0, int key3 = 0, int key4 = 0)
  • __init__ (self, QVariant variant)
  • int count (self)
  • bool isDetached (self)
  • bool isEmpty (self)
  • SequenceMatch matches (self, QKeySequence seq)
  • swap (self, QKeySequence other)
  • QString toString (self, SequenceFormat format = QKeySequence.PortableText)

Static Methods

  • QKeySequence fromString (QString str, SequenceFormat format = QKeySequence.PortableText)
  • list-of-QKeySequence keyBindings (StandardKey key)
  • QKeySequence mnemonic (QString text)

Special Methods


Detailed Description

This class can be pickled.

StandardKey, QString or a Python int object may be used whenever QKeySequence is expected.

The QKeySequence class encapsulates a key sequence as used by shortcuts.

In its most common form, a key sequence describes a combination of keys that must be used together to perform some action. Key sequences are used with QAction objects to specify which keyboard shortcuts can be used to trigger actions.

Key sequences can be constructed for use as keyboard shortcuts in three different ways:

  • For standard shortcuts, a standard key can be used to request the platform-specific key sequence associated with each shortcut.
  • For custom shortcuts, human-readable strings such as "Ctrl+X" can be used, and these can be translated into the appropriate shortcuts for users of different languages. Translations are made in the "QShortcut" context.
  • For hard-coded shortcuts, integer key codes can be specified with a combination of values defined by the Qt.Key and Qt.Modifier enum values. Each key code consists of a single Qt.Key value and zero or more modifiers, such as Qt.SHIFT, Qt.CTRL, Qt.ALT and Qt.META.

For example, Ctrl P might be a sequence used as a shortcut for printing a document, and can be specified in any of the following ways:

 QKeySequence(QKeySequence.Print);
 QKeySequence(tr("Ctrl+P"));
 QKeySequence(tr("Ctrl+p"));
 QKeySequence(Qt.CTRL + Qt.Key_P);

Note that, for letters, the case used in the specification string does not matter. In the above examples, the user does not need to hold down the Shift key to activate a shortcut specified with "Ctrl+P". However, for other keys, the use of Shift as an unspecified extra modifier key can lead to confusion for users of an application whose keyboards have different layouts to those used by the developers. See the Keyboard Layout Issues section below for more details.

It is preferable to use standard shortcuts where possible. When creating key sequences for non-standard shortcuts, you should use human-readable strings in preference to hard-coded integer values.

QKeySequence objects can be cast to a QString to obtain a human-readable translated version of the sequence. Similarly, the toString() function produces human-readable strings for use in menus. On Mac OS X, the appropriate symbols are used to describe keyboard shortcuts using special keys on the Macintosh keyboard.

An alternative way to specify hard-coded key codes is to use the Unicode code point of the character; for example, 'A' gives the same key sequence as Qt.Key_A.

Note: On Mac OS X, references to "Ctrl", Qt.CTRL, Qt.Control and Qt.ControlModifier correspond to the Command keys on the Macintosh keyboard, and references to "Meta", Qt.META, Qt.Meta and Qt.MetaModifier correspond to the Control keys. Developers on Mac OS X can use the same shortcut descriptions across all platforms, and their applications will automatically work as expected on Mac OS X.

Standard Shortcuts

QKeySequence defines many standard keyboard shortcuts to reduce the amount of effort required when setting up actions in a typical application. The table below shows some common key sequences that are often used for these standard shortcuts by applications on four widely-used platforms. Note that on Mac OS X, the Ctrl value corresponds to the Command keys on the Macintosh keyboard, and the Meta value corresponds to the Control keys.

StandardKey Windows Mac OS X KDE GNOME S60
HelpContents F1 Ctrl+? F1 F1 F2
WhatsThis Shift+F1 Shift+F1 Shift+F1 Shift+F1 Shift+F1
Open Ctrl+O Ctrl+O Ctrl+O Ctrl+O (none)
Close Ctrl+F4, Ctrl+W Ctrl+W, Ctrl+F4 Ctrl+W Ctrl+W (none)
Save Ctrl+S Ctrl+S Ctrl+S Ctrl+S (none)
Quit Ctrl+Q Qtrl+Q Qtrl+Q (none)
SaveAs Ctrl+Shift+S Ctrl+Shift+S (none)
New Ctrl+N Ctrl+N Ctrl+N Ctrl+N (none)
Delete Del Del, Meta+D Del, Ctrl+D Del, Ctrl+D Del
Cut Ctrl+X, Shift+Del Ctrl+X Ctrl+X, F20, Shift+Del Ctrl+X, F20, Shift+Del Ctrl+X
Copy Ctrl+C, Ctrl+Ins Ctrl+C Ctrl+C, F16, Ctrl+Ins Ctrl+C, F16, Ctrl+Ins Ctrl+C
Paste Ctrl+V, Shift+Ins Ctrl+V Ctrl+V, F18, Shift+Ins Ctrl+V, F18, Shift+Ins Ctrl+V
Preferences Ctrl+, (none)
Undo Ctrl+Z, Alt+Backspace Ctrl+Z Ctrl+Z, F14 Ctrl+Z, F14 Ctrl+Z
Redo Ctrl+Y, Shift+Ctrl+Z, Alt+Shift+Backspace Ctrl+Shift+Z Ctrl+Shift+Z Ctrl+Shift+Z (none)
Back Alt+Left, Backspace Ctrl+[ Alt+Left Alt+Left (none)
Forward Alt+Right, Shift+Backspace Ctrl+] Alt+Right Alt+Right (none)
Refresh F5 F5 F5 Ctrl+R, F5 (none)
ZoomIn Ctrl+Plus Ctrl+Plus Ctrl+Plus Ctrl+Plus (none)
ZoomOut Ctrl+Minus Ctrl+Minus Ctrl+Minus Ctrl+Minus (none)
Print Ctrl+P Ctrl+P Ctrl+P Ctrl+P (none)
AddTab Ctrl+T Ctrl+T Ctrl+Shift+N, Ctrl+T Ctrl+T (none)
NextChild Ctrl+Tab, Forward, Ctrl+F6 Ctrl+}, Forward, Ctrl+Tab Ctrl+Tab, Forward, Ctrl+Comma Ctrl+Tab, Forward (none)
PreviousChild Ctrl+Shift+Tab, Back, Ctrl+Shift+F6 Ctrl+{, Back, Ctrl+Shift+Tab Ctrl+Shift+Tab, Back, Ctrl+Period Ctrl+Shift+Tab, Back (none)
Find Ctrl+F Ctrl+F Ctrl+F Ctrl+F (none)
FindNext F3, Ctrl+G Ctrl+G F3 Ctrl+G, F3 (none)
FindPrevious Shift+F3, Ctrl+Shift+G Ctrl+Shift+G Shift+F3 Ctrl+Shift+G, Shift+F3 (none)
Replace Ctrl+H (none) Ctrl+R Ctrl+H (none)
SelectAll Ctrl+A Ctrl+A Ctrl+A Ctrl+A (none)
Bold Ctrl+B Ctrl+B Ctrl+B Ctrl+B (none)
Italic Ctrl+I Ctrl+I Ctrl+I Ctrl+I (none)
Underline Ctrl+U Ctrl+U Ctrl+U Ctrl+U (none)
MoveToNextChar Right Right Right Right Right
MoveToPreviousChar Left Left Left Left Left
MoveToNextWord Ctrl+Right Alt+Right Ctrl+Right Ctrl+Right Ctrl+Right
MoveToPreviousWord Ctrl+Left Alt+Left Ctrl+Left Ctrl+Left Ctrl+Left
MoveToNextLine Down Down Down Down Down
MoveToPreviousLine Up Up Up Up Up
MoveToNextPage PgDown PgDown, Alt+PgDown, Meta+Down, Meta+PgDown PgDown PgDown PgDown
MoveToPreviousPage PgUp PgUp, Alt+PgUp, Meta+Up, Meta+PgUp PgUp PgUp PgUp
MoveToStartOfLine Home Ctrl+Left, Meta+Left Home Home Home
MoveToEndOfLine End Ctrl+Right, Meta+Right End End End
MoveToStartOfBlock (none) Alt+Up, Meta+A (none) (none) (none)
MoveToEndOfBlock (none) Alt+Down, Meta+E (none) (none) (none)
MoveToStartOfDocument Ctrl+Home Ctrl+Up, Home Ctrl+Home Ctrl+Home Ctrl+Home
MoveToEndOfDocument Ctrl+End Ctrl+Down, End Ctrl+End Ctrl+End Ctrl+End
SelectNextChar Shift+Right Shift+Right Shift+Right Shift+Right Shift+Right
SelectPreviousChar Shift+Left Shift+Left Shift+Left Shift+Left Shift+Left
SelectNextWord Ctrl+Shift+Right Alt+Shift+Right Ctrl+Shift+Right Ctrl+Shift+Right Ctrl+Shift+Right
SelectPreviousWord Ctrl+Shift+Left Alt+Shift+Left Ctrl+Shift+Left Ctrl+Shift+Left Ctrl+Shift+Left
SelectNextLine Shift+Down Shift+Down Shift+Down Shift+Down Shift+Down
SelectPreviousLine Shift+Up Shift+Up Shift+Up Shift+Up Shift+Up
SelectNextPage Shift+PgDown Shift+PgDown Shift+PgDown Shift+PgDown Shift+PgDown
SelectPreviousPage Shift+PgUp Shift+PgUp Shift+PgUp Shift+PgUp Shift+PgUp
SelectStartOfLine Shift+Home Ctrl+Shift+Left Shift+Home Shift+Home Shift+Home
SelectEndOfLine Shift+End Ctrl+Shift+Right Shift+End Shift+End Shift+End
SelectStartOfBlock (none) Alt+Shift+Up, Meta+Shift+A (none) (none) (none)
SelectEndOfBlock (none) Alt+Shift+Down, Meta+Shift+E (none) (none) (none)
SelectStartOfDocument Ctrl+Shift+Home Ctrl+Shift+Up, Shift+Home Ctrl+Shift+Home Ctrl+Shift+Home Ctrl+Shift+Home
SelectEndOfDocument Ctrl+Shift+End Ctrl+Shift+Down, Shift+End Ctrl+Shift+End Ctrl+Shift+End Ctrl+Shift+End
DeleteStartOfWord Ctrl+Backspace Alt+Backspace Ctrl+Backspace Ctrl+Backspace (none)
DeleteEndOfWord Ctrl+Del (none) Ctrl+Del Ctrl+Del (none)
DeleteEndOfLine (none) (none) Ctrl+K Ctrl+K (none)
InsertParagraphSeparator Enter Enter Enter Enter (none)
InsertLineSeparator Shift+Enter Meta+Enter Shift+Enter Shift+Enter (none)

Note that, since the key sequences used for the standard shortcuts differ between platforms, you still need to test your shortcuts on each platform to ensure that you do not unintentionally assign the same key sequence to many actions.

Keyboard Layout Issues

Many key sequence specifications are chosen by developers based on the layout of certain types of keyboard, rather than choosing keys that represent the first letter of an action's name, such as Ctrl S ("Ctrl+S") or Ctrl C ("Ctrl+C"). Additionally, because certain symbols can only be entered with the help of modifier keys on certain keyboard layouts, key sequences intended for use with one keyboard layout may map to a different key, map to no keys at all, or require an additional modifier key to be used on different keyboard layouts.

For example, the shortcuts, Ctrl plus and Ctrl minus, are often used as shortcuts for zoom operations in graphics applications, and these may be specified as "Ctrl++" and "Ctrl+-" respectively. However, the way these shortcuts are specified and interpreted depends on the keyboard layout. Users of Norwegian keyboards will note that the + and - keys are not adjacent on the keyboard, but will still be able to activate both shortcuts without needing to press the Shift key. However, users with British keyboards will need to hold down the Shift key to enter the + symbol, making the shortcut effectively the same as "Ctrl+Shift+=".

Although some developers might resort to fully specifying all the modifiers they use on their keyboards to activate a shortcut, this will also result in unexpected behavior for users of different keyboard layouts.

For example, a developer using a British keyboard may decide to specify "Ctrl+Shift+=" as the key sequence in order to create a shortcut that coincidentally behaves in the same way as Ctrl plus. However, the = key needs to be accessed using the Shift key on Norwegian keyboard, making the required shortcut effectively Ctrl Shift Shift = (an impossible key combination).

As a result, both human-readable strings and hard-coded key codes can both be problematic to use when specifying a key sequence that can be used on a variety of different keyboard layouts. Only the use of standard shortcuts guarantees that the user will be able to use the shortcuts that the developer intended.

Despite this, we can address this issue by ensuring that human-readable strings are used, making it possible for translations of key sequences to be made for users of different languages. This approach will be successful for users whose keyboards have the most typical layout for the language they are using.

GNU Emacs Style Key Sequences

Key sequences similar to those used in GNU Emacs, allowing up to four key codes, can be created by using the multiple argument constructor, or by passing a human-readable string of comma-separated key sequences.

For example, the key sequence, Ctrl X followed by Ctrl C, can be specified using either of the following ways:

 QKeySequence(tr("Ctrl+X, Ctrl+C"));
 QKeySequence(Qt.CTRL + Qt.Key_X, Qt.CTRL + Qt.Key_C);

Warning: A QApplication instance must have been constructed before a QKeySequence is created; otherwise, your application may crash.


Type Documentation

QKeySequence.SequenceFormat

Constant Value Description
QKeySequence.NativeText 0 The key sequence as a platform specific string. This means that it will be shown translated and on the Mac it will resemble a key sequence from the menu bar. This enum is best used when you want to display the string to the user.
QKeySequence.PortableText 1 The key sequence is given in a "portable" format, suitable for reading and writing to a file. In many cases, it will look similar to the native text on Windows and X11.

QKeySequence.SequenceMatch

Constant Value Description
QKeySequence.NoMatch 0 The key sequences are different; not even partially matching.
QKeySequence.PartialMatch 1 The key sequences match partially, but are not the same.
QKeySequence.ExactMatch 2 The key sequences are the same.

QKeySequence.StandardKey

This enum represent standard key bindings. They can be used to assign platform dependent keyboard shortcuts to a QAction.

Note that the key bindings are platform dependent. The currently bound shortcuts can be queried using keyBindings().

Constant Value Description
QKeySequence.AddTab 19 Add new tab.
QKeySequence.Back 13 Navigate back.
QKeySequence.Bold 27 Bold text.
QKeySequence.Close 4 Close document/tab.
QKeySequence.Copy 9 Copy.
QKeySequence.Cut 8 Cut.
QKeySequence.Delete 7 Delete.
QKeySequence.DeleteEndOfLine 60 Delete end of line.
QKeySequence.DeleteEndOfWord 59 Delete word from the end of the cursor.
QKeySequence.DeleteStartOfWord 58 Delete the beginning of a word up to the cursor.
QKeySequence.Find 22 Find in document.
QKeySequence.FindNext 23 Find next result.
QKeySequence.FindPrevious 24 Find previous result.
QKeySequence.Forward 14 Navigate forward.
QKeySequence.HelpContents 1 Open help contents.
QKeySequence.InsertLineSeparator 62 Insert a new line.
QKeySequence.InsertParagraphSeparator 61 Insert a new paragraph.
QKeySequence.Italic 28 Italic text.
QKeySequence.MoveToEndOfBlock 41 Move cursor to end of block. This shortcut is only used on the OS X.
QKeySequence.MoveToEndOfDocument 43 Move cursor to end of document.
QKeySequence.MoveToEndOfLine 39 Move cursor to end of line.
QKeySequence.MoveToNextChar 30 Move cursor to next character.
QKeySequence.MoveToNextLine 34 Move cursor to next line.
QKeySequence.MoveToNextPage 36 Move cursor to next page.
QKeySequence.MoveToNextWord 32 Move cursor to next word.
QKeySequence.MoveToPreviousChar 31 Move cursor to previous character.
QKeySequence.MoveToPreviousLine 35 Move cursor to previous line.
QKeySequence.MoveToPreviousPage 37 Move cursor to previous page.
QKeySequence.MoveToPreviousWord 33 Move cursor to previous word.
QKeySequence.MoveToStartOfBlock 40 Move cursor to start of a block. This shortcut is only used on OS X.
QKeySequence.MoveToStartOfDocument 42 Move cursor to start of document.
QKeySequence.MoveToStartOfLine 38 Move cursor to start of line.
QKeySequence.New 6 Create new document.
QKeySequence.NextChild 20 Navigate to next tab or child window.
QKeySequence.Open 3 Open document.
QKeySequence.Paste 10 Paste.
QKeySequence.Preferences 64 Open the preferences dialog.
QKeySequence.PreviousChild 21 Navigate to previous tab or child window.
QKeySequence.Print 18 Print document.
QKeySequence.Quit 65 Quit the application.
QKeySequence.Redo 12 Redo.
QKeySequence.Refresh 15 Refresh or reload current document.
QKeySequence.Replace 25 Find and replace.
QKeySequence.SaveAs 63 Save document after prompting the user for a file name.
QKeySequence.Save 5 Save document.
QKeySequence.SelectAll 26 Select all text.
QKeySequence.SelectEndOfBlock 55 Extend selection to the end of a text block. This shortcut is only used on OS X.
QKeySequence.SelectEndOfDocument 57 Extend selection to end of document.
QKeySequence.SelectEndOfLine 53 Extend selection to end of line.
QKeySequence.SelectNextChar 44 Extend selection to next character.
QKeySequence.SelectNextLine 48 Extend selection to next line.
QKeySequence.SelectNextPage 50 Extend selection to next page.
QKeySequence.SelectNextWord 46 Extend selection to next word.
QKeySequence.SelectPreviousChar 45 Extend selection to previous character.
QKeySequence.SelectPreviousLine 49 Extend selection to previous line.
QKeySequence.SelectPreviousPage 51 Extend selection to previous page.
QKeySequence.SelectPreviousWord 47 Extend selection to previous word.
QKeySequence.SelectStartOfBlock 54 Extend selection to the start of a text block. This shortcut is only used on OS X.
QKeySequence.SelectStartOfDocument 56 Extend selection to start of document.
QKeySequence.SelectStartOfLine 52 Extend selection to start of line.
QKeySequence.Underline 29 Underline text.
QKeySequence.Undo 11 Undo.
QKeySequence.UnknownKey 0 Unbound key.
QKeySequence.WhatsThis 2 Activate whats this.
QKeySequence.ZoomIn 16 Zoom in.
QKeySequence.ZoomOut 17 Zoom out.

This enum was introduced or modified in Qt 4.2.


Method Documentation

QKeySequence.__init__ (self)

Constructs an empty key sequence.

QKeySequence.__init__ (self, QKeySequence ks)

Creates a key sequence from the key string. For example "Ctrl+O" gives CTRL+'O'. The strings "Ctrl", "Shift", "Alt" and "Meta" are recognized, as well as their translated equivalents in the "QShortcut" context (using QObject.tr()).

Up to four key codes may be entered by separating them with commas, e.g. "Alt+X,Ctrl+S,Q".

key should be in NativeText format.

This constructor is typically used with tr(), so that shortcut keys can be replaced in translations:

 QMenu *file = new QMenu(this);
 file->addAction(tr("&Open..."), this, SLOT(open()),
                   QKeySequence(tr("Ctrl+O", "File|Open")));

Note the "File|Open" translator comment. It is by no means necessary, but it provides some context for the human translator.

QKeySequence.__init__ (self, QString key, SequenceFormat format)

Creates a key sequence from the key string based on format.

This function was introduced in Qt 4.7.

QKeySequence.__init__ (self, int k1, int key2 = 0, int key3 = 0, int key4 = 0)

Constructs a key sequence with up to 4 keys k1, k2, k3 and k4.

The key codes are listed in Qt.Key and can be combined with modifiers (see Qt.Modifier) such as Qt.SHIFT, Qt.CTRL, Qt.ALT, or Qt.META.

QKeySequence.__init__ (self, QVariant variant)

Copy constructor. Makes a copy of keysequence.

int QKeySequence.count (self)

Returns the number of keys in the key sequence. The maximum is 4.

QKeySequence QKeySequence.fromString (QString str, SequenceFormat format = QKeySequence.PortableText)

Return a QKeySequence from the string str based on format.

This function was introduced in Qt 4.1.

See also toString().

bool QKeySequence.isDetached (self)

bool QKeySequence.isEmpty (self)

Returns true if the key sequence is empty; otherwise returns false.

list-of-QKeySequence QKeySequence.keyBindings (StandardKey key)

Returns a list of key bindings for the given key. The result of calling this function will vary based on the target platform. The first element of the list indicates the primary shortcut for the given platform. If the result contains more than one result, these can be considered alternative shortcuts on the same platform for the given key.

This function was introduced in Qt 4.2.

SequenceMatch QKeySequence.matches (self, QKeySequence seq)

Matches the sequence with seq. Returns ExactMatch if successful, PartialMatch if seq matches incompletely, and NoMatch if the sequences have nothing in common. Returns NoMatch if seq is shorter.

QKeySequence QKeySequence.mnemonic (QString text)

Returns the shortcut key sequence for the mnemonic in text, or an empty key sequence if no mnemonics are found.

For example, mnemonic("E&xit") returns Qt.ALT+Qt.Key_X, mnemonic("&Quit") returns ALT+Key_Q, and mnemonic("Quit") returns an empty QKeySequence.

We provide a list of common mnemonics in English. At the time of writing, Microsoft and Open Group do not appear to have issued equivalent recommendations for other languages.

See also qt_set_sequence_auto_mnemonic().

QKeySequence.swap (self, QKeySequence other)

Swaps key sequence other with this key sequence. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QString QKeySequence.toString (self, SequenceFormat format = QKeySequence.PortableText)

Return a string representation of the key sequence, based on format.

For example, the value Qt.CTRL+Qt.Key_O results in "Ctrl+O". If the key sequence has multiple key codes, each is separated by commas in the string returned, such as "Alt+X, Ctrl+Y, Z". The strings, "Ctrl", "Shift", etc. are translated using QObject.tr() in the "QShortcut" context.

If the key sequence has no keys, an empty string is returned.

On Mac OS X, the string returned resembles the sequence that is shown in the menu bar.

This function was introduced in Qt 4.1.

See also fromString().

bool QKeySequence.__eq__ (self, QKeySequence other)

bool QKeySequence.__ge__ (self, QKeySequence other)

int QKeySequence.__getitem__ (self, int i)

bool QKeySequence.__gt__ (self, QKeySequence other)

int QKeySequence.__int__ (self)

bool QKeySequence.__le__ (self, QKeySequence other)

QKeySequence.__len__ (self)

bool QKeySequence.__lt__ (self, QKeySequence ks)

bool QKeySequence.__ne__ (self, QKeySequence other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlabel.html0000644000076500000240000006756012536324507017630 0ustar philstaff00000000000000 QLabel Class Reference
  Home · All Classes · Modules

QLabel Class Reference
[QtGui module]

The QLabel widget provides a text or image display. More...

Inherits QFrame.

Methods

Qt Signals


Detailed Description

The QLabel widget provides a text or image display.

QLabel is used for displaying text or an image. No user interaction functionality is provided. The visual appearance of the label can be configured in various ways, and it can be used for specifying a focus mnemonic key for another widget.

A QLabel can contain any of the following content types:

Content Setting
Plain text Pass a QString to setText().
Rich text Pass a QString that contains rich text to setText().
A pixmap Pass a QPixmap to setPixmap().
A movie Pass a QMovie to setMovie().
A number Pass an int or a double to setNum(), which converts the number to plain text.
Nothing The same as an empty plain text. This is the default. Set by clear().

Warning: When passing a QString to the constructor or calling setText(), make sure to sanitize your input, as QLabel tries to guess whether it displays the text as plain text or as rich text. You may want to call setTextFormat() explicitly, e.g. in case you expect the text to be in plain format but cannot control the text source (for instance when displaying data loaded from the Web).

When the content is changed using any of these functions, any previous content is cleared.

By default, labels display left-aligned, vertically-centered text and images, where any tabs in the text to be displayed are automatically expanded. However, the look of a QLabel can be adjusted and fine-tuned in several ways.

The positioning of the content within the QLabel widget area can be tuned with setAlignment() and setIndent(). Text content can also wrap lines along word boundaries with setWordWrap(). For example, this code sets up a sunken panel with a two-line text in the bottom right corner (both lines being flush with the right side of the label):

 QLabel *label = new QLabel(this);
 label->setFrameStyle(QFrame.Panel | QFrame.Sunken);
 label->setText("first line\nsecond line");
 label->setAlignment(Qt.AlignBottom | Qt.AlignRight);

The properties and functions QLabel inherits from QFrame can also be used to specify the widget frame to be used for any given label.

A QLabel is often used as a label for an interactive widget. For this use QLabel provides a useful mechanism for adding an mnemonic (see QKeySequence) that will set the keyboard focus to the other widget (called the QLabel's "buddy"). For example:

 QLineEdit* phoneEdit = new QLineEdit(this);
 QLabel* phoneLabel = new QLabel("&Phone:", this);
 phoneLabel->setBuddy(phoneEdit);

In this example, keyboard focus is transferred to the label's buddy (the QLineEdit) when the user presses Alt+P. If the buddy was a button (inheriting from QAbstractButton), triggering the mnemonic would emulate a button click.

Screenshot of a Macintosh style label A label shown in the Macintosh widget style.
Screenshot of a Plastique style label A label shown in the Plastique widget style.
Screenshot of a Windows XP style label A label shown in the Windows XP widget style.

Method Documentation

QLabel.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty label.

The parent and widget flag f, arguments are passed to the QFrame constructor.

See also setAlignment(), setFrameStyle(), and setIndent().

QLabel.__init__ (self, QString text, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a label that displays the text, text.

The parent and widget flag f, arguments are passed to the QFrame constructor.

See also setText(), setAlignment(), setFrameStyle(), and setIndent().

Qt.Alignment QLabel.alignment (self)

QWidget QLabel.buddy (self)

Returns this label's buddy, or 0 if no buddy is currently set.

See also setBuddy().

QLabel.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QLabel.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Clears any label contents.

QLabel.contextMenuEvent (self, QContextMenuEvent ev)

Reimplemented from QWidget.contextMenuEvent().

bool QLabel.event (self, QEvent e)

Reimplemented from QObject.event().

QLabel.focusInEvent (self, QFocusEvent ev)

Reimplemented from QWidget.focusInEvent().

bool QLabel.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QLabel.focusOutEvent (self, QFocusEvent ev)

Reimplemented from QWidget.focusOutEvent().

bool QLabel.hasScaledContents (self)

bool QLabel.hasSelectedText (self)

int QLabel.heightForWidth (self, int)

Reimplemented from QWidget.heightForWidth().

int QLabel.indent (self)

QLabel.keyPressEvent (self, QKeyEvent ev)

Reimplemented from QWidget.keyPressEvent().

int QLabel.margin (self)

QSize QLabel.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QLabel.mouseMoveEvent (self, QMouseEvent ev)

Reimplemented from QWidget.mouseMoveEvent().

QLabel.mousePressEvent (self, QMouseEvent ev)

Reimplemented from QWidget.mousePressEvent().

QLabel.mouseReleaseEvent (self, QMouseEvent ev)

Reimplemented from QWidget.mouseReleaseEvent().

QMovie QLabel.movie (self)

Returns a pointer to the label's movie, or 0 if no movie has been set.

See also setMovie().

bool QLabel.openExternalLinks (self)

QLabel.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QPicture QLabel.picture (self)

Returns the label's picture or 0 if the label doesn't have a picture.

See also setPicture().

QPixmap QLabel.pixmap (self)

QString QLabel.selectedText (self)

int QLabel.selectionStart (self)

selectionStart() returns the index of the first selected character in the label or -1 if no text is selected.

Note: The textInteractionFlags set on the label need to include either TextSelectableByMouse or TextSelectableByKeyboard.

This function was introduced in Qt 4.7.

See also selectedText().

QLabel.setAlignment (self, Qt.Alignment)

QLabel.setBuddy (self, QWidget)

Sets this label's buddy to buddy.

When the user presses the shortcut key indicated by this label, the keyboard focus is transferred to the label's buddy widget.

The buddy mechanism is only available for QLabels that contain text in which one character is prefixed with an ampersand, '&'. This character is set as the shortcut key. See the QKeySequence.mnemonic() documentation for details (to display an actual ampersand, use '&&').

In a dialog, you might create two data entry widgets and a label for each, and set up the geometry layout so each label is just to the left of its data entry widget (its "buddy"), for example:

 QLineEdit *nameEd  = new QLineEdit(this);
 QLabel    *nameLb  = new QLabel("&Name:", this);
 nameLb->setBuddy(nameEd);
 QLineEdit *phoneEd = new QLineEdit(this);
 QLabel    *phoneLb = new QLabel("&Phone:", this);
 phoneLb->setBuddy(phoneEd);
 // (layout setup not shown)

With the code above, the focus jumps to the Name field when the user presses Alt+N, and to the Phone field when the user presses Alt+P.

To unset a previously set buddy, call this function with buddy set to 0.

See also buddy(), setText(), QShortcut, and setAlignment().

QLabel.setIndent (self, int)

QLabel.setMargin (self, int)

QLabel.setMovie (self, QMovie movie)

This method is also a Qt slot with the C++ signature void setMovie(QMovie*).

Sets the label contents to movie. Any previous content is cleared. The label does NOT take ownership of the movie.

The buddy shortcut, if any, is disabled.

See also movie() and setBuddy().

QLabel.setNum (self, float)

This method is also a Qt slot with the C++ signature void setNum(double).

Sets the label contents to plain text containing the textual representation of integer num. Any previous content is cleared. Does nothing if the integer's string representation is the same as the current contents of the label.

The buddy shortcut, if any, is disabled.

See also setText(), QString.setNum(), and setBuddy().

QLabel.setNum (self, int)

This method is also a Qt slot with the C++ signature void setNum(int).

This is an overloaded function.

Sets the label contents to plain text containing the textual representation of double num. Any previous content is cleared. Does nothing if the double's string representation is the same as the current contents of the label.

The buddy shortcut, if any, is disabled.

See also setText(), QString.setNum(), and setBuddy().

QLabel.setOpenExternalLinks (self, bool open)

QLabel.setPicture (self, QPicture)

This method is also a Qt slot with the C++ signature void setPicture(const QPicture&).

Sets the label contents to picture. Any previous content is cleared.

The buddy shortcut, if any, is disabled.

See also picture() and setBuddy().

QLabel.setPixmap (self, QPixmap)

This method is also a Qt slot with the C++ signature void setPixmap(const QPixmap&).

QLabel.setScaledContents (self, bool)

QLabel.setSelection (self, int, int)

Selects text from position start and for length characters.

Note: The textInteractionFlags set on the label need to include either TextSelectableByMouse or TextSelectableByKeyboard.

This function was introduced in Qt 4.7.

See also selectedText().

QLabel.setText (self, QString)

This method is also a Qt slot with the C++ signature void setText(const QString&).

QLabel.setTextFormat (self, Qt.TextFormat)

QLabel.setTextInteractionFlags (self, Qt.TextInteractionFlags flags)

QLabel.setWordWrap (self, bool on)

QSize QLabel.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QString QLabel.text (self)

Qt.TextFormat QLabel.textFormat (self)

Qt.TextInteractionFlags QLabel.textInteractionFlags (self)

bool QLabel.wordWrap (self)


Qt Signal Documentation

void linkActivated (const QString&)

This is the default overload of this signal.

This signal is emitted when the user clicks a link. The URL referred to by the anchor is passed in link.

This function was introduced in Qt 4.2.

See also linkHovered().

void linkHovered (const QString&)

This is the default overload of this signal.

This signal is emitted when the user hovers over a link. The URL referred to by the anchor is passed in link.

This function was introduced in Qt 4.2.

See also linkActivated().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlatin1char.html0000644000076500000240000000653112536324471020566 0ustar philstaff00000000000000 QLatin1Char Class Reference
  Home · All Classes · Modules

QLatin1Char Class Reference
[QtCore module]

The QLatin1Char class provides an 8-bit ASCII/Latin-1 character. More...

Methods

Special Methods


Detailed Description

This class can be pickled.

The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.

This class is only useful to avoid the codec for C strings business in the QChar(ch) constructor. You can avoid it by writing QChar(ch, 0).


Method Documentation

QLatin1Char.__init__ (self, str c)

Constructs a Latin-1 character for c. This constructor should be used when the encoding of the input character is known to be Latin-1.

QLatin1Char.__init__ (self, QLatin1Char)

str QLatin1Char.toLatin1 (self)

Converts a Latin-1 character to an 8-bit ASCII representation of the character.

int QLatin1Char.unicode (self)

Converts a Latin-1 character to an 16-bit-encoded Unicode representation of the character.

str QLatin1Char.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlatin1string.html0000644000076500000240000002635212536324475021166 0ustar philstaff00000000000000 QLatin1String Class Reference
  Home · All Classes · Modules

QLatin1String Class Reference
[
QtCore module]

The QLatin1String class provides a thin wrapper around an US-ASCII/Latin-1 encoded string literal. More...

Methods

Special Methods

  • bool __eq__ (self, QString s)
  • bool __eq__ (self, QLatin1String s2)
  • bool __eq__ (self, QStringRef s2)
  • bool __ge__ (self, QString s)
  • bool __ge__ (self, QLatin1String s2)
  • bool __gt__ (self, QString s)
  • bool __gt__ (self, QLatin1String s2)
  • bool __le__ (self, QString s)
  • bool __le__ (self, QLatin1String s2)
  • bool __lt__ (self, QString s)
  • bool __lt__ (self, QLatin1String s2)
  • bool __ne__ (self, QString s)
  • bool __ne__ (self, QLatin1String s2)
  • bool __ne__ (self, QStringRef s2)
  • str __repr__ (self)

Detailed Description

This class can be pickled.

The QLatin1String class provides a thin wrapper around an US-ASCII/Latin-1 encoded string literal.

Many of QString's member functions are overloaded to accept const char * instead of QString. This includes the copy constructor, the assignment operator, the comparison operators, and various other functions such as insert(), replace(), and indexOf(). These functions are usually optimized to avoid constructing a QString object for the const char * data. For example, assuming str is a QString,

 if (str == "auto" || str == "extern"
         || str == "static" || str == "register") {
     ...
 }

is much faster than

 if (str == QString("auto") || str == QString("extern")
         || str == QString("static") || str == QString("register")) {
     ...
 }

because it doesn't construct four temporary QString objects and make a deep copy of the character data.

Applications that define QT_NO_CAST_FROM_ASCII (as explained in the QString documentation) don't have access to QString's const char * API. To provide an efficient way of specifying constant Latin-1 strings, Qt provides the QLatin1String, which is just a very thin wrapper around a const char *. Using QLatin1String, the example code above becomes

 if (str == QLatin1String("auto")
         || str == QLatin1String("extern")
         || str == QLatin1String("static")
         || str == QLatin1String("register") {
     ...
 }

This is a bit longer to type, but it provides exactly the same benefits as the first version of the code, and is faster than converting the Latin-1 strings using QString.fromLatin1().

Thanks to the QString(const QLatin1String &) constructor, QLatin1String can be used everywhere a QString is expected. For example:

 QLabel *label = new QLabel(QLatin1String("MOD"), this);

Method Documentation

QLatin1String.__init__ (self, str s)

Constructs a QLatin1String object that stores str. Note that if str is 0, an empty string is created; this case is handled by QString.

The string data is not copied. The caller must be able to guarantee that str will not be deleted or modified as long as the QLatin1String object exists.

See also latin1().

QLatin1String.__init__ (self, QLatin1String)

str QLatin1String.latin1 (self)

Returns the Latin-1 string stored in this object.

bool QLatin1String.__eq__ (self, QString s)

bool QLatin1String.__eq__ (self, QLatin1String s2)

bool QLatin1String.__eq__ (self, QStringRef s2)

bool QLatin1String.__ge__ (self, QString s)

bool QLatin1String.__ge__ (self, QLatin1String s2)

bool QLatin1String.__gt__ (self, QString s)

bool QLatin1String.__gt__ (self, QLatin1String s2)

bool QLatin1String.__le__ (self, QString s)

bool QLatin1String.__le__ (self, QLatin1String s2)

bool QLatin1String.__lt__ (self, QString s)

bool QLatin1String.__lt__ (self, QLatin1String s2)

bool QLatin1String.__ne__ (self, QString s)

bool QLatin1String.__ne__ (self, QLatin1String s2)

bool QLatin1String.__ne__ (self, QStringRef s2)

str QLatin1String.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlayout.html0000644000076500000240000010061412536324501020044 0ustar philstaff00000000000000 QLayout Class Reference
  Home · All Classes · Modules

QLayout Class Reference
[
QtGui module]

The QLayout class is the base class of geometry managers. More...

Inherits QObject and QLayoutItem.

Inherited by QBoxLayout, QFormLayout, QGridLayout and QStackedLayout.

Types

  • enum SizeConstraint { SetDefaultConstraint, SetNoConstraint, SetMinimumSize, SetFixedSize, SetMaximumSize, SetMinAndMaxSize }

Methods

Static Methods

Special Methods


Detailed Description

The QLayout class is the base class of geometry managers.

This is an abstract base class inherited by the concrete classes QBoxLayout, QGridLayout, QFormLayout, and QStackedLayout.

For users of QLayout subclasses or of QMainWindow there is seldom any need to use the basic functions provided by QLayout, such as setSizeConstraint() or setMenuBar(). See Layout Management for more information.

To make your own layout manager, implement the functions addItem(), sizeHint(), setGeometry(), itemAt() and takeAt(). You should also implement minimumSize() to ensure your layout isn't resized to zero size if there is too little space. To support children whose heights depend on their widths, implement hasHeightForWidth() and heightForWidth(). See the Border Layout and Flow Layout examples for more information about implementing custom layout managers.

Geometry management stops when the layout manager is deleted.


Type Documentation

QLayout.SizeConstraint

The possible values are:

Constant Value Description
QLayout.SetDefaultConstraint 0 The main widget's minimum size is set to minimumSize(), unless the widget already has a minimum size.
QLayout.SetFixedSize 3 The main widget's size is set to sizeHint(); it cannot be resized at all.
QLayout.SetMinimumSize 2 The main widget's minimum size is set to minimumSize(); it cannot be smaller.
QLayout.SetMaximumSize 4 The main widget's maximum size is set to maximumSize(); it cannot be larger.
QLayout.SetMinAndMaxSize 5 The main widget's minimum size is set to minimumSize() and its maximum size is set to maximumSize().
QLayout.SetNoConstraint 1 The widget is not constrained.

See also setSizeConstraint().


Method Documentation

QLayout.__init__ (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new top-level QLayout, with parent parent. parent may not be 0.

There can be only one top-level layout for a widget. It is returned by QWidget.layout().

QLayout.__init__ (self)

Constructs a new child QLayout.

This layout has to be inserted into another layout before geometry management will work.

bool QLayout.activate (self)

Redoes the layout for parentWidget() if necessary.

You should generally not need to call this because it is automatically called at the most appropriate times. It returns true if the layout was redone.

See also update() and QWidget.updateGeometry().

QLayout.addChildLayout (self, QLayout l)

The l argument has it's ownership transferred to Qt.

This function is called from addLayout() or insertLayout() functions in subclasses to add layout l as a sub-layout.

The only scenario in which you need to call it directly is if you implement a custom layout that supports nested layouts.

See also QBoxLayout.addLayout(), QBoxLayout.insertLayout(), and QGridLayout.addLayout().

QLayout.addChildWidget (self, QWidget w)

This function is called from addWidget() functions in subclasses to add w as a managed widget of a layout.

If w is already managed by a layout, this function will give a warning and remove w from that layout. This function must therefore be called before adding w to the layout's data structure.

QLayout.addItem (self, QLayoutItem)

This method is abstract and should be reimplemented in any sub-class.

The QLayoutItem argument has it's ownership transferred to Qt.

Implemented in subclasses to add an item. How it is added is specific to each subclass.

This function is not usually called in application code. To add a widget to a layout, use the addWidget() function; to add a child layout, use the addLayout() function provided by the relevant QLayout subclass.

Note: The ownership of item is transferred to the layout, and it's the layout's responsibility to delete it.

See also addWidget(), QBoxLayout.addLayout(), and QGridLayout.addLayout().

QLayout.addWidget (self, QWidget w)

Adds widget w to this layout in a manner specific to the layout. This function uses addItem().

QRect QLayout.alignmentRect (self, QRect)

Returns the rectangle that should be covered when the geometry of this layout is set to r, provided that this layout supports setAlignment().

The result is derived from sizeHint() and expanding(). It is never larger than r.

QLayout.childEvent (self, QChildEvent e)

Reimplemented from QObject.childEvent().

QSize QLayout.closestAcceptableSize (QWidget w, QSize s)

Returns a size that satisfies all size constraints on widget, including heightForWidth() and that is as close as possible to size.

QMargins QLayout.contentsMargins (self)

Returns the margins used around the layout.

By default, QLayout uses the values provided by the style. On most platforms, the margin is 11 pixels in all directions.

This function was introduced in Qt 4.6.

See also setContentsMargins().

QRect QLayout.contentsRect (self)

Returns the layout's geometry() rectangle, but taking into account the contents margins.

This function was introduced in Qt 4.3.

See also setContentsMargins() and getContentsMargins().

int QLayout.count (self)

This method is abstract and should be reimplemented in any sub-class.

Must be implemented in subclasses to return the number of items in the layout.

See also itemAt().

Qt.Orientations QLayout.expandingDirections (self)

Reimplemented from QLayoutItem.expandingDirections().

Returns whether this layout can make use of more space than sizeHint(). A value of Qt.Vertical or Qt.Horizontal means that it wants to grow in only one dimension, whereas Qt.Vertical | Qt.Horizontal means that it wants to grow in both dimensions.

The default implementation returns Qt.Horizontal | Qt.Vertical. Subclasses reimplement it to return a meaningful value based on their child widgets's size policies.

See also sizeHint().

QRect QLayout.geometry (self)

Reimplemented from QLayoutItem.geometry().

See also setGeometry().

(int left, int top, int right, int bottom) QLayout.getContentsMargins (self)

Extracts the left, top, right, and bottom margins used around the layout, and assigns them to *left, *top, *right, and *bottom (unless they are null pointers).

By default, QLayout uses the values provided by the style. On most platforms, the margin is 11 pixels in all directions.

This function was introduced in Qt 4.3.

See also setContentsMargins(), QStyle.pixelMetric(), PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin, and PM_LayoutBottomMargin.

int QLayout.indexOf (self, QWidget)

Searches for widget widget in this layout (not including child layouts).

Returns the index of widget, or -1 if widget is not found.

The default implementation iterates over all items using itemAt()

QLayout.invalidate (self)

Reimplemented from QLayoutItem.invalidate().

bool QLayout.isEmpty (self)

Reimplemented from QLayoutItem.isEmpty().

bool QLayout.isEnabled (self)

Returns true if the layout is enabled; otherwise returns false.

See also setEnabled().

QLayoutItem QLayout.itemAt (self, int index)

This method is abstract and should be reimplemented in any sub-class.

Must be implemented in subclasses to return the layout item at index. If there is no such item, the function must return 0. Items are numbered consecutively from 0. If an item is deleted, other items will be renumbered.

This function can be used to iterate over a layout. The following code will draw a rectangle for each layout item in the layout structure of the widget.

 static void paintLayout(QPainter *painter, QLayoutItem *item)
 {
     QLayout *layout = item->layout();
     if (layout) {
         for (int i = 0; i < layout->count(); ++i)
             paintLayout(painter, layout->itemAt(i));
     }
     painter->drawRect(item->geometry());
 }

 void MyWidget.paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     if (layout())
         paintLayout(&painter, layout());
 }

See also count() and takeAt().

QLayout QLayout.layout (self)

Reimplemented from QLayoutItem.layout().

int QLayout.margin (self)

QSize QLayout.maximumSize (self)

Reimplemented from QLayoutItem.maximumSize().

Returns the maximum size of this layout. This is the largest size that the layout can have while still respecting the specifications.

The returned value doesn't include the space required by QWidget.setContentsMargins() or menuBar().

The default implementation allows unlimited resizing.

QWidget QLayout.menuBar (self)

Returns the menu bar set for this layout, or 0 if no menu bar is set.

See also setMenuBar().

QSize QLayout.minimumSize (self)

Reimplemented from QLayoutItem.minimumSize().

Returns the minimum size of this layout. This is the smallest size that the layout can have while still respecting the specifications.

The returned value doesn't include the space required by QWidget.setContentsMargins() or menuBar().

The default implementation allows unlimited resizing.

QWidget QLayout.parentWidget (self)

Returns the parent widget of this layout, or 0 if this layout is not installed on any widget.

If the layout is a sub-layout, this function returns the parent widget of the parent layout.

See also parent().

QLayout.removeItem (self, QLayoutItem)

The QLayoutItem argument

Removes the layout item item from the layout. It is the caller's responsibility to delete the item.

Notice that item can be a layout (since QLayout inherits QLayoutItem).

See also removeWidget() and addItem().

QLayout.removeWidget (self, QWidget w)

Removes the widget widget from the layout. After this call, it is the caller's responsibility to give the widget a reasonable geometry or to put the widget back into a layout.

Note: The ownership of widget remains the same as when it was added.

See also removeItem(), QWidget.setGeometry(), and addWidget().

bool QLayout.setAlignment (self, QWidget w, Qt.Alignment alignment)

Sets the alignment for widget w to alignment and returns true if w is found in this layout (not including child layouts); otherwise returns false.

bool QLayout.setAlignment (self, QLayout l, Qt.Alignment alignment)

Sets the alignment of this item to alignment.

See also QLayoutItem.setAlignment().

QLayout.setAlignment (self, Qt.Alignment alignment)

This is an overloaded function.

Sets the alignment for the layout l to alignment and returns true if l is found in this layout (not including child layouts); otherwise returns false.

QLayout.setContentsMargins (self, int left, int top, int right, int bottom)

Sets the left, top, right, and bottom margins to use around the layout.

By default, QLayout uses the values provided by the style. On most platforms, the margin is 11 pixels in all directions.

This function was introduced in Qt 4.3.

See also contentsMargins(), getContentsMargins(), QStyle.pixelMetric(), PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin, and PM_LayoutBottomMargin.

QLayout.setContentsMargins (self, QMargins margins)

Sets the margins to use around the layout.

By default, QLayout uses the values provided by the style. On most platforms, the margin is 11 pixels in all directions.

This function was introduced in Qt 4.6.

See also contentsMargins().

QLayout.setEnabled (self, bool)

Enables this layout if enable is true, otherwise disables it.

An enabled layout adjusts dynamically to changes; a disabled layout acts as if it did not exist.

By default all layouts are enabled.

See also isEnabled().

QLayout.setGeometry (self, QRect)

Reimplemented from QLayoutItem.setGeometry().

See also geometry().

QLayout.setMargin (self, int)

QLayout.setMenuBar (self, QWidget w)

Tells the geometry manager to place the menu bar widget at the top of parentWidget(), outside QWidget.contentsMargins(). All child widgets are placed below the bottom edge of the menu bar.

See also menuBar().

QLayout.setSizeConstraint (self, SizeConstraint)

QLayout.setSpacing (self, int)

SizeConstraint QLayout.sizeConstraint (self)

int QLayout.spacing (self)

QLayoutItem QLayout.takeAt (self, int index)

This method is abstract and should be reimplemented in any sub-class.

The QLayoutItem result

Must be implemented in subclasses to remove the layout item at index from the layout, and return the item. If there is no such item, the function must do nothing and return 0. Items are numbered consecutively from 0. If an item is removed, other items will be renumbered.

The following code fragment shows a safe way to remove all items from a layout:

 QLayoutItem *child;
 while ((child = layout->takeAt(0)) != 0) {
     ...
     delete child;
 }

See also itemAt() and count().

int QLayout.totalHeightForWidth (self, int w)

QSize QLayout.totalMaximumSize (self)

QSize QLayout.totalMinimumSize (self)

QSize QLayout.totalSizeHint (self)

QLayout.update (self)

Updates the layout for parentWidget().

You should generally not need to call this because it is automatically called at the most appropriate times.

See also activate() and invalidate().

QLayout.widgetEvent (self, QEvent)

QLayout.__len__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlayoutitem.html0000644000076500000240000003206612536324501020730 0ustar philstaff00000000000000 QLayoutItem Class Reference
  Home · All Classes · Modules

QLayoutItem Class Reference
[
QtGui module]

The QLayoutItem class provides an abstract item that a QLayout manipulates. More...

Inherited by QLayout, QSpacerItem and QWidgetItem.

Methods


Detailed Description

The QLayoutItem class provides an abstract item that a QLayout manipulates.

This is used by custom layouts.

Pure virtual functions are provided to return information about the layout, including, sizeHint(), minimumSize(), maximumSize() and expanding().

The layout's geometry can be set and retrieved with setGeometry() and geometry(), and its alignment with setAlignment() and alignment().

isEmpty() returns whether the layout item is empty. If the concrete item is a QWidget, it can be retrieved using widget(). Similarly for layout() and spacerItem().

Some layouts have width and height interdependencies. These can be expressed using hasHeightForWidth(), heightForWidth(), and minimumHeightForWidth(). For more explanation see the Qt Quarterly article Trading Height for Width.


Method Documentation

QLayoutItem.__init__ (self, Qt.Alignment alignment = 0)

Constructs a layout item with an alignment. Not all subclasses support alignment.

QLayoutItem.__init__ (self, QLayoutItem)

Qt.Alignment QLayoutItem.alignment (self)

Returns the alignment of this item.

See also setAlignment().

QSizePolicy.ControlTypes QLayoutItem.controlTypes (self)

Returns the control type(s) for the layout item. For a QWidgetItem, the control type comes from the widget's size policy; for a QLayoutItem, the control types is derived from the layout's contents.

See also QSizePolicy.controlType().

Qt.Orientations QLayoutItem.expandingDirections (self)

This method is abstract and should be reimplemented in any sub-class.

Returns whether this layout item can make use of more space than sizeHint(). A value of Qt.Vertical or Qt.Horizontal means that it wants to grow in only one dimension, whereas Qt.Vertical | Qt.Horizontal means that it wants to grow in both dimensions.

QRect QLayoutItem.geometry (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the rectangle covered by this layout item.

See also setGeometry().

bool QLayoutItem.hasHeightForWidth (self)

Returns true if this layout's preferred height depends on its width; otherwise returns false. The default implementation returns false.

Reimplement this function in layout managers that support height for width.

See also heightForWidth() and QWidget.heightForWidth().

int QLayoutItem.heightForWidth (self, int)

Returns the preferred height for this layout item, given the width w.

The default implementation returns -1, indicating that the preferred height is independent of the width of the item. Using the function hasHeightForWidth() will typically be much faster than calling this function and testing for -1.

Reimplement this function in layout managers that support height for width. A typical implementation will look like this:

 int MyLayout.heightForWidth(int w) const
 {
     if (cache_dirty || cached_width != w) {
         // not all C++ compilers support "mutable"
         MyLayout *that = (MyLayout*)this;
         int h = calculateHeightForWidth(w);
         that->cached_hfw = h;
         return h;
     }
     return cached_hfw;
 }

Caching is strongly recommended; without it layout will take exponential time.

See also hasHeightForWidth().

QLayoutItem.invalidate (self)

Invalidates any cached information in this layout item.

bool QLayoutItem.isEmpty (self)

This method is abstract and should be reimplemented in any sub-class.

Implemented in subclasses to return whether this item is empty, i.e. whether it contains any widgets.

QLayout QLayoutItem.layout (self)

If this item is a QLayout, it is returned as a QLayout; otherwise 0 is returned. This function provides type-safe casting.

QSize QLayoutItem.maximumSize (self)

This method is abstract and should be reimplemented in any sub-class.

Implemented in subclasses to return the maximum size of this item.

int QLayoutItem.minimumHeightForWidth (self, int)

Returns the minimum height this widget needs for the given width, w. The default implementation simply returns heightForWidth(w).

QSize QLayoutItem.minimumSize (self)

This method is abstract and should be reimplemented in any sub-class.

Implemented in subclasses to return the minimum size of this item.

QLayoutItem.setAlignment (self, Qt.Alignment a)

Sets the alignment of this item to alignment.

Note: Item alignment is only supported by QLayoutItem subclasses where it would have a visual effect. Except for QSpacerItem, which provides blank space for layouts, all public Qt classes that inherit QLayoutItem support item alignment.

See also alignment().

QLayoutItem.setGeometry (self, QRect)

This method is abstract and should be reimplemented in any sub-class.

Implemented in subclasses to set this item's geometry to r.

See also geometry().

QSize QLayoutItem.sizeHint (self)

This method is abstract and should be reimplemented in any sub-class.

Implemented in subclasses to return the preferred size of this item.

QSpacerItem QLayoutItem.spacerItem (self)

If this item is a QSpacerItem, it is returned as a QSpacerItem; otherwise 0 is returned. This function provides type-safe casting.

QWidget QLayoutItem.widget (self)

If this item is a QWidget, it is returned as a QWidget; otherwise 0 is returned. This function provides type-safe casting.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlcdnumber.html0000644000076500000240000004057212536324507020516 0ustar philstaff00000000000000 QLCDNumber Class Reference
  Home · All Classes · Modules

QLCDNumber Class Reference
[QtGui module]

The QLCDNumber widget displays a number with LCD-like digits. More...

Inherits QFrame.

Types

Methods

Qt Signals


Detailed Description

The QLCDNumber widget displays a number with LCD-like digits.

It can display a number in just about any size. It can display decimal, hexadecimal, octal or binary numbers. It is easy to connect to data sources using the display() slot, which is overloaded to take any of five argument types.

There are also slots to change the base with setMode() and the decimal point with setSmallDecimalPoint().

QLCDNumber emits the overflow() signal when it is asked to display something beyond its range. The range is set by setDigitCount(), but setSmallDecimalPoint() also influences it. If the display is set to hexadecimal, octal or binary, the integer equivalent of the value is displayed.

These digits and other symbols can be shown: 0/O, 1, 2, 3, 4, 5/S, 6, 7, 8, 9/g, minus, decimal point, A, B, C, D, E, F, h, H, L, o, P, r, u, U, Y, colon, degree sign (which is specified as single quote in the string) and space. QLCDNumber substitutes spaces for illegal characters.

It is not possible to retrieve the contents of a QLCDNumber object, although you can retrieve the numeric value with value(). If you really need the text, we recommend that you connect the signals that feed the display() slot to another slot as well and store the value there.

Incidentally, QLCDNumber is the very oldest part of Qt, tracing its roots back to a BASIC program on the Sinclair Spectrum.

Screenshot of a Motif style LCD number widget Screenshot of a CDE style LCD number widget Screenshot of a Windows style LCD number widget Screenshot of a Windows XP style LCD number widget Screenshot of a Macintosh style LCD number widget Screenshot of a Plastique style LCD number widget
LCD number widgets shown in various widget styles (from left to right): Motif, CDE, Windows, Windows XP, Macintosh, Plastique.

Type Documentation

QLCDNumber.Mode

This type determines how numbers are shown.

Constant Value Description
QLCDNumber.Hex 0 Hexadecimal
QLCDNumber.Dec 1 Decimal
QLCDNumber.Oct 2 Octal
QLCDNumber.Bin 3 Binary

If the display is set to hexadecimal, octal or binary, the integer equivalent of the value is displayed.

QLCDNumber.SegmentStyle

This type determines the visual appearance of the QLCDNumber widget.

Constant Value Description
QLCDNumber.Outline 0 gives raised segments filled with the background color.
QLCDNumber.Filled 1 gives raised segments filled with the windowText color.
QLCDNumber.Flat 2 gives flat segments filled with the windowText color.

Method Documentation

QLCDNumber.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an LCD number, sets the number of digits to 5, the base to decimal, the decimal point mode to 'small' and the frame style to a raised box. The segmentStyle() is set to Outline.

The parent argument is passed to the QFrame constructor.

See also setDigitCount() and setSmallDecimalPoint().

QLCDNumber.__init__ (self, int numDigits, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an LCD number, sets the number of digits to numDigits, the base to decimal, the decimal point mode to 'small' and the frame style to a raised box. The segmentStyle() is set to Filled.

The parent argument is passed to the QFrame constructor.

See also setDigitCount() and setSmallDecimalPoint().

bool QLCDNumber.checkOverflow (self, float num)

Returns true if num is too big to be displayed in its entirety; otherwise returns false.

See also display(), digitCount(), and smallDecimalPoint().

bool QLCDNumber.checkOverflow (self, int num)

This is an overloaded function.

Returns true if num is too big to be displayed in its entirety; otherwise returns false.

See also display(), digitCount(), and smallDecimalPoint().

int QLCDNumber.digitCount (self)

QLCDNumber.display (self, QString str)

QLCDNumber.display (self, float num)

QLCDNumber.display (self, int num)

bool QLCDNumber.event (self, QEvent e)

Reimplemented from QObject.event().

int QLCDNumber.intValue (self)

Mode QLCDNumber.mode (self)

int QLCDNumber.numDigits (self)

QLCDNumber.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

SegmentStyle QLCDNumber.segmentStyle (self)

QLCDNumber.setBinMode (self)

Calls setMode(Bin). Provided for convenience (e.g. for connecting buttons to it).

See also setMode(), setHexMode(), setDecMode(), setOctMode(), and mode().

QLCDNumber.setDecMode (self)

Calls setMode(Dec). Provided for convenience (e.g. for connecting buttons to it).

See also setMode(), setHexMode(), setOctMode(), setBinMode(), and mode().

QLCDNumber.setDigitCount (self, int nDigits)

QLCDNumber.setHexMode (self)

Calls setMode(Hex). Provided for convenience (e.g. for connecting buttons to it).

See also setMode(), setDecMode(), setOctMode(), setBinMode(), and mode().

QLCDNumber.setMode (self, Mode)

QLCDNumber.setNumDigits (self, int nDigits)

QLCDNumber.setOctMode (self)

Calls setMode(Oct). Provided for convenience (e.g. for connecting buttons to it).

See also setMode(), setHexMode(), setDecMode(), setBinMode(), and mode().

QLCDNumber.setSegmentStyle (self, SegmentStyle)

QLCDNumber.setSmallDecimalPoint (self, bool)

QSize QLCDNumber.sizeHint (self)

Reimplemented from QWidget.sizeHint().

bool QLCDNumber.smallDecimalPoint (self)

float QLCDNumber.value (self)


Qt Signal Documentation

void overflow ()

This is the default overload of this signal.

This signal is emitted whenever the QLCDNumber is asked to display a too-large number or a too-long string.

It is never emitted by setDigitCount().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlibrary-loadhints.html0000644000076500000240000001353212536324472022167 0ustar philstaff00000000000000 QLibrary.LoadHints Class Reference
  Home · All Classes · Modules

QLibrary.LoadHints Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

LoadHint may be used whenever LoadHints is expected.


Method Documentation

LoadHints.__init__ (self, LoadHints)

LoadHints.__init__ (self, int)

LoadHints.__init__ (self)

LoadHints LoadHints.__and__ (self, int mask)

int LoadHints.__bool__ (self)

bool LoadHints.__eq__ (self, LoadHints f)

LoadHints LoadHints.__iand__ (self, int mask)

int LoadHints.__int__ (self)

LoadHints LoadHints.__invert__ (self)

LoadHints LoadHints.__ior__ (self, LoadHints f)

LoadHints LoadHints.__ixor__ (self, LoadHints f)

bool LoadHints.__ne__ (self, LoadHints f)

LoadHints LoadHints.__or__ (self, LoadHints f)

LoadHints LoadHints.__or__ (self, int f)

LoadHints LoadHints.__xor__ (self, LoadHints f)

LoadHints LoadHints.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlibrary.html0000644000076500000240000005445212536324472020212 0ustar philstaff00000000000000 QLibrary Class Reference
  Home · All Classes · Modules

QLibrary Class Reference
[QtCore module]

The QLibrary class loads shared libraries at runtime. More...

Inherits QObject.

Types

  • enum LoadHint { ResolveAllSymbolsHint, ExportExternalSymbolsHint, LoadArchiveMemberHint }
  • class LoadHints

Methods

Static Methods

  • bool isLibrary (QString fileName)
  • sip.voidptr resolve (QString fileName, str symbol)
  • sip.voidptr resolve (QString fileName, int verNum, str symbol)
  • sip.voidptr resolve (QString fileName, QString version, str symbol)

Detailed Description

The QLibrary class loads shared libraries at runtime.

An instance of a QLibrary object operates on a single shared object file (which we call a "library", but is also known as a "DLL"). A QLibrary provides access to the functionality in the library in a platform independent way. You can either pass a file name in the constructor, or set it explicitly with setFileName(). When loading the library, QLibrary searches in all the system-specific library locations (e.g. LD_LIBRARY_PATH on Unix), unless the file name has an absolute path. If the file cannot be found, QLibrary tries the name with different platform-specific file suffixes, like ".so" on Unix, ".dylib" on the Mac, or ".dll" on Windows and Symbian. This makes it possible to specify shared libraries that are only identified by their basename (i.e. without their suffix), so the same code will work on different operating systems.

The most important functions are load() to dynamically load the library file, isLoaded() to check whether loading was successful, and resolve() to resolve a symbol in the library. The resolve() function implicitly tries to load the library if it has not been loaded yet. Multiple instances of QLibrary can be used to access the same physical library. Once loaded, libraries remain in memory until the application terminates. You can attempt to unload a library using unload(), but if other instances of QLibrary are using the same library, the call will fail, and unloading will only happen when every instance has called unload().

A typical use of QLibrary is to resolve an exported symbol in a library, and to call the C function that this symbol represents. This is called "explicit linking" in contrast to "implicit linking", which is done by the link step in the build process when linking an executable against a library.

Note: In Symbian resolving symbols using their names is supported only if the library is built as STDDLL. Otherwise ordinals must be used. Also, in Symbian the path of the library is ignored and system default library location is always used.

The following code snippet loads a library, resolves the symbol "mysymbol", and calls the function if everything succeeded. If something goes wrong, e.g. the library file does not exist or the symbol is not defined, the function pointer will be 0 and won't be called.

 QLibrary myLib("mylib");
 typedef void (*MyPrototype)();
 MyPrototype myFunction = (MyPrototype) myLib.resolve("mysymbol");
 if (myFunction)
     myFunction();

The symbol must be exported as a C function from the library for resolve() to work. This means that the function must be wrapped in an extern "C" block if the library is compiled with a C++ compiler. On Windows, this also requires the use of a dllexport macro; see resolve() for the details of how this is done. For convenience, there is a static resolve() function which you can use if you just want to call a function in a library without explicitly loading the library first:

 typedef void (*MyPrototype)();
 MyPrototype myFunction =
         (MyPrototype) QLibrary.resolve("mylib", "mysymbol");
 if (myFunction)
     myFunction();

Type Documentation

QLibrary.LoadHint

This enum describes the possible hints that can be used to change the way libraries are handled when they are loaded. These values indicate how symbols are resolved when libraries are loaded, and are specified using the setLoadHints() function.

Constant Value Description
QLibrary.ResolveAllSymbolsHint 0x01 Causes all symbols in a library to be resolved when it is loaded, not simply when resolve() is called.
QLibrary.ExportExternalSymbolsHint 0x02 Exports unresolved and external symbols in the library so that they can be resolved in other dynamically-loaded libraries loaded later.
QLibrary.LoadArchiveMemberHint 0x04 Allows the file name of the library to specify a particular object file within an archive file. If this hint is given, the filename of the library consists of a path, which is a reference to an archive file, followed by a reference to the archive member.

The LoadHints type is a typedef for QFlags<LoadHint>. It stores an OR combination of LoadHint values.

See also loadHints.


Method Documentation

QLibrary.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a library with the given parent.

QLibrary.__init__ (self, QString fileName, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a library object with the given parent that will load the library specified by fileName.

We recommend omitting the file's suffix in fileName, since QLibrary will automatically look for the file with the appropriate suffix in accordance with the platform, e.g. ".so" on Unix, ".dylib" on Mac OS X, and ".dll" on Windows. (See fileName.)

Note: In Symbian the path portion of the fileName is ignored.

QLibrary.__init__ (self, QString fileName, int verNum, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a library object with the given parent that will load the library specified by fileName and major version number verNum. Currently, the version number is ignored on Windows and Symbian.

We recommend omitting the file's suffix in fileName, since QLibrary will automatically look for the file with the appropriate suffix in accordance with the platform, e.g. ".so" on Unix, ".dylib" on Mac OS X, and ".dll" on Windows. (See fileName.)

Note: In Symbian the path portion of the fileName is ignored.

QLibrary.__init__ (self, QString fileName, QString version, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a library object with the given parent that will load the library specified by fileName and full version number version. Currently, the version number is ignored on Windows and Symbian.

We recommend omitting the file's suffix in fileName, since QLibrary will automatically look for the file with the appropriate suffix in accordance with the platform, e.g. ".so" on Unix, ".dylib" on Mac OS X, and ".dll" on Windows. (See fileName.)

Note: In Symbian the path portion of the fileName is ignored.

QString QLibrary.errorString (self)

Returns a text string with the description of the last error that occurred. Currently, errorString will only be set if load(), unload() or resolve() for some reason fails.

This function was introduced in Qt 4.2.

QString QLibrary.fileName (self)

bool QLibrary.isLibrary (QString fileName)

Returns true if fileName has a valid suffix for a loadable library; otherwise returns false.

Platform Valid suffixes
Windows .dll, .DLL
Unix/Linux .so
AIX .a
HP-UX .sl, .so (HP-UXi)
Mac OS X .dylib, .bundle, .so
Symbian .dll

Trailing versioning numbers on Unix are ignored.

bool QLibrary.isLoaded (self)

Returns true if the library is loaded; otherwise returns false.

See also load().

bool QLibrary.load (self)

Loads the library and returns true if the library was loaded successfully; otherwise returns false. Since resolve() always calls this function before resolving any symbols it is not necessary to call it explicitly. In some situations you might want the library loaded in advance, in which case you would use this function.

See also unload().

LoadHints QLibrary.loadHints (self)

sip.voidptr QLibrary.resolve (self, str symbol)

Returns the address of the exported symbol symbol. The library is loaded if necessary. The function returns 0 if the symbol could not be resolved or if the library could not be loaded.

Example:

 typedef int (*AvgFunction)(int, int);

 AvgFunction avg = (AvgFunction) library->resolve("avg");
 if (avg)
     return avg(5, 8);
 else
     return -1;

The symbol must be exported as a C function from the library. This means that the function must be wrapped in an extern "C" if the library is compiled with a C++ compiler. On Windows you must also explicitly export the function from the DLL using the __declspec(dllexport) compiler directive, for example:

 extern "C" MY_EXPORT int avg(int a, int b)
 {
     return (a + b) / 2;
 }

with MY_EXPORT defined as

 #ifdef Q_WS_WIN
 #define MY_EXPORT __declspec(dllexport)
 #else
 #define MY_EXPORT
 #endif

Note: In Symbian resolving with symbol names works only if the loaded library was built as STDDLL. Otherwise, the ordinals must be used.

sip.voidptr QLibrary.resolve (QString fileName, str symbol)

This is an overloaded function.

Loads the library fileName and returns the address of the exported symbol symbol. Note that fileName should not include the platform-specific file suffix; (see fileName). The library remains loaded until the application exits.

The function returns 0 if the symbol could not be resolved or if the library could not be loaded.

Note: In Symbian resolving with symbol names works only if the loaded library was built as STDDLL. Otherwise, the ordinals must be used.

See also resolve().

sip.voidptr QLibrary.resolve (QString fileName, int verNum, str symbol)

This is an overloaded function.

Loads the library fileName with major version number verNum and returns the address of the exported symbol symbol. Note that fileName should not include the platform-specific file suffix; (see fileName). The library remains loaded until the application exits. verNum is ignored on Windows.

The function returns 0 if the symbol could not be resolved or if the library could not be loaded.

Note: In Symbian resolving with symbol names works only if the loaded library was built as STDDLL. Otherwise, the ordinals must be used.

See also resolve().

sip.voidptr QLibrary.resolve (QString fileName, QString version, str symbol)

This is an overloaded function.

Loads the library fileName with full version number version and returns the address of the exported symbol symbol. Note that fileName should not include the platform-specific file suffix; (see fileName). The library remains loaded until the application exits. version is ignored on Windows.

The function returns 0 if the symbol could not be resolved or if the library could not be loaded.

Note: In Symbian resolving with symbol names works only if the loaded library was built as STDDLL. Otherwise, the ordinals must be used.

This function was introduced in Qt 4.4.

See also resolve().

QLibrary.setFileName (self, QString fileName)

QLibrary.setFileNameAndVersion (self, QString fileName, int verNum)

Sets the fileName property and major version number to fileName and versionNumber respectively. The versionNumber is ignored on Windows and Symbian.

Note: In Symbian the path portion of the fileName is ignored.

See also setFileName().

QLibrary.setFileNameAndVersion (self, QString fileName, QString version)

Sets the fileName property and full version number to fileName and version respectively. The version parameter is ignored on Windows and Symbian.

Note: In Symbian the path portion of the fileName is ignored.

This function was introduced in Qt 4.4.

See also setFileName().

QLibrary.setLoadHints (self, LoadHints hints)

bool QLibrary.unload (self)

Unloads the library and returns true if the library could be unloaded; otherwise returns false.

This happens automatically on application termination, so you shouldn't normally need to call this function.

If other instances of QLibrary are using the same library, the call will fail, and unloading will only happen when every instance has called unload().

Note that on Mac OS X 10.3 (Panther), dynamic libraries cannot be unloaded.

See also resolve() and load().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlibraryinfo.html0000644000076500000240000001750212536324472021061 0ustar philstaff00000000000000 QLibraryInfo Class Reference
  Home · All Classes · Modules

QLibraryInfo Class Reference
[QtCore module]

The QLibraryInfo class provides information about the Qt library. More...

Types

  • enum LibraryLocation { PrefixPath, DocumentationPath, HeadersPath, LibrariesPath, ..., ImportsPath }

Methods

Static Methods


Detailed Description

The QLibraryInfo class provides information about the Qt library.

Many pieces of information are established when Qt is configured. Installation paths, license information, and even a unique build key. This class provides an abstraction for accessing this information.

Function Return value
buildKey() A string that identifies the Qt version and the configuration. This key is used to ensure that plugins link against the same version of Qt as the application.
location() The path to a certain Qt component (e.g., documentation, header files).
licensee(), licensedProducts() Licensing information.

You can also use a qt.conf file to override the hard-coded paths that are compiled into the Qt library. For more information, see the Using qt.conf documentation.


Type Documentation

QLibraryInfo.LibraryLocation

This enum type is used to specify a specific location specifier:

Constant Value Description
QLibraryInfo.PrefixPath 0 The default prefix for all paths.
QLibraryInfo.DocumentationPath 1 The location for documentation upon install.
QLibraryInfo.HeadersPath 2 The location for all headers.
QLibraryInfo.LibrariesPath 3 The location of installed libraries.
QLibraryInfo.BinariesPath 4 The location of installed Qt binaries (tools and applications).
QLibraryInfo.PluginsPath 5 The location of installed Qt plugins.
QLibraryInfo.ImportsPath 11 The location of installed QML extensions to import.
QLibraryInfo.DataPath 6 The location of general Qt data.
QLibraryInfo.TranslationsPath 7 The location of translation information for Qt strings.
QLibraryInfo.SettingsPath 8 The location for Qt settings.
QLibraryInfo.ExamplesPath 10 The location for examples upon install.
QLibraryInfo.DemosPath 9 The location for demos upon install.

See also location().


Method Documentation

QLibraryInfo.__init__ (self, QLibraryInfo)

QDate QLibraryInfo.buildDate ()

Returns the installation date for this build of Qt. The install date will usually be the last time that Qt sources were configured.

This function was introduced in Qt 4.6.

QString QLibraryInfo.buildKey ()

Returns a unique key identifying this build of Qt and its configurations. This key is not globally unique, rather only useful for establishing of two configurations are compatible. This can be used to compare with the QT_BUILD_KEY preprocessor symbol.

See also location().

QString QLibraryInfo.licensedProducts ()

Returns the products that the license for this build of Qt has access to.

See also licensee().

QString QLibraryInfo.licensee ()

Returns the person to whom this build of Qt is licensed.

See also licensedProducts().

QString QLibraryInfo.location (LibraryLocation)

Returns the location specified by loc.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qline.html0000644000076500000240000002734612536324472017477 0ustar philstaff00000000000000 QLine Class Reference
  Home · All Classes · Modules

QLine Class Reference
[QtCore module]

The QLine class provides a two-dimensional vector using integer precision. More...

Methods

Special Methods


Detailed Description

This class can be pickled.

The QLine class provides a two-dimensional vector using integer precision.

A QLine describes a finite length line (or a line segment) on a two-dimensional surface. The start and end points of the line are specified using integer point accuracy for coordinates. Use the QLineF constructor to retrieve a floating point copy.

The positions of the line's start and end points can be retrieved using the p1(), x1(), y1(), p2(), x2(), and y2() functions. The dx() and dy() functions return the horizontal and vertical components of the line. Use isNull() to determine whether the QLine represents a valid line or a null line.

Finally, the line can be translated a given offset using the translate() function.


Method Documentation

QLine.__init__ (self)

Constructs a null line.

QLine.__init__ (self, QPoint pt1_, QPoint pt2_)

Constructs a line object that represents the line between p1 and p2.

QLine.__init__ (self, int x1pos, int y1pos, int x2pos, int y2pos)

Constructs a line object that represents the line between (x1, y1) and (x2, y2).

QLine.__init__ (self, QLine)

int QLine.dx (self)

Returns the horizontal component of the line's vector.

See also dy().

int QLine.dy (self)

Returns the vertical component of the line's vector.

See also dx().

bool QLine.isNull (self)

Returns true if the line is not set up with valid start and end point; otherwise returns false.

QPoint QLine.p1 (self)

Returns the line's start point.

See also setP1(), x1(), y1(), and p2().

QPoint QLine.p2 (self)

Returns the line's end point.

See also setP2(), x2(), y2(), and p1().

QLine.setLine (self, int aX1, int aY1, int aX2, int aY2)

Sets this line to the start in x1, y1 and end in x2, y2.

This function was introduced in Qt 4.4.

See also setP1(), setP2(), p1(), and p2().

QLine.setP1 (self, QPoint aP1)

Sets the starting point of this line to p1.

This function was introduced in Qt 4.4.

See also setP2() and p1().

QLine.setP2 (self, QPoint aP2)

Sets the end point of this line to p2.

This function was introduced in Qt 4.4.

See also setP1() and p2().

QLine.setPoints (self, QPoint aP1, QPoint aP2)

Sets the start point of this line to p1 and the end point of this line to p2.

This function was introduced in Qt 4.4.

See also setP1(), setP2(), p1(), and p2().

QLine.translate (self, QPoint point)

Translates this line by the given offset.

QLine.translate (self, int adx, int ady)

This is an overloaded function.

Translates this line the distance specified by dx and dy.

QLine QLine.translated (self, QPoint p)

Returns this line translated by the given offset.

This function was introduced in Qt 4.4.

QLine QLine.translated (self, int adx, int ady)

This is an overloaded function.

Returns this line translated the distance specified by dx and dy.

This function was introduced in Qt 4.4.

int QLine.x1 (self)

Returns the x-coordinate of the line's start point.

See also p1().

int QLine.x2 (self)

Returns the x-coordinate of the line's end point.

See also p2().

int QLine.y1 (self)

Returns the y-coordinate of the line's start point.

See also p1().

int QLine.y2 (self)

Returns the y-coordinate of the line's end point.

See also p2().

QLine __mul__ (self, QMatrix m)

This method is only available if the QtGui module is imported.

QLine __mul__ (self, QTransform m)

This method is only available if the QtGui module is imported.

int QLine.__bool__ (self)

bool QLine.__eq__ (self, QLine d)

bool QLine.__ne__ (self, QLine d)

str QLine.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlineargradient.html0000644000076500000240000002111212536324501021512 0ustar philstaff00000000000000 QLinearGradient Class Reference
  Home · All Classes · Modules

QLinearGradient Class Reference
[
QtGui module]

The QLinearGradient class is used in combination with QBrush to specify a linear gradient brush. More...

Inherits QGradient.

Methods


Detailed Description

The QLinearGradient class is used in combination with QBrush to specify a linear gradient brush.

Linear gradients interpolate colors between start and end points. Outside these points the gradient is either padded, reflected or repeated depending on the currently set spread method:

PadSpread (default) ReflectSpread RepeatSpread

The colors in a gradient is defined using stop points of the QGradientStop type, i.e. a position and a color. Use the QGradient.setColorAt() or the QGradient.setStops() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.

In addition to the functions inherited from QGradient, the QLinearGradient class provides the finalStop() function which returns the final stop point of the gradient, and the start() function returning the start point of the gradient.


Method Documentation

QLinearGradient.__init__ (self)

Constructs a default linear gradient with interpolation area between (0, 0) and (1, 1).

See also QGradient.setColorAt(), setStart(), and setFinalStop().

QLinearGradient.__init__ (self, QPointF start, QPointF finalStop)

Constructs a linear gradient with interpolation area between the given start point and finalStop.

Note: The expected parameter values are in pixels.

See also QGradient.setColorAt() and QGradient.setStops().

QLinearGradient.__init__ (self, float xStart, float yStart, float xFinalStop, float yFinalStop)

Constructs a linear gradient with interpolation area between (x1, y1) and (x2, y2).

Note: The expected parameter values are in pixels.

See also QGradient.setColorAt() and QGradient.setStops().

QLinearGradient.__init__ (self, QLinearGradient)

QPointF QLinearGradient.finalStop (self)

Returns the final stop point of this linear gradient in logical coordinates.

See also setFinalStop() and QGradient.stops().

QLinearGradient.setFinalStop (self, QPointF stop)

Sets the final stop point of this linear gradient in logical coordinates to stop.

This function was introduced in Qt 4.2.

See also finalStop().

QLinearGradient.setFinalStop (self, float x, float y)

This is an overloaded function.

Sets the final stop point of this linear gradient in logical coordinates to x, y.

This function was introduced in Qt 4.2.

See also start().

QLinearGradient.setStart (self, QPointF start)

Sets the start point of this linear gradient in logical coordinates to start.

This function was introduced in Qt 4.2.

See also start().

QLinearGradient.setStart (self, float x, float y)

This is an overloaded function.

Sets the start point of this linear gradient in logical coordinates to x, y.

This function was introduced in Qt 4.2.

See also start().

QPointF QLinearGradient.start (self)

Returns the start point of this linear gradient in logical coordinates.

See also setStart() and QGradient.stops().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlineedit.html0000644000076500000240000013152312536324507020335 0ustar philstaff00000000000000 QLineEdit Class Reference
  Home · All Classes · Modules

QLineEdit Class Reference
[QtGui module]

The QLineEdit widget is a one-line text editor. More...

Inherits QWidget.

Types

  • enum EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit }

Methods

Qt Signals


Detailed Description

The QLineEdit widget is a one-line text editor.

A line edit allows the user to enter and edit a single line of plain text with a useful collection of editing functions, including undo and redo, cut and paste, and drag and drop.

By changing the echoMode() of a line edit, it can also be used as a "write-only" field, for inputs such as passwords.

The length of the text can be constrained to maxLength(). The text can be arbitrarily constrained using a validator() or an inputMask(), or both. When switching between a validator and an input mask on the same line edit, it is best to clear the validator or input mask to prevent undefined behavior.

A related class is QTextEdit which allows multi-line, rich text editing.

You can change the text with setText() or insert(). The text is retrieved with text(); the displayed text (which may be different, see EchoMode) is retrieved with displayText(). Text can be selected with setSelection() or selectAll(), and the selection can be cut(), copy()ied and paste()d. The text can be aligned with setAlignment().

When the text changes the textChanged() signal is emitted; when the text changes other than by calling setText() the textEdited() signal is emitted; when the cursor is moved the cursorPositionChanged() signal is emitted; and when the Return or Enter key is pressed the returnPressed() signal is emitted.

When editing is finished, either because the line edit lost focus or Return/Enter is pressed the editingFinished() signal is emitted.

Note that if there is a validator set on the line edit, the returnPressed()/editingFinished() signals will only be emitted if the validator returns QValidator.Acceptable.

By default, QLineEdits have a frame as specified by the Windows and Motif style guides; you can turn it off by calling setFrame(false).

The default key bindings are described below. The line edit also provides a context menu (usually invoked by a right mouse click) that presents some of these editing options.

Keypress Action
Left Arrow Moves the cursor one character to the left.
Shift+Left Arrow Moves and selects text one character to the left.
Right Arrow Moves the cursor one character to the right.
Shift+Right Arrow Moves and selects text one character to the right.
Home Moves the cursor to the beginning of the line.
End Moves the cursor to the end of the line.
Backspace Deletes the character to the left of the cursor.
Ctrl+Backspace Deletes the word to the left of the cursor.
Delete Deletes the character to the right of the cursor.
Ctrl+Delete Deletes the word to the right of the cursor.
Ctrl+A Select all.
Ctrl+C Copies the selected text to the clipboard.
Ctrl+Insert Copies the selected text to the clipboard.
Ctrl+K Deletes to the end of the line.
Ctrl+V Pastes the clipboard text into line edit.
Shift+Insert Pastes the clipboard text into line edit.
Ctrl+X Deletes the selected text and copies it to the clipboard.
Shift+Delete Deletes the selected text and copies it to the clipboard.
Ctrl+Z Undoes the last operation.
Ctrl+Y Redoes the last undone operation.

Any other key sequence that represents a valid character, will cause the character to be inserted into the line edit.

Screenshot of a Macintosh style line edit A line edit shown in the Macintosh widget style.
Screenshot of a Windows XP style line edit A line edit shown in the Windows XP widget style.
Screenshot of a Plastique style line edit A line edit shown in the Plastique widget style.

Type Documentation

QLineEdit.EchoMode

This enum type describes how a line edit should display its contents.

Constant Value Description
QLineEdit.Normal 0 Display characters as they are entered. This is the default.
QLineEdit.NoEcho 1 Do not display anything. This may be appropriate for passwords where even the length of the password should be kept secret.
QLineEdit.Password 2 Display asterisks instead of the characters actually entered.
QLineEdit.PasswordEchoOnEdit 3 Display characters as they are entered while editing otherwise display asterisks.

See also setEchoMode() and echoMode().


Method Documentation

QLineEdit.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a line edit with no text.

The maximum text length is set to 32767 characters.

The parent argument is sent to the QWidget constructor.

See also setText() and setMaxLength().

QLineEdit.__init__ (self, QString contents, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a line edit containing the text contents.

The cursor position is set to the end of the line and the maximum text length to 32767 characters.

The parent and argument is sent to the QWidget constructor.

See also text() and setMaxLength().

Qt.Alignment QLineEdit.alignment (self)

QLineEdit.backspace (self)

If no text is selected, deletes the character to the left of the text cursor and moves the cursor one position to the left. If any text is selected, the cursor is moved to the beginning of the selected text and the selected text is deleted.

See also del_().

QLineEdit.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QLineEdit.clear (self)

Clears the contents of the line edit.

See also setText() and insert().

QCompleter QLineEdit.completer (self)

Returns the current QCompleter that provides completions.

This function was introduced in Qt 4.2.

See also setCompleter().

QLineEdit.contextMenuEvent (self, QContextMenuEvent)

Reimplemented from QWidget.contextMenuEvent().

Shows the standard context menu created with createStandardContextMenu().

If you do not want the line edit to have a context menu, you can set its contextMenuPolicy to Qt.NoContextMenu. If you want to customize the context menu, reimplement this function. If you want to extend the standard context menu, reimplement this function, call createStandardContextMenu() and extend the menu returned.

 void LineEdit.contextMenuEvent(QContextMenuEvent *event)
 {
     QMenu *menu = createStandardContextMenu();
     menu->addAction(tr("My Menu Item"));
     //...
     menu->exec(event->globalPos());
     delete menu;
 }

The event parameter is used to obtain the position where the mouse cursor was when the event was generated.

See also setContextMenuPolicy().

QLineEdit.copy (self)

Copies the selected text to the clipboard, if there is any, and if echoMode() is Normal.

See also cut() and paste().

QMenu QLineEdit.createStandardContextMenu (self)

This function creates the standard context menu which is shown when the user clicks on the line edit with the right mouse button. It is called from the default contextMenuEvent() handler. The popup menu's ownership is transferred to the caller.

QLineEdit.cursorBackward (self, bool mark, int steps = 1)

Moves the cursor back steps characters. If mark is true each character moved over is added to the selection; if mark is false the selection is cleared.

See also cursorForward().

QLineEdit.cursorForward (self, bool mark, int steps = 1)

Moves the cursor forward steps characters. If mark is true each character moved over is added to the selection; if mark is false the selection is cleared.

See also cursorBackward().

Qt.CursorMoveStyle QLineEdit.cursorMoveStyle (self)

int QLineEdit.cursorPosition (self)

int QLineEdit.cursorPositionAt (self, QPoint pos)

Returns the cursor position under the point pos.

QRect QLineEdit.cursorRect (self)

Returns a rectangle that includes the lineedit cursor.

This function was introduced in Qt 4.4.

QLineEdit.cursorWordBackward (self, bool mark)

Moves the cursor one word backward. If mark is true, the word is also selected.

See also cursorWordForward().

QLineEdit.cursorWordForward (self, bool mark)

Moves the cursor one word forward. If mark is true, the word is also selected.

See also cursorWordBackward().

QLineEdit.cut (self)

Copies the selected text to the clipboard and deletes it, if there is any, and if echoMode() is Normal.

If the current validator disallows deleting the selected text, cut() will copy without deleting.

See also copy(), paste(), and setValidator().

QLineEdit.del_ (self)

If no text is selected, deletes the character to the right of the text cursor. If any text is selected, the cursor is moved to the beginning of the selected text and the selected text is deleted.

See also backspace().

QLineEdit.deselect (self)

Deselects any selected text.

See also setSelection() and selectAll().

QString QLineEdit.displayText (self)

bool QLineEdit.dragEnabled (self)

QLineEdit.dragEnterEvent (self, QDragEnterEvent)

Reimplemented from QWidget.dragEnterEvent().

QLineEdit.dragLeaveEvent (self, QDragLeaveEvent e)

Reimplemented from QWidget.dragLeaveEvent().

QLineEdit.dragMoveEvent (self, QDragMoveEvent e)

Reimplemented from QWidget.dragMoveEvent().

QLineEdit.dropEvent (self, QDropEvent)

Reimplemented from QWidget.dropEvent().

EchoMode QLineEdit.echoMode (self)

QLineEdit.end (self, bool mark)

Moves the text cursor to the end of the line unless it is already there. If mark is true, text is selected towards the last position; otherwise, any selected text is unselected if the cursor is moved.

See also home().

bool QLineEdit.event (self, QEvent)

Reimplemented from QObject.event().

QLineEdit.focusInEvent (self, QFocusEvent)

Reimplemented from QWidget.focusInEvent().

QLineEdit.focusOutEvent (self, QFocusEvent)

Reimplemented from QWidget.focusOutEvent().

(int left, int top, int right, int bottom) QLineEdit.getTextMargins (self)

Returns the widget's text margins for left, top, right, and bottom.

This function was introduced in Qt 4.5.

See also setTextMargins().

bool QLineEdit.hasAcceptableInput (self)

bool QLineEdit.hasFrame (self)

bool QLineEdit.hasSelectedText (self)

QLineEdit.home (self, bool mark)

Moves the text cursor to the beginning of the line unless it is already there. If mark is true, text is selected towards the first position; otherwise, any selected text is unselected if the cursor is moved.

See also end().

QLineEdit.initStyleOption (self, QStyleOptionFrame option)

Initialize option with the values from this QLineEdit. This method is useful for subclasses when they need a QStyleOptionFrame or QStyleOptionFrameV2, but don't want to fill in all the information themselves. This function will check the version of the QStyleOptionFrame and fill in the additional values for a QStyleOptionFrameV2.

See also QStyleOption.initFrom().

QString QLineEdit.inputMask (self)

QLineEdit.inputMethodEvent (self, QInputMethodEvent)

Reimplemented from QWidget.inputMethodEvent().

QVariant QLineEdit.inputMethodQuery (self, Qt.InputMethodQuery)

Reimplemented from QWidget.inputMethodQuery().

QLineEdit.insert (self, QString)

Deletes any selected text, inserts newText, and validates the result. If it is valid, it sets it as the new contents of the line edit.

See also setText() and clear().

bool QLineEdit.isModified (self)

bool QLineEdit.isReadOnly (self)

bool QLineEdit.isRedoAvailable (self)

bool QLineEdit.isUndoAvailable (self)

QLineEdit.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

Converts the given key press event into a line edit action.

If Return or Enter is pressed and the current text is valid (or can be made valid by the validator), the signal returnPressed() is emitted.

The default key bindings are listed in the class's detailed description.

int QLineEdit.maxLength (self)

QSize QLineEdit.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

Returns a minimum size for the line edit.

The width returned is enough for at least one character.

QLineEdit.mouseDoubleClickEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseDoubleClickEvent().

QLineEdit.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QLineEdit.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

QLineEdit.mouseReleaseEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QLineEdit.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QLineEdit.paste (self)

Inserts the clipboard's text at the cursor position, deleting any selected text, providing the line edit is not read-only.

If the end result would not be acceptable to the current validator, nothing happens.

See also copy() and cut().

QString QLineEdit.placeholderText (self)

QLineEdit.redo (self)

Redoes the last operation if redo is available.

QLineEdit.selectAll (self)

Selects all the text (i.e. highlights it) and moves the cursor to the end. This is useful when a default value has been inserted because if the user types before clicking on the widget, the selected text will be deleted.

See also setSelection() and deselect().

QString QLineEdit.selectedText (self)

int QLineEdit.selectionStart (self)

selectionStart() returns the index of the first selected character in the line edit or -1 if no text is selected.

See also selectedText().

QLineEdit.setAlignment (self, Qt.Alignment flag)

QLineEdit.setCompleter (self, QCompleter completer)

Sets this line edit to provide auto completions from the completer, c. The completion mode is set using QCompleter.setCompletionMode().

To use a QCompleter with a QValidator or QLineEdit.inputMask, you need to ensure that the model provided to QCompleter contains valid entries. You can use the QSortFilterProxyModel to ensure that the QCompleter's model contains only valid entries.

If c == 0, setCompleter() removes the current completer, effectively disabling auto completion.

This function was introduced in Qt 4.2.

See also completer() and QCompleter.

QLineEdit.setCursorMoveStyle (self, Qt.CursorMoveStyle style)

QLineEdit.setCursorPosition (self, int)

QLineEdit.setDragEnabled (self, bool b)

QLineEdit.setEchoMode (self, EchoMode)

QLineEdit.setFrame (self, bool)

QLineEdit.setInputMask (self, QString inputMask)

QLineEdit.setMaxLength (self, int)

QLineEdit.setModified (self, bool)

QLineEdit.setPlaceholderText (self, QString)

QLineEdit.setReadOnly (self, bool)

QLineEdit.setSelection (self, int, int)

Selects text from position start and for length characters. Negative lengths are allowed.

See also deselect(), selectAll(), and selectedText().

QLineEdit.setText (self, QString)

QLineEdit.setTextMargins (self, int left, int top, int right, int bottom)

Sets the margins around the text inside the frame to have the sizes left, top, right, and bottom.

See also getTextMargins().

This function was introduced in Qt 4.5.

See also textMargins().

QLineEdit.setTextMargins (self, QMargins margins)

Sets the margins around the text inside the frame.

See also textMargins().

This function was introduced in Qt 4.6.

QLineEdit.setValidator (self, QValidator)

Sets this line edit to only accept input that the validator, v, will accept. This allows you to place any arbitrary constraints on the text which may be entered.

If v == 0, setValidator() removes the current input validator. The initial setting is to have no input validator (i.e. any input is accepted up to maxLength()).

See also validator(), QIntValidator, QDoubleValidator, and QRegExpValidator.

QSize QLineEdit.sizeHint (self)

Reimplemented from QWidget.sizeHint().

Returns a recommended size for the widget.

The width returned, in pixels, is usually enough for about 15 to 20 characters.

QString QLineEdit.text (self)

QMargins QLineEdit.textMargins (self)

Returns the widget's text margins.

This function was introduced in Qt 4.6.

See also setTextMargins().

QLineEdit.undo (self)

Undoes the last operation if undo is available. Deselects any current selection, and updates the selection start to the current cursor position.

QValidator QLineEdit.validator (self)

Returns a pointer to the current input validator, or 0 if no validator has been set.

See also setValidator().


Qt Signal Documentation

void cursorPositionChanged (int,int)

This is the default overload of this signal.

This signal is emitted whenever the cursor moves. The previous position is given by old, and the new position by new.

See also setCursorPosition() and cursorPosition().

void editingFinished ()

This is the default overload of this signal.

This signal is emitted when the Return or Enter key is pressed or the line edit loses focus. Note that if there is a validator() or inputMask() set on the line edit and enter/return is pressed, the editingFinished() signal will only be emitted if the input follows the inputMask() and the validator() returns QValidator.Acceptable.

void returnPressed ()

This is the default overload of this signal.

This signal is emitted when the Return or Enter key is pressed. Note that if there is a validator() or inputMask() set on the line edit, the returnPressed() signal will only be emitted if the input follows the inputMask() and the validator() returns QValidator.Acceptable.

void selectionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the selection changes.

See also hasSelectedText() and selectedText().

void textChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the text changes. The text argument is the new text.

Unlike textEdited(), this signal is also emitted when the text is changed programmatically, for example, by calling setText().

void textEdited (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the text is edited. The text argument is the new text.

Unlike textChanged(), this signal is not emitted when the text is changed programmatically, for example, by calling setText().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlinef.html0000644000076500000240000005405412536324473017642 0ustar philstaff00000000000000 QLineF Class Reference
  Home · All Classes · Modules

QLineF Class Reference
[QtCore module]

The QLineF class provides a two-dimensional vector using floating point precision. More...

Types

  • enum IntersectType { NoIntersection, BoundedIntersection, UnboundedIntersection }

Methods

Static Methods

  • QLineF fromPolar (float length, float angle)

Special Methods


Detailed Description

This class can be pickled.

The QLineF class provides a two-dimensional vector using floating point precision.

A QLineF describes a finite length line (or line segment) on a two-dimensional surface. QLineF defines the start and end points of the line using floating point accuracy for coordinates. Use the toLine() function to retrieve an integer based copy of this line.

The positions of the line's start and end points can be retrieved using the p1(), x1(), y1(), p2(), x2(), and y2() functions. The dx() and dy() functions return the horizontal and vertical components of the line, respectively.

The line's length can be retrieved using the length() function, and altered using the setLength() function. Similarly, angle() and setAngle() are respectively used for retrieving and altering the angle of the line. Use the isNull() function to determine whether the QLineF represents a valid line or a null line.

The intersect() function determines the IntersectType for this line and a given line, while the angleTo() function returns the angle between the lines. In addition, the unitVector() function returns a line that has the same starting point as this line, but with a length of only 1, while the normalVector() function returns a line that is perpendicular to this line with the same starting point and length.

Finally, the line can be translated a given offset using the translate() function, and can be traversed using the pointAt() function.


Type Documentation

QLineF.IntersectType

Describes the intersection between two lines.

QLineF.UnboundedIntersection QLineF.BoundedIntersection
Constant Value Description
QLineF.NoIntersection 0 Indicates that the lines do not intersect; i.e. they are parallel.
QLineF.UnboundedIntersection 2 The two lines intersect, but not within the range defined by their lengths. This will be the case if the lines are not parallel.

intersect() will also return this value if the intersect point is within the start and end point of only one of the lines.

Constant Value Description
QLineF.BoundedIntersection 1 The two lines intersect with each other within the start and end points of each line.

See also intersect().


Method Documentation

QLineF.__init__ (self, QLine line)

Constructs a null line.

QLineF.__init__ (self)

Constructs a line object that represents the line between p1 and p2.

QLineF.__init__ (self, QPointF apt1, QPointF apt2)

Constructs a line object that represents the line between (x1, y1) and (x2, y2).

QLineF.__init__ (self, float x1pos, float y1pos, float x2pos, float y2pos)

Construct a QLineF object from the given integer-based line.

See also toLine().

QLineF.__init__ (self, QLineF)

float QLineF.angle (self, QLineF l)

Returns the angle of the line in degrees.

The return value will be in the range of values from 0.0 up to but not including 360.0. The angles are measured counter-clockwise from a point on the x-axis to the right of the origin (x > 0).

This function was introduced in Qt 4.4.

See also setAngle().

float QLineF.angle (self)

float QLineF.angleTo (self, QLineF l)

Returns the angle (in positive degrees) from this line to the given line, taking the direction of the lines into account. If the lines do not intersect within their range, it is the intersection point of the extended lines that serves as origin (see QLineF.UnboundedIntersection).

The returned value represents the number of degrees you need to add to this line to make it have the same angle as the given line, going counter-clockwise.

This function was introduced in Qt 4.4.

See also intersect().

float QLineF.dx (self)

Returns the horizontal component of the line's vector. Return value is positive if x2() >= x1() and negative if x2() < x1().

See also dy() and pointAt().

float QLineF.dy (self)

Returns the vertical component of the line's vector. Return value is positive if y2() >= y1() and negative if y2() < y1().

See also dx() and pointAt().

QLineF QLineF.fromPolar (float length, float angle)

Returns a QLineF with the given length and angle.

The first point of the line will be on the origin.

Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.

This function was introduced in Qt 4.4.

IntersectType QLineF.intersect (self, QLineF l, QPointF intersectionPoint)

Returns a value indicating whether or not this line intersects with the given line.

The actual intersection point is extracted to intersectionPoint (if the pointer is valid). If the lines are parallel, the intersection point is undefined.

bool QLineF.isNull (self)

Returns true if the line is not set up with valid start and end point; otherwise returns false.

float QLineF.length (self)

Returns the length of the line.

See also setLength().

QLineF QLineF.normalVector (self)

Returns a line that is perpendicular to this line with the same starting point and length.

See also unitVector().

QPointF QLineF.p1 (self)

Returns the line's start point.

See also setP1(), x1(), y1(), and p2().

QPointF QLineF.p2 (self)

Returns the line's end point.

See also setP2(), x2(), y2(), and p1().

QPointF QLineF.pointAt (self, float t)

Returns the point at the parameterized position specified by t. The function returns the line's start point if t = 0, and its end point if t = 1.

See also dx() and dy().

QLineF.setAngle (self, float angle)

Sets the angle of the line to the given angle (in degrees). This will change the position of the second point of the line such that the line has the given angle.

Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.

This function was introduced in Qt 4.4.

See also angle().

QLineF.setLength (self, float len)

Sets the length of the line to the given length. QLineF will move the end point - p2() - of the line to give the line its new length. If the given length is negative the angle() is also changed.

If the line is a null line, the length will remain zero regardless of the length specified.

See also length() and isNull().

QLineF.setLine (self, float aX1, float aY1, float aX2, float aY2)

Sets this line to the start in x1, y1 and end in x2, y2.

This function was introduced in Qt 4.4.

See also setP1(), setP2(), p1(), and p2().

QLineF.setP1 (self, QPointF aP1)

Sets the starting point of this line to p1.

This function was introduced in Qt 4.4.

See also setP2() and p1().

QLineF.setP2 (self, QPointF aP2)

Sets the end point of this line to p2.

This function was introduced in Qt 4.4.

See also setP1() and p2().

QLineF.setPoints (self, QPointF aP1, QPointF aP2)

Sets the start point of this line to p1 and the end point of this line to p2.

This function was introduced in Qt 4.4.

See also setP1(), setP2(), p1(), and p2().

QLine QLineF.toLine (self)

Returns an integer based copy of this line.

Note that the returned line's start and end points are rounded to the nearest integer.

See also QLineF().

QLineF.translate (self, QPointF point)

Translates this line by the given offset.

QLineF.translate (self, float adx, float ady)

This is an overloaded function.

Translates this line the distance specified by dx and dy.

QLineF QLineF.translated (self, QPointF p)

Returns this line translated by the given offset.

This function was introduced in Qt 4.4.

QLineF QLineF.translated (self, float adx, float ady)

This is an overloaded function.

Returns this line translated the distance specified by dx and dy.

This function was introduced in Qt 4.4.

QLineF QLineF.unitVector (self)

Returns the unit vector for this line, i.e a line starting at the same point as this line with a length of 1.0.

See also normalVector().

float QLineF.x1 (self)

Returns the x-coordinate of the line's start point.

See also p1().

float QLineF.x2 (self)

Returns the x-coordinate of the line's end point.

See also p2().

float QLineF.y1 (self)

Returns the y-coordinate of the line's start point.

See also p1().

float QLineF.y2 (self)

Returns the y-coordinate of the line's end point.

See also p2().

QLineF __mul__ (self, QMatrix m)

This method is only available if the QtGui module is imported.

QLineF __mul__ (self, QTransform m)

This method is only available if the QtGui module is imported.

int QLineF.__bool__ (self)

bool QLineF.__eq__ (self, QLineF d)

bool QLineF.__ne__ (self, QLineF d)

str QLineF.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlistview.html0000644000076500000240000007622212536324507020412 0ustar philstaff00000000000000 QListView Class Reference
  Home · All Classes · Modules

QListView Class Reference
[
QtGui module]

The QListView class provides a list or icon view onto a model. More...

Inherits QAbstractItemView.

Inherited by QHelpIndexWidget, QListWidget and QUndoView.

Types

Methods

Qt Signals


Detailed Description

The QListView class provides a list or icon view onto a model.

A QListView presents items stored in a model, either as a simple non-hierarchical list, or as a collection of icons. This class is used to provide lists and icon views that were previously provided by the QListBox and QIconView classes, but using the more flexible approach provided by Qt's model/view architecture.

The QListView class is one of the Model/View Classes and is part of Qt's model/view framework.

This view does not display horizontal or vertical headers; to display a list of items with a horizontal header, use QTreeView instead.

QListView implements the interfaces defined by the QAbstractItemView class to allow it to display data provided by models derived from the QAbstractItemModel class.

Items in a list view can be displayed using one of two view modes: In ListMode, the items are displayed in the form of a simple list; in IconMode, the list view takes the form of an icon view in which the items are displayed with icons like files in a file manager. By default, the list view is in ListMode. To change the view mode, use the setViewMode() function, and to determine the current view mode, use viewMode().

Items in these views are laid out in the direction specified by the flow() of the list view. The items may be fixed in place, or allowed to move, depending on the view's movement() state.

If the items in the model cannot be completely laid out in the direction of flow, they can be wrapped at the boundary of the view widget; this depends on isWrapping(). This property is useful when the items are being represented by an icon view.

The resizeMode() and layoutMode() govern how and when the items are laid out. Items are spaced according to their spacing(), and can exist within a notional grid of size specified by gridSize(). The items can be rendered as large or small icons depending on their iconSize().

Screenshot of a Windows XP style list view Screenshot of a Macintosh style table view Screenshot of a Plastique style table view
A Windows XP style list view. A Macintosh style list view. A Plastique style list view.

Improving Performance

It is possible to give the view hints about the data it is handling in order to improve its performance when displaying large numbers of items. One approach that can be taken for views that are intended to display items with equal sizes is to set the uniformItemSizes property to true.


Type Documentation

QListView.Flow

Constant Value Description
QListView.LeftToRight 0 The items are laid out in the view from the left to the right.
QListView.TopToBottom 1 The items are laid out in the view from the top to the bottom.

QListView.LayoutMode

Constant Value Description
QListView.SinglePass 0 The items are laid out all at once.
QListView.Batched 1 The items are laid out in batches of batchSize items.

See also batchSize.

QListView.Movement

Constant Value Description
QListView.Static 0 The items cannot be moved by the user.
QListView.Free 1 The items can be moved freely by the user.
QListView.Snap 2 The items snap to the specified grid when moved; see setGridSize().

QListView.ResizeMode

Constant Value Description
QListView.Fixed 0 The items will only be laid out the first time the view is shown.
QListView.Adjust 1 The items will be laid out every time the view is resized.

QListView.ViewMode

Constant Value Description
QListView.ListMode 0 The items are laid out using TopToBottom flow, with Small size and Static movement
QListView.IconMode 1 The items are laid out using LeftToRight flow, with Large size and Free movement

Method Documentation

QListView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new QListView with the given parent to view a model. Use setModel() to set the model.

int QListView.batchSize (self)

QListView.clearPropertyFlags (self)

Clears the QListView-specific property flags. See viewMode.

Properties inherited from QAbstractItemView are not covered by the property flags. Specifically, dragEnabled and acceptsDrops are computed by QListView when calling setMovement() or setViewMode().

QListView.currentChanged (self, QModelIndex current, QModelIndex previous)

Reimplemented from QAbstractItemView.currentChanged().

QListView.dataChanged (self, QModelIndex topLeft, QModelIndex bottomRight)

Reimplemented from QAbstractItemView.dataChanged().

QListView.dragLeaveEvent (self, QDragLeaveEvent e)

Reimplemented from QWidget.dragLeaveEvent().

QListView.dragMoveEvent (self, QDragMoveEvent e)

Reimplemented from QWidget.dragMoveEvent().

QListView.dropEvent (self, QDropEvent e)

Reimplemented from QWidget.dropEvent().

bool QListView.event (self, QEvent e)

Reimplemented from QObject.event().

Flow QListView.flow (self)

QSize QListView.gridSize (self)

int QListView.horizontalOffset (self)

Reimplemented from QAbstractItemView.horizontalOffset().

QModelIndex QListView.indexAt (self, QPoint p)

Reimplemented from QAbstractItemView.indexAt().

bool QListView.isIndexHidden (self, QModelIndex index)

Reimplemented from QAbstractItemView.isIndexHidden().

bool QListView.isRowHidden (self, int row)

Returns true if the row is hidden; otherwise returns false.

bool QListView.isSelectionRectVisible (self)

bool QListView.isWrapping (self)

LayoutMode QListView.layoutMode (self)

int QListView.modelColumn (self)

QListView.mouseMoveEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseMoveEvent().

QListView.mouseReleaseEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseReleaseEvent().

QModelIndex QListView.moveCursor (self, QAbstractItemView.CursorAction cursorAction, Qt.KeyboardModifiers modifiers)

Reimplemented from QAbstractItemView.moveCursor().

Movement QListView.movement (self)

QListView.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

QRect QListView.rectForIndex (self, QModelIndex index)

Returns the rectangle of the item at position index in the model. The rectangle is in contents coordinates.

See also visualRect().

QListView.reset (self)

QListView.resizeEvent (self, QResizeEvent e)

Reimplemented from QWidget.resizeEvent().

ResizeMode QListView.resizeMode (self)

QListView.rowsAboutToBeRemoved (self, QModelIndex parent, int start, int end)

Reimplemented from QAbstractItemView.rowsAboutToBeRemoved().

QListView.rowsInserted (self, QModelIndex parent, int start, int end)

Reimplemented from QAbstractItemView.rowsInserted().

QListView.scrollContentsBy (self, int dx, int dy)

QListView.scrollTo (self, QModelIndex index, QAbstractItemView.ScrollHint hint = QAbstractItemView.EnsureVisible)

Reimplemented from QAbstractItemView.scrollTo().

list-of-QModelIndex QListView.selectedIndexes (self)

Reimplemented from QAbstractItemView.selectedIndexes().

QListView.selectionChanged (self, QItemSelection selected, QItemSelection deselected)

Reimplemented from QAbstractItemView.selectionChanged().

QListView.setBatchSize (self, int batchSize)

QListView.setFlow (self, Flow flow)

QListView.setGridSize (self, QSize size)

QListView.setLayoutMode (self, LayoutMode mode)

QListView.setModelColumn (self, int column)

QListView.setMovement (self, Movement movement)

QListView.setPositionForIndex (self, QPoint position, QModelIndex index)

Sets the contents position of the item at index in the model to the given position. If the list view's movement mode is Static or its view mode is ListView, this function will have no effect.

This function was introduced in Qt 4.1.

QListView.setResizeMode (self, ResizeMode mode)

QListView.setRootIndex (self, QModelIndex index)

QListView.setRowHidden (self, int row, bool hide)

If hide is true, the given row will be hidden; otherwise the row will be shown.

See also isRowHidden().

QListView.setSelection (self, QRect rect, QItemSelectionModel.SelectionFlags command)

Reimplemented from QAbstractItemView.setSelection().

QListView.setSelectionRectVisible (self, bool show)

QListView.setSpacing (self, int space)

QListView.setUniformItemSizes (self, bool enable)

QListView.setViewMode (self, ViewMode mode)

QListView.setWordWrap (self, bool on)

QListView.setWrapping (self, bool enable)

int QListView.spacing (self)

QListView.startDrag (self, Qt.DropActions supportedActions)

Reimplemented from QAbstractItemView.startDrag().

QListView.timerEvent (self, QTimerEvent e)

Reimplemented from QObject.timerEvent().

bool QListView.uniformItemSizes (self)

QListView.updateGeometries (self)

Reimplemented from QAbstractItemView.updateGeometries().

int QListView.verticalOffset (self)

Reimplemented from QAbstractItemView.verticalOffset().

ViewMode QListView.viewMode (self)

QStyleOptionViewItem QListView.viewOptions (self)

Reimplemented from QAbstractItemView.viewOptions().

QRect QListView.visualRect (self, QModelIndex index)

Reimplemented from QAbstractItemView.visualRect().

QRegion QListView.visualRegionForSelection (self, QItemSelection selection)

Reimplemented from QAbstractItemView.visualRegionForSelection().

Since 4.7, the returned region only contains rectangles intersecting (or included in) the viewport.

bool QListView.wordWrap (self)


Qt Signal Documentation

void indexesMoved (const QModelIndexList&)

This is the default overload of this signal.

This signal is emitted when the specified indexes are moved in the view.

This function was introduced in Qt 4.2.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlistwidget.html0000644000076500000240000007645612536324507020734 0ustar philstaff00000000000000 QListWidget Class Reference
  Home · All Classes · Modules

QListWidget Class Reference
[
QtGui module]

The QListWidget class provides an item-based list widget. More...

Inherits QListView.

Methods

Special Methods

Qt Signals


Detailed Description

The QListWidget class provides an item-based list widget.

QListWidget is a convenience class that provides a list view similar to the one supplied by QListView, but with a classic item-based interface for adding and removing items. QListWidget uses an internal model to manage each QListWidgetItem in the list.

For a more flexible list view widget, use the QListView class with a standard model.

List widgets are constructed in the same way as other widgets:

     QListWidget *listWidget = new QListWidget(this);

The selectionMode() of a list widget determines how many of the items in the list can be selected at the same time, and whether complex selections of items can be created. This can be set with the setSelectionMode() function.

There are two ways to add items to the list: they can be constructed with the list widget as their parent widget, or they can be constructed with no parent widget and added to the list later. If a list widget already exists when the items are constructed, the first method is easier to use:

     new QListWidgetItem(tr("Oak"), listWidget);
     new QListWidgetItem(tr("Fir"), listWidget);
     new QListWidgetItem(tr("Pine"), listWidget);

If you need to insert a new item into the list at a particular position, then it should be constructed without a parent widget. The insertItem() function should then be used to place it within the list. The list widget will take ownership of the item.

     QListWidgetItem *newItem = new QListWidgetItem;
     newItem->setText(itemText);
     listWidget->insertItem(row, newItem);

For multiple items, insertItems() can be used instead. The number of items in the list is found with the count() function. To remove items from the list, use takeItem().

The current item in the list can be found with currentItem(), and changed with setCurrentItem(). The user can also change the current item by navigating with the keyboard or clicking on a different item. When the current item changes, the currentItemChanged() signal is emitted with the new current item and the item that was previously current.

Screenshot of a Windows XP style list widget Screenshot of a Macintosh style table widget Screenshot of a Plastique style table widget
A Windows XP style list widget. A Macintosh style list widget. A Plastique style list widget.

Method Documentation

QListWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty QListWidget with the given parent.

QListWidget.addItem (self, QListWidgetItem aitem)

The aitem argument has it's ownership transferred to Qt.

Inserts an item with the text label at the end of the list widget.

QListWidget.addItem (self, QString label)

Inserts the item at the end of the list widget.

Warning: A QListWidgetItem can only be added to a QListWidget once. Adding the same QListWidgetItem multiple times to a QListWidget will result in undefined behavior.

See also insertItem().

QListWidget.addItems (self, QStringList labels)

Inserts items with the text labels at the end of the list widget.

See also insertItems().

QListWidget.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Removes all items and selections in the view.

Warning: All items will be permanently deleted.

QListWidget.closePersistentEditor (self, QListWidgetItem item)

Closes the persistent editor for the given item.

See also openPersistentEditor().

int QListWidget.count (self)

QListWidgetItem QListWidget.currentItem (self)

Returns the current item.

See also setCurrentItem().

int QListWidget.currentRow (self)

QListWidget.dropEvent (self, QDropEvent event)

Reimplemented from QWidget.dropEvent().

bool QListWidget.dropMimeData (self, int index, QMimeData data, Qt.DropAction action)

Handles data supplied by an external drag and drop operation that ended with the given action in the given index. Returns true if data and action can be handled by the model; otherwise returns false.

See also supportedDropActions().

QListWidget.editItem (self, QListWidgetItem item)

Starts editing the item if it is editable.

bool QListWidget.event (self, QEvent e)

Reimplemented from QObject.event().

list-of-QListWidgetItem QListWidget.findItems (self, QString text, Qt.MatchFlags flags)

Finds items with the text that matches the string text using the given flags.

QModelIndex QListWidget.indexFromItem (self, QListWidgetItem item)

Returns the QModelIndex assocated with the given item.

QListWidget.insertItem (self, int row, QListWidgetItem item)

The item argument has it's ownership transferred to Qt.

Inserts the item at the position in the list given by row.

See also addItem().

QListWidget.insertItem (self, int row, QString label)

Inserts an item with the text label in the list widget at the position given by row.

See also addItem().

QListWidget.insertItems (self, int row, QStringList labels)

Inserts items from the list of labels into the list, starting at the given row.

See also insertItem() and addItem().

bool QListWidget.isItemHidden (self, QListWidgetItem item)

bool QListWidget.isItemSelected (self, QListWidgetItem item)

bool QListWidget.isSortingEnabled (self)

QListWidgetItem QListWidget.item (self, int row)

Returns the item that occupies the given row in the list if one has been set; otherwise returns 0.

See also row().

QListWidgetItem QListWidget.itemAt (self, QPoint p)

Returns a pointer to the item at the coordinates p. The coordinates are relative to the list widget's viewport().

QListWidgetItem QListWidget.itemAt (self, int ax, int ay)

This is an overloaded function.

Returns a pointer to the item at the coordinates (x, y). The coordinates are relative to the list widget's viewport().

QListWidgetItem QListWidget.itemFromIndex (self, QModelIndex index)

Returns a pointer to the QListWidgetItem assocated with the given index.

list-of-QListWidgetItem QListWidget.items (self, QMimeData data)

Returns a list of pointers to the items contained in the data object. If the object was not created by a QListWidget in the same process, the list is empty.

QWidget QListWidget.itemWidget (self, QListWidgetItem item)

Returns the widget displayed in the given item.

This function was introduced in Qt 4.1.

See also setItemWidget().

QMimeData QListWidget.mimeData (self, list-of-QListWidgetItem items)

The QMimeData result

Returns an object that contains a serialized description of the specified items. The format used to describe the items is obtained from the mimeTypes() function.

If the list of items is empty, 0 is returned instead of a serialized empty list.

QStringList QListWidget.mimeTypes (self)

Returns a list of MIME types that can be used to describe a list of listwidget items.

See also mimeData().

QListWidget.openPersistentEditor (self, QListWidgetItem item)

Opens an editor for the given item. The editor remains open after editing.

See also closePersistentEditor().

QListWidget.removeItemWidget (self, QListWidgetItem aItem)

Removes the widget set on the given item.

This function was introduced in Qt 4.3.

int QListWidget.row (self, QListWidgetItem item)

Returns the row containing the given item.

See also item().

QListWidget.scrollToItem (self, QListWidgetItem item, QAbstractItemView.ScrollHint hint = QAbstractItemView.EnsureVisible)

This method is also a Qt slot with the C++ signature void scrollToItem(const QListWidgetItem*,QAbstractItemView::ScrollHint = QAbstractItemView.EnsureVisible).

Scrolls the view if necessary to ensure that the item is visible.

hint specifies where the item should be located after the operation.

list-of-QListWidgetItem QListWidget.selectedItems (self)

Returns a list of all selected items in the list widget.

QListWidget.setCurrentItem (self, QListWidgetItem item)

Sets the current item to item.

Unless the selection mode is NoSelection, the item is also be selected.

See also currentItem().

QListWidget.setCurrentItem (self, QListWidgetItem item, QItemSelectionModel.SelectionFlags command)

Set the current item to item, using the given command.

This function was introduced in Qt 4.4.

QListWidget.setCurrentRow (self, int row)

QListWidget.setCurrentRow (self, int row, QItemSelectionModel.SelectionFlags command)

QListWidget.setItemHidden (self, QListWidgetItem item, bool hide)

QListWidget.setItemSelected (self, QListWidgetItem item, bool select)

QListWidget.setItemWidget (self, QListWidgetItem item, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the widget to be displayed in the give item.

This function should only be used to display static content in the place of a list widget item. If you want to display custom dynamic content or implement a custom editor widget, use QListView and subclass QItemDelegate instead.

This function was introduced in Qt 4.1.

See also itemWidget() and Delegate Classes.

QListWidget.setSortingEnabled (self, bool enable)

QListWidget.sortItems (self, Qt.SortOrder order = Qt.AscendingOrder)

Sorts all the items in the list widget according to the specified order.

Qt.DropActions QListWidget.supportedDropActions (self)

Returns the drop actions supported by this view.

See also Qt.DropActions.

QListWidgetItem QListWidget.takeItem (self, int row)

The QListWidgetItem result

Removes and returns the item from the given row in the list widget; otherwise returns 0.

Items removed from a list widget will not be managed by Qt, and will need to be deleted manually.

See also insertItem() and addItem().

QRect QListWidget.visualItemRect (self, QListWidgetItem item)

Returns the rectangle on the viewport occupied by the item at item.

QListWidget.__len__ (self)


Qt Signal Documentation

void currentItemChanged (QListWidgetItem*,QListWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever the current item changes.

previous is the item that previously had the focus; current is the new current item.

void currentRowChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the current item changes.

currentRow is the row of the current item. If there is no current item, the currentRow is -1.

void currentTextChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the current item changes.

currentText is the text data in the current item. If there is no current item, the currentText is invalid.

void itemActivated (QListWidgetItem*)

This is the default overload of this signal.

This signal is emitted when the item is activated. The item is activated when the user clicks or double clicks on it, depending on the system configuration. It is also activated when the user presses the activation key (on Windows and X11 this is the Return key, on Mac OS X it is Ctrl+0).

void itemChanged (QListWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever the data of item has changed.

void itemClicked (QListWidgetItem*)

This is the default overload of this signal.

This signal is emitted with the specified item when a mouse button is clicked on an item in the widget.

See also itemPressed() and itemDoubleClicked().

void itemDoubleClicked (QListWidgetItem*)

This is the default overload of this signal.

This signal is emitted with the specified item when a mouse button is double clicked on an item in the widget.

See also itemClicked() and itemPressed().

void itemEntered (QListWidgetItem*)

This is the default overload of this signal.

This signal is emitted when the mouse cursor enters an item. The item is the item entered. This signal is only emitted when mouseTracking is turned on, or when a mouse button is pressed while moving into an item.

See also QWidget.setMouseTracking().

void itemPressed (QListWidgetItem*)

This is the default overload of this signal.

This signal is emitted with the specified item when a mouse button is pressed on an item in the widget.

See also itemClicked() and itemDoubleClicked().

void itemSelectionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the selection changes.

See also selectedItems(), QListWidgetItem.isSelected(), and currentItemChanged().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlistwidgetitem.html0000644000076500000240000006707412536324507021607 0ustar philstaff00000000000000 QListWidgetItem Class Reference
  Home · All Classes · Modules

QListWidgetItem Class Reference
[QtGui module]

The QListWidgetItem class provides an item for use with the QListWidget item view class. More...

Types

Methods

Special Methods

  • bool __ge__ (self, QListWidgetItem other)
  • bool __lt__ (self, QListWidgetItem other)

Detailed Description

The QListWidgetItem class provides an item for use with the QListWidget item view class.

A QListWidgetItem represents a single item in a QListWidget. Each item can hold several pieces of information, and will display them appropriately.

The item view convenience classes use a classic item-based interface rather than a pure model/view approach. For a more flexible list view widget, consider using the QListView class with a standard model.

List items can be inserted automatically into a list, when they are constructed, by specifying the list widget:

     new QListWidgetItem(tr("Hazel"), listWidget);

Alternatively, list items can also be created without a parent widget, and later inserted into a list using QListWidget.insertItem().

List items are typically used to display text() and an icon(). These are set with the setText() and setIcon() functions. The appearance of the text can be customized with setFont(), setForeground(), and setBackground(). Text in list items can be aligned using the setTextAlignment() function. Tooltips, status tips and "What's This?" help can be added to list items with setToolTip(), setStatusTip(), and setWhatsThis().

By default, items are enabled, selectable, checkable, and can be the source of drag and drop operations.

Each item's flags can be changed by calling setFlags() with the appropriate value (see Qt.ItemFlags). Checkable items can be checked, unchecked and partially checked with the setCheckState() function. The corresponding checkState() function indicates the item's current check state.

The isHidden() function can be used to determine whether the item is hidden. To hide an item, use setHidden().

Subclassing

When subclassing QListWidgetItem to provide custom items, it is possible to define new types for them enabling them to be distinguished from standard items. For subclasses that require this feature, ensure that you call the base class constructor with a new type value equal to or greater than UserType, within your constructor.


Type Documentation

QListWidgetItem.ItemType

This enum describes the types that are used to describe list widget items.

Constant Value Description
QListWidgetItem.Type 0 The default type for list widget items.
QListWidgetItem.UserType 1000 The minimum value for custom types. Values below UserType are reserved by Qt.

You can define new user types in QListWidgetItem subclasses to ensure that custom items are treated specially.

See also type().


Method Documentation

QListWidgetItem.__init__ (self, QListWidget parent = None, int type = QListWidgetItem.Type)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty list widget item of the specified type with the given parent. If parent is not specified, the item will need to be inserted into a list widget with QListWidget.insertItem().

This constructor inserts the item into the model of the parent that is passed to the constructor. If the model is sorted then the behavior of the insert is undetermined since the model will call the '<' operator method on the item which, at this point, is not yet constructed. To avoid the undetermined behavior, we recommend not to specify the parent and use QListWidget.insertItem() instead.

See also type().

QListWidgetItem.__init__ (self, QString text, QListWidget parent = None, int type = QListWidgetItem.Type)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty list widget item of the specified type with the given text and parent. If the parent is not specified, the item will need to be inserted into a list widget with QListWidget.insertItem().

This constructor inserts the item into the model of the parent that is passed to the constructor. If the model is sorted then the behavior of the insert is undetermined since the model will call the '<' operator method on the item which, at this point, is not yet constructed. To avoid the undetermined behavior, we recommend not to specify the parent and use QListWidget.insertItem() instead.

See also type().

QListWidgetItem.__init__ (self, QIcon icon, QString text, QListWidget parent = None, int type = QListWidgetItem.Type)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty list widget item of the specified type with the given icon, text and parent. If the parent is not specified, the item will need to be inserted into a list widget with QListWidget.insertItem().

This constructor inserts the item into the model of the parent that is passed to the constructor. If the model is sorted then the behavior of the insert is undetermined since the model will call the '<' operator method on the item which, at this point, is not yet constructed. To avoid the undetermined behavior, we recommend not to specify the parent and use QListWidget.insertItem() instead.

See also type().

QListWidgetItem.__init__ (self, QListWidgetItem other)

Constructs a copy of other. Note that type() and listWidget() are not copied.

This function is useful when reimplementing clone().

This function was introduced in Qt 4.1.

See also data() and flags().

QBrush QListWidgetItem.background (self)

Returns the brush used to display the list item's background.

This function was introduced in Qt 4.2.

See also setBackground() and foreground().

QColor QListWidgetItem.backgroundColor (self)

Qt.CheckState QListWidgetItem.checkState (self)

Returns the checked state of the list item (see Qt.CheckState).

See also setCheckState() and flags().

QListWidgetItem QListWidgetItem.clone (self)

Creates an exact copy of the item.

QVariant QListWidgetItem.data (self, int role)

Returns the item's data for a given role. Reimplement this function if you need extra roles or special behavior for certain roles.

See also Qt.ItemDataRole and setData().

Qt.ItemFlags QListWidgetItem.flags (self)

Returns the item flags for this item (see Qt.ItemFlags).

See also setFlags().

QFont QListWidgetItem.font (self)

Returns the font used to display this list item's text.

See also setFont().

QBrush QListWidgetItem.foreground (self)

Returns the brush used to display the list item's foreground (e.g. text).

This function was introduced in Qt 4.2.

See also setForeground() and background().

QIcon QListWidgetItem.icon (self)

Returns the list item's icon.

See also setIcon() and iconSize.

bool QListWidgetItem.isHidden (self)

Returns true if the item is hidden; otherwise returns false.

This function was introduced in Qt 4.2.

See also setHidden().

bool QListWidgetItem.isSelected (self)

Returns true if the item is selected; otherwise returns false.

This function was introduced in Qt 4.2.

See also setSelected().

QListWidget QListWidgetItem.listWidget (self)

Returns the list widget containing the item.

QListWidgetItem.read (self, QDataStream in)

Reads the item from stream in.

See also write().

QListWidgetItem.setBackground (self, QBrush brush)

Sets the background brush of the list item to the given brush.

This function was introduced in Qt 4.2.

See also background() and setForeground().

QListWidgetItem.setBackgroundColor (self, QColor color)

QListWidgetItem.setCheckState (self, Qt.CheckState state)

Sets the check state of the list item to state.

See also checkState().

QListWidgetItem.setData (self, int role, QVariant value)

Sets the data for a given role to the given value. Reimplement this function if you need extra roles or special behavior for certain roles.

See also Qt.ItemDataRole and data().

QListWidgetItem.setFlags (self, Qt.ItemFlags aflags)

Sets the item flags for the list item to flags.

See also flags() and Qt.ItemFlags.

QListWidgetItem.setFont (self, QFont afont)

Sets the font used when painting the item to the given font.

See also font().

QListWidgetItem.setForeground (self, QBrush brush)

Sets the foreground brush of the list item to the given brush.

This function was introduced in Qt 4.2.

See also foreground() and setBackground().

QListWidgetItem.setHidden (self, bool ahide)

Hides the item if hide is true; otherwise shows the item.

This function was introduced in Qt 4.2.

See also isHidden().

QListWidgetItem.setIcon (self, QIcon aicon)

Sets the icon for the list item to the given icon.

See also icon(), text(), and iconSize.

QListWidgetItem.setSelected (self, bool aselect)

Sets the selected state of the item to select.

This function was introduced in Qt 4.2.

See also isSelected().

QListWidgetItem.setSizeHint (self, QSize size)

Sets the size hint for the list item to be size. If no size hint is set, the item delegate will compute the size hint based on the item data.

This function was introduced in Qt 4.1.

See also sizeHint().

QListWidgetItem.setStatusTip (self, QString astatusTip)

Sets the status tip for the list item to the text specified by statusTip. QListWidget mouseTracking needs to be enabled for this feature to work.

See also statusTip(), setToolTip(), setWhatsThis(), and QWidget.setMouseTracking().

QListWidgetItem.setText (self, QString atext)

Sets the text for the list widget item's to the given text.

See also text().

QListWidgetItem.setTextAlignment (self, int alignment)

Sets the list item's text alignment to alignment.

See also textAlignment() and Qt.AlignmentFlag.

QListWidgetItem.setTextColor (self, QColor color)

QListWidgetItem.setToolTip (self, QString atoolTip)

Sets the tooltip for the list item to the text specified by toolTip.

See also toolTip(), setStatusTip(), and setWhatsThis().

QListWidgetItem.setWhatsThis (self, QString awhatsThis)

Sets the "What's This?" help for the list item to the text specified by whatsThis.

See also whatsThis(), setStatusTip(), and setToolTip().

QSize QListWidgetItem.sizeHint (self)

Returns the size hint set for the list item.

This function was introduced in Qt 4.1.

See also setSizeHint().

QString QListWidgetItem.statusTip (self)

Returns the list item's status tip.

See also setStatusTip().

QString QListWidgetItem.text (self)

Returns the list item's text.

See also setText().

int QListWidgetItem.textAlignment (self)

Returns the text alignment for the list item.

See also setTextAlignment() and Qt.AlignmentFlag.

QColor QListWidgetItem.textColor (self)

QString QListWidgetItem.toolTip (self)

Returns the list item's tooltip.

See also setToolTip(), statusTip(), and whatsThis().

int QListWidgetItem.type (self)

Returns the type passed to the QListWidgetItem constructor.

QString QListWidgetItem.whatsThis (self)

Returns the list item's "What's This?" help text.

See also setWhatsThis(), statusTip(), and toolTip().

QListWidgetItem.write (self, QDataStream out)

Writes the item to stream out.

See also read().

bool QListWidgetItem.__ge__ (self, QListWidgetItem other)

bool QListWidgetItem.__lt__ (self, QListWidgetItem other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlocale-numberoptions.html0000644000076500000240000001424612536324473022705 0ustar philstaff00000000000000 QLocale.NumberOptions Class Reference
  Home · All Classes · Modules

QLocale.NumberOptions Class Reference
[QtCore module]

Methods

Special Methods

  • NumberOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, NumberOptions f)
  • NumberOptions __iand__ (self, int mask)
  • int __int__ (self)
  • NumberOptions __invert__ (self)
  • NumberOptions __ior__ (self, NumberOptions f)
  • NumberOptions __ixor__ (self, NumberOptions f)
  • bool __ne__ (self, NumberOptions f)
  • NumberOptions __or__ (self, NumberOptions f)
  • NumberOptions __or__ (self, int f)
  • NumberOptions __xor__ (self, NumberOptions f)
  • NumberOptions __xor__ (self, int f)

Detailed Description

NumberOption may be used whenever NumberOptions is expected.


Method Documentation

NumberOptions.__init__ (self, NumberOptions)

NumberOptions.__init__ (self, int)

NumberOptions.__init__ (self)

NumberOptions NumberOptions.__and__ (self, int mask)

int NumberOptions.__bool__ (self)

bool NumberOptions.__eq__ (self, NumberOptions f)

NumberOptions NumberOptions.__iand__ (self, int mask)

int NumberOptions.__int__ (self)

NumberOptions NumberOptions.__invert__ (self)

NumberOptions NumberOptions.__ior__ (self, NumberOptions f)

NumberOptions NumberOptions.__ixor__ (self, NumberOptions f)

bool NumberOptions.__ne__ (self, NumberOptions f)

NumberOptions NumberOptions.__or__ (self, NumberOptions f)

NumberOptions NumberOptions.__or__ (self, int f)

NumberOptions NumberOptions.__xor__ (self, NumberOptions f)

NumberOptions NumberOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlocale.html0000644000076500000240000037001312536324473020000 0ustar philstaff00000000000000 QLocale Class Reference
  Home · All Classes · Modules

QLocale Class Reference
[QtCore module]

The QLocale class converts between numbers and their string representations in various languages. More...

Types

  • enum Country { AnyCountry, Afghanistan, Albania, Algeria, ..., LastCountry }
  • enum CurrencySymbolFormat { CurrencyIsoCode, CurrencySymbol, CurrencyDisplayName }
  • enum FormatType { LongFormat, ShortFormat, NarrowFormat }
  • enum Language { C, Abkhazian, Afan, Afar, ..., AnyLanguage }
  • enum MeasurementSystem { MetricSystem, ImperialSystem }
  • enum NumberOption { OmitGroupSeparator, RejectGroupSeparator }
  • enum QuotationStyle { StandardQuotation, AlternateQuotation }
  • enum Script { AnyScript, ArabicScript, CyrillicScript, DeseretScript, ..., TraditionalChineseScript }

Methods

  • __init__ (self)
  • __init__ (self, QString name)
  • __init__ (self, Language language, Country country = QLocale.AnyCountry)
  • __init__ (self, QLocale other)
  • __init__ (self, Language language, Script script, Country country)
  • QString amText (self)
  • QString bcp47Name (self)
  • Country country (self)
  • QString createSeparatedList (self, QStringList list)
  • QString currencySymbol (self, CurrencySymbolFormat format = QLocale.CurrencySymbol)
  • QString dateFormat (self, FormatType format = QLocale.LongFormat)
  • QString dateTimeFormat (self, FormatType format = QLocale.LongFormat)
  • QString dayName (self, int, FormatType format = QLocale.LongFormat)
  • QChar decimalPoint (self)
  • QChar exponential (self)
  • Qt.DayOfWeek firstDayOfWeek (self)
  • QChar groupSeparator (self)
  • Language language (self)
  • MeasurementSystem measurementSystem (self)
  • QString monthName (self, int, FormatType format = QLocale.LongFormat)
  • QString name (self)
  • QString nativeCountryName (self)
  • QString nativeLanguageName (self)
  • QChar negativeSign (self)
  • NumberOptions numberOptions (self)
  • QChar percent (self)
  • QString pmText (self)
  • QChar positiveSign (self)
  • QString quoteString (self, QString str, QuotationStyle style = QLocale.StandardQuotation)
  • Script script (self)
  • setNumberOptions (self, NumberOptions options)
  • QString standaloneDayName (self, int, FormatType format = QLocale.LongFormat)
  • QString standaloneMonthName (self, int, FormatType format = QLocale.LongFormat)
  • Qt.LayoutDirection textDirection (self)
  • QString timeFormat (self, FormatType format = QLocale.LongFormat)
  • QString toCurrencyString (self, int value, QString symbol = QString())
  • QString toCurrencyString (self, float value, QString symbol = QString())
  • QString toCurrencyString (self, int value, QString symbol = QString())
  • QString toCurrencyString (self, int value, QString symbol = QString())
  • QDate toDate (self, QString string, FormatType format = QLocale.LongFormat)
  • QDate toDate (self, QString string, QString format)
  • QDateTime toDateTime (self, QString string, FormatType format = QLocale.LongFormat)
  • QDateTime toDateTime (self, QString string, QString format)
  • (float, bool ok) toDouble (self, QString s)
  • (float, bool ok) toFloat (self, QString s)
  • (int, bool ok) toInt (self, QString s, int base = 0)
  • (int, bool ok) toLongLong (self, QString s, int base = 0)
  • QString toLower (self, QString str)
  • (int, bool ok) toShort (self, QString s, int base = 0)
  • QString toString (self, int i)
  • QString toString (self, float i, str format = 'g', int precision = 6)
  • QString toString (self, int i)
  • QString toString (self, int i)
  • QString toString (self, QDateTime dateTime, QString format)
  • QString toString (self, QDateTime dateTime, FormatType format = QLocale.LongFormat)
  • QString toString (self, QDate date, QString formatStr)
  • QString toString (self, QDate date, FormatType format = QLocale.LongFormat)
  • QString toString (self, QTime time, QString formatStr)
  • QString toString (self, QTime time, FormatType format = QLocale.LongFormat)
  • QTime toTime (self, QString string, FormatType format = QLocale.LongFormat)
  • QTime toTime (self, QString string, QString format)
  • (int, bool ok) toUInt (self, QString s, int base = 0)
  • (int, bool ok) toULongLong (self, QString s, int base = 0)
  • QString toUpper (self, QString str)
  • (int, bool ok) toUShort (self, QString s, int base = 0)
  • QStringList uiLanguages (self)
  • list-of-Qt.DayOfWeek weekdays (self)
  • QChar zeroDigit (self)

Static Methods

Special Methods

  • bool __eq__ (self, QLocale other)
  • bool __ne__ (self, QLocale other)

Detailed Description

The QLocale class converts between numbers and their string representations in various languages.

QLocale is initialized with a language/country pair in its constructor and offers number-to-string and string-to-number conversion functions similar to those in QString.

Example:

 QLocale egyptian(QLocale.Arabic, QLocale.Egypt);
 QString s1 = egyptian.toString(1.571429E+07, 'e');
 QString s2 = egyptian.toString(10);

 double d = egyptian.toDouble(s1);
 int i = egyptian.toInt(s2);

QLocale supports the concept of a default locale, which is determined from the system's locale settings at application startup. The default locale can be changed by calling the static member setDefault(). Setting the default locale has the following effects:

  • If a QLocale object is constructed with the default constructor, it will use the default locale's settings.
  • QString.toInt(), QString.toDouble(), etc., interpret the string according to the default locale. If this fails, it falls back on the "C" locale.
  • QString.arg() uses the default locale to format a number when its position specifier in the format string contains an 'L', e.g. "%L1".

The following example illustrates how to use QLocale directly:

 QLocale.setDefault(QLocale(QLocale.Hebrew, QLocale.Israel));
 QLocale hebrew; // Constructs a default QLocale
 QString s1 = hebrew.toString(15714.3, 'e');

 bool ok;
 double d;

 QLocale.setDefault(QLocale.C);
 d = QString("1234,56").toDouble(&ok);   // ok == false
 d = QString("1234.56").toDouble(&ok);   // ok == true, d == 1234.56

 QLocale.setDefault(QLocale.German);
 d = QString("1234,56").toDouble(&ok);   // ok == true, d == 1234.56
 d = QString("1234.56").toDouble(&ok);   // ok == true, d == 1234.56

 QLocale.setDefault(QLocale(QLocale.English, QLocale.UnitedStates));
 str = QString("%1 %L2 %L3")
       .arg(12345).arg(12345).arg(12345, 0, 16);
 // str == "12345 12,345 3039"

When a language/country pair is specified in the constructor, one of three things can happen:

  • If the language/country pair is found in the database, it is used.
  • If the language is found but the country is not, or if the country is AnyCountry, the language is used with the most appropriate available country (for example, Germany for German),
  • If neither the language nor the country are found, QLocale defaults to the default locale (see setDefault()).

Use language() and country() to determine the actual language and country values used.

An alternative method for constructing a QLocale object is by specifying the locale name.

 QLocale korean("ko");
 QLocale swiss("de_CH");

This constructor converts the locale name to a language/country pair; it does not use the system locale database.

Note: For the current keyboard input locale take a look at QApplication.keyboardInputLocale().

QLocale's data is based on Common Locale Data Repository v2.0.

The double-to-string and string-to-double conversion functions are covered by the following licenses:

Copyright (c) 1991 by AT&T.

Permission to use, copy, modify, and distribute this software for any purpose without fee is hereby granted, provided that this entire notice is included in all copies of any software which is or includes a copy or modification of this software and in all copies of the supporting documentation for such software.

THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.

This product includes software developed by the University of California, Berkeley and its contributors.


Type Documentation

QLocale.Country

This enumerated type is used to specify a country.

Constant Value
QLocale.AnyCountry 0
QLocale.Afghanistan 1
QLocale.Albania 2
QLocale.Algeria 3
QLocale.AmericanSamoa 4
QLocale.Andorra 5
QLocale.Angola 6
QLocale.Anguilla 7
QLocale.Antarctica 8
QLocale.AntiguaAndBarbuda 9
QLocale.Argentina 10
QLocale.Armenia 11
QLocale.Aruba 12
QLocale.Australia 13
QLocale.Austria 14
QLocale.Azerbaijan 15
QLocale.Bahamas 16
QLocale.Bahrain 17
QLocale.Bangladesh 18
QLocale.Barbados 19
QLocale.Belarus 20
QLocale.Belgium 21
QLocale.Belize 22
QLocale.Benin 23
QLocale.Bermuda 24
QLocale.Bhutan 25
QLocale.Bolivia 26
QLocale.BosniaAndHerzegowina 27
QLocale.Botswana 28
QLocale.BouvetIsland 29
QLocale.Brazil 30
QLocale.BritishIndianOceanTerritory 31
QLocale.BruneiDarussalam 32
QLocale.Bulgaria 33
QLocale.BurkinaFaso 34
QLocale.Burundi 35
QLocale.Cambodia 36
QLocale.Cameroon 37
QLocale.Canada 38
QLocale.CapeVerde 39
QLocale.CaymanIslands 40
QLocale.CentralAfricanRepublic 41
QLocale.Chad 42
QLocale.Chile 43
QLocale.China 44
QLocale.ChristmasIsland 45
QLocale.CocosIslands 46
QLocale.Colombia 47
QLocale.Comoros 48
QLocale.DemocraticRepublicOfCongo 49
QLocale.PeoplesRepublicOfCongo 50
QLocale.CookIslands 51
QLocale.CostaRica 52
QLocale.IvoryCoast 53
QLocale.Croatia 54
QLocale.Cuba 55
QLocale.Cyprus 56
QLocale.CzechRepublic 57
QLocale.Denmark 58
QLocale.Djibouti 59
QLocale.Dominica 60
QLocale.DominicanRepublic 61
QLocale.EastTimor 62
QLocale.Ecuador 63
QLocale.Egypt 64
QLocale.ElSalvador 65
QLocale.EquatorialGuinea 66
QLocale.Eritrea 67
QLocale.Estonia 68
QLocale.Ethiopia 69
QLocale.FalklandIslands 70
QLocale.FaroeIslands 71
QLocale.FijiCountry 72
QLocale.Finland 73
QLocale.France 74
QLocale.MetropolitanFrance 75
QLocale.FrenchGuiana 76
QLocale.FrenchPolynesia 77
QLocale.FrenchSouthernTerritories 78
QLocale.Gabon 79
QLocale.Gambia 80
QLocale.Georgia 81
QLocale.Germany 82
QLocale.Ghana 83
QLocale.Gibraltar 84
QLocale.Greece 85
QLocale.Greenland 86
QLocale.Grenada 87
QLocale.Guadeloupe 88
QLocale.Guam 89
QLocale.Guatemala 90
QLocale.Guinea 91
QLocale.GuineaBissau 92
QLocale.Guyana 93
QLocale.Haiti 94
QLocale.HeardAndMcDonaldIslands 95
QLocale.Honduras 96
QLocale.HongKong 97
QLocale.Hungary 98
QLocale.Iceland 99
QLocale.India 100
QLocale.Indonesia 101
QLocale.Iran 102
QLocale.Iraq 103
QLocale.Ireland 104
QLocale.Israel 105
QLocale.Italy 106
QLocale.Jamaica 107
QLocale.Japan 108
QLocale.Jordan 109
QLocale.Kazakhstan 110
QLocale.Kenya 111
QLocale.Kiribati 112
QLocale.DemocraticRepublicOfKorea 113
QLocale.RepublicOfKorea 114
QLocale.Kuwait 115
QLocale.Kyrgyzstan 116
QLocale.Lao 117
QLocale.Latvia 118
QLocale.Lebanon 119
QLocale.Lesotho 120
QLocale.Liberia 121
QLocale.LibyanArabJamahiriya 122
QLocale.Liechtenstein 123
QLocale.Lithuania 124
QLocale.Luxembourg 125
QLocale.Macau 126
QLocale.Macedonia 127
QLocale.Madagascar 128
QLocale.Malawi 129
QLocale.Malaysia 130
QLocale.Maldives 131
QLocale.Mali 132
QLocale.Malta 133
QLocale.MarshallIslands 134
QLocale.Martinique 135
QLocale.Mauritania 136
QLocale.Mauritius 137
QLocale.Mayotte 138
QLocale.Mexico 139
QLocale.Micronesia 140
QLocale.Moldova 141
QLocale.Monaco 142
QLocale.Mongolia 143
QLocale.Montserrat 144
QLocale.Morocco 145
QLocale.Mozambique 146
QLocale.Myanmar 147
QLocale.Namibia 148
QLocale.NauruCountry 149
QLocale.Nepal 150
QLocale.Netherlands 151
QLocale.NetherlandsAntilles 152
QLocale.NewCaledonia 153
QLocale.NewZealand 154
QLocale.Nicaragua 155
QLocale.Niger 156
QLocale.Nigeria 157
QLocale.Niue 158
QLocale.NorfolkIsland 159
QLocale.NorthernMarianaIslands 160
QLocale.Norway 161
QLocale.Oman 162
QLocale.Pakistan 163
QLocale.Palau 164
QLocale.PalestinianTerritory 165
QLocale.Panama 166
QLocale.PapuaNewGuinea 167
QLocale.Paraguay 168
QLocale.Peru 169
QLocale.Philippines 170
QLocale.Pitcairn 171
QLocale.Poland 172
QLocale.Portugal 173
QLocale.PuertoRico 174
QLocale.Qatar 175
QLocale.Reunion 176
QLocale.Romania 177
QLocale.RussianFederation 178
QLocale.Rwanda 179
QLocale.SaintKittsAndNevis 180
QLocale.StLucia 181
QLocale.StVincentAndTheGrenadines 182
QLocale.Samoa 183
QLocale.SanMarino 184
QLocale.SaoTomeAndPrincipe 185
QLocale.SaudiArabia 186
QLocale.Senegal 187
QLocale.SerbiaAndMontenegro 241
QLocale.Seychelles 188
QLocale.SierraLeone 189
QLocale.Singapore 190
QLocale.Slovakia 191
QLocale.Slovenia 192
QLocale.SolomonIslands 193
QLocale.Somalia 194
QLocale.SouthAfrica 195
QLocale.SouthGeorgiaAndTheSouthSandwichIslands 196
QLocale.Spain 197
QLocale.SriLanka 198
QLocale.StHelena 199
QLocale.StPierreAndMiquelon 200
QLocale.Sudan 201
QLocale.Suriname 202
QLocale.SvalbardAndJanMayenIslands 203
QLocale.Swaziland 204
QLocale.Sweden 205
QLocale.Switzerland 206
QLocale.SyrianArabRepublic 207
QLocale.Taiwan 208
QLocale.Tajikistan 209
QLocale.Tanzania 210
QLocale.Thailand 211
QLocale.Togo 212
QLocale.Tokelau 213
QLocale.TongaCountry 214
QLocale.TrinidadAndTobago 215
QLocale.Tunisia 216
QLocale.Turkey 217
QLocale.Turkmenistan 218
QLocale.TurksAndCaicosIslands 219
QLocale.Tuvalu 220
QLocale.Uganda 221
QLocale.Ukraine 222
QLocale.UnitedArabEmirates 223
QLocale.UnitedKingdom 224
QLocale.UnitedStates 225
QLocale.UnitedStatesMinorOutlyingIslands 226
QLocale.Uruguay 227
QLocale.Uzbekistan 228
QLocale.Vanuatu 229
QLocale.VaticanCityState 230
QLocale.Venezuela 231
QLocale.VietNam 232
QLocale.BritishVirginIslands 233
QLocale.USVirginIslands 234
QLocale.WallisAndFutunaIslands 235
QLocale.WesternSahara 236
QLocale.Yemen 237
QLocale.Yugoslavia 238
QLocale.Zambia 239
QLocale.Zimbabwe 240
QLocale.Montenegro 242
QLocale.Serbia 243
QLocale.SaintBarthelemy 244
QLocale.SaintMartin 245
QLocale.LatinAmericaAndTheCaribbean 246

See also country() and countryToString().

QLocale.CurrencySymbolFormat

Specifies the format of the currency symbol.

Constant Value Description
QLocale.CurrencyIsoCode 0 a ISO-4217 code of the currency.
QLocale.CurrencySymbol 1 a currency symbol.
QLocale.CurrencyDisplayName 2 a user readable name of the currency.

This enum was introduced or modified in Qt 4.8.

QLocale.FormatType

This enum describes the types of format that can be used when converting QDate and QTime objects to strings.

Constant Value Description
QLocale.LongFormat 0 The long version of day and month names; for example, returning "January" as a month name.
QLocale.ShortFormat 1 The short version of day and month names; for example, returning "Jan" as a month name.
QLocale.NarrowFormat 2 A special version of day and month names for use when space is limited; for example, returning "J" as a month name. Note that the narrow format might contain the same text for different months and days or it can even be an empty string if the locale doesn't support narrow names, so you should avoid using it for date formatting. Also, for the system locale this format is the same as ShortFormat.

QLocale.Language

This enumerated type is used to specify a language.

Constant Value Description
QLocale.AnyLanguage 0  
QLocale.C 1 The "C" locale is identical in behavior to English/UnitedStates.
QLocale.Abkhazian 2  
QLocale.Afan 3  
QLocale.Afar 4  
QLocale.Afrikaans 5  
QLocale.Albanian 6  
QLocale.Amharic 7  
QLocale.Arabic 8  
QLocale.Armenian 9  
QLocale.Assamese 10  
QLocale.Aymara 11  
QLocale.Azerbaijani 12  
QLocale.Bashkir 13  
QLocale.Basque 14  
QLocale.Bengali 15  
QLocale.Bhutani 16  
QLocale.Bihari 17  
QLocale.Bislama 18  
QLocale.Bosnian 142  
QLocale.Breton 19  
QLocale.Bulgarian 20  
QLocale.Burmese 21  
QLocale.Byelorussian 22  
QLocale.Cambodian 23  
QLocale.Catalan 24  
QLocale.Chinese 25  
QLocale.Cornish 145  
QLocale.Corsican 26  
QLocale.Croatian 27  
QLocale.Czech 28  
QLocale.Danish 29  
QLocale.Divehi 143  
QLocale.Dutch 30  
QLocale.English 31  
QLocale.Esperanto 32  
QLocale.Estonian 33  
QLocale.Faroese 34  
QLocale.FijiLanguage 35  
QLocale.Finnish 36  
QLocale.French 37  
QLocale.Frisian 38  
QLocale.Gaelic 39  
QLocale.Galician 40  
QLocale.Georgian 41  
QLocale.German 42  
QLocale.Greek 43  
QLocale.Greenlandic 44  
QLocale.Guarani 45  
QLocale.Gujarati 46  
QLocale.Hausa 47  
QLocale.Hebrew 48  
QLocale.Hindi 49  
QLocale.Hungarian 50  
QLocale.Icelandic 51  
QLocale.Indonesian 52  
QLocale.Interlingua 53  
QLocale.Interlingue 54  
QLocale.Inuktitut 55  
QLocale.Inupiak 56  
QLocale.Irish 57  
QLocale.Italian 58  
QLocale.Japanese 59  
QLocale.Javanese 60  
QLocale.Kannada 61  
QLocale.Kashmiri 62  
QLocale.Kazakh 63  
QLocale.Kinyarwanda 64  
QLocale.Kirghiz 65  
QLocale.Korean 66  
QLocale.Kurdish 67  
QLocale.Kurundi Rundi  
QLocale.Laothian 69  
QLocale.Latin 70  
QLocale.Latvian 71  
QLocale.Lingala 72  
QLocale.Lithuanian 73  
QLocale.Macedonian 74  
QLocale.Malagasy 75  
QLocale.Malay 76  
QLocale.Malayalam 77  
QLocale.Maltese 78  
QLocale.Manx 144  
QLocale.Maori 79  
QLocale.Marathi 80  
QLocale.Moldavian 81  
QLocale.Mongolian 82  
QLocale.NauruLanguage 83  
QLocale.Nepali 84  
QLocale.Norwegian 85  
QLocale.NorwegianBokmal Norwegian  
QLocale.Nynorsk 141 Obsolete, please use NorwegianNynorsk
QLocale.NorwegianNynorsk Nynorsk  
QLocale.Occitan 86  
QLocale.Oriya 87  
QLocale.Pashto 88  
QLocale.Persian 89  
QLocale.Polish 90  
QLocale.Portuguese 91  
QLocale.Punjabi 92  
QLocale.Quechua 93  
QLocale.RhaetoRomance 94  
QLocale.Romanian 95  
QLocale.Russian 96  
QLocale.Samoan 97  
QLocale.Sangho 98  
QLocale.Sanskrit 99  
QLocale.Serbian 100  
QLocale.SerboCroatian 101  
QLocale.Sesotho 102  
QLocale.Setswana 103  
QLocale.Shona 104  
QLocale.Sindhi 105  
QLocale.Singhalese 106  
QLocale.Siswati 107  
QLocale.Slovak 108  
QLocale.Slovenian 109  
QLocale.Somali 110  
QLocale.Spanish 111  
QLocale.Sundanese 112  
QLocale.Swahili 113  
QLocale.Swedish 114  
QLocale.Tagalog 115  
QLocale.Tajik 116  
QLocale.Tamil 117  
QLocale.Tatar 118  
QLocale.Telugu 119  
QLocale.Thai 120  
QLocale.Tibetan 121  
QLocale.Tigrinya 122  
QLocale.TongaLanguage 123  
QLocale.Tsonga 124  
QLocale.Turkish 125  
QLocale.Turkmen 126  
QLocale.Twi 127  
QLocale.Uigur 128  
QLocale.Ukrainian 129  
QLocale.Urdu 130  
QLocale.Uzbek 131  
QLocale.Vietnamese 132  
QLocale.Volapuk 133  
QLocale.Welsh 134  
QLocale.Wolof 135  
QLocale.Xhosa 136  
QLocale.Yiddish 137  
QLocale.Yoruba 138  
QLocale.Zhuang 139  
QLocale.Zulu 140  
QLocale.Bosnian 142  
QLocale.Divehi 143  
QLocale.Manx 144  
QLocale.Cornish 145  
QLocale.Akan 146  
QLocale.Konkani 147  
QLocale.Ga 148  
QLocale.Igbo 149  
QLocale.Kamba 150  
QLocale.Syriac 151  
QLocale.Blin 152  
QLocale.Geez 153  
QLocale.Koro 154  
QLocale.Sidamo 155  
QLocale.Atsam 156  
QLocale.Tigre 157  
QLocale.Jju 158  
QLocale.Friulian 159  
QLocale.Venda 160  
QLocale.Ewe 161  
QLocale.Walamo 162  
QLocale.Hawaiian 163  
QLocale.Tyap 164  
QLocale.Chewa 165  
QLocale.Filipino 166  
QLocale.SwissGerman 167  
QLocale.SichuanYi 168  
QLocale.Kpelle 169  
QLocale.LowGerman 170  
QLocale.SouthNdebele 171  
QLocale.NorthernSotho 172  
QLocale.NorthernSami 173  
QLocale.Taroko 174  
QLocale.Gusii 175  
QLocale.Taita 176  
QLocale.Fulah 177  
QLocale.Kikuyu 178  
QLocale.Samburu 179  
QLocale.Sena 180  
QLocale.NorthNdebele 181  
QLocale.Rombo 182  
QLocale.Tachelhit 183  
QLocale.Kabyle 184  
QLocale.Nyankole 185  
QLocale.Bena 186  
QLocale.Vunjo 187  
QLocale.Bambara 188  
QLocale.Embu 189  
QLocale.Cherokee 190  
QLocale.Morisyen 191  
QLocale.Makonde 192  
QLocale.Langi 193  
QLocale.Ganda 194  
QLocale.Bemba 195  
QLocale.Kabuverdianu 196  
QLocale.Meru 197  
QLocale.Kalenjin 198  
QLocale.Nama 199  
QLocale.Machame 200  
QLocale.Colognian 201  
QLocale.Masai 202  
QLocale.Soga 203  
QLocale.Luyia 204  
QLocale.Asu 205  
QLocale.Teso 206  
QLocale.Saho 207  
QLocale.KoyraChiini 208  
QLocale.Rwa 209  
QLocale.Luo 210  
QLocale.Chiga 211  
QLocale.CentralMoroccoTamazight 212  
QLocale.KoyraboroSenni 213  
QLocale.Shambala 214  

See also language() and languageToString().

QLocale.MeasurementSystem

This enum defines which units are used for measurement.

Constant Value Description
QLocale.MetricSystem 0 This value indicates metric units, such as meters, centimeters and millimeters.
QLocale.ImperialSystem 1 This value indicates imperial units, such as inches and miles. There are several distinct imperial systems in the world; this value stands for the official United States imperial units.

This enum was introduced or modified in Qt 4.4.

QLocale.NumberOption

This enum defines a set of options for number-to-string and string-to-number conversions. They can be retrieved with numberOptions() and set with setNumberOptions().

Constant Value Description
QLocale.OmitGroupSeparator 0x01 If this option is set, the number-to-string functions will not insert group separators in their return values. The default is to insert group separators.
QLocale.RejectGroupSeparator 0x02 If this option is set, the string-to-number functions will fail if they encounter group separators in their input. The default is to accept numbers containing correctly placed group separators.

The NumberOptions type is a typedef for QFlags<NumberOption>. It stores an OR combination of NumberOption values.

See also setNumberOptions() and numberOptions().

QLocale.QuotationStyle

This enum defines a set of possible styles for locale specific quotation.

Constant Value Description
QLocale.StandardQuotation 0 If this option is set, the standard quotation marks will be used to quote strings.
QLocale.AlternateQuotation 1 If this option is set, the alternate quotation marks will be used to quote strings.

This enum was introduced or modified in Qt 4.8.

See also quoteString().

QLocale.Script

This enumerated type is used to specify a script.

Constant Value Description
QLocale.AnyScript 0  
QLocale.ArabicScript 1  
QLocale.CyrillicScript 2  
QLocale.DeseretScript 3  
QLocale.GurmukhiScript 4  
QLocale.SimplifiedHanScript 5 same as SimplifiedChineseScript
QLocale.SimplifiedChineseScript SimplifiedHanScript same as SimplifiedHanScript
QLocale.TraditionalHanScript 6 same as TraditionalChineseScript
QLocale.TraditionalChineseScript TraditionalHanScript same as TraditionalHanScript
QLocale.LatinScript 7  
QLocale.MongolianScript 8  
QLocale.TifinaghScript 9  

This enum was introduced or modified in Qt 4.8.

See also script(), scriptToString(), and languageToString().


Method Documentation

QLocale.__init__ (self)

Constructs a QLocale object initialized with the default locale. If no default locale was set using setDefaultLocale(), this locale will be the same as the one returned by system().

See also setDefault().

QLocale.__init__ (self, QString name)

Constructs a QLocale object with the specified name, which has the format "language[_script][_country][.codeset][@modifier]" or "C", where:

  • language is a lowercase, two-letter, ISO 639 language code,
  • script is a titlecase, four-letter, ISO 15924 script code,
  • country is an uppercase, two- or three-letter, ISO 3166 country code (also "419" as defined by United Nations),
  • and codeset and modifier are ignored.

The separator can be either underscore or a minus sign.

If the string violates the locale format, or language is not a valid ISO 369 code, the "C" locale is used instead. If country is not present, or is not a valid ISO 3166 code, the most appropriate country is chosen for the specified language.

The language, script and country codes are converted to their respective Language, Script and Country enums. After this conversion is performed the constructor behaves exactly like QLocale(Country, Script, Language).

This constructor is much slower than QLocale(Country, Script, Language).

See also bcp47Name().

QLocale.__init__ (self, Language language, Country country = QLocale.AnyCountry)

Constructs a QLocale object with the specified language and country.

  • If the language/country pair is found in the database, it is used.
  • If the language is found but the country is not, or if the country is AnyCountry, the language is used with the most appropriate available country (for example, Germany for German),
  • If neither the language nor the country are found, QLocale defaults to the default locale (see setDefault()).

The language and country that are actually used can be queried using language() and country().

See also setDefault(), language(), and country().

QLocale.__init__ (self, QLocale other)

Constructs a QLocale object with the specified language, script and country.

  • If the language/script/country is found in the database, it is used.
  • If both script is AnyScript and country is AnyCountry, the language is used with the most appropriate available script and country (for example, Germany for German),
  • If either script is AnyScript or country is AnyCountry, the language is used with the first locale that matches the given script and country.
  • If neither the language nor the country are found, QLocale defaults to the default locale (see setDefault()).

The language, script and country that are actually used can be queried using language(), script() and country().

This function was introduced in Qt 4.8.

See also setDefault(), language(), script(), and country().

QLocale.__init__ (self, Language language, Script script, Country country)

Constructs a QLocale object as a copy of other.

QString QLocale.amText (self)

Returns the localized name of the "AM" suffix for times specified using the conventions of the 12-hour clock.

This function was introduced in Qt 4.5.

See also pmText().

QString QLocale.bcp47Name (self)

Returns the dash-separated language, script and country (and possibly other BCP47 fields) of this locale as a string.

Unlike the uiLanguages() the returned value of the bcp47Name() represents the locale name of the QLocale data but not the language the user-interface should be in.

This function tries to conform the locale name to BCP47.

This function was introduced in Qt 4.8.

See also language(), country(), script(), and uiLanguages().

QLocale QLocale.c ()

Returns a QLocale object initialized to the "C" locale.

See also system().

list-of-QLocale.Country QLocale.countriesForLanguage (Language lang)

Country QLocale.country (self)

Returns the country of this locale.

See also language(), script(), countryToString(), and bcp47Name().

QString QLocale.countryToString (Country country)

Returns a QString containing the name of country.

See also languageToString(), scriptToString(), country(), and bcp47Name().

QString QLocale.createSeparatedList (self, QStringList list)

Returns a string that represents a join of a given list of strings with a separator defined by the locale.

This function was introduced in Qt 4.8.

QString QLocale.currencySymbol (self, CurrencySymbolFormat format = QLocale.CurrencySymbol)

Returns a currency symbol according to the format.

This function was introduced in Qt 4.8.

QString QLocale.dateFormat (self, FormatType format = QLocale.LongFormat)

Returns the date format used for the current locale.

If format is LongFormat the format will be a long version. Otherwise it uses a shorter version.

This function was introduced in Qt 4.1.

See also QDate.toString() and QDate.fromString().

QString QLocale.dateTimeFormat (self, FormatType format = QLocale.LongFormat)

Returns the date time format used for the current locale.

If format is ShortFormat the format will be a short version. Otherwise it uses a longer version.

This function was introduced in Qt 4.4.

See also QDateTime.toString() and QDateTime.fromString().

QString QLocale.dayName (self, int, FormatType format = QLocale.LongFormat)

Returns the localized name of the day (where 1 represents Monday, 2 represents Tuesday and so on), in the format specified by type.

This function was introduced in Qt 4.2.

See also monthName() and standaloneDayName().

QChar QLocale.decimalPoint (self)

Returns the decimal point character of this locale.

This function was introduced in Qt 4.1.

QChar QLocale.exponential (self)

Returns the exponential character of this locale.

This function was introduced in Qt 4.1.

Qt.DayOfWeek QLocale.firstDayOfWeek (self)

Returns the first day of the week according to the current locale.

This function was introduced in Qt 4.8.

QChar QLocale.groupSeparator (self)

Returns the group separator character of this locale.

This function was introduced in Qt 4.1.

Language QLocale.language (self)

Returns the language of this locale.

See also script(), country(), languageToString(), and bcp47Name().

QString QLocale.languageToString (Language language)

Returns a QString containing the name of language.

See also countryToString(), scriptToString(), and bcp47Name().

list-of-QLocale QLocale.matchingLocales (Language language, Script script, Country country)

Returns a list of valid locale objects that match the given language, script and country.

Getting a list of all locales: QList<QLocale> allLocales = QLocale.matchingLocales(QLocale.AnyLanguage, QLocale.AnyScript, QLocale.AnyCountry);

This function was introduced in Qt 4.8.

MeasurementSystem QLocale.measurementSystem (self)

Returns the measurement system for the locale.

This function was introduced in Qt 4.4.

QString QLocale.monthName (self, int, FormatType format = QLocale.LongFormat)

Returns the localized name of month, in the format specified by type.

This function was introduced in Qt 4.2.

See also dayName() and standaloneMonthName().

QString QLocale.name (self)

Returns the language and country of this locale as a string of the form "language_country", where language is a lowercase, two-letter ISO 639 language code, and country is an uppercase, two- or three-letter ISO 3166 country code.

Note that even if QLocale object was constructed with an explicit script, name() will not contain it for compatibility reasons. Use bcp47Name() instead if you need a full locale name.

See also QLocale(), language(), script(), country(), and bcp47Name().

QString QLocale.nativeCountryName (self)

Returns a native name of the country for the locale. For example "España" for Spanish/Spain locale.

This function was introduced in Qt 4.8.

See also nativeLanguageName() and countryToString().

QString QLocale.nativeLanguageName (self)

Returns a native name of the language for the locale. For example "Schwiizertüütsch" for Swiss-German locale.

This function was introduced in Qt 4.8.

See also nativeCountryName() and languageToString().

QChar QLocale.negativeSign (self)

Returns the negative sign character of this locale.

This function was introduced in Qt 4.1.

NumberOptions QLocale.numberOptions (self)

Returns the options related to number conversions for this QLocale instance.

By default, no options are set for the standard locales.

This function was introduced in Qt 4.2.

See also setNumberOptions().

QChar QLocale.percent (self)

Returns the percent character of this locale.

This function was introduced in Qt 4.1.

QString QLocale.pmText (self)

Returns the localized name of the "PM" suffix for times specified using the conventions of the 12-hour clock.

This function was introduced in Qt 4.5.

See also amText().

QChar QLocale.positiveSign (self)

Returns the positive sign character of this locale.

This function was introduced in Qt 4.5.

QString QLocale.quoteString (self, QString str, QuotationStyle style = QLocale.StandardQuotation)

Returns str quoted according to the current locale using the given quotation style.

This function was introduced in Qt 4.8.

Script QLocale.script (self)

Returns the script of this locale.

This function was introduced in Qt 4.8.

See also language(), country(), languageToString(), scriptToString(), and bcp47Name().

QString QLocale.scriptToString (Script script)

Returns a QString containing the name of script.

This function was introduced in Qt 4.8.

See also languageToString(), countryToString(), script(), and bcp47Name().

QLocale.setDefault (QLocale locale)

Sets the global default locale to locale. These values are used when a QLocale object is constructed with no arguments. If this function is not called, the system's locale is used.

Warning: In a multithreaded application, the default locale should be set at application startup, before any non-GUI threads are created.

Warning: This function is not reentrant.

See also system() and c().

QLocale.setNumberOptions (self, NumberOptions options)

Sets the options related to number conversions for this QLocale instance.

This function was introduced in Qt 4.2.

See also numberOptions().

QString QLocale.standaloneDayName (self, int, FormatType format = QLocale.LongFormat)

Returns the localized name of the day (where 1 represents Monday, 2 represents Tuesday and so on) that is used as a standalone text, in the format specified by type.

If the locale information does not specify the standalone day name then return value is the same as in dayName().

This function was introduced in Qt 4.5.

See also dayName() and standaloneMonthName().

QString QLocale.standaloneMonthName (self, int, FormatType format = QLocale.LongFormat)

Returns the localized name of month that is used as a standalone text, in the format specified by type.

If the locale information doesn't specify the standalone month name then return value is the same as in monthName().

This function was introduced in Qt 4.5.

See also monthName() and standaloneDayName().

QLocale QLocale.system ()

Returns a QLocale object initialized to the system locale.

On Windows and Mac, this locale will use the decimal/grouping characters and date/time formats specified in the system configuration panel.

See also c().

Qt.LayoutDirection QLocale.textDirection (self)

Returns the text direction of the language.

This function was introduced in Qt 4.7.

QString QLocale.timeFormat (self, FormatType format = QLocale.LongFormat)

Returns the time format used for the current locale.

If format is LongFormat the format will be a long version. Otherwise it uses a shorter version.

This function was introduced in Qt 4.1.

See also QTime.toString() and QTime.fromString().

QString QLocale.toCurrencyString (self, int value, QString symbol = QString())

Returns a localized string representation of value as a currency. If the symbol is provided it is used instead of the default currency symbol.

This function was introduced in Qt 4.8.

See also currencySymbol().

QString QLocale.toCurrencyString (self, float value, QString symbol = QString())

This is an overloaded function.

This function was introduced in Qt 4.8.

QString QLocale.toCurrencyString (self, int value, QString symbol = QString())

This is an overloaded function.

This function was introduced in Qt 4.8.

QString QLocale.toCurrencyString (self, int value, QString symbol = QString())

This is an overloaded function.

This function was introduced in Qt 4.8.

QDate QLocale.toDate (self, QString string, FormatType format = QLocale.LongFormat)

Parses the date string given in string and returns the date. The format of the date string is chosen according to the format parameter (see dateFormat()).

If the date could not be parsed, returns an invalid date.

This function was introduced in Qt 4.4.

See also dateFormat(), toTime(), toDateTime(), and QDate.fromString().

QDate QLocale.toDate (self, QString string, QString format)

Parses the date string given in string and returns the date. See QDate.fromString() for information on the expressions that can be used with this function.

This function searches month names and the names of the days of the week in the current locale.

If the date could not be parsed, returns an invalid date.

This function was introduced in Qt 4.4.

See also dateFormat(), toTime(), toDateTime(), and QDate.fromString().

QDateTime QLocale.toDateTime (self, QString string, FormatType format = QLocale.LongFormat)

Parses the date/time string given in string and returns the time. The format of the date/time string is chosen according to the format parameter (see dateTimeFormat()).

If the string could not be parsed, returns an invalid QDateTime.

This function was introduced in Qt 4.4.

See also dateTimeFormat(), toTime(), toDate(), and QDateTime.fromString().

QDateTime QLocale.toDateTime (self, QString string, QString format)

Parses the date/time string given in string and returns the time. See QDateTime.fromString() for information on the expressions that can be used with this function.

Note: The month and day names used must be given in the user's local language.

If the string could not be parsed, returns an invalid QDateTime.

This function was introduced in Qt 4.4.

See also dateTimeFormat(), toTime(), toDate(), and QDateTime.fromString().

(float, bool ok) QLocale.toDouble (self, QString s)

Returns the double represented by the localized string s, or 0.0 if the conversion failed.

If ok is not 0, reports failure by setting *ok to false and success by setting *ok to true.

Unlike QString.toDouble(), this function does not fall back to the "C" locale if the string cannot be interpreted in this locale.

 bool ok;
 double d;

 QLocale c(QLocale.C);
 d = c.toDouble( "1234.56", &ok );  // ok == true, d == 1234.56
 d = c.toDouble( "1,234.56", &ok ); // ok == true, d == 1234.56
 d = c.toDouble( "1234,56", &ok );  // ok == false

 QLocale german(QLocale.German);
 d = german.toDouble( "1234,56", &ok );  // ok == true, d == 1234.56
 d = german.toDouble( "1.234,56", &ok ); // ok == true, d == 1234.56
 d = german.toDouble( "1234.56", &ok );  // ok == false

 d = german.toDouble( "1.234", &ok );    // ok == true, d == 1234.0

Notice that the last conversion returns 1234.0, because '.' is the thousands group separator in the German locale.

This function ignores leading and trailing whitespace.

See also toFloat(), toInt(), and toString().

(float, bool ok) QLocale.toFloat (self, QString s)

Returns the float represented by the localized string s, or 0.0 if the conversion failed.

If ok is not 0, reports failure by setting *ok to false and success by setting *ok to true.

This function ignores leading and trailing whitespace.

See also toDouble(), toInt(), and toString().

(int, bool ok) QLocale.toInt (self, QString s, int base = 0)

Returns the int represented by the localized string s, using base base. If base is 0 the base is determined automatically using the following rules: If the string begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

If the conversion fails the function returns 0.

If ok is not 0, failure is reported by setting *ok to false, and success by setting *ok to true.

This function ignores leading and trailing whitespace.

See also toUInt() and toString().

(int, bool ok) QLocale.toLongLong (self, QString s, int base = 0)

Returns the long long int represented by the localized string s, using base base. If base is 0 the base is determined automatically using the following rules: If the string begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

If the conversion fails the function returns 0.

If ok is not 0, failure is reported by setting *ok to false, and success by setting *ok to true.

This function ignores leading and trailing whitespace.

See also toInt(), toULongLong(), toDouble(), and toString().

QString QLocale.toLower (self, QString str)

Returns a lowercase copy of str.

This function was introduced in Qt 4.8.

(int, bool ok) QLocale.toShort (self, QString s, int base = 0)

Returns the short int represented by the localized string s, using base base. If base is 0 the base is determined automatically using the following rules: If the string begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

If the conversion fails the function returns 0.

If ok is not 0, failure is reported by setting *ok to false, and success by setting *ok to true.

This function ignores leading and trailing whitespace.

See also toUShort() and toString().

QString QLocale.toString (self, int i)

Returns a localized string representation of i.

See also toLongLong().

QString QLocale.toString (self, float i, str format = 'g', int precision = 6)

Returns a localized string representation of the given date in the specified format. If format is an empty string, an empty string is returned.

QString QLocale.toString (self, int i)

Returns a localized string representation of the given date according to the specified format.

QString QLocale.toString (self, int i)

Returns a localized string representation of the given time according to the specified format. If format is an empty string, an empty string is returned.

QString QLocale.toString (self, QDateTime dateTime, QString format)

Returns a localized string representation of the given time in the specified format.

QString QLocale.toString (self, QDateTime dateTime, FormatType format = QLocale.LongFormat)

Returns a localized string representation of the given dateTime according to the specified format.

This function was introduced in Qt 4.4.

QString QLocale.toString (self, QDate date, QString formatStr)

Returns a localized string representation of the given dateTime according to the specified format. If format is an empty string, an empty string is returned.

This function was introduced in Qt 4.4.

QString QLocale.toString (self, QDate date, FormatType format = QLocale.LongFormat)

This is an overloaded function.

See also toULongLong().

QString QLocale.toString (self, QTime time, QString formatStr)

This is an overloaded function.

f and prec have the same meaning as in QString.number(double, char, int).

See also toDouble().

QString QLocale.toString (self, QTime time, FormatType format = QLocale.LongFormat)

This is an overloaded function.

See also toShort().

QTime QLocale.toTime (self, QString string, FormatType format = QLocale.LongFormat)

Parses the time string given in string and returns the time. The format of the time string is chosen according to the format parameter (see timeFormat()).

If the time could not be parsed, returns an invalid time.

This function was introduced in Qt 4.4.

See also timeFormat(), toDate(), toDateTime(), and QTime.fromString().

QTime QLocale.toTime (self, QString string, QString format)

Parses the time string given in string and returns the time. See QTime.fromString() for information on what is a valid format string.

If the time could not be parsed, returns an invalid time.

This function was introduced in Qt 4.4.

See also timeFormat(), toDate(), toDateTime(), and QTime.fromString().

(int, bool ok) QLocale.toUInt (self, QString s, int base = 0)

Returns the unsigned int represented by the localized string s, using base base. If base is 0 the base is determined automatically using the following rules: If the string begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

If the conversion fails the function returns 0.

If ok is not 0, failure is reported by setting *ok to false, and success by setting *ok to true.

This function ignores leading and trailing whitespace.

See also toInt() and toString().

(int, bool ok) QLocale.toULongLong (self, QString s, int base = 0)

Returns the unsigned long long int represented by the localized string s, using base base. If base is 0 the base is determined automatically using the following rules: If the string begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

If the conversion fails the function returns 0.

If ok is not 0, failure is reported by setting *ok to false, and success by setting *ok to true.

This function ignores leading and trailing whitespace.

See also toLongLong(), toInt(), toDouble(), and toString().

QString QLocale.toUpper (self, QString str)

Returns an uppercase copy of str.

This function was introduced in Qt 4.8.

(int, bool ok) QLocale.toUShort (self, QString s, int base = 0)

Returns the unsigned short int represented by the localized string s, using base base. If base is 0 the base is determined automatically using the following rules: If the string begins with "0x", it is assumed to be hexadecimal; if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

If the conversion fails the function returns 0.

If ok is not 0, failure is reported by setting *ok to false, and success by setting *ok to true.

This function ignores leading and trailing whitespace.

See also toShort() and toString().

QStringList QLocale.uiLanguages (self)

Returns an ordered list of locale names for translation purposes in preference order.

The return value represents locale names that the user expects to see the UI translation in.

Most like you do not need to use this function directly, but just pass the QLocale object to the QTranslator.load() function.

The first item in the list is the most preferred one.

This function was introduced in Qt 4.8.

See also QTranslator and bcp47Name().

list-of-Qt.DayOfWeek QLocale.weekdays (self)

Returns a list of days that are considered weekdays according to the current locale.

This function was introduced in Qt 4.8.

QChar QLocale.zeroDigit (self)

Returns the zero digit character of this locale.

This function was introduced in Qt 4.1.

bool QLocale.__eq__ (self, QLocale other)

bool QLocale.__ne__ (self, QLocale other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlocalserver.html0000644000076500000240000003502112536324520021050 0ustar philstaff00000000000000 QLocalServer Class Reference
  Home · All Classes · Modules

QLocalServer Class Reference
[QtNetwork module]

The QLocalServer class provides a local socket based server. More...

Inherits QObject.

Methods

Static Methods

Qt Signals


Detailed Description

The QLocalServer class provides a local socket based server.

This class makes it possible to accept incoming local socket connections.

Call listen() to have the server start listening for incoming connections on a specified key. The newConnection() signal is then emitted each time a client connects to the server.

Call nextPendingConnection() to accept the pending connection as a connected QLocalSocket. The function returns a pointer to a QLocalSocket that can be used for communicating with the client.

If an error occurs, serverError() returns the type of error, and errorString() can be called to get a human readable description of what happened.

When listening for connections, the name which the server is listening on is available through serverName().

Calling close() makes QLocalServer stop listening for incoming connections.

Although QLocalServer is designed for use with an event loop, it's possible to use it without one. In that case, you must use waitForNewConnection(), which blocks until either a connection is available or a timeout expires.


Method Documentation

QLocalServer.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Create a new local socket server with the given parent.

See also listen().

QLocalServer.close (self)

Stop listening for incoming connections. Existing connections are not effected, but any new connections will be refused.

See also isListening() and listen().

QString QLocalServer.errorString (self)

Returns the human-readable message appropriate to the current error reported by serverError(). If no suitable string is available, an empty string is returned.

See also serverError().

QString QLocalServer.fullServerName (self)

Returns the full path that the server is listening on.

Note: This is platform specific

See also listen() and serverName().

bool QLocalServer.hasPendingConnections (self)

Returns true if the server has a pending connection; otherwise returns false.

See also nextPendingConnection() and setMaxPendingConnections().

QLocalServer.incomingConnection (self, sip.voidptr socketDescriptor)

This virtual function is called by QLocalServer when a new connection is available. socketDescriptor is the native socket descriptor for the accepted connection.

The base implementation creates a QLocalSocket, sets the socket descriptor and then stores the QLocalSocket in an internal list of pending connections. Finally newConnection() is emitted.

Reimplement this function to alter the server's behavior when a connection is available.

See also newConnection(), nextPendingConnection(), and QLocalSocket.setSocketDescriptor().

bool QLocalServer.isListening (self)

Returns true if the server is listening for incoming connections otherwise false.

See also listen() and close().

bool QLocalServer.listen (self, QString name)

Tells the server to listen for incoming connections on name. If the server is currently listening then it will return false. Return true on success otherwise false.

name can be a single name and QLocalServer will determine the correct platform specific path. serverName() will return the name that is passed into listen.

Usually you would just pass in a name like "foo", but on Unix this could also be a path such as "/tmp/foo" and on Windows this could be a pipe path such as "\\.\pipe\foo". For VxWorks following path must be always use "/comp/socket/0xNumber", where "0xNumber" is a string representation of a 16-bit number in hexadecimal format. Example "/comp/socket/0x00AA".

Note: On Unix if the server crashes without closing listen will fail with AddressInUseError. To create a new server the file should be removed. On Windows two local servers can listen to the same pipe at the same time, but any connections will go to one of the server.

See also serverName(), isListening(), and close().

int QLocalServer.maxPendingConnections (self)

Returns the maximum number of pending accepted connections. The default is 30.

See also setMaxPendingConnections() and hasPendingConnections().

QLocalSocket QLocalServer.nextPendingConnection (self)

Returns the next pending connection as a connected QLocalSocket object.

The socket is created as a child of the server, which means that it is automatically deleted when the QLocalServer object is destroyed. It is still a good idea to delete the object explicitly when you are done with it, to avoid wasting memory.

0 is returned if this function is called when there are no pending connections.

See also hasPendingConnections(), newConnection(), and incomingConnection().

bool QLocalServer.removeServer (QString name)

Removes any server instance that might cause a call to listen() to fail and returns true if successful; otherwise returns false. This function is meant to recover from a crash, when the previous server instance has not been cleaned up.

On Windows, this function does nothing; on Unix, it removes the socket file given by name.

Warning: Be careful to avoid removing sockets of running instances.

This function was introduced in Qt 4.5.

QAbstractSocket.SocketError QLocalServer.serverError (self)

Returns the type of error that occurred last or NoError.

See also errorString().

QString QLocalServer.serverName (self)

Returns the server name if the server is listening for connections; otherwise returns QString()

See also listen() and fullServerName().

QLocalServer.setMaxPendingConnections (self, int numConnections)

Sets the maximum number of pending accepted connections to numConnections. QLocalServer will accept no more than numConnections incoming connections before nextPendingConnection() is called.

Note: Even though QLocalServer will stop accepting new connections after it has reached its maximum number of pending connections, the operating system may still keep them in queue which will result in clients signaling that it is connected.

See also maxPendingConnections() and hasPendingConnections().

(bool, bool timedOut) QLocalServer.waitForNewConnection (self, int msecs = 0)

Waits for at most msec milliseconds or until an incoming connection is available. Returns true if a connection is available; otherwise returns false. If the operation timed out and timedOut is not 0, *timedOut will be set to true.

This is a blocking function call. Its use is ill-advised in a single-threaded GUI application, since the whole application will stop responding until the function returns. waitForNewConnection() is mostly useful when there is no event loop available.

The non-blocking alternative is to connect to the newConnection() signal.

If msec is -1, this function will not time out.

See also hasPendingConnections() and nextPendingConnection().


Qt Signal Documentation

void newConnection ()

This is the default overload of this signal.

This signal is emitted every time a new connection is available.

See also hasPendingConnections() and nextPendingConnection().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qlocalsocket.html0000644000076500000240000006360212536324520021040 0ustar philstaff00000000000000 QLocalSocket Class Reference
  Home · All Classes · Modules

QLocalSocket Class Reference
[QtNetwork module]

The QLocalSocket class provides a local socket. More...

Inherits QIODevice.

Types

  • enum LocalSocketError { ConnectionRefusedError, PeerClosedError, ServerNotFoundError, SocketAccessError, ..., UnknownSocketError }
  • enum LocalSocketState { UnconnectedState, ConnectingState, ConnectedState, ClosingState }

Methods

Qt Signals


Detailed Description

The QLocalSocket class provides a local socket.

On Windows this is a named pipe and on Unix this is a local domain socket.

If an error occurs, socketError() returns the type of error, and errorString() can be called to get a human readable description of what happened.

Although QLocalSocket is designed for use with an event loop, it's possible to use it without one. In that case, you must use waitForConnected(), waitForReadyRead(), waitForBytesWritten(), and waitForDisconnected() which blocks until the operation is complete or the timeout expires.

Note that this feature is not supported on versions of Windows earlier than Windows XP.


Type Documentation

QLocalSocket.LocalSocketError

The LocalServerError enumeration represents the errors that can occur. The most recent error can be retrieved through a call to QLocalSocket.error().

Constant Value Description
QLocalSocket.ConnectionRefusedError QAbstractSocket.ConnectionRefusedError The connection was refused by the peer (or timed out).
QLocalSocket.PeerClosedError QAbstractSocket.RemoteHostClosedError The remote socket closed the connection. Note that the client socket (i.e., this socket) will be closed after the remote close notification has been sent.
QLocalSocket.ServerNotFoundError QAbstractSocket.HostNotFoundError The local socket name was not found.
QLocalSocket.SocketAccessError QAbstractSocket.SocketAccessError The socket operation failed because the application lacked the required privileges.
QLocalSocket.SocketResourceError QAbstractSocket.SocketResourceError The local system ran out of resources (e.g., too many sockets).
QLocalSocket.SocketTimeoutError QAbstractSocket.SocketTimeoutError The socket operation timed out.
QLocalSocket.DatagramTooLargeError QAbstractSocket.DatagramTooLargeError The datagram was larger than the operating system's limit (which can be as low as 8192 bytes).
QLocalSocket.ConnectionError QAbstractSocket.NetworkError An error occurred with the connection.
QLocalSocket.UnsupportedSocketOperationError QAbstractSocket.UnsupportedSocketOperationError The requested socket operation is not supported by the local operating system.
QLocalSocket.UnknownSocketError QAbstractSocket.UnknownSocketError An unidentified error occurred.

QLocalSocket.LocalSocketState

This enum describes the different states in which a socket can be.

Constant Value Description
QLocalSocket.UnconnectedState QAbstractSocket.UnconnectedState The socket is not connected.
QLocalSocket.ConnectingState QAbstractSocket.ConnectingState The socket has started establishing a connection.
QLocalSocket.ConnectedState QAbstractSocket.ConnectedState A connection is established.
QLocalSocket.ClosingState QAbstractSocket.ClosingState The socket is about to close (data may still be waiting to be written).

See also QLocalSocket.state().


Method Documentation

QLocalSocket.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new local socket. The parent argument is passed to QObject's constructor.

QLocalSocket.abort (self)

Aborts the current connection and resets the socket. Unlike disconnectFromServer(), this function immediately closes the socket, clearing any pending data in the write buffer.

See also disconnectFromServer() and close().

int QLocalSocket.bytesAvailable (self)

Reimplemented from QIODevice.bytesAvailable().

int QLocalSocket.bytesToWrite (self)

Reimplemented from QIODevice.bytesToWrite().

bool QLocalSocket.canReadLine (self)

Reimplemented from QIODevice.canReadLine().

QLocalSocket.close (self)

Reimplemented from QIODevice.close().

QLocalSocket.connectToServer (self, QString name, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Attempts to make a connection to name.

The socket is opened in the given openMode and first enters ConnectingState. It then attempts to connect to the address or addresses returned by the lookup. Finally, if a connection is established, QLocalSocket enters ConnectedState and emits connected().

At any point, the socket can emit error() to signal that an error occurred.

See also state(), serverName(), and waitForConnected().

QLocalSocket.disconnectFromServer (self)

Attempts to close the socket. If there is pending data waiting to be written, QLocalSocket will enter ClosingState and wait until all data has been written. Eventually, it will enter UnconnectedState and emit the disconnectedFromServer() signal.

See also connectToServer().

LocalSocketError QLocalSocket.error (self)

Returns the type of error that last occurred.

See also state() and errorString().

bool QLocalSocket.flush (self)

This function writes as much as possible from the internal write buffer to the socket, without blocking. If any data was written, this function returns true; otherwise false is returned.

Call this function if you need QLocalSocket to start sending buffered data immediately. The number of bytes successfully written depends on the operating system. In most cases, you do not need to call this function, because QLocalSocket will start sending data automatically once control goes back to the event loop. In the absence of an event loop, call waitForBytesWritten() instead.

See also write() and waitForBytesWritten().

QString QLocalSocket.fullServerName (self)

Returns the server path that the socket is connected to.

Note: The return value of this function is platform specific.

See also connectToServer() and serverName().

bool QLocalSocket.isSequential (self)

Reimplemented from QIODevice.isSequential().

bool QLocalSocket.isValid (self)

Returns true if the socket is valid and ready for use; otherwise returns false.

Note: The socket's state must be ConnectedState before reading and writing can occur.

See also state() and connectToServer().

int QLocalSocket.readBufferSize (self)

Returns the size of the internal read buffer. This limits the amount of data that the client can receive before you call read() or readAll(). A read buffer size of 0 (the default) means that the buffer has no size limit, ensuring that no data is lost.

See also setReadBufferSize() and read().

str QLocalSocket.readData (self, int maxlen)

Reimplemented from QIODevice.readData().

QString QLocalSocket.serverName (self)

Returns the name of the peer as specified by connectToServer(), or an empty QString if connectToServer() has not been called or it failed.

See also connectToServer() and fullServerName().

QLocalSocket.setReadBufferSize (self, int size)

Sets the size of QLocalSocket's internal read buffer to be size bytes.

If the buffer size is limited to a certain size, QLocalSocket won't buffer more than this size of data. Exceptionally, a buffer size of 0 means that the read buffer is unlimited and all incoming data is buffered. This is the default.

This option is useful if you only read the data at certain points in time (e.g., in a real-time streaming application) or if you want to protect your socket against receiving too much data, which may eventually cause your application to run out of memory.

See also readBufferSize() and read().

bool QLocalSocket.setSocketDescriptor (self, sip.voidptr socketDescriptor, LocalSocketState state = QLocalSocket.ConnectedState, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Initializes QLocalSocket with the native socket descriptor socketDescriptor. Returns true if socketDescriptor is accepted as a valid socket descriptor; otherwise returns false. The socket is opened in the mode specified by openMode, and enters the socket state specified by socketState.

Note: It is not possible to initialize two local sockets with the same native socket descriptor.

See also socketDescriptor(), state(), and openMode().

sip.voidptr QLocalSocket.socketDescriptor (self)

Returns the native socket descriptor of the QLocalSocket object if this is available; otherwise returns -1.

The socket descriptor is not available when QLocalSocket is in UnconnectedState.

See also setSocketDescriptor().

LocalSocketState QLocalSocket.state (self)

Returns the state of the socket.

See also error().

bool QLocalSocket.waitForBytesWritten (self, int msecs = 30000)

Reimplemented from QIODevice.waitForBytesWritten().

bool QLocalSocket.waitForConnected (self, int msecs = 30000)

Waits until the socket is connected, up to msecs milliseconds. If the connection has been established, this function returns true; otherwise it returns false. In the case where it returns false, you can call error() to determine the cause of the error.

The following example waits up to one second for a connection to be established:

 socket->connectToServer("market");
 if (socket->waitForConnected(1000))
     qDebug("Connected!");

If msecs is -1, this function will not time out.

See also connectToServer() and connected().

bool QLocalSocket.waitForDisconnected (self, int msecs = 30000)

Waits until the socket has disconnected, up to msecs milliseconds. If the connection has been disconnected, this function returns true; otherwise it returns false. In the case where it returns false, you can call error() to determine the cause of the error.

The following example waits up to one second for a connection to be closed:

 socket->disconnectFromServer();
 if (socket->waitForDisconnected(1000))
     qDebug("Disconnected!");

If msecs is -1, this function will not time out.

See also disconnectFromServer() and close().

bool QLocalSocket.waitForReadyRead (self, int msecs = 30000)

Reimplemented from QIODevice.waitForReadyRead().

This function blocks until data is available for reading and the readyRead() signal has been emitted. The function will timeout after msecs milliseconds; the default timeout is 30000 milliseconds.

The function returns true if data is available for reading; otherwise it returns false (if an error occurred or the operation timed out).

See also waitForBytesWritten().

int QLocalSocket.writeData (self, str)

Reimplemented from QIODevice.writeData().


Qt Signal Documentation

void connected ()

This is the default overload of this signal.

This signal is emitted after connectToServer() has been called and a connection has been successfully established.

See also connectToServer() and disconnected().

void disconnected ()

This is the default overload of this signal.

This signal is emitted when the socket has been disconnected.

See also connectToServer(), disconnectFromServer(), abort(), and connected().

void error (QLocalSocket::LocalSocketError)

This is the default overload of this signal.

This signal is emitted after an error occurred. The socketError parameter describes the type of error that occurred.

QLocalSocket.LocalSocketError is not a registered metatype, so for queued connections, you will have to register it with Q_DECLARE_METATYPE() and qRegisterMetaType().

See also error(), errorString(), and Creating Custom Qt Types.

void stateChanged (QLocalSocket::LocalSocketState)

This is the default overload of this signal.

This signal is emitted whenever QLocalSocket's state changes. The socketState parameter is the new state.

QLocalSocket.SocketState is not a registered metatype, so for queued connections, you will have to register it with Q_DECLARE_METATYPE() and qRegisterMetaType().

See also state() and Creating Custom Qt Types.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmainwindow-dockoptions.html0000644000076500000240000001417412536324510023242 0ustar philstaff00000000000000 QMainWindow.DockOptions Class Reference
  Home · All Classes · Modules

QMainWindow.DockOptions Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

DockOption may be used whenever DockOptions is expected.


Method Documentation

DockOptions.__init__ (self, DockOptions)

DockOptions.__init__ (self, int)

DockOptions.__init__ (self)

DockOptions DockOptions.__and__ (self, int mask)

int DockOptions.__bool__ (self)

bool DockOptions.__eq__ (self, DockOptions f)

DockOptions DockOptions.__iand__ (self, int mask)

int DockOptions.__int__ (self)

DockOptions DockOptions.__invert__ (self)

DockOptions DockOptions.__ior__ (self, DockOptions f)

DockOptions DockOptions.__ixor__ (self, DockOptions f)

bool DockOptions.__ne__ (self, DockOptions f)

DockOptions DockOptions.__or__ (self, DockOptions f)

DockOptions DockOptions.__or__ (self, int f)

DockOptions DockOptions.__xor__ (self, DockOptions f)

DockOptions DockOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmainwindow.html0000644000076500000240000012650612536324510020713 0ustar philstaff00000000000000 QMainWindow Class Reference
  Home · All Classes · Modules

QMainWindow Class Reference
[QtGui module]

The QMainWindow class provides a main application window. More...

Inherits QWidget.

Types

  • enum DockOption { AnimatedDocks, AllowNestedDocks, AllowTabbedDocks, ForceTabbedDocks, VerticalTabs }

Methods

Qt Signals


Detailed Description

The QMainWindow class provides a main application window.

Qt Main Window Framework

A main window provides a framework for building an application's user interface. Qt has QMainWindow and its related classes for main window management. QMainWindow has its own layout to which you can add QToolBars, QDockWidgets, a QMenuBar, and a QStatusBar. The layout has a center area that can be occupied by any kind of widget. You can see an image of the layout below.

Note: Creating a main window without a central widget is not supported. You must have a central widget even if it is just a placeholder.

Creating Main Window Components

A central widget will typically be a standard Qt widget such as a QTextEdit or a QGraphicsView. Custom widgets can also be used for advanced applications. You set the central widget with setCentralWidget().

Main windows have either a single (SDI) or multiple (MDI) document interface. You create MDI applications in Qt by using a QMdiArea as the central widget.

We will now examine each of the other widgets that can be added to a main window. We give examples on how to create and add them.

Creating Menus

Qt implements menus in QMenu and QMainWindow keeps them in a QMenuBar. QActions are added to the menus, which display them as menu items.

You can add new menus to the main window's menu bar by calling menuBar(), which returns the QMenuBar for the window, and then add a menu with QMenuBar.addMenu().

QMainWindow comes with a default menu bar, but you can also set one yourself with setMenuBar(). If you wish to implement a custom menu bar (i.e., not use the QMenuBar widget), you can set it with setMenuWidget().

An example of how to create menus follows:

 void MainWindow.createMenus()
 {
     fileMenu = menuBar()->addMenu(tr("&File"));
     fileMenu->addAction(newAct);
     fileMenu->addAction(openAct);
     fileMenu->addAction(saveAct);

The createPopupMenu() function creates popup menus when the main window receives context menu events. The default implementation generates a menu with the checkable actions from the dock widgets and toolbars. You can reimplement createPopupMenu() for a custom menu.

Creating Toolbars

Toolbars are implemented in the QToolBar class. You add a toolbar to a main window with addToolBar().

You control the initial position of toolbars by assigning them to a specific Qt.ToolBarArea. You can split an area by inserting a toolbar break - think of this as a line break in text editing - with addToolBarBreak() or insertToolBarBreak(). You can also restrict placement by the user with QToolBar.setAllowedAreas() and QToolBar.setMovable().

The size of toolbar icons can be retrieved with iconSize(). The sizes are platform dependent; you can set a fixed size with setIconSize(). You can alter the appearance of all tool buttons in the toolbars with setToolButtonStyle().

An example of toolbar creation follows:

 void MainWindow.createToolBars()
 {
     fileToolBar = addToolBar(tr("File"));
     fileToolBar->addAction(newAct);

Creating Dock Widgets

Dock widgets are implemented in the QDockWidget class. A dock widget is a window that can be docked into the main window. You add dock widgets to a main window with addDockWidget().

There are four dock widget areas as given by the Qt.DockWidgetArea enum: left, right, top, and bottom. You can specify which dock widget area that should occupy the corners where the areas overlap with setCorner(). By default each area can only contain one row (vertical or horizontal) of dock widgets, but if you enable nesting with setDockNestingEnabled(), dock widgets can be added in either direction.

Two dock widgets may also be stacked on top of each other. A QTabBar is then used to select which of the widgets that should be displayed.

We give an example of how to create and add dock widgets to a main window:

     QDockWidget *dockWidget = new QDockWidget(tr("Dock Widget"), this);
     dockWidget->setAllowedAreas(Qt.LeftDockWidgetArea |
                                 Qt.RightDockWidgetArea);
     dockWidget->setWidget(dockWidgetContents);
     addDockWidget(Qt.LeftDockWidgetArea, dockWidget);

The Status Bar

You can set a status bar with setStatusBar(), but one is created the first time statusBar() (which returns the main window's status bar) is called. See QStatusBar for information on how to use it.

Storing State

QMainWindow can store the state of its layout with saveState(); it can later be retrieved with restoreState(). It is the position and size (relative to the size of the main window) of the toolbars and dock widgets that are stored.


Type Documentation

QMainWindow.DockOption

This enum contains flags that specify the docking behavior of QMainWindow.

Constant Value Description
QMainWindow.AnimatedDocks 0x01 Identical to the animated property.
QMainWindow.AllowNestedDocks 0x02 Identical to the dockNestingEnabled property.
QMainWindow.AllowTabbedDocks 0x04 The user can drop one dock widget "on top" of another. The two widgets are stacked and a tab bar appears for selecting which one is visible.
QMainWindow.ForceTabbedDocks 0x08 Each dock area contains a single stack of tabbed dock widgets. In other words, dock widgets cannot be placed next to each other in a dock area. If this option is set, AllowNestedDocks has no effect.
QMainWindow.VerticalTabs 0x10 The two vertical dock areas on the sides of the main window show their tabs vertically. If this option is not set, all dock areas show their tabs at the bottom. Implies AllowTabbedDocks. See also setTabPosition().

These options only control how dock widgets may be dropped in a QMainWindow. They do not re-arrange the dock widgets to conform with the specified options. For this reason they should be set before any dock widgets are added to the main window. Exceptions to this are the AnimatedDocks and VerticalTabs options, which may be set at any time.

This enum was introduced or modified in Qt 4.3.

The DockOptions type is a typedef for QFlags<DockOption>. It stores an OR combination of DockOption values.


Method Documentation

QMainWindow.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QMainWindow with the given parent and the specified widget flags.

QMainWindow sets the Qt.Window flag itself, and will hence always be created as a top-level widget.

QMainWindow.addDockWidget (self, Qt.DockWidgetArea area, QDockWidget dockwidget)

The dockwidget argument has it's ownership transferred to Qt.

Adds the given dockwidget to the specified area.

QMainWindow.addDockWidget (self, Qt.DockWidgetArea area, QDockWidget dockwidget, Qt.Orientation orientation)

The dockwidget argument has it's ownership transferred to Qt.

Adds dockwidget into the given area in the direction specified by the orientation.

QMainWindow.addToolBar (self, Qt.ToolBarArea area, QToolBar toolbar)

The toolbar argument has it's ownership transferred to Qt.

Adds the toolbar into the specified area in this main window. The toolbar is placed at the end of the current tool bar block (i.e. line). If the main window already manages toolbar then it will only move the toolbar to area.

See also insertToolBar(), addToolBarBreak(), and insertToolBarBreak().

QMainWindow.addToolBar (self, QToolBar toolbar)

The toolbar argument has it's ownership transferred to Qt.

This is an overloaded function.

Equivalent of calling addToolBar(Qt.TopToolBarArea, toolbar)

QToolBar QMainWindow.addToolBar (self, QString title)

This is an overloaded function.

Creates a QToolBar object, setting its window title to title, and inserts it into the top toolbar area.

See also setWindowTitle().

QMainWindow.addToolBarBreak (self, Qt.ToolBarArea area = Qt.TopToolBarArea)

Adds a toolbar break to the given area after all the other objects that are present.

QWidget QMainWindow.centralWidget (self)

Returns the central widget for the main window. This function returns zero if the central widget has not been set.

See also setCentralWidget().

QMainWindow.contextMenuEvent (self, QContextMenuEvent event)

Reimplemented from QWidget.contextMenuEvent().

Qt.DockWidgetArea QMainWindow.corner (self, Qt.Corner corner)

Returns the dock widget area that occupies the specified corner.

See also setCorner().

QMenu QMainWindow.createPopupMenu (self)

Returns a popup menu containing checkable entries for the toolbars and dock widgets present in the main window. If there are no toolbars and dock widgets present, this function returns a null pointer.

By default, this function is called by the main window when the user activates a context menu, typically by right-clicking on a toolbar or a dock widget.

If you want to create a custom popup menu, reimplement this function and return a newly-created popup menu. Ownership of the popup menu is transferred to the caller.

See also addDockWidget(), addToolBar(), and menuBar().

DockOptions QMainWindow.dockOptions (self)

Qt.DockWidgetArea QMainWindow.dockWidgetArea (self, QDockWidget dockwidget)

Returns the Qt.DockWidgetArea for dockwidget. If dockwidget has not been added to the main window, this function returns Qt.NoDockWidgetArea.

See also addDockWidget(), splitDockWidget(), and Qt.DockWidgetArea.

bool QMainWindow.documentMode (self)

bool QMainWindow.event (self, QEvent event)

Reimplemented from QObject.event().

QSize QMainWindow.iconSize (self)

QMainWindow.insertToolBar (self, QToolBar before, QToolBar toolbar)

The toolbar argument has it's ownership transferred to Qt.

Inserts the toolbar into the area occupied by the before toolbar so that it appears before it. For example, in normal left-to-right layout operation, this means that toolbar will appear to the left of the toolbar specified by before in a horizontal toolbar area.

See also insertToolBarBreak(), addToolBar(), and addToolBarBreak().

QMainWindow.insertToolBarBreak (self, QToolBar before)

Inserts a toolbar break before the toolbar specified by before.

bool QMainWindow.isAnimated (self)

bool QMainWindow.isDockNestingEnabled (self)

bool QMainWindow.isSeparator (self, QPoint pos)

QMenuBar QMainWindow.menuBar (self)

Returns the menu bar for the main window. This function creates and returns an empty menu bar if the menu bar does not exist.

If you want all windows in a Mac application to share one menu bar, don't use this function to create it, because the menu bar created here will have this QMainWindow as its parent. Instead, you must create a menu bar that does not have a parent, which you can then share among all the Mac windows. Create a parent-less menu bar this way:

 QMenuBar *menuBar = new QMenuBar(0);

See also setMenuBar().

QWidget QMainWindow.menuWidget (self)

Returns the menu bar for the main window. This function returns null if a menu bar hasn't been constructed yet.

This function was introduced in Qt 4.2.

See also setMenuWidget().

QMainWindow.removeDockWidget (self, QDockWidget dockwidget)

The dockwidget argument

Removes the dockwidget from the main window layout and hides it. Note that the dockwidget is not deleted.

QMainWindow.removeToolBar (self, QToolBar toolbar)

Removes the toolbar from the main window layout and hides it. Note that the toolbar is not deleted.

QMainWindow.removeToolBarBreak (self, QToolBar before)

Removes a toolbar break previously inserted before the toolbar specified by before.

bool QMainWindow.restoreDockWidget (self, QDockWidget dockwidget)

Restores the state of dockwidget if it is created after the call to restoreState(). Returns true if the state was restored; otherwise returns false.

See also restoreState() and saveState().

bool QMainWindow.restoreState (self, QByteArray state, int version = 0)

Restores the state of this mainwindow's toolbars and dockwidgets. The version number is compared with that stored in state. If they do not match, the mainwindow's state is left unchanged, and this function returns false; otherwise, the state is restored, and this function returns true.

To restore geometry saved using QSettings, you can use code like this:

 void MainWindow.readSettings()
 {
     QSettings settings("MyCompany", "MyApp");
     restoreGeometry(settings.value("myWidget/geometry").toByteArray());
     restoreState(settings.value("myWidget/windowState").toByteArray());
 }

See also saveState(), QWidget.saveGeometry(), QWidget.restoreGeometry(), and restoreDockWidget().

QByteArray QMainWindow.saveState (self, int version = 0)

Saves the current state of this mainwindow's toolbars and dockwidgets. The version number is stored as part of the data.

The objectName property is used to identify each QToolBar and QDockWidget. You should make sure that this property is unique for each QToolBar and QDockWidget you add to the QMainWindow

To restore the saved state, pass the return value and version number to restoreState().

To save the geometry when the window closes, you can implement a close event like this:

 void MyMainWindow.closeEvent(QCloseEvent *event)
 {
     QSettings settings("MyCompany", "MyApp");
     settings.setValue("geometry", saveGeometry());
     settings.setValue("windowState", saveState());
     QMainWindow.closeEvent(event);
 }

See also restoreState(), QWidget.saveGeometry(), and QWidget.restoreGeometry().

QMainWindow.setAnimated (self, bool enabled)

This method is also a Qt slot with the C++ signature void setAnimated(bool).

QMainWindow.setCentralWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the given widget to be the main window's central widget.

Note: QMainWindow takes ownership of the widget pointer and deletes it at the appropriate time.

See also centralWidget().

QMainWindow.setCorner (self, Qt.Corner corner, Qt.DockWidgetArea area)

Sets the given dock widget area to occupy the specified corner.

See also corner().

QMainWindow.setDockNestingEnabled (self, bool enabled)

This method is also a Qt slot with the C++ signature void setDockNestingEnabled(bool).

QMainWindow.setDockOptions (self, DockOptions options)

QMainWindow.setDocumentMode (self, bool enabled)

QMainWindow.setIconSize (self, QSize iconSize)

QMainWindow.setMenuBar (self, QMenuBar menubar)

The menubar argument has it's ownership transferred to Qt.

Sets the menu bar for the main window to menuBar.

Note: QMainWindow takes ownership of the menuBar pointer and deletes it at the appropriate time.

See also menuBar().

QMainWindow.setMenuWidget (self, QWidget menubar)

The menubar argument has it's ownership transferred to Qt.

Sets the menu bar for the main window to menuBar.

QMainWindow takes ownership of the menuBar pointer and deletes it at the appropriate time.

This function was introduced in Qt 4.2.

See also menuWidget().

QMainWindow.setStatusBar (self, QStatusBar statusbar)

The statusbar argument has it's ownership transferred to Qt.

Sets the status bar for the main window to statusbar.

Setting the status bar to 0 will remove it from the main window. Note that QMainWindow takes ownership of the statusbar pointer and deletes it at the appropriate time.

See also statusBar().

QMainWindow.setTabPosition (self, Qt.DockWidgetAreas areas, QTabWidget.TabPosition tabPosition)

Sets the tab position for the given dock widget areas to the specified tabPosition. By default, all dock areas show their tabs at the bottom.

Note: The VerticalTabs dock option overrides the tab positions set by this method.

This function was introduced in Qt 4.5.

See also tabPosition() and setTabShape().

QMainWindow.setTabShape (self, QTabWidget.TabShape tabShape)

QMainWindow.setToolButtonStyle (self, Qt.ToolButtonStyle toolButtonStyle)

QMainWindow.setUnifiedTitleAndToolBarOnMac (self, bool set)

QMainWindow.splitDockWidget (self, QDockWidget after, QDockWidget dockwidget, Qt.Orientation orientation)

The dockwidget argument has it's ownership transferred to Qt.

Splits the space covered by the first dock widget into two parts, moves the first dock widget into the first part, and moves the second dock widget into the second part.

The orientation specifies how the space is divided: A Qt.Horizontal split places the second dock widget to the right of the first; a Qt.Vertical split places the second dock widget below the first.

Note: if first is currently in a tabbed docked area, second will be added as a new tab, not as a neighbor of first. This is because a single tab can contain only one dock widget.

Note: The Qt.LayoutDirection influences the order of the dock widgets in the two parts of the divided area. When right-to-left layout direction is enabled, the placing of the dock widgets will be reversed.

See also tabifyDockWidget(), addDockWidget(), and removeDockWidget().

QStatusBar QMainWindow.statusBar (self)

Returns the status bar for the main window. This function creates and returns an empty status bar if the status bar does not exist.

See also setStatusBar().

list-of-QDockWidget QMainWindow.tabifiedDockWidgets (self, QDockWidget dockwidget)

Returns the dock widgets that are tabified together with dockwidget.

This function was introduced in Qt 4.5.

See also tabifyDockWidget().

QMainWindow.tabifyDockWidget (self, QDockWidget first, QDockWidget second)

Moves second dock widget on top of first dock widget, creating a tabbed docked area in the main window.

See also tabifiedDockWidgets().

QTabWidget.TabPosition QMainWindow.tabPosition (self, Qt.DockWidgetArea area)

Returns the tab position for area.

Note: The VerticalTabs dock option overrides the tab positions returned by this function.

This function was introduced in Qt 4.5.

See also setTabPosition() and tabShape().

QTabWidget.TabShape QMainWindow.tabShape (self)

Qt.ToolBarArea QMainWindow.toolBarArea (self, QToolBar toolbar)

Returns the Qt.ToolBarArea for toolbar. If toolbar has not been added to the main window, this function returns Qt.NoToolBarArea.

See also addToolBar(), addToolBarBreak(), and Qt.ToolBarArea.

bool QMainWindow.toolBarBreak (self, QToolBar toolbar)

Returns whether there is a toolbar break before the toolbar.

See also addToolBarBreak() and insertToolBarBreak().

Qt.ToolButtonStyle QMainWindow.toolButtonStyle (self)

bool QMainWindow.unifiedTitleAndToolBarOnMac (self)


Qt Signal Documentation

void iconSizeChanged (const QSize&)

This is the default overload of this signal.

This signal is emitted when the size of the icons used in the window is changed. The new icon size is passed in iconSize.

You can connect this signal to other components to help maintain a consistent appearance for your application.

See also setIconSize().

void toolButtonStyleChanged (Qt::ToolButtonStyle)

This is the default overload of this signal.

This signal is emitted when the style used for tool buttons in the window is changed. The new style is passed in toolButtonStyle.

You can connect this signal to other components to help maintain a consistent appearance for your application.

See also setToolButtonStyle().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmargins.html0000644000076500000240000001442212536324473020200 0ustar philstaff00000000000000 QMargins Class Reference
  Home · All Classes · Modules

QMargins Class Reference
[QtCore module]

The QMargins class defines the four margins of a rectangle. More...

Methods

Special Methods

  • bool __eq__ (self, QMargins m2)
  • bool __ne__ (self, QMargins m2)

Detailed Description

The QMargins class defines the four margins of a rectangle.

QMargin defines a set of four margins; left, top, right and bottom, that describe the size of the borders surrounding a rectangle.

The isNull() function returns true only if all margins are set to zero.

QMargin objects can be streamed as well as compared.


Method Documentation

QMargins.__init__ (self)

Constructs a margins object with all margins set to 0.

See also isNull().

QMargins.__init__ (self, int aleft, int atop, int aright, int abottom)

Constructs margins with the given left, top, right, bottom

See also setLeft(), setRight(), setTop(), and setBottom().

QMargins.__init__ (self, QMargins)

int QMargins.bottom (self)

Returns the bottom margin.

See also setBottom().

bool QMargins.isNull (self)

Returns true if all margins are is 0; otherwise returns false.

int QMargins.left (self)

Returns the left margin.

See also setLeft().

int QMargins.right (self)

Returns the right margin.

See also setRight().

QMargins.setBottom (self, int abottom)

Sets the bottom margin to bottom.

See also bottom().

QMargins.setLeft (self, int aleft)

Sets the left margin to left.

See also left().

QMargins.setRight (self, int aright)

Sets the right margin to right.

See also right().

QMargins.setTop (self, int atop)

Sets the Top margin to Top.

See also top().

int QMargins.top (self)

Returns the top margin.

See also setTop().

bool QMargins.__eq__ (self, QMargins m2)

bool QMargins.__ne__ (self, QMargins m2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix.html0000644000076500000240000010225112536324510020032 0ustar philstaff00000000000000 QMatrix Class Reference
  Home · All Classes · Modules

QMatrix Class Reference
[QtGui module]

The QMatrix class specifies 2D transformations of a coordinate system. More...

Methods

  • __init__ (self)
  • __init__ (self, float m11, float m12, float m21, float m22, float dx, float dy)
  • __init__ (self, QMatrix matrix)
  • float det (self)
  • float determinant (self)
  • float dx (self)
  • float dy (self)
  • (QMatrix, bool invertible) inverted (self)
  • bool isIdentity (self)
  • bool isInvertible (self)
  • float m11 (self)
  • float m12 (self)
  • float m21 (self)
  • float m22 (self)
  • (int tx, int ty) map (self, int x, int y)
  • (float tx, float ty) map (self, float x, float y)
  • QPoint map (self, QPoint p)
  • QPointF map (self, QPointF p)
  • QLine map (self, QLine l)
  • QLineF map (self, QLineF l)
  • QPolygonF map (self, QPolygonF a)
  • QPolygon map (self, QPolygon a)
  • QRegion map (self, QRegion r)
  • QPainterPath map (self, QPainterPath p)
  • QRect mapRect (self, QRect)
  • QRectF mapRect (self, QRectF)
  • QPolygon mapToPolygon (self, QRect r)
  • reset (self)
  • QMatrix rotate (self, float a)
  • QMatrix scale (self, float sx, float sy)
  • setMatrix (self, float m11, float m12, float m21, float m22, float dx, float dy)
  • QMatrix shear (self, float sh, float sv)
  • QMatrix translate (self, float dx, float dy)

Special Methods


Detailed Description

This class can be pickled.

The QMatrix class specifies 2D transformations of a coordinate system.

A matrix specifies how to translate, scale, shear or rotate the coordinate system, and is typically used when rendering graphics. QMatrix, in contrast to QTransform, does not allow perspective transformations. QTransform is the recommended transformation class in Qt.

A QMatrix object can be built using the setMatrix(), scale(), rotate(), translate() and shear() functions. Alternatively, it can be built by applying basic matrix operations. The matrix can also be defined when constructed, and it can be reset to the identity matrix (the default) using the reset() function.

The QMatrix class supports mapping of graphic primitives: A given point, line, polygon, region, or painter path can be mapped to the coordinate system defined by this matrix using the map() function. In case of a rectangle, its coordinates can be transformed using the mapRect() function. A rectangle can also be transformed into a polygon (mapped to the coordinate system defined by this matrix), using the mapToPolygon() function.

QMatrix provides the isIdentity() function which returns true if the matrix is the identity matrix, and the isInvertible() function which returns true if the matrix is non-singular (i.e. AB = BA = I). The inverted() function returns an inverted copy of this matrix if it is invertible (otherwise it returns the identity matrix). In addition, QMatrix provides the determinant() function returning the matrix's determinant.

Finally, the QMatrix class supports matrix multiplication, and objects of the class can be streamed as well as compared.

Rendering Graphics

When rendering graphics, the matrix defines the transformations but the actual transformation is performed by the drawing routines in QPainter.

By default, QPainter operates on the associated device's own coordinate system. The standard coordinate system of a QPaintDevice has its origin located at the top-left position. The x values increase to the right; y values increase downward. For a complete description, see the coordinate system documentation.

QPainter has functions to translate, scale, shear and rotate the coordinate system without using a QMatrix. For example:

 void SimpleTransformation.paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     painter.setPen(QPen(Qt.blue, 1, Qt.DashLine));
     painter.drawRect(0, 0, 100, 100);

     painter.rotate(45);

     painter.setFont(QFont("Helvetica", 24));
     painter.setPen(QPen(Qt.black, 1));
     painter.drawText(20, 10, "QMatrix");
 }

Although these functions are very convenient, it can be more efficient to build a QMatrix and call QPainter.setMatrix() if you want to perform more than a single transform operation. For example:

 void CombinedTransformation.paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     painter.setPen(QPen(Qt.blue, 1, Qt.DashLine));
     painter.drawRect(0, 0, 100, 100);

     QMatrix matrix;
     matrix.translate(50, 50);
     matrix.rotate(45);
     matrix.scale(0.5, 1.0);
     painter.setMatrix(matrix);

     painter.setFont(QFont("Helvetica", 24));
     painter.setPen(QPen(Qt.black, 1));
     painter.drawText(20, 10, "QMatrix");
 }

Basic Matrix Operations

A QMatrix object contains a 3 x 3 matrix. The dx and dy elements specify horizontal and vertical translation. The m11 and m22 elements specify horizontal and vertical scaling. And finally, the m21 and m12 elements specify horizontal and vertical shearing.

QMatrix transforms a point in the plane to another point using the following formulas:

 x' = m11*x + m21*y + dx
 y' = m22*y + m12*x + dy

The point (x, y) is the original point, and (x', y') is the transformed point. (x', y') can be transformed back to (x, y) by performing the same operation on the inverted() matrix.

The various matrix elements can be set when constructing the matrix, or by using the setMatrix() function later on. They can also be manipulated using the translate(), rotate(), scale() and shear() convenience functions, The currently set values can be retrieved using the m11(), m12(), m21(), m22(), dx() and dy() functions.

Translation is the simplest transformation. Setting dx and dy will move the coordinate system dx units along the X axis and dy units along the Y axis. Scaling can be done by setting m11 and m22. For example, setting m11 to 2 and m22 to 1.5 will double the height and increase the width by 50%. The identity matrix has m11 and m22 set to 1 (all others are set to 0) mapping a point to itself. Shearing is controlled by m12 and m21. Setting these elements to values different from zero will twist the coordinate system. Rotation is achieved by carefully setting both the shearing factors and the scaling factors.

Here's the combined transformations example using basic matrix operations:

 void BasicOperations.paintEvent(QPaintEvent *)
 {
     double pi = 3.14;

     double a    = pi/180 * 45.0;
     double sina = sin(a);
     double cosa = cos(a);

     QMatrix translationMatrix(1, 0, 0, 1, 50.0, 50.0);
     QMatrix rotationMatrix(cosa, sina, -sina, cosa, 0, 0);
     QMatrix scalingMatrix(0.5, 0, 0, 1.0, 0, 0);

     QMatrix matrix;
     matrix =  scalingMatrix * rotationMatrix * translationMatrix;

     QPainter painter(this);
     painter.setPen(QPen(Qt.blue, 1, Qt.DashLine));
     painter.drawRect(0, 0, 100, 100);

     painter.setMatrix(matrix);

     painter.setFont(QFont("Helvetica", 24));
     painter.setPen(QPen(Qt.black, 1));
     painter.drawText(20, 10, "QMatrix");
 }

Method Documentation

QMatrix.__init__ (self)

Constructs an identity matrix.

All elements are set to zero except m11 and m22 (specifying the scale), which are set to 1.

See also reset().

QMatrix.__init__ (self, float m11, float m12, float m21, float m22, float dx, float dy)

QMatrix.__init__ (self, QMatrix matrix)

Constructs a matrix with the elements, m11, m12, m21, m22, dx and dy.

See also setMatrix().

float QMatrix.det (self)

float QMatrix.determinant (self)

Returns the matrix's determinant.

This function was introduced in Qt 4.6.

float QMatrix.dx (self)

Returns the horizontal translation factor.

See also translate() and Basic Matrix Operations.

float QMatrix.dy (self)

Returns the vertical translation factor.

See also translate() and Basic Matrix Operations.

(QMatrix, bool invertible) QMatrix.inverted (self)

Returns an inverted copy of this matrix.

If the matrix is singular (not invertible), the returned matrix is the identity matrix. If invertible is valid (i.e. not 0), its value is set to true if the matrix is invertible, otherwise it is set to false.

See also isInvertible().

bool QMatrix.isIdentity (self)

Returns true if the matrix is the identity matrix, otherwise returns false.

See also reset().

bool QMatrix.isInvertible (self)

Returns true if the matrix is invertible, otherwise returns false.

See also inverted().

float QMatrix.m11 (self)

Returns the horizontal scaling factor.

See also scale() and Basic Matrix Operations.

float QMatrix.m12 (self)

Returns the vertical shearing factor.

See also shear() and Basic Matrix Operations.

float QMatrix.m21 (self)

Returns the horizontal shearing factor.

See also shear() and Basic Matrix Operations.

float QMatrix.m22 (self)

Returns the vertical scaling factor.

See also scale() and Basic Matrix Operations.

(int tx, int ty) QMatrix.map (self, int x, int y)

Maps the given coordinates x and y into the coordinate system defined by this matrix. The resulting values are put in *tx and *ty, respectively.

The coordinates are transformed using the following formulas:

 x' = m11*x + m21*y + dx
 y' = m22*y + m12*x + dy

The point (x, y) is the original point, and (x', y') is the transformed point.

See also Basic Matrix Operations.

(float tx, float ty) QMatrix.map (self, float x, float y)

QPoint QMatrix.map (self, QPoint p)

This is an overloaded function.

Maps the given coordinates x and y into the coordinate system defined by this matrix. The resulting values are put in *tx and *ty, respectively. Note that the transformed coordinates are rounded to the nearest integer.

QPointF QMatrix.map (self, QPointF p)

This is an overloaded function.

Creates and returns a QPointF object that is a copy of the given point, mapped into the coordinate system defined by this matrix.

QLine QMatrix.map (self, QLine l)

This is an overloaded function.

Creates and returns a QPoint object that is a copy of the given point, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.

QLineF QMatrix.map (self, QLineF l)

This is an overloaded function.

Creates and returns a QLineF object that is a copy of the given line, mapped into the coordinate system defined by this matrix.

QPolygonF QMatrix.map (self, QPolygonF a)

This is an overloaded function.

Creates and returns a QLine object that is a copy of the given line, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.

QPolygon QMatrix.map (self, QPolygon a)

This is an overloaded function.

Creates and returns a QPolygonF object that is a copy of the given polygon, mapped into the coordinate system defined by this matrix.

QRegion QMatrix.map (self, QRegion r)

This is an overloaded function.

Creates and returns a QPolygon object that is a copy of the given polygon, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.

QPainterPath QMatrix.map (self, QPainterPath p)

This is an overloaded function.

Creates and returns a QRegion object that is a copy of the given region, mapped into the coordinate system defined by this matrix.

Calling this method can be rather expensive if rotations or shearing are used.

QRect QMatrix.mapRect (self, QRect)

Creates and returns a QRectF object that is a copy of the given rectangle, mapped into the coordinate system defined by this matrix.

The rectangle's coordinates are transformed using the following formulas:

 x' = m11*x + m21*y + dx
 y' = m22*y + m12*x + dy

If rotation or shearing has been specified, this function returns the bounding rectangle. To retrieve the exact region the given rectangle maps to, use the mapToPolygon() function instead.

See also mapToPolygon() and Basic Matrix Operations.

QRectF QMatrix.mapRect (self, QRectF)

This is an overloaded function.

Creates and returns a QRect object that is a copy of the given rectangle, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.

QPolygon QMatrix.mapToPolygon (self, QRect r)

Creates and returns a QPolygon representation of the given rectangle, mapped into the coordinate system defined by this matrix.

The rectangle's coordinates are transformed using the following formulas:

 x' = m11*x + m21*y + dx
 y' = m22*y + m12*x + dy

Polygons and rectangles behave slightly differently when transformed (due to integer rounding), so matrix.map(QPolygon(rectangle)) is not always the same as matrix.mapToPolygon(rectangle).

See also mapRect() and Basic Matrix Operations.

QMatrix.reset (self)

Resets the matrix to an identity matrix, i.e. all elements are set to zero, except m11 and m22 (specifying the scale) which are set to 1.

See also QMatrix(), isIdentity(), and Basic Matrix Operations.

QMatrix QMatrix.rotate (self, float a)

Rotates the coordinate system the given degrees counterclockwise.

Note that if you apply a QMatrix to a point defined in widget coordinates, the direction of the rotation will be clockwise because the y-axis points downwards.

Returns a reference to the matrix.

See also setMatrix().

QMatrix QMatrix.scale (self, float sx, float sy)

Scales the coordinate system by sx horizontally and sy vertically, and returns a reference to the matrix.

See also setMatrix().

QMatrix.setMatrix (self, float m11, float m12, float m21, float m22, float dx, float dy)

Sets the matrix elements to the specified values, m11, m12, m21, m22, dx and dy.

Note that this function replaces the previous values. QMatrix provide the translate(), rotate(), scale() and shear() convenience functions to manipulate the various matrix elements based on the currently defined coordinate system.

See also QMatrix().

QMatrix QMatrix.shear (self, float sh, float sv)

Shears the coordinate system by sh horizontally and sv vertically, and returns a reference to the matrix.

See also setMatrix().

QMatrix QMatrix.translate (self, float dx, float dy)

Moves the coordinate system dx along the x axis and dy along the y axis, and returns a reference to the matrix.

See also setMatrix().

bool QMatrix.__eq__ (self, QMatrix)

QMatrix QMatrix.__imul__ (self, QMatrix)

QMatrix QMatrix.__mul__ (self, QMatrix o)

bool QMatrix.__ne__ (self, QMatrix)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix2x2.html0000644000076500000240000001305012536324504020367 0ustar philstaff00000000000000 QMatrix2x2 Class Reference
  Home · All Classes · Modules

QMatrix2x2 Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

This class can be pickled.


Method Documentation

QMatrix2x2.__init__ (self)

QMatrix2x2.__init__ (self, QMatrix2x2 other)

QMatrix2x2.__init__ (self, sequence-of-float values)

list-of-float QMatrix2x2.copyDataTo (self)

list-of-float QMatrix2x2.data (self)

QMatrix2x2.fill (self, float value)

bool QMatrix2x2.isIdentity (self)

QMatrix2x2.setToIdentity (self)

QMatrix2x2 QMatrix2x2.transposed (self)

bool QMatrix2x2.__eq__ (self, QMatrix2x2)

object QMatrix2x2.__getitem__ (self, object)

QMatrix2x2 QMatrix2x2.__iadd__ (self, QMatrix2x2)

QMatrix2x2 QMatrix2x2.__idiv__ (self, float)

QMatrix2x2 QMatrix2x2.__imul__ (self, float)

QMatrix2x2 QMatrix2x2.__isub__ (self, QMatrix2x2)

bool QMatrix2x2.__ne__ (self, QMatrix2x2)

str QMatrix2x2.__repr__ (self)

QMatrix2x2.__setitem__ (self, object, float)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix2x3.html0000644000076500000240000001305012536324504020370 0ustar philstaff00000000000000 QMatrix2x3 Class Reference
  Home · All Classes · Modules

QMatrix2x3 Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description

This class can be pickled.


Method Documentation

QMatrix2x3.__init__ (self)

QMatrix2x3.__init__ (self, QMatrix2x3 other)

QMatrix2x3.__init__ (self, sequence-of-float values)

list-of-float QMatrix2x3.copyDataTo (self)

list-of-float QMatrix2x3.data (self)

QMatrix2x3.fill (self, float value)

bool QMatrix2x3.isIdentity (self)

QMatrix2x3.setToIdentity (self)

QMatrix3x2 QMatrix2x3.transposed (self)

bool QMatrix2x3.__eq__ (self, QMatrix2x3)

object QMatrix2x3.__getitem__ (self, object)

QMatrix2x3 QMatrix2x3.__iadd__ (self, QMatrix2x3)

QMatrix2x3 QMatrix2x3.__idiv__ (self, float)

QMatrix2x3 QMatrix2x3.__imul__ (self, float)

QMatrix2x3 QMatrix2x3.__isub__ (self, QMatrix2x3)

bool QMatrix2x3.__ne__ (self, QMatrix2x3)

str QMatrix2x3.__repr__ (self)

QMatrix2x3.__setitem__ (self, object, float)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix2x4.html0000644000076500000240000001305012536324504020371 0ustar philstaff00000000000000 QMatrix2x4 Class Reference
  Home · All Classes · Modules

QMatrix2x4 Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description

This class can be pickled.


Method Documentation

QMatrix2x4.__init__ (self)

QMatrix2x4.__init__ (self, QMatrix2x4 other)

QMatrix2x4.__init__ (self, sequence-of-float values)

list-of-float QMatrix2x4.copyDataTo (self)

list-of-float QMatrix2x4.data (self)

QMatrix2x4.fill (self, float value)

bool QMatrix2x4.isIdentity (self)

QMatrix2x4.setToIdentity (self)

QMatrix4x2 QMatrix2x4.transposed (self)

bool QMatrix2x4.__eq__ (self, QMatrix2x4)

object QMatrix2x4.__getitem__ (self, object)

QMatrix2x4 QMatrix2x4.__iadd__ (self, QMatrix2x4)

QMatrix2x4 QMatrix2x4.__idiv__ (self, float)

QMatrix2x4 QMatrix2x4.__imul__ (self, float)

QMatrix2x4 QMatrix2x4.__isub__ (self, QMatrix2x4)

bool QMatrix2x4.__ne__ (self, QMatrix2x4)

str QMatrix2x4.__repr__ (self)

QMatrix2x4.__setitem__ (self, object, float)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix3x2.html0000644000076500000240000001305012536324504020370 0ustar philstaff00000000000000 QMatrix3x2 Class Reference
  Home · All Classes · Modules

QMatrix3x2 Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description

This class can be pickled.


Method Documentation

QMatrix3x2.__init__ (self)

QMatrix3x2.__init__ (self, QMatrix3x2 other)

QMatrix3x2.__init__ (self, sequence-of-float values)

list-of-float QMatrix3x2.copyDataTo (self)

list-of-float QMatrix3x2.data (self)

QMatrix3x2.fill (self, float value)

bool QMatrix3x2.isIdentity (self)

QMatrix3x2.setToIdentity (self)

QMatrix2x3 QMatrix3x2.transposed (self)

bool QMatrix3x2.__eq__ (self, QMatrix3x2)

object QMatrix3x2.__getitem__ (self, object)

QMatrix3x2 QMatrix3x2.__iadd__ (self, QMatrix3x2)

QMatrix3x2 QMatrix3x2.__idiv__ (self, float)

QMatrix3x2 QMatrix3x2.__imul__ (self, float)

QMatrix3x2 QMatrix3x2.__isub__ (self, QMatrix3x2)

bool QMatrix3x2.__ne__ (self, QMatrix3x2)

str QMatrix3x2.__repr__ (self)

QMatrix3x2.__setitem__ (self, object, float)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix3x3.html0000644000076500000240000001305012536324504020371 0ustar philstaff00000000000000 QMatrix3x3 Class Reference
  Home · All Classes · Modules

QMatrix3x3 Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description

This class can be pickled.


Method Documentation

QMatrix3x3.__init__ (self)

QMatrix3x3.__init__ (self, QMatrix3x3 other)

QMatrix3x3.__init__ (self, sequence-of-float values)

list-of-float QMatrix3x3.copyDataTo (self)

list-of-float QMatrix3x3.data (self)

QMatrix3x3.fill (self, float value)

bool QMatrix3x3.isIdentity (self)

QMatrix3x3.setToIdentity (self)

QMatrix3x3 QMatrix3x3.transposed (self)

bool QMatrix3x3.__eq__ (self, QMatrix3x3)

object QMatrix3x3.__getitem__ (self, object)

QMatrix3x3 QMatrix3x3.__iadd__ (self, QMatrix3x3)

QMatrix3x3 QMatrix3x3.__idiv__ (self, float)

QMatrix3x3 QMatrix3x3.__imul__ (self, float)

QMatrix3x3 QMatrix3x3.__isub__ (self, QMatrix3x3)

bool QMatrix3x3.__ne__ (self, QMatrix3x3)

str QMatrix3x3.__repr__ (self)

QMatrix3x3.__setitem__ (self, object, float)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix3x4.html0000644000076500000240000001305012536324504020372 0ustar philstaff00000000000000 QMatrix3x4 Class Reference
  Home · All Classes · Modules

QMatrix3x4 Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description

This class can be pickled.


Method Documentation

QMatrix3x4.__init__ (self)

QMatrix3x4.__init__ (self, QMatrix3x4 other)

QMatrix3x4.__init__ (self, sequence-of-float values)

list-of-float QMatrix3x4.copyDataTo (self)

list-of-float QMatrix3x4.data (self)

QMatrix3x4.fill (self, float value)

bool QMatrix3x4.isIdentity (self)

QMatrix3x4.setToIdentity (self)

QMatrix4x3 QMatrix3x4.transposed (self)

bool QMatrix3x4.__eq__ (self, QMatrix3x4)

object QMatrix3x4.__getitem__ (self, object)

QMatrix3x4 QMatrix3x4.__iadd__ (self, QMatrix3x4)

QMatrix3x4 QMatrix3x4.__idiv__ (self, float)

QMatrix3x4 QMatrix3x4.__imul__ (self, float)

QMatrix3x4 QMatrix3x4.__isub__ (self, QMatrix3x4)

bool QMatrix3x4.__ne__ (self, QMatrix3x4)

str QMatrix3x4.__repr__ (self)

QMatrix3x4.__setitem__ (self, object, float)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix4x2.html0000644000076500000240000001305012536324504020371 0ustar philstaff00000000000000 QMatrix4x2 Class Reference
  Home · All Classes · Modules

QMatrix4x2 Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description

This class can be pickled.


Method Documentation

QMatrix4x2.__init__ (self)

QMatrix4x2.__init__ (self, QMatrix4x2 other)

QMatrix4x2.__init__ (self, sequence-of-float values)

list-of-float QMatrix4x2.copyDataTo (self)

list-of-float QMatrix4x2.data (self)

QMatrix4x2.fill (self, float value)

bool QMatrix4x2.isIdentity (self)

QMatrix4x2.setToIdentity (self)

QMatrix2x4 QMatrix4x2.transposed (self)

bool QMatrix4x2.__eq__ (self, QMatrix4x2)

object QMatrix4x2.__getitem__ (self, object)

QMatrix4x2 QMatrix4x2.__iadd__ (self, QMatrix4x2)

QMatrix4x2 QMatrix4x2.__idiv__ (self, float)

QMatrix4x2 QMatrix4x2.__imul__ (self, float)

QMatrix4x2 QMatrix4x2.__isub__ (self, QMatrix4x2)

bool QMatrix4x2.__ne__ (self, QMatrix4x2)

str QMatrix4x2.__repr__ (self)

QMatrix4x2.__setitem__ (self, object, float)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix4x3.html0000644000076500000240000001305012536324504020372 0ustar philstaff00000000000000 QMatrix4x3 Class Reference
  Home · All Classes · Modules

QMatrix4x3 Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description

This class can be pickled.


Method Documentation

QMatrix4x3.__init__ (self)

QMatrix4x3.__init__ (self, QMatrix4x3 other)

QMatrix4x3.__init__ (self, sequence-of-float values)

list-of-float QMatrix4x3.copyDataTo (self)

list-of-float QMatrix4x3.data (self)

QMatrix4x3.fill (self, float value)

bool QMatrix4x3.isIdentity (self)

QMatrix4x3.setToIdentity (self)

QMatrix3x4 QMatrix4x3.transposed (self)

bool QMatrix4x3.__eq__ (self, QMatrix4x3)

object QMatrix4x3.__getitem__ (self, object)

QMatrix4x3 QMatrix4x3.__iadd__ (self, QMatrix4x3)

QMatrix4x3 QMatrix4x3.__idiv__ (self, float)

QMatrix4x3 QMatrix4x3.__imul__ (self, float)

QMatrix4x3 QMatrix4x3.__isub__ (self, QMatrix4x3)

bool QMatrix4x3.__ne__ (self, QMatrix4x3)

str QMatrix4x3.__repr__ (self)

QMatrix4x3.__setitem__ (self, object, float)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmatrix4x4.html0000644000076500000240000010461212536324510020375 0ustar philstaff00000000000000 QMatrix4x4 Class Reference
  Home · All Classes · Modules

QMatrix4x4 Class Reference
[
QtGui module]

The QMatrix4x4 class represents a 4x4 transformation matrix in 3D space. More...

Methods

  • __init__ (self)
  • __init__ (self, sequence-of-float values)
  • __init__ (self, float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44)
  • __init__ (self, QTransform transform)
  • __init__ (self, QMatrix matrix)
  • __init__ (self, QMatrix4x4)
  • QVector4D column (self, int index)
  • list-of-float copyDataTo (self)
  • list-of-float data (self)
  • float determinant (self)
  • fill (self, float value)
  • frustum (self, float left, float right, float bottom, float top, float nearPlane, float farPlane)
  • (QMatrix4x4, bool invertible) inverted (self)
  • bool isIdentity (self)
  • lookAt (self, QVector3D eye, QVector3D center, QVector3D up)
  • QPoint map (self, QPoint point)
  • QPointF map (self, QPointF point)
  • QVector3D map (self, QVector3D point)
  • QVector4D map (self, QVector4D point)
  • QRect mapRect (self, QRect rect)
  • QRectF mapRect (self, QRectF rect)
  • QVector3D mapVector (self, QVector3D vector)
  • QMatrix3x3 normalMatrix (self)
  • optimize (self)
  • ortho (self, QRect rect)
  • ortho (self, QRectF rect)
  • ortho (self, float left, float right, float bottom, float top, float nearPlane, float farPlane)
  • perspective (self, float angle, float aspect, float nearPlane, float farPlane)
  • rotate (self, float angle, QVector3D vector)
  • rotate (self, float angle, float x, float y, float z = 0)
  • rotate (self, QQuaternion quaternion)
  • QVector4D row (self, int index)
  • scale (self, QVector3D vector)
  • scale (self, float x, float y)
  • scale (self, float x, float y, float z)
  • scale (self, float factor)
  • setColumn (self, int index, QVector4D value)
  • setRow (self, int index, QVector4D value)
  • QMatrix toAffine (self)
  • QTransform toTransform (self)
  • QTransform toTransform (self, float distanceToPlane)
  • translate (self, QVector3D vector)
  • translate (self, float x, float y)
  • translate (self, float x, float y, float z)
  • QMatrix4x4 transposed (self)

Special Methods

  • QMatrix4x4 __add__ (self, QMatrix4x4 m2)
  • QMatrix4x4 __div__ (self, float divisor)
  • bool __eq__ (self, QMatrix4x4 other)
  • object __getitem__ (self, object)
  • QMatrix4x4 __iadd__ (self, QMatrix4x4 other)
  • QMatrix4x4 __idiv__ (self, float divisor)
  • QMatrix4x4 __imul__ (self, QMatrix4x4 other)
  • QMatrix4x4 __imul__ (self, float factor)
  • QMatrix4x4 __isub__ (self, QMatrix4x4 other)
  • QMatrix4x4 __mul__ (self, QMatrix4x4 m2)
  • QVector3D __mul__ (self, QVector3D vector)
  • QVector4D __mul__ (self, QVector4D vector)
  • QPoint __mul__ (self, QPoint point)
  • QPointF __mul__ (self, QPointF point)
  • QMatrix4x4 __mul__ (self, QMatrix4x4 matrix)
  • QMatrix4x4 __mul__ (self, float factor)
  • bool __ne__ (self, QMatrix4x4 other)
  • QMatrix4x4 __neg__ (self)
  • str __repr__ (self)
  • __setitem__ (self, object, float)
  • QMatrix4x4 __sub__ (self, QMatrix4x4 m2)

Detailed Description

This class can be pickled.

The QMatrix4x4 class represents a 4x4 transformation matrix in 3D space.


Method Documentation

QMatrix4x4.__init__ (self)

Constructs an identity matrix.

QMatrix4x4.__init__ (self, sequence-of-float values)

Constructs a matrix from the given 16 floating-point values. The contents of the array values is assumed to be in row-major order.

If the matrix has a special type (identity, translate, scale, etc), the programmer should follow this constructor with a call to optimize() if they wish QMatrix4x4 to optimize further calls to translate(), scale(), etc.

See also copyDataTo() and optimize().

QMatrix4x4.__init__ (self, float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44)

Constructs a matrix from the 16 elements m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, and m44. The elements are specified in row-major order.

If the matrix has a special type (identity, translate, scale, etc), the programmer should follow this constructor with a call to optimize() if they wish QMatrix4x4 to optimize further calls to translate(), scale(), etc.

See also optimize().

QMatrix4x4.__init__ (self, QTransform transform)

Constructs a 4x4 matrix from the left-most 4 columns and top-most 4 rows of matrix. If matrix has less than 4 columns or rows, the remaining elements are filled with elements from the identity matrix.

See also toGenericMatrix().

QMatrix4x4.__init__ (self, QMatrix matrix)

QMatrix4x4.__init__ (self, QMatrix4x4)

Constructs a 4x4 matrix from the conventional Qt 2D transformation matrix transform.

If transform has a special type (identity, translate, scale, etc), the programmer should follow this constructor with a call to optimize() if they wish QMatrix4x4 to optimize further calls to translate(), scale(), etc.

See also toTransform() and optimize().

QVector4D QMatrix4x4.column (self, int index)

Returns the elements of column index as a 4D vector.

See also setColumn() and row().

list-of-float QMatrix4x4.copyDataTo (self)

Retrieves the 16 items in this matrix and copies them to values in row-major order.

list-of-float QMatrix4x4.data (self)

Returns a pointer to the raw data of this matrix.

See also constData() and optimize().

float QMatrix4x4.determinant (self)

Returns the determinant of this matrix.

QMatrix4x4.fill (self, float value)

Fills all elements of this matrx with value.

QMatrix4x4.flipCoordinates (self)

Flips between right-handed and left-handed coordinate systems by multiplying the y and z co-ordinates by -1. This is normally used to create a left-handed orthographic view without scaling the viewport as ortho() does.

See also ortho().

QMatrix4x4.frustum (self, float left, float right, float bottom, float top, float nearPlane, float farPlane)

Multiplies this matrix by another that applies a perspective frustum projection for a window with lower-left corner (left, bottom), upper-right corner (right, top), and the specified nearPlane and farPlane clipping planes.

See also ortho() and perspective().

(QMatrix4x4, bool invertible) QMatrix4x4.inverted (self)

Returns the inverse of this matrix. Returns the identity if this matrix cannot be inverted; i.e. determinant() is zero. If invertible is not null, then true will be written to that location if the matrix can be inverted; false otherwise.

If the matrix is recognized as the identity or an orthonormal matrix, then this function will quickly invert the matrix using optimized routines.

See also determinant() and normalMatrix().

bool QMatrix4x4.isIdentity (self)

Returns true if this matrix is the identity; false otherwise.

See also setToIdentity().

QMatrix4x4.lookAt (self, QVector3D eye, QVector3D center, QVector3D up)

Multiplies this matrix by another that applies an eye position transformation. The center value indicates the center of the view that the eye is looking at. The up value indicates which direction should be considered up with respect to the eye.

QPoint QMatrix4x4.map (self, QPoint point)

Maps point by multiplying this matrix by point.

See also mapRect().

QPointF QMatrix4x4.map (self, QPointF point)

Maps point by multiplying this matrix by point.

See also mapRect().

QVector3D QMatrix4x4.map (self, QVector3D point)

Maps point by multiplying this matrix by point.

See also mapRect() and mapVector().

QVector4D QMatrix4x4.map (self, QVector4D point)

Maps point by multiplying this matrix by point.

See also mapRect().

QRect QMatrix4x4.mapRect (self, QRect rect)

Maps rect by multiplying this matrix by the corners of rect and then forming a new rectangle from the results. The returned rectangle will be an ordinary 2D rectangle with sides parallel to the horizontal and vertical axes.

See also map().

QRectF QMatrix4x4.mapRect (self, QRectF rect)

Maps rect by multiplying this matrix by the corners of rect and then forming a new rectangle from the results. The returned rectangle will be an ordinary 2D rectangle with sides parallel to the horizontal and vertical axes.

See also map().

QVector3D QMatrix4x4.mapVector (self, QVector3D vector)

Maps vector by multiplying the top 3x3 portion of this matrix by vector. The translation and projection components of this matrix are ignored.

See also map().

QMatrix3x3 QMatrix4x4.normalMatrix (self)

Returns the normal matrix corresponding to this 4x4 transformation. The normal matrix is the transpose of the inverse of the top-left 3x3 part of this 4x4 matrix. If the 3x3 sub-matrix is not invertible, this function returns the identity.

See also inverted().

QMatrix4x4.optimize (self)

Optimize the usage of this matrix from its current elements.

Some operations such as translate(), scale(), and rotate() can be performed more efficiently if the matrix being modified is already known to be the identity, a previous translate(), a previous scale(), etc.

Normally the QMatrix4x4 class keeps track of this special type internally as operations are performed. However, if the matrix is modified directly with operator()() or data(), then QMatrix4x4 will lose track of the special type and will revert to the safest but least efficient operations thereafter.

By calling optimize() after directly modifying the matrix, the programmer can force QMatrix4x4 to recover the special type if the elements appear to conform to one of the known optimized types.

See also operator()(), data(), and translate().

QMatrix4x4.ortho (self, QRect rect)

Multiplies this matrix by another that applies an orthographic projection for a window with lower-left corner (left, bottom), upper-right corner (right, top), and the specified nearPlane and farPlane clipping planes.

See also frustum() and perspective().

QMatrix4x4.ortho (self, QRectF rect)

This is an overloaded function.

Multiplies this matrix by another that applies an orthographic projection for a window with boundaries specified by rect. The near and far clipping planes will be -1 and 1 respectively.

See also frustum() and perspective().

QMatrix4x4.ortho (self, float left, float right, float bottom, float top, float nearPlane, float farPlane)

This is an overloaded function.

Multiplies this matrix by another that applies an orthographic projection for a window with boundaries specified by rect. The near and far clipping planes will be -1 and 1 respectively.

See also frustum() and perspective().

QMatrix4x4.perspective (self, float angle, float aspect, float nearPlane, float farPlane)

Multiplies this matrix by another that applies a perspective projection. The field of view will be angle degrees within a window with a given aspect ratio. The projection will have the specified nearPlane and farPlane clipping planes.

See also ortho() and frustum().

QMatrix4x4.rotate (self, float angle, QVector3D vector)

Multiples this matrix by another that rotates coordinates through angle degrees about vector.

See also scale() and translate().

QMatrix4x4.rotate (self, float angle, float x, float y, float z = 0)

Multiples this matrix by another that rotates coordinates according to a specified quaternion. The quaternion is assumed to have been normalized.

See also scale(), translate(), and QQuaternion.

QMatrix4x4.rotate (self, QQuaternion quaternion)

This is an overloaded function.

Multiplies this matrix by another that rotates coordinates through angle degrees about the vector (x, y, z).

See also scale() and translate().

QVector4D QMatrix4x4.row (self, int index)

Returns the elements of row index as a 4D vector.

See also setRow() and column().

QMatrix4x4.scale (self, QVector3D vector)

Multiplies this matrix by another that scales coordinates by the components of vector.

See also translate() and rotate().

QMatrix4x4.scale (self, float x, float y)

This is an overloaded function.

Multiplies this matrix by another that scales coordinates by the components x, and y.

See also translate() and rotate().

QMatrix4x4.scale (self, float x, float y, float z)

This is an overloaded function.

Multiplies this matrix by another that scales coordinates by the components x, y, and z.

See also translate() and rotate().

QMatrix4x4.scale (self, float factor)

This is an overloaded function.

Multiplies this matrix by another that scales coordinates by the given factor.

See also translate() and rotate().

QMatrix4x4.setColumn (self, int index, QVector4D value)

Sets the elements of column index to the components of value.

See also column() and setRow().

QMatrix4x4.setRow (self, int index, QVector4D value)

Sets the elements of row index to the components of value.

See also row() and setColumn().

QMatrix4x4.setToIdentity (self)

Sets this matrix to the identity.

See also isIdentity().

QMatrix QMatrix4x4.toAffine (self)

Returns the conventional Qt 2D affine transformation matrix that corresponds to this matrix. It is assumed that this matrix only contains 2D affine transformation elements.

See also toTransform().

QTransform QMatrix4x4.toTransform (self)

Returns the conventional Qt 2D transformation matrix that corresponds to this matrix.

The returned QTransform is formed by simply dropping the third row and third column of the QMatrix4x4. This is suitable for implementing orthographic projections where the z co-ordinate should be dropped rather than projected.

See also toAffine().

QTransform QMatrix4x4.toTransform (self, float distanceToPlane)

Returns the conventional Qt 2D transformation matrix that corresponds to this matrix.

If distanceToPlane is non-zero, it indicates a projection factor to use to adjust for the z co-ordinate. The value of 1024 corresponds to the projection factor used by QTransform.rotate() for the x and y axes.

If distanceToPlane is zero, then the returned QTransform is formed by simply dropping the third row and third column of the QMatrix4x4. This is suitable for implementing orthographic projections where the z co-ordinate should be dropped rather than projected.

See also toAffine().

QMatrix4x4.translate (self, QVector3D vector)

Multiplies this matrix by another that translates coordinates by the components of vector.

See also scale() and rotate().

QMatrix4x4.translate (self, float x, float y)

This is an overloaded function.

Multiplies this matrix by another that translates coordinates by the components x, and y.

See also scale() and rotate().

QMatrix4x4.translate (self, float x, float y, float z)

This is an overloaded function.

Multiplies this matrix by another that translates coordinates by the components x, y, and z.

See also scale() and rotate().

QMatrix4x4 QMatrix4x4.transposed (self)

Returns this matrix, transposed about its diagonal.

QMatrix4x4 QMatrix4x4.__add__ (self, QMatrix4x4 m2)

QMatrix4x4 QMatrix4x4.__div__ (self, float divisor)

bool QMatrix4x4.__eq__ (self, QMatrix4x4 other)

object QMatrix4x4.__getitem__ (self, object)

QMatrix4x4 QMatrix4x4.__iadd__ (self, QMatrix4x4 other)

QMatrix4x4 QMatrix4x4.__idiv__ (self, float divisor)

QMatrix4x4 QMatrix4x4.__imul__ (self, QMatrix4x4 other)

QMatrix4x4 QMatrix4x4.__imul__ (self, float factor)

QMatrix4x4 QMatrix4x4.__isub__ (self, QMatrix4x4 other)

QMatrix4x4 QMatrix4x4.__mul__ (self, QMatrix4x4 m2)

QVector3D QMatrix4x4.__mul__ (self, QVector3D vector)

QVector4D QMatrix4x4.__mul__ (self, QVector4D vector)

QPoint QMatrix4x4.__mul__ (self, QPoint point)

QPointF QMatrix4x4.__mul__ (self, QPointF point)

QMatrix4x4 QMatrix4x4.__mul__ (self, QMatrix4x4 matrix)

QMatrix4x4 QMatrix4x4.__mul__ (self, float factor)

bool QMatrix4x4.__ne__ (self, QMatrix4x4 other)

QMatrix4x4 QMatrix4x4.__neg__ (self)

str QMatrix4x4.__repr__ (self)

QMatrix4x4.__setitem__ (self, object, float)

QMatrix4x4 QMatrix4x4.__sub__ (self, QMatrix4x4 m2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmdiarea-areaoptions.html0000644000076500000240000001402012536324510022446 0ustar philstaff00000000000000 QMdiArea.AreaOptions Class Reference
  Home · All Classes · Modules

QMdiArea.AreaOptions Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

AreaOption may be used whenever AreaOptions is expected.


Method Documentation

AreaOptions.__init__ (self, AreaOptions)

AreaOptions.__init__ (self, int)

AreaOptions.__init__ (self)

AreaOptions AreaOptions.__and__ (self, int mask)

int AreaOptions.__bool__ (self)

bool AreaOptions.__eq__ (self, AreaOptions f)

AreaOptions AreaOptions.__iand__ (self, int mask)

int AreaOptions.__int__ (self)

AreaOptions AreaOptions.__invert__ (self)

AreaOptions AreaOptions.__ior__ (self, AreaOptions f)

AreaOptions AreaOptions.__ixor__ (self, AreaOptions f)

bool AreaOptions.__ne__ (self, AreaOptions f)

AreaOptions AreaOptions.__or__ (self, AreaOptions f)

AreaOptions AreaOptions.__or__ (self, int f)

AreaOptions AreaOptions.__xor__ (self, AreaOptions f)

AreaOptions AreaOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmdiarea.html0000644000076500000240000007260312536324510020137 0ustar philstaff00000000000000 QMdiArea Class Reference
  Home · All Classes · Modules

QMdiArea Class Reference
[QtGui module]

The QMdiArea widget provides an area in which MDI windows are displayed. More...

Inherits QAbstractScrollArea.

Types

Methods

Qt Signals


Detailed Description

The QMdiArea widget provides an area in which MDI windows are displayed.

QMdiArea functions, essentially, like a window manager for MDI windows. For instance, it draws the windows it manages on itself and arranges them in a cascading or tile pattern. QMdiArea is commonly used as the center widget in a QMainWindow to create MDI applications, but can also be placed in any layout. The following code adds an area to a main window:

     QMainWindow *mainWindow = new QMainWindow;
     mainWindow->setCentralWidget(mdiArea);

Unlike the window managers for top-level windows, all window flags (Qt.WindowFlags) are supported by QMdiArea as long as the flags are supported by the current widget style. If a specific flag is not supported by the style (e.g., the WindowShadeButtonHint), you can still shade the window with showShaded().

Subwindows in QMdiArea are instances of QMdiSubWindow. They are added to an MDI area with addSubWindow(). It is common to pass a QWidget, which is set as the internal widget, to this function, but it is also possible to pass a QMdiSubWindow directly.The class inherits QWidget, and you can use the same API as with a normal top-level window when programming. QMdiSubWindow also has behavior that is specific to MDI windows. See the QMdiSubWindow class description for more details.

A subwindow becomes active when it gets the keyboard focus, or when setFocus() is called. The user activates a window by moving focus in the usual ways. The MDI area emits the subWindowActivated() signal when the active window changes, and the activeSubWindow() function returns the active subwindow.

The convenience function subWindowList() returns a list of all subwindows. This information could be used in a popup menu containing a list of windows, for example.

The subwindows are sorted by the current WindowOrder. This is used for the subWindowList() and for activateNextSubWindow() and acivatePreviousSubWindow(). Also, it is used when cascading or tiling the windows with cascadeSubWindows() and tileSubWindows().

QMdiArea provides two built-in layout strategies for subwindows: cascadeSubWindows() and tileSubWindows(). Both are slots and are easily connected to menu entries.

Note: The default scroll bar property for QMdiArea is Qt.ScrollBarAlwaysOff.


Type Documentation

QMdiArea.AreaOption

This enum describes options that customize the behavior of the QMdiArea.

Constant Value Description
QMdiArea.DontMaximizeSubWindowOnActivation 0x1 When the active subwindow is maximized, the default behavior is to maximize the next subwindow that is activated. Set this option if you do not want this behavior.

The AreaOptions type is a typedef for QFlags<AreaOption>. It stores an OR combination of AreaOption values.

QMdiArea.ViewMode

This enum describes the view mode of the area; i.e. how sub-windows will be displayed.

Constant Value Description
QMdiArea.SubWindowView 0 Display sub-windows with window frames (default).
QMdiArea.TabbedView 1 Display sub-windows with tabs in a tab bar.

This enum was introduced or modified in Qt 4.4.

See also setViewMode().

QMdiArea.WindowOrder

Specifies the criteria to use for ordering the list of child windows returned by subWindowList(). The functions cascadeSubWindows() and tileSubWindows() follow this order when arranging the windows.

Constant Value Description
QMdiArea.CreationOrder 0 The windows are returned in the order of their creation.
QMdiArea.StackingOrder 1 The windows are returned in the order in which they are stacked, with the top-most window being last in the list.
QMdiArea.ActivationHistoryOrder 2 The windows are returned in the order in which they were activated.

See also subWindowList().


Method Documentation

QMdiArea.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty mdi area. parent is passed to QWidget's constructor.

QMdiArea.activateNextSubWindow (self)

This method is also a Qt slot with the C++ signature void activateNextSubWindow().

Gives the keyboard focus to another window in the list of child windows. The window activated will be the next one determined by the current activation order.

See also activatePreviousSubWindow() and QMdiArea.WindowOrder.

QMdiArea.activatePreviousSubWindow (self)

This method is also a Qt slot with the C++ signature void activatePreviousSubWindow().

Gives the keyboard focus to another window in the list of child windows. The window activated will be the previous one determined by the current activation order.

See also activateNextSubWindow() and QMdiArea.WindowOrder.

WindowOrder QMdiArea.activationOrder (self)

QMdiSubWindow QMdiArea.activeSubWindow (self)

Returns a pointer to the current active subwindow. If no window is currently active, 0 is returned.

Subwindows are treated as top-level windows with respect to window state, i.e., if a widget outside the MDI area is the active window, no subwindow will be active. Note that if a widget in the window in which the MDI area lives gains focus, the window will be activated.

See also setActiveSubWindow() and Qt.WindowState.

QMdiSubWindow QMdiArea.addSubWindow (self, QWidget widget, Qt.WindowFlags flags = 0)

The widget argument has it's ownership transferred to Qt.

Adds widget as a new subwindow to the MDI area. If windowFlags are non-zero, they will override the flags set on the widget.

The widget can be either a QMdiSubWindow or another QWidget (in which case the MDI area will create a subwindow and set the widget as the internal widget).

Note: Once the subwindow has been added, its parent will be the viewport widget of the QMdiArea.

     QMdiArea mdiArea;
     QMdiSubWindow *subWindow1 = new QMdiSubWindow;
     subWindow1->setWidget(internalWidget1);
     subWindow1->setAttribute(Qt.WA_DeleteOnClose);
     mdiArea.addSubWindow(subWindow1);

     QMdiSubWindow *subWindow2 =
         mdiArea.addSubWindow(internalWidget2);

When you create your own subwindow, you must set the Qt.WA_DeleteOnClose widget attribute if you want the window to be deleted when closed in the MDI area. If not, the window will be hidden and the MDI area will not activate the next subwindow.

Returns the QMdiSubWindow that is added to the MDI area.

See also removeSubWindow().

QBrush QMdiArea.background (self)

QMdiArea.cascadeSubWindows (self)

This method is also a Qt slot with the C++ signature void cascadeSubWindows().

Arranges all the child windows in a cascade pattern.

See also tileSubWindows().

QMdiArea.childEvent (self, QChildEvent childEvent)

Reimplemented from QObject.childEvent().

QMdiArea.closeActiveSubWindow (self)

This method is also a Qt slot with the C++ signature void closeActiveSubWindow().

Closes the active subwindow.

See also closeAllSubWindows().

QMdiArea.closeAllSubWindows (self)

This method is also a Qt slot with the C++ signature void closeAllSubWindows().

Closes all subwindows by sending a QCloseEvent to each window. You may receive subWindowActivated() signals from subwindows before they are closed (if the MDI area activates the subwindow when another is closing).

Subwindows that ignore the close event will remain open.

See also closeActiveSubWindow().

QMdiSubWindow QMdiArea.currentSubWindow (self)

Returns a pointer to the current subwindow, or 0 if there is no current subwindow.

This function will return the same as activeSubWindow() if the QApplication containing QMdiArea is active.

See also activeSubWindow() and QApplication.activeWindow().

bool QMdiArea.documentMode (self)

bool QMdiArea.event (self, QEvent event)

Reimplemented from QObject.event().

bool QMdiArea.eventFilter (self, QObject object, QEvent event)

Reimplemented from QObject.eventFilter().

QSize QMdiArea.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QMdiArea.paintEvent (self, QPaintEvent paintEvent)

Reimplemented from QWidget.paintEvent().

QMdiArea.removeSubWindow (self, QWidget widget)

Removes widget from the MDI area. The widget must be either a QMdiSubWindow or a widget that is the internal widget of a subwindow. Note widget is never actually deleted by QMdiArea. If a QMdiSubWindow is passed in its parent is set to 0 and it is removed, but if an internal widget is passed in the child widget is set to 0 but the QMdiSubWindow is not removed.

See also addSubWindow().

QMdiArea.resizeEvent (self, QResizeEvent resizeEvent)

Reimplemented from QWidget.resizeEvent().

QMdiArea.scrollContentsBy (self, int dx, int dy)

Reimplemented from QAbstractScrollArea.scrollContentsBy().

QMdiArea.setActivationOrder (self, WindowOrder order)

QMdiArea.setActiveSubWindow (self, QMdiSubWindow window)

This method is also a Qt slot with the C++ signature void setActiveSubWindow(QMdiSubWindow*).

Activates the subwindow window. If window is 0, any current active window is deactivated.

See also activeSubWindow().

QMdiArea.setBackground (self, QBrush background)

QMdiArea.setDocumentMode (self, bool enabled)

QMdiArea.setOption (self, AreaOption option, bool on = True)

If on is true, option is enabled on the MDI area; otherwise it is disabled. See AreaOption for the effect of each option.

See also AreaOption and testOption().

QMdiArea.setTabPosition (self, QTabWidget.TabPosition position)

QMdiArea.setTabsClosable (self, bool closable)

QMdiArea.setTabShape (self, QTabWidget.TabShape shape)

QMdiArea.setTabsMovable (self, bool movable)

QMdiArea.setupViewport (self, QWidget viewport)

This slot is called by QAbstractScrollArea after setViewport() has been called. Reimplement this function in a subclass of QMdiArea to initialize the new viewport before it is used.

See also setViewport().

QMdiArea.setViewMode (self, ViewMode mode)

QMdiArea.showEvent (self, QShowEvent showEvent)

Reimplemented from QWidget.showEvent().

QSize QMdiArea.sizeHint (self)

Reimplemented from QWidget.sizeHint().

list-of-QMdiSubWindow QMdiArea.subWindowList (self, WindowOrder order = QMdiArea.CreationOrder)

Returns a list of all subwindows in the MDI area. If order is CreationOrder (the default), the windows are sorted in the order in which they were inserted into the workspace. If order is StackingOrder, the windows are listed in their stacking order, with the topmost window as the last item in the list. If order is ActivationHistoryOrder, the windows are listed according to their recent activation history.

See also WindowOrder.

QTabWidget.TabPosition QMdiArea.tabPosition (self)

bool QMdiArea.tabsClosable (self)

QTabWidget.TabShape QMdiArea.tabShape (self)

bool QMdiArea.tabsMovable (self)

bool QMdiArea.testOption (self, AreaOption opton)

Returns true if option is enabled; otherwise returns false.

See also AreaOption and setOption().

QMdiArea.tileSubWindows (self)

This method is also a Qt slot with the C++ signature void tileSubWindows().

Arranges all child windows in a tile pattern.

See also cascadeSubWindows().

QMdiArea.timerEvent (self, QTimerEvent timerEvent)

Reimplemented from QObject.timerEvent().

ViewMode QMdiArea.viewMode (self)

bool QMdiArea.viewportEvent (self, QEvent event)

Reimplemented from QAbstractScrollArea.viewportEvent().


Qt Signal Documentation

void subWindowActivated (QMdiSubWindow*)

This is the default overload of this signal.

QMdiArea emits this signal after window has been activated. When window is 0, QMdiArea has just deactivated its last active window, and there are no active windows on the workspace.

See also QMdiArea.activeSubWindow().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmdisubwindow-subwindowoptions.html0000644000076500000240000001522012536324510024673 0ustar philstaff00000000000000 QMdiSubWindow.SubWindowOptions Class Reference
  Home · All Classes · Modules

QMdiSubWindow.SubWindowOptions Class Reference
[QtGui module]

Methods

Special Methods

  • SubWindowOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, SubWindowOptions f)
  • SubWindowOptions __iand__ (self, int mask)
  • int __int__ (self)
  • SubWindowOptions __invert__ (self)
  • SubWindowOptions __ior__ (self, SubWindowOptions f)
  • SubWindowOptions __ixor__ (self, SubWindowOptions f)
  • bool __ne__ (self, SubWindowOptions f)
  • SubWindowOptions __or__ (self, SubWindowOptions f)
  • SubWindowOptions __or__ (self, int f)
  • SubWindowOptions __xor__ (self, SubWindowOptions f)
  • SubWindowOptions __xor__ (self, int f)

Detailed Description

SubWindowOption may be used whenever SubWindowOptions is expected.


Method Documentation

SubWindowOptions.__init__ (self, SubWindowOptions)

SubWindowOptions.__init__ (self, int)

SubWindowOptions.__init__ (self)

SubWindowOptions SubWindowOptions.__and__ (self, int mask)

int SubWindowOptions.__bool__ (self)

bool SubWindowOptions.__eq__ (self, SubWindowOptions f)

SubWindowOptions SubWindowOptions.__iand__ (self, int mask)

int SubWindowOptions.__int__ (self)

SubWindowOptions SubWindowOptions.__invert__ (self)

SubWindowOptions SubWindowOptions.__ior__ (self, SubWindowOptions f)

SubWindowOptions SubWindowOptions.__ixor__ (self, SubWindowOptions f)

bool SubWindowOptions.__ne__ (self, SubWindowOptions f)

SubWindowOptions SubWindowOptions.__or__ (self, SubWindowOptions f)

SubWindowOptions SubWindowOptions.__or__ (self, int f)

SubWindowOptions SubWindowOptions.__xor__ (self, SubWindowOptions f)

SubWindowOptions SubWindowOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmdisubwindow.html0000644000076500000240000006122612536324510021247 0ustar philstaff00000000000000 QMdiSubWindow Class Reference
  Home · All Classes · Modules

QMdiSubWindow Class Reference
[QtGui module]

The QMdiSubWindow class provides a subwindow class for QMdiArea. More...

Inherits QWidget.

Types

Methods

Qt Signals


Detailed Description

The QMdiSubWindow class provides a subwindow class for QMdiArea.

QMdiSubWindow represents a top-level window in a QMdiArea, and consists of a title bar with window decorations, an internal widget, and (depending on the current style) a window frame and a size grip. QMdiSubWindow has its own layout, which consists of the title bar and a center area for the internal widget.

The most common way to construct a QMdiSubWindow is to call QMdiArea.addSubWindow() with the internal widget as the argument. You can also create a subwindow yourself, and set an internal widget by calling setWidget().

You use the same API when programming with subwindows as with regular top-level windows (e.g., you can call functions such as show(), hide(), showMaximized(), and setWindowTitle()).

Subwindow Handling

QMdiSubWindow also supports behavior specific to subwindows in an MDI area.

By default, each QMdiSubWindow is visible inside the MDI area viewport when moved around, but it is also possible to specify transparent window movement and resizing behavior, where only the outline of a subwindow is updated during these operations. The setOption() function is used to enable this behavior.

The isShaded() function detects whether the subwindow is currently shaded (i.e., the window is collapsed so that only the title bar is visible). To enter shaded mode, call showShaded(). QMdiSubWindow emits the windowStateChanged() signal whenever the window state has changed (e.g., when the window becomes minimized, or is restored). It also emits aboutToActivate() before it is activated.

In keyboard-interactive mode, the windows are moved and resized with the keyboard. You can enter this mode through the system menu of the window. The keyboardSingleStep and keyboardPageStep properties control the distance the widget is moved or resized for each keypress event. When shift is pressed down page step is used; otherwise single step is used.

You can also change the active window with the keyboard. By pressing the control and tab keys at the same time, the next (using the current WindowOrder) subwindow will be activated. By pressing control, shift, and tab, you will activate the previous window. This is equivalent to calling activateNextSubWindow() and activatePreviousSubWindow(). Note that these shortcuts overrides global shortcuts, but not the QMdiAreas shortcuts.


Type Documentation

QMdiSubWindow.SubWindowOption

This enum describes options that customize the behavior of QMdiSubWindow.

Constant Value Description
QMdiSubWindow.RubberBandResize 0x4 If you enable this option, a rubber band control is used to represent the subwindow's outline, and the user resizes this instead of the subwindow itself. As a result, the subwindow maintains its original position and size until the resize operation has been completed, at which time it will receive a single QResizeEvent. By default, this option is disabled.
QMdiSubWindow.RubberBandMove 0x8 If you enable this option, a rubber band control is used to represent the subwindow's outline, and the user moves this instead of the subwindow itself. As a result, the subwindow remains in its original position until the move operation has completed, at which time a QMoveEvent is sent to the window. By default, this option is disabled.

The SubWindowOptions type is a typedef for QFlags<SubWindowOption>. It stores an OR combination of SubWindowOption values.


Method Documentation

QMdiSubWindow.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QMdiSubWindow widget. The parent and flags arguments are passed to QWidget's constructor.

Instead of using addSubWindow(), it is also simply possible to use setParent() when you add the subwindow to a QMdiArea.

Note that only QMdiSubWindows can be set as children of QMdiArea; you cannot, for instance, write:

 QMdiArea mdiArea;
 QTextEdit editor(&mdiArea); // invalid child widget

See also QMdiArea.addSubWindow().

QMdiSubWindow.changeEvent (self, QEvent changeEvent)

Reimplemented from QWidget.changeEvent().

QMdiSubWindow.childEvent (self, QChildEvent childEvent)

Reimplemented from QObject.childEvent().

QMdiSubWindow.closeEvent (self, QCloseEvent closeEvent)

Reimplemented from QWidget.closeEvent().

QMdiSubWindow.contextMenuEvent (self, QContextMenuEvent contextMenuEvent)

Reimplemented from QWidget.contextMenuEvent().

bool QMdiSubWindow.event (self, QEvent event)

Reimplemented from QObject.event().

bool QMdiSubWindow.eventFilter (self, QObject object, QEvent event)

Reimplemented from QObject.eventFilter().

QMdiSubWindow.focusInEvent (self, QFocusEvent focusInEvent)

Reimplemented from QWidget.focusInEvent().

QMdiSubWindow.focusOutEvent (self, QFocusEvent focusOutEvent)

Reimplemented from QWidget.focusOutEvent().

QMdiSubWindow.hideEvent (self, QHideEvent hideEvent)

Reimplemented from QWidget.hideEvent().

bool QMdiSubWindow.isShaded (self)

Returns true if this window is shaded; otherwise returns false.

A window is shaded if it is collapsed so that only the title bar is visible.

int QMdiSubWindow.keyboardPageStep (self)

int QMdiSubWindow.keyboardSingleStep (self)

QMdiSubWindow.keyPressEvent (self, QKeyEvent keyEvent)

Reimplemented from QWidget.keyPressEvent().

QMdiSubWindow.leaveEvent (self, QEvent leaveEvent)

Reimplemented from QWidget.leaveEvent().

QMdiArea QMdiSubWindow.mdiArea (self)

Returns the area containing this sub-window, or 0 if there is none.

This function was introduced in Qt 4.4.

See also QMdiArea.addSubWindow().

QSize QMdiSubWindow.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QMdiSubWindow.mouseDoubleClickEvent (self, QMouseEvent mouseEvent)

Reimplemented from QWidget.mouseDoubleClickEvent().

QMdiSubWindow.mouseMoveEvent (self, QMouseEvent mouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QMdiSubWindow.mousePressEvent (self, QMouseEvent mouseEvent)

Reimplemented from QWidget.mousePressEvent().

QMdiSubWindow.mouseReleaseEvent (self, QMouseEvent mouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QMdiSubWindow.moveEvent (self, QMoveEvent moveEvent)

Reimplemented from QWidget.moveEvent().

QMdiSubWindow.paintEvent (self, QPaintEvent paintEvent)

Reimplemented from QWidget.paintEvent().

QMdiSubWindow.resizeEvent (self, QResizeEvent resizeEvent)

Reimplemented from QWidget.resizeEvent().

QMdiSubWindow.setKeyboardPageStep (self, int step)

QMdiSubWindow.setKeyboardSingleStep (self, int step)

QMdiSubWindow.setOption (self, SubWindowOption option, bool on = True)

If on is true, option is enabled on the subwindow; otherwise it is disabled. See SubWindowOption for the effect of each option.

See also SubWindowOption and testOption().

QMdiSubWindow.setSystemMenu (self, QMenu systemMenu)

The systemMenu argument has it's ownership transferred to Qt.

Sets systemMenu as the current system menu for this subwindow.

By default, each QMdiSubWindow has a standard system menu.

QActions for the system menu created by QMdiSubWindow will automatically be updated depending on the current window state; e.g., the minimize action will be disabled after the window is minimized.

QActions added by the user are not updated by QMdiSubWindow.

QMdiSubWindow takes ownership of systemMenu; you do not have to delete it. Any existing menus will be deleted.

See also systemMenu() and showSystemMenu().

QMdiSubWindow.setWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets widget as the internal widget of this subwindow. The internal widget is displayed in the center of the subwindow beneath the title bar.

QMdiSubWindow takes temporary ownership of widget; you do not have to delete it. Any existing internal widget will be removed and reparented to the root window.

See also widget().

QMdiSubWindow.showEvent (self, QShowEvent showEvent)

Reimplemented from QWidget.showEvent().

QMdiSubWindow.showShaded (self)

This method is also a Qt slot with the C++ signature void showShaded().

Calling this function makes the subwindow enter the shaded mode. When the subwindow is shaded, only the title bar is visible.

Although shading is not supported by all styles, this function will still show the subwindow as shaded, regardless of whether support for shading is available. However, when used with styles without shading support, the user will be unable to return from shaded mode through the user interface (e.g., through a shade button in the title bar).

See also isShaded().

QMdiSubWindow.showSystemMenu (self)

This method is also a Qt slot with the C++ signature void showSystemMenu().

Shows the system menu below the system menu icon in the title bar.

See also setSystemMenu() and systemMenu().

QSize QMdiSubWindow.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QMenu QMdiSubWindow.systemMenu (self)

Returns a pointer to the current system menu, or zero if no system menu is set. QMdiSubWindow provides a default system menu, but you can also set the menu with setSystemMenu().

See also setSystemMenu() and showSystemMenu().

bool QMdiSubWindow.testOption (self, SubWindowOption)

Returns true if option is enabled; otherwise returns false.

See also SubWindowOption and setOption().

QMdiSubWindow.timerEvent (self, QTimerEvent timerEvent)

Reimplemented from QObject.timerEvent().

QWidget QMdiSubWindow.widget (self)

Returns the current internal widget.

See also setWidget().


Qt Signal Documentation

void aboutToActivate ()

This is the default overload of this signal.

QMdiSubWindow emits this signal immediately before it is activated. After the subwindow has been activated, the QMdiArea that manages the subwindow will also emit the subWindowActivated() signal.

See also QMdiArea.subWindowActivated().

void windowStateChanged (Qt::WindowStates,Qt::WindowStates)

This is the default overload of this signal.

QMdiSubWindow emits this signal after the window state changes. oldState is the window state before it changed, and newState is the new, current state.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmenu.html0000644000076500000240000011733212536324510017500 0ustar philstaff00000000000000 QMenu Class Reference
  Home · All Classes · Modules

QMenu Class Reference
[QtGui module]

The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus. More...

Inherits QWidget.

Methods

Static Methods

  • QAction exec_ (list-of-QAction actions, QPoint pos, QAction action = None)
  • QAction exec_ (list-of-QAction actions, QPoint pos, QAction at, QWidget parent)

Qt Signals


Detailed Description

The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus.

A menu widget is a selection menu. It can be either a pull-down menu in a menu bar or a standalone context menu. Pull-down menus are shown by the menu bar when the user clicks on the respective item or presses the specified shortcut key. Use QMenuBar.addMenu() to insert a menu into a menu bar. Context menus are usually invoked by some special keyboard key or by right-clicking. They can be executed either asynchronously with popup() or synchronously with exec_(). Menus can also be invoked in response to button presses; these are just like context menus except for how they are invoked.

Fig. A menu shown in Plastique widget style, Windows XP widget style, and Macintosh widget style.

Actions

A menu consists of a list of action items. Actions are added with the addAction(), addActions() and insertAction() functions. An action is represented vertically and rendered by QStyle. In addition, actions can have a text label, an optional icon drawn on the very left side, and shortcut key sequence such as "Ctrl+X".

The existing actions held by a menu can be found with actions().

There are four kinds of action items: separators, actions that show a submenu, widgets, and actions that perform an action. Separators are inserted with addSeparator(), submenus with addMenu(), and all other items are considered action items.

When inserting action items you usually specify a receiver and a slot. The receiver will be notifed whenever the item is triggered(). In addition, QMenu provides two signals, activated() and highlighted(), which signal the QAction that was triggered from the menu.

You clear a menu with clear() and remove individual action items with removeAction().

A QMenu can also provide a tear-off menu. A tear-off menu is a top-level window that contains a copy of the menu. This makes it possible for the user to "tear off" frequently used menus and position them in a convenient place on the screen. If you want this functionality for a particular menu, insert a tear-off handle with setTearOffEnabled(). When using tear-off menus, bear in mind that the concept isn't typically used on Microsoft Windows so some users may not be familiar with it. Consider using a QToolBar instead.

Widgets can be inserted into menus with the QWidgetAction class. Instances of this class are used to hold widgets, and are inserted into menus with the addAction() overload that takes a QAction.

Conversely, actions can be added to widgets with the addAction(), addActions() and insertAction() functions.

Warning: To make QMenu visible on the screen, exec_() or popup() should be used instead of show().

QMenu on Qt for Windows CE

If a menu is integrated into the native menubar on Windows Mobile we do not support the signals: aboutToHide (), aboutToShow () and hovered (). It is not possible to display an icon in a native menu on Windows Mobile.

QMenu on Mac OS X with Qt build against Cocoa

QMenu can be inserted only once in a menu/menubar. Subsequent insertions will have no effect or will result in a disabled menu item.

See the Menus example for an example of how to use QMenuBar and QMenu in your application.

Important inherited functions: addAction(), removeAction(), clear(), addSeparator(), and addMenu().


Method Documentation

QMenu.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a menu with parent parent.

Although a popup menu is always a top-level widget, if a parent is passed the popup menu will be deleted when that parent is destroyed (as with any other QObject).

QMenu.__init__ (self, QString title, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a menu with a title and a parent.

Although a popup menu is always a top-level widget, if a parent is passed the popup menu will be deleted when that parent is destroyed (as with any other QObject).

See also title.

QAction QMenu.actionAt (self, QPoint)

Returns the item at pt; returns 0 if there is no item there.

QMenu.actionEvent (self, QActionEvent)

Reimplemented from QWidget.actionEvent().

QRect QMenu.actionGeometry (self, QAction)

Returns the geometry of action act.

QAction QMenu.activeAction (self)

Returns the currently highlighted action, or 0 if no action is currently highlighted.

See also setActiveAction().

QMenu.addAction (self, QAction action)

This is an overloaded function.

This convenience function creates a new action with text. The function adds the newly created action to the menu's list of actions, and returns it.

See also QWidget.addAction().

QAction QMenu.addAction (self, QString text)

This is an overloaded function.

This convenience function creates a new action with an icon and some text. The function adds the newly created action to the menu's list of actions, and returns it.

See also QWidget.addAction().

QAction QMenu.addAction (self, QIcon icon, QString text)

This is an overloaded function.

This convenience function creates a new action with the text text and an optional shortcut shortcut. The action's triggered() signal is connected to the receiver's member slot. The function adds the newly created action to the menu's list of actions and returns it.

See also QWidget.addAction().

QAction QMenu.addAction (self, QString text, QObject receiver, SLOT()SLOT() member, QKeySequence shortcut = 0)

This is an overloaded function.

This convenience function creates a new action with an icon and some text and an optional shortcut shortcut. The action's triggered() signal is connected to the member slot of the receiver object. The function adds the newly created action to the menu's list of actions, and returns it.

See also QWidget.addAction().

QAction QMenu.addAction (self, QString text, callable receiver, QKeySequence shortcut = 0)

This is an overloaded function.

Appends the action action to the menu's list of actions.

See also QMenuBar.addAction() and QWidget.addAction().

QAction QMenu.addAction (self, QIcon icon, QString text, QObject receiver, SLOT()SLOT() member, QKeySequence shortcut = 0)

QAction QMenu.addAction (self, QIcon icon, QString text, callable receiver, QKeySequence shortcut = 0)

QAction QMenu.addMenu (self, QMenu menu)

This convenience function adds menu as a submenu to this menu. It returns menu's menuAction(). This menu does not take ownership of menu.

See also QWidget.addAction() and QMenu.menuAction().

QMenu QMenu.addMenu (self, QString title)

Appends a new QMenu with title to the menu. The menu takes ownership of the menu. Returns the new menu.

See also QWidget.addAction() and QMenu.menuAction().

QMenu QMenu.addMenu (self, QIcon icon, QString title)

Appends a new QMenu with icon and title to the menu. The menu takes ownership of the menu. Returns the new menu.

See also QWidget.addAction() and QMenu.menuAction().

QAction QMenu.addSeparator (self)

This convenience function creates a new separator action, i.e. an action with QAction.isSeparator() returning true, and adds the new action to this menu's list of actions. It returns the newly created action.

See also QWidget.addAction().

QMenu.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QMenu.clear (self)

Removes all the menu's actions. Actions owned by the menu and not shown in any other widget are deleted.

See also removeAction().

int QMenu.columnCount (self)

If a menu does not fit on the screen it lays itself out so that it does fit. It is style dependent what layout means (for example, on Windows it will use multiple columns).

This functions returns the number of columns necessary.

QAction QMenu.defaultAction (self)

Returns the current default action.

See also setDefaultAction().

QMenu.enterEvent (self, QEvent)

Reimplemented from QWidget.enterEvent().

bool QMenu.event (self, QEvent)

Reimplemented from QObject.event().

QAction QMenu.exec_ (self)

Executes this menu synchronously.

This is equivalent to exec(pos()).

This returns the triggered QAction in either the popup menu or one of its submenus, or 0 if no item was triggered (normally because the user pressed Esc).

In most situations you'll want to specify the position yourself, for example, the current mouse position:

 exec(QCursor.pos());

or aligned to a widget:

 exec(somewidget.mapToGlobal(QPoint(0,0)));

or in reaction to a QMouseEvent *e:

 exec(e->globalPos());

QAction QMenu.exec_ (self, QPoint p, QAction action = None)

This is an overloaded function.

Executes this menu synchronously.

Pops up the menu so that the action action will be at the specified global position p. To translate a widget's local coordinates into global coordinates, use QWidget.mapToGlobal().

This returns the triggered QAction in either the popup menu or one of its submenus, or 0 if no item was triggered (normally because the user pressed Esc).

Note that all signals are emitted as usual. If you connect a QAction to a slot and call the menu's exec_(), you get the result both via the signal-slot connection and in the return value of exec_().

Common usage is to position the menu at the current mouse position:

 exec_(QCursor.pos());

or aligned to a widget:

 exec_(somewidget.mapToGlobal(QPoint(0, 0)));

or in reaction to a QMouseEvent *e:

 exec_(e->globalPos());

When positioning a menu with exec_() or popup(), bear in mind that you cannot rely on the menu's current size(). For performance reasons, the menu adapts its size only when necessary. So in many cases, the size before and after the show is different. Instead, use sizeHint() which calculates the proper size depending on the menu's current contents.

See also popup() and QWidget.mapToGlobal().

QAction QMenu.exec_ (list-of-QAction actions, QPoint pos, QAction action = None)

This is an overloaded function.

Executes a menu synchronously.

The menu's actions are specified by the list of actions. The menu will pop up so that the specified action, at, appears at global position pos. If at is not specified then the menu appears at position pos. parent is the menu's parent widget; specifying the parent will provide context when pos alone is not enough to decide where the menu should go (e.g., with multiple desktops or when the parent is embedded in QGraphicsView).

The function returns the triggered QAction in either the popup menu or one of its submenus, or 0 if no item was triggered (normally because the user pressed Esc).

This is equivalent to:

 QMenu menu;
 QAction *at = actions[0]; // Assumes actions is not empty
 foreach (QAction *a, actions)
     menu.addAction(a);
 menu.exec_(pos, at);

See also popup() and QWidget.mapToGlobal().

QAction QMenu.exec_ (list-of-QAction actions, QPoint pos, QAction at, QWidget parent)

This is an overloaded function.

Executes a menu synchronously.

The menu's actions are specified by the list of actions. The menu will pop up so that the specified action, at, appears at global position pos. If at is not specified then the menu appears at position pos.

The function returns the triggered QAction in either the popup menu or one of its submenus, or 0 if no item was triggered (normally because the user pressed Esc).

This is equivalent to:

 QMenu menu;
 QAction *at = actions[0]; // Assumes actions is not empty
 foreach (QAction *a, actions)
     menu.addAction(a);
 menu.exec_(pos, at);

See also popup() and QWidget.mapToGlobal().

bool QMenu.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QMenu.hideEvent (self, QHideEvent)

Reimplemented from QWidget.hideEvent().

QMenu.hideTearOffMenu (self)

This function will forcibly hide the torn off menu making it disappear from the users desktop.

See also isTearOffMenuVisible() and isTearOffEnabled().

QIcon QMenu.icon (self)

QMenu.initStyleOption (self, QStyleOptionMenuItem option, QAction action)

Initialize option with the values from this menu and information from action. This method is useful for subclasses when they need a QStyleOptionMenuItem, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom() and QMenuBar.initStyleOption().

QAction QMenu.insertMenu (self, QAction before, QMenu menu)

This convenience function inserts menu before action before and returns the menus menuAction().

See also QWidget.insertAction() and addMenu().

QAction QMenu.insertSeparator (self, QAction before)

This convenience function creates a new separator action, i.e. an action with QAction.isSeparator() returning true. The function inserts the newly created action into this menu's list of actions before action before and returns it.

See also QWidget.insertAction() and addSeparator().

bool QMenu.isEmpty (self)

Returns true if there are no visible actions inserted into the menu, false otherwise.

This function was introduced in Qt 4.2.

See also QWidget.actions().

bool QMenu.isTearOffEnabled (self)

bool QMenu.isTearOffMenuVisible (self)

When a menu is torn off a second menu is shown to display the menu contents in a new window. When the menu is in this mode and the menu is visible returns true; otherwise false.

See also hideTearOffMenu() and isTearOffEnabled().

QMenu.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

QMenu.leaveEvent (self, QEvent)

Reimplemented from QWidget.leaveEvent().

QAction QMenu.menuAction (self)

Returns the action associated with this menu.

QMenu.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QMenu.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

QMenu.mouseReleaseEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QMenu.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QMenu.popup (self, QPoint p, QAction action = None)

Displays the menu so that the action atAction will be at the specified global position p. To translate a widget's local coordinates into global coordinates, use QWidget.mapToGlobal().

When positioning a menu with exec_() or popup(), bear in mind that you cannot rely on the menu's current size(). For performance reasons, the menu adapts its size only when necessary, so in many cases, the size before and after the show is different. Instead, use sizeHint() which calculates the proper size depending on the menu's current contents.

See also QWidget.mapToGlobal() and exec_().

bool QMenu.separatorsCollapsible (self)

QMenu.setActiveAction (self, QAction act)

Sets the currently highlighted action to act.

See also activeAction().

QMenu.setDefaultAction (self, QAction)

This sets the default action to act. The default action may have a visual cue, depending on the current QStyle. A default action usually indicates what will happen by default when a drop occurs.

See also defaultAction().

QMenu.setIcon (self, QIcon icon)

QMenu.setNoReplayFor (self, QWidget widget)

QMenu.setSeparatorsCollapsible (self, bool collapse)

QMenu.setTearOffEnabled (self, bool)

QMenu.setTitle (self, QString title)

QSize QMenu.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QMenu.timerEvent (self, QTimerEvent)

Reimplemented from QObject.timerEvent().

QString QMenu.title (self)

QMenu.wheelEvent (self, QWheelEvent)

Reimplemented from QWidget.wheelEvent().


Qt Signal Documentation

void aboutToHide ()

This is the default overload of this signal.

This signal is emitted just before the menu is hidden from the user.

This function was introduced in Qt 4.2.

See also aboutToShow() and hide().

void aboutToShow ()

This is the default overload of this signal.

This signal is emitted just before the menu is shown to the user.

See also aboutToHide() and show().

void hovered (QAction*)

This is the default overload of this signal.

This signal is emitted when a menu action is highlighted; action is the action that caused the signal to be emitted.

Often this is used to update status information.

See also triggered() and QAction.hovered().

void triggered (QAction*)

This is the default overload of this signal.

This signal is emitted when an action in this menu is triggered.

action is the action that caused the signal to be emitted.

Normally, you connect each menu action's triggered() signal to its own custom slot, but sometimes you will want to connect several actions to a single slot, for example, when you have a group of closely related actions, such as "left justify", "center", "right justify".

Note: This signal is emitted for the main parent menu in a hierarchy. Hence, only the parent menu needs to be connected to a slot; sub-menus need not be connected.

See also hovered() and QAction.triggered().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmenubar.html0000644000076500000240000006764212536324510020175 0ustar philstaff00000000000000 QMenuBar Class Reference
  Home · All Classes · Modules

QMenuBar Class Reference
[QtGui module]

The QMenuBar class provides a horizontal menu bar. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QMenuBar class provides a horizontal menu bar.

A menu bar consists of a list of pull-down menu items. You add menu items with addMenu(). For example, asuming that menubar is a pointer to a QMenuBar and fileMenu is a pointer to a QMenu, the following statement inserts the menu into the menu bar:

 menubar->addMenu(fileMenu);

The ampersand in the menu item's text sets Alt+F as a shortcut for this menu. (You can use "&&" to get a real ampersand in the menu bar.)

There is no need to lay out a menu bar. It automatically sets its own geometry to the top of the parent widget and changes it appropriately whenever the parent is resized.

Usage

In most main window style applications you would use the menuBar() function provided in QMainWindow, adding QMenus to the menu bar and adding QActions to the pop-up menus.

Example (from the Menus example):

     fileMenu = menuBar()->addMenu(tr("&File"));
     fileMenu->addAction(newAct);

Menu items may be removed with removeAction().

Widgets can be added to menus by using instances of the QWidgetAction class to hold them. These actions can then be inserted into menus in the usual way; see the QMenu documentation for more details.

Platform Dependent Look and Feel

Different platforms have different requirements for the appearance of menu bars and their behavior when the user interacts with them. For example, Windows systems are often configured so that the underlined character mnemonics that indicate keyboard shortcuts for items in the menu bar are only shown when the Alt key is pressed.

A menu bar shown in the Plastique widget style. The Plastique widget style, like most other styles, handles the Help menu in the same way as it handles any other menu.
A menu bar shown in the Motif widget style. The Motif widget style treats Help menus in a special way, placing them at right-hand end of the menu bar.

QMenuBar on Mac OS X

QMenuBar on Mac OS X is a wrapper for using the system-wide menu bar. If you have multiple menu bars in one dialog the outermost menu bar (normally inside a widget with widget flag Qt.Window) will be used for the system-wide menu bar.

Qt for Mac OS X also provides a menu bar merging feature to make QMenuBar conform more closely to accepted Mac OS X menu bar layout. The merging functionality is based on string matching the title of a QMenu entry. These strings are translated (using QObject.tr()) in the "QMenuBar" context. If an entry is moved its slots will still fire as if it was in the original place. The table below outlines the strings looked for and where the entry is placed if matched:

String matches Placement Notes
about.* Application Menu | About <application name> The application name is fetched from the Info.plist file (see note below). If this entry is not found no About item will appear in the Application Menu.
config, options, setup, settings or preferences Application Menu | Preferences If this entry is not found the Settings item will be disabled
quit or exit Application Menu | Quit <application name> If this entry is not found a default Quit item will be created to call QApplication.quit()

You can override this behavior by using the QAction.menuRole() property.

If you want all windows in a Mac application to share one menu bar, you must create a menu bar that does not have a parent. Create a parent-less menu bar this way:

 QMenuBar *menuBar = new QMenuBar(0);

Note: Do not call QMainWindow.menuBar() to create the shared menu bar, because that menu bar will have the QMainWindow as its parent. That menu bar would only be displayed for the parent QMainWindow.

Note: The text used for the application name in the menu bar is obtained from the value set in the Info.plist file in the application's bundle. See Deploying an Application on Mac OS X for more information.

QMenuBar on Windows CE

QMenuBar on Windows CE is a wrapper for using the system-wide menu bar, similar to the Mac. This feature is activated for Windows Mobile and integrates QMenuBar with the native soft keys. The left soft key can be controlled with QMenuBar.setDefaultAction() and the right soft key can be used to access the menu bar.

The hovered() signal is not supported for the native menu integration. Also, it is not possible to display an icon in a native menu on Windows Mobile.

Examples

The Menus example shows how to use QMenuBar and QMenu. The other main window application examples also provide menus using these classes.


Method Documentation

QMenuBar.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a menu bar with parent parent.

QAction QMenuBar.actionAt (self, QPoint)

Returns the QAction at pt. Returns 0 if there is no action at pt or if the location has a separator.

See also addAction() and addSeparator().

QMenuBar.actionEvent (self, QActionEvent)

Reimplemented from QWidget.actionEvent().

QRect QMenuBar.actionGeometry (self, QAction)

Returns the geometry of action act as a QRect.

See also actionAt().

QAction QMenuBar.activeAction (self)

Returns the QAction that is currently highlighted. A null pointer will be returned if no action is currently selected.

See also setActiveAction().

QMenuBar.addAction (self, QAction action)

This is an overloaded function.

This convenience function creates a new action with text. The function adds the newly created action to the menu's list of actions, and returns it.

See also QWidget.addAction() and QWidget.actions().

QAction QMenuBar.addAction (self, QString text)

This is an overloaded function.

This convenience function creates a new action with the given text. The action's triggered() signal is connected to the receiver's member slot. The function adds the newly created action to the menu's list of actions and returns it.

See also QWidget.addAction() and QWidget.actions().

QAction QMenuBar.addAction (self, QString text, QObject receiver, SLOT()SLOT() member)

This is an overloaded function.

Appends the action action to the menu bar's list of actions.

See also QMenu.addAction(), QWidget.addAction(), and QWidget.actions().

QAction QMenuBar.addAction (self, QString text, callable receiver)

QAction QMenuBar.addMenu (self, QMenu menu)

Appends menu to the menu bar. Returns the menu's menuAction().

Note: The returned QAction object can be used to hide the corresponding menu.

See also QWidget.addAction() and QMenu.menuAction().

QMenu QMenuBar.addMenu (self, QString title)

Appends a new QMenu with title to the menu bar. The menu bar takes ownership of the menu. Returns the new menu.

See also QWidget.addAction() and QMenu.menuAction().

QMenu QMenuBar.addMenu (self, QIcon icon, QString title)

Appends a new QMenu with icon and title to the menu bar. The menu bar takes ownership of the menu. Returns the new menu.

See also QWidget.addAction() and QMenu.menuAction().

QAction QMenuBar.addSeparator (self)

Appends a separator to the menu.

QMenuBar.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QMenuBar.clear (self)

Removes all the actions from the menu bar.

Note: On Mac OS X, menu items that have been merged to the system menu bar are not removed by this function. One way to handle this would be to remove the extra actions yourself. You can set the menu role on the different menus, so that you know ahead of time which menu items get merged and which do not. Then decide what to recreate or remove yourself.

See also removeAction().

QWidget QMenuBar.cornerWidget (self, Qt.Corner corner = Qt.TopRightCorner)

Returns the widget on the left of the first or on the right of the last menu item, depending on corner.

Note: Using a corner other than Qt.TopRightCorner or Qt.TopLeftCorner will result in a warning.

See also setCornerWidget().

bool QMenuBar.event (self, QEvent)

Reimplemented from QObject.event().

bool QMenuBar.eventFilter (self, QObject, QEvent)

Reimplemented from QObject.eventFilter().

QMenuBar.focusInEvent (self, QFocusEvent)

Reimplemented from QWidget.focusInEvent().

QMenuBar.focusOutEvent (self, QFocusEvent)

Reimplemented from QWidget.focusOutEvent().

int QMenuBar.heightForWidth (self, int)

Reimplemented from QWidget.heightForWidth().

QMenuBar.initStyleOption (self, QStyleOptionMenuItem option, QAction action)

Initialize option with the values from the menu bar and information from action. This method is useful for subclasses when they need a QStyleOptionMenuItem, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom() and QMenu.initStyleOption().

QAction QMenuBar.insertMenu (self, QAction before, QMenu menu)

This convenience function inserts menu before action before and returns the menus menuAction().

See also QWidget.insertAction() and addMenu().

QAction QMenuBar.insertSeparator (self, QAction before)

This convenience function creates a new separator action, i.e. an action with QAction.isSeparator() returning true. The function inserts the newly created action into this menu bar's list of actions before action before and returns it.

See also QWidget.insertAction() and addSeparator().

bool QMenuBar.isDefaultUp (self)

bool QMenuBar.isNativeMenuBar (self)

QMenuBar.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

QMenuBar.leaveEvent (self, QEvent)

Reimplemented from QWidget.leaveEvent().

QSize QMenuBar.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QMenuBar.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QMenuBar.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

QMenuBar.mouseReleaseEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QMenuBar.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QMenuBar.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QMenuBar.setActiveAction (self, QAction action)

Sets the currently highlighted action to act.

This function was introduced in Qt 4.1.

See also activeAction().

QMenuBar.setCornerWidget (self, QWidget widget, Qt.Corner corner = Qt.TopRightCorner)

The widget argument has it's ownership transferred to Qt.

This sets the given widget to be shown directly on the left of the first menu item, or on the right of the last menu item, depending on corner.

The menu bar takes ownership of widget, reparenting it into the menu bar. However, if the corner already contains a widget, this previous widget will no longer be managed and will still be a visible child of the menu bar.

Note: Using a corner other than Qt.TopRightCorner or Qt.TopLeftCorner will result in a warning.

See also cornerWidget().

QMenuBar.setDefaultUp (self, bool)

QMenuBar.setNativeMenuBar (self, bool nativeMenuBar)

QMenuBar.setVisible (self, bool visible)

Reimplemented from QWidget.setVisible().

QSize QMenuBar.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QMenuBar.timerEvent (self, QTimerEvent)

Reimplemented from QObject.timerEvent().


Qt Signal Documentation

void hovered (QAction*)

This is the default overload of this signal.

This signal is emitted when a menu action is highlighted; action is the action that caused the event to be sent.

Often this is used to update status information.

See also triggered() and QAction.hovered().

void triggered (QAction*)

This is the default overload of this signal.

This signal is emitted when an action in a menu belonging to this menubar is triggered as a result of a mouse click; action is the action that caused the signal to be emitted.

Note: QMenuBar has to have ownership of the QMenu in order this signal to work.

Normally, you connect each menu action to a single slot using QAction.triggered(), but sometimes you will want to connect several items to a single slot (most often if the user selects from an array). This signal is useful in such cases.

See also hovered() and QAction.triggered().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmessagebox-standardbuttons.html0000644000076500000240000001475412536324510024112 0ustar philstaff00000000000000 QMessageBox.StandardButtons Class Reference
  Home · All Classes · Modules

QMessageBox.StandardButtons Class Reference
[QtGui module]

Methods

Special Methods

  • StandardButtons __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, StandardButtons f)
  • StandardButtons __iand__ (self, int mask)
  • int __int__ (self)
  • StandardButtons __invert__ (self)
  • StandardButtons __ior__ (self, StandardButtons f)
  • StandardButtons __ixor__ (self, StandardButtons f)
  • bool __ne__ (self, StandardButtons f)
  • StandardButtons __or__ (self, StandardButtons f)
  • StandardButtons __or__ (self, int f)
  • StandardButtons __xor__ (self, StandardButtons f)
  • StandardButtons __xor__ (self, int f)

Detailed Description

StandardButton may be used whenever StandardButtons is expected.


Method Documentation

StandardButtons.__init__ (self, StandardButtons)

StandardButtons.__init__ (self, int)

StandardButtons.__init__ (self)

StandardButtons StandardButtons.__and__ (self, int mask)

int StandardButtons.__bool__ (self)

bool StandardButtons.__eq__ (self, StandardButtons f)

StandardButtons StandardButtons.__iand__ (self, int mask)

int StandardButtons.__int__ (self)

StandardButtons StandardButtons.__invert__ (self)

StandardButtons StandardButtons.__ior__ (self, StandardButtons f)

StandardButtons StandardButtons.__ixor__ (self, StandardButtons f)

bool StandardButtons.__ne__ (self, StandardButtons f)

StandardButtons StandardButtons.__or__ (self, StandardButtons f)

StandardButtons StandardButtons.__or__ (self, int f)

StandardButtons StandardButtons.__xor__ (self, StandardButtons f)

StandardButtons StandardButtons.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmessagebox.html0000644000076500000240000020674512536324510020700 0ustar philstaff00000000000000 QMessageBox Class Reference
  Home · All Classes · Modules

QMessageBox Class Reference
[QtGui module]

The QMessageBox class provides a modal dialog for informing the user or for asking the user a question and receiving an answer. More...

Inherits QDialog.

Types

  • enum ButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ..., ApplyRole }
  • enum Icon { NoIcon, Information, Warning, Critical, Question }
  • enum StandardButton { NoButton, Ok, Save, SaveAll, ..., ButtonMask }

Methods

Static Methods

  • about (QWidget parent, QString caption, QString text)
  • aboutQt (QWidget parent, QString title = QString())
  • StandardButton critical (QWidget parent, QString title, QString text, StandardButtons buttons = QMessageBox.Ok, StandardButton defaultButton = QMessageBox.NoButton)
  • int critical (QWidget parent, QString title, QString text, int button0, int button1, int button2 = 0)
  • int critical (QWidget parent, QString title, QString text, QString button0Text, QString button1Text = QString(), QString button2Text = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1)
  • StandardButton information (QWidget parent, QString title, QString text, StandardButtons buttons = QMessageBox.Ok, StandardButton defaultButton = QMessageBox.NoButton)
  • int information (QWidget parent, QString title, QString text, int button0, int button1 = 0, int button2 = 0)
  • int information (QWidget parent, QString title, QString text, QString button0Text, QString button1Text = QString(), QString button2Text = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1)
  • StandardButton question (QWidget parent, QString title, QString text, StandardButtons buttons = QMessageBox.Ok, StandardButton defaultButton = QMessageBox.NoButton)
  • int question (QWidget parent, QString title, QString text, int button0, int button1 = 0, int button2 = 0)
  • int question (QWidget parent, QString title, QString text, QString button0Text, QString button1Text = QString(), QString button2Text = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1)
  • QPixmap standardIcon (Icon icon)
  • StandardButton warning (QWidget parent, QString title, QString text, StandardButtons buttons = QMessageBox.Ok, StandardButton defaultButton = QMessageBox.NoButton)
  • int warning (QWidget parent, QString title, QString text, int button0, int button1, int button2 = 0)
  • int warning (QWidget parent, QString title, QString text, QString button0Text, QString button1Text = QString(), QString button2Text = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1)

Qt Signals


Detailed Description

The QMessageBox class provides a modal dialog for informing the user or for asking the user a question and receiving an answer.

A message box displays a primary text to alert the user to a situation, an informative text to further explain the alert or to ask the user a question, and an optional detailed text to provide even more data if the user requests it. A message box can also display an icon and standard buttons for accepting a user response.

Two APIs for using QMessageBox are provided, the property-based API, and the static functions. Calling one of the static functions is the simpler approach, but it is less flexible than using the property-based API, and the result is less informative. Using the property-based API is recommended.

The Property-based API

To use the property-based API, construct an instance of QMessageBox, set the desired properties, and call exec_() to show the message. The simplest configuration is to set only the message text property.

 QMessageBox msgBox;
 msgBox.setText("The document has been modified.");
 msgBox.exec_();

The user must click the OK button to dismiss the message box. The rest of the GUI is blocked until the message box is dismissed.

A better approach than just alerting the user to an event is to also ask the user what to do about it. Store the question in the informative text property, and set the standard buttons property to the set of buttons you want as the set of user responses. The buttons are specified by combining values from StandardButtons using the bitwise OR operator. The display order for the buttons is platform-dependent. For example, on Windows, Save is displayed to the left of Cancel, whereas on Mac OS, the order is reversed.

Mark one of your standard buttons to be your default button.

 QMessageBox msgBox;
 msgBox.setText("The document has been modified.");
 msgBox.setInformativeText("Do you want to save your changes?");
 msgBox.setStandardButtons(QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel);
 msgBox.setDefaultButton(QMessageBox.Save);
 int ret = msgBox.exec_();

This is the approach recommended in the Mac OS X Guidelines. Similar guidelines apply for the other platforms, but note the different ways the informative text is handled for different platforms.

The exec_() slot returns the StandardButtons value of the button that was clicked.

 switch (ret) {
   case QMessageBox.Save:
       // Save was clicked
       break;
   case QMessageBox.Discard:
       // Don't Save was clicked
       break;
   case QMessageBox.Cancel:
       // Cancel was clicked
       break;
   default:
       // should never be reached
       break;
 }

To give the user more information to help him answer the question, set the detailed text property. If the detailed text property is set, the Show Details... button will be shown.

Clicking the Show Details... button displays the detailed text.

Rich Text and the Text Format Property

The detailed text property is always interpreted as plain text. The main text and informative text properties can be either plain text or rich text. These strings are interpreted according to the setting of the text format property. The default setting is auto-text.

Note that for some plain text strings containing XML meta-characters, the auto-text rich text detection test may fail causing your plain text string to be interpreted incorrectly as rich text. In these rare cases, use Qt.convertFromPlainText() to convert your plain text string to a visually equivalent rich text string, or set the text format property explicitly with setTextFormat().

Severity Levels and the Icon and Pixmap Properties

QMessageBox supports four predefined message severity levels, or message types, which really only differ in the predefined icon they each show. Specify one of the four predefined message types by setting the icon property to one of the predefined icons. The following rules are guidelines:

Question For asking a question during normal operations.

Information For reporting information about normal operations.

Warning For reporting non-critical errors.

Critical For reporting critical errors.

Predefined icons are not defined by QMessageBox, but provided by the style. The default value is No Icon. The message boxes are otherwise the same for all cases. When using a standard icon, use the one recommended in the table, or use the one recommended by the style guidelines for your platform. If none of the standard icons is right for your message box, you can use a custom icon by setting the icon pixmap property instead of setting the icon property.

In summary, to set an icon, use either setIcon() for one of the standard icons, or setIconPixmap() for a custom icon.

The Static Functions API

Building message boxes with the static functions API, although convenient, is less flexible than using the property-based API, because the static function signatures lack parameters for setting the informative text and detailed text properties. One work-around for this has been to use the title parameter as the message box main text and the text parameter as the message box informative text. Because this has the obvious drawback of making a less readable message box, platform guidelines do not recommend it. The Microsoft Windows User Interface Guidelines recommend using the application name as the window's title, which means that if you have an informative text in addition to your main text, you must concatenate it to the text parameter.

Note that the static function signatures have changed with respect to their button parameters, which are now used to set the standard buttons and the default button.

Static functions are available for creating information(), question(), warning(), and critical() message boxes.

 int ret = QMessageBox.warning(this, tr("My Application"),
                                tr("The document has been modified.\n"
                                   "Do you want to save your changes?"),
                                QMessageBox.Save | QMessageBox.Discard
                                | QMessageBox.Cancel,
                                QMessageBox.Save);

The Standard Dialogs example shows how to use QMessageBox and the other built-in Qt dialogs.

Advanced Usage

If the standard buttons are not flexible enough for your message box, you can use the addButton() overload that takes a text and a ButtonRoleto to add custom buttons. The ButtonRole is used by QMessageBox to determine the ordering of the buttons on screen (which varies according to the platform). You can test the value of clickedButton() after calling exec_(). For example,

 QMessageBox msgBox;
 QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox.ActionRole);
 QPushButton *abortButton = msgBox.addButton(QMessageBox.Abort);

 msgBox.exec_();

 if (msgBox.clickedButton() == connectButton) {
     // connect
 } else if (msgBox.clickedButton() == abortButton) {
     // abort
 }

Default and Escape Keys

The default button (i.e., the button activated when Enter is pressed) can be specified using setDefaultButton(). If a default button is not specified, QMessageBox tries to find one based on the button roles of the buttons used in the message box.

The escape button (the button activated when Esc is pressed) can be specified using setEscapeButton(). If an escape button is not specified, QMessageBox tries to find one using these rules:

  1. If there is only one button, it is the button activated when Esc is pressed.
  2. If there is a Cancel button, it is the button activated when Esc is pressed.
  3. If there is exactly one button having either the Reject role or the the No role, it is the button activated when Esc is pressed.

When an escape button can't be determined using these rules, pressing Esc has no effect.


Type Documentation

QMessageBox.ButtonRole

This enum describes the roles that can be used to describe buttons in the button box. Combinations of these roles are as flags used to describe different aspects of their behavior.

Constant Value Description
QMessageBox.InvalidRole -1 The button is invalid.
QMessageBox.AcceptRole 0 Clicking the button causes the dialog to be accepted (e.g. OK).
QMessageBox.RejectRole 1 Clicking the button causes the dialog to be rejected (e.g. Cancel).
QMessageBox.DestructiveRole 2 Clicking the button causes a destructive change (e.g. for Discarding Changes) and closes the dialog.
QMessageBox.ActionRole 3 Clicking the button causes changes to the elements within the dialog.
QMessageBox.HelpRole 4 The button can be clicked to request help.
QMessageBox.YesRole 5 The button is a "Yes"-like button.
QMessageBox.NoRole 6 The button is a "No"-like button.
QMessageBox.ApplyRole 8 The button applies current changes.
QMessageBox.ResetRole 7 The button resets the dialog's fields to default values.

See also StandardButton.

QMessageBox.Icon

This enum has the following values:

Constant Value Description
QMessageBox.NoIcon 0 the message box does not have any icon.
QMessageBox.Question 4 an icon indicating that the message is asking a question.
QMessageBox.Information 1 an icon indicating that the message is nothing out of the ordinary.
QMessageBox.Warning 2 an icon indicating that the message is a warning, but can be dealt with.
QMessageBox.Critical 3 an icon indicating that the message represents a critical problem.

QMessageBox.StandardButton

These enums describe flags for standard buttons. Each button has a defined ButtonRole.

Constant Value Description
QMessageBox.Ok 0x00000400 An "OK" button defined with the AcceptRole.
QMessageBox.Open 0x00002000 A "Open" button defined with the AcceptRole.
QMessageBox.Save 0x00000800 A "Save" button defined with the AcceptRole.
QMessageBox.Cancel 0x00400000 A "Cancel" button defined with the RejectRole.
QMessageBox.Close 0x00200000 A "Close" button defined with the RejectRole.
QMessageBox.Discard 0x00800000 A "Discard" or "Don't Save" button, depending on the platform, defined with the DestructiveRole.
QMessageBox.Apply 0x02000000 An "Apply" button defined with the ApplyRole.
QMessageBox.Reset 0x04000000 A "Reset" button defined with the ResetRole.
QMessageBox.RestoreDefaults 0x08000000 A "Restore Defaults" button defined with the ResetRole.
QMessageBox.Help 0x01000000 A "Help" button defined with the HelpRole.
QMessageBox.SaveAll 0x00001000 A "Save All" button defined with the AcceptRole.
QMessageBox.Yes 0x00004000 A "Yes" button defined with the YesRole.
QMessageBox.YesToAll 0x00008000 A "Yes to All" button defined with the YesRole.
QMessageBox.No 0x00010000 A "No" button defined with the NoRole.
QMessageBox.NoToAll 0x00020000 A "No to All" button defined with the NoRole.
QMessageBox.Abort 0x00040000 An "Abort" button defined with the RejectRole.
QMessageBox.Retry 0x00080000 A "Retry" button defined with the AcceptRole.
QMessageBox.Ignore 0x00100000 An "Ignore" button defined with the AcceptRole.
QMessageBox.NoButton 0x00000000 An invalid button.

The following values are obsolete:

Constant Value Description
QMessageBox.YesAll YesToAll Use YesToAll instead.
QMessageBox.NoAll NoToAll Use NoToAll instead.
QMessageBox.Default 0x00000100 Use the defaultButton argument of information(), warning(), etc. instead, or call setDefaultButton().
QMessageBox.Escape 0x00000200 Call setEscapeButton() instead.
QMessageBox.FlagMask 0x00000300  
QMessageBox.ButtonMask ~FlagMask  

This enum was introduced or modified in Qt 4.2.

The StandardButtons type is a typedef for QFlags<StandardButton>. It stores an OR combination of StandardButton values.

See also ButtonRole and standardButtons.


Method Documentation

QMessageBox.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a message box with no text and no buttons. parent is passed to the QDialog constructor.

On Mac OS X, if you want your message box to appear as a Qt.Sheet of its parent, set the message box's window modality to Qt.WindowModal or use open(). Otherwise, the message box will be a standard dialog.

QMessageBox.__init__ (self, Icon icon, QString title, QString text, StandardButtons buttons = QMessageBox.NoButton, QWidget parent = None, Qt.WindowFlags flags = Qt.Dialog|Qt.MSWindowsFixedSizeDialogHint)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a message box with the given icon, title, text, and standard buttons. Standard or custom buttons can be added at any time using addButton(). The parent and f arguments are passed to the QDialog constructor.

The message box is an application modal dialog box.

On Mac OS X, if parent is not 0 and you want your message box to appear as a Qt.Sheet of that parent, set the message box's window modality to Qt.WindowModal (default). Otherwise, the message box will be a standard dialog.

See also setWindowTitle(), setText(), setIcon(), and setStandardButtons().

QMessageBox.__init__ (self, QString title, QString text, Icon icon, int button0, int button1, int button2, QWidget parent = None, Qt.WindowFlags flags = Qt.Dialog|Qt.MSWindowsFixedSizeDialogHint)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QMessageBox.about (QWidget parent, QString caption, QString text)

Displays a simple about box with title title and text text. The about box's parent is parent.

about() looks for a suitable icon in four locations:

  1. It prefers parent->icon() if that exists.
  2. If not, it tries the top-level widget containing parent.
  3. If that fails, it tries the active window.
  4. As a last resort it uses the Information icon.

The about box has a single button labelled "OK". On Mac OS X, the about box is popped up as a modeless window; on other platforms, it is currently application modal.

See also QWidget.windowIcon() and QApplication.activeWindow().

QMessageBox.aboutQt (QWidget parent, QString title = QString())

Displays a simple message box about Qt, with the given title and centered over parent (if parent is not 0). The message includes the version number of Qt being used by the application.

This is useful for inclusion in the Help menu of an application, as shown in the Menus example.

QApplication provides this functionality as a slot.

On Mac OS X, the about box is popped up as a modeless window; on other platforms, it is currently application modal.

See also QApplication.aboutQt().

QMessageBox.addButton (self, QAbstractButton button, ButtonRole role)

The button argument has it's ownership transferred to Qt.

Adds the given button to the message box with the specified role.

This function was introduced in Qt 4.2.

See also removeButton(), button(), and setStandardButtons().

QPushButton QMessageBox.addButton (self, QString text, ButtonRole role)

This is an overloaded function.

Creates a button with the given text, adds it to the message box for the specified role, and returns it.

This function was introduced in Qt 4.2.

QPushButton QMessageBox.addButton (self, StandardButton button)

This is an overloaded function.

Adds a standard button to the message box if it is valid to do so, and returns the push button.

This function was introduced in Qt 4.2.

See also setStandardButtons().

QAbstractButton QMessageBox.button (self, StandardButton which)

Returns a pointer corresponding to the standard button which, or 0 if the standard button doesn't exist in this message box.

This function was introduced in Qt 4.2.

See also standardButtons and standardButton().

ButtonRole QMessageBox.buttonRole (self, QAbstractButton button)

Returns the button role for the specified button. This function returns InvalidRole if button is 0 or has not been added to the message box.

This function was introduced in Qt 4.5.

See also buttons() and addButton().

list-of-QAbstractButton QMessageBox.buttons (self)

Returns a list of all the buttons that have been added to the message box.

This function was introduced in Qt 4.5.

See also buttonRole(), addButton(), and removeButton().

QString QMessageBox.buttonText (self, int button)

QMessageBox.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QAbstractButton QMessageBox.clickedButton (self)

Returns the button that was clicked by the user, or 0 if the user hit the Esc key and no escape button was set.

If exec_() hasn't been called yet, returns 0.

Example:

 QMessageBox messageBox(this);
 QAbstractButton *disconnectButton =
       messageBox.addButton(tr("Disconnect"), QMessageBox.ActionRole);
 ...
 messageBox.exec_();
 if (messageBox.clickedButton() == disconnectButton) {
     ...
 }

This function was introduced in Qt 4.2.

See also standardButton() and button().

QMessageBox.closeEvent (self, QCloseEvent)

Reimplemented from QWidget.closeEvent().

StandardButton QMessageBox.critical (QWidget parent, QString title, QString text, StandardButtons buttons = QMessageBox.Ok, StandardButton defaultButton = QMessageBox.NoButton)

Opens a critical message box with the given title and text in front of the specified parent widget.

The standard buttons are added to the message box. defaultButton specifies the button used when Enter is pressed. defaultButton must refer to a button that was given in buttons. If defaultButton is QMessageBox.NoButton, QMessageBox chooses a suitable default automatically.

Returns the identity of the standard button that was clicked. If Esc was pressed instead, the escape button is returned.

The message box is an application modal dialog box.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QMessageBox constructors.

This function was introduced in Qt 4.2.

See also question(), warning(), and information().

int QMessageBox.critical (QWidget parent, QString title, QString text, int button0, int button1, int button2 = 0)

int QMessageBox.critical (QWidget parent, QString title, QString text, QString button0Text, QString button1Text = QString(), QString button2Text = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1)

QPushButton QMessageBox.defaultButton (self)

Returns the button that should be the message box's default button. Returns 0 if no default button was set.

This function was introduced in Qt 4.2.

See also setDefaultButton(), addButton(), and QPushButton.setDefault().

QString QMessageBox.detailedText (self)

QAbstractButton QMessageBox.escapeButton (self)

Returns the button that is activated when escape is pressed.

By default, QMessageBox attempts to automatically detect an escape button as follows:

  1. If there is only one button, it is made the escape button.
  2. If there is a Cancel button, it is made the escape button.
  3. On Mac OS X only, if there is exactly one button with the role QMessageBox.RejectRole, it is made the escape button.

When an escape button could not be automatically detected, pressing Esc has no effect.

This function was introduced in Qt 4.2.

See also setEscapeButton() and addButton().

bool QMessageBox.event (self, QEvent e)

Reimplemented from QObject.event().

Icon QMessageBox.icon (self)

QPixmap QMessageBox.iconPixmap (self)

StandardButton QMessageBox.information (QWidget parent, QString title, QString text, StandardButtons buttons = QMessageBox.Ok, StandardButton defaultButton = QMessageBox.NoButton)

Opens an information message box with the given title and text in front of the specified parent widget.

The standard buttons are added to the message box. defaultButton specifies the button used when Enter is pressed. defaultButton must refer to a button that was given in buttons. If defaultButton is QMessageBox.NoButton, QMessageBox chooses a suitable default automatically.

Returns the identity of the standard button that was clicked. If Esc was pressed instead, the escape button is returned.

The message box is an application modal dialog box.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QMessageBox constructors.

This function was introduced in Qt 4.2.

See also question(), warning(), and critical().

int QMessageBox.information (QWidget parent, QString title, QString text, int button0, int button1 = 0, int button2 = 0)

int QMessageBox.information (QWidget parent, QString title, QString text, QString button0Text, QString button1Text = QString(), QString button2Text = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1)

QString QMessageBox.informativeText (self)

QMessageBox.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

QMessageBox.open (self)

This is an overloaded function.

Opens the dialog and connects its finished() or buttonClicked() signal to the slot specified by receiver and member. If the slot in member has a pointer for its first parameter the connection is to buttonClicked(), otherwise the connection is to finished().

The signal will be disconnected from the slot when the dialog is closed.

QMessageBox.open (self, QObject receiver, SLOT()SLOT() member)

QMessageBox.open (self, callable receiver)

StandardButton QMessageBox.question (QWidget parent, QString title, QString text, StandardButtons buttons = QMessageBox.Ok, StandardButton defaultButton = QMessageBox.NoButton)

Opens a question message box with the given title and text in front of the specified parent widget.

The standard buttons are added to the message box. defaultButton specifies the button used when Enter is pressed. defaultButton must refer to a button that was given in buttons. If defaultButton is QMessageBox.NoButton, QMessageBox chooses a suitable default automatically.

Returns the identity of the standard button that was clicked. If Esc was pressed instead, the escape button is returned.

The message box is an application modal dialog box.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QMessageBox constructors.

This function was introduced in Qt 4.2.

See also information(), warning(), and critical().

int QMessageBox.question (QWidget parent, QString title, QString text, int button0, int button1 = 0, int button2 = 0)

int QMessageBox.question (QWidget parent, QString title, QString text, QString button0Text, QString button1Text = QString(), QString button2Text = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1)

QMessageBox.removeButton (self, QAbstractButton button)

The button argument

Removes button from the button box without deleting it.

This function was introduced in Qt 4.2.

See also addButton() and setStandardButtons().

QMessageBox.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QMessageBox.setButtonText (self, int button, QString)

QMessageBox.setDefaultButton (self, QPushButton button)

Sets the message box's default button to button.

This function was introduced in Qt 4.2.

See also defaultButton(), addButton(), and QPushButton.setDefault().

QMessageBox.setDefaultButton (self, StandardButton button)

Sets the message box's default button to button.

This function was introduced in Qt 4.3.

See also addButton() and QPushButton.setDefault().

QMessageBox.setDetailedText (self, QString text)

QMessageBox.setEscapeButton (self, QAbstractButton button)

Sets the button that gets activated when the Escape key is pressed to button.

This function was introduced in Qt 4.2.

See also escapeButton(), addButton(), and clickedButton().

QMessageBox.setEscapeButton (self, StandardButton button)

Sets the buttons that gets activated when the Escape key is pressed to button.

This function was introduced in Qt 4.3.

See also addButton() and clickedButton().

QMessageBox.setIcon (self, Icon)

QMessageBox.setIconPixmap (self, QPixmap)

QMessageBox.setInformativeText (self, QString text)

QMessageBox.setStandardButtons (self, StandardButtons buttons)

QMessageBox.setText (self, QString)

QMessageBox.setTextFormat (self, Qt.TextFormat)

QMessageBox.setWindowModality (self, Qt.WindowModality windowModality)

This function shadows QWidget.setWindowModality().

Sets the modality of the message box to windowModality.

On Mac OS X, if the modality is set to Qt.WindowModal and the message box has a parent, then the message box will be a Qt.Sheet, otherwise the message box will be a standard dialog.

This function was introduced in Qt 4.2.

QMessageBox.setWindowTitle (self, QString title)

This function shadows QWidget.setWindowTitle().

Sets the title of the message box to title. On Mac OS X, the window title is ignored (as required by the Mac OS X Guidelines).

This function was introduced in Qt 4.2.

QMessageBox.showEvent (self, QShowEvent)

Reimplemented from QWidget.showEvent().

QSize QMessageBox.sizeHint (self)

StandardButton QMessageBox.standardButton (self, QAbstractButton button)

Returns the standard button enum value corresponding to the given button, or NoButton if the given button isn't a standard button.

This function was introduced in Qt 4.2.

See also button() and standardButtons().

StandardButtons QMessageBox.standardButtons (self)

QPixmap QMessageBox.standardIcon (Icon icon)

QString QMessageBox.text (self)

Qt.TextFormat QMessageBox.textFormat (self)

StandardButton QMessageBox.warning (QWidget parent, QString title, QString text, StandardButtons buttons = QMessageBox.Ok, StandardButton defaultButton = QMessageBox.NoButton)

Opens a warning message box with the given title and text in front of the specified parent widget.

The standard buttons are added to the message box. defaultButton specifies the button used when Enter is pressed. defaultButton must refer to a button that was given in buttons. If defaultButton is QMessageBox.NoButton, QMessageBox chooses a suitable default automatically.

Returns the identity of the standard button that was clicked. If Esc was pressed instead, the escape button is returned.

The message box is an application modal dialog box.

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QMessageBox constructors.

This function was introduced in Qt 4.2.

See also question(), information(), and critical().

int QMessageBox.warning (QWidget parent, QString title, QString text, int button0, int button1, int button2 = 0)

int QMessageBox.warning (QWidget parent, QString title, QString text, QString button0Text, QString button1Text = QString(), QString button2Text = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1)


Qt Signal Documentation

void buttonClicked (QAbstractButton*)

This is the default overload of this signal.

This signal is emitted whenever a button is clicked inside the QMessageBox. The button that was clicked in returned in button.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmetaclassinfo.html0000644000076500000240000000734012536324473021371 0ustar philstaff00000000000000 QMetaClassInfo Class Reference
  Home · All Classes · Modules

QMetaClassInfo Class Reference
[QtCore module]

The QMetaClassInfo class provides additional information about a class. More...

Methods


Detailed Description

The QMetaClassInfo class provides additional information about a class.

Class information items are simple name--value pairs that are specified using Q_CLASSINFO() in the source code. The information can be retrieved using name() and value(). For example:

 class MyClass
 {
     Q_OBJECT
     Q_CLASSINFO("author", "Sabrina Schweinsteiger")
     Q_CLASSINFO("url", "http://doc.moosesoft.co.uk/1.0/")

 public:
     ...
 };

This mechanism is free for you to use in your Qt applications. Qt doesn't use it for any of its classes.


Method Documentation

QMetaClassInfo.__init__ (self)

QMetaClassInfo.__init__ (self, QMetaClassInfo)

str QMetaClassInfo.name (self)

Returns the name of this item.

See also value().

str QMetaClassInfo.value (self)

Returns the value of this item.

See also name().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmetaenum.html0000644000076500000240000002037312536324473020355 0ustar philstaff00000000000000 QMetaEnum Class Reference
  Home · All Classes · Modules

QMetaEnum Class Reference
[QtCore module]

The QMetaEnum class provides meta-data about an enumerator. More...

Methods


Detailed Description

The QMetaEnum class provides meta-data about an enumerator.

Use name() for the enumerator's name. The enumerator's keys (names of each enumerated item) are returned by key(); use keyCount() to find the number of keys. isFlag() returns whether the enumerator is meant to be used as a flag, meaning that its values can be combined using the OR operator.

The conversion functions keyToValue(), valueToKey(), keysToValue(), and valueToKeys() allow conversion between the integer representation of an enumeration or set value and its literal representation. The scope() function returns the class scope this enumerator was declared in.


Method Documentation

QMetaEnum.__init__ (self)

QMetaEnum.__init__ (self, QMetaEnum)

bool QMetaEnum.isFlag (self)

Returns true if this enumerator is used as a flag; otherwise returns false.

When used as flags, enumerators can be combined using the OR operator.

See also keysToValue() and valueToKeys().

bool QMetaEnum.isValid (self)

Returns true if this enum is valid (has a name); otherwise returns false.

See also name().

str QMetaEnum.key (self, int index)

Returns the key with the given index, or 0 if no such key exists.

See also keyCount(), value(), and valueToKey().

int QMetaEnum.keyCount (self)

Returns the number of keys.

See also key().

int QMetaEnum.keysToValue (self, str keys)

Returns the value derived from combining together the values of the keys using the OR operator, or -1 if keys is not defined. Note that the strings in keys must be '|'-separated.

See also isFlag(), valueToKey(), and valueToKeys().

int QMetaEnum.keyToValue (self, str key)

Returns the integer value of the given enumeration key, or -1 if key is not defined.

For flag types, use keysToValue().

See also valueToKey(), isFlag(), and keysToValue().

str QMetaEnum.name (self)

Returns the name of the enumerator (without the scope).

For example, the Qt.AlignmentFlag enumeration has AlignmentFlag as the name and Qt as the scope.

See also isValid() and scope().

str QMetaEnum.scope (self)

Returns the scope this enumerator was declared in.

For example, the Qt.AlignmentFlag enumeration has Qt as the scope and AlignmentFlag as the name.

See also name().

int QMetaEnum.value (self, int index)

Returns the value with the given index; or returns -1 if there is no such value.

See also keyCount(), key(), and keyToValue().

str QMetaEnum.valueToKey (self, int value)

Returns the string that is used as the name of the given enumeration value, or 0 if value is not defined.

For flag types, use valueToKeys().

See also isFlag() and valueToKeys().

QByteArray QMetaEnum.valueToKeys (self, int value)

Returns a byte array of '|'-separated keys that represents the given value.

See also isFlag(), valueToKey(), and keysToValue().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmetamethod.html0000644000076500000240000006007612536324473020675 0ustar philstaff00000000000000 QMetaMethod Class Reference
  Home · All Classes · Modules

QMetaMethod Class Reference
[QtCore module]

The QMetaMethod class provides meta-data about a member function. More...

Types

  • enum Access { Private, Protected, Public }
  • enum MethodType { Method, Signal, Slot, Constructor }

Methods

  • __init__ (self)
  • __init__ (self, QMetaMethod)
  • Access access (self)
  • object invoke (self, QObject object, Qt.ConnectionType connectionType, QGenericReturnArgument returnValue, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))
  • object invoke (self, QObject object, QGenericReturnArgument returnValue, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))
  • object invoke (self, QObject object, Qt.ConnectionType connectionType, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))
  • object invoke (self, QObject object, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))
  • int methodIndex (self)
  • MethodType methodType (self)
  • list-of-QByteArray parameterNames (self)
  • list-of-QByteArray parameterTypes (self)
  • str signature (self)
  • str tag (self)
  • str typeName (self)

Detailed Description

The QMetaMethod class provides meta-data about a member function.

A QMetaMethod has a methodType(), a signature(), a list of parameterTypes() and parameterNames(), a return typeName(), a tag(), and an access() specifier. You can use invoke() to invoke the method on an arbitrary QObject.

A method will only be registered with the meta-object system if it is a slot, a signal, or declared with the Q_INVOKABLE macro. Constructors can also be registered with Q_INVOKABLE.


Type Documentation

QMetaMethod.Access

This enum describes the access level of a method, following the conventions used in C++.

Constant Value
QMetaMethod.Private 0
QMetaMethod.Protected 1
QMetaMethod.Public 2

QMetaMethod.MethodType

Constant Value Description
QMetaMethod.Method 0 The function is a plain member function.
QMetaMethod.Signal 1 The function is a signal.
QMetaMethod.Slot 2 The function is a slot.
QMetaMethod.Constructor 3 The function is a constructor.

Method Documentation

QMetaMethod.__init__ (self)

QMetaMethod.__init__ (self, QMetaMethod)

Access QMetaMethod.access (self)

Returns the access specification of this method (private, protected, or public).

Signals are always protected, meaning that you can only emit them from the class or from a subclass.

See also methodType().

object QMetaMethod.invoke (self, QObject object, Qt.ConnectionType connectionType, QGenericReturnArgument returnValue, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))

Invokes this method on the object object. Returns true if the member could be invoked. Returns false if there is no such member or the parameters did not match.

The invocation can be either synchronous or asynchronous, depending on the connectionType:

  • If connectionType is Qt.DirectConnection, the member will be invoked immediately.
  • If connectionType is Qt.QueuedConnection, a QEvent will be posted and the member is invoked as soon as the application enters the main event loop.
  • If connectionType is Qt.AutoConnection, the member is invoked synchronously if object lives in the same thread as the caller; otherwise it will invoke the member asynchronously.

The return value of this method call is placed in returnValue. If the invocation is asynchronous, the return value cannot be evaluated. You can pass up to ten arguments (val0, val1, val2, val3, val4, val5, val6, val7, val8, and val9) to this method call.

QGenericArgument and QGenericReturnArgument are internal helper classes. Because signals and slots can be dynamically invoked, you must enclose the arguments using the Q_ARG() and Q_RETURN_ARG() macros. Q_ARG() takes a type name and a const reference of that type; Q_RETURN_ARG() takes a type name and a non-const reference.

To asynchronously invoke the animateClick() slot on a QPushButton:

 int methodIndex = pushButton->metaObject()->indexOfMethod("animateClick()");
 QMetaMethod method = metaObject->method(methodIndex);
 method.invoke(pushButton, Qt.QueuedConnection);

With asynchronous method invocations, the parameters must be of types that are known to Qt's meta-object system, because Qt needs to copy the arguments to store them in an event behind the scenes. If you try to use a queued connection and get the error message

 QMetaMethod.invoke: Unable to handle unregistered datatype 'MyType'

call qRegisterMetaType() to register the data type before you call QMetaMethod.invoke().

To synchronously invoke the compute(QString, int, double) slot on some arbitrary object obj retrieve its return value:

 QString retVal;
 QByteArray normalizedSignature = QMetaObject.normalizedSignature("compute(QString, int, double)");
 int methodIndex = obj->metaObject()->indexOfMethod(normalizedSignature);
 QMetaMethod method = metaObject->method(methodIndex);
 method.invoke(obj,
               Qt.DirectConnection,
               Q_RETURN_ARG(QString, retVal),
               Q_ARG(QString, "sqrt"),
               Q_ARG(int, 42),
               Q_ARG(double, 9.7));

QMetaObject.normalizedSignature() is used here to ensure that the format of the signature is what invoke() expects. E.g. extra whitespace is removed.

If the "compute" slot does not take exactly one QString, one int and one double in the specified order, the call will fail.

Warning: this method will not test the validity of the arguments: object must be an instance of the class of the QMetaObject of which this QMetaMethod has been constructed with. The arguments must have the same type as the ones expected by the method, else, the behaviour is undefined.

See also Q_ARG(), Q_RETURN_ARG(), qRegisterMetaType(), and QMetaObject.invokeMethod().

object QMetaMethod.invoke (self, QObject object, QGenericReturnArgument returnValue, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))

This function overloads invoke().

This overload always invokes this method using the connection type Qt.AutoConnection.

object QMetaMethod.invoke (self, QObject object, Qt.ConnectionType connectionType, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))

This function overloads invoke().

This overload can be used if the return value of the member is of no interest.

object QMetaMethod.invoke (self, QObject object, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))

This function overloads invoke().

This overload invokes this method using the connection type Qt.AutoConnection and ignores return values.

int QMetaMethod.methodIndex (self)

Returns this method's index.

This function was introduced in Qt 4.6.

MethodType QMetaMethod.methodType (self)

Returns the type of this method (signal, slot, or method).

See also access().

list-of-QByteArray QMetaMethod.parameterNames (self)

Returns a list of parameter names.

See also parameterTypes() and signature().

list-of-QByteArray QMetaMethod.parameterTypes (self)

Returns a list of parameter types.

See also parameterNames() and signature().

str QMetaMethod.signature (self)

Returns the signature of this method (e.g., setValue(double)).

See also parameterTypes() and parameterNames().

str QMetaMethod.tag (self)

Returns the tag associated with this method.

Tags are special macros recognized by moc that make it possible to add extra information about a method.

Tag information can be added in the following way in the function declaration:

 #define THISISTESTTAG // tag text
 ...
 private slots:
     THISISTESTTAG void testFunc();

and the information can be accessed by using:

 MainWindow win;
 win.show();

 int functionIndex = win.metaObject()->indexOfSlot("testFunc()");
 QMetaMethod mm = metaObject()->method(functionIndex);
 qDebug() << mm.tag(); // prints THISISTESTTAG

For the moment, moc doesn't support any special tags.

str QMetaMethod.typeName (self)

Returns the return type of this method, or an empty string if the return type is void.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmetaobject.html0000644000076500000240000012441012536324473020654 0ustar philstaff00000000000000 QMetaObject Class Reference
  Home · All Classes · Modules

QMetaObject Class Reference
[
QtCore module]

The QMetaObject class contains meta-information about Qt objects. More...

Methods

Static Methods

  • bool checkConnectArgs (str signal, str method)
  • connectSlotsByName (QObject o)
  • object invokeMethod (QObject obj, str member, Qt.ConnectionType type, QGenericReturnArgument ret, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))
  • object invokeMethod (QObject obj, str member, QGenericReturnArgument ret, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))
  • object invokeMethod (QObject obj, str member, Qt.ConnectionType type, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))
  • object invokeMethod (QObject obj, str member, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))
  • QByteArray normalizedSignature (str method)
  • QByteArray normalizedType (str type)

Detailed Description

The QMetaObject class contains meta-information about Qt objects.

The Qt Meta-Object System in Qt is responsible for the signals and slots inter-object communication mechanism, runtime type information, and the Qt property system. A single QMetaObject instance is created for each QObject subclass that is used in an application, and this instance stores all the meta-information for the QObject subclass. This object is available as QObject.metaObject().

This class is not normally required for application programming, but it is useful if you write meta-applications, such as scripting engines or GUI builders.

The functions you are most likely to find useful are these:

The index functions indexOfConstructor(), indexOfMethod(), indexOfEnumerator(), and indexOfProperty() map names of constructors, member functions, enumerators, or properties to indexes in the meta-object. For example, Qt uses indexOfMethod() internally when you connect a signal to a slot.

Classes can also have a list of name--value pairs of additional class information, stored in QMetaClassInfo objects. The number of pairs is returned by classInfoCount(), single pairs are returned by classInfo(), and you can search for pairs with indexOfClassInfo().


Method Documentation

QMetaObject.__init__ (self)

QMetaObject.__init__ (self, QMetaObject)

bool QMetaObject.checkConnectArgs (str signal, str method)

Returns true if the signal and method arguments are compatible; otherwise returns false.

Both signal and method are expected to be normalized.

See also normalizedSignature().

QMetaClassInfo QMetaObject.classInfo (self, int index)

Returns the meta-data for the item of class information with the given index.

Example:

 class MyClass : public QObject
 {
     Q_OBJECT
     Q_CLASSINFO("author", "Sabrina Schweinsteiger")
     Q_CLASSINFO("url", "http://doc.moosesoft.co.uk/1.0/")

 public:
     ...
 };

See also classInfoCount(), classInfoOffset(), and indexOfClassInfo().

int QMetaObject.classInfoCount (self)

Returns the number of items of class information in this class.

See also classInfo(), classInfoOffset(), and indexOfClassInfo().

int QMetaObject.classInfoOffset (self)

Returns the class information offset for this class; i.e. the index position of this class's first class information item.

If the class has no superclasses with class information, the offset is 0; otherwise the offset is the sum of all the class information items in the class's superclasses.

See also classInfo(), classInfoCount(), and indexOfClassInfo().

str QMetaObject.className (self)

Returns the class name.

See also superClass().

QMetaObject.connectSlotsByName (QObject o)

Searches recursively for all child objects of the given object, and connects matching signals from them to slots of object that follow the following form:

 void on_<object name>_<signal name>(<signal parameters>);

Let's assume our object has a child object of type QPushButton with the object name button1. The slot to catch the button's clicked() signal would be:

 void on_button1_clicked();

See also QObject.setObjectName().

QMetaMethod QMetaObject.constructor (self, int index)

Returns the meta-data for the constructor with the given index.

This function was introduced in Qt 4.5.

See also constructorCount() and newInstance().

int QMetaObject.constructorCount (self)

Returns the number of constructors in this class.

This function was introduced in Qt 4.5.

See also constructor() and indexOfConstructor().

QMetaEnum QMetaObject.enumerator (self, int index)

Returns the meta-data for the enumerator with the given index.

See also enumeratorCount(), enumeratorOffset(), and indexOfEnumerator().

int QMetaObject.enumeratorCount (self)

Returns the number of enumerators in this class.

See also enumerator(), enumeratorOffset(), and indexOfEnumerator().

int QMetaObject.enumeratorOffset (self)

Returns the enumerator offset for this class; i.e. the index position of this class's first enumerator.

If the class has no superclasses with enumerators, the offset is 0; otherwise the offset is the sum of all the enumerators in the class's superclasses.

See also enumerator(), enumeratorCount(), and indexOfEnumerator().

int QMetaObject.indexOfClassInfo (self, str name)

Finds class information item name and returns its index; otherwise returns -1.

See also classInfo(), classInfoCount(), and classInfoOffset().

int QMetaObject.indexOfConstructor (self, str constructor)

Finds constructor and returns its index; otherwise returns -1.

Note that the constructor has to be in normalized form, as returned by normalizedSignature().

This function was introduced in Qt 4.5.

See also constructor(), constructorCount(), and normalizedSignature().

int QMetaObject.indexOfEnumerator (self, str name)

Finds enumerator name and returns its index; otherwise returns -1.

See also enumerator(), enumeratorCount(), and enumeratorOffset().

int QMetaObject.indexOfMethod (self, str method)

Finds method and returns its index; otherwise returns -1.

Note that the method has to be in normalized form, as returned by normalizedSignature().

See also method(), methodCount(), methodOffset(), and normalizedSignature().

int QMetaObject.indexOfProperty (self, str name)

Finds property name and returns its index; otherwise returns -1.

See also property(), propertyCount(), and propertyOffset().

int QMetaObject.indexOfSignal (self, str signal)

Finds signal and returns its index; otherwise returns -1.

This is the same as indexOfMethod(), except that it will return -1 if the method exists but isn't a signal.

Note that the signal has to be in normalized form, as returned by normalizedSignature().

See also indexOfMethod(), normalizedSignature(), method(), methodCount(), and methodOffset().

int QMetaObject.indexOfSlot (self, str slot)

Finds slot and returns its index; otherwise returns -1.

This is the same as indexOfMethod(), except that it will return -1 if the method exists but isn't a slot.

See also indexOfMethod(), method(), methodCount(), and methodOffset().

object QMetaObject.invokeMethod (QObject obj, str member, Qt.ConnectionType type, QGenericReturnArgument ret, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))

Invokes the member (a signal or a slot name) on the object obj. Returns true if the member could be invoked. Returns false if there is no such member or the parameters did not match.

The invocation can be either synchronous or asynchronous, depending on type:

  • If type is Qt.DirectConnection, the member will be invoked immediately.
  • If type is Qt.QueuedConnection, a QEvent will be sent and the member is invoked as soon as the application enters the main event loop.
  • If type is Qt.BlockingQueuedConnection, the method will be invoked in the same way as for Qt.QueuedConnection, except that the current thread will block until the event is delivered. Using this connection type to communicate between objects in the same thread will lead to deadlocks.
  • If type is Qt.AutoConnection, the member is invoked synchronously if obj lives in the same thread as the caller; otherwise it will invoke the member asynchronously.

The return value of the member function call is placed in ret. If the invocation is asynchronous, the return value cannot be evaluated. You can pass up to ten arguments (val0, val1, val2, val3, val4, val5, val6, val7, val8, and val9) to the member function.

QGenericArgument and QGenericReturnArgument are internal helper classes. Because signals and slots can be dynamically invoked, you must enclose the arguments using the Q_ARG() and Q_RETURN_ARG() macros. Q_ARG() takes a type name and a const reference of that type; Q_RETURN_ARG() takes a type name and a non-const reference.

You only need to pass the name of the signal or slot to this function, not the entire signature. For example, to asynchronously invoke the animateClick() slot on a QPushButton, use the following code:

 QMetaObject.invokeMethod(pushButton, "animateClick",
                           Qt.QueuedConnection);

With asynchronous method invocations, the parameters must be of types that are known to Qt's meta-object system, because Qt needs to copy the arguments to store them in an event behind the scenes. If you try to use a queued connection and get the error message

 QMetaObject.invokeMethod: Unable to handle unregistered datatype 'MyType'

call qRegisterMetaType() to register the data type before you call invokeMethod().

To synchronously invoke the compute(QString, int, double) slot on some arbitrary object obj retrieve its return value:

 QString retVal;
 QMetaObject.invokeMethod(obj, "compute", Qt.DirectConnection,
                           Q_RETURN_ARG(QString, retVal),
                           Q_ARG(QString, "sqrt"),
                           Q_ARG(int, 42),
                           Q_ARG(double, 9.7));

If the "compute" slot does not take exactly one QString, one int and one double in the specified order, the call will fail.

See also Q_ARG(), Q_RETURN_ARG(), qRegisterMetaType(), and QMetaMethod.invoke().

object QMetaObject.invokeMethod (QObject obj, str member, QGenericReturnArgument ret, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))

This function overloads invokeMethod().

This overload always invokes the member using the connection type Qt.AutoConnection.

object QMetaObject.invokeMethod (QObject obj, str member, Qt.ConnectionType type, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))

This function overloads invokeMethod().

This overload can be used if the return value of the member is of no interest.

object QMetaObject.invokeMethod (QObject obj, str member, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))

This function overloads invokeMethod().

This overload invokes the member using the connection type Qt.AutoConnection and ignores return values.

QMetaMethod QMetaObject.method (self, int index)

Returns the meta-data for the method with the given index.

See also methodCount(), methodOffset(), and indexOfMethod().

int QMetaObject.methodCount (self)

Returns the number of methods known to the meta-object system in this class, including the number of properties provided by each base class. These include signals and slots as well as member functions declared with the Q_INVOKABLE macro.

Use code like the following to obtain a QStringList containing the methods specific to a given class:

 const QMetaObject* metaObject = obj->metaObject();
 QStringList methods;
 for(int i = metaObject->methodOffset(); i < metaObject->methodCount(); ++i)
     methods << QString.fromLatin1(metaObject->method(i).signature());

See also method(), methodOffset(), and indexOfMethod().

int QMetaObject.methodOffset (self)

Returns the method offset for this class; i.e. the index position of this class's first member function.

The offset is the sum of all the methods in the class's superclasses (which is always positive since QObject has the deleteLater() slot and a destroyed() signal).

See also method(), methodCount(), and indexOfMethod().

QObject QMetaObject.newInstance (self, QGenericArgument value0 = QGenericArgument(0,0), QGenericArgument value1 = QGenericArgument(0,0), QGenericArgument value2 = QGenericArgument(0,0), QGenericArgument value3 = QGenericArgument(0,0), QGenericArgument value4 = QGenericArgument(0,0), QGenericArgument value5 = QGenericArgument(0,0), QGenericArgument value6 = QGenericArgument(0,0), QGenericArgument value7 = QGenericArgument(0,0), QGenericArgument value8 = QGenericArgument(0,0), QGenericArgument value9 = QGenericArgument(0,0))

Constructs a new instance of this class. You can pass up to ten arguments (val0, val1, val2, val3, val4, val5, val6, val7, val8, and val9) to the constructor. Returns the new object, or 0 if no suitable constructor is available.

Note that only constructors that are declared with the Q_INVOKABLE modifier are made available through the meta-object system.

This function was introduced in Qt 4.5.

See also Q_ARG() and constructor().

QByteArray QMetaObject.normalizedSignature (str method)

Normalizes the signature of the given method.

Qt uses normalized signatures to decide whether two given signals and slots are compatible. Normalization reduces whitespace to a minimum, moves 'const' to the front where appropriate, removes 'const' from value types and replaces const references with values.

See also checkConnectArgs() and normalizedType().

QByteArray QMetaObject.normalizedType (str type)

Normalizes a type.

See QMetaObject.normalizedSignature() for a description on how Qt normalizes.

Example:

 QByteArray normType = QMetaObject.normalizedType(" int    const  *");
 // normType is now "const int*"

This function was introduced in Qt 4.2.

See also normalizedSignature().

QMetaProperty QMetaObject.property (self, int index)

Returns the meta-data for the property with the given index. If no such property exists, a null QMetaProperty is returned.

See also propertyCount(), propertyOffset(), and indexOfProperty().

int QMetaObject.propertyCount (self)

Returns the number of properties in this class, including the number of properties provided by each base class.

Use code like the following to obtain a QStringList containing the properties specific to a given class:

 const QMetaObject* metaObject = obj->metaObject();
 QStringList properties;
 for(int i = metaObject->propertyOffset(); i < metaObject->propertyCount(); ++i)
     properties << QString.fromLatin1(metaObject->property(i).name());

See also property(), propertyOffset(), and indexOfProperty().

int QMetaObject.propertyOffset (self)

Returns the property offset for this class; i.e. the index position of this class's first property.

The offset is the sum of all the properties in the class's superclasses (which is always positive since QObject has the name() property).

See also property(), propertyCount(), and indexOfProperty().

QMetaObject QMetaObject.superClass (self)

Returns the meta-object of the superclass, or 0 if there is no such object.

See also className().

QMetaProperty QMetaObject.userProperty (self)

Returns the property that has the USER flag set to true.

This function was introduced in Qt 4.2.

See also QMetaProperty.isUser().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmetaproperty.html0000644000076500000240000004154112536324473021275 0ustar philstaff00000000000000 QMetaProperty Class Reference
  Home · All Classes · Modules

QMetaProperty Class Reference
[QtCore module]

The QMetaProperty class provides meta-data about a property. More...

Methods


Detailed Description

The QMetaProperty class provides meta-data about a property.

Property meta-data is obtained from an object's meta-object. See QMetaObject.property() and QMetaObject.propertyCount() for details.

Property Meta-Data

A property has a name() and a type(), as well as various attributes that specify its behavior: isReadable(), isWritable(), isDesignable(), isScriptable(), and isStored().

If the property is an enumeration, isEnumType() returns true; if the property is an enumeration that is also a flag (i.e. its values can be combined using the OR operator), isEnumType() and isFlagType() both return true. The enumerator for these types is available from enumerator().

The property's values are set and retrieved with read(), write(), and reset(); they can also be changed through QObject's set and get functions. See QObject.setProperty() and QObject.property() for details.

Copying and Assignment

QMetaProperty objects can be copied by value. However, each copy will refer to the same underlying property meta-data.


Method Documentation

QMetaProperty.__init__ (self)

QMetaProperty.__init__ (self, QMetaProperty)

QMetaEnum QMetaProperty.enumerator (self)

Returns the enumerator if this property's type is an enumerator type; otherwise the returned value is undefined.

See also isEnumType() and isFlagType().

bool QMetaProperty.hasNotifySignal (self)

Returns true if this property has a corresponding change notify signal; otherwise returns false.

See also notifySignal().

bool QMetaProperty.hasStdCppSet (self)

bool QMetaProperty.isConstant (self)

Returns true if the property is constant; otherwise returns false.

A property is constant if the Q_PROPERTY()'s CONSTANT attribute is set.

This function was introduced in Qt 4.6.

bool QMetaProperty.isDesignable (self, QObject object = None)

Returns true if this property is designable for the given object; otherwise returns false.

If no object is given, the function returns false if the Q_PROPERTY()'s DESIGNABLE attribute is false; otherwise returns true (if the attribute is true or is a function or expression).

See also isScriptable() and isStored().

bool QMetaProperty.isEditable (self, QObject object = None)

bool QMetaProperty.isEnumType (self)

Returns true if the property's type is an enumeration value; otherwise returns false.

See also enumerator() and isFlagType().

bool QMetaProperty.isFinal (self)

Returns true if the property is final; otherwise returns false.

A property is final if the Q_PROPERTY()'s FINAL attribute is set.

This function was introduced in Qt 4.6.

bool QMetaProperty.isFlagType (self)

Returns true if the property's type is an enumeration value that is used as a flag; otherwise returns false.

Flags can be combined using the OR operator. A flag type is implicitly also an enum type.

See also isEnumType(), enumerator(), and QMetaEnum.isFlag().

bool QMetaProperty.isReadable (self)

Returns true if this property is readable; otherwise returns false.

See also isWritable(), read(), and isValid().

bool QMetaProperty.isResettable (self)

Returns true if this property can be reset to a default value; otherwise returns false.

See also reset().

bool QMetaProperty.isScriptable (self, QObject object = None)

Returns true if the property is scriptable for the given object; otherwise returns false.

If no object is given, the function returns false if the Q_PROPERTY()'s SCRIPTABLE attribute is false; otherwise returns true (if the attribute is true or is a function or expression).

See also isDesignable() and isStored().

bool QMetaProperty.isStored (self, QObject object = None)

Returns true if the property is stored for object; otherwise returns false.

If no object is given, the function returns false if the Q_PROPERTY()'s STORED attribute is false; otherwise returns true (if the attribute is true or is a function or expression).

See also isDesignable() and isScriptable().

bool QMetaProperty.isUser (self, QObject object = None)

Returns true if this property is designated as the USER property, i.e., the one that the user can edit for object or that is significant in some other way. Otherwise it returns false. e.g., the text property is the USER editable property of a QLineEdit.

If object is null, the function returns false if the Q_PROPERTY()'s USER attribute is false. Otherwise it returns true.

See also QMetaObject.userProperty(), isDesignable(), and isScriptable().

bool QMetaProperty.isValid (self)

Returns true if this property is valid (readable); otherwise returns false.

See also isReadable().

bool QMetaProperty.isWritable (self)

Returns true if this property is writable; otherwise returns false.

See also isReadable() and write().

str QMetaProperty.name (self)

Returns this property's name.

See also type() and typeName().

QMetaMethod QMetaProperty.notifySignal (self)

Returns the QMetaMethod instance of the property change notifying signal if one was specified, otherwise returns an invalid QMetaMethod.

This function was introduced in Qt 4.5.

See also hasNotifySignal().

int QMetaProperty.notifySignalIndex (self)

Returns the index of the property change notifying signal if one was specified, otherwise returns -1.

This function was introduced in Qt 4.6.

See also hasNotifySignal().

int QMetaProperty.propertyIndex (self)

Returns this property's index.

This function was introduced in Qt 4.6.

QVariant QMetaProperty.read (self, QObject obj)

Reads the property's value from the given object. Returns the value if it was able to read it; otherwise returns an invalid variant.

See also write(), reset(), and isReadable().

bool QMetaProperty.reset (self, QObject obj)

Resets the property for the given object with a reset method. Returns true if the reset worked; otherwise returns false.

Reset methods are optional; only a few properties support them.

See also read() and write().

Type QMetaProperty.type (self)

Returns this property's type. The return value is one of the values of the QVariant.Type enumeration.

See also userType(), typeName(), and name().

str QMetaProperty.typeName (self)

Returns the name of this property's type.

See also type() and name().

int QMetaProperty.userType (self)

Returns this property's user type. The return value is one of the values that are registered with QMetaType, or 0 if the type is not registered.

This function was introduced in Qt 4.2.

See also type(), QMetaType, and typeName().

bool QMetaProperty.write (self, QObject obj, QVariant value)

Writes value as the property's value to the given object. Returns true if the write succeeded; otherwise returns false.

See also read(), reset(), and isWritable().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmetatype.html0000644000076500000240000003647212536324473020401 0ustar philstaff00000000000000 QMetaType Class Reference
  Home · All Classes · Modules

QMetaType Class Reference
[QtCore module]

The QMetaType class manages named types in the meta-object system. More...

Types

  • enum Type { Void, Bool, Int, UInt, ..., User }

Methods

Static Methods


Detailed Description

The QMetaType class manages named types in the meta-object system.

The class is used as a helper to marshall types in QVariant and in queued signals and slots connections. It associates a type name to a type so that it can be created and destructed dynamically at run-time. Declare new types with Q_DECLARE_METATYPE() to make them available to QVariant and other template-based functions. Call qRegisterMetaType() to make type available to non-template based functions, such as the queued signal and slot connections.

Any class or struct that has a public default constructor, a public copy constructor, and a public destructor can be registered.

The following code allocates and destructs an instance of MyClass:

 int id = QMetaType.type("MyClass");
 if (id != 0) {
     void *myClassPtr = QMetaType.construct(id);
     ...
     QMetaType.destroy(id, myClassPtr);
     myClassPtr = 0;
 }

If we want the stream operators operator<<() and operator>>() to work on QVariant objects that store custom types, the custom type must provide operator<<() and operator>>() operators.


Type Documentation

QMetaType.Type

These are the built-in types supported by QMetaType:

Constant Value Description
QMetaType.Void 0 void
QMetaType.Bool 1 bool
QMetaType.Int 2 int
QMetaType.UInt 3 unsigned int
QMetaType.Double 6 double
QMetaType.QChar 7 QChar
QMetaType.QString 10 QString
QMetaType.QByteArray 12 QByteArray
QMetaType.VoidStar 128 void *
QMetaType.Long 129 long
QMetaType.LongLong 4 LongLong
QMetaType.Short 130 short
QMetaType.Char 131 char
QMetaType.ULong 132 unsigned long
QMetaType.ULongLong 5 ULongLong
QMetaType.UShort 133 unsigned short
QMetaType.UChar 134 unsigned char
QMetaType.Float 135 float
QMetaType.QObjectStar 136 QObject *
QMetaType.QWidgetStar 137 QWidget *
QMetaType.QVariant 138 QVariant
QMetaType.QColorGroup 63 QColorGroup
QMetaType.QCursor 74 QCursor
QMetaType.QDate 14 QDate
QMetaType.QSize 21 QSize
QMetaType.QTime 15 QTime
QMetaType.QVariantList 9 QVariantList
QMetaType.QPolygon 71 QPolygon
QMetaType.QColor 67 QColor
QMetaType.QSizeF 22 QSizeF
QMetaType.QRectF 20 QRectF
QMetaType.QLine 23 QLine
QMetaType.QTextLength 78 QTextLength
QMetaType.QStringList 11 QStringList
QMetaType.QVariantMap 8 QVariantMap
QMetaType.QVariantHash 28 QVariantHash
QMetaType.QIcon 69 QIcon
QMetaType.QPen 77 QPen
QMetaType.QLineF 24 QLineF
QMetaType.QTextFormat 79 QTextFormat
QMetaType.QRect 19 QRect
QMetaType.QPoint 25 QPoint
QMetaType.QUrl 17 QUrl
QMetaType.QRegExp 27 QRegExp
QMetaType.QDateTime 16 QDateTime
QMetaType.QPointF 26 QPointF
QMetaType.QPalette 68 QPalette
QMetaType.QFont 64 QFont
QMetaType.QBrush 66 QBrush
QMetaType.QRegion 72 QRegion
QMetaType.QBitArray 13 QBitArray
QMetaType.QImage 70 QImage
QMetaType.QKeySequence 76 QKeySequence
QMetaType.QSizePolicy 75 QSizePolicy
QMetaType.QPixmap 65 QPixmap
QMetaType.QLocale 18 QLocale
QMetaType.QBitmap 73 QBitmap
QMetaType.QMatrix 80 QMatrix
QMetaType.QTransform 81 QTransform
QMetaType.QMatrix4x4 82 QMatrix4x4
QMetaType.QVector2D 83 QVector2D
QMetaType.QVector3D 84 QVector3D
QMetaType.QVector4D 85 QVector4D
QMetaType.QQuaternion 86 QQuaternion
QMetaType.QEasingCurve 29 QEasingCurve
QMetaType.User 256 Base value for user types

Additional types can be registered using Q_DECLARE_METATYPE().

See also type() and typeName().


Method Documentation

QMetaType.__init__ (self)

QMetaType.__init__ (self, QMetaType)

bool QMetaType.isRegistered (int type)

Returns true if the datatype with ID type is registered; otherwise returns false.

See also type(), typeName(), and Type.

int QMetaType.type (str typeName)

Returns a handle to the type called typeName, or 0 if there is no such type.

See also isRegistered(), typeName(), and Type.

str QMetaType.typeName (int type)

Returns the type name associated with the given type, or 0 if no matching type was found. The returned pointer must not be deleted.

See also type(), isRegistered(), and Type.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmimedata.html0000644000076500000240000006213412536324473020324 0ustar philstaff00000000000000 QMimeData Class Reference
  Home · All Classes · Modules

QMimeData Class Reference
[QtCore module]

The QMimeData class provides a container for data that records information about its MIME type. More...

Inherits QObject.

Methods


Detailed Description

The QMimeData class provides a container for data that records information about its MIME type.

QMimeData is used to describe information that can be stored in the clipboard, and transferred via the drag and drop mechanism. QMimeData objects associate the data that they hold with the corresponding MIME types to ensure that information can be safely transferred between applications, and copied around within the same application.

QMimeData objects are usually created using new and supplied to QDrag or QClipboard objects. This is to enable Qt to manage the memory that they use.

A single QMimeData object can store the same data using several different formats at the same time. The formats() function returns a list of the available formats in order of preference. The data() function returns the raw data associated with a MIME type, and setData() allows you to set the data for a MIME type.

For the most common MIME types, QMimeData provides convenience functions to access the data:

Tester Getter Setter MIME Types
hasText() text() setText() text/plain
hasHtml() html() setHtml() text/html
hasUrls() urls() setUrls() text/uri-list
hasImage() imageData() setImageData() image/ *
hasColor() colorData() setColorData() application/x-color

For example, if your write a widget that accepts URL drags, you would end up writing code like this:

 void MyWidget.dragEnterEvent(QDragEnterEvent *event)
 {
     if (event->mimeData()->hasUrls())
         event->acceptProposedAction();
 }

 void MyWidget.dropEvent(QDropEvent *event)
 {
     if (event->mimeData()->hasUrls()) {
         foreach (QUrl url, event->mimeData()->urls()) {
             ...
         }
     }
 }

There are three approaches for storing custom data in a QMimeData object:

  1. Custom data can be stored directly in a QMimeData object as a QByteArray using setData(). For example:
     QByteArray csvData = ...;
    
     QMimeData *mimeData = new QMimeData;
     mimeData->setData("text/csv", csvData);
    
  2. We can subclass QMimeData and reimplement hasFormat(), formats(), and retrieveData().
  3. If the drag and drop operation occurs within a single application, we can subclass QMimeData and add extra data in it, and use a qobject_cast() in the receiver's drop event handler. For example:
     void MyWidget.dropEvent(QDropEvent *event)
     {
         const MyMimeData *myData =
                 qobject_cast<const MyMimeData *>(event->mimeData());
         if (myData) {
             // access myData's data directly (not through QMimeData's API)
         }
     }
    

Platform-Specific MIME Types

On Windows, formats() will also return custom formats available in the MIME data, using the x-qt-windows-mime subtype to indicate that they represent data in non-standard formats. The formats will take the following form:

 application/x-qt-windows-mime;value="<custom type>"

The following are examples of custom MIME types:

 application/x-qt-windows-mime;value="FileGroupDescriptor"
 application/x-qt-windows-mime;value="FileContents"

The value declaration of each format describes the way in which the data is encoded.

On Windows, the MIME format does not always map directly to the clipboard formats. Qt provides QWindowsMime to map clipboard formats to open-standard MIME formats. Similarly, the QMacPasteboardMime maps MIME to Mac flavors.


Method Documentation

QMimeData.__init__ (self)

Constructs a new MIME data object with no data in it.

QMimeData.clear (self)

Removes all the MIME type and data entries in the object.

QVariant QMimeData.colorData (self)

Returns a color if the data stored in the object represents a color (MIME type application/x-color); otherwise returns a null variant.

A QVariant is used because QMimeData belongs to the QtCore library, whereas QColor belongs to QtGui. To convert the QVariant to a QColor, simply use qvariant_cast(). For example:

 if (event->mimeData()->hasColor()) {
     QColor color = qvariant_cast<QColor>(event->mimeData()->colorData());
     ...
 }

See also hasColor(), setColorData(), and data().

QByteArray QMimeData.data (self, QString mimetype)

Returns the data stored in the object in the format described by the MIME type specified by mimeType.

See also setData().

QStringList QMimeData.formats (self)

Returns a list of formats supported by the object. This is a list of MIME types for which the object can return suitable data. The formats in the list are in a priority order.

For the most common types of data, you can call the higher-level functions hasText(), hasHtml(), hasUrls(), hasImage(), and hasColor() instead.

See also hasFormat(), setData(), and data().

bool QMimeData.hasColor (self)

Returns true if the object can return a color (MIME type application/x-color); otherwise returns false.

See also setColorData(), colorData(), and hasFormat().

bool QMimeData.hasFormat (self, QString mimetype)

Returns true if the object can return data for the MIME type specified by mimeType; otherwise returns false.

For the most common types of data, you can call the higher-level functions hasText(), hasHtml(), hasUrls(), hasImage(), and hasColor() instead.

See also formats(), setData(), and data().

bool QMimeData.hasHtml (self)

Returns true if the object can return HTML (MIME type text/html); otherwise returns false.

See also setHtml(), html(), and hasFormat().

bool QMimeData.hasImage (self)

Returns true if the object can return an image; otherwise returns false.

See also setImageData(), imageData(), and hasFormat().

bool QMimeData.hasText (self)

Returns true if the object can return plain text (MIME type text/plain); otherwise returns false.

See also setText(), text(), hasHtml(), and hasFormat().

bool QMimeData.hasUrls (self)

Returns true if the object can return a list of urls; otherwise returns false.

URLs correspond to the MIME type text/uri-list.

See also setUrls(), urls(), and hasFormat().

QString QMimeData.html (self)

Returns a string if the data stored in the object is HTML (MIME type text/html); otherwise returns an empty string.

See also setHtml(), hasHtml(), and setData().

QVariant QMimeData.imageData (self)

Returns a QVariant storing a QImage if the object can return an image; otherwise returns a null variant.

A QVariant is used because QMimeData belongs to the QtCore library, whereas QImage belongs to QtGui. To convert the QVariant to a QImage, simply use qvariant_cast(). For example:

 if (event->mimeData()->hasImage()) {
     QImage image = qvariant_cast<QImage>(event->mimeData()->imageData());
     ...
 }

See also setImageData() and hasImage().

QMimeData.removeFormat (self, QString mimetype)

Removes the data entry for mimeType in the object.

This function was introduced in Qt 4.4.

QVariant QMimeData.retrieveData (self, QString mimetype, Type preferredType)

Returns a variant with the given type containing data for the MIME type specified by mimeType. If the object does not support the MIME type or variant type given, a null variant is returned instead.

This function is called by the general data() getter and by the convenience getters (text(), html(), urls(), imageData(), and colorData()). You can reimplement it if you want to store your data using a custom data structure (instead of a QByteArray, which is what setData() provides). You would then also need to reimplement hasFormat() and formats().

See also data().

QMimeData.setColorData (self, QVariant color)

Sets the color data in the object to the given color.

Colors correspond to the MIME type application/x-color.

See also colorData(), hasColor(), and setData().

QMimeData.setData (self, QString mimetype, QByteArray data)

Sets the data associated with the MIME type given by mimeType to the specified data.

For the most common types of data, you can call the higher-level functions setText(), setHtml(), setUrls(), setImageData(), and setColorData() instead.

Note that if you want to use a custom data type in an item view drag and drop operation, you must register it as a Qt meta type, using the Q_DECLARE_METATYPE() macro, and implement stream operators for it. The stream operators must then be registered with the qRegisterMetaTypeStreamOperators() function.

See also data(), hasFormat(), QMetaType, and qRegisterMetaTypeStreamOperators().

QMimeData.setHtml (self, QString html)

Sets html as the HTML (MIME type text/html) used to represent the data.

See also html(), hasHtml(), setText(), and setData().

QMimeData.setImageData (self, QVariant image)

Sets the data in the object to the given image.

A QVariant is used because QMimeData belongs to the QtCore library, whereas QImage belongs to QtGui. The conversion from QImage to QVariant is implicit. For example:

 mimeData->setImageData(QImage("beautifulfjord.png"));

See also imageData(), hasImage(), and setData().

QMimeData.setText (self, QString text)

Sets text as the plain text (MIME type text/plain) used to represent the data.

See also text(), hasText(), setHtml(), and setData().

QMimeData.setUrls (self, list-of-QUrl urls)

Sets the URLs stored in the MIME data object to those specified by urls.

URLs correspond to the MIME type text/uri-list.

See also urls(), hasUrls(), and setData().

QString QMimeData.text (self)

Returns a plain text (MIME type text/plain) representation of the data.

See also setText(), hasText(), html(), and data().

list-of-QUrl QMimeData.urls (self)

Returns a list of URLs contained within the MIME data object.

URLs correspond to the MIME type text/uri-list.

See also setUrls(), hasUrls(), and data().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmimesource.html0000644000076500000240000000750212536324503020703 0ustar philstaff00000000000000 QMimeSource Class Reference
  Home · All Classes · Modules

QMimeSource Class Reference
[QtGui module]

The QMimeSource class is an abstraction of objects that provided formatted data of a certain MIME type. More...

Inherited by QDropEvent.

Methods


Detailed Description

The QMimeSource class is an abstraction of objects that provided formatted data of a certain MIME type.

The preferred approach to drag and drop is to use QDrag in conjunction with QMimeData. See Drag and Drop for details.


Method Documentation

QMimeSource.__init__ (self)

QMimeSource.__init__ (self, QMimeSource)

QByteArray QMimeSource.encodedData (self, str)

This method is abstract and should be reimplemented in any sub-class.

Returns the encoded data of this object in the specified MIME format.

str QMimeSource.format (self, int i = 0)

This method is abstract and should be reimplemented in any sub-class.

Returns the (i - 1)-th supported MIME format, or 0.

bool QMimeSource.provides (self, str)

Returns true if the object can provide the data in format mimeType; otherwise returns false.

If you inherit from QMimeSource, for consistency reasons it is better to implement the more abstract canDecode() functions such as QTextDrag.canDecode() and QImageDrag.canDecode().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qml.html0000644000076500000240000003224512536324430017144 0ustar philstaff00000000000000 Integrating Python and QML — PyQt 4.11.4 Reference Guide

Integrating Python and QML¶

Qt v4.7 introduced QML as a means of declaratively describing a user interface and using JavaScript as a scripting language within QML. It is possible to write complete standalone QML applications, or to combine them with C++.

PyQt4 supports the integration of Python and QML as far as it can - given the limitations of the QML implementation.

There are three types of QML application:

  • Pure applications that are written entirely in QML and can be run using the qmlviewer tool provided with Qt. PyQt4 fully supports this type of application. The examples provided by qtdemo.py under the Qt Declarative Examples heading are all of this type.
  • QML allows QObject instances to be used in QML applications. QML code is able to call an object’s slots and has read and write access to the object’s properties. QML code can also respond to changes to the value of a property. PyQt4 fully supports the use objects created in Python in this way. The minehunt.py example under the Demonstrations heading of qtdemo.py is an example of this type of application.
  • QML also allows QObject sub-classes to be used in QML applications so that new instances are created from QML. PyQt4 does not support this. The reason is that QML uses information generated at compile time (specifically it uses QObject::staticMetaObject) rather than information created dynamically at run time (i.e. QObject::metaObject()). This approach is fine for a static language like C++ but causes problems for languages such as Python that allow types to created dynamically. This limitation doesn’t place any restriction on the functionality of a Python/QML application, it only places restrictions on how that application is written.

QML can implement JavaScript functions and define signals. PyQt4 allows both of these to be accessed transparently from Python. The following is a simple example application that displays the current date and time when the user clicks on it.

The following is the QML (in the message.qml) that defines the user interface:

import Qt 4.7

Rectangle {
    signal messageRequired;

    function updateMessage(text) {
        messageText.text = text
    }

    anchors.fill: parent; color: "black"

    Text {
        id: messageText
        anchors.centerIn: parent; color: "white"
    }

    MouseArea {
        anchors.fill: parent
        onClicked: messageRequired()
    }
}

This defines a signal messageRequired which is emitted when the user clicks on the mouse area. It also implements a function updateMessage() which updates the message being displayed.

The following is the Python code that implements the application logic:

import sys

from PyQt4.QtCore import QDateTime, QObject, QUrl, pyqtSignal
from PyQt4.QtGui import QApplication
from PyQt4.QtDeclarative import QDeclarativeView


# This class will emit the current date and time as a signal when
# requested.
class Now(QObject):

    now = pyqtSignal(str)

    def emit_now(self):
        formatted_date = QDateTime.currentDateTime().toString()
        self.now.emit(formatted_date)


app = QApplication(sys.argv)

now = Now()

# Create the QML user interface.
view = QDeclarativeView()
view.setSource(QUrl('message.qml'))
view.setResizeMode(QDeclarativeView.SizeRootObjectToView)

# Get the root object of the user interface.  It defines a
# 'messageRequired' signal and JavaScript 'updateMessage' function.  Both
# can be accessed transparently from Python.
rootObject = view.rootObject()

# Provide the current date and time when requested by the user interface.
rootObject.messageRequired.connect(now.emit_now)

# Update the user interface with the current date and time.
now.now.connect(rootObject.updateMessage)

# Provide an initial message as a prompt.
rootObject.updateMessage("Click to get the current date and time")

# Display the user interface and allow the user to interact with it.
view.setGeometry(100, 100, 400, 240)
view.show()

app.exec_()

Hopefully the comments in the code are sufficient explanation. The important things to note are that the signal and JavaScript function appear as appropriate attributes of the root object QDeclarativeItem returned by the rootObject() method of QDeclarativeView and can be connected to and called respectively.

PyQt-x11-gpl-4.11.4/doc/html/qmodelindex.html0000644000076500000240000002604612536324471020673 0ustar philstaff00000000000000 QModelIndex Class Reference
  Home · All Classes · Modules

QModelIndex Class Reference
[QtCore module]

The QModelIndex class is used to locate data in a data model. More...

Methods

Special Methods

  • bool __eq__ (self, QModelIndex other)
  • bool __ge__ (self, QModelIndex other)
  • int __hash__ (self)
  • bool __lt__ (self, QModelIndex other)
  • bool __ne__ (self, QModelIndex other)

Detailed Description

The QModelIndex class is used to locate data in a data model.

This class is used as an index into item models derived from QAbstractItemModel. The index is used by item views, delegates, and selection models to locate an item in the model.

New QModelIndex objects are created by the model using the QAbstractItemModel.createIndex() function. An invalid model index can be constructed with the QModelIndex constructor. Invalid indexes are often used as parent indexes when referring to top-level items in a model.

Model indexes refer to items in models, and contain all the information required to specify their locations in those models. Each index is located in a given row and column, and may have a parent index; use row(), column(), and parent() to obtain this information. Each top-level item in a model is represented by a model index that does not have a parent index - in this case, parent() will return an invalid model index, equivalent to an index constructed with the zero argument form of the QModelIndex() constructor.

To obtain a model index that refers to an existing item in a model, call QAbstractItemModel.index() with the required row and column values, and the model index of the parent. When referring to top-level items in a model, supply QModelIndex() as the parent index.

The model() function returns the model that the index references as a QAbstractItemModel. The child() function is used to examine items held under the index in the model. The sibling() function allows you to traverse items in the model on the same level as the index.

Note: Model indexes should be used immediately and then discarded. You should not rely on indexes to remain valid after calling model functions that change the structure of the model or delete items. If you need to keep a model index over time use a QPersistentModelIndex.


Method Documentation

QModelIndex.__init__ (self)

Creates a new empty model index. This type of model index is used to indicate that the position in the model is invalid.

See also isValid() and QAbstractItemModel.

QModelIndex.__init__ (self, QModelIndex other)

Creates a new model index that is a copy of the other model index.

QModelIndex.__init__ (self, QPersistentModelIndex)

QModelIndex QModelIndex.child (self, int arow, int acolumn)

Returns the child of the model index that is stored in the given row and column.

Note: This function does not work for an invalid model index which is often used as the root index.

See also parent() and sibling().

int QModelIndex.column (self)

Returns the column this model index refers to.

QVariant QModelIndex.data (self, int role = Qt.DisplayRole)

Returns the data for the given role for the item referred to by the index.

Qt.ItemFlags QModelIndex.flags (self)

Returns the flags for the item referred to by the index.

This function was introduced in Qt 4.2.

int QModelIndex.internalId (self)

Returns a long used by the model to associate the index with the internal data structure.

See also QAbstractItemModel.createIndex().

object QModelIndex.internalPointer (self)

Returns a void * pointer used by the model to associate the index with the internal data structure.

See also QAbstractItemModel.createIndex().

bool QModelIndex.isValid (self)

Returns true if this model index is valid; otherwise returns false.

A valid index belongs to a model, and has non-negative row and column numbers.

See also model(), row(), and column().

QAbstractItemModel QModelIndex.model (self)

Returns a pointer to the model containing the item that this index refers to.

A const pointer to the model is returned because calls to non-const functions of the model might invalidate the model index and possibly crash your application.

QModelIndex QModelIndex.parent (self)

Returns the parent of the model index, or QModelIndex() if it has no parent.

See also child(), sibling(), and model().

int QModelIndex.row (self)

Returns the row this model index refers to.

QModelIndex QModelIndex.sibling (self, int arow, int acolumn)

Returns the sibling at row and column. If there is no sibling at this position, an invalid QModelIndex is returned.

See also parent() and child().

bool QModelIndex.__eq__ (self, QModelIndex other)

bool QModelIndex.__ge__ (self, QModelIndex other)

int QModelIndex.__hash__ (self)

bool QModelIndex.__lt__ (self, QModelIndex other)

bool QModelIndex.__ne__ (self, QModelIndex other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmouseevent.html0000644000076500000240000003146412536324503020731 0ustar philstaff00000000000000 QMouseEvent Class Reference
  Home · All Classes · Modules

QMouseEvent Class Reference
[QtGui module]

The QMouseEvent class contains parameters that describe a mouse event. More...

Inherits QInputEvent.

Methods

  • __init__ (self, QEvent.Type type, QPoint pos, Qt.MouseButton button, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers)
  • __init__ (self, QEvent.Type type, QPoint pos, QPoint globalPos, Qt.MouseButton button, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers)
  • __init__ (self, QMouseEvent)
  • Qt.MouseButton button (self)
  • Qt.MouseButtons buttons (self)
  • QPoint globalPos (self)
  • int globalX (self)
  • int globalY (self)
  • bool hasExtendedInfo (self)
  • QPoint pos (self)
  • QPointF posF (self)
  • int x (self)
  • int y (self)

Detailed Description

The QMouseEvent class contains parameters that describe a mouse event.

Mouse events occur when a mouse button is pressed or released inside a widget, or when the mouse cursor is moved.

Mouse move events will occur only when a mouse button is pressed down, unless mouse tracking has been enabled with QWidget.setMouseTracking().

Qt automatically grabs the mouse when a mouse button is pressed inside a widget; the widget will continue to receive mouse events until the last mouse button is released.

A mouse event contains a special accept flag that indicates whether the receiver wants the event. You should call ignore() if the mouse event is not handled by your widget. A mouse event is propagated up the parent widget chain until a widget accepts it with accept(), or an event filter consumes it.

Note: If a mouse event is propagated to a widget for which Qt.WA_NoMousePropagation has been set, that mouse event will not be propagated further up the parent widget chain.

The state of the keyboard modifier keys can be found by calling the modifiers() function, inherited from QInputEvent.

The functions pos(), x(), and y() give the cursor position relative to the widget that receives the mouse event. If you move the widget as a result of the mouse event, use the global position returned by globalPos() to avoid a shaking motion.

The QWidget.setEnabled() function can be used to enable or disable mouse and keyboard events for a widget.

Reimplement the QWidget event handlers, QWidget.mousePressEvent(), QWidget.mouseReleaseEvent(), QWidget.mouseDoubleClickEvent(), and QWidget.mouseMoveEvent() to receive mouse events in your own widgets.


Method Documentation

QMouseEvent.__init__ (self, QEvent.Type type, QPoint pos, Qt.MouseButton button, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers)

Constructs a mouse event object.

The type parameter must be one of QEvent.MouseButtonPress, QEvent.MouseButtonRelease, QEvent.MouseButtonDblClick, or QEvent.MouseMove.

The position is the mouse cursor's position relative to the receiving widget. The button that caused the event is given as a value from the Qt.MouseButton enum. If the event type is MouseMove, the appropriate button for this event is Qt.NoButton. The mouse and keyboard states at the time of the event are specified by buttons and modifiers.

The globalPos() is initialized to QCursor.pos(), which may not be appropriate. Use the other constructor to specify the global position explicitly.

QMouseEvent.__init__ (self, QEvent.Type type, QPoint pos, QPoint globalPos, Qt.MouseButton button, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers)

Constructs a mouse event object.

The type parameter must be QEvent.MouseButtonPress, QEvent.MouseButtonRelease, QEvent.MouseButtonDblClick, or QEvent.MouseMove.

The pos is the mouse cursor's position relative to the receiving widget. The cursor's position in global coordinates is specified by globalPos. The button that caused the event is given as a value from the Qt.MouseButton enum. If the event type is MouseMove, the appropriate button for this event is Qt.NoButton. buttons is the state of all buttons at the time of the event, modifiers the state of all keyboard modifiers.

QMouseEvent.__init__ (self, QMouseEvent)

Qt.MouseButton QMouseEvent.button (self)

Returns the button that caused the event.

Note that the returned value is always Qt.NoButton for mouse move events.

See also buttons() and Qt.MouseButton.

Qt.MouseButtons QMouseEvent.buttons (self)

Returns the button state when the event was generated. The button state is a combination of Qt.LeftButton, Qt.RightButton, Qt.MidButton using the OR operator. For mouse move events, this is all buttons that are pressed down. For mouse press and double click events this includes the button that caused the event. For mouse release events this excludes the button that caused the event.

See also button() and Qt.MouseButton.

QPoint QMouseEvent.globalPos (self)

Returns the global position of the mouse cursor at the time of the event. This is important on asynchronous window systems like X11. Whenever you move your widgets around in response to mouse events, globalPos() may differ a lot from the current pointer position QCursor.pos(), and from QWidget.mapToGlobal(pos()).

See also globalX() and globalY().

int QMouseEvent.globalX (self)

Returns the global x position of the mouse cursor at the time of the event.

See also globalY() and globalPos().

int QMouseEvent.globalY (self)

Returns the global y position of the mouse cursor at the time of the event.

See also globalX() and globalPos().

bool QMouseEvent.hasExtendedInfo (self)

QPoint QMouseEvent.pos (self)

Returns the position of the mouse cursor, relative to the widget that received the event.

If you move the widget as a result of the mouse event, use the global position returned by globalPos() to avoid a shaking motion.

See also x(), y(), and globalPos().

QPointF QMouseEvent.posF (self)

Returns the position of the mouse cursor as a QPointF, relative to the widget that received the event.

If you move the widget as a result of the mouse event, use the global position returned by globalPos() to avoid a shaking motion.

This function was introduced in Qt 4.4.

See also x(), y(), pos(), and globalPos().

int QMouseEvent.x (self)

Returns the x position of the mouse cursor, relative to the widget that received the event.

See also y() and pos().

int QMouseEvent.y (self)

Returns the y position of the mouse cursor, relative to the widget that received the event.

See also x() and pos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmouseeventtransition.html0000644000076500000240000001470612536324510023042 0ustar philstaff00000000000000 QMouseEventTransition Class Reference
  Home · All Classes · Modules

QMouseEventTransition Class Reference
[QtGui module]

The QMouseEventTransition class provides a transition for mouse events. More...

Inherits QEventTransition.

Methods


Detailed Description

The QMouseEventTransition class provides a transition for mouse events.

QMouseEventTransition is part of The State Machine Framework.


Method Documentation

QMouseEventTransition.__init__ (self, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new mouse event transition with the given sourceState.

QMouseEventTransition.__init__ (self, QObject object, QEvent.Type type, Qt.MouseButton button, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new mouse event transition for events of the given type for the given object, with the given button and sourceState.

Qt.MouseButton QMouseEventTransition.button (self)

bool QMouseEventTransition.eventTest (self, QEvent event)

Reimplemented from QAbstractTransition.eventTest().

QPainterPath QMouseEventTransition.hitTestPath (self)

Returns the hit test path for this mouse event transition.

See also setHitTestPath().

Qt.KeyboardModifiers QMouseEventTransition.modifierMask (self)

QMouseEventTransition.onTransition (self, QEvent event)

Reimplemented from QAbstractTransition.onTransition().

QMouseEventTransition.setButton (self, Qt.MouseButton button)

QMouseEventTransition.setHitTestPath (self, QPainterPath path)

Sets the hit test path for this mouse event transition to path. If a valid path has been set, the transition will only trigger if the mouse event position (QMouseEvent.pos()) is inside the path.

See also hitTestPath() and QPainterPath.contains().

QMouseEventTransition.setModifierMask (self, Qt.KeyboardModifiers modifiers)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmoveevent.html0000644000076500000240000000633612536324503020547 0ustar philstaff00000000000000 QMoveEvent Class Reference
  Home · All Classes · Modules

QMoveEvent Class Reference
[QtGui module]

The QMoveEvent class contains event parameters for move events. More...

Inherits QEvent.

Methods


Detailed Description

The QMoveEvent class contains event parameters for move events.

Move events are sent to widgets that have been moved to a new position relative to their parent.

The event handler QWidget.moveEvent() receives move events.


Method Documentation

QMoveEvent.__init__ (self, QPoint pos, QPoint oldPos)

Constructs a move event with the new and old widget positions, pos and oldPos respectively.

QMoveEvent.__init__ (self, QMoveEvent)

QPoint QMoveEvent.oldPos (self)

Returns the old position of the widget.

QPoint QMoveEvent.pos (self)

Returns the new position of the widget. This excludes the window frame for top level widgets.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmovie.html0000644000076500000240000006543112536324510017655 0ustar philstaff00000000000000 QMovie Class Reference
  Home · All Classes · Modules

QMovie Class Reference
[QtGui module]

The QMovie class is a convenience class for playing movies with QImageReader. More...

Inherits QObject.

Types

Methods

Static Methods

Qt Signals


Detailed Description

The QMovie class is a convenience class for playing movies with QImageReader.

This class is used to show simple animations without sound. If you want to display video and media content, use the Phonon multimedia framework instead.

First, create a QMovie object by passing either the name of a file or a pointer to a QIODevice containing an animated image format to QMovie's constructor. You can call isValid() to check if the image data is valid, before starting the movie. To start the movie, call start(). QMovie will enter Running state, and emit started() and stateChanged(). To get the current state of the movie, call state().

To display the movie in your application, you can pass your QMovie object to QLabel.setMovie(). Example:

 QLabel label;
 QMovie *movie = new QMovie("animations/fire.gif");

 label.setMovie(movie);
 movie->start();

Whenever a new frame is available in the movie, QMovie will emit updated(). If the size of the frame changes, resized() is emitted. You can call currentImage() or currentPixmap() to get a copy of the current frame. When the movie is done, QMovie emits finished(). If any error occurs during playback (i.e, the image file is corrupt), QMovie will emit error().

You can control the speed of the movie playback by calling setSpeed(), which takes the percentage of the original speed as an argument. Pause the movie by calling setPaused(true). QMovie will then enter Paused state and emit stateChanged(). If you call setPaused(false), QMovie will reenter Running state and start the movie again. To stop the movie, call stop().

Certain animation formats allow you to set the background color. You can call setBackgroundColor() to set the color, or backgroundColor() to retrieve the current background color.

currentFrameNumber() returns the sequence number of the current frame. The first frame in the animation has the sequence number 0. frameCount() returns the total number of frames in the animation, if the image format supports this. You can call loopCount() to get the number of times the movie should loop before finishing. nextFrameDelay() returns the number of milliseconds the current frame should be displayed.

QMovie can be instructed to cache frames of an animation by calling setCacheMode().

Call supportedFormats() for a list of formats that QMovie supports.


Type Documentation

QMovie.CacheMode

This enum describes the different cache modes of QMovie.

Constant Value Description
QMovie.CacheNone 0 No frames are cached (the default).
QMovie.CacheAll 1 All frames are cached.

QMovie.MovieState

This enum describes the different states of QMovie.

Constant Value Description
QMovie.NotRunning 0 The movie is not running. This is QMovie's initial state, and the state it enters after stop() has been called or the movie is finished.
QMovie.Paused 1 The movie is paused, and QMovie stops emitting updated() or resized(). This state is entered after calling pause() or setPaused(true). The current frame number it kept, and the movie will continue with the next frame when unpause() or setPaused(false) is called.
QMovie.Running 2 The movie is running.

Method Documentation

QMovie.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QMovie object, passing the parent object to QObject's constructor.

See also setFileName(), setDevice(), and setFormat().

QMovie.__init__ (self, QIODevice device, QByteArray format = QByteArray(), QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QMovie object. QMovie will use read image data from device, which it assumes is open and readable. If format is not empty, QMovie will use the image format format for decoding the image data. Otherwise, QMovie will attempt to guess the format.

The parent object is passed to QObject's constructor.

QMovie.__init__ (self, QString fileName, QByteArray format = QByteArray(), QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QMovie object. QMovie will use read image data from fileName. If format is not empty, QMovie will use the image format format for decoding the image data. Otherwise, QMovie will attempt to guess the format.

The parent object is passed to QObject's constructor.

QColor QMovie.backgroundColor (self)

Returns the background color of the movie. If no background color has been assigned, an invalid QColor is returned.

See also setBackgroundColor().

CacheMode QMovie.cacheMode (self)

int QMovie.currentFrameNumber (self)

Returns the sequence number of the current frame. The number of the first frame in the movie is 0.

QImage QMovie.currentImage (self)

Returns the current frame as a QImage.

See also currentPixmap() and updated().

QPixmap QMovie.currentPixmap (self)

Returns the current frame as a QPixmap.

See also currentImage() and updated().

QIODevice QMovie.device (self)

Returns the device QMovie reads image data from. If no device has currently been assigned, 0 is returned.

See also setDevice() and fileName().

QString QMovie.fileName (self)

Returns the name of the file that QMovie reads image data from. If no file name has been assigned, or if the assigned device is not a file, an empty QString is returned.

See also setFileName() and device().

QByteArray QMovie.format (self)

Returns the format that QMovie uses when decoding image data. If no format has been assigned, an empty QByteArray() is returned.

See also setFormat().

int QMovie.frameCount (self)

Returns the number of frames in the movie.

Certain animation formats do not support this feature, in which case 0 is returned.

QRect QMovie.frameRect (self)

Returns the rect of the last frame. If no frame has yet been updated, an invalid QRect is returned.

See also currentImage() and currentPixmap().

bool QMovie.isValid (self)

Returns true if the movie is valid (e.g., the image data is readable and the image format is supported); otherwise returns false.

bool QMovie.jumpToFrame (self, int frameNumber)

Jumps to frame number frameNumber. Returns true on success; otherwise returns false.

bool QMovie.jumpToNextFrame (self)

This method is also a Qt slot with the C++ signature bool jumpToNextFrame().

Jumps to the next frame. Returns true on success; otherwise returns false.

int QMovie.loopCount (self)

Returns the number of times the movie will loop before it finishes. If the movie will only play once (no looping), loopCount returns 0. If the movie loops forever, loopCount returns -1.

Note that, if the image data comes from a sequential device (e.g. a socket), QMovie can only loop the movie if the cacheMode is set to QMovie.CacheAll.

int QMovie.nextFrameDelay (self)

Returns the number of milliseconds QMovie will wait before updating the next frame in the animation.

QSize QMovie.scaledSize (self)

Returns the scaled size of frames.

This function was introduced in Qt 4.1.

See also setScaledSize() and QImageReader.scaledSize().

QMovie.setBackgroundColor (self, QColor color)

For image formats that support it, this function sets the background color to color.

See also backgroundColor().

QMovie.setCacheMode (self, CacheMode mode)

QMovie.setDevice (self, QIODevice device)

Sets the current device to device. QMovie will read image data from this device when the movie is running.

See also device() and setFormat().

QMovie.setFileName (self, QString fileName)

Sets the name of the file that QMovie reads image data from, to fileName.

See also fileName(), setDevice(), and setFormat().

QMovie.setFormat (self, QByteArray format)

Sets the format that QMovie will use when decoding image data, to format. By default, QMovie will attempt to guess the format of the image data.

You can call supportedFormats() for the full list of formats QMovie supports.

See also format() and QImageReader.supportedImageFormats().

QMovie.setPaused (self, bool paused)

This method is also a Qt slot with the C++ signature void setPaused(bool).

If paused is true, QMovie will enter Paused state and emit stateChanged(Paused); otherwise it will enter Running state and emit stateChanged(Running).

See also paused() and state().

QMovie.setScaledSize (self, QSize size)

Sets the scaled frame size to size.

This function was introduced in Qt 4.1.

See also scaledSize() and QImageReader.setScaledSize().

QMovie.setSpeed (self, int percentSpeed)

int QMovie.speed (self)

QMovie.start (self)

This method is also a Qt slot with the C++ signature void start().

Starts the movie. QMovie will enter Running state, and start emitting updated() and resized() as the movie progresses.

If QMovie is in the Paused state, this function is equivalent to calling setPaused(false). If QMovie is already in the Running state, this function does nothing.

See also stop() and setPaused().

MovieState QMovie.state (self)

Returns the current state of QMovie.

See also MovieState and stateChanged().

QMovie.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Stops the movie. QMovie enters NotRunning state, and stops emitting updated() and resized(). If start() is called again, the movie will restart from the beginning.

If QMovie is already in the NotRunning state, this function does nothing.

See also start() and setPaused().

list-of-QByteArray QMovie.supportedFormats ()

Returns the list of image formats supported by QMovie.

This function was introduced in Qt 4.1.

See also QImageReader.supportedImageFormats().


Qt Signal Documentation

void error (QImageReader::ImageReaderError)

This is the default overload of this signal.

This signal is emitted by QMovie when the error error occurred during playback. QMovie will stop the movie, and enter QMovie.NotRunning state.

void finished ()

This is the default overload of this signal.

This signal is emitted when the movie has finished.

See also QMovie.stop().

void frameChanged (int)

This is the default overload of this signal.

This signal is emitted when the frame number has changed to frameNumber. You can call currentImage() or currentPixmap() to get a copy of the frame.

This function was introduced in Qt 4.1.

void resized (const QSize&)

This is the default overload of this signal.

This signal is emitted when the current frame has been resized to size. This effect is sometimes used in animations as an alternative to replacing the frame. You can call currentImage() or currentPixmap() to get a copy of the updated frame.

void started ()

This is the default overload of this signal.

This signal is emitted after QMovie.start() has been called, and QMovie has entered QMovie.Running state.

void stateChanged (QMovie::MovieState)

This is the default overload of this signal.

This signal is emitted every time the state of the movie changes. The new state is specified by state.

See also QMovie.state().

void updated (const QRect&)

This is the default overload of this signal.

This signal is emitted when the rect rect in the current frame has been updated. You can call currentImage() or currentPixmap() to get a copy of the updated frame.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmutex.html0000644000076500000240000002664112536324473017710 0ustar philstaff00000000000000 QMutex Class Reference
  Home · All Classes · Modules

QMutex Class Reference
[QtCore module]

The QMutex class provides access serialization between threads. More...

Types

Methods


Detailed Description

The QMutex class provides access serialization between threads.

The purpose of a QMutex is to protect an object, data structure or section of code so that only one thread can access it at a time (this is similar to the Java synchronized keyword). It is usually best to use a mutex with a QMutexLocker since this makes it easy to ensure that locking and unlocking are performed consistently.

For example, say there is a method that prints a message to the user on two lines:

 int number = 6;

 void method1()
 {
     number *= 5;
     number /= 4;
 }

 void method2()
 {
     number *= 3;
     number /= 2;
 }

If these two methods are called in succession, the following happens:

 // method1()
 number *= 5;        // number is now 30
 number /= 4;        // number is now 7

 // method2()
 number *= 3;        // number is now 21
 number /= 2;        // number is now 10

If these two methods are called simultaneously from two threads then the following sequence could result:

 // Thread 1 calls method1()
 number *= 5;        // number is now 30

 // Thread 2 calls method2().
 //
 // Most likely Thread 1 has been put to sleep by the operating
 // system to allow Thread 2 to run.
 number *= 3;        // number is now 90
 number /= 2;        // number is now 45

 // Thread 1 finishes executing.
 number /= 4;        // number is now 11, instead of 10

If we add a mutex, we should get the result we want:

 QMutex mutex;
 int number = 6;

 void method1()
 {
     mutex.lock();
     number *= 5;
     number /= 4;
     mutex.unlock();
 }

 void method2()
 {
     mutex.lock();
     number *= 3;
     number /= 2;
     mutex.unlock();
 }

Then only one thread can modify number at any given time and the result is correct. This is a trivial example, of course, but applies to any other case where things need to happen in a particular sequence.

When you call lock() in a thread, other threads that try to call lock() in the same place will block until the thread that got the lock calls unlock(). A non-blocking alternative to lock() is tryLock().


Type Documentation

QMutex.RecursionMode

Constant Value Description
QMutex.Recursive 1 In this mode, a thread can lock the same mutex multiple times and the mutex won't be unlocked until a corresponding number of unlock() calls have been made.
QMutex.NonRecursive 0 In this mode, a thread may only lock a mutex once.

See also QMutex().


Method Documentation

QMutex.__init__ (self, RecursionMode mode = QMutex.NonRecursive)

Constructs a new mutex. The mutex is created in an unlocked state.

If mode is QMutex.Recursive, a thread can lock the same mutex multiple times and the mutex won't be unlocked until a corresponding number of unlock() calls have been made. The default is QMutex.NonRecursive.

See also lock() and unlock().

QMutex.lock (self)

Locks the mutex. If another thread has locked the mutex then this call will block until that thread has unlocked it.

Calling this function multiple times on the same mutex from the same thread is allowed if this mutex is a recursive mutex. If this mutex is a non-recursive mutex, this function will dead-lock when the mutex is locked recursively.

See also unlock().

bool QMutex.tryLock (self)

Attempts to lock the mutex. If the lock was obtained, this function returns true. If another thread has locked the mutex, this function returns false immediately.

If the lock was obtained, the mutex must be unlocked with unlock() before another thread can successfully lock it.

Calling this function multiple times on the same mutex from the same thread is allowed if this mutex is a recursive mutex. If this mutex is a non-recursive mutex, this function will always return false when attempting to lock the mutex recursively.

See also lock() and unlock().

bool QMutex.tryLock (self, int timeout)

This is an overloaded function.

Attempts to lock the mutex. This function returns true if the lock was obtained; otherwise it returns false. If another thread has locked the mutex, this function will wait for at most timeout milliseconds for the mutex to become available.

Note: Passing a negative number as the timeout is equivalent to calling lock(), i.e. this function will wait forever until mutex can be locked if timeout is negative.

If the lock was obtained, the mutex must be unlocked with unlock() before another thread can successfully lock it.

Calling this function multiple times on the same mutex from the same thread is allowed if this mutex is a recursive mutex. If this mutex is a non-recursive mutex, this function will always return false when attempting to lock the mutex recursively.

See also lock() and unlock().

QMutex.unlock (self)

Unlocks the mutex. Attempting to unlock a mutex in a different thread to the one that locked it results in an error. Unlocking a mutex that is not locked results in undefined behavior.

See also lock().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qmutexlocker.html0000644000076500000240000002272212536324473021104 0ustar philstaff00000000000000 QMutexLocker Class Reference
  Home · All Classes · Modules

QMutexLocker Class Reference
[QtCore module]

The QMutexLocker class is a convenience class that simplifies locking and unlocking mutexes. More...

Methods

Special Methods

  • object __enter__ (self)
  • __exit__ (self, object type, object value, object traceback)

Detailed Description

The QMutexLocker class is a convenience class that simplifies locking and unlocking mutexes.

Locking and unlocking a QMutex in complex functions and statements or in exception handling code is error-prone and difficult to debug. QMutexLocker can be used in such situations to ensure that the state of the mutex is always well-defined.

QMutexLocker should be created within a function where a QMutex needs to be locked. The mutex is locked when QMutexLocker is created. You can unlock and relock the mutex with unlock() and relock(). If locked, the mutex will be unlocked when the QMutexLocker is destroyed.

For example, this complex function locks a QMutex upon entering the function and unlocks the mutex at all the exit points:

 int complexFunction(int flag)
 {
     mutex.lock();

     int retVal = 0;

     switch (flag) {
     case 0:
     case 1:
         retVal = moreComplexFunction(flag);
         break;
     case 2:
         {
             int status = anotherFunction();
             if (status < 0) {
                 mutex.unlock();
                 return -2;
             }
             retVal = status + flag;
         }
         break;
     default:
         if (flag > 10) {
             mutex.unlock();
             return -1;
         }
         break;
     }

     mutex.unlock();
     return retVal;
 }

This example function will get more complicated as it is developed, which increases the likelihood that errors will occur.

Using QMutexLocker greatly simplifies the code, and makes it more readable:

 int complexFunction(int flag)
 {
     QMutexLocker locker(&mutex);

     int retVal = 0;

     switch (flag) {
     case 0:
     case 1:
         return moreComplexFunction(flag);
     case 2:
         {
             int status = anotherFunction();
             if (status < 0)
                 return -2;
             retVal = status + flag;
         }
         break;
     default:
         if (flag > 10)
             return -1;
         break;
     }

     return retVal;
 }

Now, the mutex will always be unlocked when the QMutexLocker object is destroyed (when the function returns since locker is an auto variable).

The same principle applies to code that throws and catches exceptions. An exception that is not caught in the function that has locked the mutex has no way of unlocking the mutex before the exception is passed up the stack to the calling function.

QMutexLocker also provides a mutex() member function that returns the mutex on which the QMutexLocker is operating. This is useful for code that needs access to the mutex, such as QWaitCondition.wait(). For example:

 class SignalWaiter
 {
 private:
     QMutexLocker locker;

 public:
     SignalWaiter(QMutex *mutex)
         : locker(mutex)
     {
     }

     void waitForSignal()
     {
         ...
         while (!signalled)
             waitCondition.wait(locker.mutex());
         ...
     }
 };

Method Documentation

QMutexLocker.__init__ (self, QMutex m)

Constructs a QMutexLocker and locks mutex. The mutex will be unlocked when the QMutexLocker is destroyed. If mutex is zero, QMutexLocker does nothing.

See also QMutex.lock().

QMutex QMutexLocker.mutex (self)

Returns a pointer to the mutex that was locked in the constructor.

QMutexLocker.relock (self)

Relocks an unlocked mutex locker.

See also unlock().

QMutexLocker.unlock (self)

Unlocks this mutex locker. You can use relock() to lock it again. It does not need to be locked when destroyed.

See also relock().

object QMutexLocker.__enter__ (self)

QMutexLocker.__exit__ (self, object type, object value, object traceback)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkaccessmanager.html0000644000076500000240000012575212536324520022750 0ustar philstaff00000000000000 QNetworkAccessManager Class Reference
  Home · All Classes · Modules

QNetworkAccessManager Class Reference
[
QtNetwork module]

The QNetworkAccessManager class allows the application to send network requests and receive replies More...

Inherits QObject.

Types

  • enum NetworkAccessibility { UnknownAccessibility, NotAccessible, Accessible }
  • enum Operation { HeadOperation, GetOperation, PutOperation, PostOperation, DeleteOperation, CustomOperation }

Methods

  • __init__ (self, QObject parent = None)
  • QNetworkConfiguration activeConfiguration (self)
  • QAbstractNetworkCache cache (self)
  • QNetworkConfiguration configuration (self)
  • QNetworkCookieJar cookieJar (self)
  • QNetworkReply createRequest (self, Operation op, QNetworkRequest request, QIODevice device = None)
  • QNetworkReply deleteResource (self, QNetworkRequest request)
  • QNetworkReply get (self, QNetworkRequest request)
  • QNetworkReply head (self, QNetworkRequest request)
  • NetworkAccessibility networkAccessible (self)
  • QNetworkReply post (self, QNetworkRequest request, QIODevice data)
  • QNetworkReply post (self, QNetworkRequest request, QByteArray data)
  • QNetworkReply post (self, QNetworkRequest request, QHttpMultiPart multiPart)
  • QNetworkProxy proxy (self)
  • QNetworkProxyFactory proxyFactory (self)
  • QNetworkReply put (self, QNetworkRequest request, QIODevice data)
  • QNetworkReply put (self, QNetworkRequest request, QByteArray data)
  • QNetworkReply put (self, QNetworkRequest request, QHttpMultiPart multiPart)
  • QNetworkReply sendCustomRequest (self, QNetworkRequest request, QByteArray verb, QIODevice data = None)
  • setCache (self, QAbstractNetworkCache cache)
  • setConfiguration (self, QNetworkConfiguration config)
  • setCookieJar (self, QNetworkCookieJar cookieJar)
  • setNetworkAccessible (self, NetworkAccessibility accessible)
  • setProxy (self, QNetworkProxy proxy)
  • setProxyFactory (self, QNetworkProxyFactory factory)

Qt Signals


Detailed Description

The QNetworkAccessManager class allows the application to send network requests and receive replies

The Network Access API is constructed around one QNetworkAccessManager object, which holds the common configuration and settings for the requests it sends. It contains the proxy and cache configuration, as well as the signals related to such issues, and reply signals that can be used to monitor the progress of a network operation. One QNetworkAccessManager should be enough for the whole Qt application.

Once a QNetworkAccessManager object has been created, the application can use it to send requests over the network. A group of standard functions are supplied that take a request and optional data, and each return a QNetworkReply object. The returned object is used to obtain any data returned in response to the corresponding request.

A simple download off the network could be accomplished with:

 QNetworkAccessManager *manager = new QNetworkAccessManager(this);
 connect(manager, SIGNAL(finished(QNetworkReply*)),
         this, SLOT(replyFinished(QNetworkReply*)));

 manager->get(QNetworkRequest(QUrl("http://qt.nokia.com")));

QNetworkAccessManager has an asynchronous API. When the replyFinished slot above is called, the parameter it takes is the QNetworkReply object containing the downloaded data as well as meta-data (headers, etc.).

Note: After the request has finished, it is the responsibility of the user to delete the QNetworkReply object at an appropriate time. Do not directly delete it inside the slot connected to finished(). You can use the deleteLater() function.

Note: QNetworkAccessManager queues the requests it receives. The number of requests executed in parallel is dependent on the protocol. Currently, for the HTTP protocol on desktop platforms, 6 requests are executed in parallel for one host/port combination.

A more involved example, assuming the manager is already existent, can be:

 QNetworkRequest request;
 request.setUrl(QUrl("http://qt.nokia.com"));
 request.setRawHeader("User-Agent", "MyOwnBrowser 1.0");

 QNetworkReply *reply = manager->get(request);
 connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
 connect(reply, SIGNAL(error(QNetworkReply.NetworkError)),
         this, SLOT(slotError(QNetworkReply.NetworkError)));
 connect(reply, SIGNAL(sslErrors(QList<QSslError>)),
         this, SLOT(slotSslErrors(QList<QSslError>)));

Network and Roaming support

With the addition of the Bearer Management API to Qt 4.7 QNetworkAccessManager gained the ability to manage network connections. QNetworkAccessManager can start the network interface if the device is offline and terminates the interface if the current process is the last one to use the uplink. Note that some platform utilize grace periods from when the last application stops using a uplink until the system actually terminates the connectivity link. Roaming is equally transparent. Any queued/pending network requests are automatically transferred to new access point.

Clients wanting to utilize this feature should not require any changes. In fact it is likely that existing platform specific connection code can simply be removed from the application.

Note: The network and roaming support in QNetworkAccessManager is conditional upon the platform supporting connection management. The QNetworkConfigurationManager.NetworkSessionRequired can be used to detect whether QNetworkAccessManager utilizes this feature. Currently only Meego/Harmattan and Symbian platforms provide connection management support.

Note: This feature cannot be used in combination with the Bearer Management API as provided by QtMobility. Applications have to migrate to the Qt version of Bearer Management.

Symbian Platform Security Requirements

On Symbian, processes which use this class must have the NetworkServices platform security capability. If the client process lacks this capability, operations will result in a panic.

Platform security capabilities are added via the TARGET.CAPABILITY qmake variable.


Type Documentation

QNetworkAccessManager.NetworkAccessibility

Indicates whether the network is accessible via this network access manager.

Constant Value Description
QNetworkAccessManager.UnknownAccessibility -1 The network accessibility cannot be determined.
QNetworkAccessManager.NotAccessible 0 The network is not currently accessible, either because there is currently no network coverage or network access has been explicitly disabled by a call to setNetworkAccessible().
QNetworkAccessManager.Accessible 1 The network is accessible.

See also networkAccessible.

QNetworkAccessManager.Operation

Indicates the operation this reply is processing.

Constant Value Description
QNetworkAccessManager.HeadOperation 1 retrieve headers operation (created with head())
QNetworkAccessManager.GetOperation 2 retrieve headers and download contents (created with get())
QNetworkAccessManager.PutOperation 3 upload contents operation (created with put())
QNetworkAccessManager.PostOperation 4 send the contents of an HTML form for processing via HTTP POST (created with post())
QNetworkAccessManager.DeleteOperation 5 delete contents operation (created with deleteResource())
QNetworkAccessManager.CustomOperation 6 custom operation (created with sendCustomRequest())

This enum was introduced or modified in Qt 4.7.

See also QNetworkReply.operation().


Method Documentation

QNetworkAccessManager.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QNetworkAccessManager object that is the center of the Network Access API and sets parent as the parent object.

QNetworkConfiguration QNetworkAccessManager.activeConfiguration (self)

Returns the current active network configuration.

If the network configuration returned by configuration() is of type QNetworkConfiguration.ServiceNetwork this function will return the current active child network configuration of that configuration. Otherwise returns the same network configuration as configuration().

Use this function to return the actual network configuration currently in use by the network session.

This function was introduced in Qt 4.7.

See also configuration().

QAbstractNetworkCache QNetworkAccessManager.cache (self)

Returns the cache that is used to store data obtained from the network.

This function was introduced in Qt 4.5.

See also setCache().

QNetworkConfiguration QNetworkAccessManager.configuration (self)

Returns the network configuration that will be used to create the network session which will be used when processing network requests.

This function was introduced in Qt 4.7.

See also setConfiguration() and activeConfiguration().

QNetworkCookieJar QNetworkAccessManager.cookieJar (self)

Returns the QNetworkCookieJar that is used to store cookies obtained from the network as well as cookies that are about to be sent.

See also setCookieJar().

QNetworkReply QNetworkAccessManager.createRequest (self, Operation op, QNetworkRequest request, QIODevice device = None)

Returns a new QNetworkReply object to handle the operation op and request req. The device outgoingData is always 0 for Get and Head requests, but is the value passed to post() and put() in those operations (the QByteArray variants will pass a QBuffer object).

The default implementation calls QNetworkCookieJar.cookiesForUrl() on the cookie jar set with setCookieJar() to obtain the cookies to be sent to the remote server.

The returned object must be in an open state.

QNetworkReply QNetworkAccessManager.deleteResource (self, QNetworkRequest request)

Sends a request to delete the resource identified by the URL of request.

Note: This feature is currently available for HTTP only, performing an HTTP DELETE request.

This function was introduced in Qt 4.6.

See also get(), post(), put(), and sendCustomRequest().

QNetworkReply QNetworkAccessManager.get (self, QNetworkRequest request)

Posts a request to obtain the contents of the target request and returns a new QNetworkReply object opened for reading which emits the readyRead() signal whenever new data arrives.

The contents as well as associated headers will be downloaded.

See also post(), put(), deleteResource(), and sendCustomRequest().

QNetworkReply QNetworkAccessManager.head (self, QNetworkRequest request)

Posts a request to obtain the network headers for request and returns a new QNetworkReply object which will contain such headers.

The function is named after the HTTP request associated (HEAD).

NetworkAccessibility QNetworkAccessManager.networkAccessible (self)

QNetworkReply QNetworkAccessManager.post (self, QNetworkRequest request, QIODevice data)

Sends an HTTP POST request to the destination specified by request and returns a new QNetworkReply object opened for reading that will contain the reply sent by the server. The contents of the data device will be uploaded to the server.

data must be open for reading and must remain valid until the finished() signal is emitted for this reply.

Note: Sending a POST request on protocols other than HTTP and HTTPS is undefined and will probably fail.

See also get(), put(), deleteResource(), and sendCustomRequest().

QNetworkReply QNetworkAccessManager.post (self, QNetworkRequest request, QByteArray data)

This is an overloaded function.

Sends the contents of the data byte array to the destination specified by request.

QNetworkReply QNetworkAccessManager.post (self, QNetworkRequest request, QHttpMultiPart multiPart)

This is an overloaded function.

Sends the contents of the multiPart message to the destination specified by request.

This can be used for sending MIME multipart messages over HTTP.

This function was introduced in Qt 4.8.

See also QHttpMultiPart, QHttpPart, and put().

QNetworkProxy QNetworkAccessManager.proxy (self)

Returns the QNetworkProxy that the requests sent using this QNetworkAccessManager object will use. The default value for the proxy is QNetworkProxy.DefaultProxy.

See also setProxy(), setProxyFactory(), and proxyAuthenticationRequired().

QNetworkProxyFactory QNetworkAccessManager.proxyFactory (self)

Returns the proxy factory that this QNetworkAccessManager object is using to determine the proxies to be used for requests.

Note that the pointer returned by this function is managed by QNetworkAccessManager and could be deleted at any time.

This function was introduced in Qt 4.5.

See also setProxyFactory() and proxy().

QNetworkReply QNetworkAccessManager.put (self, QNetworkRequest request, QIODevice data)

Uploads the contents of data to the destination request and returnes a new QNetworkReply object that will be open for reply.

data must be opened for reading when this function is called and must remain valid until the finished() signal is emitted for this reply.

Whether anything will be available for reading from the returned object is protocol dependent. For HTTP, the server may send a small HTML page indicating the upload was successful (or not). Other protocols will probably have content in their replies.

Note: For HTTP, this request will send a PUT request, which most servers do not allow. Form upload mechanisms, including that of uploading files through HTML forms, use the POST mechanism.

See also get(), post(), deleteResource(), and sendCustomRequest().

QNetworkReply QNetworkAccessManager.put (self, QNetworkRequest request, QByteArray data)

This is an overloaded function.

Sends the contents of the multiPart message to the destination specified by request.

This can be used for sending MIME multipart messages over HTTP.

This function was introduced in Qt 4.8.

See also QHttpMultiPart, QHttpPart, and post().

QNetworkReply QNetworkAccessManager.put (self, QNetworkRequest request, QHttpMultiPart multiPart)

This is an overloaded function.

Sends the contents of the data byte array to the destination specified by request.

QNetworkReply QNetworkAccessManager.sendCustomRequest (self, QNetworkRequest request, QByteArray verb, QIODevice data = None)

Sends a custom request to the server identified by the URL of request.

It is the user's responsibility to send a verb to the server that is valid according to the HTTP specification.

This method provides means to send verbs other than the common ones provided via get() or post() etc., for instance sending an HTTP OPTIONS command.

If data is not empty, the contents of the data device will be uploaded to the server; in that case, data must be open for reading and must remain valid until the finished() signal is emitted for this reply.

Note: This feature is currently available for HTTP(S) only.

This function was introduced in Qt 4.7.

See also get(), post(), put(), and deleteResource().

QNetworkAccessManager.setCache (self, QAbstractNetworkCache cache)

The cache argument has it's ownership transferred to Qt.

Sets the manager's network cache to be the cache specified. The cache is used for all requests dispatched by the manager.

Use this function to set the network cache object to a class that implements additional features, like saving the cookies to permanent storage.

Note: QNetworkAccessManager takes ownership of the cache object.

QNetworkAccessManager by default does not have a set cache. Qt provides a simple disk cache, QNetworkDiskCache, which can be used.

This function was introduced in Qt 4.5.

See also cache() and QNetworkRequest.CacheLoadControl.

QNetworkAccessManager.setConfiguration (self, QNetworkConfiguration config)

Sets the network configuration that will be used when creating the network session to config.

The network configuration is used to create and open a network session before any request that requires network access is process. If no network configuration is explicitly set via this function the network configuration returned by QNetworkConfigurationManager.defaultConfiguration() will be used.

To restore the default network configuration set the network configuration to the value returned from QNetworkConfigurationManager.defaultConfiguration().

 QNetworkConfigurationManager manager;
 networkAccessManager->setConfiguration(manager.defaultConfiguration());

If an invalid network configuration is set, a network session will not be created. In this case network requests will be processed regardless, but may fail. For example:

 networkAccessManager->setConfiguration(QNetworkConfiguration());

This function was introduced in Qt 4.7.

See also configuration() and QNetworkSession.

QNetworkAccessManager.setCookieJar (self, QNetworkCookieJar cookieJar)

The cookieJar argument has it's ownership transferred to Qt.

Sets the manager's cookie jar to be the cookieJar specified. The cookie jar is used by all requests dispatched by the manager.

Use this function to set the cookie jar object to a class that implements additional features, like saving the cookies to permanent storage.

Note: QNetworkAccessManager takes ownership of the cookieJar object.

If cookieJar is in the same thread as this QNetworkAccessManager, it will set the parent of the cookieJar so that the cookie jar is deleted when this object is deleted as well. If you want to share cookie jars between different QNetworkAccessManager objects, you may want to set the cookie jar's parent to 0 after calling this function.

QNetworkAccessManager by default does not implement any cookie policy of its own: it accepts all cookies sent by the server, as long as they are well formed and meet the minimum security requirements (cookie domain matches the request's and cookie path matches the request's). In order to implement your own security policy, override the QNetworkCookieJar.cookiesForUrl() and QNetworkCookieJar.setCookiesFromUrl() virtual functions. Those functions are called by QNetworkAccessManager when it detects a new cookie.

See also cookieJar(), QNetworkCookieJar.cookiesForUrl(), and QNetworkCookieJar.setCookiesFromUrl().

QNetworkAccessManager.setNetworkAccessible (self, NetworkAccessibility accessible)

QNetworkAccessManager.setProxy (self, QNetworkProxy proxy)

Sets the proxy to be used in future requests to be proxy. This does not affect requests that have already been sent. The proxyAuthenticationRequired() signal will be emitted if the proxy requests authentication.

A proxy set with this function will be used for all requests issued by QNetworkAccessManager. In some cases, it might be necessary to select different proxies depending on the type of request being sent or the destination host. If that's the case, you should consider using setProxyFactory().

See also proxy() and proxyAuthenticationRequired().

QNetworkAccessManager.setProxyFactory (self, QNetworkProxyFactory factory)

The factory argument has it's ownership transferred to Qt.

Sets the proxy factory for this class to be factory. A proxy factory is used to determine a more specific list of proxies to be used for a given request, instead of trying to use the same proxy value for all requests.

All queries sent by QNetworkAccessManager will have type QNetworkProxyQuery.UrlRequest.

For example, a proxy factory could apply the following rules:

  • if the target address is in the local network (for example, if the hostname contains no dots or if it's an IP address in the organization's range), return QNetworkProxy.NoProxy
  • if the request is FTP, return an FTP proxy
  • if the request is HTTP or HTTPS, then return an HTTP proxy
  • otherwise, return a SOCKSv5 proxy server

The lifetime of the object factory will be managed by QNetworkAccessManager. It will delete the object when necessary.

Note: If a specific proxy is set with setProxy(), the factory will not be used.

This function was introduced in Qt 4.5.

See also proxyFactory(), setProxy(), and QNetworkProxyQuery.


Qt Signal Documentation

void authenticationRequired (QNetworkReply*,QAuthenticator*)

This is the default overload of this signal.

This signal is emitted whenever a final server requests authentication before it delivers the requested contents. The slot connected to this signal should fill the credentials for the contents (which can be determined by inspecting the reply object) in the authenticator object.

QNetworkAccessManager will cache the credentials internally and will send the same values if the server requires authentication again, without emitting the authenticationRequired() signal. If it rejects the credentials, this signal will be emitted again.

Note: It is not possible to use a QueuedConnection to connect to this signal, as the connection will fail if the authenticator has not been filled in with new information when the signal returns.

See also proxyAuthenticationRequired().

void finished (QNetworkReply*)

This is the default overload of this signal.

This signal is emitted whenever a pending network reply is finished. The reply parameter will contain a pointer to the reply that has just finished. This signal is emitted in tandem with the QNetworkReply.finished() signal.

See QNetworkReply.finished() for information on the status that the object will be in.

Note: Do not delete the reply object in the slot connected to this signal. Use deleteLater().

See also QNetworkReply.finished() and QNetworkReply.error().

void networkAccessibleChanged (QNetworkAccessManager::NetworkAccessibility)

This is the default overload of this signal.

This signal is emitted when the value of the networkAccessible property changes. accessible is the new network accessibility.

void proxyAuthenticationRequired (const QNetworkProxy&,QAuthenticator*)

This is the default overload of this signal.

This signal is emitted whenever a proxy requests authentication and QNetworkAccessManager cannot find a valid, cached credential. The slot connected to this signal should fill in the credentials for the proxy proxy in the authenticator object.

QNetworkAccessManager will cache the credentials internally. The next time the proxy requests authentication, QNetworkAccessManager will automatically send the same credential without emitting the proxyAuthenticationRequired signal again.

If the proxy rejects the credentials, QNetworkAccessManager will emit the signal again.

See also proxy(), setProxy(), and authenticationRequired().

void sslErrors (QNetworkReply*,const QList<QSslError>&)

This is the default overload of this signal.

This signal is emitted if the SSL/TLS session encountered errors during the set up, including certificate verification errors. The errors parameter contains the list of errors and reply is the QNetworkReply that is encountering these errors.

To indicate that the errors are not fatal and that the connection should proceed, the QNetworkReply.ignoreSslErrors() function should be called from the slot connected to this signal. If it is not called, the SSL session will be torn down before any data is exchanged (including the URL).

This signal can be used to display an error message to the user indicating that security may be compromised and display the SSL settings (see sslConfiguration() to obtain it). If the user decides to proceed after analyzing the remote certificate, the slot should call ignoreSslErrors().

See also QSslSocket.sslErrors(), QNetworkReply.sslErrors(), QNetworkReply.sslConfiguration(), and QNetworkReply.ignoreSslErrors().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkaddressentry.html0000644000076500000240000002226612536324520022657 0ustar philstaff00000000000000 QNetworkAddressEntry Class Reference
  Home · All Classes · Modules

QNetworkAddressEntry Class Reference
[QtNetwork module]

The QNetworkAddressEntry class stores one IP address supported by a network interface, along with its associated netmask and broadcast address. More...

Methods

Special Methods

  • bool __eq__ (self, QNetworkAddressEntry other)
  • bool __ne__ (self, QNetworkAddressEntry other)

Detailed Description

The QNetworkAddressEntry class stores one IP address supported by a network interface, along with its associated netmask and broadcast address.

Each network interface can contain zero or more IP addresses, which in turn can be associated with a netmask and/or a broadcast address (depending on support from the operating system).

This class represents one such group.


Method Documentation

QNetworkAddressEntry.__init__ (self)

Constructs an empty QNetworkAddressEntry object.

QNetworkAddressEntry.__init__ (self, QNetworkAddressEntry other)

Constructs a QNetworkAddressEntry object that is a copy of the object other.

QHostAddress QNetworkAddressEntry.broadcast (self)

Returns the broadcast address associated with the IPv4 address and netmask. It can usually be derived from those two by setting to 1 the bits of the IP address where the netmask contains a 0. (In other words, by bitwise-OR'ing the IP address with the inverse of the netmask)

This member is always empty for IPv6 addresses, since the concept of broadcast has been abandoned in that system in favor of multicast. In particular, the group of hosts corresponding to all the nodes in the local network can be reached by the "all-nodes" special multicast group (address FF02.1).

See also setBroadcast().

QHostAddress QNetworkAddressEntry.ip (self)

This function returns one IPv4 or IPv6 address found, that was found in a network interface.

See also setIp().

QHostAddress QNetworkAddressEntry.netmask (self)

Returns the netmask associated with the IP address. The netmask is expressed in the form of an IP address, such as 255.255.0.0.

For IPv6 addresses, the prefix length is converted to an address where the number of bits set to 1 is equal to the prefix length. For a prefix length of 64 bits (the most common value), the netmask will be expressed as a QHostAddress holding the address FFFF:FFFF:FFFF:FFFF.

See also setNetmask() and prefixLength().

int QNetworkAddressEntry.prefixLength (self)

Returns the prefix length of this IP address. The prefix length matches the number of bits set to 1 in the netmask (see netmask()). For IPv4 addresses, the value is between 0 and 32. For IPv6 addresses, it's contained between 0 and 128 and is the preferred form of representing addresses.

This function returns -1 if the prefix length could not be determined (i.e., netmask() returns a null QHostAddress()).

This function was introduced in Qt 4.5.

See also setPrefixLength() and netmask().

QNetworkAddressEntry.setBroadcast (self, QHostAddress newBroadcast)

Sets the broadcast IP address of this QNetworkAddressEntry object to newBroadcast.

See also broadcast().

QNetworkAddressEntry.setIp (self, QHostAddress newIp)

Sets the IP address the QNetworkAddressEntry object contains to newIp.

See also ip().

QNetworkAddressEntry.setNetmask (self, QHostAddress newNetmask)

Sets the netmask that this QNetworkAddressEntry object contains to newNetmask. Setting the netmask also sets the prefix length to match the new netmask.

See also netmask() and setPrefixLength().

QNetworkAddressEntry.setPrefixLength (self, int length)

Sets the prefix length of this IP address to length. The value of length must be valid for this type of IP address: between 0 and 32 for IPv4 addresses, between 0 and 128 for IPv6 addresses. Setting to any invalid value is equivalent to setting to -1, which means "no prefix length".

Setting the prefix length also sets the netmask (see netmask()).

This function was introduced in Qt 4.5.

See also prefixLength() and setNetmask().

bool QNetworkAddressEntry.__eq__ (self, QNetworkAddressEntry other)

bool QNetworkAddressEntry.__ne__ (self, QNetworkAddressEntry other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkcachemetadata.html0000644000076500000240000002327612536324517022724 0ustar philstaff00000000000000 QNetworkCacheMetaData Class Reference
  Home · All Classes · Modules

QNetworkCacheMetaData Class Reference
[QtNetwork module]

The QNetworkCacheMetaData class provides cache information. More...

Methods

Special Methods

  • bool __eq__ (self, QNetworkCacheMetaData other)
  • bool __ne__ (self, QNetworkCacheMetaData other)

Detailed Description

The QNetworkCacheMetaData class provides cache information.

QNetworkCacheMetaData provides information about a cache file including the url, when it was last modified, when the cache file was created, headers for file and if the file should be saved onto a disk.


Method Documentation

QNetworkCacheMetaData.__init__ (self)

Constructs an invalid network cache meta data.

See also isValid().

QNetworkCacheMetaData.__init__ (self, QNetworkCacheMetaData other)

Constructs a copy of the other QNetworkCacheMetaData.

dict-of-QNetworkRequest.Attribute-QVariant QNetworkCacheMetaData.attributes (self)

Returns all the attributes stored with this cache item.

This function was introduced in Qt 4.6.

See also setAttributes() and QNetworkRequest.Attribute.

QDateTime QNetworkCacheMetaData.expirationDate (self)

Returns the date and time when the meta data expires.

See also setExpirationDate().

bool QNetworkCacheMetaData.isValid (self)

Returns true if this network cache meta data has attributes that have been set otherwise false.

QDateTime QNetworkCacheMetaData.lastModified (self)

Returns the date and time when the meta data was last modified.

See also setLastModified().

list-of-tuple-of-QByteArray-QByteArray QNetworkCacheMetaData.rawHeaders (self)

Returns a list of all raw headers that are set in this meta data. The list is in the same order that the headers were set.

See also setRawHeaders().

bool QNetworkCacheMetaData.saveToDisk (self)

Returns is this cache should be allowed to be stored on disk.

Some cache implementations can keep these cache items in memory for performance reasons, but for security reasons they should not be written to disk.

Specifically with http, documents marked with Pragma: no-cache, or have a Cache-control set to no-store or no-cache or any https document that doesn't have "Cache-control: public" set will set the saveToDisk to false.

See also setSaveToDisk().

QNetworkCacheMetaData.setAttributes (self, dict-of-QNetworkRequest.Attribute-QVariant attributes)

Sets all attributes of this cache item to be the map attributes.

This function was introduced in Qt 4.6.

See also attributes() and QNetworkRequest.setAttribute().

QNetworkCacheMetaData.setExpirationDate (self, QDateTime dateTime)

Sets the date and time when the meta data expires to dateTime.

See also expirationDate().

QNetworkCacheMetaData.setLastModified (self, QDateTime dateTime)

Sets the date and time when the meta data was last modified to dateTime.

See also lastModified().

QNetworkCacheMetaData.setRawHeaders (self, list-of-tuple-of-QByteArray-QByteArray headers)

Sets the raw headers to list.

See also rawHeaders().

QNetworkCacheMetaData.setSaveToDisk (self, bool allow)

Sets whether this network cache meta data and associated content should be allowed to be stored on disk to allow.

See also saveToDisk().

QNetworkCacheMetaData.setUrl (self, QUrl url)

Sets the URL this network cache meta data to to be url.

The password and fragment are removed from the url.

See also url().

QUrl QNetworkCacheMetaData.url (self)

Returns the URL this network cache meta data is referring to.

See also setUrl().

bool QNetworkCacheMetaData.__eq__ (self, QNetworkCacheMetaData other)

bool QNetworkCacheMetaData.__ne__ (self, QNetworkCacheMetaData other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkconfiguration-stateflags.html0000644000076500000240000001431712536324520025150 0ustar philstaff00000000000000 QNetworkConfiguration.StateFlags Class Reference
  Home · All Classes · Modules

QNetworkConfiguration.StateFlags Class Reference
[QtNetwork module]

Methods

Special Methods


Detailed Description


Method Documentation

StateFlags.__init__ (self, StateFlags)

StateFlags.__init__ (self, int)

StateFlags.__init__ (self)

StateFlags StateFlags.__and__ (self, int mask)

int StateFlags.__bool__ (self)

bool StateFlags.__eq__ (self, StateFlags f)

StateFlags StateFlags.__iand__ (self, int mask)

int StateFlags.__int__ (self)

StateFlags StateFlags.__invert__ (self)

StateFlags StateFlags.__ior__ (self, StateFlags f)

StateFlags StateFlags.__ixor__ (self, StateFlags f)

bool StateFlags.__ne__ (self, StateFlags f)

StateFlags StateFlags.__or__ (self, StateFlags f)

StateFlags StateFlags.__or__ (self, int f)

StateFlags StateFlags.__xor__ (self, StateFlags f)

StateFlags StateFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkconfiguration.html0000644000076500000240000005705212536324520023020 0ustar philstaff00000000000000 QNetworkConfiguration Class Reference
  Home · All Classes · Modules

QNetworkConfiguration Class Reference
[QtNetwork module]

The QNetworkConfiguration class provides an abstraction of one or more access point configurations. More...

Types

  • enum BearerType { BearerUnknown, BearerEthernet, BearerWLAN, Bearer2G, ..., BearerWiMAX }
  • enum Purpose { UnknownPurpose, PublicPurpose, PrivatePurpose, ServiceSpecificPurpose }
  • enum StateFlag { Undefined, Defined, Discovered, Active }
  • enum Type { InternetAccessPoint, ServiceNetwork, UserChoice, Invalid }

Methods

Special Methods

  • bool __eq__ (self, QNetworkConfiguration cp)
  • bool __ne__ (self, QNetworkConfiguration cp)

Detailed Description

The QNetworkConfiguration class provides an abstraction of one or more access point configurations.

QNetworkConfiguration encapsulates a single access point or service network. In most cases a single access point configuration can be mapped to one network interface. However a single network interface may not always map to only one access point configuration. Multiple configurations for the same network device may enable multiple access points. An example device that could exhibit such a configuration might be a Smartphone which allows the user to manage multiple WLAN configurations while the device itself has only one WLAN network device.

The QNetworkConfiguration also supports the concept of service networks. This concept allows the grouping of multiple access point configurations into one entity. Such a group is called service network and can be beneficial in cases whereby a network session to a particular destination network is required (e.g. a company network). When using a service network the user doesn't usually care which one of the connectivity options is chosen (e.g. corporate WLAN or VPN via GPRS) as long as he can reach the company's target server. Depending on the current position and time some of the access points that make up the service network may not even be available. Furthermore automated access point roaming can be enabled which enables the device to change the network interface configuration dynamically while maintaining the applications connection to the target network. It allows adaption to the changing environment and may enable optimization with regards to cost, speed or other network parameters.

Special configurations of type UserChoice provide a placeholder configuration which is resolved to an actual network configuration by the platform when a session is opened. Not all platforms support the concept of a user choice configuration.

Configuration states

The list of available configurations can be obtained via QNetworkConfigurationManager.allConfigurations(). A configuration can have multiple states. The Defined configuration state indicates that the configuration is stored on the device. However the configuration is not yet ready to be activated as e.g. a WLAN may not be available at the current time.

The Discovered state implies that the configuration is Defined and the outside conditions are such that the configuration can be used immediately to open a new network session. An example of such an outside condition may be that the Ethernet cable is actually connected to the device or that the WLAN with the specified SSID is in range.

The Active state implies that the configuration is Discovered. A configuration in this state is currently being used by an application. The underlying network interface has a valid IP configuration and can transfer IP packets between the device and the target network.

The Undefined state indicates that the system has knowledge of possible target networks but cannot actually use that knowledge to connect to it. An example for such a state could be an encrypted WLAN that has been discovered but the user hasn't actually saved a configuration including the required password which would allow the device to connect to it.

Depending on the type of configuration some states are transient in nature. A GPRS/UMTS connection may almost always be Discovered if the GSM/UMTS network is available. However if the GSM/UMTS network looses the connection the associated configuration may change its state from Discovered to Defined as well. A similar use case might be triggered by WLAN availability. QNetworkConfigurationManager.updateConfigurations() can be used to manually trigger updates of states. Note that some platforms do not require such updates as they implicitly change the state once it has been discovered. If the state of a configuration changes all related QNetworkConfiguration instances change their state automatically.


Type Documentation

QNetworkConfiguration.BearerType

Specifies the type of bearer used by a configuration.

Constant Value Description
QNetworkConfiguration.BearerUnknown 0 The type of bearer is unknown or unspecified. The bearerTypeName() function may return additional information.
QNetworkConfiguration.BearerEthernet 1 The configuration is for an Ethernet interfaces.
QNetworkConfiguration.BearerWLAN 2 The configuration is for a Wireless LAN interface.
QNetworkConfiguration.Bearer2G 3 The configuration is for a CSD, GPRS, HSCSD, EDGE or cdmaOne interface.
QNetworkConfiguration.BearerCDMA2000 4 The configuration is for CDMA interface.
QNetworkConfiguration.BearerWCDMA 5 The configuration is for W-CDMA/UMTS interface.
QNetworkConfiguration.BearerHSPA 6 The configuration is for High Speed Packet Access (HSPA) interface.
QNetworkConfiguration.BearerBluetooth 7 The configuration is for a Bluetooth interface.
QNetworkConfiguration.BearerWiMAX 8 The configuration is for a WiMAX interface.

QNetworkConfiguration.Purpose

Specifies the purpose of the configuration.

Constant Value Description
QNetworkConfiguration.UnknownPurpose 0 The configuration doesn't specify any purpose. This is the default value.
QNetworkConfiguration.PublicPurpose 1 The configuration can be used for general purpose internet access.
QNetworkConfiguration.PrivatePurpose 2 The configuration is suitable to access a private network such as an office Intranet.
QNetworkConfiguration.ServiceSpecificPurpose 3 The configuration can be used for operator specific services (e.g. receiving MMS messages or content streaming).

QNetworkConfiguration.StateFlag

Specifies the configuration states.

Constant Value Description
QNetworkConfiguration.Undefined 0x0000001 This state is used for transient configurations such as newly discovered WLANs for which the user has not actually created a configuration yet.
QNetworkConfiguration.Defined 0x0000002 Defined configurations are known to the system but are not immediately usable (e.g. a configured WLAN is not within range or the Ethernet cable is currently not plugged into the machine).
QNetworkConfiguration.Discovered 0x0000006 A discovered configuration can be immediately used to create a new QNetworkSession. An example of a discovered configuration could be a WLAN which is within in range. If the device moves out of range the discovered flag is dropped. A second example is a GPRS configuration which generally remains discovered for as long as the device has network coverage. A configuration that has this state is also in state QNetworkConfiguration.Defined. If the configuration is a service network this flag is set if at least one of the underlying access points configurations has the Discovered state.
QNetworkConfiguration.Active 0x000000e The configuration is currently used by an open network session (see QNetworkSession.isOpen()). However this does not mean that the current process is the entity that created the open session. It merely indicates that if a new QNetworkSession were to be constructed based on this configuration QNetworkSession.state() would return QNetworkSession.Connected. This state implies the QNetworkConfiguration.Discovered state.

The StateFlags type is a typedef for QFlags<StateFlag>. It stores an OR combination of StateFlag values.

QNetworkConfiguration.Type

This enum describes the type of configuration.

Constant Value Description
QNetworkConfiguration.InternetAccessPoint 0 The configuration specifies the details for a single access point. Note that configurations of type InternetAccessPoint may be part of other QNetworkConfigurations of type ServiceNetwork.
QNetworkConfiguration.ServiceNetwork 1 The configuration is based on a group of QNetworkConfigurations of type InternetAccessPoint. All group members can reach the same target network. This type of configuration is a mandatory requirement for roaming enabled network sessions. On some platforms this form of configuration may also be called Service Network Access Point (SNAP).
QNetworkConfiguration.UserChoice 2 The configuration is a placeholder which will be resolved to an actual configuration by the platform when a session is opened. Depending on the platform the selection may generate a popup dialog asking the user for his preferred choice.
QNetworkConfiguration.Invalid 3 The configuration is invalid.

Method Documentation

QNetworkConfiguration.__init__ (self)

Constructs an invalid configuration object.

See also isValid().

QNetworkConfiguration.__init__ (self, QNetworkConfiguration other)

Creates a copy of the QNetworkConfiguration object contained in other.

QString QNetworkConfiguration.bearerName (self)

This function is deprecated.

This function is deprecated. It is equivalent to calling bearerTypeName(), however bearerType() should be used in preference.

BearerType QNetworkConfiguration.bearerType (self)

Returns the type of bearer used by this network configuration.

If the bearer type is unknown the bearerTypeName() function can be used to retrieve a textural type name for the bearer.

An invalid network configuration always returns the BearerUnknown value.

QString QNetworkConfiguration.bearerTypeName (self)

Returns the type of bearer used by this network configuration as a string.

The string is not translated and therefore can not be shown to the user. The subsequent table shows the fixed mappings between BearerType and the bearer type name for known types. If the BearerType is unknown this function may return additional information if it is available; otherwise an empty string will be returned.

BearerType Value
BearerUnknown The session is based on an unknown or unspecified bearer type. The value of the string returned describes the bearer type.
BearerEthernet Ethernet
BearerWLAN WLAN
Bearer2G 2G
BearerCDMA2000 CDMA2000
BearerWCDMA WCDMA
BearerHSPA HSPA
BearerBluetooth Bluetooth
BearerWiMAX WiMAX

This function returns an empty string if this is an invalid configuration, a network configuration of type QNetworkConfiguration.ServiceNetwork or QNetworkConfiguration.UserChoice.

See also bearerType().

list-of-QNetworkConfiguration QNetworkConfiguration.children (self)

Returns all sub configurations of this network configuration in priority order. The first sub configuration in the list has the highest priority.

Only network configurations of type ServiceNetwork can have children. Otherwise this function returns an empty list.

QString QNetworkConfiguration.identifier (self)

Returns the unique and platform specific identifier for this network configuration; otherwise an empty string.

bool QNetworkConfiguration.isRoamingAvailable (self)

Returns true if this configuration supports roaming; otherwise false.

bool QNetworkConfiguration.isValid (self)

Returns true if this QNetworkConfiguration object is valid. A configuration may become invalid if the user deletes the configuration or the configuration was default-constructed.

The addition and removal of configurations can be monitored via the QNetworkConfigurationManager.

See also QNetworkConfigurationManager.

QString QNetworkConfiguration.name (self)

Returns the user visible name of this configuration.

The name may either be the name of the underlying access point or the name for service network that this configuration represents.

Purpose QNetworkConfiguration.purpose (self)

Returns the purpose of this configuration.

The purpose field may be used to programmatically determine the purpose of a configuration. Such information is usually part of the access point or service network meta data.

StateFlags QNetworkConfiguration.state (self)

Returns the current state of the configuration.

Type QNetworkConfiguration.type (self)

Returns the type of the configuration.

A configuration can represent a single access point configuration or a set of access point configurations. Such a set is called service network. A configuration that is based on a service network can potentially support roaming of network sessions.

bool QNetworkConfiguration.__eq__ (self, QNetworkConfiguration cp)

bool QNetworkConfiguration.__ne__ (self, QNetworkConfiguration cp)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkconfigurationmanager-capabilities.html0000644000076500000240000001515512536324520027000 0ustar philstaff00000000000000 QNetworkConfigurationManager.Capabilities Class Reference
  Home · All Classes · Modules

QNetworkConfigurationManager.Capabilities Class Reference
[QtNetwork module]

Methods

Special Methods


Detailed Description


Method Documentation

Capabilities.__init__ (self, Capabilities)

Capabilities.__init__ (self, int)

Capabilities.__init__ (self)

Capabilities Capabilities.__and__ (self, int mask)

int Capabilities.__bool__ (self)

bool Capabilities.__eq__ (self, Capabilities f)

Capabilities Capabilities.__iand__ (self, int mask)

int Capabilities.__int__ (self)

Capabilities Capabilities.__invert__ (self)

Capabilities Capabilities.__ior__ (self, Capabilities f)

Capabilities Capabilities.__ixor__ (self, Capabilities f)

bool Capabilities.__ne__ (self, Capabilities f)

Capabilities Capabilities.__or__ (self, Capabilities f)

Capabilities Capabilities.__or__ (self, int f)

Capabilities Capabilities.__xor__ (self, Capabilities f)

Capabilities Capabilities.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkconfigurationmanager.html0000644000076500000240000004443512536324520024354 0ustar philstaff00000000000000 QNetworkConfigurationManager Class Reference
  Home · All Classes · Modules

QNetworkConfigurationManager Class Reference
[QtNetwork module]

The QNetworkConfigurationManager class manages the network configurations provided by the system. More...

Inherits QObject.

Types

  • enum Capability { CanStartAndStopInterfaces, DirectConnectionRouting, SystemSessionSupport, ApplicationLevelRoaming, ..., NetworkSessionRequired }

Methods

Qt Signals


Detailed Description

The QNetworkConfigurationManager class manages the network configurations provided by the system.

QNetworkConfigurationManager provides access to the network configurations known to the system and enables applications to detect the system capabilities (with regards to network sessions) at runtime.

A QNetworkConfiguration abstracts a set of configuration options describing how a network interface has to be configured to connect to a particular target network. QNetworkConfigurationManager maintains and updates the global list of QNetworkConfigurations. Applications can access and filter this list via allConfigurations(). If a new configuration is added or an existing one is removed or changed the configurationAdded(), configurationRemoved() and configurationChanged() signals are emitted respectively.

The defaultConfiguration() can be used when intending to immediately create a new network session without caring about the particular configuration. It returns a QNetworkConfiguration.Discovered configuration. If there are not any discovered ones an invalid configuration is returned.

Some configuration updates may require some time to perform updates. A WLAN scan is such an example. Unless the platform performs internal updates it may be required to manually trigger configuration updates via QNetworkConfigurationManager.updateConfigurations(). The completion of the update process is indicated by emitting the updateCompleted() signal. The update process ensures that every existing QNetworkConfiguration instance is updated. There is no need to ask for a renewed configuration list via allConfigurations().


Type Documentation

QNetworkConfigurationManager.Capability

Specifies the system capabilities of the bearer API. The possible values are:

Constant Value Description
QNetworkConfigurationManager.CanStartAndStopInterfaces 0x00000001 Network sessions and their underlying access points can be started and stopped. If this flag is not set QNetworkSession can only monitor but not influence the state of access points. On some platforms this feature may require elevated user permissions. This option is platform specific and may not always be available.
QNetworkConfigurationManager.DirectConnectionRouting 0x00000002 Network sessions and their sockets can be bound to a particular network interface. Any packet that passes through the socket goes to the specified network interface and thus disregards standard routing table entries. This may be useful when two interfaces can reach overlapping IP ranges or an application has specific needs in regards to target networks. This option is platform specific and may not always be available.
QNetworkConfigurationManager.SystemSessionSupport 0x00000004 If this flag is set the underlying platform ensures that a network interface is not shut down until the last network session has been closed(). This works across multiple processes. If the platform session support is missing this API can only ensure the above behavior for network sessions within the same process. In general mobile platforms (such as Symbian/S60) have such support whereas most desktop platform lack this capability.
QNetworkConfigurationManager.ApplicationLevelRoaming 0x00000008 The system gives applications control over the systems roaming behavior. Applications can initiate roaming (in case the current link is not suitable) and are consulted if the system has identified a more suitable access point.
QNetworkConfigurationManager.ForcedRoaming 0x00000010 The system disconnects an existing access point and reconnects via a more suitable one. The application does not have any control over this process and has to reconnect its active sockets.
QNetworkConfigurationManager.DataStatistics 0x00000020 If this flag is set QNetworkSession can provide statistics about transmitted and received data.
QNetworkConfigurationManager.NetworkSessionRequired 0x00000040 If this flag is set the platform requires that a network session is created before network operations can be performed.

The Capabilities type is a typedef for QFlags<Capability>. It stores an OR combination of Capability values.


Method Documentation

QNetworkConfigurationManager.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QNetworkConfigurationManager with the given parent.

Note that to ensure a valid list of current configurations immediately available, updating is done during construction which causes some delay.

list-of-QNetworkConfiguration QNetworkConfigurationManager.allConfigurations (self, QNetworkConfiguration.StateFlags flags = 0)

Returns the list of configurations which comply with the given filter.

By default this function returns all (defined and undefined) configurations.

A wireless network with a particular SSID may only be accessible in a certain area despite the fact that the system has a valid configuration for it. Therefore the filter flag may be used to limit the list to discovered and possibly connected configurations only.

If filter is set to zero this function returns all possible configurations.

Note that this function returns the states for all configurations as they are known at the time of this function call. If for instance a configuration of type WLAN is defined the system may have to perform a WLAN scan in order to determine whether it is actually available. To obtain the most accurate state updateConfigurations() should be used to update each configuration's state. Note that such an update may require some time. It's completion is signalled by updateCompleted(). In the absence of a configuration update this function returns the best estimate at the time of the call. Therefore, if WLAN configurations are of interest, it is recommended that updateConfigurations() is called once after QNetworkConfigurationManager instantiation (WLAN scans are too time consuming to perform in constructor). After this the data is kept automatically up-to-date as the system reports any changes.

Capabilities QNetworkConfigurationManager.capabilities (self)

Returns the capabilities supported by the current platform.

QNetworkConfiguration QNetworkConfigurationManager.configurationFromIdentifier (self, QString identifier)

Returns the QNetworkConfiguration for identifier; otherwise returns an invalid QNetworkConfiguration.

See also QNetworkConfiguration.identifier().

QNetworkConfiguration QNetworkConfigurationManager.defaultConfiguration (self)

Returns the default configuration to be used. This function always returns a discovered configuration; otherwise an invalid configuration.

In some cases it may be required to call updateConfigurations() and wait for the updateCompleted() signal before calling this function.

See also allConfigurations().

bool QNetworkConfigurationManager.isOnline (self)

Returns true if the system is considered to be connected to another device via an active network interface; otherwise returns false.

This is equivalent to the following code snippet:

 QNetworkConfigurationManager mgr;
 QList<QNetworkConfiguration> activeConfigs = mgr.allConfigurations(QNetworkConfiguration.Active)
 if (activeConfigs.count() > 0)
     Q_ASSERT(mgr.isOnline())
 else
     Q_ASSERT(!mgr.isOnline())

See also onlineStateChanged().

QNetworkConfigurationManager.updateConfigurations (self)

Initiates an update of all configurations. This may be used to initiate WLAN scans or other time consuming updates which may be required to obtain the correct state for configurations.

This call is asynchronous. On completion of this update the updateCompleted() signal is emitted. If new configurations are discovered or old ones were removed or changed the update process may trigger the emission of one or multiple configurationAdded(), configurationRemoved() and configurationChanged() signals.

If a configuration state changes as a result of this update all existing QNetworkConfiguration instances are updated automatically.

See also allConfigurations().


Qt Signal Documentation

void configurationAdded (const QNetworkConfiguration&)

This is the default overload of this signal.

This signal is emitted whenever a new network configuration is added to the system. The new configuration is specified by config.

void configurationChanged (const QNetworkConfiguration&)

This is the default overload of this signal.

This signal is emitted when the state of config changes.

void configurationRemoved (const QNetworkConfiguration&)

This is the default overload of this signal.

This signal is emitted when a configuration is about to be removed from the system. The removed configuration, specified by config, is invalid but retains name and identifier.

This function was introduced in Qt 4.8.

void onlineStateChanged (bool)

This is the default overload of this signal.

This signal is emitted when the device changes from online to offline mode or vice versa. isOnline represents the new state of the device.

The state is considered to be online for as long as allConfigurations(QNetworkConfiguration.Active) returns a list with at least one entry.

void updateCompleted ()

This is the default overload of this signal.

This signal is emitted when the configuration update has been completed. Such an update can be initiated via updateConfigurations().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkcookie.html0000644000076500000240000003724412536324520021423 0ustar philstaff00000000000000 QNetworkCookie Class Reference
  Home · All Classes · Modules

QNetworkCookie Class Reference
[QtNetwork module]

The QNetworkCookie class holds one network cookie. More...

Types

  • enum RawForm { NameAndValueOnly, Full }

Methods

Static Methods

  • list-of-QNetworkCookie parseCookies (QByteArray cookieString)

Special Methods

  • bool __eq__ (self, QNetworkCookie other)
  • bool __ne__ (self, QNetworkCookie other)

Detailed Description

The QNetworkCookie class holds one network cookie.

Cookies are small bits of information that stateless protocols like HTTP use to maintain some persistent information across requests.

A cookie is set by a remote server when it replies to a request and it expects the same cookie to be sent back when further requests are sent.

QNetworkCookie holds one such cookie as received from the network. A cookie has a name and a value, but those are opaque to the application (that is, the information stored in them has no meaning to the application). A cookie has an associated path name and domain, which indicate when the cookie should be sent again to the server.

A cookie can also have an expiration date, indicating its validity. If the expiration date is not present, the cookie is considered a "session cookie" and should be discarded when the application exits (or when its concept of session is over).

QNetworkCookie provides a way of parsing a cookie from the HTTP header format using the QNetworkCookie.parseCookies() function. However, when received in a QNetworkReply, the cookie is already parsed.

This class implements cookies as described by the initial cookie specification by Netscape, which is somewhat similar to the RFC 2109 specification, plus the "HttpOnly" extension. The more recent RFC 2965 specification (which uses the Set-Cookie2 header) is not supported.


Type Documentation

QNetworkCookie.RawForm

This enum is used with the toRawForm() function to declare which form of a cookie shall be returned.

Constant Value Description
QNetworkCookie.NameAndValueOnly 0 makes toRawForm() return only the "NAME=VALUE" part of the cookie, as suitable for sending back to a server in a client request's "Cookie:" header. Multiple cookies are separated by a semi-colon in the "Cookie:" header field.
QNetworkCookie.Full 1 makes toRawForm() return the full cookie contents, as suitable for sending to a client in a server's "Set-Cookie:" header.

Note that only the Full form of the cookie can be parsed back into its original contents.

See also toRawForm() and parseCookies().


Method Documentation

QNetworkCookie.__init__ (self, QByteArray name = QByteArray(), QByteArray value = QByteArray())

Create a new QNetworkCookie object, initializing the cookie name to name and its value to value.

A cookie is only valid if it has a name. However, the value is opaque to the application and being empty may have significance to the remote server.

QNetworkCookie.__init__ (self, QNetworkCookie other)

Creates a new QNetworkCookie object by copying the contents of other.

QString QNetworkCookie.domain (self)

Returns the domain this cookie is associated with. This corresponds to the "domain" field of the cookie string.

Note that the domain here may start with a dot, which is not a valid hostname. However, it means this cookie matches all hostnames ending with that domain name.

See also setDomain().

QDateTime QNetworkCookie.expirationDate (self)

Returns the expiration date for this cookie. If this cookie is a session cookie, the QDateTime returned will not be valid. If the date is in the past, this cookie has already expired and should not be sent again back to a remote server.

The expiration date corresponds to the parameters of the "expires" entry in the cookie string.

See also isSessionCookie() and setExpirationDate().

bool QNetworkCookie.isHttpOnly (self)

Returns true if the "HttpOnly" flag is enabled for this cookie.

A cookie that is "HttpOnly" is only set and retrieved by the network requests and replies; i.e., the HTTP protocol. It is not accessible from scripts running on browsers.

This function was introduced in Qt 4.5.

See also isSecure().

bool QNetworkCookie.isSecure (self)

Returns true if the "secure" option was specified in the cookie string, false otherwise.

Secure cookies may contain private information and should not be resent over unencrypted connections.

See also setSecure().

bool QNetworkCookie.isSessionCookie (self)

Returns true if this cookie is a session cookie. A session cookie is a cookie which has no expiration date, which means it should be discarded when the application's concept of session is over (usually, when the application exits).

See also expirationDate() and setExpirationDate().

QByteArray QNetworkCookie.name (self)

Returns the name of this cookie. The only mandatory field of a cookie is its name, without which it is not considered valid.

See also setName() and value().

list-of-QNetworkCookie QNetworkCookie.parseCookies (QByteArray cookieString)

Parses the cookie string cookieString as received from a server response in the "Set-Cookie:" header. If there's a parsing error, this function returns an empty list.

Since the HTTP header can set more than one cookie at the same time, this function returns a QList<QNetworkCookie>, one for each cookie that is parsed.

See also toRawForm().

QString QNetworkCookie.path (self)

QNetworkCookie.setDomain (self, QString domain)

Sets the domain associated with this cookie to be domain.

See also domain().

QNetworkCookie.setExpirationDate (self, QDateTime date)

Sets the expiration date of this cookie to date. Setting an invalid expiration date to this cookie will mean it's a session cookie.

See also isSessionCookie() and expirationDate().

QNetworkCookie.setHttpOnly (self, bool enable)

Sets this cookie's "HttpOnly" flag to enable.

This function was introduced in Qt 4.5.

See also isHttpOnly().

QNetworkCookie.setName (self, QByteArray cookieName)

Sets the name of this cookie to be cookieName. Note that setting a cookie name to an empty QByteArray will make this cookie invalid.

See also name() and value().

QNetworkCookie.setPath (self, QString path)

Sets the path associated with this cookie to be path.

See also path().

QNetworkCookie.setSecure (self, bool enable)

Sets the secure flag of this cookie to enable.

Secure cookies may contain private information and should not be resent over unencrypted connections.

See also isSecure().

QNetworkCookie.setValue (self, QByteArray value)

Sets the value of this cookie to be value.

See also value() and name().

QByteArray QNetworkCookie.toRawForm (self, RawForm form = QNetworkCookie.Full)

Returns the raw form of this QNetworkCookie. The QByteArray returned by this function is suitable for an HTTP header, either in a server response (the Set-Cookie header) or the client request (the Cookie header). You can choose from one of two formats, using form.

See also parseCookies().

QByteArray QNetworkCookie.value (self)

Returns this cookies value, as specified in the cookie string. Note that a cookie is still valid if its value is empty.

Cookie name-value pairs are considered opaque to the application: that is, their values don't mean anything.

See also setValue() and name().

bool QNetworkCookie.__eq__ (self, QNetworkCookie other)

bool QNetworkCookie.__ne__ (self, QNetworkCookie other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkcookiejar.html0000644000076500000240000001763612536324520022123 0ustar philstaff00000000000000 QNetworkCookieJar Class Reference
  Home · All Classes · Modules

QNetworkCookieJar Class Reference
[QtNetwork module]

The QNetworkCookieJar class implements a simple jar of QNetworkCookie objects More...

Inherits QObject.

Methods


Detailed Description

The QNetworkCookieJar class implements a simple jar of QNetworkCookie objects

Cookies are small bits of information that stateless protocols like HTTP use to maintain some persistent information across requests.

A cookie is set by a remote server when it replies to a request and it expects the same cookie to be sent back when further requests are sent.

The cookie jar is the object that holds all cookies set in previous requests. Web browsers save their cookie jars to disk in order to conserve permanent cookies across invocations of the application.

QNetworkCookieJar does not implement permanent storage: it only keeps the cookies in memory. Once the QNetworkCookieJar object is deleted, all cookies it held will be discarded as well. If you want to save the cookies, you should derive from this class and implement the saving to disk to your own storage format.

This class implements only the basic security recommended by the cookie specifications and does not implement any cookie acceptance policy (it accepts all cookies set by any requests). In order to override those rules, you should reimplement the cookiesForUrl() and setCookiesFromUrl() virtual functions. They are called by QNetworkReply and QNetworkAccessManager when they detect new cookies and when they require cookies.


Method Documentation

QNetworkCookieJar.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a QNetworkCookieJar object and sets the parent object to be parent.

The cookie jar is initialized to empty.

list-of-QNetworkCookie QNetworkCookieJar.allCookies (self)

Returns all cookies stored in this cookie jar. This function is suitable for derived classes to save cookies to disk, as well as to implement cookie expiration and other policies.

See also setAllCookies() and cookiesForUrl().

list-of-QNetworkCookie QNetworkCookieJar.cookiesForUrl (self, QUrl url)

Returns the cookies to be added to when a request is sent to url. This function is called by the default QNetworkAccessManager.createRequest(), which adds the cookies returned by this function to the request being sent.

If more than one cookie with the same name is found, but with differing paths, the one with longer path is returned before the one with shorter path. In other words, this function returns cookies sorted decreasingly by path length.

The default QNetworkCookieJar class implements only a very basic security policy (it makes sure that the cookies' domain and path match the reply's). To enhance the security policy with your own algorithms, override cookiesForUrl().

See also setCookiesFromUrl() and QNetworkAccessManager.setCookieJar().

QNetworkCookieJar.setAllCookies (self, list-of-QNetworkCookie cookieList)

Sets the internal list of cookies held by this cookie jar to be cookieList. This function is suitable for derived classes to implement loading cookies from permanent storage, or their own cookie acceptance policies by reimplementing setCookiesFromUrl().

See also allCookies() and setCookiesFromUrl().

bool QNetworkCookieJar.setCookiesFromUrl (self, list-of-QNetworkCookie cookieList, QUrl url)

Adds the cookies in the list cookieList to this cookie jar. Default values for path and domain are taken from the url object.

Returns true if one or more cookies are set for url, otherwise false.

If a cookie already exists in the cookie jar, it will be overridden by those in cookieList.

The default QNetworkCookieJar class implements only a very basic security policy (it makes sure that the cookies' domain and path match the reply's). To enhance the security policy with your own algorithms, override setCookiesFromUrl().

Also, QNetworkCookieJar does not have a maximum cookie jar size. Reimplement this function to discard older cookies to create room for new ones.

See also cookiesForUrl() and QNetworkAccessManager.setCookieJar().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkdiskcache.html0000644000076500000240000003231112536324520022056 0ustar philstaff00000000000000 QNetworkDiskCache Class Reference
  Home · All Classes · Modules

QNetworkDiskCache Class Reference
[QtNetwork module]

The QNetworkDiskCache class provides a very basic disk cache. More...

Inherits QAbstractNetworkCache.

Methods


Detailed Description

The QNetworkDiskCache class provides a very basic disk cache.

QNetworkDiskCache stores each url in its own file inside of the cacheDirectory using QDataStream. Files with a text MimeType are compressed using qCompress. Each cache file starts with "cache_" and ends in ".cache". Data is written to disk only in insert() and updateMetaData().

Currently you can not share the same cache files with more then one disk cache.

QNetworkDiskCache by default limits the amount of space that the cache will use on the system to 50MB.

Note you have to set the cache directory before it will work.

A network disk cache can be enabled by:

 QNetworkAccessManager *manager = new QNetworkAccessManager(this);
 QNetworkDiskCache *diskCache = new QNetworkDiskCache(this);
 diskCache->setCacheDirectory("cacheDir");
 manager->setCache(diskCache);

When sending requests, to control the preference of when to use the cache and when to use the network, consider the following:

 // do a normal request (preferred from network, as this is the default)
 QNetworkRequest request(QUrl(QString("http://qt.nokia.com")));
 manager->get(request);

 // do a request preferred from cache
 QNetworkRequest request2(QUrl(QString("http://qt.nokia.com")));
 request2.setAttribute(QNetworkRequest.CacheLoadControlAttribute, QNetworkRequest.PreferCache);
 manager->get(request2);

To check whether the response came from the cache or from the network, the following can be applied:

 void replyFinished(QNetworkReply *reply) {
     QVariant fromCache = reply->attribute(QNetworkRequest.SourceIsFromCacheAttribute);
     qDebug() << "page from cache?" << fromCache.toBool();
 }

Method Documentation

QNetworkDiskCache.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new disk cache. The parent argument is passed to QAbstractNetworkCache's constructor.

QString QNetworkDiskCache.cacheDirectory (self)

Returns the location where cached files will be stored.

See also setCacheDirectory().

int QNetworkDiskCache.cacheSize (self)

Reimplemented from QAbstractNetworkCache.cacheSize().

QNetworkDiskCache.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Reimplemented from QAbstractNetworkCache.clear().

QIODevice QNetworkDiskCache.data (self, QUrl url)

Reimplemented from QAbstractNetworkCache.data().

int QNetworkDiskCache.expire (self)

Cleans the cache so that its size is under the maximum cache size. Returns the current size of the cache.

When the current size of the cache is greater than the maximumCacheSize() older cache files are removed until the total size is less then 90% of maximumCacheSize() starting with the oldest ones first using the file creation date to determine how old a cache file is.

Subclasses can reimplement this function to change the order that cache files are removed taking into account information in the application knows about that QNetworkDiskCache does not, for example the number of times a cache is accessed.

Note: cacheSize() calls expire if the current cache size is unknown.

See also maximumCacheSize() and fileMetaData().

QNetworkCacheMetaData QNetworkDiskCache.fileMetaData (self, QString fileName)

Returns the QNetworkCacheMetaData for the cache file fileName.

If fileName is not a cache file QNetworkCacheMetaData will be invalid.

QNetworkDiskCache.insert (self, QIODevice device)

Reimplemented from QAbstractNetworkCache.insert().

int QNetworkDiskCache.maximumCacheSize (self)

Returns the current maximum size in bytes for the disk cache.

See also setMaximumCacheSize().

QNetworkCacheMetaData QNetworkDiskCache.metaData (self, QUrl url)

Reimplemented from QAbstractNetworkCache.metaData().

QIODevice QNetworkDiskCache.prepare (self, QNetworkCacheMetaData metaData)

Reimplemented from QAbstractNetworkCache.prepare().

bool QNetworkDiskCache.remove (self, QUrl url)

Reimplemented from QAbstractNetworkCache.remove().

QNetworkDiskCache.setCacheDirectory (self, QString cacheDir)

Sets the directory where cached files will be stored to cacheDir

QNetworkDiskCache will create this directory if it does not exists.

Prepared cache items will be stored in the new cache directory when they are inserted.

See also cacheDirectory() and QDesktopServices.CacheLocation.

QNetworkDiskCache.setMaximumCacheSize (self, int size)

Sets the maximum size of the disk cache to be size in bytes.

If the new size is smaller then the current cache size then the cache will call expire().

See also maximumCacheSize().

QNetworkDiskCache.updateMetaData (self, QNetworkCacheMetaData metaData)

Reimplemented from QAbstractNetworkCache.updateMetaData().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkinterface-interfaceflags.html0000644000076500000240000001516012536324520025056 0ustar philstaff00000000000000 QNetworkInterface.InterfaceFlags Class Reference
  Home · All Classes · Modules

QNetworkInterface.InterfaceFlags Class Reference
[QtNetwork module]

Methods

Special Methods

  • InterfaceFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, InterfaceFlags f)
  • InterfaceFlags __iand__ (self, int mask)
  • int __int__ (self)
  • InterfaceFlags __invert__ (self)
  • InterfaceFlags __ior__ (self, InterfaceFlags f)
  • InterfaceFlags __ixor__ (self, InterfaceFlags f)
  • bool __ne__ (self, InterfaceFlags f)
  • InterfaceFlags __or__ (self, InterfaceFlags f)
  • InterfaceFlags __or__ (self, int f)
  • InterfaceFlags __xor__ (self, InterfaceFlags f)
  • InterfaceFlags __xor__ (self, int f)

Detailed Description

InterfaceFlag may be used whenever InterfaceFlags is expected.


Method Documentation

InterfaceFlags.__init__ (self, InterfaceFlags)

InterfaceFlags.__init__ (self, int)

InterfaceFlags.__init__ (self)

InterfaceFlags InterfaceFlags.__and__ (self, int mask)

int InterfaceFlags.__bool__ (self)

bool InterfaceFlags.__eq__ (self, InterfaceFlags f)

InterfaceFlags InterfaceFlags.__iand__ (self, int mask)

int InterfaceFlags.__int__ (self)

InterfaceFlags InterfaceFlags.__invert__ (self)

InterfaceFlags InterfaceFlags.__ior__ (self, InterfaceFlags f)

InterfaceFlags InterfaceFlags.__ixor__ (self, InterfaceFlags f)

bool InterfaceFlags.__ne__ (self, InterfaceFlags f)

InterfaceFlags InterfaceFlags.__or__ (self, InterfaceFlags f)

InterfaceFlags InterfaceFlags.__or__ (self, int f)

InterfaceFlags InterfaceFlags.__xor__ (self, InterfaceFlags f)

InterfaceFlags InterfaceFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkinterface.html0000644000076500000240000002711112536324520022102 0ustar philstaff00000000000000 QNetworkInterface Class Reference
  Home · All Classes · Modules

QNetworkInterface Class Reference
[QtNetwork module]

The QNetworkInterface class provides a listing of the host's IP addresses and network interfaces. More...

Types

Methods

Static Methods


Detailed Description

The QNetworkInterface class provides a listing of the host's IP addresses and network interfaces.

QNetworkInterface represents one network interface attached to the host where the program is being run. Each network interface may contain zero or more IP addresses, each of which is optionally associated with a netmask and/or a broadcast address. The list of such trios can be obtained with addressEntries(). Alternatively, when the netmask or the broadcast addresses aren't necessary, use the allAddresses() convenience function to obtain just the IP addresses.

QNetworkInterface also reports the interface's hardware address with hardwareAddress().

Not all operating systems support reporting all features. Only the IPv4 addresses are guaranteed to be listed by this class in all platforms. In particular, IPv6 address listing is only supported on Windows XP and more recent versions, Linux, MacOS X and the BSDs.


Type Documentation

QNetworkInterface.InterfaceFlag

Specifies the flags associated with this network interface. The possible values are:

Constant Value Description
QNetworkInterface.IsUp 0x1 the network interface is active
QNetworkInterface.IsRunning 0x2 the network interface has resources allocated
QNetworkInterface.CanBroadcast 0x4 the network interface works in broadcast mode
QNetworkInterface.IsLoopBack 0x8 the network interface is a loopback interface: that is, it's a virtual interface whose destination is the host computer itself
QNetworkInterface.IsPointToPoint 0x10 the network interface is a point-to-point interface: that is, there is one, single other address that can be directly reached by it.
QNetworkInterface.CanMulticast 0x20 the network interface supports multicasting

Note that one network interface cannot be both broadcast-based and point-to-point.

The InterfaceFlags type is a typedef for QFlags<InterfaceFlag>. It stores an OR combination of InterfaceFlag values.


Method Documentation

QNetworkInterface.__init__ (self)

Constructs an empty network interface object.

QNetworkInterface.__init__ (self, QNetworkInterface other)

Creates a copy of the QNetworkInterface object contained in other.

list-of-QNetworkAddressEntry QNetworkInterface.addressEntries (self)

Returns the list of IP addresses that this interface possesses along with their associated netmasks and broadcast addresses.

If the netmask or broadcast address information is not necessary, you can call the allAddresses() function to obtain just the IP addresses.

list-of-QHostAddress QNetworkInterface.allAddresses ()

This convenience function returns all IP addresses found on the host machine. It is equivalent to calling addressEntries() on all the objects returned by allInterfaces() to obtain lists of QHostAddress objects then calling QHostAddress.ip() on each of these.

list-of-QNetworkInterface QNetworkInterface.allInterfaces ()

Returns a listing of all the network interfaces found on the host machine.

InterfaceFlags QNetworkInterface.flags (self)

Returns the flags associated with this network interface.

QString QNetworkInterface.hardwareAddress (self)

Returns the low-level hardware address for this interface. On Ethernet interfaces, this will be a MAC address in string representation, separated by colons.

Other interface types may have other types of hardware addresses. Implementations should not depend on this function returning a valid MAC address.

QString QNetworkInterface.humanReadableName (self)

Returns the human-readable name of this network interface on Windows, such as "Local Area Connection", if the name could be determined. If it couldn't, this function returns the same as name(). The human-readable name is a name that the user can modify in the Windows Control Panel, so it may change during the execution of the program.

On Unix, this function currently always returns the same as name(), since Unix systems don't store a configuration for human-readable names.

This function was introduced in Qt 4.5.

int QNetworkInterface.index (self)

Returns the interface system index, if known. This is an integer assigned by the operating system to identify this interface and it generally doesn't change. It matches the scope ID field in IPv6 addresses.

If the index isn't known, this function returns 0.

This function was introduced in Qt 4.5.

QNetworkInterface QNetworkInterface.interfaceFromIndex (int index)

Returns a QNetworkInterface object for the interface whose internal ID is index. Network interfaces have a unique identifier called the "interface index" to distinguish it from other interfaces on the system. Often, this value is assigned progressively and interfaces being removed and then added again get a different value every time.

This index is also found in the IPv6 address' scope ID field.

QNetworkInterface QNetworkInterface.interfaceFromName (QString name)

Returns a QNetworkInterface object for the interface named name. If no such interface exists, this function returns an invalid QNetworkInterface object.

See also name() and isValid().

bool QNetworkInterface.isValid (self)

Returns true if this QNetworkInterface object contains valid information about a network interface.

QString QNetworkInterface.name (self)

Returns the name of this network interface. On Unix systems, this is a string containing the type of the interface and optionally a sequence number, such as "eth0", "lo" or "pcn0". On Windows, it's an internal ID that cannot be changed by the user.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkproxy-capabilities.html0000644000076500000240000001415712536324520023760 0ustar philstaff00000000000000 QNetworkProxy.Capabilities Class Reference
  Home · All Classes · Modules

QNetworkProxy.Capabilities Class Reference
[
QtNetwork module]

Methods

Special Methods


Detailed Description


Method Documentation

Capabilities.__init__ (self, Capabilities)

Capabilities.__init__ (self, int)

Capabilities.__init__ (self)

Capabilities Capabilities.__and__ (self, int mask)

int Capabilities.__bool__ (self)

bool Capabilities.__eq__ (self, Capabilities f)

Capabilities Capabilities.__iand__ (self, int mask)

int Capabilities.__int__ (self)

Capabilities Capabilities.__invert__ (self)

Capabilities Capabilities.__ior__ (self, Capabilities f)

Capabilities Capabilities.__ixor__ (self, Capabilities f)

bool Capabilities.__ne__ (self, Capabilities f)

Capabilities Capabilities.__or__ (self, Capabilities f)

Capabilities Capabilities.__or__ (self, int f)

Capabilities Capabilities.__xor__ (self, Capabilities f)

Capabilities Capabilities.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkproxy.html0000644000076500000240000006352712536324520021336 0ustar philstaff00000000000000 QNetworkProxy Class Reference
  Home · All Classes · Modules

QNetworkProxy Class Reference
[QtNetwork module]

The QNetworkProxy class provides a network layer proxy. More...

Types

  • enum Capability { TunnelingCapability, ListeningCapability, UdpTunnelingCapability, CachingCapability, HostNameLookupCapability }
  • enum ProxyType { DefaultProxy, Socks5Proxy, NoProxy, HttpProxy, HttpCachingProxy, FtpCachingProxy }

Methods

Static Methods

Special Methods

  • bool __eq__ (self, QNetworkProxy other)
  • bool __ne__ (self, QNetworkProxy other)

Detailed Description

The QNetworkProxy class provides a network layer proxy.

QNetworkProxy provides the method for configuring network layer proxy support to the Qt network classes. The currently supported classes are QAbstractSocket, QTcpSocket, QUdpSocket, QTcpServer, QNetworkAccessManager and QFtp. The proxy support is designed to be as transparent as possible. This means that existing network-enabled applications that you have written should automatically support network proxy using the following code.

 QNetworkProxy proxy;
 proxy.setType(QNetworkProxy.Socks5Proxy);
 proxy.setHostName("proxy.example.com");
 proxy.setPort(1080);
 proxy.setUser("username");
 proxy.setPassword("password");
 QNetworkProxy.setApplicationProxy(proxy);

An alternative to setting an application wide proxy is to specify the proxy for individual sockets using QAbstractSocket.setProxy() and QTcpServer.setProxy(). In this way, it is possible to disable the use of a proxy for specific sockets using the following code:

 serverSocket->setProxy(QNetworkProxy.NoProxy);

Network proxy is not used if the address used in connectToHost(), bind() or listen() is equivalent to QHostAddress.LocalHost or QHostAddress.LocalHostIPv6.

Each type of proxy support has certain restrictions associated with it. You should read the ProxyType documentation carefully before selecting a proxy type to use.

Note: Changes made to currently connected sockets do not take effect. If you need to change a connected socket, you should reconnect it.

SOCKS5

The SOCKS5 support in Qt 4 is based on RFC 1928 and RFC 1929. The supported authentication methods are no authentication and username/password authentication. Both IPv4 and IPv6 are supported. Domain names are resolved through the SOCKS5 server if the QNetworkProxy.HostNameLookupCapability is enabled, otherwise they are resolved locally and the IP address is sent to the server. There are several things to remember when using SOCKS5 with QUdpSocket and QTcpServer:

With QUdpSocket, a call to bind() may fail with a timeout error. If a port number other than 0 is passed to bind(), it is not guaranteed that it is the specified port that will be used. Use localPort() and localAddress() to get the actual address and port number in use. Because proxied UDP goes through two UDP connections, it is more likely that packets will be dropped.

With QTcpServer a call to listen() may fail with a timeout error. If a port number other than 0 is passed to listen(), then it is not guaranteed that it is the specified port that will be used. Use serverPort() and serverAddress() to get the actual address and port used to listen for connections. SOCKS5 only supports one accepted connection per call to listen(), and each call is likely to result in a different serverPort() being used.


Type Documentation

QNetworkProxy.Capability

These flags indicate the capabilities that a given proxy server supports.

QNetworkProxy sets different capabilities by default when the object is created (see QNetworkProxy.ProxyType for a list of the defaults). However, it is possible to change the capabitilies after the object has been created with setCapabilities().

The capabilities that QNetworkProxy supports are:

Constant Value Description
QNetworkProxy.TunnelingCapability 0x0001 Ability to open transparent, tunneled TCP connections to a remote host. The proxy server relays the transmission verbatim from one side to the other and does no caching.
QNetworkProxy.ListeningCapability 0x0002 Ability to create a listening socket and wait for an incoming TCP connection from a remote host.
QNetworkProxy.UdpTunnelingCapability 0x0004 Ability to relay UDP datagrams via the proxy server to and from a remote host.
QNetworkProxy.CachingCapability 0x0008 Ability to cache the contents of the transfer. This capability is specific to each protocol and proxy type. For example, HTTP proxies can cache the contents of web data transferred with "GET" commands.
QNetworkProxy.HostNameLookupCapability 0x0010 Ability to connect to perform the lookup on a remote host name and connect to it, as opposed to requiring the application to perform the name lookup and request connection to IP addresses only.

This enum was introduced or modified in Qt 4.5.

The Capabilities type is a typedef for QFlags<Capability>. It stores an OR combination of Capability values.

QNetworkProxy.ProxyType

This enum describes the types of network proxying provided in Qt.

There are two types of proxies that Qt understands: transparent proxies and caching proxies. The first group consists of proxies that can handle any arbitrary data transfer, while the second can only handle specific requests. The caching proxies only make sense for the specific classes where they can be used.

Constant Value Description
QNetworkProxy.NoProxy 2 No proxying is used
QNetworkProxy.DefaultProxy 0 Proxy is determined based on the application proxy set using setApplicationProxy()
QNetworkProxy.Socks5Proxy 1 Socks5 proxying is used
QNetworkProxy.HttpProxy 3 HTTP transparent proxying is used (This value was introduced in 4.3.)
QNetworkProxy.HttpCachingProxy 4 Proxying for HTTP requests only (This value was introduced in 4.4.)
QNetworkProxy.FtpCachingProxy 5 Proxying for FTP requests only (This value was introduced in 4.4.)

The table below lists different proxy types and their capabilities. Since each proxy type has different capabilities, it is important to understand them before choosing a proxy type.

Proxy type Description Default capabilities
SOCKS 5 Generic proxy for any kind of connection. Supports TCP, UDP, binding to a port (incoming connections) and authentication. TunnelingCapability, ListeningCapability, UdpTunnelingCapability, HostNameLookupCapability
HTTP Implemented using the "CONNECT" command, supports only outgoing TCP connections; supports authentication. TunnelingCapability, CachingCapability, HostNameLookupCapability
Caching-only HTTP Implemented using normal HTTP commands, it is useful only in the context of HTTP requests (see QNetworkAccessManager) CachingCapability, HostNameLookupCapability
Caching FTP Implemented using an FTP proxy, it is useful only in the context of FTP requests (see QFtp, QNetworkAccessManager) CachingCapability, HostNameLookupCapability

Also note that you shouldn't set the application default proxy (setApplicationProxy()) to a proxy that doesn't have the TunnelingCapability capability. If you do, QTcpSocket will not know how to open connections.

See also setType(), type(), capabilities(), and setCapabilities().


Method Documentation

QNetworkProxy.__init__ (self)

Constructs a QNetworkProxy with DefaultProxy type; the proxy type is determined by applicationProxy(), which defaults to NoProxy.

See also setType() and setApplicationProxy().

QNetworkProxy.__init__ (self, ProxyType type, QString hostName = QString(), int port = 0, QString user = QString(), QString password = QString())

Constructs a QNetworkProxy with type, hostName, port, user and password.

The default capabilities for proxy type type are set automatically.

See also capabilities().

QNetworkProxy.__init__ (self, QNetworkProxy other)

Constructs a copy of other.

QNetworkProxy QNetworkProxy.applicationProxy ()

Returns the application level network proxying.

If a QAbstractSocket or QTcpSocket has the QNetworkProxy.DefaultProxy type, then the QNetworkProxy returned by this function is used.

See also QNetworkProxyFactory, setApplicationProxy(), QAbstractSocket.proxy(), and QTcpServer.proxy().

Capabilities QNetworkProxy.capabilities (self)

Returns the capabilities of this proxy server.

This function was introduced in Qt 4.5.

See also setCapabilities() and type().

QString QNetworkProxy.hostName (self)

Returns the host name of the proxy host.

See also setHostName(), setPort(), and port().

bool QNetworkProxy.isCachingProxy (self)

Returns true if this proxy supports the QNetworkProxy.CachingCapability capability.

In Qt 4.4, the capability was tied to the proxy type, but since Qt 4.5 it is possible to remove the capability of caching from a proxy by calling setCapabilities().

This function was introduced in Qt 4.4.

See also capabilities(), type(), and isTransparentProxy().

bool QNetworkProxy.isTransparentProxy (self)

Returns true if this proxy supports transparent tunneling of TCP connections. This matches the QNetworkProxy.TunnelingCapability capability.

In Qt 4.4, the capability was tied to the proxy type, but since Qt 4.5 it is possible to remove the capability of caching from a proxy by calling setCapabilities().

This function was introduced in Qt 4.4.

See also capabilities(), type(), and isCachingProxy().

QString QNetworkProxy.password (self)

Returns the password used for authentication.

See also user(), setPassword(), and setUser().

int QNetworkProxy.port (self)

Returns the port of the proxy host.

See also setHostName(), setPort(), and hostName().

QNetworkProxy.setApplicationProxy (QNetworkProxy proxy)

Sets the application level network proxying to be networkProxy.

If a QAbstractSocket or QTcpSocket has the QNetworkProxy.DefaultProxy type, then the QNetworkProxy set with this function is used. If you want more flexibility in determining which the proxy, use the QNetworkProxyFactory class.

Setting a default proxy value with this function will override the application proxy factory set with QNetworkProxyFactory.setApplicationProxyFactory.

See also QNetworkProxyFactory, applicationProxy(), QAbstractSocket.setProxy(), and QTcpServer.setProxy().

QNetworkProxy.setCapabilities (self, Capabilities capab)

Sets the capabilities of this proxy to capabilities.

This function was introduced in Qt 4.5.

See also setType() and capabilities().

QNetworkProxy.setHostName (self, QString hostName)

Sets the host name of the proxy host to be hostName.

See also hostName(), setPort(), and port().

QNetworkProxy.setPassword (self, QString password)

Sets the password for proxy authentication to be password.

See also user(), setUser(), and password().

QNetworkProxy.setPort (self, int port)

Sets the port of the proxy host to be port.

See also hostName(), setHostName(), and port().

QNetworkProxy.setType (self, ProxyType type)

Sets the proxy type for this instance to be type.

Note that changing the type of a proxy does not change the set of capabilities this QNetworkProxy object holds if any capabilities have been set with setCapabilities().

See also type() and setCapabilities().

QNetworkProxy.setUser (self, QString userName)

Sets the user name for proxy authentication to be user.

See also user(), setPassword(), and password().

ProxyType QNetworkProxy.type (self)

Returns the proxy type for this instance.

See also setType().

QString QNetworkProxy.user (self)

Returns the user name used for authentication.

See also setUser(), setPassword(), and password().

bool QNetworkProxy.__eq__ (self, QNetworkProxy other)

bool QNetworkProxy.__ne__ (self, QNetworkProxy other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkproxyfactory.html0000644000076500000240000002764212536324520022724 0ustar philstaff00000000000000 QNetworkProxyFactory Class Reference
  Home · All Classes · Modules

QNetworkProxyFactory Class Reference
[QtNetwork module]

The QNetworkProxyFactory class provides fine-grained proxy selection. More...

Methods

  • __init__ (self)
  • __init__ (self, QNetworkProxyFactory)
  • list-of-QNetworkProxy queryProxy (self, QNetworkProxyQuery query = QNetworkProxyQuery())

Static Methods


Detailed Description

The QNetworkProxyFactory class provides fine-grained proxy selection.

QNetworkProxyFactory is an extension to QNetworkProxy, allowing applications to have a more fine-grained control over which proxy servers are used, depending on the socket requesting the proxy. This allows an application to apply different settings, according to the protocol or destination hostname, for instance.

QNetworkProxyFactory can be set globally for an application, in which case it will override any global proxies set with QNetworkProxy.setApplicationProxy(). If set globally, any sockets created with Qt will query the factory to determine the proxy to be used.

A factory can also be set in certain frameworks that support multiple connections, such as QNetworkAccessManager. When set on such object, the factory will be queried for sockets created by that framework only.

System Proxies

You can configure a factory to use the system proxy's settings. Call the setUseSystemConfiguration() function with true to enable this behavior, or false to disable it.

Similarly, you can use a factory to make queries directly to the system proxy by calling its systemProxyForQuery() function.

Warning: Depending on the configuration of the user's system, the use of system proxy features on certain platforms may be subject to limitations. The systemProxyForQuery() documentation contains a list of these limitations for those platforms that are affected.


Method Documentation

QNetworkProxyFactory.__init__ (self)

Creates a QNetworkProxyFactory object.

Since QNetworkProxyFactory is an abstract class, you cannot create objects of type QNetworkProxyFactory directly.

QNetworkProxyFactory.__init__ (self, QNetworkProxyFactory)

list-of-QNetworkProxy QNetworkProxyFactory.proxyForQuery (QNetworkProxyQuery query)

This function takes the query request, query, examines the details of the type of socket or request and returns a list of QNetworkProxy objects that indicate the proxy servers to be used, in order of preference.

list-of-QNetworkProxy QNetworkProxyFactory.queryProxy (self, QNetworkProxyQuery query = QNetworkProxyQuery())

This method is abstract and should be reimplemented in any sub-class.

This function takes the query request, query, examines the details of the type of socket or request and returns a list of QNetworkProxy objects that indicate the proxy servers to be used, in order of preference.

When reimplementing this class, take care to return at least one element.

If you cannot determine a better proxy alternative, use QNetworkProxy.DefaultProxy, which tells the code querying for a proxy to use a higher alternative. For example, if this factory is set to a QNetworkAccessManager object, DefaultProxy will tell it to query the application-level proxy settings.

If this factory is set as the application proxy factory, DefaultProxy and NoProxy will have the same meaning.

QNetworkProxyFactory.setApplicationProxyFactory (QNetworkProxyFactory factory)

The factory argument has it's ownership transferred to Qt.

Sets the application-wide proxy factory to be factory. This function will take ownership of that object and will delete it when necessary.

The application-wide proxy is used as a last-resort when all other proxy selection requests returned QNetworkProxy.DefaultProxy. For example, QTcpSocket objects can have a proxy set with QTcpSocket.setProxy, but if none is set, the proxy factory class set with this function will be queried.

If you set a proxy factory with this function, any application level proxies set with QNetworkProxy.setApplicationProxy will be overridden.

See also QNetworkProxy.setApplicationProxy(), QAbstractSocket.proxy(), and QAbstractSocket.setProxy().

QNetworkProxyFactory.setUseSystemConfiguration (bool enable)

Enables the use of the platform-specific proxy settings, and only those. See systemProxyForQuery() for more information.

Internally, this method (when called with enable set to true) sets an application-wide proxy factory. For this reason, this method is mutually exclusive with setApplicationProxyFactory(): calling setApplicationProxyFactory() overrides the use of the system-wide proxy, and calling setUseSystemConfiguration() overrides any application proxy or proxy factory that was previously set.

Note: See the systemProxyForQuery() documentation for a list of limitations related to the use of system proxies.

This function was introduced in Qt 4.6.

list-of-QNetworkProxy QNetworkProxyFactory.systemProxyForQuery (QNetworkProxyQuery query = QNetworkProxyQuery())

This function takes the query request, query, examines the details of the type of socket or request and returns a list of QNetworkProxy objects that indicate the proxy servers to be used, in order of preference.

This function can be used to determine the platform-specific proxy settings. This function will use the libraries provided by the operating system to determine the proxy for a given connection, if such libraries exist. If they don't, this function will just return a QNetworkProxy of type QNetworkProxy.NoProxy.

On Windows, this function will use the WinHTTP DLL functions. Despite its name, Microsoft suggests using it for all applications that require network connections, not just HTTP. This will respect the proxy settings set on the registry with the proxycfg.exe tool. If those settings are not found, this function will attempt to obtain Internet Explorer's settings and use them.

On MacOS X, this function will obtain the proxy settings using the SystemConfiguration framework from Apple. It will apply the FTP, HTTP and HTTPS proxy configurations for queries that contain the protocol tag "ftp", "http" and "https", respectively. If the SOCKS proxy is enabled in that configuration, this function will use the SOCKS server for all queries. If SOCKS isn't enabled, it will use the HTTPS proxy for all TcpSocket and UrlRequest queries.

On BlackBerry, this function obtains proxy settings for the default configuration using system configuration. The type will be set based on protocol tag "http", "https", "ftp", respectively. By default, it assumes http type. Proxy username and password are also set during the query using system configuration.

On other systems, this function will pick up proxy settings from the "http_proxy" environment variable. This variable must be a URL using one of the following schemes: "http", "socks5" or "socks5h".

Limitations

These are the limitations for the current version of this function. Future versions of Qt may lift some of the limitations listed here.

  • On MacOS X, this function will ignore the Proxy Auto Configuration settings, since it cannot execute the associated ECMAScript code.
  • On Windows platforms, this function may take several seconds to execute depending on the configuration of the user's system.

    \liOn BlackBerry, only UrlRequest and TcpSocket queries are supported. SOCKS is not supported. The proxy credentials are only retrieved for the default configuration.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkproxyquery.html0000644000076500000240000006475612536324520022431 0ustar philstaff00000000000000 QNetworkProxyQuery Class Reference
  Home · All Classes · Modules

QNetworkProxyQuery Class Reference
[
QtNetwork module]

The QNetworkProxyQuery class is used to query the proxy settings for a socket More...

Types

  • enum QueryType { TcpSocket, UdpSocket, TcpServer, UrlRequest }

Methods

  • __init__ (self)
  • __init__ (self, QUrl requestUrl, QueryType type = QNetworkProxyQuery.UrlRequest)
  • __init__ (self, QString hostname, int port, QString protocolTag = QString(), QueryType type = QNetworkProxyQuery.TcpSocket)
  • __init__ (self, int bindPort, QString protocolTag = QString(), QueryType type = QNetworkProxyQuery.TcpServer)
  • __init__ (self, QNetworkConfiguration networkConfiguration, QUrl requestUrl, QueryType queryType = QNetworkProxyQuery.UrlRequest)
  • __init__ (self, QNetworkConfiguration networkConfiguration, QString hostname, int port, QString protocolTag = QString(), QueryType type = QNetworkProxyQuery.TcpSocket)
  • __init__ (self, QNetworkConfiguration networkConfiguration, int bindPort, QString protocolTag = QString(), QueryType type = QNetworkProxyQuery.TcpServer)
  • __init__ (self, QNetworkProxyQuery other)
  • int localPort (self)
  • QNetworkConfiguration networkConfiguration (self)
  • QString peerHostName (self)
  • int peerPort (self)
  • QString protocolTag (self)
  • QueryType queryType (self)
  • setLocalPort (self, int port)
  • setNetworkConfiguration (self, QNetworkConfiguration networkConfiguration)
  • setPeerHostName (self, QString hostname)
  • setPeerPort (self, int port)
  • setProtocolTag (self, QString protocolTag)
  • setQueryType (self, QueryType type)
  • setUrl (self, QUrl url)
  • QUrl url (self)

Special Methods

  • bool __eq__ (self, QNetworkProxyQuery other)
  • bool __ne__ (self, QNetworkProxyQuery other)

Detailed Description

The QNetworkProxyQuery class is used to query the proxy settings for a socket

QNetworkProxyQuery holds the details of a socket being created or request being made. It is used by QNetworkProxy and QNetworkProxyFactory to allow applications to have a more fine-grained control over which proxy servers are used, depending on the details of the query. This allows an application to apply different settings, according to the protocol or destination hostname, for instance.

QNetworkProxyQuery supports the following criteria for selecting the proxy:

  • the type of query
  • the local port number to use
  • the destination host name
  • the destination port number
  • the protocol name, such as "http" or "ftp"
  • the URL being requested

The destination host name is the host in the connection in the case of outgoing connection sockets. It is the hostName parameter passed to QTcpSocket.connectToHost() or the host component of a URL requested with QNetworkRequest.

The destination port number is the requested port to connect to in the case of outgoing sockets, while the local port number is the port the socket wishes to use locally before attempting the external connection. In most cases, the local port number is used by listening sockets only (QTcpSocket) or by datagram sockets (QUdpSocket).

The protocol name is an arbitrary string that indicates the type of connection being attempted. For example, it can match the scheme of a URL, like "http", "https" and "ftp". In most cases, the proxy selection will not change depending on the protocol, but this information is provided in case a better choice can be made, like choosing an caching HTTP proxy for HTTP-based connections, but a more powerful SOCKSv5 proxy for all others.

The network configuration specifies which configuration to use, when bearer management is used. For example on a mobile phone the proxy settings are likely to be different for the cellular network vs WLAN.

Some of the criteria may not make sense in all of the types of query. The following table lists the criteria that are most commonly used, according to the type of query.

Query type Description
TcpSocket Normal sockets requesting a connection to a remote server, like QTcpSocket. The peer hostname and peer port match the values passed to QTcpSocket.connectToHost(). The local port is usually -1, indicating the socket has no preference in which port should be used. The URL component is not used.
UdpSocket Datagram-based sockets, which can both send and receive. The local port, remote host or remote port fields can all be used or be left unused, depending on the characteristics of the socket. The URL component is not used.
TcpServer Passive server sockets that listen on a port and await incoming connections from the network. Normally, only the local port is used, but the remote address could be used in specific circumstances, for example to indicate which remote host a connection is expected from. The URL component is not used.
UrlRequest A more high-level request, such as those coming from QNetworkAccessManager. These requests will inevitably use an outgoing TCP socket, but the this query type is provided to indicate that more detailed information is present in the URL component. For ease of implementation, the URL's host and port are set as the destination address.

It should be noted that any of the criteria may be missing or unknown (an empty QString for the hostname or protocol name, -1 for the port numbers). If that happens, the functions executing the query should make their best guess or apply some implementation-defined default values.


Type Documentation

QNetworkProxyQuery.QueryType

Describes the type of one QNetworkProxyQuery query.

Constant Value Description
QNetworkProxyQuery.TcpSocket 0 a normal, outgoing TCP socket
QNetworkProxyQuery.UdpSocket 1 a datagram-based UDP socket, which could send to multiple destinations
QNetworkProxyQuery.TcpServer 100 a TCP server that listens for incoming connections from the network
QNetworkProxyQuery.UrlRequest 101 a more complex request which involves loading of a URL

See also queryType() and setQueryType().


Method Documentation

QNetworkProxyQuery.__init__ (self)

Constructs a default QNetworkProxyQuery object. By default, the query type will be QNetworkProxyQuery.TcpSocket.

QNetworkProxyQuery.__init__ (self, QUrl requestUrl, QueryType type = QNetworkProxyQuery.UrlRequest)

Constructs a QNetworkProxyQuery with the URL requestUrl and sets the query type to queryType.

See also protocolTag(), peerHostName(), and peerPort().

QNetworkProxyQuery.__init__ (self, QString hostname, int port, QString protocolTag = QString(), QueryType type = QNetworkProxyQuery.TcpSocket)

Constructs a QNetworkProxyQuery of type queryType and sets the protocol tag to be protocolTag. This constructor is suitable for QNetworkProxyQuery.TcpSocket queries, because it sets the peer hostname to hostname and the peer's port number to port.

QNetworkProxyQuery.__init__ (self, int bindPort, QString protocolTag = QString(), QueryType type = QNetworkProxyQuery.TcpServer)

Constructs a QNetworkProxyQuery of type queryType and sets the protocol tag to be protocolTag. This constructor is suitable for QNetworkProxyQuery.TcpSocket queries because it sets the local port number to bindPort.

Note that bindPort is of type quint16 to indicate the exact port number that is requested. The value of -1 (unknown) is not allowed in this context.

See also localPort().

QNetworkProxyQuery.__init__ (self, QNetworkConfiguration networkConfiguration, QUrl requestUrl, QueryType queryType = QNetworkProxyQuery.UrlRequest)

Constructs a QNetworkProxyQuery object that is a copy of other.

QNetworkProxyQuery.__init__ (self, QNetworkConfiguration networkConfiguration, QString hostname, int port, QString protocolTag = QString(), QueryType type = QNetworkProxyQuery.TcpSocket)

Constructs a QNetworkProxyQuery with the URL requestUrl and sets the query type to queryType. The specified networkConfiguration is used to resolve the proxy settings.

This function was introduced in Qt 4.8.

See also protocolTag(), peerHostName(), peerPort(), and networkConfiguration().

QNetworkProxyQuery.__init__ (self, QNetworkConfiguration networkConfiguration, int bindPort, QString protocolTag = QString(), QueryType type = QNetworkProxyQuery.TcpServer)

Constructs a QNetworkProxyQuery of type queryType and sets the protocol tag to be protocolTag. This constructor is suitable for QNetworkProxyQuery.TcpSocket queries, because it sets the peer hostname to hostname and the peer's port number to port. The specified networkConfiguration is used to resolve the proxy settings.

This function was introduced in Qt 4.8.

See also networkConfiguration().

QNetworkProxyQuery.__init__ (self, QNetworkProxyQuery other)

Constructs a QNetworkProxyQuery of type queryType and sets the protocol tag to be protocolTag. This constructor is suitable for QNetworkProxyQuery.TcpSocket queries because it sets the local port number to bindPort. The specified networkConfiguration is used to resolve the proxy settings.

Note that bindPort is of type quint16 to indicate the exact port number that is requested. The value of -1 (unknown) is not allowed in this context.

This function was introduced in Qt 4.8.

See also localPort() and networkConfiguration().

int QNetworkProxyQuery.localPort (self)

Returns the port number of the socket that will accept incoming packets from remote servers or -1 if the port is not known.

See also peerPort(), peerHostName(), and setLocalPort().

QNetworkConfiguration QNetworkProxyQuery.networkConfiguration (self)

Returns the network configuration of the proxy query.

See also setNetworkConfiguration().

QString QNetworkProxyQuery.peerHostName (self)

Returns the host name or IP address being of the outgoing connection being requested, or an empty string if the remote hostname is not known.

If the query type is QNetworkProxyQuery.UrlRequest, this function returns the host component of the URL being requested.

See also peerPort(), localPort(), and setPeerHostName().

int QNetworkProxyQuery.peerPort (self)

Returns the port number for the outgoing request or -1 if the port number is not known.

If the query type is QNetworkProxyQuery.UrlRequest, this function returns the port number of the URL being requested. In general, frameworks will fill in the port number from their default values.

See also peerHostName(), localPort(), and setPeerPort().

QString QNetworkProxyQuery.protocolTag (self)

Returns the protocol tag for this QNetworkProxyQuery object, or an empty QString in case the protocol tag is unknown.

In the case of queries of type QNetworkProxyQuery.UrlRequest, this function returns the value of the scheme component of the URL.

See also setProtocolTag() and url().

QueryType QNetworkProxyQuery.queryType (self)

Returns the query type.

See also setQueryType().

QNetworkProxyQuery.setLocalPort (self, int port)

Sets the port number that the socket wishes to use locally to accept incoming packets from remote servers to port. The local port is most often used with the QNetworkProxyQuery.TcpServer and QNetworkProxyQuery.UdpSocket query types.

Valid values are 0 to 65535 (with 0 indicating that any port number will be acceptable) or -1, which means the local port number is unknown or not applicable.

In some circumstances, for special protocols, it's the local port number can also be used with a query of type QNetworkProxyQuery.TcpSocket. When that happens, the socket is indicating it wishes to use the port number port when connecting to a remote host.

See also localPort(), setPeerPort(), and setPeerHostName().

QNetworkProxyQuery.setNetworkConfiguration (self, QNetworkConfiguration networkConfiguration)

Sets the network configuration component of this QNetworkProxyQuery object to be networkConfiguration. The network configuration can be used to return different proxy settings based on the network in use, for example WLAN vs cellular networks on a mobile phone.

In the case of "user choice" or "service network" configurations, you should first start the QNetworkSession and obtain the active configuration from its properties.

This function was introduced in Qt 4.8.

See also networkConfiguration().

QNetworkProxyQuery.setPeerHostName (self, QString hostname)

Sets the hostname of the outgoing connection being requested to hostname. An empty hostname can be used to indicate that the remote host is unknown.

The peer host name can also be used to indicate the expected source address of an incoming connection in the case of QNetworkProxyQuery.UdpSocket or QNetworkProxyQuery.TcpServer query types.

See also peerHostName(), setPeerPort(), and setLocalPort().

QNetworkProxyQuery.setPeerPort (self, int port)

Sets the requested port number for the outgoing connection to be port. Valid values are 1 to 65535, or -1 to indicate that the remote port number is unknown.

The peer port number can also be used to indicate the expected port number of an incoming connection in the case of QNetworkProxyQuery.UdpSocket or QNetworkProxyQuery.TcpServer query types.

See also peerPort(), setPeerHostName(), and setLocalPort().

QNetworkProxyQuery.setProtocolTag (self, QString protocolTag)

Sets the protocol tag for this QNetworkProxyQuery object to be protocolTag.

The protocol tag is an arbitrary string that indicates which protocol is being talked over the socket, such as "http", "xmpp", "telnet", etc. The protocol tag is used by the backend to return a request that is more specific to the protocol in question: for example, a HTTP connection could be use a caching HTTP proxy server, while all other connections use a more powerful SOCKSv5 proxy server.

See also protocolTag().

QNetworkProxyQuery.setQueryType (self, QueryType type)

Sets the query type of this object to be type.

See also queryType().

QNetworkProxyQuery.setUrl (self, QUrl url)

Sets the URL component of this QNetworkProxyQuery object to be url. Setting the URL will also set the protocol tag, the remote host name and port number. This is done so as to facilitate the implementation of the code that determines the proxy server to be used.

See also url(), peerHostName(), and peerPort().

QUrl QNetworkProxyQuery.url (self)

Returns the URL component of this QNetworkProxyQuery object in case of a query of type QNetworkProxyQuery.UrlRequest.

See also setUrl().

bool QNetworkProxyQuery.__eq__ (self, QNetworkProxyQuery other)

bool QNetworkProxyQuery.__ne__ (self, QNetworkProxyQuery other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkreply.html0000644000076500000240000011627512536324520021307 0ustar philstaff00000000000000 QNetworkReply Class Reference
  Home · All Classes · Modules

QNetworkReply Class Reference
[QtNetwork module]

The QNetworkReply class contains the data and headers for a request sent with QNetworkAccessManager More...

Inherits QIODevice.

Types

  • enum NetworkError { NoError, ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, ..., TemporaryNetworkFailureError }

Methods

Qt Signals


Detailed Description

The QNetworkReply class contains the data and headers for a request sent with QNetworkAccessManager

The QNetworkReply class contains the data and meta data related to a request posted with QNetworkAccessManager. Like QNetworkRequest, it contains a URL and headers (both in parsed and raw form), some information about the reply's state and the contents of the reply itself.

QNetworkReply is a sequential-access QIODevice, which means that once data is read from the object, it no longer kept by the device. It is therefore the application's responsibility to keep this data if it needs to. Whenever more data is received from the network and processed, the readyRead() signal is emitted.

The downloadProgress() signal is also emitted when data is received, but the number of bytes contained in it may not represent the actual bytes received, if any transformation is done to the contents (for example, decompressing and removing the protocol overhead).

Even though QNetworkReply is a QIODevice connected to the contents of the reply, it also emits the uploadProgress() signal, which indicates the progress of the upload for operations that have such content.

Note: Do not delete the object in the slot connected to the error() or finished() signal. Use deleteLater().


Type Documentation

QNetworkReply.NetworkError

Indicates all possible error conditions found during the processing of the request.

Constant Value Description
QNetworkReply.NoError 0 no error condition. Note: When the HTTP protocol returns a redirect no error will be reported. You can check if there is a redirect with the QNetworkRequest.RedirectionTargetAttribute attribute.
QNetworkReply.ConnectionRefusedError 1 the remote server refused the connection (the server is not accepting requests)
QNetworkReply.RemoteHostClosedError 2 the remote server closed the connection prematurely, before the entire reply was received and processed
QNetworkReply.HostNotFoundError 3 the remote host name was not found (invalid hostname)
QNetworkReply.TimeoutError 4 the connection to the remote server timed out
QNetworkReply.OperationCanceledError 5 the operation was canceled via calls to abort() or close() before it was finished.
QNetworkReply.SslHandshakeFailedError 6 the SSL/TLS handshake failed and the encrypted channel could not be established. The sslErrors() signal should have been emitted.
QNetworkReply.TemporaryNetworkFailureError 7 the connection was broken due to disconnection from the network, however the system has initiated roaming to another access point. The request should be resubmitted and will be processed as soon as the connection is re-established.
QNetworkReply.ProxyConnectionRefusedError 101 the connection to the proxy server was refused (the proxy server is not accepting requests)
QNetworkReply.ProxyConnectionClosedError 102 the proxy server closed the connection prematurely, before the entire reply was received and processed
QNetworkReply.ProxyNotFoundError 103 the proxy host name was not found (invalid proxy hostname)
QNetworkReply.ProxyTimeoutError 104 the connection to the proxy timed out or the proxy did not reply in time to the request sent
QNetworkReply.ProxyAuthenticationRequiredError 105 the proxy requires authentication in order to honour the request but did not accept any credentials offered (if any)
QNetworkReply.ContentAccessDenied 201 the access to the remote content was denied (similar to HTTP error 401)
QNetworkReply.ContentOperationNotPermittedError 202 the operation requested on the remote content is not permitted
QNetworkReply.ContentNotFoundError 203 the remote content was not found at the server (similar to HTTP error 404)
QNetworkReply.AuthenticationRequiredError 204 the remote server requires authentication to serve the content but the credentials provided were not accepted (if any)
QNetworkReply.ContentReSendError 205 the request needed to be sent again, but this failed for example because the upload data could not be read a second time.
QNetworkReply.ProtocolUnknownError 301 the Network Access API cannot honor the request because the protocol is not known
QNetworkReply.ProtocolInvalidOperationError 302 the requested operation is invalid for this protocol
QNetworkReply.UnknownNetworkError 99 an unknown network-related error was detected
QNetworkReply.UnknownProxyError 199 an unknown proxy-related error was detected
QNetworkReply.UnknownContentError 299 an unknown error related to the remote content was detected
QNetworkReply.ProtocolFailure 399 a breakdown in protocol was detected (parsing error, invalid or unexpected responses, etc.)

See also error().


Method Documentation

QNetworkReply.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a QNetworkReply object with parent parent.

You cannot directly instantiate QNetworkReply objects. Use QNetworkAccessManager functions to do that.

QNetworkReply.abort (self)

This method is abstract and should be reimplemented in any sub-class.

Aborts the operation immediately and close down any network connections still open. Uploads still in progress are also aborted.

See also close().

QVariant QNetworkReply.attribute (self, QNetworkRequest.Attribute code)

Returns the attribute associated with the code code. If the attribute has not been set, it returns an invalid QVariant (type QVariant.Null).

You can expect the default values listed in QNetworkRequest.Attribute to be applied to the values returned by this function.

See also setAttribute() and QNetworkRequest.Attribute.

QNetworkReply.close (self)

Reimplemented from QIODevice.close().

Closes this device for reading. Unread data is discarded, but the network resources are not discarded until they are finished. In particular, if any upload is in progress, it will continue until it is done.

The finished() signal is emitted when all operations are over and the network resources are freed.

See also abort() and finished().

NetworkError QNetworkReply.error (self)

Returns the error that was found during the processing of this request. If no error was found, returns NoError.

See also setError().

bool QNetworkReply.hasRawHeader (self, QByteArray headerName)

Returns true if the raw header of name headerName was sent by the remote server

See also rawHeader().

QVariant QNetworkReply.header (self, QNetworkRequest.KnownHeaders header)

Returns the value of the known header header, if that header was sent by the remote server. If the header was not sent, returns an invalid QVariant.

See also rawHeader(), setHeader(), and QNetworkRequest.header().

QNetworkReply.ignoreSslErrors (self)

This method is also a Qt slot with the C++ signature void ignoreSslErrors().

If this function is called, SSL errors related to network connection will be ignored, including certificate validation errors.

Warning: Be sure to always let the user inspect the errors reported by the sslErrors() signal, and only call this method upon confirmation from the user that proceeding is ok. If there are unexpected errors, the reply should be aborted. Calling this method without inspecting the actual errors will most likely pose a security risk for your application. Use it with great care!

This function can be called from the slot connected to the sslErrors() signal, which indicates which errors were found.

See also sslConfiguration(), sslErrors(), and QSslSocket.ignoreSslErrors().

QNetworkReply.ignoreSslErrors (self, list-of-QSslError errors)

This is an overloaded function.

If this function is called, the SSL errors given in errors will be ignored.

Note: Because most SSL errors are associated with a certificate, for most of them you must set the expected certificate this SSL error is related to. If, for instance, you want to issue a request to a server that uses a self-signed certificate, consider the following snippet:

 QList<QSslCertificate> cert = QSslCertificate.fromPath(QLatin1String("server-certificate.pem"));
 QSslError error(QSslError.SelfSignedCertificate, cert.at(0));
 QList<QSslError> expectedSslErrors;
 expectedSslErrors.append(error);

 QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("https://server.tld/index.html")));
 reply->ignoreSslErrors(expectedSslErrors);
 // here connect signals etc.

Multiple calls to this function will replace the list of errors that were passed in previous calls. You can clear the list of errors you want to ignore by calling this function with an empty list.

This function was introduced in Qt 4.6.

See also sslConfiguration(), sslErrors(), and QSslSocket.ignoreSslErrors().

bool QNetworkReply.isFinished (self)

Returns true when the reply has finished or was aborted.

This function was introduced in Qt 4.6.

See also isRunning().

bool QNetworkReply.isRunning (self)

Returns true when the request is still processing and the reply has not finished or was aborted yet.

This function was introduced in Qt 4.6.

See also isFinished().

bool QNetworkReply.isSequential (self)

QNetworkAccessManager QNetworkReply.manager (self)

Returns the QNetworkAccessManager that was used to create this QNetworkReply object. Initially, it is also the parent object.

QNetworkAccessManager.Operation QNetworkReply.operation (self)

Returns the operation that was posted for this reply.

See also setOperation().

QByteArray QNetworkReply.rawHeader (self, QByteArray headerName)

Returns the raw contents of the header headerName as sent by the remote server. If there is no such header, returns an empty byte array, which may be indistinguishable from an empty header. Use hasRawHeader() to verify if the server sent such header field.

See also setRawHeader(), hasRawHeader(), and header().

list-of-QByteArray QNetworkReply.rawHeaderList (self)

Returns a list of headers fields that were sent by the remote server, in the order that they were sent. Duplicate headers are merged together and take place of the latter duplicate.

list-of-tuple-of-QByteArray-QByteArray QNetworkReply.rawHeaderPairs (self)

Returns a list of raw header pairs.

int QNetworkReply.readBufferSize (self)

Returns the size of the read buffer, in bytes.

See also setReadBufferSize().

QNetworkRequest QNetworkReply.request (self)

Returns the request that was posted for this reply. In special, note that the URL for the request may be different than that of the reply.

See also QNetworkRequest.url(), url(), and setRequest().

QNetworkReply.setAttribute (self, QNetworkRequest.Attribute code, QVariant value)

Sets the attribute code to have value value. If code was previously set, it will be overridden. If value is an invalid QVariant, the attribute will be unset.

See also attribute() and QNetworkRequest.setAttribute().

QNetworkReply.setError (self, NetworkError errorCode, QString errorString)

Sets the error condition to be errorCode. The human-readable message is set with errorString.

Calling setError() does not emit the error(QNetworkReply.NetworkError) signal.

See also error() and errorString().

QNetworkReply.setFinished (self, bool finished)

Sets the reply as finished.

After having this set the replies data must not change.

This function was introduced in Qt 4.8.

See also finished() and isFinished().

QNetworkReply.setHeader (self, QNetworkRequest.KnownHeaders header, QVariant value)

Sets the known header header to be of value value. The corresponding raw form of the header will be set as well.

See also header(), setRawHeader(), and QNetworkRequest.setHeader().

QNetworkReply.setOperation (self, QNetworkAccessManager.Operation operation)

Sets the associated operation for this object to be operation. This value will be returned by operation().

Note: the operation should be set when this object is created and not changed again.

See also operation() and setRequest().

QNetworkReply.setRawHeader (self, QByteArray headerName, QByteArray value)

Sets the raw header headerName to be of value value. If headerName was previously set, it is overridden. Multiple HTTP headers of the same name are functionally equivalent to one single header with the values concatenated, separated by commas.

If headerName matches a known header, the value value will be parsed and the corresponding parsed form will also be set.

See also rawHeader(), header(), setHeader(), and QNetworkRequest.setRawHeader().

QNetworkReply.setReadBufferSize (self, int size)

Sets the size of the read buffer to be size bytes. The read buffer is the buffer that holds data that is being downloaded off the network, before it is read with QIODevice.read(). Setting the buffer size to 0 will make the buffer unlimited in size.

QNetworkReply will try to stop reading from the network once this buffer is full (i.e., bytesAvailable() returns size or more), thus causing the download to throttle down as well. If the buffer is not limited in size, QNetworkReply will try to download as fast as possible from the network.

Unlike QAbstractSocket.setReadBufferSize(), QNetworkReply cannot guarantee precision in the read buffer size. That is, bytesAvailable() can return more than size.

See also readBufferSize().

QNetworkReply.setRequest (self, QNetworkRequest request)

Sets the associated request for this object to be request. This value will be returned by request().

Note: the request should be set when this object is created and not changed again.

See also request() and setOperation().

QNetworkReply.setSslConfiguration (self, QSslConfiguration configuration)

Sets the SSL configuration for the network connection associated with this request, if possible, to be that of config.

See also sslConfiguration().

QNetworkReply.setUrl (self, QUrl url)

Sets the URL being processed to be url. Normally, the URL matches that of the request that was posted, but for a variety of reasons it can be different (for example, a file path being made absolute or canonical).

See also url(), request(), and QNetworkRequest.url().

QSslConfiguration QNetworkReply.sslConfiguration (self)

Returns the SSL configuration and state associated with this reply, if SSL was used. It will contain the remote server's certificate, its certificate chain leading to the Certificate Authority as well as the encryption ciphers in use.

The peer's certificate and its certificate chain will be known by the time sslErrors() is emitted, if it's emitted.

See also setSslConfiguration().

QUrl QNetworkReply.url (self)

Returns the URL of the content downloaded or uploaded. Note that the URL may be different from that of the original request.

See also request(), setUrl(), and QNetworkRequest.url().

int QNetworkReply.writeData (self, str data)


Qt Signal Documentation

void downloadProgress (qint64,qint64)

This is the default overload of this signal.

This signal is emitted to indicate the progress of the download part of this network request, if there's any. If there's no download associated with this request, this signal will be emitted once with 0 as the value of both bytesReceived and bytesTotal.

The bytesReceived parameter indicates the number of bytes received, while bytesTotal indicates the total number of bytes expected to be downloaded. If the number of bytes to be downloaded is not known, bytesTotal will be -1.

The download is finished when bytesReceived is equal to bytesTotal. At that time, bytesTotal will not be -1.

Note that the values of both bytesReceived and bytesTotal may be different from size(), the total number of bytes obtained through read() or readAll(), or the value of the header(ContentLengthHeader). The reason for that is that there may be protocol overhead or the data may be compressed during the download.

See also uploadProgress() and bytesAvailable().

void error (QNetworkReply::NetworkError)

This is the default overload of this signal.

This signal is emitted when the reply detects an error in processing. The finished() signal will probably follow, indicating that the connection is over.

The code parameter contains the code of the error that was detected. Call errorString() to obtain a textual representation of the error condition.

Note: Do not delete the object in the slot connected to this signal. Use deleteLater().

See also error() and errorString().

void finished ()

This is the default overload of this signal.

This signal is emitted when the reply has finished processing. After this signal is emitted, there will be no more updates to the reply's data or metadata.

Unless close() has been called, the reply will be still be opened for reading, so the data can be retrieved by calls to read() or readAll(). In particular, if no calls to read() were made as a result of readyRead(), a call to readAll() will retrieve the full contents in a QByteArray.

This signal is emitted in tandem with QNetworkAccessManager.finished() where that signal's reply parameter is this object.

Note: Do not delete the object in the slot connected to this signal. Use deleteLater().

You can also use isFinished() to check if a QNetworkReply has finished even before you receive the finished() signal.

See also setFinished(), QNetworkAccessManager.finished(), and isFinished().

void metaDataChanged ()

This is the default overload of this signal.

This signal is emitted whenever the metadata in this reply changes. metadata is any information that is not the content (data) itself, including the network headers. In the majority of cases, the metadata will be known fully by the time the first byte of data is received. However, it is possible to receive updates of headers or other metadata during the processing of the data.

See also header(), rawHeaderList(), rawHeader(), and hasRawHeader().

void sslErrors (const QList<QSslError>&)

This is the default overload of this signal.

This signal is emitted if the SSL/TLS session encountered errors during the set up, including certificate verification errors. The errors parameter contains the list of errors.

To indicate that the errors are not fatal and that the connection should proceed, the ignoreSslErrors() function should be called from the slot connected to this signal. If it is not called, the SSL session will be torn down before any data is exchanged (including the URL).

This signal can be used to display an error message to the user indicating that security may be compromised and display the SSL settings (see sslConfiguration() to obtain it). If the user decides to proceed after analyzing the remote certificate, the slot should call ignoreSslErrors().

See also QSslSocket.sslErrors(), QNetworkAccessManager.sslErrors(), sslConfiguration(), and ignoreSslErrors().

void uploadProgress (qint64,qint64)

This is the default overload of this signal.

This signal is emitted to indicate the progress of the upload part of this network request, if there's any. If there's no upload associated with this request, this signal will not be emitted.

The bytesSent parameter indicates the number of bytes uploaded, while bytesTotal indicates the total number of bytes to be uploaded. If the number of bytes to be uploaded could not be determined, bytesTotal will be -1.

The upload is finished when bytesSent is equal to bytesTotal. At that time, bytesTotal will not be -1.

See also downloadProgress().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworkrequest.html0000644000076500000240000007422512536324520021642 0ustar philstaff00000000000000 QNetworkRequest Class Reference
  Home · All Classes · Modules

QNetworkRequest Class Reference
[QtNetwork module]

The QNetworkRequest class holds a request to be sent with QNetworkAccessManager. More...

Types

  • enum Attribute { HttpStatusCodeAttribute, HttpReasonPhraseAttribute, RedirectionTargetAttribute, ConnectionEncryptedAttribute, ..., UserMax }
  • enum CacheLoadControl { AlwaysNetwork, PreferNetwork, PreferCache, AlwaysCache }
  • enum KnownHeaders { ContentTypeHeader, ContentLengthHeader, LocationHeader, LastModifiedHeader, ..., ContentDispositionHeader }
  • enum LoadControl { Automatic, Manual }
  • enum Priority { HighPriority, NormalPriority, LowPriority }

Methods

Special Methods

  • bool __eq__ (self, QNetworkRequest other)
  • bool __ne__ (self, QNetworkRequest other)

Detailed Description

The QNetworkRequest class holds a request to be sent with QNetworkAccessManager.

QNetworkRequest is part of the Network Access API and is the class holding the information necessary to send a request over the network. It contains a URL and some ancillary information that can be used to modify the request.


Type Documentation

QNetworkRequest.Attribute

Attribute codes for the QNetworkRequest and QNetworkReply.

Attributes are extra meta-data that are used to control the behavior of the request and to pass further information from the reply back to the application. Attributes are also extensible, allowing custom implementations to pass custom values.

The following table explains what the default attribute codes are, the QVariant types associated, the default value if said attribute is missing and whether it's used in requests or replies.

Constant Value Description
QNetworkRequest.HttpStatusCodeAttribute 0 Replies only, type: QVariant.Int (no default) Indicates the HTTP status code received from the HTTP server (like 200, 304, 404, 401, etc.). If the connection was not HTTP-based, this attribute will not be present.
QNetworkRequest.HttpReasonPhraseAttribute 1 Replies only, type: QVariant.ByteArray (no default) Indicates the HTTP reason phrase as received from the HTTP server (like "Ok", "Found", "Not Found", "Access Denied", etc.) This is the human-readable representation of the status code (see above). If the connection was not HTTP-based, this attribute will not be present.
QNetworkRequest.RedirectionTargetAttribute 2 Replies only, type: QVariant.Url (no default) If present, it indicates that the server is redirecting the request to a different URL. The Network Access API does not by default follow redirections: it's up to the application to determine if the requested redirection should be allowed, according to its security policies. The returned URL might be relative. Use QUrl.resolved() to create an absolute URL out of it.
QNetworkRequest.ConnectionEncryptedAttribute 3 Replies only, type: QVariant.Bool (default: false) Indicates whether the data was obtained through an encrypted (secure) connection.
QNetworkRequest.CacheLoadControlAttribute 4 Requests only, type: QVariant.Int (default: QNetworkRequest.PreferNetwork) Controls how the cache should be accessed. The possible values are those of QNetworkRequest.CacheLoadControl. Note that the default QNetworkAccessManager implementation does not support caching. However, this attribute may be used by certain backends to modify their requests (for example, for caching proxies).
QNetworkRequest.CacheSaveControlAttribute 5 Requests only, type: QVariant.Bool (default: true) Controls if the data obtained should be saved to cache for future uses. If the value is false, the data obtained will not be automatically cached. If true, data may be cached, provided it is cacheable (what is cacheable depends on the protocol being used).
QNetworkRequest.SourceIsFromCacheAttribute 6 Replies only, type: QVariant.Bool (default: false) Indicates whether the data was obtained from cache or not.
QNetworkRequest.DoNotBufferUploadDataAttribute 7 Requests only, type: QVariant.Bool (default: false) Indicates whether the QNetworkAccessManager code is allowed to buffer the upload data, e.g. when doing a HTTP POST. When using this flag with sequential upload data, the ContentLengthHeader header must be set.
QNetworkRequest.HttpPipeliningAllowedAttribute 8 Requests only, type: QVariant.Bool (default: false) Indicates whether the QNetworkAccessManager code is allowed to use HTTP pipelining with this request.
QNetworkRequest.HttpPipeliningWasUsedAttribute 9 Replies only, type: QVariant.Bool Indicates whether the HTTP pipelining was used for receiving this reply.
QNetworkRequest.CustomVerbAttribute 10 Requests only, type: QVariant.ByteArray Holds the value for the custom HTTP verb to send (destined for usage of other verbs than GET, POST, PUT and DELETE). This verb is set when calling QNetworkAccessManager.sendCustomRequest().
QNetworkRequest.CookieLoadControlAttribute 11 Requests only, type: QVariant.Int (default: QNetworkRequest.Automatic) Indicates whether to send 'Cookie' headers in the request. This attribute is set to false by QtWebKit when creating a cross-origin XMLHttpRequest where withCredentials has not been set explicitly to true by the Javascript that created the request. See here for more information. (This value was introduced in 4.7.)
QNetworkRequest.CookieSaveControlAttribute 13 Requests only, type: QVariant.Int (default: QNetworkRequest.Automatic) Indicates whether to save 'Cookie' headers received from the server in reply to the request. This attribute is set to false by QtWebKit when creating a cross-origin XMLHttpRequest where withCredentials has not been set explicitly to true by the Javascript that created the request. See here for more information. (This value was introduced in 4.7.)
QNetworkRequest.AuthenticationReuseAttribute 12 Requests only, type: QVariant.Int (default: QNetworkRequest.Automatic) Indicates whether to use cached authorization credentials in the request, if available. If this is set to QNetworkRequest.Manual and the authentication mechanism is 'Basic' or 'Digest', Qt will not send an an 'Authorization' HTTP header with any cached credentials it may have for the request's URL. This attribute is set to QNetworkRequest.Manual by QtWebKit when creating a cross-origin XMLHttpRequest where withCredentials has not been set explicitly to true by the Javascript that created the request. See here for more information. (This value was introduced in 4.7.)
QNetworkRequest.User 1000 Special type. Additional information can be passed in QVariants with types ranging from User to UserMax. The default implementation of Network Access will ignore any request attributes in this range and it will not produce any attributes in this range in replies. The range is reserved for extensions of QNetworkAccessManager.
QNetworkRequest.UserMax 32767 Special type. See User.

This enum was introduced or modified in Qt 4.7.

QNetworkRequest.CacheLoadControl

Controls the caching mechanism of QNetworkAccessManager.

Constant Value Description
QNetworkRequest.AlwaysNetwork 0 always load from network and do not check if the cache has a valid entry (similar to the "Reload" feature in browsers)
QNetworkRequest.PreferNetwork 1 default value; load from the network if the cached entry is older than the network entry
QNetworkRequest.PreferCache 2 load from cache if available, otherwise load from network. Note that this can return possibly stale (but not expired) items from cache.
QNetworkRequest.AlwaysCache 3 only load from cache, indicating error if the item was not cached (i.e., off-line mode)

QNetworkRequest.KnownHeaders

List of known header types that QNetworkRequest parses. Each known header is also represented in raw form with its full HTTP name.

Constant Value Description
QNetworkRequest.ContentTypeHeader 0 corresponds to the HTTP Content-Type header and contains a string containing the media (MIME) type and any auxiliary data (for instance, charset)
QNetworkRequest.ContentLengthHeader 1 corresponds to the HTTP Content-Length header and contains the length in bytes of the data transmitted.
QNetworkRequest.LocationHeader 2 corresponds to the HTTP Location header and contains a URL representing the actual location of the data, including the destination URL in case of redirections.
QNetworkRequest.LastModifiedHeader 3 corresponds to the HTTP Last-Modified header and contains a QDateTime representing the last modification date of the contents
QNetworkRequest.CookieHeader 4 corresponds to the HTTP Cookie header and contains a QList<QNetworkCookie> representing the cookies to be sent back to the server
QNetworkRequest.SetCookieHeader 5 corresponds to the HTTP Set-Cookie header and contains a QList<QNetworkCookie> representing the cookies sent by the server to be stored locally

See also header(), setHeader(), rawHeader(), and setRawHeader().

QNetworkRequest.LoadControl

Indicates if an aspect of the request's loading mechanism has been manually overridden, e.g. by QtWebKit.

Constant Value Description
QNetworkRequest.Automatic 0 default value: indicates default behaviour.
QNetworkRequest.Manual 1 indicates behaviour has been manually overridden.

This enum was introduced or modified in Qt 4.7.

QNetworkRequest.Priority

This enum lists the possible network request priorities.

Constant Value Description
QNetworkRequest.HighPriority 1 High priority
QNetworkRequest.NormalPriority 3 Normal priority
QNetworkRequest.LowPriority 5 Low priority

This enum was introduced or modified in Qt 4.7.


Method Documentation

QNetworkRequest.__init__ (self, QUrl url = QUrl())

Constructs a QNetworkRequest object with url as the URL to be requested.

See also url() and setUrl().

QNetworkRequest.__init__ (self, QNetworkRequest other)

Creates a copy of other.

QVariant QNetworkRequest.attribute (self, Attribute code, QVariant defaultValue = QVariant())

Returns the attribute associated with the code code. If the attribute has not been set, it returns defaultValue.

Note: this function does not apply the defaults listed in QNetworkRequest.Attribute.

See also setAttribute() and QNetworkRequest.Attribute.

bool QNetworkRequest.hasRawHeader (self, QByteArray headerName)

Returns true if the raw header headerName is present in this network request.

See also rawHeader() and setRawHeader().

QVariant QNetworkRequest.header (self, KnownHeaders header)

Returns the value of the known network header header if it is present in this request. If it is not present, returns QVariant() (i.e., an invalid variant).

See also KnownHeaders, rawHeader(), and setHeader().

QObject QNetworkRequest.originatingObject (self)

Returns a reference to the object that initiated this network request; returns 0 if not set or the object has been destroyed.

This function was introduced in Qt 4.6.

See also setOriginatingObject().

Priority QNetworkRequest.priority (self)

Return the priority of this request.

This function was introduced in Qt 4.7.

See also setPriority().

QByteArray QNetworkRequest.rawHeader (self, QByteArray headerName)

Returns the raw form of header headerName. If no such header is present, an empty QByteArray is returned, which may be indistinguishable from a header that is present but has no content (use hasRawHeader() to find out if the header exists or not).

Raw headers can be set with setRawHeader() or with setHeader().

See also header() and setRawHeader().

list-of-QByteArray QNetworkRequest.rawHeaderList (self)

Returns a list of all raw headers that are set in this network request. The list is in the order that the headers were set.

See also hasRawHeader() and rawHeader().

QNetworkRequest.setAttribute (self, Attribute code, QVariant value)

Sets the attribute associated with code code to be value value. If the attribute is already set, the previous value is discarded. In special, if value is an invalid QVariant, the attribute is unset.

See also attribute() and QNetworkRequest.Attribute.

QNetworkRequest.setHeader (self, KnownHeaders header, QVariant value)

Sets the value of the known header header to be value, overriding any previously set headers. This operation also sets the equivalent raw HTTP header.

See also KnownHeaders, setRawHeader(), and header().

QNetworkRequest.setOriginatingObject (self, QObject object)

Allows setting a reference to the object initiating the request.

For example QtWebKit sets the originating object to the QWebFrame that initiated the request.

This function was introduced in Qt 4.6.

See also originatingObject().

QNetworkRequest.setPriority (self, Priority priority)

Set the priority of this request to priority.

Note: The priority is only a hint to the network access manager. It can use it or not. Currently it is used for HTTP to decide which request should be sent first to a server.

This function was introduced in Qt 4.7.

See also priority().

QNetworkRequest.setRawHeader (self, QByteArray headerName, QByteArray value)

Sets the header headerName to be of value headerValue. If headerName corresponds to a known header (see QNetworkRequest.KnownHeaders), the raw format will be parsed and the corresponding "cooked" header will be set as well.

For example:

 request.setRawHeader("Last-Modified", "Sun, 06 Nov 1994 08:49:37 GMT");

will also set the known header LastModifiedHeader to be the QDateTime object of the parsed date.

Note: setting the same header twice overrides the previous setting. To accomplish the behaviour of multiple HTTP headers of the same name, you should concatenate the two values, separating them with a comma (",") and set one single raw header.

See also KnownHeaders, setHeader(), hasRawHeader(), and rawHeader().

QNetworkRequest.setSslConfiguration (self, QSslConfiguration configuration)

Sets this network request's SSL configuration to be config. The settings that apply are the private key, the local certificate, the SSL protocol (SSLv2, SSLv3, TLSv1 where applicable), the CA certificates and the ciphers that the SSL backend is allowed to use.

By default, no SSL configuration is set, which allows the backends to choose freely what configuration is best for them.

See also sslConfiguration() and QSslConfiguration.defaultConfiguration().

QNetworkRequest.setUrl (self, QUrl url)

Sets the URL this network request is referring to to be url.

See also url().

QSslConfiguration QNetworkRequest.sslConfiguration (self)

Returns this network request's SSL configuration. By default, no SSL settings are specified.

See also setSslConfiguration().

QUrl QNetworkRequest.url (self)

Returns the URL this network request is referring to.

See also setUrl().

bool QNetworkRequest.__eq__ (self, QNetworkRequest other)

bool QNetworkRequest.__ne__ (self, QNetworkRequest other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qnetworksession.html0000644000076500000240000010651712536324520021635 0ustar philstaff00000000000000 QNetworkSession Class Reference
  Home · All Classes · Modules

QNetworkSession Class Reference
[QtNetwork module]

The QNetworkSession class provides control over the system's access points and enables session management for cases when multiple clients access the same access point. More...

Inherits QObject.

Types

  • enum SessionError { UnknownSessionError, SessionAbortedError, RoamingError, OperationNotSupportedError, InvalidConfigurationError }
  • enum State { Invalid, NotAvailable, Connecting, Connected, ..., Roaming }

Methods

Qt Signals


Detailed Description

The QNetworkSession class provides control over the system's access points and enables session management for cases when multiple clients access the same access point.

A QNetworkSession enables control over the system's network interfaces. The session's configuration parameter are determined via the QNetworkConfiguration object to which it is bound. Depending on the type of the session (single access point or service network) a session may be linked to one or more network interfaces. By means of opening and closing of network sessions a developer can start and stop the systems network interfaces. If the configuration represents multiple access points (see QNetworkConfiguration.ServiceNetwork) more advanced features such as roaming may be supported.

QNetworkSession supports session management within the same process and depending on the platform's capabilities may support out-of-process sessions. If the same network configuration is used by multiple open sessions the underlying network interface is only terminated once the last session has been closed.

Roaming

Applications may connect to the preferredConfigurationChanged() signal in order to receive notifications when a more suitable access point becomes available. In response to this signal the application must either initiate the roaming via migrate() or ignore() the new access point. Once the session has roamed the newConfigurationActivated() signal is emitted. The application may now test the carrier and must either accept() or reject() it. The session will return to the previous access point if the roaming was rejected. The subsequent state diagram depicts the required state transitions.

Some platforms may distinguish forced roaming and application level roaming (ALR). ALR implies that the application controls (via migrate(), ignore(), accept() and reject()) whether a network session can roam from one access point to the next. Such control is useful if the application maintains stateful socket connections and wants to control the transition from one interface to the next. Forced roaming implies that the system automatically roams to the next network without consulting the application. This has the advantage that the application can make use of roaming features without actually being aware of it. It is expected that the application detects that the underlying socket is broken and automatically reconnects via the new network link.

If the platform supports both modes of roaming, an application indicates its preference by connecting to the preferredConfigurationChanged() signal. Connecting to this signal means that the application wants to take control over the roaming behavior and therefore implies application level roaming. If the client does not connect to the preferredConfigurationChanged(), forced roaming is used. If forced roaming is not supported the network session will not roam by default.

Some applications may want to suppress any form of roaming altogether. Possible use cases may be high priority downloads or remote services which cannot handle a roaming enabled client. Clients can suppress roaming by connecting to the preferredConfigurationChanged() signal and answer each signal emission with ignore().


Type Documentation

QNetworkSession.SessionError

This enum describes the session errors that can occur.

Constant Value Description
QNetworkSession.UnknownSessionError 0 An unidentified error occurred.
QNetworkSession.SessionAbortedError 1 The session was aborted by the user or system.
QNetworkSession.RoamingError 2 The session cannot roam to a new configuration.
QNetworkSession.OperationNotSupportedError 3 The operation is not supported for current configuration.
QNetworkSession.InvalidConfigurationError 4 The operation cannot currently be performed for the current configuration.

QNetworkSession.State

This enum describes the connectivity state of the session. If the session is based on a single access point configuration the state of the session is the same as the state of the associated network interface.

Constant Value Description
QNetworkSession.Invalid 0 The session is invalid due to an invalid configuration. This may happen due to a removed access point or a configuration that was invalid to begin with.
QNetworkSession.NotAvailable 1 The session is based on a defined but not yet discovered QNetworkConfiguration (see QNetworkConfiguration.StateFlag).
QNetworkSession.Connecting 2 The network session is being established.
QNetworkSession.Connected 3 The network session is connected. If the current process wishes to use this session it has to register its interest by calling open(). A network session is considered to be ready for socket operations if it isOpen() and connected.
QNetworkSession.Closing 4 The network session is in the process of being shut down.
QNetworkSession.Disconnected 5 The network session is not connected. The associated QNetworkConfiguration has the state QNetworkConfiguration.Discovered.
QNetworkSession.Roaming 6 The network session is roaming from one access point to another access point.

Method Documentation

QNetworkSession.__init__ (self, QNetworkConfiguration connConfig, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a session based on connectionConfig with the given parent.

See also QNetworkConfiguration.

QNetworkSession.accept (self)

This method is also a Qt slot with the C++ signature void accept().

Instructs the session to permanently accept the new access point. Once this function has been called the session may not return to the old access point.

The old access point may be closed in the process if there are no other network sessions for it. Therefore any open socket that still uses the old access point may become unusable and should be closed before completing the migration.

int QNetworkSession.activeTime (self)

Returns the number of seconds that the session has been active.

int QNetworkSession.bytesReceived (self)

Returns the amount of data received in bytes; otherwise 0.

This field value includes the usage across all open network sessions which use the same network interface.

If the session is based on a service network configuration the number of sent bytes across all active member configurations are returned.

This function may not always be supported on all platforms and returns 0. The platform capability can be detected via QNetworkConfigurationManager.DataStatistics.

Note: On some platforms this function may run the main event loop.

int QNetworkSession.bytesWritten (self)

Returns the amount of data sent in bytes; otherwise 0.

This field value includes the usage across all open network sessions which use the same network interface.

If the session is based on a service network configuration the number of sent bytes across all active member configurations are returned.

This function may not always be supported on all platforms and returns 0. The platform capability can be detected via QNetworkConfigurationManager.DataStatistics.

Note: On some platforms this function may run the main event loop.

QNetworkSession.close (self)

This method is also a Qt slot with the C++ signature void close().

Decreases the session counter on the associated network configuration. If the session counter reaches zero the active network interface is shut down. This also means that state() will only change from Connected to Disconnected if the current session was the last open session.

If the platform does not support out-of-process sessions calling this function does not stop the interface. In this case stop() has to be used to force a shut down. The platform capabilities can be detected via QNetworkConfigurationManager.capabilities().

Note that this call is asynchronous. Depending on the outcome of this call the results can be enquired by connecting to the stateChanged(), opened() or error() signals.

See also open(), stop(), and isOpen().

QNetworkConfiguration QNetworkSession.configuration (self)

Returns the QNetworkConfiguration that this network session object is based on.

See also QNetworkConfiguration.

QNetworkSession.connectNotify (self, SIGNAL() signal)

QNetworkSession.disconnectNotify (self, SIGNAL() signal)

SessionError QNetworkSession.error (self)

Returns the type of error that last occurred.

See also state() and errorString().

QString QNetworkSession.errorString (self)

Returns a human-readable description of the last device error that occurred.

See also error().

QNetworkSession.ignore (self)

This method is also a Qt slot with the C++ signature void ignore().

This function indicates that the application does not wish to roam the session.

See also migrate().

QNetworkInterface QNetworkSession.interface (self)

Returns the network interface that is used by this session.

This function only returns a valid QNetworkInterface when this session is Connected.

The returned interface may change as a result of a roaming process.

Note: this function does not work in Symbian emulator due to the way the connectivity is emulated on Windows.

See also state().

bool QNetworkSession.isOpen (self)

Returns true if this session is open. If the number of all open sessions is greater than zero the underlying network interface will remain connected/up.

The session can be controlled via open() and close().

QNetworkSession.migrate (self)

This method is also a Qt slot with the C++ signature void migrate().

Instructs the session to roam to the new access point. The old access point remains active until the application calls accept().

The newConfigurationActivated() signal is emitted once roaming has been completed.

See also accept().

QNetworkSession.open (self)

This method is also a Qt slot with the C++ signature void open().

Creates an open session which increases the session counter on the underlying network interface. The system will not terminate a network interface until the session reference counter reaches zero. Therefore an open session allows an application to register its use of the interface.

As a result of calling open() the interface will be started if it is not connected/up yet. Some platforms may not provide support for out-of-process sessions. On such platforms the session counter ignores any sessions held by another process. The platform capabilities can be detected via QNetworkConfigurationManager.capabilities().

Note that this call is asynchronous. Depending on the outcome of this call the results can be enquired by connecting to the stateChanged(), opened() or error() signals.

It is not a requirement to open a session in order to monitor the underlying network interface.

See also close(), stop(), and isOpen().

QNetworkSession.reject (self)

This method is also a Qt slot with the C++ signature void reject().

The new access point is not suitable for the application. By calling this function the session returns to the previous access point/configuration. This action may invalidate any socket that has been created via the not desired access point.

See also accept().

QVariant QNetworkSession.sessionProperty (self, QString key)

Returns the value for property key.

A network session can have properties attached which may describe the session in more details. This function can be used to gain access to those properties.

The following property keys are guaranteed to be specified on all platforms:

Key Description
ActiveConfiguration If the session isOpen() this property returns the identifier of the QNetworkConfiguration that is used by this session; otherwise an empty string.

The main purpose of this key is to determine which Internet access point is used if the session is based on a ServiceNetwork. The following code snippet highlights the difference:

 QNetworkConfigurationManager mgr;
 QNetworkConfiguration ap = mgr.defaultConfiguration();
 QNetworkSession *session = new QNetworkSession(ap);
 ... //code activates session

 QString ident = session->sessionProperty("ActiveConfiguration").toString();
 if ( ap.type() == QNetworkConfiguration.ServiceNetwork ) {
     Q_ASSERT( ap.identifier() != ident );
     Q_ASSERT( ap.children().contains( mgr.configurationFromIdentifier(ident) ) );
 } else if ( ap.type() == QNetworkConfiguration.InternetAccessPoint ) {
     Q_ASSERT( ap.identifier() == ident );
 }
UserChoiceConfiguration If the session isOpen() and is bound to a QNetworkConfiguration of type UserChoice, this property returns the identifier of the QNetworkConfiguration that the configuration resolved to when open() was called; otherwise an empty string.

The purpose of this key is to determine the real QNetworkConfiguration that the session is using. This key is different from ActiveConfiguration in that this key may return an identifier for either a service network or a Internet access points configurations, whereas ActiveConfiguration always returns identifiers to Internet access points configurations.

ConnectInBackground Setting this property to true before calling open() implies that the connection attempt is made but if no connection can be established, the user is not connsulted and asked to select a suitable connection. This property is not set by default and support for it depends on the platform.
AutoCloseSessionTimeout If the session requires polling to keep its state up to date, this property holds the timeout in milliseconds before the session will automatically close. If the value of this property is -1 the session will not automatically close. This property is set to -1 by default.

The purpose of this property is to minimize resource use on platforms that use polling to update the state of the session. Applications can set the value of this property to the desired timeout before the session is closed. In response to the closed() signal the network session should be deleted to ensure that all polling is stopped. The session can then be recreated once it is required again. This property has no effect for sessions that do not require polling.

See also setSessionProperty().

QNetworkSession.setSessionProperty (self, QString key, QVariant value)

Sets the property value on the session. The property is identified using key. Removing an already set property can be achieved by passing an invalid QVariant.

Note that the UserChoiceConfiguration and ActiveConfiguration properties are read only and cannot be changed using this method.

See also sessionProperty().

State QNetworkSession.state (self)

Returns the state of the session.

If the session is based on a single access point configuration the state of the session is the same as the state of the associated network interface. Therefore a network session object can be used to monitor network interfaces.

A QNetworkConfiguration.ServiceNetwork based session summarizes the state of all its children and therefore returns the Connected state if at least one of the service network's children() configurations is active.

Note that it is not required to hold an open session in order to obtain the network interface state. A connected but closed session may be used to monitor network interfaces whereas an open and connected session object may prevent the network interface from being shut down.

See also error() and stateChanged().

QNetworkSession.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Invalidates all open sessions against the network interface and therefore stops the underlying network interface. This function always changes the session's state() flag to Disconnected.

On Symbian platform, a 'NetworkControl' capability is required for full interface-level stop (without the capability, only the current session is stopped).

See also open() and close().

bool QNetworkSession.waitForOpened (self, int msecs = 30000)

Waits until the session has been opened, up to msecs milliseconds. If the session has been opened, this function returns true; otherwise it returns false. In the case where it returns false, you can call error() to determine the cause of the error.

The following example waits up to one second for the session to be opened:

 session->open();
 if (session->waitForOpened(1000))
     qDebug("Open!");

If msecs is -1, this function will not time out.

See also open() and error().


Qt Signal Documentation

void closed ()

This is the default overload of this signal.

This signal is emitted when the network session has been closed.

void error (QNetworkSession::SessionError)

This is the default overload of this signal.

This signal is emitted after an error occurred. The error parameter describes the error that occurred.

See also error() and errorString().

void newConfigurationActivated ()

This is the default overload of this signal.

This signal is emitted once the session has roamed to the new access point. The application may reopen its socket and test the suitability of the new network link. Subsequently it must either accept() or reject() the new access point.

See also accept() and reject().

void opened ()

This is the default overload of this signal.

This signal is emitted when the network session has been opened.

The underlying network interface will not be shut down as long as the session remains open. Note that this feature is dependent on system wide session support.

void preferredConfigurationChanged (const QNetworkConfiguration&,bool)

This is the default overload of this signal.

This signal is emitted when the preferred configuration/access point for the session changes. Only sessions which are based on service network configurations may emit this signal. config can be used to determine access point specific details such as proxy settings and isSeamless indicates whether roaming will break the sessions IP address.

As a consequence to this signal the application must either start the roaming process by calling migrate() or choose to ignore() the new access point.

If the roaming process is non-seamless the IP address will change which means that a socket becomes invalid. However seamless mobility can ensure that the local IP address does not change. This is achieved by using a virtual IP address which is bound to the actual link address. During the roaming process the virtual address is attached to the new link address.

Some platforms may support the concept of Forced Roaming and Application Level Roaming (ALR). Forced roaming implies that the platform may simply roam to a new configuration without consulting applications. It is up to the application to detect the link layer loss and reestablish its sockets. In contrast ALR provides the opportunity to prevent the system from roaming. If this session is based on a configuration that supports roaming the application can choose whether it wants to be consulted (ALR use case) by connecting to this signal. For as long as this signal connection remains the session remains registered as a roaming stakeholder; otherwise roaming will be enforced by the platform.

See also migrate(), ignore(), and QNetworkConfiguration.isRoamingAvailable().

void stateChanged (QNetworkSession::State)

This is the default overload of this signal.

This signal is emitted whenever the state of the network session changes. The state parameter is the new state.

See also state().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qobject.html0000644000076500000240000024551612536324470020015 0ustar philstaff00000000000000 QObject Class Reference
  Home · All Classes · Modules

QObject Class Reference
[QtCore module]

The QObject class is the base class of all Qt objects. More...

Inherited by AbstractAudioOutput, Notifier, Effect, MediaController, MediaObject, QAbstractAnimation, QAbstractEventDispatcher, QAbstractItemDelegate, QAbstractItemModel, QAbstractMessageHandler, QAbstractNetworkCache, QAbstractState, QAbstractTextDocumentLayout, QAbstractTransition, QAbstractUriResolver, QAbstractVideoSurface, QAction, QActionGroup, QAssistantClient, QAudioInput, QAudioOutput, QButtonGroup, QClipboard, QCompleter, QCoreApplication, QDataWidgetMapper, QDBusAbstractAdaptor, QDBusAbstractInterface, QDBusPendingCallWatcher, QDBusServiceWatcher, QDeclarativeComponent, QDeclarativeContext, QDeclarativeEngine, QDeclarativeExpression, QDeclarativeExtensionPlugin, QDeclarativePropertyMap, QDesignerFormEditorInterface, QDesignerFormWindowManagerInterface, QDrag, QEventLoop, QExtensionFactory, QExtensionManager, QFileSystemWatcher, QFtp, QGesture, QGLShader, QGLShaderProgram, QGraphicsAnchor, QGraphicsEffect, QGraphicsItemAnimation, QGraphicsObject, QGraphicsScene, QGraphicsTransform, QHelpEngineCore, QHelpSearchEngine, QHttp, QHttpMultiPart, QInputContext, QIODevice, QItemSelectionModel, QLayout, QLibrary, QLocalServer, QMimeData, QMovie, QNetworkAccessManager, QNetworkConfigurationManager, QNetworkCookieJar, QNetworkSession, QObjectCleanupHandler, QPluginLoader, QPyDeclarativePropertyValueSource, QPyDesignerContainerExtension, QPyDesignerCustomWidgetCollectionPlugin, QPyDesignerCustomWidgetPlugin, QPyDesignerMemberSheetExtension, QPyDesignerPropertySheetExtension, QPyDesignerTaskMenuExtension, QPyTextObject, QScriptEngine, QScriptEngineDebugger, QSessionManager, QSettings, QSharedMemory, QShortcut, QSignalMapper, QSocketNotifier, QSound, QSqlDriver, QStyle, QSvgRenderer, QSyntaxHighlighter, QSystemTrayIcon, QTcpServer, QTextDocument, QTextObject, QThread, QThreadPool, QTimeLine, QTimer, QTranslator, QUndoGroup, QUndoStack, QValidator, QWebFrame, QWebHistoryInterface, QWebPage, QWebPluginFactory and QWidget.

Methods

Static Methods

  • bool connect (QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType = Qt.AutoConnection)
  • bool connect (QObject, SIGNAL(), callable, Qt.ConnectionType = Qt.AutoConnection)
  • bool disconnect (QObject, SIGNAL(), QObject, SLOT())
  • bool disconnect (QObject, SIGNAL(), callable)

Special Methods

Qt Signals

Static Members


Detailed Description

The QObject class is the base class of all Qt objects.

QObject is the heart of the Qt Object Model. The central feature in this model is a very powerful mechanism for seamless object communication called signals and slots. You can connect a signal to a slot with connect() and destroy the connection with disconnect(). To avoid never ending notification loops you can temporarily block signals with blockSignals(). The protected functions connectNotify() and disconnectNotify() make it possible to track connections.

QObjects organize themselves in object trees. When you create a QObject with another object as parent, the object will automatically add itself to the parent's children() list. The parent takes ownership of the object; i.e., it will automatically delete its children in its destructor. You can look for an object by name and optionally type using findChild() or findChildren().

Every object has an objectName() and its class name can be found via the corresponding metaObject() (see QMetaObject.className()). You can determine whether the object's class inherits another class in the QObject inheritance hierarchy by using the inherits() function.

When an object is deleted, it emits a destroyed() signal. You can catch this signal to avoid dangling references to QObjects.

QObjects can receive events through event() and filter the events of other objects. See installEventFilter() and eventFilter() for details. A convenience handler, childEvent(), can be reimplemented to catch child events.

Last but not least, QObject provides the basic timer support in Qt; see QTimer for high-level support for timers.

Notice that the Q_OBJECT macro is mandatory for any object that implements signals, slots or properties. You also need to run the Meta Object Compiler on the source file. We strongly recommend the use of this macro in all subclasses of QObject regardless of whether or not they actually use signals, slots and properties, since failure to do so may lead certain functions to exhibit strange behavior.

All Qt widgets inherit QObject. The convenience function isWidgetType() returns whether an object is actually a widget. It is much faster than qobject_cast<QWidget *>(obj) or obj->inherits("QWidget").

Some QObject functions, e.g. children(), return a QObjectList. QObjectList is a typedef for QList<QObject *>.

Thread Affinity

A QObject instance is said to have a thread affinity, or that it lives in a certain thread. When a QObject receives a queued signal or a posted event, the slot or event handler will run in the thread that the object lives in.

Note: If a QObject has no thread affinity (that is, if thread() returns zero), or if it lives in a thread that has no running event loop, then it cannot receive queued signals or posted events.

By default, a QObject lives in the thread in which it is created. An object's thread affinity can be queried using thread() and changed using moveToThread().

All QObjects must live in the same thread as their parent. Consequently:

\lisetParent() will fail if the two QObjects involved live in different threads. \li When a QObject is moved to another thread, all its children will be automatically moved too. \li moveToThread() will fail if the QObject has a parent. \li If QObjects are created within QThread.run(), they cannot become children of the QThread object because the QThread does not live in the thread that calls QThread.run().

Note: A QObject's member variables do not automatically become its children. The parent-child relationship must be set by either passing a pointer to the child's constructor, or by calling setParent(). Without this step, the object's member variables will remain in the old thread when moveToThread() is called.

No copy constructor or assignment operator

QObject has neither a copy constructor nor an assignment operator. This is by design. Actually, they are declared, but in a private section with the macro Q_DISABLE_COPY(). In fact, all Qt classes derived from QObject (direct or indirect) use this macro to declare their copy constructor and assignment operator to be private. The reasoning is found in the discussion on Identity vs Value on the Qt Object Model page.

The main consequence is that you should use pointers to QObject (or to your QObject subclass) where you might otherwise be tempted to use your QObject subclass as a value. For example, without a copy constructor, you can't use a subclass of QObject as the value to be stored in one of the container classes. You must store pointers.

Auto-Connection

Qt's meta-object system provides a mechanism to automatically connect signals and slots between QObject subclasses and their children. As long as objects are defined with suitable object names, and slots follow a simple naming convention, this connection can be performed at run-time by the QMetaObject.connectSlotsByName() function.

uic generates code that invokes this function to enable auto-connection to be performed between widgets on forms created with Qt Designer. More information about using auto-connection with Qt Designer is given in the Using a Designer UI File in Your Application section of the Qt Designer manual.

Dynamic Properties

From Qt 4.2, dynamic properties can be added to and removed from QObject instances at run-time. Dynamic properties do not need to be declared at compile-time, yet they provide the same advantages as static properties and are manipulated using the same API - using property() to read them and setProperty() to write them.

From Qt 4.3, dynamic properties are supported by Qt Designer, and both standard Qt widgets and user-created forms can be given dynamic properties.

Internationalization (i18n)

All QObject subclasses support Qt's translation features, making it possible to translate an application's user interface into different languages.

To make user-visible text translatable, it must be wrapped in calls to the tr() function. This is explained in detail in the Writing Source Code for Translation document.


Method Documentation

QObject.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an object with parent object parent.

The parent of an object may be viewed as the object's owner. For instance, a dialog box is the parent of the OK and Cancel buttons it contains.

The destructor of a parent object destroys all child objects.

Setting parent to 0 constructs an object with no parent. If the object is a widget, it will become a top-level window.

See also parent(), findChild(), and findChildren().

bool QObject.blockSignals (self, bool b)

If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). If block is false, no such blocking will occur.

The return value is the previous value of signalsBlocked().

Note that the destroyed() signal will be emitted even if the signals for this object have been blocked.

See also signalsBlocked().

QObject.childEvent (self, QChildEvent)

This event handler can be reimplemented in a subclass to receive child events. The event is passed in the event parameter.

QEvent.ChildAdded and QEvent.ChildRemoved events are sent to objects when children are added or removed. In both cases you can only rely on the child being a QObject, or if isWidgetType() returns true, a QWidget. (This is because, in the ChildAdded case, the child is not yet fully constructed, and in the ChildRemoved case it might have been destructed already).

QEvent.ChildPolished events are sent to widgets when children are polished, or when polished children are added. If you receive a child polished event, the child's construction is usually completed. However, this is not guaranteed, and multiple polish events may be delivered during the execution of a widget's constructor.

For every child widget, you receive one ChildAdded event, zero or more ChildPolished events, and one ChildRemoved event.

The ChildPolished event is omitted if a child is removed immediately after it is added. If a child is polished several times during construction and destruction, you may receive several child polished events for the same child, each time with a different virtual table.

See also event().

list-of-QObject QObject.children (self)

Returns a list of child objects. The QObjectList class is defined in the <QObject> header file as the following:

 typedef QList<QObject*> QObjectList;

The first child added is the first object in the list and the last child added is the last object in the list, i.e. new children are appended at the end.

Note that the list order changes when QWidget children are raised or lowered. A widget that is raised becomes the last object in the list, and a widget that is lowered becomes the first object in the list.

See also findChild(), findChildren(), parent(), and setParent().

bool QObject.connect (QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType = Qt.AutoConnection)

Creates a connection of the given type from the signal in the sender object to the method in the receiver object. Returns true if the connection succeeds; otherwise returns false.

You must use the SIGNAL() and SLOT() macros when specifying the signal and the method, for example:

 QLabel *label = new QLabel;
 QScrollBar *scrollBar = new QScrollBar;
 QObject.connect(scrollBar, SIGNAL(valueChanged(int)),
                  label,  SLOT(setNum(int)));

This example ensures that the label always displays the current scroll bar value. Note that the signal and slots parameters must not contain any variable names, only the type. E.g. the following would not work and return false:

 // WRONG
 QObject.connect(scrollBar, SIGNAL(valueChanged(int value)),
                  label, SLOT(setNum(int value)));

A signal can also be connected to another signal:

 class MyWidget : public QWidget
 {
     Q_OBJECT

 public:
     MyWidget();

 signals:
     void buttonClicked();

 private:
     QPushButton *myButton;
 };

 MyWidget.MyWidget()
 {
     myButton = new QPushButton(this);
     connect(myButton, SIGNAL(clicked()),
             this, SIGNAL(buttonClicked()));
 }

In this example, the MyWidget constructor relays a signal from a private member variable, and makes it available under a name that relates to MyWidget.

A signal can be connected to many slots and signals. Many signals can be connected to one slot.

If a signal is connected to several slots, the slots are activated in the same order as the order the connection was made, when the signal is emitted.

The function returns true if it successfully connects the signal to the slot. It will return false if it cannot create the connection, for example, if QObject is unable to verify the existence of either signal or method, or if their signatures aren't compatible.

By default, a signal is emitted for every connection you make; two signals are emitted for duplicate connections. You can break all of these connections with a single disconnect() call. If you pass the Qt.UniqueConnection type, the connection will only be made if it is not a duplicate. If there is already a duplicate (exact same signal to the exact same slot on the same objects), the connection will fail and connect will return false.

The optional type parameter describes the type of connection to establish. In particular, it determines whether a particular signal is delivered to a slot immediately or queued for delivery at a later time. If the signal is queued, the parameters must be of types that are known to Qt's meta-object system, because Qt needs to copy the arguments to store them in an event behind the scenes. If you try to use a queued connection and get the error message

 QObject.connect: Cannot queue arguments of type 'MyType'
 (Make sure 'MyType' is registered using qRegisterMetaType().)

call qRegisterMetaType() to register the data type before you establish the connection.

Note: This function is thread-safe.

See also disconnect(), sender(), qRegisterMetaType(), and Q_DECLARE_METATYPE().

bool QObject.connect (QObject, SIGNAL(), callable, Qt.ConnectionType = Qt.AutoConnection)

Creates a connection of the given type from the signal in the sender object to the method in the receiver object. Returns true if the connection succeeds; otherwise returns false.

This function works in the same way as connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt.ConnectionType type) but it uses QMetaMethod to specify signal and method.

This function was introduced in Qt 4.8.

See also connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt.ConnectionType type).

bool QObject.connect (self, QObject, SIGNAL(), SLOT(), Qt.ConnectionType = Qt.AutoConnection)

This function overloads connect().

Connects signal from the sender object to this object's method.

Equivalent to connect(sender, signal, this, method, type).

Every connection you make emits a signal, so duplicate connections emit two signals. You can break a connection using disconnect().

Note: This function is thread-safe.

See also disconnect().

QObject.connectNotify (self, SIGNAL() signal)

This virtual function is called when something has been connected to signal in this object.

If you want to compare signal with a specific signal, use QLatin1String and the SIGNAL() macro as follows:

 if (QLatin1String(signal) == SIGNAL(valueChanged(int))) {
     // signal is valueChanged(int)
 }

If the signal contains multiple parameters or parameters that contain spaces, call QMetaObject.normalizedSignature() on the result of the SIGNAL() macro.

Warning: This function violates the object-oriented principle of modularity. However, it might be useful when you need to perform expensive initialization only if something is connected to a signal.

See also connect() and disconnectNotify().

QObject.customEvent (self, QEvent)

This event handler can be reimplemented in a subclass to receive custom events. Custom events are user-defined events with a type value at least as large as the QEvent.User item of the QEvent.Type enum, and is typically a QEvent subclass. The event is passed in the event parameter.

See also event() and QEvent.

QObject.deleteLater (self)

This method is also a Qt slot with the C++ signature void deleteLater().

Schedules this object for deletion.

The object will be deleted when control returns to the event loop. If the event loop is not running when this function is called (e.g. deleteLater() is called on an object before QCoreApplication.exec()), the object will be deleted once the event loop is started. If deleteLater() is called after the main event loop has stopped, the object will not be deleted. Since Qt 4.8, if deleteLater() is called on an object that lives in a thread with no running event loop, the object will be destroyed when the thread finishes.

Note that entering and leaving a new event loop (e.g., by opening a modal dialog) will not perform the deferred deletion; for the object to be deleted, the control must return to the event loop from which deleteLater() was called.

Note: It is safe to call this function more than once; when the first deferred deletion event is delivered, any pending events for the object are removed from the event queue.

See also destroyed() and QPointer.

bool QObject.disconnect (QObject, SIGNAL(), QObject, SLOT())

Disconnects signal in object sender from method in object receiver. Returns true if the connection is successfully broken; otherwise returns false.

A signal-slot connection is removed when either of the objects involved are destroyed.

disconnect() is typically used in three ways, as the following examples demonstrate.

  1. Disconnect everything connected to an object's signals:
     disconnect(myObject, 0, 0, 0);
    

    equivalent to the non-static overloaded function

     myObject->disconnect();
    
  2. Disconnect everything connected to a specific signal:
     disconnect(myObject, SIGNAL(mySignal()), 0, 0);
    

    equivalent to the non-static overloaded function

     myObject->disconnect(SIGNAL(mySignal()));
    
  3. Disconnect a specific receiver:
     disconnect(myObject, 0, myReceiver, 0);
    

    equivalent to the non-static overloaded function

     myObject->disconnect(myReceiver);
    

0 may be used as a wildcard, meaning "any signal", "any receiving object", or "any slot in the receiving object", respectively.

The sender may never be 0. (You cannot disconnect signals from more than one object in a single call.)

If signal is 0, it disconnects receiver and method from any signal. If not, only the specified signal is disconnected.

If receiver is 0, it disconnects anything connected to signal. If not, slots in objects other than receiver are not disconnected.

If method is 0, it disconnects anything that is connected to receiver. If not, only slots named method will be disconnected, and all other slots are left alone. The method must be 0 if receiver is left out, so you cannot disconnect a specifically-named slot on all objects.

Note: This function is thread-safe.

See also connect().

bool QObject.disconnect (QObject, SIGNAL(), callable)

Disconnects signal in object sender from method in object receiver. Returns true if the connection is successfully broken; otherwise returns false.

This function provides the same possibilities like disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method) but uses QMetaMethod to represent the signal and the method to be disconnected.

Additionally this function returnsfalse and no signals and slots disconnected if:

  1. signal is not a member of sender class or one of its parent classes.
  2. method is not a member of receiver class or one of its parent classes.
  3. signal instance represents not a signal.

QMetaMethod() may be used as wildcard in the meaning "any signal" or "any slot in receiving object". In the same way 0 can be used for receiver in the meaning "any receiving object". In this case method should also be QMetaMethod(). sender parameter should be never 0.

This function was introduced in Qt 4.8.

See also disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method).

QObject.disconnectNotify (self, SIGNAL() signal)

This virtual function is called when something has been disconnected from signal in this object.

See connectNotify() for an example of how to compare signal with a specific signal.

Warning: This function violates the object-oriented principle of modularity. However, it might be useful for optimizing access to expensive resources.

See also disconnect() and connectNotify().

QObject.dumpObjectInfo (self)

Dumps information about signal connections, etc. for this object to the debug output.

This function is useful for debugging, but does nothing if the library has been compiled in release mode (i.e. without debugging information).

See also dumpObjectTree().

QObject.dumpObjectTree (self)

Dumps a tree of children to the debug output.

This function is useful for debugging, but does nothing if the library has been compiled in release mode (i.e. without debugging information).

See also dumpObjectInfo().

list-of-QByteArray QObject.dynamicPropertyNames (self)

Returns the names of all properties that were dynamically added to the object using setProperty().

This function was introduced in Qt 4.2.

QObject.emit (self, SIGNAL(), ...)

bool QObject.event (self, QEvent)

This virtual function receives events to an object and should return true if the event e was recognized and processed.

The event() function can be reimplemented to customize the behavior of an object.

See also installEventFilter(), timerEvent(), QApplication.sendEvent(), QApplication.postEvent(), and QWidget.event().

bool QObject.eventFilter (self, QObject, QEvent)

Filters events if this object has been installed as an event filter for the watched object.

In your reimplementation of this function, if you want to filter the event out, i.e. stop it being handled further, return true; otherwise return false.

Example:

 class MainWindow : public QMainWindow
 {
 public:
     MainWindow();

 protected:
     bool eventFilter(QObject *obj, QEvent *ev);

 private:
     QTextEdit *textEdit;
 };

 MainWindow.MainWindow()
 {
     textEdit = new QTextEdit;
     setCentralWidget(textEdit);

     textEdit->installEventFilter(this);
 }

 bool MainWindow.eventFilter(QObject *obj, QEvent *event)
 {
     if (obj == textEdit) {
         if (event->type() == QEvent.KeyPress) {
             QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
             qDebug() << "Ate key press" << keyEvent->key();
             return true;
         } else {
             return false;
         }
     } else {
         // pass the event on to the parent class
         return QMainWindow.eventFilter(obj, event);
     }
 }

Notice in the example above that unhandled events are passed to the base class's eventFilter() function, since the base class might have reimplemented eventFilter() for its own internal purposes.

Warning: If you delete the receiver object in this function, be sure to return true. Otherwise, Qt will forward the event to the deleted object and the program might crash.

See also installEventFilter().

QObject QObject.findChild (self, type type, QString name = QString())

Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. Omitting the name argument causes all object names to be matched. The search is performed recursively.

If there is more than one child matching the search, the most direct ancestor is returned. If there are several direct ancestors, it is undefined which one will be returned. In that case, findChildren() should be used.

This example returns a child QPushButton of parentWidget named "button1":

 QPushButton *button = parentWidget->findChild<QPushButton *>("button1");

This example returns a QListWidget child of parentWidget:

 QListWidget *list = parentWidget->findChild<QListWidget *>();

See also findChildren().

QObject QObject.findChild (self, tuple types, QString name = QString())

list-of-QObject QObject.findChildren (self, type type, QString name = QString())

Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. Omitting the name argument causes all object names to be matched. The search is performed recursively.

The following example shows how to find a list of child QWidgets of the specified parentWidget named widgetname:

 QList<QWidget *> widgets = parentWidget.findChildren<QWidget *>("widgetname");

This example returns all QPushButtons that are children of parentWidget:

 QList<QPushButton *> allPButtons = parentWidget.findChildren<QPushButton *>();

See also findChild().

list-of-QObject QObject.findChildren (self, tuple types, QString name = QString())

This function overloads findChildren().

Returns the children of this object that can be cast to type T and that have names matching the regular expression regExp, or an empty list if there are no such objects. The search is performed recursively.

list-of-QObject QObject.findChildren (self, type type, QRegExp regExp)

list-of-QObject QObject.findChildren (self, tuple types, QRegExp regExp)

bool QObject.inherits (self, str classname)

Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.

A class is considered to inherit itself.

Example:

 QTimer *timer = new QTimer;         // QTimer inherits QObject
 timer->inherits("QTimer");          // returns true
 timer->inherits("QObject");         // returns true
 timer->inherits("QAbstractButton"); // returns false

 // QVBoxLayout inherits QObject and QLayoutItem
 QVBoxLayout *layout = new QVBoxLayout;
 layout->inherits("QObject");        // returns true
 layout->inherits("QLayoutItem");    // returns true (even though QLayoutItem is not a QObject)

If you need to determine whether an object is an instance of a particular class for the purpose of casting it, consider using qobject_cast<Type *>(object) instead.

See also metaObject() and qobject_cast().

QObject.installEventFilter (self, QObject)

Installs an event filter filterObj on this object. For example:

 monitoredObj->installEventFilter(filterObj);

An event filter is an object that receives all events that are sent to this object. The filter can either stop the event or forward it to this object. The event filter filterObj receives events via its eventFilter() function. The eventFilter() function must return true if the event should be filtered, (i.e. stopped); otherwise it must return false.

If multiple event filters are installed on a single object, the filter that was installed last is activated first.

Here's a KeyPressEater class that eats the key presses of its monitored objects:

 class KeyPressEater : public QObject
 {
     Q_OBJECT
     ...

 protected:
     bool eventFilter(QObject *obj, QEvent *event);
 };

 bool KeyPressEater.eventFilter(QObject *obj, QEvent *event)
 {
     if (event->type() == QEvent.KeyPress) {
         QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
         qDebug("Ate key press %d", keyEvent->key());
         return true;
     } else {
         // standard event processing
         return QObject.eventFilter(obj, event);
     }
 }

And here's how to install it on two widgets:

 KeyPressEater *keyPressEater = new KeyPressEater(this);
 QPushButton *pushButton = new QPushButton(this);
 QListView *listView = new QListView(this);

 pushButton->installEventFilter(keyPressEater);
 listView->installEventFilter(keyPressEater);

The QShortcut class, for example, uses this technique to intercept shortcut key presses.

Warning: If you delete the receiver object in your eventFilter() function, be sure to return true. If you return false, Qt sends the event to the deleted object and the program will crash.

Note that the filtering object must be in the same thread as this object. If filterObj is in a different thread, this function does nothing. If either filterObj or this object are moved to a different thread after calling this function, the event filter will not be called until both objects have the same thread affinity again (it is not removed).

See also removeEventFilter(), eventFilter(), and event().

bool QObject.isWidgetType (self)

Returns true if the object is a widget; otherwise returns false.

Calling this function is equivalent to calling inherits("QWidget"), except that it is much faster.

QObject.killTimer (self, int id)

Kills the timer with timer identifier, id.

The timer identifier is returned by startTimer() when a timer event is started.

See also timerEvent() and startTimer().

QMetaObject QObject.metaObject (self)

Returns a pointer to the meta-object of this object.

A meta-object contains information about a class that inherits QObject, e.g. class name, superclass name, properties, signals and slots. Every QObject subclass that contains the Q_OBJECT macro will have a meta-object.

The meta-object information is required by the signal/slot connection mechanism and the property system. The inherits() function also makes use of the meta-object.

If you have no pointer to an actual object instance but still want to access the meta-object of a class, you can use staticMetaObject.

Example:

 QObject *obj = new QPushButton;
 obj->metaObject()->className();             // returns "QPushButton"

 QPushButton.staticMetaObject.className();  // returns "QPushButton"

See also staticMetaObject.

QObject.moveToThread (self, QThread thread)

Changes the thread affinity for this object and its children. The object cannot be moved if it has a parent. Event processing will continue in the targetThread.

To move an object to the main thread, use QApplication.instance() to retrieve a pointer to the current application, and then use QApplication.thread() to retrieve the thread in which the application lives. For example:

 myObject->moveToThread(QApplication.instance()->thread());

If targetThread is zero, all event processing for this object and its children stops.

Note that all active timers for the object will be reset. The timers are first stopped in the current thread and restarted (with the same interval) in the targetThread. As a result, constantly moving an object between threads can postpone timer events indefinitely.

A QEvent.ThreadChange event is sent to this object just before the thread affinity is changed. You can handle this event to perform any special processing. Note that any new events that are posted to this object will be handled in the targetThread.

Warning: This function is not thread-safe; the current thread must be same as the current thread affinity. In other words, this function can only "push" an object from the current thread to another thread, it cannot "pull" an object from any arbitrary thread to the current thread.

See also thread().

QString QObject.objectName (self)

QObject QObject.parent (self)

Returns a pointer to the parent object.

See also setParent() and children().

QVariant QObject.property (self, str name)

Returns the value of the object's name property.

If no such property exists, the returned variant is invalid.

Information about all available properties is provided through the metaObject() and dynamicPropertyNames().

See also setProperty(), QVariant.isValid(), metaObject(), and dynamicPropertyNames().

QObject.pyqtConfigure (self, object)

int QObject.receivers (self, SIGNAL() signal)

Returns the number of receivers connected to the signal.

Since both slots and signals can be used as receivers for signals, and the same connections can be made many times, the number of receivers is the same as the number of connections made from this signal.

When calling this function, you can use the SIGNAL() macro to pass a specific signal:

 if (receivers(SIGNAL(valueChanged(QByteArray))) > 0) {
     QByteArray data;
     get_the_value(&data);       // expensive operation
     emit valueChanged(data);
 }

As the code snippet above illustrates, you can use this function to avoid emitting a signal that nobody listens to.

Warning: This function violates the object-oriented principle of modularity. However, it might be useful when you need to perform expensive initialization only if something is connected to a signal.

QObject.removeEventFilter (self, QObject)

Removes an event filter object obj from this object. The request is ignored if such an event filter has not been installed.

All event filters for this object are automatically removed when this object is destroyed.

It is always safe to remove an event filter, even during event filter activation (i.e. from the eventFilter() function).

See also installEventFilter(), eventFilter(), and event().

QObject QObject.sender (self)

Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. The pointer is valid only during the execution of the slot that calls this function from this object's thread context.

The pointer returned by this function becomes invalid if the sender is destroyed, or if the slot is disconnected from the sender's signal.

Warning: This function violates the object-oriented principle of modularity. However, getting access to the sender might be useful when many signals are connected to a single slot.

Warning: As mentioned above, the return value of this function is not valid when the slot is called via a Qt.DirectConnection from a thread different from this object's thread. Do not use this function in this type of scenario.

See also senderSignalIndex() and QSignalMapper.

int QObject.senderSignalIndex (self)

Returns the meta-method index of the signal that called the currently executing slot, which is a member of the class returned by sender(). If called outside of a slot activated by a signal, -1 is returned.

For signals with default parameters, this function will always return the index with all parameters, regardless of which was used with connect(). For example, the signal destroyed(QObject *obj = 0) will have two different indexes (with and without the parameter), but this function will always return the index with a parameter. This does not apply when overloading signals with different parameters.

Warning: This function violates the object-oriented principle of modularity. However, getting access to the signal index might be useful when many signals are connected to a single slot.

Warning: The return value of this function is not valid when the slot is called via a Qt.DirectConnection from a thread different from this object's thread. Do not use this function in this type of scenario.

This function was introduced in Qt 4.8.

See also sender(), QMetaObject.indexOfSignal(), and QMetaObject.method().

QObject.setObjectName (self, QString name)

QObject.setParent (self, QObject)

The QObject argument, if not None, causes self to be owned by Qt instead of PyQt.

Makes the object a child of parent.

See also parent() and QWidget.setParent().

bool QObject.setProperty (self, str name, QVariant value)

Sets the value of the object's name property to value.

If the property is defined in the class using Q_PROPERTY then true is returned on success and false otherwise. If the property is not defined using Q_PROPERTY, and therefore not listed in the meta-object, it is added as a dynamic property and false is returned.

Information about all available properties is provided through the metaObject() and dynamicPropertyNames().

Dynamic properties can be queried again using property() and can be removed by setting the property value to an invalid QVariant. Changing the value of a dynamic property causes a QDynamicPropertyChangeEvent to be sent to the object.

Note: Dynamic properties starting with "_q_" are reserved for internal purposes.

See also property(), metaObject(), and dynamicPropertyNames().

bool QObject.signalsBlocked (self)

Returns true if signals are blocked; otherwise returns false.

Signals are not blocked by default.

See also blockSignals().

int QObject.startTimer (self, int interval)

Starts a timer and returns a timer identifier, or returns zero if it could not start a timer.

A timer event will occur every interval milliseconds until killTimer() is called. If interval is 0, then the timer event occurs once every time there are no more window system events to process.

The virtual timerEvent() function is called with the QTimerEvent event parameter class when a timer event occurs. Reimplement this function to get timer events.

If multiple timers are running, the QTimerEvent.timerId() can be used to find out which timer was activated.

Example:

 class MyObject : public QObject
 {
     Q_OBJECT

 public:
     MyObject(QObject *parent = 0);

 protected:
     void timerEvent(QTimerEvent *event);
 };

 MyObject.MyObject(QObject *parent)
     : QObject(parent)
 {
     startTimer(50);     // 50-millisecond timer
     startTimer(1000);   // 1-second timer
     startTimer(60000);  // 1-minute timer
 }

 void MyObject.timerEvent(QTimerEvent *event)
 {
     qDebug() << "Timer ID:" << event->timerId();
 }

Note that QTimer's accuracy depends on the underlying operating system and hardware. Most platforms support an accuracy of 20 milliseconds; some provide more. If Qt is unable to deliver the requested number of timer events, it will silently discard some.

The QTimer class provides a high-level programming interface with single-shot timers and timer signals instead of events. There is also a QBasicTimer class that is more lightweight than QTimer and less clumsy than using timer IDs directly.

See also timerEvent(), killTimer(), and QTimer.singleShot().

QThread QObject.thread (self)

Returns the thread in which the object lives.

See also moveToThread().

QObject.timerEvent (self, QTimerEvent)

This event handler can be reimplemented in a subclass to receive timer events for the object.

QTimer provides a higher-level interface to the timer functionality, and also more general information about timers. The timer event is passed in the event parameter.

See also startTimer(), killTimer(), and event().

QString QObject.tr (self, str sourceText, str disambiguation = None, int n = -1)

Returns a translated version of sourceText, optionally based on a disambiguation string and value of n for strings containing plurals; otherwise returns sourceText itself if no appropriate translated string is available.

Example:

 void MainWindow.createMenus()
 {
     fileMenu = menuBar()->addMenu(tr("&File"));
     ...

If the same sourceText is used in different roles within the same context, an additional identifying string may be passed in disambiguation (0 by default). In Qt 4.4 and earlier, this was the preferred way to pass comments to translators.

Example:

 MyWindow.MyWindow()
 {
     QLabel *senderLabel = new QLabel(tr("Name:"));
     QLabel *recipientLabel = new QLabel(tr("Name:", "recipient"));
     ...

See Writing Source Code for Translation for a detailed description of Qt's translation mechanisms in general, and the Disambiguation section for information on disambiguation.

Warning: This method is reentrant only if all translators are installed before calling this method. Installing or removing translators while performing translations is not supported. Doing so will probably result in crashes or other undesirable behavior.

See also trUtf8(), QApplication.translate(), QTextCodec.setCodecForTr(), and Internationalization with Qt.

QString QObject.trUtf8 (self, str sourceText, str disambiguation = None, int n = -1)

Returns a translated version of sourceText, or QString.fromUtf8(sourceText) if there is no appropriate version. It is otherwise identical to tr(sourceText, disambiguation, n).

Note that using the Utf8 variants of the translation functions is not required if CODECFORTR is already set to UTF-8 in the qmake project file and QTextCodec.setCodecForTr("UTF-8") is used.

Warning: This method is reentrant only if all translators are installed before calling this method. Installing or removing translators while performing translations is not supported. Doing so will probably result in crashes or other undesirable behavior.

Warning: For portability reasons, we recommend that you use escape sequences for specifying non-ASCII characters in string literals to trUtf8(). For example:

 label->setText(tr("F\374r \310lise"));

See also tr(), QApplication.translate(), and Internationalization with Qt.

object QObject.__getattr__ (self, str name)


Qt Signal Documentation

void destroyed (QObject* = 0)

This is the default overload of this signal.

This signal is emitted immediately before the object obj is destroyed, and can not be blocked.

All the objects's children are destroyed immediately after this signal is emitted.

See also deleteLater() and QPointer.


Member Documentation

QMetaObject staticMetaObject

This member should be treated as a constant.

This variable stores the meta-object for the class.

A meta-object contains information about a class that inherits QObject, e.g. class name, superclass name, properties, signals and slots. Every class that contains the Q_OBJECT macro will also have a meta-object.

The meta-object information is required by the signal/slot connection mechanism and the property system. The inherits() function also makes use of the meta-object.

If you have a pointer to an object, you can use metaObject() to retrieve the meta-object associated with that object.

Example:

 QPushButton.staticMetaObject.className();  // returns "QPushButton"

 QObject *obj = new QPushButton;
 obj->metaObject()->className();             // returns "QPushButton"

See also metaObject().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qobjectcleanuphandler.html0000644000076500000240000001206512536324473022715 0ustar philstaff00000000000000 QObjectCleanupHandler Class Reference
  Home · All Classes · Modules

QObjectCleanupHandler Class Reference
[QtCore module]

The QObjectCleanupHandler class watches the lifetime of multiple QObjects. More...

Inherits QObject.

Methods


Detailed Description

The QObjectCleanupHandler class watches the lifetime of multiple QObjects.

A QObjectCleanupHandler is useful whenever you need to know when a number of QObjects that are owned by someone else have been deleted. This is important, for example, when referencing memory in an application that has been allocated in a shared library.

To keep track of some QObjects, create a QObjectCleanupHandler, and add() the objects you are interested in. If you are no longer interested in tracking a particular object, use remove() to remove it from the cleanup handler. If an object being tracked by the cleanup handler gets deleted by someone else it will automatically be removed from the cleanup handler. You can delete all the objects in the cleanup handler with clear(), or by destroying the cleanup handler. isEmpty() returns true if the QObjectCleanupHandler has no objects to keep track of.


Method Documentation

QObjectCleanupHandler.__init__ (self)

Constructs an empty QObjectCleanupHandler.

QObject QObjectCleanupHandler.add (self, QObject object)

Adds object to this cleanup handler and returns the pointer to the object.

See also remove().

QObjectCleanupHandler.clear (self)

Deletes all objects in this cleanup handler. The cleanup handler becomes empty.

See also isEmpty().

bool QObjectCleanupHandler.isEmpty (self)

Returns true if this cleanup handler is empty or if all objects in this cleanup handler have been destroyed; otherwise return false.

See also add(), remove(), and clear().

QObjectCleanupHandler.remove (self, QObject object)

Removes the object from this cleanup handler. The object will not be destroyed.

See also add().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpagesetupdialog-pagesetupdialogoptions.html0000644000076500000240000001607512536324510026502 0ustar philstaff00000000000000 QPageSetupDialog.PageSetupDialogOptions Class Reference
  Home · All Classes · Modules

QPageSetupDialog.PageSetupDialogOptions Class Reference
[QtGui module]

Methods

Special Methods

  • PageSetupDialogOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, PageSetupDialogOptions f)
  • PageSetupDialogOptions __iand__ (self, int mask)
  • int __int__ (self)
  • PageSetupDialogOptions __invert__ (self)
  • PageSetupDialogOptions __ior__ (self, PageSetupDialogOptions f)
  • PageSetupDialogOptions __ixor__ (self, PageSetupDialogOptions f)
  • bool __ne__ (self, PageSetupDialogOptions f)
  • PageSetupDialogOptions __or__ (self, PageSetupDialogOptions f)
  • PageSetupDialogOptions __or__ (self, int f)
  • PageSetupDialogOptions __xor__ (self, PageSetupDialogOptions f)
  • PageSetupDialogOptions __xor__ (self, int f)

Detailed Description


Method Documentation

PageSetupDialogOptions.__init__ (self, PageSetupDialogOptions)

PageSetupDialogOptions.__init__ (self, int)

PageSetupDialogOptions.__init__ (self)

PageSetupDialogOptions PageSetupDialogOptions.__and__ (self, int mask)

int PageSetupDialogOptions.__bool__ (self)

bool PageSetupDialogOptions.__eq__ (self, PageSetupDialogOptions f)

PageSetupDialogOptions PageSetupDialogOptions.__iand__ (self, int mask)

int PageSetupDialogOptions.__int__ (self)

PageSetupDialogOptions PageSetupDialogOptions.__invert__ (self)

PageSetupDialogOptions PageSetupDialogOptions.__ior__ (self, PageSetupDialogOptions f)

PageSetupDialogOptions PageSetupDialogOptions.__ixor__ (self, PageSetupDialogOptions f)

bool PageSetupDialogOptions.__ne__ (self, PageSetupDialogOptions f)

PageSetupDialogOptions PageSetupDialogOptions.__or__ (self, PageSetupDialogOptions f)

PageSetupDialogOptions PageSetupDialogOptions.__or__ (self, int f)

PageSetupDialogOptions PageSetupDialogOptions.__xor__ (self, PageSetupDialogOptions f)

PageSetupDialogOptions PageSetupDialogOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpagesetupdialog.html0000644000076500000240000002332712536324510021711 0ustar philstaff00000000000000 QPageSetupDialog Class Reference
  Home · All Classes · Modules

QPageSetupDialog Class Reference
[QtGui module]

The QPageSetupDialog class provides a configuration dialog for the page-related options on a printer. More...

Inherits QDialog.

Types

Methods


Detailed Description

The QPageSetupDialog class provides a configuration dialog for the page-related options on a printer.

On Windows and Mac OS X the page setup dialog is implemented using the native page setup dialogs.

Note that on Windows and Mac OS X custom paper sizes won't be reflected in the native page setup dialogs. Additionally, custom page margins set on a QPrinter won't show in the native Mac OS X page setup dialog.

In Symbian, there is no support for printing. Hence, this dialog should not be used in Symbian.


Type Documentation

QPageSetupDialog.PageSetupDialogOption

Used to specify options to the page setup dialog

This value is obsolete and does nothing since Qt 4.5:

Constant Value Description
QPageSetupDialog.DontUseSheet 0x00000001 In previous versions of QDialog.exec() the page setup dialog would create a sheet by default if the dialog was given a parent. This is no longer supported from Qt 4.5. If you want to use sheets, use QPageSetupDialog.open() instead.

This enum was introduced or modified in Qt 4.4.

The PageSetupDialogOptions type is a typedef for QFlags<PageSetupDialogOption>. It stores an OR combination of PageSetupDialogOption values.


Method Documentation

QPageSetupDialog.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a page setup dialog that configures printer with parent as the parent widget.

QPageSetupDialog.__init__ (self, QPrinter printer, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a page setup dialog that configures a default-constructed QPrinter with parent as the parent widget.

This function was introduced in Qt 4.5.

See also printer().

QPageSetupDialog.addEnabledOption (self, PageSetupDialogOption option)

PageSetupDialogOptions QPageSetupDialog.enabledOptions (self)

int QPageSetupDialog.exec_ (self)

bool QPageSetupDialog.isOptionEnabled (self, PageSetupDialogOption option)

QPageSetupDialog.open (self)

This is an overloaded function.

Opens the dialog and connects its accepted() signal to the slot specified by receiver and member.

The signal will be disconnected from the slot when the dialog is closed.

This function was introduced in Qt 4.5.

QPageSetupDialog.open (self, QObject receiver, SLOT()SLOT() member)

QPageSetupDialog.open (self, callable receiver)

PageSetupDialogOptions QPageSetupDialog.options (self)

QPrinter QPageSetupDialog.printer (self)

Returns the printer that was passed to the QPageSetupDialog constructor.

QPageSetupDialog.setEnabledOptions (self, PageSetupDialogOptions options)

QPageSetupDialog.setOption (self, PageSetupDialogOption option, bool on = True)

Sets the given option to be enabled if on is true; otherwise, clears the given option.

See also options and testOption().

QPageSetupDialog.setOptions (self, PageSetupDialogOptions options)

bool QPageSetupDialog.testOption (self, PageSetupDialogOption option)

Returns true if the given option is enabled; otherwise, returns false.

See also options and setOption().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpaintdevice.html0000644000076500000240000004015212536324477021036 0ustar philstaff00000000000000 QPaintDevice Class Reference
  Home · All Classes · Modules

QPaintDevice Class Reference
[QtGui module]

The QPaintDevice class is the base class of objects that can be painted. More...

Inherited by QGLFramebufferObject, QGLPixelBuffer, QImage, QPicture, QPixmap, QPrinter, QSvgGenerator and QWidget.

Types

  • enum PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, ..., PdmPhysicalDpiY }

Methods


Detailed Description

The QPaintDevice class is the base class of objects that can be painted.

A paint device is an abstraction of a two-dimensional space that can be drawn using a QPainter. Its default coordinate system has its origin located at the top-left position. X increases to the right and Y increases downwards. The unit is one pixel.

The drawing capabilities of QPaintDevice are currently implemented by the QWidget, QImage, QPixmap, QGLPixelBuffer, QPicture, and QPrinter subclasses.

To implement support for a new backend, you must derive from QPaintDevice and reimplement the virtual paintEngine() function to tell QPainter which paint engine should be used to draw on this particular device. Note that you also must create a corresponding paint engine to be able to draw on the device, i.e derive from QPaintEngine and reimplement its virtual functions.

Warning: Qt requires that a QApplication object exists before any paint devices can be created. Paint devices access window system resources, and these resources are not initialized before an application object is created.

The QPaintDevice class provides several functions returning the various device metrics: The depth() function returns its bit depth (number of bit planes). The height() function returns its height in default coordinate system units (e.g. pixels for QPixmap and QWidget) while heightMM() returns the height of the device in millimeters. Similiarily, the width() and widthMM() functions return the width of the device in default coordinate system units and in millimeters, respectively. Alternatively, the protected metric() function can be used to retrieve the metric information by specifying the desired PaintDeviceMetric as argument.

The logicalDpiX() and logicalDpiY() functions return the horizontal and vertical resolution of the device in dots per inch. The physicalDpiX() and physicalDpiY() functions also return the resolution of the device in dots per inch, but note that if the logical and physical resolution differ, the corresponding QPaintEngine must handle the mapping. Finally, the colorCount() function returns the number of different colors available for the paint device.


Type Documentation

QPaintDevice.PaintDeviceMetric

Describes the various metrics of a paint device.

Constant Value Description
QPaintDevice.PdmWidth 1 The width of the paint device in default coordinate system units (e.g. pixels for QPixmap and QWidget). See also width().
QPaintDevice.PdmHeight 2 The height of the paint device in default coordinate system units (e.g. pixels for QPixmap and QWidget). See also height().
QPaintDevice.PdmWidthMM 3 The width of the paint device in millimeters. See also widthMM().
QPaintDevice.PdmHeightMM 4 The height of the paint device in millimeters. See also heightMM().
QPaintDevice.PdmNumColors 5 The number of different colors available for the paint device. See also colorCount().
QPaintDevice.PdmDepth 6 The bit depth (number of bit planes) of the paint device. See also depth().
QPaintDevice.PdmDpiX 7 The horizontal resolution of the device in dots per inch. See also logicalDpiX().
QPaintDevice.PdmDpiY 8 The vertical resolution of the device in dots per inch. See also logicalDpiY().
QPaintDevice.PdmPhysicalDpiX 9 The horizontal resolution of the device in dots per inch. See also physicalDpiX().
QPaintDevice.PdmPhysicalDpiY 10 The vertical resolution of the device in dots per inch. See also physicalDpiY().

See also metric().


Method Documentation

QPaintDevice.__init__ (self)

Constructs a paint device. This constructor can be invoked only from subclasses of QPaintDevice.

int QPaintDevice.colorCount (self)

Returns the number of different colors available for the paint device. Since this value is an int, it will not be sufficient to represent the number of colors on 32 bit displays, in this case INT_MAX is returned instead.

int QPaintDevice.depth (self)

Returns the bit depth (number of bit planes) of the paint device.

int QPaintDevice.height (self)

Returns the height of the paint device in default coordinate system units (e.g. pixels for QPixmap and QWidget).

See also heightMM().

int QPaintDevice.heightMM (self)

Returns the height of the paint device in millimeters. Due to platform limitations it may not be possible to use this function to determine the actual physical size of a widget on the screen.

See also height().

int QPaintDevice.logicalDpiX (self)

Returns the horizontal resolution of the device in dots per inch, which is used when computing font sizes. For X11, this is usually the same as could be computed from widthMM().

Note that if the logicalDpiX() doesn't equal the physicalDpiX(), the corresponding QPaintEngine must handle the resolution mapping.

See also logicalDpiY() and physicalDpiX().

int QPaintDevice.logicalDpiY (self)

Returns the vertical resolution of the device in dots per inch, which is used when computing font sizes. For X11, this is usually the same as could be computed from heightMM().

Note that if the logicalDpiY() doesn't equal the physicalDpiY(), the corresponding QPaintEngine must handle the resolution mapping.

See also logicalDpiX() and physicalDpiY().

int QPaintDevice.metric (self, PaintDeviceMetric metric)

Returns the metric information for the given paint device metric.

See also PaintDeviceMetric.

int QPaintDevice.numColors (self)

This function is deprecated.

Use colorCount() instead.

Returns the number of different colors available for the paint device. Since this value is an int, it will not be sufficient to represent the number of colors on 32 bit displays, in this case INT_MAX is returned instead.

QPaintEngine QPaintDevice.paintEngine (self)

This method is abstract and should be reimplemented in any sub-class.

Returns a pointer to the paint engine used for drawing on the device.

bool QPaintDevice.paintingActive (self)

Returns true if the device is currently being painted on, i.e. someone has called QPainter.begin() but not yet called QPainter.end() for this device; otherwise returns false.

See also QPainter.isActive().

int QPaintDevice.physicalDpiX (self)

Returns the horizontal resolution of the device in dots per inch. For example, when printing, this resolution refers to the physical printer's resolution. The logical DPI on the other hand, refers to the resolution used by the actual paint engine.

Note that if the physicalDpiX() doesn't equal the logicalDpiX(), the corresponding QPaintEngine must handle the resolution mapping.

See also physicalDpiY() and logicalDpiX().

int QPaintDevice.physicalDpiY (self)

Returns the horizontal resolution of the device in dots per inch. For example, when printing, this resolution refers to the physical printer's resolution. The logical DPI on the other hand, refers to the resolution used by the actual paint engine.

Note that if the physicalDpiY() doesn't equal the logicalDpiY(), the corresponding QPaintEngine must handle the resolution mapping.

See also physicalDpiX() and logicalDpiY().

int QPaintDevice.width (self)

Returns the width of the paint device in default coordinate system units (e.g. pixels for QPixmap and QWidget).

See also widthMM().

int QPaintDevice.widthMM (self)

Returns the width of the paint device in millimeters. Due to platform limitations it may not be possible to use this function to determine the actual physical size of a widget on the screen.

See also width().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpaintengine-dirtyflags.html0000644000076500000240000001410412536324511023175 0ustar philstaff00000000000000 QPaintEngine.DirtyFlags Class Reference
  Home · All Classes · Modules

QPaintEngine.DirtyFlags Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

DirtyFlag may be used whenever DirtyFlags is expected.


Method Documentation

DirtyFlags.__init__ (self, DirtyFlags)

DirtyFlags.__init__ (self, int)

DirtyFlags.__init__ (self)

DirtyFlags DirtyFlags.__and__ (self, int mask)

int DirtyFlags.__bool__ (self)

bool DirtyFlags.__eq__ (self, DirtyFlags f)

DirtyFlags DirtyFlags.__iand__ (self, int mask)

int DirtyFlags.__int__ (self)

DirtyFlags DirtyFlags.__invert__ (self)

DirtyFlags DirtyFlags.__ior__ (self, DirtyFlags f)

DirtyFlags DirtyFlags.__ixor__ (self, DirtyFlags f)

bool DirtyFlags.__ne__ (self, DirtyFlags f)

DirtyFlags DirtyFlags.__or__ (self, DirtyFlags f)

DirtyFlags DirtyFlags.__or__ (self, int f)

DirtyFlags DirtyFlags.__xor__ (self, DirtyFlags f)

DirtyFlags DirtyFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpaintengine-paintenginefeatures.html0000644000076500000240000001560012536324511025067 0ustar philstaff00000000000000 QPaintEngine.PaintEngineFeatures Class Reference
  Home · All Classes · Modules

QPaintEngine.PaintEngineFeatures Class Reference
[QtGui module]

Methods

Special Methods

  • PaintEngineFeatures __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, PaintEngineFeatures f)
  • PaintEngineFeatures __iand__ (self, int mask)
  • int __int__ (self)
  • PaintEngineFeatures __invert__ (self)
  • PaintEngineFeatures __ior__ (self, PaintEngineFeatures f)
  • PaintEngineFeatures __ixor__ (self, PaintEngineFeatures f)
  • bool __ne__ (self, PaintEngineFeatures f)
  • PaintEngineFeatures __or__ (self, PaintEngineFeatures f)
  • PaintEngineFeatures __or__ (self, int f)
  • PaintEngineFeatures __xor__ (self, PaintEngineFeatures f)
  • PaintEngineFeatures __xor__ (self, int f)

Detailed Description

PaintEngineFeature may be used whenever PaintEngineFeatures is expected.


Method Documentation

PaintEngineFeatures.__init__ (self, PaintEngineFeatures)

PaintEngineFeatures.__init__ (self, int)

PaintEngineFeatures.__init__ (self)

PaintEngineFeatures PaintEngineFeatures.__and__ (self, int mask)

int PaintEngineFeatures.__bool__ (self)

bool PaintEngineFeatures.__eq__ (self, PaintEngineFeatures f)

PaintEngineFeatures PaintEngineFeatures.__iand__ (self, int mask)

int PaintEngineFeatures.__int__ (self)

PaintEngineFeatures PaintEngineFeatures.__invert__ (self)

PaintEngineFeatures PaintEngineFeatures.__ior__ (self, PaintEngineFeatures f)

PaintEngineFeatures PaintEngineFeatures.__ixor__ (self, PaintEngineFeatures f)

bool PaintEngineFeatures.__ne__ (self, PaintEngineFeatures f)

PaintEngineFeatures PaintEngineFeatures.__or__ (self, PaintEngineFeatures f)

PaintEngineFeatures PaintEngineFeatures.__or__ (self, int f)

PaintEngineFeatures PaintEngineFeatures.__xor__ (self, PaintEngineFeatures f)

PaintEngineFeatures PaintEngineFeatures.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpaintengine.html0000644000076500000240000007327312536324511021043 0ustar philstaff00000000000000 QPaintEngine Class Reference
  Home · All Classes · Modules

QPaintEngine Class Reference
[QtGui module]

The QPaintEngine class provides an abstract definition of how QPainter draws to a given device on a given platform. More...

Types

  • enum DirtyFlag { DirtyPen, DirtyBrush, DirtyBrushOrigin, DirtyFont, ..., AllDirty }
  • enum PaintEngineFeature { PrimitiveTransform, PatternTransform, PixmapTransform, PatternBrush, ..., AllFeatures }
  • enum PolygonDrawMode { OddEvenMode, WindingMode, ConvexMode, PolylineMode }
  • enum Type { X11, Windows, QuickDraw, CoreGraphics, ..., MaxUser }

Methods


Detailed Description

The QPaintEngine class provides an abstract definition of how QPainter draws to a given device on a given platform.

Qt 4.0 provides several premade implementations of QPaintEngine for the different painter backends we support. We provide one paint engine for each window system and painting framework we support. This includes X11 on Unix/Linux and CoreGraphics on Mac OS X. In addition we provide QPaintEngine implementations for OpenGL (accessible through QGLWidget) and PostScript (accessible through QPSPrinter on X11). Additionally there is a raster-based paint engine that is a fallback for when an engine does not support a certain capability.

If one wants to use QPainter to draw to a different backend, one must subclass QPaintEngine and reimplement all its virtual functions. The QPaintEngine implementation is then made available by subclassing QPaintDevice and reimplementing the virtual function QPaintDevice.paintEngine().

QPaintEngine is created and owned by the QPaintDevice that created it.

The big advantage of the QPaintEngine approach opposed to Qt 3's QPainter/QPaintDevice.cmd() approach is that it is now possible to adapt to multiple technologies on each platform and take advantage of each to the fullest.


Type Documentation

QPaintEngine.DirtyFlag

Constant Value Description
QPaintEngine.DirtyPen 0x0001 The pen is dirty and needs to be updated.
QPaintEngine.DirtyBrush 0x0002 The brush is dirty and needs to be updated.
QPaintEngine.DirtyBrushOrigin 0x0004 The brush origin is dirty and needs to updated.
QPaintEngine.DirtyFont 0x0008 The font is dirty and needs to be updated.
QPaintEngine.DirtyBackground 0x0010 The background is dirty and needs to be updated.
QPaintEngine.DirtyBackgroundMode 0x0020 The background mode is dirty and needs to be updated.
QPaintEngine.DirtyTransform 0x0040 The transform is dirty and needs to be updated.
QPaintEngine.DirtyClipRegion 0x0080 The clip region is dirty and needs to be updated.
QPaintEngine.DirtyClipPath 0x0100 The clip path is dirty and needs to be updated.
QPaintEngine.DirtyHints 0x0200 The render hints is dirty and needs to be updated.
QPaintEngine.DirtyCompositionMode 0x0400 The composition mode is dirty and needs to be updated.
QPaintEngine.DirtyClipEnabled 0x0800 Whether clipping is enabled or not is dirty and needs to be updated.
QPaintEngine.DirtyOpacity 0x1000 The constant opacity has changed and needs to be updated as part of the state change in QPaintEngine.updateState().
QPaintEngine.AllDirty 0xffff Convenience enum used internally.

These types are used by QPainter to trigger lazy updates of the various states in the QPaintEngine using QPaintEngine.updateState().

A paint engine must update every dirty state.

The DirtyFlags type is a typedef for QFlags<DirtyFlag>. It stores an OR combination of DirtyFlag values.

QPaintEngine.PaintEngineFeature

This enum is used to describe the features or capabilities that the paint engine has. If a feature is not supported by the engine, QPainter will do a best effort to emulate that feature through other means and pass on an alpha blended QImage to the engine with the emulated results. Some features cannot be emulated: AlphaBlend and PorterDuff.

Constant Value Description
QPaintEngine.AlphaBlend 0x00000080 The engine can alpha blend primitives.
QPaintEngine.Antialiasing 0x00000400 The engine can use antialising to improve the appearance of rendered primitives.
QPaintEngine.BlendModes 0x00008000 The engine supports blending modes.
QPaintEngine.BrushStroke 0x00000800 The engine supports drawing strokes that contain brushes as fills, not just solid colors (e.g. a dashed gradient line of width 2).
QPaintEngine.ConicalGradientFill 0x00000040 The engine supports conical gradient fills.
QPaintEngine.ConstantOpacity 0x00001000 The engine supports the feature provided by QPainter.setOpacity().
QPaintEngine.LinearGradientFill 0x00000010 The engine supports linear gradient fills.
QPaintEngine.MaskedBrush 0x00002000 The engine is capable of rendering brushes that has a texture with an alpha channel or a mask.
QPaintEngine.ObjectBoundingModeGradients 0x00010000 The engine has native support for gradients with coordinate mode QGradient.ObjectBoundingMode. Otherwise, if QPaintEngine.PatternTransform is supported, object bounding mode gradients are converted to gradients with coordinate mode QGradient.LogicalMode and a brush transform for the coordinate mapping.
QPaintEngine.PainterPaths 0x00000200 The engine has path support.
QPaintEngine.PaintOutsidePaintEvent 0x20000000 The engine is capable of painting outside of paint events.
QPaintEngine.PatternBrush 0x00000008 The engine is capable of rendering brushes with the brush patterns specified in Qt.BrushStyle.
QPaintEngine.PatternTransform 0x00000002 The engine has support for transforming brush patterns.
QPaintEngine.PerspectiveTransform 0x00004000 The engine has support for performing perspective transformations on primitives.
QPaintEngine.PixmapTransform 0x00000004 The engine can transform pixmaps, including rotation and shearing.
QPaintEngine.PorterDuff 0x00000100 The engine supports Porter-Duff operations
QPaintEngine.PrimitiveTransform 0x00000001 The engine has support for transforming drawing primitives.
QPaintEngine.RadialGradientFill 0x00000020 The engine supports radial gradient fills.
QPaintEngine.RasterOpModes 0x00020000 The engine supports bitwise raster operations.
QPaintEngine.AllFeatures 0xffffffff All of the above features. This enum value is usually used as a bit mask.

The PaintEngineFeatures type is a typedef for QFlags<PaintEngineFeature>. It stores an OR combination of PaintEngineFeature values.

QPaintEngine.PolygonDrawMode

Constant Value Description
QPaintEngine.OddEvenMode 0 The polygon should be drawn using OddEven fill rule.
QPaintEngine.WindingMode 1 The polygon should be drawn using Winding fill rule.
QPaintEngine.ConvexMode 2 The polygon is a convex polygon and can be drawn using specialized algorithms where available.
QPaintEngine.PolylineMode 3 Only the outline of the polygon should be drawn.

QPaintEngine.Type

Constant Value Description
QPaintEngine.X11 0  
QPaintEngine.Windows 1  
QPaintEngine.MacPrinter 4  
QPaintEngine.CoreGraphics 3 Mac OS X's Quartz2D (CoreGraphics)
QPaintEngine.QuickDraw 2 Mac OS X's QuickDraw
QPaintEngine.QWindowSystem 5 Qt for Embedded Linux
QPaintEngine.PostScript 6  
QPaintEngine.OpenGL 7  
QPaintEngine.Picture 8 QPicture format
QPaintEngine.SVG 9 Scalable Vector Graphics XML format
QPaintEngine.Raster 10  
QPaintEngine.Direct3D 11 Windows only, Direct3D based engine
QPaintEngine.Pdf 12 Portable Document Format
QPaintEngine.OpenVG 13  
QPaintEngine.User 50 First user type ID
QPaintEngine.MaxUser 100 Last user type ID
QPaintEngine.OpenGL2 14  
QPaintEngine.PaintBuffer 15  
QPaintEngine.Blitter 16  

Method Documentation

QPaintEngine.__init__ (self, PaintEngineFeatures features = 0)

Creates a paint engine with the featureset specified by caps.

bool QPaintEngine.begin (self, QPaintDevice pdev)

This method is abstract and should be reimplemented in any sub-class.

Reimplement this function to initialise your paint engine when painting is to start on the paint device pdev. Return true if the initialization was successful; otherwise return false.

See also end() and isActive().

QPaintEngine.drawEllipse (self, QRectF r)

Reimplement this function to draw the largest ellipse that can be contained within rectangle rect.

The default implementation calls drawPolygon().

QPaintEngine.drawEllipse (self, QRect r)

The default implementation of this function calls the floating point version of this function

QPaintEngine.drawImage (self, QRectF r, QImage pm, QRectF sr, Qt.ImageConversionFlags flags = Qt.AutoColor)

Reimplement this function to draw the part of the image specified by the sr rectangle in the given rectangle using the given conversion flags flags, to convert it to a pixmap.

QPaintEngine.drawLines (self, QLine lines)

The default implementation splits the list of lines in lines into lineCount separate calls to drawPath() or drawPolygon() depending on the feature set of the paint engine.

QPaintEngine.drawLines (self, QLineF lines)

This is an overloaded function.

The default implementation converts the first lineCount lines in lines to a QLineF and calls the floating point version of this function.

QPaintEngine.drawPath (self, QPainterPath path)

The default implementation ignores the path and does nothing.

QPaintEngine.drawPixmap (self, QRectF r, QPixmap pm, QRectF sr)

This method is abstract and should be reimplemented in any sub-class.

Reimplement this function to draw the part of the pm specified by the sr rectangle in the given r.

QPaintEngine.drawPoints (self, QPointF points)

Draws the first pointCount points in the buffer points

QPaintEngine.drawPoints (self, QPoint points)

Draws the first pointCount points in the buffer points

The default implementation converts the first pointCount QPoints in points to QPointFs and calls the floating point version of drawPoints.

QPaintEngine.drawPolygon (self, QPointF points, PolygonDrawMode mode)

Reimplement this virtual function to draw the polygon defined by the pointCount first points in points, using mode mode.

Note: At least one of the drawPolygon() functions must be reimplemented.

QPaintEngine.drawPolygon (self, QPoint points, PolygonDrawMode mode)

This is an overloaded function.

Reimplement this virtual function to draw the polygon defined by the pointCount first points in points, using mode mode.

Note: At least one of the drawPolygon() functions must be reimplemented.

QPaintEngine.drawRects (self, QRect rects)

Draws the first rectCount rectangles in the buffer rects. The default implementation of this function calls drawPath() or drawPolygon() depending on the feature set of the paint engine.

QPaintEngine.drawRects (self, QRectF rects)

This is an overloaded function.

The default implementation converts the first rectCount rectangles in the buffer rects to a QRectF and calls the floating point version of this function.

QPaintEngine.drawTextItem (self, QPointF p, QTextItem textItem)

This function draws the text item textItem at position p. The default implementation of this function converts the text to a QPainterPath and paints the resulting path.

QPaintEngine.drawTiledPixmap (self, QRectF r, QPixmap pixmap, QPointF s)

Reimplement this function to draw the pixmap in the given rect, starting at the given p. The pixmap will be drawn repeatedly until the rect is filled.

bool QPaintEngine.end (self)

This method is abstract and should be reimplemented in any sub-class.

Reimplement this function to finish painting on the current paint device. Return true if painting was finished successfully; otherwise return false.

See also begin() and isActive().

bool QPaintEngine.hasFeature (self, PaintEngineFeatures feature)

Returns true if the paint engine supports the specified feature; otherwise returns false.

bool QPaintEngine.isActive (self)

Returns true if the paint engine is actively drawing; otherwise returns false.

See also setActive().

QPaintDevice QPaintEngine.paintDevice (self)

Returns the device that this engine is painting on, if painting is active; otherwise returns 0.

QPainter QPaintEngine.painter (self)

Returns the paint engine's painter.

QPaintEngine.setActive (self, bool newState)

Sets the active state of the paint engine to state.

See also isActive().

QPaintEngine.setPaintDevice (self, QPaintDevice device)

Type QPaintEngine.type (self)

This method is abstract and should be reimplemented in any sub-class.

Reimplement this function to return the paint engine Type.

QPaintEngine.updateState (self, QPaintEngineState state)

This method is abstract and should be reimplemented in any sub-class.

Reimplement this function to update the state of a paint engine.

When implemented, this function is responsible for checking the paint engine's current state and update the properties that are changed. Use the QPaintEngineState.state() function to find out which properties that must be updated, then use the corresponding get function to retrieve the current values for the given properties.

See also QPaintEngineState.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpaintenginestate.html0000644000076500000240000004262312536324511022077 0ustar philstaff00000000000000 QPaintEngineState Class Reference
  Home · All Classes · Modules

QPaintEngineState Class Reference
[QtGui module]

The QPaintEngineState class provides information about the active paint engine's current state. More...

Methods


Detailed Description

The QPaintEngineState class provides information about the active paint engine's current state.

QPaintEngineState records which properties that have changed since the last time the paint engine was updated, as well as their current value.

Which properties that have changed can at any time be retrieved using the state() function. This function returns an instance of the QPaintEngine.DirtyFlags type which stores an OR combination of QPaintEngine.DirtyFlag values. The QPaintEngine.DirtyFlag enum defines whether a property has changed since the last update or not.

If a property is marked with a dirty flag, its current value can be retrieved using the corresponding get function:

Property Flag Current Property Value
QPaintEngine.DirtyBackground backgroundBrush()
QPaintEngine.DirtyBackgroundMode backgroundMode()
QPaintEngine.DirtyBrush brush()
QPaintEngine.DirtyBrushOrigin brushOrigin()
QPaintEngine.DirtyClipRegion or QPaintEngine.DirtyClipPath clipOperation()
QPaintEngine.DirtyClipPath clipPath()
QPaintEngine.DirtyClipRegion clipRegion()
QPaintEngine.DirtyCompositionMode compositionMode()
QPaintEngine.DirtyFont font()
QPaintEngine.DirtyTransform transform()
QPaintEngine.DirtyClipEnabled isClipEnabled()
QPaintEngine.DirtyPen pen()
QPaintEngine.DirtyHints renderHints()

The QPaintEngineState class also provide the painter() function which returns a pointer to the painter that is currently updating the paint engine.

An instance of this class, representing the current state of the active paint engine, is passed as argument to the QPaintEngine.updateState() function. The only situation in which you will have to use this class directly is when implementing your own paint engine.


Method Documentation

QPaintEngineState.__init__ (self)

QPaintEngineState.__init__ (self, QPaintEngineState)

QBrush QPaintEngineState.backgroundBrush (self)

Returns the background brush in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyBackground flag.

See also state() and QPaintEngine.updateState().

Qt.BGMode QPaintEngineState.backgroundMode (self)

Returns the background mode in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyBackgroundMode flag.

See also state() and QPaintEngine.updateState().

QBrush QPaintEngineState.brush (self)

Returns the brush in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyBrush flag.

See also state() and QPaintEngine.updateState().

bool QPaintEngineState.brushNeedsResolving (self)

Returns whether the coordinate of the fill have been specified as bounded by the current rendering operation and have to be resolved (about the currently rendered primitive).

This function was introduced in Qt 4.3.

QPointF QPaintEngineState.brushOrigin (self)

Returns the brush origin in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyBrushOrigin flag.

See also state() and QPaintEngine.updateState().

Qt.ClipOperation QPaintEngineState.clipOperation (self)

Returns the clip operation in the current paint engine state.

This variable should only be used when the state() returns a combination which includes either the QPaintEngine.DirtyClipPath or the QPaintEngine.DirtyClipRegion flag.

See also state() and QPaintEngine.updateState().

QPainterPath QPaintEngineState.clipPath (self)

Returns the clip path in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyClipPath flag.

See also state() and QPaintEngine.updateState().

QRegion QPaintEngineState.clipRegion (self)

Returns the clip region in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyClipRegion flag.

See also state() and QPaintEngine.updateState().

QPainter.CompositionMode QPaintEngineState.compositionMode (self)

Returns the composition mode in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyCompositionMode flag.

See also state() and QPaintEngine.updateState().

QFont QPaintEngineState.font (self)

Returns the font in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyFont flag.

See also state() and QPaintEngine.updateState().

bool QPaintEngineState.isClipEnabled (self)

Returns whether clipping is enabled or not in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyClipEnabled flag.

See also state() and QPaintEngine.updateState().

QMatrix QPaintEngineState.matrix (self)

float QPaintEngineState.opacity (self)

Returns the opacity in the current paint engine state.

This function was introduced in Qt 4.2.

QPainter QPaintEngineState.painter (self)

Returns a pointer to the painter currently updating the paint engine.

QPen QPaintEngineState.pen (self)

Returns the pen in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyPen flag.

See also state() and QPaintEngine.updateState().

bool QPaintEngineState.penNeedsResolving (self)

Returns whether the coordinate of the stroke have been specified as bounded by the current rendering operation and have to be resolved (about the currently rendered primitive).

This function was introduced in Qt 4.3.

QPainter.RenderHints QPaintEngineState.renderHints (self)

Returns the render hints in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyHints flag.

See also state() and QPaintEngine.updateState().

QPaintEngine.DirtyFlags QPaintEngineState.state (self)

Returns a combination of flags identifying the set of properties that need to be updated when updating the paint engine's state (i.e. during a call to the QPaintEngine.updateState() function).

See also QPaintEngine.updateState().

QTransform QPaintEngineState.transform (self)

Returns the matrix in the current paint engine state.

This variable should only be used when the state() returns a combination which includes the QPaintEngine.DirtyTransform flag.

This function was introduced in Qt 4.3.

See also state() and QPaintEngine.updateState().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpainter-pixmapfragment.html0000644000076500000240000001533212536324511023214 0ustar philstaff00000000000000 QPainter.PixmapFragment Class Reference
  Home · All Classes · Modules

QPainter.PixmapFragment Class Reference
[QtGui module]

This class is used in conjunction with the QPainter.drawPixmapFragments() function to specify how a pixmap, or sub-rect of a pixmap, is drawn. More...

Methods

Static Methods

  • PixmapFragment create (QPointF pos, QRectF sourceRect, float scaleX = 1, float scaleY = 1, float rotation = 0, float opacity = 1)

Members


Detailed Description

This class is used in conjunction with the QPainter.drawPixmapFragments() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.

The sourceLeft, sourceTop, width and height variables are used as a source rectangle within the pixmap passed into the QPainter.drawPixmapFragments() function. The variables x, y, width and height are used to calculate the target rectangle that is drawn. x and y denotes the center of the target rectangle. The width and height in the target rectangle is scaled by the scaleX and scaleY values. The resulting target rectangle is then rotated rotation degrees around the x, y center point.


Method Documentation

PixmapFragment.__init__ (self)

PixmapFragment.__init__ (self, PixmapFragment)

PixmapFragment PixmapFragment.create (QPointF pos, QRectF sourceRect, float scaleX = 1, float scaleY = 1, float rotation = 0, float opacity = 1)

This is a convenience function that returns a QPainter.PixmapFragment that is initialized with the pos, sourceRect, scaleX, scaleY, rotation, opacity parameters.

This function was introduced in Qt 4.7.


Member Documentation

float height

This variable holds the height of the source rectangle and is used to calculate the height of the target rectangle.

float opacity

This variable holds the opacity of the target rectangle, where 0.0 is fully transparent and 1.0 is fully opaque.

float rotation

This variable holds the rotation of the target rectangle in degrees. The target rectangle is rotated after it has been scaled.

float scaleX

This variable holds the horizontal scale of the target rectangle.

float scaleY

This variable holds the vertical scale of the target rectangle.

float sourceLeft

This variable holds the left coordinate of the source rectangle.

float sourceTop

This variable holds the top coordinate of the source rectangle.

float width

This variable holds the width of the source rectangle and is used to calculate the width of the target rectangle.

float x

This variable holds the x coordinate of center point in the target rectangle.

float y

This variable holds the y coordinate of the center point in the target rectangle.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpainter-pixmapfragmenthints.html0000644000076500000240000001504512536324511024263 0ustar philstaff00000000000000 QPainter.PixmapFragmentHints Class Reference
  Home · All Classes · Modules

QPainter.PixmapFragmentHints Class Reference
[
QtGui module]

Methods

Special Methods

  • PixmapFragmentHints __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, PixmapFragmentHints f)
  • PixmapFragmentHints __iand__ (self, int mask)
  • int __int__ (self)
  • PixmapFragmentHints __invert__ (self)
  • PixmapFragmentHints __ior__ (self, PixmapFragmentHints f)
  • PixmapFragmentHints __ixor__ (self, PixmapFragmentHints f)
  • bool __ne__ (self, PixmapFragmentHints f)
  • PixmapFragmentHints __or__ (self, PixmapFragmentHints f)
  • PixmapFragmentHints __or__ (self, int f)
  • PixmapFragmentHints __xor__ (self, PixmapFragmentHints f)
  • PixmapFragmentHints __xor__ (self, int f)

Detailed Description


Method Documentation

PixmapFragmentHints.__init__ (self, PixmapFragmentHints)

PixmapFragmentHints.__init__ (self, int)

PixmapFragmentHints.__init__ (self)

PixmapFragmentHints PixmapFragmentHints.__and__ (self, int mask)

int PixmapFragmentHints.__bool__ (self)

bool PixmapFragmentHints.__eq__ (self, PixmapFragmentHints f)

PixmapFragmentHints PixmapFragmentHints.__iand__ (self, int mask)

int PixmapFragmentHints.__int__ (self)

PixmapFragmentHints PixmapFragmentHints.__invert__ (self)

PixmapFragmentHints PixmapFragmentHints.__ior__ (self, PixmapFragmentHints f)

PixmapFragmentHints PixmapFragmentHints.__ixor__ (self, PixmapFragmentHints f)

bool PixmapFragmentHints.__ne__ (self, PixmapFragmentHints f)

PixmapFragmentHints PixmapFragmentHints.__or__ (self, PixmapFragmentHints f)

PixmapFragmentHints PixmapFragmentHints.__or__ (self, int f)

PixmapFragmentHints PixmapFragmentHints.__xor__ (self, PixmapFragmentHints f)

PixmapFragmentHints PixmapFragmentHints.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpainter-renderhints.html0000644000076500000240000001402012536324511022510 0ustar philstaff00000000000000 QPainter.RenderHints Class Reference
  Home · All Classes · Modules

QPainter.RenderHints Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

RenderHint may be used whenever RenderHints is expected.


Method Documentation

RenderHints.__init__ (self, RenderHints)

RenderHints.__init__ (self, int)

RenderHints.__init__ (self)

RenderHints RenderHints.__and__ (self, int mask)

int RenderHints.__bool__ (self)

bool RenderHints.__eq__ (self, RenderHints f)

RenderHints RenderHints.__iand__ (self, int mask)

int RenderHints.__int__ (self)

RenderHints RenderHints.__invert__ (self)

RenderHints RenderHints.__ior__ (self, RenderHints f)

RenderHints RenderHints.__ixor__ (self, RenderHints f)

bool RenderHints.__ne__ (self, RenderHints f)

RenderHints RenderHints.__or__ (self, RenderHints f)

RenderHints RenderHints.__or__ (self, int f)

RenderHints RenderHints.__xor__ (self, RenderHints f)

RenderHints RenderHints.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpainter.html0000644000076500000240000053767212536324511020214 0ustar philstaff00000000000000 QPainter Class Reference
  Home · All Classes · Modules

QPainter Class Reference
[QtGui module]

The QPainter class performs low-level painting on widgets and other paint devices. More...

Inherited by QStylePainter.

Types

Methods

Static Methods

  • QPaintDevice redirected (QPaintDevice device, QPoint offset = None)
  • restoreRedirected (QPaintDevice device)
  • setRedirected (QPaintDevice device, QPaintDevice replacement, QPoint offset = QPoint())

Special Methods

  • object __enter__ (self)
  • __exit__ (self, object type, object value, object traceback)

Detailed Description

The QPainter class performs low-level painting on widgets and other paint devices.

QPainter provides highly optimized functions to do most of the drawing GUI programs require. It can draw everything from simple lines to complex shapes like pies and chords. It can also draw aligned text and pixmaps. Normally, it draws in a "natural" coordinate system, but it can also do view and world transformation. QPainter can operate on any object that inherits the QPaintDevice class.

The common use of QPainter is inside a widget's paint event: Construct and customize (e.g. set the pen or the brush) the painter. Then draw. Remember to destroy the QPainter object after drawing. For example:

 void SimpleExampleWidget.paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     painter.setPen(Qt.blue);
     painter.setFont(QFont("Arial", 30));
     painter.drawText(rect(), Qt.AlignCenter, "Qt");
 }

The core functionality of QPainter is drawing, but the class also provide several functions that allows you to customize QPainter's settings and its rendering quality, and others that enable clipping. In addition you can control how different shapes are merged together by specifying the painter's composition mode.

The isActive() function indicates whether the painter is active. A painter is activated by the begin() function and the constructor that takes a QPaintDevice argument. The end() function, and the destructor, deactivates it.

Together with the QPaintDevice and QPaintEngine classes, QPainter form the basis for Qt's paint system. QPainter is the class used to perform drawing operations. QPaintDevice represents a device that can be painted on using a QPainter. QPaintEngine provides the interface that the painter uses to draw onto different types of devices. If the painter is active, device() returns the paint device on which the painter paints, and paintEngine() returns the paint engine that the painter is currently operating on. For more information, see the Paint System.

Sometimes it is desirable to make someone else paint on an unusual QPaintDevice. QPainter supports a static function to do this, setRedirected().

Warning: When the paintdevice is a widget, QPainter can only be used inside a paintEvent() function or in a function called by paintEvent(); that is unless the Qt.WA_PaintOutsidePaintEvent widget attribute is set. On Mac OS X and Windows, you can only paint in a paintEvent() function regardless of this attribute's setting.

Settings

There are several settings that you can customize to make QPainter draw according to your preferences:

Note that some of these settings mirror settings in some paint devices, e.g. QWidget.font(). The QPainter.begin() function (or equivalently the QPainter constructor) copies these attributes from the paint device.

You can at any time save the QPainter's state by calling the save() function which saves all the available settings on an internal stack. The restore() function pops them back.

Drawing

QPainter provides functions to draw most primitives: drawPoint(), drawPoints(), drawLine(), drawRect(), drawRoundedRect(), drawEllipse(), drawArc(), drawPie(), drawChord(), drawPolyline(), drawPolygon(), drawConvexPolygon() and drawCubicBezier(). The two convenience functions, drawRects() and drawLines(), draw the given number of rectangles or lines in the given array of QRects or QLines using the current pen and brush.

The QPainter class also provides the fillRect() function which fills the given QRect, with the given QBrush, and the eraseRect() function that erases the area inside the given rectangle.

All of these functions have both integer and floating point versions.

Basic Drawing Example

The Basic Drawing example shows how to display basic graphics primitives in a variety of styles using the QPainter class.

If you need to draw a complex shape, especially if you need to do so repeatedly, consider creating a QPainterPath and drawing it using drawPath().

Painter Paths example

The QPainterPath class provides a container for painting operations, enabling graphical shapes to be constructed and reused.

The Painter Paths example shows how painter paths can be used to build complex shapes for rendering.

QPainter also provides the fillPath() function which fills the given QPainterPath with the given QBrush, and the strokePath() function that draws the outline of the given path (i.e. strokes the path).

See also the Vector Deformation demo which shows how to use advanced vector techniques to draw text using a QPainterPath, the Gradients demo which shows the different types of gradients that are available in Qt, and the Path Stroking demo which shows Qt's built-in dash patterns and shows how custom patterns can be used to extend the range of available patterns.

Vector Deformation Gradients Path Stroking

There are functions to draw pixmaps/images, namely drawPixmap(), drawImage() and drawTiledPixmap(). Both drawPixmap() and drawImage() produce the same result, except that drawPixmap() is faster on-screen while drawImage() may be faster on a QPrinter or other devices.

Text drawing is done using drawText(). When you need fine-grained positioning, boundingRect() tells you where a given drawText() command will draw.

There is a drawPicture() function that draws the contents of an entire QPicture. The drawPicture() function is the only function that disregards all the painter's settings as QPicture has its own settings.

Rendering Quality

To get the optimal rendering result using QPainter, you should use the platform independent QImage as paint device; i.e. using QImage will ensure that the result has an identical pixel representation on any platform.

The QPainter class also provides a means of controlling the rendering quality through its RenderHint enum and the support for floating point precision: All the functions for drawing primitives has a floating point version. These are often used in combination with the QPainter.Antialiasing render hint.

Concentric Circles Example

The Concentric Circles example shows the improved rendering quality that can be obtained using floating point precision and anti-aliasing when drawing custom widgets.

The application's main window displays several widgets which are drawn using the various combinations of precision and anti-aliasing.

The RenderHint enum specifies flags to QPainter that may or may not be respected by any given engine. QPainter.Antialiasing indicates that the engine should antialias edges of primitives if possible, QPainter.TextAntialiasing indicates that the engine should antialias text if possible, and the QPainter.SmoothPixmapTransform indicates that the engine should use a smooth pixmap transformation algorithm. HighQualityAntialiasing is an OpenGL-specific rendering hint indicating that the engine should use fragment programs and offscreen rendering for antialiasing.

The renderHints() function returns a flag that specifies the rendering hints that are set for this painter. Use the setRenderHint() function to set or clear the currently set RenderHints.

Coordinate Transformations

Normally, the QPainter operates on the device's own coordinate system (usually pixels), but QPainter has good support for coordinate transformations.

nop rotate() scale() translate()

The most commonly used transformations are scaling, rotation, translation and shearing. Use the scale() function to scale the coordinate system by a given offset, the rotate() function to rotate it clockwise and translate() to translate it (i.e. adding a given offset to the points). You can also twist the coordinate system around the origin using the shear() function. See the Affine Transformations demo for a visualization of a sheared coordinate system.

See also the Transformations example which shows how transformations influence the way that QPainter renders graphics primitives. In particular it shows how the order of transformations affects the result.

Affine Transformations Demo

The Affine Transformations demo show Qt's ability to perform affine transformations on painting operations. The demo also allows the user to experiment with the transformation operations and see the results immediately.

All the tranformation operations operate on the transformation worldTransform(). A matrix transforms a point in the plane to another point. For more information about the transformation matrix, see the Coordinate System and QTransform documentation.

The setWorldTransform() function can replace or add to the currently set worldTransform(). The resetTransform() function resets any transformations that were made using translate(), scale(), shear(), rotate(), setWorldTransform(), setViewport() and setWindow() functions. The deviceTransform() returns the matrix that transforms from logical coordinates to device coordinates of the platform dependent paint device. The latter function is only needed when using platform painting commands on the platform dependent handle, and the platform does not do transformations nativly.

When drawing with QPainter, we specify points using logical coordinates which then are converted into the physical coordinates of the paint device. The mapping of the logical coordinates to the physical coordinates are handled by QPainter's combinedTransform(), a combination of viewport() and window() and worldTransform(). The viewport() represents the physical coordinates specifying an arbitrary rectangle, the window() describes the same rectangle in logical coordinates, and the worldTransform() is identical with the transformation matrix.

See also Coordinate System

Clipping

QPainter can clip any drawing operation to a rectangle, a region, or a vector path. The current clip is available using the functions clipRegion() and clipPath(). Whether paths or regions are preferred (faster) depends on the underlying paintEngine(). For example, the QImage paint engine prefers paths while the X11 paint engine prefers regions. Setting a clip is done in the painters logical coordinates.

After QPainter's clipping, the paint device may also clip. For example, most widgets clip away the pixels used by child widgets, and most printers clip away an area near the edges of the paper. This additional clipping is not reflected by the return value of clipRegion() or hasClipping().

Composition Modes

QPainter provides the CompositionMode enum which defines the Porter-Duff rules for digital image compositing; it describes a model for combining the pixels in one image, the source, with the pixels in another image, the destination.

The two most common forms of composition are Source and SourceOver. Source is used to draw opaque objects onto a paint device. In this mode, each pixel in the source replaces the corresponding pixel in the destination. In SourceOver composition mode, the source object is transparent and is drawn on top of the destination.

Note that composition transformation operates pixelwise. For that reason, there is a difference between using the graphic primitive itself and its bounding rectangle: The bounding rect contains pixels with alpha == 0 (i.e the pixels surrounding the primitive). These pixels will overwrite the other image's pixels, affectively clearing those, while the primitive only overwrites its own area.

Composition Modes Demo

The Composition Modes demo, available in Qt's demo directory, allows you to experiment with the various composition modes and see the results immediately.

Limitations

If you are using coordinates with Qt's raster-based paint engine, it is important to note that, while coordinates greater than +/- 215 can be used, any painting performed with coordinates outside this range is not guaranteed to be shown; the drawing may be clipped. This is due to the use of short int in the implementation.

The outlines generated by Qt's stroker are only an approximation when dealing with curved shapes. It is in most cases impossible to represent the outline of a bezier curve segment using another bezier curve segment, and so Qt approximates the curve outlines by using several smaller curves. For performance reasons there is a limit to how many curves Qt uses for these outlines, and thus when using large pen widths or scales the outline error increases. To generate outlines with smaller errors it is possible to use the QPainterPathStroker class, which has the setCurveThreshold member function which let's the user specify the error tolerance. Another workaround is to convert the paths to polygons first and then draw the polygons instead.

Performance

QPainter is a rich framework that allows developers to do a great variety of graphical operations, such as gradients, composition modes and vector graphics. And QPainter can do this across a variety of different hardware and software stacks. Naturally the underlying combination of hardware and software has some implications for performance, and ensuring that every single operation is fast in combination with all the various combinations of composition modes, brushes, clipping, transformation, etc, is close to an impossible task because of the number of permutations. As a compromise we have selected a subset of the QPainter API and backends, where performance is guaranteed to be as good as we can sensibly get it for the given combination of hardware and software.

The backends we focus on as high-performance engines are:

These operations are:

  • Simple transformations, meaning translation and scaling, pluss 0, 90, 180, 270 degree rotations.
  • drawPixmap() in combination with simple transformations and opacity with non-smooth transformation mode (QPainter.SmoothPixmapTransform not enabled as a render hint).
  • Rectangle fills with solid color, two-color linear gradients and simple transforms.
  • Rectangular clipping with simple transformations and intersect clip.
  • Composition Modes QPainter.CompositionMode_Source and QPainter.CompositionMode_SourceOver
  • Rounded rectangle filling using solid color and two-color linear gradients fills.
  • 3x3 patched pixmaps, via qDrawBorderPixmap.

This list gives an indication of which features to safely use in an application where performance is critical. For certain setups, other operations may be fast too, but before making extensive use of them, it is recommended to benchmark and verify them on the system where the software will run in the end. There are also cases where expensive operations are ok to use, for instance when the result is cached in a QPixmap.


Type Documentation

QPainter.CompositionMode

Defines the modes supported for digital image compositing. Composition modes are used to specify how the pixels in one image, the source, are merged with the pixel in another image, the destination.

Please note that the bitwise raster operation modes, denoted with a RasterOp prefix, are only natively supported in the X11 and raster paint engines. This means that the only way to utilize these modes on the Mac is via a QImage. The RasterOp denoted blend modes are not supported for pens and brushes with alpha components. Also, turning on the QPainter.Antialiasing render hint will effectively disable the RasterOp modes.

The most common type is SourceOver (often referred to as just alpha blending) where the source pixel is blended on top of the destination pixel in such a way that the alpha component of the source defines the translucency of the pixel.

When the paint device is a QImage, the image format must be set to Format_ARGB32Premultiplied or Format_ARGB32 for the composition modes to have any effect. For performance the premultiplied version is the preferred format.

When a composition mode is set it applies to all painting operator, pens, brushes, gradients and pixmap/image drawing.

Constant Value Description
QPainter.CompositionMode_SourceOver 0 This is the default mode. The alpha of the source is used to blend the pixel on top of the destination.
QPainter.CompositionMode_DestinationOver 1 The alpha of the destination is used to blend it on top of the source pixels. This mode is the inverse of CompositionMode_SourceOver.
QPainter.CompositionMode_Clear 2 The pixels in the destination are cleared (set to fully transparent) independent of the source.
QPainter.CompositionMode_Source 3 The output is the source pixel. (This means a basic copy operation and is identical to SourceOver when the source pixel is opaque).
QPainter.CompositionMode_Destination 4 The output is the destination pixel. This means that the blending has no effect. This mode is the inverse of CompositionMode_Source.
QPainter.CompositionMode_SourceIn 5 The output is the source, where the alpha is reduced by that of the destination.
QPainter.CompositionMode_DestinationIn 6 The output is the destination, where the alpha is reduced by that of the source. This mode is the inverse of CompositionMode_SourceIn.
QPainter.CompositionMode_SourceOut 7 The output is the source, where the alpha is reduced by the inverse of destination.
QPainter.CompositionMode_DestinationOut 8 The output is the destination, where the alpha is reduced by the inverse of the source. This mode is the inverse of CompositionMode_SourceOut.
QPainter.CompositionMode_SourceAtop 9 The source pixel is blended on top of the destination, with the alpha of the source pixel reduced by the alpha of the destination pixel.
QPainter.CompositionMode_DestinationAtop 10 The destination pixel is blended on top of the source, with the alpha of the destination pixel is reduced by the alpha of the destination pixel. This mode is the inverse of CompositionMode_SourceAtop.
QPainter.CompositionMode_Xor 11 The source, whose alpha is reduced with the inverse of the destination alpha, is merged with the destination, whose alpha is reduced by the inverse of the source alpha. CompositionMode_Xor is not the same as the bitwise Xor.
QPainter.CompositionMode_Plus 12 Both the alpha and color of the source and destination pixels are added together.
QPainter.CompositionMode_Multiply 13 The output is the source color multiplied by the destination. Multiplying a color with white leaves the color unchanged, while multiplying a color with black produces black.
QPainter.CompositionMode_Screen 14 The source and destination colors are inverted and then multiplied. Screening a color with white produces white, whereas screening a color with black leaves the color unchanged.
QPainter.CompositionMode_Overlay 15 Multiplies or screens the colors depending on the destination color. The destination color is mixed with the source color to reflect the lightness or darkness of the destination.
QPainter.CompositionMode_Darken 16 The darker of the source and destination colors is selected.
QPainter.CompositionMode_Lighten 17 The lighter of the source and destination colors is selected.
QPainter.CompositionMode_ColorDodge 18 The destination color is brightened to reflect the source color. A black source color leaves the destination color unchanged.
QPainter.CompositionMode_ColorBurn 19 The destination color is darkened to reflect the source color. A white source color leaves the destination color unchanged.
QPainter.CompositionMode_HardLight 20 Multiplies or screens the colors depending on the source color. A light source color will lighten the destination color, whereas a dark source color will darken the destination color.
QPainter.CompositionMode_SoftLight 21 Darkens or lightens the colors depending on the source color. Similar to CompositionMode_HardLight.
QPainter.CompositionMode_Difference 22 Subtracts the darker of the colors from the lighter. Painting with white inverts the destination color, whereas painting with black leaves the destination color unchanged.
QPainter.CompositionMode_Exclusion 23 Similar to CompositionMode_Difference, but with a lower contrast. Painting with white inverts the destination color, whereas painting with black leaves the destination color unchanged.
QPainter.RasterOp_SourceOrDestination 24 Does a bitwise OR operation on the source and destination pixels (src OR dst).
QPainter.RasterOp_SourceAndDestination 25 Does a bitwise AND operation on the source and destination pixels (src AND dst).
QPainter.RasterOp_SourceXorDestination 26 Does a bitwise XOR operation on the source and destination pixels (src XOR dst).
QPainter.RasterOp_NotSourceAndNotDestination 27 Does a bitwise NOR operation on the source and destination pixels ((NOT src) AND (NOT dst)).
QPainter.RasterOp_NotSourceOrNotDestination 28 Does a bitwise NAND operation on the source and destination pixels ((NOT src) OR (NOT dst)).
QPainter.RasterOp_NotSourceXorDestination 29 Does a bitwise operation where the source pixels are inverted and then XOR'ed with the destination ((NOT src) XOR dst).
QPainter.RasterOp_NotSource 30 Does a bitwise operation where the source pixels are inverted (NOT src).
QPainter.RasterOp_NotSourceAndDestination 31 Does a bitwise operation where the source is inverted and then AND'ed with the destination ((NOT src) AND dst).
QPainter.RasterOp_SourceAndNotDestination 32 Does a bitwise operation where the source is AND'ed with the inverted destination pixels (src AND (NOT dst)).

See also compositionMode(), setCompositionMode(), Composition Modes, and Image Composition Example.

QPainter.PixmapFragmentHint

Constant Value Description
QPainter.OpaqueHint 0x01 Indicates that the pixmap fragments to be drawn are opaque. Opaque fragments are potentially faster to draw.

This enum was introduced or modified in Qt 4.7.

The PixmapFragmentHints type is a typedef for QFlags<PixmapFragmentHint>. It stores an OR combination of PixmapFragmentHint values.

See also QPainter.drawPixmapFragments() and QPainter.PixmapFragment.

QPainter.RenderHint

Renderhints are used to specify flags to QPainter that may or may not be respected by any given engine.

Constant Value Description
QPainter.Antialiasing 0x01 Indicates that the engine should antialias edges of primitives if possible.
QPainter.TextAntialiasing 0x02 Indicates that the engine should antialias text if possible. To forcibly disable antialiasing for text, do not use this hint. Instead, set QFont.NoAntialias on your font's style strategy.
QPainter.SmoothPixmapTransform 0x04 Indicates that the engine should use a smooth pixmap transformation algorithm (such as bilinear) rather than nearest neighbor.
QPainter.HighQualityAntialiasing 0x08 An OpenGL-specific rendering hint indicating that the engine should use fragment programs and offscreen rendering for antialiasing.
QPainter.NonCosmeticDefaultPen 0x10 The engine should interpret pens with a width of 0 (which otherwise enables QPen.isCosmetic()) as being a non-cosmetic pen with a width of 1.

The RenderHints type is a typedef for QFlags<RenderHint>. It stores an OR combination of RenderHint values.

See also renderHints(), setRenderHint(), Rendering Quality, and Concentric Circles Example.


Method Documentation

QPainter.__init__ (self)

Constructs a painter.

See also begin() and end().

QPainter.__init__ (self, QPaintDevice)

Constructs a painter that begins painting the paint device immediately.

This constructor is convenient for short-lived painters, e.g. in a QWidget.paintEvent() and should be used only once. The constructor calls begin() for you and the QPainter destructor automatically calls end().

Here's an example using begin() and end():

 void MyWidget.paintEvent(QPaintEvent *)
 {
     QPainter p;
     p.begin(this);
     p.drawLine(...);        // drawing code
     p.end();
 }

The same example using this constructor:

 void MyWidget.paintEvent(QPaintEvent *)
 {
     QPainter p(this);
     p.drawLine(...);        // drawing code
 }

Since the constructor cannot provide feedback when the initialization of the painter failed you should rather use begin() and end() to paint on external devices, e.g. printers.

See also begin() and end().

QBrush QPainter.background (self)

Returns the current background brush.

See also setBackground() and Settings.

Qt.BGMode QPainter.backgroundMode (self)

Returns the current background mode.

See also setBackgroundMode() and Settings.

bool QPainter.begin (self, QPaintDevice)

Begins painting the paint device and returns true if successful; otherwise returns false.

Notice that all painter settings (setPen(), setBrush() etc.) are reset to default values when begin() is called.

The errors that can occur are serious problems, such as these:

 painter->begin(0); // impossible - paint device cannot be 0

 QPixmap image(0, 0);
 painter->begin(&image); // impossible - image.isNull() == true;

 painter->begin(myWidget);
 painter2->begin(myWidget); // impossible - only one painter at a time

Note that most of the time, you can use one of the constructors instead of begin(), and that end() is automatically done at destruction.

Warning: A paint device can only be painted by one painter at a time.

Warning: Painting on a QImage with the format QImage.Format_Indexed8 is not supported.

See also end() and QPainter().

QPainter.beginNativePainting (self)

Flushes the painting pipeline and prepares for the user issuing commands directly to the underlying graphics context. Must be followed by a call to endNativePainting().

Note that only the states the underlying paint engine changes will be reset to their respective default states. The states we reset may change from release to release. The following states are currently reset in the OpenGL 2 engine:

  • blending is disabled
  • the depth, stencil and scissor tests are disabled
  • the active texture unit is reset to 0
  • the depth mask, depth function and the clear depth are reset to their default values
  • the stencil mask, stencil operation and stencil function are reset to their default values
  • the current color is reset to solid white

If, for example, the OpenGL polygon mode is changed by the user inside a beginNativePaint()/endNativePainting() block, it will not be reset to the default state by endNativePainting(). Here is an example that shows intermixing of painter commands and raw OpenGL commands:

 QPainter painter(this);
 painter.fillRect(0, 0, 128, 128, Qt.green);
 painter.beginNativePainting();

 glEnable(GL_SCISSOR_TEST);
 glScissor(0, 0, 64, 64);

 glClearColor(1, 0, 0, 1);
 glClear(GL_COLOR_BUFFER_BIT);

 glDisable(GL_SCISSOR_TEST);

 painter.endNativePainting();

This function was introduced in Qt 4.6.

See also endNativePainting().

QRectF QPainter.boundingRect (self, QRectF rect, int flags, QString text)

Returns the bounding rectangle of the text as it will appear when drawn inside the given rectangle with the specified flags using the currently set font(); i.e the function tells you where the drawText() function will draw when given the same arguments.

If the text does not fit within the given rectangle using the specified flags, the function returns the required rectangle.

The flags argument is a bitwise OR of the following flags:

If several of the horizontal or several of the vertical alignment flags are set, the resulting alignment is undefined.

See also drawText(), Qt.Alignment, and Qt.TextFlag.

QRect QPainter.boundingRect (self, QRect rect, int flags, QString text)

QRectF QPainter.boundingRect (self, QRectF rectangle, QString text, QTextOption option = QTextOption())

QRect QPainter.boundingRect (self, int x, int y, int w, int h, int flags, QString text)

This is an overloaded function.

Returns the bounding rectangle of the text as it will appear when drawn inside the given rectangle with the specified flags using the currently set font().

QBrush QPainter.brush (self)

Returns the painter's current brush.

See also QPainter.setBrush() and Settings.

QPoint QPainter.brushOrigin (self)

Returns the currently set brush origin.

See also setBrushOrigin() and Settings.

QRectF QPainter.clipBoundingRect (self)

Returns the bounding rectangle of the current clip if there is a clip; otherwise returns an empty rectangle. Note that the clip region is given in logical coordinates.

The bounding rectangle is not guaranteed to be tight.

This function was introduced in Qt 4.8.

See also setClipRect(), setClipPath(), and setClipRegion().

QPainterPath QPainter.clipPath (self)

Returns the currently clip as a path. Note that the clip path is given in logical coordinates.

Warning: QPainter does not store the combined clip explicitly as this is handled by the underlying QPaintEngine, so the path is recreated on demand and transformed to the current logical coordinate system. This is potentially an expensive operation.

See also setClipPath(), clipRegion(), and setClipping().

QRegion QPainter.clipRegion (self)

Returns the currently set clip region. Note that the clip region is given in logical coordinates.

Warning: QPainter does not store the combined clip explicitly as this is handled by the underlying QPaintEngine, so the path is recreated on demand and transformed to the current logical coordinate system. This is potentially an expensive operation.

See also setClipRegion(), clipPath(), and setClipping().

QMatrix QPainter.combinedMatrix (self)

QTransform QPainter.combinedTransform (self)

Returns the transformation matrix combining the current window/viewport and world transformation.

See also setWorldTransform(), setWindow(), and setViewport().

CompositionMode QPainter.compositionMode (self)

Returns the current composition mode.

See also CompositionMode and setCompositionMode().

QPaintDevice QPainter.device (self)

Returns the paint device on which this painter is currently painting, or 0 if the painter is not active.

See also isActive().

QMatrix QPainter.deviceMatrix (self)

QTransform QPainter.deviceTransform (self)

Returns the matrix that transforms from logical coordinates to device coordinates of the platform dependent paint device.

This function is only needed when using platform painting commands on the platform dependent handle (Qt.HANDLE), and the platform does not do transformations nativly.

The QPaintEngine.PaintEngineFeature enum can be queried to determine whether the platform performs the transformations or not.

See also worldTransform() and QPaintEngine.hasFeature().

QPainter.drawArc (self, QRectF rect, int a, int alen)

Draws the arc defined by the given rectangle, startAngle and spanAngle.

The startAngle and spanAngle must be specified in 1/16th of a degree, i.e. a full circle equals 5760 (16 * 360). Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.

 QRectF rectangle(10.0, 20.0, 80.0, 60.0);
 int startAngle = 30 * 16;
 int spanAngle = 120 * 16;

 QPainter painter(this);
 painter.drawArc(rectangle, startAngle, spanAngle);

See also drawPie(), drawChord(), and Coordinate System.

QPainter.drawArc (self, QRect r, int a, int alen)

This is an overloaded function.

Draws the arc defined by the given rectangle, startAngle and spanAngle.

QPainter.drawArc (self, int x, int y, int w, int h, int a, int alen)

This is an overloaded function.

Draws the arc defined by the rectangle beginning at (x, y) with the specified width and height, and the given startAngle and spanAngle.

QPainter.drawChord (self, QRectF rect, int a, int alen)

Draws the chord defined by the given rectangle, startAngle and spanAngle. The chord is filled with the current brush().

The startAngle and spanAngle must be specified in 1/16th of a degree, i.e. a full circle equals 5760 (16 * 360). Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.

 QRectF rectangle(10.0, 20.0, 80.0, 60.0);
 int startAngle = 30 * 16;
 int spanAngle = 120 * 16;

 QPainter painter(this);
 painter.drawChord(rect, startAngle, spanAngle);

See also drawArc(), drawPie(), and Coordinate System.

QPainter.drawChord (self, QRect rect, int a, int alen)

This is an overloaded function.

Draws the chord defined by the given rectangle, startAngle and spanAngle.

QPainter.drawChord (self, int x, int y, int w, int h, int a, int alen)

This is an overloaded function.

Draws the chord defined by the rectangle beginning at (x, y) with the specified width and height, and the given startAngle and spanAngle.

QPainter.drawConvexPolygon (self, QPointF point, ...)

Draws the convex polygon defined by the first pointCount points in the array points using the current pen.

 static const QPointF points[4] = {
     QPointF(10.0, 80.0),
     QPointF(20.0, 10.0),
     QPointF(80.0, 30.0),
     QPointF(90.0, 70.0)
 };

 QPainter painter(this);
 painter.drawConvexPolygon(points, 4);

The first point is implicitly connected to the last point, and the polygon is filled with the current brush(). If the supplied polygon is not convex, i.e. it contains at least one angle larger than 180 degrees, the results are undefined.

On some platforms (e.g. X11), the drawConvexPolygon() function can be faster than the drawPolygon() function.

See also drawPolygon(), drawPolyline(), and Coordinate System.

QPainter.drawConvexPolygon (self, QPolygonF poly)

This is an overloaded function.

Draws the convex polygon defined by the first pointCount points in the array points using the current pen.

QPainter.drawConvexPolygon (self, QPoint point, ...)

This is an overloaded function.

Draws the convex polygon defined by polygon using the current pen and brush.

QPainter.drawConvexPolygon (self, QPolygon poly)

This is an overloaded function.

Draws the convex polygon defined by polygon using the current pen and brush.

QPainter.drawEllipse (self, QRectF r)

Draws the ellipse defined by the given rectangle.

A filled ellipse has a size of rectangle.size(). A stroked ellipse has a size of rectangle.size() plus the pen width.

 QRectF rectangle(10.0, 20.0, 80.0, 60.0);

 QPainter painter(this);
 painter.drawEllipse(rectangle);

See also drawPie() and Coordinate System.

QPainter.drawEllipse (self, QRect r)

This is an overloaded function.

Draws the ellipse defined by the given rectangle.

QPainter.drawEllipse (self, int x, int y, int w, int h)

This is an overloaded function.

Draws the ellipse defined by the rectangle beginning at (x, y) with the given width and height.

QPainter.drawEllipse (self, QPointF center, float rx, float ry)

This is an overloaded function.

Draws the ellipse positioned at center with radii rx and ry.

This function was introduced in Qt 4.4.

QPainter.drawEllipse (self, QPoint center, int rx, int ry)

This is an overloaded function.

Draws the ellipse positioned at center with radii rx and ry.

This function was introduced in Qt 4.4.

QPainter.drawGlyphRun (self, QPointF position, QGlyphRun glyphRun)

Draws the specified glyphs at the given position. The position gives the edge of the baseline for the string of glyphs. The glyphs will be retrieved from the font selected by glyphs and at offsets given by the positions in glyphs.

This function was introduced in Qt 4.8.

See also QGlyphRun.setRawFont(), QGlyphRun.setPositions(), and QGlyphRun.setGlyphIndexes().

QPainter.drawImage (self, QRectF targetRect, QImage image, QRectF sourceRect, Qt.ImageConversionFlags flags = Qt.AutoColor)

Draws the rectangular portion source of the given image into the target rectangle in the paint device.

Note: The image is scaled to fit the rectangle, if both the image and rectangle size disagree.

If the image needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the flags to specify how you would prefer this to happen.

 QRectF target(10.0, 20.0, 80.0, 60.0);
 QRectF source(0.0, 0.0, 70.0, 40.0);
 QImage image(":/images/myImage.png");

 QPainter painter(this);
 painter.drawImage(target, image, source);

See also drawPixmap().

QPainter.drawImage (self, QRect targetRect, QImage image, QRect sourceRect, Qt.ImageConversionFlags flags = Qt.AutoColor)

This is an overloaded function.

Draws the rectangular portion source of the given image into the target rectangle in the paint device.

Note: The image is scaled to fit the rectangle, if both the image and rectangle size disagree.

QPainter.drawImage (self, QPointF p, QImage image, QRectF sr, Qt.ImageConversionFlags flags = Qt.AutoColor)

This is an overloaded function.

Draws the given image at the given point.

QPainter.drawImage (self, QPoint p, QImage image, QRect sr, Qt.ImageConversionFlags flags = Qt.AutoColor)

This is an overloaded function.

Draws the given image at the given point.

QPainter.drawImage (self, QRectF r, QImage image)

This is an overloaded function.

Draws the rectangular portion source of the given image with its origin at the given point.

QPainter.drawImage (self, QRect r, QImage image)

This is an overloaded function.

Draws the rectangular portion source of the given image with its origin at the given point.

QPainter.drawImage (self, QPointF p, QImage image)

This is an overloaded function.

Draws the given image into the given rectangle.

Note: The image is scaled to fit the rectangle, if both the image and rectangle size disagree.

QPainter.drawImage (self, QPoint p, QImage image)

This is an overloaded function.

Draws the given image into the given rectangle.

Note: The image is scaled to fit the rectangle, if both the image and rectangle size disagree.

QPainter.drawImage (self, int x, int y, QImage image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt.ImageConversionFlags flags = Qt.AutoColor)

This is an overloaded function.

Draws an image at (x, y) by copying a part of image into the paint device.

(x, y) specifies the top-left point in the paint device that is to be drawn onto. (sx, sy) specifies the top-left point in image that is to be drawn. The default is (0, 0).

(sw, sh) specifies the size of the image that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the image.

QPainter.drawLine (self, QLineF l)

Draws a line defined by line.

 QLineF line(10.0, 80.0, 90.0, 20.0);

 QPainter(this);
 painter.drawLine(line);

See also drawLines(), drawPolyline(), and Coordinate System.

QPainter.drawLine (self, QLine line)

This is an overloaded function.

Draws a line defined by line.

QPainter.drawLine (self, int x1, int y1, int x2, int y2)

This is an overloaded function.

Draws a line from p1 to p2.

QPainter.drawLine (self, QPoint p1, QPoint p2)

This is an overloaded function.

Draws a line from p1 to p2.

QPainter.drawLine (self, QPointF p1, QPointF p2)

This is an overloaded function.

Draws a line from (x1, y1) to (x2, y2) and sets the current pen position to (x2, y2).

QPainter.drawLines (self, QLineF line, ...)

Draws the first lineCount lines in the array lines using the current pen.

See also drawLine() and drawPolyline().

QPainter.drawLines (self, list-of-QLineF lines)

This is an overloaded function.

Draws the first lineCount lines in the array lines using the current pen.

QPainter.drawLines (self, QPointF pointPair, ...)

This is an overloaded function.

Draws the first lineCount lines in the array pointPairs using the current pen. The lines are specified as pairs of points so the number of entries in pointPairs must be at least lineCount * 2.

QPainter.drawLines (self, list-of-QPointF pointPairs)

This is an overloaded function.

Draws the first lineCount lines in the array pointPairs using the current pen.

QPainter.drawLines (self, QLine line, ...)

This is an overloaded function.

Draws a line for each pair of points in the vector pointPairs using the current pen. If there is an odd number of points in the array, the last point will be ignored.

QPainter.drawLines (self, list-of-QLine lines)

This is an overloaded function.

Draws a line for each pair of points in the vector pointPairs using the current pen.

QPainter.drawLines (self, QPoint pointPair, ...)

This is an overloaded function.

Draws the set of lines defined by the list lines using the current pen and brush.

QPainter.drawLines (self, list-of-QPoint pointPairs)

This is an overloaded function.

Draws the set of lines defined by the list lines using the current pen and brush.

QPainter.drawPath (self, QPainterPath path)

Draws the given painter path using the current pen for outline and the current brush for filling.

 QPainterPath path;
 path.moveTo(20, 80);
 path.lineTo(20, 30);
 path.cubicTo(80, 0, 50, 50, 80, 80);

 QPainter painter(this);
 painter.drawPath(path);

See also the Painter Paths example and the Vector Deformation demo.

QPainter.drawPicture (self, QPointF p, QPicture picture)

Replays the given picture at the given point.

The QPicture class is a paint device that records and replays QPainter commands. A picture serializes the painter commands to an IO device in a platform-independent format. Everything that can be painted on a widget or pixmap can also be stored in a picture.

This function does exactly the same as QPicture.play() when called with point = QPoint(0, 0).

 QPicture picture;
 QPointF point(10.0, 20.0)
 picture.load("drawing.pic");

 QPainter painter(this);
 painter.drawPicture(0, 0, picture);

See also QPicture.play().

QPainter.drawPicture (self, int x, int y, QPicture p)

This is an overloaded function.

Replays the given picture at the given point.

QPainter.drawPicture (self, QPoint pt, QPicture p)

This is an overloaded function.

Draws the given picture at point (x, y).

QPainter.drawPie (self, QRectF rect, int a, int alen)

Draws a pie defined by the given rectangle, startAngle and and spanAngle.

The pie is filled with the current brush().

The startAngle and spanAngle must be specified in 1/16th of a degree, i.e. a full circle equals 5760 (16 * 360). Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.

 QRectF rectangle(10.0, 20.0, 80.0, 60.0);
 int startAngle = 30 * 16;
 int spanAngle = 120 * 16;

 QPainter painter(this);
 painter.drawPie(rectangle, startAngle, spanAngle);

See also drawEllipse(), drawChord(), and Coordinate System.

QPainter.drawPie (self, QRect rect, int a, int alen)

This is an overloaded function.

Draws a pie defined by the given rectangle, startAngle and and spanAngle.

QPainter.drawPie (self, int x, int y, int w, int h, int a, int alen)

This is an overloaded function.

Draws the pie defined by the rectangle beginning at (x, y) with the specified width and height, and the given startAngle and spanAngle.

QPainter.drawPixmap (self, QRectF targetRect, QPixmap pixmap, QRectF sourceRect)

Draws the rectangular portion source of the given pixmap into the given target in the paint device.

Note: The pixmap is scaled to fit the rectangle, if both the pixmap and rectangle size disagree.

 QRectF target(10.0, 20.0, 80.0, 60.0);
 QRectF source(0.0, 0.0, 70.0, 40.0);
 QPixmap pixmap(":myPixmap.png");

 QPainter(this);
 painter.drawPixmap(target, image, source);

If pixmap is a QBitmap it is drawn with the bits that are "set" using the pens color. If backgroundMode is Qt.OpaqueMode, the "unset" bits are drawn using the color of the background brush; if backgroundMode is Qt.TransparentMode, the "unset" bits are transparent. Drawing bitmaps with gradient or texture colors is not supported.

See also drawImage().

QPainter.drawPixmap (self, QRect targetRect, QPixmap pixmap, QRect sourceRect)

This is an overloaded function.

Draws the rectangular portion source of the given pixmap into the given target in the paint device.

Note: The pixmap is scaled to fit the rectangle, if both the pixmap and rectangle size disagree.

QPainter.drawPixmap (self, QPointF p, QPixmap pm)

This is an overloaded function.

Draws the rectangular portion source of the given pixmap with its origin at the given point.

QPainter.drawPixmap (self, QPoint p, QPixmap pm)

This is an overloaded function.

Draws the rectangular portion source of the given pixmap with its origin at the given point.

QPainter.drawPixmap (self, QRect r, QPixmap pm)

This is an overloaded function.

Draws the given pixmap with its origin at the given point.

QPainter.drawPixmap (self, int x, int y, QPixmap pm)

This is an overloaded function.

Draws the given pixmap with its origin at the given point.

QPainter.drawPixmap (self, int x, int y, int w, int h, QPixmap pm)

This is an overloaded function.

Draws the given pixmap at position (x, y).

QPainter.drawPixmap (self, int x, int y, int w, int h, QPixmap pm, int sx, int sy, int sw, int sh)

This is an overloaded function.

Draws the given pixmap into the given rectangle.

Note: The pixmap is scaled to fit the rectangle, if both the pixmap and rectangle size disagree.

QPainter.drawPixmap (self, int x, int y, QPixmap pm, int sx, int sy, int sw, int sh)

This is an overloaded function.

Draws the pixmap into the rectangle at position (x, y) with the given width and height.

QPainter.drawPixmap (self, QPointF p, QPixmap pm, QRectF sr)

This is an overloaded function.

Draws the rectangular portion with the origin (sx, sy), width sw and height sh, of the given pixmap , at the point (x, y), with a width of w and a height of h. If sw or sh are equal to zero the width/height of the pixmap is used and adjusted by the offset sx/sy;

QPainter.drawPixmap (self, QPoint p, QPixmap pm, QRect sr)

This is an overloaded function.

Draws a pixmap at (x, y) by copying a part of the given pixmap into the paint device.

(x, y) specifies the top-left point in the paint device that is to be drawn onto. (sx, sy) specifies the top-left point in pixmap that is to be drawn. The default is (0, 0).

(sw, sh) specifies the size of the pixmap that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the pixmap.

QPainter.drawPixmapFragments (self, list-of-QPainter.PixmapFragment fragments, QPixmap pixmap, PixmapFragmentHints hints = 0)

This function is used to draw pixmap, or a sub-rectangle of pixmap, at multiple positions with different scale, rotation and opacity. fragments is an array of fragmentCount elements specifying the parameters used to draw each pixmap fragment. The hints parameter can be used to pass in drawing hints.

This function is potentially faster than multiple calls to drawPixmap(), since the backend can optimize state changes.

This function was introduced in Qt 4.7.

See also QPainter.PixmapFragment and QPainter.PixmapFragmentHint.

QPainter.drawPixmapFragments (self, list-of-QRectF targetRects, list-of-QRectF sourceRects, QPixmap pixmap, PixmapFragmentHints hints = 0)

The sourceRects argument may also be None.

This function is used to draw the same pixmap with multiple target and source rectangles specified by targetRects. If sourceRects is 0, the whole pixmap will be rendered at each of the target rectangles. The hints parameter can be used to pass in drawing hints.

This function is potentially faster than multiple calls to drawPixmap(), since the backend can optimize state changes.

This function was introduced in Qt 4.8.

See also QPainter.PixmapFragmentHint.

QPainter.drawPoint (self, QPointF p)

Draws a single point at the given position using the current pen's color.

See also Coordinate System.

QPainter.drawPoint (self, int x, int y)

This is an overloaded function.

Draws a single point at the given position using the current pen's color.

QPainter.drawPoint (self, QPoint p)

This is an overloaded function.

Draws a single point at position (x, y).

QPainter.drawPoints (self, QPointF point, ...)

Draws the first pointCount points in the array points using the current pen's color.

See also Coordinate System.

QPainter.drawPoints (self, QPolygonF points)

This is an overloaded function.

Draws the first pointCount points in the array points using the current pen's color.

QPainter.drawPoints (self, QPoint point, ...)

This is an overloaded function.

Draws the points in the vector points.

QPainter.drawPoints (self, QPolygon points)

This is an overloaded function.

Draws the points in the vector points.

QPainter.drawPolygon (self, QPointF point, ...)

Draws the polygon defined by the first pointCount points in the array points using the current pen and brush.

 static const QPointF points[4] = {
     QPointF(10.0, 80.0),
     QPointF(20.0, 10.0),
     QPointF(80.0, 30.0),
     QPointF(90.0, 70.0)
 };

 QPainter painter(this);
 painter.drawPolygon(points, 4);

The first point is implicitly connected to the last point, and the polygon is filled with the current brush().

If fillRule is Qt.WindingFill, the polygon is filled using the winding fill algorithm. If fillRule is Qt.OddEvenFill, the polygon is filled using the odd-even fill algorithm. See Qt.FillRule for a more detailed description of these fill rules.

See also drawConvexPolygon(), drawPolyline(), and Coordinate System.

QPainter.drawPolygon (self, QPolygonF points, Qt.FillRule fillRule = Qt.OddEvenFill)

This is an overloaded function.

Draws the polygon defined by the first pointCount points in the array points.

QPainter.drawPolygon (self, QPoint point, ...)

QPainter.drawPolygon (self, QPolygon points, Qt.FillRule fillRule = Qt.OddEvenFill)

QPainter.drawPolyline (self, QPointF point, ...)

Draws the polyline defined by the first pointCount points in points using the current pen.

Note that unlike the drawPolygon() function the last point is not connected to the first, neither is the polyline filled.

 static const QPointF points[3] = {
     QPointF(10.0, 80.0),
     QPointF(20.0, 10.0),
     QPointF(80.0, 30.0),
 };

 QPainter painter(this);
 painter.drawPolyline(points, 3);

See also drawLines(), drawPolygon(), and Coordinate System.

QPainter.drawPolyline (self, QPolygonF polyline)

This is an overloaded function.

Draws the polyline defined by the first pointCount points in points using the current pen.

QPainter.drawPolyline (self, QPoint point, ...)

QPainter.drawPolyline (self, QPolygon polyline)

This is an overloaded function.

Draws the polyline defined by the given points using the current pen.

QPainter.drawRect (self, QRectF rect)

Draws the current rectangle with the current pen and brush.

A filled rectangle has a size of rectangle.size(). A stroked rectangle has a size of rectangle.size() plus the pen width.

 QRectF rectangle(10.0, 20.0, 80.0, 60.0);

 QPainter painter(this);
 painter.drawRect(rectangle);

See also drawRects(), drawPolygon(), and Coordinate System.

QPainter.drawRect (self, int x, int y, int w, int h)

This is an overloaded function.

Draws the current rectangle with the current pen and brush.

QPainter.drawRect (self, QRect r)

This is an overloaded function.

Draws a rectangle with upper left corner at (x, y) and with the given width and height.

QPainter.drawRects (self, QRectF rect, ...)

Draws the first rectCount of the given rectangles using the current pen and brush.

See also drawRect().

QPainter.drawRects (self, list-of-QRectF rects)

This is an overloaded function.

Draws the first rectCount of the given rectangles using the current pen and brush.

QPainter.drawRects (self, QRect rect, ...)

This is an overloaded function.

Draws the given rectangles using the current pen and brush.

QPainter.drawRects (self, list-of-QRect rects)

This is an overloaded function.

Draws the given rectangles using the current pen and brush.

QPainter.drawRoundedRect (self, QRectF rect, float xRadius, float yRadius, Qt.SizeMode mode = Qt.AbsoluteSize)

Draws the given rectangle rect with rounded corners.

The xRadius and yRadius arguments specify the radii of the ellipses defining the corners of the rounded rectangle. When mode is Qt.RelativeSize, xRadius and yRadius are specified in percentage of half the rectangle's width and height respectively, and should be in the range 0.0 to 100.0.

A filled rectangle has a size of rect.size(). A stroked rectangle has a size of rect.size() plus the pen width.

 QRectF rectangle(10.0, 20.0, 80.0, 60.0);

 QPainter painter(this);
 painter.drawRoundedRect(rectangle, 20.0, 15.0);

This function was introduced in Qt 4.4.

See also drawRect() and QPen.

QPainter.drawRoundedRect (self, int x, int y, int w, int h, float xRadius, float yRadius, Qt.SizeMode mode = Qt.AbsoluteSize)

This is an overloaded function.

Draws the given rectangle rect with rounded corners.

This function was introduced in Qt 4.4.

QPainter.drawRoundedRect (self, QRect rect, float xRadius, float yRadius, Qt.SizeMode mode = Qt.AbsoluteSize)

This is an overloaded function.

Draws the given rectangle x, y, w, h with rounded corners.

This function was introduced in Qt 4.4.

QPainter.drawRoundRect (self, QRectF r, int xRound = 25, int yRound = 25)

QPainter.drawRoundRect (self, int x, int y, int w, int h, int xRound = 25, int yRound = 25)

QPainter.drawRoundRect (self, QRect r, int xRound = 25, int yRound = 25)

QPainter.drawStaticText (self, QPointF topLeftPosition, QStaticText staticText)

Draws the given staticText at the given topLeftPosition.

The text will be drawn using the font and the transformation set on the painter. If the font and/or transformation set on the painter are different from the ones used to initialize the layout of the QStaticText, then the layout will have to be recalculated. Use QStaticText.prepare() to initialize staticText with the font and transformation with which it will later be drawn.

If topLeftPosition is not the same as when staticText was initialized, or when it was last drawn, then there will be a slight overhead when translating the text to its new position.

Note: If the painter's transformation is not affine, then staticText will be drawn using regular calls to drawText(), losing any potential for performance improvement.

Note: The y-position is used as the top of the font.

This function was introduced in Qt 4.7.

See also QStaticText.

QPainter.drawStaticText (self, QPoint p, QStaticText staticText)

This is an overloaded function.

Draws the staticText at the topLeftPosition.

Note: The y-position is used as the top of the font.

This function was introduced in Qt 4.7.

QPainter.drawStaticText (self, int x, int y, QStaticText staticText)

This is an overloaded function.

Draws the staticText at coordinates left and top.

Note: The y-position is used as the top of the font.

This function was introduced in Qt 4.7.

QPainter.drawText (self, QPointF p, QString s)

Draws the given text with the currently defined text direction, beginning at the given position.

This function does not handle the newline character (\n), as it cannot break text into multiple lines, and it cannot display the newline character. Use the QPainter.drawText() overload that takes a rectangle instead if you want to draw multiple lines of text with the newline character, or if you want the text to be wrapped.

By default, QPainter draws text anti-aliased.

Note: The y-position is used as the baseline of the font.

QRectF boundingRect QPainter.drawText (self, QRectF rectangle, int flags, QString text)

QRect boundingRect QPainter.drawText (self, QRect rectangle, int flags, QString text)

QPainter.drawText (self, QRectF rectangle, QString text, QTextOption option = QTextOption())

QPainter.drawText (self, QPoint p, QString s)

QRect boundingRect QPainter.drawText (self, int x, int y, int width, int height, int flags, QString text)

QPainter.drawText (self, int x, int y, QString s)

QPainter.drawTiledPixmap (self, QRectF rectangle, QPixmap pixmap, QPointF pos = QPointF())

Draws a tiled pixmap, inside the given rectangle with its origin at the given position.

Calling drawTiledPixmap() is similar to calling drawPixmap() several times to fill (tile) an area with a pixmap, but is potentially much more efficient depending on the underlying window system.

See also drawPixmap().

QPainter.drawTiledPixmap (self, QRect rectangle, QPixmap pixmap, QPoint pos = QPoint())

This is an overloaded function.

Draws a tiled pixmap, inside the given rectangle with its origin at the given position.

QPainter.drawTiledPixmap (self, int x, int y, int width, int height, QPixmap pixmap, int sx = 0, int sy = 0)

This is an overloaded function.

Draws a tiled pixmap in the specified rectangle.

(x, y) specifies the top-left point in the paint device that is to be drawn onto; with the given width and height. (sx, sy) specifies the top-left point in the pixmap that is to be drawn; this defaults to (0, 0).

bool QPainter.end (self)

Ends painting. Any resources used while painting are released. You don't normally need to call this since it is called by the destructor.

Returns true if the painter is no longer active; otherwise returns false.

See also begin() and isActive().

QPainter.endNativePainting (self)

Restores the painter after manually issuing native painting commands. Lets the painter restore any native state that it relies on before calling any other painter commands.

This function was introduced in Qt 4.6.

See also beginNativePainting().

QPainter.eraseRect (self, QRectF)

Erases the area inside the given rectangle. Equivalent to calling

 fillRect(rectangle, background()).

See also fillRect().

QPainter.eraseRect (self, QRect rect)

This is an overloaded function.

Erases the area inside the given rectangle.

QPainter.eraseRect (self, int x, int y, int w, int h)

This is an overloaded function.

Erases the area inside the rectangle beginning at (x, y) with the given width and height.

QPainter.fillPath (self, QPainterPath path, QBrush brush)

Fills the given path using the given brush. The outline is not drawn.

Alternatively, you can specify a QColor instead of a QBrush; the QBrush constructor (taking a QColor argument) will automatically create a solid pattern brush.

See also drawPath().

QPainter.fillRect (self, QRectF, QBrush)

Fills the given rectangle with the brush specified.

Alternatively, you can specify a QColor instead of a QBrush; the QBrush constructor (taking a QColor argument) will automatically create a solid pattern brush.

See also drawRect().

QPainter.fillRect (self, QRect, QBrush)

This is an overloaded function.

Fills the rectangle beginning at (x, y) with the given width and height, using the brush style specified.

This function was introduced in Qt 4.5.

QPainter.fillRect (self, int x, int y, int w, int h, QBrush b)

This is an overloaded function.

Fills the given rectangle with the brush style specified.

This function was introduced in Qt 4.5.

QPainter.fillRect (self, QRectF, QColor color)

This is an overloaded function.

Fills the given rectangle with the brush style specified.

This function was introduced in Qt 4.5.

QPainter.fillRect (self, QRect, QColor color)

This is an overloaded function.

Fills the given rectangle with the specified brush.

QPainter.fillRect (self, int x, int y, int w, int h, QColor b)

This is an overloaded function.

Fills the given rectangle with the color specified.

This function was introduced in Qt 4.5.

QPainter.fillRect (self, int x, int y, int w, int h, Qt.GlobalColor c)

This is an overloaded function.

Fills the given rectangle with the color specified.

This function was introduced in Qt 4.5.

QPainter.fillRect (self, QRect r, Qt.GlobalColor c)

This is an overloaded function.

Fills the rectangle beginning at (x, y) with the given width and height, using the given brush.

QPainter.fillRect (self, QRectF r, Qt.GlobalColor c)

This is an overloaded function.

Fills the rectangle beginning at (x, y) with the given width and height, using the given color.

This function was introduced in Qt 4.5.

QPainter.fillRect (self, int x, int y, int w, int h, Qt.BrushStyle style)

This is an overloaded function.

Fills the rectangle beginning at (x, y) with the given width and height, using the given color.

This function was introduced in Qt 4.5.

QPainter.fillRect (self, QRect r, Qt.BrushStyle style)

This is an overloaded function.

Fills the given rectangle with the specified color.

This function was introduced in Qt 4.5.

QPainter.fillRect (self, QRectF r, Qt.BrushStyle style)

This is an overloaded function.

Fills the given rectangle with the specified color.

This function was introduced in Qt 4.5.

QFont QPainter.font (self)

Returns the currently set font used for drawing text.

See also setFont(), drawText(), and Settings.

QFontInfo QPainter.fontInfo (self)

Returns the font info for the painter if the painter is active. Otherwise, the return value is undefined.

See also font(), isActive(), and Settings.

QFontMetrics QPainter.fontMetrics (self)

Returns the font metrics for the painter if the painter is active. Otherwise, the return value is undefined.

See also font(), isActive(), and Settings.

bool QPainter.hasClipping (self)

Returns true if clipping has been set; otherwise returns false.

See also setClipping() and Clipping.

QPainter.initFrom (self, QWidget widget)

Initializes the painters pen, background and font to the same as the given widget. This function is called automatically when the painter is opened on a QWidget.

See also begin() and Settings.

bool QPainter.isActive (self)

Returns true if begin() has been called and end() has not yet been called; otherwise returns false.

See also begin() and QPaintDevice.paintingActive().

Qt.LayoutDirection QPainter.layoutDirection (self)

Returns the layout direction used by the painter when drawing text.

See also QTextOption.textDirection(), setLayoutDirection(), drawText(), and Settings.

QMatrix QPainter.matrix (self)

bool QPainter.matrixEnabled (self)

float QPainter.opacity (self)

Returns the opacity of the painter. The default value is 1.

This function was introduced in Qt 4.2.

See also setOpacity().

QPaintEngine QPainter.paintEngine (self)

Returns the paint engine that the painter is currently operating on if the painter is active; otherwise 0.

See also isActive().

QPen QPainter.pen (self)

Returns the painter's current pen.

See also setPen() and Settings.

QPaintDevice QPainter.redirected (QPaintDevice device, QPoint offset = None)

RenderHints QPainter.renderHints (self)

Returns a flag that specifies the rendering hints that are set for this painter.

See also setRenderHints(), testRenderHint(), and Rendering Quality.

QPainter.resetMatrix (self)

QPainter.resetTransform (self)

Resets any transformations that were made using translate(), scale(), shear(), rotate(), setWorldTransform(), setViewport() and setWindow().

See also Coordinate Transformations.

QPainter.restore (self)

Restores the current painter state (pops a saved state off the stack).

See also save().

QPainter.restoreRedirected (QPaintDevice device)

QPainter.rotate (self, float a)

Rotates the coordinate system the given angle clockwise.

See also setWorldTransform() and Coordinate Transformations.

QPainter.save (self)

Saves the current painter state (pushes the state onto a stack). A save() must be followed by a corresponding restore(); the end() function unwinds the stack.

See also restore().

QPainter.scale (self, float sx, float sy)

Scales the coordinate system by (sx, sy).

See also setWorldTransform() and Coordinate Transformations.

QPainter.setBackground (self, QBrush bg)

Sets the background brush of the painter to the given brush.

The background brush is the brush that is filled in when drawing opaque text, stippled lines and bitmaps. The background brush has no effect in transparent background mode (which is the default).

See also background(), setBackgroundMode(), and Settings.

QPainter.setBackgroundMode (self, Qt.BGMode mode)

Sets the background mode of the painter to the given mode

Qt.TransparentMode (the default) draws stippled lines and text without setting the background pixels. Qt.OpaqueMode fills these space with the current background color.

Note that in order to draw a bitmap or pixmap transparently, you must use QPixmap.setMask().

See also backgroundMode(), setBackground(), and Settings.

QPainter.setBrush (self, QBrush brush)

Sets the painter's brush to the given brush.

The painter's brush defines how shapes are filled.

See also brush() and Settings.

QPainter.setBrush (self, Qt.BrushStyle style)

This is an overloaded function.

Sets the painter's brush to black color and the specified style.

QPainter.setBrushOrigin (self, QPointF)

Sets the brush origin to position.

The brush origin specifies the (0, 0) coordinate of the painter's brush.

Note that while the brushOrigin() was necessary to adopt the parent's background for a widget in Qt 3, this is no longer the case since the Qt 4 painter doesn't paint the background unless you explicitly tell it to do so by setting the widget's autoFillBackground property to true.

See also brushOrigin() and Settings.

QPainter.setBrushOrigin (self, int x, int y)

This is an overloaded function.

Sets the brush's origin to the given position.

QPainter.setBrushOrigin (self, QPoint p)

This is an overloaded function.

Sets the brush's origin to point (x, y).

QPainter.setClipPath (self, QPainterPath path, Qt.ClipOperation operation = Qt.ReplaceClip)

Enables clipping, and sets the clip path for the painter to the given path, with the clip operation.

Note that the clip path is specified in logical (painter) coordinates.

See also clipPath(), clipRegion(), and Clipping.

QPainter.setClipping (self, bool enable)

Enables clipping if enable is true, or disables clipping if enable is false.

See also hasClipping() and Clipping.

QPainter.setClipRect (self, QRectF rectangle, Qt.ClipOperation operation = Qt.ReplaceClip)

Enables clipping, and sets the clip region to the given rectangle using the given clip operation. The default operation is to replace the current clip rectangle.

Note that the clip rectangle is specified in logical (painter) coordinates.

See also clipRegion(), setClipping(), and Clipping.

QPainter.setClipRect (self, int x, int y, int width, int height, Qt.ClipOperation operation = Qt.ReplaceClip)

Enables clipping, and sets the clip region to the rectangle beginning at (x, y) with the given width and height.

QPainter.setClipRect (self, QRect rectangle, Qt.ClipOperation operation = Qt.ReplaceClip)

This is an overloaded function.

Enables clipping, and sets the clip region to the given rectangle using the given clip operation.

QPainter.setClipRegion (self, QRegion region, Qt.ClipOperation operation = Qt.ReplaceClip)

Sets the clip region to the given region using the specified clip operation. The default clip operation is to replace the current clip region.

Note that the clip region is given in logical coordinates.

See also clipRegion(), setClipRect(), and Clipping.

QPainter.setCompositionMode (self, CompositionMode mode)

Sets the composition mode to the given mode.

Warning: Only a QPainter operating on a QImage fully supports all composition modes. The RasterOp modes are supported for X11 as described in compositionMode().

See also compositionMode().

QPainter.setFont (self, QFont f)

Sets the painter's font to the given font.

This font is used by subsequent drawText() functions. The text color is the same as the pen color.

If you set a font that isn't available, Qt finds a close match. font() will return what you set using setFont() and fontInfo() returns the font actually being used (which may be the same).

See also font(), drawText(), and Settings.

QPainter.setLayoutDirection (self, Qt.LayoutDirection direction)

Sets the layout direction used by the painter when drawing text, to the specified direction.

The default is Qt.LayoutDirectionAuto, which will implicitly determine the direction from the text drawn.

See also QTextOption.setTextDirection(), layoutDirection(), drawText(), and Settings.

QPainter.setMatrix (self, QMatrix matrix, bool combine = False)

QPainter.setMatrixEnabled (self, bool enabled)

QPainter.setOpacity (self, float opacity)

Sets the opacity of the painter to opacity. The value should be in the range 0.0 to 1.0, where 0.0 is fully transparent and 1.0 is fully opaque.

Opacity set on the painter will apply to all drawing operations individually.

This function was introduced in Qt 4.2.

See also opacity().

QPainter.setPen (self, QColor color)

Sets the painter's pen to be the given pen.

The pen defines how to draw lines and outlines, and it also defines the text color.

See also pen() and Settings.

QPainter.setPen (self, QPen pen)

This is an overloaded function.

Sets the painter's pen to have style Qt.SolidLine, width 0 and the specified color.

QPainter.setPen (self, Qt.PenStyle style)

This is an overloaded function.

Sets the painter's pen to have the given style, width 0 and black color.

QPainter.setRedirected (QPaintDevice device, QPaintDevice replacement, QPoint offset = QPoint())

QPainter.setRenderHint (self, RenderHint hint, bool on = True)

Sets the given render hint on the painter if on is true; otherwise clears the render hint.

See also setRenderHints(), renderHints(), and Rendering Quality.

QPainter.setRenderHints (self, RenderHints hints, bool on = True)

Sets the given render hints on the painter if on is true; otherwise clears the render hints.

This function was introduced in Qt 4.2.

See also setRenderHint(), renderHints(), and Rendering Quality.

QPainter.setTransform (self, QTransform transform, bool combine = False)

Sets the world transformation matrix. If combine is true, the specified transform is combined with the current matrix; otherwise it replaces the current matrix.

This function was introduced in Qt 4.3.

See also transform() and setWorldTransform().

QPainter.setViewport (self, QRect viewport)

Sets the painter's viewport rectangle to the given rectangle, and enables view transformations.

The viewport rectangle is part of the view transformation. The viewport specifies the device coordinate system. Its sister, the window(), specifies the logical coordinate system.

The default viewport rectangle is the same as the device's rectangle.

See also viewport(), viewTransformEnabled(), and Window-Viewport Conversion.

QPainter.setViewport (self, int x, int y, int w, int h)

This is an overloaded function.

Sets the painter's viewport rectangle to be the rectangle beginning at (x, y) with the given width and height.

QPainter.setViewTransformEnabled (self, bool enable)

Enables view transformations if enable is true, or disables view transformations if enable is false.

See also viewTransformEnabled() and Window-Viewport Conversion.

QPainter.setWindow (self, QRect window)

Sets the painter's window to the given rectangle, and enables view transformations.

The window rectangle is part of the view transformation. The window specifies the logical coordinate system. Its sister, the viewport(), specifies the device coordinate system.

The default window rectangle is the same as the device's rectangle.

See also window(), viewTransformEnabled(), and Window-Viewport Conversion.

QPainter.setWindow (self, int x, int y, int w, int h)

This is an overloaded function.

Sets the painter's window to the rectangle beginning at (x, y) and the given width and height.

QPainter.setWorldMatrix (self, QMatrix matrix, bool combine = False)

QPainter.setWorldMatrixEnabled (self, bool enabled)

Enables transformations if enable is true, or disables transformations if enable is false. The world transformation matrix is not changed.

This function was introduced in Qt 4.2.

See also worldMatrixEnabled(), worldTransform(), and Coordinate Transformations.

QPainter.setWorldTransform (self, QTransform matrix, bool combine = False)

Sets the world transformation matrix. If combine is true, the specified matrix is combined with the current matrix; otherwise it replaces the current matrix.

See also worldTransform(), transform(), and setTransform().

QPainter.shear (self, float sh, float sv)

Shears the coordinate system by (sh, sv).

See also setWorldTransform() and Coordinate Transformations.

QPainter.strokePath (self, QPainterPath path, QPen pen)

Draws the outline (strokes) the path path with the pen specified by pen

See also fillPath() and Drawing.

bool QPainter.testRenderHint (self, RenderHint hint)

Returns true if hint is set; otherwise returns false.

This function was introduced in Qt 4.3.

See also renderHints() and setRenderHint().

QTransform QPainter.transform (self)

Returns the world transformation matrix.

See also setTransform() and worldTransform().

QPainter.translate (self, QPointF offset)

Translates the coordinate system by the given offset; i.e. the given offset is added to points.

See also setWorldTransform() and Coordinate Transformations.

QPainter.translate (self, float dx, float dy)

This is an overloaded function.

Translates the coordinate system by the given offset.

QPainter.translate (self, QPoint offset)

This is an overloaded function.

Translates the coordinate system by the vector (dx, dy).

QRect QPainter.viewport (self)

Returns the viewport rectangle.

See also setViewport() and setViewTransformEnabled().

bool QPainter.viewTransformEnabled (self)

Returns true if view transformation is enabled; otherwise returns false.

See also setViewTransformEnabled() and worldTransform().

QRect QPainter.window (self)

Returns the window rectangle.

See also setWindow() and setViewTransformEnabled().

QMatrix QPainter.worldMatrix (self)

bool QPainter.worldMatrixEnabled (self)

Returns true if world transformation is enabled; otherwise returns false.

This function was introduced in Qt 4.2.

See also setWorldMatrixEnabled(), worldTransform(), and Coordinate System.

QTransform QPainter.worldTransform (self)

Returns the world transformation matrix.

See also setWorldTransform().

object QPainter.__enter__ (self)

QPainter.__exit__ (self, object type, object value, object traceback)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpainterpath-element.html0000644000076500000240000001411512536324511022476 0ustar philstaff00000000000000 QPainterPath.Element Class Reference
  Home · All Classes · Modules

QPainterPath.Element Class Reference
[
QtGui module]

The QPainterPath.Element class specifies the position and type of a subpath. More...

Methods

Special Methods

  • bool __eq__ (self, Element e)
  • bool __ne__ (self, Element e)

Members

  • ElementType type
  • float x
  • float y

Detailed Description

The QPainterPath.Element class specifies the position and type of a subpath.

Once a QPainterPath object is constructed, subpaths like lines and curves can be added to the path (creating QPainterPath.LineToElement and QPainterPath.CurveToElement components).

The lines and curves stretch from the currentPosition() to the position passed as argument. The currentPosition() of the QPainterPath object is always the end position of the last subpath that was added (or the initial start point). The moveTo() function can be used to move the currentPosition() without adding a line or curve, creating a QPainterPath.MoveToElement component.


Method Documentation

Element.__init__ (self)

Element.__init__ (self, Element)

bool Element.isCurveTo (self)

Returns true if the element is a curve, otherwise returns false.

See also type and QPainterPath.CurveToElement.

bool Element.isLineTo (self)

Returns true if the element is a line, otherwise returns false.

See also type and QPainterPath.LineToElement.

bool Element.isMoveTo (self)

Returns true if the element is moving the current position, otherwise returns false.

See also type and QPainterPath.MoveToElement.

bool Element.__eq__ (self, Element e)

bool Element.__ne__ (self, Element e)


Member Documentation

ElementType type

This variable holds the type of element.

See also isCurveTo(), isLineTo(), and isMoveTo().

float x

This variable holds the x coordinate of the element's position.

See also operator QPointF().

float y

This variable holds the y coordinate of the element's position.

See also operator QPointF().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpainterpath.html0000644000076500000240000020435612536324511021057 0ustar philstaff00000000000000 QPainterPath Class Reference
  Home · All Classes · Modules

QPainterPath Class Reference
[QtGui module]

The QPainterPath class provides a container for painting operations, enabling graphical shapes to be constructed and reused. More...

Types

  • class Element
  • enum ElementType { MoveToElement, LineToElement, CurveToElement, CurveToDataElement }

Methods

Special Methods

  • QPainterPath __add__ (self, QPainterPath other)
  • QPainterPath __and__ (self, QPainterPath other)
  • bool __eq__ (self, QPainterPath other)
  • QPainterPath __iadd__ (self, QPainterPath other)
  • QPainterPath __iand__ (self, QPainterPath other)
  • QPainterPath __ior__ (self, QPainterPath other)
  • QPainterPath __isub__ (self, QPainterPath other)
  • QPainterPath __mul__ (self, QMatrix m)
  • QPainterPath __mul__ (self, QTransform m)
  • bool __ne__ (self, QPainterPath other)
  • QPainterPath __or__ (self, QPainterPath other)
  • QPainterPath __sub__ (self, QPainterPath other)

Detailed Description

The QPainterPath class provides a container for painting operations, enabling graphical shapes to be constructed and reused.

A painter path is an object composed of a number of graphical building blocks, such as rectangles, ellipses, lines, and curves. Building blocks can be joined in closed subpaths, for example as a rectangle or an ellipse. A closed path has coinciding start and end points. Or they can exist independently as unclosed subpaths, such as lines and curves.

A QPainterPath object can be used for filling, outlining, and clipping. To generate fillable outlines for a given painter path, use the QPainterPathStroker class. The main advantage of painter paths over normal drawing operations is that complex shapes only need to be created once; then they can be drawn many times using only calls to the QPainter.drawPath() function.

QPainterPath provides a collection of functions that can be used to obtain information about the path and its elements. In addition it is possible to reverse the order of the elements using the toReversed() function. There are also several functions to convert this painter path object into a polygon representation.

Composing a QPainterPath

A QPainterPath object can be constructed as an empty path, with a given start point, or as a copy of another QPainterPath object. Once created, lines and curves can be added to the path using the lineTo(), arcTo(), cubicTo() and quadTo() functions. The lines and curves stretch from the currentPosition() to the position passed as argument.

The currentPosition() of the QPainterPath object is always the end position of the last subpath that was added (or the initial start point). Use the moveTo() function to move the currentPosition() without adding a component. The moveTo() function implicitly starts a new subpath, and closes the previous one. Another way of starting a new subpath is to call the closeSubpath() function which closes the current path by adding a line from the currentPosition() back to the path's start position. Note that the new path will have (0, 0) as its initial currentPosition().

QPainterPath class also provides several convenience functions to add closed subpaths to a painter path: addEllipse(), addPath(), addRect(), addRegion() and addText(). The addPolygon() function adds an unclosed subpath. In fact, these functions are all collections of moveTo(), lineTo() and cubicTo() operations.

In addition, a path can be added to the current path using the connectPath() function. But note that this function will connect the last element of the current path to the first element of given one by adding a line.

Below is a code snippet that shows how a QPainterPath object can be used:

 QPainterPath path;
 path.addRect(20, 20, 60, 60);

 path.moveTo(0, 0);
 path.cubicTo(99, 0,  50, 50,  99, 99);
 path.cubicTo(0, 99,  50, 50,  0, 0);

 QPainter painter(this);
 painter.fillRect(0, 0, 100, 100, Qt.white);
 painter.setPen(QPen(QColor(79, 106, 25), 1, Qt.SolidLine,
                     Qt.FlatCap, Qt.MiterJoin));
 painter.setBrush(QColor(122, 163, 39));

 painter.drawPath(path);

The painter path is initially empty when constructed. We first add a rectangle, which is a closed subpath. Then we add two bezier curves which together form a closed subpath even though they are not closed individually. Finally we draw the entire path. The path is filled using the default fill rule, Qt.OddEvenFill. Qt provides two methods for filling paths:

Qt.OddEvenFill Qt.WindingFill

See the Qt.FillRule documentation for the definition of the rules. A painter path's currently set fill rule can be retrieved using the fillRule() function, and altered using the setFillRule() function.

QPainterPath Information

The QPainterPath class provides a collection of functions that returns information about the path and its elements.

The currentPosition() function returns the end point of the last subpath that was added (or the initial start point). The elementAt() function can be used to retrieve the various subpath elements, the number of elements can be retrieved using the elementCount() function, and the isEmpty() function tells whether this QPainterPath object contains any elements at all.

The controlPointRect() function returns the rectangle containing all the points and control points in this path. This function is significantly faster to compute than the exact boundingRect() which returns the bounding rectangle of this painter path with floating point precision.

Finally, QPainterPath provides the contains() function which can be used to determine whether a given point or rectangle is inside the path, and the intersects() function which determines if any of the points inside a given rectangle also are inside this path.

QPainterPath Conversion

For compatibility reasons, it might be required to simplify the representation of a painter path: QPainterPath provides the toFillPolygon(), toFillPolygons() and toSubpathPolygons() functions which convert the painter path into a polygon. The toFillPolygon() returns the painter path as one single polygon, while the two latter functions return a list of polygons.

The toFillPolygons() and toSubpathPolygons() functions are provided because it is usually faster to draw several small polygons than to draw one large polygon, even though the total number of points drawn is the same. The difference between the two is the number of polygons they return: The toSubpathPolygons() creates one polygon for each subpath regardless of intersecting subpaths (i.e. overlapping bounding rectangles), while the toFillPolygons() functions creates only one polygon for overlapping subpaths.

The toFillPolygon() and toFillPolygons() functions first convert all the subpaths to polygons, then uses a rewinding technique to make sure that overlapping subpaths can be filled using the correct fill rule. Note that rewinding inserts additional lines in the polygon so the outline of the fill polygon does not match the outline of the path.

Examples

Qt provides the Painter Paths Example and the Vector Deformation Demo which are located in Qt's example and demo directories respectively.

The Painter Paths Example shows how painter paths can be used to build complex shapes for rendering and lets the user experiment with the filling and stroking. The Vector Deformation Demo shows how to use QPainterPath to draw text.

Painter Paths Example Vector Deformation Demo

Type Documentation

QPainterPath.ElementType

This enum describes the types of elements used to connect vertices in subpaths.

Note that elements added as closed subpaths using the addEllipse(), addPath(), addPolygon(), addRect(), addRegion() and addText() convenience functions, is actually added to the path as a collection of separate elements using the moveTo(), lineTo() and cubicTo() functions.

Constant Value Description
QPainterPath.MoveToElement 0 A new subpath. See also moveTo().
QPainterPath.LineToElement 1 A line. See also lineTo().
QPainterPath.CurveToElement 2 A curve. See also cubicTo() and quadTo().
QPainterPath.CurveToDataElement 3 The extra data required to describe a curve in a CurveToElement element.

See also elementAt() and elementCount().


Method Documentation

QPainterPath.__init__ (self)

Constructs an empty QPainterPath object.

QPainterPath.__init__ (self, QPointF startPoint)

Creates a QPainterPath object with the given startPoint as its current position.

QPainterPath.__init__ (self, QPainterPath other)

Creates a QPainterPath object that is a copy of the given path.

See also operator=().

QPainterPath.addEllipse (self, QRectF rect)

Creates an ellipse within the specified boundingRectangle and adds it to the painter path as a closed subpath.

The ellipse is composed of a clockwise curve, starting and finishing at zero degrees (the 3 o'clock position).

 QLinearGradient myGradient;
 QPen myPen;
 QRectF boundingRectangle;

 QPainterPath myPath;
 myPath.addEllipse(boundingRectangle);

 QPainter painter(this);
 painter.setBrush(myGradient);
 painter.setPen(myPen);
 painter.drawPath(myPath);

See also arcTo(), QPainter.drawEllipse(), and Composing a QPainterPath.

QPainterPath.addEllipse (self, float x, float y, float w, float h)

This is an overloaded function.

Creates an ellipse within the bounding rectangle defined by its top-left corner at (x, y), width and height, and adds it to the painter path as a closed subpath.

QPainterPath.addEllipse (self, QPointF center, float rx, float ry)

This is an overloaded function.

Creates an ellipse positioned at center with radii rx and ry, and adds it to the painter path as a closed subpath.

This function was introduced in Qt 4.4.

QPainterPath.addPath (self, QPainterPath path)

Adds the given path to this path as a closed subpath.

See also connectPath() and Composing a QPainterPath.

QPainterPath.addPolygon (self, QPolygonF polygon)

Adds the given polygon to the path as an (unclosed) subpath.

Note that the current position after the polygon has been added, is the last point in polygon. To draw a line back to the first point, use the closeSubpath() function.

 QLinearGradient myGradient;
 QPen myPen;
 QPolygonF myPolygon;

 QPainterPath myPath;
 myPath.addPolygon(myPolygon);

 QPainter painter(this);
 painter.setBrush(myGradient);
 painter.setPen(myPen);
 painter.drawPath(myPath);

See also lineTo() and Composing a QPainterPath.

QPainterPath.addRect (self, QRectF rect)

Adds the given rectangle to this path as a closed subpath.

The rectangle is added as a clockwise set of lines. The painter path's current position after the rectangle has been added is at the top-left corner of the rectangle.

 QLinearGradient myGradient;
 QPen myPen;
 QRectF myRectangle;

 QPainterPath myPath;
 myPath.addRect(myRectangle);

 QPainter painter(this);
 painter.setBrush(myGradient);
 painter.setPen(myPen);
 painter.drawPath(myPath);

See also addRegion(), lineTo(), and Composing a QPainterPath.

QPainterPath.addRect (self, float x, float y, float w, float h)

This is an overloaded function.

Adds a rectangle at position (x, y), with the given width and height, as a closed subpath.

QPainterPath.addRegion (self, QRegion region)

Adds the given region to the path by adding each rectangle in the region as a separate closed subpath.

See also addRect() and Composing a QPainterPath.

QPainterPath.addRoundedRect (self, QRectF rect, float xRadius, float yRadius, Qt.SizeMode mode = Qt.AbsoluteSize)

Adds the given rectangle rect with rounded corners to the path.

The xRadius and yRadius arguments specify the radii of the ellipses defining the corners of the rounded rectangle. When mode is Qt.RelativeSize, xRadius and yRadius are specified in percentage of half the rectangle's width and height respectively, and should be in the range 0.0 to 100.0.

This function was introduced in Qt 4.4.

See also addRect().

QPainterPath.addRoundedRect (self, float x, float y, float w, float h, float xRadius, float yRadius, Qt.SizeMode mode = Qt.AbsoluteSize)

This is an overloaded function.

Adds the given rectangle x, y, w, h with rounded corners to the path.

This function was introduced in Qt 4.4.

QPainterPath.addRoundRect (self, QRectF rect, int xRnd, int yRnd)

QPainterPath.addRoundRect (self, float x, float y, float w, float h, int xRnd, int yRnd)

QPainterPath.addRoundRect (self, QRectF rect, int roundness)

QPainterPath.addRoundRect (self, float x, float y, float w, float h, int roundness)

QPainterPath.addText (self, QPointF point, QFont f, QString text)

Adds the given text to this path as a set of closed subpaths created from the font supplied. The subpaths are positioned so that the left end of the text's baseline lies at the specified point.

 QLinearGradient myGradient;
 QPen myPen;
 QFont myFont;
 QPointF baseline(x, y);

 QPainterPath myPath;
 myPath.addText(baseline, myFont, tr("Qt"));

 QPainter painter(this);
 painter.setBrush(myGradient);
 painter.setPen(myPen);
 painter.drawPath(myPath);

See also QPainter.drawText() and Composing a QPainterPath.

QPainterPath.addText (self, float x, float y, QFont f, QString text)

This is an overloaded function.

Adds the given text to this path as a set of closed subpaths created from the font supplied. The subpaths are positioned so that the left end of the text's baseline lies at the point specified by (x, y).

float QPainterPath.angleAtPercent (self, float t)

Returns the angle of the path tangent at the percentage t. The argument t has to be between 0 and 1.

Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.

Note that similarly to the other percent methods, the percentage measurement is not linear with regards to the length if curves are present in the path. When curves are present the percentage argument is mapped to the t parameter of the Bezier equations.

QPainterPath.arcMoveTo (self, QRectF rect, float angle)

Creates a move to that lies on the arc that occupies the given rectangle at angle.

Angles are specified in degrees. Clockwise arcs can be specified using negative angles.

This function was introduced in Qt 4.2.

See also moveTo() and arcTo().

QPainterPath.arcMoveTo (self, float x, float y, float w, float h, float angle)

This is an overloaded function.

Creates a move to that lies on the arc that occupies the QRectF(x, y, width, height) at angle.

This function was introduced in Qt 4.2.

QPainterPath.arcTo (self, QRectF rect, float startAngle, float arcLength)

Creates an arc that occupies the given rectangle, beginning at the specified startAngle and extending sweepLength degrees counter-clockwise.

Angles are specified in degrees. Clockwise arcs can be specified using negative angles.

Note that this function connects the starting point of the arc to the current position if they are not already connected. After the arc has been added, the current position is the last point in arc. To draw a line back to the first point, use the closeSubpath() function.

 QLinearGradient myGradient;
 QPen myPen;

 QPointF center, startPoint;

 QPainterPath myPath;
 myPath.moveTo(center);
 myPath.arcTo(boundingRect, startAngle,
              sweepLength);

 QPainter painter(this);
 painter.setBrush(myGradient);
 painter.setPen(myPen);
 painter.drawPath(myPath);

See also arcMoveTo(), addEllipse(), QPainter.drawArc(), QPainter.drawPie(), and Composing a QPainterPath.

QPainterPath.arcTo (self, float x, float y, float w, float h, float startAngle, float arcLenght)

This is an overloaded function.

Creates an arc that occupies the rectangle QRectF(x, y, width, height), beginning at the specified startAngle and extending sweepLength degrees counter-clockwise.

QRectF QPainterPath.boundingRect (self)

Returns the bounding rectangle of this painter path as a rectangle with floating point precision.

See also controlPointRect().

QPainterPath.closeSubpath (self)

Closes the current subpath by drawing a line to the beginning of the subpath, automatically starting a new path. The current point of the new path is (0, 0).

If the subpath does not contain any elements, this function does nothing.

See also moveTo() and Composing a QPainterPath.

QPainterPath.connectPath (self, QPainterPath path)

Connects the given path to this path by adding a line from the last element of this path to the first element of the given path.

See also addPath() and Composing a QPainterPath.

bool QPainterPath.contains (self, QPointF pt)

Returns true if the given point is inside the path, otherwise returns false.

See also intersects().

bool QPainterPath.contains (self, QRectF rect)

Returns true if the given rectangle is inside the path, otherwise returns false.

bool QPainterPath.contains (self, QPainterPath p)

Returns true if the given path p is contained within the current path. Returns false if any edges of the current path and p intersect.

Set operations on paths will treat the paths as areas. Non-closed paths will be treated as implicitly closed.

This function was introduced in Qt 4.3.

See also intersects().

QRectF QPainterPath.controlPointRect (self)

Returns the rectangle containing all the points and control points in this path.

This function is significantly faster to compute than the exact boundingRect(), and the returned rectangle is always a superset of the rectangle returned by boundingRect().

See also boundingRect().

QPainterPath.cubicTo (self, QPointF ctrlPt1, QPointF ctrlPt2, QPointF endPt)

Adds a cubic Bezier curve between the current position and the given endPoint using the control points specified by c1, and c2.

After the curve is added, the current position is updated to be at the end point of the curve.

 QLinearGradient myGradient;
 QPen myPen;

 QPainterPath myPath;
 myPath.cubicTo(c1, c2, endPoint);

 QPainter painter(this);
 painter.setBrush(myGradient);
 painter.setPen(myPen);
 painter.drawPath(myPath);

See also quadTo() and Composing a QPainterPath.

QPainterPath.cubicTo (self, float ctrlPt1x, float ctrlPt1y, float ctrlPt2x, float ctrlPt2y, float endPtx, float endPty)

This is an overloaded function.

Adds a cubic Bezier curve between the current position and the end point (endPointX, endPointY) with control points specified by (c1X, c1Y) and (c2X, c2Y).

QPointF QPainterPath.currentPosition (self)

Returns the current position of the path.

Element QPainterPath.elementAt (self, int i)

Returns the element at the given index in the painter path.

See also ElementType, elementCount(), and isEmpty().

int QPainterPath.elementCount (self)

Returns the number of path elements in the painter path.

See also ElementType, elementAt(), and isEmpty().

Qt.FillRule QPainterPath.fillRule (self)

Returns the painter path's currently set fill rule.

See also setFillRule().

QPainterPath QPainterPath.intersected (self, QPainterPath r)

Returns a path which is the intersection of this path's fill area and p's fill area. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.

This function was introduced in Qt 4.3.

bool QPainterPath.intersects (self, QRectF rect)

Returns true if any point in the given rectangle intersects the path; otherwise returns false.

There is an intersection if any of the lines making up the rectangle crosses a part of the path or if any part of the rectangle overlaps with any area enclosed by the path. This function respects the current fillRule to determine what is considered inside the path.

See also contains().

bool QPainterPath.intersects (self, QPainterPath p)

Returns true if the current path intersects at any point the given path p. Also returns true if the current path contains or is contained by any part of p.

Set operations on paths will treat the paths as areas. Non-closed paths will be treated as implicitly closed.

This function was introduced in Qt 4.3.

See also contains().

bool QPainterPath.isEmpty (self)

Returns true if either there are no elements in this path, or if the only element is a MoveToElement; otherwise returns false.

See also elementCount().

float QPainterPath.length (self)

Returns the length of the current path.

QPainterPath.lineTo (self, QPointF p)

Adds a straight line from the current position to the given endPoint. After the line is drawn, the current position is updated to be at the end point of the line.

See also addPolygon(), addRect(), and Composing a QPainterPath.

QPainterPath.lineTo (self, float x, float y)

This is an overloaded function.

Draws a line from the current position to the point (x, y).

QPainterPath.moveTo (self, QPointF p)

Moves the current point to the given point, implicitly starting a new subpath and closing the previous one.

See also closeSubpath() and Composing a QPainterPath.

QPainterPath.moveTo (self, float x, float y)

This is an overloaded function.

Moves the current position to (x, y) and starts a new subpath, implicitly closing the previous path.

float QPainterPath.percentAtLength (self, float t)

Returns percentage of the whole path at the specified length len.

Note that similarly to other percent methods, the percentage measurement is not linear with regards to the length, if curves are present in the path. When curves are present the percentage argument is mapped to the t parameter of the Bezier equations.

QPointF QPainterPath.pointAtPercent (self, float t)

Returns the point at at the percentage t of the current path. The argument t has to be between 0 and 1.

Note that similarly to other percent methods, the percentage measurement is not linear with regards to the length, if curves are present in the path. When curves are present the percentage argument is mapped to the t parameter of the Bezier equations.

QPainterPath.quadTo (self, QPointF ctrlPt, QPointF endPt)

Adds a quadratic Bezier curve between the current position and the given endPoint with the control point specified by c.

After the curve is added, the current point is updated to be at the end point of the curve.

See also cubicTo() and Composing a QPainterPath.

QPainterPath.quadTo (self, float ctrlPtx, float ctrlPty, float endPtx, float endPty)

This is an overloaded function.

Adds a quadratic Bezier curve between the current point and the endpoint (endPointX, endPointY) with the control point specified by (cx, cy).

QPainterPath.setElementPositionAt (self, int i, float x, float y)

Sets the x and y coordinate of the element at index index to x and y.

This function was introduced in Qt 4.2.

QPainterPath.setFillRule (self, Qt.FillRule fillRule)

Sets the fill rule of the painter path to the given fillRule. Qt provides two methods for filling paths:

Qt.OddEvenFill (default) Qt.WindingFill

See also fillRule().

QPainterPath QPainterPath.simplified (self)

Returns a simplified version of this path. This implies merging all subpaths that intersect, and returning a path containing no intersecting edges. Consecutive parallel lines will also be merged. The simplified path will always use the default fill rule, Qt.OddEvenFill. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.

This function was introduced in Qt 4.4.

float QPainterPath.slopeAtPercent (self, float t)

Returns the slope of the path at the percentage t. The argument t has to be between 0 and 1.

Note that similarly to other percent methods, the percentage measurement is not linear with regards to the length, if curves are present in the path. When curves are present the percentage argument is mapped to the t parameter of the Bezier equations.

QPainterPath QPainterPath.subtracted (self, QPainterPath r)

Returns a path which is p's fill area subtracted from this path's fill area.

Set operations on paths will treat the paths as areas. Non-closed paths will be treated as implicitly closed. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.

This function was introduced in Qt 4.3.

QPainterPath QPainterPath.subtractedInverted (self, QPainterPath r)

QPainterPath.swap (self, QPainterPath other)

Swaps painter path other with this painter path. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QPolygonF QPainterPath.toFillPolygon (self, QMatrix matrix = QMatrix())

Converts the path into a polygon using the QTransform matrix, and returns the polygon.

The polygon is created by first converting all subpaths to polygons, then using a rewinding technique to make sure that overlapping subpaths can be filled using the correct fill rule.

Note that rewinding inserts addition lines in the polygon so the outline of the fill polygon does not match the outline of the path.

See also toSubpathPolygons(), toFillPolygons(), and QPainterPath Conversion.

QPolygonF QPainterPath.toFillPolygon (self, QTransform matrix)

This is an overloaded function.

list-of-QPolygonF QPainterPath.toFillPolygons (self, QMatrix matrix = QMatrix())

Converts the path into a list of polygons using the QTransform matrix, and returns the list.

The function differs from the toFillPolygon() function in that it creates several polygons. It is provided because it is usually faster to draw several small polygons than to draw one large polygon, even though the total number of points drawn is the same.

The toFillPolygons() function differs from the toSubpathPolygons() function in that it create only polygon for subpaths that have overlapping bounding rectangles.

Like the toFillPolygon() function, this function uses a rewinding technique to make sure that overlapping subpaths can be filled using the correct fill rule. Note that rewinding inserts addition lines in the polygons so the outline of the fill polygon does not match the outline of the path.

See also toSubpathPolygons(), toFillPolygon(), and QPainterPath Conversion.

list-of-QPolygonF QPainterPath.toFillPolygons (self, QTransform matrix)

This is an overloaded function.

QPainterPath QPainterPath.toReversed (self)

Creates and returns a reversed copy of the path.

It is the order of the elements that is reversed: If a QPainterPath is composed by calling the moveTo(), lineTo() and cubicTo() functions in the specified order, the reversed copy is composed by calling cubicTo(), lineTo() and moveTo().

list-of-QPolygonF QPainterPath.toSubpathPolygons (self, QMatrix matrix = QMatrix())

Converts the path into a list of polygons using the QTransform matrix, and returns the list.

This function creates one polygon for each subpath regardless of intersecting subpaths (i.e. overlapping bounding rectangles). To make sure that such overlapping subpaths are filled correctly, use the toFillPolygons() function instead.

See also toFillPolygons(), toFillPolygon(), and QPainterPath Conversion.

list-of-QPolygonF QPainterPath.toSubpathPolygons (self, QTransform matrix)

This is an overloaded function.

QPainterPath.translate (self, float dx, float dy)

Translates all elements in the path by (dx, dy).

This function was introduced in Qt 4.6.

See also translated().

QPainterPath.translate (self, QPointF offset)

This is an overloaded function.

Translates all elements in the path by the given offset.

This function was introduced in Qt 4.6.

See also translated().

QPainterPath QPainterPath.translated (self, float dx, float dy)

Returns a copy of the path that is translated by (dx, dy).

This function was introduced in Qt 4.6.

See also translate().

QPainterPath QPainterPath.translated (self, QPointF offset)

This is an overloaded function.

Returns a copy of the path that is translated by the given offset.

This function was introduced in Qt 4.6.

See also translate().

QPainterPath QPainterPath.united (self, QPainterPath r)

Returns a path which is the union of this path's fill area and p's fill area.

Set operations on paths will treat the paths as areas. Non-closed paths will be treated as implicitly closed. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.

This function was introduced in Qt 4.3.

See also intersected() and subtracted().

QPainterPath QPainterPath.__add__ (self, QPainterPath other)

QPainterPath QPainterPath.__and__ (self, QPainterPath other)

bool QPainterPath.__eq__ (self, QPainterPath other)

QPainterPath QPainterPath.__iadd__ (self, QPainterPath other)

QPainterPath QPainterPath.__iand__ (self, QPainterPath other)

QPainterPath QPainterPath.__ior__ (self, QPainterPath other)

QPainterPath QPainterPath.__isub__ (self, QPainterPath other)

QPainterPath QPainterPath.__mul__ (self, QMatrix m)

QPainterPath QPainterPath.__mul__ (self, QTransform m)

bool QPainterPath.__ne__ (self, QPainterPath other)

QPainterPath QPainterPath.__or__ (self, QPainterPath other)

QPainterPath QPainterPath.__sub__ (self, QPainterPath other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpainterpathstroker.html0000644000076500000240000003134312536324511022463 0ustar philstaff00000000000000 QPainterPathStroker Class Reference
  Home · All Classes · Modules

QPainterPathStroker Class Reference
[QtGui module]

The QPainterPathStroker class is used to generate fillable outlines for a given painter path. More...

Methods


Detailed Description

The QPainterPathStroker class is used to generate fillable outlines for a given painter path.

By calling the createStroke() function, passing a given QPainterPath as argument, a new painter path representing the outline of the given path is created. The newly created painter path can then be filled to draw the original painter path's outline.

You can control the various design aspects (width, cap styles, join styles and dash pattern) of the outlining using the following functions:

The setDashPattern() function accepts both a Qt.PenStyle object and a vector representation of the pattern as argument.

In addition you can specify a curve's threshold, controlling the granularity with which a curve is drawn, using the setCurveThreshold() function. The default threshold is a well adjusted value (0.25), and normally you should not need to modify it. However, you can make the curve's appearance smoother by decreasing its value.

You can also control the miter limit for the generated outline using the setMiterLimit() function. The miter limit describes how far from each join the miter join can extend. The limit is specified in the units of width so the pixelwise miter limit will be miterlimit * width. This value is only used if the join style is Qt.MiterJoin.

The painter path generated by the createStroke() function should only be used for outlining the given painter path. Otherwise it may cause unexpected behavior. Generated outlines also require the Qt.WindingFill rule which is set by default.


Method Documentation

QPainterPathStroker.__init__ (self)

Creates a new stroker.

Qt.PenCapStyle QPainterPathStroker.capStyle (self)

Returns the cap style of the generated outlines.

See also setCapStyle().

QPainterPath QPainterPathStroker.createStroke (self, QPainterPath path)

Generates a new path that is a fillable area representing the outline of the given path.

The various design aspects of the outline are based on the stroker's properties: width(), capStyle(), joinStyle(), dashPattern(), curveThreshold() and miterLimit().

The generated path should only be used for outlining the given painter path. Otherwise it may cause unexpected behavior. Generated outlines also require the Qt.WindingFill rule which is set by default.

float QPainterPathStroker.curveThreshold (self)

Returns the curve flattening threshold for the generated outlines.

See also setCurveThreshold().

float QPainterPathStroker.dashOffset (self)

Returns the dash offset for the generated outlines.

See also setDashOffset().

list-of-float QPainterPathStroker.dashPattern (self)

Returns the dash pattern for the generated outlines.

See also setDashPattern().

Qt.PenJoinStyle QPainterPathStroker.joinStyle (self)

Returns the join style of the generated outlines.

See also setJoinStyle().

float QPainterPathStroker.miterLimit (self)

Returns the miter limit for the generated outlines.

See also setMiterLimit().

QPainterPathStroker.setCapStyle (self, Qt.PenCapStyle style)

Sets the cap style of the generated outlines to style. If a dash pattern is set, each segment of the pattern is subject to the cap style.

See also capStyle().

QPainterPathStroker.setCurveThreshold (self, float threshold)

Specifies the curve flattening threshold, controlling the granularity with which the generated outlines' curve is drawn.

The default threshold is a well adjusted value (0.25), and normally you should not need to modify it. However, you can make the curve's appearance smoother by decreasing its value.

See also curveThreshold().

QPainterPathStroker.setDashOffset (self, float offset)

Sets the dash offset for the generated outlines to offset.

See the documentation for QPen.setDashOffset() for a description of the dash offset.

See also dashOffset().

QPainterPathStroker.setDashPattern (self, Qt.PenStyle)

Sets the dash pattern for the generated outlines to style.

See also dashPattern().

QPainterPathStroker.setDashPattern (self, list-of-float dashPattern)

This is an overloaded function.

Sets the dash pattern for the generated outlines to dashPattern. This function makes it possible to specify custom dash patterns.

Each element in the vector contains the lengths of the dashes and spaces in the stroke, beginning with the first dash in the first element, the first space in the second element, and alternating between dashes and spaces for each following pair of elements.

The vector can contain an odd number of elements, in which case the last element will be extended by the length of the first element when the pattern repeats.

QPainterPathStroker.setJoinStyle (self, Qt.PenJoinStyle style)

Sets the join style of the generated outlines to style.

See also joinStyle().

QPainterPathStroker.setMiterLimit (self, float length)

Sets the miter limit of the generated outlines to limit.

The miter limit describes how far from each join the miter join can extend. The limit is specified in units of the currently set width. So the pixelwise miter limit will be miterlimit * width.

This value is only used if the join style is Qt.MiterJoin.

See also miterLimit().

QPainterPathStroker.setWidth (self, float width)

Sets the width of the generated outline painter path to width.

The generated outlines will extend approximately 50% of width to each side of the given input path's original outline.

See also width().

float QPainterPathStroker.width (self)

Returns the width of the generated outlines.

See also setWidth().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpaintevent.html0000644000076500000240000001144512536324503020711 0ustar philstaff00000000000000 QPaintEvent Class Reference
  Home · All Classes · Modules

QPaintEvent Class Reference
[QtGui module]

The QPaintEvent class contains event parameters for paint events. More...

Inherits QEvent.

Methods


Detailed Description

The QPaintEvent class contains event parameters for paint events.

Paint events are sent to widgets that need to update themselves, for instance when part of a widget is exposed because a covering widget was moved.

The event contains a region() that needs to be updated, and a rect() that is the bounding rectangle of that region. Both are provided because many widgets can't make much use of region(), and rect() can be much faster than region().boundingRect().

Automatic Clipping

Painting is clipped to region() during the processing of a paint event. This clipping is performed by Qt's paint system and is independent of any clipping that may be applied to a QPainter used to draw on the paint device.

As a result, the value returned by QPainter.clipRegion() on a newly-constructed QPainter will not reflect the clip region that is used by the paint system.


Method Documentation

QPaintEvent.__init__ (self, QRegion paintRegion)

Constructs a paint event object with the region that needs to be updated. The region is specified by paintRegion.

QPaintEvent.__init__ (self, QRect paintRect)

Constructs a paint event object with the rectangle that needs to be updated. The region is specified by paintRect.

QPaintEvent.__init__ (self, QPaintEvent)

QRect QPaintEvent.rect (self)

Returns the rectangle that needs to be updated.

See also region() and QPainter.setClipRect().

QRegion QPaintEvent.region (self)

Returns the region that needs to be updated.

See also rect() and QPainter.setClipRegion().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpalette.html0000644000076500000240000011254612536324511020175 0ustar philstaff00000000000000 QPalette Class Reference
  Home · All Classes · Modules

QPalette Class Reference
[QtGui module]

The QPalette class contains color groups for each widget state. More...

Types

  • enum ColorGroup { Active, Disabled, Inactive, NColorGroups, ..., Normal }
  • enum ColorRole { WindowText, Foreground, Button, Light, ..., NoRole }

Methods

Special Methods

  • bool __eq__ (self, QPalette p)
  • bool __ne__ (self, QPalette p)

Detailed Description

The QPalette class contains color groups for each widget state.

A palette consists of three color groups: Active, Disabled, and Inactive. All widgets in Qt contain a palette and use their palette to draw themselves. This makes the user interface easily configurable and easier to keep consistent.

If you create a new widget we strongly recommend that you use the colors in the palette rather than hard-coding specific colors.

The color groups:

  • The Active group is used for the window that has keyboard focus.
  • The Inactive group is used for other windows.
  • The Disabled group is used for widgets (not windows) that are disabled for some reason.

Both active and inactive windows can contain disabled widgets. (Disabled widgets are often called inaccessible or grayed out.)

In most styles, Active and Inactive look the same.

Colors and brushes can be set for particular roles in any of a palette's color groups with setColor() and setBrush(). A color group contains a group of colors used by widgets for drawing themselves. We recommend that widgets use color group roles from the palette such as "foreground" and "base" rather than literal colors like "red" or "turquoise". The color roles are enumerated and defined in the ColorRole documentation.

We strongly recommend that you use the default palette of the current style (returned by QApplication.palette()) and modify that as necessary. This is done by Qt's widgets when they are drawn.

To modify a color group you call the functions setColor() and setBrush(), depending on whether you want a pure color or a pixmap pattern.

There are also corresponding color() and brush() getters, and a commonly used convenience function to get the ColorRole for the current ColorGroup: window(), windowText(), base(), etc.

You can copy a palette using the copy constructor and test to see if two palettes are identical using isCopyOf().

QPalette is optimized by the use of implicit sharing, so it is very efficient to pass QPalette objects as arguments.

Warning: Some styles do not use the palette for all drawing, for instance, if they make use of native theme engines. This is the case for both the Windows XP, Windows Vista, and the Mac OS X styles.


Type Documentation

QPalette.ColorGroup

Constant Value Description
QPalette.Disabled 1  
QPalette.Active 0  
QPalette.Inactive 2  
QPalette.Normal Active synonym for Active

QPalette.ColorRole

Color Roles

The ColorRole enum defines the different symbolic color roles used in current GUIs.

The central roles are:

Constant Value Description
QPalette.Window 10 A general background color.
QPalette.Background Window This value is obsolete. Use Window instead.
QPalette.WindowText 0 A general foreground color.
QPalette.Foreground WindowText This value is obsolete. Use WindowText instead.
QPalette.Base 9 Used mostly as the background color for text entry widgets, but can also be used for other painting - such as the background of combobox drop down lists and toolbar handles. It is usually white or another light color.
QPalette.AlternateBase 16 Used as the alternate background color in views with alternating row colors (see QAbstractItemView.setAlternatingRowColors()).
QPalette.ToolTipBase 18 Used as the background color for QToolTip and QWhatsThis. Tool tips use the Inactive color group of QPalette, because tool tips are not active windows.
QPalette.ToolTipText 19 Used as the foreground color for QToolTip and QWhatsThis. Tool tips use the Inactive color group of QPalette, because tool tips are not active windows.
QPalette.Text 6 The foreground color used with Base. This is usually the same as the WindowText, in which case it must provide good contrast with Window and Base.
QPalette.Button 1 The general button background color. This background can be different from Window as some styles require a different background color for buttons.
QPalette.ButtonText 8 A foreground color used with the Button color.
QPalette.BrightText 7 A text color that is very different from WindowText, and contrasts well with e.g. Dark. Typically used for text that needs to be drawn where Text or WindowText would give poor contrast, such as on pressed push buttons. Note that text colors can be used for things other than just words; text colors are usually used for text, but it's quite common to use the text color roles for lines, icons, etc.

There are some color roles used mostly for 3D bevel and shadow effects. All of these are normally derived from Window, and used in ways that depend on that relationship. For example, buttons depend on it to make the bevels look attractive, and Motif scroll bars depend on Mid to be slightly different from Window.

Constant Value Description
QPalette.Light 2 Lighter than Button color.
QPalette.Midlight 3 Between Button and Light.
QPalette.Dark 4 Darker than Button.
QPalette.Mid 5 Between Button and Dark.
QPalette.Shadow 11 A very dark color. By default, the shadow color is Qt.black.

Selected (marked) items have two roles:

Constant Value Description
QPalette.Highlight 12 A color to indicate a selected item or the current item. By default, the highlight color is Qt.darkBlue.
QPalette.HighlightedText 13 A text color that contrasts with Highlight. By default, the highlighted text color is Qt.white.

There are two color roles related to hyperlinks:

Constant Value Description
QPalette.Link 14 A text color used for unvisited hyperlinks. By default, the link color is Qt.blue.
QPalette.LinkVisited 15 A text color used for already visited hyperlinks. By default, the linkvisited color is Qt.magenta.

Note that we do not use the Link and LinkVisited roles when rendering rich text in Qt, and that we recommend that you use CSS and the QTextDocument.setDefaultStyleSheet() function to alter the appearance of links. For example:

     QTextBrowser browser;
     QColor linkColor(Qt.red);
     QString sheet = QString.fromLatin1("a { text-decoration: underline; color: %1 }").arg(linkColor.name());
     browser.document()->setDefaultStyleSheet(sheet);
Constant Value Description
QPalette.NoRole 17 No role; this special role is often used to indicate that a role has not been assigned.

Method Documentation

QPalette.__init__ (self)

Constructs a palette object that uses the application's default palette.

See also QApplication.setPalette() and QApplication.palette().

QPalette.__init__ (self, QColor button)

Constructs a palette from the button color. The other colors are automatically calculated, based on this color. Window will be the button color as well.

QPalette.__init__ (self, Qt.GlobalColor button)

Constructs a palette from the button color. The other colors are automatically calculated, based on this color. Window will be the button color as well.

QPalette.__init__ (self, QColor button, QColor background)

Constructs a palette from a button color and a window. The other colors are automatically calculated, based on these colors.

QPalette.__init__ (self, QBrush foreground, QBrush button, QBrush light, QBrush dark, QBrush mid, QBrush text, QBrush bright_text, QBrush base, QBrush background)

Constructs a palette. You can pass either brushes, pixmaps or plain colors for windowText, button, light, dark, mid, text, bright_text, base and window.

See also QBrush.

QPalette.__init__ (self, QColor foreground, QColor background, QColor light, QColor dark, QColor mid, QColor text, QColor base)

QPalette.__init__ (self, QPalette palette)

QPalette.__init__ (self, QVariant variant)

Constructs a copy of p.

This constructor is fast thanks to implicit sharing.

QBrush QPalette.alternateBase (self)

Returns the alternate base brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.background (self)

QBrush QPalette.base (self)

Returns the base brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.brightText (self)

Returns the bright text foreground brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.brush (self, ColorGroup cg, ColorRole cr)

Returns the brush in the specified color group, used for the given color role.

See also color(), setBrush(), and ColorRole.

QBrush QPalette.brush (self, ColorRole cr)

This is an overloaded function.

Returns the brush that has been set for the given color role in the current ColorGroup.

See also color(), setBrush(), and ColorRole.

QBrush QPalette.button (self)

Returns the button brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.buttonText (self)

Returns the button text foreground brush of the current color group.

See also ColorRole and brush().

int QPalette.cacheKey (self)

Returns a number that identifies the contents of this QPalette object. Distinct QPalette objects can have the same key if they refer to the same contents.

The cacheKey() will change when the palette is altered.

QColor QPalette.color (self, ColorGroup cg, ColorRole cr)

Returns the color in the specified color group, used for the given color role.

See also brush(), setColor(), and ColorRole.

QColor QPalette.color (self, ColorRole cr)

This is an overloaded function.

Returns the color that has been set for the given color role in the current ColorGroup.

See also brush() and ColorRole.

ColorGroup QPalette.currentColorGroup (self)

Returns the palette's current color group.

See also setCurrentColorGroup().

QBrush QPalette.dark (self)

Returns the dark brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.foreground (self)

QBrush QPalette.highlight (self)

Returns the highlight brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.highlightedText (self)

Returns the highlighted text brush of the current color group.

See also ColorRole and brush().

bool QPalette.isBrushSet (self, ColorGroup cg, ColorRole cr)

Returns true if the ColorGroup cg and ColorRole cr has been set previously on this palette; otherwise returns false.

This function was introduced in Qt 4.2.

See also setBrush().

bool QPalette.isCopyOf (self, QPalette p)

Returns true if this palette and p are copies of each other, i.e. one of them was created as a copy of the other and neither was subsequently modified; otherwise returns false. This is much stricter than equality.

See also operator=() and operator==().

bool QPalette.isEqual (self, ColorGroup cr1, ColorGroup cr2)

Returns true (usually quickly) if color group cg1 is equal to cg2; otherwise returns false.

QBrush QPalette.light (self)

Returns the light brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.link (self)

Returns the unvisited link text brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.linkVisited (self)

Returns the visited link text brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.mid (self)

Returns the mid brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.midlight (self)

Returns the midlight brush of the current color group.

See also ColorRole and brush().

QPalette QPalette.resolve (self, QPalette)

Returns a new QPalette that has attributes copied from other.

int QPalette.resolve (self)

QPalette.resolve (self, int mask)

int QPalette.serialNumber (self)

QPalette.setBrush (self, ColorGroup cg, ColorRole cr, QBrush brush)

Sets the brush for the given color role to the specified brush for all groups in the palette.

See also brush(), setColor(), and ColorRole.

QPalette.setBrush (self, ColorRole acr, QBrush abrush)

This is an overloaded function.

Sets the brush in the specified color group, used for the given color role, to brush.

See also brush(), setColor(), and ColorRole.

QPalette.setColor (self, ColorGroup acg, ColorRole acr, QColor acolor)

Sets the color in the specified color group, used for the given color role, to the specified solid color.

See also setBrush(), color(), and ColorRole.

QPalette.setColor (self, ColorRole acr, QColor acolor)

This is an overloaded function.

Sets the color used for the given color role, in all color groups, to the specified solid color.

See also brush(), setColor(), and ColorRole.

QPalette.setColorGroup (self, ColorGroup cr, QBrush foreground, QBrush button, QBrush light, QBrush dark, QBrush mid, QBrush text, QBrush bright_text, QBrush base, QBrush background)

Sets a the group at cg. You can pass either brushes, pixmaps or plain colors for windowText, button, light, dark, mid, text, bright_text, base and window.

See also QBrush.

QPalette.setCurrentColorGroup (self, ColorGroup cg)

Set the palette's current color group to cg.

See also currentColorGroup().

QBrush QPalette.shadow (self)

Returns the shadow brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.text (self)

Returns the text foreground brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.toolTipBase (self)

Returns the tool tip base brush of the current color group. This brush is used by QToolTip and QWhatsThis.

Note: Tool tips use the Inactive color group of QPalette, because tool tips are not active windows.

This function was introduced in Qt 4.4.

See also ColorRole and brush().

QBrush QPalette.toolTipText (self)

Returns the tool tip text brush of the current color group. This brush is used by QToolTip and QWhatsThis.

Note: Tool tips use the Inactive color group of QPalette, because tool tips are not active windows.

This function was introduced in Qt 4.4.

See also ColorRole and brush().

QBrush QPalette.window (self)

Returns the window (general background) brush of the current color group.

See also ColorRole and brush().

QBrush QPalette.windowText (self)

Returns the window text (general foreground) brush of the current color group.

See also ColorRole and brush().

bool QPalette.__eq__ (self, QPalette p)

bool QPalette.__ne__ (self, QPalette p)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpangesture.html0000644000076500000240000001005312536324504020704 0ustar philstaff00000000000000 QPanGesture Class Reference
  Home · All Classes · Modules

QPanGesture Class Reference
[QtGui module]

The QPanGesture class describes a panning gesture made by the user. More...

Inherits QGesture.

Methods


Detailed Description

The QPanGesture class describes a panning gesture made by the user.

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures Programming document.


Method Documentation

QPanGesture.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

float QPanGesture.acceleration (self)

QPointF QPanGesture.delta (self)

QPointF QPanGesture.lastOffset (self)

QPointF QPanGesture.offset (self)

QPanGesture.setAcceleration (self, float value)

QPanGesture.setLastOffset (self, QPointF value)

QPanGesture.setOffset (self, QPointF value)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qparallelanimationgroup.html0000644000076500000240000001355512536324473023317 0ustar philstaff00000000000000 QParallelAnimationGroup Class Reference
  Home · All Classes · Modules

QParallelAnimationGroup Class Reference
[QtCore module]

The QParallelAnimationGroup class provides a parallel group of animations. More...

Inherits QAnimationGroup.

Methods


Detailed Description

The QParallelAnimationGroup class provides a parallel group of animations.

QParallelAnimationGroup--a container for animations--starts all its animations when it is started itself, i.e., runs all animations in parallel. The animation group finishes when the longest lasting animation has finished.

You can treat QParallelAnimation as any other QAbstractAnimation, e.g., pause, resume, or add it to other animation groups.

 QParallelAnimationGroup *group = new QParallelAnimationGroup;
 group->addAnimation(anim1);
 group->addAnimation(anim2);

 group->start();

In this example, anim1 and anim2 are two QPropertyAnimations that have already been set up.


Method Documentation

QParallelAnimationGroup.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QParallelAnimationGroup. parent is passed to QObject's constructor.

int QParallelAnimationGroup.duration (self)

Reimplemented from QAbstractAnimation.duration().

bool QParallelAnimationGroup.event (self, QEvent event)

Reimplemented from QObject.event().

QParallelAnimationGroup.updateCurrentTime (self, int currentTime)

Reimplemented from QAbstractAnimation.updateCurrentTime().

QParallelAnimationGroup.updateDirection (self, QAbstractAnimation.Direction direction)

Reimplemented from QAbstractAnimation.updateDirection().

QParallelAnimationGroup.updateState (self, QAbstractAnimation.State newState, QAbstractAnimation.State oldState)

Reimplemented from QAbstractAnimation.updateState().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpauseanimation.html0000644000076500000240000001221712536324473021555 0ustar philstaff00000000000000 QPauseAnimation Class Reference
  Home · All Classes · Modules

QPauseAnimation Class Reference
[QtCore module]

The QPauseAnimation class provides a pause for QSequentialAnimationGroup. More...

Inherits QAbstractAnimation.

Methods


Detailed Description

The QPauseAnimation class provides a pause for QSequentialAnimationGroup.

If you wish to introduce a delay between animations in a QSequentialAnimationGroup, you can insert a QPauseAnimation. This class does not animate anything, but does not finish before a specified number of milliseconds have elapsed from when it was started. You specify the duration of the pause in the constructor. It can also be set directly with setDuration().

It is not necessary to construct a QPauseAnimation yourself. QSequentialAnimationGroup provides the convenience functions addPause() and insertPause(). These functions simply take the number of milliseconds the pause should last.


Method Documentation

QPauseAnimation.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QPauseAnimation. parent is passed to QObject's constructor. The default duration is 0.

QPauseAnimation.__init__ (self, int msecs, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QPauseAnimation. msecs is the duration of the pause. parent is passed to QObject's constructor.

int QPauseAnimation.duration (self)

bool QPauseAnimation.event (self, QEvent e)

Reimplemented from QObject.event().

QPauseAnimation.setDuration (self, int msecs)

QPauseAnimation.updateCurrentTime (self, int)

Reimplemented from QAbstractAnimation.updateCurrentTime().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpen.html0000644000076500000240000007504012536324511017316 0ustar philstaff00000000000000 QPen Class Reference
  Home · All Classes · Modules

QPen Class Reference
[QtGui module]

The QPen class defines how a QPainter should draw lines and outlines of shapes. More...

Methods

Special Methods


Detailed Description

A QColor may be used whenever a QPen is expected.

The QPen class defines how a QPainter should draw lines and outlines of shapes.

A pen has a style(), width(), brush(), capStyle() and joinStyle().

The pen style defines the line type. The brush is used to fill strokes generated with the pen. Use the QBrush class to specify fill styles. The cap style determines the line end caps that can be drawn using QPainter, while the join style describes how joins between two lines are drawn. The pen width can be specified in both integer (width()) and floating point (widthF()) precision. A line width of zero indicates a cosmetic pen. This means that the pen width is always drawn one pixel wide, independent of the transformation set on the painter.

The various settings can easily be modified using the corresponding setStyle(), setWidth(), setBrush(), setCapStyle() and setJoinStyle() functions (note that the painter's pen must be reset when altering the pen's properties).

For example:

 QPainter painter(this);
 QPen pen(Qt.green, 3, Qt.DashDotLine, Qt.RoundCap, Qt.RoundJoin);
 painter.setPen(pen);

which is equivalent to

 QPainter painter(this);
 QPen pen;  // creates a default pen

 pen.setStyle(Qt.DashDotLine);
 pen.setWidth(3);
 pen.setBrush(Qt.green);
 pen.setCapStyle(Qt.RoundCap);
 pen.setJoinStyle(Qt.RoundJoin);

 painter.setPen(pen);

The default pen is a solid black brush with 0 width, square cap style (Qt.SquareCap), and bevel join style (Qt.BevelJoin).

In addition QPen provides the color() and setColor() convenience functions to extract and set the color of the pen's brush, respectively. Pens may also be compared and streamed.

For more information about painting in general, see the Paint System documentation.

Pen Style

Qt provides several built-in styles represented by the Qt.PenStyle enum:

Qt.SolidLine Qt.DashLine Qt.DotLine
Qt.DashDotLine Qt.DashDotDotLine Qt.CustomDashLine

Simply use the setStyle() function to convert the pen style to either of the built-in styles, except the Qt.CustomDashLine style which we will come back to shortly. Setting the style to Qt.NoPen tells the painter to not draw lines or outlines. The default pen style is Qt.SolidLine.

Since Qt 4.1 it is also possible to specify a custom dash pattern using the setDashPattern() function which implicitly converts the style of the pen to Qt.CustomDashLine. The pattern argument, a QVector, must be specified as an even number of qreal entries where the entries 1, 3, 5... are the dashes and 2, 4, 6... are the spaces. For example, the custom pattern shown above is created using the following code:

 QPen pen;
 QVector<qreal> dashes;
 qreal space = 4;

 dashes << 1 << space << 3 << space << 9 << space
            << 27 << space << 9 << space;

 pen.setDashPattern(dashes);

Note that the dash pattern is specified in units of the pens width, e.g. a dash of length 5 in width 10 is 50 pixels long.

The currently set dash pattern can be retrieved using the dashPattern() function. Use the isSolid() function to determine whether the pen has a solid fill, or not.

Cap Style

The cap style defines how the end points of lines are drawn using QPainter. The cap style only apply to wide lines, i.e. when the width is 1 or greater. The Qt.PenCapStyle enum provides the following styles:

Qt.SquareCap Qt.FlatCap Qt.RoundCap

The Qt.SquareCap style is a square line end that covers the end point and extends beyond it by half the line width. The Qt.FlatCap style is a square line end that does not cover the end point of the line. And the Qt.RoundCap style is a rounded line end covering the end point.

The default is Qt.SquareCap.

Whether or not end points are drawn when the pen width is 0 or 1 depends on the cap style. Using Qt.SquareCap or Qt.RoundCap they are drawn, using Qt.FlatCap they are not drawn.

Join Style

The join style defines how joins between two connected lines can be drawn using QPainter. The join style only apply to wide lines, i.e. when the width is 1 or greater. The Qt.PenJoinStyle enum provides the following styles:

Qt.BevelJoin Qt.MiterJoin Qt.RoundJoin

The Qt.BevelJoin style fills the triangular notch between the two lines. The Qt.MiterJoin style extends the lines to meet at an angle. And the Qt.RoundJoin style fills a circular arc between the two lines.

The default is Qt.BevelJoin.

When the Qt.MiterJoin style is applied, it is possible to use the setMiterLimit() function to specify how far the miter join can extend from the join point. The miterLimit() is used to reduce artifacts between line joins where the lines are close to parallel.

The miterLimit() must be specified in units of the pens width, e.g. a miter limit of 5 in width 10 is 50 pixels long. The default miter limit is 2, i.e. twice the pen width in pixels.

The Path Stroking Demo

The Path Stroking demo shows Qt's built-in dash patterns and shows how custom patterns can be used to extend the range of available patterns.


Method Documentation

QPen.__init__ (self)

Constructs a default black solid line pen with 0 width.

QPen.__init__ (self, Qt.PenStyle)

Constructs a black pen with 0 width and the given style.

See also setStyle().

QPen.__init__ (self, QColor color)

Constructs a solid line pen with 0 width and the given color.

See also setBrush() and setColor().

QPen.__init__ (self, QBrush brush, float width, Qt.PenStyle style = Qt.SolidLine, Qt.PenCapStyle cap = Qt.SquareCap, Qt.PenJoinStyle join = Qt.BevelJoin)

Constructs a pen with the specified brush, width, pen style, cap style and join style.

See also setBrush(), setWidth(), setStyle(), setCapStyle(), and setJoinStyle().

QPen.__init__ (self, QPen pen)

Constructs a pen that is a copy of the given pen.

QPen.__init__ (self, QVariant variant)

QBrush QPen.brush (self)

Returns the brush used to fill strokes generated with this pen.

See also setBrush().

Qt.PenCapStyle QPen.capStyle (self)

Returns the pen's cap style.

See also setCapStyle() and Cap Style.

QColor QPen.color (self)

Returns the color of this pen's brush.

See also brush() and setColor().

float QPen.dashOffset (self)

Returns the dash offset for the pen.

See also setDashOffset().

list-of-float QPen.dashPattern (self)

Returns the dash pattern of this pen.

See also setDashPattern(), style(), and isSolid().

bool QPen.isCosmetic (self)

Returns true if the pen is cosmetic; otherwise returns false.

Cosmetic pens are used to draw strokes that have a constant width regardless of any transformations applied to the QPainter they are used with. Drawing a shape with a cosmetic pen ensures that its outline will have the same thickness at different scale factors.

A zero width pen is cosmetic by default; pens with a non-zero width are non-cosmetic.

See also setCosmetic() and widthF().

bool QPen.isSolid (self)

Returns true if the pen has a solid fill, otherwise false.

See also style() and dashPattern().

Qt.PenJoinStyle QPen.joinStyle (self)

Returns the pen's join style.

See also setJoinStyle() and Join Style.

float QPen.miterLimit (self)

Returns the miter limit of the pen. The miter limit is only relevant when the join style is set to Qt.MiterJoin.

See also setMiterLimit() and Join Style.

QPen.setBrush (self, QBrush brush)

Sets the brush used to fill strokes generated with this pen to the given brush.

See also brush() and setColor().

QPen.setCapStyle (self, Qt.PenCapStyle pcs)

Sets the pen's cap style to the given style. The default value is Qt.SquareCap.

See also capStyle() and Cap Style.

QPen.setColor (self, QColor color)

Sets the color of this pen's brush to the given color.

See also setBrush() and color().

QPen.setCosmetic (self, bool cosmetic)

Sets this pen to cosmetic or non-cosmetic, depending on the value of cosmetic.

See also isCosmetic().

QPen.setDashOffset (self, float doffset)

Sets the dash offset (the starting point on the dash pattern) for this pen to the offset specified. The offset is measured in terms of the units used to specify the dash pattern.

For example, a pattern where each stroke is four units long, followed by a gap of two units, will begin with the stroke when drawn as a line.

However, if the dash offset is set to 4.0, any line drawn will begin with the gap. Values of the offset up to 4.0 will cause part of the stroke to be drawn first, and values of the offset between 4.0 and 6.0 will cause the line to begin with part of the gap.

Note: This implicitly converts the style of the pen to Qt.CustomDashLine.

See also dashOffset().

QPen.setDashPattern (self, list-of-float pattern)

Sets the dash pattern for this pen to the given pattern. This implicitly converts the style of the pen to Qt.CustomDashLine.

The pattern must be specified as an even number of positive entries where the entries 1, 3, 5... are the dashes and 2, 4, 6... are the spaces. For example:

 QPen pen;
 QVector<qreal> dashes;
 qreal space = 4;
 dashes << 1 << space << 3 << space << 9 << space
            << 27 << space << 9 << space;
 pen.setDashPattern(dashes);

The dash pattern is specified in units of the pens width; e.g. a dash of length 5 in width 10 is 50 pixels long. Note that a pen with zero width is equivalent to a cosmetic pen with a width of 1 pixel.

Each dash is also subject to cap styles so a dash of 1 with square cap set will extend 0.5 pixels out in each direction resulting in a total width of 2.

Note that the default cap style is Qt.SquareCap, meaning that a square line end covers the end point and extends beyond it by half the line width.

See also setStyle(), dashPattern(), setCapStyle(), and setCosmetic().

QPen.setJoinStyle (self, Qt.PenJoinStyle pcs)

Sets the pen's join style to the given style. The default value is Qt.BevelJoin.

See also joinStyle() and Join Style.

QPen.setMiterLimit (self, float limit)

Sets the miter limit of this pen to the given limit.

The miter limit describes how far a miter join can extend from the join point. This is used to reduce artifacts between line joins where the lines are close to parallel.

This value does only have effect when the pen style is set to Qt.MiterJoin. The value is specified in units of the pen's width, e.g. a miter limit of 5 in width 10 is 50 pixels long. The default miter limit is 2, i.e. twice the pen width in pixels.

See also miterLimit(), setJoinStyle(), and Join Style.

QPen.setStyle (self, Qt.PenStyle)

Sets the pen style to the given style.

See the Qt.PenStyle documentation for a list of the available styles. Since Qt 4.1 it is also possible to specify a custom dash pattern using the setDashPattern() function which implicitly converts the style of the pen to Qt.CustomDashLine.

Note: This function resets the dash offset to zero.

See also style() and Pen Style.

QPen.setWidth (self, int width)

Sets the pen width to the given width in pixels with integer precision.

A line width of zero indicates a cosmetic pen. This means that the pen width is always drawn one pixel wide, independent of the transformation set on the painter.

Setting a pen width with a negative value is not supported.

See also setWidthF() and width().

QPen.setWidthF (self, float width)

Sets the pen width to the given width in pixels with floating point precision.

A line width of zero indicates a cosmetic pen. This means that the pen width is always drawn one pixel wide, independent of the transformation on the painter.

Setting a pen width with a negative value is not supported.

See also setWidth() and widthF().

Qt.PenStyle QPen.style (self)

Returns the pen style.

See also setStyle() and Pen Style.

QPen.swap (self, QPen other)

Swaps pen other with this pen. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

int QPen.width (self)

Returns the pen width with integer precision.

See also setWidth() and widthF().

float QPen.widthF (self)

Returns the pen width with floating point precision.

See also setWidthF() and width().

bool QPen.__eq__ (self, QPen p)

bool QPen.__ne__ (self, QPen p)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpersistentmodelindex.html0000644000076500000240000002263512536324471023014 0ustar philstaff00000000000000 QPersistentModelIndex Class Reference
  Home · All Classes · Modules

QPersistentModelIndex Class Reference
[QtCore module]

The QPersistentModelIndex class is used to locate data in a data model. More...

Methods

  • __init__ (self)
  • __init__ (self, QModelIndex index)
  • __init__ (self, QPersistentModelIndex other)
  • QModelIndex child (self, int row, int column)
  • int column (self)
  • QVariant data (self, int role = Qt.DisplayRole)
  • Qt.ItemFlags flags (self)
  • bool isValid (self)
  • QAbstractItemModel model (self)
  • QModelIndex parent (self)
  • int row (self)
  • QModelIndex sibling (self, int row, int column)

Special Methods

  • bool __eq__ (self, QPersistentModelIndex other)
  • bool __eq__ (self, QModelIndex other)
  • bool __ge__ (self, QPersistentModelIndex other)
  • int __hash__ (self)
  • bool __lt__ (self, QPersistentModelIndex other)
  • bool __ne__ (self, QPersistentModelIndex other)
  • bool __ne__ (self, QModelIndex other)

Detailed Description

The QPersistentModelIndex class is used to locate data in a data model.

A QPersistentModelIndex is a model index that can be stored by an application, and later used to access information in a model. Unlike the QModelIndex class, it is safe to store a QPersistentModelIndex since the model will ensure that references to items will continue to be valid as long as they can be accessed by the model.

It is good practice to check that persistent model indexes are valid before using them.


Method Documentation

QPersistentModelIndex.__init__ (self)

Creates a new QPersistentModelIndex that is a copy of the model index.

QPersistentModelIndex.__init__ (self, QModelIndex index)

QPersistentModelIndex.__init__ (self, QPersistentModelIndex other)

Creates a new QPersistentModelIndex that is a copy of the other persistent model index.

QModelIndex QPersistentModelIndex.child (self, int row, int column)

Returns the child of the model index that is stored in the given row and column.

See also parent() and sibling().

int QPersistentModelIndex.column (self)

Returns the column this persistent model index refers to.

QVariant QPersistentModelIndex.data (self, int role = Qt.DisplayRole)

Returns the data for the given role for the item referred to by the index.

See also Qt.ItemDataRole and QAbstractItemModel.setData().

Qt.ItemFlags QPersistentModelIndex.flags (self)

Returns the flags for the item referred to by the index.

This function was introduced in Qt 4.2.

bool QPersistentModelIndex.isValid (self)

Returns true if this persistent model index is valid; otherwise returns false.

A valid index belongs to a model, and has non-negative row and column numbers.

See also model(), row(), and column().

QAbstractItemModel QPersistentModelIndex.model (self)

Returns the model that the index belongs to.

QModelIndex QPersistentModelIndex.parent (self)

Returns the parent QModelIndex for this persistent index, or an invalid QModelIndex if it has no parent.

See also child(), sibling(), and model().

int QPersistentModelIndex.row (self)

Returns the row this persistent model index refers to.

QModelIndex QPersistentModelIndex.sibling (self, int row, int column)

Returns the sibling at row and column or an invalid QModelIndex if there is no sibling at this position.

See also parent() and child().

bool QPersistentModelIndex.__eq__ (self, QPersistentModelIndex other)

bool QPersistentModelIndex.__eq__ (self, QModelIndex other)

bool QPersistentModelIndex.__ge__ (self, QPersistentModelIndex other)

int QPersistentModelIndex.__hash__ (self)

bool QPersistentModelIndex.__lt__ (self, QPersistentModelIndex other)

bool QPersistentModelIndex.__ne__ (self, QPersistentModelIndex other)

bool QPersistentModelIndex.__ne__ (self, QModelIndex other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpicture.html0000644000076500000240000003216612536324511020211 0ustar philstaff00000000000000 QPicture Class Reference
  Home · All Classes · Modules

QPicture Class Reference
[QtGui module]

The QPicture class is a paint device that records and replays QPainter commands. More...

Inherits QPaintDevice.

Methods

Static Methods


Detailed Description

The QPicture class is a paint device that records and replays QPainter commands.

A picture serializes painter commands to an IO device in a platform-independent format. They are sometimes referred to as meta-files.

Qt pictures use a proprietary binary format. Unlike native picture (meta-file) formats on many window systems, Qt pictures have no limitations regarding their contents. Everything that can be painted on a widget or pixmap (e.g., fonts, pixmaps, regions, transformed graphics, etc.) can also be stored in a picture.

QPicture is resolution independent, i.e. a QPicture can be displayed on different devices (for example svg, pdf, ps, printer and screen) looking the same. This is, for instance, needed for WYSIWYG print preview. QPicture runs in the default system dpi, and scales the painter to match differences in resolution depending on the window system.

Example of how to record a picture:

         QPicture picture;
         QPainter painter;
         painter.begin(&picture);           // paint in picture
         painter.drawEllipse(10,20, 80,70); // draw an ellipse
         painter.end();                     // painting done
         picture.save("drawing.pic");       // save picture

Note that the list of painter commands is reset on each call to the QPainter.begin() function.

Example of how to replay a picture:

         QPicture picture;
         picture.load("drawing.pic");           // load picture
         QPainter painter;
         painter.begin(&myImage);               // paint in myImage
         painter.drawPicture(0, 0, picture);    // draw the picture at (0,0)
         painter.end();                         // painting done

Pictures can also be drawn using play(). Some basic data about a picture is available, for example, size(), isNull() and boundingRect().


Method Documentation

QPicture.__init__ (self, int formatVersion = -1)

Constructs an empty picture.

The formatVersion parameter may be used to create a QPicture that can be read by applications that are compiled with earlier versions of Qt.

Note that the default formatVersion is -1 which signifies the current release, i.e. for Qt 4.0 a formatVersion of 7 is the same as the default formatVersion of -1.

Reading pictures generated by earlier versions of Qt is not supported in Qt 4.0.

QPicture.__init__ (self, QPicture)

Constructs a copy of pic.

This constructor is fast thanks to implicit sharing.

QRect QPicture.boundingRect (self)

Returns the picture's bounding rectangle or an invalid rectangle if the picture contains no data.

See also setBoundingRect().

str QPicture.data (self)

Returns a pointer to the picture data. The pointer is only valid until the next non-const function is called on this picture. The returned pointer is 0 if the picture contains no data.

See also setData(), size(), and isNull().

QPicture.detach (self)

int QPicture.devType (self)

QStringList QPicture.inputFormatList ()

list-of-QByteArray QPicture.inputFormats ()

bool QPicture.isDetached (self)

bool QPicture.isNull (self)

Returns true if the picture contains no data; otherwise returns false.

bool QPicture.load (self, QIODevice dev, str format = None)

Loads a picture from the file specified by fileName and returns true if successful; otherwise returns false.

Please note that the format parameter has been deprecated and will have no effect.

See also save().

bool QPicture.load (self, QString fileName, str format = None)

This is an overloaded function.

dev is the device to use for loading.

int QPicture.metric (self, QPaintDevice.PaintDeviceMetric m)

QStringList QPicture.outputFormatList ()

list-of-QByteArray QPicture.outputFormats ()

QPaintEngine QPicture.paintEngine (self)

str QPicture.pictureFormat (QString fileName)

bool QPicture.play (self, QPainter p)

Replays the picture using painter, and returns true if successful; otherwise returns false.

This function does exactly the same as QPainter.drawPicture() with (x, y) = (0, 0).

bool QPicture.save (self, QIODevice dev, str format = None)

Saves a picture to the file specified by fileName and returns true if successful; otherwise returns false.

Please note that the format parameter has been deprecated and will have no effect.

See also load().

bool QPicture.save (self, QString fileName, str format = None)

This is an overloaded function.

dev is the device to use for saving.

QPicture.setBoundingRect (self, QRect r)

Sets the picture's bounding rectangle to r. The automatically calculated value is overridden.

See also boundingRect().

QPicture.setData (self, str data)

Sets the picture data directly from data and size. This function copies the input data.

See also data() and size().

int QPicture.size (self)

Returns the size of the picture data.

See also data().

QPicture.swap (self, QPicture other)

Swaps picture other with this picture. This operation is very fast and never fails.

This function was introduced in Qt 4.8.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpictureio.html0000644000076500000240000004616312536324511020543 0ustar philstaff00000000000000 QPictureIO Class Reference
  Home · All Classes · Modules

QPictureIO Class Reference
[QtGui module]

The QPictureIO class contains parameters for loading and saving pictures. More...

Methods

Static Methods


Detailed Description

The QPictureIO class contains parameters for loading and saving pictures.

QPictureIO contains a QIODevice object that is used for picture data I/O. The programmer can install new picture file formats in addition to those that Qt provides.

You don't normally need to use this class; QPicture.load(), QPicture.save().


Method Documentation

QPictureIO.__init__ (self)

Constructs a QPictureIO object with all parameters set to zero.

QPictureIO.__init__ (self, QIODevice ioDevice, str format)

Constructs a QPictureIO object with the I/O device ioDevice and a format tag.

QPictureIO.__init__ (self, QString fileName, str format)

Constructs a QPictureIO object with the file name fileName and a format tag.

QPictureIO.defineIOHandler (str format, str header, str flags, callable read_picture, callable write_picture)

The read_picture argument may also be None.

The write_picture argument may also be None.

Defines a picture I/O handler for the picture format called format, which is recognized using the regular expression defined in header, read using readPicture and written using writePicture.

flags is a string of single-character flags for this format. The only flag defined currently is T (upper case), so the only legal value for flags are "T" and the empty string. The "T" flag means that the picture file is a text file, and Qt should treat all newline conventions as equivalent. (XPM files and some PPM files are text files for example.)

format is used to select a handler to write a QPicture; header is used to select a handler to read an picture file.

If readPicture is a null pointer, the QPictureIO will not be able to read pictures in format. If writePicture is a null pointer, the QPictureIO will not be able to write pictures in format. If both are null, the QPictureIO object is valid but useless.

Example:

 void readSVG(QPictureIO *picture)
 {
     // read the picture using the picture->ioDevice()
 }

 void writeSVG(QPictureIO *picture)
 {
     // write the picture using the picture->ioDevice()
 }

     // add the SVG picture handler
     // ...

Before the regular expression test, all the 0 bytes in the file header are converted to 1 bytes. This is done because when Qt was ASCII-based, QRegExp could not handle 0 bytes in strings.

The regexp is only applied on the first 14 bytes of the file.

(Note that if one handlerIO supports writing a format and another supports reading it, Qt supports both reading and writing. If two handlers support the same operation, Qt chooses one arbitrarily.)

QString QPictureIO.description (self)

Returns the picture description string.

See also setDescription().

QString QPictureIO.fileName (self)

Returns the file name currently set.

See also setFileName().

str QPictureIO.format (self)

Returns the picture format string or 0 if no format has been explicitly set.

See also setFormat().

float QPictureIO.gamma (self)

Returns the gamma value at which the picture will be viewed.

See also setGamma().

list-of-QByteArray QPictureIO.inputFormats ()

Returns a sorted list of picture formats that are supported for picture input.

QIODevice QPictureIO.ioDevice (self)

Returns the IO device currently set.

See also setIODevice().

list-of-QByteArray QPictureIO.outputFormats ()

Returns a sorted list of picture formats that are supported for picture output.

str QPictureIO.parameters (self)

Returns the picture's parameters string.

See also setParameters().

QPicture QPictureIO.picture (self)

Returns the picture currently set.

See also setPicture().

QByteArray QPictureIO.pictureFormat (QString fileName)

Returns a string that specifies the picture format of the file fileName, or null if the file cannot be read or if the format is not recognized.

QByteArray QPictureIO.pictureFormat (QIODevice)

This is an overloaded function.

Returns a string that specifies the picture format of the picture read from IO device d, or 0 if the device cannot be read or if the format is not recognized.

Make sure that d is at the right position in the device (for example, at the beginning of the file).

See also QIODevice.at().

int QPictureIO.quality (self)

Returns the quality of the written picture, related to the compression ratio.

See also setQuality() and QPicture.save().

bool QPictureIO.read (self)

Reads an picture into memory and returns true if the picture was successfully read; otherwise returns false.

Before reading an picture you must set an IO device or a file name. If both an IO device and a file name have been set, the IO device will be used.

Setting the picture file format string is optional.

Note that this function does not set the format used to read the picture. If you need that information, use the pictureFormat() static functions.

Example:

         QPictureIO iio;
         QPixmap  pixmap;
         iio.setFileName("vegeburger.pic");
         if (iio.read()) {        // OK
             QPicture picture = iio.picture();
             QPainter painter(&pixmap);
             painter.drawPicture(0, 0, picture);
         }

See also setIODevice(), setFileName(), setFormat(), write(), and QPixmap.load().

QPictureIO.setDescription (self, QString)

Sets the picture description string for picture handlers that support picture descriptions to description.

Currently, no picture format supported by Qt uses the description string.

See also description().

QPictureIO.setFileName (self, QString)

Sets the name of the file to read or write an picture from to fileName.

See also fileName() and setIODevice().

QPictureIO.setFormat (self, str)

Sets the picture format to format for the picture to be read or written.

It is necessary to specify a format before writing an picture, but it is not necessary to specify a format before reading an picture.

If no format has been set, Qt guesses the picture format before reading it. If a format is set the picture will only be read if it has that format.

See also read(), write(), and format().

QPictureIO.setGamma (self, float)

Sets the gamma value at which the picture will be viewed to gamma. If the picture format stores a gamma value for which the picture is intended to be used, then this setting will be used to modify the picture. Setting to 0.0 will disable gamma correction (i.e. any specification in the file will be ignored).

The default value is 0.0.

See also gamma().

QPictureIO.setIODevice (self, QIODevice)

Sets the IO device to be used for reading or writing an picture.

Setting the IO device allows pictures to be read/written to any block-oriented QIODevice.

If ioDevice is not null, this IO device will override file name settings.

See also setFileName().

QPictureIO.setParameters (self, str)

Sets the picture's parameter string to parameters. This is for picture handlers that require special parameters.

Although the current picture formats supported by Qt ignore the parameters string, it may be used in future extensions or by contributions (for example, JPEG).

See also parameters().

QPictureIO.setPicture (self, QPicture)

Sets the picture to picture.

See also picture().

QPictureIO.setQuality (self, int)

Sets the quality of the written picture to q, related to the compression ratio.

q must be in the range -1..100. Specify 0 to obtain small compressed files, 100 for large uncompressed files. (-1 signifies the default compression.)

See also quality() and QPicture.save().

QPictureIO.setStatus (self, int)

Sets the picture IO status to status. A non-zero value indicates an error, whereas 0 means that the IO operation was successful.

See also status().

int QPictureIO.status (self)

Returns the picture's IO status. A non-zero value indicates an error, whereas 0 means that the IO operation was successful.

See also setStatus().

bool QPictureIO.write (self)

Writes an picture to an IO device and returns true if the picture was successfully written; otherwise returns false.

Before writing an picture you must set an IO device or a file name. If both an IO device and a file name have been set, the IO device will be used.

The picture will be written using the specified picture format.

Example:

         QPictureIO iio;
         QPicture   picture;
         QPainter painter(&picture);
         painter.drawPixmap(0, 0, pixmap);
         iio.setPicture(picture);
         iio.setFileName("vegeburger.pic");
         iio.setFormat("PIC");
         if (iio.write())
             return true; // returned true if written successfully

See also setIODevice(), setFileName(), setFormat(), read(), and QPixmap.save().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpinchgesture-changeflags.html0000644000076500000240000001401712536324504023473 0ustar philstaff00000000000000 QPinchGesture.ChangeFlags Class Reference
  Home · All Classes · Modules

QPinchGesture.ChangeFlags Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description


Method Documentation

ChangeFlags.__init__ (self, ChangeFlags)

ChangeFlags.__init__ (self, int)

ChangeFlags.__init__ (self)

ChangeFlags ChangeFlags.__and__ (self, int mask)

int ChangeFlags.__bool__ (self)

bool ChangeFlags.__eq__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__iand__ (self, int mask)

int ChangeFlags.__int__ (self)

ChangeFlags ChangeFlags.__invert__ (self)

ChangeFlags ChangeFlags.__ior__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__ixor__ (self, ChangeFlags f)

bool ChangeFlags.__ne__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__or__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__or__ (self, int f)

ChangeFlags ChangeFlags.__xor__ (self, ChangeFlags f)

ChangeFlags ChangeFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpinchgesture.html0000644000076500000240000002446612536324504021244 0ustar philstaff00000000000000 QPinchGesture Class Reference
  Home · All Classes · Modules

QPinchGesture Class Reference
[QtGui module]

The QPinchGesture class describes a pinch gesture made by the user. More...

Inherits QGesture.

Types

Methods


Detailed Description

The QPinchGesture class describes a pinch gesture made by the user.

A pinch gesture is a form of touch user input in which the user typically touches two points on the input device with a thumb and finger, before moving them closer together or further apart to change the scale factor, zoom, or level of detail of the user interface.

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures Programming document.

Instead of repeatedly applying the same pinching gesture, the user may continue to touch the input device in one place, and apply a second touch to a new point, continuing the gesture. When this occurs, gesture events will continue to be delivered to the target object, containing an instance of QPinchGesture in the Qt.GestureUpdated state.


Type Documentation

QPinchGesture.ChangeFlag

This enum describes the changes that can occur to the properties of the gesture object.

Constant Value Description
QPinchGesture.ScaleFactorChanged 0x1 The scale factor held by scaleFactor changed.
QPinchGesture.RotationAngleChanged 0x2 The rotation angle held by rotationAngle changed.
QPinchGesture.CenterPointChanged 0x4 The center point held by centerPoint changed.

The ChangeFlags type is a typedef for QFlags<ChangeFlag>. It stores an OR combination of ChangeFlag values.

See also changeFlags and totalChangeFlags.


Method Documentation

QPinchGesture.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QPointF QPinchGesture.centerPoint (self)

ChangeFlags QPinchGesture.changeFlags (self)

QPointF QPinchGesture.lastCenterPoint (self)

float QPinchGesture.lastRotationAngle (self)

float QPinchGesture.lastScaleFactor (self)

float QPinchGesture.rotationAngle (self)

float QPinchGesture.scaleFactor (self)

QPinchGesture.setCenterPoint (self, QPointF value)

QPinchGesture.setChangeFlags (self, ChangeFlags value)

QPinchGesture.setLastCenterPoint (self, QPointF value)

QPinchGesture.setLastRotationAngle (self, float value)

QPinchGesture.setLastScaleFactor (self, float value)

QPinchGesture.setRotationAngle (self, float value)

QPinchGesture.setScaleFactor (self, float value)

QPinchGesture.setStartCenterPoint (self, QPointF value)

QPinchGesture.setTotalChangeFlags (self, ChangeFlags value)

QPinchGesture.setTotalRotationAngle (self, float value)

QPinchGesture.setTotalScaleFactor (self, float value)

QPointF QPinchGesture.startCenterPoint (self)

ChangeFlags QPinchGesture.totalChangeFlags (self)

float QPinchGesture.totalRotationAngle (self)

float QPinchGesture.totalScaleFactor (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpixmap.html0000644000076500000240000017370712536324501020042 0ustar philstaff00000000000000 QPixmap Class Reference
  Home · All Classes · Modules

QPixmap Class Reference
[
QtGui module]

The QPixmap class is an off-screen image representation that can be used as a paint device. More...

Inherits QPaintDevice.

Inherited by QBitmap.

Types

  • enum ShareMode { ImplicitlyShared, ExplicitlyShared }

Methods

  • __init__ (self)
  • __init__ (self, int w, int h)
  • __init__ (self, QSize)
  • __init__ (self, QString fileName, str format = None, Qt.ImageConversionFlags flags = Qt.AutoColor)
  • __init__ (self, list-of-str xpm)
  • __init__ (self, QPixmap)
  • __init__ (self, QVariant variant)
  • QPixmap alphaChannel (self)
  • int cacheKey (self)
  • bool convertFromImage (self, QImage img, Qt.ImageConversionFlags flags = Qt.AutoColor)
  • QPixmap copy (self, QRect rect = QRect())
  • QPixmap copy (self, int ax, int ay, int awidth, int aheight)
  • QBitmap createHeuristicMask (self, bool clipTight = True)
  • QBitmap createMaskFromColor (self, QColor maskColor, Qt.MaskMode mode)
  • QBitmap createMaskFromColor (self, QColor maskColor)
  • int depth (self)
  • detach (self)
  • int devType (self)
  • fill (self, QColor color = Qt.white)
  • fill (self, QWidget widget, QPoint ofs)
  • fill (self, QWidget widget, int xofs, int yofs)
  • int handle (self)
  • bool hasAlpha (self)
  • bool hasAlphaChannel (self)
  • int height (self)
  • bool isNull (self)
  • bool isQBitmap (self)
  • bool load (self, QString fileName, str format = None, Qt.ImageConversionFlags flags = Qt.AutoColor)
  • bool loadFromData (self, str buf, str format = None, Qt.ImageConversionFlags flags = Qt.AutoColor)
  • bool loadFromData (self, QByteArray buf, str format = None, Qt.ImageConversionFlags flags = Qt.AutoColor)
  • QBitmap mask (self)
  • int metric (self, QPaintDevice.PaintDeviceMetric)
  • QPaintEngine paintEngine (self)
  • QRect rect (self)
  • bool save (self, QString fileName, str format = None, int quality = -1)
  • bool save (self, QIODevice device, str format = None, int quality = -1)
  • QPixmap scaled (self, int width, int height, Qt.AspectRatioMode aspectRatioMode = Qt.IgnoreAspectRatio, Qt.TransformationMode transformMode = Qt.FastTransformation)
  • QPixmap scaled (self, QSize size, Qt.AspectRatioMode aspectRatioMode = Qt.IgnoreAspectRatio, Qt.TransformationMode transformMode = Qt.FastTransformation)
  • QPixmap scaledToHeight (self, int height, Qt.TransformationMode mode = Qt.FastTransformation)
  • QPixmap scaledToWidth (self, int width, Qt.TransformationMode mode = Qt.FastTransformation)
  • QRegion exposed scroll (self, int dx, int dy, QRect rect)
  • QRegion exposed scroll (self, int dx, int dy, int x, int y, int width, int height)
  • int serialNumber (self)
  • setAlphaChannel (self, QPixmap)
  • setMask (self, QBitmap)
  • QSize size (self)
  • swap (self, QPixmap other)
  • QImage toImage (self)
  • QPixmap transformed (self, QMatrix matrix, Qt.TransformationMode mode = Qt.FastTransformation)
  • QPixmap transformed (self, QTransform transform, Qt.TransformationMode mode = Qt.FastTransformation)
  • int width (self)
  • QX11Info x11Info (self)
  • int x11PictureHandle (self)

Static Methods

  • QPixmap fromImage (QImage image, Qt.ImageConversionFlags flags = Qt.AutoColor)
  • QPixmap fromImageReader (QImageReader imageReader, Qt.ImageConversionFlags flags = Qt.AutoColor)
  • QPixmap fromX11Pixmap (int pixmap, ShareMode mode = QPixmap.ImplicitlyShared)
  • QPixmap grabWidget (QWidget widget, QRect rect)
  • QPixmap grabWidget (QWidget widget, int x = 0, int y = 0, int width = -1, int height = -1)
  • QPixmap grabWindow (int window, int x = 0, int y = 0, int width = -1, int height = -1)
  • QMatrix trueMatrix (QMatrix m, int w, int h)
  • QTransform trueMatrix (QTransform m, int w, int h)

Detailed Description

The QPixmap class is an off-screen image representation that can be used as a paint device.

Qt provides four classes for handling image data: QImage, QPixmap, QBitmap and QPicture. QImage is designed and optimized for I/O, and for direct pixel access and manipulation, while QPixmap is designed and optimized for showing images on screen. QBitmap is only a convenience class that inherits QPixmap, ensuring a depth of 1. The isQBitmap() function returns true if a QPixmap object is really a bitmap, otherwise returns false. Finally, the QPicture class is a paint device that records and replays QPainter commands.

A QPixmap can easily be displayed on the screen using QLabel or one of QAbstractButton's subclasses (such as QPushButton and QToolButton). QLabel has a pixmap property, whereas QAbstractButton has an icon property.

In addition to the ordinary constructors, a QPixmap can be constructed using the static grabWidget() and grabWindow() functions which creates a QPixmap and paints the given widget, or window, into it.

QPixmap objects can be passed around by value since the QPixmap class uses implicit data sharing. For more information, see the Implicit Data Sharing documentation. QPixmap objects can also be streamed.

Note that the pixel data in a pixmap is internal and is managed by the underlying window system. Because QPixmap is a QPaintDevice subclass, QPainter can be used to draw directly onto pixmaps. Pixels can only be accessed through QPainter functions or by converting the QPixmap to a QImage. However, the fill() function is available for initializing the entire pixmap with a given color.

There are functions to convert between QImage and QPixmap. Typically, the QImage class is used to load an image file, optionally manipulating the image data, before the QImage object is converted into a QPixmap to be shown on screen. Alternatively, if no manipulation is desired, the image file can be loaded directly into a QPixmap. On Windows, the QPixmap class also supports conversion between HBITMAP and QPixmap. On Symbian, the QPixmap class also supports conversion between CFbsBitmap and QPixmap.

QPixmap provides a collection of functions that can be used to obtain a variety of information about the pixmap. In addition, there are several functions that enables transformation of the pixmap.

Reading and Writing Image Files

QPixmap provides several ways of reading an image file: The file can be loaded when constructing the QPixmap object, or by using the load() or loadFromData() functions later on. When loading an image, the file name can either refer to an actual file on disk or to one of the application's embedded resources. See The Qt Resource System overview for details on how to embed images and other resource files in the application's executable.

Simply call the save() function to save a QPixmap object.

The complete list of supported file formats are available through the QImageReader.supportedImageFormats() and QImageWriter.supportedImageFormats() functions. New file formats can be added as plugins. By default, Qt supports the following formats:

Format Description Qt's support
BMP Windows Bitmap Read/write
GIF Graphic Interchange Format (optional) Read
JPG Joint Photographic Experts Group Read/write
JPEG Joint Photographic Experts Group Read/write
PNG Portable Network Graphics Read/write
PBM Portable Bitmap Read
PGM Portable Graymap Read
PPM Portable Pixmap Read/write
XBM X11 Bitmap Read/write
XPM X11 Pixmap Read/write

Pixmap Information

QPixmap provides a collection of functions that can be used to obtain a variety of information about the pixmap:

Available Functions
Geometry The size(), width() and height() functions provide information about the pixmap's size. The rect() function returns the image's enclosing rectangle.
Alpha component The hasAlphaChannel() returns true if the pixmap has a format that respects the alpha channel, otherwise returns false. The hasAlpha(), setMask() and mask() functions are legacy and should not be used. They are potentially very slow.

The createHeuristicMask() function creates and returns a 1-bpp heuristic mask (i.e. a QBitmap) for this pixmap. It works by selecting a color from one of the corners and then chipping away pixels of that color, starting at all the edges. The createMaskFromColor() function creates and returns a mask (i.e. a QBitmap) for the pixmap based on a given color.

Low-level information The depth() function returns the depth of the pixmap. The defaultDepth() function returns the default depth, i.e. the depth used by the application on the given screen.

The cacheKey() function returns a number that uniquely identifies the contents of the QPixmap object.

The x11Info() function returns information about the configuration of the X display used by the screen to which the pixmap currently belongs. The x11PictureHandle() function returns the X11 Picture handle of the pixmap for XRender support. Note that the two latter functions are only available on x11.

Pixmap Conversion

A QPixmap object can be converted into a QImage using the toImage() function. Likewise, a QImage can be converted into a QPixmap using the fromImage(). If this is too expensive an operation, you can use QBitmap.fromImage() instead.

In addition, on Windows, the QPixmap class supports conversion to and from HBITMAP: the toWinHBITMAP() function creates a HBITMAP equivalent to the QPixmap, based on the given HBitmapFormat, and returns the HBITMAP handle. The fromWinHBITMAP() function returns a QPixmap that is equivalent to the given bitmap which has the specified format. The QPixmap class also supports conversion to and from HICON: the toWinHICON() function creates a HICON equivalent to the QPixmap, and returns the HICON handle. The fromWinHICON() function returns a QPixmap that is equivalent to the given icon.

In addition, on Symbian, the QPixmap class supports conversion to and from CFbsBitmap: the toSymbianCFbsBitmap() function creates CFbsBitmap equivalent to the QPixmap, based on given mode and returns a CFbsBitmap object. The fromSymbianCFbsBitmap() function returns a QPixmap that is equivalent to the given bitmap and given mode.

Pixmap Transformations

QPixmap supports a number of functions for creating a new pixmap that is a transformed version of the original:

The scaled(), scaledToWidth() and scaledToHeight() functions return scaled copies of the pixmap, while the copy() function creates a QPixmap that is a plain copy of the original one.

The transformed() function returns a copy of the pixmap that is transformed with the given transformation matrix and transformation mode: Internally, the transformation matrix is adjusted to compensate for unwanted translation, i.e. transformed() returns the smallest pixmap containing all transformed points of the original pixmap. The static trueMatrix() function returns the actual matrix used for transforming the pixmap.

Note: When using the native X11 graphics system, the pixmap becomes invalid when the QApplication instance is destroyed.


Type Documentation

QPixmap.ShareMode

This enum type defines the share modes that are available when creating a QPixmap object from a raw X11 Pixmap handle.

Constant Value Description
QPixmap.ImplicitlyShared 0 This mode will cause the QPixmap object to create a copy of the internal data before it is modified, thus keeping the original X11 pixmap intact.
QPixmap.ExplicitlyShared 1 In this mode, the pixmap data will not be copied before it is modified, which in effect will change the original X11 pixmap.

Warning: This enum is only used for X11 specific functions; using it is non-portable.

This enum was introduced or modified in Qt 4.5.

See also QPixmap.fromX11Pixmap().


Method Documentation

QPixmap.__init__ (self)

Constructs a null pixmap.

See also isNull().

QPixmap.__init__ (self, int w, int h)

QPixmap.__init__ (self, QSize)

Constructs a pixmap with the given width and height. If either width or height is zero, a null pixmap is constructed.

Warning: This will create a QPixmap with uninitialized data. Call fill() to fill the pixmap with an appropriate color before drawing onto it with QPainter.

See also isNull().

QPixmap.__init__ (self, QString fileName, str format = None, Qt.ImageConversionFlags flags = Qt.AutoColor)

Constructs a pixmap from the file with the given fileName. If the file does not exist or is of an unknown format, the pixmap becomes a null pixmap.

The loader attempts to read the pixmap using the specified format. If the format is not specified (which is the default), the loader probes the file for a header to guess the file format.

The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the Resource System overview for details on how to embed images and other resource files in the application's executable.

If the image needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the flags to control the conversion.

The fileName, format and flags parameters are passed on to load(). This means that the data in fileName is not compiled into the binary. If fileName contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.

See also Reading and Writing Image Files.

QPixmap.__init__ (self, list-of-str xpm)

Constructs a pixmap from the given xpm data, which must be a valid XPM image.

Errors are silently ignored.

Note that it's possible to squeeze the XPM variable a little bit by using an unusual declaration:

 static const char * const start_xpm[]={
     "16 15 8 1",
     "a c #cec6bd",
 ....

The extra const makes the entire definition read-only, which is slightly more efficient (for example, when the code is in a shared library) and ROMable when the application is to be stored in ROM.

QPixmap.__init__ (self, QPixmap)

Constructs a pixmap that is a copy of the given pixmap.

See also copy().

QPixmap.__init__ (self, QVariant variant)

QPixmap QPixmap.alphaChannel (self)

int QPixmap.cacheKey (self)

Returns a number that identifies this QPixmap. Distinct QPixmap objects can only have the same cache key if they refer to the same contents.

The cacheKey() will change when the pixmap is altered.

bool QPixmap.convertFromImage (self, QImage img, Qt.ImageConversionFlags flags = Qt.AutoColor)

Replaces this pixmap's data with the given image using the specified flags to control the conversion. The flags argument is a bitwise-OR of the Qt.ImageConversionFlags. Passing 0 for flags sets all the default options. Returns true if the result is that this pixmap is not null.

Note: this function was part of Qt 3 support in Qt 4.6 and earlier. It has been promoted to official API status in 4.7 to support updating the pixmap's image without creating a new QPixmap as fromImage() would.

This function was introduced in Qt 4.7.

See also fromImage().

QPixmap QPixmap.copy (self, QRect rect = QRect())

Returns a deep copy of the subset of the pixmap that is specified by the given rectangle. For more information on deep copies, see the Implicit Data Sharing documentation.

If the given rectangle is empty, the whole image is copied.

See also operator=(), QPixmap(), and Pixmap Transformations.

QPixmap QPixmap.copy (self, int ax, int ay, int awidth, int aheight)

This is an overloaded function.

Returns a deep copy of the subset of the pixmap that is specified by the rectangle QRect( x, y, width, height).

QBitmap QPixmap.createHeuristicMask (self, bool clipTight = True)

Creates and returns a heuristic mask for this pixmap.

The function works by selecting a color from one of the corners and then chipping away pixels of that color, starting at all the edges. If clipTight is true (the default) the mask is just large enough to cover the pixels; otherwise, the mask is larger than the data pixels.

The mask may not be perfect but it should be reasonable, so you can do things such as the following:

 QPixmap myPixmap;
 myPixmap->setMask(myPixmap->createHeuristicMask());

This function is slow because it involves converting to/from a QImage, and non-trivial computations.

See also QImage.createHeuristicMask() and createMaskFromColor().

QBitmap QPixmap.createMaskFromColor (self, QColor maskColor, Qt.MaskMode mode)

Creates and returns a mask for this pixmap based on the given maskColor. If the mode is Qt.MaskInColor, all pixels matching the maskColor will be transparent. If mode is Qt.MaskOutColor, all pixels matching the maskColor will be opaque.

This function is slow because it involves converting to/from a QImage.

See also createHeuristicMask() and QImage.createMaskFromColor().

QBitmap QPixmap.createMaskFromColor (self, QColor maskColor)

This is an overloaded function.

Creates and returns a mask for this pixmap based on the given maskColor. Same as calling createMaskFromColor(maskColor, Qt.MaskInColor)

See also createHeuristicMask() and QImage.createMaskFromColor().

int QPixmap.defaultDepth ()

Returns the default pixmap depth used by the application.

On Windows and Mac, the default depth is always 32. On X11 and embedded, the depth of the screen will be returned by this function.

See also depth(), QColormap.depth(), and Pixmap Information.

int QPixmap.depth (self)

Returns the depth of the pixmap.

The pixmap depth is also called bits per pixel (bpp) or bit planes of a pixmap. A null pixmap has depth 0.

See also defaultDepth() and Pixmap Information.

QPixmap.detach (self)

Detaches the pixmap from shared pixmap data.

A pixmap is automatically detached by Qt whenever its contents are about to change. This is done in almost all QPixmap member functions that modify the pixmap (fill(), fromImage(), load(), etc.), and in QPainter.begin() on a pixmap.

There are two exceptions in which detach() must be called explicitly, that is when calling the handle() or the x11PictureHandle() function (only available on X11). Otherwise, any modifications done using system calls, will be performed on the shared data.

The detach() function returns immediately if there is just a single reference or if the pixmap has not been initialized yet.

int QPixmap.devType (self)

QPixmap.fill (self, QColor color = Qt.white)

Fills the pixmap with the given color.

The effect of this function is undefined when the pixmap is being painted on.

See also Pixmap Transformations.

QPixmap.fill (self, QWidget widget, QPoint ofs)

Fills the pixmap with the widget's background color or pixmap according to the given offset.

The QPoint offset defines a point in widget coordinates to which the pixmap's top-left pixel will be mapped to. This is only significant if the widget has a background pixmap; otherwise the pixmap will simply be filled with the background color of the widget.

QPixmap.fill (self, QWidget widget, int xofs, int yofs)

This is an overloaded function.

Fills the pixmap with the widget's background color or pixmap. The given point, (x, y), defines an offset in widget coordinates to which the pixmap's top-left pixel will be mapped to.

QPixmap QPixmap.fromImage (QImage image, Qt.ImageConversionFlags flags = Qt.AutoColor)

Converts the given image to a pixmap using the specified flags to control the conversion. The flags argument is a bitwise-OR of the Qt.ImageConversionFlags. Passing 0 for flags sets all the default options.

In case of monochrome and 8-bit images, the image is first converted to a 32-bit pixmap and then filled with the colors in the color table. If this is too expensive an operation, you can use QBitmap.fromImage() instead.

See also fromImageReader(), toImage(), and Pixmap Conversion.

QPixmap QPixmap.fromImageReader (QImageReader imageReader, Qt.ImageConversionFlags flags = Qt.AutoColor)

Create a QPixmap from an image read directly from an imageReader. The flags argument is a bitwise-OR of the Qt.ImageConversionFlags. Passing 0 for flags sets all the default options.

On some systems, reading an image directly to QPixmap can use less memory than reading a QImage to convert it to QPixmap.

See also fromImage(), toImage(), and Pixmap Conversion.

QPixmap QPixmap.fromX11Pixmap (int pixmap, ShareMode mode = QPixmap.ImplicitlyShared)

Creates a QPixmap from the native X11 Pixmap handle pixmap, using mode as the share mode. The default share mode is QPixmap.ImplicitlyShared, which means that a copy of the pixmap is made if someone tries to modify it by e.g. drawing onto it.

QPixmap does not take ownership of the pixmap handle, and have to be deleted by the user.

Warning: This function is X11 specific; using it is non-portable.

This function was introduced in Qt 4.5.

See also QPixmap.ShareMode.

QPixmap QPixmap.grabWidget (QWidget widget, QRect rect)

Creates a pixmap and paints the given widget, restricted by the given rectangle, in it. If the widget has any children, then they are also painted in the appropriate positions.

If no rectangle is specified (the default) the entire widget is painted.

If widget is 0, the specified rectangle doesn't overlap the widget's rectangle, or an error occurs, the function will return a null QPixmap. If the rectangle is a superset of the given widget, the areas outside the widget are covered with the widget's background.

This function actually asks widget to paint itself (and its children to paint themselves) by calling paintEvent() with painter redirection turned on. But QPixmap also provides the grabWindow() function which is a bit faster by grabbing pixels directly off the screen. In addition, if there are overlaying windows, grabWindow(), unlike grabWidget(), will see them.

Warning: Do not grab a widget from its QWidget.paintEvent(). However, it is safe to grab a widget from another widget's paintEvent().

See also grabWindow().

QPixmap QPixmap.grabWidget (QWidget widget, int x = 0, int y = 0, int width = -1, int height = -1)

This is an overloaded function.

Creates a pixmap and paints the given widget, restricted by QRect(x, y, width, height), in it.

Warning: Do not grab a widget from its QWidget.paintEvent(). However, it is safe to grab a widget from another widget's paintEvent().

QPixmap QPixmap.grabWindow (int window, int x = 0, int y = 0, int width = -1, int height = -1)

Creates and returns a pixmap constructed by grabbing the contents of the given window restricted by QRect(x, y, width, height).

The arguments (x, y) specify the offset in the window, whereas (width, height) specify the area to be copied. If width is negative, the function copies everything to the right border of the window. If height is negative, the function copies everything to the bottom of the window.

The window system identifier (WId) can be retrieved using the QWidget.winId() function. The rationale for using a window identifier and not a QWidget, is to enable grabbing of windows that are not part of the application, window system frames, and so on.

The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.

Note on X11 that if the given window doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will not get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.

On Windows Vista and above grabbing a layered window, which is created by setting the Qt.WA_TranslucentBackground attribute, will not work. Instead grabbing the desktop widget should work.

Warning: In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.

See also grabWidget() and Screenshot Example.

int QPixmap.handle (self)

Returns the pixmap's handle to the device context.

Note that, since QPixmap make use of implicit data sharing, the detach() function must be called explicitly to ensure that only this pixmap's data is modified if the pixmap data is shared.

Warning: This function is X11 specific; using it is non-portable.

Warning: Since 4.8, pixmaps do not have an X11 handle unless created with fromX11Pixmap(), or if the native graphics system is explicitly enabled.

See also detach() and QApplication.setGraphicsSystem().

bool QPixmap.hasAlpha (self)

Returns true if this pixmap has an alpha channel, or has a mask, otherwise returns false.

See also hasAlphaChannel() and mask().

bool QPixmap.hasAlphaChannel (self)

Returns true if the pixmap has a format that respects the alpha channel, otherwise returns false.

See also hasAlpha().

int QPixmap.height (self)

Returns the height of the pixmap.

See also size() and Pixmap Information.

bool QPixmap.isNull (self)

Returns true if this is a null pixmap; otherwise returns false.

A null pixmap has zero width, zero height and no contents. You cannot draw in a null pixmap.

bool QPixmap.isQBitmap (self)

Returns true if this is a QBitmap; otherwise returns false.

bool QPixmap.load (self, QString fileName, str format = None, Qt.ImageConversionFlags flags = Qt.AutoColor)

Loads a pixmap from the file with the given fileName. Returns true if the pixmap was successfully loaded; otherwise returns false.

The loader attempts to read the pixmap using the specified format. If the format is not specified (which is the default), the loader probes the file for a header to guess the file format.

The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the Resource System overview for details on how to embed pixmaps and other resource files in the application's executable.

If the data needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the flags to control the conversion.

Note that QPixmaps are automatically added to the QPixmapCache when loaded from a file; the key used is internal and can not be acquired.

See also loadFromData() and Reading and Writing Image Files.

bool QPixmap.loadFromData (self, str buf, str format = None, Qt.ImageConversionFlags flags = Qt.AutoColor)

Loads a pixmap from the len first bytes of the given binary data. Returns true if the pixmap was loaded successfully; otherwise returns false.

The loader attempts to read the pixmap using the specified format. If the format is not specified (which is the default), the loader probes the file for a header to guess the file format.

If the data needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the flags to control the conversion.

See also load() and Reading and Writing Image Files.

bool QPixmap.loadFromData (self, QByteArray buf, str format = None, Qt.ImageConversionFlags flags = Qt.AutoColor)

QBitmap QPixmap.mask (self)

Extracts a bitmap mask from the pixmap's alpha channel.

Warning: This is potentially an expensive operation. The mask of the pixmap is extracted dynamically from the pixeldata.

See also setMask() and Pixmap Information.

int QPixmap.metric (self, QPaintDevice.PaintDeviceMetric)

QPaintEngine QPixmap.paintEngine (self)

QRect QPixmap.rect (self)

Returns the pixmap's enclosing rectangle.

See also Pixmap Information.

bool QPixmap.save (self, QString fileName, str format = None, int quality = -1)

Saves the pixmap to the file with the given fileName using the specified image file format and quality factor. Returns true if successful; otherwise returns false.

The quality factor must be in the range [0,100] or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 to use the default settings.

If format is 0, an image format will be chosen from fileName's suffix.

See also Reading and Writing Image Files.

bool QPixmap.save (self, QIODevice device, str format = None, int quality = -1)

This is an overloaded function.

This function writes a QPixmap to the given device using the specified image file format and quality factor. This can be used, for example, to save a pixmap directly into a QByteArray:

         QPixmap pixmap;
         QByteArray bytes;
         QBuffer buffer(&bytes);
         buffer.open(QIODevice.WriteOnly);
         pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format

QPixmap QPixmap.scaled (self, int width, int height, Qt.AspectRatioMode aspectRatioMode = Qt.IgnoreAspectRatio, Qt.TransformationMode transformMode = Qt.FastTransformation)

Scales the pixmap to the given size, using the aspect ratio and transformation modes specified by aspectRatioMode and transformMode.

  • If aspectRatioMode is Qt.IgnoreAspectRatio, the pixmap is scaled to size.
  • If aspectRatioMode is Qt.KeepAspectRatio, the pixmap is scaled to a rectangle as large as possible inside size, preserving the aspect ratio.
  • If aspectRatioMode is Qt.KeepAspectRatioByExpanding, the pixmap is scaled to a rectangle as small as possible outside size, preserving the aspect ratio.

If the given size is empty, this function returns a null pixmap.

In some cases it can be more beneficial to draw the pixmap to a painter with a scale set rather than scaling the pixmap. This is the case when the painter is for instance based on OpenGL or when the scale factor changes rapidly.

See also isNull() and Pixmap Transformations.

QPixmap QPixmap.scaled (self, QSize size, Qt.AspectRatioMode aspectRatioMode = Qt.IgnoreAspectRatio, Qt.TransformationMode transformMode = Qt.FastTransformation)

This is an overloaded function.

Returns a copy of the pixmap scaled to a rectangle with the given width and height according to the given aspectRatioMode and transformMode.

If either the width or the height is zero or negative, this function returns a null pixmap.

QPixmap QPixmap.scaledToHeight (self, int height, Qt.TransformationMode mode = Qt.FastTransformation)

Returns a scaled copy of the image. The returned image is scaled to the given height using the specified transformation mode. The width of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.

If height is 0 or negative, a null pixmap is returned.

See also isNull() and Pixmap Transformations.

QPixmap QPixmap.scaledToWidth (self, int width, Qt.TransformationMode mode = Qt.FastTransformation)

Returns a scaled copy of the image. The returned image is scaled to the given width using the specified transformation mode. The height of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.

If width is 0 or negative, a null pixmap is returned.

See also isNull() and Pixmap Transformations.

QRegion exposed QPixmap.scroll (self, int dx, int dy, QRect rect)

This convenience function is equivalent to calling QPixmap.scroll(dx, dy, QRect(x, y, width, height), exposed).

This function was introduced in Qt 4.6.

See also QWidget.scroll() and QGraphicsItem.scroll().

QRegion exposed QPixmap.scroll (self, int dx, int dy, int x, int y, int width, int height)

Scrolls the area rect of this pixmap by (dx, dy). The exposed region is left unchanged. You can optionally pass a pointer to an empty QRegion to get the region that is exposed by the scroll operation.

 QPixmap pixmap("background.png");
 QRegion exposed;
 pixmap.scroll(10, 10, pixmap.rect(), &exposed);

You cannot scroll while there is an active painter on the pixmap.

This function was introduced in Qt 4.6.

See also QWidget.scroll() and QGraphicsItem.scroll().

int QPixmap.serialNumber (self)

QPixmap.setAlphaChannel (self, QPixmap)

QPixmap.setMask (self, QBitmap)

Sets a mask bitmap.

This function merges the mask with the pixmap's alpha channel. A pixel value of 1 on the mask means the pixmap's pixel is unchanged; a value of 0 means the pixel is transparent. The mask must have the same size as this pixmap.

Setting a null mask resets the mask, leaving the previously transparent pixels black. The effect of this function is undefined when the pixmap is being painted on.

Warning: This is potentially an expensive operation.

See also mask(), Pixmap Transformations, and QBitmap.

QSize QPixmap.size (self)

Returns the size of the pixmap.

See also width(), height(), and Pixmap Information.

QPixmap.swap (self, QPixmap other)

Swaps pixmap other with this pixmap. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QImage QPixmap.toImage (self)

Converts the pixmap to a QImage. Returns a null image if the conversion fails.

If the pixmap has 1-bit depth, the returned image will also be 1 bit deep. Images with more bits will be returned in a format closely represents the underlying system. Usually this will be QImage.Format_ARGB32_Premultiplied for pixmaps with an alpha and QImage.Format_RGB32 or QImage.Format_RGB16 for pixmaps without alpha.

Note that for the moment, alpha masks on monochrome images are ignored.

See also fromImage() and Image Formats.

QPixmap QPixmap.transformed (self, QMatrix matrix, Qt.TransformationMode mode = Qt.FastTransformation)

Returns a copy of the pixmap that is transformed using the given transformation transform and transformation mode. The original pixmap is not changed.

The transformation transform is internally adjusted to compensate for unwanted translation; i.e. the pixmap produced is the smallest pixmap that contains all the transformed points of the original pixmap. Use the trueMatrix() function to retrieve the actual matrix used for transforming the pixmap.

This function is slow because it involves transformation to a QImage, non-trivial computations and a transformation back to a QPixmap.

See also trueMatrix() and Pixmap Transformations.

QPixmap QPixmap.transformed (self, QTransform transform, Qt.TransformationMode mode = Qt.FastTransformation)

This is an overloaded function.

This convenience function loads the matrix into a QTransform and calls the overloaded function.

QMatrix QPixmap.trueMatrix (QMatrix m, int w, int h)

Returns the actual matrix used for transforming a pixmap with the given width, height and matrix.

When transforming a pixmap using the transformed() function, the transformation matrix is internally adjusted to compensate for unwanted translation, i.e. transformed() returns the smallest pixmap containing all transformed points of the original pixmap. This function returns the modified matrix, which maps points correctly from the original pixmap into the new pixmap.

See also transformed() and Pixmap Transformations.

QTransform QPixmap.trueMatrix (QTransform m, int w, int h)

This is an overloaded function.

This convenience function loads the matrix m into a QTransform and calls the overloaded function with the QTransform and the width w and the height h.

int QPixmap.width (self)

Returns the width of the pixmap.

See also size() and Pixmap Information.

QX11Info QPixmap.x11Info (self)

X11 only: Returns information about the configuration of the X display used by the screen to which the pixmap currently belongs.

Warning: This function is only available on X11.

See also Pixmap Information.

int QPixmap.x11PictureHandle (self)

X11 only: Returns the X11 Picture handle of the pixmap for XRender support.

This function will return 0 if XRender support is not compiled into Qt, if the XRender extension is not supported on the X11 display, or if the handle could not be created. Use of this function is not portable.

Warning: This function is only available on X11.

See also Pixmap Information.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpixmapcache-key.html0000644000076500000240000000603212536324511021577 0ustar philstaff00000000000000 QPixmapCache.Key Class Reference
  Home · All Classes · Modules

QPixmapCache.Key Class Reference
[QtGui module]

The QPixmapCache.Key class can be used for efficient access to the QPixmapCache. More...

Methods

Special Methods


Detailed Description

The QPixmapCache.Key class can be used for efficient access to the QPixmapCache.

Use QPixmapCache.insert() to receive an instance of Key generated by the pixmap cache. You can store the key in your own objects for a very efficient one-to-one object-to-pixmap mapping.


Method Documentation

Key.__init__ (self)

Key.__init__ (self, Key other)

bool Key.__eq__ (self, Key key)

bool Key.__ne__ (self, Key key)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpixmapcache.html0000644000076500000240000002532312536324511021015 0ustar philstaff00000000000000 QPixmapCache Class Reference
  Home · All Classes · Modules

QPixmapCache Class Reference
[QtGui module]

The QPixmapCache class provides an application-wide cache for pixmaps. More...

Types

Methods

Static Methods


Detailed Description

The QPixmapCache class provides an application-wide cache for pixmaps.

This class is a tool for optimized drawing with QPixmap. You can use it to store temporary pixmaps that are expensive to generate without using more storage space than cacheLimit(). Use insert() to insert pixmaps, find() to find them, and clear() to empty the cache.

QPixmapCache contains no member data, only static functions to access the global pixmap cache. It creates an internal QCache object for caching the pixmaps.

The cache associates a pixmap with a user-provided string as a key, or with a QPixmapCache.Key that the cache generates. Using QPixmapCache.Key for keys is faster than using strings. The string API is very convenient for complex keys but the QPixmapCache.Key API will be very efficient and convenient for a one-to-one object-to-pixmap mapping &#8212; in this case, you can store the keys as members of an object.

If two pixmaps are inserted into the cache using equal keys then the last pixmap will replace the first pixmap in the cache. This follows the behavior of the QHash and QCache classes.

The cache becomes full when the total size of all pixmaps in the cache exceeds cacheLimit(). The initial cache limit is 2048 KB (2 MB) on embedded platforms, 10240 KB (10 MB) on desktop platforms; you can change this by calling setCacheLimit() with the required value. A pixmap takes roughly (width * height * depth)/8 bytes of memory.

The Qt Quarterly article Optimizing with QPixmapCache explains how to use QPixmapCache to speed up applications by caching the results of painting.


Method Documentation

QPixmapCache.__init__ (self)

QPixmapCache.__init__ (self, QPixmapCache)

int QPixmapCache.cacheLimit ()

Returns the cache limit (in kilobytes).

The default cache limit is 2048 KB on embedded platforms, 10240 KB on desktop platforms.

See also setCacheLimit().

QPixmapCache.clear ()

Removes all pixmaps from the cache.

QPixmap QPixmapCache.find (QString key)

Looks for a cached pixmap associated with the given key in the cache. If the pixmap is found, the function sets pixmap to that pixmap and returns true; otherwise it leaves pixmap alone and returns false.

Example:

 QPixmap pm;
 if (!QPixmapCache.find("my_big_image", &pm)) {
     pm.load("bigimage.png");
     QPixmapCache.insert("my_big_image", pm);
 }
 painter->drawPixmap(0, 0, pm);

This function was introduced in Qt 4.6.

bool QPixmapCache.find (QString key, QPixmap pixmap)

bool QPixmapCache.find (Key key, QPixmap pixmap)

Looks for a cached pixmap associated with the given key in the cache. If the pixmap is found, the function sets pixmap to that pixmap and returns true; otherwise it leaves pixmap alone and returns false. If the pixmap is not found, it means that the key is no longer valid, so it will be released for the next insertion.

This function was introduced in Qt 4.6.

bool QPixmapCache.insert (QString key, QPixmap)

Inserts a copy of the pixmap pixmap associated with the key into the cache.

All pixmaps inserted by the Qt library have a key starting with "$qt", so your own pixmap keys should never begin "$qt".

When a pixmap is inserted and the cache is about to exceed its limit, it removes pixmaps until there is enough room for the pixmap to be inserted.

The oldest pixmaps (least recently accessed in the cache) are deleted when more space is needed.

The function returns true if the object was inserted into the cache; otherwise it returns false.

See also setCacheLimit().

Key QPixmapCache.insert (QPixmap pixmap)

Inserts a copy of the given pixmap into the cache and returns a key that can be used to retrieve it.

When a pixmap is inserted and the cache is about to exceed its limit, it removes pixmaps until there is enough room for the pixmap to be inserted.

The oldest pixmaps (least recently accessed in the cache) are deleted when more space is needed.

This function was introduced in Qt 4.6.

See also setCacheLimit() and replace().

QPixmapCache.remove (QString key)

Removes the pixmap associated with key from the cache.

QPixmapCache.remove (Key key)

Removes the pixmap associated with key from the cache and releases the key for a future insertion.

This function was introduced in Qt 4.6.

bool QPixmapCache.replace (Key key, QPixmap pixmap)

Replaces the pixmap associated with the given key with the pixmap specified. Returns true if the pixmap has been correctly inserted into the cache; otherwise returns false.

This function was introduced in Qt 4.6.

See also setCacheLimit() and insert().

QPixmapCache.setCacheLimit (int)

Sets the cache limit to n kilobytes.

The default setting is 2048 KB on embedded platforms, 10240 KB on desktop platforms.

See also cacheLimit().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qplaintextdocumentlayout.html0000644000076500000240000001653512536324512023546 0ustar philstaff00000000000000 QPlainTextDocumentLayout Class Reference
  Home · All Classes · Modules

QPlainTextDocumentLayout Class Reference
[QtGui module]

The QPlainTextDocumentLayout class implements a plain text layout for QTextDocument More...

Inherits QAbstractTextDocumentLayout.

Methods


Detailed Description

The QPlainTextDocumentLayout class implements a plain text layout for QTextDocument

A QPlainTextDocumentLayout is required for text documents that can be display or edited in a QPlainTextEdit. See QTextDocument.setDocumentLayout().

QPlainTextDocumentLayout uses the QAbstractTextDocumentLayout API that QTextDocument requires, but redefines it partially in order to support plain text better. For instances, it does not operate on vertical pixels, but on paragraphs (called blocks) instead. The height of a document is identical to the number of paragraphs it contains. The layout also doesn't support tables or nested frames, or any sort of advanced text layout that goes beyond a list of paragraphs with syntax highlighting.


Method Documentation

QPlainTextDocumentLayout.__init__ (self, QTextDocument document)

Constructs a plain text document layout for the text document.

QRectF QPlainTextDocumentLayout.blockBoundingRect (self, QTextBlock block)

Reimplemented from QAbstractTextDocumentLayout.blockBoundingRect().

int QPlainTextDocumentLayout.cursorWidth (self)

QPlainTextDocumentLayout.documentChanged (self, int from, int, int charsAdded)

Reimplemented from QAbstractTextDocumentLayout.documentChanged().

QSizeF QPlainTextDocumentLayout.documentSize (self)

Reimplemented from QAbstractTextDocumentLayout.documentSize().

QPlainTextDocumentLayout.draw (self, QPainter, QAbstractTextDocumentLayout.PaintContext)

Reimplemented from QAbstractTextDocumentLayout.draw().

QPlainTextDocumentLayout.ensureBlockLayout (self, QTextBlock block)

Ensures that block has a valid layout

QRectF QPlainTextDocumentLayout.frameBoundingRect (self, QTextFrame)

Reimplemented from QAbstractTextDocumentLayout.frameBoundingRect().

int QPlainTextDocumentLayout.hitTest (self, QPointF, Qt.HitTestAccuracy)

Reimplemented from QAbstractTextDocumentLayout.hitTest().

int QPlainTextDocumentLayout.pageCount (self)

Reimplemented from QAbstractTextDocumentLayout.pageCount().

QPlainTextDocumentLayout.requestUpdate (self)

Requests a complete update on all views.

QPlainTextDocumentLayout.setCursorWidth (self, int width)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qplaintextedit.html0000644000076500000240000016442212536324511021415 0ustar philstaff00000000000000 QPlainTextEdit Class Reference
  Home · All Classes · Modules

QPlainTextEdit Class Reference
[
QtGui module]

The QPlainTextEdit class provides a widget that is used to edit and display plain text. More...

Inherits QAbstractScrollArea.

Types

Methods

Qt Signals


Detailed Description

The QPlainTextEdit class provides a widget that is used to edit and display plain text.

Introduction and Concepts

QPlainTextEdit is an advanced viewer/editor supporting plain text. It is optimized to handle large documents and to respond quickly to user input.

QPlainText uses very much the same technology and concepts as QTextEdit, but is optimized for plain text handling.

QPlainTextEdit works on paragraphs and characters. A paragraph is a formatted string which is word-wrapped to fit into the width of the widget. By default when reading plain text, one newline signifies a paragraph. A document consists of zero or more paragraphs. Paragraphs are separated by hard line breaks. Each character within a paragraph has its own attributes, for example, font and color.

The shape of the mouse cursor on a QPlainTextEdit is Qt.IBeamCursor by default. It can be changed through the viewport()'s cursor property.

Using QPlainTextEdit as a Display Widget

The text is set or replaced using setPlainText() which deletes the existing text and replaces it with the text passed to setPlainText().

Text can be inserted using the QTextCursor class or using the convenience functions insertPlainText(), appendPlainText() or paste().

By default, the text edit wraps words at whitespace to fit within the text edit widget. The setLineWrapMode() function is used to specify the kind of line wrap you want, WidgetWidth or NoWrap if you don't want any wrapping. If you use word wrap to the widget's width WidgetWidth, you can specify whether to break on whitespace or anywhere with setWordWrapMode().

The find() function can be used to find and select a given string within the text.

If you want to limit the total number of paragraphs in a QPlainTextEdit, as it is for example useful in a log viewer, then you can use the maximumBlockCount property. The combination of setMaximumBlockCount() and appendPlainText() turns QPlainTextEdit into an efficient viewer for log text. The scrolling can be reduced with the centerOnScroll() property, making the log viewer even faster. Text can be formatted in a limited way, either using a syntax highlighter (see below), or by appending html-formatted text with appendHtml(). While QPlainTextEdit does not support complex rich text rendering with tables and floats, it does support limited paragraph-based formatting that you may need in a log viewer.

Read-only Key Bindings

When QPlainTextEdit is used read-only the key bindings are limited to navigation, and text may only be selected with the mouse:

Keypresses Action
Qt.UpArrow Moves one line up.
Qt.DownArrow Moves one line down.
Qt.LeftArrow Moves one character to the left.
Qt.RightArrow Moves one character to the right.
PageUp Moves one (viewport) page up.
PageDown Moves one (viewport) page down.
Home Moves to the beginning of the text.
End Moves to the end of the text.
Alt+Wheel Scrolls the page horizontally (the Wheel is the mouse wheel).
Ctrl+Wheel Zooms the text.
Ctrl+A Selects all text.

Using QPlainTextEdit as an Editor

All the information about using QPlainTextEdit as a display widget also applies here.

Selection of text is handled by the QTextCursor class, which provides functionality for creating selections, retrieving the text contents or deleting selections. You can retrieve the object that corresponds with the user-visible cursor using the textCursor() method. If you want to set a selection in QPlainTextEdit just create one on a QTextCursor object and then make that cursor the visible cursor using setCursor(). The selection can be copied to the clipboard with copy(), or cut to the clipboard with cut(). The entire text can be selected using selectAll().

QPlainTextEdit holds a QTextDocument object which can be retrieved using the document() method. You can also set your own document object using setDocument(). QTextDocument emits a textChanged() signal if the text changes and it also provides a isModified() function which will return true if the text has been modified since it was either loaded or since the last call to setModified with false as argument. In addition it provides methods for undo and redo.

Syntax Highlighting

Just like QTextEdit, QPlainTextEdit works together with QSyntaxHighlighter.

Editing Key Bindings

The list of key bindings which are implemented for editing:

Keypresses Action
Backspace Deletes the character to the left of the cursor.
Delete Deletes the character to the right of the cursor.
Ctrl+C Copy the selected text to the clipboard.
Ctrl+Insert Copy the selected text to the clipboard.
Ctrl+K Deletes to the end of the line.
Ctrl+V Pastes the clipboard text into text edit.
Shift+Insert Pastes the clipboard text into text edit.
Ctrl+X Deletes the selected text and copies it to the clipboard.
Shift+Delete Deletes the selected text and copies it to the clipboard.
Ctrl+Z Undoes the last operation.
Ctrl+Y Redoes the last operation.
LeftArrow Moves the cursor one character to the left.
Ctrl+LeftArrow Moves the cursor one word to the left.
RightArrow Moves the cursor one character to the right.
Ctrl+RightArrow Moves the cursor one word to the right.
UpArrow Moves the cursor one line up.
Ctrl+UpArrow Moves the cursor one word up.
DownArrow Moves the cursor one line down.
Ctrl+Down Arrow Moves the cursor one word down.
PageUp Moves the cursor one page up.
PageDown Moves the cursor one page down.
Home Moves the cursor to the beginning of the line.
Ctrl+Home Moves the cursor to the beginning of the text.
End Moves the cursor to the end of the line.
Ctrl+End Moves the cursor to the end of the text.
Alt+Wheel Scrolls the page horizontally (the Wheel is the mouse wheel).
Ctrl+Wheel Zooms the text.

To select (mark) text hold down the Shift key whilst pressing one of the movement keystrokes, for example, Shift+Right Arrow will select the character to the right, and Shift+Ctrl+Right Arrow will select the word to the right, etc.

Differences to QTextEdit

QPlainTextEdit is a thin class, implemented by using most of the technology that is behind QTextEdit and QTextDocument. Its performance benefits over QTextEdit stem mostly from using a different and simplified text layout called QPlainTextDocumentLayout on the text document (see QTextDocument.setDocumentLayout()). The plain text document layout does not support tables nor embedded frames, and replaces a pixel-exact height calculation with a line-by-line respectively paragraph-by-paragraph scrolling approach. This makes it possible to handle significantly larger documents, and still resize the editor with line wrap enabled in real time. It also makes for a fast log viewer (see setMaximumBlockCount()).


Type Documentation

QPlainTextEdit.LineWrapMode

Constant Value
QPlainTextEdit.NoWrap 0
QPlainTextEdit.WidgetWidth 1

Method Documentation

QPlainTextEdit.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty QPlainTextEdit with parent parent.

QPlainTextEdit.__init__ (self, QString text, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QPlainTextEdit with parent parent. The text edit will display the plain text text.

QString QPlainTextEdit.anchorAt (self, QPoint pos)

Returns the reference of the anchor at position pos, or an empty string if no anchor exists at that point.

This function was introduced in Qt 4.7.

QPlainTextEdit.appendHtml (self, QString html)

This method is also a Qt slot with the C++ signature void appendHtml(const QString&).

Appends a new paragraph with html to the end of the text edit.

appendPlainText()

QPlainTextEdit.appendPlainText (self, QString text)

This method is also a Qt slot with the C++ signature void appendPlainText(const QString&).

Appends a new paragraph with text to the end of the text edit.

See also appendHtml().

bool QPlainTextEdit.backgroundVisible (self)

QRectF QPlainTextEdit.blockBoundingGeometry (self, QTextBlock block)

Returns the bounding rectangle of the text block in content coordinates. Translate the rectangle with the contentOffset() to get visual coordinates on the viewport.

See also firstVisibleBlock() and blockBoundingRect().

QRectF QPlainTextEdit.blockBoundingRect (self, QTextBlock block)

Returns the bounding rectangle of the text block in the block's own coordinates.

See also blockBoundingGeometry().

int QPlainTextEdit.blockCount (self)

bool QPlainTextEdit.canInsertFromMimeData (self, QMimeData source)

This function returns true if the contents of the MIME data object, specified by source, can be decoded and inserted into the document. It is called for example when during a drag operation the mouse enters this widget and it is necessary to determine whether it is possible to accept the drag.

bool QPlainTextEdit.canPaste (self)

Returns whether text can be pasted from the clipboard into the textedit.

QPlainTextEdit.centerCursor (self)

This method is also a Qt slot with the C++ signature void centerCursor().

Scrolls the document in order to center the cursor vertically.

See also ensureCursorVisible() and centerOnScroll.

bool QPlainTextEdit.centerOnScroll (self)

QPlainTextEdit.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

QPlainTextEdit.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Deletes all the text in the text edit.

Note that the undo/redo history is cleared by this function.

See also cut() and setPlainText().

QPointF QPlainTextEdit.contentOffset (self)

Returns the content's origin in viewport coordinates.

The origin of the content of a plain text edit is always the top left corner of the first visible text block. The content offset is different from (0,0) when the text has been scrolled horizontally, or when the first visible block has been scrolled partially off the screen, i.e. the visible text does not start with the first line of the first visible block, or when the first visible block is the very first block and the editor displays a margin.

See also firstVisibleBlock(), horizontalScrollBar(), and verticalScrollBar().

QPlainTextEdit.contextMenuEvent (self, QContextMenuEvent e)

Reimplemented from QWidget.contextMenuEvent().

Shows the standard context menu created with createStandardContextMenu().

If you do not want the text edit to have a context menu, you can set its contextMenuPolicy to Qt.NoContextMenu. If you want to customize the context menu, reimplement this function. If you want to extend the standard context menu, reimplement this function, call createStandardContextMenu() and extend the menu returned.

Information about the event is passed in the event object.

 void MyQPlainTextEdit.contextMenuEvent(QContextMenuEvent *event)
 {
     QMenu *menu = createStandardContextMenu();
     menu->addAction(tr("My Menu Item"));
     //...
     menu->exec(event->globalPos());
     delete menu;
 }

QPlainTextEdit.copy (self)

This method is also a Qt slot with the C++ signature void copy().

Copies any selected text to the clipboard.

See also copyAvailable().

QMimeData QPlainTextEdit.createMimeDataFromSelection (self)

This function returns a new MIME data object to represent the contents of the text edit's current selection. It is called when the selection needs to be encapsulated into a new QMimeData object; for example, when a drag and drop operation is started, or when data is copied to the clipboard.

If you reimplement this function, note that the ownership of the returned QMimeData object is passed to the caller. The selection can be retrieved by using the textCursor() function.

QMenu QPlainTextEdit.createStandardContextMenu (self)

This function creates the standard context menu which is shown when the user clicks on the line edit with the right mouse button. It is called from the default contextMenuEvent() handler. The popup menu's ownership is transferred to the caller.

QTextCharFormat QPlainTextEdit.currentCharFormat (self)

Returns the char format that is used when inserting new text.

See also setCurrentCharFormat().

QTextCursor QPlainTextEdit.cursorForPosition (self, QPoint pos)

returns a QTextCursor at position pos (in viewport coordinates).

QRect QPlainTextEdit.cursorRect (self, QTextCursor cursor)

returns a rectangle (in viewport coordinates) that includes the cursor.

QRect QPlainTextEdit.cursorRect (self)

returns a rectangle (in viewport coordinates) that includes the cursor of the text edit.

int QPlainTextEdit.cursorWidth (self)

QPlainTextEdit.cut (self)

This method is also a Qt slot with the C++ signature void cut().

Copies the selected text to the clipboard and deletes it from the text edit.

If there is no selected text nothing happens.

See also copy() and paste().

QTextDocument QPlainTextEdit.document (self)

Returns a pointer to the underlying document.

See also setDocument().

QString QPlainTextEdit.documentTitle (self)

QPlainTextEdit.dragEnterEvent (self, QDragEnterEvent e)

Reimplemented from QWidget.dragEnterEvent().

QPlainTextEdit.dragLeaveEvent (self, QDragLeaveEvent e)

Reimplemented from QWidget.dragLeaveEvent().

QPlainTextEdit.dragMoveEvent (self, QDragMoveEvent e)

Reimplemented from QWidget.dragMoveEvent().

QPlainTextEdit.dropEvent (self, QDropEvent e)

Reimplemented from QWidget.dropEvent().

QPlainTextEdit.ensureCursorVisible (self)

Ensures that the cursor is visible by scrolling the text edit if necessary.

See also centerCursor() and centerOnScroll.

bool QPlainTextEdit.event (self, QEvent e)

list-of-QTextEdit.ExtraSelection QPlainTextEdit.extraSelections (self)

Returns previously set extra selections.

See also setExtraSelections().

bool QPlainTextEdit.find (self, QString exp, QTextDocument.FindFlags options = 0)

Finds the next occurrence of the string, exp, using the given options. Returns true if exp was found and changes the cursor to select the match; otherwise returns false.

QTextBlock QPlainTextEdit.firstVisibleBlock (self)

Returns the first visible block.

See also blockBoundingRect().

QPlainTextEdit.focusInEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusInEvent().

bool QPlainTextEdit.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QPlainTextEdit.focusOutEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusOutEvent().

QAbstractTextDocumentLayout.PaintContext QPlainTextEdit.getPaintContext (self)

Returns the paint context for the viewport(), useful only when reimplementing paintEvent().

QPlainTextEdit.inputMethodEvent (self, QInputMethodEvent)

Reimplemented from QWidget.inputMethodEvent().

QVariant QPlainTextEdit.inputMethodQuery (self, Qt.InputMethodQuery property)

Reimplemented from QWidget.inputMethodQuery().

QPlainTextEdit.insertFromMimeData (self, QMimeData source)

This function inserts the contents of the MIME data object, specified by source, into the text edit at the current cursor position. It is called whenever text is inserted as the result of a clipboard paste operation, or when the text edit accepts data from a drag and drop operation.

QPlainTextEdit.insertPlainText (self, QString text)

This method is also a Qt slot with the C++ signature void insertPlainText(const QString&).

Convenience slot that inserts text at the current cursor position.

It is equivalent to

 edit->textCursor().insertText(text);

bool QPlainTextEdit.isReadOnly (self)

bool QPlainTextEdit.isUndoRedoEnabled (self)

QPlainTextEdit.keyPressEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyPressEvent().

QPlainTextEdit.keyReleaseEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyReleaseEvent().

LineWrapMode QPlainTextEdit.lineWrapMode (self)

QVariant QPlainTextEdit.loadResource (self, int type, QUrl name)

Loads the resource specified by the given type and name.

This function is an extension of QTextDocument.loadResource().

See also QTextDocument.loadResource().

int QPlainTextEdit.maximumBlockCount (self)

QPlainTextEdit.mergeCurrentCharFormat (self, QTextCharFormat modifier)

Merges the properties specified in modifier into the current character format by calling QTextCursor.mergeCharFormat on the editor's cursor. If the editor has a selection then the properties of modifier are directly applied to the selection.

See also QTextCursor.mergeCharFormat().

QPlainTextEdit.mouseDoubleClickEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseDoubleClickEvent().

QPlainTextEdit.mouseMoveEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseMoveEvent().

QPlainTextEdit.mousePressEvent (self, QMouseEvent e)

Reimplemented from QWidget.mousePressEvent().

QPlainTextEdit.mouseReleaseEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseReleaseEvent().

QPlainTextEdit.moveCursor (self, QTextCursor.MoveOperation operation, QTextCursor.MoveMode mode = QTextCursor.MoveAnchor)

Moves the cursor by performing the given operation.

If mode is QTextCursor.KeepAnchor, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys.

See also QTextCursor.movePosition().

bool QPlainTextEdit.overwriteMode (self)

QPlainTextEdit.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

QPlainTextEdit.paste (self)

This method is also a Qt slot with the C++ signature void paste().

Pastes the text from the clipboard into the text edit at the current cursor position.

If there is no text in the clipboard nothing happens.

To change the behavior of this function, i.e. to modify what QPlainTextEdit can paste and how it is being pasted, reimplement the virtual canInsertFromMimeData() and insertFromMimeData() functions.

See also cut() and copy().

QPlainTextEdit.print_ (self, QPrinter printer)

Convenience function to print the text edit's document to the given printer. This is equivalent to calling the print method on the document directly except that this function also supports QPrinter.Selection as print range.

See also QTextDocument.print().

QPlainTextEdit.redo (self)

This method is also a Qt slot with the C++ signature void redo().

Redoes the last operation.

If there is no operation to redo, i.e. there is no redo step in the undo/redo history, nothing happens.

See also undo().

QPlainTextEdit.resizeEvent (self, QResizeEvent e)

Reimplemented from QWidget.resizeEvent().

QPlainTextEdit.scrollContentsBy (self, int dx, int dy)

Reimplemented from QAbstractScrollArea.scrollContentsBy().

QPlainTextEdit.selectAll (self)

This method is also a Qt slot with the C++ signature void selectAll().

Selects all text.

See also copy(), cut(), and textCursor().

QPlainTextEdit.setBackgroundVisible (self, bool visible)

QPlainTextEdit.setCenterOnScroll (self, bool enabled)

QPlainTextEdit.setCurrentCharFormat (self, QTextCharFormat format)

Sets the char format that is be used when inserting new text to format by calling QTextCursor.setCharFormat() on the editor's cursor. If the editor has a selection then the char format is directly applied to the selection.

See also currentCharFormat().

QPlainTextEdit.setCursorWidth (self, int width)

QPlainTextEdit.setDocument (self, QTextDocument document)

Makes document the new document of the text editor.

The parent QObject of the provided document remains the owner of the object. If the current document is a child of the text editor, then it is deleted.

The document must have a document layout that inherits QPlainTextDocumentLayout (see QTextDocument.setDocumentLayout()).

See also document().

QPlainTextEdit.setDocumentTitle (self, QString title)

QPlainTextEdit.setExtraSelections (self, list-of-QTextEdit.ExtraSelection selections)

This function allows temporarily marking certain regions in the document with a given color, specified as selections. This can be useful for example in a programming editor to mark a whole line of text with a given background color to indicate the existence of a breakpoint.

See also QTextEdit.ExtraSelection and extraSelections().

QPlainTextEdit.setLineWrapMode (self, LineWrapMode mode)

QPlainTextEdit.setMaximumBlockCount (self, int maximum)

QPlainTextEdit.setOverwriteMode (self, bool overwrite)

QPlainTextEdit.setPlainText (self, QString text)

This method is also a Qt slot with the C++ signature void setPlainText(const QString&).

QPlainTextEdit.setReadOnly (self, bool ro)

QPlainTextEdit.setTabChangesFocus (self, bool b)

QPlainTextEdit.setTabStopWidth (self, int width)

QPlainTextEdit.setTextCursor (self, QTextCursor cursor)

Sets the visible cursor.

See also textCursor().

QPlainTextEdit.setTextInteractionFlags (self, Qt.TextInteractionFlags flags)

QPlainTextEdit.setUndoRedoEnabled (self, bool enable)

QPlainTextEdit.setWordWrapMode (self, QTextOption.WrapMode policy)

QPlainTextEdit.showEvent (self, QShowEvent)

Reimplemented from QWidget.showEvent().

bool QPlainTextEdit.tabChangesFocus (self)

int QPlainTextEdit.tabStopWidth (self)

QTextCursor QPlainTextEdit.textCursor (self)

Returns a copy of the QTextCursor that represents the currently visible cursor. Note that changes on the returned cursor do not affect QPlainTextEdit's cursor; use setTextCursor() to update the visible cursor.

See also setTextCursor().

Qt.TextInteractionFlags QPlainTextEdit.textInteractionFlags (self)

QPlainTextEdit.timerEvent (self, QTimerEvent e)

QString QPlainTextEdit.toPlainText (self)

QPlainTextEdit.undo (self)

This method is also a Qt slot with the C++ signature void undo().

Undoes the last operation.

If there is no operation to undo, i.e. there is no undo step in the undo/redo history, nothing happens.

See also redo().

QPlainTextEdit.wheelEvent (self, QWheelEvent e)

Reimplemented from QWidget.wheelEvent().

QTextOption.WrapMode QPlainTextEdit.wordWrapMode (self)


Qt Signal Documentation

void blockCountChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the block count changes. The new block count is passed in newBlockCount.

void copyAvailable (bool)

This is the default overload of this signal.

This signal is emitted when text is selected or de-selected in the text edit.

When text is selected this signal will be emitted with yes set to true. If no text has been selected or if the selected text is de-selected this signal is emitted with yes set to false.

If yes is true then copy() can be used to copy the selection to the clipboard. If yes is false then copy() does nothing.

See also selectionChanged().

void cursorPositionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the position of the cursor changed.

void modificationChanged (bool)

This is the default overload of this signal.

This signal is emitted whenever the content of the document changes in a way that affects the modification state. If changed is true, the document has been modified; otherwise it is false.

For example, calling setModified(false) on a document and then inserting text causes the signal to get emitted. If you undo that operation, causing the document to return to its original unmodified state, the signal will get emitted again.

void redoAvailable (bool)

This is the default overload of this signal.

This signal is emitted whenever redo operations become available (available is true) or unavailable (available is false).

void selectionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the selection changes.

See also copyAvailable().

void textChanged ()

This is the default overload of this signal.

This signal is emitted whenever the document's content changes; for example, when text is inserted or deleted, or when formatting is applied.

void undoAvailable (bool)

This is the default overload of this signal.

This signal is emitted whenever undo operations become available (available is true) or unavailable (available is false).

void updateRequest (const QRect&,int)

This is the default overload of this signal.

This signal is emitted when the text document needs an update of the specified rect. If the text is scrolled, rect will cover the entire viewport area. If the text is scrolled vertically, dy carries the amount of pixels the viewport was scrolled.

The purpose of the signal is to support extra widgets in plain text edit subclasses that e.g. show line numbers, breakpoints, or other extra information.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpluginloader.html0000644000076500000240000002706112536324473021230 0ustar philstaff00000000000000 QPluginLoader Class Reference
  Home · All Classes · Modules

QPluginLoader Class Reference
[
QtCore module]

The QPluginLoader class loads a plugin at run-time. More...

Inherits QObject.

Methods

Static Methods


Detailed Description

The QPluginLoader class loads a plugin at run-time.

QPluginLoader provides access to a Qt plugin. A Qt plugin is stored in a shared library (a DLL) and offers these benefits over shared libraries accessed using QLibrary:

  • QPluginLoader checks that a plugin is linked against the same version of Qt as the application.
  • QPluginLoader provides direct access to a root component object (instance()), instead of forcing you to resolve a C function manually.

An instance of a QPluginLoader object operates on a single shared library file, which we call a plugin. It provides access to the functionality in the plugin in a platform-independent way. To specify which plugin to load, either pass a file name in the constructor or set it with setFileName().

The most important functions are load() to dynamically load the plugin file, isLoaded() to check whether loading was successful, and instance() to access the root component in the plugin. The instance() function implicitly tries to load the plugin if it has not been loaded yet. Multiple instances of QPluginLoader can be used to access the same physical plugin.

Once loaded, plugins remain in memory until all instances of QPluginLoader has been unloaded, or until the application terminates. You can attempt to unload a plugin using unload(), but if other instances of QPluginLoader are using the same library, the call will fail, and unloading will only happen when every instance has called unload(). Right before the unloading happen, the root component will also be deleted.

In order to speed up loading and validation of plugins, some of the information that is collected during loading is cached in persistent memory (through QSettings). For instance, the result of a load operation (e.g. succeeded or failed) is stored in the cache, so that subsequent load operations don't try to load an invalid plugin. However, if the "last modified" timestamp of a plugin has changed, the plugin's cache entry is invalidated and the plugin is reloaded regardless of the values in the cache entry. The cache entry is then updated with the new result of the load operation.

This also means that the timestamp must be updated each time the plugin or any dependent resources (such as a shared library) is updated, since the dependent resources might influence the result of loading a plugin.

See How to Create Qt Plugins for more information about how to make your application extensible through plugins.

Note that the QPluginLoader cannot be used if your application is statically linked against Qt. In this case, you will also have to link to plugins statically. You can use QLibrary if you need to load dynamic libraries in a statically linked application.

Note: In Symbian the plugin stub files must be used whenever a path to plugin is needed. For the purposes of loading plugins, the stubs can be considered to have the same name as the actual plugin binary. In practice they have ".qtplugin" extension instead of ".dll", but this difference is handled transparently by QPluginLoader and QLibrary to avoid need for Symbian specific plugin handling in most Qt applications. Plugin stubs are needed because Symbian Platform Security denies all access to the directory where the actual plugin binaries are located.


Method Documentation

QPluginLoader.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a plugin loader with the given parent.

QPluginLoader.__init__ (self, QString fileName, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a plugin loader with the given parent that will load the plugin specified by fileName.

To be loadable, the file's suffix must be a valid suffix for a loadable library in accordance with the platform, e.g. .so on Unix, - .dylib on Mac OS X, and .dll on Windows. The suffix can be verified with QLibrary.isLibrary().

Note: In Symbian the fileName must point to plugin stub file.

See also setFileName().

QString QPluginLoader.errorString (self)

Returns a text string with the description of the last error that occurred.

This function was introduced in Qt 4.2.

QString QPluginLoader.fileName (self)

QObject QPluginLoader.instance (self)

Returns the root component object of the plugin. The plugin is loaded if necessary. The function returns 0 if the plugin could not be loaded or if the root component object could not be instantiated.

If the root component object was destroyed, calling this function creates a new instance.

The root component, returned by this function, is not deleted when the QPluginLoader is destroyed. If you want to ensure that the root component is deleted, you should call unload() as soon you don't need to access the core component anymore. When the library is finally unloaded, the root component will automatically be deleted.

The component object is a QObject. Use qobject_cast() to access interfaces you are interested in.

See also load().

bool QPluginLoader.isLoaded (self)

Returns true if the plugin is loaded; otherwise returns false.

See also load().

bool QPluginLoader.load (self)

Loads the plugin and returns true if the plugin was loaded successfully; otherwise returns false. Since instance() always calls this function before resolving any symbols it is not necessary to call it explicitly. In some situations you might want the plugin loaded in advance, in which case you would use this function.

See also unload().

QLibrary.LoadHints QPluginLoader.loadHints (self)

QPluginLoader.setFileName (self, QString fileName)

QPluginLoader.setLoadHints (self, QLibrary.LoadHints loadHints)

list-of-QObject QPluginLoader.staticInstances ()

Returns a list of static plugin instances (root components) held by the plugin loader.

bool QPluginLoader.unload (self)

Unloads the plugin and returns true if the plugin could be unloaded; otherwise returns false.

This happens automatically on application termination, so you shouldn't normally need to call this function.

If other instances of QPluginLoader are using the same plugin, the call will fail, and unloading will only happen when every instance has called unload().

Don't try to delete the root component. Instead rely on that unload() will automatically delete it when needed.

See also instance() and load().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpoint.html0000644000076500000240000003117512536324473017675 0ustar philstaff00000000000000 QPoint Class Reference
  Home · All Classes · Modules

QPoint Class Reference
[QtCore module]

The QPoint class defines a point in the plane using integer precision. More...

Methods

Special Methods


Detailed Description

This class can be pickled.

The QPoint class defines a point in the plane using integer precision.

A point is specified by a x coordinate and an y coordinate which can be accessed using the x() and y() functions. The isNull() function returns true if both x and y are set to 0. The coordinates can be set (or altered) using the setX() and setY() functions, or alternatively the rx() and ry() functions which return references to the coordinates (allowing direct manipulation).

Given a point p, the following statements are all equivalent:

 QPoint p;

 p.setX(p.x() + 1);
 p += QPoint(1, 0);
 p.rx()++;

A QPoint object can also be used as a vector: Addition and subtraction are defined as for vectors (each component is added separately). A QPoint object can also be divided or multiplied by an int or a qreal.

In addition, the QPoint class provides the manhattanLength() function which gives an inexpensive approximation of the length of the QPoint object interpreted as a vector. Finally, QPoint objects can be streamed as well as compared.


Method Documentation

QPoint.__init__ (self)

Constructs a null point, i.e. with coordinates (0, 0)

See also isNull().

QPoint.__init__ (self, int xpos, int ypos)

Constructs a point with the given coordinates (x, y).

See also setX() and setY().

QPoint.__init__ (self, QPoint)

bool QPoint.isNull (self)

Returns true if both the x and y coordinates are set to 0, otherwise returns false.

int QPoint.manhattanLength (self)

Returns the sum of the absolute values of x() and y(), traditionally known as the "Manhattan length" of the vector from the origin to the point. For example:

 QPoint oldPosition;

 MyWidget.mouseMoveEvent(QMouseEvent *event)
 {
     QPoint point = event->pos() - oldPosition;
     if (point.manhattanLength() > 3)
         // the mouse has moved more than 3 pixels since the oldPosition
 }

This is a useful, and quick to calculate, approximation to the true length:

 double trueLength = sqrt(pow(x(), 2) + pow(y(), 2));

The tradition of "Manhattan length" arises because such distances apply to travelers who can only travel on a rectangular grid, like the streets of Manhattan.

QPoint.setX (self, int xpos)

Sets the x coordinate of this point to the given x coordinate.

See also x() and setY().

QPoint.setY (self, int ypos)

Sets the y coordinate of this point to the given y coordinate.

See also y() and setX().

int QPoint.x (self)

Returns the x coordinate of this point.

See also setX() and rx().

int QPoint.y (self)

Returns the y coordinate of this point.

See also setY() and ry().

QPoint __mul__ (self, QMatrix m)

This method is only available if the QtGui module is imported.

QPoint __mul__ (self, QMatrix4x4 matrix)

This method is only available if the QtGui module is imported.

QPoint __mul__ (self, QTransform m)

This method is only available if the QtGui module is imported.

QPoint QPoint.__add__ (self, QPoint p2)

int QPoint.__bool__ (self)

QPoint QPoint.__div__ (self, float c)

bool QPoint.__eq__ (self, QPoint p2)

QPoint QPoint.__iadd__ (self, QPoint p)

QPoint QPoint.__idiv__ (self, float c)

QPoint QPoint.__imul__ (self, int c)

QPoint QPoint.__imul__ (self, float c)

QPoint QPoint.__isub__ (self, QPoint p)

QPoint QPoint.__mul__ (self, int c)

QPoint QPoint.__mul__ (self, QPoint p)

QPoint QPoint.__mul__ (self, float c)

QPoint QPoint.__mul__ (self, QPoint p)

bool QPoint.__ne__ (self, QPoint p2)

QPoint QPoint.__neg__ (self)

str QPoint.__repr__ (self)

QPoint QPoint.__sub__ (self, QPoint p2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpointf.html0000644000076500000240000003077712536324473020052 0ustar philstaff00000000000000 QPointF Class Reference
  Home · All Classes · Modules

QPointF Class Reference
[QtCore module]

The QPointF class defines a point in the plane using floating point precision. More...

Methods

Special Methods


Detailed Description

This class can be pickled.

The QPointF class defines a point in the plane using floating point precision.

A point is specified by a x coordinate and an y coordinate which can be accessed using the x() and y() functions. The coordinates of the point are specified using floating point numbers for accuracy. The isNull() function returns true if both x and y are set to 0.0. The coordinates can be set (or altered) using the setX() and setY() functions, or alternatively the rx() and ry() functions which return references to the coordinates (allowing direct manipulation).

Given a point p, the following statements are all equivalent:

 QPointF p;

 p.setX(p.x() + 1.0);
 p += QPointF(1.0, 0.0);
 p.rx()++;

A QPointF object can also be used as a vector: Addition and subtraction are defined as for vectors (each component is added separately). A QPointF object can also be divided or multiplied by an int or a qreal.

In addition, the QPointF class provides a constructor converting a QPoint object into a QPointF object, and a corresponding toPoint() function which returns a QPoint copy of this point. Finally, QPointF objects can be streamed as well as compared.


Method Documentation

QPointF.__init__ (self)

Constructs a null point, i.e. with coordinates (0.0, 0.0)

See also isNull().

QPointF.__init__ (self, QPainterPath.Element)

This method is only available if the QtGui module is imported.

Constructs a null point, i.e. with coordinates (0.0, 0.0)

See also isNull().

QPointF.__init__ (self, float xpos, float ypos)

Constructs a copy of the given point.

See also toPoint().

QPointF.__init__ (self, QPoint p)

Constructs a point with the given coordinates (x, y).

See also setX() and setY().

QPointF.__init__ (self, QPointF)

bool QPointF.isNull (self)

Returns true if both the x and y coordinates are set to +0.0; otherwise returns false.

Note: Since this function treats +0.0 and -0.0 differently, points with zero-valued coordinates where either or both values have a negative sign are not defined to be null points.

float QPointF.manhattanLength (self)

Returns the sum of the absolute values of x() and y(), traditionally known as the "Manhattan length" of the vector from the origin to the point.

This function was introduced in Qt 4.6.

See also QPoint.manhattanLength().

QPointF.setX (self, float xpos)

Sets the x coordinate of this point to the given x coordinate.

See also x() and setY().

QPointF.setY (self, float ypos)

Sets the y coordinate of this point to the given y coordinate.

See also y() and setX().

QPoint QPointF.toPoint (self)

Rounds the coordinates of this point to the nearest integer, and returns a QPoint object with the rounded coordinates.

See also QPointF().

float QPointF.x (self)

Returns the x-coordinate of this point.

See also setX() and rx().

float QPointF.y (self)

Returns the y-coordinate of this point.

See also setY() and ry().

QPointF __mul__ (self, QMatrix m)

This method is only available if the QtGui module is imported.

QPointF __mul__ (self, QMatrix4x4 matrix)

This method is only available if the QtGui module is imported.

QPointF __mul__ (self, QTransform m)

This method is only available if the QtGui module is imported.

QPointF QPointF.__add__ (self, QPointF p2)

int QPointF.__bool__ (self)

QPointF QPointF.__div__ (self, float c)

bool QPointF.__eq__ (self, QPointF p2)

QPointF QPointF.__iadd__ (self, QPointF p)

QPointF QPointF.__idiv__ (self, float c)

QPointF QPointF.__imul__ (self, float c)

QPointF QPointF.__isub__ (self, QPointF p)

QPointF QPointF.__mul__ (self, float c)

QPointF QPointF.__mul__ (self, QPointF p)

bool QPointF.__ne__ (self, QPointF p2)

QPointF QPointF.__neg__ (self)

str QPointF.__repr__ (self)

QPointF QPointF.__sub__ (self, QPointF p2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpolygon.html0000644000076500000240000006607112536324512020230 0ustar philstaff00000000000000 QPolygon Class Reference
  Home · All Classes · Modules

QPolygon Class Reference
[QtGui module]

The QPolygon class provides a vector of points using integer precision. More...

Methods

Special Methods


Detailed Description

This class can be pickled.

The QPolygon class provides a vector of points using integer precision.

A QPolygon object is a QVector<QPoint>. The easiest way to add points to a QPolygon is to use QVector's streaming operator, as illustrated below:

         QPolygon polygon;
         polygon << QPoint(10, 20) << QPoint(20, 30);

In addition to the functions provided by QVector, QPolygon provides some point-specific functions.

Each point in a polygon can be retrieved by passing its index to the point() function. To populate the polygon, QPolygon provides the setPoint() function to set the point at a given index, the setPoints() function to set all the points in the polygon (resizing it to the given number of points), and the putPoints() function which copies a number of given points into the polygon from a specified index (resizing the polygon if necessary).

QPolygon provides the boundingRect() and translate() functions for geometry functions. Use the QMatrix.map() function for more general transformations of QPolygons.

The QPolygon class is implicitly shared.


Method Documentation

QPolygon.__init__ (self)

Constructs a polygon with no points.

See also QVector.isEmpty().

QPolygon.__init__ (self, QPolygon a)

Constructs a polygon of the given size. Creates an empty polygon if size == 0.

See also QVector.isEmpty().

QPolygon.__init__ (self, list-of-QPoint v)

Constructs a copy of the given polygon.

See also setPoints().

QPolygon.__init__ (self, QRect rectangle, bool closed = False)

Constructs a polygon containing the specified points.

See also setPoints().

QPolygon.__init__ (self, int asize)

Constructs a polygon from the given rectangle. If closed is false, the polygon just contains the four points of the rectangle ordered clockwise, otherwise the polygon's fifth point is set to rectangle.topLeft().

Note that the bottom-right corner of the rectangle is located at (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()).

See also setPoints().

QPolygon.__init__ (self, list-of-int points)

QPolygon.__init__ (self, QVariant variant)

QPolygon.append (self, QPoint value)

QPoint QPolygon.at (self, int i)

QRect QPolygon.boundingRect (self)

Returns the bounding rectangle of the polygon, or QRect(0, 0, 0, 0) if the polygon is empty.

See also QVector.isEmpty().

QPolygon.clear (self)

bool QPolygon.contains (self, QPoint value)

bool QPolygon.containsPoint (self, QPoint pt, Qt.FillRule fillRule)

Returns true if the given point is inside the polygon according to the specified fillRule; otherwise returns false.

This function was introduced in Qt 4.3.

int QPolygon.count (self, QPoint value)

int QPolygon.count (self)

sip.voidptr QPolygon.data (self)

QPolygon.fill (self, QPoint value, int size = -1)

QPoint QPolygon.first (self)

int QPolygon.indexOf (self, QPoint value, int from = 0)

QPolygon.insert (self, int i, QPoint value)

QPolygon QPolygon.intersected (self, QPolygon r)

Returns a polygon which is the intersection of this polygon and r.

Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.

This function was introduced in Qt 4.3.

bool QPolygon.isEmpty (self)

QPoint QPolygon.last (self)

int QPolygon.lastIndexOf (self, QPoint value, int from = -1)

QPolygon QPolygon.mid (self, int pos, int length = -1)

QPoint QPolygon.point (self, int index)

Extracts the coordinates of the point at the given index to *x and *y (if they are valid pointers).

See also setPoint().

QPolygon.prepend (self, QPoint value)

QPolygon.putPoints (self, int index, int firstx, int firsty, ...)

Copies nPoints points from the variable argument list into this polygon from the given index.

The points are given as a sequence of integers, starting with firstx then firsty, and so on. The polygon is resized if index+nPoints exceeds its current size.

The example code creates a polygon with three points (4,5), (6,7) and (8,9), by expanding the polygon from 1 to 3 points:

         QPolygon polygon(1);
         polygon[0] = QPoint(4, 5);
         polygon.putPoints(1, 2, 6,7, 8,9);

The following code has the same result, but here the putPoints() function overwrites rather than extends:

         QPolygon polygon(3);
         polygon.putPoints(0, 3, 4,5, 0,0, 8,9);
         polygon.putPoints(1, 1, 6,7);

See also setPoints().

QPolygon.putPoints (self, int index, int nPoints, QPolygon fromPolygon, int from = 0)

QPolygon.remove (self, int i)

QPolygon.remove (self, int i, int count)

QPolygon.replace (self, int i, QPoint value)

QPolygon.setPoint (self, int index, QPoint pt)

Sets the point at the given index to the point specified by (x, y).

See also point(), putPoints(), and setPoints().

QPolygon.setPoint (self, int index, int x, int y)

This is an overloaded function.

Sets the point at the given index to the given point.

QPolygon.setPoints (self, list-of-int points)

Resizes the polygon to nPoints and populates it with the given points.

The example code creates a polygon with two points (10, 20) and (30, 40):

         static const int points[] = { 10, 20, 30, 40 };
         QPolygon polygon;
         polygon.setPoints(2, points);

See also setPoint() and putPoints().

QPolygon.setPoints (self, int firstx, int firsty, ...)

This is an overloaded function.

Resizes the polygon to nPoints and populates it with the points specified by the variable argument list. The points are given as a sequence of integers, starting with firstx then firsty, and so on.

The example code creates a polygon with two points (10, 20) and (30, 40):

         QPolygon polygon;
         polygon.setPoints(2, 10, 20, 30, 40);

int QPolygon.size (self)

QPolygon QPolygon.subtracted (self, QPolygon r)

Returns a polygon which is r subtracted from this polygon.

Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.

This function was introduced in Qt 4.3.

QPolygon.swap (self, QPolygon other)

Swaps polygon other with this polygon. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QPolygon.translate (self, int dx, int dy)

Translates all points in the polygon by (dx, dy).

See also translated().

QPolygon.translate (self, QPoint offset)

This is an overloaded function.

Translates all points in the polygon by the given offset.

See also translated().

QPolygon QPolygon.translated (self, int dx, int dy)

Returns a copy of the polygon that is translated by (dx, dy).

This function was introduced in Qt 4.6.

See also translate().

QPolygon QPolygon.translated (self, QPoint offset)

This is an overloaded function.

Returns a copy of the polygon that is translated by the given offset.

This function was introduced in Qt 4.6.

See also translate().

QPolygon QPolygon.united (self, QPolygon r)

Returns a polygon which is the union of this polygon and r.

Set operations on polygons, will treat the polygons as areas, and implicitly close the polygon.

This function was introduced in Qt 4.3.

See also intersected() and subtracted().

QPoint QPolygon.value (self, int i)

QPoint QPolygon.value (self, int i, QPoint defaultValue)

QPolygon QPolygon.__add__ (self, QPolygon other)

int QPolygon.__contains__ (self, QPoint value)

QPolygon.__delitem__ (self, int i)

QPolygon.__delitem__ (self, slice slice)

bool QPolygon.__eq__ (self, QPolygon other)

QPoint QPolygon.__getitem__ (self, int i)

QPolygon QPolygon.__getitem__ (self, slice slice)

QPolygon QPolygon.__iadd__ (self, QPolygon other)

QPolygon QPolygon.__iadd__ (self, QPoint value)

QPolygon.__len__ (self)

object QPolygon.__lshift__ (self, QPoint value)

QPolygon QPolygon.__mul__ (self, QMatrix m)

QPolygon QPolygon.__mul__ (self, QTransform m)

bool QPolygon.__ne__ (self, QPolygon other)

QPolygon.__setitem__ (self, int i, QPoint value)

QPolygon.__setitem__ (self, slice slice, QPolygon list)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpolygonf.html0000644000076500000240000005137012536324512020372 0ustar philstaff00000000000000 QPolygonF Class Reference
  Home · All Classes · Modules

QPolygonF Class Reference
[QtGui module]

The QPolygonF class provides a vector of points using floating point precision. More...

Methods

Special Methods


Detailed Description

The QPolygonF class provides a vector of points using floating point precision.

A QPolygonF is a QVector<QPointF>. The easiest way to add points to a QPolygonF is to use its streaming operator, as illustrated below:

         QPolygonF polygon;
         polygon << QPointF(10.4, 20.5) << QPointF(20.2, 30.2);

In addition to the functions provided by QVector, QPolygonF provides the boundingRect() and translate() functions for geometry operations. Use the QMatrix.map() function for more general transformations of QPolygonFs.

QPolygonF also provides the isClosed() function to determine whether a polygon's start and end points are the same, and the toPolygon() function returning an integer precision copy of this polygon.

The QPolygonF class is implicitly shared.


Method Documentation

QPolygonF.__init__ (self)

Constructs a polygon with no points.

See also QVector.isEmpty().

QPolygonF.__init__ (self, QPolygonF a)

Constructs a polygon of the given size. Creates an empty polygon if size == 0.

See also QVector.isEmpty().

QPolygonF.__init__ (self, list-of-QPointF v)

Constructs a copy of the given polygon.

QPolygonF.__init__ (self, QRectF r)

Constructs a polygon containing the specified points.

QPolygonF.__init__ (self, QPolygon a)

Constructs a closed polygon from the specified rectangle.

The polygon contains the four vertices of the rectangle in clockwise order starting and ending with the top-left vertex.

See also isClosed().

QPolygonF.__init__ (self, int asize)

Constructs a float based polygon from the specified integer based polygon.

See also toPolygon().

QPolygonF.append (self, QPointF value)

QPointF QPolygonF.at (self, int i)

QRectF QPolygonF.boundingRect (self)

Returns the bounding rectangle of the polygon, or QRectF(0,0,0,0) if the polygon is empty.

See also QVector.isEmpty().

QPolygonF.clear (self)

bool QPolygonF.contains (self, QPointF value)

bool QPolygonF.containsPoint (self, QPointF pt, Qt.FillRule fillRule)

Returns true if the given point is inside the polygon according to the specified fillRule; otherwise returns false.

This function was introduced in Qt 4.3.

int QPolygonF.count (self, QPointF value)

int QPolygonF.count (self)

sip.voidptr QPolygonF.data (self)

QPolygonF.fill (self, QPointF value, int size = -1)

QPointF QPolygonF.first (self)

int QPolygonF.indexOf (self, QPointF value, int from = 0)

QPolygonF.insert (self, int i, QPointF value)

QPolygonF QPolygonF.intersected (self, QPolygonF r)

Returns a polygon which is the intersection of this polygon and r.

Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.

This function was introduced in Qt 4.3.

bool QPolygonF.isClosed (self)

Returns true if the polygon is closed; otherwise returns false.

A polygon is said to be closed if its start point and end point are equal.

See also QVector.first() and QVector.last().

bool QPolygonF.isEmpty (self)

QPointF QPolygonF.last (self)

int QPolygonF.lastIndexOf (self, QPointF value, int from = -1)

QPolygonF QPolygonF.mid (self, int pos, int length = -1)

QPolygonF.prepend (self, QPointF value)

QPolygonF.remove (self, int i)

QPolygonF.remove (self, int i, int count)

QPolygonF.replace (self, int i, QPointF value)

int QPolygonF.size (self)

QPolygonF QPolygonF.subtracted (self, QPolygonF r)

Returns a polygon which is r subtracted from this polygon.

Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.

This function was introduced in Qt 4.3.

QPolygonF.swap (self, QPolygonF other)

Swaps polygon other with this polygon. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QPolygon QPolygonF.toPolygon (self)

Creates and returns a QPolygon by converting each QPointF to a QPoint.

See also QPointF.toPoint().

QPolygonF.translate (self, QPointF offset)

Translate all points in the polygon by the given offset.

See also translated().

QPolygonF.translate (self, float dx, float dy)

This is an overloaded function.

Translates all points in the polygon by (dx, dy).

See also translated().

QPolygonF QPolygonF.translated (self, QPointF offset)

Returns a copy of the polygon that is translated by the given offset.

This function was introduced in Qt 4.6.

See also translate().

QPolygonF QPolygonF.translated (self, float dx, float dy)

This is an overloaded function.

Returns a copy of the polygon that is translated by (dx, dy).

This function was introduced in Qt 4.6.

See also translate().

QPolygonF QPolygonF.united (self, QPolygonF r)

Returns a polygon which is the union of this polygon and r.

Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.

This function was introduced in Qt 4.3.

See also intersected() and subtracted().

QPointF QPolygonF.value (self, int i)

QPointF QPolygonF.value (self, int i, QPointF defaultValue)

QPolygonF QPolygonF.__add__ (self, QPolygonF other)

int QPolygonF.__contains__ (self, QPointF value)

QPolygonF.__delitem__ (self, int i)

QPolygonF.__delitem__ (self, slice slice)

bool QPolygonF.__eq__ (self, QPolygonF other)

QPointF QPolygonF.__getitem__ (self, int i)

QPolygonF QPolygonF.__getitem__ (self, slice slice)

QPolygonF QPolygonF.__iadd__ (self, QPolygonF other)

QPolygonF QPolygonF.__iadd__ (self, QPointF value)

QPolygonF.__len__ (self)

object QPolygonF.__lshift__ (self, QPointF value)

QPolygonF QPolygonF.__mul__ (self, QMatrix m)

QPolygonF QPolygonF.__mul__ (self, QTransform m)

bool QPolygonF.__ne__ (self, QPolygonF other)

QPolygonF.__setitem__ (self, int i, QPointF value)

QPolygonF.__setitem__ (self, slice slice, QPolygonF list)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprintdialog.html0000644000076500000240000002416512536324512021053 0ustar philstaff00000000000000 QPrintDialog Class Reference
  Home · All Classes · Modules

QPrintDialog Class Reference
[QtGui module]

The QPrintDialog class provides a dialog for specifying the printer's configuration. More...

Inherits QAbstractPrintDialog.

Methods

  • __init__ (self, QPrinter printer, QWidget parent = None)
  • __init__ (self, QWidget parent = None)
  • accept (self)
  • accepted (self)
  • done (self, int result)
  • int exec_ (self)
  • open (self)
  • open (self, QObject receiver, SLOT()SLOT() member)
  • open (self, callable receiver)
  • QAbstractPrintDialog.PrintDialogOptions options (self)
  • setOption (self, QAbstractPrintDialog.PrintDialogOption option, bool on = True)
  • setOptions (self, QAbstractPrintDialog.PrintDialogOptions options)
  • setVisible (self, bool visible)
  • bool testOption (self, QAbstractPrintDialog.PrintDialogOption option)

Qt Signals


Detailed Description

The QPrintDialog class provides a dialog for specifying the printer's configuration.

The dialog allows users to change document-related settings, such as the paper size and orientation, type of print (color or grayscale), range of pages, and number of copies to print.

Controls are also provided to enable users to choose from the printers available, including any configured network printers.

Typically, QPrintDialog objects are constructed with a QPrinter object, and executed using the exec_() function.

 QPrintDialog printDialog(printer, parent);
 if (printDialog.exec() == QDialog.Accepted) {
     // print ...
 }

If the dialog is accepted by the user, the QPrinter object is correctly configured for printing.

The printer dialog (shown above in Plastique style) enables access to common printing properties. On X11 platforms that use the CUPS printing system, the settings for each available printer can be modified via the dialog's Properties push button.

On Windows and Mac OS X, the native print dialog is used, which means that some QWidget and QDialog properties set on the dialog won't be respected. The native print dialog on Mac OS X does not support setting printer options, i.e. setOptions() and setOption() have no effect.

In Qt 4.4, it was possible to use the static functions to show a sheet on Mac OS X. This is no longer supported in Qt 4.5. If you want this functionality, use QPrintDialog.open().


Method Documentation

QPrintDialog.__init__ (self, QPrinter printer, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new modal printer dialog for the given printer with the given parent.

QPrintDialog.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a print dialog with the given parent.

QPrintDialog.accept (self)

QPrintDialog.accepted (self)

This signal is emitted when the user accepts the values set in the print dialog. The printer parameter includes the printer that the settings were applied to.

QPrintDialog.done (self, int result)

Reimplemented from QDialog.done().

Closes the dialog and sets its result code to result. If this dialog is shown with exec_(), done() causes the local event loop to finish, and exec_() to return result.

Note: This function does not apply to the Native Print Dialog on the Mac OS X and Windows platforms, because the dialog is required to be modal and only the user can close it.

See also QDialog.done().

int QPrintDialog.exec_ (self)

Reimplemented from QAbstractPrintDialog.exec().

QPrintDialog.open (self)

This is an overloaded function.

Opens the dialog and connects its accepted() signal to the slot specified by receiver and member.

The signal will be disconnected from the slot when the dialog is closed.

This function was introduced in Qt 4.5.

QPrintDialog.open (self, QObject receiver, SLOT()SLOT() member)

QPrintDialog.open (self, callable receiver)

QAbstractPrintDialog.PrintDialogOptions QPrintDialog.options (self)

QPrintDialog.setOption (self, QAbstractPrintDialog.PrintDialogOption option, bool on = True)

Sets the given option to be enabled if on is true; otherwise, clears the given option.

See also options and testOption().

QPrintDialog.setOptions (self, QAbstractPrintDialog.PrintDialogOptions options)

QPrintDialog.setVisible (self, bool visible)

Reimplemented from QWidget.setVisible().

bool QPrintDialog.testOption (self, QAbstractPrintDialog.PrintDialogOption option)

Returns true if the given option is enabled; otherwise, returns false.

See also options and setOption().


Qt Signal Documentation

void accepted (QPrinter*)

This is the default overload of this signal.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprintengine.html0000644000076500000240000003047312536324512021060 0ustar philstaff00000000000000 QPrintEngine Class Reference
  Home · All Classes · Modules

QPrintEngine Class Reference
[
QtGui module]

The QPrintEngine class defines an interface for how QPrinter interacts with a given printing subsystem. More...

Types

  • enum PrintEnginePropertyKey { PPK_CollateCopies, PPK_ColorMode, PPK_Creator, PPK_DocumentName, ..., PPK_CustomBase }

Methods


Detailed Description

The QPrintEngine class defines an interface for how QPrinter interacts with a given printing subsystem.

The common case when creating your own print engine is to derive from both QPaintEngine and QPrintEngine. Various properties of a print engine are given with property() and set with setProperty().


Type Documentation

QPrintEngine.PrintEnginePropertyKey

This enum is used to communicate properties between the print engine and QPrinter. A property may or may not be supported by a given print engine.

Constant Value Description
QPrintEngine.PPK_CollateCopies 0 A boolean value indicating whether the printout should be collated or not.
QPrintEngine.PPK_ColorMode 1 Refers to QPrinter.ColorMode, either color or monochrome.
QPrintEngine.PPK_Creator 2 A string describing the document's creator.
QPrintEngine.PPK_Duplex 21 A boolean value indicating whether both sides of the printer paper should be used for the printout.
QPrintEngine.PPK_DocumentName 3 A string describing the document name in the spooler.
QPrintEngine.PPK_FontEmbedding 19 A boolean value indicating whether data for the document's fonts should be embedded in the data sent to the printer.
QPrintEngine.PPK_FullPage 4 A boolean describing if the printer should be full page or not.
QPrintEngine.PPK_NumberOfCopies 5 Obsolete. An integer specifying the number of copies. Use PPK_CopyCount instead.
QPrintEngine.PPK_Orientation 6 Specifies a QPrinter.Orientation value.
QPrintEngine.PPK_OutputFileName 7 The output file name as a string. An empty file name indicates that the printer should not print to a file.
QPrintEngine.PPK_PageOrder 8 Specifies a QPrinter.PageOrder value.
QPrintEngine.PPK_PageRect 9 A QRect specifying the page rectangle
QPrintEngine.PPK_PageSize 10 Obsolete. Use PPK_PaperSize instead.
QPrintEngine.PPK_PaperRect 11 A QRect specifying the paper rectangle.
QPrintEngine.PPK_PaperSource 12 Specifies a QPrinter.PaperSource value.
QPrintEngine.PPK_PaperSources 22 Specifies more than one QPrinter.PaperSource value.
QPrintEngine.PPK_PaperSize PPK_PageSize Specifies a QPrinter.PaperSize value.
QPrintEngine.PPK_PrinterName 13 A string specifying the name of the printer.
QPrintEngine.PPK_PrinterProgram 14 A string specifying the name of the printer program used for printing,
QPrintEngine.PPK_Resolution 15 An integer describing the dots per inch for this printer.
QPrintEngine.PPK_SelectionOption 16  
QPrintEngine.PPK_SupportedResolutions 17 A list of integer QVariants describing the set of supported resolutions that the printer has.
QPrintEngine.PPK_SuppressSystemPrintStatus 20 Suppress the built-in dialog for showing printing progress. As of 4.1 this only has effect on Mac OS X where, by default, a status dialog is shown.
QPrintEngine.PPK_WindowsPageSize 18 An integer specifying a DM_PAPER entry on Windows.
QPrintEngine.PPK_CustomPaperSize 23 A QSizeF specifying a custom paper size in the QPrinter.Point unit.
QPrintEngine.PPK_PageMargins 24 A QList<QVariant> containing the left, top, right and bottom margin values.
QPrintEngine.PPK_CopyCount 25 An integer specifying the number of copies to print.
QPrintEngine.PPK_SupportsMultipleCopies 26 A boolean value indicating whether or not the printer supports printing multiple copies in one job.
QPrintEngine.PPK_CustomBase 0xff00 Basis for extension.

Method Documentation

QPrintEngine.__init__ (self)

QPrintEngine.__init__ (self, QPrintEngine)

bool QPrintEngine.abort (self)

This method is abstract and should be reimplemented in any sub-class.

Instructs the print engine to abort the printing process. Returns true if successful; otherwise returns false.

int QPrintEngine.metric (self, QPaintDevice.PaintDeviceMetric)

This method is abstract and should be reimplemented in any sub-class.

Returns the metric for the given id.

bool QPrintEngine.newPage (self)

This method is abstract and should be reimplemented in any sub-class.

Instructs the print engine to start a new page. Returns true if the printer was able to create the new page; otherwise returns false.

QPrinter.PrinterState QPrintEngine.printerState (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the current state of the printer being used by the print engine.

QVariant QPrintEngine.property (self, PrintEnginePropertyKey key)

This method is abstract and should be reimplemented in any sub-class.

Returns the print engine's property specified by key.

See also setProperty().

QPrintEngine.setProperty (self, PrintEnginePropertyKey key, QVariant value)

This method is abstract and should be reimplemented in any sub-class.

Sets the print engine's property specified by key to the given value.

See also property().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprinter.html0000644000076500000240000016502712536324512020225 0ustar philstaff00000000000000 QPrinter Class Reference
  Home · All Classes · Modules

QPrinter Class Reference
[QtGui module]

The QPrinter class is a paint device that paints on a printer. More...

Inherits QPaintDevice.

Types

  • enum ColorMode { GrayScale, Color }
  • enum DuplexMode { DuplexNone, DuplexAuto, DuplexLongSide, DuplexShortSide }
  • enum Orientation { Portrait, Landscape }
  • enum OutputFormat { NativeFormat, PdfFormat, PostScriptFormat }
  • enum PageOrder { FirstPageFirst, LastPageFirst }
  • enum PageSize { A4, B5, Letter, Legal, ..., Custom }
  • enum PaperSource { OnlyOne, Lower, Middle, Manual, ..., MaxPageSource }
  • enum PrinterMode { ScreenResolution, PrinterResolution, HighResolution }
  • enum PrinterState { Idle, Active, Aborted, Error }
  • enum PrintRange { AllPages, Selection, PageRange, CurrentPage }
  • enum Unit { Millimeter, Point, Inch, Pica, ..., DevicePixel }

Methods


Detailed Description

The QPrinter class is a paint device that paints on a printer.

This device represents a series of pages of printed output, and is used in almost exactly the same way as other paint devices such as QWidget and QPixmap. A set of additional functions are provided to manage device-specific features, such as orientation and resolution, and to step through the pages in a document as it is generated.

When printing directly to a printer on Windows or Mac OS X, QPrinter uses the built-in printer drivers. On X11, QPrinter uses the Common Unix Printing System (CUPS) or the standard Unix lpr utility to send PostScript or PDF output to the printer. As an alternative, the printProgram() function can be used to specify the command or utility to use instead of the system default.

Note that setting parameters like paper size and resolution on an invalid printer is undefined. You can use QPrinter.isValid() to verify this before changing any parameters.

QPrinter supports a number of parameters, most of which can be changed by the end user through a print dialog. In general, QPrinter passes these functions onto the underlying QPrintEngine.

The most important parameters are:

  • setOrientation() tells QPrinter which page orientation to use.
  • setPaperSize() tells QPrinter what paper size to expect from the printer.
  • setResolution() tells QPrinter what resolution you wish the printer to provide, in dots per inch (DPI).
  • setFullPage() tells QPrinter whether you want to deal with the full page or just with the part the printer can draw on.
  • setCopyCount() tells QPrinter how many copies of the document it should print.

Many of these functions can only be called before the actual printing begins (i.e., before QPainter.begin() is called). This usually makes sense because, for example, it's not possible to change the number of copies when you are halfway through printing. There are also some settings that the user sets (through the printer dialog) and that applications are expected to obey. See QAbstractPrintDialog's documentation for more details.

When QPainter.begin() is called, the QPrinter it operates on is prepared for a new page, enabling the QPainter to be used immediately to paint the first page in a document. Once the first page has been painted, newPage() can be called to request a new blank page to paint on, or QPainter.end() can be called to finish printing. The second page and all following pages are prepared using a call to newPage() before they are painted.

The first page in a document does not need to be preceded by a call to newPage(). You only need to calling newPage() after QPainter.begin() if you need to insert a blank page at the beginning of a printed document. Similarly, calling newPage() after the last page in a document is painted will result in a trailing blank page appended to the end of the printed document.

If you want to abort the print job, abort() will try its best to stop printing. It may cancel the entire job or just part of it.

Since QPrinter can print to any QPrintEngine subclass, it is possible to extend printing support to cover new types of printing subsystem by subclassing QPrintEngine and reimplementing its interface.


Type Documentation

QPrinter.ColorMode

This enum type is used to indicate whether QPrinter should print in color or not.

Constant Value Description
QPrinter.Color 1 print in color if available, otherwise in grayscale.
QPrinter.GrayScale 0 print in grayscale, even on color printers.

QPrinter.DuplexMode

This enum is used to indicate whether printing will occur on one or both sides of each sheet of paper (simplex or duplex printing).

Constant Value Description
QPrinter.DuplexNone 0 Single sided (simplex) printing only.
QPrinter.DuplexAuto 1 The printer's default setting is used to determine whether duplex printing is used.
QPrinter.DuplexLongSide 2 Both sides of each sheet of paper are used for printing. The paper is turned over its longest edge before the second side is printed
QPrinter.DuplexShortSide 3 Both sides of each sheet of paper are used for printing. The paper is turned over its shortest edge before the second side is printed

This enum was introduced or modified in Qt 4.4.

QPrinter.Orientation

This enum type (not to be confused with Orientation) is used to specify each page's orientation.

Constant Value Description
QPrinter.Portrait 0 the page's height is greater than its width.
QPrinter.Landscape 1 the page's width is greater than its height.

This type interacts with QPrinter.PaperSize and QPrinter.setFullPage() to determine the final size of the page available to the application.

QPrinter.OutputFormat

The OutputFormat enum is used to describe the format QPrinter should use for printing.

Constant Value Description
QPrinter.NativeFormat 0 QPrinter will print output using a method defined by the platform it is running on. This mode is the default when printing directly to a printer.
QPrinter.PdfFormat 1 QPrinter will generate its output as a searchable PDF file. This mode is the default when printing to a file.
QPrinter.PostScriptFormat 2 QPrinter will generate its output as in the PostScript format. (This feature was introduced in Qt 4.2.)

See also outputFormat(), setOutputFormat(), and setOutputFileName().

QPrinter.PageOrder

This enum type is used by QPrinter to tell the application program how to print.

Constant Value Description
QPrinter.FirstPageFirst 0 the lowest-numbered page should be printed first.
QPrinter.LastPageFirst 1 the highest-numbered page should be printed first.

QPrinter.PageSize

QPrinter.PaperSource

This enum type specifies what paper source QPrinter is to use. QPrinter does not check that the paper source is available; it just uses this information to try and set the paper source. Whether it will set the paper source depends on whether the printer has that particular source.

Warning: This is currently only implemented for Windows.

Constant Value
QPrinter.Auto 6
QPrinter.Cassette 11
QPrinter.Envelope 4
QPrinter.EnvelopeManual 5
QPrinter.FormSource 12
QPrinter.LargeCapacity 10
QPrinter.LargeFormat 9
QPrinter.Lower 1
QPrinter.MaxPageSource 13
QPrinter.Middle 2
QPrinter.Manual 3
QPrinter.OnlyOne 0
QPrinter.Tractor 7
QPrinter.SmallFormat 8

QPrinter.PrinterMode

This enum describes the mode the printer should work in. It basically presets a certain resolution and working mode.

Constant Value Description
QPrinter.ScreenResolution 0 Sets the resolution of the print device to the screen resolution. This has the big advantage that the results obtained when painting on the printer will match more or less exactly the visible output on the screen. It is the easiest to use, as font metrics on the screen and on the printer are the same. This is the default value. ScreenResolution will produce a lower quality output than HighResolution and should only be used for drafts.
QPrinter.PrinterResolution 1 This value is deprecated. Is is equivalent to ScreenResolution on Unix and HighResolution on Windows and Mac. Due do the difference between ScreenResolution and HighResolution, use of this value may lead to non-portable printer code.
QPrinter.HighResolution 2 On Windows, sets the printer resolution to that defined for the printer in use. For PostScript printing, sets the resolution of the PostScript driver to 1200 dpi.

Note: When rendering text on a QPrinter device, it is important to realize that the size of text, when specified in points, is independent of the resolution specified for the device itself. Therefore, it may be useful to specify the font size in pixels when combining text with graphics to ensure that their relative sizes are what you expect.

QPrinter.PrinterState

Constant Value
QPrinter.Idle 0
QPrinter.Active 1
QPrinter.Aborted 2
QPrinter.Error 3

QPrinter.PrintRange

Used to specify the print range selection option.

Constant Value Description
QPrinter.AllPages 0 All pages should be printed.
QPrinter.Selection 1 Only the selection should be printed.
QPrinter.PageRange 2 The specified page range should be printed.
QPrinter.CurrentPage 3 Only the current page should be printed.

See also QAbstractPrintDialog.PrintRange.

QPrinter.Unit

This enum type is used to specify the measurement unit for page and paper sizes.

Constant Value
QPrinter.Millimeter 0
QPrinter.Point 1
QPrinter.Inch 2
QPrinter.Pica 3
QPrinter.Didot 4
QPrinter.Cicero 5
QPrinter.DevicePixel 6

Note the difference between Point and DevicePixel. The Point unit is defined to be 1/72th of an inch, while the DevicePixel unit is resolution dependant and is based on the actual pixels, or dots, on the printer.

This enum was introduced or modified in Qt 4.4.


Method Documentation

QPrinter.__init__ (self, PrinterMode mode = QPrinter.ScreenResolution)

Creates a new printer object with the given mode.

QPrinter.__init__ (self, QPrinterInfo printer, PrinterMode mode = QPrinter.ScreenResolution)

Creates a new printer object with the given printer and mode.

This function was introduced in Qt 4.4.

bool QPrinter.abort (self)

Aborts the current print run. Returns true if the print run was successfully aborted and printerState() will return QPrinter.Aborted; otherwise returns false.

It is not always possible to abort a print job. For example, all the data has gone to the printer but the printer cannot or will not cancel the job when asked to.

int QPrinter.actualNumCopies (self)

bool QPrinter.collateCopies (self)

Returns true if collation is turned on when multiple copies is selected. Returns false if it is turned off when multiple copies is selected. When collating is turned off the printing of each individual page will be repeated the numCopies() amount before the next page is started. With collating turned on all pages are printed before the next copy of those pages is started.

This function was introduced in Qt 4.1.

See also setCollateCopies().

ColorMode QPrinter.colorMode (self)

Returns the current color mode.

See also setColorMode().

int QPrinter.copyCount (self)

Returns the number of copies that will be printed. The default value is 1.

This function was introduced in Qt 4.7.

See also setCopyCount() and supportsMultipleCopies().

QString QPrinter.creator (self)

Returns the name of the application that created the document.

See also setCreator().

QString QPrinter.docName (self)

Returns the document name.

See also setDocName() and QPrintEngine.PrintEnginePropertyKey.

bool QPrinter.doubleSidedPrinting (self)

Returns true if double side printing is enabled.

Currently this option is only supported on X11.

This function was introduced in Qt 4.2.

See also setDoubleSidedPrinting().

DuplexMode QPrinter.duplex (self)

Returns the current duplex mode.

Currently this option is only supported on X11.

This function was introduced in Qt 4.4.

See also setDuplex().

bool QPrinter.fontEmbeddingEnabled (self)

Returns true if font embedding is enabled.

Currently this option is only supported on X11.

This function was introduced in Qt 4.1.

See also setFontEmbeddingEnabled().

int QPrinter.fromPage (self)

Returns the number of the first page in a range of pages to be printed (the "from page" setting). Pages in a document are numbered according to the convention that the first page is page 1.

By default, this function returns a special value of 0, meaning that the "from page" setting is unset.

Note: If fromPage() and toPage() both return 0, this indicates that the whole document will be printed.

This function was introduced in Qt 4.1.

See also setFromTo() and toPage().

bool QPrinter.fullPage (self)

Returns true if the origin of the printer's coordinate system is at the corner of the page and false if it is at the edge of the printable area.

See setFullPage() for details and caveats.

See also setFullPage() and PaperSize.

(float left, float top, float right, float bottom) QPrinter.getPageMargins (self, Unit unit)

Returns the page margins for this printer in left, top, right, bottom. The unit of the returned margins are specified with the unit parameter.

This function was introduced in Qt 4.4.

bool QPrinter.isValid (self)

Returns true if the printer currently selected is a valid printer in the system, or a pure PDF/PostScript printer; otherwise returns false.

To detect other failures check the output of QPainter.begin() or QPrinter.newPage().

     QPrinter printer;
     printer.setOutputFormat(QPrinter.PdfFormat);
     printer.setOutputFileName("/foobar/nonwritable.pdf");
     QPainter painter;
     if (! painter.begin(&printer)) { // failed to open file
         qWarning("failed to open file, is it writable?");
         return 1;
     }
     painter.drawText(10, 10, "Test");
     if (! printer.newPage()) {
         qWarning("failed in flushing page to disk, disk full?");
         return 1;
     }
     painter.drawText(10, 10, "Test 2");
     painter.end();

This function was introduced in Qt 4.4.

See also setPrinterName().

int QPrinter.metric (self, QPaintDevice.PaintDeviceMetric)

bool QPrinter.newPage (self)

Tells the printer to eject the current page and to continue printing on a new page. Returns true if this was successful; otherwise returns false.

Calling newPage() on an inactive QPrinter object will always fail.

int QPrinter.numCopies (self)

Orientation QPrinter.orientation (self)

Returns the orientation setting. This is driver-dependent, but is usually QPrinter.Portrait.

See also setOrientation().

QString QPrinter.outputFileName (self)

Returns the name of the output file. By default, this is an empty string (indicating that the printer shouldn't print to file).

See also setOutputFileName() and QPrintEngine.PrintEnginePropertyKey.

OutputFormat QPrinter.outputFormat (self)

Returns the output format for this printer.

This function was introduced in Qt 4.1.

See also setOutputFormat().

PageOrder QPrinter.pageOrder (self)

Returns the current page order.

The default page order is FirstPageFirst.

See also setPageOrder().

QRect QPrinter.pageRect (self)

Returns the page's rectangle; this is usually smaller than the paperRect() since the page normally has margins between its borders and the paper.

The unit of the returned rectangle is DevicePixel.

See also paperSize().

QRectF QPrinter.pageRect (self, Unit)

Returns the page's rectangle in unit; this is usually smaller than the paperRect() since the page normally has margins between its borders and the paper.

This function was introduced in Qt 4.4.

See also paperSize().

PageSize QPrinter.pageSize (self)

QPaintEngine QPrinter.paintEngine (self)

Reimplemented from QPaintDevice.paintEngine().

Returns the paint engine used by the printer.

QRect QPrinter.paperRect (self)

Returns the paper's rectangle; this is usually larger than the pageRect().

The unit of the returned rectangle is DevicePixel.

See also pageRect().

QRectF QPrinter.paperRect (self, Unit)

Returns the paper's rectangle in unit; this is usually larger than the pageRect().

This function was introduced in Qt 4.4.

See also pageRect().

PageSize QPrinter.paperSize (self)

Returns the printer paper size. The default value is driver-dependent.

This function was introduced in Qt 4.4.

See also setPaperSize(), pageRect(), and paperRect().

QSizeF QPrinter.paperSize (self, Unit unit)

Returns the paper size in unit.

This function was introduced in Qt 4.4.

See also setPaperSize().

PaperSource QPrinter.paperSource (self)

Returns the printer's paper source. This is Manual or a printer tray or paper cassette.

See also setPaperSource().

QPrintEngine QPrinter.printEngine (self)

Returns the print engine used by the printer.

This function was introduced in Qt 4.1.

QString QPrinter.printerName (self)

Returns the printer name. This value is initially set to the name of the default printer.

See also setPrinterName().

QString QPrinter.printerSelectionOption (self)

Returns the printer options selection string. This is useful only if the print command has been explicitly set.

The default value (an empty string) implies that the printer should be selected in a system-dependent manner.

Any other value implies that the given value should be used.

Warning: This function is not available on Windows.

See also setPrinterSelectionOption().

PrinterState QPrinter.printerState (self)

Returns the current state of the printer. This may not always be accurate (for example if the printer doesn't have the capability of reporting its state to the operating system).

QString QPrinter.printProgram (self)

Returns the name of the program that sends the print output to the printer.

The default is to return an empty string; meaning that QPrinter will try to be smart in a system-dependent way. On X11 only, you can set it to something different to use a specific print program. On the other platforms, this returns an empty string.

See also setPrintProgram() and setPrinterSelectionOption().

PrintRange QPrinter.printRange (self)

Returns the page range of the QPrinter. After the print setup dialog has been opened, this function returns the value selected by the user.

This function was introduced in Qt 4.1.

See also setPrintRange().

int QPrinter.resolution (self)

Returns the current assumed resolution of the printer, as set by setResolution() or by the printer driver.

See also setResolution().

QPrinter.setCollateCopies (self, bool collate)

Sets the default value for collation checkbox when the print dialog appears. If collate is true, it will enable setCollateCopiesEnabled(). The default value is false. This value will be changed by what the user presses in the print dialog.

This function was introduced in Qt 4.1.

See also collateCopies().

QPrinter.setColorMode (self, ColorMode)

Sets the printer's color mode to newColorMode, which can be either Color or GrayScale.

See also colorMode().

QPrinter.setCopyCount (self, int)

Sets the number of copies to be printed to count.

The printer driver reads this setting and prints the specified number of copies.

This function was introduced in Qt 4.7.

See also copyCount() and supportsMultipleCopies().

QPrinter.setCreator (self, QString)

Sets the name of the application that created the document to creator.

This function is only applicable to the X11 version of Qt. If no creator name is specified, the creator will be set to "Qt" followed by some version number.

See also creator().

QPrinter.setDocName (self, QString)

Sets the document name to name.

On X11, the document name is for example used as the default output filename in QPrintDialog. Note that the document name does not affect the file name if the printer is printing to a file. Use the setOutputFile() function for this.

See also docName() and QPrintEngine.PrintEnginePropertyKey.

QPrinter.setDoubleSidedPrinting (self, bool enable)

Enables double sided printing if doubleSided is true; otherwise disables it.

Currently this option is only supported on X11.

This function was introduced in Qt 4.2.

See also doubleSidedPrinting().

QPrinter.setDuplex (self, DuplexMode duplex)

Enables double sided printing based on the duplex mode.

Currently this option is only supported on X11.

This function was introduced in Qt 4.4.

See also duplex().

QPrinter.setEngines (self, QPrintEngine printEngine, QPaintEngine paintEngine)

This function is used by subclasses of QPrinter to specify custom print and paint engines (printEngine and paintEngine, respectively).

QPrinter does not take ownership of the engines, so you need to manage these engine instances yourself.

Note that changing the engines will reset the printer state and all its properties.

This function was introduced in Qt 4.1.

See also printEngine(), paintEngine(), and setOutputFormat().

QPrinter.setFontEmbeddingEnabled (self, bool enable)

Enabled or disables font embedding depending on enable.

Currently this option is only supported on X11.

This function was introduced in Qt 4.1.

See also fontEmbeddingEnabled().

QPrinter.setFromTo (self, int fromPage, int toPage)

Sets the range of pages to be printed to cover the pages with numbers specified by from and to, where from corresponds to the first page in the range and to corresponds to the last.

Note: Pages in a document are numbered according to the convention that the first page is page 1. However, if from and to are both set to 0, the whole document will be printed.

This function is mostly used to set a default value that the user can override in the print dialog when you call setup().

This function was introduced in Qt 4.1.

See also fromPage() and toPage().

QPrinter.setFullPage (self, bool)

If fp is true, enables support for painting over the entire page; otherwise restricts painting to the printable area reported by the device.

By default, full page printing is disabled. In this case, the origin of the QPrinter's coordinate system coincides with the top-left corner of the printable area.

If full page printing is enabled, the origin of the QPrinter's coordinate system coincides with the top-left corner of the paper itself. In this case, the device metrics will report the exact same dimensions as indicated by PaperSize. It may not be possible to print on the entire physical page because of the printer's margins, so the application must account for the margins itself.

See also fullPage(), setPaperSize(), width(), height(), and Printing with Qt.

QPrinter.setNumCopies (self, int)

QPrinter.setOrientation (self, Orientation)

Sets the print orientation to orientation.

The orientation can be either QPrinter.Portrait or QPrinter.Landscape.

The printer driver reads this setting and prints using the specified orientation.

On Windows, this option can be changed while printing and will take effect from the next call to newPage().

On Mac OS X, changing the orientation during a print job has no effect.

See also orientation().

QPrinter.setOutputFileName (self, QString)

Sets the name of the output file to fileName.

Setting a null or empty name (0 or "") disables printing to a file. Setting a non-empty name enables printing to a file.

This can change the value of outputFormat(). If the file name has the suffix ".ps" then PostScript is automatically selected as output format. If the file name has the ".pdf" suffix PDF is generated. If the file name has a suffix other than ".ps" and ".pdf", the output format used is the one set with setOutputFormat().

QPrinter uses Qt's cross-platform PostScript or PDF print engines respectively. If you can produce this format natively, for example Mac OS X can generate PDF's from its print engine, set the output format back to NativeFormat.

See also outputFileName(), setOutputToFile(), and setOutputFormat().

QPrinter.setOutputFormat (self, OutputFormat format)

Sets the output format for this printer to format.

This function was introduced in Qt 4.1.

See also outputFormat().

QPrinter.setPageMargins (self, float left, float top, float right, float bottom, Unit unit)

This function sets the left, top, right and bottom page margins for this printer. The unit of the margins are specified with the unit parameter.

This function was introduced in Qt 4.4.

QPrinter.setPageOrder (self, PageOrder)

Sets the page order to pageOrder.

The page order can be QPrinter.FirstPageFirst or QPrinter.LastPageFirst. The application is responsible for reading the page order and printing accordingly.

This function is mostly useful for setting a default value that the user can override in the print dialog.

This function is only supported under X11.

See also pageOrder().

QPrinter.setPageSize (self, PageSize)

QPrinter.setPaperSize (self, PageSize)

Sets the printer paper size to newPaperSize if that size is supported. The result is undefined if newPaperSize is not supported.

The default paper size is driver-dependent.

This function is useful mostly for setting a default value that the user can override in the print dialog.

This function was introduced in Qt 4.4.

See also paperSize(), PaperSize, setFullPage(), setResolution(), pageRect(), and paperRect().

QPrinter.setPaperSize (self, QSizeF paperSize, Unit unit)

Sets the paper size based on paperSize in unit.

This function was introduced in Qt 4.4.

See also paperSize().

QPrinter.setPaperSource (self, PaperSource)

Sets the paper source setting to source.

Windows only: This option can be changed while printing and will take effect from the next call to newPage()

See also paperSource().

QPrinter.setPrinterName (self, QString)

Sets the printer name to name.

See also printerName() and isValid().

QPrinter.setPrinterSelectionOption (self, QString)

Sets the printer to use option to select the printer. option is null by default (which implies that Qt should be smart enough to guess correctly), but it can be set to other values to use a specific printer selection option.

If the printer selection option is changed while the printer is active, the current print job may or may not be affected.

Warning: This function is not available on Windows.

See also printerSelectionOption().

QPrinter.setPrintProgram (self, QString)

Sets the name of the program that should do the print job to printProg.

On X11, this function sets the program to call with the PostScript output. On other platforms, it has no effect.

See also printProgram().

QPrinter.setPrintRange (self, PrintRange range)

Sets the print range option in to be range.

This function was introduced in Qt 4.1.

See also printRange().

QPrinter.setResolution (self, int)

Requests that the printer prints at dpi or as near to dpi as possible.

This setting affects the coordinate system as returned by, for example QPainter.viewport().

This function must be called before QPainter.begin() to have an effect on all platforms.

See also resolution() and setPaperSize().

list-of-int QPrinter.supportedResolutions (self)

Returns a list of the resolutions (a list of dots-per-inch integers) that the printer says it supports.

For X11 where all printing is directly to postscript, this function will always return a one item list containing only the postscript resolution, i.e., 72 (72 dpi -- but see PrinterMode).

bool QPrinter.supportsMultipleCopies (self)

Returns true if the printer supports printing multiple copies of the same document in one job; otherwise false is returned.

On most systems this function will return true. However, on X11 systems that do not support CUPS, this function will return false. That means the application has to handle the number of copies by printing the same document the required number of times.

This function was introduced in Qt 4.7.

See also setCopyCount() and copyCount().

int QPrinter.toPage (self)

Returns the number of the last page in a range of pages to be printed (the "to page" setting). Pages in a document are numbered according to the convention that the first page is page 1.

By default, this function returns a special value of 0, meaning that the "to page" setting is unset.

Note: If fromPage() and toPage() both return 0, this indicates that the whole document will be printed.

The programmer is responsible for reading this setting and printing accordingly.

This function was introduced in Qt 4.1.

See also setFromTo() and fromPage().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprinterinfo.html0000644000076500000240000001273312536324512021074 0ustar philstaff00000000000000 QPrinterInfo Class Reference
  Home · All Classes · Modules

QPrinterInfo Class Reference
[QtGui module]

The QPrinterInfo class gives access to information about existing printers. More...

Methods

Static Methods


Detailed Description

The QPrinterInfo class gives access to information about existing printers.

Use the static functions to generate a list of QPrinterInfo objects. Each QPrinterInfo object in the list represents a single printer and can be queried for name, supported paper sizes, and whether or not it is the default printer.


Method Documentation

QPrinterInfo.__init__ (self)

Constructs an empty QPrinterInfo object.

See also isNull().

QPrinterInfo.__init__ (self, QPrinterInfo src)

Constructs a copy of other.

This function was introduced in Qt 4.8.

QPrinterInfo.__init__ (self, QPrinter printer)

Constructs a QPrinterInfo object from printer.

list-of-QPrinterInfo QPrinterInfo.availablePrinters ()

Returns a list of available printers on the system.

QPrinterInfo QPrinterInfo.defaultPrinter ()

Returns the default printer on the system.

The return value should be checked using isNull() before being used, in case there is no default printer.

See also isNull().

bool QPrinterInfo.isDefault (self)

Returns whether this printer is the default printer.

bool QPrinterInfo.isNull (self)

Returns whether this QPrinterInfo object holds a printer definition.

An empty QPrinterInfo object could result for example from calling defaultPrinter() when there are no printers on the system.

QString QPrinterInfo.printerName (self)

Returns the name of the printer.

See also QPrinter.setPrinterName().

list-of-QPrinter.PageSize QPrinterInfo.supportedPaperSizes (self)

Returns a list of supported paper sizes by the printer.

Not all printer drivers support this query, so the list may be empty. On Mac OS X 10.3, this function always returns an empty list.

This function was introduced in Qt 4.4.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprintpreviewdialog.html0000644000076500000240000001677212536324512022462 0ustar philstaff00000000000000 QPrintPreviewDialog Class Reference
  Home · All Classes · Modules

QPrintPreviewDialog Class Reference
[
QtGui module]

The QPrintPreviewDialog class provides a dialog for previewing and configuring page layouts for printer output. More...

Inherits QDialog.

Methods

  • __init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)
  • __init__ (self, QPrinter printer, QWidget parent = None, Qt.WindowFlags flags = 0)
  • done (self, int result)
  • open (self)
  • open (self, QObject receiver, SLOT()SLOT() member)
  • open (self, callable receiver)
  • QPrinter printer (self)
  • setVisible (self, bool visible)

Qt Signals


Detailed Description

The QPrintPreviewDialog class provides a dialog for previewing and configuring page layouts for printer output.

Using QPrintPreviewDialog in your existing application is straightforward:

  1. Create the QPrintPreviewDialog.

    You can construct a QPrintPreviewDialog with an existing QPrinter object, or you can have QPrintPreviewDialog create one for you, which will be the system default printer.

  2. Connect the paintRequested() signal to a slot.

    When the dialog needs to generate a set of preview pages, the paintRequested() signal will be emitted. You can use the exact same code for the actual printing as for having the preview generated, including calling QPrinter.newPage() to start a new page in the preview. Connect a slot to the paintRequested() signal, where you draw onto the QPrinter object that is passed into the slot.

  3. Call exec_().

    Call QPrintPreviewDialog.exec() to show the preview dialog.

In Symbian, there is no support for printing. Hence, this dialog should not be used in Symbian.


Method Documentation

QPrintPreviewDialog.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QPrintPreviewDialog based on printer and with parent as the parent widget. The widget flags flags are passed on to the QWidget constructor.

See also QWidget.setWindowFlags().

QPrintPreviewDialog.__init__ (self, QPrinter printer, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

This is an overloaded function.

This will create an internal QPrinter object, which will use the system default printer.

QPrintPreviewDialog.done (self, int result)

Reimplemented from QDialog.done().

QPrintPreviewDialog.open (self)

This is an overloaded function.

Opens the dialog and connects its finished(int) signal to the slot specified by receiver and member.

The signal will be disconnected from the slot when the dialog is closed.

This function was introduced in Qt 4.5.

QPrintPreviewDialog.open (self, QObject receiver, SLOT()SLOT() member)

QPrintPreviewDialog.open (self, callable receiver)

QPrinter QPrintPreviewDialog.printer (self)

Returns a pointer to the QPrinter object this dialog is currently operating on.

QPrintPreviewDialog.setVisible (self, bool visible)

Reimplemented from QWidget.setVisible().


Qt Signal Documentation

void paintRequested (QPrinter*)

This is the default overload of this signal.

This signal is emitted when the QPrintPreviewDialog needs to generate a set of preview pages.

The printer instance supplied is the paint device onto which you should paint the contents of each page, using the QPrinter instance in the same way as you would when printing directly.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprintpreviewwidget.html0000644000076500000240000004577312536324512022511 0ustar philstaff00000000000000 QPrintPreviewWidget Class Reference
  Home · All Classes · Modules

QPrintPreviewWidget Class Reference
[QtGui module]

The QPrintPreviewWidget class provides a widget for previewing page layouts for printer output. More...

Inherits QWidget.

Types

  • enum ViewMode { SinglePageView, FacingPagesView, AllPagesView }
  • enum ZoomMode { CustomZoom, FitToWidth, FitInView }

Methods

Qt Signals


Detailed Description

The QPrintPreviewWidget class provides a widget for previewing page layouts for printer output.

QPrintPreviewDialog uses a QPrintPreviewWidget internally, and the purpose of QPrintPreviewWidget is to make it possible to embed the preview into other widgets. It also makes it possible to build a different user interface around it than the default one provided with QPrintPreviewDialog.

Using QPrintPreviewWidget is straightforward:

  1. Create the QPrintPreviewWidget

    Construct the QPrintPreviewWidget either by passing in an existing QPrinter object, or have QPrintPreviewWidget create a default constructed QPrinter object for you.

  2. Connect the paintRequested() signal to a slot.

    When the widget needs to generate a set of preview pages, a paintRequested() signal will be emitted from the widget. Connect a slot to this signal, and draw onto the QPrinter passed in as a signal parameter. Call QPrinter.newPage(), to start a new page in the preview.


Type Documentation

QPrintPreviewWidget.ViewMode

This enum is used to describe the view mode of the preview widget.

Constant Value Description
QPrintPreviewWidget.SinglePageView 0 A mode where single pages in the preview is viewed.
QPrintPreviewWidget.FacingPagesView 1 A mode where the facing pages in the preview is viewed.
QPrintPreviewWidget.AllPagesView 2 A view mode where all the pages in the preview is viewed.

QPrintPreviewWidget.ZoomMode

This enum is used to describe zoom mode of the preview widget.

Constant Value Description
QPrintPreviewWidget.CustomZoom 0 The zoom is set to a custom zoom value.
QPrintPreviewWidget.FitToWidth 1 This mode fits the current page to the width of the view.
QPrintPreviewWidget.FitInView 2 This mode fits the current page inside the view.

Method Documentation

QPrintPreviewWidget.__init__ (self, QPrinter printer, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QPrintPreviewWidget based on printer and with parent as the parent widget. The widget flags flags are passed on to the QWidget constructor.

See also QWidget.setWindowFlags().

QPrintPreviewWidget.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

This is an overloaded function.

This will cause QPrintPreviewWidget to create an internal, default constructed QPrinter object, which will be used to generate the preview.

int QPrintPreviewWidget.currentPage (self)

Returns the currently viewed page in the preview.

See also setCurrentPage().

QPrintPreviewWidget.fitInView (self)

This method is also a Qt slot with the C++ signature void fitInView().

This is a convenience function and is the same as calling setZoomMode(QPrintPreviewWidget.FitInView).

QPrintPreviewWidget.fitToWidth (self)

This method is also a Qt slot with the C++ signature void fitToWidth().

This is a convenience function and is the same as calling setZoomMode(QPrintPreviewWidget.FitToWidth).

int QPrintPreviewWidget.numPages (self)

QPrinter.Orientation QPrintPreviewWidget.orientation (self)

Returns the current orientation of the preview. This value is obtained from the QPrinter object associated with the preview.

See also setOrientation().

int QPrintPreviewWidget.pageCount (self)

Returns the number of pages in the preview.

This function was introduced in Qt 4.6.

QPrintPreviewWidget.print_ (self)

This method is also a Qt slot with the C++ signature void print().

Prints the preview to the printer associated with the preview.

QPrintPreviewWidget.setAllPagesViewMode (self)

This method is also a Qt slot with the C++ signature void setAllPagesViewMode().

This is a convenience function and is the same as calling setViewMode(QPrintPreviewWidget.AllPagesView).

QPrintPreviewWidget.setCurrentPage (self, int pageNumber)

This method is also a Qt slot with the C++ signature void setCurrentPage(int).

Sets the current page in the preview. This will cause the view to skip to the beginning of page.

See also currentPage().

QPrintPreviewWidget.setFacingPagesViewMode (self)

This method is also a Qt slot with the C++ signature void setFacingPagesViewMode().

This is a convenience function and is the same as calling setViewMode(QPrintPreviewWidget.FacingPagesView).

QPrintPreviewWidget.setLandscapeOrientation (self)

This method is also a Qt slot with the C++ signature void setLandscapeOrientation().

This is a convenience function and is the same as calling setOrientation(QPrinter.Landscape).

QPrintPreviewWidget.setOrientation (self, QPrinter.Orientation orientation)

This method is also a Qt slot with the C++ signature void setOrientation(QPrinter::Orientation).

Sets the current orientation to orientation. This value will be set on the QPrinter object associated with the preview.

See also orientation().

QPrintPreviewWidget.setPortraitOrientation (self)

This method is also a Qt slot with the C++ signature void setPortraitOrientation().

This is a convenience function and is the same as calling setOrientation(QPrinter.Portrait).

QPrintPreviewWidget.setSinglePageViewMode (self)

This method is also a Qt slot with the C++ signature void setSinglePageViewMode().

This is a convenience function and is the same as calling setViewMode(QPrintPreviewWidget.SinglePageView).

QPrintPreviewWidget.setViewMode (self, ViewMode viewMode)

This method is also a Qt slot with the C++ signature void setViewMode(QPrintPreviewWidget::ViewMode).

Sets the view mode to mode. The default view mode is SinglePageView.

See also viewMode().

QPrintPreviewWidget.setVisible (self, bool visible)

This method is also a Qt slot with the C++ signature void setVisible(bool).

Reimplemented from QWidget.setVisible().

QPrintPreviewWidget.setZoomFactor (self, float zoomFactor)

This method is also a Qt slot with the C++ signature void setZoomFactor(qreal).

Sets the zoom factor of the view to factor. For example, a value of 1.0 indicates an unscaled view, which is approximately the size the view will have on paper. A value of 0.5 will halve the size of the view, while a value of 2.0 will double the size of the view.

See also zoomFactor().

QPrintPreviewWidget.setZoomMode (self, ZoomMode zoomMode)

This method is also a Qt slot with the C++ signature void setZoomMode(QPrintPreviewWidget::ZoomMode).

Sets the zoom mode to zoomMode. The default zoom mode is FitInView.

See also zoomMode(), viewMode(), and setViewMode().

QPrintPreviewWidget.updatePreview (self)

This method is also a Qt slot with the C++ signature void updatePreview().

This function updates the preview, which causes the paintRequested() signal to be emitted.

ViewMode QPrintPreviewWidget.viewMode (self)

Returns the current view mode. The default view mode is SinglePageView.

See also setViewMode().

float QPrintPreviewWidget.zoomFactor (self)

Returns the zoom factor of the view.

See also setZoomFactor().

QPrintPreviewWidget.zoomIn (self, float factor = 1.1)

This method is also a Qt slot with the C++ signature void zoomIn(qreal = 1.1).

Zooms the current view in by factor. The default value for factor is 1.1, which means the view will be scaled up by 10%.

ZoomMode QPrintPreviewWidget.zoomMode (self)

Returns the current zoom mode.

See also setZoomMode(), viewMode(), and setViewMode().

QPrintPreviewWidget.zoomOut (self, float factor = 1.1)

This method is also a Qt slot with the C++ signature void zoomOut(qreal = 1.1).

Zooms the current view out by factor. The default value for factor is 1.1, which means the view will be scaled down by 10%.


Qt Signal Documentation

void paintRequested (QPrinter*)

This is the default overload of this signal.

This signal is emitted when the preview widget needs to generate a set of preview pages. printer is the printer associated with this preview widget.

void previewChanged ()

This is the default overload of this signal.

This signal is emitted whenever the preview widget has changed some internal state, such as the orientation.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprocess.html0000644000076500000240000020412312536324473020215 0ustar philstaff00000000000000 QProcess Class Reference
  Home · All Classes · Modules

QProcess Class Reference
[
QtCore module]

The QProcess class is used to start external programs and to communicate with them. More...

Inherits QIODevice.

Types

Methods

Static Methods

Qt Signals


Detailed Description

The QProcess class is used to start external programs and to communicate with them.

Running a Process

To start a process, pass the name and command line arguments of the program you want to run as arguments to start(). Arguments are supplied as individual strings in a QStringList.

For example, the following code snippet runs the analog clock example in the Motif style on X11 platforms by passing strings containing "-style" and "motif" as two items in the list of arguments:

     QObject *parent;
     ...
     QString program = "./path/to/Qt/examples/widgets/analogclock";
     QStringList arguments;
     arguments << "-style" << "motif";

     QProcess *myProcess = new QProcess(parent);
     myProcess->start(program, arguments);

QProcess then enters the Starting state, and when the program has started, QProcess enters the Running state and emits started().

QProcess allows you to treat a process as a sequential I/O device. You can write to and read from the process just as you would access a network connection using QTcpSocket. You can then write to the process's standard input by calling write(), and read the standard output by calling read(), readLine(), and getChar(). Because it inherits QIODevice, QProcess can also be used as an input source for QXmlReader, or for generating data to be uploaded using QFtp.

Note: On VxWorks, Windows CE and Symbian, reading and writing to a process is not supported.

When the process exits, QProcess reenters the NotRunning state (the initial state), and emits finished().

The finished() signal provides the exit code and exit status of the process as arguments, and you can also call exitCode() to obtain the exit code of the last process that finished, and exitStatus() to obtain its exit status. If an error occurs at any point in time, QProcess will emit the error() signal. You can also call error() to find the type of error that occurred last, and state() to find the current process state.

Communicating via Channels

Processes have two predefined output channels: The standard output channel (stdout) supplies regular console output, and the standard error channel (stderr) usually supplies the errors that are printed by the process. These channels represent two separate streams of data. You can toggle between them by calling setReadChannel(). QProcess emits readyRead() when data is available on the current read channel. It also emits readyReadStandardOutput() when new standard output data is available, and when new standard error data is available, readyReadStandardError() is emitted. Instead of calling read(), readLine(), or getChar(), you can explicitly read all data from either of the two channels by calling readAllStandardOutput() or readAllStandardError().

The terminology for the channels can be misleading. Be aware that the process's output channels correspond to QProcess's read channels, whereas the process's input channels correspond to QProcess's write channels. This is because what we read using QProcess is the process's output, and what we write becomes the process's input.

QProcess can merge the two output channels, so that standard output and standard error data from the running process both use the standard output channel. Call setProcessChannelMode() with MergedChannels before starting the process to activative this feature. You also have the option of forwarding the output of the running process to the calling, main process, by passing ForwardedChannels as the argument.

Certain processes need special environment settings in order to operate. You can set environment variables for your process by calling setEnvironment(). To set a working directory, call setWorkingDirectory(). By default, processes are run in the current working directory of the calling process.

Note: On VxWorks, communicating via channels with a process is not supported.

Note: On Symbian, setting environment or working directory is not supported. The working directory will always be the private directory of the running process.

Note: On QNX, setting the working directory may cause all application threads, with the exception of the QProcess caller thread, to temporarily freeze, owing to a limitation in the operating system.

Synchronous Process API

QProcess provides a set of functions which allow it to be used without an event loop, by suspending the calling thread until certain signals are emitted:

Calling these functions from the main thread (the thread that calls QApplication.exec()) may cause your user interface to freeze.

The following example runs gzip to compress the string "Qt rocks!", without an event loop:

     QProcess gzip;
     gzip.start("gzip", QStringList() << "-c");
     if (!gzip.waitForStarted())
         return false;

     gzip.write("Qt rocks!");
     gzip.closeWriteChannel();

     if (!gzip.waitForFinished())
         return false;

     QByteArray result = gzip.readAll();

Notes for Windows Users

Some Windows commands (for example, dir) are not provided by separate applications, but by the command interpreter itself. If you attempt to use QProcess to execute these commands directly, it won't work. One possible solution is to execute the command interpreter itself (cmd.exe on some Windows systems), and ask the interpreter to execute the desired command.

Notes for VxWorks Users

QProcess support is only available on RTP mode, and only a limited functionality is provided. When using QProcess to launch Qt applications, the launched application has to have the following code:

 #include <signal.h>

Add following to your class constructor:

 QObject.connect(QApplication.instance(), SIGNAL(unixSignal(int)), qApp, SLOT(quit()));
 QCoreApplication.watchUnixSignal(SIGKILL, true);
 QCoreApplication.watchUnixSignal(SIGTERM, true);

Symbian Platform Security Requirements

On Symbian, processes which use the functions kill() or terminate() must have the PowerMgmt platform security capability. If the client process lacks this capability, these functions will fail.

Platform security capabilities are added via the TARGET.CAPABILITY qmake variable.


Type Documentation

QProcess.ExitStatus

This enum describes the different exit statuses of QProcess.

Constant Value Description
QProcess.NormalExit 0 The process exited normally.
QProcess.CrashExit 1 The process crashed.

See also exitStatus().

QProcess.ProcessChannel

This enum describes the process channels used by the running process. Pass one of these values to setReadChannel() to set the current read channel of QProcess.

Constant Value Description
QProcess.StandardOutput 0 The standard output (stdout) of the running process.
QProcess.StandardError 1 The standard error (stderr) of the running process.

See also setReadChannel().

QProcess.ProcessChannelMode

This enum describes the process channel modes of QProcess. Pass one of these values to setProcessChannelMode() to set the current read channel mode.

Constant Value Description
QProcess.SeparateChannels 0 QProcess manages the output of the running process, keeping standard output and standard error data in separate internal buffers. You can select the QProcess's current read channel by calling setReadChannel(). This is the default channel mode of QProcess.
QProcess.MergedChannels 1 QProcess merges the output of the running process into the standard output channel (stdout). The standard error channel (stderr) will not receive any data. The standard output and standard error data of the running process are interleaved.
QProcess.ForwardedChannels 2 QProcess forwards the output of the running process onto the main process. Anything the child process writes to its standard output and standard error will be written to the standard output and standard error of the main process.

See also setProcessChannelMode().

QProcess.ProcessError

This enum describes the different types of errors that are reported by QProcess.

Constant Value Description
QProcess.FailedToStart 0 The process failed to start. Either the invoked program is missing, or you may have insufficient permissions to invoke the program.
QProcess.Crashed 1 The process crashed some time after starting successfully.
QProcess.Timedout 2 The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.
QProcess.WriteError 4 An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel.
QProcess.ReadError 3 An error occurred when attempting to read from the process. For example, the process may not be running.
QProcess.UnknownError 5 An unknown error occurred. This is the default return value of error().

See also error().

QProcess.ProcessState

This enum describes the different states of QProcess.

Constant Value Description
QProcess.NotRunning 0 The process is not running.
QProcess.Starting 1 The process is starting, but the program has not yet been invoked.
QProcess.Running 2 The process is running and is ready for reading and writing.

See also state().


Method Documentation

QProcess.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QProcess object with the given parent.

bool QProcess.atEnd (self)

Reimplemented from QIODevice.atEnd().

Returns true if the process is not running, and no more data is available for reading; otherwise returns false.

int QProcess.bytesAvailable (self)

Reimplemented from QIODevice.bytesAvailable().

int QProcess.bytesToWrite (self)

Reimplemented from QIODevice.bytesToWrite().

bool QProcess.canReadLine (self)

Reimplemented from QIODevice.canReadLine().

This function operates on the current read channel.

See also readChannel() and setReadChannel().

QProcess.close (self)

Reimplemented from QIODevice.close().

Closes all communication with the process and kills it. After calling this function, QProcess will no longer emit readyRead(), and data can no longer be read or written.

QProcess.closeReadChannel (self, ProcessChannel channel)

Closes the read channel channel. After calling this function, QProcess will no longer receive data on the channel. Any data that has already been received is still available for reading.

Call this function to save memory, if you are not interested in the output of the process.

See also closeWriteChannel() and setReadChannel().

QProcess.closeWriteChannel (self)

Schedules the write channel of QProcess to be closed. The channel will close once all data has been written to the process. After calling this function, any attempts to write to the process will fail.

Closing the write channel is necessary for programs that read input data until the channel has been closed. For example, the program "more" is used to display text data in a console on both Unix and Windows. But it will not display the text data until QProcess's write channel has been closed. Example:

 QProcess more;
 more.start("more");
 more.write("Text to display");
 more.closeWriteChannel();
 // QProcess will emit readyRead() once "more" starts printing

The write channel is implicitly opened when start() is called.

See also closeReadChannel().

QStringList QProcess.environment (self)

This function is deprecated.

Returns the environment that QProcess will use when starting a process, or an empty QStringList if no environment has been set using setEnvironment() or setEnvironmentHash(). If no environment has been set, the environment of the calling process will be used.

Note: The environment settings are ignored on Windows CE and Symbian, as there is no concept of an environment.

See also processEnvironment(), setEnvironment(), and systemEnvironment().

ProcessError QProcess.error (self)

Returns the type of error that occurred last.

See also state().

int QProcess.execute (QString program, QStringList arguments)

Starts the program program with the arguments arguments in a new process, waits for it to finish, and then returns the exit code of the process. Any data the new process writes to the console is forwarded to the calling process.

The environment and working directory are inherited from the calling process.

On Windows, arguments that contain spaces are wrapped in quotes.

If the process cannot be started, -2 is returned. If the process crashes, -1 is returned. Otherwise, the process' exit code is returned.

int QProcess.execute (QString program)

This is an overloaded function.

Starts the program program in a new process. program is a single string of text containing both the program name and its arguments. The arguments are separated by one or more spaces.

int QProcess.exitCode (self)

Returns the exit code of the last process that finished.

ExitStatus QProcess.exitStatus (self)

Returns the exit status of the last process that finished.

On Windows, if the process was terminated with TerminateProcess() from another application this function will still return NormalExit unless the exit code is less than 0.

This function was introduced in Qt 4.1.

bool QProcess.isSequential (self)

Reimplemented from QIODevice.isSequential().

QProcess.kill (self)

This method is also a Qt slot with the C++ signature void kill().

Kills the current process, causing it to exit immediately.

On Windows, kill() uses TerminateProcess, and on Unix and Mac OS X, the SIGKILL signal is sent to the process.

On Symbian, this function requires platform security capability PowerMgmt. If absent, the process will panic with KERN-EXEC 46.

Note: Killing running processes from other processes will typically cause a panic in Symbian due to platform security.

See also Symbian Platform Security Requirements and terminate().

int QProcess.pid (self)

Returns the native process identifier for the running process, if available. If no process is currently running, 0 is returned.

ProcessChannelMode QProcess.processChannelMode (self)

Returns the channel mode of the QProcess standard output and standard error channels.

This function was introduced in Qt 4.2.

See also setProcessChannelMode(), ProcessChannelMode, and setReadChannel().

QProcessEnvironment QProcess.processEnvironment (self)

Returns the environment that QProcess will use when starting a process, or an empty object if no environment has been set using setEnvironment() or setProcessEnvironment(). If no environment has been set, the environment of the calling process will be used.

Note: The environment settings are ignored on Windows CE, as there is no concept of an environment.

This function was introduced in Qt 4.6.

See also setProcessEnvironment(), setEnvironment(), and QProcessEnvironment.isEmpty().

QByteArray QProcess.readAllStandardError (self)

Regardless of the current read channel, this function returns all data available from the standard error of the process as a QByteArray.

See also readyReadStandardError(), readAllStandardOutput(), readChannel(), and setReadChannel().

QByteArray QProcess.readAllStandardOutput (self)

Regardless of the current read channel, this function returns all data available from the standard output of the process as a QByteArray.

See also readyReadStandardOutput(), readAllStandardError(), readChannel(), and setReadChannel().

ProcessChannel QProcess.readChannel (self)

Returns the current read channel of the QProcess.

See also setReadChannel().

ProcessChannelMode QProcess.readChannelMode (self)

str QProcess.readData (self, int maxlen)

Reimplemented from QIODevice.readData().

QProcess.setEnvironment (self, QStringList environment)

This function is deprecated.

Sets the environment that QProcess will use when starting a process to the environment specified which consists of a list of key=value pairs.

For example, the following code adds the C:\\BIN directory to the list of executable paths (PATHS) on Windows:

 QProcess process;
 QStringList env = QProcess.systemEnvironment();
 env << "TMPDIR=C:\\MyApp\\temp"; // Add an environment variable
 env.replaceInStrings(QRegExp("^PATH=(.*)", Qt.CaseInsensitive), "PATH=\\1;C:\\Bin");
 process.setEnvironment(env);
 process.start("myapp");

Note: This function is less efficient than the setProcessEnvironment() function.

See also environment(), setProcessEnvironment(), and systemEnvironment().

QProcess.setProcessChannelMode (self, ProcessChannelMode mode)

Sets the channel mode of the QProcess standard output and standard error channels to the mode specified. This mode will be used the next time start() is called. For example:

 QProcess builder;
 builder.setProcessChannelMode(QProcess.MergedChannels);
 builder.start("make", QStringList() << "-j2");

 if (!builder.waitForFinished())
     qDebug() << "Make failed:" << builder.errorString();
 else
     qDebug() << "Make output:" << builder.readAll();

This function was introduced in Qt 4.2.

See also processChannelMode(), ProcessChannelMode, and setReadChannel().

QProcess.setProcessEnvironment (self, QProcessEnvironment environment)

Sets the environment that QProcess will use when starting a process to the environment object.

For example, the following code adds the C:\\BIN directory to the list of executable paths (PATHS) on Windows and sets TMPDIR:

 QProcess process;
 QProcessEnvironment env = QProcessEnvironment.systemEnvironment();
 env.insert("TMPDIR", "C:\\MyApp\\temp"); // Add an environment variable
 env.insert("PATH", env.value("Path") + ";C:\\Bin");
 process.setProcessEnvironment(env);
 process.start("myapp");

Note how, on Windows, environment variable names are case-insensitive.

This function was introduced in Qt 4.6.

See also processEnvironment(), QProcessEnvironment.systemEnvironment(), and setEnvironment().

QProcess.setProcessState (self, ProcessState state)

Sets the current state of the QProcess to the state specified.

See also state().

QProcess.setReadChannel (self, ProcessChannel channel)

Sets the current read channel of the QProcess to the given channel. The current input channel is used by the functions read(), readAll(), readLine(), and getChar(). It also determines which channel triggers QProcess to emit readyRead().

See also readChannel().

QProcess.setReadChannelMode (self, ProcessChannelMode mode)

QProcess.setStandardErrorFile (self, QString fileName, QIODevice.OpenMode mode = QIODevice.Truncate)

Redirects the process' standard error to the file fileName. When the redirection is in place, the standard error read channel is closed: reading from it using read() will always fail, as will readAllStandardError(). The file will be appended to if mode is Append, otherwise, it will be truncated.

See setStandardOutputFile() for more information on how the file is opened.

Note: if setProcessChannelMode() was called with an argument of QProcess.MergedChannels, this function has no effect.

This function was introduced in Qt 4.2.

See also setStandardInputFile(), setStandardOutputFile(), and setStandardOutputProcess().

QProcess.setStandardInputFile (self, QString fileName)

Redirects the process' standard input to the file indicated by fileName. When an input redirection is in place, the QProcess object will be in read-only mode (calling write() will result in error).

If the file fileName does not exist at the moment start() is called or is not readable, starting the process will fail.

Calling setStandardInputFile() after the process has started has no effect.

This function was introduced in Qt 4.2.

See also setStandardOutputFile(), setStandardErrorFile(), and setStandardOutputProcess().

QProcess.setStandardOutputFile (self, QString fileName, QIODevice.OpenMode mode = QIODevice.Truncate)

Redirects the process' standard output to the file fileName. When the redirection is in place, the standard output read channel is closed: reading from it using read() will always fail, as will readAllStandardOutput().

If the file fileName doesn't exist at the moment start() is called, it will be created. If it cannot be created, the starting will fail.

If the file exists and mode is QIODevice.Truncate, the file will be truncated. Otherwise (if mode is QIODevice.Append), the file will be appended to.

Calling setStandardOutputFile() after the process has started has no effect.

This function was introduced in Qt 4.2.

See also setStandardInputFile(), setStandardErrorFile(), and setStandardOutputProcess().

QProcess.setStandardOutputProcess (self, QProcess destination)

Pipes the standard output stream of this process to the destination process' standard input.

The following shell command:

 command1 | command2

Can be accomplished with QProcesses with the following code:

 QProcess process1;
 QProcess process2;

 process1.setStandardOutputProcess(&process2);

 process1.start("command1");
 process2.start("command2");

This function was introduced in Qt 4.2.

QProcess.setupChildProcess (self)

This function is called in the child process context just before the program is executed on Unix or Mac OS X (i.e., after fork(), but before execve()). Reimplement this function to do last minute initialization of the child process. Example:

 class SandboxProcess : public QProcess
 {
     ...
  protected:
      void setupChildProcess();
     ...
 };

 void SandboxProcess.setupChildProcess()
 {
     // Drop all privileges in the child process, and enter
     // a chroot jail.
 #if defined Q_OS_UNIX
     .setgroups(0, 0);
     .chroot("/etc/safe");
     .chdir("/");
     .setgid(safeGid);
     .setuid(safeUid);
     .umask(0);
 #endif
 }

You cannot exit the process (by calling exit(), for instance) from this function. If you need to stop the program before it starts execution, your workaround is to emit finished() and then call exit().

Warning: This function is called by QProcess on Unix and Mac OS X only. On Windows and QNX, it is not called.

QProcess.setWorkingDirectory (self, QString dir)

Sets the working directory to dir. QProcess will start the process in this directory. The default behavior is to start the process in the working directory of the calling process.

Note: The working directory setting is ignored on Symbian; the private directory of the process is considered its working directory.

Note: On QNX, this may cause all application threads to temporarily freeze.

See also workingDirectory() and start().

QProcess.start (self, QString program, QStringList arguments, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Starts the given program in a new process, if none is already running, passing the command line arguments in arguments. The OpenMode is set to mode.

The QProcess object will immediately enter the Starting state. If the process starts successfully, QProcess will emit started(); otherwise, error() will be emitted. If the QProcess object is already running a process, a warning may be printed at the console, and the existing process will continue running.

Note: Processes are started asynchronously, which means the started() and error() signals may be delayed. Call waitForStarted() to make sure the process has started (or has failed to start) and those signals have been emitted.

Note: No further splitting of the arguments is performed.

Windows: Arguments that contain spaces are wrapped in quotes.

See also pid(), started(), and waitForStarted().

QProcess.start (self, QString program, QIODevice.OpenMode mode = QIODevice.ReadWrite)

This is an overloaded function.

Starts the program program in a new process, if one is not already running. program is a single string of text containing both the program name and its arguments. The arguments are separated by one or more spaces. For example:

 QProcess process;
 process.start("del /s *.txt");
 // same as process.start("del", QStringList() << "/s" << "*.txt");
 ...

The program string can also contain quotes, to ensure that arguments containing spaces are correctly supplied to the new process. For example:

 QProcess process;
 process.start("dir \"My Documents\"");

If the QProcess object is already running a process, a warning may be printed at the console, and the existing process will continue running.

Note that, on Windows, quotes need to be both escaped and quoted. For example, the above code would be specified in the following way to ensure that "My Documents" is used as the argument to the dir executable:

 QProcess process;
 process.start("dir \"\"\"My Documents\"\"\"");

The OpenMode is set to mode.

(bool, int pid) QProcess.startDetached (QString program, QStringList arguments, QString workingDirectory)

Starts the program program with the arguments arguments in a new process, and detaches from it. Returns true on success; otherwise returns false. If the calling process exits, the detached process will continue to live.

Note that arguments that contain spaces are not passed to the process as separate arguments.

Unix: The started process will run in its own session and act like a daemon.

Windows: Arguments that contain spaces are wrapped in quotes. The started process will run as a regular standalone process.

The process will be started in the directory workingDirectory.

Note: On QNX, this may cause all application threads to temporarily freeze.

Note: On VxWorks, this will start RTP process always with priority set to 220.

If the function is successful then *pid is set to the process identifier of the started process.

bool QProcess.startDetached (QString program, QStringList arguments)

Starts the program program with the given arguments in a new process, and detaches from it. Returns true on success; otherwise returns false. If the calling process exits, the detached process will continue to live.

Note: Arguments that contain spaces are not passed to the process as separate arguments.

Unix: The started process will run in its own session and act like a daemon.

Windows: Arguments that contain spaces are wrapped in quotes. The started process will run as a regular standalone process.

bool QProcess.startDetached (QString program)

This is an overloaded function.

Starts the program program in a new process. program is a single string of text containing both the program name and its arguments. The arguments are separated by one or more spaces.

The program string can also contain quotes, to ensure that arguments containing spaces are correctly supplied to the new process.

ProcessState QProcess.state (self)

Returns the current state of the process.

See also stateChanged() and error().

QStringList QProcess.systemEnvironment ()

Returns the environment of the calling process as a list of key=value pairs. Example:

 QStringList environment = QProcess.systemEnvironment();
 // environment = {"PATH=/usr/bin:/usr/local/bin",
 //                "USER=greg", "HOME=/home/greg"}

This function does not cache the system environment. Therefore, it's possible to obtain an updated version of the environment if low-level C library functions like setenv ot putenv have been called.

However, note that repeated calls to this function will recreate the list of environment variables, which is a non-trivial operation.

Note: For new code, it is recommended to use QProcessEnvironment.systemEnvironment()

This function was introduced in Qt 4.1.

See also QProcessEnvironment.systemEnvironment(), environment(), and setEnvironment().

QProcess.terminate (self)

This method is also a Qt slot with the C++ signature void terminate().

Attempts to terminate the process.

The process may not exit as a result of calling this function (it is given the chance to prompt the user for any unsaved files, etc).

On Windows, terminate() posts a WM_CLOSE message to all toplevel windows of the process and then to the main thread of the process itself. On Unix and Mac OS X the SIGTERM signal is sent.

Console applications on Windows that do not run an event loop, or whose event loop does not handle the WM_CLOSE message, can only be terminated by calling kill().

On Symbian, this function requires platform security capability PowerMgmt. If absent, the process will panic with KERN-EXEC 46.

Note: Terminating running processes from other processes will typically cause a panic in Symbian due to platform security.

See also Symbian Platform Security Requirements and kill().

bool QProcess.waitForBytesWritten (self, int msecs = 30000)

Reimplemented from QIODevice.waitForBytesWritten().

bool QProcess.waitForFinished (self, int msecs = 30000)

Blocks until the process has finished and the finished() signal has been emitted, or until msecs milliseconds have passed.

Returns true if the process finished; otherwise returns false (if the operation timed out, if an error occurred, or if this QProcess is already finished).

This function can operate without an event loop. It is useful when writing non-GUI applications and when performing I/O operations in a non-GUI thread.

Warning: Calling this function from the main (GUI) thread might cause your user interface to freeze.

If msecs is -1, this function will not time out.

See also finished(), waitForStarted(), waitForReadyRead(), and waitForBytesWritten().

bool QProcess.waitForReadyRead (self, int msecs = 30000)

Reimplemented from QIODevice.waitForReadyRead().

bool QProcess.waitForStarted (self, int msecs = 30000)

Blocks until the process has started and the started() signal has been emitted, or until msecs milliseconds have passed.

Returns true if the process was started successfully; otherwise returns false (if the operation timed out or if an error occurred).

This function can operate without an event loop. It is useful when writing non-GUI applications and when performing I/O operations in a non-GUI thread.

Warning: Calling this function from the main (GUI) thread might cause your user interface to freeze.

If msecs is -1, this function will not time out.

See also started(), waitForReadyRead(), waitForBytesWritten(), and waitForFinished().

QString QProcess.workingDirectory (self)

If QProcess has been assigned a working directory, this function returns the working directory that the QProcess will enter before the program has started. Otherwise, (i.e., no directory has been assigned,) an empty string is returned, and QProcess will use the application's current working directory instead.

See also setWorkingDirectory().

int QProcess.writeData (self, str data)

Reimplemented from QIODevice.writeData().


Qt Signal Documentation

void error (QProcess::ProcessError)

This is the default overload of this signal.

This signal is emitted when an error occurs with the process. The specified error describes the type of error that occurred.

void finished (int,QProcess::ExitStatus)

This is the default overload of this signal.

This signal is emitted when the process finishes. exitCode is the exit code of the process, and exitStatus is the exit status. After the process has finished, the buffers in QProcess are still intact. You can still read any data that the process may have written before it finished.

See also exitStatus().

void finished (int)

void readyReadStandardError ()

This is the default overload of this signal.

This signal is emitted when the process has made new data available through its standard error channel (stderr). It is emitted regardless of the current read channel.

See also readAllStandardError() and readChannel().

void readyReadStandardOutput ()

This is the default overload of this signal.

This signal is emitted when the process has made new data available through its standard output channel (stdout). It is emitted regardless of the current read channel.

See also readAllStandardOutput() and readChannel().

void started ()

This is the default overload of this signal.

This signal is emitted by QProcess when the process has started, and state() returns Running.

void stateChanged (QProcess::ProcessState)

This is the default overload of this signal.

This signal is emitted whenever the state of QProcess changes. The newState argument is the state QProcess changed to.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprocessenvironment.html0000644000076500000240000003054412536324473022506 0ustar philstaff00000000000000 QProcessEnvironment Class Reference
  Home · All Classes · Modules

QProcessEnvironment Class Reference
[QtCore module]

The QProcessEnvironment class holds the environment variables that can be passed to a program. More...

Methods

Static Methods

Special Methods

  • bool __eq__ (self, QProcessEnvironment other)
  • bool __ne__ (self, QProcessEnvironment other)

Detailed Description

The QProcessEnvironment class holds the environment variables that can be passed to a program.

A process's environment is composed of a set of key=value pairs known as environment variables. The QProcessEnvironment class wraps that concept and allows easy manipulation of those variables. It's meant to be used along with QProcess, to set the environment for child processes. It cannot be used to change the current process's environment.

The environment of the calling process can be obtained using QProcessEnvironment.systemEnvironment().

On Unix systems, the variable names are case-sensitive. For that reason, this class will not touch the names of the variables. Note as well that Unix environment allows both variable names and contents to contain arbitrary binary data (except for the NUL character), but this is not supported by QProcessEnvironment. This class only supports names and values that are encodable by the current locale settings (see QTextCodec.codecForLocale).

On Windows, the variable names are case-insensitive. Therefore, QProcessEnvironment will always uppercase the names and do case-insensitive comparisons.

On Windows CE, the concept of environment does not exist. This class will keep the values set for compatibility with other platforms, but the values set will have no effect on the processes being created.


Method Documentation

QProcessEnvironment.__init__ (self)

Creates a new QProcessEnvironment object. This constructor creates an empty environment. If set on a QProcess, this will cause the current environment variables to be removed.

QProcessEnvironment.__init__ (self, QProcessEnvironment other)

Creates a QProcessEnvironment object that is a copy of other.

QProcessEnvironment.clear (self)

Removes all key=value pairs from this QProcessEnvironment object, making it empty.

See also isEmpty() and systemEnvironment().

bool QProcessEnvironment.contains (self, QString name)

Returns true if the environment variable of name name is found in this QProcessEnvironment object.

On Windows, variable names are case-insensitive, so the key is converted to uppercase before searching. On other systems, names are case-sensitive so no trasformation is applied.

See also insert() and value().

QProcessEnvironment.insert (self, QString name, QString value)

Inserts the environment variable of name name and contents value into this QProcessEnvironment object. If that variable already existed, it is replaced by the new value.

On Windows, variable names are case-insensitive, so this function always uppercases the variable name before inserting. On other systems, names are case-sensitive, so no transformation is applied.

On most systems, inserting a variable with no contents will have the same effect for applications as if the variable had not been set at all. However, to guarantee that there are no incompatibilities, to remove a variable, please use the remove() function.

See also contains(), remove(), and value().

QProcessEnvironment.insert (self, QProcessEnvironment e)

This is an overloaded function.

Inserts the contents of e in this QProcessEnvironment object. Variables in this object that also exist in e will be overwritten.

This function was introduced in Qt 4.8.

bool QProcessEnvironment.isEmpty (self)

Returns true if this QProcessEnvironment object is empty: that is there are no key=value pairs set.

See also clear(), systemEnvironment(), and insert().

QStringList QProcessEnvironment.keys (self)

Returns a list containing all the variable names in this QProcessEnvironment object.

This function was introduced in Qt 4.8.

QProcessEnvironment.remove (self, QString name)

Removes the environment variable identified by name from this QProcessEnvironment object. If that variable did not exist before, nothing happens.

On Windows, variable names are case-insensitive, so the key is converted to uppercase before searching. On other systems, names are case-sensitive so no trasformation is applied.

See also contains(), insert(), and value().

QProcessEnvironment QProcessEnvironment.systemEnvironment ()

The systemEnvironment function returns the environment of the calling process.

It is returned as a QProcessEnvironment. This function does not cache the system environment. Therefore, it's possible to obtain an updated version of the environment if low-level C library functions like setenv ot putenv have been called.

However, note that repeated calls to this function will recreate the QProcessEnvironment object, which is a non-trivial operation.

This function was introduced in Qt 4.6.

See also QProcess.systemEnvironment().

QStringList QProcessEnvironment.toStringList (self)

Converts this QProcessEnvironment object into a list of strings, one for each environment variable that is set. The environment variable's name and its value are separated by an equal character ('=').

The QStringList contents returned by this function are suitable for use with the QProcess.setEnvironment function. However, it is recommended to use QProcess.setProcessEnvironment instead since that will avoid unnecessary copying of the data.

See also systemEnvironment(), QProcess.systemEnvironment(), QProcess.environment(), and QProcess.setEnvironment().

QString QProcessEnvironment.value (self, QString name, QString defaultValue = QString())

Searches this QProcessEnvironment object for a variable identified by name and returns its value. If the variable is not found in this object, then defaultValue is returned instead.

On Windows, variable names are case-insensitive, so the key is converted to uppercase before searching. On other systems, names are case-sensitive so no trasformation is applied.

See also contains(), insert(), and remove().

bool QProcessEnvironment.__eq__ (self, QProcessEnvironment other)

bool QProcessEnvironment.__ne__ (self, QProcessEnvironment other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprogressbar.html0000644000076500000240000003373612536324512021074 0ustar philstaff00000000000000 QProgressBar Class Reference
  Home · All Classes · Modules

QProgressBar Class Reference
[QtGui module]

The QProgressBar widget provides a horizontal or vertical progress bar. More...

Inherits QWidget.

Types

Methods

Qt Signals


Detailed Description

The QProgressBar widget provides a horizontal or vertical progress bar.

A progress bar is used to give the user an indication of the progress of an operation and to reassure them that the application is still running.

The progress bar uses the concept of steps. You set it up by specifying the minimum and maximum possible step values, and it will display the percentage of steps that have been completed when you later give it the current step value. The percentage is calculated by dividing the progress (value() - minimum()) divided by maximum() - minimum().

You can specify the minimum and maximum number of steps with setMinimum() and setMaximum. The current number of steps is set with setValue(). The progress bar can be rewound to the beginning with reset().

If minimum and maximum both are set to 0, the bar shows a busy indicator instead of a percentage of steps. This is useful, for example, when using QFtp or QNetworkAccessManager to download items when they are unable to determine the size of the item being downloaded.

Screenshot of a Macintosh style progress bar A progress bar shown in the Macintosh widget style.
Screenshot of a Windows XP style progress bar A progress bar shown in the Windows XP widget style.
Screenshot of a Plastique style progress bar A progress bar shown in the Plastique widget style.

Type Documentation

QProgressBar.Direction

Specifies the reading direction of the text for vertical progress bars.

Constant Value Description
QProgressBar.TopToBottom 0 The text is rotated 90 degrees clockwise.
QProgressBar.BottomToTop 1 The text is rotated 90 degrees counter-clockwise.

Note that whether or not the text is drawn is dependent on the style. Currently CDE, CleanLooks, Motif, and Plastique draw the text. Mac, Windows and WindowsXP style do not.

This enum was introduced or modified in Qt 4.1.

See also textDirection.


Method Documentation

QProgressBar.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a progress bar with the given parent.

By default, the minimum step value is set to 0, and the maximum to 100.

See also setRange().

Qt.Alignment QProgressBar.alignment (self)

bool QProgressBar.event (self, QEvent e)

Reimplemented from QObject.event().

QString QProgressBar.format (self)

QProgressBar.initStyleOption (self, QStyleOptionProgressBar option)

Initialize option with the values from this QProgressBar. This method is useful for subclasses when they need a QStyleOptionProgressBar or QStyleOptionProgressBarV2, but don't want to fill in all the information themselves. This function will check the version of the QStyleOptionProgressBar and fill in the additional values for a QStyleOptionProgressBarV2.

See also QStyleOption.initFrom().

bool QProgressBar.invertedAppearance (self)

bool QProgressBar.isTextVisible (self)

int QProgressBar.maximum (self)

int QProgressBar.minimum (self)

QSize QProgressBar.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

Qt.Orientation QProgressBar.orientation (self)

QProgressBar.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QProgressBar.reset (self)

This method is also a Qt slot with the C++ signature void reset().

Reset the progress bar. The progress bar "rewinds" and shows no progress.

QProgressBar.setAlignment (self, Qt.Alignment alignment)

QProgressBar.setFormat (self, QString format)

QProgressBar.setInvertedAppearance (self, bool invert)

QProgressBar.setMaximum (self, int maximum)

This method is also a Qt slot with the C++ signature void setMaximum(int).

QProgressBar.setMinimum (self, int minimum)

This method is also a Qt slot with the C++ signature void setMinimum(int).

QProgressBar.setOrientation (self, Qt.Orientation)

This method is also a Qt slot with the C++ signature void setOrientation(Qt::Orientation).

QProgressBar.setRange (self, int minimum, int maximum)

Sets the progress bar's minimum and maximum values to minimum and maximum respectively.

If maximum is smaller than minimum, minimum becomes the only legal value.

If the current value falls outside the new range, the progress bar is reset with reset().

See also minimum and maximum.

QProgressBar.setTextDirection (self, Direction textDirection)

QProgressBar.setTextVisible (self, bool visible)

QProgressBar.setValue (self, int value)

This method is also a Qt slot with the C++ signature void setValue(int).

QSize QProgressBar.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QString QProgressBar.text (self)

Direction QProgressBar.textDirection (self)

int QProgressBar.value (self)


Qt Signal Documentation

void valueChanged (int)

This is the default overload of this signal.

This signal is emitted when the value shown in the progress bar changes. value is the new value shown by the progress bar.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qprogressdialog.html0000644000076500000240000005745112536324512021567 0ustar philstaff00000000000000 QProgressDialog Class Reference
  Home · All Classes · Modules

QProgressDialog Class Reference
[
QtGui module]

The QProgressDialog class provides feedback on the progress of a slow operation. More...

Inherits QDialog.

Methods

Qt Signals


Detailed Description

The QProgressDialog class provides feedback on the progress of a slow operation.

A progress dialog is used to give the user an indication of how long an operation is going to take, and to demonstrate that the application has not frozen. It can also give the user an opportunity to abort the operation.

A common problem with progress dialogs is that it is difficult to know when to use them; operations take different amounts of time on different hardware. QProgressDialog offers a solution to this problem: it estimates the time the operation will take (based on time for steps), and only shows itself if that estimate is beyond minimumDuration() (4 seconds by default).

Use setMinimum() and setMaximum() or the constructor to set the number of "steps" in the operation and call setValue() as the operation progresses. The number of steps can be chosen arbitrarily. It can be the number of files copied, the number of bytes received, the number of iterations through the main loop of your algorithm, or some other suitable unit. Progress starts at the value set by setMinimum(), and the progress dialog shows that the operation has finished when you call setValue() with the value set by setMaximum() as its argument.

The dialog automatically resets and hides itself at the end of the operation. Use setAutoReset() and setAutoClose() to change this behavior. Note that if you set a new maximum (using setMaximum() or setRange()) that equals your current value(), the dialog will not close regardless.

There are two ways of using QProgressDialog: modal and modeless.

Compared to a modeless QProgressDialog, a modal QProgressDialog is simpler to use for the programmer. Do the operation in a loop, call setValue() at intervals, and check for cancellation with wasCanceled(). For example:

     QProgressDialog progress("Copying files...", "Abort Copy", 0, numFiles, this);
     progress.setWindowModality(Qt.WindowModal);

     for (int i = 0; i < numFiles; i++) {
         progress.setValue(i);

         if (progress.wasCanceled())
             break;
         //... copy one file
     }
     progress.setValue(numFiles);

A modeless progress dialog is suitable for operations that take place in the background, where the user is able to interact with the application. Such operations are typically based on QTimer (or QObject.timerEvent()), QSocketNotifier, or QUrlOperator; or performed in a separate thread. A QProgressBar in the status bar of your main window is often an alternative to a modeless progress dialog.

You need to have an event loop to be running, connect the canceled() signal to a slot that stops the operation, and call setValue() at intervals. For example:

 // Operation constructor
 Operation.Operation(QObject *parent)
     : QObject(parent), steps(0)
 {
     pd = new QProgressDialog("Operation in progress.", "Cancel", 0, 100);
     connect(pd, SIGNAL(canceled()), this, SLOT(cancel()));
     t = new QTimer(this);
     connect(t, SIGNAL(timeout()), this, SLOT(perform()));
     t->start(0);
 }

 void Operation.perform()
 {
     pd->setValue(steps);
     //... perform one percent of the operation
     steps++;
     if (steps > pd->maximum())
         t->stop();
 }

 void Operation.cancel()
 {
     t->stop();
     //... cleanup
 }

In both modes the progress dialog may be customized by replacing the child widgets with custom widgets by using setLabel(), setBar(), and setCancelButton(). The functions setLabelText() and setCancelButtonText() set the texts shown.

A progress dialog shown in the Plastique widget style.


Method Documentation

QProgressDialog.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a progress dialog.

Default settings:

  • The label text is empty.
  • The cancel button text is (translated) "Cancel".
  • minimum is 0;
  • maximum is 100

The parent argument is dialog's parent widget. The widget flags, f, are passed to the QDialog.QDialog() constructor.

See also setLabelText(), setCancelButtonText(), setCancelButton(), setMinimum(), and setMaximum().

QProgressDialog.__init__ (self, QString labelText, QString cancelButtonText, int minimum, int maximum, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a progress dialog.

The labelText is the text used to remind the user what is progressing.

The cancelButtonText is the text to display on the cancel button. If QString() is passed then no cancel button is shown.

The minimum and maximum is the number of steps in the operation for which this progress dialog shows progress. For example, if the operation is to examine 50 files, this value minimum value would be 0, and the maximum would be 50. Before examining the first file, call setValue(0). As each file is processed call setValue(1), setValue(2), etc., finally calling setValue(50) after examining the last file.

The parent argument is the dialog's parent widget. The parent, parent, and widget flags, f, are passed to the QDialog.QDialog() constructor.

See also setLabelText(), setLabel(), setCancelButtonText(), setCancelButton(), setMinimum(), and setMaximum().

bool QProgressDialog.autoClose (self)

bool QProgressDialog.autoReset (self)

QProgressDialog.cancel (self)

This method is also a Qt slot with the C++ signature void cancel().

Resets the progress dialog. wasCanceled() becomes true until the progress dialog is reset. The progress dialog becomes hidden.

QProgressDialog.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QProgressDialog.closeEvent (self, QCloseEvent)

Reimplemented from QWidget.closeEvent().

QProgressDialog.forceShow (self)

Shows the dialog if it is still hidden after the algorithm has been started and minimumDuration milliseconds have passed.

See also setMinimumDuration().

QString QProgressDialog.labelText (self)

int QProgressDialog.maximum (self)

int QProgressDialog.minimum (self)

int QProgressDialog.minimumDuration (self)

QProgressDialog.open (self)

This is an overloaded function.

Opens the dialog and connects its accepted() signal to the slot specified by receiver and member.

The signal will be disconnected from the slot when the dialog is closed.

This function was introduced in Qt 4.5.

QProgressDialog.open (self, QObject receiver, SLOT()SLOT() member)

QProgressDialog.open (self, callable receiver)

QProgressDialog.reset (self)

This method is also a Qt slot with the C++ signature void reset().

Resets the progress dialog. The progress dialog becomes hidden if autoClose() is true.

See also setAutoClose() and setAutoReset().

QProgressDialog.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QProgressDialog.setAutoClose (self, bool b)

QProgressDialog.setAutoReset (self, bool b)

QProgressDialog.setBar (self, QProgressBar bar)

The bar argument has it's ownership transferred to Qt.

Sets the progress bar widget to bar. The progress dialog resizes to fit. The progress dialog takes ownership of the progress bar which will be deleted when necessary, so do not use a progress bar allocated on the stack.

QProgressDialog.setCancelButton (self, QPushButton button)

The button argument has it's ownership transferred to Qt.

Sets the cancel button to the push button, cancelButton. The progress dialog takes ownership of this button which will be deleted when necessary, so do not pass the address of an object that is on the stack, i.e. use new() to create the button. If 0 is passed then no cancel button will be shown.

See also setCancelButtonText().

QProgressDialog.setCancelButtonText (self, QString)

This method is also a Qt slot with the C++ signature void setCancelButtonText(const QString&).

Sets the cancel button's text to cancelButtonText. If the text is set to QString() then it will cause the cancel button to be hidden and deleted.

See also setCancelButton().

QProgressDialog.setLabel (self, QLabel label)

The label argument has it's ownership transferred to Qt.

Sets the label to label. The progress dialog resizes to fit. The label becomes owned by the progress dialog and will be deleted when necessary, so do not pass the address of an object on the stack.

See also setLabelText().

QProgressDialog.setLabelText (self, QString)

This method is also a Qt slot with the C++ signature void setLabelText(const QString&).

QProgressDialog.setMaximum (self, int maximum)

This method is also a Qt slot with the C++ signature void setMaximum(int).

QProgressDialog.setMinimum (self, int minimum)

This method is also a Qt slot with the C++ signature void setMinimum(int).

QProgressDialog.setMinimumDuration (self, int ms)

This method is also a Qt slot with the C++ signature void setMinimumDuration(int).

QProgressDialog.setRange (self, int minimum, int maximum)

Sets the progress dialog's minimum and maximum values to minimum and maximum, respectively.

If maximum is smaller than minimum, minimum becomes the only legal value.

If the current value falls outside the new range, the progress dialog is reset with reset().

See also minimum and maximum.

QProgressDialog.setValue (self, int progress)

This method is also a Qt slot with the C++ signature void setValue(int).

QProgressDialog.showEvent (self, QShowEvent e)

Reimplemented from QWidget.showEvent().

QSize QProgressDialog.sizeHint (self)

Reimplemented from QWidget.sizeHint().

Returns a size that fits the contents of the progress dialog. The progress dialog resizes itself as required, so you should not need to call this yourself.

int QProgressDialog.value (self)

bool QProgressDialog.wasCanceled (self)


Qt Signal Documentation

void canceled ()

This is the default overload of this signal.

This signal is emitted when the cancel button is clicked. It is connected to the cancel() slot by default.

See also wasCanceled().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpropertyanimation.html0000644000076500000240000002312512536324473022324 0ustar philstaff00000000000000 QPropertyAnimation Class Reference
  Home · All Classes · Modules

QPropertyAnimation Class Reference
[QtCore module]

The QPropertyAnimation class animates Qt properties More...

Inherits QVariantAnimation.

Methods


Detailed Description

The QPropertyAnimation class animates Qt properties

QPropertyAnimation interpolates over Qt properties. As property values are stored in QVariants, the class inherits QVariantAnimation, and supports animation of the same variant types as its super class.

A class declaring properties must be a QObject. To make it possible to animate a property, it must provide a setter (so that QPropertyAnimation can set the property's value). Note that this makes it possible to animate many of Qt's widgets. Let's look at an example:

 QPropertyAnimation *animation = new QPropertyAnimation(myWidget, "geometry");
 animation->setDuration(10000);
 animation->setStartValue(QRect(0, 0, 100, 30));
 animation->setEndValue(QRect(250, 250, 100, 30));

 animation->start();

The property name and the QObject instance of which property should be animated are passed to the constructor. You can then specify the start and end value of the property. The procedure is equal for properties in classes you have implemented yourself--just check with QVariantAnimation that your QVariant type is supported.

The QVariantAnimation class description explains how to set up the animation in detail. Note, however, that if a start value is not set, the property will start at the value it had when the QPropertyAnimation instance was created.

QPropertyAnimation works like a charm on its own. For complex animations that, for instance, contain several objects, QAnimationGroup is provided. An animation group is an animation that can contain other animations, and that can manage when its animations are played. Look at QParallelAnimationGroup for an example.


Method Documentation

QPropertyAnimation.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Construct a QPropertyAnimation object. parent is passed to QObject's constructor.

QPropertyAnimation.__init__ (self, QObject target, QByteArray propertyName, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Construct a QPropertyAnimation object. parent is passed to QObject's constructor. The animation changes the property propertyName on target. The default duration is 250ms.

See also targetObject and propertyName.

bool QPropertyAnimation.event (self, QEvent event)

Reimplemented from QObject.event().

QByteArray QPropertyAnimation.propertyName (self)

QPropertyAnimation.setPropertyName (self, QByteArray propertyName)

QPropertyAnimation.setTargetObject (self, QObject target)

QObject QPropertyAnimation.targetObject (self)

QPropertyAnimation.updateCurrentValue (self, QVariant value)

Reimplemented from QVariantAnimation.updateCurrentValue().

This virtual function is called by QVariantAnimation whenever the current value changes. value is the new, updated value. It updates the current value of the property on the target object.

See also currentValue and currentTime.

QPropertyAnimation.updateState (self, QAbstractAnimation.State newState, QAbstractAnimation.State oldState)

Reimplemented from QAbstractAnimation.updateState().

If the startValue is not defined when the state of the animation changes from Stopped to Running, the current property value is used as the initial value for the animation.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qproxymodel.html0000644000076500000240000004670012536324512020740 0ustar philstaff00000000000000 QProxyModel Class Reference
  Home · All Classes · Modules

QProxyModel Class Reference
[QtGui module]

The QProxyModel class provides support for processing data passed between another model and a view. More...

Inherits QAbstractItemModel.

Methods

  • __init__ (self, QObject parent = None)
  • int columnCount (self, QModelIndex parent = QModelIndex())
  • QVariant data (self, QModelIndex index, int role = Qt.DisplayRole)
  • bool dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)
  • fetchMore (self, QModelIndex parent)
  • Qt.ItemFlags flags (self, QModelIndex index)
  • bool hasChildren (self, QModelIndex parent = QModelIndex())
  • QVariant headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)
  • QModelIndex index (self, int row, int column, QModelIndex parent = QModelIndex())
  • bool insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())
  • bool insertRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • list-of-QModelIndex match (self, QModelIndex start, int role, QVariant value, int hits = 1, Qt.MatchFlags flags = Qt.MatchFlags(Qt.MatchStartsWith|Qt.MatchWrap))
  • QMimeData mimeData (self, list-of-QModelIndex indexes)
  • QStringList mimeTypes (self)
  • QAbstractItemModel model (self)
  • QModelIndex parent (self, QModelIndex child)
  • QObject parent (self)
  • revert (self)
  • int rowCount (self, QModelIndex parent = QModelIndex())
  • bool setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)
  • bool setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)
  • setModel (self, QAbstractItemModel model)
  • sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)
  • QSize span (self, QModelIndex index)
  • bool submit (self)
  • Qt.DropActions supportedDropActions (self)

Detailed Description

The QProxyModel class provides support for processing data passed between another model and a view.

If you want to do filtering and sorting, see QSortFilterProxyModel.

Proxy models provide a standard model interface that can be used to manipulate the data retrieved through an underlying model. They can be used to perform operations such as sorting and filtering on the data obtained without changing the contents of the model.

Just as with subclasses of QAbstractItemView, QProxyModel provides the setModel() function that is used to specify the model to be acted on by the proxy. Views can be connected to either the underlying model or the proxy model with QAbstractItemView.setModel().

Since views rely on the information provided in model indexes to identify items of data from models, and to position these items in some visual representation, proxy models must create their own model indexes instead of supplying model indexes from their underlying models.


Method Documentation

QProxyModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a proxy model with the given parent.

int QProxyModel.columnCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.columnCount().

Returns the number of columns for the given parent.

See also QAbstractItemModel.columnCount().

QVariant QProxyModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.data().

Returns the data stored in the item with the given index under the specified role.

See also setData().

bool QProxyModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Reimplemented from QAbstractItemModel.dropMimeData().

Returns true if the model accepts the data dropped onto an attached view for the specified action; otherwise returns false.

The parent, row, and column details can be used to control which MIME types are acceptable to different parts of a model when received via the drag and drop system.

QProxyModel.fetchMore (self, QModelIndex parent)

Reimplemented from QAbstractItemModel.fetchMore().

Fetches more child items of the given parent. This function is used by views to tell the model that they can display more data than the model has provided.

See also QAbstractItemModel.fetchMore().

Qt.ItemFlags QProxyModel.flags (self, QModelIndex index)

Reimplemented from QAbstractItemModel.flags().

Returns the item flags for the given index.

bool QProxyModel.hasChildren (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.hasChildren().

Returns true if the item corresponding to the parent index has child items; otherwise returns false.

See also QAbstractItemModel.hasChildren().

QVariant QProxyModel.headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.headerData().

Returns the data stored in the section of the header with specified orientation under the given role.

See also setHeaderData().

QModelIndex QProxyModel.index (self, int row, int column, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.index().

Returns the model index with the given row, column, and parent.

See also QAbstractItemModel.index().

bool QProxyModel.insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertColumns().

Inserts count columns into the model, creating new items as children of the given parent. The new columns are inserted before the column specified. If the parent item has no children, a single row is created to contain the required number of columns.

Returns true if the columns were successfully inserted; otherwise returns false.

See also QAbstractItemModel.insertColumns().

bool QProxyModel.insertRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertRows().

Inserts count rows into the model, creating new items as children of the given parent. The new rows are inserted before the row specified. If the parent item has no children, a single column is created to contain the required number of rows.

Returns true if the rows were successfully inserted; otherwise returns false.

See also QAbstractItemModel.insertRows().

list-of-QModelIndex QProxyModel.match (self, QModelIndex start, int role, QVariant value, int hits = 1, Qt.MatchFlags flags = Qt.MatchFlags(Qt.MatchStartsWith|Qt.MatchWrap))

Reimplemented from QAbstractItemModel.match().

Returns a list of model indexes that each contain the given value for the role specified. The search begins at the start index and is performed according to the specified flags. The search continues until the number of matching data items equals hits, the last row is reached, or the search reaches start again, depending on whether MatchWrap is specified in flags.

See also QAbstractItemModel.match().

QMimeData QProxyModel.mimeData (self, list-of-QModelIndex indexes)

The QMimeData result

Reimplemented from QAbstractItemModel.mimeData().

Returns MIME data for the specified indexes in the model.

QStringList QProxyModel.mimeTypes (self)

Reimplemented from QAbstractItemModel.mimeTypes().

Returns a list of MIME types that are supported by the model.

QAbstractItemModel QProxyModel.model (self)

Returns the model that contains the data that is available through the proxy model.

See also setModel().

QModelIndex QProxyModel.parent (self, QModelIndex child)

Reimplemented from QAbstractItemModel.parent().

Returns the model index that corresponds to the parent of the given child index.

QObject QProxyModel.parent (self)

QProxyModel.revert (self)

Reimplemented from QAbstractItemModel.revert().

int QProxyModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

Returns the number of rows for the given parent.

See also QAbstractItemModel.rowCount().

bool QProxyModel.setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setData().

Sets the role data for the item at index to value. Returns true if successful; otherwise returns false.

The base class implementation returns false. This function and data() must be reimplemented for editable models.

See also data(), itemData(), and QAbstractItemModel.setData().

bool QProxyModel.setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setHeaderData().

Sets the role data in the section of the header with the specified orientation to the value given.

See also headerData() and QAbstractItemModel.setHeaderData().

QProxyModel.setModel (self, QAbstractItemModel model)

Sets the given model to be processed by the proxy model.

See also model().

QProxyModel.sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Reimplemented from QAbstractItemModel.sort().

Sorts the child items in the specified column according to the sort order defined by order.

See also QAbstractItemModel.sort().

QSize QProxyModel.span (self, QModelIndex index)

Reimplemented from QAbstractItemModel.span().

Returns the size of the item that corresponds to the specified index.

bool QProxyModel.submit (self)

Reimplemented from QAbstractItemModel.submit().

Qt.DropActions QProxyModel.supportedDropActions (self)

Reimplemented from QAbstractItemModel.supportedDropActions().

Returns the drop actions that are supported by the model; this is a combination of the individual actions defined in Qt.DropActions.

The selection of drop actions provided by the model will influence the behavior of the component that started the drag and drop operation.

See also Drag and Drop.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpushbutton.html0000644000076500000240000003615212536324501020747 0ustar philstaff00000000000000 QPushButton Class Reference
  Home · All Classes · Modules

QPushButton Class Reference
[QtGui module]

The QPushButton widget provides a command button. More...

Inherits QAbstractButton.

Inherited by QCommandLinkButton.

Methods


Detailed Description

The QPushButton widget provides a command button.

The push button, or command button, is perhaps the most commonly used widget in any graphical user interface. Push (click) a button to command the computer to perform some action, or to answer a question. Typical buttons are OK, Apply, Cancel, Close, Yes, No and Help.

A command button is rectangular and typically displays a text label describing its action. A shortcut key can be specified by preceding the preferred character with an ampersand in the text. For example:

 QPushButton *button = new QPushButton("&Download", this);

In this example the shortcut is Alt+D. See the QShortcut documentation for details (to display an actual ampersand, use '&&').

Push buttons display a textual label, and optionally a small icon. These can be set using the constructors and changed later using setText() and setIcon(). If the button is disabled the appearance of the text and icon will be manipulated with respect to the GUI style to make the button look "disabled".

A push button emits the signal clicked() when it is activated by the mouse, the Spacebar or by a keyboard shortcut. Connect to this signal to perform the button's action. Push buttons also provide less commonly used signals, for example, pressed() and released().

Command buttons in dialogs are by default auto-default buttons, i.e. they become the default push button automatically when they receive the keyboard input focus. A default button is a push button that is activated when the user presses the Enter or Return key in a dialog. You can change this with setAutoDefault(). Note that auto-default buttons reserve a little extra space which is necessary to draw a default-button indicator. If you do not want this space around your buttons, call setAutoDefault(false).

Being so central, the button widget has grown to accommodate a great many variations in the past decade. The Microsoft style guide now shows about ten different states of Windows push buttons and the text implies that there are dozens more when all the combinations of features are taken into consideration.

The most important modes or states are:

  • Available or not (grayed out, disabled).
  • Standard push button, toggling push button or menu button.
  • On or off (only for toggling push buttons).
  • Default or normal. The default button in a dialog can generally be "clicked" using the Enter or Return key.
  • Auto-repeat or not.
  • Pressed down or not.

As a general rule, use a push button when the application or dialog window performs an action when the user clicks on it (such as Apply, Cancel, Close and Help) and when the widget is supposed to have a wide, rectangular shape with a text label. Small, typically square buttons that change the state of the window rather than performing an action (such as the buttons in the top-right corner of the QFileDialog) are not command buttons, but tool buttons. Qt provides a special class (QToolButton) for these buttons.

If you need toggle behavior (see setCheckable()) or a button that auto-repeats the activation signal when being pushed down like the arrows in a scroll bar (see setAutoRepeat()), a command button is probably not what you want. When in doubt, use a tool button.

A variation of a command button is a menu button. These provide not just one command, but several, since when they are clicked they pop up a menu of options. Use the method setMenu() to associate a popup menu with a push button.

Other classes of buttons are option buttons (see QRadioButton) and check boxes (see QCheckBox).

Screenshot of a Macintosh style push button A push button shown in the Macintosh widget style.

Note that when a button's width becomes smaller than 50 or its height becomes smaller than 30, the button's corners are changed from round to square. Use the setMinimumSize() function to prevent this behavior.

Screenshot of a Windows XP style push button A push button shown in the Windows XP widget style.
Screenshot of a Plastique style push button A push button shown in the Plastique widget style.

In Qt, the QAbstractButton base class provides most of the modes and other API, and QPushButton provides GUI logic. See QAbstractButton for more information about the API.


Method Documentation

QPushButton.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a push button with no text and a parent.

QPushButton.__init__ (self, QString text, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a push button with the parent parent and the text text.

QPushButton.__init__ (self, QIcon icon, QString text, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a push button with an icon and a text, and a parent.

Note that you can also pass a QPixmap object as an icon (thanks to the implicit type conversion provided by C++).

bool QPushButton.autoDefault (self)

bool QPushButton.event (self, QEvent e)

Reimplemented from QObject.event().

QPushButton.focusInEvent (self, QFocusEvent)

Reimplemented from QWidget.focusInEvent().

QPushButton.focusOutEvent (self, QFocusEvent)

Reimplemented from QWidget.focusOutEvent().

QPushButton.initStyleOption (self, QStyleOptionButton option)

Initialize option with the values from this QPushButton. This method is useful for subclasses when they need a QStyleOptionButton, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

bool QPushButton.isDefault (self)

bool QPushButton.isFlat (self)

QPushButton.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

QMenu QPushButton.menu (self)

Returns the button's associated popup menu or 0 if no popup menu has been set.

See also setMenu().

QSize QPushButton.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QPushButton.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QPushButton.setAutoDefault (self, bool)

QPushButton.setDefault (self, bool)

QPushButton.setFlat (self, bool)

QPushButton.setMenu (self, QMenu menu)

Associates the popup menu menu with this push button. This turns the button into a menu button, which in some styles will produce a small triangle to the right of the button's text.

Ownership of the menu is not transferred to the push button.

Screenshot of a Plastique style push button with popup menu. Screenshot of a Cleanlooks style push button with popup menu. Push buttons with popup menus shown in the Plastique widget style (left) and Cleanlooks widget style (right).

See also menu().

QPushButton.showMenu (self)

This method is also a Qt slot with the C++ signature void showMenu().

Shows (pops up) the associated popup menu. If there is no such menu, this function does nothing. This function does not return until the popup menu has been closed by the user.

QSize QPushButton.sizeHint (self)

Reimplemented from QWidget.sizeHint().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpydeclarativepropertyvaluesource.html0000644000076500000240000000443512536324477025466 0ustar philstaff00000000000000 QPyDeclarativePropertyValueSource Class Reference
  Home · All Classes · Modules

QPyDeclarativePropertyValueSource Class Reference
[QtDeclarative module]

Inherits QObject and QDeclarativePropertyValueSource.

Methods

  • __init__ (self, QObject parent = None)

Detailed Description


Method Documentation

QPyDeclarativePropertyValueSource.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpydesignercontainerextension.html0000644000076500000240000000526012536324525024547 0ustar philstaff00000000000000 QPyDesignerContainerExtension Class Reference
  Home · All Classes · Modules

QPyDesignerContainerExtension Class Reference
[QtDesigner module]

Inherits QObject and QDesignerContainerExtension.

Methods


Detailed Description

The QPyDesignerContainerExtension class is provided to work around the fact that it is not possible for a Python class to derive from multiple Qt classes.

In order to add pages to a custom multi-page container in Qt Designer's workspace you should implement a Python class derived from QPyDesignerContainerExtension rather than one derived from QObject and QDesignerContainerExtension.


Method Documentation

QPyDesignerContainerExtension.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpydesignercustomwidgetcollectionplugin.html0000644000076500000240000000550412536324525026642 0ustar philstaff00000000000000 QPyDesignerCustomWidgetCollectionPlugin Class Reference
  Home · All Classes · Modules

QPyDesignerCustomWidgetCollectionPlugin Class Reference
[QtDesigner module]

Inherits QObject and QDesignerCustomWidgetCollectionInterface.

Methods

  • __init__ (self, QObject parent = None)

Detailed Description

The QPyDesignerCustomWidgetCollectionPlugin class is provided to work around the fact that it is not possible for a Python class to derive from multiple Qt classes.

In order to write a plugin that contains several custom widgets you should implement a Python class derived from QPyDesignerCustomWidgetCollectionPlugin rather than one derived from QObject and QDesignerCustomWidgetCollectionInterface.


Method Documentation

QPyDesignerCustomWidgetCollectionPlugin.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpydesignercustomwidgetplugin.html0000644000076500000240000000531412536324525024565 0ustar philstaff00000000000000 QPyDesignerCustomWidgetPlugin Class Reference
  Home · All Classes · Modules

QPyDesignerCustomWidgetPlugin Class Reference
[QtDesigner module]

Inherits QObject and QDesignerCustomWidgetInterface.

Methods

  • __init__ (self, QObject parent = None)

Detailed Description

The QPyDesignerCustomWidgetPlugin class is provided to work around the fact that it is not possible for a Python class to derive from multiple Qt classes.

In order to write a plugin that contains a single custom widget you should implement a Python class derived from QPyDesignerCustomWidgetPlugin rather than one derived from QObject and QDesignerCustomWidgetInterface.


Method Documentation

QPyDesignerCustomWidgetPlugin.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpydesignermembersheetextension.html0000644000076500000240000000530612536324525025066 0ustar philstaff00000000000000 QPyDesignerMemberSheetExtension Class Reference
  Home · All Classes · Modules

QPyDesignerMemberSheetExtension Class Reference
[QtDesigner module]

Inherits QObject and QDesignerMemberSheetExtension.

Methods


Detailed Description

The QPyDesignerMemberSheetExtension class is provided to work around the fact that it is not possible for a Python class to derive from multiple Qt classes.

In order to manipulate a widget's member functions when configuring connections you should implement a Python class derived from QPyDesignerMemberSheetExtension rather than one derived from QObject and QDesignerMemberSheetExtension.


Method Documentation

QPyDesignerMemberSheetExtension.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpydesignerpropertysheetextension.html0000644000076500000240000000527312536324525025506 0ustar philstaff00000000000000 QPyDesignerPropertySheetExtension Class Reference
  Home · All Classes · Modules

QPyDesignerPropertySheetExtension Class Reference
[QtDesigner module]

Inherits QObject and QDesignerPropertySheetExtension.

Methods


Detailed Description

The QPyDesignerPropertySheetExtension class is provided to work around the fact that it is not possible for a Python class to derive from multiple Qt classes.

In order to manipulate a widget's properties you should implement a Python class derived from QPyDesignerPropertySheetExtension rather than one derived from QObject and QDesignerPropertySheetExtension.


Method Documentation

QPyDesignerPropertySheetExtension.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpydesignertaskmenuextension.html0000644000076500000240000000521412536324525024413 0ustar philstaff00000000000000 QPyDesignerTaskMenuExtension Class Reference
  Home · All Classes · Modules

QPyDesignerTaskMenuExtension Class Reference
[QtDesigner module]

Inherits QObject and QDesignerTaskMenuExtension.

Methods


Detailed Description

The QPyDesignerTaskMenuExtension class is provided to work around the fact that it is not possible for a Python class to derive from multiple Qt classes.

In order to add custom entries to Qt Designer's task menu you should implement a Python class derived from QPyDesignerTaskMenuExtension rather than one derived from QObject and QDesignerTaskMenuExtension.


Method Documentation

QPyDesignerTaskMenuExtension.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpynullvariant.html0000644000076500000240000000547112536324476021457 0ustar philstaff00000000000000 QPyNullVariant Class Reference
  Home · All Classes · Modules

QPyNullVariant Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description


Method Documentation

QPyNullVariant.__init__ (self, object type)

bool QPyNullVariant.isNull (self)

Type QPyNullVariant.type (self)

str QPyNullVariant.typeName (self)

int QPyNullVariant.userType (self)

int QPyNullVariant.__bool__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qpytextobject.html0000644000076500000240000000511312536324517021260 0ustar philstaff00000000000000 QPyTextObject Class Reference
  Home · All Classes · Modules

QPyTextObject Class Reference
[
QtGui module]

Inherits QObject and QTextObjectInterface.

Methods

  • __init__ (self, QObject parent = None)

Detailed Description

The QPyTextObject class is provided to work around the fact that it is not possible for a Python class to derive from multiple Qt classes.

In order to create new types of text object that you can add to a QTextDocument you should implement a Python class derived from QPyTextObject rather than one derived from QObject and QTextObjectInterface.


Method Documentation

QPyTextObject.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qquaternion.html0000644000076500000240000005002112536324512020712 0ustar philstaff00000000000000 QQuaternion Class Reference
  Home · All Classes · Modules

QQuaternion Class Reference
[QtGui module]

The QQuaternion class represents a quaternion consisting of a vector and scalar. More...

Methods

Static Methods

  • QQuaternion fromAxisAndAngle (QVector3D axis, float angle)
  • QQuaternion fromAxisAndAngle (float x, float y, float z, float angle)
  • QQuaternion nlerp (QQuaternion q1, QQuaternion q2, float t)
  • QQuaternion slerp (QQuaternion q1, QQuaternion q2, float t)

Special Methods

  • QQuaternion __add__ (self, QQuaternion q2)
  • QQuaternion __div__ (self, float divisor)
  • bool __eq__ (self, QQuaternion q2)
  • QQuaternion __iadd__ (self, QQuaternion quaternion)
  • QQuaternion __idiv__ (self, float divisor)
  • QQuaternion __imul__ (self, float factor)
  • QQuaternion __imul__ (self, QQuaternion quaternion)
  • QQuaternion __isub__ (self, QQuaternion quaternion)
  • QQuaternion __mul__ (self, QQuaternion q2)
  • QQuaternion __mul__ (self, QQuaternion quaternion)
  • QQuaternion __mul__ (self, float factor)
  • bool __ne__ (self, QQuaternion q2)
  • QQuaternion __neg__ (self)
  • str __repr__ (self)
  • QQuaternion __sub__ (self, QQuaternion q2)

Detailed Description

This class can be pickled.

The QQuaternion class represents a quaternion consisting of a vector and scalar.

Quaternions are used to represent rotations in 3D space, and consist of a 3D rotation axis specified by the x, y, and z coordinates, and a scalar representing the rotation angle.


Method Documentation

QQuaternion.__init__ (self)

Constructs an identity quaternion, i.e. with coordinates (1, 0, 0, 0).

QQuaternion.__init__ (self, float aScalar, float xpos, float ypos, float zpos)

Constructs a quaternion with the vector (xpos, ypos, zpos) and scalar.

QQuaternion.__init__ (self, float aScalar, QVector3D aVector)

Constructs a quaternion vector from the specified vector and scalar.

See also vector() and scalar().

QQuaternion.__init__ (self, QVector4D aVector)

Constructs a quaternion from the components of vector.

QQuaternion.__init__ (self, QQuaternion)

QQuaternion QQuaternion.conjugate (self)

Returns the conjugate of this quaternion, which is (-x, -y, -z, scalar).

QQuaternion QQuaternion.fromAxisAndAngle (QVector3D axis, float angle)

Creates a normalized quaternion that corresponds to rotating through angle degrees about the specified 3D axis.

QQuaternion QQuaternion.fromAxisAndAngle (float x, float y, float z, float angle)

Creates a normalized quaternion that corresponds to rotating through angle degrees about the 3D axis (x, y, z).

bool QQuaternion.isIdentity (self)

Returns true if the x, y, and z components of this quaternion are set to 0.0, and the scalar component is set to 1.0; otherwise returns false.

bool QQuaternion.isNull (self)

Returns true if the x, y, z, and scalar components of this quaternion are set to 0.0; otherwise returns false.

float QQuaternion.length (self)

Returns the length of the quaternion. This is also called the "norm".

See also lengthSquared() and normalized().

float QQuaternion.lengthSquared (self)

Returns the squared length of the quaternion.

See also length().

QQuaternion QQuaternion.nlerp (QQuaternion q1, QQuaternion q2, float t)

Interpolates along the shortest linear path between the rotational positions q1 and q2. The value t should be between 0 and 1, indicating the distance to travel between q1 and q2. The result will be normalized().

If t is less than or equal to 0, then q1 will be returned. If t is greater than or equal to 1, then q2 will be returned.

The nlerp() function is typically faster than slerp() and will give approximate results to spherical interpolation that are good enough for some applications.

See also slerp().

QQuaternion.normalize (self)

Normalizes the currect quaternion in place. Nothing happens if this is a null quaternion or the length of the quaternion is very close to 1.

See also length() and normalized().

QQuaternion QQuaternion.normalized (self)

Returns the normalized unit form of this quaternion.

If this quaternion is null, then a null quaternion is returned. If the length of the quaternion is very close to 1, then the quaternion will be returned as-is. Otherwise the normalized form of the quaternion of length 1 will be returned.

See also length() and normalize().

QVector3D QQuaternion.rotatedVector (self, QVector3D vector)

Rotates vector with this quaternion to produce a new vector in 3D space. The following code:

 QVector3D result = q.rotatedVector(vector);

is equivalent to the following:

 QVector3D result = (q * QQuaternion(0, vector) * q.conjugate()).vector();

float QQuaternion.scalar (self)

Returns the scalar component of this quaternion.

See also setScalar(), x(), y(), and z().

QQuaternion.setScalar (self, float aScalar)

Sets the scalar component of this quaternion to scalar.

See also scalar(), setX(), setY(), and setZ().

QQuaternion.setVector (self, QVector3D aVector)

Sets the vector component of this quaternion to vector.

See also vector() and setScalar().

QQuaternion.setVector (self, float aX, float aY, float aZ)

Sets the vector component of this quaternion to (x, y, z).

See also vector() and setScalar().

QQuaternion.setX (self, float aX)

Sets the x coordinate of this quaternion's vector to the given x coordinate.

See also x(), setY(), setZ(), and setScalar().

QQuaternion.setY (self, float aY)

Sets the y coordinate of this quaternion's vector to the given y coordinate.

See also y(), setX(), setZ(), and setScalar().

QQuaternion.setZ (self, float aZ)

Sets the z coordinate of this quaternion's vector to the given z coordinate.

See also z(), setX(), setY(), and setScalar().

QQuaternion QQuaternion.slerp (QQuaternion q1, QQuaternion q2, float t)

Interpolates along the shortest spherical path between the rotational positions q1 and q2. The value t should be between 0 and 1, indicating the spherical distance to travel between q1 and q2.

If t is less than or equal to 0, then q1 will be returned. If t is greater than or equal to 1, then q2 will be returned.

See also nlerp().

QVector4D QQuaternion.toVector4D (self)

Returns this quaternion as a 4D vector.

QVector3D QQuaternion.vector (self)

Returns the vector component of this quaternion.

See also setVector() and scalar().

float QQuaternion.x (self)

Returns the x coordinate of this quaternion's vector.

See also setX(), y(), z(), and scalar().

float QQuaternion.y (self)

Returns the y coordinate of this quaternion's vector.

See also setY(), x(), z(), and scalar().

float QQuaternion.z (self)

Returns the z coordinate of this quaternion's vector.

See also setZ(), x(), y(), and scalar().

QQuaternion QQuaternion.__add__ (self, QQuaternion q2)

QQuaternion QQuaternion.__div__ (self, float divisor)

bool QQuaternion.__eq__ (self, QQuaternion q2)

QQuaternion QQuaternion.__iadd__ (self, QQuaternion quaternion)

QQuaternion QQuaternion.__idiv__ (self, float divisor)

QQuaternion QQuaternion.__imul__ (self, float factor)

QQuaternion QQuaternion.__imul__ (self, QQuaternion quaternion)

QQuaternion QQuaternion.__isub__ (self, QQuaternion quaternion)

QQuaternion QQuaternion.__mul__ (self, QQuaternion q2)

QQuaternion QQuaternion.__mul__ (self, QQuaternion quaternion)

QQuaternion QQuaternion.__mul__ (self, float factor)

bool QQuaternion.__ne__ (self, QQuaternion q2)

QQuaternion QQuaternion.__neg__ (self)

str QQuaternion.__repr__ (self)

QQuaternion QQuaternion.__sub__ (self, QQuaternion q2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qradialgradient.html0000644000076500000240000003551212536324501021505 0ustar philstaff00000000000000 QRadialGradient Class Reference
  Home · All Classes · Modules

QRadialGradient Class Reference
[QtGui module]

The QRadialGradient class is used in combination with QBrush to specify a radial gradient brush. More...

Inherits QGradient.

Methods


Detailed Description

The QRadialGradient class is used in combination with QBrush to specify a radial gradient brush.

Qt supports both simple and extended radial gradients.

Simple radial gradients interpolate colors between a focal point and end points on a circle surrounding it. Extended radial gradients interpolate colors between a focal circle and a center circle. Points outside the cone defined by the two circles will be transparent. For simple radial gradients the focal point is adjusted to lie inside the center circle, whereas the focal point can have any position in an extended radial gradient.

Outside the end points the gradient is either padded, reflected or repeated depending on the currently set spread method:

PadSpread (default) ReflectSpread RepeatSpread

The colors in a gradient is defined using stop points of the QGradientStop type, i.e. a position and a color. Use the QGradient.setColorAt() or the QGradient.setStops() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.

In addition to the functions inherited from QGradient, the QRadialGradient class provides the center(), focalPoint() and radius() functions returning the gradient's center, focal point and radius respectively.


Method Documentation

QRadialGradient.__init__ (self)

Constructs a simple radial gradient with the center and focal point at (0, 0) with a radius of 1.

QRadialGradient.__init__ (self, QPointF center, float radius, QPointF focalPoint)

Constructs a simple radial gradient with the given center, radius and focalPoint.

Note: If the given focal point is outside the circle defined by the center point and radius, it will be re-adjusted to lie at a point on the circle where it intersects with the line from center to focalPoint.

See also QGradient.setColorAt() and QGradient.setStops().

QRadialGradient.__init__ (self, QPointF center, float centerRadius, QPointF focalPoint, float focalRadius)

Constructs a simple radial gradient with the given center (cx, cy), radius and focal point (fx, fy).

Note: If the given focal point is outside the circle defined by the center (cx, cy) and the radius it will be re-adjusted to the intersection between the line from the center to the focal point and the circle.

See also QGradient.setColorAt() and QGradient.setStops().

QRadialGradient.__init__ (self, QPointF center, float radius)

Constructs a simple radial gradient with the given center, radius and the focal point in the circle center.

See also QGradient.setColorAt() and QGradient.setStops().

QRadialGradient.__init__ (self, float cx, float cy, float radius, float fx, float fy)

Constructs a simple radial gradient with the center at (cx, cy) and the specified radius. The focal point lies at the center of the circle.

See also QGradient.setColorAt() and QGradient.setStops().

QRadialGradient.__init__ (self, float cx, float cy, float centerRadius, float fx, float fy, float focalRadius)

Constructs an extended radial gradient with the given center, centerRadius, focalPoint, and focalRadius.

This function was introduced in Qt 4.8.

QRadialGradient.__init__ (self, float cx, float cy, float radius)

Constructs an extended radial gradient with the given center (cx, cy), center radius, centerRadius, focal point, (fx, fy), and focal radius focalRadius.

This function was introduced in Qt 4.8.

QRadialGradient.__init__ (self, QRadialGradient)

QPointF QRadialGradient.center (self)

Returns the center of this radial gradient in logical coordinates.

See also setCenter() and QGradient.stops().

float QRadialGradient.centerRadius (self)

Returns the center radius of this radial gradient in logical coordinates.

This function was introduced in Qt 4.8.

See also setCenterRadius() and QGradient.stops().

QPointF QRadialGradient.focalPoint (self)

Returns the focal point of this radial gradient in logical coordinates.

See also setFocalPoint() and QGradient.stops().

float QRadialGradient.focalRadius (self)

Returns the focal radius of this radial gradient in logical coordinates.

This function was introduced in Qt 4.8.

See also setFocalRadius() and QGradient.stops().

float QRadialGradient.radius (self)

Returns the radius of this radial gradient in logical coordinates.

Equivalent to centerRadius()

See also setRadius() and QGradient.stops().

QRadialGradient.setCenter (self, QPointF center)

Sets the center of this radial gradient in logical coordinates to center.

This function was introduced in Qt 4.2.

See also center().

QRadialGradient.setCenter (self, float x, float y)

This is an overloaded function.

Sets the center of this radial gradient in logical coordinates to (x, y).

This function was introduced in Qt 4.2.

See also center().

QRadialGradient.setCenterRadius (self, float radius)

Sets the center radius of this radial gradient in logical coordinates to radius

This function was introduced in Qt 4.8.

See also centerRadius().

QRadialGradient.setFocalPoint (self, QPointF focalPoint)

Sets the focal point of this radial gradient in logical coordinates to focalPoint.

This function was introduced in Qt 4.2.

See also focalPoint().

QRadialGradient.setFocalPoint (self, float x, float y)

This is an overloaded function.

Sets the focal point of this radial gradient in logical coordinates to (x, y).

This function was introduced in Qt 4.2.

See also focalPoint().

QRadialGradient.setFocalRadius (self, float radius)

Sets the focal radius of this radial gradient in logical coordinates to radius

This function was introduced in Qt 4.8.

See also focalRadius().

QRadialGradient.setRadius (self, float radius)

Sets the radius of this radial gradient in logical coordinates to radius

Equivalent to setCenterRadius()

This function was introduced in Qt 4.2.

See also radius().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qradiobutton.html0000644000076500000240000002224212536324512021063 0ustar philstaff00000000000000 QRadioButton Class Reference
  Home · All Classes · Modules

QRadioButton Class Reference
[QtGui module]

The QRadioButton widget provides a radio button with a text label. More...

Inherits QAbstractButton.

Methods


Detailed Description

The QRadioButton widget provides a radio button with a text label.

A QRadioButton is an option button that can be switched on (checked) or off (unchecked). Radio buttons typically present the user with a "one of many" choice. In a group of radio buttons only one radio button at a time can be checked; if the user selects another button, the previously selected button is switched off.

Radio buttons are autoExclusive by default. If auto-exclusive is enabled, radio buttons that belong to the same parent widget behave as if they were part of the same exclusive button group. If you need multiple exclusive button groups for radio buttons that belong to the same parent widget, put them into a QButtonGroup.

Whenever a button is switched on or off it emits the toggled() signal. Connect to this signal if you want to trigger an action each time the button changes state. Use isChecked() to see if a particular button is selected.

Just like QPushButton, a radio button displays text, and optionally a small icon. The icon is set with setIcon(). The text can be set in the constructor or with setText(). A shortcut key can be specified by preceding the preferred character with an ampersand in the text. For example:

 QRadioButton *button = new QRadioButton("Search from the &cursor", this);

In this example the shortcut is Alt+c. See the QShortcut documentation for details (to display an actual ampersand, use '&&').

Important inherited members: text(), setText(), text(), setDown(), isDown(), autoRepeat(), group(), setAutoRepeat(), toggle(), pressed(), released(), clicked(), and toggled().

Screenshot of a Plastique radio button A radio button shown in the Plastique widget style.
Screenshot of a Windows XP radio button A radio button shown in the Windows XP widget style.
Screenshot of a Macintosh radio button A radio button shown in the Macintosh widget style.

Method Documentation

QRadioButton.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a radio button with the given parent, but with no text or pixmap.

The parent argument is passed on to the QAbstractButton constructor.

QRadioButton.__init__ (self, QString text, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a radio button with the given parent and a text string.

The parent argument is passed on to the QAbstractButton constructor.

bool QRadioButton.event (self, QEvent e)

Reimplemented from QObject.event().

bool QRadioButton.hitButton (self, QPoint)

Reimplemented from QAbstractButton.hitButton().

QRadioButton.initStyleOption (self, QStyleOptionButton button)

Initialize option with the values from this QRadioButton. This method is useful for subclasses when they need a QStyleOptionButton, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QSize QRadioButton.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

This function was introduced in Qt 4.8.

QRadioButton.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QRadioButton.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QSize QRadioButton.sizeHint (self)

Reimplemented from QWidget.sizeHint().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qrawfont.html0000644000076500000240000006014612536324512020216 0ustar philstaff00000000000000 QRawFont Class Reference
  Home · All Classes · Modules

QRawFont Class Reference
[QtGui module]

The QRawFont class provides access to a single physical instance of a font. More...

Types

Methods

Static Methods

  • QRawFont fromFont (QFont font, QFontDatabase.WritingSystem writingSystem = QFontDatabase.Any)

Special Methods

  • bool __eq__ (self, QRawFont other)
  • bool __ne__ (self, QRawFont other)

Detailed Description

The QRawFont class provides access to a single physical instance of a font.

Note: QRawFont is a low level class. For most purposes QFont is a more appropriate class.

Most commonly, when presenting text in a user interface, the exact fonts used to render the characters is to some extent unknown. This can be the case for several reasons: For instance, the actual, physical fonts present on the target system could be unexpected to the developers, or the text could contain user selected styles, sizes or writing systems that are not supported by font chosen in the code.

Therefore, Qt's QFont class really represents a query for fonts. When text is interpreted, Qt will do its best to match the text to the query, but depending on the support, different fonts can be used behind the scenes.

For most use cases, this is both expected and necessary, as it minimizes the possibility of text in the user interface being undisplayable. In some cases, however, more direct control over the process might be useful. It is for these use cases the QRawFont class exists.

A QRawFont object represents a single, physical instance of a given font in a given pixel size. I.e. in the typical case it represents a set of TrueType or OpenType font tables and uses a user specified pixel size to convert metrics into logical pixel units. It can be used in combination with the QGlyphRun class to draw specific glyph indexes at specific positions, and also have accessors to some relevant data in the physical font.

QRawFont only provides support for the main font technologies: GDI and DirectWrite on Windows platforms, FreeType on Symbian and Linux platforms and CoreText on Mac OS X. For other font back-ends, the APIs will be disabled.

QRawFont can be constructed in a number of ways:

  • It can be constructed by calling QTextLayout.glyphs() or QTextFragment.glyphs(). The returned QGlyphs objects will contain QRawFont objects which represent the actual fonts used to render each portion of the text.
  • It can be constructed by passing a QFont object to QRawFont.fromFont(). The function will return a QRawFont object representing the font that will be selected as response to the QFont query and the selected writing system.
  • It can be constructed by passing a file name or QByteArray directly to the QRawFont constructor, or by calling loadFromFile() or loadFromData(). In this case, the font will not be registered in QFontDatabase, and it will not be available as part of regular font selection.

QRawFont is considered local to the thread in which it is constructed (either using a constructor, or by calling loadFromData() or loadFromFile()). The QRawFont cannot be moved to a different thread, but will have to be recreated in the thread in question.

Note: For the requirement of caching glyph indexes and font selections for static text to avoid reshaping and relayouting in the inner loop of an application, a better choice is the QStaticText class, since it optimizes the memory cost of the cache and also provides the possibility of paint engine specific caches for an additional speed-up.


Type Documentation

QRawFont.AntialiasingType

This enum represents the different ways a glyph can be rasterized in the function alphaMapForGlyph().

Constant Value Description
QRawFont.PixelAntialiasing 0 Will rasterize by measuring the coverage of the shape on whole pixels. The returned image contains the alpha values of each pixel based on the coverage of the glyph shape.
QRawFont.SubPixelAntialiasing 1 Will rasterize by measuring the coverage of each subpixel, returning a separate alpha value for each of the red, green and blue components of each pixel.

Method Documentation

QRawFont.__init__ (self)

Constructs an invalid QRawFont.

QRawFont.__init__ (self, QString fileName, float pixelSize, QFont.HintingPreference hintingPreference = QFont.PreferDefaultHinting)

Constructs a QRawFont representing the font contained in the file referenced by fileName for the size (in pixels) given by pixelSize, and using the hinting preference specified by hintingPreference.

Note: The referenced file must contain a TrueType or OpenType font.

QRawFont.__init__ (self, QByteArray fontData, float pixelSize, QFont.HintingPreference hintingPreference = QFont.PreferDefaultHinting)

Constructs a QRawFont representing the font contained in the supplied fontData for the size (in pixels) given by pixelSize, and using the hinting preference specified by hintingPreference.

Note: The data must contain a TrueType or OpenType font.

QRawFont.__init__ (self, QRawFont other)

Creates a QRawFont which is a copy of other.

list-of-QPointF QRawFont.advancesForGlyphIndexes (self, list-of-int glyphIndexes)

Returns the QRawFont's advances for each of the glyphIndexes in pixel units. The advances give the distance from the position of a given glyph to where the next glyph should be drawn to make it appear as if the two glyphs are unspaced.

See also QTextLine.horizontalAdvance() and QFontMetricsF.width().

QImage QRawFont.alphaMapForGlyph (self, int glyphIndex, AntialiasingType antialiasingType = QRawFont.SubPixelAntialiasing, QTransform transform = QTransform())

This function returns a rasterized image of the glyph at the given glyphIndex in the underlying font, using the transform specified. If the QRawFont is not valid, this function will return an invalid QImage.

If antialiasingType is set to QRawFont.SubPixelAntialiasing, then the resulting image will be in QImage.Format_RGB32 and the RGB values of each pixel will represent the subpixel opacities of the pixel in the rasterization of the glyph. Otherwise, the image will be in the format of QImage.Format_Indexed8 and each pixel will contain the opacity of the pixel in the rasterization.

See also pathForGlyph() and QPainter.drawGlyphRun().

float QRawFont.ascent (self)

Returns the ascent of this QRawFont in pixel units.

See also QFontMetricsF.ascent().

float QRawFont.averageCharWidth (self)

Returns the average character width of this QRawFont in pixel units.

See also QFontMetricsF.averageCharWidth().

float QRawFont.descent (self)

Returns the descent of this QRawFont in pixel units.

See also QFontMetricsF.descent().

QString QRawFont.familyName (self)

Returns the family name of this QRawFont.

QByteArray QRawFont.fontTable (self, str tagName)

Retrieves the sfnt table named tagName from the underlying physical font, or an empty byte array if no such table was found. The returned font table's byte order is Big Endian, like the sfnt format specifies. The tagName must be four characters long and should be formatted in the default endianness of the current platform.

QRawFont QRawFont.fromFont (QFont font, QFontDatabase.WritingSystem writingSystem = QFontDatabase.Any)

Fetches the physical representation based on a font query. The physical font returned is the font that will be preferred by Qt in order to display text in the selected writingSystem.

list-of-int QRawFont.glyphIndexesForString (self, QString text)

Converts the string of unicode points given by text to glyph indexes using the CMAP table in the underlying font, and returns a vector containing the result.

Note that, in cases where there are other tables in the font that affect the shaping of the text, the returned glyph indexes will not correctly represent the rendering of the text. To get the correctly shaped text, you can use QTextLayout to lay out and shape the text, then call QTextLayout.glyphs() to get the set of glyph index list and QRawFont pairs.

See also advancesForGlyphIndexes(), glyphIndexesForChars(), QGlyphRun, QTextLayout.glyphRuns(), and QTextFragment.glyphRuns().

QFont.HintingPreference QRawFont.hintingPreference (self)

Returns the hinting preference used to construct this QRawFont.

See also QFont.hintingPreference().

bool QRawFont.isValid (self)

Returns true if the QRawFont is valid and false otherwise.

float QRawFont.leading (self)

Returns the leading of this QRawFont in pixel units.

See also QFontMetricsF.leading().

QRawFont.loadFromData (self, QByteArray fontData, float pixelSize, QFont.HintingPreference hintingPreference)

Replaces the current QRawFont with the font contained in the supplied fontData for the size (in pixels) given by pixelSize, and using the hinting preference specified by hintingPreference.

The fontData must contain a TrueType or OpenType font.

See also loadFromFile().

QRawFont.loadFromFile (self, QString fileName, float pixelSize, QFont.HintingPreference hintingPreference)

Replaces the current QRawFont with the contents of the file referenced by fileName for the size (in pixels) given by pixelSize, and using the hinting preference specified by hintingPreference.

The file must reference a TrueType or OpenType font.

See also loadFromData().

float QRawFont.maxCharWidth (self)

Returns the width of the widest character in the font.

See also QFontMetricsF.maxWidth().

QPainterPath QRawFont.pathForGlyph (self, int glyphIndex)

This function returns the shape of the glyph at a given glyphIndex in the underlying font if the QRawFont is valid. Otherwise, it returns an empty QPainterPath.

The returned glyph will always be unhinted.

See also alphaMapForGlyph() and QPainterPath.addText().

float QRawFont.pixelSize (self)

Returns the pixel size set for this QRawFont. The pixel size affects how glyphs are rasterized, the size of glyphs returned by pathForGlyph(), and is used to convert internal metrics from design units to logical pixel units.

See also setPixelSize().

QRawFont.setPixelSize (self, float pixelSize)

Sets the pixel size with which this font should be rendered to pixelSize.

See also pixelSize().

QFont.Style QRawFont.style (self)

Returns the style of this QRawFont.

See also QFont.style().

QString QRawFont.styleName (self)

Returns the style name of this QRawFont.

See also QFont.styleName().

list-of-QFontDatabase.WritingSystem QRawFont.supportedWritingSystems (self)

Returns a list of writing systems supported by the font according to designer supplied information in the font file. Please note that this does not guarantee support for a specific unicode point in the font. You can use the supportsCharacter() to check support for a single, specific character.

Note: The list is determined based on the unicode ranges and codepage ranges set in the font's OS/2 table and requires such a table to be present in the underlying font file.

See also supportsCharacter().

bool QRawFont.supportsCharacter (self, int ucs4)

Returns true if the font has a glyph that corresponds to the given character.

See also supportedWritingSystems().

bool QRawFont.supportsCharacter (self, QChar character)

This is an overloaded function.

Returns true if the font has a glyph that corresponds to the UCS-4 encoded character ucs4.

See also supportedWritingSystems().

float QRawFont.unitsPerEm (self)

Returns the number of design units define the width and height of the em square for this QRawFont. This value is used together with the pixel size when converting design metrics to pixel units, as the internal metrics are specified in design units and the pixel size gives the size of 1 em in pixels.

See also pixelSize() and setPixelSize().

int QRawFont.weight (self)

Returns the weight of this QRawFont.

See also QFont.weight().

float QRawFont.xHeight (self)

Returns the xHeight of this QRawFont in pixel units.

See also QFontMetricsF.xHeight().

bool QRawFont.__eq__ (self, QRawFont other)

bool QRawFont.__ne__ (self, QRawFont other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qreadlocker.html0000644000076500000240000001276612536324473020664 0ustar philstaff00000000000000 QReadLocker Class Reference
  Home · All Classes · Modules

QReadLocker Class Reference
[QtCore module]

The QReadLocker class is a convenience class that simplifies locking and unlocking read-write locks for read access. More...

Methods

Special Methods

  • object __enter__ (self)
  • __exit__ (self, object type, object value, object traceback)

Detailed Description

The QReadLocker class is a convenience class that simplifies locking and unlocking read-write locks for read access.

The purpose of QReadLocker (and QWriteLocker) is to simplify QReadWriteLock locking and unlocking. Locking and unlocking statements or in exception handling code is error-prone and difficult to debug. QReadLocker can be used in such situations to ensure that the state of the lock is always well-defined.

Here's an example that uses QReadLocker to lock and unlock a read-write lock for reading:

 QReadWriteLock lock;

 QByteArray readData()
 {
     QReadLocker locker(&lock);
     ...
     return data;
 }

It is equivalent to the following code:

 QReadWriteLock lock;

 QByteArray readData()
 {
     lock.lockForRead();
     ...
     lock.unlock();
     return data;
 }

The QMutexLocker documentation shows examples where the use of a locker object greatly simplifies programming.


Method Documentation

QReadLocker.__init__ (self, QReadWriteLock areadWriteLock)

Constructs a QReadLocker and locks lock for reading. The lock will be unlocked when the QReadLocker is destroyed. If lock is zero, QReadLocker does nothing.

See also QReadWriteLock.lockForRead().

QReadWriteLock QReadLocker.readWriteLock (self)

Returns a pointer to the read-write lock that was passed to the constructor.

QReadLocker.relock (self)

Relocks an unlocked lock.

See also unlock().

QReadLocker.unlock (self)

Unlocks the lock associated with this locker.

See also QReadWriteLock.unlock().

object QReadLocker.__enter__ (self)

QReadLocker.__exit__ (self, object type, object value, object traceback)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qreadwritelock.html0000644000076500000240000002752312536324473021405 0ustar philstaff00000000000000 QReadWriteLock Class Reference
  Home · All Classes · Modules

QReadWriteLock Class Reference
[
QtCore module]

The QReadWriteLock class provides read-write locking. More...

Types

Methods


Detailed Description

The QReadWriteLock class provides read-write locking.

A read-write lock is a synchronization tool for protecting resources that can be accessed for reading and writing. This type of lock is useful if you want to allow multiple threads to have simultaneous read-only access, but as soon as one thread wants to write to the resource, all other threads must be blocked until the writing is complete.

In many cases, QReadWriteLock is a direct competitor to QMutex. QReadWriteLock is a good choice if there are many concurrent reads and writing occurs infrequently.

Example:

 QReadWriteLock lock;

 void ReaderThread.run()
 {
     ...
     lock.lockForRead();
     read_file();
     lock.unlock();
     ...
 }

 void WriterThread.run()
 {
     ...
     lock.lockForWrite();
     write_file();
     lock.unlock();
     ...
 }

To ensure that writers aren't blocked forever by readers, readers attempting to obtain a lock will not succeed if there is a blocked writer waiting for access, even if the lock is currently only accessed by other readers. Also, if the lock is accessed by a writer and another writer comes in, that writer will have priority over any readers that might also be waiting.

Like QMutex, a QReadWriteLock can be recursively locked by the same thread when constructed in QReadWriteLock.RecursionMode. In such cases, unlock() must be called the same number of times lockForWrite() or lockForRead() was called. Note that the lock type cannot be changed when trying to lock recursively, i.e. it is not possible to lock for reading in a thread that already has locked for writing (and vice versa).


Type Documentation

QReadWriteLock.RecursionMode

Constant Value Description
QReadWriteLock.Recursive 1 In this mode, a thread can lock the same QReadWriteLock multiple times and the mutex won't be unlocked until a corresponding number of unlock() calls have been made.
QReadWriteLock.NonRecursive 0 In this mode, a thread may only lock a QReadWriteLock once.

This enum was introduced or modified in Qt 4.4.

See also QReadWriteLock().


Method Documentation

QReadWriteLock.__init__ (self)

Constructs a QReadWriteLock object in NonRecursive mode.

See also lockForRead() and lockForWrite().

QReadWriteLock.__init__ (self, RecursionMode recursionMode)

Constructs a QReadWriteLock object in the given recursionMode.

This function was introduced in Qt 4.4.

See also lockForRead(), lockForWrite(), and RecursionMode.

QReadWriteLock.lockForRead (self)

Locks the lock for reading. This function will block the current thread if any thread (including the current) has locked for writing.

See also unlock(), lockForWrite(), and tryLockForRead().

QReadWriteLock.lockForWrite (self)

Locks the lock for writing. This function will block the current thread if another thread has locked for reading or writing.

See also unlock(), lockForRead(), and tryLockForWrite().

bool QReadWriteLock.tryLockForRead (self)

Attempts to lock for reading. If the lock was obtained, this function returns true, otherwise it returns false instead of waiting for the lock to become available, i.e. it does not block.

The lock attempt will fail if another thread has locked for writing.

If the lock was obtained, the lock must be unlocked with unlock() before another thread can successfully lock it.

See also unlock() and lockForRead().

bool QReadWriteLock.tryLockForRead (self, int timeout)

This is an overloaded function.

Attempts to lock for reading. This function returns true if the lock was obtained; otherwise it returns false. If another thread has locked for writing, this function will wait for at most timeout milliseconds for the lock to become available.

Note: Passing a negative number as the timeout is equivalent to calling lockForRead(), i.e. this function will wait forever until lock can be locked for reading when timeout is negative.

If the lock was obtained, the lock must be unlocked with unlock() before another thread can successfully lock it.

See also unlock() and lockForRead().

bool QReadWriteLock.tryLockForWrite (self)

Attempts to lock for writing. If the lock was obtained, this function returns true; otherwise, it returns false immediately.

The lock attempt will fail if another thread has locked for reading or writing.

If the lock was obtained, the lock must be unlocked with unlock() before another thread can successfully lock it.

See also unlock() and lockForWrite().

bool QReadWriteLock.tryLockForWrite (self, int timeout)

This is an overloaded function.

Attempts to lock for writing. This function returns true if the lock was obtained; otherwise it returns false. If another thread has locked for reading or writing, this function will wait for at most timeout milliseconds for the lock to become available.

Note: Passing a negative number as the timeout is equivalent to calling lockForWrite(), i.e. this function will wait forever until lock can be locked for writing when timeout is negative.

If the lock was obtained, the lock must be unlocked with unlock() before another thread can successfully lock it.

See also unlock() and lockForWrite().

QReadWriteLock.unlock (self)

Unlocks the lock.

Attempting to unlock a lock that is not locked is an error, and will result in program termination.

See also lockForRead(), lockForWrite(), tryLockForRead(), and tryLockForWrite().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qrect.html0000644000076500000240000013545012536324474017503 0ustar philstaff00000000000000 QRect Class Reference
  Home · All Classes · Modules

QRect Class Reference
[QtCore module]

The QRect class defines a rectangle in the plane using integer precision. More...

Methods

Special Methods


Detailed Description

This class can be pickled.

The QRect class defines a rectangle in the plane using integer precision.

A rectangle is normally expressed as an upper-left corner and a size. The size (width and height) of a QRect is always equivalent to the mathematical rectangle that forms the basis for its rendering.

A QRect can be constructed with a set of left, top, width and height integers, or from a QPoint and a QSize. The following code creates two identical rectangles.

 QRect r1(100, 200, 11, 16);
 QRect r2(QPoint(100, 200), QSize(11, 16));

There is a third constructor that creates a QRect using the top-left and bottom-right coordinates, but we recommend that you avoid using it. The rationale is that for historical reasons the values returned by the bottom() and right() functions deviate from the true bottom-right corner of the rectangle.

The QRect class provides a collection of functions that return the various rectangle coordinates, and enable manipulation of these. QRect also provide functions to move the rectangle relative to the various coordinates. In addition there is a moveTo() function that moves the rectangle, leaving its top left corner at the given coordinates. Alternatively, the translate() function moves the rectangle the given offset relative to the current position, and the translated() function returns a translated copy of this rectangle.

The size() function returns the rectange's dimensions as a QSize. The dimensions can also be retrieved separately using the width() and height() functions. To manipulate the dimensions use the setSize(), setWidth() or setHeight() functions. Alternatively, the size can be changed by applying either of the functions setting the rectangle coordinates, for example, setBottom() or setRight().

The contains() function tells whether a given point is inside the rectangle or not, and the intersects() function returns true if this rectangle intersects with a given rectangle. The QRect class also provides the intersected() function which returns the intersection rectangle, and the united() function which returns the rectangle that encloses the given rectangle and this:

intersected() united()

The isEmpty() function returns true if left() > right() or top() > bottom(). Note that an empty rectangle is not valid: The isValid() function returns true if left() <= right() and top() <= bottom(). A null rectangle (isNull() == true) on the other hand, has both width and height set to 0.

Note that due to the way QRect and QRectF are defined, an empty QRect is defined in essentially the same way as QRectF.

Finally, QRect objects can be streamed as well as compared.

Rendering

When using an anti-aliased painter, the boundary line of a QRect will be rendered symmetrically on both sides of the mathematical rectangle's boundary line. But when using an aliased painter (the default) other rules apply.

Then, when rendering with a one pixel wide pen the QRect's boundary line will be rendered to the right and below the mathematical rectangle's boundary line.

When rendering with a two pixels wide pen the boundary line will be split in the middle by the mathematical rectangle. This will be the case whenever the pen is set to an even number of pixels, while rendering with a pen with an odd number of pixels, the spare pixel will be rendered to the right and below the mathematical rectangle as in the one pixel case.

Logical representation One pixel wide pen
Two pixel wide pen Three pixel wide pen

Coordinates

The QRect class provides a collection of functions that return the various rectangle coordinates, and enable manipulation of these. QRect also provide functions to move the rectangle relative to the various coordinates.

For example the left(), setLeft() and moveLeft() functions as an example: left() returns the x-coordinate of the rectangle's left edge, setLeft() sets the left edge of the rectangle to the given x coordinate (it may change the width, but will never change the rectangle's right edge) and moveLeft() moves the entire rectangle horizontally, leaving the rectangle's left edge at the given x coordinate and its size unchanged.

Note that for historical reasons the values returned by the bottom() and right() functions deviate from the true bottom-right corner of the rectangle: The right() function returns left() + width() - 1 and the bottom() function returns top() + height() - 1. The same is the case for the point returned by the bottomRight() convenience function. In addition, the x and y coordinate of the topRight() and bottomLeft() functions, respectively, contain the same deviation from the true right and bottom edges.

We recommend that you use x() + width() and y() + height() to find the true bottom-right corner, and avoid right() and bottom(). Another solution is to use QRectF: The QRectF class defines a rectangle in the plane using floating point accuracy for coordinates, and the QRectF.right() and QRectF.bottom() functions do return the right and bottom coordinates.

It is also possible to add offsets to this rectangle's coordinates using the adjust() function, as well as retrieve a new rectangle based on adjustments of the original one using the adjusted() function. If either of the width and height is negative, use the normalized() function to retrieve a rectangle where the corners are swapped.

In addition, QRect provides the getCoords() function which extracts the position of the rectangle's top-left and bottom-right corner, and the getRect() function which extracts the rectangle's top-left corner, width and height. Use the setCoords() and setRect() function to manipulate the rectangle's coordinates and dimensions in one go.


Method Documentation

QRect.__init__ (self)

Constructs a null rectangle.

See also isNull().

QRect.__init__ (self, int aleft, int atop, int awidth, int aheight)

Constructs a rectangle with the given topLeft and bottomRight corners.

See also setTopLeft() and setBottomRight().

QRect.__init__ (self, QPoint atopLeft, QPoint abottomRight)

Constructs a rectangle with the given topLeft corner and the given size.

See also setTopLeft() and setSize().

QRect.__init__ (self, QPoint atopLeft, QSize asize)

Constructs a rectangle with (x, y) as its top-left corner and the given width and height.

See also setRect().

QRect.__init__ (self, QRect)

QRect.adjust (self, int dx1, int dy1, int dx2, int dy2)

Adds dx1, dy1, dx2 and dy2 respectively to the existing coordinates of the rectangle.

See also adjusted() and setRect().

QRect QRect.adjusted (self, int xp1, int yp1, int xp2, int yp2)

Returns a new rectangle with dx1, dy1, dx2 and dy2 added respectively to the existing coordinates of this rectangle.

See also adjust().

int QRect.bottom (self)

Returns the y-coordinate of the rectangle's bottom edge.

Note that for historical reasons this function returns top() + height() - 1; use y() + height() to retrieve the true y-coordinate.

See also setBottom(), bottomLeft(), and bottomRight().

QPoint QRect.bottomLeft (self)

Returns the position of the rectangle's bottom-left corner. Note that for historical reasons this function returns QPoint(left(), top() + height() - 1).

See also setBottomLeft(), bottom(), and left().

QPoint QRect.bottomRight (self)

Returns the position of the rectangle's bottom-right corner.

Note that for historical reasons this function returns QPoint(left() + width() -1, top() + height() - 1).

See also setBottomRight(), bottom(), and right().

QPoint QRect.center (self)

Returns the center point of the rectangle.

See also moveCenter().

bool QRect.contains (self, QPoint point, bool proper = False)

Returns true if the given point is inside or on the edge of the rectangle, otherwise returns false. If proper is true, this function only returns true if the given point is inside the rectangle (i.e., not on the edge).

See also intersects().

bool QRect.contains (self, QRect rectangle, bool proper = False)

This is an overloaded function.

Returns true if the point (x, y) is inside or on the edge of the rectangle, otherwise returns false. If proper is true, this function only returns true if the point is entirely inside the rectangle(not on the edge).

bool QRect.contains (self, int ax, int ay, bool aproper)

This is an overloaded function.

Returns true if the point (x, y) is inside this rectangle, otherwise returns false.

bool QRect.contains (self, int ax, int ay)

This is an overloaded function.

Returns true if the given rectangle is inside this rectangle. otherwise returns false. If proper is true, this function only returns true if the rectangle is entirely inside this rectangle (not on the edge).

(int xp1, int yp1, int xp2, int yp2) QRect.getCoords (self)

Extracts the position of the rectangle's top-left corner to *x1 and *y1, and the position of the bottom-right corner to *x2 and *y2.

See also setCoords() and getRect().

(int ax, int ay, int aw, int ah) QRect.getRect (self)

Extracts the position of the rectangle's top-left corner to *x and *y, and its dimensions to *width and *height.

See also setRect() and getCoords().

int QRect.height (self)

Returns the height of the rectangle.

See also setHeight(), width(), and size().

QRect QRect.intersect (self, QRect r)

QRect QRect.intersected (self, QRect other)

Returns the intersection of this rectangle and the given rectangle. Note that r.intersected(s) is equivalent to r & s.

This function was introduced in Qt 4.2.

See also intersects(), united(), and operator&=().

bool QRect.intersects (self, QRect r)

Returns true if this rectangle intersects with the given rectangle (i.e., there is at least one pixel that is within both rectangles), otherwise returns false.

The intersection rectangle can be retrieved using the intersected() function.

See also contains().

bool QRect.isEmpty (self)

Returns true if the rectangle is empty, otherwise returns false.

An empty rectangle has a left() > right() or top() > bottom(). An empty rectangle is not valid (i.e., isEmpty() == !isValid()).

Use the normalized() function to retrieve a rectangle where the corners are swapped.

See also isNull(), isValid(), and normalized().

bool QRect.isNull (self)

Returns true if the rectangle is a null rectangle, otherwise returns false.

A null rectangle has both the width and the height set to 0 (i.e., right() == left() - 1 and bottom() == top() - 1). A null rectangle is also empty, and hence is not valid.

See also isEmpty() and isValid().

bool QRect.isValid (self)

Returns true if the rectangle is valid, otherwise returns false.

A valid rectangle has a left() < right() and top() < bottom(). Note that non-trivial operations like intersections are not defined for invalid rectangles. A valid rectangle is not empty (i.e., isValid() == !isEmpty()).

See also isNull(), isEmpty(), and normalized().

int QRect.left (self)

Returns the x-coordinate of the rectangle's left edge. Equivalent to x().

See also setLeft(), topLeft(), and bottomLeft().

QRect.moveBottom (self, int pos)

Moves the rectangle vertically, leaving the rectangle's bottom edge at the given y coordinate. The rectangle's size is unchanged.

See also bottom(), setBottom(), and moveTop().

QRect.moveBottomLeft (self, QPoint p)

Moves the rectangle, leaving the bottom-left corner at the given position. The rectangle's size is unchanged.

See also setBottomLeft(), moveBottom(), and moveLeft().

QRect.moveBottomRight (self, QPoint p)

Moves the rectangle, leaving the bottom-right corner at the given position. The rectangle's size is unchanged.

See also setBottomRight(), moveRight(), and moveBottom().

QRect.moveCenter (self, QPoint p)

Moves the rectangle, leaving the center point at the given position. The rectangle's size is unchanged.

See also center().

QRect.moveLeft (self, int pos)

Moves the rectangle horizontally, leaving the rectangle's left edge at the given x coordinate. The rectangle's size is unchanged.

See also left(), setLeft(), and moveRight().

QRect.moveRight (self, int pos)

Moves the rectangle horizontally, leaving the rectangle's right edge at the given x coordinate. The rectangle's size is unchanged.

See also right(), setRight(), and moveLeft().

QRect.moveTo (self, int ax, int ay)

Moves the rectangle, leaving the top-left corner at the given position (x, y). The rectangle's size is unchanged.

See also translate() and moveTopLeft().

QRect.moveTo (self, QPoint p)

Moves the rectangle, leaving the top-left corner at the given position.

QRect.moveTop (self, int pos)

Moves the rectangle vertically, leaving the rectangle's top edge at the given y coordinate. The rectangle's size is unchanged.

See also top(), setTop(), and moveBottom().

QRect.moveTopLeft (self, QPoint p)

Moves the rectangle, leaving the top-left corner at the given position. The rectangle's size is unchanged.

See also setTopLeft(), moveTop(), and moveLeft().

QRect.moveTopRight (self, QPoint p)

Moves the rectangle, leaving the top-right corner at the given position. The rectangle's size is unchanged.

See also setTopRight(), moveTop(), and moveRight().

QRect QRect.normalized (self)

Returns a normalized rectangle; i.e., a rectangle that has a non-negative width and height.

If width() < 0 the function swaps the left and right corners, and it swaps the top and bottom corners if height() < 0.

See also isValid() and isEmpty().

int QRect.right (self)

Returns the x-coordinate of the rectangle's right edge.

Note that for historical reasons this function returns left() + width() - 1; use x() + width() to retrieve the true x-coordinate.

See also setRight(), topRight(), and bottomRight().

QRect.setBottom (self, int pos)

Sets the bottom edge of the rectangle to the given y coordinate. May change the height, but will never change the top edge of the rectangle.

See also bottom() and moveBottom().

QRect.setBottomLeft (self, QPoint p)

Set the bottom-left corner of the rectangle to the given position. May change the size, but will never change the top-right corner of the rectangle.

See also bottomLeft() and moveBottomLeft().

QRect.setBottomRight (self, QPoint p)

Set the bottom-right corner of the rectangle to the given position. May change the size, but will never change the top-left corner of the rectangle.

See also bottomRight() and moveBottomRight().

QRect.setCoords (self, int xp1, int yp1, int xp2, int yp2)

Sets the coordinates of the rectangle's top-left corner to (x1, y1), and the coordinates of its bottom-right corner to (x2, y2).

See also coords(), getCoords(), and setRect().

QRect.setHeight (self, int h)

Sets the height of the rectangle to the given height. The bottom edge is changed, but not the top one.

See also height() and setSize().

QRect.setLeft (self, int pos)

Sets the left edge of the rectangle to the given x coordinate. May change the width, but will never change the right edge of the rectangle.

Equivalent to setX().

See also left() and moveLeft().

QRect.setRect (self, int ax, int ay, int aw, int ah)

Sets the coordinates of the rectangle's top-left corner to (x, y), and its size to the given width and height.

See also rect(), getRect(), and setCoords().

QRect.setRight (self, int pos)

Sets the right edge of the rectangle to the given x coordinate. May change the width, but will never change the left edge of the rectangle.

See also right() and moveRight().

QRect.setSize (self, QSize s)

Sets the size of the rectangle to the given size. The top-left corner is not moved.

See also size(), setWidth(), and setHeight().

QRect.setTop (self, int pos)

Sets the top edge of the rectangle to the given y coordinate. May change the height, but will never change the bottom edge of the rectangle.

Equivalent to setY().

See also top() and moveTop().

QRect.setTopLeft (self, QPoint p)

Set the top-left corner of the rectangle to the given position. May change the size, but will never change the bottom-right corner of the rectangle.

See also topLeft() and moveTopLeft().

QRect.setTopRight (self, QPoint p)

Set the top-right corner of the rectangle to the given position. May change the size, but will never change the bottom-left corner of the rectangle.

See also topRight() and moveTopRight().

QRect.setWidth (self, int w)

Sets the width of the rectangle to the given width. The right edge is changed, but not the left one.

See also width() and setSize().

QRect.setX (self, int ax)

Sets the left edge of the rectangle to the given x coordinate. May change the width, but will never change the right edge of the rectangle.

Equivalent to setLeft().

See also x(), setY(), and setTopLeft().

QRect.setY (self, int ay)

Sets the top edge of the rectangle to the given y coordinate. May change the height, but will never change the bottom edge of the rectangle.

Equivalent to setTop().

See also y(), setX(), and setTopLeft().

QSize QRect.size (self)

Returns the size of the rectangle.

See also setSize(), width(), and height().

int QRect.top (self)

Returns the y-coordinate of the rectangle's top edge. Equivalent to y().

See also setTop(), topLeft(), and topRight().

QPoint QRect.topLeft (self)

Returns the position of the rectangle's top-left corner.

See also setTopLeft(), top(), and left().

QPoint QRect.topRight (self)

Returns the position of the rectangle's top-right corner.

Note that for historical reasons this function returns QPoint(left() + width() -1, top()).

See also setTopRight(), top(), and right().

QRect.translate (self, int dx, int dy)

Moves the rectangle dx along the x axis and dy along the y axis, relative to the current position. Positive values move the rectangle to the right and down.

See also moveTopLeft(), moveTo(), and translated().

QRect.translate (self, QPoint p)

This is an overloaded function.

Moves the rectangle offset.x() along the x axis and offset.y() along the y axis, relative to the current position.

QRect QRect.translated (self, int dx, int dy)

Returns a copy of the rectangle that is translated dx along the x axis and dy along the y axis, relative to the current position. Positive values move the rectangle to the right and down.

See also translate().

QRect QRect.translated (self, QPoint p)

This is an overloaded function.

Returns a copy of the rectangle that is translated offset.x() along the x axis and offset.y() along the y axis, relative to the current position.

QRect QRect.unite (self, QRect r)

QRect QRect.united (self, QRect r)

Returns the bounding rectangle of this rectangle and the given rectangle.

This function was introduced in Qt 4.2.

See also intersected().

int QRect.width (self)

Returns the width of the rectangle.

See also setWidth(), height(), and size().

int QRect.x (self)

Returns the x-coordinate of the rectangle's left edge. Equivalent to left().

See also setX(), y(), and topLeft().

int QRect.y (self)

Returns the y-coordinate of the rectangle's top edge. Equivalent to top().

See also setY(), x(), and topLeft().

QRect QRect.__and__ (self, QRect r)

int QRect.__bool__ (self)

int QRect.__contains__ (self, QPoint p)

int QRect.__contains__ (self, QRect r)

bool QRect.__eq__ (self, QRect r2)

QRect QRect.__iand__ (self, QRect r)

QRect QRect.__ior__ (self, QRect r)

bool QRect.__ne__ (self, QRect r2)

QRect QRect.__or__ (self, QRect r)

str QRect.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qrectf.html0000644000076500000240000013123112536324474017642 0ustar philstaff00000000000000 QRectF Class Reference
  Home · All Classes · Modules

QRectF Class Reference
[
QtCore module]

The QRectF class defines a rectangle in the plane using floating point precision. More...

Methods

Special Methods


Detailed Description

This class can be pickled.

The QRectF class defines a rectangle in the plane using floating point precision.

A rectangle is normally expressed as an upper-left corner and a size. The size (width and height) of a QRectF is always equivalent to the mathematical rectangle that forms the basis for its rendering.

A QRectF can be constructed with a set of left, top, width and height integers, or from a QPoint and a QSize. The following code creates two identical rectangles.

 QRectF r1(100, 200, 11, 16);
 QRectF r2(QPoint(100, 200), QSize(11, 16));

There is also a third constructor creating a QRectF from a QRect, and a corresponding toRect() function that returns a QRect object based on the values of this rectangle (note that the coordinates in the returned rectangle are rounded to the nearest integer).

The QRectF class provides a collection of functions that return the various rectangle coordinates, and enable manipulation of these. QRectF also provide functions to move the rectangle relative to the various coordinates. In addition there is a moveTo() function that moves the rectangle, leaving its top left corner at the given coordinates. Alternatively, the translate() function moves the rectangle the given offset relative to the current position, and the translated() function returns a translated copy of this rectangle.

The size() function returns the rectange's dimensions as a QSize. The dimensions can also be retrieved separately using the width() and height() functions. To manipulate the dimensions use the setSize(), setWidth() or setHeight() functions. Alternatively, the size can be changed by applying either of the functions setting the rectangle coordinates, for example, setBottom() or setRight().

The contains() function tells whether a given point is inside the rectangle or not, and the intersects() function returns true if this rectangle intersects with a given rectangle (otherwise false). The QRectF class also provides the intersected() function which returns the intersection rectangle, and the united() function which returns the rectangle that encloses the given rectangle and this:

intersected() united()

The isEmpty() function returns true if the rectangle's width or height is less than, or equal to, 0. Note that an empty rectangle is not valid: The isValid() function returns true if both width and height is larger than 0. A null rectangle (isNull() == true) on the other hand, has both width and height set to 0.

Note that due to the way QRect and QRectF are defined, an empty QRectF is defined in essentially the same way as QRect.

Finally, QRectF objects can be streamed as well as compared.

Rendering

When using an anti-aliased painter, the boundary line of a QRectF will be rendered symmetrically on both sides of the mathematical rectangle's boundary line. But when using an aliased painter (the default) other rules apply.

Then, when rendering with a one pixel wide pen the QRectF's boundary line will be rendered to the right and below the mathematical rectangle's boundary line.

When rendering with a two pixels wide pen the boundary line will be split in the middle by the mathematical rectangle. This will be the case whenever the pen is set to an even number of pixels, while rendering with a pen with an odd number of pixels, the spare pixel will be rendered to the right and below the mathematical rectangle as in the one pixel case.

Logical representation One pixel wide pen
Two pixel wide pen Three pixel wide pen

Coordinates

The QRectF class provides a collection of functions that return the various rectangle coordinates, and enable manipulation of these. QRectF also provide functions to move the rectangle relative to the various coordinates.

For example: the bottom(), setBottom() and moveBottom() functions: bottom() returns the y-coordinate of the rectangle's bottom edge, setBottom() sets the bottom edge of the rectangle to the given y coordinate (it may change the height, but will never change the rectangle's top edge) and moveBottom() moves the entire rectangle vertically, leaving the rectangle's bottom edge at the given y coordinate and its size unchanged.

It is also possible to add offsets to this rectangle's coordinates using the adjust() function, as well as retrieve a new rectangle based on adjustments of the original one using the adjusted() function. If either of the width and height is negative, use the normalized() function to retrieve a rectangle where the corners are swapped.

In addition, QRectF provides the getCoords() function which extracts the position of the rectangle's top-left and bottom-right corner, and the getRect() function which extracts the rectangle's top-left corner, width and height. Use the setCoords() and setRect() function to manipulate the rectangle's coordinates and dimensions in one go.


Method Documentation

QRectF.__init__ (self)

Constructs a null rectangle.

See also isNull().

QRectF.__init__ (self, QPointF atopLeft, QSizeF asize)

Constructs a rectangle with the given topLeft corner and the given size.

See also setTopLeft() and setSize().

QRectF.__init__ (self, QPointF atopLeft, QPointF abottomRight)

Constructs a rectangle with the given topLeft and bottomRight corners.

This function was introduced in Qt 4.3.

See also setTopLeft() and setBottomRight().

QRectF.__init__ (self, float aleft, float atop, float awidth, float aheight)

Constructs a rectangle with (x, y) as its top-left corner and the given width and height.

See also setRect().

QRectF.__init__ (self, QRect r)

Constructs a QRectF rectangle from the given QRect rectangle.

See also toRect().

QRectF.__init__ (self, QRectF)

QRectF.adjust (self, float xp1, float yp1, float xp2, float yp2)

Adds dx1, dy1, dx2 and dy2 respectively to the existing coordinates of the rectangle.

See also adjusted() and setRect().

QRectF QRectF.adjusted (self, float xp1, float yp1, float xp2, float yp2)

Returns a new rectangle with dx1, dy1, dx2 and dy2 added respectively to the existing coordinates of this rectangle.

See also adjust().

float QRectF.bottom (self)

Returns the y-coordinate of the rectangle's bottom edge.

See also setBottom(), bottomLeft(), and bottomRight().

QPointF QRectF.bottomLeft (self)

Returns the position of the rectangle's bottom-left corner.

See also setBottomLeft(), bottom(), and left().

QPointF QRectF.bottomRight (self)

Returns the position of the rectangle's bottom-right corner.

See also setBottomRight(), bottom(), and right().

QPointF QRectF.center (self)

Returns the center point of the rectangle.

See also moveCenter().

bool QRectF.contains (self, QPointF p)

Returns true if the given point is inside or on the edge of the rectangle; otherwise returns false.

See also intersects().

bool QRectF.contains (self, QRectF r)

This is an overloaded function.

Returns true if the point (x, y) is inside or on the edge of the rectangle; otherwise returns false.

bool QRectF.contains (self, float ax, float ay)

This is an overloaded function.

Returns true if the given rectangle is inside this rectangle; otherwise returns false.

(float xp1, float yp1, float xp2, float yp2) QRectF.getCoords (self)

Extracts the position of the rectangle's top-left corner to *x1 and *y1, and the position of the bottom-right corner to *x2 and *y2.

See also setCoords() and getRect().

(float ax, float ay, float aaw, float aah) QRectF.getRect (self)

Extracts the position of the rectangle's top-left corner to *x and *y, and its dimensions to *width and *height.

See also setRect() and getCoords().

float QRectF.height (self)

Returns the height of the rectangle.

See also setHeight(), width(), and size().

QRectF QRectF.intersect (self, QRectF r)

QRectF QRectF.intersected (self, QRectF r)

Returns the intersection of this rectangle and the given rectangle. Note that r.intersected(s) is equivalent to r & s.

This function was introduced in Qt 4.2.

See also intersects(), united(), and operator&=().

bool QRectF.intersects (self, QRectF r)

Returns true if this rectangle intersects with the given rectangle (i.e. there is a non-empty area of overlap between them), otherwise returns false.

The intersection rectangle can be retrieved using the intersected() function.

See also contains().

bool QRectF.isEmpty (self)

Returns true if the rectangle is empty, otherwise returns false.

An empty rectangle has width() <= 0 or height() <= 0. An empty rectangle is not valid (i.e., isEmpty() == !isValid()).

Use the normalized() function to retrieve a rectangle where the corners are swapped.

See also isNull(), isValid(), and normalized().

bool QRectF.isNull (self)

Returns true if the rectangle is a null rectangle, otherwise returns false.

A null rectangle has both the width and the height set to 0. A null rectangle is also empty, and hence not valid.

See also isEmpty() and isValid().

bool QRectF.isValid (self)

Returns true if the rectangle is valid, otherwise returns false.

A valid rectangle has a width() > 0 and height() > 0. Note that non-trivial operations like intersections are not defined for invalid rectangles. A valid rectangle is not empty (i.e., isValid() == !isEmpty()).

See also isNull(), isEmpty(), and normalized().

float QRectF.left (self)

Returns the x-coordinate of the rectangle's left edge. Equivalent to x().

See also setLeft(), topLeft(), and bottomLeft().

QRectF.moveBottom (self, float pos)

Moves the rectangle vertically, leaving the rectangle's bottom edge at the given y coordinate. The rectangle's size is unchanged.

See also bottom(), setBottom(), and moveTop().

QRectF.moveBottomLeft (self, QPointF p)

Moves the rectangle, leaving the bottom-left corner at the given position. The rectangle's size is unchanged.

See also setBottomLeft(), moveBottom(), and moveLeft().

QRectF.moveBottomRight (self, QPointF p)

Moves the rectangle, leaving the bottom-right corner at the given position. The rectangle's size is unchanged.

See also setBottomRight(), moveBottom(), and moveRight().

QRectF.moveCenter (self, QPointF p)

Moves the rectangle, leaving the center point at the given position. The rectangle's size is unchanged.

See also center().

QRectF.moveLeft (self, float pos)

Moves the rectangle horizontally, leaving the rectangle's left edge at the given x coordinate. The rectangle's size is unchanged.

See also left(), setLeft(), and moveRight().

QRectF.moveRight (self, float pos)

Moves the rectangle horizontally, leaving the rectangle's right edge at the given x coordinate. The rectangle's size is unchanged.

See also right(), setRight(), and moveLeft().

QRectF.moveTo (self, float ax, float ay)

Moves the rectangle, leaving the top-left corner at the given position (x, y). The rectangle's size is unchanged.

See also translate() and moveTopLeft().

QRectF.moveTo (self, QPointF p)

This is an overloaded function.

Moves the rectangle, leaving the top-left corner at the given position.

QRectF.moveTop (self, float pos)

Moves the rectangle vertically, leaving the rectangle's top line at the given y coordinate. The rectangle's size is unchanged.

See also top(), setTop(), and moveBottom().

QRectF.moveTopLeft (self, QPointF p)

Moves the rectangle, leaving the top-left corner at the given position. The rectangle's size is unchanged.

See also setTopLeft(), moveTop(), and moveLeft().

QRectF.moveTopRight (self, QPointF p)

Moves the rectangle, leaving the top-right corner at the given position. The rectangle's size is unchanged.

See also setTopRight(), moveTop(), and moveRight().

QRectF QRectF.normalized (self)

Returns a normalized rectangle; i.e., a rectangle that has a non-negative width and height.

If width() < 0 the function swaps the left and right corners, and it swaps the top and bottom corners if height() < 0.

See also isValid() and isEmpty().

float QRectF.right (self)

Returns the x-coordinate of the rectangle's right edge.

See also setRight(), topRight(), and bottomRight().

QRectF.setBottom (self, float pos)

Sets the bottom edge of the rectangle to the given y coordinate. May change the height, but will never change the top edge of the rectangle.

See also bottom() and moveBottom().

QRectF.setBottomLeft (self, QPointF p)

Set the bottom-left corner of the rectangle to the given position. May change the size, but will never change the top-right corner of the rectangle.

See also bottomLeft() and moveBottomLeft().

QRectF.setBottomRight (self, QPointF p)

Set the bottom-right corner of the rectangle to the given position. May change the size, but will never change the top-left corner of the rectangle.

See also bottomRight() and moveBottomRight().

QRectF.setCoords (self, float xp1, float yp1, float xp2, float yp2)

Sets the coordinates of the rectangle's top-left corner to (x1, y1), and the coordinates of its bottom-right corner to (x2, y2).

See also getCoords() and setRect().

QRectF.setHeight (self, float ah)

Sets the height of the rectangle to the given height. The bottom edge is changed, but not the top one.

See also height() and setSize().

QRectF.setLeft (self, float pos)

Sets the left edge of the rectangle to the given x coordinate. May change the width, but will never change the right edge of the rectangle.

Equivalent to setX().

See also left() and moveLeft().

QRectF.setRect (self, float ax, float ay, float aaw, float aah)

Sets the coordinates of the rectangle's top-left corner to (x, y), and its size to the given width and height.

See also getRect() and setCoords().

QRectF.setRight (self, float pos)

Sets the right edge of the rectangle to the given x coordinate. May change the width, but will never change the left edge of the rectangle.

See also right() and moveRight().

QRectF.setSize (self, QSizeF s)

Sets the size of the rectangle to the given size. The top-left corner is not moved.

See also size(), setWidth(), and setHeight().

QRectF.setTop (self, float pos)

Sets the top edge of the rectangle to the given y coordinate. May change the height, but will never change the bottom edge of the rectangle.

Equivalent to setY().

See also top() and moveTop().

QRectF.setTopLeft (self, QPointF p)

Set the top-left corner of the rectangle to the given position. May change the size, but will never change the bottom-right corner of the rectangle.

See also topLeft() and moveTopLeft().

QRectF.setTopRight (self, QPointF p)

Set the top-right corner of the rectangle to the given position. May change the size, but will never change the bottom-left corner of the rectangle.

See also topRight() and moveTopRight().

QRectF.setWidth (self, float aw)

Sets the width of the rectangle to the given width. The right edge is changed, but not the left one.

See also width() and setSize().

QRectF.setX (self, float pos)

Sets the left edge of the rectangle to the given x coordinate. May change the width, but will never change the right edge of the rectangle.

Equivalent to setLeft().

See also x(), setY(), and setTopLeft().

QRectF.setY (self, float pos)

Sets the top edge of the rectangle to the given y coordinate. May change the height, but will never change the bottom edge of the rectangle.

Equivalent to setTop().

See also y(), setX(), and setTopLeft().

QSizeF QRectF.size (self)

Returns the size of the rectangle.

See also setSize(), width(), and height().

QRect QRectF.toAlignedRect (self)

Returns a QRect based on the values of this rectangle that is the smallest possible integer rectangle that completely contains this rectangle.

This function was introduced in Qt 4.3.

See also toRect().

float QRectF.top (self)

Returns the y-coordinate of the rectangle's top edge. Equivalent to y().

See also setTop(), topLeft(), and topRight().

QPointF QRectF.topLeft (self)

Returns the position of the rectangle's top-left corner.

See also setTopLeft(), top(), and left().

QPointF QRectF.topRight (self)

Returns the position of the rectangle's top-right corner.

See also setTopRight(), top(), and right().

QRect QRectF.toRect (self)

Returns a QRect based on the values of this rectangle. Note that the coordinates in the returned rectangle are rounded to the nearest integer.

See also QRectF() and toAlignedRect().

QRectF.translate (self, float dx, float dy)

Moves the rectangle dx along the x-axis and dy along the y-axis, relative to the current position. Positive values move the rectangle to the right and downwards.

See also moveTopLeft(), moveTo(), and translated().

QRectF.translate (self, QPointF p)

This is an overloaded function.

Moves the rectangle offset.x() along the x axis and offset.y() along the y axis, relative to the current position.

QRectF QRectF.translated (self, float dx, float dy)

Returns a copy of the rectangle that is translated dx along the x axis and dy along the y axis, relative to the current position. Positive values move the rectangle to the right and down.

See also translate().

QRectF QRectF.translated (self, QPointF p)

This is an overloaded function.

Returns a copy of the rectangle that is translated offset.x() along the x axis and offset.y() along the y axis, relative to the current position.

QRectF QRectF.unite (self, QRectF r)

QRectF QRectF.united (self, QRectF r)

Returns the bounding rectangle of this rectangle and the given rectangle.

This function was introduced in Qt 4.2.

See also intersected().

float QRectF.width (self)

Returns the width of the rectangle.

See also setWidth(), height(), and size().

float QRectF.x (self)

Returns the x-coordinate of the rectangle's left edge. Equivalent to left().

See also setX(), y(), and topLeft().

float QRectF.y (self)

Returns the y-coordinate of the rectangle's top edge. Equivalent to top().

See also setY(), x(), and topLeft().

QRectF QRectF.__and__ (self, QRectF r)

int QRectF.__bool__ (self)

int QRectF.__contains__ (self, QPointF p)

int QRectF.__contains__ (self, QRectF r)

bool QRectF.__eq__ (self, QRectF r2)

QRectF QRectF.__iand__ (self, QRectF r)

QRectF QRectF.__ior__ (self, QRectF r)

bool QRectF.__ne__ (self, QRectF r2)

QRectF QRectF.__or__ (self, QRectF r)

str QRectF.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qregexp.html0000644000076500000240000020676312536324474020046 0ustar philstaff00000000000000 QRegExp Class Reference
  Home · All Classes · Modules

QRegExp Class Reference
[
QtCore module]

The QRegExp class provides pattern matching using regular expressions. More...

Types

  • enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch }
  • enum PatternSyntax { RegExp, RegExp2, Wildcard, FixedString, WildcardUnix, W3CXmlSchema11 }

Methods

Static Methods

Special Methods


Detailed Description

The QRegExp class provides pattern matching using regular expressions.

A regular expression, or "regexp", is a pattern for matching substrings in a text. This is useful in many contexts, e.g.,

Validation A regexp can test whether a substring meets some criteria, e.g. is an integer or contains no whitespace.
Searching A regexp provides more powerful pattern matching than simple substring matching, e.g., match one of the words mail, letter or correspondence, but none of the words email, mailman, mailer, letterbox, etc.
Search and Replace A regexp can replace all occurrences of a substring with a different substring, e.g., replace all occurrences of & with &amp; except where the & is already followed by an amp;.
String Splitting A regexp can be used to identify where a string should be split apart, e.g. splitting tab-delimited strings.

A brief introduction to regexps is presented, a description of Qt's regexp language, some examples, and the function documentation itself. QRegExp is modeled on Perl's regexp language. It fully supports Unicode. QRegExp can also be used in a simpler, wildcard mode that is similar to the functionality found in command shells. The syntax rules used by QRegExp can be changed with setPatternSyntax(). In particular, the pattern syntax can be set to QRegExp.FixedString, which means the pattern to be matched is interpreted as a plain string, i.e., special characters (e.g., backslash) are not escaped.

A good text on regexps is Mastering Regular Expressions (Third Edition) by Jeffrey E. F. Friedl, ISBN 0-596-52812-4.

Introduction

Regexps are built up from expressions, quantifiers, and assertions. The simplest expression is a character, e.g. x or 5. An expression can also be a set of characters enclosed in square brackets. [ABCD] will match an A or a B or a C or a D. We can write this same expression as [A-D], and an experession to match any captital letter in the English alphabet is written as [A-Z].

A quantifier specifies the number of occurrences of an expression that must be matched. x{1,1} means match one and only one x. x{1,5} means match a sequence of x characters that contains at least one x but no more than five.

Note that in general regexps cannot be used to check for balanced brackets or tags. For example, a regexp can be written to match an opening html <b> and its closing </b>, if the <b> tags are not nested, but if the <b> tags are nested, that same regexp will match an opening <b> tag with the wrong closing </b>. For the fragment <b>bold <b>bolder</b></b>, the first <b> would be matched with the first </b>, which is not correct. However, it is possible to write a regexp that will match nested brackets or tags correctly, but only if the number of nesting levels is fixed and known. If the number of nesting levels is not fixed and known, it is impossible to write a regexp that will not fail.

Suppose we want a regexp to match integers in the range 0 to 99. At least one digit is required, so we start with the expression [0-9]{1,1}, which matches a single digit exactly once. This regexp matches integers in the range 0 to 9. To match integers up to 99, increase the maximum number of occurrences to 2, so the regexp becomes [0-9]{1,2}. This regexp satisfies the original requirement to match integers from 0 to 99, but it will also match integers that occur in the middle of strings. If we want the matched integer to be the whole string, we must use the anchor assertions, ^ (caret) and $ (dollar). When ^ is the first character in a regexp, it means the regexp must match from the beginning of the string. When $ is the last character of the regexp, it means the regexp must match to the end of the string. The regexp becomes ^[0-9]{1,2}$. Note that assertions, e.g. ^ and $, do not match characters but locations in the string.

If you have seen regexps described elsewhere, they may have looked different from the ones shown here. This is because some sets of characters and some quantifiers are so common that they have been given special symbols to represent them. [0-9] can be replaced with the symbol \d. The quantifier to match exactly one occurrence, {1,1}, can be replaced with the expression itself, i.e. x{1,1} is the same as x. So our 0 to 99 matcher could be written as ^\d{1,2}$. It can also be written ^\d\d{0,1}$, i.e. From the start of the string, match a digit, followed immediately by 0 or 1 digits. In practice, it would be written as ^\d\d?$. The ? is shorthand for the quantifier {0,1}, i.e. 0 or 1 occurrences. ? makes an expression optional. The regexp ^\d\d?$ means From the beginning of the string, match one digit, followed immediately by 0 or 1 more digit, followed immediately by end of string.

To write a regexp that matches one of the words 'mail' or 'letter' or 'correspondence' but does not match words that contain these words, e.g., 'email', 'mailman', 'mailer', and 'letterbox', start with a regexp that matches 'mail'. Expressed fully, the regexp is m{1,1}a{1,1}i{1,1}l{1,1}, but because a character expression is automatically quantified by {1,1}, we can simplify the regexp to mail, i.e., an 'm' followed by an 'a' followed by an 'i' followed by an 'l'. Now we can use the vertical bar |, which means or, to include the other two words, so our regexp for matching any of the three words becomes mail|letter|correspondence. Match 'mail' or 'letter' or 'correspondence'. While this regexp will match one of the three words we want to match, it will also match words we don't want to match, e.g., 'email'. To prevent the regexp from matching unwanted words, we must tell it to begin and end the match at word boundaries. First we enclose our regexp in parentheses, (mail|letter|correspondence). Parentheses group expressions together, and they identify a part of the regexp that we wish to capture. Enclosing the expression in parentheses allows us to use it as a component in more complex regexps. It also allows us to examine which of the three words was actually matched. To force the match to begin and end on word boundaries, we enclose the regexp in \b word boundary assertions: \b(mail|letter|correspondence)\b. Now the regexp means: Match a word boundary, followed by the regexp in parentheses, followed by a word boundary. The \b assertion matches a position in the regexp, not a character. A word boundary is any non-word character, e.g., a space, newline, or the beginning or ending of a string.

If we want to replace ampersand characters with the HTML entity &amp;, the regexp to match is simply &. But this regexp will also match ampersands that have already been converted to HTML entities. We want to replace only ampersands that are not already followed by amp;. For this, we need the negative lookahead assertion, (?!__). The regexp can then be written as &(?!amp;), i.e. Match an ampersand that is not followed by amp;.

If we want to count all the occurrences of 'Eric' and 'Eirik' in a string, two valid solutions are \b(Eric|Eirik)\b and \bEi?ri[ck]\b. The word boundary assertion '\b' is required to avoid matching words that contain either name, e.g. 'Ericsson'. Note that the second regexp matches more spellings than we want: 'Eric', 'Erik', 'Eiric' and 'Eirik'.

Some of the examples discussed above are implemented in the code examples section.

Characters and Abbreviations for Sets of Characters

Element Meaning
c A character represents itself unless it has a special regexp meaning. e.g. c matches the character c.
\c A character that follows a backslash matches the character itself, except as specified below. e.g., To match a literal caret at the beginning of a string, write \^.
\a Matches the ASCII bell (BEL, 0x07).
\f Matches the ASCII form feed (FF, 0x0C).
\n Matches the ASCII line feed (LF, 0x0A, Unix newline).
\r Matches the ASCII carriage return (CR, 0x0D).
\t Matches the ASCII horizontal tab (HT, 0x09).
\v Matches the ASCII vertical tab (VT, 0x0B).
\xhhhh Matches the Unicode character corresponding to the hexadecimal number hhhh (between 0x0000 and 0xFFFF).
\0ooo (i.e., \zero ooo) matches the ASCII/Latin1 character for the octal number ooo (between 0 and 0377).
. (dot) Matches any character (including newline).
\d Matches a digit (QChar.isDigit()).
\D Matches a non-digit.
\s Matches a whitespace character (QChar.isSpace()).
\S Matches a non-whitespace character.
\w Matches a word character (QChar.isLetterOrNumber(), QChar.isMark(), or '_').
\W Matches a non-word character.
\n The n-th backreference, e.g. \1, \2, etc.

Note: The C++ compiler transforms backslashes in strings. To include a \ in a regexp, enter it twice, i.e. \\. To match the backslash character itself, enter it four times, i.e. \\\\.

Sets of Characters

Square brackets mean match any character contained in the square brackets. The character set abbreviations described above can appear in a character set in square brackets. Except for the character set abbreviations and the following two exceptions, characters do not have special meanings in square brackets.

^ The caret negates the character set if it occurs as the first character (i.e. immediately after the opening square bracket). [abc] matches 'a' or 'b' or 'c', but [^abc] matches anything but 'a' or 'b' or 'c'.
- The dash indicates a range of characters. [W-Z] matches 'W' or 'X' or 'Y' or 'Z'.

Using the predefined character set abbreviations is more portable than using character ranges across platforms and languages. For example, [0-9] matches a digit in Western alphabets but \d matches a digit in any alphabet.

Note: In other regexp documentation, sets of characters are often called "character classes".

Quantifiers

By default, an expression is automatically quantified by {1,1}, i.e. it should occur exactly once. In the following list, E stands for expression. An expression is a character, or an abbreviation for a set of characters, or a set of characters in square brackets, or an expression in parentheses.

E? Matches zero or one occurrences of E. This quantifier means The previous expression is optional, because it will match whether or not the expression is found. E? is the same as E{0,1}. e.g., dents? matches 'dent' or 'dents'.
E+ Matches one or more occurrences of E. E+ is the same as E{1,}. e.g., 0+ matches '0', '00', '000', etc.
E* Matches zero or more occurrences of E. It is the same as E{0,}. The * quantifier is often used in error where + should be used. For example, if \s*$ is used in an expression to match strings that end in whitespace, it will match every string because \s*$ means Match zero or more whitespaces followed by end of string. The correct regexp to match strings that have at least one trailing whitespace character is \s+$.
E{n} Matches exactly n occurrences of E. E{n} is the same as repeating E n times. For example, x{5} is the same as xxxxx. It is also the same as E{n,n}, e.g. x{5,5}.
E{n,} Matches at least n occurrences of E.
E{,m} Matches at most m occurrences of E. E{,m} is the same as E{0,m}.
E{n,m} Matches at least n and at most m occurrences of E.

To apply a quantifier to more than just the preceding character, use parentheses to group characters together in an expression. For example, tag+ matches a 't' followed by an 'a' followed by at least one 'g', whereas (tag)+ matches at least one occurrence of 'tag'.

Note: Quantifiers are normally "greedy". They always match as much text as they can. For example, 0+ matches the first zero it finds and all the consecutive zeros after the first zero. Applied to '20005', it matches'20005'. Quantifiers can be made non-greedy, see setMinimal().

Capturing Text

Parentheses allow us to group elements together so that we can quantify and capture them. For example if we have the expression mail|letter|correspondence that matches a string we know that one of the words matched but not which one. Using parentheses allows us to "capture" whatever is matched within their bounds, so if we used (mail|letter|correspondence) and matched this regexp against the string "I sent you some email" we can use the cap() or capturedTexts() functions to extract the matched characters, in this case 'mail'.

We can use captured text within the regexp itself. To refer to the captured text we use backreferences which are indexed from 1, the same as for cap(). For example we could search for duplicate words in a string using \b(\w+)\W+\1\b which means match a word boundary followed by one or more word characters followed by one or more non-word characters followed by the same text as the first parenthesized expression followed by a word boundary.

If we want to use parentheses purely for grouping and not for capturing we can use the non-capturing syntax, e.g. (?:green|blue). Non-capturing parentheses begin '(?:' and end ')'. In this example we match either 'green' or 'blue' but we do not capture the match so we only know whether or not we matched but not which color we actually found. Using non-capturing parentheses is more efficient than using capturing parentheses since the regexp engine has to do less book-keeping.

Both capturing and non-capturing parentheses may be nested.

For historical reasons, quantifiers (e.g. *) that apply to capturing parentheses are more "greedy" than other quantifiers. For example, a*(a*) will match "aaa" with cap(1) == "aaa". This behavior is different from what other regexp engines do (notably, Perl). To obtain a more intuitive capturing behavior, specify QRegExp.RegExp2 to the QRegExp constructor or call setPatternSyntax(QRegExp.RegExp2).

When the number of matches cannot be determined in advance, a common idiom is to use cap() in a loop. For example:

 QRegExp rx("(\\d+)");
 QString str = "Offsets: 12 14 99 231 7";
 QStringList list;
 int pos = 0;

 while ((pos = rx.indexIn(str, pos)) != -1) {
     list << rx.cap(1);
     pos += rx.matchedLength();
 }
 // list: ["12", "14", "99", "231", "7"]

Assertions

Assertions make some statement about the text at the point where they occur in the regexp but they do not match any characters. In the following list E stands for any expression.

^ The caret signifies the beginning of the string. If you wish to match a literal ^ you must escape it by writing \\^. For example, ^#include will only match strings which begin with the characters '#include'. (When the caret is the first character of a character set it has a special meaning, see Sets of Characters.)
$ The dollar signifies the end of the string. For example \d\s*$ will match strings which end with a digit optionally followed by whitespace. If you wish to match a literal $ you must escape it by writing \\$.
\b A word boundary. For example the regexp \bOK\b means match immediately after a word boundary (e.g. start of string or whitespace) the letter 'O' then the letter 'K' immediately before another word boundary (e.g. end of string or whitespace). But note that the assertion does not actually match any whitespace so if we write (\bOK\b) and we have a match it will only contain 'OK' even if the string is "It's OK now".
\B A non-word boundary. This assertion is true wherever \b is false. For example if we searched for \Bon\B in "Left on" the match would fail (space and end of string aren't non-word boundaries), but it would match in "tonne".
(?=E) Positive lookahead. This assertion is true if the expression matches at this point in the regexp. For example, const(?=\s+char) matches 'const' whenever it is followed by 'char', as in 'static const char *'. (Compare with const\s+char, which matches 'static const char *'.)
(?!E) Negative lookahead. This assertion is true if the expression does not match at this point in the regexp. For example, const(?!\s+char) matches 'const' except when it is followed by 'char'.

Wildcard Matching

Most command shells such as bash or cmd.exe support "file globbing", the ability to identify a group of files by using wildcards. The setPatternSyntax() function is used to switch between regexp and wildcard mode. Wildcard matching is much simpler than full regexps and has only four features:

c Any character represents itself apart from those mentioned below. Thus c matches the character c.
? Matches any single character. It is the same as . in full regexps.
* Matches zero or more of any characters. It is the same as .* in full regexps.
[...] Sets of characters can be represented in square brackets, similar to full regexps. Within the character class, like outside, backslash has no special meaning.

In the mode Wildcard, the wildcard characters cannot be escaped. In the mode WildcardUnix, the character '\' escapes the wildcard.

For example if we are in wildcard mode and have strings which contain filenames we could identify HTML files with *.html. This will match zero or more characters followed by a dot followed by 'h', 't', 'm' and 'l'.

To test a string against a wildcard expression, use exactMatch(). For example:

 QRegExp rx("*.txt");
 rx.setPatternSyntax(QRegExp.Wildcard);
 rx.exactMatch("README.txt");        // returns true
 rx.exactMatch("welcome.txt.bak");   // returns false

Notes for Perl Users

Most of the character class abbreviations supported by Perl are supported by QRegExp, see characters and abbreviations for sets of characters.

In QRegExp, apart from within character classes, ^ always signifies the start of the string, so carets must always be escaped unless used for that purpose. In Perl the meaning of caret varies automagically depending on where it occurs so escaping it is rarely necessary. The same applies to $ which in QRegExp always signifies the end of the string.

QRegExp's quantifiers are the same as Perl's greedy quantifiers (but see the note above). Non-greedy matching cannot be applied to individual quantifiers, but can be applied to all the quantifiers in the pattern. For example, to match the Perl regexp ro+?m requires:

 QRegExp rx("ro+m");
 rx.setMinimal(true);

The equivalent of Perl's /i option is setCaseSensitivity(Qt.CaseInsensitive).

Perl's /g option can be emulated using a loop.

In QRegExp . matches any character, therefore all QRegExp regexps have the equivalent of Perl's /s option. QRegExp does not have an equivalent to Perl's /m option, but this can be emulated in various ways for example by splitting the input into lines or by looping with a regexp that searches for newlines.

Because QRegExp is string oriented, there are no \A, \Z, or \z assertions. The \G assertion is not supported but can be emulated in a loop.

Perl's $& is cap(0) or capturedTexts()[0]. There are no QRegExp equivalents for $`, $' or $+. Perl's capturing variables, $1, $2, ... correspond to cap(1) or capturedTexts()[1], cap(2) or capturedTexts()[2], etc.

To substitute a pattern use QString.replace().

Perl's extended /x syntax is not supported, nor are directives, e.g. (?i), or regexp comments, e.g. (?#comment). On the other hand, C++'s rules for literal strings can be used to achieve the same:

 QRegExp mark("\\b"      // word boundary
               "[Mm]ark" // the word we want to match
             );

Both zero-width positive and zero-width negative lookahead assertions (?=pattern) and (?!pattern) are supported with the same syntax as Perl. Perl's lookbehind assertions, "independent" subexpressions and conditional expressions are not supported.

Non-capturing parentheses are also supported, with the same (?:pattern) syntax.

See QString.split() and QStringList.join() for equivalents to Perl's split and join functions.

Note: because C++ transforms \'s they must be written twice in code, e.g. \b must be written \\b.

Code Examples

 QRegExp rx("^\\d\\d?$");    // match integers 0 to 99
 rx.indexIn("123");          // returns -1 (no match)
 rx.indexIn("-6");           // returns -1 (no match)
 rx.indexIn("6");            // returns 0 (matched as position 0)

The third string matches '6'. This is a simple validation regexp for integers in the range 0 to 99.

 QRegExp rx("^\\S+$");       // match strings without whitespace
 rx.indexIn("Hello world");  // returns -1 (no match)
 rx.indexIn("This_is-OK");   // returns 0 (matched at position 0)

The second string matches 'This_is-OK'. We've used the character set abbreviation '\S' (non-whitespace) and the anchors to match strings which contain no whitespace.

In the following example we match strings containing 'mail' or 'letter' or 'correspondence' but only match whole words i.e. not 'email'

 QRegExp rx("\\b(mail|letter|correspondence)\\b");
 rx.indexIn("I sent you an email");     // returns -1 (no match)
 rx.indexIn("Please write the letter"); // returns 17

The second string matches "Please write the letter". The word 'letter' is also captured (because of the parentheses). We can see what text we've captured like this:

 QString captured = rx.cap(1); // captured == "letter"

This will capture the text from the first set of capturing parentheses (counting capturing left parentheses from left to right). The parentheses are counted from 1 since cap(0) is the whole matched regexp (equivalent to '&' in most regexp engines).

 QRegExp rx("&(?!amp;)");      // match ampersands but not &amp;
 QString line1 = "This & that";
 line1.replace(rx, "&amp;");
 // line1 == "This &amp; that"
 QString line2 = "His &amp; hers & theirs";
 line2.replace(rx, "&amp;");
 // line2 == "His &amp; hers &amp; theirs"

Here we've passed the QRegExp to QString's replace() function to replace the matched text with new text.

 QString str = "One Eric another Eirik, and an Ericsson. "
               "How many Eiriks, Eric?";
 QRegExp rx("\\b(Eric|Eirik)\\b"); // match Eric or Eirik
 int pos = 0;    // where we are in the string
 int count = 0;  // how many Eric and Eirik's we've counted
 while (pos >= 0) {
     pos = rx.indexIn(str, pos);
     if (pos >= 0) {
         ++pos;      // move along in str
         ++count;    // count our Eric or Eirik
     }
 }

We've used the indexIn() function to repeatedly match the regexp in the string. Note that instead of moving forward by one character at a time pos++ we could have written pos += rx.matchedLength() to skip over the already matched string. The count will equal 3, matching 'One Eric another Eirik, and an Ericsson. How many Eiriks, Eric?'; it doesn't match 'Ericsson' or 'Eiriks' because they are not bounded by non-word boundaries.

One common use of regexps is to split lines of delimited data into their component fields.

 str = "Nokia Corporation\tqt.nokia.com\tNorway";
 QString company, web, country;
 rx.setPattern("^([^\t]+)\t([^\t]+)\t([^\t]+)$");
 if (rx.indexIn(str) != -1) {
     company = rx.cap(1);
     web = rx.cap(2);
     country = rx.cap(3);
 }

In this example our input lines have the format company name, web address and country. Unfortunately the regexp is rather long and not very versatile -- the code will break if we add any more fields. A simpler and better solution is to look for the separator, '\t' in this case, and take the surrounding text. The QString.split() function can take a separator string or regexp as an argument and split a string accordingly.

 QStringList field = str.split("\t");

Here field[0] is the company, field[1] the web address and so on.

To imitate the matching of a shell we can use wildcard mode.

 QRegExp rx("*.html");
 rx.setPatternSyntax(QRegExp.Wildcard);
 rx.exactMatch("index.html");                // returns true
 rx.exactMatch("default.htm");               // returns false
 rx.exactMatch("readme.txt");                // returns false

Wildcard matching can be convenient because of its simplicity, but any wildcard regexp can be defined using full regexps, e.g. .*\.html$. Notice that we can't match both .html and .htm files with a wildcard unless we use *.htm* which will also match 'test.html.bak'. A full regexp gives us the precision we need, .*\.html?$.

QRegExp can match case insensitively using setCaseSensitivity(), and can use non-greedy matching, see setMinimal(). By default QRegExp uses full regexps but this can be changed with setWildcard(). Searching can be forward with indexIn() or backward with lastIndexIn(). Captured text can be accessed using capturedTexts() which returns a string list of all captured strings, or using cap() which returns the captured string for the given index. The pos() function takes a match index and returns the position in the string where the match was made (or -1 if there was no match).


Type Documentation

QRegExp.CaretMode

The CaretMode enum defines the different meanings of the caret (^) in a regular expression. The possible values are:

Constant Value Description
QRegExp.CaretAtZero 0 The caret corresponds to index 0 in the searched string.
QRegExp.CaretAtOffset 1 The caret corresponds to the start offset of the search.
QRegExp.CaretWontMatch 2 The caret never matches.

QRegExp.PatternSyntax

The syntax used to interpret the meaning of the pattern.

Constant Value Description
QRegExp.RegExp 0 A rich Perl-like pattern matching syntax. This is the default.
QRegExp.RegExp2 3 Like RegExp, but with greedy quantifiers. This will be the default in Qt 5. (Introduced in Qt 4.2.)
QRegExp.Wildcard 1 This provides a simple pattern matching syntax similar to that used by shells (command interpreters) for "file globbing". See Wildcard Matching.
QRegExp.WildcardUnix 4 This is similar to Wildcard but with the behavior of a Unix shell. The wildcard characters can be escaped with the character "\".
QRegExp.FixedString 2 The pattern is a fixed string. This is equivalent to using the RegExp pattern on a string in which all metacharacters are escaped using escape().
QRegExp.W3CXmlSchema11 5 The pattern is a regular expression as defined by the W3C XML Schema 1.1 specification.

See also setPatternSyntax().


Method Documentation

QRegExp.__init__ (self)

Constructs an empty regexp.

See also isValid() and errorString().

QRegExp.__init__ (self, QString pattern, Qt.CaseSensitivity cs = Qt.CaseSensitive, PatternSyntax syntax = QRegExp.RegExp)

Constructs a regular expression object for the given pattern string. The pattern must be given using wildcard notation if syntax is Wildcard; the default is RegExp. The pattern is case sensitive, unless cs is Qt.CaseInsensitive. Matching is greedy (maximal), but can be changed by calling setMinimal().

See also setPattern(), setCaseSensitivity(), and setPatternSyntax().

QRegExp.__init__ (self, QRegExp rx)

Constructs a regular expression as a copy of rx.

See also operator=().

QString QRegExp.cap (self, int nth = 0)

Returns the text captured by the nth subexpression. The entire match has index 0 and the parenthesized subexpressions have indexes starting from 1 (excluding non-capturing parentheses).

 QRegExp rxlen("(\\d+)(?:\\s*)(cm|inch)");
 int pos = rxlen.indexIn("Length: 189cm");
 if (pos > -1) {
     QString value = rxlen.cap(1); // "189"
     QString unit = rxlen.cap(2);  // "cm"
     // ...
 }

The order of elements matched by cap() is as follows. The first element, cap(0), is the entire matching string. Each subsequent element corresponds to the next capturing open left parentheses. Thus cap(1) is the text of the first capturing parentheses, cap(2) is the text of the second, and so on.

See also capturedTexts() and pos().

int QRegExp.captureCount (self)

Returns the number of captures contained in the regular expression.

This function was introduced in Qt 4.6.

QStringList QRegExp.capturedTexts (self)

Returns a list of the captured text strings.

The first string in the list is the entire matched string. Each subsequent list element contains a string that matched a (capturing) subexpression of the regexp.

For example:

 QRegExp rx("(\\d+)(\\s*)(cm|inch(es)?)");
 int pos = rx.indexIn("Length: 36 inches");
 QStringList list = rx.capturedTexts();
 // list is now ("36 inches", "36", " ", "inches", "es")

The above example also captures elements that may be present but which we have no interest in. This problem can be solved by using non-capturing parentheses:

 QRegExp rx("(\\d+)(?:\\s*)(cm|inch(?:es)?)");
 int pos = rx.indexIn("Length: 36 inches");
 QStringList list = rx.capturedTexts();
 // list is now ("36 inches", "36", "inches")

Note that if you want to iterate over the list, you should iterate over a copy, e.g.

 QStringList list = rx.capturedTexts();
 QStringList.iterator it = list.begin();
 while (it != list.end()) {
     myProcessing(*it);
     ++it;
 }

Some regexps can match an indeterminate number of times. For example if the input string is "Offsets: 12 14 99 231 7" and the regexp, rx, is (\d+)+, we would hope to get a list of all the numbers matched. However, after calling rx.indexIn(str), capturedTexts() will return the list ("12", "12"), i.e. the entire match was "12" and the first subexpression matched was "12". The correct approach is to use cap() in a loop.

The order of elements in the string list is as follows. The first element is the entire matching string. Each subsequent element corresponds to the next capturing open left parentheses. Thus capturedTexts()[1] is the text of the first capturing parentheses, capturedTexts()[2] is the text of the second and so on (corresponding to $1, $2, etc., in some other regexp languages).

See also cap() and pos().

Qt.CaseSensitivity QRegExp.caseSensitivity (self)

Returns Qt.CaseSensitive if the regexp is matched case sensitively; otherwise returns Qt.CaseInsensitive.

See also setCaseSensitivity(), patternSyntax(), pattern(), and isMinimal().

QString QRegExp.errorString (self)

Returns a text string that explains why a regexp pattern is invalid the case being; otherwise returns "no error occurred".

See also isValid().

QString QRegExp.escape (QString str)

Returns the string str with every regexp special character escaped with a backslash. The special characters are $, (,), *, +, ., ?, [, ,], ^, {, | and }.

Example:

 s1 = QRegExp.escape("bingo");   // s1 == "bingo"
 s2 = QRegExp.escape("f(x)");    // s2 == "f\\(x\\)"

This function is useful to construct regexp patterns dynamically:

 QRegExp rx("(" + QRegExp.escape(name) +
            "|" + QRegExp.escape(alias) + ")");

See also setPatternSyntax().

bool QRegExp.exactMatch (self, QString str)

Returns true if str is matched exactly by this regular expression; otherwise returns false. You can determine how much of the string was matched by calling matchedLength().

For a given regexp string R, exactMatch("R") is the equivalent of indexIn("^R$") since exactMatch() effectively encloses the regexp in the start of string and end of string anchors, except that it sets matchedLength() differently.

For example, if the regular expression is blue, then exactMatch() returns true only for input blue. For inputs bluebell, blutak and lightblue, exactMatch() returns false and matchedLength() will return 4, 3 and 0 respectively.

Although const, this function sets matchedLength(), capturedTexts(), and pos().

See also indexIn() and lastIndexIn().

int QRegExp.indexIn (self, QString str, int offset = 0, CaretMode caretMode = QRegExp.CaretAtZero)

Attempts to find a match in str from position offset (0 by default). If offset is -1, the search starts at the last character; if -2, at the next to last character; etc.

Returns the position of the first match, or -1 if there was no match.

The caretMode parameter can be used to instruct whether ^ should match at index 0 or at offset.

You might prefer to use QString.indexOf(), QString.contains(), or even QStringList.filter(). To replace matches use QString.replace().

Example:

 QString str = "offsets: 1.23 .50 71.00 6.00";
 QRegExp rx("\\d*\\.\\d+");    // primitive floating point matching
 int count = 0;
 int pos = 0;
 while ((pos = rx.indexIn(str, pos)) != -1) {
     ++count;
     pos += rx.matchedLength();
 }
 // pos will be 9, 14, 18 and finally 24; count will end up as 4

Although const, this function sets matchedLength(), capturedTexts() and pos().

If the QRegExp is a wildcard expression (see setPatternSyntax()) and want to test a string against the whole wildcard expression, use exactMatch() instead of this function.

See also lastIndexIn() and exactMatch().

bool QRegExp.isEmpty (self)

Returns true if the pattern string is empty; otherwise returns false.

If you call exactMatch() with an empty pattern on an empty string it will return true; otherwise it returns false since it operates over the whole string. If you call indexIn() with an empty pattern on any string it will return the start offset (0 by default) because the empty pattern matches the 'emptiness' at the start of the string. In this case the length of the match returned by matchedLength() will be 0.

See QString.isEmpty().

bool QRegExp.isMinimal (self)

Returns true if minimal (non-greedy) matching is enabled; otherwise returns false.

See also caseSensitivity() and setMinimal().

bool QRegExp.isValid (self)

Returns true if the regular expression is valid; otherwise returns false. An invalid regular expression never matches.

The pattern [a-z is an example of an invalid pattern, since it lacks a closing square bracket.

Note that the validity of a regexp may also depend on the setting of the wildcard flag, for example *.html is a valid wildcard regexp but an invalid full regexp.

See also errorString().

int QRegExp.lastIndexIn (self, QString str, int offset = -1, CaretMode caretMode = QRegExp.CaretAtZero)

Attempts to find a match backwards in str from position offset. If offset is -1 (the default), the search starts at the last character; if -2, at the next to last character; etc.

Returns the position of the first match, or -1 if there was no match.

The caretMode parameter can be used to instruct whether ^ should match at index 0 or at offset.

Although const, this function sets matchedLength(), capturedTexts() and pos().

Warning: Searching backwards is much slower than searching forwards.

See also indexIn() and exactMatch().

int QRegExp.matchedLength (self)

Returns the length of the last matched string, or -1 if there was no match.

See also exactMatch(), indexIn(), and lastIndexIn().

int QRegExp.numCaptures (self)

QString QRegExp.pattern (self)

Returns the pattern string of the regular expression. The pattern has either regular expression syntax or wildcard syntax, depending on patternSyntax().

See also setPattern(), patternSyntax(), and caseSensitivity().

PatternSyntax QRegExp.patternSyntax (self)

Returns the syntax used by the regular expression. The default is QRegExp.RegExp.

See also setPatternSyntax(), pattern(), and caseSensitivity().

int QRegExp.pos (self, int nth = 0)

Returns the position of the nth captured text in the searched string. If nth is 0 (the default), pos() returns the position of the whole match.

Example:

 QRegExp rx("/([a-z]+)/([a-z]+)");
 rx.indexIn("Output /dev/null");   // returns 7 (position of /dev/null)
 rx.pos(0);                        // returns 7 (position of /dev/null)
 rx.pos(1);                        // returns 8 (position of dev)
 rx.pos(2);                        // returns 12 (position of null)

For zero-length matches, pos() always returns -1. (For example, if cap(4) would return an empty string, pos(4) returns -1.) This is a feature of the implementation.

See also cap() and capturedTexts().

QRegExp.setCaseSensitivity (self, Qt.CaseSensitivity cs)

Sets case sensitive matching to cs.

If cs is Qt.CaseSensitive, \.txt$ matches readme.txt but not README.TXT.

See also caseSensitivity(), setPatternSyntax(), setPattern(), and setMinimal().

QRegExp.setMinimal (self, bool minimal)

Enables or disables minimal matching. If minimal is false, matching is greedy (maximal) which is the default.

For example, suppose we have the input string "We must be <b>bold</b>, very <b>bold</b>!" and the pattern <b>.*</b>. With the default greedy (maximal) matching, the match is "We must be <b>bold</b>, very <b>bold</b>!". But with minimal (non-greedy) matching, the first match is: "We must be <b>bold</b>, very <b>bold</b>!" and the second match is "We must be <b>bold</b>, very <b>bold</b>!". In practice we might use the pattern <b>[^<]*</b> instead, although this will still fail for nested tags.

See also minimal() and setCaseSensitivity().

QRegExp.setPattern (self, QString pattern)

Sets the pattern string to pattern. The case sensitivity, wildcard, and minimal matching options are not changed.

See also pattern(), setPatternSyntax(), and setCaseSensitivity().

QRegExp.setPatternSyntax (self, PatternSyntax syntax)

Sets the syntax mode for the regular expression. The default is QRegExp.RegExp.

Setting syntax to QRegExp.Wildcard enables simple shell-like wildcard matching. For example, r*.txt matches the string readme.txt in wildcard mode, but does not match readme.

Setting syntax to QRegExp.FixedString means that the pattern is interpreted as a plain string. Special characters (e.g., backslash) don't need to be escaped then.

See also patternSyntax(), setPattern(), setCaseSensitivity(), and escape().

QRegExp.swap (self, QRegExp other)

Swaps regular expression other with this regular expression. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

bool QRegExp.__eq__ (self, QRegExp rx)

bool QRegExp.__ne__ (self, QRegExp rx)

str QRegExp.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qregexpvalidator.html0000644000076500000240000002766312536324516021751 0ustar philstaff00000000000000 QRegExpValidator Class Reference
  Home · All Classes · Modules

QRegExpValidator Class Reference
[
QtGui module]

The QRegExpValidator class is used to check a string against a regular expression. More...

Inherits QValidator.

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, QRegExp rx, QObject parent = None)
  • QRegExp regExp (self)
  • setRegExp (self, QRegExp rx)
  • (QValidator.State, QString input, int pos) validate (self, QString input, int pos)
  • (QValidator.State, int pos) validate (self, QString input, int pos)

Detailed Description

The QRegExpValidator class is used to check a string against a regular expression.

QRegExpValidator uses a regular expression (regexp) to determine whether an input string is Acceptable, Intermediate, or Invalid. The regexp can either be supplied when the QRegExpValidator is constructed, or at a later time.

When QRegExpValidator determines whether a string is Acceptable or not, the regexp is treated as if it begins with the start of string assertion (^) and ends with the end of string assertion ($); the match is against the entire input string, or from the given position if a start position greater than zero is given.

If a string is a prefix of an Acceptable string, it is considered Intermediate. For example, "" and "A" are Intermediate for the regexp [A-Z][0-9] (whereas "_" would be Invalid).

For a brief introduction to Qt's regexp engine, see QRegExp.

Example of use:

 // regexp: optional '-' followed by between 1 and 3 digits
 QRegExp rx("-?\\d{1,3}");
 QValidator *validator = new QRegExpValidator(rx, this);

 QLineEdit *edit = new QLineEdit(this);
 edit->setValidator(validator);

Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.

 // integers 1 to 9999
 QRegExp rx("[1-9]\\d{0,3}");
 // the validator treats the regexp as "^[1-9]\\d{0,3}$"
 QRegExpValidator v(rx, 0);
 QString s;
 int pos = 0;

 s = "0";     v.validate(s, pos);    // returns Invalid
 s = "12345"; v.validate(s, pos);    // returns Invalid
 s = "1";     v.validate(s, pos);    // returns Acceptable

 rx.setPattern("\\S+");            // one or more non-whitespace characters
 v.setRegExp(rx);
 s = "myfile.txt";  v.validate(s, pos); // Returns Acceptable
 s = "my file.txt"; v.validate(s, pos); // Returns Invalid

 // A, B or C followed by exactly five digits followed by W, X, Y or Z
 rx.setPattern("[A-C]\\d{5}[W-Z]");
 v.setRegExp(rx);
 s = "a12345Z"; v.validate(s, pos);        // Returns Invalid
 s = "A12345Z"; v.validate(s, pos);        // Returns Acceptable
 s = "B12";     v.validate(s, pos);        // Returns Intermediate

 // match most 'readme' files
 rx.setPattern("read\\S?me(\.(txt|asc|1st))?");
 rx.setCaseSensitive(false);
 v.setRegExp(rx);
 s = "readme";      v.validate(s, pos); // Returns Acceptable
 s = "README.1ST";  v.validate(s, pos); // Returns Acceptable
 s = "read me.txt"; v.validate(s, pos); // Returns Invalid
 s = "readm";       v.validate(s, pos); // Returns Intermediate

Method Documentation

QRegExpValidator.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a validator with a parent object that accepts any string (including an empty one) as valid.

QRegExpValidator.__init__ (self, QRegExp rx, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a validator with a parent object that accepts all strings that match the regular expression rx.

The match is made against the entire string; e.g. if the regexp is [A-Fa-f0-9]+ it will be treated as ^[A-Fa-f0-9]+$.

QRegExp QRegExpValidator.regExp (self)

QRegExpValidator.setRegExp (self, QRegExp rx)

(QValidator.State, QString input, int pos) QRegExpValidator.validate (self, QString input, int pos)

Reimplemented from QValidator.validate().

Returns Acceptable if input is matched by the regular expression for this validator, Intermediate if it has matched partially (i.e. could be a valid match if additional valid characters are added), and Invalid if input is not matched.

The pos parameter is set to the length of the input parameter.

For example, if the regular expression is \w\d\d (word-character, digit, digit) then "A57" is Acceptable, "E5" is Intermediate, and "+9" is Invalid.

See also QRegExp.exactMatch().

(QValidator.State, int pos) QRegExpValidator.validate (self, QString input, int pos)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qregion.html0000644000076500000240000007310412536324512020017 0ustar philstaff00000000000000 QRegion Class Reference
  Home · All Classes · Modules

QRegion Class Reference
[QtGui module]

The QRegion class specifies a clip region for a painter. More...

Types

Methods

Special Methods


Detailed Description

The QRegion class specifies a clip region for a painter.

QRegion is used with QPainter.setClipRegion() to limit the paint area to what needs to be painted. There is also a QWidget.repaint() function that takes a QRegion parameter. QRegion is the best tool for minimizing the amount of screen area to be updated by a repaint.

This class is not suitable for constructing shapes for rendering, especially as outlines. Use QPainterPath to create paths and shapes for use with QPainter.

QRegion is an implicitly shared class.

Creating and Using Regions

A region can be created from a rectangle, an ellipse, a polygon or a bitmap. Complex regions may be created by combining simple regions using united(), intersected(), subtracted(), or xored() (exclusive or). You can move a region using translate().

You can test whether a region isEmpty() or if it contains() a QPoint or QRect. The bounding rectangle can be found with boundingRect().

The function rects() gives a decomposition of the region into rectangles.

Example of using complex regions:

 void MyWidget.paintEvent(QPaintEvent *)
 {
     QRegion r1(QRect(100, 100, 200, 80),    // r1: elliptic region
                QRegion.Ellipse);
     QRegion r2(QRect(100, 120, 90, 30));    // r2: rectangular region
     QRegion r3 = r1.intersected(r2);        // r3: intersection

     QPainter painter(this);
     painter.setClipRegion(r3);
     ...                                     // paint clipped graphics
 }

Additional License Information

On Embedded Linux, Windows CE and X11 platforms, parts of this class rely on code obtained under the following licenses:

Copyright (c) 1987 X Consortium

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of the X Consortium shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the X Consortium.


Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.

All Rights Reserved

Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Digital not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.

DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


Type Documentation

QRegion.RegionType

Specifies the shape of the region to be created.

Constant Value Description
QRegion.Rectangle 0 the region covers the entire rectangle.
QRegion.Ellipse 1 the region is an ellipse inside the rectangle.

Method Documentation

QRegion.__init__ (self)

Constructs an empty region.

See also isEmpty().

QRegion.__init__ (self, int x, int y, int w, int h, RegionType type = QRegion.Rectangle)

Constructs a rectangular or elliptic region.

If t is Rectangle, the region is the filled rectangle (x, y, w, h). If t is Ellipse, the region is the filled ellipse with center at (x + w / 2, y + h / 2) and size (w ,h).

QRegion.__init__ (self, QRect r, RegionType type = QRegion.Rectangle)

Constructs a polygon region from the point array a with the fill rule specified by fillRule.

If fillRule is Qt.WindingFill, the polygon region is defined using the winding algorithm; if it is Qt.OddEvenFill, the odd-even fill algorithm is used.

Warning: This constructor can be used to create complex regions that will slow down painting when used.

QRegion.__init__ (self, QPolygon a, Qt.FillRule fillRule = Qt.OddEvenFill)

QRegion.__init__ (self, QBitmap bitmap)

Constructs a new region which is equal to region r.

QRegion.__init__ (self, QRegion region)

Constructs a region from the bitmap bm.

The resulting region consists of the pixels in bitmap bm that are Qt.color1, as if each pixel was a 1 by 1 rectangle.

This constructor may create complex regions that will slow down painting when used. Note that drawing masked pixmaps can be done much faster using QPixmap.setMask().

QRegion.__init__ (self, QVariant variant)

This is an overloaded function.

Create a region based on the rectange r with region type t.

If the rectangle is invalid a null region will be created.

See also QRegion.RegionType.

QRect QRegion.boundingRect (self)

Returns the bounding rectangle of this region. An empty region gives a rectangle that is QRect.isNull().

bool QRegion.contains (self, QPoint p)

Returns true if the region contains the point p; otherwise returns false.

bool QRegion.contains (self, QRect r)

This is an overloaded function.

Returns true if the region overlaps the rectangle r; otherwise returns false.

QRegion QRegion.eor (self, QRegion r)

QRegion QRegion.intersect (self, QRegion r)

QRegion QRegion.intersected (self, QRegion r)

Returns a region which is the intersection of this region and r.

Region Intersection

The figure shows the intersection of two elliptical regions.

This function was introduced in Qt 4.2.

See also subtracted(), united(), and xored().

QRegion QRegion.intersected (self, QRect r)

Returns a region which is the intersection of this region and the given rect.

This function was introduced in Qt 4.4.

See also subtracted(), united(), and xored().

bool QRegion.intersects (self, QRegion r)

Returns true if this region intersects with region, otherwise returns false.

This function was introduced in Qt 4.2.

bool QRegion.intersects (self, QRect r)

Returns true if this region intersects with rect, otherwise returns false.

This function was introduced in Qt 4.2.

bool QRegion.isEmpty (self)

Returns true if the region is empty; otherwise returns false. An empty region is a region that contains no points.

Example:

 QRegion r1(10, 10, 20, 20);
 r1.isEmpty();               // false

 QRegion r3;
 r3.isEmpty();               // true

 QRegion r2(40, 40, 20, 20);
 r3 = r1.intersected(r2);    // r3: intersection of r1 and r2
 r3.isEmpty();               // true

 r3 = r1.united(r2);         // r3: union of r1 and r2
 r3.isEmpty();               // false

int QRegion.numRects (self)

int QRegion.rectCount (self)

Returns the number of rectangles that will be returned in rects().

This function was introduced in Qt 4.6.

list-of-QRect QRegion.rects (self)

Returns an array of non-overlapping rectangles that make up the region.

The union of all the rectangles is equal to the original region.

See also setRects().

QRegion QRegion.subtract (self, QRegion r)

QRegion QRegion.subtracted (self, QRegion r)

Returns a region which is r subtracted from this region.

Region Subtraction

The figure shows the result when the ellipse on the right is subtracted from the ellipse on the left (left - right).

This function was introduced in Qt 4.2.

See also intersected(), united(), and xored().

QRegion.swap (self, QRegion other)

Swaps region other with this region. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QRegion.translate (self, int dx, int dy)

Translates (moves) the region dx along the X axis and dy along the Y axis.

QRegion.translate (self, QPoint p)

This is an overloaded function.

Translates the region point.x() along the x axis and point.y() along the y axis, relative to the current position. Positive values move the region to the right and down.

Translates to the given point.

QRegion QRegion.translated (self, int dx, int dy)

Returns a copy of the region that is translated dx along the x axis and dy along the y axis, relative to the current position. Positive values move the region to the right and down.

This function was introduced in Qt 4.1.

See also translate().

QRegion QRegion.translated (self, QPoint p)

This is an overloaded function.

Returns a copy of the regtion that is translated p.x() along the x axis and p.y() along the y axis, relative to the current position. Positive values move the rectangle to the right and down.

This function was introduced in Qt 4.1.

See also translate().

QRegion QRegion.unite (self, QRegion r)

QRegion QRegion.united (self, QRegion r)

Returns a region which is the union of this region and r.

Region Union

The figure shows the union of two elliptical regions.

This function was introduced in Qt 4.2.

See also intersected(), subtracted(), and xored().

QRegion QRegion.united (self, QRect r)

Returns a region which is the union of this region and the given rect.

This function was introduced in Qt 4.4.

See also intersected(), subtracted(), and xored().

QRegion QRegion.xored (self, QRegion r)

Returns a region which is the exclusive or (XOR) of this region and r.

Region XORed

The figure shows the exclusive or of two elliptical regions.

This function was introduced in Qt 4.2.

See also intersected(), united(), and subtracted().

QRegion QRegion.__add__ (self, QRegion r)

QRegion QRegion.__add__ (self, QRect r)

QRegion QRegion.__and__ (self, QRegion r)

QRegion QRegion.__and__ (self, QRect r)

int QRegion.__bool__ (self)

int QRegion.__contains__ (self, QPoint p)

int QRegion.__contains__ (self, QRect r)

bool QRegion.__eq__ (self, QRegion r)

QRegion QRegion.__iadd__ (self, QRegion r)

QRegion QRegion.__iadd__ (self, QRect r)

QRegion QRegion.__iand__ (self, QRegion r)

QRegion QRegion.__iand__ (self, QRect r)

QRegion QRegion.__ior__ (self, QRegion r)

QRegion QRegion.__isub__ (self, QRegion r)

QRegion QRegion.__ixor__ (self, QRegion r)

QRegion QRegion.__mul__ (self, QMatrix m)

QRegion QRegion.__mul__ (self, QTransform m)

bool QRegion.__ne__ (self, QRegion r)

QRegion QRegion.__or__ (self, QRegion r)

QRegion QRegion.__sub__ (self, QRegion r)

QRegion QRegion.__xor__ (self, QRegion r)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qresizeevent.html0000644000076500000240000000636212536324503021101 0ustar philstaff00000000000000 QResizeEvent Class Reference
  Home · All Classes · Modules

QResizeEvent Class Reference
[QtGui module]

The QResizeEvent class contains event parameters for resize events. More...

Inherits QEvent.

Methods


Detailed Description

The QResizeEvent class contains event parameters for resize events.

Resize events are sent to widgets that have been resized.

The event handler QWidget.resizeEvent() receives resize events.


Method Documentation

QResizeEvent.__init__ (self, QSize size, QSize oldSize)

Constructs a resize event with the new and old widget sizes, size and oldSize respectively.

QResizeEvent.__init__ (self, QResizeEvent)

QSize QResizeEvent.oldSize (self)

Returns the old size of the widget.

QSize QResizeEvent.size (self)

Returns the new size of the widget. This is the same as QWidget.size().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qresource.html0000644000076500000240000003227012536324474020371 0ustar philstaff00000000000000 QResource Class Reference
  Home · All Classes · Modules

QResource Class Reference
[QtCore module]

The QResource class provides an interface for reading directly from resources. More...

Methods

Static Methods


Detailed Description

The QResource class provides an interface for reading directly from resources.

QResource is an object that represents a set of data (and possibly children) relating to a single resource entity. QResource gives direct access to the bytes in their raw format. In this way direct access allows reading data without buffer copying or indirection. Indirection is often useful when interacting with the resource entity as if it is a file, this can be achieved with QFile. The data and children behind a QResource are normally compiled into an application/library, but it is also possible to load a resource at runtime. When loaded at run time the resource file will be loaded as one big set of data and then given out in pieces via references into the resource tree.

A QResource can either be loaded with an absolute path, either treated as a file system rooted with a / character, or in resource notation rooted with a : character. A relative resource can also be opened which will be found in the list of paths returned by QDir.searchPaths().

A QResource that is representing a file will have data backing it, this data can possibly be compressed, in which case qUncompress() must be used to access the real data; this happens implicitly when accessed through a QFile. A QResource that is representing a directory will have only children and no data.

Dynamic Resource Loading

A resource can be left out of an application's binary and loaded when it is needed at run-time by using the registerResource() function. The resource file passed into registerResource() must be a binary resource as created by rcc. Further information about binary resources can be found in The Qt Resource System documentation.

This can often be useful when loading a large set of application icons that may change based on a setting, or that can be edited by a user and later recreated. The resource is immediately loaded into memory, either as a result of a single file read operation, or as a memory mapped file.

This approach can prove to be a significant performance gain as only a single file will be loaded, and pieces of data will be given out via the path requested in setFileName().

The unregisterResource() function removes a reference to a particular file. If there are QResources that currently reference resources related to the unregistered file, they will continue to be valid but the resource file itself will be removed from the resource roots, and thus no further QResource can be created pointing into this resource data. The resource itself will be unmapped from memory when the last QResource that points to it is destroyed.


Method Documentation

QResource.__init__ (self, QString fileName = QString(), QLocale locale = QLocale())

Constructs a QResource pointing to file. locale is used to load a specific localization of a resource data.

See also QFileInfo, QDir.searchPaths(), setFileName(), and setLocale().

QString QResource.absoluteFilePath (self)

Returns the real path that this QResource represents, if the resource was found via the QDir.searchPaths() it will be indicated in the path.

See also fileName().

QResource.addSearchPath (QString path)

QStringList QResource.children (self)

Returns a list of all resources in this directory, if the resource represents a file the list will be empty.

See also isDir().

str QResource.data (self)

Returns direct access to a read only segment of data that this resource represents. If the resource is compressed the data returns is compressed and qUncompress() must be used to access the data. If the resource is a directory 0 is returned.

See also size(), isCompressed(), and isFile().

QString QResource.fileName (self)

Returns the full path to the file that this QResource represents as it was passed.

See also setFileName() and absoluteFilePath().

bool QResource.isCompressed (self)

Returns true if the resource represents a file and the data backing it is in a compressed format, false otherwise.

See also data() and isFile().

bool QResource.isDir (self)

Returns true if the resource represents a directory and thus may have children() in it, false if it represents a file.

See also isFile().

bool QResource.isFile (self)

Returns true if the resource represents a file and thus has data backing it, false if it represents a directory.

See also isDir().

bool QResource.isValid (self)

Returns true if the resource really exists in the resource hierarchy, false otherwise.

QLocale QResource.locale (self)

Returns the locale used to locate the data for the QResource.

See also setLocale().

bool QResource.registerResource (QString rccFileName, QString mapRoot = QString())

Registers the resource with the given rccFileName at the location in the resource tree specified by mapRoot, and returns true if the file is successfully opened; otherwise returns false.

See also unregisterResource().

bool QResource.registerResourceData (str rccData, QString mapRoot = QString())

QStringList QResource.searchPaths ()

QResource.setFileName (self, QString file)

Sets a QResource to point to file. file can either be absolute, in which case it is opened directly, if relative then the file will be tried to be found in QDir.searchPaths().

See also fileName() and absoluteFilePath().

QResource.setLocale (self, QLocale locale)

Sets a QResource to only load the localization of resource to for locale. If a resource for the specific locale is not found then the C locale is used.

See also locale() and setFileName().

int QResource.size (self)

Returns the size of the data backing the resource.

See also data() and isFile().

bool QResource.unregisterResource (QString rccFileName, QString mapRoot = QString())

Unregisters the resource with the given rccFileName at the location in the resource tree specified by mapRoot, and returns true if the resource is successfully unloaded and no references exist for the resource; otherwise returns false.

See also registerResource().

bool QResource.unregisterResourceData (str rccData, QString mapRoot = QString())


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qrubberband.html0000644000076500000240000003173312536324512020644 0ustar philstaff00000000000000 QRubberBand Class Reference
  Home · All Classes · Modules

QRubberBand Class Reference
[
QtGui module]

The QRubberBand class provides a rectangle or line that can indicate a selection or a boundary. More...

Inherits QWidget.

Types

  • enum Shape { Line, Rectangle }

Methods


Detailed Description

The QRubberBand class provides a rectangle or line that can indicate a selection or a boundary.

A rubber band is often used to show a new bounding area (as in a QSplitter or a QDockWidget that is undocking). Historically this has been implemented using a QPainter and XOR, but this approach doesn't always work properly since rendering can happen in the window below the rubber band, but before the rubber band has been "erased".

You can create a QRubberBand whenever you need to render a rubber band around a given area (or to represent a single line), then call setGeometry(), move() or resize() to position and size it. A common pattern is to do this in conjunction with mouse events. For example:

 void Widget.mousePressEvent(QMouseEvent *event)
 {
     origin = event->pos();
     if (!rubberBand)
         rubberBand = new QRubberBand(QRubberBand.Rectangle, this);
     rubberBand->setGeometry(QRect(origin, QSize()));
     rubberBand->show();
 }

 void Widget.mouseMoveEvent(QMouseEvent *event)
 {
     rubberBand->setGeometry(QRect(origin, event->pos()).normalized());
 }

 void Widget.mouseReleaseEvent(QMouseEvent *event)
 {
     rubberBand->hide();
     // determine selection, for example using QRect.intersects()
     // and QRect.contains().
 }

If you pass a parent to QRubberBand's constructor, the rubber band will display only inside its parent, but stays on top of other child widgets. If no parent is passed, QRubberBand will act as a top-level widget.

Call show() to make the rubber band visible; also when the rubber band is not a top-level. Hiding or destroying the widget will make the rubber band disappear. The rubber band can be a Rectangle or a Line (vertical or horizontal), depending on the shape() it was given when constructed.


Type Documentation

QRubberBand.Shape

This enum specifies what shape a QRubberBand should have. This is a drawing hint that is passed down to the style system, and can be interpreted by each QStyle.

Constant Value Description
QRubberBand.Line 0 A QRubberBand can represent a vertical or horizontal line. Geometry is still given in rect() and the line will fill the given geometry on most styles.
QRubberBand.Rectangle 1 A QRubberBand can represent a rectangle. Some styles will interpret this as a filled (often semi-transparent) rectangle, or a rectangular outline.

Method Documentation

QRubberBand.__init__ (self, Shape, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a rubber band of shape s, with parent p.

By default a rectangular rubber band (s is Rectangle) will use a mask, so that a small border of the rectangle is all that is visible. Some styles (e.g., native Mac OS X) will change this and call QWidget.setWindowOpacity() to make a semi-transparent filled selection rectangle.

QRubberBand.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

bool QRubberBand.event (self, QEvent e)

Reimplemented from QObject.event().

QRubberBand.initStyleOption (self, QStyleOptionRubberBand option)

Initialize option with the values from this QRubberBand. This method is useful for subclasses when they need a QStyleOptionRubberBand, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QRubberBand.move (self, QPoint p)

Moves the rubberband to point (x, y).

See also resize().

QRubberBand.move (self, int ax, int ay)

This is an overloaded function.

Moves the rubberband to point p.

See also resize().

QRubberBand.moveEvent (self, QMoveEvent)

Reimplemented from QWidget.moveEvent().

QRubberBand.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QRubberBand.resize (self, int w, int h)

Resizes the rubberband so that its width is width, and its height is height.

See also move().

QRubberBand.resize (self, QSize s)

This is an overloaded function.

Resizes the rubberband so that its new size is size.

See also move().

QRubberBand.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QRubberBand.setGeometry (self, QRect r)

Sets the geometry of the rubber band to rect, specified in the coordinate system of its parent widget.

See also QWidget.geometry.

QRubberBand.setGeometry (self, int ax, int ay, int aw, int ah)

This is an overloaded function.

Sets the geometry of the rubberband to the rectangle whose top-left corner lies at the point (x, y), and with dimensions specified by width and height. The geometry is specified in the parent widget's coordinate system.

Shape QRubberBand.shape (self)

Returns the shape of this rubber band. The shape can only be set upon construction.

QRubberBand.showEvent (self, QShowEvent)

Reimplemented from QWidget.showEvent().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qrunnable.html0000644000076500000240000001234212536324474020346 0ustar philstaff00000000000000 QRunnable Class Reference
  Home · All Classes · Modules

QRunnable Class Reference
[QtCore module]

The QRunnable class is the base class for all runnable objects. More...

Methods


Detailed Description

The QRunnable class is the base class for all runnable objects.

The QRunnable class is an interface for representing a task or piece of code that needs to be executed, represented by your reimplementation of the run() function.

You can use QThreadPool to execute your code in a separate thread. QThreadPool deletes the QRunnable automatically if autoDelete() returns true (the default). Use setAutoDelete() to change the auto-deletion flag.

QThreadPool supports executing the same QRunnable more than once by calling QThreadPool.tryStart(this) from within the run() function. If autoDelete is enabled the QRunnable will be deleted when the last thread exits the run function. Calling QThreadPool.start() multiple times with the same QRunnable when autoDelete is enabled creates a race condition and is not recommended.


Method Documentation

QRunnable.__init__ (self)

Constructs a QRunnable. Auto-deletion is enabled by default.

See also autoDelete() and setAutoDelete().

QRunnable.__init__ (self, QRunnable)

bool QRunnable.autoDelete (self)

Returns true is auto-deletion is enabled; false otherwise.

If auto-deletion is enabled, QThreadPool will automatically delete this runnable after calling run(); otherwise, ownership remains with the application programmer.

See also setAutoDelete() and QThreadPool.

QRunnable.run (self)

This method is abstract and should be reimplemented in any sub-class.

Implement this pure virtual function in your subclass.

QRunnable.setAutoDelete (self, bool _autoDelete)

Enables auto-deletion if autoDelete is true; otherwise auto-deletion is disabled.

If auto-deletion is enabled, QThreadPool will automatically delete this runnable after calling run(); otherwise, ownership remains with the application programmer.

Note that this flag must be set before calling QThreadPool.start(). Calling this function after QThreadPool.start() results in undefined behavior.

See also autoDelete() and QThreadPool.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptclass-queryflags.html0000644000076500000240000001411212536324521023240 0ustar philstaff00000000000000 QScriptClass.QueryFlags Class Reference
  Home · All Classes · Modules

QScriptClass.QueryFlags Class Reference
[QtScript module]

Methods

Special Methods


Detailed Description

QueryFlag may be used whenever QueryFlags is expected.


Method Documentation

QueryFlags.__init__ (self, QueryFlags)

QueryFlags.__init__ (self, int)

QueryFlags.__init__ (self)

QueryFlags QueryFlags.__and__ (self, int mask)

int QueryFlags.__bool__ (self)

bool QueryFlags.__eq__ (self, QueryFlags f)

QueryFlags QueryFlags.__iand__ (self, int mask)

int QueryFlags.__int__ (self)

QueryFlags QueryFlags.__invert__ (self)

QueryFlags QueryFlags.__ior__ (self, QueryFlags f)

QueryFlags QueryFlags.__ixor__ (self, QueryFlags f)

bool QueryFlags.__ne__ (self, QueryFlags f)

QueryFlags QueryFlags.__or__ (self, QueryFlags f)

QueryFlags QueryFlags.__or__ (self, int f)

QueryFlags QueryFlags.__xor__ (self, QueryFlags f)

QueryFlags QueryFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptclass.html0000644000076500000240000004702512536324521021071 0ustar philstaff00000000000000 QScriptClass Class Reference
  Home · All Classes · Modules

QScriptClass Class Reference
[QtScript module]

The QScriptClass class provides an interface for defining custom behavior of (a class of) Qt Script objects. More...

Types

Methods

  • __init__ (self, QScriptEngine engine)
  • QScriptEngine engine (self)
  • QVariant extension (self, Extension extension, QVariant argument = QVariant())
  • QString name (self)
  • QScriptClassPropertyIterator newIterator (self, QScriptValue object)
  • QScriptValue property (self, QScriptValue object, QScriptString name, int id)
  • QScriptValue.PropertyFlags propertyFlags (self, QScriptValue object, QScriptString name, int id)
  • QScriptValue prototype (self)
  • (QueryFlags, int id) queryProperty (self, QScriptValue object, QScriptString name, QueryFlags flags)
  • setProperty (self, QScriptValue object, QScriptString name, int id, QScriptValue value)
  • bool supportsExtension (self, Extension extension)

Detailed Description

The QScriptClass class provides an interface for defining custom behavior of (a class of) Qt Script objects.

The QScriptClass class defines an interface for handling various aspects of interaction with the Qt Script objects associated with the class. Such objects are created by calling QScriptEngine.newObject(), passing a pointer to the QScriptClass as argument.

By subclassing QScriptClass, you can define precisely how access to properties of the objects that use your class is handled. This enables a fully dynamic handling of properties, e.g. it's more powerful than QScriptEngine.newQObject(). For example, you can use QScriptClass to implement array-type objects (i.e. objects that handle the length property, and properties whose names are valid array indexes, in a special way), or to implement a "live" (runtime-defined) proxy to an underlying object.

If you just need to handle access to a set of properties that are known at the time an object is created (i.e. "semi-statically"), you might consider using QScriptValue.setProperty() to define getter/setter functions for the relevant properties, rather than subclassing QScriptClass.

Reimplement queryProperty() to specify which properties are handled in a custom way by your script class (i.e. should be delegated to the QScriptClass), and which properties should be handled just like normal Qt Script object properties.

Reimplement property() and setProperty() to perform the actual access (read or write) to the properties that your class handles. Additionally, you can reimplement propertyFlags() to specify custom flags for your properties.

Reimplement newIterator() to provide an iterator for objects of your custom class. This is only necessary if objects of your class can have custom properties that you want to be reported when an object is used together with the QScriptValueIterator class, or when an object is used in a for-in enumeration statement in a script.

When implementing custom classes of objects, you typically use QScriptValue.setData() to store instance-specific data as part of object initialization; the data won't be accessible from scripts directly, but you can access it in e.g. your reimplementations of property() and setProperty() (by calling QScriptValue.data()) to perform custom processing.

Reimplement prototype() to provide a custom prototype object for your script class.

Reimplement supportsExtension() and extension() if your custom script class supports one or more of the extensions specified by the Extension enum.


Type Documentation

QScriptClass.Extension

This enum specifies the possible extensions to a QScriptClass.

Constant Value Description
QScriptClass.Callable 0 Instances of this class can be called as functions.
QScriptClass.HasInstance 1 Instances of this class implement [[HasInstance]].

See also extension().

QScriptClass.QueryFlag

This enum describes flags that are used to query a QScriptClass regarding how access to a property should be handled.

Constant Value Description
QScriptClass.HandlesReadAccess 0x01 The QScriptClass handles read access to this property.
QScriptClass.HandlesWriteAccess 0x02 The QScriptClass handles write access to this property.

The QueryFlags type is a typedef for QFlags<QueryFlag>. It stores an OR combination of QueryFlag values.

See also queryProperty().


Method Documentation

QScriptClass.__init__ (self, QScriptEngine engine)

Constructs a QScriptClass object to be used in the given engine.

The engine does not take ownership of the QScriptClass object.

QScriptEngine QScriptClass.engine (self)

Returns the engine that this QScriptClass is associated with.

QVariant QScriptClass.extension (self, Extension extension, QVariant argument = QVariant())

This virtual function can be reimplemented in a QScriptClass subclass to provide support for extensions. The optional argument can be provided as input to the extension; the result must be returned in the form of a QVariant. You can call supportsExtension() to check if an extension is supported by the QScriptClass. By default, no extensions are supported, and this function returns an invalid QVariant.

If you implement the Callable extension, Qt Script will call this function when an instance of your class is called as a function (e.g. from a script or using QScriptValue.call()). The argument will contain a pointer to the QScriptContext that represents the function call, and you should return a QVariant that holds the result of the function call. In the following example the sum of the arguments to the script function are added up and returned:

 if (extension == Callable) {
     QScriptContext *context = qvariant_cast<QScriptContext*>(argument);
     QScriptEngine *engine = context->engine();
     double sum = 0;
     for (int i = 0; i < context->argumentCount(); ++i)
         sum += context->argument(i).toNumber();
     return sum;
 }

If you implement the HasInstance extension, Qt Script will call this function as part of evaluating the instanceof operator, as described in ECMA-262 Section 11.8.6. The argument is a QScriptValueList containing two items: The first item is the object that HasInstance is being applied to (an instance of your class), and the second item can be any value. extension() should return true if the value delegates behavior to the object, false otherwise.

See also supportsExtension().

QString QScriptClass.name (self)

Returns the name of the script class.

Qt Script uses this name to generate a default string representation of objects in case you do not provide a toString function.

The default implementation returns a null string.

QScriptClassPropertyIterator QScriptClass.newIterator (self, QScriptValue object)

Returns an iterator for traversing custom properties of the given object.

The default implementation returns 0, meaning that there are no custom properties to traverse.

Reimplement this function if objects of your script class can have one or more custom properties (e.g. those reported to be handled by queryProperty()) that you want to appear when an object's properties are enumerated (e.g. by a for-in statement in a script).

Qt Script takes ownership of the new iterator object.

See also QScriptValueIterator.

QScriptValue QScriptClass.property (self, QScriptValue object, QScriptString name, int id)

Returns the value of the property with the given name of the given object.

The id argument is only useful if you assigned a value to it in queryProperty().

The default implementation does nothing and returns an invalid QScriptValue.

See also setProperty() and propertyFlags().

QScriptValue.PropertyFlags QScriptClass.propertyFlags (self, QScriptValue object, QScriptString name, int id)

Returns the flags of the property with the given name of the given object.

The id argument is only useful if you assigned a value to it in queryProperty().

The default implementation returns 0.

See also property().

QScriptValue QScriptClass.prototype (self)

Returns the object to be used as the prototype of new instances of this class (created with QScriptEngine.newObject()).

The default implementation returns an invalid QScriptValue, meaning that the standard Object prototype will be used. Reimplement this function to provide your own custom prototype.

Typically you initialize your prototype object in the constructor of your class, then return it in this function.

See the "Making Use of Prototype-Based Inheritance" section in the QtScript documentation for more information on how prototypes are used.

(QueryFlags, int id) QScriptClass.queryProperty (self, QScriptValue object, QScriptString name, QueryFlags flags)

Queries this script class for how access to the property with the given name of the given object should be handled. The given flags specify the aspects of interest. This function should return a subset of flags to indicate which aspects of property access should be further handled by the script class.

For example, if the flags contain HandlesReadAccess, and you would like your class to handle the reading of the property (through the property() function), the returned flags should include HandlesReadAccess. If the returned flags do not contain HandlesReadAccess, the property will be handled as a normal script object property.

You can optionally use the id argument to store a value that will subsequently be passed on to functions such as property() and setProperty().

The default implementation of this function returns 0.

Note: This function is only called if the given property isn't already a normal property of the object. For example, say you advertise that you want to handle read access to property foo, but not write access; if foo is then assigned a value, it will become a normal script object property, and subsequently you will no longer be queried regarding read access to foo.

See also property().

QScriptClass.setProperty (self, QScriptValue object, QScriptString name, int id, QScriptValue value)

Sets the property with the given name of the given object to the given value.

The id argument is only useful if you assigned a value to it in queryProperty().

The default implementation does nothing.

An invalid value represents a request to remove the property.

See also property().

bool QScriptClass.supportsExtension (self, Extension extension)

Returns true if the QScriptClass supports the given extension; otherwise, false is returned. By default, no extensions are supported.

Reimplement this function to indicate which extensions your custom class supports.

See also extension().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptclasspropertyiterator.html0000644000076500000240000002263612536324521024451 0ustar philstaff00000000000000 QScriptClassPropertyIterator Class Reference
  Home · All Classes · Modules

QScriptClassPropertyIterator Class Reference
[QtScript module]

The QScriptClassPropertyIterator class provides an iterator interface for custom Qt Script objects. More...

Methods


Detailed Description

The QScriptClassPropertyIterator class provides an iterator interface for custom Qt Script objects.

This class is only relevant if you have subclassed QScriptClass and want to provide enumeration of your custom properties (e.g. when objects of your class are used with QScriptValueIterator, or with the for-in statement in scripts).

The object() function returns the Qt Script object the iterator is traversing.

toFront(), hasNext() and next() provide forward iteration.

toBack(), hasPrevious() and previous() provide backward iteration.

name(), id() and flags() return information about the last property that was jumped over using next() or previous().


Method Documentation

QScriptClassPropertyIterator.__init__ (self, QScriptValue object)

Constructs an iterator for traversing object.

Subclasses should ensure that the iterator is set to the front of the sequence of properties (before the first property).

QScriptValue.PropertyFlags QScriptClassPropertyIterator.flags (self)

Returns the flags of the last property that was jumped over using next() or previous().

The default implementation calls the propertyFlags() function of object() with argument name().

bool QScriptClassPropertyIterator.hasNext (self)

This method is abstract and should be reimplemented in any sub-class.

Returns true if there is at least one item ahead of the iterator (i.e. the iterator is not at the back of the property sequence); otherwise returns false.

See also next() and hasPrevious().

bool QScriptClassPropertyIterator.hasPrevious (self)

This method is abstract and should be reimplemented in any sub-class.

Returns true if there is at least one item behind the iterator (i.e. the iterator is not at the front of the property sequence); otherwise returns false.

See also previous() and hasNext().

int QScriptClassPropertyIterator.id (self)

Returns the id of the last property that was jumped over using next() or previous().

The default implementation returns 0.

See also name().

QScriptString QScriptClassPropertyIterator.name (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the name of the last property that was jumped over using next() or previous().

See also id().

QScriptClassPropertyIterator.next (self)

This method is abstract and should be reimplemented in any sub-class.

Advances the iterator by one position.

Calling this function on an iterator located at the back of the container leads to undefined results.

See also hasNext(), previous(), and name().

QScriptValue QScriptClassPropertyIterator.object (self)

Returns the Qt Script object this iterator is traversing.

QScriptClassPropertyIterator.previous (self)

This method is abstract and should be reimplemented in any sub-class.

Moves the iterator back by one position.

Calling this function on an iterator located at the front of the container leads to undefined results.

See also hasPrevious(), next(), and name().

QScriptClassPropertyIterator.toBack (self)

This method is abstract and should be reimplemented in any sub-class.

Moves the iterator to the back of the QScriptValue (after the last property).

See also toFront() and previous().

QScriptClassPropertyIterator.toFront (self)

This method is abstract and should be reimplemented in any sub-class.

Moves the iterator to the front of the QScriptValue (before the first property).

See also toBack() and next().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptcontext.html0000644000076500000240000005217712536324521021454 0ustar philstaff00000000000000 QScriptContext Class Reference
  Home · All Classes · Modules

QScriptContext Class Reference
[QtScript module]

The QScriptContext class represents a Qt Script function invocation. More...

Types

  • enum Error { UnknownError, ReferenceError, SyntaxError, TypeError, RangeError, URIError }
  • enum ExecutionState { NormalState, ExceptionState }

Methods


Detailed Description

The QScriptContext class represents a Qt Script function invocation.

A QScriptContext provides access to the `this' object and arguments passed to a script function. You typically want to access this information when you're writing a native (C++) function (see QScriptEngine.newFunction()) that will be called from script code. For example, when the script code

 foo(20.5, "hello", new Object())

is evaluated, a QScriptContext will be created, and the context will carry the arguments as QScriptValues; in this particular case, the arguments will be one QScriptValue containing the number 20.5, a second QScriptValue containing the string "hello", and a third QScriptValue containing a Qt Script object.

Use argumentCount() to get the number of arguments passed to the function, and argument() to get an argument at a certain index. The argumentsObject() function returns a Qt Script array object containing all the arguments; you can use the QScriptValueIterator to iterate over its elements, or pass the array on as arguments to another script function using QScriptValue.call().

Use thisObject() to get the `this' object associated with the function call, and setThisObject() to set the `this' object. If you are implementing a native "instance method", you typically fetch the thisObject() and access one or more of its properties:

 QScriptValue Person_prototype_fullName(QScriptContext *context, QScriptEngine *engine)
 {
     QScriptValue self = context->thisObject();
     QString result;
     result += self.property("firstName").toString();
     result += QLatin1String(" ");
     result += self.property("lastName").toString();
     return result;
 }

Use isCalledAsConstructor() to determine if the function was called as a constructor (e.g. "new foo()" (as constructor) or just "foo()"). When a function is called as a constructor, the thisObject() contains the newly constructed object that the function is expected to initialize.

Use throwValue() or throwError() to throw an exception.

Use callee() to obtain the QScriptValue that represents the function being called. This can for example be used to call the function recursively.

Use parentContext() to get a pointer to the context that precedes this context in the activation stack. This is mostly useful for debugging purposes (e.g. when constructing some form of backtrace).

The activationObject() function returns the object that is used to hold the local variables associated with this function call. You can replace the activation object by calling setActivationObject(). A typical usage of these functions is when you want script code to be evaluated in the context of the parent context, e.g. to implement an include() function:

 QScriptValue myInclude(QScriptContext *ctx, QScriptEngine *eng)
 {
     QString fileName = ctx->argument(0).toString();
     QString contents = readTheFile(fileName);
     ctx->setActivationObject(ctx->parentContext()->activationObject());
     ctx->setThisObject(ctx->parentContext()->thisObject());
     return eng->evaluate(contents, fileName);
 }

Use backtrace() to get a human-readable backtrace associated with this context. This can be useful for debugging purposes when implementing native functions. The toString() function provides a string representation of the context. (QScriptContextInfo provides more detailed debugging-related information about the QScriptContext.)

Use engine() to obtain a pointer to the QScriptEngine that this context resides in.


Type Documentation

QScriptContext.Error

This enum specifies types of error.

Constant Value Description
QScriptContext.ReferenceError 1 A reference error.
QScriptContext.SyntaxError 2 A syntax error.
QScriptContext.TypeError 3 A type error.
QScriptContext.RangeError 4 A range error.
QScriptContext.URIError 5 A URI error.
QScriptContext.UnknownError 0 An unknown error.

QScriptContext.ExecutionState

This enum specifies the frameution state of the context.

Constant Value Description
QScriptContext.NormalState 0 The context is in a normal state.
QScriptContext.ExceptionState 1 The context is in an exceptional state.

Method Documentation

QScriptValue QScriptContext.activationObject (self)

Returns the activation object of this QScriptContext. The activation object provides access to the local variables associated with this context.

Note: The activation object might not be available if there is no active QScriptEngineAgent, as it might be optimized.

See also setActivationObject(), argument(), and argumentsObject().

QScriptValue QScriptContext.argument (self, int index)

Returns the function argument at the given index.

If index >= argumentCount(), a QScriptValue of the primitive type Undefined is returned.

See also argumentCount().

int QScriptContext.argumentCount (self)

Returns the number of arguments passed to the function in this invocation.

Note that the argument count can be different from the formal number of arguments (the length property of callee()).

See also argument().

QScriptValue QScriptContext.argumentsObject (self)

Returns the arguments object of this QScriptContext.

The arguments object has properties callee (equal to callee()) and length (equal to argumentCount()), and properties 0, 1, ..., argumentCount() - 1 that provide access to the argument values. Initially, property P (0 <= P < argumentCount()) has the same value as argument(P). In the case when P is less than the number of formal parameters of the function, P shares its value with the corresponding property of the activation object (activationObject()). This means that changing this property changes the corresponding property of the activation object and vice versa.

See also argument() and activationObject().

QStringList QScriptContext.backtrace (self)

Returns a human-readable backtrace of this QScriptContext.

Each line is of the form <function-name>(<arguments>)@<file-name>:<line-number>.

To access individual pieces of debugging-related information (for example, to construct your own backtrace representation), use QScriptContextInfo.

See also QScriptEngine.uncaughtExceptionBacktrace(), QScriptContextInfo, and toString().

QScriptValue QScriptContext.callee (self)

Returns the callee. The callee is the function object that this QScriptContext represents an invocation of.

QScriptEngine QScriptContext.engine (self)

Returns the QScriptEngine that this QScriptContext belongs to.

bool QScriptContext.isCalledAsConstructor (self)

Returns true if the function was called as a constructor (e.g. "new foo()"); otherwise returns false.

When a function is called as constructor, the thisObject() contains the newly constructed object to be initialized.

Note: This function is only guaranteed to work for a context corresponding to native functions.

QScriptContext QScriptContext.parentContext (self)

Returns the parent context of this QScriptContext.

QScriptContext.setActivationObject (self, QScriptValue activation)

Sets the activation object of this QScriptContext to be the given activation.

If activation is not an object, this function does nothing.

Note: For a context corresponding to a JavaScript function, this is only guaranteed to work if there was an QScriptEngineAgent active on the engine while the function was evaluated.

See also activationObject().

QScriptContext.setThisObject (self, QScriptValue thisObject)

Sets the `this' object associated with this QScriptContext to be thisObject.

If thisObject is not an object, this function does nothing.

See also thisObject().

ExecutionState QScriptContext.state (self)

Returns the frameution state of this QScriptContext.

QScriptValue QScriptContext.thisObject (self)

Returns the `this' object associated with this QScriptContext.

See also setThisObject().

QScriptValue QScriptContext.throwError (self, Error error, QString text)

Throws an error with the given text. Returns the created error object.

The text will be stored in the message property of the error object.

The error object will be initialized to contain information about the location where the error occurred; specifically, it will have properties lineNumber, fileName and stack. These properties are described in QtScript Extensions to ECMAScript.

See also throwValue() and state().

QScriptValue QScriptContext.throwError (self, QString text)

This is an overloaded function.

Throws an error with the given text. Returns the created error object.

See also throwValue() and state().

QScriptValue QScriptContext.throwValue (self, QScriptValue value)

Throws an exception with the given value. Returns the value thrown (the same as the argument).

See also throwError() and state().

QString QScriptContext.toString (self)

Returns a string representation of this context. This is useful for debugging.

This function was introduced in Qt 4.4.

See also backtrace().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptcontextinfo.html0000644000076500000240000003220112536324521022312 0ustar philstaff00000000000000 QScriptContextInfo Class Reference
  Home · All Classes · Modules

QScriptContextInfo Class Reference
[QtScript module]

The QScriptContextInfo class provides additional information about a QScriptContext. More...

Types

  • enum FunctionType { ScriptFunction, QtFunction, QtPropertyFunction, NativeFunction }

Methods

Special Methods

  • bool __eq__ (self, QScriptContextInfo other)
  • bool __ne__ (self, QScriptContextInfo other)

Detailed Description

The QScriptContextInfo class provides additional information about a QScriptContext.

QScriptContextInfo is typically used for debugging purposes. It can provide information about the code being executed, such as the type of the called function, and the original source code location of the current statement.

If the called function is executing Qt Script code, you can obtain the script location with the functions fileName() and lineNumber().

You can obtain the starting line number and ending line number of a Qt Script function definition with functionStartLineNumber() and functionEndLineNumber(), respectively.

For Qt Script functions and Qt methods (e.g. slots), you can call functionParameterNames() to get the names of the formal parameters of the function.

For Qt methods and Qt property accessors, you can obtain the index of the underlying QMetaMethod or QMetaProperty by calling functionMetaIndex().


Type Documentation

QScriptContextInfo.FunctionType

This enum specifies the type of function being called.

Constant Value Description
QScriptContextInfo.ScriptFunction 0 The function is a Qt Script function, i.e. it was defined through a call to QScriptEngine.evaluate().
QScriptContextInfo.QtFunction 1 The function is a Qt function (a signal, slot or method).
QScriptContextInfo.QtPropertyFunction 2 The function is a Qt property getter or setter.
QScriptContextInfo.NativeFunction 3 The function is a built-in Qt Script function, or it was defined through a call to QScriptEngine.newFunction().

Method Documentation

QScriptContextInfo.__init__ (self, QScriptContext context)

Constructs a new QScriptContextInfo from the given context.

The relevant information is extracted from the context at construction time; i.e. if you continue script execution in the context, the new state of the context will not be reflected in a previously created QScriptContextInfo.

QScriptContextInfo.__init__ (self, QScriptContextInfo other)

Constructs a new QScriptContextInfo from the other info.

QScriptContextInfo.__init__ (self)

Constructs a null QScriptContextInfo.

See also isNull().

int QScriptContextInfo.columnNumber (self)

QString QScriptContextInfo.fileName (self)

Returns the name of the file where the code being executed was defined, if available; otherwise returns an empty string.

For Qt Script code, this function returns the fileName argument that was passed to QScriptEngine.evaluate().

See also lineNumber() and functionName().

int QScriptContextInfo.functionEndLineNumber (self)

Returns the line number where the definition of the called function ends, or -1 if the line number is not available.

The ending line number is only available if the functionType() is ScriptFunction.

See also functionStartLineNumber().

int QScriptContextInfo.functionMetaIndex (self)

Returns the meta index of the called function, or -1 if the meta index is not available.

The meta index is only available if the functionType() is QtFunction or QtPropertyFunction. For QtFunction, the meta index can be passed to QMetaObject.method() to obtain the corresponding method definition; for QtPropertyFunction, the meta index can be passed to QMetaObject.property() to obtain the corresponding property definition.

See also QScriptContext.thisObject().

QString QScriptContextInfo.functionName (self)

Returns the name of the called function, or an empty string if the name is not available.

For script functions of type QtPropertyFunction, this function always returns the name of the property; you can use QScriptContext.argumentCount() to differentiate between reads and writes.

See also fileName() and functionType().

QStringList QScriptContextInfo.functionParameterNames (self)

Returns the names of the formal parameters of the called function, or an empty QStringList if the parameter names are not available.

See also QScriptContext.argument().

int QScriptContextInfo.functionStartLineNumber (self)

Returns the line number where the definition of the called function starts, or -1 if the line number is not available.

The starting line number is only available if the functionType() is ScriptFunction.

See also functionEndLineNumber() and fileName().

FunctionType QScriptContextInfo.functionType (self)

Returns the type of the called function.

See also functionName() and QScriptContext.callee().

bool QScriptContextInfo.isNull (self)

Returns true if this QScriptContextInfo is null, i.e. does not contain any information.

int QScriptContextInfo.lineNumber (self)

Returns the line number corresponding to the statement being executed, or -1 if the line number is not available.

The line number is only available if Qt Script code is being executed.

See also columnNumber() and fileName().

int QScriptContextInfo.scriptId (self)

Returns the ID of the script where the code being executed was defined, or -1 if the ID is not available (i.e. a native function is being executed).

See also QScriptEngineAgent.scriptLoad().

bool QScriptContextInfo.__eq__ (self, QScriptContextInfo other)

bool QScriptContextInfo.__ne__ (self, QScriptContextInfo other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptengine-qobjectwrapoptions.html0000644000076500000240000001551612536324521025164 0ustar philstaff00000000000000 QScriptEngine.QObjectWrapOptions Class Reference
  Home · All Classes · Modules

QScriptEngine.QObjectWrapOptions Class Reference
[QtScript module]

Methods

Special Methods

  • QObjectWrapOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, QObjectWrapOptions f)
  • QObjectWrapOptions __iand__ (self, int mask)
  • int __int__ (self)
  • QObjectWrapOptions __invert__ (self)
  • QObjectWrapOptions __ior__ (self, QObjectWrapOptions f)
  • QObjectWrapOptions __ixor__ (self, QObjectWrapOptions f)
  • bool __ne__ (self, QObjectWrapOptions f)
  • QObjectWrapOptions __or__ (self, QObjectWrapOptions f)
  • QObjectWrapOptions __or__ (self, int f)
  • QObjectWrapOptions __xor__ (self, QObjectWrapOptions f)
  • QObjectWrapOptions __xor__ (self, int f)

Detailed Description

QObjectWrapOption may be used whenever QObjectWrapOptions is expected.


Method Documentation

QObjectWrapOptions.__init__ (self, QObjectWrapOptions)

QObjectWrapOptions.__init__ (self, int)

QObjectWrapOptions.__init__ (self)

QObjectWrapOptions QObjectWrapOptions.__and__ (self, int mask)

int QObjectWrapOptions.__bool__ (self)

bool QObjectWrapOptions.__eq__ (self, QObjectWrapOptions f)

QObjectWrapOptions QObjectWrapOptions.__iand__ (self, int mask)

int QObjectWrapOptions.__int__ (self)

QObjectWrapOptions QObjectWrapOptions.__invert__ (self)

QObjectWrapOptions QObjectWrapOptions.__ior__ (self, QObjectWrapOptions f)

QObjectWrapOptions QObjectWrapOptions.__ixor__ (self, QObjectWrapOptions f)

bool QObjectWrapOptions.__ne__ (self, QObjectWrapOptions f)

QObjectWrapOptions QObjectWrapOptions.__or__ (self, QObjectWrapOptions f)

QObjectWrapOptions QObjectWrapOptions.__or__ (self, int f)

QObjectWrapOptions QObjectWrapOptions.__xor__ (self, QObjectWrapOptions f)

QObjectWrapOptions QObjectWrapOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptengine.html0000644000076500000240000024023112536324521021223 0ustar philstaff00000000000000 QScriptEngine Class Reference
  Home · All Classes · Modules

QScriptEngine Class Reference
[QtScript module]

The QScriptEngine class provides an environment for evaluating Qt Script code. More...

Inherits QObject.

Types

Methods

Static Methods

  • QScriptSyntaxCheckResult checkSyntax (QString program)

Qt Signals


Detailed Description

The QScriptEngine class provides an environment for evaluating Qt Script code.

See the QtScript documentation for information about the Qt Script language, and how to get started with scripting your C++ application.

Evaluating Scripts

Use evaluate() to evaluate script code; this is the C++ equivalent of the built-in script function eval().

 QScriptEngine myEngine;
 QScriptValue three = myEngine.evaluate("1 + 2");

evaluate() returns a QScriptValue that holds the result of the evaluation. The QScriptValue class provides functions for converting the result to various C++ types (e.g. QScriptValue.toString() and QScriptValue.toNumber()).

The following code snippet shows how a script function can be defined and then invoked from C++ using QScriptValue.call():

 QScriptValue fun = myEngine.evaluate("(function(a, b) { return a + b; })");
 QScriptValueList args;
 args << 1 << 2;
 QScriptValue threeAgain = fun.call(QScriptValue(), args);

As can be seen from the above snippets, a script is provided to the engine in the form of a string. One common way of loading scripts is by reading the contents of a file and passing it to evaluate():

 QString fileName = "helloworld.qs";
 QFile scriptFile(fileName);
 if (!scriptFile.open(QIODevice.ReadOnly))
     // handle error
 QTextStream stream(&scriptFile);
 QString contents = stream.readAll();
 scriptFile.close();
 myEngine.evaluate(contents, fileName);

Here we pass the name of the file as the second argument to evaluate(). This does not affect evaluation in any way; the second argument is a general-purpose string that is used to identify the script for debugging purposes (for example, our filename will now show up in any uncaughtExceptionBacktrace() involving the script).

Engine Configuration

The globalObject() function returns the Global Object associated with the script engine. Properties of the Global Object are accessible from any script code (i.e. they are global variables). Typically, before evaluating "user" scripts, you will want to configure a script engine by adding one or more properties to the Global Object:

 myEngine.globalObject().setProperty("myNumber", 123);
 ...
 QScriptValue myNumberPlusOne = myEngine.evaluate("myNumber + 1");

Adding custom properties to the scripting environment is one of the standard means of providing a scripting API that is specific to your application. Usually these custom properties are objects created by the newQObject() or newObject() functions, or constructor functions created by newFunction().

Script Exceptions

evaluate() can throw a script exception (e.g. due to a syntax error); in that case, the return value is the value that was thrown (typically an Error object). You can check whether the evaluation caused an exception by calling hasUncaughtException(). In that case, you can call toString() on the error object to obtain an error message. The current uncaught exception is also available through uncaughtException(). Calling clearExceptions() will cause any uncaught exceptions to be cleared.

 QScriptValue result = myEngine.evaluate(...);
 if (myEngine.hasUncaughtException()) {
     int line = myEngine.uncaughtExceptionLineNumber();
     qDebug() << "uncaught exception at line" << line << ":" << result.toString();
 }

The checkSyntax() function can be used to determine whether code can be usefully passed to evaluate().

Script Object Creation

Use newObject() to create a standard Qt Script object; this is the C++ equivalent of the script statement new Object(). You can use the object-specific functionality in QScriptValue to manipulate the script object (e.g. QScriptValue.setProperty()). Similarly, use newArray() to create a Qt Script array object. Use newDate() to create a Date object, and newRegExp() to create a RegExp object.

QObject Integration

Use newQObject() to wrap a QObject (or subclass) pointer. newQObject() returns a proxy script object; properties, children, and signals and slots of the QObject are available as properties of the proxy object. No binding code is needed because it is done dynamically using the Qt meta object system.

 QPushButton button;
 QScriptValue scriptButton = myEngine.newQObject(&button);
 myEngine.globalObject().setProperty("button", scriptButton);

 myEngine.evaluate("button.checkable = true");

 qDebug() << scriptButton.property("checkable").toBoolean();
 scriptButton.property("show").call(); // call the show() slot

Use qScriptConnect() to connect a C++ signal to a script function; this is the Qt Script equivalent of QObject.connect(). When a script function is invoked in response to a C++ signal, it can cause a script exception; you can connect to the signalHandlerException() signal to catch such an exception.

Use newQMetaObject() to wrap a QMetaObject; this gives you a "script representation" of a QObject-based class. newQMetaObject() returns a proxy script object; enum values of the class are available as properties of the proxy object. You can also specify a function that will be used to construct objects of the class (e.g. when the constructor is invoked from a script). For classes that have a "standard" Qt constructor, Qt Script can provide a default script constructor for you; see scriptValueFromQMetaObject().

For more information about QObject integration, see Making Applications Scriptable

Support for Custom C++ Types

Use newVariant() to wrap a QVariant. This can be used to store values of custom (non-QObject) C++ types that have been registered with the Qt meta-type system. To make such types scriptable, you typically associate a prototype (delegate) object with the C++ type by calling setDefaultPrototype(); the prototype object defines the scripting API for the C++ type. Unlike the QObject integration, there is no automatic binding possible here; i.e. you have to create the scripting API yourself, for example by using the QScriptable class.

Use fromScriptValue() to cast from a QScriptValue to another type, and toScriptValue() to create a QScriptValue from another value. You can specify how the conversion of C++ types is to be performed with qScriptRegisterMetaType() and qScriptRegisterSequenceMetaType(). By default, Qt Script will use QVariant to store values of custom types.

Importing Extensions

Use importExtension() to import plugin-based extensions into the engine. Call availableExtensions() to obtain a list naming all the available extensions, and importedExtensions() to obtain a list naming only those extensions that have been imported.

Call pushContext() to open up a new variable scope, and popContext() to close the current scope. This is useful if you are implementing an extension that evaluates script code containing temporary variable definitions (e.g. var foo = 123;) that are safe to discard when evaluation has completed.

Native Functions

Use newFunction() to wrap native (C++) functions, including constructors for your own custom types, so that these can be invoked from script code. Such functions must have the signature QScriptEngine.FunctionSignature. You may then pass the function as argument to newFunction(). Here is an example of a function that returns the sum of its first two arguments:

 QScriptValue myAdd(QScriptContext *context, QScriptEngine *engine)
 {
    QScriptValue a = context->argument(0);
    QScriptValue b = context->argument(1);
    return a.toNumber() + b.toNumber();
 }

To expose this function to script code, you can set it as a property of the Global Object:

 QScriptValue fun = myEngine.newFunction(myAdd);
 myEngine.globalObject().setProperty("myAdd", fun);

Once this is done, script code can call your function in the exact same manner as a "normal" script function:

 QScriptValue result = myEngine.evaluate("myAdd(myNumber, 1)");

Long-running Scripts

If you need to evaluate possibly long-running scripts from the main (GUI) thread, you should first call setProcessEventsInterval() to make sure that the GUI stays responsive. You can abort a currently running script by calling abortEvaluation(). You can determine whether an engine is currently running a script by calling isEvaluating().

Garbage Collection

Qt Script objects may be garbage collected when they are no longer referenced. There is no guarantee as to when automatic garbage collection will take place.

The collectGarbage() function can be called to explicitly request garbage collection.

The reportAdditionalMemoryCost() function can be called to indicate that a Qt Script object occupies memory that isn't managed by the scripting environment. Reporting the additional cost makes it more likely that the garbage collector will be triggered. This can be useful, for example, when many custom, native Qt Script objects are allocated.

Core Debugging/Tracing Facilities

Since Qt 4.4, you can be notified of events pertaining to script execution (e.g. script function calls and statement execution) through the QScriptEngineAgent interface; see the setAgent() function. This can be used to implement debugging and profiling of a QScriptEngine.


Type Documentation

QScriptEngine.QObjectWrapOption

These flags specify options when wrapping a QObject pointer with newQObject().

Constant Value Description
QScriptEngine.ExcludeChildObjects 0x0001 The script object will not expose child objects as properties.
QScriptEngine.ExcludeSuperClassMethods 0x0002 The script object will not expose signals and slots inherited from the superclass.
QScriptEngine.ExcludeSuperClassProperties 0x0004 The script object will not expose properties inherited from the superclass.
QScriptEngine.ExcludeSuperClassContents 0x0006 Shorthand form for ExcludeSuperClassMethods | ExcludeSuperClassProperties
QScriptEngine.ExcludeDeleteLater 0x0010 The script object will not expose the QObject.deleteLater() slot.
QScriptEngine.ExcludeSlots 0x0020 The script object will not expose the QObject's slots.
QScriptEngine.AutoCreateDynamicProperties 0x0100 Properties that don't already exist in the QObject will be created as dynamic properties of that object, rather than as properties of the script object.
QScriptEngine.PreferExistingWrapperObject 0x0200 If a wrapper object with the requested configuration already exists, return that object.
QScriptEngine.SkipMethodsInEnumeration 0x0008 Don't include methods (signals and slots) when enumerating the object's properties.

The QObjectWrapOptions type is a typedef for QFlags<QObjectWrapOption>. It stores an OR combination of QObjectWrapOption values.

QScriptEngine.ValueOwnership

This enum specifies the ownership when wrapping a C++ value, e.g. by using newQObject().

Constant Value Description
QScriptEngine.QtOwnership 0 The standard Qt ownership rules apply, i.e. the associated object will never be explicitly deleted by the script engine. This is the default. (QObject ownership is explained in Object Trees & Ownership.)
QScriptEngine.ScriptOwnership 1 The value is owned by the script environment. The associated data will be deleted when appropriate (i.e. after the garbage collector has discovered that there are no more live references to the value).
QScriptEngine.AutoOwnership 2 If the associated object has a parent, the Qt ownership rules apply (QtOwnership); otherwise, the object is owned by the script environment (ScriptOwnership).

Method Documentation

QScriptEngine.__init__ (self)

Constructs a QScriptEngine object.

The globalObject() is initialized to have properties as described in ECMA-262, Section 15.1.

QScriptEngine.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QScriptEngine object with the given parent.

The globalObject() is initialized to have properties as described in ECMA-262, Section 15.1.

QScriptEngine.abortEvaluation (self, QScriptValue result = QScriptValue())

Aborts any script evaluation currently taking place in this engine. The given result is passed back as the result of the evaluation (i.e. it is returned from the call to evaluate() being aborted).

If the engine isn't evaluating a script (i.e. isEvaluating() returns false), this function does nothing.

Call this function if you need to abort a running script for some reason, e.g. when you have detected that the script has been running for several seconds without completing.

This function was introduced in Qt 4.4.

See also evaluate(), isEvaluating(), and setProcessEventsInterval().

QScriptEngineAgent QScriptEngine.agent (self)

Returns the agent currently installed on this engine, or 0 if no agent is installed.

This function was introduced in Qt 4.4.

See also setAgent().

QStringList QScriptEngine.availableExtensions (self)

Returns a list naming the available extensions that can be imported using the importExtension() function. This list includes extensions that have been imported.

This function was introduced in Qt 4.4.

See also importExtension() and importedExtensions().

bool QScriptEngine.canEvaluate (self, QString program)

QScriptSyntaxCheckResult QScriptEngine.checkSyntax (QString program)

Checks the syntax of the given program. Returns a QScriptSyntaxCheckResult object that contains the result of the check.

This function was introduced in Qt 4.5.

QScriptEngine.clearExceptions (self)

Clears any uncaught exceptions in this engine.

This function was introduced in Qt 4.4.

See also hasUncaughtException().

QScriptEngine.collectGarbage (self)

Runs the garbage collector.

The garbage collector will attempt to reclaim memory by locating and disposing of objects that are no longer reachable in the script environment.

Normally you don't need to call this function; the garbage collector will automatically be invoked when the QScriptEngine decides that it's wise to do so (i.e. when a certain number of new objects have been created). However, you can call this function to explicitly request that garbage collection should be performed as soon as possible.

See also reportAdditionalMemoryCost().

QScriptContext QScriptEngine.currentContext (self)

Returns the current context.

The current context is typically accessed to retrieve the arguments and `this' object in native functions; for convenience, it is available as the first argument in QScriptEngine.FunctionSignature.

QScriptValue QScriptEngine.defaultPrototype (self, int metaTypeId)

Returns the default prototype associated with the given metaTypeId, or an invalid QScriptValue if no default prototype has been set.

See also setDefaultPrototype().

QScriptValue QScriptEngine.evaluate (self, QString program, QString fileName = QString(), int lineNumber = 1)

Evaluates program, using lineNumber as the base line number, and returns the result of the evaluation.

The script code will be evaluated in the current context.

The evaluation of program can cause an exception in the engine; in this case the return value will be the exception that was thrown (typically an Error object). You can call hasUncaughtException() to determine if an exception occurred in the last call to evaluate().

lineNumber is used to specify a starting line number for program; line number information reported by the engine that pertain to this evaluation (e.g. uncaughtExceptionLineNumber()) will be based on this argument. For example, if program consists of two lines of code, and the statement on the second line causes a script exception, uncaughtExceptionLineNumber() would return the given lineNumber plus one. When no starting line number is specified, line numbers will be 1-based.

fileName is used for error reporting. For example in error objects the file name is accessible through the "fileName" property if it's provided with this function.

See also canEvaluate(), hasUncaughtException(), isEvaluating(), and abortEvaluation().

QScriptValue QScriptEngine.globalObject (self)

Returns this engine's Global Object.

By default, the Global Object contains the built-in objects that are part of ECMA-262, such as Math, Date and String. Additionally, you can set properties of the Global Object to make your own extensions available to all script code. Non-local variables in script code will be created as properties of the Global Object, as well as local variables in global code.

See also setGlobalObject().

bool QScriptEngine.hasUncaughtException (self)

Returns true if the last script evaluation resulted in an uncaught exception; otherwise returns false.

The exception state is cleared when evaluate() is called.

See also uncaughtException() and uncaughtExceptionLineNumber().

QStringList QScriptEngine.importedExtensions (self)

Returns a list naming the extensions that have been imported using the importExtension() function.

This function was introduced in Qt 4.4.

See also availableExtensions().

QScriptValue QScriptEngine.importExtension (self, QString extension)

Imports the given extension into this QScriptEngine. Returns undefinedValue() if the extension was successfully imported. You can call hasUncaughtException() to check if an error occurred; in that case, the return value is the value that was thrown by the exception (usually an Error object).

QScriptEngine ensures that a particular extension is only imported once; subsequent calls to importExtension() with the same extension name will do nothing and return undefinedValue().

See also availableExtensions(), QScriptExtensionPlugin, and Creating QtScript Extensions.

QScriptEngine.installTranslatorFunctions (self, QScriptValue object = QScriptValue())

Installs translator functions on the given object, or on the Global Object if no object is specified.

The relation between Qt Script translator functions and C++ translator functions is described in the following table:

Script Function Corresponding C++ Function
qsTr() QObject.tr()
QT_TR_NOOP() QT_TR_NOOP()
qsTranslate() QCoreApplication.translate()
QT_TRANSLATE_NOOP() QT_TRANSLATE_NOOP()
qsTrId() (since 4.7) qtTrId()
QT_TRID_NOOP() (since 4.7) QT_TRID_NOOP()

This function was introduced in Qt 4.5.

See also Internationalization with Qt.

bool QScriptEngine.isEvaluating (self)

Returns true if this engine is currently evaluating a script, otherwise returns false.

This function was introduced in Qt 4.4.

See also evaluate() and abortEvaluation().

QScriptValue QScriptEngine.newArray (self, int length = 0)

Creates a QtScript object of class Array with the given length.

See also newObject().

QScriptValue QScriptEngine.newDate (self, float value)

Creates a QtScript object of class Date with the given value (the number of milliseconds since 01 January 1970, UTC).

QScriptValue QScriptEngine.newDate (self, QDateTime value)

Creates a QtScript object of class Date from the given value.

See also QScriptValue.toDateTime().

QScriptValue QScriptEngine.newFunction (self, callable signature, int length = 0)

Creates a QScriptValue that wraps a native (C++) function. fun must be a C++ function with signature QScriptEngine.FunctionSignature. length is the number of arguments that fun expects; this becomes the length property of the created QScriptValue.

Note that length only gives an indication of the number of arguments that the function expects; an actual invocation of a function can include any number of arguments. You can check the argumentCount() of the QScriptContext associated with the invocation to determine the actual number of arguments passed.

A prototype property is automatically created for the resulting function object, to provide for the possibility that the function will be used as a constructor.

By combining newFunction() and the property flags QScriptValue.PropertyGetter and QScriptValue.PropertySetter, you can create script object properties that behave like normal properties in script code, but are in fact accessed through functions (analogous to how properties work in Qt's Property System). Example:

 static QScriptValue getSetFoo(QScriptContext *context, QScriptEngine *engine)
 {
     QScriptValue callee = context->callee();
     if (context->argumentCount() == 1) // writing?
         callee.setProperty("value", context->argument(0));
     return callee.property("value");
 }

 ....

 QScriptValue object = engine.newObject();
 object.setProperty("foo", engine.newFunction(getSetFoo),
     QScriptValue.PropertyGetter | QScriptValue.PropertySetter);

When the property foo of the script object is subsequently accessed in script code, getSetFoo() will be invoked to handle the access. In this particular case, we chose to store the "real" value of foo as a property of the accessor function itself; you are of course free to do whatever you like in this function.

In the above example, a single native function was used to handle both reads and writes to the property; the argument count is used to determine if we are handling a read or write. You can also use two separate functions; just specify the relevant flag (QScriptValue.PropertyGetter or QScriptValue.PropertySetter) when setting the property, e.g.:

 QScriptValue object = engine.newObject();
 object.setProperty("foo", engine.newFunction(getFoo), QScriptValue.PropertyGetter);
 object.setProperty("foo", engine.newFunction(setFoo), QScriptValue.PropertySetter);

See also QScriptValue.call().

QScriptValue QScriptEngine.newFunction (self, callable signature, QScriptValue prototype, int length = 0)

Creates a constructor function from fun, with the given length. The prototype property of the resulting function is set to be the given prototype. The constructor property of prototype is set to be the resulting function.

When a function is called as a constructor (e.g. new Foo()), the `this' object associated with the function call is the new object that the function is expected to initialize; the prototype of this default constructed object will be the function's public prototype property. If you always want the function to behave as a constructor (e.g. Foo() should also create a new object), or if you need to create your own object rather than using the default `this' object, you should make sure that the prototype of your object is set correctly; either by setting it manually, or, when wrapping a custom type, by having registered the defaultPrototype() of that type. Example:

 QScriptValue Foo(QScriptContext *context, QScriptEngine *engine)
 {
     if (context->calledAsConstructor()) {
         // initialize the new object
         context->thisObject().setProperty("bar", ...);
         // ...
         // return a non-object value to indicate that the
         // thisObject() should be the result of the "new Foo()" expression
         return engine->undefinedValue();
     } else {
         // not called as "new Foo()", just "Foo()"
         // create our own object and return that one
         QScriptValue object = engine->newObject();
         object.setPrototype(context->callee().property("prototype"));
         object.setProperty("baz", ...);
         return object;
     }
 }

 ...

 QScriptValue fooProto = engine->newObject();
 fooProto.setProperty("whatever", ...);
 engine->globalObject().setProperty("Foo", engine->newFunction(Foo, fooProto));

To wrap a custom type and provide a constructor for it, you'd typically do something like this:

 class Bar { ... };

 Q_DECLARE_METATYPE(Bar)

 QScriptValue constructBar(QScriptContext *context, QScriptEngine *engine)
 {
     Bar bar;
     // initialize from arguments in context, if desired
     ...
     return engine->toScriptValue(bar);
 }

 class BarPrototype : public QObject, public QScriptable
 {
 // provide the scriptable interface of this type using slots and properties
 ...
 };

 ...

 // create and register the Bar prototype and constructor in the engine
 BarPrototype *barPrototypeObject = new BarPrototype(...);
 QScriptValue barProto = engine->newQObject(barPrototypeObject);
 engine->setDefaultPrototype(qMetaTypeId<Bar>, barProto);
 QScriptValue barCtor = engine->newFunction(constructBar, barProto);
 engine->globalObject().setProperty("Bar", barCtor);

QScriptValue QScriptEngine.newObject (self)

Creates a QtScript object of class Object.

The prototype of the created object will be the Object prototype object.

See also newArray() and QScriptValue.setProperty().

QScriptValue QScriptEngine.newObject (self, QScriptClass scriptClass, QScriptValue data = QScriptValue())

This is an overloaded function.

Creates a QtScript Object of the given class, scriptClass.

The prototype of the created object will be the Object prototype object.

data, if specified, is set as the internal data of the new object (using QScriptValue.setData()).

This function was introduced in Qt 4.4.

See also QScriptValue.scriptClass() and reportAdditionalMemoryCost().

QScriptValue QScriptEngine.newQMetaObject (self, QMetaObject metaObject, QScriptValue ctor = QScriptValue())

Creates a QtScript object that represents a QObject class, using the the given metaObject and constructor ctor.

Enums of metaObject (declared with Q_ENUMS) are available as properties of the created QScriptValue. When the class is called as a function, ctor will be called to create a new instance of the class.

Example:

 QScriptValue mySpecialQObjectConstructor(QScriptContext *context,
                                          QScriptEngine *engine)
 {
     QObject *parent = context->argument(0).toQObject();
     QObject *object = new QObject(parent);
     return engine->newQObject(object, QScriptEngine.ScriptOwnership);
 }

 ...

 QScriptValue ctor = engine.newFunction(mySpecialQObjectConstructor);
 QScriptValue metaObject = engine.newQMetaObject(&QObject.staticMetaObject, ctor);
 engine.globalObject().setProperty("QObject", metaObject);

 QScriptValue result = engine.evaluate("new QObject()");

See also newQObject() and scriptValueFromQMetaObject().

QScriptValue QScriptEngine.newQObject (self, QObject object, ValueOwnership ownership = QScriptEngine.QtOwnership, QObjectWrapOptions options = 0)

Creates a QtScript object that wraps the given QObject object, using the given ownership. The given options control various aspects of the interaction with the resulting script object.

Signals and slots, properties and children of object are available as properties of the created QScriptValue. For more information, see the QtScript documentation.

If object is a null pointer, this function returns nullValue().

If a default prototype has been registered for the object's class (or its superclass, recursively), the prototype of the new script object will be set to be that default prototype.

If the given object is deleted outside of QtScript's control, any attempt to access the deleted QObject's members through the QtScript wrapper object (either by script code or C++) will result in a script exception.

See also QScriptValue.toQObject() and reportAdditionalMemoryCost().

QScriptValue QScriptEngine.newQObject (self, QScriptValue scriptObject, QObject qtObject, ValueOwnership ownership = QScriptEngine.QtOwnership, QObjectWrapOptions options = 0)

This is an overloaded function.

Initializes the given scriptObject to hold the given qtObject, and returns the scriptObject.

This function enables you to "promote" a plain Qt Script object (created by the newObject() function) to a QObject proxy, or to replace the QObject contained inside an object previously created by the newQObject() function.

The prototype() of the scriptObject will remain unchanged.

If scriptObject is not an object, this function behaves like the normal newQObject(), i.e. it creates a new script object and returns it.

This function is useful when you want to provide a script constructor for a QObject-based class. If your constructor is invoked in a new expression (QScriptContext.isCalledAsConstructor() returns true), you can pass QScriptContext.thisObject() (the default constructed script object) to this function to initialize the new object.

This function was introduced in Qt 4.4.

See also reportAdditionalMemoryCost().

QScriptValue QScriptEngine.newRegExp (self, QRegExp regexp)

Creates a QtScript object of class RegExp with the given regexp.

See also QScriptValue.toRegExp().

QScriptValue QScriptEngine.newRegExp (self, QString pattern, QString flags)

Creates a QtScript object of class RegExp with the given pattern and flags.

The legal flags are 'g' (global), 'i' (ignore case), and 'm' (multiline).

QScriptValue QScriptEngine.newVariant (self, QVariant value)

Creates a QtScript object holding the given variant value.

If a default prototype has been registered with the meta type id of value, then the prototype of the created object will be that prototype; otherwise, the prototype will be the Object prototype object.

See also setDefaultPrototype(), QScriptValue.toVariant(), and reportAdditionalMemoryCost().

QScriptValue QScriptEngine.newVariant (self, QScriptValue object, QVariant value)

This is an overloaded function.

Initializes the given Qt Script object to hold the given variant value, and returns the object.

This function enables you to "promote" a plain Qt Script object (created by the newObject() function) to a variant, or to replace the variant contained inside an object previously created by the newVariant() function.

The prototype() of the object will remain unchanged.

If object is not an object, this function behaves like the normal newVariant(), i.e. it creates a new script object and returns it.

This function is useful when you want to provide a script constructor for a C++ type. If your constructor is invoked in a new expression (QScriptContext.isCalledAsConstructor() returns true), you can pass QScriptContext.thisObject() (the default constructed script object) to this function to initialize the new object.

This function was introduced in Qt 4.4.

See also reportAdditionalMemoryCost().

QScriptValue QScriptEngine.nullValue (self)

Returns a QScriptValue of the primitive type Null.

See also undefinedValue().

QScriptEngine.popContext (self)

Pops the current execution context and restores the previous one. This function must be used in conjunction with pushContext().

See also pushContext().

int QScriptEngine.processEventsInterval (self)

Returns the interval in milliseconds between calls to QCoreApplication.processEvents() while the interpreter is running.

See also setProcessEventsInterval().

QScriptContext QScriptEngine.pushContext (self)

Enters a new execution context and returns the associated QScriptContext object.

Once you are done with the context, you should call popContext() to restore the old context.

By default, the `this' object of the new context is the Global Object. The context's callee() will be invalid.

This function is useful when you want to evaluate script code as if it were the body of a function. You can use the context's activationObject() to initialize local variables that will be available to scripts. Example:

 QScriptEngine engine;
 QScriptContext *context = engine.pushContext();
 context->activationObject().setProperty("myArg", 123);
 engine.evaluate("var tmp = myArg + 42");
 ...
 engine.popContext();

In the above example, the new variable "tmp" defined in the script will be local to the context; in other words, the script doesn't have any effect on the global environment.

Returns 0 in case of stack overflow

See also popContext().

QScriptEngine.reportAdditionalMemoryCost (self, int size)

Reports an additional memory cost of the given size, measured in bytes, to the garbage collector.

This function can be called to indicate that a Qt Script object has memory associated with it that isn't managed by Qt Script itself. Reporting the additional cost makes it more likely that the garbage collector will be triggered.

Note that if the additional memory is shared with objects outside the scripting environment, the cost should not be reported, since collecting the Qt Script object would not cause the memory to be freed anyway.

Negative size values are ignored, i.e. this function can't be used to report that the additional memory has been deallocated.

This function was introduced in Qt 4.7.

See also collectGarbage().

QScriptEngine.setAgent (self, QScriptEngineAgent agent)

Installs the given agent on this engine. The agent will be notified of various events pertaining to script execution. This is useful when you want to find out exactly what the engine is doing, e.g. when evaluate() is called. The agent interface is the basis of tools like debuggers and profilers.

The engine maintains ownership of the agent.

Calling this function will replace the existing agent, if any.

This function was introduced in Qt 4.4.

See also agent().

QScriptEngine.setDefaultPrototype (self, int metaTypeId, QScriptValue prototype)

Sets the default prototype of the C++ type identified by the given metaTypeId to prototype.

The default prototype provides a script interface for values of type metaTypeId when a value of that type is accessed from script code. Whenever the script engine (implicitly or explicitly) creates a QScriptValue from a value of type metaTypeId, the default prototype will be set as the QScriptValue's prototype.

The prototype object itself may be constructed using one of two principal techniques; the simplest is to subclass QScriptable, which enables you to define the scripting API of the type through QObject properties and slots. Another possibility is to create a script object by calling newObject(), and populate the object with the desired properties (e.g. native functions wrapped with newFunction()).

See also defaultPrototype(), qScriptRegisterMetaType(), QScriptable, and Default Prototypes Example.

QScriptEngine.setGlobalObject (self, QScriptValue object)

Sets this engine's Global Object to be the given object. If object is not a valid script object, this function does nothing.

When setting a custom global object, you may want to use QScriptValueIterator to copy the properties of the standard Global Object; alternatively, you can set the internal prototype of your custom object to be the original Global Object.

This function was introduced in Qt 4.5.

See also globalObject().

QScriptEngine.setProcessEventsInterval (self, int interval)

Sets the interval between calls to QCoreApplication.processEvents to interval milliseconds.

While the interpreter is running, all event processing is by default blocked. This means for instance that the gui will not be updated and timers will not be fired. To allow event processing during interpreter execution one can specify the processing interval to be a positive value, indicating the number of milliseconds between each time QCoreApplication.processEvents() is called.

The default value is -1, which disables event processing during interpreter execution.

You can use QCoreApplication.postEvent() to post an event that performs custom processing at the next interval. For example, you could keep track of the total running time of the script and call abortEvaluation() when you detect that the script has been running for a long time without completing.

See also processEventsInterval().

QScriptValue QScriptEngine.toObject (self, QScriptValue value)

Converts the given value to an object, if such a conversion is possible; otherwise returns an invalid QScriptValue. The conversion is performed according to the following table:

Input Type Result
Undefined An invalid QScriptValue.
Null An invalid QScriptValue.
Boolean A new Boolean object whose internal value is set to the value of the boolean.
Number A new Number object whose internal value is set to the value of the number.
String A new String object whose internal value is set to the value of the string.
Object The result is the object itself (no conversion).

This function was introduced in Qt 4.5.

See also newObject().

QScriptString QScriptEngine.toStringHandle (self, QString str)

Returns a handle that represents the given string, str.

QScriptString can be used to quickly look up properties, and compare property names, of script objects.

This function was introduced in Qt 4.4.

See also QScriptValue.property().

QScriptValue QScriptEngine.uncaughtException (self)

Returns the current uncaught exception, or an invalid QScriptValue if there is no uncaught exception.

The exception value is typically an Error object; in that case, you can call toString() on the return value to obtain an error message.

See also hasUncaughtException() and uncaughtExceptionLineNumber().

QStringList QScriptEngine.uncaughtExceptionBacktrace (self)

Returns a human-readable backtrace of the last uncaught exception.

It is in the form <function-name>()@<file-name>:<line-number>.

See also uncaughtException().

int QScriptEngine.uncaughtExceptionLineNumber (self)

Returns the line number where the last uncaught exception occurred.

Line numbers are 1-based, unless a different base was specified as the second argument to evaluate().

See also hasUncaughtException().

QScriptValue QScriptEngine.undefinedValue (self)

Returns a QScriptValue of the primitive type Undefined.

See also nullValue().


Qt Signal Documentation

void signalHandlerException (const QScriptValue&)

This is the default overload of this signal.

This signal is emitted when a script function connected to a signal causes an exception.

This function was introduced in Qt 4.4.

See also qScriptConnect().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptengineagent.html0000644000076500000240000004560712536324521022254 0ustar philstaff00000000000000 QScriptEngineAgent Class Reference
  Home · All Classes · Modules

QScriptEngineAgent Class Reference
[QtScript module]

The QScriptEngineAgent class provides an interface to report events pertaining to QScriptEngine execution. More...

Types

Methods


Detailed Description

The QScriptEngineAgent class provides an interface to report events pertaining to QScriptEngine execution.

The QScriptEngineAgent class is the basis of tools that monitor and/or control the execution of a QScriptEngine, such as debuggers and profilers.

To process script loading and unloading events, reimplement the scriptLoad() and scriptUnload() functions. scriptLoad() is called after the input to QScriptEngine.evaluate() has been parsed, right before the given script is executed. The engine assigns each script an ID, which is available as one of the arguments to scriptLoad(); subsequently, other event handlers can use the ID to identify a particular script. One common usage of scriptLoad() is to retain the script text, filename and base line number (the original input to QScriptEngine.evaluate()), so that other event handlers can e.g. map a line number to the corresponding line of text.

scriptUnload() is called when the QScriptEngine has no further use for a script; the QScriptEngineAgent may at this point safely discard any resources associated with the script (such as the script text). Note that after scriptUnload() has been called, the QScriptEngine may reuse the relevant script ID for new scripts (i.e. as argument to a subsequent call to scriptLoad()).

Evaluating the following script will result in scriptUnload() being called immediately after evaluation has completed:

 var a = Math.random() + 2;

Evaluating the following script will \b{not} result in a call to scriptUnload() when evaluation has completed:

 function cube(a) {
     return a * a * a;
 }

 var a = cube(3);

The script isn't unloaded because it defines a function (cube) that remains in the script environment after evaluation has completed. If a subsequent script removed the cube function (e.g. by setting it to null), scriptUnload() would be called when the function is garbage collected. In general terms, a script isn't unloaded until the engine has determined that none of its contents is referenced.

To process script function calls and returns, reimplement the functionEntry() and functionExit() functions. functionEntry() is called when a script function is about to be executed; functionExit() is called when a script function is about to return, either normally or due to an exception.

To process individual script statements, reimplement positionChange(). positionChange() is called each time the engine is about to execute a new statement of a script, and thus offers the finest level of script monitoring.

To process exceptions, reimplement exceptionThrow() and exceptionCatch(). exceptionThrow() is called when a script exception is thrown, before it has been handled. exceptionCatch() is called when an exception handler is present, and execution is about to be resumed at the handler code.


Type Documentation

QScriptEngineAgent.Extension

This enum specifies the possible extensions to a QScriptEngineAgent.

Constant Value Description
QScriptEngineAgent.DebuggerInvocationRequest 0 The agent handles debugger script statements.

See also extension().


Method Documentation

QScriptEngineAgent.__init__ (self, QScriptEngine engine)

The engine argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QScriptEngineAgent object for the given engine.

The engine takes ownership of the agent.

Call QScriptEngine.setAgent() to make this agent the active agent.

QScriptEngineAgent.contextPop (self)

This function is called when the current script context is about to be popped.

The default implementation does nothing.

See also contextPush() and functionExit().

QScriptEngineAgent.contextPush (self)

This function is called when a new script context has been pushed.

The default implementation does nothing.

See also contextPop() and functionEntry().

QScriptEngine QScriptEngineAgent.engine (self)

Returns the QScriptEngine that this agent is associated with.

QScriptEngineAgent.exceptionCatch (self, int scriptId, QScriptValue exception)

This function is called when the given exception is about to be caught, in the script identified by scriptId.

Reimplement this function if you want to handle this event.

The default implementation does nothing.

See also exceptionThrow().

QScriptEngineAgent.exceptionThrow (self, int scriptId, QScriptValue exception, bool hasHandler)

This function is called when the given exception has occurred in the engine, in the script identified by scriptId. If the exception was thrown by a native Qt Script function, scriptId is -1.

If hasHandler is true, there is a catch or finally block that will handle the exception. If hasHandler is false, there is no handler for the exception.

Reimplement this function if you want to handle this event. For example, a debugger can notify the user when an uncaught exception occurs (i.e. hasHandler is false).

The default implementation does nothing.

See also exceptionCatch().

QVariant QScriptEngineAgent.extension (self, Extension extension, QVariant argument = QVariant())

This virtual function can be reimplemented in a QScriptEngineAgent subclass to provide support for extensions. The optional argument can be provided as input to the extension; the result must be returned in the form of a QVariant. You can call supportsExtension() to check if an extension is supported by the QScriptEngineAgent. By default, no extensions are supported, and this function returns an invalid QVariant.

If you implement the DebuggerInvocationRequest extension, Qt Script will call this function when a debugger statement is encountered in a script. The argument is a QVariantList containing three items: The first item is the scriptId (a long), the second item is the line number (an int), and the third item is the column number (an int).

See also supportsExtension().

QScriptEngineAgent.functionEntry (self, int scriptId)

This function is called when a script function is called in the engine. If the script function is not a native Qt Script function, it resides in the script identified by scriptId; otherwise, scriptId is -1.

This function is called just before execution of the script function begins. You can obtain the QScriptContext associated with the function call with QScriptEngine.currentContext(). The arguments passed to the function are available.

Reimplement this function to handle this event. For example, a debugger implementation could reimplement this function (and functionExit()) to keep track of the call stack and provide step-over functionality.

The default implementation does nothing.

See also functionExit(), positionChange(), and QScriptEngine.currentContext().

QScriptEngineAgent.functionExit (self, int scriptId, QScriptValue returnValue)

This function is called when the currently executing script function is about to return. If the script function is not a native Qt Script function, it resides in the script identified by scriptId; otherwise, scriptId is -1. The returnValue is the value that the script function will return.

This function is called just before the script function returns. You can still access the QScriptContext associated with the script function call with QScriptEngine.currentContext().

If the engine's hasUncaughtException() function returns true, the script function is exiting due to an exception; otherwise, the script function is returning normally.

Reimplement this function to handle this event; typically you will then also want to reimplement functionEntry().

The default implementation does nothing.

See also functionEntry() and QScriptEngine.hasUncaughtException().

QScriptEngineAgent.positionChange (self, int scriptId, int lineNumber, int columnNumber)

This function is called when the engine is about to execute a new statement in the script identified by scriptId. The statement begins on the line and column specified by lineNumber This event is not generated for native Qt Script functions.

Reimplement this function to handle this event. For example, a debugger implementation could reimplement this function to provide line-by-line stepping, and a profiler implementation could use it to count the number of times each statement is executed.

The default implementation does nothing.

Note: columnNumber is undefined

See also scriptLoad() and functionEntry().

QScriptEngineAgent.scriptLoad (self, int id, QString program, QString fileName, int baseLineNumber)

This function is called when the engine has parsed a script and has associated it with the given id. The id can be used to identify this particular script in subsequent event notifications.

program, fileName and baseLineNumber are the original arguments to the QScriptEngine.evaluate() call that triggered this event.

This function is called just before the script is about to be evaluated.

You can reimplement this function to record information about the script; for example, by retaining the script text, you can obtain the line of text corresponding to a line number in a subsequent call to positionChange().

The default implementation does nothing.

See also scriptUnload().

QScriptEngineAgent.scriptUnload (self, int id)

This function is called when the engine has discarded the script identified by the given id.

You can reimplement this function to clean up any resources you have associated with the script.

The default implementation does nothing.

See also scriptLoad().

bool QScriptEngineAgent.supportsExtension (self, Extension extension)

Returns true if the QScriptEngineAgent supports the given extension; otherwise, false is returned. By default, no extensions are supported.

See also extension().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptenginedebugger.html0000644000076500000240000006747712536324521022753 0ustar philstaff00000000000000 QScriptEngineDebugger Class Reference
  Home · All Classes · Modules

QScriptEngineDebugger Class Reference
[QtScriptTools module]

The QScriptEngineDebugger class provides a QScriptEngine debugger. More...

Inherits QObject.

Types

  • enum DebuggerAction { InterruptAction, ContinueAction, StepIntoAction, StepOverAction, ..., GoToLineAction }
  • enum DebuggerState { RunningState, SuspendedState }
  • enum DebuggerWidget { ConsoleWidget, StackWidget, ScriptsWidget, LocalsWidget, ..., ErrorLogWidget }

Methods

Qt Signals


Detailed Description

The QScriptEngineDebugger class provides a QScriptEngine debugger.

The QScriptEngineDebugger class provides a debugger that can be embedded into Qt applications that use Qt Script. The debugger enables the application user to inspect the state of the script environment and control script execution.

To attach the debugger to a script engine, call the attachTo() function.

     QScriptEngine engine;
     QScriptEngineDebugger debugger;
     debugger.attachTo(&engine);

Once the debugger has been attached to a script engine, you can proceed to evaluate scripts as usual, e.g. by calling QScriptEngine.evaluate(). The debugger will be triggered when an uncaught exception occurs, or when a debugger statement is encountered in a script. It is also possible to interrupt script evaluation at an arbitrary time by triggering the InterruptAction. For instance, to start the debugger when script evaluation starts, you trigger the action before you begin to evaluate() the script.

      debugger->action(QScriptEngineDebugger.InterruptAction)->trigger();
      engine->evaluate(contents, fileName);

By default, the standard debugger window is shown when evaluation is suspended. This can be changed by calling the setAutoShowStandardWindow() function.

The debugger defines a set of actions that are available, such as stopping execution or printing the contents of a variable. It also provides a set of widgets (components) that display the information available from the debugger and that trigger the actions on request. The actions available are identified by the DebuggerAction enum, and the widgets are identified by the DebuggerWidget enum.

Access to the individual debugger widgets is provided by the widget() function. This makes it possible to arrange the widgets in a custom manner. Similarly, the action() function provides access to the various debugger actions.

The createStandardToolBar() function creates a standard toolbar, and the createStandardMenu() function creates a standard menu; these functions can be useful if you are creating a custom debugger configuration.

The evaluationSuspended() signal is emitted when the debugger has suspended script evaluation and entered interactive mode, i.e., the mode in which it accepts input from the user. The evaluationResumed() signal is emitted when script evaluation is resumed, i.e, when execution control is given back to the script engine. The state() function returns the debugger's current state.

When calling QScriptEngine.evaluate() it is useful to pass a descriptive script name (file name) as second argument, as this is the name that will be displayed by the debugger in the ScriptsWidget; if a name is not passed, the script will be labelled "anonymous".

When evaluation is suspended, the debugger will also suspend the event loop of the script. In the following snippet, the call to QScriptEngine.evaluate() causes the debugger to be triggered, and the function call does not return until the user has finished interacting with the debugger.

     engine.evaluate("debugger");

When the Qt Script debugger is running, the C++ application itself is not "frozen". This means that it is possible that more scripts are evaluated, even though the debugger has suspended evaluation of the current script evaluation. For example, a C++ timer might trigger that causes a script function to be called, or the user might click on a button in the main application user interface whose clicked() signal is connected to a script function. This kind of nested evaluation is permitted. The debugger will enter interactive mode for the new script if an exception is thrown or a breakpoint is reached. Note that it will not stop when encountering debugger statements.

Nested evaluation requires some thought when deciding how the debugger is presented to the user; for example, whether a modal dialog is suitable, or whether some parts of the main application user interface should be disabled while the debugger is running.

Debugging inside of a paintEvent() is currently not supported. If you need to debug painting-related script code, that code should be evaluated outside of the C++ paintEvent(), e.g. by rendering to an image, like the Context2D and Tetrix QtScript examples do. This will make the code safe for debugging.

The debugger adds some special properties to the script engine: __FILE__ holds the name of the script in which the current evaluation occurs, and __LINE__ holds the current line number. These are useful when doing print()-style debugging (the messages appear in the debugger's debug output widget).

The Qt Script Debugger Manual describes how to use the debugger. The Context2D example shows how to integrate the debugger in applications.


Type Documentation

QScriptEngineDebugger.DebuggerAction

This enum specifies the action that the action() function should retrieve. The actions retrieved can be connected to any slot and connected to any widget. Please see the Qt Script Debugger Manual's Console Command Reference for a detailed description of these actions.

Constant Value Description
QScriptEngineDebugger.InterruptAction 0 Suspends script execution as soon as the next script statement is reached.
QScriptEngineDebugger.ContinueAction 1 Gives the execution control back to the script engine.
QScriptEngineDebugger.StepIntoAction 2 Performs a step action.
QScriptEngineDebugger.StepOverAction 3 Performs a next action.
QScriptEngineDebugger.StepOutAction 4 Executes the script until the current function returns.
QScriptEngineDebugger.RunToCursorAction 5 Continues execution to the selected line (which contains the cursor) in the CodeWidget.
QScriptEngineDebugger.RunToNewScriptAction 6 Returns control to the script engine until a new script is executed.
QScriptEngineDebugger.ToggleBreakpointAction 7 Toggles a breakpoint at the selected line in the CodeWidget.
QScriptEngineDebugger.ClearDebugOutputAction 8 Clears the contents of the DebugOutputWidget.
QScriptEngineDebugger.ClearErrorLogAction 9 Clears the contents of the ErrorLogWidget.
QScriptEngineDebugger.ClearConsoleAction 10 Clears the contents of the ConsoleWidget.
QScriptEngineDebugger.FindInScriptAction 11 Displays the CodeFinderWidget.
QScriptEngineDebugger.FindNextInScriptAction 12 Finds next occurrence in the CodeWidget.
QScriptEngineDebugger.FindPreviousInScriptAction 13 Finds previous occurrence in the CodeWidget.
QScriptEngineDebugger.GoToLineAction 14 Shows the "Go to Line" dialog.

QScriptEngineDebugger.DebuggerState

This enum specifies the current state of the debugger.

Constant Value Description
QScriptEngineDebugger.RunningState 0 The debugger is running. (Script evaluation is allowed.)
QScriptEngineDebugger.SuspendedState 1 The debugger has suspended script evaluation.

This enum was introduced or modified in Qt 4.6.

QScriptEngineDebugger.DebuggerWidget

This enum decides the widget that the widget() function should retrieve. We treat these widgets in more detail in the Qt Script Debugger Manual.

Constant Value Description
QScriptEngineDebugger.ConsoleWidget 0 Provides a command-line interface to the debugger.
QScriptEngineDebugger.StackWidget 1 Shows a backtrace of the script's execution state.
QScriptEngineDebugger.ScriptsWidget 2 Displays a list of currently loaded scripts.
QScriptEngineDebugger.LocalsWidget 3 Shows the local variables of the current stack frame.
QScriptEngineDebugger.CodeWidget 4 Displays the code of the current script.
QScriptEngineDebugger.CodeFinderWidget 5 Provides a widget that can search for text in the script shown in the CodeWidget.
QScriptEngineDebugger.BreakpointsWidget 6 Shows breakpoints that have been set.
QScriptEngineDebugger.DebugOutputWidget 7 Contains output from the print() script function.
QScriptEngineDebugger.ErrorLogWidget 8 Shows error messages that have been generated.

Method Documentation

QScriptEngineDebugger.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QScriptEngineDebugger object with the given parent.

To attach a QScriptEngine to the debugger, use attachTo() function.

QAction QScriptEngineDebugger.action (self, DebuggerAction action)

Returns a pointer to the specified action. The actions available are given by the DebuggerAction enum.

With this function, you can add the actions to your own widgets, toolbars, and menus. It is also convenient if you, for example, wish to spice things up with your own groovy icons. The code example below shows how to add actions to a QToolBar.

     QAction *continueAction = debugger->action(QScriptEngineDebugger.ContinueAction);
     QAction *stepOverAction = debugger->action(QScriptEngineDebugger.StepOverAction);
     QAction *stepIntoAction = debugger->action(QScriptEngineDebugger.StepIntoAction);

     QToolBar *toolBar = new QToolBar;
     toolBar->addAction(continueAction);

Note that QScriptEngineDebugger has already added the actions to its standard widgets and standard window.

See also widget(), createStandardMenu(), createStandardToolBar(), and standardWindow().

QScriptEngineDebugger.attachTo (self, QScriptEngine engine)

Attaches to the given engine.

The debugger will install a custom agent (using QScriptEngine.setAgent()) to monitor the engine. While the debugger is attached, you should not change the agent; however, if you do have to perform additional monitoring, you must set a proxy agent that forwards all events to the debugger's agent.

See also detach().

bool QScriptEngineDebugger.autoShowStandardWindow (self)

Returns whether the standard debugger window is automatically shown when evaluation is suspended.

The default is true.

See also setAutoShowStandardWindow().

QMenu QScriptEngineDebugger.createStandardMenu (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a standard debugger menu with the given parent. Returns the new menu object.

See also createStandardToolBar().

QToolBar QScriptEngineDebugger.createStandardToolBar (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a standard debugger toolbar with the given parent. Returns the new toolbar object.

See also createStandardMenu().

QScriptEngineDebugger.detach (self)

Detaches from the current script engine, if any.

See also attachTo().

QScriptEngineDebugger.setAutoShowStandardWindow (self, bool autoShow)

Sets whether the standard debugger window is automatically shown when evaluation is suspended. If autoShow is true, the window will be automatically shown, otherwise it will not.

See also autoShowStandardWindow().

QMainWindow QScriptEngineDebugger.standardWindow (self)

Returns a main window with a standard configuration of the debugger's components.

See also createStandardMenu() and createStandardToolBar().

DebuggerState QScriptEngineDebugger.state (self)

Returns the current state of the debugger.

This function was introduced in Qt 4.6.

See also evaluationResumed() and evaluationSuspended().

QWidget QScriptEngineDebugger.widget (self, DebuggerWidget widget)

Returns a pointer to the instance of the specified standard widget. The widgets available are defined by the DebuggerWidget enum.

A main window containing all widgets is returned by standardWindow(). If you do not want to use this window, you can fetch the individual widgets with this function. For instance, the code example below shows how to set up a layout containing a code window and a stack widget.

     QWidget *codeWindow = debugger->widget(QScriptEngineDebugger.CodeWidget);
     QWidget *stackWidget = debugger->widget(QScriptEngineDebugger.StackWidget);

     QLayout *layout = new QHBoxLayout;
     layout->addWidget(codeWindow);
     layout->addWidget(stackWidget);

Note that you need to set setAutoShowStandardWindow() to false; if not, the standard window will be shown regardless.

See also action(), standardWindow(), and setAutoShowStandardWindow().


Qt Signal Documentation

void evaluationResumed ()

This is the default overload of this signal.

This signal is emitted when the debugger has resumed script evaluation (e.g. the user gave the "continue" command).

See also evaluationSuspended().

void evaluationSuspended ()

This is the default overload of this signal.

This signal is emitted when the debugger has suspended script evaluation for whatever reason (e.g. due to an uncaught script exception, or due to a breakpoint being triggered).

See also evaluationResumed().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptstring.html0000644000076500000240000001271012536324521021263 0ustar philstaff00000000000000 QScriptString Class Reference
  Home · All Classes · Modules

QScriptString Class Reference
[QtScript module]

The QScriptString class acts as a handle to "interned" strings in a QScriptEngine. More...

Methods

Special Methods


Detailed Description

The QScriptString class acts as a handle to "interned" strings in a QScriptEngine.

QScriptString can be used to achieve faster (repeated) property getting/setting, and comparison of property names, of script objects.

To get a QScriptString representation of a string, pass the string to QScriptEngine.toStringHandle(). The typical usage pattern is to register one or more pre-defined strings when setting up your script environment, then subsequently use the relevant QScriptString as argument to e.g. QScriptValue.property().

Call the toString() function to obtain the string that a QScriptString represents.

Call the toArrayIndex() function to convert a QScriptString to an array index. This is useful when using QScriptClass to implement array-like objects.


Method Documentation

QScriptString.__init__ (self)

Constructs an invalid QScriptString.

QScriptString.__init__ (self, QScriptString other)

Constructs a new QScriptString that is a copy of other.

bool QScriptString.isValid (self)

Returns true if this QScriptString is valid; otherwise returns false.

(int, bool ok) QScriptString.toArrayIndex (self)

Attempts to convert this QScriptString to a QtScript array index, and returns the result.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

This function was introduced in Qt 4.6.

QString QScriptString.toString (self)

Returns the string that this QScriptString represents, or a null string if this QScriptString is not valid.

See also isValid().

bool QScriptString.__eq__ (self, QScriptString other)

int QScriptString.__hash__ (self)

bool QScriptString.__ne__ (self, QScriptString other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptsyntaxcheckresult.html0000644000076500000240000001274212536324521023545 0ustar philstaff00000000000000 QScriptSyntaxCheckResult Class Reference
  Home · All Classes · Modules

QScriptSyntaxCheckResult Class Reference
[QtScript module]

The QScriptSyntaxCheckResult class provides the result of a script syntax check. More...

Types

  • enum State { Error, Intermediate, Valid }

Methods


Detailed Description

The QScriptSyntaxCheckResult class provides the result of a script syntax check.

QScriptSyntaxCheckResult is returned by QScriptEngine.checkSyntax() to provide information about the syntactical (in)correctness of a script.


Type Documentation

QScriptSyntaxCheckResult.State

This enum specifies the state of a syntax check.

Constant Value Description
QScriptSyntaxCheckResult.Error 0 The program contains a syntax error.
QScriptSyntaxCheckResult.Intermediate 1 The program is incomplete.
QScriptSyntaxCheckResult.Valid 2 The program is a syntactically correct Qt Script program.

Method Documentation

QScriptSyntaxCheckResult.__init__ (self, QScriptSyntaxCheckResult other)

Constructs a new QScriptSyntaxCheckResult from the other result.

int QScriptSyntaxCheckResult.errorColumnNumber (self)

Returns the error column number of this QScriptSyntaxCheckResult, or -1 if there is no error.

See also state() and errorLineNumber().

int QScriptSyntaxCheckResult.errorLineNumber (self)

Returns the error line number of this QScriptSyntaxCheckResult, or -1 if there is no error.

See also state() and errorMessage().

QString QScriptSyntaxCheckResult.errorMessage (self)

Returns the error message of this QScriptSyntaxCheckResult, or an empty string if there is no error.

See also state() and errorLineNumber().

State QScriptSyntaxCheckResult.state (self)

Returns the state of this QScriptSyntaxCheckResult.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptvalue-propertyflags.html0000644000076500000240000001453612536324521024000 0ustar philstaff00000000000000 QScriptValue.PropertyFlags Class Reference
  Home · All Classes · Modules

QScriptValue.PropertyFlags Class Reference
[QtScript module]

Methods

Special Methods

  • PropertyFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, PropertyFlags f)
  • PropertyFlags __iand__ (self, int mask)
  • int __int__ (self)
  • PropertyFlags __invert__ (self)
  • PropertyFlags __ior__ (self, PropertyFlags f)
  • PropertyFlags __ixor__ (self, PropertyFlags f)
  • bool __ne__ (self, PropertyFlags f)
  • PropertyFlags __or__ (self, PropertyFlags f)
  • PropertyFlags __or__ (self, int f)
  • PropertyFlags __xor__ (self, PropertyFlags f)
  • PropertyFlags __xor__ (self, int f)

Detailed Description

PropertyFlag may be used whenever PropertyFlags is expected.


Method Documentation

PropertyFlags.__init__ (self, PropertyFlags)

PropertyFlags.__init__ (self, int)

PropertyFlags.__init__ (self)

PropertyFlags PropertyFlags.__and__ (self, int mask)

int PropertyFlags.__bool__ (self)

bool PropertyFlags.__eq__ (self, PropertyFlags f)

PropertyFlags PropertyFlags.__iand__ (self, int mask)

int PropertyFlags.__int__ (self)

PropertyFlags PropertyFlags.__invert__ (self)

PropertyFlags PropertyFlags.__ior__ (self, PropertyFlags f)

PropertyFlags PropertyFlags.__ixor__ (self, PropertyFlags f)

bool PropertyFlags.__ne__ (self, PropertyFlags f)

PropertyFlags PropertyFlags.__or__ (self, PropertyFlags f)

PropertyFlags PropertyFlags.__or__ (self, int f)

PropertyFlags PropertyFlags.__xor__ (self, PropertyFlags f)

PropertyFlags PropertyFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptvalue-resolveflags.html0000644000076500000240000001440212536324521023563 0ustar philstaff00000000000000 QScriptValue.ResolveFlags Class Reference
  Home · All Classes · Modules

QScriptValue.ResolveFlags Class Reference
[QtScript module]

Methods

Special Methods


Detailed Description

ResolveFlag may be used whenever ResolveFlags is expected.


Method Documentation

ResolveFlags.__init__ (self, ResolveFlags)

ResolveFlags.__init__ (self, int)

ResolveFlags.__init__ (self)

ResolveFlags ResolveFlags.__and__ (self, int mask)

int ResolveFlags.__bool__ (self)

bool ResolveFlags.__eq__ (self, ResolveFlags f)

ResolveFlags ResolveFlags.__iand__ (self, int mask)

int ResolveFlags.__int__ (self)

ResolveFlags ResolveFlags.__invert__ (self)

ResolveFlags ResolveFlags.__ior__ (self, ResolveFlags f)

ResolveFlags ResolveFlags.__ixor__ (self, ResolveFlags f)

bool ResolveFlags.__ne__ (self, ResolveFlags f)

ResolveFlags ResolveFlags.__or__ (self, ResolveFlags f)

ResolveFlags ResolveFlags.__or__ (self, int f)

ResolveFlags ResolveFlags.__xor__ (self, ResolveFlags f)

ResolveFlags ResolveFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptvalue.html0000644000076500000240000017350012536324521021076 0ustar philstaff00000000000000 QScriptValue Class Reference
  Home · All Classes · Modules

QScriptValue Class Reference
[QtScript module]

The QScriptValue class acts as a container for the Qt Script data types. More...

Types

Methods


Detailed Description

The QScriptValue class acts as a container for the Qt Script data types.

QScriptValue supports the types defined in the ECMA-262 standard: The primitive types, which are Undefined, Null, Boolean, Number, and String; and the Object type. Additionally, Qt Script has built-in support for QVariant, QObject and QMetaObject.

For the object-based types (including Date and RegExp), use the newT() functions in QScriptEngine (e.g. QScriptEngine.newObject()) to create a QScriptValue of the desired type. For the primitive types, use one of the QScriptValue constructor overloads.

The methods named isT() (e.g. isBool(), isUndefined()) can be used to test if a value is of a certain type. The methods named toT() (e.g. toBool(), toString()) can be used to convert a QScriptValue to another type. You can also use the generic qscriptvalue_cast() function.

Object values have zero or more properties which are themselves QScriptValues. Use setProperty() to set a property of an object, and call property() to retrieve the value of a property.

 QScriptEngine myEngine;
 QScriptValue myObject = myEngine.newObject();
 QScriptValue myOtherObject = myEngine.newObject();
 myObject.setProperty("myChild", myOtherObject);
 myObject.setProperty("name", "John Doe");

Each property can have a set of attributes; these are specified as the third (optional) argument to setProperty(). The attributes of a property can be queried by calling the propertyFlags() function. The following code snippet creates a property that cannot be modified by script code:

 QScriptValue val(&myEngine, 123);
 myObject.setProperty("myReadOnlyProperty", val, QScriptValue.ReadOnly);

If you want to iterate over the properties of a script object, use the QScriptValueIterator class.

Object values have an internal prototype property, which can be accessed with prototype() and setPrototype(). Properties added to a prototype are shared by all objects having that prototype; this is referred to as prototype-based inheritance. In practice, it means that (by default) the property() function will automatically attempt to look up look the property in the prototype() (and in the prototype of the prototype(), and so on), if the object itself does not have the requested property. Note that this prototype-based lookup is not performed by setProperty(); setProperty() will always create the property in the script object itself. For more information, see the QtScript documentation.

Function objects (objects for which isFunction() returns true) can be invoked by calling call(). Constructor functions can be used to construct new objects by calling construct().

Use equals(), strictlyEquals() and lessThan() to compare a QScriptValue to another.

Object values can have custom data associated with them; see the setData() and data() functions. By default, this data is not accessible to scripts; it can be used to store any data you want to associate with the script object. Typically this is used by custom class objects (see QScriptClass) to store a C++ type that contains the "native" object data.

Note that a QScriptValue for which isObject() is true only carries a reference to an actual object; copying the QScriptValue will only copy the object reference, not the object itself. If you want to clone an object (i.e. copy an object's properties to another object), you can do so with the help of a for-in statement in script code, or QScriptValueIterator in C++.


Type Documentation

QScriptValue.PropertyFlag

This enum describes the attributes of a property.

Constant Value Description
QScriptValue.ReadOnly 0x00000001 The property is read-only. Attempts by Qt Script code to write to the property will be ignored.
QScriptValue.Undeletable 0x00000002 Attempts by Qt Script code to delete the property will be ignored.
QScriptValue.SkipInEnumeration 0x00000004 The property is not to be enumerated by a for-in enumeration.
QScriptValue.PropertyGetter 0x00000008 The property is defined by a function which will be called to get the property value.
QScriptValue.PropertySetter 0x00000010 The property is defined by a function which will be called to set the property value.

This flag is used to indicate that an existing property is a QObject member (a property or method).

Constant Value Description
QScriptValue.KeepExistingFlags 0x00000800 This value is used to indicate to setProperty() that the property's flags should be left unchanged. If the property doesn't exist, the default flags (0) will be used.

Flags in this range are not used by Qt Script, and can be used for custom purposes.

The PropertyFlags type is a typedef for QFlags<PropertyFlag>. It stores an OR combination of PropertyFlag values.

QScriptValue.ResolveFlag

This enum specifies how to look up a property of an object.

Constant Value Description
QScriptValue.ResolveLocal 0x00 Only check the object's own properties.
QScriptValue.ResolvePrototype 0x01 Check the object's own properties first, then search the prototype chain. This is the default.

Check the object's own properties first, then search the scope chain.

Check the object's own properties first, then search the prototype chain, and finally search the scope chain.

The ResolveFlags type is a typedef for QFlags<ResolveFlag>. It stores an OR combination of ResolveFlag values.

QScriptValue.SpecialValue

This enum is used to specify a single-valued type.

Constant Value Description
QScriptValue.UndefinedValue 1 An undefined value.
QScriptValue.NullValue 0 A null value.

Method Documentation

QScriptValue.__init__ (self)

Constructs an invalid QScriptValue.

QScriptValue.__init__ (self, QScriptValue other)

Constructs a new QScriptValue that is a copy of other.

Note that if other is an object (i.e., isObject() would return true), then only a reference to the underlying object is copied into the new script value (i.e., the object itself is not copied).

QScriptValue.__init__ (self, SpecialValue value)

QScriptValue.__init__ (self, QScriptEngine engine, SpecialValue val)

QScriptValue.__init__ (self, bool value)

QScriptValue.__init__ (self, QScriptEngine engine, bool val)

QScriptValue.__init__ (self, int value)

QScriptValue.__init__ (self, QScriptEngine engine, int val)

QScriptValue.__init__ (self, float value)

QScriptValue.__init__ (self, QScriptEngine engine, float val)

Constructs a new QScriptValue with a special value.

This function was introduced in Qt 4.5.

QScriptValue.__init__ (self, QString value)

Constructs a new QScriptValue with a boolean value.

This function was introduced in Qt 4.5.

QScriptValue.__init__ (self, QScriptEngine engine, QString val)

Constructs a new QScriptValue with a number value.

This function was introduced in Qt 4.5.

QScriptValue QScriptValue.call (self, QScriptValue thisObject = QScriptValue(), list-of-QScriptValue args = QScriptValueList())

Calls this QScriptValue as a function, using thisObject as the `this' object in the function call, and passing args as arguments to the function. Returns the value returned from the function.

If this QScriptValue is not a function, call() does nothing and returns an invalid QScriptValue.

Note that if thisObject is not an object, the global object (see QScriptEngine.globalObject()) will be used as the `this' object.

Calling call() can cause an exception to occur in the script engine; in that case, call() returns the value that was thrown (typically an Error object). You can call QScriptEngine.hasUncaughtException() to determine if an exception occurred.

 QScriptEngine engine;
 engine.evaluate("function fullName() { return this.firstName + ' ' + this.lastName; }");
 engine.evaluate("somePerson = { firstName: 'John', lastName: 'Doe' }");

 QScriptValue global = engine.globalObject();
 QScriptValue fullName = global.property("fullName");
 QScriptValue who = global.property("somePerson");
 qDebug() << fullName.call(who).toString(); // "John Doe"

 engine.evaluate("function cube(x) { return x * x * x; }");
 QScriptValue cube = global.property("cube");
 QScriptValueList args;
 args << 3;
 qDebug() << cube.call(QScriptValue(), args).toNumber(); // 27

See also construct().

QScriptValue QScriptValue.call (self, QScriptValue thisObject, QScriptValue arguments)

Calls this QScriptValue as a function, using thisObject as the `this' object in the function call, and passing arguments as arguments to the function. Returns the value returned from the function.

If this QScriptValue is not a function, call() does nothing and returns an invalid QScriptValue.

arguments can be an arguments object, an array, null or undefined; any other type will cause a TypeError to be thrown.

Note that if thisObject is not an object, the global object (see QScriptEngine.globalObject()) will be used as the `this' object.

One common usage of this function is to forward native function calls to another function:

 QScriptValue myNativeFunction(QScriptContext *ctx, QScriptEngine *)
 {
     QScriptValue otherFunction = ...;
     return otherFunction.call(ctx->thisObject(), ctx->argumentsObject());
 }

See also construct() and QScriptContext.argumentsObject().

QScriptValue QScriptValue.construct (self, list-of-QScriptValue args = QScriptValueList())

Creates a new Object and calls this QScriptValue as a constructor, using the created object as the `this' object and passing args as arguments. If the return value from the constructor call is an object, then that object is returned; otherwise the default constructed object is returned.

If this QScriptValue is not a function, construct() does nothing and returns an invalid QScriptValue.

Calling construct() can cause an exception to occur in the script engine; in that case, construct() returns the value that was thrown (typically an Error object). You can call QScriptEngine.hasUncaughtException() to determine if an exception occurred.

See also call() and QScriptEngine.newObject().

QScriptValue QScriptValue.construct (self, QScriptValue arguments)

Creates a new Object and calls this QScriptValue as a constructor, using the created object as the `this' object and passing arguments as arguments. If the return value from the constructor call is an object, then that object is returned; otherwise the default constructed object is returned.

If this QScriptValue is not a function, construct() does nothing and returns an invalid QScriptValue.

arguments can be an arguments object, an array, null or undefined. Any other type will cause a TypeError to be thrown.

See also call(), QScriptEngine.newObject(), and QScriptContext.argumentsObject().

QScriptValue QScriptValue.data (self)

Returns the internal data of this QScriptValue object. QtScript uses this property to store the primitive value of Date, String, Number and Boolean objects. For other types of object, custom data may be stored using setData().

This function was introduced in Qt 4.4.

See also setData().

QScriptEngine QScriptValue.engine (self)

Returns the QScriptEngine that created this QScriptValue, or 0 if this QScriptValue is invalid or the value is not associated with a particular engine.

bool QScriptValue.equals (self, QScriptValue other)

Returns true if this QScriptValue is equal to other, otherwise returns false. The comparison follows the behavior described in ECMA-262 section 11.9.3, "The Abstract Equality Comparison Algorithm".

This function can return true even if the type of this QScriptValue is different from the type of the other value; i.e. the comparison is not strict. For example, comparing the number 9 to the string "9" returns true; comparing an undefined value to a null value returns true; comparing a Number object whose primitive value is 6 to a String object whose primitive value is "6" returns true; and comparing the number 1 to the boolean value true returns true. If you want to perform a comparison without such implicit value conversion, use strictlyEquals().

Note that if this QScriptValue or the other value are objects, calling this function has side effects on the script engine, since the engine will call the object's valueOf() function (and possibly toString()) in an attempt to convert the object to a primitive value (possibly resulting in an uncaught script exception).

See also strictlyEquals() and lessThan().

bool QScriptValue.instanceOf (self, QScriptValue ctor)

Returns true if this QScriptValue is an instance of other; otherwise returns false.

This QScriptValue is considered to be an instance of other if other is a function and the value of the prototype property of other is in the prototype chain of this QScriptValue.

bool QScriptValue.isArray (self)

Returns true if this QScriptValue is an object of the Array class; otherwise returns false.

See also QScriptEngine.newArray().

bool QScriptValue.isBool (self)

Returns true if this QScriptValue is of the primitive type Boolean; otherwise returns false.

This function was introduced in Qt 4.5.

See also toBool().

bool QScriptValue.isBoolean (self)

bool QScriptValue.isDate (self)

Returns true if this QScriptValue is an object of the Date class; otherwise returns false.

See also QScriptEngine.newDate().

bool QScriptValue.isError (self)

Returns true if this QScriptValue is an object of the Error class; otherwise returns false.

See also QScriptContext.throwError().

bool QScriptValue.isFunction (self)

Returns true if this QScriptValue is a function; otherwise returns false.

See also call().

bool QScriptValue.isNull (self)

Returns true if this QScriptValue is of the primitive type Null; otherwise returns false.

See also QScriptEngine.nullValue().

bool QScriptValue.isNumber (self)

Returns true if this QScriptValue is of the primitive type Number; otherwise returns false.

See also toNumber().

bool QScriptValue.isObject (self)

Returns true if this QScriptValue is of the Object type; otherwise returns false.

Note that function values, variant values, and QObject values are objects, so this function returns true for such values.

See also toObject() and QScriptEngine.newObject().

bool QScriptValue.isQMetaObject (self)

Returns true if this QScriptValue is a QMetaObject; otherwise returns false.

See also toQMetaObject() and QScriptEngine.newQMetaObject().

bool QScriptValue.isQObject (self)

Returns true if this QScriptValue is a QObject; otherwise returns false.

Note: This function returns true even if the QObject that this QScriptValue wraps has been deleted.

See also toQObject() and QScriptEngine.newQObject().

bool QScriptValue.isRegExp (self)

Returns true if this QScriptValue is an object of the RegExp class; otherwise returns false.

See also QScriptEngine.newRegExp().

bool QScriptValue.isString (self)

Returns true if this QScriptValue is of the primitive type String; otherwise returns false.

See also toString().

bool QScriptValue.isUndefined (self)

Returns true if this QScriptValue is of the primitive type Undefined; otherwise returns false.

See also QScriptEngine.undefinedValue().

bool QScriptValue.isValid (self)

Returns true if this QScriptValue is valid; otherwise returns false.

bool QScriptValue.isVariant (self)

Returns true if this QScriptValue is a variant value; otherwise returns false.

See also toVariant() and QScriptEngine.newVariant().

bool QScriptValue.lessThan (self, QScriptValue other)

Returns true if this QScriptValue is less than other, otherwise returns false. The comparison follows the behavior described in ECMA-262 section 11.8.5, "The Abstract Relational Comparison Algorithm".

Note that if this QScriptValue or the other value are objects, calling this function has side effects on the script engine, since the engine will call the object's valueOf() function (and possibly toString()) in an attempt to convert the object to a primitive value (possibly resulting in an uncaught script exception).

See also equals().

QScriptValue QScriptValue.property (self, QString name, ResolveFlags mode = QScriptValue.ResolvePrototype)

Returns the value of this QScriptValue's property with the given name, using the given mode to resolve the property.

If no such property exists, an invalid QScriptValue is returned.

If the property is implemented using a getter function (i.e. has the PropertyGetter flag set), calling property() has side-effects on the script engine, since the getter function will be called (possibly resulting in an uncaught script exception). If an exception occurred, property() returns the value that was thrown (typically an Error object).

See also setProperty(), propertyFlags(), and QScriptValueIterator.

QScriptValue QScriptValue.property (self, QScriptString name, ResolveFlags mode = QScriptValue.ResolvePrototype)

Returns the value of this QScriptValue's property with the given name, using the given mode to resolve the property.

This overload of property() is useful when you need to look up the same property repeatedly, since the lookup can be performed faster when the name is represented as an interned string.

This function was introduced in Qt 4.4.

See also QScriptEngine.toStringHandle() and setProperty().

QScriptValue QScriptValue.property (self, int arrayIndex, ResolveFlags mode = QScriptValue.ResolvePrototype)

This is an overloaded function.

Returns the property at the given arrayIndex, using the given mode to resolve the property.

This function is provided for convenience and performance when working with array objects.

If this QScriptValue is not an Array object, this function behaves as if property() was called with the string representation of arrayIndex.

PropertyFlags QScriptValue.propertyFlags (self, QString name, ResolveFlags mode = QScriptValue.ResolvePrototype)

Returns the flags of the property with the given name, using the given mode to resolve the property.

See also property().

PropertyFlags QScriptValue.propertyFlags (self, QScriptString name, ResolveFlags mode = QScriptValue.ResolvePrototype)

Returns the flags of the property with the given name, using the given mode to resolve the property.

This function was introduced in Qt 4.4.

See also property().

QScriptValue QScriptValue.prototype (self)

If this QScriptValue is an object, returns the internal prototype (__proto__ property) of this object; otherwise returns an invalid QScriptValue.

See also setPrototype() and isObject().

QScriptClass QScriptValue.scriptClass (self)

Returns the custom script class that this script object is an instance of, or 0 if the object is not of a custom class.

This function was introduced in Qt 4.4.

See also setScriptClass().

QScriptValue.setData (self, QScriptValue data)

Sets the internal data of this QScriptValue object. You can use this function to set object-specific data that won't be directly accessible to scripts, but may be retrieved in C++ using the data() function.

This function was introduced in Qt 4.4.

See also data() and QScriptEngine.reportAdditionalMemoryCost().

QScriptValue.setProperty (self, QString name, QScriptValue value, PropertyFlags flags = QScriptValue.KeepExistingFlags)

Sets the value of this QScriptValue's property with the given name to the given value.

If this QScriptValue is not an object, this function does nothing.

If this QScriptValue does not already have a property with name name, a new property is created; the given flags then specify how this property may be accessed by script code.

If value is invalid, the property is removed.

If the property is implemented using a setter function (i.e. has the PropertySetter flag set), calling setProperty() has side-effects on the script engine, since the setter function will be called with the given value as argument (possibly resulting in an uncaught script exception).

Note that you cannot specify custom getter or setter functions for built-in properties, such as the length property of Array objects or meta properties of QObject objects.

See also property().

QScriptValue.setProperty (self, QScriptString name, QScriptValue value, PropertyFlags flags = QScriptValue.KeepExistingFlags)

Sets the value of this QScriptValue's property with the given name to the given value. The given flags specify how this property may be accessed by script code.

This overload of setProperty() is useful when you need to set the same property repeatedly, since the operation can be performed faster when the name is represented as an interned string.

This function was introduced in Qt 4.4.

See also QScriptEngine.toStringHandle().

QScriptValue.setProperty (self, int arrayIndex, QScriptValue value, PropertyFlags flags = QScriptValue.KeepExistingFlags)

This is an overloaded function.

Sets the property at the given arrayIndex to the given value.

This function is provided for convenience and performance when working with array objects.

If this QScriptValue is not an Array object, this function behaves as if setProperty() was called with the string representation of arrayIndex.

QScriptValue.setPrototype (self, QScriptValue prototype)

If this QScriptValue is an object, sets the internal prototype (__proto__ property) of this object to be prototype; otherwise does nothing.

The internal prototype should not be confused with the public property with name "prototype"; the public prototype is usually only set on functions that act as constructors.

See also prototype() and isObject().

QScriptValue.setScriptClass (self, QScriptClass scriptClass)

Sets the custom script class of this script object to scriptClass. This can be used to "promote" a plain script object (e.g. created by the "new" operator in a script, or by QScriptEngine.newObject() in C++) to an object of a custom type.

If scriptClass is 0, the object will be demoted to a plain script object.

This function was introduced in Qt 4.4.

See also scriptClass() and setData().

bool QScriptValue.strictlyEquals (self, QScriptValue other)

Returns true if this QScriptValue is equal to other using strict comparison (no conversion), otherwise returns false. The comparison follows the behavior described in ECMA-262 section 11.9.6, "The Strict Equality Comparison Algorithm".

If the type of this QScriptValue is different from the type of the other value, this function returns false. If the types are equal, the result depends on the type, as shown in the following table:

Type Result
Undefined true
Null true
Boolean true if both values are true, false otherwise
Number false if either value is NaN (Not-a-Number); true if values are equal, false otherwise
String true if both values are exactly the same sequence of characters, false otherwise
Object true if both values refer to the same object, false otherwise

See also equals().

bool QScriptValue.toBool (self)

Returns the boolean value of this QScriptValue, using the conversion rules described in ECMA-262 section 9.2, "ToBoolean".

Note that if this QScriptValue is an object, calling this function has side effects on the script engine, since the engine will call the object's valueOf() function (and possibly toString()) in an attempt to convert the object to a primitive value (possibly resulting in an uncaught script exception).

This function was introduced in Qt 4.5.

See also isBool().

bool QScriptValue.toBoolean (self)

QDateTime QScriptValue.toDateTime (self)

Returns a QDateTime representation of this value, in local time. If this QScriptValue is not a date, or the value of the date is NaN (Not-a-Number), an invalid QDateTime is returned.

See also isDate().

int QScriptValue.toInt32 (self)

Returns the signed 32-bit integer value of this QScriptValue, using the conversion rules described in ECMA-262 section 9.5, "ToInt32".

Note that if this QScriptValue is an object, calling this function has side effects on the script engine, since the engine will call the object's valueOf() function (and possibly toString()) in an attempt to convert the object to a primitive value (possibly resulting in an uncaught script exception).

See also toNumber() and toUInt32().

float QScriptValue.toInteger (self)

Returns the integer value of this QScriptValue, using the conversion rules described in ECMA-262 section 9.4, "ToInteger".

Note that if this QScriptValue is an object, calling this function has side effects on the script engine, since the engine will call the object's valueOf() function (and possibly toString()) in an attempt to convert the object to a primitive value (possibly resulting in an uncaught script exception).

See also toNumber().

float QScriptValue.toNumber (self)

Returns the number value of this QScriptValue, as defined in ECMA-262 section 9.3, "ToNumber".

Note that if this QScriptValue is an object, calling this function has side effects on the script engine, since the engine will call the object's valueOf() function (and possibly toString()) in an attempt to convert the object to a primitive value (possibly resulting in an uncaught script exception).

See also isNumber(), toInteger(), toInt32(), toUInt32(), and toUInt16().

QScriptValue QScriptValue.toObject (self)

QMetaObject QScriptValue.toQMetaObject (self)

If this QScriptValue is a QMetaObject, returns the QMetaObject pointer that the QScriptValue represents; otherwise, returns 0.

See also isQMetaObject().

QObject QScriptValue.toQObject (self)

If this QScriptValue is a QObject, returns the QObject pointer that the QScriptValue represents; otherwise, returns 0.

If the QObject that this QScriptValue wraps has been deleted, this function returns 0 (i.e. it is possible for toQObject() to return 0 even when isQObject() returns true).

See also isQObject().

QRegExp QScriptValue.toRegExp (self)

Returns the QRegExp representation of this value. If this QScriptValue is not a regular expression, an empty QRegExp is returned.

See also isRegExp().

QString QScriptValue.toString (self)

Returns the string value of this QScriptValue, as defined in ECMA-262 section 9.8, "ToString".

Note that if this QScriptValue is an object, calling this function has side effects on the script engine, since the engine will call the object's toString() function (and possibly valueOf()) in an attempt to convert the object to a primitive value (possibly resulting in an uncaught script exception).

See also isString().

int QScriptValue.toUInt16 (self)

Returns the unsigned 16-bit integer value of this QScriptValue, using the conversion rules described in ECMA-262 section 9.7, "ToUint16".

Note that if this QScriptValue is an object, calling this function has side effects on the script engine, since the engine will call the object's valueOf() function (and possibly toString()) in an attempt to convert the object to a primitive value (possibly resulting in an uncaught script exception).

See also toNumber().

int QScriptValue.toUInt32 (self)

Returns the unsigned 32-bit integer value of this QScriptValue, using the conversion rules described in ECMA-262 section 9.6, "ToUint32".

Note that if this QScriptValue is an object, calling this function has side effects on the script engine, since the engine will call the object's valueOf() function (and possibly toString()) in an attempt to convert the object to a primitive value (possibly resulting in an uncaught script exception).

See also toNumber() and toInt32().

QVariant QScriptValue.toVariant (self)

Returns the QVariant value of this QScriptValue, if it can be converted to a QVariant; otherwise returns an invalid QVariant. The conversion is performed according to the following table:

Input Type Result
Undefined An invalid QVariant.
Null An invalid QVariant.
Boolean A QVariant containing the value of the boolean.
Number A QVariant containing the value of the number.
String A QVariant containing the value of the string.
QVariant Object The result is the QVariant value of the object (no conversion).
QObject Object A QVariant containing a pointer to the QObject.
Date Object A QVariant containing the date value (toDateTime()).
RegExp Object A QVariant containing the regular expression value (toRegExp()).
Array Object The array is converted to a QVariantList. Each element is converted to a QVariant, recursively; cyclic references are not followed.
Object The object is converted to a QVariantMap. Each property is converted to a QVariant, recursively; cyclic references are not followed.

See also isVariant().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscriptvalueiterator.html0000644000076500000240000003020412536324521022641 0ustar philstaff00000000000000 QScriptValueIterator Class Reference
  Home · All Classes · Modules

QScriptValueIterator Class Reference
[QtScript module]

The QScriptValueIterator class provides a Java-style iterator for QScriptValue. More...

Methods


Detailed Description

The QScriptValueIterator class provides a Java-style iterator for QScriptValue.

The QScriptValueIterator constructor takes a QScriptValue as argument. After construction, the iterator is located at the very beginning of the sequence of properties. Here's how to iterate over all the properties of a QScriptValue:

 QScriptValue object;
 ...
 QScriptValueIterator it(object);
 while (it.hasNext()) {
     it.next();
     qDebug() << it.name() << ": " << it.value().toString();
 }

The next() advances the iterator. The name(), value() and flags() functions return the name, value and flags of the last item that was jumped over.

If you want to remove properties as you iterate over the QScriptValue, use remove(). If you want to modify the value of a property, use setValue().

Note that QScriptValueIterator only iterates over the QScriptValue's own properties; i.e. it does not follow the prototype chain. You can use a loop like this to follow the prototype chain:

 QScriptValue obj = ...; // the object to iterate over
 while (obj.isObject()) {
     QScriptValueIterator it(obj);
     while (it.hasNext()) {
         it.next();
         qDebug() << it.name();
     }
     obj = obj.prototype();
 }

Note that QScriptValueIterator will not automatically skip over properties that have the QScriptValue.SkipInEnumeration flag set; that flag only affects iteration in script code. If you want, you can skip over such properties with code like the following:

 while (it.hasNext()) {
     it.next();
     if (it.flags() & QScriptValue.SkipInEnumeration)
         continue;
     qDebug() << "found enumerated property:" << it.name();
 }

Method Documentation

QScriptValueIterator.__init__ (self, QScriptValue value)

Constructs an iterator for traversing object. The iterator is set to be at the front of the sequence of properties (before the first property).

QScriptValue.PropertyFlags QScriptValueIterator.flags (self)

Returns the flags of the last property that was jumped over using next() or previous().

See also value().

bool QScriptValueIterator.hasNext (self)

Returns true if there is at least one item ahead of the iterator (i.e. the iterator is not at the back of the property sequence); otherwise returns false.

See also next() and hasPrevious().

bool QScriptValueIterator.hasPrevious (self)

Returns true if there is at least one item behind the iterator (i.e. the iterator is not at the front of the property sequence); otherwise returns false.

See also previous() and hasNext().

QString QScriptValueIterator.name (self)

Returns the name of the last property that was jumped over using next() or previous().

See also value() and flags().

QScriptValueIterator.next (self)

Advances the iterator by one position.

Calling this function on an iterator located at the back of the container leads to undefined results.

See also hasNext(), previous(), and name().

QScriptValueIterator.previous (self)

Moves the iterator back by one position.

Calling this function on an iterator located at the front of the container leads to undefined results.

See also hasPrevious(), next(), and name().

QScriptValueIterator.remove (self)

Removes the last property that was jumped over using next() or previous().

See also setValue().

QScriptString QScriptValueIterator.scriptName (self)

Returns the name of the last property that was jumped over using next() or previous().

This function was introduced in Qt 4.4.

QScriptValueIterator.setValue (self, QScriptValue value)

Sets the value of the last property that was jumped over using next() or previous().

See also value() and name().

QScriptValueIterator.toBack (self)

Moves the iterator to the back of the QScriptValue (after the last property).

See also toFront() and previous().

QScriptValueIterator.toFront (self)

Moves the iterator to the front of the QScriptValue (before the first property).

See also toBack() and next().

QScriptValue QScriptValueIterator.value (self)

Returns the value of the last property that was jumped over using next() or previous().

See also setValue() and name().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscrollarea.html0000644000076500000240000003342012536324512020660 0ustar philstaff00000000000000 QScrollArea Class Reference
  Home · All Classes · Modules

QScrollArea Class Reference
[QtGui module]

The QScrollArea class provides a scrolling view onto another widget. More...

Inherits QAbstractScrollArea.

Methods


Detailed Description

The QScrollArea class provides a scrolling view onto another widget.

A scroll area is used to display the contents of a child widget within a frame. If the widget exceeds the size of the frame, the view can provide scroll bars so that the entire area of the child widget can be viewed. The child widget must be specified with setWidget(). For example:

 QLabel *imageLabel = new QLabel;
 QImage image("happyguy.png");
 imageLabel->setPixmap(QPixmap.fromImage(image));

 scrollArea = new QScrollArea;
 scrollArea->setBackgroundRole(QPalette.Dark);
 scrollArea->setWidget(imageLabel);

The code above creates a scroll area (shown in the images below) containing an image label. When scaling the image, the scroll area can provide the necessary scroll bars:

The scroll bars appearance depends on the currently set scroll bar policies. You can control the appearance of the scroll bars using the inherited functionality from QAbstractScrollArea.

For example, you can set the QAbstractScrollArea.horizontalScrollBarPolicy and QAbstractScrollArea.verticalScrollBarPolicy properties. Or if you want the scroll bars to adjust dynamically when the contents of the scroll area changes, you can use the horizontalScrollBar() and verticalScrollBar() functions (which enable you to access the scroll bars) and set the scroll bars' values whenever the scroll area's contents change, using the QScrollBar.setValue() function.

You can retrieve the child widget using the widget() function. The view can be made to be resizable with the setWidgetResizable() function. The alignment of the widget can be specified with setAlignment().

Two convenience functions ensureVisible() and ensureWidgetVisible() ensure a certain region of the contents is visible inside the viewport, by scrolling the contents if necessary.

Size Hints and Layouts

When using a scroll area to display the contents of a custom widget, it is important to ensure that the size hint of the child widget is set to a suitable value. If a standard QWidget is used for the child widget, it may be necessary to call QWidget.setMinimumSize() to ensure that the contents of the widget are shown correctly within the scroll area.

If a scroll area is used to display the contents of a widget that contains child widgets arranged in a layout, it is important to realize that the size policy of the layout will also determine the size of the widget. This is especially useful to know if you intend to dynamically change the contents of the layout. In such cases, setting the layout's size constraint property to one which provides constraints on the minimum and/or maximum size of the layout (e.g., QLayout.SetMinAndMaxSize) will cause the size of the scroll area to be updated whenever the contents of the layout changes.

For a complete example using the QScrollArea class, see the Image Viewer example. The example shows how to combine QLabel and QScrollArea to display an image.


Method Documentation

QScrollArea.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty scroll area with the given parent.

See also setWidget().

Qt.Alignment QScrollArea.alignment (self)

QScrollArea.ensureVisible (self, int x, int y, int xMargin = 50, int yMargin = 50)

Scrolls the contents of the scroll area so that the point (x, y) is visible inside the region of the viewport with margins specified in pixels by xmargin and ymargin. If the specified point cannot be reached, the contents are scrolled to the nearest valid position. The default value for both margins is 50 pixels.

QScrollArea.ensureWidgetVisible (self, QWidget childWidget, int xMargin = 50, int yMargin = 50)

Scrolls the contents of the scroll area so that the childWidget of QScrollArea.widget() is visible inside the viewport with margins specified in pixels by xmargin and ymargin. If the specified point cannot be reached, the contents are scrolled to the nearest valid position. The default value for both margins is 50 pixels.

This function was introduced in Qt 4.2.

bool QScrollArea.event (self, QEvent)

Reimplemented from QObject.event().

bool QScrollArea.eventFilter (self, QObject, QEvent)

Reimplemented from QObject.eventFilter().

bool QScrollArea.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QScrollArea.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QScrollArea.scrollContentsBy (self, int dx, int dy)

Reimplemented from QAbstractScrollArea.scrollContentsBy().

QScrollArea.setAlignment (self, Qt.Alignment)

QScrollArea.setWidget (self, QWidget w)

The w argument has it's ownership transferred to Qt.

Sets the scroll area's widget.

The widget becomes a child of the scroll area, and will be destroyed when the scroll area is deleted or when a new widget is set.

The widget's autoFillBackground property will be set to true.

If the scroll area is visible when the widget is added, you must show() it explicitly.

Note that You must add the layout of widget before you call this function; if you add it later, the widget will not be visible - regardless of when you show() the scroll area. In this case, you can also not show() the widget later.

See also widget().

QScrollArea.setWidgetResizable (self, bool resizable)

QSize QScrollArea.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QWidget QScrollArea.takeWidget (self)

The QWidget result

Removes the scroll area's widget, and passes ownership of the widget to the caller.

See also widget().

QWidget QScrollArea.widget (self)

Returns the scroll area's widget, or 0 if there is none.

See also setWidget().

bool QScrollArea.widgetResizable (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qscrollbar.html0000644000076500000240000003671712536324512020530 0ustar philstaff00000000000000 QScrollBar Class Reference
  Home · All Classes · Modules

QScrollBar Class Reference
[
QtGui module]

The QScrollBar widget provides a vertical or horizontal scroll bar. More...

Inherits QAbstractSlider.

Methods


Detailed Description

The QScrollBar widget provides a vertical or horizontal scroll bar.

A scroll bar is a control that enables the user to access parts of a document that is larger than the widget used to display it. It provides a visual indication of the user's current position within the document and the amount of the document that is visible. Scroll bars are usually equipped with other controls that enable more accurate navigation. Qt displays scroll bars in a way that is appropriate for each platform.

If you need to provide a scrolling view onto another widget, it may be more convenient to use the QScrollArea class because this provides a viewport widget and scroll bars. QScrollBar is useful if you need to implement similar functionality for specialized widgets using QAbstractScrollArea; for example, if you decide to subclass QAbstractItemView. For most other situations where a slider control is used to obtain a value within a given range, the QSlider class may be more appropriate for your needs.

Scroll bars typically include four separate controls: a slider, scroll arrows, and a page control.
  • a. The slider provides a way to quickly go to any part of the document, but does not support accurate navigation within large documents.
  • b. The scroll arrows are push buttons which can be used to accurately navigate to a particular place in a document. For a vertical scroll bar connected to a text editor, these typically move the current position one "line" up or down, and adjust the position of the slider by a small amount. In editors and list boxes a "line" might mean one line of text; in an image viewer it might mean 20 pixels.
  • c. The page control is the area over which the slider is dragged (the scroll bar's background). Clicking here moves the scroll bar towards the click by one "page". This value is usually the same as the length of the slider.

Each scroll bar has a value that indicates how far the slider is from the start of the scroll bar; this is obtained with value() and set with setValue(). This value always lies within the range of values defined for the scroll bar, from minimum() to maximum() inclusive. The range of acceptable values can be set with setMinimum() and setMaximum(). At the minimum value, the top edge of the slider (for a vertical scroll bar) or left edge (for a horizontal scroll bar) will be at the top (or left) end of the scroll bar. At the maximum value, the bottom (or right) edge of the slider will be at the bottom (or right) end of the scroll bar.

The length of the slider is usually related to the value of the page step, and typically represents the proportion of the document area shown in a scrolling view. The page step is the amount that the value changes by when the user presses the Page Up and Page Down keys, and is set with setPageStep(). Smaller changes to the value defined by the line step are made using the cursor keys, and this quantity is set with setSingleStep().

Note that the range of values used is independent of the actual size of the scroll bar widget. You do not need to take this into account when you choose values for the range and the page step.

The range of values specified for the scroll bar are often determined differently to those for a QSlider because the length of the slider needs to be taken into account. If we have a document with 100 lines, and we can only show 20 lines in a widget, we may wish to construct a scroll bar with a page step of 20, a minimum value of 0, and a maximum value of 80. This would give us a scroll bar with five "pages".

The relationship between a document length, the range of values used in a scroll bar, and the page step is simple in many common situations. The scroll bar's range of values is determined by subtracting a chosen page step from some value representing the length of the document. In such cases, the following equation is useful: document length = maximum() - minimum() + pageStep().

QScrollBar only provides integer ranges. Note that although QScrollBar handles very large numbers, scroll bars on current screens cannot usefully represent ranges above about 100,000 pixels. Beyond that, it becomes difficult for the user to control the slider using either the keyboard or the mouse, and the scroll arrows will have limited use.

ScrollBar inherits a comprehensive set of signals from QAbstractSlider:

  • valueChanged() is emitted when the scroll bar's value has changed. The tracking() determines whether this signal is emitted during user interaction.
  • rangeChanged() is emitted when the scroll bar's range of values has changed.
  • sliderPressed() is emitted when the user starts to drag the slider.
  • sliderMoved() is emitted when the user drags the slider.
  • sliderReleased() is emitted when the user releases the slider.
  • actionTriggered() is emitted when the scroll bar is changed by user interaction or via the triggerAction() function.

A scroll bar can be controlled by the keyboard, but it has a default focusPolicy() of Qt.NoFocus. Use setFocusPolicy() to enable keyboard interaction with the scroll bar:

  • Left/Right move a horizontal scroll bar by one single step.
  • Up/Down move a vertical scroll bar by one single step.
  • PageUp moves up one page.
  • PageDown moves down one page.
  • Home moves to the start (mininum).
  • End moves to the end (maximum).

The slider itself can be controlled by using the triggerAction() function to simulate user interaction with the scroll bar controls. This is useful if you have many different widgets that use a common range of values.

Most GUI styles use the pageStep() value to calculate the size of the slider.

Screenshot of a Macintosh style scroll bar A scroll bar shown in the Macintosh widget style.
Screenshot of a Windows XP style scroll bar A scroll bar shown in the Windows XP widget style.
Screenshot of a Plastique style scroll bar A scroll bar shown in the Plastique widget style.

Method Documentation

QScrollBar.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a vertical scroll bar.

The parent argument is sent to the QWidget constructor.

The minimum defaults to 0, the maximum to 99, with a singleStep size of 1 and a pageStep size of 10, and an initial value of 0.

QScrollBar.__init__ (self, Qt.Orientation orientation, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a scroll bar with the given orientation.

The parent argument is passed to the QWidget constructor.

The minimum defaults to 0, the maximum to 99, with a singleStep size of 1 and a pageStep size of 10, and an initial value of 0.

QScrollBar.contextMenuEvent (self, QContextMenuEvent)

Reimplemented from QWidget.contextMenuEvent().

bool QScrollBar.event (self, QEvent event)

Reimplemented from QObject.event().

QScrollBar.hideEvent (self, QHideEvent)

Reimplemented from QWidget.hideEvent().

QScrollBar.initStyleOption (self, QStyleOptionSlider option)

Initialize option with the values from this QScrollBar. This method is useful for subclasses when they need a QStyleOptionSlider, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QScrollBar.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QScrollBar.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

QScrollBar.mouseReleaseEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QScrollBar.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QSize QScrollBar.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QScrollBar.sliderChange (self, QAbstractSlider.SliderChange change)

Reimplemented from QAbstractSlider.sliderChange().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsemaphore.html0000644000076500000240000002367412536324474020535 0ustar philstaff00000000000000 QSemaphore Class Reference
  Home · All Classes · Modules

QSemaphore Class Reference
[QtCore module]

The QSemaphore class provides a general counting semaphore. More...

Methods


Detailed Description

The QSemaphore class provides a general counting semaphore.

A semaphore is a generalization of a mutex. While a mutex can only be locked once, it's possible to acquire a semaphore multiple times. Semaphores are typically used to protect a certain number of identical resources.

Semaphores support two fundamental operations, acquire() and release():

  • acquire(n) tries to acquire n resources. If there aren't that many resources available, the call will block until this is the case.
  • release(n) releases n resources.

There's also a tryAcquire() function that returns immediately if it cannot acquire the resources, and an available() function that returns the number of available resources at any time.

Example:

 QSemaphore sem(5);      // sem.available() == 5

 sem.acquire(3);         // sem.available() == 2
 sem.acquire(2);         // sem.available() == 0
 sem.release(5);         // sem.available() == 5
 sem.release(5);         // sem.available() == 10

 sem.tryAcquire(1);      // sem.available() == 9, returns true
 sem.tryAcquire(250);    // sem.available() == 9, returns false

A typical application of semaphores is for controlling access to a circular buffer shared by a producer thread and a consumer thread. The Semaphores example shows how to use QSemaphore to solve that problem.

A non-computing example of a semaphore would be dining at a restaurant. A semaphore is initialized with the number of chairs in the restaurant. As people arrive, they want a seat. As seats are filled, available() is decremented. As people leave, the available() is incremented, allowing more people to enter. If a party of 10 people want to be seated, but there are only 9 seats, those 10 people will wait, but a party of 4 people would be seated (taking the available seats to 5, making the party of 10 people wait longer).


Method Documentation

QSemaphore.__init__ (self, int n = 0)

Creates a new semaphore and initializes the number of resources it guards to n (by default, 0).

See also release() and available().

QSemaphore.acquire (self, int n = 1)

Tries to acquire n resources guarded by the semaphore. If n > available(), this call will block until enough resources are available.

See also release(), available(), and tryAcquire().

int QSemaphore.available (self)

Returns the number of resources currently available to the semaphore. This number can never be negative.

See also acquire() and release().

QSemaphore.release (self, int n = 1)

Releases n resources guarded by the semaphore.

This function can be used to "create" resources as well. For example:

 QSemaphore sem(5);      // a semaphore that guards 5 resources
 sem.acquire(5);         // acquire all 5 resources
 sem.release(5);         // release the 5 resources
 sem.release(10);        // "create" 10 new resources

See also acquire() and available().

bool QSemaphore.tryAcquire (self, int n = 1)

Tries to acquire n resources guarded by the semaphore and returns true on success. If available() < n, this call immediately returns false without acquiring any resources.

Example:

 QSemaphore sem(5);      // sem.available() == 5
 sem.tryAcquire(250);    // sem.available() == 5, returns false
 sem.tryAcquire(3);      // sem.available() == 2, returns true

See also acquire().

bool QSemaphore.tryAcquire (self, int n, int timeout)

Tries to acquire n resources guarded by the semaphore and returns true on success. If available() < n, this call will wait for at most timeout milliseconds for resources to become available.

Note: Passing a negative number as the timeout is equivalent to calling acquire(), i.e. this function will wait forever for resources to become available if timeout is negative.

Example:

 QSemaphore sem(5);            // sem.available() == 5
 sem.tryAcquire(250, 1000);    // sem.available() == 5, waits 1000 milliseconds and returns false
 sem.tryAcquire(3, 30000);     // sem.available() == 2, returns true without waiting

See also acquire().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsequentialanimationgroup.html0000644000076500000240000002134412536324474023671 0ustar philstaff00000000000000 QSequentialAnimationGroup Class Reference
  Home · All Classes · Modules

QSequentialAnimationGroup Class Reference
[QtCore module]

The QSequentialAnimationGroup class provides a sequential group of animations. More...

Inherits QAnimationGroup.

Methods

Qt Signals


Detailed Description

The QSequentialAnimationGroup class provides a sequential group of animations.

QSequentialAnimationGroup is a QAnimationGroup that runs its animations in sequence, i.e., it starts one animation after another has finished playing. The animations are played in the order they are added to the group (using addAnimation() or insertAnimation()). The animation group finishes when its last animation has finished.

At each moment there is at most one animation that is active in the group; it is returned by currentAnimation(). An empty group has no current animation.

A sequential animation group can be treated as any other animation, i.e., it can be started, stopped, and added to other groups. You can also call addPause() or insertPause() to add a pause to a sequential animation group.

 QSequentialAnimationGroup *group = new QSequentialAnimationGroup;

 group->addAnimation(anim1);
 group->addAnimation(anim2);

 group->start();

In this example, anim1 and anim2 are two already set up QPropertyAnimations.


Method Documentation

QSequentialAnimationGroup.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSequentialAnimationGroup. parent is passed to QObject's constructor.

QPauseAnimation QSequentialAnimationGroup.addPause (self, int msecs)

Adds a pause of msecs to this animation group. The pause is considered as a special type of animation, thus animationCount will be increased by one.

See also insertPause() and QAnimationGroup.addAnimation().

QAbstractAnimation QSequentialAnimationGroup.currentAnimation (self)

int QSequentialAnimationGroup.duration (self)

Reimplemented from QAbstractAnimation.duration().

bool QSequentialAnimationGroup.event (self, QEvent event)

Reimplemented from QObject.event().

QPauseAnimation QSequentialAnimationGroup.insertPause (self, int index, int msecs)

Inserts a pause of msecs milliseconds at index in this animation group.

See also addPause() and QAnimationGroup.insertAnimation().

QSequentialAnimationGroup.updateCurrentTime (self, int)

Reimplemented from QAbstractAnimation.updateCurrentTime().

QSequentialAnimationGroup.updateDirection (self, QAbstractAnimation.Direction direction)

Reimplemented from QAbstractAnimation.updateDirection().

QSequentialAnimationGroup.updateState (self, QAbstractAnimation.State newState, QAbstractAnimation.State oldState)

Reimplemented from QAbstractAnimation.updateState().


Qt Signal Documentation

void currentAnimationChanged (QAbstractAnimation*)

This is the default overload of this signal.

QSequentialAnimationGroup emits this signal when currentAnimation has been changed. current is the current animation.

See also currentAnimation().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsessionmanager.html0000644000076500000240000005060012536324512021546 0ustar philstaff00000000000000 QSessionManager Class Reference
  Home · All Classes · Modules

QSessionManager Class Reference
[QtGui module]

The QSessionManager class provides access to the session manager. More...

Inherits QObject.

Types

  • enum RestartHint { RestartIfRunning, RestartAnyway, RestartImmediately, RestartNever }

Methods


Detailed Description

The QSessionManager class provides access to the session manager.

A session manager in a desktop environment (in which Qt GUI applications live) keeps track of a session, which is a group of running applications, each of which has a particular state. The state of an application contains (most notably) the documents the application has open and the position and size of its windows.

The session manager is used to save the session, e.g., when the machine is shut down, and to restore a session, e.g., when the machine is started up. We recommend that you use QSettings to save an application's settings, for example, window positions, recently used files, etc. When the application is restarted by the session manager, you can restore the settings.

QSessionManager provides an interface between the application and the session manager so that the program can work well with the session manager. In Qt, session management requests for action are handled by the two virtual functions QApplication.commitData() and QApplication.saveState(). Both provide a reference to a session manager object as argument, to allow the application to communicate with the session manager. The session manager can only be accessed through these functions.

No user interaction is possible unless the application gets explicit permission from the session manager. You ask for permission by calling allowsInteraction() or, if it is really urgent, allowsErrorInteraction(). Qt does not enforce this, but the session manager may.

You can try to abort the shutdown process by calling cancel(). The default commitData() function does this if some top-level window rejected its closeEvent().

For sophisticated session managers provided on Unix/X11, QSessionManager offers further possibilities to fine-tune an application's session management behavior: setRestartCommand(), setDiscardCommand(), setRestartHint(), setProperty(), requestPhase2(). See the respective function descriptions for further details.


Type Documentation

QSessionManager.RestartHint

This enum type defines the circumstances under which this application wants to be restarted by the session manager. The current values are:

Constant Value Description
QSessionManager.RestartIfRunning 0 If the application is still running when the session is shut down, it wants to be restarted at the start of the next session.
QSessionManager.RestartAnyway 1 The application wants to be started at the start of the next session, no matter what. (This is useful for utilities that run just after startup and then quit.)
QSessionManager.RestartImmediately 2 The application wants to be started immediately whenever it is not running.
QSessionManager.RestartNever 3 The application does not want to be restarted automatically.

The default hint is RestartIfRunning.


Method Documentation

bool QSessionManager.allowsErrorInteraction (self)

Returns true if error interaction is permitted; otherwise returns false.

This is similar to allowsInteraction(), but also enables the application to tell the user about any errors that occur. Session managers may give error interaction requests higher priority, which means that it is more likely that an error interaction is permitted. However, you are still not guaranteed that the session manager will allow interaction.

See also allowsInteraction(), release(), and cancel().

bool QSessionManager.allowsInteraction (self)

Asks the session manager for permission to interact with the user. Returns true if interaction is permitted; otherwise returns false.

The rationale behind this mechanism is to make it possible to synchronize user interaction during a shutdown. Advanced session managers may ask all applications simultaneously to commit their data, resulting in a much faster shutdown.

When the interaction is completed we strongly recommend releasing the user interaction semaphore with a call to release(). This way, other applications may get the chance to interact with the user while your application is still busy saving data. (The semaphore is implicitly released when the application exits.)

If the user decides to cancel the shutdown process during the interaction phase, you must tell the session manager that this has happened by calling cancel().

Here's an example of how an application's QApplication.commitData() might be implemented:

 void MyApplication.commitData(QSessionManager& manager)
 {
     if (manager.allowsInteraction()) {
         int ret = QMessageBox.warning(
                     mainWindow,
                     tr("My Application"),
                     tr("Save changes to document?"),
                     QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel);

         switch (ret) {
         case QMessageBox.Save:
             manager.release();
             if (!saveDocument())
                 manager.cancel();
             break;
         case QMessageBox.Discard:
             break;
         case QMessageBox.Cancel:
         default:
             manager.cancel();
         }
     } else {
         // we did not get permission to interact, then
         // do something reasonable instead
     }
 }

If an error occurred within the application while saving its data, you may want to try allowsErrorInteraction() instead.

See also QApplication.commitData(), release(), and cancel().

QSessionManager.cancel (self)

Tells the session manager to cancel the shutdown process. Applications should not call this function without asking the user first.

See also allowsInteraction() and allowsErrorInteraction().

QStringList QSessionManager.discardCommand (self)

Returns the currently set discard command.

To iterate over the list, you can use the foreach pseudo-keyword:

 foreach (const QString &command, mySession.discardCommand())
     do_something(command);

See also setDiscardCommand(), restartCommand(), and setRestartCommand().

bool QSessionManager.isPhase2 (self)

Returns true if the session manager is currently performing a second session management phase; otherwise returns false.

See also requestPhase2().

QSessionManager.release (self)

Releases the session manager's interaction semaphore after an interaction phase.

See also allowsInteraction() and allowsErrorInteraction().

QSessionManager.requestPhase2 (self)

Requests a second session management phase for the application. The application may then return immediately from the QApplication.commitData() or QApplication.saveState() function, and they will be called again once most or all other applications have finished their session management.

The two phases are useful for applications such as the X11 window manager that need to store information about another application's windows and therefore have to wait until these applications have completed their respective session management tasks.

Note: If another application has requested a second phase it may get called before, simultaneously with, or after your application's second phase.

See also isPhase2().

QStringList QSessionManager.restartCommand (self)

Returns the currently set restart command.

To iterate over the list, you can use the foreach pseudo-keyword:

 foreach (const QString &command, mySession.restartCommand())
     do_something(command);

See also setRestartCommand() and restartHint().

RestartHint QSessionManager.restartHint (self)

Returns the application's current restart hint. The default is RestartIfRunning.

See also setRestartHint().

QString QSessionManager.sessionId (self)

Returns the identifier of the current session.

If the application has been restored from an earlier session, this identifier is the same as it was in the earlier session.

See also sessionKey() and QApplication.sessionId().

QString QSessionManager.sessionKey (self)

Returns the session key in the current session.

If the application has been restored from an earlier session, this key is the same as it was when the previous session ended.

The session key changes with every call of commitData() or saveState().

See also sessionId() and QApplication.sessionKey().

QSessionManager.setDiscardCommand (self, QStringList)

Sets the discard command to the given list.

See also discardCommand() and setRestartCommand().

QSessionManager.setManagerProperty (self, QString name, QString value)

Low-level write access to the application's identification and state record are kept in the session manager.

The property called name has its value set to the string list value.

QSessionManager.setManagerProperty (self, QString name, QStringList value)

This is an overloaded function.

Low-level write access to the application's identification and state records are kept in the session manager.

The property called name has its value set to the string value.

QSessionManager.setRestartCommand (self, QStringList)

If the session manager is capable of restoring sessions it will execute command in order to restore the application. The command defaults to

 appname -session id

The -session option is mandatory; otherwise QApplication cannot tell whether it has been restored or what the current session identifier is. See QApplication.isSessionRestored() and QApplication.sessionId() for details.

If your application is very simple, it may be possible to store the entire application state in additional command line options. This is usually a very bad idea because command lines are often limited to a few hundred bytes. Instead, use QSettings, temporary files, or a database for this purpose. By marking the data with the unique sessionId(), you will be able to restore the application in a future session.

See also restartCommand(), setDiscardCommand(), and setRestartHint().

QSessionManager.setRestartHint (self, RestartHint)

Sets the application's restart hint to hint. On application startup, the hint is set to RestartIfRunning.

Note: These flags are only hints, a session manager may or may not respect them.

We recommend setting the restart hint in QApplication.saveState() because most session managers perform a checkpoint shortly after an application's startup.

See also restartHint().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsettings.html0000644000076500000240000026647712536324474020424 0ustar philstaff00000000000000 QSettings Class Reference
  Home · All Classes · Modules

QSettings Class Reference
[QtCore module]

The QSettings class provides persistent platform-independent application settings. More...

Inherits QObject.

Types

  • enum Format { NativeFormat, IniFormat, InvalidFormat }
  • enum Scope { UserScope, SystemScope }
  • enum Status { NoError, AccessError, FormatError }

Methods

Static Methods


Detailed Description

The QSettings class provides persistent platform-independent application settings.

Users normally expect an application to remember its settings (window sizes and positions, options, etc.) across sessions. This information is often stored in the system registry on Windows, and in XML preferences files on Mac OS X. On Unix systems, in the absence of a standard, many applications (including the KDE applications) use INI text files.

QSettings is an abstraction around these technologies, enabling you to save and restore application settings in a portable manner. It also supports custom storage formats.

QSettings's API is based on QVariant, allowing you to save most value-based types, such as QString, QRect, and QImage, with the minimum of effort.

If all you need is a non-persistent memory-based structure, consider using QMap<QString, QVariant> instead.

Basic Usage

When creating a QSettings object, you must pass the name of your company or organization as well as the name of your application. For example, if your product is called Star Runner and your company is called MySoft, you would construct the QSettings object as follows:

     QSettings settings("MySoft", "Star Runner");

QSettings objects can be created either on the stack or on the heap (i.e. using new). Constructing and destroying a QSettings object is very fast.

If you use QSettings from many places in your application, you might want to specify the organization name and the application name using QCoreApplication.setOrganizationName() and QCoreApplication.setApplicationName(), and then use the default QSettings constructor:

     QCoreApplication.setOrganizationName("MySoft");
     QCoreApplication.setOrganizationDomain("mysoft.com");
     QCoreApplication.setApplicationName("Star Runner");
     ...
     QSettings settings;

(Here, we also specify the organization's Internet domain. When the Internet domain is set, it is used on Mac OS X instead of the organization name, since Mac OS X applications conventionally use Internet domains to identify themselves. If no domain is set, a fake domain is derived from the organization name. See the Platform-Specific Notes below for details.)

QSettings stores settings. Each setting consists of a QString that specifies the setting's name (the key) and a QVariant that stores the data associated with the key. To write a setting, use setValue(). For example:

     settings.setValue("editor/wrapMargin", 68);

If there already exists a setting with the same key, the existing value is overwritten by the new value. For efficiency, the changes may not be saved to permanent storage immediately. (You can always call sync() to commit your changes.)

You can get a setting's value back using value():

     int margin = settings.value("editor/wrapMargin").toInt();

If there is no setting with the specified name, QSettings returns a null QVariant (which can be converted to the integer 0). You can specify another default value by passing a second argument to value():

     int margin = settings.value("editor/wrapMargin", 80).toInt();

To test whether a given key exists, call contains(). To remove the setting associated with a key, call remove(). To obtain the list of all keys, call allKeys(). To remove all keys, call clear().

QVariant and GUI Types

Because QVariant is part of the QtCore library, it cannot provide conversion functions to data types such as QColor, QImage, and QPixmap, which are part of QtGui. In other words, there is no toColor(), toImage(), or toPixmap() functions in QVariant.

Instead, you can use the QVariant.value() or the qVariantValue() template function. For example:

 QSettings settings("MySoft", "Star Runner");
 QColor color = settings.value("DataPump/bgcolor").value<QColor>();

The inverse conversion (e.g., from QColor to QVariant) is automatic for all data types supported by QVariant, including GUI-related types:

 QSettings settings("MySoft", "Star Runner");
 QColor color = palette().background().color();
 settings.setValue("DataPump/bgcolor", color);

Custom types registered using qRegisterMetaType() and qRegisterMetaTypeStreamOperators() can be stored using QSettings.

Section and Key Syntax

Setting keys can contain any Unicode characters. The Windows registry and INI files use case-insensitive keys, whereas the Carbon Preferences API on Mac OS X uses case-sensitive keys. To avoid portability problems, follow these simple rules:

  1. Always refer to the same key using the same case. For example, if you refer to a key as "text fonts" in one place in your code, don't refer to it as "Text Fonts" somewhere else.
  2. Avoid key names that are identical except for the case. For example, if you have a key called "MainWindow", don't try to save another key as "mainwindow".
  3. Do not use slashes ('/' and '\') in section or key names; the backslash character is used to separate sub keys (see below). On windows '\' are converted by QSettings to '/', which makes them identical.

You can form hierarchical keys using the '/' character as a separator, similar to Unix file paths. For example:

     settings.setValue("mainwindow/size", win->size());
     settings.setValue("mainwindow/fullScreen", win->isFullScreen());
     settings.setValue("outputpanel/visible", panel->isVisible());

If you want to save or restore many settings with the same prefix, you can specify the prefix using beginGroup() and call endGroup() at the end. Here's the same example again, but this time using the group mechanism:

     settings.beginGroup("mainwindow");
     settings.setValue("size", win->size());
     settings.setValue("fullScreen", win->isFullScreen());
     settings.endGroup();

     settings.beginGroup("outputpanel");
     settings.setValue("visible", panel->isVisible());
     settings.endGroup();

If a group is set using beginGroup(), the behavior of most functions changes consequently. Groups can be set recursively.

In addition to groups, QSettings also supports an "array" concept. See beginReadArray() and beginWriteArray() for details.

Fallback Mechanism

Let's assume that you have created a QSettings object with the organization name MySoft and the application name Star Runner. When you look up a value, up to four locations are searched in that order:

  1. a user-specific location for the Star Runner application
  2. a user-specific location for all applications by MySoft
  3. a system-wide location for the Star Runner application
  4. a system-wide location for all applications by MySoft

(See Platform-Specific Notes below for information on what these locations are on the different platforms supported by Qt.)

If a key cannot be found in the first location, the search goes on in the second location, and so on. This enables you to store system-wide or organization-wide settings and to override them on a per-user or per-application basis. To turn off this mechanism, call setFallbacksEnabled(false).

Although keys from all four locations are available for reading, only the first file (the user-specific location for the application at hand) is accessible for writing. To write to any of the other files, omit the application name and/or specify QSettings.SystemScope (as opposed to QSettings.UserScope, the default).

Let's see with an example:

     QSettings obj1("MySoft", "Star Runner");
     QSettings obj2("MySoft");
     QSettings obj3(QSettings.SystemScope, "MySoft", "Star Runner");
     QSettings obj4(QSettings.SystemScope, "MySoft");

The table below summarizes which QSettings objects access which location. "X" means that the location is the main location associated to the QSettings object and is used both for reading and for writing; "o" means that the location is used as a fallback when reading.

Locations obj1 obj2 obj3 obj4
1. User, Application X
2. User, Organization o X
3. System, Application o X
4. System, Organization o o o X

The beauty of this mechanism is that it works on all platforms supported by Qt and that it still gives you a lot of flexibility, without requiring you to specify any file names or registry paths.

If you want to use INI files on all platforms instead of the native API, you can pass QSettings.IniFormat as the first argument to the QSettings constructor, followed by the scope, the organization name, and the application name:

     QSettings settings(QSettings.IniFormat, QSettings.UserScope,
                        "MySoft", "Star Runner");

The Settings Editor example lets you experiment with different settings location and with fallbacks turned on or off.

Restoring the State of a GUI Application

QSettings is often used to store the state of a GUI application. The following example illustrates how to use QSettings to save and restore the geometry of an application's main window.

 void MainWindow.writeSettings()
 {
     QSettings settings("Moose Soft", "Clipper");

     settings.beginGroup("MainWindow");
     settings.setValue("size", size());
     settings.setValue("pos", pos());
     settings.endGroup();
 }

 void MainWindow.readSettings()
 {
     QSettings settings("Moose Soft", "Clipper");

     settings.beginGroup("MainWindow");
     resize(settings.value("size", QSize(400, 400)).toSize());
     move(settings.value("pos", QPoint(200, 200)).toPoint());
     settings.endGroup();
 }

See Window Geometry for a discussion on why it is better to call QWidget.resize() and QWidget.move() rather than QWidget.setGeometry() to restore a window's geometry.

The readSettings() and writeSettings() functions must be called from the main window's constructor and close event handler as follows:

 MainWindow.MainWindow()
 {
     ...
     readSettings();
 }

 void MainWindow.closeEvent(QCloseEvent *event)
 {
     if (userReallyWantsToQuit()) {
         writeSettings();
         event->accept();
     } else {
         event->ignore();
     }
 }

See the Application example for a self-contained example that uses QSettings.

Accessing Settings from Multiple Threads or Processes Simultaneously

QSettings is reentrant. This means that you can use distinct QSettings object in different threads simultaneously. This guarantee stands even when the QSettings objects refer to the same files on disk (or to the same entries in the system registry). If a setting is modified through one QSettings object, the change will immediately be visible in any other QSettings objects that operate on the same location and that live in the same process.

QSettings can safely be used from different processes (which can be different instances of your application running at the same time or different applications altogether) to read and write to the same system locations. It uses advisory file locking and a smart merging algorithm to ensure data integrity. Note that sync() imports changes made by other processes (in addition to writing the changes from this QSettings).

Platform-Specific Notes

Locations Where Application Settings Are Stored

As mentioned in the Fallback Mechanism section, QSettings stores settings for an application in up to four locations, depending on whether the settings are user-specific or system-wide and whether the settings are application-specific or organization-wide. For simplicity, we're assuming the organization is called MySoft and the application is called Star Runner.

On Unix systems, if the file format is NativeFormat, the following files are used by default:

  1. $HOME/.config/MySoft/Star Runner.conf (Qt for Embedded Linux: $HOME/Settings/MySoft/Star Runner.conf)
  2. $HOME/.config/MySoft.conf (Qt for Embedded Linux: $HOME/Settings/MySoft.conf)
  3. /etc/xdg/MySoft/Star Runner.conf
  4. /etc/xdg/MySoft.conf

On Mac OS X versions 10.2 and 10.3, these files are used by default:

  1. $HOME/Library/Preferences/com.MySoft.Star Runner.plist
  2. $HOME/Library/Preferences/com.MySoft.plist
  3. /Library/Preferences/com.MySoft.Star Runner.plist
  4. /Library/Preferences/com.MySoft.plist

On Windows, NativeFormat settings are stored in the following registry paths:

  1. HKEY_CURRENT_USER\Software\MySoft\Star Runner
  2. HKEY_CURRENT_USER\Software\MySoft
  3. HKEY_LOCAL_MACHINE\Software\MySoft\Star Runner
  4. HKEY_LOCAL_MACHINE\Software\MySoft

Note: On Windows, for 32-bit programs running in WOW64 mode, settings are stored in the following registry path: HKEY_LOCAL_MACHINE\Software\WOW6432node.

On BlackBerry only a single file is used (see Platform Limitations). If the file format is NativeFormat, this is "Settings/MySoft/Star Runner.conf" in the application's home directory.

If the file format is IniFormat, the following files are used on Unix and Mac OS X:

  1. $HOME/.config/MySoft/Star Runner.ini (Qt for Embedded Linux: $HOME/Settings/MySoft/Star Runner.ini)
  2. $HOME/.config/MySoft.ini (Qt for Embedded Linux: $HOME/Settings/MySoft.ini)
  3. /etc/xdg/MySoft/Star Runner.ini
  4. /etc/xdg/MySoft.ini

On Windows, the following files are used:

  1. %APPDATA%\MySoft\Star Runner.ini
  2. %APPDATA%\MySoft.ini
  3. %COMMON_APPDATA%\MySoft\Star Runner.ini
  4. %COMMON_APPDATA%\MySoft.ini

The %APPDATA% path is usually C:\Documents and Settings\User Name\Application Data; the %COMMON_APPDATA% path is usually C:\Documents and Settings\All Users\Application Data.

On BlackBerry only a single file is used (see Platform Limitations). If the file format is IniFormat, this is "Settings/MySoft/Star Runner.ini" in the application's home directory.

On Symbian, the following files are used for both IniFormat and NativeFormat (in this example, we assume that the application is installed on the e-drive and its Secure ID is 0xECB00931):

  1. c:\data\.config\MySoft\Star Runner.conf
  2. c:\data\.config\MySoft.conf
  3. e:\private\ecb00931\MySoft\Star Runner.conf
  4. e:\private\ecb00931\MySoft.conf

The SystemScope settings location is determined from the installation drive and Secure ID (UID3) of the application. If the application is built-in on the ROM, the drive used for SystemScope is c:.

Note: Symbian SystemScope settings are by default private to the application and not shared between applications, unlike other environments.

The paths for the .ini and .conf files can be changed using setPath(). On Unix and Mac OS X, the user can override them by setting the XDG_CONFIG_HOME environment variable; see setPath() for details.

Accessing INI and .plist Files Directly

Sometimes you do want to access settings stored in a specific file or registry path. On all platforms, if you want to read an INI file directly, you can use the QSettings constructor that takes a file name as first argument and pass QSettings.IniFormat as second argument. For example:

 QSettings settings("/home/petra/misc/myapp.ini",
                    QSettings.IniFormat);

You can then use the QSettings object to read and write settings in the file.

On Mac OS X, you can access XML-based .plist files by passing QSettings.NativeFormat as second argument. For example:

 QSettings settings("/Users/petra/misc/myapp.plist",
                    QSettings.NativeFormat);

Accessing the Windows Registry Directly

On Windows, QSettings lets you access settings that have been written with QSettings (or settings in a supported format, e.g., string data) in the system registry. This is done by constructing a QSettings object with a path in the registry and QSettings.NativeFormat.

For example:

 QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Office",
                    QSettings.NativeFormat);

All the registry entries that appear under the specified path can be read or written through the QSettings object as usual (using forward slashes instead of backslashes). For example:

 settings.setValue("11.0/Outlook/Security/DontTrustInstalledFiles", 0);

Note that the backslash character is, as mentioned, used by QSettings to separate subkeys. As a result, you cannot read or write windows registry entries that contain slashes or backslashes; you should use a native windows API if you need to do so.

Accessing Common Registry Settings on Windows

On Windows, it is possible for a key to have both a value and subkeys. Its default value is accessed by using "Default" or "." in place of a subkey:

 settings.setValue("HKEY_CURRENT_USER\\MySoft\\Star Runner\\Galaxy", "Milkyway");
 settings.setValue("HKEY_CURRENT_USER\\MySoft\\Star Runner\\Galaxy\\Sun", "OurStar");
 settings.value("HKEY_CURRENT_USER\\MySoft\\Star Runner\\Galaxy\\Default"); // returns "Milkyway"

On other platforms than Windows, "Default" and "." would be treated as regular subkeys.

Securing application settings in Symbian

UserScope settings in Symbian are writable by any application by default. To protect the application settings from access and tampering by other applications, the settings need to be placed in the private secure area of the application. This can be done by specifying the settings storage path directly to the private area. The following snippet changes the UserScope to c:/private/ecb00931/MySoft.conf (provided the application is installed on the c-drive and its Secure ID is 0xECB00931:

 QSettings settings(QApplication.applicationDirPath() + "/MySoft.conf");

Framework libraries (like Qt itself) may store configuration and cache settings using UserScope, which is accessible and writable by other applications. If the application is very security sensitive or uses high platform security capabilities, it may be prudent to also force framework settings to be stored in the private directory of the application. This can be done by changing the default path of UserScope before QApplication is created:

 #include <QSettings>
 #include <QDesktopServices>
 int main(int argc, char *argv[])
 {
 #ifdef Q_OS_SYMBIAN
     // Use QDesktopServices:storageLocation as QApplication is not yet created
     QSettings.setPath(
         QSettings.NativeFormat, QSettings.UserScope,
         QDesktopServices.storageLocation(QDesktopServices.DataLocation) + "/settings");
 #endif
     QApplication app(argc, argv);

     ...
 }

Note that this may affect framework libraries' functionality if they expect the settings to be shared between applications.

Changing the location of global Qt settings on Mac OS X

On Mac OS X, the global Qt settings (stored in com.trolltech.plist) are stored in the application settings file in two situations:

  1. If the application runs in a Mac OS X sandbox (on Mac OS X 10.7 or later) or
  2. If the Info.plist file of the application contains the key "ForAppStore" with the value "yes"

In these situations, the application settings file is named using the bundle identifier of the application, which must consequently be set in the application's Info.plist file.

This feature is provided to ease the acceptance of Qt applications into the Mac App Store, as the default behaviour of storing global Qt settings in the com.trolltech.plist file does not conform with Mac App Store file system usage requirements. For more information about submitting Qt applications to the Mac App Store, see Preparing a Qt application for Mac App Store submission.

Platform Limitations

While QSettings attempts to smooth over the differences between the different supported platforms, there are still a few differences that you should be aware of when porting your application:


Type Documentation

QSettings.Format

This enum type specifies the storage format used by QSettings.

Constant Value Description
QSettings.NativeFormat 0 Store the settings using the most appropriate storage format for the platform. On Windows, this means the system registry; on Mac OS X, this means the CFPreferences API; on Unix, this means textual configuration files in INI format.
QSettings.IniFormat 1 Store the settings in INI files.
QSettings.InvalidFormat 16 Special value returned by registerFormat().

On Unix, NativeFormat and IniFormat mean the same thing, except that the file extension is different (.conf for NativeFormat, .ini for IniFormat).

The INI file format is a Windows file format that Qt supports on all platforms. In the absence of an INI standard, we try to follow what Microsoft does, with the following exceptions:

  • If you store types that QVariant can't convert to QString (e.g., QPoint, QRect, and QSize), Qt uses an @-based syntax to encode the type. For example:
     pos = @Point(100 100)
    

    To minimize compatibility issues, any @ that doesn't appear at the first position in the value or that isn't followed by a Qt type (Point, Rect, Size, etc.) is treated as a normal character.

  • Although backslash is a special character in INI files, most Windows applications don't escape backslashes (\) in file paths:
     windir = C:\Windows
    

    QSettings always treats backslash as a special character and provides no API for reading or writing such entries.

  • The INI file format has severe restrictions on the syntax of a key. Qt works around this by using % as an escape character in keys. In addition, if you save a top-level setting (a key with no slashes in it, e.g., "someKey"), it will appear in the INI file's "General" section. To avoid overwriting other keys, if you save something using the a key such as "General/someKey", the key will be located in the "%General" section, not in the "General" section.
  • Following the philosophy that we should be liberal in what we accept and conservative in what we generate, QSettings will accept Latin-1 encoded INI files, but generate pure ASCII files, where non-ASCII values are encoded using standard INI escape sequences. To make the INI files more readable (but potentially less compatible), call setIniCodec().

See also registerFormat() and setPath().

QSettings.Scope

This enum specifies whether settings are user-specific or shared by all users of the same system.

Constant Value Description
QSettings.UserScope 0 Store settings in a location specific to the current user (e.g., in the user's home directory).
QSettings.SystemScope 1 Store settings in a global location, so that all users on the same machine access the same set of settings.

See also setPath().

QSettings.Status

The following status values are possible:

Constant Value Description
QSettings.NoError 0 No error occurred.
QSettings.AccessError 1 An access error occurred (e.g. trying to write to a read-only file).
QSettings.FormatError 2 A format error occurred (e.g. loading a malformed INI file).

See also status().


Method Documentation

QSettings.__init__ (self, QString organization, QString application = QString(), QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSettings object for accessing settings of the application called application from the organization called organization, and with parent parent.

Example:

 QSettings settings("Moose Tech", "Facturo-Pro");

The scope is set to QSettings.UserScope, and the format is set to QSettings.NativeFormat (i.e. calling setDefaultFormat() before calling this constructor has no effect).

See also setDefaultFormat() and Fallback Mechanism.

QSettings.__init__ (self, Scope scope, QString organization, QString application = QString(), QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSettings object for accessing settings of the application called application from the organization called organization, and with parent parent.

If scope is QSettings.UserScope, the QSettings object searches user-specific settings first, before it searches system-wide settings as a fallback. If scope is QSettings.SystemScope, the QSettings object ignores user-specific settings and provides access to system-wide settings.

The storage format is set to QSettings.NativeFormat (i.e. calling setDefaultFormat() before calling this constructor has no effect).

If no application name is given, the QSettings object will only access the organization-wide locations.

See also setDefaultFormat().

QSettings.__init__ (self, Format format, Scope scope, QString organization, QString application = QString(), QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSettings object for accessing settings of the application called application from the organization called organization, and with parent parent.

If scope is QSettings.UserScope, the QSettings object searches user-specific settings first, before it searches system-wide settings as a fallback. If scope is QSettings.SystemScope, the QSettings object ignores user-specific settings and provides access to system-wide settings.

If format is QSettings.NativeFormat, the native API is used for storing settings. If format is QSettings.IniFormat, the INI format is used.

If no application name is given, the QSettings object will only access the organization-wide locations.

QSettings.__init__ (self, QString fileName, Format format, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSettings object for accessing the settings stored in the file called fileName, with parent parent. If the file doesn't already exist, it is created.

If format is QSettings.NativeFormat, the meaning of fileName depends on the platform. On Unix, fileName is the name of an INI file. On Mac OS X, fileName is the name of a .plist file. On Windows, fileName is a path in the system registry.

If format is QSettings.IniFormat, fileName is the name of an INI file.

Warning: This function is provided for convenience. It works well for accessing INI or .plist files generated by Qt, but might fail on some syntaxes found in such files originated by other programs. In particular, be aware of the following limitations:

  • QSettings provides no way of reading INI "path" entries, i.e., entries with unescaped slash characters. (This is because these entries are ambiguous and cannot be resolved automatically.)
  • In INI files, QSettings uses the @ character as a metacharacter in some contexts, to encode Qt-specific data types (e.g., @Rect), and might therefore misinterpret it when it occurs in pure INI files.

See also fileName().

QSettings.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSettings object for accessing settings of the application and organization set previously with a call to QCoreApplication.setOrganizationName(), QCoreApplication.setOrganizationDomain(), and QCoreApplication.setApplicationName().

The scope is QSettings.UserScope and the format is defaultFormat() (QSettings.NativeFormat by default). Use setDefaultFormat() before calling this constructor to change the default format used by this constructor.

The code

 QSettings settings("Moose Soft", "Facturo-Pro");

is equivalent to

 QCoreApplication.setOrganizationName("Moose Soft");
 QCoreApplication.setApplicationName("Facturo-Pro");
 QSettings settings;

If QCoreApplication.setOrganizationName() and QCoreApplication.setApplicationName() has not been previously called, the QSettings object will not be able to read or write any settings, and status() will return AccessError.

On Mac OS X, if both a name and an Internet domain are specified for the organization, the domain is preferred over the name. On other platforms, the name is preferred over the domain.

See also QCoreApplication.setOrganizationName(), QCoreApplication.setOrganizationDomain(), QCoreApplication.setApplicationName(), and setDefaultFormat().

QStringList QSettings.allKeys (self)

Returns a list of all keys, including subkeys, that can be read using the QSettings object.

Example:

 QSettings settings;
 settings.setValue("fridge/color", Qt.white);
 settings.setValue("fridge/size", QSize(32, 96));
 settings.setValue("sofa", true);
 settings.setValue("tv", false);

 QStringList keys = settings.allKeys();
 // keys: ["fridge/color", "fridge/size", "sofa", "tv"]

If a group is set using beginGroup(), only the keys in the group are returned, without the group prefix:

 settings.beginGroup("fridge");
 keys = settings.allKeys();
 // keys: ["color", "size"]

See also childGroups() and childKeys().

QString QSettings.applicationName (self)

Returns the application name used for storing the settings.

This function was introduced in Qt 4.4.

See also QCoreApplication.applicationName(), format(), scope(), and organizationName().

QSettings.beginGroup (self, QString prefix)

Appends prefix to the current group.

The current group is automatically prepended to all keys specified to QSettings. In addition, query functions such as childGroups(), childKeys(), and allKeys() are based on the group. By default, no group is set.

Groups are useful to avoid typing in the same setting paths over and over. For example:

 settings.beginGroup("mainwindow");
 settings.setValue("size", win->size());
 settings.setValue("fullScreen", win->isFullScreen());
 settings.endGroup();

 settings.beginGroup("outputpanel");
 settings.setValue("visible", panel->isVisible());
 settings.endGroup();

This will set the value of three settings:

  • mainwindow/size
  • mainwindow/fullScreen
  • outputpanel/visible

Call endGroup() to reset the current group to what it was before the corresponding beginGroup() call. Groups can be nested.

See also endGroup() and group().

int QSettings.beginReadArray (self, QString prefix)

Adds prefix to the current group and starts reading from an array. Returns the size of the array.

Example:

 struct Login {
     QString userName;
     QString password;
 };
 QList<Login> logins;
 ...

 QSettings settings;
 int size = settings.beginReadArray("logins");
 for (int i = 0; i < size; ++i) {
     settings.setArrayIndex(i);
     Login login;
     login.userName = settings.value("userName").toString();
     login.password = settings.value("password").toString();
     logins.append(login);
 }
 settings.endArray();

Use beginWriteArray() to write the array in the first place.

See also beginWriteArray(), endArray(), and setArrayIndex().

QSettings.beginWriteArray (self, QString prefix, int size = -1)

Adds prefix to the current group and starts writing an array of size size. If size is -1 (the default), it is automatically determined based on the indexes of the entries written.

If you have many occurrences of a certain set of keys, you can use arrays to make your life easier. For example, let's suppose that you want to save a variable-length list of user names and passwords. You could then write:

 struct Login {
     QString userName;
     QString password;
 };
 QList<Login> logins;
 ...

 QSettings settings;
 settings.beginWriteArray("logins");
 for (int i = 0; i < logins.size(); ++i) {
     settings.setArrayIndex(i);
     settings.setValue("userName", list.at(i).userName);
     settings.setValue("password", list.at(i).password);
 }
 settings.endArray();

The generated keys will have the form

  • logins/size
  • logins/1/userName
  • logins/1/password
  • logins/2/userName
  • logins/2/password
  • logins/3/userName
  • logins/3/password
  • ...

To read back an array, use beginReadArray().

See also beginReadArray(), endArray(), and setArrayIndex().

QStringList QSettings.childGroups (self)

Returns a list of all key top-level groups that contain keys that can be read using the QSettings object.

Example:

 QSettings settings;
 settings.setValue("fridge/color", Qt.white);
 settings.setValue("fridge/size", QSize(32, 96));
 settings.setValue("sofa", true);
 settings.setValue("tv", false);

 QStringList groups = settings.childGroups();
 // groups: ["fridge"]

If a group is set using beginGroup(), the first-level keys in that group are returned, without the group prefix.

 settings.beginGroup("fridge");
 groups = settings.childGroups();
 // groups: []

You can navigate through the entire setting hierarchy using childKeys() and childGroups() recursively.

See also childKeys() and allKeys().

QStringList QSettings.childKeys (self)

Returns a list of all top-level keys that can be read using the QSettings object.

Example:

 QSettings settings;
 settings.setValue("fridge/color", Qt.white);
 settings.setValue("fridge/size", QSize(32, 96));
 settings.setValue("sofa", true);
 settings.setValue("tv", false);

 QStringList keys = settings.childKeys();
 // keys: ["sofa", "tv"]

If a group is set using beginGroup(), the top-level keys in that group are returned, without the group prefix:

 settings.beginGroup("fridge");
 keys = settings.childKeys();
 // keys: ["color", "size"]

You can navigate through the entire setting hierarchy using childKeys() and childGroups() recursively.

See also childGroups() and allKeys().

QSettings.clear (self)

Removes all entries in the primary location associated to this QSettings object.

Entries in fallback locations are not removed.

If you only want to remove the entries in the current group(), use remove("") instead.

See also remove() and setFallbacksEnabled().

bool QSettings.contains (self, QString key)

Returns true if there exists a setting called key; returns false otherwise.

If a group is set using beginGroup(), key is taken to be relative to that group.

Note that the Windows registry and INI files use case-insensitive keys, whereas the Carbon Preferences API on Mac OS X uses case-sensitive keys. To avoid portability problems, see the Section and Key Syntax rules.

See also value() and setValue().

Format QSettings.defaultFormat ()

Returns default file format used for storing settings for the QSettings(QObject *) constructor. If no default format is set, QSettings.NativeFormat is used.

This function was introduced in Qt 4.4.

See also setDefaultFormat() and format().

QSettings.endArray (self)

Closes the array that was started using beginReadArray() or beginWriteArray().

See also beginReadArray() and beginWriteArray().

QSettings.endGroup (self)

Resets the group to what it was before the corresponding beginGroup() call.

Example:

 settings.beginGroup("alpha");
 // settings.group() == "alpha"

 settings.beginGroup("beta");
 // settings.group() == "alpha/beta"

 settings.endGroup();
 // settings.group() == "alpha"

 settings.endGroup();
 // settings.group() == ""

See also beginGroup() and group().

bool QSettings.event (self, QEvent event)

Reimplemented from QObject.event().

bool QSettings.fallbacksEnabled (self)

Returns true if fallbacks are enabled; returns false otherwise.

By default, fallbacks are enabled.

See also setFallbacksEnabled().

QString QSettings.fileName (self)

Returns the path where settings written using this QSettings object are stored.

On Windows, if the format is QSettings.NativeFormat, the return value is a system registry path, not a file path.

See also isWritable() and format().

Format QSettings.format (self)

Returns the format used for storing the settings.

This function was introduced in Qt 4.4.

See also defaultFormat(), fileName(), scope(), organizationName(), and applicationName().

QString QSettings.group (self)

Returns the current group.

See also beginGroup() and endGroup().

QTextCodec QSettings.iniCodec (self)

Returns the codec that is used for accessing INI files. By default, no codec is used, so a null pointer is returned.

This function was introduced in Qt 4.5.

See also setIniCodec().

bool QSettings.isWritable (self)

Returns true if settings can be written using this QSettings object; returns false otherwise.

One reason why isWritable() might return false is if QSettings operates on a read-only file.

Warning: This function is not perfectly reliable, because the file permissions can change at any time.

See also fileName(), status(), and sync().

QString QSettings.organizationName (self)

Returns the organization name used for storing the settings.

This function was introduced in Qt 4.4.

See also QCoreApplication.organizationName(), format(), scope(), and applicationName().

QSettings.remove (self, QString key)

Removes the setting key and any sub-settings of key.

Example:

 QSettings settings;
 settings.setValue("ape");
 settings.setValue("monkey", 1);
 settings.setValue("monkey/sea", 2);
 settings.setValue("monkey/doe", 4);

 settings.remove("monkey");
 QStringList keys = settings.allKeys();
 // keys: ["ape"]

Be aware that if one of the fallback locations contains a setting with the same key, that setting will be visible after calling remove().

If key is an empty string, all keys in the current group() are removed. For example:

 QSettings settings;
 settings.setValue("ape");
 settings.setValue("monkey", 1);
 settings.setValue("monkey/sea", 2);
 settings.setValue("monkey/doe", 4);

 settings.beginGroup("monkey");
 settings.remove("");
 settings.endGroup();

 QStringList keys = settings.allKeys();
 // keys: ["ape"]

Note that the Windows registry and INI files use case-insensitive keys, whereas the Carbon Preferences API on Mac OS X uses case-sensitive keys. To avoid portability problems, see the Section and Key Syntax rules.

See also setValue(), value(), and contains().

Scope QSettings.scope (self)

Returns the scope used for storing the settings.

This function was introduced in Qt 4.4.

See also format(), organizationName(), and applicationName().

QSettings.setArrayIndex (self, int i)

Sets the current array index to i. Calls to functions such as setValue(), value(), remove(), and contains() will operate on the array entry at that index.

You must call beginReadArray() or beginWriteArray() before you can call this function.

QSettings.setDefaultFormat (Format format)

Sets the default file format to the given format, which is used for storing settings for the QSettings(QObject *) constructor.

If no default format is set, QSettings.NativeFormat is used. See the documentation for the QSettings constructor you are using to see if that constructor will ignore this function.

This function was introduced in Qt 4.4.

See also defaultFormat() and format().

QSettings.setFallbacksEnabled (self, bool b)

Sets whether fallbacks are enabled to b.

By default, fallbacks are enabled.

See also fallbacksEnabled().

QSettings.setIniCodec (self, QTextCodec codec)

Sets the codec for accessing INI files (including .conf files on Unix) to codec. The codec is used for decoding any data that is read from the INI file, and for encoding any data that is written to the file. By default, no codec is used, and non-ASCII characters are encoded using standard INI escape sequences.

Warning: The codec must be set immediately after creating the QSettings object, before accessing any data.

This function was introduced in Qt 4.5.

See also iniCodec().

QSettings.setIniCodec (self, str codecName)

This is an overloaded function.

Sets the codec for accessing INI files (including .conf files on Unix) to the QTextCodec for the encoding specified by codecName. Common values for codecName include "ISO 8859-1", "UTF-8", and "UTF-16". If the encoding isn't recognized, nothing happens.

This function was introduced in Qt 4.5.

See also QTextCodec.codecForName().

QSettings.setPath (Format format, Scope scope, QString path)

Sets the path used for storing settings for the given format and scope, to path. The format can be a custom format.

The table below summarizes the default values:

Platform Format Scope Path
Windows IniFormat UserScope %APPDATA%
SystemScope %COMMON_APPDATA%
Unix NativeFormat, IniFormat UserScope $HOME/.config
SystemScope /etc/xdg
Qt for Embedded Linux NativeFormat, IniFormat UserScope $HOME/Settings
SystemScope /etc/xdg
Mac OS X IniFormat UserScope $HOME/.config
SystemScope /etc/xdg
Symbian NativeFormat, IniFormat UserScope c:/data/.config
SystemScope <drive>/private/<uid>

The default UserScope paths on Unix and Mac OS X ($HOME/.config or $HOME/Settings) can be overridden by the user by setting the XDG_CONFIG_HOME environment variable. The default SystemScope paths on Unix and Mac OS X (/etc/xdg) can be overridden when building the Qt library using the configure script's --sysconfdir flag (see QLibraryInfo for details).

Setting the NativeFormat paths on Windows and Mac OS X has no effect.

Warning: This function doesn't affect existing QSettings objects.

This function was introduced in Qt 4.1.

See also registerFormat().

QSettings.setSystemIniPath (QString dir)

QSettings.setUserIniPath (QString dir)

QSettings.setValue (self, QString key, QVariant value)

Sets the value of setting key to value. If the key already exists, the previous value is overwritten.

Note that the Windows registry and INI files use case-insensitive keys, whereas the Carbon Preferences API on Mac OS X uses case-sensitive keys. To avoid portability problems, see the Section and Key Syntax rules.

Example:

 QSettings settings;
 settings.setValue("interval", 30);
 settings.value("interval").toInt();     // returns 30

 settings.setValue("interval", 6.55);
 settings.value("interval").toDouble();  // returns 6.55

See also value(), remove(), and contains().

Status QSettings.status (self)

Returns a status code indicating the first error that was met by QSettings, or QSettings.NoError if no error occurred.

Be aware that QSettings delays performing some operations. For this reason, you might want to call sync() to ensure that the data stored in QSettings is written to disk before calling status().

See also sync().

QSettings.sync (self)

Writes any unsaved changes to permanent storage, and reloads any settings that have been changed in the meantime by another application.

This function is called automatically from QSettings's destructor and by the event loop at regular intervals, so you normally don't need to call it yourself.

See also status().

object QSettings.value (self, QString key, QVariant defaultValue = QVariant(), object type = None)

Returns the value for setting key. If the setting doesn't exist, returns defaultValue.

If no default value is specified, a default QVariant is returned.

Note that the Windows registry and INI files use case-insensitive keys, whereas the Carbon Preferences API on Mac OS X uses case-sensitive keys. To avoid portability problems, see the Section and Key Syntax rules.

Example:

 QSettings settings;
 settings.setValue("animal/snake", 58);
 settings.value("animal/snake", 1024).toInt();   // returns 58
 settings.value("animal/zebra", 1024).toInt();   // returns 1024
 settings.value("animal/zebra").toInt();         // returns 0

See also setValue(), contains(), and remove().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsharedmemory.html0000644000076500000240000005343012536324474021242 0ustar philstaff00000000000000 QSharedMemory Class Reference
  Home · All Classes · Modules

QSharedMemory Class Reference
[QtCore module]

The QSharedMemory class provides access to a shared memory segment. More...

Inherits QObject.

Types

Methods


Detailed Description

The QSharedMemory class provides access to a shared memory segment.

QSharedMemory provides access to a shared memory segment by multiple threads and processes. It also provides a way for a single thread or process to lock the memory for exclusive access.

When using this class, be aware of the following platform differences:

Remember to lock the shared memory with lock() before reading from or writing to the shared memory, and remember to release the lock with unlock() after you are done.

Unlike QtSharedMemory, QSharedMemory automatically destroys the shared memory segment when the last instance of QSharedMemory is detached from the segment, and no references to the segment remain. Do not mix using QtSharedMemory and QSharedMemory. Port everything to QSharedMemory.

Warning: QSharedMemory changes the key in a Qt-specific way, unless otherwise specified. Interoperation with non-Qt applications is achieved by first creating a default shared memory with QSharedMemory() and then setting a native key with setNativeKey(). When using native keys, shared memory is not protected against multiple accesses on it (e.g. unable to lock()) and a user-defined mechanism should be used to achieve a such protection.


Type Documentation

QSharedMemory.AccessMode

Constant Value Description
QSharedMemory.ReadOnly 0 The shared memory segment is read-only. Writing to the shared memory segment is not allowed. An attempt to write to a shared memory segment created with ReadOnly causes the program to abort.
QSharedMemory.ReadWrite 1 Reading and writing the shared memory segment are both allowed.

QSharedMemory.SharedMemoryError

Constant Value Description
QSharedMemory.NoError 0 No error occurred.
QSharedMemory.PermissionDenied 1 The operation failed because the caller didn't have the required permissions.
QSharedMemory.InvalidSize 2 A create operation failed because the requested size was invalid.
QSharedMemory.KeyError 3 The operation failed because of an invalid key.
QSharedMemory.AlreadyExists 4 A create() operation failed because a shared memory segment with the specified key already existed.
QSharedMemory.NotFound 5 An attach() failed because a shared memory segment with the specified key could not be found.
QSharedMemory.LockError 6 The attempt to lock() the shared memory segment failed because create() or attach() failed and returned false, or because a system error occurred in QSystemSemaphore.acquire().
QSharedMemory.OutOfResources 7 A create() operation failed because there was not enough memory available to fill the request.
QSharedMemory.UnknownError 8 Something else happened and it was bad.

Method Documentation

QSharedMemory.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a shared memory object with the given parent and with its key set to key. Because its key is set, its create() and attach() functions can be called.

See also setKey(), create(), and attach().

QSharedMemory.__init__ (self, QString key, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

This function overloads QSharedMemory().

Constructs a shared memory object with the given parent. The shared memory object's key is not set by the constructor, so the shared memory object does not have an underlying shared memory segment attached. The key must be set with setKey() or setNativeKey() before create() or attach() can be used.

See also setKey().

bool QSharedMemory.attach (self, AccessMode mode = QSharedMemory.ReadWrite)

Attempts to attach the process to the shared memory segment identified by the key that was passed to the constructor or to a call to setKey() or setNativeKey(). The access mode is ReadWrite by default. It can also be ReadOnly. Returns true if the attach operation is successful. If false is returned, call error() to determine which error occurred. After attaching the shared memory segment, a pointer to the shared memory can be obtained by calling data().

See also isAttached(), detach(), and create().

sip.voidptr QSharedMemory.constData (self)

Returns a const pointer to the contents of the shared memory segment, if one is attached. Otherwise it returns null. Remember to lock the shared memory with lock() before reading from or writing to the shared memory, and remember to release the lock with unlock() after you are done.

See also attach() and create().

bool QSharedMemory.create (self, int size, AccessMode mode = QSharedMemory.ReadWrite)

Creates a shared memory segment of size bytes with the key passed to the constructor, set with setKey() or set with setNativeKey(), then attaches to the new shared memory segment with the given access mode and returns true. If a shared memory segment identified by the key already exists, the attach operation is not performed and false is returned. When the return value is false, call error() to determine which error occurred.

See also error().

sip.voidptr QSharedMemory.data (self)

Returns a pointer to the contents of the shared memory segment, if one is attached. Otherwise it returns null. Remember to lock the shared memory with lock() before reading from or writing to the shared memory, and remember to release the lock with unlock() after you are done.

See also attach().

bool QSharedMemory.detach (self)

Detaches the process from the shared memory segment. If this was the last process attached to the shared memory segment, then the shared memory segment is released by the system, i.e., the contents are destroyed. The function returns true if it detaches the shared memory segment. If it returns false, it usually means the segment either isn't attached, or it is locked by another process.

See also attach() and isAttached().

SharedMemoryError QSharedMemory.error (self)

Returns a value indicating whether an error occurred, and, if so, which error it was.

See also errorString().

QString QSharedMemory.errorString (self)

Returns a text description of the last error that occurred. If error() returns an error value, call this function to get a text string that describes the error.

See also error().

bool QSharedMemory.isAttached (self)

Returns true if this process is attached to the shared memory segment.

See also attach() and detach().

QString QSharedMemory.key (self)

Returns the key assigned with setKey() to this shared memory, or a null key if no key has been assigned, or if the segment is using a nativeKey(). The key is the identifier used by Qt applications to identify the shared memory segment.

You can find the native, platform specific, key used by the operating system by calling nativeKey().

See also setKey() and setNativeKey().

bool QSharedMemory.lock (self)

This is a semaphore that locks the shared memory segment for access by this process and returns true. If another process has locked the segment, this function blocks until the lock is released. Then it acquires the lock and returns true. If this function returns false, it means that you have ignored a false return from create() or attach(), that you have set the key with setNativeKey() or that QSystemSemaphore.acquire() failed due to an unknown system error.

See also unlock(), data(), and QSystemSemaphore.acquire().

QString QSharedMemory.nativeKey (self)

Returns the native, platform specific, key for this shared memory object. The native key is the identifier used by the operating system to identify the shared memory segment.

You can use the native key to access shared memory segments that have not been created by Qt, or to grant shared memory access to non-Qt applications.

This function was introduced in Qt 4.8.

See also setKey() and setNativeKey().

QSharedMemory.setKey (self, QString key)

Sets the platform independent key for this shared memory object. If key is the same as the current key, the function returns without doing anything.

You can call key() to retrieve the platform independent key. Internally, QSharedMemory converts this key into a platform specific key. If you instead call nativeKey(), you will get the platform specific, converted key.

If the shared memory object is attached to an underlying shared memory segment, it will detach from it before setting the new key. This function does not do an attach().

See also key(), nativeKey(), and isAttached().

QSharedMemory.setNativeKey (self, QString key)

Sets the native, platform specific, key for this shared memory object. If key is the same as the current native key, the function returns without doing anything. If all you want is to assign a key to a segment, you should call setKey() instead.

You can call nativeKey() to retrieve the native key. If a native key has been assigned, calling key() will return a null string.

If the shared memory object is attached to an underlying shared memory segment, it will detach from it before setting the new key. This function does not do an attach().

The application will not be portable if you set a native key.

This function was introduced in Qt 4.8.

See also nativeKey(), key(), and isAttached().

int QSharedMemory.size (self)

Returns the size of the attached shared memory segment. If no shared memory segment is attached, 0 is returned.

See also create() and attach().

bool QSharedMemory.unlock (self)

Releases the lock on the shared memory segment and returns true, if the lock is currently held by this process. If the segment is not locked, or if the lock is held by another process, nothing happens and false is returned.

See also lock().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qshortcut.html0000644000076500000240000002505512536324512020411 0ustar philstaff00000000000000 QShortcut Class Reference
  Home · All Classes · Modules

QShortcut Class Reference
[QtGui module]

The QShortcut class is used to create keyboard shortcuts. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QShortcut class is used to create keyboard shortcuts.

The QShortcut class provides a way of connecting keyboard shortcuts to Qt's signals and slots mechanism, so that objects can be informed when a shortcut is executed. The shortcut can be set up to contain all the key presses necessary to describe a keyboard shortcut, including the states of modifier keys such as Shift, Ctrl, and Alt.

On certain widgets, using '&' in front of a character will automatically create a mnemonic (a shortcut) for that character, e.g. "E&xit" will create the shortcut Alt+X (use '&&' to display an actual ampersand). The widget might consume and perform an action on a given shortcut. On X11 the ampersand will not be shown and the character will be underlined. On Windows, shortcuts are normally not displayed until the user presses the Alt key, but this is a setting the user can change. On Mac, shortcuts are disabled by default. Call qt_set_sequence_auto_mnemonic() to enable them. However, because mnemonic shortcuts do not fit in with Aqua's guidelines, Qt will not show the shortcut character underlined.

For applications that use menus, it may be more convenient to use the convenience functions provided in the QMenu class to assign keyboard shortcuts to menu items as they are created. Alternatively, shortcuts may be associated with other types of actions in the QAction class.

The simplest way to create a shortcut for a particular widget is to construct the shortcut with a key sequence. For example:

 shortcut = new QShortcut(QKeySequence(tr("Ctrl+O", "File|Open")),
                          parent);

When the user types the key sequence for a given shortcut, the shortcut's activated() signal is emitted. (In the case of ambiguity, the activatedAmbiguously() signal is emitted.) A shortcut is "listened for" by Qt's event loop when the shortcut's parent widget is receiving events.

A shortcut's key sequence can be set with setKey() and retrieved with key(). A shortcut can be enabled or disabled with setEnabled(), and can have "What's This?" help text set with setWhatsThis().


Method Documentation

QShortcut.__init__ (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QShortcut object for the parent widget. Since no shortcut key sequence is specified, the shortcut will not emit any signals.

See also setKey().

QShortcut.__init__ (self, QKeySequence key, QWidget parent, SLOT() member = 0, SLOT() ambiguousMember = 0, Qt.ShortcutContext context = Qt.WindowShortcut)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QShortcut object for the parent widget. The shortcut operates on its parent, listening for QShortcutEvents that match the key sequence. Depending on the ambiguity of the event, the shortcut will call the member function, or the ambiguousMember function, if the key press was in the shortcut's context.

bool QShortcut.autoRepeat (self)

Qt.ShortcutContext QShortcut.context (self)

bool QShortcut.event (self, QEvent e)

int QShortcut.id (self)

Returns the shortcut's ID.

See also QShortcutEvent.shortcutId().

bool QShortcut.isEnabled (self)

QKeySequence QShortcut.key (self)

QWidget QShortcut.parentWidget (self)

Returns the shortcut's parent widget.

QShortcut.setAutoRepeat (self, bool on)

QShortcut.setContext (self, Qt.ShortcutContext context)

QShortcut.setEnabled (self, bool enable)

QShortcut.setKey (self, QKeySequence key)

QShortcut.setWhatsThis (self, QString text)

QString QShortcut.whatsThis (self)


Qt Signal Documentation

void activated ()

This is the default overload of this signal.

This signal is emitted when the user types the shortcut's key sequence.

See also activatedAmbiguously().

void activatedAmbiguously ()

This is the default overload of this signal.

When a key sequence is being typed at the keyboard, it is said to be ambiguous as long as it matches the start of more than one shortcut.

When a shortcut's key sequence is completed, activatedAmbiguously() is emitted if the key sequence is still ambiguous (i.e., it is the start of one or more other shortcuts). The activated() signal is not emitted in this case.

See also activated().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qshortcutevent.html0000644000076500000240000001000212536324503021435 0ustar philstaff00000000000000 QShortcutEvent Class Reference
  Home · All Classes · Modules

QShortcutEvent Class Reference
[QtGui module]

The QShortcutEvent class provides an event which is generated when the user presses a key combination. More...

Inherits QEvent.

Methods


Detailed Description

The QShortcutEvent class provides an event which is generated when the user presses a key combination.

Normally you don't need to use this class directly; QShortcut provides a higher-level interface to handle shortcut keys.


Method Documentation

QShortcutEvent.__init__ (self, QKeySequence key, int id, bool ambiguous = False)

Constructs a shortcut event for the given key press, associated with the QShortcut ID id.

ambiguous specifies whether there is more than one QShortcut for the same key sequence.

QShortcutEvent.__init__ (self, QShortcutEvent)

bool QShortcutEvent.isAmbiguous (self)

Returns true if the key sequence that triggered the event is ambiguous.

See also QShortcut.activatedAmbiguously().

QKeySequence QShortcutEvent.key (self)

Returns the key sequence that triggered the event.

int QShortcutEvent.shortcutId (self)

Returns the ID of the QShortcut object for which this event was generated.

See also QShortcut.id().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qshowevent.html0000644000076500000240000000534012536324503020553 0ustar philstaff00000000000000 QShowEvent Class Reference
  Home · All Classes · Modules

QShowEvent Class Reference
[QtGui module]

The QShowEvent class provides an event that is sent when a widget is shown. More...

Inherits QEvent.

Methods


Detailed Description

The QShowEvent class provides an event that is sent when a widget is shown.

There are two kinds of show events: show events caused by the window system (spontaneous), and internal show events. Spontaneous (QEvent.spontaneous()) show events are sent just after the window system shows the window; they are also sent when a top-level window is redisplayed after being iconified. Internal show events are delivered just before the widget becomes visible.


Method Documentation

QShowEvent.__init__ (self)

Constructs a QShowEvent.

QShowEvent.__init__ (self, QShowEvent)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsignalmapper.html0000644000076500000240000003456512536324474021235 0ustar philstaff00000000000000 QSignalMapper Class Reference
  Home · All Classes · Modules

QSignalMapper Class Reference
[QtCore module]

The QSignalMapper class bundles signals from identifiable senders. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QSignalMapper class bundles signals from identifiable senders.

This class collects a set of parameterless signals, and re-emits them with integer, string or widget parameters corresponding to the object that sent the signal.

The class supports the mapping of particular strings or integers with particular objects using setMapping(). The objects' signals can then be connected to the map() slot which will emit the mapped() signal with the string or integer associated with the original signalling object. Mappings can be removed later using removeMappings().

Example: Suppose we want to create a custom widget that contains a group of buttons (like a tool palette). One approach is to connect each button's clicked() signal to its own custom slot; but in this example we want to connect all the buttons to a single slot and parameterize the slot by the button that was clicked.

Here's the definition of a simple custom widget that has a single signal, clicked(), which is emitted with the text of the button that was clicked:

 class ButtonWidget : public QWidget
 {
     Q_OBJECT

 public:
     ButtonWidget(QStringList texts, QWidget *parent = 0);

 signals:
     void clicked(const QString &text);

 private:
     QSignalMapper *signalMapper;
 };

The only function that we need to implement is the constructor:

 ButtonWidget.ButtonWidget(QStringList texts, QWidget *parent)
     : QWidget(parent)
 {
     signalMapper = new QSignalMapper(this);

     QGridLayout *gridLayout = new QGridLayout;
     for (int i = 0; i < texts.size(); ++i) {
         QPushButton *button = new QPushButton(texts[i]);
         connect(button, SIGNAL(clicked()), signalMapper, SLOT(map()));
         signalMapper->setMapping(button, texts[i]);
         gridLayout->addWidget(button, i / 3, i % 3);
     }

     connect(signalMapper, SIGNAL(mapped(const QString &)),
             this, SIGNAL(clicked(const QString &)));

     setLayout(gridLayout);
 }

A list of texts is passed to the constructor. A signal mapper is constructed and for each text in the list a QPushButton is created. We connect each button's clicked() signal to the signal mapper's map() slot, and create a mapping in the signal mapper from each button to the button's text. Finally we connect the signal mapper's mapped() signal to the custom widget's clicked() signal. When the user clicks a button, the custom widget will emit a single clicked() signal whose argument is the text of the button the user clicked.


Method Documentation

QSignalMapper.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSignalMapper with parent parent.

QSignalMapper.map (self)

This method is also a Qt slot with the C++ signature void map().

This slot emits signals based on which object sends signals to it.

QSignalMapper.map (self, QObject sender)

This method is also a Qt slot with the C++ signature void map(QObject*).

This slot emits signals based on the sender object.

QObject QSignalMapper.mapping (self, int id)

Returns the sender QObject that is associated with the id.

See also setMapping().

QObject QSignalMapper.mapping (self, QString text)

This function overloads mapping().

QObject QSignalMapper.mapping (self, QWidget widget)

This function overloads mapping().

Returns the sender QObject that is associated with the widget.

QObject QSignalMapper.mapping (self, QObject object)

This function overloads mapping().

Returns the sender QObject that is associated with the object.

QSignalMapper.removeMappings (self, QObject sender)

Removes all mappings for sender.

This is done automatically when mapped objects are destroyed.

QSignalMapper.setMapping (self, QObject sender, int id)

Adds a mapping so that when map() is signalled from the given sender, the signal mapped(id) is emitted.

There may be at most one integer ID for each sender.

See also mapping().

QSignalMapper.setMapping (self, QObject sender, QString text)

Adds a mapping so that when map() is signalled from the sender, the signal mapped(text ) is emitted.

There may be at most one text for each sender.

QSignalMapper.setMapping (self, QObject sender, QWidget widget)

Adds a mapping so that when map() is signalled from the sender, the signal mapped(widget ) is emitted.

There may be at most one widget for each sender.

QSignalMapper.setMapping (self, QObject sender, QObject object)

Adds a mapping so that when map() is signalled from the sender, the signal mapped(object ) is emitted.

There may be at most one object for each sender.


Qt Signal Documentation

void mapped (int)

This is the default overload of this signal.

This signal is emitted when map() is signalled from an object that has an integer mapping set. The object's mapped integer is passed in i.

See also setMapping().

void mapped (const QString&)

This signal is emitted when map() is signalled from an object that has a string mapping set. The object's mapped string is passed in text.

See also setMapping().

void mapped (QWidget*)

This signal is emitted when map() is signalled from an object that has a widget mapping set. The object's mapped widget is passed in widget.

See also setMapping().

void mapped (QObject*)

This signal is emitted when map() is signalled from an object that has an object mapping set. The object provided by the map is passed in object.

See also setMapping().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsignaltransition.html0000644000076500000240000002275312536324474022137 0ustar philstaff00000000000000 QSignalTransition Class Reference
  Home · All Classes · Modules

QSignalTransition Class Reference
[QtCore module]

The QSignalTransition class provides a transition based on a Qt signal. More...

Inherits QAbstractTransition.

Methods


Detailed Description

The QSignalTransition class provides a transition based on a Qt signal.

Typically you would use the overload of QState.addTransition() that takes a sender and signal as arguments, rather than creating QSignalTransition objects directly. QSignalTransition is part of The State Machine Framework.

You can subclass QSignalTransition and reimplement eventTest() to make a signal transition conditional; the event object passed to eventTest() will be a QStateMachine.SignalEvent object. Example:

 class CheckedTransition : public QSignalTransition
 {
 public:
     CheckedTransition(QCheckBox *check)
         : QSignalTransition(check, SIGNAL(stateChanged(int))) {}
 protected:
     bool eventTest(QEvent *e) {
         if (!QSignalTransition.eventTest(e))
             return false;
         QStateMachine.SignalEvent *se = static_cast<QStateMachine.SignalEvent*>(e);
         return (se->arguments().at(0).toInt() == Qt.Checked);
     }
 };

 ...

 QCheckBox *check = new QCheckBox();
 check->setTristate(true);

 QState *s1 = new QState();
 QState *s2 = new QState();
 CheckedTransition *t1 = new CheckedTransition(check);
 t1->setTargetState(s2);
 s1->addTransition(t1);

Method Documentation

QSignalTransition.__init__ (self, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new signal transition with the given sourceState.

QSignalTransition.__init__ (self, QObject sender, SIGNAL() signal, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new signal transition associated with the given signal of the given sender, and with the given sourceState.

QSignalTransition.__init__ (self, signal signal, QState sourceState = None)

The sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.

bool QSignalTransition.event (self, QEvent e)

Reimplemented from QObject.event().

bool QSignalTransition.eventTest (self, QEvent event)

Reimplemented from QAbstractTransition.eventTest().

The default implementation returns true if the event is a QStateMachine.SignalEvent object and the event's sender and signal index match this transition, and returns false otherwise.

QSignalTransition.onTransition (self, QEvent event)

Reimplemented from QAbstractTransition.onTransition().

QObject QSignalTransition.senderObject (self)

QSignalTransition.setSenderObject (self, QObject sender)

QSignalTransition.setSignal (self, QByteArray signal)

QByteArray QSignalTransition.signal (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsimplexmlnodemodel.html0000644000076500000240000001534612536324524022444 0ustar philstaff00000000000000 QSimpleXmlNodeModel Class Reference
  Home · All Classes · Modules

QSimpleXmlNodeModel Class Reference
[QtXmlPatterns module]

The QSimpleXmlNodeModel class is an implementation of QAbstractXmlNodeModel sufficient for many common cases. More...

Inherits QAbstractXmlNodeModel.

Methods


Detailed Description

The QSimpleXmlNodeModel class is an implementation of QAbstractXmlNodeModel sufficient for many common cases.

Subclassing QAbstractXmlNodeModel can be a significant task, because it requires implementing several, complex member functions. QSimpleXmlNodeModel provides default implementations of these member functions that are suitable for a wide range of node models.

Subclasses of QSimpleXmlNodeModel must be thread-safe.


Method Documentation

QSimpleXmlNodeModel.__init__ (self, QXmlNamePool namePool)

Constructs a QSimpleXmlNodeModel for use with with the specified namePool.

QUrl QSimpleXmlNodeModel.baseUri (self, QXmlNodeModelIndex node)

Reimplemented from QAbstractXmlNodeModel.baseUri().

Returns the base URI for node. This is always the document URI.

See also documentUri().

QXmlNodeModelIndex QSimpleXmlNodeModel.elementById (self, QXmlName id)

Reimplemented from QAbstractXmlNodeModel.elementById().

Always returns a default constructed QXmlNodeModelIndex instance, regardless of id.

This effectively means the model has no elements that have an id.

QXmlNamePool QSimpleXmlNodeModel.namePool (self)

Returns the name pool associated with this model. The implementation of name() will use this name pool to create names.

list-of-QXmlName QSimpleXmlNodeModel.namespaceBindings (self, QXmlNodeModelIndex)

Reimplemented from QAbstractXmlNodeModel.namespaceBindings().

Always returns an empty QVector. This signals that no namespace bindings are in scope for node.

list-of-QXmlNodeModelIndex QSimpleXmlNodeModel.nodesByIdref (self, QXmlName idref)

Reimplemented from QAbstractXmlNodeModel.nodesByIdref().

Always returns an empty vector, regardless of idref.

This effectively means the model has no elements or attributes of type IDREF.

QString QSimpleXmlNodeModel.stringValue (self, QXmlNodeModelIndex node)

Reimplemented from QAbstractXmlNodeModel.stringValue().

If node is an element or attribute, typedValue() is called, and the return value converted to a string, as per XQuery's rules.

If node is another type of node, the empty string is returned.

If this function is overridden for comments or processing instructions, it is important to remember to call it (for elements and attributes having values not of type xs:string) to ensure that the values are formatted according to XQuery.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsize.html0000644000076500000240000003414312536324474017515 0ustar philstaff00000000000000 QSize Class Reference
  Home · All Classes · Modules

QSize Class Reference
[QtCore module]

The QSize class defines the size of a two-dimensional object using integer point precision. More...

Methods

Special Methods


Detailed Description

This class can be pickled.

The QSize class defines the size of a two-dimensional object using integer point precision.

A size is specified by a width() and a height(). It can be set in the constructor and changed using the setWidth(), setHeight(), or scale() functions, or using arithmetic operators. A size can also be manipulated directly by retrieving references to the width and height using the rwidth() and rheight() functions. Finally, the width and height can be swapped using the transpose() function.

The isValid() function determines if a size is valid (a valid size has both width and height greater than zero). The isEmpty() function returns true if either of the width and height is less than, or equal to, zero, while the isNull() function returns true only if both the width and the height is zero.

Use the expandedTo() function to retrieve a size which holds the maximum height and width of this size and a given size. Similarly, the boundedTo() function returns a size which holds the minimum height and width of this size and a given size.

QSize objects can be streamed as well as compared.


Method Documentation

QSize.__init__ (self)

Constructs a size with an invalid width and height (i.e., isValid() returns false).

See also isValid().

QSize.__init__ (self, int w, int h)

Constructs a size with the given width and height.

See also setWidth() and setHeight().

QSize.__init__ (self, QSize)

QSize QSize.boundedTo (self, QSize otherSize)

Returns a size holding the minimum width and height of this size and the given otherSize.

See also expandedTo() and scale().

QSize QSize.expandedTo (self, QSize otherSize)

Returns a size holding the maximum width and height of this size and the given otherSize.

See also boundedTo() and scale().

int QSize.height (self)

Returns the height.

See also width() and setHeight().

bool QSize.isEmpty (self)

Returns true if either of the width and height is less than or equal to 0; otherwise returns false.

See also isNull() and isValid().

bool QSize.isNull (self)

Returns true if both the width and height is 0; otherwise returns false.

See also isValid() and isEmpty().

bool QSize.isValid (self)

Returns true if both the width and height is equal to or greater than 0; otherwise returns false.

See also isNull() and isEmpty().

QSize.scale (self, QSize s, Qt.AspectRatioMode mode)

Scales the size to a rectangle with the given width and height, according to the specified mode:

  • If mode is Qt.IgnoreAspectRatio, the size is set to (width, height).
  • If mode is Qt.KeepAspectRatio, the current size is scaled to a rectangle as large as possible inside (width, height), preserving the aspect ratio.
  • If mode is Qt.KeepAspectRatioByExpanding, the current size is scaled to a rectangle as small as possible outside (width, height), preserving the aspect ratio.

Example:

 QSize t1(10, 12);
 t1.scale(60, 60, Qt.IgnoreAspectRatio);
 // t1 is (60, 60)

 QSize t2(10, 12);
 t2.scale(60, 60, Qt.KeepAspectRatio);
 // t2 is (50, 60)

 QSize t3(10, 12);
 t3.scale(60, 60, Qt.KeepAspectRatioByExpanding);
 // t3 is (60, 72)

See also setWidth() and setHeight().

QSize.scale (self, int w, int h, Qt.AspectRatioMode mode)

This is an overloaded function.

Scales the size to a rectangle with the given size, according to the specified mode.

QSize.setHeight (self, int h)

Sets the height to the given height.

See also rheight(), height(), and setWidth().

QSize.setWidth (self, int w)

Sets the width to the given width.

See also rwidth(), width(), and setHeight().

QSize.transpose (self)

Swaps the width and height values.

See also setWidth() and setHeight().

int QSize.width (self)

Returns the width.

See also height() and setWidth().

QSize QSize.__add__ (self, QSize s2)

int QSize.__bool__ (self)

QSize QSize.__div__ (self, float c)

bool QSize.__eq__ (self, QSize s2)

QSize QSize.__iadd__ (self, QSize s)

QSize QSize.__idiv__ (self, float c)

QSize QSize.__imul__ (self, float c)

QSize QSize.__isub__ (self, QSize s)

QSize QSize.__mul__ (self, float c)

QSize QSize.__mul__ (self, QSize s)

bool QSize.__ne__ (self, QSize s2)

str QSize.__repr__ (self)

QSize QSize.__sub__ (self, QSize s2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsizef.html0000644000076500000240000003643312536324474017667 0ustar philstaff00000000000000 QSizeF Class Reference
  Home · All Classes · Modules

QSizeF Class Reference
[QtCore module]

The QSizeF class defines the size of a two-dimensional object using floating point precision. More...

Methods

Special Methods


Detailed Description

This class can be pickled.

The QSizeF class defines the size of a two-dimensional object using floating point precision.

A size is specified by a width() and a height(). It can be set in the constructor and changed using the setWidth(), setHeight(), or scale() functions, or using arithmetic operators. A size can also be manipulated directly by retrieving references to the width and height using the rwidth() and rheight() functions. Finally, the width and height can be swapped using the transpose() function.

The isValid() function determines if a size is valid. A valid size has both width and height greater than or equal to zero. The isEmpty() function returns true if either of the width and height is less than (or equal to) zero, while the isNull() function returns true only if both the width and the height is zero.

Use the expandedTo() function to retrieve a size which holds the maximum height and width of this size and a given size. Similarly, the boundedTo() function returns a size which holds the minimum height and width of this size and a given size.

The QSizeF class also provides the toSize() function returning a QSize copy of this size, constructed by rounding the width and height to the nearest integers.

QSizeF objects can be streamed as well as compared.


Method Documentation

QSizeF.__init__ (self)

Constructs an invalid size.

See also isValid().

QSizeF.__init__ (self, QSize sz)

Constructs a size with floating point accuracy from the given size.

See also toSize().

QSizeF.__init__ (self, float w, float h)

Constructs a size with the given width and height.

QSizeF.__init__ (self, QSizeF)

QSizeF QSizeF.boundedTo (self, QSizeF otherSize)

Returns a size holding the minimum width and height of this size and the given otherSize.

See also expandedTo() and scale().

QSizeF QSizeF.expandedTo (self, QSizeF otherSize)

Returns a size holding the maximum width and height of this size and the given otherSize.

See also boundedTo() and scale().

float QSizeF.height (self)

Returns the height.

See also width() and setHeight().

bool QSizeF.isEmpty (self)

Returns true if either of the width and height is less than or equal to 0; otherwise returns false.

See also isNull() and isValid().

bool QSizeF.isNull (self)

Returns true if both the width and height are +0.0; otherwise returns false.

Note: Since this function treats +0.0 and -0.0 differently, sizes with zero width and height where either or both values have a negative sign are not defined to be null sizes.

See also isValid() and isEmpty().

bool QSizeF.isValid (self)

Returns true if both the width and height is equal to or greater than 0; otherwise returns false.

See also isNull() and isEmpty().

QSizeF.scale (self, QSizeF s, Qt.AspectRatioMode mode)

Scales the size to a rectangle with the given width and height, according to the specified mode.

  • If mode is Qt.IgnoreAspectRatio, the size is set to (width, height).
  • If mode is Qt.KeepAspectRatio, the current size is scaled to a rectangle as large as possible inside (width, height), preserving the aspect ratio.
  • If mode is Qt.KeepAspectRatioByExpanding, the current size is scaled to a rectangle as small as possible outside (width, height), preserving the aspect ratio.

Example:

 QSizeF t1(10, 12);
 t1.scale(60, 60, Qt.IgnoreAspectRatio);
 // t1 is (60, 60)

 QSizeF t2(10, 12);
 t2.scale(60, 60, Qt.KeepAspectRatio);
 // t2 is (50, 60)

 QSizeF t3(10, 12);
 t3.scale(60, 60, Qt.KeepAspectRatioByExpanding);
 // t3 is (60, 72)

See also setWidth() and setHeight().

QSizeF.scale (self, float w, float h, Qt.AspectRatioMode mode)

This is an overloaded function.

Scales the size to a rectangle with the given size, according to the specified mode.

QSizeF.setHeight (self, float h)

Sets the height to the given height.

See also height(), rheight(), and setWidth().

QSizeF.setWidth (self, float w)

Sets the width to the given width.

See also width(), rwidth(), and setHeight().

QSize QSizeF.toSize (self)

Returns an integer based copy of this size.

Note that the coordinates in the returned size will be rounded to the nearest integer.

See also QSizeF().

QSizeF.transpose (self)

Swaps the width and height values.

See also setWidth() and setHeight().

float QSizeF.width (self)

Returns the width.

See also height() and setWidth().

QSizeF QSizeF.__add__ (self, QSizeF s2)

int QSizeF.__bool__ (self)

QSizeF QSizeF.__div__ (self, float c)

bool QSizeF.__eq__ (self, QSizeF s2)

QSizeF QSizeF.__iadd__ (self, QSizeF s)

QSizeF QSizeF.__idiv__ (self, float c)

QSizeF QSizeF.__imul__ (self, float c)

QSizeF QSizeF.__isub__ (self, QSizeF s)

QSizeF QSizeF.__mul__ (self, float c)

QSizeF QSizeF.__mul__ (self, QSizeF s)

bool QSizeF.__ne__ (self, QSizeF s2)

str QSizeF.__repr__ (self)

QSizeF QSizeF.__sub__ (self, QSizeF s2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsizegrip.html0000644000076500000240000001754412536324512020376 0ustar philstaff00000000000000 QSizeGrip Class Reference
  Home · All Classes · Modules

QSizeGrip Class Reference
[QtGui module]

The QSizeGrip class provides a resize handle for resizing top-level windows. More...

Inherits QWidget.

Methods


Detailed Description

The QSizeGrip class provides a resize handle for resizing top-level windows.

This widget works like the standard Windows resize handle. In the X11 version this resize handle generally works differently from the one provided by the system if the X11 window manager does not support necessary modern post-ICCCM specifications.

Put this widget anywhere in a widget tree and the user can use it to resize the top-level window or any widget with the Qt.SubWindow flag set. Generally, this should be in the lower right-hand corner. Note that QStatusBar already uses this widget, so if you have a status bar (e.g., you are using QMainWindow), then you don't need to use this widget explicitly.

On some platforms the size grip automatically hides itself when the window is shown full screen or maximised.

Screenshot of a Plastique style size grip A size grip widget at the bottom-right corner of a main window, shown in the Plastique widget style.

The QSizeGrip class inherits QWidget and reimplements the mousePressEvent() and mouseMoveEvent() functions to feature the resize functionality, and the paintEvent() function to render the size grip widget.


Method Documentation

QSizeGrip.__init__ (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a resize corner as a child widget of the given parent.

bool QSizeGrip.event (self, QEvent)

Reimplemented from QObject.event().

bool QSizeGrip.eventFilter (self, QObject, QEvent)

Reimplemented from QObject.eventFilter().

QSizeGrip.hideEvent (self, QHideEvent hideEvent)

Reimplemented from QWidget.hideEvent().

QSizeGrip.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

Resizes the top-level widget containing this widget. The mouse move event is passed in the event parameter.

QSizeGrip.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

Receives the mouse press events for the widget, and primes the resize operation. The mouse press event is passed in the event parameter.

QSizeGrip.mouseReleaseEvent (self, QMouseEvent mouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QSizeGrip.moveEvent (self, QMoveEvent moveEvent)

Reimplemented from QWidget.moveEvent().

QSizeGrip.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

Paints the resize grip.

Resize grips are usually rendered as small diagonal textured lines in the lower-right corner. The paint event is passed in the event parameter.

QSizeGrip.setVisible (self, bool)

Reimplemented from QWidget.setVisible().

QSizeGrip.showEvent (self, QShowEvent showEvent)

Reimplemented from QWidget.showEvent().

QSize QSizeGrip.sizeHint (self)

Reimplemented from QWidget.sizeHint().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsizepolicy-controltypes.html0000644000076500000240000001433012536324512023465 0ustar philstaff00000000000000 QSizePolicy.ControlTypes Class Reference
  Home · All Classes · Modules

QSizePolicy.ControlTypes Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

ControlType may be used whenever ControlTypes is expected.


Method Documentation

ControlTypes.__init__ (self, ControlTypes)

ControlTypes.__init__ (self, int)

ControlTypes.__init__ (self)

ControlTypes ControlTypes.__and__ (self, int mask)

int ControlTypes.__bool__ (self)

bool ControlTypes.__eq__ (self, ControlTypes f)

ControlTypes ControlTypes.__iand__ (self, int mask)

int ControlTypes.__int__ (self)

ControlTypes ControlTypes.__invert__ (self)

ControlTypes ControlTypes.__ior__ (self, ControlTypes f)

ControlTypes ControlTypes.__ixor__ (self, ControlTypes f)

bool ControlTypes.__ne__ (self, ControlTypes f)

ControlTypes ControlTypes.__or__ (self, ControlTypes f)

ControlTypes ControlTypes.__or__ (self, int f)

ControlTypes ControlTypes.__xor__ (self, ControlTypes f)

ControlTypes ControlTypes.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsizepolicy.html0000644000076500000240000006413512536324512020732 0ustar philstaff00000000000000 QSizePolicy Class Reference
  Home · All Classes · Modules

QSizePolicy Class Reference
[QtGui module]

The QSizePolicy class is a layout attribute describing horizontal and vertical resizing policy. More...

Types

  • enum ControlType { DefaultType, ButtonBox, CheckBox, ComboBox, ..., ToolButton }
  • enum Policy { Fixed, Minimum, Maximum, Preferred, ..., Ignored }
  • enum PolicyFlag { GrowFlag, ExpandFlag, ShrinkFlag, IgnoreFlag }

Methods

Special Methods

  • bool __eq__ (self, QSizePolicy s)
  • bool __ne__ (self, QSizePolicy s)

Detailed Description

The QSizePolicy class is a layout attribute describing horizontal and vertical resizing policy.

The size policy of a widget is an expression of its willingness to be resized in various ways, and affects how the widget is treated by the layout engine. Each widget returns a QSizePolicy that describes the horizontal and vertical resizing policy it prefers when being laid out. You can change this for a specific widget by changing its QWidget.sizePolicy property.

QSizePolicy contains two independent QSizePolicy.Policy values and two stretch factors; one describes the widgets's horizontal size policy, and the other describes its vertical size policy. It also contains a flag to indicate whether the height and width of its preferred size are related.

The horizontal and vertical policies can be set in the constructor, and altered using the setHorizontalPolicy() and setVerticalPolicy() functions. The stretch factors can be set using the setHorizontalStretch() and setVerticalStretch() functions. The flag indicating whether the widget's sizeHint() is width-dependent (such as a menu bar or a word-wrapping label) can be set using the setHeightForWidth() function.

The current size policies and stretch factors be retrieved using the horizontalPolicy(), verticalPolicy(), horizontalStretch() and verticalStretch() functions. Alternatively, use the transpose() function to swap the horizontal and vertical policies and stretches. The hasHeightForWidth() function returns the current status of the flag indicating the size hint dependencies.

Use the expandingDirections() function to determine whether the associated widget can make use of more space than its sizeHint() function indicates, as well as find out in which directions it can expand.

Finally, the QSizePolicy class provides operators comparing this size policy to a given policy, as well as a QVariant operator storing this QSizePolicy as a QVariant object.


Type Documentation

QSizePolicy.ControlType

This enum specifies the different types of widgets in terms of layout interaction:

Constant Value Description
QSizePolicy.DefaultType 0x00000001 The default type, when none is specified.
QSizePolicy.ButtonBox 0x00000002 A QDialogButtonBox instance.
QSizePolicy.CheckBox 0x00000004 A QCheckBox instance.
QSizePolicy.ComboBox 0x00000008 A QComboBox instance.
QSizePolicy.Frame 0x00000010 A QFrame instance.
QSizePolicy.GroupBox 0x00000020 A QGroupBox instance.
QSizePolicy.Label 0x00000040 A QLabel instance.
QSizePolicy.Line 0x00000080 A QFrame instance with QFrame.HLine or QFrame.VLine.
QSizePolicy.LineEdit 0x00000100 A QLineEdit instance.
QSizePolicy.PushButton 0x00000200 A QPushButton instance.
QSizePolicy.RadioButton 0x00000400 A QRadioButton instance.
QSizePolicy.Slider 0x00000800 A QAbstractSlider instance.
QSizePolicy.SpinBox 0x00001000 A QAbstractSpinBox instance.
QSizePolicy.TabWidget 0x00002000 A QTabWidget instance.
QSizePolicy.ToolButton 0x00004000 A QToolButton instance.

This enum was introduced or modified in Qt 4.3.

The ControlTypes type is a typedef for QFlags<ControlType>. It stores an OR combination of ControlType values.

See also setControlType() and controlType().

QSizePolicy.Policy

This enum describes the various per-dimension sizing types used when constructing a QSizePolicy.

Constant Value Description
QSizePolicy.Fixed 0 The QWidget.sizeHint() is the only acceptable alternative, so the widget can never grow or shrink (e.g. the vertical direction of a push button).
QSizePolicy.Minimum GrowFlag The sizeHint() is minimal, and sufficient. The widget can be expanded, but there is no advantage to it being larger (e.g. the horizontal direction of a push button). It cannot be smaller than the size provided by sizeHint().
QSizePolicy.Maximum ShrinkFlag The sizeHint() is a maximum. The widget can be shrunk any amount without detriment if other widgets need the space (e.g. a separator line). It cannot be larger than the size provided by sizeHint().
QSizePolicy.Preferred GrowFlag | ShrinkFlag The sizeHint() is best, but the widget can be shrunk and still be useful. The widget can be expanded, but there is no advantage to it being larger than sizeHint() (the default QWidget policy).
QSizePolicy.Expanding GrowFlag | ShrinkFlag | ExpandFlag The sizeHint() is a sensible size, but the widget can be shrunk and still be useful. The widget can make use of extra space, so it should get as much space as possible (e.g. the horizontal direction of a horizontal slider).
QSizePolicy.MinimumExpanding GrowFlag | ExpandFlag The sizeHint() is minimal, and sufficient. The widget can make use of extra space, so it should get as much space as possible (e.g. the horizontal direction of a horizontal slider).
QSizePolicy.Ignored ShrinkFlag | GrowFlag | IgnoreFlag The sizeHint() is ignored. The widget will get as much space as possible.

See also PolicyFlag, setHorizontalPolicy(), and setVerticalPolicy().

QSizePolicy.PolicyFlag

These flags are combined together to form the various Policy values:

Constant Value Description
QSizePolicy.GrowFlag 1 The widget can grow beyond its size hint if necessary.
QSizePolicy.ExpandFlag 2 The widget should get as much space as possible.
QSizePolicy.ShrinkFlag 4 The widget can shrink below its size hint if necessary.
QSizePolicy.IgnoreFlag 8 The widget's size hint is ignored. The widget will get as much space as possible.

See also Policy.


Method Documentation

QSizePolicy.__init__ (self)

Constructs a QSizePolicy object with Fixed as its horizontal and vertical policies.

The policies can be altered using the setHorizontalPolicy() and setVerticalPolicy() functions. Use the setHeightForWidth() function if the preferred height of the widget is dependent on the width of the widget (for example, a QLabel with line wrapping).

See also setHorizontalStretch() and setVerticalStretch().

QSizePolicy.__init__ (self, Policy horizontal, Policy vertical)

Constructs a QSizePolicy object with the given horizontal and vertical policies, and DefaultType as the control type.

Use setHeightForWidth() if the preferred height of the widget is dependent on the width of the widget (for example, a QLabel with line wrapping).

See also setHorizontalStretch() and setVerticalStretch().

QSizePolicy.__init__ (self, Policy horizontal, Policy vertical, ControlType type)

Constructs a QSizePolicy object with the given horizontal and vertical policies, and the specified control type.

Use setHeightForWidth() if the preferred height of the widget is dependent on the width of the widget (for example, a QLabel with line wrapping).

This function was introduced in Qt 4.3.

See also setHorizontalStretch(), setVerticalStretch(), and controlType().

QSizePolicy.__init__ (self, QVariant variant)

QSizePolicy.__init__ (self, QSizePolicy)

ControlType QSizePolicy.controlType (self)

Returns the control type associated with the widget for which this size policy applies.

This function was introduced in Qt 4.3.

See also setControlType().

Qt.Orientations QSizePolicy.expandingDirections (self)

Returns whether a widget can make use of more space than the QWidget.sizeHint() function indicates.

A value of Qt.Horizontal or Qt.Vertical means that the widget can grow horizontally or vertically (i.e., the horizontal or vertical policy is Expanding or MinimumExpanding), whereas Qt.Horizontal | Qt.Vertical means that it can grow in both dimensions.

See also horizontalPolicy() and verticalPolicy().

bool QSizePolicy.hasHeightForWidth (self)

Returns true if the widget's preferred height depends on its width; otherwise returns false.

See also setHeightForWidth().

bool QSizePolicy.hasWidthForHeight (self)

Returns true if the widget's width depends on its height; otherwise returns false.

This function was introduced in Qt 4.8.

See also setWidthForHeight().

Policy QSizePolicy.horizontalPolicy (self)

Returns the horizontal component of the size policy.

See also setHorizontalPolicy(), verticalPolicy(), and horizontalStretch().

int QSizePolicy.horizontalStretch (self)

Returns the horizontal stretch factor of the size policy.

See also setHorizontalStretch(), verticalStretch(), and horizontalPolicy().

QSizePolicy.setControlType (self, ControlType type)

Sets the control type associated with the widget for which this size policy applies to type.

The control type specifies the type of the widget for which this size policy applies. It is used by some styles, notably QMacStyle, to insert proper spacing between widgets. For example, the Mac OS X Aqua guidelines specify that push buttons should be separated by 12 pixels, whereas vertically stacked radio buttons only require 6 pixels.

This function was introduced in Qt 4.3.

See also controlType() and QStyle.layoutSpacing().

QSizePolicy.setHeightForWidth (self, bool b)

Sets the flag determining whether the widget's preferred height depends on its width, to dependent.

See also hasHeightForWidth() and setWidthForHeight().

QSizePolicy.setHorizontalPolicy (self, Policy d)

Sets the horizontal component to the given policy.

See also horizontalPolicy(), setVerticalPolicy(), and setHorizontalStretch().

QSizePolicy.setHorizontalStretch (self, int stretchFactor)

Sets the horizontal stretch factor of the size policy to the given stretchFactor.

See also horizontalStretch(), setVerticalStretch(), and setHorizontalPolicy().

QSizePolicy.setVerticalPolicy (self, Policy d)

Sets the vertical component to the given policy.

See also verticalPolicy(), setHorizontalPolicy(), and setVerticalStretch().

QSizePolicy.setVerticalStretch (self, int stretchFactor)

Sets the vertical stretch factor of the size policy to the given stretchFactor.

See also verticalStretch(), setHorizontalStretch(), and setVerticalPolicy().

QSizePolicy.setWidthForHeight (self, bool b)

Sets the flag determining whether the widget's width depends on its height, to dependent.

This is only supported for QGraphicsLayout's subclasses. It is not possible to have a layout with both height-for-width and width-for-height constraints at the same time.

This function was introduced in Qt 4.8.

See also hasWidthForHeight() and setHeightForWidth().

QSizePolicy.transpose (self)

Swaps the horizontal and vertical policies and stretches.

Policy QSizePolicy.verticalPolicy (self)

Returns the vertical component of the size policy.

See also setVerticalPolicy(), horizontalPolicy(), and verticalStretch().

int QSizePolicy.verticalStretch (self)

Returns the vertical stretch factor of the size policy.

See also setVerticalStretch(), horizontalStretch(), and verticalPolicy().

bool QSizePolicy.__eq__ (self, QSizePolicy s)

bool QSizePolicy.__ne__ (self, QSizePolicy s)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qslider.html0000644000076500000240000003027312536324512020016 0ustar philstaff00000000000000 QSlider Class Reference
  Home · All Classes · Modules

QSlider Class Reference
[QtGui module]

The QSlider widget provides a vertical or horizontal slider. More...

Inherits QAbstractSlider.

Types

  • enum TickPosition { NoTicks, TicksAbove, TicksLeft, TicksBelow, TicksRight, TicksBothSides }

Methods


Detailed Description

The QSlider widget provides a vertical or horizontal slider.

The slider is the classic widget for controlling a bounded value. It lets the user move a slider handle along a horizontal or vertical groove and translates the handle's position into an integer value within the legal range.

QSlider has very few of its own functions; most of the functionality is in QAbstractSlider. The most useful functions are setValue() to set the slider directly to some value; triggerAction() to simulate the effects of clicking (useful for shortcut keys); setSingleStep(), setPageStep() to set the steps; and setMinimum() and setMaximum() to define the range of the scroll bar.

QSlider provides methods for controlling tickmarks. You can use setTickPosition() to indicate where you want the tickmarks to be, setTickInterval() to indicate how many of them you want. the currently set tick position and interval can be queried using the tickPosition() and tickInterval() functions, respectively.

QSlider inherits a comprehensive set of signals:

Signal Description
valueChanged() Emitted when the slider's value has changed. The tracking() determines whether this signal is emitted during user interaction.
sliderPressed() Emitted when the user starts to drag the slider.
sliderMoved() Emitted when the user drags the slider.
sliderReleased() Emitted when the user releases the slider.

QSlider only provides integer ranges. Note that although QSlider handles very large numbers, it becomes difficult for users to use a slider accurately for very large ranges.

A slider accepts focus on Tab and provides both a mouse wheel and a keyboard interface. The keyboard interface is the following:

  • Left/Right move a horizontal slider by one single step.
  • Up/Down move a vertical slider by one single step.
  • PageUp moves up one page.
  • PageDown moves down one page.
  • Home moves to the start (mininum).
  • End moves to the end (maximum).
Screenshot of a Macintosh slider A slider shown in the Macintosh widget style.
Screenshot of a Windows XP slider A slider shown in the Windows XP widget style.
Screenshot of a Plastique slider A slider shown in the Plastique widget style.

Type Documentation

QSlider.TickPosition

This enum specifies where the tick marks are to be drawn relative to the slider's groove and the handle the user moves.

Constant Value Description
QSlider.NoTicks 0 Do not draw any tick marks.
QSlider.TicksBothSides 3 Draw tick marks on both sides of the groove.
QSlider.TicksAbove 1 Draw tick marks above the (horizontal) slider
QSlider.TicksBelow 2 Draw tick marks below the (horizontal) slider
QSlider.TicksLeft TicksAbove Draw tick marks to the left of the (vertical) slider
QSlider.TicksRight TicksBelow Draw tick marks to the right of the (vertical) slider

Method Documentation

QSlider.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a vertical slider with the given parent.

QSlider.__init__ (self, Qt.Orientation orientation, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a slider with the given parent. The orientation parameter determines whether the slider is horizontal or vertical; the valid values are Qt.Vertical and Qt.Horizontal.

bool QSlider.event (self, QEvent event)

Reimplemented from QObject.event().

QSlider.initStyleOption (self, QStyleOptionSlider option)

Initialize option with the values from this QSlider. This method is useful for subclasses when they need a QStyleOptionSlider, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QSize QSlider.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QSlider.mouseMoveEvent (self, QMouseEvent ev)

Reimplemented from QWidget.mouseMoveEvent().

QSlider.mousePressEvent (self, QMouseEvent ev)

Reimplemented from QWidget.mousePressEvent().

QSlider.mouseReleaseEvent (self, QMouseEvent ev)

Reimplemented from QWidget.mouseReleaseEvent().

QSlider.paintEvent (self, QPaintEvent ev)

Reimplemented from QWidget.paintEvent().

QSlider.setTickInterval (self, int ti)

QSlider.setTickPosition (self, TickPosition position)

QSize QSlider.sizeHint (self)

Reimplemented from QWidget.sizeHint().

int QSlider.tickInterval (self)

TickPosition QSlider.tickPosition (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsocketnotifier.html0000644000076500000240000002666512536324474021605 0ustar philstaff00000000000000 QSocketNotifier Class Reference
  Home · All Classes · Modules

QSocketNotifier Class Reference
[QtCore module]

The QSocketNotifier class provides support for monitoring activity on a file descriptor. More...

Inherits QObject.

Types

  • enum Type { Read, Write, Exception }

Methods

Qt Signals


Detailed Description

The QSocketNotifier class provides support for monitoring activity on a file descriptor.

The QSocketNotifier makes it possible to integrate Qt's event loop with other event loops based on file descriptors. For example, the CORBA Framework uses it to process CORBA events. File descriptor action is detected in Qt's main event loop (QCoreApplication.exec()).

Once you have opened a device using a low-level (usually platform-specific) API, you can create a socket notifier to monitor the file descriptor. The socket notifier is enabled by default, i.e. it emits the activated() signal whenever a socket event corresponding to its type occurs. Connect the activated() signal to the slot you want to be called when an event corresponding to your socket notifier's type occurs.

There are three types of socket notifiers: read, write, and exception. The type is described by the Type enum, and must be specified when constructing the socket notifier. After construction it can be determined using the type() function. Note that if you need to monitor both reads and writes for the same file descriptor, you must create two socket notifiers. Note also that it is not possible to install two socket notifiers of the same type (Read, Write, Exception) on the same socket.

The setEnabled() function allows you to disable as well as enable the socket notifier. It is generally advisable to explicitly enable or disable the socket notifier, especially for write notifiers. A disabled notifier ignores socket events (the same effect as not creating the socket notifier). Use the isEnabled() function to determine the notifier's current status.

Finally, you can use the socket() function to retrieve the socket identifier. Although the class is called QSocketNotifier, it is normally used for other types of devices than sockets. QTcpSocket and QUdpSocket provide notification through signals, so there is normally no need to use a QSocketNotifier on them.

Notes for Windows Users

The socket passed to QSocketNotifier will become non-blocking, even if it was created as a blocking socket. The activated() signal is sometimes triggered by high general activity on the host, even if there is nothing to read. A subsequent read from the socket can then fail, the error indicating that there is no data available (e.g., WSAEWOULDBLOCK). This is an operating system limitation, and not a bug in QSocketNotifier.

To ensure that the socket notifier handles read notifications correctly, follow these steps when you receive a notification:

  1. Disable the notifier.
  2. Read data from the socket.
  3. Re-enable the notifier if you are interested in more data (such as after having written a new command to a remote server).

To ensure that the socket notifier handles write notifications correctly, follow these steps when you receive a notification:

  1. Disable the notifier.
  2. Write as much data as you can (before EWOULDBLOCK is returned).
  3. Re-enable notifier if you have more data to write.

Further information: On Windows, Qt always disables the notifier after getting a notification, and only re-enables it if more data is expected. For example, if data is read from the socket and it can be used to read more, or if reading or writing is not possible because the socket would block, in which case it is necessary to wait before attempting to read or write again.


Type Documentation

QSocketNotifier.Type

This enum describes the various types of events that a socket notifier can recognize. The type must be specified when constructing the socket notifier.

Note that if you need to monitor both reads and writes for the same file descriptor, you must create two socket notifiers. Note also that it is not possible to install two socket notifiers of the same type (Read, Write, Exception) on the same socket.

Constant Value Description
QSocketNotifier.Read 0 There is data to be read.
QSocketNotifier.Write 1 Data can be written.
QSocketNotifier.Exception 2 An exception has occurred. We recommend against using this.

See also QSocketNotifier() and type().


Method Documentation

QSocketNotifier.__init__ (self, int socket, Type type, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a socket notifier with the given parent. It enables the socket, and watches for events of the given type.

It is generally advisable to explicitly enable or disable the socket notifier, especially for write notifiers.

Note for Windows users: The socket passed to QSocketNotifier will become non-blocking, even if it was created as a blocking socket.

See also setEnabled() and isEnabled().

bool QSocketNotifier.event (self, QEvent)

Reimplemented from QObject.event().

bool QSocketNotifier.isEnabled (self)

Returns true if the notifier is enabled; otherwise returns false.

See also setEnabled().

QSocketNotifier.setEnabled (self, bool)

This method is also a Qt slot with the C++ signature void setEnabled(bool).

If enable is true, the notifier is enabled; otherwise the notifier is disabled.

The notifier is enabled by default, i.e. it emits the activated() signal whenever a socket event corresponding to its type occurs. If it is disabled, it ignores socket events (the same effect as not creating the socket notifier).

Write notifiers should normally be disabled immediately after the activated() signal has been emitted

See also isEnabled() and activated().

int QSocketNotifier.socket (self)

Returns the socket identifier specified to the constructor.

See also type().

Type QSocketNotifier.type (self)

Returns the socket event type specified to the constructor.

See also socket().


Qt Signal Documentation

void activated (int)

This is the default overload of this signal.

This signal is emitted whenever the socket notifier is enabled and a socket event corresponding to its type occurs.

The socket identifier is passed in the socket parameter.

See also type() and socket().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsortfilterproxymodel.html0000644000076500000240000013670612536324512023064 0ustar philstaff00000000000000 QSortFilterProxyModel Class Reference
  Home · All Classes · Modules

QSortFilterProxyModel Class Reference
[QtGui module]

The QSortFilterProxyModel class provides support for sorting and filtering data passed between another model and a view. More...

Inherits QAbstractProxyModel.

Methods


Detailed Description

The QSortFilterProxyModel class provides support for sorting and filtering data passed between another model and a view.

QSortFilterProxyModel can be used for sorting items, filtering out items, or both. The model transforms the structure of a source model by mapping the model indexes it supplies to new indexes, corresponding to different locations, for views to use. This approach allows a given source model to be restructured as far as views are concerned without requiring any transformations on the underlying data, and without duplicating the data in memory.

Let's assume that we want to sort and filter the items provided by a custom model. The code to set up the model and the view, without sorting and filtering, would look like this:

         QTreeView *treeView = new QTreeView;
         MyItemModel *model = new MyItemModel(this);

         treeView->setModel(model);

To add sorting and filtering support to MyItemModel, we need to create a QSortFilterProxyModel, call setSourceModel() with the MyItemModel as argument, and install the QSortFilterProxyModel on the view:

         QTreeView *treeView = new QTreeView;
         MyItemModel *sourceModel = new MyItemModel(this);
         QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);

         proxyModel->setSourceModel(sourceModel);
         treeView->setModel(proxyModel);

At this point, neither sorting nor filtering is enabled; the original data is displayed in the view. Any changes made through the QSortFilterProxyModel are applied to the original model.

The QSortFilterProxyModel acts as a wrapper for the original model. If you need to convert source QModelIndexes to sorted/filtered model indexes or vice versa, use mapToSource(), mapFromSource(), mapSelectionToSource(), and mapSelectionFromSource().

Note: By default, the model does not dynamically re-sort and re-filter data whenever the original model changes. This behavior can be changed by setting the dynamicSortFilter property.

The Basic Sort/Filter Model and Custom Sort/Filter Model examples illustrate how to use QSortFilterProxyModel to perform basic sorting and filtering and how to subclass it to implement custom behavior.

Sorting

QTableView and QTreeView have a sortingEnabled property that controls whether the user can sort the view by clicking the view's horizontal header. For example:

         treeView->setSortingEnabled(true);

When this feature is on (the default is off), clicking on a header section sorts the items according to that column. By clicking repeatedly, the user can alternate between ascending and descending order.

A sorted QTreeView

Behind the scene, the view calls the sort() virtual function on the model to reorder the data in the model. To make your data sortable, you can either implement sort() in your model, or use a QSortFilterProxyModel to wrap your model -- QSortFilterProxyModel provides a generic sort() reimplementation that operates on the sortRole() (Qt.DisplayRole by default) of the items and that understands several data types, including int, QString, and QDateTime. For hierarchical models, sorting is applied recursively to all child items. String comparisons are case sensitive by default; this can be changed by setting the sortCaseSensitivity property.

Custom sorting behavior is achieved by subclassing QSortFilterProxyModel and reimplementing lessThan(), which is used to compare items. For example:

 bool MySortFilterProxyModel.lessThan(const QModelIndex &left,
                                       const QModelIndex &right) const
 {
     QVariant leftData = sourceModel()->data(left);
     QVariant rightData = sourceModel()->data(right);

     if (leftData.type() == QVariant.DateTime) {
         return leftData.toDateTime() < rightData.toDateTime();
     } else {
         QRegExp *emailPattern = new QRegExp("([\\w\\.]*@[\\w\\.]*)");

         QString leftString = leftData.toString();
         if(left.column() == 1 && emailPattern->indexIn(leftString) != -1)
             leftString = emailPattern->cap(1);

         QString rightString = rightData.toString();
         if(right.column() == 1 && emailPattern->indexIn(rightString) != -1)
             rightString = emailPattern->cap(1);

         return QString.localeAwareCompare(leftString, rightString) < 0;
     }
 }

(This code snippet comes from the Custom Sort/Filter Model example.)

An alternative approach to sorting is to disable sorting on the view and to impose a certain order to the user. This is done by explicitly calling sort() with the desired column and order as arguments on the QSortFilterProxyModel (or on the original model if it implements sort()). For example:

         proxyModel->sort(2, Qt.AscendingOrder);

QSortFilterProxyModel can be sorted by column -1, in which case it returns to the sort order of the underlying source model.

Filtering

In addition to sorting, QSortFilterProxyModel can be used to hide items that do not match a certain filter. The filter is specified using a QRegExp object and is applied to the filterRole() (Qt.DisplayRole by default) of each item, for a given column. The QRegExp object can be used to match a regular expression, a wildcard pattern, or a fixed string. For example:

         proxyModel->setFilterRegExp(QRegExp(".png", Qt.CaseInsensitive,
                                             QRegExp.FixedString));
         proxyModel->setFilterKeyColumn(1);

For hierarchical models, the filter is applied recursively to all children. If a parent item doesn't match the filter, none of its children will be shown.

A common use case is to let the user specify the filter regexp, wildcard pattern, or fixed string in a QLineEdit and to connect the textChanged() signal to setFilterRegExp(), setFilterWildcard(), or setFilterFixedString() to reapply the filter.

Custom filtering behavior can be achieved by reimplementing the filterAcceptsRow() and filterAcceptsColumn() functions. For example (from the Custom Sort/Filter Model example), the following implementation ignores the filterKeyColumn property and performs filtering on columns 0, 1, and 2:

 bool MySortFilterProxyModel.filterAcceptsRow(int sourceRow,
         const QModelIndex &sourceParent) const
 {
     QModelIndex index0 = sourceModel()->index(sourceRow, 0, sourceParent);
     QModelIndex index1 = sourceModel()->index(sourceRow, 1, sourceParent);
     QModelIndex index2 = sourceModel()->index(sourceRow, 2, sourceParent);

     return (sourceModel()->data(index0).toString().contains(filterRegExp())
             || sourceModel()->data(index1).toString().contains(filterRegExp()))
            && dateInRange(sourceModel()->data(index2).toDate());
 }

(This code snippet comes from the Custom Sort/Filter Model example.)

If you are working with large amounts of filtering and have to invoke invalidateFilter() repeatedly, using reset() may be more efficient, depending on the implementation of your model. However, reset() returns the proxy model to its original state, losing selection information, and will cause the proxy model to be repopulated.

Subclassing

Since QAbstractProxyModel and its subclasses are derived from QAbstractItemModel, much of the same advice about subclassing normal models also applies to proxy models. In addition, it is worth noting that many of the default implementations of functions in this class are written so that they call the equivalent functions in the relevant source model. This simple proxying mechanism may need to be overridden for source models with more complex behavior; for example, if the source model provides a custom hasChildren() implementation, you should also provide one in the proxy model.

Note: Some general guidelines for subclassing models are available in the Model Subclassing Reference.


Method Documentation

QSortFilterProxyModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a sorting filter model with the given parent.

QModelIndex QSortFilterProxyModel.buddy (self, QModelIndex index)

Reimplemented from QAbstractItemModel.buddy().

bool QSortFilterProxyModel.canFetchMore (self, QModelIndex parent)

Reimplemented from QAbstractItemModel.canFetchMore().

QSortFilterProxyModel.clear (self)

This method is also a Qt slot with the C++ signature void clear().

int QSortFilterProxyModel.columnCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.columnCount().

QVariant QSortFilterProxyModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.data().

See also setData().

bool QSortFilterProxyModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Reimplemented from QAbstractItemModel.dropMimeData().

bool QSortFilterProxyModel.dynamicSortFilter (self)

QSortFilterProxyModel.fetchMore (self, QModelIndex parent)

Reimplemented from QAbstractItemModel.fetchMore().

bool QSortFilterProxyModel.filterAcceptsColumn (self, int source_column, QModelIndex source_parent)

Returns true if the item in the column indicated by the given source_column and source_parent should be included in the model; otherwise returns false.

The default implementation returns true if the value held by the relevant item matches the filter string, wildcard string or regular expression.

Note: By default, the Qt.DisplayRole is used to determine if the row should be accepted or not. This can be changed by setting the filterRole property.

See also filterAcceptsRow(), setFilterFixedString(), setFilterRegExp(), and setFilterWildcard().

bool QSortFilterProxyModel.filterAcceptsRow (self, int source_row, QModelIndex source_parent)

Returns true if the item in the row indicated by the given source_row and source_parent should be included in the model; otherwise returns false.

The default implementation returns true if the value held by the relevant item matches the filter string, wildcard string or regular expression.

Note: By default, the Qt.DisplayRole is used to determine if the row should be accepted or not. This can be changed by setting the filterRole property.

See also filterAcceptsColumn(), setFilterFixedString(), setFilterRegExp(), and setFilterWildcard().

Qt.CaseSensitivity QSortFilterProxyModel.filterCaseSensitivity (self)

QSortFilterProxyModel.filterChanged (self)

int QSortFilterProxyModel.filterKeyColumn (self)

QRegExp QSortFilterProxyModel.filterRegExp (self)

int QSortFilterProxyModel.filterRole (self)

Qt.ItemFlags QSortFilterProxyModel.flags (self, QModelIndex index)

Reimplemented from QAbstractItemModel.flags().

bool QSortFilterProxyModel.hasChildren (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.hasChildren().

QVariant QSortFilterProxyModel.headerData (self, int section, Qt.Orientation orientation, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.headerData().

See also setHeaderData().

QModelIndex QSortFilterProxyModel.index (self, int row, int column, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.index().

bool QSortFilterProxyModel.insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertColumns().

bool QSortFilterProxyModel.insertRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertRows().

QSortFilterProxyModel.invalidate (self)

This method is also a Qt slot with the C++ signature void invalidate().

Invalidates the current sorting and filtering.

This function was introduced in Qt 4.3.

See also invalidateFilter().

QSortFilterProxyModel.invalidateFilter (self)

Invalidates the current filtering.

This function should be called if you are implementing custom filtering (e.g. filterAcceptsRow()), and your filter parameters have changed.

This function was introduced in Qt 4.3.

See also invalidate().

bool QSortFilterProxyModel.isSortLocaleAware (self)

bool QSortFilterProxyModel.lessThan (self, QModelIndex left, QModelIndex right)

Returns true if the value of the item referred to by the given index left is less than the value of the item referred to by the given index right, otherwise returns false.

This function is used as the < operator when sorting, and handles the following QVariant types:

Any other type will be converted to a QString using QVariant.toString().

Comparison of QStrings is case sensitive by default; this can be changed using the sortCaseSensitivity property.

By default, the Qt.DisplayRole associated with the QModelIndexes is used for comparisons. This can be changed by setting the sortRole property.

Note: The indices passed in correspond to the source model.

See also sortRole, sortCaseSensitivity, and dynamicSortFilter.

QModelIndex QSortFilterProxyModel.mapFromSource (self, QModelIndex sourceIndex)

Reimplemented from QAbstractProxyModel.mapFromSource().

Returns the model index in the QSortFilterProxyModel given the sourceIndex from the source model.

See also mapToSource().

QItemSelection QSortFilterProxyModel.mapSelectionFromSource (self, QItemSelection sourceSelection)

Reimplemented from QAbstractProxyModel.mapSelectionFromSource().

QItemSelection QSortFilterProxyModel.mapSelectionToSource (self, QItemSelection proxySelection)

Reimplemented from QAbstractProxyModel.mapSelectionToSource().

QModelIndex QSortFilterProxyModel.mapToSource (self, QModelIndex proxyIndex)

Reimplemented from QAbstractProxyModel.mapToSource().

Returns the source model index corresponding to the given proxyIndex from the sorting filter model.

See also mapFromSource().

list-of-QModelIndex QSortFilterProxyModel.match (self, QModelIndex start, int role, QVariant value, int hits = 1, Qt.MatchFlags flags = Qt.MatchStartsWith|Qt.MatchWrap)

Reimplemented from QAbstractItemModel.match().

QMimeData QSortFilterProxyModel.mimeData (self, list-of-QModelIndex indexes)

The QMimeData result

Reimplemented from QAbstractItemModel.mimeData().

QStringList QSortFilterProxyModel.mimeTypes (self)

Reimplemented from QAbstractItemModel.mimeTypes().

QModelIndex QSortFilterProxyModel.parent (self, QModelIndex child)

Reimplemented from QAbstractItemModel.parent().

QObject QSortFilterProxyModel.parent (self)

bool QSortFilterProxyModel.removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeColumns().

bool QSortFilterProxyModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeRows().

int QSortFilterProxyModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

bool QSortFilterProxyModel.setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setData().

See also data().

QSortFilterProxyModel.setDynamicSortFilter (self, bool enable)

QSortFilterProxyModel.setFilterCaseSensitivity (self, Qt.CaseSensitivity cs)

QSortFilterProxyModel.setFilterFixedString (self, QString pattern)

This method is also a Qt slot with the C++ signature void setFilterFixedString(const QString&).

Sets the fixed string used to filter the contents of the source model to the given pattern.

See also setFilterCaseSensitivity(), setFilterRegExp(), setFilterWildcard(), and filterRegExp().

QSortFilterProxyModel.setFilterKeyColumn (self, int column)

QSortFilterProxyModel.setFilterRegExp (self, QRegExp regExp)

QSortFilterProxyModel.setFilterRegExp (self, QString pattern)

This method is also a Qt slot with the C++ signature void setFilterRegExp(const QString&).

QSortFilterProxyModel.setFilterRole (self, int role)

QSortFilterProxyModel.setFilterWildcard (self, QString pattern)

This method is also a Qt slot with the C++ signature void setFilterWildcard(const QString&).

Sets the wildcard expression used to filter the contents of the source model to the given pattern.

See also setFilterCaseSensitivity(), setFilterRegExp(), setFilterFixedString(), and filterRegExp().

bool QSortFilterProxyModel.setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setHeaderData().

See also headerData().

QSortFilterProxyModel.setSortCaseSensitivity (self, Qt.CaseSensitivity cs)

QSortFilterProxyModel.setSortLocaleAware (self, bool on)

QSortFilterProxyModel.setSortRole (self, int role)

QSortFilterProxyModel.setSourceModel (self, QAbstractItemModel sourceModel)

Reimplemented from QAbstractProxyModel.setSourceModel().

QSortFilterProxyModel.sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Reimplemented from QAbstractItemModel.sort().

Qt.CaseSensitivity QSortFilterProxyModel.sortCaseSensitivity (self)

int QSortFilterProxyModel.sortColumn (self)

the column currently used for sorting

This returns the most recently used sort column.

This function was introduced in Qt 4.5.

Qt.SortOrder QSortFilterProxyModel.sortOrder (self)

the order currently used for sorting

This returns the most recently used sort order.

This function was introduced in Qt 4.5.

int QSortFilterProxyModel.sortRole (self)

QSize QSortFilterProxyModel.span (self, QModelIndex index)

Reimplemented from QAbstractItemModel.span().

Qt.DropActions QSortFilterProxyModel.supportedDropActions (self)

Reimplemented from QAbstractItemModel.supportedDropActions().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsound.html0000644000076500000240000002266112536324512017666 0ustar philstaff00000000000000 QSound Class Reference
  Home · All Classes · Modules

QSound Class Reference
[QtGui module]

The QSound class provides access to the platform audio facilities. More...

Inherits QObject.

Methods

Static Methods


Detailed Description

The QSound class provides access to the platform audio facilities.

Qt provides the most commonly required audio operation in GUI applications: asynchronously playing a sound file. This is most easily accomplished using the static play() function:

 QSound.play("mysounds/bells.wav");

Alternatively, create a QSound object from the sound file first and then call the play() slot:

 QSound bells("mysounds/bells.wav");
 bells.play();

Once created a QSound object can be queried for its fileName() and total number of loops() (i.e. the number of times the sound will play). The number of repetitions can be altered using the setLoops() function. While playing the sound, the loopsRemaining() function returns the remaining number of repetitions. Use the isFinished() function to determine whether the sound has finished playing.

Sounds played using a QSound object may use more memory than the static play() function, but it may also play more immediately (depending on the underlying platform audio facilities). Use the static isAvailable() function to determine whether sound facilities exist on the platform. Which facilities that are actually used varies:

Platform Audio Facility
Microsoft Windows The underlying multimedia system is used; only WAVE format sound files are supported.
X11 The Network Audio System is used if available, otherwise all operations work silently. NAS supports WAVE and AU files.
Mac OS X NSSound is used. All formats that NSSound supports, including QuickTime formats, are supported by Qt for Mac OS X.
Qt for Embedded Linux A built-in mixing sound server is used, accessing /dev/dsp directly. Only the WAVE format is supported.
Symbian CMdaAudioPlayerUtility is used. All formats that Symbian OS or devices support are supported also by Qt.

Note that QSound does not support resources. This might be fixed in a future Qt version.


Method Documentation

QSound.__init__ (self, QString filename, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSound object from the file specified by the given filename and with the given parent.

This may use more memory than the static play() function, but it may also play more immediately (depending on the underlying platform audio facilities).

See also play().

QString QSound.fileName (self)

Returns the filename associated with this QSound object.

See also QSound().

bool QSound.isAvailable ()

Returns true if sound facilities exist on the platform; otherwise returns false.

If no sound is available, all QSound operations work silently and quickly. An application may choose either to notify the user if sound is crucial to the application or to operate silently without bothering the user.

Note: On Windows this always returns true because some sound card drivers do not implement a way to find out whether it is available or not.

bool QSound.isFinished (self)

Returns true if the sound has finished playing; otherwise returns false.

Warning: On Windows this function always returns true for unlooped sounds.

int QSound.loops (self)

Returns the number of times the sound will play.

See also loopsRemaining() and setLoops().

int QSound.loopsRemaining (self)

Returns the remaining number of times the sound will loop (this value decreases each time the sound is played).

See also loops() and isFinished().

QSound.play (QString filename)

Plays the sound stored in the file specified by the given filename.

See also stop(), loopsRemaining(), and isFinished().

QSound.play (self)

This method is also a Qt slot with the C++ signature void play().

This is an overloaded function.

Starts playing the sound specified by this QSound object.

The function returns immediately. Depending on the platform audio facilities, other sounds may stop or be mixed with the new sound. The sound can be played again at any time, possibly mixing or replacing previous plays of the sound.

See also fileName().

QSound.setLoops (self, int)

Sets the sound to repeat the given number of times when it is played.

Note that passing the value -1 will cause the sound to loop indefinitely.

See also loops().

QSound.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Stops the sound playing.

Note that on Windows the current loop will finish if a sound is played in a loop.

See also play().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsourcelocation.html0000644000076500000240000001677612536324524021604 0ustar philstaff00000000000000 QSourceLocation Class Reference
  Home · All Classes · Modules

QSourceLocation Class Reference
[QtXmlPatterns module]

The QSourceLocation class identifies a location in a resource by URI, line, and column. More...

Methods

Special Methods

  • bool __eq__ (self, QSourceLocation other)
  • int __hash__ (self)
  • bool __ne__ (self, QSourceLocation other)

Detailed Description

The QSourceLocation class identifies a location in a resource by URI, line, and column.

QSourceLocation is a simple value based class that has three properties, uri(), line(), and column(), that, taken together, identify a certain point in a resource, e.g., a file or an in-memory document.

line() and column() refer to character counts (not byte counts), and they both start from 1, as opposed to 0.


Method Documentation

QSourceLocation.__init__ (self)

Construct a QSourceLocation that doesn't identify anything at all.

For a default constructed QSourceLocation(), isNull() returns true.

QSourceLocation.__init__ (self, QSourceLocation other)

Constructs a QSourceLocation that is a copy of other.

QSourceLocation.__init__ (self, QUrl u, int line = -1, int column = -1)

Constructs a QSourceLocation with URI u, line l and column c.

int QSourceLocation.column (self)

Returns the current column number. The column number refers to the count of characters, not bytes. The first column is column 1, not 0. The default value is -1, indicating the column number is unknown.

See also setColumn().

bool QSourceLocation.isNull (self)

Returns true if this QSourceLocation doesn't identify anything.

For a default constructed QSourceLocation, this function returns true. The same applies for any other QSourceLocation whose uri() is invalid.

int QSourceLocation.line (self)

Returns the current line number. The first line number is 1, not 0. The default value is -1, indicating the line number is unknown.

See also setLine().

QSourceLocation.setColumn (self, int newColumn)

Sets the column number to newColumn. 0 is an invalid column number. The first column number is 1.

See also column().

QSourceLocation.setLine (self, int newLine)

Sets the line number to newLine. 0 is an invalid line number. The first line number is 1.

See also line().

QSourceLocation.setUri (self, QUrl newUri)

Sets the URI to newUri.

See also uri().

QUrl QSourceLocation.uri (self)

Returns the resource that this QSourceLocation refers to. For example, the resource could be a file in the local file system, if the URI scheme is file.

See also setUri().

bool QSourceLocation.__eq__ (self, QSourceLocation other)

int QSourceLocation.__hash__ (self)

bool QSourceLocation.__ne__ (self, QSourceLocation other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qspaceritem.html0000644000076500000240000001737212536324507020701 0ustar philstaff00000000000000 QSpacerItem Class Reference
  Home · All Classes · Modules

QSpacerItem Class Reference
[QtGui module]

The QSpacerItem class provides blank space in a layout. More...

Inherits QLayoutItem.

Methods


Detailed Description

The QSpacerItem class provides blank space in a layout.

Normally, you don't need to use this class directly. Qt's built-in layout managers provide the following functions for manipulating empty space in layouts:

Class Functions
QHBoxLayout addSpacing(), addStretch(), insertSpacing(), insertStretch()
QGridLayout setRowMinimumHeight(), setRowStretch(), setColumnMinimumWidth(), setColumnStretch()

Method Documentation

QSpacerItem.__init__ (self, int w, int h, QSizePolicy.Policy hPolicy = QSizePolicy.Minimum, QSizePolicy.Policy vPolicy = QSizePolicy.Minimum)

Constructs a spacer item with preferred width w, preferred height h, horizontal size policy hPolicy and vertical size policy vPolicy.

The default values provide a gap that is able to stretch if nothing else wants the space.

QSpacerItem.__init__ (self, QSpacerItem)

QSpacerItem.changeSize (self, int w, int h, QSizePolicy.Policy hPolicy = QSizePolicy.Minimum, QSizePolicy.Policy vPolicy = QSizePolicy.Minimum)

Changes this spacer item to have preferred width w, preferred height h, horizontal size policy hPolicy and vertical size policy vPolicy.

The default values provide a gap that is able to stretch if nothing else wants the space.

Note that if changeSize() is called after the spacer item has been added to a layout, it is necessary to invalidate the layout in order for the spacer item's new size to take effect.

See also QSpacerItem.invalidate().

Qt.Orientations QSpacerItem.expandingDirections (self)

Reimplemented from QLayoutItem.expandingDirections().

QRect QSpacerItem.geometry (self)

Reimplemented from QLayoutItem.geometry().

See also setGeometry().

bool QSpacerItem.isEmpty (self)

Reimplemented from QLayoutItem.isEmpty().

Returns true.

QSize QSpacerItem.maximumSize (self)

Reimplemented from QLayoutItem.maximumSize().

QSize QSpacerItem.minimumSize (self)

Reimplemented from QLayoutItem.minimumSize().

QSpacerItem.setGeometry (self, QRect)

Reimplemented from QLayoutItem.setGeometry().

See also geometry().

QSize QSpacerItem.sizeHint (self)

Reimplemented from QLayoutItem.sizeHint().

QSpacerItem QSpacerItem.spacerItem (self)

Reimplemented from QLayoutItem.spacerItem().

Returns a pointer to this object.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qspinbox.html0000644000076500000240000003743712536324512020227 0ustar philstaff00000000000000 QSpinBox Class Reference
  Home · All Classes · Modules

QSpinBox Class Reference
[QtGui module]

The QSpinBox class provides a spin box widget. More...

Inherits QAbstractSpinBox.

Methods

Qt Signals


Detailed Description

The QSpinBox class provides a spin box widget.

QSpinBox is designed to handle integers and discrete sets of values (e.g., month names); use QDoubleSpinBox for floating point values.

QSpinBox allows the user to choose a value by clicking the up/down buttons or pressing up/down on the keyboard to increase/decrease the value currently displayed. The user can also type the value in manually. The spin box supports integer values but can be extended to use different strings with validate(), textFromValue() and valueFromText().

Every time the value changes QSpinBox emits the valueChanged() signals. The current value can be fetched with value() and set with setValue().

Clicking the up/down buttons or using the keyboard accelerator's up and down arrows will increase or decrease the current value in steps of size singleStep(). If you want to change this behaviour you can reimplement the virtual function stepBy(). The minimum and maximum value and the step size can be set using one of the constructors, and can be changed later with setMinimum(), setMaximum() and setSingleStep().

Most spin boxes are directional, but QSpinBox can also operate as a circular spin box, i.e. if the range is 0-99 and the current value is 99, clicking "up" will give 0 if wrapping() is set to true. Use setWrapping() if you want circular behavior.

The displayed value can be prepended and appended with arbitrary strings indicating, for example, currency or the unit of measurement. See setPrefix() and setSuffix(). The text in the spin box is retrieved with text() (which includes any prefix() and suffix()), or with cleanText() (which has no prefix(), no suffix() and no leading or trailing whitespace).

It is often desirable to give the user a special (often default) choice in addition to the range of numeric values. See setSpecialValueText() for how to do this with QSpinBox.

Screenshot of a Windows XP spin box A spin box shown in the Windows XP widget style.
Screenshot of a Plastique spin box A spin box shown in the Plastique widget style.
Screenshot of a Macintosh spin box A spin box shown in the Macintosh widget style.

Subclassing QSpinBox

If using prefix(), suffix(), and specialValueText() don't provide enough control, you subclass QSpinBox and reimplement valueFromText() and textFromValue(). For example, here's the code for a custom spin box that allows the user to enter icon sizes (e.g., "32 x 32"):

 int IconSizeSpinBox.valueFromText(const QString &text) const
 {
     QRegExp regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?"));

     if (regExp.exactMatch(text)) {
         return regExp.cap(1).toInt();
     } else {
         return 0;
     }
 }

 QString IconSizeSpinBox.textFromValue(int value) const
 {
     return tr("%1 x %1").arg(value);
 }

See the Icons example for the full source code.


Method Documentation

QSpinBox.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a spin box with 0 as minimum value and 99 as maximum value, a step value of 1. The value is initially set to 0. It is parented to parent.

See also setMinimum(), setMaximum(), and setSingleStep().

QString QSpinBox.cleanText (self)

bool QSpinBox.event (self, QEvent e)

Reimplemented from QObject.event().

QString str QSpinBox.fixup (self, QString str)

Reimplemented from QAbstractSpinBox.fixup().

QSpinBox.fixup (self, QString str)

int QSpinBox.maximum (self)

int QSpinBox.minimum (self)

QString QSpinBox.prefix (self)

QSpinBox.setMaximum (self, int max)

QSpinBox.setMinimum (self, int min)

QSpinBox.setPrefix (self, QString p)

QSpinBox.setRange (self, int min, int max)

Convenience function to set the minimum, and maximum values with a single function call.

 setRange(minimum, maximum);

is equivalent to:

 setMinimum(minimum);
 setMaximum(maximum);

See also minimum and maximum.

QSpinBox.setSingleStep (self, int val)

QSpinBox.setSuffix (self, QString s)

QSpinBox.setValue (self, int val)

This method is also a Qt slot with the C++ signature void setValue(int).

int QSpinBox.singleStep (self)

QString QSpinBox.suffix (self)

QString QSpinBox.textFromValue (self, int v)

This virtual function is used by the spin box whenever it needs to display the given value. The default implementation returns a string containing value printed in the standard way using QWidget.locale().toString(), but with the thousand separator removed. Reimplementations may return anything. (See the example in the detailed description.)

Note: QSpinBox does not call this function for specialValueText() and that neither prefix() nor suffix() should be included in the return value.

If you reimplement this, you may also need to reimplement valueFromText() and validate()

See also valueFromText(), validate(), and QLocale.groupSeparator().

(QValidator.State, QString input, int pos) QSpinBox.validate (self, QString input, int pos)

Reimplemented from QAbstractSpinBox.validate().

(QValidator.State, int pos) QSpinBox.validate (self, QString input, int pos)

int QSpinBox.value (self)

int QSpinBox.valueFromText (self, QString text)

This virtual function is used by the spin box whenever it needs to interpret text entered by the user as a value.

Subclasses that need to display spin box values in a non-numeric way need to reimplement this function.

Note: QSpinBox handles specialValueText() separately; this function is only concerned with the other values.

See also textFromValue() and validate().


Qt Signal Documentation

void valueChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the spin box's value is changed. The new value's integer value is passed in i.

void valueChanged (const QString&)

This is an overloaded function.

The new value is passed literally in text with no prefix() or suffix().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsplashscreen.html0000644000076500000240000003155112536324513021227 0ustar philstaff00000000000000 QSplashScreen Class Reference
  Home · All Classes · Modules

QSplashScreen Class Reference
[QtGui module]

The QSplashScreen widget provides a splash screen that can be shown during application startup. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QSplashScreen widget provides a splash screen that can be shown during application startup.

A splash screen is a widget that is usually displayed when an application is being started. Splash screens are often used for applications that have long start up times (e.g. database or networking applications that take time to establish connections) to provide the user with feedback that the application is loading.

The splash screen appears in the center of the screen. It may be useful to add the Qt.WindowStaysOnTopHint to the splash widget's window flags if you want to keep it above all the other windows on the desktop.

Some X11 window managers do not support the "stays on top" flag. A solution is to set up a timer that periodically calls raise_() on the splash screen to simulate the "stays on top" effect.

The most common usage is to show a splash screen before the main widget is displayed on the screen. This is illustrated in the following code snippet in which a splash screen is displayed and some initialization tasks are performed before the application's main window is shown:

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QPixmap pixmap(":/splash.png");
     QSplashScreen splash(pixmap);
     splash.show();
     app.processEvents();
     ...
     QMainWindow window;
     window.show();
     splash.finish(&window);
     return app.exec();
 }

The user can hide the splash screen by clicking on it with the mouse. Since the splash screen is typically displayed before the event loop has started running, it is necessary to periodically call QApplication.processEvents() to receive the mouse clicks.

It is sometimes useful to update the splash screen with messages, for example, announcing connections established or modules loaded as the application starts up:

 QPixmap pixmap(":/splash.png");
 QSplashScreen *splash = new QSplashScreen(pixmap);
 splash->show();

 ... // Loading some items
 splash->showMessage("Loaded modules");

 qApp->processEvents();

 ... // Establishing connections
 splash->showMessage("Established connections");

 qApp->processEvents();

QSplashScreen supports this with the showMessage() function. If you wish to do your own drawing you can get a pointer to the pixmap used in the splash screen with pixmap(). Alternatively, you can subclass QSplashScreen and reimplement drawContents().


Method Documentation

QSplashScreen.__init__ (self, QPixmap pixmap = QPixmap(), Qt.WindowFlags flags = 0)

Construct a splash screen that will display the pixmap.

There should be no need to set the widget flags, f, except perhaps Qt.WindowStaysOnTopHint.

QSplashScreen.__init__ (self, QWidget parent, QPixmap pixmap = QPixmap(), Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

This is an overloaded function.

This function allows you to specify a parent for your splashscreen. The typical use for this constructor is if you have a multiple screens and prefer to have the splash screen on a different screen than your primary one. In that case pass the proper desktop() as the parent.

QSplashScreen.clearMessage (self)

This method is also a Qt slot with the C++ signature void clearMessage().

Removes the message being displayed on the splash screen

See also showMessage().

QSplashScreen.drawContents (self, QPainter painter)

Draw the contents of the splash screen using painter painter. The default implementation draws the message passed by showMessage(). Reimplement this function if you want to do your own drawing on the splash screen.

bool QSplashScreen.event (self, QEvent e)

Reimplemented from QObject.event().

QSplashScreen.finish (self, QWidget w)

Makes the splash screen wait until the widget mainWin is displayed before calling close() on itself.

QSplashScreen.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

QPixmap QSplashScreen.pixmap (self)

Returns the pixmap that is used in the splash screen. The image does not have any of the text drawn by showMessage() calls.

See also setPixmap().

QSplashScreen.repaint (self)

This overrides QWidget.repaint(). It differs from the standard repaint function in that it also calls QApplication.flush() to ensure the updates are displayed, even when there is no event loop present.

QSplashScreen.setPixmap (self, QPixmap pixmap)

Sets the pixmap that will be used as the splash screen's image to pixmap.

See also pixmap().

QSplashScreen.showMessage (self, QString message, int alignment = Qt.AlignLeft, QColor color = Qt.black)

This method is also a Qt slot with the C++ signature void showMessage(const QString&,int = Qt.AlignLeft,const QColor& = Qt.black).

Draws the message text onto the splash screen with color color and aligns the text according to the flags in alignment.

To make sure the splash screen is repainted immediately, you can call QCoreApplication's processEvents() after the call to showMessage(). You usually want this to make sure that the message is kept up to date with what your application is doing (e.g., loading files).

See also Qt.Alignment and clearMessage().


Qt Signal Documentation

void messageChanged (const QString&)

This is the default overload of this signal.

This signal is emitted when the message on the splash screen changes. message is the new message and is a null-string when the message has been removed.

See also showMessage() and clearMessage().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsplitter.html0000644000076500000240000006237512536324513020413 0ustar philstaff00000000000000 QSplitter Class Reference
  Home · All Classes · Modules

QSplitter Class Reference
[QtGui module]

The QSplitter class implements a splitter widget. More...

Inherits QFrame.

Methods

Special Methods

Qt Signals


Detailed Description

The QSplitter class implements a splitter widget.

A splitter lets the user control the size of child widgets by dragging the boundary between the children. Any number of widgets may be controlled by a single splitter. The typical use of a QSplitter is to create several widgets and add them using insertWidget() or addWidget().

The following example will show a QListView, QTreeView, and QTextEdit side by side, with two splitter handles:

     QSplitter *splitter = new QSplitter(parent);
     QListView *listview = new QListView;
     QTreeView *treeview = new QTreeView;
     QTextEdit *textedit = new QTextEdit;
     splitter->addWidget(listview);
     splitter->addWidget(treeview);
     splitter->addWidget(textedit);

If a widget is already inside a QSplitter when insertWidget() or addWidget() is called, it will move to the new position. This can be used to reorder widgets in the splitter later. You can use indexOf(), widget(), and count() to get access to the widgets inside the splitter.

A default QSplitter lays out its children horizontally (side by side); you can use setOrientation(Qt.Vertical) to lay its children out vertically.

By default, all widgets can be as large or as small as the user wishes, between the minimumSizeHint() (or minimumSize()) and maximumSize() of the widgets.

QSplitter resizes its children dynamically by default. If you would rather have QSplitter resize the children only at the end of a resize operation, call setOpaqueResize(false).

The initial distribution of size between the widgets is determined by multiplying the initial size with the stretch factor. You can also use setSizes() to set the sizes of all the widgets. The function sizes() returns the sizes set by the user. Alternatively, you can save and restore the sizes of the widgets from a QByteArray using saveState() and restoreState() respectively.

When you hide() a child its space will be distributed among the other children. It will be reinstated when you show() it again.


Method Documentation

QSplitter.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a horizontal splitter with the parent argument passed on to the QFrame constructor.

See also setOrientation().

QSplitter.__init__ (self, Qt.Orientation orientation, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a splitter with the given orientation and parent.

See also setOrientation().

QSplitter.addWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Adds the given widget to the splitter's layout after all the other items.

If widget is already in the splitter, it will be moved to the new position.

See also insertWidget(), widget(), and indexOf().

QSplitter.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QSplitter.childEvent (self, QChildEvent)

Reimplemented from QObject.childEvent().

Tells the splitter that the child widget described by c has been inserted or removed.

This method is also used to handle the situation where a widget is created with the splitter as a parent but not explicitly added with insertWidget() or addWidget(). This is for compatibility and not the recommended way of putting widgets into a splitter in new code. Please use insertWidget() or addWidget() in new code.

See also addWidget() and insertWidget().

bool QSplitter.childrenCollapsible (self)

int QSplitter.closestLegalPosition (self, int, int)

Returns the closest legal position to pos of the widget with index index.

For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. Positions are then measured from the right edge of the widget.

See also getRange().

int QSplitter.count (self)

Returns the number of widgets contained in the splitter's layout.

See also widget() and handle().

QSplitterHandle QSplitter.createHandle (self)

Returns a new splitter handle as a child widget of this splitter. This function can be reimplemented in subclasses to provide support for custom handles.

See also handle() and indexOf().

bool QSplitter.event (self, QEvent)

Reimplemented from QObject.event().

(int, int) QSplitter.getRange (self, int index)

Returns the valid range of the splitter with index index in *min and *max if min and max are not 0.

QSplitterHandle QSplitter.handle (self, int index)

Returns the handle to the left (or above) for the item in the splitter's layout at the given index. The handle at index 0 is always hidden.

For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. The handle will be to the right of the widget at index.

See also count(), widget(), indexOf(), createHandle(), and setHandleWidth().

int QSplitter.handleWidth (self)

int QSplitter.indexOf (self, QWidget w)

Returns the index in the splitter's layout of the specified widget. This also works for handles.

Handles are numbered from 0. There are as many handles as there are child widgets, but the handle at position 0 is always hidden.

See also count() and widget().

QSplitter.insertWidget (self, int index, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Inserts the widget specified into the splitter's layout at the given index.

If widget is already in the splitter, it will be moved to the new position.

if index is an invalid index, then the widget will be inserted at the end.

See also addWidget(), indexOf(), and widget().

bool QSplitter.isCollapsible (self, int index)

Returns true if the widget at index is collapsible, otherwise returns false

QSize QSplitter.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QSplitter.moveSplitter (self, int pos, int index)

Moves the left or top edge of the splitter handle at index as close as possible to position pos, which is the distance from the left or top edge of the widget.

For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. pos is then the distance from the right edge of the widget.

See also splitterMoved(), closestLegalPosition(), and getRange().

bool QSplitter.opaqueResize (self)

Qt.Orientation QSplitter.orientation (self)

QSplitter.refresh (self)

Updates the splitter's state. You should not need to call this function.

QSplitter.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

bool QSplitter.restoreState (self, QByteArray state)

Restores the splitter's layout to the state specified. Returns true if the state is restored; otherwise returns false.

Typically this is used in conjunction with QSettings to restore the size from a past session. Here is an example:

Restore the splitters's state:

     QSettings settings;
     splitter->restoreState(settings.value("splitterSizes").toByteArray());

A failure to restore the splitter's layout may result from either invalid or out-of-date data in the supplied byte array.

See also saveState().

QByteArray QSplitter.saveState (self)

Saves the state of the splitter's layout.

Typically this is used in conjunction with QSettings to remember the size for a future session. A version number is stored as part of the data. Here is an example:

     QSettings settings;
     settings.setValue("splitterSizes", splitter->saveState());

See also restoreState().

QSplitter.setChildrenCollapsible (self, bool)

QSplitter.setCollapsible (self, int index, bool)

Sets whether the child widget at index index is collapsible to collapse.

By default, children are collapsible, meaning that the user can resize them down to size 0, even if they have a non-zero minimumSize() or minimumSizeHint(). This behavior can be changed on a per-widget basis by calling this function, or globally for all the widgets in the splitter by setting the childrenCollapsible property.

See also isCollapsible() and childrenCollapsible.

QSplitter.setHandleWidth (self, int)

QSplitter.setOpaqueResize (self, bool opaque = True)

QSplitter.setOrientation (self, Qt.Orientation)

QSplitter.setRubberBand (self, int position)

Displays a rubber band at position pos. If pos is negative, the rubber band is removed.

QSplitter.setSizes (self, list-of-int list)

Sets the child widgets respective sizes to the values given in the list.

If the splitter is horizontal, the values set the widths of each widget in pixels, from left to right. If the splitter is vertical, the heights of each widget is set, from top to bottom.

Extra values in the list are ignored. If list contains too few values, the result is undefined but the program will still be well-behaved.

The overall size of the splitter widget is not affected. Instead, any additional/missing space is distributed amongst the widgets according to the relative weight of the sizes.

If you specify a size of 0, the widget will be invisible. The size policies of the widgets are preserved. That is, a value smaller then the minimal size hint of the respective widget will be replaced by the value of the hint.

See also sizes().

QSplitter.setStretchFactor (self, int index, int stretch)

Updates the size policy of the widget at position index to have a stretch factor of stretch.

stretch is not the effective stretch factor; the effective stretch factor is calculated by taking the initial size of the widget and multiplying it with stretch.

This function is provided for convenience. It is equivalent to

 QWidget *widget = splitter->widget(index);
 QSizePolicy policy = widget->sizePolicy();
 policy.setHorizontalStretch(stretch);
 policy.setVerticalStretch(stretch);
 widget->setSizePolicy(policy);

See also setSizes() and widget().

QSize QSplitter.sizeHint (self)

Reimplemented from QWidget.sizeHint().

list-of-int QSplitter.sizes (self)

Returns a list of the size parameters of all the widgets in this splitter.

If the splitter's orientation is horizontal, the list contains the widgets width in pixels, from left to right; if the orientation is vertical, the list contains the widgets height in pixels, from top to bottom.

Giving the values to another splitter's setSizes() function will produce a splitter with the same layout as this one.

Note that invisible widgets have a size of 0.

See also setSizes().

QWidget QSplitter.widget (self, int index)

Returns the widget at the given index in the splitter's layout.

See also count(), handle(), indexOf(), and insertWidget().

QSplitter.__len__ (self)


Qt Signal Documentation

void splitterMoved (int,int)

This is the default overload of this signal.

This signal is emitted when the splitter handle at a particular index has been moved to position pos.

For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. pos is then the distance from the right edge of the widget.

See also moveSplitter().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsplitterhandle.html0000644000076500000240000003123612536324513021557 0ustar philstaff00000000000000 QSplitterHandle Class Reference
  Home · All Classes · Modules

QSplitterHandle Class Reference
[QtGui module]

The QSplitterHandle class provides handle functionality of the splitter. More...

Inherits QWidget.

Methods


Detailed Description

The QSplitterHandle class provides handle functionality of the splitter.

QSplitterHandle is typically what people think about when they think about a splitter. It is the handle that is used to resize the widgets.

A typical developer using QSplitter will never have to worry about QSplitterHandle. It is provided for developers who want splitter handles that provide extra features, such as popup menus.

The typical way one would create splitter handles is to subclass QSplitter then reimplement QSplitter.createHandle() to instantiate the custom splitter handle. For example, a minimum QSplitter subclass might look like this:

 class Splitter : public QSplitter
 {
 public:
     Splitter(Qt.Orientation orientation, QWidget *parent = 0);

 protected:
     QSplitterHandle *createHandle();
 };

The createHandle() implementation simply constructs a custom splitter handle, called Splitter in this example:

 QSplitterHandle *Splitter.createHandle()
 {
     return new SplitterHandle(orientation(), this);
 }

Information about a given handle can be obtained using functions like orientation() and opaqueResize(), and is retrieved from its parent splitter. Details like these can be used to give custom handles different appearances depending on the splitter's orientation.

The complexity of a custom handle subclass depends on the tasks that it needs to perform. A simple subclass might only provide a paintEvent() implementation:

 void SplitterHandle.paintEvent(QPaintEvent *event)
 {
     QPainter painter(this);
     if (orientation() == Qt.Horizontal) {
         gradient.setStart(rect().left(), rect().height()/2);
         gradient.setFinalStop(rect().right(), rect().height()/2);
     } else {
         gradient.setStart(rect().width()/2, rect().top());
         gradient.setFinalStop(rect().width()/2, rect().bottom());
     }
     painter.fillRect(event->rect(), QBrush(gradient));
 }

In this example, a predefined gradient is set up differently depending on the orientation of the handle. QSplitterHandle provides a reasonable size hint for the handle, so the subclass does not need to provide a reimplementation of sizeHint() unless the handle has special size requirements.


Method Documentation

QSplitterHandle.__init__ (self, Qt.Orientation o, QSplitter parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a QSplitter handle with the given orientation and QSplitter parent.

int QSplitterHandle.closestLegalPosition (self, int p)

Returns the closest legal position to pos of the splitter handle. The positions are measured from the left or top edge of the splitter, even for right-to-left languages.

See also QSplitter.closestLegalPosition() and moveSplitter().

bool QSplitterHandle.event (self, QEvent)

Reimplemented from QObject.event().

QSplitterHandle.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QSplitterHandle.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

QSplitterHandle.mouseReleaseEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QSplitterHandle.moveSplitter (self, int p)

Tells the splitter to move this handle to position pos, which is the distance from the left or top edge of the widget.

Note that pos is also measured from the left (or top) for right-to-left languages. This function will map pos to the appropriate position before calling QSplitter.moveSplitter().

See also QSplitter.moveSplitter() and closestLegalPosition().

bool QSplitterHandle.opaqueResize (self)

Returns true if widgets are resized dynamically (opaquely), otherwise returns false. This value is controlled by the QSplitter.

See also QSplitter.opaqueResize().

Qt.Orientation QSplitterHandle.orientation (self)

Returns the handle's orientation. This is usually propagated from the QSplitter.

See also setOrientation() and QSplitter.orientation().

QSplitterHandle.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QSplitterHandle.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QSplitterHandle.setOrientation (self, Qt.Orientation o)

Sets the orientation of the splitter handle to orientation. This is usually propagated from the QSplitter.

See also orientation() and QSplitter.setOrientation().

QSize QSplitterHandle.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QSplitter QSplitterHandle.splitter (self)

Returns the splitter associated with this splitter handle.

See also QSplitter.handle().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsql-paramtype.html0000644000076500000240000001332712536324521021334 0ustar philstaff00000000000000 QSql.ParamType Class Reference
  Home · All Classes · Modules

QSql.ParamType Class Reference
[QtSql module]

Methods

Special Methods


Detailed Description

ParamTypeFlag may be used whenever ParamType is expected.


Method Documentation

ParamType.__init__ (self, ParamType)

ParamType.__init__ (self, int)

ParamType.__init__ (self)

ParamType ParamType.__and__ (self, int mask)

int ParamType.__bool__ (self)

bool ParamType.__eq__ (self, ParamType f)

ParamType ParamType.__iand__ (self, int mask)

int ParamType.__int__ (self)

ParamType ParamType.__invert__ (self)

ParamType ParamType.__ior__ (self, ParamType f)

ParamType ParamType.__ixor__ (self, ParamType f)

bool ParamType.__ne__ (self, ParamType f)

ParamType ParamType.__or__ (self, ParamType f)

ParamType ParamType.__or__ (self, int f)

ParamType ParamType.__xor__ (self, ParamType f)

ParamType ParamType.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsql.html0000644000076500000240000001531412536324521017332 0ustar philstaff00000000000000 QSql Class Reference
  Home · All Classes · Modules

QSql Class Reference
[QtSql module]

The QSql namespace contains miscellaneous identifiers used throughout the Qt SQL library. More...

Types


Detailed Description

The QSql namespace contains miscellaneous identifiers used throughout the Qt SQL library.


Type Documentation

QSql.Location

This enum type describes special SQL navigation locations:

Constant Value Description
QSql.BeforeFirstRow -1 Before the first record.
QSql.AfterLastRow -2 After the last record.

See also QSqlQuery.at().

QSql.NumericalPrecisionPolicy

Numerical values in a database can have precisions greater than their corresponding C++ types. This enum lists the policies for representing such values in the application.

Constant Value Description
QSql.LowPrecisionInt32 0x01 Force 32bit integer values. In case of floating point numbers, the fractional part is silently discarded.
QSql.LowPrecisionInt64 0x02 Force 64bit integer values. In case of floating point numbers, the fractional part is silently discarded.
QSql.LowPrecisionDouble 0x04 Force double values. This is the default policy.
QSql.HighPrecision 0 Strings will be used to preserve precision.

Note: The actual behaviour if an overflow occurs is driver specific. The Oracle database just returns an error in this case.

QSql.ParamTypeFlag

This enum is used to specify the type of a bind parameter.

Constant Value Description
QSql.In 0x00000001 The bind parameter is used to put data into the database.
QSql.Out 0x00000002 The bind parameter is used to receive data from the database.
QSql.InOut In | Out The bind parameter is used to put data into the database; it will be overwritten with output data on executing a query.
QSql.Binary 0x00000004 This must be OR'd with one of the other flags if you want to indicate that the data being transferred is raw binary data.

The ParamType type is a typedef for QFlags<ParamTypeFlag>. It stores an OR combination of ParamTypeFlag values.

QSql.TableType

This enum type describes types of SQL tables.

Constant Value Description
QSql.Tables 0x01 All the tables visible to the user.
QSql.SystemTables 0x02 Internal tables used by the database.
QSql.Views 0x04 All the views visible to the user.
QSql.AllTables 0xff All of the above.

PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqldatabase.html0000644000076500000240000015254512536324521021027 0ustar philstaff00000000000000 QSqlDatabase Class Reference
  Home · All Classes · Modules

QSqlDatabase Class Reference
[
QtSql module]

The QSqlDatabase class represents a connection to a database. More...

Methods

Static Methods

  • QSqlDatabase addDatabase (QString type, QString connectionName = QLatin1String(QSqlDatabase.defaultConnection))
  • QSqlDatabase addDatabase (QSqlDriver driver, QString connectionName = QLatin1String(QSqlDatabase.defaultConnection))
  • QSqlDatabase cloneDatabase (QSqlDatabase other, QString connectionName)
  • QStringList connectionNames ()
  • bool contains (QString connectionName = QLatin1String(QSqlDatabase.defaultConnection))
  • QSqlDatabase database (QString connectionName = QLatin1String(QSqlDatabase.defaultConnection), bool open = True)
  • QStringList drivers ()
  • bool isDriverAvailable (QString name)
  • registerSqlDriver (QString name, QSqlDriverCreatorBase creator)
  • removeDatabase (QString connectionName)

Detailed Description

The QSqlDatabase class represents a connection to a database.

The QSqlDatabase class provides an interface for accessing a database through a connection. An instance of QSqlDatabase represents the connection. The connection provides access to the database via one of the supported database drivers, which are derived from QSqlDriver. Alternatively, you can subclass your own database driver from QSqlDriver. See How to Write Your Own Database Driver for more information.

Create a connection (i.e., an instance of QSqlDatabase) by calling one of the static addDatabase() functions, where you specify the driver or type of driver to use (i.e., what kind of database will you access?) and a connection name. A connection is known by its own name, not by the name of the database it connects to. You can have multiple connections to one database. QSqlDatabase also supports the concept of a default connection, which is the unnamed connection. To create the default connection, don't pass the connection name argument when you call addDatabase(). Subsequently, when you call any static member function that takes the connection name argument, if you don't pass the connection name argument, the default connection is assumed. The following snippet shows how to create and open a default connection to a PostgreSQL database:

     QSqlDatabase db = QSqlDatabase.addDatabase("QPSQL");
     db.setHostName("acidalia");
     db.setDatabaseName("customdb");
     db.setUserName("mojito");
     db.setPassword("J0a1m8");
     bool ok = db.open();

Once the QSqlDatabase object has been created, set the connection parameters with setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), and setConnectOptions(). Then call open() to activate the physical connection to the database. The connection is not usable until you open it.

The connection defined above will be the default connection, because we didn't give a connection name to addDatabase(). Subsequently, you can get the default connection by calling database() without the connection name argument:

     QSqlDatabase db = QSqlDatabase.database();

QSqlDatabase is a value class. Changes made to a database connection via one instance of QSqlDatabase will affect other instances of QSqlDatabase that represent the same connection. Use cloneDatabase() to create an independent database connection based on an existing one.

If you create multiple database connections, specify a unique connection name for each one, when you call addDatabase(). Use database() with a connection name to get that connection. Use removeDatabase() with a connection name to remove a connection. QSqlDatabase outputs a warning if you try to remove a connection referenced by other QSqlDatabase objects. Use contains() to see if a given connection name is in the list of connections.

Once a connection is established, you can call tables() to get the list of tables in the database, call primaryIndex() to get a table's primary index, and call record() to get meta-information about a table's fields (e.g., field names).

Note: QSqlDatabase.exec() is deprecated. Use QSqlQuery.exec() instead.

If the driver supports transactions, use transaction() to start a transaction, and commit() or rollback() to complete it. Use hasFeature() to ask if the driver supports transactions. Note: When using transactions, you must start the transaction before you create your query.

If an error occurrs, lastError() will return information about it.

Get the names of the available SQL drivers with drivers(). Check for the presence of a particular driver with isDriverAvailable(). If you have created your own custom driver, you must register it with registerSqlDriver().


Method Documentation

QSqlDatabase.__init__ (self)

Creates an empty, invalid QSqlDatabase object. Use addDatabase(), removeDatabase(), and database() to get valid QSqlDatabase objects.

QSqlDatabase.__init__ (self, QSqlDatabase other)

Creates a copy of other.

QSqlDatabase.__init__ (self, QString type)

This is an overloaded function.

Creates a QSqlDatabase connection that uses the driver referred to by type. If the type is not recognized, the database connection will have no functionality.

The currently available driver types are:

Driver Type Description
QDB2 IBM DB2
QIBASE Borland InterBase Driver
QMYSQL MySQL Driver
QOCI Oracle Call Interface Driver
QODBC ODBC Driver (includes Microsoft SQL Server)
QPSQL PostgreSQL Driver
QSQLITE SQLite version 3 or above
QSQLITE2 SQLite version 2
QTDS Sybase Adaptive Server

Additional third party drivers, including your own custom drivers, can be loaded dynamically.

See also SQL Database Drivers, registerSqlDriver(), and drivers().

QSqlDatabase.__init__ (self, QSqlDriver driver)

This is an overloaded function.

Creates a database connection using the given driver.

QSqlDatabase QSqlDatabase.addDatabase (QString type, QString connectionName = QLatin1String(QSqlDatabase.defaultConnection))

Adds a database to the list of database connections using the driver type and the connection name connectionName. If there already exists a database connection called connectionName, that connection is removed.

The database connection is referred to by connectionName. The newly added database connection is returned.

If type is not available or could not be loaded, isValid() returns false.

If connectionName is not specified, the new connection becomes the default connection for the application, and subsequent calls to database() without the connection name argument will return the default connection. If a connectionName is provided here, use database(connectionName) to retrieve the connection.

Warning: If you add a connection with the same name as an existing connection, the new connection replaces the old one. If you call this function more than once without specifying connectionName, the default connection will be the one replaced.

Before using the connection, it must be initialized. e.g., call some or all of setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), and setConnectOptions(), and, finally, open().

Note: This function is thread-safe.

See also database(), removeDatabase(), and Threads and the SQL Module.

QSqlDatabase QSqlDatabase.addDatabase (QSqlDriver driver, QString connectionName = QLatin1String(QSqlDatabase.defaultConnection))

This overload is useful when you want to create a database connection with a driver you instantiated yourself. It might be your own database driver, or you might just need to instantiate one of the Qt drivers yourself. If you do this, it is recommended that you include the driver code in your application. For example, you can create a PostgreSQL connection with your own QPSQL driver like this:

 #include "qtdir/src/sql/drivers/psql/qsql_psql.cpp"

 PGconn *con = PQconnectdb("host=server user=bart password=simpson dbname=springfield");
 QPSQLDriver *drv =  new QPSQLDriver(con);
 QSqlDatabase db = QSqlDatabase.addDatabase(drv); // becomes the new default connection
 QSqlQuery query;
 query.exec_("SELECT NAME, ID FROM STAFF");
 ...

The above code sets up a PostgreSQL connection and instantiates a QPSQLDriver object. Next, addDatabase() is called to add the connection to the known connections so that it can be used by the Qt SQL classes. When a driver is instantiated with a connection handle (or set of handles), Qt assumes that you have already opened the database connection.

Note: We assume that qtdir is the directory where Qt is installed. This will pull in the code that is needed to use the PostgreSQL client library and to instantiate a QPSQLDriver object, assuming that you have the PostgreSQL headers somewhere in your include search path.

Remember that you must link your application against the database client library. Make sure the client library is in your linker's search path, and add lines like these to your .pro file:

 unix:LIBS += -lpq
 win32:LIBS += libpqdll.lib

The method described works for all the supplied drivers. The only difference will be in the driver constructor arguments. Here is a table of the drivers included with Qt, their source code files, and their constructor arguments:

Driver Class name Constructor arguments File to include
QPSQL QPSQLDriver PGconn *connection qsql_psql.cpp
QMYSQL QMYSQLDriver MYSQL *connection qsql_mysql.cpp
QOCI QOCIDriver OCIEnv *environment, OCISvcCtx *serviceContext qsql_oci.cpp
QODBC QODBCDriver SQLHANDLE environment, SQLHANDLE connection qsql_odbc.cpp
QDB2 QDB2 SQLHANDLE environment, SQLHANDLE connection qsql_db2.cpp
QTDS QTDSDriver LOGINREC *loginRecord, DBPROCESS *dbProcess, const QString &hostName qsql_tds.cpp
QSQLITE QSQLiteDriver sqlite *connection qsql_sqlite.cpp
QIBASE QIBaseDriver isc_db_handle connection qsql_ibase.cpp

The host name (or service name) is needed when constructing the QTDSDriver for creating new connections for internal queries. This is to prevent blocking when several QSqlQuery objects are used simultaneously.

Warning: Adding a database connection with the same connection name as an existing connection, causes the existing connection to be replaced by the new one.

Warning: The SQL framework takes ownership of the driver. It must not be deleted. To remove the connection, use removeDatabase().

See also drivers().

QSqlDatabase QSqlDatabase.cloneDatabase (QSqlDatabase other, QString connectionName)

Clones the database connection other and and stores it as connectionName. All the settings from the original database, e.g. databaseName(), hostName(), etc., are copied across. Does nothing if other is an invalid database. Returns the newly created database connection.

Note: The new connection has not been opened. Before using the new connection, you must call open().

QSqlDatabase.close (self)

Closes the database connection, freeing any resources acquired, and invalidating any existing QSqlQuery objects that are used with the database.

This will also affect copies of this QSqlDatabase object.

See also removeDatabase().

bool QSqlDatabase.commit (self)

Commits a transaction to the database if the driver supports transactions and a transaction() has been started. Returns true if the operation succeeded. Otherwise it returns false.

Note: For some databases, the commit will fail and return false if there is an active query using the database for a SELECT. Make the query inactive before doing the commit.

Call lastError() to get information about errors.

See also QSqlQuery.isActive(), QSqlDriver.hasFeature(), and rollback().

QString QSqlDatabase.connectionName (self)

Returns the connection name, which may be empty. Note: The connection name is not the database name.

This function was introduced in Qt 4.4.

See also addDatabase().

QStringList QSqlDatabase.connectionNames ()

Returns a list containing the names of all connections.

Note: This function is thread-safe.

See also contains(), database(), and Threads and the SQL Module.

QString QSqlDatabase.connectOptions (self)

Returns the connection options string used for this connection. The string may be empty.

See also setConnectOptions().

bool QSqlDatabase.contains (QString connectionName = QLatin1String(QSqlDatabase.defaultConnection))

Returns true if the list of database connections contains connectionName; otherwise returns false.

Note: This function is thread-safe.

See also connectionNames(), database(), and Threads and the SQL Module.

QSqlDatabase QSqlDatabase.database (QString connectionName = QLatin1String(QSqlDatabase.defaultConnection), bool open = True)

Returns the database connection called connectionName. The database connection must have been previously added with addDatabase(). If open is true (the default) and the database connection is not already open it is opened now. If no connectionName is specified the default connection is used. If connectionName does not exist in the list of databases, an invalid connection is returned.

Note: This function is thread-safe.

See also isOpen() and Threads and the SQL Module.

QString QSqlDatabase.databaseName (self)

Returns the connection's database name, which may be empty. Note: The database name is not the connection name.

See also setDatabaseName().

QSqlDriver QSqlDatabase.driver (self)

Returns the database driver used to access the database connection.

See also addDatabase() and drivers().

QString QSqlDatabase.driverName (self)

Returns the connection's driver name.

See also addDatabase() and driver().

QStringList QSqlDatabase.drivers ()

Returns a list of all the available database drivers.

See also registerSqlDriver().

QSqlQuery QSqlDatabase.exec_ (self, QString query = QString())

Executes a SQL statement on the database and returns a QSqlQuery object. Use lastError() to retrieve error information. If query is empty, an empty, invalid query is returned and lastError() is not affected.

See also QSqlQuery and lastError().

QString QSqlDatabase.hostName (self)

Returns the connection's host name; it may be empty.

See also setHostName().

bool QSqlDatabase.isDriverAvailable (QString name)

Returns true if a driver called name is available; otherwise returns false.

See also drivers().

bool QSqlDatabase.isOpen (self)

Returns true if the database connection is currently open; otherwise returns false.

bool QSqlDatabase.isOpenError (self)

Returns true if there was an error opening the database connection; otherwise returns false. Error information can be retrieved using the lastError() function.

bool QSqlDatabase.isValid (self)

Returns true if the QSqlDatabase has a valid driver.

Example:

 QSqlDatabase db;
 qDebug() << db.isValid();    // Returns false

 db = QSqlDatabase.database("sales");
 qDebug() << db.isValid();    // Returns true if "sales" connection exists

 QSqlDatabase.removeDatabase("sales");
 qDebug() << db.isValid();    // Returns false

QSqlError QSqlDatabase.lastError (self)

Returns information about the last error that occurred on the database.

Failures that occur in conjunction with an individual query are reported by QSqlQuery.lastError().

See also QSqlError and QSqlQuery.lastError().

QSql.NumericalPrecisionPolicy QSqlDatabase.numericalPrecisionPolicy (self)

Returns the current default precision policy for the database connection.

This function was introduced in Qt 4.6.

See also QSql.NumericalPrecisionPolicy, setNumericalPrecisionPolicy(), QSqlQuery.numericalPrecisionPolicy(), and QSqlQuery.setNumericalPrecisionPolicy().

bool QSqlDatabase.open (self)

Opens the database connection using the current connection values. Returns true on success; otherwise returns false. Error information can be retrieved using lastError().

See also lastError(), setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), and setConnectOptions().

bool QSqlDatabase.open (self, QString user, QString password)

This is an overloaded function.

Opens the database connection using the given user name and password. Returns true on success; otherwise returns false. Error information can be retrieved using the lastError() function.

This function does not store the password it is given. Instead, the password is passed directly to the driver for opening the connection and it is then discarded.

See also lastError().

QString QSqlDatabase.password (self)

Returns the connection's password. If the password was not set with setPassword(), and if the password was given in the open() call, or if no password was used, an empty string is returned.

See also setPassword().

int QSqlDatabase.port (self)

Returns the connection's port number. The value is undefined if the port number has not been set.

See also setPort().

QSqlIndex QSqlDatabase.primaryIndex (self, QString tablename)

Returns the primary index for table tablename. If no primary index exists an empty QSqlIndex is returned.

See also tables() and record().

QSqlRecord QSqlDatabase.record (self, QString tablename)

Returns a QSqlRecord populated with the names of all the fields in the table (or view) called tablename. The order in which the fields appear in the record is undefined. If no such table (or view) exists, an empty record is returned.

QSqlDatabase.registerSqlDriver (QString name, QSqlDriverCreatorBase creator)

The creator argument has it's ownership transferred to Qt.

This function registers a new SQL driver called name, within the SQL framework. This is useful if you have a custom SQL driver and don't want to compile it as a plugin.

Example:

 QSqlDatabase.registerSqlDriver("MYDRIVER",
                                 new QSqlDriverCreator<MyDatabaseDriver>);
 QSqlDatabase db = QSqlDatabase.addDatabase("MYDRIVER");

QSqlDatabase takes ownership of the creator pointer, so you mustn't delete it yourself.

See also drivers().

QSqlDatabase.removeDatabase (QString connectionName)

Removes the database connection connectionName from the list of database connections.

Warning: There should be no open queries on the database connection when this function is called, otherwise a resource leak will occur.

Example:

 // WRONG
 QSqlDatabase db = QSqlDatabase.database("sales");
 QSqlQuery query("SELECT NAME, DOB FROM EMPLOYEES", db);
 QSqlDatabase.removeDatabase("sales"); // will output a warning

 // "db" is now a dangling invalid database connection,
 // "query" contains an invalid result set

The correct way to do it:

 {
     QSqlDatabase db = QSqlDatabase.database("sales");
     QSqlQuery query("SELECT NAME, DOB FROM EMPLOYEES", db);
 }
 // Both "db" and "query" are destroyed because they are out of scope
 QSqlDatabase.removeDatabase("sales"); // correct

To remove the default connection, which may have been created with a call to addDatabase() not specifying a connection name, you can retrieve the default connection name by calling connectionName() on the database returned by database(). Note that if a default database hasn't been created an invalid database will be returned.

Note: This function is thread-safe.

See also database(), connectionName(), and Threads and the SQL Module.

bool QSqlDatabase.rollback (self)

Rolls back a transaction on the database, if the driver supports transactions and a transaction() has been started. Returns true if the operation succeeded. Otherwise it returns false.

Note: For some databases, the rollback will fail and return false if there is an active query using the database for a SELECT. Make the query inactive before doing the rollback.

Call lastError() to get information about errors.

See also QSqlQuery.isActive(), QSqlDriver.hasFeature(), and commit().

QSqlDatabase.setConnectOptions (self, QString options = QString())

Sets database-specific options. This must be done before the connection is opened or it has no effect (or you can close() the connection, call this function and open() the connection again).

The format of the options string is a semicolon separated list of option names or option=value pairs. The options depend on the database client used:

ODBC MySQL PostgreSQL
  • SQL_ATTR_ACCESS_MODE
  • SQL_ATTR_LOGIN_TIMEOUT
  • SQL_ATTR_CONNECTION_TIMEOUT
  • SQL_ATTR_CURRENT_CATALOG
  • SQL_ATTR_METADATA_ID
  • SQL_ATTR_PACKET_SIZE
  • SQL_ATTR_TRACEFILE
  • SQL_ATTR_TRACE
  • SQL_ATTR_CONNECTION_POOLING
  • SQL_ATTR_ODBC_VERSION
  • CLIENT_COMPRESS
  • CLIENT_FOUND_ROWS
  • CLIENT_IGNORE_SPACE
  • CLIENT_SSL
  • CLIENT_ODBC
  • CLIENT_NO_SCHEMA
  • CLIENT_INTERACTIVE
  • UNIX_SOCKET
  • MYSQL_OPT_RECONNECT
  • connect_timeout
  • options
  • tty
  • requiressl
  • service
DB2 OCI TDS
  • SQL_ATTR_ACCESS_MODE
  • SQL_ATTR_LOGIN_TIMEOUT
  • OCI_ATTR_PREFETCH_ROWS
  • OCI_ATTR_PREFETCH_MEMORY
none
SQLite Interbase
  • QSQLITE_BUSY_TIMEOUT
  • QSQLITE_OPEN_READONLY
  • QSQLITE_ENABLE_SHARED_CACHE
  • ISC_DPB_LC_CTYPE
  • ISC_DPB_SQL_ROLE_NAME

Examples:

 ...
 // MySQL connection
 db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1"); // use an SSL connection to the server
 if (!db.open()) {
     db.setConnectOptions(); // clears the connect option string
     ...
 }
 ...
 // PostgreSQL connection
 db.setConnectOptions("requiressl=1"); // enable PostgreSQL SSL connections
 if (!db.open()) {
     db.setConnectOptions(); // clear options
     ...
 }
 ...
 // ODBC connection
 db.setConnectOptions("SQL_ATTR_ACCESS_MODE=SQL_MODE_READ_ONLY;SQL_ATTR_TRACE=SQL_OPT_TRACE_ON"); // set ODBC options
 if (!db.open()) {
     db.setConnectOptions(); // don't try to set this option
     ...
 }

Refer to the client library documentation for more information about the different options.

See also connectOptions().

QSqlDatabase.setDatabaseName (self, QString name)

Sets the connection's database name to name. To have effect, the database name must be set before the connection is opened. Alternatively, you can close() the connection, set the database name, and call open() again. Note: The database name is not the connection name. The connection name must be passed to addDatabase() at connection object create time.

For the QOCI (Oracle) driver, the database name is the TNS Service Name.

For the QODBC driver, the name can either be a DSN, a DSN filename (in which case the file must have a .dsn extension), or a connection string.

For example, Microsoft Access users can use the following connection string to open an .mdb file directly, instead of having to create a DSN entry in the ODBC manager:

 ...
 db = QSqlDatabase.addDatabase("QODBC");
 db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=myaccessfile.mdb");
 if (db.open()) {
     // success!
 }
 ...

There is no default value.

See also databaseName(), setUserName(), setPassword(), setHostName(), setPort(), setConnectOptions(), and open().

QSqlDatabase.setHostName (self, QString host)

Sets the connection's host name to host. To have effect, the host name must be set before the connection is opened. Alternatively, you can close() the connection, set the host name, and call open() again.

There is no default value.

See also hostName(), setUserName(), setPassword(), setDatabaseName(), setPort(), setConnectOptions(), and open().

QSqlDatabase.setNumericalPrecisionPolicy (self, QSql.NumericalPrecisionPolicy precisionPolicy)

Sets the default numerical precision policy used by queries created on this database connection to precisionPolicy.

Note: Drivers that don't support fetching numerical values with low precision will ignore the precision policy. You can use QSqlDriver.hasFeature() to find out whether a driver supports this feature.

Note: Setting the default precision policy to precisionPolicy doesn't affect any currently active queries.

This function was introduced in Qt 4.6.

See also QSql.NumericalPrecisionPolicy, numericalPrecisionPolicy(), QSqlQuery.setNumericalPrecisionPolicy(), and QSqlQuery.numericalPrecisionPolicy().

QSqlDatabase.setPassword (self, QString password)

Sets the connection's password to password. To have effect, the password must be set before the connection is opened. Alternatively, you can close() the connection, set the password, and call open() again.

There is no default value.

Warning: This function stores the password in plain text within Qt. Use the open() call that takes a password as parameter to avoid this behavior.

See also password(), setUserName(), setDatabaseName(), setHostName(), setPort(), setConnectOptions(), and open().

QSqlDatabase.setPort (self, int p)

Sets the connection's port number to port. To have effect, the port number must be set before the connection is opened. Alternatively, you can close() the connection, set the port number, and call open() again..

There is no default value.

See also port(), setUserName(), setPassword(), setHostName(), setDatabaseName(), setConnectOptions(), and open().

QSqlDatabase.setUserName (self, QString name)

Sets the connection's user name to name. To have effect, the user name must be set before the connection is opened. Alternatively, you can close() the connection, set the user name, and call open() again.

There is no default value.

See also userName(), setDatabaseName(), setPassword(), setHostName(), setPort(), setConnectOptions(), and open().

QStringList QSqlDatabase.tables (self, QSql.TableType type = QSql.Tables)

Returns a list of the database's tables, system tables and views, as specified by the parameter type.

See also primaryIndex() and record().

bool QSqlDatabase.transaction (self)

Begins a transaction on the database if the driver supports transactions. Returns true if the operation succeeded. Otherwise it returns false.

See also QSqlDriver.hasFeature(), commit(), and rollback().

QString QSqlDatabase.userName (self)

Returns the connection's user name; it may be empty.

See also setUserName().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqldriver.html0000644000076500000240000012352012536324521020545 0ustar philstaff00000000000000 QSqlDriver Class Reference
  Home · All Classes · Modules

QSqlDriver Class Reference
[QtSql module]

The QSqlDriver class is an abstract base class for accessing specific SQL databases. More...

Inherits QObject.

Types

  • enum DriverFeature { Transactions, QuerySize, BLOB, Unicode, ..., MultipleResultSets }
  • enum IdentifierType { FieldName, TableName }
  • enum StatementType { WhereStatement, SelectStatement, UpdateStatement, InsertStatement, DeleteStatement }

Methods

Qt Signals


Detailed Description

The QSqlDriver class is an abstract base class for accessing specific SQL databases.

This class should not be used directly. Use QSqlDatabase instead.

If you want to create your own SQL drivers, you can subclass this class and reimplement its pure virtual functions and those virtual functions that you need. See How to Write Your Own Database Driver for more information.


Type Documentation

QSqlDriver.DriverFeature

This enum contains a list of features a driver might support. Use hasFeature() to query whether a feature is supported or not.

Constant Value Description
QSqlDriver.Transactions 0 Whether the driver supports SQL transactions.
QSqlDriver.QuerySize 1 Whether the database is capable of reporting the size of a query. Note that some databases do not support returning the size (i.e. number of rows returned) of a query, in which case QSqlQuery.size() will return -1.
QSqlDriver.BLOB 2 Whether the driver supports Binary Large Object fields.
QSqlDriver.Unicode 3 Whether the driver supports Unicode strings if the database server does.
QSqlDriver.PreparedQueries 4 Whether the driver supports prepared query execution.
QSqlDriver.NamedPlaceholders 5 Whether the driver supports the use of named placeholders.
QSqlDriver.PositionalPlaceholders 6 Whether the driver supports the use of positional placeholders.
QSqlDriver.LastInsertId 7 Whether the driver supports returning the Id of the last touched row.
QSqlDriver.BatchOperations 8 Whether the driver supports batched operations, see QSqlQuery.execBatch()
QSqlDriver.SimpleLocking 9 Whether the driver disallows a write lock on a table while other queries have a read lock on it.
QSqlDriver.LowPrecisionNumbers 10 Whether the driver allows fetching numerical values with low precision.
QSqlDriver.EventNotifications 11 Whether the driver supports database event notifications.
QSqlDriver.FinishQuery 12 Whether the driver can do any low-level resource cleanup when QSqlQuery.finish() is called.
QSqlDriver.MultipleResultSets 13 Whether the driver can access multiple result sets returned from batched statements or stored procedures.

More information about supported features can be found in the Qt SQL driver documentation.

See also hasFeature().

QSqlDriver.IdentifierType

This enum contains a list of SQL identifier types.

Constant Value Description
QSqlDriver.FieldName 0 A SQL field name
QSqlDriver.TableName 1 A SQL table name

QSqlDriver.StatementType

This enum contains a list of SQL statement (or clause) types the driver can create.

Constant Value Description
QSqlDriver.WhereStatement 0 An SQL WHERE statement (e.g., WHERE f = 5).
QSqlDriver.SelectStatement 1 An SQL SELECT statement (e.g., SELECT f FROM t).
QSqlDriver.UpdateStatement 2 An SQL UPDATE statement (e.g., UPDATE TABLE t set f = 1).
QSqlDriver.InsertStatement 3 An SQL INSERT statement (e.g., INSERT INTO t (f) values (1)).
QSqlDriver.DeleteStatement 4 An SQL DELETE statement (e.g., DELETE FROM t).

See also sqlStatement().


Method Documentation

QSqlDriver.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new driver with the given parent.

bool QSqlDriver.beginTransaction (self)

This function is called to begin a transaction. If successful, return true, otherwise return false. The default implementation does nothing and returns false.

See also commitTransaction() and rollbackTransaction().

QSqlDriver.close (self)

This method is abstract and should be reimplemented in any sub-class.

Derived classes must reimplement this pure virtual function in order to close the database connection. Return true on success, false on failure.

See also open() and setOpen().

bool QSqlDriver.commitTransaction (self)

This function is called to commit a transaction. If successful, return true, otherwise return false. The default implementation does nothing and returns false.

See also beginTransaction() and rollbackTransaction().

QSqlResult QSqlDriver.createResult (self)

This method is abstract and should be reimplemented in any sub-class.

Creates an empty SQL result on the database. Derived classes must reimplement this function and return a QSqlResult object appropriate for their database to the caller.

QString QSqlDriver.escapeIdentifier (self, QString identifier, IdentifierType type)

Returns the identifier escaped according to the database rules. identifier can either be a table name or field name, dependent on type.

The default implementation does nothing.

See also isIdentifierEscaped().

QString QSqlDriver.formatValue (self, QSqlField field, bool trimStrings = False)

Returns a string representation of the field value for the database. This is used, for example, when constructing INSERT and UPDATE statements.

The default implementation returns the value formatted as a string according to the following rules:

  • If field is character data, the value is returned enclosed in single quotation marks, which is appropriate for many SQL databases. Any embedded single-quote characters are escaped (replaced with two single-quote characters). If trimStrings is true (the default is false), all trailing whitespace is trimmed from the field.
  • If field is date/time data, the value is formatted in ISO format and enclosed in single quotation marks. If the date/time data is invalid, "NULL" is returned.
  • If field is bytearray data, and the driver can edit binary fields, the value is formatted as a hexadecimal string.
  • For any other field type, toString() is called on its value and the result of this is returned.

See also QVariant.toString().

QVariant QSqlDriver.handle (self)

Returns the low-level database handle wrapped in a QVariant or an invalid variant if there is no handle.

Warning: Use this with uttermost care and only if you know what you're doing.

Warning: The handle returned here can become a stale pointer if the connection is modified (for example, if you close the connection).

Warning: The handle can be NULL if the connection is not open yet.

The handle returned here is database-dependent, you should query the type name of the variant before accessing it.

This example retrieves the handle for a connection to sqlite:

 QSqlDatabase db = ...;
 QVariant v = db.driver()->handle();
 if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*") == 0) {
     // v.data() returns a pointer to the handle
     sqlite3 *handle = *static_cast<sqlite3 **>(v.data());
     if (handle != 0) { // check that it is not NULL
         ...
     }
 }

This snippet returns the handle for PostgreSQL or MySQL:

 if (qstrcmp(v.typeName(), "PGconn*") == 0) {
     PGconn *handle = *static_cast<PGconn **>(v.data());
     if (handle != 0) ...
 }

 if (qstrcmp(v.typeName(), "MYSQL*") == 0) {
     MYSQL *handle = *static_cast<MYSQL **>(v.data());
     if (handle != 0) ...
 }

See also QSqlResult.handle().

bool QSqlDriver.hasFeature (self, DriverFeature f)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the driver supports feature feature; otherwise returns false.

Note that some databases need to be open() before this can be determined.

See also DriverFeature.

bool QSqlDriver.isIdentifierEscaped (self, QString identifier, IdentifierType type)

Returns whether identifier is escaped according to the database rules. identifier can either be a table name or field name, dependent on type.

Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide your own implementation in your QSqlDriver subclass, reimplement the isIdentifierEscapedImplementation() slot in your subclass instead. The isIdentifierEscapedFunction() will dynamically detect the slot and call it.

See also stripDelimiters() and escapeIdentifier().

bool QSqlDriver.isIdentifierEscapedImplementation (self, QString identifier, IdentifierType type)

This method is also a Qt slot with the C++ signature bool isIdentifierEscapedImplementation(const QString&,QSqlDriver::IdentifierType) const.

This slot returns whether identifier is escaped according to the database rules. identifier can either be a table name or field name, dependent on type.

Because of binary compatibility constraints, isIdentifierEscaped() function (introduced in Qt 4.5) is not virtual. Instead, isIdentifierEscaped() will dynamically detect and call this slot. The default implementation assumes the escape/delimiter character is a double quote. Reimplement this slot in your own QSqlDriver if your database engine uses a different delimiter character.

This function was introduced in Qt 4.6.

See also isIdentifierEscaped().

bool QSqlDriver.isOpen (self)

Returns true if the database connection is open; otherwise returns false.

bool QSqlDriver.isOpenError (self)

Returns true if the there was an error opening the database connection; otherwise returns false.

QSqlError QSqlDriver.lastError (self)

Returns a QSqlError object which contains information about the last error that occurred on the database.

See also setLastError().

QSql.NumericalPrecisionPolicy QSqlDriver.numericalPrecisionPolicy (self)

Returns the current default precision policy for the database connection.

This function was introduced in Qt 4.6.

See also QSql.NumericalPrecisionPolicy, setNumericalPrecisionPolicy(), QSqlQuery.numericalPrecisionPolicy(), and QSqlQuery.setNumericalPrecisionPolicy().

bool QSqlDriver.open (self, QString db, QString user = QString(), QString password = QString(), QString host = QString(), int port = -1, QString options = QString())

This method is abstract and should be reimplemented in any sub-class.

Derived classes must reimplement this pure virtual function to open a database connection on database db, using user name user, password password, host host, port port and connection options options.

The function must return true on success and false on failure.

See also setOpen().

QSqlIndex QSqlDriver.primaryIndex (self, QString tableName)

Returns the primary index for table tableName. Returns an empty QSqlIndex if the table doesn't have a primary index. The default implementation returns an empty index.

QSqlRecord QSqlDriver.record (self, QString tableName)

Returns a QSqlRecord populated with the names of the fields in table tableName. If no such table exists, an empty record is returned. The default implementation returns an empty record.

bool QSqlDriver.rollbackTransaction (self)

This function is called to rollback a transaction. If successful, return true, otherwise return false. The default implementation does nothing and returns false.

See also beginTransaction() and commitTransaction().

QSqlDriver.setLastError (self, QSqlError e)

This function is used to set the value of the last error, error, that occurred on the database.

See also lastError().

QSqlDriver.setNumericalPrecisionPolicy (self, QSql.NumericalPrecisionPolicy precisionPolicy)

Sets the default numerical precision policy used by queries created by this driver to precisionPolicy.

Note: Setting the default precision policy to precisionPolicy doesn't affect any currently active queries.

This function was introduced in Qt 4.6.

See also QSql.NumericalPrecisionPolicy, numericalPrecisionPolicy(), QSqlQuery.setNumericalPrecisionPolicy(), and QSqlQuery.numericalPrecisionPolicy().

QSqlDriver.setOpen (self, bool o)

This function sets the open state of the database to open. Derived classes can use this function to report the status of open().

See also open() and setOpenError().

QSqlDriver.setOpenError (self, bool e)

This function sets the open error state of the database to error. Derived classes can use this function to report the status of open(). Note that if error is true the open state of the database is set to closed (i.e., isOpen() returns false).

See also isOpenError(), open(), and setOpen().

QString QSqlDriver.sqlStatement (self, StatementType type, QString tableName, QSqlRecord rec, bool preparedStatement)

Returns a SQL statement of type type for the table tableName with the values from rec. If preparedStatement is true, the string will contain placeholders instead of values.

This method can be used to manipulate tables without having to worry about database-dependent SQL dialects. For non-prepared statements, the values will be properly escaped.

QString QSqlDriver.stripDelimiters (self, QString identifier, IdentifierType type)

Returns the identifier with the leading and trailing delimiters removed, identifier can either be a table name or field name, dependent on type. If identifier does not have leading and trailing delimiter characters, identifier is returned without modification.

Warning: Because of binary compatibility constraints, this function is not virtual, If you want to provide your own implementation in your QSqlDriver subclass, reimplement the stripDelimitersImplementation() slot in your subclass instead. The stripDelimiters() function will dynamically detect the slot and call it.

This function was introduced in Qt 4.5.

See also isIdentifierEscaped().

QString QSqlDriver.stripDelimitersImplementation (self, QString identifier, IdentifierType type)

This method is also a Qt slot with the C++ signature QString stripDelimitersImplementation(const QString&,QSqlDriver::IdentifierType) const.

This slot returns identifier with the leading and trailing delimiters removed, identifier can either be a tablename or field name, dependent on type. If identifier does not have leading and trailing delimiter characters, identifier is returned without modification.

Because of binary compatibility constraints, the stripDelimiters() function (introduced in Qt 4.5) is not virtual. Instead, stripDelimiters() will dynamically detect and call this slot. It generally unnecessary to reimplement this slot.

This function was introduced in Qt 4.6.

See also stripDelimiters().

QStringList QSqlDriver.subscribedToNotifications (self)

Returns a list of the names of the event notifications that are currently subscribed to.

Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide event notification support in your own QSqlDriver subclass, reimplement the subscribedToNotificationsImplementation() slot in your subclass instead. The subscribedToNotifications() function will dynamically detect the slot and call it.

This function was introduced in Qt 4.4.

See also subscribeToNotification() and unsubscribeFromNotification().

QStringList QSqlDriver.subscribedToNotificationsImplementation (self)

This method is also a Qt slot with the C++ signature QStringList subscribedToNotificationsImplementation() const.

Returns a list of the names of the event notifications that are currently subscribed to.

Reimplement this slot to provide your own QSqlDriver subclass with event notification support; because of binary compatibility constraints, the subscribedToNotifications() function (introduced in Qt 4.4) is not virtual. Instead, subscribedToNotifications() will dynamically detect and call this slot. The default implementation simply returns an empty QStringList.

This function was introduced in Qt 4.4.

See also subscribedToNotifications().

bool QSqlDriver.subscribeToNotification (self, QString name)

This function is called to subscribe to event notifications from the database. name identifies the event notification.

If successful, return true, otherwise return false.

The database must be open when this function is called. When the database is closed by calling close() all subscribed event notifications are automatically unsubscribed. Note that calling open() on an already open database may implicitly cause close() to be called, which will cause the driver to unsubscribe from all event notifications.

When an event notification identified by name is posted by the database the notification() signal is emitted.

Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide event notification support in your own QSqlDriver subclass, reimplement the subscribeToNotificationImplementation() slot in your subclass instead. The subscribeToNotification() function will dynamically detect the slot and call it.

This function was introduced in Qt 4.4.

See also unsubscribeFromNotification(), subscribedToNotifications(), and QSqlDriver.hasFeature().

bool QSqlDriver.subscribeToNotificationImplementation (self, QString name)

This method is also a Qt slot with the C++ signature bool subscribeToNotificationImplementation(const QString&).

This slot is called to subscribe to event notifications from the database. name identifies the event notification.

If successful, return true, otherwise return false.

The database must be open when this slot is called. When the database is closed by calling close() all subscribed event notifications are automatically unsubscribed. Note that calling open() on an already open database may implicitly cause close() to be called, which will cause the driver to unsubscribe from all event notifications.

When an event notification identified by name is posted by the database the notification() signal is emitted.

Reimplement this slot to provide your own QSqlDriver subclass with event notification support; because of binary compatibility constraints, the subscribeToNotification() function (introduced in Qt 4.4) is not virtual. Instead, subscribeToNotification() will dynamically detect and call this slot. The default implementation does nothing and returns false.

This function was introduced in Qt 4.4.

See also subscribeToNotification().

QStringList QSqlDriver.tables (self, QSql.TableType tableType)

Returns a list of the names of the tables in the database. The default implementation returns an empty list.

The tableType argument describes what types of tables should be returned. Due to binary compatibility, the string contains the value of the enum QSql.TableTypes as text. An empty string should be treated as QSql.Tables for backward compatibility.

bool QSqlDriver.unsubscribeFromNotification (self, QString name)

This function is called to unsubscribe from event notifications from the database. name identifies the event notification.

If successful, return true, otherwise return false.

The database must be open when this function is called. All subscribed event notifications are automatically unsubscribed from when the close() function is called.

After calling this function the notification() signal will no longer be emitted when an event notification identified by name is posted by the database.

Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide event notification support in your own QSqlDriver subclass, reimplement the unsubscribeFromNotificationImplementation() slot in your subclass instead. The unsubscribeFromNotification() function will dynamically detect the slot and call it.

This function was introduced in Qt 4.4.

See also subscribeToNotification() and subscribedToNotifications().

bool QSqlDriver.unsubscribeFromNotificationImplementation (self, QString name)

This method is also a Qt slot with the C++ signature bool unsubscribeFromNotificationImplementation(const QString&).

This slot is called to unsubscribe from event notifications from the database. name identifies the event notification.

If successful, return true, otherwise return false.

The database must be open when this slot is called. All subscribed event notifications are automatically unsubscribed from when the close() function is called.

After calling this slot the notification() signal will no longer be emitted when an event notification identified by name is posted by the database.

Reimplement this slot to provide your own QSqlDriver subclass with event notification support; because of binary compatibility constraints, the unsubscribeFromNotification() function (introduced in Qt 4.4) is not virtual. Instead, unsubscribeFromNotification() will dynamically detect and call this slot. The default implementation does nothing and returns false.

This function was introduced in Qt 4.4.

See also unsubscribeFromNotification().


Qt Signal Documentation

void notification (const QString&)

This is the default overload of this signal.

This signal is emitted when the database posts an event notification that the driver subscribes to. name identifies the event notification.

This function was introduced in Qt 4.4.

See also subscribeToNotification().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqldrivercreatorbase.html0000644000076500000240000000612212536324521022756 0ustar philstaff00000000000000 QSqlDriverCreatorBase Class Reference
  Home · All Classes · Modules

QSqlDriverCreatorBase Class Reference
[QtSql module]

The QSqlDriverCreatorBase class is the base class for SQL driver factories. More...

Methods


Detailed Description

The QSqlDriverCreatorBase class is the base class for SQL driver factories.

Reimplement createObject() to return an instance of the specific QSqlDriver subclass that you want to provide.

See QSqlDatabase.registerSqlDriver() for details.


Method Documentation

QSqlDriverCreatorBase.__init__ (self)

QSqlDriverCreatorBase.__init__ (self, QSqlDriverCreatorBase)

QSqlDriver QSqlDriverCreatorBase.createObject (self)

This method is abstract and should be reimplemented in any sub-class.

Reimplement this function to returns a new instance of a QSqlDriver subclass.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlerror.html0000644000076500000240000002266012536324521020406 0ustar philstaff00000000000000 QSqlError Class Reference
  Home · All Classes · Modules

QSqlError Class Reference
[QtSql module]

The QSqlError class provides SQL database error information. More...

Types

  • enum ErrorType { NoError, ConnectionError, StatementError, TransactionError, UnknownError }

Methods


Detailed Description

The QSqlError class provides SQL database error information.

A QSqlError object can provide database-specific error data, including the driverText() and databaseText() messages (or both concatenated together as text()), and the error number() and type(). The functions all have setters so that you can create and return QSqlError objects from your own classes, for example from your own SQL drivers.


Type Documentation

QSqlError.ErrorType

This enum type describes the context in which the error occurred, e.g., a connection error, a statement error, etc.

Constant Value Description
QSqlError.NoError 0 No error occurred.
QSqlError.ConnectionError 1 Connection error.
QSqlError.StatementError 2 SQL statement syntax error.
QSqlError.TransactionError 3 Transaction failed error.
QSqlError.UnknownError 4 Unknown error.

Method Documentation

QSqlError.__init__ (self, QString driverText = QString(), QString databaseText = QString(), ErrorType type = QSqlError.NoError, int number = -1)

Constructs an error containing the driver error text driverText, the database-specific error text databaseText, the type type and the optional error number number.

QSqlError.__init__ (self, QSqlError other)

Creates a copy of other.

QString QSqlError.databaseText (self)

Returns the text of the error as reported by the database. This may contain database-specific descriptions; it may be empty.

See also setDatabaseText(), driverText(), and text().

QString QSqlError.driverText (self)

Returns the text of the error as reported by the driver. This may contain database-specific descriptions. It may also be empty.

See also setDriverText(), databaseText(), and text().

bool QSqlError.isValid (self)

Returns true if an error is set, otherwise false.

Example:

 QSqlQueryModel model;
 model.setQuery("select * from myTable");
 if (model.lastError().isValid())
     qDebug() << model.lastError();

See also type().

int QSqlError.number (self)

Returns the database-specific error number, or -1 if it cannot be determined.

See also setNumber().

QSqlError.setDatabaseText (self, QString databaseText)

Sets the database error text to the value of databaseText.

See also databaseText(), setDriverText(), and text().

QSqlError.setDriverText (self, QString driverText)

Sets the driver error text to the value of driverText.

See also driverText(), setDatabaseText(), and text().

QSqlError.setNumber (self, int number)

Sets the database-specific error number to number.

See also number().

QSqlError.setType (self, ErrorType type)

Sets the error type to the value of type.

See also type().

QString QSqlError.text (self)

This is a convenience function that returns databaseText() and driverText() concatenated into a single string.

See also driverText() and databaseText().

ErrorType QSqlError.type (self)

Returns the error type, or -1 if the type cannot be determined.

See also setType().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlfield.html0000644000076500000240000005327612536324521020347 0ustar philstaff00000000000000 QSqlField Class Reference
  Home · All Classes · Modules

QSqlField Class Reference
[QtSql module]

The QSqlField class manipulates the fields in SQL database tables and views. More...

Types

Methods

Special Methods

  • bool __eq__ (self, QSqlField other)
  • bool __ne__ (self, QSqlField other)

Detailed Description

The QSqlField class manipulates the fields in SQL database tables and views.

QSqlField represents the characteristics of a single column in a database table or view, such as the data type and column name. A field also contains the value of the database column, which can be viewed or changed.

Field data values are stored as QVariants. Using an incompatible type is not permitted. For example:

     QSqlField field("age", QVariant.Int);
     field.setValue(QPixmap());  // WRONG

However, the field will attempt to cast certain data types to the field data type where possible:

     QSqlField field("age", QVariant.Int);
     field.setValue(QString("123"));  // casts QString to int

QSqlField objects are rarely created explicitly in application code. They are usually accessed indirectly through QSqlRecords that already contain a list of fields. For example:

     QSqlQuery query;
     ...
     QSqlRecord record = query.record();
     QSqlField field = record.field("country");

A QSqlField object can provide some meta-data about the field, for example, its name(), variant type(), length(), precision(), defaultValue(), typeID(), and its requiredStatus(), isGenerated() and isReadOnly(). The field's data can be checked to see if it isNull(), and its value() retrieved. When editing the data can be set with setValue() or set to NULL with clear().


Type Documentation

QSqlField.RequiredStatus

Specifies whether the field is required or optional.

Constant Value Description
QSqlField.Required 1 The field must be specified when inserting records.
QSqlField.Optional 0 The fields doesn't have to be specified when inserting records.
QSqlField.Unknown -1 The database driver couldn't determine whether the field is required or optional.

See also requiredStatus().


Method Documentation

QSqlField.__init__ (self, QString fieldName = QString(), Type type = QVariant.Invalid)

Constructs an empty field called fieldName of variant type type.

See also setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), setGenerated(), and setReadOnly().

QSqlField.__init__ (self, QSqlField other)

Constructs a copy of other.

QSqlField.clear (self)

Clears the value of the field and sets it to NULL. If the field is read-only, nothing happens.

See also setValue(), isReadOnly(), and requiredStatus().

QVariant QSqlField.defaultValue (self)

Returns the field's default value (which may be NULL).

See also setDefaultValue(), type(), requiredStatus(), length(), precision(), and isGenerated().

bool QSqlField.isAutoValue (self)

Returns true if the value is auto-generated by the database, for example auto-increment primary key values.

See also setAutoValue().

bool QSqlField.isGenerated (self)

Returns true if the field is generated; otherwise returns false.

See also setGenerated(), type(), requiredStatus(), length(), precision(), and defaultValue().

bool QSqlField.isNull (self)

Returns true if the field's value is NULL; otherwise returns false.

See also value().

bool QSqlField.isReadOnly (self)

Returns true if the field's value is read-only; otherwise returns false.

See also setReadOnly(), type(), requiredStatus(), length(), precision(), defaultValue(), and isGenerated().

bool QSqlField.isValid (self)

Returns true if the field's variant type is valid; otherwise returns false.

int QSqlField.length (self)

Returns the field's length.

If the returned value is negative, it means that the information is not available from the database.

See also setLength(), type(), requiredStatus(), precision(), defaultValue(), and isGenerated().

QString QSqlField.name (self)

Returns the name of the field.

See also setName().

int QSqlField.precision (self)

Returns the field's precision; this is only meaningful for numeric types.

If the returned value is negative, it means that the information is not available from the database.

See also setPrecision(), type(), requiredStatus(), length(), defaultValue(), and isGenerated().

RequiredStatus QSqlField.requiredStatus (self)

Returns true if this is a required field; otherwise returns false. An INSERT will fail if a required field does not have a value.

See also setRequiredStatus(), type(), length(), precision(), defaultValue(), and isGenerated().

QSqlField.setAutoValue (self, bool autoVal)

Marks the field as an auto-generated value if autoVal is true.

See also isAutoValue().

QSqlField.setDefaultValue (self, QVariant value)

Sets the default value used for this field to value.

See also defaultValue(), value(), setType(), setRequiredStatus(), setLength(), setPrecision(), setGenerated(), and setReadOnly().

QSqlField.setGenerated (self, bool gen)

Sets the generated state. If gen is false, no SQL will be generated for this field; otherwise, Qt classes such as QSqlQueryModel and QSqlTableModel will generate SQL for this field.

See also isGenerated(), setType(), setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), and setReadOnly().

QSqlField.setLength (self, int fieldLength)

Sets the field's length to fieldLength. For strings this is the maximum number of characters the string can hold; the meaning varies for other types.

See also length(), setType(), setRequiredStatus(), setPrecision(), setDefaultValue(), setGenerated(), and setReadOnly().

QSqlField.setName (self, QString name)

Sets the name of the field to name.

See also name().

QSqlField.setPrecision (self, int precision)

Sets the field's precision. This only affects numeric fields.

See also precision(), setType(), setRequiredStatus(), setLength(), setDefaultValue(), setGenerated(), and setReadOnly().

QSqlField.setReadOnly (self, bool readOnly)

Sets the read only flag of the field's value to readOnly. A read-only field cannot have its value set with setValue() and cannot be cleared to NULL with clear().

See also isReadOnly().

QSqlField.setRequired (self, bool required)

Sets the required status of this field to Required if required is true; otherwise sets it to Optional.

See also setRequiredStatus() and requiredStatus().

QSqlField.setRequiredStatus (self, RequiredStatus status)

Sets the required status of this field to required.

See also requiredStatus(), setType(), setLength(), setPrecision(), setDefaultValue(), setGenerated(), and setReadOnly().

QSqlField.setSqlType (self, int type)

QSqlField.setType (self, Type type)

Set's the field's variant type to type.

See also type(), setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), setGenerated(), and setReadOnly().

QSqlField.setValue (self, QVariant value)

Sets the value of the field to value. If the field is read-only (isReadOnly() returns true), nothing happens.

If the data type of value differs from the field's current data type, an attempt is made to cast it to the proper type. This preserves the data type of the field in the case of assignment, e.g. a QString to an integer data type.

To set the value to NULL, use clear().

See also value(), isReadOnly(), and defaultValue().

Type QSqlField.type (self)

Returns the field's type as stored in the database. Note that the actual value might have a different type, Numerical values that are too large to store in a long int or double are usually stored as strings to prevent precision loss.

See also setType().

int QSqlField.typeID (self)

QVariant QSqlField.value (self)

Returns the value of the field as a QVariant.

Use isNull() to check if the field's value is NULL.

See also setValue().

bool QSqlField.__eq__ (self, QSqlField other)

bool QSqlField.__ne__ (self, QSqlField other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlindex.html0000644000076500000240000001354212536324522020364 0ustar philstaff00000000000000 QSqlIndex Class Reference
  Home · All Classes · Modules

QSqlIndex Class Reference
[QtSql module]

The QSqlIndex class provides functions to manipulate and describe database indexes. More...

Inherits QSqlRecord.

Methods


Detailed Description

The QSqlIndex class provides functions to manipulate and describe database indexes.

An index refers to a single table or view in a database. Information about the fields that comprise the index can be used to generate SQL statements.


Method Documentation

QSqlIndex.__init__ (self, QString cursorName = QString(), QString name = QString())

Constructs an empty index using the cursor name cursorname and index name name.

QSqlIndex.__init__ (self, QSqlIndex other)

Constructs a copy of other.

QSqlIndex.append (self, QSqlField field)

Appends the field field to the list of indexed fields. The field is appended with an ascending sort order.

QSqlIndex.append (self, QSqlField field, bool desc)

This is an overloaded function.

Appends the field field to the list of indexed fields. The field is appended with an ascending sort order, unless desc is true.

QString QSqlIndex.cursorName (self)

Returns the name of the cursor which the index is associated with.

See also setCursorName().

bool QSqlIndex.isDescending (self, int i)

Returns true if field i in the index is sorted in descending order; otherwise returns false.

QString QSqlIndex.name (self)

Returns the name of the index.

See also setName().

QSqlIndex.setCursorName (self, QString cursorName)

Sets the name of the cursor that the index is associated with to cursorName.

See also cursorName().

QSqlIndex.setDescending (self, int i, bool desc)

If desc is true, field i is sorted in descending order. Otherwise, field i is sorted in ascending order (the default). If the field does not exist, nothing happens.

See also isDescending().

QSqlIndex.setName (self, QString name)

Sets the name of the index to name.

See also name().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlquery.html0000644000076500000240000015715512536324522020433 0ustar philstaff00000000000000 QSqlQuery Class Reference
  Home · All Classes · Modules

QSqlQuery Class Reference
[QtSql module]

The QSqlQuery class provides a means of executing and manipulating SQL statements. More...

Types

Methods


Detailed Description

The QSqlQuery class provides a means of executing and manipulating SQL statements.

QSqlQuery encapsulates the functionality involved in creating, navigating and retrieving data from SQL queries which are executed on a QSqlDatabase. It can be used to execute DML (data manipulation language) statements, such as SELECT, INSERT, UPDATE and DELETE, as well as DDL (data definition language) statements, such as CREATE TABLE. It can also be used to execute database-specific commands which are not standard SQL (e.g. SET DATESTYLE=ISO for PostgreSQL).

Successfully executed SQL statements set the query's state to active so that isActive() returns true. Otherwise the query's state is set to inactive. In either case, when executing a new SQL statement, the query is positioned on an invalid record. An active query must be navigated to a valid record (so that isValid() returns true) before values can be retrieved.

For some databases, if an active query that is a SELECT statement exists when you call commit() or rollback(), the commit or rollback will fail. See isActive() for details.

Navigating records is performed with the following functions:

These functions allow the programmer to move forward, backward or arbitrarily through the records returned by the query. If you only need to move forward through the results (e.g., by using next()), you can use setForwardOnly(), which will save a significant amount of memory overhead and improve performance on some databases. Once an active query is positioned on a valid record, data can be retrieved using value(). All data is transferred from the SQL backend using QVariants.

For example:

     QSqlQuery query("SELECT country FROM artist");
     while (query.next()) {
         QString country = query.value(0).toString();
         doSomething(country);
     }

To access the data returned by a query, use value(int). Each field in the data returned by a SELECT statement is accessed by passing the field's position in the statement, starting from 0. This makes using SELECT * queries inadvisable because the order of the fields returned is indeterminate.

For the sake of efficiency, there are no functions to access a field by name (unless you use prepared queries with names, as explained below). To convert a field name into an index, use record().indexOf(), for example:

     QSqlQuery query("SELECT * FROM artist");
     int fieldNo = query.record().indexOf("country");
     while (query.next()) {
         QString country = query.value(fieldNo).toString();
         doSomething(country);
     }

QSqlQuery supports prepared query execution and the binding of parameter values to placeholders. Some databases don't support these features, so for those, Qt emulates the required functionality. For example, the Oracle and ODBC drivers have proper prepared query support, and Qt makes use of it; but for databases that don't have this support, Qt implements the feature itself, e.g. by replacing placeholders with actual values when a query is executed. Use numRowsAffected() to find out how many rows were affected by a non-SELECT query, and size() to find how many were retrieved by a SELECT.

Oracle databases identify placeholders by using a colon-name syntax, e.g :name. ODBC simply uses ? characters. Qt supports both syntaxes, with the restriction that you can't mix them in the same query.

You can retrieve the values of all the fields in a single variable (a map) using boundValues().

Approaches to Binding Values

Below we present the same example using each of the four different binding approaches, as well as one example of binding values to a stored procedure.

Named binding using named placeholders:

     QSqlQuery query;
     query.prepare("INSERT INTO person (id, forename, surname) "
                   "VALUES (:id, :forename, :surname)");
     query.bindValue(":id", 1001);
     query.bindValue(":forename", "Bart");
     query.bindValue(":surname", "Simpson");
     query.exec();

Positional binding using named placeholders:

     QSqlQuery query;
     query.prepare("INSERT INTO person (id, forename, surname) "
                   "VALUES (:id, :forename, :surname)");
     query.bindValue(0, 1001);
     query.bindValue(1, "Bart");
     query.bindValue(2, "Simpson");
     query.exec();

Binding values using positional placeholders (version 1):

     QSqlQuery query;
     query.prepare("INSERT INTO person (id, forename, surname) "
                   "VALUES (?, ?, ?)");
     query.bindValue(0, 1001);
     query.bindValue(1, "Bart");
     query.bindValue(2, "Simpson");
     query.exec();

Binding values using positional placeholders (version 2):

     QSqlQuery query;
     query.prepare("INSERT INTO person (id, forename, surname) "
                   "VALUES (?, ?, ?)");
     query.addBindValue(1001);
     query.addBindValue("Bart");
     query.addBindValue("Simpson");
     query.exec();

Binding values to a stored procedure:

This code calls a stored procedure called AsciiToInt(), passing it a character through its in parameter, and taking its result in the out parameter.

     QSqlQuery query;
     query.prepare("CALL AsciiToInt(?, ?)");
     query.bindValue(0, "A");
     query.bindValue(1, 0, QSql.Out);
     query.exec();
     int i = query.boundValue(1).toInt(); // i is 65

Note that unbound parameters will retain their values.

Stored procedures that uses the return statement to return values, or return multiple result sets, are not fully supported. For specific details see SQL Database Drivers.

Warning: You must load the SQL driver and open the connection before a QSqlQuery is created. Also, the connection must remain open while the query exists; otherwise, the behavior of QSqlQuery is undefined.


Type Documentation

QSqlQuery.BatchExecutionMode

Constant Value Description
QSqlQuery.ValuesAsRows 0 - Updates multiple rows. Treats every entry in a QVariantList as a value for updating the next row.
QSqlQuery.ValuesAsColumns 1 - Updates a single row. Treats every entry in a QVariantList as a single value of an array type.

Method Documentation

QSqlQuery.__init__ (self, QSqlResult r)

Constructs a QSqlQuery object which uses the QSqlResult result to communicate with a database.

QSqlQuery.__init__ (self, QString query = QString(), QSqlDatabase db = QSqlDatabase())

Constructs a QSqlQuery object using the SQL query and the database db. If db is not specified, or is invalid, the application's default database is used. If query is not an empty string, it will be executed.

See also QSqlDatabase.

QSqlQuery.__init__ (self, QSqlDatabase db)

Constructs a QSqlQuery object using the database db. If db is invalid, the application's default database will be used.

See also QSqlDatabase.

QSqlQuery.__init__ (self, QSqlQuery other)

Constructs a copy of other.

QSqlQuery.addBindValue (self, QVariant val, QSql.ParamType type = QSql.In)

Adds the value val to the list of values when using positional value binding. The order of the addBindValue() calls determines which placeholder a value will be bound to in the prepared query. If paramType is QSql.Out or QSql.InOut, the placeholder will be overwritten with data from the database after the exec_() call.

To bind a NULL value, use a null QVariant; for example, use QVariant(QVariant.String) if you are binding a string.

See also bindValue(), prepare(), exec_(), boundValue(), and boundValues().

int QSqlQuery.at (self)

Returns the current internal position of the query. The first record is at position zero. If the position is invalid, the function returns QSql.BeforeFirstRow or QSql.AfterLastRow, which are special negative values.

See also previous(), next(), first(), last(), seek(), isActive(), and isValid().

QSqlQuery.bindValue (self, QString placeholder, QVariant val, QSql.ParamType type = QSql.In)

Set the placeholder placeholder to be bound to value val in the prepared statement. Note that the placeholder mark (e.g :) must be included when specifying the placeholder name. If paramType is QSql.Out or QSql.InOut, the placeholder will be overwritten with data from the database after the exec_() call. In this case, sufficient space must be pre-allocated to store the result into.

To bind a NULL value, use a null QVariant; for example, use QVariant(QVariant.String) if you are binding a string.

Values cannot be bound to multiple locations in the query, eg:

 INSERT INTO testtable (id, name, samename) VALUES (:id, :name, :name)

Binding to name will bind to the first :name, but not the second.

See also addBindValue(), prepare(), exec_(), boundValue(), and boundValues().

QSqlQuery.bindValue (self, int pos, QVariant val, QSql.ParamType type = QSql.In)

Set the placeholder in position pos to be bound to value val in the prepared statement. Field numbering starts at 0. If paramType is QSql.Out or QSql.InOut, the placeholder will be overwritten with data from the database after the exec_() call.

QVariant QSqlQuery.boundValue (self, QString placeholder)

Returns the value for the placeholder.

See also boundValues(), bindValue(), and addBindValue().

QVariant QSqlQuery.boundValue (self, int pos)

Returns the value for the placeholder at position pos.

dict-of-QString-QVariant QSqlQuery.boundValues (self)

Returns a map of the bound values.

With named binding, the bound values can be examined in the following ways:

     QMapIterator<QString, QVariant> i(query.boundValues());
     while (i.hasNext()) {
         i.next();
         cout << i.key().toAscii().data() << ": "
              << i.value().toString().toAscii().data() << endl;
     }

With positional binding, the code becomes:

     QList<QVariant> list = query.boundValues().values();
     for (int i = 0; i < list.size(); ++i)
         cout << i << ": " << list.at(i).toString().toAscii().data() << endl;

See also boundValue(), bindValue(), and addBindValue().

QSqlQuery.clear (self)

Clears the result set and releases any resources held by the query. Sets the query state to inactive. You should rarely if ever need to call this function.

QSqlDriver QSqlQuery.driver (self)

Returns the database driver associated with the query.

bool QSqlQuery.exec_ (self, QString query)

Executes the SQL in query. Returns true and sets the query state to active if the query was successful; otherwise returns false. The query string must use syntax appropriate for the SQL database being queried (for example, standard SQL).

After the query is executed, the query is positioned on an invalid record and must be navigated to a valid record before data values can be retrieved (for example, using next()).

Note that the last error for this query is reset when exec() is called.

For SQLite, the query string can contain only one statement at a time. If more than one statements is give, the function returns false.

Example:

     QSqlQuery query;
     query.exec("INSERT INTO employee (id, name, salary) "
                "VALUES (1001, 'Thad Beaumont', 65000)");

See also isActive(), isValid(), next(), previous(), first(), last(), and seek().

bool QSqlQuery.exec_ (self)

Executes a previously prepared SQL query. Returns true if the query executed successfully; otherwise returns false.

Note that the last error for this query is reset when exec_() is called.

See also prepare(), bindValue(), addBindValue(), boundValue(), and boundValues().

bool QSqlQuery.execBatch (self, BatchExecutionMode mode = QSqlQuery.ValuesAsRows)

Executes a previously prepared SQL query in a batch. All the bound parameters have to be lists of variants. If the database doesn't support batch executions, the driver will simulate it using conventional exec_() calls.

Returns true if the query is executed successfully; otherwise returns false.

Example:

 QSqlQuery q;
 q.prepare("insert into myTable values (?, ?)");

 QVariantList ints;
 ints << 1 << 2 << 3 << 4;
 q.addBindValue(ints);

 QVariantList names;
 names << "Harald" << "Boris" << "Trond" << QVariant(QVariant.String);
 q.addBindValue(names);

 if (!q.execBatch())
     qDebug() << q.lastError();

The example above inserts four new rows into myTable:

 1  Harald
 2  Boris
 3  Trond
 4  NULL

To bind NULL values, a null QVariant of the relevant type has to be added to the bound QVariantList; for example, QVariant(QVariant.String) should be used if you are using strings.

Note: Every bound QVariantList must contain the same amount of variants.

Note: The type of the QVariants in a list must not change. For example, you cannot mix integer and string variants within a QVariantList.

The mode parameter indicates how the bound QVariantList will be interpreted. If mode is ValuesAsRows, every variant within the QVariantList will be interpreted as a value for a new row. ValuesAsColumns is a special case for the Oracle driver. In this mode, every entry within a QVariantList will be interpreted as array-value for an IN or OUT value within a stored procedure. Note that this will only work if the IN or OUT value is a table-type consisting of only one column of a basic type, for example TYPE myType IS TABLE OF VARCHAR(64) INDEX BY BINARY_INTEGER;

This function was introduced in Qt 4.2.

See also prepare(), bindValue(), and addBindValue().

QString QSqlQuery.executedQuery (self)

Returns the last query that was successfully executed.

In most cases this function returns the same string as lastQuery(). If a prepared query with placeholders is executed on a DBMS that does not support it, the preparation of this query is emulated. The placeholders in the original query are replaced with their bound values to form a new query. This function returns the modified query. It is mostly useful for debugging purposes.

See also lastQuery().

QSqlQuery.finish (self)

Instruct the database driver that no more data will be fetched from this query until it is re-executed. There is normally no need to call this function, but it may be helpful in order to free resources such as locks or cursors if you intend to re-use the query at a later time.

Sets the query to inactive. Bound values retain their values.

This function was introduced in Qt 4.3.2.

See also prepare(), exec_(), and isActive().

bool QSqlQuery.first (self)

Retrieves the first record in the result, if available, and positions the query on the retrieved record. Note that the result must be in the active state and isSelect() must return true before calling this function or it will do nothing and return false. Returns true if successful. If unsuccessful the query position is set to an invalid position and false is returned.

See also next(), previous(), last(), seek(), at(), isActive(), and isValid().

bool QSqlQuery.isActive (self)

Returns true if the query is active. An active QSqlQuery is one that has been exec()'d successfully but not yet finished with. When you are finished with an active query, you can make make the query inactive by calling finish() or clear(), or you can delete the QSqlQuery instance.

Note: Of particular interest is an active query that is a SELECT statement. For some databases that support transactions, an active query that is a SELECT statement can cause a commit() or a rollback() to fail, so before committing or rolling back, you should make your active SELECT statement query inactive using one of the ways listed above.

See also isSelect().

bool QSqlQuery.isForwardOnly (self)

Returns true if you can only scroll forward through a result set; otherwise returns false.

See also setForwardOnly() and next().

bool QSqlQuery.isNull (self, int field)

Returns true if the query is active and positioned on a valid record and the field is NULL; otherwise returns false. Note that for some drivers, isNull() will not return accurate information until after an attempt is made to retrieve data.

See also isActive(), isValid(), and value().

bool QSqlQuery.isSelect (self)

Returns true if the current query is a SELECT statement; otherwise returns false.

bool QSqlQuery.isValid (self)

Returns true if the query is currently positioned on a valid record; otherwise returns false.

bool QSqlQuery.last (self)

Retrieves the last record in the result, if available, and positions the query on the retrieved record. Note that the result must be in the active state and isSelect() must return true before calling this function or it will do nothing and return false. Returns true if successful. If unsuccessful the query position is set to an invalid position and false is returned.

See also next(), previous(), first(), seek(), at(), isActive(), and isValid().

QSqlError QSqlQuery.lastError (self)

Returns error information about the last error (if any) that occurred with this query.

See also QSqlError and QSqlDatabase.lastError().

QVariant QSqlQuery.lastInsertId (self)

Returns the object ID of the most recent inserted row if the database supports it. An invalid QVariant will be returned if the query did not insert any value or if the database does not report the id back. If more than one row was touched by the insert, the behavior is undefined.

For MySQL databases the row's auto-increment field will be returned.

Note: For this function to work in PSQL, the table table must contain OIDs, which may not have been created by default. Check the default_with_oids configuration variable to be sure.

See also QSqlDriver.hasFeature().

QString QSqlQuery.lastQuery (self)

Returns the text of the current query being used, or an empty string if there is no current query text.

See also executedQuery().

bool QSqlQuery.next (self)

Retrieves the next record in the result, if available, and positions the query on the retrieved record. Note that the result must be in the active state and isSelect() must return true before calling this function or it will do nothing and return false.

The following rules apply:

  • If the result is currently located before the first record, e.g. immediately after a query is executed, an attempt is made to retrieve the first record.
  • If the result is currently located after the last record, there is no change and false is returned.
  • If the result is located somewhere in the middle, an attempt is made to retrieve the next record.

If the record could not be retrieved, the result is positioned after the last record and false is returned. If the record is successfully retrieved, true is returned.

See also previous(), first(), last(), seek(), at(), isActive(), and isValid().

bool QSqlQuery.nextResult (self)

Discards the current result set and navigates to the next if available.

Some databases are capable of returning multiple result sets for stored procedures or SQL batches (a query strings that contains multiple statements). If multiple result sets are available after executing a query this function can be used to navigate to the next result set(s).

If a new result set is available this function will return true. The query will be repositioned on an invalid record in the new result set and must be navigated to a valid record before data values can be retrieved. If a new result set isn't available the function returns false and the query is set to inactive. In any case the old result set will be discarded.

When one of the statements is a non-select statement a count of affected rows may be available instead of a result set.

Note that some databases, i.e. Microsoft SQL Server, requires non-scrollable cursors when working with multiple result sets. Some databases may execute all statements at once while others may delay the execution until the result set is actually accessed, and some databases may have restrictions on which statements are allowed to be used in a SQL batch.

This function was introduced in Qt 4.4.

See also QSqlDriver.hasFeature(), setForwardOnly(), next(), isSelect(), numRowsAffected(), isActive(), and lastError().

QSql.NumericalPrecisionPolicy QSqlQuery.numericalPrecisionPolicy (self)

Returns the current precision policy.

See also QSql.NumericalPrecisionPolicy and setNumericalPrecisionPolicy().

int QSqlQuery.numRowsAffected (self)

Returns the number of rows affected by the result's SQL statement, or -1 if it cannot be determined. Note that for SELECT statements, the value is undefined; use size() instead. If the query is not active, -1 is returned.

See also size() and QSqlDriver.hasFeature().

bool QSqlQuery.prepare (self, QString query)

Prepares the SQL query query for execution. Returns true if the query is prepared successfully; otherwise returns false.

The query may contain placeholders for binding values. Both Oracle style colon-name (e.g., :surname), and ODBC style (?) placeholders are supported; but they cannot be mixed in the same query. See the Detailed Description for examples.

Portability note: Some databases choose to delay preparing a query until it is executed the first time. In this case, preparing a syntactically wrong query succeeds, but every consecutive exec_() will fail.

For SQLite, the query string can contain only one statement at a time. If more than one statements are give, the function returns false.

Example:

     QSqlQuery query;
     query.prepare("INSERT INTO person (id, forename, surname) "
                   "VALUES (:id, :forename, :surname)");
     query.bindValue(":id", 1001);
     query.bindValue(":forename", "Bart");
     query.bindValue(":surname", "Simpson");
     query.exec();

See also exec_(), bindValue(), and addBindValue().

bool QSqlQuery.previous (self)

Retrieves the previous record in the result, if available, and positions the query on the retrieved record. Note that the result must be in the active state and isSelect() must return true before calling this function or it will do nothing and return false.

The following rules apply:

  • If the result is currently located before the first record, there is no change and false is returned.
  • If the result is currently located after the last record, an attempt is made to retrieve the last record.
  • If the result is somewhere in the middle, an attempt is made to retrieve the previous record.

If the record could not be retrieved, the result is positioned before the first record and false is returned. If the record is successfully retrieved, true is returned.

See also next(), first(), last(), seek(), at(), isActive(), and isValid().

QSqlRecord QSqlQuery.record (self)

Returns a QSqlRecord containing the field information for the current query. If the query points to a valid row (isValid() returns true), the record is populated with the row's values. An empty record is returned when there is no active query (isActive() returns false).

To retrieve values from a query, value() should be used since its index-based lookup is faster.

In the following example, a SELECT * FROM query is executed. Since the order of the columns is not defined, QSqlRecord.indexOf() is used to obtain the index of a column.

 QSqlQuery q("select * from employees");
 QSqlRecord rec = q.record();

 qDebug() << "Number of columns: " << rec.count();

 int nameCol = rec.indexOf("name"); // index of the field "name"
 while (q.next())
     qDebug() << q.value(nameCol).toString(); // output all names

See also value().

QSqlResult QSqlQuery.result (self)

Returns the result associated with the query.

bool QSqlQuery.seek (self, int index, bool relative = False)

Retrieves the record at position index, if available, and positions the query on the retrieved record. The first record is at position 0. Note that the query must be in an active state and isSelect() must return true before calling this function.

If relative is false (the default), the following rules apply:

  • If index is negative, the result is positioned before the first record and false is returned.
  • Otherwise, an attempt is made to move to the record at position index. If the record at position index could not be retrieved, the result is positioned after the last record and false is returned. If the record is successfully retrieved, true is returned.

If relative is true, the following rules apply:

  • If the result is currently positioned before the first record or on the first record, and index is negative, there is no change, and false is returned.
  • If the result is currently located after the last record, and index is positive, there is no change, and false is returned.
  • If the result is currently located somewhere in the middle, and the relative offset index moves the result below zero, the result is positioned before the first record and false is returned.
  • Otherwise, an attempt is made to move to the record index records ahead of the current record (or index records behind the current record if index is negative). If the record at offset index could not be retrieved, the result is positioned after the last record if index >= 0, (or before the first record if index is negative), and false is returned. If the record is successfully retrieved, true is returned.

See also next(), previous(), first(), last(), at(), isActive(), and isValid().

QSqlQuery.setForwardOnly (self, bool forward)

Sets forward only mode to forward. If forward is true, only next() and seek() with positive values, are allowed for navigating the results.

Forward only mode can be (depending on the driver) more memory efficient since results do not need to be cached. It will also improve performance on some databases. For this to be true, you must call setForwardOnly() before the query is prepared or executed. Note that the constructor that takes a query and a database may execute the query.

Forward only mode is off by default.

Setting forward only to false is a suggestion to the database engine, which has the final say on whether a result set is forward only or scrollable. isForwardOnly() will always return the correct status of the result set.

Note: Calling setForwardOnly after execution of the query will result in unexpected results at best, and crashes at worst.

See also isForwardOnly(), next(), seek(), and QSqlResult.setForwardOnly().

QSqlQuery.setNumericalPrecisionPolicy (self, QSql.NumericalPrecisionPolicy precisionPolicy)

Instruct the database driver to return numerical values with a precision specified by precisionPolicy.

The Oracle driver, for example, can retrieve numerical values as strings to prevent the loss of precision. If high precision doesn't matter, use this method to increase execution speed by bypassing string conversions.

Note: Drivers that don't support fetching numerical values with low precision will ignore the precision policy. You can use QSqlDriver.hasFeature() to find out whether a driver supports this feature.

Note: Setting the precision policy doesn't affect the currently active query. Call exec_(QString) or prepare() in order to activate the policy.

See also QSql.NumericalPrecisionPolicy and numericalPrecisionPolicy().

int QSqlQuery.size (self)

Returns the size of the result (number of rows returned), or -1 if the size cannot be determined or if the database does not support reporting information about query sizes. Note that for non-SELECT statements (isSelect() returns false), size() will return -1. If the query is not active (isActive() returns false), -1 is returned.

To determine the number of rows affected by a non-SELECT statement, use numRowsAffected().

See also isActive(), numRowsAffected(), and QSqlDriver.hasFeature().

QVariant QSqlQuery.value (self, int i)

Returns the value of field index in the current record.

The fields are numbered from left to right using the text of the SELECT statement, e.g. in

 SELECT forename, surname FROM people;

field 0 is forename and field 1 is surname. Using SELECT * is not recommended because the order of the fields in the query is undefined.

An invalid QVariant is returned if field index does not exist, if the query is inactive, or if the query is positioned on an invalid record.

See also previous(), next(), first(), last(), seek(), isActive(), and isValid().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlquerymodel.html0000644000076500000240000005321012536324522021437 0ustar philstaff00000000000000 QSqlQueryModel Class Reference
  Home · All Classes · Modules

QSqlQueryModel Class Reference
[QtSql module]

The QSqlQueryModel class provides a read-only data model for SQL result sets. More...

Inherits QAbstractTableModel.

Inherited by QSqlTableModel.

Methods

  • __init__ (self, QObject parent = None)
  • bool canFetchMore (self, QModelIndex parent = QModelIndex())
  • clear (self)
  • int columnCount (self, QModelIndex parent = QModelIndex())
  • QVariant data (self, QModelIndex item, int role = Qt.DisplayRole)
  • fetchMore (self, QModelIndex parent = QModelIndex())
  • QVariant headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)
  • QModelIndex indexInQuery (self, QModelIndex item)
  • bool insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())
  • QSqlError lastError (self)
  • QSqlQuery query (self)
  • QSqlRecord record (self, int row)
  • QSqlRecord record (self)
  • bool removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())
  • int rowCount (self, QModelIndex parent = QModelIndex())
  • bool setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)
  • setLastError (self, QSqlError error)
  • setQuery (self, QSqlQuery query)
  • setQuery (self, QString query, QSqlDatabase db = QSqlDatabase())

Detailed Description

The QSqlQueryModel class provides a read-only data model for SQL result sets.

QSqlQueryModel is a high-level interface for executing SQL statements and traversing the result set. It is built on top of the lower-level QSqlQuery and can be used to provide data to view classes such as QTableView. For example:

     QSqlQueryModel *model = new QSqlQueryModel;
     model->setQuery("SELECT name, salary FROM employee");
     model->setHeaderData(0, Qt.Horizontal, tr("Name"));
     model->setHeaderData(1, Qt.Horizontal, tr("Salary"));

     QTableView *view = new QTableView;
     view->setModel(model);
     view->show();

We set the model's query, then we set up the labels displayed in the view header.

QSqlQueryModel can also be used to access a database programmatically, without binding it to a view:

     QSqlQueryModel model;
     model.setQuery("SELECT * FROM employee");
     int salary = model.record(4).value("salary").toInt();

The code snippet above extracts the salary field from record 4 in the result set of the query SELECT * from employee. Assuming that salary is column 2, we can rewrite the last line as follows:

     int salary = model.data(model.index(4, 2)).toInt();

The model is read-only by default. To make it read-write, you must subclass it and reimplement setData() and flags(). Another option is to use QSqlTableModel, which provides a read-write model based on a single database table.

The sql/querymodel example illustrates how to use QSqlQueryModel to display the result of a query. It also shows how to subclass QSqlQueryModel to customize the contents of the data before showing it to the user, and how to create a read-write model based on QSqlQueryModel.

If the database doesn't return the number of selected rows in a query, the model will fetch rows incrementally. See fetchMore() for more information.


Method Documentation

QSqlQueryModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an empty QSqlQueryModel with the given parent.

bool QSqlQueryModel.canFetchMore (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.canFetchMore().

Returns true if it is possible to read more rows from the database. This only affects databases that don't report back the size of a query (see QSqlDriver.hasFeature()).

parent should always be an invalid QModelIndex.

This function was introduced in Qt 4.1.

See also fetchMore().

QSqlQueryModel.clear (self)

Clears the model and releases any acquired resource.

int QSqlQueryModel.columnCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.columnCount().

QVariant QSqlQueryModel.data (self, QModelIndex item, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.data().

Returns the value for the specified item and role.

If item is out of bounds or if an error occurred, an invalid QVariant is returned.

See also lastError().

QSqlQueryModel.fetchMore (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.fetchMore().

Fetches more rows from a database. This only affects databases that don't report back the size of a query (see QSqlDriver.hasFeature()).

To force fetching of the entire result set, you can use the following:

 while (myModel->canFetchMore())
     myModel->fetchMore();

parent should always be an invalid QModelIndex.

This function was introduced in Qt 4.1.

See also canFetchMore().

QVariant QSqlQueryModel.headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.headerData().

Returns the header data for the given role in the section of the header with the specified orientation.

See also setHeaderData().

QModelIndex QSqlQueryModel.indexInQuery (self, QModelIndex item)

Returns the index of the value in the database result set for the given item in the model.

The return value is identical to item if no columns or rows have been inserted, removed, or moved around.

Returns an invalid model index if item is out of bounds or if item does not point to a value in the result set.

See also QSqlTableModel.indexInQuery(), insertColumns(), and removeColumns().

bool QSqlQueryModel.insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertColumns().

Inserts count columns into the model at position column. The parent parameter must always be an invalid QModelIndex, since the model does not support parent-child relationships.

Returns true if column is within bounds; otherwise returns false.

By default, inserted columns are empty. To fill them with data, reimplement data() and handle any inserted column separately:

 QVariant MyModel.data(const QModelIndex &item, int role) const
 {
     if (item.column() == m_specialColumnNo) {
         // handle column separately
     }
     return QSqlQueryModel.data(item, role);
 }

See also removeColumns().

QSqlError QSqlQueryModel.lastError (self)

Returns information about the last error that occurred on the database.

See also setLastError() and query().

QSqlQuery QSqlQueryModel.query (self)

Returns the QSqlQuery associated with this model.

See also setQuery().

QSqlQueryModel.queryChange (self)

This virtual function is called whenever the query changes. The default implementation does nothing.

query() returns the new query.

See also query() and setQuery().

QSqlRecord QSqlQueryModel.record (self, int row)

Returns the record containing information about the fields of the current query. If row is the index of a valid row, the record will be populated with values from that row.

If the model is not initialized, an empty record will be returned.

See also QSqlRecord.isEmpty().

QSqlRecord QSqlQueryModel.record (self)

This is an overloaded function.

Returns an empty record containing information about the fields of the current query.

If the model is not initialized, an empty record will be returned.

See also QSqlRecord.isEmpty().

bool QSqlQueryModel.removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeColumns().

Removes count columns from the model starting from position column. The parent parameter must always be an invalid QModelIndex, since the model does not support parent-child relationships.

Removing columns effectively hides them. It does not affect the underlying QSqlQuery.

Returns true if the columns were removed; otherwise returns false.

int QSqlQueryModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

If the database supports returning the size of a query (see QSqlDriver.hasFeature()), the number of rows of the current query is returned. Otherwise, returns the number of rows currently cached on the client.

parent should always be an invalid QModelIndex.

This function was introduced in Qt 4.1.

See also canFetchMore() and QSqlDriver.hasFeature().

bool QSqlQueryModel.setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setHeaderData().

Sets the caption for a horizontal header for the specified role to value. This is useful if the model is used to display data in a view (e.g., QTableView).

Returns true if orientation is Qt.Horizontal and the section refers to a valid section; otherwise returns false.

Note that this function cannot be used to modify values in the database since the model is read-only.

See also headerData() and data().

QSqlQueryModel.setLastError (self, QSqlError error)

Protected function which allows derived classes to set the value of the last error that occurred on the database to error.

See also lastError().

QSqlQueryModel.setQuery (self, QSqlQuery query)

Resets the model and sets the data provider to be the given query. Note that the query must be active and must not be isForwardOnly().

lastError() can be used to retrieve verbose information if there was an error setting the query.

Note: Calling setQuery() will remove any inserted columns.

See also query(), QSqlQuery.isActive(), QSqlQuery.setForwardOnly(), and lastError().

QSqlQueryModel.setQuery (self, QString query, QSqlDatabase db = QSqlDatabase())

This is an overloaded function.

Executes the query query for the given database connection db. If no database (or an invalid database) is specified, the default connection is used.

lastError() can be used to retrieve verbose information if there was an error setting the query.

Example:

 QSqlQueryModel model;
 model.setQuery("select * from MyTable");
 if (model.lastError().isValid())
     qDebug() << model.lastError();

See also query(), queryChange(), and lastError().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlrecord.html0000644000076500000240000003775712536324521020550 0ustar philstaff00000000000000 QSqlRecord Class Reference
  Home · All Classes · Modules

QSqlRecord Class Reference
[QtSql module]

The QSqlRecord class encapsulates a database record. More...

Inherited by QSqlIndex.

Methods

Special Methods


Detailed Description

The QSqlRecord class encapsulates a database record.

The QSqlRecord class encapsulates the functionality and characteristics of a database record (usually a row in a table or view within the database). QSqlRecord supports adding and removing fields as well as setting and retrieving field values.

The values of a record's fields' can be set by name or position with setValue(); if you want to set a field to null use setNull(). To find the position of a field by name use indexOf(), and to find the name of a field at a particular position use fieldName(). Use field() to retrieve a QSqlField object for a given field. Use contains() to see if the record contains a particular field name.

When queries are generated to be executed on the database only those fields for which isGenerated() is true are included in the generated SQL.

A record can have fields added with append() or insert(), replaced with replace(), and removed with remove(). All the fields can be removed with clear(). The number of fields is given by count(); all their values can be cleared (to null) using clearValues().


Method Documentation

QSqlRecord.__init__ (self)

Constructs an empty record.

See also isEmpty(), append(), and insert().

QSqlRecord.__init__ (self, QSqlRecord other)

Constructs a copy of other.

QSqlRecord is implicitly shared. This means you can make copies of a record in constant time.

QSqlRecord.append (self, QSqlField field)

Append a copy of field field to the end of the record.

See also insert(), replace(), and remove().

QSqlRecord.clear (self)

Removes all the record's fields.

See also clearValues() and isEmpty().

QSqlRecord.clearValues (self)

Clears the value of all fields in the record and sets each field to null.

See also setValue().

bool QSqlRecord.contains (self, QString name)

Returns true if there is a field in the record called name; otherwise returns false.

int QSqlRecord.count (self)

Returns the number of fields in the record.

See also isEmpty().

QSqlField QSqlRecord.field (self, int i)

Returns the field at position index. If the index is out of range, function returns a default-constructed value.

QSqlField QSqlRecord.field (self, QString name)

This is an overloaded function.

Returns the field called name.

QString QSqlRecord.fieldName (self, int i)

Returns the name of the field at position index. If the field does not exist, an empty string is returned.

See also indexOf().

int QSqlRecord.indexOf (self, QString name)

Returns the position of the field called name within the record, or -1 if it cannot be found. Field names are not case-sensitive. If more than one field matches, the first one is returned.

See also fieldName().

QSqlRecord.insert (self, int pos, QSqlField field)

Inserts the field field at position pos in the record.

See also append(), replace(), and remove().

bool QSqlRecord.isEmpty (self)

Returns true if there are no fields in the record; otherwise returns false.

See also append(), insert(), and clear().

bool QSqlRecord.isGenerated (self, int i)

Returns true if the record has a field called name and this field is to be generated (the default); otherwise returns false.

See also setGenerated().

bool QSqlRecord.isGenerated (self, QString name)

This is an overloaded function.

Returns true if the record has a field at position index and this field is to be generated (the default); otherwise returns false.

See also setGenerated().

bool QSqlRecord.isNull (self, int i)

Returns true if the field called name is null or if there is no field called name; otherwise returns false.

See also setNull().

bool QSqlRecord.isNull (self, QString name)

This is an overloaded function.

Returns true if the field index is null or if there is no field at position index; otherwise returns false.

QSqlRecord.remove (self, int pos)

Removes the field at position pos. If pos is out of range, nothing happens.

See also append(), insert(), and replace().

QSqlRecord.replace (self, int pos, QSqlField field)

Replaces the field at position pos with the given field. If pos is out of range, nothing happens.

See also append(), insert(), and remove().

QSqlRecord.setGenerated (self, QString name, bool generated)

Sets the generated flag for the field called name to generated. If the field does not exist, nothing happens. Only fields that have generated set to true are included in the SQL that is generated by QSqlQueryModel for example.

See also isGenerated().

QSqlRecord.setGenerated (self, int i, bool generated)

This is an overloaded function.

Sets the generated flag for the field index to generated.

See also isGenerated().

QSqlRecord.setNull (self, int i)

Sets the value of field index to null. If the field does not exist, nothing happens.

See also isNull() and setValue().

QSqlRecord.setNull (self, QString name)

This is an overloaded function.

Sets the value of the field called name to null. If the field does not exist, nothing happens.

QSqlRecord.setValue (self, int i, QVariant val)

Sets the value of the field at position index to val. If the field does not exist, nothing happens.

See also value() and setNull().

QSqlRecord.setValue (self, QString name, QVariant val)

This is an overloaded function.

Sets the value of the field called name to val. If the field does not exist, nothing happens.

QVariant QSqlRecord.value (self, int i)

Returns the value of the field located at position index in the record. If index is out of bounds, an invalid QVariant is returned.

See also setValue(), fieldName(), and isNull().

QVariant QSqlRecord.value (self, QString name)

This is an overloaded function.

Returns the value of the field called name in the record. If field name does not exist an invalid variant is returned.

See also indexOf().

bool QSqlRecord.__eq__ (self, QSqlRecord other)

QSqlRecord.__len__ (self)

bool QSqlRecord.__ne__ (self, QSqlRecord other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlrelation.html0000644000076500000240000001172512536324522021073 0ustar philstaff00000000000000 QSqlRelation Class Reference
  Home · All Classes · Modules

QSqlRelation Class Reference
[QtSql module]

The QSqlRelation class stores information about an SQL foreign key. More...

Methods


Detailed Description

The QSqlRelation class stores information about an SQL foreign key.

QSqlRelation is a helper class for QSqlRelationalTableModel. See QSqlRelationalTableModel.setRelation() and QSqlRelationalTableModel.relation() for details.


Method Documentation

QSqlRelation.__init__ (self)

Constructs an invalid QSqlRelation object.

For such an object, the tableName(), indexColumn(), and displayColumn() functions return an empty string.

See also isValid().

QSqlRelation.__init__ (self, QString aTableName, QString indexCol, QString displayCol)

Constructs a QSqlRelation object, where tableName is the SQL table name to which a foreign key refers, indexColumn is the foreign key, and displayColumn is the field that should be presented to the user.

See also tableName(), indexColumn(), and displayColumn().

QSqlRelation.__init__ (self, QSqlRelation)

QString QSqlRelation.displayColumn (self)

Returns the column from table tableName() that should be presented to the user instead of a foreign key.

QString QSqlRelation.indexColumn (self)

Returns the index column from table tableName() to which a foreign key refers.

bool QSqlRelation.isValid (self)

Returns true if the QSqlRelation object is valid; otherwise returns false.

QString QSqlRelation.tableName (self)

Returns the name of the table to which a foreign key refers.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlrelationaldelegate.html0000644000076500000240000001322212536324522023075 0ustar philstaff00000000000000 QSqlRelationalDelegate Class Reference
  Home · All Classes · Modules

QSqlRelationalDelegate Class Reference
[
QtSql module]

The QSqlRelationalDelegate class provides a delegate that is used to display and edit data from a QSqlRelationalTableModel. More...

Inherits QItemDelegate.

Methods

  • __init__ (self, QObject parent = None)
  • QWidget createEditor (self, QWidget parent, QStyleOptionViewItem option, QModelIndex index)
  • setEditorData (self, QWidget editor, QModelIndex index)
  • setModelData (self, QWidget editor, QAbstractItemModel model, QModelIndex index)

Detailed Description

The QSqlRelationalDelegate class provides a delegate that is used to display and edit data from a QSqlRelationalTableModel.

Unlike the default delegate, QSqlRelationalDelegate provides a combobox for fields that are foreign keys into other tables. To use the class, simply call QAbstractItemView.setItemDelegate() on the view with an instance of QSqlRelationalDelegate:

     QTableView *view = new QTableView;
     view->setModel(model);
     view->setItemDelegate(new QSqlRelationalDelegate(view));

The Relational Table Model example (shown below) illustrates how to use QSqlRelationalDelegate in conjunction with QSqlRelationalTableModel to provide tables with foreign key support.


Method Documentation

QSqlRelationalDelegate.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSqlRelationalDelegate object with the given parent.

QWidget QSqlRelationalDelegate.createEditor (self, QWidget parent, QStyleOptionViewItem option, QModelIndex index)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Reimplemented from QAbstractItemDelegate.createEditor().

QSqlRelationalDelegate.setEditorData (self, QWidget editor, QModelIndex index)

Reimplemented from QAbstractItemDelegate.setEditorData().

QSqlRelationalDelegate.setModelData (self, QWidget editor, QAbstractItemModel model, QModelIndex index)

Reimplemented from QAbstractItemDelegate.setModelData().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlrelationaltablemodel.html0000644000076500000240000004333712536324522023445 0ustar philstaff00000000000000 QSqlRelationalTableModel Class Reference
  Home · All Classes · Modules

QSqlRelationalTableModel Class Reference
[QtSql module]

The QSqlRelationalTableModel class provides an editable data model for a single database table, with foreign key support. More...

Inherits QSqlTableModel.

Types

Methods


Detailed Description

The QSqlRelationalTableModel class provides an editable data model for a single database table, with foreign key support.

QSqlRelationalTableModel acts like QSqlTableModel, but allows columns to be set as foreign keys into other database tables.

The screenshot on the left shows a plain QSqlTableModel in a QTableView. Foreign keys (city and country) aren't resolved to human-readable values. The screenshot on the right shows a QSqlRelationalTableModel, with foreign keys resolved into human-readable text strings.

The following code snippet shows how the QSqlRelationalTableModel was set up:

     model->setTable("employee");

     model->setRelation(2, QSqlRelation("city", "id", "name"));
     model->setRelation(3, QSqlRelation("country", "id", "name"));

The setRelation() function calls establish a relationship between two tables. The first call specifies that column 2 in table employee is a foreign key that maps with field id of table city, and that the view should present the city's name field to the user. The second call does something similar with column 3.

If you use a read-write QSqlRelationalTableModel, you probably want to use QSqlRelationalDelegate on the view. Unlike the default delegate, QSqlRelationalDelegate provides a combobox for fields that are foreign keys into other tables. To use the class, simply call QAbstractItemView.setItemDelegate() on the view with an instance of QSqlRelationalDelegate:

     QTableView *view = new QTableView;
     view->setModel(model);
     view->setItemDelegate(new QSqlRelationalDelegate(view));

The sql/relationaltablemodel example illustrates how to use QSqlRelationalTableModel in conjunction with QSqlRelationalDelegate to provide tables with foreign key support.

Notes:

  • The table must have a primary key declared.
  • The table's primary key may not contain a relation to another table.
  • If a relational table contains keys that refer to non-existent rows in the referenced table, the rows containing the invalid keys will not be exposed through the model. The user or the database is responsible for keeping referential integrity.
  • If a relation's display column name is also used as a column name in the main table, or if it is used as display column name in more than one relation it will be aliased. The alias is is the relation's table name and display column name joined by an underscore (e.g. tablename_columnname). All occurrences of the duplicate display column name are aliased when duplication is detected, but no aliasing is done to the column names in the main table. The aliasing doesn't affect QSqlRelation, so QSqlRelation.displayColumn() will return the original display column name, but QSqlRecord.fieldName() will return aliases.
  • When using setData() the role should always be Qt.EditRole, and when using data() the role should always be Qt.DisplayRole.

Type Documentation

QSqlRelationalTableModel.JoinMode

This enum specifies the type of mode to use when joining two tables.

Constant Value Description
QSqlRelationalTableModel.InnerJoin 0 Inner join mode, return rows when there is at least one match in both tables.
QSqlRelationalTableModel.LeftJoin 1 Left join mode, returns all rows from the left table (table_name1), even if there are no matches in the right table (table_name2).

This enum was introduced or modified in Qt 4.8.

See also QSqlRelationalTableModel.setJoinMode().


Method Documentation

QSqlRelationalTableModel.__init__ (self, QObject parent = None, QSqlDatabase db = QSqlDatabase())

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an empty QSqlRelationalTableModel and sets the parent to parent and the database connection to db. If db is not valid, the default database connection will be used.

QSqlRelationalTableModel.clear (self)

Reimplemented from QSqlQueryModel.clear().

QVariant QSqlRelationalTableModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.data().

See also setData().

bool QSqlRelationalTableModel.insertRowIntoTable (self, QSqlRecord values)

Reimplemented from QSqlTableModel.insertRowIntoTable().

QString QSqlRelationalTableModel.orderByClause (self)

Reimplemented from QSqlTableModel.orderByClause().

QSqlRelation QSqlRelationalTableModel.relation (self, int column)

Returns the relation for the column column, or an invalid relation if no relation is set.

See also setRelation() and QSqlRelation.isValid().

QSqlTableModel QSqlRelationalTableModel.relationModel (self, int column)

Returns a QSqlTableModel object for accessing the table for which column is a foreign key, or 0 if there is no relation for the given column.

The returned object is owned by the QSqlRelationalTableModel.

See also setRelation() and relation().

bool QSqlRelationalTableModel.removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeColumns().

QSqlRelationalTableModel.revertRow (self, int row)

Reimplemented from QSqlTableModel.revertRow().

bool QSqlRelationalTableModel.select (self)

Reimplemented from QSqlTableModel.select().

QString QSqlRelationalTableModel.selectStatement (self)

Reimplemented from QSqlTableModel.selectStatement().

bool QSqlRelationalTableModel.setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setData().

Sets the data for the role in the item with the specified index to the value given. Depending on the edit strategy, the value might be applied to the database at once, or it may be cached in the model.

Returns true if the value could be set, or false on error (for example, if index is out of bounds).

For relational columns, value must be the index, not the display value. The index must also exist in the referenced table, otherwise the function returns false.

See also editStrategy(), data(), submit(), and revertRow().

QSqlRelationalTableModel.setJoinMode (self, JoinMode joinMode)

Sets the SQL join mode to the value given by joinMode to show or hide rows with NULL foreign keys.

In InnerJoin mode (the default) these rows will not be shown; use the LeftJoin mode if you want to show them.

This function was introduced in Qt 4.8.

See also QSqlRelationalTableModel.JoinMode.

QSqlRelationalTableModel.setRelation (self, int column, QSqlRelation relation)

Lets the specified column be a foreign index specified by relation.

Example:

     model->setTable("employee");

     model->setRelation(2, QSqlRelation("city", "id", "name"));

The setRelation() call specifies that column 2 in table employee is a foreign key that maps with field id of table city, and that the view should present the city's name field to the user.

Note: The table's primary key may not contain a relation to another table.

See also relation().

QSqlRelationalTableModel.setTable (self, QString tableName)

Reimplemented from QSqlTableModel.setTable().

bool QSqlRelationalTableModel.updateRowInTable (self, int row, QSqlRecord values)

Reimplemented from QSqlTableModel.updateRowInTable().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqlresult.html0000644000076500000240000007353312536324522020601 0ustar philstaff00000000000000 QSqlResult Class Reference
  Home · All Classes · Modules

QSqlResult Class Reference
[QtSql module]

The QSqlResult class provides an abstract interface for accessing data from specific SQL databases. More...

Types

Methods


Detailed Description

The QSqlResult class provides an abstract interface for accessing data from specific SQL databases.

Normally, you would use QSqlQuery instead of QSqlResult, since QSqlQuery provides a generic wrapper for database-specific implementations of QSqlResult.

If you are implementing your own SQL driver (by subclassing QSqlDriver), you will need to provide your own QSqlResult subclass that implements all the pure virtual functions and other virtual functions that you need.


Type Documentation

QSqlResult.BindingSyntax

This enum type specifies the different syntaxes for specifying placeholders in prepared queries.

Constant Value Description
QSqlResult.PositionalBinding 0 Use the ODBC-style positional syntax, with "?" as placeholders.
QSqlResult.NamedBinding 1 Use the Oracle-style syntax with named placeholders (e.g., ":id")

See also bindingSyntax().


Method Documentation

QSqlResult.__init__ (self, QSqlDriver db)

Creates a QSqlResult using database driver db. The object is initialized to an inactive state.

See also isActive() and driver().

QSqlResult.addBindValue (self, QVariant val, QSql.ParamType type)

Binds the value val of parameter type paramType to the next available position in the current record (row).

See also bindValue().

int QSqlResult.at (self)

Returns the current (zero-based) row position of the result. May return the special values QSql.BeforeFirstRow or QSql.AfterLastRow.

See also setAt() and isValid().

BindingSyntax QSqlResult.bindingSyntax (self)

Returns the binding syntax used by prepared queries.

QSqlResult.bindValue (self, int pos, QVariant val, QSql.ParamType type)

Binds the value val of parameter type paramType to position index in the current record (row).

See also addBindValue().

QSqlResult.bindValue (self, QString placeholder, QVariant val, QSql.ParamType type)

This is an overloaded function.

Binds the value val of parameter type paramType to the placeholder name in the current record (row).

Values cannot be bound to multiple locations in the query, eg:

 INSERT INTO testtable (id, name, samename) VALUES (:id, :name, :name)

Binding to name will bind to the first :name, but not the second.

Note: Binding an undefined placeholder will result in undefined behavior.

See also QSqlQuery.bindValue().

QSql.ParamType QSqlResult.bindValueType (self, QString placeholder)

Returns the parameter type for the value bound at position index.

See also boundValue().

QSql.ParamType QSqlResult.bindValueType (self, int pos)

This is an overloaded function.

Returns the parameter type for the value bound with the given placeholder name.

QVariant QSqlResult.boundValue (self, QString placeholder)

Returns the value bound at position index in the current record (row).

See also bindValue() and boundValues().

QVariant QSqlResult.boundValue (self, int pos)

This is an overloaded function.

Returns the value bound by the given placeholder name in the current record (row).

See also bindValueType().

int QSqlResult.boundValueCount (self)

Returns the number of bound values in the result.

See also boundValues().

QString QSqlResult.boundValueName (self, int pos)

Returns the name of the bound value at position index in the current record (row).

See also boundValue().

list-of-QVariant QSqlResult.boundValues (self)

Returns a vector of the result's bound values for the current record (row).

See also boundValueCount().

QSqlResult.clear (self)

Clears the entire result set and releases any associated resources.

QVariant QSqlResult.data (self, int i)

This method is abstract and should be reimplemented in any sub-class.

Returns the data for field index in the current row as a QVariant. This function is only called if the result is in an active state and is positioned on a valid record and index is non-negative. Derived classes must reimplement this function and return the value of field index, or QVariant() if it cannot be determined.

QSqlDriver QSqlResult.driver (self)

Returns the driver associated with the result. This is the object that was passed to the constructor.

bool QSqlResult.exec_ (self)

Executes the query, returning true if successful; otherwise returns false.

See also prepare().

QString QSqlResult.executedQuery (self)

Returns the query that was actually executed. This may differ from the query that was passed, for example if bound values were used with a prepared query and the underlying database doesn't support prepared queries.

See also exec_() and setQuery().

bool QSqlResult.fetch (self, int i)

This method is abstract and should be reimplemented in any sub-class.

Positions the result to an arbitrary (zero-based) row index.

This function is only called if the result is in an active state. Derived classes must reimplement this function and position the result to the row index, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.

See also isActive(), fetchFirst(), fetchLast(), fetchNext(), and fetchPrevious().

bool QSqlResult.fetchFirst (self)

This method is abstract and should be reimplemented in any sub-class.

Positions the result to the first record (row 0) in the result.

This function is only called if the result is in an active state. Derived classes must reimplement this function and position the result to the first record, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.

See also fetch() and fetchLast().

bool QSqlResult.fetchLast (self)

This method is abstract and should be reimplemented in any sub-class.

Positions the result to the last record (last row) in the result.

This function is only called if the result is in an active state. Derived classes must reimplement this function and position the result to the last record, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.

See also fetch() and fetchFirst().

bool QSqlResult.fetchNext (self)

Positions the result to the next available record (row) in the result.

This function is only called if the result is in an active state. The default implementation calls fetch() with the next index. Derived classes can reimplement this function and position the result to the next record in some other way, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.

See also fetch() and fetchPrevious().

bool QSqlResult.fetchPrevious (self)

Positions the result to the previous record (row) in the result.

This function is only called if the result is in an active state. The default implementation calls fetch() with the previous index. Derived classes can reimplement this function and position the result to the next record in some other way, and call setAt() with an appropriate value. Return true to indicate success, or false to signify failure.

QVariant QSqlResult.handle (self)

Returns the low-level database handle for this result set wrapped in a QVariant or an invalid QVariant if there is no handle.

Warning: Use this with uttermost care and only if you know what you're doing.

Warning: The handle returned here can become a stale pointer if the result is modified (for example, if you clear it).

Warning: The handle can be NULL if the result was not executed yet.

The handle returned here is database-dependent, you should query the type name of the variant before accessing it.

This example retrieves the handle for a sqlite result:

 QSqlQuery query = ...
 QVariant v = query.result()->handle();
 if (v.isValid() && qstrcmp(v.typeName(), "sqlite3_stmt*")) {
     // v.data() returns a pointer to the handle
     sqlite3_stmt *handle = *static_cast<sqlite3_stmt **>(v.data());
     if (handle != 0) { // check that it is not NULL
         ...
     }
 }

This snippet returns the handle for PostgreSQL or MySQL:

 if (v.typeName() == "PGresult*") {
     PGresult *handle = *static_cast<PGresult **>(v.data());
     if (handle != 0) ...
 }

 if (v.typeName() == "MYSQL_STMT*") {
     MYSQL_STMT *handle = *static_cast<MYSQL_STMT **>(v.data());
     if (handle != 0) ...
 }

See also QSqlDriver.handle().

bool QSqlResult.hasOutValues (self)

Returns true if at least one of the query's bound values is a QSql.Out or a QSql.InOut; otherwise returns false.

See also bindValueType().

bool QSqlResult.isActive (self)

Returns true if the result has records to be retrieved; otherwise returns false.

bool QSqlResult.isForwardOnly (self)

Returns true if you can only scroll forward through the result set; otherwise returns false.

See also setForwardOnly().

bool QSqlResult.isNull (self, int i)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the field at position index in the current row is null; otherwise returns false.

bool QSqlResult.isSelect (self)

Returns true if the current result is from a SELECT statement; otherwise returns false.

See also setSelect().

bool QSqlResult.isValid (self)

Returns true if the result is positioned on a valid record (that is, the result is not positioned before the first or after the last record); otherwise returns false.

See also at().

QSqlError QSqlResult.lastError (self)

Returns the last error associated with the result.

See also setLastError().

QVariant QSqlResult.lastInsertId (self)

Returns the object ID of the most recent inserted row if the database supports it. An invalid QVariant will be returned if the query did not insert any value or if the database does not report the id back. If more than one row was touched by the insert, the behavior is undefined.

Note that for Oracle databases the row's ROWID will be returned, while for MySQL databases the row's auto-increment field will be returned.

See also QSqlDriver.hasFeature().

QString QSqlResult.lastQuery (self)

Returns the current SQL query text, or an empty string if there isn't one.

See also setQuery().

int QSqlResult.numRowsAffected (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the number of rows affected by the last query executed, or -1 if it cannot be determined or if the query is a SELECT statement.

See also size().

bool QSqlResult.prepare (self, QString query)

Prepares the given query for execution; the query will normally use placeholders so that it can be executed repeatedly. Returns true if the query is prepared successfully; otherwise returns false.

See also exec_().

QSqlRecord QSqlResult.record (self)

Returns the current record if the query is active; otherwise returns an empty QSqlRecord.

The default implementation always returns an empty QSqlRecord.

See also isActive().

bool QSqlResult.reset (self, QString sqlquery)

This method is abstract and should be reimplemented in any sub-class.

Sets the result to use the SQL statement query for subsequent data retrieval.

Derived classes must reimplement this function and apply the query to the database. This function is only called after the result is set to an inactive state and is positioned before the first record of the new result. Derived classes should return true if the query was successful and ready to be used, or false otherwise.

See also setQuery().

bool QSqlResult.savePrepare (self, QString sqlquery)

Prepares the given query, using the underlying database functionality where possible. Returns true if the query is prepared successfully; otherwise returns false.

See also prepare().

QSqlResult.setActive (self, bool a)

This function is provided for derived classes to set the internal active state to active.

See also isActive().

QSqlResult.setAt (self, int at)

This function is provided for derived classes to set the internal (zero-based) row position to index.

See also at().

QSqlResult.setForwardOnly (self, bool forward)

Sets forward only mode to forward. If forward is true, only fetchNext() is allowed for navigating the results. Forward only mode needs much less memory since results do not have to be cached. By default, this feature is disabled.

Setting forward only to false is a suggestion to the database engine, which has the final say on whether a result set is forward only or scrollable. isForwardOnly() will always return the correct status of the result set.

Note: Calling setForwardOnly after execution of the query will result in unexpected results at best, and crashes at worst.

See also isForwardOnly(), fetchNext(), and QSqlQuery.setForwardOnly().

QSqlResult.setLastError (self, QSqlError e)

This function is provided for derived classes to set the last error to error.

See also lastError().

QSqlResult.setQuery (self, QString query)

Sets the current query for the result to query. You must call reset() to execute the query on the database.

See also reset() and lastQuery().

QSqlResult.setSelect (self, bool s)

This function is provided for derived classes to indicate whether or not the current statement is a SQL SELECT statement. The select parameter should be true if the statement is a SELECT statement; otherwise it should be false.

See also isSelect().

int QSqlResult.size (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the size of the SELECT result, or -1 if it cannot be determined or if the query is not a SELECT statement.

See also numRowsAffected().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsqltablemodel.html0000644000076500000240000011136412536324522021366 0ustar philstaff00000000000000 QSqlTableModel Class Reference
  Home · All Classes · Modules

QSqlTableModel Class Reference
[QtSql module]

The QSqlTableModel class provides an editable data model for a single database table. More...

Inherits QSqlQueryModel.

Inherited by QSqlRelationalTableModel.

Types

  • enum EditStrategy { OnFieldChange, OnRowChange, OnManualSubmit }

Methods

Qt Signals


Detailed Description

The QSqlTableModel class provides an editable data model for a single database table.

QSqlTableModel is a high-level interface for reading and writing database records from a single table. It is build on top of the lower-level QSqlQuery and can be used to provide data to view classes such as QTableView. For example:

     QSqlTableModel *model = new QSqlTableModel(parentObject, database);
     model->setTable("employee");
     model->setEditStrategy(QSqlTableModel.OnManualSubmit);
     model->select();
     model->setHeaderData(0, Qt.Horizontal, tr("Name"));
     model->setHeaderData(1, Qt.Horizontal, tr("Salary"));

     QTableView *view = new QTableView;
     view->setModel(model);
     view->hideColumn(0); // don't show the ID
     view->show();

We set the SQL table's name and the edit strategy, then we set up the labels displayed in the view header. The edit strategy dictates when the changes done by the user in the view are actually applied to the database. The possible values are OnFieldChange, OnRowChange, and OnManualSubmit.

QSqlTableModel can also be used to access a database programmatically, without binding it to a view:

     QSqlQueryModel model;
     model.setQuery("SELECT * FROM employee");
     int salary = model.record(4).value("salary").toInt();

The code snippet above extracts the salary field from record 4 in the result set of the query SELECT * from employee.

It is possible to set filters using setFilter(), or modify the sort order using setSort(). At the end, you must call select() to populate the model with data.

The sql/tablemodel example illustrates how to use QSqlTableModel as the data source for a QTableView.

QSqlTableModel provides no direct support for foreign keys. Use the QSqlRelationalTableModel and QSqlRelationalDelegate if you want to resolve foreign keys.


Type Documentation

QSqlTableModel.EditStrategy

This enum type describes which strategy to choose when editing values in the database.

Constant Value Description
QSqlTableModel.OnFieldChange 0 All changes to the model will be applied immediately to the database.
QSqlTableModel.OnRowChange 1 Changes to a row will be applied when the user selects a different row.
QSqlTableModel.OnManualSubmit 2 All changes will be cached in the model until either submitAll() or revertAll() is called.

Note: To prevent inserting only partly initialized rows into the database, OnFieldChange will behave like OnRowChange for newly inserted rows.

See also setEditStrategy().


Method Documentation

QSqlTableModel.__init__ (self, QObject parent = None, QSqlDatabase db = QSqlDatabase())

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an empty QSqlTableModel and sets the parent to parent and the database connection to db. If db is not valid, the default database connection will be used.

The default edit strategy is OnRowChange.

QSqlTableModel.clear (self)

Reimplemented from QSqlQueryModel.clear().

QVariant QSqlTableModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.data().

See also setData().

QSqlDatabase QSqlTableModel.database (self)

Returns a pointer to the used QSqlDatabase or 0 if no database was set.

bool QSqlTableModel.deleteRowFromTable (self, int row)

Deletes the given row from the currently active database table.

This is a low-level method that operates directly on the database and should not be called directly. Use removeRow() or removeRows() to delete values. The model will decide depending on its edit strategy when to modify the database.

Returns true if the row was deleted; otherwise returns false.

See also removeRow() and removeRows().

EditStrategy QSqlTableModel.editStrategy (self)

Returns the current edit strategy.

See also setEditStrategy().

int QSqlTableModel.fieldIndex (self, QString fieldName)

Returns the index of the field fieldName, or -1 if no corresponding field exists in the model.

QString QSqlTableModel.filter (self)

Returns the currently set filter.

See also setFilter() and select().

Qt.ItemFlags QSqlTableModel.flags (self, QModelIndex index)

Reimplemented from QAbstractItemModel.flags().

QVariant QSqlTableModel.headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.headerData().

QModelIndex QSqlTableModel.indexInQuery (self, QModelIndex item)

Returns the index of the value in the database result set for the given item in the model.

The return value is identical to item if no columns or rows have been inserted, removed, or moved around.

Returns an invalid model index if item is out of bounds or if item does not point to a value in the result set.

See also QSqlQueryModel.indexInQuery().

bool QSqlTableModel.insertRecord (self, int row, QSqlRecord record)

Inserts the record after row. If row is negative, the record will be appended to the end. Calls insertRows() and setRecord() internally.

Returns true if the row could be inserted, otherwise false.

See also insertRows() and removeRows().

bool QSqlTableModel.insertRowIntoTable (self, QSqlRecord values)

Inserts the values values into the currently active database table.

This is a low-level method that operates directly on the database and should not be called directly. Use insertRow() and setData() to insert values. The model will decide depending on its edit strategy when to modify the database.

Returns true if the values could be inserted, otherwise false. Error information can be retrieved with lastError().

See also lastError(), insertRow(), and insertRows().

bool QSqlTableModel.insertRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertRows().

Inserts count empty rows at position row. Note that parent must be invalid, since this model does not support parent-child relations.

Only one row at a time can be inserted when using the OnFieldChange or OnRowChange update strategies.

The primeInsert() signal will be emitted for each new row. Connect to it if you want to initialize the new row with default values.

Returns false if the parameters are out of bounds; otherwise returns true.

See also primeInsert() and insertRecord().

bool QSqlTableModel.isDirty (self, QModelIndex index)

Returns true if the value at the index index is dirty, otherwise false. Dirty values are values that were modified in the model but not yet written into the database.

If index is invalid or points to a non-existing row, false is returned.

QString QSqlTableModel.orderByClause (self)

Returns an SQL ORDER BY clause based on the currently set sort order.

See also setSort() and selectStatement().

QSqlIndex QSqlTableModel.primaryKey (self)

Returns the primary key for the current table, or an empty QSqlIndex if the table is not set or has no primary key.

See also setTable(), setPrimaryKey(), and QSqlDatabase.primaryIndex().

bool QSqlTableModel.removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeColumns().

Removes count columns from the parent model, starting at index column.

Returns if the columns were successfully removed; otherwise returns false.

See also removeRows().

bool QSqlTableModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeRows().

Removes count rows starting at row. Since this model does not support hierarchical structures, parent must be an invalid model index.

Emits the beforeDelete() signal before a row is deleted. When the edit strategy is OnManualSubmit signal emission is delayed until submitAll() is called.

Returns true if all rows could be removed; otherwise returns false. Detailed error information can be retrieved using lastError().

See also removeColumns() and insertRows().

QSqlTableModel.revert (self)

This method is also a Qt slot with the C++ signature void revert().

Reimplemented from QAbstractItemModel.revert().

This reimplemented slot is called by the item delegates when the user canceled editing the current row.

Reverts the changes if the model's strategy is set to OnRowChange. Does nothing for the other edit strategies.

Use revertAll() to revert all pending changes for the OnManualSubmit strategy or revertRow() to revert a specific row.

See also submit(), submitAll(), revertRow(), and revertAll().

QSqlTableModel.revertAll (self)

This method is also a Qt slot with the C++ signature void revertAll().

Reverts all pending changes.

See also revert(), revertRow(), and submitAll().

QSqlTableModel.revertRow (self, int row)

Reverts all changes for the specified row.

See also revert(), revertAll(), submit(), and submitAll().

int QSqlTableModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

bool QSqlTableModel.select (self)

Populates the model with data from the table that was set via setTable(), using the specified filter and sort condition, and returns true if successful; otherwise returns false.

Note: Calling select() will revert any unsubmitted changes and remove any inserted columns.

See also setTable(), setFilter(), and selectStatement().

QString QSqlTableModel.selectStatement (self)

Returns the SQL SELECT statement used internally to populate the model. The statement includes the filter and the ORDER BY clause.

See also filter() and orderByClause().

bool QSqlTableModel.setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setData().

Sets the data for the item index for the role role to value. Depending on the edit strategy, the value might be applied to the database at once or cached in the model.

Returns true if the value could be set or false on error, for example if index is out of bounds.

See also editStrategy(), data(), submit(), submitAll(), and revertRow().

QSqlTableModel.setEditStrategy (self, EditStrategy strategy)

Sets the strategy for editing values in the database to strategy.

This will revert any pending changes.

See also editStrategy() and revertAll().

QSqlTableModel.setFilter (self, QString filter)

Sets the current filter to filter.

The filter is a SQL WHERE clause without the keyword WHERE (for example, name='Josephine').

If the model is already populated with data from a database, the model re-selects it with the new filter. Otherwise, the filter will be applied the next time select() is called.

See also filter(), select(), selectStatement(), and orderByClause().

QSqlTableModel.setPrimaryKey (self, QSqlIndex key)

Protected method that allows subclasses to set the primary key to key.

Normally, the primary index is set automatically whenever you call setTable().

See also primaryKey() and QSqlDatabase.primaryIndex().

QSqlTableModel.setQuery (self, QSqlQuery query)

This function simply calls QSqlQueryModel.setQuery(query). You should normally not call it on a QSqlTableModel. Instead, use setTable(), setSort(), setFilter(), etc., to set up the query.

See also selectStatement().

bool QSqlTableModel.setRecord (self, int row, QSqlRecord record)

Sets the values at the specified row to the values of record. Returns true if all the values could be set; otherwise returns false.

See also record().

QSqlTableModel.setSort (self, int column, Qt.SortOrder order)

Sets the sort order for column to order. This does not affect the current data, to refresh the data using the new sort order, call select().

See also sort(), select(), and orderByClause().

QSqlTableModel.setTable (self, QString tableName)

Sets the database table on which the model operates to tableName. Does not select data from the table, but fetches its field information.

To populate the model with the table's data, call select().

Error information can be retrieved with lastError().

See also select(), setFilter(), and lastError().

QSqlTableModel.sort (self, int column, Qt.SortOrder order)

Reimplemented from QAbstractItemModel.sort().

Sorts the data by column with the sort order order. This will immediately select data, use setSort() to set a sort order without populating the model with data.

See also setSort(), select(), and orderByClause().

bool QSqlTableModel.submit (self)

This method is also a Qt slot with the C++ signature bool submit().

Reimplemented from QAbstractItemModel.submit().

This reimplemented slot is called by the item delegates when the user stopped editing the current row.

Submits the currently edited row if the model's strategy is set to OnRowChange or OnFieldChange. Does nothing for the OnManualSubmit strategy.

Use submitAll() to submit all pending changes for the OnManualSubmit strategy.

Returns true on success; otherwise returns false. Use lastError() to query detailed error information.

On success the model will be repopulated. Any views presenting it will lose their selections.

See also revert(), revertRow(), submitAll(), revertAll(), and lastError().

bool QSqlTableModel.submitAll (self)

This method is also a Qt slot with the C++ signature bool submitAll().

Submits all pending changes and returns true on success. Returns false on error, detailed error information can be obtained with lastError().

On success the model will be repopulated. Any views presenting it will lose their selections.

Note: In OnManualSubmit mode, already submitted changes won't be cleared from the cache when submitAll() fails. This allows transactions to be rolled back and resubmitted again without losing data.

See also revertAll() and lastError().

QString QSqlTableModel.tableName (self)

Returns the name of the currently selected table.

bool QSqlTableModel.updateRowInTable (self, int row, QSqlRecord values)

Updates the given row in the currently active database table with the specified values. Returns true if successful; otherwise returns false.

This is a low-level method that operates directly on the database and should not be called directly. Use setData() to update values. The model will decide depending on its edit strategy when to modify the database.

Note that only values that have the generated-flag set are updated. The generated-flag can be set with QSqlRecord.setGenerated() and tested with QSqlRecord.isGenerated().

See also QSqlRecord.isGenerated() and setData().


Qt Signal Documentation

void beforeDelete (int)

This is the default overload of this signal.

This signal is emitted by deleteRowFromTable() before the row is deleted from the currently active database table.

void beforeInsert (QSqlRecord&)

This is the default overload of this signal.

This signal is emitted by insertRowIntoTable() before a new row is inserted into the currently active database table. The values that are about to be inserted are stored in record and can be modified before they will be inserted.

void beforeUpdate (int,QSqlRecord&)

This is the default overload of this signal.

This signal is emitted by updateRowInTable() before the row is updated in the currently active database table with the values from record.

Note that only values that are marked as generated will be updated. The generated flag can be set with QSqlRecord.setGenerated() and checked with QSqlRecord.isGenerated().

See also QSqlRecord.isGenerated().

void primeInsert (int,QSqlRecord&)

This is the default overload of this signal.

This signal is emitted by insertRows(), when an insertion is initiated in the given row of the currently active database table. The record parameter can be written to (since it is a reference), for example to populate some fields with default values.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qssl-ssloptions.html0000644000076500000240000001321512536324520021544 0ustar philstaff00000000000000 QSsl.SslOptions Class Reference
  Home · All Classes · Modules

QSsl.SslOptions Class Reference
[QtNetwork module]

Methods

Special Methods


Detailed Description


Method Documentation

SslOptions.__init__ (self, SslOptions)

SslOptions.__init__ (self, int)

SslOptions.__init__ (self)

SslOptions SslOptions.__and__ (self, int mask)

int SslOptions.__bool__ (self)

bool SslOptions.__eq__ (self, SslOptions f)

SslOptions SslOptions.__iand__ (self, int mask)

int SslOptions.__int__ (self)

SslOptions SslOptions.__invert__ (self)

SslOptions SslOptions.__ior__ (self, SslOptions f)

SslOptions SslOptions.__ixor__ (self, SslOptions f)

bool SslOptions.__ne__ (self, SslOptions f)

SslOptions SslOptions.__or__ (self, SslOptions f)

SslOptions SslOptions.__or__ (self, int f)

SslOptions SslOptions.__xor__ (self, SslOptions f)

SslOptions SslOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qssl.html0000644000076500000240000002366712536324520017345 0ustar philstaff00000000000000 QSsl Class Reference
  Home · All Classes · Modules

QSsl Class Reference
[QtNetwork module]

The QSsl namespace declares enums common to all SSL classes in QtNetwork. More...

Types

  • enum AlternateNameEntryType { EmailEntry, DnsEntry }
  • enum EncodingFormat { Pem, Der }
  • enum KeyAlgorithm { Rsa, Dsa }
  • enum KeyType { PrivateKey, PublicKey }
  • enum SslOption { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, SslOptionDisableLegacyRenegotiation }
  • enum SslProtocol { UnknownProtocol, SslV3, SslV2, TlsV1, ..., SecureProtocols }

Detailed Description

The QSsl namespace declares enums common to all SSL classes in QtNetwork.


Type Documentation

QSsl.AlternateNameEntryType

Describes the key types for alternate name entries in QSslCertificate.

Constant Value Description
QSsl.EmailEntry 0 An email entry; the entry contains an email address that the certificate is valid for.
QSsl.DnsEntry 1 A DNS host name entry; the entry contains a host name entry that the certificate is valid for. The entry may contain wildcards.

See also QSslCertificate.alternateSubjectNames().

QSsl.EncodingFormat

Describes supported encoding formats for certificates and keys.

Constant Value Description
QSsl.Pem 0 The PEM format.
QSsl.Der 1 The DER format.

QSsl.KeyAlgorithm

Describes the different key algorithms supported by QSslKey.

Constant Value Description
QSsl.Rsa 0 The RSA algorithm.
QSsl.Dsa 1 The DSA algorithm.

QSsl.KeyType

Describes the two types of keys QSslKey supports.

Constant Value Description
QSsl.PrivateKey 0 A private key.
QSsl.PublicKey 1 A public key.

QSsl.SslOption

Describes the options that can be used to control the details of SSL behaviour. These options are generally used to turn features off to work around buggy servers.

Constant Value Description
QSsl.SslOptionDisableEmptyFragments 0x01 Disables the insertion of empty fragments into the data when using block ciphers. When enabled, this prevents some attacks (such as the BEAST attack), however it is incompatible with some servers.
QSsl.SslOptionDisableSessionTickets 0x02 Disables the SSL session ticket extension. This can cause slower connection setup, however some servers are not compatible with the extension.
QSsl.SslOptionDisableCompression 0x04 Disables the SSL compression extension. When enabled, this allows the data being passed over SSL to be compressed, however some servers are not compatible with this extension.
QSsl.SslOptionDisableServerNameIndication 0x08 Disables the SSL server name indication extension. When enabled, this tells the server the virtual host being accessed allowing it to respond with the correct certificate.
QSsl.SslOptionDisableLegacyRenegotiation 0x10 Disables the older insecure mechanism for renegotiating the connection parameters. When enabled, this option can allow connections for legacy servers, but it introduces the possibility that an attacker could inject plaintext into the SSL session.

By default, SslOptionDisableEmptyFragments is turned on since this causes problems with a large number of servers. SslOptionDisableLegacyRenegotiation is also turned on, since it introduces a security risk. SslOptionDisableCompression is turned on to prevent the attack publicised by CRIME. The other options are turned off.

Note: Availability of above options depends on the version of the SSL backend in use.

The SslOptions type is a typedef for QFlags<SslOption>. It stores an OR combination of SslOption values.

QSsl.SslProtocol

Describes the protocol of the cipher.

Constant Value Description
QSsl.SslV3 0 SSLv3
QSsl.SslV2 1 SSLv2
QSsl.TlsV1 2 TLSv1
QSsl.UnknownProtocol -1 The cipher's protocol cannot be determined.
QSsl.AnyProtocol 3 The socket understands SSLv2, SSLv3, and TLSv1. This value is used by QSslSocket only.
QSsl.TlsV1SslV3 4 On the client side, this will send a TLS 1.0 Client Hello, enabling TLSv1 and SSLv3 connections. On the server side, this will enable both SSLv3 and TLSv1 connections.
QSsl.SecureProtocols 5 The default option, using protocols known to be secure; currently behaves like TlsV1SslV3.

Note: most servers using SSL understand both versions (2 and 3), but it is recommended to use the latest version only for security reasons. However, SSL and TLS are not compatible with each other: if you get unexpected handshake failures, verify that you chose the correct setting for your protocol.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsslcertificate.html0000644000076500000240000004750312536324520021543 0ustar philstaff00000000000000 QSslCertificate Class Reference
  Home · All Classes · Modules

QSslCertificate Class Reference
[
QtNetwork module]

The QSslCertificate class provides a convenient API for an X509 certificate. More...

Types

  • enum SubjectInfo { Organization, CommonName, LocalityName, OrganizationalUnitName, CountryName, StateOrProvinceName }

Methods

Static Methods

  • list-of-QSslCertificate fromData (QByteArray data, QSsl.EncodingFormat format = QSsl.Pem)
  • list-of-QSslCertificate fromDevice (QIODevice device, QSsl.EncodingFormat format = QSsl.Pem)
  • list-of-QSslCertificate fromPath (QString path, QSsl.EncodingFormat format = QSsl.Pem, QRegExp.PatternSyntax syntax = QRegExp.FixedString)

Special Methods

  • bool __eq__ (self, QSslCertificate other)
  • bool __ne__ (self, QSslCertificate other)

Detailed Description

The QSslCertificate class provides a convenient API for an X509 certificate.

QSslCertificate stores an X509 certificate, and is commonly used to verify the identity and store information about the local host, a remotely connected peer, or a trusted third party Certificate Authority.

There are many ways to construct a QSslCertificate. The most common way is to call QSslSocket.peerCertificate(), which returns a QSslCertificate object, or QSslSocket.peerCertificateChain(), which returns a list of them. You can also load certificates from a DER (binary) or PEM (Base64) encoded bundle, typically stored as one or more local files, or in a Qt Resource.

You can call isNull() to check if your certificate is null. By default, QSslCertificate constructs a null certificate. To check if the certificate is valid, call isValid(). A null certificate is invalid, but an invalid certificate is not necessarily null. If you want to reset all contents in a certificate, call clear().

After loading a certificate, you can find information about the certificate, its subject, and its issuer, by calling one of the many accessor functions, including version(), serialNumber(), issuerInfo() and subjectInfo(). You can call effectiveDate() and expiryDate() to check when the certificate starts being effective and when it expires. The publicKey() function returns the certificate subject's public key as a QSslKey. You can call issuerInfo() or subjectInfo() to get detailed information about the certificate issuer and its subject.

Internally, QSslCertificate is stored as an X509 structure. You can access this handle by calling handle(), but the results are likely to not be portable.


Type Documentation

QSslCertificate.SubjectInfo

Describes keys that you can pass to QSslCertificate.issuerInfo() or QSslCertificate.subjectInfo() to get information about the certificate issuer or subject.

Constant Value Description
QSslCertificate.Organization 0 "O" The name of the organization.
QSslCertificate.CommonName 1 "CN" The common name; most often this is used to store the host name.
QSslCertificate.LocalityName 2 "L" The locality.
QSslCertificate.OrganizationalUnitName 3 "OU" The organizational unit name.
QSslCertificate.CountryName 4 "C" The country.
QSslCertificate.StateOrProvinceName 5 "ST" The state or province.

Method Documentation

QSslCertificate.__init__ (self, QIODevice device, QSsl.EncodingFormat format = QSsl.Pem)

Constructs a QSslCertificate by reading format encoded data from device and using the first certificate found. You can later call isNull() to see if device contained a certificate, and if this certificate was loaded successfully.

QSslCertificate.__init__ (self, QByteArray data = QByteArray(), QSsl.EncodingFormat format = QSsl.Pem)

Constructs a QSslCertificate by parsing the format encoded data and using the first available certificate found. You can later call isNull() to see if data contained a certificate, and if this certificate was loaded successfully.

QSslCertificate.__init__ (self, QSslCertificate other)

Constructs an identical copy of other.

dict-of-QSsl.AlternateNameEntryType-list-of-QString QSslCertificate.alternateSubjectNames (self)

Returns the list of alternative subject names for this certificate. The alternate subject names typically contain host names, optionally with wildcards, that are valid for this certificate.

These names are tested against the connected peer's host name, if either the subject information for CommonName doesn't define a valid host name, or the subject info name doesn't match the peer's host name.

See also subjectInfo().

QSslCertificate.clear (self)

Clears the contents of this certificate, making it a null certificate.

See also isNull().

QByteArray QSslCertificate.digest (self, QCryptographicHash.Algorithm algorithm = QCryptographicHash.Md5)

Returns a cryptographic digest of this certificate. By default, an MD5 digest will be generated, but you can also specify a custom algorithm.

QDateTime QSslCertificate.effectiveDate (self)

Returns the date-time that the certificate becomes valid, or an empty QDateTime if this is a null certificate.

See also expiryDate().

QDateTime QSslCertificate.expiryDate (self)

Returns the date-time that the certificate expires, or an empty QDateTime if this is a null certificate.

See also effectiveDate().

list-of-QSslCertificate QSslCertificate.fromData (QByteArray data, QSsl.EncodingFormat format = QSsl.Pem)

Searches for and parses all certificates in data that are encoded in the specified format and returns them in a list of certificates.

See also fromDevice().

list-of-QSslCertificate QSslCertificate.fromDevice (QIODevice device, QSsl.EncodingFormat format = QSsl.Pem)

Searches for and parses all certificates in device that are encoded in the specified format and returns them in a list of certificates.

See also fromData().

list-of-QSslCertificate QSslCertificate.fromPath (QString path, QSsl.EncodingFormat format = QSsl.Pem, QRegExp.PatternSyntax syntax = QRegExp.FixedString)

Searches all files in the path for certificates encoded in the specified format and returns them in a list. must be a file or a pattern matching one or more files, as specified by syntax.

Example:

 foreach (const QSslCertificate &cert, QSslCertificate.fromPath("C:/ssl/certificate.*.pem", QSsl.Pem,
                                                          QRegExp.Wildcard)) {
     qDebug() << cert.issuerInfo(QSslCertificate.Organization);
 }

See also fromData().

int QSslCertificate.handle (self)

Returns a pointer to the native certificate handle, if there is one, or a null pointer otherwise.

You can use this handle, together with the native API, to access extended information about the certificate.

Warning: Use of this function has a high probability of being non-portable, and its return value may vary from platform to platform or change from minor release to minor release.

bool QSslCertificate.isNull (self)

Returns true if this is a null certificate (i.e., a certificate with no contents); otherwise returns false.

By default, QSslCertificate constructs a null certificate.

See also isValid() and clear().

QString QSslCertificate.issuerInfo (self, SubjectInfo info)

Returns the issuer information for the subject from the certificate, or an empty string if there is no information for subject in the certificate.

See also subjectInfo().

QString QSslCertificate.issuerInfo (self, QByteArray tag)

Returns the issuer information for tag from the certificate, or an empty string if there is no information for tag in the certificate.

See also subjectInfo().

bool QSslCertificate.isValid (self)

Returns true if this certificate is valid; otherwise returns false.

Note: Currently, this function checks that the current data-time is within the date-time range during which the certificate is considered valid, and checks that the certificate is not in a blacklist of fraudulent certificates.

See also isNull().

QSslKey QSslCertificate.publicKey (self)

Returns the certificate subject's public key.

QByteArray QSslCertificate.serialNumber (self)

Returns the certificate's serial number string in decimal format. In case the serial number cannot be converted to decimal format (i.e. if it is bigger than 4294967295, which means it does not fit into 4 bytes), its hexadecimal version is returned.

QString QSslCertificate.subjectInfo (self, SubjectInfo info)

Returns the information for the subject, or an empty string if there is no information for subject in the certificate.

See also issuerInfo().

QString QSslCertificate.subjectInfo (self, QByteArray tag)

Returns the subject information for tag, or an empty string if there is no information for tag in the certificate.

See also issuerInfo().

QByteArray QSslCertificate.toDer (self)

Returns this certificate converted to a DER (binary) encoded representation.

QByteArray QSslCertificate.toPem (self)

Returns this certificate converted to a PEM (Base64) encoded representation.

QByteArray QSslCertificate.version (self)

Returns the certificate's version string.

bool QSslCertificate.__eq__ (self, QSslCertificate other)

bool QSslCertificate.__ne__ (self, QSslCertificate other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsslcipher.html0000644000076500000240000001613312536324520020526 0ustar philstaff00000000000000 QSslCipher Class Reference
  Home · All Classes · Modules

QSslCipher Class Reference
[QtNetwork module]

The QSslCipher class represents an SSL cryptographic cipher. More...

Methods

Special Methods

  • bool __eq__ (self, QSslCipher other)
  • bool __ne__ (self, QSslCipher other)

Detailed Description

The QSslCipher class represents an SSL cryptographic cipher.

QSslCipher stores information about one cryptographic cipher. It is most commonly used with QSslSocket, either for configuring which ciphers the socket can use, or for displaying the socket's ciphers to the user.


Method Documentation

QSslCipher.__init__ (self)

Constructs an empty QSslCipher object.

QSslCipher.__init__ (self, QString name, QSsl.SslProtocol protocol)

Constructs a QSslCipher object for the cipher determined by name and protocol. The constructor accepts only supported ciphers (i.e., the name and protocol must identify a cipher in the list of ciphers returned by QSslSocket.supportedCiphers()).

You can call isNull() after construction to check if name and protocol correctly identified a supported cipher.

QSslCipher.__init__ (self, QSslCipher other)

Constructs an identical copy of the other cipher.

QString QSslCipher.authenticationMethod (self)

Returns the cipher's authentication method as a QString.

QString QSslCipher.encryptionMethod (self)

Returns the cipher's encryption method as a QString.

bool QSslCipher.isNull (self)

Returns true if this is a null cipher; otherwise returns false.

QString QSslCipher.keyExchangeMethod (self)

Returns the cipher's key exchange method as a QString.

QString QSslCipher.name (self)

Returns the name of the cipher, or an empty QString if this is a null cipher.

See also isNull().

QSsl.SslProtocol QSslCipher.protocol (self)

Returns the cipher's protocol type, or QSsl.UnknownProtocol if QSslCipher is unable to determine the protocol (protocolString() may contain more information).

See also protocolString().

QString QSslCipher.protocolString (self)

Returns the cipher's protocol as a QString.

See also protocol().

int QSslCipher.supportedBits (self)

Returns the number of bits supported by the cipher.

See also usedBits().

int QSslCipher.usedBits (self)

Returns the number of bits used by the cipher.

See also supportedBits().

bool QSslCipher.__eq__ (self, QSslCipher other)

bool QSslCipher.__ne__ (self, QSslCipher other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsslconfiguration.html0000644000076500000240000006065712536324520022135 0ustar philstaff00000000000000 QSslConfiguration Class Reference
  Home · All Classes · Modules

QSslConfiguration Class Reference
[QtNetwork module]

The QSslConfiguration class holds the configuration and state of an SSL connection More...

Methods

Static Methods

Special Methods

  • bool __eq__ (self, QSslConfiguration other)
  • bool __ne__ (self, QSslConfiguration other)

Detailed Description

The QSslConfiguration class holds the configuration and state of an SSL connection

QSslConfiguration is used by Qt networking classes to relay information about an open SSL connection and to allow the application to control certain features of that connection.

The settings that QSslConfiguration currently supports are:

  • The SSL/TLS protocol to be used
  • The certificate to be presented to the peer during connection and its associated private key
  • The ciphers allowed to be used for encrypting the connection
  • The list of Certificate Authorities certificates that are used to validate the peer's certificate

These settings are applied only during the connection handshake. Setting them after the connection has been established has no effect.

The state that QSslConfiguration supports are:

  • The certificate the peer presented during handshake, along with the chain leading to a CA certificate
  • The cipher used to encrypt this session

The state can only be obtained once the SSL connection starts, but not necessarily before it's done. Some settings may change during the course of the SSL connection without need to restart it (for instance, the cipher can be changed over time).

State in QSslConfiguration objects cannot be changed.

QSslConfiguration can be used with QSslSocket and the Network Access API.

Note that changing settings in QSslConfiguration is not enough to change the settings in the related SSL connection. You must call setSslConfiguration on a modified QSslConfiguration object to achieve that. The following example illustrates how to change the protocol to TLSv1 in a QSslSocket object:

 QSslConfiguration config = sslSocket.sslConfiguration();
 config.setProtocol(QSsl.TlsV1);
 sslSocket.setSslConfiguration(config);

QSslSocket, QNetworkAccessManager, QSslSocket.sslConfiguration(), QSslSocket.setSslConfiguration()


Method Documentation

QSslConfiguration.__init__ (self)

Constructs an empty SSL configuration. This configuration contains no valid settings and the state will be empty. isNull() will return true after this constructor is called.

Once any setter methods are called, isNull() will return false.

QSslConfiguration.__init__ (self, QSslConfiguration other)

Copies the configuration and state of other. If other is null, this object will be null too.

list-of-QSslCertificate QSslConfiguration.caCertificates (self)

Returns this connection's CA certificate database. The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate. It can be modified prior to the handshake with setCaCertificates(), or with QSslSocket's addCaCertificate() and addCaCertificates().

See also setCaCertificates().

list-of-QSslCipher QSslConfiguration.ciphers (self)

Returns this connection's current cryptographic cipher suite. This list is used during the handshake phase for choosing a session cipher. The returned list of ciphers is ordered by descending preference. (i.e., the first cipher in the list is the most preferred cipher). The session cipher will be the first one in the list that is also supported by the peer.

By default, the handshake phase can choose any of the ciphers supported by this system's SSL libraries, which may vary from system to system. The list of ciphers supported by this system's SSL libraries is returned by QSslSocket.supportedCiphers(). You can restrict the list of ciphers used for choosing the session cipher for this socket by calling setCiphers() with a subset of the supported ciphers. You can revert to using the entire set by calling setCiphers() with the list returned by QSslSocket.supportedCiphers().

See also setCiphers() and QSslSocket.supportedCiphers().

QSslConfiguration QSslConfiguration.defaultConfiguration ()

Returns the default SSL configuration to be used in new SSL connections.

The default SSL configuration consists of:

  • no local certificate and no private key
  • protocol SecureProtocols (meaning either TLS 1.0 or SSL 3 will be used)
  • the system's default CA certificate list
  • the cipher list equal to the list of the SSL libraries' supported SSL ciphers

See also QSslSocket.supportedCiphers() and setDefaultConfiguration().

bool QSslConfiguration.isNull (self)

Returns true if this is a null QSslConfiguration object.

A QSslConfiguration object is null if it has been default-constructed and no setter methods have been called.

See also setProtocol(), setLocalCertificate(), setPrivateKey(), setCiphers(), and setCaCertificates().

QSslCertificate QSslConfiguration.localCertificate (self)

Returns the certificate to be presented to the peer during the SSL handshake process.

See also setLocalCertificate().

QSslCertificate QSslConfiguration.peerCertificate (self)

Returns the peer's digital certificate (i.e., the immediate certificate of the host you are connected to), or a null certificate, if the peer has not assigned a certificate.

The peer certificate is checked automatically during the handshake phase, so this function is normally used to fetch the certificate for display or for connection diagnostic purposes. It contains information about the peer, including its host name, the certificate issuer, and the peer's public key.

Because the peer certificate is set during the handshake phase, it is safe to access the peer certificate from a slot connected to the QSslSocket.sslErrors() signal, QNetworkReply.sslErrors() signal, or the QSslSocket.encrypted() signal.

If a null certificate is returned, it can mean the SSL handshake failed, or it can mean the host you are connected to doesn't have a certificate, or it can mean there is no connection.

If you want to check the peer's complete chain of certificates, use peerCertificateChain() to get them all at once.

See also peerCertificateChain(), QSslSocket.sslErrors(), QSslSocket.ignoreSslErrors(), QNetworkReply.sslErrors(), and QNetworkReply.ignoreSslErrors().

list-of-QSslCertificate QSslConfiguration.peerCertificateChain (self)

Returns the peer's chain of digital certificates, starting with the peer's immediate certificate and ending with the CA's certificate.

Peer certificates are checked automatically during the handshake phase. This function is normally used to fetch certificates for display, or for performing connection diagnostics. Certificates contain information about the peer and the certificate issuers, including host name, issuer names, and issuer public keys.

Because the peer certificate is set during the handshake phase, it is safe to access the peer certificate from a slot connected to the QSslSocket.sslErrors() signal, QNetworkReply.sslErrors() signal, or the QSslSocket.encrypted() signal.

If an empty list is returned, it can mean the SSL handshake failed, or it can mean the host you are connected to doesn't have a certificate, or it can mean there is no connection.

If you want to get only the peer's immediate certificate, use peerCertificate().

See also peerCertificate(), QSslSocket.sslErrors(), QSslSocket.ignoreSslErrors(), QNetworkReply.sslErrors(), and QNetworkReply.ignoreSslErrors().

int QSslConfiguration.peerVerifyDepth (self)

Returns the maximum number of certificates in the peer's certificate chain to be checked during the SSL handshake phase, or 0 (the default) if no maximum depth has been set, indicating that the whole certificate chain should be checked.

The certificates are checked in issuing order, starting with the peer's own certificate, then its issuer's certificate, and so on.

See also setPeerVerifyDepth() and peerVerifyMode().

QSslSocket.PeerVerifyMode QSslConfiguration.peerVerifyMode (self)

Returns the verify mode. This mode decides whether QSslSocket should request a certificate from the peer (i.e., the client requests a certificate from the server, or a server requesting a certificate from the client), and whether it should require that this certificate is valid.

The default mode is AutoVerifyPeer, which tells QSslSocket to use VerifyPeer for clients, QueryPeer for servers.

See also setPeerVerifyMode().

QSslKey QSslConfiguration.privateKey (self)

Returns the SSL key assigned to this connection or a null key if none has been assigned yet.

See also setPrivateKey() and localCertificate().

QSsl.SslProtocol QSslConfiguration.protocol (self)

Returns the protocol setting for this SSL configuration.

See also setProtocol().

QSslCipher QSslConfiguration.sessionCipher (self)

Returns the socket's cryptographic cipher, or a null cipher if the connection isn't encrypted. The socket's cipher for the session is set during the handshake phase. The cipher is used to encrypt and decrypt data transmitted through the socket.

The SSL infrastructure also provides functions for setting the ordered list of ciphers from which the handshake phase will eventually select the session cipher. This ordered list must be in place before the handshake phase begins.

See also ciphers(), setCiphers(), and QSslSocket.supportedCiphers().

QSslConfiguration.setCaCertificates (self, list-of-QSslCertificate certificates)

Sets this socket's CA certificate database to be certificates. The certificate database must be set prior to the SSL handshake. The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate.

See also caCertificates().

QSslConfiguration.setCiphers (self, list-of-QSslCipher ciphers)

Sets the cryptographic cipher suite for this socket to ciphers, which must contain a subset of the ciphers in the list returned by supportedCiphers().

Restricting the cipher suite must be done before the handshake phase, where the session cipher is chosen.

See also ciphers() and QSslSocket.supportedCiphers().

QSslConfiguration.setDefaultConfiguration (QSslConfiguration configuration)

Sets the default SSL configuration to be used in new SSL connections to be configuration. Existing connections are not affected by this call.

See also QSslSocket.supportedCiphers() and defaultConfiguration().

QSslConfiguration.setLocalCertificate (self, QSslCertificate certificate)

Sets the certificate to be presented to the peer during SSL handshake to be certificate.

Setting the certificate once the connection has been established has no effect.

A certificate is the means of identification used in the SSL process. The local certificate is used by the remote end to verify the local user's identity against its list of Certification Authorities. In most cases, such as in HTTP web browsing, only servers identify to the clients, so the client does not send a certificate.

See also localCertificate().

QSslConfiguration.setPeerVerifyDepth (self, int depth)

Sets the maximum number of certificates in the peer's certificate chain to be checked during the SSL handshake phase, to depth. Setting a depth of 0 means that no maximum depth is set, indicating that the whole certificate chain should be checked.

The certificates are checked in issuing order, starting with the peer's own certificate, then its issuer's certificate, and so on.

See also peerVerifyDepth() and setPeerVerifyMode().

QSslConfiguration.setPeerVerifyMode (self, QSslSocket.PeerVerifyMode mode)

Sets the verify mode to mode. This mode decides whether QSslSocket should request a certificate from the peer (i.e., the client requests a certificate from the server, or a server requesting a certificate from the client), and whether it should require that this certificate is valid.

The default mode is AutoVerifyPeer, which tells QSslSocket to use VerifyPeer for clients, QueryPeer for servers.

See also peerVerifyMode().

QSslConfiguration.setPrivateKey (self, QSslKey key)

Sets the connection's private key to key. The private key and the local certificate are used by clients and servers that must prove their identity to SSL peers.

Both the key and the local certificate are required if you are creating an SSL server socket. If you are creating an SSL client socket, the key and local certificate are required if your client must identify itself to an SSL server.

See also privateKey() and setLocalCertificate().

QSslConfiguration.setProtocol (self, QSsl.SslProtocol protocol)

Sets the protocol setting for this configuration to be protocol.

Setting the protocol once the connection has already been established has no effect.

See also protocol().

QSslConfiguration.setSslOption (self, QSsl.SslOption option, bool on)

Enables or disables an SSL compatibility option.

See also testSSlOption().

bool QSslConfiguration.testSslOption (self, QSsl.SslOption option)

Returns true if the specified SSL compatibility option is enabled.

This function was introduced in Qt 4.8.

See also testSSlOption().

bool QSslConfiguration.__eq__ (self, QSslConfiguration other)

bool QSslConfiguration.__ne__ (self, QSslConfiguration other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsslerror.html0000644000076500000240000002151012536324520020400 0ustar philstaff00000000000000 QSslError Class Reference
  Home · All Classes · Modules

QSslError Class Reference
[QtNetwork module]

The QSslError class provides an SSL error. More...

Types

  • enum SslError { UnspecifiedError, NoError, UnableToGetIssuerCertificate, UnableToDecryptCertificateSignature, ..., CertificateBlacklisted }

Methods

Special Methods

  • bool __eq__ (self, QSslError other)
  • bool __ne__ (self, QSslError other)

Detailed Description

The QSslError class provides an SSL error.

QSslError provides a simple API for managing errors during QSslSocket's SSL handshake.


Type Documentation

QSslError.SslError

Describes all recognized errors that can occur during an SSL handshake.

Constant Value
QSslError.NoError 0
QSslError.UnableToGetIssuerCertificate 1
QSslError.UnableToDecryptCertificateSignature 2
QSslError.UnableToDecodeIssuerPublicKey 3
QSslError.CertificateSignatureFailed 4
QSslError.CertificateNotYetValid 5
QSslError.CertificateExpired 6
QSslError.InvalidNotBeforeField 7
QSslError.InvalidNotAfterField 8
QSslError.SelfSignedCertificate 9
QSslError.SelfSignedCertificateInChain 10
QSslError.UnableToGetLocalIssuerCertificate 11
QSslError.UnableToVerifyFirstCertificate 12
QSslError.CertificateRevoked 13
QSslError.InvalidCaCertificate 14
QSslError.PathLengthExceeded 15
QSslError.InvalidPurpose 16
QSslError.CertificateUntrusted 17
QSslError.CertificateRejected 18
QSslError.SubjectIssuerMismatch 19
QSslError.AuthorityIssuerSerialNumberMismatch 20
QSslError.NoPeerCertificate 21
QSslError.HostNameMismatch 22
QSslError.UnspecifiedError -1
QSslError.NoSslSupport 23
QSslError.CertificateBlacklisted 24

See also QSslError.errorString().


Method Documentation

QSslError.__init__ (self)

Constructs a QSslError object with no error and default certificate.

QSslError.__init__ (self, SslError error)

Constructs a QSslError object. The argument specifies the error that occurred.

QSslError.__init__ (self, SslError error, QSslCertificate certificate)

Constructs a QSslError object. The two arguments specify the error that occurred, and which certificate the error relates to.

See also QSslCertificate.

QSslError.__init__ (self, QSslError other)

Constructs an identical copy of other.

QSslCertificate QSslError.certificate (self)

Returns the certificate associated with this error, or a null certificate if the error does not relate to any certificate.

See also error() and errorString().

SslError QSslError.error (self)

Returns the type of the error.

See also errorString() and certificate().

QString QSslError.errorString (self)

Returns a short localized human-readable description of the error.

See also error() and certificate().

bool QSslError.__eq__ (self, QSslError other)

bool QSslError.__ne__ (self, QSslError other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsslkey.html0000644000076500000240000002043212536324520020041 0ustar philstaff00000000000000 QSslKey Class Reference
  Home · All Classes · Modules

QSslKey Class Reference
[QtNetwork module]

The QSslKey class provides an interface for private and public keys. More...

Methods

  • __init__ (self)
  • __init__ (self, QByteArray encoded, QSsl.KeyAlgorithm algorithm, QSsl.EncodingFormat encoding = QSsl.Pem, QSsl.KeyType type = QSsl.PrivateKey, QByteArray passPhrase = QByteArray())
  • __init__ (self, QIODevice device, QSsl.KeyAlgorithm algorithm, QSsl.EncodingFormat encoding = QSsl.Pem, QSsl.KeyType type = QSsl.PrivateKey, QByteArray passPhrase = QByteArray())
  • __init__ (self, QSslKey other)
  • QSsl.KeyAlgorithm algorithm (self)
  • clear (self)
  • int handle (self)
  • bool isNull (self)
  • int length (self)
  • QByteArray toDer (self, QByteArray passPhrase = QByteArray())
  • QByteArray toPem (self, QByteArray passPhrase = QByteArray())
  • QSsl.KeyType type (self)

Special Methods

  • bool __eq__ (self, QSslKey key)
  • bool __ne__ (self, QSslKey key)

Detailed Description

The QSslKey class provides an interface for private and public keys.

QSslKey provides a simple API for managing keys.


Method Documentation

QSslKey.__init__ (self)

Constructs a null key.

See also isNull().

QSslKey.__init__ (self, QByteArray encoded, QSsl.KeyAlgorithm algorithm, QSsl.EncodingFormat encoding = QSsl.Pem, QSsl.KeyType type = QSsl.PrivateKey, QByteArray passPhrase = QByteArray())

Constructs a QSslKey by decoding the string in the byte array encoded using a specified algorithm and encoding format. If the encoded key is encrypted, passPhrase is used to decrypt it. type specifies whether the key is public or private.

After construction, use isNull() to check if encoded contained a valid key.

QSslKey.__init__ (self, QIODevice device, QSsl.KeyAlgorithm algorithm, QSsl.EncodingFormat encoding = QSsl.Pem, QSsl.KeyType type = QSsl.PrivateKey, QByteArray passPhrase = QByteArray())

Constructs a QSslKey by reading and decoding data from a device using a specified algorithm and encoding format. If the encoded key is encrypted, passPhrase is used to decrypt it. type specifies whether the key is public or private.

After construction, use isNull() to check if device provided a valid key.

QSslKey.__init__ (self, QSslKey other)

Constructs an identical copy of other.

QSsl.KeyAlgorithm QSslKey.algorithm (self)

Returns the key algorithm.

QSslKey.clear (self)

Clears the contents of this key, making it a null key.

See also isNull().

int QSslKey.handle (self)

Returns a pointer to the native key handle, if it is available; otherwise a null pointer is returned.

You can use this handle together with the native API to access extended information about the key.

Warning: Use of this function has a high probability of being non-portable, and its return value may vary across platforms, and between minor Qt releases.

bool QSslKey.isNull (self)

Returns true if this is a null key; otherwise false.

See also clear().

int QSslKey.length (self)

Returns the length of the key in bits, or -1 if the key is null.

QByteArray QSslKey.toDer (self, QByteArray passPhrase = QByteArray())

Returns the key in DER encoding. The result is encrypted with passPhrase if the key is a private key and passPhrase is non-empty.

QByteArray QSslKey.toPem (self, QByteArray passPhrase = QByteArray())

Returns the key in PEM encoding. The result is encrypted with passPhrase if the key is a private key and passPhrase is non-empty.

QSsl.KeyType QSslKey.type (self)

Returns the type of the key (i.e., PublicKey or PrivateKey).

bool QSslKey.__eq__ (self, QSslKey key)

bool QSslKey.__ne__ (self, QSslKey key)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsslsocket.html0000644000076500000240000024317012536324520020547 0ustar philstaff00000000000000 QSslSocket Class Reference
  Home · All Classes · Modules

QSslSocket Class Reference
[QtNetwork module]

The QSslSocket class provides an SSL encrypted socket for both clients and servers. More...

Inherits QTcpSocket.

Types

  • enum PeerVerifyMode { VerifyNone, QueryPeer, VerifyPeer, AutoVerifyPeer }
  • enum SslMode { UnencryptedMode, SslClientMode, SslServerMode }

Methods

Static Methods

Qt Signals


Detailed Description

The QSslSocket class provides an SSL encrypted socket for both clients and servers.

QSslSocket establishes a secure, encrypted TCP connection you can use for transmitting encrypted data. It can operate in both client and server mode, and it supports modern SSL protocols, including SSLv3 and TLSv1. By default, QSslSocket uses TLSv1, but you can change the SSL protocol by calling setProtocol() as long as you do it before the handshake has started.

SSL encryption operates on top of the existing TCP stream after the socket enters the ConnectedState. There are two simple ways to establish a secure connection using QSslSocket: With an immediate SSL handshake, or with a delayed SSL handshake occurring after the connection has been established in unencrypted mode.

The most common way to use QSslSocket is to construct an object and start a secure connection by calling connectToHostEncrypted(). This method starts an immediate SSL handshake once the connection has been established.

 QSslSocket *socket = new QSslSocket(this);
 connect(socket, SIGNAL(encrypted()), this, SLOT(ready()));

 socket->connectToHostEncrypted("imap.example.com", 993);

As with a plain QTcpSocket, QSslSocket enters the HostLookupState, ConnectingState, and finally the ConnectedState, if the connection is successful. The handshake then starts automatically, and if it succeeds, the encrypted() signal is emitted to indicate the socket has entered the encrypted state and is ready for use.

Note that data can be written to the socket immediately after the return from connectToHostEncrypted() (i.e., before the encrypted() signal is emitted). The data is queued in QSslSocket until after the encrypted() signal is emitted.

An example of using the delayed SSL handshake to secure an existing connection is the case where an SSL server secures an incoming connection. Suppose you create an SSL server class as a subclass of QTcpServer. You would override QTcpServer.incomingConnection() with something like the example below, which first constructs an instance of QSslSocket and then calls setSocketDescriptor() to set the new socket's descriptor to the existing one passed in. It then initiates the SSL handshake by calling startServerEncryption().

 void SslServer.incomingConnection(int socketDescriptor)
 {
     QSslSocket *serverSocket = new QSslSocket;
     if (serverSocket->setSocketDescriptor(socketDescriptor)) {
         connect(serverSocket, SIGNAL(encrypted()), this, SLOT(ready()));
         serverSocket->startServerEncryption();
     } else {
         delete serverSocket;
     }
 }

If an error occurs, QSslSocket emits the sslErrors() signal. In this case, if no action is taken to ignore the error(s), the connection is dropped. To continue, despite the occurrence of an error, you can call ignoreSslErrors(), either from within this slot after the error occurs, or any time after construction of the QSslSocket and before the connection is attempted. This will allow QSslSocket to ignore the errors it encounters when establishing the identity of the peer. Ignoring errors during an SSL handshake should be used with caution, since a fundamental characteristic of secure connections is that they should be established with a successful handshake.

Once encrypted, you use QSslSocket as a regular QTcpSocket. When readyRead() is emitted, you can call read(), canReadLine() and readLine(), or getChar() to read decrypted data from QSslSocket's internal buffer, and you can call write() or putChar() to write data back to the peer. QSslSocket will automatically encrypt the written data for you, and emit encryptedBytesWritten() once the data has been written to the peer.

As a convenience, QSslSocket supports QTcpSocket's blocking functions waitForConnected(), waitForReadyRead(), waitForBytesWritten(), and waitForDisconnected(). It also provides waitForEncrypted(), which will block the calling thread until an encrypted connection has been established.

 QSslSocket socket;
 socket.connectToHostEncrypted("http.example.com", 443);
 if (!socket.waitForEncrypted()) {
     qDebug() << socket.errorString();
     return false;
 }

 socket.write("GET / HTTP/1.0\r\n\r\n");
 while (socket.waitForReadyRead())
     qDebug() << socket.readAll().data();

QSslSocket provides an extensive, easy-to-use API for handling cryptographic ciphers, private keys, and local, peer, and Certification Authority (CA) certificates. It also provides an API for handling errors that occur during the handshake phase.

The following features can also be customized:

Note: If available, root certificates on Unix (excluding Mac OS X) will be loaded on demand from the standard certificate directories. If you do not want to load root certificates on demand, you need to call either the static function setDefaultCaCertificates() before the first SSL handshake is made in your application, (e.g. via "QSslSocket.setDefaultCaCertificates(QSslSocket.systemCaCertificates());"), or call setCaCertificates() on your QSslSocket instance prior to the SSL handshake.

For more information about ciphers and certificates, refer to QSslCipher and QSslCertificate.

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).

Note: Be aware of the difference between the bytesWritten() signal and the encryptedBytesWritten() signal. For a QTcpSocket, bytesWritten() will get emitted as soon as data has been written to the TCP socket. For a QSslSocket, bytesWritten() will get emitted when the data is being encrypted and encryptedBytesWritten() will get emitted as soon as data has been written to the TCP socket.

Symbian Platform Security Requirements

On Symbian, processes which use this class must have the NetworkServices platform security capability. If the client process lacks this capability, operations will fail.

Platform security capabilities are added via the TARGET.CAPABILITY qmake variable.


Type Documentation

QSslSocket.PeerVerifyMode

Describes the peer verification modes for QSslSocket. The default mode is AutoVerifyPeer, which selects an appropriate mode depending on the socket's QSocket.SslMode.

Constant Value Description
QSslSocket.VerifyNone 0 QSslSocket will not request a certificate from the peer. You can set this mode if you are not interested in the identity of the other side of the connection. The connection will still be encrypted, and your socket will still send its local certificate to the peer if it's requested.
QSslSocket.QueryPeer 1 QSslSocket will request a certificate from the peer, but does not require this certificate to be valid. This is useful when you want to display peer certificate details to the user without affecting the actual SSL handshake. This mode is the default for servers.
QSslSocket.VerifyPeer 2 QSslSocket will request a certificate from the peer during the SSL handshake phase, and requires that this certificate is valid. On failure, QSslSocket will emit the QSslSocket.sslErrors() signal. This mode is the default for clients.
QSslSocket.AutoVerifyPeer 3 QSslSocket will automatically use QueryPeer for server sockets and VerifyPeer for client sockets.

This enum was introduced or modified in Qt 4.4.

See also QSslSocket.peerVerifyMode().

QSslSocket.SslMode

Describes the connection modes available for QSslSocket.

Constant Value Description
QSslSocket.UnencryptedMode 0 The socket is unencrypted. Its behavior is identical to QTcpSocket.
QSslSocket.SslClientMode 1 The socket is a client-side SSL socket. It is either alreayd encrypted, or it is in the SSL handshake phase (see QSslSocket.isEncrypted()).
QSslSocket.SslServerMode 2 The socket is a server-side SSL socket. It is either already encrypted, or it is in the SSL handshake phase (see QSslSocket.isEncrypted()).

Method Documentation

QSslSocket.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSslSocket object. parent is passed to QObject's constructor. The new socket's cipher suite is set to the one returned by the static method defaultCiphers().

QSslSocket.abort (self)

Aborts the current connection and resets the socket. Unlike disconnectFromHost(), this function immediately closes the socket, clearing any pending data in the write buffer.

See also disconnectFromHost() and close().

QSslSocket.addCaCertificate (self, QSslCertificate certificate)

Adds the certificate to this socket's CA certificate database. The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate.

To add multiple certificates, use addCaCertificates().

See also caCertificates() and setCaCertificates().

bool QSslSocket.addCaCertificates (self, QString path, QSsl.EncodingFormat format = QSsl.Pem, QRegExp.PatternSyntax syntax = QRegExp.FixedString)

Searches all files in the path for certificates encoded in the specified format and adds them to this socket's CA certificate database. path can be explicit, or it can contain wildcards in the format specified by syntax. Returns true if one or more certificates are added to the socket's CA certificate database; otherwise returns false.

The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate.

For more precise control, use addCaCertificate().

See also addCaCertificate() and QSslCertificate.fromPath().

QSslSocket.addCaCertificates (self, list-of-QSslCertificate certificates)

Adds the certificates to this socket's CA certificate database. The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate.

For more precise control, use addCaCertificate().

See also caCertificates() and addDefaultCaCertificate().

QSslSocket.addDefaultCaCertificate (QSslCertificate certificate)

Adds certificate to the default CA certificate database. Each SSL socket's CA certificate database is initialized to the default CA certificate database.

See also defaultCaCertificates() and addCaCertificates().

bool QSslSocket.addDefaultCaCertificates (QString path, QSsl.EncodingFormat format = QSsl.Pem, QRegExp.PatternSyntax syntax = QRegExp.FixedString)

Searches all files in the path for certificates with the specified encoding and adds them to the default CA certificate database. path can be an explicit file, or it can contain wildcards in the format specified by syntax. Returns true if any CA certificates are added to the default database.

Each SSL socket's CA certificate database is initialized to the default CA certificate database.

See also defaultCaCertificates(), addCaCertificates(), and addDefaultCaCertificate().

QSslSocket.addDefaultCaCertificates (list-of-QSslCertificate certificates)

Adds certificates to the default CA certificate database. Each SSL socket's CA certificate database is initialized to the default CA certificate database.

See also defaultCaCertificates() and addCaCertificates().

bool QSslSocket.atEnd (self)

Reimplemented from QIODevice.atEnd().

int QSslSocket.bytesAvailable (self)

Reimplemented from QIODevice.bytesAvailable().

Returns the number of decrypted bytes that are immediately available for reading.

int QSslSocket.bytesToWrite (self)

Reimplemented from QIODevice.bytesToWrite().

Returns the number of unencrypted bytes that are waiting to be encrypted and written to the network.

list-of-QSslCertificate QSslSocket.caCertificates (self)

Returns this socket's CA certificate database. The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate. It can be moodified prior to the handshake with addCaCertificate(), addCaCertificates(), and setCaCertificates().

Note: On Unix, this method may return an empty list if the root certificates are loaded on demand.

See also addCaCertificate(), addCaCertificates(), and setCaCertificates().

bool QSslSocket.canReadLine (self)

Reimplemented from QIODevice.canReadLine().

Returns true if you can read one while line (terminated by a single ASCII '\n' character) of decrypted characters; otherwise, false is returned.

list-of-QSslCipher QSslSocket.ciphers (self)

Returns this socket's current cryptographic cipher suite. This list is used during the socket's handshake phase for choosing a session cipher. The returned list of ciphers is ordered by descending preference. (i.e., the first cipher in the list is the most preferred cipher). The session cipher will be the first one in the list that is also supported by the peer.

By default, the handshake phase can choose any of the ciphers supported by this system's SSL libraries, which may vary from system to system. The list of ciphers supported by this system's SSL libraries is returned by supportedCiphers(). You can restrict the list of ciphers used for choosing the session cipher for this socket by calling setCiphers() with a subset of the supported ciphers. You can revert to using the entire set by calling setCiphers() with the list returned by supportedCiphers().

You can restrict the list of ciphers used for choosing the session cipher for all sockets by calling setDefaultCiphers() with a subset of the supported ciphers. You can revert to using the entire set by calling setCiphers() with the list returned by supportedCiphers().

See also setCiphers(), defaultCiphers(), setDefaultCiphers(), and supportedCiphers().

QSslSocket.close (self)

Reimplemented from QIODevice.close().

QSslSocket.connectToHostEncrypted (self, QString hostName, int port, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Starts an encrypted connection to the device hostName on port, using mode as the OpenMode. This is equivalent to calling connectToHost() to establish the connection, followed by a call to startClientEncryption().

QSslSocket first enters the HostLookupState. Then, after entering either the event loop or one of the waitFor...() functions, it enters the ConnectingState, emits connected(), and then initiates the SSL client handshake. At each state change, QSslSocket emits signal stateChanged().

After initiating the SSL client handshake, if the identity of the peer can't be established, signal sslErrors() is emitted. If you want to ignore the errors and continue connecting, you must call ignoreSslErrors(), either from inside a slot function connected to the sslErrors() signal, or prior to entering encrypted mode. If ignoreSslErrors() is not called, the connection is dropped, signal disconnected() is emitted, and QSslSocket returns to the UnconnectedState.

If the SSL handshake is successful, QSslSocket emits encrypted().

 QSslSocket socket;
 connect(&socket, SIGNAL(encrypted()), receiver, SLOT(socketEncrypted()));

 socket.connectToHostEncrypted("imap", 993);
 socket->write("1 CAPABILITY\r\n");

Note: The example above shows that text can be written to the socket immediately after requesting the encrypted connection, before the encrypted() signal has been emitted. In such cases, the text is queued in the object and written to the socket after the connection is established and the encrypted() signal has been emitted.

The default for mode is ReadWrite.

If you want to create a QSslSocket on the server side of a connection, you should instead call startServerEncryption() upon receiving the incoming connection through QTcpServer.

See also connectToHost(), startClientEncryption(), waitForConnected(), and waitForEncrypted().

QSslSocket.connectToHostEncrypted (self, QString hostName, int port, QString sslPeerName, QIODevice.OpenMode mode = QIODevice.ReadWrite)

This is an overloaded function.

In addition to the original behaviour of connectToHostEncrypted, this overloaded method enables the usage of a different hostname (sslPeerName) for the certificate validation instead of the one used for the TCP connection (hostName).

This function was introduced in Qt 4.6.

See also connectToHostEncrypted().

QSslSocket.connectToHostImplementation (self, QString hostName, int port, QIODevice.OpenMode openMode)

This method is also a Qt slot with the C++ signature void connectToHostImplementation(const QString&,quint16,QIODevice::OpenMode).

list-of-QSslCertificate QSslSocket.defaultCaCertificates ()

Returns the current default CA certificate database. This database is originally set to your system's default CA certificate database. If no system default database is found, an empty database will be returned. You can override the default CA certificate database with your own CA certificate database using setDefaultCaCertificates().

Each SSL socket's CA certificate database is initialized to the default CA certificate database.

Note: On Unix, this method may return an empty list if the root certificates are loaded on demand.

See also setDefaultCaCertificates() and caCertificates().

list-of-QSslCipher QSslSocket.defaultCiphers ()

Returns the default cryptographic cipher suite for all sockets in this application. This list is used during the socket's handshake phase when negotiating with the peer to choose a session cipher. The list is ordered by preference (i.e., the first cipher in the list is the most preferred cipher).

By default, the handshake phase can choose any of the ciphers supported by this system's SSL libraries, which may vary from system to system. The list of ciphers supported by this system's SSL libraries is returned by supportedCiphers().

See also setDefaultCiphers() and supportedCiphers().

QSslSocket.disconnectFromHostImplementation (self)

This method is also a Qt slot with the C++ signature void disconnectFromHostImplementation().

int QSslSocket.encryptedBytesAvailable (self)

Returns the number of encrypted bytes that are awaiting decryption. Normally, this function will return 0 because QSslSocket decrypts its incoming data as soon as it can.

This function was introduced in Qt 4.4.

int QSslSocket.encryptedBytesToWrite (self)

Returns the number of encrypted bytes that are waiting to be written to the network.

This function was introduced in Qt 4.4.

bool QSslSocket.flush (self)

This function writes as much as possible from the internal write buffer to the underlying network socket, without blocking. If any data was written, this function returns true; otherwise false is returned.

Call this function if you need QSslSocket to start sending buffered data immediately. The number of bytes successfully written depends on the operating system. In most cases, you do not need to call this function, because QAbstractSocket will start sending data automatically once control goes back to the event loop. In the absence of an event loop, call waitForBytesWritten() instead.

See also write() and waitForBytesWritten().

QSslSocket.ignoreSslErrors (self)

This method is also a Qt slot with the C++ signature void ignoreSslErrors().

This slot tells QSslSocket to ignore errors during QSslSocket's handshake phase and continue connecting. If you want to continue with the connection even if errors occur during the handshake phase, then you must call this slot, either from a slot connected to sslErrors(), or before the handshake phase. If you don't call this slot, either in response to errors or before the handshake, the connection will be dropped after the sslErrors() signal has been emitted.

If there are no errors during the SSL handshake phase (i.e., the identity of the peer is established with no problems), QSslSocket will not emit the sslErrors() signal, and it is unnecessary to call this function.

Warning: Be sure to always let the user inspect the errors reported by the sslErrors() signal, and only call this method upon confirmation from the user that proceeding is ok. If there are unexpected errors, the connection should be aborted. Calling this method without inspecting the actual errors will most likely pose a security risk for your application. Use it with great care!

See also sslErrors().

QSslSocket.ignoreSslErrors (self, list-of-QSslError errors)

This is an overloaded function.

This method tells QSslSocket to ignore only the errors given in errors.

Note: Because most SSL errors are associated with a certificate, for most of them you must set the expected certificate this SSL error is related to. If, for instance, you want to connect to a server that uses a self-signed certificate, consider the following snippet:

 QList<QSslCertificate> cert = QSslCertificate.fromPath(QLatin1String("server-certificate.pem"));
 QSslError error(QSslError.SelfSignedCertificate, cert.at(0));
 QList<QSslError> expectedSslErrors;
 expectedSslErrors.append(error);

 QSslSocket socket;
 socket.ignoreSslErrors(expectedSslErrors);
 socket.connectToHostEncrypted("server.tld", 443);

Multiple calls to this function will replace the list of errors that were passed in previous calls. You can clear the list of errors you want to ignore by calling this function with an empty list.

This function was introduced in Qt 4.6.

See also sslErrors().

bool QSslSocket.isEncrypted (self)

Returns true if the socket is encrypted; otherwise, false is returned.

An encrypted socket encrypts all data that is written by calling write() or putChar() before the data is written to the network, and decrypts all incoming data as the data is received from the network, before you call read(), readLine() or getChar().

QSslSocket emits encrypted() when it enters encrypted mode.

You can call sessionCipher() to find which cryptographic cipher is used to encrypt and decrypt your data.

See also mode().

QSslCertificate QSslSocket.localCertificate (self)

Returns the socket's local certificate, or an empty certificate if no local certificate has been assigned.

See also setLocalCertificate() and privateKey().

SslMode QSslSocket.mode (self)

Returns the current mode for the socket; either UnencryptedMode, where QSslSocket behaves identially to QTcpSocket, or one of SslClientMode or SslServerMode, where the client is either negotiating or in encrypted mode.

When the mode changes, QSslSocket emits modeChanged()

See also SslMode.

QSslCertificate QSslSocket.peerCertificate (self)

Returns the peer's digital certificate (i.e., the immediate certificate of the host you are connected to), or a null certificate, if the peer has not assigned a certificate.

The peer certificate is checked automatically during the handshake phase, so this function is normally used to fetch the certificate for display or for connection diagnostic purposes. It contains information about the peer, including its host name, the certificate issuer, and the peer's public key.

Because the peer certificate is set during the handshake phase, it is safe to access the peer certificate from a slot connected to the sslErrors() signal or the encrypted() signal.

If a null certificate is returned, it can mean the SSL handshake failed, or it can mean the host you are connected to doesn't have a certificate, or it can mean there is no connection.

If you want to check the peer's complete chain of certificates, use peerCertificateChain() to get them all at once.

See also peerCertificateChain().

list-of-QSslCertificate QSslSocket.peerCertificateChain (self)

Returns the peer's chain of digital certificates, or an empty list of certificates.

Peer certificates are checked automatically during the handshake phase. This function is normally used to fetch certificates for display, or for performing connection diagnostics. Certificates contain information about the peer and the certificate issuers, including host name, issuer names, and issuer public keys.

The peer certificates are set in QSslSocket during the handshake phase, so it is safe to call this function from a slot connected to the sslErrors() signal or the encrypted() signal.

If an empty list is returned, it can mean the SSL handshake failed, or it can mean the host you are connected to doesn't have a certificate, or it can mean there is no connection.

If you want to get only the peer's immediate certificate, use peerCertificate().

See also peerCertificate().

int QSslSocket.peerVerifyDepth (self)

Returns the maximum number of certificates in the peer's certificate chain to be checked during the SSL handshake phase, or 0 (the default) if no maximum depth has been set, indicating that the whole certificate chain should be checked.

The certificates are checked in issuing order, starting with the peer's own certificate, then its issuer's certificate, and so on.

This function was introduced in Qt 4.4.

See also setPeerVerifyDepth() and peerVerifyMode().

PeerVerifyMode QSslSocket.peerVerifyMode (self)

Returns the socket's verify mode. This mode mode decides whether QSslSocket should request a certificate from the peer (i.e., the client requests a certificate from the server, or a server requesting a certificate from the client), and whether it should require that this certificate is valid.

The default mode is AutoVerifyPeer, which tells QSslSocket to use VerifyPeer for clients and QueryPeer for servers.

This function was introduced in Qt 4.4.

See also setPeerVerifyMode(), peerVerifyDepth(), and mode().

QString QSslSocket.peerVerifyName (self)

Returns the different hostname for the certificate validation, as set by setPeerVerifyName or by connectToHostEncrypted.

This function was introduced in Qt 4.8.

See also setPeerVerifyName() and connectToHostEncrypted().

QSslKey QSslSocket.privateKey (self)

Returns this socket's private key.

See also setPrivateKey() and localCertificate().

QSsl.SslProtocol QSslSocket.protocol (self)

Returns the socket's SSL protocol. By default, QSsl.SecureProtocols is used.

See also setProtocol().

str QSslSocket.readData (self, int maxlen)

Reimplemented from QIODevice.readData().

QSslCipher QSslSocket.sessionCipher (self)

Returns the socket's cryptographic cipher, or a null cipher if the connection isn't encrypted. The socket's cipher for the session is set during the handshake phase. The cipher is used to encrypt and decrypt data transmitted through the socket.

QSslSocket also provides functions for setting the ordered list of ciphers from which the handshake phase will eventually select the session cipher. This ordered list must be in place before the handshake phase begins.

See also ciphers(), setCiphers(), setDefaultCiphers(), defaultCiphers(), and supportedCiphers().

QSslSocket.setCaCertificates (self, list-of-QSslCertificate certificates)

Sets this socket's CA certificate database to be certificates. The certificate database must be set prior to the SSL handshake. The CA certificate database is used by the socket during the handshake phase to validate the peer's certificate.

The CA certificate database can be reset to the current default CA certificate database by calling this function with the list of CA certificates returned by defaultCaCertificates().

See also caCertificates() and defaultCaCertificates().

QSslSocket.setCiphers (self, list-of-QSslCipher ciphers)

Sets the cryptographic cipher suite for this socket to ciphers, which must contain a subset of the ciphers in the list returned by supportedCiphers().

Restricting the cipher suite must be done before the handshake phase, where the session cipher is chosen.

See also ciphers(), setDefaultCiphers(), and supportedCiphers().

QSslSocket.setCiphers (self, QString ciphers)

Sets the cryptographic cipher suite for this socket to ciphers, which is a colon-separated list of cipher suite names. The ciphers are listed in order of preference, starting with the most preferred cipher. For example:

 QSslSocket socket;
 socket.setCiphers("DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA");

Each cipher name in ciphers must be the name of a cipher in the list returned by supportedCiphers(). Restricting the cipher suite must be done before the handshake phase, where the session cipher is chosen.

See also ciphers(), setDefaultCiphers(), and supportedCiphers().

QSslSocket.setDefaultCaCertificates (list-of-QSslCertificate certificates)

Sets the default CA certificate database to certificates. The default CA certificate database is originally set to your system's default CA certificate database. You can override the default CA certificate database with your own CA certificate database using this function.

Each SSL socket's CA certificate database is initialized to the default CA certificate database.

See also defaultCaCertificates() and addDefaultCaCertificate().

QSslSocket.setDefaultCiphers (list-of-QSslCipher ciphers)

Sets the default cryptographic cipher suite for all sockets in this application to ciphers, which must contain a subset of the ciphers in the list returned by supportedCiphers().

Restricting the default cipher suite only affects SSL sockets that perform their handshake phase after the default cipher suite has been changed.

See also setCiphers(), defaultCiphers(), and supportedCiphers().

QSslSocket.setLocalCertificate (self, QSslCertificate certificate)

Sets the socket's local certificate to certificate. The local certificate is necessary if you need to confirm your identity to the peer. It is used together with the private key; if you set the local certificate, you must also set the private key.

The local certificate and private key are always necessary for server sockets, but are also rarely used by client sockets if the server requires the client to authenticate.

See also localCertificate() and setPrivateKey().

QSslSocket.setLocalCertificate (self, QString path, QSsl.EncodingFormat format = QSsl.Pem)

This is an overloaded function.

Sets the socket's local certificate to the first one found in file path, which is parsed according to the specified format.

QSslSocket.setPeerVerifyDepth (self, int depth)

Sets the maximum number of certificates in the peer's certificate chain to be checked during the SSL handshake phase, to depth. Setting a depth of 0 means that no maximum depth is set, indicating that the whole certificate chain should be checked.

The certificates are checked in issuing order, starting with the peer's own certificate, then its issuer's certificate, and so on.

This function was introduced in Qt 4.4.

See also peerVerifyDepth() and setPeerVerifyMode().

QSslSocket.setPeerVerifyMode (self, PeerVerifyMode mode)

Sets the socket's verify mode to mode. This mode decides whether QSslSocket should request a certificate from the peer (i.e., the client requests a certificate from the server, or a server requesting a certificate from the client), and whether it should require that this certificate is valid.

The default mode is AutoVerifyPeer, which tells QSslSocket to use VerifyPeer for clients and QueryPeer for servers.

Setting this mode after encryption has started has no effect on the current connection.

This function was introduced in Qt 4.4.

See also peerVerifyMode(), setPeerVerifyDepth(), and mode().

QSslSocket.setPeerVerifyName (self, QString hostName)

Sets a different host name, given by hostName, for the certificate validation instead of the one used for the TCP connection.

This function was introduced in Qt 4.8.

See also peerVerifyName() and connectToHostEncrypted().

QSslSocket.setPrivateKey (self, QSslKey key)

Sets the socket's private key to key. The private key and the local certificate are used by clients and servers that must prove their identity to SSL peers.

Both the key and the local certificate are required if you are creating an SSL server socket. If you are creating an SSL client socket, the key and local certificate are required if your client must identify itself to an SSL server.

See also privateKey() and setLocalCertificate().

QSslSocket.setPrivateKey (self, QString fileName, QSsl.KeyAlgorithm algorithm = QSsl.Rsa, QSsl.EncodingFormat format = QSsl.Pem, QByteArray passPhrase = QByteArray())

This is an overloaded function.

Reads the string in file fileName and decodes it using a specified algorithm and encoding format to construct an SSL key. If the encoded key is encrypted, passPhrase is used to decrypt it.

The socket's private key is set to the constructed key. The private key and the local certificate are used by clients and servers that must prove their identity to SSL peers.

Both the key and the local certificate are required if you are creating an SSL server socket. If you are creating an SSL client socket, the key and local certificate are required if your client must identify itself to an SSL server.

See also privateKey() and setLocalCertificate().

QSslSocket.setProtocol (self, QSsl.SslProtocol protocol)

Sets the socket's SSL protocol to protocol. This will affect the next initiated handshake; calling this function on an already-encrypted socket will not affect the socket's protocol.

See also protocol().

QSslSocket.setReadBufferSize (self, int size)

Sets the size of QSslSocket's internal read buffer to be size bytes.

This function was introduced in Qt 4.4.

bool QSslSocket.setSocketDescriptor (self, int socketDescriptor, QAbstractSocket.SocketState state = QAbstractSocket.ConnectedState, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Initializes QSslSocket with the native socket descriptor socketDescriptor. Returns true if socketDescriptor is accepted as a valid socket descriptor; otherwise returns false. The socket is opened in the mode specified by openMode, and enters the socket state specified by state.

Note: It is not possible to initialize two sockets with the same native socket descriptor.

See also socketDescriptor().

QSslSocket.setSocketOption (self, QAbstractSocket.SocketOption option, QVariant value)

Sets the given option to the value described by value.

This function was introduced in Qt 4.6.

See also socketOption().

QSslSocket.setSslConfiguration (self, QSslConfiguration config)

Sets the socket's SSL configuration to be the contents of configuration. This function sets the local certificate, the ciphers, the private key and the CA certificates to those stored in configuration.

It is not possible to set the SSL-state related fields.

This function was introduced in Qt 4.4.

See also sslConfiguration(), setLocalCertificate(), setPrivateKey(), setCaCertificates(), and setCiphers().

QVariant QSslSocket.socketOption (self, QAbstractSocket.SocketOption option)

Returns the value of the option option.

This function was introduced in Qt 4.6.

See also setSocketOption().

QSslConfiguration QSslSocket.sslConfiguration (self)

Returns the socket's SSL configuration state. The default SSL configuration of a socket is to use the default ciphers, default CA certificates, no local private key or certificate.

The SSL configuration also contains fields that can change with time without notice.

This function was introduced in Qt 4.4.

See also setSslConfiguration(), localCertificate(), peerCertificate(), peerCertificateChain(), sessionCipher(), privateKey(), ciphers(), and caCertificates().

list-of-QSslError QSslSocket.sslErrors (self)

Returns a list of the last SSL errors that occurred. This is the same list as QSslSocket passes via the sslErrors() signal. If the connection has been encrypted with no errors, this function will return an empty list.

See also connectToHostEncrypted().

QSslSocket.startClientEncryption (self)

This method is also a Qt slot with the C++ signature void startClientEncryption().

Starts a delayed SSL handshake for a client connection. This function can be called when the socket is in the ConnectedState but still in the UnencryptedMode. If it is not yet connected, or if it is already encrypted, this function has no effect.

Clients that implement STARTTLS functionality often make use of delayed SSL handshakes. Most other clients can avoid calling this function directly by using connectToHostEncrypted() instead, which automatically performs the handshake.

See also connectToHostEncrypted() and startServerEncryption().

QSslSocket.startServerEncryption (self)

This method is also a Qt slot with the C++ signature void startServerEncryption().

Starts a delayed SSL handshake for a server connection. This function can be called when the socket is in the ConnectedState but still in UnencryptedMode. If it is not connected or it is already encrypted, the function has no effect.

For server sockets, calling this function is the only way to initiate the SSL handshake. Most servers will call this function immediately upon receiving a connection, or as a result of having received a protocol-specific command to enter SSL mode (e.g, the server may respond to receiving the string "STARTTLS\r\n" by calling this function).

The most common way to implement an SSL server is to create a subclass of QTcpServer and reimplement QTcpServer.incomingConnection(). The returned socket descriptor is then passed to QSslSocket.setSocketDescriptor().

See also connectToHostEncrypted() and startClientEncryption().

list-of-QSslCipher QSslSocket.supportedCiphers ()

Returns the list of cryptographic ciphers supported by this system. This list is set by the system's SSL libraries and may vary from system to system.

See also defaultCiphers(), ciphers(), and setCiphers().

bool QSslSocket.supportsSsl ()

Returns true if this platform supports SSL; otherwise, returns false. If the platform doesn't support SSL, the socket will fail in the connection phase.

list-of-QSslCertificate QSslSocket.systemCaCertificates ()

This function provides the CA certificate database provided by the operating system. The CA certificate database returned by this function is used to initialize the database returned by defaultCaCertificates(). You can replace that database with your own with setDefaultCaCertificates().

See also caCertificates(), defaultCaCertificates(), and setDefaultCaCertificates().

bool QSslSocket.waitForBytesWritten (self, int msecs = 30000)

Reimplemented from QIODevice.waitForBytesWritten().

bool QSslSocket.waitForConnected (self, int msecs = 30000)

Waits until the socket is connected, or msecs milliseconds, whichever happens first. If the connection has been established, this function returns true; otherwise it returns false.

See also QAbstractSocket.waitForConnected().

bool QSslSocket.waitForDisconnected (self, int msecs = 30000)

Waits until the socket has disconnected or msecs milliseconds, whichever comes first. If the connection has been disconnected, this function returns true; otherwise it returns false.

See also QAbstractSocket.waitForDisconnected().

bool QSslSocket.waitForEncrypted (self, int msecs = 30000)

Waits until the socket has completed the SSL handshake and has emitted encrypted(), or msecs milliseconds, whichever comes first. If encrypted() has been emitted, this function returns true; otherwise (e.g., the socket is disconnected, or the SSL handshake fails), false is returned.

The following example waits up to one second for the socket to be encrypted:

 socket->connectToHostEncrypted("imap", 993);
 if (socket->waitForEncrypted(1000))
     qDebug("Encrypted!");

If msecs is -1, this function will not time out.

See also startClientEncryption(), startServerEncryption(), encrypted(), and isEncrypted().

bool QSslSocket.waitForReadyRead (self, int msecs = 30000)

Reimplemented from QIODevice.waitForReadyRead().

int QSslSocket.writeData (self, str data)

Reimplemented from QIODevice.writeData().


Qt Signal Documentation

void encrypted ()

This is the default overload of this signal.

This signal is emitted when QSslSocket enters encrypted mode. After this signal has been emitted, QSslSocket.isEncrypted() will return true, and all further transmissions on the socket will be encrypted.

See also QSslSocket.connectToHostEncrypted() and QSslSocket.isEncrypted().

void encryptedBytesWritten (qint64)

This is the default overload of this signal.

This signal is emitted when QSslSocket writes its encrypted data to the network. The written parameter contains the number of bytes that were successfully written.

This function was introduced in Qt 4.4.

See also QIODevice.bytesWritten().

void modeChanged (QSslSocket::SslMode)

This is the default overload of this signal.

This signal is emitted when QSslSocket changes from QSslSocket.UnencryptedMode to either QSslSocket.SslClientMode or QSslSocket.SslServerMode. mode is the new mode.

See also QSslSocket.mode().

void peerVerifyError (const QSslError&)

This is the default overload of this signal.

QSslSocket can emit this signal several times during the SSL handshake, before encryption has been established, to indicate that an error has occurred while establishing the identity of the peer. The error is usually an indication that QSslSocket is unable to securely identify the peer.

This signal provides you with an early indication when something's wrong. By connecting to this signal, you can manually choose to tear down the connection from inside the connected slot before the handshake has completed. If no action is taken, QSslSocket will proceed to emitting QSslSocket.sslErrors().

This function was introduced in Qt 4.4.

See also sslErrors().

void sslErrors (const QList<QSslError>&)

This is the default overload of this signal.

QSslSocket emits this signal after the SSL handshake to indicate that one or more errors have occurred while establishing the identity of the peer. The errors are usually an indication that QSslSocket is unable to securely identify the peer. Unless any action is taken, the connection will be dropped after this signal has been emitted.

If you want to continue connecting despite the errors that have occurred, you must call QSslSocket.ignoreSslErrors() from inside a slot connected to this signal. If you need to access the error list at a later point, you can call sslErrors() (without arguments).

errors contains one or more errors that prevent QSslSocket from verifying the identity of the peer.

Note: You cannot use Qt.QueuedConnection when connecting to this signal, or calling QSslSocket.ignoreSslErrors() will have no effect.

See also peerVerifyError().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstackedlayout.html0000644000076500000240000004222712536324513021413 0ustar philstaff00000000000000 QStackedLayout Class Reference
  Home · All Classes · Modules

QStackedLayout Class Reference
[QtGui module]

The QStackedLayout class provides a stack of widgets where only one widget is visible at a time. More...

Inherits QLayout.

Types

Methods

Qt Signals


Detailed Description

The QStackedLayout class provides a stack of widgets where only one widget is visible at a time.

QStackedLayout can be used to create a user interface similar to the one provided by QTabWidget. There is also a convenience QStackedWidget class built on top of QStackedLayout.

A QStackedLayout can be populated with a number of child widgets ("pages"). For example:

     QWidget *firstPageWidget = new QWidget;
     QWidget *secondPageWidget = new QWidget;
     QWidget *thirdPageWidget = new QWidget;

     QStackedLayout *stackedLayout = new QStackedLayout;
     stackedLayout->addWidget(firstPageWidget);
     stackedLayout->addWidget(secondPageWidget);
     stackedLayout->addWidget(thirdPageWidget);

     QVBoxLayout *mainLayout = new QVBoxLayout;
     mainLayout->addLayout(stackedLayout);
     setLayout(mainLayout);

QStackedLayout provides no intrinsic means for the user to switch page. This is typically done through a QComboBox or a QListWidget that stores the titles of the QStackedLayout's pages. For example:

     QComboBox *pageComboBox = new QComboBox;
     pageComboBox->addItem(tr("Page 1"));
     pageComboBox->addItem(tr("Page 2"));
     pageComboBox->addItem(tr("Page 3"));
     connect(pageComboBox, SIGNAL(activated(int)),
             stackedLayout, SLOT(setCurrentIndex(int)));

When populating a layout, the widgets are added to an internal list. The indexOf() function returns the index of a widget in that list. The widgets can either be added to the end of the list using the addWidget() function, or inserted at a given index using the insertWidget() function. The removeWidget() function removes the widget at the given index from the layout. The number of widgets contained in the layout, can be obtained using the count() function.

The widget() function returns the widget at a given index position. The index of the widget that is shown on screen is given by currentIndex() and can be changed using setCurrentIndex(). In a similar manner, the currently shown widget can be retrieved using the currentWidget() function, and altered using the setCurrentWidget() function.

Whenever the current widget in the layout changes or a widget is removed from the layout, the currentChanged() and widgetRemoved() signals are emitted respectively.


Type Documentation

QStackedLayout.StackingMode

This enum specifies how the layout handles its child widgets regarding their visibility.

Constant Value Description
QStackedLayout.StackOne 0 Only the current widget is visible. This is the default.
QStackedLayout.StackAll 1 All widgets are visible. The current widget is merely raised.

This enum was introduced or modified in Qt 4.4.


Method Documentation

QStackedLayout.__init__ (self)

Constructs a QStackedLayout with no parent.

This QStackedLayout must be installed on a widget later on to become effective.

See also addWidget() and insertWidget().

QStackedLayout.__init__ (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QStackedLayout with the given parent.

This layout will install itself on the parent widget and manage the geometry of its children.

QStackedLayout.__init__ (self, QLayout parentLayout)

The parentLayout argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QStackedLayout and inserts it into the given parentLayout.

QStackedLayout.addItem (self, QLayoutItem item)

The item argument has it's ownership transferred to Qt.

Reimplemented from QLayout.addItem().

int QStackedLayout.addWidget (self, QWidget w)

Adds the given widget to the end of this layout and returns the index position of the widget.

If the QStackedLayout is empty before this function is called, the given widget becomes the current widget.

See also insertWidget(), removeWidget(), and setCurrentWidget().

int QStackedLayout.count (self)

int QStackedLayout.currentIndex (self)

QWidget QStackedLayout.currentWidget (self)

Returns the current widget, or 0 if there are no widgets in this layout.

See also currentIndex() and setCurrentWidget().

int QStackedLayout.insertWidget (self, int index, QWidget w)

Inserts the given widget at the given index in this QStackedLayout. If index is out of range, the widget is appended (in which case it is the actual index of the widget that is returned).

If the QStackedLayout is empty before this function is called, the given widget becomes the current widget.

Inserting a new widget at an index less than or equal to the current index will increment the current index, but keep the current widget.

See also addWidget(), removeWidget(), and setCurrentWidget().

QLayoutItem QStackedLayout.itemAt (self, int)

Reimplemented from QLayout.itemAt().

QSize QStackedLayout.minimumSize (self)

Reimplemented from QLayoutItem.minimumSize().

QStackedLayout.setCurrentIndex (self, int index)

This method is also a Qt slot with the C++ signature void setCurrentIndex(int).

QStackedLayout.setCurrentWidget (self, QWidget w)

This method is also a Qt slot with the C++ signature void setCurrentWidget(QWidget*).

Sets the current widget to be the specified widget. The new current widget must already be contained in this stacked layout.

See also setCurrentIndex() and currentWidget().

QStackedLayout.setGeometry (self, QRect rect)

Reimplemented from QLayoutItem.setGeometry().

QStackedLayout.setStackingMode (self, StackingMode stackingMode)

QSize QStackedLayout.sizeHint (self)

Reimplemented from QLayoutItem.sizeHint().

StackingMode QStackedLayout.stackingMode (self)

QLayoutItem QStackedLayout.takeAt (self, int)

The QLayoutItem result

Reimplemented from QLayout.takeAt().

QWidget QStackedLayout.widget (self, int)

Returns the widget at the given index, or 0 if there is no widget at the given position.

See also currentWidget() and indexOf().

QWidget QStackedLayout.widget (self)


Qt Signal Documentation

void currentChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the current widget in the layout changes. The index specifies the index of the new current widget, or -1 if there isn't a new one (for example, if there are no widgets in the QStackedLayout)

See also currentWidget() and setCurrentWidget().

void widgetRemoved (int)

This is the default overload of this signal.

This signal is emitted whenever a widget is removed from the layout. The widget's index is passed as parameter.

See also removeWidget().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstackedwidget.html0000644000076500000240000003506512536324513021363 0ustar philstaff00000000000000 QStackedWidget Class Reference
  Home · All Classes · Modules

QStackedWidget Class Reference
[QtGui module]

The QStackedWidget class provides a stack of widgets where only one widget is visible at a time. More...

Inherits QFrame.

Methods

Special Methods

Qt Signals


Detailed Description

The QStackedWidget class provides a stack of widgets where only one widget is visible at a time.

QStackedWidget can be used to create a user interface similar to the one provided by QTabWidget. It is a convenience layout widget built on top of the QStackedLayout class.

Like QStackedLayout, QStackedWidget can be constructed and populated with a number of child widgets ("pages"):

     QWidget *firstPageWidget = new QWidget;
     QWidget *secondPageWidget = new QWidget;
     QWidget *thirdPageWidget = new QWidget;

     QStackedWidget *stackedWidget = new QStackedWidget;
     stackedWidget->addWidget(firstPageWidget);
     stackedWidget->addWidget(secondPageWidget);
     stackedWidget->addWidget(thirdPageWidget);

     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(stackedWidget);
     setLayout(layout);

QStackedWidget provides no intrinsic means for the user to switch page. This is typically done through a QComboBox or a QListWidget that stores the titles of the QStackedWidget's pages. For example:

     QComboBox *pageComboBox = new QComboBox;
     pageComboBox->addItem(tr("Page 1"));
     pageComboBox->addItem(tr("Page 2"));
     pageComboBox->addItem(tr("Page 3"));
     connect(pageComboBox, SIGNAL(activated(int)),
             stackedWidget, SLOT(setCurrentIndex(int)));

When populating a stacked widget, the widgets are added to an internal list. The indexOf() function returns the index of a widget in that list. The widgets can either be added to the end of the list using the addWidget() function, or inserted at a given index using the insertWidget() function. The removeWidget() function removes a widget from the stacked widget. The number of widgets contained in the stacked widget, can be obtained using the count() function.

The widget() function returns the widget at a given index position. The index of the widget that is shown on screen is given by currentIndex() and can be changed using setCurrentIndex(). In a similar manner, the currently shown widget can be retrieved using the currentWidget() function, and altered using the setCurrentWidget() function.

Whenever the current widget in the stacked widget changes or a widget is removed from the stacked widget, the currentChanged() and widgetRemoved() signals are emitted respectively.


Method Documentation

QStackedWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QStackedWidget with the given parent.

See also addWidget() and insertWidget().

int QStackedWidget.addWidget (self, QWidget w)

The w argument has it's ownership transferred to Qt.

Appends the given widget to the QStackedWidget and returns the index position. Ownership of widget is passed on to the QStackedWidget.

If the QStackedWidget is empty before this function is called, widget becomes the current widget.

See also insertWidget(), removeWidget(), and setCurrentWidget().

int QStackedWidget.count (self)

int QStackedWidget.currentIndex (self)

QWidget QStackedWidget.currentWidget (self)

Returns the current widget, or 0 if there are no child widgets.

See also currentIndex() and setCurrentWidget().

bool QStackedWidget.event (self, QEvent e)

Reimplemented from QObject.event().

int QStackedWidget.indexOf (self, QWidget)

Returns the index of the given widget, or -1 if the given widget is not a child of the QStackedWidget.

See also currentIndex() and widget().

int QStackedWidget.insertWidget (self, int index, QWidget w)

The w argument has it's ownership transferred to Qt.

Inserts the given widget at the given index in the QStackedWidget. Ownership of widget is passed on to the QStackedWidget. If index is out of range, the widget is appended (in which case it is the actual index of the widget that is returned).

If the QStackedWidget was empty before this function is called, the given widget becomes the current widget.

Inserting a new widget at an index less than or equal to the current index will increment the current index, but keep the current widget.

See also addWidget(), removeWidget(), and setCurrentWidget().

QStackedWidget.removeWidget (self, QWidget w)

Removes widget from the QStackedWidget. i.e., widget is not deleted but simply removed from the stacked layout, causing it to be hidden.

Note: Ownership of widget reverts to the application.

See also addWidget(), insertWidget(), and currentWidget().

QStackedWidget.setCurrentIndex (self, int index)

This method is also a Qt slot with the C++ signature void setCurrentIndex(int).

QStackedWidget.setCurrentWidget (self, QWidget w)

This method is also a Qt slot with the C++ signature void setCurrentWidget(QWidget*).

Sets the current widget to be the specified widget. The new current widget must already be contained in this stacked widget.

See also currentWidget() and setCurrentIndex().

QWidget QStackedWidget.widget (self, int)

Returns the widget at the given index, or 0 if there is no such widget.

See also currentWidget() and indexOf().

QStackedWidget.__len__ (self)


Qt Signal Documentation

void currentChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the current widget changes.

The parameter holds the index of the new current widget, or -1 if there isn't a new one (for example, if there are no widgets in the QStackedWidget).

See also currentWidget() and setCurrentWidget().

void widgetRemoved (int)

This is the default overload of this signal.

This signal is emitted whenever a widget is removed. The widget's index is passed as parameter.

See also removeWidget().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstandarditem.html0000644000076500000240000015461712536324513021225 0ustar philstaff00000000000000 QStandardItem Class Reference
  Home · All Classes · Modules

QStandardItem Class Reference
[QtGui module]

The QStandardItem class provides an item for use with the QStandardItemModel class. More...

Types

Methods

Special Methods

  • bool __ge__ (self, QStandardItem other)
  • bool __lt__ (self, QStandardItem other)

Detailed Description

The QStandardItem class provides an item for use with the QStandardItemModel class.

Items usually contain text, icons, or checkboxes.

Each item can have its own background brush which is set with the setBackground() function. The current background brush can be found with background(). The text label for each item can be rendered with its own font and brush. These are specified with the setFont() and setForeground() functions, and read with font() and foreground().

By default, items are enabled, editable, selectable, checkable, and can be used both as the source of a drag and drop operation and as a drop target. Each item's flags can be changed by calling setFlags(). Checkable items can be checked and unchecked with the setCheckState() function. The corresponding checkState() function indicates whether the item is currently checked.

You can store application-specific data in an item by calling setData().

Each item can have a two-dimensional table of child items. This makes it possible to build hierarchies of items. The typical hierarchy is the tree, in which case the child table is a table with a single column (a list).

The dimensions of the child table can be set with setRowCount() and setColumnCount(). Items can be positioned in the child table with setChild(). Get a pointer to a child item with child(). New rows and columns of children can also be inserted with insertRow() and insertColumn(), or appended with appendRow() and appendColumn(). When using the append and insert functions, the dimensions of the child table will grow as needed.

An existing row of children can be removed with removeRow() or takeRow(); correspondingly, a column can be removed with removeColumn() or takeColumn().

An item's children can be sorted by calling sortChildren().

Subclassing

When subclassing QStandardItem to provide custom items, it is possible to define new types for them so that they can be distinguished from the base class. The type() function should be reimplemented to return a new type value equal to or greater than UserType.

Reimplement data() and setData() if you want to perform custom handling of data queries and/or control how an item's data is represented.

Reimplement clone() if you want QStandardItemModel to be able to create instances of your custom item class on demand (see QStandardItemModel.setItemPrototype()).

Reimplement read() and write() if you want to control how items are represented in their serialized form.

Reimplement operator<() if you want to control the semantics of item comparison. operator<() determines the sorted order when sorting items with sortChildren() or with QStandardItemModel.sort().


Type Documentation

QStandardItem.ItemType

This enum describes the types that are used to describe standard items.

Constant Value Description
QStandardItem.Type 0 The default type for standard items.
QStandardItem.UserType 1000 The minimum value for custom types. Values below UserType are reserved by Qt.

You can define new user types in QStandardItem subclasses to ensure that custom items are treated specially; for example, when items are sorted.

See also type().


Method Documentation

QStandardItem.__init__ (self)

Constructs an item.

QStandardItem.__init__ (self, QString text)

Constructs an item with the given text.

QStandardItem.__init__ (self, QIcon icon, QString text)

Constructs an item with the given icon and text.

QStandardItem.__init__ (self, int rows, int columns = 1)

Constructs an item with rows rows and columns columns of child items.

QStandardItem.__init__ (self, QStandardItem other)

Constructs a copy of other. Note that model() is not copied.

This function is useful when reimplementing clone().

QString QStandardItem.accessibleDescription (self)

Returns the item's accessible description.

The accessible description is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).

See also setAccessibleDescription() and accessibleText().

QString QStandardItem.accessibleText (self)

Returns the item's accessible text.

The accessible text is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).

See also setAccessibleText() and accessibleDescription().

QStandardItem.appendColumn (self, list-of-QStandardItem aitems)

The aitems argument has it's ownership transferred to Qt.

Appends a column containing items. If necessary, the row count is increased to the size of items.

See also insertColumn().

QStandardItem.appendRow (self, list-of-QStandardItem aitems)

The aitems argument has it's ownership transferred to Qt.

Appends a row containing items. If necessary, the column count is increased to the size of items.

See also insertRow().

QStandardItem.appendRow (self, QStandardItem aitem)

The aitem argument has it's ownership transferred to Qt.

This is an overloaded function.

Appends a row containing item.

When building a list or a tree that has only one column, this function provides a convenient way to append a single new item.

QStandardItem.appendRows (self, list-of-QStandardItem aitems)

The aitems argument has it's ownership transferred to Qt.

Appends rows containing items. The column count will not change.

See also insertRow().

QBrush QStandardItem.background (self)

Returns the brush used to render the item's background.

See also foreground() and setBackground().

Qt.CheckState QStandardItem.checkState (self)

Returns the checked state of the item.

See also setCheckState() and isCheckable().

QStandardItem QStandardItem.child (self, int row, int column = 0)

Returns the child item at (row, column) if one has been set; otherwise returns 0.

See also setChild(), takeChild(), and parent().

QStandardItem QStandardItem.clone (self)

Returns a copy of this item. The item's children are not copied.

When subclassing QStandardItem, you can reimplement this function to provide QStandardItemModel with a factory that it can use to create new items on demand.

See also QStandardItemModel.setItemPrototype() and operator=().

int QStandardItem.column (self)

Returns the column where the item is located in its parent's child table, or -1 if the item has no parent.

See also row() and parent().

int QStandardItem.columnCount (self)

Returns the number of child item columns that the item has.

See also setColumnCount() and rowCount().

QVariant QStandardItem.data (self, int role = Qt.UserRole+1)

Returns the item's data for the given role, or an invalid QVariant if there is no data for the role.

Note: The default implementation treats Qt.EditRole and Qt.DisplayRole as referring to the same data.

See also setData().

QStandardItem.emitDataChanged (self)

Causes the model associated with this item to emit a dataChanged() signal for this item.

You normally only need to call this function if you have subclassed QStandardItem and reimplemented data() and/or setData().

This function was introduced in Qt 4.4.

See also setData().

Qt.ItemFlags QStandardItem.flags (self)

Returns the item flags for the item.

The item flags determine how the user can interact with the item.

By default, items are enabled, editable, selectable, checkable, and can be used both as the source of a drag and drop operation and as a drop target.

See also setFlags().

QFont QStandardItem.font (self)

Returns the font used to render the item's text.

See also setFont().

QBrush QStandardItem.foreground (self)

Returns the brush used to render the item's foreground (e.g. text).

See also setForeground() and background().

bool QStandardItem.hasChildren (self)

Returns true if this item has any children; otherwise returns false.

See also rowCount(), columnCount(), and child().

QIcon QStandardItem.icon (self)

Returns the item's icon.

See also setIcon() and iconSize.

QModelIndex QStandardItem.index (self)

Returns the QModelIndex associated with this item.

When you need to invoke item functionality in a QModelIndex-based API (e.g. QAbstractItemView), you can call this function to obtain an index that corresponds to the item's location in the model.

If the item is not associated with a model, an invalid QModelIndex is returned.

See also model() and QStandardItemModel.itemFromIndex().

QStandardItem.insertColumn (self, int column, list-of-QStandardItem items)

The items argument has it's ownership transferred to Qt.

Inserts a column at column containing items. If necessary, the row count is increased to the size of items.

See also insertColumns() and insertRow().

QStandardItem.insertColumns (self, int column, int count)

Inserts count columns of child items at column column.

See also insertColumn() and insertRows().

QStandardItem.insertRow (self, int row, list-of-QStandardItem items)

The items argument has it's ownership transferred to Qt.

Inserts a row at row containing items. If necessary, the column count is increased to the size of items.

See also insertRows() and insertColumn().

QStandardItem.insertRow (self, int arow, QStandardItem aitem)

The aitem argument has it's ownership transferred to Qt.

This is an overloaded function.

Inserts a row at row containing item.

When building a list or a tree that has only one column, this function provides a convenient way to insert a single new item.

QStandardItem.insertRows (self, int row, int count)

Inserts items at row. The column count wont be changed.

See also insertRow() and insertColumn().

QStandardItem.insertRows (self, int row, list-of-QStandardItem items)

The items argument has it's ownership transferred to Qt.

Inserts count rows of child items at row row.

See also insertRow() and insertColumns().

bool QStandardItem.isCheckable (self)

Returns whether the item is user-checkable.

The default value is false.

See also setCheckable(), checkState(), and isTristate().

bool QStandardItem.isDragEnabled (self)

Returns whether the item is drag enabled. An item that is drag enabled can be dragged by the user.

The default value is true.

Note that item dragging must be enabled in the view for dragging to work; see QAbstractItemView.dragEnabled.

See also setDragEnabled(), isDropEnabled(), and flags().

bool QStandardItem.isDropEnabled (self)

Returns whether the item is drop enabled. When an item is drop enabled, it can be used as a drop target.

The default value is true.

See also setDropEnabled(), isDragEnabled(), and flags().

bool QStandardItem.isEditable (self)

Returns whether the item can be edited by the user.

When an item is editable (and enabled), the user can edit the item by invoking one of the view's edit triggers; see QAbstractItemView.editTriggers.

The default value is true.

See also setEditable() and flags().

bool QStandardItem.isEnabled (self)

Returns whether the item is enabled.

When an item is enabled, the user can interact with it. The possible types of interaction are specified by the other item flags, such as isEditable() and isSelectable().

The default value is true.

See also setEnabled() and flags().

bool QStandardItem.isSelectable (self)

Returns whether the item is selectable by the user.

The default value is true.

See also setSelectable() and flags().

bool QStandardItem.isTristate (self)

Returns whether the item is tristate; that is, if it's checkable with three separate states.

The default value is false.

See also setTristate(), isCheckable(), and checkState().

QStandardItemModel QStandardItem.model (self)

Returns the QStandardItemModel that this item belongs to.

If the item is not a child of another item that belongs to the model, this function returns 0.

See also index().

QStandardItem QStandardItem.parent (self)

Returns the item's parent item, or 0 if the item has no parent.

See also child().

QStandardItem.read (self, QDataStream in)

Reads the item from stream in. Only the data and flags of the item are read, not the child items.

See also write().

QStandardItem.removeColumn (self, int column)

Removes the given column. The items that were in the column are deleted.

See also takeColumn(), removeColumns(), and removeRow().

QStandardItem.removeColumns (self, int column, int count)

Removes count columns at column column. The items that were in those columns are deleted.

See also removeColumn() and removeRows().

QStandardItem.removeRow (self, int row)

Removes the given row. The items that were in the row are deleted.

See also takeRow(), removeRows(), and removeColumn().

QStandardItem.removeRows (self, int row, int count)

Removes count rows at row row. The items that were in those rows are deleted.

See also removeRow() and removeColumn().

int QStandardItem.row (self)

Returns the row where the item is located in its parent's child table, or -1 if the item has no parent.

See also column() and parent().

int QStandardItem.rowCount (self)

Returns the number of child item rows that the item has.

See also setRowCount() and columnCount().

QStandardItem.setAccessibleDescription (self, QString aaccessibleDescription)

Sets the item's accessible description to the string specified by accessibleDescription.

The accessible description is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).

See also accessibleDescription() and setAccessibleText().

QStandardItem.setAccessibleText (self, QString aaccessibleText)

Sets the item's accessible text to the string specified by accessibleText.

The accessible text is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).

See also accessibleText() and setAccessibleDescription().

QStandardItem.setBackground (self, QBrush abrush)

Sets the item's background brush to the specified brush.

See also background() and setForeground().

QStandardItem.setCheckable (self, bool checkable)

Sets whether the item is user-checkable. If checkable is true, the item can be checked by the user; otherwise, the user cannot check the item.

The item delegate will render a checkable item with a check box next to the item's text.

See also isCheckable(), setCheckState(), and setTristate().

QStandardItem.setCheckState (self, Qt.CheckState acheckState)

Sets the check state of the item to be state.

See also checkState() and setCheckable().

QStandardItem.setChild (self, int row, int column, QStandardItem item)

The item argument has it's ownership transferred to Qt.

Sets the child item at (row, column) to item. This item (the parent item) takes ownership of item. If necessary, the row count and column count are increased to fit the item.

See also child().

QStandardItem.setChild (self, int arow, QStandardItem aitem)

The aitem argument has it's ownership transferred to Qt.

This is an overloaded function.

Sets the child at row to item.

QStandardItem.setColumnCount (self, int columns)

Sets the number of child item columns to columns. If this is less than columnCount(), the data in the unwanted columns is discarded.

See also columnCount() and setRowCount().

QStandardItem.setData (self, QVariant value, int role = Qt.UserRole+1)

Sets the item's data for the given role to the specified value.

If you subclass QStandardItem and reimplement this function, your reimplementation should call emitDataChanged() if you do not call the base implementation of setData(). This will ensure that e.g. views using the model are notified of the changes.

Note: The default implementation treats Qt.EditRole and Qt.DisplayRole as referring to the same data.

See also Qt.ItemDataRole, data(), and setFlags().

QStandardItem.setDragEnabled (self, bool dragEnabled)

Sets whether the item is drag enabled. If dragEnabled is true, the item can be dragged by the user; otherwise, the user cannot drag the item.

Note that you also need to ensure that item dragging is enabled in the view; see QAbstractItemView.dragEnabled.

See also isDragEnabled(), setDropEnabled(), and setFlags().

QStandardItem.setDropEnabled (self, bool dropEnabled)

Sets whether the item is drop enabled. If dropEnabled is true, the item can be used as a drop target; otherwise, it cannot.

Note that you also need to ensure that drops are enabled in the view; see QWidget.acceptDrops(); and that the model supports the desired drop actions; see QAbstractItemModel.supportedDropActions().

See also isDropEnabled(), setDragEnabled(), and setFlags().

QStandardItem.setEditable (self, bool editable)

Sets whether the item is editable. If editable is true, the item can be edited by the user; otherwise, the user cannot edit the item.

How the user can edit items in a view is determined by the view's edit triggers; see QAbstractItemView.editTriggers.

See also isEditable() and setFlags().

QStandardItem.setEnabled (self, bool enabled)

Sets whether the item is enabled. If enabled is true, the item is enabled, meaning that the user can interact with the item; if enabled is false, the user cannot interact with the item.

This flag takes precedence over the other item flags; e.g. if an item is not enabled, it cannot be selected by the user, even if the Qt.ItemIsSelectable flag has been set.

See also isEnabled(), Qt.ItemIsEnabled, and setFlags().

QStandardItem.setFlags (self, Qt.ItemFlags flags)

Sets the item flags for the item to flags.

The item flags determine how the user can interact with the item. This is often used to disable an item.

See also flags() and setData().

QStandardItem.setFont (self, QFont afont)

Sets the font used to display the item's text to the given font.

See also font(), setText(), and setForeground().

QStandardItem.setForeground (self, QBrush abrush)

Sets the brush used to display the item's foreground (e.g. text) to the given brush.

See also foreground(), setBackground(), and setFont().

QStandardItem.setIcon (self, QIcon aicon)

Sets the item's icon to the icon specified.

See also icon().

QStandardItem.setRowCount (self, int rows)

Sets the number of child item rows to rows. If this is less than rowCount(), the data in the unwanted rows is discarded.

See also rowCount() and setColumnCount().

QStandardItem.setSelectable (self, bool selectable)

Sets whether the item is selectable. If selectable is true, the item can be selected by the user; otherwise, the user cannot select the item.

You can control the selection behavior and mode by manipulating their view properties; see QAbstractItemView.selectionMode and QAbstractItemView.selectionBehavior.

See also isSelectable() and setFlags().

QStandardItem.setSizeHint (self, QSize asizeHint)

Sets the size hint for the item to be size. If no size hint is set, the item delegate will compute the size hint based on the item data.

See also sizeHint().

QStandardItem.setStatusTip (self, QString astatusTip)

Sets the item's status tip to the string specified by statusTip.

See also statusTip(), setToolTip(), and setWhatsThis().

QStandardItem.setText (self, QString atext)

Sets the item's text to the text specified.

See also text(), setFont(), and setForeground().

QStandardItem.setTextAlignment (self, Qt.Alignment atextAlignment)

Sets the text alignment for the item's text to the alignment specified.

See also textAlignment().

QStandardItem.setToolTip (self, QString atoolTip)

Sets the item's tooltip to the string specified by toolTip.

See also toolTip(), setStatusTip(), and setWhatsThis().

QStandardItem.setTristate (self, bool tristate)

Sets whether the item is tristate. If tristate is true, the item is checkable with three separate states; otherwise, the item is checkable with two states. (Note that this also requires that the item is checkable; see isCheckable().)

See also isTristate(), setCheckable(), and setCheckState().

QStandardItem.setWhatsThis (self, QString awhatsThis)

Sets the item's "What's This?" help to the string specified by whatsThis.

See also whatsThis(), setStatusTip(), and setToolTip().

QSize QStandardItem.sizeHint (self)

Returns the size hint set for the item, or an invalid QSize if no size hint has been set.

If no size hint has been set, the item delegate will compute the size hint based on the item data.

See also setSizeHint().

QStandardItem.sortChildren (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Sorts the children of the item using the given order, by the values in the given column.

Note: This function is recursive, therefore it sorts the children of the item, its grandchildren, etc.

See also operator<().

QString QStandardItem.statusTip (self)

Returns the item's status tip.

See also setStatusTip(), toolTip(), and whatsThis().

QStandardItem QStandardItem.takeChild (self, int row, int column = 0)

The QStandardItem result

Removes the child item at (row, column) without deleting it, and returns a pointer to the item. If there was no child at the given location, then this function returns 0.

Note that this function, unlike takeRow() and takeColumn(), does not affect the dimensions of the child table.

See also child(), takeRow(), and takeColumn().

list-of-QStandardItem QStandardItem.takeColumn (self, int column)

The list-of-QStandardItem result

Removes column without deleting the column items, and returns a list of pointers to the removed items. For items in the column that have not been set, the corresponding pointers in the list will be 0.

See also removeColumn(), insertColumn(), and takeRow().

list-of-QStandardItem QStandardItem.takeRow (self, int row)

The list-of-QStandardItem result

Removes row without deleting the row items, and returns a list of pointers to the removed items. For items in the row that have not been set, the corresponding pointers in the list will be 0.

See also removeRow(), insertRow(), and takeColumn().

QString QStandardItem.text (self)

Returns the item's text. This is the text that's presented to the user in a view.

See also setText().

Qt.Alignment QStandardItem.textAlignment (self)

Returns the text alignment for the item's text.

See also setTextAlignment().

QString QStandardItem.toolTip (self)

Returns the item's tooltip.

See also setToolTip(), statusTip(), and whatsThis().

int QStandardItem.type (self)

Returns the type of this item. The type is used to distinguish custom items from the base class. When subclassing QStandardItem, you should reimplement this function and return a new value greater than or equal to UserType.

See also QStandardItem.Type.

QString QStandardItem.whatsThis (self)

Returns the item's "What's This?" help.

See also setWhatsThis(), toolTip(), and statusTip().

QStandardItem.write (self, QDataStream out)

Writes the item to stream out. Only the data and flags of the item are written, not the child items.

See also read().

bool QStandardItem.__ge__ (self, QStandardItem other)

bool QStandardItem.__lt__ (self, QStandardItem other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstandarditemmodel.html0000644000076500000240000013561312536324513022241 0ustar philstaff00000000000000 QStandardItemModel Class Reference
  Home · All Classes · Modules

QStandardItemModel Class Reference
[QtGui module]

The QStandardItemModel class provides a generic model for storing custom data. More...

Inherits QAbstractItemModel.

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, int rows, int columns, QObject parent = None)
  • appendColumn (self, list-of-QStandardItem items)
  • appendRow (self, list-of-QStandardItem items)
  • appendRow (self, QStandardItem aitem)
  • clear (self)
  • int columnCount (self, QModelIndex parent = QModelIndex())
  • QVariant data (self, QModelIndex index, int role = Qt.DisplayRole)
  • bool dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)
  • list-of-QStandardItem findItems (self, QString text, Qt.MatchFlags flags = Qt.MatchExactly, int column = 0)
  • Qt.ItemFlags flags (self, QModelIndex index)
  • bool hasChildren (self, QModelIndex parent = QModelIndex())
  • QVariant headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)
  • QStandardItem horizontalHeaderItem (self, int column)
  • QModelIndex index (self, int row, int column, QModelIndex parent = QModelIndex())
  • QModelIndex indexFromItem (self, QStandardItem item)
  • insertColumn (self, int column, list-of-QStandardItem items)
  • bool insertColumn (self, int column, QModelIndex parent = QModelIndex())
  • bool insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())
  • insertRow (self, int row, list-of-QStandardItem items)
  • insertRow (self, int arow, QStandardItem aitem)
  • bool insertRow (self, int row, QModelIndex parent = QModelIndex())
  • bool insertRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • QStandardItem invisibleRootItem (self)
  • QStandardItem item (self, int row, int column = 0)
  • dict-of-int-QVariant itemData (self, QModelIndex index)
  • QStandardItem itemFromIndex (self, QModelIndex index)
  • QStandardItem itemPrototype (self)
  • QMimeData mimeData (self, list-of-QModelIndex indexes)
  • QStringList mimeTypes (self)
  • QModelIndex parent (self, QModelIndex child)
  • QObject parent (self)
  • bool removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())
  • bool removeRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • int rowCount (self, QModelIndex parent = QModelIndex())
  • setColumnCount (self, int columns)
  • bool setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)
  • bool setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)
  • setHorizontalHeaderItem (self, int column, QStandardItem item)
  • setHorizontalHeaderLabels (self, QStringList labels)
  • setItem (self, int row, int column, QStandardItem item)
  • setItem (self, int arow, QStandardItem aitem)
  • bool setItemData (self, QModelIndex index, dict-of-int-QVariant roles)
  • setItemPrototype (self, QStandardItem item)
  • setRowCount (self, int rows)
  • setSortRole (self, int role)
  • setVerticalHeaderItem (self, int row, QStandardItem item)
  • setVerticalHeaderLabels (self, QStringList labels)
  • sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)
  • int sortRole (self)
  • Qt.DropActions supportedDropActions (self)
  • list-of-QStandardItem takeColumn (self, int column)
  • QStandardItem takeHorizontalHeaderItem (self, int column)
  • QStandardItem takeItem (self, int row, int column = 0)
  • list-of-QStandardItem takeRow (self, int row)
  • QStandardItem takeVerticalHeaderItem (self, int row)
  • QStandardItem verticalHeaderItem (self, int row)

Qt Signals


Detailed Description

The QStandardItemModel class provides a generic model for storing custom data.

QStandardItemModel can be used as a repository for standard Qt data types. It is one of the Model/View Classes and is part of Qt's model/view framework.

QStandardItemModel provides a classic item-based approach to working with the model. The items in a QStandardItemModel are provided by QStandardItem.

QStandardItemModel implements the QAbstractItemModel interface, which means that the model can be used to provide data in any view that supports that interface (such as QListView, QTableView and QTreeView, and your own custom views). For performance and flexibility, you may want to subclass QAbstractItemModel to provide support for different kinds of data repositories. For example, the QDirModel(obsolete) provides a model interface to the underlying file system.

When you want a list or tree, you typically create an empty QStandardItemModel and use appendRow() to add items to the model, and item() to access an item. If your model represents a table, you typically pass the dimensions of the table to the QStandardItemModel constructor and use setItem() to position items into the table. You can also use setRowCount() and setColumnCount() to alter the dimensions of the model. To insert items, use insertRow() or insertColumn(), and to remove items, use removeRow() or removeColumn().

You can set the header labels of your model with setHorizontalHeaderLabels() and setVerticalHeaderLabels().

You can search for items in the model with findItems(), and sort the model by calling sort().

Call clear() to remove all items from the model.

An example usage of QStandardItemModel to create a table:

 QStandardItemModel model(4, 4);
 for (int row = 0; row < 4; ++row) {
     for (int column = 0; column < 4; ++column) {
         QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
         model.setItem(row, column, item);
     }
 }

An example usage of QStandardItemModel to create a tree:

 QStandardItemModel model;
 QStandardItem *parentItem = model.invisibleRootItem();
 for (int i = 0; i < 4; ++i) {
     QStandardItem *item = new QStandardItem(QString("item %0").arg(i));
     parentItem->appendRow(item);
     parentItem = item;
 }

After setting the model on a view, you typically want to react to user actions, such as an item being clicked. Since a QAbstractItemView provides QModelIndex-based signals and functions, you need a way to obtain the QStandardItem that corresponds to a given QModelIndex, and vice versa. itemFromIndex() and indexFromItem() provide this mapping. Typical usage of itemFromIndex() includes obtaining the item at the current index in a view, and obtaining the item that corresponds to an index carried by a QAbstractItemView signal, such as QAbstractItemView.clicked(). First you connect the view's signal to a slot in your class:

 QTreeView *treeView = new QTreeView(this);
 treeView->setModel(myStandardItemModel);
 connect(treeView, SIGNAL(clicked(QModelIndex)),
         this, SLOT(clicked(QModelIndex)));

When you receive the signal, you call itemFromIndex() on the given model index to get a pointer to the item:

 void MyWidget.clicked(const QModelIndex &index)
 {
     QStandardItem *item = myStandardItemModel->itemFromIndex(index);
     // Do stuff with the item ...
 }

Conversely, you must obtain the QModelIndex of an item when you want to invoke a model/view function that takes an index as argument. You can obtain the index either by using the model's indexFromItem() function, or, equivalently, by calling QStandardItem.index():

 treeView->scrollTo(item->index());

You are, of course, not required to use the item-based approach; you could instead rely entirely on the QAbstractItemModel interface when working with the model, or use a combination of the two as appropriate.


Method Documentation

QStandardItemModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new item model with the given parent.

QStandardItemModel.__init__ (self, int rows, int columns, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new item model that initially has rows rows and columns columns, and that has the given parent.

QStandardItemModel.appendColumn (self, list-of-QStandardItem items)

The items argument has it's ownership transferred to Qt.

Appends a column containing items. If necessary, the row count is increased to the size of items.

This function was introduced in Qt 4.2.

See also insertColumn() and appendRow().

QStandardItemModel.appendRow (self, list-of-QStandardItem items)

The items argument has it's ownership transferred to Qt.

Appends a row containing items. If necessary, the column count is increased to the size of items.

This function was introduced in Qt 4.2.

See also insertRow() and appendColumn().

QStandardItemModel.appendRow (self, QStandardItem aitem)

The aitem argument has it's ownership transferred to Qt.

This is an overloaded function.

When building a list or a tree that has only one column, this function provides a convenient way to append a single new item.

This function was introduced in Qt 4.2.

QStandardItemModel.clear (self)

Removes all items (including header items) from the model and sets the number of rows and columns to zero.

See also removeColumns() and removeRows().

int QStandardItemModel.columnCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.columnCount().

See also setColumnCount().

QVariant QStandardItemModel.data (self, QModelIndex index, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.data().

See also setData().

bool QStandardItemModel.dropMimeData (self, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent)

Reimplemented from QAbstractItemModel.dropMimeData().

list-of-QStandardItem QStandardItemModel.findItems (self, QString text, Qt.MatchFlags flags = Qt.MatchExactly, int column = 0)

Returns a list of items that match the given text, using the given flags, in the given column.

This function was introduced in Qt 4.2.

Qt.ItemFlags QStandardItemModel.flags (self, QModelIndex index)

Reimplemented from QAbstractItemModel.flags().

bool QStandardItemModel.hasChildren (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.hasChildren().

QVariant QStandardItemModel.headerData (self, int section, Qt.Orientation orientation, int role = Qt.DisplayRole)

Reimplemented from QAbstractItemModel.headerData().

See also setHeaderData().

QStandardItem QStandardItemModel.horizontalHeaderItem (self, int column)

Returns the horizontal header item for column if one has been set; otherwise returns 0.

This function was introduced in Qt 4.2.

See also setHorizontalHeaderItem() and verticalHeaderItem().

QModelIndex QStandardItemModel.index (self, int row, int column, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.index().

QModelIndex QStandardItemModel.indexFromItem (self, QStandardItem item)

Returns the QModelIndex associated with the given item.

Use this function when you want to perform an operation that requires the QModelIndex of the item, such as QAbstractItemView.scrollTo(). QStandardItem.index() is provided as convenience; it is equivalent to calling this function.

This function was introduced in Qt 4.2.

See also itemFromIndex() and QStandardItem.index().

QStandardItemModel.insertColumn (self, int column, list-of-QStandardItem items)

The items argument has it's ownership transferred to Qt.

Inserts a column at column containing items. If necessary, the row count is increased to the size of items.

This function was introduced in Qt 4.2.

See also takeColumn(), appendColumn(), and insertRow().

bool QStandardItemModel.insertColumn (self, int column, QModelIndex parent = QModelIndex())

Inserts a single column before the given column in the child items of the parent specified. Returns true if the column is inserted; otherwise returns false.

See also insertColumns(), insertRow(), and removeColumn().

bool QStandardItemModel.insertColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertColumns().

QStandardItemModel.insertRow (self, int row, list-of-QStandardItem items)

The items argument has it's ownership transferred to Qt.

Inserts a row at row containing items. If necessary, the column count is increased to the size of items.

This function was introduced in Qt 4.2.

See also takeRow(), appendRow(), and insertColumn().

QStandardItemModel.insertRow (self, int arow, QStandardItem aitem)

The aitem argument has it's ownership transferred to Qt.

Inserts a single row before the given row in the child items of the parent specified. Returns true if the row is inserted; otherwise returns false.

See also insertRows(), insertColumn(), and removeRow().

bool QStandardItemModel.insertRow (self, int row, QModelIndex parent = QModelIndex())

This is an overloaded function.

Inserts a row at row containing item.

When building a list or a tree that has only one column, this function provides a convenient way to append a single new item.

This function was introduced in Qt 4.2.

bool QStandardItemModel.insertRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertRows().

QStandardItem QStandardItemModel.invisibleRootItem (self)

Returns the model's invisible root item.

The invisible root item provides access to the model's top-level items through the QStandardItem API, making it possible to write functions that can treat top-level items and their children in a uniform way; for example, recursive functions involving a tree model.

Note: Calling index() on the QStandardItem object retrieved from this function is not valid.

This function was introduced in Qt 4.2.

QStandardItem QStandardItemModel.item (self, int row, int column = 0)

Returns the item for the given row and column if one has been set; otherwise returns 0.

This function was introduced in Qt 4.2.

See also setItem(), takeItem(), and itemFromIndex().

dict-of-int-QVariant QStandardItemModel.itemData (self, QModelIndex index)

Reimplemented from QAbstractItemModel.itemData().

See also setItemData().

QStandardItem QStandardItemModel.itemFromIndex (self, QModelIndex index)

Returns a pointer to the QStandardItem associated with the given index.

Calling this function is typically the initial step when processing QModelIndex-based signals from a view, such as QAbstractItemView.activated(). In your slot, you call itemFromIndex(), with the QModelIndex carried by the signal as argument, to obtain a pointer to the corresponding QStandardItem.

Note that this function will lazily create an item for the index (using itemPrototype()), and set it in the parent item's child table, if no item already exists at that index.

If index is an invalid index, this function returns 0.

This function was introduced in Qt 4.2.

See also indexFromItem().

QStandardItem QStandardItemModel.itemPrototype (self)

Returns the item prototype used by the model. The model uses the item prototype as an item factory when it needs to construct new items on demand (for instance, when a view or item delegate calls setData()).

This function was introduced in Qt 4.2.

See also setItemPrototype().

QMimeData QStandardItemModel.mimeData (self, list-of-QModelIndex indexes)

The QMimeData result

Reimplemented from QAbstractItemModel.mimeData().

QStringList QStandardItemModel.mimeTypes (self)

Reimplemented from QAbstractItemModel.mimeTypes().

QModelIndex QStandardItemModel.parent (self, QModelIndex child)

Reimplemented from QAbstractItemModel.parent().

QObject QStandardItemModel.parent (self)

bool QStandardItemModel.removeColumns (self, int column, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeColumns().

bool QStandardItemModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeRows().

int QStandardItemModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

See also setRowCount().

QStandardItemModel.setColumnCount (self, int columns)

Sets the number of columns in this model to columns. If this is less than columnCount(), the data in the unwanted columns is discarded.

This function was introduced in Qt 4.2.

See also columnCount() and setRowCount().

bool QStandardItemModel.setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setData().

See also data().

bool QStandardItemModel.setHeaderData (self, int section, Qt.Orientation orientation, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setHeaderData().

See also headerData().

QStandardItemModel.setHorizontalHeaderItem (self, int column, QStandardItem item)

The item argument has it's ownership transferred to Qt.

Sets the horizontal header item for column to item. The model takes ownership of the item. If necessary, the column count is increased to fit the item. The previous header item (if there was one) is deleted.

This function was introduced in Qt 4.2.

See also horizontalHeaderItem(), setHorizontalHeaderLabels(), and setVerticalHeaderItem().

QStandardItemModel.setHorizontalHeaderLabels (self, QStringList labels)

Sets the horizontal header labels using labels. If necessary, the column count is increased to the size of labels.

This function was introduced in Qt 4.2.

See also setHorizontalHeaderItem().

QStandardItemModel.setItem (self, int row, int column, QStandardItem item)

The item argument has it's ownership transferred to Qt.

Sets the item for the given row and column to item. The model takes ownership of the item. If necessary, the row count and column count are increased to fit the item. The previous item at the given location (if there was one) is deleted.

This function was introduced in Qt 4.2.

See also item().

QStandardItemModel.setItem (self, int arow, QStandardItem aitem)

The aitem argument has it's ownership transferred to Qt.

This is an overloaded function.

bool QStandardItemModel.setItemData (self, QModelIndex index, dict-of-int-QVariant roles)

Reimplemented from QAbstractItemModel.setItemData().

See also itemData().

QStandardItemModel.setItemPrototype (self, QStandardItem item)

The item argument has it's ownership transferred to Qt.

Sets the item prototype for the model to the specified item. The model takes ownership of the prototype.

The item prototype acts as a QStandardItem factory, by relying on the QStandardItem.clone() function. To provide your own prototype, subclass QStandardItem, reimplement QStandardItem.clone() and set the prototype to be an instance of your custom class. Whenever QStandardItemModel needs to create an item on demand (for instance, when a view or item delegate calls setData())), the new items will be instances of your custom class.

This function was introduced in Qt 4.2.

See also itemPrototype() and QStandardItem.clone().

QStandardItemModel.setRowCount (self, int rows)

Sets the number of rows in this model to rows. If this is less than rowCount(), the data in the unwanted rows is discarded.

This function was introduced in Qt 4.2.

See also rowCount() and setColumnCount().

QStandardItemModel.setSortRole (self, int role)

QStandardItemModel.setVerticalHeaderItem (self, int row, QStandardItem item)

The item argument has it's ownership transferred to Qt.

Sets the vertical header item for row to item. The model takes ownership of the item. If necessary, the row count is increased to fit the item. The previous header item (if there was one) is deleted.

This function was introduced in Qt 4.2.

See also verticalHeaderItem(), setVerticalHeaderLabels(), and setHorizontalHeaderItem().

QStandardItemModel.setVerticalHeaderLabels (self, QStringList labels)

Sets the vertical header labels using labels. If necessary, the row count is increased to the size of labels.

This function was introduced in Qt 4.2.

See also setVerticalHeaderItem().

QStandardItemModel.sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Reimplemented from QAbstractItemModel.sort().

int QStandardItemModel.sortRole (self)

Qt.DropActions QStandardItemModel.supportedDropActions (self)

Reimplemented from QAbstractItemModel.supportedDropActions().

QStandardItemModel supports both copy and move.

list-of-QStandardItem QStandardItemModel.takeColumn (self, int column)

The list-of-QStandardItem result

Removes the given column without deleting the column items, and returns a list of pointers to the removed items. The model releases ownership of the items. For items in the column that have not been set, the corresponding pointers in the list will be 0.

This function was introduced in Qt 4.2.

See also takeRow().

QStandardItem QStandardItemModel.takeHorizontalHeaderItem (self, int column)

The QStandardItem result

Removes the horizontal header item at column from the header without deleting it, and returns a pointer to the item. The model releases ownership of the item.

This function was introduced in Qt 4.2.

See also horizontalHeaderItem() and takeVerticalHeaderItem().

QStandardItem QStandardItemModel.takeItem (self, int row, int column = 0)

The QStandardItem result

Removes the item at (row, column) without deleting it. The model releases ownership of the item.

This function was introduced in Qt 4.2.

See also item(), takeRow(), and takeColumn().

list-of-QStandardItem QStandardItemModel.takeRow (self, int row)

The list-of-QStandardItem result

Removes the given row without deleting the row items, and returns a list of pointers to the removed items. The model releases ownership of the items. For items in the row that have not been set, the corresponding pointers in the list will be 0.

This function was introduced in Qt 4.2.

See also takeColumn().

QStandardItem QStandardItemModel.takeVerticalHeaderItem (self, int row)

The QStandardItem result

Removes the vertical header item at row from the header without deleting it, and returns a pointer to the item. The model releases ownership of the item.

This function was introduced in Qt 4.2.

See also verticalHeaderItem() and takeHorizontalHeaderItem().

QStandardItem QStandardItemModel.verticalHeaderItem (self, int row)

Returns the vertical header item for row row if one has been set; otherwise returns 0.

This function was introduced in Qt 4.2.

See also setVerticalHeaderItem() and horizontalHeaderItem().


Qt Signal Documentation

void itemChanged (QStandardItem*)

This is the default overload of this signal.

This signal is emitted whenever the data of item has changed.

This function was introduced in Qt 4.2.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstate.html0000644000076500000240000003267112536324474017667 0ustar philstaff00000000000000 QState Class Reference
  Home · All Classes · Modules

QState Class Reference
[
QtCore module]

The QState class provides a general-purpose state for QStateMachine. More...

Inherits QAbstractState.

Inherited by QStateMachine.

Types

  • enum ChildMode { ExclusiveStates, ParallelStates }

Methods

Qt Signals


Detailed Description

The QState class provides a general-purpose state for QStateMachine.

QState objects can have child states, and can have transitions to other states. QState is part of The State Machine Framework.

The addTransition() function adds a transition. The removeTransition() function removes a transition. The transitions() function returns the state's outgoing transitions.

The assignProperty() function is used for defining property assignments that should be performed when a state is entered.

Top-level states must be passed a QStateMachine object as their parent state, or added to a state machine using QStateMachine.addState().

States with Child States

The childMode property determines how child states are treated. For non-parallel state groups, the setInitialState() function must be called to set the initial state. The child states are mutually exclusive states, and the state machine needs to know which child state to enter when the parent state is the target of a transition.

The state emits the QState.finished() signal when a final child state (QFinalState) is entered.

The setErrorState() sets the state's error state. The error state is the state that the state machine will transition to if an error is detected when attempting to enter the state (e.g. because no initial state has been set).


Type Documentation

QState.ChildMode

This enum specifies how a state's child states are treated.

Constant Value Description
QState.ExclusiveStates 0 The child states are mutually exclusive and an initial state must be set by calling QState.setInitialState().
QState.ParallelStates 1 The child states are parallel. When the parent state is entered, all its child states are entered in parallel.

Method Documentation

QState.__init__ (self, QState parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new state with the given parent state.

QState.__init__ (self, ChildMode childMode, QState parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new state with the given childMode and the given parent state.

QState.addTransition (self, QAbstractTransition transition)

The transition argument has it's ownership transferred to Qt.

Adds the given transition. The transition has this state as the source. This state takes ownership of the transition.

QSignalTransition QState.addTransition (self, QObject sender, SIGNAL() signal, QAbstractState target)

Adds a transition associated with the given signal of the given sender object, and returns the new QSignalTransition object. The transition has this state as the source, and the given target as the target state.

QSignalTransition QState.addTransition (self, signal signal, QAbstractState target)

Adds an unconditional transition from this state to the given target state, and returns then new transition object.

QAbstractTransition QState.addTransition (self, QAbstractState target)

The target argument has it's ownership transferred to Qt.

QState.assignProperty (self, QObject object, str name, QVariant value)

Instructs this state to set the property with the given name of the given object to the given value when the state is entered.

See also propertiesAssigned().

ChildMode QState.childMode (self)

QAbstractState QState.errorState (self)

bool QState.event (self, QEvent e)

Reimplemented from QObject.event().

QAbstractState QState.initialState (self)

QState.onEntry (self, QEvent event)

Reimplemented from QAbstractState.onEntry().

QState.onExit (self, QEvent event)

Reimplemented from QAbstractState.onExit().

QState.removeTransition (self, QAbstractTransition transition)

The transition argument

Removes the given transition from this state. The state releases ownership of the transition.

See also addTransition().

QState.setChildMode (self, ChildMode mode)

QState.setErrorState (self, QAbstractState state)

QState.setInitialState (self, QAbstractState state)

list-of-QAbstractTransition QState.transitions (self)

Returns this state's outgoing transitions (i.e. transitions where this state is the source state), or an empty list if this state has no outgoing transitions.

This function was introduced in Qt 4.7.

See also addTransition().


Qt Signal Documentation

void finished ()

This is the default overload of this signal.

This signal is emitted when a final child state of this state is entered.

See also QFinalState.

void propertiesAssigned ()

This is the default overload of this signal.

This signal is emitted when all properties have been assigned their final value. If the state assigns a value to one or more properties for which an animation exists (either set on the transition or as a default animation on the state machine), then the signal will not be emitted until all such animations have finished playing.

If there are no relevant animations, or no property assignments defined for the state, then the signal will be emitted immediately before the state is entered.

See also QState.assignProperty() and QAbstractTransition.addAnimation().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstatemachine-signalevent.html0000644000076500000240000000702012536324474023517 0ustar philstaff00000000000000 QStateMachine.SignalEvent Class Reference
  Home · All Classes · Modules

QStateMachine.SignalEvent Class Reference
[QtCore module]

The SignalEvent class represents a Qt signal event. More...

Inherits QEvent.

Methods


Detailed Description

The SignalEvent class represents a Qt signal event.

A signal event is generated by a QStateMachine in response to a Qt signal. The QSignalTransition class provides a transition associated with a signal event. QStateMachine.SignalEvent is part of The State Machine Framework.

The sender() function returns the object that generated the signal. The signalIndex() function returns the index of the signal. The arguments() function returns the arguments of the signal.


Method Documentation

list-of-QVariant SignalEvent.arguments (self)

Returns the arguments of the signal.

QObject SignalEvent.sender (self)

Returns the object that emitted the signal.

See also QObject.sender().

int SignalEvent.signalIndex (self)

Returns the index of the signal.

See also QMetaObject.indexOfSignal() and QMetaObject.method().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstatemachine-wrappedevent.html0000644000076500000240000000617612536324474023717 0ustar philstaff00000000000000 QStateMachine.WrappedEvent Class Reference
  Home · All Classes · Modules

QStateMachine.WrappedEvent Class Reference
[QtCore module]

The WrappedEvent class inherits QEvent and holds a clone of an event associated with a QObject. More...

Inherits QEvent.

Methods


Detailed Description

The WrappedEvent class inherits QEvent and holds a clone of an event associated with a QObject.

A wrapped event is generated by a QStateMachine in response to a Qt event. The QEventTransition class provides a transition associated with a such an event. QStateMachine.WrappedEvent is part of The State Machine Framework.

The object() function returns the object that generated the event. The event() function returns a clone of the original event.


Method Documentation

QEvent WrappedEvent.event (self)

Returns a clone of the original event.

QObject WrappedEvent.object (self)

Returns the object that the event is associated with.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstatemachine.html0000644000076500000240000006136512536324474021216 0ustar philstaff00000000000000 QStateMachine Class Reference
  Home · All Classes · Modules

QStateMachine Class Reference
[QtCore module]

The QStateMachine class provides a hierarchical finite state machine. More...

Inherits QState.

Types

Methods

Qt Signals


Detailed Description

The QStateMachine class provides a hierarchical finite state machine.

QStateMachine is based on the concepts and notation of Statecharts. QStateMachine is part of The State Machine Framework.

A state machine manages a set of states (classes that inherit from QAbstractState) and transitions (descendants of QAbstractTransition) between those states; these states and transitions define a state graph. Once a state graph has been built, the state machine can execute it. QStateMachine's execution algorithm is based on the State Chart XML (SCXML) algorithm. The framework's overview gives several state graphs and the code to build them.

Use the addState() function to add a top-level state to the state machine. States are removed with the removeState() function. Removing states while the machine is running is discouraged.

Before the machine can be started, the initial state must be set. The initial state is the state that the machine enters when started. You can then start() the state machine. The started() signal is emitted when the initial state is entered.

The machine is event driven and keeps its own event loop. Events are posted to the machine through postEvent(). Note that this means that it executes asynchronously, and that it will not progress without a running event loop. You will normally not have to post events to the machine directly as Qt's transitions, e.g., QEventTransition and its subclasses, handle this. But for custom transitions triggered by events, postEvent() is useful.

The state machine processes events and takes transitions until a top-level final state is entered; the state machine then emits the finished() signal. You can also stop() the state machine explicitly. The stopped() signal is emitted in this case.

The following snippet shows a state machine that will finish when a button is clicked:

 QPushButton button;

 QStateMachine machine;
 QState *s1 = new QState();
 s1->assignProperty(&button, "text", "Click me");

 QFinalState *s2 = new QFinalState();
 s1->addTransition(&button, SIGNAL(clicked()), s2);

 machine.addState(s1);
 machine.addState(s2);
 machine.setInitialState(s1);
 machine.start();

This code example uses QState, which inherits QAbstractState. The QState class provides a state that you can use to set properties and invoke methods on QObjects when the state is entered or exited. It also contains convenience functions for adding transitions, e.g., QSignalTransitions as in this example. See the QState class description for further details.

If an error is encountered, the machine will look for an error state, and if one is available, it will enter this state. The types of errors possible are described by the Error enum. After the error state is entered, the type of the error can be retrieved with error(). The execution of the state graph will not stop when the error state is entered. If no error state applies to the erroneous state, the machine will stop executing and an error message will be printed to the console.


Type Documentation

QStateMachine.Error

This enum type defines errors that can occur in the state machine at run time. When the state machine encounters an unrecoverable error at run time, it will set the error code returned by error(), the error message returned by errorString(), and enter an error state based on the context of the error.

Constant Value Description
QStateMachine.NoError 0 No error has occurred.
QStateMachine.NoInitialStateError 1 The machine has entered a QState with children which does not have an initial state set. The context of this error is the state which is missing an initial state.
QStateMachine.NoDefaultStateInHistoryStateError 2 The machine has entered a QHistoryState which does not have a default state set. The context of this error is the QHistoryState which is missing a default state.
QStateMachine.NoCommonAncestorForTransitionError 3 The machine has selected a transition whose source and targets are not part of the same tree of states, and thus are not part of the same state machine. Commonly, this could mean that one of the states has not been given any parent or added to any machine. The context of this error is the source state of the transition.

See also setErrorState().

QStateMachine.EventPriority

This enum type specifies the priority of an event posted to the state machine using postEvent().

Events of high priority are processed before events of normal priority.

Constant Value Description
QStateMachine.NormalPriority 0 The event has normal priority.
QStateMachine.HighPriority 1 The event has high priority.

QStateMachine.RestorePolicy

This enum specifies the restore policy type. The restore policy takes effect when the machine enters a state which sets one or more properties. If the restore policy is set to RestoreProperties, the state machine will save the original value of the property before the new value is set.

Later, when the machine either enters a state which does not set a value for the given property, the property will automatically be restored to its initial value.

Only one initial value will be saved for any given property. If a value for a property has already been saved by the state machine, it will not be overwritten until the property has been successfully restored.

Constant Value Description
QStateMachine.DontRestoreProperties 0 The state machine should not save the initial values of properties and restore them later.
QStateMachine.RestoreProperties 1 The state machine should save the initial values of properties and restore them later.

See also QStateMachine.globalRestorePolicy and QState.assignProperty().


Method Documentation

QStateMachine.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new state machine with the given parent.

QStateMachine.addDefaultAnimation (self, QAbstractAnimation animation)

Adds a default animation to be considered for any transition.

QStateMachine.addState (self, QAbstractState state)

The state argument has it's ownership transferred to Qt.

Adds the given state to this state machine. The state becomes a top-level state.

If the state is already in a different machine, it will first be removed from its old machine, and then added to this machine.

See also removeState() and setInitialState().

bool QStateMachine.cancelDelayedEvent (self, int id)

Cancels the delayed event identified by the given id. The id should be a value returned by a call to postDelayedEvent(). Returns true if the event was successfully cancelled, otherwise returns false.

Note: This function is thread-safe.

See also postDelayedEvent().

QStateMachine.clearError (self)

Clears the error string and error code of the state machine.

list-of-QAbstractState QStateMachine.configuration (self)

Returns the maximal consistent set of states (including parallel and final states) that this state machine is currently in. If a state s is in the configuration, it is always the case that the parent of s is also in c. Note, however, that the machine itself is not an explicit member of the configuration.

list-of-QAbstractAnimation QStateMachine.defaultAnimations (self)

Returns the list of default animations that will be considered for any transition.

Error QStateMachine.error (self)

Returns the error code of the last error that occurred in the state machine.

QString QStateMachine.errorString (self)

bool QStateMachine.event (self, QEvent e)

Reimplemented from QObject.event().

bool QStateMachine.eventFilter (self, QObject watched, QEvent event)

Reimplemented from QObject.eventFilter().

RestorePolicy QStateMachine.globalRestorePolicy (self)

bool QStateMachine.isAnimated (self)

bool QStateMachine.isRunning (self)

Returns whether this state machine is running.

start(), stop()

QStateMachine.onEntry (self, QEvent event)

Reimplemented from QAbstractState.onEntry().

This function will call start() to start the state machine.

QStateMachine.onExit (self, QEvent event)

Reimplemented from QAbstractState.onExit().

This function will call stop() to stop the state machine and subsequently emit the stopped() signal.

int QStateMachine.postDelayedEvent (self, QEvent event, int delay)

The event argument has it's ownership transferred to Qt.

Posts the given event for processing by this state machine, with the given delay in milliseconds. Returns an identifier associated with the delayed event, or -1 if the event could not be posted.

This function returns immediately. When the delay has expired, the event will be added to the state machine's event queue for processing. The state machine takes ownership of the event and deletes it once it has been processed.

You can only post events when the state machine is running.

Note: This function is thread-safe.

See also cancelDelayedEvent() and postEvent().

QStateMachine.postEvent (self, QEvent event, EventPriority priority = QStateMachine.NormalPriority)

The event argument has it's ownership transferred to Qt.

Posts the given event of the given priority for processing by this state machine.

This function returns immediately. The event is added to the state machine's event queue. Events are processed in the order posted. The state machine takes ownership of the event and deletes it once it has been processed.

You can only post events when the state machine is running.

Note: This function is thread-safe.

See also postDelayedEvent().

QStateMachine.removeDefaultAnimation (self, QAbstractAnimation animation)

Removes animation from the list of default animations.

QStateMachine.removeState (self, QAbstractState state)

The state argument

Removes the given state from this state machine. The state machine releases ownership of the state.

See also addState().

QStateMachine.setAnimated (self, bool enabled)

QStateMachine.setGlobalRestorePolicy (self, RestorePolicy restorePolicy)

QStateMachine.start (self)

This method is also a Qt slot with the C++ signature void start().

Starts this state machine. The machine will reset its configuration and transition to the initial state. When a final top-level state (QFinalState) is entered, the machine will emit the finished() signal.

Note: A state machine will not run without a running event loop, such as the main application event loop started with QCoreApplication.exec() or QApplication.exec().

See also started(), finished(), stop(), and initialState().

QStateMachine.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Stops this state machine. The state machine will stop processing events and then emit the stopped() signal.

See also stopped() and start().


Qt Signal Documentation

void started ()

This is the default overload of this signal.

This signal is emitted when the state machine has entered its initial state (QStateMachine.initialState).

See also QStateMachine.finished() and QStateMachine.start().

void stopped ()

This is the default overload of this signal.

This signal is emitted when the state machine has stopped.

See also QStateMachine.stop() and QStateMachine.finished().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstatictext.html0000644000076500000240000004326112536324513020732 0ustar philstaff00000000000000 QStaticText Class Reference
  Home · All Classes · Modules

QStaticText Class Reference
[QtGui module]

The QStaticText class enables optimized drawing of text when the text and its layout is updated rarely. More...

Types

Methods

Special Methods

  • bool __eq__ (self, QStaticText)
  • bool __ne__ (self, QStaticText)

Detailed Description

The QStaticText class enables optimized drawing of text when the text and its layout is updated rarely.

QStaticText provides a way to cache layout data for a block of text so that it can be drawn more efficiently than by using QPainter.drawText() in which the layout information is recalculated with every call.

The class primarily provides an optimization for cases where the text, its font and the transformations on the painter are static over several paint events. If the text or its layout is changed for every iteration, QPainter.drawText() is the more efficient alternative, since the static text's layout would have to be recalculated to take the new state into consideration.

Translating the painter will not cause the layout of the text to be recalculated, but will cause a very small performance impact on drawStaticText(). Altering any other parts of the painter's transformation or the painter's font will cause the layout of the static text to be recalculated. This should be avoided as often as possible to maximize the performance benefit of using QStaticText.

In addition, only affine transformations are supported by drawStaticText(). Calling drawStaticText() on a projected painter will perform slightly worse than using the regular drawText() call, so this should be avoided.

 class MyWidget: public QWidget
 {
 public:
     MyWidget(QWidget *parent = 0) : QWidget(parent), m_staticText("This is static text")

 protected:
     void paintEvent(QPaintEvent *)
     {
         QPainter painter(this);
         painter.drawStaticText(0, 0, m_staticText);
     }

 private:
     QStaticText m_staticText;
 };

The QStaticText class can be used to mimic the behavior of QPainter.drawText() to a specific point with no boundaries, and also when QPainter.drawText() is called with a bounding rectangle.

If a bounding rectangle is not required, create a QStaticText object without setting a preferred text width. The text will then occupy a single line.

If you set a text width on the QStaticText object, this will bound the text. The text will be formatted so that no line exceeds the given width. The text width set for QStaticText will not automatically be used for clipping. To achieve clipping in addition to line breaks, use QPainter.setClipRect(). The position of the text is decided by the argument passed to QPainter.drawStaticText() and can change from call to call with a minimal impact on performance.

For extra convenience, it is possible to apply formatting to the text using the HTML subset supported by QTextDocument. QStaticText will attempt to guess the format of the input text using Qt.mightBeRichText(), and interpret it as rich text if this function returns true. To force QStaticText to display its contents as either plain text or rich text, use the function QStaticText.setTextFormat() and pass in, respectively, Qt.PlainText and Qt.RichText.

QStaticText can only represent text, so only HTML tags which alter the layout or appearance of the text will be respected. Adding an image to the input HTML, for instance, will cause the image to be included as part of the layout, affecting the positions of the text glyphs, but it will not be displayed. The result will be an empty area the size of the image in the output. Similarly, using tables will cause the text to be laid out in table format, but the borders will not be drawn.

If it's the first time the static text is drawn, or if the static text, or the painter's font has been altered since the last time it was drawn, the text's layout has to be recalculated. On some paint engines, changing the matrix of the painter will also cause the layout to be recalculated. In particular, this will happen for any engine except for the OpenGL2 paint engine. Recalculating the layout will impose an overhead on the QPainter.drawStaticText() call where it occurs. To avoid this overhead in the paint event, you can call prepare() ahead of time to ensure that the layout is calculated.


Type Documentation

QStaticText.PerformanceHint

This enum the different performance hints that can be set on the QStaticText. These hints can be used to indicate that the QStaticText should use additional caches, if possible, to improve performance at the expense of memory. In particular, setting the performance hint AggressiveCaching on the QStaticText will improve performance when using the OpenGL graphics system or when drawing to a QGLWidget.

Constant Value Description
QStaticText.ModerateCaching 0 Do basic caching for high performance at a low memory cost.
QStaticText.AggressiveCaching 1 Use additional caching when available. This may improve performance at a higher memory cost.

Method Documentation

QStaticText.__init__ (self)

Constructs an empty QStaticText

QStaticText.__init__ (self, QString text)

Constructs a QStaticText object with the given text.

QStaticText.__init__ (self, QStaticText other)

Constructs a QStaticText object which is a copy of other.

PerformanceHint QStaticText.performanceHint (self)

Returns which performance hint is set for the QStaticText.

See also setPerformanceHint().

QStaticText.prepare (self, QTransform matrix = QTransform(), QFont font = QFont())

Prepares the QStaticText object for being painted with the given matrix and the given font to avoid overhead when the actual drawStaticText() call is made.

When drawStaticText() is called, the layout of the QStaticText will be recalculated if any part of the QStaticText object has changed since the last time it was drawn. It will also be recalculated if the painter's font is not the same as when the QStaticText was last drawn, or, on any other paint engine than the OpenGL2 engine, if the painter's matrix has been altered since the static text was last drawn.

To avoid the overhead of creating the layout the first time you draw the QStaticText after making changes, you can use the prepare() function and pass in the matrix and font you expect to use when drawing the text.

See also QPainter.setFont() and QPainter.setMatrix().

QStaticText.setPerformanceHint (self, PerformanceHint performanceHint)

Sets the performance hint of the QStaticText according to the performanceHint provided. The performanceHint is used to customize how much caching is done internally to improve performance.

The default is QStaticText.ModerateCaching.

Note: This function will cause the layout of the text to require recalculation.

See also performanceHint().

QStaticText.setText (self, QString text)

Sets the text of the QStaticText to text.

Note: This function will cause the layout of the text to require recalculation.

See also text().

QStaticText.setTextFormat (self, Qt.TextFormat textFormat)

Sets the text format of the QStaticText to textFormat. If textFormat is set to Qt.AutoText (the default), the format of the text will try to be determined using the function Qt.mightBeRichText(). If the text format is Qt.PlainText, then the text will be displayed as is, whereas it will be interpreted as HTML if the format is Qt.RichText. HTML tags that alter the font of the text, its color, or its layout are supported by QStaticText.

Note: This function will cause the layout of the text to require recalculation.

See also textFormat(), setText(), and text().

QStaticText.setTextOption (self, QTextOption textOption)

Sets the text option structure that controls the layout process to the given textOption.

See also textOption().

QStaticText.setTextWidth (self, float textWidth)

Sets the preferred width for this QStaticText. If the text is wider than the specified width, it will be broken into multiple lines and grow vertically. If the text cannot be split into multiple lines, it will be larger than the specified textWidth.

Setting the preferred text width to a negative number will cause the text to be unbounded.

Use size() to get the actual size of the text.

Note: This function will cause the layout of the text to require recalculation.

See also textWidth() and size().

QSizeF QStaticText.size (self)

Returns the size of the bounding rect for this QStaticText.

See also textWidth().

QString QStaticText.text (self)

Returns the text of the QStaticText.

See also setText().

Qt.TextFormat QStaticText.textFormat (self)

Returns the text format of the QStaticText.

See also setTextFormat(), setText(), and text().

QTextOption QStaticText.textOption (self)

Returns the current text option used to control the layout process.

See also setTextOption().

float QStaticText.textWidth (self)

Returns the preferred width for this QStaticText.

See also setTextWidth().

bool QStaticText.__eq__ (self, QStaticText)

bool QStaticText.__ne__ (self, QStaticText)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstatusbar.html0000644000076500000240000004445312536324513020552 0ustar philstaff00000000000000 QStatusBar Class Reference
  Home · All Classes · Modules

QStatusBar Class Reference
[QtGui module]

The QStatusBar class provides a horizontal bar suitable for presenting status information. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QStatusBar class provides a horizontal bar suitable for presenting status information.

Each status indicator falls into one of three categories:

  • Temporary - briefly occupies most of the status bar. Used to explain tool tip texts or menu entries, for example.
  • Normal - occupies part of the status bar and may be hidden by temporary messages. Used to display the page and line number in a word processor, for example.
  • Permanent - is never hidden. Used for important mode indications, for example, some applications put a Caps Lock indicator in the status bar.

QStatusBar lets you display all three types of indicators.

Typically, a request for the status bar functionality occurs in relation to a QMainWindow object. QMainWindow provides a main application window, with a menu bar, tool bars, dock widgets and a status bar around a large central widget. The status bar can be retrieved using the QMainWindow.statusBar() function, and replaced using the QMainWindow.setStatusBar() function.

Use the showMessage() slot to display a temporary message:

 void MainWindow.createStatusBar()
 {
     statusBar()->showMessage(tr("Ready"));
 }

To remove a temporary message, use the clearMessage() slot, or set a time limit when calling showMessage(). For example:

 void MainWindow.print()
 {
 #ifndef QT_NO_PRINTDIALOG
     QTextDocument *document = textEdit->document();
     QPrinter printer;

     QPrintDialog *dlg = new QPrintDialog(&printer, this);
     if (dlg->exec() != QDialog.Accepted)
         return;

     document->print(&printer);

     statusBar()->showMessage(tr("Ready"), 2000);
 #endif
 }

Use the currentMessage() function to retrieve the temporary message currently shown. The QStatusBar class also provide the messageChanged() signal which is emitted whenever the temporary status message changes.

Normal and Permanent messages are displayed by creating a small widget (QLabel, QProgressBar or even QToolButton) and then adding it to the status bar using the addWidget() or the addPermanentWidget() function. Use the removeWidget() function to remove such messages from the status bar.

 statusBar()->addWidget(new MyReadWriteIndication);

By default QStatusBar provides a QSizeGrip in the lower-right corner. You can disable it using the setSizeGripEnabled() function. Use the isSizeGripEnabled() function to determine the current status of the size grip.

A status bar shown in the Plastique widget style


Method Documentation

QStatusBar.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a status bar with a size grip and the given parent.

See also setSizeGripEnabled().

QStatusBar.addPermanentWidget (self, QWidget widget, int stretch = 0)

The widget argument has it's ownership transferred to Qt.

Adds the given widget permanently to this status bar, reparenting the widget if it isn't already a child of this QStatusBar object. The stretch parameter is used to compute a suitable size for the given widget as the status bar grows and shrinks. The default stretch factor is 0, i.e giving the widget a minimum of space.

Permanently means that the widget may not be obscured by temporary messages. It is is located at the far right of the status bar.

See also insertPermanentWidget(), removeWidget(), and addWidget().

QStatusBar.addWidget (self, QWidget widget, int stretch = 0)

The widget argument has it's ownership transferred to Qt.

Adds the given widget to this status bar, reparenting the widget if it isn't already a child of this QStatusBar object. The stretch parameter is used to compute a suitable size for the given widget as the status bar grows and shrinks. The default stretch factor is 0, i.e giving the widget a minimum of space.

The widget is located to the far left of the first permanent widget (see addPermanentWidget()) and may be obscured by temporary messages.

See also insertWidget(), removeWidget(), and addPermanentWidget().

QStatusBar.clearMessage (self)

This method is also a Qt slot with the C++ signature void clearMessage().

Removes any temporary message being shown.

See also currentMessage(), showMessage(), and removeWidget().

QString QStatusBar.currentMessage (self)

Returns the temporary message currently shown, or an empty string if there is no such message.

See also showMessage().

bool QStatusBar.event (self, QEvent)

Reimplemented from QObject.event().

QStatusBar.hideOrShow (self)

Ensures that the right widgets are visible.

Used by the showMessage() and clearMessage() functions.

int QStatusBar.insertPermanentWidget (self, int index, QWidget widget, int stretch = 0)

The widget argument has it's ownership transferred to Qt.

Inserts the given widget at the given index permanently to this status bar, reparenting the widget if it isn't already a child of this QStatusBar object. If index is out of range, the widget is appended (in which case it is the actual index of the widget that is returned).

The stretch parameter is used to compute a suitable size for the given widget as the status bar grows and shrinks. The default stretch factor is 0, i.e giving the widget a minimum of space.

Permanently means that the widget may not be obscured by temporary messages. It is is located at the far right of the status bar.

This function was introduced in Qt 4.2.

See also addPermanentWidget(), removeWidget(), and addWidget().

int QStatusBar.insertWidget (self, int index, QWidget widget, int stretch = 0)

The widget argument has it's ownership transferred to Qt.

Inserts the given widget at the given index to this status bar, reparenting the widget if it isn't already a child of this QStatusBar object. If index is out of range, the widget is appended (in which case it is the actual index of the widget that is returned).

The stretch parameter is used to compute a suitable size for the given widget as the status bar grows and shrinks. The default stretch factor is 0, i.e giving the widget a minimum of space.

The widget is located to the far left of the first permanent widget (see addPermanentWidget()) and may be obscured by temporary messages.

This function was introduced in Qt 4.2.

See also addWidget(), removeWidget(), and addPermanentWidget().

bool QStatusBar.isSizeGripEnabled (self)

QStatusBar.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

Shows the temporary message, if appropriate, in response to the paint event.

QStatusBar.reformat (self)

Changes the status bar's appearance to account for item changes.

Special subclasses may need this function, but geometry management will usually take care of any necessary rearrangements.

QStatusBar.removeWidget (self, QWidget widget)

Removes the specified widget from the status bar.

Note: This function does not delete the widget but hides it. To add the widget again, you must call both the addWidget() and show() functions.

See also addWidget(), addPermanentWidget(), and clearMessage().

QStatusBar.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QStatusBar.setSizeGripEnabled (self, bool)

QStatusBar.showEvent (self, QShowEvent)

Reimplemented from QWidget.showEvent().

QStatusBar.showMessage (self, QString message, int msecs = 0)

This method is also a Qt slot with the C++ signature void showMessage(const QString&,int = 0).

Hides the normal status indications and displays the given message for the specified number of milli-seconds (timeout). If timeout is 0 (default), the message remains displayed until the clearMessage() slot is called or until the showMessage() slot is called again to change the message.

Note that showMessage() is called to show temporary explanations of tool tip texts, so passing a timeout of 0 is not sufficient to display a permanent message.

See also messageChanged(), currentMessage(), and clearMessage().


Qt Signal Documentation

void messageChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the temporary status message changes. The new temporary message is passed in the message parameter which is a null-string when the message has been removed.

See also showMessage() and clearMessage().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstatustipevent.html0000644000076500000240000001277512536324503021645 0ustar philstaff00000000000000 QStatusTipEvent Class Reference
  Home · All Classes · Modules

QStatusTipEvent Class Reference
[QtGui module]

The QStatusTipEvent class provides an event that is used to show messages in a status bar. More...

Inherits QEvent.

Methods


Detailed Description

The QStatusTipEvent class provides an event that is used to show messages in a status bar.

Status tips can be set on a widget using the QWidget.setStatusTip() function. They are shown in the status bar when the mouse cursor enters the widget. For example:

 MainWindow.MainWindow(QWidget *parent)
     : QMainWindow(parent)
 {
     QWidget *myWidget = new QWidget;
     myWidget->setStatusTip(tr("This is my widget."));

     setCentralWidget(myWidget);
     ...
 }

Widget with status tip.

Status tips can also be set on actions using the QAction.setStatusTip() function:

 MainWindow.MainWindow(QWidget *parent)
     : QMainWindow(parent)
 {
     QMenu *fileMenu = menuBar()->addMenu(tr("File"));

     QAction *newAct = new QAction(tr("&New"), this);
     newAct->setStatusTip(tr("Create a new file."));
     fileMenu->addAction(newAct);
     ...
 }

Action with status tip.

Finally, status tips are supported for the item view classes through the Qt.StatusTipRole enum value.


Method Documentation

QStatusTipEvent.__init__ (self, QString tip)

Constructs a status tip event with the text specified by tip.

See also tip().

QStatusTipEvent.__init__ (self, QStatusTipEvent)

QString QStatusTipEvent.tip (self)

Returns the message to show in the status bar.

See also QStatusBar.showMessage().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstring-sectionflags.html0000644000076500000240000001411212536324475022523 0ustar philstaff00000000000000 QString.SectionFlags Class Reference
  Home · All Classes · Modules

QString.SectionFlags Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

SectionFlag may be used whenever SectionFlags is expected.


Method Documentation

SectionFlags.__init__ (self, SectionFlags)

SectionFlags.__init__ (self, int)

SectionFlags.__init__ (self)

SectionFlags SectionFlags.__and__ (self, int mask)

int SectionFlags.__bool__ (self)

bool SectionFlags.__eq__ (self, SectionFlags f)

SectionFlags SectionFlags.__iand__ (self, int mask)

int SectionFlags.__int__ (self)

SectionFlags SectionFlags.__invert__ (self)

SectionFlags SectionFlags.__ior__ (self, SectionFlags f)

SectionFlags SectionFlags.__ixor__ (self, SectionFlags f)

bool SectionFlags.__ne__ (self, SectionFlags f)

SectionFlags SectionFlags.__or__ (self, SectionFlags f)

SectionFlags SectionFlags.__or__ (self, int f)

SectionFlags SectionFlags.__xor__ (self, SectionFlags f)

SectionFlags SectionFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstring.html0000644000076500000240000052336412536324475020062 0ustar philstaff00000000000000 QString Class Reference
  Home · All Classes · Modules

QString Class Reference
[QtCore module]

The QString class provides a Unicode character string. More...

Types

  • enum NormalizationForm { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC }
  • enum SectionFlag { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps }
  • enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }

Methods

  • __init__ (self)
  • __init__ (self, QKeySequence)
  • __init__ (self, QScriptString)
  • __init__ (self, int size, QChar c)
  • __init__ (self, QString s)
  • __init__ (self, QByteArray a)
  • __init__ (self, QUuid)
  • QString append (self, QString s)
  • QString append (self, QLatin1String s)
  • QString append (self, QByteArray s)
  • QString arg (self, int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' '))
  • QString arg (self, float a, int fieldWidth = 0, str format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' '))
  • QString arg (self, int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' '))
  • QString arg (self, int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' '))
  • QString arg (self, QString a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' '))
  • QString arg (self, QString a1, QString a2)
  • QString arg (self, QString a1, QString a2, QString a3)
  • QString arg (self, QString a1, QString a2, QString a3, QString a4)
  • QString arg (self, QString a1, QString a2, QString a3, QString a4, QString a5)
  • QString arg (self, QString a1, QString a2, QString a3, QString a4, QString a5, QString a6)
  • QString arg (self, QString a1, QString a2, QString a3, QString a4, QString a5, QString a6, QString a7)
  • QString arg (self, QString a1, QString a2, QString a3, QString a4, QString a5, QString a6, QString a7, QString a8)
  • QString arg (self, QString a1, QString a2, QString a3, QString a4, QString a5, QString a6, QString a7, QString a8, QString a9)
  • QChar at (self, int i)
  • int capacity (self)
  • chop (self, int n)
  • clear (self)
  • int compare (self, QString s)
  • int compare (self, QString s, Qt.CaseSensitivity cs)
  • int compare (self, QLatin1String other, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int compare (self, QStringRef ref, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool contains (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool contains (self, QStringRef s, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool contains (self, QRegExp rx)
  • int count (self)
  • int count (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int count (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int count (self, QRegExp)
  • bool endsWith (self, QString s, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool endsWith (self, QStringRef s, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool endsWith (self, QLatin1String s, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QString fill (self, QChar ch, int size = -1)
  • int indexOf (self, QString str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int indexOf (self, QStringRef str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int indexOf (self, QLatin1String str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int indexOf (self, QRegExp rx, int from = 0)
  • QString insert (self, int i, QString s)
  • QString insert (self, int i, QLatin1String s)
  • bool isEmpty (self)
  • bool isNull (self)
  • bool isRightToLeft (self)
  • bool isSimpleText (self)
  • int lastIndexOf (self, QString str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int lastIndexOf (self, QStringRef str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int lastIndexOf (self, QLatin1String str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int lastIndexOf (self, QRegExp rx, int from = -1)
  • QString left (self, int len)
  • QString leftJustified (self, int width, QChar fillChar = QLatin1Char(' '), bool truncate = False)
  • int length (self)
  • int localeAwareCompare (self, QString s)
  • int localeAwareCompare (self, QStringRef s)
  • QString mid (self, int position, int n = -1)
  • QString normalized (self, NormalizationForm mode)
  • QString normalized (self, NormalizationForm mode, QChar.UnicodeVersion version)
  • QString prepend (self, QString s)
  • QString prepend (self, QLatin1String s)
  • QString prepend (self, QByteArray s)
  • push_back (self, QString s)
  • push_front (self, QString s)
  • QString remove (self, int i, int len)
  • QString remove (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QString remove (self, QRegExp rx)
  • QString repeated (self, int times)
  • QString replace (self, int i, int len, QString after)
  • QString replace (self, QString before, QString after, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QString replace (self, QRegExp rx, QString after)
  • QString replace (self, QLatin1String before, QLatin1String after, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QString replace (self, QLatin1String before, QString after, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QString replace (self, QString before, QLatin1String after, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • reserve (self, int asize)
  • resize (self, int size)
  • QString right (self, int len)
  • QString rightJustified (self, int width, QChar fillChar = QLatin1Char(' '), bool truncate = False)
  • QString section (self, QString sep, int start, int end = -1, SectionFlags flags = QString.SectionDefault)
  • QString section (self, QRegExp reg, int start, int end = -1, SectionFlags flags = QString.SectionDefault)
  • QString setNum (self, int n, int base = 10)
  • QString setNum (self, float n, str format = 'g', int precision = 6)
  • QString setNum (self, int n, int base = 10)
  • QString setNum (self, int n, int base = 10)
  • QString simplified (self)
  • int size (self)
  • QStringList split (self, QString sep, SplitBehavior behavior = QString.KeepEmptyParts, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QStringList split (self, QRegExp sep, SplitBehavior behavior = QString.KeepEmptyParts)
  • squeeze (self)
  • bool startsWith (self, QString s, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool startsWith (self, QStringRef s, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool startsWith (self, QLatin1String s, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • swap (self, QString other)
  • QByteArray toAscii (self)
  • QString toCaseFolded (self)
  • (float, bool ok) toDouble (self)
  • (float, bool ok) toFloat (self)
  • (int, bool ok) toInt (self, int base = 10)
  • QByteArray toLatin1 (self)
  • QByteArray toLocal8Bit (self)
  • (int, bool ok) toLong (self, int base = 10)
  • (int, bool ok) toLongLong (self, int base = 10)
  • QString toLower (self)
  • (int, bool ok) toShort (self, int base = 10)
  • (int, bool ok) toUInt (self, int base = 10)
  • (int, bool ok) toULong (self, int base = 10)
  • (int, bool ok) toULongLong (self, int base = 10)
  • QString toUpper (self)
  • (int, bool ok) toUShort (self, int base = 10)
  • QByteArray toUtf8 (self)
  • QString trimmed (self)
  • truncate (self, int pos)

Static Methods

  • int compare (QString s1, QString s2)
  • int compare (QString s1, QString s2, Qt.CaseSensitivity cs)
  • int compare (QString s1, QLatin1String s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int compare (QLatin1String s1, QString s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int compare (QString s1, QStringRef s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QString fromAscii (str str, int size = -1)
  • QString fromLatin1 (str str, int size = -1)
  • QString fromLocal8Bit (str str, int size = -1)
  • QString fromUtf8 (str str, int size = -1)
  • int localeAwareCompare (QString s1, QString s2)
  • int localeAwareCompare (QString s1, QStringRef s2)
  • QString number (int n, int base = 10)
  • QString number (float n, str format = 'g', int precision = 6)
  • QString number (int n, int base = 10)
  • QString number (int n, int base = 10)

Special Methods


Detailed Description

This class can be pickled.

A Python string or unicode object, a QLatin1String or a QChar may be used whenever a QString is expected.

The QString class provides a Unicode character string.

QString stores a string of 16-bit QChars, where each QChar corresponds one Unicode 4.0 character. (Unicode characters with code values above 65535 are stored using surrogate pairs, i.e., two consecutive QChars.)

Unicode is an international standard that supports most of the writing systems in use today. It is a superset of US-ASCII (ANSI X3.4-1986) and Latin-1 (ISO 8859-1), and all the US-ASCII/Latin-1 characters are available at the same code positions.

Behind the scenes, QString uses implicit sharing (copy-on-write) to reduce memory usage and to avoid the needless copying of data. This also helps reduce the inherent overhead of storing 16-bit characters instead of 8-bit characters.

In addition to QString, Qt also provides the QByteArray class to store raw bytes and traditional 8-bit '\0'-terminated strings. For most purposes, QString is the class you want to use. It is used throughout the Qt API, and the Unicode support ensures that your applications will be easy to translate if you want to expand your application's market at some point. The two main cases where QByteArray is appropriate are when you need to store raw binary data, and when memory conservation is critical (e.g., with Qt for Embedded Linux).

Initializing a String

One way to initialize a QString is simply to pass a const char * to its constructor. For example, the following code creates a QString of size 5 containing the data "Hello":

 QString str = "Hello";

QString converts the const char * data into Unicode using the fromAscii() function. By default, fromAscii() treats character above 128 as Latin-1 characters, but this can be changed by calling QTextCodec.setCodecForCStrings().

In all of the QString functions that take const char * parameters, the const char * is interpreted as a classic C-style '\0'-terminated string. It is legal for the const char * parameter to be 0.

You can also provide string data as an array of QChars:

 static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };
 QString str(data, 4);

QString makes a deep copy of the QChar data, so you can modify it later without experiencing side effects. (If for performance reasons you don't want to take a deep copy of the character data, use QString.fromRawData() instead.)

Another approach is to set the size of the string using resize() and to initialize the data character per character. QString uses 0-based indexes, just like C++ arrays. To access the character at a particular index position, you can use operator[](). On non-const strings, operator[]() returns a reference to a character that can be used on the left side of an assignment. For example:

 QString str;
 str.resize(4);

 str[0] = QChar('U');
 str[1] = QChar('n');
 str[2] = QChar(0x10e3);
 str[3] = QChar(0x03a3);

For read-only access, an alternative syntax is to use the at() function:

 QString str;

 for (int i = 0; i < str.size(); ++i) {
     if (str.at(i) >= QChar('a') && str.at(i) <= QChar('f'))
         qDebug() << "Found character in range [a-f]";
 }

The at() function can be faster than operator[](), because it never causes a deep copy to occur. Alternatively, use the left(), right(), or mid() functions to extract several characters at a time.

A QString can embed '\0' characters (QChar.Null). The size() function always returns the size of the whole string, including embedded '\0' characters.

After a call to the resize() function, newly allocated characters have undefined values. To set all the characters in the string to a particular value, use the fill() function.

QString provides dozens of overloads designed to simplify string usage. For example, if you want to compare a QString with a string literal, you can write code like this and it will work as expected:

 QString str;

 if (str == "auto" || str == "extern"
         || str == "static" || str == "register") {
     // ...
 }

You can also pass string literals to functions that take QStrings as arguments, invoking the QString(const char *) constructor. Similarly, you can pass a QString to a function that takes a const char * argument using the qPrintable() macro which returns the given QString as a const char *. This is equivalent to calling <QString>.toLocal8Bit().constData().

Manipulating String Data

QString provides the following basic functions for modifying the character data: append(), prepend(), insert(), replace(), and remove(). For example:

 QString str = "and";
 str.prepend("rock ");     // str == "rock and"
 str.append(" roll");        // str == "rock and roll"
 str.replace(5, 3, "&");   // str == "rock & roll"

If you are building a QString gradually and know in advance approximately how many characters the QString will contain, you can call reserve(), asking QString to preallocate a certain amount of memory. You can also call capacity() to find out how much memory QString actually allocated.

The replace() and remove() functions' first two arguments are the position from which to start erasing and the number of characters that should be erased. If you want to replace all occurrences of a particular substring with another, use one of the two-parameter replace() overloads.

A frequent requirement is to remove whitespace characters from a string ('\n', '\t', ' ', etc.). If you want to remove whitespace from both ends of a QString, use the trimmed() function. If you want to remove whitespace from both ends and replace multiple consecutive whitespaces with a single space character within the string, use simplified().

If you want to find all occurrences of a particular character or substring in a QString, use the indexOf() or lastIndexOf() functions. The former searches forward starting from a given index position, the latter searches backward. Both return the index position of the character or substring if they find it; otherwise, they return -1. For example, here's a typical loop that finds all occurrences of a particular substring:

 QString str = "We must be <b>bold</b>, very <b>bold</b>";
 int j = 0;

 while ((j = str.indexOf("<b>", j)) != -1) {
     qDebug() << "Found <b> tag at index position" << j;
     ++j;
 }

QString provides many functions for converting numbers into strings and strings into numbers. See the arg() functions, the setNum() functions, the number() static functions, and the toInt(), toDouble(), and similar functions.

To get an upper- or lowercase version of a string use toUpper() or toLower().

Lists of strings are handled by the QStringList class. You can split a string into a list of strings using the split() function, and join a list of strings into a single string with an optional separator using QStringList.join(). You can obtain a list of strings from a string list that contain a particular substring or that match a particular QRegExp using the QStringList.filter() function.

Querying String Data

If you want to see if a QString starts or ends with a particular substring use startsWith() or endsWith(). If you simply want to check whether a QString contains a particular character or substring, use the contains() function. If you want to find out how many times a particular character or substring occurs in the string, use count().

QStrings can be compared using overloaded operators such as operator<(), operator<=(), operator==(), operator>=(), and so on. Note that the comparison is based exclusively on the numeric Unicode values of the characters. It is very fast, but is not what a human would expect; the QString.localeAwareCompare() function is a better choice for sorting user-interface strings.

To obtain a pointer to the actual character data, call data() or constData(). These functions return a pointer to the beginning of the QChar data. The pointer is guaranteed to remain valid until a non-const function is called on the QString.

Converting Between 8-Bit Strings and Unicode Strings

QString provides the following four functions that return a const char * version of the string as QByteArray: toAscii(), toLatin1(), toUtf8(), and toLocal8Bit().

  • toAscii() returns an 8-bit string encoded using the codec specified by QTextCodec.codecForCStrings (by default, that is Latin 1).
  • toLatin1() returns a Latin-1 (ISO 8859-1) encoded 8-bit string.
  • toUtf8() returns a UTF-8 encoded 8-bit string. UTF-8 is a superset of US-ASCII (ANSI X3.4-1986) that supports the entire Unicode character set through multibyte sequences.
  • toLocal8Bit() returns an 8-bit string using the system's local encoding.

To convert from one of these encodings, QString provides fromAscii(), fromLatin1(), fromUtf8(), and fromLocal8Bit(). Other encodings are supported through the QTextCodec class.

As mentioned above, QString provides a lot of functions and operators that make it easy to interoperate with const char * strings. But this functionality is a double-edged sword: It makes QString more convenient to use if all strings are US-ASCII or Latin-1, but there is always the risk that an implicit conversion from or to const char * is done using the wrong 8-bit encoding. To minimize these risks, you can turn off these implicit conversions by defining the following two preprocessor symbols:

  • QT_NO_CAST_FROM_ASCII disables automatic conversions from C string literals and pointers to Unicode.
  • QT_NO_CAST_TO_ASCII disables automatic conversion from QString to C strings.

One way to define these preprocessor symbols globally for your application is to add the following entry to your qmake project file:

 DEFINES += QT_NO_CAST_FROM_ASCII \
            QT_NO_CAST_TO_ASCII

You then need to explicitly call fromAscii(), fromLatin1(), fromUtf8(), or fromLocal8Bit() to construct a QString from an 8-bit string, or use the lightweight QLatin1String class, for example:

 QString url = QLatin1String("http://www.unicode.org/");

Similarly, you must call toAscii(), toLatin1(), toUtf8(), or toLocal8Bit() explicitly to convert the QString to an 8-bit string. (Other encodings are supported through the QTextCodec class.)

Note for C Programmers
Due to C++'s type system and the fact that QString is implicitly shared, QStrings may be treated like ints or other basic types. For example:
 QString Widget.boolToString(bool b)
 {
     QString result;
     if (b)
         result = "True";
     else
         result = "False";
     return result;
 }

The result variable, is a normal variable allocated on the stack. When return is called, and because we're returning by value, the copy constructor is called and a copy of the string is returned. No actual copying takes place thanks to the implicit sharing.

Distinction Between Null and Empty Strings

For historical reasons, QString distinguishes between a null string and an empty string. A null string is a string that is initialized using QString's default constructor or by passing (const char *)0 to the constructor. An empty string is any string with size 0. A null string is always empty, but an empty string isn't necessarily null:

 QString().isNull();               // returns true
 QString().isEmpty();              // returns true

 QString("").isNull();             // returns false
 QString("").isEmpty();            // returns true

 QString("abc").isNull();          // returns false
 QString("abc").isEmpty();         // returns false

All functions except isNull() treat null strings the same as empty strings. For example, toAscii().constData() returns a pointer to a '\0' character for a null string (not a null pointer), and QString() compares equal to QString(""). We recommend that you always use the isEmpty() function and avoid isNull().

Argument Formats

In member functions where an argument format can be specified (e.g., arg(), number()), the argument format can be one of the following:

Format Meaning
e format as [-]9.9e[+|-]999
E format as [-]9.9E[+|-]999
f format as [-]9.9
g use e or f format, whichever is the most concise
G use E or f format, whichever is the most concise

A precision is also specified with the argument format. For the 'e', 'E', and 'f' formats, the precision represents the number of digits after the decimal point. For the 'g' and 'G' formats, the precision represents the maximum number of significant digits (trailing zeroes are omitted).

More Efficient String Construction

Using the QString '+' operator, it is easy to construct a complex string from multiple substrings. You will often write code like this:

     QString foo;
     QString type = "long";

     foo->setText(QLatin1String("vector<") + type + QLatin1String(">.iterator"));

     if (foo.startsWith("(" + type + ") 0x"))
         ...

There is nothing wrong with either of these string constructions, but there are a few hidden inefficiencies. Beginning with Qt 4.6, you can eliminate them.

First, multiple uses of the '+' operator usually means multiple memory allocations. When concatenating n substrings, where n > 2, there can be as many as n - 1 calls to the memory allocator.

Second, QLatin1String does not store its length internally but calls qstrlen() when it needs to know its length.

In 4.6, an internal template class QStringBuilder has been added along with a few helper functions. This class is marked internal and does not appear in the documentation, because you aren't meant to instantiate it in your code. Its use will be automatic, as described below. The class is found in src/corelib/tools/qstringbuilder.cpp if you want to have a look at it.

QStringBuilder uses expression templates and reimplements the '%' operator so that when you use '%' for string concatenation instead of '+', multiple substring concatenations will be postponed until the final result is about to be assigned to a QString. At this point, the amount of memory required for the final result is known. The memory allocator is then called once to get the required space, and the substrings are copied into it one by one.

QLatin1Literal is a second internal class that can replace QLatin1String, which can't be changed for compatibility reasons. QLatin1Literal stores its length, thereby saving time when QStringBuilder computes the amount of memory required for the final string.

Additional efficiency is gained by inlining and reduced reference counting (the QString created from a QStringBuilder typically has a ref count of 1, whereas QString.append() needs an extra test).

There are three ways you can access this improved method of string construction. The straightforward way is to include QStringBuilder wherever you want to use it, and use the '%' operator instead of '+' when concatenating strings:

     #include <QStringBuilder>

     QString hello("hello");
     QStringRef el(&hello, 2, 3);
     QLatin1String world("world");
     QString message =  hello % el % world % QChar('!');

A more global approach which is the most convenient but not entirely source compatible, is to this define in your .pro file:

     DEFINES *= QT_USE_QSTRINGBUILDER

and the '+' will automatically be performed as the QStringBuilder '%' everywhere.


Type Documentation

QString.NormalizationForm

This enum describes the various normalized forms of Unicode text.

Constant Value Description
QString.NormalizationForm_D 0 Canonical Decomposition
QString.NormalizationForm_C 1 Canonical Decomposition followed by Canonical Composition
QString.NormalizationForm_KD 2 Compatibility Decomposition
QString.NormalizationForm_KC 3 Compatibility Decomposition followed by Canonical Composition

See also normalized() and Unicode Standard Annex #15.

QString.SectionFlag

This enum specifies flags that can be used to affect various aspects of the section() function's behavior with respect to separators and empty fields.

Constant Value Description
QString.SectionDefault 0x00 Empty fields are counted, leading and trailing separators are not included, and the separator is compared case sensitively.
QString.SectionSkipEmpty 0x01 Treat empty fields as if they don't exist, i.e. they are not considered as far as start and end are concerned.
QString.SectionIncludeLeadingSep 0x02 Include the leading separator (if any) in the result string.
QString.SectionIncludeTrailingSep 0x04 Include the trailing separator (if any) in the result string.
QString.SectionCaseInsensitiveSeps 0x08 Compare the separator case-insensitively.

The SectionFlags type is a typedef for QFlags<SectionFlag>. It stores an OR combination of SectionFlag values.

See also section().

QString.SplitBehavior

This enum specifies how the split() function should behave with respect to empty strings.

Constant Value Description
QString.KeepEmptyParts 0 If a field is empty, keep it in the result.
QString.SkipEmptyParts 1 If a field is empty, don't include it in the result.

See also split().


Method Documentation

QString.__init__ (self)

Constructs a null string. Null strings are also empty.

See also isEmpty().

QString.__init__ (self, QKeySequence)

This method is only available if the QtGui module is imported.

Constructs a null string. Null strings are also empty.

See also isEmpty().

QString.__init__ (self, QScriptString)

This method is only available if the QtScript module is imported.

Constructs a null string. Null strings are also empty.

See also isEmpty().

QString.__init__ (self, int size, QChar c)

Constructs a string initialized with the first size characters of the QChar array unicode.

QString makes a deep copy of the string data. The unicode data is copied as is and the Byte Order Mark is preserved if present.

QString.__init__ (self, QString s)

Constructs a string initialized with the characters of the QChar array unicode, which must be terminated with a 0.

QString makes a deep copy of the string data. The unicode data is copied as is and the Byte Order Mark is preserved if present.

This function was introduced in Qt 4.7.

QString.__init__ (self, QByteArray a)

Constructs a string of size 1 containing the character ch.

QString.__init__ (self, QUuid)

Constructs a string of the given size with every character set to ch.

See also fill().

QString QString.append (self, QString s)

Appends the string str onto the end of this string.

Example:

 QString x = "free";
 QString y = "dom";

 x.append(y);
 // x == "freedom"

This is the same as using the insert() function:

 x.insert(x.size(), y);

The append() function is typically very fast (constant time), because QString preallocates extra space at the end of the string data so it can grow without reallocating the entire string each time.

See also operator+=(), prepend(), and insert().

QString QString.append (self, QLatin1String s)

Appends the given string reference to this string and returns the result.

This function was introduced in Qt 4.4.

QString QString.append (self, QByteArray s)

This function overloads append().

Appends the Latin-1 string str to this string.

QString QString.arg (self, int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' '))

Returns a copy of this string with the lowest numbered place marker replaced by string a, i.e., %1, %2, ..., %99.

fieldWidth specifies the minimum amount of space that argument a shall occupy. If a requires less space than fieldWidth, it is padded to fieldWidth with character fillChar. A positive fieldWidth produces right-aligned text. A negative fieldWidth produces left-aligned text.

This example shows how we might create a status string for reporting progress while processing a list of files:

 QString i;           // current file's number
 QString total;       // number of files to process
 QString fileName;    // current file's name

 QString status = QString("Processing file %1 of %2: %3")
                 .arg(i).arg(total).arg(fileName);

First, arg(i) replaces %1. Then arg(total) replaces %2. Finally, arg(fileName) replaces %3.

One advantage of using arg() over sprintf() is that the order of the numbered place markers can change, if the application's strings are translated into other languages, but each arg() will still replace the lowest numbered unreplaced place marker, no matter where it appears. Also, if place marker %i appears more than once in the string, the arg() replaces all of them.

If there is no unreplaced place marker remaining, a warning message is output and the result is undefined. Place marker numbers must be in the range 1 to 99.

QString QString.arg (self, float a, int fieldWidth = 0, str format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' '))

This function overloads arg().

This is the same as str.arg(a1).arg(a2), except that the strings a1 and a2 are replaced in one pass. This can make a difference if a1 contains e.g. %1:

 QString str;
 str = "%1 %2";

 str.arg("%1f", "Hello");        // returns "%1f Hello"
 str.arg("%1f").arg("Hello");    // returns "Hellof %2"

QString QString.arg (self, int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' '))

This function overloads arg().

This is the same as calling str.arg(a1).arg(a2).arg(a3), except that the strings a1, a2 and a3 are replaced in one pass.

QString QString.arg (self, int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' '))

This function overloads arg().

This is the same as calling str.arg(a1).arg(a2).arg(a3).arg(a4), except that the strings a1, a2, a3 and a4 are replaced in one pass.

QString QString.arg (self, QString a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' '))

This function overloads arg().

This is the same as calling str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5), except that the strings a1, a2, a3, a4, and a5 are replaced in one pass.

QString QString.arg (self, QString a1, QString a2)

This function overloads arg().

This is the same as calling str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6)), except that the strings a1, a2, a3, a4, a5, and a6 are replaced in one pass.

QString QString.arg (self, QString a1, QString a2, QString a3)

This function overloads arg().

This is the same as calling str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7), except that the strings a1, a2, a3, a4, a5, a6, and a7 are replaced in one pass.

QString QString.arg (self, QString a1, QString a2, QString a3, QString a4)

This function overloads arg().

This is the same as calling str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8), except that the strings a1, a2, a3, a4, a5, a6, a7, and a8 are replaced in one pass.

QString QString.arg (self, QString a1, QString a2, QString a3, QString a4, QString a5)

This function overloads arg().

This is the same as calling str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8).arg(a9), except that the strings a1, a2, a3, a4, a5, a6, a7, a8, and a9 are replaced in one pass.

QString QString.arg (self, QString a1, QString a2, QString a3, QString a4, QString a5, QString a6)

This function overloads arg().

The a argument is expressed in base base, which is 10 by default and must be between 2 and 36. For bases other than 10, a is treated as an unsigned integer.

fieldWidth specifies the minimum amount of space that a is padded to and filled with the character fillChar. A positive value produces right-aligned text; a negative value produces left-aligned text.

The '%' can be followed by an 'L', in which case the sequence is replaced with a localized representation of a. The conversion uses the default locale, set by QLocale.setDefault(). If no default locale was specified, the "C" locale is used. The 'L' flag is ignored if base is not 10.

 QString str;
 str = QString("Decimal 63 is %1 in hexadecimal")
         .arg(63, 0, 16);
 // str == "Decimal 63 is 3f in hexadecimal"

 QLocale.setDefault(QLocale(QLocale.English, QLocale.UnitedStates));
 str = QString("%1 %L2 %L3")
         .arg(12345)
         .arg(12345)
         .arg(12345, 0, 16);
 // str == "12345 12,345 3039"

If fillChar is '0' (the number 0, ASCII 48), the locale's zero is used. For negative numbers, zero padding might appear before the minus sign.

QString QString.arg (self, QString a1, QString a2, QString a3, QString a4, QString a5, QString a6, QString a7)

This function overloads arg().

The base argument specifies the base to use when converting the integer a into a string. The base must be between 2 and 36.

If fillChar is '0' (the number 0, ASCII 48), the locale's zero is used. For negative numbers, zero padding might appear before the minus sign.

QString QString.arg (self, QString a1, QString a2, QString a3, QString a4, QString a5, QString a6, QString a7, QString a8)

This function overloads arg().

fieldWidth specifies the minimum amount of space that a is padded to and filled with the character fillChar. A positive value produces right-aligned text; a negative value produces left-aligned text.

The a argument is expressed in the given base, which is 10 by default and must be between 2 and 36.

The '%' can be followed by an 'L', in which case the sequence is replaced with a localized representation of a. The conversion uses the default locale. The default locale is determined from the system's locale settings at application startup. It can be changed using QLocale.setDefault(). The 'L' flag is ignored if base is not 10.

 QString str;
 str = QString("Decimal 63 is %1 in hexadecimal")
         .arg(63, 0, 16);
 // str == "Decimal 63 is 3f in hexadecimal"

 QLocale.setDefault(QLocale(QLocale.English, QLocale.UnitedStates));
 str = QString("%1 %L2 %L3")
         .arg(12345)
         .arg(12345)
         .arg(12345, 0, 16);
 // str == "12345 12,345 3039"

If fillChar is '0' (the number 0, ASCII 48), the locale's zero is used. For negative numbers, zero padding might appear before the minus sign.

QString QString.arg (self, QString a1, QString a2, QString a3, QString a4, QString a5, QString a6, QString a7, QString a8, QString a9)

This function overloads arg().

fieldWidth specifies the minimum amount of space that a is padded to and filled with the character fillChar. A positive value produces right-aligned text; a negative value produces left-aligned text.

The base argument specifies the base to use when converting the integer a to a string. The base must be between 2 and 36, with 8 giving octal, 10 decimal, and 16 hexadecimal numbers.

If fillChar is '0' (the number 0, ASCII 48), the locale's zero is used. For negative numbers, zero padding might appear before the minus sign.

QChar QString.at (self, int i)

Returns the character at the given index position in the string.

The position must be a valid index position in the string (i.e., 0 <= position < size()).

See also operator[]().

int QString.capacity (self)

Returns the maximum number of characters that can be stored in the string without forcing a reallocation.

The sole purpose of this function is to provide a means of fine tuning QString's memory usage. In general, you will rarely ever need to call this function. If you want to know how many characters are in the string, call size().

See also reserve() and squeeze().

QString.chop (self, int n)

Removes n characters from the end of the string.

If n is greater than size(), the result is an empty string.

Example:

 QString str("LOGOUT\r\n");
 str.chop(2);
 // str == "LOGOUT"

If you want to remove characters from the beginning of the string, use remove() instead.

See also truncate(), resize(), and remove().

QString.clear (self)

Clears the contents of the string and makes it empty.

See also resize() and isEmpty().

int QString.compare (self, QString s)

Compares s1 with s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.

If cs is Qt.CaseSensitive, the comparison is case sensitive; otherwise the comparison is case insensitive.

Case sensitive comparison is based exclusively on the numeric Unicode values of the characters and is very fast, but is not what a human would expect. Consider sorting user-visible strings with localeAwareCompare().

 int x = QString.compare("aUtO", "AuTo", Qt.CaseInsensitive);  // x == 0
 int y = QString.compare("auto", "Car", Qt.CaseSensitive);     // y > 0
 int z = QString.compare("auto", "Car", Qt.CaseInsensitive);   // z < 0

This function was introduced in Qt 4.2.

See also operator==(), operator<(), and operator>().

int QString.compare (self, QString s, Qt.CaseSensitivity cs)

This function overloads compare().

Performs a case sensitive compare of s1 and s2.

int QString.compare (self, QLatin1String other, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads compare().

Performs a comparison of s1 and s2, using the case sensitivity setting cs.

This function was introduced in Qt 4.2.

int QString.compare (self, QStringRef ref, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads compare().

Performs a comparison of s1 and s2, using the case sensitivity setting cs.

This function was introduced in Qt 4.2.

int QString.compare (QString s1, QString s2)

This function overloads compare().

Lexically compares this string with the other string and returns an integer less than, equal to, or greater than zero if this string is less than, equal to, or greater than the other string.

Equivalent to compare(*this, other).

int QString.compare (QString s1, QString s2, Qt.CaseSensitivity cs)

This function overloads compare().

Same as compare(*this, other, cs).

This function was introduced in Qt 4.2.

int QString.compare (QString s1, QLatin1String s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads compare().

Same as compare(*this, other, cs).

This function was introduced in Qt 4.2.

int QString.compare (QLatin1String s1, QString s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads compare().

Compares the string reference, ref, with the string and returns an integer less than, equal to, or greater than zero if the string is less than, equal to, or greater than ref.

int QString.compare (QString s1, QStringRef s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads compare().

bool QString.contains (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns true if this string contains an occurrence of the string str; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

Example:

 QString str = "Peter Pan";
 str.contains("peter", Qt.CaseInsensitive);    // returns true

See also indexOf() and count().

bool QString.contains (self, QStringRef s, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns true if this string contains an occurrence of the string reference str; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also indexOf() and count().

bool QString.contains (self, QRegExp rx)

int QString.count (self)

Returns the number of (potentially overlapping) occurrences of the string str in this string.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

See also contains() and indexOf().

int QString.count (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads count().

Returns the number of occurrences of character ch in the string.

int QString.count (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads count().

Returns the number of (potentially overlapping) occurrences of the string reference str in this string.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also contains() and indexOf().

int QString.count (self, QRegExp)

This function overloads count().

Returns the number of times the regular expression rx matches in the string.

This function counts overlapping matches, so in the example below, there are four instances of "ana" or "ama":

 QString str = "banana and panama";
 str.count(QRegExp("a[nm]a"));    // returns 4

bool QString.endsWith (self, QString s, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns true if the string ends with s; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

 QString str = "Bananas";
 str.endsWith("anas");         // returns true
 str.endsWith("pple");         // returns false

See also startsWith().

bool QString.endsWith (self, QStringRef s, Qt.CaseSensitivity cs = Qt.CaseSensitive)

bool QString.endsWith (self, QLatin1String s, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads endsWith().

Returns true if the string ends with the string reference s; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also startsWith().

QString QString.fill (self, QChar ch, int size = -1)

Sets every character in the string to character ch. If size is different from -1 (default), the string is resized to size beforehand.

Example:

 QString str = "Berlin";
 str.fill('z');
 // str == "zzzzzz"

 str.fill('A', 2);
 // str == "AA"

See also resize().

QString QString.fromAscii (str str, int size = -1)

Returns a QString initialized with the first size characters from the string str.

If size is -1 (default), it is taken to be qstrlen(str).

Note that, despite the name, this function actually uses the codec defined by QTextCodec.setCodecForCStrings() to convert str to Unicode. Depending on the codec, it may not accept valid US-ASCII (ANSI X3.4-1986) input. If no codec has been set, this function does the same as fromLatin1().

See also toAscii(), fromLatin1(), fromUtf8(), and fromLocal8Bit().

QString QString.fromLatin1 (str str, int size = -1)

Returns a QString initialized with the first size characters of the Latin-1 string str.

If size is -1 (default), it is taken to be qstrlen(str).

See also toLatin1(), fromAscii(), fromUtf8(), and fromLocal8Bit().

QString QString.fromLocal8Bit (str str, int size = -1)

Returns a QString initialized with the first size characters of the 8-bit string str.

If size is -1 (default), it is taken to be qstrlen(str).

QTextCodec.codecForLocale() is used to perform the conversion.

See also toLocal8Bit(), fromAscii(), fromLatin1(), and fromUtf8().

QString QString.fromUtf8 (str str, int size = -1)

Returns a QString initialized with the first size bytes of the UTF-8 string str.

If size is -1 (default), it is taken to be qstrlen(str).

UTF-8 is a Unicode codec and can represent all characters in a Unicode string like QString. However, invalid sequences are possible with UTF-8 and, if any such are found, they will be replaced with one or more "replacement characters", or suppressed. These include non-Unicode sequences, non-characters, overlong sequences or surrogate codepoints encoded into UTF-8.

Non-characters are codepoints that the Unicode standard reserves and must not be used in text interchange. They are the last two codepoints in each Unicode Plane (U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, U+2FFFE, etc.), as well as 16 codepoints in the range U+FDD0..U+FDDF, inclusive.

See also toUtf8(), fromAscii(), fromLatin1(), and fromLocal8Bit().

int QString.indexOf (self, QString str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns the index position of the first occurrence of the string str in this string, searching forward from index position from. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

Example:

 QString x = "sticky question";
 QString y = "sti";
 x.indexOf(y);               // returns 0
 x.indexOf(y, 1);            // returns 10
 x.indexOf(y, 10);           // returns 10
 x.indexOf(y, 11);           // returns -1

If from is -1, the search starts at the last character; if it is -2, at the next to last character and so on.

See also lastIndexOf(), contains(), and count().

int QString.indexOf (self, QStringRef str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns the index position of the first occurrence of the string str in this string, searching forward from index position from. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

Example:

 QString x = "sticky question";
 QString y = "sti";
 x.indexOf(y);               // returns 0
 x.indexOf(y, 1);            // returns 10
 x.indexOf(y, 10);           // returns 10
 x.indexOf(y, 11);           // returns -1

If from is -1, the search starts at the last character; if it is -2, at the next to last character and so on.

This function was introduced in Qt 4.5.

See also lastIndexOf(), contains(), and count().

int QString.indexOf (self, QLatin1String str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads indexOf().

Returns the index position of the first occurrence of the character ch in the string, searching forward from index position from. Returns -1 if ch could not be found.

int QString.indexOf (self, QRegExp rx, int from = 0)

This function overloads indexOf().

Returns the index position of the first occurrence of the string reference str in this string, searching forward from index position from. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

QString QString.insert (self, int i, QString s)

Inserts the string str at the given index position and returns a reference to this string.

Example:

 QString str = "Meal";
 str.insert(1, QString("ontr"));
 // str == "Montreal"

If the given position is greater than size(), the array is first extended using resize().

See also append(), prepend(), replace(), and remove().

QString QString.insert (self, int i, QLatin1String s)

This function overloads insert().

Inserts the Latin-1 string str at the given index position.

bool QString.isEmpty (self)

Returns true if the string has no characters; otherwise returns false.

Example:

 QString().isEmpty();            // returns true
 QString("").isEmpty();          // returns true
 QString("x").isEmpty();         // returns false
 QString("abc").isEmpty();       // returns false

See also size().

bool QString.isNull (self)

Returns true if this string is null; otherwise returns false.

Example:

 QString().isNull();             // returns true
 QString("").isNull();           // returns false
 QString("abc").isNull();        // returns false

Qt makes a distinction between null strings and empty strings for historical reasons. For most applications, what matters is whether or not a string contains any data, and this can be determined using the isEmpty() function.

See also isEmpty().

bool QString.isRightToLeft (self)

Returns true if the string is read right to left.

bool QString.isSimpleText (self)

int QString.lastIndexOf (self, QString str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns the index position of the last occurrence of the string str in this string, searching backward from index position from. If from is -1 (default), the search starts at the last character; if from is -2, at the next to last character and so on. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

Example:

 QString x = "crazy azimuths";
 QString y = "az";
 x.lastIndexOf(y);           // returns 6
 x.lastIndexOf(y, 6);        // returns 6
 x.lastIndexOf(y, 5);        // returns 2
 x.lastIndexOf(y, 1);        // returns -1

See also indexOf(), contains(), and count().

int QString.lastIndexOf (self, QStringRef str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads lastIndexOf().

Returns the index position of the last occurrence of the string str in this string, searching backward from index position from. If from is -1 (default), the search starts at the last character; if from is -2, at the next to last character and so on. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

Example:

 QString x = "crazy azimuths";
 QString y = "az";
 x.lastIndexOf(y);           // returns 6
 x.lastIndexOf(y, 6);        // returns 6
 x.lastIndexOf(y, 5);        // returns 2
 x.lastIndexOf(y, 1);        // returns -1

This function was introduced in Qt 4.5.

See also indexOf(), contains(), and count().

int QString.lastIndexOf (self, QLatin1String str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads lastIndexOf().

Returns the index position of the last occurrence of the character ch, searching backward from position from.

int QString.lastIndexOf (self, QRegExp rx, int from = -1)

This function overloads lastIndexOf().

Returns the index position of the last occurrence of the string reference str in this string, searching backward from index position from. If from is -1 (default), the search starts at the last character; if from is -2, at the next to last character and so on. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also indexOf(), contains(), and count().

QString QString.left (self, int len)

Returns a substring that contains the n leftmost characters of the string.

The entire string is returned if n is greater than size() or less than zero.

 QString x = "Pineapple";
 QString y = x.left(4);      // y == "Pine"

See also right(), mid(), and startsWith().

QString QString.leftJustified (self, int width, QChar fillChar = QLatin1Char(' '), bool truncate = False)

Returns a string of size width that contains this string padded by the fill character.

If truncate is false and the size() of the string is more than width, then the returned string is a copy of the string.

 QString s = "apple";
 QString t = s.leftJustified(8, '.');    // t == "apple..."

If truncate is true and the size() of the string is more than width, then any characters in a copy of the string after position width are removed, and the copy is returned.

 QString str = "Pineapple";
 str = str.leftJustified(5, '.', true);    // str == "Pinea"

See also rightJustified().

int QString.length (self)

Returns the number of characters in this string. Equivalent to size().

See also setLength() and resize().

int QString.localeAwareCompare (self, QString s)

Compares s1 with s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.

The comparison is performed in a locale- and also platform-dependent manner. Use this function to present sorted lists of strings to the user.

On Mac OS X since Qt 4.3, this function compares according the "Order for sorted lists" setting in the International prefereces panel.

See also compare() and QTextCodec.locale().

int QString.localeAwareCompare (self, QStringRef s)

This function overloads localeAwareCompare().

Compares this string with the other string and returns an integer less than, equal to, or greater than zero if this string is less than, equal to, or greater than the other string.

The comparison is performed in a locale- and also platform-dependent manner. Use this function to present sorted lists of strings to the user.

Same as localeAwareCompare(*this, other).

This function was introduced in Qt 4.5.

int QString.localeAwareCompare (QString s1, QString s2)

This function overloads localeAwareCompare().

Compares s1 with s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.

The comparison is performed in a locale- and also platform-dependent manner. Use this function to present sorted lists of strings to the user.

This function was introduced in Qt 4.5.

int QString.localeAwareCompare (QString s1, QStringRef s2)

This function overloads localeAwareCompare().

Compares this string with the other string and returns an integer less than, equal to, or greater than zero if this string is less than, equal to, or greater than the other string.

The comparison is performed in a locale- and also platform-dependent manner. Use this function to present sorted lists of strings to the user.

Same as localeAwareCompare(*this, other).

QString QString.mid (self, int position, int n = -1)

Returns a string that contains n characters of this string, starting at the specified position index.

Returns a null string if the position index exceeds the length of the string. If there are less than n characters available in the string starting at the given position, or if n is -1 (default), the function returns all characters that are available from the specified position.

Example:

 QString x = "Nine pineapples";
 QString y = x.mid(5, 4);            // y == "pine"
 QString z = x.mid(5);               // z == "pineapples"

See also left() and right().

QString QString.normalized (self, NormalizationForm mode)

Returns the string in the given Unicode normalization mode.

QString QString.normalized (self, NormalizationForm mode, QChar.UnicodeVersion version)

This is an overloaded function.

Returns the string in the given Unicode normalization mode, according to the given version of the Unicode standard.

QString QString.number (int n, int base = 10)

Returns a string equivalent of the number n according to the specified base.

The base is 10 by default and must be between 2 and 36. For bases other than 10, n is treated as an unsigned integer.

 long a = 63;
 QString s = QString.number(a, 16);             // s == "3f"
 QString t = QString.number(a, 16).toUpper();     // t == "3F"

See also setNum().

QString QString.number (float n, str format = 'g', int precision = 6)

Returns a string equivalent of the number n, formatted according to the specified format and precision. See Argument Formats for details.

Unlike QLocale.toString(), this function does not honor the user's locale settings.

See also setNum() and QLocale.toString().

QString QString.number (int n, int base = 10)

This is an overloaded function.

QString QString.number (int n, int base = 10)

This is an overloaded function.

QString QString.prepend (self, QString s)

Prepends the string str to the beginning of this string and returns a reference to this string.

Example:

 QString x = "ship";
 QString y = "air";
 x.prepend(y);
 // x == "airship"

See also append() and insert().

QString QString.prepend (self, QLatin1String s)

This function overloads prepend().

Prepends the Latin-1 string str to this string.

QString QString.prepend (self, QByteArray s)

This function overloads prepend().

Prepends the byte array ba to this string. The byte array is converted to Unicode using the fromAscii() function.

You can disable this function by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject.tr(), for example.

QString.push_back (self, QString s)

This function is provided for STL compatibility, appending the given other string onto the end of this string. It is equivalent to append(other).

See also append().

QString.push_front (self, QString s)

This function is provided for STL compatibility, prepending the given other string to the beginning of this string. It is equivalent to prepend(other).

See also prepend().

QString QString.remove (self, int i, int len)

Removes n characters from the string, starting at the given position index, and returns a reference to the string.

If the specified position index is within the string, but position + n is beyond the end of the string, the string is truncated at the specified position.

 QString s = "Montreal";
 s.remove(1, 4);
 // s == "Meal"

See also insert() and replace().

QString QString.remove (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Removes every occurrence of the character ch in this string, and returns a reference to this string.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

Example:

 QString t = "Ali Baba";
 t.remove(QChar('a'), Qt.CaseInsensitive);
 // t == "li Bb"

This is the same as replace(ch, "", cs).

See also replace().

QString QString.remove (self, QRegExp rx)

Removes every occurrence of the given str string in this string, and returns a reference to this string.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This is the same as replace(str, "", cs).

See also replace().

QString QString.repeated (self, int times)

Returns a copy of this string repeated the specified number of times.

If times is less than 1, an empty string is returned.

Example:

 QString str("ab");
 str.repeated(4);            // returns "abababab"

This function was introduced in Qt 4.5.

QString QString.replace (self, int i, int len, QString after)

Replaces n characters beginning at index position with the string after and returns a reference to this string.

Example:

 QString x = "Say yes!";
 QString y = "no";
 x.replace(4, 3, y);
 // x == "Say no!"

See also insert() and remove().

QString QString.replace (self, QString before, QString after, Qt.CaseSensitivity cs = Qt.CaseSensitive)

QString QString.replace (self, QRegExp rx, QString after)

QString QString.replace (self, QLatin1String before, QLatin1String after, Qt.CaseSensitivity cs = Qt.CaseSensitive)

QString QString.replace (self, QLatin1String before, QString after, Qt.CaseSensitivity cs = Qt.CaseSensitive)

QString QString.replace (self, QString before, QLatin1String after, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads replace().

Replaces n characters beginning at index position with the first size characters of the QChar array unicode and returns a reference to this string.

QString.reserve (self, int asize)

Attempts to allocate memory for at least size characters. If you know in advance how large the string will be, you can call this function, and if you resize the string often you are likely to get better performance. If size is an underestimate, the worst that will happen is that the QString will be a bit slower.

The sole purpose of this function is to provide a means of fine tuning QString's memory usage. In general, you will rarely ever need to call this function. If you want to change the size of the string, call resize().

This function is useful for code that needs to build up a long string and wants to avoid repeated reallocation. In this example, we want to add to the string until some condition is true, and we're fairly sure that size is large enough to make a call to reserve() worthwhile:

 QString result;
 int maxSize;
 bool condition;
 QChar nextChar;

 result.reserve(maxSize);

 while (condition)
     result.append(nextChar);

 result.squeeze();

See also squeeze() and capacity().

QString.resize (self, int size)

Sets the size of the string to size characters.

If size is greater than the current size, the string is extended to make it size characters long with the extra characters added to the end. The new characters are uninitialized.

If size is less than the current size, characters are removed from the end.

Example:

 QString s = "Hello world";
 s.resize(5);
 // s == "Hello"

 s.resize(8);
 // s == "Hello???" (where ? stands for any character)

If you want to append a certain number of identical characters to the string, use operator+=() as follows rather than resize():

 QString t = "Hello";
 t += QString(10, 'X');
 // t == "HelloXXXXXXXXXX"

If you want to expand the string so that it reaches a certain width and fill the new positions with a particular character, use the leftJustified() function:

If size is negative, it is equivalent to passing zero.

 QString r = "Hello";
 r = r.leftJustified(10, ' ');
 // r == "Hello     "

See also truncate() and reserve().

QString QString.right (self, int len)

Returns a substring that contains the n rightmost characters of the string.

The entire string is returned if n is greater than size() or less than zero.

 QString x = "Pineapple";
 QString y = x.right(5);      // y == "apple"

See also left(), mid(), and endsWith().

QString QString.rightJustified (self, int width, QChar fillChar = QLatin1Char(' '), bool truncate = False)

Returns a string of size() width that contains the fill character followed by the string. For example:

 QString s = "apple";
 QString t = s.rightJustified(8, '.');    // t == "...apple"

If truncate is false and the size() of the string is more than width, then the returned string is a copy of the string.

If truncate is true and the size() of the string is more than width, then the resulting string is truncated at position width.

 QString str = "Pineapple";
 str = str.rightJustified(5, '.', true);    // str == "Pinea"

See also leftJustified().

QString QString.section (self, QString sep, int start, int end = -1, SectionFlags flags = QString.SectionDefault)

This function returns a section of the string.

This string is treated as a sequence of fields separated by the character, sep. The returned string consists of the fields from position start to position end inclusive. If end is not specified, all fields from position start to the end of the string are included. Fields are numbered 0, 1, 2, etc., counting from the left, and -1, -2, etc., counting from right to left.

The flags argument can be used to affect some aspects of the function's behavior, e.g. whether to be case sensitive, whether to skip empty fields and how to deal with leading and trailing separators; see SectionFlags.

 QString str;
 QString csv = "forename,middlename,surname,phone";
 QString path = "/usr/local/bin/myapp"; // First field is empty
 QString.SectionFlag flag = QString.SectionSkipEmpty;

 str = csv.section(',', 2, 2);   // str == "surname"
 str = path.section('/', 3, 4);  // str == "bin/myapp"
 str = path.section('/', 3, 3, flag); // str == "myapp"

If start or end is negative, we count fields from the right of the string, the right-most field being -1, the one from right-most field being -2, and so on.

 str = csv.section(',', -3, -2);  // str == "middlename,surname"
 str = path.section('/', -1); // str == "myapp"

See also split().

QString QString.section (self, QRegExp reg, int start, int end = -1, SectionFlags flags = QString.SectionDefault)

This function overloads section().

 QString str;
 QString data = "forename**middlename**surname**phone";

 str = data.section("**", 2, 2); // str == "surname"
 str = data.section("**", -3, -2); // str == "middlename**surname"

See also split().

QString QString.setNum (self, int n, int base = 10)

Sets the string to the printed value of n in the specified base, and returns a reference to the string.

The base is 10 by default and must be between 2 and 36. For bases other than 10, n is treated as an unsigned integer.

 QString str;
 str.setNum(1234);       // str == "1234"

The formatting always uses QLocale.C, i.e., English/UnitedStates. To get a localized string representation of a number, use QLocale.toString() with the appropriate locale.

QString QString.setNum (self, float n, str format = 'g', int precision = 6)

This is an overloaded function.

QString QString.setNum (self, int n, int base = 10)

This is an overloaded function.

QString QString.setNum (self, int n, int base = 10)

This is an overloaded function.

QString QString.simplified (self)

Returns a string that has whitespace removed from the start and the end, and that has each sequence of internal whitespace replaced with a single space.

Whitespace means any character for which QChar.isSpace() returns true. This includes the ASCII characters '\t', '\n', '\v', '\f', '\r', and ' '.

Example:

 QString str = "  lots\t of\nwhitespace\r\n ";
 str = str.simplified();
 // str == "lots of whitespace";

See also trimmed().

int QString.size (self)

Returns the number of characters in this string.

The last character in the string is at position size() - 1. In addition, QString ensures that the character at position size() is always '\0', so that you can use the return value of data() and constData() as arguments to functions that expect '\0'-terminated strings.

Example:

 QString str = "World";
 int n = str.size();         // n == 5
 str.data()[0];              // returns 'W'
 str.data()[4];              // returns 'd'
 str.data()[5];              // returns '\0'

See also isEmpty() and resize().

QStringList QString.split (self, QString sep, SplitBehavior behavior = QString.KeepEmptyParts, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Splits the string into substrings wherever sep occurs, and returns the list of those strings. If sep does not match anywhere in the string, split() returns a single-element list containing this string.

cs specifies whether sep should be matched case sensitively or case insensitively.

If behavior is QString.SkipEmptyParts, empty entries don't appear in the result. By default, empty entries are kept.

Example:

 QString str = "a,,b,c";

 QStringList list1 = str.split(",");
 // list1: [ "a", "", "b", "c" ]

 QStringList list2 = str.split(",", QString.SkipEmptyParts);
 // list2: [ "a", "b", "c" ]

See also QStringList.join() and section().

QStringList QString.split (self, QRegExp sep, SplitBehavior behavior = QString.KeepEmptyParts)

This is an overloaded function.

QString.squeeze (self)

Releases any memory not required to store the character data.

The sole purpose of this function is to provide a means of fine tuning QString's memory usage. In general, you will rarely ever need to call this function.

See also reserve() and capacity().

bool QString.startsWith (self, QString s, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns true if the string starts with s; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

 QString str = "Bananas";
 str.startsWith("Ban");     // returns true
 str.startsWith("Car");     // returns false

See also endsWith().

bool QString.startsWith (self, QStringRef s, Qt.CaseSensitivity cs = Qt.CaseSensitive)

bool QString.startsWith (self, QLatin1String s, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads startsWith().

QString.swap (self, QString other)

Swaps string other with this string. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QByteArray QString.toAscii (self)

Returns an 8-bit representation of the string as a QByteArray.

If a codec has been set using QTextCodec.setCodecForCStrings(), it is used to convert Unicode to 8-bit char; otherwise this function does the same as toLatin1().

Note that, despite the name, this function does not necessarily return an US-ASCII (ANSI X3.4-1986) string and its result may not be US-ASCII compatible.

See also fromAscii(), toLatin1(), toUtf8(), toLocal8Bit(), and QTextCodec.

QString QString.toCaseFolded (self)

Returns the case folded equivalent of the string. For most Unicode characters this is the same as toLower().

(float, bool ok) QString.toDouble (self)

Returns the string converted to a double value.

Returns 0.0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

 QString str = "1234.56";
 double val = str.toDouble();   // val == 1234.56

Various string formats for floating point numbers can be converted to double values:

 bool ok;
 double d;

 d = QString( "1234.56e-02" ).toDouble(&ok); // ok == true, d == 12.3456

This function tries to interpret the string according to the current locale. The current locale is determined from the system at application startup and can be changed by calling QLocale.setDefault(). If the string cannot be interpreted according to the current locale, this function falls back on the "C" locale.

 QLocale.setDefault(QLocale.C);
 d = QString( "1234,56" ).toDouble(&ok); // ok == false
 d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56

 QLocale.setDefault(QLocale.German);
 d = QString( "1234,56" ).toDouble(&ok); // ok == true, d == 1234.56
 d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56

Due to the ambiguity between the decimal point and thousands group separator in various locales, this function does not handle thousands group separators. If you need to convert such numbers, see QLocale.toDouble().

 QLocale.setDefault(QLocale.C);
 d = QString( "1234,56" ).toDouble(&ok); // ok == false

See also number(), QLocale.setDefault(), QLocale.toDouble(), and trimmed().

(float, bool ok) QString.toFloat (self)

Returns the string converted to a float value.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true. Returns 0.0 if the conversion fails.

Example:

 QString str1 = "1234.56";
 str1.toFloat();             // returns 1234.56

 bool ok;
 QString str2 = "R2D2";
 str2.toFloat(&ok);          // returns 0.0, sets ok to false

See also number(), toDouble(), and toInt().

(int, bool ok) QString.toInt (self, int base = 10)

Returns the string converted to an int using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.

Example:

 QString str = "FF";
 bool ok;
 int hex = str.toInt(&ok, 16);       // hex == 255, ok == true
 int dec = str.toInt(&ok, 10);       // dec == 0, ok == false

See also number(), toUInt(), and toDouble().

QByteArray QString.toLatin1 (self)

Returns a Latin-1 representation of the string as a QByteArray.

The returned byte array is undefined if the string contains non-Latin1 characters. Those characters may be suppressed or replaced with a question mark.

See also fromLatin1(), toAscii(), toUtf8(), toLocal8Bit(), and QTextCodec.

QByteArray QString.toLocal8Bit (self)

Returns the local 8-bit representation of the string as a QByteArray. The returned byte array is undefined if the string contains characters not supported by the local 8-bit encoding.

QTextCodec.codecForLocale() is used to perform the conversion from Unicode. If the locale encoding could not be determined, this function does the same as toLatin1().

If this string contains any characters that cannot be encoded in the locale, the returned byte array is undefined. Those characters may be suppressed or replaced by another.

See also fromLocal8Bit(), toAscii(), toLatin1(), toUtf8(), and QTextCodec.

(int, bool ok) QString.toLong (self, int base = 10)

Returns the string converted to a long using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.

Example:

 QString str = "FF";
 bool ok;

 long hex = str.toLong(&ok, 16);     // hex == 255, ok == true
 long dec = str.toLong(&ok, 10);     // dec == 0, ok == false

See also number(), toULong(), and toInt().

(int, bool ok) QString.toLongLong (self, int base = 10)

Returns the string converted to a long long using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.

Example:

 QString str = "FF";
 bool ok;

 long hex = str.toLongLong(&ok, 16);      // hex == 255, ok == true
 long dec = str.toLongLong(&ok, 10);      // dec == 0, ok == false

See also number(), toULongLong(), and toInt().

QString QString.toLower (self)

Returns a lowercase copy of the string.

 QString str = "Qt by NOKIA";
 str = str.toLower();        // str == "qt by nokia"

The case conversion will always happen in the 'C' locale. For locale dependent case folding use QLocale.toLower()

See also toUpper() and QLocale.toLower().

(int, bool ok) QString.toShort (self, int base = 10)

Returns the string converted to a short using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.

Example:

 QString str = "FF";
 bool ok;

 short hex = str.toShort(&ok, 16);   // hex == 255, ok == true
 short dec = str.toShort(&ok, 10);   // dec == 0, ok == false

See also number(), toUShort(), and toInt().

(int, bool ok) QString.toUInt (self, int base = 10)

Returns the string converted to an unsigned int using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.

Example:

 QString str = "FF";
 bool ok;

 uint hex = str.toUInt(&ok, 16);     // hex == 255, ok == true
 uint dec = str.toUInt(&ok, 10);     // dec == 0, ok == false

See also number() and toInt().

(int, bool ok) QString.toULong (self, int base = 10)

Returns the string converted to an unsigned long using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.

Example:

 QString str = "FF";
 bool ok;

 ulong hex = str.toULong(&ok, 16);   // hex == 255, ok == true
 ulong dec = str.toULong(&ok, 10);   // dec == 0, ok == false

See also number().

(int, bool ok) QString.toULongLong (self, int base = 10)

Returns the string converted to an unsigned long long using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.

Example:

 QString str = "FF";
 bool ok;

 unsigned long hex = str.toULongLong(&ok, 16);    // hex == 255, ok == true
 unsigned long dec = str.toULongLong(&ok, 10);    // dec == 0, ok == false

See also number() and toLongLong().

QString QString.toUpper (self)

Returns an uppercase copy of the string.

 QString str = "TeXt";
 str = str.toUpper();        // str == "TEXT"

The case conversion will always happen in the 'C' locale. For locale dependent case folding use QLocale.toUpper()

See also toLower() and QLocale.toLower().

(int, bool ok) QString.toUShort (self, int base = 10)

Returns the string converted to an unsigned short using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.

If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.

If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.

Example:

 QString str = "FF";
 bool ok;

 ushort hex = str.toUShort(&ok, 16);     // hex == 255, ok == true
 ushort dec = str.toUShort(&ok, 10);     // dec == 0, ok == false

See also number() and toShort().

QByteArray QString.toUtf8 (self)

Returns a UTF-8 representation of the string as a QByteArray.

UTF-8 is a Unicode codec and can represent all characters in a Unicode string like QString.

However, in the Unicode range, there are certain codepoints that are not considered characters. The Unicode standard reserves the last two codepoints in each Unicode Plane (U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, U+2FFFE, etc.), as well as 16 codepoints in the range U+FDD0..U+FDDF, inclusive, as non-characters. If any of those appear in the string, they may be discarded and will not appear in the UTF-8 representation, or they may be replaced by one or more replacement characters.

See also fromUtf8(), toAscii(), toLatin1(), toLocal8Bit(), and QTextCodec.

QString QString.trimmed (self)

Returns a string that has whitespace removed from the start and the end.

Whitespace means any character for which QChar.isSpace() returns true. This includes the ASCII characters '\t', '\n', '\v', '\f', '\r', and ' '.

Example:

 QString str = "  lots\t of\nwhitespace\r\n ";
 str = str.trimmed();
 // str == "lots\t of\nwhitespace"

Unlike simplified(), trimmed() leaves internal whitespace alone.

See also simplified().

QString.truncate (self, int pos)

Truncates the string at the given position index.

If the specified position index is beyond the end of the string, nothing happens.

Example:

 QString str = "Vladivostok";
 str.truncate(4);
 // str == "Vlad"

If position is negative, it is equivalent to passing zero.

See also chop(), resize(), and left().

QString QString.__add__ (self, QString s2)

QString QString.__add__ (self, QByteArray ba)

int QString.__contains__ (self, QString s)

bool QString.__eq__ (self, QString s)

bool QString.__eq__ (self, QLatin1String s)

bool QString.__eq__ (self, QByteArray s)

bool QString.__eq__ (self, QStringRef s2)

bool QString.__ge__ (self, QString s)

bool QString.__ge__ (self, QLatin1String s)

bool QString.__ge__ (self, QByteArray s)

QString QString.__getitem__ (self, int i)

QString QString.__getitem__ (self, slice slice)

bool QString.__gt__ (self, QString s)

bool QString.__gt__ (self, QLatin1String s)

bool QString.__gt__ (self, QByteArray s)

int QString.__hash__ (self)

QString QString.__iadd__ (self, QChar.SpecialCharacter c)

QString QString.__iadd__ (self, QString s)

QString QString.__iadd__ (self, QLatin1String s)

QString QString.__iadd__ (self, QByteArray s)

QString QString.__imul__ (self, int m)

bool QString.__le__ (self, QString s)

bool QString.__le__ (self, QLatin1String s)

bool QString.__le__ (self, QByteArray s)

QString.__len__ (self)

bool QString.__lt__ (self, QString s)

bool QString.__lt__ (self, QLatin1String s)

bool QString.__lt__ (self, QByteArray s)

QString QString.__mul__ (self, int m)

bool QString.__ne__ (self, QString s)

bool QString.__ne__ (self, QLatin1String s)

bool QString.__ne__ (self, QByteArray s)

bool QString.__ne__ (self, QStringRef s2)

str QString.__repr__ (self)

str QString.__str__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstringlist.html0000644000076500000240000007627612536324475020763 0ustar philstaff00000000000000 QStringList Class Reference
  Home · All Classes · Modules

QStringList Class Reference
[
QtCore module]

The QStringList class provides a list of strings. More...

Methods

Special Methods


Detailed Description

A Python list of Python string or unicode objects or QString instances may be used whenever a QStringList is expected.

The QStringList class provides a list of strings.

QStringList inherits from QList<QString>. Like QList, QStringList is implicitly shared. It provides fast index-based access as well as fast insertions and removals. Passing string lists as value parameters is both fast and safe.

All of QList's functionality also applies to QStringList. For example, you can use isEmpty() to test whether the list is empty, and you can call functions like append(), prepend(), insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast(), and removeOne() to modify a QStringList. In addition, QStringList provides a few convenience functions that make handling lists of strings easier:

Adding strings

Strings can be added to a list using the append(), operator+=() and operator<<() functions. For example:

     QStringList fonts;
     fonts << "Arial" << "Helvetica" << "Times" << "Courier";

Iterating over the strings

To iterate over a list, you can either use index positions or QList's Java-style and STL-style iterator types:

Indexing:

     for (int i = 0; i < fonts.size(); ++i)
          cout << fonts.at(i).toLocal8Bit().constData() << endl;

Java-style iterator:

     QStringListIterator javaStyleIterator(fonts);
     while (javaStyleIterator.hasNext())
          cout << javaStyleIterator.next().toLocal8Bit().constData() << endl;

STL-style iterator:

     QStringList.const_iterator constIterator;
     for (constIterator = fonts.constBegin(); constIterator != fonts.constEnd();
            ++constIterator)
         cout << (*constIterator).toLocal8Bit().constData() << endl;

The QStringListIterator class is simply a type definition for QListIterator<QString>. QStringList also provide the QMutableStringListIterator class which is a type definition for QMutableListIterator<QString>.

Manipulating the strings

QStringList provides several functions allowing you to manipulate the contents of a list. You can concatenate all the strings in a string list into a single string (with an optional separator) using the join() function. For example:

     QString str = fonts.join(",");
      // str == "Arial,Helvetica,Times,Courier"

To break up a string into a string list, use the QString.split() function:

     QStringList list;
     list = str.split(",");
      // list: ["Arial", "Helvetica", "Times", "Courier"]

The argument to split can be a single character, a string, or a QRegExp.

In addition, the operator+() function allows you to concatenate two string lists into one. To sort a string list, use the sort() function.

QString list also provides the filter() function which lets you to extract a new list which contains only those strings which contain a particular substring (or match a particular regular expression):

     QStringList monospacedFonts = fonts.filter(QRegExp("Courier|Fixed"));

The contains() function tells you whether the list contains a given string, while the indexOf() function returns the index of the first occurrence of the given string. The lastIndexOf() function on the other hand, returns the index of the last occurrence of the string.

Finally, the replaceInStrings() function calls QString.replace() on each string in the string list in turn. For example:

     QStringList files;
     files << "$QTDIR/src/moc/moc.y"
           << "$QTDIR/src/moc/moc.l"
           << "$QTDIR/include/qconfig.h";

     files.replaceInStrings("$QTDIR", "/usr/lib/qt");
     // files: [ "/usr/lib/qt/src/moc/moc.y", ...]

Method Documentation

QStringList.__init__ (self)

Constructs an empty string list.

QStringList.__init__ (self, QString i)

Constructs a string list that contains the given string, str. Longer lists are easily created like this:

     QStringList longerList = (QStringList() << str1 << str2 << str3);

See also append().

QStringList.__init__ (self, QStringList l)

Constructs a copy of the other string list.

This operation takes constant time because QStringList is implicitly shared, making the process of returning a QStringList from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes linear time.

See also operator=().

QStringList.append (self, QString str)

QStringList.clear (self)

bool QStringList.contains (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns true if the list contains the string str; otherwise returns false. The search is case insensitive if cs is Qt.CaseInsensitive; the search is case sensitive by default.

See also indexOf(), lastIndexOf(), and QString.contains().

int QStringList.count (self, QString str)

int QStringList.count (self)

QStringList QStringList.filter (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns a list of all the strings containing the substring str.

If cs is Qt.CaseSensitive (the default), the string comparison is case sensitive; otherwise the comparison is case insensitive.

     QStringList list;
     list << "Bill Murray" << "John Doe" << "Bill Clinton";

     QStringList result;
     result = list.filter("Bill");
     // result: ["Bill Murray", "Bill Clinton"]

This is equivalent to

     QStringList result;
     foreach (const QString &str, list) {
         if (str.contains("Bill"))
             result += str;
     }

See also contains().

QStringList QStringList.filter (self, QRegExp rx)

This is an overloaded function.

Returns a list of all the strings that match the regular expression rx.

QString QStringList.first (self)

int QStringList.indexOf (self, QString value, int from = 0)

Returns the index position of the first exact match of rx in the list, searching forward from index position from. Returns -1 if no item matched.

By default, this function is case sensitive.

See also lastIndexOf(), contains(), and QRegExp.exactMatch().

int QStringList.indexOf (self, QRegExp rx, int from = 0)

Returns the index position of the first occurrence of value in the list, searching forward from index position from. Returns -1 if no item matched.

See also lastIndexOf(), contains(), and QList.indexOf().

QStringList.insert (self, int i, QString str)

bool QStringList.isEmpty (self)

QString QStringList.join (self, QString sep)

Joins all the string list's strings into a single string with each element separated by the given separator (which can be an empty string).

See also QString.split().

QString QStringList.last (self)

int QStringList.lastIndexOf (self, QString value, int from = -1)

Returns the index position of the last exact match of rx in the list, searching backward from index position from. If from is -1 (the default), the search starts at the last item. Returns -1 if no item matched.

By default, this function is case sensitive.

See also indexOf(), contains(), and QRegExp.exactMatch().

int QStringList.lastIndexOf (self, QRegExp rx, int from = -1)

Returns the index position of the last occurrence of value in the list, searching backward from index position from. If from is -1 (the default), the search starts at the last item. Returns -1 if no item matched.

By default, this function is case sensitive.

See also indexOf() and QList.lastIndexOf().

QStringList QStringList.mid (self, int pos, int length = -1)

QStringList.move (self, int from, int to)

QStringList.prepend (self, QString str)

int QStringList.removeAll (self, QString str)

QStringList.removeAt (self, int i)

int QStringList.removeDuplicates (self)

This function removes duplicate entries from a list. The entries do not have to be sorted. They will retain their original order.

Returns the number of removed entries.

This function was introduced in Qt 4.5.

QStringList.replace (self, int i, QString str)

QStringList QStringList.replaceInStrings (self, QString before, QString after, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns a string list where every string has had the before text replaced with the after text wherever the before text is found. The before text is matched case-sensitively or not depending on the cs flag.

For example:

     QStringList list;
     list << "alpha" << "beta" << "gamma" << "epsilon";
     list.replaceInStrings("a", "o");
     // list == ["olpho", "beto", "gommo", "epsilon"]

See also QString.replace().

QStringList QStringList.replaceInStrings (self, QRegExp rx, QString after)

This is an overloaded function.

Replaces every occurrence of the regexp rx, in each of the string lists's strings, with after. Returns a reference to the string list.

For example:

     QStringList list;
     list << "alpha" << "beta" << "gamma" << "epsilon";
     list.replaceInStrings(QRegExp("^a"), "o");
     // list == ["olpha", "beta", "gamma", "epsilon"]

For regular expressions that contain capturing parentheses, occurrences of \1, \2, ..., in after are replaced with rx.cap(1), rx.cap(2), ...

For example:

     QStringList list;
     list << "Bill Clinton" << "Murray, Bill";
     list.replaceInStrings(QRegExp("^(.*), (.*)$"), "\\2 \\1");
     // list == ["Bill Clinton", "Bill Murray"]

QStringList.sort (self)

Sorts the list of strings in ascending order (case sensitively).

Sorting is performed using Qt's qSort() algorithm, which operates in linear-logarithmic time, i.e. O(n log n).

If you want to sort your strings in an arbitrary order, consider using the QMap class. For example, you could use a QMap<QString, QString> to create a case-insensitive ordering (e.g. with the keys being lower-case versions of the strings, and the values being the strings), or a QMap<int, QString> to sort the strings by some integer index.

See also qSort().

QStringList.swap (self, int i, int j)

QString QStringList.takeAt (self, int i)

QString QStringList.takeFirst (self)

QString QStringList.takeLast (self)

QStringList QStringList.__add__ (self, QStringList other)

int QStringList.__contains__ (self, QString str)

QStringList.__delitem__ (self, int i)

QStringList.__delitem__ (self, slice slice)

bool QStringList.__eq__ (self, QStringList other)

QString QStringList.__getitem__ (self, int i)

QStringList QStringList.__getitem__ (self, slice slice)

QStringList QStringList.__iadd__ (self, QStringList other)

QStringList QStringList.__iadd__ (self, QString value)

QStringList QStringList.__imul__ (self, int by)

QStringList.__len__ (self)

QStringList QStringList.__lshift__ (self, QString str)

QStringList QStringList.__lshift__ (self, QStringList l)

QStringList QStringList.__mul__ (self, int by)

bool QStringList.__ne__ (self, QStringList other)

QStringList.__setitem__ (self, int i, QString str)

QStringList.__setitem__ (self, slice slice, QStringList list)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstringlistmodel.html0000644000076500000240000003014712536324513021760 0ustar philstaff00000000000000 QStringListModel Class Reference
  Home · All Classes · Modules

QStringListModel Class Reference
[
QtGui module]

The QStringListModel class provides a model that supplies strings to views. More...

Inherits QAbstractListModel.

Inherited by QHelpIndexModel.

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, QStringList strings, QObject parent = None)
  • QVariant data (self, QModelIndex index, int role)
  • Qt.ItemFlags flags (self, QModelIndex index)
  • bool insertRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • bool removeRows (self, int row, int count, QModelIndex parent = QModelIndex())
  • int rowCount (self, QModelIndex parent = QModelIndex())
  • bool setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)
  • setStringList (self, QStringList strings)
  • sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)
  • QStringList stringList (self)
  • Qt.DropActions supportedDropActions (self)

Detailed Description

The QStringListModel class provides a model that supplies strings to views.

QStringListModel is an editable model that can be used for simple cases where you need to display a number of strings in a view widget, such as a QListView or a QComboBox.

The model provides all the standard functions of an editable model, representing the data in the string list as a model with one column and a number of rows equal to the number of items in the list.

Model indexes corresponding to items are obtained with the index() function, and item flags are obtained with flags(). Item data is read with the data() function and written with setData(). The number of rows (and number of items in the string list) can be found with the rowCount() function.

The model can be constructed with an existing string list, or strings can be set later with the setStringList() convenience function. Strings can also be inserted in the usual way with the insertRows() function, and removed with removeRows(). The contents of the string list can be retrieved with the stringList() convenience function.

An example usage of QStringListModel:

     QStringListModel *model = new QStringListModel();
     QStringList list;
     list << "a" << "b" << "c";
     model->setStringList(list);

Method Documentation

QStringListModel.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a string list model with the given parent.

QStringListModel.__init__ (self, QStringList strings, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a string list model containing the specified strings with the given parent.

QVariant QStringListModel.data (self, QModelIndex index, int role)

Reimplemented from QAbstractItemModel.data().

Returns data for the specified role, from the item with the given index.

If the view requests an invalid index, an invalid variant is returned.

See also setData().

Qt.ItemFlags QStringListModel.flags (self, QModelIndex index)

Reimplemented from QAbstractItemModel.flags().

Returns the flags for the item with the given index.

Valid items are enabled, selectable, editable, drag enabled and drop enabled.

See also QAbstractItemModel.flags().

bool QStringListModel.insertRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.insertRows().

Inserts count rows into the model, beginning at the given row.

The parent index of the rows is optional and is only used for consistency with QAbstractItemModel. By default, a null index is specified, indicating that the rows are inserted in the top level of the model.

See also QAbstractItemModel.insertRows().

bool QStringListModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.removeRows().

Removes count rows from the model, beginning at the given row.

The parent index of the rows is optional and is only used for consistency with QAbstractItemModel. By default, a null index is specified, indicating that the rows are removed in the top level of the model.

See also QAbstractItemModel.removeRows().

int QStringListModel.rowCount (self, QModelIndex parent = QModelIndex())

Reimplemented from QAbstractItemModel.rowCount().

Returns the number of rows in the model. This value corresponds to the number of items in the model's internal string list.

The optional parent argument is in most models used to specify the parent of the rows to be counted. Because this is a list if a valid parent is specified, the result will always be 0.

See also insertRows(), removeRows(), and QAbstractItemModel.rowCount().

bool QStringListModel.setData (self, QModelIndex index, QVariant value, int role = Qt.EditRole)

Reimplemented from QAbstractItemModel.setData().

Sets the data for the specified role in the item with the given index in the model, to the provided value.

The dataChanged() signal is emitted if the item is changed.

See also Qt.ItemDataRole and data().

QStringListModel.setStringList (self, QStringList strings)

Sets the model's internal string list to strings. The model will notify any attached views that its underlying data has changed.

See also stringList() and dataChanged().

QStringListModel.sort (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Reimplemented from QAbstractItemModel.sort().

QStringList QStringListModel.stringList (self)

Returns the string list used by the model to store data.

See also setStringList().

Qt.DropActions QStringListModel.supportedDropActions (self)

Reimplemented from QAbstractItemModel.supportedDropActions().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstringmatcher.html0000644000076500000240000001562312536324475021420 0ustar philstaff00000000000000 QStringMatcher Class Reference
  Home · All Classes · Modules

QStringMatcher Class Reference
[QtCore module]

The QStringMatcher class holds a sequence of characters that can be quickly matched in a Unicode string. More...

Methods


Detailed Description

The QStringMatcher class holds a sequence of characters that can be quickly matched in a Unicode string.

This class is useful when you have a sequence of QChars that you want to repeatedly match against some strings (perhaps in a loop), or when you want to search for the same sequence of characters multiple times in the same string. Using a matcher object and indexIn() is faster than matching a plain QString with QString.indexOf() if repeated matching takes place. This class offers no benefit if you are doing one-off string matches.

Create the QStringMatcher with the QString you want to search for. Then call indexIn() on the QString that you want to search.


Method Documentation

QStringMatcher.__init__ (self)

Constructs an empty string matcher that won't match anything. Call setPattern() to give it a pattern to match.

QStringMatcher.__init__ (self, QString pattern, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Constructs a string matcher that will search for pattern, with case sensitivity cs.

Call indexIn() to perform a search.

QStringMatcher.__init__ (self, QStringMatcher other)

Constructs a string matcher that will search for the pattern referred to by uc with the given length and case sensitivity specified by cs.

This function was introduced in Qt 4.5.

Qt.CaseSensitivity QStringMatcher.caseSensitivity (self)

Returns the case sensitivity setting for this string matcher.

See also setCaseSensitivity().

int QStringMatcher.indexIn (self, QString str, int from = 0)

Searches the string str from character position from (default 0, i.e. from the first character), for the string pattern() that was set in the constructor or in the most recent call to setPattern(). Returns the position where the pattern() matched in str, or -1 if no match was found.

See also setPattern() and setCaseSensitivity().

QString QStringMatcher.pattern (self)

Returns the string pattern that this string matcher will search for.

See also setPattern().

QStringMatcher.setCaseSensitivity (self, Qt.CaseSensitivity cs)

Sets the case sensitivity setting of this string matcher to cs.

See also caseSensitivity(), setPattern(), and indexIn().

QStringMatcher.setPattern (self, QString pattern)

Sets the string that this string matcher will search for to pattern.

See also pattern(), setCaseSensitivity(), and indexIn().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstringref.html0000644000076500000240000012602112536324475020544 0ustar philstaff00000000000000 QStringRef Class Reference
  Home · All Classes · Modules

QStringRef Class Reference
[QtCore module]

The QStringRef class provides a thin wrapper around QString substrings. More...

Methods

  • __init__ (self)
  • __init__ (self, QString aString, int aPosition, int aSize)
  • __init__ (self, QString aString)
  • __init__ (self, QStringRef other)
  • QStringRef appendTo (self, QString string)
  • QChar at (self, int i)
  • clear (self)
  • int compare (self, QString other, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int compare (self, QStringRef other, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int compare (self, QLatin1String other, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QChar constData (self)
  • bool contains (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool contains (self, QLatin1String str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool contains (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int count (self)
  • int count (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int count (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QChar data (self)
  • bool endsWith (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool endsWith (self, QLatin1String str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool endsWith (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int indexOf (self, QString str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int indexOf (self, QLatin1String str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int indexOf (self, QStringRef str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool isEmpty (self)
  • bool isNull (self)
  • int lastIndexOf (self, QString str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int lastIndexOf (self, QLatin1String str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int lastIndexOf (self, QStringRef str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int length (self)
  • int localeAwareCompare (self, QString s)
  • int localeAwareCompare (self, QStringRef s)
  • int position (self)
  • int size (self)
  • bool startsWith (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool startsWith (self, QLatin1String str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • bool startsWith (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • QString string (self)
  • QByteArray toAscii (self)
  • QByteArray toLatin1 (self)
  • QByteArray toLocal8Bit (self)
  • QString toString (self)
  • list-of-int toUcs4 (self)
  • QByteArray toUtf8 (self)
  • QChar unicode (self)

Static Methods

  • int compare (QStringRef s1, QString s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int compare (QStringRef s1, QStringRef s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int compare (QStringRef s1, QLatin1String s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)
  • int localeAwareCompare (QStringRef s1, QString s2)
  • int localeAwareCompare (QStringRef s1, QStringRef s2)

Special Methods

  • bool __eq__ (self, QStringRef s2)
  • bool __eq__ (self, QString s2)
  • bool __eq__ (self, QLatin1String s2)
  • bool __ge__ (self, QStringRef s2)
  • bool __gt__ (self, QStringRef s2)
  • bool __le__ (self, QStringRef s2)
  • __len__ (self)
  • bool __lt__ (self, QStringRef s2)
  • bool __ne__ (self, QStringRef s2)
  • bool __ne__ (self, QString s2)
  • bool __ne__ (self, QLatin1String s2)
  • str __str__ (self)

Detailed Description

The QStringRef class provides a thin wrapper around QString substrings.

QStringRef provides a read-only subset of the QString API.

A string reference explicitly references a portion of a string() with a given size(), starting at a specific position(). Calling toString() returns a copy of the data as a real QString instance.

This class is designed to improve the performance of substring handling when manipulating substrings obtained from existing QString instances. QStringRef avoids the memory allocation and reference counting overhead of a standard QString by simply referencing a part of the original string. This can prove to be advantageous in low level code, such as that used in a parser, at the expense of potentially more complex code.

For most users, there are no semantic benefits to using QStringRef instead of QString since QStringRef requires attention to be paid to memory management issues, potentially making code more complex to write and maintain.

Warning: A QStringRef is only valid as long as the referenced string exists. If the original string is deleted, the string reference points to an invalid memory location.

We suggest that you only use this class in stable code where profiling has clearly identified that performance improvements can be made by replacing standard string operations with the optimized substring handling provided by this class.


Method Documentation

QStringRef.__init__ (self)

Constructs an empty string reference.

QStringRef.__init__ (self, QString aString, int aPosition, int aSize)

Constructs a string reference to the range of characters in the given string specified by the starting position and length in characters.

Warning: This function exists to improve performance as much as possible, and performs no bounds checking. For program correctness, position and length must describe a valid substring of string.

This means that the starting position must be positive or 0 and smaller than string's length, and length must be positive or 0 but smaller than the string's length minus the starting position; i.e, 0 <= position < string->length() and 0 <= length <= string->length() - position must both be satisfied.

QStringRef.__init__ (self, QString aString)

Constructs a string reference to the given string.

QStringRef.__init__ (self, QStringRef other)

Constructs a copy of the other string reference.

QStringRef QStringRef.appendTo (self, QString string)

Appends the string reference to string, and returns a new reference to the combined string data.

QChar QStringRef.at (self, int i)

Returns the character at the given index position in the string reference.

The position must be a valid index position in the string (i.e., 0 <= position < size()).

QStringRef.clear (self)

Clears the contents of the string reference by making it null and empty.

See also isEmpty() and isNull().

int QStringRef.compare (self, QString other, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Compares the string s1 with the string s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.

If cs is Qt.CaseSensitive, the comparison is case sensitive; otherwise the comparison is case insensitive.

This function was introduced in Qt 4.5.

int QStringRef.compare (self, QStringRef other, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This is an overloaded function.

Compares the string s1 with the string s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.

If cs is Qt.CaseSensitive, the comparison is case sensitive; otherwise the comparison is case insensitive.

This function was introduced in Qt 4.5.

int QStringRef.compare (self, QLatin1String other, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This is an overloaded function.

Compares the string s1 with the string s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.

If cs is Qt.CaseSensitive, the comparison is case sensitive; otherwise the comparison is case insensitive.

This function was introduced in Qt 4.5.

int QStringRef.compare (QStringRef s1, QString s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This is an overloaded function.

Compares this string with the other string and returns an integer less than, equal to, or greater than zero if this string is less than, equal to, or greater than the other string.

If cs is Qt.CaseSensitive, the comparison is case sensitive; otherwise the comparison is case insensitive.

Equivalent to compare(*this, other, cs).

This function was introduced in Qt 4.5.

See also QString.compare().

int QStringRef.compare (QStringRef s1, QStringRef s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This is an overloaded function.

Compares this string with the other string and returns an integer less than, equal to, or greater than zero if this string is less than, equal to, or greater than the other string.

If cs is Qt.CaseSensitive, the comparison is case sensitive; otherwise the comparison is case insensitive.

Equivalent to compare(*this, other, cs).

This function was introduced in Qt 4.5.

See also QString.compare().

int QStringRef.compare (QStringRef s1, QLatin1String s2, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This is an overloaded function.

Compares this string with the other string and returns an integer less than, equal to, or greater than zero if this string is less than, equal to, or greater than the other string.

If cs is Qt.CaseSensitive, the comparison is case sensitive; otherwise the comparison is case insensitive.

Equivalent to compare(*this, other, cs).

This function was introduced in Qt 4.5.

See also QString.compare().

QChar QStringRef.constData (self)

Same as unicode().

bool QStringRef.contains (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns true if this string reference contains an occurrence of the string str; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also indexOf() and count().

bool QStringRef.contains (self, QLatin1String str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads contains().

Returns true if this string contains an occurrence of the character ch; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

bool QStringRef.contains (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads contains().

Returns true if this string reference contains an occurrence of the string reference str; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also indexOf() and count().

int QStringRef.count (self)

Returns the number of characters referred to by the string reference. Equivalent to size() and length().

See also position() and string().

int QStringRef.count (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns the number of (potentially overlapping) occurrences of the string str in this string reference.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also QString.count(), contains(), and indexOf().

int QStringRef.count (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads count().

Returns the number of occurrences of the character ch in the string reference.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also QString.count(), contains(), and indexOf().

QChar QStringRef.data (self)

Same as unicode().

bool QStringRef.endsWith (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns true if the string reference ends with str; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also QString.endsWith() and startsWith().

bool QStringRef.endsWith (self, QLatin1String str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads endsWith().

Returns true if the string reference ends with ch; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also QString.endsWith() and endsWith().

bool QStringRef.endsWith (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads endsWith().

This function was introduced in Qt 4.8.

See also QString.endsWith() and endsWith().

int QStringRef.indexOf (self, QString str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns the index position of the first occurrence of the string str in this string reference, searching forward from index position from. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

If from is -1, the search starts at the last character; if it is -2, at the next to last character and so on.

This function was introduced in Qt 4.8.

See also QString.indexOf(), lastIndexOf(), contains(), and count().

int QStringRef.indexOf (self, QLatin1String str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns the index position of the first occurrence of the string str in this string reference, searching forward from index position from. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

If from is -1, the search starts at the last character; if it is -2, at the next to last character and so on.

This function was introduced in Qt 4.8.

See also QString.indexOf(), lastIndexOf(), contains(), and count().

int QStringRef.indexOf (self, QStringRef str, int from = 0, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads indexOf().

Returns the index position of the first occurrence of the character ch in the string reference, searching forward from index position from. Returns -1 if ch could not be found.

This function was introduced in Qt 4.8.

See also QString.indexOf(), lastIndexOf(), contains(), and count().

bool QStringRef.isEmpty (self)

Returns true if the string reference has no characters; otherwise returns false.

A string reference is empty if its size is zero.

See also size().

bool QStringRef.isNull (self)

Returns true if string() returns a null pointer or a pointer to a null string; otherwise returns true.

See also size().

int QStringRef.lastIndexOf (self, QString str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns the index position of the last occurrence of the string str in this string reference, searching backward from index position from. If from is -1 (default), the search starts at the last character; if from is -2, at the next to last character and so on. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also QString.lastIndexOf(), indexOf(), contains(), and count().

int QStringRef.lastIndexOf (self, QLatin1String str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads lastIndexOf().

Returns the index position of the last occurrence of the character ch, searching backward from position from.

This function was introduced in Qt 4.8.

See also QString.lastIndexOf(), indexOf(), contains(), and count().

int QStringRef.lastIndexOf (self, QStringRef str, int from = -1, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads lastIndexOf().

Returns the index position of the last occurrence of the string str in this string reference, searching backward from index position from. If from is -1 (default), the search starts at the last character; if from is -2, at the next to last character and so on. Returns -1 if str is not found.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also QString.lastIndexOf(), indexOf(), contains(), and count().

int QStringRef.length (self)

Returns the number of characters referred to by the string reference. Equivalent to size() and count().

See also position() and string().

int QStringRef.localeAwareCompare (self, QString s)

Compares s1 with s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.

The comparison is performed in a locale- and also platform-dependent manner. Use this function to present sorted lists of strings to the user.

On Mac OS X, this function compares according the "Order for sorted lists" setting in the International prefereces panel.

This function was introduced in Qt 4.5.

See also compare() and QTextCodec.locale().

int QStringRef.localeAwareCompare (self, QStringRef s)

This is an overloaded function.

Compares s1 with s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.

The comparison is performed in a locale- and also platform-dependent manner. Use this function to present sorted lists of strings to the user.

This function was introduced in Qt 4.5.

int QStringRef.localeAwareCompare (QStringRef s1, QString s2)

This is an overloaded function.

Compares this string with the other string and returns an integer less than, equal to, or greater than zero if this string is less than, equal to, or greater than the other string.

The comparison is performed in a locale- and also platform-dependent manner. Use this function to present sorted lists of strings to the user.

This function was introduced in Qt 4.5.

int QStringRef.localeAwareCompare (QStringRef s1, QStringRef s2)

This is an overloaded function.

Compares this string with the other string and returns an integer less than, equal to, or greater than zero if this string is less than, equal to, or greater than the other string.

The comparison is performed in a locale- and also platform-dependent manner. Use this function to present sorted lists of strings to the user.

This function was introduced in Qt 4.5.

int QStringRef.position (self)

Returns the starting position in the referenced string that is referred to by the string reference.

See also size() and string().

int QStringRef.size (self)

Returns the number of characters referred to by the string reference. Equivalent to length() and count().

See also position() and string().

bool QStringRef.startsWith (self, QString str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

Returns true if the string reference starts with str; otherwise returns false.

If cs is Qt.CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.

This function was introduced in Qt 4.8.

See also QString.startsWith() and endsWith().

bool QStringRef.startsWith (self, QLatin1String str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads startsWith().

This function was introduced in Qt 4.8.

See also QString.startsWith() and endsWith().

bool QStringRef.startsWith (self, QStringRef str, Qt.CaseSensitivity cs = Qt.CaseSensitive)

This function overloads startsWith().

This function was introduced in Qt 4.8.

See also QString.startsWith() and endsWith().

QString QStringRef.string (self)

Returns a pointer to the string referred to by the string reference, or 0 if it does not reference a string.

See also unicode().

QByteArray QStringRef.toAscii (self)

Returns an 8-bit representation of the string as a QByteArray.

If a codec has been set using QTextCodec.setCodecForCStrings(), it is used to convert Unicode to 8-bit char; otherwise this function does the same as toLatin1().

Note that, despite the name, this function does not necessarily return an US-ASCII (ANSI X3.4-1986) string and its result may not be US-ASCII compatible.

This function was introduced in Qt 4.8.

See also toLatin1(), toUtf8(), toLocal8Bit(), and QTextCodec.

QByteArray QStringRef.toLatin1 (self)

Returns a Latin-1 representation of the string as a QByteArray.

The returned byte array is undefined if the string contains non-Latin1 characters. Those characters may be suppressed or replaced with a question mark.

This function was introduced in Qt 4.8.

See also toAscii(), toUtf8(), toLocal8Bit(), and QTextCodec.

QByteArray QStringRef.toLocal8Bit (self)

Returns the local 8-bit representation of the string as a QByteArray. The returned byte array is undefined if the string contains characters not supported by the local 8-bit encoding.

QTextCodec.codecForLocale() is used to perform the conversion from Unicode. If the locale encoding could not be determined, this function does the same as toLatin1().

If this string contains any characters that cannot be encoded in the locale, the returned byte array is undefined. Those characters may be suppressed or replaced by another.

This function was introduced in Qt 4.8.

See also toAscii(), toLatin1(), toUtf8(), and QTextCodec.

QString QStringRef.toString (self)

Returns a copy of the string reference as a QString object.

If the string reference is not a complete reference of the string (meaning that position() is 0 and size() equals string()->size()), this function will allocate a new string to return.

See also string().

list-of-int QStringRef.toUcs4 (self)

Returns a UCS-4/UTF-32 representation of the string as a QVector<uint>.

UCS-4 is a Unicode codec and is lossless. All characters from this string can be encoded in UCS-4.

This function was introduced in Qt 4.8.

See also toAscii(), toLatin1(), toLocal8Bit(), and QTextCodec.

QByteArray QStringRef.toUtf8 (self)

Returns a UTF-8 representation of the string as a QByteArray.

UTF-8 is a Unicode codec and can represent all characters in a Unicode string like QString.

However, in the Unicode range, there are certain codepoints that are not considered characters. The Unicode standard reserves the last two codepoints in each Unicode Plane (U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, U+2FFFE, etc.), as well as 16 codepoints in the range U+FDD0..U+FDDF, inclusive, as non-characters. If any of those appear in the string, they may be discarded and will not appear in the UTF-8 representation, or they may be replaced by one or more replacement characters.

This function was introduced in Qt 4.8.

See also toAscii(), toLatin1(), toLocal8Bit(), and QTextCodec.

QChar QStringRef.unicode (self)

Returns a Unicode representation of the string reference. Since the data stems directly from the referenced string, it is not null-terminated unless the string reference includes the string's null terminator.

See also string().

bool QStringRef.__eq__ (self, QStringRef s2)

bool QStringRef.__eq__ (self, QString s2)

bool QStringRef.__eq__ (self, QLatin1String s2)

bool QStringRef.__ge__ (self, QStringRef s2)

bool QStringRef.__gt__ (self, QStringRef s2)

bool QStringRef.__le__ (self, QStringRef s2)

QStringRef.__len__ (self)

bool QStringRef.__lt__ (self, QStringRef s2)

bool QStringRef.__ne__ (self, QStringRef s2)

bool QStringRef.__ne__ (self, QString s2)

bool QStringRef.__ne__ (self, QLatin1String s2)

str QStringRef.__str__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyle-state.html0000644000076500000240000001265712536324513021021 0ustar philstaff00000000000000 QStyle.State Class Reference
  Home · All Classes · Modules

QStyle.State Class Reference
[
QtGui module]

Methods

Special Methods


Detailed Description

StateFlag may be used whenever State is expected.


Method Documentation

State.__init__ (self, State)

State.__init__ (self, int)

State.__init__ (self)

State State.__and__ (self, int mask)

int State.__bool__ (self)

bool State.__eq__ (self, State f)

State State.__iand__ (self, int mask)

int State.__int__ (self)

State State.__invert__ (self)

State State.__ior__ (self, State f)

State State.__ixor__ (self, State f)

bool State.__ne__ (self, State f)

State State.__or__ (self, State f)

State State.__or__ (self, int f)

State State.__xor__ (self, State f)

State State.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyle-subcontrols.html0000644000076500000240000001371012536324513022245 0ustar philstaff00000000000000 QStyle.SubControls Class Reference
  Home · All Classes · Modules

QStyle.SubControls Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

SubControl may be used whenever SubControls is expected.


Method Documentation

SubControls.__init__ (self, SubControls)

SubControls.__init__ (self, int)

SubControls.__init__ (self)

SubControls SubControls.__and__ (self, int mask)

int SubControls.__bool__ (self)

bool SubControls.__eq__ (self, SubControls f)

SubControls SubControls.__iand__ (self, int mask)

int SubControls.__int__ (self)

SubControls SubControls.__invert__ (self)

SubControls SubControls.__ior__ (self, SubControls f)

SubControls SubControls.__ixor__ (self, SubControls f)

bool SubControls.__ne__ (self, SubControls f)

SubControls SubControls.__or__ (self, SubControls f)

SubControls SubControls.__or__ (self, int f)

SubControls SubControls.__xor__ (self, SubControls f)

SubControls SubControls.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyle.html0000644000076500000240000061525412536324502017703 0ustar philstaff00000000000000 QStyle Class Reference
  Home · All Classes · Modules

QStyle Class Reference
[QtGui module]

The QStyle class is an abstract base class that encapsulates the look and feel of a GUI. More...

Inherits QObject.

Inherited by QCommonStyle.

Types

  • enum ComplexControl { CC_SpinBox, CC_ComboBox, CC_ScrollBar, CC_Slider, ..., CC_CustomBase }
  • enum ContentsType { CT_PushButton, CT_CheckBox, CT_RadioButton, CT_ToolButton, ..., CT_CustomBase }
  • enum ControlElement { CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel, CE_CheckBox, ..., CE_CustomBase }
  • enum PixelMetric { PM_ButtonMargin, PM_ButtonDefaultIndicator, PM_MenuButtonIndicator, PM_ButtonShiftHorizontal, ..., PM_CustomBase }
  • enum PrimitiveElement { PE_Q3CheckListController, PE_Q3CheckListExclusiveIndicator, PE_Q3CheckListIndicator, PE_Q3DockWindowSeparator, ..., PE_CustomBase }
  • enum RequestSoftwareInputPanel { RSIP_OnMouseClickAndAlreadyFocused, RSIP_OnMouseClick }
  • enum StandardPixmap { SP_TitleBarMenuButton, SP_TitleBarMinButton, SP_TitleBarMaxButton, SP_TitleBarCloseButton, ..., SP_CustomBase }
  • class State
  • enum StateFlag { State_None, State_Enabled, State_Raised, State_Sunken, ..., State_Mini }
  • enum StyleHint { SH_EtchDisabledText, SH_DitherDisabledText, SH_ScrollBar_MiddleClickAbsolutePosition, SH_ScrollBar_ScrollWhenPointerLeavesControl, ..., SH_CustomBase }
  • enum SubControl { SC_None, SC_ScrollBarAddLine, SC_ScrollBarSubLine, SC_ScrollBarAddPage, ..., SC_All }
  • enum SubElement { SE_PushButtonContents, SE_PushButtonFocusRect, SE_CheckBoxIndicator, SE_CheckBoxContents, ..., SE_CustomBase }

Methods

  • __init__ (self)
  • int combinedLayoutSpacing (self, QSizePolicy.ControlTypes controls1, QSizePolicy.ControlTypes controls2, Qt.Orientation orientation, QStyleOption option = None, QWidget widget = None)
  • drawComplexControl (self, ComplexControl cc, QStyleOptionComplex opt, QPainter p, QWidget widget = None)
  • drawControl (self, ControlElement element, QStyleOption opt, QPainter p, QWidget widget = None)
  • drawItemPixmap (self, QPainter painter, QRect rect, int alignment, QPixmap pixmap)
  • drawItemText (self, QPainter painter, QRect rectangle, int alignment, QPalette palette, bool enabled, QString text, QPalette.ColorRole textRole = QPalette.NoRole)
  • drawPrimitive (self, PrimitiveElement pe, QStyleOption opt, QPainter p, QWidget widget = None)
  • QPixmap generatedIconPixmap (self, QIcon.Mode iconMode, QPixmap pixmap, QStyleOption opt)
  • SubControl hitTestComplexControl (self, ComplexControl cc, QStyleOptionComplex opt, QPoint pt, QWidget widget = None)
  • QRect itemPixmapRect (self, QRect r, int flags, QPixmap pixmap)
  • QRect itemTextRect (self, QFontMetrics fm, QRect r, int flags, bool enabled, QString text)
  • int layoutSpacing (self, QSizePolicy.ControlType control1, QSizePolicy.ControlType control2, Qt.Orientation orientation, QStyleOption option = None, QWidget widget = None)
  • int layoutSpacingImplementation (self, QSizePolicy.ControlType control1, QSizePolicy.ControlType control2, Qt.Orientation orientation, QStyleOption option = None, QWidget widget = None)
  • int pixelMetric (self, PixelMetric metric, QStyleOption option = None, QWidget widget = None)
  • polish (self, QWidget)
  • polish (self, QApplication)
  • QPalette polish (self, QPalette)
  • QStyle proxy (self)
  • QSize sizeFromContents (self, ContentsType ct, QStyleOption opt, QSize contentsSize, QWidget widget = None)
  • QIcon standardIcon (self, StandardPixmap standardIcon, QStyleOption option = None, QWidget widget = None)
  • QIcon standardIconImplementation (self, StandardPixmap standardIcon, QStyleOption option = None, QWidget widget = None)
  • QPalette standardPalette (self)
  • QPixmap standardPixmap (self, StandardPixmap standardPixmap, QStyleOption option = None, QWidget widget = None)
  • int styleHint (self, StyleHint stylehint, QStyleOption option = None, QWidget widget = None, QStyleHintReturn returnData = None)
  • QRect subControlRect (self, ComplexControl cc, QStyleOptionComplex opt, SubControl sc, QWidget widget = None)
  • QRect subElementRect (self, SubElement subElement, QStyleOption option, QWidget widget = None)
  • unpolish (self, QWidget)
  • unpolish (self, QApplication)

Static Methods

  • QRect alignedRect (Qt.LayoutDirection direction, Qt.Alignment alignment, QSize size, QRect rectangle)
  • int sliderPositionFromValue (int min, int max, int logicalValue, int span, bool upsideDown = False)
  • int sliderValueFromPosition (int min, int max, int position, int span, bool upsideDown = False)
  • Qt.Alignment visualAlignment (Qt.LayoutDirection direction, Qt.Alignment alignment)
  • QPoint visualPos (Qt.LayoutDirection direction, QRect boundingRect, QPoint logicalPos)
  • QRect visualRect (Qt.LayoutDirection direction, QRect boundingRect, QRect logicalRect)

Detailed Description

The QStyle class is an abstract base class that encapsulates the look and feel of a GUI.

Qt contains a set of QStyle subclasses that emulate the styles of the different platforms supported by Qt (QWindowsStyle, QMacStyle, QMotifStyle, etc.). By default, these styles are built into the QtGui library. Styles can also be made available as plugins.

Qt's built-in widgets use QStyle to perform nearly all of their drawing, ensuring that they look exactly like the equivalent native widgets. The diagram below shows a QComboBox in eight different styles.

Eight combo boxes

Topics:

Setting a Style

The style of the entire application can be set using the QApplication.setStyle() function. It can also be specified by the user of the application, using the -style command-line option:

 ./myapplication -style motif

If no style is specified, Qt will choose the most appropriate style for the user's platform or desktop environment.

A style can also be set on an individual widget using the QWidget.setStyle() function.

Developing Style-Aware Custom Widgets

If you are developing custom widgets and want them to look good on all platforms, you can use QStyle functions to perform parts of the widget drawing, such as drawItemText(), drawItemPixmap(), drawPrimitive(), drawControl(), and drawComplexControl().

Most QStyle draw functions take four arguments:

  • an enum value specifying which graphical element to draw
  • a QStyleOption specifying how and where to render that element
  • a QPainter that should be used to draw the element
  • a QWidget on which the drawing is performed (optional)

For example, if you want to draw a focus rectangle on your widget, you can write:

 void MyWidget.paintEvent(QPaintEvent * /* event */)
 {
     QPainter painter(this);

     QStyleOptionFocusRect option;
     option.initFrom(this);
     option.backgroundColor = palette().color(QPalette.Background);

     style()->drawPrimitive(QStyle.PE_FrameFocusRect, &option, &painter, this);
 }

QStyle gets all the information it needs to render the graphical element from QStyleOption. The widget is passed as the last argument in case the style needs it to perform special effects (such as animated default buttons on Mac OS X), but it isn't mandatory. In fact, you can use QStyle to draw on any paint device, not just widgets, by setting the QPainter properly.

QStyleOption has various subclasses for the various types of graphical elements that can be drawn. For example, PE_FrameFocusRect expects a QStyleOptionFocusRect argument.

To ensure that drawing operations are as fast as possible, QStyleOption and its subclasses have public data members. See the QStyleOption class documentation for details on how to use it.

For convenience, Qt provides the QStylePainter class, which combines a QStyle, a QPainter, and a QWidget. This makes it possible to write

     QStylePainter painter(this);
     ...
     painter.drawPrimitive(QStyle.PE_FrameFocusRect, option);

instead of

     QPainter painter(this);
     ...
     style()->drawPrimitive(QStyle.PE_FrameFocusRect, &option, &painter, this);

Creating a Custom Style

You can create a custom look and feel for your application by creating a custom style. There are two approaches to creating a custom style. In the static approach, you either choose an existing QStyle class, subclass it, and reimplement virtual functions to provide the custom behavior, or you create an entire QStyle class from scratch. In the dynamic approach, you modify the behavior of your system style at runtime. The static approach is described below. The dynamic approach is described in QProxyStyle.

The first step in the static approach is to pick one of the styles provided by Qt from which you will build your custom style. Your choice of QStyle class will depend on which style resembles your desired style the most. The most general class that you can use as a base is QCommonStyle (not QStyle). This is because Qt requires its styles to be QCommonStyles.

Depending on which parts of the base style you want to change, you must reimplement the functions that are used to draw those parts of the interface. To illustrate this, we will modify the look of the spin box arrows drawn by QWindowsStyle. The arrows are primitive elements that are drawn by the drawPrimitive() function, so we need to reimplement that function. We need the following class declaration:

 class CustomStyle : public QWindowsStyle
 {
     Q_OBJECT

 public:
     CustomStyle()
     ~CustomStyle() {}

     void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
                        QPainter *painter, const QWidget *widget) const;
 };

To draw its up and down arrows, QSpinBox uses the PE_IndicatorSpinUp and PE_IndicatorSpinDown primitive elements. Here's how to reimplement the drawPrimitive() function to draw them differently:

 void CustomStyle.drawPrimitive(PrimitiveElement element, const QStyleOption *option,
                                 QPainter *painter, const QWidget *widget) const
 {
     if (element == PE_IndicatorSpinUp || element == PE_IndicatorSpinDown) {
         QPolygon points(3);
         int x = option->rect.x();
         int y = option->rect.y();
         int w = option->rect.width() / 2;
         int h = option->rect.height() / 2;
         x += (option->rect.width() - w) / 2;
         y += (option->rect.height() - h) / 2;

         if (element == PE_IndicatorSpinUp) {
             points[0] = QPoint(x, y + h);
             points[1] = QPoint(x + w, y + h);
             points[2] = QPoint(x + w / 2, y);
         } else { // PE_SpinBoxDown
             points[0] = QPoint(x, y);
             points[1] = QPoint(x + w, y);
             points[2] = QPoint(x + w / 2, y + h);
         }

         if (option->state & State_Enabled) {
             painter->setPen(option->palette.mid().color());
             painter->setBrush(option->palette.buttonText());
         } else {
             painter->setPen(option->palette.buttonText().color());
             painter->setBrush(option->palette.mid());
         }
         painter->drawPolygon(points);
     } else {
         QWindowsStyle.drawPrimitive(element, option, painter, widget);
     }
 }

Notice that we don't use the widget argument, except to pass it on to the QWindowStyle.drawPrimitive() function. As mentioned earlier, the information about what is to be drawn and how it should be drawn is specified by a QStyleOption object, so there is no need to ask the widget.

If you need to use the widget argument to obtain additional information, be careful to ensure that it isn't 0 and that it is of the correct type before using it. For example:

     QSpinBox *spinBox = qobject_cast<QSpinBox *>(widget);
     if (spinBox) {
     ...
     }

When implementing a custom style, you cannot assume that the widget is a QSpinBox just because the enum value is called PE_IndicatorSpinUp or PE_IndicatorSpinDown.

The documentation for the Styles example covers this topic in more detail.

Warning: Qt style sheets are currently not supported for custom QStyle subclasses. We plan to address this in some future release.

Using a Custom Style

There are several ways of using a custom style in a Qt application. The simplest way is to pass the custom style to the QApplication.setStyle() static function before creating the QApplication object:

 #include <QtGui>

 #include "customstyle.h"

 int main(int argc, char *argv[])
 {
     QApplication.setStyle(new CustomStyle);
     QApplication app(argc, argv);
     QSpinBox spinBox;
     spinBox.show();
     return app.exec();
 }

You can call QApplication.setStyle() at any time, but by calling it before the constructor, you ensure that the user's preference, set using the -style command-line option, is respected.

You may want to make your custom style available for use in other applications, which may not be yours and hence not available for you to recompile. The Qt Plugin system makes it possible to create styles as plugins. Styles created as plugins are loaded as shared objects at runtime by Qt itself. Please refer to the Qt Plugin documentation for more information on how to go about creating a style plugin.

Compile your plugin and put it into Qt's plugins/styles directory. We now have a pluggable style that Qt can load automatically. To use your new style with existing applications, simply start the application with the following argument:

 ./myapplication -style custom

The application will use the look and feel from the custom style you implemented.

Right-to-Left Desktops

Languages written from right to left (such as Arabic and Hebrew) usually also mirror the whole layout of widgets, and require the light to come from the screen's top-right corner instead of top-left.

If you create a custom style, you should take special care when drawing asymmetric elements to make sure that they also look correct in a mirrored layout. An easy way to test your styles is to run applications with the -reverse command-line option or to call QApplication.setLayoutDirection() in your main() function.

Here are some things to keep in mind when making a style work well in a right-to-left environment:

Styles in Item Views

The painting of items in views is performed by a delegate. Qt's default delegate, QStyledItemDelegate, is also used for calculating bounding rectangles of items, and their sub-elements for the various kind of item data roles QStyledItemDelegate supports. See the QStyledItemDelegate class description to find out which datatypes and roles are supported. You can read more about item data roles in Model/View Programming.

When QStyledItemDelegate paints its items, it draws CE_ItemViewItem, and calculates their size with CT_ItemViewItem. Note also that it uses SE_ItemViewItemText to set the size of editors. When implementing a style to customize drawing of item views, you need to check the implementation of QCommonStyle (and any other subclasses from which your style inherits). This way, you find out which and how other style elements are painted, and you can then reimplement the painting of elements that should be drawn differently.

We include a small example where we customize the drawing of item backgrounds.

     switch (element) {
         case (PE_PanelItemViewItem): {
             painter->save();

             QPoint topLeft = option->rect.topLeft();
             QPoint bottomRight = option->rect.topRight();
             QLinearGradient backgroundGradient(topLeft, bottomRight);
             backgroundGradient.setColorAt(0.0, QColor(Qt.yellow).lighter(190));
             backgroundGradient.setColorAt(1.0, Qt.white);
             painter->fillRect(option->rect, QBrush(backgroundGradient));

             painter->restore();
         break;
         }
         default:
             QWindowsStyle.drawPrimitive(element, option, painter, widget);
     }

The primitive element PE_PanelItemViewItem is responsible for painting the background of items, and is called from QCommonStyle's implementation of CE_ItemViewItem.

To add support for drawing of new datatypes and item data roles, it is necessary to create a custom delegate. But if you only need to support the datatypes implemented by the default delegate, a custom style does not need an accompanying delegate. The QStyledItemDelegate class description gives more information on custom delegates.

The drawing of item view headers is also done by the style, giving control over size of header items and row and column sizes.


Type Documentation

QStyle.ComplexControl

This enum describes the available complex controls. Complex controls have different behavior depending upon where the user clicks on them or which keys are pressed.

Constant Value Description
QStyle.CC_SpinBox 0 A spinbox, like QSpinBox.
QStyle.CC_ComboBox 1 A combobox, like QComboBox.
QStyle.CC_ScrollBar 2 A scroll bar, like QScrollBar.
QStyle.CC_Slider 3 A slider, like QSlider.
QStyle.CC_ToolButton 4 A tool button, like QToolButton.
QStyle.CC_TitleBar 5 A Title bar, like those used in QMdiSubWindow.
QStyle.CC_Q3ListView 6 Used for drawing the Q3ListView class.
QStyle.CC_GroupBox 8 A group box, like QGroupBox.
QStyle.CC_Dial 7 A dial, like QDial.
QStyle.CC_MdiControls 9 The minimize, close, and normal button in the menu bar for a maximized MDI subwindow.
QStyle.CC_CustomBase 0xf0000000 Base value for custom complex controls. Custom values must be greater than this value.

See also SubControl and drawComplexControl().

QStyle.ContentsType

This enum describes the available contents types. These are used to calculate sizes for the contents of various widgets.

Constant Value Description
QStyle.CT_CheckBox 1 A check box, like QCheckBox.
QStyle.CT_ComboBox 4 A combo box, like QComboBox.
QStyle.CT_Q3DockWindow 6 A Q3DockWindow.
QStyle.CT_HeaderSection 21 A header section, like QHeader.
QStyle.CT_LineEdit 16 A line edit, like QLineEdit.
QStyle.CT_Menu 11 A menu, like QMenu.
QStyle.CT_Q3Header 15 A Qt 3 header section, like Q3Header.
QStyle.CT_MenuBar 10 A menu bar, like QMenuBar.
QStyle.CT_MenuBarItem 9 A menu bar item, like the buttons in a QMenuBar.
QStyle.CT_MenuItem 8 A menu item, like QMenuItem.
QStyle.CT_ProgressBar 7 A progress bar, like QProgressBar.
QStyle.CT_PushButton 0 A push button, like QPushButton.
QStyle.CT_RadioButton 2 A radio button, like QRadioButton.
QStyle.CT_SizeGrip 18 A size grip, like QSizeGrip.
QStyle.CT_Slider 13 A slider, like QSlider.
QStyle.CT_ScrollBar 14 A scroll bar, like QScrollBar.
QStyle.CT_SpinBox 17 A spin box, like QSpinBox.
QStyle.CT_Splitter 5 A splitter, like QSplitter.
QStyle.CT_TabBarTab 12 A tab on a tab bar, like QTabBar.
QStyle.CT_TabWidget 19 A tab widget, like QTabWidget.
QStyle.CT_ToolButton 3 A tool button, like QToolButton.
QStyle.CT_GroupBox 22 A group box, like QGroupBox.
QStyle.CT_ItemViewItem 24 An item inside an item view.
QStyle.CT_CustomBase 0xf0000000 Base value for custom contents types. Custom values must be greater than this value.
QStyle.CT_MdiControls 23 The minimize, normal, and close button in the menu bar for a maximized MDI subwindow.

See also sizeFromContents().

QStyle.ControlElement

This enum represents a control element. A control element is a part of a widget that performs some action or displays information to the user.

Constant Value Description
QStyle.CE_PushButton 0 A QPushButton, draws CE_PushButtonBevel, CE_PushButtonLabel and PE_FrameFocusRect.
QStyle.CE_PushButtonBevel 1 The bevel and default indicator of a QPushButton.
QStyle.CE_PushButtonLabel 2 The label (an icon with text or pixmap) of a QPushButton.
QStyle.CE_DockWidgetTitle 31 Dock window title.
QStyle.CE_Splitter 29 Splitter handle; see also QSplitter.
QStyle.CE_CheckBox 3 A QCheckBox, draws a PE_IndicatorCheckBox, a CE_CheckBoxLabel and a PE_FrameFocusRect.
QStyle.CE_CheckBoxLabel 4 The label (text or pixmap) of a QCheckBox.
QStyle.CE_RadioButton 5 A QRadioButton, draws a PE_IndicatorRadioButton, a CE_RadioButtonLabel and a PE_FrameFocusRect.
QStyle.CE_RadioButtonLabel 6 The label (text or pixmap) of a QRadioButton.
QStyle.CE_TabBarTab 7 The tab and label within a QTabBar.
QStyle.CE_TabBarTabShape 8 The tab shape within a tab bar.
QStyle.CE_TabBarTabLabel 9 The label within a tab.
QStyle.CE_ProgressBar 10 A QProgressBar, draws CE_ProgressBarGroove, CE_ProgressBarContents and CE_ProgressBarLabel.
QStyle.CE_ProgressBarGroove 11 The groove where the progress indicator is drawn in a QProgressBar.
QStyle.CE_ProgressBarContents 12 The progress indicator of a QProgressBar.
QStyle.CE_ProgressBarLabel 13 The text label of a QProgressBar.
QStyle.CE_ToolButtonLabel 22 A tool button's label.
QStyle.CE_MenuBarItem 20 A menu item in a QMenuBar.
QStyle.CE_MenuBarEmptyArea 21 The empty area of a QMenuBar.
QStyle.CE_MenuItem 14 A menu item in a QMenu.
QStyle.CE_MenuScroller 15 Scrolling areas in a QMenu when the style supports scrolling.
QStyle.CE_MenuTearoff 18 A menu item representing the tear off section of a QMenu.
QStyle.CE_MenuEmptyArea 19 The area in a menu without menu items.
QStyle.CE_MenuHMargin 17 The horizontal extra space on the left/right of a menu.
QStyle.CE_MenuVMargin 16 The vertical extra space on the top/bottom of a menu.
QStyle.CE_Q3DockWindowEmptyArea 26 The empty area of a QDockWidget.
QStyle.CE_ToolBoxTab 27 The toolbox's tab and label within a QToolBox.
QStyle.CE_SizeGrip 28 Window resize handle; see also QSizeGrip.
QStyle.CE_Header 23 A header.
QStyle.CE_HeaderSection 24 A header section.
QStyle.CE_HeaderLabel 25 The header's label.
QStyle.CE_ScrollBarAddLine 32 Scroll bar line increase indicator. (i.e., scroll down); see also QScrollBar.
QStyle.CE_ScrollBarSubLine 33 Scroll bar line decrease indicator (i.e., scroll up).
QStyle.CE_ScrollBarAddPage 34 Scolllbar page increase indicator (i.e., page down).
QStyle.CE_ScrollBarSubPage 35 Scroll bar page decrease indicator (i.e., page up).
QStyle.CE_ScrollBarSlider 36 Scroll bar slider.
QStyle.CE_ScrollBarFirst 37 Scroll bar first line indicator (i.e., home).
QStyle.CE_ScrollBarLast 38 Scroll bar last line indicator (i.e., end).
QStyle.CE_RubberBand 30 Rubber band used in for example an icon view.
QStyle.CE_FocusFrame 39 Focus frame that is style controlled.
QStyle.CE_ItemViewItem 46 An item inside an item view.
QStyle.CE_CustomBase 0xf0000000 Base value for custom control elements; custom values must be greater than this value.
QStyle.CE_ComboBoxLabel 40 The label of a non-editable QComboBox.
QStyle.CE_ToolBar 41 A toolbar like QToolBar.
QStyle.CE_ToolBoxTabShape 42 The toolbox's tab shape.
QStyle.CE_ToolBoxTabLabel 43 The toolbox's tab label.
QStyle.CE_HeaderEmptyArea 44 The area of a header view where there are no header sections.
QStyle.CE_ShapedFrame 47 The frame with the shape specified in the QStyleOptionFrameV3; see QFrame.

See also drawControl().

QStyle.PixelMetric

This enum describes the various available pixel metrics. A pixel metric is a style dependent size represented by a single pixel value.

Constant Value Description
QStyle.PM_ButtonMargin 0 Amount of whitespace between push button labels and the frame.
QStyle.PM_DockWidgetTitleBarButtonMargin ? Amount of whitespace between dock widget's title bar button labels and the frame.
QStyle.PM_ButtonDefaultIndicator 1 Width of the default-button indicator frame.
QStyle.PM_MenuButtonIndicator 2 Width of the menu button indicator proportional to the widget height.
QStyle.PM_ButtonShiftHorizontal 3 Horizontal contents shift of a button when the button is down.
QStyle.PM_ButtonShiftVertical 4 Vertical contents shift of a button when the button is down.
QStyle.PM_DefaultFrameWidth 5 Default frame width (usually 2).
QStyle.PM_SpinBoxFrameWidth 6 Frame width of a spin box, defaults to PM_DefaultFrameWidth.
QStyle.PM_ComboBoxFrameWidth 7 Frame width of a combo box, defaults to PM_DefaultFrameWidth.
QStyle.PM_MDIFrameWidth PM_MdiSubWindowFrameWidth Obsolete. Use PM_MdiSubWindowFrameWidth instead.
QStyle.PM_MdiSubWindowFrameWidth 46 Frame width of an MDI window.
QStyle.PM_MDIMinimizedWidth PM_MdiSubWindowMinimizedWidth Obsolete. Use PM_MdiSubWindowMinimizedWidth instead.
QStyle.PM_MdiSubWindowMinimizedWidth ? Width of a minimized MDI window.
QStyle.PM_LayoutLeftMargin ? Default left margin for a QLayout.
QStyle.PM_LayoutTopMargin ? Default top margin for a QLayout.
QStyle.PM_LayoutRightMargin ? Default right margin for a QLayout.
QStyle.PM_LayoutBottomMargin ? Default bottom margin for a QLayout.
QStyle.PM_LayoutHorizontalSpacing ? Default horizontal spacing for a QLayout.
QStyle.PM_LayoutVerticalSpacing ? Default vertical spacing for a QLayout.
QStyle.PM_MaximumDragDistance 8 The maximum allowed distance between the mouse and a scrollbar when dragging. Exceeding the specified distance will cause the slider to jump back to the original position; a value of -1 disables this behavior.
QStyle.PM_ScrollBarExtent 9 Width of a vertical scroll bar and the height of a horizontal scroll bar.
QStyle.PM_ScrollBarSliderMin 10 The minimum height of a vertical scroll bar's slider and the minimum width of a horizontal scroll bar's slider.
QStyle.PM_SliderThickness 11 Total slider thickness.
QStyle.PM_SliderControlThickness 12 Thickness of the slider handle.
QStyle.PM_SliderLength 13 Length of the slider.
QStyle.PM_SliderTickmarkOffset 14 The offset between the tickmarks and the slider.
QStyle.PM_SliderSpaceAvailable 15 The available space for the slider to move.
QStyle.PM_DockWidgetSeparatorExtent 16 Width of a separator in a horizontal dock window and the height of a separator in a vertical dock window.
QStyle.PM_DockWidgetHandleExtent 17 Width of the handle in a horizontal dock window and the height of the handle in a vertical dock window.
QStyle.PM_DockWidgetFrameWidth 18 Frame width of a dock window.
QStyle.PM_DockWidgetTitleMargin ? Margin of the dock window title.
QStyle.PM_MenuBarPanelWidth 33 Frame width of a menu bar, defaults to PM_DefaultFrameWidth.
QStyle.PM_MenuBarItemSpacing 34 Spacing between menu bar items.
QStyle.PM_MenuBarHMargin 36 Spacing between menu bar items and left/right of bar.
QStyle.PM_MenuBarVMargin 35 Spacing between menu bar items and top/bottom of bar.
QStyle.PM_ToolBarFrameWidth ? Width of the frame around toolbars.
QStyle.PM_ToolBarHandleExtent ? Width of a toolbar handle in a horizontal toolbar and the height of the handle in a vertical toolbar.
QStyle.PM_ToolBarItemMargin ? Spacing between the toolbar frame and the items.
QStyle.PM_ToolBarItemSpacing ? Spacing between toolbar items.
QStyle.PM_ToolBarSeparatorExtent ? Width of a toolbar separator in a horizontal toolbar and the height of a separator in a vertical toolbar.
QStyle.PM_ToolBarExtensionExtent ? Width of a toolbar extension button in a horizontal toolbar and the height of the button in a vertical toolbar.
QStyle.PM_TabBarTabOverlap 19 Number of pixels the tabs should overlap. (Currently only used in styles, not inside of QTabBar)
QStyle.PM_TabBarTabHSpace 20 Extra space added to the tab width.
QStyle.PM_TabBarTabVSpace 21 Extra space added to the tab height.
QStyle.PM_TabBarBaseHeight 22 Height of the area between the tab bar and the tab pages.
QStyle.PM_TabBarBaseOverlap 23 Number of pixels the tab bar overlaps the tab bar base.
QStyle.PM_TabBarScrollButtonWidth ?  
QStyle.PM_TabBarTabShiftHorizontal ? Horizontal pixel shift when a tab is selected.
QStyle.PM_TabBarTabShiftVertical ? Vertical pixel shift when a tab is selected.
QStyle.PM_ProgressBarChunkWidth 24 Width of a chunk in a progress bar indicator.
QStyle.PM_SplitterWidth 25 Width of a splitter.
QStyle.PM_TitleBarHeight 26 Height of the title bar.
QStyle.PM_IndicatorWidth 37 Width of a check box indicator.
QStyle.PM_IndicatorHeight 38 Height of a checkbox indicator.
QStyle.PM_ExclusiveIndicatorWidth 39 Width of a radio button indicator.
QStyle.PM_ExclusiveIndicatorHeight 40 Height of a radio button indicator.
QStyle.PM_MenuPanelWidth 30 Border width (applied on all sides) for a QMenu.
QStyle.PM_MenuHMargin 28 Additional border (used on left and right) for a QMenu.
QStyle.PM_MenuVMargin 29 Additional border (used for bottom and top) for a QMenu.
QStyle.PM_MenuScrollerHeight 27 Height of the scroller area in a QMenu.
QStyle.PM_MenuTearoffHeight 31 Height of a tear off area in a QMenu.
QStyle.PM_MenuDesktopFrameWidth 32 The frame width for the menu on the desktop.
QStyle.PM_CheckListButtonSize 41 Area (width/height) of the checkbox/radio button in a Q3CheckListItem.
QStyle.PM_CheckListControllerSize 42 Area (width/height) of the controller in a Q3CheckListItem.
QStyle.PM_HeaderMarkSize ? The size of the sort indicator in a header.
QStyle.PM_HeaderGripMargin ? The size of the resize grip in a header.
QStyle.PM_HeaderMargin ? The size of the margin between the sort indicator and the text.
QStyle.PM_SpinBoxSliderHeight ? The height of the optional spin box slider.
QStyle.PM_ToolBarIconSize ? Default tool bar icon size
QStyle.PM_SmallIconSize ? Default small icon size
QStyle.PM_LargeIconSize ? Default large icon size
QStyle.PM_FocusFrameHMargin ? Horizontal margin that the focus frame will outset the widget by.
QStyle.PM_FocusFrameVMargin ? Vertical margin that the focus frame will outset the widget by.
QStyle.PM_IconViewIconSize ? The default size for icons in an icon view.
QStyle.PM_ListViewIconSize ? The default size for icons in a list view.
QStyle.PM_ToolTipLabelFrameWidth ? The frame width for a tool tip label.
QStyle.PM_CheckBoxLabelSpacing ? The spacing between a check box indicator and its label.
QStyle.PM_RadioButtonLabelSpacing ? The spacing between a radio button indicator and its label.
QStyle.PM_TabBarIconSize ? The default icon size for a tab bar.
QStyle.PM_SizeGripSize ? The size of a size grip.
QStyle.PM_MessageBoxIconSize ? The size of the standard icons in a message box
QStyle.PM_ButtonIconSize ? The default size of button icons
QStyle.PM_TextCursorWidth ? The width of the cursor in a line edit or text edit
QStyle.PM_TabBar_ScrollButtonOverlap ? The distance between the left and right buttons in a tab bar.
QStyle.PM_TabCloseIndicatorWidth ? The default width of a close button on a tab in a tab bar.
QStyle.PM_TabCloseIndicatorHeight ? The default height of a close button on a tab in a tab bar.
QStyle.PM_CustomBase 0xf0000000 Base value for custom pixel metrics. Custom values must be greater than this value.

The following values are obsolete:

Constant Value Description
QStyle.PM_DefaultTopLevelMargin ? Use PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin, and PM_LayoutBottomMargin instead.
QStyle.PM_DefaultChildMargin ? Use PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin, and PM_LayoutBottomMargin instead.
QStyle.PM_DefaultLayoutSpacing ? Use PM_LayoutHorizontalSpacing and PM_LayoutVerticalSpacing instead.
QStyle.PM_ScrollView_ScrollBarSpacing ? Distance between frame and scrollbar with SH_ScrollView_FrameOnlyAroundContents set.
QStyle.PM_SubMenuOverlap ? The horizontal overlap between a submenu and its parent.

See also pixelMetric().

QStyle.PrimitiveElement

This enum describes the various primitive elements. A primitive element is a common GUI element, such as a checkbox indicator or button bevel.

Constant Value Description
QStyle.PE_FrameStatusBar 12 Frame
QStyle.PE_PanelButtonCommand ? Button used to initiate an action, for example, a QPushButton.
QStyle.PE_FrameDefaultButton 6 This frame around a default button, e.g. in a dialog.
QStyle.PE_PanelButtonBevel ? Generic panel with a button bevel.
QStyle.PE_PanelButtonTool ? Panel for a Tool button, used with QToolButton.
QStyle.PE_PanelLineEdit ? Panel for a QLineEdit.
QStyle.PE_IndicatorButtonDropDown ? Indicator for a drop down button, for example, a tool button that displays a menu.
QStyle.PE_FrameFocusRect 8 Generic focus indicator.
QStyle.PE_IndicatorArrowUp ? Generic Up arrow.
QStyle.PE_IndicatorArrowDown ? Generic Down arrow.
QStyle.PE_IndicatorArrowRight ? Generic Right arrow.
QStyle.PE_IndicatorArrowLeft ? Generic Left arrow.
QStyle.PE_IndicatorSpinUp ? Up symbol for a spin widget, for example a QSpinBox.
QStyle.PE_IndicatorSpinDown ? Down symbol for a spin widget.
QStyle.PE_IndicatorSpinPlus ? Increase symbol for a spin widget.
QStyle.PE_IndicatorSpinMinus ? Decrease symbol for a spin widget.
QStyle.PE_IndicatorItemViewItemCheck PE_IndicatorViewItemCheck On/off indicator for a view item.
QStyle.PE_IndicatorCheckBox ? On/off indicator, for example, a QCheckBox.
QStyle.PE_IndicatorRadioButton ? Exclusive on/off indicator, for example, a QRadioButton.
QStyle.PE_Q3DockWindowSeparator 3 Item separator for Qt 3 compatible dock window and toolbar contents.
QStyle.PE_IndicatorDockWidgetResizeHandle ? Resize handle for dock windows.
QStyle.PE_Frame 5 Generic frame
QStyle.PE_FrameMenu 11 Frame for popup windows/menus; see also QMenu.
QStyle.PE_PanelMenuBar ? Panel for menu bars.
QStyle.PE_PanelScrollAreaCorner ? Panel at the bottom-right (or bottom-left) corner of a scroll area.
QStyle.PE_FrameDockWidget 7 Panel frame for dock windows and toolbars.
QStyle.PE_FrameTabWidget ? Frame for tab widgets.
QStyle.PE_FrameLineEdit 10 Panel frame for line edits.
QStyle.PE_FrameGroupBox 9 Panel frame around group boxes.
QStyle.PE_FrameButtonBevel ? Panel frame for a button bevel.
QStyle.PE_FrameButtonTool ? Panel frame for a tool button.
QStyle.PE_IndicatorHeaderArrow ? Arrow used to indicate sorting on a list or table header.
QStyle.PE_FrameStatusBarItem PE_FrameStatusBar Frame for an item of a status bar; see also QStatusBar.
QStyle.PE_FrameWindow ? Frame around a MDI window or a docking window.
QStyle.PE_Q3Separator 4 Qt 3 compatible generic separator.
QStyle.PE_IndicatorMenuCheckMark ? Check mark used in a menu.
QStyle.PE_IndicatorProgressChunk ? Section of a progress bar indicator; see also QProgressBar.
QStyle.PE_Q3CheckListController 0 Qt 3 compatible controller part of a list view item.
QStyle.PE_Q3CheckListIndicator 2 Qt 3 compatible checkbox part of a list view item.
QStyle.PE_Q3CheckListExclusiveIndicator 1 Qt 3 compatible radio button part of a list view item.
QStyle.PE_IndicatorBranch ? Lines used to represent the branch of a tree in a tree view.
QStyle.PE_IndicatorToolBarHandle ? The handle of a toolbar.
QStyle.PE_IndicatorToolBarSeparator ? The separator in a toolbar.
QStyle.PE_PanelToolBar ? The panel for a toolbar.
QStyle.PE_PanelTipLabel ? The panel for a tip label.
QStyle.PE_FrameTabBarBase ? The frame that is drawn for a tab bar, ususally drawn for a tab bar that isn't part of a tab widget.
QStyle.PE_IndicatorTabTear ? An indicator that a tab is partially scrolled out of the visible tab bar when there are many tabs.
QStyle.PE_IndicatorColumnViewArrow ? An arrow in a QColumnView.
QStyle.PE_Widget ? A plain QWidget.
QStyle.PE_CustomBase 0xf000000 Base value for custom primitive elements. All values above this are reserved for custom use. Custom values must be greater than this value.
QStyle.PE_IndicatorItemViewItemDrop ? An indicator that is drawn to show where an item in an item view is about to be dropped during a drag-and-drop operation in an item view.
QStyle.PE_PanelItemViewItem ? The background for an item in an item view.
QStyle.PE_PanelItemViewRow ? The background of a row in an item view.
QStyle.PE_PanelStatusBar ? The panel for a status bar.
QStyle.PE_IndicatorTabClose ? The close button on a tab bar.
QStyle.PE_PanelMenu ? The panel for a menu.

See also drawPrimitive().

QStyle.RequestSoftwareInputPanel

This enum describes under what circumstances a software input panel will be requested by input capable widgets.

Constant Value Description
QStyle.RSIP_OnMouseClickAndAlreadyFocused 0 Requests an input panel if the user clicks on the widget, but only if it is already focused.
QStyle.RSIP_OnMouseClick 1 Requests an input panel if the user clicks on the widget.

See also QEvent.RequestSoftwareInputPanel and QInputContext.

QStyle.StandardPixmap

This enum describes the available standard pixmaps. A standard pixmap is a pixmap that can follow some existing GUI style or guideline.

Constant Value Description
QStyle.SP_TitleBarMinButton 1 Minimize button on title bars (e.g., in QMdiSubWindow).
QStyle.SP_TitleBarMenuButton 0 Menu button on a title bar.
QStyle.SP_TitleBarMaxButton 2 Maximize button on title bars.
QStyle.SP_TitleBarCloseButton 3 Close button on title bars.
QStyle.SP_TitleBarNormalButton 4 Normal (restore) button on title bars.
QStyle.SP_TitleBarShadeButton 5 Shade button on title bars.
QStyle.SP_TitleBarUnshadeButton 6 Unshade button on title bars.
QStyle.SP_TitleBarContextHelpButton 7 The Context help button on title bars.
QStyle.SP_MessageBoxInformation 9 The "information" icon.
QStyle.SP_MessageBoxWarning 10 The "warning" icon.
QStyle.SP_MessageBoxCritical 11 The "critical" icon.
QStyle.SP_MessageBoxQuestion 12 The "question" icon.
QStyle.SP_DesktopIcon 13 The "desktop" icon.
QStyle.SP_TrashIcon 14 The "trash" icon.
QStyle.SP_ComputerIcon 15 The "My computer" icon.
QStyle.SP_DriveFDIcon 16 The floppy icon.
QStyle.SP_DriveHDIcon 17 The harddrive icon.
QStyle.SP_DriveCDIcon 18 The CD icon.
QStyle.SP_DriveDVDIcon 19 The DVD icon.
QStyle.SP_DriveNetIcon 20 The network icon.
QStyle.SP_DirHomeIcon 55 The home directory icon.
QStyle.SP_DirOpenIcon 21 The open directory icon.
QStyle.SP_DirClosedIcon 22 The closed directory icon.
QStyle.SP_DirIcon 37 The directory icon.
QStyle.SP_DirLinkIcon 23 The link to directory icon.
QStyle.SP_FileIcon 24 The file icon.
QStyle.SP_FileLinkIcon 25 The link to file icon.
QStyle.SP_FileDialogStart 28 The "start" icon in a file dialog.
QStyle.SP_FileDialogEnd 29 The "end" icon in a file dialog.
QStyle.SP_FileDialogToParent 30 The "parent directory" icon in a file dialog.
QStyle.SP_FileDialogNewFolder 31 The "create new folder" icon in a file dialog.
QStyle.SP_FileDialogDetailedView 32 The detailed view icon in a file dialog.
QStyle.SP_FileDialogInfoView 33 The file info icon in a file dialog.
QStyle.SP_FileDialogContentsView 34 The contents view icon in a file dialog.
QStyle.SP_FileDialogListView 35 The list view icon in a file dialog.
QStyle.SP_FileDialogBack 36 The back arrow in a file dialog.
QStyle.SP_DockWidgetCloseButton 8 Close button on dock windows (see also QDockWidget).
QStyle.SP_ToolBarHorizontalExtensionButton 26 Extension button for horizontal toolbars.
QStyle.SP_ToolBarVerticalExtensionButton 27 Extension button for vertical toolbars.
QStyle.SP_DialogOkButton 38 Icon for a standard OK button in a QDialogButtonBox.
QStyle.SP_DialogCancelButton 39 Icon for a standard Cancel button in a QDialogButtonBox.
QStyle.SP_DialogHelpButton 40 Icon for a standard Help button in a QDialogButtonBox.
QStyle.SP_DialogOpenButton 41 Icon for a standard Open button in a QDialogButtonBox.
QStyle.SP_DialogSaveButton 42 Icon for a standard Save button in a QDialogButtonBox.
QStyle.SP_DialogCloseButton 43 Icon for a standard Close button in a QDialogButtonBox.
QStyle.SP_DialogApplyButton 44 Icon for a standard Apply button in a QDialogButtonBox.
QStyle.SP_DialogResetButton 45 Icon for a standard Reset button in a QDialogButtonBox.
QStyle.SP_DialogDiscardButton 46 Icon for a standard Discard button in a QDialogButtonBox.
QStyle.SP_DialogYesButton 47 Icon for a standard Yes button in a QDialogButtonBox.
QStyle.SP_DialogNoButton 48 Icon for a standard No button in a QDialogButtonBox.
QStyle.SP_ArrowUp 49 Icon arrow pointing up.
QStyle.SP_ArrowDown 50 Icon arrow pointing down.
QStyle.SP_ArrowLeft 51 Icon arrow pointing left.
QStyle.SP_ArrowRight 52 Icon arrow pointing right.
QStyle.SP_ArrowBack 53 Equivalent to SP_ArrowLeft when the current layout direction is Qt.LeftToRight, otherwise SP_ArrowRight.
QStyle.SP_ArrowForward 54 Equivalent to SP_ArrowRight when the current layout direction is Qt.LeftToRight, otherwise SP_ArrowLeft.
QStyle.SP_CommandLink 56 Icon used to indicate a Vista style command link glyph.
QStyle.SP_VistaShield 57 Icon used to indicate UAC prompts on Windows Vista. This will return a null pixmap or icon on all other platforms.
QStyle.SP_BrowserReload 58 Icon indicating that the current page should be reloaded.
QStyle.SP_BrowserStop 59 Icon indicating that the page loading should stop.
QStyle.SP_MediaPlay 60 Icon indicating that media should begin playback.
QStyle.SP_MediaStop 61 Icon indicating that media should stop playback.
QStyle.SP_MediaPause 62 Icon indicating that media should pause playback.
QStyle.SP_MediaSkipForward 63 Icon indicating that media should skip forward.
QStyle.SP_MediaSkipBackward 64 Icon indicating that media should skip backward.
QStyle.SP_MediaSeekForward 65 Icon indicating that media should seek forward.
QStyle.SP_MediaSeekBackward 66 Icon indicating that media should seek backward.
QStyle.SP_MediaVolume 67 Icon indicating a volume control.
QStyle.SP_MediaVolumeMuted 68 Icon indicating a muted volume control.
QStyle.SP_CustomBase 0xf0000000 Base value for custom standard pixmaps; custom values must be greater than this value.

See also standardIcon().

QStyle.StateFlag

This enum describes flags that are used when drawing primitive elements.

Note that not all primitives use all of these flags, and that the flags may mean different things to different items.

Constant Value Description
QStyle.State_None 0x00000000 Indicates that the widget does not have a state.
QStyle.State_Active 0x00010000 Indicates that the widget is active.
QStyle.State_AutoRaise 0x00001000 Used to indicate if auto-raise appearance should be usd on a tool button.
QStyle.State_Children 0x00080000 Used to indicate if an item view branch has children.
QStyle.State_DownArrow 0x00000040 Used to indicate if a down arrow should be visible on the widget.
QStyle.State_Editing 0x00400000 Used to indicate if an editor is opened on the widget.
QStyle.State_Enabled 0x00000001 Used to indicate if the widget is enabled.
QStyle.State_HasEditFocus 0x01000000 Used to indicate if the widget currently has edit focus.
QStyle.State_HasFocus 0x00000100 Used to indicate if the widget has focus.
QStyle.State_Horizontal 0x00000080 Used to indicate if the widget is laid out horizontally, for example. a tool bar.
QStyle.State_KeyboardFocusChange 0x00800000 Used to indicate if the focus was changed with the keyboard, e.g., tab, backtab or shortcut.
QStyle.State_MouseOver 0x00002000 Used to indicate if the widget is under the mouse.
QStyle.State_NoChange 0x00000010 Used to indicate a tri-state checkbox.
QStyle.State_Off 0x00000008 Used to indicate if the widget is not checked.
QStyle.State_On 0x00000020 Used to indicate if the widget is checked.
QStyle.State_Raised 0x00000002 Used to indicate if a button is raised.
QStyle.State_ReadOnly 0x02000000 Used to indicate if a widget is read-only.
QStyle.State_Selected 0x00008000 Used to indicate if a widget is selected.
QStyle.State_Item 0x00100000 Used by item views to indicate if a horizontal branch should be drawn.
QStyle.State_Open 0x00040000 Used by item views to indicate if the tree branch is open.
QStyle.State_Sibling 0x00200000 Used by item views to indicate if a vertical line needs to be drawn (for siblings).
QStyle.State_Sunken 0x00000004 Used to indicate if the widget is sunken or pressed.
QStyle.State_UpArrow 0x00004000 Used to indicate if an up arrow should be visible on the widget.
QStyle.State_Mini 0x08000000 Used to indicate a mini style Mac widget or button.
QStyle.State_Small 0x04000000 Used to indicate a small style Mac widget or button.

The State type is a typedef for QFlags<StateFlag>. It stores an OR combination of StateFlag values.

See also drawPrimitive().

QStyle.StyleHint

This enum describes the available style hints. A style hint is a general look and/or feel hint.

Constant Value Description
QStyle.SH_EtchDisabledText 0 Disabled text is "etched" as it is on Windows.
QStyle.SH_DitherDisabledText 1 Disabled text is dithered as it is on Motif.
QStyle.SH_GUIStyle 0x00000100 The GUI style to use.
QStyle.SH_ScrollBar_ContextMenu ? Whether or not a scroll bar has a context menu.
QStyle.SH_ScrollBar_MiddleClickAbsolutePosition 2 A boolean value. If true, middle clicking on a scroll bar causes the slider to jump to that position. If false, middle clicking is ignored.
QStyle.SH_ScrollBar_LeftClickAbsolutePosition ? A boolean value. If true, left clicking on a scroll bar causes the slider to jump to that position. If false, left clicking will behave as appropriate for each control.
QStyle.SH_ScrollBar_ScrollWhenPointerLeavesControl 3 A boolean value. If true, when clicking a scroll bar SubControl, holding the mouse button down and moving the pointer outside the SubControl, the scroll bar continues to scroll. If false, the scollbar stops scrolling when the pointer leaves the SubControl.
QStyle.SH_ScrollBar_RollBetweenButtons ? A boolean value. If true, when clicking a scroll bar button (SC_ScrollBarAddLine or SC_ScrollBarSubLine) and dragging over to the opposite button (rolling) will press the new button and release the old one. When it is false, the original button is released and nothing happens (like a push button).
QStyle.SH_TabBar_Alignment 5 The alignment for tabs in a QTabWidget. Possible values are Qt.AlignLeft, Qt.AlignCenter and Qt.AlignRight.
QStyle.SH_Header_ArrowAlignment 6 The placement of the sorting indicator may appear in list or table headers. Possible values are Qt.Left or Qt.Right.
QStyle.SH_Slider_SnapToValue 7 Sliders snap to values while moving, as they do on Windows.
QStyle.SH_Slider_SloppyKeyEvents 8 Key presses handled in a sloppy manner, i.e., left on a vertical slider subtracts a line.
QStyle.SH_ProgressDialog_CenterCancelButton 9 Center button on progress dialogs, like Motif, otherwise right aligned.
QStyle.SH_ProgressDialog_TextLabelAlignment 10 The alignment for text labels in progress dialogs; Qt.AlignCenter on Windows, Qt.AlignVCenter otherwise.
QStyle.SH_PrintDialog_RightAlignButtons 11 Right align buttons in the print dialog, as done on Windows.
QStyle.SH_MainWindow_SpaceBelowMenuBar 12 One or two pixel space between the menu bar and the dockarea, as done on Windows.
QStyle.SH_FontDialog_SelectAssociatedText 13 Select the text in the line edit, or when selecting an item from the listbox, or when the line edit receives focus, as done on Windows.
QStyle.SH_Menu_KeyboardSearch ? Typing causes a menu to be search for relevant items, otherwise only mnemnonic is considered.
QStyle.SH_Menu_AllowActiveAndDisabled 14 Allows disabled menu items to be active.
QStyle.SH_Menu_SpaceActivatesItem 15 Pressing the space bar activates the item, as done on Motif.
QStyle.SH_Menu_SubMenuPopupDelay 16 The number of milliseconds to wait before opening a submenu (256 on Windows, 96 on Motif).
QStyle.SH_Menu_Scrollable ? Whether popup menus must support scrolling.
QStyle.SH_Menu_SloppySubMenus ? Whether popup menus must support the user moving the mouse cursor to a submenu while crossing other items of the menu. This is supported on most modern desktop platforms.
QStyle.SH_ScrollView_FrameOnlyAroundContents 17 Whether scrollviews draw their frame only around contents (like Motif), or around contents, scroll bars and corner widgets (like Windows).
QStyle.SH_MenuBar_AltKeyNavigation 18 Menu bars items are navigable by pressing Alt, followed by using the arrow keys to select the desired item.
QStyle.SH_ComboBox_ListMouseTracking 19 Mouse tracking in combobox drop-down lists.
QStyle.SH_Menu_MouseTracking 20 Mouse tracking in popup menus.
QStyle.SH_MenuBar_MouseTracking 21 Mouse tracking in menu bars.
QStyle.SH_Menu_FillScreenWithScroll ? Whether scrolling popups should fill the screen as they are scrolled.
QStyle.SH_Menu_SelectionWrap ? Whether popups should allow the selections to wrap, that is when selection should the next item be the first item.
QStyle.SH_ItemView_ChangeHighlightOnFocus 22 Gray out selected items when losing focus.
QStyle.SH_Widget_ShareActivation 23 Turn on sharing activation with floating modeless dialogs.
QStyle.SH_TabBar_SelectMouseType 4 Which type of mouse event should cause a tab to be selected.
QStyle.SH_Q3ListViewExpand_SelectMouseType ? Which type of mouse event should cause a list view expansion to be selected.
QStyle.SH_TabBar_PreferNoArrows ? Whether a tab bar should suggest a size to prevent scoll arrows.
QStyle.SH_ComboBox_Popup 25 Allows popups as a combobox drop-down menu.
QStyle.SH_Workspace_FillSpaceOnMaximize 24 The workspace should maximize the client area.
QStyle.SH_TitleBar_NoBorder 26 The title bar has no border.
QStyle.SH_ScrollBar_StopMouseOverSlider SH_Slider_StopMouseOverSlider Obsolete. Use SH_Slider_StopMouseOverSlider instead.
QStyle.SH_Slider_StopMouseOverSlider 27 Stops auto-repeat when the slider reaches the mouse position.
QStyle.SH_BlinkCursorWhenTextSelected ? Whether cursor should blink when text is selected.
QStyle.SH_RichText_FullWidthSelection ? Whether richtext selections should extend to the full width of the document.
QStyle.SH_GroupBox_TextLabelVerticalAlignment ? How to vertically align a group box's text label.
QStyle.SH_GroupBox_TextLabelColor ? How to paint a group box's text label.
QStyle.SH_DialogButtons_DefaultButton ? Which button gets the default status in a dialog's button widget.
QStyle.SH_ToolBox_SelectedPageTitleBold ? Boldness of the selected page title in a QToolBox.
QStyle.SH_LineEdit_PasswordCharacter ? The Unicode character to be used for passwords.
QStyle.SH_Table_GridLineColor ? The RGB value of the grid for a table.
QStyle.SH_UnderlineShortcut ? Whether shortcuts are underlined.
QStyle.SH_SpellCheckUnderlineStyle ? A QTextCharFormat.UnderlineStyle value that specifies the way misspelled words should be underlined.
QStyle.SH_SpinBox_AnimateButton ? Animate a click when up or down is pressed in a spin box.
QStyle.SH_SpinBox_KeyPressAutoRepeatRate ? Auto-repeat interval for spinbox key presses.
QStyle.SH_SpinBox_ClickAutoRepeatRate ? Auto-repeat interval for spinbox mouse clicks.
QStyle.SH_SpinBox_ClickAutoRepeatThreshold ? Auto-repeat threshold for spinbox mouse clicks.
QStyle.SH_ToolTipLabel_Opacity ? An integer indicating the opacity for the tip label, 0 is completely transparent, 255 is completely opaque.
QStyle.SH_DrawMenuBarSeparator ? Indicates whether or not the menu bar draws separators.
QStyle.SH_TitleBar_ModifyNotification ? Indicates if the title bar should show a '*' for windows that are modified.
QStyle.SH_Button_FocusPolicy ? The default focus policy for buttons.
QStyle.SH_CustomBase 0xf0000000 Base value for custom style hints. Custom values must be greater than this value.
QStyle.SH_MenuBar_DismissOnSecondClick ? A boolean indicating if a menu in the menu bar should be dismissed when it is clicked on a second time. (Example: Clicking and releasing on the File Menu in a menu bar and then immediately clicking on the File Menu again.)
QStyle.SH_MessageBox_UseBorderForButtonSpacing ? A boolean indicating what the to use the border of the buttons (computed as half the button height) for the spacing of the button in a message box.
QStyle.SH_MessageBox_CenterButtons ? A boolean indicating whether the buttons in the message box should be centered or not (see QDialogButtonBox.setCentered()).
QStyle.SH_MessageBox_TextInteractionFlags ? A boolean indicating if the text in a message box should allow user interfactions (e.g. selection) or not.
QStyle.SH_TitleBar_AutoRaise ? A boolean indicating whether controls on a title bar ought to update when the mouse is over them.
QStyle.SH_ToolButton_PopupDelay ? An int indicating the popup delay in milliseconds for menus attached to tool buttons.
QStyle.SH_FocusFrame_Mask ? The mask of the focus frame.
QStyle.SH_RubberBand_Mask ? The mask of the rubber band.
QStyle.SH_WindowFrame_Mask ? The mask of the window frame.
QStyle.SH_SpinControls_DisableOnBounds ? Determines if the spin controls will shown as disabled when reaching the spin range boundary.
QStyle.SH_Dial_BackgroundRole ? Defines the style's preferred background role (as QPalette.ColorRole) for a dial widget.
QStyle.SH_ScrollBar_BackgroundMode ? The background mode for a scroll bar.
QStyle.SH_ComboBox_LayoutDirection ? The layout direction for the combo box. By default it should be the same as indicated by the QStyleOption.direction variable.
QStyle.SH_ItemView_EllipsisLocation ? The location where ellipses should be added for item text that is too long to fit in an view item.
QStyle.SH_ItemView_ShowDecorationSelected ? When an item in an item view is selected, also highlight the branch or other decoration.
QStyle.SH_ItemView_ActivateItemOnSingleClick ? Emit the activated signal when the user single clicks on an item in an item in an item view. Otherwise the signal is emitted when the user double clicks on an item.
QStyle.SH_Slider_AbsoluteSetButtons ? Which mouse buttons cause a slider to set the value to the position clicked on.
QStyle.SH_Slider_PageSetButtons ? Which mouse buttons cause a slider to page step the value.
QStyle.SH_TabBar_ElideMode ? The default eliding style for a tab bar.
QStyle.SH_DialogButtonLayout ? Controls how buttons are laid out in a QDialogButtonBox, returns a QDialogButtonBox.ButtonLayout enum.
QStyle.SH_WizardStyle ? Controls the look and feel of a QWizard. Returns a QWizard.WizardStyle enum.
QStyle.SH_FormLayoutWrapPolicy ? Provides a default for how rows are wrapped in a QFormLayout. Returns a QFormLayout.RowWrapPolicy enum.
QStyle.SH_FormLayoutFieldGrowthPolicy ? Provides a default for how fields can grow in a QFormLayout. Returns a QFormLayout.FieldGrowthPolicy enum.
QStyle.SH_FormLayoutFormAlignment ? Provides a default for how a QFormLayout aligns its contents within the available space. Returns a Qt.Alignment enum.
QStyle.SH_FormLayoutLabelAlignment ? Provides a default for how a QFormLayout aligns labels within the available space. Returns a Qt.Alignment enum.
QStyle.SH_ItemView_ArrowKeysNavigateIntoChildren ? Controls whether the tree view will select the first child when it is exapanded and the right arrow key is pressed.
QStyle.SH_ComboBox_PopupFrameStyle ? The frame style used when drawing a combobox popup menu.
QStyle.SH_DialogButtonBox_ButtonsHaveIcons ? Indicates whether or not StandardButtons in QDialogButtonBox should have icons or not.
QStyle.SH_ItemView_MovementWithoutUpdatingSelection ? The item view is able to indicate a current item without changing the selection.
QStyle.SH_ToolTip_Mask ? The mask of a tool tip.
QStyle.SH_FocusFrame_AboveWidget ? The FocusFrame is stacked above the widget that it is "focusing on".
QStyle.SH_TextControl_FocusIndicatorTextCharFormat ? Specifies the text format used to highlight focused anchors in rich text documents displayed for example in QTextBrowser. The format has to be a QTextCharFormat returned in the variant of the QStyleHintReturnVariant return value. The QTextFormat.OutlinePen property is used for the outline and QTextFormat.BackgroundBrush for the background of the highlighted area.
QStyle.SH_Menu_FlashTriggeredItem ? Flash triggered item.
QStyle.SH_Menu_FadeOutOnHide ? Fade out the menu instead of hiding it immediately.
QStyle.SH_TabWidget_DefaultTabPosition ? Default position of the tab bar in a tab widget.
QStyle.SH_ToolBar_Movable ? Determines if the tool bar is movable by default.
QStyle.SH_ItemView_PaintAlternatingRowColorsForEmptyArea ? Whether QTreeView paints alternating row colors for the area that does not have any items.
QStyle.SH_Menu_Mask ? The mask for a popup menu.
QStyle.SH_ItemView_DrawDelegateFrame ? Determines if there should be a frame for a delegate widget.
QStyle.SH_TabBar_CloseButtonPosition ? Determines the position of the close button on a tab in a tab bar.
QStyle.SH_DockWidget_ButtonsHaveFrame ? Determines if dockwidget buttons should have frames. Default is true.
QStyle.SH_ToolButtonStyle ? Determines the default system style for tool buttons that uses Qt.ToolButtonFollowStyle.
QStyle.SH_RequestSoftwareInputPanel ? Determines when a software input panel should be requested by input widgets. Returns an enum of type QStyle.RequestSoftwareInputPanel.

See also styleHint().

QStyle.SubControl

This enum describes the available sub controls. A subcontrol is a control element within a complex control (ComplexControl).

Constant Value Description
QStyle.SC_None 0x00000000 Special value that matches no other sub control.
QStyle.SC_ScrollBarAddLine 0x00000001 Scroll bar add line (i.e., down/right arrow); see also QScrollBar.
QStyle.SC_ScrollBarSubLine 0x00000002 Scroll bar sub line (i.e., up/left arrow).
QStyle.SC_ScrollBarAddPage 0x00000004 Scroll bar add page (i.e., page down).
QStyle.SC_ScrollBarSubPage 0x00000008 Scroll bar sub page (i.e., page up).
QStyle.SC_ScrollBarFirst 0x00000010 Scroll bar first line (i.e., home).
QStyle.SC_ScrollBarLast 0x00000020 Scroll bar last line (i.e., end).
QStyle.SC_ScrollBarSlider 0x00000040 Scroll bar slider handle.
QStyle.SC_ScrollBarGroove 0x00000080 Special sub-control which contains the area in which the slider handle may move.
QStyle.SC_SpinBoxUp 0x00000001 Spin widget up/increase; see also QSpinBox.
QStyle.SC_SpinBoxDown 0x00000002 Spin widget down/decrease.
QStyle.SC_SpinBoxFrame 0x00000004 Spin widget frame.
QStyle.SC_SpinBoxEditField 0x00000008 Spin widget edit field.
QStyle.SC_ComboBoxEditField 0x00000002 Combobox edit field; see also QComboBox.
QStyle.SC_ComboBoxArrow 0x00000004 Combobox arrow button.
QStyle.SC_ComboBoxFrame 0x00000001 Combobox frame.
QStyle.SC_ComboBoxListBoxPopup 0x00000008 The reference rectangle for the combobox popup. Used to calculate the position of the popup.
QStyle.SC_SliderGroove 0x00000001 Special sub-control which contains the area in which the slider handle may move.
QStyle.SC_SliderHandle 0x00000002 Slider handle.
QStyle.SC_SliderTickmarks 0x00000004 Slider tickmarks.
QStyle.SC_ToolButton 0x00000001 Tool button (see also QToolButton).
QStyle.SC_ToolButtonMenu 0x00000002 Sub-control for opening a popup menu in a tool button; see also Q3PopupMenu.
QStyle.SC_TitleBarSysMenu 0x00000001 System menu button (i.e., restore, close, etc.).
QStyle.SC_TitleBarMinButton 0x00000002 Minimize button.
QStyle.SC_TitleBarMaxButton 0x00000004 Maximize button.
QStyle.SC_TitleBarCloseButton 0x00000008 Close button.
QStyle.SC_TitleBarLabel 0x00000100 Window title label.
QStyle.SC_TitleBarNormalButton 0x00000010 Normal (restore) button.
QStyle.SC_TitleBarShadeButton 0x00000020 Shade button.
QStyle.SC_TitleBarUnshadeButton 0x00000040 Unshade button.
QStyle.SC_TitleBarContextHelpButton 0x00000080 Context Help button.
QStyle.SC_Q3ListView 0x00000001 The list view area.
QStyle.SC_Q3ListViewExpand 0x00000004 Expand item (i.e., show/hide child items).
QStyle.SC_DialHandle 0x00000002 The handle of the dial (i.e. what you use to control the dial).
QStyle.SC_DialGroove 0x00000001 The groove for the dial.
QStyle.SC_DialTickmarks 0x00000004 The tickmarks for the dial.
QStyle.SC_GroupBoxFrame 0x00000008 The frame of a group box.
QStyle.SC_GroupBoxLabel 0x00000002 The title of a group box.
QStyle.SC_GroupBoxCheckBox 0x00000001 The optional check box of a group box.
QStyle.SC_GroupBoxContents 0x00000004 The group box contents.
QStyle.SC_MdiNormalButton 0x00000002 The normal button for a MDI subwindow in the menu bar.
QStyle.SC_MdiMinButton 0x00000001 The minimize button for a MDI subwindow in the menu bar.
QStyle.SC_MdiCloseButton 0x00000004 The close button for a MDI subwindow in the menu bar.
QStyle.SC_All 0xffffffff Special value that matches all sub-controls.

The SubControls type is a typedef for QFlags<SubControl>. It stores an OR combination of SubControl values.

See also ComplexControl.

QStyle.SubElement

This enum represents a sub-area of a widget. Style implementations use these areas to draw the different parts of a widget.

Constant Value Description
QStyle.SE_PushButtonContents 0 Area containing the label (icon with text or pixmap).
QStyle.SE_PushButtonFocusRect 1 Area for the focus rect (usually larger than the contents rect).
QStyle.SE_PushButtonLayoutItem ? Area that counts for the parent layout.
QStyle.SE_CheckBoxIndicator 2 Area for the state indicator (e.g., check mark).
QStyle.SE_CheckBoxContents 3 Area for the label (text or pixmap).
QStyle.SE_CheckBoxFocusRect 4 Area for the focus indicator.
QStyle.SE_CheckBoxClickRect 5 Clickable area, defaults to SE_CheckBoxFocusRect.
QStyle.SE_CheckBoxLayoutItem ? Area that counts for the parent layout.
QStyle.SE_DateTimeEditLayoutItem ? Area that counts for the parent layout.
QStyle.SE_RadioButtonIndicator 6 Area for the state indicator.
QStyle.SE_RadioButtonContents 7 Area for the label.
QStyle.SE_RadioButtonFocusRect 8 Area for the focus indicator.
QStyle.SE_RadioButtonClickRect 9 Clickable area, defaults to SE_RadioButtonFocusRect.
QStyle.SE_RadioButtonLayoutItem ? Area that counts for the parent layout.
QStyle.SE_ComboBoxFocusRect 10 Area for the focus indicator.
QStyle.SE_SliderFocusRect 11 Area for the focus indicator.
QStyle.SE_SliderLayoutItem ? Area that counts for the parent layout.
QStyle.SE_SpinBoxLayoutItem ? Area that counts for the parent layout.
QStyle.SE_Q3DockWindowHandleRect 12 Area for the tear-off handle.
QStyle.SE_ProgressBarGroove 13 Area for the groove.
QStyle.SE_ProgressBarContents 14 Area for the progress indicator.
QStyle.SE_ProgressBarLabel 15 Area for the text label.
QStyle.SE_ProgressBarLayoutItem ? Area that counts for the parent layout.
QStyle.SE_FrameContents ? Area for a frame's contents.
QStyle.SE_ShapedFrameContents ? Area for a frame's contents using the shape in QStyleOptionFrameV3; see QFrame
QStyle.SE_FrameLayoutItem ? Area that counts for the parent layout.
QStyle.SE_HeaderArrow 27 Area for the sort indicator for a header.
QStyle.SE_HeaderLabel 26 Area for the label in a header.
QStyle.SE_LabelLayoutItem ? Area that counts for the parent layout.
QStyle.SE_LineEditContents ? Area for a line edit's contents.
QStyle.SE_TabWidgetLeftCorner 31 Area for the left corner widget in a tab widget.
QStyle.SE_TabWidgetRightCorner 32 Area for the right corner widget in a tab widget.
QStyle.SE_TabWidgetTabBar 28 Area for the tab bar widget in a tab widget.
QStyle.SE_TabWidgetTabContents 30 Area for the contents of the tab widget.
QStyle.SE_TabWidgetTabPane 29 Area for the pane of a tab widget.
QStyle.SE_TabWidgetLayoutItem ? Area that counts for the parent layout.
QStyle.SE_ToolBoxTabContents 25 Area for a toolbox tab's icon and label.
QStyle.SE_ToolButtonLayoutItem ? Area that counts for the parent layout.
QStyle.SE_ItemViewItemCheckIndicator SE_ViewItemCheckIndicator Area for a view item's check mark.
QStyle.SE_TabBarTearIndicator ? Area for the tear indicator on a tab bar with scroll arrows.
QStyle.SE_TreeViewDisclosureItem ? Area for the actual disclosure item in a tree branch.
QStyle.SE_DialogButtonBoxLayoutItem ? Area that counts for the parent layout.
QStyle.SE_GroupBoxLayoutItem ? Area that counts for the parent layout.
QStyle.SE_CustomBase 0xf0000000 Base value for custom sub-elements. Custom values must be greater than this value.
QStyle.SE_DockWidgetFloatButton ? The float button of a dock widget.
QStyle.SE_DockWidgetTitleBarText ? The text bounds of the dock widgets title.
QStyle.SE_DockWidgetCloseButton ? The close button of a dock widget.
QStyle.SE_DockWidgetIcon ? The icon of a dock widget.
QStyle.SE_ComboBoxLayoutItem ? Area that counts for the parent layout.
QStyle.SE_ItemViewItemDecoration ? Area for a view item's decoration (icon).
QStyle.SE_ItemViewItemText ? Area for a view item's text.
QStyle.SE_ItemViewItemFocusRect ? Area for a view item's focus rect.
QStyle.SE_TabBarTabLeftButton ? Area for a widget on the left side of a tab in a tab bar.
QStyle.SE_TabBarTabRightButton ? Area for a widget on the right side of a tab in a tab bar.
QStyle.SE_TabBarTabText ? Area for the text on a tab in a tab bar.
QStyle.SE_ToolBarHandle ? Area for the handle of a tool bar.

See also subElementRect().


Method Documentation

QStyle.__init__ (self)

Constructs a style object.

QRect QStyle.alignedRect (Qt.LayoutDirection direction, Qt.Alignment alignment, QSize size, QRect rectangle)

Returns a new rectangle of the specified size that is aligned to the given rectangle according to the specified alignment and direction.

int QStyle.combinedLayoutSpacing (self, QSizePolicy.ControlTypes controls1, QSizePolicy.ControlTypes controls2, Qt.Orientation orientation, QStyleOption option = None, QWidget widget = None)

Returns the spacing that should be used between controls1 and controls2 in a layout. orientation specifies whether the controls are laid out side by side or stacked vertically. The option parameter can be used to pass extra information about the parent widget. The widget parameter is optional and can also be used if option is 0.

controls1 and controls2 are OR-combination of zero or more control types.

This function is called by the layout system. It is used only if PM_LayoutHorizontalSpacing or PM_LayoutVerticalSpacing returns a negative value.

This function was introduced in Qt 4.3.

See also layoutSpacing() and layoutSpacingImplementation().

QStyle.drawComplexControl (self, ComplexControl cc, QStyleOptionComplex opt, QPainter p, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

Draws the given control using the provided painter with the style options specified by option.

The widget argument is optional and can be used as aid in drawing the control.

The option parameter is a pointer to a QStyleOptionComplex object that can be cast to the correct subclass using the qstyleoption_cast() function. Note that the rect member of the specified option must be in logical coordinates. Reimplementations of this function should use visualRect() to change the logical coordinates into screen coordinates before calling the drawPrimitive() or drawControl() function.

The table below is listing the complex control elements and their associated style option subclass. The style options contain all the parameters required to draw the controls, including QStyleOption.state which holds the style flags that are used when drawing. The table also describes which flags that are set when casting the given option to the appropriate subclass.

Complex Control QStyleOptionComplex Subclass Style Flag Remark
CC_SpinBox QStyleOptionSpinBox State_Enabled Set if the spin box is enabled.
State_HasFocus Set if the spin box has input focus.
CC_ComboBox QStyleOptionComboBox State_Enabled Set if the combobox is enabled.
State_HasFocus Set if the combobox has input focus.
CC_ScrollBar QStyleOptionSlider State_Enabled Set if the scroll bar is enabled.
State_HasFocus Set if the scroll bar has input focus.
CC_Slider QStyleOptionSlider State_Enabled Set if the slider is enabled.
State_HasFocus Set if the slider has input focus.
CC_Dial QStyleOptionSlider State_Enabled Set if the dial is enabled.
State_HasFocus Set if the dial has input focus.
CC_ToolButton QStyleOptionToolButton State_Enabled Set if the tool button is enabled.
State_HasFocus Set if the tool button has input focus.
State_DownArrow Set if the tool button is down (i.e., a mouse button or the space bar is pressed).
State_On Set if the tool button is a toggle button and is toggled on.
State_AutoRaise Set if the tool button has auto-raise enabled.
State_Raised Set if the button is not down, not on, and doesn't contain the mouse when auto-raise is enabled.
CC_TitleBar QStyleOptionTitleBar State_Enabled Set if the title bar is enabled.
CC_Q3ListView QStyleOptionQ3ListView State_Enabled Set if the list view is enabled.

See also drawPrimitive() and drawControl().

QStyle.drawControl (self, ControlElement element, QStyleOption opt, QPainter p, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

Draws the given element with the provided painter with the style options specified by option.

The widget argument is optional and can be used as aid in drawing the control. The option parameter is a pointer to a QStyleOption object that can be cast to the correct subclass using the qstyleoption_cast() function.

The table below is listing the control elements and their associated style option subclass. The style options contain all the parameters required to draw the controls, including QStyleOption.state which holds the style flags that are used when drawing. The table also describes which flags that are set when casting the given option to the appropriate subclass.

Note that if a control element is not listed here, it is because it uses a plain QStyleOption object.

Control Element QStyleOption Subclass Style Flag Remark
CE_MenuItem, CE_MenuBarItem QStyleOptionMenuItem State_Selected The menu item is currently selected item.
State_Enabled The item is enabled.
State_DownArrow Indicates that a scroll down arrow should be drawn.
State_UpArrow Indicates that a scroll up arrow should be drawn
State_HasFocus Set if the menu bar has input focus.
CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel QStyleOptionButton State_Enabled Set if the button is enabled.
State_HasFocus Set if the button has input focus.
State_Raised Set if the button is not down, not on and not flat.
State_On Set if the button is a toggle button and is toggled on.
State_Sunken Set if the button is down (i.e., the mouse button or the space bar is pressed on the button).
CE_RadioButton, CE_RadioButtonLabel, CE_CheckBox, CE_CheckBoxLabel QStyleOptionButton State_Enabled Set if the button is enabled.
State_HasFocus Set if the button has input focus.
State_On Set if the button is checked.
State_Off Set if the button is not checked.
State_NoChange Set if the button is in the NoChange state.
State_Sunken Set if the button is down (i.e., the mouse button or the space bar is pressed on the button).
CE_ProgressBarContents, CE_ProgressBarLabel, CE_ProgressBarGroove QStyleOptionProgressBar State_Enabled Set if the progress bar is enabled.
State_HasFocus Set if the progress bar has input focus.
CE_Header, CE_HeaderSection, CE_HeaderLabel QStyleOptionHeader
CE_TabBarTab, CE_TabBarTabShape, CE_TabBarTabLabel QStyleOptionTab State_Enabled Set if the tab bar is enabled.
State_Selected The tab bar is the currently selected tab bar.
State_HasFocus Set if the tab bar tab has input focus.
CE_ToolButtonLabel QStyleOptionToolButton State_Enabled Set if the tool button is enabled.
State_HasFocus Set if the tool button has input focus.
State_Sunken Set if the tool button is down (i.e., a mouse button or the space bar is pressed).
State_On Set if the tool button is a toggle button and is toggled on.
State_AutoRaise Set if the tool button has auto-raise enabled.
State_MouseOver Set if the mouse pointer is over the tool button.
State_Raised Set if the button is not down and is not on.
CE_ToolBoxTab QStyleOptionToolBox State_Selected The tab is the currently selected tab.
CE_HeaderSection QStyleOptionHeader State_Sunken Indicates that the section is pressed.
State_UpArrow Indicates that the sort indicator should be pointing up.
State_DownArrow Indicates that the sort indicator should be pointing down.

See also drawPrimitive() and drawComplexControl().

QStyle.drawItemPixmap (self, QPainter painter, QRect rect, int alignment, QPixmap pixmap)

Draws the given pixmap in the specified rectangle, according to the specified alignment, using the provided painter.

See also drawItemText().

QStyle.drawItemText (self, QPainter painter, QRect rectangle, int alignment, QPalette palette, bool enabled, QString text, QPalette.ColorRole textRole = QPalette.NoRole)

Draws the given text in the specified rectangle using the provided painter and palette.

The text is drawn using the painter's pen, and aligned and wrapped according to the specified alignment. If an explicit textRole is specified, the text is drawn using the palette's color for the given role. The enabled parameter indicates whether or not the item is enabled; when reimplementing this function, the enabled parameter should influence how the item is drawn.

See also Qt.Alignment and drawItemPixmap().

QStyle.drawPrimitive (self, PrimitiveElement pe, QStyleOption opt, QPainter p, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

Draws the given primitive element with the provided painter using the style options specified by option.

The widget argument is optional and may contain a widget that may aid in drawing the primitive element.

The table below is listing the primitive elements and their associated style option subclasses. The style options contain all the parameters required to draw the elements, including QStyleOption.state which holds the style flags that are used when drawing. The table also describes which flags that are set when casting the given option to the appropriate subclass.

Note that if a primitive element is not listed here, it is because it uses a plain QStyleOption object.

Primitive Element QStyleOption Subclass Style Flag Remark
PE_FrameFocusRect QStyleOptionFocusRect State_FocusAtBorder Whether the focus is is at the border or inside the widget.
PE_IndicatorCheckBox QStyleOptionButton State_NoChange Indicates a "tri-state" checkbox.
State_On Indicates the indicator is checked.
PE_IndicatorRadioButton QStyleOptionButton State_On Indicates that a radio button is selected.
PE_Q3CheckListExclusiveIndicator, PE_Q3CheckListIndicator QStyleOptionQ3ListView State_On Indicates whether or not the controller is selected.
State_NoChange Indicates a "tri-state" controller.
State_Enabled Indicates the controller is enabled.
PE_IndicatorBranch QStyleOption State_Children Indicates that the control for expanding the tree to show child items, should be drawn.
State_Item Indicates that a horizontal branch (to show a child item), should be drawn.
State_Open Indicates that the tree branch is expanded.
State_Sibling Indicates that a vertical line (to show a sibling item), should be drawn.
PE_IndicatorHeaderArrow QStyleOptionHeader State_UpArrow Indicates that the arrow should be drawn up; otherwise it should be down.
PE_FrameGroupBox, PE_Frame, PE_FrameLineEdit, PE_FrameMenu, PE_FrameDockWidget, PE_FrameWindow QStyleOptionFrame State_Sunken Indicates that the Frame should be sunken.
PE_IndicatorToolBarHandle QStyleOption State_Horizontal Indicates that the window handle is horizontal instead of vertical.
PE_Q3DockWindowSeparator QStyleOption State_Horizontal Indicates that the separator is horizontal instead of vertical.
PE_IndicatorSpinPlus, PE_IndicatorSpinMinus, PE_IndicatorSpinUp, PE_IndicatorSpinDown, QStyleOptionSpinBox State_Sunken Indicates that the button is pressed.
PE_PanelButtonCommand QStyleOptionButton State_Enabled Set if the button is enabled.
State_HasFocus Set if the button has input focus.
State_Raised Set if the button is not down, not on and not flat.
State_On Set if the button is a toggle button and is toggled on.
State_Sunken Set if the button is down (i.e., the mouse button or the space bar is pressed on the button).

See also drawComplexControl() and drawControl().

QPixmap QStyle.generatedIconPixmap (self, QIcon.Mode iconMode, QPixmap pixmap, QStyleOption opt)

This method is abstract and should be reimplemented in any sub-class.

Returns a copy of the given pixmap, styled to conform to the specified iconMode and taking into account the palette specified by option.

The option parameter can pass extra information, but it must contain a palette.

Note that not all pixmaps will conform, in which case the returned pixmap is a plain copy.

See also QIcon.

SubControl QStyle.hitTestComplexControl (self, ComplexControl cc, QStyleOptionComplex opt, QPoint pt, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

Returns the sub control at the given position in the given complex control (with the style options specified by option).

Note that the position is expressed in screen coordinates.

The option argument is a pointer to a QStyleOptionComplex object (or one of its subclasses). The object can be cast to the appropriate type using the qstyleoption_cast() function. See drawComplexControl() for details. The widget argument is optional and can contain additional information for the function.

See also drawComplexControl() and subControlRect().

QRect QStyle.itemPixmapRect (self, QRect r, int flags, QPixmap pixmap)

Returns the area within the given rectangle in which to draw the specified pixmap according to the defined alignment.

QRect QStyle.itemTextRect (self, QFontMetrics fm, QRect r, int flags, bool enabled, QString text)

Returns the area within the given rectangle in which to draw the provided text according to the specified font metrics and alignment. The enabled parameter indicates whether or not the associated item is enabled.

If the given rectangle is larger than the area needed to render the text, the rectangle that is returned will be offset within rectangle according to the specified alignment. For example, if alignment is Qt.AlignCenter, the returned rectangle will be centered within rectangle. If the given rectangle is smaller than the area needed, the returned rectangle will be the smallest rectangle large enough to render the text.

See also Qt.Alignment.

int QStyle.layoutSpacing (self, QSizePolicy.ControlType control1, QSizePolicy.ControlType control2, Qt.Orientation orientation, QStyleOption option = None, QWidget widget = None)

Returns the spacing that should be used between control1 and control2 in a layout. orientation specifies whether the controls are laid out side by side or stacked vertically. The option parameter can be used to pass extra information about the parent widget. The widget parameter is optional and can also be used if option is 0.

This function is called by the layout system. It is used only if PM_LayoutHorizontalSpacing or PM_LayoutVerticalSpacing returns a negative value.

For binary compatibility reasons, this function is not virtual. If you want to specify custom layout spacings in a QStyle subclass, implement a slot called layoutSpacingImplementation(). QStyle will discover the slot at run-time (using Qt's meta-object system) and direct all calls to layoutSpacing() to layoutSpacingImplementation().

This function was introduced in Qt 4.3.

See also combinedLayoutSpacing() and layoutSpacingImplementation().

int QStyle.layoutSpacingImplementation (self, QSizePolicy.ControlType control1, QSizePolicy.ControlType control2, Qt.Orientation orientation, QStyleOption option = None, QWidget widget = None)

This method is also a Qt slot with the C++ signature int layoutSpacingImplementation(QSizePolicy::ControlType,QSizePolicy::ControlType,Qt::Orientation,const QStyleOption* = 0,const QWidget* = 0) const.

This slot is called by layoutSpacing() to determine the spacing that should be used between control1 and control2 in a layout. orientation specifies whether the controls are laid out side by side or stacked vertically. The option parameter can be used to pass extra information about the parent widget. The widget parameter is optional and can also be used if option is 0.

If you want to provide custom layout spacings in a QStyle subclass, implement a slot called layoutSpacingImplementation() in your subclass. Be aware that this slot will only be called if PM_LayoutHorizontalSpacing or PM_LayoutVerticalSpacing returns a negative value.

The default implementation returns -1.

This function was introduced in Qt 4.3.

See also layoutSpacing() and combinedLayoutSpacing().

int QStyle.pixelMetric (self, PixelMetric metric, QStyleOption option = None, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

Returns the value of the given pixel metric.

The specified option and widget can be used for calculating the metric. In general, the widget argument is not used. The option can be cast to the appropriate type using the qstyleoption_cast() function. Note that the option may be zero even for PixelMetrics that can make use of it. See the table below for the appropriate option casts:

Pixel Metric QStyleOption Subclass
PM_SliderControlThickness QStyleOptionSlider
PM_SliderLength QStyleOptionSlider
PM_SliderTickmarkOffset QStyleOptionSlider
PM_SliderSpaceAvailable QStyleOptionSlider
PM_ScrollBarExtent QStyleOptionSlider
PM_TabBarTabOverlap QStyleOptionTab
PM_TabBarTabHSpace QStyleOptionTab
PM_TabBarTabVSpace QStyleOptionTab
PM_TabBarBaseHeight QStyleOptionTab
PM_TabBarBaseOverlap QStyleOptionTab

Some pixel metrics are called from widgets and some are only called internally by the style. If the metric is not called by a widget, it is the discretion of the style author to make use of it. For some styles, this may not be appropriate.

QStyle.polish (self, QWidget)

Initializes the appearance of the given widget.

This function is called for every widget at some point after it has been fully created but just before it is shown for the very first time.

Note that the default implementation does nothing. Reasonable actions in this function might be to call the QWidget.setBackgroundMode() function for the widget. Do not use the function to set, for example, the geometry. Reimplementing this function provides a back-door through which the appearance of a widget can be changed, but with Qt's style engine it is rarely necessary to implement this function; reimplement drawItemPixmap(), drawItemText(), drawPrimitive(), etc. instead.

The QWidget.inherits() function may provide enough information to allow class-specific customizations. But because new QStyle subclasses are expected to work reasonably with all current and future widgets, limited use of hard-coded customization is recommended.

See also unpolish().

QStyle.polish (self, QApplication)

This is an overloaded function.

Late initialization of the given application object.

QPalette QStyle.polish (self, QPalette)

This is an overloaded function.

Changes the palette according to style specific requirements for color palettes (if any).

See also QPalette and QApplication.setPalette().

QStyle QStyle.proxy (self)

This function returns the current proxy for this style. By default most styles will return themselves. However when a proxy style is in use, it will allow the style to call back into its proxy.

This function was introduced in Qt 4.6.

QSize QStyle.sizeFromContents (self, ContentsType ct, QStyleOption opt, QSize contentsSize, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

Returns the size of the element described by the specified option and type, based on the provided contentsSize.

The option argument is a pointer to a QStyleOption or one of its subclasses. The option can be cast to the appropriate type using the qstyleoption_cast() function. The widget is an optional argument and can contain extra information used for calculating the size.

See the table below for the appropriate option casts:

Contents Type QStyleOption Subclass
CT_PushButton QStyleOptionButton
CT_CheckBox QStyleOptionButton
CT_RadioButton QStyleOptionButton
CT_ToolButton QStyleOptionToolButton
CT_ComboBox QStyleOptionComboBox
CT_Splitter QStyleOption
CT_Q3DockWindow QStyleOptionQ3DockWindow
CT_ProgressBar QStyleOptionProgressBar
CT_MenuItem QStyleOptionMenuItem

See also ContentsType and QStyleOption.

int QStyle.sliderPositionFromValue (int min, int max, int logicalValue, int span, bool upsideDown = False)

Converts the given logicalValue to a pixel position. The min parameter maps to 0, max maps to span and other values are distributed evenly in-between.

This function can handle the entire integer range without overflow, providing that span is less than 4096.

By default, this function assumes that the maximum value is on the right for horizontal items and on the bottom for vertical items. Set the upsideDown parameter to true to reverse this behavior.

See also sliderValueFromPosition().

int QStyle.sliderValueFromPosition (int min, int max, int position, int span, bool upsideDown = False)

Converts the given pixel position to a logical value. 0 maps to the min parameter, span maps to max and other values are distributed evenly in-between.

This function can handle the entire integer range without overflow.

By default, this function assumes that the maximum value is on the right for horizontal items and on the bottom for vertical items. Set the upsideDown parameter to true to reverse this behavior.

See also sliderPositionFromValue().

QIcon QStyle.standardIcon (self, StandardPixmap standardIcon, QStyleOption option = None, QWidget widget = None)

Returns an icon for the given standardIcon.

The standardIcon is a standard pixmap which can follow some existing GUI style or guideline. The option argument can be used to pass extra information required when defining the appropriate icon. The widget argument is optional and can also be used to aid the determination of the icon.

Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide your own icons in a QStyle subclass, reimplement the standardIconImplementation() slot in your subclass instead. The standardIcon() function will dynamically detect the slot and call it.

This function was introduced in Qt 4.1.

See also standardIconImplementation().

QIcon QStyle.standardIconImplementation (self, StandardPixmap standardIcon, QStyleOption option = None, QWidget widget = None)

This method is also a Qt slot with the C++ signature QIcon standardIconImplementation(QStyle::StandardPixmap,const QStyleOption* = 0,const QWidget* = 0) const.

Returns an icon for the given standardIcon.

Reimplement this slot to provide your own icons in a QStyle subclass; because of binary compatibility constraints, the standardIcon() function (introduced in Qt 4.1) is not virtual. Instead, standardIcon() will dynamically detect and call this slot.

The standardIcon is a standard pixmap which can follow some existing GUI style or guideline. The option argument can be used to pass extra information required when defining the appropriate icon. The widget argument is optional and can also be used to aid the determination of the icon.

This function was introduced in Qt 4.1.

See also standardIcon().

QPalette QStyle.standardPalette (self)

Returns the style's standard palette.

Note that on systems that support system colors, the style's standard palette is not used. In particular, the Windows XP, Vista, and Mac styles do not use the standard palette, but make use of native theme engines. With these styles, you should not set the palette with QApplication.setStandardPalette().

QPixmap QStyle.standardPixmap (self, StandardPixmap standardPixmap, QStyleOption option = None, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

int QStyle.styleHint (self, StyleHint stylehint, QStyleOption option = None, QWidget widget = None, QStyleHintReturn returnData = None)

This method is abstract and should be reimplemented in any sub-class.

Returns an integer representing the specified style hint for the given widget described by the provided style option.

returnData is used when the querying widget needs more detailed data than the integer that styleHint() returns. See the QStyleHintReturn class description for details.

QRect QStyle.subControlRect (self, ComplexControl cc, QStyleOptionComplex opt, SubControl sc, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

Returns the rectangle containing the specified subControl of the given complex control (with the style specified by option). The rectangle is defined in screen coordinates.

The option argument is a pointer to QStyleOptionComplex or one of its subclasses, and can be cast to the appropriate type using the qstyleoption_cast() function. See drawComplexControl() for details. The widget is optional and can contain additional information for the function.

See also drawComplexControl().

QRect QStyle.subElementRect (self, SubElement subElement, QStyleOption option, QWidget widget = None)

This method is abstract and should be reimplemented in any sub-class.

Returns the sub-area for the given element as described in the provided style option. The returned rectangle is defined in screen coordinates.

The widget argument is optional and can be used to aid determining the area. The QStyleOption object can be cast to the appropriate type using the qstyleoption_cast() function. See the table below for the appropriate option casts:

Sub Element QStyleOption Subclass
SE_PushButtonContents QStyleOptionButton
SE_PushButtonFocusRect QStyleOptionButton
SE_CheckBoxIndicator QStyleOptionButton
SE_CheckBoxContents QStyleOptionButton
SE_CheckBoxFocusRect QStyleOptionButton
SE_RadioButtonIndicator QStyleOptionButton
SE_RadioButtonContents QStyleOptionButton
SE_RadioButtonFocusRect QStyleOptionButton
SE_ComboBoxFocusRect QStyleOptionComboBox
SE_Q3DockWindowHandleRect QStyleOptionQ3DockWindow
SE_ProgressBarGroove QStyleOptionProgressBar
SE_ProgressBarContents QStyleOptionProgressBar
SE_ProgressBarLabel QStyleOptionProgressBar

QStyle.unpolish (self, QWidget)

Uninitialize the given widget's appearance.

This function is the counterpart to polish(). It is called for every polished widget whenever the style is dynamically changed; the former style has to unpolish its settings before the new style can polish them again.

Note that unpolish() will only be called if the widget is destroyed. This can cause problems in some cases, e.g, if you remove a widget from the UI, cache it, and then reinsert it after the style has changed; some of Qt's classes cache their widgets.

See also polish().

QStyle.unpolish (self, QApplication)

This is an overloaded function.

Uninitialize the given application.

Qt.Alignment QStyle.visualAlignment (Qt.LayoutDirection direction, Qt.Alignment alignment)

Transforms an alignment of Qt.AlignLeft or Qt.AlignRight without Qt.AlignAbsolute into Qt.AlignLeft or Qt.AlignRight with Qt.AlignAbsolute according to the layout direction. The other alignment flags are left untouched.

If no horizontal alignment was specified, the function returns the default alignment for the given layout direction.

QWidget.layoutDirection

QPoint QStyle.visualPos (Qt.LayoutDirection direction, QRect boundingRect, QPoint logicalPos)

Returns the given logicalPosition converted to screen coordinates based on the specified direction. The boundingRectangle is used when performing the translation.

See also QWidget.layoutDirection.

QRect QStyle.visualRect (Qt.LayoutDirection direction, QRect boundingRect, QRect logicalRect)

Returns the given logicalRectangle converted to screen coordinates based on the specified direction. The boundingRectangle is used when performing the translation.

This function is provided to support right-to-left desktops, and is typically used in implementations of the subControlRect() function.

See also QWidget.layoutDirection.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleditemdelegate.html0000644000076500000240000005367312536324513022424 0ustar philstaff00000000000000 QStyledItemDelegate Class Reference
  Home · All Classes · Modules

QStyledItemDelegate Class Reference
[QtGui module]

The QStyledItemDelegate class provides display and editing facilities for data items from a model. More...

Inherits QAbstractItemDelegate.

Methods

  • __init__ (self, QObject parent = None)
  • QWidget createEditor (self, QWidget parent, QStyleOptionViewItem option, QModelIndex index)
  • QString displayText (self, QVariant value, QLocale locale)
  • bool editorEvent (self, QEvent event, QAbstractItemModel model, QStyleOptionViewItem option, QModelIndex index)
  • bool eventFilter (self, QObject object, QEvent event)
  • initStyleOption (self, QStyleOptionViewItem option, QModelIndex index)
  • QItemEditorFactory itemEditorFactory (self)
  • paint (self, QPainter painter, QStyleOptionViewItem option, QModelIndex index)
  • setEditorData (self, QWidget editor, QModelIndex index)
  • setItemEditorFactory (self, QItemEditorFactory factory)
  • setModelData (self, QWidget editor, QAbstractItemModel model, QModelIndex index)
  • QSize sizeHint (self, QStyleOptionViewItem option, QModelIndex index)
  • updateEditorGeometry (self, QWidget editor, QStyleOptionViewItem option, QModelIndex index)

Detailed Description

The QStyledItemDelegate class provides display and editing facilities for data items from a model.

When displaying data from models in Qt item views, e.g., a QTableView, the individual items are drawn by a delegate. Also, when an item is edited, it provides an editor widget, which is placed on top of the item view while editing takes place. QStyledItemDelegate is the default delegate for all Qt item views, and is installed upon them when they are created.

The QStyledItemDelegate class is one of the Model/View Classes and is part of Qt's model/view framework. The delegate allows the display and editing of items to be developed independently from the model and view.

The data of items in models are assigned an ItemDataRole; each item can store a QVariant for each role. QStyledItemDelegate implements display and editing for the most common datatypes expected by users, including booleans, integers, and strings.

The data will be drawn differently depending on which role they have in the model. The following table describes the roles and the data types the delegate can handle for each of them. It is often sufficient to ensure that the model returns appropriate data for each of the roles to determine the appearance of items in views.

Role Accepted Types
Qt.BackgroundRole QBrush
Qt.BackgroundColorRole QColor (obsolete; use Qt.BackgroundRole instead)
Qt.CheckStateRole Qt.CheckState
Qt.DecorationRole QIcon, QPixmap, QImage and QColor
Qt.DisplayRole QString and types with a string representation
Qt.EditRole See QItemEditorFactory for details
Qt.FontRole QFont
Qt.SizeHintRole QSize
Qt.TextAlignmentRole Qt.Alignment
Qt.ForegroundRole QBrush
Qt.TextColorRole QColor (obsolete; use Qt.ForegroundRole instead)

Editors are created with a QItemEditorFactory; a default static instance provided by QItemEditorFactory is installed on all item delegates. You can set a custom factory using setItemEditorFactory() or set a new default factory with QItemEditorFactory.setDefaultFactory(). It is the data stored in the item model with the EditRole that is edited. See the QItemEditorFactory class for a more high-level introduction to item editor factories. The Color Editor Factory example shows how to create custom editors with a factory.

Subclassing QStyledItemDelegate

If the delegate does not support painting of the data types you need or you want to customize the drawing of items, you need to subclass QStyledItemDelegate, and reimplement paint() and possibly sizeHint(). The paint() function is called individually for each item, and with sizeHint(), you can specify the hint for each of them.

When reimplementing paint(), one would typically handle the datatypes one would like to draw and use the superclass implementation for other types.

The painting of check box indicators are performed by the current style. The style also specifies the size and the bounding rectangles in which to draw the data for the different data roles. The bounding rectangle of the item itself is also calculated by the style. When drawing already supported datatypes, it is therefore a good idea to ask the style for these bounding rectangles. The QStyle class description describes this in more detail.

If you wish to change any of the bounding rectangles calculated by the style or the painting of check box indicators, you can subclass QStyle. Note, however, that the size of the items can also be affected by reimplementing sizeHint().

It is possible for a custom delegate to provide editors without the use of an editor item factory. In this case, the following virtual functions must be reimplemented:

  • createEditor() returns the widget used to change data from the model and can be reimplemented to customize editing behavior.
  • setEditorData() provides the widget with data to manipulate.
  • updateEditorGeometry() ensures that the editor is displayed correctly with respect to the item view.
  • setModelData() returns updated data to the model.

The Star Delegate example creates editors by reimplementing these methods.

QStyledItemDelegate vs. QItemDelegate

Since Qt 4.4, there are two delegate classes: QItemDelegate and QStyledItemDelegate. However, the default delegate is QStyledItemDelegate. These two classes are independent alternatives to painting and providing editors for items in views. The difference between them is that QStyledItemDelegate uses the current style to paint its items. We therefore recommend using QStyledItemDelegate as the base class when implementing custom delegates or when working with Qt style sheets. The code required for either class should be equal unless the custom delegate needs to use the style for drawing.

If you wish to customize the painting of item views, you should implement a custom style. Please see the QStyle class documentation for details.


Method Documentation

QStyledItemDelegate.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an item delegate with the given parent.

QWidget QStyledItemDelegate.createEditor (self, QWidget parent, QStyleOptionViewItem option, QModelIndex index)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Reimplemented from QAbstractItemDelegate.createEditor().

Returns the widget used to edit the item specified by index for editing. The parent widget and style option are used to control how the editor widget appears.

See also QAbstractItemDelegate.createEditor().

QString QStyledItemDelegate.displayText (self, QVariant value, QLocale locale)

This function returns the string that the delegate will use to display the Qt.DisplayRole of the model in locale. value is the value of the Qt.DisplayRole provided by the model.

The default implementation uses the QLocale.toString to convert value into a QString.

This function is not called for empty model indices, i.e., indices for which the model returns an invalid QVariant.

See also QAbstractItemModel.data().

bool QStyledItemDelegate.editorEvent (self, QEvent event, QAbstractItemModel model, QStyleOptionViewItem option, QModelIndex index)

Reimplemented from QAbstractItemDelegate.editorEvent().

bool QStyledItemDelegate.eventFilter (self, QObject object, QEvent event)

Reimplemented from QObject.eventFilter().

Returns true if the given editor is a valid QWidget and the given event is handled; otherwise returns false. The following key press events are handled by default:

  • Tab
  • Backtab
  • Enter
  • Return
  • Esc

In the case of Tab, Backtab, Enter and Return key press events, the editor's data is comitted to the model and the editor is closed. If the event is a Tab key press the view will open an editor on the next item in the view. Likewise, if the event is a Backtab key press the view will open an editor on the previous item in the view.

If the event is a Esc key press event, the editor is closed without committing its data.

See also commitData() and closeEditor().

QStyledItemDelegate.initStyleOption (self, QStyleOptionViewItem option, QModelIndex index)

Initialize option with the values using the index index. This method is useful for subclasses when they need a QStyleOptionViewItem, but don't want to fill in all the information themselves. This function will check the version of the QStyleOptionViewItem and fill in the additional values for a QStyleOptionViewItemV2, QStyleOptionViewItemV3 and QStyleOptionViewItemV4.

See also QStyleOption.initFrom().

QItemEditorFactory QStyledItemDelegate.itemEditorFactory (self)

Returns the editor factory used by the item delegate. If no editor factory is set, the function will return null.

See also setItemEditorFactory().

QStyledItemDelegate.paint (self, QPainter painter, QStyleOptionViewItem option, QModelIndex index)

Reimplemented from QAbstractItemDelegate.paint().

Renders the delegate using the given painter and style option for the item specified by index.

This function paints the item using the view's QStyle.

When reimplementing paint in a subclass. Use the initStyleOption() to set up the option in the same way as the QStyledItemDelegate; the option will always be an instance of QStyleOptionViewItemV4. Please see its class description for information on its contents.

Whenever possible, use the option while painting. Especially its rect variable to decide where to draw and its state to determine if it is enabled or selected.

After painting, you should ensure that the painter is returned to its the state it was supplied in when this function was called. For example, it may be useful to call QPainter.save() before painting and QPainter.restore() afterwards.

See also QItemDelegate.paint(), QStyle.drawControl(), and QStyle.CE_ItemViewItem.

QStyledItemDelegate.setEditorData (self, QWidget editor, QModelIndex index)

Reimplemented from QAbstractItemDelegate.setEditorData().

Sets the data to be displayed and edited by the editor from the data model item specified by the model index.

The default implementation stores the data in the editor widget's user property.

See also QMetaProperty.isUser().

QStyledItemDelegate.setItemEditorFactory (self, QItemEditorFactory factory)

Sets the editor factory to be used by the item delegate to be the factory specified. If no editor factory is set, the item delegate will use the default editor factory.

See also itemEditorFactory().

QStyledItemDelegate.setModelData (self, QWidget editor, QAbstractItemModel model, QModelIndex index)

Reimplemented from QAbstractItemDelegate.setModelData().

Gets data from the editor widget and stores it in the specified model at the item index.

The default implementation gets the value to be stored in the data model from the editor widget's user property.

See also QMetaProperty.isUser().

QSize QStyledItemDelegate.sizeHint (self, QStyleOptionViewItem option, QModelIndex index)

Reimplemented from QAbstractItemDelegate.sizeHint().

Returns the size needed by the delegate to display the item specified by index, taking into account the style information provided by option.

This function uses the view's QStyle to determine the size of the item.

See also QStyle.sizeFromContents() and QStyle.CT_ItemViewItem.

QStyledItemDelegate.updateEditorGeometry (self, QWidget editor, QStyleOptionViewItem option, QModelIndex index)

Reimplemented from QAbstractItemDelegate.updateEditorGeometry().

Updates the editor for the item specified by index according to the style option given.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstylefactory.html0000644000076500000240000000753212536324513021267 0ustar philstaff00000000000000 QStyleFactory Class Reference
  Home · All Classes · Modules

QStyleFactory Class Reference
[QtGui module]

The QStyleFactory class creates QStyle objects. More...

Methods

Static Methods


Detailed Description

The QStyleFactory class creates QStyle objects.

The QStyle class is an abstract base class that encapsulates the look and feel of a GUI. QStyleFactory creates a QStyle object using the create() function and a key identifying the style. The styles are either built-in or dynamically loaded from a style plugin (see QStylePlugin).

The valid keys can be retrieved using the keys() function. Typically they include "windows", "motif", "cde", "plastique" and "cleanlooks". Depending on the platform, "windowsxp", "windowsvista" and "macintosh" may be available. Note that keys are case insensitive.


Method Documentation

QStyleFactory.__init__ (self)

QStyleFactory.__init__ (self, QStyleFactory)

QStyle QStyleFactory.create (QString)

Creates and returns a QStyle object that matches the given key, or returns 0 if no matching style is found.

Both built-in styles and styles from style plugins are queried for a matching style.

Note: The keys used are case insensitive.

See also keys().

QStringList QStyleFactory.keys ()

Returns the list of valid keys, i.e. the keys this factory can create styles for.

See also create().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstylehintreturn.html0000644000076500000240000001712212536324513022016 0ustar philstaff00000000000000 QStyleHintReturn Class Reference
  Home · All Classes · Modules

QStyleHintReturn Class Reference
[QtGui module]

The QStyleHintReturn class provides style hints that return more than basic data types. More...

Inherited by QStyleHintReturnMask and QStyleHintReturnVariant.

Types

Methods

  • __init__ (self, int version = QStyleOption.Version, int type = QStyleHintReturn.SH_Default)
  • __init__ (self, QStyleHintReturn)

Members


Detailed Description

The QStyleHintReturn class provides style hints that return more than basic data types.

QStyleHintReturn and its subclasses are used to pass information from a style back to the querying widget. This is most useful when the return value from QStyle.styleHint() does not provide enough detail; for example, when a mask is to be returned.


Type Documentation

QStyleHintReturn.HintReturnType

Constant Value Description
QStyleHintReturn.SH_Default 0xf000 QStyleHintReturn
QStyleHintReturn.SH_Mask ? QStyle.SH_RubberBand_Mask QStyle.SH_FocusFrame_Mask
QStyleHintReturn.SH_Variant ? QStyle.SH_TextControl_FocusIndicatorTextCharFormat

QStyleHintReturn.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleHintReturn subclass.

Constant Value Description
QStyleHintReturn.Type SH_Default The type of style option provided (SH_Default for this class).

The type is used internally by QStyleHintReturn, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleHintReturn subclass and your own styles.

See also StyleOptionVersion.

QStyleHintReturn.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleHintReturn subclass.

Constant Value Description
QStyleHintReturn.Version 1 1

The version is used by QStyleHintReturn subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleHintReturn.__init__ (self, int version = QStyleOption.Version, int type = QStyleHintReturn.SH_Default)

Constructs a QStyleHintReturn with version version and type type.

The version has no special meaning for QStyleHintReturn; it can be used by subclasses to distinguish between different version of the same hint type.

See also QStyleOption.version and QStyleOption.type.

QStyleHintReturn.__init__ (self, QStyleHintReturn)


Member Documentation

int type

This variable holds the type of the style hint container.

See also HintReturnType.

int version

This variable holds the version of the style hint return container.

This value can be used by subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast<T>(), you normally do not need to check it.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstylehintreturnmask.html0000644000076500000240000001243612536324513022675 0ustar philstaff00000000000000 QStyleHintReturnMask Class Reference
  Home · All Classes · Modules

QStyleHintReturnMask Class Reference
[
QtGui module]

The QStyleHintReturnMask class provides style hints that return a QRegion. More...

Inherits QStyleHintReturn.

Types

Methods

Members


Detailed Description

The QStyleHintReturnMask class provides style hints that return a QRegion.


Type Documentation

QStyleHintReturnMask.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleHintReturn subclass.

Constant Value Description
QStyleHintReturnMask.Type SH_Mask The type of style option provided (SH_Mask for this class).

The type is used internally by QStyleHintReturn, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleHintReturn subclass and your own styles.

See also StyleOptionVersion.

QStyleHintReturnMask.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleHintReturn subclass.

Constant Value Description
QStyleHintReturnMask.Version 1 1

The version is used by QStyleHintReturn subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleHintReturnMask.__init__ (self)

Constructs a QStyleHintReturnMask. The member variables are initialized to default values.

QStyleHintReturnMask.__init__ (self, QStyleHintReturnMask)


Member Documentation

QRegion region

This variable holds the region for style hints that return a QRegion.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstylehintreturnvariant.html0000644000076500000240000001254312536324513023405 0ustar philstaff00000000000000 QStyleHintReturnVariant Class Reference
  Home · All Classes · Modules

QStyleHintReturnVariant Class Reference
[QtGui module]

The QStyleHintReturnVariant class provides style hints that return a QVariant. More...

Inherits QStyleHintReturn.

Types

Methods

Members


Detailed Description

The QStyleHintReturnVariant class provides style hints that return a QVariant.


Type Documentation

QStyleHintReturnVariant.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleHintReturn subclass.

Constant Value Description
QStyleHintReturnVariant.Type SH_Variant The type of style option provided (SH_Variant for this class).

The type is used internally by QStyleHintReturn, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleHintReturn subclass and your own styles.

See also StyleOptionVersion.

QStyleHintReturnVariant.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleHintReturn subclass.

Constant Value Description
QStyleHintReturnVariant.Version 1 1

The version is used by QStyleHintReturn subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleHintReturnVariant.__init__ (self)

Constructs a QStyleHintReturnVariant. The member variables are initialized to default values.

QStyleHintReturnVariant.__init__ (self, QStyleHintReturnVariant)


Member Documentation

QVariant variant

This variable holds the variant for style hints that return a QVariant.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoption.html0000644000076500000240000005643112536324513021132 0ustar philstaff00000000000000 QStyleOption Class Reference
  Home · All Classes · Modules

QStyleOption Class Reference
[
QtGui module]

The QStyleOption class stores the parameters used by QStyle functions. More...

Inherited by QStyleOptionButton, QStyleOptionComplex, QStyleOptionDockWidget, QStyleOptionFocusRect, QStyleOptionFrame, QStyleOptionGraphicsItem, QStyleOptionHeader, QStyleOptionMenuItem, QStyleOptionProgressBar, QStyleOptionRubberBand, QStyleOptionTab, QStyleOptionTabBarBase, QStyleOptionTabWidgetFrame, QStyleOptionToolBar, QStyleOptionToolBox and QStyleOptionViewItem.

Types

Methods

  • __init__ (self, int version = QStyleOption.Version, int type = QStyleOption.SO_Default)
  • __init__ (self, QStyleOption other)
  • init (self, QWidget w)
  • initFrom (self, QWidget w)

Members


Detailed Description

The QStyleOption class stores the parameters used by QStyle functions.

QStyleOption and its subclasses contain all the information that QStyle functions need to draw a graphical element.

For performance reasons, there are few member functions and the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

The caller of a QStyle function usually creates QStyleOption objects on the stack. This combined with Qt's extensive use of implicit sharing for types such as QString, QPalette, and QColor ensures that no memory allocation needlessly takes place.

The following code snippet shows how to use a specific QStyleOption subclass to paint a push button:

 void MyPushButton.paintEvent(QPaintEvent *)
 {
     QStyleOptionButton option;
     option.initFrom(this);
     option.state = isDown() ? QStyle.State_Sunken : QStyle.State_Raised;
     if (isDefault())
         option.features |= QStyleOptionButton.DefaultButton;
     option.text = text();
     option.icon = icon();

     QPainter painter(this);
     style()->drawControl(QStyle.CE_PushButton, &option, &painter, this);
 }

In our example, the control is a QStyle.CE_PushButton, and according to the QStyle.drawControl() documentation the corresponding class is QStyleOptionButton.

When reimplementing QStyle functions that take a QStyleOption parameter, you often need to cast the QStyleOption to a subclass. For safety, you can use qstyleoption_cast() to ensure that the pointer type is correct. For example:

 void MyStyle.drawPrimitive(PrimitiveElement element,
                             const QStyleOption *option,
                             QPainter *painter,
                             const QWidget *widget)
 {
     if (element == PE_FrameFocusRect) {
         const QStyleOptionFocusRect *focusRectOption =
                 qstyleoption_cast<const QStyleOptionFocusRect *>(option);
         if (focusRectOption) {
             // ...
         }
     }
     // ...
 }

The qstyleoption_cast() function will return 0 if the object to which option points is not of the correct type.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOption.OptionType

This enum is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

Constant Value Description
QStyleOption.SO_Button 2 QStyleOptionButton
QStyleOption.SO_ComboBox ? QStyleOptionComboBox
QStyleOption.SO_Complex 0xf0000 QStyleOptionComplex
QStyleOption.SO_Default 0 QStyleOption
QStyleOption.SO_DockWidget 10 QStyleOptionDockWidget
QStyleOption.SO_FocusRect 1 QStyleOptionFocusRect
QStyleOption.SO_Frame 5 QStyleOptionFrame QStyleOptionFrameV2
QStyleOption.SO_GraphicsItem 17 QStyleOptionGraphicsItem
QStyleOption.SO_GroupBox ? QStyleOptionGroupBox
QStyleOption.SO_Header 8 QStyleOptionHeader
QStyleOption.SO_MenuItem 4 QStyleOptionMenuItem
QStyleOption.SO_ProgressBar 6 QStyleOptionProgressBar QStyleOptionProgressBarV2
QStyleOption.SO_RubberBand 15 QStyleOptionRubberBand
QStyleOption.SO_SizeGrip ? QStyleOptionSizeGrip
QStyleOption.SO_Slider ? QStyleOptionSlider
QStyleOption.SO_SpinBox ? QStyleOptionSpinBox
QStyleOption.SO_Tab 3 QStyleOptionTab
QStyleOption.SO_TabBarBase 14 QStyleOptionTabBarBase
QStyleOption.SO_TabWidgetFrame 13 QStyleOptionTabWidgetFrame
QStyleOption.SO_TitleBar ? QStyleOptionTitleBar
QStyleOption.SO_ToolBar 16 QStyleOptionToolBar
QStyleOption.SO_ToolBox 7 QStyleOptionToolBox
QStyleOption.SO_ToolButton ? QStyleOptionToolButton
QStyleOption.SO_ViewItem 12 QStyleOptionViewItem (used in Interviews)

The following values are used for custom controls:

Constant Value Description
QStyleOption.SO_CustomBase 0xf00 Reserved for custom QStyleOptions; all custom controls values must be above this value
QStyleOption.SO_ComplexCustomBase 0xf000000 Reserved for custom QStyleOptions; all custom complex controls values must be above this value

Some style options are defined for various Qt3Support controls:

Constant Value Description
QStyleOption.SO_Q3DockWindow 9 QStyleOptionQ3DockWindow
QStyleOption.SO_Q3ListView ? QStyleOptionQ3ListView
QStyleOption.SO_Q3ListViewItem 11 QStyleOptionQ3ListViewItem

See also type.

QStyleOption.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOption.Type SO_Default The type of style option provided (SO_Default for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOption.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOption.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOption.__init__ (self, int version = QStyleOption.Version, int type = QStyleOption.SO_Default)

Constructs a QStyleOption with the specified version and type.

The version has no special meaning for QStyleOption; it can be used by subclasses to distinguish between different version of the same option type.

The state member variable is initialized to QStyle.State_None.

See also version and type.

QStyleOption.__init__ (self, QStyleOption other)

Constructs a copy of other.

QStyleOption.init (self, QWidget w)

QStyleOption.initFrom (self, QWidget w)

Initializes the state, direction, rect, palette, and fontMetrics member variables based on the specified widget.

This is a convenience function; the member variables can also be initialized manually.

This function was introduced in Qt 4.1.

See also QWidget.layoutDirection(), QWidget.rect(), QWidget.palette(), and QWidget.fontMetrics().


Member Documentation

Qt.LayoutDirection direction

This variable holds the text layout direction that should be used when drawing text in the control.

By default, the layout direction is Qt.LeftToRight.

See also initFrom().

QFontMetrics fontMetrics

This variable holds the font metrics that should be used when drawing text in the control.

By default, the application's default font is used.

See also initFrom().

QPalette palette

This variable holds the palette that should be used when painting the control.

By default, the application's default palette is used.

See also initFrom().

QRect rect

This variable holds the area that should be used for various calculations and painting.

This can have different meanings for different types of elements. For example, for a QStyle.CE_PushButton element it would be the rectangle for the entire button, while for a QStyle.CE_PushButtonLabel element it would be just the area for the push button label.

The default value is a null rectangle, i.e. a rectangle with both the width and the height set to 0.

See also initFrom().

QStyle.State state

This variable holds the style flags that are used when drawing the control.

The default value is QStyle.State_None.

See also initFrom(), QStyle.drawPrimitive(), QStyle.drawControl(), QStyle.drawComplexControl(), and QStyle.State.

int type

This variable holds the option type of the style option.

The default value is SO_Default.

See also OptionType.

int version

This variable holds the version of the style option.

This value can be used by subclasses to implement extensions without breaking compatibility. If you use the qstyleoption_cast() function, you normally do not need to check it.

The default value is 1.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionbutton-buttonfeatures.html0000644000076500000240000001521412536324513025430 0ustar philstaff00000000000000 QStyleOptionButton.ButtonFeatures Class Reference
  Home · All Classes · Modules

QStyleOptionButton.ButtonFeatures Class Reference
[QtGui module]

Methods

Special Methods

  • ButtonFeatures __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, ButtonFeatures f)
  • ButtonFeatures __iand__ (self, int mask)
  • int __int__ (self)
  • ButtonFeatures __invert__ (self)
  • ButtonFeatures __ior__ (self, ButtonFeatures f)
  • ButtonFeatures __ixor__ (self, ButtonFeatures f)
  • bool __ne__ (self, ButtonFeatures f)
  • ButtonFeatures __or__ (self, ButtonFeatures f)
  • ButtonFeatures __or__ (self, int f)
  • ButtonFeatures __xor__ (self, ButtonFeatures f)
  • ButtonFeatures __xor__ (self, int f)

Detailed Description

ButtonFeature may be used whenever ButtonFeatures is expected.


Method Documentation

ButtonFeatures.__init__ (self, ButtonFeatures)

ButtonFeatures.__init__ (self, int)

ButtonFeatures.__init__ (self)

ButtonFeatures ButtonFeatures.__and__ (self, int mask)

int ButtonFeatures.__bool__ (self)

bool ButtonFeatures.__eq__ (self, ButtonFeatures f)

ButtonFeatures ButtonFeatures.__iand__ (self, int mask)

int ButtonFeatures.__int__ (self)

ButtonFeatures ButtonFeatures.__invert__ (self)

ButtonFeatures ButtonFeatures.__ior__ (self, ButtonFeatures f)

ButtonFeatures ButtonFeatures.__ixor__ (self, ButtonFeatures f)

bool ButtonFeatures.__ne__ (self, ButtonFeatures f)

ButtonFeatures ButtonFeatures.__or__ (self, ButtonFeatures f)

ButtonFeatures ButtonFeatures.__or__ (self, int f)

ButtonFeatures ButtonFeatures.__xor__ (self, ButtonFeatures f)

ButtonFeatures ButtonFeatures.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionbutton.html0000644000076500000240000002173612536324513022366 0ustar philstaff00000000000000 QStyleOptionButton Class Reference
  Home · All Classes · Modules

QStyleOptionButton Class Reference
[QtGui module]

The QStyleOptionButton class is used to describe the parameters for drawing buttons. More...

Inherits QStyleOption.

Types

Methods

Members


Detailed Description

The QStyleOptionButton class is used to describe the parameters for drawing buttons.

QStyleOptionButton contains all the information that QStyle functions need to draw graphical elements like QPushButton, QCheckBox, and QRadioButton.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionButton.ButtonFeature

This enum describes the different types of features a push button can have.

Constant Value Description
QStyleOptionButton.None 0x00 Indicates a normal push button.
QStyleOptionButton.Flat 0x01 Indicates a flat push button.
QStyleOptionButton.HasMenu 0x02 Indicates that the button has a drop down menu.
QStyleOptionButton.DefaultButton 0x04 Indicates that the button is a default button.
QStyleOptionButton.AutoDefaultButton 0x08 Indicates that the button is an auto default button.
QStyleOptionButton.CommandLinkButton 0x10 Indicates that the button is a Windows Vista type command link.

The ButtonFeatures type is a typedef for QFlags<ButtonFeature>. It stores an OR combination of ButtonFeature values.

See also features.

QStyleOptionButton.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionButton.Type SO_Button The type of style option provided (SO_Button for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionButton.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionButton.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionButton.__init__ (self)

Constructs a QStyleOptionButton, initializing the members variables to their default values.

QStyleOptionButton.__init__ (self, QStyleOptionButton other)

Constructs a copy of the other style option.


Member Documentation

ButtonFeatures features

This variable holds a bitwise OR of the features that describe this button.

See also ButtonFeature.

QIcon icon

This variable holds the icon of the button.

The default value is an empty icon, i.e. an icon with neither a pixmap nor a filename.

See also iconSize.

QSize iconSize

This variable holds the size of the icon for the button.

The default value is QSize(-1, -1), i.e. an invalid size.

QString text

This variable holds the text of the button.

The default value is an empty string.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptioncombobox.html0000644000076500000240000001737312536324513022665 0ustar philstaff00000000000000 QStyleOptionComboBox Class Reference
  Home · All Classes · Modules

QStyleOptionComboBox Class Reference
[
QtGui module]

The QStyleOptionComboBox class is used to describe the parameter for drawing a combobox. More...

Inherits QStyleOptionComplex.

Types

Methods

Members


Detailed Description

The QStyleOptionComboBox class is used to describe the parameter for drawing a combobox.

QStyleOptionButton contains all the information that QStyle functions need to draw QComboBox.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionComboBox.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionComboBox.Type SO_ComboBox The type of style option provided (SO_ComboBox for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionComboBox.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionComboBox.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionComboBox.__init__ (self)

Creates a QStyleOptionComboBox, initializing the members variables to their default values.

QStyleOptionComboBox.__init__ (self, QStyleOptionComboBox other)

Constructs a copy of the other style option.


Member Documentation

QIcon currentIcon

This variable holds the icon for the current item of the combo box.

The default value is an empty icon, i.e. an icon with neither a pixmap nor a filename.

QString currentText

This variable holds the text for the current item of the combo box.

The default value is an empty string.

bool editable

This variable holds whether or not the combobox is editable or not.

the default value is false

See also QComboBox.isEditable().

bool frame

This variable holds whether the combo box has a frame.

The default value is true.

QSize iconSize

This variable holds the icon size for the current item of the combo box.

The default value is QSize(-1, -1), i.e. an invalid size.

QRect popupRect

This variable holds the popup rectangle for the combobox.

The default value is a null rectangle, i.e. a rectangle with both the width and the height set to 0.

This variable is currently unused. You can safely ignore it.

See also QStyle.SC_ComboBoxListBoxPopup.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptioncomplex.html0000644000076500000240000001662612536324513022524 0ustar philstaff00000000000000 QStyleOptionComplex Class Reference
  Home · All Classes · Modules

QStyleOptionComplex Class Reference
[QtGui module]

The QStyleOptionComplex class is used to hold parameters that are common to all complex controls. More...

Inherits QStyleOption.

Inherited by QStyleOptionComboBox, QStyleOptionGroupBox, QStyleOptionSizeGrip, QStyleOptionSlider, QStyleOptionSpinBox, QStyleOptionTitleBar and QStyleOptionToolButton.

Types

Methods

  • __init__ (self, int version = QStyleOptionComplex.Version, int type = QStyleOption.SO_Complex)
  • __init__ (self, QStyleOptionComplex other)

Members


Detailed Description

The QStyleOptionComplex class is used to hold parameters that are common to all complex controls.

This class is not used on its own. Instead it is used to derive other complex control options, for example QStyleOptionSlider and QStyleOptionSpinBox.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator).

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionComplex.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionComplex.Type SO_Complex The type of style option provided (SO_Complex for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionComplex.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionComplex.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionComplex.__init__ (self, int version = QStyleOptionComplex.Version, int type = QStyleOption.SO_Complex)

Constructs a QStyleOptionComplex of the specified type and version, initializing the member variables to their default values. This constructor is usually called by subclasses.

QStyleOptionComplex.__init__ (self, QStyleOptionComplex other)

Constructs a copy of the other style option.


Member Documentation

QStyle.SubControls activeSubControls

This variable holds a bitwise OR of the sub-controls that are active for the complex control.

The default value is QStyle.SC_None.

See also QStyle.SubControl.

QStyle.SubControls subControls

This variable holds a bitwise OR of the sub-controls to be drawn for the complex control.

The default value is QStyle.SC_All.

See also QStyle.SubControl.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiondockwidget.html0000644000076500000240000001544412536324513023176 0ustar philstaff00000000000000 QStyleOptionDockWidget Class Reference
  Home · All Classes · Modules

QStyleOptionDockWidget Class Reference
[QtGui module]

The QStyleOptionDockWidget class is used to describe the parameters for drawing a dock widget. More...

Inherits QStyleOption.

Inherited by QStyleOptionDockWidgetV2.

Types

Methods

Members


Detailed Description

The QStyleOptionDockWidget class is used to describe the parameters for drawing a dock widget.

QStyleOptionDockWidget contains all the information that QStyle functions need to draw graphical elements like QDockWidget.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionDockWidget.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionDockWidget.Type SO_DockWidget The type of style option provided (SO_DockWidget for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionDockWidget.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionDockWidget.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionDockWidget.__init__ (self)

Constructs a QStyleOptionDockWidget, initializing the member variables to their default values.

QStyleOptionDockWidget.__init__ (self, QStyleOptionDockWidget other)

Constructs a copy of the other style option.


Member Documentation

bool closable

This variable holds whether the dock window is closable.

The default value is true.

bool floatable

This variable holds whether the dock window is floatable.

The default value is true.

bool movable

This variable holds whether the dock window is movable.

The default value is false.

QString title

This variable holds the title of the dock window.

The default value is an empty string.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiondockwidgetv2.html0000644000076500000240000000627212536324513023445 0ustar philstaff00000000000000 QStyleOptionDockWidgetV2 Class Reference
  Home · All Classes · Modules

QStyleOptionDockWidgetV2 Class Reference
[
QtGui module]

Inherits QStyleOptionDockWidget.

Types

Methods

Members


Detailed Description


Type Documentation

QStyleOptionDockWidgetV2.StyleOptionVersion


Method Documentation

QStyleOptionDockWidgetV2.__init__ (self)

QStyleOptionDockWidgetV2.__init__ (self, QStyleOptionDockWidgetV2 other)

QStyleOptionDockWidgetV2.__init__ (self, QStyleOptionDockWidget other)


Member Documentation

bool verticalTitleBar


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionfocusrect.html0000644000076500000240000001402712536324513023043 0ustar philstaff00000000000000 QStyleOptionFocusRect Class Reference
  Home · All Classes · Modules

QStyleOptionFocusRect Class Reference
[
QtGui module]

The QStyleOptionFocusRect class is used to describe the parameters for drawing a focus rectangle with QStyle. More...

Inherits QStyleOption.

Types

Methods

Members


Detailed Description

The QStyleOptionFocusRect class is used to describe the parameters for drawing a focus rectangle with QStyle.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionFocusRect.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionFocusRect.Type SO_FocusRect The type of style option provided (SO_FocusRect for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionFocusRect.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionFocusRect.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionFocusRect.__init__ (self)

Constructs a QStyleOptionFocusRect, initializing the members variables to their default values.

QStyleOptionFocusRect.__init__ (self, QStyleOptionFocusRect other)

Constructs a copy of the other style option.


Member Documentation

QColor backgroundColor

This variable holds the background color on which the focus rectangle is being drawn.

The default value is an invalid color with the RGB value (0, 0, 0). An invalid color is a color that is not properly set up for the underlying window system.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionframe.html0000644000076500000240000001646412536324513022147 0ustar philstaff00000000000000 QStyleOptionFrame Class Reference
  Home · All Classes · Modules

QStyleOptionFrame Class Reference
[QtGui module]

The QStyleOptionFrame class is used to describe the parameters for drawing a frame. More...

Inherits QStyleOption.

Inherited by QStyleOptionFrameV2.

Types

Methods

Members


Detailed Description

The QStyleOptionFrame class is used to describe the parameters for drawing a frame.

QStyleOptionFrame is used for drawing several built-in Qt widgets, including QFrame, QGroupBox, QLineEdit, and QMenu. Note that to describe the parameters necessary for drawing a frame in Qt 4.1 or above, you must use the QStyleOptionFrameV2 subclass.

An instance of the QStyleOptionFrame class has type SO_Frame and version 1.

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

If you create your own QStyle subclass, you should handle both QStyleOptionFrame and QStyleOptionFrameV2.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionFrame.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionFrame.Type SO_Frame The type of style option provided (SO_Frame for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionFrame.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionFrame.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionFrame.__init__ (self)

Constructs a QStyleOptionFrame, initializing the members variables to their default values.

QStyleOptionFrame.__init__ (self, QStyleOptionFrame other)

Constructs a copy of the other style option.


Member Documentation

int lineWidth

This variable holds the line width for drawing the frame.

The default value is 0.

See also QFrame.lineWidth.

int midLineWidth

This variable holds the mid-line width for drawing the frame.

This is usually used in drawing sunken or raised frames.

The default value is 0.

See also QFrame.midLineWidth.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionframev2-framefeatures.html0000644000076500000240000001512412536324513025236 0ustar philstaff00000000000000 QStyleOptionFrameV2.FrameFeatures Class Reference
  Home · All Classes · Modules

QStyleOptionFrameV2.FrameFeatures Class Reference
[QtGui module]

Methods

Special Methods

  • FrameFeatures __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, FrameFeatures f)
  • FrameFeatures __iand__ (self, int mask)
  • int __int__ (self)
  • FrameFeatures __invert__ (self)
  • FrameFeatures __ior__ (self, FrameFeatures f)
  • FrameFeatures __ixor__ (self, FrameFeatures f)
  • bool __ne__ (self, FrameFeatures f)
  • FrameFeatures __or__ (self, FrameFeatures f)
  • FrameFeatures __or__ (self, int f)
  • FrameFeatures __xor__ (self, FrameFeatures f)
  • FrameFeatures __xor__ (self, int f)

Detailed Description

FrameFeature may be used whenever FrameFeatures is expected.


Method Documentation

FrameFeatures.__init__ (self, FrameFeatures)

FrameFeatures.__init__ (self, int)

FrameFeatures.__init__ (self)

FrameFeatures FrameFeatures.__and__ (self, int mask)

int FrameFeatures.__bool__ (self)

bool FrameFeatures.__eq__ (self, FrameFeatures f)

FrameFeatures FrameFeatures.__iand__ (self, int mask)

int FrameFeatures.__int__ (self)

FrameFeatures FrameFeatures.__invert__ (self)

FrameFeatures FrameFeatures.__ior__ (self, FrameFeatures f)

FrameFeatures FrameFeatures.__ixor__ (self, FrameFeatures f)

bool FrameFeatures.__ne__ (self, FrameFeatures f)

FrameFeatures FrameFeatures.__or__ (self, FrameFeatures f)

FrameFeatures FrameFeatures.__or__ (self, int f)

FrameFeatures FrameFeatures.__xor__ (self, FrameFeatures f)

FrameFeatures FrameFeatures.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionframev2.html0000644000076500000240000002210412536324513022403 0ustar philstaff00000000000000 QStyleOptionFrameV2 Class Reference
  Home · All Classes · Modules

QStyleOptionFrameV2 Class Reference
[QtGui module]

The QStyleOptionFrameV2 class is used to describe the parameters necessary for drawing a frame in Qt 4.1 or above. More...

Inherits QStyleOptionFrame.

Inherited by QStyleOptionFrameV3.

Types

Methods

Members


Detailed Description

The QStyleOptionFrameV2 class is used to describe the parameters necessary for drawing a frame in Qt 4.1 or above.

QStyleOptionFrameV2 inherits QStyleOptionFrame which is used for drawing several built-in Qt widgets, including QFrame, QGroupBox, QLineEdit, and QMenu.

An instance of the QStyleOptionFrameV2 class has type SO_Frame and version 2. The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

If you create your own QStyle subclass, you should handle both QStyleOptionFrame and QStyleOptionFrameV2. One way to achieve this is to use the QStyleOptionFrameV2 copy constructor. For example:

     QStyleOptionFrame *option;

     if (const QStyleOptionFrame *frameOption =
            qstyleoption_cast<const QStyleOptionFrame *>(option)) {
         QStyleOptionFrameV2 frameOptionV2(*frameOption);

         // draw the frame using frameOptionV2
     }

In the example above: If the frameOption's version is 1, FrameFeature is set to None for frameOptionV2. If frameOption's version is 2, the constructor will simply copy the frameOption's FrameFeature value.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionFrameV2.FrameFeature

This enum describes the different types of features a frame can have.

Constant Value Description
QStyleOptionFrameV2.None 0x00 Indicates a normal frame.
QStyleOptionFrameV2.Flat 0x01 Indicates a flat frame.

The FrameFeatures type is a typedef for QFlags<FrameFeature>. It stores an OR combination of FrameFeature values.

QStyleOptionFrameV2.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionFrameV2.Version 2 2

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionFrameV2.__init__ (self)

Constructs a QStyleOptionFrameV2 object.

QStyleOptionFrameV2.__init__ (self, QStyleOptionFrameV2 other)

Constructs a QStyleOptionFrameV2 copy of the other style option.

QStyleOptionFrameV2.__init__ (self, QStyleOptionFrame other)

Constructs a QStyleOptionFrameV2 copy of the other style option which can be either of the QStyleOptionFrameV2 or QStyleOptionFrame types.

If the other style option's version is 1, the new style option's FrameFeature value is set to QStyleOptionFrameV2.None. If its version is 2, its FrameFeature value is simply copied to the new style option.

See also version.


Member Documentation

FrameFeatures features

This variable holds a bitwise OR of the features that describe this frame.

See also FrameFeature.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionframev3.html0000644000076500000240000001454512536324513022416 0ustar philstaff00000000000000 QStyleOptionFrameV3 Class Reference
  Home · All Classes · Modules

QStyleOptionFrameV3 Class Reference
[QtGui module]

The QStyleOptionFrameV3 class is used to describe the parameters necessary for drawing a frame in Qt 4.1 or above. More...

Inherits QStyleOptionFrameV2.

Types

Methods

Members


Detailed Description

The QStyleOptionFrameV3 class is used to describe the parameters necessary for drawing a frame in Qt 4.1 or above.

QStyleOptionFrameV3 inherits QStyleOptionFrameV2

An instance of the QStyleOptionFrameV3 class has type SO_Frame and version 3. The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.


Type Documentation

QStyleOptionFrameV3.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionFrameV3.Version 3 3

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionFrameV3.__init__ (self)

Constructs a QStyleOptionFrameV3 object.

QStyleOptionFrameV3.__init__ (self, QStyleOptionFrameV3 other)

Constructs a QStyleOptionFrameV3 copy of the other style option.

QStyleOptionFrameV3.__init__ (self, QStyleOptionFrame other)

Constructs a QStyleOptionFrameV3 copy of the other style option which can be either of the QStyleOptionFrameV3 or QStyleOptionFrame types.

If the other style option's version is 1, the new style option's FrameFeature value is set to QStyleOptionFrameV2.None. If its version is 2 or lower, QStyleOptionFrameV3.frameShape value is QFrame.NoFrame

See also version.


Member Documentation

QFrame.Shape frameShape

This variable holds this property holds the frame shape value of the frame.

See also QFrame.frameShape.

int unused


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiongraphicsitem.html0000644000076500000240000001657712536324513023541 0ustar philstaff00000000000000 QStyleOptionGraphicsItem Class Reference
  Home · All Classes · Modules

QStyleOptionGraphicsItem Class Reference
[
QtGui module]

The QStyleOptionGraphicsItem class is used to describe the parameters needed to draw a QGraphicsItem. More...

Inherits QStyleOption.

Types

Methods

Static Methods

Members


Detailed Description

The QStyleOptionGraphicsItem class is used to describe the parameters needed to draw a QGraphicsItem.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionGraphicsItem.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionGraphicsItem.Type SO_GraphicsItem The type of style option provided (SO_GraphicsItem for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionGraphicsItem.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionGraphicsItem.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionGraphicsItem.__init__ (self)

Constructs a QStyleOptionGraphicsItem.

QStyleOptionGraphicsItem.__init__ (self, QStyleOptionGraphicsItem other)

Constructs a copy of other.

float QStyleOptionGraphicsItem.levelOfDetailFromTransform (QTransform worldTransform)

Returns the level of detail from the worldTransform.

Its value represents the maximum value of the height and width of a unity rectangle, mapped using the worldTransform of the painter used to draw the item. By default, if no transformations are applied, its value is 1. If zoomed out 1:2, the level of detail will be 0.5, and if zoomed in 2:1, its value is 2.

This function was introduced in Qt 4.6.


Member Documentation

QRectF exposedRect

This variable holds the exposed rectangle, in item coordinates.

Make use of this rectangle to speed up item drawing when only parts of the item are exposed. If the whole item is exposed, this rectangle will be the same as QGraphicsItem.boundingRect().

This member is only initialized for items that have the QGraphicsItem.ItemUsesExtendedStyleOption flag set.

float levelOfDetail

QMatrix matrix


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiongroupbox.html0000644000076500000240000002100312536324513022703 0ustar philstaff00000000000000 QStyleOptionGroupBox Class Reference
  Home · All Classes · Modules

QStyleOptionGroupBox Class Reference
[QtGui module]

The QStyleOptionGroupBox class describes the parameters for drawing a group box. More...

Inherits QStyleOptionComplex.

Types

Methods

Members


Detailed Description

The QStyleOptionGroupBox class describes the parameters for drawing a group box.

QStyleOptionButton contains all the information that QStyle functions need the various graphical elements of a group box.

It holds the lineWidth and the midLineWidth for drawing the panel, the group box's title and the title's alignment and color.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionGroupBox.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionGroupBox.Type SO_GroupBox The type of style option provided (SO_GroupBox for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionGroupBox.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionGroupBox.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionGroupBox.__init__ (self)

Constructs a QStyleOptionGroupBox, initializing the members variables to their default values.

QStyleOptionGroupBox.__init__ (self, QStyleOptionGroupBox other)

Constructs a copy of the other style option.


Member Documentation

QStyleOptionFrameV2.FrameFeatures features

This variable holds the features of the group box frame.

The frame is flat by default.

See also QStyleOptionFrameV2.FrameFeature.

int lineWidth

This variable holds the line width for drawing the panel.

The value of this variable is, currently, always 1.

See also QFrame.lineWidth.

int midLineWidth

This variable holds the mid-line width for drawing the panel.

The mid-line width is usually used when drawing sunken or raised group box frames. The value of this variable is, currently, always 0.

See also QFrame.midLineWidth.

QString text

This variable holds the text of the group box.

The default value is an empty string.

See also QGroupBox.title.

Qt.Alignment textAlignment

This variable holds the alignment of the group box title.

The default value is Qt.AlignLeft.

See also QGroupBox.alignment.

QColor textColor

This variable holds the color of the group box title.

The default value is an invalid color with the RGB value (0, 0, 0). An invalid color is a color that is not properly set up for the underlying window system.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionheader.html0000644000076500000240000003065612536324513022304 0ustar philstaff00000000000000 QStyleOptionHeader Class Reference
  Home · All Classes · Modules

QStyleOptionHeader Class Reference
[QtGui module]

The QStyleOptionHeader class is used to describe the parameters for drawing a header. More...

Inherits QStyleOption.

Types

Methods

Members


Detailed Description

The QStyleOptionHeader class is used to describe the parameters for drawing a header.

QStyleOptionHeader contains all the information that QStyle functions need to draw the item views' header pane, header sort arrow, and header label.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionHeader.SectionPosition

This enum lets you know where the section's position is in relation to the other sections.

Constant Value Description
QStyleOptionHeader.Beginning 0 At the beginining of the header
QStyleOptionHeader.Middle 1 In the middle of the header
QStyleOptionHeader.End 2 At the end of the header
QStyleOptionHeader.OnlyOneSection 3 Only one header section

See also position.

QStyleOptionHeader.SelectedPosition

This enum lets you know where the section's position is in relation to the selected section.

Constant Value Description
QStyleOptionHeader.NotAdjacent 0 Not adjacent to the selected section
QStyleOptionHeader.NextIsSelected 1 The next section is selected
QStyleOptionHeader.PreviousIsSelected 2 The previous section is selected
QStyleOptionHeader.NextAndPreviousAreSelected 3 Both the next and previous section are selected

See also selectedPosition.

QStyleOptionHeader.SortIndicator

Indicates which direction the sort indicator should be drawn

Constant Value Description
QStyleOptionHeader.None 0 No sort indicator is needed
QStyleOptionHeader.SortUp 1 Draw an up indicator
QStyleOptionHeader.SortDown 2 Draw a down indicator

See also sortIndicator.

QStyleOptionHeader.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionHeader.Type SO_Header The type of style option provided (SO_Header for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionHeader.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionHeader.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionHeader.__init__ (self)

Constructs a QStyleOptionHeader, initializing the members variables to their default values.

QStyleOptionHeader.__init__ (self, QStyleOptionHeader other)

Constructs a copy of the other style option.


Member Documentation

QIcon icon

This variable holds the icon of the header.

The default value is an empty icon, i.e. an icon with neither a pixmap nor a filename.

Qt.Alignment iconAlignment

This variable holds the alignment flags for the icon of the header.

The default value is Qt.AlignLeft.

Qt.Orientation orientation

This variable holds the header's orientation (horizontal or vertical).

The default orientation is Qt.Horizontal

SectionPosition position

This variable holds the section's position in relation to the other sections.

The default value is QStyleOptionHeader.Beginning.

int section

This variable holds which section of the header is being painted.

The default value is 0.

SelectedPosition selectedPosition

This variable holds the section's position in relation to the selected section.

The default value is QStyleOptionHeader.NotAdjacent

SortIndicator sortIndicator

This variable holds the direction the sort indicator should be drawn.

The default value is QStyleOptionHeader.None.

QString text

This variable holds the text of the header.

The default value is an empty string.

Qt.Alignment textAlignment

This variable holds the alignment flags for the text of the header.

The default value is Qt.AlignLeft.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionmenuitem.html0000644000076500000240000003202412536324513022666 0ustar philstaff00000000000000 QStyleOptionMenuItem Class Reference
  Home · All Classes · Modules

QStyleOptionMenuItem Class Reference
[QtGui module]

The QStyleOptionMenuItem class is used to describe the parameter necessary for drawing a menu item. More...

Inherits QStyleOption.

Types

Methods

Members


Detailed Description

The QStyleOptionMenuItem class is used to describe the parameter necessary for drawing a menu item.

QStyleOptionMenuItem contains all the information that QStyle functions need to draw the menu items from QMenu. It is also used for drawing other menu-related widgets.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionMenuItem.CheckType

This enum is used to indicate whether or not a check mark should be drawn for the item, or even if it should be drawn at all.

Constant Value Description
QStyleOptionMenuItem.NotCheckable 0 The item is not checkable.
QStyleOptionMenuItem.Exclusive 1 The item is an exclusive check item (like a radio button).
QStyleOptionMenuItem.NonExclusive 2 The item is a non-exclusive check item (like a check box).

See also checkType, QAction.checkable, QAction.checked, and QActionGroup.exclusive.

QStyleOptionMenuItem.MenuItemType

This enum indicates the type of menu item that the structure describes.

Constant Value Description
QStyleOptionMenuItem.Normal 0 A normal menu item.
QStyleOptionMenuItem.DefaultItem 1 A menu item that is the default action as specified with QMenu.defaultAction().
QStyleOptionMenuItem.Separator 2 A menu separator.
QStyleOptionMenuItem.SubMenu 3 Indicates the menu item points to a sub-menu.
QStyleOptionMenuItem.Scroller 4 A popup menu scroller (currently only used on Mac OS X).
QStyleOptionMenuItem.TearOff 5 A tear-off handle for the menu.
QStyleOptionMenuItem.Margin 6 The margin of the menu.
QStyleOptionMenuItem.EmptyArea 7 The empty area of the menu.

See also menuItemType.

QStyleOptionMenuItem.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionMenuItem.Type SO_MenuItem The type of style option provided (SO_MenuItem for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionMenuItem.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionMenuItem.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionMenuItem.__init__ (self)

Constructs a QStyleOptionMenuItem, initializing the members variables to their default values.

QStyleOptionMenuItem.__init__ (self, QStyleOptionMenuItem other)

Constructs a copy of the other style option.


Member Documentation

bool checked

This variable holds whether the menu item is checked or not.

The default value is false.

CheckType checkType

This variable holds the type of checkmark of the menu item.

The default value is NotCheckable.

See also CheckType.

QFont font

This variable holds the font used for the menu item text.

This is the font that should be used for drawing the menu text minus the shortcut. The shortcut is usually drawn using the painter's font. By default, the application's default font is used.

QIcon icon

This variable holds the icon for the menu item.

The default value is an empty icon, i.e. an icon with neither a pixmap nor a filename.

int maxIconWidth

This variable holds the maximum icon width for the icon in the menu item.

This can be used for drawing the icon into the correct place or properly aligning items. The variable must be set regardless of whether or not the menu item has an icon. The default value is 0.

bool menuHasCheckableItems

This variable holds whether the menu as a whole has checkable items or not.

The default value is true.

If this option is set to false, then the menu has no checkable items. This makes it possible for GUI styles to save some horizontal space that would normally be used for the check column.

MenuItemType menuItemType

This variable holds the type of menu item.

The default value is Normal.

See also MenuItemType.

QRect menuRect

This variable holds the rectangle for the entire menu.

The default value is a null rectangle, i.e. a rectangle with both the width and the height set to 0.

int tabWidth

This variable holds the tab width for the menu item.

The tab width is the distance between the text of the menu item and the shortcut. The default value is 0.

QString text

This variable holds the text for the menu item.

Note that the text format is something like this "Menu text\tShortcut".

If the menu item doesn't have a shortcut, it will just contain the menu item's text. The default value is an empty string.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionprogressbar.html0000644000076500000240000002221712536324513023377 0ustar philstaff00000000000000 QStyleOptionProgressBar Class Reference
  Home · All Classes · Modules

QStyleOptionProgressBar Class Reference
[
QtGui module]

The QStyleOptionProgressBar class is used to describe the parameters necessary for drawing a progress bar. More...

Inherits QStyleOption.

Inherited by QStyleOptionProgressBarV2.

Types

Methods

Members


Detailed Description

The QStyleOptionProgressBar class is used to describe the parameters necessary for drawing a progress bar.

Since Qt 4.1, Qt uses the QStyleOptionProgressBarV2 subclass for drawing QProgressBar.

An instance of the QStyleOptionProgressBar class has type SO_ProgressBar and version 1.

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

If you create your own QStyle subclass, you should handle both QStyleOptionProgressBar and QStyleOptionProgressBarV2.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionProgressBar.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionProgressBar.Type SO_ProgressBar The type of style option provided (SO_ProgressBar for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionProgressBar.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionProgressBar.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionProgressBar.__init__ (self)

Constructs a QStyleOptionProgressBar, initializing the members variables to their default values.

QStyleOptionProgressBar.__init__ (self, QStyleOptionProgressBar other)

Constructs a copy of the other style option.


Member Documentation

int maximum

This variable holds the maximum value for the progress bar.

This is the maximum value in the progress bar. The default value is 0.

See also QProgressBar.maximum.

int minimum

This variable holds the minimum value for the progress bar.

This is the minimum value in the progress bar. The default value is 0.

See also QProgressBar.minimum.

int progress

This variable holds the current progress for the progress bar.

The current progress. A value of QStyleOptionProgressBar.minimum - 1 indicates that the progress hasn't started yet. The default value is 0.

See also QProgressBar.value.

QString text

This variable holds the text for the progress bar.

The progress bar text is usually just the progress expressed as a string. An empty string indicates that the progress bar has not started yet. The default value is an empty string.

See also QProgressBar.text.

Qt.Alignment textAlignment

This variable holds the text alignment for the text in the QProgressBar.

This can be used as a guide on where the text should be in the progress bar. The default value is Qt.AlignLeft.

bool textVisible

This variable holds a flag indicating whether or not text is visible.

If this flag is true then the text is visible. Otherwise, the text is not visible. The default value is false.

See also QProgressBar.textVisible.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionprogressbarv2.html0000644000076500000240000002407512536324513023653 0ustar philstaff00000000000000 QStyleOptionProgressBarV2 Class Reference
  Home · All Classes · Modules

QStyleOptionProgressBarV2 Class Reference
[QtGui module]

The QStyleOptionProgressBarV2 class is used to describe the parameters necessary for drawing a progress bar in Qt 4.1 or above. More...

Inherits QStyleOptionProgressBar.

Types

Methods

Members


Detailed Description

The QStyleOptionProgressBarV2 class is used to describe the parameters necessary for drawing a progress bar in Qt 4.1 or above.

An instance of this class has type SO_ProgressBar and version 2.

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

If you create your own QStyle subclass, you should handle both QStyleOptionProgressBar and QStyleOptionProgressBarV2. One way to achieve this is to use the QStyleOptionProgressBarV2 copy constructor. For example:

     if (const QStyleOptionProgressBar *progressBarOption =
            qstyleoption_cast<const QStyleOptionProgressBar *>(option)) {
         QStyleOptionProgressBarV2 progressBarV2(*progressBarOption);

         // draw the progress bar using progressBarV2
     }

In the example above: If the progressBarOption's version is 1, the extra members (orientation, invertedAppearance, and bottomToTop) are set to default values for progressBarV2. If the progressBarOption's version is 2, the constructor will simply copy the extra members to progressBarV2.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionProgressBarV2.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionProgressBarV2.Type SO_ProgressBar The type of style option provided (SO_ProgressBar for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionProgressBarV2.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionProgressBarV2.Version 2 2

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionProgressBarV2.__init__ (self)

Constructs a QStyleOptionProgressBarV2, initializing he members variables to their default values.

QStyleOptionProgressBarV2.__init__ (self, QStyleOptionProgressBar other)

Constructs a copy of the other style option which can be either of the QStyleOptionProgressBar and QStyleOptionProgressBarV2 types.

If the other style option's version is 1, the extra members (orientation, invertedAppearance, and bottomToTop) are set to default values for the new style option. If other's version is 2, the extra members are simply copied.

See also version.

QStyleOptionProgressBarV2.__init__ (self, QStyleOptionProgressBarV2 other)

Constructs a copy of the other style option.


Member Documentation

bool bottomToTop

This variable holds whether the text reads from bottom to top when the progress bar is vertical.

The default value is false.

See also QProgressBar.textDirection.

bool invertedAppearance

This variable holds whether the progress bar's appearance is inverted.

The default value is false.

See also QProgressBar.invertedAppearance.

Qt.Orientation orientation

This variable holds the progress bar's orientation (horizontal or vertical); the default orentation is Qt.Horizontal.

See also QProgressBar.orientation.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionrubberband.html0000644000076500000240000001446612536324513023163 0ustar philstaff00000000000000 QStyleOptionRubberBand Class Reference
  Home · All Classes · Modules

QStyleOptionRubberBand Class Reference
[QtGui module]

The QStyleOptionRubberBand class is used to describe the parameters needed for drawing a rubber band. More...

Inherits QStyleOption.

Types

Methods

Members


Detailed Description

The QStyleOptionRubberBand class is used to describe the parameters needed for drawing a rubber band.

QStyleOptionRubberBand contains all the information that QStyle functions need to draw QRubberBand.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionRubberBand.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionRubberBand.Type SO_RubberBand The type of style option provided (SO_RubberBand for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionRubberBand.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionRubberBand.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionRubberBand.__init__ (self)

Creates a QStyleOptionRubberBand, initializing the members variables to their default values.

QStyleOptionRubberBand.__init__ (self, QStyleOptionRubberBand other)

Constructs a copy of the other style option.


Member Documentation

bool opaque

This variable holds whether the rubber band is required to be drawn in an opaque style.

The default value is true.

QRubberBand.Shape shape

This variable holds the shape of the rubber band.

The default shape is QRubberBand.Line.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionsizegrip.html0000644000076500000240000001352412536324513022703 0ustar philstaff00000000000000 QStyleOptionSizeGrip Class Reference
  Home · All Classes · Modules

QStyleOptionSizeGrip Class Reference
[QtGui module]

The QStyleOptionSizeGrip class is used to describe the parameter for drawing a size grip. More...

Inherits QStyleOptionComplex.

Types

Methods

Members


Detailed Description

The QStyleOptionSizeGrip class is used to describe the parameter for drawing a size grip.

QStyleOptionButton contains all the information that QStyle functions need to draw QSizeGrip.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionSizeGrip.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionSizeGrip.Type SO_SizeGrip The type of style option provided (SO_TabBarBase for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionSizeGrip.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionSizeGrip.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionSizeGrip.__init__ (self)

Constructs a QStyleOptionSizeGrip.

QStyleOptionSizeGrip.__init__ (self, QStyleOptionSizeGrip other)

Constructs a copy of the other style option.


Member Documentation

Qt.Corner corner

The corner in which the size grip is located.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionslider.html0000644000076500000240000002565212536324513022336 0ustar philstaff00000000000000 QStyleOptionSlider Class Reference
  Home · All Classes · Modules

QStyleOptionSlider Class Reference
[QtGui module]

The QStyleOptionSlider class is used to describe the parameters needed for drawing a slider. More...

Inherits QStyleOptionComplex.

Types

Methods

Members


Detailed Description

The QStyleOptionSlider class is used to describe the parameters needed for drawing a slider.

QStyleOptionSlider contains all the information that QStyle functions need to draw QSlider and QScrollBar.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionSlider.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionSlider.Type SO_Slider The type of style option provided (SO_Slider for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionSlider.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionSlider.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionSlider.__init__ (self)

Constructs a QStyleOptionSlider, initializing the members variables to their default values.

QStyleOptionSlider.__init__ (self, QStyleOptionSlider other)

Constructs a copy of the other style option.


Member Documentation

bool dialWrapping

This variable holds whether the dial should wrap or not.

The default value is false, i.e. the dial is not wrapped.

See also QDial.wrapping().

int maximum

This variable holds the maximum value for the slider.

The default value is 0.

int minimum

This variable holds the minimum value for the slider.

The default value is 0.

float notchTarget

This variable holds the number of pixel between notches.

The default value is 0.0.

See also QDial.notchTarget().

Qt.Orientation orientation

This variable holds the slider's orientation (horizontal or vertical).

The default orientation is Qt.Horizontal.

See also Qt.Orientation.

int pageStep

This variable holds the size of the page step of the slider.

The default value is 0.

See also QAbstractSlider.pageStep.

int singleStep

This variable holds the size of the single step of the slider.

The default value is 0.

See also QAbstractSlider.singleStep.

int sliderPosition

This variable holds the position of the slider handle.

If the slider has active feedback (i.e., QAbstractSlider.tracking is true), this value will be the same as sliderValue. Otherwise, it will have the current position of the handle. The default value is 0.

See also QAbstractSlider.tracking and sliderValue.

int sliderValue

This variable holds the value of the slider.

If the slider has active feedback (i.e., QAbstractSlider.tracking is true), this value will be the same as sliderPosition. Otherwise, it will have the value the slider had before the mouse was pressed.

The default value is 0.

See also QAbstractSlider.tracking and sliderPosition.

int tickInterval

This variable holds the interval that should be drawn between tick marks.

The default value is 0.

QSlider.TickPosition tickPosition

This variable holds the position of the slider's tick marks, if any.

The default value is QSlider.NoTicks.

See also QSlider.TickPosition.

bool upsideDown

This variable holds the slider control orientation.

Normally a slider increases as it moves up or to the right; upsideDown indicates that it should do the opposite (increase as it moves down or to the left). The default value is false, i.e. the slider increases as it moves up or to the right.

See also QStyle.sliderPositionFromValue(), QStyle.sliderValueFromPosition(), and QAbstractSlider.invertedAppearance.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionspinbox.html0000644000076500000240000001613512536324513022532 0ustar philstaff00000000000000 QStyleOptionSpinBox Class Reference
  Home · All Classes · Modules

QStyleOptionSpinBox Class Reference
[QtGui module]

The QStyleOptionSpinBox class is used to describe the parameters necessary for drawing a spin box. More...

Inherits QStyleOptionComplex.

Types

Methods

Members


Detailed Description

The QStyleOptionSpinBox class is used to describe the parameters necessary for drawing a spin box.

QStyleOptionSpinBox contains all the information that QStyle functions need to draw QSpinBox and QDateTimeEdit.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionSpinBox.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionSpinBox.Type SO_SpinBox The type of style option provided (SO_SpinBox for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionSpinBox.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionSpinBox.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionSpinBox.__init__ (self)

Constructs a QStyleOptionSpinBox, initializing the members variables to their default values.

QStyleOptionSpinBox.__init__ (self, QStyleOptionSpinBox other)

Constructs a copy of the other style option.


Member Documentation

QAbstractSpinBox.ButtonSymbols buttonSymbols

This variable holds the type of button symbols to draw for the spin box.

The default value is QAbstractSpinBox.UpDownArrows specufying little arrows in the classic style.

See also QAbstractSpinBox.ButtonSymbols.

bool frame

This variable holds whether the spin box has a frame.

The default value is false, i.e. the spin box has no frame.

QAbstractSpinBox.StepEnabled stepEnabled

This variable holds which buttons of the spin box that are enabled.

The default value is QAbstractSpinBox.StepNone.

See also QAbstractSpinBox.StepEnabled.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontab-cornerwidgets.html0000644000076500000240000001470412536324513024473 0ustar philstaff00000000000000 QStyleOptionTab.CornerWidgets Class Reference
  Home · All Classes · Modules

QStyleOptionTab.CornerWidgets Class Reference
[QtGui module]

Methods

Special Methods

  • CornerWidgets __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, CornerWidgets f)
  • CornerWidgets __iand__ (self, int mask)
  • int __int__ (self)
  • CornerWidgets __invert__ (self)
  • CornerWidgets __ior__ (self, CornerWidgets f)
  • CornerWidgets __ixor__ (self, CornerWidgets f)
  • bool __ne__ (self, CornerWidgets f)
  • CornerWidgets __or__ (self, CornerWidgets f)
  • CornerWidgets __or__ (self, int f)
  • CornerWidgets __xor__ (self, CornerWidgets f)
  • CornerWidgets __xor__ (self, int f)

Detailed Description

CornerWidget may be used whenever CornerWidgets is expected.


Method Documentation

CornerWidgets.__init__ (self, CornerWidgets)

CornerWidgets.__init__ (self, int)

CornerWidgets.__init__ (self)

CornerWidgets CornerWidgets.__and__ (self, int mask)

int CornerWidgets.__bool__ (self)

bool CornerWidgets.__eq__ (self, CornerWidgets f)

CornerWidgets CornerWidgets.__iand__ (self, int mask)

int CornerWidgets.__int__ (self)

CornerWidgets CornerWidgets.__invert__ (self)

CornerWidgets CornerWidgets.__ior__ (self, CornerWidgets f)

CornerWidgets CornerWidgets.__ixor__ (self, CornerWidgets f)

bool CornerWidgets.__ne__ (self, CornerWidgets f)

CornerWidgets CornerWidgets.__or__ (self, CornerWidgets f)

CornerWidgets CornerWidgets.__or__ (self, int f)

CornerWidgets CornerWidgets.__xor__ (self, CornerWidgets f)

CornerWidgets CornerWidgets.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontab.html0000644000076500000240000003160712536324513021617 0ustar philstaff00000000000000 QStyleOptionTab Class Reference
  Home · All Classes · Modules

QStyleOptionTab Class Reference
[QtGui module]

The QStyleOptionTab class is used to describe the parameters for drawing a tab bar. More...

Inherits QStyleOption.

Inherited by QStyleOptionTabV2.

Types

Methods

Members


Detailed Description

The QStyleOptionTab class is used to describe the parameters for drawing a tab bar.

The QStyleOptionTab class is used for drawing several built-in Qt widgets including QTabBar and the panel for QTabWidget. Note that to describe the parameters necessary for drawing a frame in Qt 4.1 or above, you must use the QStyleOptionFrameV2 subclass.

An instance of the QStyleOptiontabV2 class has type SO_Tab and version 1. The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

If you create your own QStyle subclass, you should handle both QStyleOptionTab and QStyleOptionTabV2.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionTab.CornerWidget

These flags indicate the corner widgets in a tab.

Constant Value Description
QStyleOptionTab.NoCornerWidgets 0x00 There are no corner widgets
QStyleOptionTab.LeftCornerWidget 0x01 Left corner widget
QStyleOptionTab.RightCornerWidget 0x02 Right corner widget

The CornerWidgets type is a typedef for QFlags<CornerWidget>. It stores an OR combination of CornerWidget values.

See also cornerWidgets.

QStyleOptionTab.SelectedPosition

This enum describes the position of the selected tab. Some styles need to draw a tab differently depending on whether or not it is adjacent to the selected tab.

Constant Value Description
QStyleOptionTab.NotAdjacent 0 The tab is not adjacent to a selected tab (or is the selected tab).
QStyleOptionTab.NextIsSelected 1 The next tab (typically the tab on the right) is selected.
QStyleOptionTab.PreviousIsSelected 2 The previous tab (typically the tab on the left) is selected.

See also selectedPosition.

QStyleOptionTab.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTab.Type SO_Tab The type of style option provided (SO_Tab for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionTab.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTab.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.

QStyleOptionTab.TabPosition

This enum describes the position of the tab.

Constant Value Description
QStyleOptionTab.Beginning 0 The tab is the first tab in the tab bar.
QStyleOptionTab.Middle 1 The tab is neither the first nor the last tab in the tab bar.
QStyleOptionTab.End 2 The tab is the last tab in the tab bar.
QStyleOptionTab.OnlyOneTab 3 The tab is both the first and the last tab in the tab bar.

See also position.


Method Documentation

QStyleOptionTab.__init__ (self)

Constructs a QStyleOptionTab object, initializing the members variables to their default values.

QStyleOptionTab.__init__ (self, QStyleOptionTab other)

Constructs a copy of the other style option.


Member Documentation

CornerWidgets cornerWidgets

This variable holds an OR combination of CornerWidget values indicating the corner widgets of the tab bar.

The default value is NoCornerWidgets.

See also CornerWidget.

QIcon icon

This variable holds the icon for the tab.

The default value is an empty icon, i.e. an icon with neither a pixmap nor a filename.

TabPosition position

This variable holds the position of the tab in the tab bar.

The default value is Beginning, i.e. the tab is the first tab in the tab bar.

int row

This variable holds which row the tab is currently in.

The default value is 0, indicating the front row. Currently this property can only be 0.

SelectedPosition selectedPosition

This variable holds the position of the selected tab in relation to this tab.

The default value is NotAdjacent, i.e. the tab is not adjacent to a selected tab nor is it the selected tab.

QTabBar.Shape shape

This variable holds the tab shape used to draw the tab; by default QTabBar.RoundedNorth.

See also QTabBar.Shape.

QString text

This variable holds the text of the tab.

The default value is an empty string.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontabbarbase.html0000644000076500000240000001616212536324513023136 0ustar philstaff00000000000000 QStyleOptionTabBarBase Class Reference
  Home · All Classes · Modules

QStyleOptionTabBarBase Class Reference
[
QtGui module]

The QStyleOptionTabBarBase class is used to describe the base of a tab bar, i.e. the part that the tab bar usually overlaps with. More...

Inherits QStyleOption.

Inherited by QStyleOptionTabBarBaseV2.

Types

Methods

Members


Detailed Description

The QStyleOptionTabBarBase class is used to describe the base of a tab bar, i.e. the part that the tab bar usually overlaps with.

QStyleOptionTabBarBase contains all the information that QStyle functions need to draw the tab bar base. Note that this is only drawn for a standalone QTabBar (one that isn't part of a QTabWidget).

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionTabBarBase.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTabBarBase.Type SO_TabBarBase The type of style option provided (SO_TabBarBase for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionTabBarBase.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTabBarBase.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionTabBarBase.__init__ (self)

Construct a QStyleOptionTabBarBase, initializing the members vaiables to their default values.

QStyleOptionTabBarBase.__init__ (self, QStyleOptionTabBarBase other)

Constructs a copy of other.


Member Documentation

QRect selectedTabRect

This variable holds the rectangle containing the selected tab.

This rectangle is contained within the tabBarRect. The default value is a null rectangle, i.e. a rectangle with both the width and the height set to 0.

QTabBar.Shape shape

This variable holds the shape of the tab bar.

The default value is QTabBar.RoundedNorth.

QRect tabBarRect

This variable holds the rectangle containing all the tabs.

The default value is a null rectangle, i.e. a rectangle with both the width and the height set to 0.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontabbarbasev2.html0000644000076500000240000001230612536324513023402 0ustar philstaff00000000000000 QStyleOptionTabBarBaseV2 Class Reference
  Home · All Classes · Modules

QStyleOptionTabBarBaseV2 Class Reference
[QtGui module]

The QStyleOptionTabBarBaseV2 class is used to describe the base of a tab bar, i.e. the part that the tab bar usually overlaps with. More...

Inherits QStyleOptionTabBarBase.

Types

Methods

Members


Detailed Description

The QStyleOptionTabBarBaseV2 class is used to describe the base of a tab bar, i.e. the part that the tab bar usually overlaps with.

QStyleOptionTabBarBase contains all the information that QStyle functions need to draw the tab bar base.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionTabBarBaseV2.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTabBarBaseV2.Version 2 2

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionTabBarBaseV2.__init__ (self)

Construct a QStyleOptionTabBarBaseV2, initializing the members vaiables to their default values.

QStyleOptionTabBarBaseV2.__init__ (self, QStyleOptionTabBarBaseV2 other)

Constructs a copy of other.

QStyleOptionTabBarBaseV2.__init__ (self, QStyleOptionTabBarBase other)

Constructs a copy of other.


Member Documentation

bool documentMode

This variable holds whether the tabbar is in document mode.

The default value is false;


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontabv2.html0000644000076500000240000001635112536324513022066 0ustar philstaff00000000000000 QStyleOptionTabV2 Class Reference
  Home · All Classes · Modules

QStyleOptionTabV2 Class Reference
[
QtGui module]

The QStyleOptionTabV2 class is used to describe the parameters necessary for drawing a tabs in Qt 4.1 or above. More...

Inherits QStyleOptionTab.

Inherited by QStyleOptionTabV3.

Types

Methods

Members


Detailed Description

The QStyleOptionTabV2 class is used to describe the parameters necessary for drawing a tabs in Qt 4.1 or above.

An instance of the QStyleOptionTabV2 class has type SO_Tab and version 2. The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

If you create your own QStyle subclass, you should handle both QStyleOptionTab and QStyleOptionTabV2. One way to achieve this is to use the QStyleOptionTabV2 copy constructor. For example:

     if (const QStyleOptionTab *tabOption =
            qstyleoption_cast<const QStyleOptionTab *>(option)) {
         QStyleOptionTabV2 tabV2(*tabOption);

         // draw the tab using tabV2
    }

In the example above: If tabOption's version is 1, the extra member (iconSize) will be set to an invalid size for tabV2. If tabOption's version is 2, the constructor will simply copy the tab's iconSize.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionTabV2.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTabV2.Version 2 2

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionTabV2.__init__ (self)

Constructs a QStyleOptionTabV2.

QStyleOptionTabV2.__init__ (self, QStyleOptionTabV2 other)

Constructs a copy of the other style option.

QStyleOptionTabV2.__init__ (self, QStyleOptionTab other)

Constructs a QStyleOptionTabV2 copy of the other style option which can be either of the QStyleOptionTabV2 or QStyleOptionTab types.

If the other style option's version is 1, the new style option's iconSize is set to an invalid value. If its version is 2, its iconSize value is simply copied to the new style option.


Member Documentation

QSize iconSize

This variable holds the size for the icons.

The default value is QSize(-1, -1), i.e. an invalid size; use QStyle.pixelMetric() to find the default icon size for tab bars.

See also QTabBar.iconSize().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontabv3.html0000644000076500000240000002031012536324513022055 0ustar philstaff00000000000000 QStyleOptionTabV3 Class Reference
  Home · All Classes · Modules

QStyleOptionTabV3 Class Reference
[QtGui module]

The QStyleOptionTabV3 class is used to describe the parameters necessary for drawing a tabs in Qt 4.5 or above. More...

Inherits QStyleOptionTabV2.

Types

Methods

Members


Detailed Description

The QStyleOptionTabV3 class is used to describe the parameters necessary for drawing a tabs in Qt 4.5 or above.

An instance of the QStyleOptionTabV3 class has type SO_Tab and version 3. The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

If you create your own QStyle subclass, you should handle both QStyleOptionTab, QStyleOptionTabV2 and QStyleOptionTabV3. One way to achieve this is to use the QStyleOptionTabV3 copy constructor. For example:

     if (const QStyleOptionTab *tabOption =
            qstyleoption_cast<const QStyleOptionTab *>(option)) {
         QStyleOptionTabV2 tabV2(*tabOption);

         // draw the tab using tabV2
    }

In the example above: If tabOption's version is 1, the extra member (iconSize) will be set to an invalid size for tabV2. If tabOption's version is 2, the constructor will simply copy the tab's iconSize.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionTabV3.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTabV3.Version 3 3

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionTabV3.__init__ (self)

Constructs a QStyleOptionTabV3.

QStyleOptionTabV3.__init__ (self, QStyleOptionTabV3 other)

Constructs a copy of the other style option.

QStyleOptionTabV3.__init__ (self, QStyleOptionTabV2 other)

Constructs a copy of the other style option.

QStyleOptionTabV3.__init__ (self, QStyleOptionTab other)

Constructs a QStyleOptionTabV3 copy of the other style option which can be either of the QStyleOptionTabV3, QStyleOptionTabV2 or QStyleOptionTab types.

If the other style option's version is 1 or 2, the new style option's leftButtonSize and rightButtonSize is set to an invalid value. If its version is 3, its leftButtonSize and rightButtonSize values are simply copied to the new style option.


Member Documentation

bool documentMode

This variable holds whether the tabbar is in document mode.

The default value is false;

QSize leftButtonSize

This variable holds the size for the left widget on the tab.

The default value is QSize(-1, -1), i.e. an invalid size;

QSize rightButtonSize

This variable holds the size for the right widget on the tab.

The default value is QSize(-1, -1), i.e. an invalid size;


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontabwidgetframe.html0000644000076500000240000001772612536324513024044 0ustar philstaff00000000000000 QStyleOptionTabWidgetFrame Class Reference
  Home · All Classes · Modules

QStyleOptionTabWidgetFrame Class Reference
[QtGui module]

The QStyleOptionTabWidgetFrame class is used to describe the parameters for drawing the frame around a tab widget. More...

Inherits QStyleOption.

Inherited by QStyleOptionTabWidgetFrameV2.

Types

Methods

Members


Detailed Description

The QStyleOptionTabWidgetFrame class is used to describe the parameters for drawing the frame around a tab widget.

QStyleOptionTabWidgetFrame contains all the information that QStyle functions need to draw the frame around QTabWidget.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionTabWidgetFrame.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTabWidgetFrame.Type SO_TabWidgetFrame The type of style option provided (SO_TabWidgetFrame for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionTabWidgetFrame.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTabWidgetFrame.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionTabWidgetFrame.__init__ (self)

Constructs a QStyleOptionTabWidgetFrame, initializing the members variables to their default values.

QStyleOptionTabWidgetFrame.__init__ (self, QStyleOptionTabWidgetFrame other)

Constructs a copy of other.


Member Documentation

QSize leftCornerWidgetSize

This variable holds the size of the left-corner widget.

The default value is QSize(-1, -1), i.e. an invalid size.

int lineWidth

This variable holds the line width for drawing the panel.

The default value is 0.

int midLineWidth

This variable holds the mid-line width for drawing the panel.

The mid line width is usually used in drawing sunken or raised frames. The default value is 0.

QSize rightCornerWidgetSize

This variable holds the size of the right-corner widget.

The default value is QSize(-1, -1), i.e. an invalid size.

QTabBar.Shape shape

This variable holds the tab shape used to draw the tabs.

The default value is QTabBar.RoundedNorth.

QSize tabBarSize

This variable holds the size of the tab bar.

The default value is QSize(-1, -1), i.e. an invalid size.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontabwidgetframev2.html0000644000076500000240000001534712536324513024311 0ustar philstaff00000000000000 QStyleOptionTabWidgetFrameV2 Class Reference
  Home · All Classes · Modules

QStyleOptionTabWidgetFrameV2 Class Reference
[QtGui module]

The QStyleOptionTabWidgetFrameV2 class is used to describe the parameters for drawing the frame around a tab widget. More...

Inherits QStyleOptionTabWidgetFrame.

Types

Methods

Members


Detailed Description

The QStyleOptionTabWidgetFrameV2 class is used to describe the parameters for drawing the frame around a tab widget.

QStyleOptionTabWidgetFrameV2 contains all the information that QStyle functions need to draw the frame around QTabWidget.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionTabWidgetFrameV2.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTabWidgetFrameV2.Version 2 2

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionTabWidgetFrameV2.__init__ (self)

Constructs a QStyleOptionTabWidgetFrameV2, initializing the members variables to their default values.

QStyleOptionTabWidgetFrameV2.__init__ (self, QStyleOptionTabWidgetFrameV2 other)

Constructs a QStyleOptionTabWidgetFrameV2 copy of the other style option.

If the other style option's version is 1, the new style option's selectedTabRect and tabBarRect will contain null rects

See also version.

QStyleOptionTabWidgetFrameV2.__init__ (self, QStyleOptionTabWidgetFrame other)

Constructs a QStyleOptionTabWidgetFrameV2 copy of the other style option.

If the other style option's version is 1, the new style option's selectedTabRect and tabBarRect will contain null rects

See also version.


Member Documentation

QRect selectedTabRect

This variable holds the rectangle containing the selected tab.

This rectangle is contained within the tabBarRect. The default value is a null rectangle, i.e. a rectangle with both the width and the height set to 0.

QRect tabBarRect

This variable holds the rectangle containing all the tabs.

The default value is a null rectangle, i.e. a rectangle with both the width and the height set to 0.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontitlebar.html0000644000076500000240000001604412536324513022655 0ustar philstaff00000000000000 QStyleOptionTitleBar Class Reference
  Home · All Classes · Modules

QStyleOptionTitleBar Class Reference
[QtGui module]

The QStyleOptionTitleBar class is used to describe the parameters for drawing a title bar. More...

Inherits QStyleOptionComplex.

Types

Methods

Members


Detailed Description

The QStyleOptionTitleBar class is used to describe the parameters for drawing a title bar.

QStyleOptionTitleBar contains all the information that QStyle functions need to draw the title bar of a QMdiSubWindow.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionTitleBar.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTitleBar.Type SO_TitleBar The type of style option provided (SO_TitleBar for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionTitleBar.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionTitleBar.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionTitleBar.__init__ (self)

Constructs a QStyleOptionTitleBar, initializing the members variables to their default values.

QStyleOptionTitleBar.__init__ (self, QStyleOptionTitleBar other)

Constructs a copy of the other style option.


Member Documentation

QIcon icon

This variable holds the icon for the title bar.

The default value is an empty icon, i.e. an icon with neither a pixmap nor a filename.

QString text

This variable holds the text of the title bar.

The default value is an empty string.

Qt.WindowFlags titleBarFlags

This variable holds the widget flags for the title bar.

The default value is Qt.Widget.

See also Qt.WindowFlags.

int titleBarState

This variable holds the state of the title bar.

This is basically the window state of the underlying widget. The default value is 0.

See also QWidget.windowState().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontoolbar-toolbarfeatures.html0000644000076500000240000001541412536324513025710 0ustar philstaff00000000000000 QStyleOptionToolBar.ToolBarFeatures Class Reference
  Home · All Classes · Modules

QStyleOptionToolBar.ToolBarFeatures Class Reference
[QtGui module]

Methods

Special Methods

  • ToolBarFeatures __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, ToolBarFeatures f)
  • ToolBarFeatures __iand__ (self, int mask)
  • int __int__ (self)
  • ToolBarFeatures __invert__ (self)
  • ToolBarFeatures __ior__ (self, ToolBarFeatures f)
  • ToolBarFeatures __ixor__ (self, ToolBarFeatures f)
  • bool __ne__ (self, ToolBarFeatures f)
  • ToolBarFeatures __or__ (self, ToolBarFeatures f)
  • ToolBarFeatures __or__ (self, int f)
  • ToolBarFeatures __xor__ (self, ToolBarFeatures f)
  • ToolBarFeatures __xor__ (self, int f)

Detailed Description

ToolBarFeature may be used whenever ToolBarFeatures is expected.


Method Documentation

ToolBarFeatures.__init__ (self, ToolBarFeatures)

ToolBarFeatures.__init__ (self, int)

ToolBarFeatures.__init__ (self)

ToolBarFeatures ToolBarFeatures.__and__ (self, int mask)

int ToolBarFeatures.__bool__ (self)

bool ToolBarFeatures.__eq__ (self, ToolBarFeatures f)

ToolBarFeatures ToolBarFeatures.__iand__ (self, int mask)

int ToolBarFeatures.__int__ (self)

ToolBarFeatures ToolBarFeatures.__invert__ (self)

ToolBarFeatures ToolBarFeatures.__ior__ (self, ToolBarFeatures f)

ToolBarFeatures ToolBarFeatures.__ixor__ (self, ToolBarFeatures f)

bool ToolBarFeatures.__ne__ (self, ToolBarFeatures f)

ToolBarFeatures ToolBarFeatures.__or__ (self, ToolBarFeatures f)

ToolBarFeatures ToolBarFeatures.__or__ (self, int f)

ToolBarFeatures ToolBarFeatures.__xor__ (self, ToolBarFeatures f)

ToolBarFeatures ToolBarFeatures.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontoolbar.html0000644000076500000240000003053312536324513022510 0ustar philstaff00000000000000 QStyleOptionToolBar Class Reference
  Home · All Classes · Modules

QStyleOptionToolBar Class Reference
[QtGui module]

The QStyleOptionToolBar class is used to describe the parameters for drawing a toolbar. More...

Inherits QStyleOption.

Types

Methods

Members


Detailed Description

The QStyleOptionToolBar class is used to describe the parameters for drawing a toolbar.

QStyleOptionToolBar contains all the information that QStyle functions need to draw QToolBar.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

The QStyleOptionToolBar class holds the lineWidth and the midLineWidth for drawing the widget. It also stores information about which area the toolbar should be located in, whether it is movable or not, which position the toolbar line should have (positionOfLine), and the toolbar's position within the line (positionWithinLine).

In addition, the class provides a couple of enums: The ToolBarFeature enum is used to describe whether a toolbar is movable or not, and the ToolBarPosition enum is used to describe the position of a toolbar line, as well as the toolbar's position within the line.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionToolBar.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionToolBar.Type SO_ToolBar The type of style option provided (SO_ToolBar for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionToolBar.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionToolBar.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.

QStyleOptionToolBar.ToolBarFeature

This enum is used to describe whether a toolbar is movable or not.

Constant Value Description
QStyleOptionToolBar.None 0x0 The toolbar cannot be moved. The default value.
QStyleOptionToolBar.Movable 0x1 The toolbar is movable, and a handle will appear when holding the cursor over the toolbar's boundary.

The ToolBarFeatures type is a typedef for QFlags<ToolBarFeature>. It stores an OR combination of ToolBarFeature values.

See also features and QToolBar.isMovable().

QStyleOptionToolBar.ToolBarPosition

This enum is used to describe the position of a toolbar line, as well as the toolbar's position within the line.

The order of the positions within a line starts at the top of a vertical line, and from the left within a horizontal line. The order of the positions for the lines is always from the the parent widget's boundary edges.

Constant Value Description
QStyleOptionToolBar.Beginning 0 The toolbar is located at the beginning of the line, or the toolbar line is the first of several lines. There can only be one toolbar (and only one line) with this position.
QStyleOptionToolBar.Middle 1 The toolbar is located in the middle of the line, or the toolbar line is in the middle of several lines. There can several toolbars (and lines) with this position.
QStyleOptionToolBar.End 2 The toolbar is located at the end of the line, or the toolbar line is the last of several lines. There can only be one toolbar (and only one line) with this position.
QStyleOptionToolBar.OnlyOne 3 There is only one toolbar or line. This is the default value of the positionOfLine and positionWithinLine variables.

See also positionWithinLine and positionOfLine.


Method Documentation

QStyleOptionToolBar.__init__ (self)

Constructs a QStyleOptionToolBar, initializing the members variables to their default values.

QStyleOptionToolBar.__init__ (self, QStyleOptionToolBar other)

Constructs a copy of the other style option.


Member Documentation

ToolBarFeatures features

This variable holds whether the toolbar is movable or not.

The default value is None.

int lineWidth

This variable holds the line width for drawing the toolbar.

The default value is 0.

int midLineWidth

This variable holds the mid-line width for drawing the toolbar.

The default value is 0.

ToolBarPosition positionOfLine

This variable holds the position of the toolbar line.

The default value is QStyleOptionToolBar.OnlyOne.

ToolBarPosition positionWithinLine

This variable holds the position of the toolbar within a line.

The default value is QStyleOptionToolBar.OnlyOne.

Qt.ToolBarArea toolBarArea

This variable holds the location for drawing the toolbar.

The default value is Qt.TopToolBarArea.

See also Qt.ToolBarArea.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontoolbox.html0000644000076500000240000001434112536324513022533 0ustar philstaff00000000000000 QStyleOptionToolBox Class Reference
  Home · All Classes · Modules

QStyleOptionToolBox Class Reference
[QtGui module]

The QStyleOptionToolBox class is used to describe the parameters needed for drawing a tool box. More...

Inherits QStyleOption.

Inherited by QStyleOptionToolBoxV2.

Types

Methods

Members


Detailed Description

The QStyleOptionToolBox class is used to describe the parameters needed for drawing a tool box.

QStyleOptionToolBox contains all the information that QStyle functions need to draw QToolBox.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionToolBox.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionToolBox.Type SO_ToolBox The type of style option provided (SO_ToolBox for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionToolBox.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionToolBox.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionToolBox.__init__ (self)

Creates a QStyleOptionToolBox, initializing the members variables to their default values.

QStyleOptionToolBox.__init__ (self, QStyleOptionToolBox other)

Constructs a copy of the other style option.


Member Documentation

QIcon icon

This variable holds the icon for the tool box tab.

The default value is an empty icon, i.e. an icon with neither a pixmap nor a filename.

QString text

This variable holds the text for the tool box tab.

The default value is an empty string.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontoolboxv2.html0000644000076500000240000002225412536324513023005 0ustar philstaff00000000000000 QStyleOptionToolBoxV2 Class Reference
  Home · All Classes · Modules

QStyleOptionToolBoxV2 Class Reference
[
QtGui module]

The QStyleOptionToolBoxV2 class is used to describe the parameters necessary for drawing a frame in Qt 4.3 or above. More...

Inherits QStyleOptionToolBox.

Types

Methods

Members


Detailed Description

The QStyleOptionToolBoxV2 class is used to describe the parameters necessary for drawing a frame in Qt 4.3 or above.

QStyleOptionToolBoxV2 inherits QStyleOptionToolBox which is used for drawing the tabs in a QToolBox.

An instance of the QStyleOptionToolBoxV2 class has type SO_ToolBox and version 2. The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

If you create your own QStyle subclass, you should handle both QStyleOptionToolBox and QStyleOptionToolBoxV2.


Type Documentation

QStyleOptionToolBoxV2.SelectedPosition

This enum describes the position of the selected tab. Some styles need to draw a tab differently depending on whether or not it is adjacent to the selected tab.

Constant Value Description
QStyleOptionToolBoxV2.NotAdjacent 0 The tab is not adjacent to a selected tab (or is the selected tab).
QStyleOptionToolBoxV2.NextIsSelected 1 The next tab (typically the tab on the right) is selected.
QStyleOptionToolBoxV2.PreviousIsSelected 2 The previous tab (typically the tab on the left) is selected.

See also selectedPosition.

QStyleOptionToolBoxV2.StyleOptionVersion

This enum holds the version of this style option

Constant Value Description
QStyleOptionToolBoxV2.Version 2 2

QStyleOptionToolBoxV2.TabPosition

This enum describes tab positions relative to other tabs.

Constant Value Description
QStyleOptionToolBoxV2.Beginning 0 The tab is the first (i.e., top-most) tab in the toolbox.
QStyleOptionToolBoxV2.Middle 1 The tab is placed in the middle of the toolbox.
QStyleOptionToolBoxV2.End 2 The tab is placed at the bottom of the toolbox.
QStyleOptionToolBoxV2.OnlyOneTab 3 There is only one tab in the toolbox.

Method Documentation

QStyleOptionToolBoxV2.__init__ (self)

Contsructs a QStyleOptionToolBoxV2 object.

QStyleOptionToolBoxV2.__init__ (self, QStyleOptionToolBoxV2 other)

Constructs a QStyleOptionToolBoxV2 copy of the other style option.

QStyleOptionToolBoxV2.__init__ (self, QStyleOptionToolBox other)

Constructs a QStyleOptionToolBoxV2 copy of the other style option which can be either of the QStyleOptionToolBoxV2 or QStyleOptionToolBox types.

If the other style option's version is 1, the new style option's position value is set to QStyleOptionToolBoxV2.Beginning and selectedPosition is set to QStyleOptionToolBoxV2.NotAdjacent. If its version is 2, the position selectedPosition values are simply copied to the new style option.

See also version.


Member Documentation

TabPosition position

SelectedPosition selectedPosition

This variable holds the position of the selected tab in relation to this tab.

The default value is NotAdjacent, i.e. the tab is not adjacent to a selected tab nor is it the selected tab.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontoolbutton-toolbuttonfeatures.html0000644000076500000240000001620612536324513027226 0ustar philstaff00000000000000 QStyleOptionToolButton.ToolButtonFeatures Class Reference
  Home · All Classes · Modules

QStyleOptionToolButton.ToolButtonFeatures Class Reference
[QtGui module]

Methods

Special Methods

  • ToolButtonFeatures __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, ToolButtonFeatures f)
  • ToolButtonFeatures __iand__ (self, int mask)
  • int __int__ (self)
  • ToolButtonFeatures __invert__ (self)
  • ToolButtonFeatures __ior__ (self, ToolButtonFeatures f)
  • ToolButtonFeatures __ixor__ (self, ToolButtonFeatures f)
  • bool __ne__ (self, ToolButtonFeatures f)
  • ToolButtonFeatures __or__ (self, ToolButtonFeatures f)
  • ToolButtonFeatures __or__ (self, int f)
  • ToolButtonFeatures __xor__ (self, ToolButtonFeatures f)
  • ToolButtonFeatures __xor__ (self, int f)

Detailed Description

ToolButtonFeature may be used whenever ToolButtonFeatures is expected.


Method Documentation

ToolButtonFeatures.__init__ (self, ToolButtonFeatures)

ToolButtonFeatures.__init__ (self, int)

ToolButtonFeatures.__init__ (self)

ToolButtonFeatures ToolButtonFeatures.__and__ (self, int mask)

int ToolButtonFeatures.__bool__ (self)

bool ToolButtonFeatures.__eq__ (self, ToolButtonFeatures f)

ToolButtonFeatures ToolButtonFeatures.__iand__ (self, int mask)

int ToolButtonFeatures.__int__ (self)

ToolButtonFeatures ToolButtonFeatures.__invert__ (self)

ToolButtonFeatures ToolButtonFeatures.__ior__ (self, ToolButtonFeatures f)

ToolButtonFeatures ToolButtonFeatures.__ixor__ (self, ToolButtonFeatures f)

bool ToolButtonFeatures.__ne__ (self, ToolButtonFeatures f)

ToolButtonFeatures ToolButtonFeatures.__or__ (self, ToolButtonFeatures f)

ToolButtonFeatures ToolButtonFeatures.__or__ (self, int f)

ToolButtonFeatures ToolButtonFeatures.__xor__ (self, ToolButtonFeatures f)

ToolButtonFeatures ToolButtonFeatures.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptiontoolbutton.html0000644000076500000240000002704712536324513023265 0ustar philstaff00000000000000 QStyleOptionToolButton Class Reference
  Home · All Classes · Modules

QStyleOptionToolButton Class Reference
[QtGui module]

The QStyleOptionToolButton class is used to describe the parameters for drawing a tool button. More...

Inherits QStyleOptionComplex.

Types

Methods

Members


Detailed Description

The QStyleOptionToolButton class is used to describe the parameters for drawing a tool button.

QStyleOptionToolButton contains all the information that QStyle functions need to draw QToolButton.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionToolButton.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionToolButton.Type SO_ToolButton The type of style option provided (SO_ToolButton for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionToolButton.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionToolButton.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.

QStyleOptionToolButton.ToolButtonFeature

Describes the various features that a tool button can have.

Constant Value Description
QStyleOptionToolButton.None 0x00 A normal tool button.
QStyleOptionToolButton.Arrow 0x01 The tool button is an arrow.
QStyleOptionToolButton.Menu 0x04 The tool button has a menu.
QStyleOptionToolButton.PopupDelay 0x08 There is a delay to showing the menu.
QStyleOptionToolButton.HasMenu 0x10 The button has a popup menu.
QStyleOptionToolButton.MenuButtonPopup Menu The button should display an arrow to indicate that a menu is present.

The ToolButtonFeatures type is a typedef for QFlags<ToolButtonFeature>. It stores an OR combination of ToolButtonFeature values.

See also features, QToolButton.toolButtonStyle(), and QToolButton.popupMode().


Method Documentation

QStyleOptionToolButton.__init__ (self)

Constructs a QStyleOptionToolButton, initializing the members variables to their default values.

QStyleOptionToolButton.__init__ (self, QStyleOptionToolButton other)

Constructs a copy of the other style option.


Member Documentation

Qt.ArrowType arrowType

This variable holds the direction of the arrow for the tool button.

This value is only used if features includes Arrow. The default value is Qt.DownArrow.

ToolButtonFeatures features

This variable holds an OR combination of the tool button's features.

The default value is None.

See also ToolButtonFeature.

QFont font

This variable holds the font that is used for the text.

This value is only used if toolButtonStyle is Qt.ToolButtonTextUnderIcon, Qt.ToolButtonTextBesideIcon, or Qt.ToolButtonTextOnly. By default, the application's default font is used.

QIcon icon

This variable holds the icon for the tool button.

The default value is an empty icon, i.e. an icon with neither a pixmap nor a filename.

See also iconSize.

QSize iconSize

This variable holds the size of the icon for the tool button.

The default value is QSize(-1, -1), i.e. an invalid size.

QPoint pos

This variable holds the position of the tool button.

The default value is a null point, i.e. (0, 0)

QString text

This variable holds the text of the tool button.

This value is only used if toolButtonStyle is Qt.ToolButtonTextUnderIcon, Qt.ToolButtonTextBesideIcon, or Qt.ToolButtonTextOnly. The default value is an empty string.

Qt.ToolButtonStyle toolButtonStyle

This variable holds a Qt.ToolButtonStyle value describing the appearance of the tool button.

The default value is Qt.ToolButtonIconOnly.

See also QToolButton.toolButtonStyle().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionviewitem.html0000644000076500000240000002451612536324513022703 0ustar philstaff00000000000000 QStyleOptionViewItem Class Reference
  Home · All Classes · Modules

QStyleOptionViewItem Class Reference
[QtGui module]

The QStyleOptionViewItem class is used to describe the parameters used to draw an item in a view widget. More...

Inherits QStyleOption.

Inherited by QStyleOptionViewItemV2.

Types

Methods

Members


Detailed Description

The QStyleOptionViewItem class is used to describe the parameters used to draw an item in a view widget.

QStyleOptionViewItem contains all the information that QStyle functions need to draw the items for Qt's model/view classes.

For performance reasons, the access to the member variables is direct (i.e., using the . or -> operator). This low-level feel makes the structures straightforward to use and emphasizes that these are simply parameters used by the style functions.

For an example demonstrating how style options can be used, see the Styles example.


Type Documentation

QStyleOptionViewItem.Position

This enum describes the position of the item's decoration.

Constant Value Description
QStyleOptionViewItem.Left 0 On the left of the text.
QStyleOptionViewItem.Right 1 On the right of the text.
QStyleOptionViewItem.Top 2 Above the text.
QStyleOptionViewItem.Bottom 3 Below the text.

See also decorationPosition.

QStyleOptionViewItem.StyleOptionType

This enum is used to hold information about the type of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionViewItem.Type SO_ViewItem The type of style option provided (SO_ViewItem for this class).

The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles.

See also StyleOptionVersion.

QStyleOptionViewItem.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionViewItem.Version 1 1

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionViewItem.__init__ (self)

Constructs a QStyleOptionViewItem, initializing the members variables to their default values.

QStyleOptionViewItem.__init__ (self, QStyleOptionViewItem other)

Constructs a copy of the other style option.


Member Documentation

Qt.Alignment decorationAlignment

This variable holds the alignment of the decoration for the item.

The default value is Qt.AlignLeft.

Position decorationPosition

This variable holds the position of the decoration for the item.

The default value is Left.

See also Position.

QSize decorationSize

This variable holds the size of the decoration for the item.

The default value is QSize(-1, -1), i.e. an invalid size.

See also decorationAlignment and decorationPosition.

Qt.Alignment displayAlignment

This variable holds the alignment of the display value for the item.

The default value is Qt.AlignLeft.

QFont font

This variable holds the font used for the item.

By default, the application's default font is used.

See also QFont.

bool showDecorationSelected

This variable holds whether the decoration should be highlighted on selected items.

If this option is true, the branch and any decorations on selected items should be highlighted, indicating that the item is selected; otherwise, no highlighting is required. The default value is false.

See also QStyle.SH_ItemView_ShowDecorationSelected and QAbstractItemView.

Qt.TextElideMode textElideMode

This variable holds where ellipsis should be added for text that is too long to fit into an item.

The default value is Qt.ElideMiddle, i.e. the ellipsis appears in the middle of the text.

See also Qt.TextElideMode and QStyle.SH_ItemView_EllipsisLocation.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionviewitemv2-viewitemfeatures.html0000644000076500000240000001572412536324513026542 0ustar philstaff00000000000000 QStyleOptionViewItemV2.ViewItemFeatures Class Reference
  Home · All Classes · Modules

QStyleOptionViewItemV2.ViewItemFeatures Class Reference
[QtGui module]

Methods

Special Methods

  • ViewItemFeatures __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, ViewItemFeatures f)
  • ViewItemFeatures __iand__ (self, int mask)
  • int __int__ (self)
  • ViewItemFeatures __invert__ (self)
  • ViewItemFeatures __ior__ (self, ViewItemFeatures f)
  • ViewItemFeatures __ixor__ (self, ViewItemFeatures f)
  • bool __ne__ (self, ViewItemFeatures f)
  • ViewItemFeatures __or__ (self, ViewItemFeatures f)
  • ViewItemFeatures __or__ (self, int f)
  • ViewItemFeatures __xor__ (self, ViewItemFeatures f)
  • ViewItemFeatures __xor__ (self, int f)

Detailed Description

ViewItemFeature may be used whenever ViewItemFeatures is expected.


Method Documentation

ViewItemFeatures.__init__ (self, ViewItemFeatures)

ViewItemFeatures.__init__ (self, int)

ViewItemFeatures.__init__ (self)

ViewItemFeatures ViewItemFeatures.__and__ (self, int mask)

int ViewItemFeatures.__bool__ (self)

bool ViewItemFeatures.__eq__ (self, ViewItemFeatures f)

ViewItemFeatures ViewItemFeatures.__iand__ (self, int mask)

int ViewItemFeatures.__int__ (self)

ViewItemFeatures ViewItemFeatures.__invert__ (self)

ViewItemFeatures ViewItemFeatures.__ior__ (self, ViewItemFeatures f)

ViewItemFeatures ViewItemFeatures.__ixor__ (self, ViewItemFeatures f)

bool ViewItemFeatures.__ne__ (self, ViewItemFeatures f)

ViewItemFeatures ViewItemFeatures.__or__ (self, ViewItemFeatures f)

ViewItemFeatures ViewItemFeatures.__or__ (self, int f)

ViewItemFeatures ViewItemFeatures.__xor__ (self, ViewItemFeatures f)

ViewItemFeatures ViewItemFeatures.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionviewitemv2.html0000644000076500000240000002066712536324513023156 0ustar philstaff00000000000000 QStyleOptionViewItemV2 Class Reference
  Home · All Classes · Modules

QStyleOptionViewItemV2 Class Reference
[QtGui module]

The QStyleOptionViewItemV2 class is used to describe the parameters necessary for drawing a frame in Qt 4.2 or above. More...

Inherits QStyleOptionViewItem.

Inherited by QStyleOptionViewItemV3.

Types

Methods

Members


Detailed Description

The QStyleOptionViewItemV2 class is used to describe the parameters necessary for drawing a frame in Qt 4.2 or above.

QStyleOptionViewItemV2 inherits QStyleOptionViewItem.

An instance of the QStyleOptionViewItemV2 class has type SO_ViewItem and version 2. The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See QStyleOptionFrameV2's detailed description for a discussion of how to handle "V2" classes.


Type Documentation

QStyleOptionViewItemV2.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionViewItemV2.Version 2 2

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.

QStyleOptionViewItemV2.ViewItemFeature

This enum describes the different types of features an item can have.

Constant Value Description
QStyleOptionViewItemV2.None 0x00 Indicates a normal item.
QStyleOptionViewItemV2.WrapText 0x01 Indicates an item with wrapped text.
QStyleOptionViewItemV2.Alternate 0x02 Indicates that the item's background is rendered using alternateBase.
QStyleOptionViewItemV2.HasCheckIndicator 0x04 Indicates that the item has a check state indicator.
QStyleOptionViewItemV2.HasDisplay 0x08 Indicates that the item has a display role.
QStyleOptionViewItemV2.HasDecoration 0x10 Indicates that the item has a decoration role.

The ViewItemFeatures type is a typedef for QFlags<ViewItemFeature>. It stores an OR combination of ViewItemFeature values.


Method Documentation

QStyleOptionViewItemV2.__init__ (self)

Constructs a QStyleOptionViewItemV2 object.

QStyleOptionViewItemV2.__init__ (self, QStyleOptionViewItemV2 other)

Constructs a copy of other.

QStyleOptionViewItemV2.__init__ (self, QStyleOptionViewItem other)

Constructs a QStyleOptionViewItemV2 copy of the other style option which can be either of the QStyleOptionViewItemV2 or QStyleOptionViewItem types.

If the other style option's version is 1, the new style option's ViewItemFeature value is set to QStyleOptionViewItemV2.None. If its version is 2, its ViewItemFeature value is simply copied to the new style option.

See also version.


Member Documentation

ViewItemFeatures features

This variable holds a bitwise OR of the features that describe this view item.

See also ViewItemFeature.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionviewitemv3.html0000644000076500000240000001352012536324513023145 0ustar philstaff00000000000000 QStyleOptionViewItemV3 Class Reference
  Home · All Classes · Modules

QStyleOptionViewItemV3 Class Reference
[QtGui module]

The QStyleOptionViewItemV3 class is used to describe the parameters necessary for drawing a frame in Qt 4.3 or above. More...

Inherits QStyleOptionViewItemV2.

Inherited by QStyleOptionViewItemV4.

Types

Methods

Members

Static Members


Detailed Description

The QStyleOptionViewItemV3 class is used to describe the parameters necessary for drawing a frame in Qt 4.3 or above.

QStyleOptionViewItemV3 inherits QStyleOptionViewItem.

An instance of the QStyleOptionViewItemV3 class has type SO_ViewItem and version 3. The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See QStyleOptionFrameV2's detailed description for a discussion of how to handle "V2" and other versioned classes.


Type Documentation

QStyleOptionViewItemV3.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionViewItemV3.Version 3 3

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.


Method Documentation

QStyleOptionViewItemV3.__init__ (self)

Constructs a QStyleOptionViewItemV3 object.

QStyleOptionViewItemV3.__init__ (self, QStyleOptionViewItemV3 other)

Constructs a copy of other.

QStyleOptionViewItemV3.__init__ (self, QStyleOptionViewItem other)

Constructs a copy of other.


Member Documentation

QLocale locale

QWidget widget

This member should be treated as a constant.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstyleoptionviewitemv4.html0000644000076500000240000002202012536324513023141 0ustar philstaff00000000000000 QStyleOptionViewItemV4 Class Reference
  Home · All Classes · Modules

QStyleOptionViewItemV4 Class Reference
[QtGui module]

The QStyleOptionViewItemV4 class is used to describe the parameters necessary for drawing a frame in Qt 4.4 or above. More...

Inherits QStyleOptionViewItemV3.

Types

Methods

Members


Detailed Description

The QStyleOptionViewItemV4 class is used to describe the parameters necessary for drawing a frame in Qt 4.4 or above.

QStyleOptionViewItemV4 inherits QStyleOptionViewItemV3.

An instance of the QStyleOptionViewItemV4 class has type SO_ViewItem and version 4. The type is used internally by QStyleOption, its subclasses, and qstyleoption_cast() to determine the type of style option. In general you do not need to worry about this unless you want to create your own QStyleOption subclass and your own styles. The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See QStyleOptionViewItemV3's detailed description for a discussion of how to handle "V3" classes.


Type Documentation

QStyleOptionViewItemV4.StyleOptionVersion

This enum is used to hold information about the version of the style option, and is defined for each QStyleOption subclass.

Constant Value Description
QStyleOptionViewItemV4.Version 4 4

The version is used by QStyleOption subclasses to implement extensions without breaking compatibility. If you use qstyleoption_cast(), you normally do not need to check it.

See also StyleOptionType.

QStyleOptionViewItemV4.ViewItemPosition

This enum is used to represent the placement of the item on a row. This can be used to draw items differently depending on their placement, for example by putting rounded edges at the beginning and end, and straight edges in between.

Constant Value Description
QStyleOptionViewItemV4.Invalid 0 The ViewItemPosition is unknown and should be disregarded.
QStyleOptionViewItemV4.Beginning 1 The item appears at the beginning of the row.
QStyleOptionViewItemV4.Middle 2 The item appears in the middle of the row.
QStyleOptionViewItemV4.End 3 The item appears at the end of the row.
QStyleOptionViewItemV4.OnlyOne 4 The item is the only one on the row, and is therefore both at the beginning and the end.

Method Documentation

QStyleOptionViewItemV4.__init__ (self)

Constructs a QStyleOptionViewItemV4 object.

QStyleOptionViewItemV4.__init__ (self, QStyleOptionViewItemV4 other)

Constructs a copy of other.

QStyleOptionViewItemV4.__init__ (self, QStyleOptionViewItem other)

Constructs a QStyleOptionViewItemV4 copy of the other style option which can be either of the QStyleOptionViewItemV3 or QStyleOptionViewItem types.

See also version.


Member Documentation

QBrush backgroundBrush

The QBrush that should be used to paint the view items background.

Qt.CheckState checkState

If this view item is checkable, i.e., ViewItemFeature.HasCheckIndicator is true, checkState is true if the item is checked; otherwise, it is false.

QIcon icon

The icon (if any) to be drawn in the view item.

QModelIndex index

The model index that is to be drawn.

QString text

The text (if any) to be drawn in the view item.

ViewItemPosition viewItemPosition

Gives the position of this view item relative to other items. See the ViewItemPosition enum for the details.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qstylepainter.html0000644000076500000240000002604712536324513021264 0ustar philstaff00000000000000 QStylePainter Class Reference
  Home · All Classes · Modules

QStylePainter Class Reference
[QtGui module]

The QStylePainter class is a convenience class for drawing QStyle elements inside a widget. More...

Inherits QPainter.

Methods

  • __init__ (self)
  • __init__ (self, QWidget w)
  • __init__ (self, QPaintDevice pd, QWidget w)
  • bool begin (self, QWidget w)
  • bool begin (self, QPaintDevice pd, QWidget w)
  • drawComplexControl (self, QStyle.ComplexControl cc, QStyleOptionComplex opt)
  • drawControl (self, QStyle.ControlElement ce, QStyleOption opt)
  • drawItemPixmap (self, QRect r, int flags, QPixmap pixmap)
  • drawItemText (self, QRect rect, int flags, QPalette pal, bool enabled, QString text, QPalette.ColorRole textRole = QPalette.NoRole)
  • drawPrimitive (self, QStyle.PrimitiveElement pe, QStyleOption opt)
  • QStyle style (self)

Detailed Description

The QStylePainter class is a convenience class for drawing QStyle elements inside a widget.

QStylePainter extends QPainter with a set of high-level draw...() functions implemented on top of QStyle's API. The advantage of using QStylePainter is that the parameter lists get considerably shorter. Whereas a QStyle object must be able to draw on any widget using any painter (because the application normally has one QStyle object shared by all widget), a QStylePainter is initialized with a widget, eliminating the need to specify the QWidget, the QPainter, and the QStyle for every function call.

Example using QStyle directly:

 void MyWidget.paintEvent(QPaintEvent * /* event */)
 {
     QPainter painter(this);

     QStyleOptionFocusRect option;
     option.initFrom(this);
     option.backgroundColor = palette().color(QPalette.Background);

     style()->drawPrimitive(QStyle.PE_FrameFocusRect, &option, &painter, this);
 }

Example using QStylePainter:

 void MyWidget.paintEvent(QPaintEvent * /* event */)
 {
     QStylePainter painter(this);

     QStyleOptionFocusRect option;
     option.initFrom(this);
     option.backgroundColor = palette().color(QPalette.Background);

     painter.drawPrimitive(QStyle.PE_FrameFocusRect, option);
 }

Method Documentation

QStylePainter.__init__ (self)

Constructs a QStylePainter.

QStylePainter.__init__ (self, QWidget w)

Construct a QStylePainter using widget widget for its paint device.

QStylePainter.__init__ (self, QPaintDevice pd, QWidget w)

Construct a QStylePainter using pd for its paint device, and attributes from widget.

bool QStylePainter.begin (self, QWidget w)

Begin painting operations on the specified widget. Returns true if the painter is ready to use; otherwise returns false.

This is automatically called by the constructor that takes a QWidget.

bool QStylePainter.begin (self, QPaintDevice pd, QWidget w)

This is an overloaded function.

Begin painting operations on paint device pd as if it was widget.

This is automatically called by the constructor that takes a QPaintDevice and a QWidget.

QStylePainter.drawComplexControl (self, QStyle.ComplexControl cc, QStyleOptionComplex opt)

Use the widget's style to draw a complex control cc specified by the QStyleOptionComplex option.

See also QStyle.drawComplexControl().

QStylePainter.drawControl (self, QStyle.ControlElement ce, QStyleOption opt)

Use the widget's style to draw a control element ce specified by QStyleOption option.

See also QStyle.drawControl().

QStylePainter.drawItemPixmap (self, QRect r, int flags, QPixmap pixmap)

Draws the pixmap in rectangle rect. The pixmap is aligned according to flags.

See also QStyle.drawItemPixmap() and Qt.Alignment.

QStylePainter.drawItemText (self, QRect rect, int flags, QPalette pal, bool enabled, QString text, QPalette.ColorRole textRole = QPalette.NoRole)

Draws the text in rectangle rect and palette pal. The text is aligned and wrapped according to flags.

The pen color is specified with textRole. The enabled bool indicates whether or not the item is enabled; when reimplementing this bool should influence how the item is drawn.

See also QStyle.drawItemText() and Qt.Alignment.

QStylePainter.drawPrimitive (self, QStyle.PrimitiveElement pe, QStyleOption opt)

Use the widget's style to draw a primitive element pe specified by QStyleOption option.

See also QStyle.drawPrimitive().

QStyle QStylePainter.style (self)

Return the current style used by the QStylePainter.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsvggenerator.html0000644000076500000240000002275612536324522021252 0ustar philstaff00000000000000 QSvgGenerator Class Reference
  Home · All Classes · Modules

QSvgGenerator Class Reference
[QtSvg module]

The QSvgGenerator class provides a paint device that is used to create SVG drawings. More...

Inherits QPaintDevice.

Methods


Detailed Description

The QSvgGenerator class provides a paint device that is used to create SVG drawings.

This paint device represents a Scalable Vector Graphics (SVG) drawing. Like QPrinter, it is designed as a write-only device that generates output in a specific format.

To write an SVG file, you first need to configure the output by setting the fileName or outputDevice properties. It is usually necessary to specify the size of the drawing by setting the size property, and in some cases where the drawing will be included in another, the viewBox property also needs to be set.

     QSvgGenerator generator;
     generator.setFileName(path);
     generator.setSize(QSize(200, 200));
     generator.setViewBox(QRect(0, 0, 200, 200));
     generator.setTitle(tr("SVG Generator Example Drawing"));
     generator.setDescription(tr("An SVG drawing created by the SVG Generator "
                                 "Example provided with Qt."));

Other meta-data can be specified by setting the title, description and resolution properties.

As with other QPaintDevice subclasses, a QPainter object is used to paint onto an instance of this class:

     QPainter painter;
     painter.begin(&generator);
     ...
     painter.end();

Painting is performed in the same way as for any other paint device. However, it is necessary to use the QPainter.begin() and end() to explicitly begin and end painting on the device.

The SVG Generator Example shows how the same painting commands can be used for painting a widget and writing an SVG file.


Method Documentation

QSvgGenerator.__init__ (self)

Constructs a new generator.

QString QSvgGenerator.description (self)

QString QSvgGenerator.fileName (self)

int QSvgGenerator.metric (self, QPaintDevice.PaintDeviceMetric metric)

Reimplemented from QPaintDevice.metric().

QIODevice QSvgGenerator.outputDevice (self)

QPaintEngine QSvgGenerator.paintEngine (self)

Reimplemented from QPaintDevice.paintEngine().

Returns the paint engine used to render graphics to be converted to SVG format information.

int QSvgGenerator.resolution (self)

QSvgGenerator.setDescription (self, QString description)

QSvgGenerator.setFileName (self, QString fileName)

QSvgGenerator.setOutputDevice (self, QIODevice outputDevice)

QSvgGenerator.setResolution (self, int resolution)

QSvgGenerator.setSize (self, QSize size)

QSvgGenerator.setTitle (self, QString title)

QSvgGenerator.setViewBox (self, QRect viewBox)

QSvgGenerator.setViewBox (self, QRectF viewBox)

QSize QSvgGenerator.size (self)

QString QSvgGenerator.title (self)

QRect QSvgGenerator.viewBox (self)

Returns viewBoxF().toRect().

This function was introduced in Qt 4.5.

See also setViewBox() and viewBoxF().

QRectF QSvgGenerator.viewBoxF (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsvgrenderer.html0000644000076500000240000003711512536324522021065 0ustar philstaff00000000000000 QSvgRenderer Class Reference
  Home · All Classes · Modules

QSvgRenderer Class Reference
[QtSvg module]

The QSvgRenderer class is used to draw the contents of SVG files onto paint devices. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QSvgRenderer class is used to draw the contents of SVG files onto paint devices.

Using QSvgRenderer, Scalable Vector Graphics (SVG) can be rendered onto any QPaintDevice subclass, including QWidget, QImage, and QGLWidget.

QSvgRenderer provides an API that supports basic features of SVG rendering, such as loading and rendering of static drawings, and more interactive features like animation. Since the rendering is performed using QPainter, SVG drawings can be rendered on any subclass of QPaintDevice.

SVG drawings are either loaded when an QSvgRenderer is constructed, or loaded later using the load() functions. Data is either supplied directly as serialized XML, or indirectly using a file name. If a valid file has been loaded, either when the renderer is constructed or at some later time, isValid() returns true; otherwise it returns false. QSvgRenderer provides the render() slot to render the current document, or the current frame of an animated document, using a given painter.

The defaultSize() function provides information about the amount of space that is required to render the currently loaded SVG file. This is useful for paint devices, such as QWidget, that often need to supply a size hint to their parent layout. The default size of a drawing may differ from its visible area, found using the viewBox property.

Animated SVG drawings are supported, and can be controlled with a simple collection of functions and properties:

  • The animated() function indicates whether a drawing contains animation information.
  • The framesPerSecond property contains the rate at which the animation plays.

Finally, the QSvgRenderer class provides the repaintNeeded() signal which is emitted whenever the rendering of the document needs to be updated.


Method Documentation

QSvgRenderer.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new renderer with the given parent.

QSvgRenderer.__init__ (self, QString filename, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new renderer with the given parent and loads the contents of the SVG file with the specified filename.

QSvgRenderer.__init__ (self, QByteArray contents, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new renderer with the given parent and loads the SVG data from the byte array specified by contents.

QSvgRenderer.__init__ (self, QXmlStreamReader contents, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new renderer with the given parent and loads the SVG data using the stream reader specified by contents.

This function was introduced in Qt 4.5.

bool QSvgRenderer.animated (self)

Returns true if the current document contains animated elements; otherwise returns false.

See also framesPerSecond().

int QSvgRenderer.animationDuration (self)

QRectF QSvgRenderer.boundsOnElement (self, QString id)

Returns bounding rectangle of the item with the given id. The transformation matrix of parent elements is not affecting the bounds of the element.

This function was introduced in Qt 4.2.

See also matrixForElement().

int QSvgRenderer.currentFrame (self)

QSize QSvgRenderer.defaultSize (self)

Returns the default size of the document contents.

bool QSvgRenderer.elementExists (self, QString id)

Returns true if the element with the given id exists in the currently parsed SVG file and is a renderable element.

Note: this method returns true only for elements that can be rendered. Which implies that elements that are considered part of the fill/stroke style properties, e.g. radialGradients even tough marked with "id" attributes will not be found by this method.

This function was introduced in Qt 4.2.

int QSvgRenderer.framesPerSecond (self)

bool QSvgRenderer.isValid (self)

Returns true if there is a valid current document; otherwise returns false.

bool QSvgRenderer.load (self, QString filename)

This method is also a Qt slot with the C++ signature bool load(const QString&).

Loads the SVG file specified by filename, returning true if the content was successfully parsed; otherwise returns false.

bool QSvgRenderer.load (self, QByteArray contents)

This method is also a Qt slot with the C++ signature bool load(const QByteArray&).

Loads the specified SVG format contents, returning true if the content was successfully parsed; otherwise returns false.

bool QSvgRenderer.load (self, QXmlStreamReader contents)

This method is also a Qt slot with the C++ signature bool load(QXmlStreamReader*).

Loads the specified SVG in contents, returning true if the content was successfully parsed; otherwise returns false.

The reader will be used from where it currently is positioned. If contents is null, behavior is undefined.

This function was introduced in Qt 4.5.

QMatrix QSvgRenderer.matrixForElement (self, QString id)

Returns the transformation matrix for the element with the given id. The matrix is a product of the transformation of the element's parents. The transformation of the element itself is not included.

To find the bounding rectangle of the element in logical coordinates, you can apply the matrix on the rectangle returned from boundsOnElement().

This function was introduced in Qt 4.2.

See also boundsOnElement().

QSvgRenderer.render (self, QPainter p)

This method is also a Qt slot with the C++ signature void render(QPainter*).

Renders the current document, or the current frame of an animated document, using the given painter.

QSvgRenderer.render (self, QPainter p, QRectF bounds)

This method is also a Qt slot with the C++ signature void render(QPainter*,const QRectF&).

Renders the current document, or the current frame of an animated document, using the given painter on the specified bounds within the painter. If the bounding rectangle is not specified the SVG file is mapped to the whole paint device.

QSvgRenderer.render (self, QPainter painter, QString elementId, QRectF bounds = QRectF())

This method is also a Qt slot with the C++ signature void render(QPainter*,const QString&,const QRectF& = QRectF()).

Renders the given element with elementId using the given painter on the specified bounds. If the bounding rectangle is not specified the SVG element is mapped to the whole paint device.

QSvgRenderer.setCurrentFrame (self, int)

QSvgRenderer.setFramesPerSecond (self, int num)

QSvgRenderer.setViewBox (self, QRect viewbox)

QSvgRenderer.setViewBox (self, QRectF viewbox)

QRect QSvgRenderer.viewBox (self)

Returns viewBoxF().toRect().

See also setViewBox() and viewBoxF().

QRectF QSvgRenderer.viewBoxF (self)


Qt Signal Documentation

void repaintNeeded ()

This is the default overload of this signal.

This signal is emitted whenever the rendering of the document needs to be updated, usually for the purposes of animation.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsvgwidget.html0000644000076500000240000001421012536324522020531 0ustar philstaff00000000000000 QSvgWidget Class Reference
  Home · All Classes · Modules

QSvgWidget Class Reference
[
QtSvg module]

The QSvgWidget class provides a widget that is used to display the contents of Scalable Vector Graphics (SVG) files. More...

Inherits QWidget.

Methods


Detailed Description

The QSvgWidget class provides a widget that is used to display the contents of Scalable Vector Graphics (SVG) files.

This class enables developers to display SVG drawings alongside standard widgets, and is used in much the same way as QLabel is used for displaying text and bitmap images.

Since QSvgWidget is a subclass of QWidget, SVG drawings are rendered using the properties of the display. More control can be exercised over the rendering process with the QSvgRenderer class, as this can be used to paint onto other paint devices, such as QImage and QGLWidget. The renderer used by the widget can be obtained with the renderer() function.

Each QSvgWidget can be constructed with the file name of a SVG file, or they can be constructed without a specific file to render and one can be supplied later. The load() functions provide two different ways to load an SVG file: they accept either the file name of an SVG file or a QByteArray containing the serialized XML representation of an SVG file.

By default, the widget provides a size hint to reflect the size of the drawing that it displays. If no data has been loaded, the widget provides the default QWidget size hint. Subclass this class and reimplement sizeHint() if you need to customize this behavior.


Method Documentation

QSvgWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new SVG display widget with the given parent.

QSvgWidget.__init__ (self, QString file, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new SVG display widget with the given parent and loads the contents of the specified file.

QSvgWidget.load (self, QString file)

This method is also a Qt slot with the C++ signature void load(const QString&).

Loads the contents of the specified SVG file and updates the widget.

QSvgWidget.load (self, QByteArray contents)

This method is also a Qt slot with the C++ signature void load(const QByteArray&).

Loads the specified SVG format contents and updates the widget.

QSvgWidget.paintEvent (self, QPaintEvent event)

Reimplemented from QWidget.paintEvent().

QSvgRenderer QSvgWidget.renderer (self)

Returns the renderer used to display the contents of the widget.

QSize QSvgWidget.sizeHint (self)

Reimplemented from QWidget.sizeHint().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qswipegesture.html0000644000076500000240000001172012536324504021257 0ustar philstaff00000000000000 QSwipeGesture Class Reference
  Home · All Classes · Modules

QSwipeGesture Class Reference
[QtGui module]

The QSwipeGesture class describes a swipe gesture made by the user. More...

Inherits QGesture.

Types

Methods


Detailed Description

The QSwipeGesture class describes a swipe gesture made by the user.

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures Programming document.


Type Documentation

QSwipeGesture.SwipeDirection

This enum describes the possible directions for the gesture's motion along the horizontal and vertical axes.

Constant Value Description
QSwipeGesture.NoDirection 0 The gesture had no motion associated with it on a particular axis.
QSwipeGesture.Left 1 The gesture involved a horizontal motion to the left.
QSwipeGesture.Right 2 The gesture involved a horizontal motion to the right.
QSwipeGesture.Up 3 The gesture involved an upward vertical motion.
QSwipeGesture.Down 4 The gesture involved a downward vertical motion.

Method Documentation

QSwipeGesture.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

SwipeDirection QSwipeGesture.horizontalDirection (self)

QSwipeGesture.setSwipeAngle (self, float value)

float QSwipeGesture.swipeAngle (self)

SwipeDirection QSwipeGesture.verticalDirection (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsyntaxhighlighter.html0000644000076500000240000006630212536324514022305 0ustar philstaff00000000000000 QSyntaxHighlighter Class Reference
  Home · All Classes · Modules

QSyntaxHighlighter Class Reference
[QtGui module]

The QSyntaxHighlighter class allows you to define syntax highlighting rules, and in addition you can use the class to query a document's current formatting or user data. More...

Inherits QObject.

Methods


Detailed Description

The QSyntaxHighlighter class allows you to define syntax highlighting rules, and in addition you can use the class to query a document's current formatting or user data.

The QSyntaxHighlighter class is a base class for implementing QTextEdit syntax highlighters. A syntax highligher automatically highlights parts of the text in a QTextEdit, or more generally in a QTextDocument. Syntax highlighters are often used when the user is entering text in a specific format (for example source code) and help the user to read the text and identify syntax errors.

To provide your own syntax highlighting, you must subclass QSyntaxHighlighter and reimplement highlightBlock().

When you create an instance of your QSyntaxHighlighter subclass, pass it the QTextEdit or QTextDocument that you want the syntax highlighting to be applied to. For example:

 QTextEdit *editor = new QTextEdit;
 MyHighlighter *highlighter = new MyHighlighter(editor->document());

After this your highlightBlock() function will be called automatically whenever necessary. Use your highlightBlock() function to apply formatting (e.g. setting the font and color) to the text that is passed to it. QSyntaxHighlighter provides the setFormat() function which applies a given QTextCharFormat on the current text block. For example:

 void MyHighlighter.highlightBlock(const QString &text)
 {
     QTextCharFormat myClassFormat;
     myClassFormat.setFontWeight(QFont.Bold);
     myClassFormat.setForeground(Qt.darkMagenta);
     QString pattern = "\\bMy[A-Za-z]+\\b";

     QRegExp expression(pattern);
     int index = text.indexOf(expression);
     while (index >= 0) {
         int length = expression.matchedLength();
         setFormat(index, length, myClassFormat);
         index = text.indexOf(expression, index + length);
     }
 }

Some syntaxes can have constructs that span several text blocks. For example, a C++ syntax highlighter should be able to cope with /*...*/ multiline comments. To deal with these cases it is necessary to know the end state of the previous text block (e.g. "in comment").

Inside your highlightBlock() implementation you can query the end state of the previous text block using the previousBlockState() function. After parsing the block you can save the last state using setCurrentBlockState().

The currentBlockState() and previousBlockState() functions return an int value. If no state is set, the returned value is -1. You can designate any other value to identify any given state using the setCurrentBlockState() function. Once the state is set the QTextBlock keeps that value until it is set set again or until the corresponding paragraph of text is deleted.

For example, if you're writing a simple C++ syntax highlighter, you might designate 1 to signify "in comment":

 QTextCharFormat multiLineCommentFormat;
 multiLineCommentFormat.setForeground(Qt.red);

 QRegExp startExpression("/\\*");
 QRegExp endExpression("\\*/");

 setCurrentBlockState(0);

 int startIndex = 0;
 if (previousBlockState() != 1)
     startIndex = text.indexOf(startExpression);

 while (startIndex >= 0) {
    int endIndex = text.indexOf(endExpression, startIndex);
    int commentLength;
    if (endIndex == -1) {
        setCurrentBlockState(1);
        commentLength = text.length() - startIndex;
    } else {
        commentLength = endIndex - startIndex
                        + endExpression.matchedLength();
    }
    setFormat(startIndex, commentLength, multiLineCommentFormat);
    startIndex = text.indexOf(startExpression,
                              startIndex + commentLength);
 }

In the example above, we first set the current block state to 0. Then, if the previous block ended within a comment, we higlight from the beginning of the current block (startIndex = 0). Otherwise, we search for the given start expression. If the specified end expression cannot be found in the text block, we change the current block state by calling setCurrentBlockState(), and make sure that the rest of the block is higlighted.

In addition you can query the current formatting and user data using the format() and currentBlockUserData() functions respectively. You can also attach user data to the current text block using the setCurrentBlockUserData() function. QTextBlockUserData can be used to store custom settings. In the case of syntax highlighting, it is in particular interesting as cache storage for information that you may figure out while parsing the paragraph's text. For an example, see the setCurrentBlockUserData() documentation.


Method Documentation

QSyntaxHighlighter.__init__ (self, QTextEdit parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSyntaxHighlighter with the given parent.

QSyntaxHighlighter.__init__ (self, QTextDocument parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSyntaxHighlighter and installs it on parent. The specified QTextDocument also becomes the owner of the QSyntaxHighlighter.

QSyntaxHighlighter.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSyntaxHighlighter and installs it on parent 's QTextDocument. The specified QTextEdit also becomes the owner of the QSyntaxHighlighter.

QTextBlock QSyntaxHighlighter.currentBlock (self)

Returns the current text block.

This function was introduced in Qt 4.4.

int QSyntaxHighlighter.currentBlockState (self)

Returns the state of the current text block. If no value is set, the returned value is -1.

See also setCurrentBlockState().

QTextBlockUserData QSyntaxHighlighter.currentBlockUserData (self)

Returns the QTextBlockUserData object previously attached to the current text block.

See also QTextBlock.userData() and setCurrentBlockUserData().

QTextDocument QSyntaxHighlighter.document (self)

Returns the QTextDocument on which this syntax highlighter is installed.

See also setDocument().

QTextCharFormat QSyntaxHighlighter.format (self, int pos)

Returns the format at position inside the syntax highlighter's current text block.

See also setFormat().

QSyntaxHighlighter.highlightBlock (self, QString text)

This method is abstract and should be reimplemented in any sub-class.

Highlights the given text block. This function is called when necessary by the rich text engine, i.e. on text blocks which have changed.

To provide your own syntax highlighting, you must subclass QSyntaxHighlighter and reimplement highlightBlock(). In your reimplementation you should parse the block's text and call setFormat() as often as necessary to apply any font and color changes that you require. For example:

 void MyHighlighter.highlightBlock(const QString &text)
 {
     QTextCharFormat myClassFormat;
     myClassFormat.setFontWeight(QFont.Bold);
     myClassFormat.setForeground(Qt.darkMagenta);
     QString pattern = "\\bMy[A-Za-z]+\\b";

     QRegExp expression(pattern);
     int index = text.indexOf(expression);
     while (index >= 0) {
         int length = expression.matchedLength();
         setFormat(index, length, myClassFormat);
         index = text.indexOf(expression, index + length);
      }
  }

Some syntaxes can have constructs that span several text blocks. For example, a C++ syntax highlighter should be able to cope with /*...*/ multiline comments. To deal with these cases it is necessary to know the end state of the previous text block (e.g. "in comment").

Inside your highlightBlock() implementation you can query the end state of the previous text block using the previousBlockState() function. After parsing the block you can save the last state using setCurrentBlockState().

The currentBlockState() and previousBlockState() functions return an int value. If no state is set, the returned value is -1. You can designate any other value to identify any given state using the setCurrentBlockState() function. Once the state is set the QTextBlock keeps that value until it is set set again or until the corresponding paragraph of text gets deleted.

For example, if you're writing a simple C++ syntax highlighter, you might designate 1 to signify "in comment". For a text block that ended in the middle of a comment you'd set 1 using setCurrentBlockState, and for other paragraphs you'd set 0. In your parsing code if the return value of previousBlockState() is 1, you would highlight the text as a C++ comment until you reached the closing */.

See also previousBlockState(), setFormat(), and setCurrentBlockState().

int QSyntaxHighlighter.previousBlockState (self)

Returns the end state of the text block previous to the syntax highlighter's current block. If no value was previously set, the returned value is -1.

See also highlightBlock() and setCurrentBlockState().

QSyntaxHighlighter.rehighlight (self)

This method is also a Qt slot with the C++ signature void rehighlight().

Reapplies the highlighting to the whole document.

This function was introduced in Qt 4.2.

See also rehighlightBlock().

QSyntaxHighlighter.rehighlightBlock (self, QTextBlock block)

This method is also a Qt slot with the C++ signature void rehighlightBlock(const QTextBlock&).

Reapplies the highlighting to the given QTextBlock block.

This function was introduced in Qt 4.6.

See also rehighlight().

QSyntaxHighlighter.setCurrentBlockState (self, int newState)

Sets the state of the current text block to newState.

See also currentBlockState() and highlightBlock().

QSyntaxHighlighter.setCurrentBlockUserData (self, QTextBlockUserData data)

Attaches the given data to the current text block. The ownership is passed to the underlying text document, i.e. the provided QTextBlockUserData object will be deleted if the corresponding text block gets deleted.

QTextBlockUserData can be used to store custom settings. In the case of syntax highlighting, it is in particular interesting as cache storage for information that you may figure out while parsing the paragraph's text.

For example while parsing the text, you can keep track of parenthesis characters that you encounter ('{[(' and the like), and store their relative position and the actual QChar in a simple class derived from QTextBlockUserData:

 struct ParenthesisInfo
 {
     QChar char;
     int position;
 };

 struct BlockData : public QTextBlockUserData
 {
     QVector<ParenthesisInfo> parentheses;
 };

During cursor navigation in the associated editor, you can ask the current QTextBlock (retrieved using the QTextCursor.block() function) if it has a user data object set and cast it to your BlockData object. Then you can check if the current cursor position matches with a previously recorded parenthesis position, and, depending on the type of parenthesis (opening or closing), find the next opening or closing parenthesis on the same level.

In this way you can do a visual parenthesis matching and highlight from the current cursor position to the matching parenthesis. That makes it easier to spot a missing parenthesis in your code and to find where a corresponding opening/closing parenthesis is when editing parenthesis intensive code.

See also currentBlockUserData() and QTextBlock.setUserData().

QSyntaxHighlighter.setDocument (self, QTextDocument doc)

Installs the syntax highlighter on the given QTextDocument doc. A QSyntaxHighlighter can only be used with one document at a time.

See also document().

QSyntaxHighlighter.setFormat (self, int start, int count, QTextCharFormat format)

This function is applied to the syntax highlighter's current text block (i.e. the text that is passed to the highlightBlock() function).

The specified format is applied to the text from the start position for a length of count characters (if count is 0, nothing is done). The formatting properties set in format are merged at display time with the formatting information stored directly in the document, for example as previously set with QTextCursor's functions. Note that the document itself remains unmodified by the format set through this function.

See also format() and highlightBlock().

QSyntaxHighlighter.setFormat (self, int start, int count, QColor color)

This is an overloaded function.

The specified color is applied to the current text block from the start position for a length of count characters.

The other attributes of the current text block, e.g. the font and background color, are reset to default values.

See also format() and highlightBlock().

QSyntaxHighlighter.setFormat (self, int start, int count, QFont font)

This is an overloaded function.

The specified font is applied to the current text block from the start position for a length of count characters.

The other attributes of the current text block, e.g. the font and background color, are reset to default values.

See also format() and highlightBlock().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsysinfo.html0000644000076500000240000001122512536324470020225 0ustar philstaff00000000000000 QSysInfo Class Reference
  Home · All Classes · Modules

QSysInfo Class Reference
[QtCore module]

The QSysInfo class provides information about the system. More...

Types

  • enum Endian { BigEndian, LittleEndian, ByteOrder }
  • enum Sizes { WordSize }

Methods


Detailed Description

The QSysInfo class provides information about the system.

  • WordSize specifies the size of a pointer for the platform on which the application is compiled.
  • ByteOrder specifies whether the platform is big-endian or little-endian.
  • WindowsVersion specifies the version of the Windows operating system on which the application is run (Windows only)
  • MacintoshVersion specifies the version of the Macintosh operating system on which the application is run (Mac only).

Some constants are defined only on certain platforms. You can use the preprocessor symbols Q_WS_WIN and Q_WS_MAC to test that the application is compiled under Windows or Mac.


Type Documentation

QSysInfo.Endian

Constant Value Description
QSysInfo.BigEndian 0 Big-endian byte order (also called Network byte order)
QSysInfo.LittleEndian 1 Little-endian byte order
QSysInfo.ByteOrder <platform-dependent> Equals BigEndian or LittleEndian, depending on the platform's byte order.

QSysInfo.Sizes

This enum provides platform-specific information about the sizes of data structures used by the underlying architecture.

Constant Value Description
QSysInfo.WordSize ( sizeof( void * ) <<3 ) The size in bits of a pointer for the platform on which the application is compiled (32 or 64).

Method Documentation

QSysInfo.__init__ (self)

QSysInfo.__init__ (self, QSysInfo)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsystemlocale.html0000644000076500000240000003214312536324473021244 0ustar philstaff00000000000000 QSystemLocale Class Reference
  Home · All Classes · Modules

QSystemLocale Class Reference
[QtCore module]

The QSystemLocale class can be used to finetune the system locale of the user. More...

Types

  • enum QueryType { LanguageId, ScriptId, CountryId, DecimalPoint, ..., NativeCountryName }

Methods


Detailed Description

The QSystemLocale class can be used to finetune the system locale of the user.

Warning: This class is only useful in very rare cases. Usually QLocale offers all the functionality required for application development.

QSystemLocale allows to override the values provided by the system locale (QLocale.system()).


Type Documentation

QSystemLocale.QueryType

Specifies the type of information queried by query(). For each value the type of information to return from the query() method is listed.

Constant Value Description
QSystemLocale.LanguageId 0 a uint specifying the language.
QSystemLocale.ScriptId 33 a uint specifying the script.
QSystemLocale.CountryId 1 a uint specifying the country.
QSystemLocale.DecimalPoint 2 a QString specifying the decimal point.
QSystemLocale.GroupSeparator 3 a QString specifying the group separator.
QSystemLocale.ZeroDigit 4 a QString specifying the zero digit.
QSystemLocale.NegativeSign 5 a QString specifying the minus sign.
QSystemLocale.PositiveSign 23 a QString specifying the plus sign.
QSystemLocale.DateFormatLong 6 a QString specifying the long date format
QSystemLocale.DateFormatShort 7 a QString specifying the short date format
QSystemLocale.TimeFormatLong 8 a QString specifying the long time format
QSystemLocale.TimeFormatShort 9 a QString specifying the short time format
QSystemLocale.DayNameLong 10 a QString specifying the name of a weekday. the in variant contains an integer between 1 and 7 (Monday - Sunday)
QSystemLocale.DayNameShort 11 a QString specifying the short name of a weekday. the in variant contains an integer between 1 and 7 (Monday - Sunday)
QSystemLocale.MonthNameLong 12 a QString specifying the name of a month. the in variant contains an integer between 1 and 12
QSystemLocale.MonthNameShort 13 a QString specifying the short name of a month. the in variant contains an integer between 1 and 12
QSystemLocale.DateToStringLong 14 converts the QDate stored in the in variant to a QString using the long date format
QSystemLocale.DateToStringShort 15 converts the QDate stored in the in variant to a QString using the short date format
QSystemLocale.TimeToStringLong 16 converts the QTime stored in the in variant to a QString using the long time format
QSystemLocale.TimeToStringShort 17 converts the QTime stored in the in variant to a QString using the short time format
QSystemLocale.DateTimeFormatLong 18 a QString specifying the long date time format
QSystemLocale.DateTimeFormatShort 19 a QString specifying the short date time format
QSystemLocale.DateTimeToStringLong 20 converts the QDateTime in the in variant to a QString using the long datetime format
QSystemLocale.DateTimeToStringShort 21 converts the QDateTime in the in variant to a QString using the short datetime format
QSystemLocale.MeasurementSystem 22 a QLocale.MeasurementSystem enum specifying the measurement system
QSystemLocale.AMText 24 a string that represents the system AM designator associated with a 12-hour clock.
QSystemLocale.PMText 25 a string that represents the system PM designator associated with a 12-hour clock.
QSystemLocale.FirstDayOfWeek 26 a Qt.DayOfWeek enum specifiying the first day of the week
QSystemLocale.CurrencySymbol 28 a string that represents a currency in a format QLocale.CurrencyFormat.
QSystemLocale.CurrencyToString 29 a localized string representation of a number with a currency symbol. Converts a QSystemLocale.CurrencyToStringArgument stored in the in variant to a QString.
QSystemLocale.UILanguages 30 a list of strings representing locale names that could be used for UI translation.
QSystemLocale.StringToStandardQuotation 31 a QString containing a quoted version of the string ref stored in the in variant using standard quotes.
QSystemLocale.StringToAlternateQuotation 32 a QString containing a quoted version of the string ref stored in the in variant using alternate quotes.
QSystemLocale.Weekdays 27 a QList<Qt.DayOfWeek> specifying the regular weekdays
QSystemLocale.LocaleChanged 35 this type is queried whenever the system locale is changed.
QSystemLocale.ListToSeparatedString 34 a string that represents a join of a given QStringList with a locale-defined separator.
QSystemLocale.NativeLanguageName 36 a string that represents the name of the native language.
QSystemLocale.NativeCountryName 37 a string that represents the name of the native country.

Method Documentation

QSystemLocale.__init__ (self)

Constructs a QSystemLocale object. The constructor will automatically install this object as the system locale and remove any earlier installed system locales.

QSystemLocale.__init__ (self, QSystemLocale)

QLocale QSystemLocale.fallbackLocale (self)

Returns the fallback locale obtained from the system.

This function was introduced in Qt 4.6.

QVariant QSystemLocale.query (self, QueryType type, QVariant in)

Generic query method for locale data. Provides indirection. Denotes the type of the query with in as input data depending on the query.

See also QSystemLocale.QueryType.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsystemsemaphore.html0000644000076500000240000004423112536324475021773 0ustar philstaff00000000000000 QSystemSemaphore Class Reference
  Home · All Classes · Modules

QSystemSemaphore Class Reference
[QtCore module]

The QSystemSemaphore class provides a general counting system semaphore. More...

Types

Methods

  • __init__ (self, QString key, int initialValue = 0, AccessMode mode = QSystemSemaphore.Open)
  • bool acquire (self)
  • SystemSemaphoreError error (self)
  • QString errorString (self)
  • QString key (self)
  • bool release (self, int n = 1)
  • setKey (self, QString key, int initialValue = 0, AccessMode mode = QSystemSemaphore.Open)

Detailed Description

The QSystemSemaphore class provides a general counting system semaphore.

A semaphore is a generalization of a mutex. While a mutex can be locked only once, a semaphore can be acquired multiple times. Typically, a semaphore is used to protect a certain number of identical resources.

Like its lighter counterpart QSemaphore, a QSystemSemaphore can be accessed from multiple threads. Unlike QSemaphore, a QSystemSemaphore can also be accessed from multiple processes. This means QSystemSemaphore is a much heavier class, so if your application doesn't need to access your semaphores across multiple processes, you will probably want to use QSemaphore.

Semaphores support two fundamental operations, acquire() and release():

acquire() tries to acquire one resource. If there isn't a resource available, the call blocks until a resource becomes available. Then the resource is acquired and the call returns.

release() releases one resource so it can be acquired by another process. The function can also be called with a parameter n > 1, which releases n resources.

A system semaphore is created with a string key that other processes can use to use the same semaphore.

Example: Create a system semaphore

 QSystemSemaphore sem("market", 3, QSystemSemaphore.Create);
                              // resources available == 3
 sem.acquire();               // resources available == 2
 sem.acquire();               // resources available == 1
 sem.acquire();               // resources available == 0
 sem.release();               // resources available == 1
 sem.release(2);              // resources available == 3

A typical application of system semaphores is for controlling access to a circular buffer shared by a producer process and a consumer processes.

Platform-Specific Behavior

When using this class, be aware of the following platform differences:

Windows: QSystemSemaphore does not own its underlying system semaphore. Windows owns it. This means that when all instances of QSystemSemaphore for a particular key have been destroyed, either by having their destructors called, or because one or more processes crash, Windows removes the underlying system semaphore.

Unix:


Type Documentation

QSystemSemaphore.AccessMode

This enum is used by the constructor and setKey(). Its purpose is to enable handling the problem in Unix implementations of semaphores that survive a crash. In Unix, when a semaphore survives a crash, we need a way to force it to reset its resource count, when the system reuses the semaphore. In Windows and in Symbian, where semaphores can't survive a crash, this enum has no effect.

Constant Value Description
QSystemSemaphore.Open 0 If the semaphore already exists, its initial resource count is not reset. If the semaphore does not already exist, it is created and its initial resource count set.
QSystemSemaphore.Create 1 QSystemSemaphore takes ownership of the semaphore and sets its resource count to the requested value, regardless of whether the semaphore already exists by having survived a crash. This value should be passed to the constructor, when the first semaphore for a particular key is constructed and you know that if the semaphore already exists it could only be because of a crash. In Windows and in Symbian, where a semaphore can't survive a crash, Create and Open have the same behavior.

QSystemSemaphore.SystemSemaphoreError

Constant Value Description
QSystemSemaphore.NoError 0 No error occurred.
QSystemSemaphore.PermissionDenied 1 The operation failed because the caller didn't have the required permissions.
QSystemSemaphore.KeyError 2 The operation failed because of an invalid key.
QSystemSemaphore.AlreadyExists 3 The operation failed because a system semaphore with the specified key already existed.
QSystemSemaphore.NotFound 4 The operation failed because a system semaphore with the specified key could not be found.
QSystemSemaphore.OutOfResources 5 The operation failed because there was not enough memory available to fill the request.
QSystemSemaphore.UnknownError 6 Something else happened and it was bad.

Method Documentation

QSystemSemaphore.__init__ (self, QString key, int initialValue = 0, AccessMode mode = QSystemSemaphore.Open)

Requests a system semaphore for the specified key. The parameters initialValue and mode are used according to the following rules, which are system dependent.

In Unix, if the mode is Open and the system already has a semaphore identified by key, that semaphore is used, and the semaphore's resource count is not changed, i.e., initialValue is ignored. But if the system does not already have a semaphore identified by key, it creates a new semaphore for that key and sets its resource count to initialValue.

In Unix, if the mode is Create and the system already has a semaphore identified by key, that semaphore is used, and its resource count is set to initialValue. If the system does not already have a semaphore identified by key, it creates a new semaphore for that key and sets its resource count to initialValue.

In QNX, if the mode is Create and the system already has a semaphore identified by key, that semaphore will be deleted and the new one will be created for that key with a resource count set to initialValue.

In Windows and in Symbian, mode is ignored, and the system always tries to create a semaphore for the specified key. If the system does not already have a semaphore identified as key, it creates the semaphore and sets its resource count to initialValue. But if the system already has a semaphore identified as key it uses that semaphore and ignores initialValue.

The mode parameter is only used in Unix systems to handle the case where a semaphore survives a process crash. In that case, the next process to allocate a semaphore with the same key will get the semaphore that survived the crash, and unless mode is Create, the resource count will not be reset to initialValue but will retain the initial value it had been given by the crashed process.

See also acquire() and key().

bool QSystemSemaphore.acquire (self)

Acquires one of the resources guarded by this semaphore, if there is one available, and returns true. If all the resources guarded by this semaphore have already been acquired, the call blocks until one of them is released by another process or thread having a semaphore with the same key.

If false is returned, a system error has occurred. Call error() to get a value of QSystemSemaphore.SystemSemaphoreError that indicates which error occurred.

See also release().

SystemSemaphoreError QSystemSemaphore.error (self)

Returns a value indicating whether an error occurred, and, if so, which error it was.

See also errorString().

QString QSystemSemaphore.errorString (self)

Returns a text description of the last error that occurred. If error() returns an error value, call this function to get a text string that describes the error.

See also error().

QString QSystemSemaphore.key (self)

Returns the key assigned to this system semaphore. The key is the name by which the semaphore can be accessed from other processes.

See also setKey().

bool QSystemSemaphore.release (self, int n = 1)

Releases n resources guarded by the semaphore. Returns true unless there is a system error.

Example: Create a system semaphore having five resources; acquire them all and then release them all.

 QSystemSemaphore sem("market", 5, QSystemSemaphore.Create);
 sem.acquire(5);           // acquire all 5 resources
 sem.release(5);           // release the 5 resources

This function can also "create" resources. For example, immediately following the sequence of statements above, suppose we add the statement:

 sem.release(10);          // "create" 10 new resources

Ten new resources are now guarded by the semaphore, in addition to the five that already existed. You would not normally use this function to create more resources.

See also acquire().

QSystemSemaphore.setKey (self, QString key, int initialValue = 0, AccessMode mode = QSystemSemaphore.Open)

This function works the same as the constructor. It reconstructs this QSystemSemaphore object. If the new key is different from the old key, calling this function is like calling the destructor of the semaphore with the old key, then calling the constructor to create a new semaphore with the new key. The initialValue and mode parameters are as defined for the constructor.

See also QSystemSemaphore() and key().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qsystemtrayicon.html0000644000076500000240000003776612536324514021651 0ustar philstaff00000000000000 QSystemTrayIcon Class Reference
  Home · All Classes · Modules

QSystemTrayIcon Class Reference
[QtGui module]

The QSystemTrayIcon class provides an icon for an application in the system tray. More...

Inherits QObject.

Types

  • enum ActivationReason { Unknown, Context, DoubleClick, Trigger, MiddleClick }
  • enum MessageIcon { NoIcon, Information, Warning, Critical }

Methods

Static Methods

Qt Signals


Detailed Description

The QSystemTrayIcon class provides an icon for an application in the system tray.

Modern operating systems usually provide a special area on the desktop, called the system tray or notification area, where long-running applications can display icons and short messages.

The system tray on Windows XP.

The QSystemTrayIcon class can be used on the following platforms:

To check whether a system tray is present on the user's desktop, call the QSystemTrayIcon.isSystemTrayAvailable() static function.

To add a system tray entry, create a QSystemTrayIcon object, call setContextMenu() to provide a context menu for the icon, and call show() to make it visible in the system tray. Status notification messages ("balloon messages") can be displayed at any time using showMessage().

If the system tray is unavailable when a system tray icon is constructed, but becomes available later, QSystemTrayIcon will automatically add an entry for the application in the system tray if the icon is visible.

The activated() signal is emitted when the user activates the icon.

Only on X11, when a tooltip is requested, the QSystemTrayIcon receives a QHelpEvent of type QEvent.ToolTip. Additionally, the QSystemTrayIcon receives wheel events of type QEvent.Wheel. These are not supported on any other platform.


Type Documentation

QSystemTrayIcon.ActivationReason

This enum describes the reason the system tray was activated.

Constant Value Description
QSystemTrayIcon.Unknown 0 Unknown reason
QSystemTrayIcon.Context 1 The context menu for the system tray entry was requested
QSystemTrayIcon.DoubleClick 2 The system tray entry was double clicked
QSystemTrayIcon.Trigger 3 The system tray entry was clicked
QSystemTrayIcon.MiddleClick 4 The system tray entry was clicked with the middle mouse button

See also activated().

QSystemTrayIcon.MessageIcon

This enum describes the icon that is shown when a balloon message is displayed.

Constant Value Description
QSystemTrayIcon.NoIcon 0 No icon is shown.
QSystemTrayIcon.Information 1 An information icon is shown.
QSystemTrayIcon.Warning 2 A standard warning icon is shown.
QSystemTrayIcon.Critical 3 A critical warning icon is shown.

See also QMessageBox.


Method Documentation

QSystemTrayIcon.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSystemTrayIcon object with the given parent.

The icon is initially invisible.

See also visible.

QSystemTrayIcon.__init__ (self, QIcon icon, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QSystemTrayIcon object with the given icon and parent.

The icon is initially invisible.

See also visible.

QMenu QSystemTrayIcon.contextMenu (self)

Returns the current context menu for the system tray entry.

See also setContextMenu().

bool QSystemTrayIcon.event (self, QEvent event)

Reimplemented from QObject.event().

QRect QSystemTrayIcon.geometry (self)

Returns the geometry of the system tray icon in screen coordinates.

This function was introduced in Qt 4.3.

See also visible.

QSystemTrayIcon.hide (self)

This method is also a Qt slot with the C++ signature void hide().

Hides the system tray entry.

See also show() and visible.

QIcon QSystemTrayIcon.icon (self)

bool QSystemTrayIcon.isSystemTrayAvailable ()

Returns true if the system tray is available; otherwise returns false.

If the system tray is currently unavailable but becomes available later, QSystemTrayIcon will automatically add an entry in the system tray if it is visible.

bool QSystemTrayIcon.isVisible (self)

QSystemTrayIcon.setContextMenu (self, QMenu menu)

Sets the specified menu to be the context menu for the system tray icon.

The menu will pop up when the user requests the context menu for the system tray icon by clicking the mouse button.

On Mac OS X, this is currenly converted to a NSMenu, so the aboutToHide() signal is not emitted.

Note: The system tray icon does not take ownership of the menu. You must ensure that it is deleted at the appropriate time by, for example, creating the menu with a suitable parent object.

See also contextMenu().

QSystemTrayIcon.setIcon (self, QIcon icon)

QSystemTrayIcon.setToolTip (self, QString tip)

QSystemTrayIcon.setVisible (self, bool visible)

This method is also a Qt slot with the C++ signature void setVisible(bool).

QSystemTrayIcon.show (self)

This method is also a Qt slot with the C++ signature void show().

Shows the icon in the system tray.

See also hide() and visible.

QSystemTrayIcon.showMessage (self, QString title, QString msg, MessageIcon icon = QSystemTrayIcon.Information, int msecs = 10000)

Shows a balloon message for the entry with the given title, message and icon for the time specified in millisecondsTimeoutHint. title and message must be plain text strings.

Message can be clicked by the user; the messageClicked() signal will emitted when this occurs.

Note that display of messages are dependent on the system configuration and user preferences, and that messages may not appear at all. Hence, it should not be relied upon as the sole means for providing critical information.

On Windows, the millisecondsTimeoutHint is usually ignored by the system when the application has focus.

On Mac OS X, the Growl notification system must be installed for this function to display messages.

This function was introduced in Qt 4.3.

See also show() and supportsMessages().

bool QSystemTrayIcon.supportsMessages ()

Returns true if the system tray supports balloon messages; otherwise returns false.

See also showMessage().

QString QSystemTrayIcon.toolTip (self)


Qt Signal Documentation

void activated (QSystemTrayIcon::ActivationReason)

This is the default overload of this signal.

This signal is emitted when the user activates the system tray icon. reason specifies the reason for activation. QSystemTrayIcon.ActivationReason enumerates the various reasons.

See also QSystemTrayIcon.ActivationReason.

void messageClicked ()

This is the default overload of this signal.

This signal is emitted when the message displayed using showMessage() was clicked by the user.

Currently this signal is not sent on Mac OS X.

Note: We follow Microsoft Windows XP/Vista behavior, so the signal is also emitted when the user clicks on a tray icon with a balloon message displayed.

See also activated().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-alignment.html0000644000076500000240000001322112536324470020750 0ustar philstaff00000000000000 Qt.Alignment Class Reference
  Home · All Classes · Modules

Qt.Alignment Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

AlignmentFlag may be used whenever Alignment is expected.


Method Documentation

Alignment.__init__ (self, Alignment)

Alignment.__init__ (self, int)

Alignment.__init__ (self)

Alignment Alignment.__and__ (self, int mask)

int Alignment.__bool__ (self)

bool Alignment.__eq__ (self, Alignment f)

Alignment Alignment.__iand__ (self, int mask)

int Alignment.__int__ (self)

Alignment Alignment.__invert__ (self)

Alignment Alignment.__ior__ (self, Alignment f)

Alignment Alignment.__ixor__ (self, Alignment f)

bool Alignment.__ne__ (self, Alignment f)

Alignment Alignment.__or__ (self, Alignment f)

Alignment Alignment.__or__ (self, int f)

Alignment Alignment.__xor__ (self, Alignment f)

Alignment Alignment.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-dockwidgetareas.html0000644000076500000240000001425212536324470022137 0ustar philstaff00000000000000 Qt.DockWidgetAreas Class Reference
  Home · All Classes · Modules

Qt.DockWidgetAreas Class Reference
[QtCore module]

Methods

Special Methods

  • DockWidgetAreas __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, DockWidgetAreas f)
  • DockWidgetAreas __iand__ (self, int mask)
  • int __int__ (self)
  • DockWidgetAreas __invert__ (self)
  • DockWidgetAreas __ior__ (self, DockWidgetAreas f)
  • DockWidgetAreas __ixor__ (self, DockWidgetAreas f)
  • bool __ne__ (self, DockWidgetAreas f)
  • DockWidgetAreas __or__ (self, DockWidgetAreas f)
  • DockWidgetAreas __or__ (self, int f)
  • DockWidgetAreas __xor__ (self, DockWidgetAreas f)
  • DockWidgetAreas __xor__ (self, int f)

Detailed Description

DockWidgetArea may be used whenever DockWidgetAreas is expected.


Method Documentation

DockWidgetAreas.__init__ (self, DockWidgetAreas)

DockWidgetAreas.__init__ (self, int)

DockWidgetAreas.__init__ (self)

DockWidgetAreas DockWidgetAreas.__and__ (self, int mask)

int DockWidgetAreas.__bool__ (self)

bool DockWidgetAreas.__eq__ (self, DockWidgetAreas f)

DockWidgetAreas DockWidgetAreas.__iand__ (self, int mask)

int DockWidgetAreas.__int__ (self)

DockWidgetAreas DockWidgetAreas.__invert__ (self)

DockWidgetAreas DockWidgetAreas.__ior__ (self, DockWidgetAreas f)

DockWidgetAreas DockWidgetAreas.__ixor__ (self, DockWidgetAreas f)

bool DockWidgetAreas.__ne__ (self, DockWidgetAreas f)

DockWidgetAreas DockWidgetAreas.__or__ (self, DockWidgetAreas f)

DockWidgetAreas DockWidgetAreas.__or__ (self, int f)

DockWidgetAreas DockWidgetAreas.__xor__ (self, DockWidgetAreas f)

DockWidgetAreas DockWidgetAreas.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-dropactions.html0000644000076500000240000001347212536324470021327 0ustar philstaff00000000000000 Qt.DropActions Class Reference
  Home · All Classes · Modules

Qt.DropActions Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

DropAction may be used whenever DropActions is expected.


Method Documentation

DropActions.__init__ (self, DropActions)

DropActions.__init__ (self, int)

DropActions.__init__ (self)

DropActions DropActions.__and__ (self, int mask)

int DropActions.__bool__ (self)

bool DropActions.__eq__ (self, DropActions f)

DropActions DropActions.__iand__ (self, int mask)

int DropActions.__int__ (self)

DropActions DropActions.__invert__ (self)

DropActions DropActions.__ior__ (self, DropActions f)

DropActions DropActions.__ixor__ (self, DropActions f)

bool DropActions.__ne__ (self, DropActions f)

DropActions DropActions.__or__ (self, DropActions f)

DropActions DropActions.__or__ (self, int f)

DropActions DropActions.__xor__ (self, DropActions f)

DropActions DropActions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-gestureflags.html0000644000076500000240000001336312536324470021474 0ustar philstaff00000000000000 Qt.GestureFlags Class Reference
  Home · All Classes · Modules

Qt.GestureFlags Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description


Method Documentation

GestureFlags.__init__ (self, GestureFlags)

GestureFlags.__init__ (self, int)

GestureFlags.__init__ (self)

GestureFlags GestureFlags.__and__ (self, int mask)

int GestureFlags.__bool__ (self)

bool GestureFlags.__eq__ (self, GestureFlags f)

GestureFlags GestureFlags.__iand__ (self, int mask)

int GestureFlags.__int__ (self)

GestureFlags GestureFlags.__invert__ (self)

GestureFlags GestureFlags.__ior__ (self, GestureFlags f)

GestureFlags GestureFlags.__ixor__ (self, GestureFlags f)

bool GestureFlags.__ne__ (self, GestureFlags f)

GestureFlags GestureFlags.__or__ (self, GestureFlags f)

GestureFlags GestureFlags.__or__ (self, int f)

GestureFlags GestureFlags.__xor__ (self, GestureFlags f)

GestureFlags GestureFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-imageconversionflags.html0000644000076500000240000001516612536324470023211 0ustar philstaff00000000000000 Qt.ImageConversionFlags Class Reference
  Home · All Classes · Modules

Qt.ImageConversionFlags Class Reference
[QtCore module]

Methods

Special Methods

  • ImageConversionFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, ImageConversionFlags f)
  • ImageConversionFlags __iand__ (self, int mask)
  • int __int__ (self)
  • ImageConversionFlags __invert__ (self)
  • ImageConversionFlags __ior__ (self, ImageConversionFlags f)
  • ImageConversionFlags __ixor__ (self, ImageConversionFlags f)
  • bool __ne__ (self, ImageConversionFlags f)
  • ImageConversionFlags __or__ (self, ImageConversionFlags f)
  • ImageConversionFlags __or__ (self, int f)
  • ImageConversionFlags __xor__ (self, ImageConversionFlags f)
  • ImageConversionFlags __xor__ (self, int f)

Detailed Description

ImageConversionFlag may be used whenever ImageConversionFlags is expected.


Method Documentation

ImageConversionFlags.__init__ (self, ImageConversionFlags)

ImageConversionFlags.__init__ (self, int)

ImageConversionFlags.__init__ (self)

ImageConversionFlags ImageConversionFlags.__and__ (self, int mask)

int ImageConversionFlags.__bool__ (self)

bool ImageConversionFlags.__eq__ (self, ImageConversionFlags f)

ImageConversionFlags ImageConversionFlags.__iand__ (self, int mask)

int ImageConversionFlags.__int__ (self)

ImageConversionFlags ImageConversionFlags.__invert__ (self)

ImageConversionFlags ImageConversionFlags.__ior__ (self, ImageConversionFlags f)

ImageConversionFlags ImageConversionFlags.__ixor__ (self, ImageConversionFlags f)

bool ImageConversionFlags.__ne__ (self, ImageConversionFlags f)

ImageConversionFlags ImageConversionFlags.__or__ (self, ImageConversionFlags f)

ImageConversionFlags ImageConversionFlags.__or__ (self, int f)

ImageConversionFlags ImageConversionFlags.__xor__ (self, ImageConversionFlags f)

ImageConversionFlags ImageConversionFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-inputmethodhints.html0000644000076500000240000001412312536324470022402 0ustar philstaff00000000000000 Qt.InputMethodHints Class Reference
  Home · All Classes · Modules

Qt.InputMethodHints Class Reference
[QtCore module]

Methods

Special Methods

  • InputMethodHints __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, InputMethodHints f)
  • InputMethodHints __iand__ (self, int mask)
  • int __int__ (self)
  • InputMethodHints __invert__ (self)
  • InputMethodHints __ior__ (self, InputMethodHints f)
  • InputMethodHints __ixor__ (self, InputMethodHints f)
  • bool __ne__ (self, InputMethodHints f)
  • InputMethodHints __or__ (self, InputMethodHints f)
  • InputMethodHints __or__ (self, int f)
  • InputMethodHints __xor__ (self, InputMethodHints f)
  • InputMethodHints __xor__ (self, int f)

Detailed Description


Method Documentation

InputMethodHints.__init__ (self, InputMethodHints)

InputMethodHints.__init__ (self, int)

InputMethodHints.__init__ (self)

InputMethodHints InputMethodHints.__and__ (self, int mask)

int InputMethodHints.__bool__ (self)

bool InputMethodHints.__eq__ (self, InputMethodHints f)

InputMethodHints InputMethodHints.__iand__ (self, int mask)

int InputMethodHints.__int__ (self)

InputMethodHints InputMethodHints.__invert__ (self)

InputMethodHints InputMethodHints.__ior__ (self, InputMethodHints f)

InputMethodHints InputMethodHints.__ixor__ (self, InputMethodHints f)

bool InputMethodHints.__ne__ (self, InputMethodHints f)

InputMethodHints InputMethodHints.__or__ (self, InputMethodHints f)

InputMethodHints InputMethodHints.__or__ (self, int f)

InputMethodHints InputMethodHints.__xor__ (self, InputMethodHints f)

InputMethodHints InputMethodHints.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-itemflags.html0000644000076500000240000001320212536324470020744 0ustar philstaff00000000000000 Qt.ItemFlags Class Reference
  Home · All Classes · Modules

Qt.ItemFlags Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

ItemFlag may be used whenever ItemFlags is expected.


Method Documentation

ItemFlags.__init__ (self, ItemFlags)

ItemFlags.__init__ (self, int)

ItemFlags.__init__ (self)

ItemFlags ItemFlags.__and__ (self, int mask)

int ItemFlags.__bool__ (self)

bool ItemFlags.__eq__ (self, ItemFlags f)

ItemFlags ItemFlags.__iand__ (self, int mask)

int ItemFlags.__int__ (self)

ItemFlags ItemFlags.__invert__ (self)

ItemFlags ItemFlags.__ior__ (self, ItemFlags f)

ItemFlags ItemFlags.__ixor__ (self, ItemFlags f)

bool ItemFlags.__ne__ (self, ItemFlags f)

ItemFlags ItemFlags.__or__ (self, ItemFlags f)

ItemFlags ItemFlags.__or__ (self, int f)

ItemFlags ItemFlags.__xor__ (self, ItemFlags f)

ItemFlags ItemFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-keyboardmodifiers.html0000644000076500000240000001454212536324470022503 0ustar philstaff00000000000000 Qt.KeyboardModifiers Class Reference
  Home · All Classes · Modules

Qt.KeyboardModifiers Class Reference
[QtCore module]

Methods

Special Methods

  • KeyboardModifiers __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, KeyboardModifiers f)
  • KeyboardModifiers __iand__ (self, int mask)
  • int __int__ (self)
  • KeyboardModifiers __invert__ (self)
  • KeyboardModifiers __ior__ (self, KeyboardModifiers f)
  • KeyboardModifiers __ixor__ (self, KeyboardModifiers f)
  • bool __ne__ (self, KeyboardModifiers f)
  • KeyboardModifiers __or__ (self, KeyboardModifiers f)
  • KeyboardModifiers __or__ (self, int f)
  • KeyboardModifiers __xor__ (self, KeyboardModifiers f)
  • KeyboardModifiers __xor__ (self, int f)

Detailed Description

KeyboardModifier may be used whenever KeyboardModifiers is expected.


Method Documentation

KeyboardModifiers.__init__ (self, KeyboardModifiers)

KeyboardModifiers.__init__ (self, int)

KeyboardModifiers.__init__ (self)

KeyboardModifiers KeyboardModifiers.__and__ (self, int mask)

int KeyboardModifiers.__bool__ (self)

bool KeyboardModifiers.__eq__ (self, KeyboardModifiers f)

KeyboardModifiers KeyboardModifiers.__iand__ (self, int mask)

int KeyboardModifiers.__int__ (self)

KeyboardModifiers KeyboardModifiers.__invert__ (self)

KeyboardModifiers KeyboardModifiers.__ior__ (self, KeyboardModifiers f)

KeyboardModifiers KeyboardModifiers.__ixor__ (self, KeyboardModifiers f)

bool KeyboardModifiers.__ne__ (self, KeyboardModifiers f)

KeyboardModifiers KeyboardModifiers.__or__ (self, KeyboardModifiers f)

KeyboardModifiers KeyboardModifiers.__or__ (self, int f)

KeyboardModifiers KeyboardModifiers.__xor__ (self, KeyboardModifiers f)

KeyboardModifiers KeyboardModifiers.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-matchflags.html0000644000076500000240000001333612536324470021112 0ustar philstaff00000000000000 Qt.MatchFlags Class Reference
  Home · All Classes · Modules

Qt.MatchFlags Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

MatchFlag may be used whenever MatchFlags is expected.


Method Documentation

MatchFlags.__init__ (self, MatchFlags)

MatchFlags.__init__ (self, int)

MatchFlags.__init__ (self)

MatchFlags MatchFlags.__and__ (self, int mask)

int MatchFlags.__bool__ (self)

bool MatchFlags.__eq__ (self, MatchFlags f)

MatchFlags MatchFlags.__iand__ (self, int mask)

int MatchFlags.__int__ (self)

MatchFlags MatchFlags.__invert__ (self)

MatchFlags MatchFlags.__ior__ (self, MatchFlags f)

MatchFlags MatchFlags.__ixor__ (self, MatchFlags f)

bool MatchFlags.__ne__ (self, MatchFlags f)

MatchFlags MatchFlags.__or__ (self, MatchFlags f)

MatchFlags MatchFlags.__or__ (self, int f)

MatchFlags MatchFlags.__xor__ (self, MatchFlags f)

MatchFlags MatchFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-mousebuttons.html0000644000076500000240000001362612536324470021552 0ustar philstaff00000000000000 Qt.MouseButtons Class Reference
  Home · All Classes · Modules

Qt.MouseButtons Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

MouseButton may be used whenever MouseButtons is expected.


Method Documentation

MouseButtons.__init__ (self, MouseButtons)

MouseButtons.__init__ (self, int)

MouseButtons.__init__ (self)

MouseButtons MouseButtons.__and__ (self, int mask)

int MouseButtons.__bool__ (self)

bool MouseButtons.__eq__ (self, MouseButtons f)

MouseButtons MouseButtons.__iand__ (self, int mask)

int MouseButtons.__int__ (self)

MouseButtons MouseButtons.__invert__ (self)

MouseButtons MouseButtons.__ior__ (self, MouseButtons f)

MouseButtons MouseButtons.__ixor__ (self, MouseButtons f)

bool MouseButtons.__ne__ (self, MouseButtons f)

MouseButtons MouseButtons.__or__ (self, MouseButtons f)

MouseButtons MouseButtons.__or__ (self, int f)

MouseButtons MouseButtons.__xor__ (self, MouseButtons f)

MouseButtons MouseButtons.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-orientations.html0000644000076500000240000001362612536324470021521 0ustar philstaff00000000000000 Qt.Orientations Class Reference
  Home · All Classes · Modules

Qt.Orientations Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

Orientation may be used whenever Orientations is expected.


Method Documentation

Orientations.__init__ (self, Orientations)

Orientations.__init__ (self, int)

Orientations.__init__ (self)

Orientations Orientations.__and__ (self, int mask)

int Orientations.__bool__ (self)

bool Orientations.__eq__ (self, Orientations f)

Orientations Orientations.__iand__ (self, int mask)

int Orientations.__int__ (self)

Orientations Orientations.__invert__ (self)

Orientations Orientations.__ior__ (self, Orientations f)

Orientations Orientations.__ixor__ (self, Orientations f)

bool Orientations.__ne__ (self, Orientations f)

Orientations Orientations.__or__ (self, Orientations f)

Orientations Orientations.__or__ (self, int f)

Orientations Orientations.__xor__ (self, Orientations f)

Orientations Orientations.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-textinteractionflags.html0000644000076500000240000001516612536324470023245 0ustar philstaff00000000000000 Qt.TextInteractionFlags Class Reference
  Home · All Classes · Modules

Qt.TextInteractionFlags Class Reference
[QtCore module]

Methods

Special Methods

  • TextInteractionFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, TextInteractionFlags f)
  • TextInteractionFlags __iand__ (self, int mask)
  • int __int__ (self)
  • TextInteractionFlags __invert__ (self)
  • TextInteractionFlags __ior__ (self, TextInteractionFlags f)
  • TextInteractionFlags __ixor__ (self, TextInteractionFlags f)
  • bool __ne__ (self, TextInteractionFlags f)
  • TextInteractionFlags __or__ (self, TextInteractionFlags f)
  • TextInteractionFlags __or__ (self, int f)
  • TextInteractionFlags __xor__ (self, TextInteractionFlags f)
  • TextInteractionFlags __xor__ (self, int f)

Detailed Description

TextInteractionFlag may be used whenever TextInteractionFlags is expected.


Method Documentation

TextInteractionFlags.__init__ (self, TextInteractionFlags)

TextInteractionFlags.__init__ (self, int)

TextInteractionFlags.__init__ (self)

TextInteractionFlags TextInteractionFlags.__and__ (self, int mask)

int TextInteractionFlags.__bool__ (self)

bool TextInteractionFlags.__eq__ (self, TextInteractionFlags f)

TextInteractionFlags TextInteractionFlags.__iand__ (self, int mask)

int TextInteractionFlags.__int__ (self)

TextInteractionFlags TextInteractionFlags.__invert__ (self)

TextInteractionFlags TextInteractionFlags.__ior__ (self, TextInteractionFlags f)

TextInteractionFlags TextInteractionFlags.__ixor__ (self, TextInteractionFlags f)

bool TextInteractionFlags.__ne__ (self, TextInteractionFlags f)

TextInteractionFlags TextInteractionFlags.__or__ (self, TextInteractionFlags f)

TextInteractionFlags TextInteractionFlags.__or__ (self, int f)

TextInteractionFlags TextInteractionFlags.__xor__ (self, TextInteractionFlags f)

TextInteractionFlags TextInteractionFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-toolbarareas.html0000644000076500000240000001362612536324470021461 0ustar philstaff00000000000000 Qt.ToolBarAreas Class Reference
  Home · All Classes · Modules

Qt.ToolBarAreas Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

ToolBarArea may be used whenever ToolBarAreas is expected.


Method Documentation

ToolBarAreas.__init__ (self, ToolBarAreas)

ToolBarAreas.__init__ (self, int)

ToolBarAreas.__init__ (self)

ToolBarAreas ToolBarAreas.__and__ (self, int mask)

int ToolBarAreas.__bool__ (self)

bool ToolBarAreas.__eq__ (self, ToolBarAreas f)

ToolBarAreas ToolBarAreas.__iand__ (self, int mask)

int ToolBarAreas.__int__ (self)

ToolBarAreas ToolBarAreas.__invert__ (self)

ToolBarAreas ToolBarAreas.__ior__ (self, ToolBarAreas f)

ToolBarAreas ToolBarAreas.__ixor__ (self, ToolBarAreas f)

bool ToolBarAreas.__ne__ (self, ToolBarAreas f)

ToolBarAreas ToolBarAreas.__or__ (self, ToolBarAreas f)

ToolBarAreas ToolBarAreas.__or__ (self, int f)

ToolBarAreas ToolBarAreas.__xor__ (self, ToolBarAreas f)

ToolBarAreas ToolBarAreas.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-touchpointstates.html0000644000076500000240000001412312536324470022414 0ustar philstaff00000000000000 Qt.TouchPointStates Class Reference
  Home · All Classes · Modules

Qt.TouchPointStates Class Reference
[QtCore module]

Methods

Special Methods

  • TouchPointStates __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, TouchPointStates f)
  • TouchPointStates __iand__ (self, int mask)
  • int __int__ (self)
  • TouchPointStates __invert__ (self)
  • TouchPointStates __ior__ (self, TouchPointStates f)
  • TouchPointStates __ixor__ (self, TouchPointStates f)
  • bool __ne__ (self, TouchPointStates f)
  • TouchPointStates __or__ (self, TouchPointStates f)
  • TouchPointStates __or__ (self, int f)
  • TouchPointStates __xor__ (self, TouchPointStates f)
  • TouchPointStates __xor__ (self, int f)

Detailed Description


Method Documentation

TouchPointStates.__init__ (self, TouchPointStates)

TouchPointStates.__init__ (self, int)

TouchPointStates.__init__ (self)

TouchPointStates TouchPointStates.__and__ (self, int mask)

int TouchPointStates.__bool__ (self)

bool TouchPointStates.__eq__ (self, TouchPointStates f)

TouchPointStates TouchPointStates.__iand__ (self, int mask)

int TouchPointStates.__int__ (self)

TouchPointStates TouchPointStates.__invert__ (self)

TouchPointStates TouchPointStates.__ior__ (self, TouchPointStates f)

TouchPointStates TouchPointStates.__ixor__ (self, TouchPointStates f)

bool TouchPointStates.__ne__ (self, TouchPointStates f)

TouchPointStates TouchPointStates.__or__ (self, TouchPointStates f)

TouchPointStates TouchPointStates.__or__ (self, int f)

TouchPointStates TouchPointStates.__xor__ (self, TouchPointStates f)

TouchPointStates TouchPointStates.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-windowflags.html0000644000076500000240000001323312536324470021321 0ustar philstaff00000000000000 Qt.WindowFlags Class Reference
  Home · All Classes · Modules

Qt.WindowFlags Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description


Method Documentation

WindowFlags.__init__ (self, WindowFlags)

WindowFlags.__init__ (self, int)

WindowFlags.__init__ (self)

WindowFlags WindowFlags.__and__ (self, int mask)

int WindowFlags.__bool__ (self)

bool WindowFlags.__eq__ (self, WindowFlags f)

WindowFlags WindowFlags.__iand__ (self, int mask)

int WindowFlags.__int__ (self)

WindowFlags WindowFlags.__invert__ (self)

WindowFlags WindowFlags.__ior__ (self, WindowFlags f)

WindowFlags WindowFlags.__ixor__ (self, WindowFlags f)

bool WindowFlags.__ne__ (self, WindowFlags f)

WindowFlags WindowFlags.__or__ (self, WindowFlags f)

WindowFlags WindowFlags.__or__ (self, int f)

WindowFlags WindowFlags.__xor__ (self, WindowFlags f)

WindowFlags WindowFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt-windowstates.html0000644000076500000240000001362612536324470021536 0ustar philstaff00000000000000 Qt.WindowStates Class Reference
  Home · All Classes · Modules

Qt.WindowStates Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

WindowState may be used whenever WindowStates is expected.


Method Documentation

WindowStates.__init__ (self, WindowStates)

WindowStates.__init__ (self, int)

WindowStates.__init__ (self)

WindowStates WindowStates.__and__ (self, int mask)

int WindowStates.__bool__ (self)

bool WindowStates.__eq__ (self, WindowStates f)

WindowStates WindowStates.__iand__ (self, int mask)

int WindowStates.__int__ (self)

WindowStates WindowStates.__invert__ (self)

WindowStates WindowStates.__ior__ (self, WindowStates f)

WindowStates WindowStates.__ixor__ (self, WindowStates f)

bool WindowStates.__ne__ (self, WindowStates f)

WindowStates WindowStates.__or__ (self, WindowStates f)

WindowStates WindowStates.__or__ (self, int f)

WindowStates WindowStates.__xor__ (self, WindowStates f)

WindowStates WindowStates.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt.html0000644000076500000240000076231512536324470017013 0ustar philstaff00000000000000 Qt Class Reference
  Home · All Classes · Modules

Qt Class Reference
[QtCore module]

The Qt namespace contains miscellaneous identifiers used throughout the Qt library. More...

Types

  • class Alignment
  • enum AlignmentFlag { AlignLeft, AlignLeading, AlignRight, AlignTrailing, ..., AlignCenter }
  • enum AnchorAttribute { AnchorName, AnchorHref }
  • enum AnchorPoint { AnchorLeft, AnchorHorizontalCenter, AnchorRight, AnchorTop, AnchorVerticalCenter, AnchorBottom }
  • enum ApplicationAttribute { AA_ImmediateWidgetCreation, AA_MSWindowsUseDirect3DByDefault, AA_DontShowIconsInMenus, AA_NativeWindows, ..., AA_CaptureMultimediaKeys }
  • enum ArrowType { NoArrow, UpArrow, DownArrow, LeftArrow, RightArrow }
  • enum AspectRatioMode { IgnoreAspectRatio, KeepAspectRatio, KeepAspectRatioByExpanding }
  • enum Axis { XAxis, YAxis, ZAxis }
  • enum BGMode { TransparentMode, OpaqueMode }
  • enum BrushStyle { NoBrush, SolidPattern, Dense1Pattern, Dense2Pattern, ..., TexturePattern }
  • enum CaseSensitivity { CaseInsensitive, CaseSensitive }
  • enum CheckState { Unchecked, PartiallyChecked, Checked }
  • enum ClipOperation { NoClip, ReplaceClip, IntersectClip, UniteClip }
  • enum ConnectionType { AutoConnection, DirectConnection, QueuedConnection, AutoCompatConnection, BlockingQueuedConnection, UniqueConnection }
  • enum ContextMenuPolicy { NoContextMenu, PreventContextMenu, DefaultContextMenu, ActionsContextMenu, CustomContextMenu }
  • enum CoordinateSystem { DeviceCoordinates, LogicalCoordinates }
  • enum Corner { TopLeftCorner, TopRightCorner, BottomLeftCorner, BottomRightCorner }
  • enum CursorMoveStyle { LogicalMoveStyle, VisualMoveStyle }
  • enum CursorShape { ArrowCursor, UpArrowCursor, CrossCursor, WaitCursor, ..., DragLinkCursor }
  • enum DateFormat { TextDate, ISODate, LocalDate, SystemLocaleDate, ..., DefaultLocaleLongDate }
  • enum DayOfWeek { Monday, Tuesday, Wednesday, Thursday, ..., Sunday }
  • enum DockWidgetArea { LeftDockWidgetArea, RightDockWidgetArea, TopDockWidgetArea, BottomDockWidgetArea, ..., NoDockWidgetArea }
  • enum DropAction { CopyAction, MoveAction, LinkAction, ActionMask, TargetMoveAction, IgnoreAction }
  • enum EventPriority { HighEventPriority, NormalEventPriority, LowEventPriority }
  • enum FillRule { OddEvenFill, WindingFill }
  • enum FocusPolicy { NoFocus, TabFocus, ClickFocus, StrongFocus, WheelFocus }
  • enum FocusReason { MouseFocusReason, TabFocusReason, BacktabFocusReason, ActiveWindowFocusReason, ..., NoFocusReason }
  • enum GestureFlag { DontStartGestureOnChildren, ReceivePartialGestures, IgnoredGesturesPropagateToParent }
  • enum GestureState { GestureStarted, GestureUpdated, GestureFinished, GestureCanceled }
  • enum GestureType { TapGesture, TapAndHoldGesture, PanGesture, PinchGesture, SwipeGesture, CustomGesture }
  • enum GlobalColor { color0, color1, black, white, ..., transparent }
  • enum HitTestAccuracy { ExactHit, FuzzyHit }
  • enum ImageConversionFlag { AutoColor, ColorOnly, MonoOnly, ThresholdAlphaDither, ..., AvoidDither }
  • enum InputMethodHint { ImhNone, ImhHiddenText, ImhNoAutoUppercase, ImhPreferNumbers, ..., ImhExclusiveInputMask }
  • enum InputMethodQuery { ImMicroFocus, ImFont, ImCursorPosition, ImSurroundingText, ..., ImAnchorPosition }
  • enum ItemDataRole { DisplayRole, DecorationRole, EditRole, ToolTipRole, ..., UserRole }
  • enum ItemFlag { NoItemFlags, ItemIsSelectable, ItemIsEditable, ItemIsDragEnabled, ..., ItemIsTristate }
  • class ItemFlags
  • enum ItemSelectionMode { ContainsItemShape, IntersectsItemShape, ContainsItemBoundingRect, IntersectsItemBoundingRect }
  • enum Key { Key_Escape, Key_Tab, Key_Backtab, Key_Backspace, ..., Key_CameraFocus }
  • enum KeyboardModifier { NoModifier, ShiftModifier, ControlModifier, AltModifier, ..., KeyboardModifierMask }
  • enum LayoutDirection { LeftToRight, RightToLeft, LayoutDirectionAuto }
  • enum MaskMode { MaskInColor, MaskOutColor }
  • enum MatchFlag { MatchExactly, MatchFixedString, MatchContains, MatchStartsWith, ..., MatchRecursive }
  • enum Modifier { META, SHIFT, CTRL, ALT, MODIFIER_MASK, UNICODE_ACCEL }
  • enum MouseButton { NoButton, LeftButton, RightButton, MidButton, ..., XButton2 }
  • enum NavigationMode { NavigationModeNone, NavigationModeKeypadTabOrder, NavigationModeKeypadDirectional, NavigationModeCursorAuto, NavigationModeCursorForceVisible }
  • enum Orientation { Horizontal, Vertical }
  • enum PenCapStyle { FlatCap, SquareCap, RoundCap, MPenCapStyle }
  • enum PenJoinStyle { MiterJoin, BevelJoin, RoundJoin, MPenJoinStyle, SvgMiterJoin }
  • enum PenStyle { NoPen, SolidLine, DashLine, DotLine, ..., MPenStyle }
  • enum ScrollBarPolicy { ScrollBarAsNeeded, ScrollBarAlwaysOff, ScrollBarAlwaysOn }
  • enum ShortcutContext { WidgetShortcut, WindowShortcut, ApplicationShortcut, WidgetWithChildrenShortcut }
  • enum SizeHint { MinimumSize, PreferredSize, MaximumSize, MinimumDescent }
  • enum SizeMode { AbsoluteSize, RelativeSize }
  • enum SortOrder { AscendingOrder, DescendingOrder }
  • enum TextElideMode { ElideLeft, ElideRight, ElideMiddle, ElideNone }
  • enum TextFlag { TextSingleLine, TextDontClip, TextExpandTabs, TextShowMnemonic, ..., TextJustificationForced }
  • enum TextFormat { PlainText, RichText, AutoText, LogText }
  • enum TextInteractionFlag { NoTextInteraction, TextSelectableByMouse, TextSelectableByKeyboard, LinksAccessibleByMouse, ..., TextBrowserInteraction }
  • enum TileRule { StretchTile, RepeatTile, RoundTile }
  • enum TimeSpec { LocalTime, UTC, OffsetFromUTC }
  • enum ToolBarArea { LeftToolBarArea, RightToolBarArea, TopToolBarArea, BottomToolBarArea, ..., NoToolBarArea }
  • enum ToolButtonStyle { ToolButtonIconOnly, ToolButtonTextOnly, ToolButtonTextBesideIcon, ToolButtonTextUnderIcon, ToolButtonFollowStyle }
  • enum TouchPointState { TouchPointPressed, TouchPointMoved, TouchPointStationary, TouchPointReleased }
  • enum TransformationMode { FastTransformation, SmoothTransformation }
  • enum UIEffect { UI_General, UI_AnimateMenu, UI_FadeMenu, UI_AnimateCombo, ..., UI_AnimateToolBox }
  • enum WhiteSpaceMode { WhiteSpaceNormal, WhiteSpacePre, WhiteSpaceNoWrap, WhiteSpaceModeUndefined }
  • enum WidgetAttribute { WA_Disabled, WA_UnderMouse, WA_MouseTracking, WA_OpaquePaintEvent, ..., WA_MacNoShadow }
  • enum WindowFrameSection { NoSection, LeftSection, TopLeftSection, TopSection, ..., TitleBarArea }
  • enum WindowModality { NonModal, WindowModal, ApplicationModal }
  • enum WindowState { WindowNoState, WindowMinimized, WindowMaximized, WindowFullScreen, WindowActive }
  • enum WindowType { Widget, Window, Dialog, Sheet, ..., WindowSoftkeysRespondHint }

Static Methods


Detailed Description

The Qt namespace contains miscellaneous identifiers used throughout the Qt library.


Type Documentation

Qt.AlignmentFlag

This enum type is used to describe alignment. It contains horizontal and vertical flags that can be combined to produce the required effect.

The TextElideMode enum can also be used in many situations to fine-tune the appearance of aligned text.

The horizontal flags are:

Constant Value Description
Qt.AlignLeft 0x0001 Aligns with the left edge.
Qt.AlignRight 0x0002 Aligns with the right edge.
Qt.AlignHCenter 0x0004 Centers horizontally in the available space.
Qt.AlignJustify 0x0008 Justifies the text in the available space.

The vertical flags are:

Constant Value Description
Qt.AlignTop 0x0020 Aligns with the top.
Qt.AlignBottom 0x0040 Aligns with the bottom.
Qt.AlignVCenter 0x0080 Centers vertically in the available space.

You can use only one of the horizontal flags at a time. There is one two-dimensional flag:

Constant Value Description
Qt.AlignCenter AlignVCenter | AlignHCenter Centers in both dimensions.

You can use at most one horizontal and one vertical flag at a time. Qt.AlignCenter counts as both horizontal and vertical.

Three enum values are useful in applications that can be run in right-to-left mode:

Constant Value Description
Qt.AlignAbsolute 0x0010 If the widget's layout direction is Qt.RightToLeft (instead of Qt.LeftToRight, the default), Qt.AlignLeft refers to the right edge and Qt.AlignRight to the left edge. This is normally the desired behavior. If you want Qt.AlignLeft to always mean "left" and Qt.AlignRight to always mean "right", combine the flag with Qt.AlignAbsolute.
Qt.AlignLeading AlignLeft Synonym for Qt.AlignLeft.
Qt.AlignTrailing AlignRight Synonym for Qt.AlignRight.

Masks:

Constant Value
Qt.AlignHorizontal_Mask AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute
Qt.AlignVertical_Mask AlignTop | AlignBottom | AlignVCenter

Conflicting combinations of flags have undefined meanings.

The Alignment type is a typedef for QFlags<AlignmentFlag>. It stores an OR combination of AlignmentFlag values.

Qt.AnchorAttribute

An anchor has one or more of the following attributes:

Constant Value Description
Qt.AnchorName 0 the name attribute of the anchor. This attribute is used when scrolling to an anchor in the document.
Qt.AnchorHref 1 the href attribute of the anchor. This attribute is used when a link is clicked to determine what content to load.

Qt.AnchorPoint

Specifies a side of a layout item that can be anchored. This is used by QGraphicsAnchorLayout.

Constant Value Description
Qt.AnchorLeft 0 The left side of a layout item.
Qt.AnchorHorizontalCenter 1 A "virtual" side that is centered between the left and the right side of a layout item.
Qt.AnchorRight 2 The right side of a layout item.
Qt.AnchorTop 3 The top side of a layout item.
Qt.AnchorVerticalCenter 4 A "virtual" side that is centered between the top and the bottom side of a layout item.
Qt.AnchorBottom 5 The bottom side of a layout item.

See also QGraphicsAnchorLayout.

Qt.ApplicationAttribute

This enum describes attributes that change the behavior of application-wide features. These are enabled and disabled using QCoreApplication.setAttribute(), and can be tested for with QCoreApplication.testAttribute().

Constant Value Description
Qt.AA_ImmediateWidgetCreation 0 Ensures that widgets are created as soon as they are constructed. By default, resources for widgets are allocated on demand to improve efficiency and minimize resource usage. Setting or clearing this attribute affects widgets constructed after the change. Setting it tells Qt to create toplevel windows immediately. Therefore, if it is important to minimize resource consumption, do not set this attribute.
Qt.AA_MSWindowsUseDirect3DByDefault 1 This value is obsolete and has no effect.
Qt.AA_DontShowIconsInMenus 2 Actions with the Icon property won't be shown in any menus unless specifically set by the QAction.iconVisibleInMenu property. Menus that are currently open or menus already created in the native Mac OS X menubar may not pick up a change in this attribute. Changes in the QAction.iconVisibleInMenu property will always be picked up.
Qt.AA_NativeWindows 3 Ensures that widgets have native windows.
Qt.AA_DontCreateNativeWidgetSiblings 4 Ensures that siblings of native widgets stay non-native unless specifically set by the Qt.WA_NativeWindow attribute.
Qt.AA_MacPluginApplication 5 Stops the Qt mac application from doing specific initializations that do not necessarily make sense when using Qt to author a plugin. This includes avoiding loading our nib for the main menu and not taking possession of the native menu bar. When setting this attribute to true will also set the AA_DontUseNativeMenuBar attribute to true.
Qt.AA_DontUseNativeMenuBar 6 All menubars created while this attribute is set to true won't be used as a native menubar (e.g, the menubar at the top of the main screen on Mac OS X or at the bottom in Windows CE).
Qt.AA_MacDontSwapCtrlAndMeta 7 On Mac OS X by default, Qt swaps the Control and Meta (Command) keys (i.e., whenever Control is pressed, Qt sends Meta, and whenever Meta is pressed Control is sent). When this attribute is true, Qt will not do the flip. QKeySequence.StandardShortcuts will also flip accordingly (i.e., QKeySequence.Copy will be Command+C on the keyboard regardless of the value set, though what is output for QKeySequence.toString(QKeySequence.PortableText) will be different).
Qt.AA_S60DontConstructApplicationPanes 8 Stops Qt from initializing the S60 status pane and softkey pane on Symbian. This is useful to save memory and reduce startup time for applications that will run in fullscreen mode during their whole lifetime. This attribute must be set before QApplication is constructed.
Qt.AA_S60DisablePartialScreenInputMode 9 By default in Symbian^3, a separate editing window is opened on top of an application. This is exactly like editing on previous versions of Symbian behave. When this attribute is false, a non-fullscreen virtual keyboard window is shown on top of application and it is ensured that the focused text input widget is visible. The auto-translation of input widget is only supported for applications based on QGraphicsView, but the non-fullscreen virtual keyboard will work for any kind of application (i.e. QWidgets-based). By default this attribute is true. This attribute must be set after QApplication is constructed. This is only supported in Symbian^3 and later Symbian releases.
Qt.AA_X11InitThreads 10 Calls XInitThreads() as part of the QApplication construction in order to make Xlib calls thread-safe. This attribute must be set before QApplication is constructed.
Qt.AA_CaptureMultimediaKeys 11 Enables application to receive multimedia key events (play, next, previous etc). This includes also external sources such as headsets. Application can not use Remote Control framework on Symbian if this attribute is set. On Symbian, multimedia key event routing may vary between different devices. For example, application on background may receive multimedia key events only if it has active audio stream i.e. it is playing music or video. This attribute must be set before QApplication is constructed. This attribute is only supported in Symbian platform.

Qt.ArrowType

Constant Value
Qt.NoArrow 0
Qt.UpArrow 1
Qt.DownArrow 2
Qt.LeftArrow 3
Qt.RightArrow 4

Qt.AspectRatioMode

This enum type defines what happens to the aspect ratio when scaling an rectangle.

Constant Value Description
Qt.IgnoreAspectRatio 0 The size is scaled freely. The aspect ratio is not preserved.
Qt.KeepAspectRatio 1 The size is scaled to a rectangle as large as possible inside a given rectangle, preserving the aspect ratio.
Qt.KeepAspectRatioByExpanding 2 The size is scaled to a rectangle as small as possible outside a given rectangle, preserving the aspect ratio.

See also QSize.scale() and QImage.scaled().

Qt.Axis

This enum type defines three values to represent the three axes in the cartesian coordinate system.

Constant Value Description
Qt.XAxis 0 The X axis.
Qt.YAxis 1 The Y axis.
Qt.ZAxis 2 The Z axis.

See also QTransform.rotate() and QTransform.rotateRadians().

Qt.BGMode

Background mode:

Constant Value
Qt.TransparentMode 0
Qt.OpaqueMode 1

Qt.BrushStyle

This enum type defines the brush styles supported by Qt, i.e. the fill pattern of shapes drawn using QPainter.

Brush Styles

Constant Value Description
Qt.NoBrush 0 No brush pattern.
Qt.SolidPattern 1 Uniform color.
Qt.Dense1Pattern 2 Extremely dense brush pattern.
Qt.Dense2Pattern 3 Very dense brush pattern.
Qt.Dense3Pattern 4 Somewhat dense brush pattern.
Qt.Dense4Pattern 5 Half dense brush pattern.
Qt.Dense5Pattern 6 Somewhat sparse brush pattern.
Qt.Dense6Pattern 7 Very sparse brush pattern.
Qt.Dense7Pattern 8 Extremely sparse brush pattern.
Qt.HorPattern 9 Horizontal lines.
Qt.VerPattern 10 Vertical lines.
Qt.CrossPattern 11 Crossing horizontal and vertical lines.
Qt.BDiagPattern 12 Backward diagonal lines.
Qt.FDiagPattern 13 Forward diagonal lines.
Qt.DiagCrossPattern 14 Crossing diagonal lines.
Qt.LinearGradientPattern 15 Linear gradient (set using a dedicated QBrush constructor).
Qt.ConicalGradientPattern 17 Conical gradient (set using a dedicated QBrush constructor).
Qt.RadialGradientPattern 16 Radial gradient (set using a dedicated QBrush constructor).
Qt.TexturePattern 24 Custom pattern (see QBrush.setTexture()).

See also QBrush.

Qt.CaseSensitivity

Constant Value
Qt.CaseInsensitive 0
Qt.CaseSensitive 1

Qt.CheckState

This enum describes the state of checkable items, controls, and widgets.

Constant Value Description
Qt.Unchecked 0 The item is unchecked.
Qt.PartiallyChecked 1 The item is partially checked. Items in hierarchical models may be partially checked if some, but not all, of their children are checked.
Qt.Checked 2 The item is checked.

See also QCheckBox, Qt.ItemFlags, and Qt.ItemDataRole.

Qt.ClipOperation

Constant Value Description
Qt.NoClip 0 This operation turns clipping off.
Qt.ReplaceClip 1 Replaces the current clip path/rect/region with the one supplied in the function call.
Qt.IntersectClip 2 Intersects the current clip path/rect/region with the one supplied in the function call.
Qt.UniteClip 3 Unites the current clip path/rect/region with the one supplied in the function call.

Qt.ConnectionType

This enum describes the types of connection that can be used between signals and slots. In particular, it determines whether a particular signal is delivered to a slot immediately or queued for delivery at a later time.

Constant Value Description
Qt.AutoConnection 0 (default) If the signal is emitted from a different thread than the receiving object, the signal is queued, behaving as Qt.QueuedConnection. Otherwise, the slot is invoked directly, behaving as Qt.DirectConnection. The type of connection is determined when the signal is emitted.
Qt.DirectConnection 1 The slot is invoked immediately, when the signal is emitted.
Qt.QueuedConnection 2 The slot is invoked when control returns to the event loop of the receiver's thread. The slot is executed in the receiver's thread.
Qt.BlockingQueuedConnection 4 Same as QueuedConnection, except the current thread blocks until the slot returns. This connection type should only be used where the emitter and receiver are in different threads. Note: Violating this rule can cause your application to deadlock.
Qt.UniqueConnection 0x80 Same as AutoConnection, but the connection is made only if it does not duplicate an existing connection. i.e., if the same signal is already connected to the same slot for the same pair of objects, then the connection will fail. This connection type was introduced in Qt 4.6.
Qt.AutoCompatConnection 3 The default type when Qt 3 support is enabled. Same as AutoConnection but will also cause warnings to be output in certain situations. See Compatibility Signals and Slots for further information.

With queued connections, the parameters must be of types that are known to Qt's meta-object system, because Qt needs to copy the arguments to store them in an event behind the scenes. If you try to use a queued connection and get the error message:

 QObject.connect: Cannot queue arguments of type 'MyType'

Call qRegisterMetaType() to register the data type before you establish the connection.

When using signals and slots with multiple threads, see Signals and Slots Across Threads.

See also Thread Support in Qt, QObject.connect(), qRegisterMetaType(), and Q_DECLARE_METATYPE().

Qt.ContextMenuPolicy

This enum type defines the various policies a widget can have with respect to showing a context menu.

Constant Value Description
Qt.NoContextMenu 0 the widget does not feature a context menu, context menu handling is deferred to the widget's parent.
Qt.PreventContextMenu 4 the widget does not feature a context menu, and in contrast to NoContextMenu, the handling is not deferred to the widget's parent. This means that all right mouse button events are guaranteed to be delivered to the widget itself through mousePressEvent(), and mouseReleaseEvent().
Qt.DefaultContextMenu 1 the widget's QWidget.contextMenuEvent() handler is called.
Qt.ActionsContextMenu 2 the widget displays its QWidget.actions() as context menu.
Qt.CustomContextMenu 3 the widget emits the QWidget.customContextMenuRequested() signal.

Qt.CoordinateSystem

This enum specifies the coordinate system.

Constant Value Description
Qt.DeviceCoordinates 0 Coordinates are relative to the upper-left corner of the object's paint device.
Qt.LogicalCoordinates 1 Coordinates are relative to the upper-left corner of the object.

This enum was introduced or modified in Qt 4.6.

Qt.Corner

This enum type specifies a corner in a rectangle:

Constant Value Description
Qt.TopLeftCorner 0x00000 The top-left corner of the rectangle.
Qt.TopRightCorner 0x00001 The top-right corner of the rectangle.
Qt.BottomLeftCorner 0x00002 The bottom-left corner of the rectangle.
Qt.BottomRightCorner 0x00003 The bottom-right corner of the rectangle.

Qt.CursorMoveStyle

This enum describes the movement style available to text cursors. The options are:

Constant Value Description
Qt.LogicalMoveStyle 0 Within a left-to-right text block, decrease cursor position when pressing left arrow key, increase cursor position when pressing the right arrow key. If the text block is right-to-left, the opposite behavior applies.
Qt.VisualMoveStyle 1 Pressing the left arrow key will always cause the cursor to move left, regardless of the text's writing direction. Pressing the right arrow key will always cause the cursor to move right.

This enum was introduced or modified in Qt 4.8.

Qt.CursorShape

This enum type defines the various cursors that can be used.

The standard arrow cursor is the default for widgets in a normal state.

Constant Value Description
Qt.ArrowCursor 0 The standard arrow cursor.
Qt.UpArrowCursor 1 An arrow pointing upwards toward the top of the screen.
Qt.CrossCursor 2 A crosshair cursor, typically used to help the user accurately select a point on the screen.
Qt.WaitCursor 3 An hourglass or watch cursor, usually shown during operations that prevent the user from interacting with the application.
Qt.IBeamCursor 4 A caret or ibeam cursor, indicating that a widget can accept and display text input.
Qt.SizeVerCursor 5 A cursor used for elements that are used to vertically resize top-level windows.
Qt.SizeHorCursor 6 A cursor used for elements that are used to horizontally resize top-level windows.
Qt.SizeBDiagCursor 7 A cursor used for elements that are used to diagonally resize top-level windows at their top-right and bottom-left corners.
Qt.SizeFDiagCursor 8 A cursor used for elements that are used to diagonally resize top-level windows at their top-left and bottom-right corners.
Qt.SizeAllCursor 9 A cursor used for elements that are used to resize top-level windows in any direction.
Qt.BlankCursor 10 A blank/invisible cursor, typically used when the cursor shape needs to be hidden.
Qt.SplitVCursor 11 A cursor used for vertical splitters, indicating that a handle can be dragged horizontally to adjust the use of available space.
Qt.SplitHCursor 12 A cursor used for horizontal splitters, indicating that a handle can be dragged vertically to adjust the use of available space.
Qt.PointingHandCursor 13 A pointing hand cursor that is typically used for clickable elements such as hyperlinks.
Qt.ForbiddenCursor 14 A slashed circle cursor, typically used during drag and drop operations to indicate that dragged content cannot be dropped on particular widgets or inside certain regions.
Qt.OpenHandCursor 17 A cursor representing an open hand, typically used to indicate that the area under the cursor is the visible part of a canvas that the user can click and drag in order to scroll around.
Qt.ClosedHandCursor 18 A cursor representing a closed hand, typically used to indicate that a dragging operation is in progress that involves scrolling.
Qt.WhatsThisCursor 15 An arrow with a question mark, typically used to indicate the presence of What's This? help for a widget.
Qt.BusyCursor 16 An hourglass or watch cursor, usually shown during operations that allow the user to interact with the application while they are performed in the background.
Qt.DragMoveCursor 20 A cursor that is usually used when dragging an item.
Qt.DragCopyCursor 19 A cursor that is usually used when dragging an item to copy it.
Qt.DragLinkCursor 21 A cursor that is usually used when dragging an item to make a link to it.
Qt.BitmapCursor 24  

Qt.DateFormat

Constant Value Description
Qt.TextDate 0 The default Qt format, which includes the day and month name, the day number in the month, and the year in full. The day and month names will be short, localized names. This is basically equivalent to using the date format string, "ddd MMM d yyyy". See QDate.toString() for more information.
Qt.ISODate 1 ISO 8601 extended format: either YYYY-MM-DD for dates or YYYY-MM-DDTHH:mm:ss, YYYY-MM-DDTHH:mm:ssTZD (e.g., 1997-07-16T19:20:30+01:00) for combined dates and times.
Qt.SystemLocaleShortDate ? The short format used by the operating system.
Qt.SystemLocaleLongDate ? The long format used by the operating system.
Qt.DefaultLocaleShortDate ? The short format specified by the application's locale.
Qt.DefaultLocaleLongDate ? The long format used by the application's locale.
Qt.SystemLocaleDate 2 This enum value is deprecated. Use Qt.SystemLocaleShortDate instead (or Qt.SystemLocaleLongDate if you want long dates).
Qt.LocaleDate ? This enum value is deprecated. Use Qt.DefaultLocaleShortDate instead (or Qt.DefaultLocaleLongDate if you want long dates).
Qt.LocalDate SystemLocaleDate This enum value is deprecated. Use Qt.SystemLocaleShortDate instead (or Qt.SystemLocaleLongDate if you want long dates).

Note: For ISODate formats, each Y, M and D represents a single digit of the year, month and day used to specify the date. Each H, M and S represents a single digit of the hour, minute and second used to specify the time. The presence of a literal T character is used to separate the date and time when both are specified.

Qt.DayOfWeek

Constant Value
Qt.Monday 1
Qt.Tuesday 2
Qt.Wednesday 3
Qt.Thursday 4
Qt.Friday 5
Qt.Saturday 6
Qt.Sunday 7

Qt.DockWidgetArea

Constant Value
Qt.LeftDockWidgetArea 0x1
Qt.RightDockWidgetArea 0x2
Qt.TopDockWidgetArea 0x4
Qt.BottomDockWidgetArea 0x8
Qt.AllDockWidgetAreas DockWidgetArea_Mask
Qt.NoDockWidgetArea 0

The DockWidgetAreas type is a typedef for QFlags<DockWidgetArea>. It stores an OR combination of DockWidgetArea values.

Qt.DropAction

Constant Value Description
Qt.CopyAction 0x1 Copy the data to the target.
Qt.MoveAction 0x2 Move the data from the source to the target.
Qt.LinkAction 0x4 Create a link from the source to the target.
Qt.ActionMask 0xff  
Qt.IgnoreAction 0x0 Ignore the action (do nothing with the data).
Qt.TargetMoveAction 0x8002 On Windows, this value is used when the ownership of the D&D data should be taken over by the target application, i.e., the source application should not delete the data.
On X11 this value is used to do a move.
TargetMoveAction is not used on the Mac.

The DropActions type is a typedef for QFlags<DropAction>. It stores an OR combination of DropAction values.

Qt.EventPriority

This enum can be used to specify event priorities.

Constant Value Description
Qt.HighEventPriority 1 Events with this priority are sent before events with NormalEventPriority or LowEventPriority.
Qt.NormalEventPriority 0 Events with this priority are sent after events with HighEventPriority, but before events with LowEventPriority.
Qt.LowEventPriority -1 Events with this priority are sent after events with HighEventPriority or NormalEventPriority.

Note that these values are provided purely for convenience, since event priorities can be any value between INT_MAX and INT_MIN, inclusive. For example, you can define custom priorities as being relative to each other:

 enum CustomEventPriority
 {
     // An important event
     ImportantEventPriority = Qt.HighEventPriority,

     // A more important event
     MoreImportantEventPriority = ImportantEventPriority + 1,

     // A critical event
     CriticalEventPriority = 100 * MoreImportantEventPriority,

     // Not that important
     StatusEventPriority = Qt.LowEventPriority,

     // These are less important than Status events
     IdleProcessingDoneEventPriority = StatusEventPriority - 1
 };

See also QCoreApplication.postEvent().

Qt.FillRule

Specifies which method should be used to fill the paths and polygons.

Constant Value Description
Qt.OddEvenFill 0 Specifies that the region is filled using the odd even fill rule. With this rule, we determine whether a point is inside the shape by using the following method. Draw a horizontal line from the point to a location outside the shape, and count the number of intersections. If the number of intersections is an odd number, the point is inside the shape. This mode is the default.
Qt.WindingFill 1 Specifies that the region is filled using the non zero winding rule. With this rule, we determine whether a point is inside the shape by using the following method. Draw a horizontal line from the point to a location outside the shape. Determine whether the direction of the line at each intersection point is up or down. The winding number is determined by summing the direction of each intersection. If the number is non zero, the point is inside the shape. This fill mode can also in most cases be considered as the intersection of closed shapes.

Qt.FocusPolicy

This enum type defines the various policies a widget can have with respect to acquiring keyboard focus.

Constant Value Description
Qt.TabFocus 0x1 the widget accepts focus by tabbing.
Qt.ClickFocus 0x2 the widget accepts focus by clicking.
Qt.StrongFocus TabFocus | ClickFocus | 0x8 the widget accepts focus by both tabbing and clicking. On Mac OS X this will also be indicate that the widget accepts tab focus when in 'Text/List focus mode'.
Qt.WheelFocus StrongFocus | 0x4 like Qt.StrongFocus plus the widget accepts focus by using the mouse wheel.
Qt.NoFocus 0 the widget does not accept focus.

Qt.FocusReason

This enum specifies why the focus changed. It will be passed through QWidget.setFocus and can be retrieved in the QFocusEvent sent to the widget upon focus change.

Constant Value Description
Qt.MouseFocusReason 0 A mouse action occurred.
Qt.TabFocusReason 1 The Tab key was pressed.
Qt.BacktabFocusReason 2 A Backtab occurred. The input for this may include the Shift or Control keys; e.g. Shift+Tab.
Qt.ActiveWindowFocusReason 3 The window system made this window either active or inactive.
Qt.PopupFocusReason 4 The application opened/closed a pop-up that grabbed/released the keyboard focus.
Qt.ShortcutFocusReason 5 The user typed a label's buddy shortcut
Qt.MenuBarFocusReason 6 The menu bar took focus.
Qt.OtherFocusReason 7 Another reason, usually application-specific.

See also Keyboard Focus.

Qt.GestureFlag

This enum type describes additional flags that can be used when subscribing to a gesture.

Constant Value Description
Qt.DontStartGestureOnChildren 0x01 By default gestures can start on the widget or over any of its children. Use this flag to disable this and allow a gesture to start on the widget only.
Qt.ReceivePartialGestures 0x02 Allows any ignored gesture events to be propagated to parent widgets which have specified this hint. By default only gestures that are in the Qt.GestureStarted state are propagated and the widget always gets the full gesture sequence starting with a gesture in the Qt.GestureStarted state and ending with a gesture in the Qt.GestureFinished or Qt.GestureCanceled states.
Qt.IgnoredGesturesPropagateToParent 0x04 Since Qt 4.7, this flag allows you to fine-tune gesture event propagation. By setting the flag when grabbing a gesture all ignored partial gestures will propagate to their parent items.

This enum was introduced or modified in Qt 4.6.

The GestureFlags type is a typedef for QFlags<GestureFlag>. It stores an OR combination of GestureFlag values.

See also QWidget.grabGesture() and QGraphicsObject.grabGesture().

Qt.GestureState

This enum type describes the state of a gesture.

Constant Value Description
Qt.GestureStarted 1 A continuous gesture has started.
Qt.GestureUpdated 2 A gesture continues.
Qt.GestureFinished 3 A gesture has finished.
Qt.GestureCanceled 4 A gesture was canceled.

This enum was introduced or modified in Qt 4.6.

See also QGesture.

Qt.GestureType

This enum type describes the standard gestures.

Constant Value Description
Qt.TapGesture 1 A Tap gesture.
Qt.TapAndHoldGesture 2 A Tap-And-Hold (Long-Tap) gesture.
Qt.PanGesture 3 A Pan gesture.
Qt.PinchGesture 4 A Pinch gesture.
Qt.SwipeGesture 5 A Swipe gesture.
Qt.CustomGesture 0x0100 A flag that can be used to test if the gesture is a user-defined gesture ID.

User-defined gestures are registered with the QGestureRecognizer.registerRecognizer() function which generates a custom gesture ID with the Qt.CustomGesture flag set.

This enum was introduced or modified in Qt 4.6.

See also QGesture, QWidget.grabGesture(), and QGraphicsObject.grabGesture().

Qt.GlobalColor

Qt's predefined QColor objects:

Constant Value Description
Qt.white 3 White (#ffffff)
Qt.black 2 Black (#000000)
Qt.red 7 Red (#ff0000)
Qt.darkRed 13 Dark red (#800000)
Qt.green 8 Green (#00ff00)
Qt.darkGreen 14 Dark green (#008000)
Qt.blue 9 Blue (#0000ff)
Qt.darkBlue 15 Dark blue (#000080)
Qt.cyan 10 Cyan (#00ffff)
Qt.darkCyan 16 Dark cyan (#008080)
Qt.magenta 11 Magenta (#ff00ff)
Qt.darkMagenta 17 Dark magenta (#800080)
Qt.yellow 12 Yellow (#ffff00)
Qt.darkYellow 18 Dark yellow (#808000)
Qt.gray 5 Gray (#a0a0a4)
Qt.darkGray 4 Dark gray (#808080)
Qt.lightGray 6 Light gray (#c0c0c0)
Qt.transparent 19 a transparent black value (i.e., QColor(0, 0, 0, 0))
Qt.color0 0 0 pixel value (for bitmaps)
Qt.color1 1 1 pixel value (for bitmaps)

See also QColor.

Qt.HitTestAccuracy

This type is only available if the QtGui module is imported.

This enum contains the types of accuracy that can be used by the QTextDocument class when testing for mouse clicks on text documents.

Constant Value Description
Qt.ExactHit 0 The point at which input occurred must coincide exactly with input-sensitive parts of the document.
Qt.FuzzyHit 1 The point at which input occurred can lie close to input-sensitive parts of the document.

This enum is defined in the <QTextDocument> header file.

Qt.ImageConversionFlag

The options marked "(default)" are set if no other values from the list are included (since the defaults are zero):

Color/Mono preference (ignored for QBitmap):

Constant Value Description
Qt.AutoColor 0x00000000 (default) - If the image has depth 1 and contains only black and white pixels, the pixmap becomes monochrome.
Qt.ColorOnly 0x00000003 The pixmap is dithered/converted to the native display depth.
Qt.MonoOnly 0x00000002 The pixmap becomes monochrome. If necessary, it is dithered using the chosen dithering algorithm.

Dithering mode preference for RGB channels:

Constant Value Description
Qt.DiffuseDither 0x00000000 (default) - A high-quality dither.
Qt.OrderedDither 0x00000010 A faster, more ordered dither.
Qt.ThresholdDither 0x00000020 No dithering; closest color is used.

Dithering mode preference for alpha channel:

Constant Value Description
Qt.ThresholdAlphaDither 0x00000000 (default) - No dithering.
Qt.OrderedAlphaDither 0x00000004 A faster, more ordered dither.
Qt.DiffuseAlphaDither 0x00000008 A high-quality dither.

Color matching versus dithering preference:

Constant Value Description
Qt.PreferDither 0x00000040 (default when converting to a pixmap) - Always dither 32-bit images when the image is converted to 8 bits.
Qt.AvoidDither 0x00000080 (default when converting for the purpose of saving to file) - Dither 32-bit images only if the image has more than 256 colors and it is being converted to 8 bits.
Qt.NoOpaqueDetection 0x00000100 Do not check whether the image contains non-opaque pixels. Use this if you know that the image is semi-transparent and you want to avoid the overhead of checking the pixels in the image until a non-opaque pixel is found, or if you want the pixmap to retain an alpha channel for some other reason. If the image has no alpha channel this flag has no effect.

Don't do any format conversions on the image. Can be useful when converting a QImage to a QPixmap for a one-time rendering operation for example.

The ImageConversionFlags type is a typedef for QFlags<ImageConversionFlag>. It stores an OR combination of ImageConversionFlag values.

Qt.InputMethodHint

Constant Value Description
Qt.ImhNone 0x0 No hints.

Flags that alter the behavior:

Constant Value Description
Qt.ImhHiddenText 0x1 Characters should be hidden, as is typically used when entering passwords. This is automatically set when setting QLineEdit.echoMode to Password.
Qt.ImhNoAutoUppercase 0x2 The input method should not try to automatically switch to upper case when a sentence ends.
Qt.ImhPreferNumbers 0x4 Numbers are preferred (but not required).
Qt.ImhPreferUppercase 0x8 Upper case letters are preferred (but not required).
Qt.ImhPreferLowercase 0x10 Lower case letters are preferred (but not required).
Qt.ImhNoPredictiveText 0x20 Do not use predictive text (i.e. dictionary lookup) while typing.

Flags that restrict input (exclusive flags):

Constant Value Description
Qt.ImhDigitsOnly 0x10000 Only digits are allowed.
Qt.ImhFormattedNumbersOnly 0x20000 Only number input is allowed. This includes decimal point and minus sign.
Qt.ImhUppercaseOnly 0x40000 Only upper case letter input is allowed.
Qt.ImhLowercaseOnly 0x80000 Only lower case letter input is allowed.
Qt.ImhDialableCharactersOnly 0x100000 Only characters suitable for phone dialling are allowed.
Qt.ImhEmailCharactersOnly 0x200000 Only characters suitable for email addresses are allowed.
Qt.ImhUrlCharactersOnly 0x400000 Only characters suitable for URLs are allowed.

Masks:

Constant Value Description
Qt.ImhExclusiveInputMask 0xffff0000 This mask yields nonzero if any of the exclusive flags are used.

Note: If several exclusive flags are ORed together, the resulting character set will consist of the union of the specified sets. For instance specifying ImhNumbersOnly and ImhUppercaseOnly would yield a set consisting of numbers and uppercase letters.

The InputMethodHints type is a typedef for QFlags<InputMethodHint>. It stores an OR combination of InputMethodHint values.

See also QGraphicsItem.inputMethodHints().

Qt.InputMethodQuery

Constant Value Description
Qt.ImMicroFocus 0 The rectangle covering the area of the input cursor in widget coordinates.
Qt.ImFont 1 The currently used font for text input.
Qt.ImCursorPosition 2 The logical position of the cursor within the text surrounding the input area (see ImSurroundingText).
Qt.ImSurroundingText 3 The plain text around the input area, for example the current paragraph.
Qt.ImCurrentSelection 4 The currently selected text.
Qt.ImMaximumTextLength 5 The maximum number of characters that the widget can hold. If there is no limit, QVariant() is returned.
Qt.ImAnchorPosition 6 The position of the selection anchor. This may be less or greater than ImCursorPosition, depending on which side of selection the cursor is. If there is no selection, it returns the same as ImCursorPosition.

Qt.ItemDataRole

Each item in the model has a set of data elements associated with it, each with its own role. The roles are used by the view to indicate to the model which type of data it needs. Custom models should return data in these types.

The general purpose roles (and the associated types) are:

Constant Value Description
Qt.DisplayRole 0 The key data to be rendered in the form of text. (QString)
Qt.DecorationRole 1 The data to be rendered as a decoration in the form of an icon. (QColor, QIcon or QPixmap)
Qt.EditRole 2 The data in a form suitable for editing in an editor. (QString)
Qt.ToolTipRole 3 The data displayed in the item's tooltip. (QString)
Qt.StatusTipRole 4 The data displayed in the status bar. (QString)
Qt.WhatsThisRole 5 The data displayed for the item in "What's This?" mode. (QString)
Qt.SizeHintRole 13 The size hint for the item that will be supplied to views. (QSize)

Roles describing appearance and meta data (with associated types):

Constant Value Description
Qt.FontRole 6 The font used for items rendered with the default delegate. (QFont)
Qt.TextAlignmentRole 7 The alignment of the text for items rendered with the default delegate. (Qt.AlignmentFlag)
Qt.BackgroundRole 8 The background brush used for items rendered with the default delegate. (QBrush)
Qt.BackgroundColorRole 8 This role is obsolete. Use BackgroundRole instead.
Qt.ForegroundRole 9 The foreground brush (text color, typically) used for items rendered with the default delegate. (QBrush)
Qt.TextColorRole 9 This role is obsolete. Use ForegroundRole instead.
Qt.CheckStateRole 10 This role is used to obtain the checked state of an item. (Qt.CheckState)
Qt.InitialSortOrderRole 14 This role is used to obtain the initial sort order of a header view section. (Qt.SortOrder). This role was introduced in Qt 4.8.

Accessibility roles (with associated types):

Constant Value Description
Qt.AccessibleTextRole 11 The text to be used by accessibility extensions and plugins, such as screen readers. (QString)
Qt.AccessibleDescriptionRole 12 A description of the item for accessibility purposes. (QString)

User roles:

Constant Value Description
Qt.UserRole 32 The first role that can be used for application-specific purposes.

For user roles, it is up to the developer to decide which types to use and ensure that components use the correct types when accessing and setting data.

Qt.ItemFlag

This enum describes the properties of an item:

Constant Value Description
Qt.NoItemFlags 0 It does not have any properties set.
Qt.ItemIsSelectable 1 It can be selected.
Qt.ItemIsEditable 2 It can be edited.
Qt.ItemIsDragEnabled 4 It can be dragged.
Qt.ItemIsDropEnabled 8 It can be used as a drop target.
Qt.ItemIsUserCheckable 16 It can be checked or unchecked by the user.
Qt.ItemIsEnabled 32 The user can interact with the item.
Qt.ItemIsTristate 64 The item is checkable with three separate states.

Note that checkable items need to be given both a suitable set of flags and an initial state, indicating whether the item is checked or not. This is handled automatically for model/view components, but needs to be explicitly set for instances of QListWidgetItem, QTableWidgetItem, and QTreeWidgetItem.

The ItemFlags type is a typedef for QFlags<ItemFlag>. It stores an OR combination of ItemFlag values.

See also QAbstractItemModel.

Qt.ItemSelectionMode

This enum is used in QGraphicsItem, QGraphicsScene and QGraphicsView to specify how items are selected, or how to determine if a shapes and items collide.

Constant Value Description
Qt.ContainsItemShape 0x0 The output list contains only items whose shape is fully contained inside the selection area. Items that intersect with the area's outline are not included.
Qt.IntersectsItemShape 0x1 The output list contains both items whose shape is fully contained inside the selection area, and items that intersect with the area's outline. This is a common mode for rubber band selection.
Qt.ContainsItemBoundingRect 0x2 The output list contains only items whose bounding rectangle is fully contained inside the selection area. Items that intersect with the area's outline are not included.
Qt.IntersectsItemBoundingRect 0x3 The output list contains both items whose bounding rectangle is fully contained inside the selection area, and items that intersect with the area's outline. This method is commonly used for determining areas that need redrawing.

See also QGraphicsScene.items(), QGraphicsScene.collidingItems(), QGraphicsView.items(), QGraphicsItem.collidesWithItem(), and QGraphicsItem.collidesWithPath().

Qt.Key

The key names used by Qt.

Constant Value Description
Qt.Key_Escape 0x01000000  
Qt.Key_Tab 0x01000001  
Qt.Key_Backtab 0x01000002  
Qt.Key_Backspace 0x01000003  
Qt.Key_Return 0x01000004  
Qt.Key_Enter 0x01000005 Typically located on the keypad.
Qt.Key_Insert 0x01000006  
Qt.Key_Delete 0x01000007  
Qt.Key_Pause 0x01000008 The Pause/Break key (Note: Not anything to do with pausing media)
Qt.Key_Print 0x01000009  
Qt.Key_SysReq 0x0100000a  
Qt.Key_Clear 0x0100000b  
Qt.Key_Home 0x01000010  
Qt.Key_End 0x01000011  
Qt.Key_Left 0x01000012  
Qt.Key_Up 0x01000013  
Qt.Key_Right 0x01000014  
Qt.Key_Down 0x01000015  
Qt.Key_PageUp 0x01000016  
Qt.Key_PageDown 0x01000017  
Qt.Key_Shift 0x01000020  
Qt.Key_Control 0x01000021 On Mac OS X, this corresponds to the Command keys.
Qt.Key_Meta 0x01000022 On Mac OS X, this corresponds to the Control keys. On Windows keyboards, this key is mapped to the Windows key.
Qt.Key_Alt 0x01000023  
Qt.Key_AltGr 0x01001103 On Windows, when the KeyDown event for this key is sent, the Ctrl+Alt modifiers are also set.
Qt.Key_CapsLock 0x01000024  
Qt.Key_NumLock 0x01000025  
Qt.Key_ScrollLock 0x01000026  
Qt.Key_F1 0x01000030  
Qt.Key_F2 0x01000031  
Qt.Key_F3 0x01000032  
Qt.Key_F4 0x01000033  
Qt.Key_F5 0x01000034  
Qt.Key_F6 0x01000035  
Qt.Key_F7 0x01000036  
Qt.Key_F8 0x01000037  
Qt.Key_F9 0x01000038  
Qt.Key_F10 0x01000039  
Qt.Key_F11 0x0100003a  
Qt.Key_F12 0x0100003b  
Qt.Key_F13 0x0100003c  
Qt.Key_F14 0x0100003d  
Qt.Key_F15 0x0100003e  
Qt.Key_F16 0x0100003f  
Qt.Key_F17 0x01000040  
Qt.Key_F18 0x01000041  
Qt.Key_F19 0x01000042  
Qt.Key_F20 0x01000043  
Qt.Key_F21 0x01000044  
Qt.Key_F22 0x01000045  
Qt.Key_F23 0x01000046  
Qt.Key_F24 0x01000047  
Qt.Key_F25 0x01000048  
Qt.Key_F26 0x01000049  
Qt.Key_F27 0x0100004a  
Qt.Key_F28 0x0100004b  
Qt.Key_F29 0x0100004c  
Qt.Key_F30 0x0100004d  
Qt.Key_F31 0x0100004e  
Qt.Key_F32 0x0100004f  
Qt.Key_F33 0x01000050  
Qt.Key_F34 0x01000051  
Qt.Key_F35 0x01000052  
Qt.Key_Super_L 0x01000053  
Qt.Key_Super_R 0x01000054  
Qt.Key_Menu 0x01000055  
Qt.Key_Hyper_L 0x01000056  
Qt.Key_Hyper_R 0x01000057  
Qt.Key_Help 0x01000058  
Qt.Key_Direction_L 0x01000059  
Qt.Key_Direction_R 0x01000060  
Qt.Key_Space 0x20  
Qt.Key_Any Key_Space  
Qt.Key_Exclam 0x21  
Qt.Key_QuoteDbl 0x22  
Qt.Key_NumberSign 0x23  
Qt.Key_Dollar 0x24  
Qt.Key_Percent 0x25  
Qt.Key_Ampersand 0x26  
Qt.Key_Apostrophe 0x27  
Qt.Key_ParenLeft 0x28  
Qt.Key_ParenRight 0x29  
Qt.Key_Asterisk 0x2a  
Qt.Key_Plus 0x2b  
Qt.Key_Comma 0x2c  
Qt.Key_Minus 0x2d  
Qt.Key_Period 0x2e  
Qt.Key_Slash 0x2f  
Qt.Key_0 0x30  
Qt.Key_1 0x31  
Qt.Key_2 0x32  
Qt.Key_3 0x33  
Qt.Key_4 0x34  
Qt.Key_5 0x35  
Qt.Key_6 0x36  
Qt.Key_7 0x37  
Qt.Key_8 0x38  
Qt.Key_9 0x39  
Qt.Key_Colon 0x3a  
Qt.Key_Semicolon 0x3b  
Qt.Key_Less 0x3c  
Qt.Key_Equal 0x3d  
Qt.Key_Greater 0x3e  
Qt.Key_Question 0x3f  
Qt.Key_At 0x40  
Qt.Key_A 0x41  
Qt.Key_B 0x42  
Qt.Key_C 0x43  
Qt.Key_D 0x44  
Qt.Key_E 0x45  
Qt.Key_F 0x46  
Qt.Key_G 0x47  
Qt.Key_H 0x48  
Qt.Key_I 0x49  
Qt.Key_J 0x4a  
Qt.Key_K 0x4b  
Qt.Key_L 0x4c  
Qt.Key_M 0x4d  
Qt.Key_N 0x4e  
Qt.Key_O 0x4f  
Qt.Key_P 0x50  
Qt.Key_Q 0x51  
Qt.Key_R 0x52  
Qt.Key_S 0x53  
Qt.Key_T 0x54  
Qt.Key_U 0x55  
Qt.Key_V 0x56  
Qt.Key_W 0x57  
Qt.Key_X 0x58  
Qt.Key_Y 0x59  
Qt.Key_Z 0x5a  
Qt.Key_BracketLeft 0x5b  
Qt.Key_Backslash 0x5c  
Qt.Key_BracketRight 0x5d  
Qt.Key_AsciiCircum 0x5e  
Qt.Key_Underscore 0x5f  
Qt.Key_QuoteLeft 0x60  
Qt.Key_BraceLeft 0x7b  
Qt.Key_Bar 0x7c  
Qt.Key_BraceRight 0x7d  
Qt.Key_AsciiTilde 0x7e  
Qt.Key_nobreakspace 0x0a0  
Qt.Key_exclamdown 0x0a1  
Qt.Key_cent 0x0a2  
Qt.Key_sterling 0x0a3  
Qt.Key_currency 0x0a4  
Qt.Key_yen 0x0a5  
Qt.Key_brokenbar 0x0a6  
Qt.Key_section 0x0a7  
Qt.Key_diaeresis 0x0a8  
Qt.Key_copyright 0x0a9  
Qt.Key_ordfeminine 0x0aa  
Qt.Key_guillemotleft 0x0ab  
Qt.Key_notsign 0x0ac  
Qt.Key_hyphen 0x0ad  
Qt.Key_registered 0x0ae  
Qt.Key_macron 0x0af  
Qt.Key_degree 0x0b0  
Qt.Key_plusminus 0x0b1  
Qt.Key_twosuperior 0x0b2  
Qt.Key_threesuperior 0x0b3  
Qt.Key_acute 0x0b4  
Qt.Key_mu 0x0b5  
Qt.Key_paragraph 0x0b6  
Qt.Key_periodcentered 0x0b7  
Qt.Key_cedilla 0x0b8  
Qt.Key_onesuperior 0x0b9  
Qt.Key_masculine 0x0ba  
Qt.Key_guillemotright 0x0bb  
Qt.Key_onequarter 0x0bc  
Qt.Key_onehalf 0x0bd  
Qt.Key_threequarters 0x0be  
Qt.Key_questiondown 0x0bf  
Qt.Key_Agrave 0x0c0  
Qt.Key_Aacute 0x0c1  
Qt.Key_Acircumflex 0x0c2  
Qt.Key_Atilde 0x0c3  
Qt.Key_Adiaeresis 0x0c4  
Qt.Key_Aring 0x0c5  
Qt.Key_AE 0x0c6  
Qt.Key_Ccedilla 0x0c7  
Qt.Key_Egrave 0x0c8  
Qt.Key_Eacute 0x0c9  
Qt.Key_Ecircumflex 0x0ca  
Qt.Key_Ediaeresis 0x0cb  
Qt.Key_Igrave 0x0cc  
Qt.Key_Iacute 0x0cd  
Qt.Key_Icircumflex 0x0ce  
Qt.Key_Idiaeresis 0x0cf  
Qt.Key_ETH 0x0d0  
Qt.Key_Ntilde 0x0d1  
Qt.Key_Ograve 0x0d2  
Qt.Key_Oacute 0x0d3  
Qt.Key_Ocircumflex 0x0d4  
Qt.Key_Otilde 0x0d5  
Qt.Key_Odiaeresis 0x0d6  
Qt.Key_multiply 0x0d7  
Qt.Key_Ooblique 0x0d8  
Qt.Key_Ugrave 0x0d9  
Qt.Key_Uacute 0x0da  
Qt.Key_Ucircumflex 0x0db  
Qt.Key_Udiaeresis 0x0dc  
Qt.Key_Yacute 0x0dd  
Qt.Key_THORN 0x0de  
Qt.Key_ssharp 0x0df  
Qt.Key_division 0x0f7  
Qt.Key_ydiaeresis 0x0ff  
Qt.Key_Multi_key 0x01001120  
Qt.Key_Codeinput 0x01001137  
Qt.Key_SingleCandidate 0x0100113c  
Qt.Key_MultipleCandidate 0x0100113d  
Qt.Key_PreviousCandidate 0x0100113e  
Qt.Key_Mode_switch 0x0100117e  
Qt.Key_Kanji 0x01001121  
Qt.Key_Muhenkan 0x01001122  
Qt.Key_Henkan 0x01001123  
Qt.Key_Romaji 0x01001124  
Qt.Key_Hiragana 0x01001125  
Qt.Key_Katakana 0x01001126  
Qt.Key_Hiragana_Katakana 0x01001127  
Qt.Key_Zenkaku 0x01001128  
Qt.Key_Hankaku 0x01001129  
Qt.Key_Zenkaku_Hankaku 0x0100112a  
Qt.Key_Touroku 0x0100112b  
Qt.Key_Massyo 0x0100112c  
Qt.Key_Kana_Lock 0x0100112d  
Qt.Key_Kana_Shift 0x0100112e  
Qt.Key_Eisu_Shift 0x0100112f  
Qt.Key_Eisu_toggle 0x01001130  
Qt.Key_Hangul 0x01001131  
Qt.Key_Hangul_Start 0x01001132  
Qt.Key_Hangul_End 0x01001133  
Qt.Key_Hangul_Hanja 0x01001134  
Qt.Key_Hangul_Jamo 0x01001135  
Qt.Key_Hangul_Romaja 0x01001136  
Qt.Key_Hangul_Jeonja 0x01001138  
Qt.Key_Hangul_Banja 0x01001139  
Qt.Key_Hangul_PreHanja 0x0100113a  
Qt.Key_Hangul_PostHanja 0x0100113b  
Qt.Key_Hangul_Special 0x0100113f  
Qt.Key_Dead_Grave 0x01001250  
Qt.Key_Dead_Acute 0x01001251  
Qt.Key_Dead_Circumflex 0x01001252  
Qt.Key_Dead_Tilde 0x01001253  
Qt.Key_Dead_Macron 0x01001254  
Qt.Key_Dead_Breve 0x01001255  
Qt.Key_Dead_Abovedot 0x01001256  
Qt.Key_Dead_Diaeresis 0x01001257  
Qt.Key_Dead_Abovering 0x01001258  
Qt.Key_Dead_Doubleacute 0x01001259  
Qt.Key_Dead_Caron 0x0100125a  
Qt.Key_Dead_Cedilla 0x0100125b  
Qt.Key_Dead_Ogonek 0x0100125c  
Qt.Key_Dead_Iota 0x0100125d  
Qt.Key_Dead_Voiced_Sound 0x0100125e  
Qt.Key_Dead_Semivoiced_Sound 0x0100125f  
Qt.Key_Dead_Belowdot 0x01001260  
Qt.Key_Dead_Hook 0x01001261  
Qt.Key_Dead_Horn 0x01001262  
Qt.Key_Back 0x01000061  
Qt.Key_Forward 0x01000062  
Qt.Key_Stop 0x01000063  
Qt.Key_Refresh 0x01000064  
Qt.Key_VolumeDown 0x01000070  
Qt.Key_VolumeMute 0x01000071  
Qt.Key_VolumeUp 0x01000072  
Qt.Key_BassBoost 0x01000073  
Qt.Key_BassUp 0x01000074  
Qt.Key_BassDown 0x01000075  
Qt.Key_TrebleUp 0x01000076  
Qt.Key_TrebleDown 0x01000077  
Qt.Key_MediaPlay 0x01000080 A key setting the state of the media player to play
Qt.Key_MediaStop 0x01000081 A key setting the state of the media player to stop
Qt.Key_MediaPrevious 0x01000082  
Qt.Key_MediaNext 0x01000083  
Qt.Key_MediaRecord 0x01000084  
Qt.Key_MediaPause 0x1000085 A key setting the state of the media player to pause (Note: not the pause/break key)
Qt.Key_MediaTogglePlayPause 0x1000086 A key to toggle the play/pause state in the media player (rather than setting an absolute state)
Qt.Key_HomePage 0x01000090  
Qt.Key_Favorites 0x01000091  
Qt.Key_Search 0x01000092  
Qt.Key_Standby 0x01000093  
Qt.Key_OpenUrl 0x01000094  
Qt.Key_LaunchMail 0x010000a0  
Qt.Key_LaunchMedia 0x010000a1  
Qt.Key_Launch0 0x010000a2 On X11 this key is mapped to "My Computer" (XF86XK_MyComputer) key for legacy reasons.
Qt.Key_Launch1 0x010000a3 On X11 this key is mapped to "Calculator" (XF86XK_Calculator) key for legacy reasons.
Qt.Key_Launch2 0x010000a4 On X11 this key is mapped to XF86XK_Launch0 key for legacy reasons.
Qt.Key_Launch3 0x010000a5 On X11 this key is mapped to XF86XK_Launch1 key for legacy reasons.
Qt.Key_Launch4 0x010000a6 On X11 this key is mapped to XF86XK_Launch2 key for legacy reasons.
Qt.Key_Launch5 0x010000a7 On X11 this key is mapped to XF86XK_Launch3 key for legacy reasons.
Qt.Key_Launch6 0x010000a8 On X11 this key is mapped to XF86XK_Launch4 key for legacy reasons.
Qt.Key_Launch7 0x010000a9 On X11 this key is mapped to XF86XK_Launch5 key for legacy reasons.
Qt.Key_Launch8 0x010000aa On X11 this key is mapped to XF86XK_Launch6 key for legacy reasons.
Qt.Key_Launch9 0x010000ab On X11 this key is mapped to XF86XK_Launch7 key for legacy reasons.
Qt.Key_LaunchA 0x010000ac On X11 this key is mapped to XF86XK_Launch8 key for legacy reasons.
Qt.Key_LaunchB 0x010000ad On X11 this key is mapped to XF86XK_Launch9 key for legacy reasons.
Qt.Key_LaunchC 0x010000ae On X11 this key is mapped to XF86XK_LaunchA key for legacy reasons.
Qt.Key_LaunchD 0x010000af On X11 this key is mapped to XF86XK_LaunchB key for legacy reasons.
Qt.Key_LaunchE 0x010000b0 On X11 this key is mapped to XF86XK_LaunchC key for legacy reasons.
Qt.Key_LaunchF 0x010000b1 On X11 this key is mapped to XF86XK_LaunchD key for legacy reasons.
Qt.Key_LaunchG 0x0100010e On X11 this key is mapped to XF86XK_LaunchE key for legacy reasons.
Qt.Key_LaunchH 0x0100010f On X11 this key is mapped to XF86XK_LaunchF key for legacy reasons.
Qt.Key_MonBrightnessUp 0x010000b2  
Qt.Key_MonBrightnessDown 0x010000b3  
Qt.Key_KeyboardLightOnOff 0x010000b4  
Qt.Key_KeyboardBrightnessUp 0x010000b5  
Qt.Key_KeyboardBrightnessDown 0x010000b6  
Qt.Key_PowerOff 0x010000b7  
Qt.Key_WakeUp 0x010000b8  
Qt.Key_Eject 0x010000b9  
Qt.Key_ScreenSaver 0x010000ba  
Qt.Key_WWW 0x010000bb  
Qt.Key_Memo 0x010000bc  
Qt.Key_LightBulb 0x010000bd  
Qt.Key_Shop 0x010000be  
Qt.Key_History 0x010000bf  
Qt.Key_AddFavorite 0x010000c0  
Qt.Key_HotLinks 0x010000c1  
Qt.Key_BrightnessAdjust 0x010000c2  
Qt.Key_Finance 0x010000c3  
Qt.Key_Community 0x010000c4  
Qt.Key_AudioRewind 0x010000c5  
Qt.Key_BackForward 0x010000c6  
Qt.Key_ApplicationLeft 0x010000c7  
Qt.Key_ApplicationRight 0x010000c8  
Qt.Key_Book 0x010000c9  
Qt.Key_CD 0x010000ca  
Qt.Key_Calculator 0x010000cb On X11 this key is not mapped for legacy reasons. Use Qt.Key_Launch1 instead.
Qt.Key_ToDoList 0x010000cc  
Qt.Key_ClearGrab 0x010000cd  
Qt.Key_Close 0x010000ce  
Qt.Key_Copy 0x010000cf  
Qt.Key_Cut 0x010000d0  
Qt.Key_Display 0x010000d1  
Qt.Key_DOS 0x010000d2  
Qt.Key_Documents 0x010000d3  
Qt.Key_Excel 0x010000d4  
Qt.Key_Explorer 0x010000d5  
Qt.Key_Game 0x010000d6  
Qt.Key_Go 0x010000d7  
Qt.Key_iTouch 0x010000d8  
Qt.Key_LogOff 0x010000d9  
Qt.Key_Market 0x010000da  
Qt.Key_Meeting 0x010000db  
Qt.Key_MenuKB 0x010000dc  
Qt.Key_MenuPB 0x010000dd  
Qt.Key_MySites 0x010000de  
Qt.Key_News 0x010000df  
Qt.Key_OfficeHome 0x010000e0  
Qt.Key_Option 0x010000e1  
Qt.Key_Paste 0x010000e2  
Qt.Key_Phone 0x010000e3  
Qt.Key_Calendar 0x010000e4  
Qt.Key_Reply 0x010000e5  
Qt.Key_Reload 0x010000e6  
Qt.Key_RotateWindows 0x010000e7  
Qt.Key_RotationPB 0x010000e8  
Qt.Key_RotationKB 0x010000e9  
Qt.Key_Save 0x010000ea  
Qt.Key_Send 0x010000eb  
Qt.Key_Spell 0x010000ec  
Qt.Key_SplitScreen 0x010000ed  
Qt.Key_Support 0x010000ee  
Qt.Key_TaskPane 0x010000ef  
Qt.Key_Terminal 0x010000f0  
Qt.Key_Tools 0x010000f1  
Qt.Key_Travel 0x010000f2  
Qt.Key_Video 0x010000f3  
Qt.Key_Word 0x010000f4  
Qt.Key_Xfer 0x010000f5  
Qt.Key_ZoomIn 0x010000f6  
Qt.Key_ZoomOut 0x010000f7  
Qt.Key_Away 0x010000f8  
Qt.Key_Messenger 0x010000f9  
Qt.Key_WebCam 0x010000fa  
Qt.Key_MailForward 0x010000fb  
Qt.Key_Pictures 0x010000fc  
Qt.Key_Music 0x010000fd  
Qt.Key_Battery 0x010000fe  
Qt.Key_Bluetooth 0x010000ff  
Qt.Key_WLAN 0x01000100  
Qt.Key_UWB 0x01000101  
Qt.Key_AudioForward 0x01000102  
Qt.Key_AudioRepeat 0x01000103  
Qt.Key_AudioRandomPlay 0x01000104  
Qt.Key_Subtitle 0x01000105  
Qt.Key_AudioCycleTrack 0x01000106  
Qt.Key_Time 0x01000107  
Qt.Key_Hibernate 0x01000108  
Qt.Key_View 0x01000109  
Qt.Key_TopMenu 0x0100010a  
Qt.Key_PowerDown 0x0100010b  
Qt.Key_Suspend 0x0100010c  
Qt.Key_ContrastAdjust 0x0100010d  
Qt.Key_MediaLast 0x0100ffff  
Qt.Key_unknown 0x01ffffff  
Qt.Key_Call 0x01100004 A key to answer or initiate a call (see Qt.Key_ToggleCallHangup for a key to toggle current call state)
Qt.Key_Camera 0x01100020 A key to activate the camera shutter
Qt.Key_CameraFocus 0x01100021 A key to focus the camera
Qt.Key_Context1 0x01100000  
Qt.Key_Context2 0x01100001  
Qt.Key_Context3 0x01100002  
Qt.Key_Context4 0x01100003  
Qt.Key_Flip 0x01100006  
Qt.Key_Hangup 0x01100005 A key to end an ongoing call (see Qt.Key_ToggleCallHangup for a key to toggle current call state)
Qt.Key_No 0x01010002  
Qt.Key_Select 0x01010000  
Qt.Key_Yes 0x01010001  
Qt.Key_ToggleCallHangup 0x01100007 A key to toggle the current call state (ie. either answer, or hangup) depending on current call state
Qt.Key_VoiceDial 0x01100008  
Qt.Key_LastNumberRedial 0x01100009  
Qt.Key_Execute 0x01020003  
Qt.Key_Printer 0x01020002  
Qt.Key_Play 0x01020005  
Qt.Key_Sleep 0x01020004  
Qt.Key_Zoom 0x01020006  
Qt.Key_Cancel 0x01020001  

See also QKeyEvent.key().

Qt.KeyboardModifier

This enum describes the modifier keys.

Constant Value Description
Qt.NoModifier 0x00000000 No modifier key is pressed.
Qt.ShiftModifier 0x02000000 A Shift key on the keyboard is pressed.
Qt.ControlModifier 0x04000000 A Ctrl key on the keyboard is pressed.
Qt.AltModifier 0x08000000 An Alt key on the keyboard is pressed.
Qt.MetaModifier 0x10000000 A Meta key on the keyboard is pressed.
Qt.KeypadModifier 0x20000000 A keypad button is pressed.
Qt.GroupSwitchModifier 0x40000000 X11 only. A Mode_switch key on the keyboard is pressed.

Note: On Mac OS X, the ControlModifier value corresponds to the Command keys on the Macintosh keyboard, and the MetaModifier value corresponds to the Control keys. The KeypadModifier value will also be set when an arrow key is pressed as the arrow keys are considered part of the keypad.

Note: On Windows Keyboards, Qt.MetaModifier and Qt.Key_Meta are mapped to the Windows key.

The KeyboardModifiers type is a typedef for QFlags<KeyboardModifier>. It stores an OR combination of KeyboardModifier values.

See also MouseButton and Modifier.

Qt.LayoutDirection

Specifies the direction of Qt's layouts and text handling.

Constant Value Description
Qt.LeftToRight 0 Left-to-right layout.
Qt.RightToLeft 1 Right-to-left layout.
Qt.LayoutDirectionAuto 2 Automatic layout.

Right-to-left layouts are necessary for certain languages, notably Arabic and Hebrew.

LayoutDirectionAuto serves two purposes. When used in conjunction with widgets and layouts, it will imply to use the layout direction set on the parent widget or QApplication. This has the same effect as QWidget.unsetLayoutDirection().

When LayoutDirectionAuto is used in conjunction with text layouting, it will imply that the text directionality is determined from the content of the string to be layouted.

See also QApplication.setLayoutDirection(), QWidget.setLayoutDirection(), QTextOption.setTextDirection(), and QString.isRightToLeft().

Qt.MaskMode

This enum specifies the behavior of the QPixmap.createMaskFromColor() and QImage.createMaskFromColor() functions.

Constant Value Description
Qt.MaskInColor 0 Creates a mask where all pixels matching the given color are opaque.
Qt.MaskOutColor 1 Creates a mask where all pixels matching the given color are transparent.

Qt.MatchFlag

This enum describes the type of matches that can be used when searching for items in a model.

Constant Value Description
Qt.MatchExactly 0 Performs QVariant-based matching.
Qt.MatchFixedString 8 Performs string-based matching. String-based comparisons are case-insensitive unless the MatchCaseSensitive flag is also specified.
Qt.MatchContains 1 The search term is contained in the item.
Qt.MatchStartsWith 2 The search term matches the start of the item.
Qt.MatchEndsWith 3 The search term matches the end of the item.
Qt.MatchCaseSensitive 16 The search is case sensitive.
Qt.MatchRegExp 4 Performs string-based matching using a regular expression as the search term.
Qt.MatchWildcard 5 Performs string-based matching using a string with wildcards as the search term.
Qt.MatchWrap 32 Perform a search that wraps around, so that when the search reaches the last item in the model, it begins again at the first item and continues until all items have been examined.
Qt.MatchRecursive 64 Searches the entire hierarchy.

The MatchFlags type is a typedef for QFlags<MatchFlag>. It stores an OR combination of MatchFlag values.

See also QString.compare() and QRegExp.

Qt.Modifier

This enum provides shorter names for the keyboard modifier keys supported by Qt.

Note: On Mac OS X, the CTRL value corresponds to the Command keys on the Macintosh keyboard, and the META value corresponds to the Control keys.

Constant Value Description
Qt.SHIFT Qt.ShiftModifier The Shift keys provided on all standard keyboards.
Qt.META Qt.MetaModifier The Meta keys.
Qt.CTRL Qt.ControlModifier The Ctrl keys.
Qt.ALT Qt.AltModifier The normal Alt keys, but not keys like AltGr.
Qt.UNICODE_ACCEL 0x00000000 The shortcut is specified as a Unicode code point, not as a Qt Key.

See also KeyboardModifier and MouseButton.

Qt.MouseButton

This enum type describes the different mouse buttons.

Constant Value Description
Qt.NoButton 0x00000000 The button state does not refer to any button (see QMouseEvent.button()).
Qt.LeftButton 0x00000001 The left button is pressed, or an event refers to the left button. (The left button may be the right button on left-handed mice.)
Qt.RightButton 0x00000002 The right button.
Qt.MidButton 0x00000004 The middle button.
Qt.MiddleButton MidButton The middle button.
Qt.XButton1 0x00000008 The first X button.
Qt.XButton2 0x00000010 The second X button.

The MouseButtons type is a typedef for QFlags<MouseButton>. It stores an OR combination of MouseButton values.

See also KeyboardModifier and Modifier.

Qt.NavigationMode

This enum type describes the mode for moving focus.

Constant Value Description
Qt.NavigationModeNone 0 Only the touch screen is used.
Qt.NavigationModeKeypadTabOrder 1 Qt.Key_Up and Qt.Key_Down are used to change focus.
Qt.NavigationModeKeypadDirectional 2 Qt.Key_Up, Qt.Key_Down, Qt.Key_Left and Qt.Key_Right are used to change focus.
Qt.NavigationModeCursorAuto 3 The mouse cursor is used to change focus, it is displayed only on non touchscreen devices. The keypad is used to implement a virtual cursor, unless the device has an analog mouse type of input device (e.g. touchpad). This is the recommended setting for an application such as a web browser that needs pointer control on both touch and non-touch devices.
Qt.NavigationModeCursorForceVisible 4 The mouse cursor is used to change focus, it is displayed regardless of device type. The keypad is used to implement a virtual cursor, unless the device has an analog mouse type of input device (e.g. touchpad)

Note:: in 4.6, cursor navigation is only implemented for Symbian OS. On other platforms, it behaves as NavigationModeNone.

This enum was introduced or modified in Qt 4.6.

See also QApplication.setNavigationMode() and QApplication.navigationMode().

Qt.Orientation

This type is used to signify an object's orientation.

Constant Value
Qt.Horizontal 0x1
Qt.Vertical 0x2

Orientation is used with QScrollBar for example.

The Orientations type is a typedef for QFlags<Orientation>. It stores an OR combination of Orientation values.

Qt.PenCapStyle

This enum type defines the pen cap styles supported by Qt, i.e. the line end caps that can be drawn using QPainter.

Qt.SquareCap Qt.FlatCap Qt.RoundCap
Constant Value Description
Qt.FlatCap 0x00 a square line end that does not cover the end point of the line.
Qt.SquareCap 0x10 a square line end that covers the end point and extends beyond it by half the line width.
Qt.RoundCap 0x20 a rounded line end.

See also QPen.

Qt.PenJoinStyle

This enum type defines the pen join styles supported by Qt, i.e. which joins between two connected lines can be drawn using QPainter.

Qt.BevelJoin Qt.MiterJoin Qt.RoundJoin
Constant Value Description
Qt.MiterJoin 0x00 The outer edges of the lines are extended to meet at an angle, and this area is filled.
Qt.BevelJoin 0x40 The triangular notch between the two lines is filled.
Qt.RoundJoin 0x80 A circular arc between the two lines is filled.
Qt.SvgMiterJoin 0x100 A miter join corresponding to the definition of a miter join in the SVG 1.2 Tiny specification.

See also QPen.

Qt.PenStyle

This enum type defines the pen styles that can be drawn using QPainter. The styles are:

Qt.SolidLine Qt.DashLine Qt.DotLine
Qt.DashDotLine Qt.DashDotDotLine Qt.CustomDashLine
Constant Value Description
Qt.NoPen 0 no line at all. For example, QPainter.drawRect() fills but does not draw any boundary line.
Qt.SolidLine 1 A plain line.
Qt.DashLine 2 Dashes separated by a few pixels.
Qt.DotLine 3 Dots separated by a few pixels.
Qt.DashDotLine 4 Alternate dots and dashes.
Qt.DashDotDotLine 5 One dash, two dots, one dash, two dots.
Qt.CustomDashLine 6 A custom pattern defined using QPainterPathStroker.setDashPattern().

See also QPen.

Qt.ScrollBarPolicy

This enum type describes the various modes of QAbstractScrollArea's scroll bars.

Constant Value Description
Qt.ScrollBarAsNeeded 0 QAbstractScrollArea shows a scroll bar when the content is too large to fit and not otherwise. This is the default.
Qt.ScrollBarAlwaysOff 1 QAbstractScrollArea never shows a scroll bar.
Qt.ScrollBarAlwaysOn 2 QAbstractScrollArea always shows a scroll bar.

(The modes for the horizontal and vertical scroll bars are independent.)

Qt.ShortcutContext

For a QEvent.Shortcut event to occur, the shortcut's key sequence must be entered by the user in a context where the shortcut is active. The possible contexts are these:

Constant Value Description
Qt.WidgetShortcut 0 The shortcut is active when its parent widget has focus.
Qt.WidgetWithChildrenShortcut 3 The shortcut is active when its parent widget, or any of its children has focus. Children which are top-level widgets, except pop-ups, are not affected by this shortcut context.
Qt.WindowShortcut 1 The shortcut is active when its parent widget is a logical subwidget of the active top-level window.
Qt.ApplicationShortcut 2 The shortcut is active when one of the applications windows are active.

Qt.SizeHint

This enum is used by QGraphicsLayoutItem.sizeHint()

Constant Value Description
Qt.MinimumSize 0 is used to specify the minimum size of a graphics layout item.
Qt.PreferredSize 1 is used to specify the preferred size of a graphics layout item.
Qt.MaximumSize 2 is used to specify the maximum size of a graphics layout item.
Qt.MinimumDescent 3 is used to specify the minimum descent of a text string in a graphics layout item.

This enum was introduced or modified in Qt 4.4.

See also QGraphicsLayoutItem.sizeHint().

Qt.SizeMode

This enum is used by QPainter.drawRoundedRect() and QPainterPath.addRoundedRect() functions to specify the radii of rectangle corners with respect to the dimensions of the bounding rectangles specified.

Constant Value Description
Qt.AbsoluteSize 0 Specifies the size using absolute measurements.
Qt.RelativeSize 1 Specifies the size relative to the bounding rectangle, typically using percentage measurements.

This enum was introduced or modified in Qt 4.4.

Qt.SortOrder

This enum describes how the items in a widget are sorted.

Constant Value Description
Qt.AscendingOrder 0 The items are sorted ascending e.g. starts with 'AAA' ends with 'ZZZ' in Latin-1 locales
Qt.DescendingOrder 1 The items are sorted descending e.g. starts with 'ZZZ' ends with 'AAA' in Latin-1 locales

Qt.TextElideMode

This enum specifies where the ellipsis should appear when displaying texts that don't fit:

Constant Value Description
Qt.ElideLeft 0 The ellipsis should appear at the beginning of the text.
Qt.ElideRight 1 The ellipsis should appear at the end of the text.
Qt.ElideMiddle 2 The ellipsis should appear in the middle of the text.
Qt.ElideNone 3 Ellipsis should NOT appear in the text.

Qt.ElideMiddle is normally the most appropriate choice for URLs (e.g., "http://bugreports.qt.../QTWEBSITE-13/"), whereas Qt.ElideRight is appropriate for other strings (e.g., "Deploying Applications on Ma...").

See also QAbstractItemView.textElideMode, QFontMetrics.elidedText(), AlignmentFlag, and QTabBar.elideMode.

Qt.TextFlag

This enum type is used to define some modifier flags. Some of these flags only make sense in the context of printing:

Constant Value Description
Qt.TextSingleLine 0x0100 Treats all whitespace as spaces and prints just one line.
Qt.TextDontClip 0x0200 If it's impossible to stay within the given bounds, it prints outside.
Qt.TextExpandTabs 0x0400 Makes the U+0009 (ASCII tab) character move to the next tab stop.
Qt.TextShowMnemonic 0x0800 Displays the string "&P" as P (see QButton for an example). For an ampersand, use "&&".
Qt.TextWordWrap 0x1000 Breaks lines at appropriate points, e.g. at word boundaries.
Qt.TextWrapAnywhere 0x2000 Breaks lines anywhere, even within words.
Qt.TextHideMnemonic 0x8000 Same as Qt.TextShowMnemonic but doesn't draw the underlines.
Qt.TextDontPrint 0x4000 Treat this text as "hidden" and don't print it.
Qt.IncludeTrailingSpaces TextIncludeTrailingSpaces When this option is set, QTextLine.naturalTextWidth() and naturalTextRect() will return a value that includes the width of trailing spaces in the text; otherwise this width is excluded.
Qt.TextIncludeTrailingSpaces 0x08000000 Same as IncludeTrailingSpaces
Qt.TextJustificationForced 0x10000 Ensures that text lines are justified.

Ensures that the longest variant is always used when computing the size of a multi-variant string. (Internal)

You can use as many modifier flags as you want, except that Qt.TextSingleLine and Qt.TextWordWrap cannot be combined.

Flags that are inappropriate for a given use are generally ignored.

Qt.TextFormat

This enum is used in widgets that can display both plain text and rich text, e.g. QLabel. It is used for deciding whether a text string should be interpreted as one or the other. This is normally done by passing one of the enum values to a setTextFormat() function.

Constant Value Description
Qt.PlainText 0 The text string is interpreted as a plain text string.
Qt.RichText 1 The text string is interpreted as a rich text string.
Qt.AutoText 2 The text string is interpreted as for Qt.RichText if Qt.mightBeRichText() returns true, otherwise as Qt.PlainText.
Qt.LogText 3 A special, limited text format which is only used by Q3TextEdit in an optimized mode.

Qt.TextInteractionFlag

This enum specifies how a text displaying widget reacts to user input.

Constant Value Description
Qt.NoTextInteraction 0 No interaction with the text is possible.
Qt.TextSelectableByMouse 1 Text can be selected with the mouse and copied to the clipboard using a context menu or standard keyboard shortcuts.
Qt.TextSelectableByKeyboard 2 Text can be selected with the cursor keys on the keyboard. A text cursor is shown.
Qt.LinksAccessibleByMouse 4 Links can be highlighted and activated with the mouse.
Qt.LinksAccessibleByKeyboard 8 Links can be focused using tab and activated with enter.
Qt.TextEditable 16 The text is fully editable.
Qt.TextEditorInteraction TextSelectableByMouse | TextSelectableByKeyboard | TextEditable The default for a text editor.
Qt.TextBrowserInteraction TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard The default for QTextBrowser.

The TextInteractionFlags type is a typedef for QFlags<TextInteractionFlag>. It stores an OR combination of TextInteractionFlag values.

Qt.TileRule

This enum describes how to repeat or stretch the parts of an image when drawing.

Constant Value Description
Qt.StretchTile 0 Scale the image to fit to the available area.
Qt.RepeatTile 1 Repeat the image until there is no more space. May crop the last image.
Qt.RoundTile 2 Similar to Repeat, but scales the image down to ensure that the last tile is not cropped.

This enum was introduced or modified in Qt 4.6.

Qt.TimeSpec

Constant Value Description
Qt.LocalTime 0 Locale dependent time (Timezones and Daylight Savings Time).
Qt.UTC 1 Coordinated Universal Time, replaces Greenwich Mean Time.
Qt.OffsetFromUTC 2 An offset in seconds from Coordinated Universal Time.

Qt.ToolBarArea

Constant Value
Qt.LeftToolBarArea 0x1
Qt.RightToolBarArea 0x2
Qt.TopToolBarArea 0x4
Qt.BottomToolBarArea 0x8
Qt.AllToolBarAreas ToolBarArea_Mask
Qt.NoToolBarArea 0

The ToolBarAreas type is a typedef for QFlags<ToolBarArea>. It stores an OR combination of ToolBarArea values.

Qt.ToolButtonStyle

The style of the tool button, describing how the button's text and icon should be displayed.

Constant Value Description
Qt.ToolButtonIconOnly 0 Only display the icon.
Qt.ToolButtonTextOnly 1 Only display the text.
Qt.ToolButtonTextBesideIcon 2 The text appears beside the icon.
Qt.ToolButtonTextUnderIcon 3 The text appears under the icon.
Qt.ToolButtonFollowStyle 4 Follow the style.

Qt.TouchPointState

This enum represents the state of a touch point at the time the QTouchEvent occurred.

Constant Value Description
Qt.TouchPointPressed 0x01 The touch point is now pressed.
Qt.TouchPointMoved 0x02 The touch point moved.
Qt.TouchPointStationary 0x04 The touch point did not move.
Qt.TouchPointReleased 0x08 The touch point was released.

This enum was introduced or modified in Qt 4.6.

The TouchPointStates type is a typedef for QFlags<TouchPointState>. It stores an OR combination of TouchPointState values.

Qt.TransformationMode

This enum type defines whether image transformations (e.g., scaling) should be smooth or not.

Constant Value Description
Qt.FastTransformation 0 The transformation is performed quickly, with no smoothing.
Qt.SmoothTransformation 1 The resulting image is transformed using bilinear filtering.

See also QImage.scaled().

Qt.UIEffect

This enum describes the available UI effects.

By default, Qt will try to use the platform specific desktop settings for each effect. Use the QApplication.setDesktopSettingsAware() function (passing false as argument) to prevent this, and the QApplication.setEffectEnabled() to enable or disable a particular effect.

Note that all effects are disabled on screens running at less than 16-bit color depth.

Constant Value Description
Qt.UI_AnimateMenu 1 Show animated menus.
Qt.UI_FadeMenu 2 Show faded menus.
Qt.UI_AnimateCombo 3 Show animated comboboxes.
Qt.UI_AnimateTooltip 4 Show tooltip animations.
Qt.UI_FadeTooltip 5 Show tooltip fading effects.
Qt.UI_AnimateToolBox 6 Reserved

See also QApplication.setEffectEnabled() and QApplication.setDesktopSettingsAware().

Qt.WhiteSpaceMode

This type is only available if the QtGui module is imported.

This enum describes the types of whitespace mode that are used by the QTextDocument class to meet the requirements of different kinds of textual information.

Constant Value Description
Qt.WhiteSpaceNormal 0 The whitespace mode used to display normal word wrapped text in paragraphs.
Qt.WhiteSpacePre 1 A preformatted text mode in which whitespace is reproduced exactly.
Qt.WhiteSpaceNoWrap 2  

This enum is defined in the <QTextDocument> header file.

Qt.WidgetAttribute

This enum type is used to specify various widget attributes. Attributes are set and cleared with QWidget.setAttribute(), and queried with QWidget.testAttribute(), although some have special convenience functions which are mentioned below.

Constant Value Description
Qt.WA_AcceptDrops 78 Allows data from drag and drop operations to be dropped onto the widget (see QWidget.setAcceptDrops()).
Qt.WA_AlwaysShowToolTips 84 Enables tooltips for inactive windows.
Qt.WA_ContentsPropagated 3 This flag is superfluous and obsolete; it no longer has any effect. Since Qt 4.1, all widgets that do not set WA_PaintOnScreen propagate their contents.
Qt.WA_CustomWhatsThis 47 Indicates that the widget wants to continue operating normally in "What's This?" mode. This is set by the widget's author.
Qt.WA_DeleteOnClose 55 Makes Qt delete this widget when the widget has accepted the close event (see QWidget.closeEvent()).
Qt.WA_Disabled 0 Indicates that the widget is disabled, i.e. it does not receive any mouse or keyboard events. There is also a getter functions QWidget.isEnabled(). This is set/cleared by the Qt kernel.
Qt.WA_DontShowOnScreen 103 Indicates that the widget is hidden or is not a part of the viewable Desktop.
Qt.WA_ForceDisabled 32 Indicates that the widget is explicitly disabled, i.e. it will remain disabled even when all its ancestors are set to the enabled state. This implies WA_Disabled. This is set/cleared by QWidget.setEnabled() and QWidget.setDisabled().
Qt.WA_ForceUpdatesDisabled 59 Indicates that updates are explicitly disabled for the widget; i.e. it will remain disabled even when all its ancestors are set to the updates-enabled state. This implies WA_UpdatesDisabled. This is set/cleared by QWidget.setUpdatesEnabled().
Qt.WA_GroupLeader 72 This attribute has been deprecated. Use QWidget.windowModality instead.
Qt.WA_Hover 74 Forces Qt to generate paint events when the mouse enters or leaves the widget. This feature is typically used when implementing custom styles; see the Styles example for details.
Qt.WA_InputMethodEnabled 14 Enables input methods for Asian languages. Must be set when creating custom text editing widgets. On Windows CE and Symbian this flag can be used in addition to QApplication.autoSipEnabled to automatically display the SIP when entering a widget.
Qt.WA_KeyboardFocusChange 77 Set on a toplevel window when the users changes focus with the keyboard (tab, backtab, or shortcut).
Qt.WA_KeyCompression 33 Enables key event compression if set, and disables it if not set. By default key compression is off, so widgets receive one key press event for each key press (or more, since autorepeat is usually on). If you turn it on and your program doesn't keep up with key input, Qt may try to compress key events so that more than one character can be processed in each event. For example, a word processor widget might receive 2, 3 or more characters in each QKeyEvent.text(), if the layout recalculation takes too long for the CPU. If a widget supports multiple character unicode input, it is always safe to turn the compression on. Qt performs key event compression only for printable characters. Qt.Modifier keys, cursor movement keys, function keys and miscellaneous action keys (e.g. Escape, Enter, Backspace, PrintScreen) will stop key event compression, even if there are more compressible key events available. Platforms other than Mac and X11 do not support this compression, in which case turning it on will have no effect. This is set/cleared by the widget's author.
Qt.WA_LayoutOnEntireRect 48 Indicates that the widget wants QLayout to operate on the entire QWidget.rect(), not only on QWidget.contentsRect(). This is set by the widget's author.
Qt.WA_LayoutUsesWidgetRect 92 Ignore the layout item rect from the style when laying out this widget with QLayout. This makes a difference in QMacStyle and QPlastiqueStyle for some widgets.
Qt.WA_MacNoClickThrough 12 When a widget that has this attribute set is clicked, and its window is inactive, the click will make the window active but won't be seen by the widget. Typical use of this attribute is on widgets with "destructive" actions, such as a "Delete" button. WA_MacNoClickThrough also applies to all child widgets of the widget that has it set.
Qt.WA_MacOpaqueSizeGrip 85 Indicates that the native Carbon size grip should be opaque instead of transparent (the default). This attribute is only applicable to Mac OS X and is set by the widget's author.
Qt.WA_MacShowFocusRect 88 Indicates that this widget should get a QFocusFrame around it. Some widgets draw their own focus halo regardless of this attribute. Not that the QWidget.focusPolicy also plays the main role in whether something is given focus or not, this only controls whether or not this gets the focus frame. This attribute is only applicable to Mac OS X.
Qt.WA_MacNormalSize 89 Indicates the widget should have the normal size for widgets in Mac OS X. This attribute is only applicable to Mac OS X.
Qt.WA_MacSmallSize 90 Indicates the widget should have the small size for widgets in Mac OS X. This attribute is only applicable to Mac OS X.
Qt.WA_MacMiniSize 91 Indicates the widget should have the mini size for widgets in Mac OS X. This attribute is only applicable to Mac OS X.
Qt.WA_MacVariableSize 102 Indicates the widget can choose between alternative sizes for widgets to avoid clipping. This attribute is only applicable to Mac OS X.
Qt.WA_MacBrushedMetal 46 Indicates the widget should be drawn in the brushed metal style as supported by the windowing system. This attribute is only applicable to Mac OS X.
Qt.WA_Mapped 11 Indicates that the widget is mapped on screen. This is set/cleared by the Qt kernel.
Qt.WA_MouseNoMask 71 Makes the widget receive mouse events for the entire widget regardless of the currently set mask, overriding QWidget.setMask(). This is not applicable for top-level windows.
Qt.WA_MouseTracking 2 Indicates that the widget has mouse tracking enabled. See QWidget.mouseTracking.
Qt.WA_Moved 43 Indicates that the widget has an explicit position. This is set/cleared by QWidget.move() and by QWidget.setGeometry().
Qt.WA_MSWindowsUseDirect3D 94 This value is obsolete and has no effect.
Qt.WA_NoBackground WA_OpaquePaintEvent This value is obsolete. Use WA_OpaquePaintEvent instead.
Qt.WA_NoChildEventsForParent 58 Indicates that the widget does not want ChildAdded or ChildRemoved events sent to its parent. This is rarely necessary but can help to avoid automatic insertion widgets like splitters and layouts. This is set by a widget's author.
Qt.WA_NoChildEventsFromChildren 39 Indicates that the widget does not want to receive ChildAdded or ChildRemoved events sent from its children. This is set by a widget's author.
Qt.WA_NoMouseReplay 54 Used for pop-up widgets. Indicates that the most recent mouse press event should not be replayed when the pop-up widget closes. The flag is set by the widget's author and cleared by the Qt kernel every time the widget receives a new mouse event.
Qt.WA_NoMousePropagation 73 Prohibits mouse events from being propagated to the widget's parent. This attribute is disabled by default.
Qt.WA_TransparentForMouseEvents 51 When enabled, this attribute disables the delivery of mouse events to the widget and its children. Mouse events are delivered to other widgets as if the widget and its children were not present in the widget hierarchy; mouse clicks and other events effectively "pass through" them. This attribute is disabled by default.
Qt.WA_NoSystemBackground 9 Indicates that the widget has no background, i.e. when the widget receives paint events, the background is not automatically repainted. Note: Unlike WA_OpaquePaintEvent, newly exposed areas are never filled with the background (e.g., after showing a window for the first time the user can see "through" it until the application processes the paint events). This flag is set or cleared by the widget's author.
Qt.WA_OpaquePaintEvent 4 Indicates that the widget paints all its pixels when it receives a paint event. Thus, it is not required for operations like updating, resizing, scrolling and focus changes to erase the widget before generating paint events. The use of WA_OpaquePaintEvent provides a small optimization by helping to reduce flicker on systems that do not support double buffering and avoiding computational cycles necessary to erase the background prior to painting. Note: Unlike WA_NoSystemBackground, WA_OpaquePaintEvent makes an effort to avoid transparent window backgrounds. This flag is set or cleared by the widget's author.
Qt.WA_OutsideWSRange 49 Indicates that the widget is outside the valid range of the window system's coordinate system. A widget outside the valid range cannot be mapped on screen. This is set/cleared by the Qt kernel.
Qt.WA_PaintOnScreen 8 Indicates that the widget wants to draw directly onto the screen. Widgets with this attribute set do not participate in composition management, i.e. they cannot be semi-transparent or shine through semi-transparent overlapping widgets. Note: This flag is only supported on X11 and it disables double buffering. On Qt for Embedded Linux, the flag only works when set on a top-level widget and it relies on support from the active screen driver. This flag is set or cleared by the widget's author. To render outside of Qt's paint system, e.g., if you require native painting primitives, you need to reimplement QWidget.paintEngine() to return 0 and set this flag.
Qt.WA_PaintOutsidePaintEvent 13 Makes it possible to use QPainter to paint on the widget outside paintEvent(). This flag is not supported on Windows, Mac OS X or Embedded Linux. We recommend that you use it only when porting Qt 3 code to Qt 4.
Qt.WA_PaintUnclipped 52 Makes all painters operating on this widget unclipped. Children of this widget or other widgets in front of it do not clip the area the painter can paint on. This flag is only supported for widgets with the WA_PaintOnScreen flag set. The preferred way to do this in a cross platform way is to create a transparent widget that lies in front of the other widgets.
Qt.WA_PendingMoveEvent 34 Indicates that a move event is pending, e.g., when a hidden widget was moved. This flag is set or cleared by the Qt kernel.
Qt.WA_PendingResizeEvent 35 Indicates that a resize event is pending, e.g., when a hidden widget was resized. This flag is set or cleared by the Qt kernel.
Qt.WA_QuitOnClose 76 Makes Qt quit the application when the last widget with the attribute set has accepted closeEvent(). This behavior can be modified with the QApplication.quitOnLastWindowClosed property. By default this attribute is set for all widgets of type Qt.Window.
Qt.WA_Resized 42 Indicates that the widget has an explicit size. This flag is set or cleared by QWidget.resize() and QWidget.setGeometry().
Qt.WA_RightToLeft 56 Indicates that the layout direction for the widget is right to left.
Qt.WA_SetCursor 38 Indicates that the widget has a cursor of its own. This flag is set or cleared by QWidget.setCursor() and QWidget.unsetCursor().
Qt.WA_SetFont 37 Indicates that the widget has a font of its own. This flag is set or cleared by QWidget.setFont().
Qt.WA_SetPalette 36 Indicates that the widget has a palette of its own. This flag is set or cleared by QWidget.setPalette().
Qt.WA_SetStyle 86 Indicates that the widget has a style of its own. This flag is set or cleared by QWidget.setStyle().
Qt.WA_ShowModal 70 This attribute has been deprecated. Use QWidget.windowModality instead.
Qt.WA_StaticContents 5 Indicates that the widget contents are north-west aligned and static. On resize, such a widget will receive paint events only for parts of itself that are newly visible. This flag is set or cleared by the widget's author.
Qt.WA_StyleSheet 97 Indicates that the widget is styled using a style sheet.
Qt.WA_TranslucentBackground 120 Indicates that the widget should have a translucent background, i.e., any non-opaque regions of the widgets will be translucent because the widget will have an alpha channel. Setting this flag causes WA_NoSystemBackground to be set. On Windows the widget also needs the Qt.FramelessWindowHint window flag to be set. This flag is set or cleared by the widget's author.
Qt.WA_UnderMouse 1 Indicates that the widget is under the mouse cursor. The value is not updated correctly during drag and drop operations. There is also a getter function, QWidget.underMouse(). This flag is set or cleared by the Qt kernel.
Qt.WA_UpdatesDisabled 10 Indicates that updates are blocked (including the system background). This flag is set or cleared by the Qt kernel.

Warning: This flag must never be set or cleared by the widget's author.

Constant Value Description
Qt.WA_WindowModified 41 Indicates that the window is marked as modified. On some platforms this flag will do nothing, on others (including Mac OS X and Windows) the window will take a modified appearance. This flag is set or cleared by QWidget.setWindowModified().
Qt.WA_WindowPropagation 80 Makes a toplevel window inherit font and palette from its parent.
Qt.WA_MacAlwaysShowToolWindow 96 On Mac OS X, show the tool window even when the application is not active. By default, all tool windows are hidden when the application is inactive.
Qt.WA_SetLocale 87 Indicates the locale should be taken into consideration in the widget.
Qt.WA_StyledBackground 93 Indicates the widget should be drawn using a styled background.
Qt.WA_ShowWithoutActivating 98 Show the widget without making it active.
Qt.WA_NativeWindow 100 Indicates that a native window is created for the widget. Enabling this flag will also force a native window for the widget's ancestors unless Qt.WA_DontCreateNativeAncestors is set.
Qt.WA_DontCreateNativeAncestors 101 Indicates that the widget's ancestors are kept non-native even though the widget itself is native.
Qt.WA_X11NetWmWindowTypeDesktop 104 Adds _NET_WM_WINDOW_TYPE_DESKTOP to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms.
Qt.WA_X11NetWmWindowTypeDock 105 Adds _NET_WM_WINDOW_TYPE_DOCK to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms.
Qt.WA_X11NetWmWindowTypeToolBar 106 Adds _NET_WM_WINDOW_TYPE_TOOLBAR to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automaticaly sets this attribute for QToolBar.
Qt.WA_X11NetWmWindowTypeMenu 107 Adds _NET_WM_WINDOW_TYPE_MENU to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automatically sets this attribute for QMenu when torn-off.
Qt.WA_X11NetWmWindowTypeUtility 108 Adds _NET_WM_WINDOW_TYPE_UTILITY to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automatically sets this attribute for the Qt.Tool window type.
Qt.WA_X11NetWmWindowTypeSplash 109 Adds _NET_WM_WINDOW_TYPE_SPLASH to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automatically sets this attribute for the Qt.SplashScreen window type.
Qt.WA_X11NetWmWindowTypeDialog 110 Adds _NET_WM_WINDOW_TYPE_DIALOG to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automatically sets this attribute for the Qt.Dialog and Qt.Sheet window types.
Qt.WA_X11NetWmWindowTypeDropDownMenu 111 Adds _NET_WM_WINDOW_TYPE_DROPDOWN_MENU to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automatically sets this attribute for QMenus added to a QMenuBar.
Qt.WA_X11NetWmWindowTypePopupMenu 112 Adds _NET_WM_WINDOW_TYPE_POPUP_MENU to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automatically sets this attribute for QMenu.
Qt.WA_X11NetWmWindowTypeToolTip 113 Adds _NET_WM_WINDOW_TYPE_TOOLTIP to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automatically sets this attribute for the Qt.ToolTip window type.
Qt.WA_X11NetWmWindowTypeNotification 114 Adds _NET_WM_WINDOW_TYPE_NOTIFICATION to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms.
Qt.WA_X11NetWmWindowTypeCombo 115 Adds _NET_WM_WINDOW_TYPE_COMBO to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automatically sets this attribute for the QComboBox pop-up.
Qt.WA_X11NetWmWindowTypeDND 116 Adds _NET_WM_WINDOW_TYPE_DND to the window's _NET_WM_WINDOW_TYPE X11 window property. See http://standards.freedesktop.org/wm-spec/ for more details. This attribute has no effect on non-X11 platforms. Note: Qt automatically sets this attribute on the feedback widget used during a drag.
Qt.WA_MacFrameworkScaled 117 Enables resolution independence aware mode on Mac when using Carbon. This attribute has no effect on Cocoa. The attribute is off by default and can be enabled on a per-window basis.
Qt.WA_AcceptTouchEvents 121 Allows touch events (see QTouchEvent) to be sent to the widget. Must be set on all widgets that can handle touch events. Without this attribute set, events from a touch device will be sent as mouse events.
Qt.WA_TouchPadAcceptSingleTouchEvents 123 Allows touchpad single touch events to be sent to the widget.
Qt.WA_MergeSoftkeys 124 Allows widget to merge softkeys with parent widget, i.e. widget can set only one softkeys and request softkey implementation to take rest of the softkeys from the parent. Note parents are traversed until WA_MergeSoftkeys is not set. See also Qt.WA_MergeSoftkeysRecursively This attribute currently has effect only on Symbian platforms
Qt.WA_MergeSoftkeysRecursively 125 Allows widget to merge softkeys recursively with all parents. If this attribute is set, the widget parents are traversed until window boundary (widget without parent or dialog) is found. This attribute currently has effect only on Symbian platforms
Qt.WA_X11DoNotAcceptFocus 132 Asks the window manager to not give focus to this top level window. This attribute has no effect on non-X11 platforms.
Qt.WA_LockPortraitOrientation 128 Locks the widget to a portrait orientation, ignoring changes to the display's orientation with respect to the user.
Qt.WA_LockLandscapeOrientation 129 Locks the widget to a landscape orientation, ignoring changes to the display's orientation with respect to the user.
Qt.WA_AutoOrientation 130 Causes the widget to change orientation whenever the display changes orientation with respect to the user.
Qt.WA_MacNoShadow 134 Since Qt 4.8, this attribute disables drop shadows for this top level window. Only affects Cocoa builds of Qt for Mac OS X.

Qt.WindowFrameSection

This enum is used to describe parts of a window frame. It is returned by QGraphicsWidget.windowFrameSectionAt() to describe what section of the window frame is under the mouse.

Constant Value
Qt.NoSection 0
Qt.LeftSection 1
Qt.TopLeftSection 2
Qt.TopSection 3
Qt.TopRightSection 4
Qt.RightSection 5
Qt.BottomRightSection 6
Qt.BottomSection 7
Qt.BottomLeftSection 8
Qt.TitleBarArea 9

This enum was introduced or modified in Qt 4.4.

See also QGraphicsWidget.windowFrameEvent(), QGraphicsWidget.paintWindowFrame(), and QGraphicsWidget.windowFrameSectionAt().

Qt.WindowModality

This enum specifies the behavior of a modal window. A modal window is one that blocks input to other windows. Note that windows that are children of a modal window are not blocked.

The values are:

Constant Value Description
Qt.NonModal 0 The window is not modal and does not block input to other windows.
Qt.WindowModal 1 The window is modal to a single window hierarchy and blocks input to its parent window, all grandparent windows, and all siblings of its parent and grandparent windows.
Qt.ApplicationModal 2 The window is modal to the application and blocks input to all windows.

See also QWidget.windowModality and QDialog.

Qt.WindowState

This enum type is used to specify the current state of a top-level window.

The states are

Constant Value Description
Qt.WindowNoState 0x00000000 The window has no state set (in normal state).
Qt.WindowMinimized 0x00000001 The window is minimized (i.e. iconified).
Qt.WindowMaximized 0x00000002 The window is maximized with a frame around it.
Qt.WindowFullScreen 0x00000004 The window fills the entire screen without any frame around it.
Qt.WindowActive 0x00000008 The window is the active window, i.e. it has keyboard focus.

The WindowStates type is a typedef for QFlags<WindowState>. It stores an OR combination of WindowState values.

Qt.WindowType

This enum type is used to specify various window-system properties for the widget. They are fairly unusual but necessary in a few cases. Some of these flags depend on whether the underlying window manager supports them.

The main types are

Constant Value Description
Qt.Widget 0x00000000 This is the default type for QWidget. Widgets of this type are child widgets if they have a parent, and independent windows if they have no parent. See also Qt.Window and Qt.SubWindow.
Qt.Window 0x00000001 Indicates that the widget is a window, usually with a window system frame and a title bar, irrespective of whether the widget has a parent or not. Note that it is not possible to unset this flag if the widget does not have a parent.
Qt.Dialog 0x00000002 | Window Indicates that the widget is a window that should be decorated as a dialog (i.e., typically no maximize or minimize buttons in the title bar). This is the default type for QDialog. If you want to use it as a modal dialog, it should be launched from another window, or have a parent and used with the QWidget.windowModality property. If you make it modal, the dialog will prevent other top-level windows in the application from getting any input. We refer to a top-level window that has a parent as a secondary window.
Qt.Sheet 0x00000004 | Window Indicates that the window is a Macintosh sheet. Since using a sheet implies window modality, the recommended way is to use QWidget.setWindowModality(), or QDialog.open(), instead.
Qt.Drawer 0x00000006 | Window Indicates that the widget is a Macintosh drawer.
Qt.Popup 0x00000008 | Window Indicates that the widget is a pop-up top-level window, i.e. that it is modal, but has a window system frame appropriate for pop-up menus.
Qt.Tool 0x0000000a | Window Indicates that the widget is a tool window. A tool window is often a small window with a smaller than usual title bar and decoration, typically used for collections of tool buttons. If there is a parent, the tool window will always be kept on top of it. If there isn't a parent, you may consider using Qt.WindowStaysOnTopHint as well. If the window system supports it, a tool window can be decorated with a somewhat lighter frame. It can also be combined with Qt.FramelessWindowHint.

On Mac OS X, tool windows correspond to the Floating class of windows. This means that the window lives on a level above normal windows; it impossible to put a normal window on top of it. By default, tool windows will disappear when the application is inactive. This can be controlled by the Qt.WA_MacAlwaysShowToolWindow attribute.
Qt.ToolTip 0x0000000c | Window Indicates that the widget is a tooltip. This is used internally to implement tooltips.
Qt.SplashScreen 0x0000000e | Window Indicates that the window is a splash screen. This is the default type for QSplashScreen.
Qt.Desktop 0x00000010 | Window Indicates that this widget is the desktop. This is the type for QDesktopWidget.
Qt.SubWindow 0x00000012 Indicates that this widget is a sub-window, such as a QMdiSubWindow widget.

There are also a number of flags which you can use to customize the appearance of top-level windows. These have no effect on other windows:

Constant Value Description
Qt.MSWindowsFixedSizeDialogHint 0x00000100 Gives the window a thin dialog border on Windows. This style is traditionally used for fixed-size dialogs.
Qt.MSWindowsOwnDC 0x00000200 Gives the window its own display context on Windows.
Qt.X11BypassWindowManagerHint 0x00000400 Bypass the window manager completely. This results in a borderless window that is not managed at all (i.e., no keyboard input unless you call QWidget.activateWindow() manually).
Qt.FramelessWindowHint 0x00000800 Produces a borderless window. The user cannot move or resize a borderless window via the window system. On X11, the result of the flag is dependent on the window manager and its ability to understand Motif and/or NETWM hints. Most existing modern window managers can handle this.

The CustomizeWindowHint flag is used to enable customization of the window controls. This flag must be set to allow the WindowTitleHint, WindowSystemMenuHint, WindowMinimizeButtonHint, WindowMaximizeButtonHint and WindowCloseButtonHint flags to be changed.

Constant Value Description
Qt.CustomizeWindowHint 0x02000000 Turns off the default window title hints.
Qt.WindowTitleHint 0x00001000 Gives the window a title bar.
Qt.WindowSystemMenuHint 0x00002000 Adds a window system menu, and possibly a close button (for example on Mac). If you need to hide or show a close button, it is more portable to use WindowCloseButtonHint.
Qt.WindowMinimizeButtonHint 0x00004000 Adds a minimize button. On some platforms this implies Qt.WindowSystemMenuHint for it to work.
Qt.WindowMaximizeButtonHint 0x00008000 Adds a maximize button. On some platforms this implies Qt.WindowSystemMenuHint for it to work.
Qt.WindowMinMaxButtonsHint WindowMinimizeButtonHint | WindowMaximizeButtonHint Adds a minimize and a maximize button. On some platforms this implies Qt.WindowSystemMenuHint for it to work.
Qt.WindowCloseButtonHint 0x08000000 Adds a close button. On some platforms this implies Qt.WindowSystemMenuHint for it to work.
Qt.WindowContextHelpButtonHint 0x00010000 Adds a context help button to dialogs. On some platforms this implies Qt.WindowSystemMenuHint for it to work.
Qt.MacWindowToolBarButtonHint 0x10000000 On Mac OS X adds a tool bar button (i.e., the oblong button that is on the top right of windows that have toolbars).
Qt.BypassGraphicsProxyWidget 0x20000000 Prevents the window and its children from automatically embedding themselves into a QGraphicsProxyWidget if the parent widget is already embedded. You can set this flag if you want your widget to always be a toplevel widget on the desktop, regardless of whether the parent widget is embedded in a scene or not.
Qt.WindowShadeButtonHint 0x00020000  
Qt.WindowStaysOnTopHint 0x00040000 Informs the window system that the window should stay on top of all other windows. Note that on some window managers on X11 you also have to pass Qt.X11BypassWindowManagerHint for this flag to work correctly.
Qt.WindowStaysOnBottomHint 0x04000000 Informs the window system that the window should stay on bottom of all other windows. Note that on X11 this hint will work only in window managers that support _NET_WM_STATE_BELOW atom. If a window always on the bottom has a parent, the parent will also be left on the bottom. This window hint is currently not implemented for Mac OS X.
Qt.WindowOkButtonHint 0x00080000 Adds an OK button to the window decoration of a dialog. Only supported for Windows CE.
Qt.WindowCancelButtonHint 0x00100000 Adds a Cancel button to the window decoration of a dialog. Only supported for Windows CE.
Qt.WindowSoftkeysVisibleHint 0x40000000 Makes softkeys visible when widget is fullscreen. Only supported for Symbian.
Qt.WindowSoftkeysRespondHint 0x80000000 Makes softkeys to receive key events even when invisible. With this hint the softkey actions are triggered even the softkeys are invisible i.e. the window is displayed with showFullscreen(). Only supported for Symbian.
Qt.WindowType_Mask 0x000000ff A mask for extracting the window type part of the window flags.

Obsolete flags:

Constant Value Description
Qt.WMouseNoMask 0x00080000 Use Qt.WA_MouseNoMask instead.
Qt.WDestructiveClose 0x00100000 Use Qt.WA_DeleteOnClose instead.
Qt.WStaticContents 0x00200000 Use Qt.WA_StaticContents instead.
Qt.WGroupLeader 0x00400000 No longer needed.
Qt.WShowModal 0x00800000 Use QWidget.windowModality instead.
Qt.WNoMousePropagation 0x01000000 Use Qt.WA_NoMousePropagation instead.
Qt.WType_TopLevel Window Use Qt.Window instead.
Qt.WType_Dialog Dialog Use Qt.Dialog instead.
Qt.WType_Popup Popup Use Qt.Popup instead.
Qt.WType_Desktop Desktop Use Qt.Desktop instead.
Qt.WType_Mask WindowType_Mask Use Qt.WindowType_Mask instead.
Qt.WStyle_Customize 0 No longer needed.
Qt.WStyle_NormalBorder 0 No longer needed.
Qt.WStyle_DialogBorder MSWindowsFixedSizeDialogHint Use Qt.MSWindowsFixedSizeDialogHint instead.
Qt.WStyle_NoBorder FramelessWindowHint Use Qt.FramelessWindowHint instead.
Qt.WStyle_Title WindowTitleHint Use Qt.WindowTitleHint instead.
Qt.WStyle_SysMenu WindowSystemMenuHint Use Qt.WindowSystemMenuHint instead.
Qt.WStyle_Minimize WindowMinimizeButtonHint Use Qt.WindowMinimizeButtonHint instead.
Qt.WStyle_Maximize WindowMaximizeButtonHint Use Qt.WindowMaximizeButtonHint instead.
Qt.WStyle_MinMax WStyle_Minimize | WStyle_Maximize Use Qt.WindowMinMaxButtonsHint instead.
Qt.WStyle_Tool Tool Use Qt.Tool instead.
Qt.WStyle_StaysOnTop WindowStaysOnTopHint Use Qt.WindowStaysOnTopHint instead.
Qt.WStyle_ContextHelp WindowContextHelpButtonHint Use Qt.WindowContextHelpButtonHint instead.
Qt.WPaintDesktop 0 No longer needed.
Qt.WPaintClever 0 No longer needed.
Qt.WX11BypassWM X11BypassWindowManagerHint Use Qt.X11BypassWindowManagerHint instead.
Qt.WWinOwnDC MSWindowsOwnDC Use Qt.MSWindowsOwnDC instead.
Qt.WMacSheet Sheet Use Qt.Sheet instead.
Qt.WMacDrawer Drawer Use Qt.Drawer instead.
Qt.WStyle_Splash SplashScreen Use Qt.SplashScreen instead.
Qt.WNoAutoErase 0 No longer needed.
Qt.WRepaintNoErase 0 No longer needed.
Qt.WNorthWestGravity WStaticContents Use Qt.WA_StaticContents instead.
Qt.WType_Modal Dialog | WShowModal Use Qt.Dialog and QWidget.windowModality instead.
Qt.WStyle_Dialog Dialog Use Qt.Dialog instead.
Qt.WStyle_NoBorderEx FramelessWindowHint Use Qt.FramelessWindowHint instead.
Qt.WResizeNoErase 0 No longer needed.
Qt.WMacNoSheet 0 No longer needed.

The WindowFlags type is a typedef for QFlags<WindowType>. It stores an OR combination of WindowType values.

See also QWidget.windowFlags and Window Flags Example.


Method Documentation

QString Qt.convertFromPlainText (QString plain, WhiteSpaceMode mode = Qt.WhiteSpacePre)

This method is only available if the QtGui module is imported.

Converts the plain text string plain to an HTML-formatted paragraph while preserving most of its look.

mode defines how whitespace is handled.

This function is defined in the <QTextDocument> header file.

See also escape() and mightBeRichText().

QString Qt.escape (QString plain)

This method is only available if the QtGui module is imported.

Converts the plain text string plain to a HTML string with HTML metacharacters <, >, &, and " replaced by HTML entities.

Example:

 QString plain = "#include <QtCore>"
 QString html = Qt.escape(plain);
 // html == "#include &lt;QtCore&gt;"

This function is defined in the <QTextDocument> header file.

See also convertFromPlainText() and mightBeRichText().

bool Qt.mightBeRichText (QString)

This method is only available if the QtGui module is imported.

Returns true if the string text is likely to be rich text; otherwise returns false.

This function uses a fast and therefore simple heuristic. It mainly checks whether there is something that looks like a tag before the first line break. Although the result may be correct for common cases, there is no guarantee.

This function is defined in the <QTextDocument> header file.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qt_properties.html0000644000076500000240000003432112536324430021250 0ustar philstaff00000000000000 Support for Qt Properties — PyQt 4.11.4 Reference Guide

Support for Qt Properties¶

PyQt4 does not support the setting and getting of Qt properties as if they were normal instance attributes. This is because the name of a property often conflicts with the name of the property’s getter method.

However, PyQt4 does support the initial setting of properties using keyword arguments passed when an instance is created. For example:

act = QtGui.QAction("&Save", self, shortcut=QtGui.QKeySequence.Save,
        statusTip="Save the document to disk", triggered=self.save)

The example also demonstrates the use of a keyword argument to connect a signal to a slot.

PyQt4 also supports setting the values of properties (and connecting a signal to a slot) using the pyqtConfigure() method of QObject. For example, the following gives the same results as above:

act = QtGui.QAction("&Save", self)
act.pyqtConfigure(shortcut=QtGui.QKeySequence.Save,
        statusTip="Save the document to disk", triggered=self.save)

Defining New Qt Properties¶

A new Qt property may be defined using the pyqtProperty() function. It is used in the same way as the standard Python property() function. In fact, Qt properties defined in this way also behave as Python properties.

PyQt4.QtCore.pyqtProperty(type[, fget=None[, fset=None[, freset=None[, fdel=None[, doc=None[, designable=True[, scriptable=True[, stored=True[, user=False[, constant=False[, final=False[, notify=None]]]]]]]]]]]])¶

Create a property that behaves as both a Python property and a Qt property.

Parameters:
  • type – the type of the property. It is either a Python type object or a string that is the name of a C++ type.
  • fget – the optional callable used to get the value of the property.
  • fset – the optional callable used to set the value of the property.
  • freset – the optional callable used to reset the value of the property to its default value. It is ignored by Python
  • fdel – the optional callable used to delete the property. It is ignored by Qt.
  • doc – the optional docstring of the property. It is ignored by Qt.
  • designable – optionally sets the Qt DESIGNABLE flag. It is ignored by Python
  • scriptable – optionally sets the Qt SCRIPTABLE flag. It is ignored by Python
  • stored – optionally sets the Qt STORED flag. It is ignored by Python
  • user – optionally sets the Qt USER flag. It is ignored by Python
  • constant – optionally sets the Qt CONSTANT flag. It is ignored by Python
  • final – optionally sets the Qt FINAL flag. It is ignored by Python
  • notify – the optional unbound notify signal. It is ignored by Python
Return type:

the property object.

It is also possible to use pyqtProperty() as a decorator in the same way as the standard Python property() function. The following example shows how to define an int property with a getter and setter:

from PyQt4.QtCore import QObject, pyqtProperty

class Foo(QObject):

    def __init__(self):
        QObject.__init__(self)

        self._total = 0

    @pyqtProperty(int)
    def total(self):
        return self._total

    @total.setter
    def total(self, value):
        self._total = value

If you prefer the Qt terminology you may also use write instead of setter (and read instead of getter).

PyQt-x11-gpl-4.11.4/doc/html/qt_v5.html0000644000076500000240000001461512536324430017412 0ustar philstaff00000000000000 PyQt4 and Qt v5 — PyQt 4.11.4 Reference Guide

PyQt4 and Qt v5¶

Building Against Qt v5¶

PyQt4 can be built against Qt v5 in exactly the same way that it is built against Qt v4. However only a Qt v4 compatible subset of Qt v5 is supported, specifically:

  • any classes added in Qt v5 are not supported
  • any new features added in Qt v5 to classes that exist in Qt v4 are supported
  • any features that are marked as deprecated in Qt v5 are supported.

Qt v5 handles connections to signals with optional arguments in a slightly different way than Qt v4. PyQt4 works around this as best it can but cannot do so in the case where signals that have optional arguments in Qt v5 (but not in Qt v4) are emitted using old-style signals (i.e. using QObject.emit()). Instead you should use new-style signals (i.e. use the emit() method of the bound signal).

The --no-deprecated option to PyQt4’s configure.py can be used to disable the support for the deprecated features. This can be useful in the porting of PyQt4 applications to PyQt5.

PyQt-x11-gpl-4.11.4/doc/html/qtabbar.html0000644000076500000240000010675512536324514020002 0ustar philstaff00000000000000 QTabBar Class Reference
  Home · All Classes · Modules

QTabBar Class Reference
[QtGui module]

The QTabBar class provides a tab bar, e.g. for use in tabbed dialogs. More...

Inherits QWidget.

Types

  • enum ButtonPosition { LeftSide, RightSide }
  • enum SelectionBehavior { SelectLeftTab, SelectRightTab, SelectPreviousTab }
  • enum Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast, ..., TriangularEast }

Methods

Special Methods

Qt Signals


Detailed Description

The QTabBar class provides a tab bar, e.g. for use in tabbed dialogs.

QTabBar is straightforward to use; it draws the tabs using one of the predefined shapes, and emits a signal when a tab is selected. It can be subclassed to tailor the look and feel. Qt also provides a ready-made QTabWidget.

Each tab has a tabText(), an optional tabIcon(), an optional tabToolTip(), optional tabWhatsThis() and optional tabData(). The tabs's attributes can be changed with setTabText(), setTabIcon(), setTabToolTip(), setTabWhatsThis and setTabData(). Each tabs can be enabled or disabled individually with setTabEnabled().

Each tab can display text in a distinct color. The current text color for a tab can be found with the tabTextColor() function. Set the text color for a particular tab with setTabTextColor().

Tabs are added using addTab(), or inserted at particular positions using insertTab(). The total number of tabs is given by count(). Tabs can be removed from the tab bar with removeTab(). Combining removeTab() and insertTab() allows you to move tabs to different positions.

The shape property defines the tabs' appearance. The choice of shape is a matter of taste, although tab dialogs (for preferences and similar) invariably use RoundedNorth. Tab controls in windows other than dialogs almost always use either RoundedSouth or TriangularSouth. Many spreadsheets and other tab controls in which all the pages are essentially similar use TriangularSouth, whereas RoundedSouth is used mostly when the pages are different (e.g. a multi-page tool palette). The default in QTabBar is RoundedNorth.

The most important part of QTabBar's API is the currentChanged() signal. This is emitted whenever the current tab changes (even at startup, when the current tab changes from 'none'). There is also a slot, setCurrentIndex(), which can be used to select a tab programmatically. The function currentIndex() returns the index of the current tab, count holds the number of tabs.

QTabBar creates automatic mnemonic keys in the manner of QAbstractButton; e.g. if a tab's label is "&Graphics", Alt+G becomes a shortcut key for switching to that tab.

The following virtual functions may need to be reimplemented in order to tailor the look and feel or store extra data with each tab:

For subclasses, you might also need the tabRect() functions which returns the visual geometry of a single tab.

Screenshot of a Plastique style tab bar A tab bar shown in the Plastique widget style.
Screenshot of a truncated Plastique tab bar A truncated tab bar shown in the Plastique widget style.

Type Documentation

QTabBar.ButtonPosition

This enum type lists the location of the widget on a tab.

Constant Value Description
QTabBar.LeftSide 0 Left side of the tab.
QTabBar.RightSide 1 Right side of the tab.

This enum was introduced or modified in Qt 4.5.

QTabBar.SelectionBehavior

This enum type lists the behavior of QTabBar when a tab is removed and the tab being removed is also the current tab.

Constant Value Description
QTabBar.SelectLeftTab 0 Select the tab to the left of the one being removed.
QTabBar.SelectRightTab 1 Select the tab to the right of the one being removed.
QTabBar.SelectPreviousTab 2 Select the previously selected tab.

This enum was introduced or modified in Qt 4.5.

QTabBar.Shape

This enum type lists the built-in shapes supported by QTabBar. Treat these as hints as some styles may not render some of the shapes. However, position should be honored.

Constant Value Description
QTabBar.RoundedNorth 0 The normal rounded look above the pages
QTabBar.RoundedSouth 1 The normal rounded look below the pages
QTabBar.RoundedWest 2 The normal rounded look on the left side of the pages
QTabBar.RoundedEast 3 The normal rounded look on the right side the pages
QTabBar.TriangularNorth 4 Triangular tabs above the pages.
QTabBar.TriangularSouth 5 Triangular tabs similar to those used in the Excel spreadsheet, for example
QTabBar.TriangularWest 6 Triangular tabs on the left of the pages.
QTabBar.TriangularEast 7 Triangular tabs on the right of the pages.

Method Documentation

QTabBar.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new tab bar with the given parent.

int QTabBar.addTab (self, QString text)

Adds a new tab with text text. Returns the new tab's index.

int QTabBar.addTab (self, QIcon icon, QString text)

This is an overloaded function.

Adds a new tab with icon icon and text text. Returns the new tab's index.

QTabBar.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

int QTabBar.count (self)

int QTabBar.currentIndex (self)

bool QTabBar.documentMode (self)

bool QTabBar.drawBase (self)

Qt.TextElideMode QTabBar.elideMode (self)

bool QTabBar.event (self, QEvent)

Reimplemented from QObject.event().

bool QTabBar.expanding (self)

QTabBar.hideEvent (self, QHideEvent)

Reimplemented from QWidget.hideEvent().

QSize QTabBar.iconSize (self)

QTabBar.initStyleOption (self, QStyleOptionTab option, int tabIndex)

Initialize option with the values from the tab at tabIndex. This method is useful for subclasses when they need a QStyleOptionTab, QStyleOptionTabV2, or QStyleOptionTabV3 but don't want to fill in all the information themselves. This function will check the version of the QStyleOptionTab and fill in the additional values for a QStyleOptionTabV2 and QStyleOptionTabV3.

See also QStyleOption.initFrom() and QTabWidget.initStyleOption().

int QTabBar.insertTab (self, int index, QString text)

Inserts a new tab with text text at position index. If index is out of range, the new tab is appened. Returns the new tab's index.

int QTabBar.insertTab (self, int index, QIcon icon, QString text)

This is an overloaded function.

Inserts a new tab with icon icon and text text at position index. If index is out of range, the new tab is appended. Returns the new tab's index.

If the QTabBar was empty before this function is called, the inserted tab becomes the current tab.

Inserting a new tab at an index less than or equal to the current index will increment the current index, but keep the current tab.

bool QTabBar.isMovable (self)

bool QTabBar.isTabEnabled (self, int index)

Returns true if the tab at position index is enabled; otherwise returns false.

QTabBar.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

QSize QTabBar.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QTabBar.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QTabBar.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

QTabBar.mouseReleaseEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QTabBar.moveTab (self, int from, int to)

Moves the item at index position from to index position to.

This function was introduced in Qt 4.5.

See also tabMoved() and tabLayoutChange().

QTabBar.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

QTabBar.removeTab (self, int index)

Removes the tab at position index.

See also SelectionBehavior.

QTabBar.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

SelectionBehavior QTabBar.selectionBehaviorOnRemove (self)

QTabBar.setCurrentIndex (self, int index)

This method is also a Qt slot with the C++ signature void setCurrentIndex(int).

QTabBar.setDocumentMode (self, bool set)

QTabBar.setDrawBase (self, bool drawTheBase)

QTabBar.setElideMode (self, Qt.TextElideMode)

QTabBar.setExpanding (self, bool enabled)

QTabBar.setIconSize (self, QSize size)

QTabBar.setMovable (self, bool movable)

QTabBar.setSelectionBehaviorOnRemove (self, SelectionBehavior behavior)

QTabBar.setShape (self, Shape shape)

QTabBar.setTabButton (self, int index, ButtonPosition position, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets widget on the tab index. The widget is placed on the left or right hand side depending upon the position.

Any previously set widget in position is hidden.

The tab bar will take ownership of the widget and so all widgets set here will be deleted by the tab bar when it is destroyed unless you separately reparent the widget after setting some other widget (or 0).

This function was introduced in Qt 4.5.

See also tabButton() and tabsClosable().

QTabBar.setTabData (self, int index, QVariant data)

Sets the data of the tab at position index to data.

See also tabData().

QTabBar.setTabEnabled (self, int index, bool)

If enabled is true then the tab at position index is enabled; otherwise the item at position index is disabled.

See also isTabEnabled().

QTabBar.setTabIcon (self, int index, QIcon icon)

Sets the icon of the tab at position index to icon.

See also tabIcon().

QTabBar.setTabsClosable (self, bool closable)

QTabBar.setTabText (self, int index, QString text)

Sets the text of the tab at position index to text.

See also tabText().

QTabBar.setTabTextColor (self, int index, QColor color)

Sets the color of the text in the tab with the given index to the specified color.

If an invalid color is specified, the tab will use the QTabBar foreground role instead.

See also tabTextColor().

QTabBar.setTabToolTip (self, int index, QString tip)

Sets the tool tip of the tab at position index to tip.

See also tabToolTip().

QTabBar.setTabWhatsThis (self, int index, QString text)

Sets the What's This help text of the tab at position index to text.

This function was introduced in Qt 4.1.

See also tabWhatsThis().

QTabBar.setUsesScrollButtons (self, bool useButtons)

Shape QTabBar.shape (self)

QTabBar.showEvent (self, QShowEvent)

Reimplemented from QWidget.showEvent().

QSize QTabBar.sizeHint (self)

Reimplemented from QWidget.sizeHint().

int QTabBar.tabAt (self, QPoint pos)

Returns the index of the tab that covers position or -1 if no tab covers position;

This function was introduced in Qt 4.3.

QWidget QTabBar.tabButton (self, int index, ButtonPosition position)

Returns the widget set a tab index and position or 0 if one is not set.

See also setTabButton().

QVariant QTabBar.tabData (self, int index)

Returns the data of the tab at position index, or a null variant if index is out of range.

See also setTabData().

QIcon QTabBar.tabIcon (self, int index)

Returns the icon of the tab at position index, or a null icon if index is out of range.

See also setTabIcon().

QTabBar.tabInserted (self, int index)

This virtual handler is called after a new tab was added or inserted at position index.

See also tabRemoved().

QTabBar.tabLayoutChange (self)

This virtual handler is called whenever the tab layout changes.

See also tabRect().

QRect QTabBar.tabRect (self, int index)

Returns the visual rectangle of the tab at position index, or a null rectangle if index is out of range.

QTabBar.tabRemoved (self, int index)

This virtual handler is called after a tab was removed from position index.

See also tabInserted().

bool QTabBar.tabsClosable (self)

QSize QTabBar.tabSizeHint (self, int index)

Returns the size hint for the tab at position index.

QString QTabBar.tabText (self, int index)

Returns the text of the tab at position index, or an empty string if index is out of range.

See also setTabText().

QColor QTabBar.tabTextColor (self, int index)

Returns the text color of the tab with the given index, or a invalid color if index is out of range.

See also setTabTextColor().

QString QTabBar.tabToolTip (self, int index)

Returns the tool tip of the tab at position index, or an empty string if index is out of range.

See also setTabToolTip().

QString QTabBar.tabWhatsThis (self, int index)

Returns the What's This help text of the tab at position index, or an empty string if index is out of range.

This function was introduced in Qt 4.1.

See also setTabWhatsThis().

bool QTabBar.usesScrollButtons (self)

QTabBar.wheelEvent (self, QWheelEvent event)

Reimplemented from QWidget.wheelEvent().

QTabBar.__len__ (self)


Qt Signal Documentation

void currentChanged (int)

This is the default overload of this signal.

This signal is emitted when the tab bar's current tab changes. The new current has the given index, or -1 if there isn't a new one (for example, if there are no tab in the QTabBar)

void tabCloseRequested (int)

This is the default overload of this signal.

This signal is emitted when the close button on a tab is clicked. The index is the index that should be removed.

This function was introduced in Qt 4.5.

See also setTabsClosable().

void tabMoved (int,int)

This is the default overload of this signal.

This signal is emitted when the tab has moved the tab at index position from to index position to.

note: QTabWidget will automatically move the page when this signal is emitted from its tab bar.

This function was introduced in Qt 4.5.

See also moveTab().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtabletevent.html0000644000076500000240000004520512536324503021052 0ustar philstaff00000000000000 QTabletEvent Class Reference
  Home · All Classes · Modules

QTabletEvent Class Reference
[QtGui module]

The QTabletEvent class contains parameters that describe a Tablet event. More...

Inherits QInputEvent.

Types

  • enum PointerType { UnknownPointer, Pen, Cursor, Eraser }
  • enum TabletDevice { NoDevice, Puck, Stylus, Airbrush, ..., RotationStylus }

Methods


Detailed Description

The QTabletEvent class contains parameters that describe a Tablet event.

Tablet Events are generated from a Wacom tablet. Most of the time you will want to deal with events from the tablet as if they were events from a mouse; for example, you would retrieve the cursor position with x(), y(), pos(), globalX(), globalY(), and globalPos(). In some situations you may wish to retrieve the extra information provided by the tablet device driver; for example, you might want to do subpixeling with higher resolution coordinates or you may want to adjust color brightness based on pressure. QTabletEvent allows you to read the pressure(), the xTilt(), and yTilt(), as well as the type of device being used with device() (see TabletDevice). It can also give you the minimum and maximum values for each device's pressure and high resolution coordinates.

A tablet event contains a special accept flag that indicates whether the receiver wants the event. You should call QTabletEvent.accept() if you handle the tablet event; otherwise it will be sent to the parent widget. The exception are TabletEnterProximity and TabletLeaveProximity events, these are only sent to QApplication and don't check whether or not they are accepted.

The QWidget.setEnabled() function can be used to enable or disable mouse and keyboard events for a widget.

The event handler QWidget.tabletEvent() receives all three types of tablet events. Qt will first send a tabletEvent then, if it is not accepted, it will send a mouse event. This allows applications that don't utilize tablets to use a tablet like a mouse, while also enabling those who want to use both tablets and mouses differently.

Notes for X11 Users

Qt uses the following hard-coded names to identify tablet devices from the xorg.conf file on X11 (apart from IRIX): 'stylus', 'pen', and 'eraser'. If the devices have other names, they will not be picked up Qt.


Type Documentation

QTabletEvent.PointerType

This enum defines what type of point is generating the event.

Constant Value Description
QTabletEvent.UnknownPointer 0 An unknown device.
QTabletEvent.Pen 1 Tip end of a stylus-like device (the narrow end of the pen).
QTabletEvent.Cursor 2 Any puck-like device.
QTabletEvent.Eraser 3 Eraser end of a stylus-like device (the broad end of the pen).

See also pointerType().

QTabletEvent.TabletDevice

This enum defines what type of device is generating the event.

Constant Value Description
QTabletEvent.NoDevice 0 No device, or an unknown device.
QTabletEvent.Puck 1 A Puck (a device that is similar to a flat mouse with a transparent circle with cross-hairs).
QTabletEvent.Stylus 2 A Stylus.
QTabletEvent.Airbrush 3 An airbrush
QTabletEvent.FourDMouse 4 A 4D Mouse.
QTabletEvent.RotationStylus 6 A special stylus that also knows about rotation (a 6D stylus).

This enum was introduced or modified in Qt 4.1.


Method Documentation

QTabletEvent.__init__ (self, QEvent.Type t, QPoint pos, QPoint globalPos, QPointF hiResGlobalPos, int device, int pointerType, float pressure, int xTilt, int yTilt, float tangentialPressure, float rotation, int z, Qt.KeyboardModifiers keyState, int uniqueID)

Construct a tablet event of the given type.

The pos parameter indicates where the event occurred in the widget; globalPos is the corresponding position in absolute coordinates. The hiResGlobalPos contains a high resolution measurement of the position.

pressure contains the pressure exerted on the device.

pointerType describes the type of pen that is being used.

xTilt and yTilt contain the device's degree of tilt from the x and y axes respectively.

keyState specifies which keyboard modifiers are pressed (e.g., Ctrl).

The uniqueID parameter contains the unique ID for the current device.

The z parameter contains the coordinate of the device on the tablet, this is usually given by a wheel on 4D mouse. If the device does not support a Z-axis, pass zero here.

The tangentialPressure parameter contins the tangential pressure of an air brush. If the device does not support tangential pressure, pass 0 here.

rotation contains the device's rotation in degrees. 4D mice support rotation. If the device does not support rotation, pass 0 here.

See also pos(), globalPos(), device(), pressure(), xTilt(), yTilt(), uniqueId(), rotation(), tangentialPressure(), and z().

QTabletEvent.__init__ (self, QTabletEvent)

TabletDevice QTabletEvent.device (self)

Returns the type of device that generated the event.

See also TabletDevice.

QPoint QTabletEvent.globalPos (self)

Returns the global position of the device at the time of the event. This is important on asynchronous windows systems like X11; whenever you move your widgets around in response to mouse events, globalPos() can differ significantly from the current position QCursor.pos().

See also globalX(), globalY(), and hiResGlobalPos().

int QTabletEvent.globalX (self)

Returns the global x position of the mouse pointer at the time of the event.

See also globalY(), globalPos(), and hiResGlobalX().

int QTabletEvent.globalY (self)

Returns the global y position of the tablet device at the time of the event.

See also globalX(), globalPos(), and hiResGlobalY().

QPointF QTabletEvent.hiResGlobalPos (self)

The high precision coordinates delivered from the tablet expressed. Sub pixeling information is in the fractional part of the QPointF.

See also globalPos(), hiResGlobalX(), and hiResGlobalY().

float QTabletEvent.hiResGlobalX (self)

The high precision x position of the tablet device.

float QTabletEvent.hiResGlobalY (self)

The high precision y position of the tablet device.

PointerType QTabletEvent.pointerType (self)

Returns the type of point that generated the event.

QPoint QTabletEvent.pos (self)

Returns the position of the device, relative to the widget that received the event.

If you move widgets around in response to mouse events, use globalPos() instead of this function.

See also x(), y(), and globalPos().

float QTabletEvent.pressure (self)

Returns the pressure for the device. 0.0 indicates that the stylus is not on the tablet, 1.0 indicates the maximum amount of pressure for the stylus.

See also tangentialPressure().

float QTabletEvent.rotation (self)

Returns the rotation of the current device in degress. This is usually given by a 4D Mouse. If the device doesn't support rotation this value is always 0.0.

float QTabletEvent.tangentialPressure (self)

Returns the tangential pressure for the device. This is typically given by a finger wheel on an airbrush tool. The range is from -1.0 to 1.0. 0.0 indicates a neutral position. Current airbrushes can only move in the positive direction from the neutrual position. If the device does not support tangential pressure, this value is always 0.0.

See also pressure().

int QTabletEvent.uniqueId (self)

Returns a unique ID for the current device, making it possible to differentiate between multiple devices being used at the same time on the tablet.

Support of this feature is dependent on the tablet.

Values for the same device may vary from OS to OS.

Later versions of the Wacom driver for Linux will now report the ID information. If you have a tablet that supports unique ID and are not getting the information on Linux, consider upgrading your driver.

As of Qt 4.2, the unique ID is the same regardless of the orientation of the pen. Earlier versions would report a different value when using the eraser-end versus the pen-end of the stylus on some OS's.

See also pointerType().

int QTabletEvent.x (self)

Returns the x position of the device, relative to the widget that received the event.

See also y() and pos().

int QTabletEvent.xTilt (self)

Returns the angle between the device (a pen, for example) and the perpendicular in the direction of the x axis. Positive values are towards the tablet's physical right. The angle is in the range -60 to +60 degrees.

See also yTilt().

int QTabletEvent.y (self)

Returns the y position of the device, relative to the widget that received the event.

See also x() and pos().

int QTabletEvent.yTilt (self)

Returns the angle between the device (a pen, for example) and the perpendicular in the direction of the y axis. Positive values are towards the bottom of the tablet. The angle is within the range -60 to +60 degrees.

See also xTilt().

int QTabletEvent.z (self)

Returns the z position of the device. Typically this is represented by a wheel on a 4D Mouse. If the device does not support a Z-axis, this value is always zero. This is not the same as pressure.

See also pressure().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtableview.html0000644000076500000240000012227512536324514020524 0ustar philstaff00000000000000 QTableView Class Reference
  Home · All Classes · Modules

QTableView Class Reference
[QtGui module]

The QTableView class provides a default model/view implementation of a table view. More...

Inherits QAbstractItemView.

Inherited by QTableWidget.

Methods


Detailed Description

The QTableView class provides a default model/view implementation of a table view.

A QTableView implements a table view that displays items from a model. This class is used to provide standard tables that were previously provided by the QTable class, but using the more flexible approach provided by Qt's model/view architecture.

The QTableView class is one of the Model/View Classes and is part of Qt's model/view framework.

QTableView implements the interfaces defined by the QAbstractItemView class to allow it to display data provided by models derived from the QAbstractItemModel class.

Navigation

You can navigate the cells in the table by clicking on a cell with the mouse, or by using the arrow keys. Because QTableView enables tabKeyNavigation by default, you can also hit Tab and Backtab to move from cell to cell.

Visual Appearance

The table has a vertical header that can be obtained using the verticalHeader() function, and a horizontal header that is available through the horizontalHeader() function. The height of each row in the table can be found by using rowHeight(); similarly, the width of columns can be found using columnWidth(). Since both of these are plain widgets, you can hide either of them using their hide() functions.

Rows and columns can be hidden and shown with hideRow(), hideColumn(), showRow(), and showColumn(). They can be selected with selectRow() and selectColumn(). The table will show a grid depending on the showGrid property.

The items shown in a table view, like those in the other item views, are rendered and edited using standard delegates. However, for some tasks it is sometimes useful to be able to insert widgets in a table instead. Widgets are set for particular indexes with the setIndexWidget() function, and later retrieved with indexWidget().

By default, the cells in a table do not expand to fill the available space.

You can make the cells fill the available space by stretching the last header section. Access the relevant header using horizontalHeader() or verticalHeader() and set the header's stretchLastSection property.

To distribute the available space according to the space requirement of each column or row, call the view's resizeColumnsToContents() or resizeRowsToContents() functions.

Coordinate Systems

For some specialized forms of tables it is useful to be able to convert between row and column indexes and widget coordinates. The rowAt() function provides the y-coordinate within the view of the specified row; the row index can be used to obtain a corresponding y-coordinate with rowViewportPosition(). The columnAt() and columnViewportPosition() functions provide the equivalent conversion operations between x-coordinates and column indexes.

Styles

QTableView is styled appropriately for each platform. The following images show how it looks on three different platforms. Go to the Qt Widget Gallery to see its appearance in other styles.

Screenshot of a Windows XP style table view Screenshot of a Macintosh style table view Screenshot of a Plastique style table view
A Windows XP style table view. A Macintosh style table view. A Plastique style table view.

Method Documentation

QTableView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a table view with a parent to represent the data.

See also QAbstractItemModel.

QTableView.clearSpans (self)

Removes all row and column spans in the table view.

This function was introduced in Qt 4.4.

See also setSpan().

int QTableView.columnAt (self, int x)

Returns the column in which the given x-coordinate, x, in contents coordinates is located.

Note: This function returns -1 if the given coordinate is not valid (has no column).

See also rowAt().

QTableView.columnCountChanged (self, int oldCount, int newCount)

This method is also a Qt slot with the C++ signature void columnCountChanged(int,int).

This slot is called whenever columns are added or deleted. The previous number of columns is specified by oldCount, and the new number of columns is specified by newCount.

QTableView.columnMoved (self, int column, int oldIndex, int newIndex)

This method is also a Qt slot with the C++ signature void columnMoved(int,int,int).

This slot is called to change the index of the given column in the table view. The old index is specified by oldIndex, and the new index by newIndex.

See also rowMoved().

QTableView.columnResized (self, int column, int oldWidth, int newWidth)

This method is also a Qt slot with the C++ signature void columnResized(int,int,int).

This slot is called to change the width of the given column. The old width is specified by oldWidth, and the new width by newWidth.

See also rowResized().

int QTableView.columnSpan (self, int row, int column)

Returns the column span of the table element at (row, column). The default is 1.

This function was introduced in Qt 4.2.

See also setSpan() and rowSpan().

int QTableView.columnViewportPosition (self, int column)

Returns the x-coordinate in contents coordinates of the given column.

int QTableView.columnWidth (self, int column)

Returns the width of the given column.

See also setColumnWidth(), resizeColumnToContents(), and rowHeight().

QTableView.currentChanged (self, QModelIndex current, QModelIndex previous)

Reimplemented from QAbstractItemView.currentChanged().

Qt.PenStyle QTableView.gridStyle (self)

QTableView.hideColumn (self, int column)

This method is also a Qt slot with the C++ signature void hideColumn(int).

Hide the given column.

See also showColumn() and hideRow().

QTableView.hideRow (self, int row)

This method is also a Qt slot with the C++ signature void hideRow(int).

Hide the given row.

See also showRow() and hideColumn().

QHeaderView QTableView.horizontalHeader (self)

Returns the table view's horizontal header.

See also setHorizontalHeader(), verticalHeader(), and QAbstractItemModel.headerData().

int QTableView.horizontalOffset (self)

Reimplemented from QAbstractItemView.horizontalOffset().

Returns the horizontal offset of the items in the table view.

Note that the table view uses the horizontal header section positions to determine the positions of columns in the view.

See also verticalOffset().

QTableView.horizontalScrollbarAction (self, int action)

QModelIndex QTableView.indexAt (self, QPoint p)

Reimplemented from QAbstractItemView.indexAt().

Returns the index position of the model item corresponding to the table item at position pos in contents coordinates.

bool QTableView.isColumnHidden (self, int column)

Returns true if the given column is hidden; otherwise returns false.

See also isRowHidden().

bool QTableView.isCornerButtonEnabled (self)

bool QTableView.isIndexHidden (self, QModelIndex index)

Reimplemented from QAbstractItemView.isIndexHidden().

bool QTableView.isRowHidden (self, int row)

Returns true if the given row is hidden; otherwise returns false.

See also isColumnHidden().

bool QTableView.isSortingEnabled (self)

QModelIndex QTableView.moveCursor (self, QAbstractItemView.CursorAction cursorAction, Qt.KeyboardModifiers modifiers)

Reimplemented from QAbstractItemView.moveCursor().

Moves the cursor in accordance with the given cursorAction, using the information provided by the modifiers.

See also QAbstractItemView.CursorAction.

QTableView.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

Paints the table on receipt of the given paint event event.

QTableView.resizeColumnsToContents (self)

This method is also a Qt slot with the C++ signature void resizeColumnsToContents().

Resizes all columns based on the size hints of the delegate used to render each item in the columns.

QTableView.resizeColumnToContents (self, int column)

This method is also a Qt slot with the C++ signature void resizeColumnToContents(int).

Resizes the given column based on the size hints of the delegate used to render each item in the column.

Note: Only visible columns will be resized. Reimplement sizeHintForColumn() to resize hidden columns as well.

QTableView.resizeRowsToContents (self)

This method is also a Qt slot with the C++ signature void resizeRowsToContents().

Resizes all rows based on the size hints of the delegate used to render each item in the rows.

QTableView.resizeRowToContents (self, int row)

This method is also a Qt slot with the C++ signature void resizeRowToContents(int).

Resizes the given row based on the size hints of the delegate used to render each item in the row.

int QTableView.rowAt (self, int y)

Returns the row in which the given y-coordinate, y, in contents coordinates is located.

Note: This function returns -1 if the given coordinate is not valid (has no row).

See also columnAt().

QTableView.rowCountChanged (self, int oldCount, int newCount)

This method is also a Qt slot with the C++ signature void rowCountChanged(int,int).

This slot is called whenever rows are added or deleted. The previous number of rows is specified by oldCount, and the new number of rows is specified by newCount.

int QTableView.rowHeight (self, int row)

Returns the height of the given row.

See also setRowHeight(), resizeRowToContents(), and columnWidth().

QTableView.rowMoved (self, int row, int oldIndex, int newIndex)

This method is also a Qt slot with the C++ signature void rowMoved(int,int,int).

This slot is called to change the index of the given row in the table view. The old index is specified by oldIndex, and the new index by newIndex.

See also columnMoved().

QTableView.rowResized (self, int row, int oldHeight, int newHeight)

This method is also a Qt slot with the C++ signature void rowResized(int,int,int).

This slot is called to change the height of the given row. The old height is specified by oldHeight, and the new height by newHeight.

See also columnResized().

int QTableView.rowSpan (self, int row, int column)

Returns the row span of the table element at (row, column). The default is 1.

This function was introduced in Qt 4.2.

See also setSpan() and columnSpan().

int QTableView.rowViewportPosition (self, int row)

Returns the y-coordinate in contents coordinates of the given row.

QTableView.scrollContentsBy (self, int dx, int dy)

QTableView.scrollTo (self, QModelIndex index, QAbstractItemView.ScrollHint hint = QAbstractItemView.EnsureVisible)

QTableView.selectColumn (self, int column)

This method is also a Qt slot with the C++ signature void selectColumn(int).

Selects the given column in the table view if the current SelectionMode and SelectionBehavior allows columns to be selected.

See also selectRow().

list-of-QModelIndex QTableView.selectedIndexes (self)

Reimplemented from QAbstractItemView.selectedIndexes().

QTableView.selectionChanged (self, QItemSelection selected, QItemSelection deselected)

Reimplemented from QAbstractItemView.selectionChanged().

QTableView.selectRow (self, int row)

This method is also a Qt slot with the C++ signature void selectRow(int).

Selects the given row in the table view if the current SelectionMode and SelectionBehavior allows rows to be selected.

See also selectColumn().

QTableView.setColumnHidden (self, int column, bool hide)

If hide is true the given column will be hidden; otherwise it will be shown.

See also isColumnHidden() and setRowHidden().

QTableView.setColumnWidth (self, int column, int width)

Sets the width of the given column to be width.

This function was introduced in Qt 4.1.

See also columnWidth().

QTableView.setCornerButtonEnabled (self, bool enable)

QTableView.setGridStyle (self, Qt.PenStyle style)

QTableView.setHorizontalHeader (self, QHeaderView header)

The header argument has it's ownership transferred to Qt.

Sets the widget to use for the horizontal header to header.

See also horizontalHeader() and setVerticalHeader().

QTableView.setModel (self, QAbstractItemModel model)

Reimplemented from QAbstractItemView.setModel().

QTableView.setRootIndex (self, QModelIndex index)

Reimplemented from QAbstractItemView.setRootIndex().

QTableView.setRowHeight (self, int row, int height)

Sets the height of the given row to be height.

This function was introduced in Qt 4.1.

See also rowHeight().

QTableView.setRowHidden (self, int row, bool hide)

If hide is true row will be hidden, otherwise it will be shown.

See also isRowHidden() and setColumnHidden().

QTableView.setSelection (self, QRect rect, QItemSelectionModel.SelectionFlags command)

Reimplemented from QAbstractItemView.setSelection().

Selects the items within the given rect and in accordance with the specified selection flags.

QTableView.setSelectionModel (self, QItemSelectionModel selectionModel)

Reimplemented from QAbstractItemView.setSelectionModel().

QTableView.setShowGrid (self, bool show)

QTableView.setSortingEnabled (self, bool enable)

QTableView.setSpan (self, int row, int column, int rowSpan, int columnSpan)

Sets the span of the table element at (row, column) to the number of rows and columns specified by (rowSpanCount, columnSpanCount).

This function was introduced in Qt 4.2.

See also rowSpan() and columnSpan().

QTableView.setVerticalHeader (self, QHeaderView header)

The header argument has it's ownership transferred to Qt.

Sets the widget to use for the vertical header to header.

See also verticalHeader() and setHorizontalHeader().

QTableView.setWordWrap (self, bool on)

QTableView.showColumn (self, int column)

This method is also a Qt slot with the C++ signature void showColumn(int).

Show the given column.

See also hideColumn() and showRow().

bool QTableView.showGrid (self)

QTableView.showRow (self, int row)

This method is also a Qt slot with the C++ signature void showRow(int).

Show the given row.

See also hideRow() and showColumn().

int QTableView.sizeHintForColumn (self, int column)

Reimplemented from QAbstractItemView.sizeHintForColumn().

Returns the size hint for the given column's width or -1 if there is no model.

If you need to set the width of a given column to a fixed value, call QHeaderView.resizeSection() on the table's horizontal header.

If you reimplement this function in a subclass, note that the value you return will be used when resizeColumnToContents() or QHeaderView.resizeSections() is called. If a larger column width is required by either the horizontal header or the item delegate, the larger width will be used instead.

See also QWidget.sizeHint and horizontalHeader().

int QTableView.sizeHintForRow (self, int row)

Reimplemented from QAbstractItemView.sizeHintForRow().

Returns the size hint for the given row's height or -1 if there is no model.

If you need to set the height of a given row to a fixed value, call QHeaderView.resizeSection() on the table's vertical header.

If you reimplement this function in a subclass, note that the value you return is only used when resizeRowToContents() is called. In that case, if a larger row height is required by either the vertical header or the item delegate, that width will be used instead.

See also QWidget.sizeHint and verticalHeader().

QTableView.sortByColumn (self, int column)

This method is also a Qt slot with the C++ signature void sortByColumn(int).

Sorts the model by the values in the given column in the given order.

This function was introduced in Qt 4.2.

See also sortingEnabled.

QTableView.sortByColumn (self, int column, Qt.SortOrder order)

QTableView.timerEvent (self, QTimerEvent event)

Reimplemented from QObject.timerEvent().

QTableView.updateGeometries (self)

Reimplemented from QAbstractItemView.updateGeometries().

QHeaderView QTableView.verticalHeader (self)

Returns the table view's vertical header.

See also setVerticalHeader(), horizontalHeader(), and QAbstractItemModel.headerData().

int QTableView.verticalOffset (self)

Reimplemented from QAbstractItemView.verticalOffset().

Returns the vertical offset of the items in the table view.

Note that the table view uses the vertical header section positions to determine the positions of rows in the view.

See also horizontalOffset().

QTableView.verticalScrollbarAction (self, int action)

QStyleOptionViewItem QTableView.viewOptions (self)

Reimplemented from QAbstractItemView.viewOptions().

QRect QTableView.visualRect (self, QModelIndex index)

QRegion QTableView.visualRegionForSelection (self, QItemSelection selection)

bool QTableView.wordWrap (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtablewidget.html0000644000076500000240000012734112536324514021034 0ustar philstaff00000000000000 QTableWidget Class Reference
  Home · All Classes · Modules

QTableWidget Class Reference
[
QtGui module]

The QTableWidget class provides an item-based table view with a default model. More...

Inherits QTableView.

Methods

Qt Signals


Detailed Description

The QTableWidget class provides an item-based table view with a default model.

Table widgets provide standard table display facilities for applications. The items in a QTableWidget are provided by QTableWidgetItem.

If you want a table that uses your own data model you should use QTableView rather than this class.

Table widgets can be constructed with the required numbers of rows and columns:

     tableWidget = new QTableWidget(12, 3, this);

Alternatively, tables can be constructed without a given size and resized later:

     tableWidget = new QTableWidget(this);
     tableWidget->setRowCount(10);
     tableWidget->setColumnCount(5);

Items are created ouside the table (with no parent widget) and inserted into the table with setItem():

     QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(
         (row+1)*(column+1)));
     tableWidget->setItem(row, column, newItem);

If you want to enable sorting in your table widget, do so after you have populated it with items, otherwise sorting may interfere with the insertion order (see setItem() for details).

Tables can be given both horizontal and vertical headers. The simplest way to create the headers is to supply a list of strings to the setHorizontalHeaderLabels() and setVerticalHeaderLabels() functions. These will provide simple textual headers for the table's columns and rows. More sophisticated headers can be created from existing table items that are usually constructed outside the table. For example, we can construct a table item with an icon and aligned text, and use it as the header for a particular column:

     QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));
     cubesHeaderItem->setIcon(QIcon(QPixmap(":/Images/cubed.png")));
     cubesHeaderItem->setTextAlignment(Qt.AlignVCenter);

The number of rows in the table can be found with rowCount(), and the number of columns with columnCount(). The table can be cleared with the clear() function.

Screenshot of a Windows XP style table widget Screenshot of a Macintosh style table widget Screenshot of a Plastique style table widget
A Windows XP style table widget. A Macintosh style table widget. A Plastique style table widget.

Method Documentation

QTableWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new table view with the given parent.

QTableWidget.__init__ (self, int rows, int columns, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new table view with the given rows and columns, and with the given parent.

QWidget QTableWidget.cellWidget (self, int row, int column)

Returns the widget displayed in the cell in the given row and column.

Note: The table takes ownership of the widget.

This function was introduced in Qt 4.1.

See also setCellWidget().

QTableWidget.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Removes all items in the view. This will also remove all selections. The table dimensions stay the same.

QTableWidget.clearContents (self)

This method is also a Qt slot with the C++ signature void clearContents().

Removes all items not in the headers from the view. This will also remove all selections. The table dimensions stay the same.

This function was introduced in Qt 4.2.

QTableWidget.closePersistentEditor (self, QTableWidgetItem item)

Closes the persistent editor for item.

See also openPersistentEditor().

int QTableWidget.column (self, QTableWidgetItem item)

Returns the column for the item.

int QTableWidget.columnCount (self)

int QTableWidget.currentColumn (self)

Returns the column of the current item.

See also currentRow() and setCurrentCell().

QTableWidgetItem QTableWidget.currentItem (self)

Returns the current item.

See also setCurrentItem().

int QTableWidget.currentRow (self)

Returns the row of the current item.

See also currentColumn() and setCurrentCell().

QTableWidget.dropEvent (self, QDropEvent event)

Reimplemented from QWidget.dropEvent().

bool QTableWidget.dropMimeData (self, int row, int column, QMimeData data, Qt.DropAction action)

Handles the data supplied by a drag and drop operation that ended with the given action in the given row and column. Returns true if the data and action can be handled by the model; otherwise returns false.

See also supportedDropActions().

QTableWidget.editItem (self, QTableWidgetItem item)

Starts editing the item if it is editable.

bool QTableWidget.event (self, QEvent e)

Reimplemented from QObject.event().

list-of-QTableWidgetItem QTableWidget.findItems (self, QString text, Qt.MatchFlags flags)

Finds items that matches the text using the given flags.

QTableWidgetItem QTableWidget.horizontalHeaderItem (self, int column)

Returns the horizontal header item for column, column, if one has been set; otherwise returns 0.

See also setHorizontalHeaderItem().

QModelIndex QTableWidget.indexFromItem (self, QTableWidgetItem item)

Returns the QModelIndex assocated with the given item.

QTableWidget.insertColumn (self, int column)

This method is also a Qt slot with the C++ signature void insertColumn(int).

Inserts an empty column into the table at column.

QTableWidget.insertRow (self, int row)

This method is also a Qt slot with the C++ signature void insertRow(int).

Inserts an empty row into the table at row.

bool QTableWidget.isItemSelected (self, QTableWidgetItem item)

bool QTableWidget.isSortingEnabled (self)

QTableWidgetItem QTableWidget.item (self, int row, int column)

Returns the item for the given row and column if one has been set; otherwise returns 0.

See also setItem().

QTableWidgetItem QTableWidget.itemAt (self, QPoint p)

Returns a pointer to the item at the given point, or returns 0 if point is not covered by an item in the table widget.

See also item().

QTableWidgetItem QTableWidget.itemAt (self, int ax, int ay)

Returns the item at the position equivalent to QPoint(ax, ay) in the table widget's coordinate system, or returns 0 if the specified point is not covered by an item in the table widget.

See also item().

QTableWidgetItem QTableWidget.itemFromIndex (self, QModelIndex index)

Returns a pointer to the QTableWidgetItem assocated with the given index.

QTableWidgetItem QTableWidget.itemPrototype (self)

Returns the item prototype used by the table.

See also setItemPrototype().

list-of-QTableWidgetItem QTableWidget.items (self, QMimeData data)

Returns a list of pointers to the items contained in the data object. If the object was not created by a QTreeWidget in the same process, the list is empty.

QMimeData QTableWidget.mimeData (self, list-of-QTableWidgetItem items)

The QMimeData result

Returns an object that contains a serialized description of the specified items. The format used to describe the items is obtained from the mimeTypes() function.

If the list of items is empty, 0 is returned rather than a serialized empty list.

QStringList QTableWidget.mimeTypes (self)

Returns a list of MIME types that can be used to describe a list of tablewidget items.

See also mimeData().

QTableWidget.openPersistentEditor (self, QTableWidgetItem item)

Opens an editor for the give item. The editor remains open after editing.

See also closePersistentEditor().

QTableWidget.removeCellWidget (self, int arow, int acolumn)

Removes the widget set on the cell indicated by row and column.

This function was introduced in Qt 4.3.

QTableWidget.removeColumn (self, int column)

This method is also a Qt slot with the C++ signature void removeColumn(int).

Removes the column column and all its items from the table.

QTableWidget.removeRow (self, int row)

This method is also a Qt slot with the C++ signature void removeRow(int).

Removes the row row and all its items from the table.

int QTableWidget.row (self, QTableWidgetItem item)

Returns the row for the item.

int QTableWidget.rowCount (self)

QTableWidget.scrollToItem (self, QTableWidgetItem item, QAbstractItemView.ScrollHint hint = QAbstractItemView.EnsureVisible)

This method is also a Qt slot with the C++ signature void scrollToItem(const QTableWidgetItem*,QAbstractItemView::ScrollHint = QAbstractItemView.EnsureVisible).

Scrolls the view if necessary to ensure that the item is visible. The hint parameter specifies more precisely where the item should be located after the operation.

list-of-QTableWidgetItem QTableWidget.selectedItems (self)

Returns a list of all selected items.

This function returns a list of pointers to the contents of the selected cells. Use the selectedIndexes() function to retrieve the complete selection including empty cells.

See also selectedIndexes().

list-of-QTableWidgetSelectionRange QTableWidget.selectedRanges (self)

Returns a list of all selected ranges.

See also QTableWidgetSelectionRange.

QTableWidget.setCellWidget (self, int row, int column, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the given widget to be displayed in the cell in the given row and column, passing the ownership of the widget to the table.

If cell widget A is replaced with cell widget B, cell widget A will be deleted. For example, in the code snippet below, the QLineEdit object will be deleted.

 setCellWidget(index, new QLineEdit);
 ...
 setCellWidget(index, new QTextEdit);

This function was introduced in Qt 4.1.

See also cellWidget().

QTableWidget.setColumnCount (self, int columns)

QTableWidget.setCurrentCell (self, int row, int column)

Sets the current cell to be the cell at position (row, column).

Depending on the current selection mode, the cell may also be selected.

This function was introduced in Qt 4.1.

See also setCurrentItem(), currentRow(), and currentColumn().

QTableWidget.setCurrentCell (self, int row, int column, QItemSelectionModel.SelectionFlags command)

Sets the current cell to be the cell at position (row, column), using the given command.

This function was introduced in Qt 4.4.

See also setCurrentItem(), currentRow(), and currentColumn().

QTableWidget.setCurrentItem (self, QTableWidgetItem item)

Sets the current item to item.

Unless the selection mode is NoSelection, the item is also be selected.

See also currentItem() and setCurrentCell().

QTableWidget.setCurrentItem (self, QTableWidgetItem item, QItemSelectionModel.SelectionFlags command)

Sets the current item to be item, using the given command.

This function was introduced in Qt 4.4.

See also currentItem() and setCurrentCell().

QTableWidget.setHorizontalHeaderItem (self, int column, QTableWidgetItem item)

The item argument has it's ownership transferred to Qt.

Sets the horizontal header item for column column to item.

See also horizontalHeaderItem().

QTableWidget.setHorizontalHeaderLabels (self, QStringList labels)

Sets the horizontal header labels using labels.

QTableWidget.setItem (self, int row, int column, QTableWidgetItem item)

The item argument has it's ownership transferred to Qt.

Sets the item for the given row and column to item.

The table takes ownership of the item.

Note that if sorting is enabled (see sortingEnabled) and column is the current sort column, the row will be moved to the sorted position determined by item.

If you want to set several items of a particular row (say, by calling setItem() in a loop), you may want to turn off sorting before doing so, and turn it back on afterwards; this will allow you to use the same row argument for all items in the same row (i.e. setItem() will not move the row).

See also item() and takeItem().

QTableWidget.setItemPrototype (self, QTableWidgetItem item)

The item argument has it's ownership transferred to Qt.

Sets the item prototype for the table to the specified item.

The table widget will use the item prototype clone function when it needs to create a new table item. For example when the user is editing in an empty cell. This is useful when you have a QTableWidgetItem subclass and want to make sure that QTableWidget creates instances of your subclass.

The table takes ownership of the prototype.

See also itemPrototype().

QTableWidget.setItemSelected (self, QTableWidgetItem item, bool select)

QTableWidget.setRangeSelected (self, QTableWidgetSelectionRange range, bool select)

Selects or deselects the range depending on select.

QTableWidget.setRowCount (self, int rows)

QTableWidget.setSortingEnabled (self, bool enable)

QTableWidget.setVerticalHeaderItem (self, int row, QTableWidgetItem item)

The item argument has it's ownership transferred to Qt.

Sets the vertical header item for row row to item.

See also verticalHeaderItem().

QTableWidget.setVerticalHeaderLabels (self, QStringList labels)

Sets the vertical header labels using labels.

QTableWidget.sortItems (self, int column, Qt.SortOrder order = Qt.AscendingOrder)

Sorts all the rows in the table widget based on column and order.

Qt.DropActions QTableWidget.supportedDropActions (self)

Returns the drop actions supported by this view.

See also Qt.DropActions.

QTableWidgetItem QTableWidget.takeHorizontalHeaderItem (self, int column)

The QTableWidgetItem result

Removes the horizontal header item at column from the header without deleting it.

This function was introduced in Qt 4.1.

QTableWidgetItem QTableWidget.takeItem (self, int row, int column)

The QTableWidgetItem result

Removes the item at row and column from the table without deleting it.

QTableWidgetItem QTableWidget.takeVerticalHeaderItem (self, int row)

The QTableWidgetItem result

Removes the vertical header item at row from the header without deleting it.

This function was introduced in Qt 4.1.

QTableWidgetItem QTableWidget.verticalHeaderItem (self, int row)

Returns the vertical header item for row row.

See also setVerticalHeaderItem().

int QTableWidget.visualColumn (self, int logicalColumn)

Returns the visual column of the given logicalColumn.

QRect QTableWidget.visualItemRect (self, QTableWidgetItem item)

Returns the rectangle on the viewport occupied by the item at item.

int QTableWidget.visualRow (self, int logicalRow)

Returns the visual row of the given logicalRow.


Qt Signal Documentation

void cellActivated (int,int)

This is the default overload of this signal.

This signal is emitted when the cell specified by row and column has been activated

This function was introduced in Qt 4.1.

void cellChanged (int,int)

This is the default overload of this signal.

This signal is emitted whenever the data of the item in the cell specified by row and column has changed.

This function was introduced in Qt 4.1.

void cellClicked (int,int)

This is the default overload of this signal.

This signal is emitted whenever a cell in the table is clicked. The row and column specified is the cell that was clicked.

This function was introduced in Qt 4.1.

void cellDoubleClicked (int,int)

This is the default overload of this signal.

This signal is emitted whenever a cell in the table is double clicked. The row and column specified is the cell that was double clicked.

This function was introduced in Qt 4.1.

void cellEntered (int,int)

This is the default overload of this signal.

This signal is emitted when the mouse cursor enters a cell. The cell is specified by row and column.

This signal is only emitted when mouseTracking is turned on, or when a mouse button is pressed while moving into an item.

This function was introduced in Qt 4.1.

void cellPressed (int,int)

This is the default overload of this signal.

This signal is emitted whenever a cell in the table is pressed. The row and column specified is the cell that was pressed.

This function was introduced in Qt 4.1.

void currentCellChanged (int,int,int,int)

This is the default overload of this signal.

This signal is emitted whenever the current cell changes. The cell specified by previousRow and previousColumn is the cell that previously had the focus, the cell specified by currentRow and currentColumn is the new current cell.

This function was introduced in Qt 4.1.

void currentItemChanged (QTableWidgetItem*,QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever the current item changes. The previous item is the item that previously had the focus, current is the new current item.

void itemActivated (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted when the specified item has been activated

void itemChanged (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever the data of item has changed.

void itemClicked (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever an item in the table is clicked. The item specified is the item that was clicked.

void itemDoubleClicked (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever an item in the table is double clicked. The item specified is the item that was double clicked.

void itemEntered (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted when the mouse cursor enters an item. The item is the item entered.

This signal is only emitted when mouseTracking is turned on, or when a mouse button is pressed while moving into an item.

void itemPressed (QTableWidgetItem*)

This is the default overload of this signal.

This signal is emitted whenever an item in the table is pressed. The item specified is the item that was pressed.

void itemSelectionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the selection changes.

See also selectedItems() and QTableWidgetItem.isSelected().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtablewidgetitem.html0000644000076500000240000006061512536324514021713 0ustar philstaff00000000000000 QTableWidgetItem Class Reference
  Home · All Classes · Modules

QTableWidgetItem Class Reference
[QtGui module]

The QTableWidgetItem class provides an item for use with the QTableWidget class. More...

Types

Methods

Special Methods

  • bool __ge__ (self, QTableWidgetItem other)
  • bool __lt__ (self, QTableWidgetItem other)

Detailed Description

The QTableWidgetItem class provides an item for use with the QTableWidget class.

Table items are used to hold pieces of information for table widgets. Items usually contain text, icons, or checkboxes

The QTableWidgetItem class is a convenience class that replaces the QTableItem class in Qt 3. It provides an item for use with the QTableWidget class.

Top-level items are constructed without a parent then inserted at the position specified by a pair of row and column numbers:

     QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(
         pow(row, column+1)));
     tableWidget->setItem(row, column, newItem);

Each item can have its own background brush which is set with the setBackground() function. The current background brush can be found with background(). The text label for each item can be rendered with its own font and brush. These are specified with the setFont() and setForeground() functions, and read with font() and foreground().

By default, items are enabled, editable, selectable, checkable, and can be used both as the source of a drag and drop operation and as a drop target. Each item's flags can be changed by calling setFlags() with the appropriate value (see Qt.ItemFlags). Checkable items can be checked and unchecked with the setCheckState() function. The corresponding checkState() function indicates whether the item is currently checked.

Subclassing

When subclassing QTableWidgetItem to provide custom items, it is possible to define new types for them so that they can be distinguished from standard items. The constructors for subclasses that require this feature need to call the base class constructor with a new type value equal to or greater than UserType.


Type Documentation

QTableWidgetItem.ItemType

This enum describes the types that are used to describe table widget items.

Constant Value Description
QTableWidgetItem.Type 0 The default type for table widget items.
QTableWidgetItem.UserType 1000 The minimum value for custom types. Values below UserType are reserved by Qt.

You can define new user types in QTableWidgetItem subclasses to ensure that custom items are treated specially.

See also type().


Method Documentation

QTableWidgetItem.__init__ (self, int type = QTableWidgetItem.Type)

Constructs a table item of the specified type that does not belong to any table.

See also type().

QTableWidgetItem.__init__ (self, QString text, int type = QTableWidgetItem.Type)

Constructs a table item with the given text.

See also type().

QTableWidgetItem.__init__ (self, QIcon icon, QString text, int type = QTableWidgetItem.Type)

Constructs a table item with the given icon and text.

See also type().

QTableWidgetItem.__init__ (self, QTableWidgetItem other)

Constructs a copy of other. Note that type() and tableWidget() are not copied.

This function is useful when reimplementing clone().

This function was introduced in Qt 4.1.

See also data() and flags().

QBrush QTableWidgetItem.background (self)

Returns the brush used to render the item's background.

This function was introduced in Qt 4.2.

See also setBackground() and foreground().

QColor QTableWidgetItem.backgroundColor (self)

Qt.CheckState QTableWidgetItem.checkState (self)

Returns the checked state of the table item.

See also setCheckState() and flags().

QTableWidgetItem QTableWidgetItem.clone (self)

Creates a copy of the item.

int QTableWidgetItem.column (self)

Returns the column of the item in the table. If the item is not in a table, this function will return -1.

This function was introduced in Qt 4.2.

See also row().

QVariant QTableWidgetItem.data (self, int role)

Returns the item's data for the given role.

See also setData().

Qt.ItemFlags QTableWidgetItem.flags (self)

Returns the flags used to describe the item. These determine whether the item can be checked, edited, and selected.

See also setFlags().

QFont QTableWidgetItem.font (self)

Returns the font used to render the item's text.

See also setFont().

QBrush QTableWidgetItem.foreground (self)

Returns the brush used to render the item's foreground (e.g. text).

This function was introduced in Qt 4.2.

See also setForeground() and background().

QIcon QTableWidgetItem.icon (self)

Returns the item's icon.

See also setIcon() and iconSize.

bool QTableWidgetItem.isSelected (self)

Returns true if the item is selected, otherwise returns false.

This function was introduced in Qt 4.2.

See also setSelected().

QTableWidgetItem.read (self, QDataStream in)

Reads the item from stream in.

See also write().

int QTableWidgetItem.row (self)

Returns the row of the item in the table. If the item is not in a table, this function will return -1.

This function was introduced in Qt 4.2.

See also column().

QTableWidgetItem.setBackground (self, QBrush brush)

Sets the item's background brush to the specified brush.

This function was introduced in Qt 4.2.

See also background() and setForeground().

QTableWidgetItem.setBackgroundColor (self, QColor color)

QTableWidgetItem.setCheckState (self, Qt.CheckState state)

Sets the check state of the table item to be state.

See also checkState().

QTableWidgetItem.setData (self, int role, QVariant value)

Sets the item's data for the given role to the specified value.

See also Qt.ItemDataRole and data().

QTableWidgetItem.setFlags (self, Qt.ItemFlags aflags)

Sets the flags for the item to the given flags. These determine whether the item can be selected or modified.

See also flags().

QTableWidgetItem.setFont (self, QFont afont)

Sets the font used to display the item's text to the given font.

See also font(), setText(), and setForeground().

QTableWidgetItem.setForeground (self, QBrush brush)

Sets the item's foreground brush to the specified brush.

This function was introduced in Qt 4.2.

See also foreground() and setBackground().

QTableWidgetItem.setIcon (self, QIcon aicon)

Sets the item's icon to the icon specified.

See also icon(), setText(), and iconSize.

QTableWidgetItem.setSelected (self, bool aselect)

Sets the selected state of the item to select.

This function was introduced in Qt 4.2.

See also isSelected().

QTableWidgetItem.setSizeHint (self, QSize size)

Sets the size hint for the table item to be size. If no size hint is set, the item delegate will compute the size hint based on the item data.

This function was introduced in Qt 4.1.

See also sizeHint().

QTableWidgetItem.setStatusTip (self, QString astatusTip)

Sets the status tip for the table item to the text specified by statusTip. QTableWidget mouse tracking needs to be enabled for this feature to work.

See also statusTip(), setToolTip(), and setWhatsThis().

QTableWidgetItem.setText (self, QString atext)

Sets the item's text to the text specified.

See also text(), setFont(), and setForeground().

QTableWidgetItem.setTextAlignment (self, int alignment)

Sets the text alignment for the item's text to the alignment specified.

See also textAlignment() and Qt.Alignment.

QTableWidgetItem.setTextColor (self, QColor color)

QTableWidgetItem.setToolTip (self, QString atoolTip)

Sets the item's tooltip to the string specified by toolTip.

See also toolTip(), setStatusTip(), and setWhatsThis().

QTableWidgetItem.setWhatsThis (self, QString awhatsThis)

Sets the item's "What's This?" help to the string specified by whatsThis.

See also whatsThis(), setStatusTip(), and setToolTip().

QSize QTableWidgetItem.sizeHint (self)

Returns the size hint set for the table item.

This function was introduced in Qt 4.1.

See also setSizeHint().

QString QTableWidgetItem.statusTip (self)

Returns the item's status tip.

See also setStatusTip().

QTableWidget QTableWidgetItem.tableWidget (self)

Returns the table widget that contains the item.

QString QTableWidgetItem.text (self)

Returns the item's text.

See also setText().

int QTableWidgetItem.textAlignment (self)

Returns the text alignment for the item's text.

See also setTextAlignment() and Qt.Alignment.

QColor QTableWidgetItem.textColor (self)

QString QTableWidgetItem.toolTip (self)

Returns the item's tooltip.

See also setToolTip().

int QTableWidgetItem.type (self)

Returns the type passed to the QTableWidgetItem constructor.

QString QTableWidgetItem.whatsThis (self)

Returns the item's "What's This?" help.

See also setWhatsThis().

QTableWidgetItem.write (self, QDataStream out)

Writes the item to stream out.

See also read().

bool QTableWidgetItem.__ge__ (self, QTableWidgetItem other)

bool QTableWidgetItem.__lt__ (self, QTableWidgetItem other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtablewidgetselectionrange.html0000644000076500000240000001670312536324514023756 0ustar philstaff00000000000000 QTableWidgetSelectionRange Class Reference
  Home · All Classes · Modules

QTableWidgetSelectionRange Class Reference
[QtGui module]

The QTableWidgetSelectionRange class provides a way to interact with selection in a model without using model indexes and a selection model. More...

Methods


Detailed Description

The QTableWidgetSelectionRange class provides a way to interact with selection in a model without using model indexes and a selection model.

The QTableWidgetSelectionRange class stores the top left and bottom right rows and columns of a selection range in a table. The selections in the table may consist of several selection ranges.

Note: If the item within the selection range is marked as not selectable, e.g., itemFlags() & Qt.ItemIsSelectable == 0 then it will not appear in the selection range.


Method Documentation

QTableWidgetSelectionRange.__init__ (self)

Constructs an table selection range, i.e. a range whose rowCount() and columnCount() are 0.

QTableWidgetSelectionRange.__init__ (self, int top, int left, int bottom, int right)

Constructs the table selection range from the given top, left, bottom and right table rows and columns.

See also topRow(), leftColumn(), bottomRow(), and rightColumn().

QTableWidgetSelectionRange.__init__ (self, QTableWidgetSelectionRange other)

Constructs a the table selection range by copying the given other table selection range.

int QTableWidgetSelectionRange.bottomRow (self)

Returns the bottom row of the range.

See also topRow(), rightColumn(), and rowCount().

int QTableWidgetSelectionRange.columnCount (self)

Returns the number of columns in the range.

This is equivalent to rightColumn() - leftColumn() + 1.

This function was introduced in Qt 4.1.

See also rowCount(), leftColumn(), and rightColumn().

int QTableWidgetSelectionRange.leftColumn (self)

Returns the left column of the range.

See also rightColumn(), topRow(), and columnCount().

int QTableWidgetSelectionRange.rightColumn (self)

Returns the right column of the range.

See also leftColumn(), bottomRow(), and columnCount().

int QTableWidgetSelectionRange.rowCount (self)

Returns the number of rows in the range.

This is equivalent to bottomRow() - topRow() + 1.

This function was introduced in Qt 4.1.

See also columnCount(), topRow(), and bottomRow().

int QTableWidgetSelectionRange.topRow (self)

Returns the top row of the range.

See also bottomRow(), leftColumn(), and rowCount().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtabwidget.html0000644000076500000240000010252612536324514020511 0ustar philstaff00000000000000 QTabWidget Class Reference
  Home · All Classes · Modules

QTabWidget Class Reference
[QtGui module]

The QTabWidget class provides a stack of tabbed widgets. More...

Inherits QWidget.

Types

Methods

Special Methods

Qt Signals


Detailed Description

The QTabWidget class provides a stack of tabbed widgets.

A tab widget provides a tab bar (see QTabBar) and a "page area" that is used to display pages related to each tab. By default, the tab bar is shown above the page area, but different configurations are available (see TabPosition). Each tab is associated with a different widget (called a page). Only the current page is shown in the page area; all the other pages are hidden. The user can show a different page by clicking on its tab or by pressing its Alt+letter shortcut if it has one.

The normal way to use QTabWidget is to do the following:

  1. Create a QTabWidget.
  2. Create a QWidget for each of the pages in the tab dialog, but do not specify parent widgets for them.
  3. Insert child widgets into the page widget, using layouts to position them as normal.
  4. Call addTab() or insertTab() to put the page widgets into the tab widget, giving each tab a suitable label with an optional keyboard shortcut.

The position of the tabs is defined by tabPosition, their shape by tabShape.

The signal currentChanged() is emitted when the user selects a page.

The current page index is available as currentIndex(), the current page widget with currentWidget(). You can retrieve a pointer to a page widget with a given index using widget(), and can find the index position of a widget with indexOf(). Use setCurrentWidget() or setCurrentIndex() to show a particular page.

You can change a tab's text and icon using setTabText() or setTabIcon(). A tab and its associated page can be removed with removeTab().

Each tab is either enabled or disabled at any given time (see setTabEnabled()). If a tab is enabled, the tab text is drawn normally and the user can select that tab. If it is disabled, the tab is drawn in a different way and the user cannot select that tab. Note that even if a tab is disabled, the page can still be visible, for example if all of the tabs happen to be disabled.

Tab widgets can be a very good way to split up a complex dialog. An alternative is to use a QStackedWidget for which you provide some means of navigating between pages, for example, a QToolBar or a QListWidget.

Most of the functionality in QTabWidget is provided by a QTabBar (at the top, providing the tabs) and a QStackedWidget (most of the area, organizing the individual pages).

Screenshot of a Windows XP style tab widget Screenshot of a Macintosh style tab widget Screenshot of a Plastique style tab widget
A Windows XP style tab widget. A Macintosh style tab widget. A Plastique style tab widget.

Type Documentation

QTabWidget.TabPosition

This enum type defines where QTabWidget draws the tab row:

Constant Value Description
QTabWidget.North 0 The tabs are drawn above the pages.
QTabWidget.South 1 The tabs are drawn below the pages.
QTabWidget.West 2 The tabs are drawn to the left of the pages.
QTabWidget.East 3 The tabs are drawn to the right of the pages.

QTabWidget.TabShape

This enum type defines the shape of the tabs:

Constant Value Description
QTabWidget.Rounded 0 The tabs are drawn with a rounded look. This is the default shape.
QTabWidget.Triangular 1 The tabs are drawn with a triangular look.

Method Documentation

QTabWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a tabbed widget with parent parent.

int QTabWidget.addTab (self, QWidget widget, QString)

The widget argument has it's ownership transferred to Qt.

Adds a tab with the given page and label to the tab widget, and returns the index of the tab in the tab bar.

If the tab's label contains an ampersand, the letter following the ampersand is used as a shortcut for the tab, e.g. if the label is "Bro&wse" then Alt+W becomes a shortcut which will move the focus to this tab.

Note: If you call addTab() after show(), the layout system will try to adjust to the changes in its widgets hierarchy and may cause flicker. To prevent this, you can set the QWidget.updatesEnabled property to false prior to changes; remember to set the property to true when the changes are done, making the widget receive paint events again.

See also insertTab().

int QTabWidget.addTab (self, QWidget widget, QIcon icon, QString label)

The widget argument has it's ownership transferred to Qt.

This is an overloaded function.

Adds a tab with the given page, icon, and label to the tab widget, and returns the index of the tab in the tab bar.

This function is the same as addTab(), but with an additional icon.

QTabWidget.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QTabWidget.clear (self)

Removes all the pages, but does not delete them. Calling this function is equivalent to calling removeTab() until the tab widget is empty.

QWidget QTabWidget.cornerWidget (self, Qt.Corner corner = Qt.TopRightCorner)

Returns the widget shown in the corner of the tab widget or 0.

See also setCornerWidget().

int QTabWidget.count (self)

int QTabWidget.currentIndex (self)

QWidget QTabWidget.currentWidget (self)

Returns a pointer to the page currently being displayed by the tab dialog. The tab dialog does its best to make sure that this value is never 0 (but if you try hard enough, it can be).

See also currentIndex() and setCurrentWidget().

bool QTabWidget.documentMode (self)

Qt.TextElideMode QTabWidget.elideMode (self)

bool QTabWidget.event (self, QEvent)

Reimplemented from QObject.event().

int QTabWidget.heightForWidth (self, int width)

Reimplemented from QWidget.heightForWidth().

This function was introduced in Qt 4.8.

QSize QTabWidget.iconSize (self)

int QTabWidget.indexOf (self, QWidget widget)

Returns the index position of the page occupied by the widget w, or -1 if the widget cannot be found.

QTabWidget.initStyleOption (self, QStyleOptionTabWidgetFrame option)

Initialize option with the values from this QTabWidget. This method is useful for subclasses when they need a QStyleOptionTabWidgetFrame, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom() and QTabBar.initStyleOption().

int QTabWidget.insertTab (self, int index, QWidget widget, QString)

The widget argument has it's ownership transferred to Qt.

Inserts a tab with the given label and page into the tab widget at the specified index, and returns the index of the inserted tab in the tab bar.

The label is displayed in the tab and may vary in appearance depending on the configuration of the tab widget.

If the tab's label contains an ampersand, the letter following the ampersand is used as a shortcut for the tab, e.g. if the label is "Bro&wse" then Alt+W becomes a shortcut which will move the focus to this tab.

If index is out of range, the tab is simply appended. Otherwise it is inserted at the specified position.

If the QTabWidget was empty before this function is called, the new page becomes the current page. Inserting a new tab at an index less than or equal to the current index will increment the current index, but keep the current page.

Note: If you call insertTab() after show(), the layout system will try to adjust to the changes in its widgets hierarchy and may cause flicker. To prevent this, you can set the QWidget.updatesEnabled property to false prior to changes; remember to set the property to true when the changes are done, making the widget receive paint events again.

See also addTab().

int QTabWidget.insertTab (self, int index, QWidget widget, QIcon icon, QString label)

The widget argument has it's ownership transferred to Qt.

bool QTabWidget.isMovable (self)

bool QTabWidget.isTabEnabled (self, int index)

Returns true if the page at position index is enabled; otherwise returns false.

See also setTabEnabled() and QWidget.isEnabled().

QTabWidget.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

QSize QTabWidget.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

Returns a suitable minimum size for the tab widget.

QTabWidget.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

Paints the tab widget's tab bar in response to the paint event.

QTabWidget.removeTab (self, int index)

Removes the tab at position index from this stack of widgets. The page widget itself is not deleted.

See also addTab() and insertTab().

QTabWidget.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QTabWidget.setCornerWidget (self, QWidget widget, Qt.Corner corner = Qt.TopRightCorner)

The widget argument has it's ownership transferred to Qt.

Sets the given widget to be shown in the specified corner of the tab widget. The geometry of the widget is determined based on the widget's sizeHint() and the style().

Only the horizontal element of the corner will be used.

Passing 0 shows no widget in the corner.

Any previously set corner widget is hidden.

All widgets set here will be deleted by the tab widget when it is destroyed unless you separately reparent the widget after setting some other corner widget (or 0).

Note: Corner widgets are designed for North and South tab positions; other orientations are known to not work properly.

See also cornerWidget() and setTabPosition().

QTabWidget.setCurrentIndex (self, int index)

This method is also a Qt slot with the C++ signature void setCurrentIndex(int).

QTabWidget.setCurrentWidget (self, QWidget widget)

This method is also a Qt slot with the C++ signature void setCurrentWidget(QWidget*).

Makes widget the current widget. The widget used must be a page in this tab widget.

See also addTab(), setCurrentIndex(), and currentWidget().

QTabWidget.setDocumentMode (self, bool set)

QTabWidget.setElideMode (self, Qt.TextElideMode)

QTabWidget.setIconSize (self, QSize size)

QTabWidget.setMovable (self, bool movable)

QTabWidget.setTabBar (self, QTabBar)

The QTabBar argument has it's ownership transferred to Qt.

Replaces the dialog's QTabBar heading with the tab bar tb. Note that this must be called before any tabs have been added, or the behavior is undefined.

See also tabBar().

QTabWidget.setTabEnabled (self, int index, bool)

If enable is true, the page at position index is enabled; otherwise the page at position index is disabled. The page's tab is redrawn appropriately.

QTabWidget uses QWidget.setEnabled() internally, rather than keeping a separate flag.

Note that even a disabled tab/page may be visible. If the page is visible already, QTabWidget will not hide it; if all the pages are disabled, QTabWidget will show one of them.

See also isTabEnabled() and QWidget.setEnabled().

QTabWidget.setTabIcon (self, int index, QIcon icon)

This is an overloaded function.

Sets the icon for the tab at position index.

See also tabIcon().

QTabWidget.setTabPosition (self, TabPosition)

QTabWidget.setTabsClosable (self, bool closeable)

QTabWidget.setTabShape (self, TabShape s)

QTabWidget.setTabText (self, int index, QString)

Defines a new label for the page at position index's tab.

If the provided text contains an ampersand character ('&'), a shortcut is automatically created for it. The character that follows the '&' will be used as the shortcut key. Any previous shortcut will be overwritten, or cleared if no shortcut is defined by the text. See the QShortcut documentation for details (to display an actual ampersand, use '&&').

See also tabText().

QTabWidget.setTabToolTip (self, int index, QString tip)

Sets the tab tool tip for the page at position index to tip.

See also tabToolTip().

QTabWidget.setTabWhatsThis (self, int index, QString text)

Sets the What's This help text for the page at position index to text.

This function was introduced in Qt 4.1.

See also tabWhatsThis().

QTabWidget.setUsesScrollButtons (self, bool useButtons)

QTabWidget.showEvent (self, QShowEvent)

Reimplemented from QWidget.showEvent().

QSize QTabWidget.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QTabBar QTabWidget.tabBar (self)

Returns the current QTabBar.

See also setTabBar().

QIcon QTabWidget.tabIcon (self, int index)

Returns the icon for the tab on the page at position index.

See also setTabIcon().

QTabWidget.tabInserted (self, int index)

This virtual handler is called after a new tab was added or inserted at position index.

See also tabRemoved().

TabPosition QTabWidget.tabPosition (self)

QTabWidget.tabRemoved (self, int index)

This virtual handler is called after a tab was removed from position index.

See also tabInserted().

bool QTabWidget.tabsClosable (self)

TabShape QTabWidget.tabShape (self)

QString QTabWidget.tabText (self, int index)

Returns the label text for the tab on the page at position index.

See also setTabText().

QString QTabWidget.tabToolTip (self, int index)

Returns the tab tool tip for the page at position index or an empty string if no tool tip has been set.

See also setTabToolTip().

QString QTabWidget.tabWhatsThis (self, int index)

Returns the What's This help text for the page at position index, or an empty string if no help text has been set.

This function was introduced in Qt 4.1.

See also setTabWhatsThis().

bool QTabWidget.usesScrollButtons (self)

QWidget QTabWidget.widget (self, int index)

Returns the tab page at index position index or 0 if the index is out of range.

QTabWidget.__len__ (self)


Qt Signal Documentation

void currentChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the current page index changes. The parameter is the new current page index position, or -1 if there isn't a new one (for example, if there are no widgets in the QTabWidget)

See also currentWidget() and currentIndex.

void tabCloseRequested (int)

This is the default overload of this signal.

This signal is emitted when the close button on a tab is clicked. The index is the index that should be removed.

This function was introduced in Qt 4.5.

See also setTabsClosable().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtapandholdgesture.html0000644000076500000240000001016712536324504022252 0ustar philstaff00000000000000 QTapAndHoldGesture Class Reference
  Home · All Classes · Modules

QTapAndHoldGesture Class Reference
[QtGui module]

The QTapAndHoldGesture class describes a tap-and-hold (aka LongTap) gesture made by the user. More...

Inherits QGesture.

Methods

Static Methods


Detailed Description

The QTapAndHoldGesture class describes a tap-and-hold (aka LongTap) gesture made by the user.

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures Programming document.


Method Documentation

QTapAndHoldGesture.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QPointF QTapAndHoldGesture.position (self)

QTapAndHoldGesture.setPosition (self, QPointF pos)

QTapAndHoldGesture.setTimeout (int msecs)

Set the timeout, in milliseconds, before the gesture triggers.

The recognizer will detect a touch down and and if msecs later the touch is still down, it will trigger the QTapAndHoldGesture. The default value is 700 milliseconds.

See also timeout().

int QTapAndHoldGesture.timeout ()

Gets the timeout, in milliseconds, before the gesture triggers.

The recognizer will detect a touch down and and if timeout() later the touch is still down, it will trigger the QTapAndHoldGesture. The default value is 700 milliseconds.

See also setTimeout().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtapgesture.html0000644000076500000240000000556112536324504020722 0ustar philstaff00000000000000 QTapGesture Class Reference
  Home · All Classes · Modules

QTapGesture Class Reference
[QtGui module]

The QTapGesture class describes a tap gesture made by the user. More...

Inherits QGesture.

Methods


Detailed Description

The QTapGesture class describes a tap gesture made by the user.

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures Programming document.


Method Documentation

QTapGesture.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

QPointF QTapGesture.position (self)

QTapGesture.setPosition (self, QPointF pos)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtassistant.html0000644000076500000240000000412312536324470020727 0ustar philstaff00000000000000 QtAssistant Module
  Home · All Classes · Modules

QtAssistant Module

The QtAssistant module provides a means of launching Qt Assistant to provide online help. (Not available with Qt v4.7 and later.) More...

Types


Detailed Description

The QtAssistant module provides a means of launching Qt Assistant to provide online help. It is not available with Qt v4.7 and later.

To import the module use, for example, the following statement:

from PyQt4 import QtAssistant

See also Qt Assistant Manual.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtcore.html0000644000076500000240000010072412536324467017660 0ustar philstaff00000000000000 QtCore Module
  Home · All Classes · Modules

QtCore Module

The QtCore module contains core non-GUI functionality. More...

Types

Module Functions

Module Members


Detailed Description

The QtCore module contains non-GUI functionality.

All other PyQt modules rely on this module. To import the module use, for example, the following statement:

from PyQt4 import QtCore

Type Documentation

QtMsgType

Type


Function Documentation

QTextStream bin (QTextStream s)

QTextStream bin_ (QTextStream s)

QTextStream bom (QTextStream s)

QTextStream center (QTextStream s)

QTextStream dec (QTextStream s)

QTextStream endl (QTextStream s)

QTextStream fixed (QTextStream s)

QTextStream flush (QTextStream s)

Flushes any buffered data waiting to be written to the device.

If QTextStream operates on a string, this function does nothing.

QTextStream forcepoint (QTextStream s)

QTextStream forcesign (QTextStream s)

QTextStream hex (QTextStream s)

QTextStream hex_ (QTextStream s)

QTextStream left (QTextStream s)

QTextStream lowercasebase (QTextStream s)

QTextStream lowercasedigits (QTextStream s)

QTextStream noforcepoint (QTextStream s)

QTextStream noforcesign (QTextStream s)

QTextStream noshowbase (QTextStream s)

QTextStream oct (QTextStream s)

QTextStream oct_ (QTextStream s)

int-or-None pyqtPickleProtocol ()

pyqtRemoveInputHook ()

When the QtCore module is imported for the first time it installs a Python input hook (ie. it sets the value of Python's PyOS_InputHook variable). This allows commands to be entered at the interpreter prompt while the application is running. It is then possible to dynamically create new Qt objects and call the methods of any existing Qt object.

The input hook can cause problems for certain types of application, particularly those that provide a similar facility through different means. This function removes the input hook installed by PyQt.

The input hook can be restored using the pyqtRestoreInputHook() function.

pyqtRestoreInputHook ()

When the QtCore module is imported for the first time it installs a Python input hook (ie. it sets the value of Python's PyOS_InputHook variable). This allows commands to be entered at the interpreter prompt while the application is running. It is then possible to dynamically create new Qt objects and call the methods of any existing Qt object.

The input hook can cause problems for certain types of application, particularly those that provide a similar facility through different means, and so the pyqtRemoveInputHook() function is provided to remove it.

This function will restore the input hook if it has been removed.

pyqtSetPickleProtocol (int-or-None)

object pyqtSignature (str signature, str result = None)

object pyqtSlot (str signature, str name = None, str result = None)

QGenericArgument Q_ARG (object type, object data)

Q_CLASSINFO (str name, str value)

Q_ENUMS (...)

Q_FLAGS (...)

QGenericReturnArgument Q_RETURN_ARG (object type)

float qAbs (float t)

qAddPostRoutine (callable)

int qChecksum (str s)

QByteArray qCompress (QByteArray data, int compressionLevel = -1)

qCritical (str)

qDebug (str)

qErrnoWarning (int code, str msg)

qErrnoWarning (str msg)

qFatal (str)

bool qFuzzyCompare (float p1, float p2)

float qInf ()

callable qInstallMsgHandler (callable)

The callable argument may also be None.

bool qIsFinite (float d)

bool qIsInf (float d)

bool qIsNaN (float d)

bool qIsNull (float d)

float qQNaN ()

int qrand ()

bool qRegisterResourceData (int, str, str, str)

qRemovePostRoutine (callable)

int qRound (float d)

int qRound64 (float d)

QTextStreamManipulator qSetFieldWidth (int width)

QTextStreamManipulator qSetPadChar (QChar ch)

QTextStreamManipulator qSetRealNumberPrecision (int precision)

bool qSharedBuild ()

float qSNaN ()

qsrand (int seed)

qSwap (QBitArray value1, QBitArray value2)

qSwap (QByteArray value1, QByteArray value2)

qSwap (QString value1, QString value2)

qSwap (QUrl value1, QUrl value2)

qSwap (QVariant value1, QVariant value2)

str QT_TR_NOOP (str)

str QT_TR_NOOP_UTF8 (str)

str QT_TRANSLATE_NOOP (str, str)

QByteArray qUncompress (QByteArray data)

bool qUnregisterResourceData (int, str, str, str)

str qVersion ()

qWarning (str)

QTextStream reset (QTextStream s)

Resets QTextStream's formatting options, bringing it back to its original constructed state. The device, string and any buffered data is left untouched.

QTextStream right (QTextStream s)

QTextStream scientific (QTextStream s)

QTextStream showbase (QTextStream s)

str SIGNAL (str)

str SLOT (str)

QTextStream uppercasebase (QTextStream s)

QTextStream uppercasedigits (QTextStream s)

QTextStream ws (QTextStream s)


Member Documentation

int PYQT_VERSION

This member should be treated as a constant.

str PYQT_VERSION_STR

This member should be treated as a constant.

int QT_VERSION

This member should be treated as a constant.

str QT_VERSION_STR

This member should be treated as a constant.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtcpserver.html0000644000076500000240000004402112536324520020544 0ustar philstaff00000000000000 QTcpServer Class Reference
  Home · All Classes · Modules

QTcpServer Class Reference
[
QtNetwork module]

The QTcpServer class provides a TCP-based server. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QTcpServer class provides a TCP-based server.

This class makes it possible to accept incoming TCP connections. You can specify the port or have QTcpServer pick one automatically. You can listen on a specific address or on all the machine's addresses.

Call listen() to have the server listen for incoming connections. The newConnection() signal is then emitted each time a client connects to the server.

Call nextPendingConnection() to accept the pending connection as a connected QTcpSocket. The function returns a pointer to a QTcpSocket in QAbstractSocket.ConnectedState that you can use for communicating with the client.

If an error occurs, serverError() returns the type of error, and errorString() can be called to get a human readable description of what happened.

When listening for connections, the address and port on which the server is listening are available as serverAddress() and serverPort().

Calling close() makes QTcpServer stop listening for incoming connections.

Although QTcpServer is mostly designed for use with an event loop, it's possible to use it without one. In that case, you must use waitForNewConnection(), which blocks until either a connection is available or a timeout expires.

Symbian Platform Security Requirements

On Symbian, processes which use this class must have the NetworkServices platform security capability. If the client process lacks this capability, it will lead to a panic.

Platform security capabilities are added via the TARGET.CAPABILITY qmake variable.


Method Documentation

QTcpServer.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QTcpServer object.

parent is passed to the QObject constructor.

See also listen() and setSocketDescriptor().

QTcpServer.addPendingConnection (self, QTcpSocket socket)

This function is called by QTcpServer.incomingConnection() to add the socket to the list of pending incoming connections.

Note: Don't forget to call this member from reimplemented incomingConnection() if you do not want to break the Pending Connections mechanism.

This function was introduced in Qt 4.7.

See also incomingConnection().

QTcpServer.close (self)

Closes the server. The server will no longer listen for incoming connections.

See also listen().

QString QTcpServer.errorString (self)

Returns a human readable description of the last error that occurred.

See also serverError().

bool QTcpServer.hasPendingConnections (self)

Returns true if the server has a pending connection; otherwise returns false.

See also nextPendingConnection() and setMaxPendingConnections().

QTcpServer.incomingConnection (self, int handle)

This virtual function is called by QTcpServer when a new connection is available. The socketDescriptor argument is the native socket descriptor for the accepted connection.

The base implementation creates a QTcpSocket, sets the socket descriptor and then stores the QTcpSocket in an internal list of pending connections. Finally newConnection() is emitted.

Reimplement this function to alter the server's behavior when a connection is available.

If this server is using QNetworkProxy then the socketDescriptor may not be usable with native socket functions, and should only be used with QTcpSocket.setSocketDescriptor().

Note: If you want to handle an incoming connection as a new QTcpSocket object in another thread you have to pass the socketDescriptor to the other thread and create the QTcpSocket object there and use its setSocketDescriptor() method.

See also newConnection(), nextPendingConnection(), and addPendingConnection().

bool QTcpServer.isListening (self)

Returns true if the server is currently listening for incoming connections; otherwise returns false.

See also listen().

bool QTcpServer.listen (self, QHostAddress address = QHostAddress.Any, int port = 0)

Tells the server to listen for incoming connections on address address and port port. If port is 0, a port is chosen automatically. If address is QHostAddress.Any, the server will listen on all network interfaces.

Returns true on success; otherwise returns false.

See also isListening().

int QTcpServer.maxPendingConnections (self)

Returns the maximum number of pending accepted connections. The default is 30.

See also setMaxPendingConnections() and hasPendingConnections().

QTcpSocket QTcpServer.nextPendingConnection (self)

Returns the next pending connection as a connected QTcpSocket object.

The socket is created as a child of the server, which means that it is automatically deleted when the QTcpServer object is destroyed. It is still a good idea to delete the object explicitly when you are done with it, to avoid wasting memory.

0 is returned if this function is called when there are no pending connections.

Note: The returned QTcpSocket object cannot be used from another thread. If you want to use an incoming connection from another thread, you need to override incomingConnection().

See also hasPendingConnections().

QNetworkProxy QTcpServer.proxy (self)

Returns the network proxy for this socket. By default QNetworkProxy.DefaultProxy is used.

This function was introduced in Qt 4.1.

See also setProxy() and QNetworkProxy.

QHostAddress QTcpServer.serverAddress (self)

Returns the server's address if the server is listening for connections; otherwise returns QHostAddress.Null.

See also serverPort() and listen().

QAbstractSocket.SocketError QTcpServer.serverError (self)

Returns an error code for the last error that occurred.

See also errorString().

int QTcpServer.serverPort (self)

Returns the server's port if the server is listening for connections; otherwise returns 0.

See also serverAddress() and listen().

QTcpServer.setMaxPendingConnections (self, int numConnections)

Sets the maximum number of pending accepted connections to numConnections. QTcpServer will accept no more than numConnections incoming connections before nextPendingConnection() is called. By default, the limit is 30 pending connections.

Clients may still able to connect after the server has reached its maximum number of pending connections (i.e., QTcpSocket can still emit the connected() signal). QTcpServer will stop accepting the new connections, but the operating system may still keep them in queue.

See also maxPendingConnections() and hasPendingConnections().

QTcpServer.setProxy (self, QNetworkProxy networkProxy)

Sets the explicit network proxy for this socket to networkProxy.

To disable the use of a proxy for this socket, use the QNetworkProxy.NoProxy proxy type:

 server->setProxy(QNetworkProxy.NoProxy);

This function was introduced in Qt 4.1.

See also proxy() and QNetworkProxy.

bool QTcpServer.setSocketDescriptor (self, int socketDescriptor)

Sets the socket descriptor this server should use when listening for incoming connections to socketDescriptor. Returns true if the socket is set successfully; otherwise returns false.

The socket is assumed to be in listening state.

See also socketDescriptor() and isListening().

int QTcpServer.socketDescriptor (self)

Returns the native socket descriptor the server uses to listen for incoming instructions, or -1 if the server is not listening.

If the server is using QNetworkProxy, the returned descriptor may not be usable with native socket functions.

See also setSocketDescriptor() and isListening().

(bool, bool timedOut) QTcpServer.waitForNewConnection (self, int msecs = 0)

Waits for at most msec milliseconds or until an incoming connection is available. Returns true if a connection is available; otherwise returns false. If the operation timed out and timedOut is not 0, *timedOut will be set to true.

This is a blocking function call. Its use is disadvised in a single-threaded GUI application, since the whole application will stop responding until the function returns. waitForNewConnection() is mostly useful when there is no event loop available.

The non-blocking alternative is to connect to the newConnection() signal.

If msec is -1, this function will not time out.

See also hasPendingConnections() and nextPendingConnection().


Qt Signal Documentation

void newConnection ()

This is the default overload of this signal.

This signal is emitted every time a new connection is available.

See also hasPendingConnections() and nextPendingConnection().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtcpsocket.html0000644000076500000240000000707012536324520020531 0ustar philstaff00000000000000 QTcpSocket Class Reference
  Home · All Classes · Modules

QTcpSocket Class Reference
[QtNetwork module]

The QTcpSocket class provides a TCP socket. More...

Inherits QAbstractSocket.

Inherited by QSslSocket.

Methods

  • __init__ (self, QObject parent = None)

Detailed Description

The QTcpSocket class provides a TCP socket.

TCP (Transmission Control Protocol) is a reliable, stream-oriented, connection-oriented transport protocol. It is especially well suited for continuous transmission of data.

QTcpSocket is a convenience subclass of QAbstractSocket that allows you to establish a TCP connection and transfer streams of data. See the QAbstractSocket documentation for details.

Note: TCP sockets cannot be opened in QIODevice.Unbuffered mode.

Symbian Platform Security Requirements

On Symbian, processes which use this class must have the NetworkServices platform security capability. If the client process lacks this capability, it will result in a panic.

Platform security capabilities are added via the TARGET.CAPABILITY qmake variable.


Method Documentation

QTcpSocket.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a QTcpSocket object in state UnconnectedState.

parent is passed on to the QObject constructor.

See also socketType().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtdbus.html0000644000076500000240000000777612536324467017702 0ustar philstaff00000000000000 QtDBus Module
  Home · All Classes · Modules

QtDBus Module

The QtDBus module provides classes for providing services to other, remote applications by exporting objects, as well as use services exported by those applications by placing calls and accessing properties. More...

Types


Detailed Description

Applications using the QtDBus module can provide services to other, remote applications by exporting objects, as well as use services exported by those applications by placing calls and accessing properties.

The QtDBus module provides an interface that extends the Qt Signals and Slots mechanism, allowing one to connect to a signal emitted remotely as well as to connect a local signal to remote slot.

To import the module use, for example, the following statement:

from PyQt4 import QtDBus

See the D-Bus page for detailed information on how to use this module.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtdeclarative.html0000644000076500000240000000707212536324467021215 0ustar philstaff00000000000000 QtDeclarative Module
  Home · All Classes · Modules

QtDeclarative Module

The QtDeclarative module provides classes for using GUIs created using QML. More...

Types


Detailed Description

An introduction to the QtDeclarative module.

To import the module use, for example, the following statement:

from PyQt4 import QtDeclarative

PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtdesigner.html0000644000076500000240000001334312536324470020522 0ustar philstaff00000000000000 QtDesigner Module
  Home · All Classes · Modules

QtDesigner Module

The QtDesigner module provides classes that allow you to create your own custom widget plugins for Qt Designer, and classes that enable you to access Qt Designer's components. More...

Types


Detailed Description

The QtDesigner module provides classes for extending Qt Designer, including custom widgets, using plugins written with PyQt.

Several of the classes in this module (those that implement plugin interfaces) are intended to be used as mixin classes. As it is not possible to derive from multiple C++ classes in Python the module also includes additional classes that are already derived from the appropriate super-classes. All the additional classes have the prefix QPyDesigner.

For example, if you wanted to add custom entries to Qt Designer's task menu then you would implement a Python class derived from QPyDesignerTaskMenuExtension rather than one that derived from QObject and QDesignerTaskMenuExtension.

To import the module use, for example, the following statement:

from PyQt4 import QtDesigner

A full description of writing plugins for Qt Designer is provided in the main PyQt reference documentation.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtemporaryfile.html0000644000076500000240000003222012536324475021420 0ustar philstaff00000000000000 QTemporaryFile Class Reference
  Home · All Classes · Modules

QTemporaryFile Class Reference
[QtCore module]

The QTemporaryFile class is an I/O device that operates on temporary files. More...

Inherits QFile.

Methods

Static Methods


Detailed Description

The QTemporaryFile class is an I/O device that operates on temporary files.

QTemporaryFile is used to create unique temporary files safely. The file itself is created by calling open(). The name of the temporary file is guaranteed to be unique (i.e., you are guaranteed to not overwrite an existing file), and the file will subsequently be removed upon destruction of the QTemporaryFile object. This is an important technique that avoids data corruption for applications that store data in temporary files. The file name is either auto-generated, or created based on a template, which is passed to QTemporaryFile's constructor.

Example:

     // Within a function/method...

     QTemporaryFile file;
     if (file.open()) {
         // file.fileName() returns the unique file name
     }

     // The QTemporaryFile destructor removes the temporary file
     // as it goes out of scope.

Reopening a QTemporaryFile after calling close() is safe. For as long as the QTemporaryFile object itself is not destroyed, the unique temporary file will exist and be kept open internally by QTemporaryFile.

The file name of the temporary file can be found by calling fileName(). Note that this is only defined after the file is first opened; the function returns an empty string before this.

A temporary file will have some static part of the name and some part that is calculated to be unique. The default filename qt_temp will be placed into the temporary path as returned by QDir.tempPath(). If you specify your own filename, a relative file path will not be placed in the temporary directory by default, but be relative to the current working directory.

Specified filenames can contain the following template XXXXXX (six upper case "X" characters), which will be replaced by the auto-generated portion of the filename. Note that the template is case sensitive. If the template is not present in the filename, QTemporaryFile appends the generated part to the filename given.


Method Documentation

QTemporaryFile.__init__ (self)

Constructs a QTemporaryFile in QDir.tempPath(), using the file template "qt_temp.XXXXXX". The file is stored in the system's temporary directory.

See also setFileTemplate() and QDir.tempPath().

QTemporaryFile.__init__ (self, QString templateName)

Constructs a QTemporaryFile with a template filename of templateName. Upon opening the temporary file this will be used to create a unique filename.

If the templateName does not contain XXXXXX it will automatically be appended and used as the dynamic portion of the filename.

If templateName is a relative path, the path will be relative to the current working directory. You can use QDir.tempPath() to construct templateName if you want use the system's temporary directory.

See also open() and fileTemplate().

QTemporaryFile.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QTemporaryFile (with the given parent) in QDir.tempPath(), using the file template "qt_temp.XXXXXX".

See also setFileTemplate().

QTemporaryFile.__init__ (self, QString templateName, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QTemporaryFile with a template filename of templateName and the specified parent. Upon opening the temporary file this will be used to create a unique filename.

If the templateName does not contain XXXXXX it will automatically be appended and used as the dynamic portion of the filename.

If templateName is a relative path, the path will be relative to the current working directory. You can use QDir.tempPath() to construct templateName if you want use the system's temporary directory.

See also open() and fileTemplate().

bool QTemporaryFile.autoRemove (self)

Returns true if the QTemporaryFile is in auto remove mode. Auto-remove mode will automatically delete the filename from disk upon destruction. This makes it very easy to create your QTemporaryFile object on the stack, fill it with data, read from it, and finally on function return it will automatically clean up after itself.

Auto-remove is on by default.

See also setAutoRemove() and remove().

QTemporaryFile QTemporaryFile.createLocalFile (QString fileName)

If file is not on a local disk, a temporary file is created on a local disk, file is copied into the temporary local file, and a pointer to the temporary local file is returned. If file is already on a local disk, a copy is not created and 0 is returned.

QTemporaryFile QTemporaryFile.createLocalFile (QFile file)

This is an overloaded function.

Works on the given fileName rather than an existing QFile object.

QAbstractFileEngine QTemporaryFile.fileEngine (self)

QString QTemporaryFile.fileName (self)

Returns the complete unique filename backing the QTemporaryFile object. This string is null before the QTemporaryFile is opened, afterwards it will contain the fileTemplate() plus additional characters to make it unique.

See also fileTemplate().

QString QTemporaryFile.fileTemplate (self)

Returns the set file template. The default file template will be called qt_temp and be placed in QDir.tempPath().

See also setFileTemplate().

bool QTemporaryFile.open (self)

A QTemporaryFile will always be opened in QIODevice.ReadWrite mode, this allows easy access to the data in the file. This function will return true upon success and will set the fileName() to the unique filename used.

See also fileName().

bool QTemporaryFile.open (self, QIODevice.OpenMode flags)

Reimplemented from QIODevice.open().

Creates a unique file name for the temporary file, and opens it. You can get the unique name later by calling fileName(). The file is guaranteed to have been created by this function (i.e., it has never existed before).

QTemporaryFile.setAutoRemove (self, bool b)

Sets the QTemporaryFile into auto-remove mode if b is true.

Auto-remove is on by default.

See also autoRemove() and remove().

QTemporaryFile.setFileTemplate (self, QString name)

Sets the static portion of the file name to name. If the file template ends in XXXXXX that will automatically be replaced with the unique part of the filename, otherwise a filename will be determined automatically based on the static portion specified.

If name contains a relative file path, the path will be relative to the current working directory. You can use QDir.tempPath() to construct name if you want use the system's temporary directory.

See also fileTemplate().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtest.html0000644000076500000240000005415312536324522017517 0ustar philstaff00000000000000 QTest Class Reference
  Home · All Classes · Modules

QTest Class Reference
[QtTest module]

The QTest namespace contains all the functions and declarations that are related to the QTestLib tool. More...

Types

  • enum KeyAction { Press, Release, Click }
  • enum MouseAction { MousePress, MouseRelease, MouseClick, MouseDClick, MouseMove }

Static Methods

  • keyClick (QWidget widget, Qt.Key key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)
  • keyClick (QWidget widget, str key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)
  • keyClicks (QWidget widget, QString sequence, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)
  • keyEvent (KeyAction action, QWidget widget, Qt.Key key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)
  • keyEvent (KeyAction action, QWidget widget, str ascii, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)
  • keyPress (QWidget widget, Qt.Key key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)
  • keyPress (QWidget widget, str key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)
  • keyRelease (QWidget widget, Qt.Key key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)
  • keyRelease (QWidget widget, str key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)
  • mouseClick (QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1)
  • mouseDClick (QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1)
  • mouseEvent (MouseAction action, QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers stateKey, QPoint pos, int delay = -1)
  • mouseMove (QWidget widget, QPoint pos = QPoint(), int delay = -1)
  • mousePress (QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1)
  • mouseRelease (QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1)
  • qSleep (int ms)
  • qWait (int ms)
  • bool qWaitForWindowShown (QWidget window)

Detailed Description

The QTest namespace contains all the functions and declarations that are related to the QTestLib tool.

Please refer to the QTestLib Manual documentation for information on how to write unit tests.


Type Documentation

QTest.KeyAction

This enum describes possible actions for key handling.

Constant Value Description
QTest.Press 0 The key is pressed.
QTest.Release 1 The key is released.
QTest.Click 2 The key is clicked (pressed and released).

QTest.MouseAction

This enum describes possible actions for mouse handling.

Constant Value Description
QTest.MousePress 0 A mouse button is pressed.
QTest.MouseRelease 1 A mouse button is released.
QTest.MouseClick 2 A mouse button is clicked (pressed and released).
QTest.MouseDClick 3 A mouse button is double clicked (pressed and released twice).
QTest.MouseMove 4 The mouse pointer has moved.

Method Documentation

QTest.keyClick (QWidget widget, Qt.Key key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)

Simulates clicking of key with an optional modifier on a widget. If delay is larger than 0, the test will wait for delay milliseconds.

Examples:

 QTest.keyClick(myWidget, Qt.Key_Escape);

 QTest.keyClick(myWidget, Qt.Key_Escape, Qt.ShiftModifier, 200);

The first example above simulates clicking the escape key on myWidget without any keyboard modifiers and without delay. The second example simulates clicking shift-escape on myWidget with a following 200 ms delay of the test.

See also QTest.keyClicks().

QTest.keyClick (QWidget widget, str key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)

This is an overloaded function.

Simulates clicking of key with an optional modifier on a widget. If delay is larger than 0, the test will wait for delay milliseconds.

Example:

 QTest.keyClick(myWidget, 'a');

The example above simulates clicking a on myWidget without any keyboard modifiers and without delay of the test.

See also QTest.keyClicks().

QTest.keyClicks (QWidget widget, QString sequence, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)

Simulates clicking a sequence of keys on a widget. Optionally, a keyboard modifier can be specified as well as a delay (in milliseconds) of the test before each key click.

Example:

 QTest.keyClicks(myWidget, "hello world");

The example above simulates clicking the sequence of keys representing "hello world" on myWidget without any keyboard modifiers and without delay of the test.

See also QTest.keyClick().

QTest.keyEvent (KeyAction action, QWidget widget, Qt.Key key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)

Sends a Qt key event to widget with the given key and an associated action. Optionally, a keyboard modifier can be specified, as well as a delay (in milliseconds) of the test before sending the event.

QTest.keyEvent (KeyAction action, QWidget widget, str ascii, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)

This is an overloaded function.

Sends a Qt key event to widget with the given key ascii and an associated action. Optionally, a keyboard modifier can be specified, as well as a delay (in milliseconds) of the test before sending the event.

QTest.keyPress (QWidget widget, Qt.Key key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)

Simulates pressing a key with an optional modifier on a widget. If delay is larger than 0, the test will wait for delay milliseconds.

Note: At some point you should release the key using keyRelease().

See also QTest.keyRelease() and QTest.keyClick().

QTest.keyPress (QWidget widget, str key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)

This is an overloaded function.

Simulates pressing a key with an optional modifier on a widget. If delay is larger than 0, the test will wait for delay milliseconds.

Note: At some point you should release the key using keyRelease().

See also QTest.keyRelease() and QTest.keyClick().

QTest.keyRelease (QWidget widget, Qt.Key key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)

Simulates releasing a key with an optional modifier on a widget. If delay is larger than 0, the test will wait for delay milliseconds.

See also QTest.keyPress() and QTest.keyClick().

QTest.keyRelease (QWidget widget, str key, Qt.KeyboardModifiers modifier = Qt.NoModifier, int delay = -1)

This is an overloaded function.

Simulates releasing a key with an optional modifier on a widget. If delay is larger than 0, the test will wait for delay milliseconds.

See also QTest.keyClick().

QTest.mouseClick (QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1)

Simulates clicking a mouse button with an optional modifier on a widget. The position of the click is defined by pos; the default position is the center of the widget. If delay is specified, the test will wait for the specified amount of milliseconds before pressing and before releasing the button.

See also QTest.mousePress() and QTest.mouseRelease().

QTest.mouseDClick (QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1)

Simulates double clicking a mouse button with an optional modifier on a widget. The position of the click is defined by pos; the default position is the center of the widget. If delay is specified, the test will wait for the specified amount of milliseconds before each press and release.

See also QTest.mouseClick().

QTest.mouseEvent (MouseAction action, QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers stateKey, QPoint pos, int delay = -1)

QTest.mouseMove (QWidget widget, QPoint pos = QPoint(), int delay = -1)

Moves the mouse pointer to a widget. If pos is not specified, the mouse pointer moves to the center of the widget. If a delay (in milliseconds) is given, the test will wait before moving the mouse pointer.

QTest.mousePress (QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1)

Simulates pressing a mouse button with an optional modifier on a widget. The position is defined by pos; the default position is the center of the widget. If delay is specified, the test will wait for the specified amount of milliseconds before the press.

See also QTest.mouseRelease() and QTest.mouseClick().

QTest.mouseRelease (QWidget widget, Qt.MouseButton button, Qt.KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1)

Simulates releasing a mouse button with an optional modifier on a widget. The position of the release is defined by pos; the default position is the center of the widget. If delay is specified, the test will wait for the specified amount of milliseconds before releasing the button.

See also QTest.mousePress() and QTest.mouseClick().

QTest.qSleep (int ms)

Sleeps for ms milliseconds, blocking execution of the test. qSleep() will not do any event processing and leave your test unresponsive. Network communication might time out while sleeping. Use qWait() to do non-blocking sleeping.

ms must be greater than 0.

Note: The qSleep() function calls either nanosleep() on unix or Sleep() on windows, so the accuracy of time spent in qSleep() depends on the operating system.

Example:

 QTest.qSleep(250);

See also qWait().

QTest.qWait (int ms)

Waits for ms milliseconds. While waiting, events will be processed and your test will stay responsive to user interface events or network communication.

Example:

 int i = 0;
 while (myNetworkServerNotResponding() && i++ < 50)
     QTest.qWait(250);

The code above will wait until the network server is responding for a maximum of about 12.5 seconds.

See also QTest.qSleep().

bool QTest.qWaitForWindowShown (QWidget window)

Waits until the window is shown in the screen. This is mainly useful for asynchronous systems like X11, where a window will be mapped to screen some time after being asked to show itself on the screen. Returns true.

Example:

 QWidget widget;
 widget.show();
 QTest.qWaitForWindowShown(&widget);

This function was introduced in Qt 4.6.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextblock-iterator.html0000644000076500000240000001201012536324515022352 0ustar philstaff00000000000000 QTextBlock.iterator Class Reference
  Home · All Classes · Modules

QTextBlock.iterator Class Reference
[QtGui module]

The QTextBlock.iterator class provides an iterator for reading the contents of a QTextBlock. More...

Methods

Special Methods


Detailed Description

The QTextBlock.iterator class provides an iterator for reading the contents of a QTextBlock.

A block consists of a sequence of text fragments. This class provides a way to iterate over these, and read their contents. It does not provide a way to modify the internal structure or contents of the block.

An iterator can be constructed and used to access the fragments within a text block in the following way:

     QTextBlock.iterator it;
     for (it = currentBlock.begin(); !(it.atEnd()); ++it) {
         QTextFragment currentFragment = it.fragment();
         if (currentFragment.isValid())
             processFragment(currentFragment);
     }

Method Documentation

iterator.__init__ (self)

Constructs an iterator for this text block.

iterator.__init__ (self, iterator o)

bool iterator.atEnd (self)

Returns true if the current item is the last item in the text block.

QTextFragment iterator.fragment (self)

Returns the text fragment the iterator currently points to.

bool iterator.__eq__ (self, iterator o)

iterator iterator.__iadd__ (self, int)

iterator iterator.__isub__ (self, int)

bool iterator.__ne__ (self, iterator o)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextblock.html0000644000076500000240000005050312536324515020534 0ustar philstaff00000000000000 QTextBlock Class Reference
  Home · All Classes · Modules

QTextBlock Class Reference
[QtGui module]

The QTextBlock class provides a container for text fragments in a QTextDocument. More...

Types

Methods

Special Methods

  • bool __eq__ (self, QTextBlock o)
  • bool __ge__ (self, QTextBlock o)
  • bool __lt__ (self, QTextBlock o)
  • bool __ne__ (self, QTextBlock o)

Detailed Description

The QTextBlock class provides a container for text fragments in a QTextDocument.

A text block encapsulates a block or paragraph of text in a QTextDocument. QTextBlock provides read-only access to the block/paragraph structure of QTextDocuments. It is mainly of use if you want to implement your own layouts for the visual representation of a QTextDocument, or if you want to iterate over a document and write out the contents in your own custom format.

Text blocks are created by their parent documents. If you need to create a new text block, or modify the contents of a document while examining its contents, use the cursor-based interface provided by QTextCursor instead.

Each text block is located at a specific position() in a document(). The contents of the block can be obtained by using the text() function. The length() function determines the block's size within the document (including formatting characters). The visual properties of the block are determined by its text layout(), its charFormat(), and its blockFormat().

The next() and previous() functions enable iteration over consecutive valid blocks in a document under the condition that the document is not modified by other means during the iteration process. Note that, although blocks are returned in sequence, adjacent blocks may come from different places in the document structure. The validity of a block can be determined by calling isValid().

QTextBlock provides comparison operators to make it easier to work with blocks: operator==() compares two block for equality, operator!=() compares two blocks for inequality, and operator<() determines whether a block precedes another in the same document.


Method Documentation

QTextBlock.__init__ (self)

Copies the other text block's attributes to this text block.

QTextBlock.__init__ (self, QTextBlock o)

iterator QTextBlock.begin (self)

Returns a text block iterator pointing to the beginning of the text block.

See also end().

QTextBlockFormat QTextBlock.blockFormat (self)

Returns the QTextBlockFormat that describes block-specific properties.

See also charFormat().

int QTextBlock.blockFormatIndex (self)

Returns an index into the document's internal list of block formats for the text block's format.

See also QTextDocument.allFormats().

int QTextBlock.blockNumber (self)

Returns the number of this block, or -1 if the block is invalid.

This function was introduced in Qt 4.4.

See also QTextCursor.blockNumber().

QTextCharFormat QTextBlock.charFormat (self)

Returns the QTextCharFormat that describes the block's character format. The block's character format is used when inserting text into an empty block.

See also blockFormat().

int QTextBlock.charFormatIndex (self)

Returns an index into the document's internal list of character formats for the text block's character format.

See also QTextDocument.allFormats().

QTextBlock.clearLayout (self)

Clears the QTextLayout that is used to lay out and display the block's contents.

This function was introduced in Qt 4.4.

See also layout().

bool QTextBlock.contains (self, int position)

Returns true if the given position is located within the text block; otherwise returns false.

QTextDocument QTextBlock.document (self)

Returns the text document this text block belongs to, or 0 if the text block does not belong to any document.

iterator QTextBlock.end (self)

Returns a text block iterator pointing to the end of the text block.

See also begin(), next(), and previous().

int QTextBlock.firstLineNumber (self)

Returns the first line number of this block, or -1 if the block is invalid. Unless the layout supports it, the line number is identical to the block number.

This function was introduced in Qt 4.5.

See also QTextBlock.blockNumber().

bool QTextBlock.isValid (self)

Returns true if this text block is valid; otherwise returns false.

bool QTextBlock.isVisible (self)

Returns true if the block is visible; otherwise returns false.

This function was introduced in Qt 4.4.

See also setVisible().

QTextLayout QTextBlock.layout (self)

Returns the QTextLayout that is used to lay out and display the block's contents.

Note that the returned QTextLayout object can only be modified from the documentChanged implementation of a QAbstractTextDocumentLayout subclass. Any changes applied from the outside cause undefined behavior.

See also clearLayout().

int QTextBlock.length (self)

Returns the length of the block in characters.

Note: The length returned includes all formatting characters, for example, newline.

See also text(), charFormat(), and blockFormat().

int QTextBlock.lineCount (self)

Returns the line count. Not all document layouts support this feature.

This function was introduced in Qt 4.5.

See also setLineCount().

QTextBlock QTextBlock.next (self)

Returns the text block in the document after this block, or an empty text block if this is the last one.

Note that the next block may be in a different frame or table to this block.

See also previous(), begin(), and end().

int QTextBlock.position (self)

Returns the index of the block's first character within the document.

QTextBlock QTextBlock.previous (self)

Returns the text block in the document before this block, or an empty text block if this is the first one.

Note that the next block may be in a different frame or table to this block.

See also next(), begin(), and end().

int QTextBlock.revision (self)

Returns the blocks revision.

This function was introduced in Qt 4.4.

See also setRevision() and QTextDocument.revision().

QTextBlock.setLineCount (self, int count)

Sets the line count to count.

This function was introduced in Qt 4.5.

See also lineCount().

QTextBlock.setRevision (self, int rev)

Sets a blocks revision to rev.

This function was introduced in Qt 4.4.

See also revision() and QTextDocument.revision().

QTextBlock.setUserData (self, QTextBlockUserData data)

Attaches the given data object to the text block.

QTextBlockUserData can be used to store custom settings. The ownership is passed to the underlying text document, i.e. the provided QTextBlockUserData object will be deleted if the corresponding text block gets deleted. The user data object is not stored in the undo history, so it will not be available after undoing the deletion of a text block.

For example, if you write a programming editor in an IDE, you may want to let your user set breakpoints visually in your code for an integrated debugger. In a programming editor a line of text usually corresponds to one QTextBlock. The QTextBlockUserData interface allows the developer to store data for each QTextBlock, like for example in which lines of the source code the user has a breakpoint set. Of course this could also be stored externally, but by storing it inside the QTextDocument, it will for example be automatically deleted when the user deletes the associated line. It's really just a way to store custom information in the QTextDocument without using custom properties in QTextFormat which would affect the undo/redo stack.

This function was introduced in Qt 4.1.

See also userData().

QTextBlock.setUserState (self, int state)

Stores the specified state integer value in the text block. This may be useful for example in a syntax highlighter to store a text parsing state.

This function was introduced in Qt 4.1.

See also userState().

QTextBlock.setVisible (self, bool visible)

Sets the block's visibility to visible.

This function was introduced in Qt 4.4.

See also isVisible().

QString QTextBlock.text (self)

Returns the block's contents as plain text.

See also length(), charFormat(), and blockFormat().

Qt.LayoutDirection QTextBlock.textDirection (self)

Returns the resolved text direction.

If the block has no explicit direction set, it will resolve the direction from the blocks content. Returns either Qt.LeftToRight or Qt.RightToLeft.

This function was introduced in Qt 4.7.

See also QTextFormat.layoutDirection(), QString.isRightToLeft(), and Qt.LayoutDirection.

QTextList QTextBlock.textList (self)

If the block represents a list item, returns the list that the item belongs to; otherwise returns 0.

QTextBlockUserData QTextBlock.userData (self)

Returns a pointer to a QTextBlockUserData object if previously set with setUserData() or a null pointer.

This function was introduced in Qt 4.1.

See also setUserData().

int QTextBlock.userState (self)

Returns the integer value previously set with setUserState() or -1.

This function was introduced in Qt 4.1.

See also setUserState().

bool QTextBlock.__eq__ (self, QTextBlock o)

bool QTextBlock.__ge__ (self, QTextBlock o)

bool QTextBlock.__lt__ (self, QTextBlock o)

bool QTextBlock.__ne__ (self, QTextBlock o)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextblockformat.html0000644000076500000240000004747512536324515021763 0ustar philstaff00000000000000 QTextBlockFormat Class Reference
  Home · All Classes · Modules

QTextBlockFormat Class Reference
[QtGui module]

The QTextBlockFormat class provides formatting information for blocks of text in a QTextDocument. More...

Inherits QTextFormat.

Types

  • enum LineHeightTypes { SingleHeight, ProportionalHeight, FixedHeight, MinimumHeight, LineDistanceHeight }

Methods


Detailed Description

The QTextBlockFormat class provides formatting information for blocks of text in a QTextDocument.

A document is composed of a list of blocks, represented by QTextBlock objects. Each block can contain an item of some kind, such as a paragraph of text, a table, a list, or an image. Every block has an associated QTextBlockFormat that specifies its characteristics.

To cater for left-to-right and right-to-left languages you can set a block's direction with setDirection(). Paragraph alignment is set with setAlignment(). Margins are controlled by setTopMargin(), setBottomMargin(), setLeftMargin(), setRightMargin(). Overall indentation is set with setIndent(), the indentation of the first line with setTextIndent().

Line spacing is set with setLineHeight() and retrieved via lineHeight() and lineHeightType(). The types of line spacing available are in the LineHeightTypes enum.

Line breaking can be enabled and disabled with setNonBreakableLines().

The brush used to paint the paragraph's background is set with setBackground(), and other aspects of the text's appearance can be customized by using the setProperty() function with the OutlinePen, ForegroundBrush, and BackgroundBrush QTextFormat.Property values.

If a text block is part of a list, it can also have a list format that is accessible with the listFormat() function.


Type Documentation

QTextBlockFormat.LineHeightTypes

This enum describes the various types of line spacing support paragraphs can have.

Constant Value Description
QTextBlockFormat.SingleHeight 0 This is the default line height: single spacing.
QTextBlockFormat.ProportionalHeight 1 This sets the spacing proportional to the line (in percentage). For example, set to 200 for double spacing.
QTextBlockFormat.FixedHeight 2 This sets the line height to a fixed line height (in pixels).
QTextBlockFormat.MinimumHeight 3 This sets the minimum line height (in pixels).
QTextBlockFormat.LineDistanceHeight 4 This adds the specified height between lines (in pixels).

This enum was introduced or modified in Qt 4.8.

See also lineHeight(), lineHeightType(), and setLineHeight().


Method Documentation

QTextBlockFormat.__init__ (self)

Constructs a new QTextBlockFormat.

QTextBlockFormat.__init__ (self, QTextBlockFormat)

Qt.Alignment QTextBlockFormat.alignment (self)

Returns the paragraph's alignment.

See also setAlignment().

float QTextBlockFormat.bottomMargin (self)

Returns the paragraph's bottom margin.

See also setBottomMargin() and topMargin().

int QTextBlockFormat.indent (self)

Returns the paragraph's indent.

See also setIndent().

bool QTextBlockFormat.isValid (self)

Returns true if this block format is valid; otherwise returns false.

float QTextBlockFormat.leftMargin (self)

Returns the paragraph's left margin.

See also setLeftMargin(), rightMargin(), and indent().

float QTextBlockFormat.lineHeight (self, float scriptLineHeight, float scaling)

Returns the height of the lines in the paragraph based on the height of the script line given by scriptLineHeight and the specified scaling factor.

The value that is returned is also dependent on the given LineHeightType of the paragraph as well as the LineHeight setting that has been set for the paragraph.

The scaling is needed for heights that include a fixed number of pixels, to scale them appropriately for printing.

This function was introduced in Qt 4.8.

See also LineHeightTypes, setLineHeight(), and lineHeightType().

float QTextBlockFormat.lineHeight (self)

This returns the LineHeight property for the paragraph.

This function was introduced in Qt 4.8.

See also LineHeightTypes, setLineHeight(), and lineHeightType().

int QTextBlockFormat.lineHeightType (self)

This returns the LineHeightType property of the paragraph.

This function was introduced in Qt 4.8.

See also LineHeightTypes, setLineHeight(), and lineHeight().

bool QTextBlockFormat.nonBreakableLines (self)

Returns true if the lines in the paragraph are non-breakable; otherwise returns false.

See also setNonBreakableLines().

QTextFormat.PageBreakFlags QTextBlockFormat.pageBreakPolicy (self)

Returns the currently set page break policy for the paragraph. The default is QTextFormat.PageBreak_Auto.

This function was introduced in Qt 4.2.

See also setPageBreakPolicy().

float QTextBlockFormat.rightMargin (self)

Returns the paragraph's right margin.

See also setRightMargin() and leftMargin().

QTextBlockFormat.setAlignment (self, Qt.Alignment aalignment)

Sets the paragraph's alignment.

See also alignment().

QTextBlockFormat.setBottomMargin (self, float margin)

Sets the paragraph's bottom margin.

See also bottomMargin(), setTopMargin(), setLeftMargin(), and setRightMargin().

QTextBlockFormat.setIndent (self, int aindent)

Sets the paragraph's indentation. Margins are set independently of indentation with setLeftMargin() and setTextIndent(). The indentation is an integer that is multiplied with the document-wide standard indent, resulting in the actual indent of the paragraph.

See also indent() and QTextDocument.indentWidth().

QTextBlockFormat.setLeftMargin (self, float margin)

Sets the paragraph's left margin. Indentation can be applied separately with setIndent().

See also leftMargin(), setRightMargin(), setTopMargin(), and setBottomMargin().

QTextBlockFormat.setLineHeight (self, float height, int heightType)

Sets the line height for the paragraph to the value given by height which is dependent on heightType in the way described by the LineHeightTypes enum.

This function was introduced in Qt 4.8.

See also LineHeightTypes, lineHeight(), and lineHeightType().

QTextBlockFormat.setNonBreakableLines (self, bool b)

If b is true, the lines in the paragraph are treated as non-breakable; otherwise they are breakable.

See also nonBreakableLines().

QTextBlockFormat.setPageBreakPolicy (self, QTextFormat.PageBreakFlags flags)

Sets the page break policy for the paragraph to policy.

This function was introduced in Qt 4.2.

See also pageBreakPolicy().

QTextBlockFormat.setRightMargin (self, float margin)

Sets the paragraph's right margin.

See also rightMargin(), setLeftMargin(), setTopMargin(), and setBottomMargin().

QTextBlockFormat.setTabPositions (self, list-of-QTextOption.Tab tabs)

Sets the tab positions for the text block to those specified by tabs.

This function was introduced in Qt 4.4.

See also tabPositions().

QTextBlockFormat.setTextIndent (self, float margin)

Sets the indent for the first line in the block. This allows the first line of a paragraph to be indented differently to the other lines, enhancing the readability of the text.

See also textIndent(), setLeftMargin(), setRightMargin(), setTopMargin(), and setBottomMargin().

QTextBlockFormat.setTopMargin (self, float margin)

Sets the paragraph's top margin.

See also topMargin(), setBottomMargin(), setLeftMargin(), and setRightMargin().

list-of-QTextOption.Tab QTextBlockFormat.tabPositions (self)

Returns a list of tab positions defined for the text block.

This function was introduced in Qt 4.4.

See also setTabPositions().

float QTextBlockFormat.textIndent (self)

Returns the paragraph's text indent.

See also setTextIndent().

float QTextBlockFormat.topMargin (self)

Returns the paragraph's top margin.

See also setTopMargin() and bottomMargin().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextblockgroup.html0000644000076500000240000001204412536324515021607 0ustar philstaff00000000000000 QTextBlockGroup Class Reference
  Home · All Classes · Modules

QTextBlockGroup Class Reference
[QtGui module]

The QTextBlockGroup class provides a container for text blocks within a QTextDocument. More...

Inherits QTextObject.

Inherited by QTextList.

Methods


Detailed Description

The QTextBlockGroup class provides a container for text blocks within a QTextDocument.

Block groups can be used to organize blocks of text within a document. They maintain an up-to-date list of the text blocks that belong to them, even when text blocks are being edited.

Each group has a parent document which is specified when the group is constructed.

Text blocks can be inserted into a group with blockInserted(), and removed with blockRemoved(). If a block's format is changed, blockFormatChanged() is called.

The list of blocks in the group is returned by blockList(). Note that the blocks in the list are not necessarily adjacent elements in the document; for example, the top-level items in a multi-level list will be separated by the items in lower levels of the list.


Method Documentation

QTextBlockGroup.__init__ (self, QTextDocument doc)

Creates a new new block group for the given document.

Warning: This function should only be called from QTextDocument.createObject().

QTextBlockGroup.blockFormatChanged (self, QTextBlock block)

This function is called whenever the specified block of text is changed. The text block is a member of this group.

The base class implementation does nothing.

QTextBlockGroup.blockInserted (self, QTextBlock block)

Appends the given block to the end of the group.

Warning: If you reimplement this function you must call the base class implementation.

list-of-QTextBlock QTextBlockGroup.blockList (self)

Returns a (possibly empty) list of all the blocks that are part of the block group.

QTextBlockGroup.blockRemoved (self, QTextBlock block)

Removes the given block from the group; the block itself is not deleted, it simply isn't a member of this group anymore.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextblockuserdata.html0000644000076500000240000000602112536324515022261 0ustar philstaff00000000000000 QTextBlockUserData Class Reference
  Home · All Classes · Modules

QTextBlockUserData Class Reference
[QtGui module]

The QTextBlockUserData class is used to associate custom data with blocks of text. More...

Methods


Detailed Description

The QTextBlockUserData class is used to associate custom data with blocks of text.

QTextBlockUserData provides an abstract interface for container classes that are used to associate application-specific user data with text blocks in a QTextDocument.

Generally, subclasses of this class provide functions to allow data to be stored and retrieved, and instances are attached to blocks of text using QTextBlock.setUserData(). This makes it possible to store additional data per text block in a way that can be retrieved safely by the application.

Each subclass should provide a reimplementation of the destructor to ensure that any private data is automatically cleaned up when user data objects are deleted.


Method Documentation

QTextBlockUserData.__init__ (self)

QTextBlockUserData.__init__ (self, QTextBlockUserData)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextboundaryfinder-boundaryreasons.html0000644000076500000240000001541612536324475025702 0ustar philstaff00000000000000 QTextBoundaryFinder.BoundaryReasons Class Reference
  Home · All Classes · Modules

QTextBoundaryFinder.BoundaryReasons Class Reference
[QtCore module]

Methods

Special Methods

  • BoundaryReasons __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, BoundaryReasons f)
  • BoundaryReasons __iand__ (self, int mask)
  • int __int__ (self)
  • BoundaryReasons __invert__ (self)
  • BoundaryReasons __ior__ (self, BoundaryReasons f)
  • BoundaryReasons __ixor__ (self, BoundaryReasons f)
  • bool __ne__ (self, BoundaryReasons f)
  • BoundaryReasons __or__ (self, BoundaryReasons f)
  • BoundaryReasons __or__ (self, int f)
  • BoundaryReasons __xor__ (self, BoundaryReasons f)
  • BoundaryReasons __xor__ (self, int f)

Detailed Description

BoundaryReason may be used whenever BoundaryReasons is expected.


Method Documentation

BoundaryReasons.__init__ (self, BoundaryReasons)

BoundaryReasons.__init__ (self, int)

BoundaryReasons.__init__ (self)

BoundaryReasons BoundaryReasons.__and__ (self, int mask)

int BoundaryReasons.__bool__ (self)

bool BoundaryReasons.__eq__ (self, BoundaryReasons f)

BoundaryReasons BoundaryReasons.__iand__ (self, int mask)

int BoundaryReasons.__int__ (self)

BoundaryReasons BoundaryReasons.__invert__ (self)

BoundaryReasons BoundaryReasons.__ior__ (self, BoundaryReasons f)

BoundaryReasons BoundaryReasons.__ixor__ (self, BoundaryReasons f)

bool BoundaryReasons.__ne__ (self, BoundaryReasons f)

BoundaryReasons BoundaryReasons.__or__ (self, BoundaryReasons f)

BoundaryReasons BoundaryReasons.__or__ (self, int f)

BoundaryReasons BoundaryReasons.__xor__ (self, BoundaryReasons f)

BoundaryReasons BoundaryReasons.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextboundaryfinder.html0000644000076500000240000002617612536324475022473 0ustar philstaff00000000000000 QTextBoundaryFinder Class Reference
  Home · All Classes · Modules

QTextBoundaryFinder Class Reference
[QtCore module]

The QTextBoundaryFinder class provides a way of finding Unicode text boundaries in a string. More...

Types

Methods


Detailed Description

The QTextBoundaryFinder class provides a way of finding Unicode text boundaries in a string.

QTextBoundaryFinder allows to find Unicode text boundaries in a string, similar to the Unicode text boundary specification (see http://www.unicode.org/reports/tr29/tr29-11.html).

QTextBoundaryFinder can operate on a QString in four possible modes depending on the value of BoundaryType.

Units of Unicode characters that make up what the user thinks of as a character or basic unit of the language are here called Grapheme clusters. The two unicode characters 'A' + diaeresis do for example form one grapheme cluster as the user thinks of them as one character, yet it is in this case represented by two unicode code points.

Word boundaries are there to locate the start and end of what a language considers to be a word.

Line break boundaries give possible places where a line break might happen and sentence boundaries will show the beginning and end of whole sentences.

The first position in a string is always a valid boundary and refers to the position before the first character. The last position at the length of the string is also valid and refers to the position after the last character.


Type Documentation

QTextBoundaryFinder.BoundaryReason

Constant Value Description
QTextBoundaryFinder.NotAtBoundary 0 The boundary finder is not at a boundary position.
QTextBoundaryFinder.StartWord 1 The boundary finder is at the start of a word.
QTextBoundaryFinder.EndWord 2 The boundary finder is at the end of a word.

The BoundaryReasons type is a typedef for QFlags<BoundaryReason>. It stores an OR combination of BoundaryReason values.

QTextBoundaryFinder.BoundaryType

Constant Value Description
QTextBoundaryFinder.Grapheme 0 Finds a grapheme which is the smallest boundary. It including letters, punctation marks, numerals and more.
QTextBoundaryFinder.Word 1 Finds a word.
QTextBoundaryFinder.Line 2 Finds possible positions for breaking the text into multiple lines.
QTextBoundaryFinder.Sentence 3 Finds sentence boundaries. These include periods, question marks etc.

Method Documentation

QTextBoundaryFinder.__init__ (self)

Constructs an invalid QTextBoundaryFinder object.

QTextBoundaryFinder.__init__ (self, QTextBoundaryFinder other)

Copies the QTextBoundaryFinder object, other.

QTextBoundaryFinder.__init__ (self, BoundaryType type, QString string)

Creates a QTextBoundaryFinder object of type operating on string.

BoundaryReasons QTextBoundaryFinder.boundaryReasons (self)

Returns the reasons for the boundary finder to have chosen the current position as a boundary.

bool QTextBoundaryFinder.isAtBoundary (self)

Returns true if the object's position() is currently at a valid text boundary.

bool QTextBoundaryFinder.isValid (self)

Returns true if the text boundary finder is valid; otherwise returns false. A default QTextBoundaryFinder is invalid.

int QTextBoundaryFinder.position (self)

Returns the current position of the QTextBoundaryFinder.

The range is from 0 (the beginning of the string) to the length of the string inclusive.

See also setPosition().

QTextBoundaryFinder.setPosition (self, int position)

Sets the current position of the QTextBoundaryFinder to position.

If position is out of bounds, it will be bound to only valid positions. In this case, valid positions are from 0 to the length of the string inclusive.

See also position().

QString QTextBoundaryFinder.string (self)

Returns the string the QTextBoundaryFinder object operates on.

QTextBoundaryFinder.toEnd (self)

Moves the finder to the end of the string. This is equivalent to setPosition(string.length()).

See also setPosition() and position().

int QTextBoundaryFinder.toNextBoundary (self)

Moves the QTextBoundaryFinder to the next boundary position and returns that position.

Returns -1 if there is no next boundary.

int QTextBoundaryFinder.toPreviousBoundary (self)

Moves the QTextBoundaryFinder to the previous boundary position and returns that position.

Returns -1 if there is no previous boundary.

QTextBoundaryFinder.toStart (self)

Moves the finder to the start of the string. This is equivalent to setPosition(0).

See also setPosition() and position().

BoundaryType QTextBoundaryFinder.type (self)

Returns the type of the QTextBoundaryFinder.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextbrowser.html0000644000076500000240000005417012536324514021130 0ustar philstaff00000000000000 QTextBrowser Class Reference
  Home · All Classes · Modules

QTextBrowser Class Reference
[QtGui module]

The QTextBrowser class provides a rich text browser with hypertext navigation. More...

Inherits QTextEdit.

Methods

Qt Signals


Detailed Description

The QTextBrowser class provides a rich text browser with hypertext navigation.

This class extends QTextEdit (in read-only mode), adding some navigation functionality so that users can follow links in hypertext documents.

If you want to provide your users with an editable rich text editor, use QTextEdit. If you want a text browser without hypertext navigation use QTextEdit, and use QTextEdit.setReadOnly() to disable editing. If you just need to display a small piece of rich text use QLabel.

Document Source and Contents

The contents of QTextEdit are set with setHtml() or setPlainText(), but QTextBrowser also implements the setSource() function, making it possible to use a named document as the source text. The name is looked up in a list of search paths and in the directory of the current document factory.

If a document name ends with an anchor (for example, "#anchor"), the text browser automatically scrolls to that position (using scrollToAnchor()). When the user clicks on a hyperlink, the browser will call setSource() itself with the link's href value as argument. You can track the current source by connecting to the sourceChanged() signal.

Navigation

QTextBrowser provides backward() and forward() slots which you can use to implement Back and Forward buttons. The home() slot sets the text to the very first document displayed. The anchorClicked() signal is emitted when the user clicks an anchor. To override the default navigation behavior of the browser, call the setSource() function to supply new document text in a slot connected to this signal.

If you want to load documents stored in the Qt resource system use qrc as the scheme in the URL to load. For example, for the document resource path :/docs/index.html use qrc:/docs/index.html as the URL with setSource(). To access local files, use file as the scheme in the URL.


Method Documentation

QTextBrowser.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty QTextBrowser with parent parent.

QTextBrowser.backward (self)

This method is also a Qt slot with the C++ signature void backward().

Changes the document displayed to the previous document in the list of documents built by navigating links. Does nothing if there is no previous document.

See also forward() and backwardAvailable().

int QTextBrowser.backwardHistoryCount (self)

Returns the number of locations backward in the history.

This function was introduced in Qt 4.4.

QTextBrowser.clearHistory (self)

Clears the history of visited documents and disables the forward and backward navigation.

This function was introduced in Qt 4.2.

See also backward() and forward().

bool QTextBrowser.event (self, QEvent e)

Reimplemented from QObject.event().

bool QTextBrowser.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QTextBrowser.focusOutEvent (self, QFocusEvent ev)

Reimplemented from QWidget.focusOutEvent().

QTextBrowser.forward (self)

This method is also a Qt slot with the C++ signature void forward().

Changes the document displayed to the next document in the list of documents built by navigating links. Does nothing if there is no next document.

See also backward() and forwardAvailable().

int QTextBrowser.forwardHistoryCount (self)

Returns the number of locations forward in the history.

This function was introduced in Qt 4.4.

QString QTextBrowser.historyTitle (self, int)

Returns the documentTitle() of the HistoryItem.

Input Return
i < 0 backward() history
i == 0 current, see QTextBrowser.source()
i > 0 forward() history
 backaction.setToolTip(browser.historyTitle(-1));
 forwardaction.setToolTip(browser.historyTitle(+1));

This function was introduced in Qt 4.4.

QUrl QTextBrowser.historyUrl (self, int)

Returns the url of the HistoryItem.

Input Return
i < 0 backward() history
i == 0 current, see QTextBrowser.source()
i > 0 forward() history

This function was introduced in Qt 4.4.

QTextBrowser.home (self)

This method is also a Qt slot with the C++ signature void home().

Changes the document displayed to be the first document from the history.

bool QTextBrowser.isBackwardAvailable (self)

Returns true if the text browser can go backward in the document history using backward().

This function was introduced in Qt 4.2.

See also backwardAvailable() and backward().

bool QTextBrowser.isForwardAvailable (self)

Returns true if the text browser can go forward in the document history using forward().

This function was introduced in Qt 4.2.

See also forwardAvailable() and forward().

QTextBrowser.keyPressEvent (self, QKeyEvent ev)

Reimplemented from QWidget.keyPressEvent().

The event ev is used to provide the following keyboard shortcuts:

Keypress Action
Alt+Left Arrow backward()
Alt+Right Arrow forward()
Alt+Up Arrow home()

QVariant QTextBrowser.loadResource (self, int type, QUrl name)

Reimplemented from QTextEdit.loadResource().

This function is called when the document is loaded and for each image in the document. The type indicates the type of resource to be loaded. An invalid QVariant is returned if the resource cannot be loaded.

The default implementation ignores type and tries to locate the resources by interpreting name as a file name. If it is not an absolute path it tries to find the file in the paths of the searchPaths property and in the same directory as the current source. On success, the result is a QVariant that stores a QByteArray with the contents of the file.

If you reimplement this function, you can return other QVariant types. The table below shows which variant types are supported depending on the resource type:

ResourceType QVariant.Type
QTextDocument.HtmlResource QString or QByteArray
QTextDocument.ImageResource QImage, QPixmap or QByteArray
QTextDocument.StyleSheetResource QString or QByteArray

QTextBrowser.mouseMoveEvent (self, QMouseEvent ev)

Reimplemented from QWidget.mouseMoveEvent().

QTextBrowser.mousePressEvent (self, QMouseEvent ev)

Reimplemented from QWidget.mousePressEvent().

QTextBrowser.mouseReleaseEvent (self, QMouseEvent ev)

Reimplemented from QWidget.mouseReleaseEvent().

bool QTextBrowser.openExternalLinks (self)

bool QTextBrowser.openLinks (self)

QTextBrowser.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

QTextBrowser.reload (self)

This method is also a Qt slot with the C++ signature void reload().

Reloads the current set source.

QStringList QTextBrowser.searchPaths (self)

QTextBrowser.setOpenExternalLinks (self, bool open)

QTextBrowser.setOpenLinks (self, bool open)

QTextBrowser.setSearchPaths (self, QStringList paths)

QTextBrowser.setSource (self, QUrl name)

This method is also a Qt slot with the C++ signature void setSource(const QUrl&).

QUrl QTextBrowser.source (self)


Qt Signal Documentation

void anchorClicked (const QUrl&)

This is the default overload of this signal.

This signal is emitted when the user clicks an anchor. The URL referred to by the anchor is passed in link.

Note that the browser will automatically handle navigation to the location specified by link unless the openLinks property is set to false or you call setSource() in a slot connected. This mechanism is used to override the default navigation features of the browser.

void backwardAvailable (bool)

This is the default overload of this signal.

This signal is emitted when the availability of backward() changes. available is false when the user is at home(); otherwise it is true.

void forwardAvailable (bool)

This is the default overload of this signal.

This signal is emitted when the availability of forward() changes. available is true after the user navigates backward() and false when the user navigates or goes forward().

void highlighted (const QUrl&)

This is the default overload of this signal.

This signal is emitted when the user has selected but not activated an anchor in the document. The URL referred to by the anchor is passed in link.

void highlighted (const QString&)

This is an overloaded function.

Convenience signal that allows connecting to a slot that takes just a QString, like for example QStatusBar's message().

void historyChanged ()

This is the default overload of this signal.

This signal is emitted when the history changes.

This function was introduced in Qt 4.4.

See also historyTitle() and historyUrl().

void sourceChanged (const QUrl&)

This is the default overload of this signal.

This signal is emitted when the source has changed, src being the new source.

Source changes happen both programmatically when calling setSource(), forward(), backword() or home() or when the user clicks on links or presses the equivalent key sequences.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextcharformat.html0000644000076500000240000010553612536324515021577 0ustar philstaff00000000000000 QTextCharFormat Class Reference
  Home · All Classes · Modules

QTextCharFormat Class Reference
[QtGui module]

The QTextCharFormat class provides formatting information for characters in a QTextDocument. More...

Inherits QTextFormat.

Inherited by QTextImageFormat and QTextTableCellFormat.

Types

  • enum UnderlineStyle { NoUnderline, SingleUnderline, DashUnderline, DotLine, ..., SpellCheckUnderline }
  • enum VerticalAlignment { AlignNormal, AlignSuperScript, AlignSubScript, AlignMiddle, ..., AlignBaseline }

Methods


Detailed Description

The QTextCharFormat class provides formatting information for characters in a QTextDocument.

The character format of text in a document specifies the visual properties of the text, as well as information about its role in a hypertext document.

The font used can be set by supplying a font to the setFont() function, and each aspect of its appearance can be adjusted to give the desired effect. setFontFamily() and setFontPointSize() define the font's family (e.g. Times) and printed size; setFontWeight() and setFontItalic() provide control over the style of the font. setFontUnderline(), setFontOverline(), setFontStrikeOut(), and setFontFixedPitch() provide additional effects for text.

The color is set with setForeground(). If the text is intended to be used as an anchor (for hyperlinks), this can be enabled with setAnchor(). The setAnchorHref() and setAnchorNames() functions are used to specify the information about the hyperlink's destination and the anchor's name.


Type Documentation

QTextCharFormat.UnderlineStyle

This enum describes the different ways drawing underlined text.

Constant Value Description
QTextCharFormat.NoUnderline 0 Text is draw without any underlining decoration.
QTextCharFormat.SingleUnderline 1 A line is drawn using Qt.SolidLine.
QTextCharFormat.DashUnderline 2 Dashes are drawn using Qt.DashLine.
QTextCharFormat.DotLine 3 Dots are drawn using Qt.DotLine;
QTextCharFormat.DashDotLine 4 Dashs and dots are drawn using Qt.DashDotLine.
QTextCharFormat.DashDotDotLine 5 Underlines draw drawn using Qt.DashDotDotLine.
QTextCharFormat.WaveUnderline 6 The text is underlined using a wave shaped line.
QTextCharFormat.SpellCheckUnderline 7 The underline is drawn depending on the QStyle.SH_SpellCeckUnderlineStyle style hint of the QApplication style. By default this is mapped to WaveUnderline, on Mac OS X it is mapped to DashDotLine.

See also Qt.PenStyle.

QTextCharFormat.VerticalAlignment

This enum describes the ways that adjacent characters can be vertically aligned.

Constant Value Description
QTextCharFormat.AlignNormal 0 Adjacent characters are positioned in the standard way for text in the writing system in use.
QTextCharFormat.AlignSuperScript 1 Characters are placed above the base line for normal text.
QTextCharFormat.AlignSubScript 2 Characters are placed below the base line for normal text.
QTextCharFormat.AlignMiddle 3 The center of the object is vertically aligned with the base line. Currently, this is only implemented for inline objects.
QTextCharFormat.AlignBottom 5 The bottom edge of the object is vertically aligned with the base line.
QTextCharFormat.AlignTop 4 The top edge of the object is vertically aligned with the base line.
QTextCharFormat.AlignBaseline 6 The base lines of the characters are aligned.

Method Documentation

QTextCharFormat.__init__ (self)

Constructs a new character format object.

QTextCharFormat.__init__ (self, QTextCharFormat)

QString QTextCharFormat.anchorHref (self)

Returns the text format's hypertext link, or an empty string if none has been set.

See also setAnchorHref().

QString QTextCharFormat.anchorName (self)

QStringList QTextCharFormat.anchorNames (self)

Returns the anchor names associated with this text format, or an empty string list if none has been set. If the anchor names are set, text with this format can be the destination of a hypertext link.

This function was introduced in Qt 4.3.

See also setAnchorNames().

QFont QTextCharFormat.font (self)

Returns the font for this character format.

See also setFont().

QFont.Capitalization QTextCharFormat.fontCapitalization (self)

Returns the current capitalization type of the font.

This function was introduced in Qt 4.4.

See also setFontCapitalization().

QString QTextCharFormat.fontFamily (self)

Returns the text format's font family.

See also setFontFamily() and font().

bool QTextCharFormat.fontFixedPitch (self)

Returns true if the text format's font is fixed pitch; otherwise returns false.

See also setFontFixedPitch() and font().

QFont.HintingPreference QTextCharFormat.fontHintingPreference (self)

Returns the hinting preference set for this text format.

This function was introduced in Qt 4.8.

See also setFontHintingPreference(), font(), and QFont.hintingPreference().

bool QTextCharFormat.fontItalic (self)

Returns true if the text format's font is italic; otherwise returns false.

See also setFontItalic() and font().

bool QTextCharFormat.fontKerning (self)

Returns true if the font kerning is enabled.

This function was introduced in Qt 4.5.

See also setFontKerning() and font().

float QTextCharFormat.fontLetterSpacing (self)

Returns the current letter spacing percentage.

This function was introduced in Qt 4.4.

See also setFontLetterSpacing().

bool QTextCharFormat.fontOverline (self)

Returns true if the text format's font is overlined; otherwise returns false.

See also setFontOverline() and font().

float QTextCharFormat.fontPointSize (self)

Returns the font size used to display text in this format.

See also setFontPointSize() and font().

bool QTextCharFormat.fontStrikeOut (self)

Returns true if the text format's font is struck out (has a horizontal line drawn through it); otherwise returns false.

See also setFontStrikeOut() and font().

QFont.StyleHint QTextCharFormat.fontStyleHint (self)

Returns the font style hint.

This function was introduced in Qt 4.5.

See also setFontStyleHint() and font().

QFont.StyleStrategy QTextCharFormat.fontStyleStrategy (self)

Returns the current font style strategy.

This function was introduced in Qt 4.5.

See also setFontStyleStrategy() and font().

bool QTextCharFormat.fontUnderline (self)

Returns true if the text format's font is underlined; otherwise returns false.

See also setFontUnderline() and font().

int QTextCharFormat.fontWeight (self)

Returns the text format's font weight.

See also setFontWeight(), font(), and QFont.Weight.

float QTextCharFormat.fontWordSpacing (self)

Returns the current word spacing value.

This function was introduced in Qt 4.4.

See also setFontWordSpacing().

bool QTextCharFormat.isAnchor (self)

Returns true if the text is formatted as an anchor; otherwise returns false.

See also setAnchor(), setAnchorHref(), and setAnchorNames().

bool QTextCharFormat.isValid (self)

Returns true if this character format is valid; otherwise returns false.

QTextCharFormat.setAnchor (self, bool anchor)

If anchor is true, text with this format represents an anchor, and is formatted in the appropriate way; otherwise the text is formatted normally. (Anchors are hyperlinks which are often shown underlined and in a different color from plain text.)

The way the text is rendered is independent of whether or not the format has a valid anchor defined. Use setAnchorHref(), and optionally setAnchorNames() to create a hypertext link.

See also isAnchor().

QTextCharFormat.setAnchorHref (self, QString value)

Sets the hypertext link for the text format to the given value. This is typically a URL like "http://example.com/index.html".

The anchor will be displayed with the value as its display text; if you want to display different text call setAnchorNames().

To format the text as a hypertext link use setAnchor().

See also anchorHref().

QTextCharFormat.setAnchorName (self, QString name)

QTextCharFormat.setAnchorNames (self, QStringList names)

Sets the text format's anchor names. For the anchor to work as a hyperlink, the destination must be set with setAnchorHref() and the anchor must be enabled with setAnchor().

This function was introduced in Qt 4.3.

See also anchorNames().

QTextCharFormat.setFont (self, QFont font)

Sets the text format's font.

See also font().

QTextCharFormat.setFontCapitalization (self, QFont.Capitalization capitalization)

Sets the capitalization of the text that apppears in this font to capitalization.

A font's capitalization makes the text appear in the selected capitalization mode.

This function was introduced in Qt 4.4.

See also fontCapitalization().

QTextCharFormat.setFontFamily (self, QString family)

Sets the text format's font family.

See also fontFamily() and setFont().

QTextCharFormat.setFontFixedPitch (self, bool fixedPitch)

If fixedPitch is true, sets the text format's font to be fixed pitch; otherwise a non-fixed pitch font is used.

See also fontFixedPitch() and setFont().

QTextCharFormat.setFontHintingPreference (self, QFont.HintingPreference hintingPreference)

Sets the hinting preference of the text format's font to be hintingPreference.

This function was introduced in Qt 4.8.

See also fontHintingPreference(), setFont(), and QFont.setHintingPreference().

QTextCharFormat.setFontItalic (self, bool italic)

If italic is true, sets the text format's font to be italic; otherwise the font will be non-italic.

See also fontItalic() and setFont().

QTextCharFormat.setFontKerning (self, bool enable)

Enables kerning for this font if enable is true; otherwise disables it.

When kerning is enabled, glyph metrics do not add up anymore, even for Latin text. In other words, the assumption that width('a') + width('b') is equal to width("ab") is not neccesairly true.

This function was introduced in Qt 4.5.

See also fontKerning() and setFont().

QTextCharFormat.setFontLetterSpacing (self, float spacing)

Sets the letter spacing of this format to the given spacing, in percent. A value of 100 indicates default spacing; a value of 200 doubles the amount of space a letter takes.

This function was introduced in Qt 4.4.

See also fontLetterSpacing().

QTextCharFormat.setFontOverline (self, bool overline)

If overline is true, sets the text format's font to be overlined; otherwise the font is displayed non-overlined.

See also fontOverline() and setFont().

QTextCharFormat.setFontPointSize (self, float size)

Sets the text format's font size.

See also fontPointSize() and setFont().

QTextCharFormat.setFontStrikeOut (self, bool strikeOut)

If strikeOut is true, sets the text format's font with strike-out enabled (with a horizontal line through it); otherwise it is displayed without strikeout.

See also fontStrikeOut() and setFont().

QTextCharFormat.setFontStyleHint (self, QFont.StyleHint hint, QFont.StyleStrategy strategy = QFont.PreferDefault)

Sets the font style hint and strategy.

Qt does not support style hints on X11 since this information is not provided by the window system.

This function was introduced in Qt 4.5.

See also fontStyleHint(), setFont(), and QFont.setStyleHint().

QTextCharFormat.setFontStyleStrategy (self, QFont.StyleStrategy strategy)

Sets the font style strategy.

This function was introduced in Qt 4.5.

See also fontStyleStrategy(), setFont(), and QFont.setStyleStrategy().

QTextCharFormat.setFontUnderline (self, bool underline)

If underline is true, sets the text format's font to be underlined; otherwise it is displayed non-underlined.

See also fontUnderline() and setFont().

QTextCharFormat.setFontWeight (self, int weight)

Sets the text format's font weight to weight.

See also fontWeight(), setFont(), and QFont.Weight.

QTextCharFormat.setFontWordSpacing (self, float spacing)

Sets the word spacing of this format to the given spacing, in pixels.

This function was introduced in Qt 4.4.

See also fontWordSpacing().

QTextCharFormat.setTableCellColumnSpan (self, int atableCellColumnSpan)

QTextCharFormat.setTableCellRowSpan (self, int atableCellRowSpan)

QTextCharFormat.setTextOutline (self, QPen pen)

Sets the pen used to draw the outlines of characters to the given pen.

See also textOutline().

QTextCharFormat.setToolTip (self, QString tip)

Sets the tool tip for a fragment of text to the given text.

This function was introduced in Qt 4.3.

See also toolTip().

QTextCharFormat.setUnderlineColor (self, QColor color)

Sets the underline color used for the characters with this format to the color specified.

See also underlineColor().

QTextCharFormat.setUnderlineStyle (self, UnderlineStyle style)

Sets the style of underlining the text to style.

This function was introduced in Qt 4.2.

See also underlineStyle().

QTextCharFormat.setVerticalAlignment (self, VerticalAlignment alignment)

Sets the vertical alignment used for the characters with this format to the alignment specified.

See also verticalAlignment().

int QTextCharFormat.tableCellColumnSpan (self)

int QTextCharFormat.tableCellRowSpan (self)

QPen QTextCharFormat.textOutline (self)

Returns the pen used to draw the outlines of characters in this format.

See also setTextOutline().

QString QTextCharFormat.toolTip (self)

Returns the tool tip that is displayed for a fragment of text.

This function was introduced in Qt 4.3.

See also setToolTip().

QColor QTextCharFormat.underlineColor (self)

Returns the color used to underline the characters with this format.

See also setUnderlineColor().

UnderlineStyle QTextCharFormat.underlineStyle (self)

Returns the style of underlining the text.

This function was introduced in Qt 4.2.

See also setUnderlineStyle().

VerticalAlignment QTextCharFormat.verticalAlignment (self)

Returns the vertical alignment used for characters with this format.

See also setVerticalAlignment().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextcodec-conversionflags.html0000644000076500000240000001471212536324475023726 0ustar philstaff00000000000000 QTextCodec.ConversionFlags Class Reference
  Home · All Classes · Modules

QTextCodec.ConversionFlags Class Reference
[QtCore module]

Methods

Special Methods

  • ConversionFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, ConversionFlags f)
  • ConversionFlags __iand__ (self, int mask)
  • int __int__ (self)
  • ConversionFlags __invert__ (self)
  • ConversionFlags __ior__ (self, ConversionFlags f)
  • ConversionFlags __ixor__ (self, ConversionFlags f)
  • bool __ne__ (self, ConversionFlags f)
  • ConversionFlags __or__ (self, ConversionFlags f)
  • ConversionFlags __or__ (self, int f)
  • ConversionFlags __xor__ (self, ConversionFlags f)
  • ConversionFlags __xor__ (self, int f)

Detailed Description

ConversionFlag may be used whenever ConversionFlags is expected.


Method Documentation

ConversionFlags.__init__ (self, ConversionFlags)

ConversionFlags.__init__ (self, int)

ConversionFlags.__init__ (self)

ConversionFlags ConversionFlags.__and__ (self, int mask)

int ConversionFlags.__bool__ (self)

bool ConversionFlags.__eq__ (self, ConversionFlags f)

ConversionFlags ConversionFlags.__iand__ (self, int mask)

int ConversionFlags.__int__ (self)

ConversionFlags ConversionFlags.__invert__ (self)

ConversionFlags ConversionFlags.__ior__ (self, ConversionFlags f)

ConversionFlags ConversionFlags.__ixor__ (self, ConversionFlags f)

bool ConversionFlags.__ne__ (self, ConversionFlags f)

ConversionFlags ConversionFlags.__or__ (self, ConversionFlags f)

ConversionFlags ConversionFlags.__or__ (self, int f)

ConversionFlags ConversionFlags.__xor__ (self, ConversionFlags f)

ConversionFlags ConversionFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextcodec-converterstate.html0000644000076500000240000000424212536324475023571 0ustar philstaff00000000000000 QTextCodec.ConverterState Class Reference
  Home · All Classes · Modules

QTextCodec.ConverterState Class Reference
[QtCore module]

Methods

  • __init__ (self, ConversionFlags flags = QTextCodec.DefaultConversion)

Detailed Description


Method Documentation

ConverterState.__init__ (self, ConversionFlags flags = QTextCodec.DefaultConversion)

Constructs a ConverterState object initialized with the given flags.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextcodec.html0000644000076500000240000007102512536324475020526 0ustar philstaff00000000000000 QTextCodec Class Reference
  Home · All Classes · Modules

QTextCodec Class Reference
[QtCore module]

The QTextCodec class provides conversions between text encodings. More...

Types

Methods

Static Methods


Detailed Description

The QTextCodec class provides conversions between text encodings.

Qt uses Unicode to store, draw and manipulate strings. In many situations you may wish to deal with data that uses a different encoding. For example, most Japanese documents are still stored in Shift-JIS or ISO 2022-JP, while Russian users often have their documents in KOI8-R or Windows-1251.

Qt provides a set of QTextCodec classes to help with converting non-Unicode formats to and from Unicode. You can also create your own codec classes.

The supported encodings are:

QTextCodecs can be used as follows to convert some locally encoded string to Unicode. Suppose you have some string encoded in Russian KOI8-R encoding, and want to convert it to Unicode. The simple way to do it is like this:

 QByteArray encodedString = "...";
 QTextCodec *codec = QTextCodec.codecForName("KOI8-R");
 QString string = codec->toUnicode(encodedString);

After this, string holds the text converted to Unicode. Converting a string from Unicode to the local encoding is just as easy:

 QString string = "...";
 QTextCodec *codec = QTextCodec.codecForName("KOI8-R");
 QByteArray encodedString = codec->fromUnicode(string);

To read or write files in various encodings, use QTextStream and its setCodec() function. See the Codecs example for an application of QTextCodec to file I/O.

Some care must be taken when trying to convert the data in chunks, for example, when receiving it over a network. In such cases it is possible that a multi-byte character will be split over two chunks. At best this might result in the loss of a character and at worst cause the entire conversion to fail.

The approach to use in these situations is to create a QTextDecoder object for the codec and use this QTextDecoder for the whole decoding process, as shown below:

 QTextCodec *codec = QTextCodec.codecForName("Shift-JIS");
 QTextDecoder *decoder = codec->makeDecoder();

 QString string;
 while (new_data_available()) {
     QByteArray chunk = get_new_data();
     string += decoder->toUnicode(chunk);
 }
 delete decoder;

The QTextDecoder object maintains state between chunks and therefore works correctly even if a multi-byte character is split between chunks.

Creating Your Own Codec Class

Support for new text encodings can be added to Qt by creating QTextCodec subclasses.

The pure virtual functions describe the encoder to the system and the coder is used as required in the different text file formats supported by QTextStream, and under X11, for the locale-specific character input and output.

To add support for another encoding to Qt, make a subclass of QTextCodec and implement the functions listed in the table below.

Function Description
name() Returns the official name for the encoding. If the encoding is listed in the IANA character-sets encoding file, the name should be the preferred MIME name for the encoding.
aliases() Returns a list of alternative names for the encoding. QTextCodec provides a default implementation that returns an empty list. For example, "ISO-8859-1" has "latin1", "CP819", "IBM819", and "iso-ir-100" as aliases.
mibEnum() Return the MIB enum for the encoding if it is listed in the IANA character-sets encoding file.
convertToUnicode() Converts an 8-bit character string to Unicode.
convertFromUnicode() Converts a Unicode string to an 8-bit character string.

You may find it more convenient to make your codec class available as a plugin; see How to Create Qt Plugins for details.


Type Documentation

QTextCodec.ConversionFlag

Constant Value Description
QTextCodec.DefaultConversion 0 No flag is set.
QTextCodec.ConvertInvalidToNull 0x80000000 If this flag is set, each invalid input character is output as a null character.
QTextCodec.IgnoreHeader 0x1 Ignore any Unicode byte-order mark and don't generate any.

The ConversionFlags type is a typedef for QFlags<ConversionFlag>. It stores an OR combination of ConversionFlag values.


Method Documentation

QTextCodec.__init__ (self)

Constructs a QTextCodec, and gives it the highest precedence. The QTextCodec should always be constructed on the heap (i.e. with new). Qt takes ownership and will delete it when the application terminates.

list-of-QByteArray QTextCodec.aliases (self)

Subclasses can return a number of aliases for the codec in question.

Standard aliases for codecs can be found in the IANA character-sets encoding file.

list-of-QByteArray QTextCodec.availableCodecs ()

Returns the list of all available codecs, by name. Call QTextCodec.codecForName() to obtain the QTextCodec for the name.

The list may contain many mentions of the same codec if the codec has aliases.

See also availableMibs(), name(), and aliases().

list-of-int QTextCodec.availableMibs ()

Returns the list of MIBs for all available codecs. Call QTextCodec.codecForMib() to obtain the QTextCodec for the MIB.

See also availableCodecs() and mibEnum().

bool QTextCodec.canEncode (self, QString)

Returns true if the Unicode character ch can be fully encoded with this codec; otherwise returns false.

QTextCodec QTextCodec.codecForCStrings ()

Returns the codec used by QString to convert to and from const char * and QByteArrays. If this function returns 0 (the default), QString assumes Latin-1.

See also setCodecForCStrings().

QTextCodec QTextCodec.codecForHtml (QByteArray ba)

Tries to detect the encoding of the provided snippet of HTML in the given byte array, ba, by checking the BOM (Byte Order Mark) and the content-type meta header and returns a QTextCodec instance that is capable of decoding the html to unicode. If the codec cannot be detected from the content provided, defaultCodec is returned.

This function was introduced in Qt 4.4.

See also codecForUtfText().

QTextCodec QTextCodec.codecForHtml (QByteArray ba, QTextCodec defaultCodec)

This is an overloaded function.

Tries to detect the encoding of the provided snippet of HTML in the given byte array, ba, by checking the BOM (Byte Order Mark) and the content-type meta header and returns a QTextCodec instance that is capable of decoding the html to unicode. If the codec cannot be detected, this overload returns a Latin-1 QTextCodec.

QTextCodec QTextCodec.codecForLocale ()

Returns a pointer to the codec most suitable for this locale.

On Windows, the codec will be based on a system locale. On Unix systems, starting with Qt 4.2, the codec will be using the iconv library. Note that in both cases the codec's name will be "System".

See also setCodecForLocale().

QTextCodec QTextCodec.codecForMib (int mib)

Returns the QTextCodec which matches the MIBenum mib.

QTextCodec QTextCodec.codecForName (QByteArray name)

Searches all installed QTextCodec objects and returns the one which best matches name; the match is case-insensitive. Returns 0 if no codec matching the name name could be found.

QTextCodec QTextCodec.codecForName (str name)

Searches all installed QTextCodec objects and returns the one which best matches name; the match is case-insensitive. Returns 0 if no codec matching the name name could be found.

QTextCodec QTextCodec.codecForTr ()

Returns the codec used by QObject.tr() on its argument. If this function returns 0 (the default), tr() assumes Latin-1.

See also setCodecForTr().

QTextCodec QTextCodec.codecForUtfText (QByteArray ba)

Tries to detect the encoding of the provided snippet ba by using the BOM (Byte Order Mark) and returns a QTextCodec instance that is capable of decoding the text to unicode. If the codec cannot be detected from the content provided, defaultCodec is returned.

This function was introduced in Qt 4.6.

See also codecForHtml().

QTextCodec QTextCodec.codecForUtfText (QByteArray ba, QTextCodec defaultCodec)

This is an overloaded function.

Tries to detect the encoding of the provided snippet ba by using the BOM (Byte Order Mark) and returns a QTextCodec instance that is capable of decoding the text to unicode. If the codec cannot be detected, this overload returns a Latin-1 QTextCodec.

See also codecForHtml().

QString QTextCodec.convertToUnicode (self, str in, ConverterState state)

This method is abstract and should be reimplemented in any sub-class.

QTextCodec subclasses must reimplement this function.

Converts the first len characters of chars from the encoding of the subclass to Unicode, and returns the result in a QString.

state can be 0, in which case the conversion is stateless and default conversion rules should be used. If state is not 0, the codec should save the state after the conversion in state, and adjust the remainingChars and invalidChars members of the struct.

QByteArray QTextCodec.fromUnicode (self, QString uc)

Converts str from Unicode to the encoding of this codec, and returns the result in a QByteArray.

QTextDecoder QTextCodec.makeDecoder (self)

Creates a QTextDecoder which stores enough state to decode chunks of char * data to create chunks of Unicode data.

The caller is responsible for deleting the returned object.

QTextDecoder QTextCodec.makeDecoder (self, ConversionFlags flags)

Creates a QTextDecoder with a specified flags to decode chunks of char * data to create chunks of Unicode data.

The caller is responsible for deleting the returned object.

This function was introduced in Qt 4.7.

QTextEncoder QTextCodec.makeEncoder (self)

Creates a QTextEncoder which stores enough state to encode chunks of Unicode data as char * data.

The caller is responsible for deleting the returned object.

QTextEncoder QTextCodec.makeEncoder (self, ConversionFlags flags)

Creates a QTextEncoder with a specified flags to encode chunks of Unicode data as char * data.

The caller is responsible for deleting the returned object.

This function was introduced in Qt 4.7.

int QTextCodec.mibEnum (self)

This method is abstract and should be reimplemented in any sub-class.

Subclasses of QTextCodec must reimplement this function. It returns the MIBenum (see IANA character-sets encoding file for more information). It is important that each QTextCodec subclass returns the correct unique value for this function.

QByteArray QTextCodec.name (self)

This method is abstract and should be reimplemented in any sub-class.

QTextCodec subclasses must reimplement this function. It returns the name of the encoding supported by the subclass.

If the codec is registered as a character set in the IANA character-sets encoding file this method should return the preferred mime name for the codec if defined, otherwise its name.

QTextCodec.setCodecForCStrings (QTextCodec c)

Sets the codec used by QString to convert to and from const char * and QByteArrays. If the codec is 0 (the default), QString assumes Latin-1.

Warning: Some codecs do not preserve the characters in the ASCII range (0x00 to 0x7F). For example, the Japanese Shift-JIS encoding maps the backslash character (0x5A) to the Yen character. To avoid undesirable side-effects, we recommend avoiding such codecs with setCodecsForCString().

Warning: This function is not reentrant.

See also codecForCStrings() and setCodecForTr().

QTextCodec.setCodecForLocale (QTextCodec c)

Set the codec to c; this will be returned by codecForLocale(). If c is a null pointer, the codec is reset to the default.

This might be needed for some applications that want to use their own mechanism for setting the locale.

See also codecForLocale().

QTextCodec.setCodecForTr (QTextCodec c)

Sets the codec used by QObject.tr() on its argument to c. If c is 0 (the default), tr() assumes Latin-1.

If the literal quoted text in the program is not in the Latin-1 encoding, this function can be used to set the appropriate encoding. For example, software developed by Korean programmers might use eucKR for all the text in the program, in which case the main() function might look like this:

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QTextCodec.setCodecForTr(QTextCodec.codecForName("eucKR"));
     ...
 }

Note that this is not the way to select the encoding that the user has chosen. For example, to convert an application containing literal English strings to Korean, all that is needed is for the English strings to be passed through tr() and for translation files to be loaded. For details of internationalization, see Internationalization with Qt.

Warning: This function is not reentrant.

See also codecForTr() and setCodecForCStrings().

QString QTextCodec.toUnicode (self, QByteArray)

Converts a from the encoding of this codec to Unicode, and returns the result in a QString.

QString QTextCodec.toUnicode (self, str chars)

Converts the first size characters from the input from the encoding of this codec to Unicode, and returns the result in a QString.

The state of the convertor used is updated.

QString QTextCodec.toUnicode (self, str in, ConverterState state = None)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextcursor.html0000644000076500000240000016754612536324514020776 0ustar philstaff00000000000000 QTextCursor Class Reference
  Home · All Classes · Modules

QTextCursor Class Reference
[QtGui module]

The QTextCursor class offers an API to access and modify QTextDocuments. More...

Types

  • enum MoveMode { MoveAnchor, KeepAnchor }
  • enum MoveOperation { NoMove, Start, Up, StartOfLine, ..., PreviousRow }
  • enum SelectionType { WordUnderCursor, LineUnderCursor, BlockUnderCursor, Document }

Methods

Special Methods

  • bool __eq__ (self, QTextCursor rhs)
  • bool __ge__ (self, QTextCursor rhs)
  • bool __gt__ (self, QTextCursor rhs)
  • bool __le__ (self, QTextCursor rhs)
  • bool __lt__ (self, QTextCursor rhs)
  • bool __ne__ (self, QTextCursor rhs)

Detailed Description

The QTextCursor class offers an API to access and modify QTextDocuments.

Text cursors are objects that are used to access and modify the contents and underlying structure of text documents via a programming interface that mimics the behavior of a cursor in a text editor. QTextCursor contains information about both the cursor's position within a QTextDocument and any selection that it has made.

QTextCursor is modeled on the way a text cursor behaves in a text editor, providing a programmatic means of performing standard actions through the user interface. A document can be thought of as a single string of characters. The cursor's current position() then is always either between two consecutive characters in the string, or else before the very first character or after the very last character in the string. Documents can also contain tables, lists, images, and other objects in addition to text but, from the developer's point of view, the document can be treated as one long string. Some portions of that string can be considered to lie within particular blocks (e.g. paragraphs), or within a table's cell, or a list's item, or other structural elements. When we refer to "current character" we mean the character immediately before the cursor position() in the document. Similarly, the "current block" is the block that contains the cursor position().

A QTextCursor also has an anchor() position. The text that is between the anchor() and the position() is the selection. If anchor() == position() there is no selection.

The cursor position can be changed programmatically using setPosition() and movePosition(); the latter can also be used to select text. For selections see selectionStart(), selectionEnd(), hasSelection(), clearSelection(), and removeSelectedText().

If the position() is at the start of a block atBlockStart() returns true; and if it is at the end of a block atBlockEnd() returns true. The format of the current character is returned by charFormat(), and the format of the current block is returned by blockFormat().

Formatting can be applied to the current text document using the setCharFormat(), mergeCharFormat(), setBlockFormat() and mergeBlockFormat() functions. The 'set' functions will replace the cursor's current character or block format, while the 'merge' functions add the given format properties to the cursor's current format. If the cursor has a selection the given format is applied to the current selection. Note that when only parts of a block is selected the block format is applied to the entire block. The text at the current character position can be turned into a list using createList().

Deletions can be achieved using deleteChar(), deletePreviousChar(), and removeSelectedText().

Text strings can be inserted into the document with the insertText() function, blocks (representing new paragraphs) can be inserted with insertBlock().

Existing fragments of text can be inserted with insertFragment() but, if you want to insert pieces of text in various formats, it is usually still easier to use insertText() and supply a character format.

Various types of higher-level structure can also be inserted into the document with the cursor:

  • Lists are ordered sequences of block elements that are decorated with bullet points or symbols. These are inserted in a specified format with insertList().
  • Tables are inserted with the insertTable() function, and can be given an optional format. These contain an array of cells that can be traversed using the cursor.
  • Inline images are inserted with insertImage(). The image to be used can be specified in an image format, or by name.
  • Frames are inserted by calling insertFrame() with a specified format.

Actions can be grouped (i.e. treated as a single action for undo/redo) using beginEditBlock() and endEditBlock().

Cursor movements are limited to valid cursor positions. In Latin writing this is between any two consecutive characters in the text, before the first character, or after the last character. In some other writing systems cursor movements are limited to "clusters" (e.g. a syllable in Devanagari, or a base letter plus diacritics). Functions such as movePosition() and deleteChar() limit cursor movement to these valid positions.


Type Documentation

QTextCursor.MoveMode

Constant Value Description
QTextCursor.MoveAnchor 0 Moves the anchor to the same position as the cursor itself.
QTextCursor.KeepAnchor 1 Keeps the anchor where it is.

If the anchor() is kept where it is and the position() is moved, the text in between will be selected.

QTextCursor.MoveOperation

Constant Value Description
QTextCursor.NoMove 0 Keep the cursor where it is
QTextCursor.Start 1 Move to the start of the document.
QTextCursor.StartOfLine 3 Move to the start of the current line.
QTextCursor.StartOfBlock 4 Move to the start of the current block.
QTextCursor.StartOfWord 5 Move to the start of the current word.
QTextCursor.PreviousBlock 6 Move to the start of the previous block.
QTextCursor.PreviousCharacter 7 Move to the previous character.
QTextCursor.PreviousWord 8 Move to the beginning of the previous word.
QTextCursor.Up 2 Move up one line.
QTextCursor.Left 9 Move left one character.
QTextCursor.WordLeft 10 Move left one word.
QTextCursor.End 11 Move to the end of the document.
QTextCursor.EndOfLine 13 Move to the end of the current line.
QTextCursor.EndOfWord 14 Move to the end of the current word.
QTextCursor.EndOfBlock 15 Move to the end of the current block.
QTextCursor.NextBlock 16 Move to the beginning of the next block.
QTextCursor.NextCharacter 17 Move to the next character.
QTextCursor.NextWord 18 Move to the next word.
QTextCursor.Down 12 Move down one line.
QTextCursor.Right 19 Move right one character.
QTextCursor.WordRight 20 Move right one word.
QTextCursor.NextCell 21 Move to the beginning of the next table cell inside the current table. If the current cell is the last cell in the row, the cursor will move to the first cell in the next row.
QTextCursor.PreviousCell 22 Move to the beginning of the previous table cell inside the current table. If the current cell is the first cell in the row, the cursor will move to the last cell in the previous row.
QTextCursor.NextRow 23 Move to the first new cell of the next row in the current table.
QTextCursor.PreviousRow 24 Move to the last cell of the previous row in the current table.

See also movePosition().

QTextCursor.SelectionType

This enum describes the types of selection that can be applied with the select() function.

Constant Value Description
QTextCursor.Document 3 Selects the entire document.
QTextCursor.BlockUnderCursor 2 Selects the block of text under the cursor.
QTextCursor.LineUnderCursor 1 Selects the line of text under the cursor.
QTextCursor.WordUnderCursor 0 Selects the word under the cursor. If the cursor is not positioned within a string of selectable characters, no text is selected.

Method Documentation

QTextCursor.__init__ (self)

Constructs a null cursor.

QTextCursor.__init__ (self, QTextDocument document)

Constructs a cursor pointing to the beginning of the document.

QTextCursor.__init__ (self, QTextFrame frame)

QTextCursor.__init__ (self, QTextBlock block)

Constructs a cursor pointing to the beginning of the frame.

QTextCursor.__init__ (self, QTextCursor cursor)

Constructs a cursor pointing to the beginning of the block.

int QTextCursor.anchor (self)

Returns the anchor position; this is the same as position() unless there is a selection in which case position() marks one end of the selection and anchor() marks the other end. Just like the cursor position, the anchor position is between characters.

See also position(), setPosition(), movePosition(), selectionStart(), and selectionEnd().

bool QTextCursor.atBlockEnd (self)

Returns true if the cursor is at the end of a block; otherwise returns false.

See also atBlockStart() and atEnd().

bool QTextCursor.atBlockStart (self)

Returns true if the cursor is at the start of a block; otherwise returns false.

See also atBlockEnd() and atStart().

bool QTextCursor.atEnd (self)

Returns true if the cursor is at the end of the document; otherwise returns false.

This function was introduced in Qt 4.6.

See also atStart() and atBlockEnd().

bool QTextCursor.atStart (self)

Returns true if the cursor is at the start of the document; otherwise returns false.

See also atBlockStart() and atEnd().

QTextCursor.beginEditBlock (self)

Indicates the start of a block of editing operations on the document that should appear as a single operation from an undo/redo point of view.

For example:

 QTextCursor cursor(textDocument);
 cursor.beginEditBlock();
 cursor.insertText("Hello");
 cursor.insertText("World");
 cursor.endEditBlock();

 textDocument->undo();

The call to undo() will cause both insertions to be undone, causing both "World" and "Hello" to be removed.

It is possible to nest calls to beginEditBlock and endEditBlock. The top-most pair will determine the scope of the undo/redo operation.

See also endEditBlock().

QTextBlock QTextCursor.block (self)

Returns the block that contains the cursor.

QTextCharFormat QTextCursor.blockCharFormat (self)

Returns the block character format of the block the cursor is in.

The block char format is the format used when inserting text at the beginning of an empty block.

See also setBlockCharFormat().

QTextBlockFormat QTextCursor.blockFormat (self)

Returns the block format of the block the cursor is in.

See also setBlockFormat() and charFormat().

int QTextCursor.blockNumber (self)

Returns the number of the block the cursor is in, or 0 if the cursor is invalid.

Note that this function only makes sense in documents without complex objects such as tables or frames.

This function was introduced in Qt 4.2.

QTextCharFormat QTextCursor.charFormat (self)

Returns the format of the character immediately before the cursor position(). If the cursor is positioned at the beginning of a text block that is not empty then the format of the character immediately after the cursor is returned.

See also setCharFormat(), insertText(), and blockFormat().

QTextCursor.clearSelection (self)

Clears the current selection by setting the anchor to the cursor position.

Note that it does not delete the text of the selection.

See also removeSelectedText() and hasSelection().

int QTextCursor.columnNumber (self)

Returns the position of the cursor within its containing line.

Note that this is the column number relative to a wrapped line, not relative to the block (i.e. the paragraph).

You probably want to call positionInBlock() instead.

This function was introduced in Qt 4.2.

See also positionInBlock().

QTextList QTextCursor.createList (self, QTextListFormat format)

Creates and returns a new list with the given format, and makes the current paragraph the cursor is in the first list item.

See also insertList() and currentList().

QTextList QTextCursor.createList (self, QTextListFormat.Style style)

This is an overloaded function.

Creates and returns a new list with the given style, making the cursor's current paragraph the first list item.

The style to be used is defined by the QTextListFormat.Style enum.

See also insertList() and currentList().

QTextFrame QTextCursor.currentFrame (self)

Returns a pointer to the current frame. Returns 0 if the cursor is invalid.

See also insertFrame().

QTextList QTextCursor.currentList (self)

Returns the current list if the cursor position() is inside a block that is part of a list; otherwise returns 0.

See also insertList() and createList().

QTextTable QTextCursor.currentTable (self)

Returns a pointer to the current table if the cursor position() is inside a block that is part of a table; otherwise returns 0.

See also insertTable().

QTextCursor.deleteChar (self)

If there is no selected text, deletes the character at the current cursor position; otherwise deletes the selected text.

See also deletePreviousChar(), hasSelection(), and clearSelection().

QTextCursor.deletePreviousChar (self)

If there is no selected text, deletes the character before the current cursor position; otherwise deletes the selected text.

See also deleteChar(), hasSelection(), and clearSelection().

QTextDocument QTextCursor.document (self)

Returns the document this cursor is associated with.

This function was introduced in Qt 4.5.

QTextCursor.endEditBlock (self)

Indicates the end of a block of editing operations on the document that should appear as a single operation from an undo/redo point of view.

See also beginEditBlock().

bool QTextCursor.hasComplexSelection (self)

Returns true if the cursor contains a selection that is not simply a range from selectionStart() to selectionEnd(); otherwise returns false.

Complex selections are ones that span at least two cells in a table; their extent is specified by selectedTableCells().

bool QTextCursor.hasSelection (self)

Returns true if the cursor contains a selection; otherwise returns false.

QTextCursor.insertBlock (self)

Inserts a new empty block at the cursor position() with the current blockFormat() and charFormat().

See also setBlockFormat().

QTextCursor.insertBlock (self, QTextBlockFormat format)

This is an overloaded function.

Inserts a new empty block at the cursor position() with block format format and the current charFormat() as block char format.

See also setBlockFormat().

QTextCursor.insertBlock (self, QTextBlockFormat format, QTextCharFormat charFormat)

This is an overloaded function.

Inserts a new empty block at the cursor position() with block format format and charFormat as block char format.

See also setBlockFormat().

QTextCursor.insertFragment (self, QTextDocumentFragment fragment)

Inserts the text fragment at the current position().

QTextFrame QTextCursor.insertFrame (self, QTextFrameFormat format)

Inserts a frame with the given format at the current cursor position(), moves the cursor position() inside the frame, and returns the frame.

If the cursor holds a selection, the whole selection is moved inside the frame.

See also hasSelection().

QTextCursor.insertHtml (self, QString html)

Inserts the text html at the current position(). The text is interpreted as HTML.

Note: When using this function with a style sheet, the style sheet will only apply to the current block in the document. In order to apply a style sheet throughout a document, use QTextDocument.setDefaultStyleSheet() instead.

This function was introduced in Qt 4.2.

QTextCursor.insertImage (self, QTextImageFormat format)

Inserts the image defined by format at the current position().

QTextCursor.insertImage (self, QTextImageFormat format, QTextFrameFormat.Position alignment)

This is an overloaded function.

Inserts the image defined by the given format at the cursor's current position with the specified alignment.

This function was introduced in Qt 4.2.

See also position().

QTextCursor.insertImage (self, QString name)

This is an overloaded function.

Convenience method for inserting the image with the given name at the current position().

 QImage img = ...
 textDocument->addResource(QTextDocument.ImageResource, QUrl("myimage"), img);
 cursor.insertImage("myimage");

QTextCursor.insertImage (self, QImage image, QString name = QString())

This is an overloaded function.

Convenience function for inserting the given image with an optional name at the current position().

This function was introduced in Qt 4.5.

QTextList QTextCursor.insertList (self, QTextListFormat format)

Inserts a new block at the current position and makes it the first list item of a newly created list with the given format. Returns the created list.

See also currentList(), createList(), and insertBlock().

QTextList QTextCursor.insertList (self, QTextListFormat.Style style)

This is an overloaded function.

Inserts a new block at the current position and makes it the first list item of a newly created list with the given style. Returns the created list.

See also currentList(), createList(), and insertBlock().

QTextTable QTextCursor.insertTable (self, int rows, int cols, QTextTableFormat format)

Creates a new table with the given number of rows and columns in the specified format, inserts it at the current cursor position() in the document, and returns the table object. The cursor is moved to the beginning of the first cell.

There must be at least one row and one column in the table.

See also currentTable().

QTextTable QTextCursor.insertTable (self, int rows, int cols)

This is an overloaded function.

Creates a new table with the given number of rows and columns, inserts it at the current cursor position() in the document, and returns the table object. The cursor is moved to the beginning of the first cell.

There must be at least one row and one column in the table.

See also currentTable().

QTextCursor.insertText (self, QString text)

Inserts text at the current position, using the current character format.

If there is a selection, the selection is deleted and replaced by text, for example:

 cursor.clearSelection();
 cursor.movePosition(QTextCursor.NextWord, QTextCursor.KeepAnchor);
 cursor.insertText("Hello World");

This clears any existing selection, selects the word at the cursor (i.e. from position() forward), and replaces the selection with the phrase "Hello World".

Any ASCII linefeed characters (\n) in the inserted text are transformed into unicode block separators, corresponding to insertBlock() calls.

See also charFormat() and hasSelection().

QTextCursor.insertText (self, QString text, QTextCharFormat format)

This is an overloaded function.

Inserts text at the current position with the given format.

bool QTextCursor.isCopyOf (self, QTextCursor other)

Returns true if this cursor and other are copies of each other, i.e. one of them was created as a copy of the other and neither has moved since. This is much stricter than equality.

See also operator=() and operator==().

bool QTextCursor.isNull (self)

Returns true if the cursor is null; otherwise returns false. A null cursor is created by the default constructor.

QTextCursor.joinPreviousEditBlock (self)

Like beginEditBlock() indicates the start of a block of editing operations that should appear as a single operation for undo/redo. However unlike beginEditBlock() it does not start a new block but reverses the previous call to endEditBlock() and therefore makes following operations part of the previous edit block created.

For example:

 QTextCursor cursor(textDocument);
 cursor.beginEditBlock();
 cursor.insertText("Hello");
 cursor.insertText("World");
 cursor.endEditBlock();

 ...

 cursor.joinPreviousEditBlock();
 cursor.insertText("Hey");
 cursor.endEditBlock();

 textDocument->undo();

The call to undo() will cause all three insertions to be undone.

See also beginEditBlock() and endEditBlock().

bool QTextCursor.keepPositionOnInsert (self)

Returns whether the cursor should keep its current position when text gets inserted at the position of the cursor.

The default is false;

This function was introduced in Qt 4.7.

See also setKeepPositionOnInsert().

QTextCursor.mergeBlockCharFormat (self, QTextCharFormat modifier)

Modifies the block char format of the current block (or all blocks that are contained in the selection) with the block format specified by modifier.

See also setBlockCharFormat().

QTextCursor.mergeBlockFormat (self, QTextBlockFormat modifier)

Modifies the block format of the current block (or all blocks that are contained in the selection) with the block format specified by modifier.

See also setBlockFormat() and blockFormat().

QTextCursor.mergeCharFormat (self, QTextCharFormat modifier)

Merges the cursor's current character format with the properties described by format modifier. If the cursor has a selection, this function applies all the properties set in modifier to all the character formats that are part of the selection.

See also hasSelection() and setCharFormat().

bool QTextCursor.movePosition (self, MoveOperation op, MoveMode mode = QTextCursor.MoveAnchor, int n = 1)

Moves the cursor by performing the given operation n times, using the specified mode, and returns true if all operations were completed successfully; otherwise returns false.

For example, if this function is repeatedly used to seek to the end of the next word, it will eventually fail when the end of the document is reached.

By default, the move operation is performed once (n = 1).

If mode is KeepAnchor, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys.

See also setVisualNavigation().

int QTextCursor.position (self)

Returns the absolute position of the cursor within the document. The cursor is positioned between characters.

See also setPosition(), movePosition(), anchor(), and positionInBlock().

int QTextCursor.positionInBlock (self)

Returns the relative position of the cursor within the block. The cursor is positioned between characters.

This is equivalent to position() - block().position().

This function was introduced in Qt 4.7.

See also position().

QTextCursor.removeSelectedText (self)

If there is a selection, its content is deleted; otherwise does nothing.

See also hasSelection().

QTextCursor.select (self, SelectionType selection)

Selects text in the document according to the given selection.

(int firstRow, int numRows, int firstColumn, int numColumns) QTextCursor.selectedTableCells (self)

If the selection spans over table cells, firstRow is populated with the number of the first row in the selection, firstColumn with the number of the first column in the selection, and numRows and numColumns with the number of rows and columns in the selection. If the selection does not span any table cells the results are harmless but undefined.

QString QTextCursor.selectedText (self)

Returns the current selection's text (which may be empty). This only returns the text, with no rich text formatting information. If you want a document fragment (i.e. formatted rich text) use selection() instead.

Note: If the selection obtained from an editor spans a line break, the text will contain a Unicode U+2029 paragraph separator character instead of a newline \n character. Use QString.replace() to replace these characters with newlines.

QTextDocumentFragment QTextCursor.selection (self)

Returns the current selection (which may be empty) with all its formatting information. If you just want the selected text (i.e. plain text) use selectedText() instead.

Note: Unlike QTextDocumentFragment.toPlainText(), selectedText() may include special unicode characters such as QChar.ParagraphSeparator.

See also QTextDocumentFragment.toPlainText().

int QTextCursor.selectionEnd (self)

Returns the end of the selection or position() if the cursor doesn't have a selection.

See also selectionStart(), position(), and anchor().

int QTextCursor.selectionStart (self)

Returns the start of the selection or position() if the cursor doesn't have a selection.

See also selectionEnd(), position(), and anchor().

QTextCursor.setBlockCharFormat (self, QTextCharFormat format)

Sets the block char format of the current block (or all blocks that are contained in the selection) to format.

See also blockCharFormat().

QTextCursor.setBlockFormat (self, QTextBlockFormat format)

Sets the block format of the current block (or all blocks that are contained in the selection) to format.

See also blockFormat() and mergeBlockFormat().

QTextCursor.setCharFormat (self, QTextCharFormat format)

Sets the cursor's current character format to the given format. If the cursor has a selection, the given format is applied to the current selection.

See also charFormat(), hasSelection(), and mergeCharFormat().

QTextCursor.setKeepPositionOnInsert (self, bool b)

Defines whether the cursor should keep its current position when text gets inserted at the current position of the cursor.

If b is true, the cursor keeps its current position when text gets inserted at the positing of the cursor. If b is false, the cursor moves along with the inserted text.

The default is false.

Note that a cursor always moves when text is inserted before the current position of the cursor, and it always keeps its position when text is inserted after the current position of the cursor.

This function was introduced in Qt 4.7.

See also keepPositionOnInsert().

QTextCursor.setPosition (self, int pos, MoveMode mode = QTextCursor.MoveAnchor)

Moves the cursor to the absolute position in the document specified by pos using a MoveMode specified by m. The cursor is positioned between characters.

See also position(), movePosition(), and anchor().

QTextCursor.setVerticalMovementX (self, int x)

Sets the visual x position for vertical cursor movements to x.

The vertical movement x position is cleared automatically when the cursor moves horizontally, and kept unchanged when the cursor moves vertically. The mechanism allows the cursor to move up and down on a visually straight line with proportional fonts, and to gently "jump" over short lines.

A value of -1 indicates no predefined x position. It will then be set automatically the next time the cursor moves up or down.

This function was introduced in Qt 4.7.

See also verticalMovementX().

QTextCursor.setVisualNavigation (self, bool b)

Sets visual navigation to b.

Visual navigation means skipping over hidden text pragraphs. The default is false.

This function was introduced in Qt 4.4.

See also visualNavigation() and movePosition().

int QTextCursor.verticalMovementX (self)

Returns the visual x position for vertical cursor movements.

A value of -1 indicates no predefined x position. It will then be set automatically the next time the cursor moves up or down.

This function was introduced in Qt 4.7.

See also setVerticalMovementX().

bool QTextCursor.visualNavigation (self)

Returns true if the cursor does visual navigation; otherwise returns false.

Visual navigation means skipping over hidden text pragraphs. The default is false.

This function was introduced in Qt 4.4.

See also setVisualNavigation() and movePosition().

bool QTextCursor.__eq__ (self, QTextCursor rhs)

bool QTextCursor.__ge__ (self, QTextCursor rhs)

bool QTextCursor.__gt__ (self, QTextCursor rhs)

bool QTextCursor.__le__ (self, QTextCursor rhs)

bool QTextCursor.__lt__ (self, QTextCursor rhs)

bool QTextCursor.__ne__ (self, QTextCursor rhs)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextdecoder.html0000644000076500000240000001023412536324475021051 0ustar philstaff00000000000000 QTextDecoder Class Reference
  Home · All Classes · Modules

QTextDecoder Class Reference
[QtCore module]

The QTextDecoder class provides a state-based decoder. More...

Methods

  • __init__ (self, QTextCodec codec)
  • __init__ (self, QTextCodec codec, QTextCodec.ConversionFlags flags)
  • QString toUnicode (self, str chars)
  • toUnicode (self, QString target, str chars)
  • QString toUnicode (self, QByteArray ba)

Detailed Description

The QTextDecoder class provides a state-based decoder.

A text decoder converts text from an encoded text format into Unicode using a specific codec.

The decoder converts text in this format into Unicode, remembering any state that is required between calls.


Method Documentation

QTextDecoder.__init__ (self, QTextCodec codec)

Constructs a text decoder for the given codec.

QTextDecoder.__init__ (self, QTextCodec codec, QTextCodec.ConversionFlags flags)

Constructs a text decoder for the given codec and conversion flags.

This function was introduced in Qt 4.7.

QString QTextDecoder.toUnicode (self, str chars)

Converts the first len bytes in chars to Unicode, returning the result.

If not all characters are used (e.g. if only part of a multi-byte encoding is at the end of the characters), the decoder remembers enough state to continue with the next call to this function.

QTextDecoder.toUnicode (self, QString target, str chars)

This is an overloaded function.

The converted string is returned in target.

QString QTextDecoder.toUnicode (self, QByteArray ba)

This is an overloaded function.

Converts the bytes in the byte array specified by ba to Unicode and returns the result.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextdocument-findflags.html0000644000076500000240000001401412536324515023210 0ustar philstaff00000000000000 QTextDocument.FindFlags Class Reference
  Home · All Classes · Modules

QTextDocument.FindFlags Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

FindFlag may be used whenever FindFlags is expected.


Method Documentation

FindFlags.__init__ (self, FindFlags)

FindFlags.__init__ (self, int)

FindFlags.__init__ (self)

FindFlags FindFlags.__and__ (self, int mask)

int FindFlags.__bool__ (self)

bool FindFlags.__eq__ (self, FindFlags f)

FindFlags FindFlags.__iand__ (self, int mask)

int FindFlags.__int__ (self)

FindFlags FindFlags.__invert__ (self)

FindFlags FindFlags.__ior__ (self, FindFlags f)

FindFlags FindFlags.__ixor__ (self, FindFlags f)

bool FindFlags.__ne__ (self, FindFlags f)

FindFlags FindFlags.__or__ (self, FindFlags f)

FindFlags FindFlags.__or__ (self, int f)

FindFlags FindFlags.__xor__ (self, FindFlags f)

FindFlags FindFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextdocument.html0000644000076500000240000015566612536324515021300 0ustar philstaff00000000000000 QTextDocument Class Reference
  Home · All Classes · Modules

QTextDocument Class Reference
[QtGui module]

The QTextDocument class holds formatted text that can be viewed and edited using a QTextEdit. More...

Inherits QObject.

Types

  • enum FindFlag { FindBackward, FindCaseSensitively, FindWholeWords }
  • class FindFlags
  • enum MetaInformation { DocumentTitle, DocumentUrl }
  • enum ResourceType { HtmlResource, ImageResource, StyleSheetResource, UserResource }
  • enum Stacks { UndoStack, RedoStack, UndoAndRedoStacks }

Methods

Qt Signals


Detailed Description

The QTextDocument class holds formatted text that can be viewed and edited using a QTextEdit.

QTextDocument is a container for structured rich text documents, providing support for styled text and various types of document elements, such as lists, tables, frames, and images. They can be created for use in a QTextEdit, or used independently.

Each document element is described by an associated format object. Each format object is treated as a unique object by QTextDocuments, and can be passed to objectForFormat() to obtain the document element that it is applied to.

A QTextDocument can be edited programmatically using a QTextCursor, and its contents can be examined by traversing the document structure. The entire document structure is stored as a hierarchy of document elements beneath the root frame, found with the rootFrame() function. Alternatively, if you just want to iterate over the textual contents of the document you can use begin(), end(), and findBlock() to retrieve text blocks that you can examine and iterate over.

The layout of a document is determined by the documentLayout(); you can create your own QAbstractTextDocumentLayout subclass and set it using setDocumentLayout() if you want to use your own layout logic. The document's title and other meta-information can be obtained by calling the metaInformation() function. For documents that are exposed to users through the QTextEdit class, the document title is also available via the QTextEdit.documentTitle() function.

The toPlainText() and toHtml() convenience functions allow you to retrieve the contents of the document as plain text and HTML. The document's text can be searched using the find() functions.

Undo/redo of operations performed on the document can be controlled using the setUndoRedoEnabled() function. The undo/redo system can be controlled by an editor widget through the undo() and redo() slots; the document also provides contentsChanged(), undoAvailable(), and redoAvailable() signals that inform connected editor widgets about the state of the undo/redo system. The following are the undo/redo operations of a QTextDocument:

  • Insertion or removal of characters. A sequence of insertions or removals within the same text block are regarded as a single undo/redo operation.
  • Insertion or removal of text blocks. Sequences of insertion or removals in a single operation (e.g., by selecting and then deleting text) are regarded as a single undo/redo operation.
  • Text character format changes.
  • Text block format changes.
  • Text block group format changes.

Type Documentation

QTextDocument.FindFlag

This enum describes the options available to QTextDocument's find function. The options can be OR-ed together from the following list:

Constant Value Description
QTextDocument.FindBackward 0x00001 Search backwards instead of forwards.
QTextDocument.FindCaseSensitively 0x00002 By default find works case insensitive. Specifying this option changes the behaviour to a case sensitive find operation.
QTextDocument.FindWholeWords 0x00004 Makes find match only complete words.

The FindFlags type is a typedef for QFlags<FindFlag>. It stores an OR combination of FindFlag values.

QTextDocument.MetaInformation

This enum describes the different types of meta information that can be added to a document.

Constant Value Description
QTextDocument.DocumentTitle 0 The title of the document.
QTextDocument.DocumentUrl 1 The url of the document. The loadResource() function uses this url as the base when loading relative resources.

See also metaInformation() and setMetaInformation().

QTextDocument.ResourceType

This enum describes the types of resources that can be loaded by QTextDocument's loadResource() function.

Constant Value Description
QTextDocument.HtmlResource 1 The resource contains HTML.
QTextDocument.ImageResource 2 The resource contains image data. Currently supported data types are QVariant.Pixmap and QVariant.Image. If the corresponding variant is of type QVariant.ByteArray then Qt attempts to load the image using QImage.loadFromData. QVariant.Icon is currently not supported. The icon needs to be converted to one of the supported types first, for example using QIcon.pixmap.
QTextDocument.StyleSheetResource 3 The resource contains CSS.
QTextDocument.UserResource 100 The first available value for user defined resource types.

See also loadResource().

QTextDocument.Stacks

Constant Value Description
QTextDocument.UndoStack 0x01 The undo stack.
QTextDocument.RedoStack 0x02 The redo stack.
QTextDocument.UndoAndRedoStacks UndoStack | RedoStack Both the undo and redo stacks.

Method Documentation

QTextDocument.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty QTextDocument with the given parent.

QTextDocument.__init__ (self, QString text, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QTextDocument containing the plain (unformatted) text specified, and with the given parent.

QTextDocument.addResource (self, int type, QUrl name, QVariant resource)

Adds the resource resource to the resource cache, using type and name as identifiers. type should be a value from QTextDocument.ResourceType.

For example, you can add an image as a resource in order to reference it from within the document:

     document->addResource(QTextDocument.ImageResource,
         QUrl("mydata://image.png"), QVariant(image));

The image can be inserted into the document using the QTextCursor API:

     QTextImageFormat imageFormat;
     imageFormat.setName("mydata://image.png");
     cursor.insertImage(imageFormat);

Alternatively, you can insert images using the HTML img tag:

     editor->append("<img src=\"mydata://image.png\" />");

QTextDocument.adjustSize (self)

Adjusts the document to a reasonable size.

This function was introduced in Qt 4.2.

See also idealWidth(), textWidth, and size.

list-of-QTextFormat QTextDocument.allFormats (self)

Returns a vector of text formats for all the formats used in the document.

int QTextDocument.availableRedoSteps (self)

Returns the number of available redo steps.

This function was introduced in Qt 4.6.

See also isRedoAvailable().

int QTextDocument.availableUndoSteps (self)

Returns the number of available undo steps.

This function was introduced in Qt 4.6.

See also isUndoAvailable().

QTextBlock QTextDocument.begin (self)

Returns the document's first text block.

See also firstBlock().

int QTextDocument.blockCount (self)

QChar QTextDocument.characterAt (self, int pos)

Returns the character at position pos, or a null character if the position is out of range.

This function was introduced in Qt 4.5.

See also characterCount().

int QTextDocument.characterCount (self)

Returns the number of characters of this document.

This function was introduced in Qt 4.5.

See also blockCount() and characterAt().

QTextDocument.clear (self)

Clears the document.

QTextDocument.clearUndoRedoStacks (self, Stacks stacks = QTextDocument.UndoAndRedoStacks)

Clears the stacks specified by stacksToClear.

This method clears any commands on the undo stack, the redo stack, or both (the default). If commands are cleared, the appropriate signals are emitted, QTextDocument.undoAvailable() or QTextDocument.redoAvailable().

This function was introduced in Qt 4.7.

See also QTextDocument.undoAvailable() and QTextDocument.redoAvailable().

QTextDocument QTextDocument.clone (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a new QTextDocument that is a copy of this text document. parent is the parent of the returned text document.

QTextObject QTextDocument.createObject (self, QTextFormat f)

Creates and returns a new document object (a QTextObject), based on the given format.

QTextObjects will always get created through this method, so you must reimplement it if you use custom text objects inside your document.

Qt.CursorMoveStyle QTextDocument.defaultCursorMoveStyle (self)

The default cursor movement style is used by all QTextCursor objects created from the document. The default is Qt.LogicalMoveStyle.

This function was introduced in Qt 4.8.

See also setDefaultCursorMoveStyle().

QFont QTextDocument.defaultFont (self)

QString QTextDocument.defaultStyleSheet (self)

QTextOption QTextDocument.defaultTextOption (self)

QAbstractTextDocumentLayout QTextDocument.documentLayout (self)

Returns the document layout for this document.

See also setDocumentLayout().

float QTextDocument.documentMargin (self)

QTextDocument.drawContents (self, QPainter p, QRectF rect = QRectF())

Draws the content of the document with painter p, clipped to rect. If rect is a null rectangle (default) then the document is painted unclipped.

This function was introduced in Qt 4.2.

QTextBlock QTextDocument.end (self)

This function returns a block to test for the end of the document while iterating over it.

     for (QTextBlock it = doc->begin(); it != doc->end(); it = it.next())
         cout << it.text().toStdString() << endl;

The block returned is invalid and represents the block after the last block in the document. You can use lastBlock() to retrieve the last valid block of the document.

See also lastBlock().

QTextCursor QTextDocument.find (self, QString subString, int position = 0, FindFlags options = 0)

Finds the next occurrence of the string, subString, in the document. The search starts at the position of the given cursor, and proceeds forwards through the document unless specified otherwise in the search options. The options control the type of search performed.

Returns a cursor with the match selected if subString was found; otherwise returns a null cursor.

If the given cursor has a selection, the search begins after the selection; otherwise it begins at the cursor's position.

By default the search is case-sensitive, and can match text anywhere in the document.

QTextCursor QTextDocument.find (self, QRegExp expr, int position = 0, FindFlags options = 0)

Finds the next occurrence, matching the regular expression, expr, in the document. The search starts at the position of the given cursor, and proceeds forwards through the document unless specified otherwise in the search options. The options control the type of search performed. The FindCaseSensitively option is ignored for this overload, use QRegExp.caseSensitivity instead.

Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.

If the given cursor has a selection, the search begins after the selection; otherwise it begins at the cursor's position.

By default the search is case-sensitive, and can match text anywhere in the document.

QTextCursor QTextDocument.find (self, QString subString, QTextCursor cursor, FindFlags options = 0)

This is an overloaded function.

Finds the next occurrence of the string, subString, in the document. The search starts at the given position, and proceeds forwards through the document unless specified otherwise in the search options. The options control the type of search performed.

Returns a cursor with the match selected if subString was found; otherwise returns a null cursor.

If the position is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.

QTextCursor QTextDocument.find (self, QRegExp expr, QTextCursor cursor, FindFlags options = 0)

This is an overloaded function.

Finds the next occurrence, matching the regular expression, expr, in the document. The search starts at the given position, and proceeds forwards through the document unless specified otherwise in the search options. The options control the type of search performed. The FindCaseSensitively option is ignored for this overload, use QRegExp.caseSensitivity instead.

Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.

If the position is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.

QTextBlock QTextDocument.findBlock (self, int pos)

Returns the text block that contains the pos-th character.

QTextBlock QTextDocument.findBlockByLineNumber (self, int blockNumber)

Returns the text block that contains the specified lineNumber.

This function was introduced in Qt 4.5.

See also QTextBlock.firstLineNumber().

QTextBlock QTextDocument.findBlockByNumber (self, int blockNumber)

Returns the text block with the specified blockNumber.

This function was introduced in Qt 4.4.

See also QTextBlock.blockNumber().

QTextBlock QTextDocument.firstBlock (self)

Returns the document's first text block.

This function was introduced in Qt 4.4.

float QTextDocument.idealWidth (self)

Returns the ideal width of the text document. The ideal width is the actually used width of the document without optional alignments taken into account. It is always <= size().width().

This function was introduced in Qt 4.2.

See also adjustSize() and textWidth.

float QTextDocument.indentWidth (self)

bool QTextDocument.isEmpty (self)

Returns true if the document is empty; otherwise returns false.

bool QTextDocument.isModified (self)

bool QTextDocument.isRedoAvailable (self)

Returns true if redo is available; otherwise returns false.

See also isUndoAvailable() and availableRedoSteps().

bool QTextDocument.isUndoAvailable (self)

Returns true if undo is available; otherwise returns false.

See also isRedoAvailable() and availableUndoSteps().

bool QTextDocument.isUndoRedoEnabled (self)

QTextBlock QTextDocument.lastBlock (self)

Returns the document's last (valid) text block.

This function was introduced in Qt 4.4.

int QTextDocument.lineCount (self)

Returns the number of lines of this document (if the layout supports this). Otherwise, this is identical to the number of blocks.

This function was introduced in Qt 4.5.

See also blockCount() and characterCount().

QVariant QTextDocument.loadResource (self, int type, QUrl name)

Loads data of the specified type from the resource with the given name.

This function is called by the rich text engine to request data that isn't directly stored by QTextDocument, but still associated with it. For example, images are referenced indirectly by the name attribute of a QTextImageFormat object.

When called by Qt, type is one of the values of QTextDocument.ResourceType.

If the QTextDocument is a child object of a QTextEdit, QTextBrowser, or a QTextDocument itself then the default implementation tries to retrieve the data from the parent.

QTextDocument.markContentsDirty (self, int from, int length)

Marks the contents specified by the given position and length as "dirty", informing the document that it needs to be laid out again.

int QTextDocument.maximumBlockCount (self)

QString QTextDocument.metaInformation (self, MetaInformation info)

Returns meta information about the document of the type specified by info.

See also setMetaInformation().

QTextObject QTextDocument.object (self, int objectIndex)

Returns the text object associated with the given objectIndex.

QTextObject QTextDocument.objectForFormat (self, QTextFormat)

Returns the text object associated with the format f.

int QTextDocument.pageCount (self)

returns the number of pages in this document.

QSizeF QTextDocument.pageSize (self)

QTextDocument.print_ (self, QPrinter printer)

Prints the document to the given printer. The QPrinter must be set up before being used with this function.

This is only a convenience method to print the whole document to the printer.

If the document is already paginated through a specified height in the pageSize() property it is printed as-is.

If the document is not paginated, like for example a document used in a QTextEdit, then a temporary copy of the document is created and the copy is broken into multiple pages according to the size of the QPrinter's paperRect(). By default a 2 cm margin is set around the document contents. In addition the current page number is printed at the bottom of each page.

Note that QPrinter.Selection is not supported as print range with this function since the selection is a property of QTextCursor. If you have a QTextEdit associated with your QTextDocument then you can use QTextEdit's print() function because QTextEdit has access to the user's selection.

See also QTextEdit.print().

QTextDocument.redo (self)

This method is also a Qt slot with the C++ signature void redo().

Redoes the last editing operation on the document if redo is available.

The provided cursor is positioned at the end of the location where the edition operation was redone.

This function was introduced in Qt 4.2.

QTextDocument.redo (self, QTextCursor cursor)

This is an overloaded function.

Redoes the last editing operation on the document if redo is available.

QVariant QTextDocument.resource (self, int type, QUrl name)

Returns data of the specified type from the resource with the given name.

This function is called by the rich text engine to request data that isn't directly stored by QTextDocument, but still associated with it. For example, images are referenced indirectly by the name attribute of a QTextImageFormat object.

Resources are cached internally in the document. If a resource can not be found in the cache, loadResource is called to try to load the resource. loadResource should then use addResource to add the resource to the cache.

See also QTextDocument.ResourceType.

int QTextDocument.revision (self)

Returns the document's revision (if undo is enabled).

The revision is guaranteed to increase when a document that is not modified is edited.

This function was introduced in Qt 4.4.

See also QTextBlock.revision() and isModified().

QTextFrame QTextDocument.rootFrame (self)

Returns the document's root frame.

QTextDocument.setDefaultCursorMoveStyle (self, Qt.CursorMoveStyle style)

Sets the default cursor movement style to the given style.

This function was introduced in Qt 4.8.

See also defaultCursorMoveStyle().

QTextDocument.setDefaultFont (self, QFont font)

QTextDocument.setDefaultStyleSheet (self, QString sheet)

QTextDocument.setDefaultTextOption (self, QTextOption option)

QTextDocument.setDocumentLayout (self, QAbstractTextDocumentLayout layout)

The layout argument has it's ownership transferred to Qt.

Sets the document to use the given layout. The previous layout is deleted.

See also documentLayoutChanged().

QTextDocument.setDocumentMargin (self, float margin)

QTextDocument.setHtml (self, QString html)

Replaces the entire contents of the document with the given HTML-formatted text in the html string.

The HTML formatting is respected as much as possible; for example, "<b>bold</b> text" will produce text where the first word has a font weight that gives it a bold appearance: "bold text".

Note: It is the responsibility of the caller to make sure that the text is correctly decoded when a QString containing HTML is created and passed to setHtml().

See also setPlainText() and Supported HTML Subset.

QTextDocument.setIndentWidth (self, float width)

QTextDocument.setMaximumBlockCount (self, int maximum)

QTextDocument.setMetaInformation (self, MetaInformation info, QString)

Sets the document's meta information of the type specified by info to the given string.

See also metaInformation().

QTextDocument.setModified (self, bool on = True)

This method is also a Qt slot with the C++ signature void setModified(bool = 1).

QTextDocument.setPageSize (self, QSizeF size)

QTextDocument.setPlainText (self, QString text)

Replaces the entire contents of the document with the given plain text.

See also setHtml().

QTextDocument.setTextWidth (self, float width)

QTextDocument.setUndoRedoEnabled (self, bool enable)

QTextDocument.setUseDesignMetrics (self, bool b)

QSizeF QTextDocument.size (self)

float QTextDocument.textWidth (self)

QString QTextDocument.toHtml (self, QByteArray encoding = QByteArray())

Returns a string containing an HTML representation of the document.

The encoding parameter specifies the value for the charset attribute in the html header. For example if 'utf-8' is specified then the beginning of the generated html will look like this:

 <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>...

If no encoding is specified then no such meta information is generated.

If you later on convert the returned html string into a byte array for transmission over a network or when saving to disk you should specify the encoding you're going to use for the conversion to a byte array here.

See also Supported HTML Subset.

QString QTextDocument.toPlainText (self)

Returns the plain text contained in the document. If you want formatting information use a QTextCursor instead.

See also toHtml().

QTextDocument.undo (self)

This method is also a Qt slot with the C++ signature void undo().

Undoes the last editing operation on the document if undo is available. The provided cursor is positioned at the end of the location where the edition operation was undone.

See the Qt Undo Framework documentation for details.

This function was introduced in Qt 4.2.

See also undoAvailable() and isUndoRedoEnabled().

QTextDocument.undo (self, QTextCursor cursor)

This is an overloaded function.

bool QTextDocument.useDesignMetrics (self)


Qt Signal Documentation

void blockCountChanged (int)

This is the default overload of this signal.

This signal is emitted when the total number of text blocks in the document changes. The value passed in newBlockCount is the new total.

This function was introduced in Qt 4.3.

void contentsChange (int,int,int)

This is the default overload of this signal.

This signal is emitted whenever the document's content changes; for example, when text is inserted or deleted, or when formatting is applied.

Information is provided about the position of the character in the document where the change occurred, the number of characters removed (charsRemoved), and the number of characters added (charsAdded).

The signal is emitted before the document's layout manager is notified about the change. This hook allows you to implement syntax highlighting for the document.

See also QAbstractTextDocumentLayout.documentChanged() and contentsChanged().

void contentsChanged ()

This is the default overload of this signal.

This signal is emitted whenever the document's content changes; for example, when text is inserted or deleted, or when formatting is applied.

See also contentsChange().

void cursorPositionChanged (const QTextCursor&)

This is the default overload of this signal.

This signal is emitted whenever the position of a cursor changed due to an editing operation. The cursor that changed is passed in cursor. If you need a signal when the cursor is moved with the arrow keys you can use the cursorPositionChanged() signal in QTextEdit.

void documentLayoutChanged ()

This is the default overload of this signal.

This signal is emitted when a new document layout is set.

This function was introduced in Qt 4.4.

See also setDocumentLayout().

void modificationChanged (bool)

This is the default overload of this signal.

This signal is emitted whenever the content of the document changes in a way that affects the modification state. If changed is true, the document has been modified; otherwise it is false.

For example, calling setModified(false) on a document and then inserting text causes the signal to get emitted. If you undo that operation, causing the document to return to its original unmodified state, the signal will get emitted again.

void redoAvailable (bool)

This is the default overload of this signal.

This signal is emitted whenever redo operations become available (available is true) or unavailable (available is false).

void undoAvailable (bool)

This is the default overload of this signal.

This signal is emitted whenever undo operations become available (available is true) or unavailable (available is false).

See the Qt Undo Framework documentation for details.

See also undo() and isUndoRedoEnabled().

void undoCommandAdded ()

This is the default overload of this signal.

This signal is emitted every time a new level of undo is added to the QTextDocument.

This function was introduced in Qt 4.4.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextdocumentfragment.html0000644000076500000240000002066112536324515023006 0ustar philstaff00000000000000 QTextDocumentFragment Class Reference
  Home · All Classes · Modules

QTextDocumentFragment Class Reference
[QtGui module]

The QTextDocumentFragment class represents a piece of formatted text from a QTextDocument. More...

Methods

Static Methods

  • QTextDocumentFragment fromHtml (QString html)
  • QTextDocumentFragment fromHtml (QString html, QTextDocument resourceProvider)
  • QTextDocumentFragment fromPlainText (QString plainText)

Detailed Description

The QTextDocumentFragment class represents a piece of formatted text from a QTextDocument.

A QTextDocumentFragment is a fragment of rich text, that can be inserted into a QTextDocument. A document fragment can be created from a QTextDocument, from a QTextCursor's selection, or from another document fragment. Document fragments can also be created by the static functions, fromPlainText() and fromHtml().

The contents of a document fragment can be obtained as plain text by using the toPlainText() function, or it can be obtained as HTML with toHtml().


Method Documentation

QTextDocumentFragment.__init__ (self)

Constructs an empty QTextDocumentFragment.

See also isEmpty().

QTextDocumentFragment.__init__ (self, QTextDocument document)

Converts the given document into a QTextDocumentFragment. Note that the QTextDocumentFragment only stores the document contents, not meta information like the document's title.

QTextDocumentFragment.__init__ (self, QTextCursor range)

Creates a QTextDocumentFragment from the cursor's selection. If the cursor doesn't have a selection, the created fragment is empty.

See also isEmpty() and QTextCursor.selection().

QTextDocumentFragment.__init__ (self, QTextDocumentFragment rhs)

Copy constructor. Creates a copy of the other fragment.

QTextDocumentFragment QTextDocumentFragment.fromHtml (QString html)

Returns a QTextDocumentFragment based on the arbitrary piece of HTML in the given text. The formatting is preserved as much as possible; for example, "<b>bold</b>" will become a document fragment with the text "bold" with a bold character format.

QTextDocumentFragment QTextDocumentFragment.fromHtml (QString html, QTextDocument resourceProvider)

Returns a QTextDocumentFragment based on the arbitrary piece of HTML in the given text. The formatting is preserved as much as possible; for example, "<b>bold</b>" will become a document fragment with the text "bold" with a bold character format.

If the provided HTML contains references to external resources such as imported style sheets, then they will be loaded through the resourceProvider.

This function was introduced in Qt 4.2.

QTextDocumentFragment QTextDocumentFragment.fromPlainText (QString plainText)

Returns a document fragment that contains the given plainText.

When inserting such a fragment into a QTextDocument the current char format of the QTextCursor used for insertion is used as format for the text.

bool QTextDocumentFragment.isEmpty (self)

Returns true if the fragment is empty; otherwise returns false.

QString QTextDocumentFragment.toHtml (self)

Returns the contents of the document fragment as HTML, using the specified encoding (e.g., "UTF-8", "ISO 8859-1").

This function was introduced in Qt 4.2.

See also toPlainText(), QTextDocument.toHtml(), and QTextCodec.

QString QTextDocumentFragment.toHtml (self, QByteArray encoding)

This is an overloaded function.

QString QTextDocumentFragment.toPlainText (self)

Returns the document fragment's text as plain text (i.e. with no formatting information).

See also toHtml().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextdocumentwriter.html0000644000076500000240000002703112536324515022515 0ustar philstaff00000000000000 QTextDocumentWriter Class Reference
  Home · All Classes · Modules

QTextDocumentWriter Class Reference
[QtGui module]

The QTextDocumentWriter class provides a format-independent interface for writing a QTextDocument to files or other devices. More...

Methods

Static Methods


Detailed Description

The QTextDocumentWriter class provides a format-independent interface for writing a QTextDocument to files or other devices.

To write a document, construct a QTextDocumentWriter object with either a file name or a device object, and specify the document format to be written. You can construct a writer and set the format using setFormat() later.

Call write() to write the document to the device. If the document is successfully written, this function returns true. However, if an error occurs when writing the document, it will return false.

Call supportedDocumentFormats() for a list of formats that QTextDocumentWriter can write.

Since the capabilities of the supported output formats vary considerably, the writer simply outputs the appropriate subset of objects for each format. This typically includes the formatted text and images contained in a document.


Method Documentation

QTextDocumentWriter.__init__ (self)

Constructs an empty QTextDocumentWriter object. Before writing, you must call setFormat() to set a document format, then setDevice() or setFileName().

QTextDocumentWriter.__init__ (self, QIODevice device, QByteArray format)

Constructs a QTextDocumentWriter object to write to the given device in the document format specified by format.

QTextDocumentWriter.__init__ (self, QString fileName, QByteArray format = QByteArray())

Constructs an QTextDocumentWriter object that will write to a file with the name fileName, using the document format specified by format. If format is not provided, QTextDocumentWriter will detect the document format by inspecting the extension of fileName.

QTextCodec QTextDocumentWriter.codec (self)

Returns the codec that is currently assigned to the writer.

See also setCodec().

QIODevice QTextDocumentWriter.device (self)

Returns the device currently assigned, or 0 if no device has been assigned.

See also setDevice().

QString QTextDocumentWriter.fileName (self)

If the currently assigned device is a QFile, or if setFileName() has been called, this function returns the name of the file to be written to. In all other cases, it returns an empty string.

See also setFileName() and setDevice().

QByteArray QTextDocumentWriter.format (self)

Returns the format used for writing documents.

See also setFormat().

QTextDocumentWriter.setCodec (self, QTextCodec codec)

Sets the codec for this stream to codec. The codec is used for encoding any data that is written. By default, QTextDocumentWriter uses UTF-8.

See also codec().

QTextDocumentWriter.setDevice (self, QIODevice device)

Sets the writer's device to the device specified. If a device has already been set, the old device is removed but otherwise left unchanged.

If the device is not already open, QTextDocumentWriter will attempt to open the device in QIODevice.WriteOnly mode by calling open().

Note: This will not work for certain devices, such as QProcess, QTcpSocket and QUdpSocket, where some configuration is required before the device can be opened.

See also device() and setFileName().

QTextDocumentWriter.setFileName (self, QString fileName)

Sets the name of the file to be written to fileName. Internally, QTextDocumentWriter will create a QFile and open it in QIODevice.WriteOnly mode, and use this file when writing the document.

See also fileName() and setDevice().

QTextDocumentWriter.setFormat (self, QByteArray format)

Sets the format used to write documents to the format specified. format is a case insensitive text string. For example:

         QTextDocumentWriter writer;
         writer.setFormat("odf"); // same as writer.setFormat("ODF");

You can call supportedDocumentFormats() for the full list of formats QTextDocumentWriter supports.

See also format().

list-of-QByteArray QTextDocumentWriter.supportedDocumentFormats ()

Returns the list of document formats supported by QTextDocumentWriter.

By default, Qt can write the following formats:

Format Description
plaintext Plain text
HTML HyperText Markup Language
ODF OpenDocument Format

See also setFormat().

bool QTextDocumentWriter.write (self, QTextDocument document)

Writes the given document to the assigned device or file and returns true if successful; otherwise returns false.

bool QTextDocumentWriter.write (self, QTextDocumentFragment fragment)

Writes the document fragment specified by fragment to the assigned device or file and returns true if successful; otherwise returns false.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextedit-autoformatting.html0000644000076500000240000001452712536324515023436 0ustar philstaff00000000000000 QTextEdit.AutoFormatting Class Reference
  Home · All Classes · Modules

QTextEdit.AutoFormatting Class Reference
[QtGui module]

Methods

Special Methods

  • AutoFormatting __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, AutoFormatting f)
  • AutoFormatting __iand__ (self, int mask)
  • int __int__ (self)
  • AutoFormatting __invert__ (self)
  • AutoFormatting __ior__ (self, AutoFormatting f)
  • AutoFormatting __ixor__ (self, AutoFormatting f)
  • bool __ne__ (self, AutoFormatting f)
  • AutoFormatting __or__ (self, AutoFormatting f)
  • AutoFormatting __or__ (self, int f)
  • AutoFormatting __xor__ (self, AutoFormatting f)
  • AutoFormatting __xor__ (self, int f)

Detailed Description

AutoFormattingFlag may be used whenever AutoFormatting is expected.


Method Documentation

AutoFormatting.__init__ (self, AutoFormatting)

AutoFormatting.__init__ (self, int)

AutoFormatting.__init__ (self)

AutoFormatting AutoFormatting.__and__ (self, int mask)

int AutoFormatting.__bool__ (self)

bool AutoFormatting.__eq__ (self, AutoFormatting f)

AutoFormatting AutoFormatting.__iand__ (self, int mask)

int AutoFormatting.__int__ (self)

AutoFormatting AutoFormatting.__invert__ (self)

AutoFormatting AutoFormatting.__ior__ (self, AutoFormatting f)

AutoFormatting AutoFormatting.__ixor__ (self, AutoFormatting f)

bool AutoFormatting.__ne__ (self, AutoFormatting f)

AutoFormatting AutoFormatting.__or__ (self, AutoFormatting f)

AutoFormatting AutoFormatting.__or__ (self, int f)

AutoFormatting AutoFormatting.__xor__ (self, AutoFormatting f)

AutoFormatting AutoFormatting.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextedit-extraselection.html0000644000076500000240000000605012536324515023414 0ustar philstaff00000000000000 QTextEdit.ExtraSelection Class Reference
  Home · All Classes · Modules

QTextEdit.ExtraSelection Class Reference
[QtGui module]

The QTextEdit.ExtraSelection structure provides a way of specifying a character format for a given selection in a document More...

Methods

Members


Detailed Description

The QTextEdit.ExtraSelection structure provides a way of specifying a character format for a given selection in a document


Method Documentation

ExtraSelection.__init__ (self)

ExtraSelection.__init__ (self, ExtraSelection)


Member Documentation

QTextCursor cursor

A cursor that contains a selection in a QTextDocument

QTextCharFormat format

A format that is used to specify a foreground or background brush/color for the selection.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextedit.html0000644000076500000240000021721612536324514020374 0ustar philstaff00000000000000 QTextEdit Class Reference
  Home · All Classes · Modules

QTextEdit Class Reference
[QtGui module]

The QTextEdit class provides a widget that is used to edit and display both plain and rich text. More...

Inherits QAbstractScrollArea.

Inherited by QTextBrowser.

Types

Methods

Qt Signals


Detailed Description

The QTextEdit class provides a widget that is used to edit and display both plain and rich text.

Introduction and Concepts

QTextEdit is an advanced WYSIWYG viewer/editor supporting rich text formatting using HTML-style tags. It is optimized to handle large documents and to respond quickly to user input.

QTextEdit works on paragraphs and characters. A paragraph is a formatted string which is word-wrapped to fit into the width of the widget. By default when reading plain text, one newline signifies a paragraph. A document consists of zero or more paragraphs. The words in the paragraph are aligned in accordance with the paragraph's alignment. Paragraphs are separated by hard line breaks. Each character within a paragraph has its own attributes, for example, font and color.

QTextEdit can display images, lists and tables. If the text is too large to view within the text edit's viewport, scroll bars will appear. The text edit can load both plain text and HTML files (a subset of HTML 3.2 and 4).

If you just need to display a small piece of rich text use QLabel.

The rich text support in Qt is designed to provide a fast, portable and efficient way to add reasonable online help facilities to applications, and to provide a basis for rich text editors. If you find the HTML support insufficient for your needs you may consider the use of QtWebKit, which provides a full-featured web browser widget.

The shape of the mouse cursor on a QTextEdit is Qt.IBeamCursor by default. It can be changed through the viewport()'s cursor property.

Using QTextEdit as a Display Widget

QTextEdit can display a large HTML subset, including tables and images.

The text is set or replaced using setHtml() which deletes any existing text and replaces it with the text passed in the setHtml() call. If you call setHtml() with legacy HTML, and then call toHtml(), the text that is returned may have different markup, but will render the same. The entire text can be deleted with clear().

Text itself can be inserted using the QTextCursor class or using the convenience functions insertHtml(), insertPlainText(), append() or paste(). QTextCursor is also able to insert complex objects like tables or lists into the document, and it deals with creating selections and applying changes to selected text.

By default the text edit wraps words at whitespace to fit within the text edit widget. The setLineWrapMode() function is used to specify the kind of line wrap you want, or NoWrap if you don't want any wrapping. Call setLineWrapMode() to set a fixed pixel width FixedPixelWidth, or character column (e.g. 80 column) FixedColumnWidth with the pixels or columns specified with setLineWrapColumnOrWidth(). If you use word wrap to the widget's width WidgetWidth, you can specify whether to break on whitespace or anywhere with setWordWrapMode().

The find() function can be used to find and select a given string within the text.

If you want to limit the total number of paragraphs in a QTextEdit, as for example it is often useful in a log viewer, then you can use QTextDocument's maximumBlockCount property for that.

Read-only Key Bindings

When QTextEdit is used read-only the key bindings are limited to navigation, and text may only be selected with the mouse:

Keypresses Action
Up Moves one line up.
Down Moves one line down.
Left Moves one character to the left.
Right Moves one character to the right.
PageUp Moves one (viewport) page up.
PageDown Moves one (viewport) page down.
Home Moves to the beginning of the text.
End Moves to the end of the text.
Alt+Wheel Scrolls the page horizontally (the Wheel is the mouse wheel).
Ctrl+Wheel Zooms the text.
Ctrl+A Selects all text.

The text edit may be able to provide some meta-information. For example, the documentTitle() function will return the text from within HTML <title> tags.

Using QTextEdit as an Editor

All the information about using QTextEdit as a display widget also applies here.

The current char format's attributes are set with setFontItalic(), setFontWeight(), setFontUnderline(), setFontFamily(), setFontPointSize(), setTextColor() and setCurrentFont(). The current paragraph's alignment is set with setAlignment().

Selection of text is handled by the QTextCursor class, which provides functionality for creating selections, retrieving the text contents or deleting selections. You can retrieve the object that corresponds with the user-visible cursor using the textCursor() method. If you want to set a selection in QTextEdit just create one on a QTextCursor object and then make that cursor the visible cursor using setTextCursor(). The selection can be copied to the clipboard with copy(), or cut to the clipboard with cut(). The entire text can be selected using selectAll().

When the cursor is moved and the underlying formatting attributes change, the currentCharFormatChanged() signal is emitted to reflect the new attributes at the new cursor position.

QTextEdit holds a QTextDocument object which can be retrieved using the document() method. You can also set your own document object using setDocument(). QTextDocument emits a textChanged() signal if the text changes and it also provides a isModified() function which will return true if the text has been modified since it was either loaded or since the last call to setModified with false as argument. In addition it provides methods for undo and redo.

Drag and Drop

QTextEdit also supports custom drag and drop behavior. By default, QTextEdit will insert plain text, HTML and rich text when the user drops data of these MIME types onto a document. Reimplement canInsertFromMimeData() and insertFromMimeData() to add support for additional MIME types.

For example, to allow the user to drag and drop an image onto a QTextEdit, you could the implement these functions in the following way:

 bool TextEdit.canInsertFromMimeData( const QMimeData *source ) const
 {
     if (source->hasImage())
         return true;
     else
         return QTextEdit.canInsertFromMimeData(source);
 }

We add support for image MIME types by returning true. For all other MIME types, we use the default implementation.

 void TextEdit.insertFromMimeData( const QMimeData *source )
 {
     if (source->hasImage())
     {
         QImage image = qvariant_cast<QImage>(source->imageData());
         QTextCursor cursor = this->textCursor();
         QTextDocument *document = this->document();
         document->addResource(QTextDocument.ImageResource, QUrl("image"), image);
         cursor.insertImage("image");
     }
 }

We unpack the image from the QVariant held by the MIME source and insert it into the document as a resource.

Editing Key Bindings

The list of key bindings which are implemented for editing:

Keypresses Action
Backspace Deletes the character to the left of the cursor.
Delete Deletes the character to the right of the cursor.
Ctrl+C Copy the selected text to the clipboard.
Ctrl+Insert Copy the selected text to the clipboard.
Ctrl+K Deletes to the end of the line.
Ctrl+V Pastes the clipboard text into text edit.
Shift+Insert Pastes the clipboard text into text edit.
Ctrl+X Deletes the selected text and copies it to the clipboard.
Shift+Delete Deletes the selected text and copies it to the clipboard.
Ctrl+Z Undoes the last operation.
Ctrl+Y Redoes the last operation.
Left Moves the cursor one character to the left.
Ctrl+Left Moves the cursor one word to the left.
Right Moves the cursor one character to the right.
Ctrl+Right Moves the cursor one word to the right.
Up Moves the cursor one line up.
Down Moves the cursor one line down.
PageUp Moves the cursor one page up.
PageDown Moves the cursor one page down.
Home Moves the cursor to the beginning of the line.
Ctrl+Home Moves the cursor to the beginning of the text.
End Moves the cursor to the end of the line.
Ctrl+End Moves the cursor to the end of the text.
Alt+Wheel Scrolls the page horizontally (the Wheel is the mouse wheel).

To select (mark) text hold down the Shift key whilst pressing one of the movement keystrokes, for example, Shift+Right will select the character to the right, and Shift+Ctrl+Right will select the word to the right, etc.


Type Documentation

QTextEdit.AutoFormattingFlag

Constant Value Description
QTextEdit.AutoNone 0 Don't do any automatic formatting.
QTextEdit.AutoBulletList 0x00000001 Automatically create bullet lists (e.g. when the user enters an asterisk ('*') in the left most column, or presses Enter in an existing list item.
QTextEdit.AutoAll 0xffffffff Apply all automatic formatting. Currently only automatic bullet lists are supported.

The AutoFormatting type is a typedef for QFlags<AutoFormattingFlag>. It stores an OR combination of AutoFormattingFlag values.

QTextEdit.LineWrapMode

Constant Value
QTextEdit.NoWrap 0
QTextEdit.WidgetWidth 1
QTextEdit.FixedPixelWidth 2
QTextEdit.FixedColumnWidth 3

Method Documentation

QTextEdit.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty QTextEdit with parent parent.

QTextEdit.__init__ (self, QString text, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QTextEdit with parent parent. The text edit will display the text text. The text is interpreted as html.

bool QTextEdit.acceptRichText (self)

Qt.Alignment QTextEdit.alignment (self)

Returns the alignment of the current paragraph.

See also setAlignment().

QString QTextEdit.anchorAt (self, QPoint pos)

Returns the reference of the anchor at position pos, or an empty string if no anchor exists at that point.

QTextEdit.append (self, QString text)

Appends a new paragraph with text to the end of the text edit.

Note: The new paragraph appended will have the same character format and block format as the current paragraph, determined by the position of the cursor.

See also currentCharFormat() and QTextCursor.blockFormat().

AutoFormatting QTextEdit.autoFormatting (self)

bool QTextEdit.canInsertFromMimeData (self, QMimeData source)

This function returns true if the contents of the MIME data object, specified by source, can be decoded and inserted into the document. It is called for example when during a drag operation the mouse enters this widget and it is necessary to determine whether it is possible to accept the drag and drop operation.

Reimplement this function to enable drag and drop support for additional MIME types.

bool QTextEdit.canPaste (self)

Returns whether text can be pasted from the clipboard into the textedit.

This function was introduced in Qt 4.2.

QTextEdit.changeEvent (self, QEvent e)

Reimplemented from QWidget.changeEvent().

QTextEdit.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Deletes all the text in the text edit.

Note that the undo/redo history is cleared by this function.

See also cut(), setPlainText(), and setHtml().

QTextEdit.contextMenuEvent (self, QContextMenuEvent e)

Reimplemented from QWidget.contextMenuEvent().

Shows the standard context menu created with createStandardContextMenu().

If you do not want the text edit to have a context menu, you can set its contextMenuPolicy to Qt.NoContextMenu. If you want to customize the context menu, reimplement this function. If you want to extend the standard context menu, reimplement this function, call createStandardContextMenu() and extend the menu returned.

Information about the event is passed in the event object.

 void MyTextEdit.contextMenuEvent(QContextMenuEvent *event)
 {
     QMenu *menu = createStandardContextMenu();
     menu->addAction(tr("My Menu Item"));
     //...
     menu->exec(event->globalPos());
     delete menu;
 }

QTextEdit.copy (self)

This method is also a Qt slot with the C++ signature void copy().

Copies any selected text to the clipboard.

See also copyAvailable().

QMimeData QTextEdit.createMimeDataFromSelection (self)

This function returns a new MIME data object to represent the contents of the text edit's current selection. It is called when the selection needs to be encapsulated into a new QMimeData object; for example, when a drag and drop operation is started, or when data is copyied to the clipboard.

If you reimplement this function, note that the ownership of the returned QMimeData object is passed to the caller. The selection can be retrieved by using the textCursor() function.

QMenu QTextEdit.createStandardContextMenu (self)

This function creates the standard context menu which is shown when the user clicks on the text edit with the right mouse button. It is called from the default contextMenuEvent() handler. The popup menu's ownership is transferred to the caller.

We recommend that you use the createStandardContextMenu(QPoint) version instead which will enable the actions that are sensitive to where the user clicked.

QMenu QTextEdit.createStandardContextMenu (self, QPoint position)

This function creates the standard context menu which is shown when the user clicks on the text edit with the right mouse button. It is called from the default contextMenuEvent() handler and it takes the position of where the mouse click was. This can enable actions that are sensitive to the position where the user clicked. The popup menu's ownership is transferred to the caller.

This function was introduced in Qt 4.4.

QTextCharFormat QTextEdit.currentCharFormat (self)

Returns the char format that is used when inserting new text.

See also setCurrentCharFormat().

QFont QTextEdit.currentFont (self)

Returns the font of the current format.

See also setCurrentFont(), setFontFamily(), and setFontPointSize().

QTextCursor QTextEdit.cursorForPosition (self, QPoint pos)

returns a QTextCursor at position pos (in viewport coordinates).

QRect QTextEdit.cursorRect (self, QTextCursor cursor)

returns a rectangle (in viewport coordinates) that includes the cursor.

QRect QTextEdit.cursorRect (self)

returns a rectangle (in viewport coordinates) that includes the cursor of the text edit.

int QTextEdit.cursorWidth (self)

QTextEdit.cut (self)

This method is also a Qt slot with the C++ signature void cut().

Copies the selected text to the clipboard and deletes it from the text edit.

If there is no selected text nothing happens.

See also copy() and paste().

QTextDocument QTextEdit.document (self)

Returns a pointer to the underlying document.

See also setDocument().

QString QTextEdit.documentTitle (self)

QTextEdit.dragEnterEvent (self, QDragEnterEvent e)

Reimplemented from QWidget.dragEnterEvent().

QTextEdit.dragLeaveEvent (self, QDragLeaveEvent e)

Reimplemented from QWidget.dragLeaveEvent().

QTextEdit.dragMoveEvent (self, QDragMoveEvent e)

Reimplemented from QWidget.dragMoveEvent().

QTextEdit.dropEvent (self, QDropEvent e)

Reimplemented from QWidget.dropEvent().

QTextEdit.ensureCursorVisible (self)

Ensures that the cursor is visible by scrolling the text edit if necessary.

bool QTextEdit.event (self, QEvent e)

list-of-QTextEdit.ExtraSelection QTextEdit.extraSelections (self)

Returns previously set extra selections.

This function was introduced in Qt 4.2.

See also setExtraSelections().

bool QTextEdit.find (self, QString exp, QTextDocument.FindFlags options = 0)

Finds the next occurrence of the string, exp, using the given options. Returns true if exp was found and changes the cursor to select the match; otherwise returns false.

QTextEdit.focusInEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusInEvent().

bool QTextEdit.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QTextEdit.focusOutEvent (self, QFocusEvent e)

Reimplemented from QWidget.focusOutEvent().

QString QTextEdit.fontFamily (self)

Returns the font family of the current format.

See also setFontFamily(), setCurrentFont(), and setFontPointSize().

bool QTextEdit.fontItalic (self)

Returns true if the font of the current format is italic; otherwise returns false.

See also setFontItalic().

float QTextEdit.fontPointSize (self)

Returns the point size of the font of the current format.

See also setFontFamily(), setCurrentFont(), and setFontPointSize().

bool QTextEdit.fontUnderline (self)

Returns true if the font of the current format is underlined; otherwise returns false.

See also setFontUnderline().

int QTextEdit.fontWeight (self)

Returns the font weight of the current format.

See also setFontWeight(), setCurrentFont(), setFontPointSize(), and QFont.Weight.

QTextEdit.inputMethodEvent (self, QInputMethodEvent)

Reimplemented from QWidget.inputMethodEvent().

QVariant QTextEdit.inputMethodQuery (self, Qt.InputMethodQuery property)

Reimplemented from QWidget.inputMethodQuery().

QTextEdit.insertFromMimeData (self, QMimeData source)

This function inserts the contents of the MIME data object, specified by source, into the text edit at the current cursor position. It is called whenever text is inserted as the result of a clipboard paste operation, or when the text edit accepts data from a drag and drop operation.

Reimplement this function to enable drag and drop support for additional MIME types.

QTextEdit.insertHtml (self, QString text)

This method is also a Qt slot with the C++ signature void insertHtml(const QString&).

Convenience slot that inserts text which is assumed to be of html formatting at the current cursor position.

It is equivalent to:

 edit->textCursor().insertHtml(fragment);

Note: When using this function with a style sheet, the style sheet will only apply to the current block in the document. In order to apply a style sheet throughout a document, use QTextDocument.setDefaultStyleSheet() instead.

QTextEdit.insertPlainText (self, QString text)

This method is also a Qt slot with the C++ signature void insertPlainText(const QString&).

Convenience slot that inserts text at the current cursor position.

It is equivalent to

 edit->textCursor().insertText(text);

bool QTextEdit.isReadOnly (self)

bool QTextEdit.isUndoRedoEnabled (self)

QTextEdit.keyPressEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyPressEvent().

QTextEdit.keyReleaseEvent (self, QKeyEvent e)

Reimplemented from QWidget.keyReleaseEvent().

int QTextEdit.lineWrapColumnOrWidth (self)

LineWrapMode QTextEdit.lineWrapMode (self)

QVariant QTextEdit.loadResource (self, int type, QUrl name)

Loads the resource specified by the given type and name.

This function is an extension of QTextDocument.loadResource().

See also QTextDocument.loadResource().

QTextEdit.mergeCurrentCharFormat (self, QTextCharFormat modifier)

Merges the properties specified in modifier into the current character format by calling QTextCursor.mergeCharFormat on the editor's cursor. If the editor has a selection then the properties of modifier are directly applied to the selection.

See also QTextCursor.mergeCharFormat().

QTextEdit.mouseDoubleClickEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseDoubleClickEvent().

QTextEdit.mouseMoveEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseMoveEvent().

QTextEdit.mousePressEvent (self, QMouseEvent e)

Reimplemented from QWidget.mousePressEvent().

QTextEdit.mouseReleaseEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseReleaseEvent().

QTextEdit.moveCursor (self, QTextCursor.MoveOperation operation, QTextCursor.MoveMode mode = QTextCursor.MoveAnchor)

Moves the cursor by performing the given operation.

If mode is QTextCursor.KeepAnchor, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys.

This function was introduced in Qt 4.2.

See also QTextCursor.movePosition().

bool QTextEdit.overwriteMode (self)

QTextEdit.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

This event handler can be reimplemented in a subclass to receive paint events passed in event. It is usually unnecessary to reimplement this function in a subclass of QTextEdit.

Warning: The underlying text document must not be modified from within a reimplementation of this function.

QTextEdit.paste (self)

This method is also a Qt slot with the C++ signature void paste().

Pastes the text from the clipboard into the text edit at the current cursor position.

If there is no text in the clipboard nothing happens.

To change the behavior of this function, i.e. to modify what QTextEdit can paste and how it is being pasted, reimplement the virtual canInsertFromMimeData() and insertFromMimeData() functions.

See also cut() and copy().

QTextEdit.print_ (self, QPrinter printer)

Convenience function to print the text edit's document to the given printer. This is equivalent to calling the print method on the document directly except that this function also supports QPrinter.Selection as print range.

This function was introduced in Qt 4.3.

See also QTextDocument.print().

QTextEdit.redo (self)

This method is also a Qt slot with the C++ signature void redo().

Redoes the last operation.

If there is no operation to redo, i.e. there is no redo step in the undo/redo history, nothing happens.

This function was introduced in Qt 4.2.

See also undo().

QTextEdit.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

QTextEdit.scrollContentsBy (self, int dx, int dy)

Reimplemented from QAbstractScrollArea.scrollContentsBy().

QTextEdit.scrollToAnchor (self, QString name)

This method is also a Qt slot with the C++ signature void scrollToAnchor(const QString&).

Scrolls the text edit so that the anchor with the given name is visible; does nothing if the name is empty, or is already visible, or isn't found.

QTextEdit.selectAll (self)

This method is also a Qt slot with the C++ signature void selectAll().

Selects all text.

See also copy(), cut(), and textCursor().

QTextEdit.setAcceptRichText (self, bool accept)

QTextEdit.setAlignment (self, Qt.Alignment a)

This method is also a Qt slot with the C++ signature void setAlignment(Qt::Alignment).

Sets the alignment of the current paragraph to a. Valid alignments are Qt.AlignLeft, Qt.AlignRight, Qt.AlignJustify and Qt.AlignCenter (which centers horizontally).

See also alignment().

QTextEdit.setAutoFormatting (self, AutoFormatting features)

QTextEdit.setCurrentCharFormat (self, QTextCharFormat format)

Sets the char format that is be used when inserting new text to format by calling QTextCursor.setCharFormat() on the editor's cursor. If the editor has a selection then the char format is directly applied to the selection.

See also currentCharFormat().

QTextEdit.setCurrentFont (self, QFont f)

This method is also a Qt slot with the C++ signature void setCurrentFont(const QFont&).

Sets the font of the current format to f.

See also currentFont(), setFontPointSize(), and setFontFamily().

QTextEdit.setCursorWidth (self, int width)

QTextEdit.setDocument (self, QTextDocument document)

Makes document the new document of the text editor.

Note: The editor does not take ownership of the document unless it is the document's parent object. The parent object of the provided document remains the owner of the object.

The editor does not delete the current document, even if it is a child of the editor.

See also document().

QTextEdit.setDocumentTitle (self, QString title)

QTextEdit.setExtraSelections (self, list-of-QTextEdit.ExtraSelection selections)

This function allows temporarily marking certain regions in the document with a given color, specified as selections. This can be useful for example in a programming editor to mark a whole line of text with a given background color to indicate the existence of a breakpoint.

This function was introduced in Qt 4.2.

See also QTextEdit.ExtraSelection and extraSelections().

QTextEdit.setFontFamily (self, QString fontFamily)

This method is also a Qt slot with the C++ signature void setFontFamily(const QString&).

Sets the font family of the current format to fontFamily.

See also fontFamily() and setCurrentFont().

QTextEdit.setFontItalic (self, bool b)

This method is also a Qt slot with the C++ signature void setFontItalic(bool).

If italic is true, sets the current format to italic; otherwise sets the current format to non-italic.

See also fontItalic().

QTextEdit.setFontPointSize (self, float s)

This method is also a Qt slot with the C++ signature void setFontPointSize(qreal).

Sets the point size of the current format to s.

Note that if s is zero or negative, the behavior of this function is not defined.

See also fontPointSize(), setCurrentFont(), and setFontFamily().

QTextEdit.setFontUnderline (self, bool b)

This method is also a Qt slot with the C++ signature void setFontUnderline(bool).

If underline is true, sets the current format to underline; otherwise sets the current format to non-underline.

See also fontUnderline().

QTextEdit.setFontWeight (self, int w)

This method is also a Qt slot with the C++ signature void setFontWeight(int).

Sets the font weight of the current format to the given weight, where the value used is in the range defined by the QFont.Weight enum.

See also fontWeight(), setCurrentFont(), and setFontFamily().

QTextEdit.setHtml (self, QString text)

This method is also a Qt slot with the C++ signature void setHtml(const QString&).

QTextEdit.setLineWrapColumnOrWidth (self, int w)

QTextEdit.setLineWrapMode (self, LineWrapMode mode)

QTextEdit.setOverwriteMode (self, bool overwrite)

QTextEdit.setPlainText (self, QString text)

This method is also a Qt slot with the C++ signature void setPlainText(const QString&).

QTextEdit.setReadOnly (self, bool ro)

QTextEdit.setTabChangesFocus (self, bool b)

QTextEdit.setTabStopWidth (self, int width)

QTextEdit.setText (self, QString text)

This method is also a Qt slot with the C++ signature void setText(const QString&).

Sets the text edit's text. The text can be plain text or HTML and the text edit will try to guess the right format.

Use setHtml() or setPlainText() directly to avoid text edit's guessing.

This function was introduced in Qt 4.2.

See also text(), toPlainText(), and toHtml().

QTextEdit.setTextBackgroundColor (self, QColor c)

This method is also a Qt slot with the C++ signature void setTextBackgroundColor(const QColor&).

Sets the text background color of the current format to c.

This function was introduced in Qt 4.4.

See also textBackgroundColor().

QTextEdit.setTextColor (self, QColor c)

This method is also a Qt slot with the C++ signature void setTextColor(const QColor&).

Sets the text color of the current format to c.

See also textColor().

QTextEdit.setTextCursor (self, QTextCursor cursor)

Sets the visible cursor.

See also textCursor().

QTextEdit.setTextInteractionFlags (self, Qt.TextInteractionFlags flags)

QTextEdit.setUndoRedoEnabled (self, bool enable)

QTextEdit.setWordWrapMode (self, QTextOption.WrapMode policy)

QTextEdit.showEvent (self, QShowEvent)

Reimplemented from QWidget.showEvent().

bool QTextEdit.tabChangesFocus (self)

int QTextEdit.tabStopWidth (self)

QColor QTextEdit.textBackgroundColor (self)

Returns the text background color of the current format.

This function was introduced in Qt 4.4.

See also setTextBackgroundColor().

QColor QTextEdit.textColor (self)

Returns the text color of the current format.

See also setTextColor().

QTextCursor QTextEdit.textCursor (self)

Returns a copy of the QTextCursor that represents the currently visible cursor. Note that changes on the returned cursor do not affect QTextEdit's cursor; use setTextCursor() to update the visible cursor.

See also setTextCursor().

Qt.TextInteractionFlags QTextEdit.textInteractionFlags (self)

QTextEdit.timerEvent (self, QTimerEvent e)

QString QTextEdit.toHtml (self)

QString QTextEdit.toPlainText (self)

QTextEdit.undo (self)

This method is also a Qt slot with the C++ signature void undo().

Undoes the last operation.

If there is no operation to undo, i.e. there is no undo step in the undo/redo history, nothing happens.

This function was introduced in Qt 4.2.

See also redo().

QTextEdit.wheelEvent (self, QWheelEvent e)

Reimplemented from QWidget.wheelEvent().

QTextOption.WrapMode QTextEdit.wordWrapMode (self)

QTextEdit.zoomIn (self, int range = 1)

This method is also a Qt slot with the C++ signature void zoomIn(int = 1).

Zooms in on the text by making the base font size range points larger and recalculating all font sizes to be the new size. This does not change the size of any images.

See also zoomOut().

QTextEdit.zoomOut (self, int range = 1)

This method is also a Qt slot with the C++ signature void zoomOut(int = 1).

This is an overloaded function.

Zooms out on the text by making the base font size range points smaller and recalculating all font sizes to be the new size. This does not change the size of any images.

See also zoomIn().


Qt Signal Documentation

void copyAvailable (bool)

This is the default overload of this signal.

This signal is emitted when text is selected or de-selected in the text edit.

When text is selected this signal will be emitted with yes set to true. If no text has been selected or if the selected text is de-selected this signal is emitted with yes set to false.

If yes is true then copy() can be used to copy the selection to the clipboard. If yes is false then copy() does nothing.

See also selectionChanged().

void currentCharFormatChanged (const QTextCharFormat&)

This is the default overload of this signal.

This signal is emitted if the current character format has changed, for example caused by a change of the cursor position.

The new format is f.

See also setCurrentCharFormat().

void cursorPositionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the position of the cursor changed.

void redoAvailable (bool)

This is the default overload of this signal.

This signal is emitted whenever redo operations become available (available is true) or unavailable (available is false).

void selectionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the selection changes.

See also copyAvailable().

void textChanged ()

This is the default overload of this signal.

This signal is emitted whenever the document's content changes; for example, when text is inserted or deleted, or when formatting is applied.

void undoAvailable (bool)

This is the default overload of this signal.

This signal is emitted whenever undo operations become available (available is true) or unavailable (available is false).


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextencoder.html0000644000076500000240000000634612536324475021074 0ustar philstaff00000000000000 QTextEncoder Class Reference
  Home · All Classes · Modules

QTextEncoder Class Reference
[
QtCore module]

The QTextEncoder class provides a state-based encoder. More...

Methods

  • __init__ (self, QTextCodec codec)
  • __init__ (self, QTextCodec codec, QTextCodec.ConversionFlags flags)
  • QByteArray fromUnicode (self, QString str)

Detailed Description

The QTextEncoder class provides a state-based encoder.

A text encoder converts text from Unicode into an encoded text format using a specific codec.

The encoder converts Unicode into another format, remembering any state that is required between calls.


Method Documentation

QTextEncoder.__init__ (self, QTextCodec codec)

Constructs a text encoder for the given codec.

QTextEncoder.__init__ (self, QTextCodec codec, QTextCodec.ConversionFlags flags)

Constructs a text encoder for the given codec and conversion flags.

This function was introduced in Qt 4.7.

QByteArray QTextEncoder.fromUnicode (self, QString str)

Converts the Unicode string str into an encoded QByteArray.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextformat-pagebreakflags.html0000644000076500000240000001462012536324515023666 0ustar philstaff00000000000000 QTextFormat.PageBreakFlags Class Reference
  Home · All Classes · Modules

QTextFormat.PageBreakFlags Class Reference
[QtGui module]

Methods

Special Methods

  • PageBreakFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, PageBreakFlags f)
  • PageBreakFlags __iand__ (self, int mask)
  • int __int__ (self)
  • PageBreakFlags __invert__ (self)
  • PageBreakFlags __ior__ (self, PageBreakFlags f)
  • PageBreakFlags __ixor__ (self, PageBreakFlags f)
  • bool __ne__ (self, PageBreakFlags f)
  • PageBreakFlags __or__ (self, PageBreakFlags f)
  • PageBreakFlags __or__ (self, int f)
  • PageBreakFlags __xor__ (self, PageBreakFlags f)
  • PageBreakFlags __xor__ (self, int f)

Detailed Description

PageBreakFlag may be used whenever PageBreakFlags is expected.


Method Documentation

PageBreakFlags.__init__ (self, PageBreakFlags)

PageBreakFlags.__init__ (self, int)

PageBreakFlags.__init__ (self)

PageBreakFlags PageBreakFlags.__and__ (self, int mask)

int PageBreakFlags.__bool__ (self)

bool PageBreakFlags.__eq__ (self, PageBreakFlags f)

PageBreakFlags PageBreakFlags.__iand__ (self, int mask)

int PageBreakFlags.__int__ (self)

PageBreakFlags PageBreakFlags.__invert__ (self)

PageBreakFlags PageBreakFlags.__ior__ (self, PageBreakFlags f)

PageBreakFlags PageBreakFlags.__ixor__ (self, PageBreakFlags f)

bool PageBreakFlags.__ne__ (self, PageBreakFlags f)

PageBreakFlags PageBreakFlags.__or__ (self, PageBreakFlags f)

PageBreakFlags PageBreakFlags.__or__ (self, int f)

PageBreakFlags PageBreakFlags.__xor__ (self, PageBreakFlags f)

PageBreakFlags PageBreakFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextformat.html0000644000076500000240000014214212536324515020733 0ustar philstaff00000000000000 QTextFormat Class Reference
  Home · All Classes · Modules

QTextFormat Class Reference
[QtGui module]

The QTextFormat class provides formatting information for a QTextDocument. More...

Inherited by QTextBlockFormat, QTextCharFormat, QTextFrameFormat and QTextListFormat.

Types

  • enum FormatType { InvalidFormat, BlockFormat, CharFormat, ListFormat, ..., UserFormat }
  • enum ObjectTypes { NoObject, ImageObject, TableObject, TableCellObject, UserObject }
  • enum PageBreakFlag { PageBreak_Auto, PageBreak_AlwaysBefore, PageBreak_AlwaysAfter }
  • enum Property { ObjectIndex, CssFloat, LayoutDirection, OutlinePen, ..., UserProperty }

Methods

Special Methods

  • bool __eq__ (self, QTextFormat rhs)
  • bool __ne__ (self, QTextFormat rhs)

Detailed Description

The QTextFormat class provides formatting information for a QTextDocument.

A QTextFormat is a generic class used for describing the format of parts of a QTextDocument. The derived classes QTextCharFormat, QTextBlockFormat, QTextListFormat, and QTextTableFormat are usually more useful, and describe the formatting that is applied to specific parts of the document.

A format has a FormatType which specifies the kinds of text item it can format; e.g. a block of text, a list, a table, etc. A format also has various properties (some specific to particular format types), as described by the Property enum. Every property has a corresponding Property.

The format type is given by type(), and the format can be tested with isCharFormat(), isBlockFormat(), isListFormat(), isTableFormat(), isFrameFormat(), and isImageFormat(). If the type is determined, it can be retrieved with toCharFormat(), toBlockFormat(), toListFormat(), toTableFormat(), toFrameFormat(), and toImageFormat().

A format's properties can be set with the setProperty() functions, and retrieved with boolProperty(), intProperty(), doubleProperty(), and stringProperty() as appropriate. All the property IDs used in the format can be retrieved with allPropertyIds(). One format can be merged into another using merge().

A format's object index can be set with setObjectIndex(), and retrieved with objectIndex(). These methods can be used to associate the format with a QTextObject. It is used to represent lists, frames, and tables inside the document.


Type Documentation

QTextFormat.FormatType

This enum describes the text item a QTextFormat object is formatting.

Constant Value Description
QTextFormat.InvalidFormat -1 An invalid format as created by the default constructor
QTextFormat.BlockFormat 1 The object formats a text block
QTextFormat.CharFormat 2 The object formats a single character
QTextFormat.ListFormat 3 The object formats a list
QTextFormat.TableFormat 4 The object formats a table
QTextFormat.FrameFormat 5 The object formats a frame
QTextFormat.UserFormat 100  

See also QTextCharFormat, QTextBlockFormat, QTextListFormat, QTextTableFormat, and type().

QTextFormat.ObjectTypes

This enum describes what kind of QTextObject this format is associated with.

Constant Value Description
QTextFormat.NoObject 0  
QTextFormat.ImageObject 1  
QTextFormat.TableObject 2  
QTextFormat.TableCellObject 3  
QTextFormat.UserObject 0x1000 The first object that can be used for application-specific purposes.

See also QTextObject, QTextTable, and QTextObject.format().

QTextFormat.PageBreakFlag

This enum describes how page breaking is performed when printing. It maps to the corresponding css properties.

Constant Value Description
QTextFormat.PageBreak_Auto 0 The page break is determined automatically depending on the available space on the current page
QTextFormat.PageBreak_AlwaysBefore 0x001 The page is always broken before the paragraph/table
QTextFormat.PageBreak_AlwaysAfter 0x010 A new page is always started after the paragraph/table

This enum was introduced or modified in Qt 4.2.

The PageBreakFlags type is a typedef for QFlags<PageBreakFlag>. It stores an OR combination of PageBreakFlag values.

See also QTextBlockFormat.pageBreakPolicy(), QTextFrameFormat.pageBreakPolicy(), and PageBreakPolicy.

QTextFormat.Property

This enum describes the different properties a format can have.

Constant Value Description
QTextFormat.ObjectIndex 0x0 The index of the formatted object. See objectIndex().

Paragraph and character properties

Constant Value Description
QTextFormat.CssFloat 0x0800 How a frame is located relative to the surrounding text
QTextFormat.LayoutDirection 0x0801 The layout direction of the text in the document (Qt.LayoutDirection).
QTextFormat.OutlinePen 0x810  
QTextFormat.ForegroundBrush 0x821  
QTextFormat.BackgroundBrush 0x820  
QTextFormat.BackgroundImageUrl 0x823  

Paragraph properties

Constant Value Description
QTextFormat.BlockAlignment 0x1010  
QTextFormat.BlockTopMargin 0x1030  
QTextFormat.BlockBottomMargin 0x1031  
QTextFormat.BlockLeftMargin 0x1032  
QTextFormat.BlockRightMargin 0x1033  
QTextFormat.TextIndent 0x1034  
QTextFormat.TabPositions 0x1035 Specifies the tab positions. The tab positions are structs of QTextOption.Tab which are stored in a QList (internally, in a QList<QVariant>).
QTextFormat.BlockIndent 0x1040  
QTextFormat.LineHeight 0x1048  
QTextFormat.LineHeightType 0x1049  
QTextFormat.BlockNonBreakableLines 0x1050  
QTextFormat.BlockTrailingHorizontalRulerWidth 0x1060 The width of a horizontal ruler element.

Character properties

Constant Value Description
QTextFormat.FontFamily 0x2000  
QTextFormat.FontPointSize 0x2001  
QTextFormat.FontPixelSize 0x2009  
QTextFormat.FontSizeAdjustment 0x2002 Specifies the change in size given to the fontsize already set using FontPointSize or FontPixelSize.
QTextFormat.FontFixedPitch 0x2008  
QTextFormat.FontWeight 0x2003  
QTextFormat.FontItalic 0x2004  
QTextFormat.FontUnderline 0x2005 This property has been deprecated. Use QTextFormat.TextUnderlineStyle instead.
QTextFormat.FontOverline 0x2006  
QTextFormat.FontStrikeOut 0x2007  
QTextFormat.FontCapitalization FirstFontProperty Specifies the capitalization type that is to be applied to the text.
QTextFormat.FontLetterSpacing 0x1FE1 Changes the default spacing between individual letters in the font. The value is specified in percentage, with 100 as the default value.
QTextFormat.FontWordSpacing 0x1FE2 Changes the default spacing between individual words. A positive value increases the word spacing by the corresponding pixels; a negative value decreases the spacing.
QTextFormat.FontStyleHint 0x1FE3 Corresponds to the QFont.StyleHint property
QTextFormat.FontStyleStrategy 0x1FE4 Corresponds to the QFont.StyleStrategy property
QTextFormat.FontKerning 0x1FE5 Specifies whether the font has kerning turned on.
QTextFormat.FontHintingPreference 0x1FE6 Controls the use of hinting according to values of the QFont.HintingPreference enum.
QTextFormat.TextUnderlineColor 0x2010  
QTextFormat.TextVerticalAlignment 0x2021  
QTextFormat.TextOutline 0x2022  
QTextFormat.TextUnderlineStyle 0x2023  
QTextFormat.TextToolTip 0x2024 Specifies the (optional) tool tip to be displayed for a fragment of text.
QTextFormat.IsAnchor 0x2030  
QTextFormat.AnchorHref 0x2031  
QTextFormat.AnchorName 0x2032  
QTextFormat.ObjectType 0x2f00  

List properties

Constant Value Description
QTextFormat.ListStyle 0x3000 Specifies the style used for the items in a list, described by values of the QTextListFormat.Style enum.
QTextFormat.ListIndent 0x3001 Specifies the amount of indentation used for a list.
QTextFormat.ListNumberPrefix 0x3002 Defines the text which is prepended to item numbers in numeric lists.
QTextFormat.ListNumberSuffix 0x3003 Defines the text which is appended to item numbers in numeric lists.

Table and frame properties

Constant Value Description
QTextFormat.FrameBorder 0x4000  
QTextFormat.FrameBorderBrush 0x4009  
QTextFormat.FrameBorderStyle 0x4010 See the BorderStyle enum.
QTextFormat.FrameBottomMargin 0x4006  
QTextFormat.FrameHeight 0x4004  
QTextFormat.FrameLeftMargin 0x4007  
QTextFormat.FrameMargin 0x4001  
QTextFormat.FramePadding 0x4002  
QTextFormat.FrameRightMargin 0x4008  
QTextFormat.FrameTopMargin 0x4005  
QTextFormat.FrameWidth 0x4003  
QTextFormat.TableCellSpacing 0x4102  
QTextFormat.TableCellPadding 0x4103  
QTextFormat.TableColumns 0x4100  
QTextFormat.TableColumnWidthConstraints 0x4101  
QTextFormat.TableHeaderRowCount 0x4104  

Table cell properties

Constant Value
QTextFormat.TableCellRowSpan 0x4810
QTextFormat.TableCellColumnSpan 0x4811
QTextFormat.TableCellLeftPadding 0x4814
QTextFormat.TableCellRightPadding 0x4815
QTextFormat.TableCellTopPadding 0x4812
QTextFormat.TableCellBottomPadding 0x4813

Image properties

Constant Value
QTextFormat.ImageName 0x5000
QTextFormat.ImageWidth 0x5010
QTextFormat.ImageHeight 0x5011

Selection properties

Constant Value Description
QTextFormat.FullWidthSelection 0x06000 When set on the characterFormat of a selection, the whole width of the text will be shown selected.

Page break properties

Constant Value Description
QTextFormat.PageBreakPolicy 0x7000 Specifies how pages are broken. See the PageBreakFlag enum.
QTextFormat.UserProperty 0x100000  

See also property() and setProperty().


Method Documentation

QTextFormat.__init__ (self)

Creates a new text format with an InvalidFormat.

See also FormatType.

QTextFormat.__init__ (self, int type)

Creates a new text format of the given type.

See also FormatType.

QTextFormat.__init__ (self, QTextFormat rhs)

Creates a new text format with the same attributes as the other text format.

QTextFormat.__init__ (self, QVariant variant)

QBrush QTextFormat.background (self)

Returns the brush used to paint the document's background.

See also setBackground(), clearBackground(), and foreground().

bool QTextFormat.boolProperty (self, int propertyId)

Returns the value of the property specified by propertyId. If the property isn't of QTextFormat.Bool type, false is returned instead.

See also setProperty(), intProperty(), doubleProperty(), stringProperty(), colorProperty(), lengthProperty(), lengthVectorProperty(), and Property.

QBrush QTextFormat.brushProperty (self, int propertyId)

Returns the value of the property given by propertyId; if the property isn't of QVariant.Brush type, Qt.NoBrush is returned instead.

See also setProperty(), boolProperty(), intProperty(), doubleProperty(), stringProperty(), lengthProperty(), lengthVectorProperty(), and Property.

QTextFormat.clearBackground (self)

Clears the brush used to paint the document's background. The default brush will be used.

See also background(), setBackground(), and clearForeground().

QTextFormat.clearForeground (self)

Clears the brush used to paint the document's foreground. The default brush will be used.

See also foreground(), setForeground(), and clearBackground().

QTextFormat.clearProperty (self, int propertyId)

Clears the value of the property given by propertyId

See also Property.

QColor QTextFormat.colorProperty (self, int propertyId)

Returns the value of the property given by propertyId; if the property isn't of QVariant.Color type, an invalid color is returned instead.

See also setProperty(), boolProperty(), intProperty(), doubleProperty(), stringProperty(), lengthProperty(), lengthVectorProperty(), and Property.

float QTextFormat.doubleProperty (self, int propertyId)

Returns the value of the property specified by propertyId. If the property isn't of QVariant.Double or QMetaType.Float type, 0 is returned instead.

See also setProperty(), boolProperty(), intProperty(), stringProperty(), colorProperty(), lengthProperty(), lengthVectorProperty(), and Property.

QBrush QTextFormat.foreground (self)

Returns the brush used to render foreground details, such as text, frame outlines, and table borders.

See also setForeground(), clearForeground(), and background().

bool QTextFormat.hasProperty (self, int propertyId)

Returns true if the text format has a property with the given propertyId; otherwise returns false.

See also properties() and Property.

int QTextFormat.intProperty (self, int propertyId)

Returns the value of the property specified by propertyId. If the property is not of QTextFormat.Integer type, 0 is returned instead.

See also setProperty(), boolProperty(), doubleProperty(), stringProperty(), colorProperty(), lengthProperty(), lengthVectorProperty(), and Property.

bool QTextFormat.isBlockFormat (self)

Returns true if this text format is a BlockFormat; otherwise returns false.

bool QTextFormat.isCharFormat (self)

Returns true if this text format is a CharFormat; otherwise returns false.

bool QTextFormat.isFrameFormat (self)

Returns true if this text format is a FrameFormat; otherwise returns false.

bool QTextFormat.isImageFormat (self)

Returns true if this text format is an image format; otherwise returns false.

bool QTextFormat.isListFormat (self)

Returns true if this text format is a ListFormat; otherwise returns false.

bool QTextFormat.isTableCellFormat (self)

Returns true if this text format is a TableCellFormat; otherwise returns false.

This function was introduced in Qt 4.4.

bool QTextFormat.isTableFormat (self)

Returns true if this text format is a TableFormat; otherwise returns false.

bool QTextFormat.isValid (self)

Returns true if the format is valid (i.e. is not InvalidFormat); otherwise returns false.

Qt.LayoutDirection QTextFormat.layoutDirection (self)

Returns the document's layout direction.

See also setLayoutDirection().

QTextLength QTextFormat.lengthProperty (self, int propertyId)

Returns the value of the property given by propertyId.

See also setProperty(), boolProperty(), intProperty(), doubleProperty(), stringProperty(), colorProperty(), lengthVectorProperty(), and Property.

list-of-QTextLength QTextFormat.lengthVectorProperty (self, int propertyId)

Returns the value of the property given by propertyId. If the property isn't of QTextFormat.LengthVector type, an empty length vector is returned instead.

See also setProperty(), boolProperty(), intProperty(), doubleProperty(), stringProperty(), colorProperty(), lengthProperty(), and Property.

QTextFormat.merge (self, QTextFormat other)

Merges the other format with this format; where there are conflicts the other format takes precedence.

int QTextFormat.objectIndex (self)

Returns the index of the format object, or -1 if the format object is invalid.

See also setObjectIndex().

int QTextFormat.objectType (self)

Returns the text format's object type.

See also ObjectTypes and setObjectType().

QPen QTextFormat.penProperty (self, int propertyId)

Returns the value of the property given by propertyId; if the property isn't of QVariant.Pen type, Qt.NoPen is returned instead.

See also setProperty(), boolProperty(), intProperty(), doubleProperty(), stringProperty(), lengthProperty(), lengthVectorProperty(), and Property.

dict-of-int-QVariant QTextFormat.properties (self)

Returns a map with all properties of this text format.

QVariant QTextFormat.property (self, int propertyId)

Returns the property specified by the given propertyId.

See also setProperty() and Property.

int QTextFormat.propertyCount (self)

Returns the number of properties stored in the format.

This function was introduced in Qt 4.3.

QTextFormat.setBackground (self, QBrush brush)

Sets the brush use to paint the document's background to the brush specified.

See also background(), clearBackground(), and setForeground().

QTextFormat.setForeground (self, QBrush brush)

Sets the foreground brush to the specified brush. The foreground brush is mostly used to render text.

See also foreground(), clearForeground(), and setBackground().

QTextFormat.setLayoutDirection (self, Qt.LayoutDirection direction)

Sets the document's layout direction to the specified direction.

See also layoutDirection().

QTextFormat.setObjectIndex (self, int object)

Sets the format object's object index.

See also objectIndex().

QTextFormat.setObjectType (self, int atype)

Sets the text format's object type to type.

See also ObjectTypes and objectType().

QTextFormat.setProperty (self, int propertyId, QVariant value)

Sets the property specified by the propertyId to the given value.

See also property() and Property.

QTextFormat.setProperty (self, int propertyId, list-of-QTextLength lengths)

Sets the value of the property given by propertyId to value.

See also lengthVectorProperty() and Property.

QString QTextFormat.stringProperty (self, int propertyId)

Returns the value of the property given by propertyId; if the property isn't of QVariant.String type, an empty string is returned instead.

See also setProperty(), boolProperty(), intProperty(), doubleProperty(), colorProperty(), lengthProperty(), lengthVectorProperty(), and Property.

QTextBlockFormat QTextFormat.toBlockFormat (self)

Returns this format as a block format.

QTextCharFormat QTextFormat.toCharFormat (self)

Returns this format as a character format.

QTextFrameFormat QTextFormat.toFrameFormat (self)

Returns this format as a frame format.

QTextImageFormat QTextFormat.toImageFormat (self)

Returns this format as an image format.

QTextListFormat QTextFormat.toListFormat (self)

Returns this format as a list format.

QTextTableCellFormat QTextFormat.toTableCellFormat (self)

Returns this format as a table cell format.

This function was introduced in Qt 4.4.

QTextTableFormat QTextFormat.toTableFormat (self)

Returns this format as a table format.

int QTextFormat.type (self)

Returns the type of this format.

See also FormatType.

bool QTextFormat.__eq__ (self, QTextFormat rhs)

bool QTextFormat.__ne__ (self, QTextFormat rhs)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextfragment.html0000644000076500000240000001773412536324515021256 0ustar philstaff00000000000000 QTextFragment Class Reference
  Home · All Classes · Modules

QTextFragment Class Reference
[QtGui module]

The QTextFragment class holds a piece of text in a QTextDocument with a single QTextCharFormat. More...

Methods

Special Methods

  • bool __eq__ (self, QTextFragment o)
  • bool __ge__ (self, QTextFragment o)
  • bool __lt__ (self, QTextFragment o)
  • bool __ne__ (self, QTextFragment o)

Detailed Description

The QTextFragment class holds a piece of text in a QTextDocument with a single QTextCharFormat.

A text fragment describes a piece of text that is stored with a single character format. Text in which the character format changes can be represented by sequences of text fragments with different formats.

If the user edits the text in a fragment and introduces a different character format, the fragment's text will be split at each point where the format changes, and new fragments will be created. For example, changing the style of some text in the middle of a sentence will cause the fragment to be broken into three separate fragments: the first and third with the same format as before, and the second with the new style. The first fragment will contain the text from the beginning of the sentence, the second will contain the text from the middle, and the third takes the text from the end of the sentence.

A fragment's text and character format can be obtained with the text() and charFormat() functions. The length() function gives the length of the text in the fragment. position() gives the position in the document of the start of the fragment. To determine whether the fragment contains a particular position within the document, use the contains() function.


Method Documentation

QTextFragment.__init__ (self)

Creates a new empty text fragment.

QTextFragment.__init__ (self, QTextFragment o)

QTextCharFormat QTextFragment.charFormat (self)

Returns the text fragment's character format.

See also text().

int QTextFragment.charFormatIndex (self)

Returns an index into the document's internal list of character formats for the text fragment's character format.

See also QTextDocument.allFormats().

bool QTextFragment.contains (self, int position)

Returns true if the text fragment contains the text at the given position in the document; otherwise returns false.

list-of-QGlyphRun QTextFragment.glyphRuns (self)

Returns the glyphs of this text fragment. The positions of the glyphs are relative to the position of the QTextBlock's layout.

See also QGlyphRun, QTextBlock.layout(), QTextLayout.position(), and QPainter.drawGlyphRun().

bool QTextFragment.isValid (self)

Returns true if this is a valid text fragment (i.e. has a valid position in a document); otherwise returns false.

int QTextFragment.length (self)

Returns the number of characters in the text fragment.

See also text().

int QTextFragment.position (self)

Returns the position of this text fragment in the document.

QString QTextFragment.text (self)

Returns the text fragment's as plain text.

See also length() and charFormat().

bool QTextFragment.__eq__ (self, QTextFragment o)

bool QTextFragment.__ge__ (self, QTextFragment o)

bool QTextFragment.__lt__ (self, QTextFragment o)

bool QTextFragment.__ne__ (self, QTextFragment o)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextframe-iterator.html0000644000076500000240000001243212536324515022362 0ustar philstaff00000000000000 QTextFrame.iterator Class Reference
  Home · All Classes · Modules

QTextFrame.iterator Class Reference
[QtGui module]

The iterator class provides an iterator for reading the contents of a QTextFrame. More...

Methods

Special Methods


Detailed Description

The iterator class provides an iterator for reading the contents of a QTextFrame.

A frame consists of an arbitrary sequence of QTextBlocks and child QTextFrames. This class provides a way to iterate over the child objects of a frame, and read their contents. It does not provide a way to modify the contents of the frame.


Method Documentation

iterator.__init__ (self)

Constructs an invalid iterator.

iterator.__init__ (self, iterator o)

bool iterator.atEnd (self)

Returns true if the current item is the last item in the text frame.

QTextBlock iterator.currentBlock (self)

Returns the current block the iterator points to. If the iterator points to a child frame, the returned block is invalid.

See also currentFrame().

QTextFrame iterator.currentFrame (self)

Returns the current frame pointed to by the iterator, or 0 if the iterator currently points to a block.

See also currentBlock().

QTextFrame iterator.parentFrame (self)

Returns the parent frame of the current frame.

See also currentFrame() and QTextFrame.parentFrame().

bool iterator.__eq__ (self, iterator o)

iterator iterator.__iadd__ (self, int)

iterator iterator.__isub__ (self, int)

bool iterator.__ne__ (self, iterator o)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextframe.html0000644000076500000240000002176312536324515020542 0ustar philstaff00000000000000 QTextFrame Class Reference
  Home · All Classes · Modules

QTextFrame Class Reference
[QtGui module]

The QTextFrame class represents a frame in a QTextDocument. More...

Inherits QTextObject.

Inherited by QTextTable.

Types

Methods


Detailed Description

The QTextFrame class represents a frame in a QTextDocument.

Text frames provide structure for the text in a document. They are used as generic containers for other document elements. Frames are usually created by using QTextCursor.insertFrame().

Frames can be used to create hierarchical structures in rich text documents. Each document has a root frame (QTextDocument.rootFrame()), and each frame beneath the root frame has a parent frame and a (possibly empty) list of child frames. The parent frame can be found with parentFrame(), and the childFrames() function provides a list of child frames.

Each frame contains at least one text block to enable text cursors to insert new document elements within. As a result, the QTextFrame.iterator class is used to traverse both the blocks and child frames within a given frame. The first and last child elements in the frame can be found with begin() and end().

A frame also has a format (specified using QTextFrameFormat) which can be set with setFormat() and read with format().

Text cursors can be obtained that point to the first and last valid cursor positions within a frame; use the firstCursorPosition() and lastCursorPosition() functions for this. The frame's extent in the document can be found with firstPosition() and lastPosition().

You can iterate over a frame's contents using the QTextFrame.iterator class: this provides read-only access to its internal list of text blocks and child frames.


Method Documentation

QTextFrame.__init__ (self, QTextDocument doc)

Creates a new empty frame for the text document.

iterator QTextFrame.begin (self)

Returns an iterator pointing to the first document element inside the frame. Please see the document STL-style-Iterators for more information.

See also end().

list-of-QTextFrame QTextFrame.childFrames (self)

Returns a (possibly empty) list of the frame's child frames.

See also parentFrame().

iterator QTextFrame.end (self)

Returns an iterator pointing to the position past the last document element inside the frame. Please see the document STL-Style Iterators for more information.

See also begin().

QTextCursor QTextFrame.firstCursorPosition (self)

Returns the first cursor position inside the frame.

See also lastCursorPosition(), firstPosition(), and lastPosition().

int QTextFrame.firstPosition (self)

Returns the first document position inside the frame.

See also lastPosition(), firstCursorPosition(), and lastCursorPosition().

QTextFrameFormat QTextFrame.frameFormat (self)

Returns the frame's format.

See also setFrameFormat().

QTextCursor QTextFrame.lastCursorPosition (self)

Returns the last cursor position inside the frame.

See also firstCursorPosition(), firstPosition(), and lastPosition().

int QTextFrame.lastPosition (self)

Returns the last document position inside the frame.

See also firstPosition(), firstCursorPosition(), and lastCursorPosition().

QTextFrame QTextFrame.parentFrame (self)

Returns the frame's parent frame. If the frame is the root frame of a document, this will return 0.

See also childFrames() and QTextDocument.rootFrame().

QTextFrame.setFrameFormat (self, QTextFrameFormat aformat)

Sets the frame's format.

See also frameFormat().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextframeformat.html0000644000076500000240000004536112536324515021753 0ustar philstaff00000000000000 QTextFrameFormat Class Reference
  Home · All Classes · Modules

QTextFrameFormat Class Reference
[QtGui module]

The QTextFrameFormat class provides formatting information for frames in a QTextDocument. More...

Inherits QTextFormat.

Inherited by QTextTableFormat.

Types

  • enum BorderStyle { BorderStyle_None, BorderStyle_Dotted, BorderStyle_Dashed, BorderStyle_Solid, ..., BorderStyle_Outset }
  • enum Position { InFlow, FloatLeft, FloatRight }

Methods


Detailed Description

The QTextFrameFormat class provides formatting information for frames in a QTextDocument.

A text frame groups together one or more blocks of text, providing a layer of structure larger than the paragraph. The format of a frame specifies how it is rendered and positioned on the screen. It does not directly specify the behavior of the text formatting within, but provides constraints on the layout of its children.

The frame format defines the width() and height() of the frame on the screen. Each frame can have a border() that surrounds its contents with a rectangular box. The border is surrounded by a margin() around the frame, and the contents of the frame are kept separate from the border by the frame's padding(). This scheme is similar to the box model used by Cascading Style Sheets for HTML pages.

The position() of a frame is set using setPosition() and determines how it is located relative to the surrounding text.

The validity of a QTextFrameFormat object can be determined with the isValid() function.


Type Documentation

QTextFrameFormat.BorderStyle

This enum describes different border styles for the text frame.

Constant Value
QTextFrameFormat.BorderStyle_None 0
QTextFrameFormat.BorderStyle_Dotted 1
QTextFrameFormat.BorderStyle_Dashed 2
QTextFrameFormat.BorderStyle_Solid 3
QTextFrameFormat.BorderStyle_Double 4
QTextFrameFormat.BorderStyle_DotDash 5
QTextFrameFormat.BorderStyle_DotDotDash 6
QTextFrameFormat.BorderStyle_Groove 7
QTextFrameFormat.BorderStyle_Ridge 8
QTextFrameFormat.BorderStyle_Inset 9
QTextFrameFormat.BorderStyle_Outset 10

This enum was introduced or modified in Qt 4.3.

See also borderStyle() and FrameBorderStyle.

QTextFrameFormat.Position

This enum describes how a frame is located relative to the surrounding text.

Constant Value
QTextFrameFormat.InFlow 0
QTextFrameFormat.FloatLeft 1
QTextFrameFormat.FloatRight 2

See also position() and CssFloat.


Method Documentation

QTextFrameFormat.__init__ (self)

Constructs a text frame format object with the default properties.

QTextFrameFormat.__init__ (self, QTextFrameFormat)

float QTextFrameFormat.border (self)

Returns the width of the border in pixels.

See also setBorder().

QBrush QTextFrameFormat.borderBrush (self)

Returns the brush used for the frame's border.

This function was introduced in Qt 4.3.

See also setBorderBrush().

BorderStyle QTextFrameFormat.borderStyle (self)

Returns the style of the frame's border.

This function was introduced in Qt 4.3.

See also setBorderStyle().

float QTextFrameFormat.bottomMargin (self)

Returns the width of the frame's bottom margin in pixels.

This function was introduced in Qt 4.3.

See also setBottomMargin().

QTextLength QTextFrameFormat.height (self)

Returns the height of the frame's border rectangle.

See also setHeight().

bool QTextFrameFormat.isValid (self)

Returns true if the format description is valid; otherwise returns false.

float QTextFrameFormat.leftMargin (self)

Returns the width of the frame's left margin in pixels.

This function was introduced in Qt 4.3.

See also setLeftMargin().

float QTextFrameFormat.margin (self)

Returns the width of the frame's external margin in pixels.

See also setMargin().

float QTextFrameFormat.padding (self)

Returns the width of the frame's internal padding in pixels.

See also setPadding().

QTextFormat.PageBreakFlags QTextFrameFormat.pageBreakPolicy (self)

Returns the currently set page break policy for the frame/table. The default is QTextFormat.PageBreak_Auto.

This function was introduced in Qt 4.2.

See also setPageBreakPolicy().

Position QTextFrameFormat.position (self)

Returns the positioning policy for frames with this frame format.

See also setPosition().

float QTextFrameFormat.rightMargin (self)

Returns the width of the frame's right margin in pixels.

This function was introduced in Qt 4.3.

See also setRightMargin().

QTextFrameFormat.setBorder (self, float aborder)

Sets the width (in pixels) of the frame's border.

See also border().

QTextFrameFormat.setBorderBrush (self, QBrush brush)

Sets the brush used for the frame's border.

This function was introduced in Qt 4.3.

See also borderBrush().

QTextFrameFormat.setBorderStyle (self, BorderStyle style)

Sets the style of the frame's border.

This function was introduced in Qt 4.3.

See also borderStyle().

QTextFrameFormat.setBottomMargin (self, float amargin)

Sets the frame's bottom margin in pixels.

This function was introduced in Qt 4.3.

See also bottomMargin().

QTextFrameFormat.setHeight (self, float aheight)

Sets the frame's height.

See also height().

QTextFrameFormat.setHeight (self, QTextLength aheight)

This is an overloaded function.

Sets the frame's height.

QTextFrameFormat.setLeftMargin (self, float amargin)

Sets the frame's left margin in pixels.

This function was introduced in Qt 4.3.

See also leftMargin().

QTextFrameFormat.setMargin (self, float amargin)

Sets the frame's margin in pixels. This method also sets the left, right, top and bottom margins of the frame to the same value. The individual margins override the general margin.

See also margin().

QTextFrameFormat.setPadding (self, float apadding)

Sets the width of the frame's internal padding in pixels.

See also padding().

QTextFrameFormat.setPageBreakPolicy (self, QTextFormat.PageBreakFlags flags)

Sets the page break policy for the frame/table to policy.

This function was introduced in Qt 4.2.

See also pageBreakPolicy().

QTextFrameFormat.setPosition (self, Position f)

Sets the policy for positioning frames with this frame format.

See also position().

QTextFrameFormat.setRightMargin (self, float amargin)

Sets the frame's right margin in pixels.

This function was introduced in Qt 4.3.

See also rightMargin().

QTextFrameFormat.setTopMargin (self, float amargin)

Sets the frame's top margin in pixels.

This function was introduced in Qt 4.3.

See also topMargin().

QTextFrameFormat.setWidth (self, QTextLength length)

Sets the frame's border rectangle's width.

See also width() and QTextLength.

QTextFrameFormat.setWidth (self, float awidth)

This is an overloaded function.

Convenience method that sets the width of the frame's border rectangle's width to the specified fixed width.

float QTextFrameFormat.topMargin (self)

Returns the width of the frame's top margin in pixels.

This function was introduced in Qt 4.3.

See also setTopMargin().

QTextLength QTextFrameFormat.width (self)

Returns the width of the frame's border rectangle.

See also setWidth() and QTextLength.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextimageformat.html0000644000076500000240000001333512536324515021737 0ustar philstaff00000000000000 QTextImageFormat Class Reference
  Home · All Classes · Modules

QTextImageFormat Class Reference
[QtGui module]

The QTextImageFormat class provides formatting information for images in a QTextDocument. More...

Inherits QTextCharFormat.

Methods


Detailed Description

The QTextImageFormat class provides formatting information for images in a QTextDocument.

Inline images are represented by an object replacement character (0xFFFC in Unicode) which has an associated QTextImageFormat. The image format specifies a name with setName() that is used to locate the image. The size of the rectangle that the image will occupy is specified using setWidth() and setHeight().

Images can be supplied in any format for which Qt has an image reader, so SVG drawings can be included alongside PNG, TIFF and other bitmap formats.


Method Documentation

QTextImageFormat.__init__ (self)

Creates a new image format object.

QTextImageFormat.__init__ (self, QTextImageFormat)

float QTextImageFormat.height (self)

Returns the height of the rectangle occupied by the image.

See also width() and setHeight().

bool QTextImageFormat.isValid (self)

Returns true if this image format is valid; otherwise returns false.

QString QTextImageFormat.name (self)

Returns the name of the image. The name refers to an entry in the application's resources file.

See also setName().

QTextImageFormat.setHeight (self, float aheight)

Sets the height of the rectangle occupied by the image.

See also height() and setWidth().

QTextImageFormat.setName (self, QString aname)

Sets the name of the image. The name is used to locate the image in the application's resources.

See also name().

QTextImageFormat.setWidth (self, float awidth)

Sets the width of the rectangle occupied by the image.

See also width() and setHeight().

float QTextImageFormat.width (self)

Returns the width of the rectangle occupied by the image.

See also height() and setWidth().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextinlineobject.html0000644000076500000240000002101612536324515022104 0ustar philstaff00000000000000 QTextInlineObject Class Reference
  Home · All Classes · Modules

QTextInlineObject Class Reference
[QtGui module]

The QTextInlineObject class represents an inline object in a QTextLayout. More...

Methods


Detailed Description

The QTextInlineObject class represents an inline object in a QTextLayout.

This class is only used if the text layout is used to lay out parts of a QTextDocument.

The inline object has various attributes that can be set, for example using, setWidth(), setAscent(), and setDescent(). The rectangle it occupies is given by rect(), and its direction by isRightToLeft(). Its position in the text layout is given by at(), and its format is given by format().


Method Documentation

QTextInlineObject.__init__ (self)

Creates a new inline object for the item at position i in the text engine e.

QTextInlineObject.__init__ (self, QTextInlineObject)

float QTextInlineObject.ascent (self)

Returns the inline object's ascent.

See also setAscent(), descent(), width(), and rect().

float QTextInlineObject.descent (self)

Returns the inline object's descent.

See also setDescent(), ascent(), width(), and rect().

QTextFormat QTextInlineObject.format (self)

Returns format of the inline object within the text layout.

int QTextInlineObject.formatIndex (self)

Returns an integer describing the format of the inline object within the text layout.

float QTextInlineObject.height (self)

Returns the inline object's total height. This is equal to ascent() + descent() + 1.

See also ascent(), descent(), width(), and rect().

bool QTextInlineObject.isValid (self)

Returns true if this inline object is valid; otherwise returns false.

QRectF QTextInlineObject.rect (self)

Returns the inline object's rectangle.

See also ascent(), descent(), and width().

QTextInlineObject.setAscent (self, float a)

Sets the inline object's ascent to a.

See also ascent(), setDescent(), width(), and rect().

QTextInlineObject.setDescent (self, float d)

Sets the inline object's decent to d.

See also descent(), setAscent(), width(), and rect().

QTextInlineObject.setWidth (self, float w)

Sets the inline object's width to w.

See also width(), ascent(), descent(), and rect().

Qt.LayoutDirection QTextInlineObject.textDirection (self)

Returns if the object should be laid out right-to-left or left-to-right.

int QTextInlineObject.textPosition (self)

The position of the inline object within the text layout.

float QTextInlineObject.width (self)

Returns the inline object's width.

See also setWidth(), ascent(), descent(), and rect().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextitem-renderflags.html0000644000076500000240000001406412536324511022670 0ustar philstaff00000000000000 QTextItem.RenderFlags Class Reference
  Home · All Classes · Modules

QTextItem.RenderFlags Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

RenderFlag may be used whenever RenderFlags is expected.


Method Documentation

RenderFlags.__init__ (self, RenderFlags)

RenderFlags.__init__ (self, int)

RenderFlags.__init__ (self)

RenderFlags RenderFlags.__and__ (self, int mask)

int RenderFlags.__bool__ (self)

bool RenderFlags.__eq__ (self, RenderFlags f)

RenderFlags RenderFlags.__iand__ (self, int mask)

int RenderFlags.__int__ (self)

RenderFlags RenderFlags.__invert__ (self)

RenderFlags RenderFlags.__ior__ (self, RenderFlags f)

RenderFlags RenderFlags.__ixor__ (self, RenderFlags f)

bool RenderFlags.__ne__ (self, RenderFlags f)

RenderFlags RenderFlags.__or__ (self, RenderFlags f)

RenderFlags RenderFlags.__or__ (self, int f)

RenderFlags RenderFlags.__xor__ (self, RenderFlags f)

RenderFlags RenderFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextitem.html0000644000076500000240000001236112536324511020374 0ustar philstaff00000000000000 QTextItem Class Reference
  Home · All Classes · Modules

QTextItem Class Reference
[QtGui module]

The QTextItem class provides all the information required to draw text in a custom paint engine. More...

Types

Methods


Detailed Description

The QTextItem class provides all the information required to draw text in a custom paint engine.

When you reimplement your own paint engine, you must reimplement QPaintEngine.drawTextItem(), a function that takes a QTextItem as one of its arguments.


Type Documentation

QTextItem.RenderFlag

Constant Value Description
QTextItem.RightToLeft 0x1 Render the text from right to left.
QTextItem.Overline 0x10 Paint a line above the text.
QTextItem.Underline 0x20 Paint a line under the text.
QTextItem.StrikeOut 0x40 Paint a line through the text.

The RenderFlags type is a typedef for QFlags<RenderFlag>. It stores an OR combination of RenderFlag values.


Method Documentation

QTextItem.__init__ (self)

QTextItem.__init__ (self, QTextItem)

float QTextItem.ascent (self)

Corresponds to the ascent of the piece of text that is drawn.

float QTextItem.descent (self)

Corresponds to the descent of the piece of text that is drawn.

QFont QTextItem.font (self)

Returns the font that should be used to draw the text.

RenderFlags QTextItem.renderFlags (self)

Returns the render flags used.

QString QTextItem.text (self)

Returns the text that should be drawn.

float QTextItem.width (self)

Specifies the total width of the text to be drawn.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextlayout-formatrange.html0000644000076500000240000000620012536324515023255 0ustar philstaff00000000000000 QTextLayout.FormatRange Class Reference
  Home · All Classes · Modules

QTextLayout.FormatRange Class Reference
[
QtGui module]

The QTextLayout.FormatRange structure is used to apply extra formatting information for a specified area in the text layout's content. More...

Methods

Members


Detailed Description

The QTextLayout.FormatRange structure is used to apply extra formatting information for a specified area in the text layout's content.


Method Documentation

FormatRange.__init__ (self)

FormatRange.__init__ (self, FormatRange)


Member Documentation

QTextCharFormat format

Specifies the format to apply.

int length

Specifies the numer of characters the format range spans.

int start

Specifies the beginning of the format range within the text layout's text.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextlayout.html0000644000076500000240000006716212536324515020770 0ustar philstaff00000000000000 QTextLayout Class Reference
  Home · All Classes · Modules

QTextLayout Class Reference
[
QtGui module]

The QTextLayout class is used to lay out and render text. More...

Types

Methods


Detailed Description

The QTextLayout class is used to lay out and render text.

It offers many features expected from a modern text layout engine, including Unicode compliant rendering, line breaking and handling of cursor positioning. It can also produce and render device independent layout, something that is important for WYSIWYG applications.

The class has a rather low level API and unless you intend to implement your own text rendering for some specialized widget, you probably won't need to use it directly.

QTextLayout can be used with both plain and rich text.

QTextLayout can be used to create a sequence of QTextLine instances with given widths and can position them independently on the screen. Once the layout is done, these lines can be drawn on a paint device.

The text to be laid out can be provided in the constructor or set with setText().

The layout can be seen as a sequence of QTextLine objects; use createLine() to create a QTextLine instance, and lineAt() or lineForTextPosition() to retrieve created lines.

Here is a code snippet that demonstrates the layout phase:

 int leading = fontMetrics.leading();
 qreal height = 0;
 textLayout.beginLayout();
 while (1) {
     QTextLine line = textLayout.createLine();
     if (!line.isValid())
         break;

     line.setLineWidth(lineWidth);
     height += leading;
     line.setPosition(QPointF(0, height));
     height += line.height();
 }
 textLayout.endLayout();

The text can then be rendered by calling the layout's draw() function:

 QPainter painter(this);
 textLayout.draw(&painter, QPoint(0, 0));

For a given position in the text you can find a valid cursor position with isValidCursorPosition(), nextCursorPosition(), and previousCursorPosition().

The QTextLayout itself can be positioned with setPosition(); it has a boundingRect(), and a minimumWidth() and a maximumWidth().


Type Documentation

QTextLayout.CursorMode

Constant Value
QTextLayout.SkipCharacters 0
QTextLayout.SkipWords 1

Method Documentation

QTextLayout.__init__ (self)

Constructs an empty text layout.

See also setText().

QTextLayout.__init__ (self, QString text)

Constructs a text layout to lay out the given text.

QTextLayout.__init__ (self, QString text, QFont font, QPaintDevice paintDevice = None)

Constructs a text layout to lay out the given text with the specified font.

All the metric and layout calculations will be done in terms of the paint device, paintdevice. If paintdevice is 0 the calculations will be done in screen metrics.

QTextLayout.__init__ (self, QTextBlock b)

list-of-QTextLayout.FormatRange QTextLayout.additionalFormats (self)

Returns the list of additional formats supported by the text layout.

See also setAdditionalFormats() and clearAdditionalFormats().

QTextLayout.beginLayout (self)

Begins the layout process.

See also endLayout().

QRectF QTextLayout.boundingRect (self)

The smallest rectangle that contains all the lines in the layout.

bool QTextLayout.cacheEnabled (self)

Returns true if the complete layout information is cached; otherwise returns false.

See also setCacheEnabled().

QTextLayout.clearAdditionalFormats (self)

Clears the list of additional formats supported by the text layout.

See also additionalFormats() and setAdditionalFormats().

QTextLayout.clearLayout (self)

Clears the line information in the layout. After having called this function, lineCount() returns 0.

This function was introduced in Qt 4.4.

QTextLine QTextLayout.createLine (self)

Returns a new text line to be laid out if there is text to be inserted into the layout; otherwise returns an invalid text line.

The text layout creates a new line object that starts after the last line in the layout, or at the beginning if the layout is empty. The layout maintains an internal cursor, and each line is filled with text from the cursor position onwards when the QTextLine.setLineWidth() function is called.

Once QTextLine.setLineWidth() is called, a new line can be created and filled with text. Repeating this process will lay out the whole block of text contained in the QTextLayout. If there is no text left to be inserted into the layout, the QTextLine returned will not be valid (isValid() will return false).

Qt.CursorMoveStyle QTextLayout.cursorMoveStyle (self)

The cursor movement style of this QTextLayout. The default is Qt.LogicalMoveStyle.

This function was introduced in Qt 4.8.

See also setCursorMoveStyle().

QTextLayout.draw (self, QPainter p, QPointF pos, list-of-QTextLayout.FormatRange selections = list-of-QTextLayout.FormatRange, QRectF clip = QRectF())

Draws the whole layout on the painter p at the position specified by pos. The rendered layout includes the given selections and is clipped within the rectangle specified by clip.

QTextLayout.drawCursor (self, QPainter p, QPointF pos, int cursorPosition)

Draws a text cursor with the current pen and the specified width at the given position using the painter specified. The corresponding position within the text is specified by cursorPosition.

QTextLayout.drawCursor (self, QPainter p, QPointF pos, int cursorPosition, int width)

This is an overloaded function.

Draws a text cursor with the current pen at the given position using the painter specified. The corresponding position within the text is specified by cursorPosition.

QTextLayout.endLayout (self)

Ends the layout process.

See also beginLayout().

QFont QTextLayout.font (self)

Returns the current font that is used for the layout, or a default font if none is set.

See also setFont().

list-of-QGlyphRun QTextLayout.glyphRuns (self)

Returns the glyph indexes and positions for all glyphs in this QTextLayout. This is an expensive function, and should not be called in a time sensitive context.

This function was introduced in Qt 4.8.

See also draw() and QPainter.drawGlyphRun().

bool QTextLayout.isValidCursorPosition (self, int pos)

/ Returns true if position pos is a valid cursor position.

In a Unicode context some positions in the text are not valid cursor positions, because the position is inside a Unicode surrogate or a grapheme cluster.

A grapheme cluster is a sequence of two or more Unicode characters that form one indivisible entity on the screen. For example the latin character `Ä' can be represented in Unicode by two characters, `A' (0x41), and the combining diaresis (0x308). A text cursor can only validly be positioned before or after these two characters, never between them since that wouldn't make sense. In indic languages every syllable forms a grapheme cluster.

int QTextLayout.leftCursorPosition (self, int oldPos)

Returns the cursor position to the left of oldPos, next to it. The position is dependent on the visual position of characters, after bi-directional reordering.

This function was introduced in Qt 4.8.

See also rightCursorPosition() and previousCursorPosition().

QTextLine QTextLayout.lineAt (self, int i)

Returns the i-th line of text in this text layout.

See also lineCount() and lineForTextPosition().

int QTextLayout.lineCount (self)

Returns the number of lines in this text layout.

See also lineAt().

QTextLine QTextLayout.lineForTextPosition (self, int pos)

Returns the line that contains the cursor position specified by pos.

See also isValidCursorPosition() and lineAt().

float QTextLayout.maximumWidth (self)

The maximum width the layout could expand to; this is essentially the width of the entire text.

Warning: This function only returns a valid value after the layout has been done.

See also minimumWidth().

float QTextLayout.minimumWidth (self)

The minimum width the layout needs. This is the width of the layout's smallest non-breakable substring.

Warning: This function only returns a valid value after the layout has been done.

See also maximumWidth().

int QTextLayout.nextCursorPosition (self, int oldPos, CursorMode mode = QTextLayout.SkipCharacters)

Returns the next valid cursor position after oldPos that respects the given cursor mode. Returns value of oldPos, if oldPos is not a valid cursor position.

See also isValidCursorPosition() and previousCursorPosition().

QPointF QTextLayout.position (self)

The global position of the layout. This is independent of the bounding rectangle and of the layout process.

This function was introduced in Qt 4.2.

See also setPosition().

int QTextLayout.preeditAreaPosition (self)

Returns the position of the area in the text layout that will be processed before editing occurs.

See also preeditAreaText().

QString QTextLayout.preeditAreaText (self)

Returns the text that is inserted in the layout before editing occurs.

See also preeditAreaPosition().

int QTextLayout.previousCursorPosition (self, int oldPos, CursorMode mode = QTextLayout.SkipCharacters)

Returns the first valid cursor position before oldPos that respects the given cursor mode. Returns value of oldPos, if oldPos is not a valid cursor position.

See also isValidCursorPosition() and nextCursorPosition().

int QTextLayout.rightCursorPosition (self, int oldPos)

Returns the cursor position to the right of oldPos, next to it. The position is dependent on the visual position of characters, after bi-directional reordering.

This function was introduced in Qt 4.8.

See also leftCursorPosition() and nextCursorPosition().

QTextLayout.setAdditionalFormats (self, list-of-QTextLayout.FormatRange overrides)

Sets the additional formats supported by the text layout to formatList.

See also additionalFormats() and clearAdditionalFormats().

QTextLayout.setCacheEnabled (self, bool enable)

Enables caching of the complete layout information if enable is true; otherwise disables layout caching. Usually QTextLayout throws most of the layouting information away after a call to endLayout() to reduce memory consumption. If you however want to draw the laid out text directly afterwards enabling caching might speed up drawing significantly.

See also cacheEnabled().

QTextLayout.setCursorMoveStyle (self, Qt.CursorMoveStyle style)

Set the cursor movement style. If the QTextLayout is backed by a document, you can ignore this and use the option in QTextDocument, this option is for widgets like QLineEdit or custom widgets without a QTextDocument. Default value is Qt.LogicalMoveStyle.

This function was introduced in Qt 4.8.

See also cursorMoveStyle().

QTextLayout.setFont (self, QFont f)

Sets the layout's font to the given font. The layout is invalidated and must be laid out again.

See also font().

QTextLayout.setPosition (self, QPointF p)

Moves the text layout to point p.

See also position().

QTextLayout.setPreeditArea (self, int position, QString text)

Sets the position and text of the area in the layout that is processed before editing occurs.

See also preeditAreaPosition() and preeditAreaText().

QTextLayout.setText (self, QString string)

Sets the layout's text to the given string. The layout is invalidated and must be laid out again.

Notice that when using this QTextLayout as part of a QTextDocument this method will have no effect.

See also text().

QTextLayout.setTextOption (self, QTextOption option)

Sets the text option structure that controls the layout process to the given option.

See also textOption().

QString QTextLayout.text (self)

Returns the layout's text.

See also setText().

QTextOption QTextLayout.textOption (self)

Returns the current text option used to control the layout process.

See also setTextOption().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextlength.html0000644000076500000240000001506512536324515020727 0ustar philstaff00000000000000 QTextLength Class Reference
  Home · All Classes · Modules

QTextLength Class Reference
[QtGui module]

The QTextLength class encapsulates the different types of length used in a QTextDocument. More...

Types

  • enum Type { VariableLength, FixedLength, PercentageLength }

Methods

Special Methods

  • bool __eq__ (self, QTextLength other)
  • bool __ne__ (self, QTextLength other)

Detailed Description

The QTextLength class encapsulates the different types of length used in a QTextDocument.

When we specify a value for the length of an element in a text document, we often need to provide some other information so that the length is used in the way we expect. For example, when we specify a table width, the value can represent a fixed number of pixels, or it can be a percentage value. This information changes both the meaning of the value and the way it is used.

Generally, this class is used to specify table widths. These can be specified either as a fixed amount of pixels, as a percentage of the containing frame's width, or by a variable width that allows it to take up just the space it requires.


Type Documentation

QTextLength.Type

This enum describes the different types a length object can have.

Constant Value Description
QTextLength.VariableLength 0 The width of the object is variable
QTextLength.FixedLength 1 The width of the object is fixed
QTextLength.PercentageLength 2 The width of the object is in percentage of the maximum width

See also type().


Method Documentation

QTextLength.__init__ (self)

Constructs a new length object which represents a variable size.

QTextLength.__init__ (self, Type atype, float avalue)

Constructs a new length object of the given type and value.

QTextLength.__init__ (self, QVariant variant)

QTextLength.__init__ (self, QTextLength)

float QTextLength.rawValue (self)

Returns the constraint value that is specific for the type of the length. If the length is QTextLength.PercentageLength then the raw value is in percent, in the range of 0 to 100. If the length is QTextLength.FixedLength then that fixed amount is returned. For variable lengths, zero is returned.

Type QTextLength.type (self)

Returns the type of this length object.

See also QTextLength.Type.

float QTextLength.value (self, float maximumLength)

Returns the effective length, constrained by the type of the length object and the specified maximumLength.

See also type().

bool QTextLength.__eq__ (self, QTextLength other)

bool QTextLength.__ne__ (self, QTextLength other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextline.html0000644000076500000240000003765412536324515020405 0ustar philstaff00000000000000 QTextLine Class Reference
  Home · All Classes · Modules

QTextLine Class Reference
[QtGui module]

The QTextLine class represents a line of text inside a QTextLayout. More...

Types

  • enum CursorPosition { CursorBetweenCharacters, CursorOnCharacter }
  • enum Edge { Leading, Trailing }

Methods


Detailed Description

The QTextLine class represents a line of text inside a QTextLayout.

A text line is usually created by QTextLayout.createLine().

After being created, the line can be filled using the setLineWidth() or setNumColumns() functions. A line has a number of attributes including the rectangle it occupies, rect(), its coordinates, x() and y(), its textLength(), width() and naturalTextWidth(), and its ascent() and decent() relative to the text. The position of the cursor in terms of the line is available from cursorToX() and its inverse from xToCursor(). A line can be moved with setPosition().


Type Documentation

QTextLine.CursorPosition

Constant Value
QTextLine.CursorBetweenCharacters 0
QTextLine.CursorOnCharacter 1

QTextLine.Edge

Constant Value
QTextLine.Leading 0
QTextLine.Trailing 1

Method Documentation

QTextLine.__init__ (self)

Creates an invalid line.

QTextLine.__init__ (self, QTextLine)

float QTextLine.ascent (self)

Returns the line's ascent.

See also descent() and height().

(float, int cursorPos) QTextLine.cursorToX (self, int cursorPos, Edge edge = QTextLine.Leading)

Converts the cursor position cursorPos to the corresponding x position inside the line, taking account of the edge.

If cursorPos is not a valid cursor position, the nearest valid cursor position will be used instead, and cpos will be modified to point to this valid cursor position.

See also xToCursor().

float QTextLine.descent (self)

Returns the line's descent.

See also ascent() and height().

QTextLine.draw (self, QPainter painter, QPointF position, QTextLayout.FormatRange selection = None)

Draws a line on the given painter at the specified position. The selection is reserved for internal use.

float QTextLine.height (self)

Returns the line's height. This is equal to ascent() + descent() + 1 if leading is not included. If leading is included, this equals to ascent() + descent() + leading() + 1.

See also ascent(), descent(), leading(), and setLeadingIncluded().

float QTextLine.horizontalAdvance (self)

Returns the horizontal advance of the text. The advance of the text is the distance from its position to the next position at which text would naturally be drawn.

By adding the advance to the position of the text line and using this as the position of a second text line, you will be able to position the two lines side-by-side without gaps in-between.

This function was introduced in Qt 4.7.

bool QTextLine.isValid (self)

Returns true if this text line is valid; otherwise returns false.

float QTextLine.leading (self)

Returns the line's leading.

This function was introduced in Qt 4.6.

See also ascent(), descent(), and height().

bool QTextLine.leadingIncluded (self)

Returns true if positive leading is included into the line's height; otherwise returns false.

By default, leading is not included.

This function was introduced in Qt 4.6.

See also setLeadingIncluded().

int QTextLine.lineNumber (self)

Returns the position of the line in the text engine.

QRectF QTextLine.naturalTextRect (self)

Returns the rectangle covered by the line.

float QTextLine.naturalTextWidth (self)

Returns the width of the line that is occupied by text. This is always <= to width(), and is the minimum width that could be used by layout() without changing the line break position.

QPointF QTextLine.position (self)

Returns the line's position relative to the text layout's position.

See also setPosition().

QRectF QTextLine.rect (self)

Returns the line's bounding rectangle.

See also x(), y(), textLength(), and width().

QTextLine.setLeadingIncluded (self, bool included)

Includes positive leading into the line's height if included is true; otherwise does not include leading.

By default, leading is not included.

Note that negative leading is ignored, it must be handled in the code using the text lines by letting the lines overlap.

This function was introduced in Qt 4.6.

See also leadingIncluded().

QTextLine.setLineWidth (self, float width)

Lays out the line with the given width. The line is filled from its starting position with as many characters as will fit into the line. In case the text cannot be split at the end of the line, it will be filled with additional characters to the next whitespace or end of the text.

QTextLine.setNumColumns (self, int columns)

Lays out the line. The line is filled from its starting position with as many characters as are specified by numColumns. In case the text cannot be split until numColumns characters, the line will be filled with as many characters to the next whitespace or end of the text.

QTextLine.setNumColumns (self, int columns, float alignmentWidth)

Lays out the line. The line is filled from its starting position with as many characters as are specified by numColumns. In case the text cannot be split until numColumns characters, the line will be filled with as many characters to the next whitespace or end of the text. The provided alignmentWidth is used as reference width for alignment.

QTextLine.setPosition (self, QPointF pos)

Moves the line to position pos.

See also position().

int QTextLine.textLength (self)

Returns the length of the text in the line.

See also naturalTextWidth().

int QTextLine.textStart (self)

Returns the start of the line from the beginning of the string passed to the QTextLayout.

float QTextLine.width (self)

Returns the line's width as specified by the layout() function.

See also naturalTextWidth(), x(), y(), textLength(), and rect().

float QTextLine.x (self)

Returns the line's x position.

See also rect(), y(), textLength(), and width().

int QTextLine.xToCursor (self, float x, CursorPosition edge = QTextLine.CursorBetweenCharacters)

Converts the x-coordinate x, to the nearest matching cursor position, depending on the cursor position type, cpos.

See also cursorToX().

float QTextLine.y (self)

Returns the line's y position.

See also x(), rect(), textLength(), and width().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextlist.html0000644000076500000240000002072412536324515020417 0ustar philstaff00000000000000 QTextList Class Reference
  Home · All Classes · Modules

QTextList Class Reference
[QtGui module]

The QTextList class provides a decorated list of items in a QTextDocument. More...

Inherits QTextBlockGroup.

Methods

Special Methods


Detailed Description

The QTextList class provides a decorated list of items in a QTextDocument.

A list contains a sequence of text blocks, each of which is marked with a bullet point or other symbol. Multiple levels of lists can be used, and the automatic numbering feature provides support for ordered numeric and alphabetical lists.

Lists are created by using a text cursor to insert an empty list at the current position or by moving existing text into a new list. The QTextCursor.insertList() function inserts an empty block into the document at the cursor position, and makes it the first item in a list.

     QTextListFormat listFormat;
     if (list) {
         listFormat = list->format();
         listFormat.setIndent(listFormat.indent() + 1);
     }

     listFormat.setStyle(QTextListFormat.ListDisc);
     cursor.insertList(listFormat);

The QTextCursor.createList() function takes the contents of the cursor's current block and turns it into the first item of a new list.

The cursor's current list is found with QTextCursor.currentList().

The number of items in a list is given by count(). Each item can be obtained by its index in the list with the item() function. Similarly, the index of a given item can be found with itemNumber(). The text of each item can be found with the itemText() function.

Note that the items in the list may not be adjacent elements in the document. For example, the top-level items in a multi-level list will be separated by the items in lower levels of the list.

List items can be deleted by index with the removeItem() function. remove() deletes the specified item in the list.

The list's format is set with setFormat() and read with format(). The format describes the decoration of the list itself, and not the individual items.


Method Documentation

QTextList.__init__ (self, QTextDocument doc)

QTextList.add (self, QTextBlock block)

Makes the given block part of the list.

See also remove() and removeItem().

int QTextList.count (self)

Returns the number of items in the list.

QTextListFormat QTextList.format (self)

Returns the list's format.

See also setFormat().

bool QTextList.isEmpty (self)

QTextBlock QTextList.item (self, int i)

Returns the i-th text block in the list.

See also count() and itemText().

int QTextList.itemNumber (self, QTextBlock)

Returns the index of the list item that corresponds to the given block. Returns -1 if the block was not present in the list.

QString QTextList.itemText (self, QTextBlock)

Returns the text of the list item that corresponds to the given block.

QTextList.remove (self, QTextBlock)

Removes the given block from the list.

See also add() and removeItem().

QTextList.removeItem (self, int i)

Removes the item at item position i from the list. When the last item in the list is removed, the list is automatically deleted by the QTextDocument that owns it.

See also add() and remove().

QTextList.setFormat (self, QTextListFormat aformat)

Sets the list's format to format.

See also format().

QTextList.__len__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextlistformat.html0000644000076500000240000002404112536324515021624 0ustar philstaff00000000000000 QTextListFormat Class Reference
  Home · All Classes · Modules

QTextListFormat Class Reference
[
QtGui module]

The QTextListFormat class provides formatting information for lists in a QTextDocument. More...

Inherits QTextFormat.

Types

  • enum Style { ListDisc, ListCircle, ListSquare, ListDecimal, ..., ListUpperRoman }

Methods


Detailed Description

The QTextListFormat class provides formatting information for lists in a QTextDocument.

A list is composed of one or more items, represented as text blocks. The list's format specifies the appearance of items in the list. In particular, it determines the indentation and the style of each item.

The indentation of the items is an integer value that causes each item to be offset from the left margin by a certain amount. This value is read with indent() and set with setIndent().

The style used to decorate each item is set with setStyle() and can be read with the style() function. The style controls the type of bullet points and numbering scheme used for items in the list. Note that lists that use the decimal numbering scheme begin counting at 1 rather than 0.

Style properties can be set to further configure the appearance of list items; for example, the ListNumberPrefix and ListNumberSuffix properties can be used to customize the numbers used in an ordered list so that they appear as (1), (2), (3), etc.:

 QTextListFormat listFormat;

 listFormat.setStyle(QTextListFormat.ListDecimal);
 listFormat.setNumberPrefix("(");
 listFormat.setNumberSuffix(")");

 cursor.insertList(listFormat);

Type Documentation

QTextListFormat.Style

This enum describes the symbols used to decorate list items:

Constant Value Description
QTextListFormat.ListDisc -1 a filled circle
QTextListFormat.ListCircle -2 an empty circle
QTextListFormat.ListSquare -3 a filled square
QTextListFormat.ListDecimal -4 decimal values in ascending order
QTextListFormat.ListLowerAlpha -5 lower case Latin characters in alphabetical order
QTextListFormat.ListUpperAlpha -6 upper case Latin characters in alphabetical order
QTextListFormat.ListLowerRoman -7 lower case roman numerals (supports up to 4999 items only)
QTextListFormat.ListUpperRoman -8 upper case roman numerals (supports up to 4999 items only)

Method Documentation

QTextListFormat.__init__ (self)

Constructs a new list format object.

QTextListFormat.__init__ (self, QTextListFormat)

int QTextListFormat.indent (self)

Returns the list format's indentation. The indentation is multiplied by the QTextDocument.indentWidth property to get the effective indent in pixels.

See also setIndent().

bool QTextListFormat.isValid (self)

Returns true if this list format is valid; otherwise returns false.

QString QTextListFormat.numberPrefix (self)

Returns the list format's number prefix.

This function was introduced in Qt 4.8.

See also setNumberPrefix().

QString QTextListFormat.numberSuffix (self)

Returns the list format's number suffix.

This function was introduced in Qt 4.8.

See also setNumberSuffix().

QTextListFormat.setIndent (self, int aindent)

Sets the list format's indentation. The indentation is multiplied by the QTextDocument.indentWidth property to get the effective indent in pixels.

See also indent().

QTextListFormat.setNumberPrefix (self, QString np)

Sets the list format's number prefix to the string specified by numberPrefix. This can be used with all sorted list types. It does not have any effect on unsorted list types.

The default prefix is an empty string.

This function was introduced in Qt 4.8.

See also numberPrefix().

QTextListFormat.setNumberSuffix (self, QString ns)

Sets the list format's number suffix to the string specified by numberSuffix. This can be used with all sorted list types. It does not have any effect on unsorted list types.

The default suffix is ".".

This function was introduced in Qt 4.8.

See also numberSuffix().

QTextListFormat.setStyle (self, Style astyle)

Sets the list format's style.

See also style() and Style.

Style QTextListFormat.style (self)

Returns the list format's style.

See also setStyle() and Style.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextobject.html0000644000076500000240000001253112536324515020707 0ustar philstaff00000000000000 QTextObject Class Reference
  Home · All Classes · Modules

QTextObject Class Reference
[QtGui module]

The QTextObject class is a base class for different kinds of objects that can group parts of a QTextDocument together. More...

Inherits QObject.

Inherited by QTextBlockGroup and QTextFrame.

Methods


Detailed Description

The QTextObject class is a base class for different kinds of objects that can group parts of a QTextDocument together.

The common grouping text objects are lists (QTextList), frames (QTextFrame), and tables (QTextTable). A text object has an associated format() and document().

There are essentially two kinds of text objects: those that are used with blocks (block formats), and those that are used with characters (character formats). The first kind are derived from QTextBlockGroup, and the second kind from QTextFrame.

You rarely need to use this class directly. When creating custom text objects, you will also need to reimplement QTextDocument.createObject() which acts as a factory method for creating text objects.


Method Documentation

QTextObject.__init__ (self, QTextDocument doc)

Creates a new QTextObject for the given document.

Warning: This function should never be called directly, but only from QTextDocument.createObject().

QTextDocument QTextObject.document (self)

Returns the document this object belongs to.

See also format().

QTextFormat QTextObject.format (self)

Returns the text object's format.

See also setFormat() and document().

int QTextObject.formatIndex (self)

Returns the index of the object's format in the document's internal list of formats.

See also QTextDocument.allFormats().

int QTextObject.objectIndex (self)

Returns the object index of this object. This can be used together with QTextFormat.setObjectIndex().

QTextObject.setFormat (self, QTextFormat format)

Sets the text object's format.

See also format().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextobjectinterface.html0000644000076500000240000001735312536324500022571 0ustar philstaff00000000000000 QTextObjectInterface Class Reference
  Home · All Classes · Modules

QTextObjectInterface Class Reference
[QtGui module]

The QTextObjectInterface class allows drawing of custom text objects in QTextDocuments. More...

Inherited by QPyTextObject.

Methods

  • __init__ (self)
  • __init__ (self, QTextObjectInterface)
  • drawObject (self, QPainter painter, QRectF rect, QTextDocument doc, int posInDocument, QTextFormat format)
  • QSizeF intrinsicSize (self, QTextDocument doc, int posInDocument, QTextFormat format)

Detailed Description

The QTextObjectInterface class allows drawing of custom text objects in QTextDocuments.

A text object describes the structure of one or more elements in a text document; for instance, images imported from HTML are implemented using text objects. A text object knows how to lay out and draw its elements when a document is being rendered.

Qt allows custom text objects to be inserted into a document by registering a custom object type with QTextCharFormat. A QTextObjectInterface must also be implemented for this type and be registered with the QAbstractTextDocumentLayout of the document. When the object type is encountered while rendering a QTextDocument, the intrinsicSize() and drawObject() functions of the interface are called.

The following list explains the required steps of inserting a custom text object into a document:

A class implementing a text object needs to inherit both QObject and QTextObjectInterface. QObject must be the first class inherited. For instance:

 class SvgTextObject : public QObject, public QTextObjectInterface
 {
     Q_OBJECT
     Q_INTERFACES(QTextObjectInterface)

The data of a text object is usually stored in the QTextCharFormat using QTextCharFormat.setProperty(), and then retrieved with QTextCharFormat.property().

Warning: Copy and Paste operations ignore custom text objects.


Method Documentation

QTextObjectInterface.__init__ (self)

QTextObjectInterface.__init__ (self, QTextObjectInterface)

QTextObjectInterface.drawObject (self, QPainter painter, QRectF rect, QTextDocument doc, int posInDocument, QTextFormat format)

This method is abstract and should be reimplemented in any sub-class.

Draws this text object using the specified painter.

The size of the rectangle, rect, to draw in is the size previously calculated by intrinsicSize(). The rectangles position is relative to the painter.

You also get the document (doc) and the position (posInDocument) of the format in that document.

See also intrinsicSize().

QSizeF QTextObjectInterface.intrinsicSize (self, QTextDocument doc, int posInDocument, QTextFormat format)

This method is abstract and should be reimplemented in any sub-class.

The intrinsicSize() function returns the size of the text object represented by format in the given document (doc) at the given position (posInDocument).

The size calculated will be used for subsequent calls to drawObject() for this format.

See also drawObject().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextoption-flags.html0000644000076500000240000001312412536324515022042 0ustar philstaff00000000000000 QTextOption.Flags Class Reference
  Home · All Classes · Modules

QTextOption.Flags Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

Flag may be used whenever Flags is expected.


Method Documentation

Flags.__init__ (self, Flags)

Flags.__init__ (self, int)

Flags.__init__ (self)

Flags Flags.__and__ (self, int mask)

int Flags.__bool__ (self)

bool Flags.__eq__ (self, Flags f)

Flags Flags.__iand__ (self, int mask)

int Flags.__int__ (self)

Flags Flags.__invert__ (self)

Flags Flags.__ior__ (self, Flags f)

Flags Flags.__ixor__ (self, Flags f)

bool Flags.__ne__ (self, Flags f)

Flags Flags.__or__ (self, Flags f)

Flags Flags.__or__ (self, int f)

Flags Flags.__xor__ (self, Flags f)

Flags Flags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextoption-tab.html0000644000076500000240000001121612536324515021514 0ustar philstaff00000000000000 QTextOption.Tab Class Reference
  Home · All Classes · Modules

QTextOption.Tab Class Reference
[QtGui module]

This class was introduced in Qt 4.4.

Methods

Special Methods

  • bool __eq__ (self, Tab other)
  • bool __ne__ (self, Tab other)

Members


Detailed Description

Each tab definition is represented by this struct.


Method Documentation

Tab.__init__ (self)

Creates a default left tab with position 80.

Tab.__init__ (self, float pos, TabType tabType, QChar delim = QChar())

Creates a tab with the given position, tab type, and delimiter (pos, tabType, delim).

Note: delim is only used when tabType is DelimiterTab.

This function was introduced in Qt 4.7.

Tab.__init__ (self, Tab)

bool Tab.__eq__ (self, Tab other)

bool Tab.__ne__ (self, Tab other)


Member Documentation

QChar delimiter

If type is DelimitorTab; tab until this char is found in the text.

float position

Distance from the start of the paragraph. The position of a tab is from the start of the paragraph which implies that when the alignment of the paragraph is set to centered, the tab is interpreted to be moved the same distance as the left ege of the paragraph does. In case the paragraph is set to have a layoutDirection() RightToLeft the position is interpreted to be from the right side of the paragraph with higher numbers moving the tab to the left.

TabType type

Determine which type is used. In a paragraph that has layoutDirection() RightToLeft the type LeftTab will be interpreted to be a RightTab and vice versa.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextoption.html0000644000076500000240000003566412536324515020765 0ustar philstaff00000000000000 QTextOption Class Reference
  Home · All Classes · Modules

QTextOption Class Reference
[QtGui module]

The QTextOption class provides a description of general rich text properties. More...

Types

  • enum Flag { IncludeTrailingSpaces, ShowTabsAndSpaces, ShowLineAndParagraphSeparators, AddSpaceForLineAndParagraphSeparators, SuppressColors }
  • class Flags
  • class Tab
  • enum TabType { LeftTab, RightTab, CenterTab, DelimiterTab }
  • enum WrapMode { NoWrap, WordWrap, ManualWrap, WrapAnywhere, WrapAtWordBoundaryOrAnywhere }

Methods


Detailed Description

The QTextOption class provides a description of general rich text properties.

QTextOption is used to encapsulate common rich text properties in a single object. It contains information about text alignment, layout direction, word wrapping, and other standard properties associated with text rendering and layout.


Type Documentation

QTextOption.Flag

Constant Value Description
QTextOption.IncludeTrailingSpaces 0x80000000 When this option is set, QTextLine.naturalTextWidth() and naturalTextRect() will return a value that includes the width of trailing spaces in the text; otherwise this width is excluded.
QTextOption.ShowTabsAndSpaces 0x1 Visualize spaces with little dots, and tabs with little arrows.
QTextOption.ShowLineAndParagraphSeparators 0x2 Visualize line and paragraph separators with appropriate symbol characters.
QTextOption.AddSpaceForLineAndParagraphSeparators 0x4 While determining the line-break positions take into account the space added for drawing a separator character.
QTextOption.SuppressColors 0x8 Suppress all color changes in the character formats (except the main selection).

The Flags type is a typedef for QFlags<Flag>. It stores an OR combination of Flag values.

QTextOption.TabType

This enum holds the different types of tabulator

Constant Value Description
QTextOption.LeftTab 0 A left-tab
QTextOption.RightTab 1 A right-tab
QTextOption.CenterTab 2 A centered-tab
QTextOption.DelimiterTab 3 A tab stopping at a certain delimiter-character

This enum was introduced or modified in Qt 4.4.

QTextOption.WrapMode

This enum describes how text is wrapped in a document.

Constant Value Description
QTextOption.NoWrap 0 Text is not wrapped at all.
QTextOption.WordWrap 1 Text is wrapped at word boundaries.
QTextOption.ManualWrap 2 Same as QTextOption.NoWrap
QTextOption.WrapAnywhere 3 Text can be wrapped at any point on a line, even if it occurs in the middle of a word.
QTextOption.WrapAtWordBoundaryOrAnywhere 4 If possible, wrapping occurs at a word boundary; otherwise it will occur at the appropriate point on the line, even in the middle of a word.

Method Documentation

QTextOption.__init__ (self)

Constructs a text option with default properties for text. The text alignment property is set to Qt.AlignLeft. The word wrap property is set to QTextOption.WordWrap. The using of design metrics flag is set to false.

QTextOption.__init__ (self, Qt.Alignment alignment)

Constructs a text option with the given alignment for text. The word wrap property is set to QTextOption.WordWrap. The using of design metrics flag is set to false.

QTextOption.__init__ (self, QTextOption o)

Construct a copy of the other text option.

Qt.Alignment QTextOption.alignment (self)

Returns the text alignment defined by the option.

See also setAlignment().

Flags QTextOption.flags (self)

Returns the flags associated with the option.

See also setFlags().

QTextOption.setAlignment (self, Qt.Alignment aalignment)

Sets the option's text alignment to the specified alignment.

See also alignment().

QTextOption.setFlags (self, Flags aflags)

Sets the flags associated with the option to the given flags.

See also flags().

QTextOption.setTabArray (self, list-of-float tabStops)

Sets the tab positions for the text layout to those specified by tabStops.

See also tabArray(), setTabStop(), and setTabs().

QTextOption.setTabs (self, list-of-QTextOption.Tab tabStops)

Set the Tab properties to tabStops.

See also tabStop() and tabs().

QTextOption.setTabStop (self, float atabStop)

Sets the default distance in device units between tab stops to the value specified by tabStop.

See also tabStop(), setTabArray(), setTabs(), and tabs().

QTextOption.setTextDirection (self, Qt.LayoutDirection aDirection)

Sets the direction of the text layout defined by the option to the given direction.

See also textDirection().

QTextOption.setUseDesignMetrics (self, bool b)

If enable is true then the layout will use design metrics; otherwise it will use the metrics of the paint device (which is the default behavior).

See also useDesignMetrics().

QTextOption.setWrapMode (self, WrapMode wrap)

Sets the option's text wrap mode to the given mode.

See also wrapMode().

list-of-float QTextOption.tabArray (self)

Returns a list of tab positions defined for the text layout.

See also setTabArray() and tabStop().

list-of-QTextOption.Tab QTextOption.tabs (self)

Returns a list of tab positions defined for the text layout.

This function was introduced in Qt 4.4.

See also tabStop(), setTabs(), and setTabStop().

float QTextOption.tabStop (self)

Returns the distance in device units between tab stops. Convenient function for the above method

See also setTabStop(), tabArray(), setTabs(), and tabs().

Qt.LayoutDirection QTextOption.textDirection (self)

Returns the direction of the text layout defined by the option.

See also setTextDirection().

bool QTextOption.useDesignMetrics (self)

Returns true if the layout uses design rather than device metrics; otherwise returns false.

See also setUseDesignMetrics().

WrapMode QTextOption.wrapMode (self)

Returns the text wrap mode defined by the option.

See also setWrapMode().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextstream-numberflags.html0000644000076500000240000001417612536324475023253 0ustar philstaff00000000000000 QTextStream.NumberFlags Class Reference
  Home · All Classes · Modules

QTextStream.NumberFlags Class Reference
[QtCore module]

Methods

Special Methods


Detailed Description

NumberFlag may be used whenever NumberFlags is expected.


Method Documentation

NumberFlags.__init__ (self, NumberFlags)

NumberFlags.__init__ (self, int)

NumberFlags.__init__ (self)

NumberFlags NumberFlags.__and__ (self, int mask)

int NumberFlags.__bool__ (self)

bool NumberFlags.__eq__ (self, NumberFlags f)

NumberFlags NumberFlags.__iand__ (self, int mask)

int NumberFlags.__int__ (self)

NumberFlags NumberFlags.__invert__ (self)

NumberFlags NumberFlags.__ior__ (self, NumberFlags f)

NumberFlags NumberFlags.__ixor__ (self, NumberFlags f)

bool NumberFlags.__ne__ (self, NumberFlags f)

NumberFlags NumberFlags.__or__ (self, NumberFlags f)

NumberFlags NumberFlags.__or__ (self, int f)

NumberFlags NumberFlags.__xor__ (self, NumberFlags f)

NumberFlags NumberFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtextstream.html0000644000076500000240000014562112536324475020750 0ustar philstaff00000000000000 QTextStream Class Reference
  Home · All Classes · Modules

QTextStream Class Reference
[QtCore module]

The QTextStream class provides a convenient interface for reading and writing text. More...

Types

  • enum FieldAlignment { AlignLeft, AlignRight, AlignCenter, AlignAccountingStyle }
  • enum NumberFlag { ShowBase, ForcePoint, ForceSign, UppercaseBase, UppercaseDigits }
  • enum RealNumberNotation { SmartNotation, FixedNotation, ScientificNotation }
  • enum Status { Ok, ReadPastEnd, ReadCorruptData, WriteFailed }

Methods

Special Methods


Detailed Description

The QTextStream class provides a convenient interface for reading and writing text.

QTextStream can operate on a QIODevice, a QByteArray or a QString. Using QTextStream's streaming operators, you can conveniently read and write words, lines and numbers. For generating text, QTextStream supports formatting options for field padding and alignment, and formatting of numbers. Example:

 QFile data("output.txt");
 if (data.open(QFile.WriteOnly | QFile.Truncate)) {
     QTextStream out(&data);
     out << "Result: " << qSetFieldWidth(10) << left << 3.14 << 2.7;
     // writes "Result: 3.14      2.7       "
 }

It's also common to use QTextStream to read console input and write console output. QTextStream is locale aware, and will automatically decode standard input using the correct codec. Example:

 QTextStream stream(stdin);
 QString line;
 do {
     line = stream.readLine();
 } while (!line.isNull());

Besides using QTextStream's constructors, you can also set the device or string QTextStream operates on by calling setDevice() or setString(). You can seek to a position by calling seek(), and atEnd() will return true when there is no data left to be read. If you call flush(), QTextStream will empty all data from its write buffer into the device and call flush() on the device.

Internally, QTextStream uses a Unicode based buffer, and QTextCodec is used by QTextStream to automatically support different character sets. By default, QTextCodec.codecForLocale() is used for reading and writing, but you can also set the codec by calling setCodec(). Automatic Unicode detection is also supported. When this feature is enabled (the default behavior), QTextStream will detect the UTF-16 or the UTF-32 BOM (Byte Order Mark) and switch to the appropriate UTF codec when reading. QTextStream does not write a BOM by default, but you can enable this by calling setGenerateByteOrderMark(true). When QTextStream operates on a QString directly, the codec is disabled.

There are three general ways to use QTextStream when reading text files:

  • Chunk by chunk, by calling readLine() or readAll().
  • Word by word. QTextStream supports streaming into QStrings, QByteArrays and char* buffers. Words are delimited by space, and leading white space is automatically skipped.
  • Character by character, by streaming into QChar or char types. This method is often used for convenient input handling when parsing files, independent of character encoding and end-of-line semantics. To skip white space, call skipWhiteSpace().

Since the text stream uses a buffer, you should not read from the stream using the implementation of a superclass. For instance, if you have a QFile and read from it directly using QFile.readLine() instead of using the stream, the text stream's internal position will be out of sync with the file's position.

By default, when reading numbers from a stream of text, QTextStream will automatically detect the number's base representation. For example, if the number starts with "0x", it is assumed to be in hexadecimal form. If it starts with the digits 1-9, it is assumed to be in decimal form, and so on. You can set the integer base, thereby disabling the automatic detection, by calling setIntegerBase(). Example:

 QTextStream in("0x50 0x20");
 int firstNumber, secondNumber;

 in >> firstNumber;             // firstNumber == 80
 in >> dec >> secondNumber;     // secondNumber == 0

 char ch;
 in >> ch;                      // ch == 'x'

QTextStream supports many formatting options for generating text. You can set the field width and pad character by calling setFieldWidth() and setPadChar(). Use setFieldAlignment() to set the alignment within each field. For real numbers, call setRealNumberNotation() and setRealNumberPrecision() to set the notation (SmartNotation, ScientificNotation, FixedNotation) and precision in digits of the generated number. Some extra number formatting options are also available through setNumberFlags().

Like <iostream> in the standard C++ library, QTextStream also defines several global manipulator functions:

Manipulator Description
bin Same as setIntegerBase(2).
oct Same as setIntegerBase(8).
dec Same as setIntegerBase(10).
hex Same as setIntegerBase(16).
showbase Same as setNumberFlags(numberFlags() | ShowBase).
forcesign Same as setNumberFlags(numberFlags() | ForceSign).
forcepoint Same as setNumberFlags(numberFlags() | ForcePoint).
noshowbase Same as setNumberFlags(numberFlags() & ~ShowBase).
noforcesign Same as setNumberFlags(numberFlags() & ~ForceSign).
noforcepoint Same as setNumberFlags(numberFlags() & ~ForcePoint).
uppercasebase Same as setNumberFlags(numberFlags() | UppercaseBase).
uppercasedigits Same as setNumberFlags(numberFlags() | UppercaseDigits).
lowercasebase Same as setNumberFlags(numberFlags() & ~UppercaseBase).
lowercasedigits Same as setNumberFlags(numberFlags() & ~UppercaseDigits).
fixed Same as setRealNumberNotation(FixedNotation).
scientific Same as setRealNumberNotation(ScientificNotation).
left Same as setFieldAlignment(AlignLeft).
right Same as setFieldAlignment(AlignRight).
center Same as setFieldAlignment(AlignCenter).
endl Same as operator<<('\n') and flush().
flush Same as flush().
reset Same as reset().
ws Same as skipWhiteSpace().
bom Same as setGenerateByteOrderMark(true).

In addition, Qt provides three global manipulators that take a parameter: qSetFieldWidth(), qSetPadChar(), and qSetRealNumberPrecision().


Type Documentation

QTextStream.FieldAlignment

This enum specifies how to align text in fields when the field is wider than the text that occupies it.

Constant Value Description
QTextStream.AlignLeft 0 Pad on the right side of fields.
QTextStream.AlignRight 1 Pad on the left side of fields.
QTextStream.AlignCenter 2 Pad on both sides of field.
QTextStream.AlignAccountingStyle 3 Same as AlignRight, except that the sign of a number is flush left.

See also setFieldAlignment().

QTextStream.NumberFlag

This enum specifies various flags that can be set to affect the output of integers, floats, and doubles.

Constant Value Description
QTextStream.ShowBase 0x1 Show the base as a prefix if the base is 16 ("0x"), 8 ("0"), or 2 ("0b").
QTextStream.ForcePoint 0x2 Always put the decimal separator in numbers, even if there are no decimals.
QTextStream.ForceSign 0x4 Always put the sign in numbers, even for positive numbers.
QTextStream.UppercaseBase 0x8 Use uppercase versions of base prefixes ("0X", "0B").
QTextStream.UppercaseDigits 0x10 Use uppercase letters for expressing digits 10 to 35 instead of lowercase.

The NumberFlags type is a typedef for QFlags<NumberFlag>. It stores an OR combination of NumberFlag values.

See also setNumberFlags().

QTextStream.RealNumberNotation

This enum specifies which notations to use for expressing float and double as strings.

Constant Value Description
QTextStream.ScientificNotation 2 Scientific notation (printf()'s %e flag).
QTextStream.FixedNotation 1 Fixed-point notation (printf()'s %f flag).
QTextStream.SmartNotation 0 Scientific or fixed-point notation, depending on which makes most sense (printf()'s %g flag).

See also setRealNumberNotation().

QTextStream.Status

This enum describes the current status of the text stream.

Constant Value Description
QTextStream.Ok 0 The text stream is operating normally.
QTextStream.ReadPastEnd 1 The text stream has read past the end of the data in the underlying device.
QTextStream.ReadCorruptData 2 The text stream has read corrupt data.
QTextStream.WriteFailed 3 The text stream cannot write to the underlying device.

See also status().


Method Documentation

QTextStream.__init__ (self)

Constructs a QTextStream. Before you can use it for reading or writing, you must assign a device or a string.

See also setDevice() and setString().

QTextStream.__init__ (self, QIODevice device)

Constructs a QTextStream that operates on device.

QTextStream.__init__ (self, QString string, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Constructs a QTextStream that operates on fileHandle, using openMode to define the open mode. Internally, a QFile is created to handle the FILE pointer.

This constructor is useful for working directly with the common FILE based input and output streams: stdin, stdout and stderr. Example:

 QString str;
 QTextStream in(stdin);
 in >> str;

QTextStream.__init__ (self, QByteArray array, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Constructs a QTextStream that operates on string, using openMode to define the open mode.

bool QTextStream.atEnd (self)

Returns true if there is no more data to be read from the QTextStream; otherwise returns false. This is similar to, but not the same as calling QIODevice.atEnd(), as QTextStream also takes into account its internal Unicode buffer.

bool QTextStream.autoDetectUnicode (self)

Returns true if automatic Unicode detection is enabled, otherwise returns false. Automatic Unicode detection is enabled by default.

See also setAutoDetectUnicode() and setCodec().

QTextCodec QTextStream.codec (self)

Returns the codec that is current assigned to the stream.

See also setCodec(), setAutoDetectUnicode(), and locale().

QIODevice QTextStream.device (self)

Returns the current device associated with the QTextStream, or 0 if no device has been assigned.

See also setDevice() and string().

FieldAlignment QTextStream.fieldAlignment (self)

Returns the current field alignment.

See also setFieldAlignment() and fieldWidth().

int QTextStream.fieldWidth (self)

Returns the current field width.

See also setFieldWidth().

QTextStream.flush (self)

Flushes any buffered data waiting to be written to the device.

If QTextStream operates on a string, this function does nothing.

bool QTextStream.generateByteOrderMark (self)

Returns true if QTextStream is set to generate the UTF BOM (Byte Order Mark) when using a UTF codec; otherwise returns false. UTF BOM generation is set to false by default.

See also setGenerateByteOrderMark().

int QTextStream.integerBase (self)

Returns the current base of integers. 0 means that the base is detected when reading, or 10 (decimal) when generating numbers.

See also setIntegerBase(), QString.number(), and numberFlags().

QLocale QTextStream.locale (self)

Returns the locale for this stream. The default locale is C.

This function was introduced in Qt 4.5.

See also setLocale().

NumberFlags QTextStream.numberFlags (self)

Returns the current number flags.

See also setNumberFlags(), integerBase(), and realNumberNotation().

QChar QTextStream.padChar (self)

Returns the current pad character.

See also setPadChar() and setFieldWidth().

int QTextStream.pos (self)

Returns the device position corresponding to the current position of the stream, or -1 if an error occurs (e.g., if there is no device or string, or if there's a device error).

Because QTextStream is buffered, this function may have to seek the device to reconstruct a valid device position. This operation can be expensive, so you may want to avoid calling this function in a tight loop.

This function was introduced in Qt 4.2.

See also seek().

QString QTextStream.read (self, int maxlen)

Reads at most maxlen characters from the stream, and returns the data read as a QString.

This function was introduced in Qt 4.1.

See also readAll(), readLine(), and QIODevice.read().

QString QTextStream.readAll (self)

Reads the entire content of the stream, and returns it as a QString. Avoid this function when working on large files, as it will consume a significant amount of memory.

Calling readLine() is better if you do not know how much data is available.

See also readLine().

QString QTextStream.readLine (self, int maxLength = 0)

Reads one line of text from the stream, and returns it as a QString. The maximum allowed line length is set to maxlen. If the stream contains lines longer than this, then the lines will be split after maxlen characters and returned in parts.

If maxlen is 0, the lines can be of any length. A common value for maxlen is 75.

The returned line has no trailing end-of-line characters ("\n" or "\r\n"), so calling QString.trimmed() is unnecessary.

If the stream has read to the end of the file, readLine() will return a null QString. For strings, or for devices that support it, you can explicitly test for the end of the stream using atEnd().

See also readAll() and QIODevice.readLine().

RealNumberNotation QTextStream.realNumberNotation (self)

Returns the current real number notation.

See also setRealNumberNotation(), realNumberPrecision(), numberFlags(), and integerBase().

int QTextStream.realNumberPrecision (self)

Returns the current real number precision, or the number of fraction digits QTextStream will write when generating real numbers.

See also setRealNumberPrecision(), setRealNumberNotation(), realNumberNotation(), numberFlags(), and integerBase().

QTextStream.reset (self)

Resets QTextStream's formatting options, bringing it back to its original constructed state. The device, string and any buffered data is left untouched.

QTextStream.resetStatus (self)

Resets the status of the text stream.

This function was introduced in Qt 4.1.

See also QTextStream.Status, status(), and setStatus().

bool QTextStream.seek (self, int pos)

Seeks to the position pos in the device. Returns true on success; otherwise returns false.

QTextStream.setAutoDetectUnicode (self, bool enabled)

If enabled is true, QTextStream will attempt to detect Unicode encoding by peeking into the stream data to see if it can find the UTF-16 or UTF-32 BOM (Byte Order Mark). If this mark is found, QTextStream will replace the current codec with the UTF codec.

This function can be used together with setCodec(). It is common to set the codec to UTF-8, and then enable UTF-16 detection.

See also autoDetectUnicode() and setCodec().

QTextStream.setCodec (self, QTextCodec codec)

Sets the codec for this stream to codec. The codec is used for decoding any data that is read from the assigned device, and for encoding any data that is written. By default, QTextCodec.codecForLocale() is used, and automatic unicode detection is enabled.

If QTextStream operates on a string, this function does nothing.

Warning: If you call this function while the text stream is reading from an open sequential socket, the internal buffer may still contain text decoded using the old codec.

See also codec(), setAutoDetectUnicode(), and setLocale().

QTextStream.setCodec (self, str codecName)

Sets the codec for this stream to the QTextCodec for the encoding specified by codecName. Common values for codecName include "ISO 8859-1", "UTF-8", and "UTF-16". If the encoding isn't recognized, nothing happens.

Example:

 QTextStream out(&file);
 out.setCodec("UTF-8");

See also QTextCodec.codecForName() and setLocale().

QTextStream.setDevice (self, QIODevice device)

Sets the current device to device. If a device has already been assigned, QTextStream will call flush() before the old device is replaced.

Note: This function resets locale to the default locale ('C') and codec to the default codec, QTextCodec.codecForLocale().

See also device() and setString().

QTextStream.setFieldAlignment (self, FieldAlignment alignment)

Sets the field alignment to mode. When used together with setFieldWidth(), this function allows you to generate formatted output with text aligned to the left, to the right or center aligned.

See also fieldAlignment() and setFieldWidth().

QTextStream.setFieldWidth (self, int width)

Sets the current field width to width. If width is 0 (the default), the field width is equal to the length of the generated text.

Note: The field width applies to every element appended to this stream after this function has been called (e.g., it also pads endl). This behavior is different from similar classes in the STL, where the field width only applies to the next element.

See also fieldWidth() and setPadChar().

QTextStream.setGenerateByteOrderMark (self, bool generate)

If generate is true and a UTF codec is used, QTextStream will insert the BOM (Byte Order Mark) before any data has been written to the device. If generate is false, no BOM will be inserted. This function must be called before any data is written. Otherwise, it does nothing.

See also generateByteOrderMark() and bom().

QTextStream.setIntegerBase (self, int base)

Sets the base of integers to base, both for reading and for generating numbers. base can be either 2 (binary), 8 (octal), 10 (decimal) or 16 (hexadecimal). If base is 0, QTextStream will attempt to detect the base by inspecting the data on the stream. When generating numbers, QTextStream assumes base is 10 unless the base has been set explicitly.

See also integerBase(), QString.number(), and setNumberFlags().

QTextStream.setLocale (self, QLocale locale)

Sets the locale for this stream to locale. The specified locale is used for conversions between numbers and their string representations.

The default locale is C and it is a special case - the thousands group separator is not used for backward compatibility reasons.

This function was introduced in Qt 4.5.

See also locale().

QTextStream.setNumberFlags (self, NumberFlags flags)

Sets the current number flags to flags. flags is a set of flags from the NumberFlag enum, and describes options for formatting generated code (e.g., whether or not to always write the base or sign of a number).

See also numberFlags(), setIntegerBase(), and setRealNumberNotation().

QTextStream.setPadChar (self, QChar ch)

Sets the pad character to ch. The default value is the ASCII space character (' '), or QChar(0x20). This character is used to fill in the space in fields when generating text.

Example:

 QString s;
 QTextStream out(&s);
 out.setFieldWidth(10);
 out.setFieldAlignment(QTextStream.AlignCenter);
 out.setPadChar('-');
 out << "Qt" << "rocks!";

The string s contains:

 ----Qt------rocks!--

See also padChar() and setFieldWidth().

QTextStream.setRealNumberNotation (self, RealNumberNotation notation)

Sets the real number notation to notation (SmartNotation, FixedNotation, ScientificNotation). When reading and generating numbers, QTextStream uses this value to detect the formatting of real numbers.

See also realNumberNotation(), setRealNumberPrecision(), setNumberFlags(), and setIntegerBase().

QTextStream.setRealNumberPrecision (self, int precision)

Sets the precision of real numbers to precision. This value describes the number of fraction digits QTextStream should write when generating real numbers.

The precision cannot be a negative value. The default value is 6.

See also realNumberPrecision() and setRealNumberNotation().

QTextStream.setStatus (self, Status status)

Sets the status of the text stream to the status given.

Subsequent calls to setStatus() are ignored until resetStatus() is called.

This function was introduced in Qt 4.1.

See also Status, status(), and resetStatus().

QTextStream.setString (self, QString string, QIODevice.OpenMode mode = QIODevice.ReadWrite)

Sets the current string to string, using the given openMode. If a device has already been assigned, QTextStream will call flush() before replacing it.

See also string() and setDevice().

QTextStream.skipWhiteSpace (self)

Reads and discards whitespace from the stream until either a non-space character is detected, or until atEnd() returns true. This function is useful when reading a stream character by character.

Whitespace characters are all characters for which QChar.isSpace() returns true.

See also operator>>().

Status QTextStream.status (self)

Returns the status of the text stream.

See also QTextStream.Status, setStatus(), and resetStatus().

QString QTextStream.string (self)

Returns the current string assigned to the QTextStream, or 0 if no string has been assigned.

See also setString() and device().

QTextStream __lshift__ (self, QDomNode)

This method is only available if the QtXml module is imported.

QTextStream __lshift__ (self, QSplitter)

This method is only available if the QtGui module is imported.

QTextStream __rshift__ (self, QSplitter)

This method is only available if the QtGui module is imported.

QTextStream QTextStream.__lshift__ (self, float f)

QTextStream QTextStream.__lshift__ (self, bool b)

QTextStream QTextStream.__lshift__ (self, int i)

QTextStream QTextStream.__lshift__ (self, int i)

QTextStream QTextStream.__lshift__ (self, int i)

QTextStream QTextStream.__lshift__ (self, QString s)

QTextStream QTextStream.__lshift__ (self, QByteArray array)

QTextStream QTextStream.__lshift__ (self, QTextStreamManipulator m)

QTextStream QTextStream.__rshift__ (self, QChar ch)

QTextStream QTextStream.__rshift__ (self, QString s)

QTextStream QTextStream.__rshift__ (self, QByteArray array)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtexttable.html0000644000076500000240000004144212536324515020533 0ustar philstaff00000000000000 QTextTable Class Reference
  Home · All Classes · Modules

QTextTable Class Reference
[QtGui module]

The QTextTable class represents a table in a QTextDocument. More...

Inherits QTextFrame.

Methods


Detailed Description

The QTextTable class represents a table in a QTextDocument.

A table is a group of cells ordered into rows and columns. Each table contains at least one row and one column. Each cell contains a block, and is surrounded by a frame.

Tables are usually created and inserted into a document with the QTextCursor.insertTable() function. For example, we can insert a table with three rows and two columns at the current cursor position in an editor using the following lines of code:

     QTextCursor cursor(editor->textCursor());
     cursor.movePosition(QTextCursor.Start);

     QTextTable *table = cursor.insertTable(rows, columns, tableFormat);

The table format is either defined when the table is created or changed later with setFormat().

The table currently being edited by the cursor is found with QTextCursor.currentTable(). This allows its format or dimensions to be changed after it has been inserted into a document.

A table's size can be changed with resize(), or by using insertRows(), insertColumns(), removeRows(), or removeColumns(). Use cellAt() to retrieve table cells.

The starting and ending positions of table rows can be found by moving a cursor within a table, and using the rowStart() and rowEnd() functions to obtain cursors at the start and end of each row.

Rows and columns within a QTextTable can be merged and split using the mergeCells() and splitCell() functions. However, only cells that span multiple rows or columns can be split. (Merging or splitting does not increase or decrease the number of rows and columns.)

Note that if you have merged multiple columns and rows into one cell, you will not be able to split the merged cell into new cells spanning over more than one row or column. To be able to split cells spanning over several rows and columns you need to do this over several iterations.

Original Table Suppose we have a 2x3 table of names and addresses. To merge both columns in the first row we invoke mergeCells() with row = 0, column = 0, numRows = 1 and numColumns = 2.
     table->mergeCells(0, 0, 1, 2);
This gives us the following table. To split the first row of the table back into two cells, we invoke the splitCell() function with numRows and numCols = 1.
     table->splitCell(0, 0, 1, 1);
Split Table This results in the original table.

Method Documentation

QTextTable.__init__ (self, QTextDocument doc)

QTextTable.appendColumns (self, int count)

Appends count columns at the right side of the table.

This function was introduced in Qt 4.5.

See also insertColumns(), insertRows(), resize(), removeRows(), removeColumns(), and appendRows().

QTextTable.appendRows (self, int count)

Appends count rows at the bottom of the table.

This function was introduced in Qt 4.5.

See also insertColumns(), insertRows(), resize(), removeRows(), removeColumns(), and appendColumns().

QTextTableCell QTextTable.cellAt (self, int row, int col)

Returns the table cell at the given row and column in the table.

See also columns() and rows().

QTextTableCell QTextTable.cellAt (self, int position)

This is an overloaded function.

Returns the table cell that contains the character at the given position in the document.

QTextTableCell QTextTable.cellAt (self, QTextCursor c)

This is an overloaded function.

Returns the table cell containing the given cursor.

int QTextTable.columns (self)

Returns the number of columns in the table.

See also rows().

QTextTableFormat QTextTable.format (self)

Returns the table's format.

See also setFormat().

QTextTable.insertColumns (self, int pos, int num)

Inserts a number of columns before the column with the specified index.

See also insertRows(), resize(), removeRows(), removeColumns(), appendRows(), and appendColumns().

QTextTable.insertRows (self, int pos, int num)

Inserts a number of rows before the row with the specified index.

See also resize(), insertColumns(), removeRows(), removeColumns(), appendRows(), and appendColumns().

QTextTable.mergeCells (self, int row, int col, int numRows, int numCols)

Merges the cell at the specified row and column with the adjacent cells into one cell. The new cell will span numRows rows and numCols columns. If numRows or numCols is less than the current number of rows or columns the cell spans then this method does nothing.

This function was introduced in Qt 4.1.

See also splitCell().

QTextTable.mergeCells (self, QTextCursor cursor)

This is an overloaded function.

Merges the cells selected by the provided cursor.

This function was introduced in Qt 4.1.

See also splitCell().

QTextTable.removeColumns (self, int pos, int num)

Removes a number of columns starting with the column at the specified index.

See also insertRows(), insertColumns(), removeRows(), resize(), appendRows(), and appendColumns().

QTextTable.removeRows (self, int pos, int num)

Removes a number of rows starting with the row at the specified index.

See also insertRows(), insertColumns(), resize(), removeColumns(), appendRows(), and appendColumns().

QTextTable.resize (self, int rows, int cols)

Resizes the table to contain the required number of rows and columns.

See also insertRows(), insertColumns(), removeRows(), and removeColumns().

QTextCursor QTextTable.rowEnd (self, QTextCursor c)

Returns a cursor pointing to the end of the row that contains the given cursor.

See also rowStart().

int QTextTable.rows (self)

Returns the number of rows in the table.

See also columns().

QTextCursor QTextTable.rowStart (self, QTextCursor c)

Returns a cursor pointing to the start of the row that contains the given cursor.

See also rowEnd().

QTextTable.setFormat (self, QTextTableFormat aformat)

Sets the table's format.

See also format().

QTextTable.splitCell (self, int row, int col, int numRows, int numCols)

Splits the specified cell at row and column into an array of multiple cells with dimensions specified by numRows and numCols.

Note: It is only possible to split cells that span multiple rows or columns, such as rows that have been merged using mergeCells().

This function was introduced in Qt 4.1.

See also mergeCells().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtexttablecell.html0000644000076500000240000002063212536324515021371 0ustar philstaff00000000000000 QTextTableCell Class Reference
  Home · All Classes · Modules

QTextTableCell Class Reference
[QtGui module]

The QTextTableCell class represents the properties of a cell in a QTextTable. More...

Methods

Special Methods

  • bool __eq__ (self, QTextTableCell other)
  • bool __ne__ (self, QTextTableCell other)

Detailed Description

The QTextTableCell class represents the properties of a cell in a QTextTable.

Table cells are pieces of document structure that belong to a table. The table orders cells into particular rows and columns; cells can also span multiple columns and rows.

Cells are usually created when a table is inserted into a document with QTextCursor.insertTable(), but they are also created and destroyed when a table is resized.

Cells contain information about their location in a table; you can obtain the row() and column() numbers of a cell, and its rowSpan() and columnSpan().

The format() of a cell describes the default character format of its contents. The firstCursorPosition() and lastCursorPosition() functions are used to obtain the extent of the cell in the document.


Method Documentation

QTextTableCell.__init__ (self)

Constructs an invalid table cell.

See also isValid().

QTextTableCell.__init__ (self, QTextTableCell o)

Copy constructor. Creates a new QTextTableCell object based on the other cell.

int QTextTableCell.column (self)

Returns the number of the column in the table that contains this cell.

See also row().

int QTextTableCell.columnSpan (self)

Returns the number of columns this cell spans. The default is 1.

See also rowSpan().

QTextCursor QTextTableCell.firstCursorPosition (self)

Returns the first valid cursor position in this cell.

See also lastCursorPosition().

QTextCharFormat QTextTableCell.format (self)

Returns the cell's character format.

See also setFormat().

bool QTextTableCell.isValid (self)

Returns true if this is a valid table cell; otherwise returns false.

QTextCursor QTextTableCell.lastCursorPosition (self)

Returns the last valid cursor position in this cell.

See also firstCursorPosition().

int QTextTableCell.row (self)

Returns the number of the row in the table that contains this cell.

See also column().

int QTextTableCell.rowSpan (self)

Returns the number of rows this cell spans. The default is 1.

See also columnSpan().

QTextTableCell.setFormat (self, QTextCharFormat format)

Sets the cell's character format to format. This can for example be used to change the background color of the entire cell:

QTextTableCell cell = table->cellAt(2, 3); QTextCharFormat format = cell.format(); format.setBackground(Qt.blue); cell.setFormat(format);

Note that the cell's row or column span cannot be changed through this function. You have to use QTextTable.mergeCells and QTextTable.splitCell instead.

This function was introduced in Qt 4.2.

See also format().

int QTextTableCell.tableCellFormatIndex (self)

Returns the index of the tableCell's format in the document's internal list of formats.

This function was introduced in Qt 4.5.

See also QTextDocument.allFormats().

bool QTextTableCell.__eq__ (self, QTextTableCell other)

bool QTextTableCell.__ne__ (self, QTextTableCell other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtexttablecellformat.html0000644000076500000240000002243212536324515022602 0ustar philstaff00000000000000 QTextTableCellFormat Class Reference
  Home · All Classes · Modules

QTextTableCellFormat Class Reference
[QtGui module]

The QTextTableCellFormat class provides formatting information for table cells in a QTextDocument. More...

Inherits QTextCharFormat.

Methods


Detailed Description

The QTextTableCellFormat class provides formatting information for table cells in a QTextDocument.

The table cell format of a table cell in a document specifies the visual properties of the table cell.

The padding properties of a table cell are controlled by setLeftPadding(), setRightPadding(), setTopPadding(), and setBottomPadding(). All the paddings can be set at once using setPadding().


Method Documentation

QTextTableCellFormat.__init__ (self)

Constructs a new table cell format object.

This function was introduced in Qt 4.4.

QTextTableCellFormat.__init__ (self, QTextTableCellFormat)

float QTextTableCellFormat.bottomPadding (self)

Gets the bottom padding of the table cell.

This function was introduced in Qt 4.4.

See also setBottomPadding(), leftPadding(), rightPadding(), and topPadding().

bool QTextTableCellFormat.isValid (self)

Returns true if this table cell format is valid; otherwise returns false.

This function was introduced in Qt 4.4.

float QTextTableCellFormat.leftPadding (self)

Gets the left padding of the table cell.

This function was introduced in Qt 4.4.

See also setLeftPadding(), rightPadding(), topPadding(), and bottomPadding().

float QTextTableCellFormat.rightPadding (self)

Gets the right padding of the table cell.

This function was introduced in Qt 4.4.

See also setRightPadding(), leftPadding(), topPadding(), and bottomPadding().

QTextTableCellFormat.setBottomPadding (self, float padding)

Sets the bottom padding of the table cell.

This function was introduced in Qt 4.4.

See also bottomPadding(), setLeftPadding(), setRightPadding(), and setTopPadding().

QTextTableCellFormat.setLeftPadding (self, float padding)

Sets the left padding of the table cell.

This function was introduced in Qt 4.4.

See also leftPadding(), setRightPadding(), setTopPadding(), and setBottomPadding().

QTextTableCellFormat.setPadding (self, float padding)

Sets the left, right, top, and bottom padding of the table cell.

This function was introduced in Qt 4.4.

See also setLeftPadding(), setRightPadding(), setTopPadding(), and setBottomPadding().

QTextTableCellFormat.setRightPadding (self, float padding)

Sets the right padding of the table cell.

This function was introduced in Qt 4.4.

See also rightPadding(), setLeftPadding(), setTopPadding(), and setBottomPadding().

QTextTableCellFormat.setTopPadding (self, float padding)

Sets the top padding of the table cell.

This function was introduced in Qt 4.4.

See also topPadding(), setLeftPadding(), setRightPadding(), and setBottomPadding().

float QTextTableCellFormat.topPadding (self)

Gets the top padding of the table cell.

This function was introduced in Qt 4.4.

See also setTopPadding(), leftPadding(), rightPadding(), and bottomPadding().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtexttableformat.html0000644000076500000240000002477112536324515021752 0ustar philstaff00000000000000 QTextTableFormat Class Reference
  Home · All Classes · Modules

QTextTableFormat Class Reference
[QtGui module]

The QTextTableFormat class provides formatting information for tables in a QTextDocument. More...

Inherits QTextFrameFormat.

Methods


Detailed Description

The QTextTableFormat class provides formatting information for tables in a QTextDocument.

A table is a group of cells ordered into rows and columns. Each table contains at least one row and one column. Each cell contains a block. Tables in rich text documents are formatted using the properties defined in this class.

Tables are horizontally justified within their parent frame according to the table's alignment. This can be read with the alignment() function and set with setAlignment().

Cells within the table are separated by cell spacing. The number of pixels between cells is set with setCellSpacing() and read with cellSpacing(). The contents of each cell is surrounded by cell padding. The number of pixels between each cell edge and its contents is set with setCellPadding() and read with cellPadding().

The table's background color can be read with the background() function, and can be specified with setBackground(). The background color of each cell can be set independently, and will control the color of the cell within the padded area.

The table format also provides a way to constrain the widths of the columns in the table. Columns can be assigned a fixed width, a variable width, or a percentage of the available width (see QTextLength). The columns() function returns the number of columns with constraints, and the columnWidthConstraints() function returns the constraints defined for the table. These quantities can also be set by calling setColumnWidthConstraints() with a vector containing new constraints. If no constraints are required, clearColumnWidthConstraints() can be used to remove them.


Method Documentation

QTextTableFormat.__init__ (self)

Constructs a new table format object.

QTextTableFormat.__init__ (self, QTextTableFormat)

Qt.Alignment QTextTableFormat.alignment (self)

Returns the table's alignment.

See also setAlignment().

float QTextTableFormat.cellPadding (self)

Returns the table's cell padding. This describes the distance between the border of a cell and its contents.

See also setCellPadding().

float QTextTableFormat.cellSpacing (self)

Returns the table's cell spacing. This describes the distance between adjacent cells.

See also setCellSpacing().

QTextTableFormat.clearColumnWidthConstraints (self)

Clears the column width constraints for the table.

See also columnWidthConstraints() and setColumnWidthConstraints().

int QTextTableFormat.columns (self)

Returns the number of columns specified by the table format.

list-of-QTextLength QTextTableFormat.columnWidthConstraints (self)

Returns a list of constraints used by this table format to control the appearance of columns in a table.

See also setColumnWidthConstraints().

int QTextTableFormat.headerRowCount (self)

Returns the number of rows in the table that define the header.

This function was introduced in Qt 4.2.

See also setHeaderRowCount().

bool QTextTableFormat.isValid (self)

Returns true if this table format is valid; otherwise returns false.

QTextTableFormat.setAlignment (self, Qt.Alignment aalignment)

Sets the table's alignment.

See also alignment().

QTextTableFormat.setCellPadding (self, float apadding)

Sets the cell padding for the table. This determines the distance between the border of a cell and its contents.

See also cellPadding().

QTextTableFormat.setCellSpacing (self, float spacing)

Sets the cell spacing for the table. This determines the distance between adjacent cells.

See also cellSpacing().

QTextTableFormat.setColumns (self, int acolumns)

QTextTableFormat.setColumnWidthConstraints (self, list-of-QTextLength constraints)

Sets the column width constraints for the table.

See also columnWidthConstraints() and clearColumnWidthConstraints().

QTextTableFormat.setHeaderRowCount (self, int count)

Declares the first count rows of the table as table header. The table header rows get repeated when a table is broken across a page boundary.

This function was introduced in Qt 4.2.

See also headerRowCount().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtgui.html0000644000076500000240000013640612536324470017514 0ustar philstaff00000000000000 QtGui Module
  Home · All Classes · Modules

QtGui Module

The QtGui module extends QtCore with GUI functionality. More...

Types

Module Functions

  • int qAlpha (int rgb)
  • int qBlue (int rgb)
  • qDrawBorderPixmap (QPainter painter, QRect target, QMargins margins, QPixmap pixmap)
  • qDrawPlainRect (QPainter p, int x, int y, int w, int h, QColor, int lineWidth = 1, QBrush fill = None)
  • qDrawPlainRect (QPainter p, QRect r, QColor, int lineWidth = 1, QBrush fill = None)
  • qDrawShadeLine (QPainter p, int x1, int y1, int x2, int y2, QPalette pal, bool sunken = True, int lineWidth = 1, int midLineWidth = 0)
  • qDrawShadeLine (QPainter p, QPoint p1, QPoint p2, QPalette pal, bool sunken = True, int lineWidth = 1, int midLineWidth = 0)
  • qDrawShadePanel (QPainter p, int x, int y, int w, int h, QPalette pal, bool sunken = False, int lineWidth = 1, QBrush fill = None)
  • qDrawShadePanel (QPainter p, QRect r, QPalette pal, bool sunken = False, int lineWidth = 1, QBrush fill = None)
  • qDrawShadeRect (QPainter p, int x, int y, int w, int h, QPalette pal, bool sunken = False, int lineWidth = 1, int midLineWidth = 0, QBrush fill = None)
  • qDrawShadeRect (QPainter p, QRect r, QPalette pal, bool sunken = False, int lineWidth = 1, int midLineWidth = 0, QBrush fill = None)
  • qDrawWinButton (QPainter p, int x, int y, int w, int h, QPalette pal, bool sunken = False, QBrush fill = None)
  • qDrawWinButton (QPainter p, QRect r, QPalette pal, bool sunken = False, QBrush fill = None)
  • qDrawWinPanel (QPainter p, int x, int y, int w, int h, QPalette pal, bool sunken = False, QBrush fill = None)
  • qDrawWinPanel (QPainter p, QRect r, QPalette pal, bool sunken = False, QBrush fill = None)
  • bool qFuzzyCompare (QMatrix m1, QMatrix m2)
  • bool qFuzzyCompare (QMatrix4x4 m1, QMatrix4x4 m2)
  • bool qFuzzyCompare (QQuaternion q1, QQuaternion q2)
  • bool qFuzzyCompare (QTransform t1, QTransform t2)
  • bool qFuzzyCompare (QVector2D v1, QVector2D v2)
  • bool qFuzzyCompare (QVector3D v1, QVector3D v2)
  • bool qFuzzyCompare (QVector4D v1, QVector4D v2)
  • int qGray (int r, int g, int b)
  • int qGray (int rgb)
  • int qGreen (int rgb)
  • bool qIsGray (int rgb)
  • int qRed (int rgb)
  • int qRgb (int r, int g, int b)
  • int qRgba (int r, int g, int b, int a)
  • qSwap (QBitmap value1, QBitmap value2)
  • qSwap (QBrush value1, QBrush value2)
  • qSwap (QIcon value1, QIcon value2)
  • qSwap (QImage value1, QImage value2)
  • qSwap (QKeySequence value1, QKeySequence value2)
  • qSwap (QPen value1, QPen value2)
  • qSwap (QPicture value1, QPicture value2)
  • qSwap (QPixmap value1, QPixmap value2)

Module Members


Detailed Description

The QtGui module extends QtCore with GUI functionality.

To import the module use, for example, the following statement:

from PyQt4 import QtGui

Function Documentation

int qAlpha (int rgb)

int qBlue (int rgb)

qDrawBorderPixmap (QPainter painter, QRect target, QMargins margins, QPixmap pixmap)

qDrawPlainRect (QPainter p, int x, int y, int w, int h, QColor, int lineWidth = 1, QBrush fill = None)

qDrawPlainRect (QPainter p, QRect r, QColor, int lineWidth = 1, QBrush fill = None)

qDrawShadeLine (QPainter p, int x1, int y1, int x2, int y2, QPalette pal, bool sunken = True, int lineWidth = 1, int midLineWidth = 0)

qDrawShadeLine (QPainter p, QPoint p1, QPoint p2, QPalette pal, bool sunken = True, int lineWidth = 1, int midLineWidth = 0)

qDrawShadePanel (QPainter p, int x, int y, int w, int h, QPalette pal, bool sunken = False, int lineWidth = 1, QBrush fill = None)

qDrawShadePanel (QPainter p, QRect r, QPalette pal, bool sunken = False, int lineWidth = 1, QBrush fill = None)

qDrawShadeRect (QPainter p, int x, int y, int w, int h, QPalette pal, bool sunken = False, int lineWidth = 1, int midLineWidth = 0, QBrush fill = None)

qDrawShadeRect (QPainter p, QRect r, QPalette pal, bool sunken = False, int lineWidth = 1, int midLineWidth = 0, QBrush fill = None)

qDrawWinButton (QPainter p, int x, int y, int w, int h, QPalette pal, bool sunken = False, QBrush fill = None)

qDrawWinButton (QPainter p, QRect r, QPalette pal, bool sunken = False, QBrush fill = None)

qDrawWinPanel (QPainter p, int x, int y, int w, int h, QPalette pal, bool sunken = False, QBrush fill = None)

qDrawWinPanel (QPainter p, QRect r, QPalette pal, bool sunken = False, QBrush fill = None)

bool qFuzzyCompare (QMatrix m1, QMatrix m2)

bool qFuzzyCompare (QMatrix4x4 m1, QMatrix4x4 m2)

bool qFuzzyCompare (QQuaternion q1, QQuaternion q2)

bool qFuzzyCompare (QTransform t1, QTransform t2)

bool qFuzzyCompare (QVector2D v1, QVector2D v2)

bool qFuzzyCompare (QVector3D v1, QVector3D v2)

bool qFuzzyCompare (QVector4D v1, QVector4D v2)

int qGray (int r, int g, int b)

int qGray (int rgb)

int qGreen (int rgb)

bool qIsGray (int rgb)

int qRed (int rgb)

int qRgb (int r, int g, int b)

int qRgba (int r, int g, int b, int a)

qSwap (QBitmap value1, QBitmap value2)

qSwap (QBrush value1, QBrush value2)

qSwap (QIcon value1, QIcon value2)

qSwap (QImage value1, QImage value2)

qSwap (QKeySequence value1, QKeySequence value2)

qSwap (QPen value1, QPen value2)

qSwap (QPicture value1, QPicture value2)

qSwap (QPixmap value1, QPixmap value2)

qt_x11_wait_for_window_manager (QWidget widget)


Member Documentation

QApplication qApp

This member should be treated as a constant.

int QWIDGETSIZE_MAX

This member should be treated as a constant.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qthelp.html0000644000076500000240000002705712536324470017661 0ustar philstaff00000000000000 QtHelp Module
  Home · All Classes · Modules

QtHelp Module

The QtHelp module provides classes for integrating online documentation in applications. More...

Types


Detailed Description

The QtHelp module provides classes for integrating online documentation in applications.

To import the module use, for example, the following statement:

from PyQt4 import QtHelp

Topics

Overview

The Qt help system includes tools for generating and viewing Qt help files. In addition it provides classes for accessing help contents programatically to be able to integrate online help into Qt applications.

The actual help data, meaning the table of contents, index keywords or html documents, is contained in Qt compressed help files. So, one such a help file represents usually one manual or documentation set. Since most products are more comprehensive and consist of a number of tools, one manual is rarely enough. Instead, more manuals which should be accessible at the same time, exist. Ideally, it should also be possible to reference certain points of interest of one manual to another. Therefore, the Qt help system operates on help collection files which include any number of compressed help files.

However, having collection files to merge many documentation sets may lead to some problems. For example, one index keyword may be defined in different documentations. So, when only seeing it in the index and activating it, you cannot be sure that the expected documentation will be shown. Therefore, the Qt help system offers the possibiltiy to filter the help contents after certain attributes. This requires however, that the attributes have been assigned to the help contents before the generation of the compressed help file.

As already mentioned, the Qt compressed help file contains all data, so there is no need any longer to ship all single html files. Instead, only the compressed help file and optionally the collection file has to be distributed. The collection file is optional since any existing collection file, e.g. from an older release could be used.

So, in general, there are four files interacting with the help system, two used for generating Qt help and two meant for distribution:

NameExtensionBrief Description
Qt Help Project.qhpThis is the input file for the help generator. It contains the table of contents, indices and references to the actual documentation files (*.html). In addition it defines a unique namespace for the documentation.
Qt Compressed Help.qchThe output file of the help generator. This binary file contains all the information specified in the help project file along with all compressed documentation files.
Qt Help Collection Project.qhcpIs the input file for the help collection generator. It contains references to compressed help files which should be included in the collection. It may contain various other information for customizing Qt Assistant.
Qt Help Collection.qhcThe output of the help collection generator. This is the file, the QHelpEngine operates on. It contains references to any number of compressed help files as well as additional information like custom filters.

Generating Qt Help

Building help files for the Qt help system assumes that the html documentation files already exist, i.e. the Qt help system does not offer the possibility to create html files like e.g. Doxygen.

Once the html documentents are in place, a Qt Help Project file has to be created. After specifying all relevant information in this file, it needs to be compiled by calling:

     qhelpgenerator doc.qhp -o doc.qch

The file 'doc.qch' contains then all html files in compressed form along with the table of contents and index keywords. To test if the generated file is correct, open Qt Assistant and install the file via the Settings|Documentation page.

Creating a Qt Help Collection

The first step is to create a Qt Help Collection Project file. Since a Qt help collection stores primarily references to compressed help files, the project 'mycollection.qhcp' file looks unsurprisingly simple:

     <?xml version="1.0" encoding="utf-8" ?>
     <QHelpCollectionProject version="1.0">
         <docFiles>
             <register>
                 <file>doc.qch</file>
             </register>
         </docFiles>
     </QHelpCollectionProject>

For actually creating the collection file call:

     qcollectiongenerator mycollection.qhcp -o mycollection.qhc

Instead of running two tools, one for generating the compressed help and one for generating the collection file, it is also possible to just run the qcollectiongenerator tool with a slightly modified project file instructing the generator to create the compressed help first.

     ...
     <docFiles>
         <generate>
             <file>
                 <input>doc.qhp</input>
                 <output>doc.qch</output>
             </file>
         </generate>
         <register>
             <file>doc.qch</file>
         </register>
     </docFiles>
     ...

Of course, it is possible to specify more than one file in the 'generate' or 'register' section, so any number of compressed help files can be generated and registered in one go.

Using Qt Help

Accessing the help contents can be done in two ways: Using Qt Assistant as documentation browser or using the QHelpEngine API for embedding the help contents directly in an application.

Using Qt Assistant

Qt Assistant operates on a collection file which can be specified before start up. If no collection file is given, a default one will be created and used. In either case, it is possible to register any Qt compressed help file and access the help contents.

When using Assistant as the help browser for an application, it would be desirable that it can be customized to fit better to the application and doesn't look like an independent, standalone help browser. To achieve this, several additional properties can be set in an Qt help collection file, to change e.g. the title or application icon of Qt Assistant. For more information on this topic have a look at the Qt Assistant manual.

Using QHelpEngine API

Instead of showing the help in an external application like the Qt Assistant, it is also possible to embed the online help in the application. The contents can then be retrieved via the QHelpEngine class and can be displayed in nearly any form. Showing it in a QTextBrowser is probably the most common way, but embedding it in What's This help is also perfectly possible.

Retrieving help data from the file engine does not involve a lot of code. The first step is to create an instance of the help engine. Then we ask the engine for the links assigned to the identifier, in this case "MyDialog.ChangeButton". If a link was found, meaning at least one help document exists to this topic, we get the actual help contents by calling fileData() and display the document to the user.

     QHelpEngineCore helpEngine("mycollection.qhc");
     ...

     // get all file references for the identifier
     QMap<QString, QUrl> links =
         helpEngine.linksForIdentifier(QLatin1String("MyDialog.ChangeButton"));

     // If help is available for this keyword, get the help data
     // of the first file reference.
     if (links.count()) {
         QByteArray helpData = helpEngine->fileData(links.constBegin().value());
         // show the documentation to the user
         if (!helpData.isEmpty())
             displayHelp(helpData);
     }

For further information on how to use the API, have a look at the QHelpEngine class reference.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qthread.html0000644000076500000240000007175012536324475020020 0ustar philstaff00000000000000 QThread Class Reference
  Home · All Classes · Modules

QThread Class Reference
[QtCore module]

The QThread class provides a platform-independent way to manage threads. More...

Inherits QObject.

Types

  • enum Priority { IdlePriority, LowestPriority, LowPriority, NormalPriority, ..., InheritPriority }

Methods

Static Methods

Qt Signals


Detailed Description

The QThread class provides a platform-independent way to manage threads.

A QThread object manages one thread of control within the program. QThreads begin executing in run(). By default, run() starts the event loop by calling exec_() and runs a Qt event loop inside the thread.

You can use worker objects by moving them to the thread using QObject.moveToThread().

 class Worker : public QObject
 {
     Q_OBJECT
     QThread workerThread;

 public slots:
     void doWork(const QString &parameter) {
         // ...
         emit resultReady(result);
     }

 signals:
     void resultReady(const QString &result);
 };

 class Controller : public QObject
 {
     Q_OBJECT
     QThread workerThread;
 public:
     Controller() {
         Worker *worker = new Worker;
         worker->moveToThread(&workerThread);
         connect(&workerThread, SIGNAL(finished()), worker, SLOT(deleteLater()));
         connect(this, SIGNAL(operate(QString)), worker, SLOT(doWork(QString)));
         connect(worker, SIGNAL(resultReady(QString)), this, SLOT(handleResults(QString)));
         workerThread.start();
     }
     ~Controller() {
         workerThread.quit();
         workerThread.wait();
     }
 public slots:
     void handleResults(const QString &);
 signals:
     void operate(const QString &);
 };

The code inside the Worker's slot would then execute in a separate thread. However, you are free to connect the Worker's slots to any signal, from any object, in any thread. It is safe to connect signals and slots across different threads, thanks to a mechanism called queued connections.

Another way to make code run in a separate thread, is to subclass QThread and reimplement run(). For example:

 class WorkerThread : public QThread
 {
     Q_OBJECT
     void run() {
         QString result;
         /* expensive or blocking operation  */
         emit resultReady(result);
     }
 signals:
     void resultReady(const QString &s);
 };

 void MyObject.startWorkInAThread()
 {
     WorkerThread *workerThread = new WorkerThread(this);
     connect(workerThread, SIGNAL(resultReady(QString)), this, SLOT(handleResults(QString)));
     connect(workerThread, SIGNAL(finished()), workerThread, SLOT(deleteLater()));
     workerThread->start();
 }

In that example, the thread will exit after the run function has returned. There will not be any event loop running in the thread unless you call exec_().

It is important to remember that a QThread instance lives in the old thread that instantiated it, not in the new thread that calls run(). This means that all of QThread's queued slots will execute in the old thread. Thus, a developer who wishes to invoke slots in the new thread must use the worker-object approach; new slots should not be implemented directly into a subclassed QThread.

When subclassing QThread, keep in mind that the constructor executes in the old thread while run() executes in the new thread. If a member variable is accessed from both functions, then the variable is accessed from two different threads. Check that it is safe to do so.

Note: Care must be taken when interacting with objects across different threads. See Synchronizing Threads for details.

Managing threads

QThread will notifiy you via a signal when the thread is started(), finished(), and terminated(), or you can use isFinished() and isRunning() to query the state of the thread.

You can stop the thread by calling exit() or quit(). In extreme cases, you may want to forcibly terminate() an executing thread. However, doing so is dangerous and discouraged. Please read the documentation for terminate() and setTerminationEnabled() for detailed information.

From Qt 4.8 onwards, it is possible to deallocate objects that live in a thread that has just ended, by connecting the finished() signal to QObject.deleteLater().

Use wait() to block the calling thread, until the other thread has finished execution (or until a specified time has passed).

The static functions currentThreadId() and currentThread() return identifiers for the currently executing thread. The former returns a platform specific ID for the thread; the latter returns a QThread pointer.

To choose the name that your thread will be given (as identified by the command ps -L on Linux, for example), you can call setObjectName() before starting the thread. If you don't call setObjectName(), the name given to your thread will be the class name of the runtime type of your thread object (for example, "RenderThread" in the case of the Mandelbrot Example, as that is the name of the QThread subclass). Note that this is currently not available with release builds on Windows.

QThread also provides static, platform independent sleep functions: sleep(), msleep(), and usleep() allow full second, millisecond, and microsecond resolution respectively.

Note: wait() and the sleep() functions should be unnecessary in general, since Qt is an event-driven framework. Instead of wait(), consider listening for the finished() signal. Instead of the sleep() functions, consider using QTimer.

{Mandelbrot Example}, {Semaphores Example}, {Wait Conditions Example}


Type Documentation

QThread.Priority

This enum type indicates how the operating system should schedule newly created threads.

Constant Value Description
QThread.IdlePriority 0 scheduled only when no other threads are running.
QThread.LowestPriority 1 scheduled less often than LowPriority.
QThread.LowPriority 2 scheduled less often than NormalPriority.
QThread.NormalPriority 3 the default priority of the operating system.
QThread.HighPriority 4 scheduled more often than NormalPriority.
QThread.HighestPriority 5 scheduled more often than HighPriority.
QThread.TimeCriticalPriority 6 scheduled as often as possible.
QThread.InheritPriority 7 use the same priority as the creating thread. This is the default.

Method Documentation

QThread.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QThread to manage a new thread. The parent takes ownership of the QThread. The thread does not begin executing until start() is called.

See also start().

QThread QThread.currentThread ()

Returns a pointer to a QThread which manages the currently executing thread.

int QThread.currentThreadId ()

Returns the thread handle of the currently executing thread.

Warning: The handle returned by this function is used for internal purposes and should not be used in any application code.

Warning: On Windows, the returned value is a pseudo-handle for the current thread. It can't be used for numerical comparison. i.e., this function returns the DWORD (Windows-Thread ID) returned by the Win32 function getCurrentThreadId(), not the HANDLE (Windows-Thread HANDLE) returned by the Win32 function getCurrentThread().

int QThread.exec_ (self)

Enters the event loop and waits until exit() is called, returning the value that was passed to exit(). The value returned is 0 if exit() is called via quit().

This function is meant to be called from within run(). It is necessary to call this function to start event handling.

See also quit() and exit().

QThread.exit (self, int returnCode = 0)

Tells the thread's event loop to exit with a return code.

After calling this function, the thread leaves the event loop and returns from the call to QEventLoop.exec(). The QEventLoop.exec() function returns returnCode.

By convention, a returnCode of 0 means success, any non-zero value indicates an error.

Note that unlike the C library function of the same name, this function does return to the caller -- it is event processing that stops.

No QEventLoops will be started anymore in this thread until QThread.exec() has been called again. If the eventloop in QThread.exec() is not running then the next call to QThread.exec() will also return immediately.

See also quit() and QEventLoop.

int QThread.idealThreadCount ()

Returns the ideal number of threads that can be run on the system. This is done querying the number of processor cores, both real and logical, in the system. This function returns -1 if the number of processor cores could not be detected.

bool QThread.isFinished (self)

Returns true if the thread is finished; otherwise returns false.

See also isRunning().

bool QThread.isRunning (self)

Returns true if the thread is running; otherwise returns false.

See also isFinished().

QThread.msleep (int)

Forces the current thread to sleep for msecs milliseconds.

See also sleep() and usleep().

Priority QThread.priority (self)

Returns the priority for a running thread. If the thread is not running, this function returns InheritPriority.

This function was introduced in Qt 4.1.

See also Priority, setPriority(), and start().

QThread.quit (self)

This method is also a Qt slot with the C++ signature void quit().

Tells the thread's event loop to exit with return code 0 (success). Equivalent to calling QThread.exit(0).

This function does nothing if the thread does not have an event loop.

See also exit() and QEventLoop.

QThread.run (self)

The starting point for the thread. After calling start(), the newly created thread calls this function. The default implementation simply calls exec_().

You can reimplement this function to facilitate advanced thread management. Returning from this method will end the execution of the thread.

See also start() and wait().

QThread.setPriority (self, Priority priority)

This function sets the priority for a running thread. If the thread is not running, this function does nothing and returns immediately. Use start() to start a thread with a specific priority.

The priority argument can be any value in the QThread.Priority enum except for InheritPriorty.

The effect of the priority parameter is dependent on the operating system's scheduling policy. In particular, the priority will be ignored on systems that do not support thread priorities (such as on Linux, see http://linux.die.net/man/2/sched_setscheduler for more details).

This function was introduced in Qt 4.1.

See also Priority, priority(), and start().

QThread.setStackSize (self, int stackSize)

Sets the maximum stack size for the thread to stackSize. If stackSize is greater than zero, the maximum stack size is set to stackSize bytes, otherwise the maximum stack size is automatically determined by the operating system.

Warning: Most operating systems place minimum and maximum limits on thread stack sizes. The thread will fail to start if the stack size is outside these limits.

See also stackSize().

QThread.setTerminationEnabled (bool enabled = True)

Enables or disables termination of the current thread based on the enabled parameter. The thread must have been started by QThread.

When enabled is false, termination is disabled. Future calls to QThread.terminate() will return immediately without effect. Instead, the termination is deferred until termination is enabled.

When enabled is true, termination is enabled. Future calls to QThread.terminate() will terminate the thread normally. If termination has been deferred (i.e. QThread.terminate() was called with termination disabled), this function will terminate the calling thread immediately. Note that this function will not return in this case.

See also terminate().

QThread.sleep (int)

Forces the current thread to sleep for secs seconds.

See also msleep() and usleep().

int QThread.stackSize (self)

Returns the maximum stack size for the thread (if set with setStackSize()); otherwise returns zero.

See also setStackSize().

QThread.start (self, Priority priority = QThread.InheritPriority)

This method is also a Qt slot with the C++ signature void start(QThread::Priority = QThread.InheritPriority).

Begins execution of the thread by calling run(). The operating system will schedule the thread according to the priority parameter. If the thread is already running, this function does nothing.

The effect of the priority parameter is dependent on the operating system's scheduling policy. In particular, the priority will be ignored on systems that do not support thread priorities (such as on Linux, see http://linux.die.net/man/2/sched_setscheduler for more details).

See also run() and terminate().

QThread.terminate (self)

This method is also a Qt slot with the C++ signature void terminate().

Terminates the execution of the thread. The thread may or may not be terminated immediately, depending on the operating system's scheduling policies. Listen for the terminated() signal, or use QThread.wait() after terminate(), to be sure.

When the thread is terminated, all threads waiting for the thread to finish will be woken up.

Warning: This function is dangerous and its use is discouraged. The thread can be terminated at any point in its code path. Threads can be terminated while modifying data. There is no chance for the thread to clean up after itself, unlock any held mutexes, etc. In short, use this function only if absolutely necessary.

Termination can be explicitly enabled or disabled by calling QThread.setTerminationEnabled(). Calling this function while termination is disabled results in the termination being deferred, until termination is re-enabled. See the documentation of QThread.setTerminationEnabled() for more information.

See also setTerminationEnabled().

QThread.usleep (int)

Forces the current thread to sleep for usecs microseconds.

See also sleep() and msleep().

bool QThread.wait (self, int msecs = ULONG_MAX)

Blocks the thread until either of these conditions is met:

  • The thread associated with this QThread object has finished execution (i.e. when it returns from run()). This function will return true if the thread has finished. It also returns true if the thread has not been started yet.
  • time milliseconds has elapsed. If time is ULONG_MAX (the default), then the wait will never timeout (the thread must return from run()). This function will return false if the wait timed out.

This provides similar functionality to the POSIX pthread_join() function.

See also sleep() and terminate().

QThread.yieldCurrentThread ()

Yields execution of the current thread to another runnable thread, if any. Note that the operating system decides to which thread to switch.


Qt Signal Documentation

void finished ()

This is the default overload of this signal.

This signal is emitted when the thread has finished executing.

See also started() and terminated().

void started ()

This is the default overload of this signal.

This signal is emitted when the thread starts executing.

See also finished() and terminated().

void terminated ()

This is the default overload of this signal.

This signal is emitted when the thread is terminated.

See also started() and finished().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qthreadpool.html0000644000076500000240000003053612536324475020707 0ustar philstaff00000000000000 QThreadPool Class Reference
  Home · All Classes · Modules

QThreadPool Class Reference
[QtCore module]

The QThreadPool class manages a collection of QThreads. More...

Inherits QObject.

Methods

Static Methods


Detailed Description

The QThreadPool class manages a collection of QThreads.

QThreadPool manages and recyles individual QThread objects to help reduce thread creation costs in programs that use threads. Each Qt application has one global QThreadPool object, which can be accessed by calling globalInstance().

To use one of the QThreadPool threads, subclass QRunnable and implement the run() virtual function. Then create an object of that class and pass it to QThreadPool.start().

 class HelloWorldTask : public QRunnable
 {
     void run()
     {
         qDebug() << "Hello world from thread" << QThread.currentThread();
     }
 }

 HelloWorldTask *hello = new HelloWorldTask();
 // QThreadPool takes ownership and deletes 'hello' automatically
 QThreadPool.globalInstance()->start(hello);

QThreadPool deletes the QRunnable automatically by default. Use QRunnable.setAutoDelete() to change the auto-deletion flag.

QThreadPool supports executing the same QRunnable more than once by calling tryStart(this) from within QRunnable.run(). If autoDelete is enabled the QRunnable will be deleted when the last thread exits the run function. Calling start() multiple times with the same QRunnable when autoDelete is enabled creates a race condition and is not recommended.

Threads that are unused for a certain amount of time will expire. The default expiry timeout is 30000 milliseconds (30 seconds). This can be changed using setExpiryTimeout(). Setting a negative expiry timeout disables the expiry mechanism.

Call maxThreadCount() to query the maximum number of threads to be used. If needed, you can change the limit with setMaxThreadCount(). The default maxThreadCount() is QThread.idealThreadCount(). The activeThreadCount() function returns the number of threads currently doing work.

The reserveThread() function reserves a thread for external use. Use releaseThread() when your are done with the thread, so that it may be reused. Essentially, these functions temporarily increase or reduce the active thread count and are useful when implementing time-consuming operations that are not visible to the QThreadPool.

Note that QThreadPool is a low-level class for managing threads, see QtConcurrent.run() or the other Qt Concurrent APIs for higher level alternatives.


Method Documentation

QThreadPool.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a thread pool with the given parent.

int QThreadPool.activeThreadCount (self)

int QThreadPool.expiryTimeout (self)

QThreadPool QThreadPool.globalInstance ()

Returns the global QThreadPool instance.

int QThreadPool.maxThreadCount (self)

QThreadPool.releaseThread (self)

Releases a thread previously reserved by a call to reserveThread().

Note: Calling this function without previously reserving a thread temporarily increases maxThreadCount(). This is useful when a thread goes to sleep waiting for more work, allowing other threads to continue. Be sure to call reserveThread() when done waiting, so that the thread pool can correctly maintain the activeThreadCount().

See also reserveThread().

QThreadPool.reserveThread (self)

Reserves one thread, disregarding activeThreadCount() and maxThreadCount().

Once you are done with the thread, call releaseThread() to allow it to be reused.

Note: This function will always increase the number of active threads. This means that by using this function, it is possible for activeThreadCount() to return a value greater than maxThreadCount() .

See also releaseThread().

QThreadPool.setExpiryTimeout (self, int expiryTimeout)

QThreadPool.setMaxThreadCount (self, int maxThreadCount)

QThreadPool.start (self, QRunnable runnable, int priority = 0)

Reserves a thread and uses it to run runnable, unless this thread will make the current thread count exceed maxThreadCount(). In that case, runnable is added to a run queue instead. The priority argument can be used to control the run queue's order of execution.

Note that the thread pool takes ownership of the runnable if runnable->autoDelete() returns true, and the runnable will be deleted automatically by the thread pool after the runnable->run() returns. If runnable->autoDelete() returns false, ownership of runnable remains with the caller. Note that changing the auto-deletion on runnable after calling this functions results in undefined behavior.

bool QThreadPool.tryStart (self, QRunnable runnable)

Attempts to reserve a thread to run runnable.

If no threads are available at the time of calling, then this function does nothing and returns false. Otherwise, runnable is run immediately using one available thread and this function returns true.

Note that the thread pool takes ownership of the runnable if runnable->autoDelete() returns true, and the runnable will be deleted automatically by the thread pool after the runnable->run() returns. If runnable->autoDelete() returns false, ownership of runnable remains with the caller. Note that changing the auto-deletion on runnable after calling this function results in undefined behavior.

QThreadPool.waitForDone (self)

Waits for each thread to exit and removes all threads from the thread pool.

bool QThreadPool.waitForDone (self, int msecs)

This function overloads waitForDone().

Waits up to msecs milliseconds for all threads to exit and removes all threads from the thread pool. Returns true if all threads were removed; otherwise it returns false.

This function was introduced in Qt 4.8.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtime.html0000644000076500000240000007075312536324472017506 0ustar philstaff00000000000000 QTime Class Reference
  Home · All Classes · Modules

QTime Class Reference
[QtCore module]

The QTime class provides clock time functions. More...

Methods

Static Methods

  • QTime currentTime ()
  • QTime fromString (QString string, Qt.DateFormat format = Qt.TextDate)
  • QTime fromString (QString s, QString format)
  • bool isValid (int h, int m, int s, int msec = 0)

Special Methods


Detailed Description

This class can be pickled.

A Python datetime object may be used whenever a QTime is expected.

The QTime class provides clock time functions.

A QTime object contains a clock time, i.e. the number of hours, minutes, seconds, and milliseconds since midnight. It can read the current time from the system clock and measure a span of elapsed time. It provides functions for comparing times and for manipulating a time by adding a number of milliseconds.

QTime uses the 24-hour clock format; it has no concept of AM/PM. Unlike QDateTime, QTime knows nothing about time zones or daylight savings time (DST).

A QTime object is typically created either by giving the number of hours, minutes, seconds, and milliseconds explicitly, or by using the static function currentTime(), which creates a QTime object that contains the system's local time. Note that the accuracy depends on the accuracy of the underlying operating system; not all systems provide 1-millisecond accuracy.

The hour(), minute(), second(), and msec() functions provide access to the number of hours, minutes, seconds, and milliseconds of the time. The same information is provided in textual format by the toString() function.

QTime provides a full set of operators to compare two QTime objects. One time is considered smaller than another if it is earlier than the other.

The time a given number of seconds or milliseconds later than a given time can be found using the addSecs() or addMSecs() functions. Correspondingly, the number of seconds or milliseconds between two times can be found using secsTo() or msecsTo().

QTime can be used to measure a span of elapsed time using the start(), restart(), and elapsed() functions.


Method Documentation

QTime.__init__ (self)

Constructs a null time object. A null time can be a QTime(0, 0, 0, 0) (i.e., midnight) object, except that isNull() returns true and isValid() returns false.

See also isNull() and isValid().

QTime.__init__ (self, int h, int m, int second = 0, int msec = 0)

Constructs a time with hour h, minute m, seconds s and milliseconds ms.

h must be in the range 0 to 23, m and s must be in the range 0 to 59, and ms must be in the range 0 to 999.

See also isValid().

QTime.__init__ (self, QTime)

QTime QTime.addMSecs (self, int ms)

Returns a QTime object containing a time ms milliseconds later than the time of this object (or earlier if ms is negative).

Note that the time will wrap if it passes midnight. See addSecs() for an example.

See also addSecs(), msecsTo(), and QDateTime.addMSecs().

QTime QTime.addSecs (self, int secs)

Returns a QTime object containing a time s seconds later than the time of this object (or earlier if s is negative).

Note that the time will wrap if it passes midnight.

Example:

 QTime n(14, 0, 0);                // n == 14:00:00
 QTime t;
 t = n.addSecs(70);                // t == 14:01:10
 t = n.addSecs(-70);               // t == 13:58:50
 t = n.addSecs(10 * 60 * 60 + 5);  // t == 00:00:05
 t = n.addSecs(-15 * 60 * 60);     // t == 23:00:00

See also addMSecs(), secsTo(), and QDateTime.addSecs().

QTime QTime.currentTime ()

Returns the current time as reported by the system clock.

Note that the accuracy depends on the accuracy of the underlying operating system; not all systems provide 1-millisecond accuracy.

int QTime.elapsed (self)

Returns the number of milliseconds that have elapsed since the last time start() or restart() was called.

Note that the counter wraps to zero 24 hours after the last call to start() or restart.

Note that the accuracy depends on the accuracy of the underlying operating system; not all systems provide 1-millisecond accuracy.

Warning: If the system's clock setting has been changed since the last time start() or restart() was called, the result is undefined. This can happen when daylight savings time is turned on or off.

See also start() and restart().

QTime QTime.fromString (QString string, Qt.DateFormat format = Qt.TextDate)

Returns the time represented in the string as a QTime using the format given, or an invalid time if this is not possible.

Note that fromString() uses a "C" locale encoded string to convert milliseconds to a float value. If the default locale is not "C", this may result in two conversion attempts (if the conversion fails for the default locale). This should be considered an implementation detail.

QTime QTime.fromString (QString s, QString format)

Returns the QTime represented by the string, using the format given, or an invalid time if the string cannot be parsed.

These expressions may be used for the format:

Expression Output
h the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)
hh the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)
m the minute without a leading zero (0 to 59)
mm the minute with a leading zero (00 to 59)
s the second without a leading zero (0 to 59)
ss the second with a leading zero (00 to 59)
z the milliseconds without leading zeroes (0 to 999)
zzz the milliseconds with leading zeroes (000 to 999)
AP interpret as an AM/PM time. AP must be either "AM" or "PM".
ap Interpret as an AM/PM time. ap must be either "am" or "pm".

All other input characters will be treated as text. Any sequence of characters that are enclosed in single quotes will also be treated as text and not be used as an expression.

 QTime time = QTime.fromString("1mm12car00", "m'mm'hcarss");
 // time is 12:01.00

If the format is not satisfied an invalid QTime is returned. Expressions that do not expect leading zeroes to be given (h, m, s and z) are greedy. This means that they will use two digits even if this puts them outside the range of accepted values and leaves too few digits for other sections. For example, the following string could have meant 00:07:10, but the m will grab two digits, resulting in an invalid time:

 QTime time = QTime.fromString("00:710", "hh:ms"); // invalid

Any field that is not represented in the format will be set to zero. For example:

 QTime time = QTime.fromString("1.30", "m.s");
 // time is 00:01:30.000

QDateTime.toString() QTime.toString()

See also QDateTime.fromString(), QDate.fromString(), and QDate.toString().

int QTime.hour (self)

Returns the hour part (0 to 23) of the time.

See also minute(), second(), and msec().

bool QTime.isNull (self)

Returns true if the time is null (i.e., the QTime object was constructed using the default constructor); otherwise returns false. A null time is also an invalid time.

See also isValid().

bool QTime.isValid (self)

Returns true if the time is valid; otherwise returns false. For example, the time 23:30:55.746 is valid, but 24:12:30 is invalid.

See also isNull().

bool QTime.isValid (int h, int m, int s, int msec = 0)

This is an overloaded function.

Returns true if the specified time is valid; otherwise returns false.

The time is valid if h is in the range 0 to 23, m and s are in the range 0 to 59, and ms is in the range 0 to 999.

Example:

 QTime.isValid(21, 10, 30); // returns true
 QTime.isValid(22, 5,  62); // returns false

int QTime.minute (self)

Returns the minute part (0 to 59) of the time.

See also hour(), second(), and msec().

int QTime.msec (self)

Returns the millisecond part (0 to 999) of the time.

See also hour(), minute(), and second().

int QTime.msecsTo (self, QTime)

Returns the number of milliseconds from this time to t. If t is earlier than this time, the number of milliseconds returned is negative.

Because QTime measures time within a day and there are 86400 seconds in a day, the result is always between -86400000 and 86400000 ms.

See also secsTo(), addMSecs(), and QDateTime.msecsTo().

int QTime.restart (self)

Sets this time to the current time and returns the number of milliseconds that have elapsed since the last time start() or restart() was called.

This function is guaranteed to be atomic and is thus very handy for repeated measurements. Call start() to start the first measurement, and restart() for each later measurement.

Note that the counter wraps to zero 24 hours after the last call to start() or restart().

Warning: If the system's clock setting has been changed since the last time start() or restart() was called, the result is undefined. This can happen when daylight savings time is turned on or off.

See also start(), elapsed(), and currentTime().

int QTime.second (self)

Returns the second part (0 to 59) of the time.

See also hour(), minute(), and msec().

int QTime.secsTo (self, QTime)

Returns the number of seconds from this time to t. If t is earlier than this time, the number of seconds returned is negative.

Because QTime measures time within a day and there are 86400 seconds in a day, the result is always between -86400 and 86400.

secsTo() does not take into account any milliseconds.

See also addSecs() and QDateTime.secsTo().

bool QTime.setHMS (self, int h, int m, int s, int msec = 0)

Sets the time to hour h, minute m, seconds s and milliseconds ms.

h must be in the range 0 to 23, m and s must be in the range 0 to 59, and ms must be in the range 0 to 999. Returns true if the set time is valid; otherwise returns false.

See also isValid().

QTime.start (self)

Sets this time to the current time. This is practical for timing:

 QTime t;
 t.start();
 some_lengthy_task();
 qDebug("Time elapsed: %d ms", t.elapsed());

See also restart(), elapsed(), and currentTime().

datetime.time QTime.toPyTime (self)

QString QTime.toString (self, Qt.DateFormat format = Qt.TextDate)

Returns the time as a string. The format parameter determines the format of the result string.

These expressions may be used:

Expression Output
h the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)
hh the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)
H the hour without a leading zero (0 to 23, even with AM/PM display)
HH the hour with a leading zero (00 to 23, even with AM/PM display)
m the minute without a leading zero (0 to 59)
mm the minute with a leading zero (00 to 59)
s the second without a leading zero (0 to 59)
ss the second with a leading zero (00 to 59)
z the milliseconds without leading zeroes (0 to 999)
zzz the milliseconds with leading zeroes (000 to 999)
AP or A use AM/PM display. AP will be replaced by either "AM" or "PM".
ap or a use am/pm display. ap will be replaced by either "am" or "pm".
t the timezone (for example "CEST")

All other input characters will be ignored. Any sequence of characters that are enclosed in singlequotes will be treated as text and not be used as an expression. Two consecutive singlequotes ("''") are replaced by a singlequote in the output.

Example format strings (assuming that the QTime is 14:13:09.042)

Format Result
hh:mm:ss.zzz 14:13:09.042
h:m:s ap 2:13:9 pm
H:m:s a 14:13:9 pm

If the datetime is invalid, an empty string will be returned. If format is empty, the default format "hh:mm:ss" is used.

See also QDate.toString() and QDateTime.toString().

QString QTime.toString (self, QString format)

This is an overloaded function.

Returns the time as a string. Milliseconds are not included. The format parameter determines the format of the string.

If format is Qt.TextDate, the string format is HH:mm:ss; e.g. 1 second before midnight would be "23:59:59".

If format is Qt.ISODate, the string format corresponds to the ISO 8601 extended specification for representations of dates, which is also HH:mm:ss. (However, contrary to ISO 8601, dates before 15 October 1582 are handled as Julian dates, not Gregorian dates. See Use of Gregorian and Julian Calendars. This might change in a future version of Qt.)

If the format is Qt.SystemLocaleShortDate or Qt.SystemLocaleLongDate, the string format depends on the locale settings of the system. Identical to calling QLocale.system().toString(time, QLocale.ShortFormat) or QLocale.system().toString(time, QLocale.LongFormat).

If the format is Qt.DefaultLocaleShortDate or Qt.DefaultLocaleLongDate, the string format depends on the default application locale. This is the locale set with QLocale.setDefault(), or the system locale if no default locale has been set. Identical to calling QLocale().toString(time, QLocale.ShortFormat) or QLocale().toString(time, QLocale.LongFormat).

If the time is invalid, an empty string will be returned.

int QTime.__bool__ (self)

bool QTime.__eq__ (self, QTime other)

bool QTime.__ge__ (self, QTime other)

bool QTime.__gt__ (self, QTime other)

int QTime.__hash__ (self)

bool QTime.__le__ (self, QTime other)

bool QTime.__lt__ (self, QTime other)

bool QTime.__ne__ (self, QTime other)

str QTime.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtimeedit.html0000644000076500000240000001070112536324502020331 0ustar philstaff00000000000000 QTimeEdit Class Reference
  Home · All Classes · Modules

QTimeEdit Class Reference
[
QtGui module]

The QTimeEdit class provides a widget for editing times based on the QDateTimeEdit widget. More...

Inherits QDateTimeEdit.

Methods

  • __init__ (self, QWidget parent = None)
  • __init__ (self, QTime time, QWidget parent = None)

Detailed Description

The QTimeEdit class provides a widget for editing times based on the QDateTimeEdit widget.

Many of the properties and functions provided by QTimeEdit are implemented in QDateTimeEdit. The following properties are most relevant to users of this class:

  • time holds the date displayed by the widget.
  • minimumTime defines the minimum (earliest) time that can be set by the user.
  • maximumTime defines the maximum (latest) time that can be set by the user.
  • displayFormat contains a string that is used to format the time displayed in the widget.
Screenshot of a Windows XP style time editing widget A time editing widget shown in the Windows XP widget style.
Screenshot of a Macintosh style time editing widget A time editing widget shown in the Macintosh widget style.
Screenshot of a Plastique style time editing widget A time editing widget shown in the Plastique widget style.

Method Documentation

QTimeEdit.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty time editor with a parent.

QTimeEdit.__init__ (self, QTime time, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty time editor with a parent. The time is set to time.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtimeline.html0000644000076500000240000006706212536324475020360 0ustar philstaff00000000000000 QTimeLine Class Reference
  Home · All Classes · Modules

QTimeLine Class Reference
[QtCore module]

The QTimeLine class provides a timeline for controlling animations. More...

Inherits QObject.

Types

  • enum CurveShape { EaseInCurve, EaseOutCurve, EaseInOutCurve, LinearCurve, SineCurve, CosineCurve }
  • enum Direction { Forward, Backward }
  • enum State { NotRunning, Paused, Running }

Methods

Qt Signals


Detailed Description

The QTimeLine class provides a timeline for controlling animations.

It's most commonly used to animate a GUI control by calling a slot periodically. You can construct a timeline by passing its duration in milliseconds to QTimeLine's constructor. The timeline's duration describes for how long the animation will run. Then you set a suitable frame range by calling setFrameRange(). Finally connect the frameChanged() signal to a suitable slot in the widget you wish to animate (e.g., setValue() in QProgressBar). When you proceed to calling start(), QTimeLine will enter Running state, and start emitting frameChanged() at regular intervals, causing your widget's connected property's value to grow from the lower end to the upper and of your frame range, at a steady rate. You can specify the update interval by calling setUpdateInterval(). When done, QTimeLine enters NotRunning state, and emits finished().

Example:

 ...
 progressBar = new QProgressBar(this);
 progressBar->setRange(0, 100);

 // Construct a 1-second timeline with a frame range of 0 - 100
 QTimeLine *timeLine = new QTimeLine(1000, this);
 timeLine->setFrameRange(0, 100);
 connect(timeLine, SIGNAL(frameChanged(int)), progressBar, SLOT(setValue(int)));

 // Clicking the push button will start the progress bar animation
 pushButton = new QPushButton(tr("Start animation"), this);
 connect(pushButton, SIGNAL(clicked()), timeLine, SLOT(start()));
 ...

You can also use QTimeLine with the Graphics View framework for animations. The QGraphicsItemAnimation class implements animation of QGraphicsItems with a timeline.

By default the timeline runs once, from the beginning and towards the end, upon which you must call start() again to restart from the beginning. To make the timeline loop, you can call setLoopCount(), passing the number of times the timeline should run before finishing. The direction can also be changed, causing the timeline to run backward, by calling setDirection(). You can also pause and unpause the timeline while it's running by calling setPaused(). For interactive control, the setCurrentTime() function is provided, which sets the time position of the time line directly. Although most useful in NotRunning state, (e.g., connected to a valueChanged() signal in a QSlider,) this function can be called at any time.

The frame interface is useful for standard widgets, but QTimeLine can be used to control any type of animation. The heart of QTimeLine lies in the valueForTime() function, which generates a value between 0 and 1 for a given time. This value is typically used to describe the steps of an animation, where 0 is the first step of an animation, and 1 is the last step. When running, QTimeLine generates values between 0 and 1 by calling valueForTime() and emitting valueChanged(). By default, valueForTime() applies an interpolation algorithm to generate these value. You can choose from a set of predefined timeline algorithms by calling setCurveShape().

Note that by default, QTimeLine uses the EaseInOut curve shape, which provides a value that grows slowly, then grows steadily, and finally grows slowly. For a custom timeline, you can reimplement valueForTime(), in which case QTimeLine's curveShape property is ignored.


Type Documentation

QTimeLine.CurveShape

This enum describes the default shape of QTimeLine's value curve. The default, shape is EaseInOutCurve. The curve defines the relation between the value and the timeline.

Constant Value Description
QTimeLine.EaseInCurve 0 The value starts growing slowly, then increases in speed.
QTimeLine.EaseOutCurve 1 The value starts growing steadily, then ends slowly.
QTimeLine.EaseInOutCurve 2 The value starts growing slowly, then runs steadily, then grows slowly again.
QTimeLine.LinearCurve 3 The value grows linearly (e.g., if the duration is 1000 ms, the value at time 500 ms is 0.5).
QTimeLine.SineCurve 4 The value grows sinusoidally.
QTimeLine.CosineCurve 5 The value grows cosinusoidally.

See also setCurveShape().

QTimeLine.Direction

This enum describes the direction of the timeline when in Running state.

Constant Value Description
QTimeLine.Forward 0 The current time of the timeline increases with time (i.e., moves from 0 and towards the end / duration).
QTimeLine.Backward 1 The current time of the timeline decreases with time (i.e., moves from the end / duration and towards 0).

See also setDirection().

QTimeLine.State

This enum describes the state of the timeline.

Constant Value Description
QTimeLine.NotRunning 0 The timeline is not running. This is the initial state of QTimeLine, and the state QTimeLine reenters when finished. The current time, frame and value remain unchanged until either setCurrentTime() is called, or the timeline is started by calling start().
QTimeLine.Paused 1 The timeline is paused (i.e., temporarily suspended). Calling setPaused(false) will resume timeline activity.
QTimeLine.Running 2 The timeline is running. While control is in the event loop, QTimeLine will update its current time at regular intervals, emitting valueChanged() and frameChanged() when appropriate.

See also state() and stateChanged().


Method Documentation

QTimeLine.__init__ (self, int duration = 1000, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a timeline with a duration of duration milliseconds. parent is passed to QObject's constructor. The default duration is 1000 milliseconds.

int QTimeLine.currentFrame (self)

Returns the frame corresponding to the current time.

See also currentTime(), frameForTime(), and setFrameRange().

int QTimeLine.currentTime (self)

float QTimeLine.currentValue (self)

Returns the value corresponding to the current time.

See also valueForTime() and currentFrame().

CurveShape QTimeLine.curveShape (self)

Direction QTimeLine.direction (self)

int QTimeLine.duration (self)

QEasingCurve QTimeLine.easingCurve (self)

int QTimeLine.endFrame (self)

Returns the end frame, which is the frame corresponding to the end of the timeline (i.e., the frame for which the current value is 1).

See also setEndFrame() and setFrameRange().

int QTimeLine.frameForTime (self, int msec)

Returns the frame corresponding to the time msec. This value is calculated using a linear interpolation of the start and end frame, based on the value returned by valueForTime().

See also valueForTime() and setFrameRange().

int QTimeLine.loopCount (self)

QTimeLine.resume (self)

This method is also a Qt slot with the C++ signature void resume().

Resumes the timeline from the current time. QTimeLine will reenter Running state, and once it enters the event loop, it will update its current time, frame and value at regular intervals.

In contrast to start(), this function does not restart the timeline before it resumes.

See also start(), updateInterval(), frameChanged(), and valueChanged().

QTimeLine.setCurrentTime (self, int msec)

This method is also a Qt slot with the C++ signature void setCurrentTime(int).

QTimeLine.setCurveShape (self, CurveShape shape)

QTimeLine.setDirection (self, Direction direction)

QTimeLine.setDuration (self, int duration)

QTimeLine.setEasingCurve (self, QEasingCurve curve)

QTimeLine.setEndFrame (self, int frame)

Sets the end frame, which is the frame corresponding to the end of the timeline (i.e., the frame for which the current value is 1), to frame.

See also endFrame(), startFrame(), and setFrameRange().

QTimeLine.setFrameRange (self, int startFrame, int endFrame)

Sets the timeline's frame counter to start at startFrame, and end and endFrame. For each time value, QTimeLine will find the corresponding frame when you call currentFrame() or frameForTime() by interpolating, using the return value of valueForTime().

When in Running state, QTimeLine also emits the frameChanged() signal when the frame changes.

See also startFrame(), endFrame(), start(), and currentFrame().

QTimeLine.setLoopCount (self, int count)

QTimeLine.setPaused (self, bool paused)

This method is also a Qt slot with the C++ signature void setPaused(bool).

If paused is true, the timeline is paused, causing QTimeLine to enter Paused state. No updates will be signaled until either start() or setPaused(false) is called. If paused is false, the timeline is resumed and continues where it left.

See also state() and start().

QTimeLine.setStartFrame (self, int frame)

Sets the start frame, which is the frame corresponding to the start of the timeline (i.e., the frame for which the current value is 0), to frame.

See also startFrame(), endFrame(), and setFrameRange().

QTimeLine.setUpdateInterval (self, int interval)

QTimeLine.start (self)

This method is also a Qt slot with the C++ signature void start().

Starts the timeline. QTimeLine will enter Running state, and once it enters the event loop, it will update its current time, frame and value at regular intervals. The default interval is 40 ms (i.e., 25 times per second). You can change the update interval by calling setUpdateInterval().

The timeline will start from position 0, or the end if going backward. If you want to resume a stopped timeline without restarting, you can call resume() instead.

See also resume(), updateInterval(), frameChanged(), and valueChanged().

int QTimeLine.startFrame (self)

Returns the start frame, which is the frame corresponding to the start of the timeline (i.e., the frame for which the current value is 0).

See also setStartFrame() and setFrameRange().

State QTimeLine.state (self)

Returns the state of the timeline.

See also start(), setPaused(), and stop().

QTimeLine.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Stops the timeline, causing QTimeLine to enter NotRunning state.

See also start().

QTimeLine.timerEvent (self, QTimerEvent event)

Reimplemented from QObject.timerEvent().

QTimeLine.toggleDirection (self)

This method is also a Qt slot with the C++ signature void toggleDirection().

Toggles the direction of the timeline. If the direction was Forward, it becomes Backward, and vice verca.

See also setDirection().

int QTimeLine.updateInterval (self)

float QTimeLine.valueForTime (self, int msec)

Returns the timeline value for the time msec. The returned value, which varies depending on the curve shape, is always between 0 and 1. If msec is 0, the default implementation always returns 0.

Reimplement this function to provide a custom curve shape for your timeline.

See also CurveShape and frameForTime().


Qt Signal Documentation

void finished ()

This is the default overload of this signal.

This signal is emitted when QTimeLine finishes (i.e., reaches the end of its time line), and does not loop.

void frameChanged (int)

This is the default overload of this signal.

QTimeLine emits this signal at regular intervals when in Running state, but only if the current frame changes. frame is the current frame number.

See also QTimeLine.setFrameRange() and QTimeLine.updateInterval.

void stateChanged (QTimeLine::State)

This is the default overload of this signal.

This signal is emitted whenever QTimeLine's state changes. The new state is newState.

void valueChanged (qreal)

This is the default overload of this signal.

QTimeLine emits this signal at regular intervals when in Running state, but only if the current value changes. value is the current value. value is a number between 0.0 and 1.0

See also QTimeLine.setDuration(), QTimeLine.valueForTime(), and QTimeLine.updateInterval.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtimer.html0000644000076500000240000003150312536324475017661 0ustar philstaff00000000000000 QTimer Class Reference
  Home · All Classes · Modules

QTimer Class Reference
[QtCore module]

The QTimer class provides repetitive and single-shot timers. More...

Inherits QObject.

Methods

Static Methods

  • singleShot (int msec, QObject receiver, SLOT()SLOT() member)
  • singleShot (int msec, callable receiver)

Qt Signals


Detailed Description

The QTimer class provides repetitive and single-shot timers.

The QTimer class provides a high-level programming interface for timers. To use it, create a QTimer, connect its timeout() signal to the appropriate slots, and call start(). From then on it will emit the timeout() signal at constant intervals.

Example for a one second (1000 millisecond) timer (from the Analog Clock example):

     QTimer *timer = new QTimer(this);
     connect(timer, SIGNAL(timeout()), this, SLOT(update()));
     timer->start(1000);

From then on, the update() slot is called every second.

You can set a timer to time out only once by calling setSingleShot(true). You can also use the static QTimer.singleShot() function to call a slot after a specified interval:

     QTimer.singleShot(200, this, SLOT(updateCaption()));

In multithreaded applications, you can use QTimer in any thread that has an event loop. To start an event loop from a non-GUI thread, use QThread.exec(). Qt uses the timer's thread affinity to determine which thread will emit the timeout() signal. Because of this, you must start and stop the timer in its thread; it is not possible to start a timer from another thread.

As a special case, a QTimer with a timeout of 0 will time out as soon as all the events in the window system's event queue have been processed. This can be used to do heavy work while providing a snappy user interface:

     QTimer *timer = new QTimer(this);
     connect(timer, SIGNAL(timeout()), this, SLOT(processOneThing()));
     timer->start();

processOneThing() will from then on be called repeatedly. It should be written in such a way that it always returns quickly (typically after processing one data item) so that Qt can deliver events to widgets and stop the timer as soon as it has done all its work. This is the traditional way of implementing heavy work in GUI applications; multithreading is now becoming available on more and more platforms, and we expect that zero-millisecond QTimers will gradually be replaced by QThreads.

Accuracy and Timer Resolution

Timers will never time out earlier than the specified timeout value and they are not guaranteed to time out at the exact value specified. In many situations, they may time out late by a period of time that depends on the accuracy of the system timers.

The accuracy of timers depends on the underlying operating system and hardware. Most platforms support a resolution of 1 millisecond, though the accuracy of the timer will not equal this resolution in many real-world situations.

If Qt is unable to deliver the requested number of timer clicks, it will silently discard some.

Alternatives to QTimer

An alternative to using QTimer is to call QObject.startTimer() for your object and reimplement the QObject.timerEvent() event handler in your class (which must inherit QObject). The disadvantage is that timerEvent() does not support such high-level features as single-shot timers or signals.

Another alternative to using QTimer is to use QBasicTimer. It is typically less cumbersome than using QObject.startTimer() directly. See Timers for an overview of all three approaches.

Some operating systems limit the number of timers that may be used; Qt tries to work around these limitations.


Method Documentation

QTimer.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a timer with the given parent.

int QTimer.interval (self)

bool QTimer.isActive (self)

bool QTimer.isSingleShot (self)

QTimer.setInterval (self, int msec)

QTimer.setSingleShot (self, bool asingleShot)

QTimer.singleShot (int msec, QObject receiver, SLOT()SLOT() member)

This static function calls a slot after a given time interval.

It is very convenient to use this function because you do not need to bother with a timerEvent or create a local QTimer object.

Example:

 #include <QApplication>
 #include <QTimer>

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QTimer.singleShot(600000, &app, SLOT(quit()));
     ...
     return app.exec();
 }

This sample program automatically terminates after 10 minutes (600,000 milliseconds).

The receiver is the receiving object and the member is the slot. The time interval is msec milliseconds.

Note: This function is reentrant.

See also setSingleShot() and start().

QTimer.singleShot (int msec, callable receiver)

QTimer.start (self, int msec)

This method is also a Qt slot with the C++ signature void start(int).

Starts or restarts the timer with a timeout interval of msec milliseconds.

If the timer is already running, it will be stopped and restarted.

If singleShot is true, the timer will be activated only once.

QTimer.start (self)

This method is also a Qt slot with the C++ signature void start().

This function overloads start().

Starts or restarts the timer with the timeout specified in interval.

If the timer is already running, it will be stopped and restarted.

If singleShot is true, the timer will be activated only once.

QTimer.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Stops the timer.

See also start().

QTimer.timerEvent (self, QTimerEvent)

Reimplemented from QObject.timerEvent().

int QTimer.timerId (self)

Returns the ID of the timer if the timer is running; otherwise returns -1.


Qt Signal Documentation

void timeout ()

This is the default overload of this signal.

This signal is emitted when the timer times out.

See also interval, start(), and stop().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtimerevent.html0000644000076500000240000000630112536324471020715 0ustar philstaff00000000000000 QTimerEvent Class Reference
  Home · All Classes · Modules

QTimerEvent Class Reference
[QtCore module]

The QTimerEvent class contains parameters that describe a timer event. More...

Inherits QEvent.

Methods


Detailed Description

The QTimerEvent class contains parameters that describe a timer event.

Timer events are sent at regular intervals to objects that have started one or more timers. Each timer has a unique identifier. A timer is started with QObject.startTimer().

The QTimer class provides a high-level programming interface that uses signals instead of events. It also provides single-shot timers.

The event handler QObject.timerEvent() receives timer events.


Method Documentation

QTimerEvent.__init__ (self, int timerId)

Constructs a timer event object with the timer identifier set to timerId.

QTimerEvent.__init__ (self, QTimerEvent)

int QTimerEvent.timerId (self)

Returns the unique timer identifier, which is the same identifier as returned from QObject.startTimer().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtmultimedia.html0000644000076500000240000000510712536324470021053 0ustar philstaff00000000000000 QtMultimedia Module
  Home · All Classes · Modules

QtMultimedia Module

The QtMultimedia module provides low-level multimedia functionality. More...

Types


Detailed Description

The QtMultimedia module provides low-level multimedia functionality.

To import the module use, for example, the following statement:

from PyQt4 import QtMultimedia

PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtnetwork.html0000644000076500000240000004437012536324470020417 0ustar philstaff00000000000000 QtNetwork Module
  Home · All Classes · Modules

QtNetwork Module

The QtNetwork module provides classes that allow you to write TCP/IP and UDP clients and servers. More...

Types


Detailed Description

The QtNetwork module offers classes that allow you to write TCP/IP clients and servers.

The network module provides classes to make network programming easier and portable. It offers both high-level classes such as QHttp and QFtp that implement specific application-level protocols, and lower-level classes such as QTcpSocket, QTcpServer, and QUdpSocket.

To import the module use, for example, the following statement:

from PyQt4 import QtNetwork

Topics:

Writing HTTP and FTP Clients with QHttp and QFtp

HTTP (Hypertext Transfer Protocol) is an application-level network protocol used mainly for downloading HTML and XML files, but it is also used as a high-level transport protocol for many other types of data, from images and movies to purchase orders and banking transactions. In contrast, FTP (File Transfer Protocol) is a protocol used almost exclusively for browsing remote directories and for transferring files.

HTTP Client and Server

HTTP is a simpler protocol than FTP in many ways. It uses only one network connection, while FTP uses two (one for sending commands, and one for transferring data). HTTP is a stateless protocol; requests and responses are always self-contained. The FTP protocol has a state and requires the client to send several commands before a file transfer takes place.

In practice, HTTP clients often use separate connections for separate requests, whereas FTP clients establish one connection and keep it open throughout the session.

The QHttp and QFtp classes provide client-side support for HTTP and FTP. Since the two protocols are used to solve the same problems, the QHttp and QFtp classes have many features in common:

There are two main ways of using QHttp and QFtp. The most common approach is to keep track of the command IDs and follow the execution of every command by connecting to the appropriate signals. The other approach is to schedule all commands at once and only connect to the done() signal, which is emitted when all scheduled commands have been executed. The first approach requires more work, but it gives you more control over the execution of individual commands and allows you to initiate new commands based on the result of a previous command. It also enables you to provide detailed feedback to the user.

The HTTP and FTP examples illustrate how to write an HTTP and an FTP client.

Writing your own HTTP or FTP server is possible using the lower-level classes QTcpSocket and QTcpServer.

Using TCP with QTcpSocket and QTcpServer

TCP (Transmission Control Protocol) is a low-level network protocol used by most Internet protocols, including HTTP and FTP, for data transfer. It is a reliable, stream-oriented, connection-oriented transport protocol. It is particularly well suited to the continuous transmission of data.

A TCP Stream

The QTcpSocket class provides an interface for TCP. You can use QTcpSocket to implement standard network protocols such as POP3, SMTP, and NNTP, as well as custom protocols.

A TCP connection must be established to a remote host and port before any data transfer can begin. Once the connection has been established, the IP address and port of the peer are available through QTcpSocket.peerAddress() and QTcpSocket.peerPort(). At any time, the peer can close the connection, and data transfer will then stop immediately.

QTcpSocket works asynchronously and emits signals to report status changes and errors, just like QHttp and QFtp. It relies on the event loop to detect incoming data and to automatically flush outgoing data. You can write data to the socket using QTcpSocket.write(), and read data using QTcpSocket.read(). QTcpSocket represents two independent streams of data: one for reading and one for writing.

Since QTcpSocket inherits QIODevice, you can use it with QTextStream and QDataStream. When reading from a QTcpSocket, you must make sure that enough data is available by calling QTcpSocket.bytesAvailable() beforehand.

If you need to handle incoming TCP connections (e.g., in a server application), use the QTcpServer class. Call QTcpServer.listen() to set up the server, and connect to the QTcpServer.newConnection() signal, which is emitted once for every client that connects. In your slot, call QTcpServer.nextPendingConnection() to accept the connection and use the returned QTcpSocket to communicate with the client.

Although most of its functions work asynchronously, it's possible to use QTcpSocket synchronously (i.e., blocking). To get blocking behavior, call QTcpSocket's waitFor...() functions; these suspend the calling thread until a signal has been emitted. For example, after calling the non-blocking QTcpSocket.connectToHost() function, call QTcpSocket.waitForConnected() to block the thread until the connected() signal has been emitted.

Synchronous sockets often lead to code with a simpler flow of control. The main disadvantage of the waitFor...() approach is that events won't be processed while a waitFor...() function is blocking. If used in the GUI thread, this might freeze the application's user interface. For this reason, we recommend that you use synchronous sockets only in non-GUI threads. When used synchronously, QTcpSocket doesn't require an event loop.

The Fortune Client and Fortune Server examples show how to use QTcpSocket and QTcpServer to write TCP client-server applications. See also Blocking Fortune Client for an example on how to use a synchronous QTcpSocket in a separate thread (without using an event loop), and Threaded Fortune Server for an example of a multithreaded TCP server with one thread per active client.

Using UDP with QUdpSocket

UDP (User Datagram Protocol) is a lightweight, unreliable, datagram-oriented, connectionless protocol. It can be used when reliability isn't important. For example, a server that reports the time of day could choose UDP. If a datagram with the time of day is lost, the client can simply make another request.

UDP Packets

The QUdpSocket class allows you to send and receive UDP datagrams. It inherits QAbstractSocket, and it therefore shares most of QTcpSocket's interface. The main difference is that QUdpSocket transfers data as datagrams instead of as a continuous stream of data. In short, a datagram is a data packet of limited size (normally smaller than 512 bytes), containing the IP address and port of the datagram's sender and receiver in addition to the data being transferred.

QUdpSocket supports IPv4 broadcasting. Broadcasting is often used to implement network discovery protocols, such as finding which host on the network has the most free hard disk space. One host broadcasts a datagram to the network that all other hosts receive. Each host that receives a request then sends a reply back to the sender with its current amount of free disk space. The originator waits until it has received replies from all hosts, and can then choose the server with most free space to store data. To broadcast a datagram, simply send it to the special address QHostAddress.Broadcast (255.255.255.255), or to your local network's broadcast address.

QUdpSocket.bind() prepares the socket for accepting incoming datagrams, much like QTcpServer.listen() for TCP servers. Whenever one or more datagrams arrive, QUdpSocket emits the readyRead() signal. Call QUdpSocket.readDatagram() to read the datagram.

The Broadcast Sender and Broadcast Receiver examples show how to write a UDP sender and a UDP receiver using Qt.

Resolving Host Names using QHostInfo

Before establishing a network connection, QTcpSocket and QUdpSocket perform a name lookup, translating the host name you're connecting to into an IP address. This operation is usually performed using the DNS (Domain Name Service) protocol.

QHostInfo provides a static function that lets you perform such a lookup yourself. By calling QHostInfo.lookupHost() with a host name, a QObject pointer, and a slot signature, QHostInfo will perform the name lookup and invoke the given slot when the results are ready. The actual lookup is done in a separate thread, making use of the operating system's own methods for performing name lookups.

QHostInfo also provides a static function called QHostInfo.fromName() that takes the host name as argument and returns the results. In this case, the name lookup is performed in the same thread as the caller. This overload is useful for non-GUI applications or for doing name lookups in a separate, non-GUI thread. (Calling this function in a GUI thread may cause your user interface to freeze while the function blocks as it performs the lookup.)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtoolbar.html0000644000076500000240000005751612536324515020212 0ustar philstaff00000000000000 QToolBar Class Reference
  Home · All Classes · Modules

QToolBar Class Reference
[QtGui module]

The QToolBar class provides a movable panel that contains a set of controls. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QToolBar class provides a movable panel that contains a set of controls.

Toolbar buttons are added by adding actions, using addAction() or insertAction(). Groups of buttons can be separated using addSeparator() or insertSeparator(). If a toolbar button is not appropriate, a widget can be inserted instead using addWidget() or insertWidget(); examples of suitable widgets are QSpinBox, QDoubleSpinBox, and QComboBox. When a toolbar button is pressed it emits the actionTriggered() signal.

A toolbar can be fixed in place in a particular area (e.g. at the top of the window), or it can be movable (isMovable()) between toolbar areas; see allowedAreas() and isAreaAllowed().

When a toolbar is resized in such a way that it is too small to show all the items it contains, an extension button will appear as the last item in the toolbar. Pressing the extension button will pop up a menu containing the items that does not currently fit in the toolbar.

When a QToolBar is not a child of a QMainWindow, it loses the ability to populate the extension pop up with widgets added to the toolbar using addWidget(). Please use widget actions created by inheriting QWidgetAction and implementing QWidgetAction.createWidget() instead.


Method Documentation

QToolBar.__init__ (self, QString title, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QToolBar with the given parent.

The given window title identifies the toolbar and is shown in the context menu provided by QMainWindow.

See also setWindowTitle().

QToolBar.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QToolBar with the given parent.

QAction QToolBar.actionAt (self, QPoint p)

Returns the action at point p. This function returns zero if no action was found.

See also QWidget.childAt().

QAction QToolBar.actionAt (self, int ax, int ay)

This is an overloaded function.

Returns the action at the point x, y. This function returns zero if no action was found.

QToolBar.actionEvent (self, QActionEvent event)

Reimplemented from QWidget.actionEvent().

QRect QToolBar.actionGeometry (self, QAction action)

QToolBar.addAction (self, QAction action)

This is an overloaded function.

Appends the action action to the toolbar's list of actions.

See also QMenu.addAction() and QWidget.addAction().

QAction QToolBar.addAction (self, QString text)

This is an overloaded function.

Creates a new action with the given text. This action is added to the end of the toolbar.

QAction QToolBar.addAction (self, QIcon icon, QString text)

This is an overloaded function.

Creates a new action with the given icon and text. This action is added to the end of the toolbar.

QAction QToolBar.addAction (self, QString text, QObject receiver, SLOT()SLOT() member)

This is an overloaded function.

Creates a new action with the given text. This action is added to the end of the toolbar. The action's triggered() signal is connected to member in receiver.

QAction QToolBar.addAction (self, QString text, callable receiver)

This is an overloaded function.

Creates a new action with the icon icon and text text. This action is added to the end of the toolbar. The action's triggered() signal is connected to member in receiver.

QAction QToolBar.addAction (self, QIcon icon, QString text, QObject receiver, SLOT()SLOT() member)

QAction QToolBar.addAction (self, QIcon icon, QString text, callable receiver)

QAction QToolBar.addSeparator (self)

Adds a separator to the end of the toolbar.

See also insertSeparator().

QAction QToolBar.addWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Adds the given widget to the toolbar as the toolbar's last item.

The toolbar takes ownership of widget.

If you add a QToolButton with this method, the tools bar's Qt.ToolButtonStyle will not be respected.

Note: You should use QAction.setVisible() to change the visibility of the widget. Using QWidget.setVisible(), QWidget.show() and QWidget.hide() does not work.

See also insertWidget().

Qt.ToolBarAreas QToolBar.allowedAreas (self)

QToolBar.changeEvent (self, QEvent event)

Reimplemented from QWidget.changeEvent().

QToolBar.childEvent (self, QChildEvent event)

Reimplemented from QObject.childEvent().

QToolBar.clear (self)

Removes all actions from the toolbar.

See also removeAction().

bool QToolBar.event (self, QEvent event)

Reimplemented from QObject.event().

QSize QToolBar.iconSize (self)

QToolBar.initStyleOption (self, QStyleOptionToolBar option)

QAction QToolBar.insertSeparator (self, QAction before)

Inserts a separator into the toolbar in front of the toolbar item associated with the before action.

See also addSeparator().

QAction QToolBar.insertWidget (self, QAction before, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Inserts the given widget in front of the toolbar item associated with the before action.

Note: You should use QAction.setVisible() to change the visibility of the widget. Using QWidget.setVisible(), QWidget.show() and QWidget.hide() does not work.

See also addWidget().

bool QToolBar.isAreaAllowed (self, Qt.ToolBarArea area)

Returns true if this toolbar is dockable in the given area; otherwise returns false.

bool QToolBar.isFloatable (self)

bool QToolBar.isFloating (self)

bool QToolBar.isMovable (self)

Qt.Orientation QToolBar.orientation (self)

QToolBar.paintEvent (self, QPaintEvent event)

Reimplemented from QWidget.paintEvent().

QToolBar.resizeEvent (self, QResizeEvent event)

Reimplemented from QWidget.resizeEvent().

QToolBar.setAllowedAreas (self, Qt.ToolBarAreas areas)

QToolBar.setFloatable (self, bool floatable)

QToolBar.setIconSize (self, QSize iconSize)

This method is also a Qt slot with the C++ signature void setIconSize(const QSize&).

QToolBar.setMovable (self, bool movable)

QToolBar.setOrientation (self, Qt.Orientation orientation)

QToolBar.setToolButtonStyle (self, Qt.ToolButtonStyle toolButtonStyle)

This method is also a Qt slot with the C++ signature void setToolButtonStyle(Qt::ToolButtonStyle).

QAction QToolBar.toggleViewAction (self)

Returns a checkable action that can be used to show or hide this toolbar.

The action's text is set to the toolbar's window title.

See also QAction.text and QWidget.windowTitle.

Qt.ToolButtonStyle QToolBar.toolButtonStyle (self)

QWidget QToolBar.widgetForAction (self, QAction action)

Returns the widget associated with the specified action.

This function was introduced in Qt 4.2.

See also addWidget().


Qt Signal Documentation

void actionTriggered (QAction*)

This is the default overload of this signal.

This signal is emitted when an action in this toolbar is triggered. This happens when the action's tool button is pressed, or when the action is triggered in some other way outside the tool bar. The parameter holds the triggered action.

void allowedAreasChanged (Qt::ToolBarAreas)

This is the default overload of this signal.

This signal is emitted when the collection of allowed areas for the toolbar is changed. The new areas in which the toolbar can be positioned are specified by allowedAreas.

See also allowedAreas.

void iconSizeChanged (const QSize&)

This is the default overload of this signal.

This signal is emitted when the icon size is changed. The iconSize parameter holds the toolbar's new icon size.

See also iconSize and QMainWindow.iconSize.

void movableChanged (bool)

This is the default overload of this signal.

This signal is emitted when the toolbar becomes movable or fixed. If the toolbar can be moved, movable is true; otherwise it is false.

See also movable.

void orientationChanged (Qt::Orientation)

This is the default overload of this signal.

This signal is emitted when the orientation of the toolbar changes. The new orientation is specified by the orientation given.

See also orientation.

void toolButtonStyleChanged (Qt::ToolButtonStyle)

This is the default overload of this signal.

This signal is emitted when the tool button style is changed. The toolButtonStyle parameter holds the toolbar's new tool button style.

See also toolButtonStyle and QMainWindow.toolButtonStyle.

void topLevelChanged (bool)

This is the default overload of this signal.

This signal is emitted when the floating property changes. The topLevel parameter is true if the toolbar is now floating; otherwise it is false.

This function was introduced in Qt 4.6.

See also isWindow().

void visibilityChanged (bool)

This is the default overload of this signal.

This signal is emitted when the toolbar becomes visible (or invisible). This happens when the widget is hidden or shown.

This function was introduced in Qt 4.7.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtoolbox.html0000644000076500000240000003740112536324515020225 0ustar philstaff00000000000000 QToolBox Class Reference
  Home · All Classes · Modules

QToolBox Class Reference
[
QtGui module]

The QToolBox class provides a column of tabbed widget items. More...

Inherits QFrame.

Methods

Special Methods

Qt Signals


Detailed Description

The QToolBox class provides a column of tabbed widget items.

A toolbox is a widget that displays a column of tabs one above the other, with the current item displayed below the current tab. Every tab has an index position within the column of tabs. A tab's item is a QWidget.

Each item has an itemText(), an optional itemIcon(), an optional itemToolTip(), and a widget(). The item's attributes can be changed with setItemText(), setItemIcon(), and setItemToolTip(). Each item can be enabled or disabled individually with setItemEnabled().

Items are added using addItem(), or inserted at particular positions using insertItem(). The total number of items is given by count(). Items can be deleted with delete, or removed from the toolbox with removeItem(). Combining removeItem() and insertItem() allows you to move items to different positions.

The index of the current item widget is returned by currentIndex(), and set with setCurrentIndex(). The index of a particular item can be found using indexOf(), and the item at a given index is returned by item().

The currentChanged() signal is emitted when the current item is changed.


Method Documentation

QToolBox.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new toolbox with the given parent and the flags, f.

int QToolBox.addItem (self, QWidget item, QString text)

The item argument has it's ownership transferred to Qt.

Adds the widget in a new tab at bottom of the toolbox. The new tab's text is set to text, and the iconSet is displayed to the left of the text. Returns the new tab's index.

int QToolBox.addItem (self, QWidget item, QIcon iconSet, QString text)

The item argument has it's ownership transferred to Qt.

This is an overloaded function.

Adds the widget w in a new tab at bottom of the toolbox. The new tab's text is set to text. Returns the new tab's index.

QToolBox.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

int QToolBox.count (self)

int QToolBox.currentIndex (self)

QWidget QToolBox.currentWidget (self)

Returns a pointer to the current widget, or 0 if there is no such item.

See also currentIndex() and setCurrentWidget().

bool QToolBox.event (self, QEvent e)

Reimplemented from QObject.event().

int QToolBox.indexOf (self, QWidget widget)

Returns the index of widget, or -1 if the item does not exist.

int QToolBox.insertItem (self, int index, QWidget item, QString text)

The item argument has it's ownership transferred to Qt.

Inserts the widget at position index, or at the bottom of the toolbox if index is out of range. The new item's text is set to text, and the icon is displayed to the left of the text. Returns the new item's index.

int QToolBox.insertItem (self, int index, QWidget widget, QIcon icon, QString text)

The widget argument has it's ownership transferred to Qt.

This is an overloaded function.

Inserts the widget at position index, or at the bottom of the toolbox if index is out of range. The new item's text is set to text. Returns the new item's index.

bool QToolBox.isItemEnabled (self, int index)

Returns true if the item at position index is enabled; otherwise returns false.

QIcon QToolBox.itemIcon (self, int index)

Returns the icon of the item at position index, or a null icon if index is out of range.

See also setItemIcon().

QToolBox.itemInserted (self, int index)

This virtual handler is called after a new item was added or inserted at position index.

See also itemRemoved().

QToolBox.itemRemoved (self, int index)

This virtual handler is called after an item was removed from position index.

See also itemInserted().

QString QToolBox.itemText (self, int index)

Returns the text of the item at position index, or an empty string if index is out of range.

See also setItemText().

QString QToolBox.itemToolTip (self, int index)

Returns the tooltip of the item at position index, or an empty string if index is out of range.

See also setItemToolTip().

QToolBox.removeItem (self, int index)

Removes the item at position index from the toolbox. Note that the widget is not deleted.

QToolBox.setCurrentIndex (self, int index)

This method is also a Qt slot with the C++ signature void setCurrentIndex(int).

QToolBox.setCurrentWidget (self, QWidget widget)

This method is also a Qt slot with the C++ signature void setCurrentWidget(QWidget*).

Makeswidget the current widget. The widget must be an item in this tool box.

See also addItem(), setCurrentIndex(), and currentWidget().

QToolBox.setItemEnabled (self, int index, bool enabled)

If enabled is true then the item at position index is enabled; otherwise the item at position index is disabled.

See also isItemEnabled().

QToolBox.setItemIcon (self, int index, QIcon icon)

Sets the icon of the item at position index to icon.

See also itemIcon().

QToolBox.setItemText (self, int index, QString text)

Sets the text of the item at position index to text.

If the provided text contains an ampersand character ('&'), a mnemonic is automatically created for it. The character that follows the '&' will be used as the shortcut key. Any previous mnemonic will be overwritten, or cleared if no mnemonic is defined by the text. See the QShortcut documentation for details (to display an actual ampersand, use '&&').

See also itemText().

QToolBox.setItemToolTip (self, int index, QString toolTip)

Sets the tooltip of the item at position index to toolTip.

See also itemToolTip().

QToolBox.showEvent (self, QShowEvent e)

Reimplemented from QWidget.showEvent().

QWidget QToolBox.widget (self, int index)

Returns the widget at position index, or 0 if there is no such item.

QToolBox.__len__ (self)


Qt Signal Documentation

void currentChanged (int)

This is the default overload of this signal.

This signal is emitted when the current item is changed. The new current item's index is passed in index, or -1 if there is no current item.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtoolbutton.html0000644000076500000240000004244312536324515020752 0ustar philstaff00000000000000 QToolButton Class Reference
  Home · All Classes · Modules

QToolButton Class Reference
[
QtGui module]

The QToolButton class provides a quick-access button to commands or options, usually used inside a QToolBar. More...

Inherits QAbstractButton.

Types

Methods

Qt Signals


Detailed Description

The QToolButton class provides a quick-access button to commands or options, usually used inside a QToolBar.

A tool button is a special button that provides quick-access to specific commands or options. As opposed to a normal command button, a tool button usually doesn't show a text label, but shows an icon instead.

Tool buttons are normally created when new QAction instances are created with QToolBar.addAction() or existing actions are added to a toolbar with QToolBar.addAction(). It is also possible to construct tool buttons in the same way as any other widget, and arrange them alongside other widgets in layouts.

One classic use of a tool button is to select tools; for example, the "pen" tool in a drawing program. This would be implemented by using a QToolButton as a toggle button (see setToggleButton()).

QToolButton supports auto-raising. In auto-raise mode, the button draws a 3D frame only when the mouse points at it. The feature is automatically turned on when a button is used inside a QToolBar. Change it with setAutoRaise().

A tool button's icon is set as QIcon. This makes it possible to specify different pixmaps for the disabled and active state. The disabled pixmap is used when the button's functionality is not available. The active pixmap is displayed when the button is auto-raised because the mouse pointer is hovering over it.

The button's look and dimension is adjustable with setToolButtonStyle() and setIconSize(). When used inside a QToolBar in a QMainWindow, the button automatically adjusts to QMainWindow's settings (see QMainWindow.setToolButtonStyle() and QMainWindow.setIconSize()). Instead of an icon, a tool button can also display an arrow symbol, specified with arrowType.

A tool button can offer additional choices in a popup menu. The popup menu can be set using setMenu(). Use setPopupMode() to configure the different modes available for tool buttons with a menu set. The default mode is DelayedPopupMode which is sometimes used with the "Back" button in a web browser. After pressing and holding the button down for a while, a menu pops up showing a list of possible pages to jump to. The default delay is 600 ms; you can adjust it with setPopupDelay().

Qt Assistant's toolbar with tool buttons
Qt Assistant's toolbar contains tool buttons that are associated with actions used in other parts of the main window.

Type Documentation

QToolButton.ToolButtonPopupMode

Describes how a menu should be popped up for tool buttons that has a menu set or contains a list of actions.

Constant Value Description
QToolButton.DelayedPopup 0 After pressing and holding the tool button down for a certain amount of time (the timeout is style dependant, see QStyle.SH_ToolButton_PopupDelay), the menu is displayed. A typical application example is the "back" button in some web browsers's tool bars. If the user clicks it, the browser simply browses back to the previous page. If the user presses and holds the button down for a while, the tool button shows a menu containing the current history list
QToolButton.MenuButtonPopup 1 In this mode the tool button displays a special arrow to indicate that a menu is present. The menu is displayed when the arrow part of the button is pressed.
QToolButton.InstantPopup 2 The menu is displayed, without delay, when the tool button is pressed. In this mode, the button's own action is not triggered.

Method Documentation

QToolButton.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty tool button with parent parent.

QToolButton.actionEvent (self, QActionEvent)

Reimplemented from QWidget.actionEvent().

Qt.ArrowType QToolButton.arrowType (self)

bool QToolButton.autoRaise (self)

QToolButton.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QAction QToolButton.defaultAction (self)

Returns the default action.

See also setDefaultAction().

QToolButton.enterEvent (self, QEvent)

Reimplemented from QWidget.enterEvent().

bool QToolButton.event (self, QEvent e)

Reimplemented from QObject.event().

bool QToolButton.hitButton (self, QPoint pos)

Reimplemented from QAbstractButton.hitButton().

QToolButton.initStyleOption (self, QStyleOptionToolButton option)

Initialize option with the values from this QToolButton. This method is useful for subclasses when they need a QStyleOptionToolButton, but don't want to fill in all the information themselves.

See also QStyleOption.initFrom().

QToolButton.leaveEvent (self, QEvent)

Reimplemented from QWidget.leaveEvent().

QMenu QToolButton.menu (self)

Returns the associated menu, or 0 if no menu has been defined.

See also setMenu().

QSize QToolButton.minimumSizeHint (self)

Reimplemented from QWidget.minimumSizeHint().

QToolButton.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

QToolButton.mouseReleaseEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QToolButton.nextCheckState (self)

Reimplemented from QAbstractButton.nextCheckState().

QToolButton.paintEvent (self, QPaintEvent)

Reimplemented from QWidget.paintEvent().

Paints the button in response to the paint event.

ToolButtonPopupMode QToolButton.popupMode (self)

QToolButton.setArrowType (self, Qt.ArrowType type)

QToolButton.setAutoRaise (self, bool enable)

QToolButton.setDefaultAction (self, QAction)

This method is also a Qt slot with the C++ signature void setDefaultAction(QAction*).

Sets the default action to action.

If a tool button has a default action, the action defines the button's properties like text, icon, tool tip, etc.

See also defaultAction().

QToolButton.setMenu (self, QMenu menu)

Associates the given menu with this tool button.

The menu will be shown according to the button's popupMode.

Ownership of the menu is not transferred to the tool button.

See also menu().

QToolButton.setPopupMode (self, ToolButtonPopupMode mode)

QToolButton.setToolButtonStyle (self, Qt.ToolButtonStyle style)

This method is also a Qt slot with the C++ signature void setToolButtonStyle(Qt::ToolButtonStyle).

QToolButton.showMenu (self)

This method is also a Qt slot with the C++ signature void showMenu().

Shows (pops up) the associated popup menu. If there is no such menu, this function does nothing. This function does not return until the popup menu has been closed by the user.

QSize QToolButton.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QToolButton.timerEvent (self, QTimerEvent)

Reimplemented from QObject.timerEvent().

Qt.ToolButtonStyle QToolButton.toolButtonStyle (self)


Qt Signal Documentation

void triggered (QAction*)

This is the default overload of this signal.

This signal is emitted when the given action is triggered.

The action may also be associated with other parts of the user interface, such as menu items and keyboard shortcuts. Sharing actions in this way helps make the user interface more consistent and is often less work to implement.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtooltip.html0000644000076500000240000002122612536324516020230 0ustar philstaff00000000000000 QToolTip Class Reference
  Home · All Classes · Modules

QToolTip Class Reference
[
QtGui module]

The QToolTip class provides tool tips (balloon help) for any widget. More...

Methods

Static Methods


Detailed Description

The QToolTip class provides tool tips (balloon help) for any widget.

The tip is a short piece of text reminding the user of the widget's function. It is drawn immediately below the given position in a distinctive black-on-yellow color combination. The tip can be any rich text formatted string.

Rich text displayed in a tool tip is implicitly word-wrapped unless specified differently with <p style='white-space:pre'>.

The simplest and most common way to set a widget's tool tip is by calling its QWidget.setToolTip() function.

It is also possible to show different tool tips for different regions of a widget, by using a QHelpEvent of type QEvent.ToolTip. Intercept the help event in your widget's event() function and call QToolTip.showText() with the text you want to display. The Tooltips example illustrates this technique.

If you are calling QToolTip.hideText(), or QToolTip.showText() with an empty string, as a result of a ToolTip-event you should also call ignore() on the event, to signal that you don't want to start any tooltip specific modes.

Note that, if you want to show tooltips in an item view, the model/view architecture provides functionality to set an item's tool tip; e.g., the QTableWidgetItem.setToolTip() function. However, if you want to provide custom tool tips in an item view, you must intercept the help event in the QAbstractItemView.viewportEvent() function and handle it yourself.

The default tool tip color and font can be customized with setPalette() and setFont(). When a tooltip is currently on display, isVisible() returns true and text() the currently visible text.

Note: Tool tips use the inactive color group of QPalette, because tool tips are not active windows.


Method Documentation

QToolTip.__init__ (self, QToolTip)

QFont QToolTip.font ()

Returns the font used to render tooltips.

This function was introduced in Qt 4.2.

See also setFont().

QToolTip.hideText ()

Hides the tool tip. This is the same as calling showText() with an empty string.

This function was introduced in Qt 4.2.

See also showText().

bool QToolTip.isVisible ()

Returns true if this tooltip is currently shown.

This function was introduced in Qt 4.4.

See also showText().

QPalette QToolTip.palette ()

Returns the palette used to render tooltips.

Note: Tool tips use the inactive color group of QPalette, because tool tips are not active windows.

See also setPalette().

QToolTip.setFont (QFont)

Sets the font used to render tooltips.

This function was introduced in Qt 4.2.

See also font().

QToolTip.setPalette (QPalette)

Sets the palette used to render tooltips.

Note: Tool tips use the inactive color group of QPalette, because tool tips are not active windows.

This function was introduced in Qt 4.2.

See also palette().

QToolTip.showText (QPoint pos, QString text, QWidget widget = None)

Shows text as a tool tip, with the global position pos as the point of interest. The tool tip will be shown with a platform specific offset from this point of interest.

If you specify a non-empty rect the tip will be hidden as soon as you move your cursor out of this area.

The rect is in the coordinates of the widget you specify with w. If the rect is not empty you must specify a widget. Otherwise this argument can be 0 but it is used to determine the appropriate screen on multi-head systems.

If text is empty the tool tip is hidden. If the text is the same as the currently shown tooltip, the tip will not move. You can force moving by first hiding the tip with an empty text, and then showing the new tip at the new position.

QToolTip.showText (QPoint pos, QString text, QWidget w, QRect rect)

This is an overloaded function.

This is analogous to calling QToolTip.showText(pos, text, w, QRect())

QString QToolTip.text ()

Returns the tooltip text, if a tooltip is visible, or an empty string if a tooltip is not visible.

This function was introduced in Qt 4.4.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtopengl.html0000644000076500000240000001707612536324470020215 0ustar philstaff00000000000000 QtOpenGL Module
  Home · All Classes · Modules

QtOpenGL Module

The QtOpenGL module provides classes that make it easy to use OpenGL in PyQt applications. More...

Types


Detailed Description

The QtOpenGL module offers classes that make it easy to use OpenGL in PyQt applications.

OpenGL is a standard API for rendering 3D graphics. OpenGL only deals with 3D rendering and provides little or no support for GUI programming issues. The user interface for an OpenGL application must be created with another toolkit, such as Motif on the X platform, Microsoft Foundation Classes (MFC) under Windows, or Qt on both platforms.

Note: OpenGL is a trademark of Silicon Graphics, Inc. in the United States and other countries.

The Qt OpenGL module makes it easy to use OpenGL in PyQt applications. It provides an OpenGL widget class that can be used just like any other Qt widget, except that it opens an OpenGL display buffer where you can use the OpenGL API to render the contents.

To import the module use, for example, the following statement:

from PyQt4 import QtOpenGL

The Qt OpenGL module is implemented as a platform-independent Qt/C++ wrapper around the platform-dependent GLX, WGL, or AGL C APIs. The functionality provided is very similar to Mark Kilgard's GLUT library, but with much more non-OpenGL-specific GUI functionality, i.e. the whole Qt API.

Warning: The QtOpenGL module is part of the Qt Desktop Edition and the Qt Open Source Edition. It is available on Windows, X11, and Mac OS X. The module is not part of Qtopia Core.

Installation

When you install Qt for X11, the configure script will autodetect if OpenGL headers and libraries are installed on your system, and if so, it will include the QtOpenGL module in the Qt library. (If your OpenGL headers or libraries are placed in a non-standard directory, you may need to change the QMAKE_INCDIR_OPENGL and/or QMAKE_LIBDIR_OPENGL in the config file for your system).

When you install Qt for Windows and Mac OS X, the QtOpenGL module is always included. X11 users might like to read the notes on overlays below.

The QGL documentation assumes that you are familiar with OpenGL programming. If you're new to the subject a good starting point is http://www.opengl.org/.

How to Use X11 Overlays with Qt

X11 overlays are a powerful mechanism for drawing annotations etc., on top of an image without destroying it, thus saving a great deal of image rendering time. For more information, see the highly recommended book OpenGL Programming for the X Window System (Mark Kilgard, Addison Wesley Developers Press 1996).

Warning: The Qt OpenGL Extension includes direct support for the use of OpenGL overlays. For many uses of overlays, this makes the technique described below redundant. The following is a discussion on how to use non-QGL widgets in overlay planes.

In the typical case, X11 overlays can easily be used together with the current version of Qt and the Qt OpenGL Extension. The following requirements apply:

  1. Your X server and graphics card/hardware must support overlays. For many X servers, overlay support can be turned on with a configuration option; consult your X server installation documentation.
  2. Your X server must (be configured to) use an overlay visual as the default visual. Most modern X servers do this, since this has the added advantage that pop-up menus, overlapping windows etc., will not affect underlying images in the main plane, thereby avoiding expensive redraws.
  3. The best (deepest) visual for OpenGL rendering is in the main plane. This is the normal case. Typically, X servers that support overlays provide a 24-bit TrueColor visual in the main plane, and an 8-bit PseudoColor (default) visual in the overlay plane.

Assuming that the requirements mentioned above are met, a QGLWidget will default to using the main plane visual, while all other widgets will use the overlay visual. Thus, we can place a normal widget on top of the QGLWidget, and do drawing on it, without affecting the image in the OpenGL window. In other words, we can use all the drawing capabilities of QPainter to draw annotations, rubberbands, etc. For the typical use of overlays, this is much easier than using OpenGL for rendering annotations.

An overlay plane has a specific color called the transparent color. Pixels drawn in this color will not be visible; instead the underlying OpenGL image will show through.

To use this technique, you must not use the QApplication.ManyColor or QApplication.TrueColor color specification for QApplication, because this will force the normal Qt widgets to use a TrueColor visual, which will typically be in the main plane, not in the overlay plane as desired.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtouchevent-touchpoint.html0000644000076500000240000003026112536324503023107 0ustar philstaff00000000000000 QTouchEvent.TouchPoint Class Reference
  Home · All Classes · Modules

QTouchEvent.TouchPoint Class Reference
[QtGui module]

The TouchPoint class provides information about a touch point in a QTouchEvent. More...

Methods


Detailed Description

The TouchPoint class provides information about a touch point in a QTouchEvent.


Method Documentation

int TouchPoint.id (self)

Returns the id number of this touch point.

Id numbers are globally sequential, starting at zero, meaning the first touch point in the application has id 0, the second has id 1, and so on.

bool TouchPoint.isPrimary (self)

Returns true if this touch point is the primary touch point. The primary touch point is the point for which the windowing system generates mouse events.

QPointF TouchPoint.lastNormalizedPos (self)

Returns the normalized position of this touch point from the previous touch event.

The coordinates are normalized to the size of the touch device, i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner.

See also normalizedPos() and startNormalizedPos().

QPointF TouchPoint.lastPos (self)

Returns the position of this touch point from the previous touch event, relative to the widget or QGraphicsItem that received the event.

See also pos() and startPos().

QPointF TouchPoint.lastScenePos (self)

Returns the scene position of this touch point from the previous touch event.

The scene position is the position in QGraphicsScene coordinates if the QTouchEvent is handled by a QGraphicsItem.touchEvent() reimplementation, and identical to the screen position for widgets.

See also scenePos() and startScenePos().

QPointF TouchPoint.lastScreenPos (self)

Returns the screen position of this touch point from the previous touch event.

See also screenPos() and startScreenPos().

QPointF TouchPoint.normalizedPos (self)

Returns the normalized position of this touch point.

The coordinates are normalized to the size of the touch device, i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner.

See also startNormalizedPos(), lastNormalizedPos(), and pos().

QPointF TouchPoint.pos (self)

Returns the position of this touch point, relative to the widget or QGraphicsItem that received the event.

See also startPos(), lastPos(), screenPos(), scenePos(), and normalizedPos().

float TouchPoint.pressure (self)

Returns the pressure of this touch point. The return value is in the range 0.0 to 1.0.

QRectF TouchPoint.rect (self)

Returns the rect for this touch point, relative to the widget or QGraphicsItem that received the event. The rect is centered around the point returned by pos().

Note: This function returns an empty rect if the device does not report touch point sizes.

QPointF TouchPoint.scenePos (self)

Returns the scene position of this touch point.

The scene position is the position in QGraphicsScene coordinates if the QTouchEvent is handled by a QGraphicsItem.touchEvent() reimplementation, and identical to the screen position for widgets.

See also startScenePos(), lastScenePos(), and pos().

QRectF TouchPoint.sceneRect (self)

Returns the rect for this touch point in scene coordinates.

Note: This function returns an empty rect if the device does not report touch point sizes.

See also scenePos() and rect().

QPointF TouchPoint.screenPos (self)

Returns the screen position of this touch point.

See also startScreenPos(), lastScreenPos(), and pos().

QRectF TouchPoint.screenRect (self)

Returns the rect for this touch point in screen coordinates.

Note: This function returns an empty rect if the device does not report touch point sizes.

See also screenPos() and rect().

QPointF TouchPoint.startNormalizedPos (self)

Returns the normalized starting position of this touch point.

The coordinates are normalized to the size of the touch device, i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner.

See also normalizedPos() and lastNormalizedPos().

QPointF TouchPoint.startPos (self)

Returns the starting position of this touch point, relative to the widget or QGraphicsItem that received the event.

See also pos() and lastPos().

QPointF TouchPoint.startScenePos (self)

Returns the starting scene position of this touch point.

The scene position is the position in QGraphicsScene coordinates if the QTouchEvent is handled by a QGraphicsItem.touchEvent() reimplementation, and identical to the screen position for widgets.

See also scenePos() and lastScenePos().

QPointF TouchPoint.startScreenPos (self)

Returns the starting screen position of this touch point.

See also screenPos() and lastScreenPos().

Qt.TouchPointState TouchPoint.state (self)

Returns the current state of this touch point.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtouchevent.html0000644000076500000240000003324212536324503020717 0ustar philstaff00000000000000 QTouchEvent Class Reference
  Home · All Classes · Modules

QTouchEvent Class Reference
[QtGui module]

The QTouchEvent class contains parameters that describe a touch event. More...

Inherits QInputEvent.

Types

Methods

  • __init__ (self, QEvent.Type eventType, DeviceType deviceType = QTouchEvent.TouchScreen, Qt.KeyboardModifiers modifiers = Qt.NoModifier, Qt.TouchPointStates touchPointStates = 0, list-of-QTouchEvent.TouchPoint touchPoints = QList<QTouchEvent.TouchPoint>())
  • __init__ (self, QTouchEvent)
  • DeviceType deviceType (self)
  • list-of-QTouchEvent.TouchPoint touchPoints (self)
  • Qt.TouchPointStates touchPointStates (self)
  • QWidget widget (self)

Detailed Description

The QTouchEvent class contains parameters that describe a touch event.

Enabling Touch Events

Touch events occur when pressing, releasing, or moving one or more touch points on a touch device (such as a touch-screen or track-pad). To receive touch events, widgets have to have the Qt.WA_AcceptTouchEvents attribute set and graphics items need to have the acceptTouchEvents attribute set to true.

When using QAbstractScrollArea based widgets, you should enable the Qt.WA_AcceptTouchEvents attribute on the scroll area's viewport.

Similarly to QMouseEvent, Qt automatically grabs each touch point on the first press inside a widget, and the widget will receive all updates for the touch point until it is released. Note that it is possible for a widget to receive events for numerous touch points, and that multiple widgets may be receiving touch events at the same time.

Event Handling

All touch events are of type QEvent.TouchBegin, QEvent.TouchUpdate, or QEvent.TouchEnd. Reimplement QWidget.event() or QAbstractScrollArea.viewportEvent() for widgets and QGraphicsItem.sceneEvent() for items in a graphics view to receive touch events.

The QEvent.TouchUpdate and QEvent.TouchEnd events are sent to the widget or item that accepted the QEvent.TouchBegin event. If the QEvent.TouchBegin event is not accepted and not filtered by an event filter, then no further touch events are sent until the next QEvent.TouchBegin.

The touchPoints() function returns a list of all touch points contained in the event. Information about each touch point can be retrieved using the QTouchEvent.TouchPoint class. The Qt.TouchPointState enum describes the different states that a touch point may have.

Event Delivery and Propagation

By default, QWidget.event() translates the first non-primary touch point in a QTouchEvent into a QMouseEvent. This makes it possible to enable touch events on existing widgets that do not normally handle QTouchEvent. See below for information on some special considerations needed when doing this.

QEvent.TouchBegin is the first touch event sent to a widget. The QEvent.TouchBegin event contains a special accept flag that indicates whether the receiver wants the event. By default, the event is accepted. You should call ignore() if the touch event is not handled by your widget. The QEvent.TouchBegin event is propagated up the parent widget chain until a widget accepts it with accept(), or an event filter consumes it. For QGraphicsItems, the QEvent.TouchBegin event is propagated to items under the mouse (similar to mouse event propagation for QGraphicsItems).

Touch Point Grouping

As mentioned above, it is possible that several widgets can be receiving QTouchEvents at the same time. However, Qt makes sure to never send duplicate QEvent.TouchBegin events to the same widget, which could theoretically happen during propagation if, for example, the user touched 2 separate widgets in a QGroupBox and both widgets ignored the QEvent.TouchBegin event.

To avoid this, Qt will group new touch points together using the following rules:

  • When the first touch point is detected, the destination widget is determined firstly by the location on screen and secondly by the propagation rules.
  • When additional touch points are detected, Qt first looks to see if there are any active touch points on any ancestor or descendent of the widget under the new touch point. If there are, the new touch point is grouped with the first, and the new touch point will be sent in a single QTouchEvent to the widget that handled the first touch point. (The widget under the new touch point will not receive an event).

This makes it possible for sibling widgets to handle touch events independently while making sure that the sequence of QTouchEvents is always correct.

Mouse Events and the Primary Touch Point

QTouchEvent delivery is independent from that of QMouseEvent. On some windowing systems, mouse events are also sent for the primary touch point. This means it is possible for your widget to receive both QTouchEvent and QMouseEvent for the same user interaction point. You can use the QTouchEvent.TouchPoint.isPrimary() function to identify the primary touch point.

Note that on some systems, it is possible to receive touch events without a primary touch point. All this means is that there will be no mouse event generated for the touch points in the QTouchEvent.

Caveats


Type Documentation

QTouchEvent.DeviceType

This enum represents the type of device that generated a QTouchEvent.

Constant Value Description
QTouchEvent.TouchScreen 0 In this type of device, the touch surface and display are integrated. This means the surface and display typically have the same size, such that there is a direct relationship between the touch points' physical positions and the coordinate reported by QTouchEvent.TouchPoint. As a result, Qt allows the user to interact directly with multiple QWidgets and QGraphicsItems at the same time.
QTouchEvent.TouchPad 1 In this type of device, the touch surface is separate from the display. There is not a direct relationship between the physical touch location and the on-screen coordinates. Instead, they are calculated relative to the current mouse position, and the user must use the touch-pad to move this reference point. Unlike touch-screens, Qt allows users to only interact with a single QWidget or QGraphicsItem at a time.

Method Documentation

QTouchEvent.__init__ (self, QEvent.Type eventType, DeviceType deviceType = QTouchEvent.TouchScreen, Qt.KeyboardModifiers modifiers = Qt.NoModifier, Qt.TouchPointStates touchPointStates = 0, list-of-QTouchEvent.TouchPoint touchPoints = QList<QTouchEvent.TouchPoint>())

Constructs a QTouchEvent with the given eventType, deviceType, and touchPoints. The touchPointStates and modifiers are the current touch point states and keyboard modifiers at the time of the event.

QTouchEvent.__init__ (self, QTouchEvent)

DeviceType QTouchEvent.deviceType (self)

Returns the touch device Type, which is of type DeviceType.

list-of-QTouchEvent.TouchPoint QTouchEvent.touchPoints (self)

Returns the list of touch points contained in the touch event.

Qt.TouchPointStates QTouchEvent.touchPointStates (self)

Returns a bitwise OR of all the touch point states for this event.

QWidget QTouchEvent.widget (self)

Returns the widget on which the event occurred.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtransform.html0000644000076500000240000014350112536324516020552 0ustar philstaff00000000000000 QTransform Class Reference
  Home · All Classes · Modules

QTransform Class Reference
[QtGui module]

The QTransform class specifies 2D transformations of a coordinate system. More...

Types

Methods

  • __init__ (self)
  • __init__ (self, float m11, float m12, float m13, float m21, float m22, float m23, float m31, float m32, float m33 = 1)
  • __init__ (self, float h11, float h12, float h13, float h21, float h22, float h23)
  • __init__ (self, QMatrix mtx)
  • __init__ (self, QTransform)
  • QTransform adjoint (self)
  • float det (self)
  • float determinant (self)
  • float dx (self)
  • float dy (self)
  • (QTransform, bool invertible) inverted (self)
  • bool isAffine (self)
  • bool isIdentity (self)
  • bool isInvertible (self)
  • bool isRotating (self)
  • bool isScaling (self)
  • bool isTranslating (self)
  • float m11 (self)
  • float m12 (self)
  • float m13 (self)
  • float m21 (self)
  • float m22 (self)
  • float m23 (self)
  • float m31 (self)
  • float m32 (self)
  • float m33 (self)
  • (int tx, int ty) map (self, int x, int y)
  • (float tx, float ty) map (self, float x, float y)
  • QPoint map (self, QPoint p)
  • QPointF map (self, QPointF p)
  • QLine map (self, QLine l)
  • QLineF map (self, QLineF l)
  • QPolygonF map (self, QPolygonF a)
  • QPolygon map (self, QPolygon a)
  • QRegion map (self, QRegion r)
  • QPainterPath map (self, QPainterPath p)
  • QRect mapRect (self, QRect)
  • QRectF mapRect (self, QRectF)
  • QPolygon mapToPolygon (self, QRect r)
  • reset (self)
  • QTransform rotate (self, float angle, Qt.Axis axis = Qt.ZAxis)
  • QTransform rotateRadians (self, float angle, Qt.Axis axis = Qt.ZAxis)
  • QTransform scale (self, float sx, float sy)
  • setMatrix (self, float m11, float m12, float m13, float m21, float m22, float m23, float m31, float m32, float m33)
  • QTransform shear (self, float sh, float sv)
  • QMatrix toAffine (self)
  • QTransform translate (self, float dx, float dy)
  • QTransform transposed (self)
  • TransformationType type (self)

Static Methods

Special Methods


Detailed Description

This class can be pickled.

The QTransform class specifies 2D transformations of a coordinate system.

A transformation specifies how to translate, scale, shear, rotate or project the coordinate system, and is typically used when rendering graphics.

QTransform differs from QMatrix(obsolete) in that it is a true 3x3 matrix, allowing perspective transformations. QTransform's toAffine() method allows casting QTransform to QMatrix(obsolete). If a perspective transformation has been specified on the matrix, then the conversion will cause loss of data.

QTransform is the recommended transformation class in Qt.

A QTransform object can be built using the setMatrix(), scale(), rotate(), translate() and shear() functions. Alternatively, it can be built by applying basic matrix operations. The matrix can also be defined when constructed, and it can be reset to the identity matrix (the default) using the reset() function.

The QTransform class supports mapping of graphic primitives: A given point, line, polygon, region, or painter path can be mapped to the coordinate system defined by this matrix using the map() function. In case of a rectangle, its coordinates can be transformed using the mapRect() function. A rectangle can also be transformed into a polygon (mapped to the coordinate system defined by this matrix), using the mapToPolygon() function.

QTransform provides the isIdentity() function which returns true if the matrix is the identity matrix, and the isInvertible() function which returns true if the matrix is non-singular (i.e. AB = BA = I). The inverted() function returns an inverted copy of this matrix if it is invertible (otherwise it returns the identity matrix), and adjoint() returns the matrix's classical adjoint. In addition, QTransform provides the determinant() function which returns the matrix's determinant.

Finally, the QTransform class supports matrix multiplication, addition and subtraction, and objects of the class can be streamed as well as compared.

Rendering Graphics

When rendering graphics, the matrix defines the transformations but the actual transformation is performed by the drawing routines in QPainter.

By default, QPainter operates on the associated device's own coordinate system. The standard coordinate system of a QPaintDevice has its origin located at the top-left position. The x values increase to the right; y values increase downward. For a complete description, see the coordinate system documentation.

QPainter has functions to translate, scale, shear and rotate the coordinate system without using a QTransform. For example:

 void SimpleTransformation.paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     painter.setPen(QPen(Qt.blue, 1, Qt.DashLine));
     painter.drawRect(0, 0, 100, 100);

     painter.rotate(45);

     painter.setFont(QFont("Helvetica", 24));
     painter.setPen(QPen(Qt.black, 1));
     painter.drawText(20, 10, "QTransform");
 }

Although these functions are very convenient, it can be more efficient to build a QTransform and call QPainter.setTransform() if you want to perform more than a single transform operation. For example:

 void CombinedTransformation.paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     painter.setPen(QPen(Qt.blue, 1, Qt.DashLine));
     painter.drawRect(0, 0, 100, 100);

     QTransform transform;
     transform.translate(50, 50);
     transform.rotate(45);
     transform.scale(0.5, 1.0);
     painter.setTransform(transform);

     painter.setFont(QFont("Helvetica", 24));
     painter.setPen(QPen(Qt.black, 1));
     painter.drawText(20, 10, "QTransform");
 }

Basic Matrix Operations

A QTransform object contains a 3 x 3 matrix. The m31 (dx) and m32 (dy) elements specify horizontal and vertical translation. The m11 and m22 elements specify horizontal and vertical scaling. The m21 and m12 elements specify horizontal and vertical shearing. And finally, the m13 and m23 elements specify horizontal and vertical projection, with m33 as an additional projection factor.

QTransform transforms a point in the plane to another point using the following formulas:

 x' = m11*x + m21*y + dx
 y' = m22*y + m12*x + dy
 if (is not affine) {
     w' = m13*x + m23*y + m33
     x' /= w'
     y' /= w'
 }

The point (x, y) is the original point, and (x', y') is the transformed point. (x', y') can be transformed back to (x, y) by performing the same operation on the inverted() matrix.

The various matrix elements can be set when constructing the matrix, or by using the setMatrix() function later on. They can also be manipulated using the translate(), rotate(), scale() and shear() convenience functions. The currently set values can be retrieved using the m11(), m12(), m13(), m21(), m22(), m23(), m31(), m32(), m33(), dx() and dy() functions.

Translation is the simplest transformation. Setting dx and dy will move the coordinate system dx units along the X axis and dy units along the Y axis. Scaling can be done by setting m11 and m22. For example, setting m11 to 2 and m22 to 1.5 will double the height and increase the width by 50%. The identity matrix has m11, m22, and m33 set to 1 (all others are set to 0) mapping a point to itself. Shearing is controlled by m12 and m21. Setting these elements to values different from zero will twist the coordinate system. Rotation is achieved by setting both the shearing factors and the scaling factors. Perspective transformation is achieved by setting both the projection factors and the scaling factors.

Here's the combined transformations example using basic matrix operations:

 void BasicOperations.paintEvent(QPaintEvent *)
 {
     double pi = 3.14;

     double a    = pi/180 * 45.0;
     double sina = sin(a);
     double cosa = cos(a);

     QTransform translationTransform(1, 0, 0, 1, 50.0, 50.0);
     QTransform rotationTransform(cosa, sina, -sina, cosa, 0, 0);
     QTransform scalingTransform(0.5, 0, 0, 1.0, 0, 0);

     QTransform transform;
     transform = scalingTransform * rotationTransform * translationTransform;

     QPainter painter(this);
     painter.setPen(QPen(Qt.blue, 1, Qt.DashLine));
     painter.drawRect(0, 0, 100, 100);

     painter.setTransform(transform);

     painter.setFont(QFont("Helvetica", 24));
     painter.setPen(QPen(Qt.black, 1));
     painter.drawText(20, 10, "QTransform");
 }

Type Documentation

QTransform.TransformationType

Constant Value
QTransform.TxNone 0x00
QTransform.TxTranslate 0x01
QTransform.TxScale 0x02
QTransform.TxRotate 0x04
QTransform.TxShear 0x08
QTransform.TxProject 0x10

Method Documentation

QTransform.__init__ (self)

Constructs an identity matrix.

All elements are set to zero except m11 and m22 (specifying the scale) and m13 which are set to 1.

See also reset().

QTransform.__init__ (self, float m11, float m12, float m13, float m21, float m22, float m23, float m31, float m32, float m33 = 1)

QTransform.__init__ (self, float h11, float h12, float h13, float h21, float h22, float h23)

Constructs a matrix with the elements, m11, m12, m13, m21, m22, m23, m31, m32, m33.

See also setMatrix().

QTransform.__init__ (self, QMatrix mtx)

Constructs a matrix with the elements, m11, m12, m21, m22, dx and dy.

See also setMatrix().

QTransform.__init__ (self, QTransform)

Constructs a matrix that is a copy of the given matrix. Note that the m13, m23, and m33 elements are set to 0, 0, and 1 respectively.

QTransform QTransform.adjoint (self)

Returns the adjoint of this matrix.

float QTransform.det (self)

float QTransform.determinant (self)

Returns the matrix's determinant.

float QTransform.dx (self)

Returns the horizontal translation factor.

See also m31(), translate(), and Basic Matrix Operations.

float QTransform.dy (self)

Returns the vertical translation factor.

See also translate() and Basic Matrix Operations.

QTransform QTransform.fromScale (float dx, float dy)

Creates a matrix which corresponds to a scaling of sx horizontally and sy vertically. This is the same as QTransform().scale(sx, sy) but slightly faster.

This function was introduced in Qt 4.5.

QTransform QTransform.fromTranslate (float dx, float dy)

Creates a matrix which corresponds to a translation of dx along the x axis and dy along the y axis. This is the same as QTransform().translate(dx, dy) but slightly faster.

This function was introduced in Qt 4.5.

(QTransform, bool invertible) QTransform.inverted (self)

Returns an inverted copy of this matrix.

If the matrix is singular (not invertible), the returned matrix is the identity matrix. If invertible is valid (i.e. not 0), its value is set to true if the matrix is invertible, otherwise it is set to false.

See also isInvertible().

bool QTransform.isAffine (self)

Returns true if the matrix represent an affine transformation, otherwise returns false.

bool QTransform.isIdentity (self)

Returns true if the matrix is the identity matrix, otherwise returns false.

See also reset().

bool QTransform.isInvertible (self)

Returns true if the matrix is invertible, otherwise returns false.

See also inverted().

bool QTransform.isRotating (self)

Returns true if the matrix represents some kind of a rotating transformation, otherwise returns false.

See also reset().

bool QTransform.isScaling (self)

Returns true if the matrix represents a scaling transformation, otherwise returns false.

See also reset().

bool QTransform.isTranslating (self)

Returns true if the matrix represents a translating transformation, otherwise returns false.

See also reset().

float QTransform.m11 (self)

Returns the horizontal scaling factor.

See also scale() and Basic Matrix Operations.

float QTransform.m12 (self)

Returns the vertical shearing factor.

See also shear() and Basic Matrix Operations.

float QTransform.m13 (self)

Returns the horizontal projection factor.

See also translate() and Basic Matrix Operations.

float QTransform.m21 (self)

Returns the horizontal shearing factor.

See also shear() and Basic Matrix Operations.

float QTransform.m22 (self)

Returns the vertical scaling factor.

See also scale() and Basic Matrix Operations.

float QTransform.m23 (self)

Returns the vertical projection factor.

See also translate() and Basic Matrix Operations.

float QTransform.m31 (self)

Returns the horizontal translation factor.

See also dx(), translate(), and Basic Matrix Operations.

float QTransform.m32 (self)

Returns the vertical translation factor.

See also dy(), translate(), and Basic Matrix Operations.

float QTransform.m33 (self)

Returns the division factor.

See also translate() and Basic Matrix Operations.

(int tx, int ty) QTransform.map (self, int x, int y)

Maps the given coordinates x and y into the coordinate system defined by this matrix. The resulting values are put in *tx and *ty, respectively.

The coordinates are transformed using the following formulas:

 x' = m11*x + m21*y + dx
 y' = m22*y + m12*x + dy
 if (is not affine) {
     w' = m13*x + m23*y + m33
     x' /= w'
     y' /= w'
 }

The point (x, y) is the original point, and (x', y') is the transformed point.

See also Basic Matrix Operations.

(float tx, float ty) QTransform.map (self, float x, float y)

This is an overloaded function.

Creates and returns a QPointF object that is a copy of the given point, p, mapped into the coordinate system defined by this matrix.

QPoint QTransform.map (self, QPoint p)

This is an overloaded function.

Creates and returns a QPoint object that is a copy of the given point, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.

QPointF QTransform.map (self, QPointF p)

This is an overloaded function.

Creates and returns a QLineF object that is a copy of the given line, l, mapped into the coordinate system defined by this matrix.

QLine QTransform.map (self, QLine l)

This is an overloaded function.

Creates and returns a QLine object that is a copy of the given line, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.

QLineF QTransform.map (self, QLineF l)

This is an overloaded function.

Creates and returns a QPolygonF object that is a copy of the given polygon, mapped into the coordinate system defined by this matrix.

QPolygonF QTransform.map (self, QPolygonF a)

This is an overloaded function.

Creates and returns a QPolygon object that is a copy of the given polygon, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.

QPolygon QTransform.map (self, QPolygon a)

This is an overloaded function.

Creates and returns a QRegion object that is a copy of the given region, mapped into the coordinate system defined by this matrix.

Calling this method can be rather expensive if rotations or shearing are used.

QRegion QTransform.map (self, QRegion r)

This is an overloaded function.

Creates and returns a QPainterPath object that is a copy of the given path, mapped into the coordinate system defined by this matrix.

QPainterPath QTransform.map (self, QPainterPath p)

This is an overloaded function.

Maps the given coordinates x and y into the coordinate system defined by this matrix. The resulting values are put in *tx and *ty, respectively. Note that the transformed coordinates are rounded to the nearest integer.

QRect QTransform.mapRect (self, QRect)

Creates and returns a QRectF object that is a copy of the given rectangle, mapped into the coordinate system defined by this matrix.

The rectangle's coordinates are transformed using the following formulas:

 x' = m11*x + m21*y + dx
 y' = m22*y + m12*x + dy
 if (is not affine) {
     w' = m13*x + m23*y + m33
     x' /= w'
     y' /= w'
 }

If rotation or shearing has been specified, this function returns the bounding rectangle. To retrieve the exact region the given rectangle maps to, use the mapToPolygon() function instead.

See also mapToPolygon() and Basic Matrix Operations.

QRectF QTransform.mapRect (self, QRectF)

QPolygon QTransform.mapToPolygon (self, QRect r)

Creates and returns a QPolygon representation of the given rectangle, mapped into the coordinate system defined by this matrix.

The rectangle's coordinates are transformed using the following formulas:

 x' = m11*x + m21*y + dx
 y' = m22*y + m12*x + dy
 if (is not affine) {
     w' = m13*x + m23*y + m33
     x' /= w'
     y' /= w'
 }

Polygons and rectangles behave slightly differently when transformed (due to integer rounding), so matrix.map(QPolygon(rectangle)) is not always the same as matrix.mapToPolygon(rectangle).

See also mapRect() and Basic Matrix Operations.

bool QTransform.quadToQuad (QPolygonF one, QPolygonF two, QTransform result)

Creates a transformation matrix, trans, that maps a four-sided polygon, one, to another four-sided polygon, two. Returns true if the transformation is possible; otherwise returns false.

This is a convenience method combining quadToSquare() and squareToQuad() methods. It allows the input quad to be transformed into any other quad.

See also squareToQuad() and quadToSquare().

bool QTransform.quadToSquare (QPolygonF quad, QTransform result)

Creates a transformation matrix, trans, that maps a four-sided polygon, quad, to a unit square. Returns true if the transformation is constructed or false if such a transformation does not exist.

See also squareToQuad() and quadToQuad().

QTransform.reset (self)

Resets the matrix to an identity matrix, i.e. all elements are set to zero, except m11 and m22 (specifying the scale) and m33 which are set to 1.

See also QTransform(), isIdentity(), and Basic Matrix Operations.

QTransform QTransform.rotate (self, float angle, Qt.Axis axis = Qt.ZAxis)

Rotates the coordinate system counterclockwise by the given angle about the specified axis and returns a reference to the matrix.

Note that if you apply a QTransform to a point defined in widget coordinates, the direction of the rotation will be clockwise because the y-axis points downwards.

The angle is specified in degrees.

See also setMatrix().

QTransform QTransform.rotateRadians (self, float angle, Qt.Axis axis = Qt.ZAxis)

Rotates the coordinate system counterclockwise by the given angle about the specified axis and returns a reference to the matrix.

Note that if you apply a QTransform to a point defined in widget coordinates, the direction of the rotation will be clockwise because the y-axis points downwards.

The angle is specified in radians.

See also setMatrix().

QTransform QTransform.scale (self, float sx, float sy)

Scales the coordinate system by sx horizontally and sy vertically, and returns a reference to the matrix.

See also setMatrix().

QTransform.setMatrix (self, float m11, float m12, float m13, float m21, float m22, float m23, float m31, float m32, float m33)

Sets the matrix elements to the specified values, m11, m12, m13 m21, m22, m23 m31, m32 and m33. Note that this function replaces the previous values. QTransform provides the translate(), rotate(), scale() and shear() convenience functions to manipulate the various matrix elements based on the currently defined coordinate system.

See also QTransform().

QTransform QTransform.shear (self, float sh, float sv)

Shears the coordinate system by sh horizontally and sv vertically, and returns a reference to the matrix.

See also setMatrix().

bool QTransform.squareToQuad (QPolygonF square, QTransform result)

Creates a transformation matrix, trans, that maps a unit square to a four-sided polygon, quad. Returns true if the transformation is constructed or false if such a transformation does not exist.

See also quadToSquare() and quadToQuad().

QMatrix QTransform.toAffine (self)

Returns the QTransform as an affine matrix.

Warning: If a perspective transformation has been specified, then the conversion will cause loss of data.

QTransform QTransform.translate (self, float dx, float dy)

Moves the coordinate system dx along the x axis and dy along the y axis, and returns a reference to the matrix.

See also setMatrix().

QTransform QTransform.transposed (self)

Returns the transpose of this matrix.

TransformationType QTransform.type (self)

Returns the transformation type of this matrix.

The transformation type is the highest enumeration value capturing all of the matrix's transformations. For example, if the matrix both scales and shears, the type would be TxShear, because TxShear has a higher enumeration value than TxScale.

Knowing the transformation type of a matrix is useful for optimization: you can often handle specific types more optimally than handling the generic case.

QTransform QTransform.__add__ (self, float n)

QTransform QTransform.__div__ (self, float n)

bool QTransform.__eq__ (self, QTransform)

QTransform QTransform.__iadd__ (self, float num)

QTransform QTransform.__idiv__ (self, float div)

QTransform QTransform.__imul__ (self, QTransform)

QTransform QTransform.__imul__ (self, float num)

QTransform QTransform.__isub__ (self, float num)

QTransform QTransform.__mul__ (self, QTransform o)

QTransform QTransform.__mul__ (self, float n)

bool QTransform.__ne__ (self, QTransform)

QTransform QTransform.__sub__ (self, float n)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtranslator.html0000644000076500000240000003302412536324475020732 0ustar philstaff00000000000000 QTranslator Class Reference
  Home · All Classes · Modules

QTranslator Class Reference
[QtCore module]

The QTranslator class provides internationalization support for text output. More...

Inherits QObject.

Methods

  • __init__ (self, QObject parent = None)
  • bool isEmpty (self)
  • bool load (self, QString fileName, QString directory = QString(), QString searchDelimiters = QString(), QString suffix = QString())
  • bool load (self, QLocale locale, QString fileName, QString prefix = QString(), QString directory = QString(), QString suffix = QString())
  • bool loadFromData (self, str data)
  • QString translate (self, str context, str sourceText, str disambiguation = None)
  • QString translate (self, str context, str sourceText, str comment, int n)

Detailed Description

The QTranslator class provides internationalization support for text output.

An object of this class contains a set of translations from a source language to a target language. QTranslator provides functions to look up translations in a translation file. Translation files are created using Qt Linguist.

The most common use of QTranslator is to: load a translation file, install it using QApplication.installTranslator(), and use it via QObject.tr(). Here's the main() function from the Hello tr() example:

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     QTranslator translator;
     translator.load("hellotr_la");
     app.installTranslator(&translator);

     QPushButton hello(QPushButton.tr("Hello world!"));
     hello.resize(100, 30);

     hello.show();
     return app.exec();
 }

Note that the translator must be created before the application's widgets.

Most applications will never need to do anything else with this class. The other functions provided by this class are useful for applications that work on translator files.

Looking up Translations

It is possible to look up a translation using translate() (as tr() and QApplication.translate() do). The translate() function takes up to three parameters:

  • The context - usually the class name for the tr() caller.
  • The source text - usually the argument to tr().
  • The disambiguation - an optional string that helps disambiguate different uses of the same text in the same context.

For example, the "Cancel" in a dialog might have "Anuluj" when the program runs in Polish (in this case the source text would be "Cancel"). The context would (normally) be the dialog's class name; there would normally be no comment, and the translated text would be "Anuluj".

But it's not always so simple. The Spanish version of a printer dialog with settings for two-sided printing and binding would probably require both "Activado" and "Activada" as translations for "Enabled". In this case the source text would be "Enabled" in both cases, and the context would be the dialog's class name, but the two items would have disambiguations such as "two-sided printing" for one and "binding" for the other. The disambiguation enables the translator to choose the appropriate gender for the Spanish version, and enables Qt to distinguish between translations.

Using Multiple Translations

Multiple translation files can be installed in an application. Translations are searched for in the reverse order in which they were installed, so the most recently installed translation file is searched for translations first and the earliest translation file is searched last. The search stops as soon as a translation containing a matching string is found.

This mechanism makes it possible for a specific translation to be "selected" or given priority over the others; simply uninstall the translator from the application by passing it to the QApplication.removeTranslator() function and reinstall it with QApplication.installTranslator(). It will then be the first translation to be searched for matching strings.


Method Documentation

QTranslator.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty message file object with parent parent that is not connected to any file.

bool QTranslator.isEmpty (self)

Returns true if this translator is empty, otherwise returns false. This function works with stripped and unstripped translation files.

bool QTranslator.load (self, QString fileName, QString directory = QString(), QString searchDelimiters = QString(), QString suffix = QString())

Loads filename + suffix (".qm" if the suffix is not specified), which may be an absolute file name or relative to directory. Returns true if the translation is successfully loaded; otherwise returns false.

If directory is not specified, the directory of the application's executable is used (i.e., as applicationDirPath()).

The previous contents of this translator object are discarded.

If the file name does not exist, other file names are tried in the following order:

  1. File name without suffix appended.
  2. File name with text after a character in search_delimiters stripped ("_." is the default for search_delimiters if it is an empty string) and suffix.
  3. File name stripped without suffix appended.
  4. File name stripped further, etc.

For example, an application running in the fr_CA locale (French-speaking Canada) might call load("foo.fr_ca", "/opt/foolib"). load() would then try to open the first existing readable file from this list:

  1. /opt/foolib/foo.fr_ca.qm
  2. /opt/foolib/foo.fr_ca
  3. /opt/foolib/foo.fr.qm
  4. /opt/foolib/foo.fr
  5. /opt/foolib/foo.qm
  6. /opt/foolib/foo

bool QTranslator.load (self, QLocale locale, QString fileName, QString prefix = QString(), QString directory = QString(), QString suffix = QString())

Loads filename + prefix + ui language name + suffix (".qm" if the suffix is not specified), which may be an absolute file name or relative to directory. Returns true if the translation is successfully loaded; otherwise returns false.

The previous contents of this translator object are discarded.

If the file name does not exist, other file names are tried in the following order:

  1. File name without suffix appended.
  2. File name with ui language part after a "_" character stripped and suffix.
  3. File name with ui language part stripped without suffix appended.
  4. File name with ui language part stripped further, etc.

For example, an application running in the locale with the following ui languages - "es", "fr-CA", "de" might call load(QLocale.system(), "foo", ".", "/opt/foolib", ".qm"). load() would replace '-' (dash) with '_' (underscore) in the ui language and then try to open the first existing readable file from this list:

  1. /opt/foolib/foo.es.qm
  2. /opt/foolib/foo.es
  3. /opt/foolib/foo.fr_CA.qm
  4. /opt/foolib/foo.fr_CA
  5. /opt/foolib/foo.de.qm
  6. /opt/foolib/foo.de
  7. /opt/foolib/foo.fr.qm
  8. /opt/foolib/foo.fr
  9. /opt/foolib/foo.qm
  10. /opt/foolib/foo.
  11. /opt/foolib/foo

On operating systems where file system is case sensitive, QTranslator also tries to load a lower-cased version of the locale name.

This function was introduced in Qt 4.8.

bool QTranslator.loadFromData (self, str data)

QString QTranslator.translate (self, str context, str sourceText, str disambiguation = None)

Returns the translation for the key (context, sourceText, disambiguation). If none is found, also tries (context, sourceText, ""). If that still fails, returns an empty string.

If you need to programatically insert translations in to a QTranslator, this function can be reimplemented.

See also load().

QString QTranslator.translate (self, str context, str sourceText, str comment, int n)

This function overloads translate().

Returns the translation for the key (context, sourceText, disambiguation). If none is found, also tries (context, sourceText, ""). If that still fails, returns an empty string.

If n is not -1, it is used to choose an appropriate form for the translation (e.g. "%n file found" vs. "%n files found").

See also load().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtreeview.html0000644000076500000240000014327012536324516020374 0ustar philstaff00000000000000 QTreeView Class Reference
  Home · All Classes · Modules

QTreeView Class Reference
[QtGui module]

The QTreeView class provides a default model/view implementation of a tree view. More...

Inherits QAbstractItemView.

Inherited by QHelpContentWidget and QTreeWidget.

Methods

Qt Signals


Detailed Description

The QTreeView class provides a default model/view implementation of a tree view.

A QTreeView implements a tree representation of items from a model. This class is used to provide standard hierarchical lists that were previously provided by the QListView class, but using the more flexible approach provided by Qt's model/view architecture.

The QTreeView class is one of the Model/View Classes and is part of Qt's model/view framework.

QTreeView implements the interfaces defined by the QAbstractItemView class to allow it to display data provided by models derived from the QAbstractItemModel class.

It is simple to construct a tree view displaying data from a model. In the following example, the contents of a directory are supplied by a QFileSystemModel and displayed as a tree:

     QFileSystemModel *model = new QFileSystemModel;
     model->setRootPath(QDir.currentPath());
     QTreeView *tree = new QTreeView(splitter);
     tree->setModel(model);

The model/view architecture ensures that the contents of the tree view are updated as the model changes.

Items that have children can be in an expanded (children are visible) or collapsed (children are hidden) state. When this state changes a collapsed() or expanded() signal is emitted with the model index of the relevant item.

The amount of indentation used to indicate levels of hierarchy is controlled by the indentation property.

Headers in tree views are constructed using the QHeaderView class and can be hidden using header()->hide(). Note that each header is configured with its stretchLastSection property set to true, ensuring that the view does not waste any of the space assigned to it for its header. If this value is set to true, this property will override the resize mode set on the last section in the header.

Key Bindings

QTreeView supports a set of key bindings that enable the user to navigate in the view and interact with the contents of items:

Key Action
Up Moves the cursor to the item in the same column on the previous row. If the parent of the current item has no more rows to navigate to, the cursor moves to the relevant item in the last row of the sibling that precedes the parent.
Down Moves the cursor to the item in the same column on the next row. If the parent of the current item has no more rows to navigate to, the cursor moves to the relevant item in the first row of the sibling that follows the parent.
Left Hides the children of the current item (if present) by collapsing a branch.
Minus Same as LeftArrow.
Right Reveals the children of the current item (if present) by expanding a branch.
Plus Same as RightArrow.
Asterisk Expands all children of the current item (if present).
PageUp Moves the cursor up one page.
PageDown Moves the cursor down one page.
Home Moves the cursor to an item in the same column of the first row of the first top-level item in the model.
End Moves the cursor to an item in the same column of the last row of the last top-level item in the model.
F2 In editable models, this opens the current item for editing. The Escape key can be used to cancel the editing process and revert any changes to the data displayed.
Screenshot of a Windows XP style tree view Screenshot of a Macintosh style tree view Screenshot of a Plastique style tree view
A Windows XP style tree view. A Macintosh style tree view. A Plastique style tree view.

Improving Performance

It is possible to give the view hints about the data it is handling in order to improve its performance when displaying large numbers of items. One approach that can be taken for views that are intended to display items with equal heights is to set the uniformRowHeights property to true.


Method Documentation

QTreeView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a tree view with a parent to represent a model's data. Use setModel() to set the model.

See also QAbstractItemModel.

bool QTreeView.allColumnsShowFocus (self)

int QTreeView.autoExpandDelay (self)

QTreeView.collapse (self, QModelIndex index)

This method is also a Qt slot with the C++ signature void collapse(const QModelIndex&).

Collapses the model item specified by the index.

See also collapsed().

QTreeView.collapseAll (self)

This method is also a Qt slot with the C++ signature void collapseAll().

Collapses all expanded items.

This function was introduced in Qt 4.2.

See also expandAll(), expand(), collapse(), and setExpanded().

int QTreeView.columnAt (self, int x)

Returns the column in the tree view whose header covers the x coordinate given.

QTreeView.columnCountChanged (self, int oldCount, int newCount)

This method is also a Qt slot with the C++ signature void columnCountChanged(int,int).

Informs the tree view that the number of columns in the tree view has changed from oldCount to newCount.

QTreeView.columnMoved (self)

This method is also a Qt slot with the C++ signature void columnMoved().

This slot is called whenever a column has been moved.

QTreeView.columnResized (self, int column, int oldSize, int newSize)

This method is also a Qt slot with the C++ signature void columnResized(int,int,int).

This function is called whenever column's size is changed in the header. oldSize and newSize give the previous size and the new size in pixels.

See also setColumnWidth().

int QTreeView.columnViewportPosition (self, int column)

Returns the horizontal position of the column in the viewport.

int QTreeView.columnWidth (self, int column)

Returns the width of the column.

See also resizeColumnToContents() and setColumnWidth().

QTreeView.currentChanged (self, QModelIndex current, QModelIndex previous)

Reimplemented from QAbstractItemView.currentChanged().

QTreeView.dataChanged (self, QModelIndex topLeft, QModelIndex bottomRight)

This method is also a Qt slot with the C++ signature void dataChanged(const QModelIndex&,const QModelIndex&).

Reimplemented from QAbstractItemView.dataChanged().

QTreeView.dragMoveEvent (self, QDragMoveEvent event)

Reimplemented from QWidget.dragMoveEvent().

QTreeView.drawBranches (self, QPainter painter, QRect rect, QModelIndex index)

Draws the branches in the tree view on the same row as the model item index, using the painter given. The branches are drawn in the rectangle specified by rect.

QTreeView.drawRow (self, QPainter painter, QStyleOptionViewItem options, QModelIndex index)

Draws the row in the tree view that contains the model item index, using the painter given. The option control how the item is displayed.

See also setAlternatingRowColors().

QTreeView.drawTree (self, QPainter painter, QRegion region)

Draws the part of the tree intersecting the given region using the specified painter.

This function was introduced in Qt 4.2.

See also paintEvent().

QTreeView.expand (self, QModelIndex index)

This method is also a Qt slot with the C++ signature void expand(const QModelIndex&).

Expands the model item specified by the index.

See also expanded().

QTreeView.expandAll (self)

This method is also a Qt slot with the C++ signature void expandAll().

Expands all expandable items.

Warning: if the model contains a large number of items, this function will take some time to execute.

This function was introduced in Qt 4.2.

See also collapseAll(), expand(), collapse(), and setExpanded().

bool QTreeView.expandsOnDoubleClick (self)

QTreeView.expandToDepth (self, int depth)

This method is also a Qt slot with the C++ signature void expandToDepth(int).

Expands all expandable items to the given depth.

This function was introduced in Qt 4.3.

See also expandAll(), collapseAll(), expand(), collapse(), and setExpanded().

QHeaderView QTreeView.header (self)

Returns the header for the tree view.

See also setHeader() and QAbstractItemModel.headerData().

QTreeView.hideColumn (self, int column)

This method is also a Qt slot with the C++ signature void hideColumn(int).

Hides the column given.

Note: This function should only be called after the model has been initialized, as the view needs to know the number of columns in order to hide column.

See also showColumn() and setColumnHidden().

int QTreeView.horizontalOffset (self)

Reimplemented from QAbstractItemView.horizontalOffset().

Returns the horizontal offset of the items in the treeview.

Note that the tree view uses the horizontal header section positions to determine the positions of columns in the view.

See also verticalOffset().

QTreeView.horizontalScrollbarAction (self, int action)

int QTreeView.indentation (self)

QModelIndex QTreeView.indexAbove (self, QModelIndex index)

Returns the model index of the item above index.

QModelIndex QTreeView.indexAt (self, QPoint p)

Reimplemented from QAbstractItemView.indexAt().

QModelIndex QTreeView.indexBelow (self, QModelIndex index)

Returns the model index of the item below index.

int QTreeView.indexRowSizeHint (self, QModelIndex index)

Returns the size hint for the row indicated by index.

See also sizeHintForColumn() and uniformRowHeights().

bool QTreeView.isAnimated (self)

bool QTreeView.isColumnHidden (self, int column)

Returns true if the column is hidden; otherwise returns false.

See also hideColumn() and isRowHidden().

bool QTreeView.isExpanded (self, QModelIndex index)

Returns true if the model item index is expanded; otherwise returns false.

See also expand(), expanded(), and setExpanded().

bool QTreeView.isFirstColumnSpanned (self, int row, QModelIndex parent)

Returns true if the item in first column in the given row of the parent is spanning all the columns; otherwise returns false.

This function was introduced in Qt 4.3.

See also setFirstColumnSpanned().

bool QTreeView.isHeaderHidden (self)

bool QTreeView.isIndexHidden (self, QModelIndex index)

Reimplemented from QAbstractItemView.isIndexHidden().

bool QTreeView.isRowHidden (self, int row, QModelIndex parent)

Returns true if the item in the given row of the parent is hidden; otherwise returns false.

See also setRowHidden() and isColumnHidden().

bool QTreeView.isSortingEnabled (self)

bool QTreeView.itemsExpandable (self)

QTreeView.keyboardSearch (self, QString search)

Reimplemented from QAbstractItemView.keyboardSearch().

QTreeView.keyPressEvent (self, QKeyEvent event)

Reimplemented from QWidget.keyPressEvent().

QTreeView.mouseDoubleClickEvent (self, QMouseEvent e)

Reimplemented from QWidget.mouseDoubleClickEvent().

QTreeView.mouseMoveEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseMoveEvent().

QTreeView.mousePressEvent (self, QMouseEvent e)

Reimplemented from QWidget.mousePressEvent().

QTreeView.mouseReleaseEvent (self, QMouseEvent event)

Reimplemented from QWidget.mouseReleaseEvent().

QModelIndex QTreeView.moveCursor (self, QAbstractItemView.CursorAction cursorAction, Qt.KeyboardModifiers modifiers)

Reimplemented from QAbstractItemView.moveCursor().

Move the cursor in the way described by cursorAction, using the information provided by the button modifiers.

QTreeView.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

QTreeView.reexpand (self)

This method is also a Qt slot with the C++ signature void reexpand().

QTreeView.reset (self)

Reimplemented from QAbstractItemView.reset().

QTreeView.resizeColumnToContents (self, int column)

This method is also a Qt slot with the C++ signature void resizeColumnToContents(int).

Resizes the column given to the size of its contents.

See also columnWidth() and setColumnWidth().

bool QTreeView.rootIsDecorated (self)

int QTreeView.rowHeight (self, QModelIndex index)

Returns the height of the row indicated by the given index.

This function was introduced in Qt 4.3.

See also indexRowSizeHint().

QTreeView.rowsAboutToBeRemoved (self, QModelIndex parent, int start, int end)

Reimplemented from QAbstractItemView.rowsAboutToBeRemoved().

Informs the view that the rows from the start row to the end row inclusive are about to removed from the given parent model item.

QTreeView.rowsInserted (self, QModelIndex parent, int start, int end)

Reimplemented from QAbstractItemView.rowsInserted().

Informs the view that the rows from the start row to the end row inclusive have been inserted into the parent model item.

QTreeView.rowsRemoved (self, QModelIndex parent, int first, int last)

This method is also a Qt slot with the C++ signature void rowsRemoved(const QModelIndex&,int,int).

Informs the view that the rows from the start row to the end row inclusive have been removed from the given parent model item.

This function was introduced in Qt 4.1.

QTreeView.scrollContentsBy (self, int dx, int dy)

Reimplemented from QAbstractScrollArea.scrollContentsBy().

Scrolls the contents of the tree view by (dx, dy).

QTreeView.scrollTo (self, QModelIndex index, QAbstractItemView.ScrollHint hint = QAbstractItemView.EnsureVisible)

Reimplemented from QAbstractItemView.scrollTo().

Scroll the contents of the tree view until the given model item index is visible. The hint parameter specifies more precisely where the item should be located after the operation. If any of the parents of the model item are collapsed, they will be expanded to ensure that the model item is visible.

QTreeView.selectAll (self)

This method is also a Qt slot with the C++ signature void selectAll().

Reimplemented from QAbstractItemView.selectAll().

list-of-QModelIndex QTreeView.selectedIndexes (self)

Reimplemented from QAbstractItemView.selectedIndexes().

QTreeView.selectionChanged (self, QItemSelection selected, QItemSelection deselected)

Reimplemented from QAbstractItemView.selectionChanged().

QTreeView.setAllColumnsShowFocus (self, bool enable)

QTreeView.setAnimated (self, bool enable)

QTreeView.setAutoExpandDelay (self, int delay)

QTreeView.setColumnHidden (self, int column, bool hide)

If hide is true the column is hidden, otherwise the column is shown.

See also isColumnHidden(), hideColumn(), and setRowHidden().

QTreeView.setColumnWidth (self, int column, int width)

Sets the width of the given column to the width specified.

This function was introduced in Qt 4.2.

See also columnWidth() and resizeColumnToContents().

QTreeView.setExpanded (self, QModelIndex index, bool expand)

Sets the item referred to by index to either collapse or expanded, depending on the value of expanded.

See also expanded(), expand(), and isExpanded().

QTreeView.setExpandsOnDoubleClick (self, bool enable)

QTreeView.setFirstColumnSpanned (self, int row, QModelIndex parent, bool span)

If span is true the item in the first column in the row with the given parent is set to span all columns, otherwise all items on the row are shown.

This function was introduced in Qt 4.3.

See also isFirstColumnSpanned().

QTreeView.setHeader (self, QHeaderView header)

The header argument has it's ownership transferred to Qt.

Sets the header for the tree view, to the given header.

The view takes ownership over the given header and deletes it when a new header is set.

See also QAbstractItemModel.headerData().

QTreeView.setHeaderHidden (self, bool hide)

QTreeView.setIndentation (self, int i)

QTreeView.setItemsExpandable (self, bool enable)

QTreeView.setModel (self, QAbstractItemModel model)

Reimplemented from QAbstractItemView.setModel().

QTreeView.setRootIndex (self, QModelIndex index)

Reimplemented from QAbstractItemView.setRootIndex().

QTreeView.setRootIsDecorated (self, bool show)

QTreeView.setRowHidden (self, int row, QModelIndex parent, bool hide)

If hide is true the row with the given parent is hidden, otherwise the row is shown.

See also isRowHidden() and setColumnHidden().

QTreeView.setSelection (self, QRect rect, QItemSelectionModel.SelectionFlags command)

Reimplemented from QAbstractItemView.setSelection().

Applies the selection command to the items in or touched by the rectangle, rect.

See also selectionCommand().

QTreeView.setSelectionModel (self, QItemSelectionModel selectionModel)

Reimplemented from QAbstractItemView.setSelectionModel().

QTreeView.setSortingEnabled (self, bool enable)

QTreeView.setUniformRowHeights (self, bool uniform)

QTreeView.setWordWrap (self, bool on)

QTreeView.showColumn (self, int column)

This method is also a Qt slot with the C++ signature void showColumn(int).

Shows the given column in the tree view.

See also hideColumn() and setColumnHidden().

int QTreeView.sizeHintForColumn (self, int column)

Reimplemented from QAbstractItemView.sizeHintForColumn().

Returns the size hint for the column's width or -1 if there is no model.

If you need to set the width of a given column to a fixed value, call QHeaderView.resizeSection() on the view's header.

If you reimplement this function in a subclass, note that the value you return is only used when resizeColumnToContents() is called. In that case, if a larger column width is required by either the view's header or the item delegate, that width will be used instead.

See also QWidget.sizeHint and header().

QTreeView.sortByColumn (self, int column)

This method is also a Qt slot with the C++ signature void sortByColumn(int).

Sets the model up for sorting by the values in the given column and order.

column may be -1, in which case no sort indicator will be shown and the model will return to its natural, unsorted order. Note that not all models support this and may even crash in this case.

This function was introduced in Qt 4.2.

See also sortingEnabled.

QTreeView.sortByColumn (self, int column, Qt.SortOrder order)

QTreeView.timerEvent (self, QTimerEvent event)

Reimplemented from QObject.timerEvent().

bool QTreeView.uniformRowHeights (self)

QTreeView.updateGeometries (self)

Reimplemented from QAbstractItemView.updateGeometries().

int QTreeView.verticalOffset (self)

Reimplemented from QAbstractItemView.verticalOffset().

Returns the vertical offset of the items in the tree view.

See also horizontalOffset().

bool QTreeView.viewportEvent (self, QEvent event)

Reimplemented from QAbstractScrollArea.viewportEvent().

QRect QTreeView.visualRect (self, QModelIndex index)

Reimplemented from QAbstractItemView.visualRect().

Returns the rectangle on the viewport occupied by the item at index. If the index is not visible or explicitly hidden, the returned rectangle is invalid.

QRegion QTreeView.visualRegionForSelection (self, QItemSelection selection)

Reimplemented from QAbstractItemView.visualRegionForSelection().

Returns the rectangle from the viewport of the items in the given selection.

Since 4.7, the returned region only contains rectangles intersecting (or included in) the viewport.

bool QTreeView.wordWrap (self)


Qt Signal Documentation

void collapsed (const QModelIndex&)

This is the default overload of this signal.

This signal is emitted when the item specified by index is collapsed.

void expanded (const QModelIndex&)

This is the default overload of this signal.

This signal is emitted when the item specified by index is expanded.

See also setExpanded().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtreewidget.html0000644000076500000240000012625612536324516020712 0ustar philstaff00000000000000 QTreeWidget Class Reference
  Home · All Classes · Modules

QTreeWidget Class Reference
[QtGui module]

The QTreeWidget class provides a tree view that uses a predefined tree model. More...

Inherits QTreeView.

Methods

Qt Signals


Detailed Description

The QTreeWidget class provides a tree view that uses a predefined tree model.

The QTreeWidget class is a convenience class that provides a standard tree widget with a classic item-based interface similar to that used by the QListView class in Qt 3. This class is based on Qt's Model/View architecture and uses a default model to hold items, each of which is a QTreeWidgetItem.

Developers who do not need the flexibility of the Model/View framework can use this class to create simple hierarchical lists very easily. A more flexible approach involves combining a QTreeView with a standard item model. This allows the storage of data to be separated from its representation.

In its simplest form, a tree widget can be constructed in the following way:

 QTreeWidget *treeWidget = new QTreeWidget();
 treeWidget->setColumnCount(1);
 QList<QTreeWidgetItem *> items;
 for (int i = 0; i < 10; ++i)
     items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
 treeWidget->insertTopLevelItems(0, items);

Before items can be added to the tree widget, the number of columns must be set with setColumnCount(). This allows each item to have one or more labels or other decorations. The number of columns in use can be found with the columnCount() function.

The tree can have a header that contains a section for each column in the widget. It is easiest to set up the labels for each section by supplying a list of strings with setHeaderLabels(), but a custom header can be constructed with a QTreeWidgetItem and inserted into the tree with the setHeaderItem() function.

The items in the tree can be sorted by column according to a predefined sort order. If sorting is enabled, the user can sort the items by clicking on a column header. Sorting can be enabled or disabled by calling setSortingEnabled(). The isSortingEnabled() function indicates whether sorting is enabled.

Screenshot of a Windows XP style tree widget Screenshot of a Macintosh style tree widget Screenshot of a Plastique style tree widget
A Windows XP style tree widget. A Macintosh style tree widget. A Plastique style tree widget.

Method Documentation

QTreeWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a tree widget with the given parent.

QTreeWidget.addTopLevelItem (self, QTreeWidgetItem item)

The item argument has it's ownership transferred to Qt.

Appends the item as a top-level item in the widget.

This function was introduced in Qt 4.1.

See also insertTopLevelItem().

QTreeWidget.addTopLevelItems (self, list-of-QTreeWidgetItem items)

The items argument has it's ownership transferred to Qt.

Appends the list of items as a top-level items in the widget.

See also insertTopLevelItems().

QTreeWidget.clear (self)

This method is also a Qt slot with the C++ signature void clear().

Clears the tree widget by removing all of its items and selections.

Note: Since each item is removed from the tree widget before being deleted, the return value of QTreeWidgetItem.treeWidget() will be invalid when called from an item's destructor.

See also takeTopLevelItem(), topLevelItemCount(), and columnCount().

QTreeWidget.closePersistentEditor (self, QTreeWidgetItem item, int column = 0)

Closes the persistent editor for the item in the given column.

This function has no effect if no persistent editor is open for this combination of item and column.

See also openPersistentEditor().

QTreeWidget.collapseItem (self, QTreeWidgetItem item)

This method is also a Qt slot with the C++ signature void collapseItem(const QTreeWidgetItem*).

Closes the item. This causes the tree containing the item's children to be collapsed.

See also expandItem(), currentItem(), itemAt(), and topLevelItem().

int QTreeWidget.columnCount (self)

int QTreeWidget.currentColumn (self)

Returns the current column in the tree widget.

This function was introduced in Qt 4.1.

See also setCurrentItem() and columnCount().

QTreeWidgetItem QTreeWidget.currentItem (self)

Returns the current item in the tree widget.

See also setCurrentItem() and currentItemChanged().

QTreeWidget.dropEvent (self, QDropEvent event)

Reimplemented from QWidget.dropEvent().

bool QTreeWidget.dropMimeData (self, QTreeWidgetItem parent, int index, QMimeData data, Qt.DropAction action)

Handles the data supplied by a drag and drop operation that ended with the given action in the index in the given parent item.

The default implementation returns true if the drop was successfully handled by decoding the mime data and inserting it into the model; otherwise it returns false.

See also supportedDropActions().

QTreeWidget.editItem (self, QTreeWidgetItem item, int column = 0)

Starts editing the item in the given column if it is editable.

bool QTreeWidget.event (self, QEvent e)

Reimplemented from QObject.event().

QTreeWidget.expandItem (self, QTreeWidgetItem item)

This method is also a Qt slot with the C++ signature void expandItem(const QTreeWidgetItem*).

Expands the item. This causes the tree containing the item's children to be expanded.

See also collapseItem(), currentItem(), itemAt(), topLevelItem(), and itemExpanded().

list-of-QTreeWidgetItem QTreeWidget.findItems (self, QString text, Qt.MatchFlags flags, int column = 0)

Returns a list of items that match the given text, using the given flags, in the given column.

QTreeWidgetItem QTreeWidget.headerItem (self)

Returns the item used for the tree widget's header.

See also setHeaderItem().

QModelIndex QTreeWidget.indexFromItem (self, QTreeWidgetItem item, int column = 0)

Returns the QModelIndex assocated with the given item in the given column.

See also itemFromIndex() and topLevelItem().

int QTreeWidget.indexOfTopLevelItem (self, QTreeWidgetItem item)

Returns the index of the given top-level item, or -1 if the item cannot be found.

See also sortItems() and topLevelItemCount().

QTreeWidget.insertTopLevelItem (self, int index, QTreeWidgetItem item)

The item argument has it's ownership transferred to Qt.

Inserts the item at index in the top level in the view.

If the item has already been inserted somewhere else it wont be inserted.

See also addTopLevelItem() and columnCount().

QTreeWidget.insertTopLevelItems (self, int index, list-of-QTreeWidgetItem items)

The items argument has it's ownership transferred to Qt.

Inserts the list of items at index in the top level in the view.

Items that have already been inserted somewhere else wont be inserted.

This function was introduced in Qt 4.1.

See also addTopLevelItems().

QTreeWidgetItem QTreeWidget.invisibleRootItem (self)

Returns the tree widget's invisible root item.

The invisible root item provides access to the tree widget's top-level items through the QTreeWidgetItem API, making it possible to write functions that can treat top-level items and their children in a uniform way; for example, recursive functions.

This function was introduced in Qt 4.2.

bool QTreeWidget.isFirstItemColumnSpanned (self, QTreeWidgetItem item)

Returns true if the given item is set to show only one section over all columns; otherwise returns false.

This function was introduced in Qt 4.3.

See also setFirstItemColumnSpanned().

bool QTreeWidget.isItemExpanded (self, QTreeWidgetItem item)

bool QTreeWidget.isItemHidden (self, QTreeWidgetItem item)

bool QTreeWidget.isItemSelected (self, QTreeWidgetItem item)

bool QTreeWidget.isSortingEnabled (self)

QTreeWidgetItem QTreeWidget.itemAbove (self, QTreeWidgetItem item)

Returns the item above the given item.

This function was introduced in Qt 4.3.

QTreeWidgetItem QTreeWidget.itemAt (self, QPoint p)

Returns a pointer to the item at the coordinates p. The coordinates are relative to the tree widget's viewport().

See also visualItemRect().

QTreeWidgetItem QTreeWidget.itemAt (self, int ax, int ay)

This is an overloaded function.

Returns a pointer to the item at the coordinates (x, y). The coordinates are relative to the tree widget's viewport().

QTreeWidgetItem QTreeWidget.itemBelow (self, QTreeWidgetItem item)

Returns the item visually below the given item.

This function was introduced in Qt 4.3.

QTreeWidgetItem QTreeWidget.itemFromIndex (self, QModelIndex index)

Returns a pointer to the QTreeWidgetItem assocated with the given index.

See also indexFromItem().

list-of-QTreeWidgetItem QTreeWidget.items (self, QMimeData data)

QWidget QTreeWidget.itemWidget (self, QTreeWidgetItem item, int column)

Returns the widget displayed in the cell specified by item and the given column.

Note: The tree takes ownership of the widget.

This function was introduced in Qt 4.1.

See also setItemWidget().

QMimeData QTreeWidget.mimeData (self, list-of-QTreeWidgetItem items)

The QMimeData result

Returns an object that contains a serialized description of the specified items. The format used to describe the items is obtained from the mimeTypes() function.

If the list of items is empty, 0 is returned rather than a serialized empty list.

QStringList QTreeWidget.mimeTypes (self)

Returns a list of MIME types that can be used to describe a list of treewidget items.

See also mimeData().

QTreeWidget.openPersistentEditor (self, QTreeWidgetItem item, int column = 0)

Opens a persistent editor for the item in the given column.

See also closePersistentEditor().

QTreeWidget.removeItemWidget (self, QTreeWidgetItem item, int column)

Removes the widget set in the given item in the given column.

This function was introduced in Qt 4.3.

QTreeWidget.scrollToItem (self, QTreeWidgetItem item, QAbstractItemView.ScrollHint hint = QAbstractItemView.EnsureVisible)

This method is also a Qt slot with the C++ signature void scrollToItem(const QTreeWidgetItem*,QAbstractItemView::ScrollHint = QAbstractItemView.EnsureVisible).

Ensures that the item is visible, scrolling the view if necessary using the specified hint.

See also currentItem(), itemAt(), and topLevelItem().

list-of-QTreeWidgetItem QTreeWidget.selectedItems (self)

Returns a list of all selected non-hidden items.

See also itemSelectionChanged().

QTreeWidget.setColumnCount (self, int columns)

QTreeWidget.setCurrentItem (self, QTreeWidgetItem item)

Sets the current item in the tree widget.

Unless the selection mode is NoSelection, the item is also be selected.

See also currentItem() and currentItemChanged().

QTreeWidget.setCurrentItem (self, QTreeWidgetItem item, int column)

Sets the current item in the tree widget and the current column to column.

This function was introduced in Qt 4.1.

See also currentItem().

QTreeWidget.setCurrentItem (self, QTreeWidgetItem item, int column, QItemSelectionModel.SelectionFlags command)

Sets the current item in the tree widget and the current column to column, using the given command.

This function was introduced in Qt 4.4.

See also currentItem().

QTreeWidget.setFirstItemColumnSpanned (self, QTreeWidgetItem item, bool span)

Sets the given item to only show one section for all columns if span is true; otherwise the item will show one section per column.

This function was introduced in Qt 4.3.

See also isFirstItemColumnSpanned().

QTreeWidget.setHeaderItem (self, QTreeWidgetItem item)

The item argument has it's ownership transferred to Qt.

Sets the header item for the tree widget. The label for each column in the header is supplied by the corresponding label in the item.

The tree widget takes ownership of the item.

See also headerItem() and setHeaderLabels().

QTreeWidget.setHeaderLabel (self, QString alabel)

Same as setHeaderLabels(QStringList(label)).

This function was introduced in Qt 4.2.

QTreeWidget.setHeaderLabels (self, QStringList labels)

Adds a column in the header for each item in the labels list, and sets the label for each column.

Note that setHeaderLabels() won't remove existing columns.

See also setHeaderItem() and setHeaderLabel().

QTreeWidget.setItemExpanded (self, QTreeWidgetItem item, bool expand)

QTreeWidget.setItemHidden (self, QTreeWidgetItem item, bool hide)

QTreeWidget.setItemSelected (self, QTreeWidgetItem item, bool select)

QTreeWidget.setItemWidget (self, QTreeWidgetItem item, int column, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the given widget to be displayed in the cell specified by the given item and column.

The given widget's autoFillBackground property must be set to true, otherwise the widget's background will be transparent, showing both the model data and the tree widget item.

This function should only be used to display static content in the place of a tree widget item. If you want to display custom dynamic content or implement a custom editor widget, use QTreeView and subclass QItemDelegate instead.

This function cannot be called before the item hierarchy has been set up, i.e., the QTreeWidgetItem that will hold widget must have been added to the view before widget is set.

Note: The tree takes ownership of the widget.

This function was introduced in Qt 4.1.

See also itemWidget() and Delegate Classes.

QTreeWidget.setSelectionModel (self, QItemSelectionModel selectionModel)

Reimplemented from QAbstractItemView.setSelectionModel().

QTreeWidget.setSortingEnabled (self, bool enable)

int QTreeWidget.sortColumn (self)

Returns the column used to sort the contents of the widget.

This function was introduced in Qt 4.1.

See also sortItems().

QTreeWidget.sortItems (self, int column, Qt.SortOrder order)

Sorts the items in the widget in the specified order by the values in the given column.

See also sortColumn().

Qt.DropActions QTreeWidget.supportedDropActions (self)

Returns the drop actions supported by this view.

See also Qt.DropActions.

QTreeWidgetItem QTreeWidget.takeTopLevelItem (self, int index)

The QTreeWidgetItem result

Removes the top-level item at the given index in the tree and returns it, otherwise returns 0;

See also insertTopLevelItem(), topLevelItem(), and topLevelItemCount().

QTreeWidgetItem QTreeWidget.topLevelItem (self, int index)

Returns the top level item at the given index, or 0 if the item does not exist.

See also topLevelItemCount() and insertTopLevelItem().

int QTreeWidget.topLevelItemCount (self)

QRect QTreeWidget.visualItemRect (self, QTreeWidgetItem item)

Returns the rectangle on the viewport occupied by the item at item.

See also itemAt().


Qt Signal Documentation

void currentItemChanged (QTreeWidgetItem*,QTreeWidgetItem*)

This is the default overload of this signal.

This signal is emitted when the current item changes. The current item is specified by current, and this replaces the previous current item.

See also setCurrentItem().

void itemActivated (QTreeWidgetItem*,int)

This is the default overload of this signal.

This signal is emitted when the user activates an item by single- or double-clicking (depending on the platform, i.e. on the QStyle.SH_ItemView_ActivateItemOnSingleClick style hint) or pressing a special key (e.g., Enter).

The specified item is the item that was clicked, or 0 if no item was clicked. The column is the item's column that was clicked, or -1 if no item was clicked.

void itemChanged (QTreeWidgetItem*,int)

This is the default overload of this signal.

This signal is emitted when the contents of the column in the specified item changes.

void itemClicked (QTreeWidgetItem*,int)

This is the default overload of this signal.

This signal is emitted when the user clicks inside the widget.

The specified item is the item that was clicked. The column is the item's column that was clicked. If no item was clicked, no signal will be emitted.

void itemCollapsed (QTreeWidgetItem*)

This is the default overload of this signal.

This signal is emitted when the specified item is collapsed so that none of its children are displayed.

Note: This signal will not be emitted if an item changes its state when collapseAll() is invoked.

See also QTreeWidgetItem.isExpanded(), itemExpanded(), and collapseItem().

void itemDoubleClicked (QTreeWidgetItem*,int)

This is the default overload of this signal.

This signal is emitted when the user double clicks inside the widget.

The specified item is the item that was clicked, or 0 if no item was clicked. The column is the item's column that was clicked. If no item was double clicked, no signal will be emitted.

void itemEntered (QTreeWidgetItem*,int)

This is the default overload of this signal.

This signal is emitted when the mouse cursor enters an item over the specified column. QTreeWidget mouse tracking needs to be enabled for this feature to work.

void itemExpanded (QTreeWidgetItem*)

This is the default overload of this signal.

This signal is emitted when the specified item is expanded so that all of its children are displayed.

Note: This signal will not be emitted if an item changes its state when expandAll() is invoked.

See also setItemExpanded(), QTreeWidgetItem.isExpanded(), itemCollapsed(), and expandItem().

void itemPressed (QTreeWidgetItem*,int)

This is the default overload of this signal.

This signal is emitted when the user presses a mouse button inside the widget.

The specified item is the item that was clicked, or 0 if no item was clicked. The column is the item's column that was clicked, or -1 if no item was clicked.

void itemSelectionChanged ()

This is the default overload of this signal.

This signal is emitted when the selection changes in the tree widget. The current selection can be found with selectedItems().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtreewidgetitem.html0000644000076500000240000013112712536324516021562 0ustar philstaff00000000000000 QTreeWidgetItem Class Reference
  Home · All Classes · Modules

QTreeWidgetItem Class Reference
[QtGui module]

The QTreeWidgetItem class provides an item for use with the QTreeWidget convenience class. More...

Types

Methods

Special Methods

  • bool __ge__ (self, QTreeWidgetItem other)
  • bool __lt__ (self, QTreeWidgetItem other)

Detailed Description

The QTreeWidgetItem class provides an item for use with the QTreeWidget convenience class.

Tree widget items are used to hold rows of information for tree widgets. Rows usually contain several columns of data, each of which can contain a text label and an icon.

The QTreeWidgetItem class is a convenience class that replaces the QListViewItem class in Qt 3. It provides an item for use with the QTreeWidget class.

Items are usually constructed with a parent that is either a QTreeWidget (for top-level items) or a QTreeWidgetItem (for items on lower levels of the tree). For example, the following code constructs a top-level item to represent cities of the world, and adds a entry for Oslo as a child item:

     QTreeWidgetItem *cities = new QTreeWidgetItem(treeWidget);
     cities->setText(0, tr("Cities"));
     QTreeWidgetItem *osloItem = new QTreeWidgetItem(cities);
     osloItem->setText(0, tr("Oslo"));
     osloItem->setText(1, tr("Yes"));

Items can be added in a particular order by specifying the item they follow when they are constructed:

     QTreeWidgetItem *planets = new QTreeWidgetItem(treeWidget, cities);
     planets->setText(0, tr("Planets"));

Each column in an item can have its own background brush which is set with the setBackground() function. The current background brush can be found with background(). The text label for each column can be rendered with its own font and brush. These are specified with the setFont() and setForeground() functions, and read with font() and foreground().

The main difference between top-level items and those in lower levels of the tree is that a top-level item has no parent(). This information can be used to tell the difference between items, and is useful to know when inserting and removing items from the tree. Children of an item can be removed with takeChild() and inserted at a given index in the list of children with the insertChild() function.

By default, items are enabled, selectable, checkable, and can be the source of a drag and drop operation. Each item's flags can be changed by calling setFlags() with the appropriate value (see Qt.ItemFlags). Checkable items can be checked and unchecked with the setCheckState() function. The corresponding checkState() function indicates whether the item is currently checked.

Subclassing

When subclassing QTreeWidgetItem to provide custom items, it is possible to define new types for them so that they can be distinguished from standard items. The constructors for subclasses that require this feature need to call the base class constructor with a new type value equal to or greater than UserType.


Type Documentation

QTreeWidgetItem.ChildIndicatorPolicy

Constant Value Description
QTreeWidgetItem.ShowIndicator 0 The controls for expanding and collapsing will be shown for this item even if there are no children.
QTreeWidgetItem.DontShowIndicator 1 The controls for expanding and collapsing will never be shown even if there are children. If the node is forced open the user will not be able to expand or collapse the item.
QTreeWidgetItem.DontShowIndicatorWhenChildless 2 The controls for expanding and collapsing will be shown if the item contains children.

This enum was introduced or modified in Qt 4.3.

QTreeWidgetItem.ItemType

This enum describes the types that are used to describe tree widget items.

Constant Value Description
QTreeWidgetItem.Type 0 The default type for tree widget items.
QTreeWidgetItem.UserType 1000 The minimum value for custom types. Values below UserType are reserved by Qt.

You can define new user types in QTreeWidgetItem subclasses to ensure that custom items are treated specially; for example, when items are sorted.

See also type().


Method Documentation

QTreeWidgetItem.__init__ (self, int type = QTreeWidgetItem.Type)

Constructs a tree widget item of the specified type. The item must be inserted into a tree widget.

See also type().

QTreeWidgetItem.__init__ (self, QStringList strings, int type = QTreeWidgetItem.Type)

Constructs a tree widget item of the specified type. The item must be inserted into a tree widget. The given list of strings will be set as the item text for each column in the item.

See also type().

QTreeWidgetItem.__init__ (self, QTreeWidget parent, int type = QTreeWidgetItem.Type)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a tree widget item of the specified type and appends it to the items in the given parent.

See also type().

QTreeWidgetItem.__init__ (self, QTreeWidget parent, QStringList strings, int type = QTreeWidgetItem.Type)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a tree widget item of the specified type and appends it to the items in the given parent. The given list of strings will be set as the item text for each column in the item.

See also type().

QTreeWidgetItem.__init__ (self, QTreeWidget parent, QTreeWidgetItem preceding, int type = QTreeWidgetItem.Type)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a tree widget item of the specified type and inserts it into the given parent after the preceding item.

See also type().

QTreeWidgetItem.__init__ (self, QTreeWidgetItem parent, int type = QTreeWidgetItem.Type)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a tree widget item and append it to the given parent.

See also type().

QTreeWidgetItem.__init__ (self, QTreeWidgetItem parent, QStringList strings, int type = QTreeWidgetItem.Type)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a tree widget item and append it to the given parent. The given list of strings will be set as the item text for each column in the item.

See also type().

QTreeWidgetItem.__init__ (self, QTreeWidgetItem parent, QTreeWidgetItem preceding, int type = QTreeWidgetItem.Type)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a tree widget item of the specified type that is inserted into the parent after the preceding child item.

See also type().

QTreeWidgetItem.__init__ (self, QTreeWidgetItem other)

Constructs a copy of other. Note that type() and treeWidget() are not copied.

This function is useful when reimplementing clone().

This function was introduced in Qt 4.1.

See also data() and flags().

QTreeWidgetItem.addChild (self, QTreeWidgetItem child)

The child argument has it's ownership transferred to Qt.

Appends the child item to the list of children.

See also insertChild() and takeChild().

QTreeWidgetItem.addChildren (self, list-of-QTreeWidgetItem children)

The children argument has it's ownership transferred to Qt.

Appends the given list of children to the item.

This function was introduced in Qt 4.1.

See also insertChildren() and takeChildren().

QBrush QTreeWidgetItem.background (self, int column)

Returns the brush used to render the background of the specified column.

This function was introduced in Qt 4.2.

See also setBackground() and foreground().

QColor QTreeWidgetItem.backgroundColor (self, int column)

Qt.CheckState QTreeWidgetItem.checkState (self, int column)

Returns the check state of the label in the given column.

See also setCheckState() and Qt.CheckState.

QTreeWidgetItem QTreeWidgetItem.child (self, int index)

Returns the item at the given index in the list of the item's children.

See also parent().

int QTreeWidgetItem.childCount (self)

Returns the number of child items.

ChildIndicatorPolicy QTreeWidgetItem.childIndicatorPolicy (self)

Returns the item indicator policy. This policy decides when the tree branch expand/collapse indicator is shown.

See also setChildIndicatorPolicy().

QTreeWidgetItem QTreeWidgetItem.clone (self)

Creates a deep copy of the item and of its children.

int QTreeWidgetItem.columnCount (self)

Returns the number of columns in the item.

QVariant QTreeWidgetItem.data (self, int column, int role)

Returns the value for the item's column and role.

See also setData().

QTreeWidgetItem.emitDataChanged (self)

Causes the model associated with this item to emit a dataChanged() signal for this item.

You normally only need to call this function if you have subclassed QTreeWidgetItem and reimplemented data() and/or setData().

This function was introduced in Qt 4.5.

See also setData().

Qt.ItemFlags QTreeWidgetItem.flags (self)

Returns the flags used to describe the item. These determine whether the item can be checked, edited, and selected.

The default value for flags is Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled. If the item was constructed with a parent, flags will in addition contain Qt.ItemIsDropEnabled.

See also setFlags().

QFont QTreeWidgetItem.font (self, int column)

Returns the font used to render the text in the specified column.

See also setFont().

QBrush QTreeWidgetItem.foreground (self, int column)

Returns the brush used to render the foreground (e.g. text) of the specified column.

This function was introduced in Qt 4.2.

See also setForeground() and background().

QIcon QTreeWidgetItem.icon (self, int column)

Returns the icon that is displayed in the specified column.

See also setIcon() and iconSize.

int QTreeWidgetItem.indexOfChild (self, QTreeWidgetItem achild)

Returns the index of the given child in the item's list of children.

QTreeWidgetItem.insertChild (self, int index, QTreeWidgetItem child)

The child argument has it's ownership transferred to Qt.

Inserts the child item at index in the list of children.

If the child has already been inserted somewhere else it wont be inserted again.

QTreeWidgetItem.insertChildren (self, int index, list-of-QTreeWidgetItem children)

The children argument has it's ownership transferred to Qt.

Inserts the given list of children into the list of the item children at index .

Children that have already been inserted somewhere else wont be inserted.

This function was introduced in Qt 4.1.

bool QTreeWidgetItem.isDisabled (self)

Returns true if the item is disabled; otherwise returns false.

This function was introduced in Qt 4.3.

See also setFlags().

bool QTreeWidgetItem.isExpanded (self)

Returns true if the item is expanded, otherwise returns false.

This function was introduced in Qt 4.2.

See also setExpanded().

bool QTreeWidgetItem.isFirstColumnSpanned (self)

Returns true if the item is spanning all the columns in a row; otherwise returns false.

This function was introduced in Qt 4.3.

See also setFirstColumnSpanned().

bool QTreeWidgetItem.isHidden (self)

Returns true if the item is hidden, otherwise returns false.

This function was introduced in Qt 4.2.

See also setHidden().

bool QTreeWidgetItem.isSelected (self)

Returns true if the item is selected, otherwise returns false.

This function was introduced in Qt 4.2.

See also setSelected().

QTreeWidgetItem QTreeWidgetItem.parent (self)

Returns the item's parent.

See also child().

QTreeWidgetItem.read (self, QDataStream in)

Reads the item from stream in. This only reads data into a single item.

See also write().

QTreeWidgetItem.removeChild (self, QTreeWidgetItem child)

The child argument

Removes the given item indicated by child. The removed item will not be deleted.

QTreeWidgetItem.setBackground (self, int column, QBrush brush)

Sets the background brush of the label in the given column to the specified brush.

This function was introduced in Qt 4.2.

See also background() and setForeground().

QTreeWidgetItem.setBackgroundColor (self, int column, QColor color)

QTreeWidgetItem.setCheckState (self, int column, Qt.CheckState state)

Sets the item in the given column check state to be state.

See also checkState().

QTreeWidgetItem.setChildIndicatorPolicy (self, ChildIndicatorPolicy policy)

Sets the item indicator policy. This policy decides when the tree branch expand/collapse indicator is shown. The default value is ShowForChildren.

See also childIndicatorPolicy().

QTreeWidgetItem.setData (self, int column, int role, QVariant value)

Sets the value for the item's column and role to the given value.

The role describes the type of data specified by value, and is defined by the Qt.ItemDataRole enum.

See also data().

QTreeWidgetItem.setDisabled (self, bool disabled)

Disables the item if disabled is true; otherwise enables the item.

This function was introduced in Qt 4.3.

See also isDisabled() and setFlags().

QTreeWidgetItem.setExpanded (self, bool aexpand)

Expands the item if expand is true, otherwise collapses the item.

Warning: The QTreeWidgetItem must be added to the QTreeWidget before calling this function.

This function was introduced in Qt 4.2.

See also isExpanded().

QTreeWidgetItem.setFirstColumnSpanned (self, bool aspan)

Sets the first section to span all columns if span is true; otherwise all item sections are shown.

This function was introduced in Qt 4.3.

See also isFirstColumnSpanned().

QTreeWidgetItem.setFlags (self, Qt.ItemFlags aflags)

Sets the flags for the item to the given flags. These determine whether the item can be selected or modified. This is often used to disable an item.

See also flags().

QTreeWidgetItem.setFont (self, int column, QFont afont)

Sets the font used to display the text in the given column to the given font.

See also font(), setText(), and setForeground().

QTreeWidgetItem.setForeground (self, int column, QBrush brush)

Sets the foreground brush of the label in the given column to the specified brush.

This function was introduced in Qt 4.2.

See also foreground() and setBackground().

QTreeWidgetItem.setHidden (self, bool ahide)

Hides the item if hide is true, otherwise shows the item.

This function was introduced in Qt 4.2.

See also isHidden().

QTreeWidgetItem.setIcon (self, int column, QIcon aicon)

Sets the icon to be displayed in the given column to icon.

See also icon(), setText(), and iconSize.

QTreeWidgetItem.setSelected (self, bool aselect)

Sets the selected state of the item to select.

This function was introduced in Qt 4.2.

See also isSelected().

QTreeWidgetItem.setSizeHint (self, int column, QSize size)

Sets the size hint for the tree item in the given column to be size. If no size hint is set, the item delegate will compute the size hint based on the item data.

This function was introduced in Qt 4.1.

See also sizeHint().

QTreeWidgetItem.setStatusTip (self, int column, QString astatusTip)

Sets the status tip for the given column to the given statusTip. QTreeWidget mouse tracking needs to be enabled for this feature to work.

See also statusTip(), setToolTip(), and setWhatsThis().

QTreeWidgetItem.setText (self, int column, QString atext)

Sets the text to be displayed in the given column to the given text.

See also text(), setFont(), and setForeground().

QTreeWidgetItem.setTextAlignment (self, int column, int alignment)

Sets the text alignment for the label in the given column to the alignment specified (see Qt.AlignmentFlag).

See also textAlignment().

QTreeWidgetItem.setTextColor (self, int column, QColor color)

QTreeWidgetItem.setToolTip (self, int column, QString atoolTip)

Sets the tooltip for the given column to toolTip.

See also toolTip(), setStatusTip(), and setWhatsThis().

QTreeWidgetItem.setWhatsThis (self, int column, QString awhatsThis)

Sets the "What's This?" help for the given column to whatsThis.

See also whatsThis(), setStatusTip(), and setToolTip().

QSize QTreeWidgetItem.sizeHint (self, int column)

Returns the size hint set for the tree item in the given column (see QSize).

This function was introduced in Qt 4.1.

See also setSizeHint().

QTreeWidgetItem.sortChildren (self, int column, Qt.SortOrder order)

Sorts the children of the item using the given order, by the values in the given column.

Note: This function does nothing if the item is not associated with a QTreeWidget.

This function was introduced in Qt 4.2.

QString QTreeWidgetItem.statusTip (self, int column)

Returns the status tip for the contents of the given column.

See also setStatusTip().

QTreeWidgetItem QTreeWidgetItem.takeChild (self, int index)

The QTreeWidgetItem result

Removes the item at index and returns it, otherwise return 0.

list-of-QTreeWidgetItem QTreeWidgetItem.takeChildren (self)

The list-of-QTreeWidgetItem result

Removes the list of children and returns it, otherwise returns an empty list.

This function was introduced in Qt 4.1.

QString QTreeWidgetItem.text (self, int column)

Returns the text in the specified column.

See also setText().

int QTreeWidgetItem.textAlignment (self, int column)

Returns the text alignment for the label in the given column (see Qt.AlignmentFlag).

See also setTextAlignment().

QColor QTreeWidgetItem.textColor (self, int column)

QString QTreeWidgetItem.toolTip (self, int column)

Returns the tool tip for the given column.

See also setToolTip().

QTreeWidget QTreeWidgetItem.treeWidget (self)

Returns the tree widget that contains the item.

int QTreeWidgetItem.type (self)

Returns the type passed to the QTreeWidgetItem constructor.

QString QTreeWidgetItem.whatsThis (self, int column)

Returns the "What's This?" help for the contents of the given column.

See also setWhatsThis().

QTreeWidgetItem.write (self, QDataStream out)

Writes the item to stream out. This only writes data from one single item.

See also read().

bool QTreeWidgetItem.__ge__ (self, QTreeWidgetItem other)

bool QTreeWidgetItem.__lt__ (self, QTreeWidgetItem other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtreewidgetitemiterator-iteratorflags.html0000644000076500000240000001534412536324516026202 0ustar philstaff00000000000000 QTreeWidgetItemIterator.IteratorFlags Class Reference
  Home · All Classes · Modules

QTreeWidgetItemIterator.IteratorFlags Class Reference
[QtGui module]

Methods

Special Methods

  • IteratorFlags __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, IteratorFlags f)
  • IteratorFlags __iand__ (self, int mask)
  • int __int__ (self)
  • IteratorFlags __invert__ (self)
  • IteratorFlags __ior__ (self, IteratorFlags f)
  • IteratorFlags __ixor__ (self, IteratorFlags f)
  • bool __ne__ (self, IteratorFlags f)
  • IteratorFlags __or__ (self, IteratorFlags f)
  • IteratorFlags __or__ (self, int f)
  • IteratorFlags __xor__ (self, IteratorFlags f)
  • IteratorFlags __xor__ (self, int f)

Detailed Description

IteratorFlag may be used whenever IteratorFlags is expected.


Method Documentation

IteratorFlags.__init__ (self, IteratorFlags)

IteratorFlags.__init__ (self, int)

IteratorFlags.__init__ (self)

IteratorFlags IteratorFlags.__and__ (self, int mask)

int IteratorFlags.__bool__ (self)

bool IteratorFlags.__eq__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__iand__ (self, int mask)

int IteratorFlags.__int__ (self)

IteratorFlags IteratorFlags.__invert__ (self)

IteratorFlags IteratorFlags.__ior__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__ixor__ (self, IteratorFlags f)

bool IteratorFlags.__ne__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__or__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__or__ (self, int f)

IteratorFlags IteratorFlags.__xor__ (self, IteratorFlags f)

IteratorFlags IteratorFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtreewidgetitemiterator.html0000644000076500000240000002331612536324516023334 0ustar philstaff00000000000000 QTreeWidgetItemIterator Class Reference
  Home · All Classes · Modules

QTreeWidgetItemIterator Class Reference
[QtGui module]

The QTreeWidgetItemIterator class provides a way to iterate over the items in a QTreeWidget instance. More...

Types

Methods

  • __init__ (self, QTreeWidgetItemIterator it)
  • __init__ (self, QTreeWidget widget, IteratorFlags flags = QTreeWidgetItemIterator.All)
  • __init__ (self, QTreeWidgetItem item, IteratorFlags flags = QTreeWidgetItemIterator.All)
  • QTreeWidgetItem value (self)

Special Methods

  • QTreeWidgetItemIterator __iadd__ (self, int n)
  • QTreeWidgetItemIterator __isub__ (self, int n)

Detailed Description

The QTreeWidgetItemIterator class provides a way to iterate over the items in a QTreeWidget instance.

The iterator will walk the items in a pre-order traversal order, thus visiting the parent node before it continues to the child nodes.

For example, the following code examples each item in a tree, checking the text in the first column against a user-specified search string:

     QTreeWidgetItemIterator it(treeWidget);
     while (*it) {
         if ((*it)->text(0) == itemText)
             (*it)->setSelected(true);
         ++it;
     }

It is also possible to filter out certain types of node by passing certain flags to the constructor of QTreeWidgetItemIterator.


Type Documentation

QTreeWidgetItemIterator.IteratorFlag

These flags can be passed to a QTreeWidgetItemIterator constructor (OR-ed together if more than one is used), so that the iterator will only iterate over items that match the given flags.

Constant Value
QTreeWidgetItemIterator.All 0x00000000
QTreeWidgetItemIterator.Hidden 0x00000001
QTreeWidgetItemIterator.NotHidden 0x00000002
QTreeWidgetItemIterator.Selected 0x00000004
QTreeWidgetItemIterator.Unselected 0x00000008
QTreeWidgetItemIterator.Selectable 0x00000010
QTreeWidgetItemIterator.NotSelectable 0x00000020
QTreeWidgetItemIterator.DragEnabled 0x00000040
QTreeWidgetItemIterator.DragDisabled 0x00000080
QTreeWidgetItemIterator.DropEnabled 0x00000100
QTreeWidgetItemIterator.DropDisabled 0x00000200
QTreeWidgetItemIterator.HasChildren 0x00000400
QTreeWidgetItemIterator.NoChildren 0x00000800
QTreeWidgetItemIterator.Checked 0x00001000
QTreeWidgetItemIterator.NotChecked 0x00002000
QTreeWidgetItemIterator.Enabled 0x00004000
QTreeWidgetItemIterator.Disabled 0x00008000
QTreeWidgetItemIterator.Editable 0x00010000
QTreeWidgetItemIterator.NotEditable 0x00020000
QTreeWidgetItemIterator.UserFlag 0x01000000

The IteratorFlags type is a typedef for QFlags<IteratorFlag>. It stores an OR combination of IteratorFlag values.


Method Documentation

QTreeWidgetItemIterator.__init__ (self, QTreeWidgetItemIterator it)

Constructs an iterator for the same QTreeWidget as it. The current iterator item is set to point on the current item of it.

QTreeWidgetItemIterator.__init__ (self, QTreeWidget widget, IteratorFlags flags = QTreeWidgetItemIterator.All)

Constructs an iterator for the given widget that uses the specified flags to determine which items are found during iteration. The iterator is set to point to the first top-level item contained in the widget, or the next matching item if the top-level item doesn't match the flags.

See also QTreeWidgetItemIterator.IteratorFlag.

QTreeWidgetItemIterator.__init__ (self, QTreeWidgetItem item, IteratorFlags flags = QTreeWidgetItemIterator.All)

Constructs an iterator for the given item that uses the specified flags to determine which items are found during iteration. The iterator is set to point to item, or the next matching item if item doesn't match the flags.

See also QTreeWidgetItemIterator.IteratorFlag.

QTreeWidgetItem QTreeWidgetItemIterator.value (self)

QTreeWidgetItemIterator QTreeWidgetItemIterator.__iadd__ (self, int n)

QTreeWidgetItemIterator QTreeWidgetItemIterator.__isub__ (self, int n)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtscript.html0000644000076500000240000000756412536324470020236 0ustar philstaff00000000000000 QtScript Module
  Home · All Classes · Modules

QtScript Module

The QtScript module provides classes that allow access to Qt's ECMAScript interpreter from your PyQt applications. More...

Types

Module Functions

  • bool qScriptConnect (QObject sender, SIGNAL() signal, QScriptValue receiver, QScriptValue function)
  • bool qScriptDisconnect (QObject sender, SIGNAL() signal, QScriptValue receiver, QScriptValue function)

Detailed Description

The QtScript module provides classes for making PyQt applications scriptable with Qt's ECMAScript interpreter.

To import the module use, for example, the following statement:

from PyQt4 import QtScript

Function Documentation

bool qScriptConnect (QObject sender, SIGNAL() signal, QScriptValue receiver, QScriptValue function)

bool qScriptDisconnect (QObject sender, SIGNAL() signal, QScriptValue receiver, QScriptValue function)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtscripttools.html0000644000076500000240000000376012536324470021311 0ustar philstaff00000000000000 QtScriptTools Module
  Home · All Classes · Modules

QtScriptTools Module

The QtScriptTools module provides additional components (e.g. a debugger) to be used with Qt's ECMAScript interpreter. More...

Types


Detailed Description

The QtScriptTools module provides additional components for applications that use Qt's ECMAScript interpreter.

To import the module use, for example, the following statement:

from PyQt4 import QtScriptTools

PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtsql.html0000644000076500000240000010024712536324470017521 0ustar philstaff00000000000000 QtSql Module
  Home · All Classes · Modules

QtSql Module

The QtSql module helps you provide seamless database integration to your PyQt applications. More...

Types


Detailed Description

The QtSql module helps you provide seamless database integration to your PyQt applications.

The SQL classes are divided into three layers:

LayerDescription
Driver LayerThis comprises the classes QSqlDriver, QSqlDriverCreatorBase, and QSqlResult. This layer provides the low-level bridge between the specific databases and the SQL API layer. See SQL Database Drivers for more information.
SQL API LayerThese classes provide access to databases. Connections are made using the QSqlDatabase class. Database interaction is achieved by using the QSqlQuery class. In addition to QSqlDatabase and QSqlQuery, the SQL API layer is supported by QSqlError, QSqlField, QSqlIndex, and QSqlRecord.
User Interface LayerThese classes link the data from a database to data-aware widgets. They include QSqlQueryModel, QSqlTableModel, and QSqlRelationalTableModel. These classes are designed to work with Qt's model/view framework.

To import the module use, for example, the following statement:

from PyQt4 import QtSql

This overview assumes that you have at least a basic knowledge of SQL. You should be able to understand simple SELECT, INSERT, UPDATE, and DELETE statements. Although the QSqlTableModel class provides an interface to database browsing and editing that does not require a knowledge of SQL, a basic understanding of SQL is highly recommended. A standard text covering SQL databases is An Introduction to Database Systems (7th Ed.) by C. J. Date, ISBN 0201385902.

Topics:

Connecting to Databases

Before you can use QSqlQuery or QSqlQueryModel to access a database, you must create at least one database connection.

Database connections are identified by arbitrary strings. QSqlDatabase also supports the concept of a default connection, which is used by the Qt SQL class if no other connection is specified. This mechanism is very convenient for applications that use only one database connection.

The following code establishes a connection to a MySQL database called flightdb on host bigblue:

        QSqlDatabase db = QSqlDatabase.addDatabase("QMYSQL");
        db.setHostName("bigblue");
        db.setDatabaseName("flightdb");
        db.setUserName("acarlson");
        db.setPassword("1uTbSbAs");
        bool ok = db.open();

The first argument to QSqlDatabase.addDatabase() is the name of the driver. See the addDatabase() documentation for a list of drivers. We call setHostName(), setDatabaseName(), setUserName(), and setPassword() to initialize the connection information.

Since no name was specified for the connection, the connection serves as the default connection. To specify a name, pass it as the second argument to QSqlDatabase.addDatabase(). For example:

        QSqlDatabase firstDB = QSqlDatabase.addDatabase("QMYSQL", "first");
        QSqlDatabase secondDB = QSqlDatabase.addDatabase("QMYSQL", "second");

Once the connection is initialized, we must call QSqlDatabase.open() to open the database and give us access to the data. If this call fails it will return false; error information can be obtained from QSqlDatabase.lastError().

Once a connection is established, we can call the static function QSqlDatabase.database() from anywhere to get a pointer to a database connection. If we call it without a parameter, it will return the default connection. If called with the identifier used for a connection, it will return a reference to the specified connection. For example:

        QSqlDatabase defaultDB = QSqlDatabase.database();
        QSqlDatabase firstDB = QSqlDatabase.database("first");
        QSqlDatabase secondDB = QSqlDatabase.database("second");

To remove a database connection, first close the database using QSqlDatabase.close(), then remove it using the static method QSqlDatabase.removeDatabase().

Executing SQL Statements

The QSqlQuery class provides an interface for executing SQL statements and navigating through the result set of a query.

The QSqlQueryModel and QSqlTableModel classes described in the next section provide a higher-level interface for accessing databases. If you are unfamiliar with SQL, you might want to skip directly to the next section (Using the SQL Model Classes).

Executing a Query

To execute an SQL statement, simply create a QSqlQuery object and call QSqlQuery.exec() like this:

        QSqlQuery query;
        query.exec("SELECT name, salary FROM employee WHERE salary > 50000");

The QSqlQuery constructor accepts an optional QSqlDatabase object that specifies which database connection to use. In the example above, we don't specify any connection, so the default connection is used.

If an error occurs, exec() returns false. The error is then available as QSqlQuery.lastError().

Navigating the Result Set

QSqlQuery provides access to the result set one record at a time. After the call to exec(), QSqlQuery's internal pointer is located one position before the first record. We must call QSqlQuery.next() once to advance to the first record, then next() again repeatedly to access the other records, until it returns false. Here's a typical loop that iterates over all the records in order:

        while (query.next()) {
            QString name = query.value(0).toString();
            int salary = query.value(1).toInt();
            qDebug() << name << salary;
        }

The QSqlQuery.value() function returns the value of a field in the current record. Fields are specified as zero-based indexes. QSqlQuery.value() returns a QVariant, a type that can hold various C++ and core Qt data types such as int, QString, and QByteArray. The different database types are automatically mapped into the closest Qt equivalent. In the code snippet, we call QVariant.toString() and QVariant.toInt() to convert variants to QString and int.

You can iterate back and forth using QSqlQuery.next(), QSqlQuery.previous(), QSqlQuery.first(), QSqlQuery.last(), and QSqlQuery.seek(). The current row index is returned by QSqlQuery.at(), and the total number of rows in the result set is avaliable as QSqlQuery.size() for databases that support it.

To determine whether a database driver supports a given feature, use QSqlDriver.hasFeature(). In the following example, we call QSqlQuery.size() to determine the size of a result set of the underlying database supports that feature; otherwise, we navigate to the last record and use the query's position to tell us how many records there are.

        QSqlQuery query;
        int numRows;
        query.exec("SELECT name, salary FROM employee WHERE salary > 50000");

        QSqlDatabase defaultDB = QSqlDatabase.database();
        if (defaultDB.driver()->hasFeature(QSqlDriver.QuerySize)) {
            numRows = query.size();
        } else {
            // this can be very slow
            query.last();
            numRows = query.at() + 1;
        }

If you iterate through a result set only using next() and seek() with positive values, you can call QSqlQuery.setForwardOnly(true) before calling exec(). This is an easy optimization that will speed up the query significantly when operating on large result sets.

Inserting, Updating, and Deleting Records

QSqlQuery can execute arbitrary SQL statements, not just SELECTs. The following example inserts a record into a table using INSERT:

        QSqlQuery query;
        query.exec("INSERT INTO employee (id, name, salary) "
                   "VALUES (1001, 'Thad Beaumont', 65000)");

If you want to insert many records at the same time, it is often more efficient to separate the query from the actual values being inserted. This can be done using placeholders. Qt supports two placeholder syntaxes: named binding and positional binding. Here's an example of named binding:

        QSqlQuery query;
        query.prepare("INSERT INTO employee (id, name, salary) "
                      "VALUES (:id, :name, :salary)");
        query.bindValue(":id", 1001);
        query.bindValue(":name", "Thad Beaumont");
        query.bindValue(":salary", 65000);
        query.exec();

Here's an example of positional binding:

        QSqlQuery query;
        query.prepare("INSERT INTO employee (id, name, salary) "
                      "VALUES (?, ?, ?)");
        query.addBindValue(1001);
        query.addBindValue("Thad Beaumont");
        query.addBindValue(65000);
        query.exec();

Both syntaxes work with all database drivers provided by Qt. If the database supports the syntax natively, Qt simply forwards the query to the DBMS; otherwise, Qt simulates the placeholder syntax by preprocessing the query. The actual query that ends up being executed by the DBMS is available as QSqlQuery.executedQuery().

When inserting multiple records, you only need to call QSqlQuery.prepare() once. Then you call bindValue() or addBindValue() followed by exec() as many times as necessary.

Besides performance, one advantage of placeholders is that you can easily specify arbitrary values without having to worry about escaping special characters.

Updating a record is similar to inserting it into a table:

        QSqlQuery query;
        query.exec("UPDATE employee SET salary = 70000 WHERE id = 1003");

You can also use named or positional binding to associate parameters to actual values.

Finally, here's an example of a DELETE statement:

        QSqlQuery query;
        query.exec("DELETE FROM employee WHERE id = 1007");

Transactions

If the underlying database engine supports transactions, QSqlDriver.hasFeature(QSqlDriver.Transactions) will return true. You can use QSqlDatabase.transaction() to initiate a transaction, followed by the SQL commands you want to execute within the context of the transaction, and then either QSqlDatabase.commit() or QSqlDatabase.rollback().

Example:

        QSqlDatabase.database().transaction();
        QSqlQuery query;
        query.exec("SELECT id FROM employee WHERE name = 'Torild Halvorsen'");
        if (query.next()) {
            int employeeId = query.value(0).toInt();
            query.exec("INSERT INTO project (id, name, ownerid) "
                       "VALUES (201, 'Manhattan Project', "
                       + QString.number(employeeId) + ")");
        }
        QSqlDatabase.database().commit();

Transactions can be used to ensure that a complex operation is atomic (for example, looking up a foreign key and creating a record), or to provide a means of canceling a complex change in the middle.

Using the SQL Model Classes

In addition to QSqlQuery, Qt offers three higher-level classes for accessing databases. These classes are QSqlQueryModel, QSqlTableModel, and QSqlRelationalTableModel.

QSqlQueryModelA read-only model based on an arbitrary SQL query.
QSqlTableModelA read-write model that works on a single table.
QSqlRelationalTableModelA QSqlTableModel subclass with foreign key support.

These classes derive from QAbstractTableModel (which in turn inherits from QAbstractItemModel) and make it easy to present data from a database in an item view class such as QListView and QTableView. This is explained in detail in the Presenting Data in a Table View section.

Another advantage of using these classes is that it can make your code easier to adapt to other data sources. For example, if you use QSqlTableModel and later decide to use XML files to store data instead of a database, it is essentially just a matter of replacing one data model with another.

The SQL Query Model

QSqlQueryModel offers a read-only model based on an SQL query.

Example:

        QSqlQueryModel model;
        model.setQuery("SELECT * FROM employee");

        for (int i = 0; i < model.rowCount(); ++i) {
            int id = model.record(i).value("id").toInt();
            QString name = model.record(i).value("name").toString();
            qDebug() << id << name;
        }

After setting the query using QSqlQueryModel.setQuery(), you can use QSqlQueryModel.record(int) to access the individual records. You can also use QSqlQueryModel.data() and any of the other functions inherited from QAbstractItemModel.

There's also a setQuery() overload that takes a QSqlQuery object and operates on its result set. This enables you to use any features of QSqlQuery to set up the query (e.g., prepared queries).

The SQL Table Model

QSqlTableModel offers a read-write model that works on a single SQL table at a time.

Example:

        QSqlTableModel model;
        model.setTable("employee");
        model.setFilter("salary > 50000");
        model.setSort(2, Qt.DescendingOrder);
        model.select();

        for (int i = 0; i < model.rowCount(); ++i) {
            QString name = model.record(i).value("name").toString();
            int salary = model.record(i).value("salary").toInt();
            qDebug() << name << salary;
        }

QSqlTableModel is a high-level alternative to QSqlQuery for navigating and modifying individual SQL tables. It typically results in less code and requires no knowledge of SQL syntax.

Use QSqlTableModel.record() to retrieve a row in the table, and QSqlTableModel.setRecord() to modify the row. For example, the following code will increase every employee's salary by 10 per cent:

        for (int i = 0; i < model.rowCount(); ++i) {
            QSqlRecord record = model.record(i);
            double salary = record.value("salary").toInt();
            salary *= 1.1;
            record.setValue("salary", salary);
            model.setRecord(i, record);
        }
        model.submitAll();

You can also use QSqlTableModel.data() and QSqlTableModel.setData(), which are inherited from QAbstractItemModel, to access the data. For example, here's how to update a record using setData():

        model.setData(model.index(row, column), 75000);
        model.submitAll();

Here's how to insert a row and populate it:

        model.insertRows(row, 1);
        model.setData(model.index(row, 0), 1013);
        model.setData(model.index(row, 1), "Peter Gordon");
        model.setData(model.index(row, 2), 68500);
        model.submitAll();

Here's how to delete five consecutive rows:

        model.removeRows(row, 5);
        model.submitAll();

The first argument to QSqlTableModel.removeRows() is the index of the first row to delete.

When you're finished changing a record, you should always call QSqlTableModel.submitAll() to ensure that the changes are written to the database.

When and whether you actually need to call submitAll() depends on the table's edit strategy. The default strategy is QSqlTableModel.OnRowChange, which specifies that pending changes are applied to the database when the user selects a different row. Other strategies are QSqlTableModel.OnManualSubmit (where all changes are cached in the model until you call submitAll()) and QSqlTableModel.OnFieldChange (where no changes are cached). These are mostly useful when QSqlTableModel is used with a view.

QSqlTableModel.OnFieldChange seems to deliver the promise that you never need to call submitAll() explicitly. There are two pitfalls, though:

  • Without any caching, performance may drop significantly.
  • If you modify a primary key, the record might slip through your fingers while you are trying to populate it.

The SQL Relational Table Model

QSqlRelationalTableModel extends QSqlTableModel to provide support for foreign keys. A foreign key is a 1-to-1 mapping between a field in one table and the primary key field of another table. For example, if a book table has a field called authorid that refers to the author table's id field, we say that authorid is a foreign key.

The screenshot on the left shows a plain QSqlTableModel in a QTableView. Foreign keys (city and country) aren't resolved to human-readable values. The screenshot on the right shows a QSqlRelationalTableModel, with foreign keys resolved into human-readable text strings.

The following code snippet shows how the QSqlRelationalTableModel was set up:

        model->setTable("employee");

        model->setRelation(2, QSqlRelation("city", "id", "name"));
        model->setRelation(3, QSqlRelation("country", "id", "name"));

See the QSqlRelationalTableModel documentation for details.

Presenting Data in a Table View

The QSqlQueryModel, QSqlTableModel, and QSqlRelationalTableModel classes can be used as a data source for Qt's view classes such as QListView, QTableView, and QTreeView. In practice, QTableView is by far the most common choice, because an SQL result set is essentially a two-dimensional data structure.

A table view displaying a QSqlTableModel

The following example creates a view based on an SQL data model:

        QTableView *view = new QTableView;
        view->setModel(model);
        view->show();

If the model is a read-write model (e.g., QSqlTableModel), the view lets the user edit the fields. You can disable this by calling

        view->setEditTriggers(QAbstractItemView.NoEditTriggers);

You can use the same model as a data source for multiple views. If the user edits the model through one of the views, the other views will reflect the changes immediately. The Table Model example shows how it works.

View classes display a header at the top to label the columns. To change the header texts, call setHeaderData() on the model. The header's labels default to the table's field names. For example:

        model->setHeaderData(0, Qt.Horizontal, QObject.tr("ID"));
        model->setHeaderData(1, Qt.Horizontal, QObject.tr("Name"));
        model->setHeaderData(2, Qt.Horizontal, QObject.tr("City"));
        model->setHeaderData(3, Qt.Horizontal, QObject.tr("Country"));

QTableView also has a vertical header on the left with numbers identifying the rows. If you insert rows programmatically using QSqlTableModel.insertRows(), the new rows will be marked with an asterisk (*) until they are submitted using submitAll() or automatically when the user moves to another record (assuming the edit strategy is QSqlTableModel.OnRowChange).

Inserting a row in a model

Likewise, if you remove rows using removeRows(), the rows will be marked with an exclamation mark (!) until the change is submitted.

The items in the view are rendered using a delegate. The default delegate, QItemDelegate, handles the most common data types (int, QString, QImage, etc.). The delegate is also responsible for providing editor widgets (e.g., a combobox) when the user starts editing an item in the view. You can create your own delegates by subclassing QAbstractItemDelegate or QItemDelegate. See Model/View Programming for more information.

QSqlTableModel is optimized to operate on a single table at a time. If you need a read-write model that operates on an arbitrary result set, you can subclass QSqlQueryModel and reimplement flags() and setData() to make it read-write. The following two functions make fields 1 and 2 of a query model editable:

    Qt.ItemFlags EditableSqlModel.flags(
            const QModelIndex &index) const
    {
        Qt.ItemFlags flags = QSqlQueryModel.flags(index);
        if (index.column() == 1 || index.column() == 2)
            flags |= Qt.ItemIsEditable;
        return flags;
    }

    bool EditableSqlModel.setData(const QModelIndex &index, const QVariant &value, int /* role */)
    {
        if (index.column() < 1 || index.column() > 2)
            return false;

        QModelIndex primaryKeyIndex = QSqlQueryModel.index(index.row(), 0);
        int id = data(primaryKeyIndex).toInt();

        clear();

        bool ok;
        if (index.column() == 1) {
            ok = setFirstName(id, value.toString());
        } else {
            ok = setLastName(id, value.toString());
        }
        refresh();
        return ok;
    }

The setFirstName() helper function is defined as follows:

    bool EditableSqlModel.setFirstName(int personId, const QString &firstName)
    {
        QSqlQuery query;
        query.prepare("update person set firstname = ? where id = ?");
        query.addBindValue(firstName);
        query.addBindValue(personId);
        return query.exec();
    }

The setLastName() function is similar. See the Query Model example for the complete source code.

Subclassing a model makes it possible to customize it in many ways: You can provide tooltips for the items, change the background color, provide calculated values, provide different values for viewing and editing, handle null values specially, and more. See Model/View Programming as well as the QAbstractItemView reference documentation for details.

If all you need is to resolve a foreign key to a more human-friendly string, you can use QSqlRelationalTableModel. For best results, you should also use QSqlRelationalDelegate, a delegate that provides combobox editors for editing foreign keys.

Editing a foreign key in a relational table

The Relational Table Model example illustrates how to use QSqlRelationalTableModel in conjunction with QSqlRelationalDelegate to provide tables with foreign key support.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtsvg.html0000644000076500000240000001360512536324470017522 0ustar philstaff00000000000000 QtSvg Module
  Home · All Classes · Modules

QtSvg Module

The QtSvg module provides classes for displaying the contents of SVG files. More...

Types


Detailed Description

The QtSvg module provides classes for displaying the contents of SVG files.

To import the module use, for example, the following statement:

from PyQt4 import QtSvg

Scalable Vector Graphics (SVG) is a language for describing two-dimensional graphics and graphical applications in XML. SVG 1.1 is a W3C Recommendation and forms the core of the current SVG developments in Qt. SVG 1.2 is the specification currently being developed by the SVG Working Group, and it is available in draft form. The Mobile SVG Profiles (SVG Basic and SVG Tiny) are aimed at resource-limited devices and are part of the 3GPP platform for third generation mobile phones. You can read more about SVG at About SVG.

SVG Support

Qt supports the static features of SVG 1.2 Tiny. ECMA scripts and DOM manipulation are currently not supported.

Rendering SVG files

The easiest way to render SVG files is to construct a QSvgWidget and load an SVG file using one of the QSvgWidget.load() functions.

QSvgRenderer is the class responsible for rendering SVG files for QSvgWidget, and it can be used directly to provide SVG support for custom widgets. To load an SVG file, construct a QSvgRenderer with a file name or the contents of a file, or call QSvgRenderer.load() on an existing renderer. If the SVG file has been loaded successfully the QSvgRenderer.isValid() will return true.

Once you have loaded the SVG file successfully, you can render it with the QSvgRenderer.render() function. Note that this scheme allows you to render SVG files on all paint devices supported by Qt, including QWidget, QGLWidget, and QImage. See the SVG Viewer example for more details.

Additional Information

Some code for arc handling in this module is derived from code with the following license:

Copyright 2002 USC/Information Sciences Institute

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Information Sciences Institute not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Information Sciences Institute makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

INFORMATION SCIENCES INSTITUTE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL INFORMATION SCIENCES INSTITUTE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qttest.html0000644000076500000240000000412112536324470017673 0ustar philstaff00000000000000 QtTest Module
  Home · All Classes · Modules

QtTest Module

The QtTest module provides functions for unit testing PyQt applications. More...

Types


Detailed Description

The QtTest module provides functions for unit testing PyQt applications.

To import the module use, for example, the following statement:

from PyQt4 import QtTest

PyQt does not include the full Qt unit test framework. Instead it assumes that the standard Python unit test framework will be used. Therefore, only those functions that simulate user interaction with a GUI are implemented.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtwebkit.html0000644000076500000240000001731312536324470020210 0ustar philstaff00000000000000 QtWebKit Module
  Home · All Classes · Modules

QtWebKit Module

The QtWebKit module provides classes for rendering HTML, XHTML, SVG documents using CSS and scripted with JavaScript. More...

Types

Module Functions


Detailed Description

An introduction to the QtWebKit module.

To import the module use, for example, the following statement:

from PyQt4 import QtWebKit

QtWebKit provides a Web browser engine that makes it easy to embed content from the World Wide Web into your Qt application. At the same time Web content can be enhanced with native controls.

QtWebKit provides facilities for rendering of HyperText Markup Language (HTML), Extensible HyperText Markup Language (XHTML) and Scalable Vector Graphics (SVG) documents, styled using Cascading Style Sheets (CSS) and scripted with JavaScript.

A bridge between the JavaScript execution environment and the Qt object model makes it possible for custom QObjects to be scripted. Integration with the Qt networking module enables Web pages to be transparently loaded from Web servers, the local file system or even the Qt resource system.

In addition to providing pure rendering features, HTML documents can be made fully editable to the user through the use of the contenteditable attribute on HTML elements.

QtWebKit is based on the Open Source WebKit engine. More information about WebKit itself can be found on the WebKit Open Source Project Web site.

The QtWebKit module is part of the Qt Desktop Edition, and the Qt Open Source Edition.

Topics:

Architecture

The easiest way to render content is through the QWebView class. As a widget it can be embedded into your forms or a graphics view, and it provides convenience functions for downloading and rendering web sites.

     QWebView *view = new QWebView(parent);
     view->load(QUrl("http://www.trolltech.com/"));
     view->show();

QWebView acts as a view onto Web pages, each of which is represented by an instance of the QWebPage class. QWebPage provides access to the document structure in a page, describing features such as frames, the navigation history, and the undo/redo stack for editable content.

HTML documents can be nested using frames in a frameset. An individual frame in HTML is represented using the QWebFrame class. It includes the bridge to the JavaScript window object and can be painted using QPainter. Each QWebPage has one QWebFrame object as its main frame.

Individual browser features, defaults and other settings can be configured through the QWebSettings class. It is possible to provide defaults for all QWebPage instances through the default settings. Individual attributes can be overidden by the page specific settings object.

License Information

Copyright (C) 2007-2008 Trolltech ASA

Copyright (C) 2007 Staikos Computing Services Inc.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library 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 Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


Function Documentation

int qWebKitMajorVersion ()

int qWebKitMinorVersion ()

QString qWebKitVersion ()


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtxml.html0000644000076500000240000007077612536324470017537 0ustar philstaff00000000000000 QtXml Module
  Home · All Classes · Modules

QtXml Module

The QtXml module provides implementations of SAX and DOM. More...

Types


Detailed Description

The QtXml module provides implementations of SAX and DOM.

To import the module use, for example, the following statement:

from PyQt4 import QtXml

SAX is an event-based standard interface for XML parsers. The Qt interface follows the design of the SAX2 Java implementation. Its naming scheme was adapted to fit the Qt naming conventions. Details on SAX2 can be found at http://www.saxproject.org.

Support for SAX2 filters and the reader factory are under development. The Qt implementation does not include the SAX1 compatibility classes present in the Java interface. For an introduction to Qt's SAX2 classes see The Qt SAX2 classes.

DOM Level 2 is a W3C Recommendation for XML interfaces that maps the constituents of an XML document to a tree structure. The specification of DOM Level 2 can be found at http://www.w3.org/DOM/. More information about the DOM classes in Qt is provided in the Qt DOM classes.

In addition to SAX and DOM support, Qt's Q3Picture class can read and write SVG. Additional XML support is provided by the Qt Solutions group who provide, for example, classes that support SOAP and MML with the Qt XML classes.

Topics:

The Qt SAX2 Classes

Introduction to SAX2

The SAX2 interface is an event-driven mechanism to provide the user with document information. An "event" in this context means something reported by the parser, for example, it has encountered a start tag, or an end tag, etc.

To make it less abstract consider the following example:

    <quote>A quotation.</quote>

Whilst reading (a SAX2 parser is usually referred to as "reader") the above document three events would be triggered:

  1. A start tag occurs (<quote>).
  2. Character data (i.e. text) is found, "A quotation.".
  3. An end tag is parsed (</quote>).

Each time such an event occurs the parser reports it; you can set up event handlers to respond to these events.

Whilst this is a fast and simple approach to read XML documents, manipulation is difficult because data is not stored, simply handled and discarded serially. The DOM interface reads in and stores the whole document in a tree structure; this takes more memory, but makes it easier to manipulate the document's structure..

The Qt XML module provides an abstract class, QXmlReader, that defines the interface for potential SAX2 readers. Qt includes a reader implementation, QXmlSimpleReader, that is easy to adapt through subclassing.

The reader reports parsing events through special handler classes:

Handler classDescription
QXmlContentHandlerReports events related to the content of a document (e.g. the start tag or characters).
QXmlDTDHandlerReports events related to the DTD (e.g. notation declarations).
QXmlErrorHandlerReports errors or warnings that occurred during parsing.
QXmlEntityResolverReports external entities during parsing and allows users to resolve external entities themselves instead of leaving it to the reader.
QXmlDeclHandlerReports further DTD related events (e.g. attribute declarations).
QXmlLexicalHandlerReports events related to the lexical structure of the document (the beginning of the DTD, comments etc.).

These classes are abstract classes describing the interface. The QXmlDefaultHandler class provides a "do nothing" default implementation for all of them. Therefore users only need to overload the QXmlDefaultHandler functions they are interested in.

To read input XML data a special class QXmlInputSource is used.

Apart from those already mentioned, the following SAX2 support classes provide additional useful functionality:

ClassDescription
QXmlAttributesUsed to pass attributes in a start element event.
QXmlLocatorUsed to obtain the actual parsing position of an event.
QXmlNamespaceSupportUsed to implement namespace support for a reader. Note that namespaces do not change the parsing behavior. They are only reported through the handler.

SAX2 Features

The behavior of an XML reader depends on its support for certain optional features. For example, a reader may have the feature "report attributes used for namespace declarations and prefixes along with the local name of a tag". Like every other feature this has a unique name represented by a URI: it is called http://xml.org/sax/features/namespace-prefixes.

The Qt SAX2 implementation can report whether the reader has particular functionality using the QXmlReader.hasFeature() function. Available features can be tested with QXmlReader.feature(), and switched on or off using QXmlReader.setFeature().

Consider the example

    <document xmlns:book = 'http://trolltech.com/fnord/book/'
              xmlns      = 'http://trolltech.com/fnord/' >

A reader that does not support the http://xml.org/sax/features/namespace-prefixes feature would report the element name document but not its attributes xmlns:book and xmlns with their values. A reader with the feature http://xml.org/sax/features/namespace-prefixes reports the namespace attributes if the feature is switched on.

Other features include http://xml.org/sax/features/namespace (namespace processing, implies http://xml.org/sax/features/namespace-prefixes) and http://xml.org/sax/features/validation (the ability to report validation errors).

Whilst SAX2 leaves it to the user to define and implement whatever features are required, support for http://xml.org/sax/features/namespace (and thus http://xml.org/sax/features/namespace-prefixes) is mandantory. The QXmlSimpleReader implementation of QXmlReader, supports them, and can do namespace processing.

QXmlSimpleReader is not validating, so it does not support http://xml.org/sax/features/validation.

Namespace Support via Features

As we have seen in the previous section, we can configure the behavior of the reader when it comes to namespace processing. This is done by setting and unsetting the http://xml.org/sax/features/namespaces and http://xml.org/sax/features/namespace-prefixes features.

They influence the reporting behavior in the following way:

  1. Namespace prefixes and local parts of elements and attributes can be reported.
  2. The qualified names of elements and attributes are reported.
  3. QXmlContentHandler.startPrefixMapping() and QXmlContentHandler.endPrefixMapping() are called by the reader.
  4. Attributes that declare namespaces (i.e. the attribute xmlns and attributes starting with xmlns:) are reported.

Consider the following element:

    <author xmlns:fnord = 'http://trolltech.com/fnord/'
                 title="Ms"
                 fnord:title="Goddess"
                 name="Eris Kallisti"/>

With http://xml.org/sax/features/namespace-prefixes set to true the reader will report four attributes; but with the namespace-prefixes feature set to false only three, with the xmlns:fnord attribute defining a namespace being "invisible" to the reader.

The http://xml.org/sax/features/namespaces feature is responsible for reporting local names, namespace prefixes and URIs. With http://xml.org/sax/features/namespaces set to true the parser will report title as the local name of the fnord:title attribute, fnord being the namespace prefix and http://trolltech.com/fnord/ as the namespace URI. When http://xml.org/sax/features/namespaces is false none of them are reported.

In the current implementation the Qt XML classes follow the definition that the prefix xmlns itself isn't associated with any namespace at all (see http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-using). Therefore even with http://xml.org/sax/features/namespaces and http://xml.org/sax/features/namespace-prefixes both set to true the reader won't return either a local name, a namespace prefix or a namespace URI for xmlns:fnord.

This might be changed in the future following the W3C suggestion http://www.w3.org/2000/xmlns/ to associate xmlns with the namespace http://www.w3.org/2000/xmlns.

As the SAX2 standard suggests, QXmlSimpleReader defaults to having http://xml.org/sax/features/namespaces set to true and http://xml.org/sax/features/namespace-prefixes set to false. When changing this behavior using QXmlSimpleReader.setFeature() note that the combination of both features set to false is illegal.

Summary

QXmlSimpleReader implements the following behavior:

(namespaces, namespace-prefixes)Namespace prefix and local partQualified namesPrefix mappingxmlns attributes
(true, false)YesYes*YesNo
(true, true)YesYesYesYes
(false, true)No*YesNo*Yes
(false, false)Illegal

The behavior of the entries marked with an asterisk (*) is not specified by SAX.

Properties

Properties are a more general concept. They have a unique name, represented as an URI, but their value is void*. Thus nearly anything can be used as a property value. This concept involves some danger, though: there is no means of ensuring type-safety; the user must take care that they pass the right type. Properties are useful if a reader supports special handler classes.

The URIs used for features and properties often look like URLs, e.g. http://xml.org/sax/features/namespace. This does not mean that the data required is at this address. It is simply a way of defining unique names.

Anyone can define and use new SAX2 properties for their readers. Property support is not mandatory.

To set or query properties the following functions are provided: QXmlReader.setProperty(), QXmlReader.property() and QXmlReader.hasProperty().

The Qt DOM Classes

Introduction to DOM

DOM provides an interface to access and change the content and structure of an XML file. It makes a hierarchical view of the document (a tree view). Thus -- in contrast to the SAX2 interface -- an object model of the document is resident in memory after parsing which makes manipulation easy.

All DOM nodes in the document tree are subclasses of QDomNode. The document itself is represented as a QDomDocument object.

Here are the available node classes and their potential child classes:

With QDomNodeList and QDomNamedNodeMap two collection classes are provided: QDomNodeList is a list of nodes, and QDomNamedNodeMap is used to handle unordered sets of nodes (often used for attributes).

The QDomImplementation class allows the user to query features of the DOM implementation.

To get started please refer to the QDomDocument documentation.

An Introduction to Namespaces

Parts of the Qt XML module documentation assume that you are familiar with XML namespaces. Here we present a brief introduction; skip to Qt XML documentation conventions if you already know this material.

Namespaces are a concept introduced into XML to allow a more modular design. With their help data processing software can easily resolve naming conflicts in XML documents.

Consider the following example:

    <document>
    <book>
      <title>Practical XML</title>
      <author title="Ms" name="Eris Kallisti"/>
      <chapter>
        <title>A Namespace Called fnord</title>
      </chapter>
    </book>
    </document>

Here we find three different uses of the name title. If you wish to process this document you will encounter problems because each of the titles should be displayed in a different manner -- even though they have the same name.

The solution would be to have some means of identifying the first occurrence of title as the title of a book, i.e. to use the title element of a book namespace to distinguish it from, for example, the chapter title, e.g.:

    <book:title>Practical XML</book:title>

book in this case is a prefix denoting the namespace.

Before we can apply a namespace to element or attribute names we must declare it.

Namespaces are URIs like http://trolltech.com/fnord/book/. This does not mean that data must be available at this address; the URI is simply used to provide a unique name.

We declare namespaces in the same way as attributes; strictly speaking they are attributes. To make for example http://trolltech.com/fnord/ the document's default XML namespace xmlns we write

    xmlns="http://trolltech.com/fnord/"

To distinguish the http://trolltech.com/fnord/book/ namespace from the default, we must supply it with a prefix:

    xmlns:book="http://trolltech.com/fnord/book/"

A namespace that is declared like this can be applied to element and attribute names by prepending the appropriate prefix and a ":" delimiter. We have already seen this with the book:title element.

Element names without a prefix belong to the default namespace. This rule does not apply to attributes: an attribute without a prefix does not belong to any of the declared XML namespaces at all. Attributes always belong to the "traditional" namespace of the element in which they appear. A "traditional" namespace is not an XML namespace, it simply means that all attribute names belonging to one element must be different. Later we will see how to assign an XML namespace to an attribute.

Due to the fact that attributes without prefixes are not in any XML namespace there is no collision between the attribute title (that belongs to the author element) and for example the title element within a chapter.

Let's clarify this with an example:

    <document xmlns:book = 'http://trolltech.com/fnord/book/'
              xmlns      = 'http://trolltech.com/fnord/' >
    <book>
      <book:title>Practical XML</book:title>
      <book:author xmlns:fnord = 'http://trolltech.com/fnord/'
                   title="Ms"
                   fnord:title="Goddess"
                   name="Eris Kallisti"/>
      <chapter>
        <title>A Namespace Called fnord</title>
      </chapter>
    </book>
    </document>

Within the document element we have two namespaces declared. The default namespace http://trolltech.com/fnord/ applies to the book element, the chapter element, the appropriate title element and of course to document itself.

The book:author and book:title elements belong to the namespace with the URI http://trolltech.com/fnord/book/.

The two book:author attributes title and name have no XML namespace assigned. They are only members of the "traditional" namespace of the element book:author, meaning that for example two title attributes in book:author are forbidden.

In the above example we circumvent the last rule by adding a title attribute from the http://trolltech.com/fnord/ namespace to book:author: the fnord:title comes from the namespace with the prefix fnord that is declared in the book:author element.

Clearly the fnord namespace has the same namespace URI as the default namespace. So why didn't we simply use the default namespace we'd already declared? The answer is quite complex:

  • attributes without a prefix don't belong to any XML namespace at all, not even to the default namespace;
  • additionally omitting the prefix would lead to a title-title clash;
  • writing it as xmlns:title would declare a new namespace with the prefix title instead of applying the default xmlns namespace.

With the Qt XML classes elements and attributes can be accessed in two ways: either by refering to their qualified names consisting of the namespace prefix and the "real" name (or local name) or by the combination of local name and namespace URI.

More information on XML namespaces can be found at http://www.w3.org/TR/REC-xml-names/.

Conventions Used in the Qt XML Documentation

The following terms are used to distinguish the parts of names within the context of namespaces:

  • The qualified name is the name as it appears in the document. (In the above example book:title is a qualified name.)
  • A namespace prefix in a qualified name is the part to the left of the ":". (book is the namespace prefix in book:title.)
  • The local part of a name (also refered to as the local name) appears to the right of the ":". (Thus title is the local part of book:title.)
  • The namespace URI ("Uniform Resource Identifier") is a unique identifier for a namespace. It looks like a URL (e.g. http://trolltech.com/fnord/ ) but does not require data to be accessible by the given protocol at the named address.

Elements without a ":" (like chapter in the example) do not have a namespace prefix. In this case the local part and the qualified name are identical (i.e. chapter).


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qtxmlpatterns.html0000644000076500000240000006122312536324470021303 0ustar philstaff00000000000000 QtXmlPatterns Module
  Home · All Classes · Modules

QtXmlPatterns Module

The QtXmlPatterns module implements PyQt's XQuery support. More...

Types


Detailed Description

An introduction to PyQt's XQuery support.

To import the module use, for example, the following statement:

from PyQt4 import QtXmlPatterns

XQuery is a pragmatic language that allows XML to be queried and created in fast, concise and safe ways.

Introduction

 <bibliography>
 {
     doc("library.xml")/bib/book[publisher = "Addison-Wesley" and @year > 1991]/
     <book year="{@year}">{title}</book>
 }
 </bibliography>

The query opens the file library.xml, and for each book element that is a child of the top element bib, and whose attribute by name year is larger than 1991 and has Addison-Wesley as a publisher, it constructs a book element and attaches it to the parent element called bibliography.

Why use XQuery?

XQuery is tailor made for selecting and aggregating information in safe and efficient ways. Hence, if an application selects and navigates data, XQuery could be a possible candidate for implementing that in a quick and bug-free manner. With QAbstractXmlNodeModel, these advantages are not constrained to XML files, but can be applied to other data as well.

Maybe XQuery can be summarized as follows:

  • Pragmatic functionality: XQuery has a slew of expressions for sorting, selecting and filtering data in typically one liners. Aggregation functions like avg(), abs() and max() helps further doing this concisely.
  • Development speed: pick one of the queries in this document and imagine writing the equivalent code in C++ or Java. Compared to a one or two liner of XQuery, that would be quite a task to develop, test and maintain.
  • Type safety: in XQuery values have strong types, and the type system respect that. For instance, one cannot pass the return value from current-time() to a function that expects xs:integer, and the value of an attribute or element can be atomic values such as xs:date or xs:double, as opposed to only strings.
  • Interoperability: XML has a gazillion of rules for how things should be and not be. Adhering to these are important since it ensures data is consistently interpreted and that different XML processors can handle the same data. However, knowing, and keeping in mind, all these rules is a daunting task. The QtXmlPatterns engine does all this checking behind the scenes. The user just writes queries, and as long as an error isn't flagged, one can sleep tight, knowing ones data will be correctly processed with product XYZ, or appearing in the same manner on the other side of the planet.

On top of that the language is designed to be high level such that it is easy to analyze what the user is computing. With this, it is easier to optimize both speed and memory use of XML operations.

Using QtXmlPatterns

Evaluating queries can be done via an ordinary Qt C++ API and using a command line interface.

C++ API

Configuring the Build Process

Applications that use QtXmlPatterns' classes need to be configured to be built against the QtXmlPatterns module. To include the definitions of the module's classes, use the following directive:

      #include <QtXmlPatterns>

To link against the module, add this line to your qmake .pro file:

      QT += xmlpatterns

QtXmlPatterns is part of the Qt Desktop Edition, Qt Open Source Edition and the Qt Console Edition. Note that QtXmlPatterns is disabled when building Qt, if exceptions are disabled or if a compiler that doesn't support member templates, such as MSVC 6, is used.

See QXmlQuery for how to use the C++ API.

Command line utility

A command line utility called xmlpatterns is installed and available like the other command line utilities such as moc or uic. It takes a single argument that is the filename of the query to execute:

xmlpatterns myQuery.xq

The query will be run and the output written to stdout.

Pass in the -help switch to get a brief description printed to the console, such as how to bind variables using the command line.

The command line utility's interface is stable for scripting, but descriptions and help messages are not designed for the purpose of automatic parsing, and can change in undefined ways in a future release of Qt.

XQuery HOWTO

See A Short Path to XQuery for a round of XQuery.

Qt's and XQuery's Data Model

XQuery and Qt has different data models. All data in XQuery takes the form of sequences of items, where an item is either a node, or an atomic value. Atomic values are the primitives found in W3C XML Schema, and nodes are usual XML nodes, although they might represent other things using QXmlNodeModelIndex and QAbstractXmlNodeModel.

Atomic values, when not being serialized, are represented with QVariant. The mappings are as follows.

From XQueryTo Qt
xs:integerQVariant.LongLong
xs:stringQVariant.String
xs:doubleQVariant.Double
xs:floatQVariant.Double
xs:booleanQVariant.Bool
xs:decimalQVariant.Double
xs:hexBinaryQVariant.ByteArray
xs:base64BinaryQVariant.ByteArray
xs:timeNot supported because xs:time has a zone offset, and QTime does not. Use xs:dateTime, or convert the value to xs:string.
xs:dateQVariant.DateTime
xs:dateTimeQVariant.DateTime
xs:gYearQVariant.DateTime
xs:gYearMonthQVariant.DateTime
xs:gMonthDayQVariant.DateTime
xs:gDayQVariant.DateTime
xs:gMonthQVariant.DateTime
xs:string*QVariant.StringList
xs:anyURIQVariant.Url
xs:untypedAtomicQVariant.String
xs:ENTITYQVariant.String
xs:QNameQXmlName. Note that the returned QXmlName can only be used with the QXmlQuery instance that it was created with.

From QtTo XQuery
QVariant.LongLongxs:integer
QVariant.Intxs:integer
QVariant.UIntxs:nonNegativeInteger
QVariant.ULongLongxs:unsignedLong
QVariant.Stringxs:string
QVariant.Doublexs:double
QVariant.Boolxs:boolean
QVariant.Doublexs:decimal
QVariant.ByteArrayxs:base64Binary
QVariant.Datexs:date. The QDate is assumed to be in timezone UTC.
QVariant.TimeQTime cannot properly represent xs:time. Convert QTime to a QDateTime with a valid arbitrary date, and bind the time as a QDateTime instead.
QVariant.DateTimexs:dateTime
QVariant.StringListxs:string*
QVariant.Urlxs:string
QVariantListA sequence of atomic values, whose type is the same as the first item in the QVariantList instance. If all the items in the QVariantList is not of the same type, behavior is undefined.
Any other typeIt is not supported and will either lead to undefined behavior, or an unexisting variable binding, depending on context.

Integrating with Custom Data

XQuery is a language designed for, and modeled on XML. However, it doesn't have to be constrained to that. By sub-classing QAbstractXmlNodeModel one can write queries on top of any data that can be modeled as XML.

By default when QtXmlPatterns is asked to open files or to produce content, this is done using an internal representation. For instance, in this query:

 <result>
     <para>The following Acne removers have shipped, ordered by shipping date(oldest first):</para>
     {
         for $i in doc("myOrders.xml")/orders/order[@product = "Acme's Acne Remover"]
         order by xs:date($i/@shippingDate) descending
         return $i
     }
 </result>

an efficient internal representation is used for the file myOrders.xml. However, by sub-classing QAbstractXmlNodeModel one can write a query on any data, by mapping XML elements and attributes to the custom data model. For instance, one could write a QAbstractXmlNodeModel sub-class that mirrors the file system hierarchy like this:

 <?xml version="1.0" encoding="UTF-8"?>
 <directory name="home">

     <file name="myNote.txt" mimetype="text/plain" size="8" extension="txt" uri="file:///home/frans/myNote.txt">
         <content asBase64Binary="TXkgTm90ZSE=" asStringFromUTF-8="My Note!"/>
     </file>

     <directory name="src">
         ...
     </directory>

     ...

 </directory>

and hence have a convenient way to navigate the file system:

 <html>
     <body>
         {
             $myRoot//file[@mimetype = 'text/xml' or @mimetype = 'application/xml']
             /
             (if(doc-available(@uri))
              then ()
              else <p>Failed to parse file {@uri}.</p>)
         }
     </body>
 </html>

Converting a data model to XML(text) and then read it in with an XML tool has been one approach to this, but that has disadvantages such as being inefficient. The XML representation is separated from the actual data model, and that two representations needs to be maintained simultaneously in memory.

With QAbstractXmlNodeModel this conversion is not necessary, nor are two representation kept at the same time, since QXmlNodeModelIndex is a small, efficient, stack allocated value. Also, since the XQuery engine asks the QAbstractXmlNodeModel for the actual data, the model can create elements, attributes and data on demand, depending on what the query actually requests. For instance, in the file system model above, the model doesn't have to read in the whole file system or encoded the content of a file until it is actually asked for.

In other words, with QAbstractXmlNodeModel it's possible to have one data model, and then use the power of the XQuery language on top.

Some examples of possible data models could be:

  • The internal document representation in a word processor
  • Dependencies within a build system
  • the hierarchy(or graph) that links with HTML documents forms(for a web crawler)
  • Images and meta data in an image collection
  • The D-Bus interfaces available on the system
  • The file system hierarchy(as seen above)
  • The QObject hierarchy.

The documentation for QAbstractXmlNodeModel has the details for implementing this.

More on Custom Data

Since QtXmlPatterns isn't constrained to XML but can use custom data directly, it turns XQuery into a mapping layer between different custom models or custom models and XML. Once QtXmlPatterns can understand the data, simple queries can be used to select in it, or to simply write it out as XML using QXmlQuery.serialize().

Consider a word processor application that needs to be able to import and export different formats. Instead of having to write C++ code that converts between the different formats, one writes a query that goes from on type of XML, such as MathML, to another XML format: the one for the document representation that the DocumentRepresentation class below exposes.

In the case of CSV files, which are text, a QAbstractXmlNodeModel sub-class is used again in order to expose the comma-separated file as XML, such that a query can operate on it.

Security Considerations

Query Injection

XQuery is subject to query injection in the same manner that SQL is. If a query is constructed by concatenating strings where some of the strings are from user input, the query can be altered by carefully crafting malicious strings, unless they are properly escaped.

The best solution against these attacks is typically to never construct queries from user-written strings, but instead input the user's data using variable bindings. This avoids all query injection attacks.

See Avoid the dangers of XPath injection, Robi Sen or Blind XPath Injection, Amit Klein for deeper discussions.

Denial of Service Attacks

QtXmlPatterns has, as all other systems, limits. Generally, these are not checked. This is not a problem for regular use, but it does mean that a malicious query can relatively easy be constructed that causes code to crash or to exercise undefined behavior.

Features and Conformance

Conformance

QtXmlPatterns aims at being a conformant XQuery implementation. In addition to supporting minimal conformance, the serialization and full-axis features are supported. 97% of the tests in W3C's test suite for XQuery passes, as of this writing, and it is expected this will improve over time. Areas where conformance is not tip top and where behavior changes may happen in future releases are:

XML 1.0 and XML Namespaces 1.0 are supported, as opposed to the 1.1 versions. When strings are fed into the query using QStrings, the characters must be XML 1.0 characters. Otherwise, the behavior is undefined. This is not checked.

Since XPath 2.0 is a subset of XQuery 1.0, that is supported too.

The specifications discusses conformance further: XQuery 1.0: An XML Query Language. W3C's XQuery testing effort can be of interest as well, XML Query Test Suite.

Currently fn:collection() does not access any data set, and there is no API for providing data through the collection. As a result, evaluating fn:collection() returns the empty sequence. We hope to provide functionality for this in a future release of Qt.

When opening XML files, this is done with support for xml:id. In practice this means elements that has an attribute by name xml:id, can be looked up fairly quickly with the fn:id() function. See xml:id Version 1.0 for details.

Note: Only queries encoded in UTF-8 are supported.

Resource Loading

When QtXmlPatterns attempts to load XML resources, such as via XQuery's fn:doc() function, the following schemes are supported:

Scheme NameDescription
fileLocal files.
dataThe bytes are encoded in the URI itself. For instance, data:application/xml,%3Ce%2F%3E is <e/>.
ftpResources retrieved via FTP.
httpResources retrieved via HTTP.
httpsResources retrieved via HTTPS. This will succeed if no SSL errors are encountered.
qrcQt Resource files. Expressing it as an empty scheme, :/..., is not supported.

URIs are first passed to QAbstractUriResolver(see QXmlQuery.setUriResolver()) for possible rewrites.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qudpsocket-bindmode.html0000644000076500000240000001351712536324520022315 0ustar philstaff00000000000000 QUdpSocket.BindMode Class Reference
  Home · All Classes · Modules

QUdpSocket.BindMode Class Reference
[QtNetwork module]

Methods

Special Methods


Detailed Description

BindFlag may be used whenever BindMode is expected.


Method Documentation

BindMode.__init__ (self, BindMode)

BindMode.__init__ (self, int)

BindMode.__init__ (self)

BindMode BindMode.__and__ (self, int mask)

int BindMode.__bool__ (self)

bool BindMode.__eq__ (self, BindMode f)

BindMode BindMode.__iand__ (self, int mask)

int BindMode.__int__ (self)

BindMode BindMode.__invert__ (self)

BindMode BindMode.__ior__ (self, BindMode f)

BindMode BindMode.__ixor__ (self, BindMode f)

bool BindMode.__ne__ (self, BindMode f)

BindMode BindMode.__or__ (self, BindMode f)

BindMode BindMode.__or__ (self, int f)

BindMode BindMode.__xor__ (self, BindMode f)

BindMode BindMode.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qudpsocket.html0000644000076500000240000005557412536324520020547 0ustar philstaff00000000000000 QUdpSocket Class Reference
  Home · All Classes · Modules

QUdpSocket Class Reference
[QtNetwork module]

The QUdpSocket class provides a UDP socket. More...

Inherits QAbstractSocket.

Types

  • enum BindFlag { DefaultForPlatform, ShareAddress, DontShareAddress, ReuseAddressHint }
  • class BindMode

Methods


Detailed Description

The QUdpSocket class provides a UDP socket.

UDP (User Datagram Protocol) is a lightweight, unreliable, datagram-oriented, connectionless protocol. It can be used when reliability isn't important. QUdpSocket is a subclass of QAbstractSocket that allows you to send and receive UDP datagrams.

The most common way to use this class is to bind to an address and port using bind(), then call writeDatagram() and readDatagram() to transfer data. If you want to use the standard QIODevice functions read(), readLine(), write(), etc., you must first connect the socket directly to a peer by calling connectToHost().

The socket emits the bytesWritten() signal every time a datagram is written to the network. If you just want to send datagrams, you don't need to call bind().

The readyRead() signal is emitted whenever datagrams arrive. In that case, hasPendingDatagrams() returns true. Call pendingDatagramSize() to obtain the size of the first pending datagram, and readDatagram() to read it.

Note: An incoming datagram should be read when you receive the readyRead() signal, otherwise this signal will not be emitted for the next datagram.

Example:

 void Server.initSocket()
 {
     udpSocket = new QUdpSocket(this);
     udpSocket->bind(QHostAddress.LocalHost, 7755);

     connect(udpSocket, SIGNAL(readyRead()),
             this, SLOT(readPendingDatagrams()));
 }

 void Server.readPendingDatagrams()
 {
     while (udpSocket->hasPendingDatagrams()) {
         QByteArray datagram;
         datagram.resize(udpSocket->pendingDatagramSize());
         QHostAddress sender;
         quint16 senderPort;

         udpSocket->readDatagram(datagram.data(), datagram.size(),
                                 &sender, &senderPort);

         processTheDatagram(datagram);
     }
 }

QUdpSocket also supports UDP multicast. Use joinMulticastGroup() and leaveMulticastGroup() to control group membership, and QAbstractSocket.MulticastTtlOption and QAbstractSocket.MulticastLoopbackOption to set the TTL and loopback socket options. Use setMulticastInterface() to control the outgoing interface for multicast datagrams, and multicastInterface() to query it.

With QUdpSocket, you can also establish a virtual connection to a UDP server using connectToHost() and then use read() and write() to exchange datagrams without specifying the receiver for each datagram.

The Broadcast Sender, Broadcast Receiver, Multicast Sender, and Multicast Receiver examples illustrate how to use QUdpSocket in applications.

Symbian Platform Security Requirements

On Symbian, processes which use this class must have the NetworkServices platform security capability. If the client process lacks this capability, operations will result in a panic.

Platform security capabilities are added via the TARGET.CAPABILITY qmake variable.


Type Documentation

QUdpSocket.BindFlag

This enum describes the different flags you can pass to modify the behavior of QUdpSocket.bind().

Note: On Symbian OS bind flags behaviour depends on process capabilties. If process has NetworkControl capability, the bind attempt with ReuseAddressHint will always succeed even if the address and port is already bound by another socket with any flags. If process does not have NetworkControl capability, the bind attempt to address and port already bound by another socket will always fail.

Constant Value Description
QUdpSocket.ShareAddress 0x1 Allow other services to bind to the same address and port. This is useful when multiple processes share the load of a single service by listening to the same address and port (e.g., a web server with several pre-forked listeners can greatly improve response time). However, because any service is allowed to rebind, this option is subject to certain security considerations. Note that by combining this option with ReuseAddressHint, you will also allow your service to rebind an existing shared address. On Unix, this is equivalent to the SO_REUSEADDR socket option. On Windows, this option is ignored.
QUdpSocket.DontShareAddress 0x2 Bind the address and port exclusively, so that no other services are allowed to rebind. By passing this option to QUdpSocket.bind(), you are guaranteed that on successs, your service is the only one that listens to the address and port. No services are allowed to rebind, even if they pass ReuseAddressHint. This option provides more security than ShareAddress, but on certain operating systems, it requires you to run the server with administrator privileges. On Unix and Mac OS X, not sharing is the default behavior for binding an address and port, so this option is ignored. On Windows, this option uses the SO_EXCLUSIVEADDRUSE socket option.
QUdpSocket.ReuseAddressHint 0x4 Provides a hint to QUdpSocket that it should try to rebind the service even if the address and port are already bound by another socket. On Windows, this is equivalent to the SO_REUSEADDR socket option. On Unix, this option is ignored.
QUdpSocket.DefaultForPlatform 0x0 The default option for the current platform. On Unix and Mac OS X, this is equivalent to (DontShareAddress + ReuseAddressHint), and on Windows, its equivalent to ShareAddress.

This enum was introduced or modified in Qt 4.1.

The BindMode type is a typedef for QFlags<BindFlag>. It stores an OR combination of BindFlag values.


Method Documentation

QUdpSocket.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a QUdpSocket object.

parent is passed to the QObject constructor.

See also socketType().

bool QUdpSocket.bind (self, QHostAddress address, int port)

Binds this socket to the address address and the port port. When bound, the signal readyRead() is emitted whenever a UDP datagram arrives on the specified address and port. This function is useful to write UDP servers.

On success, the functions returns true and the socket enters BoundState; otherwise it returns false.

The socket is bound using the DefaultForPlatform BindMode.

See also readDatagram().

bool QUdpSocket.bind (self, int port = 0)

This is an overloaded function.

Binds to address on port port, using the BindMode mode.

This function was introduced in Qt 4.1.

bool QUdpSocket.bind (self, QHostAddress address, int port, BindMode mode)

This is an overloaded function.

Binds to QHostAddress:Any on port port.

bool QUdpSocket.bind (self, int port, BindMode mode)

This is an overloaded function.

Binds to QHostAddress:Any on port port, using the BindMode mode.

This function was introduced in Qt 4.1.

bool QUdpSocket.hasPendingDatagrams (self)

Returns true if at least one datagram is waiting to be read; otherwise returns false.

See also pendingDatagramSize() and readDatagram().

bool QUdpSocket.joinMulticastGroup (self, QHostAddress groupAddress)

Joins the the multicast group specified by groupAddress on the default interface chosen by the operating system. The socket must be in BoundState, otherwise an error occurs.

This function returns true if successful; otherwise it returns false and sets the socket error accordingly.

This function was introduced in Qt 4.8.

See also leaveMulticastGroup().

bool QUdpSocket.joinMulticastGroup (self, QHostAddress groupAddress, QNetworkInterface iface)

This is an overloaded function.

Joins the multicast group address groupAddress on the interface iface.

This function was introduced in Qt 4.8.

See also leaveMulticastGroup().

bool QUdpSocket.leaveMulticastGroup (self, QHostAddress groupAddress)

Leaves the multicast group specified by groupAddress on the default interface chosen by the operating system. The socket must be in BoundState, otherwise an error occurs.

This function returns true if successful; otherwise it returns false and sets the socket error accordingly.

This function was introduced in Qt 4.8.

See also joinMulticastGroup().

bool QUdpSocket.leaveMulticastGroup (self, QHostAddress groupAddress, QNetworkInterface iface)

This is an overloaded function.

Leaves the multicast group specified by groupAddress on the interface iface.

This function was introduced in Qt 4.8.

See also joinMulticastGroup().

QNetworkInterface QUdpSocket.multicastInterface (self)

Returns the interface for the outgoing interface for multicast datagrams. This corresponds to the IP_MULTICAST_IF socket option for IPv4 sockets and the IPV6_MULTICAST_IF socket option for IPv6 sockets. If no interface has been previously set, this function returns an invalid QNetworkInterface. The socket must be in BoundState, otherwise an invalid QNetworkInterface is returned.

This function was introduced in Qt 4.8.

See also setMulticastInterface().

int QUdpSocket.pendingDatagramSize (self)

Returns the size of the first pending UDP datagram. If there is no datagram available, this function returns -1.

See also hasPendingDatagrams() and readDatagram().

(str, QHostAddress host, int port) QUdpSocket.readDatagram (self, int maxlen)

Receives a datagram no larger than maxSize bytes and stores it in data. The sender's host address and port is stored in *address and *port (unless the pointers are 0).

Returns the size of the datagram on success; otherwise returns -1.

If maxSize is too small, the rest of the datagram will be lost. To avoid loss of data, call pendingDatagramSize() to determine the size of the pending datagram before attempting to read it. If maxSize is 0, the datagram will be discarded.

See also writeDatagram(), hasPendingDatagrams(), and pendingDatagramSize().

QUdpSocket.setMulticastInterface (self, QNetworkInterface iface)

Sets the outgoing interface for multicast datagrams to the interface iface. This corresponds to the IP_MULTICAST_IF socket option for IPv4 sockets and the IPV6_MULTICAST_IF socket option for IPv6 sockets. The socket must be in BoundState, otherwise this function does nothing.

This function was introduced in Qt 4.8.

See also multicastInterface(), joinMulticastGroup(), and leaveMulticastGroup().

int QUdpSocket.writeDatagram (self, str data, QHostAddress host, int port)

Sends the datagram at data of size size to the host address address at port port. Returns the number of bytes sent on success; otherwise returns -1.

Datagrams are always written as one block. The maximum size of a datagram is highly platform-dependent, but can be as low as 8192 bytes. If the datagram is too large, this function will return -1 and error() will return DatagramTooLargeError.

Sending datagrams larger than 512 bytes is in general disadvised, as even if they are sent successfully, they are likely to be fragmented by the IP layer before arriving at their final destination.

Warning: In S60 5.0 and earlier versions, the writeDatagram return value is not reliable for large datagrams.

Warning: Calling this function on a connected UDP socket may result in an error and no packet being sent. If you are using a connected socket, use write() to send datagrams.

See also readDatagram() and write().

int QUdpSocket.writeDatagram (self, QByteArray datagram, QHostAddress host, int port)

This is an overloaded function.

Sends the datagram datagram to the host address host and at port port.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qundocommand.html0000644000076500000240000004047312536324516021047 0ustar philstaff00000000000000 QUndoCommand Class Reference
  Home · All Classes · Modules

QUndoCommand Class Reference
[QtGui module]

The QUndoCommand class is the base class of all commands stored on a QUndoStack. More...

Methods


Detailed Description

The QUndoCommand class is the base class of all commands stored on a QUndoStack.

For an overview of Qt's Undo Framework, see the overview document.

A QUndoCommand represents a single editing action on a document; for example, inserting or deleting a block of text in a text editor. QUndoCommand can apply a change to the document with redo() and undo the change with undo(). The implementations for these functions must be provided in a derived class.

 class AppendText : public QUndoCommand
 {
 public:
     AppendText(QString *doc, const QString &text)
         : m_document(doc), m_text(text) { setText("append text"); }
     virtual void undo()
         { m_document->chop(m_text.length()); }
     virtual void redo()
         { m_document->append(m_text); }
 private:
     QString *m_document;
     QString m_text;
 };

A QUndoCommand has an associated text(). This is a short string describing what the command does. It is used to update the text properties of the stack's undo and redo actions; see QUndoStack.createUndoAction() and QUndoStack.createRedoAction().

QUndoCommand objects are owned by the stack they were pushed on. QUndoStack deletes a command if it has been undone and a new command is pushed. For example:

 MyCommand *command1 = new MyCommand();
 stack->push(command1);
 MyCommand *command2 = new MyCommand();
 stack->push(command2);

 stack->undo();

 MyCommand *command3 = new MyCommand();
 stack->push(command3); // command2 gets deleted

In effect, when a command is pushed, it becomes the top-most command on the stack.

To support command compression, QUndoCommand has an id() and the virtual function mergeWith(). These functions are used by QUndoStack.push().

To support command macros, a QUndoCommand object can have any number of child commands. Undoing or redoing the parent command will cause the child commands to be undone or redone. A command can be assigned to a parent explicitly in the constructor. In this case, the command will be owned by the parent.

The parent in this case is usually an empty command, in that it doesn't provide its own implementation of undo() and redo(). Instead, it uses the base implementations of these functions, which simply call undo() or redo() on all its children. The parent should, however, have a meaningful text().

 QUndoCommand *insertRed = new QUndoCommand(); // an empty command
 insertRed->setText("insert red text");

 new InsertText(document, idx, text, insertRed); // becomes child of insertRed
 new SetColor(document, idx, text.length(), Qt.red, insertRed);

 stack.push(insertRed);

Another way to create macros is to use the convenience functions QUndoStack.beginMacro() and QUndoStack.endMacro().


Method Documentation

QUndoCommand.__init__ (self, QUndoCommand parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QUndoCommand object with parent parent.

If parent is not 0, this command is appended to parent's child list. The parent command then owns this command and will delete it in its destructor.

See also ~QUndoCommand().

QUndoCommand.__init__ (self, QString text, QUndoCommand parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QUndoCommand object with the given parent and text.

If parent is not 0, this command is appended to parent's child list. The parent command then owns this command and will delete it in its destructor.

See also ~QUndoCommand().

QString QUndoCommand.actionText (self)

Returns a short text string describing what this command does; for example, "insert text".

The text is used when the text properties of the stack's undo and redo actions are updated.

This function was introduced in Qt 4.8.

See also text(), setText(), QUndoStack.createUndoAction(), and QUndoStack.createRedoAction().

QUndoCommand QUndoCommand.child (self, int index)

Returns the child command at index.

This function was introduced in Qt 4.4.

See also childCount() and QUndoStack.command().

int QUndoCommand.childCount (self)

Returns the number of child commands in this command.

This function was introduced in Qt 4.4.

See also child().

int QUndoCommand.id (self)

Returns the ID of this command.

A command ID is used in command compression. It must be an integer unique to this command's class, or -1 if the command doesn't support compression.

If the command supports compression this function must be overridden in the derived class to return the correct ID. The base implementation returns -1.

QUndoStack.push() will only try to merge two commands if they have the same ID, and the ID is not -1.

See also mergeWith() and QUndoStack.push().

bool QUndoCommand.mergeWith (self, QUndoCommand other)

Attempts to merge this command with command. Returns true on success; otherwise returns false.

If this function returns true, calling this command's redo() must have the same effect as redoing both this command and command. Similarly, calling this command's undo() must have the same effect as undoing command and this command.

QUndoStack will only try to merge two commands if they have the same id, and the id is not -1.

The default implementation returns false.

 bool AppendText.mergeWith(const QUndoCommand *other)
 {
     if (other->id() != id()) // make sure other is also an AppendText command
         return false;
     m_text += static_cast<const AppendText*>(other)->m_text;
     return true;
 }

See also id() and QUndoStack.push().

QUndoCommand.redo (self)

Applies a change to the document. This function must be implemented in the derived class. Calling QUndoStack.push(), QUndoStack.undo() or QUndoStack.redo() from this function leads to undefined beahavior.

The default implementation calls redo() on all child commands.

See also undo().

QUndoCommand.setText (self, QString text)

Sets the command's text to be the text specified.

The specified text should be a short user-readable string describing what this command does.

If you need to have two different strings for text() and actionText(), separate them with "\n" and pass into this function. Even if you do not use this feature for English strings during development, you can still let translators use two different strings in order to match specific languages' needs. The described feature and the function actionText() are available since Qt 4.8.

See also text(), actionText(), QUndoStack.createUndoAction(), and QUndoStack.createRedoAction().

QString QUndoCommand.text (self)

Returns a short text string describing what this command does; for example, "insert text".

The text is used for names of items in QUndoView.

See also actionText(), setText(), QUndoStack.createUndoAction(), and QUndoStack.createRedoAction().

QUndoCommand.undo (self)

Reverts a change to the document. After undo() is called, the state of the document should be the same as before redo() was called. This function must be implemented in the derived class. Calling QUndoStack.push(), QUndoStack.undo() or QUndoStack.redo() from this function leads to undefined beahavior.

The default implementation calls undo() on all child commands in reverse order.

See also redo().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qundogroup.html0000644000076500000240000004651512536324516020570 0ustar philstaff00000000000000 QUndoGroup Class Reference
  Home · All Classes · Modules

QUndoGroup Class Reference
[QtGui module]

The QUndoGroup class is a group of QUndoStack objects. More...

Inherits QObject.

Methods

Qt Signals


Detailed Description

The QUndoGroup class is a group of QUndoStack objects.

For an overview of the Qt's undo framework, see the overview.

An application often has multiple undo stacks, one for each opened document. At the same time, an application usually has one undo action and one redo action, which triggers undo or redo in the active document.

QUndoGroup is a group of QUndoStack objects, one of which may be active. It has an undo() and redo() slot, which calls QUndoStack.undo() and QUndoStack.redo() for the active stack. It also has the functions createUndoAction() and createRedoAction(). The actions returned by these functions behave in the same way as those returned by QUndoStack.createUndoAction() and QUndoStack.createRedoAction() of the active stack.

Stacks are added to a group with addStack() and removed with removeStack(). A stack is implicitly added to a group when it is created with the group as its parent QObject.

It is the programmer's responsibility to specify which stack is active by calling QUndoStack.setActive(), usually when the associated document window receives focus. The active stack may also be set with setActiveStack(), and is returned by activeStack().

When a stack is added to a group using addStack(), the group does not take ownership of the stack. This means the stack has to be deleted separately from the group. When a stack is deleted, it is automatically removed from a group. A stack may belong to only one group. Adding it to another group will cause it to be removed from the previous group.

A QUndoGroup is also useful in conjunction with QUndoView. If a QUndoView is set to watch a group using QUndoView.setGroup(), it will update itself to display the active stack.


Method Documentation

QUndoGroup.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an empty QUndoGroup object with parent parent.

See also addStack().

QUndoStack QUndoGroup.activeStack (self)

Returns the active stack of this group.

If none of the stacks are active, or if the group is empty, this function returns 0.

See also setActiveStack() and QUndoStack.setActive().

QUndoGroup.addStack (self, QUndoStack stack)

Adds stack to this group. The group does not take ownership of the stack. Another way of adding a stack to a group is by specifying the group as the stack's parent QObject in QUndoStack.QUndoStack(). In this case, the stack is deleted when the group is deleted, in the usual manner of QObjects.

See also removeStack(), stacks(), and QUndoStack.QUndoStack().

bool QUndoGroup.canRedo (self)

Returns the value of the active stack's QUndoStack.canRedo().

If none of the stacks are active, or if the group is empty, this function returns false.

See also canUndo() and setActiveStack().

bool QUndoGroup.canUndo (self)

Returns the value of the active stack's QUndoStack.canUndo().

If none of the stacks are active, or if the group is empty, this function returns false.

See also canRedo() and setActiveStack().

QAction QUndoGroup.createRedoAction (self, QObject parent, QString prefix = QString())

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an redo QAction object with parent parent.

Triggering this action will cause a call to QUndoStack.redo() on the active stack. The text of this action will always be the text of the command which will be redone in the next call to redo(), prefixed by prefix. If there is no command available for redo, if the group is empty or if none of the stacks are active, this action will be disabled.

If prefix is empty, the default template "Redo %1" is used instead of prefix. Before Qt 4.8, the prefix "Redo" was used by default.

See also createUndoAction(), canRedo(), and QUndoCommand.text().

QAction QUndoGroup.createUndoAction (self, QObject parent, QString prefix = QString())

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an undo QAction object with parent parent.

Triggering this action will cause a call to QUndoStack.undo() on the active stack. The text of this action will always be the text of the command which will be undone in the next call to undo(), prefixed by prefix. If there is no command available for undo, if the group is empty or if none of the stacks are active, this action will be disabled.

If prefix is empty, the default template "Undo %1" is used instead of prefix. Before Qt 4.8, the prefix "Undo" was used by default.

See also createRedoAction(), canUndo(), and QUndoCommand.text().

bool QUndoGroup.isClean (self)

Returns the value of the active stack's QUndoStack.isClean().

If none of the stacks are active, or if the group is empty, this function returns true.

See also setActiveStack().

QUndoGroup.redo (self)

This method is also a Qt slot with the C++ signature void redo().

Calls QUndoStack.redo() on the active stack.

If none of the stacks are active, or if the group is empty, this function does nothing.

See also undo(), canRedo(), and setActiveStack().

QString QUndoGroup.redoText (self)

Returns the value of the active stack's QUndoStack.redoText().

If none of the stacks are active, or if the group is empty, this function returns an empty string.

See also undoText() and setActiveStack().

QUndoGroup.removeStack (self, QUndoStack stack)

Removes stack from this group. If the stack was the active stack in the group, the active stack becomes 0.

See also addStack(), stacks(), and QUndoStack.~QUndoStack().

QUndoGroup.setActiveStack (self, QUndoStack stack)

This method is also a Qt slot with the C++ signature void setActiveStack(QUndoStack*).

Sets the active stack of this group to stack.

If the stack is not a member of this group, this function does nothing.

Synonymous with calling QUndoStack.setActive() on stack.

The actions returned by createUndoAction() and createRedoAction() will now behave in the same way as those returned by stack's QUndoStack.createUndoAction() and QUndoStack.createRedoAction().

See also QUndoStack.setActive() and activeStack().

list-of-QUndoStack QUndoGroup.stacks (self)

Returns a list of stacks in this group.

See also addStack() and removeStack().

QUndoGroup.undo (self)

This method is also a Qt slot with the C++ signature void undo().

Calls QUndoStack.undo() on the active stack.

If none of the stacks are active, or if the group is empty, this function does nothing.

See also redo(), canUndo(), and setActiveStack().

QString QUndoGroup.undoText (self)

Returns the value of the active stack's QUndoStack.undoText().

If none of the stacks are active, or if the group is empty, this function returns an empty string.

See also redoText() and setActiveStack().


Qt Signal Documentation

void activeStackChanged (QUndoStack*)

This is the default overload of this signal.

This signal is emitted whenever the active stack of the group changes. This can happen when setActiveStack() or QUndoStack.setActive() is called, or when the active stack is removed form the group. stack is the new active stack. If no stack is active, stack is 0.

See also setActiveStack() and QUndoStack.setActive().

void canRedoChanged (bool)

This is the default overload of this signal.

This signal is emitted whenever the active stack emits QUndoStack.canRedoChanged() or the active stack changes.

canRedo is the new state, or false if the active stack is 0.

See also QUndoStack.canRedoChanged() and setActiveStack().

void canUndoChanged (bool)

This is the default overload of this signal.

This signal is emitted whenever the active stack emits QUndoStack.canUndoChanged() or the active stack changes.

canUndo is the new state, or false if the active stack is 0.

See also QUndoStack.canUndoChanged() and setActiveStack().

void cleanChanged (bool)

This is the default overload of this signal.

This signal is emitted whenever the active stack emits QUndoStack.cleanChanged() or the active stack changes.

clean is the new state, or true if the active stack is 0.

See also QUndoStack.cleanChanged() and setActiveStack().

void indexChanged (int)

This is the default overload of this signal.

This signal is emitted whenever the active stack emits QUndoStack.indexChanged() or the active stack changes.

idx is the new current index, or 0 if the active stack is 0.

See also QUndoStack.indexChanged() and setActiveStack().

void redoTextChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the active stack emits QUndoStack.redoTextChanged() or the active stack changes.

redoText is the new state, or an empty string if the active stack is 0.

See also QUndoStack.redoTextChanged() and setActiveStack().

void undoTextChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the active stack emits QUndoStack.undoTextChanged() or the active stack changes.

undoText is the new state, or an empty string if the active stack is 0.

See also QUndoStack.undoTextChanged() and setActiveStack().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qundostack.html0000644000076500000240000006764012536324516020543 0ustar philstaff00000000000000 QUndoStack Class Reference
  Home · All Classes · Modules

QUndoStack Class Reference
[QtGui module]

The QUndoStack class is a stack of QUndoCommand objects. More...

Inherits QObject.

Methods

Special Methods

Qt Signals


Detailed Description

The QUndoStack class is a stack of QUndoCommand objects.

For an overview of Qt's Undo Framework, see the overview document.

An undo stack maintains a stack of commands that have been applied to a document.

New commands are pushed on the stack using push(). Commands can be undone and redone using undo() and redo(), or by triggering the actions returned by createUndoAction() and createRedoAction().

QUndoStack keeps track of the current command. This is the command which will be executed by the next call to redo(). The index of this command is returned by index(). The state of the edited object can be rolled forward or back using setIndex(). If the top-most command on the stack has already been redone, index() is equal to count().

QUndoStack provides support for undo and redo actions, command compression, command macros, and supports the concept of a clean state.

Undo and Redo Actions

QUndoStack provides convenient undo and redo QAction objects, which can be inserted into a menu or a toolbar. When commands are undone or redone, QUndoStack updates the text properties of these actions to reflect what change they will trigger. The actions are also disabled when no command is available for undo or redo. These actions are returned by QUndoStack.createUndoAction() and QUndoStack.createRedoAction().

Command Compression and Macros

Command compression is useful when several commands can be compressed into a single command that can be undone and redone in a single operation. For example, when a user types a character in a text editor, a new command is created. This command inserts the character into the document at the cursor position. However, it is more convenient for the user to be able to undo or redo typing of whole words, sentences, or paragraphs. Command compression allows these single-character commands to be merged into a single command which inserts or deletes sections of text. For more information, see QUndoCommand.mergeWith() and push().

A command macro is a sequence of commands, all of which are undone and redone in one go. Command macros are created by giving a command a list of child commands. Undoing or redoing the parent command will cause the child commands to be undone or redone. Command macros may be created explicitly by specifying a parent in the QUndoCommand constructor, or by using the convenience functions beginMacro() and endMacro().

Although command compression and macros appear to have the same effect to the user, they often have different uses in an application. Commands that perform small changes to a document may be usefully compressed if there is no need to individually record them, and if only larger changes are relevant to the user. However, for commands that need to be recorded individually, or those that cannot be compressed, it is useful to use macros to provide a more convenient user experience while maintaining a record of each command.

Clean State

QUndoStack supports the concept of a clean state. When the document is saved to disk, the stack can be marked as clean using setClean(). Whenever the stack returns to this state through undoing and redoing commands, it emits the signal cleanChanged(). This signal is also emitted when the stack leaves the clean state. This signal is usually used to enable and disable the save actions in the application, and to update the document's title to reflect that it contains unsaved changes.


Method Documentation

QUndoStack.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty undo stack with the parent parent. The stack will initially be in the clean state. If parent is a QUndoGroup object, the stack is automatically added to the group.

See also push().

QUndoStack.beginMacro (self, QString text)

Begins composition of a macro command with the given text description.

An empty command described by the specified text is pushed on the stack. Any subsequent commands pushed on the stack will be appended to the empty command's children until endMacro() is called.

Calls to beginMacro() and endMacro() may be nested, but every call to beginMacro() must have a matching call to endMacro().

While a macro is composed, the stack is disabled. This means that:

The stack becomes enabled and appropriate signals are emitted when endMacro() is called for the outermost macro.

 stack.beginMacro("insert red text");
 stack.push(new InsertText(document, idx, text));
 stack.push(new SetColor(document, idx, text.length(), Qt.red));
 stack.endMacro(); // indexChanged() is emitted

This code is equivalent to:

 QUndoCommand *insertRed = new QUndoCommand(); // an empty command
 insertRed->setText("insert red text");

 new InsertText(document, idx, text, insertRed); // becomes child of insertRed
 new SetColor(document, idx, text.length(), Qt.red, insertRed);

 stack.push(insertRed);

See also endMacro().

bool QUndoStack.canRedo (self)

Returns true if there is a command available for redo; otherwise returns false.

This function returns false if the stack is empty or if the top command on the stack has already been redone.

Synonymous with index() == count().

See also index() and canUndo().

bool QUndoStack.canUndo (self)

Returns true if there is a command available for undo; otherwise returns false.

This function returns false if the stack is empty, or if the bottom command on the stack has already been undone.

Synonymous with index() == 0.

See also index() and canRedo().

int QUndoStack.cleanIndex (self)

Returns the clean index. This is the index at which setClean() was called.

A stack may not have a clean index. This happens if a document is saved, some commands are undone, then a new command is pushed. Since push() deletes all the undone commands before pushing the new command, the stack can't return to the clean state again. In this case, this function returns -1.

See also isClean() and setClean().

QUndoStack.clear (self)

Clears the command stack by deleting all commands on it, and returns the stack to the clean state.

Commands are not undone or redone; the state of the edited object remains unchanged.

This function is usually used when the contents of the document are abandoned.

See also QUndoStack().

QUndoCommand QUndoStack.command (self, int index)

Returns a const pointer to the command at index.

This function returns a const pointer, because modifying a command, once it has been pushed onto the stack and executed, almost always causes corruption of the state of the document, if the command is later undone or redone.

This function was introduced in Qt 4.4.

See also QUndoCommand.child().

int QUndoStack.count (self)

Returns the number of commands on the stack. Macro commands are counted as one command.

See also index(), setIndex(), and command().

QAction QUndoStack.createRedoAction (self, QObject parent, QString prefix = QString())

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an redo QAction object with the given parent.

Triggering this action will cause a call to redo(). The text of this action is the text of the command which will be redone in the next call to redo(), prefixed by the specified prefix. If there is no command available for redo, this action will be disabled.

If prefix is empty, the default template "Redo %1" is used instead of prefix. Before Qt 4.8, the prefix "Redo" was used by default.

See also createUndoAction(), canRedo(), and QUndoCommand.text().

QAction QUndoStack.createUndoAction (self, QObject parent, QString prefix = QString())

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates an undo QAction object with the given parent.

Triggering this action will cause a call to undo(). The text of this action is the text of the command which will be undone in the next call to undo(), prefixed by the specified prefix. If there is no command available for undo, this action will be disabled.

If prefix is empty, the default template "Undo %1" is used instead of prefix. Before Qt 4.8, the prefix "Undo" was used by default.

See also createRedoAction(), canUndo(), and QUndoCommand.text().

QUndoStack.endMacro (self)

Ends composition of a macro command.

If this is the outermost macro in a set nested macros, this function emits indexChanged() once for the entire macro command.

See also beginMacro().

int QUndoStack.index (self)

Returns the index of the current command. This is the command that will be executed on the next call to redo(). It is not always the top-most command on the stack, since a number of commands may have been undone.

See also setIndex(), undo(), redo(), and count().

bool QUndoStack.isActive (self)

bool QUndoStack.isClean (self)

If the stack is in the clean state, returns true; otherwise returns false.

See also setClean() and cleanIndex().

QUndoStack.push (self, QUndoCommand cmd)

The cmd argument has it's ownership transferred to Qt.

Pushes cmd on the stack or merges it with the most recently executed command. In either case, executes cmd by calling its redo() function.

If cmd's id is not -1, and if the id is the same as that of the most recently executed command, QUndoStack will attempt to merge the two commands by calling QUndoCommand.mergeWith() on the most recently executed command. If QUndoCommand.mergeWith() returns true, cmd is deleted.

In all other cases cmd is simply pushed on the stack.

If commands were undone before cmd was pushed, the current command and all commands above it are deleted. Hence cmd always ends up being the top-most on the stack.

Once a command is pushed, the stack takes ownership of it. There are no getters to return the command, since modifying it after it has been executed will almost always lead to corruption of the document's state.

See also QUndoCommand.id() and QUndoCommand.mergeWith().

QUndoStack.redo (self)

This method is also a Qt slot with the C++ signature void redo().

Redoes the current command by calling QUndoCommand.redo(). Increments the current command index.

If the stack is empty, or if the top command on the stack has already been redone, this function does nothing.

See also undo() and index().

QString QUndoStack.redoText (self)

Returns the text of the command which will be redone in the next call to redo().

See also QUndoCommand.actionText() and undoText().

QUndoStack.setActive (self, bool active = True)

This method is also a Qt slot with the C++ signature void setActive(bool = 1).

QUndoStack.setClean (self)

This method is also a Qt slot with the C++ signature void setClean().

Marks the stack as clean and emits cleanChanged() if the stack was not already clean.

Whenever the stack returns to this state through the use of undo/redo commands, it emits the signal cleanChanged(). This signal is also emitted when the stack leaves the clean state.

See also isClean() and cleanIndex().

QUndoStack.setIndex (self, int idx)

This method is also a Qt slot with the C++ signature void setIndex(int).

Repeatedly calls undo() or redo() until the current command index reaches idx. This function can be used to roll the state of the document forwards of backwards. indexChanged() is emitted only once.

See also index(), count(), undo(), and redo().

QUndoStack.setUndoLimit (self, int limit)

QString QUndoStack.text (self, int idx)

Returns the text of the command at index idx.

See also beginMacro().

QUndoStack.undo (self)

This method is also a Qt slot with the C++ signature void undo().

Undoes the command below the current command by calling QUndoCommand.undo(). Decrements the current command index.

If the stack is empty, or if the bottom command on the stack has already been undone, this function does nothing.

See also redo() and index().

int QUndoStack.undoLimit (self)

QString QUndoStack.undoText (self)

Returns the text of the command which will be undone in the next call to undo().

See also QUndoCommand.actionText() and redoText().

QUndoStack.__len__ (self)


Qt Signal Documentation

void canRedoChanged (bool)

This is the default overload of this signal.

This signal is emitted whenever the value of canRedo() changes. It is used to enable or disable the redo action returned by createRedoAction(). canRedo specifies the new value.

void canUndoChanged (bool)

This is the default overload of this signal.

This signal is emitted whenever the value of canUndo() changes. It is used to enable or disable the undo action returned by createUndoAction(). canUndo specifies the new value.

void cleanChanged (bool)

This is the default overload of this signal.

This signal is emitted whenever the stack enters or leaves the clean state. If clean is true, the stack is in a clean state; otherwise this signal indicates that it has left the clean state.

See also isClean() and setClean().

void indexChanged (int)

This is the default overload of this signal.

This signal is emitted whenever a command modifies the state of the document. This happens when a command is undone or redone. When a macro command is undone or redone, or setIndex() is called, this signal is emitted only once.

idx specifies the index of the current command, ie. the command which will be executed on the next call to redo().

See also index() and setIndex().

void redoTextChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the value of redoText() changes. It is used to update the text property of the redo action returned by createRedoAction(). redoText specifies the new text.

void undoTextChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the value of undoText() changes. It is used to update the text property of the undo action returned by createUndoAction(). undoText specifies the new text.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qundoview.html0000644000076500000240000001666612536324516020412 0ustar philstaff00000000000000 QUndoView Class Reference
  Home · All Classes · Modules

QUndoView Class Reference
[QtGui module]

The QUndoView class displays the contents of a QUndoStack. More...

Inherits QListView.

Methods


Detailed Description

The QUndoView class displays the contents of a QUndoStack.

QUndoView is a QListView which displays the list of commands pushed on an undo stack. The most recently executed command is always selected. Selecting a different command results in a call to QUndoStack.setIndex(), rolling the state of the document backwards or forward to the new command.

The stack can be set explicitly with setStack(). Alternatively, a QUndoGroup object can be set with setGroup(). The view will then update itself automatically whenever the active stack of the group changes.


Method Documentation

QUndoView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new view with parent parent.

QUndoView.__init__ (self, QUndoStack stack, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new view with parent parent and sets the observed stack to stack.

QUndoView.__init__ (self, QUndoGroup group, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new view with parent parent and sets the observed group to group.

The view will update itself autmiatically whenever the active stack of the group changes.

QIcon QUndoView.cleanIcon (self)

QString QUndoView.emptyLabel (self)

QUndoGroup QUndoView.group (self)

Returns the group displayed by this view.

If the view is not looking at group, this function returns 0.

See also setGroup() and setStack().

QUndoView.setCleanIcon (self, QIcon icon)

QUndoView.setEmptyLabel (self, QString label)

QUndoView.setGroup (self, QUndoGroup group)

This method is also a Qt slot with the C++ signature void setGroup(QUndoGroup*).

Sets the group displayed by this view to group. If group is 0, the view will be empty.

The view will update itself autmiatically whenever the active stack of the group changes.

See also group() and setStack().

QUndoView.setStack (self, QUndoStack stack)

This method is also a Qt slot with the C++ signature void setStack(QUndoStack*).

Sets the stack displayed by this view to stack. If stack is 0, the view will be empty.

If the view was previously looking at a QUndoGroup, the group is set to 0.

See also stack() and setGroup().

QUndoStack QUndoView.stack (self)

Returns the stack currently displayed by this view. If the view is looking at a QUndoGroup, this the group's active stack.

See also setStack() and setGroup().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qurl-formattingoptions.html0000644000076500000240000001465212536324475023135 0ustar philstaff00000000000000 QUrl.FormattingOptions Class Reference
  Home · All Classes · Modules

QUrl.FormattingOptions Class Reference
[QtCore module]

Methods

Special Methods

  • FormattingOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, FormattingOptions f)
  • FormattingOptions __iand__ (self, int mask)
  • int __int__ (self)
  • FormattingOptions __invert__ (self)
  • FormattingOptions __ior__ (self, FormattingOptions f)
  • FormattingOptions __ixor__ (self, FormattingOptions f)
  • bool __ne__ (self, FormattingOptions f)
  • FormattingOptions __or__ (self, FormattingOptions f)
  • FormattingOptions __or__ (self, int f)
  • FormattingOptions __xor__ (self, FormattingOptions f)
  • FormattingOptions __xor__ (self, int f)

Detailed Description

FormattingOption may be used whenever FormattingOptions is expected.


Method Documentation

FormattingOptions.__init__ (self, FormattingOptions)

FormattingOptions.__init__ (self, int)

FormattingOptions.__init__ (self)

FormattingOptions FormattingOptions.__and__ (self, int mask)

int FormattingOptions.__bool__ (self)

bool FormattingOptions.__eq__ (self, FormattingOptions f)

FormattingOptions FormattingOptions.__iand__ (self, int mask)

int FormattingOptions.__int__ (self)

FormattingOptions FormattingOptions.__invert__ (self)

FormattingOptions FormattingOptions.__ior__ (self, FormattingOptions f)

FormattingOptions FormattingOptions.__ixor__ (self, FormattingOptions f)

bool FormattingOptions.__ne__ (self, FormattingOptions f)

FormattingOptions FormattingOptions.__or__ (self, FormattingOptions f)

FormattingOptions FormattingOptions.__or__ (self, int f)

FormattingOptions FormattingOptions.__xor__ (self, FormattingOptions f)

FormattingOptions FormattingOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qurl.html0000644000076500000240000021034312536324475017344 0ustar philstaff00000000000000 QUrl Class Reference
  Home · All Classes · Modules

QUrl Class Reference
[QtCore module]

The QUrl class provides a convenient interface for working with URLs. More...

Types

Methods

Static Methods

Special Methods


Detailed Description

The QUrl class provides a convenient interface for working with URLs.

It can parse and construct URLs in both encoded and unencoded form. QUrl also has support for internationalized domain names (IDNs).

The most common way to use QUrl is to initialize it via the constructor by passing a QString. Otherwise, setUrl() and setEncodedUrl() can also be used.

URLs can be represented in two forms: encoded or unencoded. The unencoded representation is suitable for showing to users, but the encoded representation is typically what you would send to a web server. For example, the unencoded URL "http://bühler.example.com/List of applicants.xml" would be sent to the server as "http://xn--bhler-kva.example.com/List%20of%20applicants.xml", and this can be verified by calling the toEncoded() function.

A URL can also be constructed piece by piece by calling setScheme(), setUserName(), setPassword(), setHost(), setPort(), setPath(), setEncodedQuery() and setFragment(). Some convenience functions are also available: setAuthority() sets the user name, password, host and port. setUserInfo() sets the user name and password at once.

Call isValid() to check if the URL is valid. This can be done at any point during the constructing of a URL.

Constructing a query is particularly convenient through the use of setQueryItems(), addQueryItem() and removeQueryItem(). Use setQueryDelimiters() to customize the delimiters used for generating the query string.

For the convenience of generating encoded URL strings or query strings, there are two static functions called fromPercentEncoding() and toPercentEncoding() which deal with percent encoding and decoding of QStrings.

Calling isRelative() will tell whether or not the URL is relative. A relative URL can be resolved by passing it as argument to resolved(), which returns an absolute URL. isParentOf() is used for determining whether one URL is a parent of another.

fromLocalFile() constructs a QUrl by parsing a local file path. toLocalFile() converts a URL to a local file path.

The human readable representation of the URL is fetched with toString(). This representation is appropriate for displaying a URL to a user in unencoded form. The encoded form however, as returned by toEncoded(), is for internal use, passing to web servers, mail clients and so on.

QUrl conforms to the URI specification from RFC 3986 (Uniform Resource Identifier: Generic Syntax), and includes scheme extensions from RFC 1738 (Uniform Resource Locators). Case folding rules in QUrl conform to RFC 3491 (Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)).

Character Conversions

Follow these rules to avoid erroneous character conversion when dealing with URLs and strings:


Type Documentation

QUrl.FormattingOption

The formatting options define how the URL is formatted when written out as text.

Constant Value Description
QUrl.None 0x0 The format of the URL is unchanged.
QUrl.RemoveScheme 0x1 The scheme is removed from the URL.
QUrl.RemovePassword 0x2 Any password in the URL is removed.
QUrl.RemoveUserInfo RemovePassword | 0x4 Any user information in the URL is removed.
QUrl.RemovePort 0x8 Any specified port is removed from the URL.
QUrl.RemoveAuthority RemoveUserInfo | RemovePort | 0x10  
QUrl.RemovePath 0x20 The URL's path is removed, leaving only the scheme, host address, and port (if present).
QUrl.RemoveQuery 0x40 The query part of the URL (following a '?' character) is removed.
QUrl.RemoveFragment 0x80  
QUrl.StripTrailingSlash 0x10000 The trailing slash is removed if one is present.

Note that the case folding rules in Nameprep, which QUrl conforms to, require host names to always be converted to lower case, regardless of the Qt.FormattingOptions used.

The FormattingOptions type is a typedef for QFlags<FormattingOption>. It stores an OR combination of FormattingOption values.

QUrl.ParsingMode

The parsing mode controls the way QUrl parses strings.

Constant Value Description
QUrl.TolerantMode 0 QUrl will try to correct some common errors in URLs. This mode is useful when processing URLs entered by users.
QUrl.StrictMode 1 Only valid URLs are accepted. This mode is useful for general URL validation.

In TolerantMode, the parser corrects the following invalid input:

  • Spaces and "%20": If an encoded URL contains a space, this will be replaced with "%20". If a decoded URL contains "%20", this will be replaced with a single space before the URL is parsed.
  • Single "%" characters: Any occurrences of a percent character "%" not followed by exactly two hexadecimal characters (e.g., "13% coverage.html") will be replaced by "%25".
  • Reserved and unreserved characters: An encoded URL should only contain a few characters as literals; all other characters should be percent-encoded. In TolerantMode, these characters will be automatically percent-encoded where they are not allowed: space / double-quote / "<" / ">" / "[" / "" / "]" / "^" / "`" / "{" / "|" / "}"

Method Documentation

QUrl.__init__ (self)

Constructs an empty QUrl object.

QUrl.__init__ (self, QString url)

Constructs a URL by parsing url. url is assumed to be in human readable representation, with no percent encoding. QUrl will automatically percent encode all characters that are not allowed in a URL. The default parsing mode is TolerantMode.

Example:

 QUrl url("http://www.example.com/List of holidays.xml");
 // url.toEncoded() == "http://www.example.com/List%20of%20holidays.xml"

To construct a URL from an encoded string, call fromEncoded():

 QUrl url = QUrl.fromEncoded("http://qt.nokia.com/List%20of%20holidays.xml");

See also setUrl(), setEncodedUrl(), fromEncoded(), and TolerantMode.

QUrl.__init__ (self, QString url, ParsingMode mode)

Constructs a copy of other.

QUrl.__init__ (self, QUrl copy)

This is an overloaded function.

Parses the url using the parser mode parsingMode. The default parsing mode is TolerantMode.

See also setUrl().

QUrl.addEncodedQueryItem (self, QByteArray key, QByteArray value)

Inserts the pair key = value into the query string of the URL.

Note: this function does not verify that either key or value are properly encoded. It is the caller's responsibility to ensure that the query delimiters are properly encoded, if any.

This function was introduced in Qt 4.4.

See also addQueryItem() and setQueryDelimiters().

QUrl.addQueryItem (self, QString key, QString value)

Inserts the pair key = value into the query string of the URL.

The key/value pair is encoded before it is added to the query. The pair is converted into separate strings internally. The key and value is first encoded into UTF-8 and then delimited by the character returned by valueDelimiter(). Each key/value pair is delimited by the character returned by pairDelimiter().

Note: This method does not encode spaces (ASCII 0x20) as plus (+) signs, like HTML forms do. If you need that kind of encoding, you must encode the value yourself and use QUrl.addEncodedQueryItem.

See also addEncodedQueryItem().

list-of-QByteArray QUrl.allEncodedQueryItemValues (self, QByteArray key)

Returns the a list of query string values whose key is equal to key from the URL.

Note: if the encoded key does not match the encoded version of the query, this function will not work. That is, if the encoded query of this URL is "search=Qt%20Rules", calling this function with key = "%73earch" will return an empty list.

This function was introduced in Qt 4.4.

See also allQueryItemValues(), queryItemValue(), and encodedQueryItemValue().

QStringList QUrl.allQueryItemValues (self, QString key)

Returns the a list of query string values whose key is equal to key from the URL.

Note: This method does not decode spaces plus (+) signs as spaces (ASCII 0x20), like HTML forms do. If you need that kind of decoding, you must use QUrl.allEncodedQueryItemValues and decode the data yourself.

See also queryItemValue().

QString QUrl.authority (self)

Returns the authority of the URL if it is defined; otherwise an empty string is returned.

See also setAuthority().

QUrl.clear (self)

Resets the content of the QUrl. After calling this function, the QUrl is equal to one that has been constructed with the default empty constructor.

QUrl.detach (self)

QByteArray QUrl.encodedFragment (self)

Returns the fragment of the URL if it is defined; otherwise an empty string is returned. The returned value will have its non-ASCII and other control characters percent-encoded, as in toEncoded().

This function was introduced in Qt 4.4.

See also setEncodedFragment() and toEncoded().

QByteArray QUrl.encodedHost (self)

Returns the host part of the URL if it is defined; otherwise an empty string is returned.

Note: encodedHost() does not return percent-encoded hostnames. Instead, the ACE-encoded (bare ASCII in Punycode encoding) form will be returned for any non-ASCII hostname.

This function is equivalent to calling QUrl.toAce() on the return value of host().

This function was introduced in Qt 4.4.

See also setEncodedHost().

QByteArray QUrl.encodedPassword (self)

Returns the password of the URL if it is defined; otherwise an empty string is returned. The returned value will have its non-ASCII and other control characters percent-encoded, as in toEncoded().

This function was introduced in Qt 4.4.

See also setEncodedPassword() and toEncoded().

QByteArray QUrl.encodedPath (self)

Returns the path of the URL if it is defined; otherwise an empty string is returned. The returned value will have its non-ASCII and other control characters percent-encoded, as in toEncoded().

This function was introduced in Qt 4.4.

See also setEncodedPath() and toEncoded().

QByteArray QUrl.encodedQuery (self)

Returns the query string of the URL in percent encoded form.

See also setEncodedQuery().

list-of-tuple-of-QByteArray-QByteArray QUrl.encodedQueryItems (self)

Returns the query string of the URL, as a map of encoded keys and values.

This function was introduced in Qt 4.4.

See also setEncodedQueryItems(), setQueryItems(), and setEncodedQuery().

QByteArray QUrl.encodedQueryItemValue (self, QByteArray key)

Returns the first query string value whose key is equal to key from the URL.

Note: if the encoded key does not match the encoded version of the query, this function will not work. That is, if the encoded query of this URL is "search=Qt%20Rules", calling this function with key = "%73earch" will return an empty string.

This function was introduced in Qt 4.4.

See also queryItemValue() and allQueryItemValues().

QByteArray QUrl.encodedUserName (self)

Returns the user name of the URL if it is defined; otherwise an empty string is returned. The returned value will have its non-ASCII and other control characters percent-encoded, as in toEncoded().

This function was introduced in Qt 4.4.

See also setEncodedUserName().

QString QUrl.errorString (self)

Returns a text string that explains why an URL is invalid in the case being; otherwise returns an empty string.

This function was introduced in Qt 4.2.

QString QUrl.fragment (self)

Returns the fragment of the URL.

See also setFragment().

QString QUrl.fromAce (QByteArray)

Returns the Unicode form of the given domain name domain, which is encoded in the ASCII Compatible Encoding (ACE). The result of this function is considered equivalent to domain.

If the value in domain cannot be encoded, it will be converted to QString and returned.

The ASCII Compatible Encoding (ACE) is defined by RFC 3490, RFC 3491 and RFC 3492. It is part of the Internationalizing Domain Names in Applications (IDNA) specification, which allows for domain names (like "example.com") to be written using international characters.

This function was introduced in Qt 4.2.

QUrl QUrl.fromEncoded (QByteArray url)

Parses input and returns the corresponding QUrl. input is assumed to be in encoded form, containing only ASCII characters.

The URL is parsed using TolerantMode.

See also toEncoded() and setUrl().

QUrl QUrl.fromEncoded (QByteArray url, ParsingMode mode)

This is an overloaded function.

Parses the URL using parsingMode.

See also toEncoded() and setUrl().

QUrl QUrl.fromLocalFile (QString localfile)

Returns a QUrl representation of localFile, interpreted as a local file. This function accepts paths separated by slashes as well as the native separator for this platform.

This function also accepts paths with a doubled leading slash (or backslash) to indicate a remote file, as in "//servername/path/to/file.txt". Note that only certain platforms can actually open this file using QFile.open().

See also toLocalFile(), isLocalFile(), and QDir.toNativeSeparators().

QString QUrl.fromPercentEncoding (QByteArray)

Returns a decoded copy of input. input is first decoded from percent encoding, then converted from UTF-8 to unicode.

QString QUrl.fromPunycode (QByteArray)

QUrl QUrl.fromUserInput (QString userInput)

Returns a valid URL from a user supplied userInput string if one can be deducted. In the case that is not possible, an invalid QUrl() is returned.

Most applications that can browse the web, allow the user to input a URL in the form of a plain string. This string can be manually typed into a location bar, obtained from the clipboard, or passed in via command line arguments.

When the string is not already a valid URL, a best guess is performed, making various web related assumptions.

In the case the string corresponds to a valid file path on the system, a file:// URL is constructed, using QUrl.fromLocalFile().

If that is not the case, an attempt is made to turn the string into a http:// or ftp:// URL. The latter in the case the string starts with 'ftp'. The result is then passed through QUrl's tolerant parser, and in the case or success, a valid QUrl is returned, or else a QUrl().

Examples:

  • qt.nokia.com becomes http://qt.nokia.com
  • ftp.qt.nokia.com becomes ftp://ftp.qt.nokia.com
  • hostname becomes http://hostname
  • /home/user/test.html becomes file:///home/user/test.html

This function was introduced in Qt 4.6.

bool QUrl.hasEncodedQueryItem (self, QByteArray key)

Returns true if there is a query string pair whose key is equal to key from the URL.

Note: if the encoded key does not match the encoded version of the query, this function will return false. That is, if the encoded query of this URL is "search=Qt%20Rules", calling this function with key = "%73earch" will return false.

This function was introduced in Qt 4.4.

See also hasQueryItem().

bool QUrl.hasFragment (self)

Returns true if this URL contains a fragment (i.e., if # was seen on it).

This function was introduced in Qt 4.2.

See also fragment() and setFragment().

bool QUrl.hasQuery (self)

Returns true if this URL contains a Query (i.e., if ? was seen on it).

This function was introduced in Qt 4.2.

See also hasQueryItem() and encodedQuery().

bool QUrl.hasQueryItem (self, QString key)

Returns true if there is a query string pair whose key is equal to key from the URL.

See also hasEncodedQueryItem().

QString QUrl.host (self)

Returns the host of the URL if it is defined; otherwise an empty string is returned.

See also setHost().

QStringList QUrl.idnWhitelist ()

Returns the current whitelist of top-level domains that are allowed to have non-ASCII characters in their compositions.

See setIdnWhitelist() for the rationale of this list.

This function was introduced in Qt 4.2.

See also setIdnWhitelist().

bool QUrl.isDetached (self)

bool QUrl.isEmpty (self)

Returns true if the URL has no data; otherwise returns false.

bool QUrl.isLocalFile (self)

Returns true if this URL is pointing to a local file path. A URL is a local file path if the scheme is "file".

Note that this function considers URLs with hostnames to be local file paths, even if the eventual file path cannot be opened with QFile.open().

This function was introduced in Qt 4.8.

See also fromLocalFile() and toLocalFile().

bool QUrl.isParentOf (self, QUrl url)

Returns true if this URL is a parent of childUrl. childUrl is a child of this URL if the two URLs share the same scheme and authority, and this URL's path is a parent of the path of childUrl.

bool QUrl.isRelative (self)

Returns true if the URL is relative; otherwise returns false. A URL is relative if its scheme is undefined; this function is therefore equivalent to calling scheme().isEmpty().

bool QUrl.isValid (self)

Returns true if the URL is valid; otherwise returns false.

The URL is run through a conformance test. Every part of the URL must conform to the standard encoding rules of the URI standard for the URL to be reported as valid.

 bool checkUrl(const QUrl &url) {
     if (!url.isValid()) {
         qDebug(QString("Invalid URL: %1").arg(url.toString()));
         return false;
     }

     return true;
 }

QString QUrl.password (self)

Returns the password of the URL if it is defined; otherwise an empty string is returned.

See also setPassword().

QString QUrl.path (self)

int QUrl.port (self)

Returns the port of the URL, or -1 if the port is unspecified.

See also setPort().

int QUrl.port (self, int defaultPort)

This is an overloaded function.

Returns the port of the URL, or defaultPort if the port is unspecified.

Example:

 QFtp ftp;
 ftp.connectToHost(url.host(), url.port(21));

This function was introduced in Qt 4.1.

list-of-tuple-of-QString-QString QUrl.queryItems (self)

Returns the query string of the URL, as a map of keys and values.

Note: This method does not decode spaces plus (+) signs as spaces (ASCII 0x20), like HTML forms do. If you need that kind of decoding, you must use QUrl.encodedQueryItems and decode the data yourself.

See also setQueryItems() and setEncodedQuery().

QString QUrl.queryItemValue (self, QString key)

Returns the first query string value whose key is equal to key from the URL.

Note: This method does not decode spaces plus (+) signs as spaces (ASCII 0x20), like HTML forms do. If you need that kind of decoding, you must use QUrl.encodedQueryItemValue and decode the data yourself.

See also allQueryItemValues().

str QUrl.queryPairDelimiter (self)

Returns the character used to delimit between key-value pairs in the query string of the URL.

str QUrl.queryValueDelimiter (self)

Returns the character used to delimit between keys and values in the query string of the URL.

QUrl.removeAllEncodedQueryItems (self, QByteArray key)

Removes all the query string pairs whose key is equal to key from the URL.

Note: if the encoded key does not match the encoded version of the query, this function will not work. That is, if the encoded query of this URL is "search=Qt%20Rules", calling this function with key = "%73earch" will do nothing.

This function was introduced in Qt 4.4.

See also removeQueryItem().

QUrl.removeAllQueryItems (self, QString key)

Removes all the query string pairs whose key is equal to key from the URL.

See also removeQueryItem().

QUrl.removeEncodedQueryItem (self, QByteArray key)

Removes the first query string pair whose key is equal to key from the URL.

Note: if the encoded key does not match the encoded version of the query, this function will not work. That is, if the encoded query of this URL is "search=Qt%20Rules", calling this function with key = "%73earch" will do nothing.

This function was introduced in Qt 4.4.

See also removeQueryItem() and removeAllQueryItems().

QUrl.removeQueryItem (self, QString key)

Removes the first query string pair whose key is equal to key from the URL.

See also removeAllQueryItems().

QUrl QUrl.resolved (self, QUrl relative)

Returns the result of the merge of this URL with relative. This URL is used as a base to convert relative to an absolute URL.

If relative is not a relative URL, this function will return relative directly. Otherwise, the paths of the two URLs are merged, and the new URL returned has the scheme and authority of the base URL, but with the merged path, as in the following example:

 QUrl baseUrl("http://qt.nokia.com/support");
 QUrl relativeUrl("../products/solutions");
 qDebug(baseUrl.resolved(relativeUrl).toString());
 // prints "http://qt.nokia.com/products/solutions"

Calling resolved() with ".." returns a QUrl whose directory is one level higher than the original. Similarly, calling resolved() with "../.." removes two levels from the path. If relative is "/", the path becomes "/".

See also isRelative().

QString QUrl.scheme (self)

Returns the scheme of the URL. If an empty string is returned, this means the scheme is undefined and the URL is then relative.

See also setScheme() and isRelative().

QUrl.setAuthority (self, QString authority)

Sets the authority of the URL to authority.

The authority of a URL is the combination of user info, a host name and a port. All of these elements are optional; an empty authority is therefore valid.

The user info and host are separated by a '@', and the host and port are separated by a ':'. If the user info is empty, the '@' must be omitted; although a stray ':' is permitted if the port is empty.

The following example shows a valid authority string:

See also authority().

QUrl.setEncodedFragment (self, QByteArray fragment)

Sets the URL's fragment to the percent-encoded fragment. The fragment is the last part of the URL, represented by a '#' followed by a string of characters. It is typically used in HTTP for referring to a certain link or point on a page:

The fragment is sometimes also referred to as the URL "reference".

Passing an argument of QByteArray() (a null QByteArray) will unset the fragment. Passing an argument of QByteArray("") (an empty but not null QByteArray) will set the fragment to an empty string (as if the original URL had a lone "#").

This function was introduced in Qt 4.4.

See also setFragment() and encodedFragment().

QUrl.setEncodedHost (self, QByteArray host)

Sets the URL's host to the ACE- or percent-encoded host. The host is part of the user info element in the authority of the URL, as described in setAuthority().

This function was introduced in Qt 4.4.

See also setHost(), encodedHost(), setAuthority(), and fromAce().

QUrl.setEncodedPassword (self, QByteArray password)

Sets the URL's password to the percent-encoded password. The password is part of the user info element in the authority of the URL, as described in setUserInfo().

Note: this function does not verify that password is properly encoded. It is the caller's responsibility to ensure that the any delimiters (such as colons or slashes) are properly encoded.

This function was introduced in Qt 4.4.

See also setPassword(), encodedPassword(), and setUserInfo().

QUrl.setEncodedPath (self, QByteArray path)

Sets the URL's path to the percent-encoded path. The path is the part of the URL that comes after the authority but before the query string.

For non-hierarchical schemes, the path will be everything following the scheme declaration, as in the following example:

Note: this function does not verify that path is properly encoded. It is the caller's responsibility to ensure that the any delimiters (such as '?' and '#') are properly encoded.

This function was introduced in Qt 4.4.

See also setPath(), encodedPath(), and setUserInfo().

QUrl.setEncodedQuery (self, QByteArray query)

Sets the query string of the URL to query. The string is inserted as-is, and no further encoding is performed when calling toEncoded().

This function is useful if you need to pass a query string that does not fit into the key-value pattern, or that uses a different scheme for encoding special characters than what is suggested by QUrl.

Passing a value of QByteArray() to query (a null QByteArray) unsets the query completely. However, passing a value of QByteArray("") will set the query to an empty value, as if the original URL had a lone "?".

See also encodedQuery() and hasQuery().

QUrl.setEncodedQueryItems (self, list-of-tuple-of-QByteArray-QByteArray query)

Sets the query string of the URL to the encoded version of query. The contents of query are converted to a string internally, each pair delimited by the character returned by pairDelimiter(), and the key and value are delimited by valueDelimiter().

Note: this function does not verify that the key-value pairs are properly encoded. It is the caller's responsibility to ensure that the query delimiters are properly encoded, if any.

This function was introduced in Qt 4.4.

See also setQueryDelimiters(), encodedQueryItems(), and setQueryItems().

QUrl.setEncodedUrl (self, QByteArray url)

Constructs a URL by parsing the contents of encodedUrl.

encodedUrl is assumed to be a URL string in percent encoded form, containing only ASCII characters.

Use isValid() to determine if a valid URL was constructed.

See also setUrl().

QUrl.setEncodedUrl (self, QByteArray url, ParsingMode mode)

Constructs a URL by parsing the contents of encodedUrl using the given parsingMode.

QUrl.setEncodedUserName (self, QByteArray userName)

Sets the URL's user name to the percent-encoded userName. The userName is part of the user info element in the authority of the URL, as described in setUserInfo().

Note: this function does not verify that userName is properly encoded. It is the caller's responsibility to ensure that the any delimiters (such as colons or slashes) are properly encoded.

This function was introduced in Qt 4.4.

See also setUserName(), encodedUserName(), and setUserInfo().

QUrl.setFragment (self, QString fragment)

Sets the fragment of the URL to fragment. The fragment is the last part of the URL, represented by a '#' followed by a string of characters. It is typically used in HTTP for referring to a certain link or point on a page:

The fragment is sometimes also referred to as the URL "reference".

Passing an argument of QString() (a null QString) will unset the fragment. Passing an argument of QString("") (an empty but not null QString) will set the fragment to an empty string (as if the original URL had a lone "#").

See also fragment() and hasFragment().

QUrl.setHost (self, QString host)

Sets the host of the URL to host. The host is part of the authority.

See also host() and setAuthority().

QUrl.setIdnWhitelist (QStringList)

Sets the whitelist of Top-Level Domains (TLDs) that are allowed to have non-ASCII characters in domains to the value of list.

Note that if you call this function, you need to do so \em before you start any threads that might access idnWhitelist().

Qt has comes a default list that contains the Internet top-level domains that have published support for Internationalized Domain Names (IDNs) and rules to guarantee that no deception can happen between similarly-looking characters (such as the Latin lowercase letter 'a' and the Cyrillic equivalent, which in most fonts are visually identical).

This list is periodically maintained, as registrars publish new rules.

This function is provided for those who need to manipulate the list, in order to add or remove a TLD. It is not recommended to change its value for purposes other than testing, as it may expose users to security risks.

This function was introduced in Qt 4.2.

See also idnWhitelist().

QUrl.setPassword (self, QString password)

Sets the URL's password to password. The password is part of the user info element in the authority of the URL, as described in setUserInfo().

See also password() and setUserInfo().

QUrl.setPath (self, QString path)

Sets the path of the URL to path. The path is the part of the URL that comes after the authority but before the query string.

For non-hierarchical schemes, the path will be everything following the scheme declaration, as in the following example:

See also path().

QUrl.setPort (self, int port)

Sets the port of the URL to port. The port is part of the authority of the URL, as described in setAuthority().

port must be between 0 and 65535 inclusive. Setting the port to -1 indicates that the port is unspecified.

See also port().

QUrl.setQueryDelimiters (self, str valueDelimiter, str pairDelimiter)

Sets the characters used for delimiting between keys and values, and between key-value pairs in the URL's query string. The default value delimiter is '=' and the default pair delimiter is '&'.

valueDelimiter will be used for separating keys from values, and pairDelimiter will be used to separate key-value pairs. Any occurrences of these delimiting characters in the encoded representation of the keys and values of the query string are percent encoded.

If valueDelimiter is set to '-' and pairDelimiter is '/', the above query string would instead be represented like this:

 http://www.example.com/cgi-bin/drawgraph.cgi?type-pie/color-green

Calling this function does not change the delimiters of the current query string. It only affects queryItems(), setQueryItems() and addQueryItems().

QUrl.setQueryItems (self, list-of-tuple-of-QString-QString query)

Sets the query string of the URL to an encoded version of query. The contents of query are converted to a string internally, each pair delimited by the character returned by pairDelimiter(), and the key and value are delimited by valueDelimiter().

Note: This method does not encode spaces (ASCII 0x20) as plus (+) signs, like HTML forms do. If you need that kind of encoding, you must encode the value yourself and use QUrl.setEncodedQueryItems.

See also setQueryDelimiters(), queryItems(), and setEncodedQueryItems().

QUrl.setScheme (self, QString scheme)

Sets the scheme of the URL to scheme. As a scheme can only contain ASCII characters, no conversion or encoding is done on the input.

The scheme describes the type (or protocol) of the URL. It's represented by one or more ASCII characters at the start the URL, and is followed by a ':'. The following example shows a URL where the scheme is "ftp":

The scheme can also be empty, in which case the URL is interpreted as relative.

See also scheme() and isRelative().

QUrl.setUrl (self, QString url)

Constructs a URL by parsing the contents of url.

url is assumed to be in unicode format, with no percent encoding.

Calling isValid() will tell whether or not a valid URL was constructed.

See also setEncodedUrl().

QUrl.setUrl (self, QString url, ParsingMode mode)

This is an overloaded function.

Parses url using the parsing mode parsingMode.

See also setEncodedUrl().

QUrl.setUserInfo (self, QString userInfo)

Sets the user info of the URL to userInfo. The user info is an optional part of the authority of the URL, as described in setAuthority().

The user info consists of a user name and optionally a password, separated by a ':'. If the password is empty, the colon must be omitted. The following example shows a valid user info string:

See also userInfo(), setUserName(), setPassword(), and setAuthority().

QUrl.setUserName (self, QString userName)

Sets the URL's user name to userName. The userName is part of the user info element in the authority of the URL, as described in setUserInfo().

See also setEncodedUserName(), userName(), and setUserInfo().

QUrl.swap (self, QUrl other)

Swaps URL other with this URL. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QByteArray QUrl.toAce (QString)

Returns the ASCII Compatible Encoding of the given domain name domain. The result of this function is considered equivalent to domain.

The ASCII-Compatible Encoding (ACE) is defined by RFC 3490, RFC 3491 and RFC 3492. It is part of the Internationalizing Domain Names in Applications (IDNA) specification, which allows for domain names (like "example.com") to be written using international characters.

This function return an empty QByteArra if domain is not a valid hostname. Note, in particular, that IPv6 literals are not valid domain names.

This function was introduced in Qt 4.2.

QByteArray QUrl.toEncoded (self, FormattingOptions options = QUrl.None)

Returns the encoded representation of the URL if it's valid; otherwise an empty QByteArray is returned. The output can be customized by passing flags with options.

The user info, path and fragment are all converted to UTF-8, and all non-ASCII characters are then percent encoded. The host name is encoded using Punycode.

QString QUrl.toLocalFile (self)

Returns the path of this URL formatted as a local file path. The path returned will use forward slashes, even if it was originally created from one with backslashes.

If this URL contains a non-empty hostname, it will be encoded in the returned value in the form found on SMB networks (for example, "//servername/path/to/file.txt").

If this is a relative URL, in Qt 4.x this function returns the path to maintain backward compatability. This will change from 5.0 onwards. Then the path is returned only for URLs where the scheme is "file", and for all other URLs an empty string is returned.

See also fromLocalFile() and isLocalFile().

QByteArray QUrl.toPercentEncoding (QString input, QByteArray exclude = QByteArray(), QByteArray include = QByteArray())

Returns an encoded copy of input. input is first converted to UTF-8, and all ASCII-characters that are not in the unreserved group are percent encoded. To prevent characters from being percent encoded pass them to exclude. To force characters to be percent encoded pass them to include.

Unreserved is defined as: ALPHA / DIGIT / "-" / "." / "_" / "~"

 QByteArray ba = QUrl.toPercentEncoding("{a fishy string?}", "{}", "s");
 qDebug(ba.constData());
 // prints "{a fi%73hy %73tring%3F}"

QString QUrl.topLevelDomain (self)

Returns the TLD (Top-Level Domain) of the URL, (e.g. .co.uk, .net). Note that the return value is prefixed with a '.' unless the URL does not contain a valid TLD, in which case the function returns an empty string.

This function was introduced in Qt 4.8.

QByteArray QUrl.toPunycode (QString)

QString QUrl.toString (self, FormattingOptions options = QUrl.None)

Returns the human-displayable string representation of the URL. The output can be customized by passing flags with options.

See also FormattingOptions and toEncoded().

QString QUrl.userInfo (self)

Returns the user info of the URL, or an empty string if the user info is undefined.

See also setUserInfo().

QString QUrl.userName (self)

Returns the user name of the URL if it is defined; otherwise an empty string is returned.

See also setUserName() and encodedUserName().

bool QUrl.__eq__ (self, QUrl url)

bool QUrl.__ge__ (self, QUrl url)

int QUrl.__hash__ (self)

bool QUrl.__lt__ (self, QUrl url)

bool QUrl.__ne__ (self, QUrl url)

str QUrl.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qurlinfo.html0000644000076500000240000005451012536324520020211 0ustar philstaff00000000000000 QUrlInfo Class Reference
  Home · All Classes · Modules

QUrlInfo Class Reference
[
QtNetwork module]

The QUrlInfo class stores information about URLs. More...

Types

  • enum PermissionSpec { ReadOwner, WriteOwner, ExeOwner, ReadGroup, ..., ExeOther }

Methods

Static Methods

  • bool equal (QUrlInfo i1, QUrlInfo i2, int sortBy)
  • bool greaterThan (QUrlInfo i1, QUrlInfo i2, int sortBy)
  • bool lessThan (QUrlInfo i1, QUrlInfo i2, int sortBy)

Special Methods

  • bool __eq__ (self, QUrlInfo i)
  • bool __ne__ (self, QUrlInfo i)

Detailed Description

The QUrlInfo class stores information about URLs.

The information about a URL that can be retrieved includes name(), permissions(), owner(), group(), size(), lastModified(), lastRead(), isDir(), isFile(), isSymLink(), isWritable(), isReadable() and isExecutable().

You can create your own QUrlInfo objects passing in all the relevant information in the constructor, and you can modify a QUrlInfo; for each getter mentioned above there is an equivalent setter. Note that setting values does not affect the underlying resource that the QUrlInfo provides information about; for example if you call setWritable(true) on a read-only resource the only thing changed is the QUrlInfo object, not the resource.


Type Documentation

QUrlInfo.PermissionSpec

This enum is used by the permissions() function to report the permissions of a file.

Constant Value Description
QUrlInfo.ReadOwner 00400 The file is readable by the owner of the file.
QUrlInfo.WriteOwner 00200 The file is writable by the owner of the file.
QUrlInfo.ExeOwner 00100 The file is executable by the owner of the file.
QUrlInfo.ReadGroup 00040 The file is readable by the group.
QUrlInfo.WriteGroup 00020 The file is writable by the group.
QUrlInfo.ExeGroup 00010 The file is executable by the group.
QUrlInfo.ReadOther 00004 The file is readable by anyone.
QUrlInfo.WriteOther 00002 The file is writable by anyone.
QUrlInfo.ExeOther 00001 The file is executable by anyone.

Method Documentation

QUrlInfo.__init__ (self)

Constructs an invalid QUrlInfo object with default values.

See also isValid().

QUrlInfo.__init__ (self, QUrlInfo ui)

Copy constructor, copies ui to this URL info object.

QUrlInfo.__init__ (self, QString name, int permissions, QString owner, QString group, int size, QDateTime lastModified, QDateTime lastRead, bool isDir, bool isFile, bool isSymLink, bool isWritable, bool isReadable, bool isExecutable)

Constructs a QUrlInfo object by specifying all the URL's information.

The information that is passed is the name, file permissions, owner and group and the file's size. Also passed is the lastModified date/time and the lastRead date/time. Flags are also passed, specifically, isDir, isFile, isSymLink, isWritable, isReadable and isExecutable.

QUrlInfo.__init__ (self, QUrl url, int permissions, QString owner, QString group, int size, QDateTime lastModified, QDateTime lastRead, bool isDir, bool isFile, bool isSymLink, bool isWritable, bool isReadable, bool isExecutable)

Constructs a QUrlInfo object by specifying all the URL's information.

The information that is passed is the url, file permissions, owner and group and the file's size. Also passed is the lastModified date/time and the lastRead date/time. Flags are also passed, specifically, isDir, isFile, isSymLink, isWritable, isReadable and isExecutable.

bool QUrlInfo.equal (QUrlInfo i1, QUrlInfo i2, int sortBy)

Returns true if i1 equals to i2; otherwise returns false. The objects are compared by the value, which is specified by sortBy. This must be one of QDir.Name, QDir.Time or QDir.Size.

bool QUrlInfo.greaterThan (QUrlInfo i1, QUrlInfo i2, int sortBy)

Returns true if i1 is greater than i2; otherwise returns false. The objects are compared by the value, which is specified by sortBy. This must be one of QDir.Name, QDir.Time or QDir.Size.

QString QUrlInfo.group (self)

Returns the group of the URL.

See also setGroup() and isValid().

bool QUrlInfo.isDir (self)

Returns true if the URL is a directory; otherwise returns false.

See also isValid().

bool QUrlInfo.isExecutable (self)

Returns true if the URL is executable; otherwise returns false.

See also isValid().

bool QUrlInfo.isFile (self)

Returns true if the URL is a file; otherwise returns false.

See also isValid().

bool QUrlInfo.isReadable (self)

Returns true if the URL is readable; otherwise returns false.

See also isValid().

bool QUrlInfo.isSymLink (self)

Returns true if the URL is a symbolic link; otherwise returns false.

See also isValid().

bool QUrlInfo.isValid (self)

Returns true if the URL info is valid; otherwise returns false. Valid means that the QUrlInfo contains real information.

You should always check if the URL info is valid before relying on the values.

bool QUrlInfo.isWritable (self)

Returns true if the URL is writable; otherwise returns false.

See also isValid().

QDateTime QUrlInfo.lastModified (self)

Returns the last modification date of the URL.

See also setLastModified() and isValid().

QDateTime QUrlInfo.lastRead (self)

Returns the date when the URL was last read.

See also setLastRead() and isValid().

bool QUrlInfo.lessThan (QUrlInfo i1, QUrlInfo i2, int sortBy)

Returns true if i1 is less than i2; otherwise returns false. The objects are compared by the value, which is specified by sortBy. This must be one of QDir.Name, QDir.Time or QDir.Size.

QString QUrlInfo.name (self)

Returns the file name of the URL.

See also setName() and isValid().

QString QUrlInfo.owner (self)

Returns the owner of the URL.

See also setOwner() and isValid().

int QUrlInfo.permissions (self)

Returns the permissions of the URL. You can use the PermissionSpec flags to test for certain permissions.

See also setPermissions() and isValid().

QUrlInfo.setDir (self, bool b)

If b is true then the URL is set to be a directory; if b is false then the URL is set not to be a directory (which normally means it is a file). (Note that a URL can refer to both a file and a directory even though most file systems do not support this.)

If you call this function for an invalid URL info, this function turns it into a valid one.

See also isDir() and isValid().

QUrlInfo.setFile (self, bool b)

If b is true then the URL is set to be a file; if \b is false then the URL is set not to be a file (which normally means it is a directory). (Note that a URL can refer to both a file and a directory even though most file systems do not support this.)

If you call this function for an invalid URL info, this function turns it into a valid one.

See also isFile() and isValid().

QUrlInfo.setGroup (self, QString s)

Specifies that the owning group of the URL is called s.

If you call this function for an invalid URL info, this function turns it into a valid one.

See also group() and isValid().

QUrlInfo.setLastModified (self, QDateTime dt)

Specifies that the object the URL refers to was last modified at dt.

If you call this function for an invalid URL info, this function turns it into a valid one.

See also lastModified() and isValid().

QUrlInfo.setLastRead (self, QDateTime dt)

Specifies that the object the URL refers to was last read at dt.

If you call this function for an invalid URL info, this function turns it into a valid one.

This function was introduced in Qt 4.4.

See also lastRead() and isValid().

QUrlInfo.setName (self, QString name)

Sets the name of the URL to name. The name is the full text, for example, "http://qt.nokia.com/doc/qurlinfo.html".

If you call this function for an invalid URL info, this function turns it into a valid one.

See also name() and isValid().

QUrlInfo.setOwner (self, QString s)

Specifies that the owner of the URL is called s.

If you call this function for an invalid URL info, this function turns it into a valid one.

See also owner() and isValid().

QUrlInfo.setPermissions (self, int p)

Specifies that the URL has access permissions p.

If you call this function for an invalid URL info, this function turns it into a valid one.

See also permissions() and isValid().

QUrlInfo.setReadable (self, bool b)

Specifies that the URL is readable if b is true and not readable if b is false.

If you call this function for an invalid URL info, this function turns it into a valid one.

See also isReadable() and isValid().

QUrlInfo.setSize (self, int size)

Specifies the size of the URL.

If you call this function for an invalid URL info, this function turns it into a valid one.

See also size() and isValid().

QUrlInfo.setSymLink (self, bool b)

Specifies that the URL refers to a symbolic link if b is true and that it does not if b is false.

If you call this function for an invalid URL info, this function turns it into a valid one.

See also isSymLink() and isValid().

QUrlInfo.setWritable (self, bool b)

Specifies that the URL is writable if b is true and not writable if b is false.

If you call this function for an invalid URL info, this function turns it into a valid one.

See also isWritable() and isValid().

int QUrlInfo.size (self)

Returns the size of the URL.

See also setSize() and isValid().

bool QUrlInfo.__eq__ (self, QUrlInfo i)

bool QUrlInfo.__ne__ (self, QUrlInfo i)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/quuid.html0000644000076500000240000005120512536324475017510 0ustar philstaff00000000000000 QUuid Class Reference
  Home · All Classes · Modules

QUuid Class Reference
[QtCore module]

The QUuid class stores a Universally Unique Identifier (UUID). More...

Types

  • enum Variant { VarUnknown, NCS, DCE, Microsoft, Reserved }
  • enum Version { VerUnknown, Time, EmbeddedPOSIX, Name, Random }

Methods

Static Methods

Special Methods


Detailed Description

The QUuid class stores a Universally Unique Identifier (UUID).

Using Universally Unique IDentifiers (UUID) is a standard way to uniquely identify entities in a distributed computing environment. A UUID is a 16-byte (128-bit) number generated by some algorithm that is meant to guarantee that the UUID will be unique in the distributed computing environment where it is used. The acronym GUID is often used instead, Globally Unique IDentifiers, but it refers to the same thing.

Actually, the GUID is one variant of UUID. Multiple variants are in use. Each UUID contains a bit field that specifies which type (variant) of UUID it is. Call variant() to discover which type of UUID an instance of QUuid contains. It extracts the three most signifcant bits of byte 8 of the 16 bytes. In QUuid, byte 8 is QUuid.data4[0]. If you create instances of QUuid using the constructor that accepts all the numeric values as parameters, use the following table to set the three most significant bits of parameter b1, which becomes QUuid.data4[0] and contains the variant field in its three most significant bits. In the table, 'x' means don't care.

msb0 msb1 msb2 Variant
0 x x NCS (Network Computing System)
1 0 x DCE (Distributed Computing Environment)
1 1 0 Microsoft (GUID)
1 1 1 Reserved for future expansion

If variant() returns QUuid.DCE, the UUID also contains a version field in the four most significant bits of QUuid.data3, and you can call version() to discover which version your QUuid contains. If you create instances of QUuid using the constructor that accepts all the numeric values as parameters, use the following table to set the four most significant bits of parameter w2, which becomes QUuid.data3 and contains the version field in its four most significant bits.

msb0 msb1 msb2 msb3 Version
0 0 0 1 Time
0 0 1 0 Embedded POSIX
0 0 1 1 Name
0 1 0 0 Random

The field layouts for the DCE versions listed in the table above are specified in the Network Working Group UUID Specification.

Most platforms provide a tool for generating new UUIDs, e.g. uuidgen and guidgen. You can also use createUuid(). UUIDs generated by createUuid() are of the random type. Their QUuid.Version bits are set to QUuid.Random, and their QUuid.Variant bits are set to QUuid.DCE. The rest of the UUID is composed of random numbers. Theoretically, this means there is a small chance that a UUID generated by createUuid() will not be unique. But it is a very small chance.

UUIDs can be constructed from numeric values or from strings, or using the static createUuid() function. They can be converted to a string with toString(). UUIDs have a variant() and a version(), and null UUIDs return true from isNull().


Type Documentation

QUuid.Variant

This enum defines the values used in the variant field of the UUID. The value in the variant field determines the layout of the 128-bit value.

Constant Value Description
QUuid.VarUnknown -1 Variant is unknown
QUuid.NCS 0 Reserved for NCS (Network Computing System) backward compatibility
QUuid.DCE 2 Distributed Computing Environment, the scheme used by QUuid
QUuid.Microsoft 6 Reserved for Microsoft backward compatibility (GUID)
QUuid.Reserved 7 Reserved for future definition

QUuid.Version

This enum defines the values used in the version field of the UUID. The version field is meaningful only if the value in the variant field is QUuid.DCE.

Constant Value Description
QUuid.VerUnknown -1 Version is unknown
QUuid.Time 1 Time-based, by using timestamp, clock sequence, and MAC network card address (if available) for the node sections
QUuid.EmbeddedPOSIX 2 DCE Security version, with embedded POSIX UUIDs
QUuid.Name 3 Name-based, by using values from a name for all sections
QUuid.Random 4 Random-based, by using random numbers for all sections

Method Documentation

QUuid.__init__ (self)

Creates the null UUID. toString() will output the null UUID as "{00000000-0000-0000-0000-000000000000}".

QUuid.__init__ (self, int l, int w1, int w2, str b1, str b2, str b3, str b4, str b5, str b6, str b7, str b8)

Creates a UUID with the value specified by the parameters, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8.

Example:

 // {67C8770B-44F1-410A-AB9A-F9B5446F13EE}
 QUuid IID_MyInterface(0x67c8770b, 0x44f1, 0x410a, 0xab, 0x9a, 0xf9, 0xb5, 0x44, 0x6f, 0x13, 0xee)

QUuid.__init__ (self, QString)

Creates a QUuid object from the string text, which must be formatted as five hex fields separated by '-', e.g., "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" where 'x' is a hex digit. The curly braces shown here are optional, but it is normal to include them. If the conversion fails, a null UUID is created. See toString() for an explanation of how the five hex fields map to the public data members in QUuid.

See also toString() and QUuid().

QUuid.__init__ (self, QByteArray)

QUuid.__init__ (self, QUuid)

Creates a QUuid object from the QByteArray text, which must be formatted as five hex fields separated by '-', e.g., "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" where 'x' is a hex digit. The curly braces shown here are optional, but it is normal to include them. If the conversion fails, a null UUID is created. See toByteArray() for an explanation of how the five hex fields map to the public data members in QUuid.

This function was introduced in Qt 4.8.

See also toByteArray() and QUuid().

QUuid QUuid.createUuid ()

On any platform other than Windows, this function returns a new UUID with variant QUuid.DCE and version QUuid.Random. If the /dev/urandom device exists, then the numbers used to construct the UUID will be of cryptographic quality, which will make the UUID unique. Otherwise, the numbers of the UUID will be obtained from the local pseudo-random number generator (qrand(), which is seeded by qsrand()) which is usually not of cryptograhic quality, which means that the UUID can't be guaranteed to be unique.

On a Windows platform, a GUID is generated, which almost certainly will be unique, on this or any other system, networked or not.

See also variant() and version().

QUuid QUuid.fromRfc4122 (QByteArray)

Creates a QUuid object from the binary representation of the UUID given by bytes, as specified by RFC 4122 section 4.1.2. See toRfc4122() for a further explanation of the order of bytes required.

The byte array accepted is not a human readable format.

If the conversion fails, a null UUID is created.

This function was introduced in Qt 4.8.

See also toRfc4122() and QUuid().

bool QUuid.isNull (self)

Returns true if this is the null UUID {00000000-0000-0000-0000-000000000000}; otherwise returns false.

QByteArray QUuid.toByteArray (self)

Returns the binary representation of this QUuid. The byte array is formatted as five hex fields separated by '-' and enclosed in curly braces, i.e., "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" where 'x' is a hex digit. From left to right, the five hex fields are obtained from the four public data members in QUuid as follows:

Field # Source
1 data1
2 data2
3 data3
4 data4[0] .. data4[1]
5 data4[2] .. data4[7]

This function was introduced in Qt 4.8.

QByteArray QUuid.toRfc4122 (self)

Returns the binary representation of this QUuid. The byte array is in big endian format, and formatted according to RFC 4122, section 4.1.2 - "Layout and byte order".

The order is as follows:

Field # Source
1 data1
2 data2
3 data3
4 data4[0] .. data4[7]

This function was introduced in Qt 4.8.

QString QUuid.toString (self)

Returns the string representation of this QUuid. The string is formatted as five hex fields separated by '-' and enclosed in curly braces, i.e., "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" where 'x' is a hex digit. From left to right, the five hex fields are obtained from the four public data members in QUuid as follows:

Field # Source
1 data1
2 data2
3 data3
4 data4[0] .. data4[1]
5 data4[2] .. data4[7]

Variant QUuid.variant (self)

Returns the value in the variant field of the UUID. If the return value is QUuid.DCE, call version() to see which layout it uses. The null UUID is considered to be of an unknown variant.

See also version().

Version QUuid.version (self)

Returns the version field of the UUID, if the UUID's variant field is QUuid.DCE. Otherwise it returns QUuid.VerUnknown.

See also variant().

bool QUuid.__eq__ (self, QUuid orig)

bool QUuid.__ge__ (self, QUuid other)

bool QUuid.__gt__ (self, QUuid other)

bool QUuid.__le__ (self, QUuid other)

bool QUuid.__lt__ (self, QUuid other)

bool QUuid.__ne__ (self, QUuid orig)

str QUuid.__repr__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qvalidator.html0000644000076500000240000002522412536324516020525 0ustar philstaff00000000000000 QValidator Class Reference
  Home · All Classes · Modules

QValidator Class Reference
[
QtGui module]

The QValidator class provides validation of input text. More...

Inherits QObject.

Inherited by QDoubleValidator, QIntValidator and QRegExpValidator.

Types

  • enum State { Invalid, Intermediate, Acceptable }

Methods

  • __init__ (self, QObject parent = None)
  • QString input fixup (self, QString input)
  • fixup (self, QString)
  • QLocale locale (self)
  • setLocale (self, QLocale locale)
  • (State, QString, int) validate (self, QString, int)
  • (State, int) validate (self, QString, int)

Detailed Description

The QValidator class provides validation of input text.

The class itself is abstract. Two subclasses, QIntValidator and QDoubleValidator, provide basic numeric-range checking, and QRegExpValidator provides general checking using a custom regular expression.

If the built-in validators aren't sufficient, you can subclass QValidator. The class has two virtual functions: validate() and fixup().

validate() must be implemented by every subclass. It returns Invalid, Intermediate or Acceptable depending on whether its argument is valid (for the subclass's definition of valid).

These three states require some explanation. An Invalid string is clearly invalid. Intermediate is less obvious: the concept of validity is difficult to apply when the string is incomplete (still being edited). QValidator defines Intermediate as the property of a string that is neither clearly invalid nor acceptable as a final result. Acceptable means that the string is acceptable as a final result. One might say that any string that is a plausible intermediate state during entry of an Acceptable string is Intermediate.

Here are some examples:

  • For a line edit that accepts integers from 10 to 1000 inclusive, 42 and 123 are Acceptable, the empty string and 5 are Intermediate, and "asdf" and 1114 is Invalid.
  • For an editable combobox that accepts URLs, any well-formed URL is Acceptable, "http://example.com/," is Intermediate (it might be a cut and paste action that accidentally took in a comma at the end), the empty string is Intermediate (the user might select and delete all of the text in preparation for entering a new URL) and "http:///./" is Invalid.
  • For a spin box that accepts lengths, "11cm" and "1in" are Acceptable, "11" and the empty string are Intermediate, and "http://example.com" and "hour" are Invalid.

fixup() is provided for validators that can repair some user errors. The default implementation does nothing. QLineEdit, for example, will call fixup() if the user presses Enter (or Return) and the content is not currently valid. This allows the fixup() function the opportunity of performing some magic to make an Invalid string Acceptable.

A validator has a locale, set with setLocale(). It is typically used to parse localized data. For example, QIntValidator and QDoubleValidator use it to parse localized representations of integers and doubles.

QValidator is typically used with QLineEdit, QSpinBox and QComboBox.


Type Documentation

QValidator.State

This enum type defines the states in which a validated string can exist.

Constant Value Description
QValidator.Invalid 0 The string is clearly invalid.
QValidator.Intermediate 1 The string is a plausible intermediate value.
QValidator.Acceptable 2 The string is acceptable as a final result; i.e. it is valid.

Method Documentation

QValidator.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Sets up the validator. The parent parameter is passed on to the QObject constructor.

QString input QValidator.fixup (self, QString input)

This function attempts to change input to be valid according to this validator's rules. It need not result in a valid string: callers of this function must re-test afterwards; the default does nothing.

Reimplementations of this function can change input even if they do not produce a valid string. For example, an ISBN validator might want to delete every character except digits and "-", even if the result is still not a valid ISBN; a surname validator might want to remove whitespace from the start and end of the string, even if the resulting string is not in the list of accepted surnames.

QValidator.fixup (self, QString)

QLocale QValidator.locale (self)

Returns the locale for the validator. The locale is by default initialized to the same as QLocale().

See also setLocale() and QLocale.QLocale().

QValidator.setLocale (self, QLocale locale)

Sets the locale that will be used for the validator. Unless setLocale has been called, the validator will use the default locale set with QLocale.setDefault(). If a default locale has not been set, it is the operating system's locale.

See also locale() and QLocale.setDefault().

(State, QString, int) QValidator.validate (self, QString, int)

This method is abstract and should be reimplemented in any sub-class.

This virtual function returns Invalid if input is invalid according to this validator's rules, Intermediate if it is likely that a little more editing will make the input acceptable (e.g. the user types "4" into a widget which accepts integers between 10 and 99), and Acceptable if the input is valid.

The function can change both input and pos (the cursor position) if required.

(State, int) QValidator.validate (self, QString, int)

This method is abstract and should be reimplemented in any sub-class.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qvariant.html0000644000076500000240000016764512536324476020227 0ustar philstaff00000000000000 QVariant Class Reference
  Home · All Classes · Modules

QVariant Class Reference
[QtCore module]

The QVariant class acts like a union for the most common Qt data types. More...

Types

  • enum Type { Invalid, Bool, Int, UInt, ..., UserType }

Methods

Static Methods

Special Methods

  • bool __eq__ (self, QVariant v)
  • bool __ne__ (self, QVariant v)

Detailed Description

Any Python object may be used whenever a QVariant is expected. None will be interpreted as an invalid QVariant.

The QVariant class acts like a union for the most common Qt data types.

Because C++ forbids unions from including types that have non-default constructors or destructors, most interesting Qt classes cannot be used in unions. Without QVariant, this would be a problem for QObject.property() and for database work, etc.

A QVariant object holds a single value of a single type() at a time. (Some type()s are multi-valued, for example a string list.) You can find out what type, T, the variant holds, convert it to a different type using convert(), get its value using one of the toT() functions (e.g., toSize()) and check whether the type can be converted to a particular type using canConvert().

The methods named toT() (e.g., toInt(), toString()) are const. If you ask for the stored type, they return a copy of the stored object. If you ask for a type that can be generated from the stored type, toT() copies and converts and leaves the object itself unchanged. If you ask for a type that cannot be generated from the stored type, the result depends on the type; see the function documentation for details.

Here is some example code to demonstrate the use of QVariant:

 QDataStream out(...);
 QVariant v(123);                // The variant now contains an int
 int x = v.toInt();              // x = 123
 out << v;                       // Writes a type tag and an int to out
 v = QVariant("hello");          // The variant now contains a QByteArray
 v = QVariant(tr("hello"));      // The variant now contains a QString
 int y = v.toInt();              // y = 0 since v cannot be converted to an int
 QString s = v.toString();       // s = tr("hello")  (see QObject.tr())
 out << v;                       // Writes a type tag and a QString to out
 ...
 QDataStream in(...);            // (opening the previously written stream)
 in >> v;                        // Reads an Int variant
 int z = v.toInt();              // z = 123
 qDebug("Type is %s",            // prints "Type is int"
         v.typeName());
 v = v.toInt() + 100;            // The variant now hold the value 223
 v = QVariant(QStringList());

You can even store QList<QVariant> and QMap<QString, QVariant> values in a variant, so you can easily construct arbitrarily complex data structures of arbitrary types. This is very powerful and versatile, but may prove less memory and speed efficient than storing specific types in standard data structures.

QVariant also supports the notion of null values, where you can have a defined type with no value set. However, note that QVariant types can only be cast when they have had a value set.

 QVariant x, y(QString()), z(QString(""));
 x.convert(QVariant.Int);
 // x.isNull() == true
 // y.isNull() == true, z.isNull() == false

QVariant can be extended to support other types than those mentioned in the Type enum. See the QMetaType documentation for details.

A Note on GUI Types

Because QVariant is part of the QtCore library, it cannot provide conversion functions to data types defined in QtGui, such as QColor, QImage, and QPixmap. In other words, there is no toColor() function. Instead, you can use the QVariant.value() or the qvariant_cast() template function. For example:

 QVariant variant;
 ...
 QColor color = variant.value<QColor>();

The inverse conversion (e.g., from QColor to QVariant) is automatic for all data types supported by QVariant, including GUI-related types:

 QColor color = palette().background().color();
 QVariant variant = color;

Using canConvert() and convert() Consecutively

When using canConvert() and convert() consecutively, it is possible for canConvert() to return true, but convert() to return false. This is typically because canConvert() only reports the general ability of QVariant to convert between types given suitable data; it is still possible to supply data which cannot actually be converted.

For example, canConvert() would return true when called on a variant containing a string because, in principle, QVariant is able to convert strings of numbers to integers. However, if the string contains non-numeric characters, it cannot be converted to an integer, and any attempt to convert it will fail. Hence, it is important to have both functions return true for a successful conversion.


Type Documentation

QVariant.Type

This enum type defines the types of variable that a QVariant can contain.

Constant Value Description
QVariant.Invalid 0 no type
QVariant.BitArray 13 a QBitArray
QVariant.Bitmap 73 a QBitmap
QVariant.Bool 1 a bool
QVariant.Brush 66 a QBrush
QVariant.ByteArray 12 a QByteArray
QVariant.Char 7 a QChar
QVariant.Color 67 a QColor
QVariant.Cursor 74 a QCursor
QVariant.Date 14 a QDate
QVariant.DateTime 16 a QDateTime
QVariant.Double 6 a double
QVariant.EasingCurve 29 a QEasingCurve
QVariant.Font 64 a QFont
QVariant.Hash 28 a QVariantHash
QVariant.Icon 69 a QIcon
QVariant.Image 70 a QImage
QVariant.Int 2 an int
QVariant.KeySequence 76 a QKeySequence
QVariant.Line 23 a QLine
QVariant.LineF 24 a QLineF
QVariant.List 9 a QVariantList
QVariant.Locale 18 a QLocale
QVariant.LongLong 4 a qlonglong
QVariant.Map 8 a QVariantMap
QVariant.Matrix 80 a QMatrix(obsolete)
QVariant.Transform 81 a QTransform
QVariant.Matrix4x4 82 a QMatrix4x4
QVariant.Palette 68 a QPalette
QVariant.Pen 77 a QPen
QVariant.Pixmap 65 a QPixmap
QVariant.Point 25 a QPoint
QVariant.PointArray Polygon a QPointArray
QVariant.PointF 26 a QPointF
QVariant.Polygon 71 a QPolygon
QVariant.Quaternion 86 a QQuaternion
QVariant.Rect 19 a QRect
QVariant.RectF 20 a QRectF
QVariant.RegExp 27 a QRegExp
QVariant.Region 72 a QRegion
QVariant.Size 21 a QSize
QVariant.SizeF 22 a QSizeF
QVariant.SizePolicy 75 a QSizePolicy
QVariant.String 10 a QString
QVariant.StringList 11 a QStringList
QVariant.TextFormat 79 a QTextFormat
QVariant.TextLength 78 a QTextLength
QVariant.Time 15 a QTime
QVariant.UInt 3 a uint
QVariant.ULongLong 5 a qulonglong
QVariant.Url 17 a QUrl
QVariant.Vector2D 83 a QVector2D
QVariant.Vector3D 84 a QVector3D
QVariant.Vector4D 85 a QVector4D
QVariant.UserType 127 Base value for user-defined types.

Method Documentation

QVariant.__init__ (self)

Constructs an invalid variant.

QVariant.__init__ (self, Type type)

Constructs a null variant of type type.

QVariant.__init__ (self, int typeOrUserType, sip.voidptr copy)

Constructs variant of type typeOrUserType, and initializes with copy if copy is not 0.

Note that you have to pass the address of the variable you want stored.

Usually, you never have to use this constructor, use QVariant.fromValue() instead to construct variants from the pointer types represented by QMetaType.VoidStar, QMetaType.QObjectStar and QMetaType.QWidgetStar.

See also QVariant.fromValue() and Type.

QVariant.__init__ (self, QVariant other)

QVariant.__init__ (self, object)

Constructs a copy of the variant, p, passed as the argument to this constructor.

bool QVariant.canConvert (self, Type t)

Returns true if the variant's type can be cast to the requested type, t. Such casting is done automatically when calling the toInt(), toBool(), ... methods.

The following casts are done automatically:

Type Automatically Cast To
Bool Char, Double, Int, LongLong, String, UInt, ULongLong
ByteArray Double, Int, LongLong, String, UInt, ULongLong
Char Bool, Int, UInt, LongLong, ULongLong
Color String
Date DateTime, String
DateTime Date, String, Time
Double Bool, Int, LongLong, String, UInt, ULongLong
Font String
Int Bool, Char, Double, LongLong, String, UInt, ULongLong
KeySequence Int, String
List StringList (if the list's items can be converted to strings)
LongLong Bool, ByteArray, Char, Double, Int, String, UInt, ULongLong
Point PointF
Rect RectF
String Bool, ByteArray, Char, Color, Date, DateTime, Double, Font, Int, KeySequence, LongLong, StringList, Time, UInt, ULongLong
StringList List, String (if the list contains exactly one item)
Time String
UInt Bool, Char, Double, Int, LongLong, String, ULongLong
ULongLong Bool, Char, Double, Int, LongLong, String, UInt

See also convert().

QVariant.clear (self)

Convert this variant to type Invalid and free up any resources used.

bool QVariant.convert (self, Type t)

Casts the variant to the requested type, t. If the cast cannot be done, the variant is cleared. Returns true if the current type of the variant was successfully cast; otherwise returns false.

Warning: For historical reasons, converting a null QVariant results in a null value of the desired type (e.g., an empty string for QString) and a result of false.

See also canConvert() and clear().

sip.voidptr QVariant.data (self)

QVariant.detach (self)

QVariant QVariant.fromList (list-of-QVariant list)

QVariant QVariant.fromMap (dict-of-QString-QVariant map)

bool QVariant.isDetached (self)

bool QVariant.isNull (self)

Returns true if this is a NULL variant, false otherwise.

bool QVariant.isValid (self)

Returns true if the storage type of this variant is not QVariant.Invalid; otherwise returns false.

QVariant.load (self, QDataStream ds)

Type QVariant.nameToType (str name)

Converts the string representation of the storage type given in name, to its enum representation.

If the string representation cannot be converted to any enum representation, the variant is set to Invalid.

QVariant.save (self, QDataStream ds)

QVariant.swap (self, QVariant other)

Swaps variant other with this variant. This operation is very fast and never fails.

This function was introduced in Qt 4.8.

QBitArray QVariant.toBitArray (self)

Returns the variant as a QBitArray if the variant has type() BitArray; otherwise returns an empty bit array.

See also canConvert() and convert().

bool QVariant.toBool (self)

Returns the variant as a bool if the variant has type() Bool.

Returns true if the variant has type() Bool, Char, Double, Int, LongLong, UInt, or ULongLong and the value is non-zero, or if the variant has type String or ByteArray and its lower-case content is not empty, "0" or "false"; otherwise returns false.

See also canConvert() and convert().

QByteArray QVariant.toByteArray (self)

Returns the variant as a QByteArray if the variant has type() ByteArray or String (converted using QString.fromAscii()); otherwise returns an empty byte array.

See also canConvert() and convert().

QChar QVariant.toChar (self)

Returns the variant as a QChar if the variant has type() Char, Int, or UInt; otherwise returns an invalid QChar.

See also canConvert() and convert().

QDate QVariant.toDate (self)

Returns the variant as a QDate if the variant has type() Date, DateTime, or String; otherwise returns an invalid date.

If the type() is String, an invalid date will be returned if the string cannot be parsed as a Qt.ISODate format date.

See also canConvert() and convert().

QDateTime QVariant.toDateTime (self)

Returns the variant as a QDateTime if the variant has type() DateTime, Date, or String; otherwise returns an invalid date/time.

If the type() is String, an invalid date/time will be returned if the string cannot be parsed as a Qt.ISODate format date/time.

See also canConvert() and convert().

(float, bool ok) QVariant.toDouble (self)

Returns the variant as a double if the variant has type() Double, QMetaType.Float, Bool, ByteArray, Int, LongLong, String, UInt, or ULongLong; otherwise returns 0.0.

If ok is non-null: *ok is set to true if the value could be converted to a double; otherwise *ok is set to false.

See also canConvert() and convert().

QEasingCurve QVariant.toEasingCurve (self)

Returns the variant as a QEasingCurve if the variant has type() EasingCurve; otherwise returns a default easing curve.

This function was introduced in Qt 4.7.

See also canConvert() and convert().

(float, bool ok) QVariant.toFloat (self)

Returns the variant as a float if the variant has type() Double, QMetaType.Float, Bool, ByteArray, Int, LongLong, String, UInt, or ULongLong; otherwise returns 0.0.

If ok is non-null: *ok is set to true if the value could be converted to a double; otherwise *ok is set to false.

This function was introduced in Qt 4.6.

See also canConvert() and convert().

dict-of-QString-QVariant QVariant.toHash (self)

Returns the variant as a QHash<QString, QVariant> if the variant has type() Hash; otherwise returns an empty map.

See also canConvert() and convert().

(int, bool ok) QVariant.toInt (self)

Returns the variant as an int if the variant has type() Int, Bool, ByteArray, Char, Double, LongLong, String, UInt, or ULongLong; otherwise returns 0.

If ok is non-null: *ok is set to true if the value could be converted to an int; otherwise *ok is set to false.

Warning: If the value is convertible to a LongLong but is too large to be represented in an int, the resulting arithmetic overflow will not be reflected in ok. A simple workaround is to use QString.toInt(). Fixing this bug has been postponed to Qt 5 in order to avoid breaking existing code.

See also canConvert() and convert().

QLine QVariant.toLine (self)

Returns the variant as a QLine if the variant has type() Line; otherwise returns an invalid QLine.

See also canConvert() and convert().

QLineF QVariant.toLineF (self)

Returns the variant as a QLineF if the variant has type() LineF; otherwise returns an invalid QLineF.

See also canConvert() and convert().

list-of-QVariant QVariant.toList (self)

Returns the variant as a QVariantList if the variant has type() List or StringList; otherwise returns an empty list.

See also canConvert() and convert().

QLocale QVariant.toLocale (self)

Returns the variant as a QLocale if the variant has type() Locale; otherwise returns an invalid QLocale.

See also canConvert() and convert().

(int, bool ok) QVariant.toLongLong (self)

Returns the variant as a long long int if the variant has type() LongLong, Bool, ByteArray, Char, Double, Int, String, UInt, or ULongLong; otherwise returns 0.

If ok is non-null: *ok is set to true if the value could be converted to an int; otherwise *ok is set to false.

See also canConvert() and convert().

dict-of-QString-QVariant QVariant.toMap (self)

Returns the variant as a QMap<QString, QVariant> if the variant has type() Map; otherwise returns an empty map.

See also canConvert() and convert().

QPoint QVariant.toPoint (self)

Returns the variant as a QPoint if the variant has type() Point or PointF; otherwise returns a null QPoint.

See also canConvert() and convert().

QPointF QVariant.toPointF (self)

Returns the variant as a QPointF if the variant has type() Point or PointF; otherwise returns a null QPointF.

See also canConvert() and convert().

object QVariant.toPyObject (self)

(float, bool ok) QVariant.toReal (self)

Returns the variant as a qreal if the variant has type() Double, QMetaType.Float, Bool, ByteArray, Int, LongLong, String, UInt, or ULongLong; otherwise returns 0.0.

If ok is non-null: *ok is set to true if the value could be converted to a double; otherwise *ok is set to false.

This function was introduced in Qt 4.6.

See also canConvert() and convert().

QRect QVariant.toRect (self)

Returns the variant as a QRect if the variant has type() Rect; otherwise returns an invalid QRect.

See also canConvert() and convert().

QRectF QVariant.toRectF (self)

Returns the variant as a QRectF if the variant has type() Rect or RectF; otherwise returns an invalid QRectF.

See also canConvert() and convert().

QRegExp QVariant.toRegExp (self)

Returns the variant as a QRegExp if the variant has type() RegExp; otherwise returns an empty QRegExp.

This function was introduced in Qt 4.1.

See also canConvert() and convert().

QSize QVariant.toSize (self)

Returns the variant as a QSize if the variant has type() Size; otherwise returns an invalid QSize.

See also canConvert() and convert().

QSizeF QVariant.toSizeF (self)

Returns the variant as a QSizeF if the variant has type() SizeF; otherwise returns an invalid QSizeF.

See also canConvert() and convert().

QString QVariant.toString (self)

Returns the variant as a QString if the variant has type() String, Bool, ByteArray, Char, Date, DateTime, Double, Int, LongLong, StringList, Time, UInt, or ULongLong; otherwise returns an empty string.

See also canConvert() and convert().

QStringList QVariant.toStringList (self)

Returns the variant as a QStringList if the variant has type() StringList, String, or List of a type that can be converted to QString; otherwise returns an empty list.

See also canConvert() and convert().

QTime QVariant.toTime (self)

Returns the variant as a QTime if the variant has type() Time, DateTime, or String; otherwise returns an invalid time.

If the type() is String, an invalid time will be returned if the string cannot be parsed as a Qt.ISODate format time.

See also canConvert() and convert().

(int, bool ok) QVariant.toUInt (self)

Returns the variant as an unsigned int if the variant has type() UInt, Bool, ByteArray, Char, Double, Int, LongLong, String, or ULongLong; otherwise returns 0.

If ok is non-null: *ok is set to true if the value could be converted to an unsigned int; otherwise *ok is set to false.

Warning: If the value is convertible to a ULongLong but is too large to be represented in an unsigned int, the resulting arithmetic overflow will not be reflected in ok. A simple workaround is to use QString.toUInt(). Fixing this bug has been postponed to Qt 5 in order to avoid breaking existing code.

See also canConvert() and convert().

(int, bool ok) QVariant.toULongLong (self)

Returns the variant as as an unsigned long long int if the variant has type() ULongLong, Bool, ByteArray, Char, Double, Int, LongLong, String, or UInt; otherwise returns 0.

If ok is non-null: *ok is set to true if the value could be converted to an int; otherwise *ok is set to false.

See also canConvert() and convert().

QUrl QVariant.toUrl (self)

Returns the variant as a QUrl if the variant has type() Url; otherwise returns an invalid QUrl.

See also canConvert() and convert().

Type QVariant.type (self)

Returns the storage type of the value stored in the variant. Although this function is declared as returning QVariant.Type, the return value should be interpreted as QMetaType.Type. In particular, QVariant.UserType is returned here only if the value is equal or greater than QMetaType.User.

Note that return values in the ranges QVariant.Char through QVariant.RegExp and QVariant.Font through QVariant.Transform correspond to the values in the ranges QMetaType.QChar through QMetaType.QRegExp and QMetaType.QFont through QMetaType.QQuaternion.

Pay particular attention when working with char and QChar variants. Note that there is no QVariant constructor specifically for type char, but there is one for QChar. For a variant of type QChar, this function returns QVariant.Char, which is the same as QMetaType.QChar, but for a variant of type char, this function returns QMetaType.Char, which is not the same as QVariant.Char.

Also note that the types void*, long, short, unsigned long, unsigned short, unsigned char, float, QObject*, and QWidget* are represented in QMetaType.Type but not in QVariant.Type, and they can be returned by this function. However, they are considered to be user defined types when tested against QVariant.Type.

To test whether an instance of QVariant contains a data type that is compatible with the data type you are interested in, use canConvert().

str QVariant.typeName (self)

Returns the name of the type stored in the variant. The returned strings describe the C++ datatype used to store the data: for example, "QFont", "QString", or "QVariantList". An Invalid variant returns 0.

str QVariant.typeToName (Type type)

Converts the enum representation of the storage type, typ, to its string representation.

Returns a null pointer if the type is QVariant.Invalid or doesn't exist.

int QVariant.userType (self)

Returns the storage type of the value stored in the variant. For non-user types, this is the same as type().

See also type().

bool QVariant.__eq__ (self, QVariant v)

bool QVariant.__ne__ (self, QVariant v)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qvariantanimation.html0000644000076500000240000003731012536324473022105 0ustar philstaff00000000000000 QVariantAnimation Class Reference
  Home · All Classes · Modules

QVariantAnimation Class Reference
[
QtCore module]

The QVariantAnimation class provides an abstract base class for animations. More...

Inherits QAbstractAnimation.

Inherited by QPropertyAnimation.

Methods

Qt Signals


Detailed Description

The QVariantAnimation class provides an abstract base class for animations.

This class is part of The Animation Framework. It serves as a base class for property and item animations, with functions for shared functionality.

QVariantAnimation cannot be used directly as it is an abstract class; it has a pure virtual method called updateCurrentValue(). The class performs interpolation over QVariants, but leaves using the interpolated values to its subclasses. Currently, Qt provides QPropertyAnimation, which animates Qt properties. See the QPropertyAnimation class description if you wish to animate such properties.

You can then set start and end values for the property by calling setStartValue() and setEndValue(), and finally call start() to start the animation. QVariantAnimation will interpolate the property of the target object and emit valueChanged(). To react to a change in the current value you have to reimplement the updateCurrentValue() virtual function.

It is also possible to set values at specified steps situated between the start and end value. The interpolation will then touch these points at the specified steps. Note that the start and end values are defined as the key values at 0.0 and 1.0.

There are two ways to affect how QVariantAnimation interpolates the values. You can set an easing curve by calling setEasingCurve(), and configure the duration by calling setDuration(). You can change how the QVariants are interpolated by creating a subclass of QVariantAnimation, and reimplementing the virtual interpolated() function.

Subclassing QVariantAnimation can be an alternative if you have QVariants that you do not wish to declare as Qt properties. Note, however, that you in most cases will be better off declaring your QVariant as a property.

Not all QVariant types are supported. Below is a list of currently supported QVariant types:

If you need to interpolate other variant types, including custom types, you have to implement interpolation for these yourself. To do this, you can register an interpolator function for a given type. This function takes 3 parameters: the start value, the end value and the current progress.

Example:

 QVariant myColorInterpolator(const QColor &start, const QColor &end, qreal progress)
 {
     ...
     return QColor(...);
 }
 ...
 qRegisterAnimationInterpolator<QColor>(myColorInterpolator);

Another option is to reimplement interpolated(), which returns interpolation values for the value being interpolated.


Method Documentation

QVariantAnimation.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Construct a QVariantAnimation object. parent is passed to QAbstractAnimation's constructor.

QVariant QVariantAnimation.currentValue (self)

int QVariantAnimation.duration (self)

QEasingCurve QVariantAnimation.easingCurve (self)

QVariant QVariantAnimation.endValue (self)

bool QVariantAnimation.event (self, QEvent event)

Reimplemented from QObject.event().

QVariant QVariantAnimation.interpolated (self, QVariant from, QVariant to, float progress)

This virtual function returns the linear interpolation between variants from and to, at progress, usually a value between 0 and 1. You can reimplement this function in a subclass of QVariantAnimation to provide your own interpolation algorithm.

Note that in order for the interpolation to work with a QEasingCurve that return a value smaller than 0 or larger than 1 (such as QEasingCurve.InBack) you should make sure that it can extrapolate. If the semantic of the datatype does not allow extrapolation this function should handle that gracefully.

You should call the QVariantAnimation implementation of this function if you want your class to handle the types already supported by Qt (see class QVariantAnimation description for a list of supported types).

See also QEasingCurve.

QVariant QVariantAnimation.keyValueAt (self, float step)

Returns the key frame value for the given step. The given step must be in the range 0 to 1. If there is no KeyValue for step, it returns an invalid QVariant.

See also keyValues() and setKeyValueAt().

list-of-tuple-of-float-QVariant QVariantAnimation.keyValues (self)

Returns the key frames of this animation.

See also keyValueAt() and setKeyValues().

QVariantAnimation.setDuration (self, int msecs)

QVariantAnimation.setEasingCurve (self, QEasingCurve easing)

QVariantAnimation.setEndValue (self, QVariant value)

QVariantAnimation.setKeyValueAt (self, float step, QVariant value)

Creates a key frame at the given step with the given value. The given step must be in the range 0 to 1.

See also setKeyValues() and keyValueAt().

QVariantAnimation.setKeyValues (self, list-of-tuple-of-float-QVariant values)

Replaces the current set of key frames with the given keyValues. the step of the key frames must be in the range 0 to 1.

See also keyValues() and keyValueAt().

QVariantAnimation.setStartValue (self, QVariant value)

QVariant QVariantAnimation.startValue (self)

QVariantAnimation.updateCurrentTime (self, int)

Reimplemented from QAbstractAnimation.updateCurrentTime().

QVariantAnimation.updateCurrentValue (self, QVariant value)

This method is abstract and should be reimplemented in any sub-class.

This pure virtual function is called every time the animation's current value changes. The value argument is the new current value.

See also currentValue.

QVariantAnimation.updateState (self, QAbstractAnimation.State newState, QAbstractAnimation.State oldState)

Reimplemented from QAbstractAnimation.updateState().


Qt Signal Documentation

void valueChanged (const QVariant&)

This is the default overload of this signal.

QVariantAnimation emits this signal whenever the current value changes.

See also currentValue, startValue, and endValue.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qvboxlayout.html0000644000076500000240000001315112536324501020742 0ustar philstaff00000000000000 QVBoxLayout Class Reference
  Home · All Classes · Modules

QVBoxLayout Class Reference
[QtGui module]

The QVBoxLayout class lines up widgets vertically. More...

Inherits QBoxLayout.

Methods


Detailed Description

The QVBoxLayout class lines up widgets vertically.

This class is used to construct vertical box layout objects. See QBoxLayout for details.

The simplest use of the class is like this:

     QWidget *window = new QWidget;
     QPushButton *button1 = new QPushButton("One");
     QPushButton *button2 = new QPushButton("Two");
     QPushButton *button3 = new QPushButton("Three");
     QPushButton *button4 = new QPushButton("Four");
     QPushButton *button5 = new QPushButton("Five");

     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(button1);
     layout->addWidget(button2);
     layout->addWidget(button3);
     layout->addWidget(button4);
     layout->addWidget(button5);

     window->setLayout(layout);
     window->show();

First, we create the widgets we want in the layout. Then, we create the QVBoxLayout object and add the widgets into the layout. Finally, we call QWidget.setLayout() to install the QVBoxLayout object onto the widget. At that point, the widgets in the layout are reparented to have window as their parent.

Horizontal box layout with five child widgets


Method Documentation

QVBoxLayout.__init__ (self)

Constructs a new vertical box. You must add it to another layout.

QVBoxLayout.__init__ (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new top-level vertical box with parent parent.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qvector2d.html0000644000076500000240000003407612536324516020275 0ustar philstaff00000000000000 QVector2D Class Reference
  Home · All Classes · Modules

QVector2D Class Reference
[QtGui module]

The QVector2D class represents a vector or vertex in 2D space. More...

Methods

Static Methods

Special Methods

  • QVector2D __add__ (self, QVector2D v2)
  • QVector2D __div__ (self, float divisor)
  • bool __eq__ (self, QVector2D v2)
  • QVector2D __iadd__ (self, QVector2D vector)
  • QVector2D __idiv__ (self, float divisor)
  • QVector2D __imul__ (self, float factor)
  • QVector2D __imul__ (self, QVector2D vector)
  • QVector2D __isub__ (self, QVector2D vector)
  • QVector2D __mul__ (self, QVector2D vector)
  • QVector2D __mul__ (self, float factor)
  • QVector2D __mul__ (self, QVector2D v2)
  • bool __ne__ (self, QVector2D v2)
  • QVector2D __neg__ (self)
  • str __repr__ (self)
  • QVector2D __sub__ (self, QVector2D v2)

Detailed Description

This class can be pickled.

The QVector2D class represents a vector or vertex in 2D space.

The QVector2D class can also be used to represent vertices in 2D space. We therefore do not need to provide a separate vertex class.

Note: By design values in the QVector2D instance are stored as float. This means that on platforms where the qreal arguments to QVector2D functions are represented by double values, it is possible to lose precision.


Method Documentation

QVector2D.__init__ (self)

Constructs a null vector, i.e. with coordinates (0, 0, 0).

QVector2D.__init__ (self, float xpos, float ypos)

Constructs a vector with coordinates (xpos, ypos).

QVector2D.__init__ (self, QPoint point)

Constructs a vector with x and y coordinates from a 2D point.

QVector2D.__init__ (self, QPointF point)

Constructs a vector with x and y coordinates from a 2D point.

QVector2D.__init__ (self, QVector3D vector)

Constructs a vector with x and y coordinates from a 3D vector. The z coordinate of vector is dropped.

See also toVector3D().

QVector2D.__init__ (self, QVector4D vector)

Constructs a vector with x and y coordinates from a 3D vector. The z and w coordinates of vector are dropped.

See also toVector4D().

QVector2D.__init__ (self, QVector2D)

float QVector2D.dotProduct (QVector2D v1, QVector2D v2)

Returns the dot product of v1 and v2.

bool QVector2D.isNull (self)

Returns true if the x and y coordinates are set to 0.0, otherwise returns false.

float QVector2D.length (self)

Returns the length of the vector from the origin.

See also lengthSquared() and normalized().

float QVector2D.lengthSquared (self)

Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.

See also length() and dotProduct().

QVector2D.normalize (self)

Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.

See also length() and normalized().

QVector2D QVector2D.normalized (self)

Returns the normalized unit vector form of this vector.

If this vector is null, then a null vector is returned. If the length of the vector is very close to 1, then the vector will be returned as-is. Otherwise the normalized form of the vector of length 1 will be returned.

See also length() and normalize().

QVector2D.setX (self, float aX)

Sets the x coordinate of this point to the given x coordinate.

See also x() and setY().

QVector2D.setY (self, float aY)

Sets the y coordinate of this point to the given y coordinate.

See also y() and setX().

QPoint QVector2D.toPoint (self)

Returns the QPoint form of this 2D vector.

See also toPointF() and toVector3D().

QPointF QVector2D.toPointF (self)

Returns the QPointF form of this 2D vector.

See also toPoint() and toVector3D().

QVector3D QVector2D.toVector3D (self)

Returns the 3D form of this 2D vector, with the z coordinate set to zero.

See also toVector4D() and toPoint().

QVector4D QVector2D.toVector4D (self)

Returns the 4D form of this 2D vector, with the z and w coordinates set to zero.

See also toVector3D() and toPoint().

float QVector2D.x (self)

Returns the x coordinate of this point.

See also setX() and y().

float QVector2D.y (self)

Returns the y coordinate of this point.

See also setY() and x().

QVector2D QVector2D.__add__ (self, QVector2D v2)

QVector2D QVector2D.__div__ (self, float divisor)

bool QVector2D.__eq__ (self, QVector2D v2)

QVector2D QVector2D.__iadd__ (self, QVector2D vector)

QVector2D QVector2D.__idiv__ (self, float divisor)

QVector2D QVector2D.__imul__ (self, float factor)

QVector2D QVector2D.__imul__ (self, QVector2D vector)

QVector2D QVector2D.__isub__ (self, QVector2D vector)

QVector2D QVector2D.__mul__ (self, QVector2D vector)

QVector2D QVector2D.__mul__ (self, float factor)

QVector2D QVector2D.__mul__ (self, QVector2D v2)

bool QVector2D.__ne__ (self, QVector2D v2)

QVector2D QVector2D.__neg__ (self)

str QVector2D.__repr__ (self)

QVector2D QVector2D.__sub__ (self, QVector2D v2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qvector3d.html0000644000076500000240000005152312536324516020272 0ustar philstaff00000000000000 QVector3D Class Reference
  Home · All Classes · Modules

QVector3D Class Reference
[QtGui module]

The QVector3D class represents a vector or vertex in 3D space. More...

Methods

Static Methods

  • QVector3D crossProduct (QVector3D v1, QVector3D v2)
  • float dotProduct (QVector3D v1, QVector3D v2)
  • QVector3D normal (QVector3D v1, QVector3D v2)
  • QVector3D normal (QVector3D v1, QVector3D v2, QVector3D v3)

Special Methods

  • QVector3D __add__ (self, QVector3D v2)
  • QVector3D __div__ (self, float divisor)
  • bool __eq__ (self, QVector3D v2)
  • QVector3D __iadd__ (self, QVector3D vector)
  • QVector3D __idiv__ (self, float divisor)
  • QVector3D __imul__ (self, float factor)
  • QVector3D __imul__ (self, QVector3D vector)
  • QVector3D __isub__ (self, QVector3D vector)
  • QVector3D __mul__ (self, QMatrix4x4 matrix)
  • QVector3D __mul__ (self, QVector3D vector)
  • QVector3D __mul__ (self, float factor)
  • QVector3D __mul__ (self, QVector3D v2)
  • bool __ne__ (self, QVector3D v2)
  • QVector3D __neg__ (self)
  • str __repr__ (self)
  • QVector3D __sub__ (self, QVector3D v2)

Detailed Description

This class can be pickled.

The QVector3D class represents a vector or vertex in 3D space.

Vectors are one of the main building blocks of 3D representation and drawing. They consist of three coordinates, traditionally called x, y, and z.

The QVector3D class can also be used to represent vertices in 3D space. We therefore do not need to provide a separate vertex class.

Note: By design values in the QVector3D instance are stored as float. This means that on platforms where the qreal arguments to QVector3D functions are represented by double values, it is possible to lose precision.


Method Documentation

QVector3D.__init__ (self)

Constructs a null vector, i.e. with coordinates (0, 0, 0).

QVector3D.__init__ (self, float xpos, float ypos, float zpos)

Constructs a vector with coordinates (xpos, ypos, zpos).

QVector3D.__init__ (self, QPoint point)

Constructs a vector with x and y coordinates from a 2D point, and a z coordinate of 0.

QVector3D.__init__ (self, QPointF point)

Constructs a vector with x and y coordinates from a 2D point, and a z coordinate of 0.

QVector3D.__init__ (self, QVector2D vector)

Constructs a 3D vector from the specified 2D vector. The z coordinate is set to zero.

See also toVector2D().

QVector3D.__init__ (self, QVector2D vector, float zpos)

Constructs a 3D vector from the specified 2D vector. The z coordinate is set to zpos.

See also toVector2D().

QVector3D.__init__ (self, QVector4D vector)

Constructs a 3D vector from the specified 4D vector. The w coordinate is dropped.

See also toVector4D().

QVector3D.__init__ (self, QVector3D)

QVector3D QVector3D.crossProduct (QVector3D v1, QVector3D v2)

Returns the cross-product of vectors v1 and v2, which corresponds to the normal vector of a plane defined by v1 and v2.

See also normal().

float QVector3D.distanceToLine (self, QVector3D point, QVector3D direction)

Returns the distance that this vertex is from a line defined by point and the unit vector direction.

If direction is a null vector, then it does not define a line. In that case, the distance from point to this vertex is returned.

See also distanceToPlane().

float QVector3D.distanceToPlane (self, QVector3D plane, QVector3D normal)

Returns the distance from this vertex to a plane defined by the vertex plane and a normal unit vector. The normal parameter is assumed to have been normalized to a unit vector.

The return value will be negative if the vertex is below the plane, or zero if it is on the plane.

See also normal() and distanceToLine().

float QVector3D.distanceToPlane (self, QVector3D plane1, QVector3D plane2, QVector3D plane3)

This is an overloaded function.

Returns the distance from this vertex a plane defined by the vertices plane1, plane2 and plane3.

The return value will be negative if the vertex is below the plane, or zero if it is on the plane.

The two vectors that define the plane are plane2 - plane1 and plane3 - plane1.

See also normal() and distanceToLine().

float QVector3D.dotProduct (QVector3D v1, QVector3D v2)

Returns the dot product of v1 and v2.

bool QVector3D.isNull (self)

Returns true if the x, y, and z coordinates are set to 0.0, otherwise returns false.

float QVector3D.length (self)

Returns the length of the vector from the origin.

See also lengthSquared() and normalized().

float QVector3D.lengthSquared (self)

Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.

See also length() and dotProduct().

QVector3D QVector3D.normal (QVector3D v1, QVector3D v2)

Returns the normal vector of a plane defined by vectors v1 and v2, normalized to be a unit vector.

Use crossProduct() to compute the cross-product of v1 and v2 if you do not need the result to be normalized to a unit vector.

See also crossProduct() and distanceToPlane().

QVector3D QVector3D.normal (QVector3D v1, QVector3D v2, QVector3D v3)

This is an overloaded function.

Returns the normal vector of a plane defined by vectors v2 - v1 and v3 - v1, normalized to be a unit vector.

Use crossProduct() to compute the cross-product of v2 - v1 and v3 - v1 if you do not need the result to be normalized to a unit vector.

See also crossProduct() and distanceToPlane().

QVector3D.normalize (self)

Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.

See also length() and normalized().

QVector3D QVector3D.normalized (self)

Returns the normalized unit vector form of this vector.

If this vector is null, then a null vector is returned. If the length of the vector is very close to 1, then the vector will be returned as-is. Otherwise the normalized form of the vector of length 1 will be returned.

See also length() and normalize().

QVector3D.setX (self, float aX)

Sets the x coordinate of this point to the given x coordinate.

See also x(), setY(), and setZ().

QVector3D.setY (self, float aY)

Sets the y coordinate of this point to the given y coordinate.

See also y(), setX(), and setZ().

QVector3D.setZ (self, float aZ)

Sets the z coordinate of this point to the given z coordinate.

See also z(), setX(), and setY().

QPoint QVector3D.toPoint (self)

Returns the QPoint form of this 3D vector. The z coordinate is dropped.

See also toPointF() and toVector2D().

QPointF QVector3D.toPointF (self)

Returns the QPointF form of this 3D vector. The z coordinate is dropped.

See also toPoint() and toVector2D().

QVector2D QVector3D.toVector2D (self)

Returns the 2D vector form of this 3D vector, dropping the z coordinate.

See also toVector4D() and toPoint().

QVector4D QVector3D.toVector4D (self)

Returns the 4D form of this 3D vector, with the w coordinate set to zero.

See also toVector2D() and toPoint().

float QVector3D.x (self)

Returns the x coordinate of this point.

See also setX(), y(), and z().

float QVector3D.y (self)

Returns the y coordinate of this point.

See also setY(), x(), and z().

float QVector3D.z (self)

Returns the z coordinate of this point.

See also setZ(), x(), and y().

QVector3D QVector3D.__add__ (self, QVector3D v2)

QVector3D QVector3D.__div__ (self, float divisor)

bool QVector3D.__eq__ (self, QVector3D v2)

QVector3D QVector3D.__iadd__ (self, QVector3D vector)

QVector3D QVector3D.__idiv__ (self, float divisor)

QVector3D QVector3D.__imul__ (self, float factor)

QVector3D QVector3D.__imul__ (self, QVector3D vector)

QVector3D QVector3D.__isub__ (self, QVector3D vector)

QVector3D QVector3D.__mul__ (self, QMatrix4x4 matrix)

QVector3D QVector3D.__mul__ (self, QVector3D vector)

QVector3D QVector3D.__mul__ (self, float factor)

QVector3D QVector3D.__mul__ (self, QVector3D v2)

bool QVector3D.__ne__ (self, QVector3D v2)

QVector3D QVector3D.__neg__ (self)

str QVector3D.__repr__ (self)

QVector3D QVector3D.__sub__ (self, QVector3D v2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qvector4d.html0000644000076500000240000004561512536324516020300 0ustar philstaff00000000000000 QVector4D Class Reference
  Home · All Classes · Modules

QVector4D Class Reference
[QtGui module]

The QVector4D class represents a vector or vertex in 4D space. More...

Methods

Static Methods

Special Methods

  • QVector4D __add__ (self, QVector4D v2)
  • QVector4D __div__ (self, float divisor)
  • bool __eq__ (self, QVector4D v2)
  • QVector4D __iadd__ (self, QVector4D vector)
  • QVector4D __idiv__ (self, float divisor)
  • QVector4D __imul__ (self, float factor)
  • QVector4D __imul__ (self, QVector4D vector)
  • QVector4D __isub__ (self, QVector4D vector)
  • QVector4D __mul__ (self, QMatrix4x4 matrix)
  • QVector4D __mul__ (self, QVector4D vector)
  • QVector4D __mul__ (self, float factor)
  • QVector4D __mul__ (self, QVector4D v2)
  • bool __ne__ (self, QVector4D v2)
  • QVector4D __neg__ (self)
  • str __repr__ (self)
  • QVector4D __sub__ (self, QVector4D v2)

Detailed Description

This class can be pickled.

The QVector4D class represents a vector or vertex in 4D space.

The QVector4D class can also be used to represent vertices in 4D space. We therefore do not need to provide a separate vertex class.

Note: By design values in the QVector4D instance are stored as float. This means that on platforms where the qreal arguments to QVector4D functions are represented by double values, it is possible to lose precision.


Method Documentation

QVector4D.__init__ (self)

Constructs a null vector, i.e. with coordinates (0, 0, 0, 0).

QVector4D.__init__ (self, float xpos, float ypos, float zpos, float wpos)

Constructs a vector with coordinates (xpos, ypos, zpos, wpos).

QVector4D.__init__ (self, QPoint point)

Constructs a vector with x and y coordinates from a 2D point, and z and w coordinates of 0.

QVector4D.__init__ (self, QPointF point)

Constructs a vector with x and y coordinates from a 2D point, and z and w coordinates of 0.

QVector4D.__init__ (self, QVector2D vector)

Constructs a 4D vector from the specified 2D vector. The z and w coordinates are set to zero.

See also toVector2D().

QVector4D.__init__ (self, QVector2D vector, float zpos, float wpos)

Constructs a 4D vector from the specified 2D vector. The z and w coordinates are set to zpos and wpos respectively.

See also toVector2D().

QVector4D.__init__ (self, QVector3D vector)

Constructs a 4D vector from the specified 3D vector. The w coordinate is set to zero.

See also toVector3D().

QVector4D.__init__ (self, QVector3D vector, float wpos)

Constructs a 4D vector from the specified 3D vector. The w coordinate is set to wpos.

See also toVector3D().

QVector4D.__init__ (self, QVector4D)

float QVector4D.dotProduct (QVector4D v1, QVector4D v2)

Returns the dot product of v1 and v2.

bool QVector4D.isNull (self)

Returns true if the x, y, z, and w coordinates are set to 0.0, otherwise returns false.

float QVector4D.length (self)

Returns the length of the vector from the origin.

See also lengthSquared() and normalized().

float QVector4D.lengthSquared (self)

Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.

See also length() and dotProduct().

QVector4D.normalize (self)

Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.

See also length() and normalized().

QVector4D QVector4D.normalized (self)

Returns the normalized unit vector form of this vector.

If this vector is null, then a null vector is returned. If the length of the vector is very close to 1, then the vector will be returned as-is. Otherwise the normalized form of the vector of length 1 will be returned.

See also length() and normalize().

QVector4D.setW (self, float aW)

Sets the w coordinate of this point to the given w coordinate.

See also w(), setX(), setY(), and setZ().

QVector4D.setX (self, float aX)

Sets the x coordinate of this point to the given x coordinate.

See also x(), setY(), setZ(), and setW().

QVector4D.setY (self, float aY)

Sets the y coordinate of this point to the given y coordinate.

See also y(), setX(), setZ(), and setW().

QVector4D.setZ (self, float aZ)

Sets the z coordinate of this point to the given z coordinate.

See also z(), setX(), setY(), and setW().

QPoint QVector4D.toPoint (self)

Returns the QPoint form of this 4D vector. The z and w coordinates are dropped.

See also toPointF() and toVector2D().

QPointF QVector4D.toPointF (self)

Returns the QPointF form of this 4D vector. The z and w coordinates are dropped.

See also toPoint() and toVector2D().

QVector2D QVector4D.toVector2D (self)

Returns the 2D vector form of this 4D vector, dropping the z and w coordinates.

See also toVector2DAffine(), toVector3D(), and toPoint().

QVector2D QVector4D.toVector2DAffine (self)

Returns the 2D vector form of this 4D vector, dividing the x and y coordinates by the w coordinate and dropping the z coordinate. Returns a null vector if w is zero.

See also toVector2D(), toVector3DAffine(), and toPoint().

QVector3D QVector4D.toVector3D (self)

Returns the 3D vector form of this 4D vector, dropping the w coordinate.

See also toVector3DAffine(), toVector2D(), and toPoint().

QVector3D QVector4D.toVector3DAffine (self)

Returns the 3D vector form of this 4D vector, dividing the x, y, and z coordinates by the w coordinate. Returns a null vector if w is zero.

See also toVector3D(), toVector2DAffine(), and toPoint().

float QVector4D.w (self)

Returns the w coordinate of this point.

See also setW(), x(), y(), and z().

float QVector4D.x (self)

Returns the x coordinate of this point.

See also setX(), y(), z(), and w().

float QVector4D.y (self)

Returns the y coordinate of this point.

See also setY(), x(), z(), and w().

float QVector4D.z (self)

Returns the z coordinate of this point.

See also setZ(), x(), y(), and w().

QVector4D QVector4D.__add__ (self, QVector4D v2)

QVector4D QVector4D.__div__ (self, float divisor)

bool QVector4D.__eq__ (self, QVector4D v2)

QVector4D QVector4D.__iadd__ (self, QVector4D vector)

QVector4D QVector4D.__idiv__ (self, float divisor)

QVector4D QVector4D.__imul__ (self, float factor)

QVector4D QVector4D.__imul__ (self, QVector4D vector)

QVector4D QVector4D.__isub__ (self, QVector4D vector)

QVector4D QVector4D.__mul__ (self, QMatrix4x4 matrix)

QVector4D QVector4D.__mul__ (self, QVector4D vector)

QVector4D QVector4D.__mul__ (self, float factor)

QVector4D QVector4D.__mul__ (self, QVector4D v2)

bool QVector4D.__ne__ (self, QVector4D v2)

QVector4D QVector4D.__neg__ (self)

str QVector4D.__repr__ (self)

QVector4D QVector4D.__sub__ (self, QVector4D v2)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qvideoframe.html0000644000076500000240000006646112536324517020672 0ustar philstaff00000000000000 QVideoFrame Class Reference
  Home · All Classes · Modules

QVideoFrame Class Reference
[QtMultimedia module]

The QVideoFrame class provides a representation of a frame of video data. More...

Types

  • enum FieldType { ProgressiveFrame, TopField, BottomField, InterlacedFrame }
  • enum PixelFormat { Format_Invalid, Format_ARGB32, Format_ARGB32_Premultiplied, Format_RGB32, ..., Format_User }

Methods

Static Methods


Detailed Description

The QVideoFrame class provides a representation of a frame of video data.

A QVideoFrame encapsulates the data of a video frame, and information about the frame.

The contents of a video frame can be mapped to memory using the map() function. While mapped the video data can accessed using the bits() function which returns a pointer to a buffer, the total size of which is given by the mappedBytes(), and the size of each line is given by bytesPerLine(). The return value of the handle() function may be used to access frame data using the internal buffer's native APIs.

The video data in a QVideoFrame is encapsulated in a QAbstractVideoBuffer. A QVideoFrame may be constructed from any buffer type by subclassing the QAbstractVideoBuffer class.

Note: QVideoFrame is explicitly shared, any change made to video frame will also apply to any copies.


Type Documentation

QVideoFrame.FieldType

Specifies the field an interlaced video frame belongs to.

Constant Value Description
QVideoFrame.ProgressiveFrame 0 The frame is not interlaced.
QVideoFrame.TopField 1 The frame contains a top field.
QVideoFrame.BottomField 2 The frame contains a bottom field.
QVideoFrame.InterlacedFrame 3 The frame contains a merged top and bottom field.

QVideoFrame.PixelFormat

Enumerates video data types.

Constant Value Description
QVideoFrame.Format_Invalid 0 The frame is invalid.
QVideoFrame.Format_ARGB32 1 The frame is stored using a 32-bit ARGB format (0xAARRGGBB). This is equivalent to QImage.Format_ARGB32.
QVideoFrame.Format_ARGB32_Premultiplied 2 The frame stored using a premultiplied 32-bit ARGB format (0xAARRGGBB). This is equivalent to QImage.Format_ARGB32_Premultiplied.
QVideoFrame.Format_RGB32 3 The frame stored using a 32-bit RGB format (0xffRRGGBB). This is equivalent to QImage.Format_RGB32
QVideoFrame.Format_RGB24 4 The frame is stored using a 24-bit RGB format (8-8-8). This is equivalent to QImage.Format_RGB888
QVideoFrame.Format_RGB565 5 The frame is stored using a 16-bit RGB format (5-6-5). This is equivalent to QImage.Format_RGB16.
QVideoFrame.Format_RGB555 6 The frame is stored using a 16-bit RGB format (5-5-5). This is equivalent to QImage.Format_RGB555.
QVideoFrame.Format_ARGB8565_Premultiplied 7 The frame is stored using a 24-bit premultiplied ARGB format (8-6-6-5).
QVideoFrame.Format_BGRA32 8 The frame is stored using a 32-bit ARGB format (0xBBGGRRAA).
QVideoFrame.Format_BGRA32_Premultiplied 9 The frame is stored using a premultiplied 32bit BGRA format.
QVideoFrame.Format_BGR32 10 The frame is stored using a 32-bit BGR format (0xBBGGRRff).
QVideoFrame.Format_BGR24 11 The frame is stored using a 24-bit BGR format (0xBBGGRR).
QVideoFrame.Format_BGR565 12 The frame is stored using a 16-bit BGR format (5-6-5).
QVideoFrame.Format_BGR555 13 The frame is stored using a 16-bit BGR format (5-5-5).
QVideoFrame.Format_BGRA5658_Premultiplied 14 The frame is stored using a 24-bit premultiplied BGRA format (5-6-5-8).
QVideoFrame.Format_AYUV444 15 The frame is stored using a packed 32-bit AYUV format (0xAAYYUUVV).
QVideoFrame.Format_AYUV444_Premultiplied 16 The frame is stored using a packed premultiplied 32-bit AYUV format (0xAAYYUUVV).
QVideoFrame.Format_YUV444 17 The frame is stored using a 24-bit packed YUV format (8-8-8).
QVideoFrame.Format_YUV420P 18 The frame is stored using an 8-bit per component planar YUV format with the U and V planes horizontally and vertically sub-sampled, i.e. the height and width of the U and V planes are half that of the Y plane.
QVideoFrame.Format_YV12 19 The frame is stored using an 8-bit per component planar YVU format with the V and U planes horizontally and vertically sub-sampled, i.e. the height and width of the V and U planes are half that of the Y plane.
QVideoFrame.Format_UYVY 20 The frame is stored using an 8-bit per component packed YUV format with the U and V planes horizontally sub-sampled (U-Y-V-Y), i.e. two horizontally adjacent pixels are stored as a 32-bit macropixel which has a Y value for each pixel and common U and V values.
QVideoFrame.Format_YUYV 21 The frame is stored using an 8-bit per component packed YUV format with the U and V planes horizontally sub-sampled (Y-U-Y-V), i.e. two horizontally adjacent pixels are stored as a 32-bit macropixel which has a Y value for each pixel and common U and V values.
QVideoFrame.Format_NV12 22 The frame is stored using an 8-bit per component semi-planar YUV format with a Y plane (Y) followed by a horizontally and vertically sub-sampled, packed UV plane (U-V).
QVideoFrame.Format_NV21 23 The frame is stored using an 8-bit per component semi-planar YUV format with a Y plane (Y) followed by a horizontally and vertically sub-sampled, packed VU plane (V-U).
QVideoFrame.Format_IMC1 24 The frame is stored using an 8-bit per component planar YUV format with the U and V planes horizontally and vertically sub-sampled. This is similar to the Format_YUV420P type, except that the bytes per line of the U and V planes are padded out to the same stride as the Y plane.
QVideoFrame.Format_IMC2 25 The frame is stored using an 8-bit per component planar YUV format with the U and V planes horizontally and vertically sub-sampled. This is similar to the Format_YUV420P type, except that the lines of the U and V planes are interleaved, i.e. each line of U data is followed by a line of V data creating a single line of the same stride as the Y data.
QVideoFrame.Format_IMC3 26 The frame is stored using an 8-bit per component planar YVU format with the V and U planes horizontally and vertically sub-sampled. This is similar to the Format_YV12 type, except that the bytes per line of the V and U planes are padded out to the same stride as the Y plane.
QVideoFrame.Format_IMC4 27 The frame is stored using an 8-bit per component planar YVU format with the V and U planes horizontally and vertically sub-sampled. This is similar to the Format_YV12 type, except that the lines of the V and U planes are interleaved, i.e. each line of V data is followed by a line of U data creating a single line of the same stride as the Y data.
QVideoFrame.Format_Y8 28 The frame is stored using an 8-bit greyscale format.
QVideoFrame.Format_Y16 29 The frame is stored using a 16-bit linear greyscale format. Little endian.
QVideoFrame.Format_User 1000 Start value for user defined pixel formats.

Method Documentation

QVideoFrame.__init__ (self)

Constructs a null video frame.

QVideoFrame.__init__ (self, QAbstractVideoBuffer buffer, QSize size, PixelFormat format)

Constructs a video frame from a buffer of the given pixel format and size in pixels.

Note: This doesn't increment the reference count of the video buffer.

QVideoFrame.__init__ (self, int bytes, QSize size, int bytesPerLine, PixelFormat format)

Constructs a video frame of the given pixel format and size in pixels.

The bytesPerLine (stride) is the length of each scan line in bytes, and bytes is the total number of bytes that must be allocated for the frame.

QVideoFrame.__init__ (self, QImage image)

Constructs a video frame from an image.

Note: This will construct an invalid video frame if there is no frame type equivalent to the image format.

See also pixelFormatFromImageFormat().

QVideoFrame.__init__ (self, QVideoFrame other)

Constructs a copy of other.

sip.voidptr QVideoFrame.bits (self)

Returns a pointer to the start of the frame data buffer.

This value is only valid while the frame data is mapped.

See also map(), mappedBytes(), and bytesPerLine().

int QVideoFrame.bytesPerLine (self)

Returns the number of bytes in a scan line.

Note: This is the bytes per line of the first plane only. The bytes per line of subsequent planes should be calculated as per the frame type.

This value is only valid while the frame data is mapped.

See also bits(), map(), and mappedBytes().

int QVideoFrame.endTime (self)

Returns the presentation time when a frame should stop being displayed.

See also setEndTime().

FieldType QVideoFrame.fieldType (self)

Returns the field an interlaced video frame belongs to.

If the video is not interlaced this will return WholeFrame.

See also setFieldType().

QVariant QVideoFrame.handle (self)

Returns a type specific handle to a video frame's buffer.

For an OpenGL texture this would be the texture ID.

See also QAbstractVideoBuffer.handle().

QAbstractVideoBuffer.HandleType QVideoFrame.handleType (self)

Returns the type of a video frame's handle.

int QVideoFrame.height (self)

Returns the height of a video frame.

QImage.Format QVideoFrame.imageFormatFromPixelFormat (PixelFormat format)

Returns an image format equivalent to a video frame pixel format. If there is no equivalent format QImage.Format_Invalid is returned instead.

bool QVideoFrame.isMapped (self)

Identifies if a video frame's contents are currently mapped to system memory.

This is a convenience function which checks that the MapMode of the frame is not equal to QAbstractVideoBuffer.NotMapped.

Returns true if the contents of the video frame are mapped to system memory, and false otherwise.

See also mapMode() and QAbstractVideoBuffer.MapMode.

bool QVideoFrame.isReadable (self)

Identifies if the mapped contents of a video frame were read from the frame when it was mapped.

This is a convenience function which checks if the MapMode contains the QAbstractVideoBuffer.WriteOnly flag.

Returns true if the contents of the mapped memory were read from the video frame, and false otherwise.

See also mapMode() and QAbstractVideoBuffer.MapMode.

bool QVideoFrame.isValid (self)

Identifies whether a video frame is valid.

An invalid frame has no video buffer associated with it.

Returns true if the frame is valid, and false if it is not.

bool QVideoFrame.isWritable (self)

Identifies if the mapped contents of a video frame will be persisted when the frame is unmapped.

This is a convenience function which checks if the MapMode contains the QAbstractVideoBuffer.WriteOnly flag.

Returns true if the video frame will be updated when unmapped, and false otherwise.

Note: The result of altering the data of a frame that is mapped in read-only mode is undefined. Depending on the buffer implementation the changes may be persisted, or worse alter a shared buffer.

See also mapMode() and QAbstractVideoBuffer.MapMode.

bool QVideoFrame.map (self, QAbstractVideoBuffer.MapMode mode)

Maps the contents of a video frame to memory.

The map mode indicates whether the contents of the mapped memory should be read from and/or written to the frame. If the map mode includes the QAbstractVideoBuffer.ReadOnly flag the mapped memory will be populated with the content of the video frame when mapped. If the map mode inclues the QAbstractVideoBuffer.WriteOnly flag the content of the mapped memory will be persisted in the frame when unmapped.

While mapped the contents of a video frame can be accessed directly through the pointer returned by the bits() function.

When access to the data is no longer needed be sure to call the unmap() function to release the mapped memory.

Returns true if the buffer was mapped to memory in the given mode and false otherwise.

See also unmap(), mapMode(), and bits().

QAbstractVideoBuffer.MapMode QVideoFrame.mapMode (self)

Returns the mode a video frame was mapped to system memory in.

See also map() and QAbstractVideoBuffer.MapMode.

int QVideoFrame.mappedBytes (self)

Returns the number of bytes occupied by the mapped frame data.

This value is only valid while the frame data is mapped.

See also map().

PixelFormat QVideoFrame.pixelFormat (self)

Returns the color format of a video frame.

PixelFormat QVideoFrame.pixelFormatFromImageFormat (QImage.Format format)

Returns an video pixel format equivalent to an image format. If there is no equivalent format QVideoFrame.InvalidType is returned instead.

QVideoFrame.setEndTime (self, int time)

Sets the presentation time when a frame should stop being displayed.

See also endTime().

QVideoFrame.setFieldType (self, FieldType)

Sets the field an interlaced video frame belongs to.

See also fieldType().

QVideoFrame.setStartTime (self, int time)

Sets the presentation time when the frame should be displayed.

See also startTime().

QSize QVideoFrame.size (self)

Returns the size of a video frame.

int QVideoFrame.startTime (self)

Returns the presentation time when the frame should be displayed.

See also setStartTime().

QVideoFrame.unmap (self)

Releases the memory mapped by the map() function.

If the MapMode included the QAbstractVideoBuffer.WriteOnly flag this will persist the current content of the mapped memory to the video frame.

See also map().

int QVideoFrame.width (self)

Returns the width of a video frame.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qvideosurfaceformat.html0000644000076500000240000004476512536324517022444 0ustar philstaff00000000000000 QVideoSurfaceFormat Class Reference
  Home · All Classes · Modules

QVideoSurfaceFormat Class Reference
[
QtMultimedia module]

The QVideoSurfaceFormat class specifies the stream format of a video presentation surface. More...

Types

  • enum Direction { TopToBottom, BottomToTop }
  • enum YCbCrColorSpace { YCbCr_Undefined, YCbCr_BT601, YCbCr_BT709, YCbCr_xvYCC601, YCbCr_xvYCC709, YCbCr_JPEG }

Methods

Special Methods

  • bool __eq__ (self, QVideoSurfaceFormat format)
  • bool __ne__ (self, QVideoSurfaceFormat format)

Detailed Description

The QVideoSurfaceFormat class specifies the stream format of a video presentation surface.

A video surface presents a stream of video frames. The surface's format describes the type of the frames and determines how they should be presented.

The core properties of a video stream required to setup a video surface are the pixel format given by pixelFormat(), and the frame dimensions given by frameSize().

If the surface is to present frames using a frame's handle a surface format will also include a handle type which is given by the handleType() function.

The region of a frame that is actually displayed on a video surface is given by the viewport(). A stream may have a viewport less than the entire region of a frame to allow for videos smaller than the nearest optimal size of a video frame. For example the width of a frame may be extended so that the start of each scan line is eight byte aligned.

Other common properties are the pixelAspectRatio(), scanLineDirection(), and frameRate(). Additionally a stream may have some additional type specific properties which are listed by the dynamicPropertyNames() function and can be accessed using the property(), and setProperty() functions.


Type Documentation

QVideoSurfaceFormat.Direction

Enumerates the layout direction of video scan lines.

Constant Value Description
QVideoSurfaceFormat.TopToBottom 0 Scan lines are arranged from the top of the frame to the bottom.
QVideoSurfaceFormat.BottomToTop 1 Scan lines are arranged from the bottom of the frame to the top.

QVideoSurfaceFormat.YCbCrColorSpace

Enumerates the Y'CbCr color space of video frames.

Constant Value Description
QVideoSurfaceFormat.YCbCr_Undefined 0 No color space is specified.
QVideoSurfaceFormat.YCbCr_BT601 1 A Y'CbCr color space defined by ITU-R recommendation BT.601 with Y value range from 16 to 235, and Cb/Cr range from 16 to 240. Used in standard definition video.
QVideoSurfaceFormat.YCbCr_BT709 2 A Y'CbCr color space defined by ITU-R BT.709 with the same values range as YCbCr_BT601. Used for HDTV.
QVideoSurfaceFormat.YCbCr_xvYCC601 3 The BT.601 color space with the value range extended to 0 to 255. It is backward compatibile with BT.601 and uses values outside BT.601 range to represent wider colors range.
QVideoSurfaceFormat.YCbCr_xvYCC709 4 The BT.709 color space with the value range extended to 0 to 255.
QVideoSurfaceFormat.YCbCr_JPEG 5 The full range Y'CbCr color space used in JPEG files.

Method Documentation

QVideoSurfaceFormat.__init__ (self)

Constructs a null video stream format.

QVideoSurfaceFormat.__init__ (self, QSize size, QVideoFrame.PixelFormat format, QAbstractVideoBuffer.HandleType type = QAbstractVideoBuffer.NoHandle)

Contructs a description of stream which receives stream of type buffers with given frame size and pixel format.

QVideoSurfaceFormat.__init__ (self, QVideoSurfaceFormat format)

Constructs a copy of other.

int QVideoSurfaceFormat.frameHeight (self)

Returns the height of frame in a video stream.

float QVideoSurfaceFormat.frameRate (self)

Returns the frame rate of a video stream in frames per second.

See also setFrameRate().

QSize QVideoSurfaceFormat.frameSize (self)

Returns the size of frames in a video stream.

See also setFrameSize(), frameWidth(), and frameHeight().

int QVideoSurfaceFormat.frameWidth (self)

Returns the width of frames in a video stream.

See also frameSize() and frameHeight().

QAbstractVideoBuffer.HandleType QVideoSurfaceFormat.handleType (self)

Returns the type of handle the surface uses to present the frame data.

If the handle type is QAbstractVideoBuffer.NoHandle buffers with any handle type are valid provided they can be mapped with the QAbstractVideoBuffer.ReadOnly flag. If the handleType() is not QAbstractVideoBuffer.NoHandle then the handle type of the buffer be the same as that of the surface format.

bool QVideoSurfaceFormat.isValid (self)

Identifies if a video surface format has a valid pixel format and frame size.

Returns true if the format is valid, and false otherwise.

QSize QVideoSurfaceFormat.pixelAspectRatio (self)

Returns a video stream's pixel aspect ratio.

See also setPixelAspectRatio().

QVideoFrame.PixelFormat QVideoSurfaceFormat.pixelFormat (self)

Returns the pixel format of frames in a video stream.

QVariant QVideoSurfaceFormat.property (self, str name)

Returns the value of the video format's name property.

See also setProperty().

list-of-QByteArray QVideoSurfaceFormat.propertyNames (self)

Returns a list of video format dynamic property names.

Direction QVideoSurfaceFormat.scanLineDirection (self)

Returns the direction of scan lines.

See also setScanLineDirection().

QVideoSurfaceFormat.setFrameRate (self, float rate)

Sets the frame rate of a video stream in frames per second.

See also frameRate().

QVideoSurfaceFormat.setFrameSize (self, QSize size)

Sets the size of frames in a video stream to size.

This will reset the viewport() to fill the entire frame.

See also frameSize().

QVideoSurfaceFormat.setFrameSize (self, int width, int height)

This is an overloaded function.

Sets the width and height of frames in a video stream.

This will reset the viewport() to fill the entire frame.

QVideoSurfaceFormat.setPixelAspectRatio (self, QSize ratio)

Sets a video stream's pixel aspect ratio.

See also pixelAspectRatio().

QVideoSurfaceFormat.setPixelAspectRatio (self, int width, int height)

This is an overloaded function.

Sets the horizontal and vertical elements of a video stream's pixel aspect ratio.

QVideoSurfaceFormat.setProperty (self, str name, QVariant value)

Sets the video format's name property to value.

See also property().

QVideoSurfaceFormat.setScanLineDirection (self, Direction direction)

Sets the direction of scan lines.

See also scanLineDirection().

QVideoSurfaceFormat.setViewport (self, QRect viewport)

Sets the viewport of a video stream to viewport.

See also viewport().

QVideoSurfaceFormat.setYCbCrColorSpace (self, YCbCrColorSpace colorSpace)

Sets the Y'CbCr color space of a video stream. It is only used with raw YUV frame types.

See also yCbCrColorSpace().

QSize QVideoSurfaceFormat.sizeHint (self)

Returns a suggested size in pixels for the video stream.

This is the size of the viewport scaled according to the pixel aspect ratio.

QRect QVideoSurfaceFormat.viewport (self)

Returns the viewport of a video stream.

The viewport is the region of a video frame that is actually displayed.

By default the viewport covers an entire frame.

See also setViewport().

YCbCrColorSpace QVideoSurfaceFormat.yCbCrColorSpace (self)

Returns the Y'CbCr color space of a video stream.

See also setYCbCrColorSpace().

bool QVideoSurfaceFormat.__eq__ (self, QVideoSurfaceFormat format)

bool QVideoSurfaceFormat.__ne__ (self, QVideoSurfaceFormat format)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwaitcondition.html0000644000076500000240000002252512536324476021421 0ustar philstaff00000000000000 QWaitCondition Class Reference
  Home · All Classes · Modules

QWaitCondition Class Reference
[QtCore module]

The QWaitCondition class provides a condition variable for synchronizing threads. More...

Methods

  • __init__ (self)
  • bool wait (self, QMutex mutex, int msecs = ULONG_MAX)
  • bool wait (self, QReadWriteLock readWriteLock, int msecs = ULONG_MAX)
  • wakeAll (self)
  • wakeOne (self)

Detailed Description

The QWaitCondition class provides a condition variable for synchronizing threads.

QWaitCondition allows a thread to tell other threads that some sort of condition has been met. One or many threads can block waiting for a QWaitCondition to set a condition with wakeOne() or wakeAll(). Use wakeOne() to wake one randomly selected condition or wakeAll() to wake them all.

For example, let's suppose that we have three tasks that should be performed whenever the user presses a key. Each task could be split into a thread, each of which would have a run() body like this:

 forever {
     mutex.lock();
     keyPressed.wait(&mutex);
     do_something();
     mutex.unlock();
 }

Here, the keyPressed variable is a global variable of type QWaitCondition.

A fourth thread would read key presses and wake the other three threads up every time it receives one, like this:

 forever {
     getchar();
     keyPressed.wakeAll();
 }

The order in which the three threads are woken up is undefined. Also, if some of the threads are still in do_something() when the key is pressed, they won't be woken up (since they're not waiting on the condition variable) and so the task will not be performed for that key press. This issue can be solved using a counter and a QMutex to guard it. For example, here's the new code for the worker threads:

 forever {
     mutex.lock();
     keyPressed.wait(&mutex);
     ++count;
     mutex.unlock();

     do_something();

     mutex.lock();
     --count;
     mutex.unlock();
 }

Here's the code for the fourth thread:

 forever {
     getchar();

     mutex.lock();
     // Sleep until there are no busy worker threads
     while (count > 0) {
         mutex.unlock();
         sleep(1);
         mutex.lock();
     }
     keyPressed.wakeAll();
     mutex.unlock();
 }

The mutex is necessary because the results of two threads attempting to change the value of the same variable simultaneously are unpredictable.

Wait conditions are a powerful thread synchronization primitive. The Wait Conditions example shows how to use QWaitCondition as an alternative to QSemaphore for controlling access to a circular buffer shared by a producer thread and a consumer thread.


Method Documentation

QWaitCondition.__init__ (self)

Constructs a new wait condition object.

bool QWaitCondition.wait (self, QMutex mutex, int msecs = ULONG_MAX)

Releases the locked mutex and waits on the wait condition. The mutex must be initially locked by the calling thread. If mutex is not in a locked state, this function returns immediately. If mutex is a recursive mutex, this function returns immediately. The mutex will be unlocked, and the calling thread will block until either of these conditions is met:

  • Another thread signals it using wakeOne() or wakeAll(). This function will return true in this case.
  • time milliseconds has elapsed. If time is ULONG_MAX (the default), then the wait will never timeout (the event must be signalled). This function will return false if the wait timed out.

The mutex will be returned to the same locked state. This function is provided to allow the atomic transition from the locked state to the wait state.

See also wakeOne() and wakeAll().

bool QWaitCondition.wait (self, QReadWriteLock readWriteLock, int msecs = ULONG_MAX)

Releases the locked readWriteLock and waits on the wait condition. The readWriteLock must be initially locked by the calling thread. If readWriteLock is not in a locked state, this function returns immediately. The readWriteLock must not be locked recursively, otherwise this function will not release the lock properly. The readWriteLock will be unlocked, and the calling thread will block until either of these conditions is met:

  • Another thread signals it using wakeOne() or wakeAll(). This function will return true in this case.
  • time milliseconds has elapsed. If time is ULONG_MAX (the default), then the wait will never timeout (the event must be signalled). This function will return false if the wait timed out.

The readWriteLock will be returned to the same locked state. This function is provided to allow the atomic transition from the locked state to the wait state.

This function was introduced in Qt 4.4.

See also wakeOne() and wakeAll().

QWaitCondition.wakeAll (self)

Wakes all threads waiting on the wait condition. The order in which the threads are woken up depends on the operating system's scheduling policies and cannot be controlled or predicted.

See also wakeOne().

QWaitCondition.wakeOne (self)

Wakes one thread waiting on the wait condition. The thread that is woken up depends on the operating system's scheduling policies, and cannot be controlled or predicted.

If you want to wake up a specific thread, the solution is typically to use different wait conditions and have different threads wait on different conditions.

See also wakeAll().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebdatabase.html0000644000076500000240000001605112536324522020775 0ustar philstaff00000000000000 QWebDatabase Class Reference
  Home · All Classes · Modules

QWebDatabase Class Reference
[QtWebKit module]

The QWebDatabase class provides access to HTML 5 databases created with JavaScript. More...

Methods

Static Methods


Detailed Description

The QWebDatabase class provides access to HTML 5 databases created with JavaScript.

The upcoming HTML 5 standard includes support for SQL databases that web sites can create and access on a local computer through JavaScript. QWebDatabase is the C++ interface to these databases.

Databases are grouped together in security origins. To get access to all databases defined by a security origin, use QWebSecurityOrigin.databases(). Each database has an internal name(), as well as a user-friendly name, provided by displayName(). These names are specified when creating the database in the JavaScript code.

WebKit uses SQLite to create and access the local SQL databases. The location of the database file in the local file system is returned by fileName(). You can access the database directly through the QtSql database module.

For each database the web site can define an expectedSize(). The current size of the database in bytes is returned by size().

For more information refer to the HTML5 Web SQL Database Draft Standard.


Method Documentation

QWebDatabase.__init__ (self, QWebDatabase other)

Constructs a web database from other.

QString QWebDatabase.displayName (self)

Returns the name of the database in a format that is suitable for display to the user.

int QWebDatabase.expectedSize (self)

Returns the expected size of the database in bytes as defined by the web author.

QString QWebDatabase.fileName (self)

Returns the file name of the web database.

The name can be used to access the database through the QtSql database module, for example:

 QWebDatabase webdb = ...
 QSqlDatabase sqldb = QSqlDatabase.addDatabase("QSQLITE", "myconnection");
 sqldb.setDatabaseName(webdb.fileName());
 if (sqldb.open()) {
     QStringList tables = sqldb.tables();
     ...
 }

Note: Concurrent access to a database from multiple threads or processes is not very efficient because SQLite is used as WebKit's database backend.

QString QWebDatabase.name (self)

Returns the name of the database.

QWebSecurityOrigin QWebDatabase.origin (self)

Returns the databases's security origin.

QWebDatabase.removeAllDatabases ()

Deletes all web databases in the configured offline storage path.

This function was introduced in Qt 4.6.

See also QWebSettings.setOfflineStoragePath().

QWebDatabase.removeDatabase (QWebDatabase db)

Removes the database db from its security origin. All data stored in the database db will be destroyed.

int QWebDatabase.size (self)

Returns the current size of the database in bytes.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebelement.html0000644000076500000240000012342612536324522020667 0ustar philstaff00000000000000 QWebElement Class Reference
  Home · All Classes · Modules

QWebElement Class Reference
[
QtWebKit module]

The QWebElement class provides convenient access to DOM elements in a QWebFrame. More...

Types

Methods

Special Methods

  • bool __eq__ (self, QWebElement o)
  • bool __ne__ (self, QWebElement o)

Detailed Description

The QWebElement class provides convenient access to DOM elements in a QWebFrame.

A QWebElement object allows easy access to the document model, represented by a tree-like structure of DOM elements. The root of the tree is called the document element and can be accessed using QWebFrame.documentElement().

Specific elements can be accessed using findAll() and findFirst(). These elements are identified using CSS selectors. The code snippet below demonstrates the use of findAll().

     QWebElement document = frame->documentElement();
     /* Assume the document has the following structure:

        <p class=intro>
          <span>Intro</span>
          <span>Snippets</span>
        </p>
        <p>
          <span>Content</span>
          <span>Here</span>
        </p>
     */

     QWebElementCollection allSpans = document.findAll("span");
     QWebElementCollection introSpans = document.findAll("p.intro span");

The first list contains all span elements in the document. The second list contains span elements that are children of p, classified with intro.

Using findFirst() is more efficient than calling findAll(), and extracting the first element only in the list returned.

Alternatively you can traverse the document manually using firstChild() and nextSibling():

     frame->setHtml("<html><body><p>First Paragraph</p><p>Second Paragraph</p></body></html>");
     QWebElement doc = frame->documentElement();
     QWebElement body = doc.firstChild();
     QWebElement firstParagraph = body.firstChild();
     QWebElement secondParagraph = firstParagraph.nextSibling();

Individual elements can be inspected or changed using methods such as attribute() or setAttribute(). For examle, to capture the user's input in a text field for later use (auto-completion), a browser could do something like this:

     QWebElement firstTextInput = document.findFirst("input[type=text]");
     QString storedText = firstTextInput.attribute("value");

When the same page is later revisited, the browser can fill in the text field automatically by modifying the value attribute of the input element:

     QWebElement firstTextInput = document.findFirst("input[type=text]");
     textInput.setAttribute("value", storedText);

Another use case is to emulate a click event on an element. The following code snippet demonstrates how to call the JavaScript DOM method click() of a submit button:

     QWebElement document = frame->documentElement();
     /* Assume that the document has the following structure:

         <form name="myform" action="submit_form.asp" method="get">
             <input type="text" name="myfield">
             <input type="submit" value="Submit">
         </form>

      */

     QWebElement button = document.findFirst("input[type=submit]");
     button.evaluateJavaScript("this.click()");

The underlying content of QWebElement is explicitly shared. Creating a copy of a QWebElement does not create a copy of the content. Instead, both instances point to the same element.

The contents of child elements can be converted to plain text with toPlainText(); to XHTML using toInnerXml(). To include the element's tag in the output, use toOuterXml().

It is possible to replace the contents of child elements using setPlainText() and setInnerXml(). To replace the element itself and its contents, use setOuterXml().

Examples

The DOM Traversal Example shows one way to traverse documents in a running example.

The Simple Selector Example can be used to experiment with the searching features of this class and provides sample code you can start working with.


Type Documentation

QWebElement.StyleResolveStrategy

This enum describes how QWebElement's styleProperty resolves the given property name.

Constant Value Description
QWebElement.InlineStyle 0 Return the property value as it is defined in the element, without respecting style inheritance and other CSS rules.
QWebElement.CascadedStyle 1 The property's value is determined using the inheritance and importance rules defined in the document's stylesheet.
QWebElement.ComputedStyle 2 The property's value is the absolute value of the style property resolved from the environment.

Method Documentation

QWebElement.__init__ (self)

Constructs a null web element.

QWebElement.__init__ (self, QWebElement)

Constructs a copy of other.

QWebElement.addClass (self, QString name)

Adds the specified class with the given name to the element.

QWebElement.appendInside (self, QString markup)

Appends the result of parsing markup as the element's last child.

Calling this function on a null element does nothing.

See also prependInside(), prependOutside(), and appendOutside().

QWebElement.appendInside (self, QWebElement element)

Appends the given element as the element's last child.

If element is the child of another element, it is re-parented to this element. If element is a child of this element, then its position in the list of children is changed.

Calling this function on a null element does nothing.

See also prependInside(), prependOutside(), and appendOutside().

QWebElement.appendOutside (self, QString markup)

Inserts the result of parsing markup after this element.

Calling this function on a null element does nothing.

See also appendInside(), prependInside(), and prependOutside().

QWebElement.appendOutside (self, QWebElement element)

Inserts the given element after this element.

If element is the child of another element, it is re-parented to the parent of this element.

Calling this function on a null element does nothing.

See also appendInside(), prependInside(), and prependOutside().

QString QWebElement.attribute (self, QString name, QString defaultValue = QString())

Returns the attribute with the given name. If the attribute does not exist, defaultValue is returned.

See also setAttribute(), setAttributeNS(), and attributeNS().

QStringList QWebElement.attributeNames (self, QString namespaceUri = QString())

Return the list of attributes for the namespace given as namespaceUri.

See also attribute() and setAttribute().

QString QWebElement.attributeNS (self, QString namespaceUri, QString name, QString defaultValue = QString())

Returns the attribute with the given name in namespaceUri. If the attribute does not exist, defaultValue is returned.

See also setAttributeNS(), setAttribute(), and attribute().

QStringList QWebElement.classes (self)

Returns the list of classes of this element.

QWebElement QWebElement.clone (self)

Returns a clone of this element.

The clone may be inserted at any point in the document.

See also appendInside(), prependInside(), prependOutside(), and appendOutside().

QWebElement QWebElement.document (self)

Returns the document which this element belongs to.

QWebElement.encloseContentsWith (self, QWebElement element)

Encloses the contents of this element with element. This element becomes the child of the deepest descendant within element.

### illustration

See also encloseWith().

QWebElement.encloseContentsWith (self, QString markup)

Encloses the contents of this element with the result of parsing markup. This element becomes the child of the deepest descendant within markup.

See also encloseWith().

QWebElement.encloseWith (self, QString markup)

Encloses this element with the result of parsing markup. This element becomes the child of the deepest descendant within markup.

See also replace().

QWebElement.encloseWith (self, QWebElement element)

Encloses this element with element. This element becomes the child of the deepest descendant within element.

See also replace().

QVariant QWebElement.evaluateJavaScript (self, QString scriptSource)

Executes scriptSource with this element as this object.

QWebElementCollection QWebElement.findAll (self, QString selectorQuery)

Returns a new list of child elements matching the given CSS selector selectorQuery. If there are no matching elements, an empty list is returned.

Standard CSS2 selector syntax is used for the query.

Note: This search is performed recursively.

See also findFirst().

QWebElement QWebElement.findFirst (self, QString selectorQuery)

Returns the first child element that matches the given CSS selector selectorQuery.

Standard CSS2 selector syntax is used for the query.

Note: This search is performed recursively.

See also findAll().

QWebElement QWebElement.firstChild (self)

Returns the element's first child.

See also lastChild(), previousSibling(), and nextSibling().

QRect QWebElement.geometry (self)

Returns the geometry of this element, relative to its containing frame.

See also tagName().

bool QWebElement.hasAttribute (self, QString name)

Returns true if this element has an attribute with the given name; otherwise returns false.

See also attribute() and setAttribute().

bool QWebElement.hasAttributeNS (self, QString namespaceUri, QString name)

Returns true if this element has an attribute with the given name, in namespaceUri; otherwise returns false.

See also attributeNS() and setAttributeNS().

bool QWebElement.hasAttributes (self)

Returns true if the element has any attributes defined; otherwise returns false;

See also attribute() and setAttribute().

bool QWebElement.hasClass (self, QString name)

Returns true if this element has a class with the given name; otherwise returns false.

bool QWebElement.hasFocus (self)

Returns true if the element has keyboard input focus; otherwise, returns false

See also setFocus().

bool QWebElement.isNull (self)

Returns true if the element is a null element; otherwise returns false.

QWebElement QWebElement.lastChild (self)

Returns the element's last child.

See also firstChild(), previousSibling(), and nextSibling().

QString QWebElement.localName (self)

Returns the local name of the element. If the element does not use namespaces, an empty string is returned.

QString QWebElement.namespaceUri (self)

Returns the namespace URI of this element. If the element has no namespace URI, an empty string is returned.

QWebElement QWebElement.nextSibling (self)

Returns the element's next sibling.

See also firstChild(), previousSibling(), and lastChild().

QWebElement QWebElement.parent (self)

Returns the parent element of this elemen. If this element is the root document element, a null element is returned.

QString QWebElement.prefix (self)

Returns the namespace prefix of the element. If the element has no namespace prefix, empty string is returned.

QWebElement.prependInside (self, QString markup)

Prepends the result of parsing markup as the element's first child.

Calling this function on a null element does nothing.

See also appendInside(), prependOutside(), and appendOutside().

QWebElement.prependInside (self, QWebElement element)

Prepends element as the element's first child.

If element is the child of another element, it is re-parented to this element. If element is a child of this element, then its position in the list of children is changed.

Calling this function on a null element does nothing.

See also appendInside(), prependOutside(), and appendOutside().

QWebElement.prependOutside (self, QString markup)

Inserts the result of parsing markup before this element.

Calling this function on a null element does nothing.

See also appendInside(), prependInside(), and appendOutside().

QWebElement.prependOutside (self, QWebElement element)

Inserts the given element before this element.

If element is the child of another element, it is re-parented to the parent of this element.

Calling this function on a null element does nothing.

See also appendInside(), prependInside(), and appendOutside().

QWebElement QWebElement.previousSibling (self)

Returns the element's previous sibling.

See also firstChild(), nextSibling(), and lastChild().

QWebElement.removeAllChildren (self)

Removes all children from this element.

See also removeFromDocument() and takeFromDocument().

QWebElement.removeAttribute (self, QString name)

Removes the attribute with the given name from this element.

See also attribute(), setAttribute(), and hasAttribute().

QWebElement.removeAttributeNS (self, QString namespaceUri, QString name)

Removes the attribute with the given name, in namespaceUri, from this element.

See also attributeNS(), setAttributeNS(), and hasAttributeNS().

QWebElement.removeClass (self, QString name)

Removes the specified class with the given name from the element.

QWebElement.removeFromDocument (self)

Removes this element from the document and makes it a null element.

See also removeAllChildren() and takeFromDocument().

QWebElement.render (self, QPainter painter)

Render the element into painter .

QWebElement.render (self, QPainter painter, QRect clip)

Render the element into painter clipping to clip.

QWebElement.replace (self, QString markup)

Replaces this element with the result of parsing markup.

This method will not replace the <html>, <head> or <body> elements.

See also encloseWith().

QWebElement.replace (self, QWebElement element)

Replaces this element with element.

This method will not replace the <html>, <head> or <body> elements.

See also encloseWith().

QWebElement.setAttribute (self, QString name, QString value)

Adds an attribute with the given name and value. If an attribute with the same name exists, its value is replaced by value.

See also attribute(), attributeNS(), and setAttributeNS().

QWebElement.setAttributeNS (self, QString namespaceUri, QString name, QString value)

Adds an attribute with the given name in namespaceUri with value. If an attribute with the same name exists, its value is replaced by value.

See also attributeNS(), attribute(), and setAttribute().

QWebElement.setFocus (self)

Gives keyboard input focus to this element

See also hasFocus().

QWebElement.setInnerXml (self, QString markup)

Replaces the contents of this element with markup. The string may contain HTML or XML tags, which is parsed and formatted before insertion into the document.

Note: This is currently implemented for (X)HTML elements only.

See also toInnerXml(), toOuterXml(), and setOuterXml().

QWebElement.setOuterXml (self, QString markup)

Replaces the contents of this element as well as its own tag with markup. The string may contain HTML or XML tags, which is parsed and formatted before insertion into the document.

Note: This is currently only implemented for (X)HTML elements.

See also toOuterXml(), toInnerXml(), and setInnerXml().

QWebElement.setPlainText (self, QString text)

Replaces the existing content of this element with text.

This is equivalent to setting the HTML innerText property.

See also toPlainText().

QWebElement.setStyleProperty (self, QString name, QString value)

Sets the value of the inline style with the given name to value.

Setting a value, does not necessarily mean that it will become the applied value, due to the fact that the style property's value might have been set earlier with a higher priority in external or embedded style declarations.

In order to ensure that the value will be applied, you may have to append "!important" to the value.

See also styleProperty().

QString QWebElement.styleProperty (self, QString name, StyleResolveStrategy strategy)

Returns the value of the style with the given name using the specified strategy. If a style with name does not exist, an empty string is returned.

In CSS, the cascading part depends on which CSS rule has priority and is thus applied. Generally, the last defined rule has priority. Thus, an inline style rule has priority over an embedded block style rule, which in return has priority over an external style rule.

If the "!important" declaration is set on one of those, the declaration receives highest priority, unless other declarations also use the "!important" declaration. Then, the last "!important" declaration takes predecence.

See also setStyleProperty().

QString QWebElement.tagName (self)

Returns the tag name of this element.

See also geometry().

QWebElement QWebElement.takeFromDocument (self)

Removes this element from the document and returns a reference to it.

The element is still valid after removal, and can be inserted into other parts of the document.

See also removeAllChildren() and removeFromDocument().

QWebElement.toggleClass (self, QString name)

Adds the specified class with the given name if it is not present. If the class is already present, it will be removed.

QString QWebElement.toInnerXml (self)

Returns the XML content between the element's start and end tags.

Note: This is currently implemented for (X)HTML elements only.

Note: The format of the markup returned will obey the namespace of the document containing the element. This means the return value will obey XML formatting rules, such as self-closing tags, only if the document is 'text/xhtml+xml'.

See also setInnerXml(), setOuterXml(), and toOuterXml().

QString QWebElement.toOuterXml (self)

Returns this element converted to XML, including the start and the end tags as well as its attributes.

Note: This is currently implemented for (X)HTML elements only.

Note: The format of the markup returned will obey the namespace of the document containing the element. This means the return value will obey XML formatting rules, such as self-closing tags, only if the document is 'text/xhtml+xml'.

See also setOuterXml(), setInnerXml(), and toInnerXml().

QString QWebElement.toPlainText (self)

Returns the text between the start and the end tag of this element.

This is equivalent to reading the HTML innerText property.

See also setPlainText().

QWebFrame QWebElement.webFrame (self)

Returns the web frame which this element is a part of. If the element is a null element, null is returned.

bool QWebElement.__eq__ (self, QWebElement o)

bool QWebElement.__ne__ (self, QWebElement o)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebelementcollection.html0000644000076500000240000001744512536324522022746 0ustar philstaff00000000000000 QWebElementCollection Class Reference
  Home · All Classes · Modules

QWebElementCollection Class Reference
[QtWebKit module]

The QWebElementCollection class represents a collection of web elements. More...

Methods

  • __init__ (self)
  • __init__ (self, QWebElement contextElement, QString query)
  • __init__ (self, QWebElementCollection)
  • append (self, QWebElementCollection collection)
  • QWebElement at (self, int i)
  • int count (self)
  • QWebElement first (self)
  • QWebElement last (self)
  • list-of-QWebElement toList (self)

Special Methods

  • QWebElementCollection __add__ (self, QWebElementCollection other)
  • QWebElement __getitem__ (self, int i)
  • QWebElementCollection __iadd__ (self, QWebElementCollection other)
  • __len__ (self)

Detailed Description

The QWebElementCollection class represents a collection of web elements.

Elements in a document can be selected using QWebElement.findAll() or using the QWebElement constructor. The collection is composed by choosing all elements in the document that match a specified CSS selector expression.

The number of selected elements is provided through the count() property. Individual elements can be retrieved by index using at().

It is also possible to iterate through all elements in the collection using Qt's foreach macro:

 QWebElementCollection collection = document.findAll("p");
 foreach (QWebElement paraElement, collection) {
     ...
 }

Method Documentation

QWebElementCollection.__init__ (self)

Constructs an empty collection.

QWebElementCollection.__init__ (self, QWebElement contextElement, QString query)

Constructs a collection of elements from the list of child elements of contextElement that match the specified CSS selector query.

QWebElementCollection.__init__ (self, QWebElementCollection)

Constructs a copy of other.

QWebElementCollection.append (self, QWebElementCollection collection)

Extends the collection by appending all items of other.

The resulting collection may include duplicate elements.

See also operator+=().

QWebElement QWebElementCollection.at (self, int i)

Returns the element at index position i in the collection.

int QWebElementCollection.count (self)

Returns the number of elements in the collection.

QWebElement QWebElementCollection.first (self)

Returns the first element in the collection.

See also last(), operator[](), at(), and count().

QWebElement QWebElementCollection.last (self)

Returns the last element in the collection.

See also first(), operator[](), at(), and count().

list-of-QWebElement QWebElementCollection.toList (self)

Returns a QList object with the elements contained in this collection.

QWebElementCollection QWebElementCollection.__add__ (self, QWebElementCollection other)

QWebElement QWebElementCollection.__getitem__ (self, int i)

QWebElementCollection QWebElementCollection.__iadd__ (self, QWebElementCollection other)

QWebElementCollection.__len__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebframe.html0000644000076500000240000010620412536324522020323 0ustar philstaff00000000000000 QWebFrame Class Reference
  Home · All Classes · Modules

QWebFrame Class Reference
[
QtWebKit module]

The QWebFrame class represents a frame in a web page. More...

Inherits QObject.

Types

  • enum RenderLayer { ContentsLayer, ScrollBarLayer, PanIconLayer, AllLayers }

Methods

Qt Signals


Detailed Description

The QWebFrame class represents a frame in a web page.

QWebFrame represents a frame inside a web page. Each QWebPage object contains at least one frame, the main frame, obtained using QWebPage.mainFrame(). Additional frames will be created for HTML <frame> or <iframe> elements.

A frame can be loaded using load() or setUrl(). Alternatively, if you have the HTML content readily available, you can use setHtml() instead.

The page() function returns a pointer to the web page object. See Elements of QWebView for an explanation of how web frames are related to a web page and web view.

The QWebFrame class also offers methods to retrieve both the URL currently loaded by the frame (see url()) as well as the URL originally requested to be loaded (see requestedUrl()). These methods make possible the retrieval of the URL before and after a DNS resolution or a redirection occurs during the load process. The requestedUrl() also matches to the URL added to the frame history (QWebHistory) if load is successful.

The title of an HTML frame can be accessed with the title() property. Additionally, a frame may also specify an icon, which can be accessed using the icon() property. If the title or the icon changes, the corresponding titleChanged() and iconChanged() signals will be emitted. The zoomFactor() property can be used to change the overall size of the content displayed in the frame.

QWebFrame objects are created and controlled by the web page. You can connect to the web page's frameCreated() signal to be notified when a new frame is created.

There are multiple ways to programmatically examine the contents of a frame. The hitTestContent() function can be used to find elements by coordinate. For access to the underlying DOM tree, there is documentElement(), findAllElements() and findFirstElement().

A QWebFrame can be printed onto a QPrinter using the print_() function. This function is marked as a slot and can be conveniently connected to QPrintPreviewDialog's paintRequested() signal.


Type Documentation

QWebFrame.RenderLayer

This enum describes the layers available for rendering using render(). The layers can be OR-ed together from the following list:

Constant Value Description
QWebFrame.ContentsLayer 0x10 The web content of the frame
QWebFrame.ScrollBarLayer 0x20 The scrollbars of the frame
QWebFrame.PanIconLayer 0x40 The icon used when panning the frame
QWebFrame.AllLayers 0xff Includes all the above layers

Method Documentation

QWebFrame.addToJavaScriptWindowObject (self, QString name, QObject object)

Make object available under name from within the frame's JavaScript context. The object will be inserted as a child of the frame's window object.

Qt properties will be exposed as JavaScript properties and slots as JavaScript methods. The interaction between C++ and JavaScript is explained in the documentation of the QtWebKit bridge.

If you want to ensure that your QObjects remain accessible after loading a new URL, you should add them in a slot connected to the javaScriptWindowObjectCleared() signal.

If Javascript is not enabled for this page, then this method does nothing.

The object will never be explicitly deleted by QtWebKit.

QUrl QWebFrame.baseUrl (self)

list-of-QWebFrame QWebFrame.childFrames (self)

Returns a list of all frames that are direct children of this frame.

See also parentFrame().

QSize QWebFrame.contentsSize (self)

QWebElement QWebFrame.documentElement (self)

Returns the document element of this frame.

The document element provides access to the entire structured content of the frame.

This function was introduced in Qt 4.6.

QVariant QWebFrame.evaluateJavaScript (self, QString scriptSource)

This method is also a Qt slot with the C++ signature QVariant evaluateJavaScript(const QString&).

Evaluates the JavaScript defined by scriptSource using this frame as context and returns the result of the last executed statement.

See also addToJavaScriptWindowObject() and javaScriptWindowObjectCleared().

bool QWebFrame.event (self, QEvent)

Reimplemented from QObject.event().

QWebElementCollection QWebFrame.findAllElements (self, QString selectorQuery)

Returns a new list of elements matching the given CSS selector selectorQuery. If there are no matching elements, an empty list is returned.

Standard CSS2 selector syntax is used for the query.

This function was introduced in Qt 4.6.

See also QWebElement.findAll().

QWebElement QWebFrame.findFirstElement (self, QString selectorQuery)

Returns the first element in the frame's document that matches the given CSS selector selectorQuery. If there is no matching element, a null element is returned.

Standard CSS2 selector syntax is used for the query.

This function was introduced in Qt 4.6.

See also QWebElement.findFirst().

QString QWebFrame.frameName (self)

The name of this frame as defined by the parent frame.

QRect QWebFrame.geometry (self)

Return the geometry of the frame relative to it's parent frame.

bool QWebFrame.hasFocus (self)

QWebHitTestResult QWebFrame.hitTestContent (self, QPoint pos)

Performs a hit test on the frame contents at the given position pos and returns the hit test result.

QIcon QWebFrame.icon (self)

QWebFrame.load (self, QUrl url)

Loads url into this frame.

Note: The view remains the same until enough data has arrived to display the new url.

See also setUrl(), setHtml(), and setContent().

QWebFrame.load (self, QNetworkRequest request, QNetworkAccessManager.Operation operation = QNetworkAccessManager.GetOperation, QByteArray body = QByteArray())

Loads a network request, req, into this frame, using the method specified in operation.

body is optional and is only used for POST operations.

Note: The view remains the same until enough data has arrived to display the new content.

See also setUrl().

dict-of-QString-list-of-QString QWebFrame.metaData (self)

Returns the meta data in this frame as a QMultiMap

The meta data consists of the name and content attributes of the of the <meta> tags in the HTML document.

For example:

 <html>
     <head>
         <meta name="description" content="This document is a tutorial about Qt development">
         <meta name="keywords" content="Qt, WebKit, Programming">
     </head>
     ...
 </html>

Given the above HTML code the metaData() function will return a map with two entries:

Key Value
"description" "This document is a tutorial about Qt development"
"keywords" "Qt, WebKit, Programming"

This function returns a multi map to support multiple meta tags with the same attribute name.

This function was introduced in Qt 4.5.

QWebPage QWebFrame.page (self)

The web page that contains this frame.

See also pageChanged().

QWebFrame QWebFrame.parentFrame (self)

Returns the parent frame of this frame, or 0 if the frame is the web pages main frame.

This is equivalent to qobject_cast<QWebFrame*>(frame->parent()).

See also childFrames().

QPoint QWebFrame.pos (self)

Returns the position of the frame relative to it's parent frame.

QWebFrame.print_ (self, QPrinter printer)

This method is also a Qt slot with the C++ signature void print(QPrinter*) const.

Prints the frame to the given printer.

See also render().

QWebFrame.render (self, QPainter painter, QRegion clip)

Render the frame into painter.

QWebFrame.render (self, QPainter painter)

Render the frame into painter clipping to clip.

QWebFrame.render (self, QPainter, RenderLayer layer, QRegion clip = QRegion())

Render the layer of the frame using painter clipping to clip.

This function was introduced in Qt 4.6.

See also print_().

QString QWebFrame.renderTreeDump (self)

Returns a dump of the rendering tree. This is mainly useful for debugging html.

QUrl QWebFrame.requestedUrl (self)

QWebFrame.scroll (self, int, int)

Scrolls the frame dx pixels to the right and dy pixels downward. Both dx and dy may be negative.

This function was introduced in Qt 4.5.

See also QWebFrame.scrollPosition.

QRect QWebFrame.scrollBarGeometry (self, Qt.Orientation orientation)

Returns the geometry for the scrollbar with orientation orientation.

If the scrollbar does not exist an empty rect is returned.

This function was introduced in Qt 4.6.

int QWebFrame.scrollBarMaximum (self, Qt.Orientation orientation)

Returns the maximum value for the scrollbar with orientation orientation, or 0 if no scrollbar is found for orientation.

See also scrollBarMinimum().

int QWebFrame.scrollBarMinimum (self, Qt.Orientation orientation)

Returns the minimum value for the scrollbar with orientation orientation.

The minimum value is always 0.

See also scrollBarMaximum().

Qt.ScrollBarPolicy QWebFrame.scrollBarPolicy (self, Qt.Orientation orientation)

Returns the scrollbar policy for the scrollbar defined by orientation.

See also setScrollBarPolicy().

int QWebFrame.scrollBarValue (self, Qt.Orientation orientation)

Returns the current value for the scrollbar with orientation orientation, or 0 if no scrollbar is found for orientation.

See also setScrollBarValue(), scrollBarMinimum(), and scrollBarMaximum().

QPoint QWebFrame.scrollPosition (self)

QWebFrame.scrollToAnchor (self, QString anchor)

Scrolls the frame to the given anchor name.

This function was introduced in Qt 4.7.

QWebSecurityOrigin QWebFrame.securityOrigin (self)

Returns the frame's security origin.

This function was introduced in Qt 4.5.

QWebFrame.setContent (self, QByteArray data, QString mimeType = QString(), QUrl baseUrl = QUrl())

Sets the content of this frame to the specified content data. If the mimeType argument is empty it is currently assumed that the content is HTML but in future versions we may introduce auto-detection.

External objects referenced in the content are located relative to baseUrl.

The data is loaded immediately; external objects are loaded asynchronously.

Note: This method will not affect session or global history for the frame.

See also toHtml() and setHtml().

QWebFrame.setFocus (self)

Gives keyboard input focus to this frame.

This function was introduced in Qt 4.6.

See also hasFocus().

QWebFrame.setHtml (self, QString html, QUrl baseUrl = QUrl())

Sets the content of this frame to html. baseUrl is optional and used to resolve relative URLs in the document, such as referenced images or stylesheets.

The html is loaded immediately; external objects are loaded asynchronously.

If a script in the html runs longer than the default script timeout (currently 10 seconds), for example due to being blocked by a modal JavaScript alert dialog, this method will return as soon as possible after the timeout and any subsequent html will be loaded asynchronously.

When using this method WebKit assumes that external resources such as JavaScript programs or style sheets are encoded in UTF-8 unless otherwise specified. For example, the encoding of an external script can be specified through the charset attribute of the HTML script tag. It is also possible for the encoding to be specified by web server.

This is a convenience function equivalent to setContent(html, "text/html", baseUrl).

Note: This method will not affect session or global history for the frame.

Warning: This function works only for HTML, for other mime types (i.e. XHTML, SVG) setContent() should be used instead.

See also toHtml(), setContent(), and load().

QWebFrame.setScrollBarPolicy (self, Qt.Orientation orientation, Qt.ScrollBarPolicy policy)

Sets the scrollbar policy for the scrollbar defined by orientation to policy.

See also scrollBarPolicy().

QWebFrame.setScrollBarValue (self, Qt.Orientation orientation, int value)

Sets the current value for the scrollbar with orientation orientation.

The scrollbar forces the value to be within the legal range: minimum <= value <= maximum.

Changing the value also updates the thumb position.

See also scrollBarValue(), scrollBarMinimum(), and scrollBarMaximum().

QWebFrame.setScrollPosition (self, QPoint pos)

QWebFrame.setTextSizeMultiplier (self, float factor)

Sets the value of the multiplier used to scale the text in a Web frame to the factor specified.

See also textSizeMultiplier().

QWebFrame.setUrl (self, QUrl url)

QWebFrame.setZoomFactor (self, float factor)

float QWebFrame.textSizeMultiplier (self)

Returns the value of the multiplier used to scale the text in a Web frame.

See also setTextSizeMultiplier().

QString QWebFrame.title (self)

QString QWebFrame.toHtml (self)

Returns the frame's content as HTML, enclosed in HTML and BODY tags.

See also setHtml() and toPlainText().

QString QWebFrame.toPlainText (self)

Returns the content of this frame converted to plain text, completely stripped of all HTML formatting.

See also toHtml().

QUrl QWebFrame.url (self)

float QWebFrame.zoomFactor (self)


Qt Signal Documentation

void contentsSizeChanged (const QSize&)

This is the default overload of this signal.

This signal is emitted when the frame's contents size changes to size.

This function was introduced in Qt 4.6.

See also contentsSize().

void iconChanged ()

This is the default overload of this signal.

This signal is emitted when the icon ("favicon") associated with the frame has been loaded.

See also icon().

void initialLayoutCompleted ()

This is the default overload of this signal.

This signal is emitted when the frame is laid out the first time. This is the first time you will see contents displayed on the frame.

Note: A frame can be laid out multiple times.

void javaScriptWindowObjectCleared ()

This is the default overload of this signal.

This signal is emitted whenever the global window object of the JavaScript environment is cleared, e.g., before starting a new load.

If you intend to add QObjects to a QWebFrame using addToJavaScriptWindowObject(), you should add them in a slot connected to this signal. This ensures that your objects remain accessible when loading new URLs.

void loadFinished (bool)

This is the default overload of this signal.

This signal is emitted when a load of this frame is finished. ok will indicate whether the load was successful or any error occurred.

This function was introduced in Qt 4.6.

See also loadStarted().

void loadStarted ()

This is the default overload of this signal.

This signal is emitted when a new load of this frame is started.

This function was introduced in Qt 4.6.

See also loadFinished().

void pageChanged ()

This is the default overload of this signal.

This signal is emitted when this frame has been moved to a different QWebPage.

This function was introduced in Qt 4.7.

See also page().

void titleChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the title of the frame changes. The title string specifies the new title.

See also title().

void urlChanged (const QUrl&)

This is the default overload of this signal.

This signal is emitted with the URL of the frame when the frame's title is received. The new URL is specified by url.

See also url().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebhistory.html0000644000076500000240000002374112536324522020736 0ustar philstaff00000000000000 QWebHistory Class Reference
  Home · All Classes · Modules

QWebHistory Class Reference
[QtWebKit module]

The QWebHistory class represents the history of a QWebPage More...

Methods

Special Methods


Detailed Description

The QWebHistory class represents the history of a QWebPage

Each QWebPage instance contains a history of visited pages that can be accessed by QWebPage.history(). QWebHistory represents this history and makes it possible to navigate it.

The history uses the concept of a current item, dividing the pages visited into those that can be visited by navigating back and forward using the back() and forward() functions. The current item can be obtained by calling currentItem(), and an arbitrary item in the history can be made the current item by passing it to goToItem().

A list of items describing the pages that can be visited by going back can be obtained by calling the backItems() function; similarly, items describing the pages ahead of the current page can be obtained with the forwardItems() function. The total list of items is obtained with the items() function.

Just as with containers, functions are available to examine the history in terms of a list. Arbitrary items in the history can be obtained with itemAt(), the total number of items is given by count(), and the history can be cleared with the clear() function.

QWebHistory's state can be saved to a QDataStream using the >> operator and loaded by using the << operator.


Method Documentation

QWebHistory.back (self)

Set the current item to be the previous item in the history and goes to the corresponding page; i.e., goes back one history item.

See also forward() and goToItem().

QWebHistoryItem QWebHistory.backItem (self)

Returns the item before the current item in the history.

list-of-QWebHistoryItem QWebHistory.backItems (self, int maxItems)

Returns the list of items in the backwards history list. At most maxItems entries are returned.

See also forwardItems().

bool QWebHistory.canGoBack (self)

Returns true if there is an item preceding the current item in the history; otherwise returns false.

See also canGoForward().

bool QWebHistory.canGoForward (self)

Returns true if we have an item to go forward to; otherwise returns false.

See also canGoBack().

QWebHistory.clear (self)

Clears the history.

See also count() and items().

int QWebHistory.count (self)

Returns the total number of items in the history.

QWebHistoryItem QWebHistory.currentItem (self)

Returns the current item in the history.

int QWebHistory.currentItemIndex (self)

Returns the index of the current item in history.

This function was introduced in Qt 4.5.

QWebHistory.forward (self)

Sets the current item to be the next item in the history and goes to the corresponding page; i.e., goes forward one history item.

See also back() and goToItem().

QWebHistoryItem QWebHistory.forwardItem (self)

Returns the item after the current item in the history.

list-of-QWebHistoryItem QWebHistory.forwardItems (self, int maxItems)

Returns the list of items in the forward history list. At most maxItems entries are returned.

See also backItems().

QWebHistory.goToItem (self, QWebHistoryItem item)

Sets the current item to be the specified item in the history and goes to the page.

See also back() and forward().

QWebHistoryItem QWebHistory.itemAt (self, int i)

Returns the item at index i in the history.

list-of-QWebHistoryItem QWebHistory.items (self)

Returns a list of all items currently in the history.

See also count() and clear().

int QWebHistory.maximumItemCount (self)

Returns the maximum number of items in the history.

This function was introduced in Qt 4.5.

See also setMaximumItemCount().

QWebHistory.setMaximumItemCount (self, int count)

Sets the maximum number of items in the history to count.

This function was introduced in Qt 4.5.

See also maximumItemCount().

QWebHistory.__len__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebhistoryinterface.html0000644000076500000240000001300112536324522022603 0ustar philstaff00000000000000 QWebHistoryInterface Class Reference
  Home · All Classes · Modules

QWebHistoryInterface Class Reference
[
QtWebKit module]

The QWebHistoryInterface class provides an interface to implement link history. More...

Inherits QObject.

Methods

Static Methods


Detailed Description

The QWebHistoryInterface class provides an interface to implement link history.

The QWebHistoryInterface is an interface that can be used to keep track of visited links. It contains two pure virtual methods that are called by the WebKit engine: addHistoryEntry() is used to add urls that have been visited to the interface, while historyContains() is used to query whether the given url has been visited by the user. By default the QWebHistoryInterface is not set, so WebKit does not keep track of visited links.

Note: The history tracked by QWebHistoryInterface is not specific to an instance of QWebPage but applies to all pages.


Method Documentation

QWebHistoryInterface.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a new QWebHistoryInterface with parent parent.

QWebHistoryInterface.addHistoryEntry (self, QString url)

This method is abstract and should be reimplemented in any sub-class.

Called by WebKit to add another url to the list of visited pages.

QWebHistoryInterface QWebHistoryInterface.defaultInterface ()

Returns the default interface that will be used by WebKit. If no default interface has been set, WebKit will not keep track of visited links and a null pointer will be returned.

See also setDefaultInterface().

bool QWebHistoryInterface.historyContains (self, QString url)

This method is abstract and should be reimplemented in any sub-class.

Called by the WebKit engine to query whether a certain url has been visited by the user already. Returns true if the url is part of the history of visited links; otherwise returns false.

QWebHistoryInterface.setDefaultInterface (QWebHistoryInterface defaultInterface)

Sets a new default interface, defaultInterface, that will be used by all of WebKit to keep track of visited links.

If an interface without a parent has already been set, the old interface will be deleted. When the application exists QWebHistoryInterface will automatically delete the defaultInterface if it does not have a parent.

See also defaultInterface().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebhistoryitem.html0000644000076500000240000001631512536324522021614 0ustar philstaff00000000000000 QWebHistoryItem Class Reference
  Home · All Classes · Modules

QWebHistoryItem Class Reference
[QtWebKit module]

The QWebHistoryItem class represents one item in the history of a QWebPage More...

Methods


Detailed Description

The QWebHistoryItem class represents one item in the history of a QWebPage

Each QWebHistoryItem instance represents an entry in the history stack of a Web page, containing information about the page, its location, and when it was last visited.

The following table shows the properties of the page held by the history item, and the functions used to access them.

Function Description
title() The page title.
url() The location of the page.
originalUrl() The URL used to access the page.
lastVisited() The date and time of the user's last visit to the page.
icon() The icon associated with the page that was provided by the server.
userData() The user specific data that was stored with the history item.

Note: QWebHistoryItem objects are value based, but explicitly shared. Changing a QWebHistoryItem instance by calling setUserData() will change all copies of that instance.


Method Documentation

QWebHistoryItem.__init__ (self, QWebHistoryItem other)

Constructs a history item from other. The new item and other will share their data, and modifying either this item or other will modify both instances.

QIcon QWebHistoryItem.icon (self)

Returns the icon associated with the history item.

See also title(), url(), and lastVisited().

bool QWebHistoryItem.isValid (self)

Returns whether this is a valid history item.

This function was introduced in Qt 4.5.

QDateTime QWebHistoryItem.lastVisited (self)

Returns the date and time that the page associated with the item was last visited.

See also title(), icon(), and url().

QUrl QWebHistoryItem.originalUrl (self)

Returns the original URL associated with the history item.

See also url().

QWebHistoryItem.setUserData (self, QVariant userData)

Stores user specific data userData with the history item.

Note: All copies of this item will be modified.

This function was introduced in Qt 4.5.

See also userData().

QString QWebHistoryItem.title (self)

Returns the title of the page associated with the history item.

See also icon(), url(), and lastVisited().

QUrl QWebHistoryItem.url (self)

Returns the URL associated with the history item.

See also originalUrl(), title(), and lastVisited().

QVariant QWebHistoryItem.userData (self)

Returns the user specific data that was stored with the history item.

This function was introduced in Qt 4.5.

See also setUserData().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebhittestresult.html0000644000076500000240000002002612536324522022151 0ustar philstaff00000000000000 QWebHitTestResult Class Reference
  Home · All Classes · Modules

QWebHitTestResult Class Reference
[QtWebKit module]

The QWebHitTestResult class provides information about the web page content after a hit test. More...

Methods


Detailed Description

The QWebHitTestResult class provides information about the web page content after a hit test.

QWebHitTestResult is returned by QWebFrame.hitTestContent() to provide information about the content of the web page at the specified position.


Method Documentation

QWebHitTestResult.__init__ (self)

Constructs a null hit test result.

QWebHitTestResult.__init__ (self, QWebHitTestResult other)

Constructs a hit test result from other.

QString QWebHitTestResult.alternateText (self)

Returns the alternate text of the element. This corresponds to the HTML alt attribute.

QRect QWebHitTestResult.boundingRect (self)

Returns the bounding rect of the element.

This function was introduced in Qt 4.5.

QWebElement QWebHitTestResult.element (self)

Returns the underlying DOM element as QWebElement.

This function was introduced in Qt 4.6.

QWebElement QWebHitTestResult.enclosingBlockElement (self)

Returns the block element that encloses the element hit.

A block element is an element that is rendered using the CSS "block" style. This includes for example text paragraphs.

This function was introduced in Qt 4.6.

QWebFrame QWebHitTestResult.frame (self)

Returns the frame the hit test was executed in.

QUrl QWebHitTestResult.imageUrl (self)

Returns the url of the image.

bool QWebHitTestResult.isContentEditable (self)

Returns true if the content is editable by the user; otherwise returns false.

bool QWebHitTestResult.isContentSelected (self)

Returns true if the content tested is part of the selection; otherwise returns false.

bool QWebHitTestResult.isNull (self)

Returns true if the hit test result is null; otherwise returns false.

QWebElement QWebHitTestResult.linkElement (self)

Returns the element that represents the link.

This function was introduced in Qt 4.6.

See also linkTargetFrame().

QWebFrame QWebHitTestResult.linkTargetFrame (self)

Returns the frame that will load the link if it is activated.

See also linkElement().

QString QWebHitTestResult.linkText (self)

Returns the text of the link.

QUrl QWebHitTestResult.linkTitle (self)

Returns the title of the link.

QUrl QWebHitTestResult.linkUrl (self)

Returns the url to which the link points to.

QPixmap QWebHitTestResult.pixmap (self)

Returns a QPixmap containing the image. A null pixmap is returned if the element being tested is not an image.

QPoint QWebHitTestResult.pos (self)

Returns the position where the hit test occured.

QString QWebHitTestResult.title (self)

Returns the title of the nearest enclosing HTML element.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebinspector.html0000644000076500000240000002057112536324522021241 0ustar philstaff00000000000000 QWebInspector Class Reference
  Home · All Classes · Modules

QWebInspector Class Reference
[
QtWebKit module]

The QWebInspector class allows the placement and control of a QWebPage's inspector. The inspector can display a page's hierarchy, its loading statistics and the current state of its individual elements. It is mostly used by web developers. More...

Inherits QWidget.

Methods


Detailed Description

The QWebInspector class allows the placement and control of a QWebPage's inspector. The inspector can display a page's hierarchy, its loading statistics and the current state of its individual elements. It is mostly used by web developers.

The QWebPage to be inspected must be specified using the setPage() method.

A typical use of QWebInspector follows:

     // ...
     QWebPage *page = new QWebPage;
     // ...

     QWebInspector *inspector = new QWebInspector;
     inspector->setPage(page);

A QWebInspector can be made visible either programmatically using setVisible(), or by the user through the attached QWebPage's context menu.

Note: A QWebInspector will display a blank widget if either:

Resources

This class acts mostly as a container and a controller for the inspector. Most of the resources needed by the inspector are owned by the associated QWebPage and are allocated the first time that:

  • an element is inspected
  • the QWebInspector is shown.

Inspector configuration persistence

The inspector allows the user to configure some options through its user interface (e.g. the resource tracking "Always enable" option). These settings will be persisted automatically by QtWebKit only if your application previously called QCoreApplication.setOrganizationName() and QCoreApplication.setApplicationName(). See QSettings's default constructor documentation for an explanation of why this is necessary.


Method Documentation

QWebInspector.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an unbound QWebInspector with parent as its parent.

QWebInspector.closeEvent (self, QCloseEvent event)

Reimplemented from QWidget.closeEvent().

bool QWebInspector.event (self, QEvent)

Reimplemented from QObject.event().

QWebInspector.hideEvent (self, QHideEvent event)

Reimplemented from QWidget.hideEvent().

QWebPage QWebInspector.page (self)

Returns the inspected QWebPage. If no web page is currently associated, a null pointer is returned.

See also setPage().

QWebInspector.resizeEvent (self, QResizeEvent event)

Reimplemented from QWidget.resizeEvent().

QWebInspector.setPage (self, QWebPage page)

Bind this inspector to the QWebPage to be inspected.

Notes:

  • There can only be one QWebInspector associated with a QWebPage and vice versa.
  • Calling this method with a null page will break the current association, if any.
  • If page is already associated to another QWebInspector, the association will be replaced and the previous QWebInspector will become unbound

See also page().

QWebInspector.showEvent (self, QShowEvent event)

Reimplemented from QWidget.showEvent().

QSize QWebInspector.sizeHint (self)

Reimplemented from QWidget.sizeHint().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpage-choosemultiplefilesextensionoption.html0000644000076500000240000000674312536324522027417 0ustar philstaff00000000000000 QWebPage.ChooseMultipleFilesExtensionOption Class Reference
  Home · All Classes · Modules

QWebPage.ChooseMultipleFilesExtensionOption Class Reference
[QtWebKit module]

The ChooseMultipleFilesExtensionOption class describes the option for the multiple files selection extension. More...

Inherits ExtensionOption.

Methods

Members


Detailed Description

The ChooseMultipleFilesExtensionOption class describes the option for the multiple files selection extension.

The ChooseMultipleFilesExtensionOption class holds the frame originating the request and the suggested filenames which might be provided.


Method Documentation

ChooseMultipleFilesExtensionOption.__init__ (self)

ChooseMultipleFilesExtensionOption.__init__ (self, ChooseMultipleFilesExtensionOption)


Member Documentation

QWebFrame parentFrame

This variable holds the frame in which the request originated.

QStringList suggestedFileNames

This variable holds the suggested filenames.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpage-choosemultiplefilesextensionreturn.html0000644000076500000240000000617112536324522027421 0ustar philstaff00000000000000 QWebPage.ChooseMultipleFilesExtensionReturn Class Reference
  Home · All Classes · Modules

QWebPage.ChooseMultipleFilesExtensionReturn Class Reference
[
QtWebKit module]

The ChooseMultipleFilesExtensionReturn describes the return value for the multiple files selection extension. More...

Inherits ExtensionReturn.

Methods

Members


Detailed Description

The ChooseMultipleFilesExtensionReturn describes the return value for the multiple files selection extension.

The ChooseMultipleFilesExtensionReturn class holds the filenames selected by the user when the extension is invoked.


Method Documentation

ChooseMultipleFilesExtensionReturn.__init__ (self)

ChooseMultipleFilesExtensionReturn.__init__ (self, ChooseMultipleFilesExtensionReturn)


Member Documentation

QStringList fileNames

This variable holds the selected filenames.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpage-errorpageextensionoption.html0000644000076500000240000001026212536324522025315 0ustar philstaff00000000000000 QWebPage.ErrorPageExtensionOption Class Reference
  Home · All Classes · Modules

QWebPage.ErrorPageExtensionOption Class Reference
[
QtWebKit module]

The ErrorPageExtensionOption class describes the option for the error page extension. More...

Inherits ExtensionOption.

Methods

Members


Detailed Description

The ErrorPageExtensionOption class describes the option for the error page extension.

The ErrorPageExtensionOption class holds the url for which an error occurred as well as the associated frame.

The error itself is reported by an error domain, the error code as well as errorString.


Method Documentation

ErrorPageExtensionOption.__init__ (self)

ErrorPageExtensionOption.__init__ (self, ErrorPageExtensionOption)


Member Documentation

ErrorDomain domain

This variable holds the domain that reported the error.

int error

This variable holds the error code. Interpretation of the value depends on the domain.

See also QWebPage.ErrorDomain.

QString errorString

This variable holds a string that describes the error.

QWebFrame frame

This variable holds the frame associated with the error.

QUrl url

This variable holds the url for which an error occurred.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpage-errorpageextensionreturn.html0000644000076500000240000001054412536324522025327 0ustar philstaff00000000000000 QWebPage.ErrorPageExtensionReturn Class Reference
  Home · All Classes · Modules

QWebPage.ErrorPageExtensionReturn Class Reference
[QtWebKit module]

The ErrorPageExtensionReturn describes the error page, which will be shown for the frame for which the error occured. More...

Inherits ExtensionReturn.

Methods

Members


Detailed Description

The ErrorPageExtensionReturn describes the error page, which will be shown for the frame for which the error occured.

The ErrorPageExtensionReturn class holds the data needed for creating an error page. Some are optional such as contentType, which defaults to "text/html", as well as the encoding, which is assumed to be UTF-8 if not indicated otherwise.

The error page is stored in the content byte array, as HTML content. In order to convert a QString to a byte array, the QString.toUtf8() method can be used.

External objects such as stylesheets or images referenced in the HTML are located relative to baseUrl.


Method Documentation

ErrorPageExtensionReturn.__init__ (self)

Constructs a new error page object.

ErrorPageExtensionReturn.__init__ (self, ErrorPageExtensionReturn)


Member Documentation

QUrl baseUrl

This variable holds the base url.

External objects such as stylesheets or images referenced in the HTML are located relative to this url.

QByteArray content

This variable holds the HTML content of the error page.

QString contentType

This variable holds the error page's content type.

QString encoding

This variable holds the error page encoding.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpage-extensionoption.html0000644000076500000240000000514612536324522023413 0ustar philstaff00000000000000 QWebPage.ExtensionOption Class Reference
  Home · All Classes · Modules

QWebPage.ExtensionOption Class Reference
[
QtWebKit module]

The ExtensionOption class provides an extended input argument to QWebPage's extension support. More...

Inherited by ChooseMultipleFilesExtensionOption and ErrorPageExtensionOption.

Methods


Detailed Description

The ExtensionOption class provides an extended input argument to QWebPage's extension support.


Method Documentation

ExtensionOption.__init__ (self)

ExtensionOption.__init__ (self, ExtensionOption)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpage-extensionreturn.html0000644000076500000240000000511212536324522023413 0ustar philstaff00000000000000 QWebPage.ExtensionReturn Class Reference
  Home · All Classes · Modules

QWebPage.ExtensionReturn Class Reference
[QtWebKit module]

The ExtensionReturn class provides an output result from a QWebPage's extension. More...

Inherited by ChooseMultipleFilesExtensionReturn and ErrorPageExtensionReturn.

Methods


Detailed Description

The ExtensionReturn class provides an output result from a QWebPage's extension.


Method Documentation

ExtensionReturn.__init__ (self)

ExtensionReturn.__init__ (self, ExtensionReturn)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpage-findflags.html0000644000076500000240000001353612536324522022105 0ustar philstaff00000000000000 QWebPage.FindFlags Class Reference
  Home · All Classes · Modules

QWebPage.FindFlags Class Reference
[QtWebKit module]

Methods

Special Methods


Detailed Description

FindFlag may be used whenever FindFlags is expected.


Method Documentation

FindFlags.__init__ (self, FindFlags)

FindFlags.__init__ (self, int)

FindFlags.__init__ (self)

FindFlags FindFlags.__and__ (self, int mask)

int FindFlags.__bool__ (self)

bool FindFlags.__eq__ (self, FindFlags f)

FindFlags FindFlags.__iand__ (self, int mask)

int FindFlags.__int__ (self)

FindFlags FindFlags.__invert__ (self)

FindFlags FindFlags.__ior__ (self, FindFlags f)

FindFlags FindFlags.__ixor__ (self, FindFlags f)

bool FindFlags.__ne__ (self, FindFlags f)

FindFlags FindFlags.__or__ (self, FindFlags f)

FindFlags FindFlags.__or__ (self, int f)

FindFlags FindFlags.__xor__ (self, FindFlags f)

FindFlags FindFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpage-viewportattributes.html0000644000076500000240000001314012536324522024125 0ustar philstaff00000000000000 QWebPage.ViewportAttributes Class Reference
  Home · All Classes · Modules

QWebPage.ViewportAttributes Class Reference
[QtWebKit module]

The QWebPage.ViewportAttributes class describes hints that can be applied to a viewport. More...

Methods


Detailed Description

The QWebPage.ViewportAttributes class describes hints that can be applied to a viewport.

QWebPage.ViewportAttributes provides a description of a viewport, such as viewport geometry, initial scale factor with limits, plus information about whether a user should be able to scale the contents in the viewport or not, ie. by zooming.

ViewportAttributes can be set by a web author using the viewport meta tag extension, documented at Safari Reference Library: Using the Viewport Meta Tag.

All values might not be set, as such when dealing with the hints, the developer needs to check whether the values are valid. Negative values denote an invalid qreal value.


Method Documentation

ViewportAttributes.__init__ (self)

Constructs an empty QWebPage.ViewportAttributes.

ViewportAttributes.__init__ (self, ViewportAttributes other)

Constructs a QWebPage.ViewportAttributes which is a copy from other .

float ViewportAttributes.devicePixelRatio (self)

float ViewportAttributes.initialScaleFactor (self)

Returns the initial scale of the viewport as a multiplier.

bool ViewportAttributes.isUserScalable (self)

Determines whether or not the scale can be modified by the user.

bool ViewportAttributes.isValid (self)

Returns whether this is a valid ViewportAttributes or not.

An invalid ViewportAttributes will have an empty QSize, negative values for scale factors and true for the boolean isUserScalable.

float ViewportAttributes.maximumScaleFactor (self)

Returns the maximum scale value of the viewport as a multiplier.

float ViewportAttributes.minimumScaleFactor (self)

Returns the minimum scale value of the viewport as a multiplier.

QSize ViewportAttributes.size (self)

Returns the size of the viewport.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpage.html0000644000076500000240000023615212536324522020153 0ustar philstaff00000000000000 QWebPage Class Reference
  Home · All Classes · Modules

QWebPage Class Reference
[QtWebKit module]

The QWebPage class provides an object to view and edit web documents. More...

Inherits QObject.

Types

Methods

Qt Signals


Detailed Description

The QWebPage class provides an object to view and edit web documents.

QWebPage holds a main frame responsible for web content, settings, the history of navigated links and actions. This class can be used, together with QWebFrame, to provide functionality like QWebView in a widget-less environment.

QWebPage's API is very similar to QWebView, as you are still provided with common functions like action() (known as pageAction() in QWebView), triggerAction(), findText() and settings(). More QWebView-like functions can be found in the main frame of QWebPage, obtained via the mainFrame() function. For example, the load(), setUrl() and setHtml() functions for QWebPage can be accessed using QWebFrame.

The loadStarted() signal is emitted when the page begins to load.The loadProgress() signal, on the other hand, is emitted whenever an element of the web page completes loading, such as an embedded image, a script, etc. Finally, the loadFinished() signal is emitted when the page contents are loaded completely, independent of script execution or page rendering. Its argument, either true or false, indicates whether or not the load operation succeeded.

Using QWebPage in a Widget-less Environment

Before you begin painting a QWebPage object, you need to set the size of the viewport by calling setViewportSize(). Then, you invoke the main frame's render function (QWebFrame.render()). An example of this is shown in the code snippet below.

Suppose we have a Thumbnail class as follows:

 class Thumbnailer : public QObject
 {
     Q_OBJECT

 public:
     Thumbnailer(const QUrl &url);

 signals:
     void finished();

 private slots:
     void render();

 private:
     QWebPage page;

 };

The Thumbnail's constructor takes in a url. We connect our QWebPage object's loadFinished() signal to our private slot, render().

 Thumbnailer.Thumbnailer(const QUrl &url)
 {
     page.mainFrame()->load(url);
     connect(&page, SIGNAL(loadFinished(bool)),
         this, SLOT(render()));
 }

The render() function shows how we can paint a thumbnail using a QWebPage object.

 void Thumbnailer.render()
 {
     page.setViewportSize(page.mainFrame()->contentsSize());
     QImage image(page.viewportSize(), QImage.Format_ARGB32);
     QPainter painter(&image);

     page.mainFrame()->render(&painter);
     painter.end();

     QImage thumbnail = image.scaled(400, 400);
     thumbnail.save("thumbnail.png");

     emit finished();
 }

We begin by setting the viewportSize and then we instantiate a QImage object, image, with the same size as our viewportSize. This image is then sent as a parameter to painter. Next, we render the contents of the main frame and its subframes into painter. Finally, we save the scaled image.


Type Documentation

QWebPage.ErrorDomain

This enum describes the domain of an ErrorPageExtensionOption object (i.e. the layer in which the error occurred).

Constant Value Description
QWebPage.QtNetwork 0 The error occurred in the QtNetwork layer; the error code is of type QNetworkReply.NetworkError.
QWebPage.Http 1 The error occurred in the HTTP layer; the error code is a HTTP status code (see QNetworkRequest.HttpStatusCodeAttribute).
QWebPage.WebKit 2 The error is an internal WebKit error.

This enum was introduced or modified in Qt 4.6.

QWebPage.Extension

This enum describes the types of extensions that the page can support. Before using these extensions, you should verify that the extension is supported by calling supportsExtension().

Constant Value Description
QWebPage.ChooseMultipleFilesExtension 0 Whether the web page supports multiple file selection. This extension is invoked when the web content requests one or more file names, for example as a result of the user clicking on a "file upload" button in a HTML form where multiple file selection is allowed.
QWebPage.ErrorPageExtension 1 Whether the web page can provide an error page when loading fails. (introduced in Qt 4.6)

See also ChooseMultipleFilesExtensionOption, ChooseMultipleFilesExtensionReturn, ErrorPageExtensionOption, and ErrorPageExtensionReturn.

QWebPage.Feature

QWebPage.FindFlag

This enum describes the options available to the findText() function. The options can be OR-ed together from the following list:

Constant Value Description
QWebPage.FindBackward 1 Searches backwards instead of forwards.
QWebPage.FindCaseSensitively 2 By default findText() works case insensitive. Specifying this option changes the behaviour to a case sensitive find operation.
QWebPage.FindWrapsAroundDocument 4 Makes findText() restart from the beginning of the document if the end was reached and the text was not found.
QWebPage.HighlightAllOccurrences 8 Highlights all existing occurrences of a specific string. (This value was introduced in 4.6.)

The FindFlags type is a typedef for QFlags<FindFlag>. It stores an OR combination of FindFlag values.

QWebPage.LinkDelegationPolicy

This enum defines the delegation policies a webpage can have when activating links and emitting the linkClicked() signal.

Constant Value Description
QWebPage.DontDelegateLinks 0 No links are delegated. Instead, QWebPage tries to handle them all.
QWebPage.DelegateExternalLinks 1 When activating links that point to documents not stored on the local filesystem or an equivalent - such as the Qt resource system - then linkClicked() is emitted.
QWebPage.DelegateAllLinks 2 Whenever a link is activated the linkClicked() signal is emitted.

See also QWebPage.linkDelegationPolicy.

QWebPage.NavigationType

This enum describes the types of navigation available when browsing through hyperlinked documents.

Constant Value Description
QWebPage.NavigationTypeLinkClicked 0 The user clicked on a link or pressed return on a focused link.
QWebPage.NavigationTypeFormSubmitted 1 The user activated a submit button for an HTML form.
QWebPage.NavigationTypeBackOrForward 2 Navigation to a previously shown document in the back or forward history is requested.
QWebPage.NavigationTypeReload 3 The user activated the reload action.
QWebPage.NavigationTypeFormResubmitted 4 An HTML form was submitted a second time.
QWebPage.NavigationTypeOther 5 A navigation to another document using a method not listed above.

See also acceptNavigationRequest().

QWebPage.PermissionPolicy

QWebPage.WebAction

This enum describes the types of action which can be performed on the web page.

Actions only have an effect when they are applicable. The availability of actions can be be determined by checking isEnabled() on the action returned by action().

One method of enabling the text editing, cursor movement, and text selection actions is by setting contentEditable to true.

Constant Value Description
QWebPage.NoWebAction -1 No action is triggered.
QWebPage.OpenLink 0 Open the current link.
QWebPage.OpenLinkInNewWindow 1 Open the current link in a new window.
QWebPage.OpenFrameInNewWindow 2 Replicate the current frame in a new window.
QWebPage.DownloadLinkToDisk 3 Download the current link to the disk.
QWebPage.CopyLinkToClipboard 4 Copy the current link to the clipboard.
QWebPage.OpenImageInNewWindow 5 Open the highlighted image in a new window.
QWebPage.DownloadImageToDisk 6 Download the highlighted image to the disk.
QWebPage.CopyImageToClipboard 7 Copy the highlighted image to the clipboard.
QWebPage.CopyImageUrlToClipboard 68 Copy the highlighted image's URL to the clipboard.
QWebPage.Back 8 Navigate back in the history of navigated links.
QWebPage.Forward 9 Navigate forward in the history of navigated links.
QWebPage.Stop 10 Stop loading the current page.
QWebPage.StopScheduledPageRefresh 67 Stop all pending page refresh/redirect requests.
QWebPage.Reload 11 Reload the current page.
QWebPage.ReloadAndBypassCache 53 Reload the current page, but do not use any local cache. (Added in Qt 4.6)
QWebPage.Cut 12 Cut the content currently selected into the clipboard.
QWebPage.Copy 13 Copy the content currently selected into the clipboard.
QWebPage.Paste 14 Paste content from the clipboard.
QWebPage.Undo 15 Undo the last editing action.
QWebPage.Redo 16 Redo the last editing action.
QWebPage.MoveToNextChar 17 Move the cursor to the next character.
QWebPage.MoveToPreviousChar 18 Move the cursor to the previous character.
QWebPage.MoveToNextWord 19 Move the cursor to the next word.
QWebPage.MoveToPreviousWord 20 Move the cursor to the previous word.
QWebPage.MoveToNextLine 21 Move the cursor to the next line.
QWebPage.MoveToPreviousLine 22 Move the cursor to the previous line.
QWebPage.MoveToStartOfLine 23 Move the cursor to the start of the line.
QWebPage.MoveToEndOfLine 24 Move the cursor to the end of the line.
QWebPage.MoveToStartOfBlock 25 Move the cursor to the start of the block.
QWebPage.MoveToEndOfBlock 26 Move the cursor to the end of the block.
QWebPage.MoveToStartOfDocument 27 Move the cursor to the start of the document.
QWebPage.MoveToEndOfDocument 28 Move the cursor to the end of the document.
QWebPage.SelectNextChar 29 Select to the next character.
QWebPage.SelectPreviousChar 30 Select to the previous character.
QWebPage.SelectNextWord 31 Select to the next word.
QWebPage.SelectPreviousWord 32 Select to the previous word.
QWebPage.SelectNextLine 33 Select to the next line.
QWebPage.SelectPreviousLine 34 Select to the previous line.
QWebPage.SelectStartOfLine 35 Select to the start of the line.
QWebPage.SelectEndOfLine 36 Select to the end of the line.
QWebPage.SelectStartOfBlock 37 Select to the start of the block.
QWebPage.SelectEndOfBlock 38 Select to the end of the block.
QWebPage.SelectStartOfDocument 39 Select to the start of the document.
QWebPage.SelectEndOfDocument 40 Select to the end of the document.
QWebPage.DeleteStartOfWord 41 Delete to the start of the word.
QWebPage.DeleteEndOfWord 42 Delete to the end of the word.
QWebPage.SetTextDirectionDefault 43 Set the text direction to the default direction.
QWebPage.SetTextDirectionLeftToRight 44 Set the text direction to left-to-right.
QWebPage.SetTextDirectionRightToLeft 45 Set the text direction to right-to-left.
QWebPage.ToggleBold 46 Toggle the formatting between bold and normal weight.
QWebPage.ToggleItalic 47 Toggle the formatting between italic and normal style.
QWebPage.ToggleUnderline 48 Toggle underlining.
QWebPage.InspectElement 49 Show the Web Inspector with the currently highlighted HTML element.
QWebPage.InsertParagraphSeparator 50 Insert a new paragraph.
QWebPage.InsertLineSeparator 51 Insert a new line.
QWebPage.SelectAll 52 Selects all content.
QWebPage.PasteAndMatchStyle 54 Paste content from the clipboard with current style.
QWebPage.RemoveFormat 55 Removes formatting and style.
QWebPage.ToggleStrikethrough 56 Toggle the formatting between strikethrough and normal style.
QWebPage.ToggleSubscript 57 Toggle the formatting between subscript and baseline.
QWebPage.ToggleSuperscript 58 Toggle the formatting between supercript and baseline.
QWebPage.InsertUnorderedList 59 Toggles the selection between an ordered list and a normal block.
QWebPage.InsertOrderedList 60 Toggles the selection between an ordered list and a normal block.
QWebPage.Indent 61 Increases the indentation of the currently selected format block by one increment.
QWebPage.Outdent 62 Decreases the indentation of the currently selected format block by one increment.
QWebPage.AlignCenter 63 Applies center alignment to content.
QWebPage.AlignJustified 64 Applies full justification to content.
QWebPage.AlignLeft 65 Applies left justification to content.
QWebPage.AlignRight 66 Applies right justification to content.

QWebPage.WebWindowType

This enum describes the types of window that can be created by the createWindow() function.

Constant Value Description
QWebPage.WebBrowserWindow 0 The window is a regular web browser window.
QWebPage.WebModalDialog 1 The window acts as modal dialog.

Method Documentation

QWebPage.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty QWebPage with parent parent.

bool QWebPage.acceptNavigationRequest (self, QWebFrame frame, QNetworkRequest request, NavigationType type)

This function is called whenever WebKit requests to navigate frame to the resource specified by request by means of the specified navigation type type.

If frame is a null pointer then navigation to a new window is requested. If the request is accepted createWindow() will be called.

The default implementation interprets the page's linkDelegationPolicy and emits linkClicked accordingly or returns true to let QWebPage handle the navigation itself.

See also createWindow().

QAction QWebPage.action (self, WebAction action)

Returns a QAction for the specified WebAction action.

The action is owned by the QWebPage but you can customize the look by changing its properties.

QWebPage also takes care of implementing the action, so that upon triggering the corresponding action is performed on the page.

See also triggerAction().

int QWebPage.bytesReceived (self)

Returns the number of bytes that were received from the network to render the current page.

See also totalBytes() and loadProgress().

QString QWebPage.chooseFile (self, QWebFrame originatingFrame, QString oldFile)

This function is called when the web content requests a file name, for example as a result of the user clicking on a "file upload" button in a HTML form.

A suggested filename may be provided in suggestedFile. The frame originating the request is provided as parentFrame.

See also ChooseMultipleFilesExtension.

QObject QWebPage.createPlugin (self, QString classid, QUrl url, QStringList paramNames, QStringList paramValues)

This function is called whenever WebKit encounters a HTML object element with type "application/x-qt-plugin". It is called regardless of the value of QWebSettings.PluginsEnabled. The classid, url, paramNames and paramValues correspond to the HTML object element attributes and child elements to configure the embeddable object.

QMenu QWebPage.createStandardContextMenu (self)

This function creates the standard context menu which is shown when the user clicks on the web page with the right mouse button. It is called from the default contextMenuEvent() handler. The popup menu's ownership is transferred to the caller.

This function was introduced in Qt 4.5.

QWebPage QWebPage.createWindow (self, WebWindowType type)

This function is called whenever WebKit wants to create a new window of the given type, for example when a JavaScript program requests to open a document in a new window.

If the new window can be created, the new window's QWebPage is returned; otherwise a null pointer is returned.

If the view associated with the web page is a QWebView object, then the default implementation forwards the request to QWebView's createWindow() function; otherwise it returns a null pointer.

If type is WebModalDialog, the application must call setWindowModality(Qt.ApplicationModal) on the new window.

Note: In the cases when the window creation is being triggered by JavaScript, apart from reimplementing this method application must also set the JavaScriptCanOpenWindows attribute of QWebSettings to true in order for it to get called.

See also acceptNavigationRequest() and QWebView.createWindow().

QWebFrame QWebPage.currentFrame (self)

Returns the frame currently active.

See also mainFrame() and frameCreated().

bool QWebPage.event (self, QEvent)

Reimplemented from QObject.event().

bool QWebPage.extension (self, Extension extension, ExtensionOption option = None, ExtensionReturn output = None)

This virtual function can be reimplemented in a QWebPage subclass to provide support for extensions. The option argument is provided as input to the extension; the output results can be stored in output.

The behavior of this function is determined by extension. The option and output values are typically casted to the corresponding types (for example, ChooseMultipleFilesExtensionOption and ChooseMultipleFilesExtensionReturn for ChooseMultipleFilesExtension).

You can call supportsExtension() to check if an extension is supported by the page.

Returns true if the extension was called successfully; otherwise returns false.

See also supportsExtension() and Extension.

bool QWebPage.findText (self, QString subString, FindFlags options = 0)

Finds the specified string, subString, in the page, using the given options.

If the HighlightAllOccurrences flag is passed, the function will highlight all occurrences that exist in the page. All subsequent calls will extend the highlight, rather than replace it, with occurrences of the new string.

If the HighlightAllOccurrences flag is not passed, the function will select an occurrence and all subsequent calls will replace the current occurrence with the next one.

To clear the selection, just pass an empty string.

Returns true if subString was found; otherwise returns false.

bool QWebPage.focusNextPrevChild (self, bool next)

Similar to QWidget.focusNextPrevChild() it focuses the next focusable web element if next is true; otherwise the previous element is focused.

Returns true if it can find a new focusable element, or false if it can't.

bool QWebPage.forwardUnsupportedContent (self)

QWebFrame QWebPage.frameAt (self, QPoint pos)

Returns the frame at the given point pos, or 0 if there is no frame at that position.

This function was introduced in Qt 4.6.

See also mainFrame() and currentFrame().

bool QWebPage.hasSelection (self)

QWebHistory QWebPage.history (self)

Returns a pointer to the view's history of navigated web pages.

QVariant QWebPage.inputMethodQuery (self, Qt.InputMethodQuery property)

This method is used by the input method to query a set of properties of the page to be able to support complex input method operations as support for surrounding text and reconversions.

property specifies which property is queried.

See also QWidget.inputMethodEvent(), QInputMethodEvent, and QInputContext.

bool QWebPage.isContentEditable (self)

bool QWebPage.isModified (self)

QWebPage.javaScriptAlert (self, QWebFrame originatingFrame, QString msg)

This function is called whenever a JavaScript program running inside frame calls the alert() function with the message msg.

The default implementation shows the message, msg, with QMessageBox.information.

bool QWebPage.javaScriptConfirm (self, QWebFrame originatingFrame, QString msg)

This function is called whenever a JavaScript program running inside frame calls the confirm() function with the message, msg. Returns true if the user confirms the message; otherwise returns false.

The default implementation executes the query using QMessageBox.information with QMessageBox.Yes and QMessageBox.No buttons.

QWebPage.javaScriptConsoleMessage (self, QString message, int lineNumber, QString sourceID)

This function is called whenever a JavaScript program tries to print a message to the web browser's console.

For example in case of evaluation errors the source URL may be provided in sourceID as well as the lineNumber.

The default implementation prints nothing.

(bool, QString result) QWebPage.javaScriptPrompt (self, QWebFrame originatingFrame, QString msg, QString defaultValue)

This function is called whenever a JavaScript program running inside frame tries to prompt the user for input. The program may provide an optional message, msg, as well as a default value for the input in defaultValue.

If the prompt was cancelled by the user the implementation should return false; otherwise the result should be written to result and true should be returned. If the prompt was not cancelled by the user, the implementation should return true and the result string must not be null.

The default implementation uses QInputDialog.getText().

bool QWebPage.javaScriptPrompt (self, QWebFrame originatingFrame, QString msg, QString defaultValue, QString result)

LinkDelegationPolicy QWebPage.linkDelegationPolicy (self)

QWebFrame QWebPage.mainFrame (self)

Returns the main frame of the page.

The main frame provides access to the hierarchy of sub-frames and is also needed if you want to explicitly render a web page into a given painter.

See also currentFrame().

QNetworkAccessManager QWebPage.networkAccessManager (self)

Returns the QNetworkAccessManager that is responsible for serving network requests for this QWebPage.

See also setNetworkAccessManager().

QPalette QWebPage.palette (self)

QWebPluginFactory QWebPage.pluginFactory (self)

Returns the QWebPluginFactory that is responsible for creating plugins embedded into this QWebPage. If no plugin factory is installed a null pointer is returned.

See also setPluginFactory().

QSize QWebPage.preferredContentsSize (self)

QString QWebPage.selectedHtml (self)

QString QWebPage.selectedText (self)

QWebPage.setActualVisibleContentRect (self, QRect rect)

QWebPage.setContentEditable (self, bool editable)

QWebPage.setFeaturePermission (self, QWebFrame frame, Feature feature, PermissionPolicy policy)

QWebPage.setForwardUnsupportedContent (self, bool forward)

QWebPage.setLinkDelegationPolicy (self, LinkDelegationPolicy policy)

QWebPage.setNetworkAccessManager (self, QNetworkAccessManager manager)

Sets the QNetworkAccessManager manager responsible for serving network requests for this QWebPage.

Note: It is currently not supported to change the network access manager after the QWebPage has used it. The results of doing this are undefined.

See also networkAccessManager().

QWebPage.setPalette (self, QPalette palette)

QWebPage.setPluginFactory (self, QWebPluginFactory factory)

Sets the QWebPluginFactory factory responsible for creating plugins embedded into this QWebPage.

Note: The plugin factory is only used if the QWebSettings.PluginsEnabled attribute is enabled.

See also pluginFactory().

QWebPage.setPreferredContentsSize (self, QSize size)

QWebSettings QWebPage.settings (self)

Returns a pointer to the page's settings object.

See also QWebSettings.globalSettings().

QWebPage.setView (self, QWidget view)

Sets the view that is associated with the web page.

See also view().

QWebPage.setViewportSize (self, QSize size)

bool QWebPage.shouldInterruptJavaScript (self)

This method is also a Qt slot with the C++ signature bool shouldInterruptJavaScript().

This function is called when a JavaScript program is running for a long period of time.

If the user wanted to stop the JavaScript the implementation should return true; otherwise false.

The default implementation executes the query using QMessageBox.information with QMessageBox.Yes and QMessageBox.No buttons.

Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide your own implementation in a QWebPage subclass, reimplement the shouldInterruptJavaScript() slot in your subclass instead. QtWebKit will dynamically detect the slot and call it.

This function was introduced in Qt 4.6.

QStringList QWebPage.supportedContentTypes (self)

Returns the list of all content types supported by QWebPage.

bool QWebPage.supportsContentType (self, QString mimeType)

Returns true if QWebPage can handle the given mimeType; otherwise, returns false.

bool QWebPage.supportsExtension (self, Extension extension)

This virtual function returns true if the web page supports extension; otherwise false is returned.

See also extension().

bool QWebPage.swallowContextMenuEvent (self, QContextMenuEvent event)

Filters the context menu event, event, through handlers for scrollbars and custom event handlers in the web page. Returns true if the event was handled; otherwise false.

A web page may swallow a context menu event through a custom event handler, allowing for context menus to be implemented in HTML/JavaScript. This is used by Google Maps, for example.

int QWebPage.totalBytes (self)

Returns the total number of bytes that were received from the network to render the current page, including extra content such as embedded images.

See also bytesReceived().

QWebPage.triggerAction (self, WebAction action, bool checked = False)

This function can be called to trigger the specified action. It is also called by QtWebKit if the user triggers the action, for example through a context menu item.

If action is a checkable action then checked specified whether the action is toggled or not.

See also action().

QUndoStack QWebPage.undoStack (self)

Returns a pointer to the undo stack used for editable content.

See also modified.

QWebPage.updatePositionDependentActions (self, QPoint pos)

Updates the page's actions depending on the position pos. For example if pos is over an image element the CopyImageToClipboard action is enabled.

QString QWebPage.userAgentForUrl (self, QUrl url)

This function is called when a user agent for HTTP requests is needed. You can reimplement this function to dynamically return different user agents for different URLs, based on the url parameter.

The default implementation returns the following value:

"Mozilla/5.0 (%Platform%%Security%%Subplatform%) AppleWebKit/%WebKitVersion% (KHTML, like Gecko) %AppVersion Safari/%WebKitVersion%"

On mobile platforms such as Symbian S60 and Maemo, "Mobile Safari" is used instead of "Safari".

In this string the following values are replaced at run-time:

  • %Platform% expands to the windowing system followed by "; " if it is not Windows (e.g. "X11; ").
  • %Security% expands to "N; " if SSL is disabled.
  • %Subplatform% expands to the operating system version (e.g. "Windows NT 6.1" or "Intel Mac OS X 10.5").
  • %WebKitVersion% is the version of WebKit the application was compiled against.
  • %AppVersion% expands to QCoreApplication.applicationName()/QCoreApplication.applicationVersion() if they're set; otherwise defaulting to Qt and the current Qt version.

QWidget QWebPage.view (self)

Returns the view widget that is associated with the web page.

See also setView().

ViewportAttributes QWebPage.viewportAttributesForSize (self, QSize availableSize)

Computes the optimal viewport configuration given the availableSize, when user interface components are disregarded.

The configuration is also dependent on the device screen size which is obtained automatically. For testing purposes the size can be overridden by setting two environment variables QTWEBKIT_DEVICE_WIDTH and QTWEBKIT_DEVICE_HEIGHT, which both needs to be set.

The ViewportAttributes includes a pixel density ratio, which will also be exposed to the web author though the -webkit-pixel-ratio media feature. This is the ratio between 1 density-independent pixel (DPI) and physical pixels.

A density-independent pixel is equivalent to one physical pixel on a 160 DPI screen, so on our platform assumes that as the baseline density.

The conversion of DIP units to screen pixels is quite simple:

pixels = DIPs * (density / 160).

Thus, on a 240 DPI screen, 1 DIPs would equal 1.5 physical pixels.

An invalid instance will be returned in the case an empty size is passed to the method.

Note: The density is automatically obtained from the DPI of the screen where the page is being shown, but as many X11 servers are reporting wrong DPI, it is possible to override it using QX11Info.setAppDpiY().

QSize QWebPage.viewportSize (self)


Qt Signal Documentation

void applicationCacheQuotaExceeded (QWebSecurityOrigin*,quint64)

This is the default overload of this signal.

This signal is emitted whenever the web site is asking to store data to the application cache database databaseName and the quota allocated to that web site is exceeded.

void contentsChanged ()

This is the default overload of this signal.

This signal is emitted whenever the text in form elements changes as well as other editable content.

This function was introduced in Qt 4.5.

See also contentEditable, modified, QWebFrame.toHtml(), and QWebFrame.toPlainText().

void databaseQuotaExceeded (QWebFrame*,QString)

This is the default overload of this signal.

This signal is emitted whenever the web site shown in frame is asking to store data to the database databaseName and the quota allocated to that web site is exceeded.

This function was introduced in Qt 4.5.

See also QWebDatabase.

void downloadRequested (const QNetworkRequest&)

This is the default overload of this signal.

This signal is emitted when the user decides to download a link. The url of the link as well as additional meta-information is contained in request.

See also unsupportedContent().

void featurePermissionRequestCanceled (QWebFrame*,QWebPage::Feature)

This is the default overload of this signal.

void featurePermissionRequested (QWebFrame*,QWebPage::Feature)

This is the default overload of this signal.

void frameCreated (QWebFrame*)

This is the default overload of this signal.

This signal is emitted whenever the page creates a new frame.

See also currentFrame().

void geometryChangeRequested (const QRect&)

This is the default overload of this signal.

This signal is emitted whenever the document wants to change the position and size of the page to geom. This can happen for example through JavaScript.

void linkClicked (const QUrl&)

This is the default overload of this signal.

This signal is emitted whenever the user clicks on a link and the page's linkDelegationPolicy property is set to delegate the link handling for the specified url.

By default no links are delegated and are handled by QWebPage instead.

Note: This signal possibly won't be emitted for clicked links which use JavaScript to trigger navigation.

See also linkHovered().

void linkHovered (const QString&,const QString&,const QString&)

This is the default overload of this signal.

This signal is emitted when the mouse hovers over a link.

link contains the link url. title is the link element's title, if it is specified in the markup. textContent provides text within the link element, e.g., text inside an HTML anchor tag.

When the mouse leaves the link element the signal is emitted with empty parameters.

See also linkClicked().

void loadFinished (bool)

This is the default overload of this signal.

This signal is emitted when the page finishes loading content. This signal is independant of script execution or page rendering. ok will indicate whether the load was successful or any error occurred.

See also loadStarted() and ErrorPageExtension.

void loadProgress (int)

This is the default overload of this signal.

This signal is emitted when the global progress status changes. The current value is provided by progress and scales from 0 to 100, which is the default range of QProgressBar. It accumulates changes from all the child frames.

See also bytesReceived().

void loadStarted ()

This is the default overload of this signal.

This signal is emitted when a page starts loading content.

See also loadFinished().

void menuBarVisibilityChangeRequested (bool)

This is the default overload of this signal.

This signal is emitted whenever the visibility of the menubar in a web browser window that hosts QWebPage should be changed to visible.

void microFocusChanged ()

This is the default overload of this signal.

This signal is emitted when for example the position of the cursor in an editable form element changes. It is used to inform input methods about the new on-screen position where the user is able to enter text. This signal is usually connected to the QWidget.updateMicroFocus() slot.

void printRequested (QWebFrame*)

This is the default overload of this signal.

This signal is emitted whenever the page requests the web browser to print frame, for example through the JavaScript window.print() call.

See also QWebFrame.print() and QPrintPreviewDialog.

void repaintRequested (const QRect&)

This is the default overload of this signal.

This signal is emitted whenever this QWebPage should be updated. It's useful when rendering a QWebPage without a QWebView or QGraphicsWebView. dirtyRect contains the area that needs to be updated. To paint the QWebPage get the mainFrame() and call the render(QPainter*, const QRegion&) method with the dirtyRect as the second parameter.

See also mainFrame() and view().

void restoreFrameStateRequested (QWebFrame*)

This is the default overload of this signal.

This signal is emitted when the load of frame is finished and the application may now update its state accordingly.

This function was introduced in Qt 4.5.

void saveFrameStateRequested (QWebFrame*,QWebHistoryItem*)

This is the default overload of this signal.

This signal is emitted shortly before the history of navigated pages in frame is changed, for example when navigating back in the history.

The provided QWebHistoryItem, item, holds the history entry of the frame before the change.

A potential use-case for this signal is to store custom data in the QWebHistoryItem associated to the frame, using QWebHistoryItem.setUserData().

This function was introduced in Qt 4.5.

void scrollRequested (int,int,const QRect&)

This is the default overload of this signal.

This signal is emitted whenever the content given by rectToScroll needs to be scrolled dx and dy downwards and no view was set.

See also view().

void selectionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the selection changes, either interactively or programmatically (e.g. by calling triggerAction() with a selection action).

See also selectedText().

void statusBarMessage (const QString&)

This is the default overload of this signal.

This signal is emitted when the statusbar text is changed by the page.

void statusBarVisibilityChangeRequested (bool)

This is the default overload of this signal.

This signal is emitted whenever the visibility of the statusbar in a web browser window that hosts QWebPage should be changed to visible.

void toolBarVisibilityChangeRequested (bool)

This is the default overload of this signal.

This signal is emitted whenever the visibility of the toolbar in a web browser window that hosts QWebPage should be changed to visible.

void unsupportedContent (QNetworkReply*)

This is the default overload of this signal.

This signal is emitted when WebKit cannot handle a link the user navigated to or a web server's response includes a "Content-Disposition" header with the 'attachment' directive. If "Content-Disposition" is present in reply, the web server is indicating that the client should prompt the user to save the content regardless of content-type. See RFC 2616 sections 19.5.1 for details about Content-Disposition.

At signal emission time the meta-data of the QNetworkReply reply is available.

Note: The receiving slot is responsible for deleting the QNetworkReply reply.

Note: This signal is only emitted if the forwardUnsupportedContent property is set to true.

See also downloadRequested().

void viewportChangeRequested ()

This is the default overload of this signal.

Page authors can provide the supplied values by using the viewport meta tag. More information about this can be found at Safari Reference Library: Using the Viewport Meta Tag.

This function was introduced in Qt 4.8.

See also QWebPage.ViewportAttributes, setPreferredContentsSize(), and QGraphicsWebView.setScale().

void windowCloseRequested ()

This is the default overload of this signal.

This signal is emitted whenever the page requests the web browser window to be closed, for example through the JavaScript window.close() call.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpluginfactory-extensionoption.html0000644000076500000240000000424712536324523025367 0ustar philstaff00000000000000 QWebPluginFactory.ExtensionOption Class Reference
  Home · All Classes · Modules

QWebPluginFactory.ExtensionOption Class Reference
[
QtWebKit module]

Methods


Detailed Description


Method Documentation

ExtensionOption.__init__ (self)

ExtensionOption.__init__ (self, ExtensionOption)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpluginfactory-extensionreturn.html0000644000076500000240000000424712536324523025376 0ustar philstaff00000000000000 QWebPluginFactory.ExtensionReturn Class Reference
  Home · All Classes · Modules

QWebPluginFactory.ExtensionReturn Class Reference
[QtWebKit module]

Methods


Detailed Description


Method Documentation

ExtensionReturn.__init__ (self)

ExtensionReturn.__init__ (self, ExtensionReturn)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpluginfactory-mimetype.html0000644000076500000240000000740012536324523023745 0ustar philstaff00000000000000 QWebPluginFactory.MimeType Class Reference
  Home · All Classes · Modules

QWebPluginFactory.MimeType Class Reference
[QtWebKit module]

The QWebPluginFactory.MimeType structure describes a mime type supported by a plugin. More...

Methods

Special Methods

  • bool __eq__ (self, MimeType other)
  • bool __ne__ (self, MimeType other)

Members


Detailed Description

The QWebPluginFactory.MimeType structure describes a mime type supported by a plugin.


Method Documentation

MimeType.__init__ (self)

MimeType.__init__ (self, MimeType)

bool MimeType.__eq__ (self, MimeType other)

bool MimeType.__ne__ (self, MimeType other)


Member Documentation

QString description

The description of the mime type.

QStringList fileExtensions

The list of file extensions that are used by this mime type.

For example, a mime type for PDF documents would return "pdf" as its file extension.

QString name

The full name of the MIME type; e.g., text/plain or image/png.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpluginfactory-plugin.html0000644000076500000240000000615412536324523023417 0ustar philstaff00000000000000 QWebPluginFactory.Plugin Class Reference
  Home · All Classes · Modules

QWebPluginFactory.Plugin Class Reference
[
QtWebKit module]

The QWebPluginFactory.Plugin structure describes the properties of a plugin a QWebPluginFactory can create. More...

Methods

Members


Detailed Description

The QWebPluginFactory.Plugin structure describes the properties of a plugin a QWebPluginFactory can create.


Method Documentation

Plugin.__init__ (self)

Plugin.__init__ (self, Plugin)


Member Documentation

QString description

The description of the plugin.

list-of-QWebPluginFactory.MimeType mimeTypes

The list of mime types supported by the plugin.

QString name

The name of the plugin.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebpluginfactory.html0000644000076500000240000002346512536324523022127 0ustar philstaff00000000000000 QWebPluginFactory Class Reference
  Home · All Classes · Modules

QWebPluginFactory Class Reference
[
QtWebKit module]

The QWebPluginFactory class is used to embed custom data types in web pages. More...

Inherits QObject.

Types

Methods

  • __init__ (self, QObject parent = None)
  • QObject create (self, QString mimeType, QUrl url, QStringList argumentNames, QStringList argumentValues)
  • bool extension (self, Extension extension, ExtensionOption option = None, ExtensionReturn output = None)
  • list-of-QWebPluginFactory.Plugin plugins (self)
  • bool supportsExtension (self, Extension extension)

Detailed Description

The QWebPluginFactory class is used to embed custom data types in web pages.

The HTML <object> tag is used to embed arbitrary content into a web page, for example:

 <object type="application/x-pdf" data="http://qt.nokia.com/document.pdf" width="500" height="400"></object>

QtWebkit will natively handle the most basic data types like text/html and image/jpeg, but for any advanced or custom data types you will need to provide a handler yourself.

QWebPluginFactory is a factory for creating plugins for QWebPage, where each plugin provides support for one or more data types. A plugin factory can be installed on a QWebPage using QWebPage.setPluginFactory().

Note: The plugin factory is only used if plugins are enabled through QWebSettings.

You provide a QWebPluginFactory by implementing the plugins() and the create() methods. For plugins() it is necessary to describe the plugins the factory can create, including a description and the supported MIME types. The MIME types each plugin can handle should match the ones specified in in the HTML <object> tag of your content.

The create() method is called if the requested MIME type is supported. The implementation has to return a new instance of the plugin requested for the given MIME type and the specified URL.

The plugins themselves are subclasses of QObject, but currently only plugins based on either QWidget or QGraphicsWidget are supported.


Type Documentation

QWebPluginFactory.Extension


Method Documentation

QWebPluginFactory.__init__ (self, QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QWebPluginFactory with parent parent.

QObject QWebPluginFactory.create (self, QString mimeType, QUrl url, QStringList argumentNames, QStringList argumentValues)

This method is abstract and should be reimplemented in any sub-class.

Implemented in subclasses to create a new plugin that can display content of the MIME type given by mimeType. The URL of the content is provided in url. The returned object should be a QWidget.

The HTML object element can provide parameters through the <param> tag. The name and the value attributes of these tags are specified by the argumentNames and argumentValues string lists.

For example:

 <object type="application/x-pdf" data="http://qt.nokia.com/document.pdf" width="500" height="400">
     <param name="showTableOfContents" value="true" />
     <param name="hideThumbnails" value="false" />
 </object>

The above object element will result in a call to create() with the following arguments:

Parameter Value
mimeType "application/x-pdf"
url "http://qt.nokia.com/document.pdf"
argumentNames "showTableOfContents" "hideThumbnails"
argumentVaues "true" "false"

Note: Ownership of the returned object will be transferred to the caller.

bool QWebPluginFactory.extension (self, Extension extension, ExtensionOption option = None, ExtensionReturn output = None)

list-of-QWebPluginFactory.Plugin QWebPluginFactory.plugins (self)

This method is abstract and should be reimplemented in any sub-class.

This function is reimplemented in subclasses to return a list of supported plugins the factory can create.

Note: Currently, this function is only called when JavaScript programs access the global plugins or mimetypes objects.

QWebPluginFactory.refreshPlugins (self)

This function is called to refresh the list of supported plugins. It may be called after a new plugin has been installed in the system.

bool QWebPluginFactory.supportsExtension (self, Extension extension)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebsecurityorigin.html0000644000076500000240000002257412536324523022320 0ustar philstaff00000000000000 QWebSecurityOrigin Class Reference
  Home · All Classes · Modules

QWebSecurityOrigin Class Reference
[QtWebKit module]

The QWebSecurityOrigin class defines a security boundary for web sites. More...

Methods

Static Methods


Detailed Description

The QWebSecurityOrigin class defines a security boundary for web sites.

QWebSecurityOrigin provides access to the security domains defined by web sites. An origin consists of a host name, a scheme, and a port number. Web sites with the same security origin can access each other's resources for client-side scripting or databases.

For example the site http://www.example.com/my/page.html is allowed to share the same database as http://www.example.com/my/overview.html, or access each other's documents when used in HTML frame sets and JavaScript. At the same time it prevents http://www.malicious.com/evil.html from accessing http://www.example.com/'s resources, because they are of a different security origin.

By default local schemes like file:// and qrc:// are concidered to be in the same security origin, and can access each other's resources. You can add additional local schemes by using QWebSecurityOrigin.addLocalScheme(), or override the default same-origin behavior by setting QWebSettings.LocalContentCanAccessFileUrls to false.

Note: Local resources are by default restricted from accessing remote content, which means your file:// will not be able to access http://domain.com/foo.html. You can relax this restriction by setting QWebSettings.LocalContentCanAccessRemoteUrls to true.

Call QWebFrame.securityOrigin() to get the QWebSecurityOrigin for a frame in a web page, and use host(), scheme() and port() to identify the security origin.

Use databases() to access the databases defined within a security origin. The disk usage of the origin's databases can be limited with setDatabaseQuota(). databaseQuota() and databaseUsage() report the current limit as well as the current usage.

For more information refer to the "Same origin policy" Wikipedia Article.


Method Documentation

QWebSecurityOrigin.__init__ (self, QWebSecurityOrigin other)

Constructs a security origin from other.

QWebSecurityOrigin.addLocalScheme (QString scheme)

Adds the given scheme to the list of schemes that are considered equivalent to the file: scheme.

Cross domain restrictions depend on the two web settings QWebSettings.LocalContentCanAccessFileUrls and QWebSettings.LocalContentCanAccessFileUrls. By default all local schemes are concidered to be in the same security origin, and local schemes can not access remote content.

This function was introduced in Qt 4.6.

list-of-QWebSecurityOrigin QWebSecurityOrigin.allOrigins ()

Returns a list of all security origins with a database quota defined.

int QWebSecurityOrigin.databaseQuota (self)

Returns the quota for the databases in the security origin.

See also setDatabaseQuota().

list-of-QWebDatabase QWebSecurityOrigin.databases (self)

Returns a list of all databases defined in the security origin.

int QWebSecurityOrigin.databaseUsage (self)

Returns the number of bytes all databases in the security origin use on the disk.

QString QWebSecurityOrigin.host (self)

Returns the host name defining the security origin.

QStringList QWebSecurityOrigin.localSchemes ()

Returns a list of all the schemes concidered to be local.

By default this is file:// and qrc://.

This function was introduced in Qt 4.6.

See also addLocalScheme() and removeLocalScheme().

int QWebSecurityOrigin.port (self)

Returns the port number defining the security origin.

QWebSecurityOrigin.removeLocalScheme (QString scheme)

Removes the given scheme from the list of local schemes.

Note: You can not remove the file:// scheme from the list of local schemes.

This function was introduced in Qt 4.6.

See also addLocalScheme().

QString QWebSecurityOrigin.scheme (self)

Returns the scheme defining the security origin.

QWebSecurityOrigin.setApplicationCacheQuota (self, int quota)

QWebSecurityOrigin.setDatabaseQuota (self, int quota)

Sets the quota for the databases in the security origin to quota bytes.

If the quota is set to a value less than the current usage, the quota will remain and no data will be purged to meet the new quota. However, no new data can be added to databases in this origin.

See also databaseQuota().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebsettings.html0000644000076500000240000011335212536324523021074 0ustar philstaff00000000000000 QWebSettings Class Reference
  Home · All Classes · Modules

QWebSettings Class Reference
[QtWebKit module]

The QWebSettings class provides an object to store the settings used by QWebPage and QWebFrame. More...

Types

  • enum FontFamily { StandardFont, FixedFont, SerifFont, SansSerifFont, CursiveFont, FantasyFont }
  • enum FontSize { MinimumFontSize, MinimumLogicalFontSize, DefaultFontSize, DefaultFixedFontSize }
  • enum WebAttribute { AutoLoadImages, JavascriptEnabled, JavaEnabled, PluginsEnabled, ..., HyperlinkAuditingEnabled }
  • enum WebGraphic { MissingImageGraphic, MissingPluginGraphic, DefaultFrameIconGraphic, TextAreaSizeGripCornerGraphic, ..., SearchCancelButtonPressedGraphic }

Methods

Static Methods


Detailed Description

The QWebSettings class provides an object to store the settings used by QWebPage and QWebFrame.

Each QWebPage object has its own QWebSettings object, which configures the settings for that page. If a setting is not configured, then it is looked up in the global settings object, which can be accessed using globalSettings().

QWebSettings allows configuration of browser properties, such as font sizes and families, the location of a custom style sheet, and generic attributes like JavaScript and plugins. Individual attributes are set using the setAttribute() function. The WebAttribute enum further describes each attribute.

QWebSettings also configures global properties such as the web page memory cache, icon database, local database storage and offline applications storage.

Enabling Plugins

Support for browser plugins can enabled by setting the PluginsEnabled attribute. For many applications, this attribute is enabled for all pages by setting it on the global settings object. QtWebKit will always ignore this setting when processing Qt plugins. The decision to allow a Qt plugin is made by the client in its reimplementation of QWebPage.createPlugin().

Web Application Support

WebKit provides support for features specified in HTML 5 that improve the performance and capabilities of Web applications. These include client-side (offline) storage and the use of a Web application cache.

Client-side (offline) storage is an improvement over the use of cookies to store persistent data in Web applications. Applications can configure and enable the use of an offline storage database by calling the setOfflineStoragePath() with an appropriate file path, and can limit the quota for each application by calling setOfflineStorageDefaultQuota().


Type Documentation

QWebSettings.FontFamily

This enum describes the generic font families defined by CSS 2. For more information see the CSS standard.

Constant Value
QWebSettings.StandardFont 0
QWebSettings.FixedFont 1
QWebSettings.SerifFont 2
QWebSettings.SansSerifFont 3
QWebSettings.CursiveFont 4
QWebSettings.FantasyFont 5

QWebSettings.FontSize

This enum describes the font sizes configurable through QWebSettings.

Constant Value Description
QWebSettings.MinimumFontSize 0 The hard minimum font size.
QWebSettings.MinimumLogicalFontSize 1 The minimum logical font size that is applied when zooming out with QWebFrame.setTextSizeMultiplier().
QWebSettings.DefaultFontSize 2 The default font size for regular text.
QWebSettings.DefaultFixedFontSize 3 The default font size for fixed-pitch text.

QWebSettings.WebAttribute

This enum describes various attributes that are configurable through QWebSettings.

Constant Value Description
QWebSettings.AutoLoadImages 0 Specifies whether images are automatically loaded in web pages. This is enabled by default.
QWebSettings.DnsPrefetchEnabled ? Specifies whether QtWebkit will try to pre-fetch DNS entries to speed up browsing. This only works as a global attribute. Only for Qt 4.6 and later. This is disabled by default.
QWebSettings.JavascriptEnabled 1 Enables or disables the running of JavaScript programs. This is enabled by default
QWebSettings.JavaEnabled 2 Enables or disables Java applets. Currently Java applets are not supported.
QWebSettings.PluginsEnabled 3 Enables or disables plugins in Web pages (e.g. using NPAPI). Qt plugins with a mimetype such as "application/x-qt-plugin" are not affected by this setting. This is disabled by default.
QWebSettings.PrivateBrowsingEnabled 4 Private browsing prevents WebKit from recording visited pages in the history and storing web page icons. This is disabled by default.
QWebSettings.JavascriptCanOpenWindows 5 Specifies whether JavaScript programs can open new windows. This is disabled by default.
QWebSettings.JavascriptCanCloseWindows ? Specifies whether JavaScript programs can close windows. This is disabled by default.
QWebSettings.JavascriptCanAccessClipboard 6 Specifies whether JavaScript programs can read or write to the clipboard. This is disabled by default.
QWebSettings.DeveloperExtrasEnabled 7 Enables extra tools for Web developers. Currently this enables the "Inspect" element in the context menu as well as the use of QWebInspector which controls the web inspector for web site debugging. This is disabled by default.
QWebSettings.SpatialNavigationEnabled ? Enables or disables the Spatial Navigation feature, which consists in the ability to navigate between focusable elements in a Web page, such as hyperlinks and form controls, by using Left, Right, Up and Down arrow keys. For example, if a user presses the Right key, heuristics determine whether there is an element he might be trying to reach towards the right and which element he probably wants. This is disabled by default.
QWebSettings.LinksIncludedInFocusChain 8 Specifies whether hyperlinks should be included in the keyboard focus chain. This is enabled by default.
QWebSettings.ZoomTextOnly 9 Specifies whether the zoom factor on a frame applies only to the text or to all content. This is disabled by default.
QWebSettings.PrintElementBackgrounds 10 Specifies whether the background color and images are also drawn when the page is printed. This is enabled by default.
QWebSettings.OfflineStorageDatabaseEnabled 11 Specifies whether support for the HTML 5 offline storage feature is enabled or not. This is disabled by default.
QWebSettings.OfflineWebApplicationCacheEnabled 12 Specifies whether support for the HTML 5 web application cache feature is enabled or not. This is disabled by default.
QWebSettings.LocalStorageEnabled 13 Specifies whether support for the HTML 5 local storage feature is enabled or not. This is disabled by default. (This value was introduced in 4.6.)
QWebSettings.LocalStorageDatabaseEnabled LocalStorageEnabled This enum value is deprecated. Use QWebSettings.LocalStorageEnabled instead.
QWebSettings.LocalContentCanAccessRemoteUrls ? Specifies whether locally loaded documents are allowed to access remote urls. This is disabled by default. For more information about security origins and local vs. remote content see QWebSecurityOrigin. (This value was introduced in 4.6.)
QWebSettings.LocalContentCanAccessFileUrls ? Specifies whether locally loaded documents are allowed to access other local urls. This is enabled by default. For more information about security origins and local vs. remote content see QWebSecurityOrigin.
QWebSettings.XSSAuditingEnabled ? Specifies whether load requests should be monitored for cross-site scripting attempts. Suspicious scripts will be blocked and reported in the inspector's JavaScript console. Enabling this feature might have an impact on performance and it is disabled by default.
QWebSettings.AcceleratedCompositingEnabled ? This feature, when used in conjunction with QGraphicsWebView, accelerates animations of web content. CSS animations of the transform and opacity properties will be rendered by composing the cached content of the animated elements. This is enabled by default.
QWebSettings.TiledBackingStoreEnabled ? This setting enables the tiled backing store feature for a QGraphicsWebView. With the tiled backing store enabled, the web page contents in and around the current visible area is speculatively cached to bitmap tiles. The tiles are automatically kept in sync with the web page as it changes. Enabling tiling can significantly speed up painting heavy operations like scrolling. Enabling the feature increases memory consumption. It does not work well with contents using CSS fixed positioning (see also resizesToContents property). tiledBackingStoreFrozen property allows application to temporarily freeze the contents of the backing store. This is disabled by default.
QWebSettings.FrameFlatteningEnabled ? With this setting each subframe is expanded to its contents. On touch devices, it is desired to not have any scrollable sub parts of the page as it results in a confusing user experience, with scrolling sometimes scrolling sub parts and at other times scrolling the page itself. For this reason iframes and framesets are barely usable on touch devices. This will flatten all the frames to become one scrollable page. This is disabled by default.
QWebSettings.SiteSpecificQuirksEnabled ? This setting enables WebKit's workaround for broken sites. It is enabled by default.

QWebSettings.WebGraphic

This enums describes the standard graphical elements used in webpages.

Constant Value Description
QWebSettings.MissingImageGraphic 0 The replacement graphic shown when an image could not be loaded.
QWebSettings.MissingPluginGraphic 1 The replacement graphic shown when a plugin could not be loaded.
QWebSettings.DefaultFrameIconGraphic 2 The default icon for QWebFrame.icon().
QWebSettings.TextAreaSizeGripCornerGraphic 3 The graphic shown for the size grip of text areas.
QWebSettings.DeleteButtonGraphic 4 The graphic shown for the WebKit-Editing-Delete-Button in Deletion UI.
QWebSettings.InputSpeechButtonGraphic 5 The graphic shown in input fields that support speech recognition.
QWebSettings.SearchCancelButtonGraphic 6 The graphic shown for clearing the text in a search field.
QWebSettings.SearchCancelButtonPressedGraphic 7 The graphic shown when SearchCancelButtonGraphic is pressed.

Method Documentation

QWebSettings.clearIconDatabase ()

Clears the icon database.

QWebSettings.clearMemoryCaches ()

Frees up as much memory as possible by cleaning all memory caches such as page, object and font cache.

This function was introduced in Qt 4.6.

QString QWebSettings.defaultTextEncoding (self)

Returns the default text encoding.

This function was introduced in Qt 4.6.

See also setDefaultTextEncoding().

QWebSettings.enablePersistentStorage (QString path = QString())

Enables WebKit data persistence and sets the path to path. If path is empty, the user-specific data location specified by DataLocation will be used instead.

This method will simultaneously set and enable the iconDatabasePath(), localStoragePath(), offlineStoragePath() and offlineWebApplicationCachePath().

This function was introduced in Qt 4.6.

See also localStoragePath().

QString QWebSettings.fontFamily (self, FontFamily which)

Returns the actual font family for the specified generic font family, which.

See also setFontFamily().

int QWebSettings.fontSize (self, FontSize type)

Returns the default font size for type.

See also setFontSize().

QWebSettings QWebSettings.globalSettings ()

Returns the global settings object.

Any setting changed on the default object is automatically applied to all QWebPage instances where the particular setting is not overriden already.

QString QWebSettings.iconDatabasePath ()

Returns the path of the icon database or an empty string if the icon database is disabled.

See also setIconDatabasePath() and clearIconDatabase().

QIcon QWebSettings.iconForUrl (QUrl url)

Returns the web site's icon for url.

If the web site does not specify an icon OR if the icon is not in the database, a null QIcon is returned.

Note: The returned icon's size is arbitrary.

See also setIconDatabasePath().

QString QWebSettings.localStoragePath (self)

Returns the path for HTML5 local storage.

This function was introduced in Qt 4.6.

See also setLocalStoragePath().

int QWebSettings.maximumPagesInCache ()

Returns the maximum number of web pages that are kept in the memory cache.

See also setMaximumPagesInCache().

int QWebSettings.offlineStorageDefaultQuota ()

Returns the value of the default quota for new offline storage databases.

This function was introduced in Qt 4.5.

See also setOfflineStorageDefaultQuota().

QString QWebSettings.offlineStoragePath ()

Returns the path of the HTML5 client-side database storage or an empty string if the feature is disabled.

This function was introduced in Qt 4.5.

See also setOfflineStoragePath().

QString QWebSettings.offlineWebApplicationCachePath ()

Returns the path of the HTML5 offline web application cache storage or an empty string if the feature is disabled.

This function was introduced in Qt 4.6.

See also setOfflineWebApplicationCachePath().

int QWebSettings.offlineWebApplicationCacheQuota ()

Returns the value of the quota for the offline web application cache.

This function was introduced in Qt 4.6.

See also setOfflineWebApplicationCacheQuota().

QWebSettings.resetAttribute (self, WebAttribute attr)

Resets the setting of attribute to the value specified in the global QWebSettings instance.

This function has no effect on the global QWebSettings instance.

See also globalSettings().

QWebSettings.resetFontFamily (self, FontFamily which)

Resets the actual font family specified by which to the one set in the global QWebSettings instance.

This function has no effect on the global QWebSettings instance.

QWebSettings.resetFontSize (self, FontSize type)

Resets the font size for type to the size specified in the global settings object.

This function has no effect on the global QWebSettings instance.

QWebSettings.setAttribute (self, WebAttribute attr, bool on)

Enables or disables the specified attribute feature depending on the value of on.

QWebSettings.setDefaultTextEncoding (self, QString encoding)

Specifies the default text encoding system.

The encoding, must be a string describing an encoding such as "utf-8", "iso-8859-1", etc. If left empty a default value will be used. For a more extensive list of encoding names see QTextCodec

This function was introduced in Qt 4.6.

See also defaultTextEncoding().

QWebSettings.setFontFamily (self, FontFamily which, QString family)

Sets the actual font family to family for the specified generic family, which.

See also fontFamily().

QWebSettings.setFontSize (self, FontSize type, int size)

Sets the font size for type to size.

See also fontSize().

QWebSettings.setIconDatabasePath (QString location)

Sets the path of the icon database to path. The icon database is used to store "favicons" associated with web sites.

path must point to an existing directory.

Setting an empty path disables the icon database.

See also iconDatabasePath() and clearIconDatabase().

QWebSettings.setLocalStoragePath (self, QString path)

Sets the path for HTML5 local storage to path.

For more information on HTML5 local storage see the Web Storage standard.

Support for local storage can enabled by setting the LocalStorageEnabled attribute.

This function was introduced in Qt 4.6.

See also localStoragePath().

QWebSettings.setMaximumPagesInCache (int pages)

Sets the maximum number of pages to hold in the memory page cache to pages.

The Page Cache allows for a nicer user experience when navigating forth or back to pages in the forward/back history, by pausing and resuming up to pages.

For more information about the feature, please refer to:

http://webkit.org/blog/427/webkit-page-cache-i-the-basics/

See also maximumPagesInCache().

QWebSettings.setObjectCacheCapacities (int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity)

Specifies the capacities for the memory cache for dead objects such as stylesheets or scripts.

The cacheMinDeadCapacity specifies the minimum number of bytes that dead objects should consume when the cache is under pressure.

cacheMaxDead is the maximum number of bytes that dead objects should consume when the cache is not under pressure.

totalCapacity specifies the maximum number of bytes that the cache should consume overall.

The cache is enabled by default. Calling setObjectCacheCapacities(0, 0, 0) will disable the cache. Calling it with one non-zero enables it again.

QWebSettings.setOfflineStorageDefaultQuota (int maximumSize)

Sets the value of the default quota for new offline storage databases to maximumSize.

This function was introduced in Qt 4.5.

See also offlineStorageDefaultQuota().

QWebSettings.setOfflineStoragePath (QString path)

Sets path as the save location for HTML5 client-side database storage data.

path must point to an existing directory.

Setting an empty path disables the feature.

Support for client-side databases can enabled by setting the OfflineStorageDatabaseEnabled attribute.

This function was introduced in Qt 4.5.

See also offlineStoragePath().

QWebSettings.setOfflineWebApplicationCachePath (QString path)

Sets the path for HTML5 offline web application cache storage to path.

An application cache acts like an HTTP cache in some sense. For documents that use the application cache via JavaScript, the loader engine will first ask the application cache for the contents, before hitting the network.

The feature is described in details at: http://dev.w3.org/html5/spec/Overview.html#appcache

path must point to an existing directory.

Setting an empty path disables the feature.

Support for offline web application cache storage can enabled by setting the OfflineWebApplicationCacheEnabled attribute.

This function was introduced in Qt 4.6.

See also offlineWebApplicationCachePath().

QWebSettings.setOfflineWebApplicationCacheQuota (int maximumSize)

Sets the value of the quota for the offline web application cache to maximumSize.

This function was introduced in Qt 4.6.

See also offlineWebApplicationCacheQuota().

QWebSettings.setUserStyleSheetUrl (self, QUrl location)

Specifies the location of a user stylesheet to load with every web page.

The location must be either a path on the local filesystem, or a data URL with UTF-8 and Base64 encoded data, such as:

"data:text/css;charset=utf-8;base64,cCB7IGJhY2tncm91bmQtY29sb3I6IHJlZCB9Ow=="

Note: If the base64 data is not valid, the style will not be applied.

See also userStyleSheetUrl().

QWebSettings.setWebGraphic (WebGraphic type, QPixmap graphic)

Sets graphic to be drawn when QtWebKit needs to draw an image of the given type.

For example, when an image cannot be loaded, the pixmap specified by MissingImageGraphic is drawn instead.

See also webGraphic().

bool QWebSettings.testAttribute (self, WebAttribute attr)

Returns true if attribute is enabled; otherwise returns false.

QUrl QWebSettings.userStyleSheetUrl (self)

Returns the location of the user stylesheet.

See also setUserStyleSheetUrl().

QPixmap QWebSettings.webGraphic (WebGraphic type)

Returns a previously set pixmap used to draw replacement graphics of the specified type.

See also setWebGraphic().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwebview.html0000644000076500000240000011024212536324523020201 0ustar philstaff00000000000000 QWebView Class Reference
  Home · All Classes · Modules

QWebView Class Reference
[QtWebKit module]

The QWebView class provides a widget that is used to view and edit web documents. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QWebView class provides a widget that is used to view and edit web documents.

QWebView is the main widget component of the QtWebKit web browsing module. It can be used in various applications to display web content live from the Internet.

A web site can be loaded onto QWebView with the load() function. Like all Qt widgets, the show() function must be invoked in order to display QWebView. The snippet below illustrates this:

     QWebView *view = new QWebView(parent);
     view->load(QUrl("http://qt-project.org"));
     view->show();

Alternatively, setUrl() can also be used to load a web site. If you have the HTML content readily available, you can use setHtml() instead.

The loadStarted() signal is emitted when the view begins loading. The loadProgress() signal, on the other hand, is emitted whenever an element of the web view completes loading, such as an embedded image, a script, etc. Finally, the loadFinished() signal is emitted when the view has loaded completely. It's argument - either true or false - indicates load success or failure.

The page() function returns a pointer to the web page object. See Elements of QWebView for an explanation of how the web page is related to the view. To modify your web view's settings, you can access the QWebSettings object with the settings() function. With QWebSettings, you can change the default fonts, enable or disable features such as JavaScript and plugins.

The title of an HTML document can be accessed with the title() property. Additionally, a web site may also specify an icon, which can be accessed using the icon() property. If the title or the icon changes, the corresponding titleChanged() and iconChanged() signals will be emitted. The textSizeMultiplier() property can be used to change the overall size of the text displayed in the web view.

If you require a custom context menu, you can implement it by reimplementing contextMenuEvent() and populating your QMenu with the actions obtained from pageAction(). More functionality such as reloading the view, copying selected text to the clipboard, or pasting into the view, is also encapsulated within the QAction objects returned by pageAction(). These actions can be programmatically triggered using triggerPageAction(). Alternatively, the actions can be added to a toolbar or a menu directly. QWebView maintains the state of the returned actions but allows modification of action properties such as text or icon.

A QWebView can be printed onto a QPrinter using the print_() function. This function is marked as a slot and can be conveniently connected to QPrintPreviewDialog's paintRequested() signal.

If you want to provide support for web sites that allow the user to open new windows, such as pop-up windows, you can subclass QWebView and reimplement the createWindow() function.

Elements of QWebView

QWebView consists of other objects such as QWebFrame and QWebPage. The flowchart below shows these elements are related.

Note: It is possible to use QWebPage and QWebFrame, without using QWebView, if you do not require QWidget attributes. Nevertheless, QtWebKit depends on QtGui, so you should use a QApplication instead of QCoreApplication.


Method Documentation

QWebView.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an empty QWebView with parent parent.

See also load().

QWebView.back (self)

This method is also a Qt slot with the C++ signature void back().

Convenience slot that loads the previous document in the list of documents built by navigating links. Does nothing if there is no previous document.

It is equivalent to

     view->page()->triggerPageAction(QWebPage.GoBack);

See also forward() and pageAction().

QWebView.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QWebView.contextMenuEvent (self, QContextMenuEvent)

Reimplemented from QWidget.contextMenuEvent().

QWebView QWebView.createWindow (self, QWebPage.WebWindowType type)

This function is called from the createWindow() method of the associated QWebPage, each time the page wants to create a new window of the given type. This might be the result, for example, of a JavaScript request to open a document in a new window.

Note: If the createWindow() method of the associated page is reimplemented, this method is not called, unless explicitly done so in the reimplementation.

Note: In the cases when the window creation is being triggered by JavaScript, apart from reimplementing this method application must also set the JavaScriptCanOpenWindows attribute of QWebSettings to true in order for it to get called.

See also QWebPage.createWindow() and QWebPage.acceptNavigationRequest().

QWebView.dragEnterEvent (self, QDragEnterEvent)

Reimplemented from QWidget.dragEnterEvent().

QWebView.dragLeaveEvent (self, QDragLeaveEvent)

Reimplemented from QWidget.dragLeaveEvent().

QWebView.dragMoveEvent (self, QDragMoveEvent)

Reimplemented from QWidget.dragMoveEvent().

QWebView.dropEvent (self, QDropEvent)

Reimplemented from QWidget.dropEvent().

bool QWebView.event (self, QEvent)

Reimplemented from QObject.event().

bool QWebView.findText (self, QString subString, QWebPage.FindFlags options = 0)

Finds the specified string, subString, in the page, using the given options.

If the HighlightAllOccurrences flag is passed, the function will highlight all occurrences that exist in the page. All subsequent calls will extend the highlight, rather than replace it, with occurrences of the new string.

If the HighlightAllOccurrences flag is not passed, the function will select an occurrence and all subsequent calls will replace the current occurrence with the next one.

To clear the selection, just pass an empty string.

Returns true if subString was found; otherwise returns false.

See also selectedText() and selectionChanged().

QWebView.focusInEvent (self, QFocusEvent)

Reimplemented from QWidget.focusInEvent().

bool QWebView.focusNextPrevChild (self, bool next)

Reimplemented from QWidget.focusNextPrevChild().

QWebView.focusOutEvent (self, QFocusEvent)

Reimplemented from QWidget.focusOutEvent().

QWebView.forward (self)

This method is also a Qt slot with the C++ signature void forward().

Convenience slot that loads the next document in the list of documents built by navigating links. Does nothing if there is no next document.

It is equivalent to

     view->page()->triggerPageAction(QWebPage.GoForward);

See also back() and pageAction().

bool QWebView.hasSelection (self)

QWebHistory QWebView.history (self)

Returns a pointer to the view's history of navigated web pages.

It is equivalent to

     view->page()->history();

QIcon QWebView.icon (self)

QWebView.inputMethodEvent (self, QInputMethodEvent)

Reimplemented from QWidget.inputMethodEvent().

QVariant QWebView.inputMethodQuery (self, Qt.InputMethodQuery property)

Reimplemented from QWidget.inputMethodQuery().

bool QWebView.isModified (self)

QWebView.keyPressEvent (self, QKeyEvent)

Reimplemented from QWidget.keyPressEvent().

QWebView.keyReleaseEvent (self, QKeyEvent)

Reimplemented from QWidget.keyReleaseEvent().

QWebView.load (self, QUrl url)

Loads the specified url and displays it.

Note: The view remains the same until enough data has arrived to display the new url.

See also setUrl(), url(), urlChanged(), and QUrl.fromUserInput().

QWebView.load (self, QNetworkRequest request, QNetworkAccessManager.Operation operation = QNetworkAccessManager.GetOperation, QByteArray body = QByteArray())

Loads a network request, request, using the method specified in operation.

body is optional and is only used for POST operations.

Note: The view remains the same until enough data has arrived to display the new url.

See also url() and urlChanged().

QWebView.mouseDoubleClickEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseDoubleClickEvent().

QWebView.mouseMoveEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseMoveEvent().

QWebView.mousePressEvent (self, QMouseEvent)

Reimplemented from QWidget.mousePressEvent().

QWebView.mouseReleaseEvent (self, QMouseEvent)

Reimplemented from QWidget.mouseReleaseEvent().

QWebPage QWebView.page (self)

Returns a pointer to the underlying web page.

See also setPage().

QAction QWebView.pageAction (self, QWebPage.WebAction action)

Returns a pointer to a QAction that encapsulates the specified web action action.

QWebView.paintEvent (self, QPaintEvent ev)

Reimplemented from QWidget.paintEvent().

QWebView.print_ (self, QPrinter printer)

This method is also a Qt slot with the C++ signature void print(QPrinter*) const.

Prints the main frame to the given printer.

See also QWebFrame.print() and QPrintPreviewDialog.

QWebView.reload (self)

This method is also a Qt slot with the C++ signature void reload().

Reloads the current document.

See also stop(), pageAction(), and loadStarted().

QPainter.RenderHints QWebView.renderHints (self)

QWebView.resizeEvent (self, QResizeEvent e)

Reimplemented from QWidget.resizeEvent().

QString QWebView.selectedHtml (self)

QString QWebView.selectedText (self)

QWebView.setContent (self, QByteArray data, QString mimeType = QString(), QUrl baseUrl = QUrl())

Sets the content of the web view to the specified content data. If the mimeType argument is empty it is currently assumed that the content is HTML but in future versions we may introduce auto-detection.

External objects referenced in the content are located relative to baseUrl.

The data is loaded immediately; external objects are loaded asynchronously.

See also load(), setHtml(), and QWebFrame.toHtml().

QWebView.setHtml (self, QString html, QUrl baseUrl = QUrl())

Sets the content of the web view to the specified html.

External objects such as stylesheets or images referenced in the HTML document are located relative to baseUrl.

The html is loaded immediately; external objects are loaded asynchronously.

When using this method, WebKit assumes that external resources such as JavaScript programs or style sheets are encoded in UTF-8 unless otherwise specified. For example, the encoding of an external script can be specified through the charset attribute of the HTML script tag. Alternatively, the encoding can also be specified by the web server.

This is a convenience function equivalent to setContent(html, "text/html", baseUrl).

Warning: This function works only for HTML, for other mime types (i.e. XHTML, SVG) setContent() should be used instead.

See also load(), setContent(), QWebFrame.toHtml(), and QWebFrame.setContent().

QWebView.setPage (self, QWebPage page)

Makes page the new web page of the web view.

The parent QObject of the provided page remains the owner of the object. If the current page is a child of the web view, it will be deleted.

See also page().

QWebView.setRenderHint (self, QPainter.RenderHint hint, bool enabled = True)

If enabled is true, enables the specified render hint; otherwise disables it.

This function was introduced in Qt 4.6.

See also renderHints and QPainter.renderHints().

QWebView.setRenderHints (self, QPainter.RenderHints hints)

QWebView.setTextSizeMultiplier (self, float factor)

Sets the value of the multiplier used to scale the text in a Web page to the factor specified.

See also textSizeMultiplier().

QWebSettings QWebView.settings (self)

Returns a pointer to the view/page specific settings object.

It is equivalent to

     view->page()->settings();

See also QWebSettings.globalSettings().

QWebView.setUrl (self, QUrl url)

QWebView.setZoomFactor (self, float factor)

QSize QWebView.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QWebView.stop (self)

This method is also a Qt slot with the C++ signature void stop().

Convenience slot that stops loading the document.

It is equivalent to

     view->page()->triggerPageAction(QWebPage.Stop);

See also reload(), pageAction(), and loadFinished().

float QWebView.textSizeMultiplier (self)

Returns the value of the multiplier used to scale the text in a Web page.

See also setTextSizeMultiplier().

QString QWebView.title (self)

QWebView.triggerPageAction (self, QWebPage.WebAction action, bool checked = False)

Triggers the specified action. If it is a checkable action the specified checked state is assumed.

The following example triggers the copy action and therefore copies any selected text to the clipboard.

     view->triggerAction(QWebPage.Copy);

See also pageAction().

QUrl QWebView.url (self)

QWebView.wheelEvent (self, QWheelEvent)

Reimplemented from QWidget.wheelEvent().

float QWebView.zoomFactor (self)


Qt Signal Documentation

void iconChanged ()

This is the default overload of this signal.

This signal is emitted whenever the icon of the page is loaded or changes.

In order for icons to be loaded, you will need to set an icon database path using QWebSettings.setIconDatabasePath().

See also icon() and QWebSettings.setIconDatabasePath().

void linkClicked (const QUrl&)

This is the default overload of this signal.

This signal is emitted whenever the user clicks on a link and the page's linkDelegationPolicy property is set to delegate the link handling for the specified url.

See also QWebPage.linkDelegationPolicy().

void loadFinished (bool)

This is the default overload of this signal.

This signal is emitted when a load of the page is finished. ok will indicate whether the load was successful or any error occurred.

See also loadStarted().

void loadProgress (int)

This is the default overload of this signal.

This signal is emitted every time an element in the web page completes loading and the overall loading progress advances.

This signal tracks the progress of all child frames.

The current value is provided by progress and scales from 0 to 100, which is the default range of QProgressBar.

See also loadStarted() and loadFinished().

void loadStarted ()

This is the default overload of this signal.

This signal is emitted when a new load of the page is started.

See also loadProgress() and loadFinished().

void selectionChanged ()

This is the default overload of this signal.

This signal is emitted whenever the selection changes.

See also selectedText().

void statusBarMessage (const QString&)

This is the default overload of this signal.

This signal is emitted when the status bar text is changed by the page.

void titleChanged (const QString&)

This is the default overload of this signal.

This signal is emitted whenever the title of the main frame changes.

See also title().

void urlChanged (const QUrl&)

This is the default overload of this signal.

This signal is emitted when the url of the view changes.

See also url() and load().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwhatsthis.html0000644000076500000240000002336512536324516020562 0ustar philstaff00000000000000 QWhatsThis Class Reference
  Home · All Classes · Modules

QWhatsThis Class Reference
[QtGui module]

The QWhatsThis class provides a simple description of any widget, i.e. answering the question "What's This?". More...

Methods

Static Methods


Detailed Description

The QWhatsThis class provides a simple description of any widget, i.e. answering the question "What's This?".

"What's This?" help is part of an application's online help system, and provides users with information about the functionality and usage of a particular widget. "What's This?" help texts are typically longer and more detailed than tooltips, but generally provide less information than that supplied by separate help windows.

QWhatsThis provides a single window with an explanatory text that pops up when the user asks "What's This?". The default way for users to ask the question is to move the focus to the relevant widget and press Shift+F1. The help text appears immediately; it goes away as soon as the user does something else. (Note that if there is a shortcut for Shift+F1, this mechanism will not work.) Some dialogs provide a "?" button that users can click to enter "What's This?" mode; they then click the relevant widget to pop up the "What's This?" window. It is also possible to provide a a menu option or toolbar button to switch into "What's This?" mode.

To add "What's This?" text to a widget or an action, you simply call QWidget.setWhatsThis() or QAction.setWhatsThis().

The text can be either rich text or plain text. If you specify a rich text formatted string, it will be rendered using the default stylesheet, making it possible to embed images in the displayed text. To be as fast as possible, the default stylesheet uses a simple method to determine whether the text can be rendered as plain text. See Qt.mightBeRichText() for details.

     newAct = new QAction(tr("&New"), this);
     newAct->setShortcut(tr("Ctrl+N"));
     newAct->setStatusTip(tr("Create a new file"));
     newAct->setWhatsThis(tr("Click this option to create a new file."));

An alternative way to enter "What's This?" mode is to call createAction(), and add the returned QAction to either a menu or a tool bar. By invoking this context help action (in the picture below, the button with the arrow and question mark icon) the user switches into "What's This?" mode. If they now click on a widget the appropriate help text is shown. The mode is left when help is given or when the user presses Esc.

You can enter "What's This?" mode programmatically with enterWhatsThisMode(), check the mode with inWhatsThisMode(), and return to normal mode with leaveWhatsThisMode().

If you want to control the "What's This?" behavior of a widget manually see Qt.WA_CustomWhatsThis.

It is also possible to show different help texts for different regions of a widget, by using a QHelpEvent of type QEvent.WhatsThis. Intercept the help event in your widget's QWidget.event() function and call QWhatsThis.showText() with the text you want to display for the position specified in QHelpEvent.pos(). If the text is rich text and the user clicks on a link, the widget also receives a QWhatsThisClickedEvent with the link's reference as QWhatsThisClickedEvent.href(). If a QWhatsThisClickedEvent is handled (i.e. QWidget.event() returns true), the help window remains visible. Call QWhatsThis.hideText() to hide it explicitly.


Method Documentation

QWhatsThis.__init__ (self, QWhatsThis)

QAction QWhatsThis.createAction (QObject parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Returns a ready-made QAction, used to invoke "What's This?" context help, with the given parent.

The returned QAction provides a convenient way to let users enter "What's This?" mode.

QWhatsThis.enterWhatsThisMode ()

This function switches the user interface into "What's This?" mode. The user interface can be switched back into normal mode by the user (e.g. by them clicking or pressing Esc), or programmatically by calling leaveWhatsThisMode().

When entering "What's This?" mode, a QEvent of type Qt.EnterWhatsThisMode is sent to all toplevel widgets.

See also inWhatsThisMode() and leaveWhatsThisMode().

QWhatsThis.hideText ()

If a "What's This?" window is showing, this destroys it.

See also showText().

bool QWhatsThis.inWhatsThisMode ()

Returns true if the user interface is in "What's This?" mode; otherwise returns false.

See also enterWhatsThisMode().

QWhatsThis.leaveWhatsThisMode ()

If the user interface is in "What's This?" mode, this function switches back to normal mode; otherwise it does nothing.

When leaving "What's This?" mode, a QEvent of type Qt.LeaveWhatsThisMode is sent to all toplevel widgets.

See also enterWhatsThisMode() and inWhatsThisMode().

QWhatsThis.showText (QPoint pos, QString text, QWidget widget = None)

Shows text as a "What's This?" window, at global position pos. The optional widget argument, w, is used to determine the appropriate screen on multi-head systems.

See also hideText().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwhatsthisclickedevent.html0000644000076500000240000000576512536324503023143 0ustar philstaff00000000000000 QWhatsThisClickedEvent Class Reference
  Home · All Classes · Modules

QWhatsThisClickedEvent Class Reference
[QtGui module]

The QWhatsThisClickedEvent class provides an event that can be used to handle hyperlinks in a "What's This?" text. More...

Inherits QEvent.

Methods


Detailed Description

The QWhatsThisClickedEvent class provides an event that can be used to handle hyperlinks in a "What's This?" text.


Method Documentation

QWhatsThisClickedEvent.__init__ (self, QString href)

Constructs an event containing a URL specified by href when a link is clicked in a "What's This?" message.

See also href().

QWhatsThisClickedEvent.__init__ (self, QWhatsThisClickedEvent)

QString QWhatsThisClickedEvent.href (self)

Returns the URL that was clicked by the user in the "What's This?" text.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwheelevent.html0000644000076500000240000002607612536324503020710 0ustar philstaff00000000000000 QWheelEvent Class Reference
  Home · All Classes · Modules

QWheelEvent Class Reference
[
QtGui module]

The QWheelEvent class contains parameters that describe a wheel event. More...

Inherits QInputEvent.

Methods

  • __init__ (self, QPoint pos, int delta, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers, Qt.Orientation orientation = Qt.Vertical)
  • __init__ (self, QPoint pos, QPoint globalPos, int delta, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers, Qt.Orientation orientation = Qt.Vertical)
  • __init__ (self, QWheelEvent)
  • Qt.MouseButtons buttons (self)
  • int delta (self)
  • QPoint globalPos (self)
  • int globalX (self)
  • int globalY (self)
  • Qt.Orientation orientation (self)
  • QPoint pos (self)
  • int x (self)
  • int y (self)

Detailed Description

The QWheelEvent class contains parameters that describe a wheel event.

Wheel events are sent to the widget under the mouse cursor, but if that widget does not handle the event they are sent to the focus widget. The rotation distance is provided by delta(). The functions pos() and globalPos() return the mouse cursor's location at the time of the event.

A wheel event contains a special accept flag that indicates whether the receiver wants the event. You should call ignore() if you do not handle the wheel event; this ensures that it will be sent to the parent widget.

The QWidget.setEnabled() function can be used to enable or disable mouse and keyboard events for a widget.

The event handler QWidget.wheelEvent() receives wheel events.


Method Documentation

QWheelEvent.__init__ (self, QPoint pos, int delta, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers, Qt.Orientation orientation = Qt.Vertical)

Constructs a wheel event object.

The position, pos, is the location of the mouse cursor within the widget. The globalPos() is initialized to QCursor.pos() which is usually, but not always, correct. Use the other constructor if you need to specify the global position explicitly.

The buttons describe the state of the mouse buttons at the time of the event, delta contains the rotation distance, modifiers holds the keyboard modifier flags at the time of the event, and orient holds the wheel's orientation.

See also pos(), delta(), and state().

QWheelEvent.__init__ (self, QPoint pos, QPoint globalPos, int delta, Qt.MouseButtons buttons, Qt.KeyboardModifiers modifiers, Qt.Orientation orientation = Qt.Vertical)

Constructs a wheel event object.

The pos provides the location of the mouse cursor within the widget. The position in global coordinates is specified by globalPos. delta contains the rotation distance, modifiers holds the keyboard modifier flags at the time of the event, and orient holds the wheel's orientation.

See also pos(), globalPos(), delta(), and state().

QWheelEvent.__init__ (self, QWheelEvent)

Qt.MouseButtons QWheelEvent.buttons (self)

Returns the mouse state when the event occurred.

int QWheelEvent.delta (self)

Returns the distance that the wheel is rotated, in eighths of a degree. A positive value indicates that the wheel was rotated forwards away from the user; a negative value indicates that the wheel was rotated backwards toward the user.

Most mouse types work in steps of 15 degrees, in which case the delta value is a multiple of 120; i.e., 120 units * 1/8 = 15 degrees.

However, some mice have finer-resolution wheels and send delta values that are less than 120 units (less than 15 degrees). To support this possibility, you can either cumulatively add the delta values from events until the value of 120 is reached, then scroll the widget, or you can partially scroll the widget in response to each wheel event.

Example:

 void MyWidget.wheelEvent(QWheelEvent *event)
 {
     int numDegrees = event->delta() / 8;
     int numSteps = numDegrees / 15;

     if (event->orientation() == Qt.Horizontal) {
         scrollHorizontally(numSteps);
     } else {
         scrollVertically(numSteps);
     }
     event->accept();
 }

QPoint QWheelEvent.globalPos (self)

Returns the global position of the mouse pointer at the time of the event. This is important on asynchronous window systems such as X11; whenever you move your widgets around in response to mouse events, globalPos() can differ a lot from the current cursor position returned by QCursor.pos().

See also globalX() and globalY().

int QWheelEvent.globalX (self)

Returns the global x position of the mouse cursor at the time of the event.

See also globalY() and globalPos().

int QWheelEvent.globalY (self)

Returns the global y position of the mouse cursor at the time of the event.

See also globalX() and globalPos().

Qt.Orientation QWheelEvent.orientation (self)

Returns the wheel's orientation.

QPoint QWheelEvent.pos (self)

Returns the position of the mouse cursor relative to the widget that received the event.

If you move your widgets around in response to mouse events, use globalPos() instead of this function.

See also x(), y(), and globalPos().

int QWheelEvent.x (self)

Returns the x position of the mouse cursor, relative to the widget that received the event.

See also y() and pos().

int QWheelEvent.y (self)

Returns the y position of the mouse cursor, relative to the widget that received the event.

See also x() and pos().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwidget-renderflags.html0000644000076500000240000001375412536324516022322 0ustar philstaff00000000000000 QWidget.RenderFlags Class Reference
  Home · All Classes · Modules

QWidget.RenderFlags Class Reference
[QtGui module]

Methods

Special Methods


Detailed Description

RenderFlag may be used whenever RenderFlags is expected.


Method Documentation

RenderFlags.__init__ (self, RenderFlags)

RenderFlags.__init__ (self, int)

RenderFlags.__init__ (self)

RenderFlags RenderFlags.__and__ (self, int mask)

int RenderFlags.__bool__ (self)

bool RenderFlags.__eq__ (self, RenderFlags f)

RenderFlags RenderFlags.__iand__ (self, int mask)

int RenderFlags.__int__ (self)

RenderFlags RenderFlags.__invert__ (self)

RenderFlags RenderFlags.__ior__ (self, RenderFlags f)

RenderFlags RenderFlags.__ixor__ (self, RenderFlags f)

bool RenderFlags.__ne__ (self, RenderFlags f)

RenderFlags RenderFlags.__or__ (self, RenderFlags f)

RenderFlags RenderFlags.__or__ (self, int f)

RenderFlags RenderFlags.__xor__ (self, RenderFlags f)

RenderFlags RenderFlags.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwidget.html0000644000076500000240000060220612536324500020015 0ustar philstaff00000000000000 QWidget Class Reference
  Home · All Classes · Modules

QWidget Class Reference
[QtGui module]

The QWidget class is the base class of all user interface objects. More...

Inherits QObject and QPaintDevice.

Inherited by EffectWidget, SeekSlider, VideoPlayer, VideoWidget, VolumeSlider, QAbstractButton, QAbstractSlider, QAbstractSpinBox, QCalendarWidget, QComboBox, QDesignerActionEditorInterface, QDesignerFormWindowInterface, QDesignerObjectInspectorInterface, QDesignerPropertyEditorInterface, QDesignerWidgetBoxInterface, QDesktopWidget, QDialog, QDialogButtonBox, QDockWidget, QFocusFrame, QFrame, QGLWidget, QGroupBox, QHelpSearchQueryWidget, QHelpSearchResultWidget, QLineEdit, QMainWindow, QMdiSubWindow, QMenu, QMenuBar, QPrintPreviewWidget, QProgressBar, QRubberBand, QSizeGrip, QSplashScreen, QSplitterHandle, QStatusBar, QSvgWidget, QTabBar, QTabWidget, QToolBar, QWebInspector, QWebView, QWizardPage, QWorkspace, QX11EmbedContainer and QX11EmbedWidget.

Types

Methods

Static Methods

Qt Signals


Detailed Description

The QWidget class is the base class of all user interface objects.

The widget is the atom of the user interface: it receives mouse, keyboard and other events from the window system, and paints a representation of itself on the screen. Every widget is rectangular, and they are sorted in a Z-order. A widget is clipped by its parent and by the widgets in front of it.

A widget that is not embedded in a parent widget is called a window. Usually, windows have a frame and a title bar, although it is also possible to create windows without such decoration using suitable window flags). In Qt, QMainWindow and the various subclasses of QDialog are the most common window types.

Every widget's constructor accepts one or two standard arguments:

  1. QWidget *parent = 0 is the parent of the new widget. If it is 0 (the default), the new widget will be a window. If not, it will be a child of parent, and be constrained by parent's geometry (unless you specify Qt.Window as window flag).
  2. Qt.WindowFlags f = 0 (where available) sets the window flags; the default is suitable for almost all widgets, but to get, for example, a window without a window system frame, you must use special flags.

QWidget has many member functions, but some of them have little direct functionality; for example, QWidget has a font property, but never uses this itself. There are many subclasses which provide real functionality, such as QLabel, QPushButton, QListWidget, and QTabWidget.

Top-Level and Child Widgets

A widget without a parent widget is always an independent window (top-level widget). For these widgets, setWindowTitle() and setWindowIcon() set the title bar and icon respectively.

Non-window widgets are child widgets, displayed within their parent widgets. Most widgets in Qt are mainly useful as child widgets. For example, it is possible to display a button as a top-level window, but most people prefer to put their buttons inside other widgets, such as QDialog.

A parent widget containing various child widgets.

The diagram above shows a QGroupBox widget being used to hold various child widgets in a layout provided by QGridLayout. The QLabel child widgets have been outlined to indicate their full sizes.

If you want to use a QWidget to hold child widgets you will usually want to add a layout to the parent QWidget. See Layout Management for more information.

Composite Widgets

When a widget is used as a container to group a number of child widgets, it is known as a composite widget. These can be created by constructing a widget with the required visual properties - a QFrame, for example - and adding child widgets to it, usually managed by a layout. The above diagram shows such a composite widget that was created using Qt Designer.

Composite widgets can also be created by subclassing a standard widget, such as QWidget or QFrame, and adding the necessary layout and child widgets in the constructor of the subclass. Many of the examples provided with Qt use this approach, and it is also covered in the Qt Tutorials.

Custom Widgets and Painting

Since QWidget is a subclass of QPaintDevice, subclasses can be used to display custom content that is composed using a series of painting operations with an instance of the QPainter class. This approach contrasts with the canvas-style approach used by the Graphics View Framework where items are added to a scene by the application and are rendered by the framework itself.

Each widget performs all painting operations from within its paintEvent() function. This is called whenever the widget needs to be redrawn, either as a result of some external change or when requested by the application.

The Analog Clock example shows how a simple widget can handle paint events.

Size Hints and Size Policies

When implementing a new widget, it is almost always useful to reimplement sizeHint() to provide a reasonable default size for the widget and to set the correct size policy with setSizePolicy().

By default, composite widgets which do not provide a size hint will be sized according to the space requirements of their child widgets.

The size policy lets you supply good default behavior for the layout management system, so that other widgets can contain and manage yours easily. The default size policy indicates that the size hint represents the preferred size of the widget, and this is often good enough for many widgets.

Note: The size of top-level widgets are constrained to 2/3 of the desktop's height and width. You can resize() the widget manually if these bounds are inadequate.

Events

Widgets respond to events that are typically caused by user actions. Qt delivers events to widgets by calling specific event handler functions with instances of QEvent subclasses containing information about each event.

If your widget only contains child widgets, you probably do not need to implement any event handlers. If you want to detect a mouse click in a child widget call the child's underMouse() function inside the widget's mousePressEvent().

The Scribble example implements a wider set of events to handle mouse movement, button presses, and window resizing.

You will need to supply the behavior and content for your own widgets, but here is a brief overview of the events that are relevant to QWidget, starting with the most common ones:

  • paintEvent() is called whenever the widget needs to be repainted. Every widget displaying custom content must implement it. Painting using a QPainter can only take place in a paintEvent() or a function called by a paintEvent().
  • resizeEvent() is called when the widget has been resized.
  • mousePressEvent() is called when a mouse button is pressed while the mouse cursor is inside the widget, or when the widget has grabbed the mouse using grabMouse(). Pressing the mouse without releasing it is effectively the same as calling grabMouse().
  • mouseReleaseEvent() is called when a mouse button is released. A widget receives mouse release events when it has received the corresponding mouse press event. This means that if the user presses the mouse inside your widget, then drags the mouse somewhere else before releasing the mouse button, your widget receives the release event. There is one exception: if a popup menu appears while the mouse button is held down, this popup immediately steals the mouse events.
  • mouseDoubleClickEvent() is called when the user double-clicks in the widget. If the user double-clicks, the widget receives a mouse press event, a mouse release event and finally this event instead of a second mouse press event. (Some mouse move events may also be received if the mouse is not held steady during this operation.) It is not possible to distinguish a click from a double-click until the second click arrives. (This is one reason why most GUI books recommend that double-clicks be an extension of single-clicks, rather than trigger a different action.)

Widgets that accept keyboard input need to reimplement a few more event handlers:

  • keyPressEvent() is called whenever a key is pressed, and again when a key has been held down long enough for it to auto-repeat. The Tab and Shift+Tab keys are only passed to the widget if they are not used by the focus-change mechanisms. To force those keys to be processed by your widget, you must reimplement QWidget.event().
  • focusInEvent() is called when the widget gains keyboard focus (assuming you have called setFocusPolicy()). Well-behaved widgets indicate that they own the keyboard focus in a clear but discreet way.
  • focusOutEvent() is called when the widget loses keyboard focus.

You may be required to also reimplement some of the less common event handlers:

  • mouseMoveEvent() is called whenever the mouse moves while a mouse button is held down. This can be useful during drag and drop operations. If you call setMouseTracking(true), you get mouse move events even when no buttons are held down. (See also the Drag and Drop guide.)
  • keyReleaseEvent() is called whenever a key is released and while it is held down (if the key is auto-repeating). In that case, the widget will receive a pair of key release and key press event for every repeat. The Tab and Shift+Tab keys are only passed to the widget if they are not used by the focus-change mechanisms. To force those keys to be processed by your widget, you must reimplement QWidget.event().
  • wheelEvent() is called whenever the user turns the mouse wheel while the widget has the focus.
  • enterEvent() is called when the mouse enters the widget's screen space. (This excludes screen space owned by any of the widget's children.)
  • leaveEvent() is called when the mouse leaves the widget's screen space. If the mouse enters a child widget it will not cause a leaveEvent().
  • moveEvent() is called when the widget has been moved relative to its parent.
  • closeEvent() is called when the user closes the widget (or when close() is called).

There are also some rather obscure events described in the documentation for QEvent.Type. To handle these events, you need to reimplement event() directly.

The default implementation of event() handles Tab and Shift+Tab (to move the keyboard focus), and passes on most of the other events to one of the more specialized handlers above.

Events and the mechanism used to deliver them are covered in The Event System.

Groups of Functions and Properties

Context Functions and Properties
Window functions show(), hide(), raise_(), lower(), close().
Top-level windows windowModified, windowTitle, windowIcon, windowIconText, isActiveWindow, activateWindow(), minimized, showMinimized(), maximized, showMaximized(), fullScreen, showFullScreen(), showNormal().
Window contents update(), repaint(), scroll().
Geometry pos, x(), y(), rect, size, width(), height(), move(), resize(), sizePolicy, sizeHint(), minimumSizeHint(), updateGeometry(), layout(), frameGeometry, geometry, childrenRect, childrenRegion, adjustSize(), mapFromGlobal(), mapToGlobal(), mapFromParent(), mapToParent(), maximumSize, minimumSize, sizeIncrement, baseSize, setFixedSize()
Mode visible, isVisibleTo(), enabled, isEnabledTo(), modal, isWindow(), mouseTracking, updatesEnabled, visibleRegion().
Look and feel style(), setStyle(), styleSheet, cursor, font, palette, backgroundRole(), setBackgroundRole(), fontInfo(), fontMetrics().
Keyboard focus functions focus, focusPolicy, setFocus(), clearFocus(), setTabOrder(), setFocusProxy(), focusNextChild(), focusPreviousChild().
Mouse and keyboard grabbing grabMouse(), releaseMouse(), grabKeyboard(), releaseKeyboard(), mouseGrabber(), keyboardGrabber().
Event handlers event(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), keyPressEvent(), keyReleaseEvent(), focusInEvent(), focusOutEvent(), wheelEvent(), enterEvent(), leaveEvent(), paintEvent(), moveEvent(), resizeEvent(), closeEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), childEvent(), showEvent(), hideEvent(), customEvent(). changeEvent(),
System functions parentWidget(), window(), setParent(), winId(), find(), metric().
Interactive help setToolTip(), setWhatsThis()

Widget Style Sheets

In addition to the standard widget styles for each platform, widgets can also be styled according to rules specified in a style sheet. This feature enables you to customize the appearance of specific widgets to provide visual cues to users about their purpose. For example, a button could be styled in a particular way to indicate that it performs a destructive action.

The use of widget style sheets is described in more detail in the Qt Style Sheets document.

Transparency and Double Buffering

Since Qt 4.0, QWidget automatically double-buffers its painting, so there is no need to write double-buffering code in paintEvent() to avoid flicker.

Since Qt 4.1, the Qt.WA_ContentsPropagated widget attribute has been deprecated. Instead, the contents of parent widgets are propagated by default to each of their children as long as Qt.WA_PaintOnScreen is not set. Custom widgets can be written to take advantage of this feature by updating irregular regions (to create non-rectangular child widgets), or painting with colors that have less than full alpha component. The following diagram shows how attributes and properties of a custom widget can be fine-tuned to achieve different effects.

In the above diagram, a semi-transparent rectangular child widget with an area removed is constructed and added to a parent widget (a QLabel showing a pixmap). Then, different properties and widget attributes are set to achieve different effects:

  • The left widget has no additional properties or widget attributes set. This default state suits most custom widgets using transparency, are irregularly-shaped, or do not paint over their entire area with an opaque brush.
  • The center widget has the autoFillBackground property set. This property is used with custom widgets that rely on the widget to supply a default background, and do not paint over their entire area with an opaque brush.
  • The right widget has the Qt.WA_OpaquePaintEvent widget attribute set. This indicates that the widget will paint over its entire area with opaque colors. The widget's area will initially be uninitialized, represented in the diagram with a red diagonal grid pattern that shines through the overpainted area. The Qt.WA_OpaquePaintArea attribute is useful for widgets that need to paint their own specialized contents quickly and do not need a default filled background.

To rapidly update custom widgets with simple background colors, such as real-time plotting or graphing widgets, it is better to define a suitable background color (using setBackgroundRole() with the QPalette.Window role), set the autoFillBackground property, and only implement the necessary drawing functionality in the widget's paintEvent().

To rapidly update custom widgets that constantly paint over their entire areas with opaque content, e.g., video streaming widgets, it is better to set the widget's Qt.WA_OpaquePaintEvent, avoiding any unnecessary overhead associated with repainting the widget's background.

If a widget has both the Qt.WA_OpaquePaintEvent widget attribute and the autoFillBackground property set, the Qt.WA_OpaquePaintEvent attribute takes precedence. Depending on your requirements, you should choose either one of them.

Since Qt 4.1, the contents of parent widgets are also propagated to standard Qt widgets. This can lead to some unexpected results if the parent widget is decorated in a non-standard way, as shown in the diagram below.

The scope for customizing the painting behavior of standard Qt widgets, without resorting to subclassing, is slightly less than that possible for custom widgets. Usually, the desired appearance of a standard widget can be achieved by setting its autoFillBackground property.

Creating Translucent Windows

Since Qt 4.5, it has been possible to create windows with translucent regions on window systems that support compositing.

To enable this feature in a top-level widget, set its Qt.WA_TranslucentBackground attribute with setAttribute() and ensure that its background is painted with non-opaque colors in the regions you want to be partially transparent.

Platform notes:

  • X11: This feature relies on the use of an X server that supports ARGB visuals and a compositing window manager.
  • Windows: The widget needs to have the Qt.FramelessWindowHint window flag set for the translucency to work.

Native Widgets vs Alien Widgets

Introduced in Qt 4.4, alien widgets are widgets unknown to the windowing system. They do not have a native window handle associated with them. This feature significantly speeds up widget painting, resizing, and removes flicker.

Should you require the old behavior with native windows, you can choose one of the following options:

  1. Use the QT_USE_NATIVE_WINDOWS=1 in your environment.
  2. Set the Qt.AA_NativeWindows attribute on your application. All widgets will be native widgets.
  3. Set the Qt.WA_NativeWindow attribute on widgets: The widget itself and all of its ancestors will become native (unless Qt.WA_DontCreateNativeAncestors is set).
  4. Call QWidget.winId to enforce a native window (this implies 3).
  5. Set the Qt.WA_PaintOnScreen attribute to enforce a native window (this implies 3).

Softkeys

Since Qt 4.6, Softkeys are usually physical keys on a device that have a corresponding label or other visual representation on the screen that is generally located next to its physical counterpart. They are most often found on mobile phone platforms. In modern touch based user interfaces it is also possible to have softkeys that do not correspond to any physical keys. Softkeys differ from other onscreen labels in that they are contextual.

In Qt, contextual softkeys are added to a widget by calling addAction() and passing a QAction with a softkey role set on it. When the widget containing the softkey actions has focus, its softkeys should appear in the user interface. Softkeys are discovered by traversing the widget hierarchy so it is possible to define a single set of softkeys that are present at all times by calling addAction() for a given top level widget.

On some platforms, this concept overlaps with QMenuBar such that if no other softkeys are found and the top level widget is a QMainWindow containing a QMenuBar, the menubar actions may appear on one of the softkeys.

Note: Currently softkeys are only supported on the Symbian Platform.


Type Documentation

QWidget.RenderFlag

This enum describes how to render the widget when calling QWidget.render().

Constant Value Description
QWidget.DrawWindowBackground 0x1 If you enable this option, the widget's background is rendered into the target even if autoFillBackground is not set. By default, this option is enabled.
QWidget.DrawChildren 0x2 If you enable this option, the widget's children are rendered recursively into the target. By default, this option is enabled.
QWidget.IgnoreMask 0x4 If you enable this option, the widget's QWidget.mask() is ignored when rendering into the target. By default, this option is disabled.

This enum was introduced or modified in Qt 4.3.

The RenderFlags type is a typedef for QFlags<RenderFlag>. It stores an OR combination of RenderFlag values.


Method Documentation

QWidget.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a widget which is a child of parent, with widget flags set to f.

If parent is 0, the new widget becomes a window. If parent is another widget, this widget becomes a child window inside parent. The new widget is deleted when its parent is deleted.

The widget flags argument, f, is normally 0, but it can be set to customize the frame of a window (i.e. parent must be 0). To customize the frame, use a value composed from the bitwise OR of any of the window flags.

If you add a child widget to an already visible widget you must explicitly show the child to make it visible.

Note that the X11 version of Qt may not be able to deliver all combinations of style flags on all systems. This is because on X11, Qt can only ask the window manager, and the window manager can override the application's settings. On Windows, Qt can set whatever flags you want.

See also windowFlags.

bool QWidget.acceptDrops (self)

QString QWidget.accessibleDescription (self)

QString QWidget.accessibleName (self)

QWidget.actionEvent (self, QActionEvent)

This event handler is called with the given event whenever the widget's actions are changed.

See also addAction(), insertAction(), removeAction(), actions(), and QActionEvent.

list-of-QAction QWidget.actions (self)

Returns the (possibly empty) list of this widget's actions.

See also contextMenuPolicy, insertAction(), and removeAction().

QWidget.activateWindow (self)

Sets the top-level widget containing this widget to be the active window.

An active window is a visible top-level window that has the keyboard input focus.

This function performs the same operation as clicking the mouse on the title bar of a top-level window. On X11, the result depends on the Window Manager. If you want to ensure that the window is stacked on top as well you should also call raise_(). Note that the window must be visible, otherwise activateWindow() has no effect.

On Windows, if you are calling this when the application is not currently the active one then it will not make it the active window. It will change the color of the taskbar entry to indicate that the window has changed in some way. This is because Microsoft does not allow an application to interrupt what the user is currently doing in another application.

See also isActiveWindow(), window(), and show().

QWidget.addAction (self, QAction action)

Appends the action action to this widget's list of actions.

All QWidgets have a list of QActions, however they can be represented graphically in many different ways. The default use of the QAction list (as returned by actions()) is to create a context QMenu.

A QWidget should only have one of each action and adding an action it already has will not cause the same action to be in the widget twice.

The ownership of action is not transferred to this QWidget.

See also removeAction(), insertAction(), actions(), and QMenu.

QWidget.addActions (self, list-of-QAction actions)

Appends the actions actions to this widget's list of actions.

See also removeAction(), QMenu, and addAction().

QWidget.adjustSize (self)

Adjusts the size of the widget to fit its contents.

This function uses sizeHint() if it is valid, i.e., the size hint's width and height are >= 0. Otherwise, it sets the size to the children rectangle that covers all child widgets (the union of all child widget rectangles).

For windows, the screen size is also taken into account. If the sizeHint() is less than (200, 100) and the size policy is expanding, the window will be at least (200, 100). The maximum size of a window is 2/3 of the screen's width and height.

See also sizeHint() and childrenRect().

bool QWidget.autoFillBackground (self)

QPalette.ColorRole QWidget.backgroundRole (self)

Returns the background role of the widget.

The background role defines the brush from the widget's palette that is used to render the background.

If no explicit background role is set, the widget inherts its parent widget's background role.

See also setBackgroundRole() and foregroundRole().

QSize QWidget.baseSize (self)

QWidget.changeEvent (self, QEvent)

This event handler can be reimplemented to handle state changes.

The state being changed in this event can be retrieved through the event supplied.

Change events include: QEvent.ToolBarChange, QEvent.ActivationChange, QEvent.EnabledChange, QEvent.FontChange, QEvent.StyleChange, QEvent.PaletteChange, QEvent.WindowTitleChange, QEvent.IconTextChange, QEvent.ModifiedChange, QEvent.MouseTrackingChange, QEvent.ParentChange, QEvent.WindowStateChange, QEvent.LanguageChange, QEvent.LocaleChange, QEvent.LayoutDirectionChange.

QWidget QWidget.childAt (self, QPoint p)

Returns the visible child widget at the position (x, y) in the widget's coordinate system. If there is no visible child widget at the specified position, the function returns 0.

QWidget QWidget.childAt (self, int ax, int ay)

QRect QWidget.childrenRect (self)

QRegion QWidget.childrenRegion (self)

QWidget.clearFocus (self)

Takes keyboard input focus from the widget.

If the widget has active focus, a focus out event is sent to this widget to tell it that it is about to lose the focus.

This widget must enable focus setting in order to get the keyboard input focus, i.e. it must call setFocusPolicy().

See also hasFocus(), setFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), and QApplication.focusWidget().

QWidget.clearMask (self)

Removes any mask set by setMask().

See also setMask().

bool QWidget.close (self)

This method is also a Qt slot with the C++ signature bool close().

Closes this widget. Returns true if the widget was closed; otherwise returns false.

First it sends the widget a QCloseEvent. The widget is hidden if it accepts the close event. If it ignores the event, nothing happens. The default implementation of QWidget.closeEvent() accepts the close event.

If the widget has the Qt.WA_DeleteOnClose flag, the widget is also deleted. A close events is delivered to the widget no matter if the widget is visible or not.

The QApplication.lastWindowClosed() signal is emitted when the last visible primary window (i.e. window with no parent) with the Qt.WA_QuitOnClose attribute set is closed. By default this attribute is set for all widgets except transient windows such as splash screens, tool windows, and popup menus.

QWidget.closeEvent (self, QCloseEvent)

This event handler is called with the given event when Qt receives a window close request for a top-level widget from the window system.

By default, the event is accepted and the widget is closed. You can reimplement this function to change the way the widget responds to window close requests. For example, you can prevent the window from closing by calling ignore() on all events.

Main window applications typically use reimplementations of this function to check whether the user's work has been saved and ask for permission before closing. For example, the Application Example uses a helper function to determine whether or not to close the window:

 void MainWindow.closeEvent(QCloseEvent *event)
 {
     if (maybeSave()) {
         writeSettings();
         event->accept();
     } else {
         event->ignore();
     }
 }

See also event(), hide(), close(), QCloseEvent, and Application Example.

QMargins QWidget.contentsMargins (self)

The contentsMargins function returns the widget's contents margins.

This function was introduced in Qt 4.6.

See also getContentsMargins(), setContentsMargins(), and contentsRect().

QRect QWidget.contentsRect (self)

Returns the area inside the widget's margins.

See also setContentsMargins() and getContentsMargins().

QWidget.contextMenuEvent (self, QContextMenuEvent)

This event handler, for event event, can be reimplemented in a subclass to receive widget context menu events.

The handler is called when the widget's contextMenuPolicy is Qt.DefaultContextMenu.

The default implementation ignores the context event. See the QContextMenuEvent documentation for more details.

See also event(), QContextMenuEvent, and customContextMenuRequested().

Qt.ContextMenuPolicy QWidget.contextMenuPolicy (self)

QWidget.create (self, int window = 0, bool initializeWindow = True, bool destroyOldWindow = True)

Creates a new widget window if window is 0, otherwise sets the widget's window to window.

Initializes the window (sets the geometry etc.) if initializeWindow is true. If initializeWindow is false, no initialization is performed. This parameter only makes sense if window is a valid window.

Destroys the old window if destroyOldWindow is true. If destroyOldWindow is false, you are responsible for destroying the window yourself (using platform native code).

The QWidget constructor calls create(0,true,true) to create a window for this widget.

QCursor QWidget.cursor (self)

QWidget.destroy (self, bool destroyWindow = True, bool destroySubWindows = True)

Frees up window system resources. Destroys the widget window if destroyWindow is true.

destroy() calls itself recursively for all the child widgets, passing destroySubWindows for the destroyWindow parameter. To have more control over destruction of subwidgets, destroy subwidgets selectively first.

This function is usually called from the QWidget destructor.

int QWidget.devType (self)

QWidget.dragEnterEvent (self, QDragEnterEvent)

This event handler is called when a drag is in progress and the mouse enters this widget. The event is passed in the event parameter.

If the event is ignored, the widget won't receive any drag move events.

See the Drag-and-drop documentation for an overview of how to provide drag-and-drop in your application.

See also QDrag and QDragEnterEvent.

QWidget.dragLeaveEvent (self, QDragLeaveEvent)

This event handler is called when a drag is in progress and the mouse leaves this widget. The event is passed in the event parameter.

See the Drag-and-drop documentation for an overview of how to provide drag-and-drop in your application.

See also QDrag and QDragLeaveEvent.

QWidget.dragMoveEvent (self, QDragMoveEvent)

This event handler is called if a drag is in progress, and when any of the following conditions occur: the cursor enters this widget, the cursor moves within this widget, or a modifier key is pressed on the keyboard while this widget has the focus. The event is passed in the event parameter.

See the Drag-and-drop documentation for an overview of how to provide drag-and-drop in your application.

See also QDrag and QDragMoveEvent.

QWidget.dropEvent (self, QDropEvent)

This event handler is called when the drag is dropped on this widget. The event is passed in the event parameter.

See the Drag-and-drop documentation for an overview of how to provide drag-and-drop in your application.

See also QDrag and QDropEvent.

int QWidget.effectiveWinId (self)

Returns the effective window system identifier of the widget, i.e. the native parent's window system identifier.

If the widget is native, this function returns the native widget ID. Otherwise, the window ID of the first native parent widget, i.e., the top-level widget that contains this widget, is returned.

Note: We recommend that you do not store this value as it is likely to change at run-time.

This function was introduced in Qt 4.4.

See also nativeParentWidget().

QWidget.enabledChange (self, bool)

QWidget.ensurePolished (self)

Ensures that the widget has been polished by QStyle (i.e., has a proper font and palette).

QWidget calls this function after it has been fully constructed but before it is shown the very first time. You can call this function if you want to ensure that the widget is polished before doing an operation, e.g., the correct font size might be needed in the widget's sizeHint() reimplementation. Note that this function is called from the default implementation of sizeHint().

Polishing is useful for final initialization that must happen after all constructors (from base classes as well as from subclasses) have been called.

If you need to change some settings when a widget is polished, reimplement event() and handle the QEvent.Polish event type.

Note: The function is declared const so that it can be called from other const functions (e.g., sizeHint()).

See also event().

QWidget.enterEvent (self, QEvent)

This event handler can be reimplemented in a subclass to receive widget enter events which are passed in the event parameter.

An event is sent to the widget when the mouse cursor enters the widget.

See also leaveEvent(), mouseMoveEvent(), and event().

bool QWidget.event (self, QEvent)

Reimplemented from QObject.event().

This is the main event handler; it handles event event. You can reimplement this function in a subclass, but we recommend using one of the specialized event handlers instead.

Key press and release events are treated differently from other events. event() checks for Tab and Shift+Tab and tries to move the focus appropriately. If there is no widget to move the focus to (or the key press is not Tab or Shift+Tab), event() calls keyPressEvent().

Mouse and tablet event handling is also slightly special: only when the widget is enabled, event() will call the specialized handlers such as mousePressEvent(); otherwise it will discard the event.

This function returns true if the event was recognized, otherwise it returns false. If the recognized event was accepted (see QEvent.accepted), any further processing such as event propagation to the parent widget stops.

See also closeEvent(), focusInEvent(), focusOutEvent(), enterEvent(), keyPressEvent(), keyReleaseEvent(), leaveEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), moveEvent(), paintEvent(), resizeEvent(), QObject.event(), and QObject.timerEvent().

QWidget QWidget.find (int)

Returns a pointer to the widget with window identifer/handle id.

The window identifier type depends on the underlying window system, see qwindowdefs.h for the actual definition. If there is no widget with this identifier, 0 is returned.

QWidget.focusInEvent (self, QFocusEvent)

This event handler can be reimplemented in a subclass to receive keyboard focus events (focus received) for the widget. The event is passed in the event parameter

A widget normally must setFocusPolicy() to something other than Qt.NoFocus in order to receive focus events. (Note that the application programmer can call setFocus() on any widget, even those that do not normally accept focus.)

The default implementation updates the widget (except for windows that do not specify a focusPolicy()).

See also focusOutEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event(), and QFocusEvent.

bool QWidget.focusNextChild (self)

Finds a new widget to give the keyboard focus to, as appropriate for Tab, and returns true if it can find a new widget, or false if it can't.

See also focusPreviousChild().

bool QWidget.focusNextPrevChild (self, bool next)

Finds a new widget to give the keyboard focus to, as appropriate for Tab and Shift+Tab, and returns true if it can find a new widget, or false if it can't.

If next is true, this function searches forward, if next is false, it searches backward.

Sometimes, you will want to reimplement this function. For example, a web browser might reimplement it to move its "current active link" forward or backward, and call focusNextPrevChild() only when it reaches the last or first link on the "page".

Child widgets call focusNextPrevChild() on their parent widgets, but only the window that contains the child widgets decides where to redirect focus. By reimplementing this function for an object, you thus gain control of focus traversal for all child widgets.

See also focusNextChild() and focusPreviousChild().

QWidget.focusOutEvent (self, QFocusEvent)

This event handler can be reimplemented in a subclass to receive keyboard focus events (focus lost) for the widget. The events is passed in the event parameter.

A widget normally must setFocusPolicy() to something other than Qt.NoFocus in order to receive focus events. (Note that the application programmer can call setFocus() on any widget, even those that do not normally accept focus.)

The default implementation updates the widget (except for windows that do not specify a focusPolicy()).

See also focusInEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event(), and QFocusEvent.

Qt.FocusPolicy QWidget.focusPolicy (self)

bool QWidget.focusPreviousChild (self)

Finds a new widget to give the keyboard focus to, as appropriate for Shift+Tab, and returns true if it can find a new widget, or false if it can't.

See also focusNextChild().

QWidget QWidget.focusProxy (self)

Returns the focus proxy, or 0 if there is no focus proxy.

See also setFocusProxy().

QWidget QWidget.focusWidget (self)

Returns the last child of this widget that setFocus had been called on. For top level widgets this is the widget that will get focus in case this window gets activated

This is not the same as QApplication.focusWidget(), which returns the focus widget in the currently active window.

QFont QWidget.font (self)

QWidget.fontChange (self, QFont)

QFontInfo QWidget.fontInfo (self)

Returns the font info for the widget's current font. Equivalent to QFontInto(widget->font()).

See also font(), fontMetrics(), and setFont().

QFontMetrics QWidget.fontMetrics (self)

Returns the font metrics for the widget's current font. Equivalent to QFontMetrics(widget->font()).

See also font(), fontInfo(), and setFont().

QPalette.ColorRole QWidget.foregroundRole (self)

Returns the foreground role.

The foreground role defines the color from the widget's palette that is used to draw the foreground.

If no explicit foreground role is set, the function returns a role that contrasts with the background role.

See also setForegroundRole() and backgroundRole().

QRect QWidget.frameGeometry (self)

QSize QWidget.frameSize (self)

QRect QWidget.geometry (self)

(int left, int top, int right, int bottom) QWidget.getContentsMargins (self)

Returns the widget's contents margins for left, top, right, and bottom.

See also setContentsMargins() and contentsRect().

QWidget.grabGesture (self, Qt.GestureType type, Qt.GestureFlags flags = Qt.GestureFlags(0))

Subscribes the widget to a given gesture with specific flags.

This function was introduced in Qt 4.6.

See also ungrabGesture() and QGestureEvent.

QWidget.grabKeyboard (self)

Grabs the keyboard input.

This widget receives all keyboard events until releaseKeyboard() is called; other widgets get no keyboard events at all. Mouse events are not affected. Use grabMouse() if you want to grab that.

The focus widget is not affected, except that it doesn't receive any keyboard events. setFocus() moves the focus as usual, but the new focus widget receives keyboard events only after releaseKeyboard() is called.

If a different widget is currently grabbing keyboard input, that widget's grab is released first.

See also releaseKeyboard(), grabMouse(), releaseMouse(), and focusWidget().

QWidget.grabMouse (self)

Grabs the mouse input.

This widget receives all mouse events until releaseMouse() is called; other widgets get no mouse events at all. Keyboard events are not affected. Use grabKeyboard() if you want to grab that.

Warning: Bugs in mouse-grabbing applications very often lock the terminal. Use this function with extreme caution, and consider using the -nograb command line option while debugging.

It is almost never necessary to grab the mouse when using Qt, as Qt grabs and releases it sensibly. In particular, Qt grabs the mouse when a mouse button is pressed and keeps it until the last button is released.

Note: Only visible widgets can grab mouse input. If isVisible() returns false for a widget, that widget cannot call grabMouse().

Note: (Mac OS X developers) For Cocoa, calling grabMouse() on a widget only works when the mouse is inside the frame of that widget. For Carbon, it works outside the widget's frame as well, like for Windows and X11.

See also releaseMouse(), grabKeyboard(), and releaseKeyboard().

QWidget.grabMouse (self, QCursor)

This function overloads grabMouse().

Grabs the mouse input and changes the cursor shape.

The cursor will assume shape cursor (for as long as the mouse focus is grabbed) and this widget will be the only one to receive mouse events until releaseMouse() is called().

Warning: Grabbing the mouse might lock the terminal.

Note: (Mac OS X developers) See the note in QWidget.grabMouse().

See also releaseMouse(), grabKeyboard(), releaseKeyboard(), and setCursor().

int QWidget.grabShortcut (self, QKeySequence key, Qt.ShortcutContext context = Qt.WindowShortcut)

Adds a shortcut to Qt's shortcut system that watches for the given key sequence in the given context. If the context is Qt.ApplicationShortcut, the shortcut applies to the application as a whole. Otherwise, it is either local to this widget, Qt.WidgetShortcut, or to the window itself, Qt.WindowShortcut.

If the same key sequence has been grabbed by several widgets, when the key sequence occurs a QEvent.Shortcut event is sent to all the widgets to which it applies in a non-deterministic order, but with the ``ambiguous'' flag set to true.

Warning: You should not normally need to use this function; instead create QActions with the shortcut key sequences you require (if you also want equivalent menu options and toolbar buttons), or create QShortcuts if you just need key sequences. Both QAction and QShortcut handle all the event filtering for you, and provide signals which are triggered when the user triggers the key sequence, so are much easier to use than this low-level function.

See also releaseShortcut() and setShortcutEnabled().

QGraphicsEffect QWidget.graphicsEffect (self)

The graphicsEffect function returns a pointer to the widget's graphics effect.

If the widget has no graphics effect, 0 is returned.

This function was introduced in Qt 4.6.

See also setGraphicsEffect().

QGraphicsProxyWidget QWidget.graphicsProxyWidget (self)

Returns the proxy widget for the corresponding embedded widget in a graphics view; otherwise returns 0.

This function was introduced in Qt 4.5.

See also QGraphicsProxyWidget.createProxyForChildWidget() and QGraphicsScene.addWidget().

int QWidget.handle (self)

bool QWidget.hasFocus (self)

bool QWidget.hasMouseTracking (self)

int QWidget.height (self)

int QWidget.heightForWidth (self, int)

Returns the preferred height for this widget, given the width w.

If this widget has a layout, the default implementation returns the layout's preferred height. if there is no layout, the default implementation returns -1 indicating that the preferred height does not depend on the width.

QWidget.hide (self)

This method is also a Qt slot with the C++ signature void hide().

Hides the widget. This function is equivalent to setVisible(false).

Note: If you are working with QDialog or its subclasses and you invoke the show() function after this function, the dialog will be displayed in its original position.

See also hideEvent(), isHidden(), show(), setVisible(), isVisible(), and close().

QWidget.hideEvent (self, QHideEvent)

This event handler can be reimplemented in a subclass to receive widget hide events. The event is passed in the event parameter.

Hide events are sent to widgets immediately after they have been hidden.

Note: A widget receives spontaneous show and hide events when its mapping status is changed by the window system, e.g. a spontaneous hide event when the user minimizes the window, and a spontaneous show event when the window is restored again. After receiving a spontaneous hide event, a widget is still considered visible in the sense of isVisible().

See also visible, event(), and QHideEvent.

QInputContext QWidget.inputContext (self)

This function returns the QInputContext for this widget. By default the input context is inherited from the widgets parent. For toplevels it is inherited from QApplication.

You can override this and set a special input context for this widget by using the setInputContext() method.

See also setInputContext().

QWidget.inputMethodEvent (self, QInputMethodEvent)

This event handler, for event event, can be reimplemented in a subclass to receive Input Method composition events. This handler is called when the state of the input method changes.

Note that when creating custom text editing widgets, the Qt.WA_InputMethodEnabled window attribute must be set explicitly (using the setAttribute() function) in order to receive input method events.

The default implementation calls event->ignore(), which rejects the Input Method event. See the QInputMethodEvent documentation for more details.

See also event() and QInputMethodEvent.

Qt.InputMethodHints QWidget.inputMethodHints (self)

QVariant QWidget.inputMethodQuery (self, Qt.InputMethodQuery)

This method is only relevant for input widgets. It is used by the input method to query a set of properties of the widget to be able to support complex input method operations as support for surrounding text and reconversions.

query specifies which property is queried.

See also inputMethodEvent(), QInputMethodEvent, QInputContext, and inputMethodHints.

QWidget.insertAction (self, QAction before, QAction action)

Inserts the action action to this widget's list of actions, before the action before. It appends the action if before is 0 or before is not a valid action for this widget.

A QWidget should only have one of each action.

See also removeAction(), addAction(), QMenu, contextMenuPolicy, and actions().

QWidget.insertActions (self, QAction before, list-of-QAction actions)

Inserts the actions actions to this widget's list of actions, before the action before. It appends the action if before is 0 or before is not a valid action for this widget.

A QWidget can have at most one of each action.

See also removeAction(), QMenu, insertAction(), and contextMenuPolicy.

bool QWidget.isActiveWindow (self)

bool QWidget.isAncestorOf (self, QWidget child)

Returns true if this widget is a parent, (or grandparent and so on to any level), of the given child, and both widgets are within the same window; otherwise returns false.

bool QWidget.isEnabled (self)

bool QWidget.isEnabledTo (self, QWidget)

Returns true if this widget would become enabled if ancestor is enabled; otherwise returns false.

This is the case if neither the widget itself nor every parent up to but excluding ancestor has been explicitly disabled.

isEnabledTo(0) is equivalent to isEnabled().

See also setEnabled() and enabled.

bool QWidget.isEnabledToTLW (self)

bool QWidget.isFullScreen (self)

bool QWidget.isHidden (self)

Returns true if the widget is hidden, otherwise returns false.

A hidden widget will only become visible when show() is called on it. It will not be automatically shown when the parent is shown.

To check visibility, use !isVisible() instead (notice the exclamation mark).

isHidden() implies !isVisible(), but a widget can be not visible and not hidden at the same time. This is the case for widgets that are children of widgets that are not visible.

Widgets are hidden if:

  • they were created as independent windows,
  • they were created as children of visible widgets,
  • hide() or setVisible(false) was called.

bool QWidget.isLeftToRight (self)

bool QWidget.isMaximized (self)

bool QWidget.isMinimized (self)

bool QWidget.isModal (self)

bool QWidget.isRightToLeft (self)

bool QWidget.isTopLevel (self)

bool QWidget.isVisible (self)

bool QWidget.isVisibleTo (self, QWidget)

Returns true if this widget would become visible if ancestor is shown; otherwise returns false.

The true case occurs if neither the widget itself nor any parent up to but excluding ancestor has been explicitly hidden.

This function will still return true if the widget is obscured by other windows on the screen, but could be physically visible if it or they were to be moved.

isVisibleTo(0) is identical to isVisible().

See also show(), hide(), and isVisible().

bool QWidget.isWindow (self)

Returns true if the widget is an independent window, otherwise returns false.

A window is a widget that isn't visually the child of any other widget and that usually has a frame and a window title.

A window can have a parent widget. It will then be grouped with its parent and deleted when the parent is deleted, minimized when the parent is minimized etc. If supported by the window manager, it will also have a common taskbar entry with its parent.

QDialog and QMainWindow widgets are by default windows, even if a parent widget is specified in the constructor. This behavior is specified by the Qt.Window flag.

See also window(), isModal(), and parentWidget().

bool QWidget.isWindowModified (self)

QWidget QWidget.keyboardGrabber ()

Returns the widget that is currently grabbing the keyboard input.

If no widget in this application is currently grabbing the keyboard, 0 is returned.

See also grabMouse() and mouseGrabber().

QWidget.keyPressEvent (self, QKeyEvent)

This event handler, for event event, can be reimplemented in a subclass to receive key press events for the widget.

A widget must call setFocusPolicy() to accept focus initially and have focus in order to receive a key press event.

If you reimplement this handler, it is very important that you call the base class implementation if you do not act upon the key.

The default implementation closes popup widgets if the user presses Esc. Otherwise the event is ignored, so that the widget's parent can interpret it.

Note that QKeyEvent starts with isAccepted() == true, so you do not need to call QKeyEvent.accept() - just do not call the base class implementation if you act upon the key.

See also keyReleaseEvent(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event(), QKeyEvent, and Tetrix Example.

QWidget.keyReleaseEvent (self, QKeyEvent)

This event handler, for event event, can be reimplemented in a subclass to receive key release events for the widget.

A widget must accept focus initially and have focus in order to receive a key release event.

If you reimplement this handler, it is very important that you call the base class implementation if you do not act upon the key.

The default implementation ignores the event, so that the widget's parent can interpret it.

Note that QKeyEvent starts with isAccepted() == true, so you do not need to call QKeyEvent.accept() - just do not call the base class implementation if you act upon the key.

See also keyPressEvent(), QKeyEvent.ignore(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event(), and QKeyEvent.

QWidget.languageChange (self)

QLayout QWidget.layout (self)

Returns the layout manager that is installed on this widget, or 0 if no layout manager is installed.

The layout manager sets the geometry of the widget's children that have been added to the layout.

See also setLayout(), sizePolicy(), and Layout Management.

Qt.LayoutDirection QWidget.layoutDirection (self)

QWidget.leaveEvent (self, QEvent)

This event handler can be reimplemented in a subclass to receive widget leave events which are passed in the event parameter.

A leave event is sent to the widget when the mouse cursor leaves the widget.

See also enterEvent(), mouseMoveEvent(), and event().

QLocale QWidget.locale (self)

QWidget.lower (self)

This method is also a Qt slot with the C++ signature void lower().

Lowers the widget to the bottom of the parent widget's stack.

After this call the widget will be visually behind (and therefore obscured by) any overlapping sibling widgets.

See also raise_() and stackUnder().

QPoint QWidget.mapFrom (self, QWidget, QPoint)

Translates the widget coordinate pos from the coordinate system of parent to this widget's coordinate system. The parent must not be 0 and must be a parent of the calling widget.

See also mapTo(), mapFromParent(), mapFromGlobal(), and underMouse().

QPoint QWidget.mapFromGlobal (self, QPoint)

Translates the global screen coordinate pos to widget coordinates.

See also mapToGlobal(), mapFrom(), and mapFromParent().

QPoint QWidget.mapFromParent (self, QPoint)

Translates the parent widget coordinate pos to widget coordinates.

Same as mapFromGlobal() if the widget has no parent.

See also mapToParent(), mapFrom(), mapFromGlobal(), and underMouse().

QPoint QWidget.mapTo (self, QWidget, QPoint)

Translates the widget coordinate pos to the coordinate system of parent. The parent must not be 0 and must be a parent of the calling widget.

See also mapFrom(), mapToParent(), mapToGlobal(), and underMouse().

QPoint QWidget.mapToGlobal (self, QPoint)

Translates the widget coordinate pos to global screen coordinates. For example, mapToGlobal(QPoint(0,0)) would give the global coordinates of the top-left pixel of the widget.

See also mapFromGlobal(), mapTo(), and mapToParent().

QPoint QWidget.mapToParent (self, QPoint)

Translates the widget coordinate pos to a coordinate in the parent widget.

Same as mapToGlobal() if the widget has no parent.

See also mapFromParent(), mapTo(), mapToGlobal(), and underMouse().

QRegion QWidget.mask (self)

Returns the mask currently set on a widget. If no mask is set the return value will be an empty region.

See also setMask(), clearMask(), QRegion.isEmpty(), and Shaped Clock Example.

int QWidget.maximumHeight (self)

QSize QWidget.maximumSize (self)

int QWidget.maximumWidth (self)

int QWidget.metric (self, QPaintDevice.PaintDeviceMetric)

Reimplemented from QPaintDevice.metric().

Internal implementation of the virtual QPaintDevice.metric() function.

m is the metric to get.

int QWidget.minimumHeight (self)

QSize QWidget.minimumSize (self)

QSize QWidget.minimumSizeHint (self)

int QWidget.minimumWidth (self)

QWidget.mouseDoubleClickEvent (self, QMouseEvent)

This event handler, for event event, can be reimplemented in a subclass to receive mouse double click events for the widget.

The default implementation generates a normal mouse press event.

Note: The widget will also receive mouse press and mouse release events in addition to the double click event. It is up to the developer to ensure that the application interprets these events correctly.

See also mousePressEvent(), mouseReleaseEvent(), mouseMoveEvent(), event(), and QMouseEvent.

QWidget QWidget.mouseGrabber ()

Returns the widget that is currently grabbing the mouse input.

If no widget in this application is currently grabbing the mouse, 0 is returned.

See also grabMouse() and keyboardGrabber().

QWidget.mouseMoveEvent (self, QMouseEvent)

This event handler, for event event, can be reimplemented in a subclass to receive mouse move events for the widget.

If mouse tracking is switched off, mouse move events only occur if a mouse button is pressed while the mouse is being moved. If mouse tracking is switched on, mouse move events occur even if no mouse button is pressed.

QMouseEvent.pos() reports the position of the mouse cursor, relative to this widget. For press and release events, the position is usually the same as the position of the last mouse move event, but it might be different if the user's hand shakes. This is a feature of the underlying window system, not Qt.

If you want to show a tooltip immediately, while the mouse is moving (e.g., to get the mouse coordinates with QMouseEvent.pos() and show them as a tooltip), you must first enable mouse tracking as described above. Then, to ensure that the tooltip is updated immediately, you must call QToolTip.showText() instead of setToolTip() in your implementation of mouseMoveEvent().

See also setMouseTracking(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), event(), QMouseEvent, and Scribble Example.

QWidget.mousePressEvent (self, QMouseEvent)

This event handler, for event event, can be reimplemented in a subclass to receive mouse press events for the widget.

If you create new widgets in the mousePressEvent() the mouseReleaseEvent() may not end up where you expect, depending on the underlying window system (or X11 window manager), the widgets' location and maybe more.

The default implementation implements the closing of popup widgets when you click outside the window. For other widget types it does nothing.

See also mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, and Scribble Example.

QWidget.mouseReleaseEvent (self, QMouseEvent)

This event handler, for event event, can be reimplemented in a subclass to receive mouse release events for the widget.

See also mousePressEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, and Scribble Example.

QWidget.move (self, QPoint)

QWidget.move (self, int ax, int ay)

QWidget.moveEvent (self, QMoveEvent)

This event handler can be reimplemented in a subclass to receive widget move events which are passed in the event parameter. When the widget receives this event, it is already at the new position.

The old position is accessible through QMoveEvent.oldPos().

See also resizeEvent(), event(), move(), and QMoveEvent.

QWidget QWidget.nativeParentWidget (self)

Returns the native parent for this widget, i.e. the next ancestor widget that has a system identifier, or 0 if it does not have any native parent.

This function was introduced in Qt 4.4.

See also effectiveWinId().

QWidget QWidget.nextInFocusChain (self)

Returns the next widget in this widget's focus chain.

See also previousInFocusChain().

QRect QWidget.normalGeometry (self)

QWidget.overrideWindowFlags (self, Qt.WindowFlags type)

Sets the window flags for the widget to flags, without telling the window system.

Warning: Do not call this function unless you really know what you're doing.

See also setWindowFlags().

QWidget.overrideWindowState (self, Qt.WindowStates state)

QPaintEngine QWidget.paintEngine (self)

Reimplemented from QPaintDevice.paintEngine().

Returns the widget's paint engine.

Note that this function should not be called explicitly by the user, since it's meant for reimplementation purposes only. The function is called by Qt internally, and the default implementation may not always return a valid pointer.

QWidget.paintEvent (self, QPaintEvent)

This event handler can be reimplemented in a subclass to receive paint events passed in event.

A paint event is a request to repaint all or part of a widget. It can happen for one of the following reasons:

  • repaint() or update() was invoked,
  • the widget was obscured and has now been uncovered, or
  • many other reasons.

Many widgets can simply repaint their entire surface when asked to, but some slow widgets need to optimize by painting only the requested region: QPaintEvent.region(). This speed optimization does not change the result, as painting is clipped to that region during event processing. QListView and QTableView do this, for example.

Qt also tries to speed up painting by merging multiple paint events into one. When update() is called several times or the window system sends several paint events, Qt merges these events into one event with a larger region (see QRegion.united()). The repaint() function does not permit this optimization, so we suggest using update() whenever possible.

When the paint event occurs, the update region has normally been erased, so you are painting on the widget's background.

The background can be set using setBackgroundRole() and setPalette().

Since Qt 4.0, QWidget automatically double-buffers its painting, so there is no need to write double-buffering code in paintEvent() to avoid flicker.

Note for the X11 platform: It is possible to toggle global double buffering by calling qt_x11_set_global_double_buffer(). For example,

 ...
 extern void qt_x11_set_global_double_buffer(bool);
 qt_x11_set_global_double_buffer(false);
 ...

Note: Generally, you should refrain from calling update() or repaint() inside a paintEvent(). For example, calling update() or repaint() on children inside a paintevent() results in undefined behavior; the child may or may not get a paint event.

Warning: If you are using a custom paint engine without Qt's backingstore, Qt.WA_PaintOnScreen must be set. Otherwise, QWidget.paintEngine() will never be called; the backingstore will be used instead.

See also event(), repaint(), update(), QPainter, QPixmap, QPaintEvent, and Analog Clock Example.

QPalette QWidget.palette (self)

QWidget.paletteChange (self, QPalette)

QWidget QWidget.parentWidget (self)

Returns the parent of this widget, or 0 if it does not have any parent widget.

QPoint QWidget.pos (self)

QWidget QWidget.previousInFocusChain (self)

The previousInFocusChain function returns the previous widget in this widget's focus chain.

This function was introduced in Qt 4.6.

See also nextInFocusChain().

QWidget.raise_ (self)

This method is also a Qt slot with the C++ signature void raise().

Raises this widget to the top of the parent widget's stack.

After this call the widget will be visually in front of any overlapping sibling widgets.

Note: When using activateWindow(), you can call this function to ensure that the window is stacked on top.

See also lower() and stackUnder().

QRect QWidget.rect (self)

QWidget.releaseKeyboard (self)

Releases the keyboard grab.

See also grabKeyboard(), grabMouse(), and releaseMouse().

QWidget.releaseMouse (self)

Releases the mouse grab.

See also grabMouse(), grabKeyboard(), and releaseKeyboard().

QWidget.releaseShortcut (self, int id)

Removes the shortcut with the given id from Qt's shortcut system. The widget will no longer receive QEvent.Shortcut events for the shortcut's key sequence (unless it has other shortcuts with the same key sequence).

Warning: You should not normally need to use this function since Qt's shortcut system removes shortcuts automatically when their parent widget is destroyed. It is best to use QAction or QShortcut to handle shortcuts, since they are easier to use than this low-level function. Note also that this is an expensive operation.

See also grabShortcut() and setShortcutEnabled().

QWidget.removeAction (self, QAction action)

Removes the action action from this widget's list of actions.

See also insertAction(), actions(), and insertAction().

QWidget.render (self, QPaintDevice target, QPoint targetOffset = QPoint(), QRegion sourceRegion = QRegion(), RenderFlags flags = QWidget.DrawWindowBackground|QWidget.DrawChildren)

Renders the sourceRegion of this widget into the target using renderFlags to determine how to render. Rendering starts at targetOffset in the target. For example:

 QPixmap pixmap(widget->size());
 widget->render(&pixmap);

If sourceRegion is a null region, this function will use QWidget.rect() as the region, i.e. the entire widget.

Ensure that you call QPainter.end() for the target device's active painter (if any) before rendering. For example:

 QPainter painter(this);
 ...
 painter.end();
 myWidget->render(this);

Note: To obtain the contents of an OpenGL widget, use QGLWidget.grabFrameBuffer() or QGLWidget.renderPixmap() instead.

This function was introduced in Qt 4.3.

QWidget.render (self, QPainter painter, QPoint targetOffset = QPoint(), QRegion sourceRegion = QRegion(), RenderFlags flags = QWidget.DrawWindowBackground|QWidget.DrawChildren)

This is an overloaded function.

Renders the widget into the painter's QPainter.device().

Transformations and settings applied to the painter will be used when rendering.

Note: The painter must be active. On Mac OS X the widget will be rendered into a QPixmap and then drawn by the painter.

See also QPainter.device().

QWidget.repaint (self)

This method is also a Qt slot with the C++ signature void repaint().

Repaints the widget directly by calling paintEvent() immediately, unless updates are disabled or the widget is hidden.

We suggest only using repaint() if you need an immediate repaint, for example during animation. In almost all circumstances update() is better, as it permits Qt to optimize for speed and minimize flicker.

Warning: If you call repaint() in a function which may itself be called from paintEvent(), you may get infinite recursion. The update() function never causes recursion.

See also update(), paintEvent(), and setUpdatesEnabled().

QWidget.repaint (self, int x, int y, int w, int h)

QWidget.repaint (self, QRect)

QWidget.repaint (self, QRegion)

QWidget.resetInputContext (self)

QWidget.resize (self, QSize)

QWidget.resize (self, int w, int h)

QWidget.resizeEvent (self, QResizeEvent)

This event handler can be reimplemented in a subclass to receive widget resize events which are passed in the event parameter. When resizeEvent() is called, the widget already has its new geometry. The old size is accessible through QResizeEvent.oldSize().

The widget will be erased and receive a paint event immediately after processing the resize event. No drawing need be (or should be) done inside this handler.

See also moveEvent(), event(), resize(), QResizeEvent, paintEvent(), and Scribble Example.

bool QWidget.restoreGeometry (self, QByteArray geometry)

Restores the geometry and state top-level widgets stored in the byte array geometry. Returns true on success; otherwise returns false.

If the restored geometry is off-screen, it will be modified to be inside the available screen geometry.

To restore geometry saved using QSettings, you can use code like this:

 QSettings settings("MyCompany", "MyApp");
 myWidget->restoreGeometry(settings.value("myWidget/geometry").toByteArray());

See the Window Geometry documentation for an overview of geometry issues with windows.

Use QMainWindow.restoreState() to restore the geometry and the state of toolbars and dock widgets.

This function was introduced in Qt 4.2.

See also saveGeometry(), QSettings, QMainWindow.saveState(), and QMainWindow.restoreState().

QByteArray QWidget.saveGeometry (self)

Saves the current geometry and state for top-level widgets.

To save the geometry when the window closes, you can implement a close event like this:

 void MyWidget.closeEvent(QCloseEvent *event)
 {
     QSettings settings("MyCompany", "MyApp");
     settings.setValue("geometry", saveGeometry());
     QWidget.closeEvent(event);
 }

See the Window Geometry documentation for an overview of geometry issues with windows.

Use QMainWindow.saveState() to save the geometry and the state of toolbars and dock widgets.

This function was introduced in Qt 4.2.

See also restoreGeometry(), QMainWindow.saveState(), and QMainWindow.restoreState().

QWidget.scroll (self, int dx, int dy)

Scrolls the widget including its children dx pixels to the right and dy downward. Both dx and dy may be negative.

After scrolling, the widgets will receive paint events for the areas that need to be repainted. For widgets that Qt knows to be opaque, this is only the newly exposed parts. For example, if an opaque widget is scrolled 8 pixels to the left, only an 8-pixel wide stripe at the right edge needs updating.

Since widgets propagate the contents of their parents by default, you need to set the autoFillBackground property, or use setAttribute() to set the Qt.WA_OpaquePaintEvent attribute, to make a widget opaque.

For widgets that use contents propagation, a scroll will cause an update of the entire scroll area.

See also Transparency and Double Buffering.

QWidget.scroll (self, int dx, int dy, QRect)

This is an overloaded function.

This version only scrolls r and does not move the children of the widget.

If r is empty or invalid, the result is undefined.

See also QScrollArea.

QWidget.setAcceptDrops (self, bool on)

QWidget.setAccessibleDescription (self, QString description)

QWidget.setAccessibleName (self, QString name)

QWidget.setAttribute (self, Qt.WidgetAttribute attribute, bool on = True)

Sets the attribute attribute on this widget if on is true; otherwise clears the attribute.

See also testAttribute().

QWidget.setAutoFillBackground (self, bool enabled)

QWidget.setBackgroundRole (self, QPalette.ColorRole)

Sets the background role of the widget to role.

The background role defines the brush from the widget's palette that is used to render the background.

If role is QPalette.NoRole, then the widget inherits its parent's background role.

Note that styles are free to choose any color from the palette. You can modify the palette or set a style sheet if you don't achieve the result you want with setBackgroundRole().

See also backgroundRole() and foregroundRole().

QWidget.setBaseSize (self, int basew, int baseh)

QWidget.setBaseSize (self, QSize s)

QWidget.setContentsMargins (self, int left, int top, int right, int bottom)

Sets the margins around the contents of the widget to have the sizes left, top, right, and bottom. The margins are used by the layout system, and may be used by subclasses to specify the area to draw in (e.g. excluding the frame).

Changing the margins will trigger a resizeEvent().

See also contentsMargins(), contentsRect(), and getContentsMargins().

QWidget.setContentsMargins (self, QMargins margins)

This is an overloaded function.

The setContentsMargins function sets the margins around the widget's contents.

Sets the margins around the contents of the widget to have the sizes determined by margins. The margins are used by the layout system, and may be used by subclasses to specify the area to draw in (e.g. excluding the frame).

Changing the margins will trigger a resizeEvent().

This function was introduced in Qt 4.6.

See also contentsRect() and getContentsMargins().

QWidget.setContextMenuPolicy (self, Qt.ContextMenuPolicy policy)

QWidget.setCursor (self, QCursor)

QWidget.setDisabled (self, bool)

This method is also a Qt slot with the C++ signature void setDisabled(bool).

Disables widget input events if disable is true; otherwise enables input events.

See the enabled documentation for more information.

See also isEnabledTo(), QKeyEvent, QMouseEvent, and changeEvent().

QWidget.setEnabled (self, bool)

This method is also a Qt slot with the C++ signature void setEnabled(bool).

QWidget.setFixedHeight (self, int h)

Sets both the minimum and maximum heights of the widget to h without changing the widths. Provided for convenience.

See also sizeHint(), minimumSize(), maximumSize(), and setFixedSize().

QWidget.setFixedSize (self, QSize)

Sets both the minimum and maximum sizes of the widget to s, thereby preventing it from ever growing or shrinking.

This will override the default size constraints set by QLayout.

To remove constraints, set the size to QWIDGETSIZE_MAX.

Alternatively, if you want the widget to have a fixed size based on its contents, you can call QLayout.setSizeConstraint(QLayout.SetFixedSize);

See also maximumSize and minimumSize.

QWidget.setFixedSize (self, int w, int h)

This is an overloaded function.

Sets the width of the widget to w and the height to h.

QWidget.setFixedWidth (self, int w)

Sets both the minimum and maximum width of the widget to w without changing the heights. Provided for convenience.

See also sizeHint(), minimumSize(), maximumSize(), and setFixedSize().

QWidget.setFocus (self)

This method is also a Qt slot with the C++ signature void setFocus().

Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the active window. The reason argument will be passed into any focus event sent from this function, it is used to give an explanation of what caused the widget to get focus. If the window is not active, the widget will be given the focus when the window becomes active.

First, a focus out event is sent to the focus widget (if any) to tell it that it is about to lose the focus. Then a focus in event is sent to this widget to tell it that it just received the focus. (Nothing happens if the focus in and focus out widgets are the same.)

Note: On embedded platforms, setFocus() will not cause an input panel to be opened by the input method. If you want this to happen, you have to send a QEvent.RequestSoftwareInputPanel event to the widget yourself.

setFocus() gives focus to a widget regardless of its focus policy, but does not clear any keyboard grab (see grabKeyboard()).

Be aware that if the widget is hidden, it will not accept focus until it is shown.

Warning: If you call setFocus() in a function which may itself be called from focusOutEvent() or focusInEvent(), you may get an infinite recursion.

See also hasFocus(), clearFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), focusWidget(), QApplication.focusWidget(), grabKeyboard(), grabMouse(), Keyboard Focus, and QEvent.RequestSoftwareInputPanel.

QWidget.setFocus (self, Qt.FocusReason reason)

This is an overloaded function.

Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the active window.

QWidget.setFocusPolicy (self, Qt.FocusPolicy policy)

QWidget.setFocusProxy (self, QWidget)

Sets the widget's focus proxy to widget w. If w is 0, the function resets this widget to have no focus proxy.

Some widgets can "have focus", but create a child widget, such as QLineEdit, to actually handle the focus. In this case, the widget can set the line edit to be its focus proxy.

setFocusProxy() sets the widget which will actually get focus when "this widget" gets it. If there is a focus proxy, setFocus() and hasFocus() operate on the focus proxy.

See also focusProxy().

QWidget.setFont (self, QFont)

QWidget.setForegroundRole (self, QPalette.ColorRole)

Sets the foreground role of the widget to role.

The foreground role defines the color from the widget's palette that is used to draw the foreground.

If role is QPalette.NoRole, the widget uses a foreground role that contrasts with the background role.

Note that styles are free to choose any color from the palette. You can modify the palette or set a style sheet if you don't achieve the result you want with setForegroundRole().

See also foregroundRole() and backgroundRole().

QWidget.setGeometry (self, QRect)

QWidget.setGeometry (self, int ax, int ay, int aw, int ah)

QWidget.setGraphicsEffect (self, QGraphicsEffect effect)

The effect argument has it's ownership transferred to Qt.

The setGraphicsEffect function is for setting the widget's graphics effect.

Sets effect as the widget's effect. If there already is an effect installed on this widget, QWidget will delete the existing effect before installing the new effect.

If effect is the installed on a different widget, setGraphicsEffect() will remove the effect from the widget and install it on this widget.

QWidget takes ownership of effect.

Note: This function will apply the effect on itself and all its children.

Note: Graphics effects are not supported on Mac, so they will not cause any difference to the rendering of the widget.

This function was introduced in Qt 4.6.

See also graphicsEffect().

QWidget.setHidden (self, bool hidden)

This method is also a Qt slot with the C++ signature void setHidden(bool).

Convenience function, equivalent to setVisible(!hidden).

See also isHidden().

QWidget.setInputContext (self, QInputContext)

The QInputContext argument has it's ownership transferred to Qt.

This function sets the input context context on this widget.

Qt takes ownership of the given input context.

See also inputContext().

QWidget.setInputMethodHints (self, Qt.InputMethodHints hints)

QWidget.setLayout (self, QLayout)

The QLayout argument has it's ownership transferred to Qt.

Sets the layout manager for this widget to layout.

If there already is a layout manager installed on this widget, QWidget won't let you install another. You must first delete the existing layout manager (returned by layout()) before you can call setLayout() with the new layout.

If layout is the layout manger on a different widget, setLayout() will reparent the layout and make it the layout manager for this widget.

Example:

     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(formWidget);
     setLayout(layout);

An alternative to calling this function is to pass this widget to the layout's constructor.

The QWidget will take ownership of layout.

See also layout() and Layout Management.

QWidget.setLayoutDirection (self, Qt.LayoutDirection direction)

QWidget.setLocale (self, QLocale locale)

QWidget.setMask (self, QBitmap)

Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible. If the region includes pixels outside the rect() of the widget, window system controls in that area may or may not be visible, depending on the platform.

Note that this effect can be slow if the region is particularly complex.

The following code shows how an image with an alpha channel can be used to generate a mask for a widget:

     QLabel topLevelLabel;
     QPixmap pixmap(":/images/tux.png");
     topLevelLabel.setPixmap(pixmap);
     topLevelLabel.setMask(pixmap.mask());

The label shown by this code is masked using the image it contains, giving the appearance that an irregularly-shaped image is being drawn directly onto the screen.

Masked widgets receive mouse events only on their visible portions.

See also mask(), clearMask(), windowOpacity(), and Shaped Clock Example.

QWidget.setMask (self, QRegion)

This is an overloaded function.

Causes only the parts of the widget which overlap region to be visible. If the region includes pixels outside the rect() of the widget, window system controls in that area may or may not be visible, depending on the platform.

Note that this effect can be slow if the region is particularly complex.

See also windowOpacity.

QWidget.setMaximumHeight (self, int maxh)

QWidget.setMaximumSize (self, int maxw, int maxh)

QWidget.setMaximumSize (self, QSize s)

QWidget.setMaximumWidth (self, int maxw)

QWidget.setMinimumHeight (self, int minh)

QWidget.setMinimumSize (self, int minw, int minh)

QWidget.setMinimumSize (self, QSize s)

QWidget.setMinimumWidth (self, int minw)

QWidget.setMouseTracking (self, bool enable)

QWidget.setPalette (self, QPalette)

QWidget.setParent (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Sets the parent of the widget to parent, and resets the window flags. The widget is moved to position (0, 0) in its new parent.

If the new parent widget is in a different window, the reparented widget and its children are appended to the end of the tab chain of the new parent widget, in the same internal order as before. If one of the moved widgets had keyboard focus, setParent() calls clearFocus() for that widget.

If the new parent widget is in the same window as the old parent, setting the parent doesn't change the tab order or keyboard focus.

If the "new" parent widget is the old parent widget, this function does nothing.

Note: The widget becomes invisible as part of changing its parent, even if it was previously visible. You must call show() to make the widget visible again.

Warning: It is very unlikely that you will ever need this function. If you have a widget that changes its content dynamically, it is far easier to use QStackedWidget.

See also setWindowFlags().

QWidget.setParent (self, QWidget parent, Qt.WindowFlags f)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

This is an overloaded function.

This function also takes widget flags, f as an argument.

QWidget.setShortcutAutoRepeat (self, int id, bool enabled = True)

If enable is true, auto repeat of the shortcut with the given id is enabled; otherwise it is disabled.

This function was introduced in Qt 4.2.

See also grabShortcut() and releaseShortcut().

QWidget.setShortcutEnabled (self, int id, bool enabled = True)

If enable is true, the shortcut with the given id is enabled; otherwise the shortcut is disabled.

Warning: You should not normally need to use this function since Qt's shortcut system enables/disables shortcuts automatically as widgets become hidden/visible and gain or lose focus. It is best to use QAction or QShortcut to handle shortcuts, since they are easier to use than this low-level function.

See also grabShortcut() and releaseShortcut().

QWidget.setShown (self, bool shown)

This method is also a Qt slot with the C++ signature void setShown(bool).

QWidget.setSizeIncrement (self, int w, int h)

QWidget.setSizeIncrement (self, QSize s)

QWidget.setSizePolicy (self, QSizePolicy)

QWidget.setSizePolicy (self, QSizePolicy.Policy hor, QSizePolicy.Policy ver)

QWidget.setStatusTip (self, QString)

QWidget.setStyle (self, QStyle)

Sets the widget's GUI style to style. The ownership of the style object is not transferred.

If no style is set, the widget uses the application's style, QApplication.style() instead.

Setting a widget's style has no effect on existing or future child widgets.

Warning: This function is particularly useful for demonstration purposes, where you want to show Qt's styling capabilities. Real applications should avoid it and use one consistent GUI style instead.

Warning: Qt style sheets are currently not supported for custom QStyle subclasses. We plan to address this in some future release.

See also style(), QStyle, QApplication.style(), and QApplication.setStyle().

QWidget.setStyleSheet (self, QString styleSheet)

QWidget.setTabOrder (QWidget, QWidget)

Puts the second widget after the first widget in the focus order.

Note that since the tab order of the second widget is changed, you should order a chain like this:

 setTabOrder(a, b); // a to b
 setTabOrder(b, c); // a to b to c
 setTabOrder(c, d); // a to b to c to d

not like this:

 // WRONG
 setTabOrder(c, d); // c to d
 setTabOrder(a, b); // a to b AND c to d
 setTabOrder(b, c); // a to b to c, but not c to d

If first or second has a focus proxy, setTabOrder() correctly substitutes the proxy.

See also setFocusPolicy(), setFocusProxy(), and Keyboard Focus.

QWidget.setToolTip (self, QString)

QWidget.setUpdatesEnabled (self, bool enable)

QWidget.setVisible (self, bool visible)

This method is also a Qt slot with the C++ signature void setVisible(bool).

QWidget.setWhatsThis (self, QString)

QWidget.setWindowFilePath (self, QString filePath)

QWidget.setWindowFlags (self, Qt.WindowFlags type)

QWidget.setWindowIcon (self, QIcon icon)

QWidget.setWindowIconText (self, QString)

QWidget.setWindowModality (self, Qt.WindowModality windowModality)

QWidget.setWindowModified (self, bool)

This method is also a Qt slot with the C++ signature void setWindowModified(bool).

QWidget.setWindowOpacity (self, float level)

QWidget.setWindowRole (self, QString)

Sets the window's role to role. This only makes sense for windows on X11.

See also windowRole().

QWidget.setWindowState (self, Qt.WindowStates state)

Sets the window state to windowState. The window state is a OR'ed combination of Qt.WindowState: Qt.WindowMinimized, Qt.WindowMaximized, Qt.WindowFullScreen, and Qt.WindowActive.

If the window is not visible (i.e. isVisible() returns false), the window state will take effect when show() is called. For visible windows, the change is immediate. For example, to toggle between full-screen and normal mode, use the following code:

 w->setWindowState(w->windowState() ^ Qt.WindowFullScreen);

In order to restore and activate a minimized window (while preserving its maximized and/or full-screen state), use the following:

 w->setWindowState(w->windowState() & ~Qt.WindowMinimized | Qt.WindowActive);

Calling this function will hide the widget. You must call show() to make the widget visible again.

Note: On some window systems Qt.WindowActive is not immediate, and may be ignored in certain cases.

When the window state changes, the widget receives a changeEvent() of type QEvent.WindowStateChange.

See also Qt.WindowState and windowState().

QWidget.setWindowTitle (self, QString)

QWidget.show (self)

This method is also a Qt slot with the C++ signature void show().

Shows the widget and its child widgets. This function is equivalent to setVisible(true).

See also raise_(), showEvent(), hide(), setVisible(), showMinimized(), showMaximized(), showNormal(), and isVisible().

QWidget.showEvent (self, QShowEvent)

This event handler can be reimplemented in a subclass to receive widget show events which are passed in the event parameter.

Non-spontaneous show events are sent to widgets immediately before they are shown. The spontaneous show events of windows are delivered afterwards.

Note: A widget receives spontaneous show and hide events when its mapping status is changed by the window system, e.g. a spontaneous hide event when the user minimizes the window, and a spontaneous show event when the window is restored again. After receiving a spontaneous hide event, a widget is still considered visible in the sense of isVisible().

See also visible, event(), and QShowEvent.

QWidget.showFullScreen (self)

This method is also a Qt slot with the C++ signature void showFullScreen().

Shows the widget in full-screen mode.

Calling this function only affects windows.

To return from full-screen mode, call showNormal().

Full-screen mode works fine under Windows, but has certain problems under X. These problems are due to limitations of the ICCCM protocol that specifies the communication between X11 clients and the window manager. ICCCM simply does not understand the concept of non-decorated full-screen windows. Therefore, the best we can do is to request a borderless window and place and resize it to fill the entire screen. Depending on the window manager, this may or may not work. The borderless window is requested using MOTIF hints, which are at least partially supported by virtually all modern window managers.

An alternative would be to bypass the window manager entirely and create a window with the Qt.X11BypassWindowManagerHint flag. This has other severe problems though, like totally broken keyboard focus and very strange effects on desktop changes or when the user raises other windows.

X11 window managers that follow modern post-ICCCM specifications support full-screen mode properly.

See also showNormal(), showMaximized(), show(), hide(), and isVisible().

QWidget.showMaximized (self)

This method is also a Qt slot with the C++ signature void showMaximized().

Shows the widget maximized.

Calling this function only affects windows.

On X11, this function may not work properly with certain window managers. See the Window Geometry documentation for an explanation.

See also setWindowState(), showNormal(), showMinimized(), show(), hide(), and isVisible().

QWidget.showMinimized (self)

This method is also a Qt slot with the C++ signature void showMinimized().

Shows the widget minimized, as an icon.

Calling this function only affects windows.

See also showNormal(), showMaximized(), show(), hide(), isVisible(), and isMinimized().

QWidget.showNormal (self)

This method is also a Qt slot with the C++ signature void showNormal().

Restores the widget after it has been maximized or minimized.

Calling this function only affects windows.

See also setWindowState(), showMinimized(), showMaximized(), show(), hide(), and isVisible().

QSize QWidget.size (self)

QSize QWidget.sizeHint (self)

QSize QWidget.sizeIncrement (self)

QSizePolicy QWidget.sizePolicy (self)

QWidget.stackUnder (self, QWidget)

Places the widget under w in the parent widget's stack.

To make this work, the widget itself and w must be siblings.

See also raise_() and lower().

QString QWidget.statusTip (self)

QStyle QWidget.style (self)

See also QWidget.setStyle(), QApplication.setStyle(), and QApplication.style().

QString QWidget.styleSheet (self)

QWidget.tabletEvent (self, QTabletEvent)

This event handler, for event event, can be reimplemented in a subclass to receive tablet events for the widget.

If you reimplement this handler, it is very important that you ignore() the event if you do not handle it, so that the widget's parent can interpret it.

The default implementation ignores the event.

See also QTabletEvent.ignore(), QTabletEvent.accept(), event(), and QTabletEvent.

bool QWidget.testAttribute (self, Qt.WidgetAttribute attribute)

Returns true if attribute attribute is set on this widget; otherwise returns false.

See also setAttribute().

QString QWidget.toolTip (self)

QWidget QWidget.topLevelWidget (self)

bool QWidget.underMouse (self)

Returns true if the widget is under the mouse cursor; otherwise returns false.

This value is not updated properly during drag and drop operations.

See also enterEvent() and leaveEvent().

QWidget.ungrabGesture (self, Qt.GestureType type)

Unsubscribes the widget from a given gesture type

This function was introduced in Qt 4.6.

See also grabGesture() and QGestureEvent.

QWidget.unsetCursor (self)

QWidget.unsetLayoutDirection (self)

QWidget.unsetLocale (self)

QWidget.update (self)

This method is also a Qt slot with the C++ signature void update().

Updates the widget unless updates are disabled or the widget is hidden.

This function does not cause an immediate repaint; instead it schedules a paint event for processing when Qt returns to the main event loop. This permits Qt to optimize for more speed and less flicker than a call to repaint() does.

Calling update() several times normally results in just one paintEvent() call.

Qt normally erases the widget's area before the paintEvent() call. If the Qt.WA_OpaquePaintEvent widget attribute is set, the widget is responsible for painting all its pixels with an opaque color.

See also repaint(), paintEvent(), setUpdatesEnabled(), and Analog Clock Example.

QWidget.update (self, QRect)

This is an overloaded function.

This version updates a rectangle (x, y, w, h) inside the widget.

QWidget.update (self, QRegion)

This is an overloaded function.

This version updates a rectangle rect inside the widget.

QWidget.update (self, int ax, int ay, int aw, int ah)

This is an overloaded function.

This version repaints a region rgn inside the widget.

QWidget.updateGeometry (self)

Notifies the layout system that this widget has changed and may need to change geometry.

Call this function if the sizeHint() or sizePolicy() have changed.

For explicitly hidden widgets, updateGeometry() is a no-op. The layout system will be notified as soon as the widget is shown.

QWidget.updateMicroFocus (self)

Updates the widget's micro focus.

See also QInputContext.

bool QWidget.updatesEnabled (self)

QRegion QWidget.visibleRegion (self)

Returns the unobscured region where paint events can occur.

For visible widgets, this is an approximation of the area not covered by other widgets; otherwise, this is an empty region.

The repaint() function calls this function if necessary, so in general you do not need to call it.

QString QWidget.whatsThis (self)

QWidget.wheelEvent (self, QWheelEvent)

This event handler, for event event, can be reimplemented in a subclass to receive wheel events for the widget.

If you reimplement this handler, it is very important that you ignore() the event if you do not handle it, so that the widget's parent can interpret it.

The default implementation ignores the event.

See also QWheelEvent.ignore(), QWheelEvent.accept(), event(), and QWheelEvent.

int QWidget.width (self)

QWidget QWidget.window (self)

Returns the window for this widget, i.e. the next ancestor widget that has (or could have) a window-system frame.

If the widget is a window, the widget itself is returned.

Typical usage is changing the window title:

 aWidget->window()->setWindowTitle("New Window Title");

See also isWindow().

QWidget.windowActivationChange (self, bool)

QString QWidget.windowFilePath (self)

Qt.WindowFlags QWidget.windowFlags (self)

QIcon QWidget.windowIcon (self)

QString QWidget.windowIconText (self)

Qt.WindowModality QWidget.windowModality (self)

float QWidget.windowOpacity (self)

QString QWidget.windowRole (self)

Returns the window's role, or an empty string.

See also setWindowRole(), windowIcon, and windowTitle.

Qt.WindowStates QWidget.windowState (self)

Returns the current window state. The window state is a OR'ed combination of Qt.WindowState: Qt.WindowMinimized, Qt.WindowMaximized, Qt.WindowFullScreen, and Qt.WindowActive.

See also Qt.WindowState and setWindowState().

QString QWidget.windowTitle (self)

Qt.WindowType QWidget.windowType (self)

Returns the window type of this widget. This is identical to windowFlags() & Qt.WindowType_Mask.

See also windowFlags.

int QWidget.winId (self)

Returns the window system identifier of the widget.

Portable in principle, but if you use it you are probably about to do something non-portable. Be careful.

If a widget is non-native (alien) and winId() is invoked on it, that widget will be provided a native handle.

On Mac OS X, the type returned depends on which framework Qt was linked against. If Qt is using Carbon, the {WId} is actually an HIViewRef. If Qt is using Cocoa, {WId} is a pointer to an NSView.

This value may change at run-time. An event with type QEvent.WinIdChange will be sent to the widget following a change in window system identifier.

See also find().

int QWidget.x (self)

QX11Info QWidget.x11Info (self)

Returns information about the configuration of the X display used to display the widget.

Warning: This function is only available on X11.

int QWidget.x11PictureHandle (self)

Returns the X11 Picture handle of the widget for XRender support. Use of this function is not portable. This function will return 0 if XRender support is not compiled into Qt, if the XRender extension is not supported on the X11 display, or if the handle could not be created.

int QWidget.y (self)


Qt Signal Documentation

void customContextMenuRequested (const QPoint&)

This is the default overload of this signal.

This signal is emitted when the widget's contextMenuPolicy is Qt.CustomContextMenu, and the user has requested a context menu on the widget. The position pos is the position of the context menu event that the widget receives. Normally this is in widget coordinates. The exception to this rule is QAbstractScrollArea and its subclasses that map the context menu event to coordinates of the viewport() .

See also mapToGlobal(), QMenu, and contextMenuPolicy.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwidgetaction.html0000644000076500000240000002465212536324516021225 0ustar philstaff00000000000000 QWidgetAction Class Reference
  Home · All Classes · Modules

QWidgetAction Class Reference
[QtGui module]

The QWidgetAction class extends QAction by an interface for inserting custom widgets into action based containers, such as toolbars. More...

Inherits QAction.

Methods


Detailed Description

The QWidgetAction class extends QAction by an interface for inserting custom widgets into action based containers, such as toolbars.

Most actions in an application are represented as items in menus or buttons in toolbars. However sometimes more complex widgets are necessary. For example a zoom action in a word processor may be realized using a QComboBox in a QToolBar, presenting a range of different zoom levels. QToolBar provides QToolBar.insertWidget() as convenience function for inserting a single widget. However if you want to implement an action that uses custom widgets for visualization in multiple containers then you have to subclass QWidgetAction.

If a QWidgetAction is added for example to a QToolBar then QWidgetAction.createWidget() is called. Reimplementations of that function should create a new custom widget with the specified parent.

If the action is removed from a container widget then QWidgetAction.deleteWidget() is called with the previously created custom widget as argument. The default implementation hides the widget and deletes it using QObject.deleteLater().

If you have only one single custom widget then you can set it as default widget using setDefaultWidget(). That widget will then be used if the action is added to a QToolBar, or in general to an action container that supports QWidgetAction. If a QWidgetAction with only a default widget is added to two toolbars at the same time then the default widget is shown only in the first toolbar the action was added to. QWidgetAction takes over ownership of the default widget.

Note that it is up to the widget to activate the action, for example by reimplementing mouse event handlers and calling QAction.trigger().

Mac OS X: If you add a widget to a menu in the application's menu bar on Mac OS X, the widget will be added and it will function but with some limitations:

  1. The widget is reparented away from the QMenu to the native menu view. If you show the menu in some other place (e.g. as a popup menu), the widget will not be there.
  2. Focus/Keyboard handling of the widget is not possible.
  3. Due to Apple's design, mouse tracking on the widget currently does not work.
  4. Connecting the triggered() signal to a slot that opens a modal dialog will cause a crash in Mac OS X 10.4 (known bug acknowledged by Apple), a workaround is to use a QueuedConnection instead of a DirectConnection.

Method Documentation

QWidgetAction.__init__ (self, QObject parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs an action with parent.

list-of-QWidget QWidgetAction.createdWidgets (self)

Returns the list of widgets that have been using createWidget() and are currently in use by widgets the action has been added to.

QWidget QWidgetAction.createWidget (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

This function is called whenever the action is added to a container widget that supports custom widgets. If you don't want a custom widget to be used as representation of the action in the specified parent widget then 0 should be returned.

See also deleteWidget().

QWidget QWidgetAction.defaultWidget (self)

Returns the default widget.

See also setDefaultWidget().

QWidgetAction.deleteWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

This function is called whenever the action is removed from a container widget that displays the action using a custom widget previously created using createWidget(). The default implementation hides the widget and schedules it for deletion using QObject.deleteLater().

See also createWidget().

bool QWidgetAction.event (self, QEvent)

Reimplemented from QObject.event().

bool QWidgetAction.eventFilter (self, QObject, QEvent)

Reimplemented from QObject.eventFilter().

QWidgetAction.releaseWidget (self, QWidget widget)

The widget argument

Releases the specified widget.

Container widgets that support actions call this function when a widget action is removed.

See also requestWidget(), deleteWidget(), and defaultWidget().

QWidget QWidgetAction.requestWidget (self, QWidget parent)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Returns a widget that represents the action, with the given parent.

Container widgets that support actions can call this function to request a widget as visual representation of the action.

See also releaseWidget(), createWidget(), and defaultWidget().

QWidgetAction.setDefaultWidget (self, QWidget w)

The w argument has it's ownership transferred to Qt.

Sets widget to be the default widget. The ownership is transferred to QWidgetAction. Unless createWidget() is reimplemented by a subclass to return a new widget the default widget is used when a container widget requests a widget through requestWidget().

See also defaultWidget().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwidgetitem.html0000644000076500000240000001523212536324507020700 0ustar philstaff00000000000000 QWidgetItem Class Reference
  Home · All Classes · Modules

QWidgetItem Class Reference
[QtGui module]

The QWidgetItem class is a layout item that represents a widget. More...

Inherits QLayoutItem.

Methods


Detailed Description

The QWidgetItem class is a layout item that represents a widget.

Normally, you don't need to use this class directly. Qt's built-in layout managers provide the following functions for manipulating widgets in layouts:

Class Functions
QBoxLayout addWidget(), insertWidget(), setStretchFactor()
QGridLayout addWidget()
QStackedLayout addWidget(), insertWidget(), currentWidget(), setCurrentWidget(), widget()

Method Documentation

QWidgetItem.__init__ (self, QWidget w)

Creates an item containing the given widget.

Qt.Orientations QWidgetItem.expandingDirections (self)

Reimplemented from QLayoutItem.expandingDirections().

QRect QWidgetItem.geometry (self)

Reimplemented from QLayoutItem.geometry().

See also setGeometry().

bool QWidgetItem.hasHeightForWidth (self)

Reimplemented from QLayoutItem.hasHeightForWidth().

int QWidgetItem.heightForWidth (self, int)

Reimplemented from QLayoutItem.heightForWidth().

bool QWidgetItem.isEmpty (self)

Reimplemented from QLayoutItem.isEmpty().

Returns true if the widget is hidden; otherwise returns false.

See also QWidget.isHidden().

QSize QWidgetItem.maximumSize (self)

Reimplemented from QLayoutItem.maximumSize().

QSize QWidgetItem.minimumSize (self)

Reimplemented from QLayoutItem.minimumSize().

QWidgetItem.setGeometry (self, QRect)

Reimplemented from QLayoutItem.setGeometry().

See also geometry().

QSize QWidgetItem.sizeHint (self)

Reimplemented from QLayoutItem.sizeHint().

QWidget QWidgetItem.widget (self)

Reimplemented from QLayoutItem.widget().

Returns the widget managed by this item.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwindowstatechangeevent.html0000644000076500000240000000433712536324503023316 0ustar philstaff00000000000000 QWindowStateChangeEvent Class Reference
  Home · All Classes · Modules

QWindowStateChangeEvent Class Reference
[QtGui module]

The QWindowStateChangeEvent class provides the window state before a window state change. More...

Inherits QEvent.

Methods


Detailed Description

The QWindowStateChangeEvent class provides the window state before a window state change.


Method Documentation

Qt.WindowStates QWindowStateChangeEvent.oldState (self)

Returns the state of the window before the change.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwizard-wizardoptions.html0000644000076500000240000001424412536324517022753 0ustar philstaff00000000000000 QWizard.WizardOptions Class Reference
  Home · All Classes · Modules

QWizard.WizardOptions Class Reference
[QtGui module]

Methods

Special Methods

  • WizardOptions __and__ (self, int mask)
  • int __bool__ (self)
  • bool __eq__ (self, WizardOptions f)
  • WizardOptions __iand__ (self, int mask)
  • int __int__ (self)
  • WizardOptions __invert__ (self)
  • WizardOptions __ior__ (self, WizardOptions f)
  • WizardOptions __ixor__ (self, WizardOptions f)
  • bool __ne__ (self, WizardOptions f)
  • WizardOptions __or__ (self, WizardOptions f)
  • WizardOptions __or__ (self, int f)
  • WizardOptions __xor__ (self, WizardOptions f)
  • WizardOptions __xor__ (self, int f)

Detailed Description

WizardOption may be used whenever WizardOptions is expected.


Method Documentation

WizardOptions.__init__ (self, WizardOptions)

WizardOptions.__init__ (self, int)

WizardOptions.__init__ (self)

WizardOptions WizardOptions.__and__ (self, int mask)

int WizardOptions.__bool__ (self)

bool WizardOptions.__eq__ (self, WizardOptions f)

WizardOptions WizardOptions.__iand__ (self, int mask)

int WizardOptions.__int__ (self)

WizardOptions WizardOptions.__invert__ (self)

WizardOptions WizardOptions.__ior__ (self, WizardOptions f)

WizardOptions WizardOptions.__ixor__ (self, WizardOptions f)

bool WizardOptions.__ne__ (self, WizardOptions f)

WizardOptions WizardOptions.__or__ (self, WizardOptions f)

WizardOptions WizardOptions.__or__ (self, int f)

WizardOptions WizardOptions.__xor__ (self, WizardOptions f)

WizardOptions WizardOptions.__xor__ (self, int f)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwizard.html0000644000076500000240000022602412536324517020042 0ustar philstaff00000000000000 QWizard Class Reference
  Home · All Classes · Modules

QWizard Class Reference
[QtGui module]

The QWizard class provides a framework for wizards. More...

Inherits QDialog.

Types

  • enum WizardButton { BackButton, NextButton, CommitButton, FinishButton, ..., Stretch }
  • enum WizardOption { IndependentPages, IgnoreSubTitles, ExtendedWatermarkPixmap, NoDefaultButton, ..., HaveCustomButton3 }
  • enum WizardPixmap { WatermarkPixmap, LogoPixmap, BannerPixmap, BackgroundPixmap }
  • enum WizardStyle { ClassicStyle, ModernStyle, MacStyle, AeroStyle }

Methods

Qt Signals


Detailed Description

The QWizard class provides a framework for wizards.

A wizard (also called an assistant on Mac OS X) is a special type of input dialog that consists of a sequence of pages. A wizard's purpose is to guide the user through a process step by step. Wizards are useful for complex or infrequent tasks that users may find difficult to learn.

QWizard inherits QDialog and represents a wizard. Each page is a QWizardPage (a QWidget subclass). To create your own wizards, you can use these classes directly, or you can subclass them for more control.

Topics:

A Trivial Example

The following example illustrates how to create wizard pages and add them to a wizard. For more advanced examples, see Class Wizard and License Wizard.

 QWizardPage *createIntroPage()
 {
     QWizardPage *page = new QWizardPage;
     page->setTitle("Introduction");

     QLabel *label = new QLabel("This wizard will help you register your copy "
                                "of Super Product Two.");
     label->setWordWrap(true);

     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(label);
     page->setLayout(layout);

     return page;
 }

 QWizardPage *createRegistrationPage()
 {
     ...
 }

 QWizardPage *createConclusionPage()
 {
     ...
 }

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     QString translatorFileName = QLatin1String("qt_");
     translatorFileName += QLocale.system().name();
     QTranslator *translator = new QTranslator(&app);
     if (translator->load(translatorFileName, QLibraryInfo.location(QLibraryInfo.TranslationsPath)))
         app.installTranslator(translator);

     QWizard wizard;
     wizard.addPage(createIntroPage());
     wizard.addPage(createRegistrationPage());
     wizard.addPage(createConclusionPage());

     wizard.setWindowTitle("Trivial Wizard");
 #ifdef Q_OS_SYMBIAN
     wizard.showMaximized();
 #else
     wizard.show();
 #endif

     return app.exec();
 }

Wizard Look and Feel

QWizard supports four wizard looks:

You can explicitly set the look to use using setWizardStyle() (e.g., if you want the same look on all platforms).

ClassicStyle ModernStyle MacStyle AeroStyle

Note: AeroStyle has effect only on a Windows Vista system with alpha compositing enabled. ModernStyle is used as a fallback when this condition is not met.

In addition to the wizard style, there are several options that control the look and feel of the wizard. These can be set using setOption() or setOptions(). For example, HaveHelpButton makes QWizard show a Help button along with the other wizard buttons.

You can even change the order of the wizard buttons to any arbitrary order using setButtonLayout(), and you can add up to three custom buttons (e.g., a Print button) to the button row. This is achieved by calling setButton() or setButtonText() with CustomButton1, CustomButton2, or CustomButton3 to set up the button, and by enabling the HaveCustomButton1, HaveCustomButton2, or HaveCustomButton3 options. Whenever the user clicks a custom button, customButtonClicked() is emitted. For example:

         wizard()->setButtonText(QWizard.CustomButton1, tr("&Print"));
         wizard()->setOption(QWizard.HaveCustomButton1, true);
         connect(wizard(), SIGNAL(customButtonClicked(int)),
                 this, SLOT(printButtonClicked()));

Elements of a Wizard Page

Wizards consist of a sequence of QWizardPages. At any time, only one page is shown. A page has the following attributes:

The diagram belows shows how QWizard renders these attributes, assuming they are all present and ModernStyle is used:

When a subTitle is set, QWizard displays it in a header, in which case it also uses the BannerPixmap and the LogoPixmap to decorate the header. The WatermarkPixmap is displayed on the left side, below the header. At the bottom, there is a row of buttons allowing the user to navigate through the pages.

The page itself (the QWizardPage widget) occupies the area between the header, the watermark, and the button row. Typically, the page is a QWizardPage on which a QGridLayout is installed, with standard child widgets (QLabels, QLineEdits, etc.).

If the wizard's style is MacStyle, the page looks radically different:

The watermark, banner, and logo pixmaps are ignored by the MacStyle. If the BackgroundPixmap is set, it is used as the background for the wizard; otherwise, a default "assistant" image is used.

The title and subtitle are set by calling QWizardPage.setTitle() and QWizardPage.setSubTitle() on the individual pages. They may be plain text or HTML (see titleFormat and subTitleFormat). The pixmaps can be set globally for the entire wizard using setPixmap(), or on a per-page basis using QWizardPage.setPixmap().

Registering and Using Fields

In many wizards, the contents of a page may affect the default values of the fields of a later page. To make it easy to communicate between pages, QWizard supports a "field" mechanism that allows you to register a field (e.g., a QLineEdit) on a page and to access its value from any page. It is also possible to specify mandatory fields (i.e., fields that must be filled before the user can advance to the next page).

To register a field, call QWizardPage.registerField() field. For example:

 ClassInfoPage.ClassInfoPage(QWidget *parent)
     : QWizardPage(parent)
 {
     ...
     classNameLabel = new QLabel(tr("&Class name:"));
     classNameLineEdit = new QLineEdit;
     classNameLabel->setBuddy(classNameLineEdit);

     baseClassLabel = new QLabel(tr("B&ase class:"));
     baseClassLineEdit = new QLineEdit;
     baseClassLabel->setBuddy(baseClassLineEdit);

     qobjectMacroCheckBox = new QCheckBox(tr("Generate Q_OBJECT &macro"));

     registerField("className*", classNameLineEdit);
     registerField("baseClass", baseClassLineEdit);
     registerField("qobjectMacro", qobjectMacroCheckBox);
     ...
 }

The above code registers three fields, className, baseClass, and qobjectMacro, which are associated with three child widgets. The asterisk (*) next to className denotes a mandatory field.

The fields of any page are accessible from any other page. For example:

 void OutputFilesPage.initializePage()
 {
     QString className = field("className").toString();
     headerLineEdit->setText(className.toLower() + ".h");
     implementationLineEdit->setText(className.toLower() + ".cpp");
     outputDirLineEdit->setText(QDir.convertSeparators(QDir.tempPath()));
 }

Here, we call QWizardPage.field() to access the contents of the className field (which was defined in the ClassInfoPage) and use it to initialize the OuputFilePage. The field's contents is returned as a QVariant.

When we create a field using QWizardPage.registerField(), we pass a unique field name and a widget. We can also provide a Qt property name and a "changed" signal (a signal that is emitted when the property changes) as third and fourth arguments; however, this is not necessary for the most common Qt widgets, such as QLineEdit, QCheckBox, and QComboBox, because QWizard knows which properties to look for.

If an asterisk (*) is appended to the name when the property is registered, the field is a mandatory field. When a page has mandatory fields, the Next and/or Finish buttons are enabled only when all mandatory fields are filled.

To consider a field "filled", QWizard simply checks that the field's current value doesn't equal the original value (the value it had when initializePage() was called). For QLineEdit and QAbstractSpinBox subclasses, QWizard also checks that hasAcceptableInput() returns true, to honor any validator or mask.

QWizard's mandatory field mechanism is provided for convenience. A more powerful (but also more cumbersome) alternative is to reimplement QWizardPage.isComplete() and to emit the QWizardPage.completeChanged() signal whenever the page becomes complete or incomplete.

The enabled/disabled state of the Next and/or Finish buttons is one way to perform validation on the user input. Another way is to reimplement validateCurrentPage() (or QWizardPage.validatePage()) to perform some last-minute validation (and show an error message if the user has entered incomplete or invalid information). If the function returns true, the next page is shown (or the wizard finishes); otherwise, the current page stays up.

Creating Linear Wizards

Most wizards have a linear structure, with page 1 followed by page 2 and so on until the last page. The Class Wizard example is such a wizard. With QWizard, linear wizards are created by instantiating the QWizardPages and inserting them using addPage(). By default, the pages are shown in the order in which they were added. For example:

 ClassWizard.ClassWizard(QWidget *parent)
     : QWizard(parent)
 {
     addPage(new IntroPage);
     addPage(new ClassInfoPage);
     addPage(new CodeStylePage);
     addPage(new OutputFilesPage);
     addPage(new ConclusionPage);
     ...
 }

When a page is about to be shown, QWizard calls initializePage() (which in turn calls QWizardPage.initializePage()) to fill the page with default values. By default, this function does nothing, but it can be reimplemented to initialize the page's contents based on other pages' fields (see the example above).

If the user presses Back, cleanupPage() is called (which in turn calls QWizardPage.cleanupPage()). The default implementation resets the page's fields to their original values (the values they had before initializePage() was called). If you want the Back button to be non-destructive and keep the values entered by the user, simply enable the IndependentPages option.

Creating Non-Linear Wizards

Some wizards are more complex in that they allow different traversal paths based on the information provided by the user. The License Wizard example illustrates this. It provides five wizard pages; depending on which options are selected, the user can reach different pages.

In complex wizards, pages are identified by IDs. These IDs are typically defined using an enum. For example:

 class LicenseWizard : public QWizard
 {
     ...
     enum { Page_Intro, Page_Evaluate, Page_Register, Page_Details,
            Page_Conclusion };
     ...
 };

The pages are inserted using setPage(), which takes an ID and an instance of QWizardPage (or of a subclass):

 LicenseWizard.LicenseWizard(QWidget *parent)
     : QWizard(parent)
 {
     setPage(Page_Intro, new IntroPage);
     setPage(Page_Evaluate, new EvaluatePage);
     setPage(Page_Register, new RegisterPage);
     setPage(Page_Details, new DetailsPage);
     setPage(Page_Conclusion, new ConclusionPage);
     ...
 }

By default, the pages are shown in increasing ID order. To provide a dynamic order that depends on the options chosen by the user, we must reimplement QWizardPage.nextId(). For example:

 int IntroPage.nextId() const
 {
     if (evaluateRadioButton->isChecked()) {
         return LicenseWizard.Page_Evaluate;
     } else {
         return LicenseWizard.Page_Register;
     }
 }

 int EvaluatePage.nextId() const
 {
     return LicenseWizard.Page_Conclusion;
 }

 int RegisterPage.nextId() const
 {
     if (upgradeKeyLineEdit->text().isEmpty()) {
         return LicenseWizard.Page_Details;
     } else {
         return LicenseWizard.Page_Conclusion;
     }
 }

 int DetailsPage.nextId() const
 {
     return LicenseWizard.Page_Conclusion;
 }

 int ConclusionPage.nextId() const
 {
     return -1;
 }

It would also be possible to put all the logic in one place, in a QWizard.nextId() reimplementation. For example:

 int LicenseWizard.nextId() const
 {
     switch (currentId()) {
     case Page_Intro:
         if (field("intro.evaluate").toBool()) {
             return Page_Evaluate;
         } else {
             return Page_Register;
         }
     case Page_Evaluate:
         return Page_Conclusion;
     case Page_Register:
         if (field("register.upgradeKey").toString().isEmpty()) {
             return Page_Details;
         } else {
             return Page_Conclusion;
         }
     case Page_Details:
         return Page_Conclusion;
     case Page_Conclusion:
     default:
         return -1;
     }
 }

To start at another page than the page with the lowest ID, call setStartId().

To test whether a page has been visited or not, call hasVisitedPage(). For example:

 void ConclusionPage.initializePage()
 {
     QString licenseText;

     if (wizard()->hasVisitedPage(LicenseWizard.Page_Evaluate)) {
         licenseText = tr("<u>Evaluation License Agreement:</u> "
                          "You can use this software for 30 days and make one "
                          "backup, but you are not allowed to distribute it.");
     } else if (wizard()->hasVisitedPage(LicenseWizard.Page_Details)) {
         licenseText = tr("<u>First-Time License Agreement:</u> "
                          "You can use this software subject to the license "
                          "you will receive by email.");
     } else {
         licenseText = tr("<u>Upgrade License Agreement:</u> "
                          "This software is licensed under the terms of your "
                          "current license.");
     }
     bottomLabel->setText(licenseText);
 }

Type Documentation

QWizard.WizardButton

This enum specifies the buttons in a wizard.

Constant Value Description
QWizard.BackButton 0 The Back button (Go Back on Mac OS X)
QWizard.NextButton 1 The Next button (Continue on Mac OS X)
QWizard.CommitButton 2 The Commit button
QWizard.FinishButton 3 The Finish button (Done on Mac OS X)
QWizard.CancelButton 4 The Cancel button (see also NoCancelButton)
QWizard.HelpButton 5 The Help button (see also HaveHelpButton)
QWizard.CustomButton1 6 The first user-defined button (see also HaveCustomButton1)
QWizard.CustomButton2 7 The second user-defined button (see also HaveCustomButton2)
QWizard.CustomButton3 8 The third user-defined button (see also HaveCustomButton3)

The following value is only useful when calling setButtonLayout():

Constant Value Description
QWizard.Stretch 9 A horizontal stretch in the button layout

See also setButton(), setButtonText(), setButtonLayout(), and customButtonClicked().

QWizard.WizardOption

This enum specifies various options that affect the look and feel of a wizard.

Constant Value Description
QWizard.IndependentPages 0x00000001 The pages are independent of each other (i.e., they don't derive values from each other).
QWizard.IgnoreSubTitles 0x00000002 Don't show any subtitles, even if they are set.
QWizard.ExtendedWatermarkPixmap 0x00000004 Extend any WatermarkPixmap all the way down to the window's edge.
QWizard.NoDefaultButton 0x00000008 Don't make the Next or Finish button the dialog's default button.
QWizard.NoBackButtonOnStartPage 0x00000010 Don't show the Back button on the start page.
QWizard.NoBackButtonOnLastPage 0x00000020 Don't show the Back button on the last page.
QWizard.DisabledBackButtonOnLastPage 0x00000040 Disable the Back button on the last page.
QWizard.HaveNextButtonOnLastPage 0x00000080 Show the (disabled) Next button on the last page.
QWizard.HaveFinishButtonOnEarlyPages 0x00000100 Show the (disabled) Finish button on non-final pages.
QWizard.NoCancelButton 0x00000200 Don't show the Cancel button.
QWizard.CancelButtonOnLeft 0x00000400 Put the Cancel button on the left of Back (rather than on the right of Finish or Next).
QWizard.HaveHelpButton 0x00000800 Show the Help button.
QWizard.HelpButtonOnRight 0x00001000 Put the Help button on the far right of the button layout (rather than on the far left).
QWizard.HaveCustomButton1 0x00002000 Show the first user-defined button (CustomButton1).
QWizard.HaveCustomButton2 0x00004000 Show the second user-defined button (CustomButton2).
QWizard.HaveCustomButton3 0x00008000 Show the third user-defined button (CustomButton3).

The WizardOptions type is a typedef for QFlags<WizardOption>. It stores an OR combination of WizardOption values.

See also setOptions(), setOption(), and testOption().

QWizard.WizardPixmap

This enum specifies the pixmaps that can be associated with a page.

Constant Value Description
QWizard.WatermarkPixmap 0 The tall pixmap on the left side of a ClassicStyle or ModernStyle page
QWizard.LogoPixmap 1 The small pixmap on the right side of a ClassicStyle or ModernStyle page header
QWizard.BannerPixmap 2 The pixmap that occupies the background of a ModernStyle page header
QWizard.BackgroundPixmap 3 The pixmap that occupies the background of a MacStyle wizard

See also setPixmap(), QWizardPage.setPixmap(), and Elements of a Wizard Page.

QWizard.WizardStyle

This enum specifies the different looks supported by QWizard.

Constant Value Description
QWizard.ClassicStyle 0 Classic Windows look
QWizard.ModernStyle 1 Modern Windows look
QWizard.MacStyle 2 Mac OS X look
QWizard.AeroStyle 3 Windows Aero look

See also setWizardStyle(), WizardOption, and Wizard Look and Feel.


Method Documentation

QWizard.__init__ (self, QWidget parent = None, Qt.WindowFlags flags = 0)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a wizard with the given parent and window flags.

See also parent() and windowFlags().

int QWizard.addPage (self, QWizardPage page)

The page argument has it's ownership transferred to Qt.

Adds the given page to the wizard, and returns the page's ID.

The ID is guaranteed to be larger than any other ID in the QWizard so far.

See also setPage(), page(), and pageAdded().

QWizard.back (self)

This method is also a Qt slot with the C++ signature void back().

Goes back to the previous page.

This is equivalent to pressing the Back button.

See also next(), accept(), reject(), and restart().

QAbstractButton QWizard.button (self, WizardButton which)

Returns the button corresponding to role which.

See also setButton() and setButtonText().

QString QWizard.buttonText (self, WizardButton which)

Returns the text on button which.

If a text has ben set using setButtonText(), this text is returned.

By default, the text on buttons depends on the wizardStyle. For example, on Mac OS X, the Next button is called Continue.

See also button(), setButton(), setButtonText(), QWizardPage.buttonText(), and QWizardPage.setButtonText().

QWizard.cleanupPage (self, int id)

This virtual function is called by QWizard to clean up page id just before the user leaves it by clicking Back (unless the QWizard.IndependentPages option is set).

The default implementation calls QWizardPage.cleanupPage() on page(id).

See also QWizardPage.cleanupPage() and initializePage().

int QWizard.currentId (self)

QWizardPage QWizard.currentPage (self)

Returns a pointer to the current page, or 0 if there is no current page (e.g., before the wizard is shown).

This is equivalent to calling page(currentId()).

See also page(), currentId(), and restart().

QWizard.done (self, int result)

Reimplemented from QDialog.done().

bool QWizard.event (self, QEvent event)

Reimplemented from QObject.event().

QVariant QWizard.field (self, QString name)

Returns the value of the field called name.

This function can be used to access fields on any page of the wizard.

See also QWizardPage.registerField(), QWizardPage.field(), and setField().

bool QWizard.hasVisitedPage (self, int id)

Returns true if the page history contains page id; otherwise, returns false.

Pressing Back marks the current page as "unvisited" again.

See also visitedPages().

QWizard.initializePage (self, int id)

This virtual function is called by QWizard to prepare page id just before it is shown either as a result of QWizard.restart() being called, or as a result of the user clicking Next. (However, if the QWizard.IndependentPages option is set, this function is only called the first time the page is shown.)

By reimplementing this function, you can ensure that the page's fields are properly initialized based on fields from previous pages.

The default implementation calls QWizardPage.initializePage() on page(id).

See also QWizardPage.initializePage() and cleanupPage().

QWizard.next (self)

This method is also a Qt slot with the C++ signature void next().

Advances to the next page.

This is equivalent to pressing the Next or Commit button.

See also nextId(), back(), accept(), reject(), and restart().

int QWizard.nextId (self)

This virtual function is called by QWizard to find out which page to show when the user clicks the Next button.

The return value is the ID of the next page, or -1 if no page follows.

The default implementation calls QWizardPage.nextId() on the currentPage().

By reimplementing this function, you can specify a dynamic page order.

See also QWizardPage.nextId() and currentPage().

WizardOptions QWizard.options (self)

QWizardPage QWizard.page (self, int id)

Returns the page with the given id, or 0 if there is no such page.

See also addPage() and setPage().

list-of-int QWizard.pageIds (self)

Returns the list of page IDs.

This function was introduced in Qt 4.5.

QWizard.paintEvent (self, QPaintEvent event)

Reimplemented from QWidget.paintEvent().

QPixmap QWizard.pixmap (self, WizardPixmap which)

Returns the pixmap set for role which.

By default, the only pixmap that is set is the BackgroundPixmap on Mac OS X.

See also setPixmap(), QWizardPage.pixmap(), and Elements of a Wizard Page.

QWizard.removePage (self, int id)

Removes the page with the given id. cleanupPage() will be called if necessary.

Note: Removing a page may influence the value of the startId property.

This function was introduced in Qt 4.5.

See also addPage(), setPage(), pageRemoved(), and startId().

QWizard.resizeEvent (self, QResizeEvent event)

Reimplemented from QWidget.resizeEvent().

QWizard.restart (self)

This method is also a Qt slot with the C++ signature void restart().

Restarts the wizard at the start page. This function is called automatically when the wizard is shown.

See also startId().

QWizard.setButton (self, WizardButton which, QAbstractButton button)

The button argument has it's ownership transferred to Qt.

Sets the button corresponding to role which to button.

To add extra buttons to the wizard (e.g., a Print button), one way is to call setButton() with CustomButton1 to CustomButton3, and make the buttons visible using the HaveCustomButton1 to HaveCustomButton3 options.

See also button(), setButtonText(), setButtonLayout(), and options.

QWizard.setButtonLayout (self, list-of-QWizard.WizardButton layout)

Sets the order in which buttons are displayed to layout, where layout is a list of WizardButtons.

The default layout depends on the options (e.g., whether HelpButtonOnRight) that are set. You can call this function if you need more control over the buttons' layout than what options already provides.

You can specify horizontal stretches in the layout using Stretch.

Example:

 MyWizard.MyWizard(QWidget *parent)
     : QWizard(parent)
 {
     ...
     QList<QWizard.WizardButton> layout;
     layout << QWizard.Stretch << QWizard.BackButton << QWizard.CancelButton
            << QWizard.NextButton << QWizard.FinishButton;
     setButtonLayout(layout);
     ...
 }

See also setButton(), setButtonText(), and setOptions().

QWizard.setButtonText (self, WizardButton which, QString text)

Sets the text on button which to be text.

By default, the text on buttons depends on the wizardStyle. For example, on Mac OS X, the Next button is called Continue.

To add extra buttons to the wizard (e.g., a Print button), one way is to call setButtonText() with CustomButton1, CustomButton2, or CustomButton3 to set their text, and make the buttons visible using the HaveCustomButton1, HaveCustomButton2, and/or HaveCustomButton3 options.

Button texts may also be set on a per-page basis using QWizardPage.setButtonText().

See also buttonText(), setButton(), button(), setButtonLayout(), setOptions(), and QWizardPage.setButtonText().

QWizard.setDefaultProperty (self, str className, str property, str changedSignal)

Sets the default property for className to be property, and the associated change signal to be changedSignal.

The default property is used when an instance of className (or of one of its subclasses) is passed to QWizardPage.registerField() and no property is specified.

QWizard knows the most common Qt widgets. For these (or their subclasses), you don't need to specify a property or a changedSignal. The table below lists these widgets:

Widget Property Change Notification Signal
QAbstractButton bool checked toggled()
QAbstractSlider int value valueChanged()
QComboBox int currentIndex currentIndexChanged()
QDateTimeEdit QDateTime dateTime dateTimeChanged()
QLineEdit QString text textChanged()
QListWidget int currentRow currentRowChanged()
QSpinBox int value valueChanged()

See also QWizardPage.registerField().

QWizard.setField (self, QString name, QVariant value)

Sets the value of the field called name to value.

This function can be used to set fields on any page of the wizard.

See also QWizardPage.registerField(), QWizardPage.setField(), and field().

QWizard.setOption (self, WizardOption option, bool on = True)

Sets the given option to be enabled if on is true; otherwise, clears the given option.

See also options, testOption(), and setWizardStyle().

QWizard.setOptions (self, WizardOptions options)

QWizard.setPage (self, int id, QWizardPage page)

The page argument has it's ownership transferred to Qt.

Adds the given page to the wizard with the given id.

Note: Adding a page may influence the value of the startId property in case it was not set explicitly.

See also addPage(), page(), and pageAdded().

QWizard.setPixmap (self, WizardPixmap which, QPixmap pixmap)

Sets the pixmap for role which to pixmap.

The pixmaps are used by QWizard when displaying a page. Which pixmaps are actually used depend on the wizard style.

Pixmaps can also be set for a specific page using QWizardPage.setPixmap().

See also pixmap(), QWizardPage.setPixmap(), and Elements of a Wizard Page.

QWizard.setSideWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets the given widget to be shown on the left side of the wizard. For styles which use the WatermarkPixmap (ClassicStyle and ModernStyle) the side widget is displayed on top of the watermark, for other styles or when the watermark is not provided the side widget is displayed on the left side of the wizard.

Passing 0 shows no side widget.

When the widget is not 0 the wizard reparents it.

Any previous side widget is hidden.

You may call setSideWidget() with the same widget at different times.

All widgets set here will be deleted by the wizard when it is destroyed unless you separately reparent the widget after setting some other side widget (or 0).

By default, no side widget is present.

This function was introduced in Qt 4.7.

See also sideWidget().

QWizard.setStartId (self, int id)

QWizard.setSubTitleFormat (self, Qt.TextFormat format)

QWizard.setTitleFormat (self, Qt.TextFormat format)

QWizard.setVisible (self, bool visible)

Reimplemented from QWidget.setVisible().

QWizard.setWizardStyle (self, WizardStyle style)

QWidget QWizard.sideWidget (self)

Returns the widget on the left side of the wizard or 0.

By default, no side widget is present.

This function was introduced in Qt 4.7.

See also setSideWidget().

QSize QWizard.sizeHint (self)

Reimplemented from QWidget.sizeHint().

int QWizard.startId (self)

Qt.TextFormat QWizard.subTitleFormat (self)

bool QWizard.testOption (self, WizardOption option)

Returns true if the given option is enabled; otherwise, returns false.

See also options, setOption(), and setWizardStyle().

Qt.TextFormat QWizard.titleFormat (self)

bool QWizard.validateCurrentPage (self)

This virtual function is called by QWizard when the user clicks Next or Finish to perform some last-minute validation. If it returns true, the next page is shown (or the wizard finishes); otherwise, the current page stays up.

The default implementation calls QWizardPage.validatePage() on the currentPage().

When possible, it is usually better style to disable the Next or Finish button (by specifying mandatory fields or by reimplementing QWizardPage.isComplete()) than to reimplement validateCurrentPage().

See also QWizardPage.validatePage() and currentPage().

list-of-int QWizard.visitedPages (self)

Returns the list of IDs of visited pages, in the order in which the pages were visited.

Pressing Back marks the current page as "unvisited" again.

See also hasVisitedPage().

WizardStyle QWizard.wizardStyle (self)


Qt Signal Documentation

void currentIdChanged (int)

This is the default overload of this signal.

This signal is emitted when the current page changes, with the new current id.

See also currentId() and currentPage().

void customButtonClicked (int)

This is the default overload of this signal.

This signal is emitted when the user clicks a custom button. which can be CustomButton1, CustomButton2, or CustomButton3.

By default, no custom button is shown. Call setOption() with HaveCustomButton1, HaveCustomButton2, or HaveCustomButton3 to have one, and use setButtonText() or setButton() to configure it.

See also helpRequested().

void helpRequested ()

This is the default overload of this signal.

This signal is emitted when the user clicks the Help button.

By default, no Help button is shown. Call setOption(HaveHelpButton, true) to have one.

Example:

 LicenseWizard.LicenseWizard(QWidget *parent)
     : QWizard(parent)
 {
     ...
     setOption(HaveHelpButton, true);
     connect(this, SIGNAL(helpRequested()), this, SLOT(showHelp()));
     ...
 }

 void LicenseWizard.showHelp()
 {
     static QString lastHelpMessage;

     QString message;

     switch (currentId()) {
     case Page_Intro:
         message = tr("The decision you make here will affect which page you "
                      "get to see next.");
         break;
     ...
     default:
         message = tr("This help is likely not to be of any help.");
     }

     QMessageBox.information(this, tr("License Wizard Help"), message);

 }

See also customButtonClicked().

void pageAdded (int)

This is the default overload of this signal.

This signal is emitted whenever a page is added to the wizard. The page's id is passed as parameter.

This function was introduced in Qt 4.7.

See also addPage(), setPage(), and startId().

void pageRemoved (int)

This is the default overload of this signal.

This signal is emitted whenever a page is removed from the wizard. The page's id is passed as parameter.

This function was introduced in Qt 4.7.

See also removePage() and startId().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwizardpage.html0000644000076500000240000007120412536324517020675 0ustar philstaff00000000000000 QWizardPage Class Reference
  Home · All Classes · Modules

QWizardPage Class Reference
[QtGui module]

The QWizardPage class is the base class for wizard pages. More...

Inherits QWidget.

Methods

Qt Signals


Detailed Description

The QWizardPage class is the base class for wizard pages.

QWizard represents a wizard. Each page is a QWizardPage. When you create your own wizards, you can use QWizardPage directly, or you can subclass it for more control.

A page has the following attributes, which are rendered by QWizard: a title, a subTitle, and a set of pixmaps. See Elements of a Wizard Page for details. Once a page is added to the wizard (using QWizard.addPage() or QWizard.setPage()), wizard() returns a pointer to the associated QWizard object.

Page provides five virtual functions that can be reimplemented to provide custom behavior:

  • initializePage() is called to initialize the page's contents when the user clicks the wizard's Next button. If you want to derive the page's default from what the user entered on previous pages, this is the function to reimplement.
  • cleanupPage() is called to reset the page's contents when the user clicks the wizard's Back button.
  • validatePage() validates the page when the user clicks Next or Finish. It is often used to show an error message if the user has entered incomplete or invalid information.
  • nextId() returns the ID of the next page. It is useful when creating non-linear wizards, which allow different traversal paths based on the information provided by the user.
  • isComplete() is called to determine whether the Next and/or Finish button should be enabled or disabled. If you reimplement isComplete(), also make sure that completeChanged() is emitted whenever the complete state changes.

Normally, the Next button and the Finish button of a wizard are mutually exclusive. If isFinalPage() returns true, Finish is available; otherwise, Next is available. By default, isFinalPage() is true only when nextId() returns -1. If you want to show Next and Final simultaneously for a page (letting the user perform an "early finish"), call setFinalPage(true) on that page. For wizards that support early finishes, you might also want to set the HaveNextButtonOnLastPage and HaveFinishButtonOnEarlyPages options on the wizard.

In many wizards, the contents of a page may affect the default values of the fields of a later page. To make it easy to communicate between pages, QWizard supports a "field" mechanism that allows you to register a field (e.g., a QLineEdit) on a page and to access its value from any page. Fields are global to the entire wizard and make it easy for any single page to access information stored by another page, without having to put all the logic in QWizard or having the pages know explicitly about each other. Fields are registered using registerField() and can be accessed at any time using field() and setField().


Method Documentation

QWizardPage.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a wizard page with the given parent.

When the page is inserted into a wizard using QWizard.addPage() or QWizard.setPage(), the parent is automatically set to be the wizard.

See also wizard().

QString QWizardPage.buttonText (self, QWizard.WizardButton which)

Returns the text on button which on this page.

If a text has ben set using setButtonText(), this text is returned. Otherwise, if a text has been set using QWizard.setButtonText(), this text is returned.

By default, the text on buttons depends on the QWizard.wizardStyle. For example, on Mac OS X, the Next button is called Continue.

See also setButtonText(), QWizard.buttonText(), and QWizard.setButtonText().

QWizardPage.cleanupPage (self)

This virtual function is called by QWizard.cleanupPage() when the user leaves the page by clicking Back (unless the QWizard.IndependentPages option is set).

The default implementation resets the page's fields to their original values (the values they had before initializePage() was called).

See also QWizard.cleanupPage(), initializePage(), and QWizard.IndependentPages.

QVariant QWizardPage.field (self, QString name)

Returns the value of the field called name.

This function can be used to access fields on any page of the wizard. It is equivalent to calling wizard()->field(name).

Example:

 void OutputFilesPage.initializePage()
 {
     QString className = field("className").toString();
     headerLineEdit->setText(className.toLower() + ".h");
     implementationLineEdit->setText(className.toLower() + ".cpp");
     outputDirLineEdit->setText(QDir.convertSeparators(QDir.tempPath()));
 }

See also QWizard.field(), setField(), and registerField().

QWizardPage.initializePage (self)

This virtual function is called by QWizard.initializePage() to prepare the page just before it is shown either as a result of QWizard.restart() being called, or as a result of the user clicking Next. (However, if the QWizard.IndependentPages option is set, this function is only called the first time the page is shown.)

By reimplementing this function, you can ensure that the page's fields are properly initialized based on fields from previous pages. For example:

 void OutputFilesPage.initializePage()
 {
     QString className = field("className").toString();
     headerLineEdit->setText(className.toLower() + ".h");
     implementationLineEdit->setText(className.toLower() + ".cpp");
     outputDirLineEdit->setText(QDir.convertSeparators(QDir.tempPath()));
 }

The default implementation does nothing.

See also QWizard.initializePage(), cleanupPage(), and QWizard.IndependentPages.

bool QWizardPage.isCommitPage (self)

Returns true if this page is a commit page; otherwise returns false.

See also setCommitPage().

bool QWizardPage.isComplete (self)

This virtual function is called by QWizard to determine whether the Next or Finish button should be enabled or disabled.

The default implementation returns true if all mandatory fields are filled; otherwise, it returns false.

If you reimplement this function, make sure to emit completeChanged(), from the rest of your implementation, whenever the value of isComplete() changes. This ensures that QWizard updates the enabled or disabled state of its buttons. An example of the reimplementation is available here.

See also completeChanged() and isFinalPage().

bool QWizardPage.isFinalPage (self)

This function is called by QWizard to determine whether the Finish button should be shown for this page or not.

By default, it returns true if there is no next page (i.e., nextId() returns -1); otherwise, it returns false.

By explicitly calling setFinalPage(true), you can let the user perform an "early finish".

See also isComplete() and QWizard.HaveFinishButtonOnEarlyPages.

int QWizardPage.nextId (self)

This virtual function is called by QWizard.nextId() to find out which page to show when the user clicks the Next button.

The return value is the ID of the next page, or -1 if no page follows.

By default, this function returns the lowest ID greater than the ID of the current page, or -1 if there is no such ID.

By reimplementing this function, you can specify a dynamic page order. For example:

 int IntroPage.nextId() const
 {
     if (evaluateRadioButton->isChecked()) {
         return LicenseWizard.Page_Evaluate;
     } else {
         return LicenseWizard.Page_Register;
     }
 }

See also QWizard.nextId().

QPixmap QWizardPage.pixmap (self, QWizard.WizardPixmap which)

Returns the pixmap set for role which.

Pixmaps can also be set for the entire wizard using QWizard.setPixmap(), in which case they apply for all pages that don't specify a pixmap.

See also setPixmap(), QWizard.pixmap(), and Elements of a Wizard Page.

QWizardPage.registerField (self, QString name, QWidget widget, str property = None, signal changedSignal = 0)

Creates a field called name associated with the given property of the given widget. From then on, that property becomes accessible using field() and setField().

Fields are global to the entire wizard and make it easy for any single page to access information stored by another page, without having to put all the logic in QWizard or having the pages know explicitly about each other.

If name ends with an asterisk (*), the field is a mandatory field. When a page has mandatory fields, the Next and/or Finish buttons are enabled only when all mandatory fields are filled. This requires a changedSignal to be specified, to tell QWizard to recheck the value stored by the mandatory field.

QWizard knows the most common Qt widgets. For these (or their subclasses), you don't need to specify a property or a changedSignal. The table below lists these widgets:

Widget Property Change Notification Signal
QAbstractButton bool checked toggled()
QAbstractSlider int value valueChanged()
QComboBox int currentIndex currentIndexChanged()
QDateTimeEdit QDateTime dateTime dateTimeChanged()
QLineEdit QString text textChanged()
QListWidget int currentRow currentRowChanged()
QSpinBox int value valueChanged()

You can use QWizard.setDefaultProperty() to add entries to this table or to override existing entries.

To consider a field "filled", QWizard simply checks that their current value doesn't equal their original value (the value they had before initializePage() was called). For QLineEdit, it also checks that hasAcceptableInput() returns true, to honor any validator or mask.

QWizard's mandatory field mechanism is provided for convenience. It can be bypassed by reimplementing QWizardPage.isComplete().

See also field(), setField(), and QWizard.setDefaultProperty().

QWizardPage.registerField (self, QString name, QWidget widget, str property = None, SIGNAL() changedSignal = 0)

QWizardPage.setButtonText (self, QWizard.WizardButton which, QString text)

Sets the text on button which to be text on this page.

By default, the text on buttons depends on the QWizard.wizardStyle, but may be redefined for the wizard as a whole using QWizard.setButtonText().

See also buttonText(), QWizard.setButtonText(), and QWizard.buttonText().

QWizardPage.setCommitPage (self, bool commitPage)

Sets this page to be a commit page if commitPage is true; otherwise, sets it to be a normal page.

A commit page is a page that represents an action which cannot be undone by clicking Back or Cancel.

A Commit button replaces the Next button on a commit page. Clicking this button simply calls QWizard.next() just like clicking Next does.

A page entered directly from a commit page has its Back button disabled.

See also isCommitPage().

QWizardPage.setField (self, QString name, QVariant value)

Sets the value of the field called name to value.

This function can be used to set fields on any page of the wizard. It is equivalent to calling wizard()->setField(name, value).

See also QWizard.setField(), field(), and registerField().

QWizardPage.setFinalPage (self, bool finalPage)

Explicitly sets this page to be final if finalPage is true.

After calling setFinalPage(true), isFinalPage() returns true and the Finish button is visible (and enabled if isComplete() returns true).

After calling setFinalPage(false), isFinalPage() returns true if nextId() returns -1; otherwise, it returns false.

See also isFinalPage(), isComplete(), and QWizard.HaveFinishButtonOnEarlyPages.

QWizardPage.setPixmap (self, QWizard.WizardPixmap which, QPixmap pixmap)

Sets the pixmap for role which to pixmap.

The pixmaps are used by QWizard when displaying a page. Which pixmaps are actually used depend on the wizard style.

Pixmaps can also be set for the entire wizard using QWizard.setPixmap(), in which case they apply for all pages that don't specify a pixmap.

See also pixmap(), QWizard.setPixmap(), and Elements of a Wizard Page.

QWizardPage.setSubTitle (self, QString subTitle)

QWizardPage.setTitle (self, QString title)

QString QWizardPage.subTitle (self)

QString QWizardPage.title (self)

bool QWizardPage.validatePage (self)

This virtual function is called by QWizard.validateCurrentPage() when the user clicks Next or Finish to perform some last-minute validation. If it returns true, the next page is shown (or the wizard finishes); otherwise, the current page stays up.

The default implementation returns true.

When possible, it is usually better style to disable the Next or Finish button (by specifying mandatory fields or reimplementing isComplete()) than to reimplement validatePage().

See also QWizard.validateCurrentPage() and isComplete().

QWizard QWizardPage.wizard (self)

Returns the wizard associated with this page, or 0 if this page hasn't been inserted into a QWizard yet.

See also QWizard.addPage() and QWizard.setPage().


Qt Signal Documentation

void completeChanged ()

This is the default overload of this signal.

This signal is emitted whenever the complete state of the page (i.e., the value of isComplete()) changes.

If you reimplement isComplete(), make sure to emit completeChanged() whenever the value of isComplete() changes, to ensure that QWizard updates the enabled or disabled state of its buttons.

See also isComplete().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qworkspace.html0000644000076500000240000004242012536324517020534 0ustar philstaff00000000000000 QWorkspace Class Reference
  Home · All Classes · Modules

QWorkspace Class Reference
[QtGui module]

The QWorkspace widget provides a workspace window that can be used in an MDI application. More...

Inherits QWidget.

Types

Methods

Qt Signals


Detailed Description

The QWorkspace widget provides a workspace window that can be used in an MDI application.

This class is deprecated. Use QMdiArea instead.

Multiple Document Interface (MDI) applications are typically composed of a main window containing a menu bar, a toolbar, and a central QWorkspace widget. The workspace itself is used to display a number of child windows, each of which is a widget.

The workspace itself is an ordinary Qt widget. It has a standard constructor that takes a parent widget. Workspaces can be placed in any layout, but are typically given as the central widget in a QMainWindow:

 MainWindow.MainWindow()
 {
     workspace = new QWorkspace;
     setCentralWidget(workspace);
     ...
 }

Child windows (MDI windows) are standard Qt widgets that are inserted into the workspace with addWindow(). As with top-level widgets, you can call functions such as show(), hide(), showMaximized(), and setWindowTitle() on a child window to change its appearance within the workspace. You can also provide widget flags to determine the layout of the decoration or the behavior of the widget itself.

To change or retrieve the geometry of a child window, you must operate on its parentWidget(). The parentWidget() provides access to the decorated frame that contains the child window widget. When a child window is maximised, its decorated frame is hidden. If the top-level widget contains a menu bar, it will display the maximised window's operations menu to the left of the menu entries, and the window's controls to the right.

A child window becomes active when it gets the keyboard focus, or when setFocus() is called. The user can activate a window by moving focus in the usual ways, for example by clicking a window or by pressing Tab. The workspace emits a signal windowActivated() when the active window changes, and the function activeWindow() returns a pointer to the active child window, or 0 if no window is active.

The convenience function windowList() returns a list of all child windows. This information could be used in a popup menu containing a list of windows, for example. This feature is also available as part of the Window Menu Solution.

QWorkspace provides two built-in layout strategies for child windows: cascade() and tile(). Both are slots so you can easily connect menu entries to them.

If you want your users to be able to work with child windows larger than the visible workspace area, set the scrollBarsEnabled property to true.


Type Documentation

QWorkspace.WindowOrder

Specifies the order in which child windows are returned from windowList().

Constant Value Description
QWorkspace.CreationOrder 0 The windows are returned in the order of their creation
QWorkspace.StackingOrder 1 The windows are returned in the order of their stacking

Method Documentation

QWorkspace.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a workspace with the given parent.

QWorkspace.activateNextWindow (self)

This method is also a Qt slot with the C++ signature void activateNextWindow().

Gives the input focus to the next window in the list of child windows.

See also activatePreviousWindow().

QWorkspace.activatePreviousWindow (self)

This method is also a Qt slot with the C++ signature void activatePreviousWindow().

Gives the input focus to the previous window in the list of child windows.

See also activateNextWindow().

QWidget QWorkspace.activeWindow (self)

Returns a pointer to the widget corresponding to the active child window, or 0 if no window is active.

See also setActiveWindow().

QWidget QWorkspace.addWindow (self, QWidget w, Qt.WindowFlags flags = 0)

The w argument has it's ownership transferred to Qt.

Adds widget w as new sub window to the workspace. If flags are non-zero, they will override the flags set on the widget.

Returns the widget used for the window frame.

To remove the widget w from the workspace, simply call setParent() with the new parent (or 0 to make it a stand-alone window).

QWorkspace.arrangeIcons (self)

This method is also a Qt slot with the C++ signature void arrangeIcons().

Arranges all iconified windows at the bottom of the workspace.

See also cascade() and tile().

QBrush QWorkspace.background (self)

QWorkspace.cascade (self)

This method is also a Qt slot with the C++ signature void cascade().

Arranges all the child windows in a cascade pattern.

See also tile() and arrangeIcons().

QWorkspace.changeEvent (self, QEvent)

Reimplemented from QWidget.changeEvent().

QWorkspace.childEvent (self, QChildEvent)

Reimplemented from QObject.childEvent().

QWorkspace.closeActiveWindow (self)

This method is also a Qt slot with the C++ signature void closeActiveWindow().

Closes the child window that is currently active.

See also closeAllWindows().

QWorkspace.closeAllWindows (self)

This method is also a Qt slot with the C++ signature void closeAllWindows().

Closes all child windows.

If any child window fails to accept the close event, the remaining windows will remain open.

See also closeActiveWindow().

bool QWorkspace.event (self, QEvent e)

Reimplemented from QObject.event().

bool QWorkspace.eventFilter (self, QObject, QEvent)

Reimplemented from QObject.eventFilter().

QWorkspace.hideEvent (self, QHideEvent e)

Reimplemented from QWidget.hideEvent().

QWorkspace.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

QWorkspace.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().

bool QWorkspace.scrollBarsEnabled (self)

QWorkspace.setActiveWindow (self, QWidget w)

This method is also a Qt slot with the C++ signature void setActiveWindow(QWidget*).

Makes the child window that contains w the active child window.

See also activeWindow().

QWorkspace.setBackground (self, QBrush background)

QWorkspace.setScrollBarsEnabled (self, bool enable)

QWorkspace.showEvent (self, QShowEvent e)

Reimplemented from QWidget.showEvent().

QSize QWorkspace.sizeHint (self)

Reimplemented from QWidget.sizeHint().

QWorkspace.tile (self)

This method is also a Qt slot with the C++ signature void tile().

Arranges all child windows in a tile pattern.

See also cascade() and arrangeIcons().

QWorkspace.wheelEvent (self, QWheelEvent e)

Reimplemented from QWidget.wheelEvent().

list-of-QWidget QWorkspace.windowList (self, WindowOrder order = QWorkspace.CreationOrder)

Returns a list of all visible or minimized child windows. If order is CreationOrder (the default), the windows are listed in the order in which they were inserted into the workspace. If order is StackingOrder, the windows are listed in their stacking order, with the topmost window as the last item in the list.


Qt Signal Documentation

void windowActivated (QWidget*)

This is the default overload of this signal.

This signal is emitted when the child window w becomes active. Note that w can be 0, and that more than one signal may be emitted for a single activation event.

See also activeWindow() and windowList().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qwritelocker.html0000644000076500000240000001321312536324473021067 0ustar philstaff00000000000000 QWriteLocker Class Reference
  Home · All Classes · Modules

QWriteLocker Class Reference
[QtCore module]

The QWriteLocker class is a convenience class that simplifies locking and unlocking read-write locks for write access. More...

Methods

Special Methods

  • object __enter__ (self)
  • __exit__ (self, object type, object value, object traceback)

Detailed Description

The QWriteLocker class is a convenience class that simplifies locking and unlocking read-write locks for write access.

The purpose of QWriteLocker (and QReadLocker is to simplify QReadWriteLock locking and unlocking. Locking and unlocking statements or in exception handling code is error-prone and difficult to debug. QWriteLocker can be used in such situations to ensure that the state of the lock is always well-defined.

Here's an example that uses QWriteLocker to lock and unlock a read-write lock for writing:

 QReadWriteLock lock;

 void writeData(const QByteArray &data)
 {
     QWriteLocker locker(&lock);
     ...
 }

It is equivalent to the following code:

 QReadWriteLock lock;

 void writeData(const QByteArray &data)
 {
     lock.lockForWrite();
     ...
     lock.unlock();
 }

The QMutexLocker documentation shows examples where the use of a locker object greatly simplifies programming.


Method Documentation

QWriteLocker.__init__ (self, QReadWriteLock areadWriteLock)

Constructs a QWriteLocker and locks lock for writing. The lock will be unlocked when the QWriteLocker is destroyed. If lock is zero, QWriteLocker does nothing.

See also QReadWriteLock.lockForWrite().

QReadWriteLock QWriteLocker.readWriteLock (self)

Returns a pointer to the read-write lock that was passed to the constructor.

QWriteLocker.relock (self)

Relocks an unlocked lock.

See also unlock().

QWriteLocker.unlock (self)

Unlocks the lock associated with this locker.

See also QReadWriteLock.unlock().

object QWriteLocker.__enter__ (self)

QWriteLocker.__exit__ (self, object type, object value, object traceback)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qx11embedcontainer.html0000644000076500000240000002747012536324517022057 0ustar philstaff00000000000000 QX11EmbedContainer Class Reference
  Home · All Classes · Modules

QX11EmbedContainer Class Reference
[
QtGui module]

The QX11EmbedContainer class provides an XEmbed container widget. More...

Inherits QWidget.

Types

  • enum Error { Unknown, Internal, InvalidWindowID }

Methods

Qt Signals


Detailed Description

The QX11EmbedContainer class provides an XEmbed container widget.

XEmbed is an X11 protocol that supports the embedding of a widget from one application into another application.

An XEmbed container is the graphical location that embeds an external client widget. A client widget is a window that is embedded into a container.

When a widget has been embedded and the container receives tab focus, focus is passed on to the widget. When the widget reaches the end of its focus chain, focus is passed back to the container. Window activation, accelerator support, modality and drag and drop (XDND) are also handled.

QX11EmbedContainer is commonly used for writing panels or toolbars that hold applets, or for swallowing X11 applications. When writing a panel application, one container widget is created on the toolbar, and it can then either swallow another widget using embed(), or allow an XEmbed widget to be embedded into itself. The container's X11 window ID, which is retrieved with winId(), must then be known to the client widget. After embedding, the client's window ID can be retrieved with clientWinId().

In the following example, a container widget is created as the main widget. It then invokes an application called "playmovie", passing its window ID as a command line argument. The "playmovie" program is an XEmbed client widget. The widget embeds itself into the container using the container's window ID.

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     if (app.arguments().count() != 2) {
         qFatal("Error - expected executable path as argument");
         return 1;
     }

     QX11EmbedContainer container;
     container.show();

     QProcess process(&container);
     QString executable(app.arguments()[1]);
     QStringList arguments;
     arguments << QString.number(container.winId());
     process.start(executable, arguments);

     int status = app.exec();
     process.close();
     return status;
 }

When the client widget is embedded, the container emits the signal clientIsEmbedded(). The signal clientClosed() is emitted when a widget is closed.

It is possible for QX11EmbedContainer to embed XEmbed widgets from toolkits other than Qt, such as GTK+. Arbitrary (non-XEmbed) X11 widgets can also be embedded, but the XEmbed-specific features such as window activation and focus handling are then lost.

The GTK+ equivalent of QX11EmbedContainer is GtkSocket. The corresponding KDE 3 widget is called QXEmbed.


Type Documentation

QX11EmbedContainer.Error

Constant Value Description
QX11EmbedContainer.Unknown 0 An unrecognized error occurred.
QX11EmbedContainer.InvalidWindowID 2 The X11 window ID of the container was invalid. This error is usually triggered by passing an invalid window ID to embed().

Method Documentation

QX11EmbedContainer.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Creates a QX11EmbedContainer object with the given parent.

int QX11EmbedContainer.clientWinId (self)

If the container has an embedded widget, this function returns the X11 window ID of the client; otherwise it returns 0.

QX11EmbedContainer.discardClient (self)

Detaches the client from the embedder. The client will appear as a standalone window on the desktop.

QX11EmbedContainer.embedClient (self, int id)

Instructs the container to embed the X11 window with window ID id. The client widget will then move on top of the container window and be resized to fit into the container.

The id should be the ID of a window controlled by an XEmbed enabled application, but this is not mandatory. If id does not belong to an XEmbed client widget, then focus handling, activation, accelerators and other features will not work properly.

Error QX11EmbedContainer.error (self)

Returns the last error that occurred.

bool QX11EmbedContainer.event (self, QEvent)

Reimplemented from QObject.event().

bool QX11EmbedContainer.eventFilter (self, QObject, QEvent)

QX11EmbedContainer.hideEvent (self, QHideEvent)

QSize QX11EmbedContainer.minimumSizeHint (self)

QX11EmbedContainer.paintEvent (self, QPaintEvent e)

Reimplemented from QWidget.paintEvent().

QX11EmbedContainer.resizeEvent (self, QResizeEvent)

QX11EmbedContainer.showEvent (self, QShowEvent)


Qt Signal Documentation

void clientClosed ()

This is the default overload of this signal.

This signal is emitted by the container when the client widget closes.

void clientIsEmbedded ()

This is the default overload of this signal.

This signal is emitted by the container when a client widget has been embedded.

void error (QX11EmbedContainer::Error)

This is the default overload of this signal.

This signal is emitted if an error occurred when embedding or communicating with a client. The specified error describes the problem that occurred.

See also QX11EmbedContainer.Error.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qx11embedwidget.html0000644000076500000240000002423512536324517021354 0ustar philstaff00000000000000 QX11EmbedWidget Class Reference
  Home · All Classes · Modules

QX11EmbedWidget Class Reference
[QtGui module]

The QX11EmbedWidget class provides an XEmbed client widget. More...

Inherits QWidget.

Types

  • enum Error { Unknown, Internal, InvalidWindowID }

Methods

Qt Signals


Detailed Description

The QX11EmbedWidget class provides an XEmbed client widget.

XEmbed is an X11 protocol that supports the embedding of a widget from one application into another application.

An XEmbed client widget is a window that is embedded into a container. A container is the graphical location that embeds (or swallows) an external application.

QX11EmbedWidget is a widget used for writing XEmbed applets or plugins. When it has been embedded and the container receives tab focus, focus is passed on to the widget. When the widget reaches the end of its focus chain, focus is passed back to the container. Window activation, accelerator support, modality and drag and drop (XDND) are also handled.

The widget and container can both initiate the embedding. If the widget is the initiator, the X11 window ID of the container that it wants to embed itself into must be passed to embedInto().

If the container initiates the embedding, the window ID of the embedded widget must be known. The container calls embed(), passing the window ID.

This example shows an application that embeds a QX11EmbedWidget subclass into the window whose ID is passed as a command-line argument:

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     if (app.arguments().count() != 2) {
         qFatal("Error - expected window id as argument");
         return 1;
     }

     QString windowId(app.arguments()[1]);
     EmbedWidget window;
     window.embedInto(windowId.toULong());
     window.show();

     return app.exec();
 }

The problem of obtaining the window IDs is often solved by the container invoking the application that provides the widget as a separate process (as a panel invokes a docked applet), passing its window ID to the new process as a command-line argument. The new process can then call embedInto() with the container's window ID, as shown in the example code above. Similarly, the new process can report its window ID to the container through IPC, in which case the container can embed the widget.

When the widget has been embedded, it emits the signal embedded(). If it is closed by the container, the widget emits containerClosed(). If an error occurs when embedding, error() is emitted.

There are XEmbed widgets available for KDE and GTK+. The GTK+ equivalent of QX11EmbedWidget is GtkPlug. The corresponding KDE 3 widget is called QXEmbed.


Type Documentation

QX11EmbedWidget.Error

Constant Value Description
QX11EmbedWidget.Unknown 0 An unrecognized error occurred.
QX11EmbedWidget.InvalidWindowID 2 The X11 window ID of the container was invalid. This error is usually triggered by passing an invalid window ID to embedInto().

Method Documentation

QX11EmbedWidget.__init__ (self, QWidget parent = None)

The parent argument, if not None, causes self to be owned by Qt instead of PyQt.

Constructs a QX11EmbedWidget object with the given parent.

int QX11EmbedWidget.containerWinId (self)

If the widget is embedded, returns the window ID of the container; otherwize returns 0.

QX11EmbedWidget.embedInto (self, int id)

When this function is called, the widget embeds itself into the container whose window ID is id.

If id is not the window ID of a container this function will behave unpredictably.

Error QX11EmbedWidget.error (self)

Returns the type of error that occurred last. This is the same error code that is emitted by the error() signal.

See also Error.

bool QX11EmbedWidget.event (self, QEvent)

Reimplemented from QObject.event().

bool QX11EmbedWidget.eventFilter (self, QObject, QEvent)

QX11EmbedWidget.resizeEvent (self, QResizeEvent)

Reimplemented from QWidget.resizeEvent().


Qt Signal Documentation

void containerClosed ()

This is the default overload of this signal.

This signal is emitted by the client widget when the container closes the widget. This can happen if the container itself closes, or if the widget is rejected.

The container can reject a widget for any reason, but the most common cause of a rejection is when an attempt is made to embed a widget into a container that already has an embedded widget.

void embedded ()

This is the default overload of this signal.

This signal is emitted by the widget that has been embedded by an XEmbed container.

void error (QX11EmbedWidget::Error)

This is the default overload of this signal.

This signal is emitted if an error occurred as a result of embedding into or communicating with a container. The specified error describes the problem that occurred.

See also QX11EmbedWidget.Error.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qx11info.html0000644000076500000240000003701212536324517020024 0ustar philstaff00000000000000 QX11Info Class Reference
  Home · All Classes · Modules

QX11Info Class Reference
[QtGui module]

The QX11Info class provides information about the X display configuration. More...

Methods

Static Methods


Detailed Description

The QX11Info class provides information about the X display configuration.

The class provides two APIs: a set of non-static functions that provide information about a specific widget or pixmap, and a set of static functions that provide the default information for the application.

Warning: This class is only available on X11. For querying per-screen information in a portable way, use QDesktopWidget.


Method Documentation

QX11Info.__init__ (self)

Constructs an empty QX11Info object.

QX11Info.__init__ (self, QX11Info other)

Constructs a copy of other.

int QX11Info.appCells (int screen = -1)

Returns the number of cells used by the application on the given screen.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also cells().

str QX11Info.appClass ()

Returns the X11 application class.

See also display().

int QX11Info.appColormap (int screen = -1)

Returns a handle for the application's color map on the given screen.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also colormap() and defaultColormap().

bool QX11Info.appDefaultColormap (int screen = -1)

Returns true if the application has a default color map on the given screen; otherwise returns false.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

bool QX11Info.appDefaultVisual (int screen = -1)

Returns true if the application has a default visual on the given screen; otherwise returns false.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

int QX11Info.appDepth (int screen = -1)

Returns the color depth (bits per pixel) used by the application on the given screen.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also depth().

int QX11Info.appDpiX (int screen = -1)

Returns the horizontal resolution of the given screen in terms of the number of dots per inch.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also setAppDpiX() and appDpiY().

int QX11Info.appDpiY (int screen = -1)

Returns the vertical resolution of the given screen in terms of the number of dots per inch.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also setAppDpiY() and appDpiX().

int QX11Info.appRootWindow (int screen = -1)

Returns a handle for the applications root window on the given screen.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also QApplication.desktop().

int QX11Info.appScreen ()

Returns the number of the screen where the application is being displayed.

See also display() and screen().

int QX11Info.appTime ()

Returns the X11 time.

See also setAppTime() and appUserTime().

int QX11Info.appUserTime ()

Returns the X11 user time.

See also setAppUserTime() and appTime().

sip.voidptr QX11Info.appVisual (int screen = -1)

Returns the current visual used by the application on the given screen.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also visual() and defaultVisual().

int QX11Info.cells (self)

Returns the number of cells.

See also appCells().

int QX11Info.colormap (self)

Returns a handle for the color map.

See also defaultColormap().

bool QX11Info.defaultColormap (self)

Returns true if there is a default color map; otherwise returns false.

See also colormap().

bool QX11Info.defaultVisual (self)

Returns true if there is a default visual; otherwise returns false.

See also visual() and appVisual().

int QX11Info.depth (self)

Returns the color depth (bits per pixel) of the X display.

See also appDepth().

Display QX11Info.display ()

Returns the default display for the application.

See also appScreen().

bool QX11Info.isCompositingManagerRunning ()

Returns true if there is a compositing manager running.

This function was introduced in Qt 4.4.

int QX11Info.screen (self)

Returns the number of the screen currently in use.

The return value is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also appScreen().

QX11Info.setAppDpiX (int screen, int dpi)

Sets the horizontal resolution of the given screen to the number of dots per inch specified by xdpi.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also appDpiX() and setAppDpiY().

QX11Info.setAppDpiY (int screen, int dpi)

Sets the vertical resolution of the given screen to the number of dots per inch specified by ydpi.

The screen argument is an X screen number. Be aware that if the user's system uses Xinerama (as opposed to traditional X11 multiscreen), there is only one X screen. Use QDesktopWidget to query for information about Xinerama screens.

See also appDpiY() and setAppDpiX().

QX11Info.setAppTime (int time)

Sets the X11 time to the value specified by time.

See also appTime() and setAppUserTime().

QX11Info.setAppUserTime (int time)

Sets the X11 user time as specified by time.

See also appUserTime() and setAppTime().

sip.voidptr QX11Info.visual (self)

Returns the current visual.

See also appVisual() and defaultVisual().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlattributes.html0000644000076500000240000002413012536324523021440 0ustar philstaff00000000000000 QXmlAttributes Class Reference
  Home · All Classes · Modules

QXmlAttributes Class Reference
[QtXml module]

The QXmlAttributes class provides XML attributes. More...

Methods

  • __init__ (self)
  • __init__ (self, QXmlAttributes)
  • append (self, QString qName, QString uri, QString localPart, QString value)
  • clear (self)
  • int count (self)
  • int index (self, QString qName)
  • int index (self, QString uri, QString localPart)
  • int length (self)
  • QString localName (self, int index)
  • QString qName (self, int index)
  • QString type (self, int index)
  • QString type (self, QString qName)
  • QString type (self, QString uri, QString localName)
  • QString uri (self, int index)
  • QString value (self, int index)
  • QString value (self, QString qName)
  • QString value (self, QString uri, QString localName)

Special Methods


Detailed Description

The QXmlAttributes class provides XML attributes.

If attributes are reported by QXmlContentHandler.startElement() this class is used to pass the attribute values.

Use index() to locate the position of an attribute in the list, count() to retrieve the number of attributes, and clear() to remove the attributes. New attributes can be added with append(). Use type() to get an attribute's type and value() to get its value. The attribute's name is available from localName() or qName(), and its namespace URI from uri().


Method Documentation

QXmlAttributes.__init__ (self)

Constructs an empty attribute list.

QXmlAttributes.__init__ (self, QXmlAttributes)

QXmlAttributes.append (self, QString qName, QString uri, QString localPart, QString value)

Appends a new attribute entry to the list of attributes. The qualified name of the attribute is qName, the namespace URI is uri and the local name is localPart. The value of the attribute is value.

See also qName(), uri(), localName(), and value().

QXmlAttributes.clear (self)

Clears the list of attributes.

See also append().

int QXmlAttributes.count (self)

Returns the number of attributes in the list. This function is equivalent to length().

int QXmlAttributes.index (self, QString qName)

Looks up the index of an attribute by the qualified name qName.

Returns the index of the attribute or -1 if it wasn't found.

See also Namespace Support via Features.

int QXmlAttributes.index (self, QString uri, QString localPart)

This is an overloaded function.

int QXmlAttributes.length (self)

Returns the number of attributes in the list.

See also count().

QString QXmlAttributes.localName (self, int index)

Looks up an attribute's local name for the attribute at position index. If no namespace processing is done, the local name is an empty string.

See also Namespace Support via Features.

QString QXmlAttributes.qName (self, int index)

Looks up an attribute's XML 1.0 qualified name for the attribute at position index.

See also Namespace Support via Features.

QString QXmlAttributes.type (self, int index)

Looks up an attribute's type for the attribute at position index.

Currently only "CDATA" is returned.

QString QXmlAttributes.type (self, QString qName)

This is an overloaded function.

Looks up an attribute's type for the qualified name qName.

Currently only "CDATA" is returned.

QString QXmlAttributes.type (self, QString uri, QString localName)

This is an overloaded function.

Looks up an attribute's type by namespace name.

uri specifies the namespace URI and localName specifies the local name. If the name has no namespace URI, use an empty string for uri.

Currently only "CDATA" is returned.

QString QXmlAttributes.uri (self, int index)

Looks up an attribute's namespace URI for the attribute at position index. If no namespace processing is done or if the attribute has no namespace, the namespace URI is an empty string.

See also Namespace Support via Features.

QString QXmlAttributes.value (self, int index)

Returns an attribute's value for the attribute at position index. The index must be a valid position (i.e., 0 <= index < count()).

QString QXmlAttributes.value (self, QString qName)

This is an overloaded function.

Returns an attribute's value for the qualified name qName, or an empty string if no attribute exists for the name given.

See also Namespace Support via Features.

QString QXmlAttributes.value (self, QString uri, QString localName)

This is an overloaded function.

Returns an attribute's value for the qualified name qName, or an empty string if no attribute exists for the name given.

See also Namespace Support via Features.

QXmlAttributes.__len__ (self)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlcontenthandler.html0000644000076500000240000004125312536324524022270 0ustar philstaff00000000000000 QXmlContentHandler Class Reference
  Home · All Classes · Modules

QXmlContentHandler Class Reference
[
QtXml module]

The QXmlContentHandler class provides an interface to report the logical content of XML data. More...

Inherited by QXmlDefaultHandler.

Methods


Detailed Description

The QXmlContentHandler class provides an interface to report the logical content of XML data.

If the application needs to be informed of basic parsing events, it can implement this interface and activate it using QXmlReader.setContentHandler(). The reader can then report basic document-related events like the start and end of elements and character data through this interface.

The order of events in this interface is very important, and mirrors the order of information in the document itself. For example, all of an element's content (character data, processing instructions, and sub-elements) appears, in order, between the startElement() event and the corresponding endElement() event.

The class QXmlDefaultHandler provides a default implementation for this interface; subclassing from the QXmlDefaultHandler class is very convenient if you only want to be informed of some parsing events.

The startDocument() function is called at the start of the document, and endDocument() is called at the end. Before parsing begins setDocumentLocator() is called. For each element startElement() is called, with endElement() being called at the end of each element. The characters() function is called with chunks of character data; ignorableWhitespace() is called with chunks of whitespace and processingInstruction() is called with processing instructions. If an entity is skipped skippedEntity() is called. At the beginning of prefix-URI scopes startPrefixMapping() is called.


Method Documentation

QXmlContentHandler.__init__ (self)

QXmlContentHandler.__init__ (self, QXmlContentHandler)

bool QXmlContentHandler.characters (self, QString ch)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function when it has parsed a chunk of character data (either normal character data or character data inside a CDATA section; if you need to distinguish between those two types you must use QXmlLexicalHandler.startCDATA() and QXmlLexicalHandler.endCDATA()). The character data is reported in ch.

Some readers report whitespace in element content using the ignorableWhitespace() function rather than using this one.

A reader may report the character data of an element in more than one chunk; e.g. a reader might want to report "a<b" in three characters() events ("a ", "<" and " b").

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

bool QXmlContentHandler.endDocument (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function after it has finished parsing. It is called just once, and is the last handler function called. It is called after the reader has read all input or has abandoned parsing because of a fatal error.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also startDocument().

bool QXmlContentHandler.endElement (self, QString namespaceURI, QString localName, QString qName)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function when it has parsed an end element tag with the qualified name qName, the local name localName and the namespace URI namespaceURI.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also startElement() and Namespace Support via Features.

bool QXmlContentHandler.endPrefixMapping (self, QString prefix)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to signal the end of a prefix mapping for the prefix prefix.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also startPrefixMapping() and Namespace Support via Features.

QString QXmlContentHandler.errorString (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to get an error string, e.g. if any of the handler functions returns false.

bool QXmlContentHandler.ignorableWhitespace (self, QString ch)

This method is abstract and should be reimplemented in any sub-class.

Some readers may use this function to report each chunk of whitespace in element content. The whitespace is reported in ch.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

bool QXmlContentHandler.processingInstruction (self, QString target, QString data)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function when it has parsed a processing instruction.

target is the target name of the processing instruction and data is the data in the processing instruction.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

QXmlContentHandler.setDocumentLocator (self, QXmlLocator locator)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function before it starts parsing the document. The argument locator is a pointer to a QXmlLocator which allows the application to get the parsing position within the document.

Do not destroy the locator; it is destroyed when the reader is destroyed. (Do not use the locator after the reader is destroyed).

bool QXmlContentHandler.skippedEntity (self, QString name)

This method is abstract and should be reimplemented in any sub-class.

Some readers may skip entities if they have not seen the declarations (e.g. because they are in an external DTD). If they do so they report that they skipped the entity called name by calling this function.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

bool QXmlContentHandler.startDocument (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function when it starts parsing the document. The reader calls this function just once, after the call to setDocumentLocator(), and before any other functions in this class or in the QXmlDTDHandler class are called.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also endDocument().

bool QXmlContentHandler.startElement (self, QString namespaceURI, QString localName, QString qName, QXmlAttributes atts)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function when it has parsed a start element tag.

There is a corresponding endElement() call when the corresponding end element tag is read. The startElement() and endElement() calls are always nested correctly. Empty element tags (e.g. <x/>) cause a startElement() call to be immediately followed by an endElement() call.

The attribute list provided only contains attributes with explicit values. The attribute list contains attributes used for namespace declaration (i.e. attributes starting with xmlns) only if the namespace-prefix property of the reader is true.

The argument namespaceURI is the namespace URI, or an empty string if the element has no namespace URI or if no namespace processing is done. localName is the local name (without prefix), or an empty string if no namespace processing is done, qName is the qualified name (with prefix) and atts are the attributes attached to the element. If there are no attributes, atts is an empty attributes object.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also endElement() and Namespace Support via Features.

bool QXmlContentHandler.startPrefixMapping (self, QString prefix, QString uri)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to signal the begin of a prefix-URI namespace mapping scope. This information is not necessary for normal namespace processing since the reader automatically replaces prefixes for element and attribute names.

Note that startPrefixMapping() and endPrefixMapping() calls are not guaranteed to be properly nested relative to each other: all startPrefixMapping() events occur before the corresponding startElement() event, and all endPrefixMapping() events occur after the corresponding endElement() event, but their order is not otherwise guaranteed.

The argument prefix is the namespace prefix being declared and the argument uri is the namespace URI the prefix is mapped to.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also endPrefixMapping() and Namespace Support via Features.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmldeclhandler.html0000644000076500000240000001475212536324524021531 0ustar philstaff00000000000000 QXmlDeclHandler Class Reference
  Home · All Classes · Modules

QXmlDeclHandler Class Reference
[QtXml module]

The QXmlDeclHandler class provides an interface to report declaration content of XML data. More...

Inherited by QXmlDefaultHandler.

Methods


Detailed Description

The QXmlDeclHandler class provides an interface to report declaration content of XML data.

You can set the declaration handler with QXmlReader.setDeclHandler().

This interface is based on the SAX2 extension DeclHandler.

The interface provides attributeDecl(), internalEntityDecl() and externalEntityDecl() functions.


Method Documentation

QXmlDeclHandler.__init__ (self)

QXmlDeclHandler.__init__ (self, QXmlDeclHandler)

bool QXmlDeclHandler.attributeDecl (self, QString eName, QString aName, QString type, QString valueDefault, QString value)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report an attribute type declaration. Only the effective (first) declaration for an attribute is reported.

The reader passes the name of the associated element in eName and the name of the attribute in aName. It passes a string that represents the attribute type in type and a string that represents the attribute default in valueDefault. This string is one of "#IMPLIED", "#REQUIRED", "#FIXED" or an empty string (if none of the others applies). The reader passes the attribute's default value in value. If no default value is specified in the XML file, value is an empty string.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

QString QXmlDeclHandler.errorString (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to get an error string if any of the handler functions returns false.

bool QXmlDeclHandler.externalEntityDecl (self, QString name, QString publicId, QString systemId)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report a parsed external entity declaration. Only the effective (first) declaration for each entity is reported.

The reader passes the name of the entity in name, the public identifier in publicId and the system identifier in systemId. If there is no public identifier specified, it passes an empty string in publicId.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

bool QXmlDeclHandler.internalEntityDecl (self, QString name, QString value)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report an internal entity declaration. Only the effective (first) declaration is reported.

The reader passes the name of the entity in name and the value of the entity in value.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmldefaulthandler.html0000644000076500000240000004624512536324524022250 0ustar philstaff00000000000000 QXmlDefaultHandler Class Reference
  Home · All Classes · Modules

QXmlDefaultHandler Class Reference
[QtXml module]

The QXmlDefaultHandler class provides a default implementation of all the XML handler classes. More...

Inherits QXmlContentHandler, QXmlErrorHandler, QXmlDTDHandler, QXmlEntityResolver, QXmlLexicalHandler and QXmlDeclHandler.

Methods


Detailed Description

The QXmlDefaultHandler class provides a default implementation of all the XML handler classes.

This class gathers together the features of the specialized handler classes, making it a convenient starting point when implementing custom handlers for subclasses of QXmlReader, particularly QXmlSimpleReader. The virtual functions from each of the base classes are reimplemented in this class, providing sensible default behavior for many common cases. By subclassing this class, and overriding these functions, you can concentrate on implementing the parts of the handler relevant to your application.

The XML reader must be told which handler to use for different kinds of events during parsing. This means that, although QXmlDefaultHandler provides default implementations of functions inherited from all its base classes, we can still use specialized handlers for particular kinds of events.

For example, QXmlDefaultHandler subclasses both QXmlContentHandler and QXmlErrorHandler, so by subclassing it we can use the same handler for both of the following reader functions:

     xmlReader.setContentHandler(handler);
     xmlReader.setErrorHandler(handler);

Since the reader will inform the handler of parsing errors, it is necessary to reimplement QXmlErrorHandler.fatalError() if, for example, we want to stop parsing when such an error occurs:

 bool Handler.fatalError (const QXmlParseException & exception)
 {
     qWarning() << "Fatal error on line" << exception.lineNumber()
                << ", column" << exception.columnNumber() << ":"
                << exception.message();

     return false;
 }

The above function returns false, which tells the reader to stop parsing. To continue to use the same reader, it is necessary to create a new handler instance, and set up the reader to use it in the manner described above.

It is useful to examine some of the functions inherited by QXmlDefaultHandler, and consider why they might be reimplemented in a custom handler. Custom handlers will typically reimplement QXmlContentHandler.startDocument() to prepare the handler for new content. Document elements and the text within them can be processed by reimplementing QXmlContentHandler.startElement(), QXmlContentHandler.endElement(), and QXmlContentHandler.characters(). You may want to reimplement QXmlContentHandler.endDocument() to perform some finalization or validation on the content once the document has been read completely.


Method Documentation

QXmlDefaultHandler.__init__ (self)

Constructs a handler for use with subclasses of QXmlReader.

bool QXmlDefaultHandler.attributeDecl (self, QString eName, QString aName, QString type, QString valueDefault, QString value)

Reimplemented from QXmlDeclHandler.attributeDecl().

This reimplementation does nothing.

bool QXmlDefaultHandler.characters (self, QString ch)

Reimplemented from QXmlContentHandler.characters().

This reimplementation does nothing.

bool QXmlDefaultHandler.comment (self, QString ch)

Reimplemented from QXmlLexicalHandler.comment().

This reimplementation does nothing.

bool QXmlDefaultHandler.endCDATA (self)

Reimplemented from QXmlLexicalHandler.endCDATA().

This reimplementation does nothing.

bool QXmlDefaultHandler.endDocument (self)

Reimplemented from QXmlContentHandler.endDocument().

This reimplementation does nothing.

bool QXmlDefaultHandler.endDTD (self)

Reimplemented from QXmlLexicalHandler.endDTD().

This reimplementation does nothing.

bool QXmlDefaultHandler.endElement (self, QString namespaceURI, QString localName, QString qName)

Reimplemented from QXmlContentHandler.endElement().

This reimplementation does nothing.

bool QXmlDefaultHandler.endEntity (self, QString name)

Reimplemented from QXmlLexicalHandler.endEntity().

This reimplementation does nothing.

bool QXmlDefaultHandler.endPrefixMapping (self, QString prefix)

Reimplemented from QXmlContentHandler.endPrefixMapping().

This reimplementation does nothing.

bool QXmlDefaultHandler.error (self, QXmlParseException exception)

Reimplemented from QXmlErrorHandler.error().

This reimplementation does nothing.

QString QXmlDefaultHandler.errorString (self)

Reimplemented from QXmlContentHandler.errorString().

Returns the default error string.

bool QXmlDefaultHandler.externalEntityDecl (self, QString name, QString publicId, QString systemId)

Reimplemented from QXmlDeclHandler.externalEntityDecl().

This reimplementation does nothing.

bool QXmlDefaultHandler.fatalError (self, QXmlParseException exception)

Reimplemented from QXmlErrorHandler.fatalError().

This reimplementation does nothing.

bool QXmlDefaultHandler.ignorableWhitespace (self, QString ch)

Reimplemented from QXmlContentHandler.ignorableWhitespace().

This reimplementation does nothing.

bool QXmlDefaultHandler.internalEntityDecl (self, QString name, QString value)

Reimplemented from QXmlDeclHandler.internalEntityDecl().

This reimplementation does nothing.

bool QXmlDefaultHandler.notationDecl (self, QString name, QString publicId, QString systemId)

Reimplemented from QXmlDTDHandler.notationDecl().

This reimplementation does nothing.

bool QXmlDefaultHandler.processingInstruction (self, QString target, QString data)

Reimplemented from QXmlContentHandler.processingInstruction().

This reimplementation does nothing.

(bool, QXmlInputSource ret) QXmlDefaultHandler.resolveEntity (self, QString publicId, QString systemId)

Reimplemented from QXmlEntityResolver.resolveEntity().

Sets ret to 0, so that the reader uses the system identifier provided in the XML document.

QXmlDefaultHandler.setDocumentLocator (self, QXmlLocator locator)

Reimplemented from QXmlContentHandler.setDocumentLocator().

This reimplementation does nothing.

bool QXmlDefaultHandler.skippedEntity (self, QString name)

Reimplemented from QXmlContentHandler.skippedEntity().

This reimplementation does nothing.

bool QXmlDefaultHandler.startCDATA (self)

Reimplemented from QXmlLexicalHandler.startCDATA().

This reimplementation does nothing.

bool QXmlDefaultHandler.startDocument (self)

Reimplemented from QXmlContentHandler.startDocument().

This reimplementation does nothing.

bool QXmlDefaultHandler.startDTD (self, QString name, QString publicId, QString systemId)

Reimplemented from QXmlLexicalHandler.startDTD().

This reimplementation does nothing.

bool QXmlDefaultHandler.startElement (self, QString namespaceURI, QString localName, QString qName, QXmlAttributes atts)

Reimplemented from QXmlContentHandler.startElement().

This reimplementation does nothing.

bool QXmlDefaultHandler.startEntity (self, QString name)

Reimplemented from QXmlLexicalHandler.startEntity().

This reimplementation does nothing.

bool QXmlDefaultHandler.startPrefixMapping (self, QString prefix, QString uri)

Reimplemented from QXmlContentHandler.startPrefixMapping().

This reimplementation does nothing.

bool QXmlDefaultHandler.unparsedEntityDecl (self, QString name, QString publicId, QString systemId, QString notationName)

Reimplemented from QXmlDTDHandler.unparsedEntityDecl().

This reimplementation does nothing.

bool QXmlDefaultHandler.warning (self, QXmlParseException exception)

Reimplemented from QXmlErrorHandler.warning().

This reimplementation does nothing.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmldtdhandler.html0000644000076500000240000001224112536324524021364 0ustar philstaff00000000000000 QXmlDTDHandler Class Reference
  Home · All Classes · Modules

QXmlDTDHandler Class Reference
[QtXml module]

The QXmlDTDHandler class provides an interface to report DTD content of XML data. More...

Inherited by QXmlDefaultHandler.

Methods


Detailed Description

The QXmlDTDHandler class provides an interface to report DTD content of XML data.

If an application needs information about notations and unparsed entities, it can implement this interface and register an instance with QXmlReader.setDTDHandler().

Note that this interface includes only those DTD events that the XML recommendation requires processors to report, i.e. notation and unparsed entity declarations using notationDecl() and unparsedEntityDecl() respectively.


Method Documentation

QXmlDTDHandler.__init__ (self)

QXmlDTDHandler.__init__ (self, QXmlDTDHandler)

QString QXmlDTDHandler.errorString (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to get an error string if any of the handler functions returns false.

bool QXmlDTDHandler.notationDecl (self, QString name, QString publicId, QString systemId)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function when it has parsed a notation declaration.

The argument name is the notation name, publicId is the notation's public identifier and systemId is the notation's system identifier.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

bool QXmlDTDHandler.unparsedEntityDecl (self, QString name, QString publicId, QString systemId, QString notationName)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function when it finds an unparsed entity declaration.

The argument name is the unparsed entity's name, publicId is the entity's public identifier, systemId is the entity's system identifier and notationName is the name of the associated notation.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlentityresolver.html0000644000076500000240000001110212536324524022344 0ustar philstaff00000000000000 QXmlEntityResolver Class Reference
  Home · All Classes · Modules

QXmlEntityResolver Class Reference
[QtXml module]

The QXmlEntityResolver class provides an interface to resolve external entities contained in XML data. More...

Inherited by QXmlDefaultHandler.

Methods


Detailed Description

The QXmlEntityResolver class provides an interface to resolve external entities contained in XML data.

If an application needs to implement customized handling for external entities, it must implement this interface, i.e. resolveEntity(), and register it with QXmlReader.setEntityResolver().


Method Documentation

QXmlEntityResolver.__init__ (self)

QXmlEntityResolver.__init__ (self, QXmlEntityResolver)

QString QXmlEntityResolver.errorString (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to get an error string if any of the handler functions returns false.

(bool, QXmlInputSource ret) QXmlEntityResolver.resolveEntity (self, QString publicId, QString systemId)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function before it opens any external entity, except the top-level document entity. The application may request the reader to resolve the entity itself (ret is 0) or to use an entirely different input source (ret points to the input source).

The reader deletes the input source ret when it no longer needs it, so you should allocate it on the heap with new.

The argument publicId is the public identifier of the external entity, systemId is the system identifier of the external entity and ret is the return value of this function. If ret is 0 the reader should resolve the entity itself, if it is non-zero it must point to an input source which the reader uses instead.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlerrorhandler.html0000644000076500000240000001317512536324524021751 0ustar philstaff00000000000000 QXmlErrorHandler Class Reference
  Home · All Classes · Modules

QXmlErrorHandler Class Reference
[QtXml module]

The QXmlErrorHandler class provides an interface to report errors in XML data. More...

Inherited by QXmlDefaultHandler.

Methods


Detailed Description

The QXmlErrorHandler class provides an interface to report errors in XML data.

If you want your application to report errors to the user or to perform customized error handling, you should subclass this class.

You can set the error handler with QXmlReader.setErrorHandler().

Errors can be reported using warning(), error() and fatalError(), with the error text being reported with errorString().


Method Documentation

QXmlErrorHandler.__init__ (self)

QXmlErrorHandler.__init__ (self, QXmlErrorHandler)

bool QXmlErrorHandler.error (self, QXmlParseException exception)

This method is abstract and should be reimplemented in any sub-class.

A reader might use this function to report a recoverable error. A recoverable error corresponds to the definiton of "error" in section 1.2 of the XML 1.0 specification. Details of the error are stored in exception.

The reader must continue to provide normal parsing events after invoking this function.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

QString QXmlErrorHandler.errorString (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to get an error string if any of the handler functions returns false.

bool QXmlErrorHandler.fatalError (self, QXmlParseException exception)

This method is abstract and should be reimplemented in any sub-class.

A reader must use this function to report a non-recoverable error. Details of the error are stored in exception.

If this function returns true the reader might try to go on parsing and reporting further errors, but no regular parsing events are reported.

bool QXmlErrorHandler.warning (self, QXmlParseException exception)

This method is abstract and should be reimplemented in any sub-class.

A reader might use this function to report a warning. Warnings are conditions that are not errors or fatal errors as defined by the XML 1.0 specification. Details of the warning are stored in exception.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlformatter.html0000644000076500000240000002471512536324524021267 0ustar philstaff00000000000000 QXmlFormatter Class Reference
  Home · All Classes · Modules

QXmlFormatter Class Reference
[QtXmlPatterns module]

The QXmlFormatter class is an implementation of QXmlSerializer for transforming XQuery output into formatted XML. More...

Inherits QXmlSerializer.

Methods


Detailed Description

The QXmlFormatter class is an implementation of QXmlSerializer for transforming XQuery output into formatted XML.

QXmlFormatter is a subclass of QXmlSerializer that formats the XML output to make it easier for humans to read.

QXmlSerializer outputs XML without adding unnecessary whitespace. In particular, it does not add newlines and indentation. To make the XML output easier to read, QXmlFormatter adds newlines and indentation by adding, removing, and modifying sequence nodes that only consist of whitespace. It also modifies whitespace in other places where it is not significant; e.g., between attributes and in the document prologue.

For example, where the base class QXmlSerializer would output this:

 <a><b/><c/><p>Some Text</p></a>

QXmlFormatter outputs this:

 <a>
    <b/>
    <c/>
    <p>Some Text</p>
 </a>

If you just want to serialize your XML in a human-readable format, use QXmlFormatter as it is. The default indentation level is 4 spaces, but you can set your own indentation value setIndentationDepth().

The newlines and indentation added by QXmlFormatter are suitable for common formats, such as XHTML, SVG, or Docbook, where whitespace is not significant. However, if your XML will be used as input where whitespace is significant, then you must write your own subclass of QXmlSerializer or QAbstractXmlReceiver.

Note that using QXmlFormatter instead of QXmlSerializer will increase computational overhead and document storage size due to the insertion of whitespace.

Note also that the indentation style used by QXmlFormatter remains loosely defined and may change in future versions of Qt. If a specific indentation style is required then either use the base class QXmlSerializer directly, or write your own subclass of QXmlSerializer or QAbstractXmlReceiver. Alternatively, you can subclass QXmlFormatter and reimplement the callbacks there.

 QXmlQuery query;
 query.setQuery("doc('index.html')/html/body/p[1]");

 QXmlFormatter formatter(query, myOutputDevice);
 formatter.setIndentationDepth(2);
 query.evaluateTo(&formatter);

Method Documentation

QXmlFormatter.__init__ (self, QXmlQuery query, QIODevice outputDevice)

Constructs a formatter that uses the name pool and message handler in query, and writes the result to outputDevice as formatted XML.

outputDevice is passed directly to QXmlSerializer's constructor.

See also QXmlSerializer.

QXmlFormatter.atomicValue (self, QVariant value)

Reimplemented from QAbstractXmlReceiver.atomicValue().

QXmlFormatter.attribute (self, QXmlName name, QStringRef value)

Reimplemented from QAbstractXmlReceiver.attribute().

QXmlFormatter.characters (self, QStringRef value)

Reimplemented from QAbstractXmlReceiver.characters().

QXmlFormatter.comment (self, QString value)

Reimplemented from QAbstractXmlReceiver.comment().

QXmlFormatter.endDocument (self)

Reimplemented from QAbstractXmlReceiver.endDocument().

QXmlFormatter.endElement (self)

Reimplemented from QAbstractXmlReceiver.endElement().

QXmlFormatter.endOfSequence (self)

Reimplemented from QAbstractXmlReceiver.endOfSequence().

int QXmlFormatter.indentationDepth (self)

Returns the number of spaces QXmlFormatter will output for each indentation level. The default is four.

See also setIndentationDepth().

QXmlFormatter.processingInstruction (self, QXmlName name, QString value)

Reimplemented from QAbstractXmlReceiver.processingInstruction().

QXmlFormatter.setIndentationDepth (self, int depth)

Sets depth to be the number of spaces QXmlFormatter will output for level of indentation. The default is four.

See also indentationDepth().

QXmlFormatter.startDocument (self)

Reimplemented from QAbstractXmlReceiver.startDocument().

QXmlFormatter.startElement (self, QXmlName name)

Reimplemented from QAbstractXmlReceiver.startElement().

QXmlFormatter.startOfSequence (self)

Reimplemented from QAbstractXmlReceiver.startOfSequence().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlinputsource.html0000644000076500000240000002530212536324523021634 0ustar philstaff00000000000000 QXmlInputSource Class Reference
  Home · All Classes · Modules

QXmlInputSource Class Reference
[QtXml module]

The QXmlInputSource class provides the input data for the QXmlReader subclasses. More...

Methods

Static Members


Detailed Description

The QXmlInputSource class provides the input data for the QXmlReader subclasses.

All subclasses of QXmlReader read the input XML document from this class.

This class recognizes the encoding of the data by reading the encoding declaration in the XML file if it finds one, and reading the data using the corresponding encoding. If it does not find an encoding declaration, then it assumes that the data is either in UTF-8 or UTF-16, depending on whether it can find a byte-order mark.

There are two ways to populate the input source with data: you can construct it with a QIODevice* so that the input source reads the data from that device. Or you can set the data explicitly with one of the setData() functions.

Usually you either construct a QXmlInputSource that works on a QIODevice* or you construct an empty QXmlInputSource and set the data with setData(). There are only rare occasions where you would want to mix both methods.

The QXmlReader subclasses use the next() function to read the input character by character. If you want to start from the beginning again, use reset().

The functions data() and fetchData() are useful if you want to do something with the data other than parsing, e.g. displaying the raw XML file. The benefit of using the QXmlInputClass in such cases is that it tries to use the correct encoding.


Method Documentation

QXmlInputSource.__init__ (self)

Constructs an input source which contains no data.

See also setData().

QXmlInputSource.__init__ (self, QIODevice dev)

Constructs an input source and gets the data from device dev. If dev is not open, it is opened in read-only mode. If dev is 0 or it is not possible to read from the device, the input source will contain no data.

See also setData(), fetchData(), and QIODevice.

QXmlInputSource.__init__ (self, QXmlInputSource)

QString QXmlInputSource.data (self)

Returns the data the input source contains or an empty string if the input source does not contain any data.

See also setData(), QXmlInputSource(), and fetchData().

QXmlInputSource.fetchData (self)

This function reads more data from the device that was set during construction. If the input source already contained data, this function deletes that data first.

This object contains no data after a call to this function if the object was constructed without a device to read data from or if this function was not able to get more data from the device.

There are two occasions where a fetch is done implicitly by another function call: during construction (so that the object starts out with some initial data where available), and during a call to next() (if the data had run out).

You don't normally need to use this function if you use next().

See also data(), next(), and QXmlInputSource().

QString QXmlInputSource.fromRawData (self, QByteArray data, bool beginning = False)

This function reads the XML file from data and tries to recognize the encoding. It converts the raw data data into a QString and returns it. It tries its best to get the correct encoding for the XML file.

If beginning is true, this function assumes that the data starts at the beginning of a new XML document and looks for an encoding declaration. If beginning is false, it converts the raw data using the encoding determined from prior calls.

QChar QXmlInputSource.next (self)

Returns the next character of the input source. If this function reaches the end of available data, it returns QXmlInputSource.EndOfData. If you call next() after that, it tries to fetch more data by calling fetchData(). If the fetchData() call results in new data, this function returns the first character of that data; otherwise it returns QXmlInputSource.EndOfDocument.

Readers, such as QXmlSimpleReader, will assume that the end of the XML document has been reached if the this function returns QXmlInputSource.EndOfDocument, and will check that the supplied input is well-formed. Therefore, when reimplementing this function, it is important to ensure that this behavior is duplicated.

See also reset(), fetchData(), QXmlSimpleReader.parse(), and QXmlSimpleReader.parseContinue().

QXmlInputSource.reset (self)

This function sets the position used by next() to the beginning of the data returned by data(). This is useful if you want to use the input source for more than one parse.

Note: In the case that the underlying data source is a QIODevice, the current position in the device is not automatically set to the start of input. Call QIODevice.seek(0) on the device to do this.

See also next().

QXmlInputSource.setData (self, QString dat)

Sets the data of the input source to dat.

If the input source already contains data, this function deletes that data first.

See also data().

QXmlInputSource.setData (self, QByteArray dat)

This is an overloaded function.

The data dat is passed through the correct text-codec, before it is set.


Member Documentation

int EndOfData

This member should be treated as a constant.

int EndOfDocument

This member should be treated as a constant.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlitem.html0000644000076500000240000001714612536324524020222 0ustar philstaff00000000000000 QXmlItem Class Reference
  Home · All Classes · Modules

QXmlItem Class Reference
[
QtXmlPatterns module]

The QXmlItem class contains either an XML node or an atomic value. More...

Methods


Detailed Description

The QXmlItem class contains either an XML node or an atomic value.

In XQuery, all expressions evaluate to a sequence of items, where each item is either an XML node or an atomic value. The query in the following snippet evaluates to sequence of five items.

 <aNode/>,
 xs:base64Binary("FFFF"),
 current-date(),
 3e3, (: A floating point value :)
 attribute {"name"} {()}

The five items are: An element, an atomic value (binary data encoded in base64), a date, a float, and an attribute.

QXmlItem is the class that represents these XQuery items in the QtXmlPatterns API. A non-null instance of QXmlItem is either a node or an atomic value. Calling isNode() or isAtomicValue() tells you which it is. Atomic values are represented elsewhere in the Qt API as instances of QVariant, and an instance of QXmlItem that represents an atomic value can be converted to a QVariant by calling toAtomicValue(). A QXmlItem that wraps a node is represented elsewhere as an instance of QXmlNodeModelIndex. A node QXmlItem can be converted to a QXmlNodeModelIndex by calling toNodeModelIndex().

A default constructed QXmlItem instance is neither a node nor an atomic value. It is considered null, in which case isNull() returns true.

An instance of QXmlItem will be left dangling if the XML node model it refers to is deleted, if it is a QXmlNodeModelIndex.


Method Documentation

QXmlItem.__init__ (self)

Constructs a null QXmlItem that is neither a node nor an atomic value. isNull() returns true for a default constructed instance.

QXmlItem.__init__ (self, QXmlItem other)

The copy constructor constructs a copy of other.

QXmlItem.__init__ (self, QXmlNodeModelIndex node)

Constructs a node QXmlItem that is a copy of node.

See also isNode().

QXmlItem.__init__ (self, QVariant atomicValue)

Constructs an atomic value QXmlItem with atomicValue.

See also isAtomicValue().

bool QXmlItem.isAtomicValue (self)

Returns true if this item is an atomic value. Returns false if it is a node or null.

See also isNull() and isNode().

bool QXmlItem.isNode (self)

Returns true if this item is a Node. Returns false if it is an atomic value or null.

See also isNull() and isAtomicValue().

bool QXmlItem.isNull (self)

Returns true if this QXmlItem is neither a node nor an atomic value. Default constructed instances of QXmlItem are null.

QVariant QXmlItem.toAtomicValue (self)

If this QXmlItem represents an atomic value, it is converted to an appropriate QVariant and returned. If this QXmlItem is not an atomic value, the return value is a default constructed QVariant. You can call isAtomicValue() to test whether the item is an atomic value.

See also isAtomicValue().

QXmlNodeModelIndex QXmlItem.toNodeModelIndex (self)

If this QXmlItem represents a node, it returns the item as a QXmlNodeModelIndex. If this QXmlItem is not a node, the return value is undefined. You can call isNode() to test whether the item is a node.

See also isNode().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmllexicalhandler.html0000644000076500000240000002374612536324524022246 0ustar philstaff00000000000000 QXmlLexicalHandler Class Reference
  Home · All Classes · Modules

QXmlLexicalHandler Class Reference
[QtXml module]

The QXmlLexicalHandler class provides an interface to report the lexical content of XML data. More...

Inherited by QXmlDefaultHandler.

Methods


Detailed Description

The QXmlLexicalHandler class provides an interface to report the lexical content of XML data.

The events in the lexical handler apply to the entire document, not just to the document element, and all lexical handler events appear between the content handler's startDocument and endDocument events.

You can set the lexical handler with QXmlReader.setLexicalHandler().

This interface's design is based on the SAX2 extension LexicalHandler.

The interface provides the startDTD(), endDTD(), startEntity(), endEntity(), startCDATA(), endCDATA() and comment() functions.


Method Documentation

QXmlLexicalHandler.__init__ (self)

QXmlLexicalHandler.__init__ (self, QXmlLexicalHandler)

bool QXmlLexicalHandler.comment (self, QString ch)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report an XML comment anywhere in the document. It reports the text of the comment in ch.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

bool QXmlLexicalHandler.endCDATA (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report the end of a CDATA section.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also startCDATA() and QXmlContentHandler.characters().

bool QXmlLexicalHandler.endDTD (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report the end of a DTD declaration, if any.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also startDTD().

bool QXmlLexicalHandler.endEntity (self, QString name)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report the end of an entity called name.

For every startEntity() call, there is a corresponding endEntity() call. The calls to startEntity() and endEntity() are properly nested.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also startEntity(), QXmlContentHandler.skippedEntity(), and QXmlSimpleReader.setFeature().

QString QXmlLexicalHandler.errorString (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to get an error string if any of the handler functions returns false.

bool QXmlLexicalHandler.startCDATA (self)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report the start of a CDATA section. The content of the CDATA section is reported through the QXmlContentHandler.characters() function. This function is intended only to report the boundary.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also endCDATA().

bool QXmlLexicalHandler.startDTD (self, QString name, QString publicId, QString systemId)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report the start of a DTD declaration, if any. It reports the name of the document type in name, the public identifier in publicId and the system identifier in systemId.

If the public identifier is missing, publicId is set to an empty string. If the system identifier is missing, systemId is set to an empty string. Note that it is not valid XML to have a public identifier but no system identifier; in such cases a parse error will occur.

All declarations reported through QXmlDTDHandler or QXmlDeclHandler appear between the startDTD() and endDTD() calls.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also endDTD().

bool QXmlLexicalHandler.startEntity (self, QString name)

This method is abstract and should be reimplemented in any sub-class.

The reader calls this function to report the start of an entity called name.

Note that if the entity is unknown, the reader reports it through QXmlContentHandler.skippedEntity() and not through this function.

If this function returns false the reader stops parsing and reports an error. The reader uses the function errorString() to get the error message.

See also endEntity() and QXmlSimpleReader.setFeature().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmllocator.html0000644000076500000240000000671312536324524020725 0ustar philstaff00000000000000 QXmlLocator Class Reference
  Home · All Classes · Modules

QXmlLocator Class Reference
[QtXml module]

The QXmlLocator class provides the XML handler classes with information about the parsing position within a file. More...

Methods


Detailed Description

The QXmlLocator class provides the XML handler classes with information about the parsing position within a file.

The reader reports a QXmlLocator to the content handler before it starts to parse the document. This is done with the QXmlContentHandler.setDocumentLocator() function. The handler classes can now use this locator to get the position (lineNumber() and columnNumber()) that the reader has reached.


Method Documentation

QXmlLocator.__init__ (self)

Constructor.

QXmlLocator.__init__ (self, QXmlLocator)

int QXmlLocator.columnNumber (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the column number (starting at 1) or -1 if there is no column number available.

int QXmlLocator.lineNumber (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the line number (starting at 1) or -1 if there is no line number available.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlname.html0000644000076500000240000003716712536324524020211 0ustar philstaff00000000000000 QXmlName Class Reference
  Home · All Classes · Modules

QXmlName Class Reference
[
QtXmlPatterns module]

The QXmlName class represents the name of an XML node, in an efficient, namespace-aware way. More...

Methods

  • __init__ (self)
  • __init__ (self, QXmlNamePool namePool, QString localName, QString namespaceUri = QString(), QString prefix = QString())
  • __init__ (self, QXmlName)
  • bool isNull (self)
  • QString localName (self, QXmlNamePool query)
  • QString namespaceUri (self, QXmlNamePool query)
  • QString prefix (self, QXmlNamePool query)
  • QString toClarkName (self, QXmlNamePool query)

Static Methods

Special Methods


Detailed Description

The QXmlName class represents the name of an XML node, in an efficient, namespace-aware way.

QXmlName represents the name of an XML node in a way that is both efficient and safe for comparing names. Normally, an XML node represents an XML element or attribute, but QXmlName can also represent the names of other kinds of nodes, e.g., QAbstractXmlReceiver.processingInstruction() and QAbstractXmlReceiver.namespaceBinding().

The name of an XML node has three components: The namespace URI, the local name, and the prefix. To see what these refer to in XML, consider the following snippet.

 <book xmlns:dc='http://purl.org/dc/elements/1.1'
       xmlns='http://example.com/MyDefault'>
     <dc:title>Mobey Dick</dc:title> ...
 </book>

For the element named book, localName() returns book, namespaceUri() returns http://example.com/MyDefault, and prefix() returns an empty string. For the element named title, localName() returns title, namespaceUri() returns http://purl.org/dc/elements/1.1, and prefix() returns dc.

To ensure that operations with QXmlName are efficient, e.g., copying names and comparing them, each instance of QXmlName is associated with a name pool, which must be specified at QXmlName construction time. The three components of the QXmlName, i.e., the namespace URI, the local name, and the prefix, are stored in the name pool mapped to identifiers so they can be shared. For this reason, the only way to create a valid instance of QXmlName is to use the class constructor, where the name pool, local name, namespace URI, and prefix must all be specified.

Note that QXmlName's default constructor constructs a null instance. It is typically used for allocating unused entries in collections of QXmlName.

A side effect of associating each instance of QXmlName with a name pool is that each instance of QXmlName is tied to the QXmlNamePool with which it was created. However, the QXmlName class does not keep track of the name pool, so all the accessor functions, e.g., namespaceUri(), prefix(), localName(), and toClarkName() require that the correct name pool be passed to them. Failure to provide the correct name pool to these accessor functions results in undefined behavior.

Note that a name pool is not an XML namespace. One name pool can represent instances of QXmlName from different XML namespaces, and the instances of QXmlName from one XML namespace can be distributed over multiple name pools.

Comparing QXmlNames

To determine what a QXmlName refers to, the namespace URI and the local name are used. The prefix is not used because the prefix is simply a shorthand name for use in place of the normally much longer namespace URI. Nor is the prefix used in name comparisons. For example, the following two element nodes represent the same element and compare equal.

 <svg xmlns="http://www.w3.org/2000/svg"/>
 <x:svg xmlns:x="http://www.w3.org/2000/svg"/>

Although the second name has the prefix x, the two names compare equal as instances of QXmlName, because the prefix is not used in the comparison.

A local name can never be an empty string, although the prefix and namespace URI can. If the prefix is not empty, the namespace URI cannot be empty. Local names and prefixes must be valid NCNames, e.g., abc.def or abc123.

QXmlName represents what is sometimes called an expanded QName, or simply a QName.


Method Documentation

QXmlName.__init__ (self)

Constructs an uninitialized QXmlName. To build a valid QXmlName, you normally use the other constructor, which takes a name pool, namespace URI, local name, and prefix as parameters. But you can also use this constructor to build a null QXmlName and then assign an existing QXmlName to it.

See also isNull().

QXmlName.__init__ (self, QXmlNamePool namePool, QString localName, QString namespaceUri = QString(), QString prefix = QString())

Constructs a QXmlName instance that inserts localName, namespaceURI and prefix into namePool if they aren't already there. The accessor functions namespaceUri(), prefix(), localName(), and toClarkName() must be passed the namePool used here, so the namePool must remain in scope while the accessor functions might be used. However, two instances can be compared with == or != and copied without the namePool.

The user guarantees that the string components are valid for a QName. In particular, the local name, and the prefix (if present), must be valid NCNames. The function isNCName() can be used to test validity of these names. The namespace URI should be an absolute URI. QUrl.isRelative() can be used to test whether the namespace URI is relative or absolute. Finally, providing a prefix is not valid when no namespace URI is provided.

namePool is not copied. Nor is the reference to it retained in this instance. This constructor inserts the three strings into namePool.

QXmlName.__init__ (self, QXmlName)

QXmlName QXmlName.fromClarkName (QString clarkName, QXmlNamePool namePool)

Converts clarkName into a QXmlName, inserts into namePool, and returns it.

A clark name is a way to present a full QName with only one string, where the namespace cannot contain braces. Here are a couple of examples:

Clark Name Description
html The local name html, in no namespace
http://www.w3.org/1999/xhtmlhtml The local name html, in the XHTML namespace
http://www.w3.org/1999/xhtmlmy:html The local name html, in the XHTML namespace, with the prefix my

If the namespace contains braces, the returned value is either invalid or has undefined content.

If clarkName is an invalid name, a default constructed QXmlName is returned.

This function was introduced in Qt 4.5.

See also toClarkName().

bool QXmlName.isNCName (QString candidate)

Returns true if candidate is an NCName. An NCName is a string that can be used as a name in XML and XQuery, e.g., the prefix or local name in an element or attribute, or the name of a variable.

See also Namespaces in XML 1.0 (Second Edition), [4] NCName.

bool QXmlName.isNull (self)

Returns true if this QXmlName is not initialized with a valid combination of namespace URI, local name, and prefix.

A valid local name is always required. The prefix and namespace URI can be empty, but if the prefix is not empty, the namespace URI must not be empty. Local names and prefixes must be valid NCNames, e.g., abc.def or abc123.

QString QXmlName.localName (self, QXmlNamePool query)

Returns the local name.

Note that for efficiency, the local name string is not stored in the QXmlName but in the QXmlNamePool that was passed to the constructor. Hence, that same namePool must be passed to this function, so it can be used for looking up the local name.

QString QXmlName.namespaceUri (self, QXmlNamePool query)

Returns the namespace URI.

Note that for efficiency, the namespace URI string is not stored in the QXmlName but in the QXmlNamePool that was passed to the constructor. Hence, that same namePool must be passed to this function, so it can be used for looking up the namespace URI.

QString QXmlName.prefix (self, QXmlNamePool query)

Returns the prefix.

Note that for efficiency, the prefix string is not stored in the QXmlName but in the QXmlNamePool that was passed to the constructor. Hence, that same namePool must be passed to this function, so it can be used for looking up the prefix.

QString QXmlName.toClarkName (self, QXmlNamePool query)

Returns this QXmlName formatted as a Clark Name. For example, if the local name is html, the prefix is x, and the namespace URI is http://www.w3.org/1999/xhtml/, then the Clark Name returned is:

 {http://www.w3.org/1999/xhtml/}x:html.

If the local name is MyWidget and the namespace is empty, the Clark Name returned is:

 MyWidget

Note that for efficiency, the namespace URI, local name, and prefix strings are not stored in the QXmlName but in the QXmlNamePool that was passed to the constructor. Hence, that same namePool must be passed to this function, so it can be used for looking up the three string components.

This function can be useful for debugging.

See also XML Namespaces, James Clark and fromClarkName().

bool QXmlName.__eq__ (self, QXmlName other)

int QXmlName.__hash__ (self)

bool QXmlName.__ne__ (self, QXmlName other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlnamepool.html0000644000076500000240000000707112536324524021072 0ustar philstaff00000000000000 QXmlNamePool Class Reference
  Home · All Classes · Modules

QXmlNamePool Class Reference
[QtXmlPatterns module]

The QXmlNamePool class is a table of shared strings referenced by instances of QXmlName. More...

Methods


Detailed Description

The QXmlNamePool class is a table of shared strings referenced by instances of QXmlName.

QXmlNamePool is used to optimize operations on instances of QXmlName. An instance of QXmlName represents an XML name in a way that allows the XML name to be compared and passed around efficiently. The efficiency is achieved by storing the strings comprising the XML names in an instance of QXmlNamePool, where they are mapped to binary identifiers, which are then packed into a key which is stored in the QXmlName.

This means that each instance of QXmlName is tied to the name pool it was created with, and that name pool should be kept in scope and used to create all instances of QXmlName that might be compared. Note also that the name pool is required if you must reconstitute the QXmlName as text, or if you must access any of its component strings, so although instances of QXmlName can be compared without reference to a name pool, the name pool must be kept in scope if the name's strings must be accessed later.


Method Documentation

QXmlNamePool.__init__ (self)

Constructs an empty name pool.

QXmlNamePool.__init__ (self, QXmlNamePool other)

Constructs a copy of the other name pool.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlnamespacesupport.html0000644000076500000240000002155312536324523022651 0ustar philstaff00000000000000 QXmlNamespaceSupport Class Reference
  Home · All Classes · Modules

QXmlNamespaceSupport Class Reference
[QtXml module]

The QXmlNamespaceSupport class is a helper class for XML readers which want to include namespace support. More...

Methods


Detailed Description

The QXmlNamespaceSupport class is a helper class for XML readers which want to include namespace support.

You can set the prefix for the current namespace with setPrefix(), and get the list of current prefixes (or those for a given URI) with prefixes(). The namespace URI is available from uri(). Use pushContext() to start a new namespace context, and popContext() to return to the previous namespace context. Use splitName() or processName() to split a name into its prefix and local name.


Method Documentation

QXmlNamespaceSupport.__init__ (self)

Constructs a QXmlNamespaceSupport.

QXmlNamespaceSupport.popContext (self)

Reverts to the previous namespace context.

Normally, you should pop the context at the end of each XML element. After popping the context, all namespace prefix mappings that were previously in force are restored.

See also pushContext().

QString QXmlNamespaceSupport.prefix (self, QString)

Returns one of the prefixes mapped to the namespace URI uri.

If more than one prefix is currently mapped to the same URI, this function makes an arbitrary selection; if you want all of the prefixes, use prefixes() instead.

Note: to check for a default prefix, use the uri() function with an argument of "".

See also setPrefix().

QStringList QXmlNamespaceSupport.prefixes (self)

Returns a list of all the prefixes currently declared.

If there is a default prefix, this function does not return it in the list; check for the default prefix using uri() with an argument of "".

QStringList QXmlNamespaceSupport.prefixes (self, QString)

This is an overloaded function.

Returns a list of all prefixes currently declared for the namespace URI uri.

The "xml:" prefix is included. If you only want one prefix that is mapped to the namespace URI, and you don't care which one you get, use the prefix() function instead.

Note: The empty (default) prefix is never included in this list; to check for the presence of a default namespace, call uri() with "" as the argument.

QXmlNamespaceSupport.processName (self, QString, bool, QString, QString)

Processes a raw XML 1.0 name in the current context by removing the prefix and looking it up among the prefixes currently declared.

qname is the raw XML 1.0 name to be processed. isAttribute is true if the name is an attribute name.

This function stores the namespace URI in nsuri (which will be set to an empty string if the raw name has an undeclared prefix), and stores the local name (without prefix) in localname (which will be set to an empty string if no namespace is in use).

Note that attribute names are processed differently than element names: an unprefixed element name gets the default namespace (if any), while an unprefixed attribute name does not.

QXmlNamespaceSupport.pushContext (self)

Starts a new namespace context.

Normally, you should push a new context at the beginning of each XML element: the new context automatically inherits the declarations of its parent context, and it also keeps track of which declarations were made within this context.

See also popContext().

QXmlNamespaceSupport.reset (self)

Resets this namespace support object ready for reuse.

QXmlNamespaceSupport.setPrefix (self, QString, QString)

This function declares a prefix pre in the current namespace context to be the namespace URI uri. The prefix remains in force until this context is popped, unless it is shadowed in a descendant context.

Note that there is an asymmetry in this library. prefix() does not return the default "" prefix, even if you have declared one; to check for a default prefix, you must look it up explicitly using uri(). This asymmetry exists to make it easier to look up prefixes for attribute names, where the default prefix is not allowed.

See also prefix().

QXmlNamespaceSupport.splitName (self, QString, QString, QString)

Splits the name qname at the ':' and returns the prefix in prefix and the local name in localname.

See also processName().

QString QXmlNamespaceSupport.uri (self, QString)

Looks up the prefix prefix in the current context and returns the currently-mapped namespace URI. Use the empty string ("") for the default namespace.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlnodemodelindex.html0000644000076500000240000003030512536324524022252 0ustar philstaff00000000000000 QXmlNodeModelIndex Class Reference
  Home · All Classes · Modules

QXmlNodeModelIndex Class Reference
[
QtXmlPatterns module]

The QXmlNodeModelIndex class identifies a node in an XML node model subclassed from QAbstractXmlNodeModel. More...

Types

  • enum DocumentOrder { Precedes, Is, Follows }
  • enum NodeKind { Attribute, Comment, Document, Element, ..., Text }

Methods

Special Methods

  • bool __eq__ (self, QXmlNodeModelIndex other)
  • int __hash__ (self)
  • bool __ne__ (self, QXmlNodeModelIndex other)

Detailed Description

The QXmlNodeModelIndex class identifies a node in an XML node model subclassed from QAbstractXmlNodeModel.

QXmlNodeModelIndex is an index into an XML node model. It contains:

Because QXmlNodeModelIndex is intentionally a simple class, it doesn't have member functions for accessing the properties of nodes. For example, it doesn't have functions for getting a node's name or its list of attributes or child nodes. If you find that you need to retrieve this kind of information from your query results, there are two ways to proceed.

The second case is explained by example. Suppose you want to populate a list widget with the values of certain attributes from a set of result elements. You could write an XQuery to return the set of elements, and then you would write the code to iterate over the result elements, get their attributes, and extract the desired string values. But the simpler way is to just augment your XQuery to finding the desired attribute values. Then all you have to do is evaluate the XQuery using the version of QXmlQuery.evaluateTo() that populates a QStringList, which you can send directly to your widget.

QXmlNodeModelIndex doesn't impose any restrictions on the data value an QXmlNodeModelIndex should contain. The meaning of the data left to the associated node model. Because QXmlNodeModelIndex depends on a particular subclass of QAbstractXmlNodeModel for its existence, the only way you can create an instance of QXmlNodeModelIndex is by asking the node model to create one for you with QAbstractXmlNodeModel.createIndex(). Since that function is protected, it is usually a good idea to write a public function that creates a QXmlNodeModelIndex from arguments that are appropriate for your particular node model.

A default constructed node index is said to be null, i.e., isNull() returns true.

QXmlNodeModelIndex and QAbstractXmlNodeModel follow the same design pattern used for QModelIndex and QAbstractItemModel.


Type Documentation

QXmlNodeModelIndex.DocumentOrder

Identifies the specific node comparison operator that should be used.

Constant Value Description
QXmlNodeModelIndex.Precedes -1 Signifies the \<\< operator. Test whether the first operand precedes the second in the document.
QXmlNodeModelIndex.Follows 1 Signifies the \>\> operator. Test whether the first operand follows the second in the document.
QXmlNodeModelIndex.Is 0 Signifies the is operator. Test whether two nodes have the same node identity.

QXmlNodeModelIndex.NodeKind

Identifies a kind of node.

Constant Value Description
QXmlNodeModelIndex.Attribute 1 Identifies an attribute node
QXmlNodeModelIndex.Text 64 Identifies a text node
QXmlNodeModelIndex.Comment 2 Identifies a comment node
QXmlNodeModelIndex.Document 4 Identifies a document node
QXmlNodeModelIndex.Element 8 Identifies an element node
QXmlNodeModelIndex.Namespace 16 Identifies a namespace node
QXmlNodeModelIndex.ProcessingInstruction 32 Identifies a processing instruction.

Note that the optional XML declaration at very beginning of the XML document is not a processing instruction

See also QAbstractXmlNodeModel.kind().


Method Documentation

QXmlNodeModelIndex.__init__ (self)

Default constructor. Creates an item that is null.

See also isNull().

QXmlNodeModelIndex.__init__ (self, QXmlNodeModelIndex other)

Standard copy constructor. Creates a QXmlNodeModelIndex instance that is a copy of other.

int QXmlNodeModelIndex.additionalData (self)

Returns the second data value. The node index holds two data values. data() returns the first one.

See also data().

int QXmlNodeModelIndex.data (self)

Returns the first data value. The node index holds two data values. additionalData() returns the second one.

See also additionalData().

object QXmlNodeModelIndex.internalPointer (self)

Returns the first data value as a void* pointer.

See also additionalData().

bool QXmlNodeModelIndex.isNull (self)

Returns true if this QXmlNodeModelIndex is a default constructed value, otherwise false.

A null QXmlNodeModelIndex doesn't represent any node and cannot be used in conjunction with QAbstractXmlNodeModel.

QAbstractXmlNodeModel QXmlNodeModelIndex.model (self)

Returns the QAbstractXmlNodeModel that this node index refers to. QXmlNodeModelIndex does not own QAbstractXmlNodeModel and does not keep track of its lifetime, so this pointer will dangle if the QAbstractXmlNodeModel is deallocated first.

There is no setter for the node model because instances of QXmlNodeModelIndex instances are only created with QAbstractXmlNodeModel.createIndex().

bool QXmlNodeModelIndex.__eq__ (self, QXmlNodeModelIndex other)

int QXmlNodeModelIndex.__hash__ (self)

bool QXmlNodeModelIndex.__ne__ (self, QXmlNodeModelIndex other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlparseexception.html0000644000076500000240000001431612536324524022311 0ustar philstaff00000000000000 QXmlParseException Class Reference
  Home · All Classes · Modules

QXmlParseException Class Reference
[QtXml module]

The QXmlParseException class is used to report errors with the QXmlErrorHandler interface. More...

Methods


Detailed Description

The QXmlParseException class is used to report errors with the QXmlErrorHandler interface.

The XML subsystem constructs an instance of this class when it detects an error. You can retrieve the place where the error occurred using systemId(), publicId(), lineNumber() and columnNumber(), along with the error message(). The possible error messages are:

  • "no error occurred"
  • "error triggered by consumer"
  • "unexpected end of file"
  • "more than one document type definition"
  • "error occurred while parsing element"
  • "tag mismatch"
  • "error occurred while parsing content"
  • "unexpected character"
  • "invalid name for processing instruction"
  • "version expected while reading the XML declaration"
  • "wrong value for standalone declaration"
  • "encoding declaration or standalone declaration expected while reading the XML declaration"
  • "standalone declaration expected while reading the XML declaration"
  • "error occurred while parsing document type definition"
  • "letter is expected"
  • "error occurred while parsing comment"
  • "error occurred while parsing reference"
  • "internal general entity reference not allowed in DTD"
  • "external parsed general entity reference not allowed in attribute value"
  • "external parsed general entity reference not allowed in DTD"
  • "unparsed entity reference n wrong context"
  • "recursive entities"
  • "error in the text declaration of an external entity"

Note that, if you want to display these error messages to your application's users, they will be displayed in English unless they are explicitly translated.


Method Documentation

QXmlParseException.__init__ (self, QString name = QString(), int column = -1, int line = -1, QString publicId = QString(), QString systemId = QString())

Constructs a parse exception with the error string name for column c and line l for the public identifier p and the system identifier s.

QXmlParseException.__init__ (self, QXmlParseException other)

Creates a copy of other.

int QXmlParseException.columnNumber (self)

Returns the column number where the error occurred.

int QXmlParseException.lineNumber (self)

Returns the line number where the error occurred.

QString QXmlParseException.message (self)

Returns the error message.

QString QXmlParseException.publicId (self)

Returns the public identifier where the error occurred.

QString QXmlParseException.systemId (self)

Returns the system identifier where the error occurred.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlquery.html0000644000076500000240000013421512536324524020426 0ustar philstaff00000000000000 QXmlQuery Class Reference
  Home · All Classes · Modules

QXmlQuery Class Reference
[
QtXmlPatterns module]

The QXmlQuery class performs XQueries on XML data, or on non-XML data modeled to look like XML. More...

Types

Methods


Detailed Description

The QXmlQuery class performs XQueries on XML data, or on non-XML data modeled to look like XML.

The QXmlQuery class compiles and executes queries written in the XQuery language. QXmlQuery is typically used to query XML data, but it can also query non-XML data that has been modeled to look like XML.

Using QXmlQuery to query XML data, as in the snippet below, is simple because it can use the built-in XML data model as its delegate to the underlying query engine for traversing the data. The built-in data model is specified in XQuery 1.0 and XPath 2.0 Data Model.

 QXmlQuery query;
 query.setQuery("doc('index.html')/html/body/p[1]");

 QXmlSerializer serializer(query, myOutputDevice);
 query.evaluateTo(&serializer);

The example uses QXmlQuery to match the first paragraph of an XML document and then output the result to a device as XML.

Using QXmlQuery to query non-XML data requires writing a subclass of QAbstractXmlNodeModel to use as a replacement for the built-in XML data model. The custom data model will be able to traverse the non-XML data as required by the QAbstractXmlNodeModel interface. An instance of this custom data model then becomes the delegate used by the query engine to traverse the non-XML data. For an example of how to use QXmlQuery to query non-XML data, see the documentation for QAbstractXmlNodeModel.

Running XQueries

To run a query set up with QXmlQuery, call one of the evaluation functions.

  • evaluateTo(QAbstractXmlReceiver *) is called with a pointer to an XML receiver, which receives the query results as a sequence of callbacks. The receiver callback class is like the callback class used for translating the output of a SAX parser. QXmlSerializer, for example, is a receiver callback class for translating the sequence of callbacks for output as unformatted XML text.
  • evaluateTo(QXmlResultItems *) is called with a pointer to an iterator for an empty sequence of query result items. The Java-like iterator allows the query results to be accessed sequentially.

Running XPath Expressions

The XPath language is a subset of the XQuery language, so running an XPath expression is the same as running an XQuery query. Pass the XPath expression to QXmlQuery using setQuery().

Running XSLT stylesheets

Running an XSLT stylesheet is like running an XQuery, except that when you construct your QXmlQuery, you must pass QXmlQuery.XSLT20 to tell QXmlQuery to interpret whatever it gets from setQuery() as an XSLT stylesheet instead of as an XQuery. You must also set the input document by calling setFocus().

     QXmlQuery query(QXmlQuery.XSLT20);
     query.setFocus(QUrl("myInput.xml"));
     query.setQuery(QUrl("myStylesheet.xsl"));
     query.evaluateTo(out);

Note: Currently, setFocus() must be called before setQuery() when using XSLT.

Another way to run an XSLT stylesheet is to use the xmlpatterns command line utility.

 xmlpatterns myStylesheet.xsl myInput.xml

Note: For the current release, XSLT support should be considered experimental. See section XSLT conformance for details.

Stylesheet parameters are bound using bindVariable().

Binding A Query To A Starting Node

When a query is run on XML data, as in the snippet above, the doc() function returns the node in the built-in data model where the query evaluation will begin. But when a query is run on a custom node model containing non-XML data, one of the bindVariable() functions must be called to bind a variable name to a starting node in the custom model. A $variable reference is used in the XQuery text to access the starting node in the custom model. It is not necessary to declare the variable name external in the query. See the example in the documentation for QAbstractXmlNodeModel.

Reentrancy and Thread-Safety

QXmlQuery is reentrant but not thread-safe. It is safe to use the QxmlQuery copy constructor to create a copy of a query and run the same query multiple times. Behind the scenes, QXmlQuery will reuse resources such as opened files and compiled queries to the extent possible. But it is not safe to use the same instance of QXmlQuery in multiple threads.

Error Handling

Errors can occur during query evaluation. Examples include type errors and file loading errors. When an error occurs:

Resource Management

When a query runs, it parses documents, allocating internal data structures to hold them, and it may load other resources over the network. It reuses these allocated resources when possible, to avoid having to reload and reparse them.

When setQuery() is called, the query text is compiled into an internal data structure and optimized. The optimized form can then be reused for multiple evaluations of the query. Since the compile-and-optimize process can be expensive, repeating it for the same query should be avoided by using a separate instance of QXmlQuery for each query text.

Once a document has been parsed, its internal representation is maintained in the QXmlQuery instance and shared among multiple QXmlQuery instances.

An instance of QCoreApplication must exist before QXmlQuery can be used.

Event Handling

When QXmlQuery accesses resources (e.g., calling fn:doc() to load a file, or accessing a device via a bound variable), the event loop is used, which means events will be processed. To avoid processing events when QXmlQuery accesses resources, create your QXmlQuery instance in a separate thread.


Type Documentation

QXmlQuery.QueryLanguage

Specifies whether you want QXmlQuery to interpret the input to setQuery() as an XQuery or as an XSLT stylesheet.

Constant Value Description
QXmlQuery.XQuery10 1 XQuery 1.0.
QXmlQuery.XSLT20 2 XSLT 2.0 The selector, the restricted XPath pattern found in W3C XML Schema 1.1 for uniqueness contraints. Apart from restricting the syntax, the type check stage for the expression assumes a sequence of nodes to be the focus. The field, the restricted XPath pattern found in W3C XML Schema 1.1 for uniqueness contraints. Apart from restricting the syntax, the type check stage for the expression assumes a sequence of nodes to be the focus. Signifies XPath 2.0. Has no effect in the public API, it's used internally. As With XmlSchema11IdentityConstraintSelector and XmlSchema11IdentityConstraintField, the type check stage for the expression assumes a sequence of nodes to be the focus.

This enum was introduced or modified in Qt 4.5.

See also setQuery().


Method Documentation

QXmlQuery.__init__ (self)

Constructs an invalid, empty query that cannot be used until setQuery() is called.

Note: This constructor must not be used if you intend to use this QXmlQuery to process XSL-T stylesheets. The other constructor must be used in that case.

QXmlQuery.__init__ (self, QXmlQuery other)

Constructs a QXmlQuery that is a copy of other. The new instance will share resources with the existing query to the extent possible.

QXmlQuery.__init__ (self, QXmlNamePool np)

Constructs a query that will use np as its name pool. The query cannot be evaluated until setQuery() has been called.

QXmlQuery.__init__ (self, QueryLanguage queryLanguage, QXmlNamePool pool = QXmlNamePool())

Constructs a query that will be used to run Xqueries or XSL-T stylesheets, depending on the value of queryLanguage. It will use np as its name pool.

Note: If your QXmlQuery will process XSL-T stylesheets, this constructor must be used. The default constructor can only create instances of QXmlQuery for running XQueries.

Note: The XSL-T support in this release is considered experimental. See the XSLT conformance for details.

This function was introduced in Qt 4.5.

See also queryLanguage().

QXmlQuery.bindVariable (self, QXmlName name, QXmlItem value)

Binds the variable name to the value so that $name can be used from within the query to refer to the value.

name must not be null. name.isNull() must return false. If name has already been bound by a previous bindVariable() call, its previous binding will be overridden.

If value is null so that value.isNull() returns true, and name already has a binding, the effect is to remove the existing binding for name.

To bind a value of type QString or QUrl, wrap the value in a QVariant such that QXmlItem's QVariant constructor is called.

All strings processed by the query must be valid XQuery strings, which means they must contain only XML 1.0 characters. However, this requirement is not checked. If the query processes an invalid string, the behavior is undefined.

See also QVariant.isValid(), How QVariant maps to XQuery's Data Model, and QXmlItem.isNull().

QXmlQuery.bindVariable (self, QXmlName name, QIODevice)

Binds the variable name to the device so that $name can be used from within the query to refer to the device. The QIODevice device is exposed to the query as a URI of type xs:anyURI, which can be passed to the fn:doc() function to be read. E.g., this function can be used to pass an XML document in memory to fn:doc.

     QByteArray myDocument;
     QBuffer buffer(&myDocument); // This is a QIODevice.
     buffer.open(QIODevice.ReadOnly);
     QXmlQuery query;
     query.bindVariable("myDocument", &buffer);
     query.setQuery("doc($myDocument)");

The caller must ensure that device has been opened with at least QIODevice.ReadOnly prior to this binding. Otherwise, behavior is undefined.

If the query will access an XML document contained in a QString, use a QBuffer as shown in the following snippet. Suppose myQString contains <document>content</document>

     QBuffer device;
     device.setData(myQString.toUtf8());
     device.open(QIODevice.ReadOnly);

     QXmlQuery query;
     query.bindVariable("inputDocument", &device);
     query.setQuery("doc($inputDocument)/query[theDocument]");

name must not be null. name.isNull() must return false. If name has already been bound, its previous binding will be overridden. The URI that name evaluates to is arbitrary and may change.

If the type of the variable binding changes (e.g., if a previous binding by the same name was a QVariant, or if there was no previous binding), isValid() will return false, and recompilation of the query text is required. To recompile the query, call setQuery(). For this reason, bindVariable() should be called before setQuery(), if possible.

Note: device must not be deleted while this QXmlQuery exists.

QXmlQuery.bindVariable (self, QXmlName name, QXmlQuery query)

Binds the result of the query query, to a variable by name name.

Evaluation of query will be commenced when this function is called.

If query is invalid, behavior is undefined. query will be copied.

This function was introduced in Qt 4.5.

See also isValid().

QXmlQuery.bindVariable (self, QString localName, QXmlItem value)

This is an overloaded function.

This function constructs a QXmlName from localName using the query's namespace. The function then behaves as the overloaded function. It is equivalent to the following snippet.

     QXmlNamePool namePool(query.namePool());
     query.bindVariable(QXmlName(namePool, localName), value);

QXmlQuery.bindVariable (self, QString localName, QIODevice)

This is an overloaded function.

If localName is a valid NCName, this function is equivalent to the following snippet.

     QXmlNamePool namePool(query.namePool());
     query.bindVariable(QXmlName(namePool, localName), device);

A QXmlName is constructed from localName, and is passed to the appropriate overload along with device.

See also QXmlName.isNCName().

QXmlQuery.bindVariable (self, QString localName, QXmlQuery query)

This is an overloaded function.

Has the same behavior and effects as the function being overloaded, but takes the variable name localName as a QString. query is used as in the overloaded function.

This function was introduced in Qt 4.5.

QXmlQuery.evaluateTo (self, QXmlResultItems result)

Starts the evaluation and makes it available in result. If result is null, the behavior is undefined. The evaluation takes place incrementally (lazy evaluation), as the caller uses QXmlResultItems.next() to get the next result.

See also QXmlResultItems.next().

bool QXmlQuery.evaluateTo (self, QAbstractXmlReceiver callback)

Evaluates this query and sends the result as a sequence of callbacks to the receiver callback. QXmlQuery does not take ownership of callback.

If an error occurs during the evaluation, error messages are sent to messageHandler() and false is returned.

If this query is invalid, false is returned and the behavior is undefined. If callback is null, behavior is undefined.

See also QAbstractXmlReceiver and isValid().

bool QXmlQuery.evaluateTo (self, QStringList target)

Attempts to evaluate the query and returns the results in the target string list.

If the query is valid and the evaluation succeeds, true is returned. Otherwise, false is returned and the contents of target are undefined.

The query must evaluate to a sequence of xs:string values. If the query does not evaluate to a sequence of strings, the values can often be converted by adding a call to string() at the end of the XQuery.

If target is null, the behavior is undefined.

bool QXmlQuery.evaluateTo (self, QIODevice target)

Evaluates the query, and serializes the output as XML to output.

If an error occurs during the evaluation, error messages are sent to messageHandler(), the content of output is undefined and false is returned, otherwise true is returned.

If output is null behavior is undefined. QXmlQuery does not take ownership of output.

Internally, the class QXmlFormatter is used for this.

This function was introduced in Qt 4.5.

bool QXmlQuery.evaluateTo (self, QString output)

Evaluates the query or stylesheet, and writes the output to target.

QXmlSerializer is used to write the output to target. In a future release, it is expected that this function will be changed to respect serialization options set in the stylesheet.

If an error occurs during the evaluation, error messages are sent to messageHandler() and false is returned.

If target is null, or is not opened in at least QIODevice.WriteOnly mode, the behavior is undefined. QXmlQuery does not take ownership of target.

This is an overloaded function.

This function was introduced in Qt 4.5.

QString QXmlQuery.evaluateToString (self)

QStringList QXmlQuery.evaluateToStringList (self)

QXmlName QXmlQuery.initialTemplateName (self)

Returns the name of the XSL-T stylesheet template that the processor will call first when running an XSL-T stylesheet. This function only applies when using QXmlQuery to process XSL-T stylesheets. By default, no initial template is set. In that case, a default constructed QXmlName is returned.

This function was introduced in Qt 4.5.

See also setInitialTemplateName().

bool QXmlQuery.isValid (self)

Returns true if this query is valid. Examples of invalid queries are ones that contain syntax errors or that have not had setQuery() called for them yet.

QAbstractMessageHandler QXmlQuery.messageHandler (self)

Returns the message handler that handles compile and runtime messages for this QXmlQuery.

See also setMessageHandler().

QXmlNamePool QXmlQuery.namePool (self)

Returns the name pool used by this QXmlQuery for constructing names. There is no setter for the name pool, because mixing name pools causes errors due to name confusion.

QNetworkAccessManager QXmlQuery.networkAccessManager (self)

Returns the network manager, or 0 if it has not been set.

This function was introduced in Qt 4.5.

See also setNetworkAccessManager().

QueryLanguage QXmlQuery.queryLanguage (self)

Returns a value indicating what this QXmlQuery is being used for. The default is QXmlQuery.XQuery10, which means the QXmlQuery is being used for running XQuery and XPath queries. QXmlQuery.XSLT20 can also be returned, which indicates the QXmlQuery is for running XSL-T spreadsheets.

This function was introduced in Qt 4.5.

QXmlQuery.setFocus (self, QXmlItem item)

Sets the focus to item. The focus is the set of items that the context item expression and path expressions navigate from. For example, in the expression p/span, the element that p evaluates to is the focus for the following expression, span.

The focus can be accessed using the context item expression, i.e., dot (".").

By default, the focus is not set and is undefined. It will therefore result in a dynamic error, XPDY0002, if the focus is attempted to be accessed. The focus must be set before the query is set with setQuery().

There is no behavior defined for setting an item which is null.

bool QXmlQuery.setFocus (self, QUrl documentURI)

This is an overloaded function.

Sets the focus to be the document located at documentURI and returns true. If documentURI cannot be loaded, false is returned. It is undefined at what time the document may be loaded. When loading the document, the message handler and URI resolver set on this QXmlQuery are used.

If documentURI is empty or is not a valid URI, the behavior of this function is undefined.

This function was introduced in Qt 4.5.

bool QXmlQuery.setFocus (self, QIODevice document)

Sets the focus to be the document read from the QIODevice and returns true. If document cannot be loaded, false is returned.

QXmlQuery does not take ownership of document. The user guarantees that a document is available from the document device and that the document is not empty. The device must be opened in at least read-only mode. document must stay in scope as long as the current query is active.

This is an overloaded function.

This function was introduced in Qt 4.5.

bool QXmlQuery.setFocus (self, QString focus)

This function behaves identically to calling the setFocus() overload with a QIODevice whose content is focus encoded as UTF-8. That is, focus is treated as if it contained an XML document.

Returns the same result as the overload.

This is an overloaded function.

This function was introduced in Qt 4.6.

QXmlQuery.setInitialTemplateName (self, QXmlName name)

Sets the name of the initial template. The initial template is the one the processor calls first, instead of attempting to match a template to the context node (if any). If an initial template is not set, the standard order of template invocation will be used.

This function only applies when using QXmlQuery to process XSL-T stylesheets. The name becomes part of the compiled stylesheet. Therefore, this function must be called before calling setQuery().

If the stylesheet has no template named name, the processor will use the standard order of template invocation.

This function was introduced in Qt 4.5.

See also initialTemplateName().

QXmlQuery.setInitialTemplateName (self, QString name)

This is an overloaded function.

Sets the name of the initial template to localName, which must be a valid local name. The initial template is the one the processor calls first, instead of attempting to match a template to the context node (if any). If an initial template is not set, the standard order of template invocation will be used.

This function only applies when using QXmlQuery to process XSL-T stylesheets. The name becomes part of the compiled stylesheet. Therefore, this function must be called before calling setQuery().

If localName is not a valid local name, the effect is undefined. If the stylesheet has no template named localName, the processor will use the standard order of template invocation.

This function was introduced in Qt 4.5.

See also initialTemplateName().

QXmlQuery.setMessageHandler (self, QAbstractMessageHandler messageHandler)

Changes the message handler for this QXmlQuery to aMessageHandler. The query sends all compile and runtime messages to this message handler. QXmlQuery does not take ownership of aMessageHandler.

Normally, the default message handler is sufficient. It writes compile and runtime messages to stderr. The default message handler includes color codes if stderr can render colors.

Note that changing the message handler after the query has been compiled has no effect, i.e. the query uses the same message handler at runtime that it uses at compile time.

When QXmlQuery calls QAbstractMessageHandler.message(), the arguments are as follows:

message() argument Semantics
QtMsgType type Only QtWarningMsg and QtFatalMsg are used. The former identifies a compile or runtime warning, while the latter identifies a dynamic or static error.
const QString & description An XHTML document which is the actual message. It is translated into the current language.
const QUrl &identifier Identifies the error with a URI, where the fragment is the error code, and the rest of the URI is the error namespace.
const QSourceLocation & sourceLocation Identifies where the error occurred.

See also messageHandler().

QXmlQuery.setNetworkAccessManager (self, QNetworkAccessManager newManager)

Sets the network manager to newManager. QXmlQuery does not take ownership of newManager.

This function was introduced in Qt 4.5.

See also networkAccessManager().

QXmlQuery.setQuery (self, QString sourceCode, QUrl documentUri = QUrl())

Sets this QXmlQuery to an XQuery read from the sourceCode device. The device must have been opened with at least QIODevice.ReadOnly.

documentURI represents the query obtained from the sourceCode device. It is the base URI of the static context, as defined in the XQuery language. It is used internally to resolve relative URIs that appear in the query, and for message reporting. documentURI can be empty. If it is empty, the application file path is used. If it is not empty, it may be either relative or absolute. If it is relative, it is resolved itself against the application file path before it is used. If documentURI is neither a valid URI nor empty, the result is undefined.

If the query contains a static error (e.g. syntax error), an error message is sent to the messageHandler(), and isValid() will return false.

Variables must be bound before setQuery() is called.

The encoding of the XQuery in sourceCode is detected internally using the rules for setting and detecting encoding of XQuery files, which are explained in the XQuery language.

If sourceCode is null or not readable, or if documentURI is not a valid URI, behavior is undefined.

See also isValid().

QXmlQuery.setQuery (self, QIODevice sourceCode, QUrl documentUri = QUrl())

Sets this QXmlQuery to the XQuery read from the queryURI. Use isValid() after calling this function. If an error occurred reading queryURI, e.g., the query does not exist, cannot be read, or is invalid, isValid() will return false.

The supported URI schemes are the same as those in the XQuery function fn:doc, except that queryURI can be the object of a variable binding.

baseURI is the Base URI of the static context, as defined in the XQuery language. It is used internally to resolve relative URIs that appear in the query, and for message reporting. If baseURI is empty, queryURI is used. Otherwise, baseURI is used, and it is resolved against the application file path if it is relative.

If queryURI is empty or invalid, or if baseURI is invalid, the behavior of this function is undefined.

QXmlQuery.setQuery (self, QUrl queryURI, QUrl baseUri = QUrl())

This is an overloaded function.

The behavior and requirements of this function are the same as for setQuery(QIODevice*, const QUrl&), after the XQuery has been read from the IO device into a string. Because sourceCode is already a Unicode string, detection of its encoding is unnecessary.

QXmlQuery.setUriResolver (self, QAbstractUriResolver resolver)

Sets the URI resolver to resolver. QXmlQuery does not take ownership of resolver.

See also uriResolver().

QAbstractUriResolver QXmlQuery.uriResolver (self)

Returns the query's URI resolver. If no URI resolver has been set, QtXmlPatterns will use the URIs in queries as they are.

The URI resolver provides a level of abstraction, or polymorphic URIs. A resolver can rewrite logical URIs to physical ones, or it can translate obsolete or invalid URIs to valid ones.

QtXmlPatterns calls the URI resolver for all URIs it encounters, except for namespaces. Specifically, all builtin functions that deal with URIs (fn:doc(), and fn:doc-available()).

In the case of fn:doc(), the absolute URI is the base URI in the static context (which most likely is the location of the query). Rather than use the URI the user specified, the return value of QAbstractUriResolver.resolve() will be used.

When QtXmlPatterns calls QAbstractUriResolver.resolve() the absolute URI is the URI mandated by the XQuery language, and the relative URI is the URI specified by the user.

See also setUriResolver().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlreader.html0000644000076500000240000003616412536324524020527 0ustar philstaff00000000000000 QXmlReader Class Reference
  Home · All Classes · Modules

QXmlReader Class Reference
[QtXml module]

The QXmlReader class provides an interface for XML readers (i.e. parsers). More...

Inherited by QXmlSimpleReader.

Methods


Detailed Description

The QXmlReader class provides an interface for XML readers (i.e. parsers).

This abstract class provides an interface for all of Qt's XML readers. Currently there is only one implementation of a reader included in Qt's XML module: QXmlSimpleReader. In future releases there might be more readers with different properties available (e.g. a validating parser).

The design of the XML classes follows the SAX2 Java interface, with the names adapted to fit Qt naming conventions. It should be very easy for anybody who has worked with SAX2 to get started with the Qt XML classes.

All readers use the class QXmlInputSource to read the input document. Since you are normally interested in particular content in the XML document, the reader reports the content through special handler classes (QXmlDTDHandler, QXmlDeclHandler, QXmlContentHandler, QXmlEntityResolver, QXmlErrorHandler and QXmlLexicalHandler), which you must subclass, if you want to process the contents.

Since the handler classes only describe interfaces you must implement all the functions. We provide the QXmlDefaultHandler class to make this easier: it implements a default behavior (do nothing) for all functions, so you can subclass it and just implement the functions you are interested in.

Features and properties of the reader can be set with setFeature() and setProperty() respectively. You can set the reader to use your own subclasses with setEntityResolver(), setDTDHandler(), setContentHandler(), setErrorHandler(), setLexicalHandler() and setDeclHandler(). The parse itself is started with a call to parse().


Method Documentation

QXmlReader.__init__ (self)

QXmlReader.__init__ (self, QXmlReader)

QXmlContentHandler QXmlReader.contentHandler (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the content handler or 0 if none was set.

See also setContentHandler().

QXmlDeclHandler QXmlReader.declHandler (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the declaration handler or 0 if none was set.

See also setDeclHandler().

QXmlDTDHandler QXmlReader.DTDHandler (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the DTD handler or 0 if none was set.

See also setDTDHandler().

QXmlEntityResolver QXmlReader.entityResolver (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the entity resolver or 0 if none was set.

See also setEntityResolver().

QXmlErrorHandler QXmlReader.errorHandler (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the error handler or 0 if none is set.

See also setErrorHandler().

(bool, bool ok) QXmlReader.feature (self, QString name)

This method is abstract and should be reimplemented in any sub-class.

If the reader has the feature called name, the feature's value is returned. If no such feature exists the return value is undefined.

If ok is not 0: *ok is set to true if the reader has the feature called name; otherwise *ok is set to false.

See also setFeature() and hasFeature().

bool QXmlReader.hasFeature (self, QString name)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the reader has the feature called name; otherwise returns false.

See also feature() and setFeature().

bool QXmlReader.hasProperty (self, QString name)

This method is abstract and should be reimplemented in any sub-class.

Returns true if the reader has the property name; otherwise returns false.

See also property() and setProperty().

QXmlLexicalHandler QXmlReader.lexicalHandler (self)

This method is abstract and should be reimplemented in any sub-class.

Returns the lexical handler or 0 if none was set.

See also setLexicalHandler().

bool QXmlReader.parse (self, QXmlInputSource input)

This method is abstract and should be reimplemented in any sub-class.

Reads an XML document from input and parses it. Returns true if the parsing was successful; otherwise returns false.

bool QXmlReader.parse (self, QXmlInputSource input)

This method is abstract and should be reimplemented in any sub-class.

(sip.voidptr, bool ok) QXmlReader.property (self, QString name)

This method is abstract and should be reimplemented in any sub-class.

If the reader has the property name, this function returns the value of the property; otherwise the return value is undefined.

If ok is not 0: if the reader has the name property *ok is set to true; otherwise *ok is set to false.

See also setProperty() and hasProperty().

QXmlReader.setContentHandler (self, QXmlContentHandler handler)

This method is abstract and should be reimplemented in any sub-class.

Sets the content handler to handler.

See also contentHandler().

QXmlReader.setDeclHandler (self, QXmlDeclHandler handler)

This method is abstract and should be reimplemented in any sub-class.

Sets the declaration handler to handler.

See also declHandler().

QXmlReader.setDTDHandler (self, QXmlDTDHandler handler)

This method is abstract and should be reimplemented in any sub-class.

Sets the DTD handler to handler.

See also DTDHandler().

QXmlReader.setEntityResolver (self, QXmlEntityResolver handler)

This method is abstract and should be reimplemented in any sub-class.

Sets the entity resolver to handler.

See also entityResolver().

QXmlReader.setErrorHandler (self, QXmlErrorHandler handler)

This method is abstract and should be reimplemented in any sub-class.

Sets the error handler to handler. Clears the error handler if handler is 0.

See also errorHandler().

QXmlReader.setFeature (self, QString name, bool value)

This method is abstract and should be reimplemented in any sub-class.

Sets the feature called name to the given value. If the reader doesn't have the feature nothing happens.

See also feature() and hasFeature().

QXmlReader.setLexicalHandler (self, QXmlLexicalHandler handler)

This method is abstract and should be reimplemented in any sub-class.

Sets the lexical handler to handler.

See also lexicalHandler().

QXmlReader.setProperty (self, QString name, sip.voidptr value)

This method is abstract and should be reimplemented in any sub-class.

Sets the property name to value. If the reader doesn't have the property nothing happens.

See also property() and hasProperty().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlresultitems.html0000644000076500000240000001434412536324524021641 0ustar philstaff00000000000000 QXmlResultItems Class Reference
  Home · All Classes · Modules

QXmlResultItems Class Reference
[QtXmlPatterns module]

The QXmlResultItems class iterates through the results of evaluating an XQuery in QXmlQuery. More...

Methods


Detailed Description

The QXmlResultItems class iterates through the results of evaluating an XQuery in QXmlQuery.

QXmlResultItems presents the evaluation of an associated query as a sequence of QXmlItems. The sequence is traversed by repeatedly calling next(), which actually produces the sequence by lazy evaluation of the query.

 QXmlQuery query;
 query.setQuery("<e/>, 1, 'two'");
 QXmlResultItems result;

 if (query.isValid()) {
     query.evaluateTo(&result);
     QXmlItem item(result.next());
     while (!item.isNull()) {
         // use item
         item = result.next();
     }
     if (result.hasError())
         /* Runtime error! */;
 }

An effect of letting next() produce the sequence by lazy evaluation is that a query error can occur on any call to next(). If an error occurs, both next() and current() will return the null QXmlItem, and hasError() will return true.

QXmlResultItems can be thought of as an "iterator" that traverses the sequence of query results once, in the forward direction. Each call to next() advances the iterator to the next QXmlItem in the sequence and returns it, and current() always returns the QXmlItem that next() returned the last time it was called.

Note: When using the QXmlResultItems overload of QXmlQuery.evaluateTo() to execute a query, it is advisable to create a new instance of this class for each new set of results rather than reusing an old instance.


Method Documentation

QXmlResultItems.__init__ (self)

Constructs an instance of QXmlResultItems.

QXmlItem QXmlResultItems.current (self)

Returns the current item. The current item is the last item that was produced and returned by next().

Returns a null QXmlItem if there is no associated QXmlQuery.

bool QXmlResultItems.hasError (self)

If an error occurred during evaluation of the query, true is returned.

Returns false if query evaluation has been done.

QXmlItem QXmlResultItems.next (self)

Returns the next result in the sequence produced by lazy evaluation of the associated query. When the returned QXmlItem is null, either the evaluation terminated normally without producing another result, or an error occurred. Call hasError() to determine whether the null item was caused by normal termination or by an error.

Returns a null QXmlItem if there is no associated QXmlQuery.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlschema.html0000644000076500000240000003710212536324524020516 0ustar philstaff00000000000000 QXmlSchema Class Reference
  Home · All Classes · Modules

QXmlSchema Class Reference
[QtXmlPatterns module]

The QXmlSchema class provides loading and validation of a W3C XML Schema. More...

Methods


Detailed Description

The QXmlSchema class provides loading and validation of a W3C XML Schema.

The QXmlSchema class loads, compiles and validates W3C XML Schema files that can be used further for validation of XML instance documents via QXmlSchemaValidator.

The following example shows how to load a XML Schema file from the network and test whether it is a valid schema document:

     QUrl url("http://www.schema-example.org/myschema.xsd");

     QXmlSchema schema;
     if (schema.load(url) == true)
         qDebug() << "schema is valid";
     else
         qDebug() << "schema is invalid";

XML Schema Version

This class is used to represent schemas that conform to the XML Schema 1.0 specification.


Method Documentation

QXmlSchema.__init__ (self)

Constructs an invalid, empty schema that cannot be used until load() is called.

QUrl QXmlSchema.documentUri (self)

Returns the document URI of the schema or an empty URI if no schema has been set.

bool QXmlSchema.isValid (self)

Returns true if this schema is valid. Examples of invalid schemas are ones that contain syntax errors or that do not conform the W3C XML Schema specification.

bool QXmlSchema.load (self, QUrl source)

Sets this QXmlSchema to a schema loaded from the source URI.

If the schema is invalid, false is returned and the behavior is undefined.

Example:

     QUrl url("http://www.schema-example.org/myschema.xsd");

     QXmlSchema schema;
     if (schema.load(url) == true)
         qDebug() << "schema is valid";
     else
         qDebug() << "schema is invalid";

See also isValid().

bool QXmlSchema.load (self, QIODevice source, QUrl documentUri = QUrl())

Sets this QXmlSchema to a schema read from the source device. The device must have been opened with at least QIODevice.ReadOnly.

documentUri represents the schema obtained from the source device. It is the base URI of the schema, that is used internally to resolve relative URIs that appear in the schema, and for message reporting.

If source is null or not readable, or if documentUri is not a valid URI, behavior is undefined.

If the schema is invalid, false is returned and the behavior is undefined.

Example:

     QFile file("myschema.xsd");
     file.open(QIODevice.ReadOnly);

     QXmlSchema schema;
     schema.load(&file, QUrl.fromLocalFile(file.fileName()));

     if (schema.isValid())
         qDebug() << "schema is valid";
     else
         qDebug() << "schema is invalid";

See also isValid().

bool QXmlSchema.load (self, QByteArray data, QUrl documentUri = QUrl())

Sets this QXmlSchema to a schema read from the data

documentUri represents the schema obtained from the data. It is the base URI of the schema, that is used internally to resolve relative URIs that appear in the schema, and for message reporting.

If documentUri is not a valid URI, behavior is undefined.

If the schema is invalid, false is returned and the behavior is undefined.

Example:

     QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                      "<xsd:schema"
                      "        xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
                      "        xmlns=\"http://qt.nokia.com/xmlschematest\""
                      "        targetNamespace=\"http://qt.nokia.com/xmlschematest\""
                      "        version=\"1.0\""
                      "        elementFormDefault=\"qualified\">"
                      "</xsd:schema>" );

     QXmlSchema schema;
     schema.load(data);

     if (schema.isValid())
         qDebug() << "schema is valid";
     else
         qDebug() << "schema is invalid";

See also isValid() and isValid().

QAbstractMessageHandler QXmlSchema.messageHandler (self)

Returns the message handler that handles compile and validation messages for this QXmlSchema.

See also setMessageHandler().

QXmlNamePool QXmlSchema.namePool (self)

Returns the name pool used by this QXmlSchema for constructing names. There is no setter for the name pool, because mixing name pools causes errors due to name confusion.

QNetworkAccessManager QXmlSchema.networkAccessManager (self)

Returns the network manager, or 0 if it has not been set.

See also setNetworkAccessManager().

QXmlSchema.setMessageHandler (self, QAbstractMessageHandler handler)

Changes the message handler for this QXmlSchema to handler. The schema sends all compile and validation messages to this message handler. QXmlSchema does not take ownership of handler.

Normally, the default message handler is sufficient. It writes compile and validation messages to stderr. The default message handler includes color codes if stderr can render colors.

When QXmlSchema calls QAbstractMessageHandler.message(), the arguments are as follows:

message() argument Semantics
QtMsgType type Only QtWarningMsg and QtFatalMsg are used. The former identifies a warning, while the latter identifies an error.
const QString & description An XHTML document which is the actual message. It is translated into the current language.
const QUrl &identifier Identifies the error with a URI, where the fragment is the error code, and the rest of the URI is the error namespace.
const QSourceLocation & sourceLocation Identifies where the error occurred.

See also messageHandler().

QXmlSchema.setNetworkAccessManager (self, QNetworkAccessManager networkmanager)

Sets the network manager to manager. QXmlSchema does not take ownership of manager.

See also networkAccessManager().

QXmlSchema.setUriResolver (self, QAbstractUriResolver resolver)

Sets the URI resolver to resolver. QXmlSchema does not take ownership of resolver.

See also uriResolver().

QAbstractUriResolver QXmlSchema.uriResolver (self)

Returns the schema's URI resolver. If no URI resolver has been set, QtXmlPatterns will use the URIs in schemas as they are.

The URI resolver provides a level of abstraction, or polymorphic URIs. A resolver can rewrite logical URIs to physical ones, or it can translate obsolete or invalid URIs to valid ones.

When QtXmlPatterns calls QAbstractUriResolver.resolve() the absolute URI is the URI mandated by the schema specification, and the relative URI is the URI specified by the user.

See also setUriResolver().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlschemavalidator.html0000644000076500000240000004201612536324524022424 0ustar philstaff00000000000000 QXmlSchemaValidator Class Reference
  Home · All Classes · Modules

QXmlSchemaValidator Class Reference
[QtXmlPatterns module]

The QXmlSchemaValidator class validates XML instance documents against a W3C XML Schema. More...

Methods


Detailed Description

The QXmlSchemaValidator class validates XML instance documents against a W3C XML Schema.

The QXmlSchemaValidator class loads, parses an XML instance document and validates it against a W3C XML Schema that has been compiled with QXmlSchema.

The following example shows how to load a XML Schema from a local file, check whether it is a valid schema document and use it for validation of an XML instance document:

     QUrl schemaUrl("file:///home/user/schema.xsd");

     QXmlSchema schema;
     schema.load(schemaUrl);

     if (schema.isValid()) {
         QFile file("test.xml");
         file.open(QIODevice.ReadOnly);

         QXmlSchemaValidator validator(schema);
         if (validator.validate(&file, QUrl.fromLocalFile(file.fileName())))
             qDebug() << "instance document is valid";
         else
             qDebug() << "instance document is invalid";
     }

XML Schema Version

This class implements schema validation according to the XML Schema 1.0 specification.


Method Documentation

QXmlSchemaValidator.__init__ (self)

Constructs a schema validator. The schema used for validation must be referenced in the XML instance document via the xsi:schemaLocation or xsi:noNamespaceSchemaLocation attribute.

QXmlSchemaValidator.__init__ (self, QXmlSchema schema)

Constructs a schema validator that will use schema for validation. If an empty QXmlSchema schema is passed to the validator, the schema used for validation must be referenced in the XML instance document via the xsi:schemaLocation or xsi:noNamespaceSchemaLocation attribute.

QAbstractMessageHandler QXmlSchemaValidator.messageHandler (self)

Returns the message handler that handles parsing and validation messages for this QXmlSchemaValidator.

See also setMessageHandler().

QXmlNamePool QXmlSchemaValidator.namePool (self)

Returns the name pool used by this QXmlSchemaValidator for constructing names. There is no setter for the name pool, because mixing name pools causes errors due to name confusion.

QNetworkAccessManager QXmlSchemaValidator.networkAccessManager (self)

Returns the network manager, or 0 if it has not been set.

See also setNetworkAccessManager().

QXmlSchema QXmlSchemaValidator.schema (self)

Returns the schema that is used for validation.

See also setSchema().

QXmlSchemaValidator.setMessageHandler (self, QAbstractMessageHandler handler)

Changes the message handler for this QXmlSchemaValidator to handler. The schema validator sends all parsing and validation messages to this message handler. QXmlSchemaValidator does not take ownership of handler.

Normally, the default message handler is sufficient. It writes compile and validation messages to stderr. The default message handler includes color codes if stderr can render colors.

When QXmlSchemaValidator calls QAbstractMessageHandler.message(), the arguments are as follows:

message() argument Semantics
QtMsgType type Only QtWarningMsg and QtFatalMsg are used. The former identifies a warning, while the latter identifies an error.
const QString & description An XHTML document which is the actual message. It is translated into the current language.
const QUrl &identifier Identifies the error with a URI, where the fragment is the error code, and the rest of the URI is the error namespace.
const QSourceLocation & sourceLocation Identifies where the error occurred.

See also messageHandler().

QXmlSchemaValidator.setNetworkAccessManager (self, QNetworkAccessManager networkmanager)

Sets the network manager to manager. QXmlSchemaValidator does not take ownership of manager.

See also networkAccessManager().

QXmlSchemaValidator.setSchema (self, QXmlSchema schema)

Sets the schema that shall be used for further validation. If the schema is empty, the schema used for validation must be referenced in the XML instance document via the xsi:schemaLocation or xsi:noNamespaceSchemaLocation attribute.

See also schema().

QXmlSchemaValidator.setUriResolver (self, QAbstractUriResolver resolver)

Sets the URI resolver to resolver. QXmlSchemaValidator does not take ownership of resolver.

See also uriResolver().

QAbstractUriResolver QXmlSchemaValidator.uriResolver (self)

Returns the schema's URI resolver. If no URI resolver has been set, QtXmlPatterns will use the URIs in instance documents as they are.

The URI resolver provides a level of abstraction, or polymorphic URIs. A resolver can rewrite logical URIs to physical ones, or it can translate obsolete or invalid URIs to valid ones.

When QtXmlPatterns calls QAbstractUriResolver.resolve() the absolute URI is the URI mandated by the schema specification, and the relative URI is the URI specified by the user.

See also setUriResolver().

bool QXmlSchemaValidator.validate (self, QUrl source)

Validates the XML instance document read from source against the schema.

Returns true if the XML instance document is valid according to the schema, false otherwise.

Example:

     const QXmlSchema schema = getSchema();

     const QUrl url("http://www.schema-example.org/test.xml");

     QXmlSchemaValidator validator(schema);
     if (validator.validate(url))
         qDebug() << "instance document is valid";
     else
         qDebug() << "instance document is invalid";

bool QXmlSchemaValidator.validate (self, QIODevice source, QUrl documentUri = QUrl())

Validates the XML instance document read from source with the given documentUri against the schema.

Returns true if the XML instance document is valid according to the schema, false otherwise.

Example:

     const QXmlSchema schema = getSchema();

     QFile file("test.xml");
     file.open(QIODevice.ReadOnly);

     QXmlSchemaValidator validator(schema);
     if (validator.validate(&file, QUrl.fromLocalFile(file.fileName())))
         qDebug() << "instance document is valid";
     else
         qDebug() << "instance document is invalid";

bool QXmlSchemaValidator.validate (self, QByteArray data, QUrl documentUri = QUrl())

Validates the XML instance document read from data with the given documentUri against the schema.

Returns true if the XML instance document is valid according to the schema, false otherwise.

Example:

     const QXmlSchema schema = getSchema();

     QByteArray data("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                     "<test></test>");

     QBuffer buffer(&data);
     buffer.open(QIODevice.ReadOnly);

     QXmlSchemaValidator validator(schema);
     if (validator.validate(&buffer))
         qDebug() << "instance document is valid";
     else
         qDebug() << "instance document is invalid";

PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlserializer.html0000644000076500000240000002527412536324524021436 0ustar philstaff00000000000000 QXmlSerializer Class Reference
  Home · All Classes · Modules

QXmlSerializer Class Reference
[QtXmlPatterns module]

The QXmlSerializer class is an implementation of QAbstractXmlReceiver for transforming XQuery output into unformatted XML. More...

Inherits QAbstractXmlReceiver.

Inherited by QXmlFormatter.

Methods


Detailed Description

The QXmlSerializer class is an implementation of QAbstractXmlReceiver for transforming XQuery output into unformatted XML.

QXmlSerializer translates an XQuery sequence, usually the output of an QXmlQuery, into XML. Consider the example:

 QXmlQuery query;
 query.setQuery("doc('index.html')/html/body/p[1]");

 QXmlSerializer serializer(query, myOutputDevice);
 query.evaluateTo(&serializer);

First it constructs a query that gets the first paragraph from document index.html. Then it constructs an instance of this class with the query and myOutputDevice. Finally, it evaluates the query, producing an ordered sequence of calls to the serializer's callback functions. The sequence of callbacks transforms the query output to XML and writes it to myOutputDevice.

QXmlSerializer will:

  • Declare namespaces when needed,
  • Use appropriate escaping, when characters can't be represented in the XML,
  • Handle line endings appropriately,
  • Report errors, when it can't serialize the content, e.g., when asked to serialize an attribute that is a top-level node, or when more than one top-level element is encountered.

If an error occurs during serialization, result is undefined unless the serializer is driven through a call to QXmlQuery.evaluateTo().

If the generated XML should be indented and formatted for reading, use QXmlFormatter.


Method Documentation

QXmlSerializer.__init__ (self, QXmlQuery query, QIODevice outputDevice)

Constructs a serializer that uses the name pool and message handler in query, and writes the output to outputDevice.

outputDevice must be a valid, non-null device that is open in write mode, otherwise behavior is undefined.

outputDevice must not be opened with QIODevice.Text because it will cause the output to be incorrect. This class will ensure line endings are serialized as according with the XML specification. QXmlSerializer does not take ownership of outputDevice.

QXmlSerializer.atomicValue (self, QVariant value)

Reimplemented from QAbstractXmlReceiver.atomicValue().

QXmlSerializer.attribute (self, QXmlName name, QStringRef value)

Reimplemented from QAbstractXmlReceiver.attribute().

QXmlSerializer.characters (self, QStringRef value)

Reimplemented from QAbstractXmlReceiver.characters().

QTextCodec QXmlSerializer.codec (self)

Returns the codec being used by the serializer for encoding its XML output.

See also setCodec().

QXmlSerializer.comment (self, QString value)

Reimplemented from QAbstractXmlReceiver.comment().

QXmlSerializer.endDocument (self)

Reimplemented from QAbstractXmlReceiver.endDocument().

QXmlSerializer.endElement (self)

Reimplemented from QAbstractXmlReceiver.endElement().

QXmlSerializer.endOfSequence (self)

Reimplemented from QAbstractXmlReceiver.endOfSequence().

QXmlSerializer.namespaceBinding (self, QXmlName nb)

Reimplemented from QAbstractXmlReceiver.namespaceBinding().

QIODevice QXmlSerializer.outputDevice (self)

Returns a pointer to the output device. There is no corresponding function to set the output device, because the output device must be passed to the constructor. The serializer does not take ownership of its IO device.

QXmlSerializer.processingInstruction (self, QXmlName name, QString value)

Reimplemented from QAbstractXmlReceiver.processingInstruction().

QXmlSerializer.setCodec (self, QTextCodec codec)

Sets the codec the serializer will use for encoding its XML output. The output codec is set to outputCodec. By default, the output codec is set to the one for UTF-8. The serializer does not take ownership of the codec.

See also codec().

QXmlSerializer.startDocument (self)

Reimplemented from QAbstractXmlReceiver.startDocument().

QXmlSerializer.startElement (self, QXmlName name)

Reimplemented from QAbstractXmlReceiver.startElement().

QXmlSerializer.startOfSequence (self)

Reimplemented from QAbstractXmlReceiver.startOfSequence().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlsimplereader.html0000644000076500000240000004434012536324524021734 0ustar philstaff00000000000000 QXmlSimpleReader Class Reference
  Home · All Classes · Modules

QXmlSimpleReader Class Reference
[QtXml module]

The QXmlSimpleReader class provides an implementation of a simple XML parser. More...

Inherits QXmlReader.

Methods


Detailed Description

The QXmlSimpleReader class provides an implementation of a simple XML parser.

This XML reader is suitable for a wide range of applications. It is able to parse well-formed XML and can report the namespaces of elements to a content handler; however, it does not parse any external entities. For historical reasons, Attribute Value Normalization and End-of-Line Handling as described in the XML 1.0 specification is not performed.

The easiest pattern of use for this class is to create a reader instance, define an input source, specify the handlers to be used by the reader, and parse the data.

For example, we could use a QFile to supply the input. Here, we create a reader, and define an input source to be used by the reader:

     QXmlSimpleReader xmlReader;
     QXmlInputSource *source = new QXmlInputSource(file);

A handler lets us perform actions when the reader encounters certain types of content, or if errors in the input are found. The reader must be told which handler to use for each type of event. For many common applications, we can create a custom handler by subclassing QXmlDefaultHandler, and use this to handle both error and content events:

     Handler *handler = new Handler;
     xmlReader.setContentHandler(handler);
     xmlReader.setErrorHandler(handler);

If you don't set at least the content and error handlers, the parser will fall back on its default behavior---and will do nothing.

The most convenient way to handle the input is to read it in a single pass using the parse() function with an argument that specifies the input source:

     bool ok = xmlReader.parse(source);

     if (!ok)
         std.cout << "Parsing failed." << std.endl;

If you can't parse the entire input in one go (for example, it is huge, or is being delivered over a network connection), data can be fed to the parser in pieces. This is achieved by telling parse() to work incrementally, and making subsequent calls to the parseContinue() function, until all the data has been processed.

A common way to perform incremental parsing is to connect the readyRead() signal of a network reply a slot, and handle the incoming data there. See QNetworkAccessManager.

Aspects of the parsing behavior can be adapted using setFeature() and setProperty().

 xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true);

QXmlSimpleReader is not reentrant. If you want to use the class in threaded code, lock the code using QXmlSimpleReader with a locking mechanism, such as a QMutex.


Method Documentation

QXmlSimpleReader.__init__ (self)

Constructs a simple XML reader.

QXmlContentHandler QXmlSimpleReader.contentHandler (self)

Reimplemented from QXmlReader.contentHandler().

See also setContentHandler().

QXmlDeclHandler QXmlSimpleReader.declHandler (self)

Reimplemented from QXmlReader.declHandler().

See also setDeclHandler().

QXmlDTDHandler QXmlSimpleReader.DTDHandler (self)

Reimplemented from QXmlReader.DTDHandler().

See also setDTDHandler().

QXmlEntityResolver QXmlSimpleReader.entityResolver (self)

Reimplemented from QXmlReader.entityResolver().

See also setEntityResolver().

QXmlErrorHandler QXmlSimpleReader.errorHandler (self)

Reimplemented from QXmlReader.errorHandler().

See also setErrorHandler().

(bool, bool ok) QXmlSimpleReader.feature (self, QString name)

Reimplemented from QXmlReader.feature().

See also setFeature().

bool QXmlSimpleReader.hasFeature (self, QString name)

Reimplemented from QXmlReader.hasFeature().

bool QXmlSimpleReader.hasProperty (self, QString name)

Reimplemented from QXmlReader.hasProperty().

QXmlLexicalHandler QXmlSimpleReader.lexicalHandler (self)

Reimplemented from QXmlReader.lexicalHandler().

See also setLexicalHandler().

bool QXmlSimpleReader.parse (self, QXmlInputSource input)

Reimplemented from QXmlReader.parse().

bool QXmlSimpleReader.parse (self, QXmlInputSource input, bool incremental)

Reimplemented from QXmlReader.parse().

Reads an XML document from input and parses it in one pass (non-incrementally). Returns true if the parsing was successful; otherwise returns false.

bool QXmlSimpleReader.parseContinue (self)

Continues incremental parsing, taking input from the QXmlInputSource that was specified with the most recent call to parse(). To use this function, you must have called parse() with the incremental argument set to true.

Returns false if a parsing error occurs; otherwise returns true, even if the end of the XML file has not been reached. You can continue parsing at a later stage by calling this function again when there is more data available to parse.

Calling this function when there is no data available in the input source indicates to the reader that the end of the XML file has been reached. If the input supplied up to this point was not well-formed then a parsing error occurs, and false is returned. If the input supplied was well-formed, true is returned. It is important to end the input in this way because it allows you to reuse the reader to parse other XML files.

Calling this function after the end of file has been reached, but without available data will cause false to be returned whether the previous input was well-formed or not.

See also parse(), QXmlInputSource.data(), and QXmlInputSource.next().

(sip.voidptr, bool ok) QXmlSimpleReader.property (self, QString name)

Reimplemented from QXmlReader.property().

See also setProperty().

QXmlSimpleReader.setContentHandler (self, QXmlContentHandler handler)

Reimplemented from QXmlReader.setContentHandler().

See also contentHandler().

QXmlSimpleReader.setDeclHandler (self, QXmlDeclHandler handler)

Reimplemented from QXmlReader.setDeclHandler().

See also declHandler().

QXmlSimpleReader.setDTDHandler (self, QXmlDTDHandler handler)

Reimplemented from QXmlReader.setDTDHandler().

QXmlSimpleReader.setEntityResolver (self, QXmlEntityResolver handler)

Reimplemented from QXmlReader.setEntityResolver().

See also entityResolver().

QXmlSimpleReader.setErrorHandler (self, QXmlErrorHandler handler)

Reimplemented from QXmlReader.setErrorHandler().

See also errorHandler().

QXmlSimpleReader.setFeature (self, QString name, bool value)

Reimplemented from QXmlReader.setFeature().

Turns on the feature name if enable is true; otherwise turns it off.

The name parameter must be one of the following strings:

Feature Default Notes
http://xml.org/sax/features/namespaces true If enabled, namespaces are reported to the content handler.
http://xml.org/sax/features/namespace-prefixes false If enabled, the original prefixed names and attributes used for namespace declarations are reported.
http://trolltech.com/xml/features/report-whitespace-only-CharData true If enabled, CharData that consist of only whitespace characters are reported using QXmlContentHandler.characters(). If disabled, whitespace is silently discarded.
http://trolltech.com/xml/features/report-start-end-entity false If enabled, the parser reports QXmlContentHandler.startEntity() and QXmlContentHandler.endEntity() events, so character data might be reported in chunks. If disabled, the parser does not report these events, but silently substitutes the entities, and reports the character data in one chunk.

See also feature(), hasFeature(), and SAX2 Features.

QXmlSimpleReader.setLexicalHandler (self, QXmlLexicalHandler handler)

Reimplemented from QXmlReader.setLexicalHandler().

See also lexicalHandler().

QXmlSimpleReader.setProperty (self, QString name, sip.voidptr value)

Reimplemented from QXmlReader.setProperty().

See also property().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlstreamattribute.html0000644000076500000240000001546612536324476022514 0ustar philstaff00000000000000 QXmlStreamAttribute Class Reference
  Home · All Classes · Modules

QXmlStreamAttribute Class Reference
[QtCore module]

The QXmlStreamAttribute class represents a single XML attribute More...

Methods

Special Methods

  • bool __eq__ (self, QXmlStreamAttribute other)
  • bool __ne__ (self, QXmlStreamAttribute other)

Detailed Description

The QXmlStreamAttribute class represents a single XML attribute

An attribute consists of an optionally empty namespaceUri(), a name(), a value(), and an isDefault() attribute.

The raw XML attribute name is returned as qualifiedName().


Method Documentation

QXmlStreamAttribute.__init__ (self)

Creates an empty attribute.

QXmlStreamAttribute.__init__ (self, QString qualifiedName, QString value)

Constructs an attribute with qualified name qualifiedName and value value.

QXmlStreamAttribute.__init__ (self, QString namespaceUri, QString name, QString value)

Constructs an attribute in the namespace described with namespaceUri with name and value value.

QXmlStreamAttribute.__init__ (self, QXmlStreamAttribute)

Creates a copy of other.

bool QXmlStreamAttribute.isDefault (self)

Returns true if the parser added this attribute with a default value following an ATTLIST declaration in the DTD; otherwise returns false.

QStringRef QXmlStreamAttribute.name (self)

Returns the attribute's local name.

QStringRef QXmlStreamAttribute.namespaceUri (self)

Returns the attribute's resolved namespaceUri, or an empty string reference if the attribute does not have a defined namespace.

QStringRef QXmlStreamAttribute.prefix (self)

Returns the attribute's namespace prefix.

This function was introduced in Qt 4.4.

See also name() and qualifiedName().

QStringRef QXmlStreamAttribute.qualifiedName (self)

Returns the attribute's qualified name.

A qualified name is the raw name of an attribute in the XML data. It consists of the namespace prefix(), followed by colon, followed by the attribute's local name(). Since the namespace prefix is not unique (the same prefix can point to different namespaces and different prefixes can point to the same namespace), you shouldn't use qualifiedName(), but the resolved namespaceUri() and the attribute's local name().

QStringRef QXmlStreamAttribute.value (self)

Returns the attribute's value.

bool QXmlStreamAttribute.__eq__ (self, QXmlStreamAttribute other)

bool QXmlStreamAttribute.__ne__ (self, QXmlStreamAttribute other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlstreamattributes.html0000644000076500000240000003667712536324476022706 0ustar philstaff00000000000000 QXmlStreamAttributes Class Reference
  Home · All Classes · Modules

QXmlStreamAttributes Class Reference
[QtCore module]

The QXmlStreamAttributes class represents a vector of QXmlStreamAttribute. More...

Methods

  • __init__ (self)
  • __init__ (self, QXmlStreamAttributes)
  • append (self, QString namespaceUri, QString name, QString value)
  • append (self, QString qualifiedName, QString value)
  • append (self, QXmlStreamAttribute attribute)
  • QXmlStreamAttribute at (self, int i)
  • clear (self)
  • bool contains (self, QXmlStreamAttribute value)
  • int count (self, QXmlStreamAttribute value)
  • int count (self)
  • sip.voidptr data (self)
  • fill (self, QXmlStreamAttribute value, int size = -1)
  • QXmlStreamAttribute first (self)
  • bool hasAttribute (self, QString qualifiedName)
  • bool hasAttribute (self, QString namespaceUri, QString name)
  • int indexOf (self, QXmlStreamAttribute value, int from = 0)
  • insert (self, int i, QXmlStreamAttribute value)
  • bool isEmpty (self)
  • QXmlStreamAttribute last (self)
  • int lastIndexOf (self, QXmlStreamAttribute value, int from = -1)
  • prepend (self, QXmlStreamAttribute value)
  • remove (self, int i)
  • remove (self, int i, int count)
  • replace (self, int i, QXmlStreamAttribute value)
  • int size (self)
  • QStringRef value (self, QString namespaceUri, QString name)
  • QStringRef value (self, QString qualifiedName)

Special Methods


Detailed Description

The QXmlStreamAttributes class represents a vector of QXmlStreamAttribute.

Attributes are returned by a QXmlStreamReader in attributes() when the reader reports a start element. The class can also be used with a QXmlStreamWriter as an argument to writeAttributes().

The convenience function value() loops over the vector and returns an attribute value for a given namespaceUri and an attribute's name.

New attributes can be added with append().


Method Documentation

QXmlStreamAttributes.__init__ (self)

QXmlStreamAttributes.__init__ (self, QXmlStreamAttributes)

QXmlStreamAttributes.append (self, QString namespaceUri, QString name, QString value)

Appends a new attribute with name in the namespace described with namespaceUri, and value value. The namespaceUri can be empty.

QXmlStreamAttributes.append (self, QString qualifiedName, QString value)

Appends the given attribute to the end of the vector.

See also QVector.append().

QXmlStreamAttributes.append (self, QXmlStreamAttribute attribute)

This is an overloaded function.

Appends a new attribute with qualified name qualifiedName and value value.

QXmlStreamAttribute QXmlStreamAttributes.at (self, int i)

QXmlStreamAttributes.clear (self)

bool QXmlStreamAttributes.contains (self, QXmlStreamAttribute value)

int QXmlStreamAttributes.count (self, QXmlStreamAttribute value)

int QXmlStreamAttributes.count (self)

sip.voidptr QXmlStreamAttributes.data (self)

QXmlStreamAttributes.fill (self, QXmlStreamAttribute value, int size = -1)

QXmlStreamAttribute QXmlStreamAttributes.first (self)

bool QXmlStreamAttributes.hasAttribute (self, QString qualifiedName)

Returns true if this QXmlStreamAttributes has an attribute whose qualified name is qualifiedName; otherwise returns false.

Note that this is not namespace aware. For instance, if this QXmlStreamAttributes contains an attribute whose lexical name is "xlink:href" this doesn't tell that an attribute named href in the XLink namespace is present, since the xlink prefix can be bound to any namespace. Use the overload that takes a namespace URI and a local name as parameter, for namespace aware code.

This function was introduced in Qt 4.5.

bool QXmlStreamAttributes.hasAttribute (self, QString namespaceUri, QString name)

This is an overloaded function.

This function was introduced in Qt 4.5.

int QXmlStreamAttributes.indexOf (self, QXmlStreamAttribute value, int from = 0)

QXmlStreamAttributes.insert (self, int i, QXmlStreamAttribute value)

bool QXmlStreamAttributes.isEmpty (self)

QXmlStreamAttribute QXmlStreamAttributes.last (self)

int QXmlStreamAttributes.lastIndexOf (self, QXmlStreamAttribute value, int from = -1)

QXmlStreamAttributes.prepend (self, QXmlStreamAttribute value)

QXmlStreamAttributes.remove (self, int i)

QXmlStreamAttributes.remove (self, int i, int count)

QXmlStreamAttributes.replace (self, int i, QXmlStreamAttribute value)

int QXmlStreamAttributes.size (self)

QStringRef QXmlStreamAttributes.value (self, QString namespaceUri, QString name)

Returns the value of the attribute name in the namespace described with namespaceUri, or an empty string reference if the attribute is not defined. The namespaceUri can be empty.

QStringRef QXmlStreamAttributes.value (self, QString qualifiedName)

This is an overloaded function.

Returns the value of the attribute name in the namespace described with namespaceUri, or an empty string reference if the attribute is not defined. The namespaceUri can be empty.

int QXmlStreamAttributes.__contains__ (self, QXmlStreamAttribute value)

QXmlStreamAttributes.__delitem__ (self, int i)

QXmlStreamAttributes.__delitem__ (self, slice slice)

bool QXmlStreamAttributes.__eq__ (self, QXmlStreamAttributes other)

QXmlStreamAttribute QXmlStreamAttributes.__getitem__ (self, int i)

QXmlStreamAttributes QXmlStreamAttributes.__getitem__ (self, slice slice)

QXmlStreamAttributes QXmlStreamAttributes.__iadd__ (self, QXmlStreamAttributes other)

QXmlStreamAttributes QXmlStreamAttributes.__iadd__ (self, QXmlStreamAttribute value)

QXmlStreamAttributes.__len__ (self)

bool QXmlStreamAttributes.__ne__ (self, QXmlStreamAttributes other)

QXmlStreamAttributes.__setitem__ (self, int i, QXmlStreamAttribute value)

QXmlStreamAttributes.__setitem__ (self, slice slice, QXmlStreamAttributes list)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlstreamentitydeclaration.html0000644000076500000240000001155612536324476024227 0ustar philstaff00000000000000 QXmlStreamEntityDeclaration Class Reference
  Home · All Classes · Modules

QXmlStreamEntityDeclaration Class Reference
[QtCore module]

The QXmlStreamEntityDeclaration class represents a DTD entity declaration. More...

Methods

Special Methods

  • bool __eq__ (self, QXmlStreamEntityDeclaration other)
  • bool __ne__ (self, QXmlStreamEntityDeclaration other)

Detailed Description

The QXmlStreamEntityDeclaration class represents a DTD entity declaration.

An entity declaration consists of a name(), a notationName(), a systemId(), a publicId(), and a value().


Method Documentation

QXmlStreamEntityDeclaration.__init__ (self)

Creates an empty entity declaration.

QXmlStreamEntityDeclaration.__init__ (self, QXmlStreamEntityDeclaration)

Creates a copy of other.

QStringRef QXmlStreamEntityDeclaration.name (self)

Returns the entity name.

QStringRef QXmlStreamEntityDeclaration.notationName (self)

Returns the notation name.

QStringRef QXmlStreamEntityDeclaration.publicId (self)

Returns the public identifier.

QStringRef QXmlStreamEntityDeclaration.systemId (self)

Returns the system identifier.

QStringRef QXmlStreamEntityDeclaration.value (self)

Returns the entity's value.

bool QXmlStreamEntityDeclaration.__eq__ (self, QXmlStreamEntityDeclaration other)

bool QXmlStreamEntityDeclaration.__ne__ (self, QXmlStreamEntityDeclaration other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlstreamentityresolver.html0000644000076500000240000000601712536324476023577 0ustar philstaff00000000000000 QXmlStreamEntityResolver Class Reference
  Home · All Classes · Modules

QXmlStreamEntityResolver Class Reference
[QtCore module]

The QXmlStreamEntityResolver class provides an entity resolver for a QXmlStreamReader. More...

Methods


Detailed Description

The QXmlStreamEntityResolver class provides an entity resolver for a QXmlStreamReader.


Method Documentation

QXmlStreamEntityResolver.__init__ (self)

QXmlStreamEntityResolver.__init__ (self, QXmlStreamEntityResolver)

QString QXmlStreamEntityResolver.resolveUndeclaredEntity (self, QString name)

Resolves the undeclared entity name and returns its replacement text. If the entity is also unknown to the entity resolver, it returns an empty string.

The default implementation always returns an empty string.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlstreamnamespacedeclaration.html0000644000076500000240000001077512536324476024651 0ustar philstaff00000000000000 QXmlStreamNamespaceDeclaration Class Reference
  Home · All Classes · Modules

QXmlStreamNamespaceDeclaration Class Reference
[
QtCore module]

The QXmlStreamNamespaceDeclaration class represents a namespace declaration. More...

Methods

Special Methods

  • bool __eq__ (self, QXmlStreamNamespaceDeclaration other)
  • bool __ne__ (self, QXmlStreamNamespaceDeclaration other)

Detailed Description

The QXmlStreamNamespaceDeclaration class represents a namespace declaration.

An namespace declaration consists of a prefix() and a namespaceUri().


Method Documentation

QXmlStreamNamespaceDeclaration.__init__ (self)

Creates an empty namespace declaration.

QXmlStreamNamespaceDeclaration.__init__ (self, QXmlStreamNamespaceDeclaration)

Creates a copy of other.

QXmlStreamNamespaceDeclaration.__init__ (self, QString prefix, QString namespaceUri)

Creates a namespace declaration with prefix and namespaceUri.

This function was introduced in Qt 4.4.

QStringRef QXmlStreamNamespaceDeclaration.namespaceUri (self)

Returns the namespaceUri.

QStringRef QXmlStreamNamespaceDeclaration.prefix (self)

Returns the prefix.

bool QXmlStreamNamespaceDeclaration.__eq__ (self, QXmlStreamNamespaceDeclaration other)

bool QXmlStreamNamespaceDeclaration.__ne__ (self, QXmlStreamNamespaceDeclaration other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlstreamnotationdeclaration.html0000644000076500000240000001043712536324476024543 0ustar philstaff00000000000000 QXmlStreamNotationDeclaration Class Reference
  Home · All Classes · Modules

QXmlStreamNotationDeclaration Class Reference
[QtCore module]

The QXmlStreamNotationDeclaration class represents a DTD notation declaration. More...

Methods

Special Methods

  • bool __eq__ (self, QXmlStreamNotationDeclaration other)
  • bool __ne__ (self, QXmlStreamNotationDeclaration other)

Detailed Description

The QXmlStreamNotationDeclaration class represents a DTD notation declaration.

An notation declaration consists of a name(), a systemId(), and a publicId().


Method Documentation

QXmlStreamNotationDeclaration.__init__ (self)

Creates an empty notation declaration.

QXmlStreamNotationDeclaration.__init__ (self, QXmlStreamNotationDeclaration)

Creates a copy of other.

QStringRef QXmlStreamNotationDeclaration.name (self)

Returns the notation name.

QStringRef QXmlStreamNotationDeclaration.publicId (self)

Returns the public identifier.

QStringRef QXmlStreamNotationDeclaration.systemId (self)

Returns the system identifier.

bool QXmlStreamNotationDeclaration.__eq__ (self, QXmlStreamNotationDeclaration other)

bool QXmlStreamNotationDeclaration.__ne__ (self, QXmlStreamNotationDeclaration other)


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlstreamreader.html0000644000076500000240000014721112536324476021745 0ustar philstaff00000000000000 QXmlStreamReader Class Reference
  Home · All Classes · Modules

QXmlStreamReader Class Reference
[QtCore module]

The QXmlStreamReader class provides a fast parser for reading well-formed XML via a simple streaming API. More...

Types

  • enum Error { NoError, UnexpectedElementError, CustomError, NotWellFormedError, PrematureEndOfDocumentError }
  • enum ReadElementTextBehaviour { ErrorOnUnexpectedElement, IncludeChildElements, SkipChildElements }
  • enum TokenType { NoToken, Invalid, StartDocument, EndDocument, ..., ProcessingInstruction }

Methods


Detailed Description

The QXmlStreamReader class provides a fast parser for reading well-formed XML via a simple streaming API.

QXmlStreamReader is a faster and more convenient replacement for Qt's own SAX parser (see QXmlSimpleReader). In some cases it might also be a faster and more convenient alternative for use in applications that would otherwise use a DOM tree (see QDomDocument). QXmlStreamReader reads data either from a QIODevice (see setDevice()), or from a raw QByteArray (see addData()).

Qt provides QXmlStreamWriter for writing XML.

The basic concept of a stream reader is to report an XML document as a stream of tokens, similar to SAX. The main difference between QXmlStreamReader and SAX is how these XML tokens are reported. With SAX, the application must provide handlers (callback functions) that receive so-called XML events from the parser at the parser's convenience. With QXmlStreamReader, the application code itself drives the loop and pulls tokens from the reader, one after another, as it needs them. This is done by calling readNext(), where the reader reads from the input stream until it completes the next token, at which point it returns the tokenType(). A set of convenient functions including isStartElement() and text() can then be used to examine the token to obtain information about what has been read. The big advantage of this pulling approach is the possibility to build recursive descent parsers with it, meaning you can split your XML parsing code easily into different methods or classes. This makes it easy to keep track of the application's own state when parsing XML.

A typical loop with QXmlStreamReader looks like this:

   QXmlStreamReader xml;
   ...
   while (!xml.atEnd()) {
         xml.readNext();
         ... // do processing
   }
   if (xml.hasError()) {
         ... // do error handling
   }

QXmlStreamReader is a well-formed XML 1.0 parser that does not include external parsed entities. As long as no error occurs, the application code can thus be assured that the data provided by the stream reader satisfies the W3C's criteria for well-formed XML. For example, you can be certain that all tags are indeed nested and closed properly, that references to internal entities have been replaced with the correct replacement text, and that attributes have been normalized or added according to the internal subset of the DTD.

If an error occurs while parsing, atEnd() and hasError() return true, and error() returns the error that occurred. The functions errorString(), lineNumber(), columnNumber(), and characterOffset() are for constructing an appropriate error or warning message. To simplify application code, QXmlStreamReader contains a raiseError() mechanism that lets you raise custom errors that trigger the same error handling described.

The QXmlStream Bookmarks Example illustrates how to use the recursive descent technique to read an XML bookmark file (XBEL) with a stream reader.

Namespaces

QXmlStream understands and resolves XML namespaces. E.g. in case of a StartElement, namespaceUri() returns the namespace the element is in, and name() returns the element's local name. The combination of namespaceUri and name uniquely identifies an element. If a namespace prefix was not declared in the XML entities parsed by the reader, the namespaceUri is empty.

If you parse XML data that does not utilize namespaces according to the XML specification or doesn't use namespaces at all, you can use the element's qualifiedName() instead. A qualified name is the element's prefix() followed by colon followed by the element's local name() - exactly like the element appears in the raw XML data. Since the mapping namespaceUri to prefix is neither unique nor universal, qualifiedName() should be avoided for namespace-compliant XML data.

In order to parse standalone documents that do use undeclared namespace prefixes, you can turn off namespace processing completely with the namespaceProcessing property.

Incremental parsing

QXmlStreamReader is an incremental parser. It can handle the case where the document can't be parsed all at once because it arrives in chunks (e.g. from multiple files, or over a network connection). When the reader runs out of data before the complete document has been parsed, it reports a PrematureEndOfDocumentError. When more data arrives, either because of a call to addData() or because more data is available through the network device(), the reader recovers from the PrematureEndOfDocumentError error and continues parsing the new data with the next call to readNext().

For example, if your application reads data from the network using a network access manager, you would issue a network request to the manager and receive a network reply in return. Since a QNetworkReply is a QIODevice, you connect its readyRead() signal to a custom slot, e.g. slotReadyRead() in the code snippet shown in the discussion for QNetworkAccessManager. In this slot, you read all available data with readAll() and pass it to the XML stream reader using addData(). Then you call your custom parsing function that reads the XML events from the reader.

Performance and memory consumption

QXmlStreamReader is memory-conservative by design, since it doesn't store the entire XML document tree in memory, but only the current token at the time it is reported. In addition, QXmlStreamReader avoids the many small string allocations that it normally takes to map an XML document to a convenient and Qt-ish API. It does this by reporting all string data as QStringRef rather than real QString objects. QStringRef is a thin wrapper around QString substrings that provides a subset of the QString API without the memory allocation and reference-counting overhead. Calling toString() on any of those objects returns an equivalent real QString object.


Type Documentation

QXmlStreamReader.Error

This enum specifies different error cases

Constant Value Description
QXmlStreamReader.NoError 0 No error has occurred.
QXmlStreamReader.CustomError 2 A custom error has been raised with raiseError()
QXmlStreamReader.NotWellFormedError 3 The parser internally raised an error due to the read XML not being well-formed.
QXmlStreamReader.PrematureEndOfDocumentError 4 The input stream ended before a well-formed XML document was parsed. Recovery from this error is possible if more XML arrives in the stream, either by calling addData() or by waiting for it to arrive on the device().
QXmlStreamReader.UnexpectedElementError 1 The parser encountered an element that was different to those it expected.

QXmlStreamReader.ReadElementTextBehaviour

This enum specifies the different behaviours of readElementText().

Constant Value Description
QXmlStreamReader.ErrorOnUnexpectedElement 0 Raise an UnexpectedElementError and return what was read so far when a child element is encountered.
QXmlStreamReader.IncludeChildElements 1 Recursively include the text from child elements.
QXmlStreamReader.SkipChildElements 2 Skip child elements.

This enum was introduced or modified in Qt 4.6.

QXmlStreamReader.TokenType

This enum specifies the type of token the reader just read.

Constant Value Description
QXmlStreamReader.NoToken 0 The reader has not yet read anything.
QXmlStreamReader.Invalid 1 An error has occurred, reported in error() and errorString().
QXmlStreamReader.StartDocument 2 The reader reports the XML version number in documentVersion(), and the encoding as specified in the XML document in documentEncoding(). If the document is declared standalone, isStandaloneDocument() returns true; otherwise it returns false.
QXmlStreamReader.EndDocument 3 The reader reports the end of the document.
QXmlStreamReader.StartElement 4 The reader reports the start of an element with namespaceUri() and name(). Empty elements are also reported as StartElement, followed directly by EndElement. The convenience function readElementText() can be called to concatenate all content until the corresponding EndElement. Attributes are reported in attributes(), namespace declarations in namespaceDeclarations().
QXmlStreamReader.EndElement 5 The reader reports the end of an element with namespaceUri() and name().
QXmlStreamReader.Characters 6 The reader reports characters in text(). If the characters are all white-space, isWhitespace() returns true. If the characters stem from a CDATA section, isCDATA() returns true.
QXmlStreamReader.Comment 7 The reader reports a comment in text().
QXmlStreamReader.DTD 8 The reader reports a DTD in text(), notation declarations in notationDeclarations(), and entity declarations in entityDeclarations(). Details of the DTD declaration are reported in in dtdName(), dtdPublicId(), and dtdSystemId().
QXmlStreamReader.EntityReference 9 The reader reports an entity reference that could not be resolved. The name of the reference is reported in name(), the replacement text in text().
QXmlStreamReader.ProcessingInstruction 10 The reader reports a processing instruction in processingInstructionTarget() and processingInstructionData().

Method Documentation

QXmlStreamReader.__init__ (self)

Constructs a stream reader.

See also setDevice() and addData().

QXmlStreamReader.__init__ (self, QIODevice device)

Creates a new stream reader that reads from device.

See also setDevice() and clear().

QXmlStreamReader.__init__ (self, QByteArray data)

Creates a new stream reader that reads from data.

See also addData(), clear(), and setDevice().

QXmlStreamReader.__init__ (self, QString data)

Creates a new stream reader that reads from data.

See also addData(), clear(), and setDevice().

QXmlStreamReader.addData (self, QByteArray data)

Adds more data for the reader to read. This function does nothing if the reader has a device().

See also readNext() and clear().

QXmlStreamReader.addData (self, QString data)

Adds more data for the reader to read. This function does nothing if the reader has a device().

See also readNext() and clear().

QXmlStreamReader.addExtraNamespaceDeclaration (self, QXmlStreamNamespaceDeclaration extraNamespaceDeclaraction)

Adds an extraNamespaceDeclaration. The declaration will be valid for children of the current element, or - should the function be called before any elements are read - for the entire XML document.

This function was introduced in Qt 4.4.

See also namespaceDeclarations(), addExtraNamespaceDeclarations(), and setNamespaceProcessing().

QXmlStreamReader.addExtraNamespaceDeclarations (self, list-of-QXmlStreamNamespaceDeclaration extraNamespaceDeclaractions)

Adds a vector of declarations specified by extraNamespaceDeclarations.

This function was introduced in Qt 4.4.

See also namespaceDeclarations() and addExtraNamespaceDeclaration().

bool QXmlStreamReader.atEnd (self)

Returns true if the reader has read until the end of the XML document, or if an error() has occurred and reading has been aborted. Otherwise, it returns false.

When atEnd() and hasError() return true and error() returns PrematureEndOfDocumentError, it means the XML has been well-formed so far, but a complete XML document has not been parsed. The next chunk of XML can be added with addData(), if the XML is being read from a QByteArray, or by waiting for more data to arrive if the XML is being read from a QIODevice. Either way, atEnd() will return false once more data is available.

See also hasError(), error(), device(), and QIODevice.atEnd().

QXmlStreamAttributes QXmlStreamReader.attributes (self)

Returns the attributes of a StartElement.

int QXmlStreamReader.characterOffset (self)

Returns the current character offset, starting with 0.

See also lineNumber() and columnNumber().

QXmlStreamReader.clear (self)

Removes any device() or data from the reader and resets its internal state to the initial state.

See also addData().

int QXmlStreamReader.columnNumber (self)

Returns the current column number, starting with 0.

See also lineNumber() and characterOffset().

QIODevice QXmlStreamReader.device (self)

Returns the current device associated with the QXmlStreamReader, or 0 if no device has been assigned.

See also setDevice().

QStringRef QXmlStreamReader.documentEncoding (self)

If the state() is StartDocument, this function returns the encoding string as specified in the XML declaration. Otherwise an empty string is returned.

This function was introduced in Qt 4.4.

QStringRef QXmlStreamReader.documentVersion (self)

If the state() is StartDocument, this function returns the version string as specified in the XML declaration. Otherwise an empty string is returned.

This function was introduced in Qt 4.4.

QStringRef QXmlStreamReader.dtdName (self)

If the state() is DTD, this function returns the DTD's name. Otherwise an empty string is returned.

This function was introduced in Qt 4.4.

QStringRef QXmlStreamReader.dtdPublicId (self)

If the state() is DTD, this function returns the DTD's public identifier. Otherwise an empty string is returned.

This function was introduced in Qt 4.4.

QStringRef QXmlStreamReader.dtdSystemId (self)

If the state() is DTD, this function returns the DTD's system identifier. Otherwise an empty string is returned.

This function was introduced in Qt 4.4.

list-of-QXmlStreamEntityDeclaration QXmlStreamReader.entityDeclarations (self)

If the state() is DTD, this function returns the DTD's unparsed (external) entity declarations. Otherwise an empty vector is returned.

The QXmlStreamEntityDeclarations class is defined to be a QVector of QXmlStreamEntityDeclaration.

QXmlStreamEntityResolver QXmlStreamReader.entityResolver (self)

Returns the entity resolver, or 0 if there is no entity resolver.

This function was introduced in Qt 4.4.

See also setEntityResolver().

Error QXmlStreamReader.error (self)

Returns the type of the current error, or NoError if no error occurred.

See also errorString() and raiseError().

QString QXmlStreamReader.errorString (self)

Returns the error message that was set with raiseError().

See also error(), lineNumber(), columnNumber(), and characterOffset().

bool QXmlStreamReader.hasError (self)

Returns true if an error has occurred, otherwise false.

See also errorString() and error().

bool QXmlStreamReader.isCDATA (self)

Returns true if the reader reports characters that stem from a CDATA section; otherwise returns false.

See also isCharacters() and text().

bool QXmlStreamReader.isCharacters (self)

Returns true if tokenType() equals Characters; otherwise returns false.

See also isWhitespace() and isCDATA().

bool QXmlStreamReader.isComment (self)

Returns true if tokenType() equals Comment; otherwise returns false.

bool QXmlStreamReader.isDTD (self)

Returns true if tokenType() equals DTD; otherwise returns false.

bool QXmlStreamReader.isEndDocument (self)

Returns true if tokenType() equals EndDocument; otherwise returns false.

bool QXmlStreamReader.isEndElement (self)

Returns true if tokenType() equals EndElement; otherwise returns false.

bool QXmlStreamReader.isEntityReference (self)

Returns true if tokenType() equals EntityReference; otherwise returns false.

bool QXmlStreamReader.isProcessingInstruction (self)

Returns true if tokenType() equals ProcessingInstruction; otherwise returns false.

bool QXmlStreamReader.isStandaloneDocument (self)

Returns true if this document has been declared standalone in the XML declaration; otherwise returns false.

If no XML declaration has been parsed, this function returns false.

bool QXmlStreamReader.isStartDocument (self)

Returns true if tokenType() equals StartDocument; otherwise returns false.

bool QXmlStreamReader.isStartElement (self)

Returns true if tokenType() equals StartElement; otherwise returns false.

bool QXmlStreamReader.isWhitespace (self)

Returns true if the reader reports characters that only consist of white-space; otherwise returns false.

See also isCharacters() and text().

int QXmlStreamReader.lineNumber (self)

Returns the current line number, starting with 1.

See also columnNumber() and characterOffset().

QStringRef QXmlStreamReader.name (self)

Returns the local name of a StartElement, EndElement, or an EntityReference.

See also namespaceUri() and qualifiedName().

list-of-QXmlStreamNamespaceDeclaration QXmlStreamReader.namespaceDeclarations (self)

If the state() is StartElement, this function returns the element's namespace declarations. Otherwise an empty vector is returned.

The QXmlStreamNamespaceDeclaration class is defined to be a QVector of QXmlStreamNamespaceDeclaration.

See also addExtraNamespaceDeclaration() and addExtraNamespaceDeclarations().

bool QXmlStreamReader.namespaceProcessing (self)

QStringRef QXmlStreamReader.namespaceUri (self)

Returns the namespaceUri of a StartElement or EndElement.

See also name() and qualifiedName().

list-of-QXmlStreamNotationDeclaration QXmlStreamReader.notationDeclarations (self)

If the state() is DTD, this function returns the DTD's notation declarations. Otherwise an empty vector is returned.

The QXmlStreamNotationDeclarations class is defined to be a QVector of QXmlStreamNotationDeclaration.

QStringRef QXmlStreamReader.prefix (self)

Returns the prefix of a StartElement or EndElement.

This function was introduced in Qt 4.4.

See also name() and qualifiedName().

QStringRef QXmlStreamReader.processingInstructionData (self)

Returns the data of a ProcessingInstruction.

QStringRef QXmlStreamReader.processingInstructionTarget (self)

Returns the target of a ProcessingInstruction.

QStringRef QXmlStreamReader.qualifiedName (self)

Returns the qualified name of a StartElement or EndElement;

A qualified name is the raw name of an element in the XML data. It consists of the namespace prefix, followed by colon, followed by the element's local name. Since the namespace prefix is not unique (the same prefix can point to different namespaces and different prefixes can point to the same namespace), you shouldn't use qualifiedName(), but the resolved namespaceUri() and the attribute's local name().

See also name(), prefix(), and namespaceUri().

QXmlStreamReader.raiseError (self, QString message = QString())

Raises a custom error with an optional error message.

See also error() and errorString().

QString QXmlStreamReader.readElementText (self)

Convenience function to be called in case a StartElement was read. Reads until the corresponding EndElement and returns all text in-between. In case of no error, the current token (see tokenType()) after having called this function is EndElement.

The function concatenates text() when it reads either Characters or EntityReference tokens, but skips ProcessingInstruction and Comment. If the current token is not StartElement, an empty string is returned.

The behaviour defines what happens in case anything else is read before reaching EndElement. The function can include the text from child elements (useful for example for HTML), ignore child elements, or raise an UnexpectedElementError and return what was read so far.

This function was introduced in Qt 4.6.

QString QXmlStreamReader.readElementText (self, ReadElementTextBehaviour behaviour)

This function overloads readElementText().

Calling this function is equivalent to calling readElementText(ErrorOnUnexpectedElement).

TokenType QXmlStreamReader.readNext (self)

Reads the next token and returns its type.

With one exception, once an error() is reported by readNext(), further reading of the XML stream is not possible. Then atEnd() returns true, hasError() returns true, and this function returns QXmlStreamReader.Invalid.

The exception is when error() returns PrematureEndOfDocumentError. This error is reported when the end of an otherwise well-formed chunk of XML is reached, but the chunk doesn't represent a complete XML document. In that case, parsing can be resumed by calling addData() to add the next chunk of XML, when the stream is being read from a QByteArray, or by waiting for more data to arrive when the stream is being read from a device().

See also tokenType() and tokenString().

bool QXmlStreamReader.readNextStartElement (self)

Reads until the next start element within the current element. Returns true when a start element was reached. When the end element was reached, or when an error occurred, false is returned.

The current element is the element matching the most recently parsed start element of which a matching end element has not yet been reached. When the parser has reached the end element, the current element becomes the parent element.

You can traverse a document by repeatedly calling this function while ensuring that the stream reader is not at the end of the document:

 QXmlStreamReader xs(&file);
 while (!xs.atEnd()) {
     if (xs.readNextStartElement())
         std.cout << qPrintable(xs.name().toString()) << std.endl;
 }

This is a convenience function for when you're only concerned with parsing XML elements. The QXmlStream Bookmarks Example makes extensive use of this function.

This function was introduced in Qt 4.6.

See also readNext().

QXmlStreamReader.setDevice (self, QIODevice device)

Sets the current device to device. Setting the device resets the stream to its initial state.

See also device() and clear().

QXmlStreamReader.setEntityResolver (self, QXmlStreamEntityResolver resolver)

Makes resolver the new entityResolver().

The stream reader does not take ownership of the resolver. It's the callers responsibility to ensure that the resolver is valid during the entire life-time of the stream reader object, or until another resolver or 0 is set.

This function was introduced in Qt 4.4.

See also entityResolver().

QXmlStreamReader.setNamespaceProcessing (self, bool)

QXmlStreamReader.skipCurrentElement (self)

Reads until the end of the current element, skipping any child nodes. This function is useful for skipping unknown elements.

The current element is the element matching the most recently parsed start element of which a matching end element has not yet been reached. When the parser has reached the end element, the current element becomes the parent element.

This function was introduced in Qt 4.6.

QStringRef QXmlStreamReader.text (self)

Returns the text of Characters, Comment, DTD, or EntityReference.

QString QXmlStreamReader.tokenString (self)

Returns the reader's current token as string.

See also tokenType().

TokenType QXmlStreamReader.tokenType (self)

Returns the type of the current token.

The current token can also be queried with the convenience functions isStartDocument(), isEndDocument(), isStartElement(), isEndElement(), isCharacters(), isComment(), isDTD(), isEntityReference(), and isProcessingInstruction().

See also tokenString().


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/qxmlstreamwriter.html0000644000076500000240000006750412536324476022025 0ustar philstaff00000000000000 QXmlStreamWriter Class Reference
  Home · All Classes · Modules

QXmlStreamWriter Class Reference
[QtCore module]

The QXmlStreamWriter class provides an XML writer with a simple streaming API. More...

Methods


Detailed Description

The QXmlStreamWriter class provides an XML writer with a simple streaming API.

QXmlStreamWriter is the counterpart to QXmlStreamReader for writing XML. Like its related class, it operates on a QIODevice specified with setDevice(). The API is simple and straightforward: for every XML token or event you want to write, the writer provides a specialized function.

You start a document with writeStartDocument() and end it with writeEndDocument(). This will implicitly close all remaining open tags.

Element tags are opened with writeStartElement() followed by writeAttribute() or writeAttributes(), element content, and then writeEndElement(). A shorter form writeEmptyElement() can be used to write empty elements, followed by writeAttributes().

Element content consists of either characters, entity references or nested elements. It is written with writeCharacters(), which also takes care of escaping all forbidden characters and character sequences, writeEntityReference(), or subsequent calls to writeStartElement(). A convenience method writeTextElement() can be used for writing terminal elements that contain nothing but text.

The following abridged code snippet shows the basic use of the class to write formatted XML with indentation:

     QXmlStreamWriter stream(&output);
     stream.setAutoFormatting(true);
     stream.writeStartDocument();
     ...
     stream.writeStartElement("bookmark");
     stream.writeAttribute("href", "http://qt.nokia.com/");
     stream.writeTextElement("title", "Qt Home");
     stream.writeEndElement(); // bookmark
     ...
     stream.writeEndDocument();

QXmlStreamWriter takes care of prefixing namespaces, all you have to do is specify the namespaceUri when writing elements or attributes. If you must conform to certain prefixes, you can force the writer to use them by declaring the namespaces manually with either writeNamespace() or writeDefaultNamespace(). Alternatively, you can bypass the stream writer's namespace support and use overloaded methods that take a qualified name instead. The namespace http://www.w3.org/XML/1998/namespace is implicit and mapped to the prefix xml.

The stream writer can automatically format the generated XML data by adding line-breaks and indentation to empty sections between elements, making the XML data more readable for humans and easier to work with for most source code management systems. The feature can be turned on with the autoFormatting property, and customized with the autoFormattingIndent property.

Other functions are writeCDATA(), writeComment(), writeProcessingInstruction(), and writeDTD(). Chaining of XML streams is supported with writeCurrentToken().

By default, QXmlStreamWriter encodes XML in UTF-8. Different encodings can be enforced using setCodec().

If an error occurs while writing to the underlying device, hasError() starts returning true and subsequent writes are ignored.

The QXmlStream Bookmarks Example illustrates how to use a stream writer to write an XML bookmark file (XBEL) that was previously read in by a QXmlStreamReader.


Method Documentation

QXmlStreamWriter.__init__ (self)

Constructs a stream writer.

See also setDevice().

QXmlStreamWriter.__init__ (self, QIODevice device)

Constructs a stream writer that writes into device;

QXmlStreamWriter.__init__ (self, QByteArray array)

Constructs a stream writer that writes into array. This is the same as creating an xml writer that operates on a QBuffer device which in turn operates on array.

QXmlStreamWriter.__init__ (self, QString string)

Constructs a stream writer that writes into string.

bool QXmlStreamWriter.autoFormatting (self)

int QXmlStreamWriter.autoFormattingIndent (self)

QTextCodec QXmlStreamWriter.codec (self)

Returns the codec that is currently assigned to the stream.

See also setCodec().

QIODevice QXmlStreamWriter.device (self)

Returns the current device associated with the QXmlStreamWriter, or 0 if no device has been assigned.

See also setDevice().

bool QXmlStreamWriter.hasError (self)

Returns true if the stream failed to write to the underlying device; otherwise returns false.

The error status is never reset. Writes happening after the error occurred are ignored, even if the error condition is cleared.

This function was introduced in Qt 4.8.

QXmlStreamWriter.setAutoFormatting (self, bool)

QXmlStreamWriter.setAutoFormattingIndent (self, int spaces)

QXmlStreamWriter.setCodec (self, QTextCodec codec)

Sets the codec for this stream to codec. The codec is used for encoding any data that is written. By default, QXmlStreamWriter uses UTF-8.

The encoding information is stored in the initial xml tag which gets written when you call writeStartDocument(). Call this function before calling writeStartDocument().

See also codec().

QXmlStreamWriter.setCodec (self, str codecName)

Sets the codec for this stream to the QTextCodec for the encoding specified by codecName. Common values for codecName include "ISO 8859-1", "UTF-8", and "UTF-16". If the encoding isn't recognized, nothing happens.

See also QTextCodec.codecForName().

QXmlStreamWriter.setDevice (self, QIODevice device)

Sets the current device to device. If you want the stream to write into a QByteArray, you can create a QBuffer device.

See also device().

QXmlStreamWriter.writeAttribute (self, QString qualifiedName, QString value)

Writes an attribute with name and value, prefixed for the specified namespaceUri. If the namespace has not been declared yet, QXmlStreamWriter will generate a namespace declaration for it.

This function can only be called after writeStartElement() before any content is written, or after writeEmptyElement().

QXmlStreamWriter.writeAttribute (self, QString namespaceUri, QString name, QString value)

This is an overloaded function.

Writes an attribute with qualifiedName and value.

This function can only be called after writeStartElement() before any content is written, or after writeEmptyElement().

QXmlStreamWriter.writeAttribute (self, QXmlStreamAttribute attribute)

This is an overloaded function.

Writes the attribute.

This function can only be called after writeStartElement() before any content is written, or after writeEmptyElement().

QXmlStreamWriter.writeAttributes (self, QXmlStreamAttributes attributes)

Writes the attribute vector attributes. If a namespace referenced in an attribute not been declared yet, QXmlStreamWriter will generate a namespace declaration for it.

This function can only be called after writeStartElement() before any content is written, or after writeEmptyElement().

See also writeAttribute() and writeNamespace().

QXmlStreamWriter.writeCDATA (self, QString text)

Writes text as CDATA section. If text contains the forbidden character sequence "]]>", it is split into different CDATA sections.

This function mainly exists for completeness. Normally you should not need use it, because writeCharacters() automatically escapes all non-content characters.

QXmlStreamWriter.writeCharacters (self, QString text)

Writes text. The characters "<", "&", and """ are escaped as entity references "&lt;", "&amp;, and "&quot;". To avoid the forbidden sequence "]]>", ">" is also escaped as "&gt;".

See also writeEntityReference().

QXmlStreamWriter.writeComment (self, QString text)

Writes text as XML comment, where text must not contain the forbidden sequence "--" or end with "-". Note that XML does not provide any way to escape "-" in a comment.

QXmlStreamWriter.writeCurrentToken (self, QXmlStreamReader reader)

Writes the current state of the reader. All possible valid states are supported.

The purpose of this function is to support chained processing of XML data.

See also QXmlStreamReader.tokenType().

QXmlStreamWriter.writeDefaultNamespace (self, QString namespaceUri)

Writes a default namespace declaration for namespaceUri.

If writeStartElement() or writeEmptyElement() was called, the declaration applies to the current element; otherwise it applies to the next child element.

Note that the namespaces http://www.w3.org/XML/1998/namespace (bound to xmlns) and http://www.w3.org/2000/xmlns/ (bound to xml) by definition cannot be declared as default.

QXmlStreamWriter.writeDTD (self, QString dtd)

Writes a DTD section. The dtd represents the entire doctypedecl production from the XML 1.0 specification.

QXmlStreamWriter.writeEmptyElement (self, QString qualifiedName)

Writes an empty element with name, prefixed for the specified namespaceUri. If the namespace has not been declared, QXmlStreamWriter will generate a namespace declaration for it. Subsequent calls to writeAttribute() will add attributes to this element.

See also writeNamespace().

QXmlStreamWriter.writeEmptyElement (self, QString namespaceUri, QString name)

This is an overloaded function.

Writes an empty element with qualified name qualifiedName. Subsequent calls to writeAttribute() will add attributes to this element.

QXmlStreamWriter.writeEndDocument (self)

Closes all remaining open start elements and writes a newline.

See also writeStartDocument().

QXmlStreamWriter.writeEndElement (self)

Closes the previous start element.

See also writeStartElement().

QXmlStreamWriter.writeEntityReference (self, QString name)

Writes the entity reference name to the stream, as "&name;".

QXmlStreamWriter.writeNamespace (self, QString namespaceUri, QString prefix = QString())

Writes a namespace declaration for namespaceUri with prefix. If prefix is empty, QXmlStreamWriter assigns a unique prefix consisting of the letter 'n' followed by a number.

If writeStartElement() or writeEmptyElement() was called, the declaration applies to the current element; otherwise it applies to the next child element.

Note that the prefix xml is both predefined and reserved for http://www.w3.org/XML/1998/namespace, which in turn cannot be bound to any other prefix. The prefix xmlns and its URI http://www.w3.org/2000/xmlns/ are used for the namespace mechanism itself and thus completely forbidden in declarations.

QXmlStreamWriter.writeProcessingInstruction (self, QString target, QString data = QString())

Writes an XML processing instruction with target and data, where data must not contain the sequence "?>".

QXmlStreamWriter.writeStartDocument (self)

Writes a document start with the XML version number version.

See also writeEndDocument().

QXmlStreamWriter.writeStartDocument (self, QString version)

Writes a document start with the XML version number version and a standalone attribute standalone.

This function was introduced in Qt 4.5.

See also writeEndDocument().

QXmlStreamWriter.writeStartDocument (self, QString version, bool standalone)

This is an overloaded function.

Writes a document start with XML version number "1.0". This also writes the encoding information.

This function was introduced in Qt 4.5.

See also writeEndDocument() and setCodec().

QXmlStreamWriter.writeStartElement (self, QString qualifiedName)

Writes a start element with name, prefixed for the specified namespaceUri. If the namespace has not been declared yet, QXmlStreamWriter will generate a namespace declaration for it. Subsequent calls to writeAttribute() will add attributes to this element.

See also writeNamespace(), writeEndElement(), and writeEmptyElement().

QXmlStreamWriter.writeStartElement (self, QString namespaceUri, QString name)

This is an overloaded function.

Writes a start element with qualifiedName. Subsequent calls to writeAttribute() will add attributes to this element.

See also writeEndElement() and writeEmptyElement().

QXmlStreamWriter.writeTextElement (self, QString qualifiedName, QString text)

Writes a text element with name, prefixed for the specified namespaceUri, and text. If the namespace has not been declared, QXmlStreamWriter will generate a namespace declaration for it.

This is a convenience function equivalent to:

         writeStartElement(namespaceUri, name);
         writeCharacters(text);
         writeEndElement();

QXmlStreamWriter.writeTextElement (self, QString namespaceUri, QString name, QString text)

This is an overloaded function.

Writes a text element with qualifiedName and text.

This is a convenience function equivalent to:

         writeStartElement(qualifiedName);
         writeCharacters(text);
         writeEndElement();

PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/resources.html0000644000076500000240000001617712536324430020373 0ustar philstaff00000000000000 The PyQt4 Resource System — PyQt 4.11.4 Reference Guide

The PyQt4 Resource System¶

PyQt4 supports Qt’s resource system. This is a facility for embedding resources such as icons and translation files in an application. This makes the packaging and distribution of those resources much easier.

A .qrc resource collection file is an XML file used to specify which resource files are to be embedded. The application then refers to the resource files by their original names but preceded by a colon.

For a full description, including the format of the .qrc files, see the Qt Resource System in the Qt documentation.

pyrcc4¶

pyrcc4 is PyQt4’s equivalent to Qt’s rcc utility and is used in exactly the same way. pyrcc4 reads the .qrc file, and the resource files, and generates a Python module that only needs to be import ed by the application in order for those resources to be made available just as if they were the original files.

In addition to the command line options that are common with rcc, the following are also supported:

-py2¶

Generate code that will work for all versions of Python v2.x. Although this is the default, the option should be specified explicitly in case the default is changed in a future version.

-py3¶

Generate code that will work for all versions of Python starting with Python v2.6.

pyrcc4 will only be included if your copy of Qt includes the XML module.

PyQt-x11-gpl-4.11.4/doc/html/search.html0000644000076500000240000000746112536324430017622 0ustar philstaff00000000000000 Search — PyQt 4.11.4 Reference Guide

Search

Please activate JavaScript to enable the search functionality.

From here you can search these documents. Enter your search words into the box below and click "search". Note that the search function will automatically search for all of the words. Pages containing fewer words won't appear in the result list.

PyQt-x11-gpl-4.11.4/doc/html/threads.html0000644000076500000240000002061312536324525020006 0ustar philstaff00000000000000 Thread Support in Qt
  Home · All Classes · Modules

Thread Support in Qt

Qt provides thread support in the form of platform-independent threading classes, a thread-safe way of posting events, and signal-slot connections across threads. This makes it easy to develop portable multithreaded Qt applications and take advantage of multiprocessor machines. Multithreaded programming is also a useful paradigm for performing time-consuming operations without freezing the user interface of an application.

Earlier versions of Qt offered an option to build the library without thread support. Since Qt 4.0, threads are always enabled.

Topics:

Recommended Reading

This document is intended for an audience that has knowledge of, and experience with, multithreaded applications. If you are new to threading see our Recommended Reading list:

The Threading Classes

These classes are relevant to threaded applications.

Asynchronous Run

The <QtConcurrentRun> header provides a way to run a function in a separate thread.

Concurrent Filter and Filter-Reduce

The <QtConcurrentFilter> header provides concurrent Filter and Filter-Reduce.

Concurrent Map and Map-Reduce

The <QtConcurrentMap> header provides concurrent Map and MapReduce.

QAtomicInt

Platform-independent atomic operations on integers

QAtomicPointer

Template class that provides platform-independent atomic operations on pointers

QFuture

Represents the result of an asynchronous computation

QFutureSynchronizer

Convenience class that simplifies QFuture synchronization

QFutureWatcher

Allows monitoring a QFuture using signals and slots

QMutex

Access serialization between threads

QMutexLocker

Convenience class that simplifies locking and unlocking mutexes

QReadLocker

Convenience class that simplifies locking and unlocking read-write locks for read access

QReadWriteLock

Read-write locking

QRunnable

The base class for all runnable objects

QSemaphore

General counting semaphore

QThread

Platform-independent way to manage threads

QThreadPool

Manages a collection of QThreads

QThreadStorage

Per-thread data storage

QWaitCondition

Condition variable for synchronizing threads

QWriteLocker

Convenience class that simplifies locking and unlocking read-write locks for write access

QtConcurrent

High-level APIs that make it possible to write multi-threaded programs without using low-level threading primitives

Note: Qt's threading classes are implemented with native threading APIs; e.g., Win32 and pthreads. Therefore, they can be used with threads of the same native API.


PyQt 4.11.4 for X11Copyright © Riverbank Computing Ltd and The Qt Company 2015Qt 4.8.7
PyQt-x11-gpl-4.11.4/doc/html/webkit.html0000644000076500000240000001211712536324430017634 0ustar philstaff00000000000000 Integrating Python and JavaScript in QtWebKit — PyQt 4.11.4 Reference Guide

Integrating Python and JavaScript in QtWebKit¶

QtWebKit uses slots to expose class methods implemented in C++ as JavaScript methods that can be called from scripts embedded in HTML. Python class methods that have been decorated behave in exactly the same way.

In the same way, properties created using pyqtProperty() are also automatically exposed as JavaScript properties.

PyQt-x11-gpl-4.11.4/doc/sphinx/0000755000076500000240000000000012536324427016032 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/doc/sphinx/buffer_interface.rst0000644000076500000240000000045612425374020022051 0ustar philstaff00000000000000Support for Python's Buffer Interface ===================================== If SIP v4.7.5 or later is used then any Python object that supports the buffer interface can be used whenever a ``char`` or ``char *`` is expected. If the buffer has multiple segments then all but the first will be ignored. PyQt-x11-gpl-4.11.4/doc/sphinx/build_system.rst0000644000076500000240000002007512527653724021300 0ustar philstaff00000000000000.. _ref-build-system: The PyQt4 Build System ====================== .. versionadded:: 4.10 SIP v5 will not include an extensible build system, i.e it will not provide an equivalent of SIP v4's :mod:`sipconfig` module. Consequently a version of PyQt built with SIP v5 will not provide an equivalent of the :mod:`~PyQt4.pyqtconfig` module. However there is still a need for certain information to be shared between PyQt and other modules (such as QScintilla's :mod:`~PyQt4.Qsci` module) that are built on top of it. Specifically it is important that the same ``-t`` and ``-x`` command line flags are passed to the ``sip`` executable to create, for example, the QScintilla bindings as were passed to create the PyQt bindings. Starting with v4.10, :attr:`PyQt4.QtCore.PYQT_CONFIGURATION` is a dict that describes how PyQt was configured. At the moment it contains a single value called ``sip_flags`` which is a string containing the appropriate ``-t`` and ``-x`` flags. The Old Build System -------------------- .. deprecated:: 4.10 The old PyQt4 build system is an extension of the SIP v4 build system and is implemented by the :mod:`~PyQt4.pyqtconfig` module. It can be used by configuration scripts of other bindings that build on top of PyQt4 and takes care of the details of the Qt installation. Note that the :mod:`~PyQt4.pyqtconfig` module is only created if you use :program:`configure.py` and not if you use :program:`configure-ng.py`. .. module:: PyQt4.pyqtconfig .. class:: Configuration(sub_cfg=None) This class encapsulates configuration values that can be accessed as instance objects. It is derived from :class:`sipconfig.Configuration`. :param sub_cfg: an optional list of sub-class configurations. It should only be used by the ``__init__()`` method of a sub-class to append its own dictionary of configuration values before passing the list to its super-class. .. attribute:: pyqt_bin_dir The name of the directory where the PyQt4 utilities are installed. .. attribute:: pyqt_config_args The command line passed to :program:`configure.py` when PyQt4 was configured. .. attribute:: pyqt_mod_dir The name of the directory where the :mod:`PyQt4` Python package is installed. .. attribute:: pyqt_modules A space separated string of installed PyQt4 modules. The :mod:`Qt` module is not included. .. attribute:: pyqt_sip_dir The name of the base directory where PyQt4's ``.sip`` files are installed. Each module's ``.sip`` files are installed in a sub-directory with the same name as the module. .. attribute:: pyqt_sip_flags A space separated string of the :program:`sip` command line options used to build the PyQt4 modules. These should also be used when building bindings that ``%Import`` any PyQt4 modules. .. attribute:: pyqt_version The PyQt4 version as a 3 part hexadecimal number (e.g. v4.0.1 is represented as ``0x040001``). .. attribute:: pyqt_version_str The PyQt4 version as a string. For development previews it will start with ``preview-`` or ``snapshot-``. .. attribute:: qt_data_dir The value of ``QLibraryInfo::location(DataPath)`` for the Qt installation. .. attribute:: qt_archdata_dir When building against Qt v5 this is the value of ``QLibraryInfo::location(ArchDataPath)``. When building against Qt v4 it is the value of ``QLibraryInfo::location(DataPath)``. .. attribute:: qt_dir The root directory of the Qt installation (normally the directory that contains the :file:`bin` directory). .. attribute:: qt_edition The Qt edition. .. attribute:: qt_framework Set if Qt is built as a MacOS/X framework. .. attribute:: qt_inc_dir The value of ``QLibraryInfo::location(HeadersPath)`` for the Qt installation. .. attribute:: qt_lib_dir The value of ``QLibraryInfo::location(LibrariesPath)`` for the Qt installation. .. attribute:: qt_threaded Set if Qt is built with thread support (always set for PyQt4). .. attribute:: qt_version The Qt version as a 3 part hexadecimal number (e.g. v4.1.2 is represented as ``0x040102``). .. attribute:: qt_winconfig Additional Windows specific configuration. .. class:: QtAssistantModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtAssistant` module. .. class:: QAxContainerModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QAxContainer` module. .. class:: QtCoreModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtCore` module. .. class:: QtDBusModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtDBus` module. .. class:: QtDeclarativeModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtDeclarative` module. .. class:: QtDesignerModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtDesigner` module. .. class:: QtGuiModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtGui` module. .. class:: QtHelpModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtHelp` module. .. class:: QtMultimediaModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtMultimedia` module. .. class:: QtNetworkModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtNetwork` module. .. class:: QtOpenGLModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtOpenGL` module. .. class:: QtScriptModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtScript` module. .. class:: QtScriptToolsModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtScriptTools` module. .. class:: QtSqlModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtSql` module. .. class:: QtSvgModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtSvg` module. .. class:: QtTestModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtTest` module. .. class:: QtWebKitModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtWebKit` module. .. class:: QtXmlModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtXml` module. .. class:: QtXmlPatternsModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.QtXmlPatterns` module. .. class:: phononModuleMakefile This class encapsulates a Makefile to build a SIP generated Python extension module that is built on the PyQt4 :mod:`~PyQt4.phonon` module. PyQt-x11-gpl-4.11.4/doc/sphinx/conf.py0000644000076500000240000001443112536324427017334 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # # PyQt documentation build configuration file, created by # sphinx-quickstart on Sat May 30 14:28:55 2009. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.append(os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. #extensions = [] # Add any paths that contain templates here, relative to this directory. templates_path = ['templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'PyQt' copyright = u'2015 Riverbank Computing Limited' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '4.11.4' # The full version, including alpha/beta/rc tags. release = '4.11.4' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. #exclude_trees = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'classic' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". html_title = "PyQt 4.11.4 Reference Guide" # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = 'static/logo.png' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = 'static/logo_tn.ico' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = False # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'PyQtdoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'PyQt.tex', u'PyQt Documentation', u'Riverbank Computing Limited', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True def setup(app): """ Define roles specific to PyQt. """ pass PyQt-x11-gpl-4.11.4/doc/sphinx/dbus.rst0000644000076500000240000000606012425374020017512 0ustar philstaff00000000000000.. _ref-dbus: DBus Support ============ PyQt4 provides two different modules that implement support for DBus. The :mod:`~PyQt4.QtDBus` module provides wrappers for the standard Qt DBus classes. The :mod:`dbus.mainloop.qt` module add support for the Qt event loop to the standard ``dbus-python`` Python module. :mod:`~PyQt4.QtDBus` -------------------- The :mod:`~PyQt4.QtDBus` module is used in a similar way to the C++ library it wraps. The main difference is in the way it supports the demarshalling of DBus structures. C++ relies on the template-based registration of types using ``qDBusRegisterMetaType()`` which isn't possible from Python. Instead a slot that accepts a DBus structure in an argument should specify a slot with a single :class:`~PyQt4.QtDBus.QDBusMessage` argument. The implementation of the slot should then extract the arguments from the message using its :meth:`~PyQt4.QtDBus.QDBusMessage.arguments` method. For example, say we have a DBus method called ``setColors()`` that has a single argument that is an array of structures of three integers (red, green and blue). The DBus signature of the argument would then be ``a(iii)``. In C++ you would typically define a class to hold the red, green and blue values and so your code would include the following (incomplete) fragments:: struct Color { int red; int green; int blue; }; Q_DECLARE_METATYPE(Color) qDBusRegisterMetaType(); class ServerAdaptor : public QDBusAbstractAdaptor { Q_OBJECT public slots: void setColors(QList colors); }; The Python version is, of course, much simpler:: class ServerAdaptor(QDBusAbstractAdaptor): @pyqtSlot(QDBusMessage) def setColors(self, message): # Get the single argument. colors = message.arguments()[0] # The argument will be a list of 3-tuples of ints. for red, green, blue in colors: print("RGB:", red, green, blue) Note that this technique can be used for arguments of any type, it is only require if DBus structures are involved. :mod:`dbus.mainloop.qt` ----------------------- The :mod:`dbus.mainloop.qt` module provides support for the Qt event loop to ``dbus-python``. The module's API is almost identical to that of the :mod:`dbus.mainloop.glib` modules that provides support for the GLib event loop. The :mod:`dbus.mainloop.qt` module contains the following function. .. function:: DBusQtMainLoop(set_as_default=False) Create a ``dbus.mainloop.NativeMainLoop`` object that uses the the Qt event loop. :param set_as_default: is optionally set to make the main loop instance the default for all new Connection and Bus instances. It may only be specified as a keyword argument, and not as a positional argument. The following code fragment is all that is normally needed to set up the standard ``dbus-python`` language bindings package to be used with PyQt4:: from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default=True) PyQt-x11-gpl-4.11.4/doc/sphinx/deploy_commercial.rst0000644000076500000240000000200412527653724022254 0ustar philstaff00000000000000Deploying Commercial PyQt4 Applications ======================================= Deploying commercial PyQt4 applications can be a complicated process for a number of reasons: - It is usually better not to rely on pre-requisite packages being already installed on the user's system. This means that as well as your application code, you also need to include the Python interpreter, the standard library, third-pary packages and extension modules, and Qt itself. - Some target platforms (iOS for example) have restrictions on how an application is built in order for it to be included in app stores. - It is necessary to discourage users from accessing the underlying PyQt4 modules for themselves. A user that used the modules shipped with your application to develop new applications would themselves be considered a developer and would need their own commercial PyQt4 license. The recommended solution to all of these issues is to use `pyqtdeploy `__. PyQt-x11-gpl-4.11.4/doc/sphinx/designer.rst0000644000076500000240000003730312527653724020377 0ustar philstaff00000000000000Using Qt Designer ================= Qt Designer is the Qt tool for designing and building graphical user interfaces. It allows you to design widgets, dialogs or complete main windows using on-screen forms and a simple drag-and-drop interface. It has the ability to preview your designs to ensure they work as you intended, and to allow you to prototype them with your users, before you have to write any code. Qt Designer uses XML ``.ui`` files to store designs and does not generate any code itself. Qt includes the ``uic`` utility that generates the C++ code that creates the user interface. Qt also includes the ``QUiLoader`` class that allows an application to load a ``.ui`` file and to create the corresponding user interface dynamically. PyQt4 does not wrap the ``QUiLoader`` class but instead includes the :mod:`~PyQt4.uic` Python module. Like ``QUiLoader`` this module can load ``.ui`` files to create a user interface dynamically. Like the :program:`uic` utility it can also generate the Python code that will create the user interface. PyQt4's :program:`pyuic4` utility is a command line interface to the :mod:`~PyQt4.uic` module. Both are described in detail in the following sections. Using the Generated Code ------------------------ The code that is generated has an identical structure to that generated by Qt's ``uic`` and can be used in the same way. The code is structured as a single class that is derived from the Python ``object`` type. The name of the class is the name of the toplevel object set in Designer with ``Ui_`` prepended. (In the C++ version the class is defined in the ``Ui`` namespace.) We refer to this class as the *form class*. The class contains a method called ``setupUi()``. This takes a single argument which is the widget in which the user interface is created. The type of this argument (typically ``QDialog``, ``QWidget`` or ``QMainWindow``) is set in Designer. We refer to this type as the *Qt base class*. In the following examples we assume that a ``.ui`` file has been created containing a dialog and the name of the ``QDialog`` object is ``ImageDialog``. We also assume that the name of the file containing the generated Python code is :file:`ui_imagedialog.py`. The generated code can then be used in a number of ways. The first example shows the direct approach where we simply create a simple application to create the dialog:: import sys from PyQt4.QtGui import QApplication, QDialog from ui_imagedialog import Ui_ImageDialog app = QApplication(sys.argv) window = QDialog() ui = Ui_ImageDialog() ui.setupUi(window) window.show() sys.exit(app.exec_()) The second example shows the single inheritance approach where we sub-class ``QDialog`` and set up the user interface in the ``__init__()`` method:: from PyQt4.QtGui import QDialog from ui_imagedialog import Ui_ImageDialog class ImageDialog(QDialog): def __init__(self): QDialog.__init__(self) # Set up the user interface from Designer. self.ui = Ui_ImageDialog() self.ui.setupUi(self) # Make some local modifications. self.ui.colorDepthCombo.addItem("2 colors (1 bit per pixel)") # Connect up the buttons. self.ui.okButton.clicked.connect(self.accept) self.ui.cancelButton.clicked.connect(self.reject) The third example shows the multiple inheritance approach:: from PyQt4.QtGui import QDialog from ui_imagedialog import Ui_ImageDialog class ImageDialog(QDialog, Ui_ImageDialog): def __init__(self): QDialog.__init__(self) # Set up the user interface from Designer. self.setupUi(self) # Make some local modifications. self.colorDepthCombo.addItem("2 colors (1 bit per pixel)") # Connect up the buttons. self.okButton.clicked.connect(self.accept) self.cancelButton.clicked.connect(self.reject) It is also possible to use the same approach used in PyQt v3. This is shown in the final example:: from ui_imagedialog import ImageDialog class MyImageDialog(ImageDialog): def __init__(self): ImageDialog.__init__(self) # Make some local modifications. self.colorDepthCombo.addItem("2 colors (1 bit per pixel)") # Connect up the buttons. self.okButton.clicked.connect(self.accept) self.cancelButton.clicked.connect(self.reject) For a full description see the Qt Designer Manual in the Qt Documentation. The :mod:`~PyQt4.uic` Module ---------------------------- The :mod:`~PyQt4.uic` module contains the following functions and objects. .. module:: PyQt4.uic .. data:: widgetPluginPath The list of the directories that are searched for widget plugins. Initially it contains the name of the directory that contains the widget plugins included with PyQt4. .. function:: compileUi(uifile, pyfile[, execute=False[, indent=4[, pyqt3_wrapper=False[, from_imports=False[, resource_suffix='_rc']]]]]) Generate a Python module that will create a user interface from a Qt Designer ``.ui`` file. :param uifile: the file name or file-like object containing the ``.ui`` file. :param pyfile: the file-like object to which the generated Python code will be written to. :param execute: is optionally set if a small amount of additional code is to be generated that will display the user interface if the code is run as a standalone application. :param indent: the optional number of spaces used for indentation in the generated code. If it is zero then a tab character is used instead. :param pyqt3_wrapper: is optionally set if a small wrapper is to be generated that allows the generated code to be used as it is by PyQt v3 applications. :param from_imports: is optionally set to generate import statements that are relative to ``'.'``. At the moment this only applies to the import of resource modules. :resource_suffix: is the suffix appended to the basename of any resource file specified in the ``.ui`` file to create the name of the Python module generated from the resource file by ``pyrcc4``. The default is ``'_rc'``, i.e. if the ``.ui`` file specified a resource file called ``foo.qrc`` then the corresponding Python module is ``foo_rc``. .. function:: compileUiDir(dir[, recurse=False[, map=None[, \*\*compileUi_args]]]) Create Python modules from Qt Designer ``.ui`` files in a directory or directory tree. :param dir: the name of the directory to scan for files whose name ends with ``.ui``. By default the generated Python module is created in the same directory ending with ``.py``. :param recurse: is optionally set if any sub-directories should be scanned. :param map: an optional callable that is passed the name of the directory containing the ``.ui`` file and the name of the Python module that will be created. The callable should return a tuple of the name of the directory in which the Python module will be created and the (possibly modified) name of the module. :param compileUi_args: are any additional keyword arguments that are passed to :func:`~PyQt4.uic.compileUi` that is called to create each Python module. .. function:: loadUiType(uifile[, from_imports=False[, resource_suffix='_rc']]) Load a Qt Designer ``.ui`` file and return a tuple of the generated *form class* and the *Qt base class*. These can then be used to create any number of instances of the user interface without having to parse the ``.ui`` file more than once. :param uifile: the file name or file-like object containing the ``.ui`` file. :param from_imports: is optionally set to use import statements that are relative to ``'.'``. At the moment this only applies to the import of resource modules. :resource_suffix: is the suffix appended to the basename of any resource file specified in the ``.ui`` file to create the name of the Python module generated from the resource file by ``pyrcc4``. The default is ``'_rc'``, i.e. if the ``.ui`` file specified a resource file called ``foo.qrc`` then the corresponding Python module is ``foo_rc``. :rtype: the *form class* and the *Qt base class*. .. function:: loadUi(uifile[, baseinstance=None[, package=''[, resource_suffix='_rc']]]) Load a Qt Designer ``.ui`` file and returns an instance of the user interface. :param uifile: the file name or file-like object containing the ``.ui`` file. :param baseinstance: the optional instance of the *Qt base class*. If specified then the user interface is created in it. Otherwise a new instance of the base class is automatically created. :param package: the optional package that is the base package for any relative imports of custom widgets. :resource_suffix: is the suffix appended to the basename of any resource file specified in the ``.ui`` file to create the name of the Python module generated from the resource file by ``pyrcc4``. The default is ``'_rc'``, i.e. if the ``.ui`` file specified a resource file called ``foo.qrc`` then the corresponding Python module is ``foo_rc``. :rtype: the ``QWidget`` sub-class that implements the user interface. :program:`pyuic4` ----------------- The :program:`pyuic4` utility is a command line interface to the :mod:`~PyQt4.uic` module. The command has the following syntax:: pyuic4 [options] .ui-file The full set of command line options is: .. program:: pyuic4 .. cmdoption:: -h, --help A help message is written to ``stdout``. .. cmdoption:: --version The version number is written to ``stdout``. .. cmdoption:: -i , --indent The Python code is generated using an indentation of ```` spaces. If ```` is 0 then a tab is used. The default is 4. .. cmdoption:: -o , --output The Python code generated is written to the file ````. .. cmdoption:: -p, --preview The GUI is created dynamically and displayed. No Python code is generated. .. cmdoption:: -w, --pyqt3-wrapper The generated Python code includes a small wrapper that allows the GUI to be used in the same way as it is used in PyQt v3. .. cmdoption:: -x, --execute The generated Python code includes a small amount of additional code that creates and displays the GUI when it is executes as a standalone application. .. cmdoption:: --from-imports Resource modules are imported using ``from . import`` rather than a simple ``import``. .. cmdoption:: --resource-suffix The suffix ```` is appended to the basename of any resource file specified in the ``.ui`` file to create the name of the Python module generated from the resource file by :program:`pyrcc4`. The default is ``_rc``. For example if the ``.ui`` file specified a resource file called ``foo.qrc`` then the corresponding Python module is ``foo_rc``. Note that code generated by :program:`pyuic4` is not guaranteed to be compatible with earlier versions of PyQt4. However, it is guaranteed to be compatible with later versions. If you have no control over the version of PyQt4 the users of your application are using then you should run :program:`pyuic4`, or call :func:`~PyQt4.uic.compileUi()`, as part of your installation process. Another alternative would be to distribute the ``.ui`` files (perhaps as part of a resource file) and have your application load them dynamically. .. _ref-designer-plugins: Writing Qt Designer Plugins --------------------------- Qt Designer can be extended by writing plugins. Normally this is done using C++ but PyQt4 also allows you to write plugins in Python. Most of the time a plugin is used to expose a custom widget to Designer so that it appears in Designer's widget box just like any other widget. It is possibe to change the widget's properties and to connect its signals and slots. It is also possible to add new functionality to Designer. See the Qt documentation for the full details. Here we will concentrate on describing how to write custom widgets in Python. The process of integrating Python custom widgets with Designer is very similar to that used with widget written using C++. However, there are particular issues that have to be addressed. - Designer needs to have a C++ plugin that conforms to the interface defined by the ``QDesignerCustomWidgetInterface`` class. (If the plugin exposes more than one custom widget then it must conform to the interface defined by the ``QDesignerCustomWidgetCollectionInterface`` class.) In addition the plugin class must sub-class ``QObject`` as well as the interface class. PyQt4 does not allow Python classes to be sub-classed from more than one Qt class. - Designer can only connect Qt signals and slots. It has no understanding of Python signals or callables. - Designer can only edit Qt properties that represent C++ types. It has no understanding of Python attributes or Python types. PyQt4 provides the following components and features to resolve these issues as simply as possible. - PyQt4's QtDesigner module includes additional classes (all of which have a ``QPy`` prefix) that are already sub-classed from the necessary Qt classes. This avoids the need to sub-class from more than one Qt class in Python. For example, where a C++ custom widget plugin would sub-class from ``QObject`` and ``QDesignerCustomWidgetInterface``, a Python custom widget plugin would instead sub-class from ``QPyDesignerCustomWidgetPlugin``. - PyQt4 installs a C++ plugin in Designer's plugin directory. It conforms to the interface defined by the ``QDesignerCustomWidgetCollectionInterface`` class. It searches a configurable set of directories looking for Python plugins that implement a class sub-classed from ``QPyDesignerCustomWidgetPlugin``. Each class that is found is instantiated and the instance created is added to the custom widget collection. The :envvar:`PYQTDESIGNERPATH` environment variable specifies the set of directories to search for plugins. Directory names are separated by a path separator (a semi-colon on Windows and a colon on other platforms). If a directory name is empty (ie. there are consecutive path separators or a leading or trailing path separator) then a set of default directories is automatically inserted at that point. The default directories are the :file:`python` subdirectory of each directory that Designer searches for its own plugins. If the environment variable is not set then only the default directories are searched. If a file's basename does not end with ``plugin`` then it is ignored. - A Python custom widget may define new Qt signals using :func:`~PyQt4.QtCore.pyqtSignal`. - A Python method may be defined as a new Qt slot by using the :func:`~PyQt4.QtCore.pyqtSlot` decorator. - A new Qt property may be defined using the :func:`~PyQt4.QtCore.pyqtProperty` function. Note that the ability to define new Qt signals, slots and properties from Python is potentially useful to plugins conforming to any plugin interface and not just that used by Designer. For a simple but complete and fully documented example of a custom widget that defines new Qt signals, slots and properties, and its plugin, look in the :file:`examples/designer/plugins` directory of the PyQt4 source package. The :file:`widgets` subdirectory contains the :file:`pydemo.py` custom widget and the :file:`python` subdirectory contains its :file:`pydemoplugin.py` plugin. PyQt-x11-gpl-4.11.4/doc/sphinx/gotchas.rst0000644000076500000240000001412012425374020020201 0ustar philstaff00000000000000Things to be Aware Of ===================== Python Strings, Qt Strings and Unicode -------------------------------------- PyQt4 uses the ``QString`` class to represent Unicode strings, and the ``QByteArray`` to represent byte arrays or strings. In Python v3 the corresponding native object types are ``str`` and ``bytes``. In Python v2 the corresponding native object types are ``unicode`` and ``str``. PyQt4 does its best to automatically convert between objects of the various types. Explicit conversions can be easily made where necessary. In some cases PyQt4 will not perform automatic conversions where it is necessary to distinguish between different overloaded methods. For Python v3 the following conversions are done by default. - If Qt expects a ``char *`` (or a ``const`` version) then PyQt4 will accept a ``str`` or ``QString`` that contains only ASCII characters, a ``bytes``, a ``QByteArray``, or a Python object that implements the buffer protocol. - If Qt expects a ``char`` (or a ``const`` version) then PyQt4 will accept the same types as for ``char *`` and also require that a single character is provided. - If Qt expects a ``signed char *`` or an ``unsigned char *`` (or a ``const`` version) then PyQt4 will accept a ``bytes``. - If Qt expects a ``signed char`` or an ``unsigned char`` (or a ``const`` version) then PyQt4 will accept a ``bytes`` of length 1. - If Qt expects a ``QString`` then PyQt4 will accept a ``str``, a ``bytes`` that contains only ASCII characters, a ``QChar`` or a ``QByteArray``. - If Qt expects a ``QByteArray`` then PyQt4 will also accept a ``str`` that contains only Latin-1 characters, or a ``bytes``. For Python v2 the following conversions are done by default. - If Qt expects a ``char *``, ``signed char *`` or an ``unsigned char *`` (or a ``const`` version) then PyQt4 will accept a ``unicode`` or ``QString`` that contains only ASCII characters, a ``str``, a ``QByteArray``, or a Python object that implements the buffer protocol. - If Qt expects a ``char``, ``signed char`` or an ``unsigned char`` (or a ``const`` version) then PyQt4 will accept the same types as for ``char *``, ``signed char *`` and ``unsigned char *`` and also require that a single character is provided. - If Qt expects a ``QString`` then PyQt4 will accept a ``unicode``, a ``str`` that contains only ASCII characters, a ``QChar`` or a ``QByteArray``. - If Qt expects a ``QByteArray`` then PyQt4 will accept a ``unicode`` that contains only Latin-1 characters, or a ``str``. Note that the different behaviour between Python v2 and v3 is due to v3's reduced support for the buffer protocol. Garbage Collection ------------------ C++ does not garbage collect unreferenced class instances, whereas Python does. In the following C++ fragment both colours exist even though the first can no longer be referenced from within the program:: col = new QColor(); col = new QColor(); In the corresponding Python fragment, the first colour is destroyed when the second is assigned to ``col``:: col = QtGui.QColor() col = QtGui.QColor() In Python, each colour must be assigned to different names. Typically this is done within class definitions, so the code fragment would be something like:: self.col1 = QtGui.QColor() self.col2 = QtGui.QColor() Sometimes a Qt class instance will maintain a pointer to another instance and will eventually call the destructor of that second instance. The most common example is that a ``QObject`` (and any of its sub-classes) keeps pointers to its children and will automatically call their destructors. In these cases, the corresponding Python object will also keep a reference to the corresponding child objects. So, in the following Python fragment, the first ``QLabel`` is not destroyed when the second is assigned to ``lab`` because the parent ``QWidget`` still has a reference to it:: parent = QtGui.QWidget() lab = QtGui.QLabel("First label", parent) lab = QtGui.QLabel("Second label", parent) Multiple Inheritance -------------------- It is not possible to define a new Python class that sub-classes from more than one Qt class. Access to Protected Member Functions ------------------------------------ When an instance of a C++ class is not created from Python it is not possible to access the protected member functions, or emit any signals, of that instance. Attempts to do so will raise a Python exception. Also, any Python methods corresponding to the instance's virtual member functions will never be called. ``None`` and ``NULL`` --------------------- Throughout PyQt4, the ``None`` value can be specified wherever ``NULL`` is acceptable to the underlying C++ code. Equally, ``NULL`` is converted to ``None`` whenever it is returned by the underlying C++ code. Support for ``void *`` ---------------------- PyQt4 (actually SIP) represents ``void *`` values as objects of type ``sip.voidptr``. Such values are often used to pass the addresses of external objects between different Python modules. To make this easier, a Python integer (or anything that Python can convert to an integer) can be used whenever a ``sip.voidptr`` is expected. A ``sip.voidptr`` may be converted to a Python integer by using the ``int()`` builtin function. A ``sip.voidptr`` may be converted to a Python string by using its ``asstring()`` method. The ``asstring()`` method takes an optional integer argument which is the length of the data in bytes. A ``sip.voidptr`` may also be given a size (ie. the size of the block of memory that is pointed to) by calling its ``setsize()`` method. If it has a size then it is also able to support Python's buffer protocol and behaves like a Python ``memoryview`` object so that the block of memory can be treated as a mutable list of bytes. It also means that the Python :mod:`struct` module can be used to unpack and pack binary data structures in memory, memory mapped files or shared memory. ``super`` and PyQt4 Classes --------------------------- In versions of PyQt4 earlier than v4.5 there were restrictions on the use of ``super`` with PyQt4 classes. These restrictions no longer apply with v4.5 and later. PyQt-x11-gpl-4.11.4/doc/sphinx/i18n.rst0000644000076500000240000001006112425374020017330 0ustar philstaff00000000000000Internationalisation of PyQt4 Applications ========================================== PyQt4 and Qt include a comprehensive set of tools for translating applications into local languages. For a full description, see the Qt Linguist Manual in the Qt documentation. The process of internationalising an application comprises the following steps. - The programmer uses :program:`pylupdate4` to create or update a ``.ts`` translation file for each language that the application is to be translated into. A ``.ts`` file is an XML file that contains the strings to be translated and the corresponding translations that have already been made. :program:`pylupdate4` can be run any number of times during development to update the ``.ts`` files with the latest strings for translation. - The translator uses Qt Linguist to update the ``.ts`` files with translations of the strings. - The release manager then uses Qt's :program:`lrelease` utility to convert the ``.ts`` files to ``.qm`` files which are compact binary equivalents used by the application. If an application cannot find an appropriate ``.qm`` file, or a particular string hasn't been translated, then the strings used in the original source code are used instead. - The release manage may optionally use :program:`pyrcc4` to embed the ``.qm`` files, along with other application resources such as icons, in a Python module. This may make packaging and distribution of the application easier. :program:`pylupdate4` --------------------- .. program:: pylupdate4 :program:`pylupdate4` is PyQt4's equivalent to Qt's :program:`lupdate` utility and is used in exactly the same way. A Qt ``.pro`` project file is read that specifies the Python source files and Qt Designer interface files from which the text that needs to be translated is extracted. The ``.pro`` file also specifies the ``.ts`` translation files that :program:`pylupdate4` updates (or creates if necessary) and are subsequently used by Qt Linguist. :program:`pylupdate4` will only be included if your copy of Qt includes the XML module. Differences Between PyQt4 and Qt -------------------------------- Qt implements internationalisation support through the ``QTranslator`` class, and the ``QCoreApplication::translate()``, ``QObject::tr()`` and ``QObject::trUtf8()`` methods. Usually the ``tr()`` method is used to obtain the correct translation of a message. The translation process uses a message context to allow the same message to be translated differently. ``tr()`` is actually generated by ``moc`` and uses the hardcoded class name as the context. On the other hand, ``QApplication::translate()`` allows the context to be explicitly stated. Unfortunately, because of the way Qt implements ``tr()`` (and ``trUtf8()``) it is not possible for PyQt4 to exactly reproduce its behaviour. The PyQt4 implementation of ``tr()`` (and ``trUtf8()``) uses the class name of the instance as the context. The key difference, and the source of potential problems, is that the context is determined dynamically in PyQt4, but is hardcoded in Qt. In other words, the context of a translation may change depending on an instance's class hierarchy. For example:: class A(QtCore.QObject): def hello(self): return self.tr("Hello") class B(A): pass a = A() a.hello() b = B() b.hello() In the above the message is translated by ``a.hello()`` using a context of ``A``, and by ``b.hello()`` using a context of ``B``. In the equivalent C++ version the context would be ``A`` in both cases. The PyQt4 behaviour is unsatisfactory and may be changed in the future. It is recommended that ``QCoreApplication.translate()`` be used in preference to ``tr()`` (and ``trUtf8()``). This is guaranteed to work with current and future versions of PyQt4 and makes it much easier to share message files between Python and C++ code. Below is the alternative implementation of ``A`` that uses ``QCoreApplication.translate()``:: class A(QtCore.QObject): def hello(self): return QtCore.QCoreApplication.translate("A", "Hello") PyQt-x11-gpl-4.11.4/doc/sphinx/incompatibilities.rst0000644000076500000240000001704412527653724022307 0ustar philstaff00000000000000Potential Incompatibilities with Earlier Versions ================================================= PyQt4 v4.11 ----------- Execution of Python Slots ************************* Until the release of PyQt4 v4.9.4, when a signal was emitted to a Python slot that was not decorated with :func:`~PyQt4.QtCore.pyqtSlot`, it would first check that the underlying C++ receiver instance still existed. If it didn't then the slot was ignored thereby reflecting the standard C++ behaviour. In v4.9.4 (strictly speaking it was the release of SIP at the time) the check was removed. It was done so that an object could connect its :func:`~PyQt4.QtCore.QObject.destroyed` signal to itself so that it could monitor when its underlying C++ instance was destroyed. Unfortunately this turned out to be an undocumented and incompatible change and a potential source of obscure bugs for more common code. In v4.11 the check was reintroduced - hence creating an incompatibility for any code that relies on the v4.9.4 behaviour. As a workaround for this the ``no_receiver_check`` argument has been added to :func:`~PyQt4.QtCore.QObject.connect` which allows the check to be suppressed on a per connection basis. PyQt4 v4.9.2 ------------ QPyNullVariant ************** In previous versions a ``QPyNullVariant`` would always evaluate to ``True`` when converted to a bool. In this version a ``QPyNullVariant`` will always evaluate to ``False`` when converted to a bool. This makes it behave like ``None`` in these circumstances. PyQt4 v4.8.3 ------------ SQL Models ********** In previous versions, when using v2 of the QVariant API (the default for Python v3), there was no way to represent a null ``QVariant``. Therefore when reading values of certain types from an SQL model it was impossible to distinguish between, for example, a null integer and an integer with the value zero. In this version the ``QPyNullVariant`` class is used to represent a null QVariant. Therefore the object read from an SQL model may now be a ``QPyNullVariant`` instance. A null ``QVariant`` is only converted to a ``QPyNullVariant`` if the underlying C++ type of the ``QVariant`` cannot be tested for null, i.e. it does not implement an ``isNull()`` method. This ensures that existing code that uses non-SQL models will continue to work unchanged. PyQt4 v4.8 ---------- QVariantList ************ In previous versions PyQt4 would always try and convert a Python list to a ``QVariantList``. In this version PyQt4 will first try to convert it to a ``QVariant`` containing a ``QList``, but only if ``QList`` has been registered with Qt as a meta-type. Normally it is only the :mod:`~PyQt4.QtDeclarative` module that registers this meta-type and so the behaviour of existing applications should be unchanged. It is possible however that you might observe different conversion behaviour after importing the :mod:`~PyQt4.QtDeclarative` module. PyQt4 v4.7.4 ------------ :func:`~PyQt4.QtCore.pyqtSignal` with dict and list *************************************************** In previous versions a Qt signal defined using :func:`~PyQt4.QtCore.pyqtSignal` that had an argument specified as a dict then, when emitting a value, PyQt4 would try and convert the value to a ``QVariantMap`` if possible. If it wasn't possible, normally because the dict had non-string keys, then the value would be left as a dict object. In this version PyQt4 will not attempt to convert the value to a ``QVariantMap`` and will always leave it as a dict object. If you want the value to be converted to a ``QVariantMap`` then define the signal argument as ``'QVariantMap'``. The same applies to conversions between lists and ``QVariantList``. PyQt4 v4.7.1 ------------ QVariant ******** This version introduces a slight incompatibility in the conversion between sub-classes of standard Python types and ``QVariant``. Take, for example, the following code:: from PyQt4.QtCore import QVariant class MyFloat(float): pass myfloat = MyFloat(5.0) variant = QVariant(myfloat) With this version of PyQt4 ``myfloat`` will be converted in such a way as to preserve any additional attributes (including methods) and will not be converted to a C++ ``double``. In other words, the following assertions are true:: assert(variant.type() != QVariant.Double) assert(variant.toPyObject() is myfloat) Prior to this version ``myfloat`` would be converted to a C++ ``double``. In other words, the following assertions would be true:: assert(variant.type() == QVariant.Double) assert(variant.toPyObject() == myfloat) assert(type(variant.toPyObject()) is float) The same change also affects objects that implement the sequence protocol. Prior to this version such an object would be converted to a ``QVariantList`` which would mean that it was converted back to a Python ``list`` rather than to the original type. PyQt4 v4.5 ---------- QVariant ******** This version introduces a slight incompatibility in the conversion between Python sub-classes of certain Qt classes and ``QVariant``. The Qt classes affected are those that ``QVariant`` has explicit support for, e.g. ``QSize``, ``QBitmap``. Take, for example, the following code:: from PyQt4.QtCore import QSize, QVariant class MySize(QSize): pass mysize = MySize(5, 5) variant = QVariant(mysize) With this version of PyQt4 ``mysize`` will be converted in such a way as to preserve any additional attributes (including methods) and will not be converted to a C++ ``QSize`` instance. In other words, the following assertions are true:: assert(variant.type() != QVariant.Size) assert(variant.toPyObject() is mysize) Prior to this version ``mysize`` would be converted to a C++ ``QSize`` instance. In other words, the following assertions would be true:: assert(variant.type() == QVariant.Size) assert(variant.toPyObject() == mysize) assert(type(variant.toPyObject()) is QSize) It is hoped that this change of behaviour will not have a significant impact. However if you need the old behaviour then simply create a copy of your sub-class instance using the base class constructor as shown below:: variant = QVariant(QSize(mysize)) A similar issue also affects the conversion of the Python ``datetime``, ``date`` and ``time`` types to ``QVariant``. These are no longer converted to the corresponding ``QDateTime``, ``QDate`` and ``QTime`` classes. The values can be retrieved using ``QVariant.toPyObject()``. Again, the old behaviour can be achieved using an explicit conversion to the Qt class before converting to ``QVariant``. A further incompatible change is the handling of Python sub-classes of ``QObject``. In previous versions ``QVariant.userType()`` would return an internal type and an extra reference would be kept to the Python object. In the current version ``QVariant.userType()`` will correctly return ``QMetaType.QObjectStar`` (or ``QMetaType.QWidgetStar``) but an extra reference to the Python object is not kept. To avoid a potential crash you should ensure that you keep a separate reference to the Python object, either explicitly or implicitly by giving it a parent. :program:`pyrcc4` Support for Python v3 *************************************** :program:`pyrcc4` will now generate code for Python v3 when the new :option:`-py3 ` command line option is used. The generated code will also work with Python v2.6 and later. By default :program:`pyrcc4` will generate code for all Python v2 versions but you should use the new :option:`-py2 ` command line option to enforce this in case the default is changed in the future. PyQt-x11-gpl-4.11.4/doc/sphinx/incompatible_apis.rst0000644000076500000240000000247112425374020022241 0ustar philstaff00000000000000.. _ref-incompat-apis: Selecting Incompatible APIs =========================== PyQt4 provides limited support for multiple incompatible APIs and the ability for an application to select between them at run-time. For example, an application can choose whether ``QString`` is implemented as a Python type, or is automatically converted to and from a Python v2 unicode object or a Python v3 string object. This ability allows developers to decide how to manage the transition from an older deprecated, API to a newer incompatible API. Each API that can be selected in this way has a name and a range of version numbers. An application calls :func:`sip.setapi` to set the version number of a particular API. This call must be made before any module that implements the API is imported. Once set the version number cannot be changed. If not set then an API will use its default version. For example the following code will disable the use of ``QString``:: import sip sip.setapi('QString', 2) from PyQt4 import QtCore # This will raise an attribute exception because QString is only wrapped # in version 1 of the API. s = QtCore.QString() The following APIs are currently implemented: - QDate v1, v2 - QDateTime v1, v2 - QString v1, v2 - QTextStream v1, v2 - QTime v1, v2 - QUrl v1, v2 - QVariant v1, v2 PyQt-x11-gpl-4.11.4/doc/sphinx/index.rst0000644000076500000240000000073312425374020017665 0ustar philstaff00000000000000PyQt4 Reference Guide ===================== .. toctree:: :maxdepth: 2 introduction incompatibilities installation python_v3 qt_v5 keyword_arguments qt_properties new_style_signals_slots old_style_signals_slots gotchas designer resources pyqt_qvariant pyqt_qsettings qml webkit pickle buffer_interface python_shell i18n dbus incompatible_apis deploy_commercial build_system PyQt-x11-gpl-4.11.4/doc/sphinx/installation.rst0000644000076500000240000006011112530100333021242 0ustar philstaff00000000000000Installing PyQt4 ================ Downloading SIP --------------- SIP must be installed before building and using PyQt4. You can get the latest release of the SIP source code from http://www.riverbankcomputing.com/software/sip/download. The SIP documentation can be found at http://pyqt.sourceforge.net/Docs/sip4/. Downloading PyQt4 ----------------- You can get the latest release of the GPL version of the PyQt4 source code from http://www.riverbankcomputing.com/software/pyqt/download. If you are using the commercial version of PyQt4 then you should use the download instructions which were sent to you when you made your purchase. You must also download your license file. Configuring PyQt4 ----------------- After unpacking the source package (either a ``.tar.gz`` or a ``.zip`` file depending on your platform) you should then check for any :file:`README` files that relate to your platform. If you are using the commercial version of PyQt4 then you must copy your license file to the :file:`sip` directory, or to the directory specified by the :option:`--license-dir` option of :program:`configure-ng.py`. You need to make sure your environment variables are set properly for your development environment. In order to configure the build of PyQt4 you need to run either the :program:`configure-ng.py` or the :program:`configure.py` script. :program:`configure.py` is the original configuration script that uses the build system of SIP v4 (i.e. the :mod:`sip.sipconfig` module). It will be supported for the life of PyQt4. :program:`configure-ng.py` is the new configuration script that uses Qt's :program:`qmake` program to do all the heavy lifting. It has the following advantages: - it supports cross-compilation - it is the basis of PyQt5's configuration script - generated Makefiles have an uninstall target - it will work with SIP v5 (which will have no build system). Users are encouraged to switch to using :program:`configure-ng.py` in order to ease the future transition to SIP v5 and/or PyQt5. Using :program:`configure-ng.py` ................................ .. versionadded:: 4.10.1 The :program:`configure-ng.py` script is used to configure PyQt4 as follows:: python configure-ng.py This assumes that the Python interpreter is on your path. Something like the following may be appropriate on Windows:: c:\python34\python configure-ng.py If you have multiple versions of Python installed then make sure you use the interpreter for which you wish to build PyQt4 for. The full set of command line options is: .. program:: configure-ng.py .. cmdoption:: --assume-shared Normally Qt is checked to see if it has been built as shared libraries. Some Linux distributions configure their Qt builds to make this check unreliable. This option ignores the result of the check and assumes that Qt has been built as shared libraries. .. cmdoption:: --bindir , -b The :program:`pyuic4`, :program:`pyrcc4` and :program:`pylupdate4` utilities will be installed in the directory ````. .. cmdoption:: --concatenate, -c The C++ source files for a Python module will be concatenated. This results in significantly reduced compilation times. Most, but not all, C++ compilers can handle the large files that result. See also the :option:`--concatenate-split` option. .. cmdoption:: --concatenate-split , -j If the :option:`--concatenate` option is used to concatenate the C++ source files then this option determines how many files are created. The default is 1. .. cmdoption:: --configuration ```` contains the configuration of the PyQt4 build to be used instead of dynamically introspecting the system and is typically used when cross-compiling. See :ref:`ref-configuration-files`. .. cmdoption:: --confirm-license Using this confirms that you accept the terms of the PyQt4 license. .. cmdoption:: --dbus , -s The :file:`dbus-python.h` header file of the dbus-python package can be found in the directory ``/dbus``. .. cmdoption:: --debug, -u The PyQt4 modules will be built with debugging symbols. On Windows this requires that a debug version of Python is installed. .. cmdoption:: --designer-plugindir The Python plugin for Qt Designer will be installed in the directory ````. .. cmdoption:: --destdir , -d The PyQt4 Python package will be installed in the directory ````. The default is the Python installation's :file:`site-packages` directory. If you use this option then the :envvar:`PYTHONPATH` environment variable must include ````. .. cmdoption:: --enable , -e Normally all PyQt4 modules are enabled and are built if the corresponding Qt library can be found. Using this option only those modules specifically enabled will be checked for and built. The option may be specified any number of times. .. cmdoption:: --help, -h Display a help message. .. cmdoption:: --license-dir The license files needed by the commercial version of PyQt4 can be found in the directory ````. .. cmdoption:: --no-deprecated All Qt v4 features that have been deprecated in Qt v5 will be disabled. This is useful when porting PyQt4 applications to PyQt5. .. cmdoption:: --no-designer-plugin The Qt Designer plugin will not be built. .. cmdoption:: --no-docstrings The PyQt4 modules will not contain automatically generated docstrings. .. cmdoption:: --no-python-dbus The Qt support for the standard Python DBus bindings is disabled. .. cmdoption:: --no-qsci-api The :file:`PyQt4.api` QScintilla API file is not installed even if QScintilla does appear to be installed. .. cmdoption:: --no-sip-files The ``.sip`` files for the PyQt4 modules will not be installed. .. cmdoption:: --no-tools .. versionadded:: 4.11 The ``pyuic4``, ``pyrcc4`` and ``pylupdate4`` tools will not be built. .. cmdoption:: --no-timestamp, -T Normally the header comments of each generated C/C++ source file includes a timestamp corresponding to when the file was generated. This option suppresses the inclusion of the timestamp. .. cmdoption:: --plugin , -t If Qt has been built as static libraries then the static plugin ```` will be linked with the appropriate PyQt4 module. The option may be specified any number of times. .. cmdoption:: --protected-is-public On certain platforms the size of PyQt4 modules can be significantly reduced by redefining the C++ ``protected`` keyword as ``public`` during compilation. This option enables this behaviour and is the default on Linux and MacOS/X. .. cmdoption:: --protected-not-public The default redefinition of ``protected`` to ``public`` during compilation on Linux and MacOS/X is disabled. .. cmdoption:: --pyuic4-interpreter ```` is the name of the Python interpreter used in the pyuic4 wrapper. The default is platform dependent. .. cmdoption:: --qmake , -q Qt's :program:`qmake` program is used to determine how your Qt installation is laid out. Normally :program:`qmake` is found on your :envvar:`PATH`. This option can be used to specify a particular instance of :program:`qmake` to use. This option is not available on Windows where :program:`qmake` must be on :envvar:`PATH`. .. cmdoption:: --qsci-api, -a The :file:`PyQt4.api` QScintilla API file is installed even if QScintilla does not appear to be installed. This option is implied if the :option:`--qsci-api-destdir` option is specified. .. cmdoption:: --qsci-api-destdir , -n The QScintilla API file will be installed in the :file:`python` subdirectory of the :file:`api` subdirectory of the directory ````. .. cmdoption:: --sip The :program:`sip` program is used to generate PyQt4's C++ source code. Normally :program:`sip` is found on your :envvar:`PATH`. This option can be used to specify a particular instance of :program:`sip` to use. .. cmdoption:: --sip-incdir The ``sip.h`` header file can be found in the directory ````. .. cmdoption:: --sipdir , -v The ``.sip`` files for the PyQt4 modules will be installed in the directory ````. .. cmdoption:: --spec The argument ``-spec SPEC`` will be passed to :program:`qmake`. The default behaviour is platform specific. On Windows :program:`configure-ng.py` will choose the value that is correct for the version of Python that is being used. (However if you have built Python yourself then you may need to explicitly specify ````.) On MacOS :program:`configure-ng.py` will try and avoid ``macx-xcode`` if possible.) .. cmdoption:: --static, -k The PyQt4 modules will be built as static libraries. This is useful when building a custom interpreter with the PyQt4 modules built in to the interpreter. .. cmdoption:: --sysroot .. versionadded:: 4.11 ```` is the name of an optional directory that replaces ``sys.prefix`` in the names of other directories (specifically those specifying where the various PyQt4 components will be installed and where the Python include and library directories can be found). It is typically used when cross-compiling or when building a static version of PyQt4. See :ref:`ref-configuration-files`. .. cmdoption:: --target-py-version .. versionadded:: 4.11 ```` is the major and minor version (e.g. ``3.4``) of the version of Python being targetted. By default the version of Python being used to run the :program:`configure.py` script is used. It is typically used when cross-compiling. See :ref:`ref-configuration-files`. .. cmdoption:: --trace, -r The generated PyQt4 modules contain additional tracing code that is enabled using SIP's :func:`sip.settracemask` function. .. cmdoption:: --verbose, -w Compiler commands and any output issued during configuration is displayed instead of being suppressed. Use this if :program:`configure-ng.py` is having problems to see what exactly is going wrong. .. cmdoption:: --version Display the PyQt4 version number. Any remaining command line arguments are expected to be in the form ``name=value`` or ``name+=value``. Such arguments are added to any :program:`qmake` ``.pro`` file created by :program:`configure-ng.py`. Using :program:`configure.py` ............................. The :program:`configure.py` script is used to configure PyQt4 as follows:: python configure.py This assumes that the Python interpreter is on your path. Something like the following may be appropriate on Windows:: c:\python34\python configure.py If you have multiple versions of Python installed then make sure you use the interpreter for which you wish to build PyQt4 for. The full set of command line options is: .. program:: configure.py .. cmdoption:: --assume-shared Normally Qt is checked to see if it has been built as shared libraries. Some Linux distributions configure their Qt builds to make this check unreliable. This option ignores the result of the check and assumes that Qt has been built as shared libraries. .. cmdoption:: --bindir , -b The :program:`pyuic4`, :program:`pyrcc4` and :program:`pylupdate4` utilities will be installed in the directory ````. .. cmdoption:: --concatenate, -c The C++ source files for a Python module will be concatenated. This results in significantly reduced compilation times. Most, but not all, C++ compilers can handle the large files that result. See also the :option:`--concatenate-split` option. .. cmdoption:: --concatenate-split , -j If the :option:`--concatenate` option is used to concatenate the C++ source files then this option determines how many files are created. The default is 1. .. cmdoption:: --confirm-license Using this confirms that you accept the terms of the PyQt4 license. .. cmdoption:: --consolidate, -g Normally each PyQt4 module (except for the :mod:`~PyQt4.Qt` module) is linked against the corresponding Qt library. This option creates a module called :mod:`~PyQt4._qt` which is linked against all the required Qt libraries and the other modules are stub modules that populate their module dictionaries from this one. This is useful when linking against static Qt libraries to eliminate the need to distribute the Qt libraries while minimising the memory footprint of the PyQt4 modules. .. cmdoption:: --dbus , -s The :file:`dbus-python.h` header file of the dbus-python package can be found in the directory ``/dbus``. .. cmdoption:: --debug, -u The PyQt4 modules will be built with debugging symbols. On Windows this requires that a debug version of Python is installed. .. cmdoption:: --destdir , -d The PyQt4 Python package will be installed in the directory ````. The default is the Python installation's :file:`site-packages` directory. If you use this option then the :envvar:`PYTHONPATH` environment variable must include ````. .. cmdoption:: --enable , -e Normally all PyQt4 modules are enabled and are built if the corresponding Qt library can be found. Using this option only those modules specifically enabled will be checked for and built. The option may be specified any number of times. .. cmdoption:: --help, -h Display a help message. .. cmdoption:: --no-deprecated All Qt v4 features that have been deprecated in Qt v5 will be disabled. This is useful when porting PyQt4 applications to PyQt5. .. cmdoption:: --no-designer-plugin The Qt Designer plugin will not be built. .. cmdoption:: --no-docstrings The PyQt4 modules will not contain automatically generated docstrings. .. cmdoption:: --no-qsci-api The :file:`PyQt4.api` QScintilla API file is not installed even if QScintilla does appear to be installed. .. cmdoption:: --no-sip-files The ``.sip`` files for the PyQt4 modules will not be installed. .. cmdoption:: --no-timestamp, -T Normally the header comments of each generated C/C++ source file includes a timestamp corresponding to when the file was generated. This option suppresses the inclusion of the timestamp. .. cmdoption:: --plugin , -t If Qt has been built as static libraries then the static plugin ```` will be linked with the appropriate PyQt4 module. The option may be specified any number of times. .. cmdoption:: --plugin-destdir , -p The Qt Designer plugin that manages plugins implemented in Python will be installed in the :file:`designer` subdirectory of the directory ````. .. cmdoption:: --protected-is-public On certain platforms the size of PyQt4 modules can be significantly reduced by redefining the C++ ``protected`` keyword as ``public`` during compilation. This option enables this behaviour and is the default on Linux and MacOS/X. .. cmdoption:: --protected-not-public The default redefinition of ``protected`` to ``public`` during compilation on Linux and MacOS/X is disabled. .. cmdoption:: --qmake , -q Qt's :program:`qmake` program is used to determine how your Qt installation is laid out. Normally :program:`qmake` is found on your :envvar:`PATH`. This option can be used to specify a particular instance of :program:`qmake` to use. This option is not available on Windows. .. cmdoption:: --qsci-api, -a The :file:`PyQt4.api` QScintilla API file is installed even if QScintilla does not appear to be installed. This option is implied if the :option:`--qsci-api-destdir` option is specified. .. cmdoption:: --qsci-api-destdir , -n The QScintilla API file will be installed in the :file:`python` subdirectory of the :file:`api` subdirectory of the directory ````. .. cmdoption:: --sipdir , -v The ``.sip`` files for the PyQt4 modules will be installed in the directory ````. .. cmdoption:: --static, -k The PyQt4 modules will be built as static libraries. This is useful when building a custom interpreter with the PyQt4 modules built in to the interpreter. .. cmdoption:: --trace, -r The generated PyQt4 modules contain additional tracing code that is enabled using SIP's :func:`sip.settracemask` function. .. cmdoption:: --use-arch When :program:`pyuic4` calls the Python interpreter on MacOS it will be run using the architecture ````. See the section :ref:`ref-macos`. .. cmdoption:: --verbose, -w Compiler commands and any output issued during configuration is displayed instead of being suppressed. Use this if :program:`configure.py` is having problems to see what exactly is going wrong. .. cmdoption:: --version Display the PyQt4 version number. .. _ref-macos: Configuring SIP and PyQt4 for MacOS ................................... Note that this section only applies if you are using the :program:`configure.py` script to configure PyQt4. The :program:`configure-ng.py` script leaves it to Qt's :program:`qmake` program to handle the details. :program:`configure-ng.py` does not support the creation of universal binaries. Building applications for MacOS can be a complex process. Typically the following need to be taken into account: - the architectures (i.e. i386, x86_64, ppc) that you want to support - the earliest version of MacOS you want to support (i.e. the deployment target) - the version of the SDK you want to use. If you are using a binary installer for Python and/or Qt then you also need to consider how they have been built regarding the above, and what bugs they have. SIP's and PyQt4's :program:`configure.py` scripts provide the necessary command line options to allow the correct configurations to be specified - the trick is to work out which options to use depending on the versions of Python and Qt you have installed. SIP provides the following command line options to its :program:`configure.py` script. - ``--arch `` specifies the target architecture and may be specified a number of times. - ``--universal`` is a shortcut for ``--arch i386 --arch ppc``. - ``--deployment-target `` specifies the earliest version of MacOS you want to support. This sets the :envvar:`MACOSX_DEPLOYMENT_TARGET` environment variable and should be used rather than setting the environment variable in the shell (to work around bugs in some versions of Python). - ``--sdk `` specifies the SDK to use. PyQt4 provides the :option:`--use-arch ` option that specifies which architecture certain PyQt4 tools (actually only :program:`pyuic4` at the moment) will use when running Python. For example, if your Qt installation is 32 bits, and your Python installation is 32 bits and 64 bits then you will need to specify ``--use-arch i386`` to ensure that :program:`pyuic4` runs the 32 bit version of Python. Building PyQt4 -------------- The next step is to build PyQt4 by running your platform's :program:`make` command. For example:: make The final step is to install PyQt4 by running the following command:: make install (Depending on your system you may require root or administrator privileges.) This will install the various PyQt4 components. .. _ref-configuration-files: Configuring with Configuration Files ------------------------------------ The :program:`configure.py` script normally introspects the Python installation of the interpreter running it in order to determine the names of the various files and directories it needs. This is fine for a native build of PyQt4 but isn't appropriate when cross-compiling. In this case it is possible to supply a configuration file, specified using the :option:`--configuration` option, which contains definitions of all the required values. A configuration file is made up of a number of named sections each of which contains a number of configuration items. The format of a configuration file is as follows: - a section name is a single line with the name enclosed between ``[`` and ``]`` - a configuration item is a single line containing a name/value pair separated by ``=`` - values may be extended to lines immediately following if they are indented by at least one space - a value may include another value by embedding the name of that value enclosed between ``%(`` and ``)`` - comments begin with ``#`` and continue to the end of the line - blank lines are ignored. Those configuration items that appear before the first section name are automatically added to all sections. A configuration file defines a section for each version of Qt that requires a different configuration. :program:`configure.py` will choose the most appropriate section according to the version of Qt you are actually using. For example, if a configuration file contains sections for Qt v5.3 and Qt v5.1 and you are using Qt v5.2.1 then the section for Qt v5.1 will be chosen. :program:`configure.py` provides the following preset values for a configuration: ``py_major`` is the major version number of the target Python installation. ``py_minor`` is the minor version number of the target Python installation. ``sysroot`` is the name of the system root directory. This is specified with the :option:`--sysroot` option. The following is an example configuration file:: # The target Python installation. py_platform = linux py_inc_dir = %(sysroot)/usr/include/python%(py_major).%(py_minor) py_pylib_dir = %(sysroot)/usr/lib/python%(py_major).%(py_minor)/config py_pylib_lib = python%(py_major).%(py_minor)mu # The target PyQt installation. pyqt_module_dir = %(sysroot)/usr/lib/python%(py_major)/dist-packages pyqt_bin_dir = %(sysroot)/usr/bin pyqt_sip_dir = %(sysroot)/usr/share/sip/PyQt4 pyuic_interpreter = /usr/bin/python%(py_major).%(py_minor) pyqt_disabled_features = PyQt_Desktop_OpenGL PyQt_qreal_double # Qt configuration common to all versions. qt_shared = True [Qt 5.1] pyqt_modules = QtCore QtDBus QtDesigner QtGui QtHelp QtMultimedia QtMultimediaWidgets QtNetwork QtOpenGL QtPrintSupport QtQml QtQuick QtSensors QtSerialPort QtSql QtSvg QtTest QtWebKit QtWebKitWidgets QtWidgets QtXmlPatterns _QOpenGLFunctions_ES2 This example contains a section for Qt v5.1. We have defined a number of values before the start of the section as they are not specific to any particular version of Qt. Note that if you use this configuration with a version of Qt earlier than v5.1 then you will get an error. The following values can be specified in the configuration file: ``qt_shared`` is set if Qt has been built as shared libraries. The default value is ``False``. ``py_platform`` is the target Python platform. ``py_inc_dir`` is the target Python include directory, i.e. the directory containing the ``Python.h`` file. ``py_pylib_dir`` is the target Python library directory. ``py_pylib_lib`` is the target Python interpreter library. It should not include any platform-specific prefix or suffix. ``pyqt_disabled_features`` is the space separated list of features (as defined by SIP's ``%Feature`` directive) that should be disabled. ``pyqt_module_dir`` is the target directory where the PyQt4 modules will be installed. It can be overridden by the :option:`--destdir` option. ``pyqt_modules`` is the space separated list of PyQt4 modules that will be built. It can be overridden by the :option:`--enable` option. ``pyqt_bin_dir`` is the name of the target directory where the PyQt4 related executables will be installed. It can be overridden by the :option:`--bindir` option. ``pyqt_sip_dir`` is the name of the target directory where the PyQt4 ``.sip`` files will be installed. It can be overridden by the :option:`--sipdir` option. ``pyuic_interpreter`` is the name of the Python interpreter (as it would be called from the target system) that will be used to run :program:`pyuic4`. It can be overridden by the :option:`--pyuic4-interpreter` option. PyQt-x11-gpl-4.11.4/doc/sphinx/introduction.rst0000644000076500000240000002072212536324427021310 0ustar philstaff00000000000000Introduction ============ This is the reference guide for PyQt4 4.11.4. PyQt4 is a set of `Python `__ bindings for v4 and v5 of the Qt application framework from `Digia `__. There is a separate `PyQt4 Class Reference `__. Qt is a set of C++ libraries and development tools that includes platform independent abstractions for graphical user interfaces, networking, threads, Unicode, regular expressions, SQL databases, SVG, OpenGL, XML, and user and application settings. PyQt4 implements 440 of these classes as a set of Python modules. PyQt4 supports the Windows, Linux, UNIX and MacOS/X platforms. PyQt4 does not include Qt itself - you must obtain it separately. The homepage for PyQt4 is http://www.riverbankcomputing.com/software/pyqt/. Here you will always find the latest stable version, current development previews, and the latest version of this documentation. PyQt4 is built using the `SIP bindings generator `__. SIP must be installed in order to build and use PyQt4. Earlier versions of Qt are supported by PyQt v3. License ------- PyQt4 is dual licensed on all platforms under the Riverbank Commercial License and the GPL v3. Your PyQt4 license must be compatible with your Qt license. If you use the GPL versions then your own code must also use a compatible license. PyQt4, unlike Qt, is not available under the LGPL. You can purchase a commercial PyQt4 license `here `__. PyQt4 Components ---------------- PyQt4 comprises a number of different components. First of all there are a number of Python extension modules. These are all installed in the :mod:`PyQt4` Python package. - The :mod:`~PyQt4.QtCore` module. This contains the core non-GUI classes, including the event loop and Qt's signal and slot mechanism. It also includes platform independent abstractions for Unicode, threads, mapped files, shared memory, regular expressions, and user and application settings. - The :mod:`~PyQt4.QtGui` module. This contains the majority of the GUI classes. - The :mod:`~PyQt4.QtHelp` module. This contains classes for creating and viewing searchable documentation. - The :mod:`~PyQt4.QtNetwork` module. This module contains classes for writing UDP and TCP clients and servers. It includes classes that implement FTP and HTTP clients and support DNS lookups. - The :mod:`~PyQt4.QtOpenGL` module. This module contains classes that enable the use of OpenGL in rendering 3D graphics in PyQt4 applications. - The :mod:`~PyQt4.QtScript` module. This module contains classes that enable PyQt4 applications to be scripted using Qt's JavaScript interpreter. - The :mod:`~PyQt4.QtScriptTools` module. This module contains classes that contain additional components (e.g. a debugger) that are used with Qt's JavaScript interpreter. - The :mod:`~PyQt4.QtSql` module. This module contains classes that integrate with SQL databases. It includes editable data models for database tables that can be used with GUI classes. It also includes an implementation of `SQLite `__. - The :mod:`~PyQt4.QtSvg` module. This module contains classes for displaying the contents of SVG files. - The :mod:`~PyQt4.QtTest` module. This module contains functions that enable unit testing of PyQt4 applications. (PyQt4 does not implement the complete Qt unit test framework. Instead it assumes that the standard Python unit test framework will be used and implements those functions that simulate a user interacting with a GUI.) - The :mod:`~PyQt4.QtWebKit` module. This module implements a web browser engine based on the WebKit open source browser engine. - The :mod:`~PyQt4.QtXml` module. This module contains classes that implement SAX and DOM interfaces to Qt's XML parser. - The :mod:`~PyQt4.QtXmlPatterns` module. This module contains classes that implement XQuery and XPath support for XML and custom data models. - The :mod:`~PyQt4.phonon` module. This module contains classes that implement a cross-platform multimedia framework that enables the use of audio and video content in PyQt4 applications. - The :mod:`~PyQt4.QtDBus` module. This Unix-only module provides classes that support Inter-Process Communication using the D-Bus protocol. - The :mod:`~PyQt4.QtDeclarative` module. This module provides a declarative framework for building highly dynamic, custom user interfaces using QML. - The :mod:`~PyQt4.QtMultimedia` module. This module provides low-level multimedia functionality. Application developers would normally use the :mod:`~PyQt4.phonon` module. - The :mod:`~PyQt4.QtAssistant` module. This module contains classes that allow Qt Assistant to be integrated with a PyQt4 application to provide online help. This module is not available with Qt v4.7 and later - use the :mod:`~PyQt4.QtHelp` module instead. - The :mod:`~PyQt4.QtDesigner` module. This module contains classes that allow Qt Designer to be extended using PyQt4. See :ref:`ref-designer-plugins` for a full description of how to do this. - The :mod:`~PyQt4.QAxContainer` module. This Windows-only module contains classes that allow access to ActiveX controls and COM objects. - The :mod:`~PyQt4.Qt` module. This module consolidates the classes contained in all of the modules described above into a single module. This has the advantage that you don't have to worry about which underlying module contains a particular class. It has the disadvantage that it loads the whole of the Qt framework, thereby increasing the memory footprint of an application. Whether you use this consolidated module, or the individual component modules is down to personal taste. - The `DBus `__ support module is installed as :mod:`dbus.mainloop.qt`. This module provides support for the Qt event loop in the same way that the :mod:`dbus.mainloop.glib` included with the standard ``dbus-python`` bindings package provides support for the GLib event loop. The API is described in :ref:`ref-dbus`. It is only available if the ``dbus-python`` v0.80 (or later) bindings package is installed. The :mod:`~PyQt4.QtDBus` module provides a more Qt-like interface to DBus. - The :mod:`~PyQt4.uic` module. This module contains classes for handling the ``.ui`` files created by Qt Designer that describe the whole or part of a graphical user interface. It includes classes that load a ``.ui`` file and render it directly, and classes that generate Python code from a ``.ui`` file for later execution. - The :mod:`~PyQt4.pyqtconfig` module is an extention of the SIP build system and is created when PyQt4 is configured. It encapsulates all the necessary information about your Qt installation and makes it easier to write installation scripts for bindings built on top of PyQt4. It is covered in detail in :ref:`ref-build-system`. PyQt4 also contains a number of utility programs. - :program:`pyuic4` corresponds to the Qt :program:`uic` utility. It converts GUIs created using Qt Designer to Python code. - :program:`pyrcc4` corresponds to the Qt :program:`rcc` utility. It embeds arbitrary resources (eg. icons, images, translation files) described by a resource collection file in a Python module. .. note:: It will only be included if your copy of Qt includes the XML module. - :program:`pylupdate4` corresponds to the Qt :program:`lupdate` utility. It extracts all of the translatable strings from Python code and creates or updates ``.ts`` translation files. These are then used by Qt Linguist to manage the translation of those strings. .. note:: It will only be included if your copy of Qt includes the XML module. When PyQt4 is configured a file called :file:`PyQt4.api` is generated. This can be used by the QScintilla editor component (at http://www.riverbankcomputing.com/software/qscintilla/) to enable the use of auto-completion and call tips when editing PyQt4 code. The API file is installed automatically if QScintilla is already installed. PyQt4 includes a large number of examples. These are ports to Python of many of the C++ examples provided with Qt. They can be found in the :file:`examples` directory. Finally, PyQt4 contains the ``.sip`` files used by SIP to generate PyQt4 itself. These can be used by developers of bindings of other Qt based class libraries - for example `PyQwt and PyQwt3D `__. PyQt-x11-gpl-4.11.4/doc/sphinx/keyword_arguments.rst0000644000076500000240000000146412425374020022331 0ustar philstaff00000000000000Support for Keyword Arguments ============================= Starting with v4.7 PyQt4 supports the use of keyword arguments for optional arguments. One thing to be aware of is that, although the PyQt4 and Qt documentation may indicate that an argument has a particular name, you may find that PyQt4 actually uses a different name. This is because the name of an argument is not part of the Qt API and there is some inconsistency in the way that similar arguments are named. Different versions of Qt may use a different name for an argument which wouldn't affect the C++ API but would break the Python API. The docstrings that PyQt4 generates for all classes, functions and methods will contain the correct argument names. In a future version of PyQt4 the documentation will also contain the correct argument names. PyQt-x11-gpl-4.11.4/doc/sphinx/new_style_signals_slots.rst0000644000076500000240000003304012527653724023546 0ustar philstaff00000000000000New-style Signal and Slot Support ================================= This section describes the new style of connecting signals and slots introduced in PyQt4 v4.5. One of the key features of Qt is its use of signals and slots to communicate between objects. Their use encourages the development of reusable components. A signal is emitted when something of potential interest happens. A slot is a Python callable. If a signal is connected to a slot then the slot is called when the signal is emitted. If a signal isn't connected then nothing happens. The code (or component) that emits the signal does not know or care if the signal is being used. The signal/slot mechanism has the following features. - A signal may be connected to many slots. - A signal may also be connected to another signal. - Signal arguments may be any Python type. - A slot may be connected to many signals. - Connections may be direct (ie. synchronous) or queued (ie. asynchronous). - Connections may be made across threads. - Signals may be disconnected. Unbound and Bound Signals ------------------------- A signal (specifically an unbound signal) is an attribute of a class that is a sub-class of ``QObject``. When a signal is referenced as an attribute of an instance of the class then PyQt4 automatically binds the instance to the signal in order to create a *bound signal*. This is the same mechanism that Python itself uses to create bound methods from class functions. A bound signal has ``connect()``, ``disconnect()`` and ``emit()`` methods that implement the associated functionality. It also has a ``signal`` attribute that is the signature of the signal that would be returned by Qt's ``SIGNAL()`` macro. A signal may be overloaded, ie. a signal with a particular name may support more than one signature. A signal may be indexed with a signature in order to select the one required. A signature is a sequence of types. A type is either a Python type object or a string that is the name of a C++ type. The name of a C++ type is automatically normalised so that, for example, ``QString`` can be used instead of the non-normalised ``const QString &``. If a signal is overloaded then it will have a default that will be used if no index is given. When a signal is emitted then any arguments are converted to C++ types if possible. If an argument doesn't have a corresponding C++ type then it is wrapped in a special C++ type that allows it to be passed around Qt's meta-type system while ensuring that its reference count is properly maintained. Defining New Signals with :func:`~PyQt4.QtCore.pyqtSignal` ---------------------------------------------------------- PyQt4 automatically defines signals for all Qt's built-in signals. New signals can be defined as class attributes using the :func:`~PyQt4.QtCore.pyqtSignal` factory. .. function:: PyQt4.QtCore.pyqtSignal(types[, name]) Create one or more overloaded unbound signals as a class attribute. :param types: the types that define the C++ signature of the signal. Each type may be a Python type object or a string that is the name of a C++ type. Alternatively each may be a sequence of type arguments. In this case each sequence defines the signature of a different signal overload. The first overload will be the default. :param name: the name of the signal. If it is omitted then the name of the class attribute is used. This may only be given as a keyword argument. :rtype: an unbound signal The following example shows the definition of a number of new signals:: from PyQt4.QtCore import QObject, pyqtSignal class Foo(QObject): # This defines a signal called 'closed' that takes no arguments. closed = pyqtSignal() # This defines a signal called 'rangeChanged' that takes two # integer arguments. range_changed = pyqtSignal(int, int, name='rangeChanged') # This defines a signal called 'valueChanged' that has two overloads, # one that takes an integer argument and one that takes a QString # argument. Note that because we use a string to specify the type of # the QString argument then this code will run under Python v2 and v3. valueChanged = pyqtSignal([int], ['QString']) New signals should only be defined in sub-classes of ``QObject``. They must be part of the class definition and cannot be dynamically added as class attributes after the class has been defined. New signals defined in this way will be automatically added to the class's ``QMetaObject``. This means that they will appear in Qt Designer and can be introspected using the ``QMetaObject`` API. Overloaded signals should be used with care when an argument has a Python type that has no corresponding C++ type. PyQt4 uses the same internal C++ class to represent such objects and so it is possible to have overloaded signals with different Python signatures that are implemented with identical C++ signatures with unexpected results. The following is an example of this:: class Foo(QObject): # This will cause problems because each has the same C++ signature. valueChanged = pyqtSignal([dict], [list]) Connecting, Disconnecting and Emitting Signals ---------------------------------------------- Signals are connected to slots using the :meth:`connect` method of a bound signal. .. method:: connect(slot[, type=PyQt4.QtCore.Qt.AutoConnection[, no_receiver_check=False]]) Connect a signal to a slot. An exception will be raised if the connection failed. :param slot: the slot to connect to, either a Python callable or another bound signal. :param type: the type of the connection to make. :param no_receiver_check: suppress the check that the underlying C++ receiver instance still exists and deliver the signal anyway. Signals are disconnected from slots using the :meth:`disconnect` method of a bound signal. .. method:: disconnect([slot]) Disconnect one or more slots from a signal. An exception will be raised if the slot is not connected to the signal or if the signal has no connections at all. :param slot: the optional slot to disconnect from, either a Python callable or another bound signal. If it is omitted then all slots connected to the signal are disconnected. Signals are emitted from using the :meth:`emit` method of a bound signal. .. method:: emit(\*args) Emit a signal. :param args: the optional sequence of arguments to pass to any connected slots. The following code demonstrates the definition, connection and emit of a signal without arguments:: from PyQt4.QtCore import QObject, pyqtSignal class Foo(QObject): # Define a new signal called 'trigger' that has no arguments. trigger = pyqtSignal() def connect_and_emit_trigger(self): # Connect the trigger signal to a slot. self.trigger.connect(self.handle_trigger) # Emit the signal. self.trigger.emit() def handle_trigger(self): # Show that the slot has been called. print "trigger signal received" The following code demonstrates the connection of overloaded signals:: from PyQt4.QtGui import QComboBox class Bar(QComboBox): def connect_activated(self): # The PyQt4 documentation will define what the default overload is. # In this case it is the overload with the single integer argument. self.activated.connect(self.handle_int) # For non-default overloads we have to specify which we want to # connect. In this case the one with the single string argument. # (Note that we could also explicitly specify the default if we # wanted to.) self.activated[str].connect(self.handle_string) def handle_int(self, index): print "activated signal passed integer", index def handle_string(self, text): print "activated signal passed QString", text Connecting Signals Using Keyword Arguments ------------------------------------------ It is also possible to connect signals by passing a slot as a keyword argument corresponding to the name of the signal when creating an object, or using the ``pyqtConfigure()`` method of ``QObject``. For example the following three fragments are equivalent:: act = QtGui.QAction("Action", self) act.triggered.connect(self.on_triggered) act = QtGui.QAction("Action", self, triggered=self.on_triggered) act = QtGui.QAction("Action", self) act.pyqtConfigure(triggered=self.on_triggered) The :func:`~PyQt4.QtCore.pyqtSlot` Decorator -------------------------------------------- Although PyQt4 allows any Python callable to be used as a slot when connecting signals, it is sometimes necessary to explicitly mark a Python method as being a Qt slot and to provide a C++ signature for it. PyQt4 provides the :func:`~PyQt4.QtCore.pyqtSlot` function decorator to do this. .. function:: PyQt4.QtCore.pyqtSlot(types[, name[, result]]) Decorate a Python method to create a Qt slot. :param types: the types that define the C++ signature of the slot. Each type may be a Python type object or a string that is the name of a C++ type. :param name: the name of the slot that will be seen by C++. If omitted the name of the Python method being decorated will be used. This may only be given as a keyword argument. :param result: the type of the result and may be a Python type object or a string that specifies a C++ type. This may only be given as a keyword argument. Connecting a signal to a decorated Python method also has the advantage of reducing the amount of memory used and is slightly faster. For example:: from PyQt4.QtCore import QObject, pyqtSlot class Foo(QObject): @pyqtSlot() def foo(self): """ C++: void foo() """ @pyqtSlot(int, str) def foo(self, arg1, arg2): """ C++: void foo(int, QString) """ @pyqtSlot(int, name='bar') def foo(self, arg1): """ C++: void bar(int) """ @pyqtSlot(int, result=int) def foo(self, arg1): """ C++: int foo(int) """ @pyqtSlot(int, QObject) def foo(self, arg1): """ C++: int foo(int, QObject *) """ It is also possible to chain the decorators in order to define a Python method several times with different signatures. For example:: from PyQt4.QtCore import QObject, pyqtSlot class Foo(QObject): @pyqtSlot(int) @pyqtSlot('QString') def valueChanged(self, value): """ Two slots will be defined in the QMetaObject. """ Connecting Slots By Name ------------------------ PyQt4 supports the ``QtCore.QMetaObject.connectSlotsByName()`` function that is most commonly used by :program:`pyuic4` generated Python code to automatically connect signals to slots that conform to a simple naming convention. However, where a class has overloaded Qt signals (ie. with the same name but with different arguments) PyQt4 needs additional information in order to automatically connect the correct signal. For example the ``QtGui.QSpinBox`` class has the following signals:: void valueChanged(int i); void valueChanged(const QString &text); When the value of the spin box changes both of these signals will be emitted. If you have implemented a slot called ``on_spinbox_valueChanged`` (which assumes that you have given the ``QSpinBox`` instance the name ``spinbox``) then it will be connected to both variations of the signal. Therefore, when the user changes the value, your slot will be called twice - once with an integer argument, and once with a unicode or ``QString`` argument. This also happens with signals that take optional arguments. Qt implements this using multiple signals. For example, ``QtGui.QAbstractButton`` has the following signal:: void clicked(bool checked = false); Qt implements this as the following:: void clicked(); void clicked(bool checked); The :func:`~PyQt4.QtCore.pyqtSlot` decorator can be used to specify which of the signals should be connected to the slot. For example, if you were only interested in the integer variant of the signal then your slot definition would look like the following:: @pyqtSlot(int) def on_spinbox_valueChanged(self, i): # i will be an integer. pass If you wanted to handle both variants of the signal, but with different Python methods, then your slot definitions might look like the following:: @pyqtSlot(int, name='on_spinbox_valueChanged') def spinbox_int_value(self, i): # i will be an integer. pass @pyqtSlot(str, name='on_spinbox_valueChanged') def spinbox_qstring_value(self, s): # s will be a Python string object (or a QString if they are enabled). pass The following shows an example using a button when you are not interested in the optional argument:: @pyqtSlot() def on_button_clicked(self): pass Mixing New-style and Old-style Connections ------------------------------------------ The implementation of new-style connections is slightly different to the implementation of old-style connections. An application can freely use both styles subject to the restriction that any individual new-style connection should only be disconnected using the new style. Similarly any individual old-style connection should only be disconnected using the old style. You should also be aware that :program:`pyuic4` generates code that uses old-style connections. PyQt-x11-gpl-4.11.4/doc/sphinx/old_style_signals_slots.rst0000644000076500000240000001242512425374020023521 0ustar philstaff00000000000000Old-style Signal and Slot Support ================================= This section describes the older style for connecting signals and slots. It uses the same API that a C++ application would use. This has a number of advantages. - It is well understood and documented. - Any future changes to the C++ API should be easily included. It also has a number of disadvantages. - It requires knowledge of the C++ types of signal arguments. - It is error prone in that if you mis-type the signal name or signature then no exception is raised, either when the signal is connected or emitted. - It is verbose. - It is not Pythonic. This older style of connecting signals and slots will continue to be supported throughout the life of PyQt4. PyQt4 Signals and Qt Signals ---------------------------- Qt signals are statically defined as part of a C++ class. They are referenced using the ``QtCore.SIGNAL()`` function. This method takes a single string argument that is the name of the signal and its C++ signature. For example:: QtCore.SIGNAL('finished(int)') The returned value is normally passed to the ``QtCore.QObject.connect()`` method. PyQt4 allows new signals to be defined dynamically. The act of emitting a PyQt4 signal implicitly defines it. PyQt4 signals are also referenced using the ``QtCore.SIGNAL()`` function. The ``PyQt_PyObject`` Signal Argument Type ------------------------------------------ It is possible to pass any Python object as a signal argument by specifying ``PyQt_PyObject`` as the type of the argument in the signature. For example:: QtCore.SIGNAL('finished(PyQt_PyObject)') While this would normally be used for passing objects like lists and dictionaries as signal arguments, it can be used for any Python type. Its advantage when passing, for example, an integer is that the normal conversions from a Python object to a C++ integer and back again are not required. The reference count of the object being passed is maintained automatically. There is no need for the emitter of a signal to keep a reference to the object after the call to ``QtCore.QObject.emit()``, even if a connection is queued. Short-circuit Signals --------------------- There is also a special form of a PyQt4 signal known as a short-circuit signal. Short-circut signals implicitly declare each argument as being of type ``PyQt_PyObject``. Short-circuit signals do not have a list of arguments or the surrounding parentheses. Short-circuit signals may only be connected to slots that have been implemented in Python. They cannot be connected to Qt slots or the Python callables that wrap Qt slots. PyQt4 Slots and Qt Slots ------------------------ Qt slots are statically defined as part of a C++ class. They are referenced using the ``QtCore.SLOT()`` function. This method takes a single string argument that is the name of the slot and its C++ signature. For example:: QtCore.SLOT('done(int)') The returned value is normally passed to the ``QtCore.QObject.connect()`` method. PyQt4 allows any Python callable to be used as a slot, not just Qt slots. This is done by simply referencing the callable. Because Qt slots are implemented as class methods they are also available as Python callables. Therefore it is not usually necessary to use ``QtCore.SLOT()`` for Qt slots. However, doing so is more efficient as it avoids a conversion to Python and back to C++. Qt allows a signal to be connected to a slot that requires fewer arguments than the signal passes. The extra arguments are quietly discarded. PyQt4 slots can be used in the same way. Note that when a slot is a Python callable its reference count is not increased. This means that a class instance can be deleted without having to explicitly disconnect any signals connected to its methods. However, if a slot is a lambda function or a partial function then its reference count is automatically incremented to prevent it from being immediately garbage collected. Connecting Signals and Slots ---------------------------- Connections between signals and slots (and other signals) are made using the ``QtCore.QObject.connect()`` method. For example:: QtCore.QObject.connect(a, QtCore.SIGNAL('QtSig()'), pyFunction) QtCore.QObject.connect(a, QtCore.SIGNAL('QtSig()'), pyClass.pyMethod) QtCore.QObject.connect(a, QtCore.SIGNAL('QtSig()'), b, QtCore.SLOT('QtSlot()')) QtCore.QObject.connect(a, QtCore.SIGNAL('PySig()'), b, QtCore.SLOT('QtSlot()')) QtCore.QObject.connect(a, QtCore.SIGNAL('PySig'), pyFunction) Disconnecting signals works in exactly the same way using the ``QtCore.QObject.disconnect()`` method. However, not all the variations of that method are supported by PyQt4. Signals must be disconnected one at a time. Emitting Signals ---------------- Any instance of a class that is derived from the ``QtCore.QObject`` class can emit a signal using its ``emit()`` method. This takes a minimum of one argument which is the signal. Any other arguments are passed to the connected slots as the signal arguments. For example:: a.emit(QtCore.SIGNAL('clicked()')) a.emit(QtCore.SIGNAL('pySig'), "Hello", "World") The ``QtCore.pyqtSignature()`` Decorator ---------------------------------------- The ``QtCore.pyqtSignature()`` serves the same purpose as the :func:`~PyQt4.QtCore.pyqtSlot` decorator but has a less Pythonic API. PyQt-x11-gpl-4.11.4/doc/sphinx/pickle.rst0000644000076500000240000000055212425374020020024 0ustar philstaff00000000000000Support for Pickling ==================== The following PyQt4 classes may be pickled. - QByteArray - QChar - QColor - QDate - QDateTime - QKeySequence - QLatin1Char - QLatin1String - QLine - QLineF - QMatrix - QPoint - QPointF - QPolygon - QRect - QRectF - QSize - QSizeF - QString - QTime Also all named enums (``QtCore.Qt.Key`` for example) may be pickled. PyQt-x11-gpl-4.11.4/doc/sphinx/pyqt_qsettings.rst0000644000076500000240000000570312425374020021656 0ustar philstaff00000000000000Support for QSettings ===================== .. versionadded:: v4.8.3 Qt provies the ``QSettings`` class as a platform independent API for the persistent storage and retrieval of application settings. Settings are retrieved using the ``QSettings.value()`` method which, when using v1 of PyQt4's ``QVariant`` API returns a ``QVariant`` object. An application will then typically convert the ``QVariant`` to the appropriate fundamental type using ``QVariant.toBool()``, ``QVariant.toInt()``. The explicit use of these conversion methods works around a problem with the way different platforms implement the storage of settings. Some platforms only ever store string values which means that the type of the original value is lost. Explicitly calling a conversion method provides the missing type information about the value being retrieved. A problem then arises when v2 of the ``QVariant`` API is used (i.e. the default for Python v3) because those explicit conversion methods are not available. Therefore a setting with an integer value of ``42`` may be retrieved as a string value of ``'42'``. This inconsistency is made worse by being platform specific. As a solution to the problem PyQt4's implementation of ``QSettings.value()`` takes an optional third argument called ``type``. This is either a Python type object, e.g. ``int``, or a string that is the name of a C++ type, e.g. ``'QStringList'``. The value returned will be an object of the requested type. For example:: from PyQt4.QtCore import QSettings, QPoint settings = QSettings('foo', 'foo') settings.setValue('int_value', 42) settings.setValue('point_value', QPoint(10, 12)) # This will write the setting to the platform specific storage. del settings settings = QSettings('foo', 'foo') int_value = settings.value('int_value', type=int) print("int_value: %s" % repr(int_value)) point_value = settings.value('point_value', type=QPoint) print("point_value: %s" % repr(point_value)) When this is executed then the following will be displayed for all platforms:: int_value: 42 point_value: PyQt4.QtCore.QPoint(10, 20) If the value of the setting is a container (corresponding to either ``QVariantList``, ``QVariantMap`` or ``QVariantHash``) then the type is applied to the contents of the container. For example:: from PyQt4.QtCore import QSettings settings = QSettings('foo', 'foo') settings.setValue('list_value', [1, 2, 3]) settings.setValue('dict_value', {'one': 1, 'two': 2}) # This will write the setting to the platform specific storage. del settings settings = QSettings('foo', 'foo') list_value = settings.value('list_value', type=int) print("list_value: %s" % repr(list_value)) dict_value = settings.value('dict_value', type=int) print("dict_value: %s" % repr(dict_value)) When this is executed then the following will be displayed for all platforms:: list_value: [1, 2, 3] dict_value: {'one': 1, 'two': 2} PyQt-x11-gpl-4.11.4/doc/sphinx/pyqt_qvariant.rst0000644000076500000240000000142112425374020021453 0ustar philstaff00000000000000Python Objects and QVariant =========================== Qt uses the ``QVariant`` class as a wrapper for any C++ data type. PyQt4 allows any Python object to be wrapped as a ``QVariant`` and passed around Qt's meta-object system like any other type. PyQt4 will try to convert the Python object to a C++ equivalent if it can so that the ``QVariant`` can be passed to other C++ code that doesn't know what a Python object is. Version 2 of PyQt4's ``QVariant`` API will automatically convert a ``QVariant`` back to a Python object of the correct type. Version 1 of the ``QVariant`` API provides the ``QVariant.toPyObject()`` method to convert the ``QVariant`` back to a Python object of the correct type. Both versions will raise a Python exception if the conversion cannot be done. PyQt-x11-gpl-4.11.4/doc/sphinx/python_shell.rst0000644000076500000240000000200212425374020021255 0ustar philstaff00000000000000Using PyQt4 from the Python Shell ================================= PyQt4 installs an input hook (using ``PyOS_InputHook``) that processes events when an interactive interpreter is waiting for user input. This means that you can, for example, create widgets from the Python shell prompt, interact with them, and still being able to enter other Python commands. For example, if you enter the following in the Python shell:: >>> from PyQt4 import QtGui >>> a = QtGui.QApplication([]) >>> w = QtGui.QWidget() >>> w.show() >>> w.hide() >>> The widget would be displayed when ``w.show()`` was entered amd hidden as soon as ``w.hide()`` was entered. The installation of an input hook can cause problems for certain applications (particularly those that implement a similar feature using different means). The :mod:`~PyQt4.QtCore` module contains the :func:`~PyQt4.QtCore.pyqtRemoveInputHook` and :func:`~PyQt4.QtCore.pyqtRestoreInputHook` functions that remove and restore the input hook respectively. PyQt-x11-gpl-4.11.4/doc/sphinx/python_v3.rst0000644000076500000240000002126112425374020020506 0ustar philstaff00000000000000PyQt4 and Python v3 =================== PyQt4 fully supports all versions of Python v3. The default behaviour is different in some areas to the default behaviour with Python v2. These incompatible differences were introduced in order to make PyQt4 more Pythonic. However it is very easy to revert to the default Python v2 behaviour on a class by class basis if required. (See the section :ref:`ref-incompat-apis`.) QAbstractSpinBox ---------------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QAbstractSpinBox.fixup(str input) -> str QAbstractSpinBox.validate(str input, int pos) -> QValidator.State, str, int QChar ----- The ``QChar`` class is implemented as a mapped type that is automatically converted to and from a Python string. QClipboard ---------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QClipboard.text(str subtype, QClipboard.Mode mode=QClipboard.Clipboard) -> str, str QDate ----- The ``QDate.__hash__()`` returns a hash of the string representation so that two objects with the same date will have the same hash. The default behaviour with Python v2 is to return the object's ``id()`` so that two objects with the same date will have different hashes. QDateTime --------- The ``QDateTime.__hash__()`` method returns a hash of the string representation so that two objects with the same date and time will have the same hash. The default behaviour with Python v2 is to return the object's ``id()`` so that two objects with the same date and time will have different hashes. QDateTimeEdit ------------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QDateTimeEdit.fixup(str input) -> str QDateTimeEdit.validate(str input, int pos) -> QValidator.State, str, int QDoubleSpinBox -------------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QDoubleSpinBox.fixup(str input) -> str QDoubleSpinBox.validate(str input, int pos) -> QValidator.State, str, int QDoubleValidator ---------------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QDoubleValidator.validate(str input, int pos) -> QValidator.State, str, int QFileDialog ----------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QFileDialog.getOpenFileName(QWidget parent=None, str caption=None, str dir=None, str filter=None, QFileDialog.Options options=0) -> str QFileDialog.getOpenFileNames(QWidget parent=None, str caption=None, str dir=None, str filter=None, QFileDialog.Options options=0) -> list(str) QFileDialog.getSaveFileName(QWidget parent=None, str caption=None, str dir=None, str filter=None, QFileDialog.Options options=0) -> str The static methods ``QFileDialog.getOpenFileNameAndFilter()``, ``QFileDialog.getOpenFileNamesAndFilter()`` and ``QFileDialog.getSaveFileNameAndFilter()`` have been added which return a tuple of the name(s) and the selected filter. These can also be used with Python v2. QFontMetrics ------------ The methods ``QFontMetrics.widthChar()`` and ``QFontMetrics.boundingRectChar()`` have been added which accept a Python string of length one and call the C++ ``QFontMetrics::width()`` and ``QFontMetrics::boundingRect()`` methods passing the character as a ``QChar`` (rather than a single character ``QString``). QFontMetricsF ------------- The methods ``QFontMetricsF.widthChar()`` and ``QFontMetricsF.boundingRectChar()`` have been added which accept a Python string of length one and call the C++ ``QFontMetricsF::width()`` and ``QFontMetricsF::boundingRect()`` methods passing the character as a ``QChar`` (rather than a single character ``QString``). QIntValidator ------------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QIntValidator.validate(str input, int pos) -> QValidator.State, str, int QLatin1Char ----------- The ``QLatin1Char`` class is not implemented. QLatin1String ------------- The ``QLatin1String`` class is not implemented. QPyNullVariant -------------- The ``QPyNullVariant`` class is used to represent a null ``QVariant``. It is automatically converted to a C++ ``QVariant`` when required. A null C++ ``QVariant`` is automatically converted to a ``QPyNullVariant`` unless the type of the data in the ``QVariant`` itself supports the concept of a null value (i.e. it has an ``isNull()`` method). In this case a null C++ ``QVariant`` is converted to a null instance of the data type. The exception to this rule is that a C++ ``QVariant`` containing a null ``QString`` is always converted to a ``QPyNullVariant``. QRegExpValidator ---------------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QRegExpValidator.validate(str input, int pos) -> QValidator.State, str, int QSettings --------- The ``QSettings.value()`` method takes an optional ``type`` keyword argument that specifies the type of the value to return. It can either be a Python type object or a string specifying the name of a C++ type. Using this argument avoids potential portability problems where the type of a value may not be as expected because the platform specific backend to ``QSettings`` may not store the necessary type information. The argument can also be used with Python v2. QSpinBox -------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QSpinBox.fixup(str input) -> str QSpinBox.validate(str input, int pos) -> QValidator.State, str, int QString ------- The ``QString`` class is implemented as a mapped type that is automatically converted to and from a Python string. In addition a ``None`` is converted to a null ``QString``. However, a null ``QString`` is converted to an empty Python string (and not ``None``). (This is because Qt often returns a null ``QString`` when it should probably return an empty ``QString``.) QStringList ----------- The ``QStringList`` class is implemented as a mapped type that is automatically converted to and from a Python list of strings. QStringMatcher -------------- The ``QStringMatcher`` class is not implemented. QStringRef ---------- The ``QStringRef`` class is implemented as a mapped type that is automatically converted to and from a Python string. QTextDecoder ------------ The following C++ call is not wrapped because it expects ``QString`` to be mutable:: void toUnicode(QString *target, const char *chars, int len) QTextStream ----------- The C++ functions ``bin()``, ``hex()`` and ``oct()`` are named ``bin_()``, ``hex_()`` and ``oct_()`` respectively in Python. This allows the import style ``from PyQt4.QtCore import *`` to be used without them clashing with the Python built-in functions with the same names. The following C++ calls are not wrapped because they expect ``QString`` to be mutable:: QTextStream(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite) void setString(QString *string, QIODevice::OpenMode openMode = QIODevice::ReadWrite) QString *string() QTextStream &operator>>(QChar &c) QTextStream &operator>>(QString &s) QTime ----- The ``QTime.__hash__()`` returns a hash of the string representation so that two objects with the same time will have the same hash. The default behaviour with Python v2 is to return the object's ``id()`` so that two objects with the same time will have different hashes. QUrl ---- The ``QUrl.__hash__()`` method returns a hash of the string representation so that two objects with the same URL will have the same hash. The default behaviour with Python v2 is to return the object's ``id()`` so that two objects with the same URL will have different hashes. QValidator ---------- The following PyQt4 calls have changed signatures to avoid the need for mutable strings:: QValidator.fixup(str input) -> str QValidator.validate(str input, int pos) -> QValidator.State, str, int QVariant -------- The ``QVariant`` class is implemented as a mapped type. Any Python object can be passed when a ``QVariant`` instance is expected. When Qt returns a ``QVariant`` then it will automatically be converted to the original Python object or an equivalent. ``None`` is interpreted as an invalid ``QVariant`` and vice versa. The ``QPyNullVariant`` class is used to represent a null ``QVariant``. QWebPage -------- The following PyQt4 call has a changed signature to avoid the need for mutable strings:: QWebPage.javaScriptPrompt(QWebFrame originatingFrame, str msg, str defaultValue) -> bool, str QXmlStreamWriter ---------------- The following C++ call is not wrapped because it expects ``QString`` to be mutable:: QXmlStreamWriter(QString *string) PyQt-x11-gpl-4.11.4/doc/sphinx/qml.rst0000644000076500000240000001103212425374020017341 0ustar philstaff00000000000000Integrating Python and QML ========================== Qt v4.7 introduced QML as a means of declaratively describing a user interface and using JavaScript as a scripting language within QML. It is possible to write complete standalone QML applications, or to combine them with C++. PyQt4 supports the integration of Python and QML as far as it can - given the limitations of the QML implementation. There are three types of QML application: - *Pure* applications that are written entirely in QML and can be run using the :program:`qmlviewer` tool provided with Qt. PyQt4 fully supports this type of application. The examples provided by :program:`qtdemo.py` under the *Qt Declarative Examples* heading are all of this type. - QML allows ``QObject`` instances to be used in QML applications. QML code is able to call an object's slots and has read and write access to the object's properties. QML code can also respond to changes to the value of a property. PyQt4 fully supports the use objects created in Python in this way. The :program:`minehunt.py` example under the *Demonstrations* heading of :program:`qtdemo.py` is an example of this type of application. - QML also allows ``QObject`` sub-classes to be used in QML applications so that new instances are created from QML. PyQt4 does not support this. The reason is that QML uses information generated at compile time (specifically it uses ``QObject::staticMetaObject``) rather than information created dynamically at run time (i.e. ``QObject::metaObject()``). This approach is fine for a static language like C++ but causes problems for languages such as Python that allow types to created dynamically. This limitation doesn't place any restriction on the functionality of a Python/QML application, it only places restrictions on how that application is written. QML can implement JavaScript functions and define signals. PyQt4 allows both of these to be accessed transparently from Python. The following is a simple example application that displays the current date and time when the user clicks on it. The following is the QML (in the :file:`message.qml`) that defines the user interface:: import Qt 4.7 Rectangle { signal messageRequired; function updateMessage(text) { messageText.text = text } anchors.fill: parent; color: "black" Text { id: messageText anchors.centerIn: parent; color: "white" } MouseArea { anchors.fill: parent onClicked: messageRequired() } } This defines a signal ``messageRequired`` which is emitted when the user clicks on the mouse area. It also implements a function ``updateMessage()`` which updates the message being displayed. The following is the Python code that implements the application logic:: import sys from PyQt4.QtCore import QDateTime, QObject, QUrl, pyqtSignal from PyQt4.QtGui import QApplication from PyQt4.QtDeclarative import QDeclarativeView # This class will emit the current date and time as a signal when # requested. class Now(QObject): now = pyqtSignal(str) def emit_now(self): formatted_date = QDateTime.currentDateTime().toString() self.now.emit(formatted_date) app = QApplication(sys.argv) now = Now() # Create the QML user interface. view = QDeclarativeView() view.setSource(QUrl('message.qml')) view.setResizeMode(QDeclarativeView.SizeRootObjectToView) # Get the root object of the user interface. It defines a # 'messageRequired' signal and JavaScript 'updateMessage' function. Both # can be accessed transparently from Python. rootObject = view.rootObject() # Provide the current date and time when requested by the user interface. rootObject.messageRequired.connect(now.emit_now) # Update the user interface with the current date and time. now.now.connect(rootObject.updateMessage) # Provide an initial message as a prompt. rootObject.updateMessage("Click to get the current date and time") # Display the user interface and allow the user to interact with it. view.setGeometry(100, 100, 400, 240) view.show() app.exec_() Hopefully the comments in the code are sufficient explanation. The important things to note are that the signal and JavaScript function appear as appropriate attributes of the root object ``QDeclarativeItem`` returned by the ``rootObject()`` method of ``QDeclarativeView`` and can be connected to and called respectively. PyQt-x11-gpl-4.11.4/doc/sphinx/qt_properties.rst0000644000076500000240000000711712425374020021461 0ustar philstaff00000000000000Support for Qt Properties ========================= PyQt4 does not support the setting and getting of Qt properties as if they were normal instance attributes. This is because the name of a property often conflicts with the name of the property's getter method. However, PyQt4 does support the initial setting of properties using keyword arguments passed when an instance is created. For example:: act = QtGui.QAction("&Save", self, shortcut=QtGui.QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) The example also demonstrates the use of a keyword argument to connect a signal to a slot. PyQt4 also supports setting the values of properties (and connecting a signal to a slot) using the ``pyqtConfigure()`` method of ``QObject``. For example, the following gives the same results as above:: act = QtGui.QAction("&Save", self) act.pyqtConfigure(shortcut=QtGui.QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) Defining New Qt Properties -------------------------- A new Qt property may be defined using the :func:`~PyQt4.QtCore.pyqtProperty` function. It is used in the same way as the standard Python ``property()`` function. In fact, Qt properties defined in this way also behave as Python properties. .. function:: PyQt4.QtCore.pyqtProperty(type[, fget=None[, fset=None[, freset=None[, fdel=None[, doc=None[, designable=True[, scriptable=True[, stored=True[, user=False[, constant=False[, final=False[, notify=None]]]]]]]]]]]]) Create a property that behaves as both a Python property and a Qt property. :param type: the type of the property. It is either a Python type object or a string that is the name of a C++ type. :param fget: the optional callable used to get the value of the property. :param fset: the optional callable used to set the value of the property. :param freset: the optional callable used to reset the value of the property to its default value. It is ignored by Python :param fdel: the optional callable used to delete the property. It is ignored by Qt. :param doc: the optional docstring of the property. It is ignored by Qt. :param designable: optionally sets the Qt ``DESIGNABLE`` flag. It is ignored by Python :param scriptable: optionally sets the Qt ``SCRIPTABLE`` flag. It is ignored by Python :param stored: optionally sets the Qt ``STORED`` flag. It is ignored by Python :param user: optionally sets the Qt ``USER`` flag. It is ignored by Python :param constant: optionally sets the Qt ``CONSTANT`` flag. It is ignored by Python :param final: optionally sets the Qt ``FINAL`` flag. It is ignored by Python :param notify: the optional unbound notify signal. It is ignored by Python :rtype: the property object. It is also possible to use :func:`~PyQt4.QtCore.pyqtProperty` as a decorator in the same way as the standard Python ``property()`` function. The following example shows how to define an ``int`` property with a getter and setter:: from PyQt4.QtCore import QObject, pyqtProperty class Foo(QObject): def __init__(self): QObject.__init__(self) self._total = 0 @pyqtProperty(int) def total(self): return self._total @total.setter def total(self, value): self._total = value If you prefer the Qt terminology you may also use ``write`` instead of ``setter`` (and ``read`` instead of ``getter``). PyQt-x11-gpl-4.11.4/doc/sphinx/qt_v5.rst0000644000076500000240000000210712527653724017627 0ustar philstaff00000000000000PyQt4 and Qt v5 =============== Building Against Qt v5 ---------------------- PyQt4 can be built against Qt v5 in exactly the same way that it is built against Qt v4. However only a Qt v4 compatible subset of Qt v5 is supported, specifically: - any classes added in Qt v5 *are not* supported - any new features added in Qt v5 to classes that exist in Qt v4 *are* supported - any features that are marked as deprecated in Qt v5 *are* supported. Qt v5 handles connections to signals with optional arguments in a slightly different way than Qt v4. PyQt4 works around this as best it can but cannot do so in the case where signals that have optional arguments in Qt v5 (but not in Qt v4) are emitted using old-style signals (i.e. using :meth:`QObject.emit`). Instead you should use new-style signals (i.e. use the :meth:`emit` method of the bound signal). The :option:`--no-deprecated ` option to PyQt4's :program:`configure.py` can be used to disable the support for the deprecated features. This can be useful in the porting of PyQt4 applications to PyQt5. PyQt-x11-gpl-4.11.4/doc/sphinx/resources.rst0000644000076500000240000000300112425374020020557 0ustar philstaff00000000000000The PyQt4 Resource System ========================= PyQt4 supports Qt's resource system. This is a facility for embedding resources such as icons and translation files in an application. This makes the packaging and distribution of those resources much easier. A ``.qrc`` resource collection file is an XML file used to specify which resource files are to be embedded. The application then refers to the resource files by their original names but preceded by a colon. For a full description, including the format of the ``.qrc`` files, see the Qt Resource System in the Qt documentation. :program:`pyrcc4` ----------------- :program:`pyrcc4` is PyQt4's equivalent to Qt's :program:`rcc` utility and is used in exactly the same way. :program:`pyrcc4` reads the ``.qrc`` file, and the resource files, and generates a Python module that only needs to be ``import`` ed by the application in order for those resources to be made available just as if they were the original files. In addition to the command line options that are common with :program:`rcc`, the following are also supported: .. program:: pyrcc4 .. cmdoption:: -py2 Generate code that will work for all versions of Python v2.x. Although this is the default, the option should be specified explicitly in case the default is changed in a future version. .. cmdoption:: -py3 Generate code that will work for all versions of Python starting with Python v2.6. :program:`pyrcc4` will only be included if your copy of Qt includes the XML module. PyQt-x11-gpl-4.11.4/doc/sphinx/static/0000755000076500000240000000000012527653724017326 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/doc/sphinx/static/classic.css0000644000076500000240000001015212527653724021460 0ustar philstaff00000000000000/* * The stylesheet (based on the Sphinx default). */ @import url("basic.css"); /* -- page layout ----------------------------------------------------------- */ body { font-family: 100% Verdana, Arial, Helvetica, sans-serif; font-size: 12px; background-color: white; color: black; margin: 0; padding: 0; } div.document { background-color: white; } div.documentwrapper { float: left; width: 100%; } div.bodywrapper { margin: 0 0 0 230px; } div.body { background-color: white; color: black; padding: 0 20px 30px 20px; } /* "footer" contains the copyright notice and the Sphinx link. */ div.footer { color: black; background-color: white; width: 100%; padding: 9px 0 9px 0; text-align: center; font-size: 75%; } div.footer a { color: black; text-decoration: underline; } /* "related" contains the title and the previous/next/modules/index links. */ div.related { background-color: white; line-height: 30px; color: black; } div.related a { color: #4186cb; } div.sphinxsidebar { } div.sphinxsidebar h3 { font-family: 'Trebuchet MS', sans-serif; color: black; font-size: 1.4em; font-weight: normal; margin: 0; padding: 0; } div.sphinxsidebar h3 a { color: black; } div.sphinxsidebar h4 { font-family: 'Trebuchet MS', sans-serif; color: black; font-size: 1.3em; font-weight: normal; margin: 5px 0 0 0; padding: 0; } div.sphinxsidebar p { color: black; } div.sphinxsidebar p.topless { margin: 5px 10px 10px 10px; } div.sphinxsidebar ul { margin: 10px; padding: 0; color: black; } div.sphinxsidebar a { color: #4186cb; } div.sphinxsidebar input { border: 1px solid #4186cb; font-family: sans-serif; font-size: 1em; } /* -- body styles ----------------------------------------------------------- */ a { color: #4186cb; text-decoration: none; } a:hover { text-decoration: underline; } div.body p, div.body dd, div.body li { text-align: justify; line-height: 130%; } div.body h1 { font-size: 180%; font-weight: bold; border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-width: 2px; color: white; background-color: #4186cb; padding: 5px; margin-top: 20px; -moz-border-radius: 5px; -webkit-border-radius: 5px; -khtml-border-radius: 5px; } div.body h2 { font-size: 140%; font-weight: normal; border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-width: 2px; color: white; background-color: #4186cb; padding: 5px; margin-top: 20px; -moz-border-radius: 5px; -webkit-border-radius: 5px; -khtml-border-radius: 5px; } h1 a, h2 a { color: white; text-decoration: none; } div.body h3 { font-size: 130%; font-weight: bold; color: black; } a.headerlink { color: white; font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; } div.body p, div.body dd, div.body li { text-align: justify; line-height: 130%; } div.admonition p.admonition-title + p { display: inline; } div.admonition p { margin-bottom: 5px; } div.admonition pre { margin-bottom: 5px; } div.admonition ul, div.admonition ol { margin-bottom: 5px; } div.note { background-color: #eee; border: 1px solid #ccc; } div.seealso { background-color: #ffc; border: 1px solid #ff6; } div.topic { background-color: #eee; } div.warning { background-color: #ffe4e4; border: 1px solid #f66; } p.admonition-title { display: inline; } p.admonition-title:after { content: ":"; } pre { padding: 5px; /* * Note that this isn't our standard "sun" colour which doesn't contrast * too well with the pygments defaults. */ background-color: #fff4c0; color: black; line-height: 120%; border: 1px solid #ac9; border-left: none; border-right: none; } tt { background-color: #ecf0f3; padding: 0 1px 0 1px; font-size: 0.95em; } .warning tt { background: #efc2c2; } .note tt { background: #d6d6d6; } PyQt-x11-gpl-4.11.4/doc/sphinx/static/logo.png0000644000076500000240000000761312425374020020765 0ustar philstaff00000000000000‰PNG  IHDRddÿ€ pHYs!›ò3=IDATxœí]ipTǵþî}FšÑ¾" ‰ÅÕ0¶–K¶q•ˆ‚1òKùyÅË y&.ˆ1ÏqHB‚])W¨Â/6PÁÂ!ÆÙ ‹ØFrŒA hc¤ÑHI³èÞYn~hÔÝ3 f¤ïWwßíô7}ûž>çôN’$Üš:„í»VÙhõkÏKÑ®½75r,Ç t©g į VÂU×u¸Mp·A²Aœœ²xÈ’!Ÿy”3¡œ Eø¦’„O¯tì=c¬1ÙýÍÊŒÞX<15Fu+å†M–”W˜_ÿ¸¾ÇéaÛ3âÕ?Yœž?96ðe®z8ŽÀ^á Ü­Ãy°, ê|h ¡yò O9ùmÇî“Mí=l£V)ÛP˜¹|züp `Ød .ÏïŽÖ}\Ùæ#J¶¾ í¡¹I2¾ß/ïiƒu¬û!|1lY@µQ«µ|œß—G:x®åíÓ7¢Ïoù଄gîÏTÊùaLIN˜ƒùшc €ä@ë¢í)H.Ò¶.?í'K&wÂ&¸7ù~²ÂMÈ\ž—T³7Z¿(½tA2=ÃÓ‰–ѽ+ˆ„]@Ë÷àé" «ïIy$?TM]âKïU‹.O ‹)#K~w´ŽÕ§Jæ%ûŒ)·Æ%pü=XáÃG9š—ÁÓNÖ¤=47‰T¯mo|\?ø=#«¼ÂÌêè÷åÅ<±,ƒv›Ñ¼4‚¦ó›B8ã–¯§—g.Ì‹!Õ×̟|ÝèJ/$«©Cxa:+^½ieýöy:Ñ\±r˜r‡ bš‹ÈûÈqøùÊì qTIÜY^o´ ¨ô&K’°ýo×È Y­à_.É¥ú”$ÂTñˆÈjç`*…ä…µJÙÖ’I*…·kvѽýðõ„Àd}x±•µº<¹,ÃGGo{ŽŒ„àa‚£íÏ‘ÚÄÍãKéôr©¾ûH…9àuȲØ]»N4’êÂ\CñìDz¸{w¤û†‚®?Àº‡ÔVÞ8?Ç@ª<ÖÐåpõ¿(Yol² ^­J«’=[Ä,²œ—ÑöÔH f˜ÿΫ¤ö\Q™g¬=î?ºÑÿ ²êÚz_¢6¹õiÔê"9aZ‰šçð ÙѺ†(«Éå#÷QÍëƒ ­~¶Cô'ëíS7Èô–¯f5tþúvR†áKtýžÔJæ'§ÇzíÎIzû´ÿàò!«Îì8q™ª!ÿµ8Ú<]×`Ù:‡›áòjHrž{tQ:9rì_íõm>ƒË‡¬²³-¤œ—¢õ±£·ÿ4ÌV—Q‚ä@ûÏHmñ´¸œ$ïŠZÞcK–ÅîbõWŸeðEØ,y!€m?„ó¤Æv¼¼Òl±ÓÏ"%ëh…ÙåöNWi±ªü)̰êØ2z¢F,›IqÑÔ¸ƒwærº%vyÉ’€#—¨&öý»“èÊF¼R;zX`?±¢·ÈqøþÝT¯<üU+Ñç½d]¹a#_J…Œ+œÁ8×:wŒº¬‘€Îß’bá̹Ì;ZêÛzªûì.^²Ž3Á…¹1zMŸéÚm†­,¢†¶2x:z‹1ZùF¡?ñ—€œ¾j!Ç–ÜÅ8,m{GÑßQz`ÝGj, §úÈá4¶õ»„JÎß“KI…uäŒØÞ%Å{ób}obc»—À¹kÔÞ:33JE\Û®úö¶G8zNÃíÕÚÕ ~Fu‘õú´y• ݤu^63¬GB#dÁþ)ÎÏÑ“reƒ/_3¦«ŒÍ~§k ýÁ(IÓ'БÕKßasçJÁç¥hûN œ ™‘‚žS€W¯šœª%3’©K´Ø]|­ÉAÎÌNÔð$øÌY3Ìø©Ûîf¸®÷å<—•@íõ&;­•’5‰õÊŠ_…H¾Hƒx‰s’È{†ëæžufd°†öÛÎs3Rè[÷È`?F‹À·tR²’ LÈ¥«&$¢Eœ´ã)146ÏhxÖ5Ÿ¤gâöú^Ý1¦ãÉ !í6'ßå ‘i f‚›ÆåŒ-0×3„tÚ]|w5nEû5˜#ûN†‡šªØÑcíqñN7u¿ªäLlšd ‰h‘í¸RA£¢Kâng£±cÃØÐŒ«AÉ"º=ƒDÑ ¸5bÌ‚gG;ÊÀõ‹h#à¨þ$2„(eÂQåul§¦‘ 8VÊ9>ZM'ün6B6ü=.·7xÚñN‡ªÀë5²€Ç cGÇd4b¡“qê5ržÝÂbêb¾€ò‰¡,!Ï&ES7%$^§àÙõ »N„<'$¢E“H±ÙBÉJ‰QñiÌ~EŸ8å̈yPÎ Å&ê(5FÅOdlXµŒm ÊÙ!-òÀtœÝ›¨áIЀk­·§O{Pä@ÆDGŽÈRÉv2—Gª3Ó‘•¨ácu 2Ç NO5Ý"ÀA]RA#ê²t¹j´‘=IzeŒVÎsÀô T «h`¶†k C(fd@SDŠ,½N/ÀLÆ›xŽÝ!«y âE8h)Y,½ñæ1ÞÄŠ+ÝT(Ï€êžÐˆPçCædsˆv'Àw²õè%+=NMˆ.ÏgÕ4HQ‡LÔðC·šÿYe!¡}ñ^~xPÀÄù¿ÜA¯ZË®Âïdpjvd°1X}±µ^ûÌ’i”¬Ï«-t‘ÈÇAW:ÚrFt«Á{Iè°9ÏÖÐ kñ4_²&§êÈæ(§[*¯` ð†B jøÁt³¼²ÍÕ§of%h&%{­U^²8€MÌp肉îŒRκó?‹ÚPNï-z$éÐêà)ž•@ ~ÔLZ83áÓ+ÌÌûòèÊvÄÒý'.w´tz×ÏJ9¿œ ¯¥dÅhå÷3Imöž1Ò{©æÝÉ3WÔ²”|;^8#žõ†ù8,V-H!C®Æd?ù-3¸â¶ƒóM rg€Ó"ö5R;þMûu³×šÀqøÁ| ¨YYñj6ðt÷É&2ÏAž…Ø_ŒŽ¼aEì6’WÊé–vŸl"G–ýG<»#ýw…­ËO#Zí=Ï1›WôÏC5wä Tóax†Ôœm&1E<DZ¹ ¼~õŒxõŠ9Ô2óÎi#µ5s $î\f È§Câ>Àë‚0Z„=ÌlõÐÜD²Ž €“uýwÓ£ÔÞ[ØE÷Ž£uô˜b*ÞY™Ã†„]Pä’ÚŽ£udQ­‘¯ë7¬,ƒFþØšîlMç˜xɨuÐ?1R‡ ú ˆú©ýõKÓy&¾ýñ¥|bdúØ}ÿà¬ÄYL¢¤75oÄí¼½M]ÚbÄý†ÔjMŽ]Çéú9YÑ…3û%N0Y‡ÅµJïË(8=[ÖÐcœIePÍÉC Õ$î'yµl‚{ËÁj¡Ï"ªUÉ6gå1``HjŒjCa&©6´õüß¡ZºâõH9zûy€”³‘òqÐ{$é•CµMÔø|QV²aÀ ÁrÑ,›ÿ³`ü¬ºóO˜Ô6|RõO°¹P-@ê1bZ°³¼žµ.¬˜“¸ô.ÿ¬”,#‹6ÜŸ9%UGZÞ?oòÙ“ÎÇ#å·Çü¥-FÊßY¦þÿÓ¦/Ò×´4ÝSË3]Iq“üYJ9¿mU.˜ûΩû?ofn Gò‡Ð?”䡆~’ÞgÃcþüY3»L6(·­ÊeŠbHiìj[ö|khr¶G Òü5ë;0?É?Oo˜Áé°‹Õ¼õiÓ¾3FÒíhµìõOÍJ¸¹²=Ô‰ß4YÿçÏWÙÌÀÍMzzy¦OêdçU´®ðåPn ¨æ#q«yz$igy=ûöi”üož25Mèz‘zó«úîMeU,_ ób~¾2›h ¹Ðõ{tl†äp‹Ó"v ÏÕ ›à~åP-;£k”ü/KóXOàMîTR×5Zÿ·¬Š¼&Ä©·–Lšè7†]õhÿlaÚµ±¯ù娮59¶¬fµ„hµìW?œ<Ä1Õ‹ Ó×¶:6•U±‘\*ÿøÒŒ•w÷ ŒÎòöîðÔ®@ìËPÎñkþë—¦]Ç&ÿa²AùZiÞPæ)ÃIDÝfu¾ô^õ£O üüI†ç‹²|6´ôB¼„ΰ½;ŠÙY85t«axØÑ ŒaÇÑ:vÝ`Zšî•U¹qºÑODÝ Ñåyýãz6o’ä¾´’ùÉò)Î;`ÝÛ~ôŒà†Oê|èV#êaVê…Ó-8Û¼çŒQðMW¿bNâSË3oª%~Þ­üÓÀ'_·í,¯góRHU=º(}ñ´Ta÷ Ø?‚£=§àn|Îà¥B]M´EÄÛÎBŽÓ¾ûd“_ªCJö\QÖà:úà¸%²-ÂöÃ×/Õwûµç$iÖÞ›ºhjÜ`ËàºñÄ 8ûþ–Ác†Çæ}a9ø(ðñ%Až Å$(g@9ò¬64x$éÄåŽ}ÿ4²;N{1'+zcqö 뾡àVÉSοŒYŒ“ÆÉ þxgy·Fã#+Œ“ÆÉ ãzVYA`œ¬ 0NV/ýeĘÌ#ã#+Œ“ÆÉ ÿm‹˜Øú*ëIEND®B`‚PyQt-x11-gpl-4.11.4/doc/sphinx/static/logo_tn.ico0000644000076500000240000000217612425374020021453 0ustar philstaff00000000000000 h(  @ݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿݱ…ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿ|½[ÿþþþÿþþþÿþþþÿïÛÇÿòáÐÿõýþÿ»öþÿ•ñþÿ•ðþÿ»öþÿõýþÿòáÐÿïÛÇÿþþþÿþþþÿþþþÿþþþÿþþþÿäÁžÿ䯦ÿŒîüÿàþÿÝþÿÝþÿÝþÿÝþÿàþÿŒîüÿäÅ¥ÿäÁŸÿþþþÿþþþÿþþþÿéͱÿâ˯ÿPèþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿQèþÿã˯ÿéβÿþþþÿùòìÿݱ…ÿsìýÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿtìþÿݱ…ÿùóìÿåáÿÒâÙÿÞþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÞþÿÒâØÿåáÿܯ‚ÿ…îþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿ†îþÿܯ‚ÿݰ„ÿTèþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿTèþÿݰ„ÿݱ„ÿIçþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿIçþÿݱ…ÿݰƒÿeêþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿeêþÿݰƒÿÞ²‡ÿ¦î÷ÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿ¦îöÿÞ²‡ÿîØÂÿãεÿ#âþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿ#âþÿãδÿîØÂÿþýüÿÛ­ÿ»ìîÿÞþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿÞþÿ»ìîÿÛ­ÿþýüÿþþþÿ÷íãÿÛ­~ÿ²íòÿàþÿÝþÿÝþÿÝþÿÝþÿÝþÿÝþÿàþÿ³íòÿÛ­~ÿ÷íãÿþþþÿþþþÿþþþÿöêßÿÚªzÿÛÝÏÿ|íþÿ,ãþÿÞþÿÞþÿ,ãþÿ|íþÿÛÝÎÿÚªzÿöêßÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPyQt-x11-gpl-4.11.4/doc/sphinx/webkit.rst0000644000076500000240000000067212425374020020045 0ustar philstaff00000000000000Integrating Python and JavaScript in QtWebKit ============================================= QtWebKit uses slots to expose class methods implemented in C++ as JavaScript methods that can be called from scripts embedded in HTML. Python class methods that have been decorated behave in exactly the same way. In the same way, properties created using :func:`~PyQt4.QtCore.pyqtProperty` are also automatically exposed as JavaScript properties. PyQt-x11-gpl-4.11.4/elementtree/0000755000076500000240000000000012536324426016264 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/elementtree/__init__.py0000644000076500000240000000272312536324426020401 0ustar philstaff00000000000000# $Id: __init__.py 1821 2004-06-03 16:57:49Z fredrik $ # elementtree package # -------------------------------------------------------------------- # The ElementTree toolkit is # # Copyright (c) 1999-2004 by Fredrik Lundh # # By obtaining, using, and/or copying this software and/or its # associated documentation, you agree that you have read, understood, # and will comply with the following terms and conditions: # # Permission to use, copy, modify, and distribute this software and # its associated documentation for any purpose and without fee is # hereby granted, provided that the above copyright notice appears in # all copies, and that both that copyright notice and this permission # notice appear in supporting documentation, and that the name of # Secret Labs AB or the author not be used in advertising or publicity # pertaining to distribution of the software without specific, written # prior permission. # # SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD # TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT- # ABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR # BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY # DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE # OF THIS SOFTWARE. # -------------------------------------------------------------------- PyQt-x11-gpl-4.11.4/elementtree/ElementPath.py0000644000076500000240000001350212536324426021045 0ustar philstaff00000000000000# # ElementTree # $Id: ElementPath.py 1858 2004-06-17 21:31:41Z Fredrik $ # # limited xpath support for element trees # # history: # 2003-05-23 fl created # 2003-05-28 fl added support for // etc # 2003-08-27 fl fixed parsing of periods in element names # # Copyright (c) 2003-2004 by Fredrik Lundh. All rights reserved. # # fredrik@pythonware.com # http://www.pythonware.com # # -------------------------------------------------------------------- # The ElementTree toolkit is # # Copyright (c) 1999-2004 by Fredrik Lundh # # By obtaining, using, and/or copying this software and/or its # associated documentation, you agree that you have read, understood, # and will comply with the following terms and conditions: # # Permission to use, copy, modify, and distribute this software and # its associated documentation for any purpose and without fee is # hereby granted, provided that the above copyright notice appears in # all copies, and that both that copyright notice and this permission # notice appear in supporting documentation, and that the name of # Secret Labs AB or the author not be used in advertising or publicity # pertaining to distribution of the software without specific, written # prior permission. # # SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD # TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT- # ABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR # BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY # DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE # OF THIS SOFTWARE. # -------------------------------------------------------------------- ## # Implementation module for XPath support. There's usually no reason # to import this module directly; the ElementTree does this for # you, if needed. ## import re xpath_tokenizer = re.compile( "(::|\.\.|\(\)|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/:\[\]\(\)@=\s]+)|\s+" ).findall class xpath_descendant_or_self: pass ## # Wrapper for a compiled XPath. class Path: ## # Create an Path instance from an XPath expression. def __init__(self, path): tokens = xpath_tokenizer(path) # the current version supports 'path/path'-style expressions only self.path = [] self.tag = None if tokens and tokens[0][0] == "/": raise SyntaxError("cannot use absolute path on element") while tokens: op, tag = tokens.pop(0) if tag or op == "*": self.path.append(tag or op) elif op == ".": pass elif op == "/": self.path.append(xpath_descendant_or_self()) continue else: raise SyntaxError("unsupported path syntax (%s)" % op) if tokens: op, tag = tokens.pop(0) if op != "/": raise SyntaxError( "expected path separator (%s)" % (op or tag) ) if self.path and isinstance(self.path[-1], xpath_descendant_or_self): raise SyntaxError("path cannot end with //") if len(self.path) == 1 and isinstance(self.path[0], type("")): self.tag = self.path[0] ## # Find first matching object. def find(self, element): tag = self.tag if tag is None: nodeset = self.findall(element) if not nodeset: return None return nodeset[0] for elem in element: if elem.tag == tag: return elem return None ## # Find text for first matching object. def findtext(self, element, default=None): tag = self.tag if tag is None: nodeset = self.findall(element) if not nodeset: return default return nodeset[0].text or "" for elem in element: if elem.tag == tag: return elem.text or "" return default ## # Find all matching objects. def findall(self, element): nodeset = [element] index = 0 while 1: try: path = self.path[index] index = index + 1 except IndexError: return nodeset set = [] if isinstance(path, xpath_descendant_or_self): try: tag = self.path[index] if not isinstance(tag, type("")): tag = None else: index = index + 1 except IndexError: tag = None # invalid path for node in nodeset: new = list(node.getiterator(tag)) if new and new[0] is node: set.extend(new[1:]) else: set.extend(new) else: for node in nodeset: for node in node: if path == "*" or node.tag == path: set.append(node) if not set: return [] nodeset = set _cache = {} ## # (Internal) Compile path. def _compile(path): p = _cache.get(path) if p is not None: return p p = Path(path) if len(_cache) >= 100: _cache.clear() _cache[path] = p return p ## # Find first matching object. def find(element, path): return _compile(path).find(element) ## # Find text for first matching object. def findtext(element, path, default=None): return _compile(path).findtext(element, default) ## # Find all matching objects. def findall(element, path): return _compile(path).findall(element) PyQt-x11-gpl-4.11.4/elementtree/ElementTree.py0000644000076500000240000011766612536324426021070 0ustar philstaff00000000000000# # ElementTree # $Id: ElementTree.py 2326 2005-03-17 07:45:21Z fredrik $ # # light-weight XML support for Python 1.5.2 and later. # # history: # 2001-10-20 fl created (from various sources) # 2001-11-01 fl return root from parse method # 2002-02-16 fl sort attributes in lexical order # 2002-04-06 fl TreeBuilder refactoring, added PythonDoc markup # 2002-05-01 fl finished TreeBuilder refactoring # 2002-07-14 fl added basic namespace support to ElementTree.write # 2002-07-25 fl added QName attribute support # 2002-10-20 fl fixed encoding in write # 2002-11-24 fl changed default encoding to ascii; fixed attribute encoding # 2002-11-27 fl accept file objects or file names for parse/write # 2002-12-04 fl moved XMLTreeBuilder back to this module # 2003-01-11 fl fixed entity encoding glitch for us-ascii # 2003-02-13 fl added XML literal factory # 2003-02-21 fl added ProcessingInstruction/PI factory # 2003-05-11 fl added tostring/fromstring helpers # 2003-05-26 fl added ElementPath support # 2003-07-05 fl added makeelement factory method # 2003-07-28 fl added more well-known namespace prefixes # 2003-08-15 fl fixed typo in ElementTree.findtext (Thomas Dartsch) # 2003-09-04 fl fall back on emulator if ElementPath is not installed # 2003-10-31 fl markup updates # 2003-11-15 fl fixed nested namespace bug # 2004-03-28 fl added XMLID helper # 2004-06-02 fl added default support to findtext # 2004-06-08 fl fixed encoding of non-ascii element/attribute names # 2004-08-23 fl take advantage of post-2.1 expat features # 2005-02-01 fl added iterparse implementation # 2005-03-02 fl fixed iterparse support for pre-2.2 versions # # Copyright (c) 1999-2005 by Fredrik Lundh. All rights reserved. # # fredrik@pythonware.com # http://www.pythonware.com # # -------------------------------------------------------------------- # The ElementTree toolkit is # # Copyright (c) 1999-2005 by Fredrik Lundh # # By obtaining, using, and/or copying this software and/or its # associated documentation, you agree that you have read, understood, # and will comply with the following terms and conditions: # # Permission to use, copy, modify, and distribute this software and # its associated documentation for any purpose and without fee is # hereby granted, provided that the above copyright notice appears in # all copies, and that both that copyright notice and this permission # notice appear in supporting documentation, and that the name of # Secret Labs AB or the author not be used in advertising or publicity # pertaining to distribution of the software without specific, written # prior permission. # # SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD # TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT- # ABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR # BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY # DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE # OF THIS SOFTWARE. # -------------------------------------------------------------------- __all__ = [ # public symbols "Comment", "dump", "Element", "ElementTree", "fromstring", "iselement", "iterparse", "parse", "PI", "ProcessingInstruction", "QName", "SubElement", "tostring", "TreeBuilder", "VERSION", "XML", "XMLTreeBuilder", ] ## # The Element type is a flexible container object, designed to # store hierarchical data structures in memory. The type can be # described as a cross between a list and a dictionary. #

# Each element has a number of properties associated with it: #

    #
  • a tag. This is a string identifying what kind of data # this element represents (the element type, in other words).
  • #
  • a number of attributes, stored in a Python dictionary.
  • #
  • a text string.
  • #
  • an optional tail string.
  • #
  • a number of child elements, stored in a Python sequence
  • #
# # To create an element instance, use the {@link #Element} or {@link # #SubElement} factory functions. #

# The {@link #ElementTree} class can be used to wrap an element # structure, and convert it from and to XML. ## import string, sys, re class _SimpleElementPath: # emulate pre-1.2 find/findtext/findall behaviour def find(self, element, tag): for elem in element: if elem.tag == tag: return elem return None def findtext(self, element, tag, default=None): for elem in element: if elem.tag == tag: return elem.text or "" return default def findall(self, element, tag): if tag[:3] == ".//": return element.getiterator(tag[3:]) result = [] for elem in element: if elem.tag == tag: result.append(elem) return result try: import ElementPath except ImportError: # FIXME: issue warning in this case? ElementPath = _SimpleElementPath() # TODO: add support for custom namespace resolvers/default namespaces # TODO: add improved support for incremental parsing VERSION = "1.2.6" ## # Internal element class. This class defines the Element interface, # and provides a reference implementation of this interface. #

# You should not create instances of this class directly. Use the # appropriate factory functions instead, such as {@link #Element} # and {@link #SubElement}. # # @see Element # @see SubElement # @see Comment # @see ProcessingInstruction class _ElementInterface: # text...tail ## # (Attribute) Element tag. tag = None ## # (Attribute) Element attribute dictionary. Where possible, use # {@link #_ElementInterface.get}, # {@link #_ElementInterface.set}, # {@link #_ElementInterface.keys}, and # {@link #_ElementInterface.items} to access # element attributes. attrib = None ## # (Attribute) Text before first subelement. This is either a # string or the value None, if there was no text. text = None ## # (Attribute) Text after this element's end tag, but before the # next sibling element's start tag. This is either a string or # the value None, if there was no text. tail = None # text after end tag, if any def __init__(self, tag, attrib): self.tag = tag self.attrib = attrib self._children = [] def __repr__(self): return "" % (self.tag, id(self)) ## # Creates a new element object of the same type as this element. # # @param tag Element tag. # @param attrib Element attributes, given as a dictionary. # @return A new element instance. def makeelement(self, tag, attrib): return Element(tag, attrib) ## # Returns the number of subelements. # # @return The number of subelements. def __len__(self): return len(self._children) ## # Returns the given subelement. # # @param index What subelement to return. # @return The given subelement. # @exception IndexError If the given element does not exist. def __getitem__(self, index): return self._children[index] ## # Replaces the given subelement. # # @param index What subelement to replace. # @param element The new element value. # @exception IndexError If the given element does not exist. # @exception AssertionError If element is not a valid object. def __setitem__(self, index, element): assert iselement(element) self._children[index] = element ## # Deletes the given subelement. # # @param index What subelement to delete. # @exception IndexError If the given element does not exist. def __delitem__(self, index): del self._children[index] ## # Returns a list containing subelements in the given range. # # @param start The first subelement to return. # @param stop The first subelement that shouldn't be returned. # @return A sequence object containing subelements. def __getslice__(self, start, stop): return self._children[start:stop] ## # Replaces a number of subelements with elements from a sequence. # # @param start The first subelement to replace. # @param stop The first subelement that shouldn't be replaced. # @param elements A sequence object with zero or more elements. # @exception AssertionError If a sequence member is not a valid object. def __setslice__(self, start, stop, elements): for element in elements: assert iselement(element) self._children[start:stop] = list(elements) ## # Deletes a number of subelements. # # @param start The first subelement to delete. # @param stop The first subelement to leave in there. def __delslice__(self, start, stop): del self._children[start:stop] ## # Adds a subelement to the end of this element. # # @param element The element to add. # @exception AssertionError If a sequence member is not a valid object. def append(self, element): assert iselement(element) self._children.append(element) ## # Inserts a subelement at the given position in this element. # # @param index Where to insert the new subelement. # @exception AssertionError If the element is not a valid object. def insert(self, index, element): assert iselement(element) self._children.insert(index, element) ## # Removes a matching subelement. Unlike the find methods, # this method compares elements based on identity, not on tag # value or contents. # # @param element What element to remove. # @exception ValueError If a matching element could not be found. # @exception AssertionError If the element is not a valid object. def remove(self, element): assert iselement(element) self._children.remove(element) ## # Returns all subelements. The elements are returned in document # order. # # @return A list of subelements. # @defreturn list of Element instances def getchildren(self): return self._children ## # Finds the first matching subelement, by tag name or path. # # @param path What element to look for. # @return The first matching element, or None if no element was found. # @defreturn Element or None def find(self, path): return ElementPath.find(self, path) ## # Finds text for the first matching subelement, by tag name or path. # # @param path What element to look for. # @param default What to return if the element was not found. # @return The text content of the first matching element, or the # default value no element was found. Note that if the element # has is found, but has no text content, this method returns an # empty string. # @defreturn string def findtext(self, path, default=None): return ElementPath.findtext(self, path, default) ## # Finds all matching subelements, by tag name or path. # # @param path What element to look for. # @return A list or iterator containing all matching elements, # in document order. # @defreturn list of Element instances def findall(self, path): return ElementPath.findall(self, path) ## # Resets an element. This function removes all subelements, clears # all attributes, and sets the text and tail attributes to None. def clear(self): self.attrib.clear() self._children = [] self.text = self.tail = None ## # Gets an element attribute. # # @param key What attribute to look for. # @param default What to return if the attribute was not found. # @return The attribute value, or the default value, if the # attribute was not found. # @defreturn string or None def get(self, key, default=None): return self.attrib.get(key, default) ## # Sets an element attribute. # # @param key What attribute to set. # @param value The attribute value. def set(self, key, value): self.attrib[key] = value ## # Gets a list of attribute names. The names are returned in an # arbitrary order (just like for an ordinary Python dictionary). # # @return A list of element attribute names. # @defreturn list of strings def keys(self): return self.attrib.keys() ## # Gets element attributes, as a sequence. The attributes are # returned in an arbitrary order. # # @return A list of (name, value) tuples for all attributes. # @defreturn list of (string, string) tuples def items(self): return self.attrib.items() ## # Creates a tree iterator. The iterator loops over this element # and all subelements, in document order, and returns all elements # with a matching tag. #

# If the tree structure is modified during iteration, the result # is undefined. # # @param tag What tags to look for (default is to return all elements). # @return A list or iterator containing all the matching elements. # @defreturn list or iterator def getiterator(self, tag=None): nodes = [] if tag == "*": tag = None if tag is None or self.tag == tag: nodes.append(self) for node in self._children: nodes.extend(node.getiterator(tag)) return nodes # compatibility _Element = _ElementInterface ## # Element factory. This function returns an object implementing the # standard Element interface. The exact class or type of that object # is implementation dependent, but it will always be compatible with # the {@link #_ElementInterface} class in this module. #

# The element name, attribute names, and attribute values can be # either 8-bit ASCII strings or Unicode strings. # # @param tag The element name. # @param attrib An optional dictionary, containing element attributes. # @param **extra Additional attributes, given as keyword arguments. # @return An element instance. # @defreturn Element def Element(tag, attrib={}, **extra): attrib = attrib.copy() attrib.update(extra) return _ElementInterface(tag, attrib) ## # Subelement factory. This function creates an element instance, and # appends it to an existing element. #

# The element name, attribute names, and attribute values can be # either 8-bit ASCII strings or Unicode strings. # # @param parent The parent element. # @param tag The subelement name. # @param attrib An optional dictionary, containing element attributes. # @param **extra Additional attributes, given as keyword arguments. # @return An element instance. # @defreturn Element def SubElement(parent, tag, attrib={}, **extra): attrib = attrib.copy() attrib.update(extra) element = parent.makeelement(tag, attrib) parent.append(element) return element ## # Comment element factory. This factory function creates a special # element that will be serialized as an XML comment. #

# The comment string can be either an 8-bit ASCII string or a Unicode # string. # # @param text A string containing the comment string. # @return An element instance, representing a comment. # @defreturn Element def Comment(text=None): element = Element(Comment) element.text = text return element ## # PI element factory. This factory function creates a special element # that will be serialized as an XML processing instruction. # # @param target A string containing the PI target. # @param text A string containing the PI contents, if any. # @return An element instance, representing a PI. # @defreturn Element def ProcessingInstruction(target, text=None): element = Element(ProcessingInstruction) element.text = target if text: element.text = element.text + " " + text return element PI = ProcessingInstruction ## # QName wrapper. This can be used to wrap a QName attribute value, in # order to get proper namespace handling on output. # # @param text A string containing the QName value, in the form {uri}local, # or, if the tag argument is given, the URI part of a QName. # @param tag Optional tag. If given, the first argument is interpreted as # an URI, and this argument is interpreted as a local name. # @return An opaque object, representing the QName. class QName: def __init__(self, text_or_uri, tag=None): if tag: text_or_uri = "{%s}%s" % (text_or_uri, tag) self.text = text_or_uri def __str__(self): return self.text def __hash__(self): return hash(self.text) def __cmp__(self, other): if isinstance(other, QName): return cmp(self.text, other.text) return cmp(self.text, other) ## # ElementTree wrapper class. This class represents an entire element # hierarchy, and adds some extra support for serialization to and from # standard XML. # # @param element Optional root element. # @keyparam file Optional file handle or name. If given, the # tree is initialized with the contents of this XML file. class ElementTree: def __init__(self, element=None, file=None): assert element is None or iselement(element) self._root = element # first node if file: self.parse(file) ## # Gets the root element for this tree. # # @return An element instance. # @defreturn Element def getroot(self): return self._root ## # Replaces the root element for this tree. This discards the # current contents of the tree, and replaces it with the given # element. Use with care. # # @param element An element instance. def _setroot(self, element): assert iselement(element) self._root = element ## # Loads an external XML document into this element tree. # # @param source A file name or file object. # @param parser An optional parser instance. If not given, the # standard {@link XMLTreeBuilder} parser is used. # @return The document root element. # @defreturn Element def parse(self, source, parser=None): if not hasattr(source, "read"): source = open(source, "rb") if not parser: parser = XMLTreeBuilder() while 1: data = source.read(32768) if not data: break parser.feed(data) self._root = parser.close() return self._root ## # Creates a tree iterator for the root element. The iterator loops # over all elements in this tree, in document order. # # @param tag What tags to look for (default is to return all elements) # @return An iterator. # @defreturn iterator def getiterator(self, tag=None): assert self._root is not None return self._root.getiterator(tag) ## # Finds the first toplevel element with given tag. # Same as getroot().find(path). # # @param path What element to look for. # @return The first matching element, or None if no element was found. # @defreturn Element or None def find(self, path): assert self._root is not None if path[:1] == "/": path = "." + path return self._root.find(path) ## # Finds the element text for the first toplevel element with given # tag. Same as getroot().findtext(path). # # @param path What toplevel element to look for. # @param default What to return if the element was not found. # @return The text content of the first matching element, or the # default value no element was found. Note that if the element # has is found, but has no text content, this method returns an # empty string. # @defreturn string def findtext(self, path, default=None): assert self._root is not None if path[:1] == "/": path = "." + path return self._root.findtext(path, default) ## # Finds all toplevel elements with the given tag. # Same as getroot().findall(path). # # @param path What element to look for. # @return A list or iterator containing all matching elements, # in document order. # @defreturn list of Element instances def findall(self, path): assert self._root is not None if path[:1] == "/": path = "." + path return self._root.findall(path) ## # Writes the element tree to a file, as XML. # # @param file A file name, or a file object opened for writing. # @param encoding Optional output encoding (default is US-ASCII). def write(self, file, encoding="us-ascii"): assert self._root is not None if not hasattr(file, "write"): file = open(file, "wb") if not encoding: encoding = "us-ascii" elif encoding != "utf-8" and encoding != "us-ascii": file.write("\n" % encoding) self._write(file, self._root, encoding, {}) def _write(self, file, node, encoding, namespaces): # write XML to file tag = node.tag if tag is Comment: file.write("" % _escape_cdata(node.text, encoding)) elif tag is ProcessingInstruction: file.write("" % _escape_cdata(node.text, encoding)) else: items = node.items() xmlns_items = [] # new namespaces in this scope try: if isinstance(tag, QName) or tag[:1] == "{": tag, xmlns = fixtag(tag, namespaces) if xmlns: xmlns_items.append(xmlns) except TypeError: _raise_serialization_error(tag) file.write("<" + _encode(tag, encoding)) if items or xmlns_items: items.sort() # lexical order for k, v in items: try: if isinstance(k, QName) or k[:1] == "{": k, xmlns = fixtag(k, namespaces) if xmlns: xmlns_items.append(xmlns) except TypeError: _raise_serialization_error(k) try: if isinstance(v, QName): v, xmlns = fixtag(v, namespaces) if xmlns: xmlns_items.append(xmlns) except TypeError: _raise_serialization_error(v) file.write(" %s=\"%s\"" % (_encode(k, encoding), _escape_attrib(v, encoding))) for k, v in xmlns_items: file.write(" %s=\"%s\"" % (_encode(k, encoding), _escape_attrib(v, encoding))) if node.text or len(node): file.write(">") if node.text: file.write(_escape_cdata(node.text, encoding)) for n in node: self._write(file, n, encoding, namespaces) file.write("") else: file.write(" />") for k, v in xmlns_items: del namespaces[v] if node.tail: file.write(_escape_cdata(node.tail, encoding)) # -------------------------------------------------------------------- # helpers ## # Checks if an object appears to be a valid element object. # # @param An element instance. # @return A true value if this is an element object. # @defreturn flag def iselement(element): # FIXME: not sure about this; might be a better idea to look # for tag/attrib/text attributes return isinstance(element, _ElementInterface) or hasattr(element, "tag") ## # Writes an element tree or element structure to sys.stdout. This # function should be used for debugging only. #

# The exact output format is implementation dependent. In this # version, it's written as an ordinary XML file. # # @param elem An element tree or an individual element. def dump(elem): # debugging if not isinstance(elem, ElementTree): elem = ElementTree(elem) elem.write(sys.stdout) tail = elem.getroot().tail if not tail or tail[-1] != "\n": sys.stdout.write("\n") def _encode(s, encoding): try: return s.encode(encoding) except AttributeError: return s # 1.5.2: assume the string uses the right encoding if sys.version[:3] == "1.5": _escape = re.compile(r"[&<>\"\x80-\xff]+") # 1.5.2 else: _escape = re.compile(eval(r'u"[&<>\"\u0080-\uffff]+"')) _escape_map = { "&": "&", "<": "<", ">": ">", '"': """, } _namespace_map = { # "well-known" namespace prefixes "http://www.w3.org/XML/1998/namespace": "xml", "http://www.w3.org/1999/xhtml": "html", "http://www.w3.org/1999/02/22-rdf-syntax-ns#": "rdf", "http://schemas.xmlsoap.org/wsdl/": "wsdl", } def _raise_serialization_error(text): raise TypeError( "cannot serialize %r (type %s)" % (text, type(text).__name__) ) def _encode_entity(text, pattern=_escape): # map reserved and non-ascii characters to numerical entities def escape_entities(m, map=_escape_map): out = [] append = out.append for char in m.group(): text = map.get(char) if text is None: text = "&#%d;" % ord(char) append(text) return string.join(out, "") try: return _encode(pattern.sub(escape_entities, text), "ascii") except TypeError: _raise_serialization_error(text) # # the following functions assume an ascii-compatible encoding # (or "utf-16") def _escape_cdata(text, encoding=None, replace=string.replace): # escape character data try: if encoding: try: text = _encode(text, encoding) except UnicodeError: return _encode_entity(text) text = replace(text, "&", "&") text = replace(text, "<", "<") text = replace(text, ">", ">") return text except (TypeError, AttributeError): _raise_serialization_error(text) def _escape_attrib(text, encoding=None, replace=string.replace): # escape attribute value try: if encoding: try: text = _encode(text, encoding) except UnicodeError: return _encode_entity(text) text = replace(text, "&", "&") text = replace(text, "'", "'") # FIXME: overkill text = replace(text, "\"", """) text = replace(text, "<", "<") text = replace(text, ">", ">") return text except (TypeError, AttributeError): _raise_serialization_error(text) def fixtag(tag, namespaces): # given a decorated tag (of the form {uri}tag), return prefixed # tag and namespace declaration, if any if isinstance(tag, QName): tag = tag.text namespace_uri, tag = string.split(tag[1:], "}", 1) prefix = namespaces.get(namespace_uri) if prefix is None: prefix = _namespace_map.get(namespace_uri) if prefix is None: prefix = "ns%d" % len(namespaces) namespaces[namespace_uri] = prefix if prefix == "xml": xmlns = None else: xmlns = ("xmlns:%s" % prefix, namespace_uri) else: xmlns = None return "%s:%s" % (prefix, tag), xmlns ## # Parses an XML document into an element tree. # # @param source A filename or file object containing XML data. # @param parser An optional parser instance. If not given, the # standard {@link XMLTreeBuilder} parser is used. # @return An ElementTree instance def parse(source, parser=None): tree = ElementTree() tree.parse(source, parser) return tree ## # Parses an XML document into an element tree incrementally, and reports # what's going on to the user. # # @param source A filename or file object containing XML data. # @param events A list of events to report back. If omitted, only "end" # events are reported. # @return A (event, elem) iterator. class iterparse: def __init__(self, source, events=None): if not hasattr(source, "read"): source = open(source, "rb") self._file = source self._events = [] self._index = 0 self.root = self._root = None self._parser = XMLTreeBuilder() # wire up the parser for event reporting parser = self._parser._parser append = self._events.append if events is None: events = ["end"] for event in events: if event == "start": try: parser.ordered_attributes = 1 parser.specified_attributes = 1 def handler(tag, attrib_in, event=event, append=append, start=self._parser._start_list): append((event, start(tag, attrib_in))) parser.StartElementHandler = handler except AttributeError: def handler(tag, attrib_in, event=event, append=append, start=self._parser._start): append((event, start(tag, attrib_in))) parser.StartElementHandler = handler elif event == "end": def handler(tag, event=event, append=append, end=self._parser._end): append((event, end(tag))) parser.EndElementHandler = handler elif event == "start-ns": def handler(prefix, uri, event=event, append=append): try: uri = _encode(uri, "ascii") except UnicodeError: pass append((event, (prefix or "", uri))) parser.StartNamespaceDeclHandler = handler elif event == "end-ns": def handler(prefix, event=event, append=append): append((event, None)) parser.EndNamespaceDeclHandler = handler def next(self): while 1: try: item = self._events[self._index] except IndexError: if self._parser is None: self.root = self._root try: raise StopIteration except NameError: raise IndexError # load event buffer del self._events[:] self._index = 0 data = self._file.read(16384) if data: self._parser.feed(data) else: self._root = self._parser.close() self._parser = None else: self._index = self._index + 1 return item try: iter def __iter__(self): return self except NameError: def __getitem__(self, index): return self.next() ## # Parses an XML document from a string constant. This function can # be used to embed "XML literals" in Python code. # # @param source A string containing XML data. # @return An Element instance. # @defreturn Element def XML(text): parser = XMLTreeBuilder() parser.feed(text) return parser.close() ## # Parses an XML document from a string constant, and also returns # a dictionary which maps from element id:s to elements. # # @param source A string containing XML data. # @return A tuple containing an Element instance and a dictionary. # @defreturn (Element, dictionary) def XMLID(text): parser = XMLTreeBuilder() parser.feed(text) tree = parser.close() ids = {} for elem in tree.getiterator(): id = elem.get("id") if id: ids[id] = elem return tree, ids ## # Parses an XML document from a string constant. Same as {@link #XML}. # # @def fromstring(text) # @param source A string containing XML data. # @return An Element instance. # @defreturn Element fromstring = XML ## # Generates a string representation of an XML element, including all # subelements. # # @param element An Element instance. # @return An encoded string containing the XML data. # @defreturn string def tostring(element, encoding=None): class dummy: pass data = [] file = dummy() file.write = data.append ElementTree(element).write(file, encoding) return string.join(data, "") ## # Generic element structure builder. This builder converts a sequence # of {@link #TreeBuilder.start}, {@link #TreeBuilder.data}, and {@link # #TreeBuilder.end} method calls to a well-formed element structure. #

# You can use this class to build an element structure using a custom XML # parser, or a parser for some other XML-like format. # # @param element_factory Optional element factory. This factory # is called to create new Element instances, as necessary. class TreeBuilder: def __init__(self, element_factory=None): self._data = [] # data collector self._elem = [] # element stack self._last = None # last element self._tail = None # true if we're after an end tag if element_factory is None: element_factory = _ElementInterface self._factory = element_factory ## # Flushes the parser buffers, and returns the toplevel documen # element. # # @return An Element instance. # @defreturn Element def close(self): assert len(self._elem) == 0, "missing end tags" assert self._last != None, "missing toplevel element" return self._last def _flush(self): if self._data: if self._last is not None: text = string.join(self._data, "") if self._tail: assert self._last.tail is None, "internal error (tail)" self._last.tail = text else: assert self._last.text is None, "internal error (text)" self._last.text = text self._data = [] ## # Adds text to the current element. # # @param data A string. This should be either an 8-bit string # containing ASCII text, or a Unicode string. def data(self, data): self._data.append(data) ## # Opens a new element. # # @param tag The element name. # @param attrib A dictionary containing element attributes. # @return The opened element. # @defreturn Element def start(self, tag, attrs): self._flush() self._last = elem = self._factory(tag, attrs) if self._elem: self._elem[-1].append(elem) self._elem.append(elem) self._tail = 0 return elem ## # Closes the current element. # # @param tag The element name. # @return The closed element. # @defreturn Element def end(self, tag): self._flush() self._last = self._elem.pop() assert self._last.tag == tag,\ "end tag mismatch (expected %s, got %s)" % ( self._last.tag, tag) self._tail = 1 return self._last ## # Element structure builder for XML source data, based on the # expat parser. # # @keyparam target Target object. If omitted, the builder uses an # instance of the standard {@link #TreeBuilder} class. # @keyparam html Predefine HTML entities. This flag is not supported # by the current implementation. # @see #ElementTree # @see #TreeBuilder class XMLTreeBuilder: def __init__(self, html=0, target=None): try: from xml.parsers import expat except ImportError: raise ImportError( "No module named expat; use SimpleXMLTreeBuilder instead" ) self._parser = parser = expat.ParserCreate(None, "}") if target is None: target = TreeBuilder() self._target = target self._names = {} # name memo cache # callbacks parser.DefaultHandlerExpand = self._default parser.StartElementHandler = self._start parser.EndElementHandler = self._end parser.CharacterDataHandler = self._data # let expat do the buffering, if supported try: self._parser.buffer_text = 1 except AttributeError: pass # use new-style attribute handling, if supported try: self._parser.ordered_attributes = 1 self._parser.specified_attributes = 1 parser.StartElementHandler = self._start_list except AttributeError: pass encoding = None if not parser.returns_unicode: encoding = "utf-8" # target.xml(encoding, None) self._doctype = None self.entity = {} def _fixtext(self, text): # convert text string to ascii, if possible try: return _encode(text, "ascii") except UnicodeError: return text def _fixname(self, key): # expand qname, and convert name string to ascii, if possible try: name = self._names[key] except KeyError: name = key if "}" in name: name = "{" + name self._names[key] = name = self._fixtext(name) return name def _start(self, tag, attrib_in): fixname = self._fixname tag = fixname(tag) attrib = {} for key, value in attrib_in.items(): attrib[fixname(key)] = self._fixtext(value) return self._target.start(tag, attrib) def _start_list(self, tag, attrib_in): fixname = self._fixname tag = fixname(tag) attrib = {} if attrib_in: for i in range(0, len(attrib_in), 2): attrib[fixname(attrib_in[i])] = self._fixtext(attrib_in[i+1]) return self._target.start(tag, attrib) def _data(self, text): return self._target.data(self._fixtext(text)) def _end(self, tag): return self._target.end(self._fixname(tag)) def _default(self, text): prefix = text[:1] if prefix == "&": # deal with undefined entities try: self._target.data(self.entity[text[1:-1]]) except KeyError: from xml.parsers import expat raise expat.error( "undefined entity %s: line %d, column %d" % (text, self._parser.ErrorLineNumber, self._parser.ErrorColumnNumber) ) elif prefix == "<" and text[:9] == "": self._doctype = None return text = string.strip(text) if not text: return self._doctype.append(text) n = len(self._doctype) if n > 2: type = self._doctype[1] if type == "PUBLIC" and n == 4: name, type, pubid, system = self._doctype elif type == "SYSTEM" and n == 3: name, type, system = self._doctype pubid = None else: return if pubid: pubid = pubid[1:-1] self.doctype(name, pubid, system[1:-1]) self._doctype = None ## # Handles a doctype declaration. # # @param name Doctype name. # @param pubid Public identifier. # @param system System identifier. def doctype(self, name, pubid, system): pass ## # Feeds data to the parser. # # @param data Encoded data. def feed(self, data): self._parser.Parse(data, 0) ## # Finishes feeding data to the parser. # # @return An element structure. # @defreturn Element def close(self): self._parser.Parse("", 1) # end of data tree = self._target.close() del self._target, self._parser # get rid of circular references return tree PyQt-x11-gpl-4.11.4/examples/0000755000076500000240000000000012536324427015572 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/activeqt/0000755000076500000240000000000012536324426017411 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/activeqt/README0000644000076500000240000000140512536324426020271 0ustar philstaff00000000000000On Windows PyQt provides support for integration with ActiveX controls. These examples demonstrate the basic techniques used to take advantage of ActiveX in PyQt applications. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/0000755000076500000240000000000012536324426021572 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/icons/0000755000076500000240000000000012536324426022705 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/icons/image0.xpm0000644000076500000240000000233212536324426024575 0ustar philstaff00000000000000/* XPM */ static char *image0[]={ "32 32 3 1", ". c None", "a c #000080", "# c #808080", "................................", "................................", "................................", "................................", "................................", "................................", "................................", "................................", ".......#aaaaaaaaa...............", "......#aaaaaaaaaaa.........a....", ".....#aaa.......aaa.......aa....", "....#aaa.........aaaa....aaa....", "....aaa...........aaaa..aaaa....", "....aa..............aaaaaaaa....", "....aa...............aaaaaaa....", "....aa...............aaaaaaa....", "....aa..............aaaaaaaa....", "....aa.............aaaaaaaaa....", "....#aa...........aaaaaaaaaa....", ".....#aa.........aaaaaaaaaaa....", "......aa#.......................", ".......aa#......................", "................................", "................................", "................................", "................................", "................................", "................................", "................................", "................................", "................................", "................................"}; PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/icons/image1.xpm0000644000076500000240000001061712536324426024603 0ustar philstaff00000000000000/* XPM */ static char *image1[]={ "32 32 142 2", "Qt c None", "#O c #0010f7", "#P c #0021ef", "#R c #0021f7", "#S c #0021ff", "#T c #0029ff", "ah c #0031ff", "#N c #0829f7", "#x c #0831ff", "#C c #0839ff", "#E c #1029e7", "#r c #1039ff", "#o c #1042ff", "#Q c #1831de", "ak c #1831e7", "#k c #1842ff", "#H c #184aff", "aj c #2139e7", "#s c #2142de", "#G c #214aff", ".9 c #2152ff", "#2 c #2939c6", "ag c #2939d6", "a# c #2942ce", "#p c #2942de", "#U c #2952ff", "ae c #295aff", "#y c #3152de", ".2 c #3152e7", "#I c #315aff", "#z c #3163ff", "#1 c #394abd", "#L c #394ade", "#B c #3963ff", "#w c #396bff", "#V c #4252d6", "#l c #4252de", "#W c #4263ef", "#q c #426bff", ".1 c #4273ff", "#5 c #4a5ad6", "#J c #4a73ff", "#K c #4a7bff", "ac c #4a84ff", "ab c #5263c6", ".T c #5263ce", ".M c #5273d6", ".c c #5273e7", ".U c #527bde", "#t c #527bf7", "#A c #5284ff", "#X c #5a63ad", ".V c #5a84ef", "#F c #5a84ff", "#v c #5a8cff", "ad c #636bbd", ".e c #637bc6", ".W c #637bce", ".3 c #637bd6", ".Q c #6384de", ".5 c #638cef", "#b c #638cff", "#j c #6394ff", "af c #6b73bd", "#0 c #6b73c6", ".S c #6b84ce", "#u c #6b94ff", ".C c #6b9cff", "ai c #737bce", ".z c #7384b5", ".j c #7384c6", "#6 c #738cce", ".4 c #738cd6", ".b c #739ce7", ".I c #73a5ff", "#n c #73adff", "#Z c #7b84b5", ".R c #7b8cbd", ".J c #7b94bd", ".n c #7ba5e7", ".P c #7badff", "#c c #7bb5ff", "#M c #84849c", "#3 c #8484ad", ".i c #848cc6", "al c #8494bd", "aa c #849cc6", ".y c #84adff", ".O c #84b5ff", "#a c #84bdff", ".t c #8c94ad", ".a c #8c94b5", ".D c #8c9cbd", ".m c #8c9cce", ".A c #8ca5ef", ".f c #8cadf7", ".H c #8cbdff", "#D c #9494a5", "#8 c #9494bd", "#9 c #9494c6", "a. c #949cbd", ".r c #94c6ff", "#d c #94ceff", "#4 c #9ca5ad", "#7 c #9ca5b5", ".u c #9cbdf7", ".6 c #9cc6ff", ".0 c #9cceff", ".x c #9cd6ff", ".L c #a5a5b5", "#Y c #a5a5bd", "#e c #a5ceff", "## c #a5d6ff", ".X c #adadb5", ".k c #adc6ff", "#i c #add6ff", ".E c #b5b5b5", ".d c #b5b5bd", ".K c #b5bdc6", ".F c #b5ceff", ".N c #b5d6ff", ".B c #b5deff", ".s c #bdbdbd", ".# c #bdbdc6", "#. c #bdd6ff", ".G c #bde7ff", "#h c #c6e7ff", "#f c #c6efff", ".w c #c6f7ff", ".h c #ced6ff", ".Y c #cee7ff", ".q c #ceefff", ".Z c #cef7ff", ".l c #d6efff", ".8 c #d6f7ff", ".o c #deefff", ".7 c #def7ff", "#m c #deffff", "#g c #e7ffff", ".v c #efffff", ".p c #f7ffff", ".g c #ffffff", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQt.#.a.b.c.aQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQt.d.e.f.g.h.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQt.d.j.k.g.g.l.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQt.a.n.o.g.p.q.r.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQt.s.t.u.g.g.v.w.x.y.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQt.z.A.g.g.v.B.x.r.C.DQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQt.E.a.F.g.g.v.G.r.H.H.I.JQtQtQtQtQtQtQtQtQtQt.s.s.K.K.KQtQt", "QtQt.L.M.N.g.g.q.x.H.O.y.P.P.Q.LQtQtQt.s.s.K.a.R.S.T.U.V.V.Q.W.X", "Qt.#.Q.Y.g.g.Z.0.O.y.P.P.P.P.1.2.3.4.S.e.c.5.f.6.N.l.7.8.Z.0.9.T", ".s.W#..g.p.Z###a.O.P.P.I.I.P#b#c#d#e.B#f#g.7.8.8.q#h#i.r.H#j#k#l", ".e#e.g#m.G#d.O.y.P.I.I.I.I.I.I.H.6####.0.r.H#a.O#c.I#n.I#j.1#o#p", ".5.p#f.x.0.O.y.P.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.I.C.C.C#b#q#r#s", "#t##.r.H.O#c.P.I.I.I.I.I.I.C.I.C.C.I.C.I.C.C.C.C#u.C#j#j#v#w#x#p", "#y#z#j.I.I.P.I.I.C.C.C.I.I.C.C#j#b#v#v#b#j#j#j#b#j#v#b#v#A#B#C#p", "#D#E#k#q#A#j.C.I.C.I.C.C.C.I#F#G#k#k#H#G#I#B.1.1#J#K#K.1#q#z#x#L", ".s#M#N#r#z#K#b#u.C#u.C.C.I.I#B#O#P#Q#E#P#R#S#T#x#r#r#H.9#U#G#T#V", "QtQt.z#N#r#I.1#v#j#u#j.C#u.I#W#X#D.s#Y#D#Z#0#1#2#Q#P#P#N#N#T#E#3", "QtQt.s#4#5#x#H#B#K#v#j#j#j#j#6QtQtQtQtQtQtQt.s.s.d.X#7#8#9a..X.s", "QtQtQtQt.da##S#k#z#J#v#b#j#vaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQt.Eab#x#o#I#K#v#vac.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQt.sad#E#rae#q#K#wafQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQt.#.Lagah#k#U#kafQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQt#4#Q#T#xahaiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQt#4adajakalQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/icons/image2.xpm0000644000076500000240000001061712536324426024604 0ustar philstaff00000000000000/* XPM */ static char *image2[]={ "32 32 142 2", "Qt c None", "#Y c #0018e7", "aa c #0018ef", "#E c #0018ff", "#Q c #0021ef", "#K c #0021ff", "a# c #0029ff", "a. c #0829ff", "#P c #0831ff", "#4 c #1021d6", "#R c #1021de", "#L c #1029d6", "#V c #1029e7", "#n c #1039f7", "#W c #1039ff", "#O c #1042ff", "ah c #1831ce", "#y c #1842ff", "aj c #2131c6", "#S c #2131ce", "#z c #2139de", ".0 c #2142de", "ai c #2142e7", ".t c #214aef", "#D c #214aff", ".x c #2152ff", "al c #2939de", "#d c #294ae7", "#I c #2952ff", "#J c #295aff", "#T c #3142bd", "#N c #315aff", "#s c #3163ff", "#F c #394ac6", "#G c #3952d6", "ag c #395ae7", ".B c #3963f7", "ae c #3963ff", ".g c #396bff", "#U c #424ab5", "#2 c #4252b5", ".J c #425ace", "#A c #4263de", ".b c #426be7", "#p c #426bef", "#x c #426bff", ".n c #4273ff", ".o c #4a63ce", "#t c #4a6be7", ".Q c #4a73de", "#3 c #4a73ff", "#C c #4a7bff", "#Z c #525abd", ".1 c #526bbd", ".W c #526bc6", ".R c #526bce", ".P c #527be7", "#w c #5284ff", "#m c #528cff", "ac c #5a63bd", "ak c #5a6bbd", ".O c #5a7bf7", "#H c #5a84ff", "#9 c #5a8cff", "af c #636bb5", ".h c #636bbd", "ab c #6384ef", "#v c #638cff", ".w c #6394ff", ".s c #639cff", "#M c #6b73b5", ".C c #6b73bd", "#u c #6b9cff", ".c c #737bb5", ".S c #7384ce", ".N c #738ce7", ".a c #7394de", ".8 c #7394ef", "#8 c #739cf7", "#B c #739cff", ".A c #73a5ff", "#0 c #7b84b5", ".T c #7b8cbd", ".9 c #7b94c6", "#. c #7b94d6", ".7 c #7ba5ff", ".X c #7badff", ".I c #7bb5ff", "#5 c #848ca5", ".y c #848cad", ".M c #8494b5", "## c #849cd6", "#c c #84adff", ".G c #84b5ff", ".Z c #84bdff", "#o c #8c8cad", "#a c #8ca5ce", ".Y c #8cb5ff", ".H c #8cbdff", "#1 c #9494a5", ".U c #9494ad", "#7 c #949cad", "#b c #94ade7", ".z c #94c6ff", ".v c #94ceff", ".j c #9c9cad", ".u c #9ca5ad", "#r c #9cc6ff", ".m c #9cceff", ".d c #a5a5a5", "#6 c #a5a5ad", ".V c #a5a5b5", ".K c #a5adb5", ".2 c #a5ceff", ".r c #a5d6ff", ".L c #adadad", ".i c #adadb5", ".p c #adadbd", ".q c #addeff", "#e c #ade7ff", "#X c #b5b5b5", ".D c #b5b5bd", ".E c #b5b5c6", ".F c #b5bdc6", ".f c #b5deff", "#q c #b5efff", ".# c #bdbdbd", "ad c #bdbdc6", ".6 c #bddeff", "#i c #bde7ff", "#h c #bdefff", "#g c #c6f7ff", "#l c #cee7ff", "#j c #cef7ff", "#f c #ceffff", ".k c #d6efff", "#k c #d6f7ff", ".l c #d6ffff", ".e c #deefff", ".5 c #e7ffff", ".4 c #efffff", ".3 c #f7ffff", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.a.b.c.#QtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.d.e.f.g.h.iQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.j.k.l.m.n.o.pQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.d.f.q.r.m.s.t.cQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.u.q.v.m.r.m.w.x.y.#QtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.u.z.z.z.z.m.m.A.B.C.DQtQtQtQt", "QtQt.#.E.F.#.#QtQtQtQtQtQtQtQtQtQt.j.G.H.z.H.z.m.m.I.n.J.KQtQtQt", ".L.M.N.O.P.Q.R.S.T.U.E.#.#QtQtQt.V.W.X.H.Y.H.H.z.z.z.Z.g.0.VQtQt", ".1.2.3.4.5.k.6.2.Y.7.8.a.9#.###a#b.Y.G.G.G.G.Y.G.Y.H.z#c.n#d.u.#", ".b#e#f#g#h#i.f#h#g#g#j#k#k#k.e.4.4#l#c.X.G.G.G.G.G.G.G.H.H#m#n#o", "#p.m#q.r.m.m.m.z#r.m.z.m.r.q.q.q.m.H.G.G.X#c.G.G.G.X.X.X.X.7#s.J", "#t.v.q.m.z.H.H.H.H.H.Z.Y.G.G.G.G.G.G.G.X#c.I#c.X.X.X.A.A#u#u.n#d", "#t.H.r.z.Y.G#c.X.X.X.7.X.X.X.X.X.X.X.X.X.X.X.X.X.7.A#u#v#w#x#y#z", "#A.I.m.H.X.X.X.A.A#B.A#B#u#u#u#u#B.X#c.X.X.X.X.A.A#u.w#C.g#D#E#F", "#G.s.G.A.w#v#H#w#C.n#x#s#I#y#y#y#J#H.X.7.X.X.7.A#u.w#w#J#y#K#L.U", "#M.x.n#N#D#O#P#K#K#Q#Q#R#S#T#U#U#V#W.A.X.A.A#B#u.w.n#D#P#E#L.VQt", "#X.h#V#Q#Y#R#S#U#Z#0#1.p.#.#.#.#.V#2.s.7.A#u#u.w#3#D#P#E#4#5QtQt", "QtQt#6#1#7.D.#.#QtQtQtQtQtQtQtQtQt#6#8#B#u.w#9#s#ya.#E#F.V.#QtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.8#9#H#w#s#Wa#aa#2#XQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#ab#w#C#N#W#K#Eac.#QtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtad.Pae#J#Wa##Vaf#XQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#ag#W#P#Eah#6QtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#ai#K#Eaj.jQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#akalak.iQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/icons/image3.xpm0000644000076500000240000000144312536324426024602 0ustar philstaff00000000000000/* XPM */ static char *image3[]={ "25 25 2 1", "# c #000000", ". c #ffffff", ".........................", ".........................", ".........................", ".........######..........", ".......##########........", "......####....####.......", ".....###........###......", "....#####........###.....", "....##.###........##.....", "...###..###.......###....", "...##....###.......##....", "...##.....###......##....", "...##......###.....##....", "...##.......###....##....", "...###.......###..###....", "....##........###.##.....", "....###........#####.....", ".....###........###......", "......####....####.......", ".......##########........", ".........######..........", ".........................", ".........................", ".........................", "........................."}; PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/icons/image4.xpm0000644000076500000240000000233212536324426024601 0ustar philstaff00000000000000/* XPM */ static char *image4[]={ "32 32 3 1", ". c None", "# c #000080", "a c #808080", "................................", "................................", "................................", "................................", "................................", "................................", "................................", "................................", "................................", "...............#########a.......", "....#.........###########a......", "....##.......###.......###a.....", "....###....####.........###a....", "....####..####...........###....", "....########..............##....", "....#######...............##....", "....#######...............##....", "....########..............##....", "....#########.............##....", "....##########...........##a....", "....###########.........##a.....", ".......................a##......", "......................a##.......", "................................", "................................", "................................", "................................", "................................", "................................", "................................", "................................", "................................"}; PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/icons/image5.xpm0000644000076500000240000001273712536324426024614 0ustar philstaff00000000000000/* XPM */ static char *image5[]={ "32 32 211 2", "Qt c None", "aJ c #000000", "#W c #080800", "#N c #100800", "#V c #101000", "#E c #101008", "#M c #181000", "#L c #181800", "#D c #181808", "#F c #181810", "as c #211800", "#K c #211808", "#J c #212110", "#G c #212118", "#q c #212121", "an c #292100", "#I c #292110", "aN c #292910", "#H c #292918", "#y c #292921", "aF c #312900", "#C c #312918", "#i c #312929", ".0 c #313131", "#7 c #393100", "#U c #393108", "aG c #393931", ".M c #393939", "#u c #423939", "#c c #424a42", "aE c #4a4200", "aY c #4a4210", ".V c #4a4239", "#B c #4a4a39", ".m c #4a4a42", "aP c #4a5218", ".G c #4a5252", ".z c #4a5a52", "aO c #524200", "am c #524a00", "#T c #524a08", "#p c #524a4a", ".s c #525252", "#a c #525a52", ".7 c #52635a", "#b c #526363", "az c #5a4a00", "#6 c #5a5208", "aw c #5a5210", ".Z c #5a524a", ".L c #5a5a52", ".y c #5a5a5a", ".F c #5a635a", "#S c #635208", "ax c #635a10", ".U c #635a52", ".r c #635a5a", "aZ c #636321", "## c #63635a", ".A c #636363", "#h c #636b6b", "aL c #637329", "af c #6b5a00", ".6 c #6b635a", "#o c #6b6363", ".E c #6b6b63", "a4 c #6b7321", "aS c #6b7329", "aR c #6b7331", "aX c #736300", "al c #736308", "#R c #736b10", ".T c #736b63", "a5 c #737329", ".i c #73736b", ".K c #737373", "a7 c #737b29", "#g c #737b73", "a9 c #7b7318", "#A c #7b7373", "a8 c #7b7b21", "aV c #7b7b29", "aQ c #7b7b5a", ".J c #7b7b73", ".1 c #7b7b7b", "b# c #7b8431", "a3 c #7b844a", ".8 c #7b847b", "ay c #847308", "#5 c #847310", "aT c #847b21", "b. c #847b29", ".S c #847b73", ".d c #847b7b", "aW c #848421", "a1 c #848429", "a0 c #848431", "bq c #84844a", ".H c #848484", "ae c #8c7b08", "ak c #8c7b10", "#j c #8c8484", "ba c #8c8c63", "a2 c #8c8c7b", ".x c #8c8c84", ".2 c #8c948c", ".9 c #8cada5", "aC c #947b08", ".Y c #947b73", "aK c #948c10", "#Q c #948c18", "a6 c #948c29", "#m c #948c84", "bp c #949442", "aH c #949484", ".D c #94948c", ".n c #949494", "bn c #949c4a", "bl c #949c5a", "bj c #949c63", ".u c #949c94", ".v c #94a59c", "aI c #9c8c10", "#4 c #9c8c18", "#O c #9c8c29", "aM c #9c9418", "#r c #9c948c", "bo c #9c9c4a", "bm c #9c9c52", "bk c #9c9c5a", "bh c #9c9c6b", ".k c #9c9c94", ".a c #9c9c9c", "bi c #9ca56b", "bf c #9ca573", ".h c #9ca59c", "#f c #9ca5a5", ".B c #9cbdb5", "#P c #a59400", "aB c #a59418", "#k c #a5948c", "ar c #a59c29", ".N c #a59c8c", ".P c #a59c94", ".W c #a59c9c", "bg c #a5a573", "bd c #a5a584", ".q c #a5a59c", ".c c #a5a5a5", "be c #a5ad7b", ".o c #a5ada5", ".C c #a5adad", ".I c #a5b5ad", "#d c #a5bdb5", ".w c #a5c6bd", "ad c #ad9c10", "aj c #ad9c18", "#w c #ad9c94", ".f c #ada59c", "bc c #adad7b", "bb c #adad84", ".# c #adada5", ".t c #adadad", ".4 c #adb5ad", "ai c #b5a518", "aq c #b5a529", "aD c #b5a542", "ao c #b5a54a", ".O c #b5a594", "#v c #b5a59c", "at c #b5ad52", "#z c #b5ad9c", ".5 c #b5ada5", ".j c #b5b5ad", ".e c #b5b5b5", ".3 c #b5bdb5", ".Q c #b5bdbd", "#e c #b5cec6", "#8 c #bda539", "#x c #bda59c", "#3 c #bdad29", "#X c #bdad31", "ag c #bdad42", "#n c #bdb5ad", ".b c #bdbdbd", ".X c #bdcec6", "aU c #c6b510", "#. c #c6c6bd", ".p c #c6cece", ".g c #c6ded6", "ac c #cebd31", "#l c #ced6ce", "#s c #ced6d6", "#t c #cedede", "#9 c #d6c610", "#2 c #d6c631", "ap c #dec608", "ah c #dece10", "ab c #dece31", ".l c #deefe7", ".R c #deefef", "au c #e7ce08", "a. c #e7d621", "a# c #e7d631", "aa c #e7d639", "#1 c #e7de39", "#Y c #efde10", "av c #efde21", "aA c #efde29", "#Z c #f7e729", "#0 c #f7e739", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.aQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQt.b.c.d.eQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.g.h.i.bQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQt.j.k.l.e.m.nQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQt.b.a.o.p.q.r.s.tQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQt.u.v.w.k.x.y.z.A.bQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQt.t.k.B.C.k.D.E.F.G.HQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQt.b.#.#.o.I.b.c.J.K.L.M.tQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQt.a.N.O.P.Q.R.o.S.T.U.V.s.bQtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQt.t.N.P.W.k.X.R.P.Y.i.A.Z.0.1QtQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQt.b.x.2.w.3.4.I.j.#.5.6.L.F.7.0.cQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQt.n.8.9.p#..o.4.x.x.x##.s#a#b.s#c.bQtQtQtQtQtQtQt", "QtQtQtQtQtQtQt.t.D.##d#e.h#f.o.P.2.2#g###h.A.z#i.KQtQtQtQtQtQtQt", "QtQtQtQtQtQt.b#j.P.f.P#k.q.4.X#l#m#n.n#o.J.6#p#i#q.cQtQtQtQtQtQt", "QtQtQtQtQtQt.W#m#k.O#m#r.5.k#s#t#m.q#r.U.E.T#p#u#i.M.eQtQtQtQtQt", "QtQtQtQtQt.b.x#r.o.t#v.f.o.4.l#l#w#x.f.i#o.E###a.m#y.nQtQtQtQtQt", "QtQtQtQtQt.b.e.c#d.o#z.u.q#f.I.q.#.#.2#A.U.m#B#h.h.j.bQtQtQtQtQt", "QtQtQtQtQtQtQtQt.b#C#D#E#F#G#G#G#H#I#J#K#L#M#N.iQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQt.b#O#P#Q#R#S#T#U#L#M#V#W#N#V#V.iQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQt.b#X#Y#Z#0#0#1#2#3#4#5#6#7#M#V#AQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQt.b#8#9a.a#aaaaabac#3adaeaf#7#M.JQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQt.bagaha.a##1aaaa#2aiajakalaman#AQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtaoapa.a#aaaqaraq#3aj#5afamas.JQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtatauava#aw#V#W#Max#4ayafazan.JQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtatahaAaB#W#N#M#V#V#RaCalazas.JQtQtQtQtQtQtQtQt", "QtQtQtQtQtQtQtQt.baDap#Z#Q#N#M#V#M#N#6akafaEaFaG.E#h.JQtQtQtQtQt", "QtQtQtQtQtQtQtQtaHaIahaAaB#W#W#N#WaJ#6aKalamaF#WaJaJ#yQtQtQtQtQt", "QtQtQtQtQtQtQt.qaLaIahavaM#WaJ#W#DaN#RaealaOan#NaNaPaQQtQtQtQtQt", "QtQtQtQtQtQt.jaRaSaTaUavaB#WaNaPaLaVaWaeaX#6aYaZa0a1a2QtQtQtQtQt", "QtQtQtQtQt.ba3a4a5a5aVa6a1aZa7aSaSa5a8a9a4a5b.b#a5a5.kQtQtQtQtQt", "QtQtQtQtQtbaa7a7aVa0b.b#a7b#a0a7a7a7aSaSa7b.aVa0aVaR.#QtQtQtQtQt", "QtQtQtQtQtbbbcbdbebebfbgbhbhbibjbjbkbkblbmbmbnbobpbq.bQtQtQtQtQt"}; PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/icons/image6.xpm0000644000076500000240000000723712536324426024614 0ustar philstaff00000000000000/* XPM */ static char *image6[]={ "22 22 165 2", "Qt c None", ".h c #000000", ".o c #010101", "aF c #030303", "#n c #060606", ".H c #080808", ".r c #0c0c0c", ".q c #121212", "#V c #124e7f", "#m c #131313", ".G c #161615", "aI c #172cac", ".6 c #181818", "aH c #1841b2", ".p c #191919", "#8 c #1928ba", "#W c #1929ba", "aj c #192aba", "av c #1a31c2", "aE c #1b1b1b", "aD c #1b2bc8", "at c #1c79d2", "ah c #1c7dd4", "aA c #1d1d1d", "aC c #1d7ad7", "#6 c #1d7eda", ".5 c #1e1e1e", "#7 c #1e8ae0", "ai c #1e8de0", "au c #1e90e0", ".g c #242424", "#5 c #313b6c", "aB c #343d8d", "#3 c #393939", ".f c #3d3d3d", "ak c #433967", "#C c #434442", "aw c #443c6e", "#l c #454643", "as c #454fa3", ".4 c #474845", "#R c #474846", ".e c #484848", "aG c #4856a0", ".d c #4a4a4a", "#9 c #4c416a", ".c c #4c4c4c", "ag c #4c5cae", "#X c #4d4669", "#z c #4dc2b2", "#P c #4e445a", "#G c #53504e", ".l c #545454", ".b c #555555", "#Q c #595274", "#i c #62b2a2", ".a c #676767", "#j c #69b6a3", ".F c #6f6f6a", ".K c #6f8b89", "ax c #747474", "#a c #76a1a0", ".# c #797979", "#A c #7bd7e8", "ay c #7d7d7d", "#U c #7e7d73", ".I c #808080", ".O c #81a3b8", "az c #828282", "#y c #82d1c0", "#S c #848484", "#O c #857e7c", "#F c #86add2", "#k c #86cdda", "#N c #89b1bd", "#h c #8acec3", "#o c #8c8c8c", "#L c #8cbbca", "al c #8d8d8d", ".s c #8f8f8f", "#H c #909090", "#K c #90bac9", "#M c #91c4cf", "#t c #929292", ".X c #94c2cf", ".N c #94c2d0", ".W c #959595", "#B c #96b9cb", ".3 c #97bede", ".L c #98c2ce", ".P c #9b9b9b", "a. c #9c9c9c", "am c #9d9d9d", "#s c #9dbdc4", "#b c #9e9e9e", "#Y c #a0a0a0", "an c #a6a6a6", "#v c #a6d1d6", ".Z c #a7a1a1", "#I c #a7a7a7", "#D c #a7edde", ".M c #a8d8e5", "#u c #aeaeae", "ac c #b1b1b1", "a# c #b2b2b2", ".2 c #b5cbd6", ".V c #b6b6b6", "ar c #b7b7b7", "#Z c #b8b8b8", "#2 c #bababa", ".Q c #babbb9", "aq c #bbbbbb", "#c c #bcbcbc", ".8 c #bfbfbf", "ap c #c0c0c0", ".1 c #c1d9d2", "aa c #c8c8c8", "ab c #cacaca", "ao c #cbcbcb", ".Y c #ccf8f1", "#J c #cdcdcd", ".R c #cecece", "#p c #d1f9f4", "#4 c #d5d5d5", "#w c #d5ece4", ".9 c #d5f6f5", "#0 c #d6d6d6", ".U c #d7d7d7", "af c #d8d8d8", ".x c #dadada", ".y c #dbdbdb", ".w c #dcdcdc", "#e c #dcf7f4", "#1 c #dddddd", "ae c #dedede", ".E c #dfdfdf", ".z c #e0e0e0", "#g c #e0ebe4", "#q c #e1edea", "#d c #e2e2e2", "#x c #e2ebe2", ".0 c #e2eee5", ".v c #e3e3e3", "## c #e3e7d5", "#r c #e4ebd9", "#E c #e4f2ec", ".u c #e5e5e5", ".S c #e7e7e7", ".k c #e9e9e9", ".A c #ebebeb", ".D c #ededed", ".t c #f0f0f0", "#T c #f4f4f4", ".n c #f6f6f6", ".C c #f7f7f7", "#f c #f8f5f2", ".m c #f8f8f8", ".7 c #f9f9f9", "ad c #fafafa", "#. c #fbf0eb", ".J c #fbfbfb", ".T c #fcfcfc", ".B c #fdfdfd", ".j c #fefefe", ".i c #ffffff", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", "QtQtQtQtQt.#.a.b.c.d.d.e.f.g.hQtQtQtQtQtQtQt", "QtQtQtQt.#.i.i.i.i.i.i.i.i.i.h.hQtQtQtQtQtQt", "QtQtQtQt.a.j.j.j.j.j.j.i.i.i.h.k.hQtQtQtQtQt", "QtQtQtQt.l.m.n.o.p.q.r.s.j.i.h.t.u.hQtQtQtQt", "QtQtQtQt.e.v.w.x.y.z.A.n.B.B.h.C.D.E.hQtQtQt", "QtQtQt.h.h.h.h.h.F.G.H.I.n.J.h.h.h.h.h.hQtQt", "QtQt.h.K.L.M.N.O.h.P.Q.R.S.n.T.j.U.V.W.hQtQt", "Qt.h.X.Y.Z.0.1.2.3.h.4.5.6.q.r.s.7.v.8.hQtQt", "Qt.h.9#..###.F.F.F#a.h#b#c#d.m.j.7.v#c.hQtQt", "Qt.h#e#f.a#g#h#i#j#k.h#l#m.r#n#o.7.v#c.hQtQt", "Qt.h#p#q.a#r.F.F.F#s.h#t#u.x.n.j.7.v#c.hQtQt", "Qt.h#v#w.##x#y#z#A#B.h#C#m#m.q#o.7.v#c.hQtQt", "QtQt.h#D.Z#E.F.F#F.h#G#H#I#J.A.7.m.v#c.hQtQt", "QtQtQt.h#K#L#M#N.h#O#P#Q#R#m.q#S#T#d#c.hQtQt", "QtQtQtQt.h.h.h.h.Z#U#V#W#X#Y#Z#0.S#1#2.hQtQt", "QtQtQtQt#3.t.v.x#4#5#6#7#8#9a.a#aaabac.hQtQt", "QtQtQtQt.6ad.kae.yafagahaiajakalamana..oQtQt", "QtQtQtQt.haeaoapaqaqarasatauavawaxayaz.oQtQt", "QtQtQtQtQt.h.h.h.h.haA.oaBaCaiaD.HaEaFQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtaGaHaIQtQtQtQtQtQt", "QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/mainwindow.qrc0000644000076500000240000000050412536324426024454 0ustar philstaff00000000000000 icons/image0.xpm icons/image1.xpm icons/image2.xpm icons/image3.xpm icons/image4.xpm icons/image5.xpm icons/image6.xpm PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/mainwindow.ui0000644000076500000240000001326012536324426024307 0ustar philstaff00000000000000 MainWindow 0 0 812 605 Qt WebBrowser 0 6 QFrame::StyledPanel QFrame::Sunken 1 0 Qt::StrongFocus {8856F961-340A-11D0-A96B-00C04FD705A2} Navigation Qt::Horizontal 4 Address Qt::Horizontal 4 0 0 812 26 &File New &Help :/icons/image0.xpm Go :/icons/image1.xpm Back Backspace :/icons/image2.xpm Forward :/icons/image3.xpm Stop :/icons/image4.xpm Refresh :/icons/image5.xpm Home C&lose Close :/icons/image6.xpm Search About About Qt Window Ctrl+N QAxWidget QWidget

qaxwidget.h
1 PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/mainwindow_rc2.py0000644000076500000240000015037712536324426025103 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:07:25 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x0e\x9f\ \x2f\ \x2a\x20\x58\x50\x4d\x20\x2a\x2f\x0a\x73\x74\x61\x74\x69\x63\x20\ \x63\x68\x61\x72\x20\x2a\x69\x6d\x61\x67\x65\x36\x5b\x5d\x3d\x7b\ \x0a\x22\x32\x32\x20\x32\x32\x20\x31\x36\x35\x20\x32\x22\x2c\x0a\ \x22\x51\x74\x20\x63\x20\x4e\x6f\x6e\x65\x22\x2c\x0a\x22\x2e\x68\ \x20\x63\x20\x23\x30\x30\x30\x30\x30\x30\x22\x2c\x0a\x22\x2e\x6f\ \x20\x63\x20\x23\x30\x31\x30\x31\x30\x31\x22\x2c\x0a\x22\x61\x46\ \x20\x63\x20\x23\x30\x33\x30\x33\x30\x33\x22\x2c\x0a\x22\x23\x6e\ \x20\x63\x20\x23\x30\x36\x30\x36\x30\x36\x22\x2c\x0a\x22\x2e\x48\ \x20\x63\x20\x23\x30\x38\x30\x38\x30\x38\x22\x2c\x0a\x22\x2e\x72\ \x20\x63\x20\x23\x30\x63\x30\x63\x30\x63\x22\x2c\x0a\x22\x2e\x71\ \x20\x63\x20\x23\x31\x32\x31\x32\x31\x32\x22\x2c\x0a\x22\x23\x56\ \x20\x63\x20\x23\x31\x32\x34\x65\x37\x66\x22\x2c\x0a\x22\x23\x6d\ \x20\x63\x20\x23\x31\x33\x31\x33\x31\x33\x22\x2c\x0a\x22\x2e\x47\ \x20\x63\x20\x23\x31\x36\x31\x36\x31\x35\x22\x2c\x0a\x22\x61\x49\ \x20\x63\x20\x23\x31\x37\x32\x63\x61\x63\x22\x2c\x0a\x22\x2e\x36\ \x20\x63\x20\x23\x31\x38\x31\x38\x31\x38\x22\x2c\x0a\x22\x61\x48\ \x20\x63\x20\x23\x31\x38\x34\x31\x62\x32\x22\x2c\x0a\x22\x2e\x70\ \x20\x63\x20\x23\x31\x39\x31\x39\x31\x39\x22\x2c\x0a\x22\x23\x38\ \x20\x63\x20\x23\x31\x39\x32\x38\x62\x61\x22\x2c\x0a\x22\x23\x57\ \x20\x63\x20\x23\x31\x39\x32\x39\x62\x61\x22\x2c\x0a\x22\x61\x6a\ \x20\x63\x20\x23\x31\x39\x32\x61\x62\x61\x22\x2c\x0a\x22\x61\x76\ \x20\x63\x20\x23\x31\x61\x33\x31\x63\x32\x22\x2c\x0a\x22\x61\x45\ \x20\x63\x20\x23\x31\x62\x31\x62\x31\x62\x22\x2c\x0a\x22\x61\x44\ \x20\x63\x20\x23\x31\x62\x32\x62\x63\x38\x22\x2c\x0a\x22\x61\x74\ \x20\x63\x20\x23\x31\x63\x37\x39\x64\x32\x22\x2c\x0a\x22\x61\x68\ \x20\x63\x20\x23\x31\x63\x37\x64\x64\x34\x22\x2c\x0a\x22\x61\x41\ \x20\x63\x20\x23\x31\x64\x31\x64\x31\x64\x22\x2c\x0a\x22\x61\x43\ \x20\x63\x20\x23\x31\x64\x37\x61\x64\x37\x22\x2c\x0a\x22\x23\x36\ \x20\x63\x20\x23\x31\x64\x37\x65\x64\x61\x22\x2c\x0a\x22\x2e\x35\ \x20\x63\x20\x23\x31\x65\x31\x65\x31\x65\x22\x2c\x0a\x22\x23\x37\ \x20\x63\x20\x23\x31\x65\x38\x61\x65\x30\x22\x2c\x0a\x22\x61\x69\ \x20\x63\x20\x23\x31\x65\x38\x64\x65\x30\x22\x2c\x0a\x22\x61\x75\ \x20\x63\x20\x23\x31\x65\x39\x30\x65\x30\x22\x2c\x0a\x22\x2e\x67\ \x20\x63\x20\x23\x32\x34\x32\x34\x32\x34\x22\x2c\x0a\x22\x23\x35\ \x20\x63\x20\x23\x33\x31\x33\x62\x36\x63\x22\x2c\x0a\x22\x61\x42\ \x20\x63\x20\x23\x33\x34\x33\x64\x38\x64\x22\x2c\x0a\x22\x23\x33\ \x20\x63\x20\x23\x33\x39\x33\x39\x33\x39\x22\x2c\x0a\x22\x2e\x66\ \x20\x63\x20\x23\x33\x64\x33\x64\x33\x64\x22\x2c\x0a\x22\x61\x6b\ \x20\x63\x20\x23\x34\x33\x33\x39\x36\x37\x22\x2c\x0a\x22\x23\x43\ \x20\x63\x20\x23\x34\x33\x34\x34\x34\x32\x22\x2c\x0a\x22\x61\x77\ \x20\x63\x20\x23\x34\x34\x33\x63\x36\x65\x22\x2c\x0a\x22\x23\x6c\ \x20\x63\x20\x23\x34\x35\x34\x36\x34\x33\x22\x2c\x0a\x22\x61\x73\ \x20\x63\x20\x23\x34\x35\x34\x66\x61\x33\x22\x2c\x0a\x22\x2e\x34\ \x20\x63\x20\x23\x34\x37\x34\x38\x34\x35\x22\x2c\x0a\x22\x23\x52\ \x20\x63\x20\x23\x34\x37\x34\x38\x34\x36\x22\x2c\x0a\x22\x2e\x65\ \x20\x63\x20\x23\x34\x38\x34\x38\x34\x38\x22\x2c\x0a\x22\x61\x47\ \x20\x63\x20\x23\x34\x38\x35\x36\x61\x30\x22\x2c\x0a\x22\x2e\x64\ \x20\x63\x20\x23\x34\x61\x34\x61\x34\x61\x22\x2c\x0a\x22\x23\x39\ \x20\x63\x20\x23\x34\x63\x34\x31\x36\x61\x22\x2c\x0a\x22\x2e\x63\ \x20\x63\x20\x23\x34\x63\x34\x63\x34\x63\x22\x2c\x0a\x22\x61\x67\ \x20\x63\x20\x23\x34\x63\x35\x63\x61\x65\x22\x2c\x0a\x22\x23\x58\ \x20\x63\x20\x23\x34\x64\x34\x36\x36\x39\x22\x2c\x0a\x22\x23\x7a\ \x20\x63\x20\x23\x34\x64\x63\x32\x62\x32\x22\x2c\x0a\x22\x23\x50\ \x20\x63\x20\x23\x34\x65\x34\x34\x35\x61\x22\x2c\x0a\x22\x23\x47\ \x20\x63\x20\x23\x35\x33\x35\x30\x34\x65\x22\x2c\x0a\x22\x2e\x6c\ \x20\x63\x20\x23\x35\x34\x35\x34\x35\x34\x22\x2c\x0a\x22\x2e\x62\ \x20\x63\x20\x23\x35\x35\x35\x35\x35\x35\x22\x2c\x0a\x22\x23\x51\ \x20\x63\x20\x23\x35\x39\x35\x32\x37\x34\x22\x2c\x0a\x22\x23\x69\ \x20\x63\x20\x23\x36\x32\x62\x32\x61\x32\x22\x2c\x0a\x22\x2e\x61\ \x20\x63\x20\x23\x36\x37\x36\x37\x36\x37\x22\x2c\x0a\x22\x23\x6a\ \x20\x63\x20\x23\x36\x39\x62\x36\x61\x33\x22\x2c\x0a\x22\x2e\x46\ \x20\x63\x20\x23\x36\x66\x36\x66\x36\x61\x22\x2c\x0a\x22\x2e\x4b\ \x20\x63\x20\x23\x36\x66\x38\x62\x38\x39\x22\x2c\x0a\x22\x61\x78\ \x20\x63\x20\x23\x37\x34\x37\x34\x37\x34\x22\x2c\x0a\x22\x23\x61\ \x20\x63\x20\x23\x37\x36\x61\x31\x61\x30\x22\x2c\x0a\x22\x2e\x23\ \x20\x63\x20\x23\x37\x39\x37\x39\x37\x39\x22\x2c\x0a\x22\x23\x41\ \x20\x63\x20\x23\x37\x62\x64\x37\x65\x38\x22\x2c\x0a\x22\x61\x79\ \x20\x63\x20\x23\x37\x64\x37\x64\x37\x64\x22\x2c\x0a\x22\x23\x55\ \x20\x63\x20\x23\x37\x65\x37\x64\x37\x33\x22\x2c\x0a\x22\x2e\x49\ \x20\x63\x20\x23\x38\x30\x38\x30\x38\x30\x22\x2c\x0a\x22\x2e\x4f\ \x20\x63\x20\x23\x38\x31\x61\x33\x62\x38\x22\x2c\x0a\x22\x61\x7a\ \x20\x63\x20\x23\x38\x32\x38\x32\x38\x32\x22\x2c\x0a\x22\x23\x79\ \x20\x63\x20\x23\x38\x32\x64\x31\x63\x30\x22\x2c\x0a\x22\x23\x53\ \x20\x63\x20\x23\x38\x34\x38\x34\x38\x34\x22\x2c\x0a\x22\x23\x4f\ \x20\x63\x20\x23\x38\x35\x37\x65\x37\x63\x22\x2c\x0a\x22\x23\x46\ \x20\x63\x20\x23\x38\x36\x61\x64\x64\x32\x22\x2c\x0a\x22\x23\x6b\ \x20\x63\x20\x23\x38\x36\x63\x64\x64\x61\x22\x2c\x0a\x22\x23\x4e\ \x20\x63\x20\x23\x38\x39\x62\x31\x62\x64\x22\x2c\x0a\x22\x23\x68\ \x20\x63\x20\x23\x38\x61\x63\x65\x63\x33\x22\x2c\x0a\x22\x23\x6f\ \x20\x63\x20\x23\x38\x63\x38\x63\x38\x63\x22\x2c\x0a\x22\x23\x4c\ \x20\x63\x20\x23\x38\x63\x62\x62\x63\x61\x22\x2c\x0a\x22\x61\x6c\ \x20\x63\x20\x23\x38\x64\x38\x64\x38\x64\x22\x2c\x0a\x22\x2e\x73\ \x20\x63\x20\x23\x38\x66\x38\x66\x38\x66\x22\x2c\x0a\x22\x23\x48\ \x20\x63\x20\x23\x39\x30\x39\x30\x39\x30\x22\x2c\x0a\x22\x23\x4b\ \x20\x63\x20\x23\x39\x30\x62\x61\x63\x39\x22\x2c\x0a\x22\x23\x4d\ \x20\x63\x20\x23\x39\x31\x63\x34\x63\x66\x22\x2c\x0a\x22\x23\x74\ \x20\x63\x20\x23\x39\x32\x39\x32\x39\x32\x22\x2c\x0a\x22\x2e\x58\ \x20\x63\x20\x23\x39\x34\x63\x32\x63\x66\x22\x2c\x0a\x22\x2e\x4e\ \x20\x63\x20\x23\x39\x34\x63\x32\x64\x30\x22\x2c\x0a\x22\x2e\x57\ \x20\x63\x20\x23\x39\x35\x39\x35\x39\x35\x22\x2c\x0a\x22\x23\x42\ \x20\x63\x20\x23\x39\x36\x62\x39\x63\x62\x22\x2c\x0a\x22\x2e\x33\ \x20\x63\x20\x23\x39\x37\x62\x65\x64\x65\x22\x2c\x0a\x22\x2e\x4c\ \x20\x63\x20\x23\x39\x38\x63\x32\x63\x65\x22\x2c\x0a\x22\x2e\x50\ \x20\x63\x20\x23\x39\x62\x39\x62\x39\x62\x22\x2c\x0a\x22\x61\x2e\ \x20\x63\x20\x23\x39\x63\x39\x63\x39\x63\x22\x2c\x0a\x22\x61\x6d\ \x20\x63\x20\x23\x39\x64\x39\x64\x39\x64\x22\x2c\x0a\x22\x23\x73\ \x20\x63\x20\x23\x39\x64\x62\x64\x63\x34\x22\x2c\x0a\x22\x23\x62\ \x20\x63\x20\x23\x39\x65\x39\x65\x39\x65\x22\x2c\x0a\x22\x23\x59\ \x20\x63\x20\x23\x61\x30\x61\x30\x61\x30\x22\x2c\x0a\x22\x61\x6e\ \x20\x63\x20\x23\x61\x36\x61\x36\x61\x36\x22\x2c\x0a\x22\x23\x76\ \x20\x63\x20\x23\x61\x36\x64\x31\x64\x36\x22\x2c\x0a\x22\x2e\x5a\ \x20\x63\x20\x23\x61\x37\x61\x31\x61\x31\x22\x2c\x0a\x22\x23\x49\ \x20\x63\x20\x23\x61\x37\x61\x37\x61\x37\x22\x2c\x0a\x22\x23\x44\ \x20\x63\x20\x23\x61\x37\x65\x64\x64\x65\x22\x2c\x0a\x22\x2e\x4d\ \x20\x63\x20\x23\x61\x38\x64\x38\x65\x35\x22\x2c\x0a\x22\x23\x75\ \x20\x63\x20\x23\x61\x65\x61\x65\x61\x65\x22\x2c\x0a\x22\x61\x63\ \x20\x63\x20\x23\x62\x31\x62\x31\x62\x31\x22\x2c\x0a\x22\x61\x23\ \x20\x63\x20\x23\x62\x32\x62\x32\x62\x32\x22\x2c\x0a\x22\x2e\x32\ \x20\x63\x20\x23\x62\x35\x63\x62\x64\x36\x22\x2c\x0a\x22\x2e\x56\ \x20\x63\x20\x23\x62\x36\x62\x36\x62\x36\x22\x2c\x0a\x22\x61\x72\ \x20\x63\x20\x23\x62\x37\x62\x37\x62\x37\x22\x2c\x0a\x22\x23\x5a\ \x20\x63\x20\x23\x62\x38\x62\x38\x62\x38\x22\x2c\x0a\x22\x23\x32\ \x20\x63\x20\x23\x62\x61\x62\x61\x62\x61\x22\x2c\x0a\x22\x2e\x51\ \x20\x63\x20\x23\x62\x61\x62\x62\x62\x39\x22\x2c\x0a\x22\x61\x71\ \x20\x63\x20\x23\x62\x62\x62\x62\x62\x62\x22\x2c\x0a\x22\x23\x63\ \x20\x63\x20\x23\x62\x63\x62\x63\x62\x63\x22\x2c\x0a\x22\x2e\x38\ \x20\x63\x20\x23\x62\x66\x62\x66\x62\x66\x22\x2c\x0a\x22\x61\x70\ \x20\x63\x20\x23\x63\x30\x63\x30\x63\x30\x22\x2c\x0a\x22\x2e\x31\ \x20\x63\x20\x23\x63\x31\x64\x39\x64\x32\x22\x2c\x0a\x22\x61\x61\ \x20\x63\x20\x23\x63\x38\x63\x38\x63\x38\x22\x2c\x0a\x22\x61\x62\ \x20\x63\x20\x23\x63\x61\x63\x61\x63\x61\x22\x2c\x0a\x22\x61\x6f\ \x20\x63\x20\x23\x63\x62\x63\x62\x63\x62\x22\x2c\x0a\x22\x2e\x59\ \x20\x63\x20\x23\x63\x63\x66\x38\x66\x31\x22\x2c\x0a\x22\x23\x4a\ \x20\x63\x20\x23\x63\x64\x63\x64\x63\x64\x22\x2c\x0a\x22\x2e\x52\ \x20\x63\x20\x23\x63\x65\x63\x65\x63\x65\x22\x2c\x0a\x22\x23\x70\ \x20\x63\x20\x23\x64\x31\x66\x39\x66\x34\x22\x2c\x0a\x22\x23\x34\ \x20\x63\x20\x23\x64\x35\x64\x35\x64\x35\x22\x2c\x0a\x22\x23\x77\ \x20\x63\x20\x23\x64\x35\x65\x63\x65\x34\x22\x2c\x0a\x22\x2e\x39\ \x20\x63\x20\x23\x64\x35\x66\x36\x66\x35\x22\x2c\x0a\x22\x23\x30\ \x20\x63\x20\x23\x64\x36\x64\x36\x64\x36\x22\x2c\x0a\x22\x2e\x55\ \x20\x63\x20\x23\x64\x37\x64\x37\x64\x37\x22\x2c\x0a\x22\x61\x66\ \x20\x63\x20\x23\x64\x38\x64\x38\x64\x38\x22\x2c\x0a\x22\x2e\x78\ \x20\x63\x20\x23\x64\x61\x64\x61\x64\x61\x22\x2c\x0a\x22\x2e\x79\ \x20\x63\x20\x23\x64\x62\x64\x62\x64\x62\x22\x2c\x0a\x22\x2e\x77\ \x20\x63\x20\x23\x64\x63\x64\x63\x64\x63\x22\x2c\x0a\x22\x23\x65\ \x20\x63\x20\x23\x64\x63\x66\x37\x66\x34\x22\x2c\x0a\x22\x23\x31\ \x20\x63\x20\x23\x64\x64\x64\x64\x64\x64\x22\x2c\x0a\x22\x61\x65\ \x20\x63\x20\x23\x64\x65\x64\x65\x64\x65\x22\x2c\x0a\x22\x2e\x45\ \x20\x63\x20\x23\x64\x66\x64\x66\x64\x66\x22\x2c\x0a\x22\x2e\x7a\ \x20\x63\x20\x23\x65\x30\x65\x30\x65\x30\x22\x2c\x0a\x22\x23\x67\ \x20\x63\x20\x23\x65\x30\x65\x62\x65\x34\x22\x2c\x0a\x22\x23\x71\ \x20\x63\x20\x23\x65\x31\x65\x64\x65\x61\x22\x2c\x0a\x22\x23\x64\ \x20\x63\x20\x23\x65\x32\x65\x32\x65\x32\x22\x2c\x0a\x22\x23\x78\ \x20\x63\x20\x23\x65\x32\x65\x62\x65\x32\x22\x2c\x0a\x22\x2e\x30\ \x20\x63\x20\x23\x65\x32\x65\x65\x65\x35\x22\x2c\x0a\x22\x2e\x76\ \x20\x63\x20\x23\x65\x33\x65\x33\x65\x33\x22\x2c\x0a\x22\x23\x23\ \x20\x63\x20\x23\x65\x33\x65\x37\x64\x35\x22\x2c\x0a\x22\x23\x72\ \x20\x63\x20\x23\x65\x34\x65\x62\x64\x39\x22\x2c\x0a\x22\x23\x45\ \x20\x63\x20\x23\x65\x34\x66\x32\x65\x63\x22\x2c\x0a\x22\x2e\x75\ \x20\x63\x20\x23\x65\x35\x65\x35\x65\x35\x22\x2c\x0a\x22\x2e\x53\ \x20\x63\x20\x23\x65\x37\x65\x37\x65\x37\x22\x2c\x0a\x22\x2e\x6b\ \x20\x63\x20\x23\x65\x39\x65\x39\x65\x39\x22\x2c\x0a\x22\x2e\x41\ \x20\x63\x20\x23\x65\x62\x65\x62\x65\x62\x22\x2c\x0a\x22\x2e\x44\ \x20\x63\x20\x23\x65\x64\x65\x64\x65\x64\x22\x2c\x0a\x22\x2e\x74\ \x20\x63\x20\x23\x66\x30\x66\x30\x66\x30\x22\x2c\x0a\x22\x23\x54\ \x20\x63\x20\x23\x66\x34\x66\x34\x66\x34\x22\x2c\x0a\x22\x2e\x6e\ \x20\x63\x20\x23\x66\x36\x66\x36\x66\x36\x22\x2c\x0a\x22\x2e\x43\ \x20\x63\x20\x23\x66\x37\x66\x37\x66\x37\x22\x2c\x0a\x22\x23\x66\ \x20\x63\x20\x23\x66\x38\x66\x35\x66\x32\x22\x2c\x0a\x22\x2e\x6d\ \x20\x63\x20\x23\x66\x38\x66\x38\x66\x38\x22\x2c\x0a\x22\x2e\x37\ \x20\x63\x20\x23\x66\x39\x66\x39\x66\x39\x22\x2c\x0a\x22\x61\x64\ \x20\x63\x20\x23\x66\x61\x66\x61\x66\x61\x22\x2c\x0a\x22\x23\x2e\ \x20\x63\x20\x23\x66\x62\x66\x30\x65\x62\x22\x2c\x0a\x22\x2e\x4a\ \x20\x63\x20\x23\x66\x62\x66\x62\x66\x62\x22\x2c\x0a\x22\x2e\x54\ \x20\x63\x20\x23\x66\x63\x66\x63\x66\x63\x22\x2c\x0a\x22\x2e\x42\ \x20\x63\x20\x23\x66\x64\x66\x64\x66\x64\x22\x2c\x0a\x22\x2e\x6a\ \x20\x63\x20\x23\x66\x65\x66\x65\x66\x65\x22\x2c\x0a\x22\x2e\x69\ \x20\x63\x20\x23\x66\x66\x66\x66\x66\x66\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x2e\x23\x2e\x61\x2e\x62\x2e\x63\ \x2e\x64\x2e\x64\x2e\x65\x2e\x66\x2e\x67\x2e\x68\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x23\x2e\x69\x2e\x69\x2e\x69\x2e\x69\ \x2e\x69\x2e\x69\x2e\x69\x2e\x69\x2e\x69\x2e\x68\x2e\x68\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x61\x2e\x6a\x2e\x6a\x2e\x6a\x2e\x6a\ \x2e\x6a\x2e\x6a\x2e\x69\x2e\x69\x2e\x69\x2e\x68\x2e\x6b\x2e\x68\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x6c\x2e\x6d\x2e\x6e\x2e\x6f\x2e\x70\ \x2e\x71\x2e\x72\x2e\x73\x2e\x6a\x2e\x69\x2e\x68\x2e\x74\x2e\x75\ \x2e\x68\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x65\x2e\x76\x2e\x77\x2e\x78\x2e\x79\ \x2e\x7a\x2e\x41\x2e\x6e\x2e\x42\x2e\x42\x2e\x68\x2e\x43\x2e\x44\ \x2e\x45\x2e\x68\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x2e\x68\x2e\x68\x2e\x68\x2e\x68\x2e\x68\x2e\x46\ \x2e\x47\x2e\x48\x2e\x49\x2e\x6e\x2e\x4a\x2e\x68\x2e\x68\x2e\x68\ \x2e\x68\x2e\x68\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x2e\x68\x2e\x4b\x2e\x4c\x2e\x4d\x2e\x4e\x2e\x4f\x2e\x68\ \x2e\x50\x2e\x51\x2e\x52\x2e\x53\x2e\x6e\x2e\x54\x2e\x6a\x2e\x55\ \x2e\x56\x2e\x57\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x2e\x58\x2e\x59\x2e\x5a\x2e\x30\x2e\x31\x2e\x32\x2e\x33\ \x2e\x68\x2e\x34\x2e\x35\x2e\x36\x2e\x71\x2e\x72\x2e\x73\x2e\x37\ \x2e\x76\x2e\x38\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x2e\x39\x23\x2e\x2e\x23\x23\x23\x2e\x46\x2e\x46\x2e\x46\ \x23\x61\x2e\x68\x23\x62\x23\x63\x23\x64\x2e\x6d\x2e\x6a\x2e\x37\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x23\x65\x23\x66\x2e\x61\x23\x67\x23\x68\x23\x69\x23\x6a\ \x23\x6b\x2e\x68\x23\x6c\x23\x6d\x2e\x72\x23\x6e\x23\x6f\x2e\x37\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x23\x70\x23\x71\x2e\x61\x23\x72\x2e\x46\x2e\x46\x2e\x46\ \x23\x73\x2e\x68\x23\x74\x23\x75\x2e\x78\x2e\x6e\x2e\x6a\x2e\x37\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x23\x76\x23\x77\x2e\x23\x23\x78\x23\x79\x23\x7a\x23\x41\ \x23\x42\x2e\x68\x23\x43\x23\x6d\x23\x6d\x2e\x71\x23\x6f\x2e\x37\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x2e\x68\x23\x44\x2e\x5a\x23\x45\x2e\x46\x2e\x46\x23\x46\ \x2e\x68\x23\x47\x23\x48\x23\x49\x23\x4a\x2e\x41\x2e\x37\x2e\x6d\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x2e\x68\x23\x4b\x23\x4c\x23\x4d\x23\x4e\x2e\x68\ \x23\x4f\x23\x50\x23\x51\x23\x52\x23\x6d\x2e\x71\x23\x53\x23\x54\ \x23\x64\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x68\x2e\x68\x2e\x68\x2e\x68\x2e\x5a\ \x23\x55\x23\x56\x23\x57\x23\x58\x23\x59\x23\x5a\x23\x30\x2e\x53\ \x23\x31\x23\x32\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x23\x33\x2e\x74\x2e\x76\x2e\x78\x23\x34\ \x23\x35\x23\x36\x23\x37\x23\x38\x23\x39\x61\x2e\x61\x23\x61\x61\ \x61\x62\x61\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x36\x61\x64\x2e\x6b\x61\x65\x2e\x79\ \x61\x66\x61\x67\x61\x68\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\ \x61\x6e\x61\x2e\x2e\x6f\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x68\x61\x65\x61\x6f\x61\x70\x61\x71\ \x61\x71\x61\x72\x61\x73\x61\x74\x61\x75\x61\x76\x61\x77\x61\x78\ \x61\x79\x61\x7a\x2e\x6f\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x2e\x68\x2e\x68\x2e\x68\x2e\x68\ \x2e\x68\x61\x41\x2e\x6f\x61\x42\x61\x43\x61\x69\x61\x44\x2e\x48\ \x61\x45\x61\x46\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x61\x47\x61\x48\x61\x49\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x7d\x3b\x0a\ \x00\x00\x00\xad\ \x00\ \x00\x04\xda\x78\x9c\xd3\xd7\x52\x88\x08\xf0\x55\xd0\xd2\xe7\x2a\ \x2e\x49\x2c\xc9\x4c\x56\x48\xce\x48\x2c\x52\xd0\xca\xcc\x4d\x4c\ \x4f\x35\x89\x8e\xb5\xad\xe6\x52\x32\x36\x52\x00\x21\x05\x43\x25\ \x1d\x2e\x25\x3d\x85\x64\x05\xbf\xfc\xbc\x54\x10\x5b\x19\xc8\x56\ \x36\x00\x02\x0b\x03\x10\x37\x11\xc4\xb5\x30\xb0\x80\x72\xf5\x08\ \x80\x51\x35\x24\xab\x51\x86\x81\x44\x34\x35\xca\x98\x4a\xe0\x8a\ \xe0\x6a\x94\x11\x4a\x10\xac\x44\x34\x35\xca\x30\x43\x90\x4d\x4c\ \x44\x53\xa3\x8c\xa6\x04\xae\x11\x59\x0d\x9a\x0a\xb8\x0b\xd0\xd4\ \x60\x78\x91\x4c\x35\xc4\xd8\x85\xa6\x08\x87\x1a\x54\x7f\x61\xf8\ \x1d\x5d\x11\x7a\x18\x62\x01\x89\x30\xe5\xb8\xd5\xc0\x95\x0c\x74\ \x1a\x1b\x1e\x6a\x6a\xad\xb9\x00\xc3\x36\xd8\x5e\ \x00\x00\x15\xdf\ \x2f\ \x2a\x20\x58\x50\x4d\x20\x2a\x2f\x0a\x73\x74\x61\x74\x69\x63\x20\ \x63\x68\x61\x72\x20\x2a\x69\x6d\x61\x67\x65\x35\x5b\x5d\x3d\x7b\ \x0a\x22\x33\x32\x20\x33\x32\x20\x32\x31\x31\x20\x32\x22\x2c\x0a\ \x22\x51\x74\x20\x63\x20\x4e\x6f\x6e\x65\x22\x2c\x0a\x22\x61\x4a\ \x20\x63\x20\x23\x30\x30\x30\x30\x30\x30\x22\x2c\x0a\x22\x23\x57\ \x20\x63\x20\x23\x30\x38\x30\x38\x30\x30\x22\x2c\x0a\x22\x23\x4e\ \x20\x63\x20\x23\x31\x30\x30\x38\x30\x30\x22\x2c\x0a\x22\x23\x56\ \x20\x63\x20\x23\x31\x30\x31\x30\x30\x30\x22\x2c\x0a\x22\x23\x45\ \x20\x63\x20\x23\x31\x30\x31\x30\x30\x38\x22\x2c\x0a\x22\x23\x4d\ \x20\x63\x20\x23\x31\x38\x31\x30\x30\x30\x22\x2c\x0a\x22\x23\x4c\ \x20\x63\x20\x23\x31\x38\x31\x38\x30\x30\x22\x2c\x0a\x22\x23\x44\ \x20\x63\x20\x23\x31\x38\x31\x38\x30\x38\x22\x2c\x0a\x22\x23\x46\ \x20\x63\x20\x23\x31\x38\x31\x38\x31\x30\x22\x2c\x0a\x22\x61\x73\ \x20\x63\x20\x23\x32\x31\x31\x38\x30\x30\x22\x2c\x0a\x22\x23\x4b\ \x20\x63\x20\x23\x32\x31\x31\x38\x30\x38\x22\x2c\x0a\x22\x23\x4a\ \x20\x63\x20\x23\x32\x31\x32\x31\x31\x30\x22\x2c\x0a\x22\x23\x47\ \x20\x63\x20\x23\x32\x31\x32\x31\x31\x38\x22\x2c\x0a\x22\x23\x71\ \x20\x63\x20\x23\x32\x31\x32\x31\x32\x31\x22\x2c\x0a\x22\x61\x6e\ \x20\x63\x20\x23\x32\x39\x32\x31\x30\x30\x22\x2c\x0a\x22\x23\x49\ \x20\x63\x20\x23\x32\x39\x32\x31\x31\x30\x22\x2c\x0a\x22\x61\x4e\ \x20\x63\x20\x23\x32\x39\x32\x39\x31\x30\x22\x2c\x0a\x22\x23\x48\ \x20\x63\x20\x23\x32\x39\x32\x39\x31\x38\x22\x2c\x0a\x22\x23\x79\ \x20\x63\x20\x23\x32\x39\x32\x39\x32\x31\x22\x2c\x0a\x22\x61\x46\ \x20\x63\x20\x23\x33\x31\x32\x39\x30\x30\x22\x2c\x0a\x22\x23\x43\ \x20\x63\x20\x23\x33\x31\x32\x39\x31\x38\x22\x2c\x0a\x22\x23\x69\ \x20\x63\x20\x23\x33\x31\x32\x39\x32\x39\x22\x2c\x0a\x22\x2e\x30\ \x20\x63\x20\x23\x33\x31\x33\x31\x33\x31\x22\x2c\x0a\x22\x23\x37\ \x20\x63\x20\x23\x33\x39\x33\x31\x30\x30\x22\x2c\x0a\x22\x23\x55\ \x20\x63\x20\x23\x33\x39\x33\x31\x30\x38\x22\x2c\x0a\x22\x61\x47\ \x20\x63\x20\x23\x33\x39\x33\x39\x33\x31\x22\x2c\x0a\x22\x2e\x4d\ \x20\x63\x20\x23\x33\x39\x33\x39\x33\x39\x22\x2c\x0a\x22\x23\x75\ \x20\x63\x20\x23\x34\x32\x33\x39\x33\x39\x22\x2c\x0a\x22\x23\x63\ \x20\x63\x20\x23\x34\x32\x34\x61\x34\x32\x22\x2c\x0a\x22\x61\x45\ \x20\x63\x20\x23\x34\x61\x34\x32\x30\x30\x22\x2c\x0a\x22\x61\x59\ \x20\x63\x20\x23\x34\x61\x34\x32\x31\x30\x22\x2c\x0a\x22\x2e\x56\ \x20\x63\x20\x23\x34\x61\x34\x32\x33\x39\x22\x2c\x0a\x22\x23\x42\ \x20\x63\x20\x23\x34\x61\x34\x61\x33\x39\x22\x2c\x0a\x22\x2e\x6d\ \x20\x63\x20\x23\x34\x61\x34\x61\x34\x32\x22\x2c\x0a\x22\x61\x50\ \x20\x63\x20\x23\x34\x61\x35\x32\x31\x38\x22\x2c\x0a\x22\x2e\x47\ \x20\x63\x20\x23\x34\x61\x35\x32\x35\x32\x22\x2c\x0a\x22\x2e\x7a\ \x20\x63\x20\x23\x34\x61\x35\x61\x35\x32\x22\x2c\x0a\x22\x61\x4f\ \x20\x63\x20\x23\x35\x32\x34\x32\x30\x30\x22\x2c\x0a\x22\x61\x6d\ \x20\x63\x20\x23\x35\x32\x34\x61\x30\x30\x22\x2c\x0a\x22\x23\x54\ \x20\x63\x20\x23\x35\x32\x34\x61\x30\x38\x22\x2c\x0a\x22\x23\x70\ \x20\x63\x20\x23\x35\x32\x34\x61\x34\x61\x22\x2c\x0a\x22\x2e\x73\ \x20\x63\x20\x23\x35\x32\x35\x32\x35\x32\x22\x2c\x0a\x22\x23\x61\ \x20\x63\x20\x23\x35\x32\x35\x61\x35\x32\x22\x2c\x0a\x22\x2e\x37\ \x20\x63\x20\x23\x35\x32\x36\x33\x35\x61\x22\x2c\x0a\x22\x23\x62\ \x20\x63\x20\x23\x35\x32\x36\x33\x36\x33\x22\x2c\x0a\x22\x61\x7a\ \x20\x63\x20\x23\x35\x61\x34\x61\x30\x30\x22\x2c\x0a\x22\x23\x36\ \x20\x63\x20\x23\x35\x61\x35\x32\x30\x38\x22\x2c\x0a\x22\x61\x77\ \x20\x63\x20\x23\x35\x61\x35\x32\x31\x30\x22\x2c\x0a\x22\x2e\x5a\ \x20\x63\x20\x23\x35\x61\x35\x32\x34\x61\x22\x2c\x0a\x22\x2e\x4c\ \x20\x63\x20\x23\x35\x61\x35\x61\x35\x32\x22\x2c\x0a\x22\x2e\x79\ \x20\x63\x20\x23\x35\x61\x35\x61\x35\x61\x22\x2c\x0a\x22\x2e\x46\ \x20\x63\x20\x23\x35\x61\x36\x33\x35\x61\x22\x2c\x0a\x22\x23\x53\ \x20\x63\x20\x23\x36\x33\x35\x32\x30\x38\x22\x2c\x0a\x22\x61\x78\ \x20\x63\x20\x23\x36\x33\x35\x61\x31\x30\x22\x2c\x0a\x22\x2e\x55\ \x20\x63\x20\x23\x36\x33\x35\x61\x35\x32\x22\x2c\x0a\x22\x2e\x72\ \x20\x63\x20\x23\x36\x33\x35\x61\x35\x61\x22\x2c\x0a\x22\x61\x5a\ \x20\x63\x20\x23\x36\x33\x36\x33\x32\x31\x22\x2c\x0a\x22\x23\x23\ \x20\x63\x20\x23\x36\x33\x36\x33\x35\x61\x22\x2c\x0a\x22\x2e\x41\ \x20\x63\x20\x23\x36\x33\x36\x33\x36\x33\x22\x2c\x0a\x22\x23\x68\ \x20\x63\x20\x23\x36\x33\x36\x62\x36\x62\x22\x2c\x0a\x22\x61\x4c\ \x20\x63\x20\x23\x36\x33\x37\x33\x32\x39\x22\x2c\x0a\x22\x61\x66\ \x20\x63\x20\x23\x36\x62\x35\x61\x30\x30\x22\x2c\x0a\x22\x2e\x36\ \x20\x63\x20\x23\x36\x62\x36\x33\x35\x61\x22\x2c\x0a\x22\x23\x6f\ \x20\x63\x20\x23\x36\x62\x36\x33\x36\x33\x22\x2c\x0a\x22\x2e\x45\ \x20\x63\x20\x23\x36\x62\x36\x62\x36\x33\x22\x2c\x0a\x22\x61\x34\ \x20\x63\x20\x23\x36\x62\x37\x33\x32\x31\x22\x2c\x0a\x22\x61\x53\ \x20\x63\x20\x23\x36\x62\x37\x33\x32\x39\x22\x2c\x0a\x22\x61\x52\ \x20\x63\x20\x23\x36\x62\x37\x33\x33\x31\x22\x2c\x0a\x22\x61\x58\ \x20\x63\x20\x23\x37\x33\x36\x33\x30\x30\x22\x2c\x0a\x22\x61\x6c\ \x20\x63\x20\x23\x37\x33\x36\x33\x30\x38\x22\x2c\x0a\x22\x23\x52\ \x20\x63\x20\x23\x37\x33\x36\x62\x31\x30\x22\x2c\x0a\x22\x2e\x54\ \x20\x63\x20\x23\x37\x33\x36\x62\x36\x33\x22\x2c\x0a\x22\x61\x35\ \x20\x63\x20\x23\x37\x33\x37\x33\x32\x39\x22\x2c\x0a\x22\x2e\x69\ \x20\x63\x20\x23\x37\x33\x37\x33\x36\x62\x22\x2c\x0a\x22\x2e\x4b\ \x20\x63\x20\x23\x37\x33\x37\x33\x37\x33\x22\x2c\x0a\x22\x61\x37\ \x20\x63\x20\x23\x37\x33\x37\x62\x32\x39\x22\x2c\x0a\x22\x23\x67\ \x20\x63\x20\x23\x37\x33\x37\x62\x37\x33\x22\x2c\x0a\x22\x61\x39\ \x20\x63\x20\x23\x37\x62\x37\x33\x31\x38\x22\x2c\x0a\x22\x23\x41\ \x20\x63\x20\x23\x37\x62\x37\x33\x37\x33\x22\x2c\x0a\x22\x61\x38\ \x20\x63\x20\x23\x37\x62\x37\x62\x32\x31\x22\x2c\x0a\x22\x61\x56\ \x20\x63\x20\x23\x37\x62\x37\x62\x32\x39\x22\x2c\x0a\x22\x61\x51\ \x20\x63\x20\x23\x37\x62\x37\x62\x35\x61\x22\x2c\x0a\x22\x2e\x4a\ \x20\x63\x20\x23\x37\x62\x37\x62\x37\x33\x22\x2c\x0a\x22\x2e\x31\ \x20\x63\x20\x23\x37\x62\x37\x62\x37\x62\x22\x2c\x0a\x22\x62\x23\ \x20\x63\x20\x23\x37\x62\x38\x34\x33\x31\x22\x2c\x0a\x22\x61\x33\ \x20\x63\x20\x23\x37\x62\x38\x34\x34\x61\x22\x2c\x0a\x22\x2e\x38\ \x20\x63\x20\x23\x37\x62\x38\x34\x37\x62\x22\x2c\x0a\x22\x61\x79\ \x20\x63\x20\x23\x38\x34\x37\x33\x30\x38\x22\x2c\x0a\x22\x23\x35\ \x20\x63\x20\x23\x38\x34\x37\x33\x31\x30\x22\x2c\x0a\x22\x61\x54\ \x20\x63\x20\x23\x38\x34\x37\x62\x32\x31\x22\x2c\x0a\x22\x62\x2e\ \x20\x63\x20\x23\x38\x34\x37\x62\x32\x39\x22\x2c\x0a\x22\x2e\x53\ \x20\x63\x20\x23\x38\x34\x37\x62\x37\x33\x22\x2c\x0a\x22\x2e\x64\ \x20\x63\x20\x23\x38\x34\x37\x62\x37\x62\x22\x2c\x0a\x22\x61\x57\ \x20\x63\x20\x23\x38\x34\x38\x34\x32\x31\x22\x2c\x0a\x22\x61\x31\ \x20\x63\x20\x23\x38\x34\x38\x34\x32\x39\x22\x2c\x0a\x22\x61\x30\ \x20\x63\x20\x23\x38\x34\x38\x34\x33\x31\x22\x2c\x0a\x22\x62\x71\ \x20\x63\x20\x23\x38\x34\x38\x34\x34\x61\x22\x2c\x0a\x22\x2e\x48\ \x20\x63\x20\x23\x38\x34\x38\x34\x38\x34\x22\x2c\x0a\x22\x61\x65\ \x20\x63\x20\x23\x38\x63\x37\x62\x30\x38\x22\x2c\x0a\x22\x61\x6b\ \x20\x63\x20\x23\x38\x63\x37\x62\x31\x30\x22\x2c\x0a\x22\x23\x6a\ \x20\x63\x20\x23\x38\x63\x38\x34\x38\x34\x22\x2c\x0a\x22\x62\x61\ \x20\x63\x20\x23\x38\x63\x38\x63\x36\x33\x22\x2c\x0a\x22\x61\x32\ \x20\x63\x20\x23\x38\x63\x38\x63\x37\x62\x22\x2c\x0a\x22\x2e\x78\ \x20\x63\x20\x23\x38\x63\x38\x63\x38\x34\x22\x2c\x0a\x22\x2e\x32\ \x20\x63\x20\x23\x38\x63\x39\x34\x38\x63\x22\x2c\x0a\x22\x2e\x39\ \x20\x63\x20\x23\x38\x63\x61\x64\x61\x35\x22\x2c\x0a\x22\x61\x43\ \x20\x63\x20\x23\x39\x34\x37\x62\x30\x38\x22\x2c\x0a\x22\x2e\x59\ \x20\x63\x20\x23\x39\x34\x37\x62\x37\x33\x22\x2c\x0a\x22\x61\x4b\ \x20\x63\x20\x23\x39\x34\x38\x63\x31\x30\x22\x2c\x0a\x22\x23\x51\ \x20\x63\x20\x23\x39\x34\x38\x63\x31\x38\x22\x2c\x0a\x22\x61\x36\ \x20\x63\x20\x23\x39\x34\x38\x63\x32\x39\x22\x2c\x0a\x22\x23\x6d\ \x20\x63\x20\x23\x39\x34\x38\x63\x38\x34\x22\x2c\x0a\x22\x62\x70\ \x20\x63\x20\x23\x39\x34\x39\x34\x34\x32\x22\x2c\x0a\x22\x61\x48\ \x20\x63\x20\x23\x39\x34\x39\x34\x38\x34\x22\x2c\x0a\x22\x2e\x44\ \x20\x63\x20\x23\x39\x34\x39\x34\x38\x63\x22\x2c\x0a\x22\x2e\x6e\ \x20\x63\x20\x23\x39\x34\x39\x34\x39\x34\x22\x2c\x0a\x22\x62\x6e\ \x20\x63\x20\x23\x39\x34\x39\x63\x34\x61\x22\x2c\x0a\x22\x62\x6c\ \x20\x63\x20\x23\x39\x34\x39\x63\x35\x61\x22\x2c\x0a\x22\x62\x6a\ \x20\x63\x20\x23\x39\x34\x39\x63\x36\x33\x22\x2c\x0a\x22\x2e\x75\ \x20\x63\x20\x23\x39\x34\x39\x63\x39\x34\x22\x2c\x0a\x22\x2e\x76\ \x20\x63\x20\x23\x39\x34\x61\x35\x39\x63\x22\x2c\x0a\x22\x61\x49\ \x20\x63\x20\x23\x39\x63\x38\x63\x31\x30\x22\x2c\x0a\x22\x23\x34\ \x20\x63\x20\x23\x39\x63\x38\x63\x31\x38\x22\x2c\x0a\x22\x23\x4f\ \x20\x63\x20\x23\x39\x63\x38\x63\x32\x39\x22\x2c\x0a\x22\x61\x4d\ \x20\x63\x20\x23\x39\x63\x39\x34\x31\x38\x22\x2c\x0a\x22\x23\x72\ \x20\x63\x20\x23\x39\x63\x39\x34\x38\x63\x22\x2c\x0a\x22\x62\x6f\ \x20\x63\x20\x23\x39\x63\x39\x63\x34\x61\x22\x2c\x0a\x22\x62\x6d\ \x20\x63\x20\x23\x39\x63\x39\x63\x35\x32\x22\x2c\x0a\x22\x62\x6b\ \x20\x63\x20\x23\x39\x63\x39\x63\x35\x61\x22\x2c\x0a\x22\x62\x68\ \x20\x63\x20\x23\x39\x63\x39\x63\x36\x62\x22\x2c\x0a\x22\x2e\x6b\ \x20\x63\x20\x23\x39\x63\x39\x63\x39\x34\x22\x2c\x0a\x22\x2e\x61\ \x20\x63\x20\x23\x39\x63\x39\x63\x39\x63\x22\x2c\x0a\x22\x62\x69\ \x20\x63\x20\x23\x39\x63\x61\x35\x36\x62\x22\x2c\x0a\x22\x62\x66\ \x20\x63\x20\x23\x39\x63\x61\x35\x37\x33\x22\x2c\x0a\x22\x2e\x68\ \x20\x63\x20\x23\x39\x63\x61\x35\x39\x63\x22\x2c\x0a\x22\x23\x66\ \x20\x63\x20\x23\x39\x63\x61\x35\x61\x35\x22\x2c\x0a\x22\x2e\x42\ \x20\x63\x20\x23\x39\x63\x62\x64\x62\x35\x22\x2c\x0a\x22\x23\x50\ \x20\x63\x20\x23\x61\x35\x39\x34\x30\x30\x22\x2c\x0a\x22\x61\x42\ \x20\x63\x20\x23\x61\x35\x39\x34\x31\x38\x22\x2c\x0a\x22\x23\x6b\ \x20\x63\x20\x23\x61\x35\x39\x34\x38\x63\x22\x2c\x0a\x22\x61\x72\ \x20\x63\x20\x23\x61\x35\x39\x63\x32\x39\x22\x2c\x0a\x22\x2e\x4e\ \x20\x63\x20\x23\x61\x35\x39\x63\x38\x63\x22\x2c\x0a\x22\x2e\x50\ \x20\x63\x20\x23\x61\x35\x39\x63\x39\x34\x22\x2c\x0a\x22\x2e\x57\ \x20\x63\x20\x23\x61\x35\x39\x63\x39\x63\x22\x2c\x0a\x22\x62\x67\ \x20\x63\x20\x23\x61\x35\x61\x35\x37\x33\x22\x2c\x0a\x22\x62\x64\ \x20\x63\x20\x23\x61\x35\x61\x35\x38\x34\x22\x2c\x0a\x22\x2e\x71\ \x20\x63\x20\x23\x61\x35\x61\x35\x39\x63\x22\x2c\x0a\x22\x2e\x63\ \x20\x63\x20\x23\x61\x35\x61\x35\x61\x35\x22\x2c\x0a\x22\x62\x65\ \x20\x63\x20\x23\x61\x35\x61\x64\x37\x62\x22\x2c\x0a\x22\x2e\x6f\ \x20\x63\x20\x23\x61\x35\x61\x64\x61\x35\x22\x2c\x0a\x22\x2e\x43\ \x20\x63\x20\x23\x61\x35\x61\x64\x61\x64\x22\x2c\x0a\x22\x2e\x49\ \x20\x63\x20\x23\x61\x35\x62\x35\x61\x64\x22\x2c\x0a\x22\x23\x64\ \x20\x63\x20\x23\x61\x35\x62\x64\x62\x35\x22\x2c\x0a\x22\x2e\x77\ \x20\x63\x20\x23\x61\x35\x63\x36\x62\x64\x22\x2c\x0a\x22\x61\x64\ \x20\x63\x20\x23\x61\x64\x39\x63\x31\x30\x22\x2c\x0a\x22\x61\x6a\ \x20\x63\x20\x23\x61\x64\x39\x63\x31\x38\x22\x2c\x0a\x22\x23\x77\ \x20\x63\x20\x23\x61\x64\x39\x63\x39\x34\x22\x2c\x0a\x22\x2e\x66\ \x20\x63\x20\x23\x61\x64\x61\x35\x39\x63\x22\x2c\x0a\x22\x62\x63\ \x20\x63\x20\x23\x61\x64\x61\x64\x37\x62\x22\x2c\x0a\x22\x62\x62\ \x20\x63\x20\x23\x61\x64\x61\x64\x38\x34\x22\x2c\x0a\x22\x2e\x23\ \x20\x63\x20\x23\x61\x64\x61\x64\x61\x35\x22\x2c\x0a\x22\x2e\x74\ \x20\x63\x20\x23\x61\x64\x61\x64\x61\x64\x22\x2c\x0a\x22\x2e\x34\ \x20\x63\x20\x23\x61\x64\x62\x35\x61\x64\x22\x2c\x0a\x22\x61\x69\ \x20\x63\x20\x23\x62\x35\x61\x35\x31\x38\x22\x2c\x0a\x22\x61\x71\ \x20\x63\x20\x23\x62\x35\x61\x35\x32\x39\x22\x2c\x0a\x22\x61\x44\ \x20\x63\x20\x23\x62\x35\x61\x35\x34\x32\x22\x2c\x0a\x22\x61\x6f\ \x20\x63\x20\x23\x62\x35\x61\x35\x34\x61\x22\x2c\x0a\x22\x2e\x4f\ \x20\x63\x20\x23\x62\x35\x61\x35\x39\x34\x22\x2c\x0a\x22\x23\x76\ \x20\x63\x20\x23\x62\x35\x61\x35\x39\x63\x22\x2c\x0a\x22\x61\x74\ \x20\x63\x20\x23\x62\x35\x61\x64\x35\x32\x22\x2c\x0a\x22\x23\x7a\ \x20\x63\x20\x23\x62\x35\x61\x64\x39\x63\x22\x2c\x0a\x22\x2e\x35\ \x20\x63\x20\x23\x62\x35\x61\x64\x61\x35\x22\x2c\x0a\x22\x2e\x6a\ \x20\x63\x20\x23\x62\x35\x62\x35\x61\x64\x22\x2c\x0a\x22\x2e\x65\ \x20\x63\x20\x23\x62\x35\x62\x35\x62\x35\x22\x2c\x0a\x22\x2e\x33\ \x20\x63\x20\x23\x62\x35\x62\x64\x62\x35\x22\x2c\x0a\x22\x2e\x51\ \x20\x63\x20\x23\x62\x35\x62\x64\x62\x64\x22\x2c\x0a\x22\x23\x65\ \x20\x63\x20\x23\x62\x35\x63\x65\x63\x36\x22\x2c\x0a\x22\x23\x38\ \x20\x63\x20\x23\x62\x64\x61\x35\x33\x39\x22\x2c\x0a\x22\x23\x78\ \x20\x63\x20\x23\x62\x64\x61\x35\x39\x63\x22\x2c\x0a\x22\x23\x33\ \x20\x63\x20\x23\x62\x64\x61\x64\x32\x39\x22\x2c\x0a\x22\x23\x58\ \x20\x63\x20\x23\x62\x64\x61\x64\x33\x31\x22\x2c\x0a\x22\x61\x67\ \x20\x63\x20\x23\x62\x64\x61\x64\x34\x32\x22\x2c\x0a\x22\x23\x6e\ \x20\x63\x20\x23\x62\x64\x62\x35\x61\x64\x22\x2c\x0a\x22\x2e\x62\ \x20\x63\x20\x23\x62\x64\x62\x64\x62\x64\x22\x2c\x0a\x22\x2e\x58\ \x20\x63\x20\x23\x62\x64\x63\x65\x63\x36\x22\x2c\x0a\x22\x61\x55\ \x20\x63\x20\x23\x63\x36\x62\x35\x31\x30\x22\x2c\x0a\x22\x23\x2e\ \x20\x63\x20\x23\x63\x36\x63\x36\x62\x64\x22\x2c\x0a\x22\x2e\x70\ \x20\x63\x20\x23\x63\x36\x63\x65\x63\x65\x22\x2c\x0a\x22\x2e\x67\ \x20\x63\x20\x23\x63\x36\x64\x65\x64\x36\x22\x2c\x0a\x22\x61\x63\ \x20\x63\x20\x23\x63\x65\x62\x64\x33\x31\x22\x2c\x0a\x22\x23\x6c\ \x20\x63\x20\x23\x63\x65\x64\x36\x63\x65\x22\x2c\x0a\x22\x23\x73\ \x20\x63\x20\x23\x63\x65\x64\x36\x64\x36\x22\x2c\x0a\x22\x23\x74\ \x20\x63\x20\x23\x63\x65\x64\x65\x64\x65\x22\x2c\x0a\x22\x23\x39\ \x20\x63\x20\x23\x64\x36\x63\x36\x31\x30\x22\x2c\x0a\x22\x23\x32\ \x20\x63\x20\x23\x64\x36\x63\x36\x33\x31\x22\x2c\x0a\x22\x61\x70\ \x20\x63\x20\x23\x64\x65\x63\x36\x30\x38\x22\x2c\x0a\x22\x61\x68\ \x20\x63\x20\x23\x64\x65\x63\x65\x31\x30\x22\x2c\x0a\x22\x61\x62\ \x20\x63\x20\x23\x64\x65\x63\x65\x33\x31\x22\x2c\x0a\x22\x2e\x6c\ \x20\x63\x20\x23\x64\x65\x65\x66\x65\x37\x22\x2c\x0a\x22\x2e\x52\ \x20\x63\x20\x23\x64\x65\x65\x66\x65\x66\x22\x2c\x0a\x22\x61\x75\ \x20\x63\x20\x23\x65\x37\x63\x65\x30\x38\x22\x2c\x0a\x22\x61\x2e\ \x20\x63\x20\x23\x65\x37\x64\x36\x32\x31\x22\x2c\x0a\x22\x61\x23\ \x20\x63\x20\x23\x65\x37\x64\x36\x33\x31\x22\x2c\x0a\x22\x61\x61\ \x20\x63\x20\x23\x65\x37\x64\x36\x33\x39\x22\x2c\x0a\x22\x23\x31\ \x20\x63\x20\x23\x65\x37\x64\x65\x33\x39\x22\x2c\x0a\x22\x23\x59\ \x20\x63\x20\x23\x65\x66\x64\x65\x31\x30\x22\x2c\x0a\x22\x61\x76\ \x20\x63\x20\x23\x65\x66\x64\x65\x32\x31\x22\x2c\x0a\x22\x61\x41\ \x20\x63\x20\x23\x65\x66\x64\x65\x32\x39\x22\x2c\x0a\x22\x23\x5a\ \x20\x63\x20\x23\x66\x37\x65\x37\x32\x39\x22\x2c\x0a\x22\x23\x30\ \x20\x63\x20\x23\x66\x37\x65\x37\x33\x39\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x23\x2e\x61\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\ \x2e\x63\x2e\x64\x2e\x65\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x66\x2e\x67\x2e\x68\x2e\x69\x2e\x62\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x2e\x6a\x2e\x6b\x2e\x6c\x2e\x65\x2e\x6d\x2e\x6e\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x62\x2e\x61\x2e\x6f\x2e\x70\x2e\x71\ \x2e\x72\x2e\x73\x2e\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x75\x2e\x76\x2e\x77\ \x2e\x6b\x2e\x78\x2e\x79\x2e\x7a\x2e\x41\x2e\x62\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x74\x2e\x6b\ \x2e\x42\x2e\x43\x2e\x6b\x2e\x44\x2e\x45\x2e\x46\x2e\x47\x2e\x48\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\ \x2e\x23\x2e\x23\x2e\x6f\x2e\x49\x2e\x62\x2e\x63\x2e\x4a\x2e\x4b\ \x2e\x4c\x2e\x4d\x2e\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x61\x2e\x4e\x2e\x4f\x2e\x50\x2e\x51\x2e\x52\x2e\x6f\ \x2e\x53\x2e\x54\x2e\x55\x2e\x56\x2e\x73\x2e\x62\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x2e\x74\x2e\x4e\x2e\x50\x2e\x57\x2e\x6b\x2e\x58\ \x2e\x52\x2e\x50\x2e\x59\x2e\x69\x2e\x41\x2e\x5a\x2e\x30\x2e\x31\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x62\x2e\x78\x2e\x32\x2e\x77\x2e\x33\ \x2e\x34\x2e\x49\x2e\x6a\x2e\x23\x2e\x35\x2e\x36\x2e\x4c\x2e\x46\ \x2e\x37\x2e\x30\x2e\x63\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x6e\x2e\x38\x2e\x39\ \x2e\x70\x23\x2e\x2e\x6f\x2e\x34\x2e\x78\x2e\x78\x2e\x78\x23\x23\ \x2e\x73\x23\x61\x23\x62\x2e\x73\x23\x63\x2e\x62\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x74\x2e\x44\ \x2e\x23\x23\x64\x23\x65\x2e\x68\x23\x66\x2e\x6f\x2e\x50\x2e\x32\ \x2e\x32\x23\x67\x23\x23\x23\x68\x2e\x41\x2e\x7a\x23\x69\x2e\x4b\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\ \x23\x6a\x2e\x50\x2e\x66\x2e\x50\x23\x6b\x2e\x71\x2e\x34\x2e\x58\ \x23\x6c\x23\x6d\x23\x6e\x2e\x6e\x23\x6f\x2e\x4a\x2e\x36\x23\x70\ \x23\x69\x23\x71\x2e\x63\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x57\x23\x6d\x23\x6b\x2e\x4f\x23\x6d\x23\x72\x2e\x35\ \x2e\x6b\x23\x73\x23\x74\x23\x6d\x2e\x71\x23\x72\x2e\x55\x2e\x45\ \x2e\x54\x23\x70\x23\x75\x23\x69\x2e\x4d\x2e\x65\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x2e\x62\x2e\x78\x23\x72\x2e\x6f\x2e\x74\x23\x76\ \x2e\x66\x2e\x6f\x2e\x34\x2e\x6c\x23\x6c\x23\x77\x23\x78\x2e\x66\ \x2e\x69\x23\x6f\x2e\x45\x23\x23\x23\x61\x2e\x6d\x23\x79\x2e\x6e\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\x2e\x65\x2e\x63\x23\x64\ \x2e\x6f\x23\x7a\x2e\x75\x2e\x71\x23\x66\x2e\x49\x2e\x71\x2e\x23\ \x2e\x23\x2e\x32\x23\x41\x2e\x55\x2e\x6d\x23\x42\x23\x68\x2e\x68\ \x2e\x6a\x2e\x62\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x62\x23\x43\x23\x44\x23\x45\x23\x46\x23\x47\x23\x47\ \x23\x47\x23\x48\x23\x49\x23\x4a\x23\x4b\x23\x4c\x23\x4d\x23\x4e\ \x2e\x69\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x62\x23\x4f\x23\x50\x23\x51\x23\x52\ \x23\x53\x23\x54\x23\x55\x23\x4c\x23\x4d\x23\x56\x23\x57\x23\x4e\ \x23\x56\x23\x56\x2e\x69\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\x23\x58\x23\x59\ \x23\x5a\x23\x30\x23\x30\x23\x31\x23\x32\x23\x33\x23\x34\x23\x35\ \x23\x36\x23\x37\x23\x4d\x23\x56\x23\x41\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\ \x23\x38\x23\x39\x61\x2e\x61\x23\x61\x61\x61\x61\x61\x62\x61\x63\ \x23\x33\x61\x64\x61\x65\x61\x66\x23\x37\x23\x4d\x2e\x4a\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x62\x61\x67\x61\x68\x61\x2e\x61\x23\x23\x31\x61\x61\ \x61\x61\x23\x32\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\x61\x6e\ \x23\x41\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x61\x6f\x61\x70\x61\x2e\x61\x23\ \x61\x61\x61\x71\x61\x72\x61\x71\x23\x33\x61\x6a\x23\x35\x61\x66\ \x61\x6d\x61\x73\x2e\x4a\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x61\x74\x61\x75\ \x61\x76\x61\x23\x61\x77\x23\x56\x23\x57\x23\x4d\x61\x78\x23\x34\ \x61\x79\x61\x66\x61\x7a\x61\x6e\x2e\x4a\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x61\x74\x61\x68\x61\x41\x61\x42\x23\x57\x23\x4e\x23\x4d\x23\x56\ \x23\x56\x23\x52\x61\x43\x61\x6c\x61\x7a\x61\x73\x2e\x4a\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x62\x61\x44\x61\x70\x23\x5a\x23\x51\x23\x4e\x23\x4d\ \x23\x56\x23\x4d\x23\x4e\x23\x36\x61\x6b\x61\x66\x61\x45\x61\x46\ \x61\x47\x2e\x45\x23\x68\x2e\x4a\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x61\x48\x61\x49\x61\x68\x61\x41\x61\x42\ \x23\x57\x23\x57\x23\x4e\x23\x57\x61\x4a\x23\x36\x61\x4b\x61\x6c\ \x61\x6d\x61\x46\x23\x57\x61\x4a\x61\x4a\x23\x79\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x2e\x71\x61\x4c\x61\x49\x61\x68\ \x61\x76\x61\x4d\x23\x57\x61\x4a\x23\x57\x23\x44\x61\x4e\x23\x52\ \x61\x65\x61\x6c\x61\x4f\x61\x6e\x23\x4e\x61\x4e\x61\x50\x61\x51\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x6a\x61\x52\x61\x53\ \x61\x54\x61\x55\x61\x76\x61\x42\x23\x57\x61\x4e\x61\x50\x61\x4c\ \x61\x56\x61\x57\x61\x65\x61\x58\x23\x36\x61\x59\x61\x5a\x61\x30\ \x61\x31\x61\x32\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\x61\x33\ \x61\x34\x61\x35\x61\x35\x61\x56\x61\x36\x61\x31\x61\x5a\x61\x37\ \x61\x53\x61\x53\x61\x35\x61\x38\x61\x39\x61\x34\x61\x35\x62\x2e\ \x62\x23\x61\x35\x61\x35\x2e\x6b\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x62\x61\x61\x37\x61\x37\x61\x56\x61\x30\x62\x2e\x62\x23\x61\x37\ \x62\x23\x61\x30\x61\x37\x61\x37\x61\x37\x61\x53\x61\x53\x61\x37\ \x62\x2e\x61\x56\x61\x30\x61\x56\x61\x52\x2e\x23\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x62\x62\x62\x63\x62\x64\x62\x65\x62\x65\x62\x66\ \x62\x67\x62\x68\x62\x68\x62\x69\x62\x6a\x62\x6a\x62\x6b\x62\x6b\ \x62\x6c\x62\x6d\x62\x6d\x62\x6e\x62\x6f\x62\x70\x62\x71\x2e\x62\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x7d\x3b\x0a\ \x00\x00\x05\x19\ \x00\ \x00\x11\x8f\x78\x9c\xe5\x96\x5b\x4f\x23\x47\x10\x85\xdf\xf9\x15\ \xd6\xd6\xdb\x2a\xaa\xc5\xe3\xb9\x2a\xca\x03\x77\x03\xcb\xc5\x5c\ \x8c\x21\xca\x43\xcf\x8c\x6f\x80\xcd\xc5\x06\x83\xa3\xfc\xf7\x54\ \xf7\xa9\xee\x45\xbb\xfb\xb0\x6c\xa4\x48\x51\x54\x80\xf8\x5c\x5d\ \xa7\x4e\xd7\xf4\x8c\xe7\xd3\xc7\x46\xef\xf8\xa0\xf1\xf1\xd3\xca\ \x6c\x6e\xe6\xe3\xaa\x51\x8d\xcc\x63\xe3\xe3\x78\x62\x86\xfd\xe8\ \xf7\x3f\x7e\xfb\x73\xe5\x43\x2b\x6a\xc8\x4f\x33\x8e\x1a\xd1\x87\ \x5f\x56\x3e\x74\xe6\x8d\xaa\x71\x78\x37\xed\x5b\xa0\x4b\x01\x5a\ \x5d\x6d\xe6\xfd\xcc\xb2\x31\x81\x07\x2e\xbf\xe5\x79\x00\xee\x80\ \xa3\xa6\xe6\xf7\x3d\x23\x6f\x48\xb9\x50\x66\xc7\xb9\x67\x3a\x06\ \xb7\x74\x3d\xc5\x96\x9b\x52\x5f\xa7\x8e\x4f\x02\xc3\xdf\x67\xe5\ \x42\xf3\x5d\xcf\xf0\x4b\x53\x70\xab\x18\x80\x2f\x02\x43\xff\x08\ \x1c\x47\xea\x67\xe4\x58\xfa\x57\xd0\x7f\x05\x87\xfc\xb5\xe5\xa8\ \x29\x79\xf4\x3b\x0d\x8c\xf5\x4b\xe5\x02\xfe\x78\x15\x1c\x47\x60\ \x33\xf6\x0c\x7f\x3c\x57\x36\x3a\xaf\x4d\xcf\xe8\xc7\x2f\xe0\xc4\ \xf7\xbf\x75\x5c\x78\x7d\xaa\xc1\x52\x8f\xfd\xed\x82\xfd\x7a\xda\ \x53\x56\x3d\x3a\xb3\xdc\x92\xfe\x65\xed\xf8\x10\x1c\xf2\x33\x70\ \xda\x52\xde\x76\x2c\xfa\xba\xdf\x1d\x70\x12\x61\xde\x66\xa8\xac\ \xfd\x79\x1d\x2c\xf5\x38\x2f\xfd\xc0\xd8\x8f\xae\x4f\x4b\xd5\x3f\ \xb7\x1c\x47\xb1\x29\x13\xc7\x11\x38\x89\xc0\xbc\xa7\x6c\x74\xbe\ \x6b\xe0\xb4\xa5\xf3\x2d\x95\x4b\xdd\xff\x7d\x60\xe8\xbf\x78\xd6\ \xfe\x53\x70\xe6\xfd\xdc\x39\x36\x69\x4b\xf5\xe7\xca\xaa\xc7\x1d\ \x70\xa6\xfd\xa8\xe5\x59\xfd\x6f\x28\xfb\xfd\x5c\x59\x4e\xc4\x2f\ \xe6\xcb\x4d\x70\x5a\x2a\x5f\x78\xc6\x3c\xf9\x24\x30\xf6\x73\x0c\ \xce\xfc\x7e\x16\xe0\x3c\x56\xfd\x89\x72\xa5\xe7\xa1\x72\x2c\xfe\ \xa1\x6f\x6e\x94\x7d\xbf\x23\xb0\xf8\x83\x5e\x1b\x1c\xf4\x0a\x65\ \xaf\x37\xb0\x9c\xb6\xa4\x1e\xf3\x1f\x05\x86\x7e\x09\xce\x63\x9d\ \xef\xb3\xb2\xd6\xf3\x02\x5c\xa8\x3e\xcf\x94\x35\x4f\x07\x8e\xcb\ \xac\xa5\xfa\x1b\x81\x71\x1e\x9f\xc0\x7e\x3d\xbb\xfd\x65\xad\xcc\ \xfb\x39\x05\xe7\xb1\xce\xeb\x50\xb9\xd2\xeb\x65\xc0\x45\xac\xe7\ \x23\xf7\xac\x7e\x3d\x57\x3a\x8f\xf5\xc0\xe8\xb7\x06\x36\x89\xfa\ \x75\xf7\x6f\x56\xe6\xb1\xf6\x3f\x53\xae\x74\xbe\x05\xb8\x88\xf5\ \xfe\x60\xcf\xb8\x3f\x38\x03\x7b\x3d\xee\x29\xd7\xca\xbb\xe0\xd2\ \xf7\x4b\x2c\xe7\x71\x5e\x19\xf4\x7b\x0d\x8c\x7e\x07\xe0\x42\xfd\ \x10\x29\x57\xfa\xfc\xab\xc0\x41\x7f\x07\xec\xf5\xf9\x4a\x59\xf3\ \xe4\xce\x7f\x5e\x79\x7d\x32\x60\x93\xe8\x7c\x2f\xc1\xa1\xbe\xad\ \xec\xeb\xdd\xf9\x2e\xc4\x8f\xfa\x3d\x0f\x0c\xbd\x4c\xd9\xeb\x97\ \x60\x53\xeb\xf5\x5a\x82\xab\x54\xf5\x9f\x95\xfb\xca\xee\x79\x5b\ \x54\xbe\x9e\x9f\xc0\x26\x51\xbd\x47\x70\xa8\x9f\x28\xfb\x7a\xf7\ \x7c\x94\xd5\x09\xfc\x51\x1a\x18\x7a\x5d\xcf\x7a\x7d\xf7\x95\x6b\ \xe5\x08\x1c\xf4\x1e\xc1\xb5\xef\xe7\xbe\x7f\x4c\x6d\xc3\xf1\xd8\ \xb3\xd6\xdf\x07\x46\xfe\x01\x5c\xab\x1e\xf5\xc1\xfd\x4c\xd9\x9d\ \x8f\x32\x29\xbd\x9f\xcd\xc0\xa8\xdf\xf2\xac\xcf\x8f\x6d\xe5\x5a\ \x79\x00\x0e\xfa\x0f\x60\x41\xf8\x75\xe7\xa5\xac\x4b\xf5\x63\x6a\ \xcf\x5a\x9f\x82\x43\xfd\x18\x1c\xfc\x8d\x94\x55\x8f\xdc\xf3\x5c\ \xa6\xef\xf3\xee\xfb\xa9\xea\x87\xf5\xd7\xe0\x90\x1f\x28\x7b\x3f\ \xee\x79\x55\xa7\x41\x4f\xd9\xaf\xe7\x5b\x65\xbf\xde\xcd\xab\xee\ \x87\xfd\xb8\xfb\xc5\x76\x53\x76\xef\x0b\x4e\x1e\xec\x9e\xd7\x83\ \x90\xef\xcc\xff\x59\xfc\xff\x34\x98\xd8\x70\xc9\x15\xd3\x3f\xd0\ \xa8\xb9\xcf\x03\x1e\xf2\x88\xc7\x3f\xad\x71\xcd\x37\x7c\xcb\x13\ \x9e\xf2\x1d\xdf\xff\xb4\x8f\x01\x3f\xf0\xa3\xa8\xcc\x78\xce\xd5\ \x4f\x69\x3c\x89\xc2\xb3\x28\x58\x95\x05\xbf\xf0\xeb\xdb\xc9\xfc\ \xb0\xc6\x52\x63\x22\xb1\xc6\xeb\xbc\xc1\x9b\x5f\x6b\xc8\xe4\xb7\ \x78\x5b\xfe\x7e\x77\xf2\x32\x8f\x1d\x6e\x8b\x42\x5b\x55\x76\x65\ \x32\x7b\xbc\xff\x45\x83\x3f\xf3\x01\x1f\xf2\x11\x1f\x73\x87\x4f\ \xf8\x94\xcf\xf8\x5c\x14\x83\x1e\x77\xf9\x82\x7b\x52\x7f\x29\xbf\ \x6d\xf5\x73\x25\x57\x69\x95\xbb\x41\xa3\xc9\x11\xb7\x38\xe6\x44\ \xa6\x9f\xca\xff\x97\x9c\x71\x2e\x27\xa2\x10\x19\x22\x43\xa5\x7c\ \xb2\xa3\x71\xe9\x7e\x45\x89\x2a\x9e\x52\x2d\xbb\x24\xbc\xa3\x51\ \x9f\x06\x34\xa4\x11\x8d\x79\x20\x7f\x87\x12\xd7\x74\x63\x43\xce\ \x45\xcc\x31\xdd\x4a\x45\x2f\xe8\x20\xc4\x13\x4d\x68\x4a\x77\x78\ \xaf\xe3\x09\xe1\xca\xd9\x58\x92\xfd\x6f\xe9\xae\xc2\x83\x8b\x89\ \xac\xb7\x55\x3d\x51\x42\x7d\x4f\x23\xa3\x19\xef\xe1\xdd\x4e\xae\ \xdb\x83\xab\x6b\x87\xb8\x7a\xe3\x7f\x27\x28\xec\x3a\x3f\x36\xd6\ \x78\x8d\x9e\xe8\xc9\xee\x47\x35\xda\xd2\x73\x69\xab\xc2\x9a\x2c\ \xf4\xfa\x36\x32\x57\xff\x4c\x0b\x7a\xa1\x57\x5a\xe2\x1d\x56\xae\ \x95\xf5\xfb\xa5\xc3\xba\xfd\xb5\x7d\x5c\xac\x3b\x0f\xbd\xb7\x0e\ \x78\x41\x1b\x3c\xa4\x4d\xda\xa2\x6d\xbc\x87\xcb\x09\xde\x91\xdc\ \x42\xb4\xdb\x64\xb3\x53\xe9\x30\xa3\x5d\xe9\x62\x63\x8f\xda\xc1\ \x59\xa6\x0a\x0b\xf9\xf4\x95\xf6\xe9\x33\x9f\xe3\x5d\x4c\x4e\xef\ \x94\x0e\x45\xf5\x88\x8e\xe5\xf3\x7d\xea\x48\x9c\xd0\x29\x9d\xd1\ \xb9\x44\x97\x2e\xa4\x83\x3a\xb4\x0a\xb2\x7a\x53\x56\x6e\x89\x42\ \x17\xe7\x83\x7a\x3c\x92\x75\x1d\xba\x74\x75\xe7\x74\x45\xab\xd4\ \xe4\x7b\x7b\xca\x5c\x74\x29\x12\xa7\x99\x4e\x71\x41\x2d\x55\x88\ \x29\x79\x7b\xd6\x29\xa5\x26\x65\xbc\xf9\xfd\xd3\x2e\xd9\x1c\x0e\ \xa8\x90\x3d\xbe\x1a\xb6\x73\x90\xf3\x4b\xef\xb8\xe7\x88\x73\xa9\ \xb6\xb3\x9a\xd1\x85\x21\x63\x28\xa2\xde\x3b\xef\x5b\x32\xa5\x9d\ \xb5\xcc\xec\x42\xa6\xb5\x65\xaa\xf7\xdf\xfb\xa6\xe6\x63\xd3\x97\ \x2b\x21\x1e\xa8\x6b\x06\x5f\x3c\xbc\xcb\xc7\x50\x1c\xc8\x1c\xcd\ \x88\xd2\xaf\xb3\x3f\xac\x31\x76\x7b\xb8\xe6\xeb\x6f\xb3\x3f\xac\ \x71\x63\x6e\xcd\xcd\xf7\x9e\xea\xff\xb5\xef\xb9\x7f\x41\xe3\xaf\ \x5f\x57\xfe\x06\xf5\x23\xb8\x71\ \x00\x00\x00\xa7\ \x00\ \x00\x03\x23\x78\x9c\xd3\xd7\x52\x88\x08\xf0\x55\xd0\xd2\xe7\x2a\ \x2e\x49\x2c\xc9\x4c\x56\x48\xce\x48\x2c\x52\xd0\xca\xcc\x4d\x4c\ \x4f\x35\x8e\x8e\xb5\xad\xe6\x52\x32\x32\x55\x00\x21\x05\x43\x25\ \x1d\x2e\x25\x65\x85\x64\x05\x65\x03\x30\x00\x71\xf5\x40\xdc\x34\ \x30\x00\x73\x71\x01\x2a\x49\x2a\x83\x01\x56\x49\x65\x38\xc0\x94\ \x84\x89\x22\xc9\xc2\x25\x91\x34\xc0\x99\x30\x49\x14\xe3\x60\x4c\ \x84\x24\xaa\x5e\x64\x49\xb0\x04\x42\x16\xca\x82\x4b\xa2\xda\x8b\ \x45\x12\x21\x8b\x4d\x12\x2e\x8b\x55\x52\x0f\xee\x59\x74\x07\x21\ \x64\x51\x1d\xa4\x87\xea\x49\x0c\x7f\x22\xcb\xa2\x49\xe2\x0d\x3e\ \xfc\x01\x8f\x3f\xca\xe0\xd2\x70\x2e\xb5\xd2\x10\x69\x92\xb5\xd6\ \x5c\x00\xe0\x4d\x89\x7e\ \x00\x00\x00\xad\ \x00\ \x00\x04\xda\x78\x9c\xd3\xd7\x52\x88\x08\xf0\x55\xd0\xd2\xe7\x2a\ \x2e\x49\x2c\xc9\x4c\x56\x48\xce\x48\x2c\x52\xd0\xca\xcc\x4d\x4c\ \x4f\x35\x88\x8e\xb5\xad\xe6\x52\x32\x36\x52\x00\x21\x05\x43\x25\ \x1d\x2e\x25\x3d\x85\x64\x05\xbf\xfc\xbc\x54\x10\x3b\x11\xc8\x56\ \x36\x00\x02\x0b\x03\x10\x57\x19\xc4\xb5\x30\xb0\x80\x72\xf5\x08\ \x80\x51\x35\x60\xa0\x9c\x08\x03\x38\xd5\x20\x94\x20\x29\x4a\x44\ \x51\xa3\x8c\x90\x42\x66\x21\xab\x51\x46\xd1\x0d\xe5\x24\xa2\xaa\ \x41\x75\x05\x44\x51\x22\x86\x1a\x54\x77\x22\xbb\x0c\x97\x1a\x3d\ \x2a\xa9\x21\xc2\xae\x44\x6c\x6a\x94\x31\xfc\x85\xa9\x06\x45\x51\ \x22\x0e\x35\x40\x09\x65\x3d\xec\x00\x29\x4e\x71\x2a\x1a\xc4\xe9\ \x70\x78\xa9\xa9\xb5\xe6\x02\x00\x3d\x48\xf5\x6a\ \x00\x00\x05\x1a\ \x00\ \x00\x11\x8f\x78\x9c\xe5\x96\x49\x73\x32\x47\x0c\x86\xef\xfe\x15\ \x94\x75\x73\xa5\xf4\xc1\xcc\x30\xcc\x54\x2a\x07\xef\x60\xbc\x80\ \x8d\xd7\x54\x0e\x3d\x1b\x06\xbc\xb1\x18\x2f\xa9\xfc\xf7\xa8\x5b\ \x52\xdb\xf9\xca\x17\x93\x5b\x52\x32\x86\x07\x49\xaf\xa4\xee\x9e\ \x19\x7e\x6c\xd4\xae\x7a\x47\xb5\x8d\x1f\x6b\xf3\x85\x59\x8c\xf2\ \x5a\x7e\x6b\x66\xb5\x8d\xd1\xbd\x19\x96\x8d\xdf\xff\xf8\xed\xcf\ \xb5\xf5\x30\xa8\xd1\x5f\x23\x0a\x6a\xc1\xfa\x2f\x6b\xeb\xfd\x45\ \x2d\xaf\x1d\x3f\x3e\x94\x16\xe0\x84\x00\xea\xf5\x46\xbd\x6a\x39\ \xee\x31\x07\x8d\xb2\x72\x7c\xaa\x2c\xfe\x33\xcf\xec\x1f\x08\xa7\ \xcc\xe6\x96\x39\x54\xff\xb1\xe3\x84\xfc\x9c\xff\xca\xec\xfd\xdb\ \xc2\x92\x0f\xbb\x96\x1b\xa4\x57\x72\xfc\x8c\xd9\xfb\x1f\x99\xa3\ \x40\xb8\xef\x98\xf4\x0a\x37\x8f\x99\x28\x4b\xbe\xb0\x8f\x6f\x0b\ \x1b\xe9\x77\x6c\x39\x68\x84\x5a\x6f\xce\x1c\x05\xac\x07\xfb\xc2\ \x12\x8f\x29\x73\x53\xf5\x02\xc7\x69\x98\xe6\xb1\xd3\x1b\x2a\x17\ \xcc\xc0\x1c\x05\x39\xeb\x3d\x29\x8b\xfe\x39\xb3\xea\x99\x52\x58\ \xea\xc1\x9b\xe5\x90\xea\x71\x3c\x06\xca\xd2\x6f\x47\x58\xe3\xdf\ \x99\xe3\x50\xb8\xe1\x38\x8d\x4c\x56\x38\x3e\x54\x96\xfa\x5b\xcc\ \x3e\xfe\x45\x38\x13\xbe\xb0\x1c\x05\x54\xdf\xcd\x03\x77\x9e\x39\ \xff\x92\x39\x0e\xe5\xbc\x4c\x85\x25\x1f\x1b\xcc\x2d\xd5\x6f\x3a\ \x36\x4d\x23\x7a\x07\xcc\xde\xdf\x15\x96\x7c\x93\x33\x27\x91\x70\ \x66\xb9\x49\xf5\x78\xbd\x71\xe0\x99\xd7\xe7\x88\xb9\x15\xb2\x3e\ \xe6\xca\xbc\x5e\x78\x2e\x9c\x49\xff\x0b\x65\x39\x9f\x9b\xcc\x5a\ \x0f\xae\x1c\x9b\x38\x34\x6e\xfd\xf0\x82\x39\x89\x64\xde\x3d\x65\ \x89\x5f\x0a\xe7\xd2\x6f\x61\x39\x0e\xe3\x8c\xd7\x1f\x4b\xe6\x56\ \x26\xfd\x5f\x7a\xe6\xfe\x43\x65\xe9\xbf\xcf\x9c\x44\xb2\xff\x4d\ \xe1\x5c\xea\x67\xca\x52\x7f\xcc\x9c\xea\x7a\x55\x8e\xb3\x56\x28\ \xfb\x5f\x57\x96\xfa\x67\xcc\x49\x24\xe7\xf3\x99\x59\xf3\x71\x5b\ \x58\xe7\x19\x59\x6e\x7d\xf4\xfb\xce\x9c\x44\x59\xd3\xf1\x58\x99\ \xf5\x21\x16\xce\x25\x3e\x52\x96\xf9\x32\xe6\x34\x97\xfd\xe9\x30\ \x9b\xa6\xcc\xf3\x20\x5c\x08\xdf\x38\xce\x7c\xbd\x53\xe1\x5c\xd6\ \xf7\x80\x39\x8d\x84\x39\x3f\x33\x4d\xd1\xef\x09\xab\x5e\xce\x9c\ \x69\x3d\x77\x7e\x92\x28\x89\xd2\xdc\x71\xa8\x2c\xfb\x3f\x12\xce\ \xe5\x7a\xbf\x63\xd6\x7a\xc6\x08\x8b\x1f\xdf\x98\xb5\x1e\x9e\x30\ \xfb\x7a\x12\x9f\xa9\xdf\x9d\xc7\x24\x4f\xb5\x9e\x51\x96\x79\x77\ \x84\x75\xde\x7b\x65\x59\xdf\x4d\x66\x9a\x97\xf5\x2a\xe1\x82\xcf\ \x37\xb6\x99\xb5\x1e\x38\xbd\x94\xfa\x37\x4e\x1f\x12\x65\x39\x2f\ \xa9\xb2\xcc\x8b\xc2\x5a\x7f\xc6\x9c\xc7\xa2\x57\x08\x97\xc2\x6e\ \xbf\xd3\xdc\x5e\xf0\x8e\x5b\xca\x32\xcf\x33\x73\xa6\xfd\xc5\xcc\ \xaa\x87\x75\x61\xd1\xc3\x57\xe6\x42\xfd\xee\x7e\x46\xea\xa2\x07\ \xd7\x9e\xb9\x5e\xc9\xec\xfb\x01\x66\x9f\xef\xae\x6f\x53\x98\x42\ \xfa\x99\x30\xfb\x79\x46\xcc\x3e\xde\x3d\x9f\xb2\x66\xa6\xfd\x17\ \x9e\x79\x3d\xba\xc2\x85\xec\xff\x1e\xb3\xef\xff\x98\xd9\xeb\x6d\ \x09\xab\xdf\x3d\x7f\xb2\xc2\x9a\x63\x50\x96\xeb\x09\x99\x7d\xfe\ \x3e\x73\xd9\x92\x7e\xdd\xf3\x37\x8f\x3d\x57\xc2\x95\xc4\xbf\x30\ \x57\xe2\x47\x8e\x2f\xbd\xde\x35\xb3\xe6\xe3\x54\x58\xf3\x6f\x98\ \x7d\xbe\x3b\xff\xc5\x87\x7e\xc2\xec\xfd\xee\x79\x5d\x7c\xe4\xb7\ \x98\xd5\x0f\xf7\xc2\xe2\x07\xf7\xfc\xb4\xd5\x25\xde\xdd\x4f\x9d\ \x9b\xd9\x3d\x3f\xab\x0f\xbf\x8b\xaf\xbc\xbf\xbf\xf8\x77\xf6\x7f\ \xd0\x40\x40\x83\x19\xe6\x68\x56\xd5\xc0\x02\x4b\xac\x70\x88\xb7\ \x38\x5a\x4d\x83\x14\xc6\x38\x21\x85\x21\xde\xe1\xfd\x2a\x1a\x34\ \xc3\x03\x3e\x52\xfe\x13\x4e\x71\xf6\x7d\x0d\x9c\xe3\x02\x9f\x5d\ \x07\x4b\x7c\xc1\x57\x7c\x5b\x41\xe3\x1d\x37\x45\x61\x8b\x14\x66\ \xb8\x8d\x3b\xdf\xd1\xc0\x5d\x9a\x62\x4f\x14\xf6\x29\xbf\x4d\xd6\ \xc1\x83\xaf\xb2\xa8\xdf\x39\x76\xad\x7d\xd6\xc0\x43\x3c\xc2\x63\ \xa7\x30\xa5\x0e\xda\x78\x42\x73\xf4\xc8\xfa\x78\xf8\x8f\x3c\x83\ \xa7\x78\x86\x03\x3c\xc7\x0b\xb2\x3e\x5e\xe2\x15\x6b\xd0\x69\xe8\ \xe3\xb5\x53\xb8\xc1\xba\xcf\xb7\xd6\xc0\x00\x43\x8c\x28\xaf\xa4\ \xd3\xd2\xa4\x1d\x8f\xa9\xd6\x1d\xb6\x30\x71\xb1\x29\x0e\xf8\x9e\ \x85\x97\x80\x6e\x27\x6e\x00\xc0\x90\x86\xcd\xee\x90\xf5\x20\x83\ \x1c\x0a\x28\x71\x0b\x2a\x18\xba\xcc\x04\xa7\x70\x0b\x23\x3b\x2d\ \x8c\x61\x02\x77\xfc\xbb\x88\x62\x86\x70\x8f\xfb\x50\x48\x0f\x9d\ \x4f\xd6\xc6\x98\x94\x81\x6a\xda\x2c\xaa\x00\x39\x76\xe0\x81\x5e\ \x63\x6c\xc0\x23\x3c\xf1\x6f\x23\x7c\x82\x8a\x56\xa1\xfe\x85\xc2\ \xd7\xb6\x6d\x8d\x7a\x9c\xc2\x0c\xe6\xfc\x7b\x90\xaa\xd8\x7d\xb0\ \x15\x7a\x3f\xc5\x72\xfc\xc7\x27\x9b\xfb\x4c\xaf\x31\xd9\x12\x5e\ \xe0\x95\xfb\x80\x37\x78\xa7\xbe\xdc\xfc\x1f\x55\xf4\x13\xc5\x66\ \x14\xbd\xa4\xff\x63\x67\x99\xcb\xb6\xdf\x6d\xc2\x16\x6c\x8b\xc6\ \x0e\xec\xd2\xda\x4c\xe9\xbb\xf1\x4f\x35\x3b\xb0\x07\xfb\xe4\x9b\ \x40\x9b\xde\x3b\xb0\x45\xfb\xd4\x80\x03\xe8\x42\x97\xde\xa7\x54\ \xfb\x15\x0e\x79\x5f\xe0\x08\x8e\x69\xb2\x77\xf2\x65\xae\xd3\x67\ \xed\x84\x2a\x9d\x40\x0f\xfa\x54\xa5\x07\xa7\x70\x06\x03\xca\x9a\ \x91\xb5\x31\x85\x73\xd2\x1d\xc0\x85\x3f\x63\xef\x4e\xa5\x43\xea\ \x4b\xea\xf5\xd9\x76\x44\x4a\x1d\xb8\x84\x2b\xd8\xa1\x2a\xd7\xd4\ \xed\x0d\xd4\xa1\x01\x01\x29\xf6\xc8\x8e\xc9\x06\xa4\x1d\x7a\x8d\ \x39\x44\xd0\xa4\x1a\x6d\xaa\xdc\x75\x3a\x6c\xf1\x17\xa7\xbc\xc0\ \x2b\x68\x41\x02\xa9\x41\xbc\xc2\xf9\xe7\x6b\x0e\x0b\x03\xd4\xed\ \x84\x66\x3a\x90\x35\x5c\x9a\x6f\xdf\xc7\x70\xd7\x64\xd4\xcb\x23\ \xad\x9e\xed\x65\x69\xf2\x55\xee\x63\x38\x37\x05\xcd\x38\x33\x25\ \xad\x7a\x17\x5e\x4c\xf5\x7d\x0d\x77\xfd\x1d\x9a\xa1\xb9\xa5\x99\ \xce\x61\xb2\x9a\x86\x35\x5a\xdf\xbe\xdd\x45\x73\x6b\x56\xbc\x27\ \xb3\x0a\xfd\x16\x1a\x9b\x89\xb9\x5b\x5d\xe3\x3b\xf6\x9f\xd2\xf8\ \xeb\xd7\xb5\xbf\x01\xda\x3f\xb9\x0e\ " qt_resource_name = "\ \x00\x05\ \x00\x6f\xa6\x53\ \x00\x69\ \x00\x63\x00\x6f\x00\x6e\x00\x73\ \x00\x0a\ \x0d\x87\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x36\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x89\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8a\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8b\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8c\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8d\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x30\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8e\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x78\x00\x70\x00\x6d\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\ \x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x2a\x00\x01\x00\x00\x00\x01\x00\x00\x0e\xa3\ \x00\x00\x00\x44\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x54\ \x00\x00\x00\x5e\x00\x01\x00\x00\x00\x01\x00\x00\x25\x37\ \x00\x00\x00\x78\x00\x01\x00\x00\x00\x01\x00\x00\x2a\x54\ \x00\x00\x00\x92\x00\x01\x00\x00\x00\x01\x00\x00\x2a\xff\ \x00\x00\x00\xac\x00\x01\x00\x00\x00\x01\x00\x00\x2b\xb0\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/mainwindow_rc3.py0000644000076500000240000015040212536324426025071 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:07:25 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x0e\x9f\ \x2f\ \x2a\x20\x58\x50\x4d\x20\x2a\x2f\x0a\x73\x74\x61\x74\x69\x63\x20\ \x63\x68\x61\x72\x20\x2a\x69\x6d\x61\x67\x65\x36\x5b\x5d\x3d\x7b\ \x0a\x22\x32\x32\x20\x32\x32\x20\x31\x36\x35\x20\x32\x22\x2c\x0a\ \x22\x51\x74\x20\x63\x20\x4e\x6f\x6e\x65\x22\x2c\x0a\x22\x2e\x68\ \x20\x63\x20\x23\x30\x30\x30\x30\x30\x30\x22\x2c\x0a\x22\x2e\x6f\ \x20\x63\x20\x23\x30\x31\x30\x31\x30\x31\x22\x2c\x0a\x22\x61\x46\ \x20\x63\x20\x23\x30\x33\x30\x33\x30\x33\x22\x2c\x0a\x22\x23\x6e\ \x20\x63\x20\x23\x30\x36\x30\x36\x30\x36\x22\x2c\x0a\x22\x2e\x48\ \x20\x63\x20\x23\x30\x38\x30\x38\x30\x38\x22\x2c\x0a\x22\x2e\x72\ \x20\x63\x20\x23\x30\x63\x30\x63\x30\x63\x22\x2c\x0a\x22\x2e\x71\ \x20\x63\x20\x23\x31\x32\x31\x32\x31\x32\x22\x2c\x0a\x22\x23\x56\ \x20\x63\x20\x23\x31\x32\x34\x65\x37\x66\x22\x2c\x0a\x22\x23\x6d\ \x20\x63\x20\x23\x31\x33\x31\x33\x31\x33\x22\x2c\x0a\x22\x2e\x47\ \x20\x63\x20\x23\x31\x36\x31\x36\x31\x35\x22\x2c\x0a\x22\x61\x49\ \x20\x63\x20\x23\x31\x37\x32\x63\x61\x63\x22\x2c\x0a\x22\x2e\x36\ \x20\x63\x20\x23\x31\x38\x31\x38\x31\x38\x22\x2c\x0a\x22\x61\x48\ \x20\x63\x20\x23\x31\x38\x34\x31\x62\x32\x22\x2c\x0a\x22\x2e\x70\ \x20\x63\x20\x23\x31\x39\x31\x39\x31\x39\x22\x2c\x0a\x22\x23\x38\ \x20\x63\x20\x23\x31\x39\x32\x38\x62\x61\x22\x2c\x0a\x22\x23\x57\ \x20\x63\x20\x23\x31\x39\x32\x39\x62\x61\x22\x2c\x0a\x22\x61\x6a\ \x20\x63\x20\x23\x31\x39\x32\x61\x62\x61\x22\x2c\x0a\x22\x61\x76\ \x20\x63\x20\x23\x31\x61\x33\x31\x63\x32\x22\x2c\x0a\x22\x61\x45\ \x20\x63\x20\x23\x31\x62\x31\x62\x31\x62\x22\x2c\x0a\x22\x61\x44\ \x20\x63\x20\x23\x31\x62\x32\x62\x63\x38\x22\x2c\x0a\x22\x61\x74\ \x20\x63\x20\x23\x31\x63\x37\x39\x64\x32\x22\x2c\x0a\x22\x61\x68\ \x20\x63\x20\x23\x31\x63\x37\x64\x64\x34\x22\x2c\x0a\x22\x61\x41\ \x20\x63\x20\x23\x31\x64\x31\x64\x31\x64\x22\x2c\x0a\x22\x61\x43\ \x20\x63\x20\x23\x31\x64\x37\x61\x64\x37\x22\x2c\x0a\x22\x23\x36\ \x20\x63\x20\x23\x31\x64\x37\x65\x64\x61\x22\x2c\x0a\x22\x2e\x35\ \x20\x63\x20\x23\x31\x65\x31\x65\x31\x65\x22\x2c\x0a\x22\x23\x37\ \x20\x63\x20\x23\x31\x65\x38\x61\x65\x30\x22\x2c\x0a\x22\x61\x69\ \x20\x63\x20\x23\x31\x65\x38\x64\x65\x30\x22\x2c\x0a\x22\x61\x75\ \x20\x63\x20\x23\x31\x65\x39\x30\x65\x30\x22\x2c\x0a\x22\x2e\x67\ \x20\x63\x20\x23\x32\x34\x32\x34\x32\x34\x22\x2c\x0a\x22\x23\x35\ \x20\x63\x20\x23\x33\x31\x33\x62\x36\x63\x22\x2c\x0a\x22\x61\x42\ \x20\x63\x20\x23\x33\x34\x33\x64\x38\x64\x22\x2c\x0a\x22\x23\x33\ \x20\x63\x20\x23\x33\x39\x33\x39\x33\x39\x22\x2c\x0a\x22\x2e\x66\ \x20\x63\x20\x23\x33\x64\x33\x64\x33\x64\x22\x2c\x0a\x22\x61\x6b\ \x20\x63\x20\x23\x34\x33\x33\x39\x36\x37\x22\x2c\x0a\x22\x23\x43\ \x20\x63\x20\x23\x34\x33\x34\x34\x34\x32\x22\x2c\x0a\x22\x61\x77\ \x20\x63\x20\x23\x34\x34\x33\x63\x36\x65\x22\x2c\x0a\x22\x23\x6c\ \x20\x63\x20\x23\x34\x35\x34\x36\x34\x33\x22\x2c\x0a\x22\x61\x73\ \x20\x63\x20\x23\x34\x35\x34\x66\x61\x33\x22\x2c\x0a\x22\x2e\x34\ \x20\x63\x20\x23\x34\x37\x34\x38\x34\x35\x22\x2c\x0a\x22\x23\x52\ \x20\x63\x20\x23\x34\x37\x34\x38\x34\x36\x22\x2c\x0a\x22\x2e\x65\ \x20\x63\x20\x23\x34\x38\x34\x38\x34\x38\x22\x2c\x0a\x22\x61\x47\ \x20\x63\x20\x23\x34\x38\x35\x36\x61\x30\x22\x2c\x0a\x22\x2e\x64\ \x20\x63\x20\x23\x34\x61\x34\x61\x34\x61\x22\x2c\x0a\x22\x23\x39\ \x20\x63\x20\x23\x34\x63\x34\x31\x36\x61\x22\x2c\x0a\x22\x2e\x63\ \x20\x63\x20\x23\x34\x63\x34\x63\x34\x63\x22\x2c\x0a\x22\x61\x67\ \x20\x63\x20\x23\x34\x63\x35\x63\x61\x65\x22\x2c\x0a\x22\x23\x58\ \x20\x63\x20\x23\x34\x64\x34\x36\x36\x39\x22\x2c\x0a\x22\x23\x7a\ \x20\x63\x20\x23\x34\x64\x63\x32\x62\x32\x22\x2c\x0a\x22\x23\x50\ \x20\x63\x20\x23\x34\x65\x34\x34\x35\x61\x22\x2c\x0a\x22\x23\x47\ \x20\x63\x20\x23\x35\x33\x35\x30\x34\x65\x22\x2c\x0a\x22\x2e\x6c\ \x20\x63\x20\x23\x35\x34\x35\x34\x35\x34\x22\x2c\x0a\x22\x2e\x62\ \x20\x63\x20\x23\x35\x35\x35\x35\x35\x35\x22\x2c\x0a\x22\x23\x51\ \x20\x63\x20\x23\x35\x39\x35\x32\x37\x34\x22\x2c\x0a\x22\x23\x69\ \x20\x63\x20\x23\x36\x32\x62\x32\x61\x32\x22\x2c\x0a\x22\x2e\x61\ \x20\x63\x20\x23\x36\x37\x36\x37\x36\x37\x22\x2c\x0a\x22\x23\x6a\ \x20\x63\x20\x23\x36\x39\x62\x36\x61\x33\x22\x2c\x0a\x22\x2e\x46\ \x20\x63\x20\x23\x36\x66\x36\x66\x36\x61\x22\x2c\x0a\x22\x2e\x4b\ \x20\x63\x20\x23\x36\x66\x38\x62\x38\x39\x22\x2c\x0a\x22\x61\x78\ \x20\x63\x20\x23\x37\x34\x37\x34\x37\x34\x22\x2c\x0a\x22\x23\x61\ \x20\x63\x20\x23\x37\x36\x61\x31\x61\x30\x22\x2c\x0a\x22\x2e\x23\ \x20\x63\x20\x23\x37\x39\x37\x39\x37\x39\x22\x2c\x0a\x22\x23\x41\ \x20\x63\x20\x23\x37\x62\x64\x37\x65\x38\x22\x2c\x0a\x22\x61\x79\ \x20\x63\x20\x23\x37\x64\x37\x64\x37\x64\x22\x2c\x0a\x22\x23\x55\ \x20\x63\x20\x23\x37\x65\x37\x64\x37\x33\x22\x2c\x0a\x22\x2e\x49\ \x20\x63\x20\x23\x38\x30\x38\x30\x38\x30\x22\x2c\x0a\x22\x2e\x4f\ \x20\x63\x20\x23\x38\x31\x61\x33\x62\x38\x22\x2c\x0a\x22\x61\x7a\ \x20\x63\x20\x23\x38\x32\x38\x32\x38\x32\x22\x2c\x0a\x22\x23\x79\ \x20\x63\x20\x23\x38\x32\x64\x31\x63\x30\x22\x2c\x0a\x22\x23\x53\ \x20\x63\x20\x23\x38\x34\x38\x34\x38\x34\x22\x2c\x0a\x22\x23\x4f\ \x20\x63\x20\x23\x38\x35\x37\x65\x37\x63\x22\x2c\x0a\x22\x23\x46\ \x20\x63\x20\x23\x38\x36\x61\x64\x64\x32\x22\x2c\x0a\x22\x23\x6b\ \x20\x63\x20\x23\x38\x36\x63\x64\x64\x61\x22\x2c\x0a\x22\x23\x4e\ \x20\x63\x20\x23\x38\x39\x62\x31\x62\x64\x22\x2c\x0a\x22\x23\x68\ \x20\x63\x20\x23\x38\x61\x63\x65\x63\x33\x22\x2c\x0a\x22\x23\x6f\ \x20\x63\x20\x23\x38\x63\x38\x63\x38\x63\x22\x2c\x0a\x22\x23\x4c\ \x20\x63\x20\x23\x38\x63\x62\x62\x63\x61\x22\x2c\x0a\x22\x61\x6c\ \x20\x63\x20\x23\x38\x64\x38\x64\x38\x64\x22\x2c\x0a\x22\x2e\x73\ \x20\x63\x20\x23\x38\x66\x38\x66\x38\x66\x22\x2c\x0a\x22\x23\x48\ \x20\x63\x20\x23\x39\x30\x39\x30\x39\x30\x22\x2c\x0a\x22\x23\x4b\ \x20\x63\x20\x23\x39\x30\x62\x61\x63\x39\x22\x2c\x0a\x22\x23\x4d\ \x20\x63\x20\x23\x39\x31\x63\x34\x63\x66\x22\x2c\x0a\x22\x23\x74\ \x20\x63\x20\x23\x39\x32\x39\x32\x39\x32\x22\x2c\x0a\x22\x2e\x58\ \x20\x63\x20\x23\x39\x34\x63\x32\x63\x66\x22\x2c\x0a\x22\x2e\x4e\ \x20\x63\x20\x23\x39\x34\x63\x32\x64\x30\x22\x2c\x0a\x22\x2e\x57\ \x20\x63\x20\x23\x39\x35\x39\x35\x39\x35\x22\x2c\x0a\x22\x23\x42\ \x20\x63\x20\x23\x39\x36\x62\x39\x63\x62\x22\x2c\x0a\x22\x2e\x33\ \x20\x63\x20\x23\x39\x37\x62\x65\x64\x65\x22\x2c\x0a\x22\x2e\x4c\ \x20\x63\x20\x23\x39\x38\x63\x32\x63\x65\x22\x2c\x0a\x22\x2e\x50\ \x20\x63\x20\x23\x39\x62\x39\x62\x39\x62\x22\x2c\x0a\x22\x61\x2e\ \x20\x63\x20\x23\x39\x63\x39\x63\x39\x63\x22\x2c\x0a\x22\x61\x6d\ \x20\x63\x20\x23\x39\x64\x39\x64\x39\x64\x22\x2c\x0a\x22\x23\x73\ \x20\x63\x20\x23\x39\x64\x62\x64\x63\x34\x22\x2c\x0a\x22\x23\x62\ \x20\x63\x20\x23\x39\x65\x39\x65\x39\x65\x22\x2c\x0a\x22\x23\x59\ \x20\x63\x20\x23\x61\x30\x61\x30\x61\x30\x22\x2c\x0a\x22\x61\x6e\ \x20\x63\x20\x23\x61\x36\x61\x36\x61\x36\x22\x2c\x0a\x22\x23\x76\ \x20\x63\x20\x23\x61\x36\x64\x31\x64\x36\x22\x2c\x0a\x22\x2e\x5a\ \x20\x63\x20\x23\x61\x37\x61\x31\x61\x31\x22\x2c\x0a\x22\x23\x49\ \x20\x63\x20\x23\x61\x37\x61\x37\x61\x37\x22\x2c\x0a\x22\x23\x44\ \x20\x63\x20\x23\x61\x37\x65\x64\x64\x65\x22\x2c\x0a\x22\x2e\x4d\ \x20\x63\x20\x23\x61\x38\x64\x38\x65\x35\x22\x2c\x0a\x22\x23\x75\ \x20\x63\x20\x23\x61\x65\x61\x65\x61\x65\x22\x2c\x0a\x22\x61\x63\ \x20\x63\x20\x23\x62\x31\x62\x31\x62\x31\x22\x2c\x0a\x22\x61\x23\ \x20\x63\x20\x23\x62\x32\x62\x32\x62\x32\x22\x2c\x0a\x22\x2e\x32\ \x20\x63\x20\x23\x62\x35\x63\x62\x64\x36\x22\x2c\x0a\x22\x2e\x56\ \x20\x63\x20\x23\x62\x36\x62\x36\x62\x36\x22\x2c\x0a\x22\x61\x72\ \x20\x63\x20\x23\x62\x37\x62\x37\x62\x37\x22\x2c\x0a\x22\x23\x5a\ \x20\x63\x20\x23\x62\x38\x62\x38\x62\x38\x22\x2c\x0a\x22\x23\x32\ \x20\x63\x20\x23\x62\x61\x62\x61\x62\x61\x22\x2c\x0a\x22\x2e\x51\ \x20\x63\x20\x23\x62\x61\x62\x62\x62\x39\x22\x2c\x0a\x22\x61\x71\ \x20\x63\x20\x23\x62\x62\x62\x62\x62\x62\x22\x2c\x0a\x22\x23\x63\ \x20\x63\x20\x23\x62\x63\x62\x63\x62\x63\x22\x2c\x0a\x22\x2e\x38\ \x20\x63\x20\x23\x62\x66\x62\x66\x62\x66\x22\x2c\x0a\x22\x61\x70\ \x20\x63\x20\x23\x63\x30\x63\x30\x63\x30\x22\x2c\x0a\x22\x2e\x31\ \x20\x63\x20\x23\x63\x31\x64\x39\x64\x32\x22\x2c\x0a\x22\x61\x61\ \x20\x63\x20\x23\x63\x38\x63\x38\x63\x38\x22\x2c\x0a\x22\x61\x62\ \x20\x63\x20\x23\x63\x61\x63\x61\x63\x61\x22\x2c\x0a\x22\x61\x6f\ \x20\x63\x20\x23\x63\x62\x63\x62\x63\x62\x22\x2c\x0a\x22\x2e\x59\ \x20\x63\x20\x23\x63\x63\x66\x38\x66\x31\x22\x2c\x0a\x22\x23\x4a\ \x20\x63\x20\x23\x63\x64\x63\x64\x63\x64\x22\x2c\x0a\x22\x2e\x52\ \x20\x63\x20\x23\x63\x65\x63\x65\x63\x65\x22\x2c\x0a\x22\x23\x70\ \x20\x63\x20\x23\x64\x31\x66\x39\x66\x34\x22\x2c\x0a\x22\x23\x34\ \x20\x63\x20\x23\x64\x35\x64\x35\x64\x35\x22\x2c\x0a\x22\x23\x77\ \x20\x63\x20\x23\x64\x35\x65\x63\x65\x34\x22\x2c\x0a\x22\x2e\x39\ \x20\x63\x20\x23\x64\x35\x66\x36\x66\x35\x22\x2c\x0a\x22\x23\x30\ \x20\x63\x20\x23\x64\x36\x64\x36\x64\x36\x22\x2c\x0a\x22\x2e\x55\ \x20\x63\x20\x23\x64\x37\x64\x37\x64\x37\x22\x2c\x0a\x22\x61\x66\ \x20\x63\x20\x23\x64\x38\x64\x38\x64\x38\x22\x2c\x0a\x22\x2e\x78\ \x20\x63\x20\x23\x64\x61\x64\x61\x64\x61\x22\x2c\x0a\x22\x2e\x79\ \x20\x63\x20\x23\x64\x62\x64\x62\x64\x62\x22\x2c\x0a\x22\x2e\x77\ \x20\x63\x20\x23\x64\x63\x64\x63\x64\x63\x22\x2c\x0a\x22\x23\x65\ \x20\x63\x20\x23\x64\x63\x66\x37\x66\x34\x22\x2c\x0a\x22\x23\x31\ \x20\x63\x20\x23\x64\x64\x64\x64\x64\x64\x22\x2c\x0a\x22\x61\x65\ \x20\x63\x20\x23\x64\x65\x64\x65\x64\x65\x22\x2c\x0a\x22\x2e\x45\ \x20\x63\x20\x23\x64\x66\x64\x66\x64\x66\x22\x2c\x0a\x22\x2e\x7a\ \x20\x63\x20\x23\x65\x30\x65\x30\x65\x30\x22\x2c\x0a\x22\x23\x67\ \x20\x63\x20\x23\x65\x30\x65\x62\x65\x34\x22\x2c\x0a\x22\x23\x71\ \x20\x63\x20\x23\x65\x31\x65\x64\x65\x61\x22\x2c\x0a\x22\x23\x64\ \x20\x63\x20\x23\x65\x32\x65\x32\x65\x32\x22\x2c\x0a\x22\x23\x78\ \x20\x63\x20\x23\x65\x32\x65\x62\x65\x32\x22\x2c\x0a\x22\x2e\x30\ \x20\x63\x20\x23\x65\x32\x65\x65\x65\x35\x22\x2c\x0a\x22\x2e\x76\ \x20\x63\x20\x23\x65\x33\x65\x33\x65\x33\x22\x2c\x0a\x22\x23\x23\ \x20\x63\x20\x23\x65\x33\x65\x37\x64\x35\x22\x2c\x0a\x22\x23\x72\ \x20\x63\x20\x23\x65\x34\x65\x62\x64\x39\x22\x2c\x0a\x22\x23\x45\ \x20\x63\x20\x23\x65\x34\x66\x32\x65\x63\x22\x2c\x0a\x22\x2e\x75\ \x20\x63\x20\x23\x65\x35\x65\x35\x65\x35\x22\x2c\x0a\x22\x2e\x53\ \x20\x63\x20\x23\x65\x37\x65\x37\x65\x37\x22\x2c\x0a\x22\x2e\x6b\ \x20\x63\x20\x23\x65\x39\x65\x39\x65\x39\x22\x2c\x0a\x22\x2e\x41\ \x20\x63\x20\x23\x65\x62\x65\x62\x65\x62\x22\x2c\x0a\x22\x2e\x44\ \x20\x63\x20\x23\x65\x64\x65\x64\x65\x64\x22\x2c\x0a\x22\x2e\x74\ \x20\x63\x20\x23\x66\x30\x66\x30\x66\x30\x22\x2c\x0a\x22\x23\x54\ \x20\x63\x20\x23\x66\x34\x66\x34\x66\x34\x22\x2c\x0a\x22\x2e\x6e\ \x20\x63\x20\x23\x66\x36\x66\x36\x66\x36\x22\x2c\x0a\x22\x2e\x43\ \x20\x63\x20\x23\x66\x37\x66\x37\x66\x37\x22\x2c\x0a\x22\x23\x66\ \x20\x63\x20\x23\x66\x38\x66\x35\x66\x32\x22\x2c\x0a\x22\x2e\x6d\ \x20\x63\x20\x23\x66\x38\x66\x38\x66\x38\x22\x2c\x0a\x22\x2e\x37\ \x20\x63\x20\x23\x66\x39\x66\x39\x66\x39\x22\x2c\x0a\x22\x61\x64\ \x20\x63\x20\x23\x66\x61\x66\x61\x66\x61\x22\x2c\x0a\x22\x23\x2e\ \x20\x63\x20\x23\x66\x62\x66\x30\x65\x62\x22\x2c\x0a\x22\x2e\x4a\ \x20\x63\x20\x23\x66\x62\x66\x62\x66\x62\x22\x2c\x0a\x22\x2e\x54\ \x20\x63\x20\x23\x66\x63\x66\x63\x66\x63\x22\x2c\x0a\x22\x2e\x42\ \x20\x63\x20\x23\x66\x64\x66\x64\x66\x64\x22\x2c\x0a\x22\x2e\x6a\ \x20\x63\x20\x23\x66\x65\x66\x65\x66\x65\x22\x2c\x0a\x22\x2e\x69\ \x20\x63\x20\x23\x66\x66\x66\x66\x66\x66\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x2e\x23\x2e\x61\x2e\x62\x2e\x63\ \x2e\x64\x2e\x64\x2e\x65\x2e\x66\x2e\x67\x2e\x68\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x23\x2e\x69\x2e\x69\x2e\x69\x2e\x69\ \x2e\x69\x2e\x69\x2e\x69\x2e\x69\x2e\x69\x2e\x68\x2e\x68\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x61\x2e\x6a\x2e\x6a\x2e\x6a\x2e\x6a\ \x2e\x6a\x2e\x6a\x2e\x69\x2e\x69\x2e\x69\x2e\x68\x2e\x6b\x2e\x68\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x6c\x2e\x6d\x2e\x6e\x2e\x6f\x2e\x70\ \x2e\x71\x2e\x72\x2e\x73\x2e\x6a\x2e\x69\x2e\x68\x2e\x74\x2e\x75\ \x2e\x68\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x65\x2e\x76\x2e\x77\x2e\x78\x2e\x79\ \x2e\x7a\x2e\x41\x2e\x6e\x2e\x42\x2e\x42\x2e\x68\x2e\x43\x2e\x44\ \x2e\x45\x2e\x68\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x2e\x68\x2e\x68\x2e\x68\x2e\x68\x2e\x68\x2e\x46\ \x2e\x47\x2e\x48\x2e\x49\x2e\x6e\x2e\x4a\x2e\x68\x2e\x68\x2e\x68\ \x2e\x68\x2e\x68\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x2e\x68\x2e\x4b\x2e\x4c\x2e\x4d\x2e\x4e\x2e\x4f\x2e\x68\ \x2e\x50\x2e\x51\x2e\x52\x2e\x53\x2e\x6e\x2e\x54\x2e\x6a\x2e\x55\ \x2e\x56\x2e\x57\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x2e\x58\x2e\x59\x2e\x5a\x2e\x30\x2e\x31\x2e\x32\x2e\x33\ \x2e\x68\x2e\x34\x2e\x35\x2e\x36\x2e\x71\x2e\x72\x2e\x73\x2e\x37\ \x2e\x76\x2e\x38\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x2e\x39\x23\x2e\x2e\x23\x23\x23\x2e\x46\x2e\x46\x2e\x46\ \x23\x61\x2e\x68\x23\x62\x23\x63\x23\x64\x2e\x6d\x2e\x6a\x2e\x37\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x23\x65\x23\x66\x2e\x61\x23\x67\x23\x68\x23\x69\x23\x6a\ \x23\x6b\x2e\x68\x23\x6c\x23\x6d\x2e\x72\x23\x6e\x23\x6f\x2e\x37\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x23\x70\x23\x71\x2e\x61\x23\x72\x2e\x46\x2e\x46\x2e\x46\ \x23\x73\x2e\x68\x23\x74\x23\x75\x2e\x78\x2e\x6e\x2e\x6a\x2e\x37\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x2e\x68\x23\x76\x23\x77\x2e\x23\x23\x78\x23\x79\x23\x7a\x23\x41\ \x23\x42\x2e\x68\x23\x43\x23\x6d\x23\x6d\x2e\x71\x23\x6f\x2e\x37\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x2e\x68\x23\x44\x2e\x5a\x23\x45\x2e\x46\x2e\x46\x23\x46\ \x2e\x68\x23\x47\x23\x48\x23\x49\x23\x4a\x2e\x41\x2e\x37\x2e\x6d\ \x2e\x76\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x2e\x68\x23\x4b\x23\x4c\x23\x4d\x23\x4e\x2e\x68\ \x23\x4f\x23\x50\x23\x51\x23\x52\x23\x6d\x2e\x71\x23\x53\x23\x54\ \x23\x64\x23\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x68\x2e\x68\x2e\x68\x2e\x68\x2e\x5a\ \x23\x55\x23\x56\x23\x57\x23\x58\x23\x59\x23\x5a\x23\x30\x2e\x53\ \x23\x31\x23\x32\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x23\x33\x2e\x74\x2e\x76\x2e\x78\x23\x34\ \x23\x35\x23\x36\x23\x37\x23\x38\x23\x39\x61\x2e\x61\x23\x61\x61\ \x61\x62\x61\x63\x2e\x68\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x36\x61\x64\x2e\x6b\x61\x65\x2e\x79\ \x61\x66\x61\x67\x61\x68\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\ \x61\x6e\x61\x2e\x2e\x6f\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x68\x61\x65\x61\x6f\x61\x70\x61\x71\ \x61\x71\x61\x72\x61\x73\x61\x74\x61\x75\x61\x76\x61\x77\x61\x78\ \x61\x79\x61\x7a\x2e\x6f\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x2e\x68\x2e\x68\x2e\x68\x2e\x68\ \x2e\x68\x61\x41\x2e\x6f\x61\x42\x61\x43\x61\x69\x61\x44\x2e\x48\ \x61\x45\x61\x46\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x61\x47\x61\x48\x61\x49\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x7d\x3b\x0a\ \x00\x00\x00\xad\ \x00\ \x00\x04\xda\x78\x9c\xd3\xd7\x52\x88\x08\xf0\x55\xd0\xd2\xe7\x2a\ \x2e\x49\x2c\xc9\x4c\x56\x48\xce\x48\x2c\x52\xd0\xca\xcc\x4d\x4c\ \x4f\x35\x89\x8e\xb5\xad\xe6\x52\x32\x36\x52\x00\x21\x05\x43\x25\ \x1d\x2e\x25\x3d\x85\x64\x05\xbf\xfc\xbc\x54\x10\x5b\x19\xc8\x56\ \x36\x00\x02\x0b\x03\x10\x37\x11\xc4\xb5\x30\xb0\x80\x72\xf5\x08\ \x80\x51\x35\x24\xab\x51\x86\x81\x44\x34\x35\xca\x98\x4a\xe0\x8a\ \xe0\x6a\x94\x11\x4a\x10\xac\x44\x34\x35\xca\x30\x43\x90\x4d\x4c\ \x44\x53\xa3\x8c\xa6\x04\xae\x11\x59\x0d\x9a\x0a\xb8\x0b\xd0\xd4\ \x60\x78\x91\x4c\x35\xc4\xd8\x85\xa6\x08\x87\x1a\x54\x7f\x61\xf8\ \x1d\x5d\x11\x7a\x18\x62\x01\x89\x30\xe5\xb8\xd5\xc0\x95\x0c\x74\ \x1a\x1b\x1e\x6a\x6a\xad\xb9\x00\xc3\x36\xd8\x5e\ \x00\x00\x15\xdf\ \x2f\ \x2a\x20\x58\x50\x4d\x20\x2a\x2f\x0a\x73\x74\x61\x74\x69\x63\x20\ \x63\x68\x61\x72\x20\x2a\x69\x6d\x61\x67\x65\x35\x5b\x5d\x3d\x7b\ \x0a\x22\x33\x32\x20\x33\x32\x20\x32\x31\x31\x20\x32\x22\x2c\x0a\ \x22\x51\x74\x20\x63\x20\x4e\x6f\x6e\x65\x22\x2c\x0a\x22\x61\x4a\ \x20\x63\x20\x23\x30\x30\x30\x30\x30\x30\x22\x2c\x0a\x22\x23\x57\ \x20\x63\x20\x23\x30\x38\x30\x38\x30\x30\x22\x2c\x0a\x22\x23\x4e\ \x20\x63\x20\x23\x31\x30\x30\x38\x30\x30\x22\x2c\x0a\x22\x23\x56\ \x20\x63\x20\x23\x31\x30\x31\x30\x30\x30\x22\x2c\x0a\x22\x23\x45\ \x20\x63\x20\x23\x31\x30\x31\x30\x30\x38\x22\x2c\x0a\x22\x23\x4d\ \x20\x63\x20\x23\x31\x38\x31\x30\x30\x30\x22\x2c\x0a\x22\x23\x4c\ \x20\x63\x20\x23\x31\x38\x31\x38\x30\x30\x22\x2c\x0a\x22\x23\x44\ \x20\x63\x20\x23\x31\x38\x31\x38\x30\x38\x22\x2c\x0a\x22\x23\x46\ \x20\x63\x20\x23\x31\x38\x31\x38\x31\x30\x22\x2c\x0a\x22\x61\x73\ \x20\x63\x20\x23\x32\x31\x31\x38\x30\x30\x22\x2c\x0a\x22\x23\x4b\ \x20\x63\x20\x23\x32\x31\x31\x38\x30\x38\x22\x2c\x0a\x22\x23\x4a\ \x20\x63\x20\x23\x32\x31\x32\x31\x31\x30\x22\x2c\x0a\x22\x23\x47\ \x20\x63\x20\x23\x32\x31\x32\x31\x31\x38\x22\x2c\x0a\x22\x23\x71\ \x20\x63\x20\x23\x32\x31\x32\x31\x32\x31\x22\x2c\x0a\x22\x61\x6e\ \x20\x63\x20\x23\x32\x39\x32\x31\x30\x30\x22\x2c\x0a\x22\x23\x49\ \x20\x63\x20\x23\x32\x39\x32\x31\x31\x30\x22\x2c\x0a\x22\x61\x4e\ \x20\x63\x20\x23\x32\x39\x32\x39\x31\x30\x22\x2c\x0a\x22\x23\x48\ \x20\x63\x20\x23\x32\x39\x32\x39\x31\x38\x22\x2c\x0a\x22\x23\x79\ \x20\x63\x20\x23\x32\x39\x32\x39\x32\x31\x22\x2c\x0a\x22\x61\x46\ \x20\x63\x20\x23\x33\x31\x32\x39\x30\x30\x22\x2c\x0a\x22\x23\x43\ \x20\x63\x20\x23\x33\x31\x32\x39\x31\x38\x22\x2c\x0a\x22\x23\x69\ \x20\x63\x20\x23\x33\x31\x32\x39\x32\x39\x22\x2c\x0a\x22\x2e\x30\ \x20\x63\x20\x23\x33\x31\x33\x31\x33\x31\x22\x2c\x0a\x22\x23\x37\ \x20\x63\x20\x23\x33\x39\x33\x31\x30\x30\x22\x2c\x0a\x22\x23\x55\ \x20\x63\x20\x23\x33\x39\x33\x31\x30\x38\x22\x2c\x0a\x22\x61\x47\ \x20\x63\x20\x23\x33\x39\x33\x39\x33\x31\x22\x2c\x0a\x22\x2e\x4d\ \x20\x63\x20\x23\x33\x39\x33\x39\x33\x39\x22\x2c\x0a\x22\x23\x75\ \x20\x63\x20\x23\x34\x32\x33\x39\x33\x39\x22\x2c\x0a\x22\x23\x63\ \x20\x63\x20\x23\x34\x32\x34\x61\x34\x32\x22\x2c\x0a\x22\x61\x45\ \x20\x63\x20\x23\x34\x61\x34\x32\x30\x30\x22\x2c\x0a\x22\x61\x59\ \x20\x63\x20\x23\x34\x61\x34\x32\x31\x30\x22\x2c\x0a\x22\x2e\x56\ \x20\x63\x20\x23\x34\x61\x34\x32\x33\x39\x22\x2c\x0a\x22\x23\x42\ \x20\x63\x20\x23\x34\x61\x34\x61\x33\x39\x22\x2c\x0a\x22\x2e\x6d\ \x20\x63\x20\x23\x34\x61\x34\x61\x34\x32\x22\x2c\x0a\x22\x61\x50\ \x20\x63\x20\x23\x34\x61\x35\x32\x31\x38\x22\x2c\x0a\x22\x2e\x47\ \x20\x63\x20\x23\x34\x61\x35\x32\x35\x32\x22\x2c\x0a\x22\x2e\x7a\ \x20\x63\x20\x23\x34\x61\x35\x61\x35\x32\x22\x2c\x0a\x22\x61\x4f\ \x20\x63\x20\x23\x35\x32\x34\x32\x30\x30\x22\x2c\x0a\x22\x61\x6d\ \x20\x63\x20\x23\x35\x32\x34\x61\x30\x30\x22\x2c\x0a\x22\x23\x54\ \x20\x63\x20\x23\x35\x32\x34\x61\x30\x38\x22\x2c\x0a\x22\x23\x70\ \x20\x63\x20\x23\x35\x32\x34\x61\x34\x61\x22\x2c\x0a\x22\x2e\x73\ \x20\x63\x20\x23\x35\x32\x35\x32\x35\x32\x22\x2c\x0a\x22\x23\x61\ \x20\x63\x20\x23\x35\x32\x35\x61\x35\x32\x22\x2c\x0a\x22\x2e\x37\ \x20\x63\x20\x23\x35\x32\x36\x33\x35\x61\x22\x2c\x0a\x22\x23\x62\ \x20\x63\x20\x23\x35\x32\x36\x33\x36\x33\x22\x2c\x0a\x22\x61\x7a\ \x20\x63\x20\x23\x35\x61\x34\x61\x30\x30\x22\x2c\x0a\x22\x23\x36\ \x20\x63\x20\x23\x35\x61\x35\x32\x30\x38\x22\x2c\x0a\x22\x61\x77\ \x20\x63\x20\x23\x35\x61\x35\x32\x31\x30\x22\x2c\x0a\x22\x2e\x5a\ \x20\x63\x20\x23\x35\x61\x35\x32\x34\x61\x22\x2c\x0a\x22\x2e\x4c\ \x20\x63\x20\x23\x35\x61\x35\x61\x35\x32\x22\x2c\x0a\x22\x2e\x79\ \x20\x63\x20\x23\x35\x61\x35\x61\x35\x61\x22\x2c\x0a\x22\x2e\x46\ \x20\x63\x20\x23\x35\x61\x36\x33\x35\x61\x22\x2c\x0a\x22\x23\x53\ \x20\x63\x20\x23\x36\x33\x35\x32\x30\x38\x22\x2c\x0a\x22\x61\x78\ \x20\x63\x20\x23\x36\x33\x35\x61\x31\x30\x22\x2c\x0a\x22\x2e\x55\ \x20\x63\x20\x23\x36\x33\x35\x61\x35\x32\x22\x2c\x0a\x22\x2e\x72\ \x20\x63\x20\x23\x36\x33\x35\x61\x35\x61\x22\x2c\x0a\x22\x61\x5a\ \x20\x63\x20\x23\x36\x33\x36\x33\x32\x31\x22\x2c\x0a\x22\x23\x23\ \x20\x63\x20\x23\x36\x33\x36\x33\x35\x61\x22\x2c\x0a\x22\x2e\x41\ \x20\x63\x20\x23\x36\x33\x36\x33\x36\x33\x22\x2c\x0a\x22\x23\x68\ \x20\x63\x20\x23\x36\x33\x36\x62\x36\x62\x22\x2c\x0a\x22\x61\x4c\ \x20\x63\x20\x23\x36\x33\x37\x33\x32\x39\x22\x2c\x0a\x22\x61\x66\ \x20\x63\x20\x23\x36\x62\x35\x61\x30\x30\x22\x2c\x0a\x22\x2e\x36\ \x20\x63\x20\x23\x36\x62\x36\x33\x35\x61\x22\x2c\x0a\x22\x23\x6f\ \x20\x63\x20\x23\x36\x62\x36\x33\x36\x33\x22\x2c\x0a\x22\x2e\x45\ \x20\x63\x20\x23\x36\x62\x36\x62\x36\x33\x22\x2c\x0a\x22\x61\x34\ \x20\x63\x20\x23\x36\x62\x37\x33\x32\x31\x22\x2c\x0a\x22\x61\x53\ \x20\x63\x20\x23\x36\x62\x37\x33\x32\x39\x22\x2c\x0a\x22\x61\x52\ \x20\x63\x20\x23\x36\x62\x37\x33\x33\x31\x22\x2c\x0a\x22\x61\x58\ \x20\x63\x20\x23\x37\x33\x36\x33\x30\x30\x22\x2c\x0a\x22\x61\x6c\ \x20\x63\x20\x23\x37\x33\x36\x33\x30\x38\x22\x2c\x0a\x22\x23\x52\ \x20\x63\x20\x23\x37\x33\x36\x62\x31\x30\x22\x2c\x0a\x22\x2e\x54\ \x20\x63\x20\x23\x37\x33\x36\x62\x36\x33\x22\x2c\x0a\x22\x61\x35\ \x20\x63\x20\x23\x37\x33\x37\x33\x32\x39\x22\x2c\x0a\x22\x2e\x69\ \x20\x63\x20\x23\x37\x33\x37\x33\x36\x62\x22\x2c\x0a\x22\x2e\x4b\ \x20\x63\x20\x23\x37\x33\x37\x33\x37\x33\x22\x2c\x0a\x22\x61\x37\ \x20\x63\x20\x23\x37\x33\x37\x62\x32\x39\x22\x2c\x0a\x22\x23\x67\ \x20\x63\x20\x23\x37\x33\x37\x62\x37\x33\x22\x2c\x0a\x22\x61\x39\ \x20\x63\x20\x23\x37\x62\x37\x33\x31\x38\x22\x2c\x0a\x22\x23\x41\ \x20\x63\x20\x23\x37\x62\x37\x33\x37\x33\x22\x2c\x0a\x22\x61\x38\ \x20\x63\x20\x23\x37\x62\x37\x62\x32\x31\x22\x2c\x0a\x22\x61\x56\ \x20\x63\x20\x23\x37\x62\x37\x62\x32\x39\x22\x2c\x0a\x22\x61\x51\ \x20\x63\x20\x23\x37\x62\x37\x62\x35\x61\x22\x2c\x0a\x22\x2e\x4a\ \x20\x63\x20\x23\x37\x62\x37\x62\x37\x33\x22\x2c\x0a\x22\x2e\x31\ \x20\x63\x20\x23\x37\x62\x37\x62\x37\x62\x22\x2c\x0a\x22\x62\x23\ \x20\x63\x20\x23\x37\x62\x38\x34\x33\x31\x22\x2c\x0a\x22\x61\x33\ \x20\x63\x20\x23\x37\x62\x38\x34\x34\x61\x22\x2c\x0a\x22\x2e\x38\ \x20\x63\x20\x23\x37\x62\x38\x34\x37\x62\x22\x2c\x0a\x22\x61\x79\ \x20\x63\x20\x23\x38\x34\x37\x33\x30\x38\x22\x2c\x0a\x22\x23\x35\ \x20\x63\x20\x23\x38\x34\x37\x33\x31\x30\x22\x2c\x0a\x22\x61\x54\ \x20\x63\x20\x23\x38\x34\x37\x62\x32\x31\x22\x2c\x0a\x22\x62\x2e\ \x20\x63\x20\x23\x38\x34\x37\x62\x32\x39\x22\x2c\x0a\x22\x2e\x53\ \x20\x63\x20\x23\x38\x34\x37\x62\x37\x33\x22\x2c\x0a\x22\x2e\x64\ \x20\x63\x20\x23\x38\x34\x37\x62\x37\x62\x22\x2c\x0a\x22\x61\x57\ \x20\x63\x20\x23\x38\x34\x38\x34\x32\x31\x22\x2c\x0a\x22\x61\x31\ \x20\x63\x20\x23\x38\x34\x38\x34\x32\x39\x22\x2c\x0a\x22\x61\x30\ \x20\x63\x20\x23\x38\x34\x38\x34\x33\x31\x22\x2c\x0a\x22\x62\x71\ \x20\x63\x20\x23\x38\x34\x38\x34\x34\x61\x22\x2c\x0a\x22\x2e\x48\ \x20\x63\x20\x23\x38\x34\x38\x34\x38\x34\x22\x2c\x0a\x22\x61\x65\ \x20\x63\x20\x23\x38\x63\x37\x62\x30\x38\x22\x2c\x0a\x22\x61\x6b\ \x20\x63\x20\x23\x38\x63\x37\x62\x31\x30\x22\x2c\x0a\x22\x23\x6a\ \x20\x63\x20\x23\x38\x63\x38\x34\x38\x34\x22\x2c\x0a\x22\x62\x61\ \x20\x63\x20\x23\x38\x63\x38\x63\x36\x33\x22\x2c\x0a\x22\x61\x32\ \x20\x63\x20\x23\x38\x63\x38\x63\x37\x62\x22\x2c\x0a\x22\x2e\x78\ \x20\x63\x20\x23\x38\x63\x38\x63\x38\x34\x22\x2c\x0a\x22\x2e\x32\ \x20\x63\x20\x23\x38\x63\x39\x34\x38\x63\x22\x2c\x0a\x22\x2e\x39\ \x20\x63\x20\x23\x38\x63\x61\x64\x61\x35\x22\x2c\x0a\x22\x61\x43\ \x20\x63\x20\x23\x39\x34\x37\x62\x30\x38\x22\x2c\x0a\x22\x2e\x59\ \x20\x63\x20\x23\x39\x34\x37\x62\x37\x33\x22\x2c\x0a\x22\x61\x4b\ \x20\x63\x20\x23\x39\x34\x38\x63\x31\x30\x22\x2c\x0a\x22\x23\x51\ \x20\x63\x20\x23\x39\x34\x38\x63\x31\x38\x22\x2c\x0a\x22\x61\x36\ \x20\x63\x20\x23\x39\x34\x38\x63\x32\x39\x22\x2c\x0a\x22\x23\x6d\ \x20\x63\x20\x23\x39\x34\x38\x63\x38\x34\x22\x2c\x0a\x22\x62\x70\ \x20\x63\x20\x23\x39\x34\x39\x34\x34\x32\x22\x2c\x0a\x22\x61\x48\ \x20\x63\x20\x23\x39\x34\x39\x34\x38\x34\x22\x2c\x0a\x22\x2e\x44\ \x20\x63\x20\x23\x39\x34\x39\x34\x38\x63\x22\x2c\x0a\x22\x2e\x6e\ \x20\x63\x20\x23\x39\x34\x39\x34\x39\x34\x22\x2c\x0a\x22\x62\x6e\ \x20\x63\x20\x23\x39\x34\x39\x63\x34\x61\x22\x2c\x0a\x22\x62\x6c\ \x20\x63\x20\x23\x39\x34\x39\x63\x35\x61\x22\x2c\x0a\x22\x62\x6a\ \x20\x63\x20\x23\x39\x34\x39\x63\x36\x33\x22\x2c\x0a\x22\x2e\x75\ \x20\x63\x20\x23\x39\x34\x39\x63\x39\x34\x22\x2c\x0a\x22\x2e\x76\ \x20\x63\x20\x23\x39\x34\x61\x35\x39\x63\x22\x2c\x0a\x22\x61\x49\ \x20\x63\x20\x23\x39\x63\x38\x63\x31\x30\x22\x2c\x0a\x22\x23\x34\ \x20\x63\x20\x23\x39\x63\x38\x63\x31\x38\x22\x2c\x0a\x22\x23\x4f\ \x20\x63\x20\x23\x39\x63\x38\x63\x32\x39\x22\x2c\x0a\x22\x61\x4d\ \x20\x63\x20\x23\x39\x63\x39\x34\x31\x38\x22\x2c\x0a\x22\x23\x72\ \x20\x63\x20\x23\x39\x63\x39\x34\x38\x63\x22\x2c\x0a\x22\x62\x6f\ \x20\x63\x20\x23\x39\x63\x39\x63\x34\x61\x22\x2c\x0a\x22\x62\x6d\ \x20\x63\x20\x23\x39\x63\x39\x63\x35\x32\x22\x2c\x0a\x22\x62\x6b\ \x20\x63\x20\x23\x39\x63\x39\x63\x35\x61\x22\x2c\x0a\x22\x62\x68\ \x20\x63\x20\x23\x39\x63\x39\x63\x36\x62\x22\x2c\x0a\x22\x2e\x6b\ \x20\x63\x20\x23\x39\x63\x39\x63\x39\x34\x22\x2c\x0a\x22\x2e\x61\ \x20\x63\x20\x23\x39\x63\x39\x63\x39\x63\x22\x2c\x0a\x22\x62\x69\ \x20\x63\x20\x23\x39\x63\x61\x35\x36\x62\x22\x2c\x0a\x22\x62\x66\ \x20\x63\x20\x23\x39\x63\x61\x35\x37\x33\x22\x2c\x0a\x22\x2e\x68\ \x20\x63\x20\x23\x39\x63\x61\x35\x39\x63\x22\x2c\x0a\x22\x23\x66\ \x20\x63\x20\x23\x39\x63\x61\x35\x61\x35\x22\x2c\x0a\x22\x2e\x42\ \x20\x63\x20\x23\x39\x63\x62\x64\x62\x35\x22\x2c\x0a\x22\x23\x50\ \x20\x63\x20\x23\x61\x35\x39\x34\x30\x30\x22\x2c\x0a\x22\x61\x42\ \x20\x63\x20\x23\x61\x35\x39\x34\x31\x38\x22\x2c\x0a\x22\x23\x6b\ \x20\x63\x20\x23\x61\x35\x39\x34\x38\x63\x22\x2c\x0a\x22\x61\x72\ \x20\x63\x20\x23\x61\x35\x39\x63\x32\x39\x22\x2c\x0a\x22\x2e\x4e\ \x20\x63\x20\x23\x61\x35\x39\x63\x38\x63\x22\x2c\x0a\x22\x2e\x50\ \x20\x63\x20\x23\x61\x35\x39\x63\x39\x34\x22\x2c\x0a\x22\x2e\x57\ \x20\x63\x20\x23\x61\x35\x39\x63\x39\x63\x22\x2c\x0a\x22\x62\x67\ \x20\x63\x20\x23\x61\x35\x61\x35\x37\x33\x22\x2c\x0a\x22\x62\x64\ \x20\x63\x20\x23\x61\x35\x61\x35\x38\x34\x22\x2c\x0a\x22\x2e\x71\ \x20\x63\x20\x23\x61\x35\x61\x35\x39\x63\x22\x2c\x0a\x22\x2e\x63\ \x20\x63\x20\x23\x61\x35\x61\x35\x61\x35\x22\x2c\x0a\x22\x62\x65\ \x20\x63\x20\x23\x61\x35\x61\x64\x37\x62\x22\x2c\x0a\x22\x2e\x6f\ \x20\x63\x20\x23\x61\x35\x61\x64\x61\x35\x22\x2c\x0a\x22\x2e\x43\ \x20\x63\x20\x23\x61\x35\x61\x64\x61\x64\x22\x2c\x0a\x22\x2e\x49\ \x20\x63\x20\x23\x61\x35\x62\x35\x61\x64\x22\x2c\x0a\x22\x23\x64\ \x20\x63\x20\x23\x61\x35\x62\x64\x62\x35\x22\x2c\x0a\x22\x2e\x77\ \x20\x63\x20\x23\x61\x35\x63\x36\x62\x64\x22\x2c\x0a\x22\x61\x64\ \x20\x63\x20\x23\x61\x64\x39\x63\x31\x30\x22\x2c\x0a\x22\x61\x6a\ \x20\x63\x20\x23\x61\x64\x39\x63\x31\x38\x22\x2c\x0a\x22\x23\x77\ \x20\x63\x20\x23\x61\x64\x39\x63\x39\x34\x22\x2c\x0a\x22\x2e\x66\ \x20\x63\x20\x23\x61\x64\x61\x35\x39\x63\x22\x2c\x0a\x22\x62\x63\ \x20\x63\x20\x23\x61\x64\x61\x64\x37\x62\x22\x2c\x0a\x22\x62\x62\ \x20\x63\x20\x23\x61\x64\x61\x64\x38\x34\x22\x2c\x0a\x22\x2e\x23\ \x20\x63\x20\x23\x61\x64\x61\x64\x61\x35\x22\x2c\x0a\x22\x2e\x74\ \x20\x63\x20\x23\x61\x64\x61\x64\x61\x64\x22\x2c\x0a\x22\x2e\x34\ \x20\x63\x20\x23\x61\x64\x62\x35\x61\x64\x22\x2c\x0a\x22\x61\x69\ \x20\x63\x20\x23\x62\x35\x61\x35\x31\x38\x22\x2c\x0a\x22\x61\x71\ \x20\x63\x20\x23\x62\x35\x61\x35\x32\x39\x22\x2c\x0a\x22\x61\x44\ \x20\x63\x20\x23\x62\x35\x61\x35\x34\x32\x22\x2c\x0a\x22\x61\x6f\ \x20\x63\x20\x23\x62\x35\x61\x35\x34\x61\x22\x2c\x0a\x22\x2e\x4f\ \x20\x63\x20\x23\x62\x35\x61\x35\x39\x34\x22\x2c\x0a\x22\x23\x76\ \x20\x63\x20\x23\x62\x35\x61\x35\x39\x63\x22\x2c\x0a\x22\x61\x74\ \x20\x63\x20\x23\x62\x35\x61\x64\x35\x32\x22\x2c\x0a\x22\x23\x7a\ \x20\x63\x20\x23\x62\x35\x61\x64\x39\x63\x22\x2c\x0a\x22\x2e\x35\ \x20\x63\x20\x23\x62\x35\x61\x64\x61\x35\x22\x2c\x0a\x22\x2e\x6a\ \x20\x63\x20\x23\x62\x35\x62\x35\x61\x64\x22\x2c\x0a\x22\x2e\x65\ \x20\x63\x20\x23\x62\x35\x62\x35\x62\x35\x22\x2c\x0a\x22\x2e\x33\ \x20\x63\x20\x23\x62\x35\x62\x64\x62\x35\x22\x2c\x0a\x22\x2e\x51\ \x20\x63\x20\x23\x62\x35\x62\x64\x62\x64\x22\x2c\x0a\x22\x23\x65\ \x20\x63\x20\x23\x62\x35\x63\x65\x63\x36\x22\x2c\x0a\x22\x23\x38\ \x20\x63\x20\x23\x62\x64\x61\x35\x33\x39\x22\x2c\x0a\x22\x23\x78\ \x20\x63\x20\x23\x62\x64\x61\x35\x39\x63\x22\x2c\x0a\x22\x23\x33\ \x20\x63\x20\x23\x62\x64\x61\x64\x32\x39\x22\x2c\x0a\x22\x23\x58\ \x20\x63\x20\x23\x62\x64\x61\x64\x33\x31\x22\x2c\x0a\x22\x61\x67\ \x20\x63\x20\x23\x62\x64\x61\x64\x34\x32\x22\x2c\x0a\x22\x23\x6e\ \x20\x63\x20\x23\x62\x64\x62\x35\x61\x64\x22\x2c\x0a\x22\x2e\x62\ \x20\x63\x20\x23\x62\x64\x62\x64\x62\x64\x22\x2c\x0a\x22\x2e\x58\ \x20\x63\x20\x23\x62\x64\x63\x65\x63\x36\x22\x2c\x0a\x22\x61\x55\ \x20\x63\x20\x23\x63\x36\x62\x35\x31\x30\x22\x2c\x0a\x22\x23\x2e\ \x20\x63\x20\x23\x63\x36\x63\x36\x62\x64\x22\x2c\x0a\x22\x2e\x70\ \x20\x63\x20\x23\x63\x36\x63\x65\x63\x65\x22\x2c\x0a\x22\x2e\x67\ \x20\x63\x20\x23\x63\x36\x64\x65\x64\x36\x22\x2c\x0a\x22\x61\x63\ \x20\x63\x20\x23\x63\x65\x62\x64\x33\x31\x22\x2c\x0a\x22\x23\x6c\ \x20\x63\x20\x23\x63\x65\x64\x36\x63\x65\x22\x2c\x0a\x22\x23\x73\ \x20\x63\x20\x23\x63\x65\x64\x36\x64\x36\x22\x2c\x0a\x22\x23\x74\ \x20\x63\x20\x23\x63\x65\x64\x65\x64\x65\x22\x2c\x0a\x22\x23\x39\ \x20\x63\x20\x23\x64\x36\x63\x36\x31\x30\x22\x2c\x0a\x22\x23\x32\ \x20\x63\x20\x23\x64\x36\x63\x36\x33\x31\x22\x2c\x0a\x22\x61\x70\ \x20\x63\x20\x23\x64\x65\x63\x36\x30\x38\x22\x2c\x0a\x22\x61\x68\ \x20\x63\x20\x23\x64\x65\x63\x65\x31\x30\x22\x2c\x0a\x22\x61\x62\ \x20\x63\x20\x23\x64\x65\x63\x65\x33\x31\x22\x2c\x0a\x22\x2e\x6c\ \x20\x63\x20\x23\x64\x65\x65\x66\x65\x37\x22\x2c\x0a\x22\x2e\x52\ \x20\x63\x20\x23\x64\x65\x65\x66\x65\x66\x22\x2c\x0a\x22\x61\x75\ \x20\x63\x20\x23\x65\x37\x63\x65\x30\x38\x22\x2c\x0a\x22\x61\x2e\ \x20\x63\x20\x23\x65\x37\x64\x36\x32\x31\x22\x2c\x0a\x22\x61\x23\ \x20\x63\x20\x23\x65\x37\x64\x36\x33\x31\x22\x2c\x0a\x22\x61\x61\ \x20\x63\x20\x23\x65\x37\x64\x36\x33\x39\x22\x2c\x0a\x22\x23\x31\ \x20\x63\x20\x23\x65\x37\x64\x65\x33\x39\x22\x2c\x0a\x22\x23\x59\ \x20\x63\x20\x23\x65\x66\x64\x65\x31\x30\x22\x2c\x0a\x22\x61\x76\ \x20\x63\x20\x23\x65\x66\x64\x65\x32\x31\x22\x2c\x0a\x22\x61\x41\ \x20\x63\x20\x23\x65\x66\x64\x65\x32\x39\x22\x2c\x0a\x22\x23\x5a\ \x20\x63\x20\x23\x66\x37\x65\x37\x32\x39\x22\x2c\x0a\x22\x23\x30\ \x20\x63\x20\x23\x66\x37\x65\x37\x33\x39\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x23\x2e\x61\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\ \x2e\x63\x2e\x64\x2e\x65\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x66\x2e\x67\x2e\x68\x2e\x69\x2e\x62\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x2e\x6a\x2e\x6b\x2e\x6c\x2e\x65\x2e\x6d\x2e\x6e\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x62\x2e\x61\x2e\x6f\x2e\x70\x2e\x71\ \x2e\x72\x2e\x73\x2e\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x75\x2e\x76\x2e\x77\ \x2e\x6b\x2e\x78\x2e\x79\x2e\x7a\x2e\x41\x2e\x62\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x74\x2e\x6b\ \x2e\x42\x2e\x43\x2e\x6b\x2e\x44\x2e\x45\x2e\x46\x2e\x47\x2e\x48\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\ \x2e\x23\x2e\x23\x2e\x6f\x2e\x49\x2e\x62\x2e\x63\x2e\x4a\x2e\x4b\ \x2e\x4c\x2e\x4d\x2e\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x61\x2e\x4e\x2e\x4f\x2e\x50\x2e\x51\x2e\x52\x2e\x6f\ \x2e\x53\x2e\x54\x2e\x55\x2e\x56\x2e\x73\x2e\x62\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x2e\x74\x2e\x4e\x2e\x50\x2e\x57\x2e\x6b\x2e\x58\ \x2e\x52\x2e\x50\x2e\x59\x2e\x69\x2e\x41\x2e\x5a\x2e\x30\x2e\x31\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x62\x2e\x78\x2e\x32\x2e\x77\x2e\x33\ \x2e\x34\x2e\x49\x2e\x6a\x2e\x23\x2e\x35\x2e\x36\x2e\x4c\x2e\x46\ \x2e\x37\x2e\x30\x2e\x63\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x6e\x2e\x38\x2e\x39\ \x2e\x70\x23\x2e\x2e\x6f\x2e\x34\x2e\x78\x2e\x78\x2e\x78\x23\x23\ \x2e\x73\x23\x61\x23\x62\x2e\x73\x23\x63\x2e\x62\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x74\x2e\x44\ \x2e\x23\x23\x64\x23\x65\x2e\x68\x23\x66\x2e\x6f\x2e\x50\x2e\x32\ \x2e\x32\x23\x67\x23\x23\x23\x68\x2e\x41\x2e\x7a\x23\x69\x2e\x4b\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\ \x23\x6a\x2e\x50\x2e\x66\x2e\x50\x23\x6b\x2e\x71\x2e\x34\x2e\x58\ \x23\x6c\x23\x6d\x23\x6e\x2e\x6e\x23\x6f\x2e\x4a\x2e\x36\x23\x70\ \x23\x69\x23\x71\x2e\x63\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x57\x23\x6d\x23\x6b\x2e\x4f\x23\x6d\x23\x72\x2e\x35\ \x2e\x6b\x23\x73\x23\x74\x23\x6d\x2e\x71\x23\x72\x2e\x55\x2e\x45\ \x2e\x54\x23\x70\x23\x75\x23\x69\x2e\x4d\x2e\x65\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x2e\x62\x2e\x78\x23\x72\x2e\x6f\x2e\x74\x23\x76\ \x2e\x66\x2e\x6f\x2e\x34\x2e\x6c\x23\x6c\x23\x77\x23\x78\x2e\x66\ \x2e\x69\x23\x6f\x2e\x45\x23\x23\x23\x61\x2e\x6d\x23\x79\x2e\x6e\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\x2e\x65\x2e\x63\x23\x64\ \x2e\x6f\x23\x7a\x2e\x75\x2e\x71\x23\x66\x2e\x49\x2e\x71\x2e\x23\ \x2e\x23\x2e\x32\x23\x41\x2e\x55\x2e\x6d\x23\x42\x23\x68\x2e\x68\ \x2e\x6a\x2e\x62\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x62\x23\x43\x23\x44\x23\x45\x23\x46\x23\x47\x23\x47\ \x23\x47\x23\x48\x23\x49\x23\x4a\x23\x4b\x23\x4c\x23\x4d\x23\x4e\ \x2e\x69\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x2e\x62\x23\x4f\x23\x50\x23\x51\x23\x52\ \x23\x53\x23\x54\x23\x55\x23\x4c\x23\x4d\x23\x56\x23\x57\x23\x4e\ \x23\x56\x23\x56\x2e\x69\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\x23\x58\x23\x59\ \x23\x5a\x23\x30\x23\x30\x23\x31\x23\x32\x23\x33\x23\x34\x23\x35\ \x23\x36\x23\x37\x23\x4d\x23\x56\x23\x41\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\ \x23\x38\x23\x39\x61\x2e\x61\x23\x61\x61\x61\x61\x61\x62\x61\x63\ \x23\x33\x61\x64\x61\x65\x61\x66\x23\x37\x23\x4d\x2e\x4a\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x62\x61\x67\x61\x68\x61\x2e\x61\x23\x23\x31\x61\x61\ \x61\x61\x23\x32\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\x61\x6e\ \x23\x41\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x61\x6f\x61\x70\x61\x2e\x61\x23\ \x61\x61\x61\x71\x61\x72\x61\x71\x23\x33\x61\x6a\x23\x35\x61\x66\ \x61\x6d\x61\x73\x2e\x4a\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x61\x74\x61\x75\ \x61\x76\x61\x23\x61\x77\x23\x56\x23\x57\x23\x4d\x61\x78\x23\x34\ \x61\x79\x61\x66\x61\x7a\x61\x6e\x2e\x4a\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x61\x74\x61\x68\x61\x41\x61\x42\x23\x57\x23\x4e\x23\x4d\x23\x56\ \x23\x56\x23\x52\x61\x43\x61\x6c\x61\x7a\x61\x73\x2e\x4a\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x2e\x62\x61\x44\x61\x70\x23\x5a\x23\x51\x23\x4e\x23\x4d\ \x23\x56\x23\x4d\x23\x4e\x23\x36\x61\x6b\x61\x66\x61\x45\x61\x46\ \x61\x47\x2e\x45\x23\x68\x2e\x4a\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x61\x48\x61\x49\x61\x68\x61\x41\x61\x42\ \x23\x57\x23\x57\x23\x4e\x23\x57\x61\x4a\x23\x36\x61\x4b\x61\x6c\ \x61\x6d\x61\x46\x23\x57\x61\x4a\x61\x4a\x23\x79\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x2e\x71\x61\x4c\x61\x49\x61\x68\ \x61\x76\x61\x4d\x23\x57\x61\x4a\x23\x57\x23\x44\x61\x4e\x23\x52\ \x61\x65\x61\x6c\x61\x4f\x61\x6e\x23\x4e\x61\x4e\x61\x50\x61\x51\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x6a\x61\x52\x61\x53\ \x61\x54\x61\x55\x61\x76\x61\x42\x23\x57\x61\x4e\x61\x50\x61\x4c\ \x61\x56\x61\x57\x61\x65\x61\x58\x23\x36\x61\x59\x61\x5a\x61\x30\ \x61\x31\x61\x32\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x2c\ \x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x2e\x62\x61\x33\ \x61\x34\x61\x35\x61\x35\x61\x56\x61\x36\x61\x31\x61\x5a\x61\x37\ \x61\x53\x61\x53\x61\x35\x61\x38\x61\x39\x61\x34\x61\x35\x62\x2e\ \x62\x23\x61\x35\x61\x35\x2e\x6b\x51\x74\x51\x74\x51\x74\x51\x74\ \x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\ \x62\x61\x61\x37\x61\x37\x61\x56\x61\x30\x62\x2e\x62\x23\x61\x37\ \x62\x23\x61\x30\x61\x37\x61\x37\x61\x37\x61\x53\x61\x53\x61\x37\ \x62\x2e\x61\x56\x61\x30\x61\x56\x61\x52\x2e\x23\x51\x74\x51\x74\ \x51\x74\x51\x74\x51\x74\x22\x2c\x0a\x22\x51\x74\x51\x74\x51\x74\ \x51\x74\x51\x74\x62\x62\x62\x63\x62\x64\x62\x65\x62\x65\x62\x66\ \x62\x67\x62\x68\x62\x68\x62\x69\x62\x6a\x62\x6a\x62\x6b\x62\x6b\ \x62\x6c\x62\x6d\x62\x6d\x62\x6e\x62\x6f\x62\x70\x62\x71\x2e\x62\ \x51\x74\x51\x74\x51\x74\x51\x74\x51\x74\x22\x7d\x3b\x0a\ \x00\x00\x05\x19\ \x00\ \x00\x11\x8f\x78\x9c\xe5\x96\x5b\x4f\x23\x47\x10\x85\xdf\xf9\x15\ \xd6\xd6\xdb\x2a\xaa\xc5\xe3\xb9\x2a\xca\x03\x77\x03\xcb\xc5\x5c\ \x8c\x21\xca\x43\xcf\x8c\x6f\x80\xcd\xc5\x06\x83\xa3\xfc\xf7\x54\ \xf7\xa9\xee\x45\xbb\xfb\xb0\x6c\xa4\x48\x51\x54\x80\xf8\x5c\x5d\ \xa7\x4e\xd7\xf4\x8c\xe7\xd3\xc7\x46\xef\xf8\xa0\xf1\xf1\xd3\xca\ \x6c\x6e\xe6\xe3\xaa\x51\x8d\xcc\x63\xe3\xe3\x78\x62\x86\xfd\xe8\ \xf7\x3f\x7e\xfb\x73\xe5\x43\x2b\x6a\xc8\x4f\x33\x8e\x1a\xd1\x87\ \x5f\x56\x3e\x74\xe6\x8d\xaa\x71\x78\x37\xed\x5b\xa0\x4b\x01\x5a\ \x5d\x6d\xe6\xfd\xcc\xb2\x31\x81\x07\x2e\xbf\xe5\x79\x00\xee\x80\ \xa3\xa6\xe6\xf7\x3d\x23\x6f\x48\xb9\x50\x66\xc7\xb9\x67\x3a\x06\ \xb7\x74\x3d\xc5\x96\x9b\x52\x5f\xa7\x8e\x4f\x02\xc3\xdf\x67\xe5\ \x42\xf3\x5d\xcf\xf0\x4b\x53\x70\xab\x18\x80\x2f\x02\x43\xff\x08\ \x1c\x47\xea\x67\xe4\x58\xfa\x57\xd0\x7f\x05\x87\xfc\xb5\xe5\xa8\ \x29\x79\xf4\x3b\x0d\x8c\xf5\x4b\xe5\x02\xfe\x78\x15\x1c\x47\x60\ \x33\xf6\x0c\x7f\x3c\x57\x36\x3a\xaf\x4d\xcf\xe8\xc7\x2f\xe0\xc4\ \xf7\xbf\x75\x5c\x78\x7d\xaa\xc1\x52\x8f\xfd\xed\x82\xfd\x7a\xda\ \x53\x56\x3d\x3a\xb3\xdc\x92\xfe\x65\xed\xf8\x10\x1c\xf2\x33\x70\ \xda\x52\xde\x76\x2c\xfa\xba\xdf\x1d\x70\x12\x61\xde\x66\xa8\xac\ \xfd\x79\x1d\x2c\xf5\x38\x2f\xfd\xc0\xd8\x8f\xae\x4f\x4b\xd5\x3f\ \xb7\x1c\x47\xb1\x29\x13\xc7\x11\x38\x89\xc0\xbc\xa7\x6c\x74\xbe\ \x6b\xe0\xb4\xa5\xf3\x2d\x95\x4b\xdd\xff\x7d\x60\xe8\xbf\x78\xd6\ \xfe\x53\x70\xe6\xfd\xdc\x39\x36\x69\x4b\xf5\xe7\xca\xaa\xc7\x1d\ \x70\xa6\xfd\xa8\xe5\x59\xfd\x6f\x28\xfb\xfd\x5c\x59\x4e\xc4\x2f\ \xe6\xcb\x4d\x70\x5a\x2a\x5f\x78\xc6\x3c\xf9\x24\x30\xf6\x73\x0c\ \xce\xfc\x7e\x16\xe0\x3c\x56\xfd\x89\x72\xa5\xe7\xa1\x72\x2c\xfe\ \xa1\x6f\x6e\x94\x7d\xbf\x23\xb0\xf8\x83\x5e\x1b\x1c\xf4\x0a\x65\ \xaf\x37\xb0\x9c\xb6\xa4\x1e\xf3\x1f\x05\x86\x7e\x09\xce\x63\x9d\ \xef\xb3\xb2\xd6\xf3\x02\x5c\xa8\x3e\xcf\x94\x35\x4f\x07\x8e\xcb\ \xac\xa5\xfa\x1b\x81\x71\x1e\x9f\xc0\x7e\x3d\xbb\xfd\x65\xad\xcc\ \xfb\x39\x05\xe7\xb1\xce\xeb\x50\xb9\xd2\xeb\x65\xc0\x45\xac\xe7\ \x23\xf7\xac\x7e\x3d\x57\x3a\x8f\xf5\xc0\xe8\xb7\x06\x36\x89\xfa\ \x75\xf7\x6f\x56\xe6\xb1\xf6\x3f\x53\xae\x74\xbe\x05\xb8\x88\xf5\ \xfe\x60\xcf\xb8\x3f\x38\x03\x7b\x3d\xee\x29\xd7\xca\xbb\xe0\xd2\ \xf7\x4b\x2c\xe7\x71\x5e\x19\xf4\x7b\x0d\x8c\x7e\x07\xe0\x42\xfd\ \x10\x29\x57\xfa\xfc\xab\xc0\x41\x7f\x07\xec\xf5\xf9\x4a\x59\xf3\ \xe4\xce\x7f\x5e\x79\x7d\x32\x60\x93\xe8\x7c\x2f\xc1\xa1\xbe\xad\ \xec\xeb\xdd\xf9\x2e\xc4\x8f\xfa\x3d\x0f\x0c\xbd\x4c\xd9\xeb\x97\ \x60\x53\xeb\xf5\x5a\x82\xab\x54\xf5\x9f\x95\xfb\xca\xee\x79\x5b\ \x54\xbe\x9e\x9f\xc0\x26\x51\xbd\x47\x70\xa8\x9f\x28\xfb\x7a\xf7\ \x7c\x94\xd5\x09\xfc\x51\x1a\x18\x7a\x5d\xcf\x7a\x7d\xf7\x95\x6b\ \xe5\x08\x1c\xf4\x1e\xc1\xb5\xef\xe7\xbe\x7f\x4c\x6d\xc3\xf1\xd8\ \xb3\xd6\xdf\x07\x46\xfe\x01\x5c\xab\x1e\xf5\xc1\xfd\x4c\xd9\x9d\ \x8f\x32\x29\xbd\x9f\xcd\xc0\xa8\xdf\xf2\xac\xcf\x8f\x6d\xe5\x5a\ \x79\x00\x0e\xfa\x0f\x60\x41\xf8\x75\xe7\xa5\xac\x4b\xf5\x63\x6a\ \xcf\x5a\x9f\x82\x43\xfd\x18\x1c\xfc\x8d\x94\x55\x8f\xdc\xf3\x5c\ \xa6\xef\xf3\xee\xfb\xa9\xea\x87\xf5\xd7\xe0\x90\x1f\x28\x7b\x3f\ \xee\x79\x55\xa7\x41\x4f\xd9\xaf\xe7\x5b\x65\xbf\xde\xcd\xab\xee\ \x87\xfd\xb8\xfb\xc5\x76\x53\x76\xef\x0b\x4e\x1e\xec\x9e\xd7\x83\ \x90\xef\xcc\xff\x59\xfc\xff\x34\x98\xd8\x70\xc9\x15\xd3\x3f\xd0\ \xa8\xb9\xcf\x03\x1e\xf2\x88\xc7\x3f\xad\x71\xcd\x37\x7c\xcb\x13\ \x9e\xf2\x1d\xdf\xff\xb4\x8f\x01\x3f\xf0\xa3\xa8\xcc\x78\xce\xd5\ \x4f\x69\x3c\x89\xc2\xb3\x28\x58\x95\x05\xbf\xf0\xeb\xdb\xc9\xfc\ \xb0\xc6\x52\x63\x22\xb1\xc6\xeb\xbc\xc1\x9b\x5f\x6b\xc8\xe4\xb7\ \x78\x5b\xfe\x7e\x77\xf2\x32\x8f\x1d\x6e\x8b\x42\x5b\x55\x76\x65\ \x32\x7b\xbc\xff\x45\x83\x3f\xf3\x01\x1f\xf2\x11\x1f\x73\x87\x4f\ \xf8\x94\xcf\xf8\x5c\x14\x83\x1e\x77\xf9\x82\x7b\x52\x7f\x29\xbf\ \x6d\xf5\x73\x25\x57\x69\x95\xbb\x41\xa3\xc9\x11\xb7\x38\xe6\x44\ \xa6\x9f\xca\xff\x97\x9c\x71\x2e\x27\xa2\x10\x19\x22\x43\xa5\x7c\ \xb2\xa3\x71\xe9\x7e\x45\x89\x2a\x9e\x52\x2d\xbb\x24\xbc\xa3\x51\ \x9f\x06\x34\xa4\x11\x8d\x79\x20\x7f\x87\x12\xd7\x74\x63\x43\xce\ \x45\xcc\x31\xdd\x4a\x45\x2f\xe8\x20\xc4\x13\x4d\x68\x4a\x77\x78\ \xaf\xe3\x09\xe1\xca\xd9\x58\x92\xfd\x6f\xe9\xae\xc2\x83\x8b\x89\ \xac\xb7\x55\x3d\x51\x42\x7d\x4f\x23\xa3\x19\xef\xe1\xdd\x4e\xae\ \xdb\x83\xab\x6b\x87\xb8\x7a\xe3\x7f\x27\x28\xec\x3a\x3f\x36\xd6\ \x78\x8d\x9e\xe8\xc9\xee\x47\x35\xda\xd2\x73\x69\xab\xc2\x9a\x2c\ \xf4\xfa\x36\x32\x57\xff\x4c\x0b\x7a\xa1\x57\x5a\xe2\x1d\x56\xae\ \x95\xf5\xfb\xa5\xc3\xba\xfd\xb5\x7d\x5c\xac\x3b\x0f\xbd\xb7\x0e\ \x78\x41\x1b\x3c\xa4\x4d\xda\xa2\x6d\xbc\x87\xcb\x09\xde\x91\xdc\ \x42\xb4\xdb\x64\xb3\x53\xe9\x30\xa3\x5d\xe9\x62\x63\x8f\xda\xc1\ \x59\xa6\x0a\x0b\xf9\xf4\x95\xf6\xe9\x33\x9f\xe3\x5d\x4c\x4e\xef\ \x94\x0e\x45\xf5\x88\x8e\xe5\xf3\x7d\xea\x48\x9c\xd0\x29\x9d\xd1\ \xb9\x44\x97\x2e\xa4\x83\x3a\xb4\x0a\xb2\x7a\x53\x56\x6e\x89\x42\ \x17\xe7\x83\x7a\x3c\x92\x75\x1d\xba\x74\x75\xe7\x74\x45\xab\xd4\ \xe4\x7b\x7b\xca\x5c\x74\x29\x12\xa7\x99\x4e\x71\x41\x2d\x55\x88\ \x29\x79\x7b\xd6\x29\xa5\x26\x65\xbc\xf9\xfd\xd3\x2e\xd9\x1c\x0e\ \xa8\x90\x3d\xbe\x1a\xb6\x73\x90\xf3\x4b\xef\xb8\xe7\x88\x73\xa9\ \xb6\xb3\x9a\xd1\x85\x21\x63\x28\xa2\xde\x3b\xef\x5b\x32\xa5\x9d\ \xb5\xcc\xec\x42\xa6\xb5\x65\xaa\xf7\xdf\xfb\xa6\xe6\x63\xd3\x97\ \x2b\x21\x1e\xa8\x6b\x06\x5f\x3c\xbc\xcb\xc7\x50\x1c\xc8\x1c\xcd\ \x88\xd2\xaf\xb3\x3f\xac\x31\x76\x7b\xb8\xe6\xeb\x6f\xb3\x3f\xac\ \x71\x63\x6e\xcd\xcd\xf7\x9e\xea\xff\xb5\xef\xb9\x7f\x41\xe3\xaf\ \x5f\x57\xfe\x06\xf5\x23\xb8\x71\ \x00\x00\x00\xa7\ \x00\ \x00\x03\x23\x78\x9c\xd3\xd7\x52\x88\x08\xf0\x55\xd0\xd2\xe7\x2a\ \x2e\x49\x2c\xc9\x4c\x56\x48\xce\x48\x2c\x52\xd0\xca\xcc\x4d\x4c\ \x4f\x35\x8e\x8e\xb5\xad\xe6\x52\x32\x32\x55\x00\x21\x05\x43\x25\ \x1d\x2e\x25\x65\x85\x64\x05\x65\x03\x30\x00\x71\xf5\x40\xdc\x34\ \x30\x00\x73\x71\x01\x2a\x49\x2a\x83\x01\x56\x49\x65\x38\xc0\x94\ \x84\x89\x22\xc9\xc2\x25\x91\x34\xc0\x99\x30\x49\x14\xe3\x60\x4c\ \x84\x24\xaa\x5e\x64\x49\xb0\x04\x42\x16\xca\x82\x4b\xa2\xda\x8b\ \x45\x12\x21\x8b\x4d\x12\x2e\x8b\x55\x52\x0f\xee\x59\x74\x07\x21\ \x64\x51\x1d\xa4\x87\xea\x49\x0c\x7f\x22\xcb\xa2\x49\xe2\x0d\x3e\ \xfc\x01\x8f\x3f\xca\xe0\xd2\x70\x2e\xb5\xd2\x10\x69\x92\xb5\xd6\ \x5c\x00\xe0\x4d\x89\x7e\ \x00\x00\x00\xad\ \x00\ \x00\x04\xda\x78\x9c\xd3\xd7\x52\x88\x08\xf0\x55\xd0\xd2\xe7\x2a\ \x2e\x49\x2c\xc9\x4c\x56\x48\xce\x48\x2c\x52\xd0\xca\xcc\x4d\x4c\ \x4f\x35\x88\x8e\xb5\xad\xe6\x52\x32\x36\x52\x00\x21\x05\x43\x25\ \x1d\x2e\x25\x3d\x85\x64\x05\xbf\xfc\xbc\x54\x10\x3b\x11\xc8\x56\ \x36\x00\x02\x0b\x03\x10\x57\x19\xc4\xb5\x30\xb0\x80\x72\xf5\x08\ \x80\x51\x35\x60\xa0\x9c\x08\x03\x38\xd5\x20\x94\x20\x29\x4a\x44\ \x51\xa3\x8c\x90\x42\x66\x21\xab\x51\x46\xd1\x0d\xe5\x24\xa2\xaa\ \x41\x75\x05\x44\x51\x22\x86\x1a\x54\x77\x22\xbb\x0c\x97\x1a\x3d\ \x2a\xa9\x21\xc2\xae\x44\x6c\x6a\x94\x31\xfc\x85\xa9\x06\x45\x51\ \x22\x0e\x35\x40\x09\x65\x3d\xec\x00\x29\x4e\x71\x2a\x1a\xc4\xe9\ \x70\x78\xa9\xa9\xb5\xe6\x02\x00\x3d\x48\xf5\x6a\ \x00\x00\x05\x1a\ \x00\ \x00\x11\x8f\x78\x9c\xe5\x96\x49\x73\x32\x47\x0c\x86\xef\xfe\x15\ \x94\x75\x73\xa5\xf4\xc1\xcc\x30\xcc\x54\x2a\x07\xef\x60\xbc\x80\ \x8d\xd7\x54\x0e\x3d\x1b\x06\xbc\xb1\x18\x2f\xa9\xfc\xf7\xa8\x5b\ \x52\xdb\xf9\xca\x17\x93\x5b\x52\x32\x86\x07\x49\xaf\xa4\xee\x9e\ \x19\x7e\x6c\xd4\xae\x7a\x47\xb5\x8d\x1f\x6b\xf3\x85\x59\x8c\xf2\ \x5a\x7e\x6b\x66\xb5\x8d\xd1\xbd\x19\x96\x8d\xdf\xff\xf8\xed\xcf\ \xb5\xf5\x30\xa8\xd1\x5f\x23\x0a\x6a\xc1\xfa\x2f\x6b\xeb\xfd\x45\ \x2d\xaf\x1d\x3f\x3e\x94\x16\xe0\x84\x00\xea\xf5\x46\xbd\x6a\x39\ \xee\x31\x07\x8d\xb2\x72\x7c\xaa\x2c\xfe\x33\xcf\xec\x1f\x08\xa7\ \xcc\xe6\x96\x39\x54\xff\xb1\xe3\x84\xfc\x9c\xff\xca\xec\xfd\xdb\ \xc2\x92\x0f\xbb\x96\x1b\xa4\x57\x72\xfc\x8c\xd9\xfb\x1f\x99\xa3\ \x40\xb8\xef\x98\xf4\x0a\x37\x8f\x99\x28\x4b\xbe\xb0\x8f\x6f\x0b\ \x1b\xe9\x77\x6c\x39\x68\x84\x5a\x6f\xce\x1c\x05\xac\x07\xfb\xc2\ \x12\x8f\x29\x73\x53\xf5\x02\xc7\x69\x98\xe6\xb1\xd3\x1b\x2a\x17\ \xcc\xc0\x1c\x05\x39\xeb\x3d\x29\x8b\xfe\x39\xb3\xea\x99\x52\x58\ \xea\xc1\x9b\xe5\x90\xea\x71\x3c\x06\xca\xd2\x6f\x47\x58\xe3\xdf\ \x99\xe3\x50\xb8\xe1\x38\x8d\x4c\x56\x38\x3e\x54\x96\xfa\x5b\xcc\ \x3e\xfe\x45\x38\x13\xbe\xb0\x1c\x05\x54\xdf\xcd\x03\x77\x9e\x39\ \xff\x92\x39\x0e\xe5\xbc\x4c\x85\x25\x1f\x1b\xcc\x2d\xd5\x6f\x3a\ \x36\x4d\x23\x7a\x07\xcc\xde\xdf\x15\x96\x7c\x93\x33\x27\x91\x70\ \x66\xb9\x49\xf5\x78\xbd\x71\xe0\x99\xd7\xe7\x88\xb9\x15\xb2\x3e\ \xe6\xca\xbc\x5e\x78\x2e\x9c\x49\xff\x0b\x65\x39\x9f\x9b\xcc\x5a\ \x0f\xae\x1c\x9b\x38\x34\x6e\xfd\xf0\x82\x39\x89\x64\xde\x3d\x65\ \x89\x5f\x0a\xe7\xd2\x6f\x61\x39\x0e\xe3\x8c\xd7\x1f\x4b\xe6\x56\ \x26\xfd\x5f\x7a\xe6\xfe\x43\x65\xe9\xbf\xcf\x9c\x44\xb2\xff\x4d\ \xe1\x5c\xea\x67\xca\x52\x7f\xcc\x9c\xea\x7a\x55\x8e\xb3\x56\x28\ \xfb\x5f\x57\x96\xfa\x67\xcc\x49\x24\xe7\xf3\x99\x59\xf3\x71\x5b\ \x58\xe7\x19\x59\x6e\x7d\xf4\xfb\xce\x9c\x44\x59\xd3\xf1\x58\x99\ \xf5\x21\x16\xce\x25\x3e\x52\x96\xf9\x32\xe6\x34\x97\xfd\xe9\x30\ \x9b\xa6\xcc\xf3\x20\x5c\x08\xdf\x38\xce\x7c\xbd\x53\xe1\x5c\xd6\ \xf7\x80\x39\x8d\x84\x39\x3f\x33\x4d\xd1\xef\x09\xab\x5e\xce\x9c\ \x69\x3d\x77\x7e\x92\x28\x89\xd2\xdc\x71\xa8\x2c\xfb\x3f\x12\xce\ \xe5\x7a\xbf\x63\xd6\x7a\xc6\x08\x8b\x1f\xdf\x98\xb5\x1e\x9e\x30\ \xfb\x7a\x12\x9f\xa9\xdf\x9d\xc7\x24\x4f\xb5\x9e\x51\x96\x79\x77\ \x84\x75\xde\x7b\x65\x59\xdf\x4d\x66\x9a\x97\xf5\x2a\xe1\x82\xcf\ \x37\xb6\x99\xb5\x1e\x38\xbd\x94\xfa\x37\x4e\x1f\x12\x65\x39\x2f\ \xa9\xb2\xcc\x8b\xc2\x5a\x7f\xc6\x9c\xc7\xa2\x57\x08\x97\xc2\x6e\ \xbf\xd3\xdc\x5e\xf0\x8e\x5b\xca\x32\xcf\x33\x73\xa6\xfd\xc5\xcc\ \xaa\x87\x75\x61\xd1\xc3\x57\xe6\x42\xfd\xee\x7e\x46\xea\xa2\x07\ \xd7\x9e\xb9\x5e\xc9\xec\xfb\x01\x66\x9f\xef\xae\x6f\x53\x98\x42\ \xfa\x99\x30\xfb\x79\x46\xcc\x3e\xde\x3d\x9f\xb2\x66\xa6\xfd\x17\ \x9e\x79\x3d\xba\xc2\x85\xec\xff\x1e\xb3\xef\xff\x98\xd9\xeb\x6d\ \x09\xab\xdf\x3d\x7f\xb2\xc2\x9a\x63\x50\x96\xeb\x09\x99\x7d\xfe\ \x3e\x73\xd9\x92\x7e\xdd\xf3\x37\x8f\x3d\x57\xc2\x95\xc4\xbf\x30\ \x57\xe2\x47\x8e\x2f\xbd\xde\x35\xb3\xe6\xe3\x54\x58\xf3\x6f\x98\ \x7d\xbe\x3b\xff\xc5\x87\x7e\xc2\xec\xfd\xee\x79\x5d\x7c\xe4\xb7\ \x98\xd5\x0f\xf7\xc2\xe2\x07\xf7\xfc\xb4\xd5\x25\xde\xdd\x4f\x9d\ \x9b\xd9\x3d\x3f\xab\x0f\xbf\x8b\xaf\xbc\xbf\xbf\xf8\x77\xf6\x7f\ \xd0\x40\x40\x83\x19\xe6\x68\x56\xd5\xc0\x02\x4b\xac\x70\x88\xb7\ \x38\x5a\x4d\x83\x14\xc6\x38\x21\x85\x21\xde\xe1\xfd\x2a\x1a\x34\ \xc3\x03\x3e\x52\xfe\x13\x4e\x71\xf6\x7d\x0d\x9c\xe3\x02\x9f\x5d\ \x07\x4b\x7c\xc1\x57\x7c\x5b\x41\xe3\x1d\x37\x45\x61\x8b\x14\x66\ \xb8\x8d\x3b\xdf\xd1\xc0\x5d\x9a\x62\x4f\x14\xf6\x29\xbf\x4d\xd6\ \xc1\x83\xaf\xb2\xa8\xdf\x39\x76\xad\x7d\xd6\xc0\x43\x3c\xc2\x63\ \xa7\x30\xa5\x0e\xda\x78\x42\x73\xf4\xc8\xfa\x78\xf8\x8f\x3c\x83\ \xa7\x78\x86\x03\x3c\xc7\x0b\xb2\x3e\x5e\xe2\x15\x6b\xd0\x69\xe8\ \xe3\xb5\x53\xb8\xc1\xba\xcf\xb7\xd6\xc0\x00\x43\x8c\x28\xaf\xa4\ \xd3\xd2\xa4\x1d\x8f\xa9\xd6\x1d\xb6\x30\x71\xb1\x29\x0e\xf8\x9e\ \x85\x97\x80\x6e\x27\x6e\x00\xc0\x90\x86\xcd\xee\x90\xf5\x20\x83\ \x1c\x0a\x28\x71\x0b\x2a\x18\xba\xcc\x04\xa7\x70\x0b\x23\x3b\x2d\ \x8c\x61\x02\x77\xfc\xbb\x88\x62\x86\x70\x8f\xfb\x50\x48\x0f\x9d\ \x4f\xd6\xc6\x98\x94\x81\x6a\xda\x2c\xaa\x00\x39\x76\xe0\x81\x5e\ \x63\x6c\xc0\x23\x3c\xf1\x6f\x23\x7c\x82\x8a\x56\xa1\xfe\x85\xc2\ \xd7\xb6\x6d\x8d\x7a\x9c\xc2\x0c\xe6\xfc\x7b\x90\xaa\xd8\x7d\xb0\ \x15\x7a\x3f\xc5\x72\xfc\xc7\x27\x9b\xfb\x4c\xaf\x31\xd9\x12\x5e\ \xe0\x95\xfb\x80\x37\x78\xa7\xbe\xdc\xfc\x1f\x55\xf4\x13\xc5\x66\ \x14\xbd\xa4\xff\x63\x67\x99\xcb\xb6\xdf\x6d\xc2\x16\x6c\x8b\xc6\ \x0e\xec\xd2\xda\x4c\xe9\xbb\xf1\x4f\x35\x3b\xb0\x07\xfb\xe4\x9b\ \x40\x9b\xde\x3b\xb0\x45\xfb\xd4\x80\x03\xe8\x42\x97\xde\xa7\x54\ \xfb\x15\x0e\x79\x5f\xe0\x08\x8e\x69\xb2\x77\xf2\x65\xae\xd3\x67\ \xed\x84\x2a\x9d\x40\x0f\xfa\x54\xa5\x07\xa7\x70\x06\x03\xca\x9a\ \x91\xb5\x31\x85\x73\xd2\x1d\xc0\x85\x3f\x63\xef\x4e\xa5\x43\xea\ \x4b\xea\xf5\xd9\x76\x44\x4a\x1d\xb8\x84\x2b\xd8\xa1\x2a\xd7\xd4\ \xed\x0d\xd4\xa1\x01\x01\x29\xf6\xc8\x8e\xc9\x06\xa4\x1d\x7a\x8d\ \x39\x44\xd0\xa4\x1a\x6d\xaa\xdc\x75\x3a\x6c\xf1\x17\xa7\xbc\xc0\ \x2b\x68\x41\x02\xa9\x41\xbc\xc2\xf9\xe7\x6b\x0e\x0b\x03\xd4\xed\ \x84\x66\x3a\x90\x35\x5c\x9a\x6f\xdf\xc7\x70\xd7\x64\xd4\xcb\x23\ \xad\x9e\xed\x65\x69\xf2\x55\xee\x63\x38\x37\x05\xcd\x38\x33\x25\ \xad\x7a\x17\x5e\x4c\xf5\x7d\x0d\x77\xfd\x1d\x9a\xa1\xb9\xa5\x99\ \xce\x61\xb2\x9a\x86\x35\x5a\xdf\xbe\xdd\x45\x73\x6b\x56\xbc\x27\ \xb3\x0a\xfd\x16\x1a\x9b\x89\xb9\x5b\x5d\xe3\x3b\xf6\x9f\xd2\xf8\ \xeb\xd7\xb5\xbf\x01\xda\x3f\xb9\x0e\ " qt_resource_name = b"\ \x00\x05\ \x00\x6f\xa6\x53\ \x00\x69\ \x00\x63\x00\x6f\x00\x6e\x00\x73\ \x00\x0a\ \x0d\x87\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x36\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x89\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x34\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8a\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x35\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8b\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x32\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8c\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x33\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8d\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x30\x00\x2e\x00\x78\x00\x70\x00\x6d\ \x00\x0a\ \x0d\x8e\x59\x8d\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x31\x00\x2e\x00\x78\x00\x70\x00\x6d\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\ \x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x2a\x00\x01\x00\x00\x00\x01\x00\x00\x0e\xa3\ \x00\x00\x00\x44\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x54\ \x00\x00\x00\x5e\x00\x01\x00\x00\x00\x01\x00\x00\x25\x37\ \x00\x00\x00\x78\x00\x01\x00\x00\x00\x01\x00\x00\x2a\x54\ \x00\x00\x00\x92\x00\x01\x00\x00\x00\x01\x00\x00\x2a\xff\ \x00\x00\x00\xac\x00\x01\x00\x00\x00\x01\x00\x00\x2b\xb0\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/ui_mainwindow.py0000644000076500000240000001744712536324426025032 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'mainwindow.ui' # # Created: Wed Mar 20 11:28:33 2013 # by: PyQt4 UI code generator snapshot-4.10.1-90522b46ebd0 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(812, 605) self.centralWidget = QtGui.QWidget(MainWindow) self.centralWidget.setObjectName(_fromUtf8("centralWidget")) self.hboxlayout = QtGui.QHBoxLayout(self.centralWidget) self.hboxlayout.setMargin(0) self.hboxlayout.setSpacing(6) self.hboxlayout.setObjectName(_fromUtf8("hboxlayout")) self.Frame3 = QtGui.QFrame(self.centralWidget) self.Frame3.setFrameShape(QtGui.QFrame.StyledPanel) self.Frame3.setFrameShadow(QtGui.QFrame.Sunken) self.Frame3.setObjectName(_fromUtf8("Frame3")) self.vboxlayout = QtGui.QVBoxLayout(self.Frame3) self.vboxlayout.setMargin(1) self.vboxlayout.setSpacing(0) self.vboxlayout.setObjectName(_fromUtf8("vboxlayout")) self.WebBrowser = QAxContainer.QAxWidget(self.Frame3) self.WebBrowser.setFocusPolicy(QtCore.Qt.StrongFocus) self.WebBrowser.setControl(_fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}")) self.WebBrowser.setObjectName(_fromUtf8("WebBrowser")) self.vboxlayout.addWidget(self.WebBrowser) self.hboxlayout.addWidget(self.Frame3) MainWindow.setCentralWidget(self.centralWidget) self.tbNavigate = QtGui.QToolBar(MainWindow) self.tbNavigate.setOrientation(QtCore.Qt.Horizontal) self.tbNavigate.setObjectName(_fromUtf8("tbNavigate")) MainWindow.addToolBar(4, self.tbNavigate) self.tbAddress = QtGui.QToolBar(MainWindow) self.tbAddress.setOrientation(QtCore.Qt.Horizontal) self.tbAddress.setObjectName(_fromUtf8("tbAddress")) MainWindow.addToolBar(4, self.tbAddress) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 812, 26)) self.menubar.setObjectName(_fromUtf8("menubar")) self.PopupMenu = QtGui.QMenu(self.menubar) self.PopupMenu.setObjectName(_fromUtf8("PopupMenu")) self.FileNewGroup_2 = QtGui.QMenu(self.PopupMenu) self.FileNewGroup_2.setObjectName(_fromUtf8("FileNewGroup_2")) self.unnamed = QtGui.QMenu(self.menubar) self.unnamed.setObjectName(_fromUtf8("unnamed")) MainWindow.setMenuBar(self.menubar) self.actionGo = QtGui.QAction(MainWindow) icon = QtGui.QIcon() icon.addFile(_fromUtf8(":/icons/image0.xpm")) self.actionGo.setIcon(icon) self.actionGo.setObjectName(_fromUtf8("actionGo")) self.actionBack = QtGui.QAction(MainWindow) icon1 = QtGui.QIcon() icon1.addFile(_fromUtf8(":/icons/image1.xpm")) self.actionBack.setIcon(icon1) self.actionBack.setObjectName(_fromUtf8("actionBack")) self.actionForward = QtGui.QAction(MainWindow) icon2 = QtGui.QIcon() icon2.addFile(_fromUtf8(":/icons/image2.xpm")) self.actionForward.setIcon(icon2) self.actionForward.setObjectName(_fromUtf8("actionForward")) self.actionStop = QtGui.QAction(MainWindow) icon3 = QtGui.QIcon() icon3.addFile(_fromUtf8(":/icons/image3.xpm")) self.actionStop.setIcon(icon3) self.actionStop.setObjectName(_fromUtf8("actionStop")) self.actionRefresh = QtGui.QAction(MainWindow) icon4 = QtGui.QIcon() icon4.addFile(_fromUtf8(":/icons/image4.xpm")) self.actionRefresh.setIcon(icon4) self.actionRefresh.setObjectName(_fromUtf8("actionRefresh")) self.actionHome = QtGui.QAction(MainWindow) icon5 = QtGui.QIcon() icon5.addFile(_fromUtf8(":/icons/image5.xpm")) self.actionHome.setIcon(icon5) self.actionHome.setObjectName(_fromUtf8("actionHome")) self.actionFileClose = QtGui.QAction(MainWindow) self.actionFileClose.setObjectName(_fromUtf8("actionFileClose")) self.actionSearch = QtGui.QAction(MainWindow) icon6 = QtGui.QIcon() icon6.addFile(_fromUtf8(":/icons/image6.xpm")) self.actionSearch.setIcon(icon6) self.actionSearch.setObjectName(_fromUtf8("actionSearch")) self.actionAbout = QtGui.QAction(MainWindow) self.actionAbout.setObjectName(_fromUtf8("actionAbout")) self.actionAboutQt = QtGui.QAction(MainWindow) self.actionAboutQt.setObjectName(_fromUtf8("actionAboutQt")) self.FileNewGroup = QtGui.QActionGroup(MainWindow) self.FileNewGroup.setObjectName(_fromUtf8("FileNewGroup")) self.actionNewWindow = QtGui.QAction(self.FileNewGroup) self.actionNewWindow.setObjectName(_fromUtf8("actionNewWindow")) self.tbNavigate.addAction(self.actionBack) self.tbNavigate.addAction(self.actionForward) self.tbNavigate.addAction(self.actionStop) self.tbNavigate.addAction(self.actionRefresh) self.tbNavigate.addAction(self.actionHome) self.tbNavigate.addSeparator() self.tbNavigate.addAction(self.actionSearch) self.tbAddress.addAction(self.actionGo) self.FileNewGroup_2.addAction(self.actionNewWindow) self.PopupMenu.addAction(self.FileNewGroup_2.menuAction()) self.PopupMenu.addSeparator() self.PopupMenu.addAction(self.actionFileClose) self.unnamed.addAction(self.actionAbout) self.unnamed.addAction(self.actionAboutQt) self.menubar.addAction(self.PopupMenu.menuAction()) self.menubar.addAction(self.unnamed.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("MainWindow", "Qt WebBrowser", None)) self.tbNavigate.setWindowTitle(_translate("MainWindow", "Navigation", None)) self.tbAddress.setWindowTitle(_translate("MainWindow", "Address", None)) self.PopupMenu.setTitle(_translate("MainWindow", "&File", None)) self.FileNewGroup_2.setTitle(_translate("MainWindow", "New", None)) self.unnamed.setTitle(_translate("MainWindow", "&Help", None)) self.actionGo.setIconText(_translate("MainWindow", "Go", None)) self.actionBack.setIconText(_translate("MainWindow", "Back", None)) self.actionBack.setShortcut(_translate("MainWindow", "Backspace", None)) self.actionForward.setIconText(_translate("MainWindow", "Forward", None)) self.actionStop.setIconText(_translate("MainWindow", "Stop", None)) self.actionRefresh.setIconText(_translate("MainWindow", "Refresh", None)) self.actionHome.setIconText(_translate("MainWindow", "Home", None)) self.actionFileClose.setText(_translate("MainWindow", "C&lose", None)) self.actionFileClose.setIconText(_translate("MainWindow", "Close", None)) self.actionSearch.setIconText(_translate("MainWindow", "Search", None)) self.actionAbout.setIconText(_translate("MainWindow", "About", None)) self.actionAboutQt.setIconText(_translate("MainWindow", "About Qt", None)) self.actionNewWindow.setIconText(_translate("MainWindow", "Window", None)) self.actionNewWindow.setShortcut(_translate("MainWindow", "Ctrl+N", None)) from PyQt4 import QAxContainer PyQt-x11-gpl-4.11.4/examples/activeqt/webbrowser/webbrowser.py0000755000076500000240000001356512536324426024342 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import sys from PyQt4 import QtCore, QtGui, QAxContainer try: import mainwindow_rc3 except ImportError: import mainwindow_rc2 from ui_mainwindow import Ui_MainWindow class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # Maintain the list of browser windows so that they do not get garbage # collected. _window_list = [] def __init__(self): super(MainWindow, self).__init__() MainWindow._window_list.append(self) self.setupUi(self) # Qt Designer (at least to v4.2.1) can't handle arbitrary widgets in a # QToolBar - even though uic can, and they are in the original .ui # file. Therefore we manually add the problematic widgets. self.lblAddress = QtGui.QLabel("Address", self.tbAddress) self.tbAddress.insertWidget(self.actionGo, self.lblAddress) self.addressEdit = QtGui.QLineEdit(self.tbAddress) self.tbAddress.insertWidget(self.actionGo, self.addressEdit) self.addressEdit.returnPressed.connect(self.actionGo.trigger) QtCore.QObject.connect(self.actionBack, QtCore.SIGNAL('triggered()'), self.WebBrowser, QtCore.SLOT('GoBack()')) QtCore.QObject.connect(self.actionForward, QtCore.SIGNAL('triggered()'), self.WebBrowser, QtCore.SLOT('GoForward()')) QtCore.QObject.connect(self.actionStop, QtCore.SIGNAL('triggered()'), self.WebBrowser, QtCore.SLOT('Stop()')) QtCore.QObject.connect(self.actionRefresh, QtCore.SIGNAL('triggered()'), self.WebBrowser, QtCore.SLOT('Refresh()')) QtCore.QObject.connect(self.actionHome, QtCore.SIGNAL('triggered()'), self.WebBrowser, QtCore.SLOT('GoHome()')) QtCore.QObject.connect(self.actionSearch, QtCore.SIGNAL('triggered()'), self.WebBrowser, QtCore.SLOT('GoSearch()')) self.pb = QtGui.QProgressBar(self.statusBar()) self.pb.setTextVisible(False) self.pb.hide() self.statusBar().addPermanentWidget(self.pb) self.WebBrowser.dynamicCall('GoHome()') def closeEvent(self, e): MainWindow._window_list.remove(self) e.accept() def on_WebBrowser_TitleChange(self, title): self.setWindowTitle("Qt WebBrowser - " + title) def on_WebBrowser_ProgressChange(self, a, b): if a <= 0 or b <= 0: self.pb.hide() return self.pb.show() self.pb.setRange(0, b) self.pb.setValue(a) def on_WebBrowser_CommandStateChange(self, cmd, on): if cmd == 1: self.actionForward.setEnabled(on) elif cmd == 2: self.actionBack.setEnabled(on) def on_WebBrowser_BeforeNavigate(self): self.actionStop.setEnabled(True) def on_WebBrowser_NavigateComplete(self, _): self.actionStop.setEnabled(False) @QtCore.pyqtSlot() def on_actionGo_triggered(self): self.WebBrowser.dynamicCall('Navigate(const QString&)', self.addressEdit.text()) @QtCore.pyqtSlot() def on_actionNewWindow_triggered(self): window = MainWindow() window.show() if self.addressEdit.text().isEmpty(): return; window.addressEdit.setText(self.addressEdit.text()) window.actionStop.setEnabled(True) window.on_actionGo_triggered() @QtCore.pyqtSlot() def on_actionAbout_triggered(self): QtGui.QMessageBox.about(self, "About WebBrowser", "This Example has been created using the ActiveQt integration into Qt Designer.\n" "It demonstrates the use of QAxWidget to embed the Internet Explorer ActiveX\n" "control into a Qt application.") @QtCore.pyqtSlot() def on_actionAboutQt_triggered(self): QtGui.QMessageBox.aboutQt(self, "About Qt") if __name__ == "__main__": a = QtGui.QApplication(sys.argv) w = MainWindow() w.show() sys.exit(a.exec_()) PyQt-x11-gpl-4.11.4/examples/animation/0000755000076500000240000000000012536324426017550 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/0000755000076500000240000000000012536324426022373 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/animatedtiles.py0000755000076500000240000002100612536324426025572 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui try: import animatedtiles_rc3 except ImportError: import animatedtiles_rc2 # PyQt doesn't support deriving from more than one wrapped class so we use # composition and delegate the property. class Pixmap(QtCore.QObject): def __init__(self, pix): super(Pixmap, self).__init__() self.pixmap_item = QtGui.QGraphicsPixmapItem(pix) self.pixmap_item.setCacheMode(QtGui.QGraphicsItem.DeviceCoordinateCache) def _set_pos(self, pos): self.pixmap_item.setPos(pos) pos = QtCore.pyqtProperty(QtCore.QPointF, fset=_set_pos) class Button(QtGui.QGraphicsWidget): pressed = QtCore.pyqtSignal() def __init__(self, pixmap, parent=None): super(Button, self).__init__(parent) self._pix = pixmap self.setAcceptHoverEvents(True) self.setCacheMode(QtGui.QGraphicsItem.DeviceCoordinateCache) def boundingRect(self): return QtCore.QRectF(-65, -65, 130, 130) def shape(self): path = QtGui.QPainterPath() path.addEllipse(self.boundingRect()) return path def paint(self, painter, option, widget): down = option.state & QtGui.QStyle.State_Sunken r = self.boundingRect() grad = QtGui.QLinearGradient(r.topLeft(), r.bottomRight()) if option.state & QtGui.QStyle.State_MouseOver: color_0 = QtCore.Qt.white else: color_0 = QtCore.Qt.lightGray color_1 = QtCore.Qt.darkGray if down: color_0, color_1 = color_1, color_0 grad.setColorAt(0, color_0) grad.setColorAt(1, color_1) painter.setPen(QtCore.Qt.darkGray) painter.setBrush(grad) painter.drawEllipse(r) color_0 = QtCore.Qt.darkGray color_1 = QtCore.Qt.lightGray if down: color_0, color_1 = color_1, color_0 grad.setColorAt(0, color_0) grad.setColorAt(1, color_1) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(grad) if down: painter.translate(2, 2) painter.drawEllipse(r.adjusted(5, 5, -5, -5)) painter.drawPixmap(-self._pix.width() / 2, -self._pix.height() / 2, self._pix) def mousePressEvent(self, ev): self.pressed.emit() self.update() def mouseReleaseEvent(self, ev): self.update() class View(QtGui.QGraphicsView): def resizeEvent(self, event): super(View, self).resizeEvent(event) self.fitInView(self.sceneRect(), QtCore.Qt.KeepAspectRatio) if __name__ == '__main__': import sys import math app = QtGui.QApplication(sys.argv) kineticPix = QtGui.QPixmap(':/images/kinetic.png') bgPix = QtGui.QPixmap(':/images/Time-For-Lunch-2.jpg') scene = QtGui.QGraphicsScene(-350, -350, 700, 700) items = [] for i in range(64): item = Pixmap(kineticPix) item.pixmap_item.setOffset(-kineticPix.width() / 2, -kineticPix.height() / 2) item.pixmap_item.setZValue(i) items.append(item) scene.addItem(item.pixmap_item) # Buttons. buttonParent = QtGui.QGraphicsRectItem() ellipseButton = Button(QtGui.QPixmap(':/images/ellipse.png'), buttonParent) figure8Button = Button(QtGui.QPixmap(':/images/figure8.png'), buttonParent) randomButton = Button(QtGui.QPixmap(':/images/random.png'), buttonParent) tiledButton = Button(QtGui.QPixmap(':/images/tile.png'), buttonParent) centeredButton = Button(QtGui.QPixmap(':/images/centered.png'), buttonParent) ellipseButton.setPos(-100, -100) figure8Button.setPos(100, -100) randomButton.setPos(0, 0) tiledButton.setPos(-100, 100) centeredButton.setPos(100, 100) scene.addItem(buttonParent) buttonParent.scale(0.75, 0.75) buttonParent.setPos(200, 200) buttonParent.setZValue(65) # States. rootState = QtCore.QState() ellipseState = QtCore.QState(rootState) figure8State = QtCore.QState(rootState) randomState = QtCore.QState(rootState) tiledState = QtCore.QState(rootState) centeredState = QtCore.QState(rootState) # Values. for i, item in enumerate(items): # Ellipse. ellipseState.assignProperty(item, 'pos', QtCore.QPointF(math.cos((i / 63.0) * 6.28) * 250, math.sin((i / 63.0) * 6.28) * 250)) # Figure 8. figure8State.assignProperty(item, 'pos', QtCore.QPointF(math.sin((i / 63.0) * 6.28) * 250, math.sin(((i * 2)/63.0) * 6.28) * 250)) # Random. randomState.assignProperty(item, 'pos', QtCore.QPointF(-250 + QtCore.qrand() % 500, -250 + QtCore.qrand() % 500)) # Tiled. tiledState.assignProperty(item, 'pos', QtCore.QPointF(((i % 8) - 4) * kineticPix.width() + kineticPix.width() / 2, ((i // 8) - 4) * kineticPix.height() + kineticPix.height() / 2)) # Centered. centeredState.assignProperty(item, 'pos', QtCore.QPointF()) # Ui. view = View(scene) view.setWindowTitle("Animated Tiles") view.setViewportUpdateMode(QtGui.QGraphicsView.BoundingRectViewportUpdate) view.setBackgroundBrush(QtGui.QBrush(bgPix)) view.setCacheMode(QtGui.QGraphicsView.CacheBackground) view.setRenderHints( QtGui.QPainter.Antialiasing | QtGui.QPainter.SmoothPixmapTransform) view.show() states = QtCore.QStateMachine() states.addState(rootState) states.setInitialState(rootState) rootState.setInitialState(centeredState) group = QtCore.QParallelAnimationGroup() for i, item in enumerate(items): anim = QtCore.QPropertyAnimation(item, 'pos') anim.setDuration(750 + i * 25) anim.setEasingCurve(QtCore.QEasingCurve.InOutBack) group.addAnimation(anim) trans = rootState.addTransition(ellipseButton.pressed, ellipseState) trans.addAnimation(group) trans = rootState.addTransition(figure8Button.pressed, figure8State) trans.addAnimation(group) trans = rootState.addTransition(randomButton.pressed, randomState) trans.addAnimation(group) trans = rootState.addTransition(tiledButton.pressed, tiledState) trans.addAnimation(group) trans = rootState.addTransition(centeredButton.pressed, centeredState) trans.addAnimation(group) timer = QtCore.QTimer() timer.start(125) timer.setSingleShot(True) trans = rootState.addTransition(timer.timeout, ellipseState) trans.addAnimation(group) states.start() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/animatedtiles.qrc0000644000076500000240000000050412536324426025724 0ustar philstaff00000000000000 images/Time-For-Lunch-2.jpg images/centered.png images/ellipse.png images/figure8.png images/kinetic.png images/random.png images/tile.png PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/animatedtiles_rc2.py0000644000076500000240000141365712536324426026357 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:12:39 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x36\xe2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x1c\x24\x7c\x1a\xa6\xff\x00\x00\x20\x00\x49\x44\x41\x54\x78\ \xda\xed\x9d\x77\x98\x9d\x65\x9d\xf7\x3f\xf7\x53\x4e\x9f\x99\x33\ \x33\x99\x4c\x66\x12\x32\xa9\xa4\x03\x91\x90\x10\x6a\xe8\x48\xd9\ \x05\xa5\x88\xc8\xba\xeb\xcb\xb2\xae\x04\x51\x57\x5f\x57\x5d\x5d\ \x76\x5d\x45\x51\x56\x50\x71\x59\x75\xa5\x59\xc0\x12\x3a\x16\x88\ \x94\x00\x09\x29\xa4\x4d\xea\xb4\x4c\xa6\xcf\x9c\x39\xbd\x3d\xf5\ \x7e\xff\x38\xf3\x3c\x99\x41\x94\x34\x7d\xdf\xeb\xbd\xb8\xaf\x2b\ \x57\x32\xc9\xc9\x79\xca\xf7\xfe\xb5\xef\xaf\xdc\xf0\xee\x7a\x77\ \xbd\xbb\xde\x5d\xef\xae\x77\xd7\xbb\xeb\xdd\xf5\xee\x7a\x77\xfd\ \x7f\xbf\xc4\xb1\xfc\xe7\xba\xba\xba\xab\x0c\xc3\x08\x4e\x99\x32\ \xe5\x73\x2b\x57\xae\x3c\x51\x51\x14\xb6\x6d\xdb\x46\x6d\x6d\xed\ \xa1\x0b\xb8\x02\x09\x20\xe4\x1f\x5c\x4d\x55\xd5\x94\xa2\x28\xf9\ \x72\xb9\xac\xbf\xfa\xea\xab\xb3\xfe\x6f\xbf\x8c\xda\xda\xda\x9f\ \x5d\x77\xdd\x75\x57\x97\xcb\x65\x17\x40\x41\xe0\x48\x89\xf8\x23\ \x6f\xc9\x71\x1c\x02\x81\x00\xaf\xbf\xfe\xba\xb3\x60\xc1\x82\xc2\ \xc0\xc0\x40\x6c\xcb\x96\x2d\xd3\x2d\xcb\x4a\x1e\xed\x3d\x68\xc7\ \xf2\x00\x8b\x16\x2d\xfa\xe1\xcc\x99\x33\xeb\x37\x6f\xde\x4c\xa9\ \x54\xc2\xb6\x6d\xea\xeb\xeb\x69\x68\x68\x40\x08\x41\xbf\x95\x62\ \xda\x05\x45\xaa\xa2\x3a\x4e\x3a\x88\x93\xd1\x71\x73\x3a\x76\x4a\ \x43\x16\x35\x80\xb0\x94\xf2\x0f\xbe\x77\xda\xb4\x69\xa2\xb7\xb7\ \x57\xfe\x25\x40\xa8\xaa\xaa\xba\x60\xc5\x8a\x15\x6b\x74\x5d\x37\ \x1d\xc7\xa9\xe9\xef\xed\xd3\x6d\x0b\x84\x22\x31\x30\x09\xc5\x04\ \xb2\xa0\x4d\xd8\x4c\x42\x08\xf6\xee\xdd\xcb\xd2\xa5\x4b\xbd\x8d\ \x85\xa6\x69\xb1\x58\x2c\x86\xeb\xba\xa7\x85\x42\xa1\x6c\x6d\x6d\ \xed\xae\x81\x81\x81\xec\x9f\x1d\x90\x45\x8b\x16\xb1\x77\xef\xde\ \x90\xe3\x38\x28\x8a\xe2\x94\x4a\x25\x5c\xd7\xc5\x34\x4d\x6c\xdb\ \xc6\xb2\x2c\xca\xe5\x32\x42\x08\x8a\xdd\x09\xba\xba\xc3\x48\x69\ \x22\x30\x91\xaa\x8b\x40\x80\xa8\x3c\xf0\x38\x19\x95\x67\x9c\x71\ \x86\x04\xc8\x66\xb3\xb4\xb6\xb6\x8a\xbf\x94\x54\x94\xcb\xe5\xe6\ \xc9\x93\x27\x57\x9b\xa6\x89\x82\xe0\x60\xb8\x87\x85\x17\x2a\xd8\ \xc3\x41\xec\x44\x10\x67\x34\x88\x8c\x0a\xa4\xa9\x20\x2d\xa5\xf2\ \xd2\x34\x0d\x55\x55\x31\x4d\x13\x45\x51\x70\x5d\x17\xc3\x30\x30\ \x4d\x53\x5e\x75\xd5\x55\xbf\x11\x42\xf0\xda\x6b\xaf\x5d\x00\xfc\ \xfe\xcf\x0e\x48\x47\x47\xc7\x9c\xd3\x4e\x3b\xad\xad\xb6\xb6\x96\ \x42\xa1\x80\x69\x9a\x13\x00\xf1\x6e\x4e\x51\x14\xa6\x4c\x6d\x22\ \x1c\x0e\xa3\x08\x41\xab\x71\x80\xe5\x1f\x82\x40\x40\xc1\x1e\xd5\ \xb1\x7a\xa3\x98\x83\x01\x9c\xe1\x20\x42\xa9\x28\x05\x29\x25\xc1\ \x60\xf0\x2f\xab\xb3\x85\xf0\x37\x92\x86\x8a\x3b\x3f\x43\x20\x5e\ \x43\x20\x5e\x82\x13\x4b\x13\x3e\x3b\xf4\xe8\x24\xdc\xa2\x8a\xeb\ \xba\x48\x29\x31\x0c\x03\x21\x04\x52\x4a\x2c\xcb\xc2\x75\x5d\x61\ \x18\x06\x9a\xa6\x01\xb8\x7f\x11\x95\x55\x2e\x97\x1b\x1a\x1a\x1a\ \x08\x85\x42\xe4\xf3\x79\x0c\xc3\xf0\x6f\xce\x71\x1c\x1c\xc7\xf1\ \x6f\x34\x10\x08\x54\xc0\x11\x82\x5e\x7b\x84\xf3\x62\x4d\xb8\x46\ \x90\x25\x4b\x4e\x61\xe7\xe4\x57\x89\x08\x89\xa2\xe8\xa4\x5f\xae\ \xa2\xb0\x27\x8c\x94\x12\xd7\x75\xff\xec\x20\x44\xa3\xd1\xb3\xae\ \xb9\xe6\x9a\x75\xa5\x52\xa9\xf2\x42\x5d\x29\x43\xf5\x42\xb8\x29\ \x9d\x19\xbb\x4e\x61\x74\x97\xac\x48\xf0\x5b\xe4\xb4\x6d\xef\x2e\ \x66\xcc\x98\xe1\x03\x32\x5e\x42\xca\xe5\xb2\xbf\x31\xa5\x94\x94\ \xcb\xe5\x8f\x57\x55\x55\x5d\x57\x55\x55\xf5\x40\x7f\x7f\xff\xa6\ \x3f\xab\x0d\xb1\x6d\x1b\xc3\x30\x7c\x69\xf0\x6e\xc4\x71\x1c\x7f\ \xb7\x09\x21\x50\x55\x15\xcb\xb2\x90\xae\x4b\x7d\x3a\xc4\xc1\xa7\ \x15\x4e\x08\x2e\x26\x57\x3f\x05\x3b\x31\x17\xac\x30\x49\x3a\x29\ \x0c\x98\x38\x79\xc7\x07\xe4\xec\xb3\xcf\xfe\x1f\x29\x65\x20\x99\ \x4c\x86\x7b\x7b\x7b\xff\x36\x9b\xcd\xe6\x8f\x27\x20\x52\xca\xb0\ \xaa\xaa\x15\x89\x96\x92\x5d\x93\x77\x8a\xf3\xaf\xac\xc3\x95\x36\ \x76\x56\x43\x64\xc3\xd8\x59\x0d\x27\xab\x51\xde\x1f\x41\x3a\xc2\ \x97\xa6\x72\xb9\x8c\xa2\x54\x54\x97\x07\x88\x27\x21\x8e\xe3\x54\ \x9e\x57\x4a\xb9\x6a\xd5\xaa\xab\x9b\x9b\x9b\x79\xf0\xc1\x07\xd7\ \x03\x7f\x1e\x40\xa6\x4d\x9b\xb6\xb0\x54\x2a\xcd\xb7\x6d\x1b\x29\ \x25\x8e\xe3\x4c\x50\x59\x8e\xe3\x00\xf8\x2a\x4b\xd3\x34\xff\x33\ \x0b\x1b\x66\x13\x4d\x55\x91\x24\x41\x77\x7f\x37\xf1\xf7\x14\xd0\ \xcc\x00\xd1\x44\x9c\x48\xbd\x86\xac\x11\x48\x43\x01\x57\x80\xe0\ \x23\x00\xe1\x70\x98\xdd\xbb\x77\x7f\x14\x38\x26\x40\x9a\x9a\x9a\ \x18\x18\x18\x18\x0f\x88\x34\x4d\x13\xd3\x34\x31\x5d\x9b\x58\xb5\ \x0e\xb6\xc2\xf2\xc9\xef\xa7\xaa\x25\xc4\x4b\x9d\xbf\x62\xfa\xbc\ \x26\x86\x8c\x2e\xf2\x1d\x2a\x4e\xa9\x02\x80\xf7\x9c\xe3\xed\x86\ \xf7\x67\x4f\x32\xc6\xde\x87\xc8\x66\xb3\x44\xa3\x51\x14\x45\x91\ \x7f\x36\x95\x55\x5b\x5b\xbb\x66\xd9\xb2\x65\xf3\xd2\xe9\xb4\x6f\ \x2f\x1c\xa7\xb2\xb3\x3d\x2f\x2b\x18\x0c\x32\x66\xf0\x09\x06\x83\ \xb8\xae\x8b\x65\x59\xbe\xb1\x57\x51\xd8\x17\xee\xe0\xc2\x05\xd5\ \x40\xf1\x2d\x0a\x5d\x92\x5e\x57\x43\xb9\x2d\x02\x80\x65\x59\xc7\ \x45\x22\x06\x06\x06\x68\x6a\x6a\x9a\x04\x2c\x01\x1c\xc3\x30\x4e\ \x4e\x24\x12\x64\xb3\x59\x6c\x5c\xec\x11\x9b\x9d\xcf\x17\xb8\xf2\ \x7d\xf3\x79\xfa\xd5\x35\xcc\x6b\xbe\x82\xf7\xd4\xaf\xe4\xbf\xb6\ \x7f\x8a\x6c\x2a\x87\x2e\xc3\xbe\x9b\xeb\x01\x02\x50\x28\x14\x70\ \x1c\x07\xd7\x75\x29\x95\x4a\x9e\xed\xc0\xf3\x1c\x3d\x4d\xf1\x67\ \x03\x44\x4a\xa9\x14\x0a\x05\x1f\x08\xdb\xb6\xc9\xe5\x72\xd8\xb6\ \x4d\x3e\x9f\xf7\x75\x6b\xa9\x54\x42\x51\x14\xc2\xe1\x30\xb6\x6d\ \x63\xdb\xf6\xa1\x87\x91\x02\xc2\x15\xf1\xff\xc8\xc2\xbb\x91\x8a\ \x4b\xda\xed\x64\xe3\xd6\x2e\x92\x55\xeb\x18\x1d\xfb\x9c\xb7\x23\ \x8f\xd7\x2a\x95\x4a\x37\x9f\x7f\xfe\xf9\x77\xaa\xaa\x8a\x40\x90\ \x30\x33\x4c\x3f\xbd\x1a\x77\x38\x8c\x33\xda\x82\x48\xc3\x8f\xbe\ \xf3\x53\x14\x55\xf0\x1a\x5b\x78\x55\x6e\x26\xa0\xcd\x27\x9f\x6c\ \x27\x1a\x55\x91\x52\x7a\xb6\xc1\x07\xa4\x58\x2c\xfa\xef\x22\x9b\ \xcd\x12\x8b\xc5\x7c\x30\xc6\x49\x4b\x63\x2c\x16\x9b\x95\xcf\xe7\ \x3b\xff\x1c\x80\xf8\x2f\xd8\xb2\x2c\x6c\xdb\xf6\x5f\x9e\xa6\x69\ \x3e\x10\xaa\xaa\xfa\xde\x4b\xb1\x58\xf4\x8d\xbd\x27\x21\x58\x92\ \xd1\x5e\x83\xa9\xef\x99\xcb\x75\x3f\x5a\xca\xcf\x3e\xb2\x81\xa6\ \x93\xd2\xac\xed\xc9\xb2\x27\xfb\x2a\xf9\x9c\xe9\xab\x3e\xa0\xce\ \xbb\xfe\xf4\xe9\xd3\x93\x07\x0f\x1e\x74\x8f\xd2\x6e\x44\xbd\x0d\ \x53\x74\x4d\xb4\x73\xfa\xa9\x9d\x1f\xc1\x92\x83\x48\x1b\x44\x36\ \x86\x9d\x51\x71\x52\x3a\xf9\x2d\xd5\xa0\x48\x1c\x69\xfb\xb6\xc2\ \x93\x90\x54\x2a\x85\xaa\xaa\x38\x8e\xe3\xc5\x1f\x08\x21\xd0\x34\ \x0d\x45\x51\xc8\xe5\x72\x04\x83\x41\x22\x91\x08\xa6\x69\xca\x93\ \x4f\x3e\xf9\x9b\xaa\xaa\xde\xf1\xca\x2b\xaf\x54\xfd\x39\x00\x91\ \x1e\x10\xde\x4e\x51\x14\x05\xdb\xb6\x99\x34\x69\x12\x37\xdd\x74\ \x13\xdf\xf9\xce\x77\xa8\xad\xad\x65\xfa\xf4\xe9\x74\x75\x75\x91\ \xcd\x66\x7d\x63\xed\x38\x0e\x96\x10\xa8\xdb\x5c\x8a\xf9\xa9\xdc\ \xf4\xab\x0f\x50\x1b\x38\x95\x9b\xd6\xdd\x88\xae\xa9\xa8\x76\x08\ \x4d\x6b\x24\x5e\xe3\xc7\x28\xf2\xca\x2b\xaf\xdc\xe7\xfd\xff\xf5\ \xeb\xd7\xcf\x07\xf6\x1d\xad\x94\x78\x2a\xc4\x74\x4d\xe2\xe1\x00\ \x85\x8c\xcb\x4d\x27\xdf\x81\xab\x16\x59\xb3\xf7\x5e\x26\x37\x34\ \x32\x9c\xef\x65\xf4\xd5\x30\x4a\x40\x4e\x50\xc9\xde\x86\x54\x55\ \xd5\x07\x24\x16\x8b\x21\x84\xf0\x37\xa1\xa2\x28\xfe\x35\x02\x81\ \x00\x96\x65\x09\x21\x04\xe1\x70\xb8\x70\xb8\xf7\xa8\x1c\xce\x87\ \xa6\x4c\x99\x32\x69\xca\x94\x29\x2f\xb9\xae\x3b\xcd\xb3\x05\xd9\ \x6c\x25\x08\xbd\xea\xaa\xab\x68\x6c\x6c\xe4\x57\xbf\xfa\x15\xcd\ \xcd\xcd\x00\xac\x5d\xbb\x96\xdb\x6f\xbf\x9d\x50\x28\x84\xa6\x69\ \xbe\x71\x37\x0c\x83\x72\xa9\x84\xd0\x04\xa1\x58\x90\xda\xda\x5a\ \xba\xd5\x21\x16\x7c\xbc\xcc\xac\x8f\x16\x69\xb9\x75\x94\xc9\xd7\ \x24\x89\x9f\x6e\x10\x69\x16\x04\x83\x01\x11\x0c\x06\x09\x06\x83\ \xd4\xd7\xd7\xe3\x38\xce\x31\xe9\x30\xc3\x30\xbc\x00\x0e\x45\x28\ \x9c\x14\x7e\x3f\xa1\x6a\x9b\xe7\xdf\x78\x9d\x45\xda\xf5\xac\x3e\ \xe3\x6e\x6a\x42\xf5\x94\xcb\xe5\xca\xbd\x96\xcb\x98\xa6\x49\x36\ \x9b\xf5\x37\x56\x20\x10\xf0\xa5\xe1\xb2\xcb\x2e\x23\x12\x89\x50\ \x5f\x5f\xcf\xdc\xb9\x73\x7d\x60\x34\x4d\xf3\xb5\x87\xe7\x7d\x1d\ \x57\x40\x92\xc9\x64\xed\x05\x17\x5c\x70\x6e\x28\x14\x8a\x58\x96\ \xe5\x5f\xb8\x5c\x2e\xf3\xe1\x0f\x7f\x18\xc3\x30\xb8\xff\xfe\xfb\ \x59\xbe\x7c\xb9\xaf\x3b\xbd\x1b\x5f\xb0\x60\x01\xb7\xdd\x76\xdb\ \x04\xe3\xee\xc5\x2d\xa6\x61\xe2\x04\x4c\x34\x4d\x25\x9b\x74\xb8\ \x6a\xe1\xc7\xa8\x9b\x1a\x23\xb2\x38\x4b\xed\x15\xc3\xe8\x0b\x52\ \x18\xa5\x31\x6f\xc8\x34\x8f\xd8\x40\x36\x34\x34\x5c\x1e\x8d\x46\ \x6f\x8a\xc5\x62\x37\x4a\x29\x97\x0c\x0d\x0d\x31\x38\x38\x48\x62\ \x68\x84\x81\x37\xb3\xf4\xed\x18\xe0\xb9\x35\x6b\xd9\xf1\xfa\x0e\ \xf6\x6d\xda\xc3\xfd\x0f\x7c\x97\x9d\x2f\x76\x91\x2f\x64\x7d\xe0\ \x3c\x0f\xca\xf3\xa2\xce\x3e\xfb\x6c\xaa\xab\xab\x91\x52\x92\x48\ \x24\x7c\xa3\x9e\x48\x24\x18\x93\x06\x5f\x75\x65\xb3\x59\x5f\x5d\ \x1f\x57\xa3\xee\xf9\xdf\xde\xc5\x15\x45\xe1\xfc\xf3\xcf\xa7\xb5\ \xb5\x95\xc7\x1f\x7f\x9c\xba\xba\x3a\x9e\x7a\xea\x29\x9e\x79\xe6\ \x19\x42\xa1\x10\x57\x5d\x75\x15\xa7\x9f\x7e\x3a\xa9\x54\x8a\xfb\ \xef\xbf\x9f\xbe\xbe\x3e\x0c\xc3\x20\x99\x4c\xfa\xd1\xb8\x69\x9a\ \x20\x41\x6a\x92\x72\xc9\xe1\xae\xf7\x3e\xc5\xa3\xad\xdf\xe0\xa6\ \xf9\x5f\x65\xed\x8e\x17\x50\x1b\xfa\x78\xcd\xde\x56\xb1\x23\x4a\ \x65\x67\x1e\xe9\x9a\x3c\x79\xf2\xb7\x97\x2d\x5b\x36\xcb\xb2\x2c\ \x54\xa1\x50\xac\x4e\xcb\x58\xb5\x26\xdc\xac\x8e\x9d\xd4\xe9\xdb\ \x36\x0c\x02\xea\xb5\x69\x8c\xa6\x73\x24\x64\x96\xa6\xc0\x0a\xf6\ \x8f\xbe\x44\x53\xa0\xc9\x7f\x91\x9e\x4d\xb4\x2c\x8b\x48\x24\xe2\ \x7b\x91\x1b\x37\x6e\x24\x16\x8b\x91\x48\x24\xa8\xae\xae\x46\x08\ \xc1\xb4\x69\xd3\x18\x1e\x1e\x26\x9f\xcf\xfb\x31\xdb\x91\x48\xb6\ \x72\xb8\x80\x78\x60\x14\x8b\x45\xa6\x4d\x9b\xc6\xbf\xfc\xcb\xbf\ \xa0\x69\x1a\xcf\x3d\xf7\x1c\x7d\x7d\x7d\xc4\x62\x31\x82\xc1\xa0\ \xef\xee\x6e\xdb\xb6\x0d\x4d\xd3\x26\xf8\xff\x9e\xcd\x39\x24\x21\ \x95\x28\x3f\xa0\x46\x98\xd6\x38\x85\x84\xd8\x85\xb4\x42\x48\x09\ \x8e\xb4\x70\x1d\x07\xc3\x34\x7c\xd1\xb7\xde\xe2\x07\x37\x35\x35\ \xbd\xd3\x7d\x3b\xe5\x72\x99\x72\xb9\xcc\xee\x6c\x17\x91\x73\x07\ \x45\xe8\xac\x7e\x42\x97\x75\x50\xf5\xe1\x7d\xd4\x7c\xf0\x00\xa1\ \x73\xfb\x11\x33\x93\x95\xeb\x58\x26\x96\x7b\x28\x9e\xf0\x24\xbd\ \xbe\xbe\x1e\x4d\xd3\xd0\x75\x9d\x97\x5e\x7a\xc9\xb7\x29\xba\xae\ \xfb\x52\x14\x0e\x87\x31\x0c\xc3\x07\xcf\xb3\x35\x63\x80\x34\xad\ \x5c\xb9\x52\xd6\xd7\xd7\xcf\x3f\x6e\x46\xdd\x8b\x3b\x4c\xd3\xa4\ \x54\x2a\x31\x30\x30\x40\x24\x12\x61\x68\x68\x08\xc7\x71\xe8\xef\ \xef\xf7\xe9\xe8\xd1\xd1\xd1\x0a\x97\x35\x65\x0a\x9f\xfd\xec\x67\ \x71\x1c\x87\x60\x30\x88\xaa\x1e\x72\x1f\xbd\x77\xeb\xb4\x97\xd8\ \xf0\xef\x2a\xa7\xfe\xdb\xa9\x00\x3c\xcf\x87\xde\xf6\xfa\xd9\x6c\ \x96\xf9\xf3\xe7\x77\x79\xee\xf0\xd0\xd0\xd0\xbf\x0d\x0c\x0c\xdc\ \xf1\x4e\x5e\xa1\x07\xa6\x29\x2d\x14\x14\xc8\x4c\xe6\x8e\xcb\xbf\ \x47\x7b\x7a\x33\xdf\x7b\xf9\xdf\x58\xbc\x64\x0e\xdd\x75\x9d\x64\ \x77\x69\xbe\x34\x18\x86\x41\x2a\x95\xf2\x8d\xf3\xf5\xd7\x5f\xcf\ \x9a\x35\x6b\xc8\x64\x32\xd4\xd5\x55\x9c\xbe\xd1\xd1\x51\xff\x1a\ \xf5\xf5\xf5\x98\xa6\x49\x38\x1c\x66\x68\x68\x08\x55\x55\x89\xc7\ \xe3\xe8\xba\x4e\x2e\x97\x03\x60\xee\xdc\xb9\xec\xda\xb5\xcb\x39\ \x2e\x80\x58\x96\x55\xf0\x5e\xa0\xa2\x28\x14\x8b\x45\x3e\xf3\x99\ \xcf\x50\x5d\x5d\xed\xe7\x3e\xc6\x7b\x22\xde\x9f\x93\xc9\x24\x81\ \x40\xc0\x07\xe4\x87\x3f\xfc\x21\x86\x61\xf0\xf1\x8f\x7f\xdc\xe7\ \xbb\x54\x54\x96\x2c\x59\x52\x51\x89\xd2\x21\x39\xf7\x00\x73\x16\ \x46\x70\x72\x2a\xd6\x70\x08\x7b\x28\x88\x35\x18\x44\x48\x05\xa1\ \xbb\xfe\x35\x86\x86\x86\x0e\xdb\x90\xdb\x96\x8d\xab\x3a\x08\x45\ \x70\xdd\x82\x4f\xb3\xbe\xf7\x49\x9c\x91\x69\x5c\x37\xf7\x4b\x9c\ \x7f\xea\x99\xdc\xfe\xe8\xe5\xbe\x6b\xab\xaa\xaa\x1f\x03\x79\x6c\ \xc3\x96\x2d\x5b\x2a\xe4\xe3\x98\x73\x32\x69\xd2\x24\xa4\x94\x08\ \x21\x28\x95\x4a\xfe\xc6\x54\x55\x95\x50\x28\x44\xb1\x58\x24\x12\ \x89\xf8\xa1\x80\x65\x59\xfe\xf7\x1f\x33\x20\xb5\xb5\xb5\xb7\x2c\ \x5d\xba\xf4\x2e\x8f\x2e\x39\xe1\x84\x13\x48\xa5\x52\x04\x02\x01\ \xd2\xe9\xb4\xaf\x82\xa4\x94\x28\x8a\xe2\xb3\x9f\xde\xee\x1a\xa3\ \x16\x5c\x65\x2c\x9a\x9a\x36\x6d\x1a\x8e\xe3\x50\x28\x14\x10\x08\ \x6c\x69\x51\x2c\x16\x29\x97\xcb\xf4\x59\x49\x5a\xa6\x3b\xc8\x48\ \x89\xc6\x49\xd3\x49\x4d\xed\x43\x0a\x07\xd3\x35\x51\x4a\x61\x86\ \x1e\x99\x5c\x49\x74\x1d\x01\x45\x62\x59\x16\xb6\x65\x21\x15\x89\ \xa2\x09\x1a\xaa\x9b\x39\x58\xfa\x3d\xc9\x24\x64\xdd\x7e\xea\x4e\ \x30\x08\x07\x23\x5e\xcc\x33\x41\xe5\x78\x2a\xb6\xa7\xa7\x87\x50\ \x28\x84\xeb\xba\xac\x5e\xbd\x9a\xad\x5b\xb7\xd2\xd9\xd9\xe9\x7b\ \x52\xaa\x5a\x61\x80\x6b\x6a\x6a\xc8\x66\xb3\xa8\xaa\x4a\x2c\x16\ \xf3\xd5\x9e\x17\xbb\x1d\x8e\x53\xf2\x8e\x80\x98\xa6\x39\xb5\xa9\ \xa9\xa9\xa6\xa7\xa7\x07\xd3\x34\xb9\xe7\x9e\x7b\xd8\xb3\x67\x0f\ \x37\xde\x78\x23\x3f\xf8\xc1\x0f\x48\x24\x12\xd4\xd6\xd6\x12\x0c\ \x06\x79\xe9\xa5\x97\x58\xb8\x70\x21\xbb\x76\xed\xa2\xa7\xa7\x87\ \xb9\x73\xe7\xb2\x6d\xdb\x36\xf6\xef\xdf\x7f\xfb\x82\x05\x0b\xbe\ \xf3\xec\xb3\xcf\x72\xd1\x45\x17\x51\x2e\x97\x7d\x95\x25\x74\xc5\ \xf7\xbe\x5c\xc7\x45\x55\x04\xa1\xec\x7c\x3e\x71\xd1\x9d\x68\x32\ \xca\x17\x9e\xf8\x08\x1f\x3e\xfb\x46\x7e\xb6\xfd\x6e\x2c\xcb\xac\ \xe4\x52\xfe\xc8\x83\x0d\x0c\x0c\x30\x6b\xd6\xac\x3b\xa3\xd1\xe8\ \x54\x00\xe9\xca\x29\xc9\xd1\x14\xd2\x75\x41\xb7\xe9\xfc\xa5\xc2\ \x77\x5f\xf8\x16\x69\xf7\x20\x46\x36\x88\x4d\x89\xee\x75\x9d\x74\ \x0d\xe6\x30\xcd\xb0\x0f\x48\x38\x1c\x66\xc6\x8c\x19\x0c\x0e\x0e\ \x62\x9a\x66\xaa\x54\x2a\xf5\x38\x8e\xb3\x44\x51\x14\x71\xd7\x5d\ \x77\x49\xd7\x75\x85\xb7\x01\x3d\x1b\x0b\xf8\x86\x1c\x20\x95\x4a\ \x11\x8b\xc5\xfc\x4d\x7a\xb8\x34\x8a\x76\x38\x06\xdd\x34\x4d\x0a\ \x85\x02\xaa\xaa\xf2\xa3\x1f\xfd\x88\x6f\x7f\xfb\xdb\xfc\xf4\xa7\ \x3f\x65\xfd\xfa\xf5\xa8\xaa\x8a\xae\xeb\x68\x9a\x46\x2a\x95\x62\ \xef\xde\xbd\xe4\xf3\x79\xca\xe5\x32\x89\x44\xc2\x53\x5f\x21\x55\ \x55\xd9\xb0\x61\x03\xaf\xbf\xfe\xba\xef\xab\x8f\xbd\x34\xdf\xdf\ \xb7\xb1\x71\x71\x59\xd6\x70\x19\x8f\x6c\xfb\x2a\xb3\xb4\xf3\xb9\ \xf6\xa4\xd5\xb4\xd4\x4c\x41\xa0\x54\xd4\x9c\x22\xde\xc9\xb3\xfa\ \xfb\xe9\xd3\xa7\xd7\x0b\x21\x28\x38\x65\x58\x38\x4c\x7d\x3c\x8c\ \xd3\x1f\xc1\xea\x0b\x93\x19\x4d\x22\x88\x11\xaa\x98\x65\x8a\x43\ \x92\x46\x71\x22\x1d\x66\x87\xcf\x38\x54\x57\x57\x13\x8f\xc7\x49\ \xa5\x52\x98\xa6\xf9\xec\x9e\x3d\x7b\x6e\x8a\xc7\xe3\xd7\x5a\x96\ \x35\xcb\xb2\xac\xaf\x5d\x70\xc1\x05\xac\x58\xb1\x82\x47\x1f\x7d\ \xd4\xb7\xab\x5e\x10\xe9\x51\x4a\x8a\xa2\x30\x3c\x3c\x4c\x34\x1a\ \x3d\x22\x5e\xeb\xb0\x00\xf1\xbe\xcc\x73\xf5\x4e\x3b\xed\x34\x5f\ \x2d\x8d\xb7\x1f\x42\x08\x7a\x7b\x7b\xfd\x3f\x1f\x38\x70\xc0\xf3\ \xbc\xd2\xfb\xf7\xef\xff\xab\xb1\xe8\x95\x50\x28\xf4\xf8\x89\x27\ \x9e\xa8\x7e\xf1\x8b\x5f\xe4\x73\x9f\xfb\x1c\xa6\x69\x56\xf2\x29\ \xaa\x8d\x10\x10\xd0\x22\x38\xae\x8d\x61\x9a\x64\x64\x8a\xae\x4c\ \xe2\x10\x85\x21\xf0\x77\xe6\xdb\x2d\x8f\x85\x05\x78\x23\xbf\x9f\ \xeb\x4f\xaf\xc1\xb2\x73\x94\x5a\x06\xa9\xd6\xc2\x08\x47\x45\x1a\ \x2a\xc5\x3d\x51\xf2\xdb\x62\x20\x2a\x3b\x3d\x95\x4a\xf9\xd7\x28\ \x95\x4a\xa4\x52\xa9\x09\xcf\x98\x4e\xa7\x7f\x01\x9c\xb8\x6a\xd5\ \xaa\xaf\xdd\x79\xe7\x9d\xe8\xba\x8e\x61\x18\x74\x75\x75\xb1\x74\ \xe9\x52\x7e\xf9\xcb\x5f\xf2\xbe\xf7\xbd\x8f\x2d\x5b\xb6\xb0\x67\ \xcf\x1e\x2e\xbd\xf4\x52\x86\x86\x86\x58\xbb\x76\xad\xbf\xa9\x17\ \x2c\x58\xf0\x66\x6b\x6b\xeb\xaa\x6c\x36\xbb\xe5\x98\x25\xc4\x33\ \x70\x93\x27\x4f\x66\x68\x68\xc8\xb7\x15\xde\x4d\xbb\xae\xeb\xff\ \xf2\x78\xac\xb1\x07\x7c\x42\xd7\xf5\xbd\xc3\xc3\xc3\xaf\x7a\xdf\ \xd9\xd2\xd2\x22\x9f\x7b\xee\x39\x5e\x7c\xf1\x45\x96\x2f\x5f\xce\ \x86\x0d\x1b\x2a\xbb\x2c\xe4\x32\xb4\xce\xe2\xf9\xf8\xd3\xc8\xc8\ \x28\xfd\xca\x1b\x18\x56\x89\xaa\x1a\x9d\x83\x43\x06\x85\xa2\xed\ \xdf\x53\x2c\x16\x3b\x77\xf1\xe2\xc5\x5f\x02\x84\x61\x18\x76\x5b\ \x5b\xdb\x57\x3c\xbe\xc9\xf7\x8e\x85\x44\x22\x59\x20\xae\x67\xc5\ \x7b\x4e\x21\x6d\xf6\xb3\x61\xdf\x6b\x64\x42\xfb\x29\x06\x6c\x2c\ \xcb\x44\x22\xd1\x34\xcd\x27\x32\x5d\xd7\x95\xaa\xaa\x0a\xc7\x71\ \x88\xc7\xe3\x24\x12\x89\xf1\xe8\x2b\x43\x43\x43\xec\xde\xbd\x9b\ \xe6\xe6\x66\x3c\x97\x7a\xe3\xc6\x8d\x00\xbc\xf6\xda\x6b\x94\xcb\ \x65\x74\x5d\xe7\xb5\xd7\x5e\xa3\xa1\xa1\xc1\xbf\x5f\xc3\x30\xa8\ \xa9\xa9\x89\x59\x96\xa5\x1f\xab\x97\x25\x6d\xdb\x46\x55\x55\x1e\ \x7e\xf8\x61\xa6\x4e\x9d\xca\x23\x8f\x3c\xc2\xce\x9d\x3b\x09\x85\ \x42\x24\x93\x49\xa2\xd1\x28\x83\x83\x83\x04\x02\x01\x62\xb1\x18\ \x23\x23\x23\x64\x32\x19\xd2\xe9\x34\x6d\x6d\x6d\x57\xbf\xdd\x2e\ \x7e\xf6\xd9\x67\xa9\xad\xad\x25\x97\xcb\xf9\x34\x45\xa9\x54\xa4\ \x2e\xb9\x08\x07\x0b\x91\xa9\xa1\xcf\x19\x22\x34\xbd\x8c\x99\x0d\ \xd0\xc8\x3c\x26\xaf\xa8\xe4\xb5\xa5\x25\x40\x61\x95\x10\xac\x1a\ \x8b\x69\x4a\x1e\x20\xe3\x25\x44\x00\x03\xfd\x79\xfe\xf3\x6f\x3e\ \xce\xc7\x7f\x7d\x36\x5f\x3e\xe7\x69\x6a\xec\x79\xa8\x35\x29\xbe\ \xb5\xe9\xab\x18\x86\x09\xa2\xc2\x59\x79\x2a\x54\xd3\x34\x31\x38\ \x38\xd8\x39\x38\x38\xb8\x4d\x08\xe1\x06\x02\x81\xb5\x6f\xdd\xa0\ \xab\x57\xaf\xc6\xb6\x6d\x42\xa1\xd0\x04\x35\x74\xf0\xe0\xc1\x09\ \x3f\x1f\x38\x70\xc0\xb7\x21\x85\x42\xe1\x0f\x3e\x7f\x54\x80\x28\ \x8a\x32\xc7\xb2\x2c\x54\x55\xa5\x54\x2a\x51\x2c\x16\x99\x3b\x77\ \x2e\x6f\xbe\xf9\x26\x4b\x96\x2c\x61\x78\x78\x98\xda\xda\x5a\xb2\ \xd9\x2c\xe5\x72\x99\x48\x24\xc2\x39\xe7\x9c\xc3\x33\xcf\x3c\xf3\ \x47\x2f\xae\x69\x1a\x5f\xfa\xd2\x97\x7c\x43\xe8\xc5\x0b\x05\xa5\ \x4c\xa9\x54\x42\xa4\x05\x42\x08\x76\xe8\xfb\x78\xef\x19\x35\xd8\ \xd6\x78\xcf\x4a\xe2\x18\x0a\x99\x17\xea\x30\x87\x03\x80\xfc\x03\ \xb0\x7d\x9a\x45\x07\xc7\x86\x80\xae\xa3\x29\x01\x10\x90\xc8\x0f\ \xf2\x46\xff\x03\x48\x57\x8e\xa9\xc0\x8a\x94\x37\x34\x34\xf8\x36\ \x40\x51\x94\x5f\x67\x32\x99\xd5\x6f\x17\x8e\x79\xae\xbc\xb7\xeb\ \x0f\x33\xed\xed\x7f\xff\xb1\x02\x32\xbd\xb6\xb6\xf6\x46\xc3\x30\ \xa4\xa6\x69\xe2\xee\xbb\xef\xa6\xb1\xb1\x91\xbd\x7b\xf7\xe2\xba\ \x2e\x83\x83\x83\x18\x86\x41\x38\x1c\xa6\x50\x28\x20\xa5\x64\x74\ \x74\x94\x5d\xbb\x76\xfd\x49\xee\xa9\x58\x2c\xe6\xa5\x94\xde\xb5\ \x83\xe1\x70\x58\x77\x1c\x07\xdd\x52\x71\xdc\x43\x2a\x47\x09\x09\ \x2c\xc7\x66\x45\xf4\x16\x16\xcf\x5c\xc0\x96\xe4\xe3\xe4\x92\x1a\ \xbb\xdd\xe7\x70\xb4\x18\x96\x09\x12\x39\xc1\xa6\xb8\xae\x2b\x7d\ \x03\x1a\x12\xc4\x27\x85\x28\x18\x65\x02\x21\x95\x9a\xaa\x5a\x4c\ \xa5\x88\x16\xd2\x40\xa9\x00\x22\x91\xbe\xfa\x6d\x6e\x6e\x66\x68\ \x68\x88\xb7\x2b\x4d\x02\x08\x04\x02\xed\x1d\x1d\x1d\x8d\xf3\xe7\ \xcf\x1f\x9a\x32\x65\x0a\x37\xdc\x70\x03\x8f\x3d\xf6\x98\x6f\x7b\ \xbc\x80\xd7\xdb\x60\x1e\xc3\xa1\xeb\xba\xcf\x8a\x1f\x2b\x20\x11\ \x21\x04\xb9\x5c\x4e\xd4\xd7\xd7\x33\x3c\x3c\xcc\xe0\xc0\x10\x20\ \x10\x02\x1f\xf1\x72\xb9\xec\x07\x54\xde\x36\x8e\xc5\x62\xa2\x54\ \x2a\xbd\x6d\xf4\x2c\x84\xf0\x2b\xe9\x66\xce\x9c\xf9\xa0\xaa\xaa\ \x1f\xbe\xfc\xf2\xcb\xfd\x00\xec\x90\x2b\x29\x49\x0d\x0a\xfe\xee\ \xe6\x9b\xb9\xe9\x67\x4b\xf9\x97\xb3\x1f\xa3\x18\x2f\x30\xd3\x6c\ \xe6\x27\xbf\x79\x02\xc3\x90\x9e\x0d\x08\x5d\x74\xd1\x45\x23\x80\ \x14\x8e\xa8\xb3\x2c\x89\xa2\xc0\x22\x3b\xc2\xf0\xc3\x0a\xd7\x3f\ \x74\x2d\x52\x09\x71\xfd\x7f\x5d\x83\x65\x5b\x04\xb5\x08\xdb\x5b\ \x7b\xa9\x8a\xc4\x7d\x4a\xdd\x23\x3f\xff\x18\x18\xe3\xf2\x22\x32\ \x16\x8b\xf1\xe2\x8b\x2f\xb2\x71\xe3\x46\x5a\x5a\x5a\xd8\xba\x75\ \x2b\xe1\x70\x98\xf5\xeb\xd7\xfb\x36\x31\x12\x89\xd0\xd2\xd2\xc2\ \xae\x5d\xbb\x18\x1d\x1d\xf5\x93\x74\xc7\xac\xb2\xa4\x94\xe8\xba\ \xce\xbe\x7d\xfb\x90\xae\xa4\x66\xb1\x4e\x24\xac\x92\xeb\xb7\x29\ \x0e\x39\x48\xf7\x6d\xd5\x9c\x28\x97\xcb\x9d\x8a\xa2\x7c\xf3\xed\ \x9c\x84\xb7\xb0\x00\xfa\x07\x3e\xf0\x01\xe6\xcc\x99\xc3\x07\x3f\ \xf8\x41\x6e\xbd\xf5\x56\x3f\xcf\x20\x10\x54\x05\xe3\xd8\xb2\x44\ \xbc\xaa\x8a\xe6\xda\xa9\x3c\xbf\xe3\xd7\x3c\xd1\x77\x1f\xb6\xd5\ \x88\x69\xb9\x50\xd9\xe1\xa2\xa6\xa6\x66\x92\x40\xd0\x35\x6d\x0f\ \xa7\x5d\x14\xc6\x18\xac\xd4\x55\xd9\x83\x01\x9c\xac\x06\x96\x8e\ \x5b\x52\x50\x75\x0d\x4d\x53\x29\xe5\x4d\x6c\x23\xe5\x25\xdd\x64\ \x34\x1a\x15\x23\x23\x23\x84\x42\xa1\x77\xe4\xf8\x1c\xc7\xe1\x95\ \x57\x5e\x21\x1e\x8f\xe3\xba\x2e\xfd\xfd\xfd\x7e\xa2\xca\x4b\xc8\ \x79\xec\x6f\x5d\x5d\x1d\x03\x03\x03\x68\x9a\xe6\x05\x91\xb1\xe3\ \x02\xc8\xec\xd9\xb3\x2b\x14\x40\xb2\x22\x9a\x51\x29\x89\xd4\xcb\ \x09\xa5\x3b\x9e\x97\x35\xb6\xe3\x7a\x06\x06\x06\xfe\xeb\x70\xe9\ \x8d\xb9\x73\xe7\xfa\x51\xed\x21\x75\x27\xb0\x5d\x13\x45\x68\x80\ \xa0\x64\x15\xd1\x54\x8d\xa0\x16\xc5\x71\x5c\x4c\xd3\xf2\x83\x39\ \xcb\xb2\x28\x38\x65\x6a\xa7\x29\x48\x5b\x25\x5a\x1f\x46\x99\x62\ \x61\xcc\x4f\xf8\x9b\x60\xe0\xa1\x49\x48\x5b\xf1\x3d\x41\x8f\x5b\ \x53\x55\x55\x74\x75\x75\x3d\xe0\xed\x11\x5d\xd7\x7f\xfd\xa7\xee\ \xd7\x75\x5d\x3e\xf9\xc9\x4f\xfa\xdf\x33\x7e\xed\xdb\x77\x28\x7f\ \xd6\xdf\xdf\xef\x7b\xa1\xf1\x78\x1c\xc7\x71\xa8\xaa\xaa\xfa\x72\ \x3a\x9d\x7e\xe1\x98\x00\x59\xb1\x62\x05\x97\x5d\x76\x19\x67\x9f\ \x7d\x36\xdf\xfb\xde\xf7\x68\x6d\x6d\xe5\xe4\x93\x4f\xe6\xf5\xd7\ \x5f\x67\xee\xdc\xb9\x64\x32\x19\x5a\x5b\x5b\x09\x87\xc3\xcc\x9c\ \x39\x93\x37\xde\x78\xe3\xb0\x29\xf2\x40\x20\xc0\x0b\x2f\xbc\xc0\ \xde\xbd\x7b\xe9\xed\xed\xf5\x19\x54\x21\x04\x85\xd6\x1c\x43\x46\ \x23\xff\xeb\xa5\x5b\x18\xcc\xea\x7c\xea\xb1\x4f\x60\x18\x36\x79\ \x27\x8e\x5d\x14\x44\x22\x87\xa4\xae\xa2\x1e\x25\xca\xeb\x93\x39\ \xf8\x86\xe0\xc1\x07\x7e\xc4\xfe\x9e\x2e\x7e\xbb\xf7\xa7\xfc\xed\ \xaa\x8f\x72\xf7\xba\x5b\x31\x4d\x0b\x69\x1f\x02\x42\xd7\x75\x9f\ \x4a\x1f\x19\x19\xf9\xc8\xe1\xde\x73\x3e\x9f\x27\x12\x89\x1c\x02\ \xc3\x01\xcb\x74\xc7\xee\x05\x84\x2a\x50\xd4\x31\x6d\x30\xf6\x91\ \xd1\xd1\x51\x5f\x3d\x1e\x8b\x84\xb8\xde\x2e\x88\xc7\xe3\x84\xc3\ \x61\x9f\x74\x0b\x04\x02\x2c\x5d\xba\x94\xee\xee\x6e\xaa\xab\xab\ \x7d\xa3\xa5\xeb\xfa\x3b\x5e\xf4\x2d\x2a\x2b\xa0\x28\x0a\x07\x0f\ \x1e\xf4\x8a\x06\x64\xb9\x5c\x16\x00\xe5\x62\x91\x69\x2b\x66\x92\ \xcb\xe5\x88\x69\x75\xa4\x67\x1c\xa0\x69\x46\x80\xaa\xb4\x8e\x93\ \x1d\xfb\x95\xd6\x70\x73\x1a\x62\xec\x49\xc2\xe1\x30\xe9\x54\x9a\ \xf5\x3d\xcf\xb2\xe9\xcd\x2e\x2e\x3e\xf9\x06\x1a\x63\xd3\x11\x28\ \x95\x58\xc7\xaa\x48\xd4\xbc\x79\xf3\xfc\x6c\xe6\xe1\x12\x95\x00\ \x35\x35\x35\x23\x1d\x1d\x1d\x4d\xa7\x9c\x72\xca\x40\x2a\x95\x42\ \x48\x70\x67\x0b\x96\x5f\x59\x43\x7e\xc0\xa1\x38\x6c\x93\x1b\x70\ \x28\x0e\xd9\x18\x19\x17\xcf\x24\x79\xef\xf0\x4f\xd9\xa8\x77\x04\ \x24\x1a\x8d\x2e\x07\xd8\xb6\x6d\x1b\x89\x44\x82\xe1\xe1\x61\x8a\ \xc5\x4a\xe9\xce\xee\xdd\xbb\xfd\xc0\xd0\x03\xcd\x75\x5d\x5e\x7e\ \xf9\xe5\x23\x4a\x26\x25\x93\xc9\x2f\x0e\x0d\x0d\x7d\x77\xcc\x8d\ \x9c\xbe\x60\xc1\x82\x87\x0f\x79\x23\x95\x0a\x96\x72\xb9\x4c\xca\ \xcd\x31\x75\xae\x89\xa8\xb2\x69\x9c\xd6\x44\xd9\xcd\x51\x72\x12\ \x28\x0a\xd8\x79\x95\xe1\x9f\x4e\xf6\x1f\x5c\x4a\x89\x57\xb2\x9e\ \x29\x8d\x92\x35\x12\x08\x45\x4c\x00\x24\x93\xc9\x70\xf5\xd5\x57\ \xf3\xf4\xd3\x4f\xfb\x31\xc8\xe1\xac\x4c\x26\x83\xae\xeb\x52\xd3\ \x34\x9a\x9a\x9a\x2a\x36\xa2\x7f\x80\x8e\x07\x15\x2c\xc7\x45\x28\ \x3a\xae\xab\xa2\x11\x40\x09\xbb\x7e\x4e\xc4\x53\xe5\xc7\x04\x88\ \xae\xeb\x7f\xe3\x65\xf8\xfa\xfa\xfa\xfc\xa4\xcc\xf8\xdf\x8f\x75\ \x15\x0a\x85\xbd\xc0\xde\xb1\x1f\xe7\x7b\x8c\x80\x10\x02\xa5\x50\ \x79\x89\xa6\x61\x62\x2b\x0e\xaa\xaa\xd0\xa2\xae\xe2\xef\x56\xde\ \x4a\x4d\xa0\x9e\x0f\x7c\xef\x7c\x6e\xbb\xea\x56\x7e\xb1\xfe\xfb\ \x13\xe8\x73\xdb\xb1\x59\x30\xe9\x34\x92\x53\x54\x06\x72\xdd\x04\ \xd5\xd3\x51\x50\x30\xcd\x32\xae\x55\x89\x83\x32\x99\x0c\x4f\x3f\ \xfd\xb4\xef\x96\x1e\xe9\x52\x14\x85\x07\x1e\x78\x80\xe1\xe1\x61\ \x84\x10\x3c\xfe\xf8\xe3\xc4\xe3\x71\x3a\x3b\x3b\x69\x6e\x6e\x66\ \xcb\x96\x2d\xcc\x9a\x35\x0b\xc7\x71\xd8\xb7\x6f\x1f\xcd\xcd\xcd\ \x74\x74\x74\x1c\x1b\x97\x25\xa5\x54\x63\xb1\x18\x7b\xf6\xec\x41\ \x08\x41\xf4\x7c\x9d\x15\x17\xd5\x20\x01\x23\x27\x49\xee\x35\x18\ \x6d\xb7\xc8\x74\x98\x98\x85\x43\xf9\x90\x9a\x9a\x9a\x11\xe0\x7d\ \x47\x5b\xa6\xfa\xd3\x9f\xfe\x94\x42\xa1\xc0\xe7\x3f\xff\x79\xbf\ \x30\xc1\x52\x4d\x84\x90\x9c\x3c\xe5\x6c\x7e\xd7\xfe\x00\xa9\xce\ \x06\xae\x58\xf8\xb7\xcc\xa8\x59\x84\xed\x54\xaa\x60\x3c\x09\xe9\ \xee\xee\xe6\x6b\xff\xfb\xbb\x95\xc4\x56\x29\xc5\xc6\x9f\xec\xe2\ \xc0\x20\x64\x53\x79\x8f\x02\x92\x8a\xa2\x08\xaf\x8e\xea\x9d\x76\ \xed\xdb\xd9\x55\x8f\x5d\x9e\x3f\x7f\x3e\x5d\x5d\x5d\x8c\x8c\x8c\ \x78\xcf\xce\xc9\x27\x9f\xcc\xe6\xcd\x9b\x19\x19\x19\x61\xd1\xa2\ \x45\xa4\x52\x29\x46\x47\x47\xd1\x34\xed\xd8\x24\xc4\x8b\xaa\x3d\ \xef\xc9\xd9\xa9\xf1\x66\x47\x96\x7c\xbf\x83\x55\x94\x28\x9e\xf1\ \x52\x55\x54\x55\xfa\xb9\x91\x40\x20\xe0\x0e\x0c\x0c\x1c\x55\xd3\ \xca\xbc\x79\xf3\x68\x6e\x6e\x66\x74\x74\x94\xe6\xe6\xe6\x4a\x85\ \xbd\x65\xe2\xe0\x00\x02\x4d\x09\x60\x4b\x0b\xdb\xb1\x18\x48\x0f\ \xd3\x95\x0e\xa3\x09\xdd\x8f\x5f\x34\x4d\x03\xcd\xa1\xa4\xa6\x70\ \xb2\x1a\x8a\xd4\xc9\xe6\xb2\xc4\xf4\x38\xb9\x5c\x07\x8a\xa2\xa0\ \xeb\xba\x28\x14\x0a\x3b\x37\x6d\xda\xf4\x4f\x42\x08\x55\x51\x94\ \x23\x2e\x91\x54\x55\x95\xaf\x7c\xe5\x2b\xcc\x9f\x3f\x9f\xcd\x9b\ \x37\xa3\xeb\x3a\x1d\x1d\x1d\xb8\xae\xcb\xab\xaf\xbe\x8a\xa6\x69\ \x24\x93\x49\xda\xdb\xdb\xc7\x9b\x00\xa4\x94\x35\xc7\x22\x21\x48\ \x29\xf9\xd1\x8f\x7e\xc4\xac\x59\xb3\xb8\xf7\xde\x7b\x2b\x65\x93\ \x73\x4a\x7e\x92\xaa\x58\x2c\x22\xa5\x64\xd2\xa4\x49\x74\x75\x75\ \x91\xc9\x64\x8e\xb8\x3a\x64\x42\x85\x79\x5b\x1b\x2f\xbd\xf4\x12\ \x2d\x2d\x2d\x1c\x38\x70\x80\x78\x3c\x5e\x49\xc3\x62\xa3\x6b\x21\ \x52\xc6\x20\xd3\xa7\xcc\xa3\x7e\x5a\x1d\x9b\x7a\xba\xa9\x8d\x4c\ \x1e\x8b\xba\x0f\xb9\xc0\x7a\x5c\x52\xf7\xfe\x01\x46\x9e\xae\xc3\ \xe8\xad\xd0\x2b\x8e\xe3\xf8\xe5\x3b\x63\xbf\x27\x8b\xc5\xe2\xf3\ \x47\x73\x8f\x63\x84\xab\xab\xeb\xba\xb2\x73\xe7\xce\x4a\x0b\x85\ \x00\x55\x55\x90\x12\x62\x91\x18\x96\x6b\x55\x1c\x2c\x81\x1f\xab\ \x8d\xd5\x78\x2d\x38\x26\x09\x99\x37\x6f\x1e\xb3\x67\xcf\xe6\x84\ \x13\x4e\x60\xd9\xb2\x65\x6c\xdd\xba\x95\x65\xcb\x96\xf1\xe4\x93\ \x4f\x72\xf1\xc5\x17\xb3\x7b\xf7\x6e\x36\x6c\xd8\xc0\x99\x67\x9e\ \x49\x73\x73\x33\xcf\x3e\xfb\xec\x9f\xa4\xc7\xdf\x69\x45\x22\x11\ \xbe\xf5\xad\x6f\x21\x84\x60\x68\x68\xa8\x52\x01\x68\x98\xd8\xaa\ \xcb\x86\xff\x1e\x64\x93\xf9\x55\xe6\x35\x2e\xc1\x95\x2e\x3b\xfa\ \x36\xd1\xfa\x68\x1b\x1d\x23\xbd\x14\x86\x0e\xbd\x2c\x4d\x53\x59\ \xf7\xb5\x61\x8c\xd1\x51\x9c\x92\x64\xc6\x8c\x19\xe8\xba\xce\xd1\ \xaa\xa8\xb7\xf1\x0c\x87\x76\xee\xdc\x79\xf1\xac\x59\xb3\x5e\x28\ \x95\x4a\xb8\x2a\x4c\xbd\x21\xca\xc9\xcb\x63\xd8\x8e\x43\x53\x78\ \x1e\xc3\x46\x3b\x8e\xe1\x72\xf0\xd5\x12\xfb\x9e\xc8\xa3\xa8\x15\ \xa7\x27\xe2\xf9\xea\x47\x0b\x48\x67\x67\x27\xbf\xfc\xe5\x2f\x39\ \xe5\x94\x53\x78\xe5\x95\x57\xc8\xe5\x72\xf4\xf4\xf4\x60\x18\x06\ \x4f\x3e\xf9\xa4\x5f\x99\xf1\x9b\xdf\xfc\x86\x40\x20\xe0\xa7\x3e\ \x8f\x72\x8d\x0e\x0d\x0d\x7d\x43\xd7\x75\x6b\xec\xc1\x3f\x98\x4a\ \xa5\x66\xe4\xf3\x79\x2c\x53\x32\x2b\x3c\x83\x19\x33\xa6\x57\xa4\ \x54\x1a\x2c\xbb\x7e\x16\x55\x91\x32\x0d\xc3\x27\x63\x0d\x06\x71\ \x46\x2b\x69\x27\xa1\x48\x50\x24\x4c\x83\x5c\x2e\xc7\xc8\xc8\x08\ \xd1\x68\x94\x78\x3c\xce\x69\xa7\x9d\xc6\xcb\x2f\xbf\x7c\x5c\x1c\ \x12\x3f\xcd\x2b\xa1\xd4\x6a\xb3\x63\x7f\x8e\x7c\xaf\x83\x6d\x6c\ \xc4\x2e\x4a\xec\x72\xa5\x3f\x51\x0f\x68\xbe\x23\x70\xac\xd4\x49\ \x34\x1a\x8d\xf2\xf4\xd3\x4f\xf3\xc4\xe3\x4f\x1c\xf2\x46\x84\xc7\ \x49\x29\x7e\x4f\x8b\x50\x2a\x89\xac\xea\xea\x6a\x69\xdb\xf6\xd1\ \xea\xac\x91\xde\xde\xde\xff\xed\xfd\x50\x5f\x5f\xbf\x5c\x51\x94\ \x19\xaa\xa2\x80\x03\xae\xe3\x92\xcf\xe7\x11\xc0\x66\xab\x8d\x4b\ \x5a\xa2\xb8\x4a\x8e\xe0\xd4\x22\x8a\x2c\xa1\x6a\x0a\x76\x5a\xa7\ \xbc\x2f\x46\x7e\x5b\xd4\x67\x01\xbc\xea\xc1\x7c\x3e\x5f\xc9\xe5\ \x8b\xe3\xd3\x31\x67\x59\x16\xb7\xdc\x72\x0b\x00\x2f\xae\x7d\x11\ \x51\x56\xd0\xb4\x02\x42\x17\x18\xba\x81\xac\x96\x7e\x6c\x94\x48\ \x24\x0e\x2b\x6b\xa8\xbd\x83\x41\xaf\xf7\x92\xf9\xae\x0a\x93\xe6\ \x05\xd0\x75\x81\xb4\x75\xe6\x4e\x5e\x48\x47\x6a\x07\x28\x50\x4e\ \x39\xa4\xbb\x7c\x1d\x2e\x6c\xdb\xee\xe0\xf8\x2c\x25\x10\x08\x30\ \x7d\xe1\xc2\x4a\x46\xcf\x1a\xa3\xd6\xbd\x88\x58\x11\xac\xac\xbe\ \x85\xf7\x9d\x7e\x2d\x3b\x86\x5f\xe6\x85\x2d\x2f\xa1\x35\x0f\xd3\ \xd6\x37\xe0\x13\x85\x5e\xc2\xca\x8b\x05\xd6\xaf\x5f\xef\xf1\x55\ \xc7\xbc\xce\x3e\xfb\x6c\x2e\xb8\xe0\x02\xe6\xcc\x99\x43\xa1\x50\ \xa0\xb7\xb7\x97\x8b\x2f\xbe\x98\xc7\x1f\x7f\x9c\xf3\xce\x3b\x8f\ \x62\xb1\xc8\xab\xaf\xbe\xca\xfc\xf9\xf3\x89\xc5\x62\x3c\xf5\xd4\ \x53\x7e\x09\xee\x51\x01\xa2\x28\x8a\xa8\xaf\xaf\xa7\x90\x2f\x60\ \x45\x24\x4b\x3f\x52\x47\x75\x8d\x86\x74\x25\xc9\xb6\x7e\xea\xf6\ \x55\x31\xbc\xdd\xc0\x1a\x75\x88\xc5\x82\xbe\x27\x31\x34\x34\xf4\ \xe6\xf1\x78\x60\xd7\x75\xb9\xfd\xf6\xdb\xa9\xae\xae\xe6\x8a\x2b\ \xae\xe0\xa2\x8b\x2e\xaa\xe4\x20\x24\x10\x82\x4c\xba\xc4\x65\x67\ \x5c\xcf\x2d\xbf\x3c\x93\x9f\xff\xcd\x2e\x4e\x08\x2d\x25\xe1\xec\ \x67\xf7\xfa\x3b\x30\x0c\xcd\x0f\x5a\xcb\xe5\x32\xd1\x68\x94\x60\ \x30\x78\x58\xae\xe7\xe1\xae\x6d\xdb\xb6\x31\x75\xea\x54\x06\x06\ \x06\x50\x55\x95\xda\xda\x5a\x76\xec\xd8\x81\x10\x82\x8e\x8e\x0e\ \xbf\x16\x78\xe7\xce\x9d\xac\x5c\xb9\xf2\xd8\xe9\x77\x8f\x7b\x29\ \x95\x4b\xe8\x8e\xce\x9b\x77\xa7\x91\x16\x58\xc5\x43\x39\x74\xa1\ \x4c\xd4\x8d\x47\x42\x9b\x1c\xce\x32\x4d\x93\xfa\xfa\x7a\xbf\xe2\ \xdc\xb2\xac\x4a\x27\x6f\x08\x0c\xc3\x25\x14\x0c\xe0\x52\xa9\x3f\ \xeb\x1e\x3a\xc8\xc6\xfc\x63\x28\xa8\x13\x92\x47\x1e\xf7\xd4\xd6\ \xd6\x36\xb7\x58\x2c\x8e\x00\xb2\xa1\xa1\xc1\x38\x1e\x36\xe4\xea\ \xab\xaf\x46\xd3\xb4\x3f\x48\x56\xb5\xb7\xb7\xfb\xc4\xa2\x94\x92\ \x5f\xfc\xe2\x17\x95\xf7\x75\xac\xf4\xfb\x25\x97\x5c\xc2\x87\x3e\ \xf4\x21\x5c\xd7\xe5\xc9\x27\x9f\xa4\xab\xab\x8b\x68\x34\xca\xc1\ \x83\x07\x89\xc5\x62\x54\x55\x55\x71\xe0\xc0\x01\x72\xb9\x1c\x8d\ \x8d\x8d\xf4\xf4\xf4\x1c\xb7\x1d\x28\x84\xe0\x87\x3f\xfc\x21\xcb\ \x96\x2d\xe3\x3f\xfe\xe3\x3f\x0e\x05\x7f\x08\xa4\x0b\xf1\x78\x88\ \x64\x26\x4d\x4d\xa0\xbe\xe2\x56\x4a\x9b\x80\x88\x20\x5d\x89\x65\ \xd9\x7e\xad\x98\x57\xd6\xa9\xeb\x7a\xce\x75\xdd\x0c\x70\x44\xfc\ \xd5\x1f\x91\x5e\x73\x7c\xbe\xc7\x09\x40\x75\x5c\xc5\x71\x5d\x26\ \x87\x67\x50\x72\xd3\x14\xac\x2c\x42\x48\x8c\xac\x8b\x5b\x92\x7e\ \xf6\xf0\xa8\x01\x19\x6b\xc0\xa4\xb5\xb5\x95\x1b\x6e\xb8\x81\x6d\ \xdb\xb6\x51\x2a\x95\xa8\xab\xab\x63\xd9\xb2\x65\x6c\xdc\xb8\x91\ \x60\x30\x48\x38\x1c\x26\x93\xc9\x1c\xf7\xb6\x66\x29\xa5\x5b\x55\ \x55\x25\x77\xec\xd8\x51\x29\x59\xf0\x4a\x50\x25\x48\x21\x89\x45\ \xc2\x3c\xbe\xfb\x7e\xbe\x75\xe5\x6f\xf8\xcd\xfe\x87\x78\xa9\xe3\ \x65\xce\x3a\xe9\x74\x5e\x73\x37\x62\x18\xa6\xcf\xe8\x7a\x54\x8c\ \x6d\xdb\xb3\xea\xeb\xeb\x03\xa3\xa3\xa3\x3d\xc7\x7a\x6f\xb6\x6d\ \xb7\x09\x21\x2a\xc5\x82\x08\x46\x96\x48\xfe\xee\xf6\x66\x24\x2e\ \x51\x33\x42\x50\x0f\x72\x70\xb8\x80\x55\x90\xbc\x7e\x57\x0a\xe9\ \x54\x34\xce\x31\xb9\xbd\x42\x08\xbe\xf9\xcd\x6f\x72\xfb\xed\xb7\ \xf3\xc9\x4f\x7e\x92\xb6\xb6\x36\x5c\xd7\x9d\xd0\x5f\x38\xd6\x9f\ \x8d\x94\x92\x9e\x9e\x9e\xe3\x0a\x48\x2a\x95\xba\xe8\xf9\xe7\x9f\ \xa7\xa5\xa5\xa5\x7d\xce\x9c\x39\xb3\xb3\xd9\x6c\xa5\x6e\x58\x28\ \x14\x6a\x24\x25\x33\xca\x7e\xf9\x1c\xdf\x79\x56\x67\xd5\xe9\xa7\ \x90\x50\x76\xf0\xcc\xbe\x5d\x0c\xb5\xe5\x48\xa5\x2a\x01\x6b\x28\ \x14\xa2\xa5\xa5\x85\x52\xa9\xc4\xb5\xd7\x5e\xfb\x7a\x5b\x5b\xdb\ \x86\x75\xeb\xd6\xad\x3c\x1e\x0e\x87\xef\xfa\x0a\x85\xba\x83\x92\ \x7d\x4f\x15\x18\xda\x6e\x90\xef\xdb\x38\x41\x35\xa9\x42\x03\x8d\ \xb7\xcd\x9f\x1c\xb1\x0d\x89\xc7\xe3\xdc\x77\xdf\x7d\x7e\xc2\xc8\ \x2b\x34\x00\xd0\x35\x1d\x5d\x3b\xe4\x0a\x7b\xe5\xa3\xfb\xf7\xef\ \x9f\x71\x3c\xed\x88\x57\x2d\xef\xbd\x00\x81\x40\x35\x5c\xb4\x30\ \xe4\x7b\xe1\xf5\xce\x9f\xf3\xe4\x4f\x7e\x4c\x79\x44\x62\x95\x5c\ \xca\x69\xd7\x8f\x85\x54\x55\x25\x9d\x4e\x13\x0a\x85\x18\x19\x19\ \x39\xa2\x5e\x8d\xc3\x21\x18\x2f\xbc\xf0\x42\x6e\xbc\xf1\x46\xbe\ \xf5\xad\x6f\xa1\xf6\xa9\x10\xcc\xd1\x38\x1b\xbf\x7f\xbf\x5c\x2e\ \x53\x55\x55\x45\x2a\x95\xc2\xeb\x8b\x3f\x6a\x40\x62\xb1\x98\xdc\ \xb4\x69\x53\xa5\x92\x23\x06\x0b\xcf\x8f\xa1\x07\x04\x4a\xa9\x9e\ \x0b\x16\x5f\xca\xef\x3a\x1f\x41\x0b\xa8\x8c\xee\x33\x19\xd8\x5c\ \xf6\x12\x4e\x52\xd7\xf5\x29\xc7\x13\x10\xd7\x75\x1d\x2f\x69\xa5\ \xaa\x2a\x8b\x17\x2f\xa6\xb3\xbd\x83\xd7\xfe\xa9\x5c\xd9\x1b\x0a\ \xa0\x54\x28\x12\xe1\xba\x84\x42\xd2\xa7\x2a\xbc\x11\x18\x63\x3d\ \x7f\xc7\xb5\x91\xb4\x58\x2c\xf2\xe9\x4f\x7f\x9a\x54\x2a\xc5\x27\ \x3f\xf9\x49\x1e\x7a\xe8\x21\x4e\x5f\x79\x3a\xdd\xdd\xdd\xcc\x9b\ \x37\x8f\xdf\xfe\xf6\xb7\xac\x5c\xb9\x12\x5d\xd7\xc9\x66\xb3\xec\ \xd8\xb1\xc3\xaf\x9a\x3f\x2a\x40\x42\x63\x4f\x66\xdb\x36\xb2\xda\ \x65\xc6\x39\x35\x68\x08\xac\xb2\xc1\xeb\x23\x3f\x43\xb5\xc3\x24\ \x5a\x0d\x92\xfb\x2b\xc1\xcf\x98\xdb\x2b\x86\x87\x87\x8f\xc9\xaa\ \xc7\xe3\xf1\x96\xb9\x73\xe7\x1e\x08\x04\x02\x15\x4f\x4f\x51\x71\ \x84\x4d\xa9\x54\xe2\xdb\xdf\xfe\x36\x4d\x4d\x4d\x24\x12\x09\x7e\ \xf7\xbb\xdf\xf9\x05\x04\x00\x23\x23\x23\x4c\x9d\x3a\x95\x64\x32\ \xc9\xc8\xc8\x08\xaa\xaa\x92\x4c\x26\x09\x85\x42\x94\xcb\x65\x02\ \x81\xc0\x71\x05\x24\x14\x0a\xb1\x63\xc7\x0e\x66\xcf\x9e\xcd\x0b\ \x2f\xbc\xe0\xf7\xd0\x8c\x8e\x8e\xfa\x95\x90\x83\x83\x83\xc4\xe3\ \x71\xbf\x78\xf0\x9d\x58\x8c\x77\xb4\x21\x9e\x1b\x5b\x9d\x83\x0d\ \x77\x64\xdf\x32\xaa\xa8\xa2\x46\x82\x11\x7d\x82\x18\x1f\x87\x9d\ \x17\x98\x3d\x7b\x36\xb6\x6d\xa3\x0a\x95\x56\x75\x3f\x67\xdd\x10\ \x64\xfd\x7f\x38\xbe\x2b\x3c\x6f\xde\x3c\x1e\x7b\xec\x31\x9a\x9b\ \x9b\xa9\xad\xad\x65\xde\xbc\x79\xdc\x73\xcf\x3d\x68\x9a\xc6\xc2\ \x85\x0b\xd1\x75\x9d\x5f\xff\xfa\xd7\x7e\x56\xd0\xab\x5e\x3f\x9e\ \x80\x84\xc3\x61\xbe\xfa\xd5\xaf\x4e\x50\x43\xad\xad\xad\x00\xec\ \xdf\xbf\xdf\xa7\xe8\xc7\xab\xde\x63\x02\x44\x4a\xc9\x3f\xfe\xe3\ \x3f\x32\x77\xee\x5c\x6a\x6b\x6b\x79\xe2\x89\x27\x38\x78\xf0\x20\ \x9a\xa6\xf9\x85\xd4\x73\xe7\xce\xa5\xbd\xbd\x9d\x44\x22\x41\x73\ \x73\x33\x07\x0e\x1c\x38\x2e\xee\xae\xd7\x68\xa3\x09\x95\x4c\x3c\ \x03\x72\x32\x91\x48\x84\xaf\x7f\xfd\xeb\x9c\x7a\xea\xa9\x7e\xed\ \x97\xc7\x24\xe8\xba\x4e\xb1\x58\x64\xd7\xae\x5d\x7e\x4f\xbc\xe7\ \xf7\x8f\xa7\x2c\x8e\x17\x20\xf1\x78\xfc\x1b\x5e\x40\x08\x20\x15\ \x89\xa6\x09\x5c\x17\xa2\xa1\x28\x05\x23\x57\x69\x10\x12\xe0\xda\ \x87\x18\xdf\x77\xba\xbe\xf6\x4e\x5c\xcd\xfc\xf9\xf3\xc9\xe5\x72\ \x5c\x7a\xe9\xa5\xfc\xfe\xf7\xbf\x67\xce\x9c\x39\xd4\xd7\xd7\x33\ \x73\xe6\x4c\x1e\x7a\xe8\x21\x74\x5d\x67\xd2\xa4\x49\x78\xcd\xa0\ \xc7\xc3\xcb\x1a\x3f\xa1\x47\x52\x29\x42\x28\x17\x25\xf9\xb4\x41\ \x44\x53\x59\xbb\xb6\x52\xdd\xa9\xab\x41\x14\xad\x52\x23\xe6\x35\ \x00\x79\x76\xc2\x8b\xc8\xbd\xde\x72\x2f\x4d\x6b\x59\xd6\xa4\x50\ \x28\x74\x9d\x10\x22\x00\x88\xba\xba\xba\x57\xfb\xfa\xfa\xba\x8e\ \xc2\xae\x4d\xaf\xaf\xaf\xaf\xd8\x04\x45\xa0\x9d\xaf\x73\xe9\xb5\ \x93\x28\x96\x0d\x2e\x3b\xf1\x66\xb6\x8c\x3e\x45\x62\x28\x49\xae\ \xdf\x61\xc3\x37\x93\x3e\xcb\x1c\x8d\x46\x87\x8f\x1a\x90\x60\x30\ \xc8\xbd\xf7\xde\xcb\xe7\x3e\xf7\x39\x3e\xf6\xb1\x8f\xd1\xdf\xdf\ \xef\x8b\xbd\x37\xdb\x24\x95\x4a\x61\x59\x16\xa5\x52\xc9\xcf\x85\ \xc8\xb1\xc8\xf0\xad\x0d\x34\x47\x0a\x88\x61\x18\x38\x28\xa8\xaa\ \x42\x6f\xa7\xc1\xdd\xf7\x7e\x95\x6f\x3c\xfb\x2f\x7c\xe1\xfc\x2f\ \x13\x8f\xc4\xf9\x9f\xad\x5f\xa4\xfd\x37\x39\x8c\x11\xc5\xaf\xec\ \x38\xe1\x84\x13\x68\x6c\x6c\x64\xfb\xf6\xed\xd4\x35\x55\x71\xc2\ \xcc\x46\x96\x4f\x5a\x86\xea\xea\x15\x07\x40\x30\x47\x22\x1f\xf3\ \xd2\xd0\x3f\xfc\xe1\x0f\xff\x06\xe8\x3a\x8a\x7b\x94\xe3\x55\xb4\ \x18\x81\xe1\x5d\x65\x12\x7b\x2d\xbe\xfa\xdd\x7b\x49\xee\xb3\x70\ \x4d\x89\xa2\x0b\x14\x4d\xf1\x35\x8e\x10\x42\x39\x26\x1b\x92\x48\ \x24\xb8\xfd\xf6\xdb\x0f\xeb\x26\xbd\x1e\x43\x21\xc4\xa2\xa6\x43\ \x9e\x9f\xf6\x00\x00\x16\x56\x49\x44\x41\x54\xa6\xa6\x53\x06\x06\ \x06\xb6\x1d\x43\xe0\x55\x01\x5d\x2a\xa8\x42\x05\x14\x96\x2e\x3b\ \x85\x86\xb6\x2a\x96\xaf\x38\x8d\x29\xb5\x4d\xac\x29\xa9\x54\x6d\ \x8c\xa0\xe4\x85\xaf\xd3\x67\xcc\x98\xe1\x79\x88\x4c\x3a\xdd\xa5\ \xf9\xec\x34\xd2\x4d\xe3\x00\xc6\x40\x00\xa3\x2d\x42\xb9\x33\x82\ \x10\x15\xde\x4d\x55\xd5\xa3\x76\x40\x54\x55\x65\xe1\xc2\x85\x9c\ \x74\xd2\x49\x6c\xd8\xb0\x81\x81\x35\x15\xa3\x1e\x70\x1c\x26\x37\ \xba\x7e\xac\xe6\x6d\x62\x6f\xb0\xdb\x51\x03\x32\x3c\x3c\xdc\xe5\ \xba\xee\x5c\xaf\x80\xa0\xe9\xac\x30\x91\x88\x82\xb4\x75\xde\x77\ \xd2\x2d\x3c\xb3\xef\x87\xd8\x18\xd8\x86\xe4\xc0\xef\x8b\x7e\x0a\ \xb5\xaa\xaa\x2a\x52\x2c\x16\xe3\x47\xf2\x70\x53\xa6\x4c\x79\x5f\ \xb1\x58\xbc\x10\x70\xa5\x94\xf1\xce\xce\xce\x8a\xee\x97\x82\xb2\ \x61\x32\xd0\x53\xe2\xab\x89\x6f\xb2\xa7\x6d\x98\x3b\xb6\xfd\x2b\ \xb1\x50\x35\x1b\x0e\x1e\xc4\xee\x8b\xa2\x58\x41\x7f\x07\xb6\xb6\ \xb6\xfa\x6d\x69\x81\x62\x33\x77\x5e\xf4\x23\x36\xf6\xfe\x96\x1f\ \xbc\xf8\x9f\xcc\x9c\x51\xc7\x50\x39\x4f\x76\x77\xa5\xb6\x57\xd7\ \xf5\x63\xa2\xe2\x83\xc1\x20\xdf\xfc\xe6\x37\x89\xc5\x62\x34\x35\ \x35\xb1\x63\xc7\x0e\xce\x3d\xf7\x5c\xd6\xac\x59\xc3\xca\x95\x2b\ \x69\x6b\x6b\x43\x08\xc1\xac\x59\xb3\xc8\x64\x32\xbc\xf2\xca\x2b\ \xc7\xc6\xf6\x5a\x96\xd5\x16\x0c\x06\x2f\xf6\xf2\xd5\xd3\x2f\x09\ \x13\x8f\x6b\xe4\xfa\x6d\x7e\x33\x70\x1f\xb6\x22\x28\x0c\x38\xa4\ \xbb\x0f\x19\x4d\x5d\xd7\x7d\x37\xf4\x08\x49\xc4\x5b\xaf\xbb\xee\ \xba\xf3\xa5\x94\xb8\x48\x32\x55\xa3\x34\x4d\x0f\xe0\x66\xbc\xfa\ \x2b\x9d\x74\x22\xc7\xa9\x0d\xe7\x60\x16\x6d\x92\xc5\x24\xa7\x37\ \x5d\xc9\xb3\x5b\x9f\x21\x18\x74\x7c\x09\x55\x14\x05\xe9\x4a\xa4\ \x25\xb8\x76\xf9\x87\xf8\xef\x0d\xff\xca\xf2\xd8\x87\x58\xd9\x70\ \x23\x2b\x17\x2c\xe0\x3b\xad\x5f\x99\xd0\xfb\x7e\xb4\x80\x48\x29\ \x9d\xf1\x05\xe5\x9e\x93\xe3\xb9\xd9\x5e\xc7\x59\x77\x77\x37\x81\ \x40\x80\xda\xda\x5a\x7f\x9c\xd3\xb1\x90\x8b\x0a\x40\x75\x75\x35\ \xb6\x6d\xb3\xe3\x6b\x45\xac\x9c\x44\x68\x20\x14\x10\xaa\x57\x81\ \xa1\xa2\x69\x87\x22\xe3\xa3\x1c\xab\xa4\x27\x93\x49\x5c\xd7\x25\ \x63\x17\x99\x73\x45\x06\x5b\xad\xa8\x7d\x29\x6c\x74\x4d\x85\xa4\ \x82\x71\x20\x4a\xfe\x8d\xb1\xe1\x30\x63\xde\xd4\xf8\x12\xa0\x48\ \x38\x4c\x32\x98\xe3\xcc\x8f\x45\x38\xff\xfc\x0b\xf8\xd1\xce\xe7\ \x18\x4a\x8d\xb0\xb7\x7f\x27\xc5\x9a\xed\xa8\x54\x6a\x6c\x85\x7a\ \x74\xe3\x93\x00\x1a\x1b\x1b\x4f\x94\x52\xae\x08\x85\x42\x5c\x73\ \xcd\x35\xc4\x62\x31\x7f\x13\x6e\xdd\xba\x15\x45\x51\xd8\xb3\x67\ \x8f\x5f\xf4\x31\x30\x30\xe0\x17\x18\x1e\x2b\x20\x9c\x7c\xf2\xc9\ \x7c\xe9\x4b\x5f\xc2\xb6\x6d\x1e\x7e\xf8\x61\x0e\x1c\x38\x30\x61\ \x8e\x47\x3c\x1e\x67\x70\x70\xd0\x8f\x46\xbd\xc1\x34\x47\x9b\x81\ \x73\x5d\x17\xcb\xb1\x51\x84\x42\xba\x27\xcc\x23\x7f\xff\x3b\xfa\ \x0b\xfb\xb9\xe3\xb7\x7f\xc7\xec\xc6\x79\x74\x96\xdb\x30\xca\x21\ \x14\xfd\xd0\x44\x37\xdf\xf5\xf4\x8a\xf6\x14\x85\x40\x40\xc7\xb2\ \x0c\x34\x25\x88\xaa\x68\x04\xb4\x20\x21\xad\x42\x85\x1b\xa6\x81\ \xa2\x8a\xa3\x9e\xc7\x55\x2a\x95\x5a\x9a\x9b\x9b\xc3\x85\x42\x81\ \xaa\xaa\x2a\x9f\x32\x1a\xbf\xfe\x58\xb1\xa0\x17\x30\x1e\x35\x20\ \x2b\x56\xac\x60\xf7\xee\xdd\xfc\xf5\x5f\xff\x35\x67\x9c\x71\x06\ \x42\x08\x22\x91\x4a\x1b\xb1\x97\x0e\x2d\x16\x8b\x0c\x0f\x0f\xd3\ \xdc\xdc\xcc\xe0\xe0\xa0\x6f\x97\x8f\xf4\x41\xbd\xb9\x8d\x16\x15\ \x55\xb0\x7a\xd5\xbf\xf2\xf3\x3d\x5f\x27\x79\xa0\x9a\x05\xda\x55\ \xdc\x72\xc6\xdf\xf3\x99\x9e\xf7\x57\x5c\x5c\xa7\xa2\x72\x82\xc1\ \xa0\x3f\xdb\xd1\x75\x5d\x0c\xd3\xc4\x2a\x18\x64\xd7\x2c\xe6\x8b\ \xbf\xfa\x22\x8e\xb4\xd9\xcb\xe3\x94\x0d\x8b\xcc\xcb\x02\xe4\x0c\ \x66\xcf\x96\x20\x2a\xb9\x8a\xcb\x2f\xbf\xfc\x7f\x84\x10\xdf\x07\ \xd8\xbc\x79\x73\xc7\xde\xbd\x7b\x97\x1c\xae\x27\x98\x4e\xa7\x2b\ \x1d\xc4\x01\xb8\xe4\xdf\x1a\x50\x54\x01\xa8\x34\xd7\x9f\x40\x7f\ \xea\x00\xa3\xfb\x4c\x0e\xbc\x58\x24\xd5\x5e\x91\xe0\xaa\xaa\x2a\ \xf2\xf9\xfc\xfd\xc7\x14\x18\xfe\xfc\xe7\x3f\xe7\x03\x1f\xf8\x00\ \x77\xdf\x7d\x37\xeb\xd7\xaf\xf7\xfd\xfd\x7c\x3e\xef\xd3\x25\xa9\ \x54\x6a\x42\xaa\x54\x4a\x49\x63\x63\xe3\x97\x14\x45\xb9\xa5\xaf\ \xaf\xef\xc0\x91\x4a\x88\x83\x83\x22\x55\xa6\xd4\x4d\x61\xff\x40\ \x91\xa2\x05\x1d\xc3\xfb\x79\x72\xef\x7d\xd8\xb6\x85\x65\x55\x74\ \xa9\x69\x9a\x04\x83\x41\x4e\x3d\xf5\x54\xf6\xee\xdd\x4b\x22\x91\ \x20\x9d\x4e\x63\xba\x26\x56\xd9\xc6\x30\x2a\x53\x91\x76\xd7\x6e\ \xe6\x9c\x6b\x63\x38\xb9\xca\x1c\x45\x37\x13\xc4\xc9\x6a\x38\x19\ \x0d\x6b\x20\x18\x40\xfa\x33\x15\x83\x47\x60\x43\xd0\xf5\x4a\x3d\ \x98\xee\x2a\x0c\x6c\x36\x29\x0e\x3b\x14\x86\x1c\x5e\x1d\x48\x50\ \x4e\xb9\x95\xba\x35\x4d\xf8\xb5\x08\x63\x36\xcb\x3e\x26\x1b\xe2\ \xba\x2e\x0f\x3c\xf0\xc0\xa1\x1b\xf1\x02\x4d\x01\x99\x74\x06\xcf\ \xad\x16\xa2\xc2\xdb\x78\x63\xfd\xe6\xcc\x99\x73\x51\x26\x93\xa9\ \x07\xfe\x28\x20\xf3\xe6\xcd\x7b\x8f\xae\xeb\x42\x51\x14\x67\x78\ \x78\x38\x56\x2e\x55\x26\x7b\x5a\x8a\x4d\xbe\x3f\xc0\xae\x5d\xbb\ \x48\xe4\x0a\xa4\x07\x6c\xb2\x89\x2c\xa3\x07\x8b\xe4\x07\x2d\x4c\ \x4b\xa2\xc8\x0a\x80\x86\x61\xd0\xdc\xdc\xcc\x8e\x1d\x3b\x50\x94\ \x4a\xeb\xb4\x23\x0f\x4d\x1e\x32\x5c\x8b\x70\x2d\x28\x8e\xc6\xb4\ \xfa\x05\xc4\x67\x54\xb1\x73\x70\x03\x75\x91\xc9\x64\xe5\x10\x03\ \x0f\x36\xe0\x14\x0e\xa9\xbc\x23\x49\x2f\x57\x55\x55\xb1\x7a\xf5\ \x6a\xf6\xec\xd9\xc3\x81\x7d\x07\x08\x18\x65\x54\xc7\x21\x56\xef\ \x62\xd7\xd8\xfe\x98\x0e\x2f\x6e\xf3\xbc\xbf\x63\x89\x43\xfe\xfb\ \xe0\xc1\x83\x17\xdb\xb6\x3d\x53\x08\x41\x31\x26\x39\xf5\xf2\x6a\ \xf4\x80\xa0\x30\x52\xc5\xfb\xcf\xb8\x9e\x67\xf6\xfd\x00\x4d\xd5\ \x19\xda\x6e\x30\xb8\xb5\x84\x50\x84\x3f\xed\xe7\x1d\x1e\xb0\xe1\ \xb4\xd3\x4e\xdb\xac\xaa\xaa\x10\x42\x20\x91\x50\x5b\x82\x6c\x10\ \xe1\xa8\xb0\x11\x9e\xd8\xf8\xd4\x21\xde\x88\x1a\x76\x1c\x18\x64\ \xf4\x60\x0c\x47\xe6\xb0\x4d\xe9\x1b\x73\xaf\x16\xcc\x9b\xec\xe6\ \x9a\xae\xdf\x6a\x6d\x49\x07\x45\x55\xe8\xde\x6f\xf3\x95\x5b\xbf\ \xc2\x0f\xd6\x7e\x97\x4b\x5a\x6e\xe1\x8a\x25\x1f\xe4\x53\xcf\x5f\ \x80\x65\x5a\xd8\xa6\x73\x44\x80\x78\x69\xd9\x6f\x7f\xfb\xdb\x24\ \x12\x09\x6e\xbe\xf9\x66\x9e\x7b\xee\x39\xbf\x72\xb1\xbd\xbd\x9d\ \x65\xcb\x96\x11\x0e\x87\xd9\xb6\x6d\x1b\xdb\xb6\x6d\x63\xe9\xd2\ \xa5\x6c\xd8\xb0\xe1\x1d\xbf\xfb\x4f\x02\x92\xcb\xe5\xb6\x36\x37\ \x37\x0f\x1b\x86\x31\x53\x08\x81\xa1\x3b\xb4\x9c\x57\x8d\x9d\x92\ \xa4\x3b\x0c\x1e\xfd\xed\x03\x14\x07\x04\x56\xd1\xa2\x9c\x92\x84\ \xc2\x21\xdf\xf5\x7d\xa7\xf6\x30\x40\x2f\x97\xcb\xc2\xb6\x6d\x10\ \xb0\x35\xb2\x8b\xf7\x9e\x5f\x87\x2b\x5d\x1c\xc3\x45\xb1\x83\x48\ \x4b\xc1\xc9\xab\xe4\x5e\xab\xc1\x29\xaa\x3e\xb1\x98\x4c\x26\xfd\ \xe0\xd1\xa3\x47\x5c\xd7\xa5\xb3\xb3\x53\xbe\xf1\xc6\x1b\xe2\xd1\ \x47\x1f\x65\xdb\xb6\x6d\x15\xc7\x43\x3a\xa8\x9a\xc2\x09\xd5\x4b\ \x38\x98\xdf\xcd\x48\xf9\x20\xff\xeb\xc4\xdb\x09\x6a\x21\x42\xa1\ \x20\x96\x63\x63\x99\xbe\x1a\x7a\x47\x44\x6a\x6a\x6a\x3e\x71\xde\ \x79\xe7\x7d\xa3\xb5\xb5\x95\x47\x1e\x79\x84\x2f\x7f\xf9\xcb\xf4\ \xf5\xf5\xb1\x77\xef\x5e\x72\xb9\x9c\x4f\xd3\xac\x5d\xbb\x96\x99\ \x33\x67\xd2\xd3\xd3\x83\xe3\x38\x8c\x8e\x8e\x1e\x9f\xc1\x01\x95\ \x0d\x21\x38\xe9\xa4\x93\xe8\xee\xea\x66\xe3\xe7\xca\x48\x7b\xcc\ \x21\x16\x1a\x08\x15\xe9\x38\x84\x42\xba\xff\x72\xbc\x12\xfc\x77\ \xba\x01\xbf\x3c\x07\x49\xa0\xae\xd2\xd9\x74\xd6\xa4\x0f\xd3\x32\ \xb9\x85\xa7\x3b\xbe\xc7\xcc\xaa\x53\xd8\x9a\xfa\x0d\xf6\xc6\x30\ \xb6\x75\xa8\x8a\x64\x7c\x1b\x44\xa1\x50\xb8\x63\xff\xfe\xfd\xff\ \x3e\x69\xd2\xa4\x81\x91\x91\x91\xc6\xb5\x6b\xd7\xb2\x68\xd1\x22\ \x36\x6e\xdc\x58\xe9\xc8\x52\x5d\x92\xbf\x2f\xd3\x3b\x75\x90\x7b\ \x36\x3f\x40\x32\x97\xe0\x0b\xbf\xfb\x12\xaa\xa2\xd2\x9d\x05\x2b\ \x7f\x48\x32\x26\x4f\x9e\x7c\xc2\xb4\x69\xd3\x5e\x05\x54\xc7\x71\ \xd8\xb9\x73\xe7\x75\xc9\x64\xb2\xe7\x2d\x6c\x44\xad\xa2\x28\x9a\ \x94\x92\x4d\x9b\x36\x71\xd1\x45\x17\xf9\xe4\xe6\x5b\xd7\xfe\xfd\ \xfb\x7d\x82\x73\xeb\xd6\xad\xc4\xe3\xf1\x63\x07\xc4\xb2\x2c\x6e\ \xbd\xf5\x56\xce\x3b\xef\x3c\x0c\xc3\xe0\xb1\xc7\x1e\xf3\x07\x41\ \x7a\x9e\xd6\x9c\x39\x73\xd8\xbb\x77\xaf\x4f\x0d\x0c\x0c\x0c\x78\ \x37\xb9\x70\xda\xb4\x69\xc9\xde\xde\xde\xb7\xe3\x8a\x1c\x8f\xaf\ \x92\x02\x14\x45\xd0\xbd\xcf\xe6\xdb\x7f\x75\x13\xff\xf0\xe3\x2b\ \xf8\xe2\xc5\xdf\x27\x1e\x6e\x60\x74\x7b\x27\x83\xd6\x08\x86\xe1\ \xf8\x80\x7b\xc4\xe1\xb8\x2a\x49\xa9\xaa\x2a\xb7\xde\x7a\x2b\x9f\ \xff\xfc\xe7\xb9\xff\xfe\xfb\xfd\x09\x3c\xb6\x70\xd1\x8a\x1a\xb1\ \x13\xaa\x28\x65\x2c\x0a\x96\x60\x64\xd9\x56\xe2\xb1\x10\x93\x46\ \xc2\xd8\xf5\x41\xdc\xb2\x8a\x34\x14\xa4\xa9\x84\x91\xe2\x4c\x2f\ \xf7\xfd\xe6\x9b\x6f\x86\xde\x4e\x5d\x8d\x4f\x5b\x2b\xaa\x4a\xb8\ \x4a\x23\x10\x14\x87\x3a\xa6\x04\xd8\x25\x17\xbb\xa4\xf8\x36\x57\ \x51\x14\x4a\xa5\x92\x65\x9a\x66\xe2\x98\x00\x71\x1c\x87\xd9\xb3\ \x67\x93\x4c\x26\x39\xe5\x94\x53\x08\x85\x42\x9c\x72\xca\x29\x44\ \xa3\x51\xa2\xd1\x28\x3f\xf9\xc9\x4f\xa8\xa9\xa9\xe1\xcc\x33\xcf\ \x24\x9d\x4e\xb3\x6e\xdd\x3a\x02\x81\x00\xb6\x6d\xf3\x9e\xf7\xbc\ \xe7\xe1\xf6\xf6\xf6\x1f\xf7\xf6\xf6\xde\x34\x46\x36\x36\x01\xab\ \x01\xd3\x75\xdd\xea\xde\xde\xde\x4a\x01\x32\x60\x5a\x26\xf9\x6c\ \x8c\x3b\xef\xfc\x1a\x3d\xed\x59\x1e\x1f\x7a\x86\x4c\x21\xc3\x2b\ \x7d\x6f\x52\xe8\x0a\x13\xd3\x6b\x3d\xb6\x94\xaa\xaa\x2a\x72\xb9\ \xdc\x84\xd1\x17\x42\x08\xda\xda\xda\xb8\xe9\xa6\x9b\xc8\xe5\x72\ \x54\x55\x55\x55\x66\x09\x0b\x17\xdc\xb1\x39\xed\xc0\x90\x36\xc2\ \xc2\x85\x01\x6c\xcb\x84\xa6\x89\x23\x93\xb2\x9b\xc7\x2a\x1e\x85\ \xf4\x0b\x23\xfe\x18\xf1\xd9\xd0\xd0\x30\xd6\x82\x00\xb5\xe7\x04\ \x59\x7c\x5a\x8c\xa1\xed\x65\x46\xf7\x59\x8c\xee\x36\x71\xed\xb7\ \x75\x04\x0e\x0c\x0e\x0e\xde\x77\x4c\x80\x44\x22\x11\xee\xbc\xf3\ \x4e\xce\x3c\xf3\x4c\xee\xb9\xe7\x1e\x8a\xc5\xe2\x84\xec\x97\x69\ \x9a\xac\x5d\xbb\x16\xdb\xae\x64\xf4\x82\xc1\xa0\xff\xef\xde\xf0\ \x2e\x6f\x8d\x8c\x8c\xac\xba\xf2\xca\x2b\x3f\xef\x51\xf4\x19\xb3\ \x28\x6b\x67\x3b\x42\x26\xc3\xb8\xc9\x00\xd8\x92\x3d\x6f\x76\x32\ \x59\x59\xc0\xa6\x8d\x95\xe9\xdc\xd3\xb4\xe5\x74\xba\x1d\x7e\x8e\ \x3a\x12\x89\x10\x0c\x06\xfd\x91\x47\xe3\xa8\x97\x7b\x86\x87\x87\ \xab\x84\x10\x6e\xb9\x5c\x5e\x2e\x84\xb8\xb8\x5c\x2e\xe3\x28\x2e\ \xa1\x50\x78\xac\xe2\x51\x80\x2a\x31\x4d\x87\x0f\xcc\xbc\x93\xee\ \xec\x2e\x4e\x9a\xb5\x98\xff\x7a\xee\x3e\xec\xba\x76\x1c\x27\x82\ \x65\x5a\xa0\xc8\xb7\x8d\xe2\x03\x81\xc0\x6c\x29\x65\x9d\x37\x48\ \x61\xd1\xa2\x45\x04\x02\x01\xfa\x5e\xeb\x65\xe7\xcb\x12\x49\x00\ \x29\x75\x62\x91\x90\xaf\x52\xbd\x5f\x5e\x61\xc8\x31\xab\x2c\xdb\ \xb6\x83\x8a\xa2\xf0\xda\x6b\xaf\x55\xf4\xa1\x64\xc2\x64\x05\x21\ \xc0\xb6\x1c\x84\x52\x31\xe6\x5e\x2e\xa2\x50\x28\x4c\x18\x2c\xec\ \x3d\x93\x33\x6e\x50\x72\x76\x61\xa7\x98\x79\x46\x14\xcb\x35\x71\ \x1c\x17\x25\x17\xab\xc4\x07\xde\xec\xdc\x31\xf7\xd2\x9b\x17\x2c\ \xa5\xf4\xe9\xfe\xfa\xfa\x7a\x12\x89\x43\xd2\x9f\x4c\x26\xbf\xe6\ \x19\xfb\xc9\x93\x27\x7f\x4c\xd3\xb4\x8b\xa5\x94\x08\x1b\xb0\x5d\ \xff\x50\x00\xcb\x34\x48\xec\x93\x54\x35\x57\xf3\xfc\x9b\x3f\xc6\ \x3a\xf0\x31\x16\x28\x67\x12\x53\x56\xf0\x58\xef\x4f\xc9\x8d\x06\ \x40\x48\x6f\xf0\xd8\x29\x81\x40\xa0\x5e\x55\x55\x51\x2a\x95\x76\ \x5f\x72\xc9\x25\xed\x3d\x3d\x3d\x58\x96\x25\x6b\x6b\x6b\xc5\x3f\ \xff\xf3\x3f\xb3\x78\xf1\x62\xee\xbd\xf7\x5e\xf6\xed\xdb\xc7\xe2\ \xc5\x8b\x79\xf3\xcd\x37\x69\x69\x69\xa1\xbf\xbf\x9f\x74\x3a\xcd\ \x94\x29\x53\x90\x52\xb2\x7d\xfb\x76\xd2\xe9\xf4\xb1\x03\x72\xe0\ \xc0\x81\xbf\xcb\xe5\x72\x9b\xd4\x31\x7e\x22\x1f\x72\x39\xff\x96\ \x3a\xca\x59\x07\xbb\x24\x29\xa5\x5c\xd2\x5d\x16\x99\x03\x36\xee\ \x38\xa0\x26\x4d\x9a\xe4\xd1\x2b\x55\xb1\x58\x6c\x46\x3e\x9f\x3f\ \x00\xb8\xe3\x77\x4a\x38\xa2\x61\x14\x25\x97\xcf\xfc\x27\x26\xd7\ \xd5\xf2\xf3\x3d\xdf\x20\x56\xd7\x48\xa2\xf9\x00\xc9\xf5\x21\x5f\ \xf7\x3a\x8e\x43\x3a\x9d\x46\x4a\x49\x38\x1c\xc6\xb2\x2c\x06\x06\ \x06\xbc\x06\x98\xb7\xf3\x1c\x54\x4d\xd3\x58\xbd\x7a\x35\xf9\x7c\ \x9e\x1f\xff\xf8\xc7\x7e\x02\xad\xae\x5c\x45\x68\xeb\x1c\xee\xda\ \x7c\x17\xaa\x32\x87\xdf\x06\x9e\x20\xa4\xeb\x48\x43\x65\x8a\xb3\ \x98\xa6\x13\xbd\x9d\x26\xb9\xfa\xea\xab\x7f\xee\x55\x8e\xac\x59\ \xb3\x66\xaa\x57\x13\x6c\xdb\xb6\x37\x8f\xd7\x1f\x36\xe3\xba\x2e\ \x93\x27\x4f\x66\xfa\xf4\xe9\x94\xcb\x65\x66\xcc\x98\xc1\xba\x75\ \xeb\xfc\x64\xde\xce\x9d\x3b\x8f\x8f\x97\x65\x59\xd6\xd6\x40\x20\ \x20\x3d\x35\x13\x01\x76\xfe\xc0\x7c\x4b\x6e\x5d\x27\xa4\xeb\xa0\ \x1f\x8a\x62\x35\x4d\xc3\xb2\x2c\x1a\x1b\x1b\xff\x7a\xc9\x92\x25\ \x97\xbd\xf8\xe2\x8b\x5f\xb5\x2c\xeb\xe4\xbe\xbe\xbe\x43\x63\x9d\ \xde\x28\xa0\xb5\x57\xb3\xeb\xc4\x36\xbe\xb1\xf9\x19\x66\x4e\x99\ \x89\x1e\x9f\x42\xdb\xe0\x4e\xf2\x43\xae\x5f\x1c\xf0\x16\xd1\x2f\ \x77\x74\x74\x3c\x34\x96\xf1\x33\x34\x4d\x7b\xe5\xed\x72\x29\xef\ \x7b\xdf\xfb\xa8\xaf\xaf\xe7\xb6\xdb\x6e\xe3\xd1\x47\x1f\xf5\x53\ \xba\xae\x74\x29\x9b\x15\xb5\xbb\x21\xdd\xca\x7b\x6f\x0d\x4f\x18\ \x33\x65\x0d\x07\x30\x7b\xc2\x98\x07\xc3\x38\x39\x8d\xf1\xb3\x54\ \xbc\x2a\x7a\x2f\xc6\xb9\xed\xb6\xdb\x08\x06\x83\x94\x4a\x25\xa4\ \x94\x7c\xff\xfb\xdf\x9f\xd0\x7f\x22\xa5\x64\xf7\xee\xdd\xb4\xb6\ \xb6\x1e\x36\x89\x79\x58\xed\xa7\xae\xeb\xf2\xd1\x8f\x7e\x94\x73\ \xce\x39\x87\x8e\x8e\x0e\x76\xee\xdc\x49\x67\x67\xa7\x3f\xdb\xc3\ \x34\x4d\x4e\x3f\xfd\x74\xf6\xef\xdf\xcf\x9e\x3d\x7b\x98\x3d\x7b\ \x36\x1d\x1d\x1d\x7e\x26\xb1\x5c\x2e\xeb\xe7\x9e\x7b\xee\xbf\x2a\ \x42\x61\x58\x1b\x96\xd3\x4f\x12\xc2\x1c\x0c\x63\x0f\x07\x71\x53\ \x3a\x3b\x36\xee\xa5\x45\x3d\x11\x67\xc4\xa5\x77\x78\x90\x26\x6d\ \x29\xeb\x13\xaf\xfb\xbd\xe0\x5e\x71\xc0\x18\x91\x98\x4f\x24\x12\ \x1f\xfd\x93\x0f\xa5\x69\xbc\xf2\xca\x2b\xac\x59\xb3\x86\x91\x91\ \x11\x8a\xc5\xa2\x3f\x4f\xd7\x2b\x0b\x02\x28\x0a\x93\x68\x6d\x0c\ \x92\xd3\xb8\xfd\x92\x2f\xf1\x8b\xd6\xff\x64\x24\x32\x82\x3d\x37\ \x4b\x62\xb3\x45\xea\xe5\x2a\x54\xad\xd2\xb2\x7d\xd6\x59\x67\xad\ \xf3\x00\x29\x95\x4a\x84\xc3\x95\xf3\x4e\x8a\xb9\x4a\x39\xa9\x50\ \x15\x94\x3f\x5e\xd6\x2c\x01\x91\x4a\xa5\xa2\xc7\x05\x10\x29\x25\ \xd7\x5c\x73\x0d\x5b\xb6\x6c\x61\xd5\xaa\x55\x24\x12\x09\x16\x2d\ \x5a\xc4\xf6\xed\xdb\x69\x68\x68\xa0\xb3\xb3\x93\x9a\x9a\x1a\x16\ \x2e\x5c\x48\x20\x10\xa0\xbd\xbd\xdd\x1f\x00\xe9\xbd\x80\xfe\xfe\ \x7e\x1c\x29\xa9\xbe\x3e\x2f\xc2\x8b\x63\x84\x97\x66\x41\x91\x48\ \x53\xc1\x4e\x6b\xb8\x59\x9d\xd4\xf3\xb5\x38\x96\x8b\xe6\x1e\xaa\ \x2e\xf1\x06\xa7\xd5\xd5\xd5\x4d\x98\x35\xff\x4e\x91\x74\xb1\x58\ \xe4\x9c\x73\xce\xf1\xc1\xf4\xf4\x77\x5d\x5d\x9d\xff\xbd\x4d\x3d\ \x2a\x7b\xbf\x5c\x87\xed\x66\xf8\x9b\xff\xfc\x18\x02\x9d\x40\x40\ \x45\x1a\x51\x14\x5d\x22\x74\x13\xd5\x55\xbc\xd1\xb8\xb3\x0c\xc3\ \xc0\xb6\x6d\xaa\xab\xab\x2b\xc9\x27\x04\xb5\x4b\x82\xe8\x08\xf2\ \x03\x0e\x46\xc6\x9d\x30\x9c\xc8\x93\x0a\x4d\xd3\x44\x36\x9b\x7d\ \xc3\xb6\xed\xf7\x1e\x17\x40\x74\x5d\xe7\xfa\xeb\xaf\xe7\xae\xbb\ \xee\xe2\xeb\x5f\xff\x3a\xdd\xdd\xdd\x13\x4e\xd2\x29\x16\x8b\x74\ \x75\x75\x91\xcb\xe5\xfc\x29\x9d\xaa\xaa\x92\xcd\x66\xa9\xad\xad\ \xc5\x75\x5d\x7f\xc8\xc0\xc0\x03\x36\x6f\x28\xde\xb0\x49\x65\x1c\ \x65\x61\x52\xb4\xda\x68\x69\x69\x99\x90\xb7\xf7\x26\xea\x7c\xf4\ \xa3\x1f\xe5\xfe\xfb\xef\x3f\xac\x32\x23\xc3\x30\x72\xb6\x6d\x77\ \x7b\x75\x5d\x42\x88\xe9\xaa\xaa\x0a\x4f\xda\xfd\x89\xa8\x01\x8d\ \x9a\x49\x31\x2c\xcb\x62\xb4\x6c\x53\x7d\xe9\x10\xb5\x93\x74\x64\ \x49\xc3\x1c\x0a\x52\xec\x08\x40\x22\xea\x57\x4e\x7a\xf1\x47\x28\ \x14\xe2\x13\x9f\xf8\x04\xc9\x64\x92\xed\xdb\xb7\x57\x1a\x95\x6a\ \x2d\x64\xfc\x90\xf3\xe1\xfd\xee\x15\x5d\x94\x4a\xa5\x72\x22\x91\ \x48\x1d\x17\x40\xbc\xb9\x8a\x5f\xf8\xc2\x17\xfe\xe8\x67\xf2\xf9\ \xbc\x4f\xcd\x4b\x29\x19\x3b\xb1\xcc\x67\x81\x87\x86\x86\x2a\x85\ \xda\x93\xe3\xa8\xaa\x4a\x5b\x5b\x9b\x3f\xcb\x77\xf1\xe2\xc5\x63\ \xd4\x47\xd9\xcf\x71\xd8\xb6\xed\xe7\x0e\xaa\xaa\xaa\xfc\xf9\x86\ \x87\x03\x48\x3a\x9d\x7e\x70\xd3\xa6\x4d\x0f\x7a\x3f\x4f\x9f\x3e\ \xdd\x52\x55\x55\x3b\xf1\xc4\x13\xe9\xee\xee\xf6\x81\xf6\x5e\x98\ \x61\x18\x24\x7b\x46\x68\x5e\x7f\x12\xd9\x52\x89\x75\xeb\xd6\xa1\ \x69\x1a\xcb\x97\x2f\xa7\xa1\xa1\x81\x36\xa5\x7d\xc2\x09\x3a\x17\ \x5e\x78\x21\x93\x27\x4f\xe6\x33\x9f\xf9\x0c\x8f\x3c\xf2\x08\x2f\ \xbf\xfc\x32\x97\x5d\x76\x19\xbf\xff\xfd\xef\x99\x35\x6b\x16\xc3\ \xc3\xc3\x6c\xd8\xb0\x81\x58\x2c\xc6\xa9\xa7\x9e\xca\x73\xcf\x3d\ \x77\xd8\xa4\xe5\x61\x01\x92\x4a\xa5\xfe\x2a\x9b\xcd\x7e\xa3\xa6\ \xa6\x66\x51\x3e\x9f\xf7\xcb\xfb\xc7\x1b\xaa\xb7\x1a\x2d\xaf\xc8\ \xce\x03\xc5\xcb\x75\x54\x55\x55\x11\x08\x04\x68\x6a\x6a\x62\xe6\ \xcc\x99\x0c\x0c\x0c\x4c\x38\xbf\x6a\xfc\x31\x42\xe3\x8b\x93\xbd\ \xe1\x68\x47\x93\xfc\x92\x52\xb2\x6e\xdd\x3a\x86\x86\x86\x58\xbd\ \x7a\xb5\x1f\x4b\x79\x52\xe8\x79\x4a\xb6\x6d\x93\x4e\xa7\x39\xeb\ \xac\xb3\x88\xc5\x62\x24\x93\x49\x32\x99\xcc\xf8\x53\xd8\x30\x4d\ \x93\xbd\x7b\xf7\x72\xdb\x6d\xb7\x31\x32\x32\xc2\x8e\x1d\x3b\x70\ \x5d\x97\xed\xdb\xb7\xe3\xba\x2e\xfb\xf6\xed\xf3\x9f\xbd\x50\x28\ \x30\x38\x38\x78\x44\x2c\xf2\x61\x01\x92\x4c\x26\x7f\x5d\x57\x57\ \xf7\xcf\xcb\x97\x2f\x67\xf5\xea\xd5\x74\x77\x77\xb3\x79\xf3\x66\ \xba\xba\xba\x08\x04\x02\x7e\xe2\x7e\xea\xd4\xa9\xf4\xf5\xf5\x91\ \x4e\xa7\x99\x34\x69\x92\xcf\x7e\xfa\x25\x3d\xe3\x62\x10\xcb\xb2\ \xc8\xe7\xf3\x3e\x4d\x3e\xfe\x40\xb1\xf1\xb3\x73\xc7\x5e\x5c\x6a\ \x60\x60\xe0\xe1\xb1\xff\x37\x72\x34\x65\x45\x86\x61\xf8\x52\x9b\ \xcd\x66\xfd\xef\x1f\x3f\x74\xdf\x53\x4b\xa6\x69\xfa\x07\xd5\x78\ \xff\xe6\xfd\xbd\xe3\x38\x8c\x8c\x8c\xb0\x6a\xd5\x2a\x5f\x9d\x43\ \xa5\x9b\xca\x1f\xeb\x31\x6e\x83\xbe\xf1\xc6\x1b\x47\xd4\x42\x77\ \x24\xe7\x87\x88\x8f\x7f\xfc\xe3\x0c\x0e\x0e\x72\xed\xb5\xd7\x62\ \xdb\x36\xb3\x67\xcf\xa6\xaf\xaf\x0f\xdb\xb6\xa9\xab\xab\x43\x88\ \x4a\x32\xa6\xbd\xbd\x9d\x62\xb1\x48\x30\x18\xf4\x87\x24\x7b\xb6\ \xc0\x03\xc4\x2f\xf3\x19\x03\x61\xbc\x24\xa9\xaa\x4a\x20\x10\xa0\ \xa5\xa5\xc5\x9b\x3b\x35\xd2\xd9\xd9\xf9\x89\xf1\x31\xce\xf8\xa0\ \xf0\x70\x54\xee\xc5\x17\x5f\xcc\x45\x17\x5d\xc4\xf0\xf0\xb0\xaf\ \xb2\x42\xa1\x90\x9f\x8a\xf6\xd4\xd7\x78\x06\x60\xfc\xe1\x67\xde\ \xdc\xc9\xb1\x0d\x3a\x81\x4c\x1c\x5f\x72\xfb\x76\xd7\x96\x52\x76\ \x49\x29\xfb\x8e\x37\x20\x7c\xfa\xd3\x9f\xe6\xa1\x87\x1e\xe2\x67\ \x3f\xfb\x19\x2f\xbe\xf8\xe2\x84\xf3\x38\x0c\xc3\x20\x1a\x8d\xfa\ \x65\xf7\xde\x91\x0e\x9e\x6b\xec\xa9\xaf\xf1\xa7\xd5\x8c\x3f\xe9\ \xcd\x7b\x21\xc5\x62\xd1\xaf\x32\x9c\x3a\x75\x2a\xe9\x74\xfa\x0f\ \x28\x87\x23\x01\xc3\x53\x59\x4d\x4d\x4d\xec\xde\xbd\xdb\x57\xb7\ \x9e\x5a\x1c\x7f\x14\x85\xf7\x67\x4f\x5a\xc7\xd7\x54\x99\xa6\x89\ \xae\xeb\xdc\x71\xc7\x1d\x5c\x70\xc1\x05\xfc\xfb\xbf\xff\xbb\x97\ \x5f\xf7\x59\x6b\x4f\xda\xab\xaa\xaa\xfc\x41\x3d\x52\x4a\x76\xed\ \xda\x35\xeb\xb8\x4b\x88\xe7\x3e\x7e\xf0\x83\x1f\x9c\xd0\x53\x38\ \xde\x76\x78\x93\x9d\x3d\xfd\x59\x55\x55\xe5\x9f\xc4\xe3\xed\x4a\ \x8f\x23\xf2\xa4\xc5\xf3\x46\x3c\x8a\xc4\xa3\xab\xa5\x94\x13\x06\ \x80\x1d\xcb\x4a\xa7\xd3\xb3\x36\x6f\xde\x8c\x65\x59\xf9\xe9\xd3\ \xa7\x77\xac\x5a\xb5\xaa\xf6\x53\x9f\xfa\x14\x37\xdf\x7c\x33\xf9\ \x7c\xde\xef\xb5\xf7\xdc\x5a\x6f\x1c\xdf\x78\x9a\x3f\x93\xc9\x30\ \x7b\xf6\x6c\xce\x3d\xf7\x5c\xa2\xd1\x28\xe7\x9c\x73\x0e\x1b\x36\ \x6c\xe0\x92\x4b\x2e\x61\xcd\x9a\x35\x5c\x79\xe5\x95\x3c\xf9\xe4\ \x93\x2c\x5c\xb8\x90\xda\xda\x5a\x54\x55\xe5\xb9\xe7\x9e\x9b\x30\ \xed\xfa\x78\x03\xf2\x8b\xee\xee\xee\xed\x8a\xa2\xac\x7e\xef\x7b\ \xdf\x8b\xa2\x28\xb4\xb7\xb7\x63\x18\x86\x3f\xef\xdc\xd3\xb7\x35\ \x35\x35\x38\x8e\xe3\x0f\x94\x14\x42\x90\x4a\xa5\xfc\x01\xf5\xe3\ \x55\x96\x57\xd1\xe7\x7d\x6e\xac\x5a\x5d\x3a\x8e\x23\x6c\xdb\xa6\ \xa6\xa6\x86\x4c\x26\xa3\x1e\x23\x20\x7e\x4e\xa3\x58\x2c\xba\x77\ \xdd\x75\x17\xeb\xd7\xaf\xa7\xba\xba\x9a\x91\x91\x11\x7f\xf7\x8f\ \xb7\x67\x1e\xd5\x32\x3e\xd1\x96\xcb\xe5\xd8\xbd\x7b\x37\x0d\x0d\ \x0d\x78\xe7\xff\x7a\x6e\xef\xd6\xad\x5b\xb1\x6d\x9b\x9e\x9e\x1e\ \x7f\x10\x8d\x37\x92\xe9\x88\xec\xdd\xe1\x7c\xc8\x3b\xab\x0f\xd0\ \x96\x2c\x59\x62\x6d\xdd\xba\x95\x9d\x3b\x77\xd2\xd3\xd3\xc3\x96\ \x2d\x5b\x58\xb1\x62\x05\x3f\xf8\xc1\x0f\xb8\xf0\xc2\x0b\xe9\xec\ \xec\x24\x18\x0c\x32\x7f\xfe\x7c\x3a\x3b\x3b\x79\xf5\xd5\x57\xc9\ \x66\xb3\x0c\x0f\x0f\x13\x8b\xc5\xfc\x72\x53\xef\x04\x01\x29\xa5\ \xdf\x9f\x18\x8d\x46\xfd\x03\x51\x06\x07\x07\x13\xe5\x72\xf9\xe5\ \x31\xbb\xb4\x67\x64\x64\xe4\x8b\x1c\x87\x75\xe2\x89\x27\x26\x6e\ \xbc\xf1\xc6\xfa\x4b\x2f\xbd\x94\xcf\x7e\xf6\xb3\x0c\x0c\x0c\x50\ \x2a\x95\xfc\x39\xed\x85\x42\x81\x29\x53\xa6\xf8\x07\x9c\x79\xe3\ \x6f\x55\x55\x65\xe6\xcc\x99\x64\x32\x19\xff\xb4\x87\xb7\x73\x1e\ \xde\x9a\xe6\xb5\x6d\x9b\x37\xdf\x7c\x53\x1c\x57\x09\x19\xa7\xc3\ \x15\xcb\xb2\x78\xf8\xe1\x87\xb9\xec\xb2\xcb\x78\xf4\xd1\x47\x49\ \x26\x93\xbc\xf0\xc2\x0b\x48\x29\x19\x1c\x1c\x64\xdf\xbe\x7d\x95\ \xb3\xa5\xba\xbb\x27\x64\x10\xbd\xc1\x2f\xe9\x74\x9a\x60\x30\xe8\ \x0f\x4f\x8e\x46\xa3\xbe\xd4\x18\x86\xc1\xec\xd9\xb3\xc9\x64\x32\ \x28\x8a\xb2\x2b\x93\xc9\x5c\xc3\x71\x5e\xba\xae\xf3\xe4\x93\x4f\ \xf2\xd4\x53\x4f\x91\xcf\xe7\x99\x3c\x79\x32\x9f\xfd\xec\x67\xf9\ \xf4\xa7\x3f\xed\x0f\x4b\xf3\x46\x8d\xc7\xe3\x71\x9f\x36\xff\xfc\ \xe7\x3f\xcf\x7d\xf7\xdd\xe7\x8f\x05\xf4\xc8\x4e\x4f\x9d\xd7\xd5\ \xd5\x91\xcf\xe7\x49\xa5\x52\x34\x36\x36\x32\x3c\x3c\x8c\x65\x59\ \x7d\x8a\xa2\xe4\xff\x2c\x2a\xcb\x5b\xa1\x50\x88\x7b\xee\xb9\x87\ \xfb\xee\xbb\xcf\x8f\x13\x3c\x75\xd3\xdd\xdd\x8d\x10\xc2\x1f\x76\ \xe6\xdd\x6c\x55\x55\x95\x4f\xc5\x7b\x27\x2d\x7b\xb6\xc6\x3b\xef\ \xd0\x8b\x3f\xf6\xec\xd9\x73\x5c\xfb\x00\xdf\xba\x46\x47\x47\x5f\ \x09\x87\xc3\xd5\x63\xf7\xb6\xf2\x1b\xdf\xf8\x46\xe4\xb5\xd7\x5e\ \xf3\xef\xcd\xb3\x61\xe3\x8f\xde\x70\x5d\x97\x55\xab\x56\x31\x75\ \xea\x54\x96\x2d\x5b\xc6\xd3\x4f\x3f\x4d\x75\x75\x35\x5b\xb6\x6c\ \xa1\xb9\xb9\x99\xad\x5b\xb7\xb2\x72\xe5\x4a\x0a\x85\x02\xed\xed\ \xed\x1c\x3c\x78\x90\x68\x34\x4a\x6f\x6f\xef\xe5\xdd\xdd\xdd\xdb\ \x8f\xa4\x0b\xe0\x48\xad\xa5\x36\x73\xe6\xcc\x27\xa3\xd1\x68\x40\ \xd7\xf5\x0b\x4f\x3c\xf1\x44\x42\xa1\x10\xaa\xaa\xb2\x6f\xdf\x3e\ \xbf\x05\x39\x1c\x0e\xfb\xd3\x0d\x42\xa1\x90\x7f\x1c\x50\x26\x93\ \x21\x97\xcb\x4d\xe0\xb9\x82\xc1\x20\x17\x5e\x78\x21\x2f\xbf\xfc\ \x32\xde\xbc\x75\x21\x04\xed\xed\xed\xaf\x0f\x0c\x0c\x9c\x79\x3c\ \xc1\x18\xb3\x47\xfe\xcf\x73\xe7\xce\xdd\x7b\xed\xb5\xd7\xce\xbb\ \xf9\xe6\x9b\xb9\xfc\xf2\xcb\x59\xb6\x6c\x19\x2d\x2d\x2d\x3c\xf9\ \xe4\x93\xbe\x6a\xfd\x87\x7f\xf8\x07\x1e\x79\xe4\x11\x0c\xc3\xe0\ \x86\x1b\x6e\x60\xd3\xa6\x4d\x8c\x8e\x8e\xfa\xae\xb0\xd7\x93\xa2\ \xeb\xba\x7f\x0c\x47\x30\x18\x44\xd7\x75\xba\xbb\xbb\x97\x1d\x3c\ \x78\x70\xcb\x91\xdc\xe3\x91\xf6\x9f\xd9\x5d\x5d\x5d\x97\xb7\xb6\ \xb6\x5e\x17\x0a\x85\x38\xf3\xcc\x33\xf9\xc2\x17\xbe\x40\x34\x1a\ \xa5\xb9\xb9\x99\xa9\x53\xa7\x52\x55\x55\xc5\x8c\x19\x33\xa8\xa9\ \xa9\xa1\xae\xae\x8e\x48\x24\x82\xeb\xba\x7e\xa0\xb5\x72\xe5\x4a\ \x02\x81\x00\x0d\x0d\x0d\xc4\xe3\x71\x82\xc1\x20\xd1\x68\x94\xb1\ \x81\xcd\x6f\x6e\xdf\xbe\xfd\x9f\xb6\x6f\xdf\xfe\x19\xe0\x2b\xc7\ \x5b\x3a\xc6\x83\x31\x26\xa1\xca\x0b\x2f\xbc\xc0\x25\x97\x5c\x82\ \x10\x82\x7b\xee\xb9\xc7\x3f\x9f\x70\xc3\x86\x0d\x18\x86\xc1\x15\ \x57\x5c\x41\x22\x91\x40\xd7\x75\x7e\xf9\xcb\x5f\xd2\xdd\xdd\x4d\ \xa1\x50\xa0\x58\x2c\x4e\x38\x39\xc7\x73\xed\x43\xa1\x90\xf4\xcb\ \x91\x5c\xf7\x88\xdd\xc3\xa3\x3a\x2d\x5a\xd3\xb4\x80\x10\x82\x07\ \x1f\x7c\x90\x87\x1e\x7a\xe8\x0f\xfe\xfd\xe0\xc1\x83\x7f\xd4\x39\ \x78\xab\x1b\xeb\x38\x0e\xbf\xfd\xed\x6f\xbd\x49\x6f\xbb\x72\xb9\ \xdc\x7f\x02\xef\x58\xb6\x7f\x3c\x56\x36\x9b\x95\x9e\x8a\x12\x42\ \xf0\xfc\xf3\xcf\x73\xfa\xe9\xa7\xb3\x63\xc7\x0e\x36\x6c\xd8\x40\ \x7d\x7d\x3d\x0f\x3e\xf8\x20\x0f\x3e\xf8\x20\x77\xdf\x7d\xb7\xef\ \xba\x7b\x41\xaf\x77\xc2\x90\x97\xbe\x1e\x53\x6f\xa2\xad\xad\xed\ \x5c\xc7\x71\xf6\xd4\xd5\xd5\x25\x8e\xf4\x9e\x8e\xca\xc1\x0f\x85\ \x42\xb1\xba\xba\xba\xcf\x85\x42\x21\x17\xb8\x2a\x1c\x0e\x2f\x3e\ \x1c\xbd\xef\x4d\x7a\xf0\xa6\x3c\x7b\x99\x36\xcf\xdf\x4f\xa7\xd3\ \x6b\x7a\x7a\x7a\xde\xcf\x5f\x7e\x45\x16\x2f\x5e\x5c\xf0\xfa\x45\ \x74\x5d\x67\xe9\xd2\xa5\xec\xdb\xb7\xcf\x77\xc9\x0f\xc7\x7d\xf5\ \xf8\xb1\xed\xdb\xb7\xcf\x2d\x14\x0a\xed\x47\x73\x23\xc7\x3c\x38\ \xaa\xb9\xb9\xf9\xe7\x4d\x4d\x4d\xd7\x1e\xce\x5c\x73\x0f\x14\x8f\ \xce\xae\xa9\xa9\xa1\x50\x28\x14\x5b\x5b\x5b\xa3\xe3\xbe\x8f\xfe\ \xfe\xfe\xbf\x34\x20\xc1\x96\x96\x96\x6d\xf1\x78\x5c\xe4\xf3\xf9\ \x48\x63\x63\xe3\x09\x52\x4a\x0a\x85\xc2\x61\x8f\x90\x2d\x14\x0a\ \x98\xa6\x79\x9f\xeb\xba\x56\xb9\x5c\xfe\x8f\xa1\xa1\xa1\xd1\xff\ \x2b\x80\x00\x81\xb1\xef\x09\x86\x42\xa1\xa5\x87\x1b\xd7\x78\x51\ \x7b\x38\x1c\x4e\x64\x32\x99\x5d\xfc\x3f\xb2\x82\xc1\x60\x6d\x38\ \x1c\xfe\x47\xd7\x75\x9d\x23\x60\x08\x64\x20\x10\x48\x9e\x7c\xf2\ \xc9\xff\xf3\xc2\x0b\x2f\x48\xde\x5d\xef\xae\x77\xd7\xbb\xeb\xdd\ \xf5\xee\x7a\x77\xbd\xbb\xde\x5d\xff\x8f\xad\xff\x03\x21\xf6\x70\ \xa0\xc1\x03\x97\x85\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x7e\xd7\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ \x01\x00\x00\xff\xdb\x00\x43\x00\x04\x02\x03\x03\x03\x02\x04\x03\ \x03\x03\x04\x04\x04\x04\x05\x09\x06\x05\x05\x05\x05\x0b\x08\x08\ \x06\x09\x0d\x0b\x0d\x0d\x0d\x0b\x0c\x0c\x0e\x10\x14\x11\x0e\x0f\ \x13\x0f\x0c\x0c\x12\x18\x12\x13\x15\x16\x17\x17\x17\x0e\x11\x19\ \x1b\x19\x16\x1a\x14\x16\x17\x16\xff\xdb\x00\x43\x01\x04\x04\x04\ \x05\x05\x05\x0a\x06\x06\x0a\x16\x0f\x0c\x0f\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\xff\xfe\x00\ \x10\x54\x69\x6d\x65\x20\x66\x6f\x72\x20\x4c\x75\x6e\x63\x68\xff\ \xc0\x00\x11\x08\x02\x00\x02\x00\x03\x01\x22\x00\x02\x11\x01\x03\ \x11\x01\xff\xc4\x00\x1b\x00\x00\x02\x03\x01\x01\x01\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x02\x03\x01\x04\x05\x00\x06\x08\xff\ \xc4\x00\x44\x10\x00\x02\x01\x02\x04\x04\x04\x03\x07\x02\x04\x05\ \x04\x01\x05\x01\x01\x02\x03\x00\x11\x04\x12\x21\x31\x05\x41\x51\ \x61\x13\x22\x32\x71\x42\x81\x91\x14\x23\x52\xa1\xb1\xc1\xd1\x62\ \xe1\x06\x33\x72\xf0\x24\x43\x82\x92\xf1\x15\x53\x73\xa2\x25\x34\ \x35\x54\x63\x93\xa3\xff\xc4\x00\x19\x01\x01\x01\x01\x01\x01\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x03\x04\x05\ \xff\xc4\x00\x21\x11\x01\x01\x01\x00\x03\x01\x01\x01\x00\x03\x01\ \x01\x00\x00\x00\x00\x00\x01\x11\x02\x21\x31\x41\x12\x51\x22\x32\ \x61\x71\x42\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\ \x00\xfa\x73\xfc\x3c\xe0\xa6\x23\x07\x32\x67\x92\x16\xcc\xb9\xc5\ \xcd\xbf\x5a\xb1\x32\xca\xaa\x5e\x17\xce\xa0\x7a\x1f\x5b\x0e\xd5\ \x9f\x23\xb2\xc9\xf6\x98\x6e\x1c\xa8\x0c\x47\x50\x74\x3f\x3a\xbd\ \x82\xc5\x26\x29\x43\x0b\x09\x47\xa9\x3a\xfb\x57\xca\x97\xe3\xd5\ \x7f\xae\x86\x48\xa6\x8b\x35\x95\x18\x1b\x10\x4f\xe9\x44\x6e\x0d\ \x8d\xfe\xa6\xaa\x4e\xf2\x61\x84\xb0\xe5\xf2\x48\x6e\x1a\x9b\x83\ \x90\xcb\x85\xbb\x6a\x50\xe5\xbf\x5a\x74\x58\x6f\x97\xa0\xa9\x0a\ \x0d\xb5\x00\x93\x61\xae\xe6\x80\x9a\xe6\xf3\x44\xc8\x5b\x2d\xfd\ \x27\xa1\xa8\x0d\x49\xd8\xb1\xa6\x21\x1c\xd4\x30\x3b\x83\xad\xe9\ \x7e\x73\x1a\x99\x4a\x99\x2d\xe6\x20\xef\xd0\xd0\x7d\xe6\x6b\xf4\ \xfa\x54\x8d\xc3\x48\x22\x95\xf0\xb9\xf2\xe5\x6f\x21\xd8\x51\xba\ \x46\xc7\xcf\x18\xbe\xf7\x53\x63\x59\xf8\xec\xdf\x6b\x7c\xdb\x93\ \x7a\xbb\x87\xb8\xc2\x47\x98\xdc\x90\x48\x3d\xa9\x94\x9f\x11\x44\ \x16\x8d\x42\xdf\x73\xcc\xfc\xe8\x89\x04\x52\x41\xa9\x56\x07\x4b\ \xfb\x53\xa0\xdc\xce\x08\x2a\xda\x8a\xcb\xe2\x03\xc3\xc7\x4a\x8a\ \x6c\x03\x6d\xbd\x68\xc6\x0b\x38\x51\xcc\xda\xb2\xb8\x8c\x82\x4c\ \x7c\xae\xb7\xb1\x6e\x74\x72\xf0\xc0\xec\x6f\x7b\x93\xce\x8b\x0d\ \x27\x85\x88\x49\x00\x00\xab\x5e\xf6\xab\x58\x3c\x22\x18\x95\xe6\ \x04\x97\xf4\xa8\x36\xb0\xea\x6a\x31\x78\x03\x94\xbe\x1d\xf3\x00\ \x2e\x55\xb7\x1f\xcd\x67\x29\xd6\x93\x32\xba\x87\x8d\xae\x8d\xa8\ \xa5\x3b\x00\x7a\x9e\x95\x9d\xc3\x71\xde\x00\xf0\xa6\x1f\x76\x5a\ \xc4\x73\x53\xd6\xb4\xbd\x3a\x83\x70\xda\x86\x1c\xeb\x72\xeb\x38\ \x15\xb0\xf4\xef\x52\xa1\x6c\x43\x2a\xb0\x3b\xdc\x57\x7c\xbe\x94\ \x24\xf7\x1f\x5a\x90\xd4\x42\xa3\xcb\x12\x0f\x6b\xff\x00\x35\x24\ \xa9\x50\xa0\x00\x06\xc0\x0d\xa9\x57\x27\x9d\xba\x69\x44\xa4\xfc\ \xc5\x5a\x85\x1a\x90\xf7\x36\xb5\x54\xe3\x99\x1b\x18\x3c\x48\xd1\ \xfe\xed\x75\x61\xda\xae\x29\xaa\x1c\x70\xff\x00\xc6\x8f\xfe\x35\ \xfd\x2a\xe5\xe1\x9e\xab\xc6\x17\x35\x91\x42\x03\xba\x8d\x98\x7e\ \xc6\xb5\x78\xba\x80\xd1\x95\xd8\x2e\x5b\xf5\xaa\xbc\x12\x11\x28\ \x92\x47\x51\xa7\x95\x75\xd2\xe6\xac\xe3\xbe\xf3\x02\x8e\x3e\x12\ \x2e\x2f\xce\xd6\xfd\xa8\x93\xa5\x7d\x54\xb8\x03\x7a\xec\xca\x7e\ \x21\x4b\xf8\x87\x6a\x25\xbd\x0b\x13\xb9\x04\xec\x3b\x6e\x6b\x9a\ \x8a\xd4\x2c\x39\xd4\x80\x47\x31\xbd\x06\x30\xe6\xc0\xca\xed\x9b\ \x3a\x5b\xce\xbb\x81\xad\xff\x00\x6a\x61\xa8\x55\x0c\x59\x1a\xd9\ \x64\x52\xa6\xf5\x12\x7f\xc3\xae\x35\x8d\xe4\x42\xc6\x45\x60\xca\ \x2d\x98\x58\xef\xde\xb4\x25\x5b\x12\x1b\x4d\x6d\x58\x5c\x2d\x12\ \x3e\x26\x60\x9d\x6d\x73\x6c\xc7\x4d\x79\x56\xfc\x8b\x93\x10\x63\ \x72\x58\x91\x74\x66\xdc\xf6\xa3\x87\x70\x5f\x55\x9f\x43\x61\xa9\ \xed\x43\x6b\x6f\xb9\xab\x24\x03\x4b\x75\xa5\x69\x40\x51\x90\x0a\ \x65\x62\x74\x37\x52\x37\x53\xd4\x57\x05\xae\x22\xf5\x2d\x49\xb6\ \xed\x6b\x7e\x35\x1f\xa8\xe5\x43\xe2\xc4\x08\x50\xfe\x23\x1d\x95\ \x2b\x85\xd4\xdc\x13\x7a\x25\x20\x12\x42\x28\x62\x2c\x58\x0d\x6a\ \x43\x65\x2f\x13\xa8\x8a\x40\x59\x2d\xc8\xfe\x95\x9a\x3c\xad\x60\ \xac\xec\x3e\x1c\xa4\x0f\x99\x35\x78\x12\x0d\xc6\xe2\xaa\x71\x04\ \x64\x93\x30\x27\xc3\x7d\x46\xba\x03\x45\x51\xc1\xb7\xbb\x06\x62\ \x2c\x48\x16\x00\x74\x02\xac\xf0\xd9\x15\x49\x85\x8e\x8e\x7c\xbd\ \x8d\x67\x83\x46\xad\x6a\x25\x6a\xc6\xb9\x1a\xd7\x0b\x83\x71\xca\ \xab\xe1\xb1\x4b\x22\x65\x93\xd6\x07\xab\xf1\x7f\x7a\x31\x20\x2c\ \x43\xe9\x6d\x81\xad\xeb\x18\xa1\xc7\x11\x17\x1c\x4c\x7a\x19\x14\ \x35\xba\x13\x56\x38\x2c\xb7\x8d\xb0\xa7\x65\x05\x90\xfe\xb4\x9e\ \x3f\x28\x6c\x4c\x68\x2d\x71\x18\xd7\x99\xbd\x17\x04\x04\x45\x34\ \xa7\x73\x65\x1d\x7a\xd6\x3f\xfa\x6b\xe2\xe3\x9a\x84\x01\x89\x42\ \x4d\x9f\x43\x42\x58\x5e\xd7\xd7\xa5\x09\x6e\x95\xa6\x41\x26\x26\ \x31\x03\x86\x3f\x7c\x01\x51\xa6\xe7\xad\x23\x86\xe1\x8c\x83\xc6\ \x95\x88\x04\xd8\x2d\xae\x5a\x83\x8a\xa9\x13\x78\xc0\x8b\x4a\x6f\ \x6e\x95\x67\x0f\x2f\x8d\x1a\xac\x4a\xd0\xaa\x8b\x33\xff\x00\x15\ \x9f\x6f\x6d\x7c\x5c\x67\x55\xd6\x42\x16\xda\x05\x1a\x9f\xa5\x04\ \x99\xe7\x50\xa6\xf1\x45\xbe\xbb\xb5\x02\x14\x8c\x5a\x21\x6e\xad\ \xf1\x1f\x9d\x71\x90\x03\xa9\x37\xf6\xad\xeb\x23\x48\x9a\x31\xf7\ \x13\x1e\xeb\x20\xd0\xd1\x78\xae\x83\xfe\x22\x2c\xa3\xf1\xa6\xd4\ \xb5\x95\x76\xd4\x7b\x8a\x62\xb8\xea\xba\xf2\x3c\xea\x46\x73\xd0\ \xdc\x1d\x88\xe7\x52\x80\xad\xd0\x00\x5c\x1b\x12\x76\x5f\x7f\xe2\ \x94\x09\x51\x68\xe6\x55\x5e\x4b\x6b\x95\xf6\x34\x48\x6c\x81\x40\ \xb2\x8b\x9b\x53\xa8\xdb\xc9\xcb\x10\x49\xfc\x2c\xa3\x2d\x03\x62\ \x10\x3e\x49\x94\xc4\xdd\xb5\x53\x42\x5a\xba\x40\x25\x89\xa3\x6d\ \xac\x48\x3d\x2d\x56\xa3\x1a\x45\x44\x32\x31\xba\x81\x7d\x39\xd5\ \x19\xe6\x97\x13\x32\x85\x51\xd1\x54\x1d\xaa\xd4\x66\xd8\x78\xd4\ \x8f\xf9\x60\x10\x45\x70\xc8\xa6\xe9\x1a\x21\x3a\x5c\x51\x50\x62\ \xc3\x28\x60\x1d\xf3\xb3\x68\x75\xda\xf5\x54\x48\xfe\x3e\x43\x2b\ \x65\x24\xa9\x3f\x95\x5d\x8c\xfd\xea\xfb\x8a\xcc\x9c\xda\x57\xff\ \x00\x51\xa2\xd3\x1d\xc3\x6d\xf6\x93\x98\x5c\x05\x3a\x75\xa5\x63\ \x70\x46\x3b\xe2\x30\xac\x4a\x83\x7c\xbc\xd6\xbb\x86\xb9\x18\xc5\ \x5f\xc4\x32\x9f\xa5\x5e\x85\xf2\xbd\xef\xd4\x1a\xcc\xee\x35\x55\ \xa1\xe2\x90\xa2\x78\x38\xe9\x14\xc8\x79\xef\xcb\xe2\xa7\x60\xd3\ \x26\x0e\xf9\x95\x83\xbd\xee\xa7\x41\x61\xfd\xeb\x17\xfc\x49\xc3\ \x8c\x0e\x31\x50\xa9\x31\xc9\x7c\xd6\x37\xb1\xae\xe0\xd8\x99\xe1\ \xe1\xb6\x8a\x42\xa1\x24\xb6\x52\x34\x37\xd7\x5a\xcc\xe5\x65\xca\ \xb3\xae\x9b\x6e\xf6\xd1\x6c\x68\x4e\x6b\xf9\xaf\x7a\xa0\x9c\x4b\ \x12\x18\x1f\x0e\x0f\xfb\x05\x13\x71\x4c\x4b\x10\x7c\x38\x7f\xec\ \x15\xaf\xd4\x18\xd3\x43\x70\x0f\x5a\x2b\x58\xd5\x7c\x06\x26\x3c\ \x62\x15\x0b\xe1\xc8\x2e\x72\x03\x70\x45\x34\xe7\xb5\x81\xd2\xb4\ \x30\x73\x42\x93\x15\x2e\x4a\x95\xd2\xe0\x6e\x28\xa2\x8d\xa2\x4c\ \xb1\x48\x1d\x7f\x03\x8b\x7d\x0d\x04\x57\x53\xae\xa0\xfe\x54\x38\ \xfc\x60\xc3\x1f\x0e\x34\x57\x92\xda\x96\xd4\x2f\x6a\x91\xe4\x82\ \xac\x40\x2a\x40\xf3\x29\xdc\x7f\x6a\x35\x46\x71\x70\x85\x87\x61\ \x58\xd2\x71\x0c\x49\x95\x9f\xc4\xc8\xea\x97\x19\x74\x02\xda\xdb\ \xfd\xf5\xa3\xc5\x62\x67\x32\x12\xd3\x39\xb0\x07\xd5\xf3\xab\xf5\ \x17\xe6\xb4\x71\xb8\x85\xc1\xc4\x4b\x79\xe4\x20\x80\xb7\xf4\xf2\ \xd6\xb2\xf8\x72\x3e\x27\x14\x91\x90\x3c\xcd\xa9\xb5\x01\xbb\xef\ \x7d\x79\x5f\x53\x5a\x9c\x1f\x0c\x70\xf0\x99\x9a\xf9\xdc\x59\x54\ \xe9\x61\xd6\x8f\xf6\xa7\xc8\xb6\xe5\x73\x1c\xa2\xc3\x61\xed\x50\ \x09\x0d\x70\x6c\x6a\x06\xdb\x1f\xa5\x4d\xbb\x37\xd2\xb6\xca\x8f\ \x19\xc3\x02\x46\x2a\x35\x16\xd9\xc0\x1e\x93\xd6\x83\x84\xe3\x15\ \x41\x86\x66\x61\x1b\x7a\x58\x8d\x14\xd6\x88\x3b\x82\x0d\x98\x59\ \xae\x39\x56\x46\x3b\x0c\xd8\x69\xb2\xda\xe8\x7d\x27\xa8\xac\xde\ \xae\xc6\xa7\x7d\x35\x9d\x48\xb0\xb8\x20\xf3\x06\xe0\x8a\xeb\x5a\ \xb1\xf0\x38\xa9\xb0\xc0\x04\x71\x6e\x68\xfb\x1a\xbb\x17\x16\xc3\ \xb8\x1e\x2c\x45\x49\x3a\xe5\x3b\x55\x39\x41\x8b\x55\x23\x71\xdb\ \x5f\xf7\xfe\xf9\x50\xc5\x2e\x1e\x60\x0c\x53\x29\xec\x74\x34\x44\ \x32\xee\x08\x27\x5a\xd0\x48\x36\xac\xfe\x38\x6f\x8d\x5f\xfe\x35\ \xfd\x2a\xfa\x02\xcc\x00\xdc\x9a\xcd\xe2\xb2\x2c\xb8\xd3\x93\x50\ \xa0\x28\x3d\x6d\x47\x2f\x0c\xf5\x7f\x84\xa8\x5e\x1c\x08\xbd\xdd\ \xc9\x3f\x2f\xfc\xd3\xb1\x0b\x9e\x1c\x42\x87\xf4\xb6\x6b\x5b\x9f\ \x4a\x5f\x0e\x42\x9c\x3e\x3c\xc4\xf9\xae\xc0\x76\xd3\xf8\xa6\xb2\ \x33\x33\x34\x4c\x15\xdd\x6c\x41\xd8\xd6\xa7\x81\x9a\xa0\x58\x7b\ \x5e\x8d\x45\x71\x8d\x94\x90\x45\x99\x7c\xae\xbc\xd4\xd4\x81\x58\ \x29\x14\x2d\x72\x3c\xba\x5f\x99\xa2\x61\xa8\x53\xcf\x5a\x83\x50\ \x2d\x87\xbf\xd6\x81\xb5\xdf\x5e\xc6\x98\xfb\xd4\x11\x65\x66\xcb\ \x98\xa8\xbe\x51\xce\xa3\x15\x78\xa6\x1c\xe2\x62\x13\x46\x01\x96\ \x31\x66\x00\xea\xc3\x91\xab\x03\x12\x24\x68\x0b\xb1\x19\x72\x80\ \xe0\xe9\xca\xd7\xe9\xd2\x83\x0d\x24\xf2\x44\x25\xcf\x0c\x77\x24\ \x0f\xbb\xd6\xba\x7c\x1e\x21\xf0\x4c\xf0\xe4\x66\x6b\xa9\xfa\xdf\ \x4a\x3f\xec\x2d\x19\x90\xac\x84\x11\x6e\x63\xda\x82\xb3\xb8\x57\ \x11\x95\x30\x82\x2c\x4a\x67\x11\xbe\x43\x7d\xc0\xde\xb4\xe3\xc9\ \x2c\x62\x48\x5b\x3a\x1f\x91\x1e\xf4\xcb\xbe\x0b\x30\x04\x0a\x16\ \x02\xd4\xc6\x68\xc7\xc4\x5b\xba\xad\xc7\xd6\xa0\xa8\xb0\x20\x82\ \x0e\xc7\xad\x40\xa2\x05\x08\xb5\x31\x96\x84\x8b\x54\x90\x68\x5d\ \x16\x58\x8c\x6c\x6d\xcc\x1e\x95\xcd\xa6\xa6\x87\x29\x27\x36\xa0\ \xde\xf5\x15\x29\x50\xc7\x21\x46\xdd\x4d\xa8\x41\xe9\x57\xb1\x11\ \x89\xd4\x5c\x59\xc6\xc7\xaf\x6a\xa2\xc0\xab\x15\x61\x62\x37\xac\ \x59\x8d\x4a\x90\x4d\x3e\x2c\x49\xf4\xcb\xa8\xda\xe3\x71\x55\x6f\ \x5d\x7a\x34\xa7\x8f\xc8\x3e\xd0\xb6\xd4\x78\x6a\x01\x1b\x5e\xd5\ \x73\x87\x00\x38\x54\x40\xf3\x66\xfd\xab\x33\x8a\xbb\xae\x1e\x2c\ \x4a\x00\x42\xf9\x25\x16\xf5\x74\xbd\x68\xf0\xf9\x23\x6e\x15\x1f\ \x86\x49\x0a\xc7\x97\x5a\x65\xff\x00\x2a\x3e\x1a\xd6\xe5\xa1\xa8\ \x0e\x08\x25\xae\x00\xde\x96\xcf\x6e\xbf\x4a\x28\x88\xf2\x86\x1a\ \xb4\x83\xf2\xb9\xfd\x85\x68\x25\xd5\x64\x70\xf3\x29\x27\xe1\x4b\ \xe8\xa3\xa5\x10\x60\x14\x28\x00\x01\xb0\x14\xbb\xeb\x5d\x7a\xba\ \x43\x2c\x6d\xa5\x72\x30\xca\x29\x6c\x6d\xef\xca\xb8\x69\xa5\x5a\ \x8e\x06\x89\x5a\x92\x0d\x12\xb5\x29\x65\x5a\x8c\x30\x35\x5d\x4d\ \x12\x35\x4c\x9f\x5c\x40\x24\xa6\xe0\x7a\xf5\xff\x00\xeb\xfc\xd0\ \x17\x2a\x42\x8b\x67\x6f\x48\x3c\xbb\xd4\x82\x15\x02\x8f\x48\xff\ \x00\x77\xa9\x08\x9b\x9b\xd4\x11\xde\x84\x3d\xf6\xd6\xa0\xbd\xb7\ \x23\xeb\x52\x31\x48\x5b\xb1\x36\x0a\x09\x27\xa5\x63\x3b\x8b\xeb\ \x7b\x9e\xd5\x7f\x1d\x2e\x5c\x26\x50\x48\x69\x3f\x21\x59\x6e\xc1\ \x98\xef\xd0\x56\x79\x56\xb8\xc1\xe0\x64\xf0\xf1\x68\xcc\x35\x0c\ \x34\xeb\x5a\x39\x7c\xe5\x17\x5d\x6d\x59\x4e\x03\x32\xdb\x42\x35\ \xbd\x6a\xc2\x56\x58\xf3\xa9\xf5\x8b\x36\xba\x8e\xbf\x90\xfc\xea\ \xe2\x68\x64\x4f\x1a\x42\xc5\xc0\x86\xd9\x00\x23\xd6\x3a\x8a\xa7\ \x2f\x0c\xf0\x30\xe5\x70\x65\xa5\x42\xd9\x9a\xfe\xa1\xa7\x4a\xba\ \xc7\x31\xe9\xd2\xdc\xaa\x23\x2c\xb2\x7a\x8f\x63\x4d\x92\x86\x3b\ \xa3\xa7\xad\x19\x7d\xc5\xa8\x49\xb0\xbd\x6f\x78\xae\x48\x56\x39\ \xb9\xf9\x85\xff\x00\x5a\x5c\x98\x4c\x14\xda\x98\x8c\x6d\xf8\x90\ \xfe\x76\xac\xfe\x3f\x87\x59\x38\x49\x64\xc3\xe2\x04\xcb\xb8\x37\ \xb5\x6c\x61\xf1\x98\x4c\x42\x66\x0f\xe0\xb7\x30\xfb\x7c\x8d\x52\ \x9f\x86\x4c\x83\x3c\x4c\x26\x5e\x76\xdc\x7c\xaa\xab\x2b\x29\x21\ \x94\xa9\xee\x2d\x54\xde\x2b\x25\x6c\x4b\x8c\x82\x05\xbc\x72\x2c\ \xb2\x7c\x39\x76\x15\x9a\x03\x4b\x29\x21\x49\x66\xd7\x4d\xeb\xb0\ \x78\x69\xb1\x0f\x68\xd0\x91\xcc\xf2\x15\xb1\x82\x85\x30\x89\x64\ \x21\xa4\x3e\xa7\xfe\x29\x9b\xc8\x75\x08\x83\x85\x46\xb1\xb0\x9d\ \xdb\x33\xa9\xba\x0f\xad\x89\xf9\x55\xb6\x83\x0c\x14\x2f\xd9\xe3\ \x6f\x28\xd5\xb5\x3b\x51\x2f\x99\x48\xe6\xde\x50\x7d\xcd\xbf\x9a\ \x97\x20\xb9\x23\x6a\xdc\x92\x33\xb4\x2a\xb0\x2b\x02\x30\xd1\x29\ \x1b\x10\x2f\x4d\xb9\x66\x24\x9b\x93\x4b\x8f\xcc\xc4\x8e\x5b\x53\ \x29\x89\x1a\xe5\xa9\xb1\xae\x16\xe6\x6b\x98\xd9\x49\xed\xa5\x29\ \xd6\xa8\x3a\xae\x56\x50\xc3\x7b\x11\x7a\x9b\x2d\xb6\xbf\x73\x5c\ \xbb\x91\xc8\x54\x83\x68\xb6\xf0\x22\x3f\xf4\xd4\x18\xb0\xcc\x7c\ \xf8\x48\x4f\xfd\x34\xc0\xb6\xa8\x22\xf5\x62\x55\x93\x87\xe1\x1e\ \x5f\xba\xcd\x13\x5b\xad\xc7\xf6\xa0\x64\xe2\x38\x4d\x98\xbc\x63\ \x6f\x89\x4d\x5a\x37\x0d\x99\x45\x3a\x37\x36\x0c\xa4\x8b\xd1\x91\ \x6b\x2a\x4c\x76\x25\x90\xa5\xd5\x2f\xbe\x55\xb1\xaa\xca\x09\x6b\ \x0d\x49\x35\xb9\x2c\x30\x4b\xfe\x64\x22\xfd\x57\x43\x41\x87\xc2\ \x61\xe1\x93\xc4\x5c\xce\xc3\x60\xc0\x58\x51\xf9\xa7\x4e\x2a\x11\ \x55\x00\xb0\x55\x02\xdd\x2b\x80\xa9\x00\x93\x73\xb9\xa3\x51\x6a\ \xd8\x0c\xd8\x78\xe7\x00\xb1\x2b\x22\x8b\x07\x53\x62\x7b\x1a\xa2\ \xd1\x49\x1b\xb2\x4c\xcc\x59\x45\xc3\x6d\x98\x75\xf7\xad\x20\x34\ \xa9\x75\x57\xc8\x19\x43\x00\xd6\xb1\xe8\x7f\xf1\x55\xe3\xa2\x56\ \x4b\x58\x68\x05\xaa\x37\x15\xa3\x26\x16\x17\x37\x19\x93\xdb\x51\ \x48\x93\x04\xc3\xd0\xe8\x7d\xf4\xb5\x66\xf1\xa7\x54\x9c\x54\x29\ \x20\xdc\x55\x87\xc2\xce\x2f\x78\xc9\x03\x98\xda\x97\xe1\x3d\xfd\ \x24\x77\x22\xb3\x94\xe9\x4e\xa1\x73\x46\xa2\xc0\x79\xd7\x4e\x47\ \x7f\xce\xad\xe0\x98\xae\x0d\x2c\x6d\xe6\x6f\xda\xab\x61\xe1\x97\ \x13\x8a\x92\x65\x5b\x46\xab\x91\x6f\xa0\x35\x71\x63\x11\xc2\xb1\ \x83\x7b\x5e\xe7\xbd\x31\x52\x78\x86\x14\x62\x90\x98\xc0\x59\x46\ \xb6\x03\x47\xfe\xf5\x9d\x83\x90\xc3\x8b\x11\x9f\xf2\xd4\x5e\x71\ \xd7\xb5\x6c\x00\xf9\x08\x8d\x82\xbf\x22\x6b\x27\x1b\x1f\x87\x2b\ \x8c\x99\x4b\xbe\x63\xf4\x1f\xbd\xe8\xe5\xfd\x53\xf8\xd7\x39\xd5\ \x82\xa3\x10\xb6\xf2\xdb\x41\x6a\x5a\x15\x71\x29\x4b\x65\x12\x79\ \x6c\x3a\xd2\x70\x38\x94\x7c\x11\x85\x9b\x2c\x80\x64\x43\xd6\xfc\ \xbf\x5a\xbb\xe1\xd9\x02\x46\xb9\x94\x6d\x93\x51\x7a\xd4\xec\x2a\ \xc8\x72\xe9\x6b\x93\xb5\x09\x4e\xac\x6a\xc1\x85\xef\x72\x8d\x7e\ \xca\x68\x1d\x0a\x9b\x10\x47\xb8\xa3\x11\x05\x05\xef\xb9\xee\x76\ \xa8\x2b\x4d\x22\x81\x8e\xb4\x22\x8a\xd2\xe7\x84\x4c\x08\x26\xce\ \x3d\x2d\xd7\xb5\x3c\xda\xd7\xa0\x61\xa5\xf9\xd4\x65\x66\x3a\xb2\ \x39\x56\xb8\x23\x7b\xd0\x93\x57\x38\xa2\x66\x8c\x4c\x37\x1e\x56\ \xfd\xaa\x8b\x1b\x0a\xe7\x7a\x6e\x09\x54\x4b\x14\xb0\x1d\x9d\x0f\ \xc8\x8d\x69\x5f\xe1\x59\xbe\xe9\xa1\x61\xe5\x67\xca\x3b\x5c\x51\ \xc6\xc1\x23\x9a\x46\xf4\xa4\x64\x9e\xf5\x47\x81\xb6\x48\xd5\x94\ \xf9\xbc\x71\x6a\xcf\x96\x26\xe3\x1b\x1a\x82\xcc\x27\xc3\x00\x37\ \x72\x68\xa6\x53\xe3\xb2\x81\xf1\x1a\x01\x63\x2f\x8a\x0f\x96\x21\ \x95\x3b\x9e\x66\xba\x32\x33\xbf\x5a\x82\x75\xb0\xff\x00\xc5\x0d\ \xeb\x97\x46\x6d\x77\xa9\x27\xda\xbb\x9d\x75\x70\xde\xa4\x2a\x90\ \x6a\x39\x54\xd3\x10\xd0\xd3\x03\x64\x42\xf6\xb9\x1a\x28\xea\x4e\ \xd4\x90\x69\x80\xda\x4d\xae\x22\xd0\x77\x63\xfc\x0a\x52\x63\xfb\ \xbb\x82\x09\x63\xbb\x6e\x4d\x48\x24\xea\x7e\x40\xd0\x83\x7a\x9a\ \x90\x89\x07\x71\x52\x2c\x06\x77\xb2\xa8\xde\x84\x15\x55\x2e\xe6\ \xca\x39\xd5\x3c\x5e\x20\xcc\xd6\x02\xc8\x36\x14\x5b\x83\x03\x89\ \x93\xc6\x94\xb9\x03\xa0\x1d\x05\x21\x92\xcd\x75\x36\xa3\x35\x04\ \x8a\xc3\x65\x5f\xcc\xb5\x67\x0d\x2b\xc3\x2c\x65\x6d\xac\x4e\x4d\ \xc6\xf5\x5d\x56\xee\x14\x6a\x49\xb7\xbd\x4c\x72\x07\xc4\x62\x82\ \x6a\x11\x15\x45\xba\x03\x44\xa9\x7e\x3c\x5c\x0f\xeb\x56\x43\xdb\ \x51\x4f\x50\x1c\x5e\x36\x57\x1d\x8d\x64\x0a\x62\x31\x06\xe0\xdb\ \xda\xb5\x39\x0c\x69\x6c\xda\xe9\x71\x61\x44\x06\x97\xa4\x61\xf1\ \x80\x8c\xb3\xeb\xfd\x7c\xfe\x75\x64\xa8\xdc\x5a\xc4\x68\x46\x97\ \xad\xb3\x5c\xb7\x07\x43\x63\x4d\x12\x39\xd4\xe5\x3d\xca\x82\x69\ \x2c\x72\xdb\x98\xa9\x57\x61\xa9\x1e\x53\x50\xc3\x73\xb1\x16\x26\ \xc3\xa0\x16\x15\x22\x81\x5b\x37\xa4\x7c\xcd\x18\xbf\x36\x3f\x41\ \x4a\x74\x8f\x92\x48\x17\xf1\x3d\xea\x09\x62\xd6\x1a\x8e\x75\x2c\ \xa0\xcb\x19\x37\x25\x41\x35\x23\x7a\x90\xb3\x05\xd0\x2d\x16\xb7\ \xd5\x8f\xca\x84\x6d\x5c\x09\x02\xd7\x07\xde\x94\xe2\xa4\x9b\x96\ \xa8\x28\xdb\x02\x2a\x6f\xad\x10\xd4\x8d\x0d\xc9\xe9\x52\x72\xa8\ \x55\xb5\x16\x8a\x73\x3b\x2a\x29\x1b\xb1\xb5\x04\xf8\xa8\x20\x66\ \x4d\x65\x91\x77\x51\xa0\x53\xd0\x9f\xda\xb3\xb1\x12\xc9\x34\x85\ \xdd\xd2\xe7\x90\x52\x40\xf9\xdc\x55\x6e\x26\xce\x42\x40\x2b\x66\ \x07\x62\xa6\xf4\x8c\x77\x88\x90\x06\x8c\xb2\xea\x73\x5a\x83\x84\ \x43\x7c\x33\xb3\xb4\x85\x58\xf9\x47\xa7\xf4\xa7\xcb\x87\x71\x1b\ \x08\xe5\xf2\x91\xaa\xb6\xa4\x53\xec\x4a\x8b\x8e\x21\x72\xcb\x15\ \xcd\xbd\x6b\xa7\xe5\x56\x70\xe7\x34\x21\x85\xf2\x9d\x45\x72\x44\ \x90\xc2\x2d\xe6\x2c\x75\xa6\x40\xb9\x70\xca\xa3\x93\x35\xbd\xaf\ \x54\xd4\xe1\x44\x05\xeb\x82\xd1\x28\x26\xf6\xd0\x6d\x7a\xd2\x48\ \x5b\x0b\xd4\x8e\xc0\x9e\xfb\x57\x05\x51\xc8\x5f\xa9\xd4\xd4\xee\ \x69\x65\xda\xfe\x1f\xfe\xd5\xd7\xfb\xc4\x5d\x8e\x62\x6c\x7b\x0f\ \xef\x47\x6b\x0d\x28\x5e\xe6\x64\x51\xba\xdc\xb5\xb9\x02\x2a\x48\ \xa8\x22\x8f\x27\xf5\x1f\xca\xa0\xa1\xe4\x7e\xa2\xa4\x00\x0d\xe9\ \x38\xec\x49\x45\x31\x2b\x12\xe7\x43\xae\xd5\x65\x6e\x1b\x6d\x7d\ \xeb\x39\x22\x95\x66\x0e\xf0\x3b\x00\x6e\x47\x5a\xcd\xff\x00\x86\ \x1f\x02\xb2\xe1\x54\x35\xee\x4d\xcd\xeb\x88\xa3\x12\xac\xad\x65\ \xb8\x6e\x61\x86\xd5\x05\x3a\xde\xa2\x56\xec\x40\xb0\xb6\xe6\x93\ \x89\xc2\xfd\xa4\x12\x08\xf1\x53\x4d\x46\x8e\x3a\x1a\xb4\x16\xc2\ \xc0\x0a\x12\x32\xb6\x61\x7d\x4e\xb4\x62\x62\x48\x0a\xb5\x8d\xee\ \xa7\x40\x16\xc0\x1b\x5a\xfd\x4d\x44\x5e\x3d\xad\x11\x7d\x39\x29\ \x35\xbe\x58\x93\x72\x17\xe6\xa2\xa4\x3b\x0f\x4d\x97\xb8\x00\x7e\ \x95\x9f\xc1\xd6\x03\x3c\xe0\x0c\xcf\x28\xbf\x22\x48\xa6\x61\xf1\ \xf3\xc5\xe5\x73\xe2\x25\xad\x95\x8d\x6b\xc8\x24\x2d\x7b\x86\x1d\ \x1e\xc6\xdf\x5a\xcc\xe2\xf0\x2a\x05\x96\x34\x20\x31\xb3\x0e\x86\ \xb3\x65\x9d\xc3\x2e\xae\x12\xaf\x1a\xc8\x9e\x97\x17\x1d\xbb\x50\ \x30\xa4\xf0\x96\x27\x0d\x24\x7f\x81\x81\x1e\xd4\xf7\x36\x17\xa7\ \xde\xd9\xa4\xbe\x8e\xbf\x33\x42\xe6\xf4\xc6\x16\xd4\xee\x69\x46\ \xa3\x09\xc7\xe9\x82\x3d\xd8\x56\x73\x5c\xe8\x35\x26\xae\x71\x77\ \xb1\x48\x47\xc2\x2e\xde\xe6\xa9\x62\xa7\x4c\x14\x1e\x2b\x1b\xca\ \xeb\xf7\x4b\x6d\xbb\xd7\x3e\x57\xb6\xa2\xaf\x1d\x9b\xc2\x85\x70\ \x68\xd7\x6b\xde\x50\x0e\xe7\x90\xa3\xc3\x44\x62\x96\x08\x94\x5d\ \xa3\x21\x9d\xbb\x92\x0d\x67\x60\x95\xe7\xc6\x78\xb2\x02\xe1\x4e\ \x76\xef\x5b\x5c\x31\x95\xf1\xf9\xdf\x51\x18\x2d\x6f\xc4\xfc\xcf\ \xcb\x6a\xe7\x3b\xba\x6a\xd3\xc8\x71\x39\xb2\x02\x88\xc6\xee\xe7\ \x7f\x61\x52\xcc\x2c\x15\x45\x94\x0b\x01\xd2\x82\xe5\x9c\xb9\xe7\ \xb5\x41\x35\xd7\x46\x08\xb5\x85\xcd\x70\x3a\x77\x26\x80\xea\x40\ \x3c\xb5\x35\x20\xd5\xab\x0c\x06\xa6\xf4\xbb\xd4\x83\x56\xac\x30\ \x1a\x9b\xd0\x03\x5c\xc7\xc8\x6d\x48\x36\x36\xf3\x02\x3e\xa6\xa3\ \x0e\x4f\x84\x62\x63\x77\x8d\x89\x3a\xef\x7e\x74\x31\x9c\xc4\x5b\ \x9d\x4a\x10\x59\xa6\xe6\xf6\x0b\xfe\x91\xce\xa4\x60\x34\x59\x95\ \x10\xbc\x86\xca\x3f\x3a\x05\xb6\xb7\x36\x00\x5c\x9e\x95\x4b\x19\ \x3f\x8b\x2d\x97\xd0\xbe\x9a\x6d\xc4\x3c\x4e\x21\xa6\x6e\x8a\x36\ \x14\xb0\x69\x63\x7a\x9a\xe7\xad\x0c\xb5\x01\x3a\xd4\x1a\x83\xb6\ \xd5\x27\x2b\x59\xb4\xb8\x3c\xaf\x4c\xb2\x87\x18\x85\x40\xa7\x30\ \x59\x00\xf8\x81\xa1\xf0\xbc\xb6\xbe\xbd\x68\xd5\x5d\xa0\x75\x00\ \x06\xb8\x61\x7e\x76\x35\x62\x73\xa6\x59\x19\x46\xb6\x24\x5e\xba\ \xf6\xda\xb9\x87\x89\x69\xd5\x8f\x9c\x93\xa8\xdb\xb5\x72\x86\xce\ \x41\xb1\xef\x6a\x52\x41\xab\x7c\x3e\x7c\xad\xe1\x39\xf2\x36\xdd\ \x8d\x55\xd3\x99\x14\x2e\x5c\x37\x31\xd2\xad\xc5\x5b\x0e\x32\xdc\ \x30\xfa\xd1\x0b\x5a\xd5\x53\x09\x29\x9a\x1b\x31\xf3\xa0\xb6\xa7\ \x71\x56\x86\x80\x03\x5d\x18\xb0\x43\xb5\x4d\xc2\xa9\x63\xb2\x8b\ \xd4\x0a\x56\x39\x98\x61\xec\xa2\xe1\x8f\x98\xda\xa0\x6c\x0d\x9e\ \x1f\x14\xee\xe4\xdf\xb5\xb6\x14\x42\xa8\xe1\xa7\x96\x2f\x2a\xea\ \xa7\xe1\x3b\x56\x83\x03\x60\x76\xd3\x50\x29\x9d\x9a\xe0\x6a\x75\ \xa0\x37\xb5\xaf\xad\x12\x85\x03\xaf\xb9\xa4\x08\x0b\xd3\x10\x12\ \xac\x01\xb3\x5b\xca\x6f\xce\x81\x4f\x73\x44\x46\x9b\x9f\xad\x31\ \x31\xf1\x0a\xd0\x49\xe1\xce\xad\xab\x12\xb2\x01\xa1\xbe\xb6\x3d\ \x0d\x5d\xc0\x60\x1d\x8a\xc9\x88\x5c\x89\xbd\xb9\xb5\x5c\x8f\xcc\ \xb9\x5c\x93\xd6\xfa\xdb\xda\x8a\x16\x24\x34\x6e\xc1\x9a\x33\x6b\ \xf5\x1c\xa8\x9c\x61\xd1\x46\xd7\x94\x20\x00\x28\x16\x00\x72\xa7\ \x0d\x28\x10\x5b\x5b\x6b\x46\x2b\x71\x9a\x15\x48\xd5\x8b\x91\x60\ \x35\x3d\xab\x91\x6d\x1a\x8b\x58\xda\xf6\xe9\x7d\x69\x8c\xb7\x0a\ \xa7\x62\x75\xee\x00\xbf\xeb\x6a\xe6\x1a\x9d\x75\xa4\x16\xe3\xc8\ \x7a\xda\xa4\x0b\x00\x3a\x57\x38\xf2\xdb\xae\x82\x8c\x81\x7a\x92\ \x02\xde\x88\x0b\x54\xd7\x54\x9c\xc4\x2a\x96\x3b\x28\xb9\xa8\x41\ \x65\xd7\xd4\x75\x63\xd4\xd4\x4d\xfe\x4b\xdc\x5c\x65\x35\x26\xe0\ \xdb\xa6\xf5\x24\xd4\x13\x6a\x16\xbd\xea\x00\x26\xa4\xe3\xbd\x71\ \x2d\xc8\xfe\x75\x39\x4d\x2e\x50\xd2\x44\x52\x3b\x00\x77\x73\xb7\ \xb0\xeb\x52\x55\xe2\x52\xa3\x32\x84\x37\x65\xdd\x87\xe9\x44\x98\ \xd4\xca\x03\xa3\x16\xe7\x6e\x74\xa9\x30\x53\x2f\xa4\x07\x03\xf0\ \xd4\x70\xf4\x07\x17\xe6\xf8\x41\x36\x35\xcf\x6e\x95\xb5\x67\x71\ \x75\x80\x01\xcb\x3b\xd8\x9a\x0c\xe9\x98\xa4\x9f\x76\xdf\x85\xb9\ \xd3\x8e\xa6\xe6\xb9\x80\x6b\x66\x45\x6b\x6d\x71\xb5\x69\x00\x45\ \xa6\x9f\x91\xa9\x29\x6e\x67\xf2\xa9\x78\xe3\x65\x39\xa3\x5d\xb7\ \x02\xc4\x50\xc4\xd9\xe0\x46\xce\x3d\x3e\x6b\x9a\x52\x0a\xeb\xea\ \x34\xb9\x21\x57\x86\x44\x37\x62\xca\x48\xbf\x5a\x6a\xb2\x35\xc2\ \x48\xac\x57\x70\x2a\x50\x0c\xe3\xbe\x94\x16\x3f\x0a\x39\x71\x4c\ \xa6\xde\x64\x23\x5e\xb5\x66\xe0\xc9\xa6\xc2\xa8\xc8\x4c\x38\x9b\ \x8b\x82\x8f\x71\x7a\xbe\xb9\x58\x67\x8c\xdd\x48\xbd\xeb\x9c\x34\ \x12\x52\x98\x84\x46\x91\xfd\x2b\xaf\xbf\x6a\x73\x8b\xd6\x6f\x13\ \x9c\x3b\x78\x69\xe8\x53\xf5\xef\x45\xb9\x14\x21\x4f\x8d\x8c\xcc\ \xfa\xdc\x96\x3e\xc3\x5a\xc1\xe2\x18\x89\x31\x78\xb2\xe7\x5b\x9b\ \x28\xe8\x39\x0a\xdb\xc3\xb0\x13\x1c\xc6\xc0\xa9\x1f\x95\x52\x8b\ \x87\x4d\x83\x66\xc4\x4c\x97\x0a\x6d\x19\xe4\x4f\x5a\xe3\xca\x5b\ \x1b\x82\xc2\xa1\xc3\x44\xaa\x06\xb1\x83\x24\x96\xeb\xc8\x55\xbe\ \x10\xa0\x49\x3e\x97\x29\x18\x5b\xdf\xbe\xbf\x9d\x54\x04\x29\x8a\ \x36\xf5\x4a\x73\xb0\xe7\x94\x6d\xf9\xd5\xae\x18\x24\x2d\x3a\x44\ \xe3\xc4\xca\x0b\xb7\x25\x37\xda\x9e\x3e\xaa\xb2\xc0\x8f\x50\x23\ \xde\x84\xef\x40\x1a\x68\x0d\xb1\x0d\x9e\x36\x3a\x38\xd6\xd4\x63\ \x23\x1f\x2c\xa8\x49\xd8\x66\xad\x00\x8b\x8b\xe9\x7b\x9a\x91\xf4\ \xa2\x64\x65\x17\x2a\x6d\xd6\xa3\x42\x2a\x28\x6b\x01\x52\xa7\xad\ \x44\xa6\x28\x55\x5a\x5c\xde\x6d\x94\x6f\x45\x04\xb1\xcf\x71\x1e\ \x60\x47\x23\xce\xa0\x91\x6e\xf5\xc4\x12\x35\x36\xed\x53\xb5\x48\ \xda\xb4\x10\x54\x88\x88\x5d\x59\xfc\x8b\xee\x69\xae\x6e\xe6\xdb\ \x00\x05\x40\x03\xc6\x4e\xaa\x85\x80\xbf\x3b\xef\x43\x23\xac\x51\ \xf8\x8d\xaf\x41\xd6\xa4\x5f\x10\x97\x22\x78\x2a\x75\x6d\x5b\xf8\ \xaa\x60\x9a\xe7\x66\x77\x2e\xc6\xe4\x9b\x93\x52\x39\x56\x6b\x43\ \x02\xa7\x95\x08\x3a\x51\x0d\xeb\x29\x04\x50\xb0\x60\xd7\xb5\xc0\ \xa6\xd8\x74\xa8\x75\xb8\x22\xfb\xd3\x88\xef\x05\xf9\x21\x3d\xc6\ \xb5\x24\xac\x0c\x1a\x56\xb3\x0f\x4a\x0d\xc9\xac\xd7\x5c\x4c\x1e\ \x4b\x48\x8c\xdb\x00\x77\xab\x98\x18\x4e\x1d\x3c\x59\x35\x95\x87\ \x97\x36\xa5\x7b\xd3\x2a\x31\x87\x84\x8b\x13\x0b\x11\x76\x3e\xe7\ \x95\x72\x6a\x5a\xdf\x2a\xeb\xf5\xe7\xbd\x4d\xea\x4e\x51\x94\x00\ \x45\x8f\x5e\xb5\x22\xba\xbb\x2e\x9b\x9f\xad\x21\x31\xb9\x49\x43\ \x8d\xc7\x3a\xd2\x84\x89\x22\xce\x9a\x8b\xed\xcc\x56\x51\x36\x36\ \x3a\x53\x20\x91\xd1\xcb\x46\xc4\x5a\x99\x55\x8d\x4b\x54\xa1\x00\ \x12\xc7\xcb\x6b\x9b\xf3\x15\x49\x71\x92\x81\x62\x15\xbd\xc5\x41\ \xc4\xcb\x23\x58\x90\x01\xd0\xe5\x00\x56\xb5\x9c\x58\xc2\x61\x85\ \xbc\x56\x0d\x72\x6e\xa8\x3e\x1e\x97\xa7\x15\xb1\x25\x9e\xc7\x9d\ \xda\xb3\x56\x79\x64\x46\x57\x91\x89\x89\xb2\x93\xd7\xa5\x40\xd7\ \x5b\xd1\x2c\x58\xd4\x02\xfa\x06\x53\xff\x00\x50\xae\x60\x41\xda\ \xb3\x05\x36\x09\xe4\x8d\xb4\x37\x1f\x84\xed\x4f\xe9\x62\xfa\xd3\ \x06\xd4\xb8\xd8\x3a\x07\x5d\x9b\xf2\xa6\x2e\xd5\xa0\x20\x01\xde\ \xa0\x69\xc4\xd4\x2e\xc6\x31\x71\xf2\xa2\x5d\xaa\x20\xb1\xe2\x33\ \x5f\x70\x2c\xbe\xd5\xa4\xb1\xa0\x52\x49\xb0\x1b\x93\x47\x1d\x9a\ \xc5\x48\x61\xd4\x1a\x4e\x25\x4b\x61\xca\xdf\x42\xcb\x7f\xad\x48\ \xc3\xc6\x8f\x65\x2c\x17\x9a\xdf\x46\xa5\x91\xe6\x2e\xf7\x43\xa6\ \xc0\xf6\xbe\xff\x00\xef\xb5\x1e\x45\xb6\xda\xf5\xe7\x5d\x1f\xa6\ \xf6\xde\x8a\x94\x05\x8d\x43\x66\xd4\x9e\xf4\x43\x7a\x16\x34\x4a\ \x74\xd6\xa4\x9a\xea\xeb\x8a\x1c\xc2\x94\xe9\x54\xb2\x15\x07\x5e\ \x55\xc0\xb1\x17\x68\xf5\xff\x00\x58\xa1\x2c\x7a\xd4\x66\xd6\x84\ \x98\x9d\x1e\xfb\x02\x0e\xa0\x9d\xa8\xb3\x0b\x79\x6c\xdd\xf6\x1f\ \x5f\xe2\x80\xb2\x8f\x31\x03\xdf\x2d\xeb\xb3\x12\x6e\xdf\x2e\xd5\ \x21\x9b\x11\xad\xdf\xb5\xac\xbf\xef\xde\xf4\x2e\xe6\xfe\x60\x2d\ \xd6\xf5\xd7\xbd\x0b\x79\xc6\x50\x7d\xcf\x4a\x92\x6f\xad\x03\xa8\ \xfb\x44\x72\x58\x5c\xdd\x4f\x7d\x28\xc0\x00\x58\x72\xa8\x27\xfe\ \x2a\x34\xe8\xa4\x9a\xaa\x75\xaa\x40\xa3\xcb\x50\xc2\xc6\xa4\x5c\ \xc8\xcd\x19\x55\x60\xb9\xb4\x24\xf4\xa4\xc7\x87\x85\x37\x5c\xe7\ \xab\x6d\x56\x0d\x09\xd2\x8b\x09\x5e\x16\x49\x43\xc4\xaa\x0d\xac\ \xcb\x7b\x5c\x51\x33\x0c\xc0\x15\x74\x27\x6b\xda\xc7\xe6\x2a\x49\ \xa8\x60\x0a\x95\x61\x70\x68\x2a\x7c\x4f\x04\x66\x63\x34\x63\xcd\ \x6f\x32\xdb\x53\x59\x2a\xf3\xe1\xa5\x25\x4b\x46\xdb\x11\xd2\xb7\ \x46\x60\xc6\x27\x60\x40\x17\x43\x6d\xfb\x52\x78\x94\x69\x36\x19\ \xdd\x96\xef\x18\xba\xd8\x7a\x8f\x4a\xc7\x2e\x3b\xdc\x32\xa8\xcb\ \x8e\x57\x87\xc1\xb8\x49\xd8\x02\x75\xdc\x7f\x35\x9d\x38\x2a\x6c\ \x45\x88\xe5\x59\xf8\xa9\x1d\xe5\x69\x09\xb3\x5f\x97\x2a\xbd\x04\ \x87\x11\x82\x59\x08\xf3\x29\xc8\xdd\xfa\x57\x1f\xd7\xe9\xbc\xc1\ \x61\x20\x32\xbd\xce\x8a\x37\x35\x7c\xb9\x06\xc0\x0c\xbb\x65\x23\ \x4a\xe5\x8c\x43\x08\x8c\x6f\xbb\x77\x34\x27\x7a\xde\x63\x2c\xdf\ \xf1\x07\x0e\xcf\x3a\xe2\xa2\x94\x45\x1e\x50\xa7\xa8\xf6\xa6\x70\ \x22\x82\x39\xa1\x8c\x10\xa1\x6f\x73\xbb\x1b\xef\x57\x27\x8f\xc6\ \xc2\xcb\x0d\xae\x4a\xdd\x7d\xc5\x65\xf0\x79\x44\x38\xd0\x1b\x69\ \x01\x43\xaf\x5a\xc5\x92\x72\xd3\xf1\xa2\x48\xca\x54\x8b\xa9\xd0\ \x8a\x50\x83\x0a\x3f\xe4\x9f\xfb\xcd\x36\x45\x2a\xc5\x48\xb5\x42\ \x0b\xb0\x1d\x6b\x55\x17\x88\xfb\x98\x0c\xb0\xb3\x26\x52\x01\x52\ \xd7\x06\x81\x31\x98\x72\x2e\xca\xea\x7a\x0d\x41\xa1\xc5\xbb\xcf\ \x29\xc3\xc2\x9a\x29\xd7\xa9\x34\x71\x61\x22\x44\xfb\xe0\x5d\x8f\ \x20\x6c\x05\x1d\xef\x49\x59\xd9\xf1\x78\xbf\x28\xb6\x6d\x85\xf6\ \x14\xd9\x60\x6c\x32\x89\x92\x4b\xd8\xd8\xe9\x6a\x60\xc3\x45\x71\ \xe1\x33\xc6\xc0\xe8\x77\xae\xc7\x44\xde\x5f\x1b\x13\x7e\x8b\x60\ \x09\xa3\x3e\xa3\xa1\x94\x4d\x00\x93\x2e\x53\x7b\x1a\x9b\xda\xa8\ \xe0\x38\xa6\x0f\x33\x61\x56\x17\x36\x37\x52\xc6\xc4\x9a\x62\xf1\ \x34\xcc\x73\x61\x11\x11\x7d\x44\xb1\xbd\x33\x94\xfe\xac\x5a\x9a\ \xcb\x87\x33\x92\x57\xc2\x20\x83\xfb\x55\x4c\x64\xad\x24\xd7\x61\ \x6b\x01\xa7\x4a\xa9\x8d\xe3\x4d\x89\x4f\x0f\x09\x04\x6a\x11\xae\ \xaa\xe7\xd5\xdf\x5e\x74\x2f\xc5\x1d\x90\xc9\x16\x1a\x1c\xc3\xd6\ \x18\x6a\xa7\xb8\xac\xde\x70\xc9\x56\x2a\x41\xe5\x49\xc0\x71\x11\ \x89\xc4\x24\x32\xe1\xa3\x05\xcd\x8b\x2e\x96\xf9\x53\xf2\x9f\x10\ \xa2\x82\x4d\xed\xa5\x32\xcb\xe2\x12\xd1\xa8\xa7\xc1\x83\x00\x03\ \x33\x5b\xfa\x56\xad\x45\x1e\x1d\x76\x88\x1f\xf5\x1b\xd3\x38\x8d\ \x51\x14\x68\x8c\xc2\xe0\x6d\xb9\xab\x86\x08\x1e\xf6\x4c\xa6\xc4\ \xe8\x74\xdb\xa5\x67\x62\xa2\xc5\x62\x2f\xe1\x36\x74\x1b\x22\xe9\ \x6f\x95\x36\x62\xd5\xec\x3c\xb1\x4a\xf3\x0c\xa1\x4b\x1b\xc7\xdb\ \xda\xa8\xc6\xcd\x98\xa9\xdc\x1a\xb3\xe2\x69\x1e\x1c\xc5\x95\xa2\ \x6d\x5c\x0e\x55\x5d\x47\x9d\x18\x1b\xe6\x4b\x93\xd6\x8a\xa0\xc5\ \x10\xa8\x5a\x9a\x88\xb4\xb5\xed\x52\x37\xb6\x95\x0a\x68\x59\x19\ \xd8\xb0\xd8\x9d\x29\x64\x65\x14\x9b\x9b\xd7\x01\xc8\x0a\x88\x83\ \xa9\xf3\x03\x6f\xd2\x8c\x6a\x34\x37\xa5\x04\xae\xc3\xa9\xa2\x16\ \x45\xcf\x6d\x07\xa4\x75\x3d\x05\x43\x0b\x2e\x7b\x85\x09\xa9\x27\ \xa5\x70\x60\xe0\x4a\xc4\xa9\x22\xc8\xbf\x84\x75\xf7\x35\x27\x22\ \xf8\x51\xe5\x24\x66\x26\xec\x7b\xd7\x66\x3c\x87\xd6\xac\x43\x84\ \x77\x50\xc6\xc8\xa7\x9b\x6e\x69\xc9\x84\x81\x46\xa5\x98\xfd\x29\ \xca\xb5\x48\x13\xf8\x4f\xca\xb9\x58\xb3\x10\x45\xb4\xab\xb2\x61\ \x52\xc4\xc6\xc4\x11\xc8\xd5\x2d\x4c\x9a\x82\x32\xe8\x6f\x56\x25\ \xae\x1f\x29\x56\x31\x9d\x9b\x6f\x7a\xbd\x01\xba\xeb\x58\xf9\xd8\ \x3f\x90\x6c\x77\xad\xa5\xb1\x01\x80\xd0\x80\x45\xab\x5c\x45\x31\ \x05\xcd\xaa\xb9\x97\x2e\x3d\xa6\xb1\x2b\x9a\xd7\xb7\x2a\xb5\x0f\ \xa8\x77\xa1\x89\x8a\xc0\x97\x50\x57\x28\xfe\xf5\xb0\x31\x22\x3b\ \xaa\x23\x06\xbf\x98\xf6\x03\x5f\xd6\x8c\x6b\xf3\xaa\x39\xbe\xcf\ \x8b\xce\x05\xc1\x1b\x7b\xd5\xd6\x60\xa0\x1e\xa0\x10\x29\x94\x25\ \x5a\xea\x3d\xa8\xae\x6d\xbd\x2d\x76\xb7\x4d\x28\x81\xa4\x26\x88\ \x11\x6a\x1b\xd0\x96\xb5\x48\x4c\x45\x09\x34\x2c\xff\x00\x2a\x0c\ \xe3\x6b\x8f\xad\x1a\x70\xcb\xf7\xae\x2c\x05\x29\x9a\xc3\x5a\x12\ \xe4\xec\x3e\xb4\x69\xc1\xca\xcd\x75\x03\xad\xea\x73\x6b\x4b\x5d\ \xfa\x93\xce\x88\x54\x86\x4f\x97\xb5\xf5\x34\xd4\x17\x00\x2e\xdc\ \xad\x42\x8a\x58\x58\x0b\xde\x80\x2c\xda\xc5\x19\xd7\x62\xdf\x86\ \x90\x99\xa7\x0a\x08\x89\x73\x11\xbb\x72\x14\x58\x24\x60\x8d\x2c\ \x9e\xb9\x3f\x4a\x88\xb0\x8c\x8b\xe6\x90\x38\xbd\xec\x05\x81\xf7\ \xa6\xc6\x7c\xbb\x9b\x8a\x64\xbb\xda\x15\x03\xef\xbe\xd4\x67\x6a\ \x5c\x84\x09\x3c\xc7\x4b\x5c\x55\x40\x49\xb8\xb8\x04\xd0\x33\x5d\ \x8a\xda\xdf\x3a\xe9\x65\xb9\xb2\x7d\x6b\x88\x0a\x2c\x3e\x66\x83\ \x11\x41\x23\x85\x5b\xd4\xbb\x59\x49\xe9\x55\xee\xce\xf7\x35\x9b\ \x49\x81\x6e\xa4\x1d\x58\x8b\xdf\xa1\xaa\x78\xec\x40\x66\x40\x9b\ \x2f\xab\xdf\x9d\x5b\x53\xf7\x83\xde\xb2\xb1\x0d\x7c\x64\xeb\x71\ \x96\xf9\x94\x74\xbe\xf5\x9e\x57\xa3\x18\xdc\x6a\x1f\x07\x18\xf6\ \x5b\x23\x1b\xaf\x71\x45\xfe\x1c\x90\x0e\x21\xe1\xc8\x7e\xed\x81\ \x2c\x3a\x5b\x9d\x5e\xc5\xc2\xb8\xb8\x7c\x22\x40\x75\xf4\x13\xfa\ \x56\x56\x0d\x5a\x0e\x20\x61\x95\x4a\xb3\x02\xba\xf2\xbd\x70\xb3\ \x39\x6b\x7f\x1e\x8a\x60\x44\x87\x36\xf4\xa3\xbd\x55\xc1\xe3\x8a\ \x0f\x03\x11\x72\xb7\xd1\x8e\xeb\x57\x19\x48\x20\x8d\x41\xd8\x8e\ \x75\xd3\x75\x90\x83\x95\x83\x0e\x55\x9d\xc5\xb0\x6c\x92\x36\x22\ \x11\x78\x98\xdf\x4f\x84\xd6\x8b\x29\x1a\x10\x45\x72\x12\xbb\x73\ \xde\xfc\xe8\xb3\x54\xac\xfc\x16\x39\x72\x88\xb1\x37\x2a\x36\x7e\ \x62\xad\x23\xc0\xd6\x29\x89\x8c\xdf\x5d\x4d\x88\xa8\xc4\x61\x30\ \xb3\xfa\x94\xc4\xdd\x50\x68\x7e\x55\x56\x4e\x16\x6f\xf7\x58\x88\ \xdb\xb3\x79\x68\xff\x00\x28\x57\xd7\xcc\x09\x59\xa2\xb7\x36\x0c\ \x29\x12\x62\xb0\x48\x4e\x69\xcb\x11\xc9\x53\x7f\x9d\x51\x7e\x1d\ \x8b\x52\x09\x8b\x32\xdf\x52\xa6\xf5\x57\x1c\x78\x96\x1f\x10\x50\ \x61\x7e\xef\xe1\x1e\x1d\xc5\xa8\xbc\xac\xf8\xa4\x5d\xc4\x71\x57\ \x23\x26\x1a\x31\x10\x23\x56\xdd\xbe\xb5\x51\xdd\x84\xb9\x14\xe7\ \xc4\xb0\xcc\x4b\x1d\x10\x75\x34\x98\xb1\x2c\x49\x69\xf0\x91\x8c\ \xbb\xe5\x26\xff\x00\x41\x54\x31\x3c\x59\xa2\xe2\x06\x58\xf0\xec\ \x88\xde\xa2\x41\x0c\x47\x6e\x95\xca\xf2\xfb\x6b\x58\xb1\x89\xc2\ \xa6\x1d\xd5\xdf\x10\xac\xc4\xde\xda\xaf\xf2\x68\x31\xf8\xb9\x31\ \x01\x54\xbe\x60\xa3\x5b\x0b\x02\x7a\xda\x93\x2a\xf8\x89\xe3\xc4\ \xe6\x44\x6d\xcf\x31\xef\x4a\xbd\x62\xdf\xe1\xc1\x03\x56\xa3\x2e\ \x71\x38\x42\xba\xc9\x21\x2a\x6d\xbb\x27\x7a\xa8\x0d\x6d\xff\x00\ \x87\x11\x15\xd3\x13\x3a\x80\x21\xd1\x6f\xbe\xa6\xf4\xf1\x9b\x55\ \xab\x5c\x23\x87\x36\x1f\x33\x31\xb4\x8c\x37\xe4\x83\xf9\xad\x18\ \x55\x21\x5c\xb1\xdf\xbb\x1d\xcd\x40\x91\x65\x17\x8e\x55\x23\xa5\ \xec\x6a\x76\xd2\xbd\x32\x49\xe3\x14\x60\xd1\x03\x4b\x06\x8d\x01\ \x63\x60\x09\x34\x83\x22\x60\x1a\xe7\x60\x09\x3e\xd5\xd8\x13\x93\ \x04\xad\xac\x62\xec\xcd\xd6\xdc\xa9\x32\x9c\xc5\x70\xe8\x41\x67\ \x20\xc9\x6d\x40\x14\xeb\xac\x85\x93\x65\x71\x94\x76\x1c\xa9\x4a\ \x98\xb9\xd2\x46\x00\x2a\xbe\x5d\xd9\x86\xff\x00\x2a\x59\x66\x73\ \x76\x37\xa5\xa0\x14\xc1\x58\x68\x42\xa4\x50\xd7\x7c\x27\xda\xa4\ \x33\xf8\x79\x9e\x42\x8f\x9d\x00\xd0\xd8\x68\x28\x97\x6a\x60\xa2\ \xe7\x50\x45\xcf\x7a\xea\x95\x3e\x60\x06\xa7\x90\x1b\xd2\x02\xaa\ \xb2\xe2\x0c\x24\xb3\xac\x76\x39\x07\xc4\xd5\xa1\x87\xc3\xa4\x07\ \xc5\x94\x03\x21\xe5\xc9\x6a\xbc\x90\x7d\x90\x7d\xa8\x00\x25\x63\ \x62\x06\xb9\x68\xf0\xb3\x4f\x89\x3e\x75\x40\xa3\x98\x16\xb5\x33\ \xaa\xaa\xcb\x48\xa4\xdc\xb1\xd7\x99\x15\xc4\x81\xb9\x1f\x5a\x51\ \x56\x67\x0a\x4d\xc0\xfc\xaa\x7c\x21\x9a\xf7\xb0\xe9\x4b\x26\xd5\ \x7c\x72\x82\x4c\x80\x00\x6d\xaf\x7a\x70\x04\x68\x18\xfc\xea\x55\ \x41\x3e\x7d\x6f\xa1\x1d\xaa\x4c\xf1\x7a\xd2\xe1\x6d\x9b\x0c\xc2\ \xf7\x28\x74\xf6\xac\xe9\x30\xec\x98\x96\x41\x7c\xbc\xb5\xb5\xe9\ \xd8\x1c\xd0\xe2\x75\x07\x2b\x0b\x1a\xb8\xf5\x5a\xad\x50\xc5\x41\ \x3d\x05\xc5\x14\x63\x2d\xd0\xdb\xf1\x0f\xdc\x7d\x7f\x5a\x50\x0f\ \x7c\xad\x6b\x5f\x53\x45\x24\x81\x02\x3b\x1b\x0c\xc5\x49\xec\x45\ \x74\x64\xae\x27\x1d\xd2\x36\x52\x6f\xaa\xfc\xea\xc3\x00\xa7\x28\ \xdc\x00\x09\xf9\x50\x0c\xb3\x48\x1a\xf7\x8e\x3d\x8f\x26\x34\x4e\ \x75\x26\xa4\x90\x6d\x5c\x1a\x80\x1a\xea\x92\x58\x96\xbd\xc9\x02\ \xfb\x50\xb5\xed\xeb\x6f\xad\x40\x3e\x51\xdc\x57\x1a\x90\x6c\x4f\ \xa8\xde\xd5\x24\x0e\x82\xba\xf5\x0c\x68\x48\x20\x03\xa5\x75\xea\ \x2a\x54\x5c\xda\x84\x25\x37\x15\x18\xcc\x4a\xe1\x80\x45\x01\xe5\ \x22\xf6\x3b\x20\xea\x6b\x95\xd4\x11\x93\xef\x09\x3c\x81\xb0\xf9\ \xd6\x5c\xce\xcf\x33\xb3\x1b\xb3\x31\x2c\x7a\x9a\xad\xc8\xa2\xcb\ \x62\xf1\x32\x8b\x3e\x25\xb2\xfe\x18\xd7\x2d\xe8\xb0\xb8\x89\x62\ \x23\xc3\x62\x00\x37\xb7\x5a\xab\x1d\x59\xc1\x46\x65\x9d\x63\x51\ \xab\x1b\x51\xde\x9a\xdd\x27\xee\xc3\x81\xba\x83\x6a\x15\x4d\x2f\ \x7d\x4e\xa6\x9c\x40\xd8\x6c\x05\x85\x01\x16\x3a\x6d\xd2\xbb\xb0\ \x5b\xf9\x54\x9b\x6c\x2f\x4b\x68\xc1\xf5\x6a\x7a\xd3\x24\x04\xe8\ \x4e\x9d\x05\x41\xd3\x5a\x2a\x21\xa2\x50\x41\x51\xa8\xeb\x40\xf9\ \xb7\x16\x14\xe6\xa5\x3d\x66\x98\x53\x82\x7d\x76\xf6\x14\x04\xd3\ \x1c\xd2\x98\xd6\x69\x46\x62\x1a\xfd\x2b\x37\x8a\x2f\x83\x2f\x8e\ \x6f\xb8\x52\x79\x32\x9a\xd0\xaa\xdc\x4d\x5a\x54\x11\x78\x25\xd2\ \xd7\x24\x75\xac\x5f\x0c\x50\x93\x46\x20\x6d\x43\x3c\x29\x8c\x8c\ \x24\xa1\x83\x29\xf2\xc8\xa3\x51\xef\x44\xe2\x64\x16\x43\x13\x90\ \x2c\x33\x8b\x11\x55\x27\x4e\x22\xe4\xdc\x48\x47\xf4\x9f\xe2\xb9\ \xd6\x88\xc4\x1c\x46\x1d\x8a\xe2\x62\xf1\x50\x68\x24\x1b\xfd\x69\ \xf8\x3e\x27\x04\x70\x18\xb3\xba\x03\xb1\x61\x7c\xbf\x3a\x94\xc1\ \xe2\xda\x2f\xbe\x25\x54\xf2\x60\x49\x34\xb1\xc3\xb0\xef\x7f\x0a\ \x44\x27\x98\x91\x8a\x5b\xf5\xac\xf7\x3c\x3d\x35\xb0\xc6\x29\x30\ \xaa\xd1\xe2\x52\x4b\x5e\xe6\xfa\xd7\x1c\x9c\xe4\x4f\xfb\xab\xcf\ \x62\x70\xf8\x9c\x0c\x99\xd6\xe8\x2f\xa3\x2b\xdc\x1f\xca\x8a\x3e\ \x2d\x36\xd8\x80\xb3\x2f\x32\x56\xcd\xf5\xa7\xf7\x3e\x8c\x6e\xbf\ \x87\x6b\xf8\xd1\xe9\xfd\x54\x99\x24\x85\x75\x69\x47\xfd\x3a\xd5\ \x28\x24\xc3\x62\x85\xb0\xf2\x15\x7b\x5f\xc3\x7d\x3f\x3a\x19\x94\ \xa9\xb3\x0b\x11\x4d\xe5\xd2\xc5\xa6\xc5\xc2\x86\xe8\xae\xc7\xbe\ \x82\x82\x6e\x21\x24\xa9\xe1\x95\xca\x84\x58\x8c\xc4\xfe\xb5\x50\ \xd4\x56\x3f\x54\x86\x4c\x34\xa4\xfd\xd6\x3a\xea\x0e\xce\x4a\xda\ \x97\x34\x18\xd4\x5c\xca\xe9\x32\x0d\xf6\x20\x8e\xf7\xa7\x57\x2b\ \x14\x60\x54\xd8\xd1\x90\xeb\x35\x22\x84\xc8\x64\xc3\x01\x0c\x84\ \x1c\xd1\x1f\x44\x9e\xdd\x0d\x56\xc4\xc7\x97\x12\x63\x41\xec\x08\ \xd6\xb6\x71\x18\x13\x8b\x9d\x1a\x01\x95\x9f\x57\xe8\x2b\x51\x70\ \xf8\x68\xe1\x10\x01\xaa\x8b\x09\x40\xd5\x4d\x13\x86\xad\x79\xdc\ \x26\x0f\xc3\x0b\x2e\x24\x58\x9d\x55\x39\x9f\x7a\xbe\xb3\xc4\x8c\ \xa9\x3b\x64\x59\xd0\x59\xc0\xd8\x82\x77\xfa\xd0\x63\xf0\xd2\xe1\ \xe6\xb4\x87\x30\x6d\x43\xfe\x2a\x56\x2b\x0e\xf8\x98\x62\x58\x99\ \x3c\x80\xdf\x33\x58\xd1\xe7\x8b\xd6\xa6\x0b\x08\xe6\x70\xe5\xbc\ \x8b\x66\x0c\xba\xde\xae\x66\x0f\x3b\x2a\x87\x76\xbf\x9b\x28\x00\ \x2f\xcc\xd6\x3f\x0a\x3c\x4f\x02\xa5\x22\x78\x24\x43\xbc\x65\xef\ \x7f\x6a\xd6\xc0\xbc\x72\x42\x23\xb1\x8a\x76\xf3\x34\x64\xdf\xf3\ \xae\xbc\x2f\x4c\xd3\x4a\x91\x6b\x42\xef\xfe\x97\x1a\x7b\xd4\xa3\ \x5e\xe2\x42\x07\xff\x00\xd6\x87\x4f\x99\xe7\x42\x47\x6a\x95\x51\ \x7b\x90\x0d\x6c\x08\xb1\x0b\x95\x55\x54\x74\x51\x52\x80\x93\x43\ \x94\x11\x6d\x7e\xb4\x8c\x6b\x65\xfb\x95\x63\x7f\x8f\xf8\xab\x71\ \x2b\x83\xde\xd4\xc0\x53\x28\x2d\x2a\x29\x23\x66\x3a\xd2\x63\x8c\ \xbf\x94\x31\xa6\xaa\xa0\x3e\x33\x59\xf4\x01\x01\x1c\x86\x99\xab\ \x11\xa3\x4a\x84\x17\x91\x85\xb9\x65\x20\x93\xec\x2b\xac\x4a\x12\ \x30\xb3\xda\xdb\xdc\x54\x09\x5b\x93\x28\xee\x00\x15\xd7\xb9\xb9\ \x37\xfc\xe9\x06\xd9\xef\xe5\x85\x35\xe4\xf2\x58\xd4\x48\xd9\x06\ \x66\xc3\x4e\x07\x5b\x83\x40\xb7\xb0\x06\xa5\x4b\x03\x71\x71\x4a\ \xc0\x7d\xa8\xb7\x97\x0d\x03\xbb\x75\x61\x7a\xbf\xc3\x9a\x35\x16\ \x95\x44\x53\x30\xbd\x8e\xdf\xf9\xa8\xe1\xea\xce\xc5\xdf\xd2\xbc\ \x86\x97\x35\x66\x78\xa3\x9c\x5a\x54\xb9\xea\x34\x35\xa9\x2f\xa2\ \xd0\xca\xab\x88\x21\x33\x5e\x34\xd5\xcf\xe2\x3d\x05\x1a\xe8\x32\ \x8d\x14\x6c\x06\xc2\xb8\x21\x48\xc2\x20\xb2\x8d\xaf\x5d\x66\x3a\ \x11\x61\xce\x96\x51\x1f\xa3\xe7\x44\x05\x48\x15\xd6\xa9\x38\x54\ \xaa\xdc\xf4\x00\x5c\x9e\x82\x88\x21\x22\xf6\xd3\xa9\xaa\xdc\x47\ \x12\x91\x44\x61\x8d\x83\x3b\x8b\x31\x07\xd2\x29\xea\x7a\x99\x7f\ \xe2\x39\xde\x5c\x44\x6f\x1b\x11\x1b\x0c\xaa\x3a\x5a\x91\xc3\xb1\ \x72\xe1\xa5\xf5\x96\x46\xf5\x03\xaf\x3a\x2c\x59\xcf\x85\x0d\x63\ \xf7\x6c\x0f\xd7\x4a\xaa\xbe\xab\x74\xae\x36\xf7\xad\xe3\xd9\x42\ \xe2\x58\x04\x8b\xb7\xed\xca\xa2\x64\x12\xc2\x63\x26\xda\x82\x0d\ \x66\x7f\x87\xb1\x36\xc2\x80\x7f\xe5\xb1\x56\x17\xe4\x79\xd6\xa9\ \xec\x6e\x0e\xc6\xbd\x12\xec\x61\x2b\x65\x01\x57\x45\x5d\xab\x98\ \xde\xa2\xba\x94\xea\xe1\xb8\xae\xae\xa9\x05\x3d\x03\xda\xa1\x88\ \x02\xa2\x43\x96\xe7\x91\xde\x96\x5c\x6f\x63\x6e\xb4\x6a\x13\x35\ \xea\x2f\x43\x7b\xed\xad\x70\xa1\x08\x7f\x73\x40\x5c\xca\xb9\x22\ \x46\x2a\x4d\x99\xf9\x5a\x8b\x42\xac\xa4\x8f\x30\x22\x81\xa6\x8e\ \x1c\x22\xc8\xdb\x81\x60\xbd\xea\x49\xc7\x62\x57\x0d\x0e\x55\x3e\ \x72\x2c\x8b\xd0\x75\xac\xe4\x6b\xeb\x49\x9e\x57\x9a\x63\x23\x9b\ \x93\x4d\x48\xe4\x45\x0c\xc8\xc0\x75\x22\xb1\xfa\xda\xd6\x61\xa9\ \xbd\x6e\x70\x7c\x3f\x81\x17\x88\xe3\xef\x1f\x6e\xc2\xb0\xe1\xb6\ \x71\x7d\xaf\xad\x7a\x53\xea\x1d\x2c\x2d\xf4\xae\x9c\x27\x6c\xf2\ \x30\x1d\x2a\x0d\x4a\x54\x91\x5d\x59\x29\xc5\x03\xfa\x69\xac\x29\ \x6c\x39\x51\x51\x47\x7a\x5c\x83\xa9\x03\xdc\x8a\x29\xdf\xc2\x89\ \xa4\x3c\xb6\xf7\xac\xa4\xbc\xd8\x91\x9c\x17\xcc\x75\xb5\x63\x95\ \x31\x79\xd7\x4b\xdd\x6d\xfe\xa1\x49\x25\x4e\xc7\x37\xfa\x05\xff\ \x00\x3d\xa8\xca\x46\x86\xe9\x1a\x2d\xb9\xda\x85\x89\x3b\x92\x68\ \x20\x21\xef\xea\x11\x8e\xde\x66\xfe\x28\x48\xb1\x37\x79\x1b\xdc\ \x81\xfb\x51\x31\xa0\x63\x59\xa8\xb3\x06\x1b\x35\xfc\x22\x4f\x3b\ \xb5\x42\xbc\x71\xe9\x1a\xe4\xf6\x1a\xd4\xb1\xa0\x26\x82\x23\x3b\ \x6f\xe2\x3d\xfd\xcd\x04\x92\x17\x5b\x00\xbe\xf9\x05\x4e\x9d\x3f\ \x2a\x06\x00\xf2\xb7\xb5\x45\xca\xea\x17\x21\x8a\x36\x5e\x61\x96\ \xa9\x71\x0c\x0c\x0e\x9e\x26\x1f\x07\x11\xfc\x48\x14\xdc\x77\xab\ \x7a\xdb\xad\x40\x24\x1b\x8b\x82\x3a\x51\x64\xa9\x84\xcb\x00\x24\ \x1c\x32\x0e\xb6\xb8\x22\xb4\x70\x03\x0f\x89\x83\x2b\x02\x64\x5d\ \x02\x97\xd6\xdf\x4a\xb3\x89\x86\x1c\x40\x1e\x34\x76\x61\xf1\x2d\ \x81\xaa\x72\xf0\xdb\x31\x31\x62\x00\x3c\x83\x0b\x7e\x75\xcf\xf3\ \x65\x6b\x61\xcd\x86\xc3\x29\xb3\x40\xe0\x8e\xae\x69\x58\x98\x70\ \x91\x2e\x62\x18\x5f\x61\x7b\xd4\x88\xf8\xbc\x63\x2c\x72\x19\x07\ \xf4\xb0\x6b\x50\xcb\x3e\x35\x7c\x98\x8c\x1e\x7d\x39\x2d\xbf\x4a\ \x7a\xfe\x01\x61\xa3\xc2\x4b\x19\x61\x1b\x12\xbb\xdd\xad\x4e\x8d\ \x63\x12\x00\xb0\xc6\xba\xda\xe0\x6b\x55\x63\xe2\x10\x44\x32\x36\ \x19\x96\xfe\xa0\x0d\xa8\xcf\x11\xc1\x5e\xf9\x27\xfa\x8a\xb6\x21\ \xc4\xa0\x33\xce\x45\x99\xd8\x81\xfd\x20\x69\x52\x8a\xcc\xc0\x0d\ \x49\xa0\x18\xec\x26\x63\xe4\x93\x2b\xea\xb7\x61\x6c\xdd\x3b\x5e\ \xaa\x62\xf8\x94\x85\x5a\x28\xa2\x10\x83\xa1\xeb\x46\xc8\x85\xc6\ \xa6\x8d\x82\x40\x87\x31\x8c\x9c\xcd\xcb\xda\xa9\x28\xa1\x07\x5a\ \x35\x3a\x57\x3d\xde\xda\xc4\x93\x6a\xe4\x62\xae\x19\x4d\x88\xd8\ \xd7\x1a\x8e\x75\x44\xdd\xc3\x4d\xf6\x9c\x1a\x4c\x4f\x9c\x79\x5f\ \xdf\xad\x1a\x9a\xce\xe0\xb8\x85\x8e\x46\x86\x56\xb4\x72\x0d\xfa\ \x1e\x46\xb4\x8a\x95\x6b\x1a\xed\xc6\xec\x66\xa5\x9f\xc3\x85\xe5\ \xe6\xa3\x4f\x7a\xce\x04\x93\x73\xa9\x35\x77\x19\xff\x00\xed\xf2\ \x7f\xa9\x6b\x3f\x52\xb6\x1b\xde\xae\x4a\x2c\x46\xaa\x50\xeb\x9a\ \x31\xff\x00\xfd\x0f\xf1\xfa\xd1\x31\x2c\xd7\x63\x44\xe1\xcb\xf9\ \xc5\x8f\x4b\x5a\xd5\x39\x68\x41\x17\xe5\xa5\x4d\x8f\x3b\x9a\x20\ \xbd\x68\x82\xd3\x8b\x42\xa2\x8a\xd4\x40\x57\x01\x48\x5e\xc1\xae\ \x5c\x2a\xdb\xe2\x24\xd3\x00\x3a\xd8\x6b\x6d\x2f\xd6\x87\x00\x73\ \x61\xb2\xde\xe5\x0e\xdd\xa8\xe5\x0c\x19\x55\x05\xdc\xec\xbf\xb9\ \xad\xb2\xab\x84\x5c\x44\xa5\x9b\xc6\x65\x50\x75\x37\xe7\x56\x82\ \xb8\xf8\x8c\xab\xce\xfa\x30\xfe\x68\xa0\x87\xc2\x84\x25\xee\x49\ \xbb\x7b\xd1\xaa\xda\x99\x10\x14\x06\x17\x53\x7b\x6e\x2d\x62\x3d\ \xe8\x71\x32\xc7\x86\x8c\x33\x82\xcc\xde\x95\x15\x60\xda\xe1\xc8\ \xdb\x46\x3d\x8f\xf0\x6a\x97\x1e\x53\x68\x4d\xb4\x00\x8f\xce\xab\ \xd4\x4a\x38\xbc\x44\xb3\xb9\x2c\x48\x5e\x4a\x36\x15\x56\x6b\x86\ \x03\x91\xa6\xb6\xf4\x32\x8c\xc9\xa6\xe0\xd7\x2b\xdb\x63\x2b\x9a\ \x39\x13\x7c\xc8\x6c\x2b\x32\x31\x6a\xd6\xc3\xa4\x84\x24\x99\x18\ \xaf\x33\x6a\xcd\x99\x32\x4c\xeb\xd1\x88\xac\xf2\x89\x77\x80\x37\ \xdf\xc9\x17\xfe\xe2\x7e\x63\x51\x5b\x38\x2c\x46\x82\x29\x2d\x6f\ \x84\xf4\xaf\x3d\xc3\xa4\xf0\xb1\xd1\x49\x6d\x98\x56\xcc\xca\x15\ \xca\x8e\x46\xba\x70\xbd\x0a\xd2\x20\x8f\xe6\xa2\xb3\xe2\x9a\x58\ \xfd\x0e\x40\xe9\x4e\x18\xd9\x00\xf3\x22\x37\xca\xd5\xd3\xf5\x19\ \xc5\xaa\x83\xb5\x57\x18\xdd\x75\x85\x7e\x44\xd7\x1c\x62\x69\xf7\ \x47\xbf\x9a\xad\x8b\x0c\x7d\xe8\x0d\x29\xf1\x84\xe8\xb0\xaf\xd4\ \x9a\x53\xe3\xa4\x07\x41\x18\xed\x96\x8d\x87\x0f\xc8\x3b\xfd\x6a\ \x42\xad\xf6\xaa\x9f\x6c\x97\xf1\xaf\xd0\x51\x2e\x32\x41\xba\xa3\ \x0f\x6a\x36\x2c\x5b\x05\x63\x46\x91\xb4\x54\x17\xf7\xac\x8c\x4c\ \xad\x2c\xcd\x2d\xaf\x7d\xd0\x73\x1d\xbb\xd6\x9a\x62\x20\x91\x1a\ \x39\x03\x28\x75\xb1\xe9\x59\x93\xc4\x62\x90\xad\xee\xa7\xd2\x7a\ \xd6\x79\x18\xb1\xc2\x70\xcb\x2c\xa6\x56\xf3\x46\x9a\xfb\x9e\x95\ \xab\x9f\x30\x2a\xe0\x32\x9f\x84\xed\x59\x3c\x3b\x10\xd0\xc8\xc0\ \x65\xcb\x26\xe0\xec\x4f\x7a\xd5\x4b\x32\x07\x5f\x49\xfc\x8f\x4a\ \xd7\x0f\x05\x51\xc7\x41\xe0\x4a\x0a\xff\x00\x96\xfa\xaf\x6e\xd5\ \xb1\x80\x98\x4f\x83\x47\xbe\xaa\x32\xb5\x52\xc7\x28\x6c\x03\xdf\ \xe1\x21\x85\x07\xf8\x7e\x52\x27\x78\x4e\xce\xb7\x1e\xe2\xb5\x3a\ \xa2\xf8\xd8\x8d\xb5\xb1\xa6\x83\xa5\x57\x06\xfa\xd3\x11\xb4\xae\ \xac\x8d\xe9\x2f\xbd\x30\x9b\xd0\xb6\xba\x54\x95\xf1\x68\x1e\x02\ \xa4\x68\x59\x7f\x5a\x51\x45\x40\x42\x22\xa8\xec\x2a\xcc\x80\x98\ \xd8\x0d\xed\x71\xdf\x9d\x2d\xc0\x3a\x8d\x8e\xa2\xb1\x61\x55\x90\ \x69\x6a\x5b\x69\x56\x1d\x75\xa4\xc8\xa4\x56\x69\x25\xa8\x1f\x4a\ \x61\x14\xb7\x15\x84\x5b\x9d\x68\x68\xce\xf5\x0c\x2a\x32\x80\xef\ \x43\xa5\xe8\x88\xd2\x84\xd4\x50\x68\x6b\x89\xa8\xbd\x1a\x93\x42\ \xdb\x57\x72\xa8\x6b\x05\x2c\xcc\xaa\xa3\x99\x34\x20\x10\x2f\xb5\ \x48\x69\x14\x59\x64\x70\x3b\x35\x46\x68\x7f\xf7\xd0\x7b\xd1\x32\ \x90\x3b\x75\x07\x4a\x93\xbc\x57\x1b\x90\x7d\xd4\x1f\xda\x93\x24\ \x78\x69\x2e\x24\xc3\x47\xee\x83\x29\xa3\x61\xce\x85\xa8\xa6\x14\ \xd8\x4c\x13\x23\x28\x59\x10\x1d\xfc\xc1\x81\xf9\x50\xae\x0b\x09\ \x75\x52\xf2\xca\x3e\x1c\xda\x11\xfd\x34\xeb\x50\xca\xa4\x02\x14\ \x7d\xe3\x8f\x20\xef\xd6\xb3\x90\x99\x19\x48\x85\xa1\x85\x23\xe5\ \xe9\xb9\xa3\xce\x24\x19\x65\x8e\x37\x1d\x0a\x8f\xda\x97\x23\x03\ \x26\xfa\xf3\xf7\xa9\x43\xad\x86\xf5\xa0\xa7\xc5\x70\x89\x08\x59\ \xa1\x2d\xe1\xb9\x37\x07\xe1\x3d\x2a\x90\xad\x4e\x35\x2a\xc7\x85\ \x18\x60\xc0\xbb\x36\x67\x03\x90\xe5\x59\x43\x38\x37\xbe\x9d\xab\ \x9f\x39\x34\xc3\x2d\xa5\x5a\xc3\x71\x0c\x4c\x4a\x13\x30\x74\x02\ \xc1\x5c\x5c\x0a\xa6\xcc\x2e\x32\xde\xe3\xad\x19\x3a\x5f\x29\x17\ \xa2\x74\xbd\x6b\xc5\x8a\x87\x17\x87\x92\x30\x9e\x1c\x85\x7d\x37\ \xd0\xfb\x55\x58\xe3\x66\x6c\x80\x6b\xfa\x52\x38\x79\x61\x89\x89\ \x81\xd4\xb8\xd6\xb5\xf1\x50\x09\x99\xd6\x18\xec\xaa\x7c\xe8\x3e\ \x3d\x34\x1e\xdd\xab\xa4\xff\x00\x28\x3c\x5e\x6c\xad\xe4\x91\x03\ \x0e\xa7\x7a\x54\xd8\x20\x7c\xd0\xb5\xff\x00\xa4\xef\x56\x05\x88\ \x2d\x96\xc6\xe4\x10\x77\x16\xa9\xb7\x3d\x2f\x5d\x71\x86\x6b\x23\ \x23\x65\x60\x41\x1b\x83\x51\x6a\xd2\x9d\x12\x58\xfc\xe8\x73\x5b\ \x46\xb6\xd5\x9f\x30\x68\xc9\x52\x3c\xc3\x4b\x56\x6c\x6a\x22\xa4\ \x0a\x08\xcb\xde\xe7\x5f\x7a\x60\x64\x04\x29\x0e\xcc\x75\x08\xa3\ \x5a\x91\x98\x67\x68\x98\x32\x9b\x66\x60\xbf\xef\xe5\x5a\x3e\x81\ \x68\xc5\xc1\xd7\x37\x36\xee\x6b\x32\xc7\x38\x67\x00\x65\xf4\x20\ \x37\xd7\xa9\xab\x58\x09\xf4\xf0\xa4\x3a\x7c\x24\xf2\xad\x71\xa2\ \xac\x80\x48\xe9\x5d\x62\x07\x5a\x3b\x5b\x43\x5d\x5b\x08\x16\x23\ \x5d\x54\x8b\x1a\x46\x22\x29\xe6\x84\xc2\x02\xb8\x02\xea\xd7\xb1\ \x27\xa5\x3f\x28\xde\xd5\x0c\x0a\xea\x9a\x1d\xed\x45\x4c\x09\x4b\ \x47\x7f\xf8\x69\x49\x1c\x88\xfe\x2b\x94\x87\x85\x64\x00\x8b\xe8\ \x47\x42\x2b\x5f\x88\x61\x9a\x71\xe2\xc1\xfe\x67\xc4\x2f\xbf\x71\ \x54\x57\x0f\x2b\x4c\x10\xc6\x47\x8b\xdb\x98\xfe\x47\xe9\x5c\xef\ \x1c\xad\x4a\xd2\xc2\x1f\x0f\x86\x21\x51\xb4\x45\x88\xeb\xad\x60\ \x71\xa8\xc0\xc5\x78\xaa\x34\x70\x09\xf7\xb5\x7a\x0c\x53\x2a\xe0\ \xce\x5d\xb2\x84\x51\x59\xfc\x6b\x0c\x17\xc2\x4b\x82\x64\x8c\xe5\ \x27\xad\xf4\xfe\x29\xe7\x36\x08\xc4\xad\xd5\x7f\x17\x0f\x14\xa3\ \xe2\x40\x0f\xb8\xac\x47\x5f\x2e\x70\x08\x04\x90\x41\xf8\x4f\x31\ \x5a\x7c\x20\x93\xc3\x98\x1f\x86\x4d\x3e\x95\x8e\x3e\xe3\x55\x61\ \x45\xc8\x02\xa4\xa9\xcb\x7d\x0d\xba\x1b\xd0\x48\xc5\x30\xee\xe3\ \x70\x2c\x3e\x75\x21\x12\x28\xe3\x91\x17\xd3\x6c\xdf\xd4\x0d\x6c\ \x3a\xb9\xb4\x15\x2c\x32\xb1\x1d\x2a\x18\x12\x45\xad\x61\xca\xf5\ \x00\x15\x36\xd7\x5a\x19\x0a\xc7\x11\x76\x07\x28\x36\xd0\x53\x09\ \x6c\xd9\x42\xeb\xef\x43\x32\x13\x86\x93\x31\xbf\x97\x6b\x54\x41\ \x19\x49\x14\xb4\x6c\x0d\xb7\x16\xd4\x57\x65\xe9\x4a\xc1\xe1\xa4\ \xc8\x25\x49\x42\x13\xe9\x16\xde\xac\x44\xfe\x20\x60\xcb\x96\x44\ \xf5\x2f\xef\x44\xff\x00\xa8\x20\x75\x15\x24\x02\x2c\x45\xc5\x16\ \x95\x1f\x5a\x51\x7f\x67\x66\x04\xa0\xcc\x2d\xa8\x1b\xd1\xe0\xb1\ \x72\xe1\x9f\x2c\x77\x65\xb8\xcf\x13\x7c\x5e\xdd\x0d\x1c\x32\x34\ \x52\x07\x4d\xc5\x5c\x9e\x1c\x3e\x2e\x21\x29\x05\x5b\x9b\x2f\x2f\ \x7a\xa4\xfe\x2d\x51\xe2\x1c\x60\x3e\x58\x63\x8c\x04\x27\xef\x05\ \x8d\xea\xd7\x03\x8f\x36\x29\x67\x43\x78\xd0\x5e\xff\x00\xb5\x4a\ \x70\x9c\x37\xda\x04\xcd\x3b\x16\x03\x5f\x2e\xe7\xad\x5c\x8a\x35\ \x89\x6d\x0e\x97\xd4\x92\x3d\x5e\xe2\xb5\x25\xdd\xa2\xe7\xc5\x85\ \x24\x53\x01\xb8\xa4\x23\x66\x21\x6d\x95\xed\xe9\xeb\xdc\x75\xa3\ \x0d\x63\xa9\xb5\x74\x60\xca\xeb\xd7\x02\x0d\x56\x9b\x14\xd1\x4a\ \xc8\xf1\x03\x6d\x88\x3b\xd5\x6e\x25\x9b\xeb\x42\xe2\xde\x65\x17\ \xe6\x54\x73\xf6\xef\x41\x87\xc4\x47\x30\xb0\xf2\xb7\xe1\x3c\xe8\ \xf3\x6b\x56\xea\x29\x80\x6f\x4d\xc8\x3b\x11\x48\x11\xda\xf9\x97\ \xe7\x56\x25\xba\x13\x2c\x6a\x48\xf8\xd0\x7e\xa2\xa1\xca\x90\x19\ \x48\x65\x3b\x11\xce\x8b\x0c\x54\x91\x2d\xb5\x2d\x94\xf2\xb5\x5a\ \x75\x06\x94\xc9\x58\xb0\xab\x32\x91\xc8\x7c\x8d\x03\xe6\x03\xd2\ \x6a\xc3\x2d\xa8\x6d\x59\x4a\xb9\x81\xed\x42\xe5\x6d\xbd\x14\xb1\ \x95\x6b\x5b\x4a\xe0\x05\xb6\x15\x34\x43\xb0\x1d\x6a\x01\xb8\xb8\ \xd0\x51\xca\x97\x3a\x69\x4b\x54\x65\x3b\xdc\x56\x6a\x49\x02\xdb\ \x5f\xde\x86\x50\x81\xa2\x76\x00\x05\x72\x09\xe9\x71\x44\x76\xae\ \xd0\x82\xad\xaa\xb0\xb1\x15\x20\xc8\x5b\x35\x9c\x66\x1c\xc1\xd6\ \x80\x8f\x08\xf8\x90\x6a\xa7\xd7\x1f\xf1\x44\x97\xcf\xe0\xbe\xac\ \xa2\xea\xdf\x8c\x54\xae\x8c\x0e\x97\x15\x17\x2b\x24\xa9\x9e\x32\ \x48\xe6\x08\xda\x84\xad\x74\x51\x04\xc4\x4d\x97\x45\x75\x0c\xa0\ \x1e\xf5\x24\x74\x63\x42\x27\x15\x2b\x40\xea\x88\x80\x16\xb7\x9d\ \x85\xc5\x31\x62\x60\xe5\x54\x34\x92\x36\xef\xcc\xfb\x76\xa9\x0c\ \x1a\x3c\xb2\x00\x50\xee\x0d\x54\xe3\x12\xcd\x87\x85\x30\xb8\x7c\ \x59\x8d\x59\x73\x12\x45\xcd\x8d\x17\xae\xd2\xd4\x91\x88\x96\xf3\ \xba\xc6\xbd\xcd\xef\x55\x66\xe2\x49\x1d\xd7\x0a\xa4\x9b\x7a\xdf\ \x97\xb5\x50\x88\xb1\xf2\xac\xcc\xe3\xf0\xcc\x74\x6f\x63\xca\xad\ \xe1\x38\x78\x95\x81\x93\x34\x00\x9d\x15\xac\x4b\x7b\x56\x76\xdf\ \x0a\xb2\xe6\x91\xaf\x62\xce\x4e\xbc\xcd\x5e\xc3\x70\xc9\x99\x33\ \x4a\xcb\x08\x23\x4c\xda\x93\xf2\xab\xf8\x68\xe2\xc3\x8c\x98\x68\ \x80\x6e\x6e\xda\xb7\xf6\xae\x79\x61\x56\x39\xe5\x24\x8d\xca\xae\ \x6b\x7c\xe9\x9c\x27\xd1\xaa\x91\xf0\x60\xe4\x01\x8c\x4b\x9d\x00\ \xc8\x75\xaa\x33\x06\x8e\x46\x8d\xac\x72\x92\x2f\xd6\xb7\xf0\xcd\ \x1e\x51\x88\x0d\x78\xd2\xec\x49\x16\xda\xb1\x1c\x78\xd2\xb1\x03\ \xd6\xd7\x03\xde\x9e\x5c\x64\xf1\x4a\x77\x02\x84\xcb\x8d\x0c\x7d\ \x11\xf9\x9e\xb7\x20\x8c\x04\x90\xa9\xd5\xa4\xd7\xb5\xa9\x38\x5c\ \x32\xe1\x30\x8b\x11\xf5\xb6\xb2\x69\xf9\x55\xc4\x06\xf9\x94\x8b\ \x91\x62\x1b\x66\xe9\xec\x6b\x7c\x78\xe4\xc6\x6d\x42\x92\x54\x16\ \x3e\x66\x25\x9b\xb5\xff\x00\xd8\xa9\x06\x93\x01\xcf\x96\x55\x1e\ \x52\xa3\xf4\xb5\x36\xb4\x04\x0d\x74\xa8\x26\x8f\x21\xb6\x61\xe9\ \x6e\x86\x86\xf5\x20\xd2\x99\xec\x0a\xb1\x07\x71\x52\x4f\xfc\x4b\ \x8d\x8f\x82\xb6\xfa\xd5\xae\x20\x83\xc3\x38\x83\xb2\x0f\x38\xeb\ \x58\xf1\x4e\xff\x00\x6b\x38\x86\x42\x55\xae\x0e\x9a\x5a\xb1\x7a\ \x6a\x2e\x8a\x35\xa1\x4c\xae\x99\xa3\x60\xcb\xfa\x51\x8e\x94\xa6\ \x86\x0a\x6f\x16\x3c\xac\x46\x75\x1a\x77\x14\xda\xce\x81\xcc\x72\ \x87\x07\x63\x5a\x4c\x3c\xda\x6c\x75\x15\xb9\x59\xa9\xa8\x22\xa4\ \x6d\x5c\x69\x45\x95\x2a\x6e\xbf\x4f\xe2\xa6\xe5\xd3\x29\x73\x66\ \xd8\xf4\x3d\x68\x88\xa0\x65\x20\xdd\x34\x3d\x3a\xd4\x95\xe3\x49\ \x65\xc4\x2a\x4a\xbe\x55\x62\x49\xb6\xfa\xd4\x7f\x88\xd4\xb6\x06\ \x39\x47\xc2\xf6\x3d\xaa\xcc\x57\x08\x01\xb8\xae\xc6\x28\x7c\x04\ \x88\xcb\x71\xa1\xac\xe7\x49\x82\xf8\x49\x64\x8f\xed\x09\x18\x39\ \xc7\xde\xa0\xdd\xba\x30\xef\x56\xb0\x91\x78\x18\x35\x8c\x9b\xb3\ \x9c\xe7\xf6\xa6\x66\x21\x81\x5d\x2d\xa5\xab\xac\x02\x15\x1b\x29\ \xba\xff\x00\xa4\xff\x00\xb3\x58\x93\x1a\xd7\x05\x0e\x8c\x8c\x6c\ \x18\x5a\xfd\x2a\xa3\x62\x4c\x70\x18\x0a\xdc\xdb\x2a\x91\xef\x56\ \x74\xcc\x09\xda\xd5\x2e\xb0\xbc\xaa\xcd\x18\x62\x39\xd5\x40\x97\ \x3b\x46\xac\xc1\x41\x65\x04\xde\xa0\x82\x39\xaf\xbd\xa8\x9d\xff\ \x00\x2e\x54\x05\xa9\x4e\x1a\x0b\x0b\xf7\x35\x28\x03\x5d\x18\x68\ \xc2\xc6\x82\xfa\xd7\x4a\xe6\x38\x19\xc6\xe3\x41\xda\xf5\x27\x46\ \x2d\x87\x41\xcc\x5c\x7e\x74\x13\xab\xf8\xab\x88\x8c\xdd\x90\x79\ \xd7\xa8\xa6\x40\x19\xf0\xf1\x04\x17\x25\x2d\xa7\x5a\xb5\x86\xc2\ \x28\x23\xc6\x24\x96\xd3\x28\x36\xb5\xea\xcd\x4a\x6e\x41\x01\x94\ \xdd\x58\x5c\x50\xd5\xfc\x3a\xe1\x9e\x20\x82\x38\x83\x47\x71\x66\ \x3c\xaf\x4a\xc4\xc3\x87\x22\xf0\xc8\xa5\xbf\x00\xd6\x9c\x5a\xab\ \x4d\xc3\xca\x62\x7b\xee\xa7\x42\x3a\xd2\xb5\x04\x82\x2c\x6a\x77\ \x34\x16\x9c\x46\xf1\xa9\x06\xe0\xec\x68\xef\x54\xb8\x7b\xb3\x46\ \x50\x1f\x49\x24\x03\xd2\xad\x8a\xdc\xac\x98\x32\xba\xe5\x71\x71\ \xf9\x8e\xe2\x97\x2c\xb2\xc5\x20\x49\xc9\x92\x36\xd5\x5f\x98\xf7\ \xa2\x5a\x62\x3e\x53\x72\x74\x3a\x1a\x50\xa3\x7f\x28\x2b\xe6\x1e\ \xf5\xd8\x88\xd7\x11\x1f\xf5\x0d\x8f\xec\x6a\xbe\x2c\xf8\x0c\xb3\ \xc4\x72\x82\x6c\x40\xf4\x9a\x6e\x16\x5f\x19\x4b\x65\xca\xcb\xbd\ \xb9\x8a\xb7\xe5\x0a\x48\xae\xd2\x05\x4f\x55\xf4\xab\xe2\x56\x5b\ \x2e\x23\xca\xc7\x66\xf8\x5b\xe7\xd6\x95\x2c\x46\x2c\x40\xc4\x47\ \x72\xb7\xf3\x2d\xef\x6a\x6b\x32\x11\x63\x62\x0e\xd7\xe7\x54\x98\ \x85\x72\x06\x61\xb7\x51\x49\x90\xe4\x6c\xcb\xa2\xc8\x6c\x47\x2c\ \xdd\x6a\x56\x24\x56\xcc\x85\x93\xfd\x26\xd4\xbc\x44\x02\x4d\x4c\ \xd2\x5f\x95\xf5\x15\x5d\x43\x06\xf4\x2f\x42\x09\x03\x5f\x50\x16\ \x36\xd9\xbb\xd4\x92\x0a\xdf\xad\x04\x04\xde\x81\x85\x11\xde\x85\ \xa8\x41\x61\xa5\x25\xc6\xb4\xe6\x34\xa6\x35\x94\x4c\x82\x96\x69\ \xce\x39\x52\xd8\x6b\x53\x40\x61\x42\x45\x19\xa1\xac\xa2\xe7\x42\ \xf1\x66\x53\x69\x22\xd5\x4f\xed\x52\xb9\x65\x8d\x65\x5d\x2f\xbd\ \xb9\x1a\x35\xd1\xae\x39\x52\x9e\x19\x52\x63\x26\x1e\x40\x81\x86\ \xa0\x9d\x8d\x45\xd3\x12\x98\xac\x39\x20\x9c\xca\x41\x15\xd7\x63\ \x7b\x0f\x9d\x32\x30\x14\x16\xbe\x79\x1b\xd4\xe7\xf4\x1d\xa8\x58\ \x00\x2e\x36\xe9\x42\x2c\x29\x1b\xd5\x4f\xf1\x08\x6f\x16\x27\x03\ \xca\x63\x02\xfe\xd5\x7c\xed\x4a\xe2\x31\x78\xbc\x3d\xf6\xcd\x17\ \x98\x1e\xdc\xe8\xb3\xa5\xac\xfe\x0b\x1a\xcb\x8e\x51\x20\xb8\x00\ \x9b\x56\xb3\xbf\x8a\x32\xc9\xe9\xf8\x6d\xf0\xfb\x56\x67\x04\x36\ \xc7\x82\x7f\x09\xfd\x2a\xfa\x99\x5d\xc8\x81\x63\xc8\x86\xc5\x9f\ \x99\xa3\x87\x8a\x8d\x56\x76\x19\x67\x99\x5a\x3f\xe9\xf5\x37\x63\ \x4d\x57\xd3\x2e\x55\xc9\xf8\x6d\xa5\x0a\xa9\x63\x94\x80\xaf\xbe\ \x50\x6e\x1b\xb8\x35\xda\x83\x62\x2d\x5b\x05\x71\x29\x46\x1f\x02\ \xd8\x54\x56\x19\x9a\xe0\xf2\x2a\x75\xa5\xff\x00\x87\xe2\x0d\x88\ \x69\x98\x5d\x62\x17\x00\xf3\x3c\xa9\x9c\x63\xcc\x72\x58\xe9\x11\ \x00\xf2\xba\x9f\xe2\x8f\x81\x9f\xff\x00\x1d\x25\xbf\xf7\x47\xe9\ \x47\xff\x00\x47\xe2\xf0\x39\xef\x7e\x74\xd8\x90\x0f\x88\xe9\xa9\ \xa4\x47\x47\x88\x7c\x98\x29\x9b\x63\x96\xc0\xf7\x35\xb6\x04\xa5\ \x40\x01\x54\x01\xca\xc2\x8a\x92\x9a\x0f\x2e\x9d\xb9\x1a\x60\x61\ \x60\x7a\xd4\x85\x7a\x91\x40\x0d\xe8\x85\x49\xd3\x58\xe0\xe6\x56\ \x1a\x3a\x65\xff\x00\x7f\x4a\xa2\x80\xc5\x12\x46\x0e\xca\x2f\xde\ \xae\x62\xce\x5c\x04\xff\x00\x89\x92\xca\x3b\xd5\x18\x24\x12\xc4\ \xac\xcc\xaa\xca\x2c\xe0\x9b\x5a\xab\xe9\x89\xca\xab\x8b\x81\x96\ \xca\x5e\xf9\x80\xd8\xd3\x4e\xf4\x99\xd1\xe6\x64\x31\xb0\x44\x4d\ \x9c\xf3\xee\x05\x1f\x88\x43\x85\x94\x7a\x8d\x84\x8b\xb1\xf7\xa2\ \x13\x2b\x4f\x0c\xd9\xb0\xc8\xda\x6d\x63\x59\x7b\x1b\x1d\xc5\x5f\ \xe1\xcc\x0e\x19\x97\x9a\x9b\xd6\xb8\xfa\x29\xe4\xd7\x03\x51\x5d\ \x5b\x02\xae\x35\xc2\xba\xa4\x1a\x92\x33\x44\xeb\xd5\x48\xa9\x22\ \xba\x2f\x58\x1d\x74\xa9\x32\x69\x8b\xa8\xf7\x4d\xbd\x8f\xf7\xa8\ \x98\x65\x91\x97\xa1\x22\xa0\xb8\x46\x88\x9d\x03\x12\xa7\xe7\x5c\ \xcb\x98\xe9\x60\x37\xae\xf4\x8b\x57\x35\xd5\x85\xc5\xb7\xa1\x26\ \xf5\x24\x31\xae\xd0\x2b\x33\x1b\x2a\x8b\x9a\x93\x50\x50\x3c\x61\ \x0e\xcc\xd7\x3e\xc0\x5f\xf8\xa8\x82\x19\xe1\x95\xb2\xa1\x60\x79\ \x06\xe7\x57\x70\xf8\x4c\xe8\x7c\x6d\x10\xfc\x36\xd4\xd0\x43\x85\ \x18\x84\x0e\x55\x54\x21\xf2\x5b\x4f\x95\x5b\xc3\xc8\xef\x9d\x25\ \x5b\x3c\x7c\xfa\x8a\x64\xfe\x8b\x5d\x0c\x71\x61\x80\x48\x97\x2c\ \x6f\xb1\x26\xe5\x5b\xdf\xbd\x17\xa5\xae\x46\xa0\xd4\x92\x2c\x41\ \x17\x07\x71\xd6\xa2\xc4\x28\x55\x90\x10\x3f\x1a\xdf\x4e\x97\xde\ \xb6\x19\xb8\xf8\x72\x62\x2c\xb7\x21\xc5\xc5\x0e\x59\xb0\xd2\xab\ \xb2\x15\x23\x51\x71\x57\xd2\x39\x3c\x7f\x1a\x56\x4b\x80\x42\x2a\ \xeb\x6a\x31\x7b\x65\x36\x20\xee\x0e\xd5\x9c\x3a\xcb\xc5\xe2\x13\ \xc4\x0e\xf1\x39\x32\x0b\xf9\x0d\xea\x22\x78\xe5\x04\xc6\x4e\x61\ \xba\xb0\xd4\x53\xf8\xb8\x5c\x2c\xb0\xcf\x1a\xdd\x42\x90\xca\x0e\ \xab\x7a\xcd\x77\x93\x11\x8e\x0f\x87\x52\xad\x6e\x7f\xa9\xac\x5b\ \x94\xc5\xfc\x1b\x14\xc4\xa9\x02\xe0\x9b\x69\x57\xa3\xf1\x33\x9b\ \xdc\x0e\xf5\x47\x0e\x59\x5d\x5a\x50\x8d\x62\x09\x68\xf9\x7c\xab\ \x51\xc7\x98\x90\x41\x5b\xe8\x45\x6f\x88\xa1\x19\xba\x8f\xa5\x12\ \xb6\xe0\x8a\x8a\xe5\xf5\x8f\x7a\xd0\x06\x28\x2c\xa5\x70\xcb\xa1\ \xbd\xd8\x81\xb5\x33\x0f\x14\x31\xae\x58\xc3\x2b\x1d\xc9\x35\x53\ \x0d\x37\x87\x8d\x71\x29\x23\x35\xc1\x35\x70\xd8\xe8\x75\xf6\x34\ \x4f\xea\x10\x72\x0d\x8e\xff\x00\xad\x0e\x89\xa0\x07\xc3\xfa\xe4\ \xfe\xd4\x19\x6e\xc7\x33\x1d\x0e\x95\x20\x10\x74\x66\xa5\x08\xf9\ \x40\x20\xdd\x08\xd0\x8d\xa8\x58\xd0\xc8\x59\x15\x98\x05\x2a\x7d\ \x63\xf7\x15\xce\x6c\x05\x8d\xc1\xd8\xf5\xa9\x21\xbd\x54\x27\x7f\ \x7a\xe6\x3a\x7b\xd0\xb1\x36\xd3\x71\x59\x4e\x34\x2d\x44\x35\x17\ \x1b\x50\xbd\x15\x16\xc7\x7a\x07\xda\x88\xef\x40\xf4\x20\x9a\x17\ \xa2\xa1\x6a\x9a\x03\x0a\x13\x47\x42\x45\x15\x06\xd5\xc4\x03\xa5\ \x49\xd0\x57\x0c\xdd\x85\x08\x20\x11\xa0\xd4\x54\x10\x49\xd6\xd6\ \xa9\x62\x46\xeb\xf4\xa3\x58\x99\x97\x35\xac\xb6\xf5\x1d\x05\x48\ \xa5\x60\xd5\x18\x86\x58\xb0\x92\xbb\x91\xe6\x52\xaa\x0f\x33\x4a\ \xc4\x62\x20\xc3\x7c\x42\x57\xe4\x14\xe9\xf5\xaa\x38\xa9\xe7\xc5\ \x38\x0e\x6f\xaf\x95\x40\xd2\xb3\x79\x61\xc1\xf0\x78\xd9\xf1\x7a\ \x72\x46\xb9\xe9\xa5\x68\xc2\x99\x21\x64\xb5\x8a\xc9\xaf\x7b\xed\ \x43\x81\x80\xe1\x70\xc5\x5a\xde\x24\x9e\xa1\xd0\x53\x88\x62\x33\ \xa2\xe6\x60\x2c\xcb\xf8\x87\xf2\x29\xe3\x32\x2b\x43\xe5\x65\xc8\ \xe2\xeb\x7f\x98\xf6\xa9\x80\x3b\x19\x22\x63\x9a\x48\x9a\xda\x6e\ \x45\x28\xca\x89\xe6\x6c\xe0\x77\x4b\x52\x10\xc9\x89\xc7\xb1\x52\ \x63\xce\x6e\x48\x3b\x0a\xb5\x62\xdf\x12\x2a\x20\x45\x76\xca\xea\ \x49\x23\xaa\xda\xc6\xff\x00\x2d\x7e\x55\x5f\x81\x4e\x23\x99\xb0\ \xf2\x1b\x24\x9a\x7b\x1e\x55\x6e\x18\xa0\x89\x83\x14\xce\x79\xb3\ \x9d\x4d\x63\x71\xbc\x46\x27\x09\xc5\xa5\x82\x19\x59\x62\x43\x74\ \x17\xe5\xca\x8e\x5d\x76\xa7\xf1\xbc\x64\xcb\x70\x07\x9a\xfc\xc6\ \xd4\x67\x58\xd5\x5c\x96\x56\x7b\x9b\x74\x03\x5f\xda\xab\xae\x35\ \x25\x8e\x27\x92\x36\x66\x96\x30\xc0\x82\x2f\xd3\x5f\xa5\x58\x52\ \xe0\x16\x75\xc8\x58\x65\x55\xe6\xa3\xbd\x74\x96\x56\x52\xba\x0a\ \xeb\xdb\x6d\xb9\x8a\x59\x6b\x30\x1c\x88\xa9\x27\x43\x52\xc3\x97\ \xda\x8a\xe1\x53\x33\x9b\x2f\x7a\xab\x2c\xa2\x30\x19\xda\xec\x46\ \x8b\xfc\xd5\x77\x9a\x49\x48\x32\x1d\x46\x80\x0d\x80\xa3\x62\xc3\ \xa6\x99\xa5\x92\xe3\x45\x1b\x0e\x94\x24\x86\x3e\x75\x56\x3d\xc5\ \x2c\x1a\x2b\xd1\xa4\x45\xae\x75\xa0\xc6\x10\x30\x4f\x7e\xa2\xde\ \xf4\x57\x19\x80\xe6\x6a\x9f\x13\xc4\x23\x48\xb0\xa9\x39\x57\x9f\ \x22\x6a\xb7\xa5\x17\x60\x72\xf8\x68\xdd\x8d\xc9\x1a\x9a\xbb\xc2\ \x5b\xef\x99\x09\xf5\x2e\xdd\x4d\x64\xf0\xb7\xf2\x3c\x6c\x74\x1a\ \x8b\x9a\xb9\x0c\x85\x5c\x3a\x5e\xe3\x9e\xd5\xae\x35\x56\xbe\xbc\ \xaa\x6c\x29\x65\x54\xd9\x94\xe8\xc2\xe0\xde\x89\x43\x03\x7c\xd5\ \xd1\x91\x8a\x9a\x81\xa8\xb8\xa9\xa9\x22\xbb\xbd\x71\xae\xa9\x28\ \xf1\x24\xcb\x89\x2d\xc9\xf5\x15\x5d\xd1\x64\x88\xc6\xe6\xc0\xea\ \x0f\x43\x5a\x18\xf4\xcf\x86\xcc\x37\x8f\x5f\x95\x67\xd6\x39\x4e\ \xcc\x20\x26\x36\x26\xf2\xdd\xd5\x76\xd6\xe0\xd3\xc3\x23\xb9\x0a\ \x0a\xb8\xdd\x1b\x7a\xe3\xa8\xf9\xd0\x63\x43\x18\x44\xab\xeb\x8d\ \xb7\xea\x2b\x3e\x11\xda\xf4\xd8\x21\x69\x65\x65\x03\x45\xb2\xdf\ \xa7\x33\xfb\x7d\x2a\x93\x62\xe7\xd1\x44\x4a\x19\xb4\x0d\x6a\xd9\ \xe1\xd1\x78\x58\x04\x51\xab\x90\x4b\x9d\xf5\xa7\x8f\x74\x51\x80\ \xaa\xa1\x14\x59\x57\x6a\xed\x06\x20\x72\x2f\x1f\xd6\xc6\xa4\x82\ \x37\x04\x50\x49\xa6\x2b\x0c\x7b\x91\x5d\x00\x8e\xd4\x35\x26\xd6\ \x24\x9b\x00\x2e\x4f\x4a\xa3\x89\xe2\x45\x5e\xd0\x22\x65\x1f\x13\ \x0b\x93\x45\xb2\x25\xda\xe1\xa9\xb5\x56\xe1\xf8\xdf\xb4\x4a\x21\ \x95\x50\x33\x7a\x59\x45\xb5\xe9\x6a\xb2\x18\x28\x2e\x4d\x82\x82\ \x6f\x54\xb2\xa5\x0e\x34\x7c\x44\x9d\x41\x16\x4b\x58\xf5\x02\x93\ \x1c\x6b\x04\x62\x34\xdc\x80\x59\xb9\x9a\x94\x39\x99\xcb\x5a\xc5\ \x49\x6b\xed\x40\xaf\xe2\x43\x1c\x82\xc7\x32\xeb\x6e\xda\x56\x3e\ \xeb\x46\x43\xa4\xab\xee\x2b\x46\x42\xb0\xe2\x80\xd5\x63\x92\xe0\ \xf4\x06\xa8\x60\x54\x3e\x32\x35\x61\x70\x5a\xaf\xe2\x54\xc9\x87\ \x71\xf1\x0f\x30\xd2\xb5\x3c\x14\x6c\x08\x36\x3c\xab\x85\xb5\x63\ \xb2\x8b\x9a\xa7\x1e\x2e\x61\x95\x06\x56\x3b\x00\x56\xe6\x9b\x8a\ \x13\xb4\x2a\xc5\x95\x90\x1b\xba\xa0\xb5\xbd\xe9\xd0\x08\xf0\xc6\ \x60\x66\x95\xca\x97\x24\x81\x6a\xb6\x00\x3e\x5b\x82\xca\x35\xbe\ \xf5\xce\x41\x20\x8f\x49\x1e\x5f\x6a\x16\x8d\x1e\x65\x94\xb3\x06\ \x51\x6f\x2f\x3a\xb1\x05\x1a\xc4\x8b\x12\x29\x9b\xeb\x41\x89\xb7\ \xa8\x69\x73\xad\x44\x4c\x72\xdb\x29\x20\x73\x15\x21\x5e\xc6\x84\ \x00\xb9\xd1\x76\x04\x38\x16\xd8\x1a\x92\x45\xed\x7d\x68\x26\x57\ \x62\xad\x1b\x5a\x44\xd0\x03\xb3\x0e\x95\x54\x82\x68\x49\xa5\x7d\ \xad\x09\x2a\xf0\xb0\x6b\xec\xa6\x8f\xc4\x87\xf1\x38\xee\xc8\x40\ \x15\x9d\x43\x24\x8b\xb5\xc1\x52\x06\x9d\x08\xff\x00\xcd\x09\x52\ \x76\xd6\x85\xf1\x18\x74\xff\x00\x98\x58\x8e\x40\x68\x7e\x75\x4a\ \x58\xf1\x0e\xc6\x61\xa6\x6d\x40\x07\x51\x55\xa7\x16\xa4\xb2\x30\ \x56\x04\xb3\x6c\xa3\x7a\x16\x23\x36\x42\xa5\x09\xf4\xdc\xdc\x37\ \xce\xab\x0c\x54\x58\x58\x8e\x70\x5e\x56\xe5\x7f\xd6\xb9\x38\x84\ \x33\x44\xe9\x24\x45\x34\x26\xe0\xdc\x0a\xce\xac\x3c\x8b\x1b\x1a\ \x83\x41\x0c\xa1\x80\x49\x18\x6b\xe8\x93\x93\x0a\x36\x04\x0b\xee\ \x3b\x6b\x49\x06\x80\x16\x3b\x28\xb9\xaa\xd8\x7c\x53\xc9\x89\xc9\ \x27\xa1\xcd\x80\xfc\x35\x65\xf2\xb4\x4e\xa4\xd8\x32\x91\x7e\x95\ \x99\x2e\x1e\x78\x4e\x7f\x84\x1f\x50\x3a\x56\x79\x69\x8d\x09\x06\ \x51\xdc\x1a\xe1\x72\x2e\x45\xa9\x31\xe3\x22\x68\xc3\x4a\xcd\x9c\ \x0b\x1b\x0d\xe9\xb0\x49\x2c\xaa\x1d\x63\x8e\x38\xfa\xb6\xa5\xa9\ \xd0\x0c\x7c\xc7\x0d\x84\x56\x50\x0b\xbb\x58\x5f\x5b\x0a\xc9\x96\ \x59\x24\xbe\x77\x2d\x7d\xee\x6b\x5b\x89\x2b\xbe\x04\x93\x87\x8d\ \xb2\x38\xb5\xa4\xeb\xde\xb2\x64\x31\x89\x04\x72\x2b\x42\xcd\xe9\ \xb9\xba\x9f\x9d\x73\xe7\xe9\x85\xac\x2d\x2c\x81\x62\x42\x49\xe5\ \x5b\x38\x2c\x32\x61\x63\x1b\x3c\xbc\xd8\x8d\xbd\xa9\x7c\x16\x33\ \x16\x1e\x49\x34\xcc\x5b\x28\xed\x4f\x7b\x8d\x47\x3a\x78\xcc\xed\ \x54\x9d\xf5\x3a\x9a\x9f\x6a\xe5\x51\x6d\x45\xfb\xd7\x59\xbb\x56\ \xc0\x96\x47\x3e\x5d\x5a\xdc\x9b\x51\x55\xe7\x88\x41\x8f\x8d\x97\ \x28\x0f\x6b\xad\xce\x9d\x45\x3e\x30\x55\xee\x0d\xef\xbf\xf3\x54\ \x4a\x48\xb8\xc0\xa4\x33\x30\x6d\xba\xd1\x4c\x5f\x58\x4a\xcd\x96\ \xf7\x0a\x4d\xcf\x40\x2b\x17\x8d\x83\x8f\xe3\xea\xb1\x82\x04\x81\ \x7e\x55\xa3\xc5\x78\xb6\x0e\x0c\xf0\xa5\xe4\x91\xbf\xcc\x03\x61\ \xda\xaa\xe1\x63\x68\x10\xe2\x26\x00\x62\x27\xd4\x0b\xea\x8a\x6b\ \x3c\xb2\xf4\xa2\xfe\x04\xab\x63\xce\x50\x32\xa4\x64\x2e\x9d\x06\ \xf5\x64\x58\xef\x54\x78\x41\xff\x00\x89\x6f\xfe\x36\xfd\x2a\xe0\ \x35\xae\x3e\x0a\x00\x33\x35\xce\xc3\x6e\xf4\x5e\x55\x46\x76\x1e\ \x55\x17\xb7\x53\x45\x90\xa9\x0a\x75\x3f\xad\x56\xe2\x32\x02\xc2\ \x25\x20\x85\xde\xdc\xcd\x37\xa4\x44\xae\xd2\x39\x66\x37\x26\xb8\ \x54\x0a\x90\x2b\x0d\x0d\x4d\xa9\x80\xd2\x41\xb5\x4e\x6a\x74\x60\ \xb1\x12\x98\x85\x94\x5d\xdc\x59\x47\xef\x54\x1b\x09\x89\x92\x75\ \x41\x13\x0d\x37\x23\x41\x57\xdc\xf9\xe6\x6b\xf9\xae\x32\xf5\x0b\ \x6d\x28\x92\x46\x0b\x94\xb1\xef\xad\x16\x6a\xd0\x88\xca\x20\x45\ \x4d\xb7\x6e\xb4\xf0\x75\xa0\x0d\x44\x0d\x6e\x05\xac\x1e\x27\xc3\ \x19\x1c\x5d\x39\x5b\x71\x5a\x09\x62\xb9\x94\xdd\x7a\xd6\x3a\xd3\ \x60\x95\xe2\x37\x46\x23\xb5\x6a\x51\x8d\x45\xd3\xdb\xf4\xa2\x1b\ \x8a\x46\x1f\x15\x1c\x9a\x3f\x91\xbf\x23\x4e\x22\xde\xd5\xb8\x04\ \x45\xe8\x48\xa2\x5d\xaa\x6d\x7a\x40\x2d\x7d\x0e\xaa\x74\x22\xb3\ \x71\x31\x18\xa5\x2b\xcb\x91\xeb\x5a\x85\x74\xa0\x91\x12\x44\xcb\ \x20\xb8\xe5\xd4\x56\x6c\xd3\x2b\x2f\x99\xed\x52\x85\xaf\x65\xd4\ \x9a\xb8\xd8\x38\x80\xb8\x77\xbd\xf4\xd2\x9d\x1c\x51\x45\xe8\x5d\ \x7f\x11\xde\x8f\xcd\x3a\xa7\x88\x85\xd2\x14\x91\xf5\x60\x79\xfc\ \x34\xcc\x2c\x4e\x22\x25\xdd\x95\x5b\x65\x06\xd7\xa7\xcc\x03\x64\ \x8d\xbe\x23\x98\x8e\xc2\x86\x47\x24\xf7\xab\x02\x02\x5b\x44\x96\ \x45\xf9\xde\x97\x1c\x32\x7d\xa5\x64\x92\x5c\xc1\x75\xbf\x3a\x2c\ \xda\x5c\x9a\x25\x34\xa2\xf8\xab\x95\xc0\x1b\x7f\xcc\x6b\x56\x39\ \x17\xda\xb6\xb1\xe9\xe2\xe0\x1d\x46\xe9\xe7\x15\x8c\x6b\x1c\xfd\ \x31\x38\x42\xcb\x8a\x8d\x94\x90\x43\x8d\x6b\x6b\x88\x9c\xb0\xcd\ \x61\xb9\xcb\xf9\xd6\x18\x62\x08\x23\x71\x5b\x78\xe1\x9f\x08\xc4\ \x10\x6e\xaa\xd7\xbe\xfa\x6b\xf9\xd5\xc7\xca\xaf\xac\xb2\x85\xe0\ \x96\x30\x45\xd9\x0d\xbf\x5f\xda\x87\x0e\x99\x70\x71\x03\xcc\x16\ \x16\xe8\x69\xd1\x30\x52\x58\xe8\xa1\x4d\xc9\xe5\xa5\x09\x37\xca\ \xb6\xb1\x08\x05\xbe\x55\x13\x78\x71\xb6\x36\x22\xd6\xdf\x7a\xd2\ \xbe\x53\x73\xcb\x7a\xc9\x43\x96\x45\x27\x91\xb9\xad\x49\x08\x63\ \x9b\x93\x6b\x5a\xe2\x2a\xa3\xdb\x0d\x8f\x59\x00\x39\x0b\x66\x1e\ \xd5\x61\xb1\x10\xa4\x6c\x43\x86\x26\xf6\x51\xce\xf4\x18\xb4\xcd\ \x11\x1b\x91\xaa\xf5\x15\x45\x2d\x9d\x73\x6d\x7e\x74\x78\x9a\x58\ \x5c\xdf\x64\x8f\x36\xfa\xdb\xda\x8a\xe6\xf6\x16\xbf\x7e\x54\x33\ \x92\x24\xb2\xb5\x94\xed\xd8\x57\x0b\x28\xb0\xf9\xd6\x82\x58\x66\ \xf5\x12\x7d\xb4\xa9\x16\x0b\x61\x43\x9a\xa4\x1b\xd4\x9c\xe7\x63\ \xd0\xd0\xb0\x37\xbd\x49\x60\x7c\xa3\x73\xa5\x11\xb0\x1a\x9b\x7b\ \xd4\x80\x59\xaf\x7d\x01\xeb\x6d\x7e\xb5\x05\xd8\x0f\x33\x5c\x73\ \x07\x51\x52\x59\x3a\x8e\xe7\x61\x49\x9f\x11\x85\x45\x39\xde\x4d\ \xb4\xfb\xb2\x2f\xf3\xa1\x2a\x71\x18\xd5\x66\x53\x10\xb8\x93\x60\ \x39\x1a\x64\xb8\x94\x8a\x20\xcb\xe6\x90\x2d\x89\xbf\x95\x2c\x39\ \x9a\xab\x89\xc6\x99\x2f\x1a\xa6\x44\xe5\x66\xd4\xfc\xeb\x37\x1d\ \x02\x2a\xc7\xe1\x33\x2a\xc8\xd6\x2a\x5a\xff\x00\x3a\xe7\x79\x67\ \x8d\x48\x63\xa9\x99\xcb\xa4\x89\x2b\x1d\xf2\x9b\xd0\xba\xb4\x78\ \x69\x8b\xa9\x19\x93\x28\xb8\xb5\xc9\xa3\xc9\x0c\x0f\x91\x20\x43\ \x94\xd8\xb1\xbd\xcd\x41\x2a\xba\xac\x44\x13\xb1\x72\x5b\xe9\x7a\ \xcb\x48\xe1\xe2\x4c\x3c\x19\x27\x70\x50\x9b\x15\xdc\xa5\xf6\x35\ \x77\xc3\xc4\x61\xe3\xf1\x95\xac\x2f\x6b\x75\xaa\x31\x0f\x10\xbc\ \x6d\x7f\x3a\x9b\x9b\xfc\xe9\xff\x00\xe1\xe9\xc6\x30\x0c\x3c\xcd\ \xe6\x88\x5d\x6e\x7d\x42\xa9\xfc\x15\x78\xd9\x91\x58\x8b\x07\x50\ \x48\xe9\x42\x9e\x47\x22\xe3\x5e\xb4\xd9\x83\x03\x66\x16\x3d\x29\ \x6c\x9d\xf5\xae\x81\x5e\x7c\x28\x7c\x75\x94\x05\x52\xa1\x9b\xb5\ \x58\x36\xb0\x55\x16\x55\x16\x15\x28\xa0\x48\x0d\xcd\xda\x36\xbf\ \xc8\x8b\x7e\xf5\xce\xcb\x04\x46\x69\x6c\x00\xf4\x83\xf1\x1a\x27\ \x49\x5b\x8c\xb8\x8f\x06\x20\xbf\x9a\x43\x98\x8e\xd5\x9b\x2c\x26\ \x60\x98\x7b\xfa\x48\x77\x62\x3d\x3d\x05\x14\xaf\x26\x27\x11\x99\ \xdb\xcc\xc6\xde\xd5\xab\x81\x81\x53\x0e\x31\x0e\xbe\x77\x76\x65\ \x53\xf9\x13\xf2\xae\x7f\xed\x4f\x82\x0a\x23\x88\x26\x97\x3e\x66\ \xb5\x75\xaf\x44\x41\x2d\x73\xa9\x34\x4a\x2d\xef\x5d\x70\x01\x12\ \xc6\xf7\xd3\xa5\x11\x14\x56\xae\xa9\x04\x21\x24\x00\x09\x27\xa5\ \x54\xe3\x73\x5b\x0c\xeb\x86\x65\x33\xc6\x9f\x78\xc3\x9a\xf4\x1e\ \xd5\x67\x1f\x2b\x41\x81\x2c\x9a\x34\x8d\x92\xfd\x05\xab\x37\x05\ \x1f\x8d\x21\x42\x33\x07\xd1\x87\x51\xbf\xec\x07\xce\xb3\xca\xfc\ \x30\x8f\xf0\xde\x03\xc5\xc5\x7d\xa7\x14\xb6\x46\x6f\x28\x27\x57\ \x35\xb4\xf1\x45\x33\xf9\xb0\xeb\x72\x7e\x0d\x0d\x09\xc2\xb7\x88\ \xae\x31\x08\x85\x3d\x2a\xaa\x6c\xbd\xab\xa6\x4c\x63\xbe\x51\x2a\ \x88\xce\xec\xa2\xc2\x8e\x33\xf3\x33\x15\xba\xad\x12\x18\xf8\xa0\ \x8e\x27\x06\xcf\x60\x6a\xe3\x6a\xc7\x2e\xd7\xd2\x97\x1e\x12\x34\ \x90\x3c\x53\xb2\xba\x9b\xdd\xd7\x4f\xca\x98\xd2\xb4\x6c\x7c\x40\ \x8e\x83\x76\x45\xca\x57\xe5\x4c\xe8\x16\x71\x1e\x1e\x0d\x2d\x6f\ \x13\x2d\x87\x61\xfc\xd5\x46\x94\xa6\x2e\x38\x40\x41\x9c\x02\xcc\ \xc2\xfb\xd5\x63\xc4\x30\xb8\x62\x13\x19\x88\x46\x3b\xd9\x63\x24\ \x8d\x7a\xd0\xe3\xf1\xb8\x39\x22\x47\x11\x4a\x1d\x96\xe1\xae\x34\ \x1c\x85\x66\xf2\xff\x00\xad\x62\xfc\x8c\x06\x29\x60\x70\x2e\xe2\ \xea\x42\x80\x54\xf7\xa0\xbd\x67\xe0\xb1\xf8\x48\xdb\x34\x89\x2b\ \x39\xd0\x35\xc6\x95\x64\x62\xb8\x7b\x35\x97\x18\xc2\xfb\x66\x8c\ \x80\x3d\xcd\x13\x94\xa8\xeb\xd7\x5e\x83\x36\x1f\xff\x00\xe7\x61\ \xbf\xef\xfe\xd4\x48\x82\x40\x7c\x19\xe2\x97\x5d\x91\xbf\x9a\x50\ \xc3\x31\x65\xcb\x6c\xc0\x11\xae\xcc\x3a\x54\xab\x44\xf6\x2b\x2a\ \xad\xfe\x16\xdc\x52\xb5\x56\x01\xb4\x20\xd3\x16\x57\x1a\x83\xaf\ \x5b\x6b\xf5\xa8\x05\xf1\x29\x19\xb2\xc3\x23\x0e\x6c\x45\x85\x58\ \x56\x0c\xa1\xd0\x92\xad\xb1\xa5\x09\x5f\xf1\x93\xf3\xa9\x8e\xc0\ \xdd\x0e\x42\x4e\xb6\xd5\x4f\xb8\xa6\x2a\x78\x34\x6a\x69\x2a\x7c\ \xd9\x48\xca\xc7\x61\x7b\x86\xf6\x34\x52\xc8\x21\x8f\x3c\x8a\xc7\ \x5b\x58\x69\x5a\xd0\x70\x37\xab\x38\x4c\x51\x8c\x64\x71\x99\x7d\ \xf5\x15\x4e\x09\x23\x99\x43\x44\xc2\xfc\xd5\x8e\xa2\x9b\x91\xaf\ \xcb\x5e\x57\xa6\x54\xd4\x56\x05\x43\xa1\xba\x9a\x35\x70\x45\x67\ \x60\x24\x29\x88\x08\x76\x6d\x08\xab\xbb\x1b\x8a\xdc\xac\xd8\x63\ \x1d\x28\x76\xa8\x56\xbd\x71\x34\xa0\xb9\x6c\xe0\x1f\x4d\xea\x24\ \x9a\x14\x62\xae\xe7\x30\xdc\x01\x45\x7b\x29\xbf\x4a\xce\xc2\xc6\ \x65\x66\x67\xf3\x2a\xeb\x6e\x67\xde\x8b\x52\xea\x31\x75\x32\x95\ \xb1\x7b\x65\xec\x05\x2d\x8d\xc9\x00\xd4\xa1\x24\x90\x4f\xf6\xa0\ \xcc\x10\x1b\xee\x0d\x15\x25\x88\x28\x00\x3b\xd1\x03\xad\x21\x49\ \xce\x0f\x7a\x60\x27\xa5\x11\x2c\x42\xc2\xfa\xec\x74\x3e\xc6\xb1\ \x31\x89\xe1\x62\x5e\x3f\xc2\x48\xad\x68\xc9\x3e\xe4\xda\xb2\xf8\ \xc3\x2b\x71\x19\x8a\x9b\x8c\xd4\x72\xf0\xf1\xf5\x5e\xf5\x73\x07\ \xc4\x0c\x71\x78\x32\xa0\x74\xd8\x1e\x6a\x2a\x8d\xcd\x1e\x1f\x0f\ \x34\xe6\xd1\xa5\xc7\x53\xb0\xac\x4b\x67\x8d\x55\x9c\xd0\xb3\x08\ \xcb\xe4\xcb\x62\xca\xfa\x66\x27\x61\x7e\x95\x0e\xcc\x65\x21\xd4\ \x8b\xeb\x73\xce\x87\x89\x70\xb7\x91\x51\xc4\xd1\x99\x32\x65\x65\ \x23\x47\xb6\xc2\xfc\xa9\x38\x61\xc4\x70\xa9\x67\xc2\x46\xd1\x74\ \x12\xde\xfe\xd7\xa7\x6e\xf6\x16\x01\xab\xfc\x3e\x6c\xf1\xf8\x2d\ \x6b\xaf\xa3\xbf\x6a\xce\x8f\x11\x85\x90\xd9\xcb\xe1\xdf\xa3\xa9\ \xb5\x19\x93\x0c\x84\x13\x8c\x86\xfc\x80\x7b\x7e\xb6\xad\x4a\x9a\ \xc0\xd8\x82\x37\x06\x96\xf8\x6c\x33\x36\x6c\xac\xb7\x37\x21\x4e\ \x87\xf8\xa4\x47\xc4\xb0\xf2\x58\x11\x63\xd4\x87\xf3\x7b\x1b\x5a\ \x8f\xed\x98\x5b\x5e\xed\xed\x63\x7f\xa5\xab\x5b\x19\xca\x73\xaa\ \x93\xd3\x4b\x6f\x51\xcb\xb8\xa5\x2e\x26\x16\xbd\x96\x40\x06\xec\ \x08\x36\xa1\x97\x13\x02\x59\xbc\x4c\xf7\xdc\x2e\xf5\x6c\x47\x0a\ \x25\x22\x90\xb3\xc6\xe2\xe8\x49\x1c\xef\xb8\xa3\x92\x68\x61\x8b\ \xc4\x95\xec\x0e\xca\x06\xa6\xad\x46\xb1\x5f\x9f\x6a\x8b\x80\x6f\ \xcf\xa9\xac\xe9\xb8\xab\xe6\xfb\x98\xa3\x55\xfe\xa1\x72\x6b\x93\ \x8a\x3d\x8f\x89\x04\x6f\xd2\xde\x5f\xd2\x8f\xd4\x39\x57\xa5\x62\ \xaf\x98\x12\x3b\x8a\x57\x15\x7f\x17\x86\xc8\x49\xb9\x0e\xb9\x6f\ \xb8\xaa\xe7\x89\x86\x5b\x7d\x95\x07\xfd\x66\x93\x8a\x9e\x4c\x51\ \x16\x50\xaa\xa3\xd2\x0e\x9e\xf4\x5e\x53\xe2\x92\xaa\x85\x2c\x40\ \x1b\xdc\x55\x9c\x16\x08\xe2\xe4\x13\xb0\x0b\x1c\x77\x11\xe6\x1a\ \x7b\xf7\xa8\xc2\x44\xcf\x32\xf8\x56\x77\xbe\x83\x5b\x03\xdc\xed\ \x5a\xcf\x00\x8e\x34\x89\x1a\xe2\x35\x03\xdc\xf3\x35\x9e\x3c\x74\ \xda\x4a\x43\x87\x87\x58\xe2\x52\xc3\xe3\x71\x72\x6b\x9a\x42\x56\ \xed\x1a\xb2\x5b\x62\xa2\x89\xa3\x76\xdc\xfd\x68\x5a\x0d\x34\x6a\ \xdb\x2c\xfc\x7e\x13\xec\xee\x31\x10\x8c\xd1\x13\xa8\xfc\x3d\xab\ \x23\xec\xf3\x41\xc4\x55\xa1\x52\x54\xb5\xd5\x80\xe5\x5e\x9d\x15\ \xd4\xda\xde\x52\x3c\xc1\xb6\x34\xac\x46\x02\x27\xb9\x86\x66\x86\ \xff\x00\x0e\xb9\x6b\x1c\xb8\x6f\x8d\x4e\x4c\xd6\xc6\xe2\x61\x93\ \x2a\x38\x65\x04\x80\x18\x66\x00\x51\xe2\x78\xba\x43\x87\x0e\xf8\ \x54\x66\x7f\x48\x0c\x45\xfb\xd5\x96\xe1\x98\x60\xb6\x33\x4a\x48\ \xd6\xe1\x45\xa9\x27\x85\xc5\x36\x30\x93\x3a\xe5\x85\x00\x0a\xea\ \x4d\x8f\x5f\xad\x59\xc9\x6c\x26\x2e\x29\x24\x90\x1c\x40\x82\x38\ \xcb\x9c\xaa\x2e\x58\x58\x55\x77\x79\x31\x58\x90\x65\x62\xd9\x88\ \xf9\x55\xfc\x47\x0f\xf0\xd0\x49\xf6\x88\x88\x26\xcd\xf7\x66\xdd\ \xb4\xe4\x7b\xd4\xe0\x61\xc8\x59\xe0\x88\xc8\xdc\x98\x0d\x17\xeb\ \x46\x5f\x29\xd8\x8c\x06\x10\x78\x4c\xf2\xbe\x53\xb0\x55\xf8\x3f\ \xbd\x59\xb0\x0a\x15\x6f\x65\x16\xd6\x8e\x08\x7c\x28\x8a\x12\x0b\ \x33\x5d\x88\xda\x88\xad\x6a\x4c\x66\xd2\x80\xa9\x02\x8e\xd5\xda\ \x52\xb4\x36\xee\x2a\x00\xd6\x8c\x81\x5c\x05\x43\x55\xb8\xc2\x16\ \xe1\xaa\x40\xf4\x49\x73\xf3\x15\x4b\x84\x3a\xc7\x8c\x57\x7f\x40\ \x23\x31\xb6\xdc\xbf\x5b\x56\x9c\xf2\xc5\x10\x31\x3a\x97\x2e\x2c\ \xca\x0e\xd5\x56\x6e\x1b\x30\xb1\x8c\x2b\x20\x20\xf8\x69\xea\x3d\ \x2f\x59\xb3\xbd\x6a\x78\xb5\x20\x21\xf2\x8d\xaf\xa3\x6e\x0f\xb5\ \x09\x17\xde\xe6\xb3\x44\xb8\xcc\x2c\x8c\x4a\xba\xdc\xea\xac\x34\ \x26\xad\xc5\xc4\x70\xf2\x1f\xbd\x8d\xa3\x3d\x57\x51\xf4\xa6\x72\ \x8b\x0e\x39\x86\xda\xfb\xf2\xae\xd3\x0f\x19\x92\x43\x61\x63\xbf\ \xc5\xda\xa7\xc6\xc3\x88\x5a\x54\xc4\x26\xd6\x01\xae\x0d\xea\xa6\ \x27\xec\xeb\x08\x92\x4c\x6a\x34\xcc\x2e\x11\x8f\x3a\xad\x4a\x32\ \xf0\xfc\x1c\xb3\x45\x23\x46\xf2\x85\x16\x32\x33\xd8\xad\xba\x8e\ \x74\xc9\xdb\x0e\xcf\x98\x60\xa0\x37\x3a\x0c\xa6\xf6\xfa\xd0\x1b\ \xf2\xb1\xf9\xd0\xb6\xe7\xb5\x85\x73\x68\x77\xc3\x5b\x5c\x0e\x1c\ \x7f\xd1\xfd\xe9\x72\x61\xb8\x74\xb7\xfb\xb7\x89\x89\xff\x00\x96\ \xd7\xfc\x8d\x75\x45\x81\x7c\xdd\x3f\x3a\x2e\x22\xcf\x0b\x81\x89\ \x30\xe3\x2d\xa6\x8b\x22\x9b\xfd\x76\xaa\x78\xac\x3e\x27\x07\x20\ \x12\x29\x53\xf0\xb0\x3a\x1f\x63\x5a\x20\xda\x98\xcb\xf6\x9c\x1c\ \xb8\x63\xa9\xca\x5a\x3d\x79\x8f\xf7\xf9\x51\x78\x4f\x8b\x41\xc3\ \x71\x5f\x6b\xc3\xb4\x52\xff\x00\x9b\x1a\xdd\x5b\x9b\x0a\x76\x6a\ \xc4\xc1\x4e\x70\xf8\x94\x94\x7c\x27\x5e\xe2\xb7\x4a\xab\xc2\xb3\ \xc5\xac\x6d\xff\x00\xd7\xb1\xab\x8d\xd8\xab\x81\xa3\x53\x4b\x5d\ \xef\x44\x34\xad\xa3\x95\xc6\x5c\xac\x2e\x0e\xe2\x95\x89\x86\x49\ \x2d\xe1\xc8\xce\xa3\xe1\x66\xd4\x7b\x57\x5e\xa4\x1e\x86\xa1\x83\ \xc1\x26\x1e\x4c\x3e\x52\x80\xc8\xbe\xa1\xb3\x54\x4f\x86\x60\x33\ \xc2\xec\xd6\xd4\x83\xb8\xa2\x46\x25\xc3\x05\xbb\x01\x60\x46\xf5\ \x6f\x0b\x0b\xe6\x0f\x25\xd4\x74\xe7\x5a\x93\x55\xe8\x1c\x17\x14\ \xf9\xb3\x4f\xe6\x45\xd0\x13\xb8\xad\x65\x65\x65\xcc\xac\x18\x1e\ \x62\xb3\xe7\x84\x36\x28\x22\x79\x55\x85\xfb\x0a\x38\xe2\x9e\x07\ \xcd\x13\x09\x07\x30\x39\xfc\xab\x7c\x76\x33\x57\x74\xb5\x0b\xca\ \xaa\xf9\x0c\x8b\x7e\xe3\x6a\x1c\xd7\x50\xc0\x11\x7e\x47\x71\x5d\ \x98\x2c\xb7\x36\x02\x40\x06\x63\xc8\x8e\x47\xde\xb5\xa0\xac\x76\ \x20\x78\x5e\x1a\x4a\xad\x9b\x72\xbc\xa9\x1e\x22\xc4\xaa\x60\x91\ \xb3\x11\x67\xb8\xa9\xe2\x51\xa2\x15\x65\x00\x16\xbd\xc7\x2a\x3e\ \x1c\x88\x22\xf1\x48\x05\xb3\x5b\x5e\x55\x9f\xa5\x6a\x26\x49\x23\ \x0f\x1f\x31\xa8\xe9\x49\x9d\x6f\xa8\x1a\x93\x46\xde\x6f\x32\xd9\ \x5c\x6c\x6d\x6f\x91\xed\x49\xc6\x49\x29\x4f\x0d\x21\x65\x6f\x88\ \x8d\x40\x1d\xa9\xa1\x31\x80\x07\x23\x7a\x23\xf9\xf2\xa4\xe1\x6f\ \xe0\xa5\x81\xf2\x5c\x1f\xf7\xf3\xa6\xa1\x0c\xc4\xd1\x10\xd0\x88\ \xa3\x69\x0e\xbe\x1a\x96\xac\x29\x1b\x33\x96\x3b\x93\x7a\xd6\xe2\ \x72\x78\x7c\x39\xb6\xbc\x87\x27\xef\x55\xf8\x54\x28\xb0\xfd\xa1\ \xd4\x16\x63\x65\xbf\x2a\xcf\x2e\xee\x35\x3a\x80\xc1\x60\x4c\x8a\ \x24\x95\xb2\x2d\xf4\x5b\x6a\x6b\x44\x65\x54\x08\x8b\x95\x06\xc2\ \x96\xce\x49\xb9\x35\x19\xe9\x9d\x0b\x74\xc0\xd6\xda\xdf\x31\x43\ \x2a\x89\x2e\xca\xc5\x24\xfc\x43\x9f\xbd\x0e\x6d\x2a\x03\x54\x15\ \xe7\x52\x3c\x93\x46\x3b\x15\x39\x4f\xc8\x8a\x57\x85\x87\xfc\x33\ \x7f\xfe\xe6\xae\xbb\x23\xa6\x57\x19\x87\x6e\x55\x56\x48\x98\x5c\ \xa0\x2c\x3f\x31\x45\x87\x49\x38\x6c\x16\x6c\xc2\x19\x2f\xd7\xc5\ \x34\x66\x34\x90\x91\xe2\xba\x5f\x6b\xd8\x8f\x9d\xa8\x0b\xdb\x90\ \x34\x25\xbb\x0a\x3a\x21\x6f\xb4\x61\x58\x30\x24\x03\xb1\x1b\x1a\ \xbb\x82\xe2\x10\xc8\xbe\x1c\xa1\x22\x70\x3d\x45\x46\x53\x55\xc4\ \xc4\xc7\xe1\xbd\x99\x3a\x1a\x19\x70\x0e\xcb\x9f\x0f\xf7\x8b\xd3\ \x9d\x53\x67\x87\xff\x00\x56\xf1\x73\xc1\x14\x82\x68\xd9\x64\xcc\ \x9a\xaa\x6c\x75\xb5\x67\xcf\x3b\xca\xe5\xdc\xdd\x8d\x48\x56\x55\ \x55\x70\x54\x32\xb2\x6a\x39\xdc\x11\xfb\xd5\x76\x24\x12\x0e\x96\ \xa3\x95\xaa\x41\x86\xa2\x07\xa5\x29\x4e\xb4\x6b\x59\x26\x03\xf9\ \xd5\x84\x8c\xbc\x82\x30\xb9\xb2\x90\x15\x6d\xa3\x36\xe4\x9e\xb6\ \xa4\x44\x06\x60\x5b\xd2\x35\x3e\xd5\xab\xc2\xa3\x29\x84\x18\x89\ \x57\xef\x24\x62\xc9\x71\xa8\x07\x9d\x6f\x8c\xd1\x6a\xd4\x00\xe1\ \xe1\x11\x83\xe6\xb7\x9c\x8e\xbd\x2a\x43\x03\x4b\x1b\xd1\xa0\xd6\ \xba\x30\xe2\x0f\x4a\x13\xa1\xa6\x69\x7d\xea\x1b\x28\xd4\x91\xf2\ \xab\x11\x7a\x54\x15\xa6\x05\x0c\x2e\x2a\x4a\x91\x52\x21\x85\x01\ \x8b\xef\x3c\x48\xd8\x23\x9f\x50\x23\x46\xab\x05\x6f\x49\xc5\x32\ \xc7\x26\x42\xe7\x35\xb5\x55\x17\xb7\xbd\x18\x8a\x92\x39\xe5\x53\ \x13\xa2\xc4\x81\x86\x63\x9a\xf9\xbd\xa9\xb9\x54\x28\x44\x16\x45\ \xd8\x52\x92\x78\x90\xf9\xd2\x40\x4f\x33\x4d\x61\xa5\xc1\xb8\x3b\ \x1e\xb4\x17\x1b\x0a\x12\xdd\xab\xac\xc4\x5e\x84\x9a\x82\x49\xa8\ \x2d\x42\x4d\xe8\x6a\x38\x3c\xc2\x97\x8d\x96\x48\xa0\x46\x89\xca\ \xdd\x88\x36\xe7\x53\x7a\x5e\x30\xd8\x43\x21\x52\xd1\xa1\x39\x87\ \x7a\xaf\x8b\x15\x15\x99\x66\x56\x7b\x8d\x41\xd6\xb4\xa7\xbe\x72\ \x79\x31\xf2\x9e\xb7\xaa\x78\x89\x5b\x1b\x32\xaa\x29\x55\x1f\x11\ \xd6\xde\xf4\x79\x9f\x0a\xaa\x4b\x09\x62\x2d\xb1\x16\x3b\x72\xac\ \xc3\x56\x04\x8f\xcd\xb3\x0e\x8c\x2e\x3f\x3a\x07\xc3\x61\x5d\x73\ \x49\x87\x54\x1b\xdd\x5b\x2d\xff\x00\x9a\x4b\xe3\xa2\x0b\xf7\x71\ \x31\x6f\xeb\x3a\x55\x69\x25\x92\x46\x0e\xe4\x34\x92\x1b\x46\xa7\ \x6f\x7b\x74\xa6\xf2\x8b\x1d\x88\x8b\x0d\xe2\x59\x1e\x45\x54\x37\ \x16\x50\x48\xbe\xd7\xd7\x7a\xab\x26\x0b\x07\x23\x97\x79\xb1\x04\ \x9f\xe9\x5a\x6c\xac\x01\xc8\xa6\xea\x0e\xe7\xe2\x3c\xc9\xa5\xb3\ \xa8\x6c\xa4\xd8\xfe\x95\xce\xb4\xe8\xf0\xef\x31\xb4\x71\x13\xa6\ \xe2\x82\x58\x65\xc3\xf9\x64\x52\xa4\xeb\xad\x6b\xb8\x1a\xa2\x59\ \x63\x4f\xa0\xee\x6b\x3f\x1f\x30\x96\x50\x17\xd0\x82\xcb\x7f\xd6\ \xab\xc7\x04\xaa\xeb\x7d\xcd\x72\xe9\xa7\x4d\xaa\x6b\xbb\xf4\xa0\ \xba\x9d\x82\x36\xc5\xa0\x3b\x31\xca\x7e\x7a\x7e\xf4\xa0\x2f\xd7\ \xe9\x44\xa2\xcd\x71\x7d\x3a\x5b\xf9\xa6\x26\x3e\x21\x04\x78\x99\ \x10\x03\x65\x72\x07\xb5\x3b\x05\x8a\x9f\x0a\xf7\x8a\x4c\xb9\xbe\ \x13\xb1\xad\x2c\x46\x1f\x0b\x8b\x9c\xcd\x2f\x8b\x1b\x9f\x51\x40\ \x0e\x63\xd7\x5a\x98\xb0\xbc\x3e\x16\x0c\xb0\x34\xac\x07\xaa\x56\ \xd3\xe9\x58\x9c\x6c\xa7\x4a\x8b\x8b\x21\xb0\x9b\x08\x84\xfc\x45\ \x09\x1f\x96\xd4\xf4\xc6\xf0\xf7\x5b\xf8\xb2\xc6\x7a\x32\x66\xfd\ \x2a\x5a\x3c\x24\x82\xcf\x83\x8c\x5c\xef\x1d\xd4\xd4\x45\xc1\xe0\ \xc4\x4b\x9b\x0f\x23\x28\x06\xe5\x1f\x6f\x60\x6b\x73\xf4\x0f\x89\ \x23\x98\x06\x86\x65\x65\x3d\x74\x35\x6d\x30\xf8\x44\x8d\x5e\x59\ \x90\xdf\xab\x7f\x15\x9b\x8b\x86\x68\x9f\x2c\x91\x14\x03\x61\x6d\ \x00\xa4\xd3\xb9\xf0\x36\x86\x33\x05\x18\xca\xb3\x10\x07\x25\x8f\ \x7f\x9d\x70\xc7\xe0\xd5\x0c\x85\xa4\xb2\xf3\x22\xb2\xe0\xc3\x4b\ \x2a\x66\x58\xe4\x61\x7b\x79\x56\xac\x37\x09\x92\x58\x8c\x52\xc8\ \x89\x73\x71\xe6\xd4\x7b\x8a\xd6\xf2\xf9\x06\x45\xa8\x31\xf0\x29\ \x2d\x20\x92\xf2\x0b\xdf\xa0\xa7\x47\x8f\xc0\xb7\xfc\xe6\x07\xba\ \x55\x01\xc3\x8c\x91\xae\x7c\x42\x29\x5f\x21\xb0\x3a\xda\xa3\xff\ \x00\x4d\x60\x72\xa6\x22\x33\x61\xbe\xa2\xf5\x4b\xc9\x64\x6c\xa1\ \x59\x17\x34\x52\x2c\x83\xaa\x9b\xd7\x5f\x75\x22\xe0\xee\x0d\x62\ \x9c\x16\x36\x23\x9e\x3f\x31\xe6\x63\x6b\xfd\x69\x90\xf1\x4c\x44\ \x44\x47\x89\x84\x32\xed\x98\x8b\x1f\xad\x3f\xaf\xe8\xc6\x89\x86\ \x03\xae\x43\xa7\xf5\x69\x53\x9e\x35\x5c\xaa\x00\x1d\xa9\x11\x62\ \xb0\xf8\x96\xc8\xb2\x80\xc0\x5e\xcd\xa7\xe7\x4f\x58\xd9\x45\xd5\ \x2e\x3a\x8d\x69\x9f\xf1\x09\x1e\xe3\x45\x35\x21\x9f\x36\x6b\xdb\ \xe7\x4b\xcf\x6a\x8c\xf7\xab\x40\xda\x45\x8a\x47\x32\x12\x16\x42\ \x18\x10\x36\x36\xb5\xa8\x23\x99\x1a\x7b\x05\x74\xcd\xe9\xcd\xb3\ \x51\x26\x76\xf4\x82\x7e\x57\xa5\x62\xe4\x48\x94\xb4\xee\x3b\x28\ \x3a\xdf\x95\x45\x5f\xfc\x44\xf7\x58\xa0\xda\xc3\x31\xf7\x34\xdc\ \x3c\x80\x60\x60\x04\x58\xe4\xe5\xef\x59\x53\x62\xa6\x93\x16\x44\ \x90\xab\x48\x41\x2a\xf9\xb4\xb7\x5a\xd2\x0d\x96\x18\x45\xf3\x11\ \x18\xcd\xde\xb3\x2e\xdb\x4e\x74\x66\x75\xfc\x55\x19\xd6\xfa\x30\ \xa5\xdd\x4d\xed\x6a\x02\x7c\xd6\x14\xea\x58\xcd\x6a\xe7\x63\x94\ \xd8\xda\x96\x49\xa8\x6b\xe5\x34\xa3\x81\xb0\x16\xe9\x50\x5c\x82\ \x08\xde\x96\xad\x71\x53\x98\xdc\x5e\xa4\x99\x60\x8e\x7f\x31\x39\ \x1f\xa8\xd8\xfb\xd5\x3c\x42\x3c\x4d\x66\x5f\xa5\x5d\x06\xa5\xb2\ \xb2\xe5\x71\x99\x7a\x1a\x2c\xd4\xce\x07\x9d\x33\x0f\x88\x78\x5a\ \xe8\x74\xe6\x0e\xd5\x38\xac\x2b\x20\x2f\x11\x2c\xbc\xc7\x31\x55\ \x43\x9b\xd8\xd6\x3c\x6b\xd6\xbc\x58\xb5\x99\x4d\x88\x70\x47\x99\ \x1b\x5f\xa5\xe8\x13\x3d\xf2\xc3\xe1\x15\xfe\xa1\x62\x2b\x2d\x49\ \x49\x33\xa1\xb1\x15\x7b\x01\x8a\x59\x49\x0e\x32\xbf\x23\xc8\xd6\ \xa5\xd6\x71\x63\xec\xf1\x6a\x71\x11\xa3\x06\x3a\xc8\xba\x65\xfe\ \x28\x26\xe1\x8b\x7b\xc3\x25\xbf\xa5\xbf\x9a\xb1\x11\x21\xec\x47\ \xb8\xeb\x54\x9a\x79\x17\x34\x71\xb9\xc8\x09\xb7\xb5\x37\x14\xd0\ \x47\x10\x17\x59\x2c\x56\xfa\x80\x77\xfe\xd5\xae\x1b\x3c\x51\xb5\ \xad\x74\x1a\x74\xac\x85\x37\xad\x4c\x3b\xe7\xc2\xc6\xcb\xf0\x8c\ \xa6\x9e\x22\x9a\xa3\x5a\x25\xb9\x24\x03\x60\x37\x22\x97\x7b\x0a\ \x6c\x43\x2a\x81\x5a\x80\x59\x53\xf0\x0a\x90\x00\xf4\x80\x3d\xab\ \xaa\x6c\x6b\x49\x04\x03\xb8\x07\xdc\x54\x65\x53\xf0\x8f\xa5\x15\ \xab\x97\x46\x07\xa1\xa9\x05\x97\xc3\x06\x46\x19\x02\x8b\xde\xd6\ \xaa\xd8\x51\x6c\x32\xb1\xb8\x67\x62\x49\xe6\x69\x8b\x08\xf1\xe5\ \xf1\x49\x65\x46\xd0\x13\xa5\x11\x60\xcc\x06\x5b\x0e\x5c\xa8\x40\ \x7c\xb2\x0c\xb2\x8c\xc2\xd6\xb9\x1a\x8a\xa4\x9e\x3c\x38\xaf\xb3\ \x29\x04\x16\xb0\xb8\xd3\xde\xae\xb5\x81\xb7\x3e\x82\xab\xe3\xd5\ \xef\x0c\xab\xa1\x0d\x97\xde\xb3\x4c\x1b\x95\x0f\xa6\x5d\x09\x2b\ \x7e\x54\x82\xc4\x9b\x20\xbd\xb7\x35\x62\x45\x01\x99\x40\xd2\xfb\ \x52\x9b\xca\xa4\xa8\x1a\x50\x00\x7a\x8a\x8a\x30\xa0\x0d\x2e\x7b\ \xd0\xb0\x00\x5c\x9d\x2a\x3a\x12\x2b\x90\x90\x74\xf9\xd4\xfb\x6b\ \x50\xdb\x5b\xad\x45\x25\xcb\x02\xa2\xd6\xe7\x61\x6b\xd0\xe2\x23\ \x59\xa1\x11\xb3\xe5\xb3\x5c\x1b\x5e\xa4\xda\xdd\x85\x42\x92\x58\ \x00\x37\xa9\x13\x26\x0b\x0e\xb1\xb4\x9e\x24\x96\x51\xcc\x00\x0d\ \x50\x9c\x5b\x13\xf6\x8f\x13\x33\x0f\x4d\x86\x8b\xf5\xab\x5c\x52\ \x6c\xcf\xe0\xaf\xa5\x37\x23\x99\xaa\x65\xac\x6b\x9d\xcd\xe8\xc0\ \xe7\x62\x7d\x63\xfe\x91\x40\xcc\x11\xb4\xdc\x8d\x6f\x44\xc0\x36\ \xbb\x1e\x44\x0a\xe8\xa1\x69\xb1\x48\xa4\x8b\x31\x02\xb3\x49\xf3\ \x4f\x3c\xa9\x95\xa4\x25\x7f\x08\xa4\x53\x0d\x71\x53\xae\x97\xf9\ \xd3\xa8\xba\x90\x28\x97\x53\x63\xa1\xa2\x0a\x4e\x9c\xea\x40\xb5\ \x10\x5a\x24\x0d\x94\x92\x01\xb1\xd4\x73\xa3\xca\x4a\x82\x96\xf9\ \xd4\x8b\x17\xa9\xa6\x15\xe9\x50\x16\xac\x41\x15\xa9\x87\x4f\x0b\ \x0e\xa9\xf1\x37\x99\xbf\x6a\xa5\x84\x88\x49\x89\x44\xd8\x13\xad\ \x68\xb0\xbb\x93\xca\xf5\xbe\x30\x5a\xe5\x77\xcb\x96\xf7\x1d\x0e\ \xa3\xf3\xa8\x6c\x84\xdd\xa1\x88\x91\xcc\xad\x48\xf6\xae\x22\xf5\ \xa6\x50\x5d\xed\x60\xc4\x0e\x83\x4a\x53\x13\x7a\x32\x2d\x42\xd5\ \x17\x06\x3e\x21\x1f\x0c\x9a\x8e\xcd\xd2\x96\x58\xe7\x35\x33\x06\ \x31\xa2\x25\xb3\x3c\x82\xd7\xed\xad\x74\xa6\xf2\x16\x1d\x68\x42\ \x0c\x46\xa0\xda\x8f\xc5\x63\xeb\xb3\x8f\xea\x17\xa4\x13\x5d\x9a\ \xad\x4e\x97\x0b\x81\x94\xdc\xc1\x90\xf5\x8c\xd8\x0f\x95\x25\x70\ \x53\xc4\x6f\x85\xc7\x01\x6d\x81\x25\x69\xad\x73\xb3\x11\x50\xb9\ \xc1\xd4\x82\x28\xe9\x25\x5f\x8c\xaf\x34\x9b\xd8\x83\x4b\x9b\x1b\ \xc4\xd1\xb2\xb4\x45\x4f\x68\xe9\xd7\xa2\x59\x64\x51\x65\x91\x80\ \xe8\x1a\xac\xff\x00\xa9\x49\xa6\xe2\x73\xe8\x7c\x73\x7d\xbc\xa4\ \x52\x8e\x0f\x1c\xce\x41\x85\xef\xcc\x9a\xd1\x92\x57\x6f\x29\x76\ \x6f\x73\xb5\x43\x3d\x97\x56\x36\x14\x7e\x67\xf4\xea\xb4\x78\x27\ \x45\x47\x9d\xd0\x04\x24\x35\xbc\xc7\x29\xdf\x6d\xaa\xd6\x21\x46\ \x7f\x2e\xd6\xf2\xf7\x1c\xa9\x62\x51\x7d\x14\x91\xb1\xa8\x88\xe4\ \x2f\x16\x62\x46\x50\xe9\x7e\x5d\x45\x33\x27\x81\x39\x0d\xaf\x7b\ \x1a\x94\x52\x0d\xc9\xbd\x0e\x6a\x82\xd7\x39\x41\xf7\xa9\x19\x7a\ \xeb\xd2\x55\x9b\x35\x81\xd0\x75\xa3\x2c\xdf\x87\xe9\x56\xac\x1d\ \xec\x6f\xf5\xae\xbf\x2a\x58\x25\xb4\x0b\xda\x89\x4a\x33\x65\x59\ \x55\x98\x7c\x20\xeb\x56\xa1\x23\xdc\x5e\xf4\x79\xcd\x27\x55\x3b\ \x7b\x8a\x95\x6b\x8a\x75\x1a\x1a\xc6\xe3\x43\x49\xc5\x61\xd2\x62\ \x5d\x3c\xaf\xd3\x91\xa2\x26\xc2\xf5\x19\x88\x3b\x1a\x92\x83\x02\ \xad\x94\x82\x08\xe4\x6b\x81\xf3\x5c\x68\x6a\xf4\xea\xb3\x80\x18\ \x59\x86\xcd\x54\xa5\x56\x8e\x42\xae\xba\x8e\x87\x7a\xc5\x8d\x2e\ \xe0\xb1\x6c\x06\x49\x2e\xc3\x61\xd4\x55\xdc\x19\x5f\xb1\x21\x4c\ \xac\xba\x86\xd3\x9f\x7a\xc5\x8c\xd9\x89\xd7\x5a\xb9\x86\x9d\xe3\ \x7c\xc8\xd6\x63\xa1\xbe\xa1\xbb\x1f\xe6\x99\xc8\x58\xb9\x2e\x16\ \x27\x6c\xc8\xde\x19\x3c\xad\x71\x52\x15\xf0\x6a\x64\x57\x12\x27\ \xc4\xb6\xb5\x0f\xdb\x20\x24\x28\x56\x59\x0f\xfc\xb6\x3f\xa1\xe7\ \x51\x36\x22\x16\x56\x5b\x3d\xd9\x6d\x62\x2b\x5d\x33\xda\xe4\x6c\ \xae\xe0\xc7\x72\xac\x34\xa7\xa5\xf9\x8d\x6a\xa6\x15\x55\xb0\x28\ \x14\x58\xe5\x20\x1e\x60\xd3\xb8\x79\x90\xc0\xa5\xe5\x62\x0e\xc0\ \x80\x6b\x70\x2c\x2d\x10\x17\xa8\x19\xbf\x1c\x7f\xf6\x1f\xe6\x8c\ \x1b\x0f\x30\x00\x7e\x25\x3a\x7c\xfa\x56\x83\x80\xa9\x2b\x70\x45\ \x15\xba\xd4\xd8\xf4\xad\x05\x59\x62\x65\xfb\xc3\x72\xa0\x59\xc0\ \xdc\x8e\xbf\x2b\xd7\x10\xac\xb7\x52\x19\x7a\x8a\xb5\x1f\xac\x03\ \xb5\xf5\xaa\x78\x38\xb2\x89\x7f\xd6\x40\x17\xe5\x7a\xcd\x87\x5c\ \x14\x0d\x86\xf4\xa6\x2a\xd8\xd0\x83\xfe\x52\x93\xf3\xab\x25\x7b\ \x81\xef\xa5\x56\x96\x48\x53\x1b\xe2\x86\x04\x37\x95\xc8\x1a\x5c\ \xf3\xa2\x94\x30\xa0\x2b\x4d\x0f\x13\x1b\x2b\x8b\xf4\x3a\x57\x3a\ \xdb\x71\x59\xc4\x41\x45\x1b\x28\xa0\x74\x0c\x2d\x76\xfd\x69\xe4\ \x50\xb2\xd0\x88\xc8\x14\x69\x70\x6a\x08\xf3\x5c\x9b\xd3\x1a\x81\ \xad\x7a\x8c\x09\x1a\x5a\x82\x67\xf0\x30\xed\x27\xc4\x7c\xab\x4d\ \x51\x73\x6f\xf6\x2a\x87\x11\x97\xc5\x94\x85\xf4\x26\x8b\x47\x2b\ \x90\xab\x7b\xd0\x91\xda\x8a\xa2\xb9\x34\x1b\x0a\xe4\xcc\xac\x18\ \x1b\x11\xb1\xa2\xa9\xb5\x3a\x9c\x6c\x05\xe8\xe3\xb3\x0f\x28\x27\ \xf2\xa2\xcb\xe5\x3a\x5f\x4d\xa9\x9c\x3a\x13\x23\x14\xb5\x94\x6a\ \x5b\xa5\x32\x22\x63\xc2\xcf\x34\xb9\x51\x33\x13\xae\x9c\xaa\xf4\ \x3c\x3f\x28\x02\x59\x46\x9b\xe5\xd6\xaf\x22\x24\x71\x84\x41\x61\ \x6d\x7a\x9a\x12\x40\xd8\x5e\xb7\x38\xc6\x6f\x25\x77\xc0\x46\xc2\ \xf1\xcc\xca\xc3\xf1\x0d\xea\xab\xc0\xd0\x93\x1b\xea\x6f\xca\xb5\ \x14\xad\xaf\x7b\x54\xcb\x08\x9e\x1c\xbf\x16\xe8\x6d\xf9\x55\xf9\ \x83\x59\x16\xed\x5d\x96\xfc\xa9\xe5\x2c\x6c\x46\xb5\x19\x68\xc6\ \xb4\x7c\x2d\x7f\xe2\x4e\x9f\x01\xab\x65\x6d\xca\xf5\x5f\x87\x69\ \x8a\x02\xde\xa0\x54\x55\xb3\xbd\x33\xc6\x69\x2c\x2b\x81\xeb\x4d\ \x65\xa5\x95\xa4\x3a\xc2\xc4\xda\xf9\x45\xec\x39\xd5\x27\xc6\x81\ \x70\x60\x1f\xf7\x1a\xba\x2e\x0d\xc6\xf5\x9d\xc5\x54\x2e\x36\x50\ \x05\x80\x34\x72\xdc\x6a\x1b\x0b\xb6\x21\x84\xec\x02\xa4\x67\xc8\ \xa3\x99\xa9\x3b\xd4\xe1\xd1\x93\x09\x1a\xb0\x00\xea\x48\xf7\xa1\ \x7c\xdc\x80\xab\xe2\x76\xde\xd5\x07\xf2\xa1\x0c\xe4\x1b\x28\xa0\ \x05\x96\xf9\x86\x9d\xb9\x50\x70\xc9\x1e\x28\x80\x32\xbe\x5b\xec\ \x00\xb9\x35\x1e\x2c\x44\x5f\x39\x5e\xee\x84\x0a\x5c\xca\xb3\x2a\ \x82\xc1\x59\x4d\xd5\x88\xa9\x94\xcf\x24\x45\x24\x68\x54\x11\xa9\ \x04\xb7\xe5\x46\xa3\x58\xd8\x03\x7b\x83\xb1\x1b\x1a\x8b\xd2\x60\ \x41\x0a\x14\x59\x1d\xef\xca\xd6\x14\x46\xe0\xea\x08\xab\x56\x25\ \x9b\x29\xb8\x3b\xef\x52\x1e\xe3\x51\x4a\x66\xf3\x0b\xf2\xa6\x01\ \xa6\x62\x42\x8e\xa4\xd8\x55\xa9\x0c\xf4\xac\x54\xe6\x17\x8d\x86\ \xae\x01\x05\x4e\xd9\x7b\xd1\xea\x5f\x42\x51\x7f\x15\xac\xcd\xed\ \xd0\x54\xfd\xd2\x5e\xd1\xae\xbb\xe6\xd4\x9a\x12\x19\xae\x15\x97\ \x40\xe2\xe0\x57\x2f\x99\xb5\xa8\x6d\x40\xb0\xb2\x8d\x00\x14\x4a\ \x54\x0d\xef\x51\x12\xd9\x5b\x53\xbd\x49\x7f\xc3\xad\x05\xb3\x0b\ \x93\xf2\xa8\xd5\x45\xd7\x7e\x94\x83\x12\xeb\x20\x20\xea\x75\xa0\ \x91\x62\x86\xee\xca\x0c\x4e\x75\x36\xb9\x53\x5c\xa4\xde\xe7\x7f\ \xd2\x88\xe5\x74\x68\xdf\xd2\xfb\xf6\xa9\x07\x0d\x3f\x8d\x19\xd4\ \xe7\x8c\x6a\x4f\xc4\x3a\xd1\x0b\xdf\xcb\x54\x07\x8b\x83\xc4\x66\ \x2b\xdb\x5d\x88\xa6\xcf\x8d\x56\x8b\x2c\x28\xca\xcd\x6b\x92\x76\ \xf6\xac\xfe\xbf\xa9\x6a\xe6\xfa\xd1\x66\x14\xac\x3c\xab\x88\x4e\ \x62\x45\x1e\x60\x79\xf7\xa2\xb9\xad\x6a\x15\xea\x64\x55\x95\x32\ \x3f\xc8\xf4\xa0\xa9\x53\x6a\xb5\x62\xa4\x8a\xd1\x49\x95\xfe\x47\ \xad\x10\x6b\x55\xa9\x51\x66\x4c\x87\xd4\x3d\x26\xa8\x6a\xa4\x83\ \xc8\xd8\xd1\x61\x58\xba\xc9\x1e\x47\x06\xdc\x88\xdc\x51\x0f\x17\ \x25\x83\x24\xd6\xda\xfa\x30\xaa\xea\xda\xd3\x15\xaa\xd4\xb1\x0f\ \x15\x38\x7b\xc6\x20\x36\x3b\x86\x3b\x1a\xd2\xe1\xb8\xc8\x64\xc1\ \xc6\x58\x14\xb1\x23\xa8\x15\x98\x72\x3d\xbc\x6f\x0c\xdc\x69\x9b\ \x7f\x95\x16\x09\x44\x73\x4d\x02\x9b\xa6\x50\xc0\x74\x35\xa9\x6e\ \xb3\x63\xd0\xae\xa9\x98\x10\xc0\xf3\x14\x71\x9a\xc7\xc2\xce\xf0\ \xb5\xc3\x58\x74\x3b\x1a\xd3\xc2\xcc\x93\x26\x75\x20\x11\xea\x17\ \xda\xba\xca\xcd\x8b\x08\x0a\xd8\x25\xad\xf8\x4f\x2f\x63\xca\x8d\ \x5d\x49\xb1\xf2\xb0\xf8\x5b\x4a\x5a\x3a\xdf\x9f\xbd\x14\xae\xa6\ \xca\x40\x61\xdf\x5a\xdb\x26\x01\x67\x06\xd6\xd6\x90\xb1\xa1\x8d\ \x6c\x0e\xbd\x34\xbe\xb4\xc3\x1a\x15\x39\x4b\x2d\xc7\x23\xa7\xd2\ \x82\x72\x21\xc3\x31\x5d\x32\x2d\x85\x49\x9d\x8e\x25\xa5\x31\x86\ \xba\x2f\xe6\x6a\x9e\xd2\x18\xed\xe5\x7f\x2d\xaa\xc3\x1b\x9d\x69\ \x2f\xa1\xcd\xcc\x57\x1a\xdc\x00\x6c\xf1\xab\x5f\x5b\x59\xbd\xc6\ \x94\xc8\x71\x0f\x19\xb1\xf3\x2f\x43\x4b\x72\xa1\x09\x1b\x2b\xb5\ \xfe\x7a\x8f\xd6\x95\x09\x25\x0d\xce\xc6\x8d\x2d\x28\xa4\x49\x41\ \xc8\x6c\x7f\x09\xa2\x61\xae\xa2\xb3\x01\x21\xb4\x36\xa7\x47\x8a\ \x99\x16\xd7\x0c\x3f\xa8\x5e\x9d\x18\xb0\xe3\x5a\x0c\xa5\x8e\x9f\ \xf8\xa5\x49\x8e\xd3\xfc\x95\xbf\xb9\xaa\xd3\xe2\x65\x94\x59\x98\ \x01\xd1\x45\x85\x1b\x14\x94\xcc\x74\xea\x23\xf0\xa2\x37\x27\xd4\ \xc3\xf4\xaa\x4f\xb5\x1d\xa8\x5c\x69\x58\xb7\x5b\x2a\xa6\x8b\x2d\ \x48\x5a\xce\x20\x5b\x5a\x9a\x92\x2a\x42\xd3\x89\x66\x38\xc9\x60\ \x06\xf5\xaa\xb0\xac\x71\x08\x80\xbd\xbd\x47\xa9\xa4\xf0\xa8\xaf\ \x39\x73\xff\x00\x2c\x5e\xae\x85\xae\xdc\x63\x16\x91\x94\x07\x00\ \xb5\xc5\xa9\x80\x0e\xab\xf5\x14\x52\x45\x98\xdc\x1b\x1a\x01\x11\ \xce\x14\xd3\x80\x56\x1b\x58\x37\x60\x2a\x51\x32\xa8\x1f\xbd\x31\ \x50\x01\x60\x2a\x72\xd3\x89\x47\x89\xc3\xaf\x8e\xa3\xd5\xea\xec\ \x6a\x99\x15\xb5\x94\x10\x55\x85\xd5\x85\x8d\x66\xe2\xe1\x68\x64\ \xca\x57\x36\x6f\x4d\xb9\x8a\x2c\x31\x5d\x09\x57\x0c\xa7\x50\x6e\ \x2b\x47\x47\x41\x22\xec\xc2\xfe\xd5\x9e\x79\xf9\x0e\x9f\x95\x5a\ \xe1\xf2\x00\x3c\x26\x3e\x56\xd5\x49\x3b\x1a\x22\xa6\x91\x6a\x12\ \x2f\x4e\x28\x79\xd0\x32\xda\xac\x05\x65\x25\xac\x06\xa6\xab\x49\ \x0f\x8b\x8b\x92\x72\x2f\x18\x6b\x8b\xfc\x56\xab\x8c\x0e\x5d\x3d\ \x4f\x75\x5d\x3e\xa7\xe5\x42\xea\x2d\x94\x68\xa0\x58\x0e\xd4\x58\ \x62\xbc\x9a\xb1\x26\x94\xe2\xd4\xf9\x01\x51\xa8\xbd\xb9\x8e\x74\ \xa3\xe6\xd2\xd6\xa8\x93\x6d\x49\xa1\x61\x4d\x22\xd4\x2c\x2b\x28\ \x86\x16\x3d\x8d\x0d\xc5\xed\x4e\x65\x14\x21\x2d\xb5\x18\x74\x9c\ \x54\xb2\x46\xd1\xaa\x3f\x86\x8e\x35\x7b\x52\xb1\x38\x86\x81\xc0\ \x8f\x11\xe3\xa1\x1a\x83\xad\x5a\x9a\x21\x2c\x26\x36\x6c\xba\xdc\ \x35\xb6\xa4\xe0\xe0\xf0\x26\x3e\x2d\xb3\x7c\x04\xec\x68\xba\x81\ \x0c\x92\xcd\xac\x78\x5b\x13\xbb\x35\xec\x29\xc4\xfd\xe7\xa8\xb1\ \x03\x56\xfe\x3a\x53\x24\x67\x6d\x19\x8f\xb7\x2a\x5a\x7a\x6d\x51\ \x71\x37\x37\x22\xf5\xc2\xd6\xb5\x87\xd2\xa6\xd5\xd5\x27\x0e\xd4\ \x5a\xda\x86\xe0\x1d\x6a\x0b\x12\x6c\x34\xa9\x08\xd4\x57\x1a\xea\ \x93\xaa\x49\xbd\x09\x35\x17\xbd\x48\x77\x05\x72\xba\x86\x5e\x86\ \x96\x23\x8e\x07\xfb\x44\x6a\x4a\x8f\x52\x9d\x6c\x3a\x8a\x20\x6a\ \x64\x91\x61\x81\xa4\x61\x7c\xc3\x28\x5e\xb5\x22\x31\xb3\xc4\x65\ \x8a\x48\xdb\x33\x29\xf3\x10\x2d\xa5\x5a\x70\x58\xe7\x40\x4a\xb6\ \xa0\x8a\xcf\xc1\xe1\x9e\x6f\x31\x39\x50\x6e\xc6\x9f\x8a\x85\x70\ \xf0\xe7\x8e\x69\x03\x5f\x40\x4d\xaf\x44\xb7\xd4\xb1\x66\x02\xe5\ \x48\x1d\x6d\x51\x71\x55\x70\x12\x62\x1f\x14\xa3\x3b\x30\x3e\xab\ \x9b\x8b\x55\xa2\x2e\xf6\x51\x7d\x74\xa6\x76\x84\xa7\xa1\xaa\xdc\ \x4b\x49\xd5\xbf\x12\xeb\x56\x42\x30\x17\x20\x7d\x6a\xb7\x12\x20\ \xca\x88\x06\xa8\xba\x9a\xaf\x80\x9a\x34\x3a\x50\x81\x73\x47\x10\ \xf3\x00\x39\x6a\x68\x22\x96\x3f\x16\x48\x16\xf6\x24\x35\x58\xc0\ \x42\x60\x8d\xf3\x90\x5d\x8d\xbe\x54\x97\x76\x8e\x48\x1d\x23\x2e\ \xc0\x36\x80\x55\x9c\x39\x12\x47\x9d\x41\x52\x0d\x99\x4e\xe2\x99\ \xe8\xa6\xaf\xad\x47\x7a\xbb\xc3\x74\xc5\xa8\x03\x46\xd0\xd5\x35\ \xbe\x60\x40\x27\xda\xb4\xb8\x7c\x3e\x18\xf1\x18\xf9\x88\xb2\x8e\ \x95\xd7\x8f\xac\xd5\xc8\xb6\xa3\x74\x04\x5c\x0d\x4d\x25\xa4\xf0\ \xec\xc7\x61\xbd\x14\x18\x98\xa4\x75\x4d\x54\x93\xa5\xf9\xd7\x4d\ \x9e\x32\x72\x5c\x79\x4f\x2a\xaf\xc5\x0d\xa1\x09\xf8\x8d\xea\xd1\ \x03\x37\x7a\xa3\xc5\x9b\xef\x55\x7a\x2d\x5c\xba\x8a\x28\xb5\x2d\ \xbb\xd1\xb9\x16\xde\x96\xfb\x57\x26\xa1\x13\xa3\x11\x9e\x3d\x5c\ \x0d\x54\xec\xc2\xa3\x0f\x66\x80\xb0\x04\x10\xd6\x65\xe8\x68\xce\ \xfa\x53\x06\x1a\x56\x1f\x68\x44\xd6\xde\x60\x74\x12\x0f\xe6\x8c\ \x24\xf3\xa8\x6a\xb0\x70\x93\x11\x99\x56\xe0\xea\x35\xd6\x97\x26\ \x1e\x70\x0f\xdd\x9d\x2a\xca\x95\x9c\xd0\xd3\x1a\x19\x83\x10\x62\ \x6d\x3b\x50\x15\x60\x2e\x54\x81\xd4\x8a\xc3\x48\xae\x22\xbb\xf2\ \xfd\x68\x80\xf7\xff\x00\xb8\xd4\x83\x96\xb8\x8a\x62\x8f\xea\x3f\ \x3d\x6b\xb2\x83\xb9\x3f\x2d\x29\xc1\xa5\x65\xa9\x00\x02\x37\xb9\ \xda\x9b\x91\x4f\x23\xef\x7a\xe8\xe3\xc8\x73\x6e\x3f\x4a\xb1\x6b\ \x63\x86\xa6\x5c\x1e\x6b\x83\x98\xe8\x47\x41\x56\x00\xa4\x70\xf5\ \xb6\x15\x5a\x32\x10\x96\x3e\x5f\x84\xf6\x23\xf7\xa7\x86\x05\x73\ \x00\x45\x8d\x88\x3b\xa9\xe8\x6b\xb4\xf1\x87\x5a\xba\x50\x91\x47\ \xe2\xc8\xe1\x00\xd0\x5f\xe2\xed\x51\x34\xb1\xe1\xe2\xf1\x24\xd4\ \x9f\x4a\xf5\xac\xdc\x64\xef\x89\x6c\xd2\x01\x61\xb2\xf2\x15\x5b\ \x89\x6e\x4e\x25\x1a\xbd\xa2\x83\x30\x1c\xdc\xd0\x2f\x13\x7c\xb6\ \x78\x51\xbb\x8d\x3f\x4a\xa4\xaa\xc4\x90\x01\x6b\x7d\x68\x95\x24\ \xbf\xf9\x6f\x6e\xb9\x4d\xab\x3f\xaa\x72\x34\x62\xc6\xe1\xa4\xd1\ \xb3\x44\x7b\xea\x28\xe4\x48\xf1\x29\x95\x24\x46\xc9\xb1\x53\xad\ \xfa\x56\x77\x81\x27\xfe\xd3\xff\x00\xda\x68\x4c\x52\x03\x70\x8e\ \x08\xe6\x06\xd4\xea\xc3\x9a\x09\x6e\x54\xc6\xe6\xda\x6d\x40\x90\ \xc8\xad\x90\x8c\xa4\x6d\x98\x81\x7f\xad\x54\xc6\x89\xe4\x52\x22\ \x95\xc4\x8a\x2f\xe5\x3e\xa1\xfc\xd6\x6e\x20\x4a\x04\x71\xbb\x33\ \x3c\xc6\xc0\x9b\x9b\x0b\xf2\xae\x77\x96\x7c\x32\x3d\x5c\x0e\x1d\ \x0f\x88\xea\x19\x46\xa7\x91\xae\x70\x48\x3e\x12\x67\x3b\x66\x3a\ \x28\xaf\x3d\x04\x86\x2c\x6c\x62\x2b\x00\xac\x00\x36\xf5\x0b\xd7\ \xa2\xf1\xd6\x59\x99\x0e\x8e\x09\x00\x72\x35\xd3\x8f\x2d\x16\x61\ \x79\x4a\x82\x5d\x83\x3b\x68\x48\xd8\x0e\x82\x81\x85\x39\xc6\x96\ \xa4\xc8\x72\xa7\x7d\x85\x54\x16\xe5\x7a\x8a\x43\xaa\xf8\x83\x21\ \xf7\xa7\x20\x19\x4d\xc8\xd7\xf2\xa1\xb0\x58\xaf\xd7\x7a\xc9\x85\ \x3a\xeb\x4b\x6b\x03\x6e\x74\xf6\x04\x8e\x42\x96\xc8\x09\xd6\xf7\ \xeb\x51\x28\x8a\x82\xb4\xc6\xd3\x7f\xad\x0d\x18\x80\x45\x04\xca\ \x0e\x16\x55\x22\xf6\x52\x47\xbd\x3a\xb9\x00\x2c\x57\xf1\x02\x28\ \xc4\x54\xc3\xcc\x17\x9d\x85\xf5\xed\x50\x16\x89\x98\x30\x43\x6b\ \x12\xa2\xff\x00\x4a\x86\x20\x0b\x93\x41\x09\x1a\xd0\x9b\x57\x3c\ \x82\xfb\x50\x9b\x9d\x49\xb7\x61\x41\x71\x55\xbd\xcd\x4a\x82\x4d\ \x95\x6f\xec\x2a\x15\x03\x30\x5e\xa6\xab\x4f\x88\x91\xa4\xf0\x60\ \x2c\x17\x6d\x0e\xad\x45\xb8\x96\xe4\xc9\x18\xbc\xb2\x2a\x76\xbd\ \xcf\xd2\x85\xed\x94\x32\xe6\x21\x86\x84\xad\xa8\x70\xf0\x24\x3e\ \x67\x01\xe5\x3b\xdf\x50\xb4\x6e\x4b\x35\xc9\xb9\xa5\x16\x73\x54\ \x44\x18\x9b\x93\xa5\x18\x17\xf6\xfd\x68\xd5\x49\x36\x03\xd8\x54\ \x83\x6a\xaf\xc5\x3f\xcd\x45\xbe\xcb\xb7\x4a\xba\x88\xc4\x7d\xd2\ \xab\x9e\x6c\x7d\x2b\xfc\xd4\xa4\x10\xc6\xe5\xdb\xef\x64\x3b\xb3\ \x6d\xf2\x15\x66\x8d\x66\xc3\x2e\x22\x24\xb4\x6c\xca\xb4\xdc\x3e\ \x1e\x4c\x43\x78\xb3\x31\xc9\xd4\x9d\x4f\xb5\x68\x34\x84\xef\x6f\ \x6b\x50\xc8\xdb\x17\xb9\xcd\xa2\xa8\xe7\xfc\x55\xf9\x5a\x04\x50\ \x13\x24\x4a\x11\x79\xff\x00\x73\x48\x9a\x62\x5b\xc1\xc3\x0b\xb1\ \xd0\xb7\xf1\x56\x99\x54\xaf\xde\x6a\xa3\x52\xa3\x44\x1e\xfd\x69\ \x18\x63\x0c\x0c\xee\x54\xdd\xbd\x23\x98\x14\xd4\xe8\x50\x61\x22\ \x2e\xde\x67\x6f\xd7\xa5\x55\xb3\xbc\x85\xc9\xb9\x63\x73\x7a\x6c\ \xce\xf3\x49\x99\xb4\x1c\x80\xe5\x5c\xab\x61\xa5\x66\x90\xaa\x91\ \xfd\xaa\xce\x0f\x0c\xd2\xb5\x94\x58\x0d\xcf\x21\x4c\xc1\x60\xda\ \x4f\x3c\x9e\x54\xeb\xd6\xb4\x11\x00\x50\xaa\x2c\xa3\xf3\xad\x4e\ \x3f\x68\xb5\x38\x60\x21\x5c\xb1\x0b\x77\xb6\xa6\x8c\x24\x47\x16\ \x19\xa3\x5c\xd2\x21\xbf\x42\x46\xd5\x2a\xb6\xda\x83\x17\x13\xb2\ \x2c\x88\x7d\x1c\xbf\x7a\xe8\xc1\xe9\x1a\x81\x65\x40\xbe\xc2\x99\ \x15\x93\x36\x76\xb0\x1a\xde\x86\x09\x63\x68\x95\xd9\xc6\x6b\x6a\ \xa3\x7b\xfb\x54\x82\x64\x90\x31\x1a\x8f\x48\xe4\xbf\xde\xb4\x83\ \x8b\x49\x5c\x09\x32\xd9\x57\x40\xbc\xc7\xbd\x06\x10\x67\xc4\x22\ \xf5\x61\x57\xa3\xf2\x8b\x6f\x4b\x8a\x20\x98\xd2\xc0\x79\x42\xe6\ \x1d\xb9\x55\x78\xf6\x34\xf6\xca\x75\xb7\x3a\xa1\xc5\x54\x78\xe0\ \xda\xfe\x51\xbe\xb5\x74\x1a\xa5\xc5\x35\xc4\xfb\x28\xa7\x97\x8a\ \x2a\xb1\xd2\x90\x49\x00\x8e\x86\xd4\xd9\x0d\x28\x9b\xfc\xcd\xeb\ \x9b\x50\xec\x04\x41\x98\xc8\xc2\xea\xbb\x0e\xa6\x9f\x8a\x62\x30\ \xce\xc4\xea\xde\x51\x53\x87\x19\x30\x88\x3a\xdd\xab\xa4\xb1\x78\ \x94\x81\x60\x0b\xeb\xcc\xed\x5a\xf8\x91\x7c\xa0\x06\x16\xd0\x7e\ \x94\x12\x1e\x94\x52\x90\xd7\xcc\x6f\x7a\x51\x1d\xcd\x14\x27\x33\ \x6c\x09\xd3\xbd\x48\x91\x8e\xfb\x0e\x47\x5a\x0b\x80\x2c\x2b\x94\ \x92\x6c\x01\x26\x84\xe9\x62\x86\x4f\x52\x05\x27\xe2\x5a\xa7\x3c\ \x4d\x0b\xe5\x61\x70\x76\x23\x63\x57\xb4\x0c\x14\xba\x06\x3b\x02\ \xd4\x18\xb0\x87\x0c\x44\x92\x22\x95\xd5\x75\xbf\xe9\x45\x86\x29\ \x0b\x72\xa2\x50\x49\xb0\xd4\xd0\x23\xc1\xcf\x13\x17\xd4\xd0\x89\ \x96\x69\xd3\x0f\x09\x21\x5c\xf9\xda\xda\x9f\xed\x46\x93\x90\xa6\ \x6c\xab\x9a\x46\x1f\x0a\x0b\xfe\x74\xc1\x95\x45\xe4\x8a\x48\x87\ \xe2\x6b\x11\xf9\x54\x02\x02\xe5\x40\x15\x7a\x0a\x34\x62\xbb\x73\ \xe5\x4c\x4b\xdc\x39\xc3\x61\x32\xf3\x46\xbe\xfb\xde\x8f\x15\x30\ \x86\x45\x7b\x5c\xb2\x80\x41\x36\x04\xea\x45\xfe\x42\xa8\x60\x24\ \x11\x62\xb3\x92\x6c\xe3\x2b\x0e\xd4\x7f\xe2\x58\x25\x93\x04\x92\ \x46\x0b\x04\x7f\x35\xba\x01\x5a\xdf\xf1\x1f\x49\x96\x79\xb1\x38\ \x96\x58\xbc\xf2\xf3\x6b\xf9\x53\xda\xb4\x21\xc1\xb4\x08\x1b\x13\ \x31\x9d\x86\xad\x1d\xb6\xf9\xd5\x5f\xf0\x8a\x34\x65\xf3\xad\x89\ \xbb\x2d\xc6\xfa\x6f\x5a\xc4\x02\xc1\xb9\x8e\x74\xf1\x9b\x35\x5b\ \xf0\x11\x95\xb2\xac\x2a\xa8\x1b\x50\x40\xb1\xa6\x80\xe1\x6e\x25\ \x72\x07\x22\x69\x2a\x8f\x1b\x05\x6d\x81\x25\x1f\x71\x6e\x86\x9d\ \x1b\x07\x25\x43\xad\xf9\x81\xbd\x6e\x32\x3f\x12\x66\x5f\x29\x20\ \x1e\xad\x43\x92\x5b\x1b\xc8\x75\xdc\x5e\xf7\xa6\x0a\x25\x50\x6b\ \x58\x08\x58\x54\x91\xe2\x47\x1b\x01\xa8\xf2\xdb\xf4\xac\x2f\xf1\ \x06\x0d\x61\xe2\x8f\x2c\x60\xe5\xf0\x96\xc3\x90\x26\xbd\x13\x34\ \x48\x49\x79\x05\x97\x53\x6d\x4d\xab\x23\x12\xed\x89\x9d\x8b\xaf\ \xf9\xc7\xd3\xd0\x72\x15\xcf\x9c\x99\x8d\x4b\xdb\x1f\x83\x61\xdc\ \xce\x64\x91\x09\x8e\x3d\x4d\xfa\xf2\x15\xa4\xcd\x9c\x97\xd8\xdf\ \x5a\xb4\xf8\x6f\xb1\xc6\xb0\x0b\xdb\x72\x7a\x9a\x44\x82\xcf\xee\ \x2b\x19\x9d\x1d\xd1\xc1\x8a\x01\x42\x4d\xa8\x1b\x30\xde\x9a\xea\ \x08\xb8\xb3\x29\xd8\xf2\xaa\x4e\x35\xae\x8e\x57\x88\xdd\x0f\xb8\ \x3b\x1a\x75\x62\xd3\x28\xbd\xec\x3e\x94\x0f\x72\xc0\x5b\x63\x72\ \x68\xe3\x92\x39\x63\x2c\xba\x11\xea\x1d\x2a\x06\xe4\xf5\xab\x01\ \x4c\x2c\x68\x1c\x53\xa4\xda\x96\xda\x8a\x11\x46\x94\xc2\xcc\x7a\ \x1a\x75\x2e\x41\x53\x41\xa8\xcd\x91\x1d\xf9\xaa\x93\x5d\x6e\xe6\ \xa0\xd8\x5c\x1d\x98\x10\x6b\x28\xb4\x92\x03\x02\x31\x99\x14\x05\ \x02\xd7\xd4\x50\xab\xc3\x2d\xc4\x66\x59\x0f\x50\x9a\x55\x7f\xb1\ \x44\x8f\x98\xb9\x71\xf8\x6d\x6a\x79\x26\xc0\x1d\x00\xd9\x46\xc2\ \xb3\xb7\xe9\x10\x8a\xdf\x04\x97\xf6\x5f\xe6\xa3\x28\xd6\xe0\xff\ \x00\xd4\xc0\x7e\x97\xa1\x35\x16\xbd\x25\x33\x06\x28\x56\x29\x23\ \x42\x45\x8d\x81\xfd\x6a\xae\x12\x29\x60\xc7\x20\x65\x07\x36\xc4\ \x1d\x3d\xea\xd2\xad\xcd\x80\xd4\xd1\xaf\x99\x83\x28\xb8\x00\xaa\ \x77\xea\x68\xcd\xed\x00\xee\x40\xae\xb6\x94\x41\x2c\x2e\xcc\xa0\ \x75\x2c\x29\x89\x16\x72\x08\x05\x97\xae\x81\x4f\xcc\xef\x56\x22\ \xe3\x17\x51\xa5\x31\x14\x0d\x6c\x3e\x62\xa3\x10\x71\x10\xa0\x65\ \x48\x72\xed\xa1\xcd\x4c\xb1\x08\xb9\xc8\x2f\x6f\x35\x86\xd5\xa0\ \xe6\x62\xdb\x9d\xb6\xed\x42\x75\xa2\xae\xb7\x5d\x6a\x01\x02\xf4\ \x6b\x14\x9f\x6b\xf1\x33\x47\x95\x54\xaa\x0d\xcd\xbe\x55\x20\x00\ \xa5\x98\x85\x51\xb9\x35\x5f\x11\x89\xcd\x74\x8b\xca\x9c\xcf\x33\ \x55\xc8\x85\x8a\x91\x41\xca\xa7\x3b\x0e\xde\x51\xfe\xfe\x7e\xf5\ \x57\x29\x26\xe7\x73\x46\x05\xa9\x98\x78\x9e\x56\xb2\x0d\x39\x9e\ \x95\x9f\x5a\xf0\xb4\x42\x4e\x55\x04\x93\x57\xf0\xb8\x05\x5b\x34\ \xda\xb7\xe0\x1f\xbd\x3b\x0f\x1c\x70\x0b\x26\xad\xcd\xbf\x8a\x66\ \x6a\xdc\x98\xcd\xa9\xb5\xed\xca\xdc\x85\x12\x8a\x1b\x82\x2c\x6a\ \x56\xca\xb6\x17\xa5\x91\x8b\x5e\xd7\xa6\xa1\x51\xcc\x77\xaa\xac\ \x75\x00\x6e\x68\xe3\x00\x6e\x6f\x5a\x95\x1b\x68\xd4\xe5\x8d\x40\ \xbe\xe7\xad\x14\x5e\x49\x6d\x7b\xe9\x42\xac\x2d\x63\x4c\x52\x00\ \xd3\x4a\x50\xc3\x50\xcb\x23\x27\xde\x04\xcc\xa1\x6c\xc0\x1d\x46\ \xb5\x05\xa8\x59\xc8\x46\x23\x73\xe5\x1e\xe7\x4a\x75\x1d\x04\xa9\ \x2a\x07\x50\x40\x26\xda\xd6\x7e\x2e\x5f\x12\x77\x6e\xa6\xac\x4a\ \xe2\x0c\x29\x50\x76\x19\x57\xbf\x7a\xce\x26\xe3\x53\xf2\xac\xf2\ \xaa\x44\x3b\x5f\x40\x68\x4b\x54\x33\x5a\x82\x23\x9e\x74\x51\xcd\ \x85\x63\x5a\x6a\x31\xb2\xaa\xdf\x40\xa0\x7e\x54\x8c\x63\x95\x30\ \xba\x9d\x43\xe5\xa2\x99\xc6\x63\x6d\xaf\x49\x91\x81\x40\xcc\x2e\ \x23\x70\xde\xc3\x9d\x36\x88\x37\x6f\x39\xe9\x7a\x16\x7a\x17\xbe\ \x72\x07\xd6\x96\x59\x7f\x18\x62\x3e\x14\x37\x35\x23\x01\x19\x4b\ \x31\xca\xa3\x73\x55\x71\x18\xdb\xdd\x61\x05\x57\xaf\x33\x4d\x6f\ \x31\x0d\x20\x04\x8d\x97\x92\xff\x00\x26\x97\x26\x1e\x29\x1f\x35\ \xca\x75\x00\x69\x59\xbb\xf0\xac\x41\x1c\x22\x04\x26\x35\x72\xeb\ \x98\x96\xde\x8e\x3c\x3e\x1a\xe7\xc8\xc2\xea\x6f\xe6\xed\x42\x18\ \x58\x28\x16\x0a\x2c\x28\xe2\xdc\xff\x00\xa4\xfe\x95\xa4\xcc\x8b\ \x0f\x85\x51\xe8\x67\xff\x00\x51\xb5\xa9\xb0\xc5\x04\x73\x2c\xb1\ \x87\x05\x76\x17\xb8\xa0\x5a\x25\x22\xf5\x89\x84\xe5\x34\x57\xa5\ \xa9\xa2\x06\xb5\x00\x85\x68\x60\x1d\x71\x18\x76\xc3\x48\x75\xb7\ \x94\xed\x59\xe0\x12\x36\x34\x50\xb3\x23\x86\x06\xc4\x1a\xd4\xaa\ \x8e\x09\x64\xc3\x63\x41\x63\x66\x43\x95\x81\x35\xab\x81\x99\xb1\ \x31\x34\x99\x57\x2d\x81\x16\xf8\x4f\x30\x7d\xa9\x18\xec\x32\x63\ \xb0\xeb\x22\x0b\x4b\x6b\x82\x39\xf5\x15\x9d\x85\x69\x30\xf2\x96\ \x89\xca\xb6\xc7\xca\x35\xf7\xeb\x4e\xde\x35\x9f\x5b\xea\x48\xd8\ \x91\xed\x51\x1a\x83\x8b\x92\x4f\xc2\x32\xfb\x9b\x6a\x6a\x84\x3c\ \x4e\x41\x61\x2a\x44\xfa\xea\x40\x20\xd5\xdc\x06\x25\x31\x39\xc0\ \x39\x5f\x31\x60\x87\x72\x39\xfb\xd6\xe5\x94\x61\xf4\x9c\x74\xb2\ \x20\x54\x5f\x2a\xb6\xed\xd7\xb5\x3a\xab\xf1\x17\x55\x54\x56\xb1\ \x0a\x0b\x9d\x7f\x2a\x6f\x82\x3b\x8a\x4c\x90\x61\x7c\x08\xf7\x90\ \x0b\x91\xd2\x93\xc2\x21\xb1\xfb\x4b\xec\xa7\xc8\x2d\xb9\xeb\x54\ \x73\x34\x85\x09\xdd\xc5\xfe\x64\xff\x00\x7a\xda\x08\x22\x81\x63\ \x03\xd1\x61\xf3\xac\xce\xee\x9f\x11\x32\x78\xb1\x95\x36\xd7\x6b\ \xf2\x35\x97\x2a\x14\x25\x4f\xa8\x1d\x6b\x58\x9a\xa3\xc5\x96\xcc\ \xae\x3e\x21\xad\x5c\xe7\xd5\x14\x5f\x6a\x51\xfd\xe9\x8f\x4b\xae\ \x6d\x40\xe1\xdc\xa6\x2d\x6e\x6f\xae\xa3\xad\x5f\x7d\x18\xdb\xad\ \x67\x46\xb9\xa5\x04\xef\x9a\xb4\x64\xd6\x43\xef\x54\xf1\x52\xdf\ \x51\x4b\x90\xe9\x6a\x63\x02\x74\x1a\xd2\x64\x68\xc1\xb7\x88\x3e\ \x40\x90\x3e\x75\x00\xd0\xbe\xd4\x4b\x94\x93\x96\x45\x6b\x6e\x06\ \xe2\x84\x82\xc4\xdb\xff\x00\x15\x34\x59\xde\x85\xaa\x25\x95\x82\ \xe6\x8a\x02\xe8\x37\x73\xcf\xda\xa6\xe1\x91\x5c\x02\x03\x0b\xd8\ \xd6\x51\x4e\x35\xa8\x6a\x63\x2d\xec\x6f\x50\x10\x66\x1c\xfa\xd1\ \x87\x40\x14\x9a\x2c\xb6\xa6\x65\xa9\xcb\x56\x2d\x28\x28\x2a\xca\ \x4b\x2e\x61\x6b\x8d\xc5\x14\x71\xc6\xb1\xf8\x65\xe5\x75\xe8\x4e\ \x5b\x7d\x29\x81\x68\x82\xd3\x80\x0a\xa9\x18\xb4\x51\x2a\x9e\x46\ \xd7\x35\x2c\x5e\xd7\x73\x6e\x57\x34\xc8\x94\x5c\xb1\x04\xf6\x1c\ \xea\x70\xe2\x62\xec\xf3\x46\xca\x76\x4f\x29\x21\x7e\x94\xe2\x05\ \xac\xc1\x9d\x48\xb7\xa1\x5b\xf5\x3f\xc5\x47\x3a\x6b\x5b\x35\x83\ \x02\x77\xb6\xb4\x06\x94\x1d\x7a\x57\x3b\xc7\x12\xe7\x96\xe3\xf0\ \x8e\xb5\x2e\xc9\x14\x5e\x23\xeb\xf8\x47\x53\x54\x26\x91\xe5\x90\ \xbb\x1b\x9f\xd2\xb3\x6e\x24\xe2\x71\x0d\x33\x6f\xec\xa3\x61\x4b\ \x42\xc3\x73\xf2\xa8\xb6\xba\x1a\x76\x16\x23\x2b\x1b\x90\xaa\x37\ \x35\x8e\xeb\x46\xe1\x30\xe6\x5f\x3b\x9c\xa8\x39\xf5\xf6\xab\xc0\ \x85\x5c\x88\x32\xa8\xe5\x4a\x04\x9b\x6b\x60\x05\x80\xa2\x26\xba\ \x48\xc8\xf3\x1a\xec\xc6\x97\x9a\xba\xe6\x95\x86\x86\xa9\xce\x00\ \xb9\x34\x9c\xe3\xdf\xb0\xa8\x05\xcb\x5e\xd6\xa8\x62\xc4\x6d\xb9\ \xe6\x69\x81\xc5\x56\xbd\x10\x6e\xf5\x2c\x59\x06\x8c\x3d\x56\x57\ \xa6\x23\x16\x36\x02\xe6\x9d\x06\xe6\xbd\x0e\x22\x41\x14\x51\xb9\ \x22\xe6\x41\x61\x7d\x4d\x26\x6c\x54\x10\x86\xbb\x66\x2b\xea\xb6\ \xcb\x54\xa7\x9d\xe7\x91\x66\x94\xda\xc2\xf1\xa7\xe1\xee\x7b\xd1\ \x79\x19\x0e\xc5\x4e\xd3\x49\xad\x85\xb4\x03\xa0\xa4\xbb\xd2\xf3\ \x80\x34\x34\xb7\x92\xb3\x79\x35\x83\x76\xbd\x1e\x00\xdf\x12\x0f\ \xe1\x05\xaa\xa3\xc9\xad\x85\xc9\xab\x1c\x3a\xe2\x39\x1e\xfb\xd9\ \x45\x12\xf6\xbe\x2d\x96\xd2\xe7\x41\xd4\xd0\x19\x54\x5e\xec\x08\ \x22\xc6\xd4\xb6\x60\x35\xa0\x2d\x7d\x6b\x5a\x12\x4b\x15\xca\x5d\ \xdd\x47\x27\x3a\x7f\x7a\x92\xee\x45\x89\xb0\xe8\x28\x0b\x50\x93\ \x59\xd3\x86\x73\x05\x4d\xa8\x81\x6b\x5e\xff\x00\x51\x48\xbb\x5c\ \x5b\xe7\x46\x49\x23\x4f\x9d\x5a\xb0\xe5\x62\x45\xf2\xe9\x4f\x84\ \xf9\x88\xec\x7f\x4a\xac\x5c\x11\xe5\x3b\xd3\x62\x62\xa6\xd6\xb9\ \xca\x7f\x4a\xd4\xa1\x48\x1a\x90\x75\xa5\x67\xca\x2e\x41\x3e\xd4\ \x68\xc1\xb5\x17\xac\x34\x7c\x66\x8c\x52\xe3\xa6\x2d\x69\x94\x8b\ \x74\xbf\x7a\x24\x37\x72\x37\xb5\x56\x92\x6b\x68\x01\x04\xef\x7a\ \x98\x4b\x13\xa5\xea\xd3\x8d\x9e\x17\x29\xb1\x88\x9e\xeb\xef\x43\ \xc4\x70\x8c\xef\xe3\xc0\xb7\xbf\xad\x40\xd8\xf5\xaa\x51\x4b\x6b\ \x16\x24\x30\x3d\x2b\x57\x0f\x88\x59\x62\xf1\x43\x00\xc3\xd4\x01\ \xfc\xeb\xa4\xb2\xcc\x65\x93\xa8\x36\x3a\x1a\x38\x5d\xd2\x55\x78\ \xdb\x2b\xae\xa1\xbb\xd6\xb4\xc9\x16\x25\x2d\x2a\xef\xa8\x60\x2c\ \x45\x65\xe3\x30\xef\x87\x97\x2b\x6a\x0e\xaa\xc3\x63\x45\x98\xa5\ \x6c\xc5\x8c\x8a\x58\x83\x94\x71\x26\xcc\x80\x73\xa8\xc4\x44\xad\ \x85\x99\xe6\x5b\xb9\x5c\xc7\x5d\xba\x0a\xcb\xe1\xb8\xaf\xb3\x4c\ \x49\x17\x56\x16\x60\x37\xab\xd8\xbc\x76\x1d\xb0\xae\x91\xbb\x33\ \x38\xb5\x8a\xda\xd5\xb9\xcb\x67\x63\x19\xc8\xe4\x48\xad\xa6\x84\ \x56\xec\xad\xf7\x82\xfc\xc6\x6a\xc0\x17\x2c\x15\x45\xc9\xda\xb7\ \x4a\x02\x40\x3a\x9c\xa2\xe4\xfb\x51\xc1\x72\x43\x30\x2e\x14\x1d\ \x46\xa6\xaa\xf1\x66\x45\x85\x03\xba\xa9\xb9\xde\x89\x8b\x16\x26\ \x2b\xaa\xde\xc2\x43\xcf\xda\xa3\x1e\x8a\x30\xcc\xc8\x35\x0d\xb9\ \xd4\x9b\xf5\xa6\xdd\x81\x9d\x2d\x94\xf9\x9d\x47\x4d\x6e\x4f\xb5\ \x2d\x8a\x9f\x2a\x2c\x8c\xd6\xbf\xa6\xc0\x7c\xcd\x1e\x6c\xb7\x2a\ \x02\xf5\xb0\xb5\x2d\xdd\x8a\x9b\xb1\xd7\xbd\x73\x6c\x58\x50\xfe\ \x38\x26\x38\xd9\x13\x52\x15\xae\x6a\xdb\x32\x9b\x95\x0e\xc7\xba\ \xe5\xfc\xcd\x27\x00\xb6\x89\x9f\xf1\x1b\x0f\x95\x35\xc3\x91\xa2\ \xb1\xaa\x0a\x53\x9b\xe8\xd6\x61\xf8\x7e\x1f\xef\x40\xee\xd6\xd1\ \x88\xf6\xa9\x9d\xa2\x89\x6f\x34\xca\xbd\x86\xa6\x93\x16\x27\x0b\ \x34\xa2\x24\x66\x0c\x76\x2c\x34\x35\x6a\x82\x36\x76\xb9\x16\x61\ \xb3\x8d\xc5\x57\xc4\x3c\xc9\x2a\xa6\x22\x4b\xc4\xc7\x52\x39\x8a\ \xb6\x14\xe6\x20\xe9\x61\xaf\x6a\xad\x28\x49\xe5\x12\xbd\xcc\x6b\ \xa4\x6b\xf8\xbb\xd1\x48\x89\x12\x21\x0b\x70\x84\x58\xb5\xad\xa7\ \x45\x1f\xbd\x73\x9b\x9b\xec\x06\xc3\xa0\xae\x66\xb9\xeb\xd0\x74\ \xae\xb5\xf7\xa9\x04\x02\x7b\x0a\x35\x4b\x6c\x2a\x54\x51\x9d\x2a\ \xc4\x10\x95\xd9\x45\x10\xa9\x03\xa5\x28\x39\x6a\x72\xf7\xa3\x60\ \x91\xae\x69\xa4\x58\xc7\x7d\xea\xac\xfc\x4a\x24\x16\x82\x3c\xc7\ \xf1\x3e\xdf\x4a\x91\xc1\x09\x16\x5b\x9e\x82\xa5\xad\x10\x1e\x34\ \x89\x1f\x42\xc6\xb3\xe5\xe2\x38\xa7\x5b\x66\x54\xff\x00\x42\xda\ \xa8\xcd\x21\x24\xdc\x96\x27\x72\x6b\x17\x9c\x87\x1b\x6f\x8a\xc2\ \xb9\x03\xc6\x67\x2a\xe2\xc7\x2e\xda\xf2\xa2\x4c\x92\xdd\xa2\x91\ \x58\x73\xed\x59\x31\x00\x11\x46\x9f\x11\x07\xbd\x80\x1f\xa9\xaa\ \xd2\xe3\x0e\x1a\x4c\x98\x7f\x33\x83\xe6\x6f\xda\x8f\xde\x7a\xb1\ \xa3\x8f\x90\x4b\x3f\x94\xdd\x54\x58\x55\x72\x47\x33\xf2\x14\x42\ \x48\xf1\x10\x09\xe1\x16\xbe\x8e\xbf\x84\xd0\x5f\xf2\xa3\xd2\xe2\ \xdd\xad\xf3\xad\x28\x50\x47\x02\x27\xc5\x6b\x9a\xcf\xc3\x29\x93\ \x10\x8b\xd5\xab\x49\xc8\x2e\x48\xeb\x5a\xe3\xd0\xa8\x2e\x41\xf4\ \xde\x84\xca\x2f\xb5\xaa\x76\xa5\x4c\x09\x7e\x80\xd3\xa0\xdc\xeb\ \xd6\xa6\xf7\xdf\xe9\x48\x45\xb3\x5c\x9d\xa8\xcb\x81\xdc\xf4\x15\ \x6a\x30\x9e\xa6\xbb\x38\xef\xf4\xa5\xa9\x20\x6b\xa9\xa3\x8c\x33\ \x9b\x28\xf7\xed\x4e\xa1\x06\x1d\x0f\xd2\x89\x6e\x4e\x83\xf3\xa5\ \x3c\xd8\x74\x62\xa2\x68\xe4\x90\x7c\x0a\x6a\x9e\x23\x19\x2b\xdd\ \x41\xc8\xbf\x84\x51\xfa\x4b\xf2\xcc\x90\xfa\x9d\x58\xfe\x10\x75\ \xaa\xf3\xe3\x65\x71\x95\x3e\xed\x7a\x2f\xf3\x54\x73\x1a\x90\xd5\ \x9b\x6d\x38\xb0\x35\x55\x46\x17\x04\x97\x3d\xc0\xe5\xf5\x35\xd9\ \xd9\x98\x93\x49\x6c\x42\xa6\x3c\xc5\x21\xb2\xb2\x00\x1a\xf7\xb5\ \x1b\x5c\x3e\x5d\x49\xed\xce\x8d\x29\x73\x40\x4f\x7a\x62\xe1\xe7\ \x71\x70\x84\x03\xcd\xb4\x14\x47\x0a\x8b\xeb\x72\xe4\xf2\x5d\x05\ \x59\x52\xbc\x28\xd3\x4a\x72\xe8\x0f\x33\xc8\x55\xdb\x85\x40\x89\ \xb2\x8a\x92\x48\x50\xa0\x05\x1d\x05\x2c\x9a\x7c\x0e\x26\xb8\x9a\ \x12\x7b\x9f\x6a\x16\x63\x7d\xf4\xa8\xa5\x9a\xa0\x35\x05\x48\x1a\ \xd1\xa8\xc5\xa6\x21\x03\x52\x69\x4b\xbd\x1a\xd2\x8c\x50\x73\x66\ \x5b\x0e\x97\xa6\x40\xcc\x24\xcc\xc2\x96\xa7\x4a\x34\xad\x46\x55\ \x71\xe8\xd0\xb9\x16\xf2\xb6\xc7\xb5\x0e\x18\x31\xd4\x5b\x5d\x35\ \xad\x06\x41\x34\x46\x33\xbd\xbc\xa6\xa8\x94\x78\xd8\xad\xac\x6f\ \xb1\xe5\x45\x98\x62\x52\x56\x0d\x6b\x0d\xfa\x53\x73\xbd\xaf\x6b\ \x52\x61\x42\xad\x99\x88\xf6\xa3\xbd\xee\x3a\xd1\x0a\x74\x61\x63\ \xa8\xa7\x42\x86\xde\x45\x36\xa5\xa2\xd8\xd8\x00\x5b\x73\x7d\x97\ \xdf\xf8\xa2\x96\x35\x93\x43\x34\x99\xb9\x36\xc0\x7c\xa9\x82\x9a\ \x8a\x19\x8e\x6d\x02\xe9\x4e\x85\xbc\x39\x03\x28\xb6\xba\xf7\xa4\ \xa3\x1b\x28\x60\x3c\x45\x16\x65\xfc\x43\xa8\xa2\x57\xcc\x6c\x10\ \x83\xdf\x95\x6a\x06\xb6\x1d\x95\x96\xe8\x6e\xbb\xdb\x9a\xf6\xa6\ \x90\xb2\x46\x63\x91\x43\x29\xfa\x8f\x6a\xcf\xe1\xb2\x78\x73\x65\ \x63\xe5\x7d\x0d\x68\x01\x63\xde\xba\xca\xcd\x66\x63\x30\x92\x40\ \xd9\x87\x99\x0e\xcc\x29\x1a\x1d\x6f\xad\x6e\x03\xa5\xb7\x07\x71\ \xd6\x90\xd8\x3c\x2b\xbe\x6c\xac\xa4\xf2\x07\x4a\x2f\x1f\xe2\x95\ \x5b\x83\x42\x5a\x63\x3b\xdc\xaa\x0d\x3b\x9a\xd1\x94\x93\x0c\x86\ \xe7\xd2\x4d\x72\x85\x54\x08\x83\x2a\x8d\x85\x73\x6b\x1b\x8e\xaa\ \x7f\x4a\xd4\x99\x06\xf6\x06\x8f\x2b\x80\x1a\xea\xb4\x38\xd7\x8a\ \x3c\x3b\xac\xa7\x56\x5b\x85\x1b\xd3\x66\x91\x62\x8d\xa6\x6d\x94\ \x5c\x77\x35\x8a\x5a\x4c\x46\x2f\x31\xbb\x16\x3a\xfb\x51\xca\xe2\ \x9d\xa9\xcd\xc4\xe3\x5d\x23\xc3\x82\x35\x3e\x76\xaa\xf2\x71\x59\ \xb4\xcb\x14\x40\xff\x00\xa6\xf5\x64\xe0\x30\xe9\x33\x09\x5d\x9c\ \x8b\xf9\x46\x80\x51\xa2\x41\x1b\x7d\xd4\x08\xa7\xa9\x17\x35\xc3\ \x39\x37\xd1\x7f\x6d\xc5\xa4\x68\x04\xa5\x5b\x28\x2d\x6e\xa6\x91\ \x36\x27\x11\x26\x8f\x33\x90\x4d\xce\xb5\xbc\xd6\x51\x91\x51\x00\ \xb0\xd3\x28\xa4\xcb\x0e\x1d\xc1\xcd\x87\x8c\x9e\xa0\x58\xd6\xaf\ \x1b\xfd\x5a\xf3\x6e\xec\x58\xe9\xa9\xe7\x51\x77\x8c\x82\xa7\x5b\ \xd6\xe8\xc3\xe1\x51\x48\x18\x54\xee\x49\xbd\x56\xc5\x70\xe8\xe5\ \xf3\xe1\xce\x56\xff\x00\xdb\x3c\xfd\xab\x17\x85\x3a\x9c\x3e\x39\ \x71\x11\xa4\x78\x80\x10\x1d\x59\xaf\xea\x02\xdb\xfd\x45\x58\x90\ \x66\x5b\xa1\x42\x08\xf2\xd9\x86\xd5\x91\x30\x29\x9e\x33\xff\x00\ \x2d\x55\x2d\xdc\x9b\x9a\x47\x85\x26\x5c\xd9\x18\x0e\xb6\xab\xf5\ \x62\xc6\xc1\x78\x21\x07\xc6\x9d\x10\xf4\x1a\x9a\x4b\xf1\x28\x14\ \xda\x28\x19\xf5\xdd\xcd\xbf\x4a\xcc\xb5\x12\xa8\xe9\x47\xee\xfc\ \x58\xd2\x4e\x27\x11\xd2\x4c\x3e\x5e\x99\x5b\xf9\xa7\xae\x23\x06\ \xc3\x37\xda\x32\xf6\x23\x5a\xce\x87\x05\x3c\xab\x9a\x38\x0b\x03\ \xce\xd4\xd4\xe1\x78\x92\xd6\x78\x84\x63\xab\x5a\xb5\x2f\x25\xd2\ \xeb\x63\x30\x6a\x09\x12\xbb\x9e\x81\x6d\xf9\xd2\xbe\xdd\x88\x98\ \xe4\xc2\x41\x97\x4d\xed\x73\xf5\xae\xc2\xf0\xec\x34\x63\x34\x8e\ \xd2\x37\x41\xa2\x8a\xb6\x32\x85\xca\x8a\x15\x7a\x0a\xd7\x63\xa5\ \x13\x82\x9a\x43\x9f\x11\x38\x56\x3b\x86\xb9\x34\x63\x87\x41\x94\ \x03\x33\x5c\x6e\x72\xe8\x7d\xaa\xdd\x8d\x71\x01\x57\x33\xb0\x51\ \xd4\xd5\x91\x6a\xaf\xfe\x99\x87\x2c\x2d\x3c\x84\x7e\x1c\xbb\xfd\ \x28\xfc\x3e\x1d\x85\xda\x10\xcd\xd0\x9c\xc7\xfb\x52\xf1\x58\x92\ \xde\x58\xae\xab\xd7\x99\xaa\xc0\x58\x97\x63\xa2\xea\x4d\x66\xd9\ \x3c\x38\x6c\xd3\x34\xae\x5b\x2e\x51\x1a\x8b\x5b\x99\x27\xfb\x52\ \x25\xc3\xe1\xf1\x6b\x91\xd3\x24\x9f\x0b\x8d\x01\xf7\x15\xcc\xc5\ \x57\x33\x7a\xa4\x39\x98\x74\x1c\x85\x75\xae\x34\xac\xd2\xcd\xc1\ \xcb\x27\x0f\xc7\x94\x9c\x30\x53\xa3\xaf\x51\x5a\x33\x20\x52\x0a\ \x9c\xca\xc2\xe0\xf5\x15\x5f\x8f\xa6\x7c\x3c\x13\x5b\xcd\xaa\x13\ \x6d\xfa\x55\x8e\x03\x1c\xb3\xe1\x4c\x33\x02\xa1\x35\x46\x6d\xed\ \xcc\x51\x3d\xc5\xff\x00\x4e\xe1\x91\xfd\xe9\x97\x92\x0f\xce\xad\ \x11\x52\x02\xaa\x04\x41\x65\x1f\x9d\x41\xda\xba\x66\x46\x50\x45\ \x0b\x0b\xd4\x9a\x83\x52\x09\x5d\x2c\x49\xb5\x47\x6d\xbe\x54\x44\ \x8a\x8b\x83\x52\x71\xd0\x0d\x0b\x13\xb2\x8e\x75\x57\x17\x8d\x77\ \x06\x3d\x90\x1f\x42\xe8\x3e\x7a\xdc\xd3\xf1\x44\xae\x14\xb8\x36\ \x28\x41\x07\x6f\x7a\xcc\x7b\xe6\x37\xde\xf5\x9e\x57\x0c\x11\x48\ \xe5\xb6\x48\xd2\x39\x14\xdd\x4a\x8b\x03\xd8\xd3\x24\x1e\x21\x32\ \x2a\x90\x6f\xe7\x5e\x6a\x69\x17\x14\x78\x9c\x40\xc3\xe1\x52\x6b\ \xa8\x99\x89\x11\xb1\x1b\x0e\xf5\x82\x91\x7b\x5e\xc6\xdd\x6a\xcc\ \x18\x57\x70\x19\xce\x45\x3c\xce\xe6\xa8\x60\x31\xbc\x52\x66\x76\ \x9b\x13\x85\xc8\x8b\xba\x1e\x7c\xaf\x57\xb0\xdc\x4e\x53\x88\x48\ \x31\x30\xc4\xcb\x26\x89\x2a\x8b\x0b\xf7\xa7\x8d\x95\x76\xb4\x70\ \xf8\x36\xb6\x78\x33\x30\x16\xce\xc6\xe7\xe9\x4c\x8d\xb2\x05\x88\ \x15\x03\x64\x60\xb6\xbf\x63\xde\x80\x99\xd4\x5a\x48\x23\x24\x6e\ \x11\xac\xdf\x4a\x15\x9b\x0f\x22\xb2\x34\x99\x3a\xac\x9a\x11\x5d\ \x3a\x64\xc6\x24\x9d\x77\xef\x40\xc6\xe7\xd8\xeb\x4a\x93\x17\x1a\ \x49\x91\x88\x91\x46\xce\xa7\x5f\x9d\x13\x9d\x99\x4e\x65\x61\x71\ \xde\x8d\x38\x96\x6a\x02\xd5\x04\xdf\x9d\xbb\x50\xb9\xb7\x3b\x50\ \x5c\xcd\x50\x6a\x2e\x2f\xa0\xbf\xb5\x46\x60\x76\xbe\xb4\x24\xeb\ \x7a\x82\x58\x5b\x4b\x51\xc8\x22\x8d\x7e\xf1\x82\x9e\x97\xb9\xa8\ \xc3\x78\x53\x12\x15\xce\x6e\x4a\x74\xbd\x48\x71\x5b\x2e\x9b\xf3\ \xa3\x03\x5a\x0f\x0b\x5d\xed\xef\x46\xa2\xca\x05\xef\x4a\x1a\xd3\ \x12\x82\x31\x4c\x02\xd5\xa8\xc8\xd2\x98\xf1\xac\xcb\x95\xf4\x3c\ \x9b\xa5\x29\x69\xe9\xbd\x69\x33\xe6\x8d\xe2\x72\x8e\x35\x1f\x9d\ \x08\xad\x39\x23\x59\x93\x23\xef\xf0\xb7\x4a\xce\x91\x19\x24\x28\ \xc0\x82\x0d\x62\xcc\x32\xe9\xae\xb9\x4f\x87\xbd\x8e\xa4\x9d\xcf\ \x33\x5c\x05\x1c\xdf\xe7\x37\xb9\xb5\x0d\xe9\x02\x53\x70\x15\xaf\ \x61\xb7\x51\xdc\x53\x16\xec\x72\x9f\x58\x17\xb0\xd9\x87\x51\xfc\ \x52\x81\xa9\x92\xed\x87\x70\x2f\x75\x19\x92\xdb\x83\x4c\x47\x29\ \x37\x16\xde\xb5\x0c\xf1\x05\x52\xee\x01\x20\x68\x35\xaf\x3f\x06\ \x2b\x17\x31\x11\xa1\x05\x8f\xc5\x6d\x7e\xb5\xbd\x87\x89\x61\x85\ \x50\x85\x66\xb0\xcc\x6d\x7a\xd7\x1b\xa2\x9a\x45\x8e\x86\xa4\x5c\ \xd2\xd4\xaa\x7d\xd9\xd1\x6f\xe4\x27\x6f\x6a\x60\x16\xde\xb6\x04\ \x2a\x31\x04\x58\x44\x0d\x8b\xee\x7a\x0a\x0c\x54\xf1\xe1\x94\x67\ \xbb\x3b\x0b\xac\x60\x6a\x47\x5e\xd5\x9d\x36\x26\x69\x59\x89\x01\ \x2e\x2c\x15\x4d\xc9\xf7\xaa\xf2\x90\x48\x77\x10\x99\xb1\x58\x85\ \x82\x1b\x95\x1a\x0e\xe6\x9b\x0c\x71\xe1\x90\xc6\x08\xb9\x1e\x66\ \xeb\x4b\xc1\xc0\x62\x87\x3b\x2b\x09\x1f\x6e\xc2\x98\xca\xbb\x9d\ \x7d\xe8\xff\x00\xa5\x4b\x8a\x80\x31\x02\x40\x2c\x24\x17\xf9\xf3\ \xaa\x97\xd6\xb4\x31\xe9\x9f\x0d\xa0\xd6\x33\x7f\x95\x67\x1d\xeb\ \x1c\xbd\x31\xa6\x5b\x32\x2b\x8f\x89\x45\x2c\x92\xca\x6d\xa5\xff\ \x00\x3a\x5e\x0d\xf3\x41\x97\x9a\x7e\x94\x43\xa0\x36\xa8\x16\x49\ \x36\xb8\xd3\xad\x14\x7a\x4a\xa7\xa1\xa2\x2b\xe4\xca\x35\xcd\xce\ \xb8\x47\x76\x00\x54\x75\x8f\xc4\x6e\xb8\xa6\x70\x80\x17\x21\x9b\ \xb9\x06\xa8\xe2\x23\x9d\x65\xf1\xf0\xec\xc7\x5b\x94\xbd\xed\xf2\ \xad\x4e\x2d\x22\xc9\x8a\x7c\xa3\xc9\x1a\xe4\xbd\xb7\x6e\x75\x44\ \xe6\x04\x10\x6c\x6f\xbd\x72\xe5\x3b\x6e\x22\x71\x63\x72\x02\x92\ \xb7\x20\x72\x34\xce\x16\x10\xe3\x61\x32\x80\xc9\x9b\x51\x4b\x75\ \xcf\xb9\xf9\xd0\x46\x5a\x39\x01\x53\xa8\x34\x79\x53\xd1\x4a\x49\ \x94\x8e\x9a\x1d\x2d\x51\x63\x41\x81\xc4\x2e\x2e\x30\x09\x02\x65\ \x1a\x8b\x7a\xbb\xd3\xc2\x9b\x5f\x61\xde\xbb\x30\x55\xad\xca\x89\ \x41\x27\x4a\x87\x96\x04\xde\x4c\xc7\xa2\x8b\xd5\x79\xb1\x2e\xc3\ \x2c\x63\x20\xeb\xce\x8d\x5d\xac\xcb\x24\x71\x03\x9d\x81\x6f\xc2\ \x37\xaa\x38\xdc\x43\x34\x2d\x29\x4c\xd9\x48\x01\x6f\xa0\x14\x36\ \x24\xde\x89\x55\x4a\x95\x7f\x4b\x0b\x1a\x2d\xb4\xe4\x84\x47\x39\ \x91\x6e\x30\x8f\x6e\x45\x4d\xe9\x18\x99\x64\x98\x18\xa3\x85\x94\ \x73\x16\xb9\xad\x08\xd4\xa4\x69\x11\x36\x2a\x2c\xa4\x1d\x1b\xfb\ \xd4\xb1\x6b\xdc\x92\x1b\x6b\xf3\xac\xe6\xc3\xaa\xb6\x26\x24\x2e\ \x2c\xc5\x7c\xc2\xd5\xd1\xa3\x19\x02\xa0\x27\x31\xb5\xa9\xae\x09\ \x37\x26\x9f\x80\x0a\xaa\x64\xb7\x9a\xf6\x14\xc8\x8a\xe2\x31\x24\ \x18\x35\xcd\xe6\x7f\x13\x4b\x8d\x2f\x6a\xa9\x81\x91\xd7\x88\x46\ \xd9\x89\x25\xad\xa9\xab\xdc\x6e\xc7\x07\x10\x36\xf5\x1a\xad\xc1\ \xe2\x0f\x8a\xf1\x18\x79\x62\x19\xbe\x7c\xa8\xbf\xec\xa7\x8b\xd2\ \x8c\xb2\x30\x1b\x03\x42\x68\x98\xdd\x89\x3c\xe8\x6b\xa0\x41\xa1\ \x22\x8c\xd4\x11\x59\x40\xcb\xda\xba\xdd\xa8\xab\x8e\xd5\x24\x04\ \x8e\x55\xf0\xa4\x24\x03\xcc\x72\xd2\xb3\x71\x11\x15\x95\xa3\x60\ \x04\xa9\xb8\xe4\xc3\xa8\xad\x2a\xab\xc4\xcf\xdf\xea\xc4\x1d\x19\ \x1b\xa7\x6f\x6a\xcf\x29\xd1\x8c\xf2\x29\x7c\x62\x31\x2f\x08\x12\ \x58\xe6\x81\xec\x35\xe4\x6a\xd4\xaa\xa4\x16\x5d\x34\xb9\x43\xb8\ \xfe\x47\x71\x4a\xc5\xdb\xff\x00\x47\xc4\xdc\x1b\x1c\xb6\xb8\xef\ \x5c\xec\xe8\xb3\xb8\x3b\x5e\x39\xe3\xfe\x90\xdf\x4a\xb2\x8c\xa5\ \x32\x48\x09\x5b\xdc\x58\xd8\x83\xd4\x56\x7e\x12\x53\x06\x21\x64\ \x1b\x0d\xfb\x8a\xd0\x9d\x02\xbf\x94\xf9\x48\xba\x9e\xd5\x89\x7a\ \x6a\xb4\xe3\xc7\x4c\x70\xba\xb2\xbb\x47\x6b\x31\x1e\xa5\xeb\xd8\ \xd5\x59\x1c\xc9\x31\x77\xe6\x6e\x6d\x4e\xe0\x20\x3a\x4e\x8e\x33\ \x28\x50\x6d\x56\xc4\x38\x61\xa8\x83\x5e\xec\x48\xae\xb3\x6c\xd6\ \x4a\x9a\x2c\x33\xe1\xcb\x40\x09\x60\x34\x02\xe4\xfc\xc5\x27\x0d\ \x8a\x68\x87\x87\x22\x66\x5e\x9b\x11\x57\x73\x90\x00\x5f\x28\x1b\ \x05\xd0\x0a\x09\x95\x66\x89\xfc\x45\x04\xaa\x92\x18\x0d\x69\xb3\ \xf8\x80\xb8\x8c\x33\x9d\x59\x90\xf5\x23\xf8\xae\x02\x37\x92\xd1\ \xb7\x88\x6d\x7d\x36\x1e\xe4\xd5\x48\xb0\xd3\x49\x1e\x74\x8c\x95\ \xeb\x57\x30\x51\x34\x38\x76\x0e\xb6\x77\x23\x9e\xb6\xa2\x5b\x7d\ \x54\x72\x00\xab\x72\x83\x2f\x36\x46\xbd\xbd\xc5\xab\x92\x10\x40\ \x28\x33\x03\xb1\x06\xf7\xa3\x8c\x95\x37\x06\xb9\xa2\x85\xbe\x12\ \x87\xf1\x21\xb5\x6f\x02\xb6\x32\x0f\x1b\x1a\xa9\x18\xf3\x10\x33\ \xdb\x61\x56\x06\x1a\x0b\x04\x55\x0a\x57\xd3\x27\x3b\xd3\x22\x48\ \xe2\x8f\x24\x40\xd8\xfa\x98\xee\xd4\x56\xaa\x45\xa8\x61\x71\x98\ \x80\x1a\xf9\x5c\x03\xb1\xa5\xa6\x6c\xf6\xb0\xbf\x7a\xb1\xb8\xcc\ \x6e\x54\x8b\x35\xb5\xb5\xb6\x3f\x4b\x83\x5c\x22\xb9\x00\x26\x6b\ \xec\x46\xb7\xfa\x53\x80\x2a\xa7\xf1\x0f\xa5\x15\xb5\xb5\x19\x8e\ \x45\x5b\xb2\xb0\x1f\xd4\xbf\xbd\x42\x03\x7b\x90\x05\xb6\xad\x27\ \x20\xa6\xa0\xa8\x51\x46\x2a\x16\x8d\x57\x4a\x4f\x10\x8e\xea\xb3\ \x00\x09\x0a\x46\xbc\xcf\x2f\xd6\x9e\x9b\x0a\xec\x55\x86\x02\x52\ \x76\x16\xf9\x6b\x50\x8c\xcc\x44\x8d\x98\xe4\x5b\xd8\x74\xd8\x54\ \x07\xba\x86\x1c\xe8\x1c\xb2\x5c\xdb\x51\xb8\x35\x03\x45\x03\xe7\ \x58\xd6\xf0\xd5\x6a\x34\x62\x0d\xc1\xd6\x90\x0d\x1a\xb6\xb5\x6a\ \xc5\xcc\x10\xf1\x27\x55\xb0\x00\x9b\xb5\x85\x69\x06\xb9\xbd\x53\ \xc0\xc7\xe1\x45\x99\xbd\x6e\x3e\x82\xac\x29\xae\x93\xa8\xcd\x3d\ \x4e\x96\x3a\x83\xc8\xd2\xf1\x52\xb6\x16\x0c\xf1\xc8\x00\x26\xca\ \xac\x2f\x63\x52\xa6\xa9\xf1\x32\xd3\x71\x05\x81\x6e\x42\xd9\x40\ \xef\xce\xb5\x6f\x41\xd8\x3c\x3c\x98\x96\x32\x3b\xb6\x52\x7c\xce\ \xdb\xb1\xab\xf0\xc7\x0c\x2b\x68\xd0\x7f\xa8\xee\x6b\x88\x54\x02\ \x34\x16\x55\xd0\x5a\xa2\xe6\xa9\x31\x22\x46\xcb\xa1\xbd\xb9\x1a\ \x02\x74\xa9\x90\xe9\x40\x08\xd8\xde\xfb\x55\x52\x01\xf3\x6a\x2e\ \x0e\xe2\xb3\x71\x91\x18\xa6\x2a\x76\xdc\x1e\xa2\xb4\x89\xd7\x63\ \x49\xc5\xc4\x26\x87\x2f\xc6\xba\xaf\x7e\xd5\x9b\x34\xc6\x7c\x32\ \x98\xa5\x0e\x35\x1b\x11\xd6\xae\xdd\x4a\x86\x53\x75\x3b\x56\x71\ \xd0\xdb\xa5\x1e\x12\x73\x11\xca\xd7\x28\x77\x1d\x2b\x12\x9b\x17\ \xc6\xa2\xa5\xe5\xf0\x20\x79\x88\xcd\x94\x69\xf3\xa1\x5b\x10\x1d\ \x4d\xd4\xd2\xe7\x99\xfc\x76\xc2\xb2\xab\x2b\xec\x6d\xaf\x6a\xd0\ \x8c\xb9\x41\x22\xda\x79\x18\x83\xae\xf7\xd4\x1f\xce\x94\xa3\x3b\ \x65\x22\xc0\x9d\x7b\x55\x8c\x4c\x18\x88\x03\x09\xf5\x77\x6c\xd7\ \x1b\x6d\xa5\x20\xdc\x6a\x2d\x5c\xab\x6d\x75\xe1\xd8\x45\xb4\x6d\ \x03\x35\xc7\xac\x36\xf5\x9d\xc5\xf0\x70\xe0\x98\x66\x72\x43\x6a\ \xa2\xda\xfc\xe8\xb0\xf8\x9c\x42\x59\x44\xec\x14\x6b\x60\x6b\x37\ \x13\x3c\xb3\xc9\x9a\x59\x19\xcd\xf9\xd3\xcb\x94\xcf\x04\x94\xc8\ \x31\xd2\xc2\xe1\xa1\x0a\xb6\xfe\x9b\x9a\xd4\x79\x8e\x22\x24\x9e\ \xe4\x86\x1a\x8b\xec\x79\xd6\x22\x29\x76\x0a\xa2\xe4\xec\x05\x6d\ \x61\x22\x68\x70\x29\x13\xfa\xae\x49\x1d\x2f\xca\x8e\x16\xd3\x62\ \x10\x86\x17\x15\x36\x14\x4a\x8a\xa6\xe0\x57\x11\x5b\x64\x26\xf5\ \xd5\x35\xd6\xa9\x39\x4e\x99\x48\x0c\xa7\x91\x1b\xd1\x7c\x36\xb9\ \x60\x36\x3f\x10\xf7\xeb\xef\x43\x6a\xed\x8d\x48\x2e\xba\x66\x04\ \x10\x76\x20\xdc\x1a\xb1\x82\x17\xc3\x9e\xaa\xd4\xab\x82\x6e\x49\ \x04\xee\x47\x3f\x71\xb1\xa6\xe0\x0d\xa7\x31\xb6\x50\x59\x74\xe8\ \xdd\xc5\x53\xd5\x7c\x27\x8e\x1f\xf8\x58\x56\xda\x96\x26\xbb\x85\ \x47\x93\x04\xd2\x5f\x59\x1a\xdf\x4a\x57\x18\x94\x4d\x89\x58\xa3\ \x20\xaa\x0b\x0f\x7a\xbc\x23\xf0\xa1\x48\x41\x07\x22\xd8\xfb\xd5\ \x3f\xdb\x57\xc2\xce\xf5\x07\x6a\x93\x73\x7d\x28\x4e\xf4\xd4\xeb\ \x9a\xed\xeb\xaa\x39\x50\x9c\x4d\x09\x35\x26\x84\xd4\x90\x5b\xa5\ \x56\xe2\xba\xf8\x6d\xd5\x48\xab\x06\x91\xc5\x01\xf0\x22\x16\x3a\ \xdc\xd6\x6f\x85\x55\x1b\x41\x1b\x6c\x0d\xc1\xe6\x3b\x8a\x2c\x52\ \x99\x70\x18\x88\x55\x7e\xf1\x6d\x70\x36\x24\x6b\xa7\xb8\xa4\xb0\ \x24\xe5\xda\xd4\xd4\x6b\x62\x1a\x3b\xe5\x91\x95\x5d\x0f\xca\xd6\ \xac\x42\xc0\x65\x60\xcd\x71\x6d\x76\x3b\xd6\x86\x05\xbc\x5c\x0d\ \x89\xf3\x42\x6d\xff\x00\x49\xab\xf3\x47\x06\x20\x9f\xb4\xc1\x67\ \xe6\xe9\xa1\xfa\x50\x61\xb8\x77\x85\x24\x86\x09\x44\xa8\xe8\x46\ \x5d\x9a\xfc\xb4\xac\xce\x16\x53\xa7\x70\x01\xac\xe7\x96\x4f\xde\ \xae\x1d\xa9\x5c\x26\x16\x8b\x0b\x23\x3a\x95\x32\x10\xa0\x11\x6d\ \xa9\xc4\x76\xae\xb3\xc0\x00\x09\x36\x02\xf4\x38\xb7\x10\xe1\xdf\ \x31\xb3\xb8\xb0\x1c\xed\x5d\x88\x38\x87\xc5\x88\x22\x93\x22\xb2\ \x06\xf6\x16\xa1\x9f\x06\x83\x0e\xef\x79\x0b\x28\xbe\x76\xd8\xf6\ \xab\xff\x00\x01\x18\x2c\x48\x48\xc4\x72\x29\x28\x35\x04\x6e\x2a\ \xca\xcb\x86\x94\x12\x98\x80\x00\x3f\x10\xb5\xeb\x39\x04\x92\x9f\ \x06\x25\x2c\x58\xed\x6a\xb6\x9c\x39\x96\xe0\xcc\x99\xbf\x09\x16\ \xfc\xeb\x32\xdc\x2b\x48\x84\x0c\xc0\x82\xa7\x40\x41\xbd\xe8\xd4\ \x69\x4b\xc2\x44\xd0\x21\x8d\xca\x92\xc7\x37\x94\xdf\x91\xa6\xd6\ \xe0\xa9\x14\x4c\x52\x38\xcc\xb2\xb6\x54\x1c\xed\x72\x7d\xaa\x10\ \x28\x53\x24\x87\x2a\x2f\xa8\xfe\xd5\x99\x8b\x9e\x4c\x5e\x23\x41\ \xa0\x36\x45\x1c\x85\x56\xe0\x5b\x6e\x26\x43\xe5\xc2\xc0\x2f\xc9\ \x9b\xcc\x4f\xca\x8a\x57\xc7\xaa\x91\x24\xb9\x21\x91\x6f\x90\xb8\ \x56\x53\xda\x9f\x84\xc3\x47\x83\x50\x02\x86\x9b\x76\x72\x3d\x3d\ \x85\x76\x35\x4c\xd8\x62\xbe\xa6\x53\x98\x5c\xdf\xde\x9c\xb9\xda\ \x26\x0c\x37\x14\x8c\xf8\x89\x88\x1a\x8f\x4f\x8b\x76\xb7\xb5\x1a\ \x63\xe6\x89\xc4\x78\xc8\x73\x10\x6c\x58\xe8\xc3\xf9\xa6\xc3\x89\ \x56\x44\x56\x8e\x42\xcb\x60\xc5\x75\xfc\xaa\xc3\x2c\x73\xc6\x52\ \x4b\x4a\x9f\x46\x5a\x64\xfe\x55\xbf\xd4\xc2\x63\x9d\x73\x41\x20\ \x71\xd0\xe8\x47\xca\xa4\x82\xa6\xc4\x5b\xde\xa9\x62\x78\x6c\x89\ \xf7\x98\x66\x2e\xa0\x7b\x30\xae\x83\x88\x4b\x1d\x93\x10\x9e\x22\ \x8e\xba\x30\xf9\xd5\xbf\xd1\x9f\xc5\xe5\x26\x97\xc4\xcf\xfc\x1a\ \xc2\x0f\x9a\x76\x20\xff\x00\xa7\x99\xa6\x46\xd1\xcd\x1e\x78\x5b\ \x30\x03\x51\xcd\x6a\xb7\x13\x90\x7d\xa5\x23\x3b\x04\x28\x18\xf2\ \x6b\xde\xd4\xdf\x14\xf5\x51\x81\x92\x14\x63\x60\x59\x75\xb7\x22\ \x34\xa5\xc4\xc4\xa5\xb2\x93\x97\x4d\x28\xf1\x09\x96\x49\x63\x24\ \x8b\x36\x70\x0e\xe0\x1f\xef\x53\x83\x86\x59\x17\xd2\x04\x77\xf5\ \x1a\xe7\xf5\xa4\x00\x4f\x23\xfa\xd5\xdc\x16\x16\xd6\x92\x51\x71\ \xb8\x5e\xbe\xf4\xdc\x2c\x70\x44\x40\x52\xa2\x53\x7b\x16\x3a\xff\ \x00\x6a\x64\x88\x54\x16\x98\x65\x03\x76\x23\x5a\xdc\xe2\x2d\x33\ \x52\x46\xd7\x3b\x0a\xec\xc0\x10\x0d\x66\xcf\x36\x69\xfc\x41\x7c\ \xab\x6c\xa7\xb7\x7a\xd1\x23\xc4\x54\x90\x69\x9d\x73\x53\x28\xc3\ \x90\xf4\x35\x4e\x56\xf0\xf8\xe1\x3c\x84\xb5\x66\x25\xd4\x29\x27\ \x53\xb5\x66\x62\x8e\x6e\x2e\xcd\x60\x4f\x8a\x36\xe7\xad\x36\xf4\ \xa3\x66\x4d\x24\x60\x39\x1a\x8b\xe9\x43\x35\x8c\xcf\xa0\xdc\xf2\ \xa8\x0c\x47\x7f\x9d\x6b\x42\x0b\x5c\x91\x44\xbc\xe8\x52\xc4\x74\ \x23\xad\x70\x37\xed\x6d\xe8\x48\x7e\x7d\x28\x2f\xa5\xea\x64\x36\ \x5d\x4d\x46\xf4\x54\xa9\xc4\x60\xce\xa6\x64\x1a\x8f\x58\x1f\xad\ \x51\xb0\xad\x70\x1b\x3d\xd4\x12\x7b\x55\x7c\x56\x0f\x31\xbc\x6b\ \x91\xb9\xa9\xe7\xed\x59\xb3\xeb\x52\xaa\x61\xe5\x78\x49\xca\x6e\ \x0e\xe0\xec\x6a\xdc\x13\x47\x26\x24\x16\x21\x18\xc7\xe5\xbe\xdb\ \xf5\xaa\x45\x48\x36\x3b\xd4\xb0\x6f\x23\x80\x4e\x4b\x86\x03\x7b\ \x1a\x25\xa6\xb4\x58\x39\x1e\x19\x4c\xea\x77\x04\x5c\x52\xfe\xc3\ \x85\x63\x7f\xb2\xb0\x3c\xf2\x35\x87\xd2\xa8\xea\x23\x0f\x1c\xbe\ \x5e\xa0\xfe\xa2\xa0\x4f\x23\xe8\x5d\xaf\xef\x57\xea\x7d\x18\x6e\ \x22\x0c\x34\x2e\x55\x73\x3d\xc5\x8f\x9b\x6a\x54\x71\xe1\xd1\xc1\ \x8f\x0a\xa0\xff\x00\x56\xb5\xc0\x51\xa8\xd2\x82\x2c\xc4\x9d\x95\ \x40\xfc\x20\x54\x85\x5b\xfa\x45\x08\xa9\xbd\x20\x56\xf7\xfa\xd4\ \x1f\x7a\x8b\xd7\x6a\x6a\x4e\x3b\xee\x3e\x95\xd6\x3d\x45\x4d\xab\ \xaa\x48\x1b\xdb\x63\x5c\x74\xa9\xde\xba\xc7\xb1\xa9\x20\x94\x48\ \x8c\xb2\xb6\x54\x1c\xfa\xd5\x29\xf8\x89\x91\xbc\x28\x07\x86\x3e\ \x16\x27\x5b\xf7\xae\xe3\xce\xde\x2c\x71\x0d\x15\x50\x1b\x77\x34\ \xee\x19\x86\x8e\x2c\x32\xe2\x24\x50\x59\x86\x60\x4f\xc0\xbd\x7d\ \xeb\x3b\x6d\xc8\x73\xad\x3b\x04\xb0\x9c\x42\xe2\x66\x5f\x0f\x38\ \xcc\xaa\xdb\x5e\xad\xcb\x7c\xc6\xfb\xd2\xf0\x91\xc6\xf0\x09\x64\ \x19\x9f\x31\x39\x49\xd1\x6f\xa8\xa6\x4a\xda\x92\x6b\x70\x7d\x2f\ \xe1\x14\x24\x54\xee\x2f\xb0\xae\x53\x7d\x41\x20\x76\xa5\x04\x8e\ \xd4\x07\xc4\xbe\xc2\xdd\xa8\xc9\x39\xf2\xef\x50\xc6\xc4\x0e\xb4\ \x20\x9a\x13\x46\x68\x1b\x40\x4f\x4a\x10\x4e\xa6\xf5\x53\x8a\x13\ \x26\x24\x22\x7c\x20\x00\x07\x33\x57\xa1\x1e\x23\x6a\x3c\xab\xa9\ \x17\xde\xa8\x46\xc1\xb1\x99\xdb\x7b\x97\xfa\x6b\x59\xe4\xd4\x2a\ \x00\x7c\x67\x48\x99\x57\xc2\xb6\x79\x48\xbe\xbd\x05\x0e\x23\x06\ \x26\x97\xc4\x8f\x16\xc5\xfa\xca\x2c\x4f\xcc\x69\x4f\x2b\xe1\x40\ \xa9\x6b\x34\x87\xc4\x93\xdc\xf2\xa8\x55\xbe\xf5\x9c\xeb\xb4\x98\ \xe3\x9f\xc1\x3f\x68\x42\x19\x3d\x2e\x35\x0c\x2a\xc7\x0b\x4f\xf3\ \x24\x3f\x08\xb0\x3d\xea\xae\xe0\xe5\x1b\x75\x35\xa3\xc3\x93\xfe\ \x04\x58\x80\x59\x89\x60\xcc\x05\xad\xa5\x6a\x0a\x8c\x6e\x21\x20\ \x11\x19\x95\x9f\xc4\x04\xe6\xcd\xa8\xd6\xd4\x50\xaa\x4e\xb9\xb0\ \xce\x24\xed\xb3\x0f\x95\x27\x8b\x64\x64\x80\x85\x0f\x95\x4f\x99\ \x9b\x2a\x03\x7f\xce\xa9\x78\xe1\x08\xfb\xc7\x62\x0e\x9e\x19\xc8\ \xa3\xdb\xad\x57\x96\x5e\xd6\x74\x6f\x13\x90\x8c\x68\x31\xbd\x8a\ \x28\x17\x1d\x45\x36\x18\x04\x98\x70\xf8\x89\x24\xcd\x26\xa3\x5d\ \x87\xb5\x57\x82\x07\xc6\x67\x95\x0a\xa9\x07\xcc\x09\xb7\xce\xb4\ \x25\x3e\x7d\x35\xb0\x00\x77\xa2\x77\xda\x56\xc0\xe1\xcc\x12\x34\ \x99\xd7\x2e\x56\x02\xc7\x52\x4d\x34\x0f\x95\x48\x50\xa2\xc3\xf3\ \xa1\x93\x53\x6e\x94\xe6\x21\x8b\x16\xd3\x97\x3a\x62\x85\x08\x5e\ \x46\xca\x8b\xbb\x54\x44\xaa\x22\xcf\x21\xca\x8a\x35\x35\x43\x15\ \x34\xb8\xe9\x84\x50\xa1\xc8\x0d\x95\x47\xea\x69\xb7\x10\x71\xd8\ \x97\xc5\x4a\x23\x8d\x48\x8c\x1b\x22\x0e\x7d\xeb\x43\x87\xe1\x57\ \x06\xa1\x9e\xc6\x73\xff\x00\xd3\xfb\xd1\x61\x30\xf1\xe0\xd0\x65\ \x0a\xf3\x73\x7f\xc3\xd8\x53\x54\x5c\xdc\xd3\x38\xfd\xa3\x5c\x54\ \xb0\xef\xde\xa7\x0c\x72\xb9\x16\xbe\x61\x6a\x34\x5a\x60\x5c\xdf\ \xcd\x68\x6b\xa2\x51\x1d\xfc\x24\x09\x7d\xed\xbd\x0e\x25\x0a\xa3\ \x4e\xac\x55\x97\x9f\x5e\xd4\xe8\xc1\x2a\x6f\xb8\x36\x35\x18\x98\ \xcc\xb6\x86\xf6\x55\x37\x76\xfd\xaa\xc4\x4e\x0f\x16\x24\x60\xae\ \xb6\x63\xa0\x75\xda\x9b\x8a\x82\x2c\x52\xda\x51\x67\xd6\xce\x34\ \xd7\xbd\x28\x60\xa3\x59\x96\x45\x9a\xca\x1a\xe4\x15\xd4\xd5\x96\ \x39\x98\x9b\x6e\x6f\x54\xdc\xed\x7f\xe3\x28\x24\xfc\x36\x76\x95\ \x80\x20\x21\x3d\x43\x0a\x87\x03\x11\x11\x64\x24\xa4\xea\x4a\xf6\ \x3d\x3d\xeb\x47\x89\x46\xb3\x70\xf3\x03\xb1\x1e\x23\x59\x48\xe5\ \xfd\xab\x0b\x86\xca\xd8\x4c\x63\x61\xa5\xd1\x59\xac\x6f\xf0\x91\ \xb1\xac\x5e\xae\x19\xda\xc7\x09\x55\x9e\x73\x1c\xce\x49\x78\xd4\ \xa9\x36\xb1\xb0\x1e\x5b\xf5\xb8\x3f\xec\x56\x8a\x07\x13\x08\x94\ \x05\x7c\xb7\xb7\xe0\x15\x93\x82\x85\x5e\x18\x62\x11\x96\x77\xb3\ \x02\xbb\x8d\x6b\x68\x44\x90\xca\xcc\xac\x59\x88\xb1\xd0\x00\x4f\ \x33\x4f\x1f\x15\x23\x11\x83\x52\xb7\x80\x5c\x8d\xc1\x1a\x9e\xe2\ \xaa\x9f\x14\xb0\x46\x2e\xdc\xac\x4e\xbf\x4a\xd1\x04\x8a\x89\x50\ \x4c\xca\xf9\x8a\x48\x9b\x35\xaf\x7a\x6c\x12\xa9\x34\x6d\x1d\xbc\ \x45\x2b\x7f\xc5\xa5\x68\x70\xe9\x56\x4c\x3a\x44\x74\x74\x04\x2d\ \xf9\x8a\x5e\x26\x19\xe6\x20\x2f\x85\x65\xd7\x43\x6b\x9e\xba\xd2\ \xf0\x0a\xc9\x8f\x8d\x58\x10\x43\x73\xa6\x75\x53\x46\x1f\xf3\x54\ \x9d\x81\xbf\xd2\xb1\x61\x19\xf1\xe0\xa9\xd1\xa5\xba\xdf\x90\xbd\ \x6c\xc2\x7e\xf5\x7d\xed\x58\xa2\xe9\x8e\x00\x5b\xcb\x26\x97\x36\ \xb6\xb5\x72\xf8\xa3\x66\x7d\x66\x6f\xf5\x1a\x85\x15\x33\x5f\xc5\ \x7d\x47\xa8\xf2\xef\x43\xaf\x61\xf9\xd6\x80\xd4\x29\x2c\x58\x79\ \x46\xa7\xe4\x2b\x29\xb8\x96\x20\x4c\xe2\x30\x42\x83\xa0\xab\x9c\ \x4d\xcc\x7c\x38\xda\xf7\x76\x00\xd6\x41\x3a\xdf\xeb\x58\xe5\x73\ \xc6\xa4\x5f\x87\x88\x2c\x8d\x7c\x4c\x36\xe4\x0a\xff\x00\x15\x2f\ \xc4\xa0\x53\x95\x61\x76\x3f\xd4\x6c\x2b\x38\x11\xf8\x87\xd6\xb8\ \xe6\x3b\x58\x0e\x57\xa3\xf5\x4e\x43\xf1\x38\xcc\x44\xd7\x19\xb2\ \x2f\x45\xd2\x82\x1c\x6e\x2a\x11\x65\x94\x95\xfc\x2d\xa8\xa0\xe5\ \xb8\xbf\xb5\x5f\xc0\xe1\xa2\x38\x41\x23\xc6\x24\x67\x26\xdd\xa8\ \x9b\x6a\xb9\x0b\x18\xcc\x36\x20\x85\x99\x7c\x37\xfc\x43\x6a\x39\ \x30\x6e\x14\x34\x6c\x24\x07\xf0\x9d\x68\xce\x03\x0d\x20\xb9\x56\ \x8c\xff\x00\x4e\xb4\xb5\xc0\xe2\xf0\xe7\x3e\x12\x51\x27\x60\x6c\ \x7e\x9c\xeb\x5d\xfd\x1d\x2b\x4f\x01\x2d\x9d\x33\x2c\xab\xea\x1b\ \x67\x14\xa5\x4c\xc7\x32\x03\x6b\xfd\x3d\xea\xf2\xe3\xca\x9c\x98\ \xbc\x31\xb8\x3b\x81\x63\x53\x2b\x60\xe6\x91\x1e\x19\x32\x3b\x1c\ \xad\x71\x6c\xda\x6d\x46\x45\xb5\x5d\x52\xdc\xc9\xf7\x34\x40\x5a\ \x9c\xf8\x59\x46\xa9\x67\x07\x9a\x9a\x53\xab\x21\xb3\x29\x1e\xf5\ \x62\x45\x75\x45\xeb\xaa\x4e\x22\xe6\xa4\x57\x0a\x9a\x92\x40\xae\ \xae\xae\xa5\x3a\xdd\xab\xad\xad\x4d\x75\xaa\xc4\xa7\xc7\x63\xce\ \xb1\x4e\xa2\xc4\xae\x46\x37\xe6\x36\xd3\xfd\xef\x4d\xc1\xb1\x97\ \x0e\x80\x90\x52\x15\xd1\x6d\xcc\x31\x02\xff\x00\x91\xa7\x49\x1f\ \x8f\x87\x93\x0f\xcd\x85\xd7\xdc\x55\x6e\x1e\xcc\x85\xe0\x73\x6c\ \xe8\x96\x1c\xb3\x6a\x7e\x5a\x00\x2b\x39\xda\xf8\xbd\xc3\xc9\x2b\ \x2a\x12\x2f\xa3\x0b\xf3\xa2\x90\x5c\x58\xfe\x54\x8e\x1c\xc0\x63\ \x2c\x7e\x20\x54\x55\x87\xb1\xad\x4f\x05\xf5\x5d\x94\x96\xcb\x5c\ \x17\x21\x1a\xe8\x69\x84\x73\x1b\xfe\xb5\x04\xa8\x4c\xee\xe1\x54\ \x73\x35\x12\xda\xec\xd7\x5e\x5b\x9a\x9c\xba\xdc\xb5\xcd\x4c\x6f\ \x0c\xa4\x84\x97\x6e\x45\x6d\x45\x94\x13\x65\x74\x24\x6e\x2f\x6f\ \xd6\xa4\x59\x15\xd9\x46\x52\x58\x85\x51\xb9\x3b\x53\x0c\x4d\xb8\ \x1a\x75\xbe\x9f\x5a\x8b\x2b\x1b\xe8\xc2\x2d\x06\xb7\x05\x8d\x58\ \x95\xe4\x56\x4c\x24\x8c\x8c\xb6\x60\x00\x21\xc0\x1a\xf3\xfc\xaa\ \x9c\x30\x9c\x99\x94\x11\x9b\x43\x2b\x68\x00\xe7\x6e\xb5\x7f\x1f\ \xe4\x81\x5d\x15\x43\x33\x58\xf9\x46\xba\x55\x2b\x97\x62\x59\x8b\ \x1e\x75\x8e\x53\xb3\x13\x29\x0f\x29\x61\xb6\xc2\x84\x81\x6d\x6a\ \x76\xae\x35\x92\x18\x90\x34\x81\x54\x1b\x13\xa8\xbe\xf4\xec\x04\ \x0a\xd2\x33\x38\xba\xc5\xa1\x1d\x5b\xff\x00\x34\xdc\x36\x1c\xa6\ \x11\xe7\x26\xcd\x94\x95\x16\xe5\x56\x32\x2c\x68\xb1\xa0\xd2\xc0\ \x93\xd4\x91\x5b\x9c\x46\x93\xc4\xd0\xe2\x38\x79\x03\x78\x9b\x30\ \x00\x72\xac\x60\x3a\x0a\xf4\x11\xb1\x57\xb8\x17\xb6\xe3\xf6\x35\ \x9b\xc5\xb0\x9e\x0c\xbe\x2a\x29\x31\xbe\xa0\x9e\x47\xa5\x1c\xf8\ \xfd\x52\x87\x82\x39\x18\xf5\x8c\x1b\x2c\xbe\x53\xde\xae\x85\x02\ \x52\x3a\x0e\x75\x9b\xc3\xe3\x69\x31\xf1\x22\x9b\x12\xe3\x5a\xd8\ \x97\x2b\x48\xc5\x45\x81\x26\xd5\x70\x9d\x2a\x55\xaa\x5a\x35\xf0\ \xcc\x8d\xe5\x55\xdc\xd1\x48\xd1\x41\x18\x92\x72\x40\x3e\x95\x1b\ \xb5\x51\x69\x26\xe2\x38\x85\x88\x2d\x90\x1d\x15\x74\x0a\x29\xb4\ \x47\x4c\xd3\xf1\x0c\x42\xc3\x12\x15\x8c\x6c\x39\x7b\x9a\xd0\x82\ \x38\xf0\xb0\xf8\x50\x9d\x4f\xad\xc6\xed\xfd\xaa\x62\x54\x81\x0c\ \x30\x8b\x20\xe7\xcd\xbb\x9a\x9b\x53\x26\x76\x82\x06\xb4\xd8\xd7\ \x95\x42\x8b\x53\x10\x56\x85\x12\x8d\x6d\x4c\x41\x50\x83\x4a\x35\ \x14\xc0\x9b\x84\x90\x30\x17\xd2\xe4\x75\xa3\x28\x42\x05\x3a\x93\ \xe6\x63\xd4\x9d\x6b\x94\x03\xa3\x6c\x41\x14\x69\x73\x18\xcf\xeb\ \x5f\x2b\x58\x74\xd8\xfd\x2b\x51\x14\x56\xc0\x9b\x6c\x2a\x02\xe5\ \x50\x29\xd7\x5b\xdb\xf2\xb5\x00\x07\x2e\xa3\x51\x46\x25\x3e\x28\ \x40\x78\xd3\xa2\xdc\xfc\xeb\x23\x8f\xc7\x71\x16\x25\x45\x8b\x79\ \x58\xf7\x15\xaf\xc5\x74\xc4\x8f\xf4\x0f\xd2\xb3\xb8\xbe\x5f\xfd\ \x28\xe6\xdf\xc4\x19\x3d\xf9\xfe\x55\xcf\x9c\xf5\xae\x2d\x3c\x1c\ \x0b\x86\xc3\xa1\x0b\x69\x1d\x05\xcf\xe1\x16\xda\xb8\xdc\x9a\x7e\ \x28\x7d\xe6\x51\xb0\x00\x7d\x00\x14\x83\xa5\x69\x97\x0a\x25\x34\ \x35\x2b\x52\x18\xda\x89\x81\x91\x40\x06\xce\xba\xa3\x5f\x63\x42\ \xb4\x40\xeb\x4c\x43\x0d\x9d\x44\x83\x42\x77\xec\x79\xd6\x6f\x1b\ \x8d\x93\x18\x66\x1b\x4b\xe6\x06\xb4\x09\xca\xcc\xe1\x4b\x2b\x6a\ \xe0\x6e\x0f\x5a\x99\x16\x39\x22\xc9\x20\x12\x46\x76\x20\xed\xed\ \x55\x9b\x0c\xea\xab\x61\xb1\xf0\xc8\x80\x62\x2e\x8e\x05\xb3\x01\ \x7b\xd3\xda\x6c\x28\x5c\xc7\x13\x19\x03\xa6\xff\x00\x4a\xac\xfc\ \x32\x26\x6b\xc7\x88\xca\x3a\x32\x9b\xfe\x54\xa9\xb8\x64\xf1\xdc\ \x96\x8f\x2f\x22\x5a\xd7\xa3\x79\x45\xd0\x78\xa6\x29\x67\xcb\x1c\ \x57\xc8\x97\xd4\xf3\xaa\x95\x63\xec\x73\x88\x4c\x9e\x04\xae\xa3\ \xf0\x2e\x9f\x5a\x42\x14\x75\x25\x43\x02\xbe\xa5\x61\xa8\xac\x5d\ \xfa\xd4\xc7\x0b\xd7\x58\xd4\x8a\x90\x3c\xb7\xa0\x86\xc6\xb5\x78\ \x6d\x9f\x87\x2d\xbe\x06\x20\xfc\xeb\x2f\xe5\x57\xf8\x1c\x83\xc4\ \x78\x0f\xfc\xc0\x32\xfb\xd6\xb8\xfa\x2f\x8b\x56\xae\xb5\x19\x17\ \x14\x24\x6b\x5d\x18\x43\xda\x45\xc9\x2a\x89\x01\xd2\xcc\x2f\x55\ \x8e\x0b\x0e\xf2\xfd\xde\x68\xc2\x12\x49\xbd\xc5\xc8\xb5\xaa\xd1\ \x16\x89\x8e\x6c\xbb\x00\x7d\xcd\xaa\x5d\x42\x9c\x8a\x3c\xab\xa0\ \xa3\x16\xb3\x1f\x0b\x8b\xc1\xfd\xec\x12\xe6\x41\xbd\x8e\xde\xe2\ \xad\x60\x31\x23\x15\xf7\x4e\xa0\x48\x06\x9a\x68\xd5\x65\x09\x56\ \xb8\xff\x00\xcd\x51\xe2\x78\x51\x1f\xfc\x4c\x07\x28\xbf\x99\x7f\ \x09\xa3\x33\xc3\xba\xb0\xf8\x58\xe4\xbe\x51\xe1\xb7\x3e\x9f\xda\ \xa9\xcc\x8b\x13\x65\x92\x44\x53\xca\xe7\x7a\xb5\x83\x91\xf1\x8e\ \xc9\x2c\x8c\x72\x0c\xc5\x41\xb6\x70\x76\x3f\xcf\xb5\x49\xc2\xc6\ \xd8\x93\x11\x04\xc2\x10\x31\x07\x52\x2f\xd2\xac\xdf\x12\x93\x29\ \x53\x63\xf9\x57\x0a\xb1\x8d\x84\xc5\x2f\x55\x61\xe5\xb7\x4a\x4f\ \xb5\x18\x5c\x05\x75\xaa\x46\x82\xa0\x1b\xd2\x93\x50\x6a\x6b\x8e\ \xa2\xa4\x10\x4a\xb0\x61\xb8\x3a\x55\x3e\x34\x1a\x2c\x44\x8e\x9e\ \x51\x94\x49\x19\x07\xa6\x9f\xb8\xab\x6d\x53\x2c\x51\x62\x03\x44\ \xe3\xcc\x51\x42\xb5\xbd\x37\xfe\xe0\x56\x6c\xde\x90\x38\x64\x8b\ \x89\x9a\x29\xd2\xd9\x81\xb4\x8a\x39\x1e\xb5\x64\xd7\x9e\xc1\xb4\ \xf8\x4e\x26\xa2\x13\x66\x12\x65\x3a\xdb\x4a\xf4\x12\x32\xb4\xbe\ \x22\xb7\x92\x41\x99\x7d\xaa\xe1\x76\x1a\x9b\xd2\x38\x92\x5f\x07\ \x98\x35\xad\x25\xed\xd7\x4a\x2b\xf9\xf3\x0d\x40\xa6\xe4\xf1\x3c\ \x10\xc3\xca\x25\x24\xdc\x5e\xfa\x53\xe8\x27\x0c\x7c\x18\x11\x14\ \x10\xc4\x5d\x88\xef\x4c\x2c\x58\x11\x20\x0e\x3f\xa8\x5e\x80\x7f\ \x9b\xf3\xe7\x4c\x37\xbd\x51\x06\xd1\x65\xcb\xe0\x47\x6e\x9a\xff\ \x00\x35\x20\x8b\x05\x00\x28\x1b\x28\xda\xa6\xc6\xa4\x0b\xd2\x89\ \xe2\x5a\x60\xd0\x85\xbd\xa4\x3f\xa5\x66\xc6\x72\xb5\xcf\x3d\xeb\ \x57\x1e\x3f\xe1\x93\xff\x00\x90\xfe\x95\x9c\xa8\x19\xcf\x6a\xc7\ \x2f\x4c\x41\xd7\x50\x34\xef\x45\x86\x88\xcb\x88\x58\xee\x06\x63\ \xc8\x5e\x8a\xd5\x6b\x85\xc6\x73\x3b\x80\x6e\x05\x87\xce\x89\x36\ \x9a\x9e\x20\xfe\x1e\x1f\x22\x9d\x24\xd0\x0b\x6b\x94\x54\x60\x09\ \x93\x0c\x55\x8d\xcc\x67\x4b\xf4\xa8\xe2\x65\x4f\x86\x80\xdd\x94\ \x1b\xd8\xde\xd5\x30\xc5\x2e\x12\xd2\xba\x82\x8e\x2c\x40\x35\xaf\ \xac\xfc\x37\x2d\x2f\x89\x18\xd3\x07\xe0\xc8\xda\xca\xea\x6d\xd0\ \x75\xab\x12\xbc\x50\xe1\x8e\x20\xd9\xd7\xe1\x1d\x4d\x63\x62\xa5\ \x79\xe6\x32\x48\x75\x3f\x95\x36\xa8\x4c\x38\xf9\x30\x9c\x5c\x09\ \x11\x04\x71\xb7\xa4\x0d\xbb\xd6\x8c\xdc\x45\x50\x0c\xb8\x54\x37\ \x17\x0d\x98\x91\xee\x2b\x33\x8a\xa7\x89\x83\x49\x88\xbb\x23\x65\ \x27\xb7\x2a\x77\x0e\xe1\xdc\x56\xc1\x51\x13\xc3\xb5\xfe\xf0\xf9\ \x47\xf7\xae\x72\xf2\x97\x23\x5d\x02\x77\x9b\x15\x88\xcc\xe7\x33\ \xb6\x80\x01\xfa\x56\xbe\x12\x0f\xb2\x61\x7c\x2f\xf9\x8f\xac\x9d\ \xbb\x51\xe0\xe0\x4c\x39\x20\x46\x04\xfb\xdc\xdf\x6f\xe9\xa2\xb5\ \xeb\x7c\x78\xe7\x75\x9b\x41\x6b\x58\xd1\x01\x53\x96\xed\x6f\x99\ \xa3\x55\xad\x0d\x42\xad\x35\x56\xb9\x16\x98\x05\x41\xca\x28\xd4\ \x6b\x50\xbb\xda\x88\x9b\x68\xba\xb7\xb6\xd5\xa4\x24\x5a\x6a\x8f\ \x30\xe8\xfe\x53\xd8\x8d\x8f\xed\x49\x89\xb3\x1f\x31\xdb\x96\xd4\ \xd8\x8f\xde\x2a\x83\xe5\xcc\x48\xee\x40\xdb\xf3\xad\x44\xe3\x7b\ \x6e\x68\x5a\x9a\x46\x9a\xd0\x30\xa9\x33\x78\xb7\xff\x00\xaa\x1f\ \xe8\x5f\xd2\xb2\xb8\xf3\x11\x85\x82\x3b\x68\xc4\xb9\xf7\xda\xb6\ \x78\xba\x7d\xea\x3d\xfd\x4b\xfa\x69\x59\x3c\x69\x03\x3e\x0d\x0e\ \xcd\x70\x7f\xee\xae\x5c\xe7\x55\xae\x2d\xc9\xbc\xc1\x5f\x6c\xea\ \x1b\xda\x90\xc0\xde\x8b\x87\x16\x9f\x85\xc0\x43\x67\x65\x05\x0d\ \xbb\x7f\xe6\x89\x81\x07\x51\xaf\xb5\x6a\xff\x00\x59\x2c\x2f\x5a\ \x21\x5d\x51\x7e\xd4\x21\x0f\x7a\x9a\x10\x6a\x41\x35\x21\x02\x41\ \x04\x6e\x29\x44\x4d\x16\x2b\x2c\x00\x15\x94\x66\x00\x8b\x81\x4c\ \x15\x32\x5c\x46\xd2\xa5\xc3\xc6\xbe\xe0\x8e\x96\xa5\x03\x10\xf8\ \xc8\xe2\x2d\x9a\x35\x00\xea\x63\xb5\x1e\x19\x32\xc2\xae\x7c\xce\ \xe2\xe4\xb6\xb6\xaa\x32\x4b\x88\x9d\x6e\x73\xba\x83\xf0\x8d\x05\ \x5d\x49\x84\xa1\x72\x02\x0a\xd8\x15\x3b\xe9\x54\xa4\xd0\xd2\x66\ \xcd\x98\xdf\xad\xea\xbc\xb0\x26\x23\x89\x4a\x19\x72\xda\xf7\x75\ \x1a\xfc\xea\xc6\x66\x12\x00\xaa\x73\x7c\x2b\xd7\xdf\xb5\x74\x71\ \xac\x20\x85\x39\x8b\x1f\x33\x1e\x67\xb7\x6a\x7d\x0c\x9c\x66\x19\ \xf0\xf2\xe5\x3a\xa9\xd5\x58\x6c\x69\x56\x35\xbb\x3c\x5e\x3e\x19\ \xa2\xe7\xba\x7b\xd6\x31\x5b\x12\x08\x37\x15\x8e\x5c\x71\xa9\x41\ \x6d\x2d\x56\x38\x40\xff\x00\xf2\x50\xff\x00\xaa\x92\x6c\x37\x20\ \x7b\xd5\x8e\x12\x3f\xfc\x8c\x27\xfa\xaa\x9e\xa6\x89\x02\xda\x52\ \xcd\x31\x98\x6c\x01\x27\xda\x81\xae\x01\xd0\x56\xd9\x71\x00\xca\ \xa9\x73\x64\x5f\x10\x81\xcc\xec\x2a\x05\xed\x6d\xed\xce\xa1\x81\ \x2a\xac\x1a\xef\x6b\x65\x3b\x30\xe9\xd8\xd3\x22\x0a\x45\x95\x80\ \x23\x70\xda\x11\x52\x0d\x8d\x12\x73\xd0\x32\x9d\x18\x72\x34\xc5\ \x8c\xf2\x19\xbd\x8d\xe9\x25\x6c\xe5\x46\x52\x06\xec\x4e\x9e\xda\ \x6e\x6a\x4c\xfe\x2a\x92\x60\x18\x62\xa0\x3e\x54\x6b\x2e\xbb\x83\ \xc8\xfc\xe9\xdc\x1b\x1d\x1e\x36\x49\x73\x30\x49\x99\x75\x52\x74\ \x36\x3c\x8d\x59\x9a\x05\xc4\xc2\xd8\x76\x94\x80\xe2\xd6\x0a\x00\ \xbf\x5a\xf3\x85\x25\xc0\x63\xd9\x1d\x7c\xcb\x70\xc3\x91\x15\x8b\ \x6f\x1b\xbf\x0c\xed\xe9\xa7\x89\x9e\x06\x46\x1c\xae\xa6\xb3\x2d\ \x47\x82\xc5\xbc\x79\x64\x8d\xd8\xc4\xc7\x55\x34\xdc\x5a\x05\x9c\ \xd8\x68\xda\x8a\xd6\xea\x22\xc6\xbb\x2d\x34\x2d\x71\x5a\x16\xaa\ \xe3\xe6\x92\x08\xd0\x44\x72\x97\xb9\x27\xb7\x4a\x94\xc5\x61\xde\ \x30\xce\xf9\x5a\xde\x60\x16\xfa\xd3\xa7\x8e\x39\x23\xfb\xc4\x24\ \xa0\xd0\x83\x6a\x4b\xe0\x62\x71\xe4\x63\x1b\x7f\x56\xa2\x8e\xf7\ \xa3\xd3\x96\x48\x24\x6c\xb1\xcb\x73\xfd\x42\xd4\x4a\xd9\xe5\x31\ \x23\x03\x95\x2c\x4f\x72\x74\xb5\x56\x7e\x1f\x38\x04\xfd\xd3\x76\ \x56\xd7\xe9\x4e\xc0\x14\x83\x06\xce\x48\x56\x8e\xec\xc0\xef\xdb\ \x4a\x3b\xde\xd3\x3b\x10\x56\x4f\xf1\x31\xc8\x43\x5e\x4f\xae\x95\ \xb2\x61\x11\xc3\x1c\x6d\xea\x44\x00\xf6\x35\x99\xfe\x1e\x84\xcb\ \xc6\x17\x12\xea\x08\x4d\x4d\xf9\x9a\xd6\x93\x31\xb9\x2a\x6e\x68\ \xe1\xe6\xaa\x51\xb2\xad\x42\xc8\x4a\x94\x07\x29\x24\x10\x7a\x11\ \xb5\x11\x40\x39\x6b\xd6\x81\xd4\x12\x2c\x35\xad\x23\x34\x20\x48\ \xab\x6c\xdb\x8e\x87\x98\xa1\x66\xb1\xb5\xa8\x92\xd7\x24\x79\x49\ \xdf\x4b\x86\xf7\x1f\xb8\xa9\xb5\xcd\xad\x66\x1a\xe5\xbe\xfd\xc7\ \x5a\x52\x28\xd4\x50\xae\xf4\x6b\x50\xa0\xc7\x2e\x6c\x18\x23\xe1\ \x7d\x7e\x75\x9c\x10\x2e\xa0\xed\xbd\x69\xe2\x41\x6c\x1c\x80\x6e\ \x2c\x4f\xb5\x51\x50\x2d\x59\xbe\x99\x42\x12\xe6\xdb\x73\x27\xa5\ \x5c\xc0\x25\xf0\xcc\xc4\xb2\x29\x60\x02\x8d\x0b\x0b\x1d\x4f\x4a\ \x42\x80\x14\x2b\x5a\xce\x72\xfc\x86\xa7\xf2\x1f\x9d\x5c\xc0\xdd\ \xa0\x91\x8e\xe6\x4b\xfe\x55\x48\xa8\xac\xa5\x72\x18\xd3\x2f\xe1\ \xcb\x50\xd8\x44\x98\x04\xf1\x64\x50\x3d\x2a\x75\x02\x99\x61\x4c\ \x87\xd6\x47\x55\x20\x7d\x0d\x69\x96\x0e\x35\xc3\x48\x51\x49\xca\ \xa4\xdb\xa0\x1b\x0f\xd2\xff\x00\x3a\xb1\xc3\xb8\x78\x78\x84\xd8\ \x82\xc1\x0f\xa5\x46\xed\x54\x9c\x10\xc5\x48\xd4\x1b\x1a\xdf\x6d\ \x42\x64\xb6\x4c\x82\xc4\x7b\x56\x38\xf7\x75\xaa\x52\x41\x86\x8d\ \x72\x24\x00\x5c\xdf\x31\x39\x88\x34\xb4\x79\x12\x5f\xb3\xce\xd7\ \x0d\xe8\x6e\x5f\xf8\xa7\xb0\x23\x98\x3f\x95\x2d\xf2\x99\x21\x72\ \x40\xc9\x25\x89\x27\x60\x7f\xbd\x6c\x39\x94\x98\xd8\x0d\x59\x7c\ \xcb\xae\xc4\x57\x40\xc9\x32\xe7\x42\x01\xf8\x94\x9d\xa8\xe2\x17\ \x97\x2f\x33\x70\x79\xf6\xac\xf8\x96\x21\x23\xac\x8c\xde\x51\xe5\ \xcb\x45\xaa\x34\x02\x1b\x92\x74\x27\xb7\x2a\x25\x5b\x54\x61\x03\ \x8c\x22\x67\x37\x27\x51\x7e\x42\x9a\x10\x9f\xee\x6d\x5a\xc0\x85\ \x14\x5c\xab\x88\x23\x71\xa7\x23\xd6\xa4\x52\x9c\xbe\xaa\x38\xf4\ \x5b\x03\xcc\xdf\xeb\x41\x6d\x6b\xae\x43\x79\x4d\x89\x3a\x8a\x90\ \xa6\xb6\x9d\x4d\x1c\x79\x64\x87\x2b\x72\xe6\x39\x1e\xb5\x20\x8e\ \x82\xb8\x1c\xa4\xe5\x1a\x1d\xc5\x69\x25\x24\x61\x27\x85\x3d\xae\ \x7d\x2f\xc9\xa8\xd9\x4d\xed\x6f\x95\x2d\x99\x5d\x32\xb4\x64\xaf\ \x7d\xc5\x04\x73\x98\xdf\xc2\x98\x92\xa7\xd0\xc7\x97\x6a\x90\x78\ \x9a\x5f\x0c\xad\x6f\x4b\x6b\x58\xfc\x60\x5b\x09\x0c\xd9\x6f\xe1\ \x4b\xa9\xe8\x37\xfd\x6b\x73\x1a\xc8\x20\x78\xdd\xd4\x31\x17\x00\ \x9e\x95\x95\x8c\x48\xdf\x01\x34\x66\x45\x37\x00\x8b\x1e\x63\x6f\ \xd6\xb1\xce\x18\xff\xd9\ \x00\x00\x2a\x0f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x1c\x2b\xec\xa5\xbb\x6e\x00\x00\x20\x00\x49\x44\x41\x54\x78\ \xda\xed\x9d\x79\x94\x5d\x55\x9d\xef\x3f\xfb\x0c\x77\xae\x39\x35\ \xa5\x06\x2a\x21\x21\x09\x14\x15\x84\x88\xd1\x00\x09\x08\xad\x08\ \x1d\x5b\xec\x36\x60\x0b\x48\xd3\xf0\x1c\x68\xc4\xf5\xda\xd5\x4f\ \x78\x48\x83\xda\x93\xad\x48\xab\x4b\xb4\x15\x51\x40\x9f\xd8\x34\ \xad\x08\xd8\x0e\xc8\x20\x24\x81\x8c\x18\x92\x9a\x92\xaa\x54\xaa\ \xea\xd6\x70\xab\xea\xce\xc3\x99\xf6\xfb\xe3\xd6\x3e\xb9\xc9\x13\ \x03\x61\xce\xcb\x5e\x2b\x8b\x5b\xdc\xe1\x9c\xbb\xbf\xfb\x37\x7d\ \x7f\xc3\x85\xe3\xeb\xf8\x3a\xbe\x8e\xaf\xe3\xeb\xf8\x3a\xbe\x8e\ \xaf\xe3\xeb\xf8\x3a\xe6\x97\x78\x33\xdd\x4c\x75\x75\x75\x57\x26\ \x93\x31\xa5\x94\x5e\x5d\x5d\xdd\xfb\xd6\xac\x59\xf3\x39\xd3\x34\ \x5d\xd7\x75\xe5\xfe\xfd\xfb\x5b\x56\xac\x58\x81\xe7\x79\x24\x93\ \x49\x5a\x5b\x5b\x29\x95\x4a\x68\x9a\xc6\xae\x5d\xbb\xb0\x6d\xbb\ \xfc\x85\x84\x40\xd3\xb4\x83\x5f\x50\x08\x0b\x70\xd5\x63\xc3\x30\ \xfa\x00\x0d\x20\x1e\x8f\x7f\x30\x1e\x8f\x8f\xa8\xd7\xb6\xb6\xb6\ \x12\x8f\xc7\xdf\xd0\x3d\x30\xde\xc8\x8b\xb7\xb5\xb5\x2d\x9d\x9b\ \x9b\x7b\xa7\x94\xd2\x03\x58\xbe\x7c\xf9\xb7\xdb\xdb\xdb\xc3\x52\ \x4a\x86\xf6\x0d\x11\x0c\x06\xa5\xa6\x69\xc2\x95\x2e\x86\x61\xe0\ \x38\x0e\x48\xc9\x44\x3e\x41\x87\xd1\x41\x26\x93\x01\x5d\x90\x76\ \xf2\x9c\xbd\xea\x9d\x00\x4c\x27\xa6\xd1\x84\x86\xae\xeb\x00\xe8\ \xba\x1e\x90\x12\x44\xf9\xe8\x85\x81\x33\xd5\xf5\x1b\x1b\x1b\x77\ \xae\x5c\xb9\xd2\x11\x42\xb0\x67\xcf\x1e\x86\x87\x87\x1b\xdf\xe8\ \x43\xf9\xba\x03\x52\x55\x55\x65\x66\x32\x19\x1d\x60\x76\x76\xf6\ \xba\x8f\x7e\xf4\xa3\xd7\xab\xe7\xfa\xfb\xfb\xcb\x27\x5c\x08\xf2\ \x94\xb0\x4a\x96\x10\x9a\x20\xe7\x14\xf0\x3c\x0f\xcb\xb2\xc0\x83\ \x9c\x5b\xc4\xb2\x2c\x2c\xcb\xc2\xd6\x5d\x1c\xd7\x26\x9d\x4e\x03\ \x70\x60\x7a\x9c\xd3\x4e\xea\xa6\x58\x2a\xa1\xeb\x3a\x3b\x76\x3f\ \x4f\x55\x93\xc0\x9b\x0b\x21\x84\x00\x49\xf9\x9f\x00\x04\xb5\xea\ \xda\xd1\x68\x94\xee\xee\xee\x3e\x40\xb8\xae\x6b\xee\xd9\xb3\x67\ \xd1\xff\x17\x80\xb4\xb5\xb5\x3d\xb8\x78\xf1\xe2\x8b\xa4\x94\xf4\ \xf7\xf7\x33\x33\x33\x53\x3e\xf9\x40\xc9\x2e\x6f\xb2\x00\x8a\x9e\ \x85\xed\xd8\x08\x21\x70\x1c\x07\x29\x25\x96\x65\x21\x3d\x89\x94\ \x1e\xb6\x6d\x63\x59\x16\x8e\x21\x91\xe0\x7f\x86\xf4\x3c\x6c\xdb\ \xc1\xb6\x6d\xa4\xe7\x11\xa9\x8a\xb2\xb8\x61\x31\x62\x81\x20\x91\ \x99\xc3\x3a\x69\x94\x05\x75\x61\x9c\xb1\x28\xf6\x58\x08\xe1\xea\ \x95\x8a\xfb\x24\x29\x25\x52\x4a\x92\xc9\xe4\xba\x0a\xb5\x3e\x1a\ \x8f\xc7\x07\x8e\x19\x40\x1a\x1b\x1b\x3f\x58\x28\x14\x22\x80\x15\ \x0c\x06\x97\xc7\x62\x31\xa4\x94\x98\x01\xd3\xdf\x58\x00\xc7\x73\ \x28\x95\x4a\xfe\xc6\x5a\x96\x55\x06\x42\x5a\x78\x9e\x57\x7e\xce\ \x03\x29\x25\xa5\x52\xa9\x0c\x88\xe7\x95\x01\x2c\x16\x01\x70\x1d\ \xd7\xff\x4c\x57\xd3\x91\xea\x7d\x40\x7f\x6f\x1f\xe7\x37\x9e\x47\ \x6e\x34\x87\x29\xa0\x14\x4d\xb3\xa0\x43\xc3\x89\x87\x90\x39\x13\ \x74\x09\x9a\x44\x68\xc8\xb3\xce\x3a\xeb\xb7\x00\xa6\x69\xf2\xe8\ \xa3\x8f\xde\x09\x7c\xfc\x98\x01\x64\xc1\x82\x05\xf7\xbf\xed\x6d\ \x6f\xd3\x34\x4d\x63\xef\xde\xbd\x94\x4a\xa5\xf2\xa6\xba\x36\xb6\ \x65\x57\x80\x50\xde\x68\x81\x40\x4a\xcf\x07\xca\x96\xb6\x2f\x21\ \x78\x12\xcf\x93\x07\x37\x7d\xfe\x44\xab\xd7\xba\x5e\x59\x7a\x4a\ \xa5\x12\xba\xa6\xfb\xcf\x09\x21\x90\x9e\x87\x87\x87\x2b\x5d\x12\ \xb3\x33\x88\x25\x33\xa4\xa4\x09\x0b\x25\xd2\x16\x38\xc9\x00\x6e\ \xca\xc0\x4b\x1b\xa2\x6c\xd5\xc0\x30\x0c\xea\xea\xea\x4e\x6f\x6b\ \x6b\xbb\x45\x08\xc1\xec\xec\xec\xf3\x63\x63\x63\x0f\xbe\xe5\x00\ \xe9\xe8\xe8\x38\xa3\xa6\xa6\x86\x52\xa9\x84\xe7\x79\x5e\xa1\x50\ \xd0\x74\x5d\xc7\x75\xdd\x83\x00\x48\x0f\xcb\xb6\x7c\x0f\x49\xd9\ \x09\x21\x04\x9e\x47\x59\xed\x48\x89\x8d\x8d\x37\xbf\xd1\xd2\xf5\ \x90\x42\xfa\x9b\xee\x49\x81\x40\x1c\x04\xc4\x3d\x28\x21\xba\xa6\ \xf9\xd2\x24\x84\xf0\xc1\xb1\x6d\x9b\x03\xc3\x23\x9c\xbb\xe8\x5c\ \x64\x52\xe2\x49\x49\x36\x92\xa2\x61\xa9\x8e\x37\x17\x42\xda\x02\ \x69\x69\x48\xab\xec\xad\x75\x76\x76\x9e\x09\x9c\x69\x18\x06\x3b\ \x76\xec\xb8\xa7\x12\x90\x57\xdb\x33\x7b\xad\x00\x09\x34\x37\x37\ \x6f\xe9\xe9\xe9\xc1\x71\x1c\x36\x6f\xde\x8c\x6d\xdb\xb8\xae\x7b\ \x50\xf5\xcc\x03\x60\x5b\x07\x55\x96\xe7\x79\x58\xae\x5b\x36\xbe\ \xa0\xc0\xc4\x16\x0e\x42\x42\x3a\x9d\x2e\x4b\x51\xb0\x44\xb1\x58\ \x24\x9f\xcf\x23\x1d\x81\x44\x56\x7c\xc6\x41\x40\x34\xa1\xe1\x79\ \x15\x12\x32\x0f\x88\xfa\xdc\x54\x2a\x85\xe7\x79\x4c\xa7\x66\xd1\ \x16\x4d\x32\x33\x72\x58\x14\x60\x78\xd8\x89\x00\xd6\x81\x30\x42\ \x2b\xbb\xd4\xb3\xb3\xb3\x2b\x5b\x5b\x5b\x6f\x06\x74\xe0\xe1\x78\ \x3c\xfe\xdc\x9b\x56\x42\xda\xda\xda\x9a\xc7\xc6\xc6\x6a\x80\xa0\ \xfa\xc2\xae\xeb\xfa\x1b\xa1\x69\x1a\xae\xeb\xfa\x9b\x27\x3d\x89\ \xed\x1c\x04\xc4\xc5\x23\x9b\xca\xa0\x09\x0d\xdb\xb3\xc8\xd8\x19\ \x1c\xc7\xc1\xd1\x3d\x62\x66\xc4\x57\x59\x8e\x61\x93\xcd\x66\xc9\ \xe5\x72\x48\x47\xe0\x78\x2e\x73\x73\x73\x00\xe4\xbd\x22\xb6\x6d\ \x51\x28\x14\xd0\x84\x40\x9a\x07\xc1\x92\xe0\x7b\x67\xbe\xd7\x06\ \xe4\xe6\xd2\x2c\x6b\x3c\xcd\xb7\xe1\xe3\xc1\x71\x16\xad\x08\xe2\ \x4c\x86\x71\x73\x41\x64\xa7\x31\x6f\x5b\x24\x8b\x16\x2d\xea\x01\ \x7a\x34\x4d\x63\xfb\xf6\xed\x89\x37\x35\x20\x85\x42\xe1\x9e\x4b\ \x2f\xbd\xf4\x82\x5c\x2e\xc7\xe8\xe8\x28\xb6\x6d\xfb\x1e\x92\x0a\ \xe2\x2a\x37\xc2\x93\x92\x5c\x2e\x47\x2e\x97\x2b\x8b\x55\x38\xe8\ \x9f\x66\x57\x73\x31\x4c\x1d\xcf\xf3\x30\xe4\xc1\x80\xaf\x50\x2a\ \x10\x4c\x6b\x18\x55\xe5\x5b\x17\x36\xe8\x9e\x40\x33\xca\xea\x45\ \x77\x05\x99\x4c\x96\x74\x3a\x8d\x40\x10\xaa\x8f\x50\xb4\x8b\xf3\ \x12\xe2\xf9\xce\x80\xef\xb5\xc9\xb2\xfa\x2b\x96\xca\xaf\xd9\x9f\ \x9d\xa2\xed\xe2\x14\xd4\x07\x30\x3a\x25\x86\x06\x5e\x51\xc3\x4d\ \x1a\x38\x33\x01\x32\xcf\x55\x81\x26\xd1\x34\x8d\x7c\x3e\x1f\x01\ \x6a\xe7\xf7\x31\xf1\xa6\x03\xc4\xf3\x3c\x2d\x18\x0c\x52\x28\x14\ \x7c\xd5\xe4\x38\xce\x61\xb6\xc1\xa3\x50\x28\xcc\x3f\x76\xfd\x13\ \x0b\x10\x8c\x84\xd0\xe6\xf5\x7e\x20\xaf\x21\xea\x34\xce\x3d\xf7\ \x5c\x66\x67\x67\xe9\xeb\xeb\xe3\x82\x0b\x2e\xe0\xf2\xcb\x2f\xe7\ \xce\x3b\xef\x64\x70\x70\x90\xcb\x2f\xbf\x9c\x58\x2c\xc6\x9d\x77\ \xde\x89\xa6\x69\x74\x76\x76\x72\xe0\xc0\x01\x74\x43\xc7\x30\x0c\ \x04\xe0\x14\x6c\x72\xb9\x4c\x59\x3a\x1d\xd7\x57\x91\xea\x9e\x3c\ \xcf\xf3\xed\x13\x80\x91\xb4\xf1\x1e\x5d\x44\x42\x96\x25\xca\xd3\ \x9d\xb2\x2d\xb2\x34\x04\x02\xdd\xf4\x7c\x37\xb9\xa7\xa7\xe7\x9f\ \x4f\x3d\xf5\xd4\x7f\x2e\x95\x4a\xfc\xea\x57\xbf\x12\x6f\x0a\x40\ \x9a\x9b\x9b\x9b\x84\x10\x0f\x01\x05\xcb\xb2\x7a\xd4\x06\x2b\xa9\ \xa8\x54\x59\x2a\xa6\xc8\x66\xb3\x68\x9a\x86\x65\x59\x18\xba\x81\ \x61\x94\x6f\x43\x93\x82\xf7\xbc\xe7\x3d\xdc\x74\xd3\x4d\x5c\x7b\ \xed\xb5\x9c\x7b\xee\xb9\xbc\xfd\xed\x6f\xa7\xbb\xbb\x9b\x75\xeb\ \xd6\x71\xcb\x2d\xb7\xf0\xfc\xf3\xcf\x73\xe5\x95\x57\xf2\x9d\xef\ \x7c\x87\x77\xbc\xe3\x1d\x5c\x70\xc1\x05\xdc\x7f\xff\xfd\xdc\x78\ \xe3\x8d\x74\x76\x76\xf2\xcc\x33\xcf\x70\xcf\x3d\xf7\x50\x53\x53\ \x43\x34\x1a\x65\x7a\x7a\x1a\xd7\x30\xd0\x34\x0d\xcd\x12\x64\xb2\ \x19\xb2\xd9\xac\xaf\x3a\x3d\xcf\xf3\x1f\x3b\x8e\x43\x38\x12\x26\ \x18\x31\xd1\x34\x8d\x67\x8b\x7b\x78\xef\x35\x31\x04\xe5\x80\xd2\ \x4a\x98\x38\x13\x61\xac\x91\x10\xee\x6c\x60\xde\x31\x91\x04\x83\ \xc1\x37\x8f\xca\x9a\x9c\x9c\x5c\xf4\xfe\xf7\xbf\xff\xcc\x58\x2c\ \xc6\xe6\xcd\x9b\x29\x16\x8b\xb2\x54\x2a\x09\x05\x82\xeb\xba\x38\ \x8e\xc3\xdc\xdc\x1c\x42\x08\x74\x7d\xfe\xf4\x0a\x81\xe6\x69\x48\ \x24\x77\xdd\x75\x17\x89\x44\x82\x5b\x6f\xbd\x95\xab\xae\xba\x8a\ \xbe\xbe\x3e\xce\x39\xe7\x1c\x76\xec\xd8\xc1\x65\x97\x5d\x86\xe7\ \x95\x7d\xd0\x6f\x7d\xeb\x5b\xdc\x70\xc3\x0d\x7c\xe1\x0b\x5f\x20\ \x91\x48\xd0\xd3\xd3\x43\xb1\x58\x64\x66\x66\x86\x93\x4f\x3e\x99\ \xde\xde\x5e\x3a\x3b\x3b\x59\xbc\x78\x31\x9f\xfa\xd4\xa7\x58\xb5\ \x6a\x15\x67\x9f\x7d\x36\xae\xeb\xf2\x9e\xf7\xbc\x87\x87\x1e\x7a\ \x88\x52\xa9\x74\xd0\x59\x38\xcc\xd1\x70\xe7\x1d\x0a\xdb\xb6\x49\ \x26\x93\x94\x92\x73\xec\xb8\x37\x87\xe7\x49\x14\xfd\x22\xca\x11\ \x3e\xd6\x8c\x81\x35\x11\xf0\xf9\xb3\xea\xea\xea\xaf\x4b\x29\x09\ \x87\xc3\xcf\x4d\x4d\x4d\x7d\xff\x75\x05\xa4\xb9\xb9\x99\xc9\xc9\ \x49\xf5\x67\xde\xb6\xed\xca\x53\x27\xd4\xc9\x53\x5f\x58\x79\x50\ \x0a\x90\xaa\xaa\x2a\x2e\xbd\xf4\x52\x7e\xfc\xe3\x1f\xf3\xde\xf7\ \xbe\x17\x21\x04\x17\x5d\x74\x11\xdf\xf8\xc6\x37\x78\xf0\xc1\x07\ \xf9\xc8\x47\x3e\xc2\xf6\xed\xdb\xe9\xef\xef\xe7\xea\xab\xaf\xa6\ \x58\x2c\xa2\x69\x1a\x0f\x3e\xf8\x20\x3f\xfc\xe1\x0f\xf1\x3c\x8f\ \x45\x8b\x16\x71\xf1\xc5\x17\x63\x9a\xe5\xd3\x7c\xc5\x15\x57\x70\ \xd9\x65\x97\xf1\xe8\xa3\x8f\xb2\x60\xc1\x02\xaa\xaa\xaa\x08\x85\ \x42\xe4\x72\x39\xee\xbd\xf7\x5e\x22\x91\x08\x23\x23\x23\xec\xdf\ \xbf\xdf\x77\xa7\x93\xc9\x24\x8e\xe3\xf8\xae\xb2\xeb\xba\x68\x9a\ \x46\xa9\x54\xe2\xc0\x81\x03\xac\x3f\xff\xa2\x32\x18\x48\xa6\xf4\ \x04\x9d\x2b\x4c\xbc\x94\x89\x9b\x31\xf1\xaa\x4d\x64\x87\x86\xd0\ \x24\x18\x52\x22\xf9\xa4\x61\x18\x6c\xdd\xba\xf5\x47\xaf\x3b\x20\ \x93\x93\x93\x34\x36\x36\xfe\xd5\x89\x27\x9e\xf8\xdd\x7c\x3e\x8f\ \xeb\xba\x12\x10\x95\x7e\x7e\xa5\x97\x25\x84\x40\x08\x81\xb2\x2f\ \xb7\xdf\x7e\x3b\xd9\x6c\x96\xb5\x6b\xd7\xf2\xf4\xd3\x4f\xb3\x7e\ \xfd\x7a\xf6\xec\xd9\x83\xe3\x38\x3c\xf6\xd8\x63\x3c\xfa\xe8\xa3\ \xe4\xf3\x79\x5a\x5a\x5a\xfc\xd3\x5c\x28\x14\x58\xb0\x60\x01\xa1\ \x50\x88\x42\xa1\x40\x2a\x95\x22\x1a\x8d\xfa\x6a\x23\x10\x08\xf0\ \xc0\x03\x0f\x30\x37\x37\x47\xa9\x54\x92\x37\xdd\x74\x93\x08\x04\ \x02\x65\x6f\x4b\xd3\x48\xa5\x52\xe8\xba\xce\xc2\x85\x0b\xf9\xb7\ \x7f\xfb\x37\x3e\xf3\x99\xcf\x90\x4c\x26\xfd\xf7\x2b\x69\x0e\x04\ \x02\xbe\xb4\xcc\xcc\xce\x20\xa5\x24\xe7\x96\x08\x5f\x18\x47\x76\ \x04\xd1\x84\x86\xa6\x79\x48\xcd\xc3\xc9\xe8\xd8\xe3\x21\x52\xbf\ \xae\x13\xe8\x12\xc3\x30\x90\x52\xda\xaf\x24\x46\x39\x6a\x95\x65\ \x59\x56\x57\x5b\x5b\x1b\x73\x73\x73\xd8\xb6\x2d\x94\xf1\x56\x31\ \x80\x94\xd2\x3f\x7d\xae\xeb\x72\xdd\x75\xd7\x71\xf5\xd5\x57\xb3\ \x61\xc3\x06\x76\xed\xda\xc5\xfa\xf5\xeb\x79\xf2\xc9\x27\x71\x1c\ \x87\xeb\xaf\x2f\xf3\x8b\x13\x13\x13\x48\x29\xfd\x6b\xec\xdb\xb7\ \xef\x90\x6b\x1e\x38\x70\x40\x6d\xa0\xed\x38\xce\x01\x29\x25\xba\ \xae\x5b\xf9\x7c\xfe\xf2\xb1\xb1\xb1\x29\x80\x40\x20\x70\x49\x73\ \x73\xf3\xed\xb9\x5c\x8e\x42\xa1\x40\x2c\x16\xe3\xda\x6b\xaf\xa5\ \xa3\xa3\x83\x6d\xdb\xb6\xf1\xdd\xef\x7e\x97\x91\x91\x11\x9a\x9a\ \x9a\x7c\x42\xd2\x71\x1c\x92\xc9\x24\xae\xeb\xd2\xd0\xd0\x70\x30\ \x20\x9d\x97\xfc\xfd\x07\x46\x30\xa7\x1c\x06\x83\xd0\x12\x5c\x4a\ \x20\x28\x38\x90\x1e\x44\x22\x11\x1e\x94\xe2\x63\x88\x79\xc6\x3f\ \x9f\xcf\xff\x49\x73\x73\xf3\x63\x9a\xa6\x69\xf1\x78\x7c\xdd\xeb\ \x66\x43\xa4\x94\x56\xa9\x54\xc2\xb6\x6d\x3f\xbe\x80\x72\xf0\x96\ \x4e\xa7\x31\x4d\x13\x21\x04\xa5\x52\x89\x70\x38\xcc\xdf\xfe\xed\ \xdf\xf2\xf4\xd3\x4f\xd3\xdc\xdc\xcc\x8f\x7e\xf4\x23\x1e\x7f\xfc\ \x71\x06\x07\x07\x0f\x01\x20\x12\x89\xfc\xe1\xa4\x8d\x10\x58\x96\ \xb5\x4f\xd3\xb4\x21\x40\x3a\x8e\xb3\x2b\x1e\x8f\x7f\xfa\x0f\xbd\ \x36\x12\x89\x7c\x7b\xeb\xd6\xad\xff\x09\x48\xdb\xb6\xb3\x8b\x17\ \x2f\x1e\x6d\x68\x68\x88\x28\x09\xb9\xef\xbe\xfb\xe4\x97\xbe\xf4\ \x25\xf1\xbd\xef\x7d\x8f\x0f\x7c\xe0\x03\x7c\xe8\x43\x1f\xe2\xf3\ \x9f\xff\x3c\xdb\xb7\x6f\xf7\x3d\xae\x4a\xa7\x24\x91\x48\x70\xf6\ \x9a\xb3\x70\x1c\x07\x81\x60\xd4\x1c\xe3\x84\xf3\xa0\x6d\x7a\x39\ \x4e\x22\x84\x1d\x0f\x21\x5b\xe6\xe3\x14\x43\x02\xb4\x18\x86\xd1\ \xb2\x71\xe3\xc6\xa3\x8a\xe0\x5f\x36\x20\x75\x75\x75\xd7\xae\x59\ \xb3\xe6\x1f\x07\x07\x07\x43\x8e\x53\x66\x55\x75\x5d\x3f\x24\xde\ \xb0\x2c\x8b\x40\x20\xc0\x0d\x37\xdc\xc0\x8a\x15\x2b\xb8\xe6\x9a\ \x6b\xb8\xfe\xfa\xeb\xb9\xf0\xc2\x0b\x19\x1e\x1e\x66\x3e\x39\x44\ \x2c\x16\x3b\x12\xe8\x2e\x20\x85\x10\x64\x32\x99\x6f\xc4\xe3\xf1\ \xaf\x1c\xe9\xfe\xd2\xe9\x74\x1e\xf0\x93\x4e\xa3\xa3\xa3\xeb\x47\ \x46\x46\xcc\x79\xe9\xf9\xc7\xf1\xf1\xf1\xd3\x2e\xb8\xe0\x02\x12\ \x89\x04\xb7\xdd\x76\x1b\x13\x13\x13\x2c\x5e\xbc\x98\xe7\x9f\x7f\ \x9e\x7c\x3e\x8f\x6d\xdb\x14\x0a\x05\xd4\x77\x73\x5d\x97\x42\xa1\ \x50\xfe\x4e\xc2\xa0\xd0\x33\x81\xb6\xa0\x16\xad\x36\x47\xf4\x14\ \x0d\xa9\x49\xa4\x0d\x4e\x32\xc0\xec\xcf\xeb\xf1\x8a\x9a\x52\x5d\ \x1c\x8d\xea\x32\x8e\x42\x55\xb5\x2d\x5c\xb8\xb0\x7e\x6c\x6c\xcc\ \xb7\x17\x95\x34\x87\x4a\x0c\x01\xac\x5f\xbf\x9e\xbe\xbe\x3e\x4c\ \xd3\x64\xf3\xe6\xcd\x3c\xf5\xd4\x53\x04\x83\x41\x82\xc1\xa0\x4f\ \x8f\x1c\x8e\x81\xb2\x45\x55\x55\x55\x6c\xd9\xb2\xa5\x3d\x99\x4c\ \x4e\xbc\x12\x9d\x9c\xc9\x64\x7e\xa3\x1e\x87\xc3\xe1\x4b\x0e\x1c\ \x38\x60\x00\x9e\xeb\xba\x27\xde\x70\xc3\x0d\xd1\xaf\x7c\xe5\x2b\ \xf4\xf6\xf6\xd2\xd1\xd1\xc1\x9d\x77\xde\xc9\xfa\xf5\xeb\x29\x14\ \x0a\xbe\x5d\x71\x1c\x07\xc7\x71\x98\x9d\x9d\xc5\x2e\x59\x94\x4a\ \x3a\x2f\xf4\xe7\x79\xfb\xc2\x0b\x89\x85\xa3\x3c\xbe\xef\x3f\x08\ \xe9\xd5\xd8\x64\xc9\x1f\xb0\x91\x0e\x68\x9a\x86\x69\x9a\xf4\xf4\ \xf4\xdc\x9d\x4c\x26\x37\x8d\x8c\x8c\xdc\xf9\x9a\x49\x88\x52\x43\ \x95\xbe\xbb\xd2\xc1\xb6\x6d\xb3\x70\xe1\x42\xee\xb9\xe7\x1e\x3e\ \xfc\xe1\x0f\xf3\xaf\xff\xfa\xaf\xfc\xdd\xdf\xfd\x1d\xc1\x60\xb0\ \xcc\x3b\xcd\x4b\x90\xe7\x79\xa8\xbc\x83\x52\x13\xf3\xf6\x40\xa4\ \x52\xa9\x87\x80\x84\xae\xeb\xe9\x70\x38\x6c\x2b\xc3\xab\xa4\xea\ \x95\xac\x44\x22\x71\x6d\x22\x51\x0e\xa8\xeb\xeb\xeb\x9f\x8c\xc5\ \x62\x67\xdf\x7c\xf3\xcd\x8c\x8f\x8f\x73\xfb\xed\xb7\xb3\x73\xe7\ \x4e\x02\x81\x80\x4f\x5c\x56\x7e\xbf\xe9\xe9\x69\xba\xbb\xbb\xcb\ \x81\xab\x2b\x79\x7c\xfc\x71\xba\xcf\x09\xd2\xae\xb5\xe2\x4e\x84\ \xf0\x52\x0b\xa1\xed\x10\x72\x15\x5d\xd7\xaf\xec\xef\xef\xd7\x5f\ \x2b\x40\x42\xef\x7b\xdf\xfb\xf6\x1e\x38\x70\xa0\x5a\x89\xb2\xa2\ \x46\x94\xeb\x29\xa5\xe4\xd3\x9f\xfe\x34\x4f\x3d\xf5\x14\xf3\x5c\ \x0f\x1f\xfc\xe0\x07\xa9\xa9\xa9\x79\x49\x17\x30\x4d\x93\x2d\x5b\ \xb6\x7c\x3e\x93\xc9\xbc\xaa\xfc\xd0\x8b\x48\xfa\x8d\x03\x03\x03\ \xf5\x9a\xa6\x59\x52\xca\xff\xf5\x4f\xff\xf4\x4f\x6b\x6f\xba\xe9\ \x26\x2c\xcb\x62\xdd\xba\x75\xec\xdb\xb7\x8f\xb1\xb1\x31\x5f\x8d\ \x39\x8e\xe3\xb3\xc6\x39\xaf\x44\xdb\x7b\x4a\x84\xdb\xa1\xd0\x3c\ \x8b\x01\x04\xb5\x08\x6e\x09\x28\x98\x4c\xfd\xa4\x11\x61\x78\x18\ \x86\xe1\xc7\x50\xaf\x05\x20\xf5\xd5\xd5\xd5\x0b\x75\x5d\xf7\x25\ \xa4\x50\x28\x50\x2c\x16\x09\x04\x02\x84\xc3\x61\x34\x4d\xe3\x27\ \x3f\xf9\x09\x57\x5c\x71\x05\xb5\xb5\xb5\x14\x8b\x45\xdf\x5b\x39\ \x5c\x1a\xd4\xdf\xba\xae\x93\x4e\xa7\x77\x1a\x86\xf1\xb8\xeb\xba\ \x4e\x24\x12\x89\x67\x32\x99\xd7\x14\x0c\x4d\xd3\xc8\x66\xb3\xbf\ \xcb\x66\xb3\xea\x34\x5f\x61\x18\x06\xb7\xdc\x72\x0b\x86\x61\xc8\ \xbb\xee\xba\x4b\xac\x5e\xbd\xda\x7f\xbd\x72\xe3\x95\x26\xc8\x14\ \x73\x44\xb6\xe7\x98\xfa\x7d\x9a\xcb\xcf\xf8\x5b\x5c\xbd\xc0\x43\ \xbd\xdf\xa6\x29\xdc\xc5\x44\x66\x88\xb9\xb1\x22\xc2\x28\x5f\x67\ \x66\x66\x66\x51\x34\x1a\xfd\xcb\x5c\x2e\x77\xdf\xab\x02\x48\x85\ \xde\x76\x95\xaf\xae\x44\xd9\xb2\x2c\xf2\xf9\x3c\xed\xed\xed\x3c\ \xf4\xd0\x43\xbc\xff\xfd\xef\x67\xdf\xbe\x7d\x5c\x77\xdd\x75\x04\ \x02\x01\x34\x4d\xfb\x43\x55\x20\x87\x7c\x7e\x38\x1c\x26\x1e\x8f\ \x3f\x35\x33\x33\x73\xc3\xeb\x95\x46\x3e\xfc\xd4\xa6\xd3\xe9\xcd\ \x3b\x76\xec\x08\x7a\x9e\xa7\xb7\xb4\xb4\xbc\xff\xe9\xa7\x9f\x46\ \xd7\x75\x84\x10\x84\xc3\xe1\x43\x54\x97\x69\x9a\x9c\x7d\xda\x1a\ \xa4\x07\xae\x74\xd9\xd6\xbb\x11\xd3\xd0\x59\xea\x9c\x83\x3b\x23\ \x58\x6a\x2f\x86\xd5\xaa\x9e\x47\x02\xac\x29\x14\x0a\x6b\xee\xbe\ \xfb\xee\x57\x07\x90\x78\x3c\x4e\x6b\x6b\xeb\x59\xb6\x6d\x7f\x40\ \xc5\x15\x2a\x12\x37\x8c\x32\x0f\x55\x53\x53\xc3\xe6\xcd\x9b\x31\ \x4d\x93\x9d\x3b\x77\x1e\x02\xc0\x4b\x4a\x9e\x04\x02\x6f\x68\x39\ \x52\x2a\x95\xba\x03\xb8\x03\x08\x2c\x5e\xbc\xb8\xf4\x37\x7f\xf3\ \x37\x4c\x4e\x4e\xb2\x61\xc3\x06\xba\xba\xba\xf8\xee\x77\xbf\x4b\ \xb1\x58\x2c\xb3\xc2\xc5\x22\xf1\x78\x1c\x21\x04\x1b\x53\xbd\xfc\ \xd9\xa7\xab\xf1\x5c\xf0\x7c\xb0\xc1\x1a\x0b\x52\xe8\x8d\x61\x8d\ \x05\x01\xf9\x62\x0e\xcc\xd1\xab\xac\x50\x28\xf4\xd7\x67\x9e\x79\ \xe6\x95\x96\x65\x49\xd7\x75\x85\xba\x39\xcf\xf3\x38\xef\xbc\xf3\ \xd8\xbd\x7b\x37\xdf\xf8\xc6\x37\xe8\xea\xea\xf2\x6d\x8b\x0a\xb8\ \x0c\xc3\xf0\xa3\x60\x29\xcb\xd1\xac\xa2\x42\xb6\x6d\xdb\x16\x01\ \x0a\xbc\x79\x96\x4c\x24\x12\x39\xd3\x34\xa5\x6d\xdb\xe1\x0d\x1b\ \x36\xe8\x3f\xf8\xc1\x0f\x7c\x49\xaf\xe4\xe6\x00\x2c\xcd\x25\x54\ \x25\x88\x26\x4f\xe7\x86\x0b\x3f\xcb\x23\x83\xdf\x61\x60\x6c\x90\ \xd2\xa9\x93\x4c\xe4\x0b\xe4\x86\x34\x10\xf2\x65\x1d\xd0\x97\x04\ \x5d\x57\x57\xd7\x7d\x2b\x56\xac\xf8\xb0\x6d\xdb\xec\xdf\xbf\x9f\ \x68\x34\x4a\x3c\x1e\xe7\x93\x9f\xfc\x24\x1d\x1d\x1d\xfc\xcb\xbf\ \xfc\x0b\xe1\x70\xd8\x57\x49\xca\xc0\x7b\x9e\x57\x66\x59\xe7\xf3\ \x20\x95\x2e\x71\x3e\x9f\x67\xef\xde\xbd\xe1\x7c\x3e\x5f\xe4\x4d\ \xb8\xea\xea\xea\x1e\x3b\xe5\x94\x53\xce\x5d\xbe\x7c\x39\x5b\xb7\ \x6e\x65\x7a\x7a\x9a\xd6\xd6\x56\xa4\x94\x64\x32\x19\x16\x2d\x5a\ \x84\x8e\x86\x53\x82\xa2\x57\xc4\xa5\x84\x69\x47\xd0\x8d\x79\x35\ \x6d\x82\x30\xfc\x78\x4a\x9a\xa6\x29\xb6\x6f\xdf\xbe\x7a\x6c\x6c\ \x6c\xf3\x2b\xb5\x21\x31\xcf\xf3\xaa\xd4\xe9\x70\x5d\xd7\x67\x6b\ \xe3\xf1\x38\xe7\x9c\x73\x0e\x37\xdd\x74\x13\xdb\xb6\x6d\x23\x97\ \xcb\x31\x37\x37\x47\x2a\x95\x22\x10\x08\xd0\xda\xda\xca\xd8\xd8\ \x18\x63\x63\x63\xac\x58\xb1\x82\x6d\xdb\xb6\x51\x2c\x16\x7f\x35\ \x3e\x3e\x7e\x6b\x2c\x16\x4b\xd7\xd7\xd7\x97\xf2\xf9\xfc\x9b\x11\ \x0f\x84\x10\x01\xdb\xb6\x79\xe2\x89\x27\xe8\xee\xee\x96\x97\x5c\ \x72\x89\xb8\xeb\xae\xbb\xa8\xad\xad\xc5\xf3\x3c\x9f\x47\x1b\xd5\ \x67\x68\xff\x8b\x59\x16\x34\x06\x70\xf2\x56\x39\xcb\x38\x15\xc2\ \x9a\x08\x22\x0b\x3a\x5e\x5e\x07\x10\xd1\x68\x14\xc3\x30\x9c\x57\ \xac\xb2\xea\xeb\xeb\x6f\x6f\x6c\x6c\xfc\x53\xe5\xea\x2a\x40\xba\ \xba\xba\x78\xf6\xd9\x67\xd9\xb4\x69\xd3\x8b\xbe\x77\x74\x74\xd4\ \x97\x9a\xde\xde\x5e\x62\xb1\x18\x81\x40\x60\x72\xff\xfe\xfd\x4f\ \xcf\xcd\xcd\xf9\x69\xd7\x37\xe3\x72\x1c\xe7\xf3\x03\x03\x03\xcd\ \xb6\x6d\xaf\x59\xb3\x66\xcd\xb5\x43\x43\x43\x18\x86\x71\x48\x7e\ \x07\x20\x65\xe5\x38\xb3\x39\x4a\x21\x2f\x79\xd7\x09\xef\xa3\xaf\ \x6a\x33\xe9\x8e\x19\x40\x50\x18\x36\x99\xf9\x45\x0d\xe8\x65\xf2\ \xf3\x55\xb1\x21\xae\xeb\x46\x94\xfb\xaa\x0a\x0b\xde\xfd\xee\x77\ \x33\x3a\x3a\xca\x63\x8f\x3d\x46\x38\x1c\xf6\xcb\x3c\x15\xbd\xae\ \x0c\x7e\x85\x6b\x5b\x2e\x09\x75\x5d\xd2\xe9\x74\x94\x37\xf9\xaa\ \xae\xae\x26\x9d\x4e\xff\xf7\x3c\x37\xe6\x0e\x0d\x0d\x5d\x9b\x4c\ \x26\x51\x55\x33\x9e\xe7\xd1\xdf\xdf\x4f\x55\x55\x15\x86\x67\xb3\ \xed\x6b\x36\x94\xa2\xcc\xd5\xed\x44\x0a\x93\x78\xca\x21\x60\xea\ \x14\x0b\x19\x9c\x54\x39\x3d\x3d\x35\x35\x45\x2c\x16\xfb\x61\x53\ \x53\xd3\x0d\x53\x53\x53\x8f\x1e\x35\x20\x52\x4a\x57\x49\x86\xb2\ \x07\x13\x13\x13\xdc\x78\xe3\x8d\x7c\xf5\xab\x5f\xe5\xf6\xdb\x6f\ \x67\x78\x78\x98\x93\x4f\x3e\x99\x99\x99\x19\xe2\xf1\x38\x35\x35\ \x35\x3c\xff\xfc\xf3\x68\x9a\xc6\x49\x27\x9d\xc4\x96\x2d\x5b\xc4\ \xe8\xe8\xe8\x13\xd3\xd3\xd3\xeb\x00\x16\x2e\x5c\xc8\xf8\xf8\xf8\ \x9b\x16\x10\xc5\x02\xcf\x4b\xb7\xa9\xb2\x9c\xab\x56\xad\x92\xa3\ \xa3\xa3\x22\x99\x4c\xd2\xd0\xd0\xc0\xc9\x27\x9f\x5c\x26\x23\x3d\ \x1b\x4e\x9a\xa1\xa6\xae\x80\x97\x0e\x50\x93\x5a\x84\x97\x36\x71\ \x53\x06\xb4\x80\xd0\xa5\x22\x3e\x4f\xba\xf7\xde\x7b\x1b\x8e\x5a\ \x42\x9a\x9a\x9a\x16\xbb\xae\xfb\x6e\xe5\x39\x05\x02\x01\x02\x81\ \x00\x43\x43\x43\x6c\xd8\xb0\xc1\xf7\x9a\x00\x7e\xff\xfb\xdf\xfb\ \x39\xf3\xca\x78\x63\xd3\xa6\x4d\x84\x42\x21\xff\x75\xc0\x9b\x1a\ \x8c\x3f\x10\x44\x3e\xba\x65\xcb\x96\xb5\x81\x40\xe0\xea\xf3\xce\ \x3b\xef\x8a\x1f\xfc\xe0\x07\x7e\x6a\x21\x93\xc9\x20\x3d\x8f\x31\ \x99\xe0\x8c\xb7\x39\xd8\x8e\x4b\x55\xa8\x86\x82\x9b\x41\xe8\xe5\ \x82\xbe\xfc\xae\x18\xe9\x67\x6a\x40\x1c\x74\x72\xfe\xe8\xf5\x8e\ \x40\xcc\xad\x89\x44\x22\x0b\x5d\xd7\x25\x99\x4c\x22\xa5\xe4\xfa\ \xeb\xaf\xa7\x58\x2c\x12\x0e\x87\x89\x44\x22\x3e\x48\xa1\x50\x88\ \x60\x30\x48\x38\x1c\x26\x1c\x0e\x13\x0a\x85\x08\x85\x42\xc4\x62\ \xb1\x43\xbc\xab\xb7\xda\xca\x64\x32\x93\xa5\x52\xe9\x49\x4d\xd3\ \x46\xbe\xf5\xad\x6f\x1d\x22\x3d\x7e\x32\x4e\xba\x80\xc6\x62\x79\ \x11\x9f\x59\x7d\x37\x7f\x7f\xee\x8f\x18\xde\xe3\xd2\x11\x5b\x8e\ \x08\x96\x6b\xcf\x14\x7b\x7c\xa4\x98\xe4\x8f\x3e\x1b\x0e\x87\xaf\ \x5c\xb2\x64\xc9\xdd\x00\xc9\x64\x92\xa6\xa6\x26\x7e\xf2\x93\x9f\ \x30\x3d\x3d\xcd\x43\x0f\x3d\xc4\xfe\xfd\xfb\x59\xb7\x6e\x1d\x8f\ \x3c\xf2\x08\x2b\x57\xae\x24\x91\x48\x30\x38\x38\x48\x4f\x4f\x0f\ \x8d\x8d\x8d\xfc\xf0\x87\x3f\xa4\x58\x2c\xce\xbc\xf0\xc2\x0b\x8d\ \xcd\xcd\xcd\x81\xc9\xc9\xc9\xd2\x5b\x15\x98\x9a\x9a\x9a\x2f\xac\ \x5e\xbd\xfa\xa6\xd1\xd1\x51\x92\xc9\x24\xa1\x50\x88\xd3\x4f\x3f\ \x9d\x40\x20\x80\x04\x02\x86\x86\x74\x02\x38\x5e\x09\xc3\x30\x71\ \xa4\x8d\xa6\x97\x6b\xcf\x64\x05\x31\x30\x3c\x3c\x1c\x7f\xfa\xe9\ \xa7\x17\x1e\x95\xca\xd2\x34\x2d\xac\x54\x90\xae\xeb\x84\x42\x21\ \x3e\xf9\xc9\x4f\xd2\xd9\xd9\xc9\x0b\x2f\xbc\x80\x94\x92\xde\xde\ \x5e\x74\x5d\xf7\xf3\x1c\x00\x8f\x3c\xf2\x08\xae\xeb\xaa\x82\x06\ \x09\xc8\xb7\x32\x18\xf3\x74\xcb\xcf\x9e\x79\xe6\x99\xfd\x0b\x17\ \x2e\xbc\xbd\xbd\xbd\x3d\x3a\x3a\x3a\xea\xf3\x79\x1e\x1e\xdb\xeb\ \xfb\x38\xeb\x2f\x22\x18\x19\x13\x37\x6d\xa0\xa7\x82\xb8\x29\x03\ \x37\x6d\x60\x8d\x85\x10\x02\xc5\x68\x9b\x47\x6d\x43\x42\xa1\xd0\ \xa7\x65\xd9\xaa\x8b\x25\x4b\x96\xe0\x38\x0e\xf9\x7c\x9e\x3d\x7b\ \xf6\xf8\xd1\xab\xe2\x7c\x82\xc1\xa0\x9f\x94\x51\x65\x9b\x80\x4c\ \xa5\x52\x36\xc7\xc0\xca\x64\x32\xcf\x02\xcf\x1a\x86\xf1\x8f\x23\ \x23\x23\x51\x4d\xd3\x0e\x26\xe5\xa4\x43\xfd\x42\x03\xe1\xea\x2c\ \x6a\x3c\x85\x9a\x45\x55\xbc\x30\xb5\x89\x58\xa0\x96\xbc\x3e\xc5\ \xc8\x57\x5b\x11\x5a\x99\x50\x55\x99\xd5\xa3\x02\x44\x4a\x29\xa4\ \x94\xa2\x54\x2a\xf1\x89\x4f\x7c\x02\xc3\x30\xb8\xe8\xa2\x8b\xf8\ \xf2\x97\xbf\x8c\x69\x9a\x18\x86\x41\x2a\x95\x62\x64\x64\x84\xee\ \xee\x6e\x86\x87\x87\x49\xa7\xd3\xf4\xf7\xf7\x93\xcd\x66\xc9\x64\ \x32\x7f\x33\x30\x30\xf0\x0d\x8e\xa1\xa5\x3c\x4d\x28\xe7\xf8\xa5\ \x94\xb8\x48\x3c\xf2\x3c\xbb\xab\xc8\xa2\x77\x76\xf1\xf0\xf3\x4f\ \x10\xab\x8f\x12\x88\x2e\x66\xd7\xcc\x5e\x52\xa3\x36\x9a\x56\x3e\ \xa4\x85\x42\xa1\xee\xa8\x6d\x48\x7d\x7d\x7d\x7f\x53\x53\xd3\x52\ \xd7\x75\xa9\xab\xab\xe3\x8a\x2b\xae\xa0\xb7\xb7\xd7\x2f\x36\xf0\ \xdb\x0a\x4a\x25\x42\xa1\x10\xa5\x52\x89\x6c\x36\x4b\x34\x1a\x25\ \x95\x4a\x91\xcd\x66\xaf\x3b\xd6\x00\x69\x69\x69\xf9\x8c\x10\xe2\ \xb3\x42\x88\xba\x95\x2b\x57\xfa\xb9\x9e\xa2\x67\x11\x3a\x39\x85\ \xe1\x18\x78\xd3\x11\x9c\xc9\x30\x68\x1e\x42\x13\x2a\xd7\x8e\x94\ \x92\xe9\xe9\x69\x1e\x7b\xec\x31\x71\xb4\x71\x88\x50\x74\xb5\xae\ \xeb\xdc\x75\xd7\x5d\x87\x24\xa3\x2a\xdd\x5b\x15\xb9\x9a\xa6\x89\ \x6d\xdb\x32\x16\x8b\x89\x74\x3a\xad\x1f\x4b\x60\x54\x57\x57\x33\ \x31\x31\xf1\xa5\xd6\xd6\xd6\x6b\x81\x3a\xcf\xf3\xca\x44\xa9\xd0\ \x78\xac\xb8\x9d\xbf\x5c\xd5\x84\x23\x6d\x2c\xb7\x44\xcc\x08\xe3\ \x66\x74\xbc\x54\x90\xdc\xce\x18\x56\x3c\xf0\x07\xa9\xff\x97\xe5\ \xf6\x02\xa6\x6d\xdb\x5c\x70\xc1\x05\x34\x36\x36\x72\xf5\xd5\x57\ \xd3\xd4\xd4\x84\x69\x9a\x2c\x5e\xbc\x98\x8e\x8e\x0e\x4c\xd3\xa4\ \xb1\xb1\x91\x64\x32\x49\x2e\x97\x43\xd7\x75\xe2\xf1\xb8\xd8\xbd\ \x7b\xf7\x2f\x32\x99\xcc\x2f\x8f\x25\x40\x94\xcb\x2b\xe6\x4f\xa1\ \x4a\x45\x58\x96\x85\xd0\xca\xe5\xa6\xef\x8c\xfd\x35\x5f\x5c\xf7\ \x30\xcb\x6a\xcf\x64\x79\xc3\xd9\x44\x3b\x25\xc4\x4a\x07\x1b\x8c\ \x5e\x89\x0d\x01\xc4\x7c\x76\x8d\x7b\xef\xbd\x97\xa1\xa1\x21\xf6\ \xec\xd9\x83\x69\x9a\xd4\xd7\xd7\x93\xcd\x66\xd1\x75\x9d\xce\xce\ \x4e\x6a\x6b\x6b\xd9\xbb\x77\x2f\x3d\x3d\x3d\x64\x32\x19\x0a\x85\ \xc2\xe6\x78\x3c\xde\xcb\x31\xb8\x1c\xc7\x91\x7e\x57\x30\xa0\x21\ \xd0\x43\x82\x7d\x7b\x93\xfc\xcb\xff\xb8\x9c\xeb\x1e\x7c\x37\x77\ \x5f\xb6\x99\xc9\xb9\x69\x9e\x4b\xfc\x17\xdf\xfb\xd5\xbd\x58\x96\ \xe6\x07\x94\xaf\x88\xcb\xd2\x34\x8d\x81\x81\x01\x2e\xba\xe8\x22\ \x0a\x85\x82\xaf\x0b\x2b\xcb\x5c\xfa\xfa\xfa\xfc\xc7\x4f\x3f\xfd\ \xf4\x21\x51\xf9\xb1\xb8\x66\x66\x66\xde\xd5\xd2\xd2\x32\xa5\x78\ \x2d\x81\x40\x84\x05\x85\x9c\x47\x38\x74\xd0\xab\x75\x5c\x87\xc7\ \x87\xfe\x03\xcf\x95\xbe\xbd\x7d\xa5\x12\x42\x20\x10\xa0\xbe\xbe\ \x9e\x40\x20\xa0\xaa\x14\x09\x06\x83\x64\x32\x19\x6a\x6a\x6a\xfc\ \xbc\xba\xca\xa9\x67\x32\x19\x2c\xcb\xb2\x81\xb1\x63\x15\x10\xd7\ \x75\xb3\xf3\x92\x52\xa6\x43\x28\xe7\x80\x62\x31\x13\xdb\x02\xd7\ \x9b\xef\x08\xc6\xc5\xf5\x1c\x3c\xd7\xc5\xb2\xbc\x57\x0e\x88\xe7\ \x79\xac\x5b\xb7\x8e\x2b\xaf\xbc\x92\x33\xce\x38\x83\x87\x1f\x7e\ \x98\xdf\xfd\xee\x77\xe4\xf3\x79\x26\x26\x26\x38\xe3\x8c\x33\x98\ \x9c\x9c\xa4\xaf\xaf\x0f\xcf\xf3\x68\x6c\x6c\xe4\x85\x17\x5e\xc0\ \xf3\xbc\x7d\xf1\x78\xfc\xdf\xdf\x0c\x93\x11\x5e\xab\x35\xcf\x64\ \x4b\xcb\xb2\x84\x40\x20\x34\x9d\xa5\xcb\xea\x79\x64\xeb\xcf\xf9\ \xcc\x39\xdf\xe2\xbf\xf6\x7c\x13\x27\x17\xe6\xbc\xc5\x1b\xe8\x75\ \xbe\x43\xa9\xe4\x1c\xa2\x55\x8e\x5a\x42\x36\x6e\xdc\xc8\xf4\xf4\ \x34\x35\x35\x35\x0c\x0c\x0c\xf8\x28\x4b\x29\xf9\xe9\x4f\x7f\xea\ \x57\x92\x78\x9e\xc7\xd4\xd4\x94\x2a\xae\x16\xc0\x31\x0b\x06\x60\ \x15\x0a\x85\xd9\x42\xa1\x50\x9f\x4c\x26\xd1\x84\x46\xbe\xd9\xa3\ \x68\x55\xf1\x1f\x43\x7f\xcf\x27\x63\xdf\xe3\x40\xae\x9f\xe7\x27\ \x7e\x87\x11\xd0\x98\x19\x4b\x31\x37\x57\xae\x43\x50\x99\xd5\xa3\ \x06\xc4\x30\x0c\x46\x47\x47\x19\x1e\x1e\x46\xd7\x75\xdf\xe5\xd5\ \x34\xcd\xff\x5b\x45\xed\x2a\x0f\x32\x39\x39\xd9\xd2\xda\xda\xfa\ \xbe\x78\x3c\xfe\xc8\xb1\xaa\xb5\x84\x10\x96\x4a\x57\xab\x86\x1e\ \x23\x28\xa8\x22\xc2\x1d\x8f\x5d\x4b\xb2\xcf\x63\x66\x6f\x81\x52\ \xd2\x23\x37\xe9\x22\x34\xe1\xef\xd3\x51\x03\x12\x8d\x46\xf9\xc8\ \x47\x3e\x42\x7f\x7f\x3f\x17\x5f\x7c\x31\x4f\x3c\xf1\x04\x43\x43\ \x43\xd4\xd5\xd5\xe1\x38\x8e\xef\x06\x8e\x8c\x8c\x90\x4c\x26\x69\ \x69\x69\x61\x72\x72\x92\x5c\x2e\x57\x4d\xb9\x18\xe6\x98\x03\xa4\ \xa5\xa5\x45\x55\xe9\x4b\x75\x08\x6b\x6b\x6b\x31\x87\x8b\x3c\x71\ \x63\x9a\x42\xc2\x2d\x77\xec\x6a\x20\xf4\xb2\x0f\x66\x98\xf8\x07\ \xf6\x48\xf4\xfb\x1f\x05\x24\x12\x89\x30\x35\x35\xc5\xa7\x3e\xf5\ \x29\xa4\x94\x6c\xdc\xb8\x91\xba\xba\x3a\x6a\x6b\x6b\x71\x5d\x97\ \xd1\xd1\x51\xba\xba\xba\xfc\xc6\x97\xb6\xb6\x36\x72\xb9\x9c\x02\ \xca\x3b\x16\x45\x63\x62\x62\x82\xf6\xf6\xf6\xef\x06\x02\x81\x46\ \xd7\x75\xb9\xe3\x8e\x3b\x58\xb7\x6e\x1d\x5f\xfb\xda\xd7\x38\x70\ \xe0\x00\x9e\xe7\x91\xc9\x64\x30\x0c\x83\xd9\xd9\x59\xaa\xab\xab\ \x09\x85\x42\x0c\x0f\x0f\x53\x28\x14\x38\x52\x0d\xc1\x91\xd8\x5e\ \x7e\xf1\x8b\x5f\xf0\xf3\x9f\xff\xfc\x45\x5f\x53\x69\x27\x76\xed\ \xda\x45\x24\x12\x79\x49\xc6\xeb\xad\xbc\x02\x81\xc0\xda\x55\xab\ \x56\x19\xbf\xff\xfd\xef\x59\xb1\x62\x05\x7d\x7d\x7d\xac\x5d\xbb\ \x96\xef\x7f\xff\xfb\xf4\xf4\xf4\x30\x36\x36\x46\x57\x57\x17\x8f\ \x3c\xf2\x08\xd5\xd5\xd5\xb4\xb7\xb7\x73\xda\x69\xa7\x71\xdf\x7d\ \xf7\x1d\x31\x37\xf4\x47\x15\x5a\x6b\x6b\xeb\x70\x55\x55\xd5\x09\ \x95\x84\x5a\xa9\x54\x22\x12\x89\xf8\x95\x25\x91\x48\x84\x5c\x2e\ \x87\xe7\x79\xd4\xd5\xd5\xf9\xd2\xd2\xde\xde\x6e\xcf\xcd\xcd\xdd\ \xb3\x67\xcf\x9e\xab\x8f\x35\x40\x16\x2d\x5a\x34\x78\xea\xa9\xa7\ \x9e\x38\x31\x31\xc1\x92\x25\x4b\x58\xb3\x66\x0d\xbf\xfc\xe5\x2f\ \x29\x95\x4a\x04\x02\x01\xb2\xd9\x2c\xe1\x70\x98\x74\x3a\xed\xef\ \x9b\xe7\x79\xe4\x72\x39\x5c\xd7\x65\xe7\xce\x9d\x47\xc7\x65\x45\ \xa3\x51\xeb\x9b\xdf\xfc\x26\xa9\x54\x8a\x0f\x7c\xe0\x03\xdc\x7f\ \xff\xfd\xf4\xf6\xf6\xd2\xd0\xd0\x40\x55\x55\x15\xcf\x3d\xf7\x1c\ \x55\x55\x55\xf4\xf5\xf5\x31\x31\x31\x41\x57\x57\x17\x23\x23\x23\ \x0c\x0f\x0f\xe3\x38\x8e\x29\x84\x30\x8f\x41\x30\xfe\x2a\x10\x08\ \xd4\xcd\xcc\xcc\x20\x84\x60\x68\xdf\x10\x03\x03\x83\x18\xc6\xa1\ \x27\xdf\x1f\x86\x33\x1f\x77\x08\x21\x08\x85\x42\xfe\xff\x3f\x2a\ \x40\x74\x5d\xe7\x73\x9f\xfb\x1c\x5f\xfc\xe2\x17\xb9\xf5\xd6\x5b\ \xd9\xb1\x63\x87\x5f\x75\x91\xcf\xe7\xd1\x75\xdd\xaf\x46\x71\x1c\ \x87\xe1\xe1\x61\x3f\x8a\x9f\x77\x8d\xbd\x79\x49\x3b\x66\x5c\xe0\ \xb6\xb6\xb6\x7f\x5c\xba\x74\x69\x3d\xc0\x8e\x5d\xcf\xe3\x35\xa5\ \x89\x04\x4c\x64\x26\x80\xb4\x34\x3c\x4b\x43\xda\x1a\x42\x48\x5f\ \xff\x48\x29\xc9\xe7\xf3\x94\x4a\x25\x7f\x48\xc2\x2b\x8a\xd4\x6f\ \xbe\xf9\xe6\x17\xe3\x74\x7c\x5b\xa3\x7a\xb5\x43\xa1\x90\x7f\x32\ \x34\x4d\xbb\x72\xe9\xd2\xa5\x17\x0d\x0c\x0c\x34\x1e\x2b\x12\x62\ \x59\x96\xae\x5a\xbc\xc7\xab\xf3\xfc\xf9\x27\x1a\x70\x0f\xa3\xa7\ \x3c\x07\xb2\x5b\xaa\xc9\xef\x89\xa2\x6a\x7b\x67\x67\x67\xc9\x66\ \xb3\x94\x4a\xa5\xc4\x51\xb3\xbd\x63\x63\x63\xf7\x37\x35\x35\x71\ \xe9\xa5\x97\x72\xd3\x4d\x37\x71\xd6\x59\x67\xd1\xda\xda\x8a\x2a\ \xd5\x3f\xef\xbc\xf3\x68\x6f\x6f\x07\xca\xad\xd2\x4b\x96\x2c\x61\ \x72\x72\xd2\x77\x8b\xab\xab\xab\xe9\xe8\xe8\x38\x56\x24\x23\x02\ \x2c\xcc\xe7\xf3\x7a\x32\x99\x2c\x37\x28\x15\x2c\x32\x13\x25\xc4\ \xd0\x32\x3e\xdc\xf6\x45\x4e\x64\x0d\xda\x44\x3b\x6e\xca\x24\x53\ \x4a\x91\x9c\x2b\x33\xe0\xaa\xb7\xe4\xa5\xd4\xf8\xfe\x51\x09\xb1\ \x6d\xbb\xdf\xb2\x2c\xd6\xae\x5d\xcb\xb2\x65\xcb\x18\x1f\x1f\xa7\ \x54\x2a\x31\x37\x37\x47\x73\x73\x33\xe9\x74\x9a\xda\xda\x5a\x52\ \xa9\x14\x93\x93\x93\x54\x57\x57\xa3\xeb\x3a\xaa\x87\xc4\xb6\x6d\ \x4c\xd3\x94\x15\x4e\xc2\x5b\x56\x75\xe5\xf3\xf9\x8f\xfd\xe9\x9f\ \xfe\xe9\x97\x4d\xd3\x04\x29\xc9\xd8\x45\xde\xbd\x68\x39\xa9\x9f\ \x19\xcc\x15\x53\xfc\xc3\xc3\x5f\xc6\xd0\x0d\x34\x43\x20\x58\x80\ \xae\xc1\x82\x46\x9d\xa1\xa1\x21\x1a\x1b\x1b\x29\x16\x8b\x04\x83\ \x41\xe9\x79\x5e\xf8\x15\xd1\xef\x63\x63\x63\x6c\xd8\xb0\x01\xc3\ \x30\xfc\xfc\xb9\x5a\x83\x83\x83\xbe\xc1\x02\x78\xee\xb9\xe7\x30\ \x4d\x93\x4a\xe2\xcd\x75\xdd\xaa\x95\x2b\x57\xde\x35\x35\x35\x35\ \x18\x8f\xc7\xff\xe1\xad\x2a\x21\x9e\xe7\xd5\x29\x16\xbb\x20\x6d\ \xec\x35\x23\x2c\xe8\x89\xe1\xe2\x22\x6d\x70\x27\xa2\x58\x93\x01\ \x9c\xc9\x20\x56\xdc\xf0\xab\xde\x55\x43\x6c\x2a\x95\xa2\xb9\xb9\ \x59\x14\x8b\xc5\xab\xda\xda\xda\x18\x1b\x1b\x7b\xf9\x2a\x4b\xd3\ \x34\x4f\xa9\x9e\x48\x24\x42\x30\x18\xf4\xeb\xb0\x54\xd7\xd4\xe1\ \x35\x58\x6a\x7a\x82\x6a\x03\x03\x42\x3d\x3d\x3d\x57\x01\x7f\x72\ \x0c\xd8\x8f\x72\xff\xa1\x65\x51\x57\x13\xa2\x54\x70\x38\x77\xc1\ \x5f\xf3\xde\x25\x57\x10\x68\xb5\xa8\x7f\x9b\x43\xd5\x79\x09\x4a\ \x79\xfb\xe0\x4c\xc8\xf9\x7a\x2c\x55\xa0\x2e\x84\x08\xbe\x18\x18\ \x47\x94\x90\xaa\xaa\xaa\x7b\xc7\xc6\xc6\xd6\x7f\xf6\xb3\x9f\xfd\ \xf3\x9a\x9a\x1a\x2e\xbd\xf4\x52\x6e\xbb\xed\x36\x92\xc9\x24\x2b\ \x57\xae\xc4\xf3\x3c\x7e\xf9\xcb\x5f\xb2\x72\xe5\x4a\x76\xec\xd8\ \x01\x40\x30\x18\xa4\x58\x2c\x92\xcd\x66\xfd\xc1\x01\xf3\xae\x9e\ \xfb\x56\x54\x5d\xa1\x50\xe8\x2f\xd6\xaf\x5f\x7f\xff\x7c\x25\x8d\ \x74\x5d\x29\xc2\x55\x3a\xde\x2f\x1a\xc8\x08\xc9\x03\xda\x6f\x40\ \x80\xa6\x75\xfa\xef\xa9\xae\xd7\xd8\xbc\x79\x33\xcb\x96\x2d\xf3\ \x5b\xe1\x94\x2a\x3f\x52\xd0\xfc\x47\x01\x99\x9a\x9a\x92\x8b\x16\ \x2d\xb2\x1e\x78\xe0\x01\x3e\xfe\xf1\x8f\x73\xf3\xcd\x37\xd3\xd7\ \xd7\x87\xa6\x69\xc4\xe3\x71\x3f\x25\xb9\x65\xcb\x16\x0a\x85\x02\ \xc9\x64\x92\xe6\xe6\x66\x9f\x7c\x54\xee\xaf\x6d\xdb\x84\xc3\xe1\ \x33\x2e\xbc\xf0\xc2\x67\x06\x06\x06\xfe\x7b\x70\x70\xf0\xd6\xb7\ \x90\xaa\x0a\x29\x9b\x68\x08\x5d\x0c\x9d\xb0\x8b\x77\x9c\x5f\x85\ \xeb\xb9\xd8\x29\x0d\xd2\x11\xdc\xb4\x81\x9b\x34\x29\x0e\x86\x91\ \xae\x00\xb7\xac\xde\x2b\xa7\xd7\x05\x02\x01\x12\x89\xc4\xf3\x86\ \x61\xec\x7b\x45\x6e\xaf\x94\x52\x73\x5d\x97\x2f\x7d\xe9\x4b\x7e\ \xbd\x95\xf2\x16\xa4\x3c\xb4\x5d\x4b\xd3\x34\xa6\xa7\xa7\x7d\xf1\ \x54\xdd\x46\xf3\x11\x6c\x4d\x7d\x7d\xfd\x3b\x6b\x6b\x6b\xf7\xbe\ \x45\x48\xc4\xda\xfa\xfa\xfa\x25\x89\x44\x62\xd1\x7c\xd2\x0d\x5d\ \x6a\xe8\x96\x20\x35\x24\xa9\xd3\x4e\xa4\xb5\xae\x9a\x01\x6f\x3b\ \xa2\x4a\x43\x54\x0b\x72\x2f\x54\xe3\x15\x35\x7f\x22\xc5\xc1\xd9\ \x92\x52\xb5\x32\x7c\x73\x6a\x6a\xea\x99\x57\x04\xc8\xec\xec\xec\ \x57\xb3\xd9\x6c\xe7\x35\xd7\x5c\xf3\xae\x42\xa1\xc0\xbb\xde\xf5\ \x2e\x1e\x78\xe0\x01\x3c\xcf\x63\xc1\x82\x05\x8c\x8f\x8f\x13\x0e\ \x87\x89\xc5\x62\x3c\xf3\xcc\x33\xb4\xb7\xb7\xd3\xd2\xd2\x42\xb1\ \x58\xf4\x49\xb6\xca\x51\x15\x2f\xb7\x4d\xf8\x8d\x5a\xc5\x62\xf1\ \xe3\xa7\x9f\x7e\xfa\x3f\x28\x43\x5e\x92\x16\xc1\x06\x87\xa6\xd9\ \xb7\x23\x9e\x13\xe4\x80\x1c\x0e\x01\x4e\xf5\xdf\xd3\xde\x64\xb0\ \x7b\xf7\x6e\xbf\x15\x43\x55\xe2\xa8\x34\x05\xe5\x39\x8d\x47\xaf\ \xb2\x0c\xc3\x20\x9d\x4e\x6f\x5e\xb8\x70\xe1\xd0\xbe\x7d\xfb\xde\ \xf5\xef\xff\xfe\xef\xf4\xf7\xf7\xb3\x74\xe9\x52\x0c\xc3\xf0\xdb\ \xa3\x0d\xc3\x20\x1a\x8d\x72\xca\x29\xa7\x30\x37\x37\x47\x43\x43\ \xc3\x21\x05\x65\xaa\x49\x74\x9e\x07\xfb\xe0\x25\x97\x5c\x72\xfe\ \xcc\xcc\x8c\xd8\xbe\x7d\x7b\x77\x3a\x9d\x4e\xbc\x59\x40\xa8\xb4\ \x6d\x9e\xe7\x99\xf9\x7c\x1e\x21\x04\x79\xb7\x04\xe7\x1e\x60\xf1\ \xb2\x30\xd2\x03\x69\xcf\x47\xe4\x96\x86\x3d\x6d\x92\x7a\xbc\x0e\ \x29\x5c\xbf\xa1\x47\x1d\xc0\x64\x32\x49\x30\x18\x44\xd3\x34\x19\ \x08\x04\x84\x65\x59\xe6\x2b\x02\xa4\x22\x12\x17\x7d\x7d\x7d\xac\ \x5b\xb7\xce\x37\x50\x87\x97\x8d\x2a\xf5\x25\x84\xe0\xd7\xbf\xfe\ \xf5\xc1\x21\x65\x9a\x46\xb1\x58\xf4\x01\x11\x42\x84\x0d\xc3\x08\ \xd7\xd6\xd6\x62\x59\xd6\x9b\x8a\x16\x8e\xc7\xe3\x9c\x72\xca\x29\ \xff\xa7\xb9\xb9\xb9\xb3\x54\x2a\x75\x64\xd2\x69\xf0\x34\x1c\xcf\ \xc3\x78\xb2\x96\xa1\xcd\x82\xf9\x56\xe7\x0a\x5e\xd6\x25\x3b\x33\ \x4d\x75\x4d\x95\xdf\x61\xe6\xcf\x1b\xb6\x6d\x42\xa1\x10\xba\xae\ \x8b\x4d\x9b\x36\x9d\x58\x5f\x5f\x3f\xf1\x8a\x00\x51\xab\x54\x2a\ \x4d\x99\xa6\x39\xaa\xeb\x7a\x7b\x53\x53\x13\x86\x61\xf8\xdc\x8c\ \x9a\x5f\x15\x0a\x85\x7c\x23\xaf\x8a\xe9\xd4\x00\x80\xd9\xd9\x59\ \x7f\xca\x8e\x9a\xdb\xeb\x38\x0e\x5d\x5d\x5d\xd7\x04\x02\x81\xec\ \xc4\xc4\xc4\xf3\x53\x53\x53\x4f\xbe\xd1\x52\x31\xef\x59\x5e\xb0\ \x60\xc1\x82\x7a\x80\x84\x9d\xa6\x7a\xcd\x2c\xf5\xd5\x21\x9c\xc9\ \x30\xce\x64\x08\x59\xd2\xf1\x4a\xe5\xb9\xbe\x78\xe5\xc3\x18\x6d\ \x29\x77\x07\x54\x4e\x5d\x55\xd9\x53\x55\x74\x2e\xa5\xdc\x37\x33\ \x33\x73\xc4\xfb\x79\x49\x95\x85\xf9\x7c\xfe\xbf\xc7\xc7\xc7\x7f\ \xdc\xd4\xd4\xf4\x3f\xef\xbe\xfb\x6e\x56\xad\x5a\xe5\xab\xa3\x0f\ \x7d\xe8\x43\x4c\x4e\x4e\xb2\x7c\xf9\x72\xba\xba\xba\x98\x99\x99\ \x61\xed\xda\xb5\xac\x5e\xbd\xda\x1f\x4a\xa6\x5a\xdb\x22\x91\x88\ \x3f\x24\xcc\xf3\x3c\x5a\x5b\x5b\xcf\xef\xea\xea\x7a\xdf\xee\xdd\ \xbb\xf3\xc5\x62\xf1\x0d\xc9\x2e\x66\xb3\x59\x5a\x5b\x5b\x3b\xab\ \xaa\xaa\xde\x56\x5d\x5d\xdd\x68\x9a\xe6\x47\xa5\x94\xc1\x42\xa1\ \xc0\xae\xe4\x10\x4b\x4f\x35\x28\x16\x2c\x1c\x23\x87\x57\x9b\xc2\ \x6b\x48\x22\x9b\x67\x29\x58\x79\x72\xe3\xf8\x55\xed\x2a\x05\x91\ \x4e\xa7\x7d\xb2\x55\x0d\xda\x89\xc5\x62\x0c\x0f\x0f\xbf\x24\xcf\ \xf2\x65\x15\x50\x85\x42\x21\xae\xbd\xf6\x5a\x6a\x6a\x6a\x18\x1f\ \x1f\x47\x4a\xc9\xee\xdd\xbb\xf1\x3c\x8f\x7d\xfb\xf6\xf9\x0d\x29\ \x3f\xfd\xe9\x4f\x7d\x35\xa6\x69\x9a\x6f\x6f\x94\x28\x2b\x5e\xa7\ \x62\x60\x66\x8d\xa6\x69\x4b\x01\xb1\x70\xe1\xc2\xf8\xe8\xe8\x68\ \xe6\xf5\x04\x25\x14\x0a\xdd\xb2\x6a\xd5\xaa\xbf\x2a\x47\xca\x1a\ \x33\xcc\xb1\xa0\x5d\x67\xdd\x64\x0f\xf6\x6f\xcc\x72\x4b\x9a\x06\ \x68\x07\x35\x6c\x58\xc0\xc4\xec\x10\x4d\x4d\x4d\xfe\x58\xc0\xca\ \x31\xb8\xaa\xa0\x21\x9f\xcf\x3f\x3e\x3d\x3d\x7d\xdb\x4b\xbd\x97\ \x97\x05\x88\xda\xd4\x44\x22\x21\x3d\xcf\x13\xf3\x5c\x15\xba\xae\ \x53\x2c\x16\x0f\xe9\x51\x57\x34\x8b\x4a\x68\x25\x93\x49\x66\x66\ \x66\xa8\xa9\xa9\xc1\xb2\x2c\x4c\xd3\x54\x80\xc8\xce\xce\xce\x8f\ \x2c\x59\xb2\xe4\x23\xba\xae\xf3\xab\x5f\xfd\xea\x2a\xe0\xee\xd7\ \x41\x55\xb5\xa5\xd3\xe9\xf3\x3c\xcf\x2b\xe5\x72\xb9\xe5\xaa\x63\ \x38\x65\xe7\x09\xaf\x4c\xa1\x05\x83\xd0\x25\x91\x96\xc0\x4d\x99\ \x38\x49\x03\x37\x69\x10\xf6\x6a\xa9\xae\xa9\x46\x7a\xd2\xb7\x8b\ \xba\xae\xfb\x83\xdc\x94\x33\x54\x31\x28\xe1\xc0\xe8\xe8\xe8\x6f\ \x5f\x0b\x40\xe2\x5b\xb7\x6e\x0d\x06\x83\xc1\x5b\x3e\xf1\x89\x4f\ \xdc\x78\xf6\xd9\x67\x73\xfe\xf9\xe7\xf3\xed\x6f\x7f\x9b\xed\xbb\ \x25\x5f\xa5\x00\x00\x09\x83\x49\x44\x41\x54\xdb\xb7\xf3\x8e\x77\ \xbc\x83\x74\x3a\xcd\xe0\xe0\x20\x35\x35\x35\x3e\xaf\xb5\x7a\xf5\ \x6a\x9e\x7b\xee\x39\x1f\xac\xc3\x67\xf8\x5a\x96\x25\x94\x73\x30\ \xdf\x22\xd7\xd1\xdd\xdd\x7d\x86\x94\x92\x99\x99\x99\x3d\x13\x13\ \x13\xaf\x49\x23\x7b\xa1\x50\xf8\xcb\xcb\x2e\xbb\xec\x9f\x55\xbb\ \x72\x51\x2b\x12\xad\x13\x60\xe9\x78\x25\x0d\x99\x2e\xdb\x88\xb2\ \x62\x97\xc8\x06\x30\x9a\x0d\xb6\xef\xd8\x46\xc8\x3a\x98\x62\x50\ \x87\x2b\x99\x4c\x22\x84\xf0\x0f\x9c\x65\x59\x04\x83\x41\x6c\xdb\ \x7e\x59\x73\x46\x5e\x0e\x20\x92\xf2\xcf\x4d\x38\xdb\xb7\x6f\x47\ \x4a\xc9\x8f\x7f\xfc\x63\xa6\xa7\xa7\xf1\x3c\x8f\x07\x1e\x78\xc0\ \x4f\x5e\x55\x8e\xca\xdb\xb4\x69\x93\x5f\xfe\xa2\x4e\x4e\xa1\x50\ \x38\xc4\x45\xac\x9c\xd5\x78\xea\xa9\xa7\xde\xd6\xd1\xd1\x71\x5b\ \x24\x12\xe1\xe1\x87\x1f\x5e\x05\x6c\x7d\x15\xa5\xe2\x03\xc0\x69\ \xe5\xbd\x74\xdf\xbd\x73\xe7\xce\xf2\xc8\x0c\xcf\x41\x9c\x90\xa6\ \xa6\x74\xa8\x57\x6a\x27\x75\xec\xf1\x20\x26\x21\x9a\x9b\x9b\x39\ \xfc\xc7\x04\x0e\x3f\x5c\xca\x33\x8d\xc5\x62\x64\xb3\x59\x06\x07\ \x07\xfb\x75\x5d\x1f\x78\xad\x00\xf1\x1d\x81\x50\x28\xc4\xb6\x6d\ \xdb\xfc\x69\xa4\xaa\x5d\x41\x75\x54\x55\x26\xf2\x95\x64\xa8\xea\ \x8b\x5c\x2e\x47\xb1\x58\xf4\xd9\xe3\x4a\xcf\x4b\x4d\x11\x4d\xa7\ \xd3\x78\x9e\x47\x47\x47\xc7\x7f\x9e\x74\xd2\x49\x45\xd7\x75\xf5\ \xde\xde\xde\x3b\xe2\xf1\xf8\xd7\x5e\xce\x8d\x1e\x36\xce\x96\x6c\ \x36\x7b\xcd\x65\x97\x5d\x76\x61\x36\x9b\x45\x08\x41\xa2\x76\x5c\ \x76\x2e\x33\x85\x15\x0f\xe3\xcc\x04\x91\x19\xd3\xf7\x68\xa5\xe7\ \x21\x35\x49\x78\x69\x98\x8d\x9b\x36\x52\x5b\x5b\xeb\x03\x52\x39\ \xe4\x53\x4d\xe9\x56\x71\x57\x30\x78\x70\x5c\xfa\xf4\xf4\xf4\xb2\ \x97\xcb\xdd\xbd\x6c\x40\x74\x5d\xbf\xfb\xc9\x27\x9f\x7c\x4a\xd7\ \xf5\x2b\x2f\xba\xe8\xa2\xcb\xd6\xae\x5d\x4b\x5b\x5b\x1b\x9b\x36\ \x6d\x22\x9d\x4e\x93\x4c\x26\x99\x9b\x9b\x43\xd7\x75\x4e\x38\xe1\ \x04\x86\x87\x87\x99\x98\x98\xe0\xf4\xd3\x4f\xe7\x85\x17\x5e\x38\ \x04\x34\xdb\xb6\xfd\x21\x36\xa5\x52\x89\x60\x30\xe8\x7f\x61\xdb\ \xb6\xa9\xab\xab\xeb\x54\x3f\xfe\xb2\x6b\xd7\xae\x75\xe1\x70\x78\ \x06\xd0\x82\xc1\x60\x21\x99\x4c\x3e\x70\xa4\x7b\x9d\x9c\x9c\xe4\ \xe4\x93\x4f\x7e\x7c\xd1\xa2\x45\x6b\x95\x5d\xdb\x37\xb6\x57\x06\ \x82\x9a\x90\x05\x03\x7d\x26\x22\x0e\xf4\x83\xd0\x6c\x84\x66\xe3\ \x7a\xae\x1f\x3f\x00\xd4\xd4\xd4\xa0\xe9\x07\x8b\x3b\x2a\x01\x51\ \x01\xaf\x2a\x5c\x38\xf1\xc4\x13\x89\xc7\xe3\x94\x4a\x25\xaa\xaa\ \xaa\x0e\x99\x52\xf1\x72\x88\xd4\x97\x0d\xc8\xdc\xdc\xdc\x20\x30\ \x58\x53\x53\x73\xd6\xce\x9d\x3b\x59\xbe\x7c\x39\x03\x03\x03\xfe\ \x54\x4f\x25\xca\xae\xeb\x32\x36\x36\xe6\x73\x5d\x3b\x76\xec\xf0\ \xdb\xe0\x54\x10\x39\x37\x37\xc7\xe1\xe3\x65\x2b\xb8\x2f\x7f\x13\ \x00\xd9\xdd\xdd\x7d\xc9\x8a\x15\x2b\x2e\x01\xd8\xbf\x7f\x7f\x7e\ \x74\x74\xb4\x65\x5e\x45\xe8\x53\x53\x53\x4f\xba\xae\x1b\x9f\xe7\ \x8d\x16\xb5\xb5\xb5\x6d\xac\x2c\xd9\xac\xdc\x10\xe9\x49\xa1\xa4\ \x40\x49\x29\xc0\xf4\xf4\x34\x3d\x3d\x3d\x7e\x2c\x31\x3b\x3b\x5b\ \xe6\xaf\xe6\x27\x53\x54\x8e\x16\x51\x80\x54\xd2\x22\x4b\x96\x2c\ \x61\x7a\x7a\x9a\x52\xa9\x34\x37\x35\x35\x35\x52\x2c\x16\x9d\xa3\ \x51\xab\xaf\xa8\x6f\xa0\xad\xad\x8d\x8d\x1b\x37\x02\xfc\xc1\x59\ \x1e\x55\x55\x55\x87\xe7\x57\x08\x85\x42\xb8\xae\xcb\xd4\xd4\x94\ \x1f\xd9\x2b\x5d\xac\x86\x84\x29\x09\x51\x7f\x03\x22\x97\xcb\x31\ \x31\x31\xa1\xf4\x74\x64\xc5\x8a\x15\x5f\x57\xc4\xdd\xd6\xad\x5b\ \xa9\xae\xae\xf6\x83\xd0\xe9\xe9\xe9\x3f\x58\xb2\xe9\x38\x0e\x17\ \x5e\x78\xa1\xef\x11\x8d\x8f\x8f\xd3\xd8\xd8\xe8\xdf\xbf\x72\x5d\ \x95\x3a\x52\x3f\xb1\xa1\xa6\xe2\x29\x57\x5d\x55\x8e\xa8\x61\x97\ \xba\xae\x33\x32\x32\xa2\x00\x7a\x78\xf7\xee\xdd\x97\x1f\xed\x9e\ \x1e\x35\x20\x9e\xe7\x7d\xed\xd9\x67\x9f\xfd\xb1\x65\x59\x2b\x7b\ \x7a\x7a\xee\xbd\xf5\xd6\x5b\x69\x6b\x6b\xe3\x67\x3f\xfb\x19\x3b\ \x76\xec\x40\x08\x41\x36\x9b\x65\xd9\xb2\x65\xf4\xf6\xf6\xfa\xcd\ \x3d\x8d\x8d\x8d\xec\xdb\xb7\xcf\xd7\xbb\x8a\xda\x3e\x3c\xd2\x55\ \x29\x60\xe5\x4e\xab\x0d\x52\x41\xa6\xda\x14\x29\x25\xad\xad\xad\ \xb4\xb5\xb5\x21\x84\x60\x72\x72\x92\xd6\xd6\x56\x3f\x0e\xd8\xbb\ \x77\xaf\x9f\xd7\xdf\xb5\x6b\x97\xcf\xbf\xa9\x93\x7f\xb8\x81\x56\ \xb4\x90\xf2\x9e\x0e\xf7\x0c\xd5\xf5\x01\x9f\x48\x1d\x1c\x1c\x64\ \x6e\x6e\x8e\xaa\xaa\x2a\x2a\x87\x76\xbe\xae\x80\x64\x32\x99\x29\ \x60\x4a\xd7\xf5\x2a\x4d\xd3\xf8\xdc\xe7\x3e\x47\x43\x43\x03\x89\ \x44\xc2\xff\x52\x52\x4a\x26\x26\x26\x0e\xa1\xeb\x15\x58\xb1\x58\ \x8c\xee\xee\x6e\xe2\xf1\xb8\xaf\x12\x2a\x87\x6b\xaa\x7f\x4a\x8a\ \x94\xe1\xaf\xcc\xb1\x54\x66\xf2\x14\x11\xa8\x0c\xad\x72\x34\x14\ \xeb\xac\xdc\x54\xc5\x38\x2b\xf0\xd5\xe7\xa8\x83\xa0\x3c\xc2\xca\ \xc2\x84\xf9\xa1\x39\xfe\xf7\x50\x0e\xcc\xb2\x65\xcb\xe8\xeb\xeb\ \xc3\x30\x0c\xe2\xf1\xf8\x1d\x42\x08\xaf\x50\x28\x3c\xf3\x86\x00\ \x52\xa1\x86\x9c\x52\xa9\x54\x0c\x87\xc3\xc5\x64\x32\x19\x8d\x46\ \xa3\x66\x30\x18\x44\xd7\x75\x7f\x34\xac\x3a\x65\xca\xb0\xaa\x4d\ \x53\xd5\x8f\x2a\x9a\xd7\x75\xdd\x4f\xff\x56\x66\xd6\x54\x4f\xb8\ \x92\x10\x21\x84\x2f\x21\x95\x3a\x5e\x01\xa7\x1c\x05\xe5\xc1\xa9\ \x4d\x57\xaa\x47\x01\xa2\xc6\xc1\x56\x3e\xa7\x0e\x40\x25\x20\x95\ \x3f\xb7\x51\x55\x55\xe5\x17\x5c\xff\xf6\xb7\xbf\x25\x12\x89\x10\ \x89\x44\xd8\xb7\x6f\x9f\x3f\x33\xb2\xa9\xa9\x89\xa9\xa9\xa9\x37\ \x06\x10\xdb\xb6\x9f\xdb\xbe\x7d\x7b\x18\xa0\xbe\xbe\xfe\x37\xdd\ \xdd\xdd\xe7\x7d\xec\x63\x1f\xe3\xc9\x27\x9f\x64\x60\x60\xc0\x4f\ \x61\x2a\x43\xaf\x36\x44\xd7\x75\xb2\xd9\xac\xcf\xf7\xd4\xd4\xd4\ \xf8\x06\x5f\xc5\x33\x2a\xda\xad\x54\x1b\x2a\xd9\xa3\x00\x3b\x7c\ \xde\x7c\xa5\x24\x05\x02\x01\x7f\x63\xd5\xa6\x2b\xe6\xf9\x70\x8f\ \x49\x5d\x4f\x79\x81\x4a\x22\x54\x1b\x9f\xca\x8b\x74\x76\x76\xb2\ \x7c\xf9\x72\x1e\x7b\xec\x31\x3c\xcf\xa3\xa5\xa5\xe5\xff\xe9\x1b\ \x3c\x5a\x30\x5e\x15\x40\x0e\xcb\x2e\x8a\xba\xba\x3a\xbe\xfe\xf5\ \xaf\x2b\xf1\x9e\xaf\xda\x2f\x9f\x3a\xd3\x34\xfd\xaa\x14\xb5\x02\ \x81\x00\x96\x65\x11\x8d\x46\xfd\xd3\xaf\x3c\x17\x55\x90\x66\xcc\ \xff\x20\x8b\xda\x74\xb5\xb9\xea\xfd\x95\x9b\x5e\x19\x6c\x2a\x37\ \xfa\x70\x3b\xa1\x24\x44\x49\x9d\x7a\x4e\xc5\x27\x6a\xf3\x95\x9d\ \x33\x0c\x83\x70\x38\x8c\xe3\x38\xc4\xe3\x71\x9f\x3c\xcc\x66\xb3\ \x0f\x0d\x0c\x0c\xfc\x4f\xf3\xf0\x2f\xf5\x46\xaa\xac\xc3\xd4\xd7\ \x1d\xbf\xf9\xcd\x6f\x1e\x14\x42\xc8\x40\x20\xf0\xc5\xf6\xf6\xf6\ \xea\x8b\x2f\xbe\x98\x1d\x3b\x76\xf8\x11\xbd\x3a\x89\xea\x34\x3a\ \x8e\x43\x6d\x6d\xad\x5f\xf7\x1a\x0a\x85\x58\xba\x74\x29\xd3\xd3\ \xd3\x87\x8c\x99\x2d\x16\x8b\xbe\xc4\xd4\xd6\xd6\x1e\x12\x78\x56\ \x06\x6b\x95\x12\x52\x59\xf5\xa1\x40\x54\xaf\x53\x00\xab\xc1\x6b\ \xa6\x69\xfa\x41\x9e\x72\xcf\x55\xb0\x17\x0e\x87\x59\xbd\x7a\x35\ \xdb\xb6\x6d\xf3\x55\x5b\x5d\x5d\x1d\x85\x42\x21\x93\xcb\xe5\x5e\ \xd5\x5f\x00\x7d\x55\x01\x99\x99\x99\xf9\x69\x45\x94\xfc\xbf\x63\ \xb1\x58\xf5\x43\x0f\x3d\xe4\x7b\x2b\x95\xbf\xb0\x73\x98\xc7\x46\ \x2a\x95\xa2\xaa\xaa\x8a\x33\xcf\x3c\x93\xfd\xfb\xf7\xfb\x9b\x52\ \x39\xa5\x4e\x01\xe2\xba\x2e\xa9\x54\x0a\x28\xf7\xb0\x28\x6f\x4c\ \x6d\xb4\x02\xa4\x72\x22\xb5\x02\x24\x9b\xcd\x1e\x32\x1d\x55\x1d\ \x8c\xea\xea\xea\x43\xae\x57\x5d\x5d\x4d\x43\x43\x03\x73\x73\x73\ \xa4\xd3\x69\xa2\xd1\x28\xae\xeb\x92\xcb\xe5\x0e\xec\xdd\xbb\xf7\ \x59\x21\x84\x0c\x06\x83\xbf\x79\xb5\x39\xb6\xd7\xac\x7f\xd9\x75\ \xdd\xe1\xfe\xfe\xfe\x1c\xe0\x09\x21\x4e\xd0\x75\xdd\xac\xae\xae\ \xf6\x0d\x7d\xc5\x80\x9a\x43\x0c\x78\x22\x91\xa0\xbe\xbe\x1e\xdb\ \xb6\x89\xc5\x62\x2c\x5d\xba\x94\xdd\xbb\x77\xfb\xaa\x43\xa9\x1b\ \x15\x67\x08\x21\xfc\x71\xe0\x6a\x38\x65\x65\x85\x79\x3e\x9f\xf7\ \xd5\x92\x4a\x03\x54\xb2\xd1\x4a\xdb\x68\x9a\x46\x4d\x4d\x8d\xff\ \x39\xea\xf5\x81\x40\x00\xd7\x75\x79\xea\xa9\xa7\x30\x0c\x83\x50\ \x28\xf4\x44\x2a\x95\xba\xfc\xb5\xda\xb7\xd7\x0c\x90\x44\x22\xe1\ \xcf\xea\xee\xec\xec\x1c\xe8\xec\xec\x5c\xf2\x12\xed\x90\x4f\x3f\ \x78\x9e\xc7\xc2\x85\x0b\x19\x1c\x1c\x24\x12\x89\xf8\x53\xa6\xfd\ \xde\xbe\x0a\x1a\x46\xd9\x1d\x65\xaf\x14\x58\x87\x4f\xd6\x56\x91\ \xb9\xa6\x69\xbe\x87\xa7\x24\xa8\xb3\xb3\x13\xc3\x30\x18\x1c\x1c\ \xf4\x27\x1f\xcd\x57\xce\xa4\x67\x67\x67\x9f\x13\x42\x78\x96\x65\ \x6d\x7e\x2d\xd3\x02\xaf\x4b\x87\x7f\x2e\x97\xfb\xfe\xf8\xf8\xf8\ \x02\xca\x6d\x6e\xef\x0b\x87\xc3\xcb\x8e\xd4\xaf\x3d\x33\x33\x43\ \x20\x10\xe0\x99\x67\x9e\xf1\x37\xf0\xec\xb3\xcf\x66\xe3\xc6\x8d\ \x68\x9a\xe6\xf7\xa8\x24\x12\x09\xbf\x92\x52\xd9\x0a\xd3\x34\x0f\ \x99\xbc\x1d\x0c\x06\x7d\x4f\xaf\xb5\xb5\x95\xd9\xd9\xd9\x72\xea\ \x35\x1a\x65\xe9\xd2\xa5\x0c\x0f\x0f\x93\xcb\xe5\xd0\x34\x4d\xfd\ \x57\x0a\x21\x84\xe3\x38\xaa\x23\x6c\xdf\xd0\xd0\xd0\xf9\x2f\x96\ \xf6\x7d\x4b\x01\x32\x3f\x90\xfe\x0b\x2a\x9f\x7c\xc2\x09\x27\xb4\ \x2e\x58\xb0\x60\x59\x45\xe4\x2b\xc5\x1f\xe0\x39\x2a\xd5\x98\x8a\ \x69\x2a\xf3\xf8\xd1\x68\xd4\x1f\x31\x58\x5f\x5f\xcf\xf2\xe5\xcb\ \xd9\xb3\x67\x0f\x75\x75\x75\xe4\x72\x39\x82\xc1\x20\xb9\x5c\x8e\ \x13\x4f\x3c\x11\x21\x04\xa9\x54\x8a\x44\x22\x41\x47\x47\x07\xef\ \x7c\xe7\x3b\xf9\xf5\xaf\x7f\x4d\xa1\x50\xa0\xa1\xa1\x81\xde\xde\ \x5e\x34\x4d\x63\xff\xfe\xfd\x4a\x8d\x89\xc1\xc1\xc1\x6f\x39\x8e\ \xb3\x0f\x70\x23\x91\xc8\xc0\xe1\xc5\x10\xaf\xd5\x7a\xdd\x67\xae\ \x6b\x9a\xb6\x40\xd3\xb4\xc8\xfc\xe3\x0f\x76\x77\x77\x7f\xe5\x48\ \xf3\x3f\x94\x3e\x57\x76\x27\x10\x08\xf8\x86\xd9\xb2\xca\x3f\xb3\ \x7a\xd5\x55\x57\x71\xdf\x7d\xf7\x11\x0e\x87\xa9\xad\xad\x65\x7a\ \x7a\xda\x9f\x3e\xb1\x61\xc3\x06\x7e\xfe\xf3\x9f\x33\x37\x37\x47\ \x57\x57\x17\xdd\xdd\xdd\x3c\xfe\xf8\xe3\xaa\x3a\xdf\x57\x6d\xea\ \xf7\x15\x5d\xd7\x25\x93\xc9\x9c\x1b\x8f\xc7\x1f\x7f\xbd\xf7\xe7\ \x0d\x1d\x82\x1f\x0e\x87\x4f\x6b\x6c\x6c\xbc\x4c\xd7\x75\x07\x20\ \x1a\x8d\x7e\x2a\x18\x0c\x1e\x71\xae\xaf\x9a\x60\xa7\xd4\xd3\xd8\ \xd8\x18\xd5\xd5\xd5\x38\x8e\xe3\xe7\x24\x14\xf1\x37\x31\x31\x41\ \x5d\x5d\x9d\x3f\x73\x38\x16\x8b\xf9\x81\x61\xa1\x50\xf0\x6d\xca\ \xfc\xe8\xf3\x43\x66\xd1\xbf\x11\xe3\x6c\xdf\xd0\x29\x31\x85\x42\ \x61\xc7\xc8\xc8\xc8\x8e\x0a\xdd\xec\x45\xa3\xd1\x2a\x29\xa5\xb4\ \x6d\xbb\xcb\x30\x8c\x3f\x3b\x52\xa3\xbd\xb2\x05\xca\x63\x2a\x16\ \x8b\x7e\x90\xa9\x62\x09\xf5\x6b\x9c\xd9\x6c\x16\xcf\xf3\x76\x4b\ \x29\x75\xd7\x75\xdd\x64\x32\xf9\xf7\xe3\xe3\xe3\x3f\x79\xb1\xcf\ \x7e\x23\xc6\xd9\xbe\xa1\x12\x72\x24\xed\x06\xf8\x9c\x7e\x2c\x16\ \xbb\x5a\xd3\xb4\xd8\x8b\x81\xa2\x96\x69\x9a\x3e\x95\x21\x84\x28\ \x00\x7b\x8b\xc5\x62\x56\x4a\x29\x63\xb1\x58\x66\x76\x76\x76\xfb\ \x61\x69\xdd\x63\x79\x04\xc8\xf1\x75\x7c\x1d\x5f\xc7\xd7\xf1\x75\ \x7c\x1d\x5f\xc7\xd7\xf1\x05\xc0\xff\x05\xf4\xe6\xb0\x9e\xc6\x6e\ \xd0\xb8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x3a\x79\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x1c\x1e\xba\x16\x7f\x4d\x00\x00\x20\x00\x49\x44\x41\x54\x78\ \xda\xed\xbd\x79\x9c\x5c\x55\x99\xff\xff\x3e\x77\xa9\x5b\xd5\xd5\ \xdd\xd5\xdd\xe9\x2d\x49\x77\xd2\x21\x1b\x09\x59\x00\x59\x02\x81\ \x08\x88\x40\x40\x10\x46\x5c\x66\x1c\xc1\x19\x01\xf9\x02\x83\xdf\ \x41\xe7\x0b\xe3\x38\x83\xc8\x57\x04\x74\x5c\x58\x64\x40\x51\x91\ \x4d\x04\xd9\x05\x21\x04\x08\x09\xd9\x43\x3a\x0b\x4d\xd6\x4e\xa7\ \xf7\xa5\xba\xf6\xed\xae\xe7\xf7\xc7\xed\xba\x49\x00\x35\x60\xc0\ \xef\xcc\x8f\xf3\x7a\xd5\xab\xb7\xea\x53\xf7\x9e\xe7\x9c\x67\xf9\ \x3c\x9f\xe7\xb9\xf0\xd1\xf8\x68\x7c\x34\x3e\x1a\x1f\x8d\x8f\xc6\ \x47\xe3\xa3\xf1\xd1\xf8\x68\xfc\x8f\x1f\xe2\x7f\xf2\xcd\x9d\x74\ \xd2\x49\x3b\xa7\x4c\x99\x32\x51\x4a\x89\x00\xa4\xad\x20\x25\xa0\ \x48\x50\x24\x42\xbc\x73\x05\x4a\xa5\x52\x78\xc9\x92\x25\x5f\x4c\ \xa7\xd3\x0f\xff\x35\xae\x59\xfb\x20\x26\xad\xaf\xaf\x5f\x94\xcf\ \xe7\x27\x1d\xf4\xae\x10\x02\xcf\xf3\xa8\xa9\xa9\x79\x6e\x70\x70\ \x30\x71\xa8\xae\x43\x55\xd5\xea\x42\xa1\x10\x01\xd8\x63\x0f\x32\ \xf3\x73\x05\x2a\xa3\x3a\x4e\x4a\xc3\x4b\x87\xf0\x72\xfe\xf7\x6e\ \x4a\xc3\x4d\x86\x00\xf0\x3c\x0f\x29\xa5\xf6\xd7\xda\x44\x1f\xc8\ \x07\xd7\xd5\xd5\xdd\xf5\xd9\xcf\x7e\x76\x36\x80\x27\x3d\xdc\x0a\ \x8b\xb0\xa1\x20\xad\xb1\x97\xad\x80\x1c\xdb\x9d\x63\x3b\xd4\x30\ \x0c\x1e\x7f\xfc\xf1\x63\x81\x43\x26\x10\x29\xa5\xb4\x2c\x0b\x01\ \x8c\xb8\x29\x3e\x16\xa9\x24\x24\xab\x38\xf6\x88\x05\x6c\x1f\x5d\ \x4f\x22\x93\xa4\xae\x2a\x42\x6e\xd8\x66\xf8\x77\x75\x07\x6c\x90\ \xff\x51\x02\xb1\x6d\xdb\x18\x1a\x1a\x02\x60\x67\xbe\x9f\x85\x57\ \x81\xed\xed\xbf\x50\x60\x0f\x86\x28\xee\x8c\x62\xee\x8e\x80\x90\ \x54\x55\x55\x81\x2f\xa6\x43\x36\x5c\xd7\xc5\xb2\x2c\x90\x20\x74\ \xf0\x84\xc3\x45\x33\xbe\xcf\x73\x3d\xb7\x71\xeb\x99\xbf\xe7\x47\ \x4f\xfe\x90\x89\xad\x1e\x4b\x06\x9e\xf1\xdf\x37\x26\x8c\xbf\xa6\ \x40\x94\x0f\x68\x5e\xcf\x34\x4d\x4c\xd3\xc4\x76\x5d\x74\x5d\x21\ \x37\x50\xc5\xb7\x3f\xfe\x5b\xce\x9e\x71\x31\x8a\x13\x61\xdc\xe4\ \x0a\x42\x93\xf3\x98\x25\x0b\xcb\xb2\x30\x4d\xf3\xa0\x17\xa2\xa5\ \xa5\xe5\xe0\x2e\xc2\xf3\xa4\x65\x59\xd8\xb6\x8d\x87\x24\x95\x31\ \x39\xfa\xf0\x23\xe9\x48\xaf\x40\x11\x0a\x9f\x38\xfa\x93\x54\x55\ \xc5\x50\x42\x12\xc7\x71\x30\x4d\x13\xc7\x71\xfe\xaa\x76\x4f\x7b\ \x1f\xea\xe8\xc2\x63\x8e\x39\xe6\x5f\x1c\xc7\xf1\x24\x12\x55\xaa\ \xb8\xb6\xf4\x45\xab\x48\x34\x5d\x75\x3b\x3b\x3b\x5b\x4d\xd3\xf4\ \x77\xa9\xe7\x62\x96\x14\xfe\xed\xcc\x3b\xf8\xe9\xfa\x6b\x38\xab\ \xf9\x1b\x4c\x51\xe2\x9c\x34\xeb\x28\xee\xde\x7e\xab\x2f\x08\x55\ \x12\x0a\x85\x90\xf2\xe0\x0e\x48\x6f\x6f\x2f\x6d\x6d\x6d\xab\x1a\ \x1b\x1b\x29\x1b\x6c\x3c\x05\x89\x24\x95\x4e\xd6\x4d\x39\x6c\xca\ \x0c\x45\x51\x40\x08\xa4\x2b\x11\x86\xcb\xdc\xfc\x14\x72\xbf\x84\ \xd3\x7e\xf6\x71\x2a\x42\xd3\x39\xf9\x8e\x93\xd1\x55\x0d\x81\x46\ \x28\x54\xc3\xce\x9d\x5b\x68\x6d\x6d\x45\x4a\x89\xeb\xba\x53\x43\ \xa1\xd0\x82\xf7\xb2\x2e\x15\x15\x15\x54\x57\x57\xaf\xe9\xee\xee\ \x96\x1f\xaa\x40\x2c\xcb\x9a\x7b\xd8\x61\x87\x1d\x97\x48\xf8\xaa\ \xbe\xaf\xae\x8b\xd9\x0b\x75\xac\x81\x08\xce\x48\x18\x91\x8b\xd0\ \xdd\xa3\x62\xdb\xb6\xbf\x4b\x85\x87\x6b\x4b\x66\xb5\xcd\x40\xd9\ \x03\x45\x3b\x4b\xb6\x98\xe3\xa5\xdd\x0f\xe0\x79\xbe\x4a\x11\xaa\ \x0c\xde\x7f\x90\x23\x5c\x5f\x5f\xbf\x60\xda\xb4\x69\x78\x9e\x47\ \x51\x9a\x68\x87\xa7\xa8\x0c\x87\xe8\x5c\xe1\x31\xae\xba\x1e\xcb\ \x32\xd1\x84\xca\xf6\xf1\x5b\x39\xe1\xec\x4a\x5c\xd7\xc3\x1e\xd1\ \x71\x07\xa3\x58\xc3\x50\x93\x19\x87\x9d\x52\x28\x16\x4a\xa8\xaa\ \x40\xd3\x34\x72\xb9\x1c\xae\xeb\xca\x93\x4e\x3a\xe9\xfa\xda\xda\ \xda\xeb\x01\x1c\xe9\xa2\x57\x79\xe0\x28\x60\x8f\xd9\xbf\xc0\xf6\ \xc9\x40\xcd\xed\xde\xbd\x9b\xb5\x6b\xd7\x46\x80\xd2\x87\x6e\x43\ \x4a\xa5\x12\xa6\x69\x92\x73\x4b\x44\x8e\x2d\xa2\x56\x2b\x44\xaa\ \x73\x30\x33\x87\x66\x08\xc4\x5a\x27\xd0\xc9\x9e\xe6\xa1\xaa\x2a\ \xa9\x5c\x1a\x45\x51\x51\x15\x1d\xdb\x33\xa9\xd2\x2b\xf1\x24\x58\ \xa6\x89\xd0\x08\xde\x7f\xb0\x8e\x99\xe7\x79\x94\x4a\x25\xf0\x24\ \x9d\x7a\x37\x0b\x8f\xd6\x81\x22\x46\x3c\x83\xbd\xc7\xc2\xb2\x2d\ \x3c\x54\x8c\x98\xc4\x35\x05\xf5\xea\x6c\x1a\x67\xd6\xd0\x51\xb3\ \x8a\x8a\xd9\x2a\x20\xd8\xf4\x23\x9b\xa9\x2d\x87\x53\x55\x55\x45\ \x6b\x6b\x2b\x00\x83\x83\x83\xa2\xac\x42\x55\x14\x76\x36\x6e\x63\ \xc1\xd9\x51\xbc\x31\x1b\xe8\x59\x02\x7b\xd0\xc0\xea\x89\x60\x76\ \x85\xc1\xf5\xb5\xbe\xae\xeb\x78\x9e\xf7\xe1\xdb\x10\x21\x04\x96\ \xe5\xeb\x7d\xc7\x71\x50\x55\x05\x37\x5d\xcf\x4d\xa7\x3f\xc3\x95\ \x47\xfd\x17\x7a\xb1\x85\xd6\xd8\xd4\xe0\x3d\x9e\xe7\x11\x8d\x86\ \xb8\xe5\xf1\xef\xf2\x37\xd3\xaf\x61\x7c\x53\x2d\x49\xaf\x93\x73\ \x66\x5c\x82\x22\xf7\xcd\xf5\x1e\x4f\x08\x52\xca\x31\xdb\x63\x21\ \x3d\xdf\x65\x3b\xa7\xf5\x1b\x2c\x9e\xf6\x0f\x98\xb6\x3f\xa7\x65\ \x9a\xa8\xaa\x82\x9a\x6f\xe2\xfa\xb3\xfe\x0b\x37\x3e\x81\x93\x9b\ \xbe\xcc\x37\x4f\x7a\x88\x90\x6a\x50\x32\x4b\x64\x32\x19\x86\x86\ \x86\x18\x1a\x1a\x62\x53\xec\x75\xe4\xc2\x1d\x38\xa6\x87\x69\x9a\ \x58\xa6\x85\xa2\x4b\x1c\xc7\x65\x6e\xf4\x5c\xbe\x76\xe2\x8f\x89\ \x44\x42\xd4\xb4\x54\x52\x7d\x52\x12\xcf\xf0\x37\x66\xf9\x3e\xff\ \x6a\x46\xbd\xbc\x83\x2c\xcb\x42\x08\x98\xa0\x1e\xc5\x8a\x9e\x27\ \xf9\xed\xf2\xdf\xf0\xa5\x23\xbf\x89\xeb\x3a\xa4\xd3\x69\x52\xa9\ \x14\xf9\x42\x1e\xc7\xb3\x49\xd6\x2e\x63\xeb\xee\xdd\xf4\xe4\x36\ \x43\x6d\x3f\x3f\x5a\x7b\x39\xe9\x64\x8e\x54\x3a\x4d\x3a\x9d\x26\ \x93\xc9\x20\x84\xf8\xb3\xc7\x64\xfc\xf8\xf1\x41\xbc\xe0\x0b\xd2\ \x02\x21\xd1\xc3\x1a\x9f\x9c\x73\x3e\xab\x07\x9f\x41\x7a\xbe\x0a\ \xb4\x6c\x1b\x3d\xac\x23\xac\x18\xbd\xc5\x1d\xb4\xf7\xaf\xe0\xb0\ \xfa\x79\x34\xd5\x34\xa1\x0a\x1d\xd7\x75\x71\x1c\x27\xd8\x14\x91\ \x2a\x81\xaa\x8a\xe0\xf7\xb6\x6d\x23\x74\x41\x85\xde\xc0\x95\x9f\ \xf8\x26\x3f\x7c\xf6\x07\x5c\x7a\xec\xad\x5c\xb3\xe8\x1e\xda\x1a\ \x67\xe0\xb8\x0e\x8e\xe3\xbf\x3c\xcf\x43\x51\x94\x0f\xdf\xa8\x97\ \x4f\x88\x6d\xdb\x38\xd8\x08\xa1\x10\xd6\x23\xb8\x9e\x8d\x2b\x5d\ \x92\xc5\x61\x14\x45\x0b\xbc\x15\xd7\x71\x91\x8a\x87\x6b\x49\x9e\ \xeb\xba\x85\xd2\x56\x97\xe2\x80\x20\xdf\xa5\x31\xb4\xb1\x88\x11\ \xd1\x41\x82\x65\xda\x54\x46\xab\x6e\x9e\x3b\x67\xee\xe8\x1f\xc3\ \x0f\x52\xa9\xd4\xeb\x3d\x3d\x3d\x77\x97\x05\x32\x38\x38\xe8\x7b\ \x66\xa3\x2e\xab\x6f\xca\x70\xfe\x0f\xcf\x63\x30\x91\x43\x9a\x05\ \x24\x1e\x02\x81\x7c\xda\x65\xad\xda\xc1\xe5\x8f\x5c\xc3\x68\x36\ \xc1\xe5\x77\x5f\xc1\x9a\x37\x5e\xc3\x74\x8b\xbe\x5d\xd9\xef\x64\ \x6a\x86\xc2\xf6\x9f\xbb\x54\xc7\x72\x60\xfa\x66\x42\x5f\x51\xc5\ \xea\x57\x93\xcc\xbd\x76\x1e\xd5\x91\x18\x5f\xfa\xd1\x57\x71\xa5\ \x8b\xa1\x46\xd0\x23\x1a\x42\xf8\x1b\x54\x55\xd5\x43\xe2\x2e\x6b\ \xef\xf7\x84\x58\x96\x85\x2d\x1c\x34\x45\x63\x30\xbf\x97\x33\x62\ \x0b\xe8\x89\x99\x24\x0a\x7e\xfc\xa1\x69\xfe\xd4\x75\x05\x95\xa5\ \xd7\x8d\x62\x67\x64\x10\x04\xda\xb6\xcd\xa2\x45\x8b\x68\x98\x6d\ \xa2\x0a\x85\x4e\x6d\x2f\x47\x2c\xd2\xb1\xfb\x2a\xce\xb6\x07\x22\ \xc8\x74\xe8\x5d\x41\x9d\x2d\x5b\xb6\x00\xdc\x5d\x56\x59\x93\x27\ \x4f\x26\x12\x89\x20\x84\xa0\xcf\x19\xa1\xee\xfc\x21\x26\xca\x2a\ \x9c\xfe\x0a\xac\xde\x0a\xdc\x78\x08\xe4\xbe\x89\x6a\xaa\xc6\xb1\ \x77\xef\x5e\x22\x54\x51\x1b\x6e\xc4\x73\x07\x71\x1c\x27\xf0\xee\ \xd4\x9c\x47\x7d\x63\x3d\xe3\xea\xc6\xa1\x28\x0a\x3b\x0b\xfd\xcc\ \xfc\x5c\x91\x58\x4c\xc7\x4d\xc7\xb0\x7a\x23\x38\x83\x35\x58\xfd\ \x61\x14\x45\x04\xaa\x13\xa0\xbb\xbb\xfb\xaf\x2b\x90\x52\xa9\x84\ \xad\x49\xa4\x0c\x63\xd7\x6c\x27\x31\xec\x70\xd2\xc7\x8e\xe4\x57\ \x9b\x6e\xa0\x2f\xd9\xc7\x59\x67\x9d\xc5\xa5\x97\x5e\xca\xf2\xe5\ \xcb\x69\x6f\x6f\x67\x68\x68\x08\xd7\x75\x71\x5d\x97\x81\x81\x01\ \xca\x71\x4a\xca\x29\x10\x3d\x39\x4b\xa8\x39\x8a\xd7\x90\x44\x3b\ \x4a\x10\x12\x15\x38\x25\x0f\x55\x68\x0c\x3d\xd0\xe8\x63\x4f\xfb\ \xdd\x7c\xf9\xfb\x72\xec\xa0\x08\x85\x2d\xd6\x1e\xe6\xd5\x36\x53\ \xb2\x0a\xd4\xcc\x0b\x51\x98\xdd\x0b\x48\x84\x13\x22\xbd\xaa\x9a\ \xe2\x8e\x30\x00\x21\x11\xe6\xba\x57\xcf\x23\x5b\xca\x60\xd9\x56\ \xa0\x72\x00\x2a\x84\x82\x3b\x36\xa7\x10\x82\xbe\xd2\x28\x27\x37\ \xd6\x51\x2c\xba\x1c\x39\xe3\x38\xb6\xd6\xac\x40\xce\x75\x11\xa8\ \xe4\x36\x45\xc9\xac\xa9\x02\x21\x51\x14\x05\xcf\xf3\x3e\x78\x81\ \x8c\x1f\x3f\x9e\x81\x81\x81\x03\x8d\x8e\xa2\x38\xc9\x64\x92\x54\ \x2a\x85\xad\x79\x94\xac\x18\x8e\x90\xdc\xf5\xc6\xd7\xf9\xc6\x19\ \x37\x23\xc3\x26\x96\x5b\xe0\xfa\xeb\xaf\x67\xd9\xb2\x65\x7c\xfe\ \xf3\x9f\x47\xd7\x75\x22\x91\x08\x3b\x76\xec\xa0\xb2\xb2\x92\xf6\ \xf6\x76\x5f\xa0\xb6\x8d\xed\xda\x18\x9a\x4a\x6a\x48\xe5\x07\x17\ \x3e\xcd\x60\x7a\x80\xfb\x36\x5d\xcf\xe2\x79\x7f\xc3\xf3\x5d\xf7\ \x8e\xb9\xc5\xbc\x43\x20\x65\xe1\x5a\x96\x85\x22\x04\x8a\xa2\x60\ \xd9\x36\x5f\x3d\xfc\x67\x64\x44\x17\x9a\xe1\x91\x1c\x75\x58\x91\ \xf8\x39\x49\x7c\x7b\x20\xa5\xc4\x93\x1e\xdd\xdb\x06\x48\xec\xb4\ \xc9\xc6\x4b\x38\xd5\xfb\x3c\xc2\xa8\x50\x02\x35\x26\x84\x00\x01\ \x25\xd3\xe4\x82\xe6\xef\x31\xaa\xb7\x73\xcd\x82\x7b\x78\x65\xf3\ \xcb\x64\x22\x1d\xb4\xb3\x0b\xdb\xb6\x90\x48\x34\x4d\xc3\xb6\x6d\ \x54\x55\x7d\xcf\xce\xc9\x7b\x12\xc8\xc0\xc0\x00\x6d\x6d\x6d\xff\ \xbb\xba\xba\xfa\x68\x3f\x00\x13\x8c\x26\x46\xe7\xab\xaa\x8a\xa2\ \x28\xe8\x52\xc1\xc9\x48\x72\x03\x2e\x76\x9f\xe0\xeb\xff\xf2\xcf\ \xa4\x77\x49\x4a\xa3\x82\xaf\x7c\xe5\x2b\x7c\xfb\xdb\xdf\xe6\x57\ \xbf\xfa\x15\xdb\xb7\x6f\x47\x4a\x49\x22\x91\x20\x16\x8b\xd1\xd9\ \xd9\x49\x7d\x7d\xbd\x1f\x19\x4b\x1b\x01\x1c\x1e\x5e\xcc\x9a\xc1\ \xa7\xd9\xd3\x35\xca\x39\xe3\xff\x0f\x0b\x0f\x3b\x96\x35\x43\xcf\ \xb2\xd3\x2c\xbd\xab\x40\xca\x27\xc4\x71\x1c\x14\x04\x4a\xa5\xa0\ \x73\x67\x96\x23\xcf\x9b\xcd\x65\xbf\xbd\x9c\xfb\xfe\x76\x1d\xc3\ \x75\x23\x78\x03\x23\x3c\xe4\xfc\x0e\xd3\x1c\xfb\x7f\xcd\x63\xe5\ \x77\x53\xa8\xba\x40\x11\x0a\xc5\x62\x91\x62\xb1\x08\x40\x95\x1b\ \xc2\x75\x55\xff\xd4\x29\x0a\x42\x48\x46\x86\x4a\x9c\xfd\xe9\x4f\ \x72\xe5\xd3\x37\x70\xe6\xd4\x8b\x99\xde\x30\x8f\x94\x6e\xb0\xc1\ \xdd\x8e\x69\xfa\x0e\x85\x94\xfe\xeb\x43\x31\xea\xe3\xc6\x8d\xfb\ \xc2\xb4\x69\xd3\x8e\x07\x70\xa5\xc7\xfa\x3d\x6f\xa0\x0a\x95\x89\ \x13\x27\x62\xdb\x36\xe9\x67\x2d\x52\xd2\x43\x4a\x81\x94\x61\x34\ \x40\xd3\x2d\xfa\xfa\xfa\xb8\xf4\xd2\x4b\xdf\x75\xce\x5c\x2e\x47\ \x2c\x16\xf3\x5d\x67\xe1\x20\x84\x42\xa5\x51\x83\xe5\x16\x71\x3d\ \x97\xba\x86\x10\x5d\xa9\xad\x64\xac\x04\x96\xa5\xa1\x68\xe2\x1d\ \x02\x51\x14\x25\x38\x25\x02\x81\xa2\xa8\xb8\x2e\x68\xaa\x8a\x10\ \xfe\xc2\x38\x8e\xc3\xea\x9e\xdf\xe3\xb9\x2e\x96\xe5\x05\xae\xf2\ \x9c\xf9\xb3\xe9\xe8\xe8\x20\x16\x8b\x05\xaa\x13\xc0\xf1\x94\x7d\ \xa7\x4e\x51\xc0\xd8\x87\x7e\x0a\x45\x41\x08\x41\xb6\x94\x65\xc3\ \xc8\x92\x60\x2e\xc4\xbe\xe0\xf0\x60\x91\x86\xbf\x48\x20\x9e\xe7\ \x09\xd3\x34\x91\x52\xf2\x96\xd9\x4b\xed\x14\x97\xe3\x9a\x8e\xe7\ \x9c\x73\xce\xe6\xe4\x93\x4f\xe6\xa7\x3f\xfd\x29\x5b\xb7\x6e\x65\ \xfe\xfc\xf9\xac\x5c\xb9\x92\x99\x33\x67\xb2\x66\xcd\x1a\xe2\xf1\ \x38\xe1\x70\x98\x7c\x3e\x1f\xec\x9c\x8c\x52\x62\xfc\x1c\x85\xfa\ \xc4\x54\x8a\xd9\x9c\xef\x18\x28\x0e\x8a\xa2\x32\x9c\xeb\x61\x7e\ \x74\x2e\x03\xc2\x64\xb4\xd0\xcf\x84\xc8\x44\x84\x14\x58\xa6\x85\ \x70\xdf\x79\x42\xf6\x07\x0f\x05\x02\x01\x34\x35\x45\xc8\x65\x1c\ \xa4\xeb\xab\x26\x17\x9b\xb0\x52\x85\xeb\x66\x30\x4d\xb7\x0c\x8b\ \x80\x84\x49\x93\x26\xa1\x69\x1a\xae\xeb\x06\xf3\x2a\x1b\x24\x39\ \x27\x03\x58\xbe\xca\x0a\x43\x7d\x7d\x84\xcd\x3b\x77\x20\x2d\x1d\ \x45\x51\x48\x17\xe3\x1c\x56\x7d\x34\x3b\xdc\x17\xb0\x2c\x5f\x65\ \x95\x6d\xc7\x87\x22\x10\x29\xe5\x3e\xfd\xeb\xf9\xae\xa4\x10\x82\ \x9a\x9a\x1a\x22\x91\x48\xe0\x7f\x87\x42\x21\x8e\x3a\xea\x28\xf6\ \xee\xdd\xcb\xd1\x47\x1f\xcd\xba\x75\xeb\x30\x0c\x83\x9a\x9a\x1a\ \xd2\xe9\x34\x42\x08\x52\x86\xc7\xb4\x4f\x45\x08\xaf\x9e\xc6\x96\ \xd5\xeb\x7c\xf0\x51\xf7\x50\x44\x98\x41\x63\x39\x13\xf5\x8b\x68\ \x9a\x3f\x9d\x7b\xd6\xff\x1b\xe7\x86\xfe\x91\xaa\x70\x2d\x25\xab\ \x0f\xe5\x5d\x04\x22\x84\x1f\x2f\x94\x4a\x25\x94\x31\x2c\x63\xc2\ \xc4\x6a\x7e\xf2\xca\xb7\xb8\xeb\xc2\x65\xdc\xf4\xda\xc5\x48\x33\ \x42\x63\x4d\x33\xb6\xd3\x45\xa9\x64\xf9\xaa\xc5\x15\x8c\x3f\x5d\ \x62\x0e\x55\xe1\x66\x75\x9c\xa4\x06\xb6\x82\x50\xfd\x13\x35\xe2\ \x24\x82\x13\xe2\x54\xba\x54\x55\x86\xb9\x73\xdd\xff\xe6\xa7\x9f\ \x5b\xca\x7f\x6d\xb8\x86\x1d\x99\x0e\x5a\xf4\x56\x6c\xd7\x22\x9f\ \x2f\x80\xf0\x05\xa2\x28\xca\x87\x76\x42\x28\x9f\x10\x4f\x78\x28\ \x42\xa1\xbd\xbd\x9d\xd1\xd1\x38\xc3\xc3\xc3\x14\x0a\x05\x00\x3a\ \x3a\x3a\x02\x5d\xea\xba\x6e\xb0\x6b\x4a\xa5\x12\x86\x61\xf8\x49\ \x28\xdd\xa3\xc2\x30\xd8\x34\xf4\x3a\x89\x44\x8e\x62\xb1\x88\x19\ \x92\x14\xad\x18\x46\x34\xc2\xb5\xbf\xbb\x98\xbb\xbf\xf2\x5b\x32\ \xde\x20\x8f\x75\xfc\x88\x52\xca\x63\x74\x64\x14\xcd\x50\xca\x6a\ \xca\xdb\x5f\x20\xc5\x62\x91\x54\x2a\x85\x40\x50\x30\x25\x25\xcb\ \xa4\xcb\x7b\x85\x5f\x2f\xbf\x87\x86\xda\x09\xac\x8b\x2f\xc5\x4b\ \x08\xba\x37\x26\xc9\xa7\x7d\xf7\x56\xc3\xa0\x75\x41\x05\xfd\xf1\ \xbd\xfe\x42\x86\x24\x89\x57\x63\x14\x3b\xa2\x41\x90\x58\x2c\x16\ \xfd\xf9\xab\x3c\x2c\xd7\x82\xaa\x38\x5f\xfb\xed\xe7\x39\x72\xc6\ \x0c\x52\xb9\x61\x92\xf1\x38\x3b\x96\x24\xc9\xe7\xfd\x39\x85\x10\ \x18\x86\xf1\xe1\xa0\xbd\xe5\x88\x18\x40\xea\x12\x90\xd4\x8f\x1b\ \x47\x3c\x1e\x47\x51\x14\x2a\x2b\x2b\xff\x64\x10\xd9\xdf\xdf\x4f\ \x32\x99\x44\x51\x14\x72\xc2\xa1\x64\x57\x10\xad\xcf\x93\x56\x55\ \x54\x55\x45\x43\x82\x10\x08\x45\x50\x69\x48\x2e\xfa\xe6\xa7\x19\ \xed\xb0\x49\xed\x2e\x20\x14\x81\x51\xa1\x07\xf3\x19\x86\x71\xf1\ \x84\x09\x13\xf6\xf4\xf7\xf7\xdf\x2a\x84\x40\x1d\x9b\x43\x11\x0a\ \x46\xc1\x45\xba\x92\x64\x07\x3c\xbc\xfd\x1e\x86\x37\x5b\x98\x69\ \x17\x31\x16\x2f\x68\x9a\xe6\x67\x03\x3d\x97\xd3\x26\xfc\x23\x62\ \xa2\x43\x7a\x58\xf0\x4a\xf2\x36\x46\x6c\x5f\xf5\xb9\xae\x8b\xa2\ \x28\x68\x9a\x86\xa2\x28\x44\xd3\x2e\xe9\x5e\x87\xfe\x0d\x26\x89\ \x1d\x9b\x78\x7e\xef\xfa\xfd\x5c\x5b\x81\xae\xeb\x48\x29\x83\xa0\ \xf0\x50\x9c\x10\xf5\xcf\xbd\xa1\xa1\xa1\xe1\x52\x55\x55\x27\xba\ \xae\x4b\x56\xb5\x98\xff\xe9\x28\x67\x1c\xfd\x0f\x94\x66\x6c\xe2\ \xb2\xcf\x5c\x87\xd1\xa2\x30\xfe\x38\x41\x32\xba\x87\xee\x35\x19\ \xf2\x85\x3c\x85\x42\x81\x81\x81\x01\x2b\x9b\xcd\x5a\xb6\x6d\xab\ \x8e\xe3\x08\x29\x25\xc5\x88\xc7\xec\x8f\x57\x92\xed\xb5\x29\xec\ \xd1\x88\x44\x22\x18\x42\xa3\xd8\x01\x5d\x2f\x9a\x0c\xac\xb4\xc9\ \x74\x4a\x9c\xac\x8f\xbe\xaa\xaa\x5a\x4e\xc5\x22\x84\x60\xe2\xc4\ \x89\x24\x12\x89\x64\x38\x1c\x56\x33\x99\xcc\xce\x58\x2c\x76\x7c\ \xb1\x58\x54\x9a\x9b\x9b\x09\x25\x25\x7b\x5f\xb2\x19\xdd\xec\x52\ \xe8\x07\x5c\x05\x4d\x53\xc7\xbc\x25\x7f\x3e\x21\x04\x9a\x30\xc8\ \x1f\xdd\xce\xff\x3a\xf6\x7b\x44\x8d\x2a\x06\x0a\xbb\xd9\xbd\xb9\ \x97\x5c\x9f\x87\xe3\x38\x14\x0a\x05\xc6\x8f\x1f\xcf\x55\x57\x5d\ \x45\xba\x6f\x84\xe4\x46\x0d\x67\x28\x44\xc8\xad\x20\x52\x11\xa1\ \xa2\xa2\x02\x45\x51\x08\x87\xc3\x01\xa0\x68\x18\x06\xf1\x78\xfc\ \x51\x55\x55\x1f\x2b\x14\x0a\xde\x07\x2e\x10\x60\xa2\xe7\x79\xe4\ \x0d\x87\x39\xa7\x56\x93\x74\x07\xb9\xee\x9c\x3b\x18\x12\x6f\xb1\ \x31\xf5\x02\x0b\xe7\x9c\xca\x9e\xc4\x56\x06\xd6\xfa\xd8\x96\xa2\ \x28\x4c\x9f\x32\x53\x9d\x75\xf8\x6c\x3d\x91\x4a\x88\x52\xa9\x44\ \xa9\x54\xa2\xca\x32\xc8\x74\xb9\xf4\xaf\xcb\x33\x67\xd6\x3c\x6e\ \xbd\xf5\x56\xae\xb8\xe2\x0a\xf6\xee\xe9\x26\x16\x8b\xb1\x60\xc1\ \xf1\x84\x42\x21\xe6\xcc\x99\xc3\xcc\x99\x33\x31\x4d\x93\x29\x53\ \xa6\x30\x69\xd2\x24\xe2\xf1\x38\x91\x48\x84\xda\x58\xdd\x2c\x4f\ \xba\x17\xcc\x99\x33\x67\x61\x32\x99\x54\xee\xbe\xfb\x6e\x2e\xbf\ \xfc\x72\x6a\x6a\x6b\xd1\x43\x3a\xf3\xe6\xcf\xa3\xb2\xaa\x92\xb9\ \x73\xe7\x00\x30\x6f\xde\x3c\xa6\x4d\x9b\x86\x94\x92\x48\x24\x42\ \x3e\x5b\x64\xea\xe2\x6a\xce\x9e\x71\x31\xd9\x42\x8e\xe7\x3a\xef\ \x22\xb1\xdd\x09\x04\x52\x2c\x16\x79\xf9\xe5\x97\x91\x52\x72\xd2\ \xc9\x27\x91\x2f\xe4\x99\x35\x7b\x16\x55\x55\x55\xcc\x9b\x37\x0f\ \x80\x73\xce\x39\x87\xe9\xd3\xa7\x07\x73\x16\x8b\x45\xb6\x6d\xdb\ \x36\xe7\x2f\x15\xc6\x41\x81\x8b\x8e\xe3\x30\x3a\x3a\xca\xe8\xe8\ \x28\xe9\x4c\x86\xa2\x55\xa4\x10\xd9\xc5\xf7\x9f\xfa\x2e\x9a\xae\ \x90\x55\xba\x79\xea\xad\xbb\xe9\xeb\x48\x92\x4c\x26\x48\x24\x12\ \xa4\x53\x19\xd4\xd3\x76\x23\x3e\xbe\x1d\x19\x29\x71\xc2\x09\x27\ \xb0\x7e\xfd\x7a\x3e\x76\xcc\xd1\xc4\xec\xf1\x54\x68\xd5\x4c\x99\ \x32\x85\x64\x32\x49\x73\x73\x33\xe3\xc7\x8f\xa7\xb6\xb6\x96\xa9\ \x53\xa7\x32\x7d\xfa\x74\x14\x45\x61\xf2\xe4\xc9\x68\x9a\x46\x38\ \x1c\xa6\xb1\xb1\x31\xd8\x8d\xea\xcc\x38\x42\x11\x54\x54\x54\xe0\ \x79\x1e\x8d\x8d\x8d\xc4\xe3\x71\x26\x4d\x9a\x84\xeb\xba\x4c\x98\ \x30\x81\x86\x86\x06\x66\xce\x9c\x19\xc0\x34\x75\x75\x75\x9c\x7e\ \xfa\xe9\x14\x0a\x05\x54\x45\xa1\x52\xaf\xc5\x76\x4d\x2c\xcf\xa4\ \xda\x68\x08\xbc\xb5\xb2\xda\xea\xea\xea\xc2\x75\x5d\x86\x87\x87\ \xf1\x3c\x8f\xda\xda\x5a\xf2\xf9\x3c\x9a\xa6\x91\x4c\x26\xe9\xeb\ \xeb\xc3\x71\x1c\x9a\x9b\x9b\x29\x95\x4a\xc1\x49\xfe\x50\x68\x40\ \x33\x67\xce\x5c\x63\x9a\xe6\x71\x8a\xa2\x90\xaa\x74\xf8\xd4\x37\ \x1b\x31\x0c\x41\x6a\xb7\xc3\xf0\x16\x93\xf8\x5b\x16\xf9\x61\xf7\ \x00\x6c\x47\x55\x35\xce\xb9\xe2\x54\xf4\x79\x7b\x78\xf1\x3b\x7b\ \xf8\xc9\x0d\x3f\x23\x9d\x4e\x73\xef\xbd\xf7\x52\x53\x53\x43\x67\ \x67\x27\xae\xeb\x72\xec\xb1\xc7\x92\x4c\x26\xe9\xef\xef\x0f\x9c\ \x01\xcf\xf3\xde\xf1\x2a\xbb\xa6\x95\x95\x95\x0c\x65\x7a\x50\x4c\ \x83\x19\x33\x66\x32\x3c\x3c\x4c\x65\x65\x25\x0b\x16\x2c\x60\xcd\ \x9a\x35\x7f\xf6\xff\x1d\xc7\x21\x97\xcb\xb1\x6b\xd7\x2e\xae\x7f\ \xf9\x73\x14\xf3\x50\x5d\xa3\xb1\xf2\x81\xdd\x0c\xac\xdd\x67\x43\ \xde\x4b\x5e\xbd\x7c\x4a\x56\xad\x5a\x25\x3e\x14\xa3\x5e\x1e\xcd\ \xcd\xcd\x18\x89\x24\x1b\x6f\x2e\xe2\x94\xe4\x18\x6b\x44\x22\xd1\ \x30\x0c\x35\xb8\x38\xcf\xf3\x50\x04\x7c\xe6\xd8\xbf\x27\xde\xb4\ \x89\x57\x42\x77\xf2\xfd\xef\x7f\x9f\x6f\x7e\xf3\x9b\x64\x32\x19\ \x22\x91\x08\xb6\x6d\x53\x55\x55\x45\x7b\x7b\xbb\x7f\xf3\x08\x3c\ \x57\xe2\x49\x17\x21\x14\xdf\xb0\x2a\x1a\x9e\x94\x28\x42\x09\x22\ \x75\xcb\xb2\x68\xaa\x6e\x65\x64\x64\xc4\x8f\x01\xa4\xc4\xb1\x1d\ \x96\xbd\xf2\x1a\xae\x74\xd0\x14\x1d\x4f\xfa\x71\x8d\x82\x8a\x16\ \xd2\x82\x6d\x27\x3c\x81\xeb\x4a\x9c\xa2\xc7\xcf\x97\xdf\x49\x63\ \xb4\x85\xcd\x85\xe5\x14\x6d\x95\x3d\x6f\xc4\x29\x26\xfd\x20\x33\ \x1c\x36\xd0\x09\x53\x74\xf2\x44\x42\x11\x2c\xdb\xf6\x6d\x11\x3a\ \x8a\x2e\x0f\xd8\xc2\x41\x7c\x95\xc9\x7c\x78\x39\x75\xdb\xb6\xb9\ \xfa\xea\xab\x59\xb4\x68\x11\x8e\xe3\xf0\xe8\xa3\x8f\x92\xc9\x64\ \x82\xa0\xaf\x50\x28\x30\x7d\xfa\x74\xde\x7c\xf3\x4d\x12\x89\x04\ \xf5\xf5\xf5\x6c\xdd\xba\x15\x4d\xd5\x58\xd3\xf3\x1c\x21\xcd\x20\ \x97\xcb\xf1\xf5\xaf\x7f\x9d\x42\xa1\x40\x4d\x4d\x0d\xd1\x68\x94\ \xad\x5b\xb7\xd2\xd8\xd8\xe8\xab\x0b\xc5\x65\xce\xe7\x22\x1c\x3b\ \xee\x42\xcc\x70\x1f\xa9\xbe\x30\xeb\x7b\x5e\xe5\xf4\x63\x4e\x66\ \xdd\x8e\x57\xd9\xf3\x8c\x83\xa2\x41\x43\x43\x03\xc5\x62\x31\xf0\ \xfc\x5c\xc7\xa1\xdb\xeb\x67\xde\x19\x95\x5c\x71\xc2\xcd\xfc\x62\ \xe3\xb7\x38\xa5\xf1\x32\x56\xed\x7a\x95\x7c\xc5\x36\xb6\x3c\x90\ \x21\x9f\x2d\x20\x10\xe4\xc6\x79\x2c\x38\x3b\x86\x18\xf6\x78\xfc\ \xf9\x9f\x92\xee\x76\x31\x47\x20\xdb\xe7\x60\xe7\xf7\x79\x4a\x9e\ \xa5\x70\xfa\x1d\x2d\xfc\xe8\xec\xdf\xf3\x99\xff\xfc\x24\xff\xf2\ \xe9\x7f\x47\x91\x21\x36\x24\x7f\xc7\x0b\xff\xf5\x06\xa5\x3e\x3d\ \x10\xca\x4b\x2f\xbd\xd4\x0c\x0c\x1f\x4a\xb6\xcc\x41\xb9\xbd\x93\ \x27\x4f\xa6\x58\x2c\x32\x73\xe6\x4c\x14\x45\x61\xda\xb4\x69\x54\ \x56\x56\x52\x55\x55\xc5\x53\x4f\x3d\x15\x18\xe2\x4c\x26\xc3\xc6\ \x8d\x1b\x09\x85\x42\x08\x04\xba\x88\x50\x74\xf2\xec\xdd\x35\xe2\ \xbb\x91\xd1\x68\x80\x13\x95\xed\x83\x6d\xdb\x48\xcd\x63\xe2\x91\ \xd5\xbc\x35\xf8\x2a\x3f\xb8\xe0\x01\x4c\x25\xc5\x7f\x3c\xbb\x86\ \xc5\x27\x9f\x4d\x9f\xda\x4e\xef\xf3\x69\xd4\x90\x4f\xa6\x2b\xc3\ \xe5\x96\x65\x11\x0e\x47\x30\xea\x1c\x5a\xe6\xd7\x70\xc6\x19\x67\ \xb0\x54\xf9\x21\xc7\xb7\x9e\xc8\x50\xa4\x8b\xe1\xe8\x5e\xba\xaa\ \x3c\x0c\x3d\x4c\x43\x43\x03\xc3\x83\x43\x74\x3d\x06\x42\x11\xc4\ \x55\x90\x63\xe6\x53\x78\x1a\x46\x58\x04\x2a\x53\x95\x1a\x8a\x5d\ \x85\xc4\x25\x4b\x2f\x4d\x35\xcd\x3c\xbf\xfa\x55\x76\x2a\x1b\xf1\ \xc6\xd4\x1e\xc2\xf7\xfc\xaa\xaa\xaa\xc8\x66\xb3\x87\x94\xba\xf4\ \x67\x05\x12\x89\x44\xb8\xe9\xa6\x9b\x38\xf7\xdc\x73\xf9\xde\xf7\ \xbe\x47\xa9\x54\x0a\x74\x72\x59\x3f\xf7\xf6\xf6\x1e\x60\x03\x14\ \xa1\xb0\xec\xad\xa5\xcc\x3d\xfe\x44\xd6\xb6\x75\xe3\x0c\x86\x89\ \x46\xa3\xa4\xd3\xe9\x03\xd2\xb5\x89\x44\xc2\x0f\xc6\x42\x12\xcb\ \x0d\x53\xd1\x58\xe2\x7b\x7f\xb8\x86\x1b\x3f\xf3\x13\x8c\x4a\x87\ \x5f\x6e\xfc\x0f\xe2\x03\x26\xa9\x74\x12\x45\x13\xd8\xb6\x1d\xc4\ \x13\x65\xbe\x95\x94\xe0\x78\x26\xb9\x62\x0e\x2b\x6b\xa0\x1a\x16\ \xaa\xaa\x53\x1f\x6a\xa3\x64\x6e\xe0\xb6\x1f\xdf\x41\x7d\x7d\x3d\ \xab\x56\xad\x62\xe3\xc6\x8d\x84\xc3\x61\x7a\x7a\x7a\x68\x6c\x6c\ \xa4\xab\xab\x8b\xd9\xb3\x67\x63\x59\x16\x1b\x36\x6c\xa0\xa2\xa2\ \x82\xbe\xae\x01\x14\x0d\x54\x55\xc7\x71\x05\xae\x74\x89\xe8\x61\ \xa4\xe7\xe1\xd8\x0e\xa6\xe5\x93\x1b\xca\xc1\xee\x87\x4e\x03\x72\ \x5d\x57\xaf\xac\xac\x64\xe9\xd2\xa5\xc1\x05\x94\x8d\x5e\x39\x30\ \x13\x12\xf6\x4f\x29\x3b\xb6\xc7\xda\xc4\x23\x74\xf7\x45\x48\x0d\ \x65\x49\xa7\x0b\x54\x55\x55\x51\x57\x57\x17\x08\xa4\x1c\x50\x79\ \x9e\x87\x82\x44\x0b\x0b\x8a\x09\x97\xc1\x9d\x5b\x39\xeb\xcb\x27\ \x91\xeb\xf5\xb0\xf3\x12\x2b\xe3\xa2\x85\xf6\xc5\x23\xe5\xcd\x50\ \x2a\x95\x90\x9e\xc4\x71\x3c\x22\x51\x95\x6b\x9f\xfd\x2c\x37\x9e\ \xf9\x30\xbf\xd8\x72\x1d\x83\xfa\x4e\x1a\xf4\x06\xa4\x84\x71\xe3\ \xc6\x91\xcd\x66\x69\x6d\x6d\x65\xdd\xba\x75\xcc\x9f\x3f\x1f\xcf\ \xf3\x98\x3d\x7b\x36\x43\x43\x43\xe4\xf3\x79\xda\xda\xda\x98\x35\ \x6b\x16\x0f\x3c\xf0\x00\x42\x51\x70\x34\x3f\xfa\xff\xdb\xa3\xff\ \x89\xbc\xec\x47\xa2\x72\xc6\x94\x7f\x60\xab\x73\x27\xd6\x98\x40\ \x0e\x55\x86\xf0\x3d\x7b\x59\x55\x55\x55\x0b\x3c\xcf\xab\x79\x9b\ \x67\x51\xdb\xda\xda\xfa\x50\x2e\x97\x43\x48\x70\xa7\x08\x8e\x3b\ \xb7\x9a\xfc\x90\x4b\x7e\xd8\xa5\x30\xe4\x11\xa9\xd2\x29\xa5\x3d\ \x92\xbb\x6c\x3c\xe9\x32\x79\xf2\x64\x74\x5d\x27\x97\xcb\x61\xdb\ \x36\xc3\xc3\xc3\x84\x42\x21\xe6\xcd\x9b\x47\x5f\x6f\x1f\x96\x6d\ \xe3\x99\x72\x8c\x08\xed\x3b\x0c\xae\xeb\x1e\xa0\x3a\xa3\xd1\x28\ \xa5\x52\x89\x7c\x3e\xef\x5f\xbc\x04\x73\x9a\xe0\x6f\xbe\xd1\x84\ \xeb\x42\x4b\xf8\x28\xc6\x37\xd7\xb2\x7a\xd7\x4b\xe4\xfa\x5d\xba\ \x1e\x0c\xd1\x32\xb1\x95\x63\x8f\x3d\x96\x17\x5e\x78\x21\x88\xa6\ \x2d\xcb\xc2\x30\x7c\xdb\x56\xce\x65\xf8\xfc\x00\x81\x5d\xf0\x38\ \xed\xce\x4a\xf2\x43\x06\x3f\xff\xfc\x52\x6e\x5a\xf1\x65\xba\xd2\ \x6f\x22\xf1\xd8\xfc\xd3\x12\xc9\x4e\x07\x90\xd4\xd6\xd6\xb2\x73\ \xe7\xce\xe6\x64\x32\x39\xf4\xa1\x0a\xe4\xdd\x86\xae\xeb\x4d\xf3\ \xe7\xcf\x1f\x4c\xa5\x52\xd4\xd4\xd4\x90\xcb\x66\x71\x2c\x3f\x5f\ \x82\x02\x8a\xcf\xb2\x39\x00\xdb\x6a\x69\x69\x61\x60\x60\x00\xcf\ \xf3\x13\x40\xa6\x69\x72\xdf\x7d\xf7\xd1\xd2\xd2\x82\xa2\x28\x3c\ \xf9\xe4\x93\xec\xde\xbd\x1b\xd7\x75\x03\x6f\x6c\xc2\x84\x09\x74\ \x76\x76\x92\x4c\x26\xd1\x34\x8d\x74\x3a\x4d\x22\x91\xc0\x34\xcd\ \x40\x75\x79\x8d\x82\x93\xff\xb1\x96\xf8\x0e\x9b\x54\xa7\xcd\xe8\ \x36\x0b\x33\xe5\xa1\x68\x82\xc6\xf1\xf5\x41\x2a\xf9\xcf\x79\xaf\ \xe5\xb5\xc8\xa5\x0a\x1c\xf5\x8d\x10\x4e\x49\x52\xa1\xd6\xa1\xaa\ \x1e\x59\x33\x49\xba\xc7\x61\xfb\x13\x39\x3c\xc7\x37\x19\xd5\xd5\ \xd5\xe4\xf3\xf9\x33\xc3\xe1\xf0\x68\x2a\x95\x32\x7b\x7a\x7a\xb6\ \xfe\x55\xb9\xbd\x42\x08\x1e\x7d\xf4\x51\xa4\x94\xac\x5c\xb9\x92\ \xdd\xbb\x77\xd3\xdb\xdb\xeb\x67\x01\xc7\x5e\xaa\xaa\x62\x18\x06\ \x9d\x9d\x9d\x44\x22\x11\x74\x5d\x3f\x80\xa1\x31\x7d\xfa\x74\x5e\ \x7f\xfd\x75\x3e\xfb\xd9\xcf\xd2\xda\xda\x4a\x24\x12\xa1\xbf\xbf\ \x9f\x19\x33\x66\xd0\xde\xde\x8e\x61\x18\x34\x34\x34\x90\xcd\x66\ \x49\xa5\x52\xe8\xba\xee\xa3\xbb\x8a\x82\x61\x18\x7c\xf1\x8b\x5f\ \xe4\xe5\x97\x5f\xa6\xe7\xa1\xb1\x39\x5d\x97\x71\x31\x0f\xb7\xd2\ \xb7\x65\xfb\x7b\x64\xb1\x58\x8c\xed\xdb\xb7\x9f\x52\x2a\x95\xf6\ \xbc\xed\x56\x8e\x3e\xfc\xf0\xc3\x9f\xc8\xe5\x72\x14\x0a\x05\x16\ \x2d\x5a\x84\xb2\xbc\x92\x10\x50\xf0\x6c\xb4\x3a\x0b\x2d\x35\x91\ \x06\x04\x0d\x27\xbe\x63\x19\x5e\x50\x55\x95\x8e\x8e\x8e\x1d\x3d\ \x3d\x3d\x33\xff\x6a\x27\x44\xd3\xb4\xa6\xa3\x8f\x3e\x7a\xf0\x96\ \x5b\x6e\xa1\xa9\xa9\x09\xc3\x30\xb8\xe1\x86\x1b\x68\x68\x68\x40\ \x55\x55\x16\x2c\x58\xc0\x5d\x77\xdd\x45\x55\x55\x15\x4d\x4d\x4d\ \x84\xc3\x61\x5e\x78\xe1\x85\x20\xc3\xd7\xd0\xd0\xc0\xde\xbd\x7b\ \x99\x3e\x7d\x3a\x47\x1e\x79\x24\x83\x83\x83\x24\x93\xc9\x20\xe1\ \x34\x56\x12\x80\xae\xeb\x14\x8b\x45\x1c\xc7\x21\x12\x89\x04\x64\ \x02\x45\x51\x78\xf3\xcd\x37\xd9\xbc\x79\x33\x00\x1b\x36\x6c\x40\ \xd3\x34\x56\xae\x5c\xc9\xe4\xc9\x93\xc9\x66\xb3\x4c\x99\x32\x85\ \x62\xb1\xc8\xfa\xf5\xeb\x91\x52\x32\x34\x34\xc4\x5b\x6f\xbd\x35\ \x7d\x74\x74\x74\x57\xf9\x3e\x1a\x1b\x1b\xaf\x2d\x14\x0a\xc7\xd4\ \xd6\xd6\x5e\x58\xbe\xf6\x6c\x36\x1b\x44\xde\x83\xc5\x61\x2a\x23\ \x3e\xac\x2e\xed\x31\xe6\xbe\x23\x98\x34\x69\x12\x55\xd5\x55\x3e\ \x89\x5b\x08\x1c\xc7\xb1\x84\x10\x5d\x63\xea\x5c\xdb\xb4\x69\xd3\ \x7d\xf1\x78\xfc\x3b\x1f\xea\x09\x51\x14\x85\x47\x1f\x7d\x94\xe3\ \x8f\x3f\x9e\x67\x9f\x7d\x96\x5c\x2e\x17\xa8\x93\xce\xce\xce\x20\ \x67\x1e\x8f\xc7\xf1\x3c\x8f\x48\x24\x42\x26\x93\xe1\x86\x1b\x6e\ \x60\xca\x94\x29\x5c\x7c\xf1\xc5\x98\xa6\xc9\xca\x95\x2b\x03\x1b\ \x51\x86\x47\xca\xc6\xb2\x9c\xdb\xd6\x75\x1d\xdb\xb6\x09\x87\xc3\ \x41\x00\xba\x71\xe3\x46\x9a\x9a\x9a\xd8\xb1\x63\x07\xa3\xa3\xa3\ \x81\x0b\x5d\x59\x59\xc9\xc6\x8d\x1b\x19\x1a\x1a\xa2\xa1\xa1\x01\ \x5d\xd7\xe9\xed\xed\x45\x55\x55\xa4\x94\xe2\x6d\xc1\xee\x25\x0b\ \x17\x2e\x9c\x66\xdb\xb6\x44\x22\x8a\xd5\x69\xaa\x62\x1a\x5e\x2a\ \x84\x9b\xd6\x11\x52\x01\x05\x84\x90\x01\xc8\x64\x95\x2c\x7a\xd8\ \x4c\xf3\x94\x5a\xdc\x8c\x8e\x9b\xd2\xf0\xb2\x5a\x48\x68\xcc\x00\ \x08\x87\xc3\x6c\xd8\xb0\xa1\xf1\xc3\x88\xd4\xeb\x92\xc9\xa4\x3e\ \x56\x5c\xd3\xe0\xba\x2e\x6b\xd6\xac\x61\xf5\xea\xd5\xef\xf0\x36\ \xca\xbc\xdf\xb2\x6a\xdb\x3f\xc5\x59\x55\x55\x45\xa9\x54\xe2\x17\ \xbf\xf8\x05\xf7\xde\x7b\x2f\xb6\x6d\x53\x53\x53\x43\x63\x63\x23\ \x2f\xbc\xf0\x02\xad\xad\xad\xe4\xf3\x79\xb2\xd9\x2c\x9e\xe7\x91\ \x4e\xa7\xc9\x66\xb3\xc4\x62\x31\x52\xc9\x14\x55\x95\xd5\x14\x4b\ \x05\x2e\xbb\xec\x32\x62\xb1\x98\x8f\x4f\x8d\xed\x68\x21\x04\x6f\ \xbd\xf5\x56\x90\xde\xdd\x1f\xde\x18\x37\x6e\xdc\xbb\xb2\xe3\x13\ \x89\x04\xb6\x6d\x8b\xbd\xf6\x10\xb3\x3f\x69\x22\xa3\x0a\x1e\x0e\ \xaa\xa6\xe0\xa5\x74\xac\x01\x03\xbb\x2f\x4c\xa9\xd3\x3f\xa1\xd2\ \x85\xda\x79\x61\xea\x16\x94\x28\xba\x71\x14\x05\x9c\x9c\xca\xf0\ \x43\x8d\xef\xb8\xe7\x0f\x54\x20\x8a\xa2\xac\xb9\xf0\xc2\x0b\xa7\ \xbd\x17\xca\x64\x28\x14\xe2\xc5\x17\x5f\x7c\xc2\x34\xcd\x27\x01\ \xea\xeb\xeb\x6f\xbd\xe9\xa6\x9b\x9a\xce\x3a\xeb\x2c\x56\xad\x5a\ \x15\xa8\xa7\x72\x1c\xa3\x28\x0a\xbd\xbd\xbd\x07\xe0\x50\xd1\x68\ \x94\xfa\xfa\x7a\xc6\x35\xd7\xc3\xbc\x21\xaa\x23\x21\x5e\xb9\x6d\ \x37\xb1\x58\x2c\x60\x9d\x1f\xcc\xd8\x3f\x95\xfc\x76\x3a\xaa\x6d\ \xdb\x58\xd2\x46\x41\x41\xcf\x4d\xe4\xe6\xf3\xee\xe1\x85\xdd\xbf\ \xe6\xf9\xd1\xc7\x99\x3c\xbf\x9e\xbe\xd8\x20\xd9\xed\x5a\x70\x6a\ \x3f\x31\xe1\x5c\xae\x38\xf5\x6a\xbe\xf0\xd3\xd3\xf8\xa7\xf3\xaf\ \xe4\xd1\x55\xf7\x04\x39\xa3\xbf\x94\xe8\x70\xd0\x02\xf1\x3c\xaf\ \xaa\x4c\xb1\x1c\x75\x33\x4c\xbc\x20\x4d\xa4\x42\x01\x4b\xc1\xb3\ \x15\xdc\x94\x86\x35\x60\xe0\x0c\x19\xb8\x19\x1d\x21\xfc\xaa\xa8\ \x50\x28\xd4\x3e\x30\x30\xf0\xeb\x31\x28\xff\x3f\xea\xeb\xeb\x1b\ \x57\xae\x5c\x29\xf6\x8f\x63\x74\x5d\xff\x93\xe0\x5d\x3e\x97\x67\ \x43\x7e\x07\x67\xcc\xaa\x40\xd5\x2d\x16\xde\x58\x81\xa6\x14\xd0\ \x55\x1d\xd7\x96\x38\x71\x83\xd4\xd2\xda\xe0\x7f\x5e\x7b\xed\xb5\ \xaf\xe6\xf3\xf9\x47\xde\xb6\xa1\xdc\xa6\xa6\xa6\xfc\xdb\xe7\x37\ \x4d\x13\xc7\x76\xf0\x54\x3f\x99\xf5\x99\xe9\xd7\xf0\x5f\xab\xff\ \x9d\x2f\xcc\xfa\x57\x66\x2d\xfc\x04\x7a\xb4\xc4\xcd\xbb\xaf\xde\ \x47\x06\xf7\x04\xaf\x74\x3f\x88\xf6\x6c\x8c\x4f\xcd\xfe\x32\x6d\ \xb1\x23\x70\x5c\xc7\x27\x7e\x8f\x09\xe4\x43\x39\x21\x65\x70\xcf\ \xb1\x1d\xb2\x4a\x9e\xca\x6a\x41\x36\x67\x72\xce\x11\x7f\xcf\xa8\ \xd9\xcd\x9b\x43\xab\xa9\x9a\xe6\x51\x18\xcd\x30\xf4\x70\x3d\x42\ \x0b\x6a\x3e\x82\xab\x8b\xc7\xe3\x09\xdb\xb6\xa7\x9a\xa6\x19\x40\ \x31\xe5\x2c\x5b\x52\x49\xd1\x38\x51\xc7\x4d\xeb\x78\x59\x1d\x69\ \xa9\x64\x0b\x29\x8c\xb0\xc1\xb8\xba\x71\x40\x06\x45\x15\xcc\x33\ \xbe\xc0\xe2\xc5\x67\x63\x91\xe3\x7b\x4f\xfd\x3b\xf3\x67\x4f\x66\ \xab\xb3\x35\x98\x67\x2c\xbf\x5d\xf4\x3c\x2f\xbd\xff\xb5\x47\xa3\ \xd1\xfa\xbe\xbe\xbe\xf0\xdb\x84\xa1\x96\xe3\x22\xcb\x30\x29\xa6\ \x15\xbc\x82\x4a\xef\xd0\x1e\x36\x29\x5b\x78\xab\xe7\x4d\x1a\x0e\ \xcf\xa1\x29\xa1\x80\x99\xa2\xa0\xa2\x22\x71\x5c\x9b\x81\xd4\x30\ \x7b\x52\x11\x34\xa1\x07\xe8\x43\x39\x9e\xf9\xf0\x04\xe2\x38\x78\ \xba\x8b\x50\x14\x3e\x5e\x7f\x19\xcd\xb1\x3a\x1a\x12\x47\xb1\x6e\ \x68\x3b\x9f\x3d\xf9\x42\x1e\x1f\xf4\xc9\x6d\x8a\xa4\x1c\x91\xef\ \x8f\xf5\x64\xc3\xe1\x30\xae\xeb\xa2\x69\x1a\x13\x27\x4e\xc4\x75\ \x5d\xd2\x4e\x81\x59\x17\xb9\x18\x61\x05\x17\x1b\xa1\x38\x78\x79\ \x85\xed\x77\xd7\x60\x88\x0a\x3f\x4a\xf0\x20\x95\x2a\x72\xfe\xf1\ \x17\x71\xdb\xda\xcb\xf8\xfc\xf4\xff\xe0\xdf\x17\xdf\x81\xad\x8f\ \xd2\xbe\xf5\xaa\x60\xc1\xfe\x48\x04\xad\xb4\xb4\xb4\x8c\x94\x13\ \x55\x00\x9e\xea\xa2\x69\x2a\x9e\x29\x10\x52\xd0\x20\x1a\xc8\x3d\ \x06\x37\x7b\xd7\xa3\x2b\x06\x3f\xf5\x6e\x43\x41\xc5\x99\xbb\x9b\ \x49\xb3\x9a\xf6\x95\xbc\xa1\xd0\x1a\x69\xe5\xb0\xe6\xc3\x58\xdf\ \xbb\x97\x1a\xa3\x11\x89\xc4\xb2\xec\x03\x28\xb4\x1f\x8a\x40\xca\ \xc7\xdb\x15\x0e\x0a\x61\x16\xcd\x5d\xc4\xca\xa1\x87\x19\xe9\xaa\ \xc0\x70\xea\xb1\xbd\x12\x48\xe1\x03\x88\x1e\xe5\x9c\xf3\xa9\xe3\ \xc7\x8f\x1f\x1c\x18\x18\xb8\xa7\x7c\xc1\xe5\x8b\x2e\xd3\xf8\x6d\ \xd7\x26\xa4\x6b\x24\x06\x5d\x7e\x70\xc1\xe3\x74\x66\xd6\xf1\xe0\ \xc6\xff\x44\x7a\xc2\x27\x19\x48\xc0\x00\xab\x24\x89\x46\x2a\xf0\ \x84\x43\xb6\x90\x67\xdd\xce\x0d\x54\xb4\xf4\xa3\x29\xa1\x7d\x05\ \x42\xef\x4e\xe9\x34\x2a\x2a\x2a\x88\x44\x22\x48\xcf\xa3\x47\x0e\ \x33\xff\x22\x6b\x1f\xe1\x6e\x34\x84\x33\x10\xa1\xd4\x6d\x10\x4e\ \x54\x8f\x91\x8a\xc2\x84\x8d\x30\xf3\xa7\x9f\xc4\x26\xf7\x09\x2c\ \x6b\xdf\xbe\x3a\xa5\xed\x52\x26\x4f\x8f\xf0\xfc\xf0\x2a\x56\x74\ \xd9\x50\xe6\x68\x8d\xdd\xdf\x5f\x72\x42\x0e\xda\x02\x95\x0d\xa0\ \x65\x59\x78\xae\x07\x63\xa5\xcc\x08\x51\xa6\x92\x51\x72\x72\x63\ \xef\x33\x83\x72\x85\xc3\x0f\x3f\xfc\x14\xc3\x30\xbe\x5a\x9e\x23\ \x16\x8b\x71\xd7\x5d\x77\x31\x7e\xfc\xf8\x7d\x75\x26\xb6\x83\x10\ \x82\xaf\x1c\xf3\x6d\xd6\x0c\x3d\xce\xce\x6d\x19\x66\xa9\x9f\xa5\ \xd2\xa8\x0e\xe6\x41\x42\xac\xc6\x60\x24\x35\x4a\xb5\x5e\xcf\xf8\ \xba\x46\x5c\xcf\xc6\x76\x6c\x84\x54\x02\xc2\xdb\x1f\xa3\x72\x4a\ \x29\xc7\x6a\x3e\x6c\xf2\x22\x0f\x12\x0a\x29\x95\x0b\x66\xff\x2f\ \xaa\x9b\x43\x18\xb3\xd3\x8c\x3b\x37\x4e\x78\x7e\x22\x98\xcb\x71\ \x5c\x96\x74\xdd\x87\x63\x7b\x24\x93\x49\x92\xc9\x24\xa5\x82\xc9\ \xa3\x9b\xee\xc2\x94\x39\x42\x95\x92\xce\xe2\x5a\x86\x77\xe7\x82\ \xbf\x8f\x51\x9e\x9c\x0f\xd5\x86\xb8\xae\x8b\x82\xc2\x8b\xed\x7f\ \xe0\xe4\x8f\x9d\x4c\x4a\xea\xbc\xd6\xf5\x34\x47\x36\x7e\x8d\x97\ \xc5\x73\x58\x56\x1e\x45\xfa\xe8\xec\x98\x57\xe6\x95\x77\xef\x75\ \xd7\x5d\x47\x3c\x1e\xa7\xa5\xa5\x85\x42\xa1\xe0\x9f\x10\x61\xa3\ \x48\x95\xc3\x9a\xa6\xf2\xda\xe0\x4a\x46\x0b\x25\x76\x0d\x75\x20\ \xf0\x17\x5a\x20\x90\x48\x2a\x2b\x22\x3c\xb2\xe5\x87\x7c\x79\xc1\ \x77\xe8\xcc\xad\xe6\xcd\xfc\xf3\x9c\x11\x39\x1b\x5b\xee\x63\x1f\ \xfe\x31\xb7\xb3\x1c\xb1\x4b\x57\xe2\x85\x7c\xa4\xe0\xc6\x33\x1f\ \xe6\xa9\xad\x3f\xe7\xba\x85\x0f\xb0\x64\xe3\x12\xcc\xea\x9d\x2c\ \x59\xff\x2a\xa6\xe9\x73\x03\x8c\x90\x4d\xff\x6a\x8b\x3d\x23\xa9\ \xa0\x20\xc7\x71\x6d\x92\x9b\x2c\x6e\xf8\xfa\xad\x28\xd2\x20\xdf\ \xef\x61\xe7\x75\x26\x8e\xaf\x06\x21\x51\x35\x85\x9a\x9a\x9a\xcf\ \xcf\x9d\x3b\xf7\xf8\xfd\x3f\x7f\x70\x70\x90\xee\xee\xee\x8f\xe7\ \x72\x39\xeb\x90\x09\xa4\x50\x28\xe0\xd8\x36\x66\xc4\xc3\xc3\x65\ \xb3\xf5\x30\x87\xf5\x4d\xa5\xae\x51\xa1\x6d\x96\xca\x7f\xae\xba\ \x04\xcb\x09\x91\xcb\xe5\x51\x74\x7f\x61\xca\xc1\x5c\xd9\x03\x59\ \xb9\x72\x25\x9f\xf9\xcc\x67\x02\x40\xcf\xf3\x3c\x6c\xc5\x46\x28\ \x1a\x99\x62\x86\x90\x6a\xa0\x8b\x10\x96\x6b\xe2\x38\x36\xa3\xa3\ \xa3\x28\x42\x21\x5b\xe5\x51\xb4\x2a\xe8\x0e\xbd\xc6\x0f\x9e\x4b\ \xf1\xa5\x4f\x7e\x11\x33\xd2\xc3\xb3\xdb\x7f\xce\x68\x57\x91\x64\ \x32\x1b\xb8\xc1\xef\xe6\x7a\x06\xfc\x32\x57\x42\x54\x22\xa4\x42\ \x4d\x64\x1c\x9b\xe3\xaf\x70\xf2\xf0\x67\xf0\x2c\x15\xd7\x75\x70\ \x5d\x89\x65\xfa\xc5\x21\x86\x61\x90\xee\x74\x31\x0c\x0d\x4d\xf3\ \xe7\xb4\x1d\x9b\xa6\xca\x49\x18\xd2\x40\x00\xb9\x89\x83\xcc\x3a\ \xcb\x81\x4c\x08\x37\x6e\xe0\x0c\x87\x91\xb6\xd2\x2c\x4d\xa5\x59\ \xda\x3e\x81\xaf\x4c\xea\xeb\xe8\xe8\x50\x0e\xe9\x09\xc9\xe7\xf3\ \x7e\x4e\xa0\x42\x62\xbb\x16\x9a\xaa\xf2\x78\xe7\x77\x39\xa2\x74\ \x0c\x96\x6d\x61\xa5\x15\xb6\xfd\x3e\x49\xc9\xb6\x10\xce\x81\xf6\ \xa2\x3c\x96\x2f\x5f\xce\xf3\xcf\x3f\xcf\xe0\xe0\x20\x2d\x2d\x2d\ \x7e\xb5\x92\xea\xa7\x6e\xef\x5b\x76\x0f\xff\x72\xc1\xb5\x94\x1a\ \x3c\x56\xfc\xee\x51\x2c\x3b\x12\xf0\xae\x34\xd7\x57\x8b\x9e\x25\ \xe8\x1b\x6e\xe7\x9a\x7f\x5d\xcb\xe8\x36\x93\xc2\xa0\x8b\x50\xc5\ \x01\x94\xa1\x77\xe3\x47\x05\x5c\x5c\x4f\xe2\x49\x89\x50\xfc\x53\ \xa7\x08\x05\x55\x55\x49\x66\x53\xa4\x43\x5d\xe0\x81\x65\xdb\x41\ \x21\x4e\x4b\x4b\x0b\xd1\x68\xb4\x5c\x10\x4a\x32\x99\x0c\xd4\xa2\ \x8a\x42\x69\x72\x82\xc8\xb8\x4a\x64\x5d\x11\xda\x8a\x07\x7c\xe6\ \xf0\xef\xc6\xe1\xa6\xb5\x80\xf6\x7a\xc8\x55\x56\x99\x0b\x1b\xc9\ \x29\xec\x7e\x31\x4f\x6a\xb7\x83\x99\xf6\x58\x55\x58\x82\x5b\x02\ \xd7\x94\x08\x55\xa0\x69\xfb\x16\x67\xff\x82\x18\xa0\xd0\xd3\xd3\ \x93\x97\x52\x4a\xdb\xb6\x23\xe9\x74\x5a\xb5\x6d\xdb\x4f\x50\x39\ \x06\xb2\xae\x9d\x47\x56\x3e\xc4\xe7\x4f\xfe\x3c\x8d\x93\xa0\xc7\ \x49\xe1\x38\x0e\x93\x26\x4d\xc2\x48\x24\x58\x7b\x63\x1e\xb7\x34\ \x06\xce\x0a\x90\x68\x84\xc2\xfb\xf2\xf9\x7f\x8a\x81\x5e\x16\x88\ \x74\x25\xd2\xf3\x91\xe9\x54\x21\xce\xec\xda\x53\x98\x32\x71\x02\ \x2f\xae\xf7\x38\xbe\xf9\x53\xbc\xe1\xfe\x38\x30\xe0\xe1\x70\x98\ \x68\x45\x94\xa6\xba\x09\x34\xd6\x4a\xde\xdc\xbe\x85\xb6\xb6\xb6\ \x7d\xf9\x1c\x1f\x57\xc1\x73\x42\x7c\xef\x93\x4f\xf2\xd2\x96\x17\ \x70\xaa\xf7\x92\xd8\x1b\x61\x93\xfd\x80\x5f\x16\x67\x79\x41\xeb\ \x90\x83\x21\xd3\xbd\x27\x81\xb4\xb5\xb5\x71\xe1\x85\x17\xb2\x7e\ \xfd\x7a\x06\x7a\x06\xf1\xac\x0c\x6e\xc8\x41\xea\x12\x2b\x62\x05\ \x09\x27\xcf\xf3\xc8\xe5\x72\xc1\xcf\x80\x33\x06\xa9\x9c\x5b\x86\ \x55\x62\xb1\xd8\x8b\xae\xeb\x7e\xd2\xcf\x3a\x7a\x28\x86\xbf\x6b\ \xdb\x47\x7e\x47\xc7\xfd\xaf\x30\xd8\x53\xc0\x2a\x48\xee\xbc\xf3\ \x4e\x26\x4f\x9e\xcc\xf0\xf0\x30\x4b\x96\x2c\xc1\x34\x4d\x5c\xd7\ \xa5\x50\x28\x90\xc9\x64\x98\x30\x61\x02\x7b\xf6\xec\x61\x64\x64\ \x84\xe6\xe6\x66\xba\xbb\xbb\xff\x68\x2a\x3a\x9f\xcf\x23\x5d\x0f\ \xcb\xf6\x09\x15\xdf\x7d\xf5\x62\xae\x3f\xf5\x11\x1e\xda\x74\x0b\ \x3b\xb4\x65\xf4\x77\x56\xe2\xd8\x2e\xb9\x5c\xa1\x9c\x66\xa0\xc7\ \x1b\xa1\xf9\xb2\x51\x22\xba\x8e\xbc\x67\x14\xe1\x34\x04\x20\xa8\ \x8a\x82\x22\x04\x21\x6b\x1c\xb1\x68\x8c\x1f\xbd\x74\x1d\xf7\x5e\ \xfc\x07\xea\x4f\xaa\x23\xd7\xbe\x85\x1e\x6b\x17\x96\xa9\x7c\x70\ \x02\xf9\xf5\xaf\x7f\xcd\xab\xaf\xbe\xca\x2d\xb7\xdc\xc2\xb2\x65\ \xcb\xd8\xb8\x71\x23\x42\x08\xba\xbb\xbb\x99\x34\x69\x12\x93\x27\ \x4f\x66\xf5\xea\xd5\x74\x74\x74\x70\xec\xb1\xc7\xb2\x71\xe3\x46\ \x8a\xc5\x22\xaa\xaa\x2e\x38\xf1\xc4\x13\x65\x40\x92\xf6\x3c\x34\ \x5d\x05\x47\x48\x84\xdf\x94\xa7\xfd\x5b\x1e\x12\x50\x14\x1d\xa1\ \xda\xa8\x7a\x2d\x8e\x19\x0f\xa2\xf8\xa9\x53\xa7\xf2\xc8\x23\x5f\ \x1c\x22\x28\x00\x00\x19\xed\x49\x44\x41\x54\x8f\x50\x57\x57\x47\ \x73\x73\x33\x8d\x8d\x8d\xdc\x7f\xff\xfd\x14\x0a\x05\xc2\xe1\x30\ \xb1\x58\xac\x5c\x38\x8a\xe7\x79\x6d\xb5\xb5\xb5\x1f\xdb\x8f\xa8\ \x11\x76\x5d\x37\xb0\x21\xb6\x09\x8e\xb4\x51\x2b\x6d\x7e\xb0\xfa\ \x2b\xb4\xd5\xcc\xa0\x94\xb6\xc9\x0f\x27\xe8\x7c\x2d\x45\xb1\xe8\ \xab\x97\x48\x38\x8c\x5d\x6d\x51\x53\x15\xc6\xce\x87\x69\xac\x99\ \x88\x3d\x60\xe3\x49\x1f\x8d\x76\xa5\x40\x11\x02\xe9\x29\x38\x9e\ \x0d\x02\x14\xdd\x65\xf7\xc0\x2e\xba\xd3\xdb\x70\x6c\xb0\x6d\x11\ \x6c\x88\x72\xa5\xd5\x21\x13\xc8\x13\x4f\x3c\xc1\x69\xa7\x9d\xc6\ \x9e\x3d\x7b\x18\x1a\x1a\xc2\xb6\x7d\xa3\xab\x69\x1a\x5b\xb7\x6e\ \xc5\xb2\x2c\x92\xc9\x64\x40\xb0\x03\x02\xe2\xf2\xc4\x89\x13\x7d\ \x6f\xa3\x94\xa2\x6e\xf1\x30\x13\x26\x86\x71\xb2\xaa\xb0\xfb\x22\ \x38\x03\x61\xac\xbe\x08\x65\x07\xba\xcc\xc1\x2a\x6c\xc9\x73\xe3\ \x8d\x37\x72\xc6\x19\x67\xf0\xfa\xeb\xaf\xe3\x79\x1e\xbb\x76\xed\ \xc2\xb6\x6d\x74\x5d\x67\xc2\x84\x09\x14\x0a\x05\x74\x5d\x0f\xc0\ \xc3\xe6\xe6\x66\x66\xce\x9c\xf9\x1d\xe0\x3b\xfb\x93\xfd\xb6\x6c\ \xd9\x82\xa6\x69\x48\x45\xa2\xc7\x61\xef\xcb\x45\x46\xb6\x9a\xa4\ \xba\x46\x11\x6c\x3b\x20\x23\x51\xb6\x7b\xaa\xea\x17\x75\x96\x8a\ \x2e\xb7\x9c\xf9\x3b\xfe\xfe\xa9\xf3\x28\x39\x2e\x12\x9f\x6c\x21\ \x3c\x40\x0a\xf4\x88\x43\x48\x35\x68\x8c\x4e\x22\x59\x1c\x42\x11\ \x51\xf0\x14\x6c\xc7\x0a\xd4\x5f\x99\x94\x7d\x48\x6d\xc8\x3d\xf7\ \xdc\xc3\x43\x0f\x3d\x44\x2e\x97\x7b\x87\x7e\x06\xd8\xb9\x73\x67\ \xf0\xbb\x35\x6b\xd6\x50\x5d\x5d\x1d\xfc\xbd\x8c\xf5\x8c\x94\x52\ \x1c\x39\xa5\x82\x62\xc9\x66\xf6\xe4\xe3\xd8\x53\xb3\x09\x67\x76\ \x16\xcf\x93\x98\x7b\x2a\x18\x7d\x31\x86\x50\x65\x90\xcc\x8a\x46\ \xa3\x41\x3e\x5f\x08\xe1\x97\xd2\xd9\x36\x93\x27\x4f\xc6\xb6\x6d\ \x14\x04\x3b\xd4\x3d\x1c\x73\xa1\x86\x90\x0a\xd2\x12\x78\x25\x15\ \x27\x1e\xc2\xea\x37\x70\x86\x0d\x9c\xb1\xce\x37\xc7\x1c\x73\x0c\ \x97\x5e\x7a\x29\xf7\xfd\xea\x3e\xe4\x28\x48\x75\x90\xba\x29\x5e\ \x60\x13\x4c\xd3\x24\x1a\x8d\x32\x86\x00\xa3\x69\x2a\x02\xbf\xe6\ \xb1\xae\xaa\x96\x82\x95\xc3\x71\xfc\x66\x39\xa5\x52\x09\x45\x0a\ \x42\x02\x6c\x2d\xc1\x8f\xff\xf0\x7f\xf9\xe5\xa5\x4f\x70\xd3\xeb\ \x17\x61\x78\x31\xaa\x23\x31\x4c\xb3\x97\x52\xc9\x0b\xec\xe9\xc1\ \x00\x8f\xef\x05\x5c\xdc\x65\x9a\xa6\x61\x59\x56\xcd\x3e\x86\xe2\ \x81\x30\xc5\xdb\x4b\xce\xb2\xd9\xec\x01\xb9\x0d\xff\xf7\x1e\x9e\ \x27\x39\x2e\x74\x39\x2d\x0d\x1a\x67\x4c\xba\x84\x5f\xbc\xfe\x9f\ \xcc\x98\xda\xcc\xaa\x3d\xab\xb0\x2d\x1b\xa1\xf9\x35\x29\x75\x8d\ \x31\x42\x5e\xa5\xaf\xd3\x14\x49\xae\x90\x65\xfc\xf8\xf1\x44\xa3\ \x51\xb2\xd9\x6c\xd0\x6d\x21\x57\x59\x40\xd3\xab\x89\x29\x93\x58\ \x38\xf7\x14\x5e\xda\xfd\x30\xce\x38\x17\x31\x2f\x41\xfc\xd5\x28\ \xf9\x2d\x7e\xb1\xcd\x1d\x77\xdc\xc1\x8a\x15\x2b\xf8\xc1\x7f\xfe\ \x80\x5f\xfd\xea\x57\xcc\x91\x47\xd0\xdd\xdd\xcd\xac\x59\xb3\x78\ \xe1\x85\x17\x98\x34\x69\x12\x96\x65\xa1\x69\x1a\xa1\x50\x88\x54\ \x32\x35\x56\x6b\x28\xf6\xab\x49\x71\xb0\x6c\xcb\x2f\x83\x70\xa1\ \xb2\x14\xc2\xf6\x74\x3a\xcc\x27\x59\xdd\x73\x18\x55\x15\x55\x0c\ \xe6\x77\x93\x1f\x74\x89\xf7\x25\xb1\x0b\xfb\x52\xbe\x07\x43\x39\ \x3d\x68\x81\x8c\x8c\x8c\x9c\x54\x2c\x16\x7f\x72\xce\x39\xe7\x5c\ \x7d\xdb\x6d\xb7\x91\xcd\x66\x79\xf8\xe1\x87\xd9\xb5\x6b\x17\x8a\ \xa2\x90\x4c\x26\x89\x44\x22\x28\x8a\xc2\xe8\xe8\x68\x90\xf5\x4b\ \xa5\x52\x94\x4a\xa5\x00\x5a\x70\xa5\x47\xa9\xe8\x71\xf1\x79\x7f\ \xcf\x4d\x2b\xfe\x1e\xad\x66\x02\x53\xab\x8e\x61\x76\x43\x2b\x2b\ \xe5\x2a\x4c\xcb\x44\xb8\x3e\x30\xd9\x74\x41\x96\xaa\x89\x05\xec\ \x11\x03\x77\x30\x02\x1d\x02\x67\xd8\x0b\xa8\x48\xb6\x6d\xe3\x4a\ \xdf\x08\x49\x04\xdf\x3c\xe5\x5e\x7e\xf4\xf2\xbf\xf2\xef\x67\x3c\ \xc4\xea\x8d\x6f\xb2\xc9\xf9\x35\x43\x76\x1f\xb6\xed\x2f\xe6\xd3\ \x4f\x3f\xcd\x82\x05\x0b\x68\x6f\x6f\x67\xe7\xce\x9d\xc1\x02\x25\ \x12\x09\x4a\xa5\x12\x89\x44\x22\x48\x3b\x17\x0a\x05\xca\x0d\x6c\ \x5c\x69\x32\x9a\x1e\xa5\xda\xa8\x23\xed\x24\x02\xc6\x0d\x02\x94\ \xbc\xa0\x30\xe2\x91\x1b\x76\xb9\xf5\xd9\x1b\x49\xec\x70\x49\x75\ \x3a\x20\xfd\xba\xf7\xb2\x0c\x0e\xb6\xa0\xe7\x3d\xa9\x2c\x21\x84\ \xbe\x70\xe1\x42\xd6\xad\x5b\xc7\x39\xe7\x9c\xc3\xe1\x87\x1f\x4e\ \x3e\x9f\xc7\xf3\x3c\x5a\x5b\x5b\x29\x14\x0a\x98\xa6\x49\x3a\x9d\ \x26\x1e\x8f\x53\x5b\x5b\x1b\x64\x01\x83\x1a\x13\xc5\x1b\xd3\xd3\ \xba\x8f\xcc\x0a\x85\xa1\xec\x00\xb9\xde\x4d\xfe\xfb\x4c\x2b\x38\ \x21\xb8\x82\x29\x91\xe3\x08\x1d\xee\xb2\xab\x61\x33\x66\x2c\xcf\ \xf0\x23\x3a\x20\x83\x40\x4f\x91\x3e\x15\x35\x1d\xf7\x88\x86\x2b\ \x58\xd6\xf9\x04\xd7\x6a\x37\xd3\x50\x57\x83\xd5\x6f\xe1\x38\x2e\ \xa6\xe9\x43\x33\x77\xde\x79\x27\x77\xdc\x71\xc7\x1f\xbd\xbf\xd1\ \xd1\xd1\x03\x7e\x8e\x55\x8f\xe5\x5c\xa2\x3a\xff\xe7\xf7\x9f\xa5\ \x36\x34\x89\xed\xc5\x5e\xa2\xd1\x28\x86\x61\xd0\xd4\xd4\x44\x6a\ \x73\x8a\x2d\x9b\xdd\x31\xb7\xdb\xef\x68\x54\x15\xf3\x0e\xa0\xd6\ \x96\x0b\x98\x0e\xb9\x40\xa4\x94\xfc\xf6\xb7\xbf\xa5\x9c\x60\xea\ \xe8\xe8\x08\x20\x8b\xb2\x8d\x10\x42\x50\x28\x14\x70\x5d\x37\x10\ \x56\x59\x3f\x03\xb8\x61\x8f\x48\x58\xe7\xe5\x0d\xcb\x09\x51\x4d\ \x6d\xb4\x9e\x81\x4c\x17\x67\x55\x7f\x9c\xad\x72\x07\xa6\x55\x42\ \xf1\x7c\x20\xb3\x3a\x7d\x2c\xe7\x1f\xfd\x45\x5e\x5a\xbd\x8e\x71\ \xd2\xe3\xf4\xd9\xa7\xf0\x7d\xeb\x76\xc2\xaa\xb1\x8f\x94\x37\x56\ \x61\xa8\x28\x82\x03\x6d\xa6\xc0\xf6\x8a\x63\x27\xc9\x25\x95\x4a\ \xf9\xe9\x80\xb1\x60\x50\x4a\xe9\x7f\xaf\xf9\x7c\xa2\xb0\x16\xa5\ \x60\x67\x51\x84\x8a\x6b\xfa\x0b\x97\x4e\xa5\x70\x5a\x1c\x4c\xa7\ \x84\x16\xf5\xd8\x38\xb4\x02\xd7\x11\x34\x36\x36\x72\xf7\xdd\x77\ \xe3\x79\x1e\xab\x57\xaf\x66\xd5\xaa\x55\xb4\xb6\xb6\xb2\x66\xcd\ \x1a\x8e\x3c\xf2\x48\x36\x6d\xf2\x37\x57\x5d\x5d\x1d\xf9\x7c\x9e\ \xde\xde\xde\x83\xe6\xff\xbe\x57\xac\x58\xd5\x34\x8d\x67\x9e\x79\ \x46\x0a\x21\x84\x22\x94\x80\x3d\xe8\x4a\x9f\xaf\xa4\x29\x21\x3f\ \x3f\xae\x86\x70\x1c\x87\x8a\x8a\x0a\xa4\x94\x41\xe9\xb1\xa5\xd8\ \x68\xba\xe0\xc1\xed\xff\xce\x2d\x67\x3f\xce\xda\xe1\x27\x08\x35\ \xf7\xd3\x93\xdf\x82\xed\x59\x14\xf2\x05\x14\xdd\x8f\x01\x8e\x9b\ \xbe\x80\xee\xd4\x76\xde\xec\x5f\xc7\xc2\x19\xa7\x11\x56\x8c\xb1\ \xb2\x33\x11\xb4\xf8\x50\xa4\x40\x22\xa8\xad\x0f\x91\xce\x67\x38\ \xf7\x88\x7f\x20\x51\x1c\x20\x97\x2b\x31\xb5\xf6\x28\xda\x9d\x3f\ \xe0\xba\xd2\xf7\xf2\x5c\x41\xa9\x26\xc1\xb4\xd8\x5c\x4a\xa5\x12\ \x03\x6e\x8a\x19\x5f\x34\x99\x56\xb1\x90\x8b\xcf\xf8\x12\x35\x6a\ \x2b\x37\x3d\x7e\x0d\xcf\x5e\xbf\x0e\x0f\x5f\xe0\x91\xa2\xce\xc0\ \x1b\x26\x99\x5e\x87\xd4\x9e\x02\xba\x5a\x5d\xce\xed\x30\x77\xee\ \x5c\xaa\xaa\xaa\xc8\xe5\x72\x74\x74\x74\xa0\xeb\x3a\xb1\x58\x0c\ \x29\x25\xc9\x64\x12\xd3\x34\x69\x6b\x6b\x63\xdb\xb6\x6d\x1f\x8c\ \xca\x52\x14\xe5\xd1\x37\xde\x78\x63\xda\xac\x59\xb3\x4e\x2b\x14\ \x0a\x58\xd2\x45\x9f\x9e\xa7\xae\xaa\x96\xb3\xe7\x7e\x8e\x92\x69\ \xb1\x74\xfb\x13\x9c\x39\xfb\x1c\x96\xee\xfe\x2d\xe9\xf5\x61\x0a\ \x85\x02\x42\x88\x60\x87\xe4\x85\x87\xed\x5a\x84\xaa\x3c\xfe\xed\ \xf7\x17\xb1\x78\xfe\xd9\x64\xf3\x29\xd6\xc7\x57\xb2\xf3\xe5\x2c\ \xd9\x82\x19\xec\xf4\x92\x69\xe2\x58\x2a\xae\xe3\x91\x2b\xa5\xf0\ \x1c\x1f\xcd\x95\x78\x68\x9a\xe6\xcf\x2d\xfd\xb8\x06\xe1\x71\xcd\ \xd3\xe7\xf3\xc3\xf3\x9e\xe2\xc6\xd7\x2f\x24\x53\x8a\xa3\xe9\x1a\ \x56\xc9\x22\x97\xdb\x97\x2b\x99\x14\x9d\x46\x3e\x9f\xf7\x53\xb7\ \xd8\xd8\xa6\xcb\xac\xc6\x45\x3c\xd9\xfe\x33\x0e\x53\x3f\xc1\x31\ \x0d\x8b\x79\x46\xae\xa6\xbe\xa1\x9e\xe3\x8f\x3f\x9e\xad\x5b\xb6\ \x12\xff\x83\x83\xe5\x98\xb8\x99\x0c\xd1\x6a\x9d\x64\x32\xc9\xd7\ \xbe\xf6\x35\x5a\x5b\x5b\xe9\xec\xec\xdc\x57\x2e\x27\x25\x3b\x76\ \xec\x08\x16\x3f\x95\x4a\x05\x2c\x99\x3f\x06\xe9\xfc\x45\x02\xc9\ \x64\x32\x2f\x55\x55\x55\x9d\xdc\xda\xda\x7a\x5a\x32\x99\xa4\x88\ \x45\xf5\xc9\x3a\xc7\x34\x9e\xc9\xdc\x63\x9a\x59\xb7\xb1\x93\xef\ \x7f\xe6\x6e\x8e\x9b\x79\x0c\x43\xcf\x2c\x63\x47\x4f\x08\xe1\xaa\ \xa4\x52\xa9\xc0\x80\x46\x4a\x2e\xd9\x21\x87\xc1\x8d\x16\xa3\xdb\ \xf6\xb0\xfa\x96\xbb\x83\x5e\x55\x4d\xa2\x99\xa6\xb9\xfb\x3e\xef\ \xf7\x0f\x3f\x05\x63\xcd\x5a\xfb\x78\x09\x80\x09\x13\xc7\x53\x2c\ \x16\xc9\x66\xb3\xe4\xf3\x79\x84\x14\x38\xa6\xf0\x85\x5c\x6d\x71\ \xe3\x6b\x7f\x47\x24\x5c\x41\x41\xd5\x48\x76\xda\x74\xae\x4c\x21\ \x9d\x80\xe0\xc7\xb8\xea\x71\xf4\xf7\xf7\xfb\xec\x79\xd5\x19\xab\ \xf8\xf2\xf1\x32\xd7\xf3\x48\x17\x13\xa8\xaa\xc6\xaa\x55\xab\x78\ \xf1\xc5\x17\xf9\xd2\x97\xbe\xc4\xb2\x65\xcb\xa8\xa8\xa8\xe0\xfe\ \xfb\xef\xa7\xad\xad\x8d\xae\xae\xae\xc0\x3d\xae\xa9\xa9\x39\xa8\ \xb5\x8b\xc7\xe3\x1f\x0c\x0d\x48\x55\xd5\x69\xe5\xf6\x4c\xb6\xf0\ \x6f\xa8\x52\x8f\x61\xba\x45\x4c\xa7\xc4\x50\xa6\x97\xbe\x6c\x2c\ \x80\xeb\x71\xf6\xf9\xde\xd7\x5e\x7b\x2d\x4b\x96\x2c\xa1\xe7\xbe\ \x04\xae\x6b\x13\x05\xf4\x4a\x2b\x28\x1c\xdd\x59\xe8\xe7\x88\xcf\ \x38\x54\x84\x35\xa4\xa9\x62\x27\x74\xdc\x11\x03\xab\x3f\x8c\x97\ \xd5\x10\x9a\x0c\x82\xc6\x6c\x36\xeb\xef\x4c\xd7\x23\xdc\x2d\xd8\ \xf6\xbb\x1c\xe9\xbd\x0e\x4e\x21\x81\x5d\x90\x38\x45\x89\x94\xa0\ \xa8\x6a\x50\xb8\x67\x84\x22\x6c\xea\x5a\x45\xb5\x6c\xf6\xf3\x1d\ \x86\x87\xae\x18\xec\x18\xdd\xc8\xf1\x47\x9f\xc0\x78\xed\x70\x36\ \xed\x5e\x13\x70\xbd\xda\xda\xda\xe8\xee\xee\xf6\x05\x3f\x86\xd8\ \x0e\x0c\x0c\x70\xc3\x0d\x37\x30\x3a\x3a\xca\x93\x4f\x3e\x19\x54\ \x28\xe7\x72\xb9\xe0\x24\x94\x49\xe5\xb5\xb5\xb5\xe5\x62\xa4\xd1\ \xe1\xe1\xe1\x85\x8d\x8d\x8d\x66\x6f\x6f\xef\xa1\x15\x88\x94\xf2\ \xb0\x80\x9d\xa8\xb8\xa8\x42\x63\xb4\x38\x40\x53\x74\x2e\x35\x15\ \x69\xb2\x56\x1a\x5d\x0d\xa3\xa0\x60\x5b\x26\xd2\x11\x38\x8e\xc3\ \x33\xcf\x3c\xc3\xe8\xe8\x28\x27\x9f\x7c\x32\xbf\xff\xfd\xef\x03\ \x2c\x6a\xd9\xb2\x65\x81\xc1\xef\x2d\xc5\x59\x34\x7e\x1c\x85\xac\ \xc7\x71\xd3\x3f\xce\xa6\xc1\x65\x38\x33\x72\x54\xa9\x92\xec\xe6\ \x0a\x32\xaf\x57\xfb\x86\x58\xf1\x8b\x7a\x16\x2f\x5e\xcc\xec\xd9\ \xb3\x79\x69\xc9\x4b\x78\x19\x09\x8c\x42\x05\x58\x9a\x85\x88\xf9\ \x0b\xa8\xeb\x3a\x99\x4c\x06\xc7\x71\xd0\x74\x85\x64\xb7\x83\x5e\ \x5f\xf4\x93\x55\x38\x78\x9e\xc1\x40\xe8\x55\xc2\xc5\xd3\xc9\xd7\ \xf6\xb0\xdb\x7a\x19\x5d\x35\xb8\xe8\xa2\x8b\x98\x3d\x7b\x76\xd0\ \xe5\xc7\xf3\x3c\x86\x86\x86\x98\x3a\x75\x2a\xdf\xf8\xc6\x37\x10\ \x42\x10\x0a\x85\xde\x35\x07\x53\x2e\x32\xcd\x64\x32\xd4\xd4\xd4\ \x50\x28\x14\x9c\xd1\xd1\xd1\xed\x1f\x14\x51\x4e\x09\x1a\x98\xa9\ \x7e\x6e\xb5\x50\xb9\x8d\xb6\xca\xeb\x38\x62\xf1\x09\x5c\xf3\xe4\ \x05\xb4\x4d\x6c\x06\x01\x96\x65\xe2\x8d\x61\x39\x6f\xbe\xf9\x26\ \x8d\x8d\x8d\x64\x32\x99\x72\xd3\x64\x86\x87\x87\x0f\xf0\xc0\x84\ \x10\x94\x6c\x93\x0b\x5a\x6e\x65\xc4\xdb\xc0\x3f\x2f\xb8\x9b\x97\ \xda\x97\x90\x8e\x6c\xa5\xdd\xde\x15\xf4\x16\x29\x0b\xe4\xf2\xcb\ \x2f\x27\x97\xcb\x71\xda\x69\xa7\x71\xfb\xed\xb7\x73\xc2\x89\x0b\ \xe8\xee\xee\xe6\xc8\x23\x8f\xe4\xd1\x47\x1f\x65\xf2\xe4\xc9\x7e\ \x7b\xc1\x54\x8a\x54\x2a\xc5\xe0\xe0\x20\x95\x95\x51\x32\x99\x0c\ \xa6\x69\x52\xf0\xfc\x32\x08\x4f\x95\xfc\xf4\x8d\x7f\xe2\xaa\x53\ \xbf\x8d\xed\x94\x30\x4d\x18\xd7\x54\x4b\x5f\x5f\x5f\xa0\x6a\x35\ \x4d\xc3\x30\x0c\x7a\x7a\x7a\x10\x9a\x40\xd5\xfc\x66\x01\x39\x33\ \x43\xa5\x51\xed\x57\x69\x45\x4d\xec\x3c\x63\x88\xf4\x81\xbd\xc5\ \x3e\x30\xe6\xa2\x10\x82\x44\x22\xe1\xe7\x05\x34\x49\xc9\x8a\x61\ \xab\x70\xe5\x6f\xcf\xe6\xd1\xaf\x6c\x44\x8b\x58\xdc\xb7\xe9\xdb\ \x78\x2e\xc4\x87\x92\x41\x50\x74\xeb\xad\xb7\xbe\x23\xdf\xbd\x3f\ \x1b\xdd\x87\x46\x60\x78\xa0\xc4\xd9\xe7\x9e\xc6\x95\xcf\x5c\xcf\ \xe2\x19\x17\x33\xa9\x76\x06\x03\xa4\x91\xde\xce\xa0\xb7\x48\xb9\ \x8e\xbc\xbb\xbb\x9b\x13\x4f\x3c\x91\xdf\xfc\xe6\x37\x01\x15\xb5\ \xdc\x4c\x40\x4a\x19\xb4\xf7\xd0\x75\xdd\x8f\xac\xc7\x3e\xaf\x6c\ \x84\x2b\x8a\x1e\xa5\xb8\x47\xcf\xae\x12\xf1\xad\x16\xff\xf0\xdd\ \xaf\xfb\xf9\x7b\x05\x46\x46\x46\x0e\x70\xf7\xcb\xc5\xa4\x0a\x82\ \xf8\x94\x0c\xc7\x9e\x59\xc5\xaf\xfe\x76\x25\x67\xde\x39\x85\x67\ \xae\x58\xc1\xe6\xce\x0e\x9e\xea\xbd\x91\xad\x8f\x8f\x32\xba\xc9\ \x37\xde\x86\x61\xb0\x7d\xfb\x76\x1a\x1b\x1b\x3f\x38\x81\x94\x17\ \x58\x51\x14\x34\x4f\xa2\xea\x02\xd7\xf1\x60\x54\x72\xca\xa5\x87\ \x93\xeb\xf2\xb0\xf2\x12\x33\xe3\x05\x1c\xa5\x62\xb1\x28\xcb\xb5\ \xea\x6f\x17\xae\x10\x62\xdf\x0e\x32\x7c\x17\x7a\xff\xbf\xdb\x8e\ \xcd\xae\xec\xc6\x31\xd6\xbc\x15\xb0\x91\x15\x45\xe1\x5b\xdf\xfa\ \x16\xd1\x68\x34\x20\xc1\x95\xe7\xdf\xbc\x79\x73\x80\x18\xec\xff\ \x99\xe5\xfa\x12\xc3\x30\xb8\xfa\xea\xab\x59\xbe\x7c\x39\x83\x2f\ \x0e\xe2\x7a\x1e\x21\xc7\xa6\xa9\x51\xee\x6b\xed\x37\xa6\xa6\xca\ \xbd\x7c\xcb\xc1\xad\x22\x05\x52\x08\x6a\xea\x74\xe2\x99\x11\xae\ \x38\xe9\x46\xfa\xb3\xbb\x18\x49\xa4\x38\x7e\xe2\xd9\xbc\x61\xff\ \x9c\x32\x85\xab\x6c\x53\xde\x0b\xe9\xe1\x7d\x09\x44\x08\xc1\xb4\ \x69\xd3\x48\xa5\x52\x0c\xdc\x6b\xd2\x63\x9a\x08\x45\xe2\xe7\x6d\ \xfd\xc0\x24\xa4\x4a\xa4\x22\xcb\xa4\x69\x31\x30\x30\xb0\x6c\x64\ \x64\xe4\x94\xb7\xcf\x35\x67\xce\x9c\xb8\x69\x9a\xe3\x84\x10\x60\ \x40\x4d\x4d\x98\x3d\x7d\x7d\x78\x8e\x82\xa6\xe8\x64\xcd\x24\x4d\ \x91\x36\x76\xba\x71\x4c\xd3\x0e\xba\xef\xd8\xb6\x4d\x34\x1a\x0d\ \xd2\xb6\xfb\x7b\x72\x65\xb8\xfb\x80\x93\xe8\x82\x65\xfa\xc4\xed\ \xab\xae\xba\x0a\x21\x04\x0f\x3e\xf8\x20\xdf\xfe\xf6\xb7\xe9\xea\ \xea\x62\xe6\xcc\x99\x8c\x8c\x8c\x60\xdb\x36\x4d\x4d\x4d\xbc\xf2\ \xca\x2b\x84\x42\x21\xc6\x8f\x1f\xcf\xba\x75\xeb\xb0\x6d\xdb\xc7\ \xe6\x3c\xb0\x2c\x70\xa5\xcd\xb5\x2f\x9e\xc7\xff\x3d\xf5\x29\xee\ \xdd\xfc\xcf\xf4\xa4\xde\x42\x4b\xa8\x94\x0a\x26\x99\x8c\x79\xc0\ \x26\x78\x2f\x6c\xc6\xf7\x63\xd4\x39\xf2\xc8\x23\xb9\xec\xb2\xcb\ \x38\xe2\x88\x23\xb8\xf9\xe6\x9b\xe9\xec\xec\xa4\xa6\xa6\x86\x91\ \x91\x11\x74\xdd\x6f\x2e\x39\x38\x38\x88\xae\xeb\x68\x9a\xc6\xe0\ \xe0\x20\xe9\x74\xda\xfb\x63\x89\xa3\x52\xa9\xe4\xef\xc8\x2a\xc9\ \xb8\x71\x95\xfc\x68\xd9\xbf\x70\xd7\xdf\x2d\xe3\x97\x6f\x5c\xcf\ \x9b\xa9\x2d\x1c\x31\x69\x0e\xae\x37\xc6\x0e\x1c\xb3\x21\x53\xa7\ \x4e\x0b\xe2\x15\x55\x55\x59\xb1\x62\x05\xcd\xcd\xcd\xef\xea\xeb\ \xab\x21\x08\xcd\x4d\xd2\xb7\xb2\x48\x21\xe9\xb0\x6b\xd7\x2e\xae\ \xbc\xf2\x4a\xf6\xee\xdd\x4b\xb1\x58\xa4\xb1\xb1\x91\xca\xca\x4a\ \x74\x5d\x67\xd9\xb2\x65\xd4\xd5\xd5\xd1\xda\xda\x4a\x4f\x4f\x4f\ \x50\x4e\x5d\x2c\x16\x83\xb8\xc7\x49\x0b\x92\xfd\x7e\x31\xe9\xbf\ \x3e\x79\x3e\x15\x46\x98\x6c\xce\x25\xdd\x63\xd2\xb9\x22\x8b\xaa\ \xa8\x07\x6c\x9a\xb1\xcd\x11\x06\x98\x34\x69\x92\xdd\xdd\xdd\xed\ \x1e\xb2\x72\x84\xda\xda\xda\x35\x4d\x4d\x4d\xc7\x1d\x2c\xa7\xb6\ \x3c\x5c\xd7\xa5\xbf\xbf\x7f\xc6\xc8\xc8\xc8\xce\xfd\x7f\x3f\x7d\ \xfa\xf4\x78\xa9\x54\x1a\xa7\x28\x0a\xc3\x13\x5c\xfe\xf1\x5b\x13\ \xb1\x2c\x97\x9a\xc2\xb1\x1c\x35\x67\x0a\x4b\x77\xff\x06\x4d\xd3\ \x58\xf5\x83\x04\xa9\x2e\x5f\x17\x54\x56\x54\xb1\xe8\x96\x2a\x86\ \xee\x6f\x44\x3a\xbe\x5a\x58\xbb\x76\x2d\xd1\x68\x94\x70\x38\x1c\ \x30\xef\xcb\x69\x5d\xc7\xb5\x31\xa2\x21\xdc\x92\x0c\x9a\x0b\xec\ \xcf\x52\xf9\x53\x19\xd2\xe6\xe6\xe6\xfd\xaa\x7a\x64\x90\xb3\xf9\ \x63\x9b\xb5\xa7\xa7\x87\x6d\xdb\xb6\x21\x84\xa0\xb2\xb2\x32\x28\ \x8e\x2d\x6f\xbe\xb5\x6b\xd7\x7e\x29\x99\x4c\x3e\x70\x48\x4f\x88\ \x61\x18\xcc\x98\x31\x03\x80\x7e\x33\xc1\xe4\xb3\xf3\x44\xc2\x1a\ \xc2\x34\xb0\x87\x42\x38\xc3\x61\x9c\xe1\x03\x1b\x59\x46\x22\x11\ \xee\xbd\xf7\xde\xf4\xbb\x4d\x59\x26\x97\x85\x73\x50\xca\x78\x0c\ \x6d\xb1\xe8\xd8\xf3\x0a\xcf\xdf\xb9\x04\xcf\x14\xd8\x79\x0f\xd7\ \xf4\x8d\xf1\xbe\xbc\xb9\xc0\x76\x1c\xa4\xed\xeb\xfa\x39\x73\xe6\ \xd0\xda\xda\x4a\x2c\x16\x63\xdb\xb6\x6d\x8c\x8e\x8e\xd2\xd4\xd4\ \xc4\xd0\xd0\x10\xfd\xfd\xfd\x78\xa6\xaf\xba\x4c\xd3\x0c\xe8\x47\ \x0a\x02\xc7\x94\xd8\xb2\x84\x42\x08\xcb\x2d\xa1\xab\x1a\x48\x05\ \x4d\xd5\x28\x95\x8a\x0c\x0d\x0d\x21\x10\xac\x2c\x6d\xe5\x9c\xcb\ \x62\x28\x52\xe0\x9a\x80\xa5\xfb\xd7\x36\x60\x50\xda\x5d\x81\x97\ \xf5\xaf\xad\x50\x28\x50\x5b\x5b\x1b\x54\x1b\x47\x8c\x8a\x20\xce\ \x8a\x46\xa3\x7f\xd6\xe3\x7a\x5f\x02\x29\xe7\xb4\x15\x04\xa3\x5a\ \x9c\xf9\x2d\x61\x32\xd9\x34\xed\x77\x58\x4c\xac\x99\x82\xeb\x65\ \x11\x8a\xc0\x72\x1d\x74\x5d\x20\x4d\x0d\x44\x82\xb3\xce\x5c\x3c\ \x54\xb6\x01\x65\xa3\xd7\xd5\xd5\x45\x28\x14\xe2\xf4\xd3\x4f\x67\ \xfd\xda\x75\xb4\xdf\xec\x20\x85\x0e\x42\x47\x93\x6e\xd9\xd1\xc6\ \x88\x2a\x81\x8b\x5c\x66\xa2\x58\xa6\xef\x56\xab\xaa\xca\xc0\xc0\ \x00\xae\xeb\x52\x59\x59\x49\x26\x93\x09\x58\x1e\x8e\xe3\x10\x0e\ \x87\x39\xef\xbc\xf3\x48\xa7\xd3\x2c\x5f\xbe\x3c\xc8\x08\x0e\x47\ \x8b\x9c\x7e\x55\x15\xc7\x1a\x57\xd1\x30\xc5\x64\x51\xeb\x17\xb8\ \x7f\xc5\x4f\xf9\xf8\x91\x0b\xb9\xf3\xb9\x6f\xd3\xff\x98\x87\xa5\ \xfa\x0d\xd2\x0a\x58\x18\xba\x42\x23\x47\x72\xfa\x51\xe7\xf0\xe4\ \xb6\xbb\x50\x9d\x4a\x72\x2d\xbd\x8c\xe4\x25\xa5\xd1\x48\xe0\x31\ \x1e\x73\xcc\x31\x6c\xdf\xbe\x9d\x7c\xa6\x80\x31\x37\x49\x69\x57\ \x04\xa1\xec\xf3\x0e\x0f\xa9\x40\xaa\xab\xab\x03\x86\xa0\x82\x00\ \x4d\x62\x3b\x2e\x7f\x33\xf1\x26\x12\x8d\x77\x05\xbb\x20\xe5\x66\ \x19\x77\x41\x9c\x71\x0d\x3a\x4e\x1e\xec\xa1\x0a\xdc\x11\x03\x7b\ \xd0\x40\x16\x55\xdc\xbc\x8a\xa6\x69\x94\x4a\x25\x7e\xf3\x9b\xdf\ \x00\x70\xc6\x19\x67\xb0\x7c\xf9\x72\x1c\xc7\x21\x1e\x8f\x53\x53\ \x53\x43\x4f\x4f\x0f\x8b\x16\x2d\x62\x64\x64\x84\x35\x6b\xd6\x10\ \x8d\x46\xd9\xbb\xa7\x1b\x81\xc0\xb2\x6c\x3c\x9b\x20\x3a\x0e\x87\ \xc3\xa4\x52\xa9\xe0\x5a\xfb\xfa\xfa\x08\x87\xc3\x58\x96\x45\x22\ \x91\x60\xca\x94\x29\x81\x6b\x2c\x84\xc0\x0d\xbb\xa8\x8a\xc6\x26\ \xef\x7e\x2e\x09\xdd\xce\x53\xbb\x7f\xc4\x4e\x6f\x29\x3b\xdf\x78\ \x0e\x4f\x2a\x7e\x1a\xda\x94\x7e\x4f\x47\x43\x30\x38\x94\xe3\x3b\ \x17\xdc\xca\xff\x7e\xf6\x0c\xee\xfe\xfc\x12\xf6\xf4\xf7\xf0\x74\ \xef\xad\x0c\xda\x5d\x81\x0a\xf4\x3c\x8f\x78\x3c\x3e\x86\xe1\x29\ \x78\x8e\x87\x6b\x9a\x08\x95\x03\x02\xc9\xbf\x98\x4a\x1a\x90\x64\ \x0d\x23\xd8\x09\x25\xd3\xf4\xdb\x7c\xdb\x06\xe7\x9d\xb8\x98\xbc\ \x99\x09\xe8\xa1\x23\x4e\x9a\x8a\x50\x08\x33\xab\xb0\x70\xca\xf9\ \xd4\x4e\xd1\x88\x1e\x95\xa1\xf6\xec\x11\x2a\x4f\x89\x07\xdd\xb1\ \xcb\x5e\xd0\xc8\xc8\x08\xe1\x70\x18\x45\x51\x98\x33\x67\x0e\x86\ \x61\x30\x69\xd2\x24\x6c\xdb\x0e\x3a\x44\x9c\x78\xe2\x89\xa4\xd3\ \xe9\x31\x57\x52\x39\xa0\x4d\xb9\xeb\xba\x41\xcb\xf0\x72\xb3\x9c\ \x78\x3c\x1e\xd4\x3d\x76\x74\x74\xf0\xec\xb3\xcf\xa2\xaa\x6a\xd0\ \x81\xa2\x50\x2c\x62\x3b\x16\x28\x36\x77\xb4\x5f\xc6\x70\xb6\x0f\ \x89\x24\x3f\xe2\xb2\xfe\xde\x38\xae\xb7\xaf\xeb\xb5\xa2\x28\x8c\ \x0c\x98\xc4\x6a\x42\x28\xaa\x4b\x44\xaf\xa4\xa6\xb2\x86\x78\xae\ \x2f\x48\x96\x95\x89\x7f\x5d\x5d\x5d\x7e\x73\x4e\x55\x41\xba\xde\ \x01\x34\xd7\x3f\xe7\x02\xbf\x2f\xb7\xb7\xac\x3a\x04\x7e\xa0\x55\ \xf6\x2a\xf6\xb5\xff\xb6\x71\x15\x17\x45\x15\x7c\x7a\xd2\x37\xc9\ \xc8\x5d\x5c\xbf\xe8\x31\x1e\x5d\xfd\x20\xcd\x93\x74\x9e\x58\x71\ \x5f\x70\x93\xd1\x68\x94\x2b\xaf\xbc\x92\xc9\x93\x27\xd3\xdf\xdf\ \x8f\xeb\xba\x2c\x5d\xba\x14\xcf\xf3\x68\x6f\x6f\xc7\x71\x9c\x40\ \x1d\x95\x03\xcb\x90\x66\x04\xf1\x8b\x6b\xf9\x49\xa0\x50\x28\x44\ \x5d\x5d\x1d\x42\x08\x6a\x6b\x6b\xdf\x76\xc1\x63\x24\x03\x45\x04\ \xa5\xd0\x9e\xe7\x51\x9d\x51\xe9\x5a\x52\x20\xd7\xed\x62\x65\x3d\ \xd6\x14\x56\xe2\x14\xc1\xb3\x25\x8a\x2a\x70\x0d\x77\x5f\x5b\x43\ \x14\x74\x5d\xc1\x19\xe3\x35\x83\xff\xf4\x20\x04\xb8\xae\x87\x69\ \xfa\xfc\x33\xd7\x71\xa8\x6d\xae\x27\x99\x8f\x13\x8a\x99\x84\x2a\ \x55\xd2\xb6\xdf\x37\xf2\x60\x4a\x15\xde\x57\xa4\x5e\x5e\x78\x81\ \xdf\x30\xc0\xf1\x6c\x4a\xa6\x89\xa6\xe8\xfb\x0a\x60\x0c\x0f\x4f\ \x0a\x5a\xab\x67\xf0\x9b\x3d\xbf\xa0\x2d\x74\x22\xf5\x91\x16\x0c\ \x25\x83\xf4\x08\x04\x52\x2a\x95\x64\x28\x14\x12\x9d\x9d\x9d\xfb\ \x47\xef\x52\x08\x21\x5c\xd7\x45\xda\x60\x7b\xde\x98\x43\xa8\x82\ \x02\x96\x63\x63\x3a\x92\xd1\x91\x04\x72\x8c\x65\x5f\xce\x4c\xe6\ \xf3\xf9\x75\x1d\x1d\x1d\x0f\xd6\xd7\xd7\xff\x58\xd3\x34\xbf\x0f\ \x7c\x9d\xc7\xe1\x0b\x2b\xc0\xae\xa2\x32\x57\x45\x75\x75\x35\x97\ \x5c\x72\x09\xcb\x97\x2f\x67\x78\x70\x18\xc5\xc9\xe1\x86\x5c\x3c\ \xcd\xc3\x8d\xba\x01\xe4\x51\xde\x78\xca\x58\x43\x9c\xa9\xd3\x6b\ \xd8\xd1\xb5\x97\xd3\x0f\xfb\x3b\xde\x1c\x5e\x4d\x32\x51\x64\x76\ \xc3\x09\xbc\xe5\xfc\x01\xcb\xf2\xb3\x86\x85\x7c\x81\x07\x7f\xf9\ \x30\x3f\x79\xea\xfb\xfc\xcd\x27\x4e\xe5\x67\x8f\xfd\xc4\xcf\x82\ \xaa\x7c\x30\x27\x44\x4a\xa9\x4a\x29\x65\xa9\x54\x12\x02\x81\xe7\ \xb9\x54\x44\x15\xfe\xf9\xe1\x8b\x91\x9e\xc0\xb6\x7d\x42\xb6\xa7\ \xb9\x08\x11\x02\x24\xaa\xe2\x1b\xb3\x91\x54\x9c\x5c\x65\x7f\xa0\ \x6e\x00\x1a\x1b\x1b\xc5\x1b\x6f\xbc\xf1\x95\x62\xb1\xf8\x10\xe0\ \x45\xa3\xd1\xeb\xa7\x4d\x9b\xf6\xcd\x64\x32\x89\xa3\x48\xa6\x7f\ \xa5\x92\xd6\x96\x30\x76\x41\x62\x17\x3d\x52\x9d\x36\x99\x6e\x87\ \x25\xff\x6c\x07\x5e\xfb\xd8\xb3\xa6\x44\x2c\x16\x43\xd3\xb4\x5d\ \xf9\x7c\xfe\xce\x96\x96\x96\x1f\x97\x79\x58\x6e\xb5\xa0\xed\xd4\ \x28\x5a\x58\xf2\xd2\xfa\x7e\x7e\xf6\xfd\x5f\xb1\x77\xef\x5e\x6e\ \xbf\xfd\x76\x6e\xb8\xe1\x06\x74\x5d\xa7\xbe\xbe\x9e\x62\xb1\xc8\ \xee\xdd\xbb\x59\xb4\x68\x11\xeb\xd6\xad\x63\xfd\xfa\xf5\xe4\x72\ \x39\xc4\x98\x47\xa7\xeb\x2a\xdf\x79\xf5\x0b\xdc\x7e\xc1\x0b\x7c\ \x7f\xcd\x97\xc8\x5a\x09\x14\x5d\x90\xcf\x9a\x64\xb3\x3e\xea\xeb\ \x58\x2e\x23\x72\x33\x4e\xdd\x56\x96\xed\x4e\x21\x5d\x49\xb1\x54\ \x44\x28\x3e\x13\xf2\x90\x0b\x64\xd7\xae\x5d\x9f\x6a\x69\x69\x19\ \x48\xa7\xd3\x7e\x13\xfd\x71\x02\xd3\x89\xe2\xd5\xee\x61\xb4\x90\ \x25\x22\x6b\x7c\x81\x44\x20\xa4\x84\xe8\x4a\x77\x30\xbf\xfe\x34\ \x8e\x9e\x3e\x8f\xd7\x77\xbc\xc2\x11\xb1\xa3\x59\xea\x3d\x8f\x65\ \x39\x41\x8e\x22\x12\x89\xd8\xc5\x62\xb1\x34\xf6\xb3\x13\x0e\x87\ \x31\x0c\x03\x03\xe8\xff\x95\x43\xbf\x92\x7b\x17\x5a\xab\xbe\x3f\ \xc5\x55\x64\xb3\xd9\x6d\xbb\x76\xed\xba\x41\xd7\xf5\x37\x01\xb5\ \x4c\x44\x90\x42\xe2\xb9\x3e\x27\xca\x35\x21\x6a\x84\x79\xfa\xe9\ \xa7\xb9\xf6\xda\x6b\x79\xe9\xa5\x97\x28\x95\x4a\x44\xa3\x51\xfa\ \xfb\xfb\x89\xc5\x62\x0c\x0f\x0f\xd3\xd9\xd9\x49\x38\xec\x27\xd7\ \x4a\xa5\x12\x8a\x50\xb0\x5d\x0f\xc7\xb3\xa9\xab\x37\xb8\xfe\xb5\ \x4f\xfb\xea\xaf\x4f\x32\xb4\xb9\xc8\x9e\x65\x79\x14\x6d\x8c\x9d\ \xe8\x29\x24\xf2\x43\xa0\xba\x0c\x15\xf6\xb2\x77\x6d\x9a\x5c\xae\ \x04\x82\x43\xef\x65\x8d\x31\xef\x06\x03\xd6\x05\x10\xb2\xa0\x98\ \xf6\x18\x79\xd3\xc4\xca\x7b\xb8\x5e\x0e\xc7\x71\x28\x19\x2e\xb6\ \x5b\xc1\x92\xa1\x9f\x70\x4e\xe3\xb7\x78\x78\xeb\x2d\xec\x16\x2f\ \x92\xd8\xbe\x02\x4f\xba\x64\xb3\xd9\x20\x3e\x79\x3b\x95\xa8\xad\ \xad\x8d\x1b\x6f\xbc\x91\x89\x13\x27\xf2\xcb\x5f\xfe\x92\xae\xae\ \x2e\xc6\x8f\x1f\xcf\xb6\x6d\xdb\xa8\xaf\xf7\xbb\x33\x74\x75\x75\ \x61\x18\x06\x91\x48\x84\xae\xae\x2e\x84\x10\x83\x89\x44\xe2\x37\ \xe5\xb0\xa7\x5c\x60\x34\x61\xc2\x04\xd2\xc3\x69\x5e\xbf\x3e\xe7\ \xc7\x22\x8a\xca\xcb\x2f\xbf\xcc\x86\x0d\x1b\x82\x16\x1d\xe5\xe8\ \xbe\xfc\xb5\x9c\xb3\x28\x63\x76\xae\xeb\x52\xdb\xa9\xb1\xe6\xc7\ \x29\xac\x8c\x87\x53\x92\x38\x79\x89\xf4\x7c\xb7\xa8\xdc\x8b\x45\ \x51\x14\x8c\x90\xc1\x75\x5f\xf8\x21\x6e\xc1\x8f\x9f\x24\xa0\xee\ \xc7\x75\x3e\xa4\xd0\xc9\xfe\xf8\x90\xae\xeb\x2c\x5e\xbc\x98\x75\ \x6b\xd6\xb1\xe9\x66\x0b\x94\x10\x6e\xd1\xc4\x74\x0b\x38\xb6\x43\ \xa9\x52\xe2\x48\x0b\x43\x53\x79\x76\xe8\x26\x4e\x98\x72\x1a\xf9\ \x64\x89\x91\xb7\x7a\xd9\xf3\x72\x81\x62\xf1\xdd\x9f\x8a\xe6\xba\ \x2e\x33\x66\xcc\x20\x1e\x8f\xf3\xc9\x4f\x7e\x92\x19\x33\x66\x90\ \x4a\xa5\x38\xee\xb8\xe3\x68\x6b\x6b\xa3\xbf\xbf\x9f\x50\x28\x14\ \xa4\x46\xcb\x4d\x64\xde\x8e\x3a\x94\x69\x3f\xe5\xf4\xf1\xaa\x55\ \xab\x48\xa5\x52\xbc\xfa\xea\xab\x18\x86\x41\xb1\x58\x0c\xc0\xbf\ \x72\x92\x69\x2c\x6e\x19\x50\x14\xa5\xcc\x48\x98\xfe\xb9\xcf\x7d\ \x4e\x39\xf5\xd4\x53\x79\xf8\xe1\x87\xc9\x66\xb3\xe4\xd4\x5c\x60\ \x43\xcb\x0d\x30\x5d\xd7\x27\x51\x94\x89\xe5\xd5\x4a\x03\x4e\xd8\ \xc1\x52\x2c\x22\x91\x08\x85\x42\x21\xe8\x6c\x71\x48\xb9\xbd\xfb\ \x0b\x66\xcd\x9a\x35\x6c\xd8\xb0\x81\x4f\x7d\xea\x53\x6c\xde\xbc\ \x99\x81\x81\x01\x96\x2e\x5d\x4a\x3e\x9f\xc7\x75\x5c\xa2\x49\x85\ \xa1\x0d\x16\x85\x3e\x87\xe4\xce\x04\xcf\x75\xdf\x87\xa2\x0b\x14\ \x15\x14\x6d\x7f\xba\xa6\xfa\x0e\x44\x76\xd5\xaa\x55\x2c\x58\xb0\ \x80\xdb\x6e\xbb\x8d\xa5\x4b\x97\x22\xa5\xe4\x91\x47\x1e\x21\x9f\ \xcf\x13\x0e\x87\x83\xee\x0e\xa5\x52\x89\xe5\xcb\x97\xbf\x2b\xd5\ \xbf\x0c\xb5\x4b\x29\x39\xec\xb0\xc3\x58\xb2\x64\x09\xba\xae\x73\ \xe2\x89\x27\xb2\x70\xe1\x42\xee\xbd\xf7\x5e\x2a\x2b\x2b\xa9\xaf\ \xaf\x27\x9f\xcf\xb3\x67\x8f\xdf\x71\x63\xeb\xd6\xad\x57\x27\x12\ \x89\xc7\x00\x66\xcc\x98\x51\xb8\xe4\x92\x4b\x22\xa3\xa3\xa3\x5c\ \x7e\xf9\xe5\xdc\x7b\xef\xbd\x9c\x7f\xfe\xf9\xb4\xb7\xb7\x33\x67\ \xce\x1c\x9e\x7b\xee\x39\x66\xce\x9c\x49\x43\x43\x03\xc9\x64\x92\ \x55\xab\x56\xd1\xdb\xdb\x1b\xb8\xe7\x1f\xfb\xd8\xc7\x58\xbb\x76\ \x2d\xbb\x77\xef\xe6\xb0\xc3\x0e\x63\xd7\xae\x5d\x1f\x8c\x40\xca\ \x5e\x48\x2e\x97\xa3\xa1\xa1\x01\x21\x04\xb3\x66\xcd\xe2\xd5\x57\ \x5f\xa5\xb1\xb1\x91\xeb\xaf\xbf\x9e\x07\x1f\x7c\x90\xc4\x8e\x04\ \x8a\x69\x12\x8e\x39\x34\xce\xf6\x4b\xaa\xcb\xcc\xf1\x72\xd3\xe2\ \x77\xab\x1d\x0f\x87\xc3\xdc\x7c\xf3\xcd\xef\xfa\xd9\x65\x1a\x6b\ \xb9\x9b\x36\x10\x60\x45\x6f\xbf\xc6\x2b\xae\xb8\x82\x33\xcf\x3c\ \x93\xe5\xcb\x97\x07\xde\x61\xb9\xe1\x81\x94\x92\xd1\xd1\x51\xf6\ \xec\xd9\x13\x08\x74\x6c\x9e\xa0\xc2\xa8\xb2\xb2\x52\xbc\xfe\xfa\ \xeb\x9c\x7b\xee\xb9\xdc\x70\xc3\x0d\x58\x96\xc5\xe6\xcd\x9b\xe9\ \xea\xea\xa2\xae\xae\x8e\x5c\x2e\xc7\xde\xbd\x7b\xe9\xec\xec\xc4\ \xb2\x2c\x0a\x85\x02\x52\x4a\x8e\x38\xe2\x08\x1e\x7b\xec\x31\x74\ \x5d\x27\x1a\x8d\x52\x51\x51\x41\x22\x91\x38\x28\xd4\xf7\x7d\x55\ \x27\xb6\xb5\xb5\xc9\xa6\xa6\x26\x26\x4f\x9e\xcc\xc0\xc0\x40\xe0\ \x31\xc5\xe3\x71\x1e\x7c\xf0\x41\xde\x78\xe3\x0d\xbe\xfa\xd5\xaf\ \x72\xfb\xed\xb7\x33\x38\x38\x48\x24\x12\xa1\xbe\xbe\x9e\x95\x2b\ \x57\xd2\xdc\xdc\xcc\xae\x5d\xbb\x18\x1d\x1d\xa5\xae\xae\x8e\x81\ \x81\x01\x76\xef\xde\x7d\x51\x22\x91\xb8\x7f\x6c\x51\x66\x56\x55\ \x55\xcd\x14\x42\xbc\x97\x4e\x6d\x9e\xeb\xba\x5d\x83\x83\x83\x6f\ \x96\x6d\xc8\xe1\x87\x1f\x5e\x68\x6e\x6e\x3e\xa0\xcb\xf6\x1f\x2b\ \x77\xdb\x5f\x0d\x6f\xd8\xb0\xe1\xcb\xc9\x64\xf2\x3e\x80\x13\x4e\ \x38\xa1\x58\x28\x14\xc2\x65\x0c\x6d\x7f\xd2\xf4\xfe\x5f\xdf\x4e\ \xa5\x0d\x85\x42\x41\xcc\x54\xee\xef\x55\x6e\x3a\xbd\x65\xcb\x96\ \x2f\x25\x12\x89\x07\x0e\xb9\xca\xca\x64\x32\x74\x74\x74\x04\x79\ \xeb\x32\xd7\xf7\xe9\xa7\x9f\xe6\xea\xab\xaf\xe6\xb5\xd7\x5e\x63\ \xc7\x8e\x1d\x81\x5d\x28\x43\x0a\xa1\x50\x28\xc8\xe2\xbd\xdb\x43\ \x1c\xb3\xd9\xec\xf6\x6c\x36\xbb\xfd\xfd\x5c\x57\x7d\x7d\x7d\x99\ \xdd\x61\x0e\x0d\x0d\x2d\xee\xe9\xe9\x79\xaf\x53\xd8\x35\x35\x35\ \x9b\xcb\x0c\xfe\xe1\xe1\xe1\xe7\xa3\xd1\xa8\x5a\x2c\x16\x8f\x55\ \x14\x65\x3c\x80\xab\x42\xdd\x14\x8d\xe1\xad\x05\xa4\x2b\x29\xd9\ \x25\xc2\x5a\x05\x20\xc7\xf0\xbb\x12\x4d\x4d\x4d\x07\x08\x6f\xff\ \xb6\xeb\x42\x08\xfd\x90\x9f\x90\xfa\xfa\xfa\xdd\xab\x56\xad\x3a\ \xac\xbd\xbd\x9d\xa3\x8f\x3e\x9a\x27\x9f\x7c\xb2\x8c\xe6\x06\x39\ \xec\x70\x38\xfc\x0e\xaf\xe2\xdd\x76\xaa\x61\x18\x6c\xdb\xb6\x2d\ \x38\x21\xff\x2f\x8e\xf1\xe3\xc7\x3f\x1a\x0a\x85\x2e\x04\xc8\x55\ \x78\x9c\xf1\xcd\x46\x22\x06\xe4\x87\xab\xf8\xfa\x79\xff\xc6\xed\ \x2b\xaf\x81\x92\xce\xc0\x86\x22\x6f\x3d\x96\xf5\x1f\xb0\xe9\x37\ \x46\x7b\xa8\xbf\xbf\xff\x8b\xfb\xa9\xc1\xd2\x21\xf5\xb2\xf6\xc3\ \xb3\xe4\x4d\x37\xdd\xc4\x2d\xb7\xdc\xc2\x4b\x2f\xbd\x44\x6f\x6f\ \xaf\xff\x28\x87\x74\x1a\x5d\xd7\x83\x27\xcd\x1c\x4c\x72\x3f\x9b\ \xcd\xfe\xc9\xd6\x1a\xff\x8f\x0c\x25\x70\xf3\x6d\x81\xe7\x49\x4a\ \x49\x41\x72\x47\x9c\xcb\xbe\x7c\x15\x99\x2e\x2b\xd8\xdb\x46\x24\ \x14\xe4\xed\x85\x28\x3f\x68\xe3\xe0\x1f\x36\xf9\xbe\x73\xea\xed\ \xed\xed\x2c\x5e\xbc\x38\x68\x3e\x2c\xa5\xa4\xba\xba\xfa\x8f\x16\ \x5c\xc6\x62\x31\x76\xee\xdc\x79\x6c\x7f\x7f\xff\x7a\xfe\x9b\x8e\ \x53\x4e\x39\x85\xae\xae\x2e\xf6\xdc\x99\xc3\x73\x25\x52\x1a\x08\ \xa9\x53\x5d\x1d\xf1\x0b\x78\xc6\x6c\x46\x39\x3c\xb0\x6d\xfb\x3d\ \xb7\xbc\x7e\x5f\x02\x31\x4d\xf3\x65\xd7\x75\xb7\x95\xbd\x93\x83\ \xe9\x10\x94\x4a\xa5\x6c\xcf\xf3\x46\xff\x3b\x0a\x42\x4a\x69\x5e\ \x72\xc9\x25\x9c\x72\xca\x29\xb4\xb4\xb4\x70\xc7\x1d\x77\x90\x4a\ \xa5\x68\x68\x68\xa0\xb7\xb7\x97\x9a\x9a\x1a\xda\xda\xda\x58\xb1\ \x62\x45\x90\xa2\xd8\xb0\x61\x03\xb6\x6d\xaf\xfb\xc0\x05\x52\x5d\ \x5d\xcd\xf0\xf0\xf0\x65\xc3\xc3\xc3\xfc\xff\x68\xc8\x32\x0e\x15\ \x0e\xfb\x7d\x80\xcb\x7d\xbd\xa6\x4c\x99\xc2\xe6\xcd\x9b\x99\x30\ \x61\x02\x53\xa7\x4e\xa5\xa7\xa7\x87\xee\xee\xee\x32\xb9\xc1\xfe\ \xc0\x05\x72\x28\xdb\x6a\xff\x77\x19\x9a\xa6\x71\xff\xfd\xf7\xf3\ \xc2\x0b\x2f\x90\xcd\x66\x83\xb8\xa5\x1c\x78\x4a\x29\xe9\xee\xee\ \x0e\xbe\xf7\x3c\xef\x7d\x37\xe8\xd7\xf8\x68\xfc\xd9\xe1\x38\x4e\ \xc8\x30\x0c\xd2\xe9\xf4\x01\x1e\xe2\x9f\x8a\x69\xc6\x82\xe7\xf7\ \xec\xad\x88\x8f\x96\xfb\xcf\x8f\x48\x24\xd2\x54\x2a\x95\xaa\xde\ \xe3\xba\xba\x75\x75\x75\x83\xa3\xa3\xa3\x85\x8f\x56\xf0\xa3\xf1\ \xd1\xf8\x68\x7c\x34\x3e\x1a\x1f\x8d\x8f\xc6\x47\xe3\xa3\xf1\xd1\ \x38\x60\xfc\x7f\xa7\x8c\x4b\xc9\xd0\xc3\x6c\x1c\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\x7c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x1c\x0e\xa7\xa1\x6f\x29\x00\x00\x02\xfc\x49\x44\x41\x54\x78\ \xda\xed\xd6\xbf\x6f\x1c\x45\x18\xc6\xf1\xef\xcc\xed\xda\xb1\x0f\ \x9b\x93\x85\x90\x2d\xb0\x38\x12\x09\x77\x6e\xac\x14\x6e\x10\xe0\ \x8b\x90\x4b\x37\x14\xc8\x7f\x03\xfc\x01\x54\x27\x51\x42\x81\x28\ \xdd\xd0\x90\x36\x6d\x30\x8e\x70\x2a\x44\x44\x94\x20\x17\xc8\x0e\ \x06\x64\x90\xec\xe4\x02\xde\xf3\xde\x9e\xf7\xd7\xec\x50\x1c\x39\ \x89\x32\x52\xae\x58\xf1\x7c\xa4\xed\x76\xa4\x9d\x7d\xe7\x79\xdf\ \x01\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\ \x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\ \x11\x79\x31\x4c\x9d\x3e\x76\x71\x71\xf1\x13\x63\x4c\xf8\x9c\xcb\ \xa6\x80\xcf\x4e\x4f\x4f\xff\x56\x41\x5e\xb0\xf5\xf5\x75\xdf\x6e\ \xb7\xf1\xde\x53\x51\x51\xbe\xf9\x94\x97\xae\x4c\x53\x3e\x99\xc6\ \x9d\xcd\x8c\x5e\xb2\x60\xac\x1f\xef\x2c\x8e\x63\xf6\xf6\xf6\x56\ \xb2\x2c\x3b\xaa\xc3\x1e\x83\xba\x45\x3a\x4d\x53\x0c\x70\x3f\xff\ \x85\xce\xf5\x19\x1a\xe1\x05\x99\xbb\xa4\x19\x5e\x81\x24\xa0\x3c\ \x9f\x22\xfb\x75\x86\xe1\xe1\x2c\x00\x65\x59\x62\x8c\xf1\x75\xd9\ \x9f\xad\x53\x31\xaa\xaa\x22\xcf\x73\xf2\xbc\xc0\x53\x61\x8d\xe1\ \xaa\x79\x9f\xcf\x3b\x77\x78\xe7\xf5\x0f\x98\xe7\x1a\x8b\x57\x5b\ \xd8\x57\x32\x8a\xa2\xa0\x28\x0a\x9c\x73\xb5\x3a\x70\xb5\x4a\x88\ \x73\x8e\x3c\xcf\xc1\x8f\x26\xc3\x60\x90\xf2\xe1\x7b\x1f\xf3\xd1\ \xad\x1b\x7c\xbd\xfd\x90\x77\x5f\x3b\xe3\x24\x7d\xc0\x17\xf7\x3f\ \x25\xcf\x73\xbc\xf7\xcf\x12\xa2\x82\x4c\x82\xf7\x9e\x2c\xcb\x30\ \x18\x98\x82\xe1\xc0\x31\xd7\x6c\x92\x57\x29\x00\x87\x7f\x1e\xf2\ \x63\x72\x0b\xe3\x2d\x59\x96\x8d\x53\xa5\x82\x4c\xb8\x65\x19\x00\ \x0f\x73\xf3\x53\x0c\x86\x43\xa6\x1b\xa3\x79\x51\xe1\x29\x5d\x81\ \xf7\x8c\x92\xf4\xec\xe6\x52\xa3\x82\xd8\x3a\x26\x24\xcb\x72\x2a\ \x3c\x2f\xcf\x37\xb9\xfd\xf3\x4d\xba\x37\x6e\xf2\xe0\xf4\x2e\xf7\ \xfe\xf8\x96\xb7\xdf\xd8\xa2\x28\xf3\x7f\xdf\xcb\xd4\xb2\x26\xa9\ \x28\x0a\xe2\x38\xc6\x1a\x4b\x32\x57\x71\x99\x35\xf9\xc1\x7d\x45\ \x75\x6f\x8e\x57\xaf\x65\x1c\x97\xdf\xf0\xfb\x4f\x7b\x44\x8f\x13\ \xce\xcf\x13\xbc\xf7\xcc\xce\xce\x62\xad\x55\x41\x26\x16\x69\x6b\ \x31\x18\x4c\x05\x8d\x69\x43\xc3\x86\x7c\xf7\xdb\x97\x5c\xdc\x31\ \x3c\x79\x94\x90\xfe\xe5\x48\x1e\x3b\x8c\x31\xb5\x4a\x46\x6d\x0b\ \xe2\x9c\x63\x61\x61\x81\xf0\x6c\xc8\xf7\xdd\x0b\x2e\x9f\x56\x18\ \x03\xc6\x8e\x1e\x6f\x0c\x41\x10\x8c\x67\x4e\x9d\xd2\x51\xcb\x5b\ \x56\xb7\xdb\x65\x63\x63\x83\xfd\xfd\x7d\x0e\x0e\x0e\xe8\xf5\x7a\ \x94\x65\x49\x55\x55\x44\x51\x44\xab\xd5\x22\x49\x12\x7a\xbd\x1e\ \x8d\x46\x83\x7e\xbf\x8f\xf7\xbe\x3e\x1d\xa0\x6e\x33\xa4\xdd\x6e\ \x73\x72\x72\xc2\xe6\xe6\x26\x51\x14\xb1\xb4\xb4\xc4\xda\xda\x1a\ \xdb\xdb\xdb\x78\xef\x69\xb5\x5a\xac\xac\xac\xd0\xe9\x74\x28\xcb\ \x92\x30\x0c\x6b\x95\x90\x5a\x35\xd9\xd5\xd5\x55\xbf\xbc\xbc\xcc\ \xd6\xd6\x16\xbb\xbb\xbb\xa3\x01\x6f\xed\xf8\xc7\x47\x51\x44\x18\ \x86\x78\xef\x49\xd3\x14\xe7\x1c\xce\x39\x8e\x8e\x8e\xde\x1a\x0c\ \x06\x8f\xd4\xb2\x26\xa0\xdf\xef\xb3\xb3\xb3\x33\x9e\x13\xff\x39\ \x5d\xc6\x50\x14\xc5\x68\x63\x41\x40\x10\x04\x14\x45\xa1\x6b\xef\ \xa4\x1c\x1f\x1f\x3f\x04\xca\xe7\x59\x13\x86\xe1\x4c\xb3\xd9\x4c\ \xe3\x38\x46\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\ \x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\ \x44\x44\x44\xfe\x4f\xfe\x01\xd1\xc0\x51\x25\xbd\x25\x7f\x60\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x3f\xd1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x50\x00\x00\x00\x50\x08\x06\x00\x00\x00\x8e\x11\xf2\xad\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x36\x08\x21\xa9\x06\x34\x00\x00\x20\x00\x49\x44\x41\x54\x78\ \xda\x9c\xbc\x69\x98\x24\x57\x79\xe7\xfb\x3b\xb1\xe6\x9e\x59\x99\ \x59\x5b\xd7\xd2\x55\x5d\xbd\xaa\x17\x49\x2d\xb5\xf6\xd6\x0e\x12\ \x12\x18\x8c\x6d\x60\x7c\x19\x6c\x23\x1b\xcc\xb0\x08\xcf\x18\xdb\ \x63\x3f\x9e\xe5\xde\x67\xbc\x8c\xf1\x78\x7b\xbc\x8c\x3d\x36\xc6\ \xf6\x18\x06\x63\x1b\x0c\xd8\x80\x05\x5a\x11\x12\xdd\x48\xa8\x5b\ \xea\x7d\x51\x55\xd7\xbe\xe4\x16\xfb\x7a\xee\x87\xac\xcc\xae\x06\ \xc6\x73\x9f\x9b\x1f\xba\xb3\x9e\x38\x71\xe2\x8d\x13\x27\x22\xce\ \xef\xfd\xff\xdf\x14\xef\x7a\xd7\xbb\xa4\xe3\x38\xd4\x6a\x35\x5e\ \x7f\xfd\x75\x7c\xdf\x67\x61\x61\xc1\xfa\xe8\x47\x3f\x5a\x2c\x97\ \xcb\x84\x61\xc8\x8b\x2f\xbe\x88\xaa\xaa\x84\x61\x48\x18\x86\x74\ \x3a\x1d\xd6\xd7\xd7\xa9\xd5\x6a\x9c\x39\x73\x66\x75\x68\x68\xa8\ \xf8\xfe\xf7\xbf\x3f\x5b\xab\xd5\xf8\xf4\xa7\x3f\xcd\xf0\xf0\x30\ \x17\x2f\x5e\x64\x68\x68\x88\xf9\xf9\x79\x4c\xd3\xc4\x34\x4d\x4e\ \x9e\x3c\x19\x25\x49\x12\xfc\xe2\x2f\xfe\x62\x61\x78\x78\x98\x67\ \x9e\x79\x06\xc7\x71\xb8\x72\xe5\x0a\x83\x83\x83\x34\x1a\x0d\x86\ \x87\x87\xd9\xd8\xd8\x60\x6e\x6e\x0e\xdb\xb6\x3b\xb7\xdf\x7e\xbb\ \x78\xc3\x1b\xde\x50\xac\xd7\xeb\x3c\xf3\xcc\x33\xac\xac\xac\x90\ \xa6\x29\x8e\xe3\x50\x2a\x95\xb8\x7c\xf9\x32\x51\x14\xe1\xba\x2e\ \xf3\xf3\xf3\xb3\xef\x79\xcf\x7b\xb6\x3f\xf0\xc0\x03\x7c\xe9\x4b\ \x5f\xe2\xca\x95\x2b\x14\x0a\x05\x82\x20\x20\x8a\x22\x66\x67\x67\ \xa9\x56\xab\x34\x9b\x4d\x2e\x5d\xba\x74\xee\xae\xbb\xee\xda\xf9\ \xb3\x3f\xfb\xb3\xca\x73\xcf\x3d\xc7\x4b\x2f\xbd\xc4\xf4\xf4\x34\ \x97\x2f\x5f\x46\xd3\x34\x6c\xdb\x66\x72\x72\x92\x73\xe7\xce\xb1\ \xb8\xb8\xb8\xb4\xb2\xb2\xb2\xfc\xeb\xbf\xfe\xeb\x37\x66\xb3\x59\ \x4e\x9c\x38\xc1\xfa\xfa\x3a\xb6\x6d\xa3\x0c\x0d\x0d\x91\xcb\xe5\ \x10\x42\x30\x39\x39\x89\xa6\x69\x08\x21\xc8\xe7\xf3\xfc\xc8\x8f\ \xfc\x08\x83\x83\x83\x54\xab\x55\xa6\xa6\xa6\xd8\xb1\x63\x07\xc5\ \x62\x91\x52\xa9\x84\xae\xeb\x8c\x8d\x8d\x01\x10\x86\x21\x0f\x3c\ \xf0\x00\xd7\x5f\x7f\x3d\xa6\x69\x32\x35\x35\xc5\xe0\xe0\x20\xdb\ \xb7\x6f\xa7\x5e\xaf\x63\x9a\x26\xfb\xf7\xef\x47\x08\x81\xef\xfb\ \xec\xdf\xbf\xbf\xbf\x6d\x6c\x6c\x8c\x52\xa9\xc4\xbe\x7d\xfb\xc8\ \xe7\xf3\x14\x0a\x05\x76\xee\xdc\x49\xa1\x50\x40\x55\x55\x56\x57\ \x57\xb9\xfd\xf6\xdb\x29\x95\x4a\xa4\x69\x4a\x26\x93\xa1\x54\x2a\ \x11\x04\x01\xba\xae\x23\x84\xa0\x5e\xaf\xa3\x69\x1a\x52\x4a\xf6\ \xee\xdd\xcb\x7d\xf7\xdd\x47\xb1\x58\x64\x70\x70\x90\xe9\xe9\x69\ \x06\x06\x06\x98\x9c\x9c\xc4\x30\x0c\x86\x87\x87\xc9\xe5\x72\x00\ \x68\x9a\xc6\xbe\x7d\xfb\x30\x0c\x83\x5c\x2e\xd7\xdf\x5e\x28\x14\ \x30\x0c\x83\x28\x8a\x28\x16\x8b\xa8\xaa\x8a\x10\x82\xc1\xc1\x41\ \x6e\xbe\xf9\x66\xc6\xc6\xc6\xd8\xbb\x77\x6f\x77\xdc\x0e\x1f\x3e\ \x2c\x01\xa4\x94\xfd\x00\x3b\x9d\x8e\x95\xcf\xe7\x8b\x99\x4c\x06\ \xd7\x75\x11\x42\x20\xa5\xa4\xf7\x91\x52\x22\x84\x40\x08\x41\xa7\ \xd3\x59\x1d\x1c\x1c\x2c\xa6\x69\x9a\x05\x88\xa2\xa8\xbf\x3d\x4d\ \xd3\xfe\xbe\x52\x4a\xe2\x38\x8e\xa2\x28\x0a\xf2\xf9\x7c\xa1\x58\ \x2c\x62\xdb\xf6\xf7\xf4\xbb\xf5\x7f\x4d\xd3\x3a\xed\x76\x5b\x94\ \x4a\xa5\x62\x92\x24\x28\x8a\x72\xcd\xf1\xb7\xf6\x5f\xad\x56\x79\ \xed\xb5\xd7\x66\xaf\xbb\xee\xba\xed\x8e\xe3\x90\xa6\x69\xff\x9c\ \x7a\x6d\x7a\xfb\xe8\xba\xce\xec\xec\xec\xb9\x3d\x7b\xf6\xec\x6c\ \xb7\xdb\x8a\xa6\x69\xd7\x1c\x77\xeb\x47\x4a\x89\xa2\x28\x4b\x6b\ \x6b\x6b\xcb\x43\x43\x43\x37\x9a\xa6\x89\xef\xfb\x08\x21\xba\x31\ \xa6\x89\x6c\x08\x01\x08\x50\x14\x05\xcf\xf3\x52\xcb\xb2\x2e\x67\ \xb3\x59\xdd\xb6\x6d\x04\x82\x34\x95\x80\x40\x08\x09\x9b\x6d\x7b\ \x07\x8b\xe3\x78\xa5\xd3\xe9\xec\xd1\x34\xad\x24\x10\x9b\x07\xdd\ \xfc\x47\x00\x9b\xfb\x6c\x1e\x30\xf4\x3c\x6f\x31\x93\xc9\x28\xed\ \x76\x1b\x05\xe5\xfb\xf6\xdd\x0b\xae\xd3\xe9\x34\x92\x24\xd1\xd3\ \x34\x2d\x0a\x04\x71\x9c\x76\x8f\x20\x05\x42\xa4\xdd\x38\xe8\xc6\ \xb1\xbe\xbe\x1e\x03\x8d\x76\xbb\x5d\x4d\xd3\x34\x12\x88\xee\x96\ \x14\xa4\x90\x88\xcd\xb6\x42\x08\x92\x24\x51\x84\x10\xad\x8d\x8d\ \x8d\xbf\x35\x0c\xc3\x90\x69\x4a\x9a\x00\xdd\x50\xba\x31\x28\xb2\ \x7b\x0a\x42\x08\xd7\x75\x97\xc2\x30\x2c\x48\x29\x35\xcf\x75\x13\ \xa4\x42\x2a\x53\x40\xa0\xed\xb9\x7b\xb4\x9a\xac\x99\xc8\x50\x41\ \x28\x82\x28\x8a\x08\xc3\x30\xbb\x6d\xdb\xb6\x7c\x1c\xc7\xc4\x15\ \x87\xc2\x64\x44\xe2\x81\x6c\xe6\x88\x1b\x3a\x32\x50\x51\x0c\x89\ \xa2\x28\x44\x51\xb4\x32\x33\x33\x53\x52\x55\x35\x1b\x11\x11\x4f\ \x34\xa9\xd6\x35\x22\x4f\x22\x5a\x05\xa2\x0d\x1d\x02\x15\xa1\x82\ \xeb\xba\xe1\xdc\xdc\x5c\x6e\x64\x64\xa4\xa4\x28\x0a\x6b\xe6\x3a\ \x3b\xae\xd3\x08\xda\x02\xd9\xca\x10\x37\x0d\x64\xa0\xa0\x18\xdd\ \x19\xdb\x6a\xb5\xbc\x34\x4d\xe3\xed\xdb\xb7\x17\x9d\xc8\xa3\x7c\ \xd8\x41\x20\x49\x5c\x05\xda\x39\xa2\x75\x1d\x22\x05\x54\x89\xa1\ \x1b\xac\xac\xac\xfc\xf3\xae\x5d\xbb\x8a\x32\x96\xac\x15\x97\x99\ \xdc\xab\x13\x78\x09\x58\x19\xd2\xa6\x49\xdc\xd2\x11\x0a\x18\x86\ \x4e\xa7\xd3\xb9\x65\x64\x64\xe4\xfa\x8c\x99\x31\x37\x42\x8b\xa1\ \xeb\x43\x14\x14\xe2\xa6\x4e\xda\xcc\x90\xb6\x55\x84\x01\x42\x01\ \xcb\xb2\x08\x82\xe0\x89\xd1\xd1\xd1\x83\x41\x18\x11\x8d\xb6\xa9\ \x8d\x2a\x44\x36\x68\xf9\xbb\x56\x21\x51\x69\x7f\xad\x4a\xb8\x6a\ \x20\x14\xd0\x34\x2d\xcd\x66\xb3\xd8\x9e\x8b\x32\x1d\x92\xbf\xa9\ \xc3\x9e\xea\x11\x4e\x2f\x1e\xc3\x4c\xf3\xd0\xc9\xd1\xfc\xe7\x01\ \x54\x55\x45\xd3\x34\xd1\xbb\x75\x6d\xcd\xc1\xd8\xb5\xc1\xd4\xae\ \x03\x8c\x57\xb7\xf3\xe4\xe9\xcf\x53\xd2\xca\xd8\x4f\xd7\x09\x16\ \x75\xa2\x28\x12\x9a\xa6\x29\xa6\x69\x22\x84\xc0\x38\xe0\x33\x70\ \xab\xc6\xb6\xdc\x1e\x2e\x2f\x9f\x45\xa4\x90\xce\xd6\xb0\x5e\xce\ \x23\x63\xc8\xe5\x72\x51\xa7\xd3\x11\x69\x9c\xb2\x21\x5b\x6c\x3b\ \xec\x30\x6a\xec\x43\xd3\x53\xe6\xd6\x2e\x10\x77\x34\xdc\x63\x55\ \xfc\x05\x0d\xd3\x30\x91\x52\x66\xd2\x34\x45\x06\x12\x6b\xef\x2a\ \xc5\x43\x75\x0e\x97\x8f\x70\x6e\xfd\x18\xad\xe6\x32\xb9\x76\x85\ \xc6\xd7\x4a\x28\x8a\xe8\x3d\xe7\x43\x53\xd5\xcd\x97\xc3\x59\x0e\ \xdf\x5f\x24\x8d\x15\x0a\x6a\x9e\xc5\x8d\xd7\xc9\xca\x2a\xd6\xf3\ \x65\xc2\x15\x83\x5c\x2e\x01\x28\x9b\xa6\x49\x33\x08\x98\xba\x1b\ \xcc\x41\x9b\x1d\x85\x9b\x50\x7e\x74\xdf\xaf\x70\xc3\x8e\x3b\x89\ \x65\x80\xe7\xf9\x04\x41\x80\x94\x12\xdf\xf7\xf1\x83\x80\x50\xba\ \xdc\x51\xf9\x71\xee\xdb\xfe\x4e\x7e\xe5\xc1\x2f\x71\xf3\xe4\x0f\ \x50\x1b\xeb\x3e\xc4\x83\x20\x20\x49\x12\xc2\x30\xc4\xf7\x7d\xa2\ \x24\xa4\xb1\x16\xf2\x8e\xeb\xfe\x1d\x39\x6f\x86\xf7\xdf\xfc\x9b\ \xbc\xe7\x9e\x9f\x21\x90\x6e\xbf\x7d\x9a\xa6\x5b\xf6\x8d\x79\x74\ \xfb\x87\xd9\xad\x3f\xcc\x8f\xdd\xf2\x4b\xdc\xbf\xe3\x31\x44\xd1\ \x27\x08\x7c\x7c\xdf\x27\x8e\x63\xa2\x38\xc2\x73\x5d\xa2\x24\x66\ \xbc\xb0\x9b\xa3\xa3\xef\xe4\x07\xa7\x7e\x81\x01\xef\x76\xee\xbf\ \xe1\xcd\xb8\x49\x1b\xdf\xf3\x89\xa2\x08\x00\x3f\xf0\x71\x5d\x17\ \x5d\xd3\x98\xd2\x6f\xe7\x81\xf1\x9f\xe0\x86\xf2\xdb\xf9\xaf\x6f\ \xf9\x12\xb2\xe0\xe1\xfb\x3e\x9e\xeb\x91\xa6\x69\x37\x6e\x2f\x20\ \x11\x09\xae\x1b\xf0\xa1\x83\x7f\xc2\x1b\x76\xbd\x9b\x8f\xde\xfe\ \xe7\x4c\x4c\x8f\x12\xe2\xe1\x7b\x3e\x61\x18\xf6\xc7\x24\x08\x03\ \xa4\xf0\xb9\x5d\x7b\x9c\x5b\x27\xde\x80\xa2\xc4\x3a\x6e\xe0\x10\ \x04\x11\xbe\xe7\xf5\x1b\x7b\x9e\xd7\x7d\xfd\x27\x01\xfb\x87\x6e\ \xe3\xb3\xaf\xfd\x2e\xf3\x4b\xeb\x1c\x1c\xb9\x15\x05\xa5\x3b\xc0\ \xbe\x4f\x92\x24\x44\x51\x84\xe7\x79\x84\x41\xc8\x80\x3e\xc1\xb2\ \x35\xcb\x8b\xb3\x4f\x70\xc7\xf4\x43\x78\x91\x43\x14\x84\xfd\xfe\ \x92\x24\xe9\xef\x6b\xaa\x79\x06\x72\x75\x9e\x5f\xfa\x1b\x6e\xa8\ \xbf\x81\x5a\x6e\x84\x92\x5e\xc7\xf3\xaf\x0e\x60\x12\x27\x78\xbe\ \x4f\x1c\x45\xe4\xf4\x02\x4a\xc6\xe5\x5b\xe7\xbe\x85\x48\x55\x6c\ \xbf\x49\x1c\x26\x78\x7e\x77\x60\x00\x02\x3f\xc0\x75\x3d\x34\x55\ \xc5\x69\x09\xbe\x7e\xfe\xf3\x28\x71\x9e\x6a\xa5\x40\x92\x24\x78\ \x9e\x87\xe7\x79\xf4\xee\x1a\xcf\x73\x51\x15\xc1\xc5\xb3\x16\x03\ \x43\x2a\x1b\xce\x32\xd7\x4f\xde\x4c\x35\x33\x46\x10\x76\xe3\x88\ \xa2\xa8\x7b\xe1\x37\xbf\xb7\x3a\x1e\x3f\xf5\xc8\x63\xfc\xd3\xf9\ \x4f\xa0\x24\x32\x25\xa3\x94\x88\xe2\x88\x20\x08\xfa\x03\xd8\x9b\ \x25\x0a\x2a\x7e\xe2\x50\xcf\x8e\x33\x50\xa8\x32\xb7\x3e\x8b\x84\ \xef\x19\xc0\x30\x0c\x89\x93\x18\x3f\xb1\x19\x2c\x6c\x43\x13\x59\ \x5a\xde\x1a\x59\x2d\x47\x14\xc7\x84\x61\x78\x35\x90\x20\xc0\xf7\ \x7d\x24\x29\x0a\x1a\x9e\x03\xa9\xea\xd1\x72\xdb\xac\xdb\x2b\x84\ \x9b\xdb\x93\x24\x21\x8e\xe3\xcd\x81\x4f\x49\x64\x42\x1a\x19\xcc\ \x8c\xee\xa2\xe3\xd8\x94\x33\x43\x84\x71\xd0\x8f\x15\x20\x08\x43\ \x7c\xdf\x43\x51\x14\xf2\x45\x9d\xbd\x43\x37\x62\xf9\x4d\x32\x4a\ \x09\x4d\x18\xdd\xb6\x61\xf7\x2e\x8b\xa2\x08\xcf\xf7\x91\x52\x50\ \x19\x30\x49\x02\x1d\x29\x05\x48\x85\x86\xbb\x4c\x12\xa7\xfd\x01\ \x94\x52\xe2\xf9\x3e\x61\x14\x62\xe8\x1a\x73\xcb\xcb\x18\x4a\x16\ \xed\x58\xfb\xd3\x78\x4a\x03\xdf\xf3\xb0\xec\x88\x6c\x9a\x41\x4a\ \x89\xe3\x38\xf8\x71\x44\x11\x83\x2f\xbf\xfe\x47\xbc\xf7\xd0\xaf\ \x72\xb2\xf3\x0f\x5c\x72\x4f\x10\x8b\x00\xc7\x71\x50\x55\xb5\x3f\ \x78\xae\xeb\x92\x1a\x30\x52\x57\xf8\xc6\x99\xe7\xf8\xf9\x47\xff\ \x1f\x7e\xeb\x9b\x1f\x64\x7c\x74\x9c\x34\x49\x71\x9c\xcd\x19\xb5\ \x39\x0b\xa4\x94\x0c\x68\x82\xa7\x2e\xfd\x1d\x3f\xff\xc6\xdf\xe4\ \x53\xaf\xfd\x1a\x96\xef\x50\xca\x54\x70\xdd\x79\xe2\x40\x62\x18\ \x06\x61\x18\x62\x5b\x16\xbe\x1e\xb3\x64\x5f\x62\x89\x45\xf6\x6f\ \xaf\x21\x07\x2f\x70\xa9\xd1\x5d\x20\x5b\x96\x8f\x61\xea\x00\xb8\ \x8e\x83\xdb\x71\xd1\x52\x9d\xa5\xe8\x3b\xdc\x9b\x7d\x2b\x51\x71\ \x8e\x8f\x3f\xfd\x41\x14\x15\x6c\xdb\x46\xd3\xf4\xab\x93\xc4\xf1\ \x89\xf2\x31\xdb\xb7\x0f\xf2\xd4\xa9\xaf\x32\xb3\x7d\x86\xdf\x7b\ \xf1\x71\x32\x46\x86\x30\x0e\xb0\xed\x18\xdd\xd4\x48\xd3\x14\x77\ \x73\x4c\xca\xf9\x22\xbf\xf5\xcc\xe3\x7c\xec\xc1\x3f\x40\x5b\x5c\ \x9b\xa5\xd1\x59\x63\xf9\x6c\x9b\xc8\x4d\x91\xa4\xa4\x69\x4a\xab\ \xd5\x22\x48\x22\x8a\x41\x1e\x57\x5b\xe4\xf7\xbe\xf5\x38\x8f\x5e\ \xff\xc3\x9c\x5d\x3d\xc6\xea\x0b\x92\x76\xdb\x46\x51\x14\xd2\x34\ \xc5\xb6\x6d\xda\xed\x36\x52\x15\x08\xa5\xc2\xf3\x8d\x4f\x30\x3e\ \x37\xca\x6a\x67\x8e\xc5\xd5\x39\x16\xce\x34\xf1\xda\x49\x7f\x0d\ \x16\x86\x21\x69\x9a\x52\x48\xf2\xcc\x06\xdf\xe2\xd9\x85\xcf\x62\ \xf9\x4d\x4e\x2f\xbc\xc2\xec\x31\x9f\x8d\x15\x07\x04\x94\x4a\xa5\ \x2e\xf9\x44\x29\x41\x26\x25\x51\x4a\x3c\xb3\xfa\x57\xb4\xd3\xa3\ \xf8\x9e\xc5\x4b\x17\x4f\xb0\x72\xda\xc1\x77\x62\x32\x59\x13\xe8\ \x0e\x90\x6d\xd9\x14\x92\x02\x8e\x58\xe5\x8b\xb3\xbf\x8d\x65\x59\ \x2c\xaf\x2d\xb0\xf2\x4a\x40\xbb\x61\x61\x64\xb5\xfe\x24\xb1\x1a\ \x6d\x9c\xa2\x24\x91\x15\xbe\xd5\xfc\x14\xcb\xfe\x8d\x5c\x6e\xbd\ \x8c\xe3\xb8\x5c\xfa\x66\x03\x99\xa6\xe4\x92\x1c\x69\x9a\xd2\x68\ \x34\xe9\xc8\x84\x30\x32\x71\x33\x97\xf9\x95\xaf\x7c\x04\x31\x3d\ \xb1\x53\x0a\x04\x66\x5e\x23\x8c\x42\xb2\xd9\x2c\x51\x14\x59\x69\ \x9a\x16\x6b\xd5\x3a\x72\xac\x43\x69\x58\x67\xe5\x3b\x1e\xeb\x17\ \x5d\x4c\xc3\x44\xa8\xa0\x1a\xdd\x37\x59\x10\x04\xab\x03\x03\x03\ \x45\x45\x51\xb2\x52\x4f\x29\xdd\x2c\x89\x97\x52\x16\x5e\xe9\x80\ \xa7\x21\x14\x81\x6a\x76\xd7\x60\x69\x9a\x46\x42\x88\xc0\x30\x8c\ \x42\xa5\x52\x41\xee\xb1\x28\x19\x3a\x57\x8e\x5b\x38\x4b\x09\x9a\ \xa6\x81\x2a\x51\x75\x41\x92\x24\x14\x0a\x85\x4e\xb3\xd9\x14\x3b\ \x67\x76\x16\x1b\x9d\x06\xa3\x37\x1b\xcc\xbf\x68\x63\x37\x42\x34\ \x45\x43\x92\xa2\x67\x54\xe2\x24\xa6\x52\xa9\x30\x3b\x3b\xfb\xec\ \xce\x9d\x3b\x8f\x2a\xa8\x24\x43\x16\x6a\x2a\x58\x7e\xd5\x21\x8d\ \x25\xaa\xa2\x22\x34\x50\xba\x6b\x66\xc2\x30\xa4\x5c\x2e\x5b\x02\ \x51\x6c\xe2\x73\xe3\x5b\x0a\x2c\x1c\x77\x59\x3f\xe7\x21\x43\x15\ \x64\x8a\x96\xed\x4e\x10\xc3\x30\xe8\x74\x3a\xc7\xf2\xf9\xfc\x11\ \x33\x5b\x64\xfb\x23\x12\x67\x21\x61\xfd\x9c\x8f\x76\xc7\xdd\xb7\ \xd2\x6c\x36\x19\x1d\x1d\xe5\xc2\x85\x0b\x78\x9e\xc7\xca\xca\x0a\ \x3f\xf6\x63\x3f\xc6\xbe\x7d\x7b\x99\xbb\x3c\xcf\xcb\x2f\xbf\x42\ \x7d\xbb\x24\x9d\xec\xbe\x00\x3c\xcf\xa3\xd1\x68\x50\x2c\x16\xb9\ \x74\xe9\x12\x9a\xa6\xf1\xd3\x3f\xfd\xd3\x0c\x54\x06\xf8\xab\x4f\ \xfe\x35\x95\x6a\x85\xf2\x9e\x25\x6a\xb5\x1a\x0b\x0b\x0b\x18\x86\ \x81\xa2\x28\x5c\xb8\x70\x81\x30\x0c\xf9\xc0\x07\x3e\xc0\xc1\x83\ \x07\xf9\xe4\x9f\xfe\x05\xaa\xd4\x30\x46\x97\x19\xbc\xbe\xce\xc6\ \xc6\x06\x03\x03\x03\x34\x9b\x4d\x16\x16\x16\x08\x82\x80\x3b\xef\ \xbc\x93\xc7\x1e\x7b\x8c\x30\x0c\x79\xe6\xc9\xe7\x18\xbd\x71\x19\ \x55\x53\xe9\x74\x3a\x14\x0a\x05\x16\x16\x16\x70\x5d\x97\x24\x49\ \x50\x55\x95\x87\x1e\x7a\x88\xb7\xbf\xfd\xed\x7c\xe1\x73\x5f\xe4\ \x95\x13\x27\x98\xbe\x53\x23\x9f\xcf\xb3\xb0\xb0\x80\xe3\x38\x64\ \xb3\x59\x9a\xcd\x26\xcb\xcb\xcb\x54\xab\x55\x3e\xf2\xf8\x47\xb8\ \x7c\xf1\x12\xcf\x3e\xf5\x4d\xf6\x0c\x64\xd9\x7d\x5b\xca\xfa\xc6\ \x3a\x85\x42\x01\x21\x04\x4b\x4b\x4b\x58\x96\x45\x92\x24\x7c\xe0\ \x03\x1f\x60\x6a\x6a\x3b\x4f\x7f\xed\x1b\x34\xd3\x06\x83\x13\x2e\ \xda\xe0\xe0\x20\x8e\xe3\x60\x18\x06\x53\x53\x53\x9c\x3b\x77\x8e\ \x24\x49\x98\x99\x99\xe1\xe8\xd1\xbb\x39\x55\x3b\xc5\x5a\x63\x95\ \xc1\xc1\x41\x14\x45\xe1\x95\x57\x5e\x61\x74\x74\x14\x80\xe1\xe1\ \x61\x2e\x5d\xba\x44\x9a\xa6\xdc\x76\xdb\x6d\x64\xb3\x59\xbe\xfc\ \x95\x2f\x73\xfd\xf5\xd7\x73\xe6\x4c\x16\xc3\x30\xfa\x57\xfb\xc0\ \x81\x03\x5c\xbc\x78\x11\x80\xc3\x87\x0f\x33\x3e\x3e\xce\x2d\x77\ \x1c\x61\x65\x65\x05\x2f\xb2\xd9\xb1\x63\x07\x69\x9a\x32\x34\x34\ \xc4\xae\x5d\xbb\xf8\xca\x57\xbe\xd2\x9b\x25\x94\x4a\x25\x86\x86\ \x86\x78\xf5\xd5\x57\x11\x9a\x24\x9f\xcf\x73\xfc\xf8\x71\xc6\xc6\ \xc6\x68\x36\x9b\xe4\xf3\x79\xd6\xd6\xd6\x10\x42\x50\x2a\x95\xd8\ \xbd\x7b\x37\x03\xf5\x0a\x95\x6a\x89\x72\xb9\x8c\x94\x92\x5a\xad\ \x86\x65\x59\x0c\x0d\x0d\x11\x04\x01\x42\x08\x0a\x85\x02\x37\x5c\ \x7f\x03\x19\x33\xc3\x99\xb3\x67\xd9\xbb\x77\x2f\x6b\x6b\x6b\x20\ \xa0\x50\x28\x30\x3a\x3a\x4a\x36\x9b\xe5\xe4\xc9\x93\x00\xdc\x71\ \xc7\x1d\x94\x4a\x25\x3a\x1d\x0b\xcf\xf3\x38\x79\xf2\x24\xe2\xc6\ \x1b\x6f\xec\x03\x60\x8f\x85\xdb\xed\xb6\x55\x2a\x95\x8a\x41\x10\ \xf4\xf9\xf3\xfb\x7d\x14\x45\xa1\xd3\xe9\xac\x0e\x0d\x0d\x15\x1d\ \xc7\xc9\xf6\x10\xec\x7f\xf7\x89\xe3\x38\x0a\xc3\x30\xc8\xe7\xf3\ \x85\xef\xc7\x9d\xdf\xcd\xda\x8a\xa2\x74\x3a\x9d\x8e\x28\x95\x4a\ \xc5\xff\x53\xfb\x72\xb9\xcc\xa9\x53\xa7\x9e\xdd\xb9\x73\xe7\x51\ \xcf\xf3\xf8\xdf\xc5\x22\xa5\x44\xd3\x34\x36\x36\x36\x18\x1c\x1c\ \xb4\x82\x20\x28\xfe\x4b\x71\xf7\x62\x59\x5b\x5b\x3b\x36\x34\x34\ \x74\xa4\xc7\xd6\xbd\x8f\xb6\x35\xae\x4d\x16\xc6\xb2\xac\x20\x9f\ \xcf\x67\x15\x45\x91\x48\x90\x89\xd8\xc2\xb4\x9b\x8d\x05\xa4\x69\ \x2a\xe2\x38\x8e\x3b\x9d\x0e\x3d\x20\x47\x0a\x64\x17\x53\x41\x91\ \xfd\xb6\x9b\xc1\x48\xdf\xf7\xe3\x4c\x26\x13\x2b\x8a\x22\x85\x14\ \x5d\x06\x15\x12\x94\xcd\x66\x5b\x58\xd8\xb2\x2c\xdf\xf7\xfd\x0d\ \x21\x44\x19\x90\x24\xa2\xcb\xd9\xca\xb5\xb1\x48\x29\x85\xe7\x79\ \x91\x94\x72\x61\x63\x63\x63\x5d\x4a\x19\x90\x8a\x2e\x27\xa7\x02\ \x94\x2e\x0b\x6f\xc6\x21\x36\x9f\xdd\x0d\xcb\xb2\xb6\x9b\xa6\x19\ \x0b\x90\x69\xb2\xd9\xd9\x26\x37\xb3\x25\x96\x20\x08\x94\x24\xe9\ \x36\x50\xc4\x26\xbf\xcb\xcd\x64\xc2\xf8\xae\x21\xa4\xa7\x76\x0f\ \xd4\x1d\x14\x96\x96\x96\x2e\xed\xd8\xb1\xe3\x80\xe7\x7a\x69\x98\ \x73\xc9\xef\x08\x10\xae\x46\xd2\x36\x49\x2d\x1d\x19\x75\x77\x56\ \x55\x55\x00\x72\x78\x78\x58\x64\x32\x19\x02\x11\xc2\x74\x8b\x52\ \x41\x25\xee\xe8\xd0\xce\x90\x5a\x1a\x32\x51\x40\x82\xe7\x79\x72\ \x71\x71\x31\x1a\x1b\x1b\x0b\x14\x45\x91\x8d\xcc\x06\x63\xbb\x35\ \xa2\xa6\x86\x6c\x9b\x24\x8e\x0a\x49\xff\xea\x8a\x76\xbb\x1d\x04\ \x41\x30\x36\x39\x31\x59\xf2\x93\x10\x75\x47\x9b\xac\xae\x93\x34\ \x0d\x12\x4b\x47\x06\xdd\x7e\x01\x4c\xd3\xe4\xc9\x27\x9f\xbc\x70\ \xe8\xd0\xa1\xba\x8c\x25\xab\xb9\x65\xb6\x1f\xd0\x08\xda\x20\xdb\ \x19\x92\x8e\x01\xbe\x8a\x4c\xc1\x30\x0c\x8e\x1f\x3f\xbe\x6d\x62\ \x62\x62\xde\x34\x4c\xa5\x15\xda\x72\xe0\x90\x8f\x96\xea\xc4\x0d\ \x9d\xb4\xd3\x65\xf2\x6e\x92\x03\x61\x59\x56\x9c\x24\xc9\xc4\xf4\ \xf4\x34\x96\xef\x93\xd9\x63\x51\xa8\x28\x04\x9d\x14\xad\xfe\x03\ \x1b\xe8\x8a\x49\xf3\xc9\x2e\xf7\x19\x86\x40\x55\xd5\x01\xd3\x34\ \x73\x9e\xe7\xa3\x6e\xf7\xa9\xdc\xee\xa0\x87\x45\xc2\x78\x0d\x25\ \x36\x90\x81\x46\xe3\x8b\xdd\x1c\xdc\xe6\x2d\xae\x26\x49\x82\x9d\ \xb1\x19\xbc\xbe\xc3\xee\xf1\xfd\x90\xa6\xcc\xad\x5c\x44\x55\x54\ \x3a\xcf\xd4\x09\x17\x75\xd2\x34\x55\x54\x55\xcd\x69\x9a\x96\x17\ \x42\xc0\x1e\x8b\x81\xdb\x35\x72\x69\x9d\x56\x7b\x1d\x21\x15\xc2\ \x73\x15\xac\x13\x39\x84\x90\x68\x9a\x96\x7a\x9e\x07\x52\xb2\x21\ \x5b\xec\xbf\xdf\x46\x4b\x32\x04\x6e\x03\x3d\xcd\x10\xb9\x02\xfb\ \x78\x99\x60\x51\x47\xc9\x2a\x48\x29\x37\x1f\xba\xe0\xee\x5d\xa7\ \x74\xc3\x00\x55\x75\x8a\x75\x6b\x0e\xcb\xb2\xd1\x3a\x55\x1a\x4f\ \x14\xe9\xa5\xc6\x0c\xc3\xa8\xe8\xaa\x9e\xbf\x98\xac\xf2\xe6\xbb\ \x73\x44\x81\x4f\x96\x12\x1d\x7b\x03\x43\xe4\xe8\x7c\xa3\x4c\xb8\ \x6c\xf4\x72\x8d\x91\x4c\x25\x56\xea\x30\x7a\x38\xc0\x53\xda\xbc\ \x71\xe7\x0f\xa2\x3c\xba\xfb\x71\x8a\xd5\x22\xb1\xec\xf2\xec\x26\ \x0b\x4b\xdf\xf7\xf1\x7c\x9f\x54\x84\x4c\x72\x37\x1f\xbc\xf3\xbf\ \xf2\xaf\xaf\xfb\x0d\xf6\x0c\x1d\x65\x78\xdb\x60\x9f\x26\x92\x24\ \x91\xbd\x4c\x75\x9c\x46\x24\xcd\x0a\xf7\x8e\xbf\x93\x43\x85\xb7\ \x72\xcf\xf6\x77\xf3\xa6\x5b\xde\x41\x78\x2d\x0b\xcb\xde\x71\xe2\ \x34\xe1\xd1\xed\x1f\x61\x52\x79\x80\x07\x0f\xbc\x8b\xa3\x33\xef\ \xc2\x11\x1b\x5b\x29\x47\xc6\x71\x8c\xe7\xfa\x84\x49\xc8\x48\x76\ \x9a\x47\x26\x3e\xca\xcf\xdd\xfd\x49\xbc\x66\x9d\x1d\xd3\x53\x84\ \xd2\xed\xf3\x6a\x8f\x85\x3d\xcf\xc5\x30\x54\xa6\xd5\xbb\x78\xcb\ \xd4\xe3\x1c\xaa\xbc\x95\x5f\x79\xcb\xdf\x93\xe6\xec\xcd\x55\x84\ \x8f\x94\x92\x30\x0c\xa5\xef\x7a\x44\x32\xc2\x73\x23\x3e\x7c\xfd\ \x27\xb8\x7f\xf7\xbb\xf8\xd0\x1d\x7f\x48\x65\x34\x47\x24\x83\x3e\ \x67\x4b\x29\xf1\x3d\x8f\x38\x89\x68\x76\x5a\xfc\xee\x43\x4f\xb3\ \xb4\xbe\x86\x32\x5e\xd8\xc3\xc1\x91\x3b\x37\x07\xa4\xcb\xc2\x42\ \x08\x3c\xcf\xc3\x0f\x7c\xc2\x38\xe0\xba\xa1\x5b\x79\x7e\xe1\xef\ \x79\xe1\xe4\x09\x6e\x9f\x7a\x08\x4d\xd1\xfb\x4c\x99\x24\x09\x41\ \x10\x74\x59\x38\x0a\x19\x2b\xee\x66\xb1\x73\x91\xf3\x6b\x27\xb9\ \x6d\xfa\x01\x92\x34\x21\x0e\x63\x7c\xbf\x7b\x92\x5b\xdb\x67\xd4\ \x3c\x95\xcc\x20\xaf\x7b\x2f\xb0\xbf\x7c\x3f\x3b\x87\x0e\x50\xd2\ \xeb\xf8\xbe\x8b\xe7\x79\xc4\x71\x4c\x1c\xc7\xf8\x7e\xf7\x7b\x29\ \x53\x21\x57\x4c\x78\xf6\xc4\xf3\x1c\x1c\xbd\x83\xdd\xb5\x9b\x70\ \x03\xe7\x7b\x59\xd8\xf3\x51\x55\x15\xa7\x2d\x78\x71\xee\x9f\xc9\ \x8a\x2a\x43\x03\x43\xa4\x49\x17\x41\x03\xdf\xef\x27\x13\x3c\xcf\ \x43\x51\x15\x2e\x9f\xb3\x18\x1a\xc9\xe2\x47\x2e\x37\x4c\xdc\xc2\ \x64\xe9\x3a\xfc\xb0\x1b\x47\x0f\x41\x3d\xdf\x27\x0a\x23\x34\x99\ \x61\xb8\x3a\xc4\x46\x7a\x06\xcd\x09\x6c\xce\xae\xbc\x4a\x14\xc5\ \xf8\x5e\xda\x7d\xa0\x43\x77\xc6\xf8\x01\x86\x14\xb8\xa1\xc5\x60\ \x69\x02\x59\xc8\xf3\xfa\xfa\xb9\xfe\x76\x55\x55\xfb\x2c\x1c\xc7\ \x31\x69\x92\xd2\xf4\xd7\x18\x2d\x3f\x4c\x73\x3d\x65\xc5\x9d\xc5\ \x54\xb3\x44\x51\x44\x10\x24\x7d\x02\xe9\x65\x74\x75\x52\x14\x45\ \xc1\x77\x25\x46\xce\x67\xfe\xd2\x02\x1b\xf6\x0a\x81\x6f\xf6\x5f\ \x3c\x71\x1c\x77\x93\x09\x5a\xd2\x7d\x46\x27\x0a\x23\x03\x23\xbc\ \x7c\xf9\x18\xb2\xa2\x40\xd2\x1d\xb4\x1e\xc3\x87\x61\x48\xe0\xfb\ \x18\x42\xa5\x50\x30\x98\xa9\xed\xe7\xcc\xc2\x59\x4c\x91\x45\x11\ \x4a\x3f\x23\xd4\xeb\x3b\xf6\x23\xc8\x40\xa9\x62\x92\x84\xda\x66\ \xf6\x1a\x96\x3a\x97\x49\xe2\x6e\x06\x46\x8a\xb4\x8f\x7e\xb1\x1a\ \x23\x45\x42\xe0\xc7\x04\xae\x8e\xf2\xcd\xf5\xbf\xc2\xc8\x4a\x82\ \xd0\xef\xb2\xde\xe6\x95\xec\xcd\x30\x91\x6a\x1c\x6f\xfc\x2d\x39\ \x6f\x86\xfc\xf8\x3a\x67\xed\x67\x71\x93\x36\x8e\xe3\xe0\x38\x4e\ \xf7\x04\x3d\x0f\xdb\xb6\x09\xfc\x90\x38\xbf\xc8\x2b\xe7\xcf\xf0\ \xc0\xf5\xf7\xf1\x77\x67\x7e\x9b\xb3\xad\x6f\x11\xc6\x21\x96\x65\ \xe1\x38\x4e\x3f\x1b\xe3\xba\x2e\x8a\x96\xf0\xb5\x8b\x9f\xe1\x67\ \xee\xff\x35\x3e\xf3\xea\x6f\x73\x39\x78\x8e\xac\x56\xc0\x71\x5d\ \x1c\xc7\xe9\x5f\x18\xcf\x75\x09\xc3\x88\x65\xfb\x75\xd6\x5b\x2d\ \x28\xb4\x48\xab\xb3\x04\x69\x17\xee\x1d\xc7\xe9\x67\x58\x1c\xc7\ \xc1\xea\x58\x24\x69\xca\x7c\xf4\x6d\x34\x91\xc1\xcf\x5d\xe4\x77\ \xbe\xf9\x33\xa8\x9a\x8a\x65\x59\x58\x1d\xab\x3f\xd8\xae\xe3\x12\ \xc7\x29\x53\x53\x15\xbe\xfc\xca\xe7\x19\x2a\x8d\xf0\x3b\x2f\xfe\ \x9b\xae\x26\x12\xfb\x38\x8e\xd3\xcf\x22\x59\x9d\x0e\xae\xeb\x91\ \xcf\x65\xf9\xb5\xa7\xdf\xcf\x2f\xdd\xf3\xe7\x68\xae\xb2\xce\xdc\ \x85\x39\x96\xce\xb5\x08\xac\x84\x84\x04\x80\x66\xb3\x49\xab\xd3\ \x21\xef\xe6\x09\x55\x95\xbf\xbb\xfc\x6b\xbc\xe5\xf0\x3b\x99\xbb\ \xf8\x1a\x6b\x2f\x49\xda\xed\x4e\x7f\x8d\xd8\x9b\x85\x94\x14\x14\ \xd5\xe0\x78\xe7\x53\xd4\xd7\x14\xda\xd1\x32\xf3\x5f\xd9\x60\xfe\ \x44\x9b\xc8\x4e\xbf\x2f\x0b\x2f\xf8\xdf\xe1\xb9\xa5\xff\x45\xa0\ \xd9\x5c\x7a\xfd\x3c\x57\x4e\x3b\xb4\x9a\x1e\x42\xe9\xb2\xb0\xef\ \xfb\xc4\x41\x44\xa0\x4b\xfc\x34\xc7\xb3\x4b\x7f\xcd\xbd\x7b\x7e\ \x00\x99\x6b\xf1\x9d\x6f\xaf\xb0\x7c\xce\xc2\xe9\x44\xe8\x66\x77\ \xf6\xd8\xb6\x8d\xdd\xb1\xc9\xa5\x05\x7c\x75\x9d\x63\xf6\x5f\xd3\ \xf1\x2c\x5e\xfe\xce\x2c\xcb\xaf\x04\x74\x5a\x0e\xba\xa9\xf6\x19\ \xde\x6a\xb6\xb1\x4b\x92\x58\x96\xf9\x8e\xfd\xf7\x74\x16\x6f\x60\ \xae\xf3\x2a\xeb\xb3\x0e\x97\xbf\xd5\x20\x89\x52\xb2\xd9\x2c\x69\ \x9a\xd2\xb1\x2c\xbc\x44\x92\x92\x65\x39\x7e\x95\x3f\x7c\xf9\xe7\ \x10\xe3\x43\x53\x52\x48\x05\xbd\xd0\x5d\xf7\xe4\xf3\x79\xd6\xd7\ \xd7\xcf\x55\xab\xd5\xdd\xaa\xa2\x62\x4e\x47\xd4\x76\x1a\x6c\x9c\ \x0e\x58\x3e\xe5\x90\x76\x34\xf4\x9c\x82\x96\xed\xb2\x70\x1c\xc7\ \xb6\xaa\xaa\x66\x2e\x97\xd3\x63\x23\x62\xec\x1e\x83\x60\x21\x61\ \xe9\x94\x83\x73\x05\xb4\x8c\x40\xcf\x8a\x3e\x0b\x2b\x8a\x12\xa8\ \xaa\x5a\xc8\xe5\x72\x18\x87\x22\x6a\x15\x9d\xc5\x93\x0e\x1b\xa7\ \x62\x44\x22\xd0\x73\x02\x61\x80\x4c\x25\x85\x42\xa1\xb3\xb1\xb1\ \x21\x86\x86\x86\x8a\x9d\xd8\xe6\xd0\x0f\x17\x59\x3b\x15\xb2\x7c\ \xd2\xc6\x5f\x56\x50\x0c\x30\xf2\x5d\x7d\xa2\x5a\xad\x32\x3b\x3b\ \xfb\xec\x8e\x1d\x3b\x8e\x8a\x54\x90\x4e\x38\xe4\x32\x1a\x8b\x2f\ \x3b\x78\xeb\x09\xba\xa9\xa2\x1a\x20\xb4\xee\xda\x2e\x0c\x43\x4a\ \xa5\x92\x15\x87\x71\xb1\x63\x46\xdc\xfc\xd6\x22\xab\xaf\xf9\xac\ \x9e\xf6\xf0\x57\xba\xed\x8c\x42\x97\x85\x4d\xd3\xc4\x75\xdd\xf5\ \x7c\x3e\x5f\xcf\x97\x8b\x54\x0e\x44\x74\xe6\x23\x5a\x97\x43\xb4\ \x3b\xee\xbd\x05\xc7\x71\xa8\x56\xab\x5c\xb9\x72\xa5\xa7\x0b\xf3\ \xe0\x83\x0f\x72\xf0\xe0\x41\x3a\x2d\x8b\x63\xdf\x3a\xce\xd8\x48\ \x96\xf1\x4c\x83\x62\xa9\xc0\xd2\xe2\x12\xcd\x66\xb3\xa7\x0b\x33\ \x3d\x3d\xcd\x23\x8f\x3c\xc2\xf0\xd0\x30\xff\xf3\x2f\x3f\xc5\xde\ \xc9\x09\x4a\x13\x0b\x8c\xde\x3a\xca\xca\xca\x0a\x61\x18\x92\xcb\ \xe5\x38\x79\xf2\x24\x69\x9a\xf2\xde\xf7\xbe\x97\x83\x07\x0f\xf2\ \x99\x4f\xfd\x0d\x19\x37\x8b\x9a\x9b\xe7\xae\x1f\x9e\xdc\xd4\x90\ \x0d\x54\x55\xe3\xdc\xb9\x73\x84\x61\xc8\xe1\xc3\x87\x79\xdb\xdb\ \xde\x46\x12\x27\x9c\x78\xf9\x55\x0a\x6a\x8b\x6d\xfb\x7d\xb4\x1b\ \xbb\x69\xfc\xd7\x5f\x7f\x1d\x45\x51\x70\x5d\x17\x55\x55\x79\xe3\ \x1b\xdf\xc8\xdb\x7f\xa8\xcb\xc2\xaf\x9e\x7c\x95\xd1\x1b\x54\x86\ \x86\x07\x39\x77\xf6\x1c\xae\xeb\x92\xcb\xe5\x68\xb5\x5a\x7d\x16\ \xfe\xc9\x9f\xfc\x49\x56\x96\x57\x78\xfa\xc9\xe7\xd8\x3b\x58\x65\ \xfb\xf5\x1e\xcd\x56\x83\x72\xb9\x8c\xa0\xcb\xc2\x8d\x46\x03\x21\ \x04\x1f\xff\xf8\xc7\x11\x42\xf0\xd4\xd7\x9e\x21\x2d\x27\x5c\xc8\ \x9c\x47\x1b\x1b\x1b\xe3\xd2\xa5\x4b\x14\x8b\x45\xb6\x6d\xdb\xc6\ \xe5\xcb\x97\x49\x92\x84\x3d\x7b\xf6\xf0\xf6\xb7\xbf\x9d\xb9\xb9\ \x39\x56\xd7\x57\xa8\x54\x2a\xb8\xae\xcb\xf2\xf2\x32\x03\x03\x03\ \x58\x96\x45\xa5\x52\xe9\xeb\xab\xef\x78\xc7\x3b\x50\x14\x85\x63\ \xc7\x8f\x31\x3d\x3d\x4d\xa1\x9c\x47\xd7\x75\xb2\xd9\x2c\xcb\xcb\ \xcb\xec\xd9\xb3\x87\xd7\x5e\x7b\x8d\x28\x8a\xb8\xe7\x9e\x7b\xb8\ \xe9\xa6\x9b\x38\x7f\xfe\x3c\xcd\x66\x13\xcb\x6d\x33\x39\x39\xd9\ \xcf\x5a\x6f\xdf\xbe\xbd\xcf\xcd\xdb\xb7\x6f\xef\xeb\xbc\xae\xe7\ \xb2\xb6\xb6\x46\xa5\x52\xe1\xc5\x17\x5f\x64\x68\x70\x88\x6a\xb5\ \xda\x17\xfc\x01\x6a\xb5\x1a\x07\xf6\x1f\xe0\xf9\x6f\x3c\x4f\xb9\ \x5a\xa2\x58\x2c\x02\x30\x30\x30\x80\xeb\xba\x94\xcb\x65\x7a\xa8\ \x57\x2e\x97\x79\xd3\x9b\xde\xc4\xf1\xe3\xc7\x39\x7b\xee\x2c\x3b\ \x77\xee\xc4\x75\x5d\x2e\x5c\xb8\x40\x3e\x9f\xa7\x56\xab\x21\x84\ \xa0\xd5\x6a\x91\xa6\x29\x53\x53\x53\x84\x61\xc8\xd0\x68\x1d\x29\ \x25\x8b\x4b\x0b\x88\x1b\x6e\xb8\xe1\x1a\x16\xce\x66\xb3\xcc\xce\ \xce\x9e\x9b\x9e\x9e\xde\xdd\x4b\x7c\xaa\xaa\xfa\x3d\x9a\x6d\x0f\ \xb7\x3c\xcf\xb3\x33\x99\x8c\xa9\xaa\xaa\xbe\xb5\xcd\xa6\x7c\xd8\ \x6f\x9b\x24\x09\x52\xca\x28\x8a\xa2\x40\x55\xd5\x42\x3e\x9f\x27\ \x8e\xe3\x7e\x3f\xbd\x37\x63\xef\x99\xaa\x28\x0a\xba\xae\x77\x1a\ \x8d\x86\xa8\xd5\x6a\x45\xdf\xf7\xd1\x75\xbd\xdf\x56\x51\x14\xe2\ \x38\x46\x51\x14\x92\x24\xa1\x56\xab\x71\xea\xd4\xa9\x67\xa7\xa6\ \xa6\x8e\xb6\xdb\x6d\xb2\xd9\xec\x35\xcc\xba\xf5\xbb\x61\x18\xac\ \xae\xae\x52\xaf\xd7\xad\x30\x0c\x8b\x3d\x51\xbe\xa7\x25\xf7\x74\ \xe4\x5e\x4c\x9b\xcc\xbf\x5e\x2c\x16\xeb\x61\x18\x62\x18\x46\x5f\ \x17\xd7\x0a\x85\x62\x2a\xb6\xf0\x6a\x18\x86\x8a\x10\x42\xc9\xe5\ \x72\x64\x32\x19\xc4\x26\xdb\xf6\xf4\xd2\x4d\x61\xb6\x1f\x94\xeb\ \xba\x81\xa6\x69\x6a\x26\x93\x51\x85\x10\x90\x6e\x8a\xf0\xdf\xc5\ \xcd\x9b\x4b\x9f\x68\x7d\x7d\xdd\xaf\xd7\xeb\x79\x21\x84\xcc\x9a\ \x59\xd2\x64\x53\x0f\xde\xc2\xc2\xbd\xcf\xfa\xfa\x7a\x92\xcd\x66\ \xf5\x4c\x26\x93\x66\x32\x99\x2e\x93\xb3\x45\x3f\xde\xd2\x7e\x73\ \xad\x16\x46\x51\x44\xbe\x90\x4f\x45\xda\xe3\x6c\xfa\x4b\xb3\x5e\ \x2c\x9b\x59\x74\x99\x24\x49\x52\x2c\x16\xbb\x2a\xf6\xbf\xd0\xb7\ \x65\x59\x22\x08\x02\xaf\x54\x2a\xc5\xa6\x69\x4a\x52\x90\x49\x57\ \x6f\xd6\x46\x76\x97\x93\xc4\xd2\x20\xee\xbf\x14\x12\xdb\xb6\x6b\ \x13\x13\x13\x84\x51\x44\x52\xf4\xc8\x8d\xc4\xa4\xbe\x02\xbe\x4e\ \xea\xa8\xa4\xae\xda\xbf\xa2\xb6\x6d\xaf\xd7\xeb\xf5\x9a\x69\x9a\ \x5a\x24\x62\xc4\xa8\x4d\x2e\xab\x75\xb5\x5b\xd7\x20\xb1\x55\x44\ \xd2\x1d\x1d\xcf\xf3\x9c\x20\x08\xd6\xea\xf5\xfa\x80\xaa\xaa\x69\ \x3b\xd3\x64\x68\x52\x25\x76\x14\xf0\x74\x12\x57\x45\xfa\x2a\x3d\ \x81\x3e\x0c\xc3\x28\x9b\xcd\x16\x6b\xb5\x5a\xe2\xa4\x1e\xa5\x5d\ \x01\x24\x0a\xa9\xab\x76\xdb\xdb\x2a\x24\x0a\x20\x31\x4d\x53\x5c\ \xba\x74\x29\x3e\x78\xf0\x20\x69\x94\x26\x8d\xfc\x2a\xdb\x76\x69\ \x84\x36\xe0\x99\xa4\xae\x42\xea\xe8\xc8\x50\x60\x9a\x26\xed\x76\ \x3b\x19\x1e\x1e\x8e\x73\x99\x6c\xd2\x0c\x6d\x59\xdb\x17\x23\xd2\ \x6e\xdf\xd2\xd3\x49\x6d\x15\x19\x2b\x28\xaa\xc0\x30\x0c\xc5\xf7\ \x7d\x67\xef\x9e\xbd\x81\x1f\x86\xa9\x1c\xb6\x29\xd6\x15\x12\x4f\ \xa2\x95\x1e\x5c\xd5\x55\x55\xa5\xf1\x85\x1a\xb1\xd5\x65\x5b\x21\ \x84\x6e\xdb\x36\x96\xef\x92\x8c\xad\x91\xd9\x1f\xb1\x2d\x3f\xcd\ \x4a\xeb\x75\x34\xa9\x90\xba\x3a\x8d\x2f\xd6\x7a\x6f\xb3\x2c\x90\ \x49\xd3\x54\xef\x18\x16\x43\x47\x9a\x8c\x56\x07\x51\x11\x34\x3a\ \xcb\xe8\x19\x95\x8d\x2f\xd6\x88\x9b\x1a\x49\x92\x64\x85\x10\x85\ \x34\x4d\x55\x40\xf5\x77\xac\x53\xbe\x25\x4b\x4d\x1f\x67\xa9\x79\ \x05\x45\xa8\x78\xa7\x0b\xd8\xaf\x14\x00\x89\xae\xeb\x39\x40\x13\ \x09\x2c\x69\xeb\x6c\xbf\x4b\x62\xa4\x25\x64\x9a\x10\x04\x6d\xd2\ \x40\xa1\xf3\x62\x89\x60\xde\x40\xcd\xa9\x24\x49\x92\xf3\x3c\x8f\ \xd4\x4d\xf5\xd5\xa9\x39\xa6\x0f\x0e\x30\xae\x4d\xb3\x62\xcd\x11\ \x79\x29\x71\x5b\x63\xe3\xcb\x15\xc2\x30\x42\x08\xa1\xab\xaa\x1a\ \x93\xa2\x9d\xf2\x17\x78\xeb\xd1\x3c\x22\x36\x30\x44\x86\xb6\xbd\ \x8e\xae\x99\xb4\x9e\x2a\x13\x2e\x19\xbd\x5b\xba\x1e\x45\x51\x7e\ \xd5\xea\x30\xfd\x88\x8d\x5a\xf6\x98\x2a\xed\x46\x79\x64\xe7\xe3\ \x0c\x54\x86\x08\x93\xb0\xbf\xa2\x07\x64\x10\x04\x84\x41\x48\xac\ \xfa\xdc\x5e\x7b\x37\x77\x6f\x7f\x27\xff\xe9\x0d\x7f\xcb\x74\xe5\ \x36\x06\xea\xa5\xfe\x83\xbb\xc7\x94\x41\x10\x10\xcb\x90\xd6\x1a\ \xbc\xeb\xe0\xcf\xf3\xd0\xc4\xe3\x1c\x9a\x38\xca\xdd\x07\x1f\xc6\ \x0f\x9d\x5e\x7b\xd9\xd3\x91\xc3\x30\x24\x8c\x23\xde\x3c\xf3\x41\ \x86\xd2\xdb\x79\xd3\x0d\xef\xe2\xc8\xe8\x0f\xe1\xd2\xc2\xdf\x8c\ \xa3\xc7\xc2\xbe\x1f\x90\xc8\x88\x89\x81\xdd\xfc\xc8\xde\x7f\xcf\ \xbf\x3b\xfa\xdf\x59\x9e\xd7\xd9\x31\x39\x43\x94\xfa\x04\xfe\x55\ \x55\xae\xcb\xc2\x1e\xba\xa1\x32\x63\x1c\xe5\x8d\x13\xff\x86\xbd\ \x85\x87\xf8\xc5\x37\x7e\x92\xd8\xb0\xfb\x9a\xf3\xa6\x2a\x27\x7d\ \xcf\x27\x25\xc6\x0f\x42\xde\x77\xf0\x0f\xb9\x77\xe7\x3b\xf9\xe0\ \xad\x7f\x40\xa9\x96\x23\x96\x5d\x1a\xbb\xaa\x26\xfa\x04\x51\x48\ \xa2\x7a\xdc\x5b\xfa\x59\xf6\x0e\xde\x8a\xb2\x7f\xe4\x30\x23\x95\ \xb1\x2e\x1d\x78\x2e\xfe\x26\x27\xf6\xde\x88\x71\x1c\xb0\xb7\x7e\ \x84\xaf\x5c\xfc\x73\x2e\x5f\x59\xe4\xd0\xb6\xdb\x50\x64\x77\xd9\ \xd0\xe3\xd5\x3e\x0b\x87\x21\xbb\xaa\x37\x71\x7e\xfd\x15\x8e\xcd\ \x3d\xc9\x1b\xa6\xff\x35\xba\x92\x21\x0c\xbb\xf6\xb3\x5e\xdf\x3d\ \x12\xc9\xe9\x45\x8a\x66\x95\x0b\xce\xb3\x5c\x57\xb8\x9f\xd1\xca\ \x24\x06\x19\x3c\xcf\xed\xaa\x7c\x69\xda\xd7\x6e\xd3\x24\x25\xa3\ \x64\x49\xf4\x16\x4f\x7c\xfb\x49\x0e\x8d\xdc\x41\x2d\xb3\x0d\x3f\ \xf0\xfa\x71\xf7\x58\xd8\x73\x5d\x34\x55\xc5\x6a\xc2\x4b\x8b\x4f\ \x52\x54\x87\x19\xa9\x0e\x41\x2a\xf0\x3d\x1f\xdf\xef\x0a\xeb\x41\ \x18\xe0\x79\x2e\x42\x11\x5c\x3c\x63\x31\x34\x6a\xe0\x86\x1d\x0e\ \x8e\xdf\x44\xc5\x1c\xee\x8a\xf4\x5b\x58\xd8\x75\x5d\xc2\x30\xa0\ \xdd\xf6\xf8\xf1\x87\xde\xcd\x4b\xcb\x5f\x41\xf1\x43\x1f\x3f\xec\ \x66\x1c\xc2\x4d\x1f\xdd\x56\x5d\x18\x54\xfc\xd8\x61\xa8\x30\xc1\ \x40\x7e\x80\xa6\xdd\x04\xa1\x74\x99\x73\x13\x71\xba\xac\x1b\x90\ \xc6\x29\x4e\xd8\x61\x20\x37\x48\xd1\xac\xd2\x8e\x56\x51\x95\xab\ \xbe\xc2\x28\x8a\xfa\xc9\x84\xee\xec\x4d\x11\x08\x94\x24\x4b\xa2\ \xdb\xb8\x5e\x80\x17\xba\x84\xc1\xb5\x7d\xf7\x66\x8c\x50\x54\x34\ \x91\x65\x64\x60\x94\x75\x6b\x0d\x2f\xb2\x49\xe2\x84\x30\xb8\xba\ \x8c\x09\xc2\x00\xcf\xf7\x51\x84\x4a\xbe\xa0\x33\x53\x3f\x84\x15\ \x36\x50\x31\x00\x05\x7f\x73\x06\x02\x44\x61\x57\x17\x46\x42\xa9\ \x6c\x92\x04\x1a\x9a\xa2\x23\x53\x08\x22\x97\x24\x4e\xfa\x62\x7a\ \x6f\x4c\xa2\x28\xc2\xd4\x35\xae\x2c\x2f\x51\xcc\x54\xd1\x3e\x77\ \xf1\xe3\x78\xda\x3a\x41\xe0\xe3\xba\x29\x19\x99\x5e\x75\x26\xc4\ \x11\x65\x25\xcb\x17\x2e\xff\x2e\x3f\x7d\xf8\xe3\x3c\xb9\xf8\xdf\ \x99\xeb\x9c\xc7\x4f\xec\x2e\xcb\x6e\x2e\x21\x7a\x59\x16\x19\x43\ \x98\x9f\xc3\xee\x24\x1c\xd9\x73\x23\x7f\x73\xea\xb7\xa8\x0c\x16\ \x88\xa2\x18\xd7\x0d\x89\xe3\xb8\x6f\x91\x00\xc8\x18\x0a\x4f\x5c\ \xf8\x5f\x7c\xe4\xde\xff\xc2\x5f\x9c\xfa\x45\xe2\x58\xa2\xa2\xe1\ \xba\x5d\x59\x53\xd7\xf5\x6e\xf0\x91\x24\x4d\x25\x0b\xed\x0b\x2c\ \x8a\x55\x4a\x25\x03\x6d\x78\x8e\x85\xb6\x4e\x1c\x77\x6d\x19\x99\ \x9c\xd9\x8d\xdb\xf5\x70\x2d\x17\x43\x6a\x5c\x09\x5f\x62\xc6\xbb\ \x81\x96\xf6\x1a\xbf\xf9\x8d\x0f\xa0\xeb\x1a\xb6\xd3\x46\x57\xf5\ \xbe\xb0\x1e\xba\x01\x69\x51\x32\x35\x35\xc0\x57\x4f\x7e\x81\x99\ \xc9\x51\x7e\xfd\xf9\x1f\x27\x10\x36\x51\x1c\xe1\xba\x11\xaa\xae\ \x5c\xbd\x2b\xe3\x88\x72\xa1\xcc\xef\x7c\xf3\x71\x3e\x72\xf4\xd7\ \xd1\x6c\x7d\x99\xf5\xc5\x16\x2b\xaf\x37\x89\x83\x94\x5c\xd4\xd5\ \x40\x9b\xcd\x26\x7e\x12\x91\x77\x73\x84\xea\x3a\x7f\xf0\xed\x8f\ \x72\xc3\xcc\x8d\xb4\x5a\x57\x38\xff\x4f\x01\xad\x96\xdb\xd7\x85\ \xdb\xed\x36\x71\x1c\x43\x4e\x20\x45\x95\xcf\x5f\xfe\x6f\x3c\x9c\ \xf9\x57\x34\xd3\x79\x16\x8f\xe9\xac\xce\x36\x89\x9c\xee\xba\x4a\ \xd3\xb4\xbe\xff\x26\x17\xe5\x58\x8e\x5e\xe5\xef\xce\xfe\x0e\x8e\ \x6c\xd2\xf6\x9a\x2c\x5d\xb4\x68\x6e\x61\x61\xcf\xf3\x48\xfc\x98\ \x70\x50\xe0\xcb\x0c\x5f\x5f\xf8\x53\x0e\x6b\x47\x49\x0b\x1d\xe6\ \x2f\x84\x2c\x9c\x6e\xe1\xb5\x63\x34\xa3\xbb\x32\xb0\x2c\xab\xcb\ \xc2\x71\x81\x40\x59\xe3\x45\xfb\x2f\x48\x8c\x80\x85\x53\xeb\xbc\ \xfe\xb4\x4b\xa7\xe9\x7e\x17\x0b\x77\xe8\x14\x52\x62\x4a\x1c\x6b\ \x7e\x86\xf9\x78\x27\x4d\xed\x32\xeb\x97\x5c\x2e\x7c\xa3\x2b\x30\ \x65\x32\x19\x92\x24\x61\x63\xa3\x41\x47\x26\x04\xa1\x8e\xa5\xbc\ \xce\xc7\x9f\xfe\x08\x62\xfb\xc4\xb4\x4c\x3c\xc8\x54\xba\x9d\xe6\ \x72\x39\xa2\x28\xb2\xa4\x94\x45\xdd\x30\x30\x27\x13\x8a\x83\x2a\ \xf6\x52\x44\x63\xd6\x23\x6a\xa8\x68\x86\x82\x9a\xe9\x2f\x90\xe7\ \x34\x4d\x1b\x30\x4d\xb3\x18\xeb\x11\x43\x87\x0d\xe2\x46\xc2\xc6\ \x15\x07\x7f\x59\x25\xf1\x25\x66\x59\x25\x4d\x13\x00\x0b\x68\x1a\ \x86\x31\xa9\x69\x1a\xe6\x9e\x84\x72\x51\xa7\x31\xe7\x61\xcf\x27\ \xf8\x1b\xa0\xe7\x15\x14\xbd\x6b\x6f\x2b\x16\x8b\x96\xe7\x79\xc5\ \x8c\x61\xe2\x19\x01\x33\x77\xe6\x68\xcf\x85\x34\xe7\x5d\xfc\x55\ \x95\xd8\x97\x64\x4a\x57\x59\x78\x6e\x6e\xee\xd9\x89\x89\x89\xa3\ \x49\x94\xa2\x8c\x85\xe4\x73\x2a\x8d\xd7\x03\xac\x85\x10\x81\x8a\ \x66\x8a\x4d\x5b\x9e\x4a\x10\x04\x94\xcb\x65\x2b\x0a\xc2\xa2\x65\ \xc4\xec\xbf\xa7\x40\x73\x36\xc0\x5a\x0a\x70\x16\x24\x69\x04\x66\ \x45\x21\x4d\xba\xba\xb0\xe7\x79\xeb\x86\x61\xd4\x51\x75\x26\xef\ \xd6\x88\xec\x14\x77\x2d\x46\x3b\x72\xcb\x4d\x34\x5b\x4d\x0a\x85\ \x02\xed\x76\x9b\x20\x08\x58\x58\x58\xe0\xb1\xc7\x1e\x23\x9f\xcf\ \x93\x84\x29\x2f\xbd\xfc\x32\x5a\x4d\xc5\xcd\x39\x28\xaa\x82\xe3\ \x38\xac\xae\xae\x52\xad\x56\x39\x7b\xf6\x2c\x33\x33\x33\xdc\x7f\ \xff\xfd\x0c\x0f\x0d\xf3\xe9\xff\xf9\x19\x76\x4d\x4d\xb0\xe0\x2e\ \xb0\xed\xe0\x28\x1b\x8d\x0d\x6c\xdb\xa6\x52\xa9\xf0\xca\x2b\xaf\ \x20\xa5\xe4\x7d\xef\x7b\x1f\xf5\x7a\x9d\x27\xbe\xf2\x35\x74\x0c\ \x32\xc6\x22\xe3\xf7\x8c\xb1\xba\xb6\x82\xd1\xb5\xa9\xf5\xfd\xda\ \x77\xde\x79\x27\x37\x1e\x3e\x8c\xa1\xe9\x7c\xfb\x5b\x2f\x33\x5c\ \x0a\x68\x8f\xb7\xd1\xa6\x55\xaa\xd5\x2a\x67\xce\x9c\x21\x93\xc9\ \x6c\x5a\x36\x34\xee\xbb\xef\x3e\x1e\x7d\xf3\xa3\xbc\xf0\x8d\x17\ \x79\xe9\xa5\x97\x98\xda\x97\xa1\x7c\x7b\x89\xd9\xd9\x59\x2c\xcb\ \xa2\x5c\x2e\xb3\xbe\xbe\xce\xd2\xd2\x12\xd5\x6a\x95\x77\xbf\xfb\ \xdd\x34\x36\x36\x78\xe6\xa9\xe7\xd9\x57\x1f\xc0\xcf\x7a\x34\x06\ \x1a\x0c\x0e\x0e\x12\x86\x21\x2b\x2b\x2b\xb4\xdb\x6d\x3c\xcf\xe3\ \xc3\x1f\xfe\x30\x99\x4c\x86\x57\x5f\x39\x4d\x4b\x69\xe2\x97\x3d\ \xb4\xa9\xe9\x29\xdc\x53\x2e\x9a\xa6\x31\x33\x33\xc3\x99\x33\x67\ \x48\xd3\x94\x5d\xbb\x76\xf1\xc8\x23\x8f\xf0\xe2\x8b\x2f\xb2\xde\ \x5c\xa3\x56\xab\x21\xa5\xe4\xfc\xf9\xf3\xd4\xeb\x75\x3c\xcf\x63\ \x60\x60\xa0\x6f\x9b\x7d\xec\xb1\xc7\xf0\x7d\x9f\x13\x27\x4f\x30\ \x33\x33\x43\xa1\x94\xa7\x5c\x2e\x53\x1f\xac\x73\xfa\xf4\x69\x6e\ \xba\xe9\x26\x4e\x9c\x38\x41\x10\x04\xdc\x7f\xff\xfd\x4c\x4d\x4d\ \xd1\x6e\xb7\xd9\xd8\xd8\xc0\x0b\x1d\xf6\xee\xdb\x0b\x02\x5c\xd7\ \x65\xf7\xee\xdd\xcc\xcf\xcf\x03\xb0\x6d\xdb\x36\xde\xf9\x8e\x77\ \xe0\x79\x1e\x17\x2e\x5e\x40\xd7\xab\xec\x1f\xb8\x8e\x6f\x7f\xfb\ \xdb\xd4\x6a\x35\xea\xf5\x3a\xba\xae\xf7\xb3\xe3\xbb\x77\xef\xe6\ \xbe\x7b\xef\xe3\xe4\x89\x93\xd4\x06\xab\x98\xa6\x49\xb9\x5c\xa6\ \xd5\x6a\xf5\x2f\xa4\x65\x59\x00\x94\xcb\x65\xde\xf6\xb6\xb7\xf1\ \xc2\x0b\x2f\x70\xfe\xc2\x05\xf6\xee\xdd\x8b\x65\x59\x5c\xbc\x78\ \x91\x81\x81\x01\x4a\xa5\x12\xa6\x69\xf2\xda\x6b\xaf\x21\xa5\xe4\ \xc8\x91\x23\x4c\x4c\x4c\xf4\x66\x24\xaf\xbd\xf6\x5a\xd7\x23\xdd\ \x63\xbf\x28\x8a\xc8\x66\xb3\x58\x96\x65\x65\x32\x99\xe2\xb6\x6d\ \xdb\x58\x5a\x5a\x42\xd3\xb4\x1e\xcb\xf6\x59\xb4\xb7\x8f\xeb\xba\ \x73\xd9\x6c\x76\x60\x64\x64\xa4\xd8\x4b\x3e\xf6\xb6\xa7\x69\xda\ \xff\xbe\xe9\xdf\xb3\xc2\x30\x6c\xe6\xf3\xf9\xc9\xf1\xf1\x71\x16\ \x17\x17\x7b\x0b\xf7\xee\x33\x74\x93\xa3\x7b\x8c\xab\x69\x9a\xe5\ \xba\x6e\x71\x66\x66\xa6\xef\x70\x48\xd3\xb4\xcf\xca\x3d\x96\x4e\ \x92\x84\x6a\xb5\xda\x67\xe1\x9e\x51\x60\x2b\xe3\xf7\x72\x97\xbd\ \x9c\x64\xa3\xd1\x60\x68\x68\xc8\xca\xe5\x72\xc5\xad\x2b\x84\xad\ \xb1\xf7\x58\x5e\x51\x14\xda\xed\xf6\x7a\xb5\x5a\xad\xd7\x6a\x35\ \x9a\xcd\x66\x9f\x99\xb5\x6c\x26\x1b\xf4\x98\x6f\xf3\xf9\x27\x6d\ \xdb\x6e\xd4\xeb\x75\xa3\xd1\x68\x90\xcd\xe6\x20\x05\x5d\xdd\xc2\ \xc1\x5b\x18\xdd\xb6\x6d\x3f\x93\xc9\x48\xc7\x71\x10\x42\x90\x35\ \x73\x7d\xdf\x72\x9f\x27\xaf\xb2\xb0\xf0\x3c\x8f\x4c\x26\x13\xae\ \xaf\xaf\xcb\x6c\x26\x4b\x9a\x82\x40\xa2\x6b\xc6\x35\xcc\x2a\x13\ \x6a\x82\x26\x00\x00\x1f\x45\x49\x44\x41\x54\x84\x60\x75\x75\xd5\ \xca\xe5\x72\x99\x76\xbb\xad\x17\x8b\xc5\x2e\x93\x7f\x9f\x7e\x7b\ \x03\x93\xa6\x69\x1b\xe8\x14\x8b\xc5\x10\x49\xbf\xfd\x77\xf3\xb0\ \xaa\xaa\x04\x41\x10\x85\x61\xa8\xab\xaa\x6a\x02\x52\x53\x74\x34\ \x45\xbf\xf6\x1c\x05\x08\x04\xb6\x6d\x8b\x24\x49\x56\x72\xb9\x5c\ \xd9\xb6\xed\xd4\xd0\xcd\xbe\x9c\xaa\x8d\xec\x2d\x99\xf1\x86\x81\ \x48\x05\xa8\x5d\x9d\xe0\xf2\xe5\xcb\xcd\xb1\xb1\xb1\xed\x9e\xe7\ \x93\x16\x3d\xb2\x63\x11\x69\x92\x82\xab\x93\xb4\x32\x24\x2d\xad\ \xef\x91\x76\x1c\xa7\x30\x31\x31\xa1\xaa\xaa\x4a\xac\x24\x24\xdb\ \xda\x94\xcb\x2a\x49\x24\x51\x82\x0c\x51\x43\x43\x3a\x3a\x02\x81\ \xe3\x38\xba\xe7\x79\xa5\x7a\xbd\x6e\xa8\xaa\x4a\x33\xdb\x60\x62\ \x87\x4e\xe4\x27\xc8\x4e\x96\xa4\xad\x21\x5d\xb5\x9f\xf4\x74\x5d\ \x37\xc9\x64\x32\xf6\xf6\xc9\xc9\x01\x37\x0e\xc8\xef\x75\x50\x84\ \x20\x75\x55\xd2\x8e\x49\xd2\xd4\x21\xa5\xeb\x91\x36\x0c\xce\x9c\ \x39\xa3\x4f\x4c\x4c\x94\x64\x22\x69\xe6\x36\x18\x99\xd6\x88\xfc\ \x14\x6c\x93\xa4\xad\x93\x74\xba\x71\x1b\x86\xce\xca\xca\x0a\x43\ \x43\x43\xcd\x5c\x36\x67\xac\x07\x1d\x86\x0f\x74\x0d\xec\xa9\xab\ \x20\x2d\x93\x68\xa3\x1b\xb3\xa2\x77\x97\x53\xed\x76\x7b\x6e\x68\ \x70\x70\xbf\x17\x46\x88\x6d\x36\xc5\xaa\x42\x1c\x26\x68\xe5\x37\ \xae\xa2\x48\x9d\xd6\xd7\xab\x44\x2b\x46\xaf\xf6\x22\xaf\x69\x1a\ \x71\x9a\x20\x47\x6d\xb4\xc3\x2d\xf6\xd5\x6e\x66\xc5\xbe\x8c\xed\ \x36\x50\xbc\x0c\x8d\x2f\x0c\xf6\xec\x17\x5a\x1c\xc7\x4a\x18\x86\ \x58\x9a\x83\xb9\x63\x89\xfd\x3b\x0f\x32\x59\x9d\xe6\xe9\x73\xff\ \x40\x25\x57\x63\xfd\xab\x39\x82\x05\x13\xd7\x75\x15\x45\x51\xb4\ \xde\xed\x14\xef\x6c\x52\xbc\x39\xc3\x74\xe9\x00\xe7\x57\x4e\x92\ \xa6\x92\xe8\x74\x15\xfb\x44\xbe\x97\x20\x50\xa3\x28\xd2\x7d\x37\ \x60\x21\x5d\xe1\xe0\x4d\x0e\x25\x31\x8c\x24\xc0\xf6\x56\x89\x2c\ \x81\x73\xac\x4a\xb0\xa0\xf7\x6e\xd1\x9c\xaa\xa9\xc8\x50\x62\x4f\ \xad\x31\x70\x7b\x99\xaa\x36\xc1\xba\x33\x8f\x65\x3b\x18\xd6\x00\ \x8d\x7f\x2e\x03\xa2\x97\x2e\xd3\x55\x29\x38\x1f\x2e\xb2\xff\x68\ \x19\x2d\xc9\x92\x33\xb2\xcc\x6f\xbc\x4e\x45\x14\xe8\x3c\x3b\x40\ \xb8\x64\xf4\xd2\x68\x75\x10\xb4\x02\x8f\x1d\xb7\xfa\x50\x6c\x73\ \xd3\xf0\x3d\x28\x6f\xde\xf1\xb3\x8c\x0c\x4e\x11\xa7\x61\xdf\x23\ \x0d\x48\xdf\xf7\xf1\x3d\x9f\x98\x80\x5d\xc6\x03\xfc\xab\x1b\x3e\ \xc6\x8f\x5d\xf7\x9b\x5c\x3f\xf8\x28\xa3\x63\xa3\x7d\xed\x36\xde\ \x74\x9f\x06\x41\x40\x9c\x44\xac\xaf\x06\xfc\xe8\xc1\x9f\x43\xb6\ \x07\xf9\xa9\x23\xbf\xce\x0f\x1d\x79\x1f\x41\xe2\x5f\xe3\x50\xf5\ \x3c\xaf\xef\xfc\x7c\xf3\xcc\x87\xd8\xa1\x3f\xc8\xdd\x3b\x7f\x90\ \x37\xed\xfc\x20\xa1\x66\xe3\x79\x57\xfb\xee\x89\x56\x51\x1a\x31\ \x9c\x9f\xe2\xa1\x89\x0f\xf1\x73\x77\xfd\x19\xf6\xd2\x20\x37\xee\ \xb9\x95\x20\xb5\xaf\xd5\x85\xfd\x00\xd7\x75\xd1\x74\xc1\x8e\xdc\ \xed\x7c\xf8\xc8\x1f\x70\xa0\xfa\x46\x7e\xe9\xbe\x4f\x11\x67\xba\ \x6d\xb7\x78\xa4\xa5\xeb\x7a\x24\xa4\x78\x81\xcf\xfb\x0e\xfc\x01\ \xf7\xed\xf8\x51\x7e\xe6\x96\x4f\x32\x36\xbe\x8d\x30\xbd\xd6\x23\ \xed\xf9\x1e\x7e\x10\x10\x0b\x97\xbb\x73\x1f\xe3\xc0\xf0\x9d\x28\ \x35\x73\x9c\xa1\xfc\x58\x9f\x67\x7b\xce\xa5\xfe\x49\xc6\x01\xd7\ \x0d\x1f\xe1\x89\x4b\x7f\xc1\x97\x5f\x78\x8a\xbd\x43\x37\xf4\x6c\ \x1a\xfd\x37\x5f\xdf\x23\x1d\xfa\xd4\x8c\x49\xe6\xdb\x17\x78\x75\ \xe5\x05\x6e\x99\x78\x00\x3f\xb6\xfb\xfa\xeb\x56\x8f\xb4\xe7\x79\ \x64\xf5\x22\xe5\x4c\x95\x67\x16\x3e\xcd\x91\x91\x47\x29\x64\x4a\ \x68\xa9\x89\xe7\x79\xb8\xae\xbb\xc5\xc7\xec\x11\x47\x11\xe5\xec\ \x00\x4a\xa1\xcd\x17\x5f\xfc\x12\x3b\x6b\x07\x29\x68\x15\xfc\x20\ \xc0\xf3\xbd\xab\x16\x5f\xdf\xbf\xea\x91\x6e\xe8\x7c\xe6\xe5\x3f\ \x24\x9f\x8e\x33\x33\x3e\x09\xa9\x8a\xe7\x5f\xf5\x48\x77\xe3\xea\ \x7a\xa4\x2f\x9c\xb6\xa8\x0d\x2b\xac\x3b\x8b\xec\x9f\x38\x44\x4e\ \x2d\x6f\xb2\xb2\x77\xcd\x85\x8f\xc2\x90\x76\xdb\xe3\xa7\x1e\xfd\ \x71\xbe\x7a\xe9\x93\x28\x61\x1c\x63\x79\x9d\x4d\x16\xbe\xea\x76\ \xef\x79\x89\x91\x02\x27\xb4\x19\x2e\x6c\x67\xa8\x32\x44\xcb\x6d\ \xf5\xf5\xd5\xad\xbc\x1a\x86\x21\x71\x94\x12\xa4\x0e\xb5\xdc\x08\ \x05\x7d\x80\x8e\xdf\x24\x6f\x94\xfb\x09\x87\x9e\x1a\xd7\x9b\xb1\ \xa9\x4c\x10\x28\x68\x69\x9e\x58\xb3\xf0\xbc\x08\x3f\xf2\x09\x43\ \xbf\xdf\x77\x92\x24\x04\xa1\x4f\x12\xa7\xa4\x52\x22\x63\x9d\xb1\ \xda\x04\xab\xad\x35\xc2\x34\xd8\xe4\xd5\x2d\x1e\xe9\x4d\x83\x80\ \xa2\xa8\x64\xb3\x1a\xe3\xe5\x19\x2c\xbf\x89\x21\xf2\x48\xb9\xe9\ \xcf\x0e\xba\x49\x8d\x5e\xa6\x47\x4a\x28\x57\x4c\xe2\x40\x43\x57\ \x0c\x04\x0a\x61\xe2\x13\x47\xc9\x35\x1e\xe9\x1e\x17\x1b\xba\xc6\ \xdc\xd2\x12\x45\xa3\x8a\x72\xac\xf9\x69\x7c\xd1\xda\xf4\x39\x7b\ \xdf\x57\x17\xfe\xc6\xca\xa7\xd9\x6e\xdc\xce\xf8\x4e\x85\x13\xcd\ \x7f\xc2\x89\xdb\xb8\x6e\x37\x63\xd2\xbb\x85\x5d\xd7\x25\x08\x43\ \x0a\xb5\x90\x97\x5f\xff\x36\x8f\x3f\xfc\x4b\x7c\xfc\xf9\xf7\xf1\ \xed\xc5\x27\x49\x93\xf4\x9a\x6c\x4c\xaf\x6f\xd5\x48\xf9\xfa\x85\ \xcf\xf2\xf8\xbd\xbf\xc2\xe7\x4e\xfd\x01\x67\xec\xaf\xa1\xa2\xe2\ \xba\xd7\xce\x6e\xd7\xf5\x88\xe2\x88\x25\xeb\x12\xed\x8e\x4d\x6d\ \xd8\x40\xd6\x2f\xb2\x61\xaf\x10\x27\xdd\x4c\x4f\x3f\x9d\xe5\xfb\ \xb8\x8e\x8b\x94\xd0\xe0\x2c\x7b\x86\x6e\xc0\xcb\x5f\xe4\x77\x9e\ \xf9\x18\xba\xa6\x5f\x33\xbb\xbb\x71\x3b\x24\x49\xca\xd4\xd4\x00\ \x4f\x9d\xfe\x67\xc6\x6b\x93\xfc\xc6\x73\xef\x07\x91\xf4\xfb\xee\ \x5d\x78\xd7\xeb\xde\xc2\x95\x7c\x99\xdf\x78\xe6\x83\x7c\xf0\xa6\ \xdf\x41\x6b\x27\x8b\xb4\xa3\x15\x96\xce\x35\xf0\x3b\x29\x71\x9a\ \x47\x08\x41\xb3\xd9\xa4\xdd\xb1\x28\xb8\x39\x84\xa9\xf2\x47\x2f\ \x3f\xce\x1b\xf6\xfe\x10\xab\xf1\x79\xd6\xbf\xd3\xe5\xdf\x5e\x32\ \xc1\xb6\x6d\x5a\xad\x56\x37\x87\x2f\x2a\x3c\xbb\xf6\x67\xa8\xaf\ \x25\xb4\xc3\x65\x5a\x97\x57\x59\x38\xd3\xc0\x6f\xa7\xdf\xc3\xc2\ \xf9\x28\xc7\x42\xf8\x32\x9f\x3f\xf3\x87\x58\x41\x93\x96\x7f\x9e\ \xd5\x79\x9b\x56\xd3\x05\x21\xb7\xe8\xc2\x31\x81\x96\x12\x93\xe7\ \x2b\xaf\xff\x0f\xee\xd1\xde\x02\x19\x87\xb3\xf3\x27\x58\x39\xdb\ \xd5\x85\x35\x43\x05\xa0\xdd\x6e\x63\x37\x6d\x32\x51\x81\x66\xf2\ \x3a\x5f\xb8\xf4\xbb\xb8\x71\x93\x8b\xce\x4b\x6c\x2c\xf8\x6c\x2c\ \x37\x31\xf2\x5d\x0d\xc4\xb6\x6d\xac\x46\x07\xbb\xd8\xd5\x85\x9f\ \x5f\xfb\x4b\x2e\xd9\x7b\x58\x8b\xcf\x11\x58\x3e\xe7\x9f\x5e\x43\ \xd1\xe9\xeb\xc2\xcd\x66\x93\x4e\x9a\x10\x44\x06\xe6\xc0\x02\xbf\ \xfc\xa5\x9f\x40\xec\xd8\xb9\x43\xc6\xb6\xc4\x2c\x68\x24\x69\x42\ \x2e\x97\x63\x7d\x7d\xfd\xdc\xe0\xe0\xe0\x6e\x5d\xd3\xd1\xb6\x85\ \xe4\xea\x82\x8d\xb3\x3e\x76\x23\x40\x7a\x3a\xc8\xae\xde\xbb\x99\ \x91\x5e\xad\x54\x2a\x45\x20\x8b\x2e\xc9\x5f\x97\x12\x2d\xa7\xb4\ \x96\x1c\x12\x57\x23\xf1\x40\xcf\x0a\x52\x99\xf6\x3d\xd2\xa6\x69\ \x16\x72\xb9\x1c\xca\x8c\x4f\x5e\x55\x59\x39\xef\x10\x75\x20\xf1\ \xe8\x56\x11\xe9\xdd\x75\x5d\x3e\x9f\x5f\x6c\xb5\x5a\xa5\x91\xe1\ \x91\x82\x15\x5a\xcc\x3c\x98\x63\xf9\x84\x47\x6b\xc9\x45\x09\x0c\ \x02\x27\xc1\xc8\x77\x39\xfb\x1a\x16\x0e\x12\xf4\xbd\x31\x85\xac\ \xca\xca\x69\x9b\xd0\x92\xa4\x9e\x82\x4c\x41\xcb\x82\xd8\x4c\xc7\ \x55\x2a\x15\x4b\xa6\xb2\xd8\xc1\x67\xef\xbd\x79\x56\x4e\xba\xd8\ \xab\x21\xa9\xaf\x10\x3a\x29\x66\x49\x25\x89\x93\x9e\xe9\xf4\x58\ \x3e\x9f\x3f\x62\x98\x59\xc6\xee\x56\xb0\x97\x23\xda\x73\x21\xda\ \xa1\x03\x87\x7a\x86\x6e\xe6\xe6\xe6\x48\xd3\x94\x85\x85\x05\x1e\ \x7e\xf8\x61\x0e\x1c\x38\x40\x6b\xa3\xcd\x73\xcf\x7e\x83\xc9\x5d\ \x19\x36\x1a\x1b\x14\x8b\x05\x36\x36\x36\x68\x34\x1a\x54\xab\x55\ \xce\x9d\x3b\x87\xa6\x69\xbc\xef\x7d\xef\xa3\x90\x2f\xf0\x99\x4f\ \x7d\x96\xda\xb6\x2a\x57\xd2\x39\x86\x86\x87\x58\x5a\x5a\xc2\x34\ \xbb\x0e\xfa\x8b\x17\x2f\x12\x86\x21\x8f\x3f\xfe\x38\xf5\x7a\x9d\ \x2f\x7e\xfe\x1f\xbb\x25\x57\x43\xcb\x8c\x1c\x1a\x61\x75\x75\x95\ \x6c\x2e\xdb\xd7\xa6\x3d\xcf\xe3\xd6\x5b\x6f\xe5\x91\x47\x1e\xc1\ \xd0\x0d\x9e\x7d\xea\x79\x0a\x03\x0d\xe2\x52\x44\x14\xc7\x0c\x0e\ \xd6\xb9\x70\xe1\x02\xaa\xaa\x76\x4d\x42\x8a\xc2\xbd\xf7\xde\xcb\ \xfd\xf7\xdf\xcf\xd3\x5f\x7f\x86\xd3\xa7\xce\x50\x9b\xd4\x31\x32\ \x26\xcd\x46\x03\xdb\xb5\xc9\x66\xb2\x74\x3a\x1d\x56\x56\x56\xa8\ \xd5\x6a\xbc\xef\xfd\xef\x63\x7e\x6e\x9e\xe7\x9e\x7a\x9e\xeb\x46\ \xf3\x44\x83\x01\x8d\x66\x93\x5a\xad\x4a\x14\x45\x2c\x2f\x2f\xf7\ \x2d\x29\x1f\xfa\xd0\x87\xa8\xd7\x6b\x7c\xeb\xf9\x97\x58\xd5\x57\ \x88\xb6\x07\x68\x3b\x76\xec\xe8\x83\x75\xa1\x50\xe0\xf4\xe9\xd3\ \x24\x49\xc2\xde\xbd\x7b\xb9\xfb\xee\xbb\x09\x82\x80\x95\xf5\x65\ \x06\x07\x07\xd9\xd8\xd8\xe8\xdf\xba\x96\x65\x5d\xe3\xa9\x7e\xe0\ \x81\x07\x50\x55\x95\xaf\x3f\xf5\x75\x6e\xbb\xf5\x36\xf4\xe3\x1a\ \xa3\xa3\xa3\xfd\x5b\xf6\xe6\x9b\x6f\xe6\xd2\xa5\x4b\x24\x49\xc2\ \xad\xb7\xde\x4a\xa1\xd0\xbd\x10\xcb\xcb\xcb\xf8\x91\xcb\xee\x3d\ \xbb\x31\x33\x26\x8e\xe3\x70\xd3\x4d\x37\xf1\xb9\xcf\x7d\x0e\xdf\ \xf7\xd9\xb1\x63\x07\x87\x0e\x1d\x62\xdf\xbe\x7d\xb4\xda\x2d\xd6\ \xd7\xd7\x29\x16\x8b\x3c\xf7\xdc\x73\x8c\x8d\x8d\xd1\xe9\x74\xd0\ \x75\x9d\x2b\x57\xae\xa0\x28\x0a\xd3\xd3\xd3\x3c\xfa\xe8\xa3\x34\ \x9b\x4d\x6c\xcf\xa2\x56\xab\x01\xb0\x52\xc8\x73\xee\xdc\x39\x66\ \x66\x66\xb8\x70\xe1\x02\xab\xab\xab\x14\x0a\x05\xee\xb8\xfd\x0e\ \x4e\x16\x4e\x72\xf6\xfc\x59\x0e\x1d\x3c\xc4\xfa\xfa\x3a\x97\x2e\ \x5d\xa2\x5e\xaf\x53\xad\x56\xb9\x78\xf1\x22\x27\x4e\x9c\x00\xd8\ \x52\xb7\xdc\x4d\xae\xbe\xf4\xd2\x4b\x57\x3d\xd2\x3d\x1d\xb4\xa7\ \x0b\xcf\xcc\xcc\xec\xce\xe7\xf3\x7d\xee\xdb\xaa\xdb\x6e\xf5\x09\ \x5b\x96\xb5\x3a\x38\x38\x58\xcc\x64\x32\xd9\x5e\x8e\x6d\x6b\x6d\ \xee\xd6\xbe\x93\x24\x89\xc2\x30\x0c\xaa\xd5\x6a\xa1\x52\xa9\xf4\ \x8d\xe1\x5b\x75\xe1\xad\x35\xbe\x42\x88\xc5\x4e\xa7\x53\xda\xb5\ \x6b\x57\xa1\xd5\x6a\x5d\xc3\xcb\x5b\x75\xe7\x34\x4d\x19\x18\x18\ \xe0\xd4\xa9\x53\xcf\x1e\x38\x70\xe0\xa8\xa2\x28\xdd\x67\xf2\x16\ \x9f\xf3\x56\x8e\xd7\x34\x8d\x66\xb3\xc9\xd0\xd0\x90\x95\xc9\x64\ \x8a\xbd\xaa\xa8\xad\xbc\xdf\xd3\xa7\x7b\xe8\xb7\xb6\xb6\x76\x6c\ \x64\x64\xe4\x48\xb9\x5c\xee\xd6\xc4\xf4\x6a\x9a\xd3\x44\x6e\x28\ \xaa\x10\x42\x88\x1e\x23\xca\x34\x4d\xd7\x3d\xcf\x2b\xb6\xdb\xed\ \x54\x11\x8a\x90\xa9\xb8\xea\x1d\xde\xc2\x9f\x42\x08\x91\x24\xc9\ \x7c\xa7\xd3\xa9\xd8\xb6\x9d\xef\x5a\x8c\x95\x6e\x9d\xad\x72\x0d\ \x33\xf7\x4e\xc4\x0f\xc3\xd0\x75\x5d\xb7\xe6\x38\x8e\x54\x85\x4a\ \x9a\xf2\x7d\xfb\xde\xac\x17\x5e\x54\x14\x45\xac\xac\xac\x44\x02\ \x21\xb7\xb2\xad\x10\xb2\x3f\xf8\xaa\xaa\x62\xdb\xb6\x04\x56\x1a\ \x8d\xc6\x46\x92\x24\xc1\xbf\xd4\xf7\xe6\x52\xca\x71\x1c\x27\xef\ \xfb\x7e\xac\x20\x64\x2a\xaf\xd6\x0b\xf7\xda\xab\xaa\x0a\x20\xa2\ \x28\x0a\xe3\x38\x76\xd3\x34\x6d\x6f\x6c\x6c\x24\x48\x01\x12\x54\ \x4d\xd5\xb4\xf1\xbd\x83\xb5\xa4\xa9\x23\xd4\x6e\x6d\x6c\x77\x6d\ \xe4\x8f\x0e\x0e\x0e\xc6\x49\x9c\x10\x16\x1d\x72\xdb\x03\x68\x65\ \x48\xd6\x4d\x92\x8e\xd6\x7d\xd9\x1a\x12\x40\x49\x92\xc4\xa9\xd5\ \x6a\x59\x4d\xd3\x32\x31\x09\xd1\x78\x83\x81\x5c\x96\x68\xcd\x20\ \xd9\x30\x91\x91\x82\x62\x76\x5d\xe7\x41\x10\xb8\xc0\xda\xe0\xe0\ \xe0\x80\xa2\x28\xe9\xba\xba\xce\xe4\x75\x2a\xc9\x86\x49\xbc\x62\ \x92\x3a\x3a\x42\x93\x08\xad\x3b\x63\x72\xb9\xdc\x36\x45\x51\x46\ \x2b\x95\x0a\x7e\x1c\x92\xb9\xae\x83\xa1\x2a\xc4\x2d\x83\xb4\xd1\ \xe5\x5b\xa1\x4b\x50\x24\xba\xd6\xbd\x8d\x47\x46\x46\x22\x99\xa4\ \xc9\x9a\xb2\xc1\xf6\xeb\x15\xc2\x55\x83\x68\xd5\x44\xda\x3a\x42\ \x91\x08\xbd\xeb\xd2\x6f\x34\x1a\xb9\xc9\xc9\xc9\x11\x24\xca\x62\ \xd0\x60\xea\x66\x20\x12\x24\x4d\x9d\xa4\x91\x21\xb1\x34\x54\x53\ \x22\x14\x41\xb3\xd9\x5c\x0f\xc3\x70\xdf\xb6\x6d\xdb\xca\x8e\xef\ \x63\xee\xb4\xc9\x55\x14\xc2\x0e\x68\xf5\xb7\xae\xa3\xa5\x19\xda\ \x4f\x55\x89\xd6\x34\x0c\xc3\x40\xd7\xf5\xc1\x72\xb9\x5c\xb0\x3d\ \x0f\x65\x8f\xc5\xe8\x6d\x11\x78\x0a\x9e\xdf\x22\x27\xca\xa4\x6d\ \x93\xd6\x53\x15\x14\x45\xa1\xd1\x68\xa4\x85\x42\xa1\xaa\xeb\x7a\ \xbe\x6d\xb4\xd9\x76\x9f\x4a\x21\x17\x90\x84\x1e\x7a\x9c\x27\x49\ \x13\x9c\xa7\x46\x88\x3b\x0a\xaa\xaa\x56\x2d\xcb\x2a\x17\x8b\xc5\ \x31\x21\x04\xde\x75\xab\x8c\xde\x2e\x49\x5d\x41\xea\xc7\xc8\x58\ \x12\x9f\xaf\xe1\x9c\xc9\xf4\x3c\x37\x51\x18\x86\x64\x74\x93\x0d\ \xdd\x62\xc7\x83\x21\x39\x59\xc5\xf7\x3d\x48\x23\xbc\x86\xc4\x7f\ \xa9\x8a\xbf\xa4\x53\x2c\x16\x10\x42\x8c\x54\x06\x2a\x23\xd2\x95\ \x34\xf7\x2e\xb2\xed\xee\x0c\x8d\x8d\x0d\x0a\x4a\x85\xc0\x0b\xd1\ \xdb\x55\x5a\xdf\x28\x62\x9a\x26\x9a\xa6\x91\xcb\xe5\xc2\xc8\x8f\ \x0c\xbb\x6a\x33\x7e\x6f\x91\xd8\x57\x29\x68\x05\xe6\xd6\x2e\x52\ \x52\x86\xd8\xf8\xc7\x32\x32\x50\x31\x0c\x43\x13\x42\xa4\xa6\x61\ \xd0\x4c\x5c\x26\xef\x04\x4f\x5f\xe3\xd6\xd1\x7b\x51\xde\xb6\xeb\ \xe7\x19\x1f\x9b\x21\xc6\xc7\xf7\xaf\xf5\x31\x7b\x81\x47\xa4\x78\ \xec\xd2\xdf\xc4\x2f\x3c\xf0\xa7\xfc\xc2\x83\x9f\x60\x62\xf0\x20\ \xe5\x09\xf3\xbb\x3d\xd2\xa9\xef\xfb\x04\x49\x40\xa7\x19\xf1\xe1\ \x5b\x7f\x9f\x8f\xde\xf1\xa7\x4c\x8c\xec\xe6\xae\x5b\xee\xc1\x4b\ \xec\x1e\xb9\xa4\x49\x92\x5c\xf5\x48\x13\x71\xef\xc8\x7b\x79\xd7\ \xae\x5f\xe5\xd6\xbd\xf7\x73\x64\xe6\x51\x3c\x63\x03\xdf\x0b\x7a\ \x04\x20\xbb\xb5\xc8\x01\x51\x12\x32\x94\x99\xe6\xd1\xc9\x9f\xe1\ \xe7\x8f\xfe\x05\x71\x73\x82\x9b\xf6\x1f\xc1\xc7\xea\x7b\xbb\xbb\ \x0c\xdf\x95\x35\xd5\x0c\x4c\x67\x6e\xe7\x4f\xde\xf6\x1d\xae\x1b\ \x3d\xca\x8f\xdf\xf9\x9f\x89\x2b\xad\x2e\x0b\x7b\x5e\xbf\x6a\xd4\ \xf3\x7d\x34\x1d\xe6\xe7\x3a\xfc\xf2\x5d\x9f\x61\x6f\xf5\x28\xff\ \xe5\x4d\x9f\x23\x3b\x92\x12\xc4\xdd\xed\x71\x1c\xcb\xae\x47\xda\ \x27\x4c\x43\x3a\x5e\x87\x5f\xb8\xf1\xb3\x8c\x99\x07\x51\x46\xf2\ \xd3\x4c\x0d\xec\x25\x08\xc2\x6b\x0a\xae\xbb\x2c\x1c\x10\xc6\x3e\ \x77\x6c\x7f\x94\xdf\x7f\xe1\x63\x84\x56\x86\x1f\xb9\xe1\x03\x64\ \xd4\x5c\x9f\x95\x7b\x32\xa5\xbf\x59\x0a\x3a\x5d\xb8\x99\x53\x6b\ \xcf\xf3\xe5\x93\x7f\xc3\x3b\xf7\xfe\x7b\x26\x2a\x7b\x88\xa3\xb8\ \xcf\xc2\x3d\x5d\xd8\xf3\x3c\x4c\x25\xc7\xc4\xc0\x0e\x3e\x77\xfe\ \xb7\xb9\xa1\xf8\x83\x3c\xb0\xf7\xad\x0c\x66\x27\x71\xbd\xab\x9a\ \x73\x4f\x17\x8e\xa3\x84\x72\x76\x00\x91\xed\xf0\xc4\x4b\x4f\xb0\ \xb3\x76\x3d\xa3\x85\x1d\x78\x81\xb7\xd5\x1c\x4f\xe0\xfb\x38\xae\ \x87\xae\x29\x04\xad\x3c\x9f\x3c\xf6\x1b\x4c\x9a\x47\x78\xf0\xba\ \xb7\x60\xaa\x79\x5c\xdf\xc5\x73\xb7\xb2\xb0\x07\x48\xf2\xe1\x14\ \xeb\xe9\x19\x2a\xf9\x12\xdb\x4a\x3b\xa8\x67\xc7\xf1\x7d\xaf\x8f\ \x6f\x5b\x3d\xd2\x44\x1a\x37\xee\x3e\xc4\xf3\xeb\x9f\x42\x73\x7c\ \x97\xb9\xe6\x25\xa2\x28\x26\xf0\x23\x24\x7a\x5f\x7a\x0c\xc3\x80\ \x2c\x0a\x71\x12\x52\xd0\x2b\xe8\x8a\xc9\x8b\x17\xbf\x42\x9c\x76\ \x1d\xfd\x5b\x65\x4d\x80\x24\x9f\x10\x24\x1e\x05\xa3\x8c\x2a\x3a\ \x38\x2c\xd3\x70\x97\xf1\x7d\x97\xc0\xd7\xae\xa9\x17\x06\x30\x00\ \x55\xa8\x04\x5e\x42\x75\x50\xe5\xc5\xb3\xc7\x98\x6b\x9c\x25\x08\ \xba\xd6\x0e\x4d\xd3\x7a\xcf\x64\x12\x23\x46\x00\x32\x51\xa8\x97\ \x07\x79\xe9\xf2\x4b\xc4\x25\x1f\x91\x76\x8b\xbf\x33\x81\xb9\xe9\ \x4c\x08\x08\xbc\x00\x43\x68\x98\x19\x9d\x4a\x66\x88\xe5\xf6\x3c\ \x31\x1e\x4e\x60\x11\xf8\x06\x32\x95\x57\xb5\x6f\xdf\x47\x20\xf0\ \xd2\x0e\x25\x7d\x90\x86\xf3\x3c\x0a\x0a\xeb\xce\x12\x51\x18\x11\ \xf9\xd1\x35\x72\x6c\xac\xc5\xa4\xa4\x90\x82\x63\xa5\x28\xc7\x5b\ \x9f\xc5\xc8\x48\x82\xc0\xc3\x71\x9d\xfe\xf4\xee\x95\xfc\x6b\x22\ \xcb\x57\x5f\xff\x33\xde\x73\xf0\x3f\x73\xca\xfd\x12\x1b\xf1\xe5\ \x9e\x51\xa8\xcf\xab\xbd\x92\xff\x24\x4a\xe9\x68\x17\xc8\xc8\x41\ \xee\x3b\x78\x2f\x9f\x3f\xfb\x47\xf8\xa9\x4d\x12\x5f\x4d\x61\x6d\ \x2d\xb8\x16\x5a\xc2\x8b\x73\x4f\xf0\x33\xf7\xfe\x06\x7f\x7f\xfa\ \xf7\xb1\xb8\x42\x35\x3b\x8a\xe7\x5d\x75\xc7\xf7\x06\x30\x8a\x62\ \x96\xad\x39\x9c\x4e\xc2\xe8\xb6\x02\x71\x61\x96\x91\xe2\x76\xbc\ \xa0\x3b\xa3\xae\x26\x13\x7c\x7c\xcf\x45\x22\xb0\xb5\xcb\x1c\x1e\ \x3f\x4a\x47\x3f\xc3\x17\x4f\xfe\x15\x05\xb3\xd8\xcd\xc6\xb8\x5e\ \x7f\x40\xba\x3e\xef\x94\xfa\x64\xc4\x4b\xe7\x5e\x65\xa2\x3e\xce\ \x9f\xbc\xfc\x0b\x54\x8b\x75\xdc\xc0\xc1\xb6\x9d\xbe\xee\xed\x38\ \x0e\x81\xef\x53\x2a\x64\xf9\xbf\xff\xf1\x23\xfc\xe6\xa3\x5f\x44\ \x6b\xf9\x8b\x2c\x2e\xcd\xb2\x7c\xb1\x8d\xdf\x8e\x89\x93\x3c\x52\ \x4a\x36\x36\x36\xf0\xe3\x88\x82\x97\xa7\xa5\x9e\xe3\xb7\x9f\xfc\ \x25\x7e\xe2\xc1\xc7\xf8\xc7\x8b\xff\x83\xd6\x49\x95\x66\xb3\xeb\ \x91\x96\x52\x5e\xf5\x48\x67\x04\x46\xb6\xc6\xef\x3e\xf7\x6f\xf9\ \xa3\x1f\xfd\x27\xce\x36\xbe\xc9\x95\xd5\xf3\xac\xce\x37\xf0\x5b\ \x57\x3d\xd2\x3d\xa7\x41\x2e\xc9\x73\xb2\xf5\x55\x0e\x78\xb7\xe1\ \x26\x1d\xce\x2e\x7d\x89\xb9\x4b\x0e\x8d\x75\x17\xa1\x42\xa5\x52\ \xe9\x9e\x60\x10\x13\x69\xe0\xc9\x0c\x4f\xcc\x7d\x92\xf7\x8c\x7c\ \x0c\x51\x6a\xf0\xf5\x57\xbe\x48\x63\xde\xa1\xd5\x0c\x51\xf5\x6e\ \x92\xb6\xd9\x68\x62\xaf\xdb\xe8\x51\x91\xa5\xe0\x14\xc7\xd6\xfe\ \x81\x62\x31\xcb\x17\xce\xfc\x31\x8d\xc5\x90\x8d\x95\x26\x7a\xa6\ \x2b\xe1\x5a\x96\x45\xb3\xd9\xea\x96\xe5\xaa\x79\x9e\x5c\xfe\x63\ \x26\x9d\x43\x9c\x59\xf9\x06\x7e\x27\x61\xe1\xd5\x26\x7a\x01\x4c\ \xb3\xab\x0b\x37\x9b\x4d\xfc\xbc\x24\x4e\x4d\x16\xd2\x17\xf8\xcd\ \xaf\xfd\x1c\x62\xfb\xd8\x0e\x29\x10\xa8\x99\xae\x3f\xae\x57\x2f\ \x1c\x45\x51\x31\x9b\xcd\x91\xbf\x21\x66\x6c\x6f\x8e\xd5\x93\x1e\ \x57\x5e\xea\x80\x65\xa2\xe8\xa0\x9a\xe2\x1a\x5d\x58\xd7\xf5\x62\ \x92\x8f\xd8\xfd\xf6\x02\xe1\x7c\xca\xe5\xe3\x1b\xf8\xb3\x5d\x9d\ \x43\xcb\xf4\xcb\xc8\x2c\x45\x51\x9a\x52\xca\xc9\x7c\x3e\x4f\xfe\ \x68\xca\xd8\x68\x86\xd9\xe3\x6d\xd6\xbf\x93\x90\x86\x02\xd5\x00\ \x45\xeb\x2e\xc2\x2b\x95\x4a\xd8\x6e\xb7\x8d\x5c\x36\x87\xad\xb8\ \xdc\xf5\xc1\x1a\x2b\x27\x7c\x66\x8f\xb5\x09\xe6\x75\x10\x29\x5a\ \x46\x45\x72\x55\x17\x1e\x1d\x1d\x3d\xea\x5b\x01\x95\x37\x2a\x4c\ \x4e\xe5\x98\x7d\xb1\xcd\xda\x89\x08\xe9\x75\x7f\x7a\x45\x35\xe9\ \xeb\xc2\xb5\x5a\x2d\x94\x89\x34\xa2\x91\x88\xe9\x1b\x33\x2c\x1e\ \x77\x68\x5e\x0c\x20\x56\x91\x48\xb4\xac\x20\x4d\x52\x74\x5d\x6f\ \x7a\x9e\x27\x33\x99\x4c\x35\x57\x2e\xb0\xed\x5e\x89\x75\x25\x66\ \xe3\x9c\x8f\x76\xe4\xf6\xc3\x58\x56\x17\x79\x66\x67\x67\x09\xc3\ \x6e\xd9\xc0\x5b\xde\xf2\x16\x76\xed\xda\xc5\xc2\xdc\x22\xa7\xbf\ \x79\x96\xba\x22\x29\xed\xf4\x51\x54\xa5\x5f\x2f\x5c\x28\x14\xb8\ \x72\xe5\x0a\xd5\x6a\x95\x77\xbc\xe3\x1d\x68\xaa\xc6\xe7\xff\xf6\ \x8b\x54\x6b\x03\x4c\xe4\x1b\x54\x8f\x0e\xd0\x6e\xb7\x09\xc3\x10\ \xd3\x34\xb9\x70\xe1\x02\x71\x1c\xf3\xde\xf7\xbe\x97\x1d\x3b\x76\ \xf0\x0f\x7f\xf7\x05\x94\x15\x8d\xaa\xbd\xce\xce\xdb\x06\x68\xb5\ \x5b\x18\x86\x41\x92\x24\x2c\x2e\x2e\x22\xa5\x64\xdf\xbe\x7d\x3c\ \xf2\xe8\x23\xf8\xae\xcf\x77\x9e\x7a\x95\x9c\xd5\x66\xa6\xea\xa3\ \x8f\x6a\x64\xb3\x59\x16\x16\x16\xfa\xd4\x20\x84\xe0\x8e\x3b\xee\ \xe0\xce\xbb\xee\xe4\xb9\xa7\xbe\xc1\xe5\xaf\xce\x52\xd7\x87\x99\ \xbc\x21\x4b\xb3\xd5\xec\xfe\xd0\x85\x69\x62\x59\x16\x2b\x2b\x2b\ \x8c\x8d\x8d\xf1\xe1\x0f\x7f\x98\xe7\x9e\x7e\x8e\x57\x4f\x9e\xe2\ \xfa\xf1\x32\xd6\x40\x87\x30\x0a\x49\xe2\x84\x62\xb1\xc8\xfc\xfc\ \x3c\xcd\x66\x13\x80\xff\xf8\x1f\xff\x23\x00\x2f\x3c\x77\x0c\x37\ \x63\xb3\x3c\xb2\x8c\xb6\x6d\xdb\x36\x66\x67\x67\x19\x18\xe8\xfe\ \x0e\xcc\x85\x0b\x17\x08\x82\x80\xfb\xee\xbb\x8f\xc3\x87\x0f\x33\ \x3b\x3b\x4b\x2c\x23\x86\x86\x86\x30\x4d\x93\x6f\x7e\xf3\x9b\x8c\ \x8e\x8e\x62\x9a\x66\xdf\x12\x3b\x3e\x3e\xce\x43\x0f\x3d\xc4\xd0\ \xd0\x10\x17\x2f\x5d\xec\x0e\xfc\x66\x32\x60\x6c\x6c\x8c\xa5\xa5\ \x25\x46\x46\x46\xb8\x7c\xf9\x32\x00\x0f\x3f\xfc\x30\x7b\xf6\xec\ \xa1\xd3\xe9\xb0\xb6\xb6\xc6\xb9\x73\xb0\x6f\xdf\x3e\x2e\x5f\xbe\ \x8c\xef\xfb\x8c\x8f\x8f\xb3\xb2\xb2\x42\x1c\xc7\xdc\x7c\xf3\xcd\ \xdc\x79\xc7\x9d\xec\xdc\xb9\x93\xbf\xfc\xcb\xbf\x64\x7e\x61\x9e\ \xd1\x91\x51\x9e\x78\xe2\x09\xea\xf5\x3a\x00\x6b\x6b\x6b\x44\x51\ \x84\xa6\x69\x1c\x3c\x78\x90\x77\xff\x5f\xef\xc6\x34\x4c\x9e\x78\ \xe2\x09\x86\x86\x86\x48\x92\x84\xf9\xf9\x79\xae\x5c\xb9\x42\x4f\ \xaa\xed\xb1\xf0\x2d\xb7\xdc\xc2\xdc\xdc\x1c\x4b\xab\x4b\xdc\x78\ \xe3\x8d\xbc\xf2\xca\x2b\x54\x2a\x15\xce\x9c\x39\xc3\xc1\x83\x07\ \xc9\x64\x32\x1c\x3f\x7e\x9c\x34\x4d\x79\xf8\xe1\x87\xb9\x70\xf1\ \x42\x3f\xb9\xf0\xfc\xf3\xcf\x7f\xff\x7a\xe1\x4e\xa7\x63\xe5\x72\ \xb9\x62\xad\x56\xa3\xdd\x6e\xf7\xb7\xf5\x98\x72\xab\x17\xda\xb6\ \xed\xb9\x7c\x3e\x3f\x50\xad\x56\x8b\x5b\xcd\xde\x5b\xf9\xb9\xf7\ \x3d\x8e\x63\x2b\x0c\xc3\x66\xb1\x58\x9c\x1c\x18\x18\xa0\xd3\xe9\ \x5c\xc3\xab\x3d\x1d\xb9\xf7\xb7\x61\x18\xa1\xe3\x38\xc6\xf0\xf0\ \x30\xb6\x6d\x7f\x8f\x77\x79\xeb\xef\x63\x55\x2a\x15\x4e\x9f\x3e\ \xfd\xec\xee\xdd\xbb\x8f\x6e\xb1\xfc\x5e\xb3\x4f\xef\x7f\x4d\xd3\ \x58\x5b\x5b\x63\x7c\x7c\x3c\xb4\x6d\xdb\xf8\x97\x6a\xa2\x37\xcf\ \xb7\x69\x59\x96\x2c\x97\xcb\xd5\xef\xde\xae\xa5\x49\x1a\x6d\xf5\ \x31\x3b\x8e\x83\x65\x59\x5e\xb5\x5a\xcd\xb4\x5a\xdd\xf4\xbd\x4c\ \x05\x8a\x10\x08\xe5\x7b\x78\x55\x58\x96\x95\x68\x9a\xd6\xcd\x5e\ \x23\xd0\x84\xde\xd5\x85\x95\xab\x35\x19\x5b\xfc\xd7\xd2\x75\xdd\ \x50\xd7\x75\x1c\xc7\x41\x57\xf5\x6b\xea\x85\x15\x5d\x5c\xd3\x7f\ \xa7\xd3\x91\x8a\xa2\x44\xbe\xef\x6b\x9a\xa6\x09\x12\x81\x14\xa0\ \x6a\x12\x45\xb9\xb6\xed\x26\xf8\xcb\x24\x49\x64\x9a\xa6\xb1\x82\ \xd2\x35\x5e\x23\x51\x94\x3e\xd7\xf6\xab\x0a\xe2\x38\x4e\x2c\xcb\ \x4a\x55\x55\x15\x02\xf8\x17\xea\x85\xc5\xe6\x7a\x37\xca\x66\xb3\ \x71\x9a\xa6\x52\xc8\xcd\xba\x65\x40\xdb\x36\x39\x12\xc8\x48\xd9\ \x2c\x90\xee\x16\x2f\xaf\xae\xae\x5e\xaa\xd7\xeb\x07\x7d\xcf\x97\ \xa1\xd1\xd5\x85\x71\x4d\xd2\x4e\xb7\x46\x57\x46\x0a\x42\x93\xbd\ \x3c\x9c\x51\x2a\x95\xf4\x4c\x26\x43\x44\x44\x3a\xde\xa6\x98\x35\ \x48\x5a\xbd\xba\xdb\xab\x81\x87\x61\x18\xb8\xae\xbb\x5a\x2c\x16\ \x67\x74\x5d\x17\x2d\xb5\xc5\xf0\x1e\x48\x6d\x8d\xb4\x65\x22\x1d\ \x6d\xd3\x48\xde\xbf\xfa\x9e\xeb\xb9\xb2\x5a\xad\x0e\x04\x49\x88\ \xb2\xa3\x4d\x4e\x33\x88\x5b\x3a\x69\x5b\x47\x46\x6a\xf7\xc7\xc5\ \x90\x64\x32\x19\x2e\x5e\xbc\x58\x19\x1e\x1e\x0e\x7c\xd7\x8f\xdb\ \x99\x16\x23\x13\x2a\xe1\x86\x41\x6a\x6b\xdd\x1a\xe7\x44\x20\x54\ \xd0\x75\x5d\x18\x86\xe1\x8f\x8c\x8c\x04\x19\x33\x53\xfe\x3f\xd4\ \x0b\x63\xdb\xb6\x7e\xe5\xca\x95\xb5\x72\xb9\x5c\x0c\xe3\x38\x0d\ \xca\x16\x95\xba\x4a\xda\xd1\xd1\x46\x7e\xa4\x55\xd0\x35\x9d\xe6\ \x53\x15\xa2\x55\x1d\x45\x15\x08\x21\x6a\xa5\x52\x29\x9f\x4a\x50\ \x76\x39\x8c\xde\x11\x11\x05\x2e\x22\xd2\xd0\x45\x86\x34\x50\x68\ \xfe\x63\x1d\x55\x55\xd1\x75\x5d\x98\xa6\xa9\xea\xba\x8e\x63\xb8\ \x0c\xde\xe5\x53\x2f\x6a\x10\x87\x84\x9e\x0b\xba\xa4\xfd\xe5\x21\ \xe2\x96\x8a\x94\x52\x68\x9a\xa6\x1b\x86\x21\x34\x4d\xc3\x1d\xeb\ \x30\x7c\xbf\x46\x51\x8e\xb2\xda\x58\x41\x93\x1a\xf1\x42\x91\xce\ \xf1\x02\x32\x06\xd3\x34\xd5\x3e\x0b\xab\x1d\xf6\xbf\x29\x42\x4b\ \x54\x7c\xc7\xc1\x24\x47\xe4\x82\x75\xac\x44\xb0\x68\xf4\x7e\x03\ \xb1\x52\x2e\x97\x33\x41\x94\x90\xb9\xc5\x65\xdb\x21\x13\xab\x6d\ \x91\xa1\x40\x10\x06\xe8\x4e\x99\xc6\xd7\xcb\x98\x86\x81\xa6\x69\ \x79\xd3\x34\xed\xff\x2f\xf5\xc2\xaa\xaa\xa2\xaa\x6a\xb5\x90\xcf\ \xe7\x96\xfd\x16\x13\x6f\x94\x14\x06\x7d\x22\xcf\x47\xb9\x63\xea\ \x1d\x88\x3c\xc4\xd2\xff\x2e\xa6\xec\xfe\x9d\xaa\x01\x35\x79\x80\ \xff\xf0\xe0\xa7\x78\xef\x91\x5f\xa5\x56\xdc\x41\x7d\xdb\xc0\x35\ \x35\xbd\x7d\x94\x4b\x03\xec\x35\x9d\x77\x1f\xfa\x65\xde\xbc\xe3\ \x63\x1c\x9c\xb8\x87\x7b\x6e\x78\x23\x5e\xe4\x5c\xf3\xdb\x59\xbd\ \xe3\xf8\x49\xc0\x7d\x23\x3f\xc1\xb0\x72\x23\x8f\xdd\xf1\x1f\xb8\ \x65\xf2\xed\x78\x7a\xa3\xef\x22\x4d\x92\x44\x76\x51\x31\x24\x4c\ \x23\x6a\xe6\x36\x1e\x19\xfb\xb7\xfc\xa7\x87\x3f\xcd\xeb\xf3\x1e\ \xa3\xe3\xc3\xc4\xe2\xaa\x8f\x59\x76\xa7\x2c\x9e\xe7\x63\xe4\x04\ \xdb\x94\xdb\xf9\xbd\x1f\x7c\x9a\x4a\x66\x86\x5f\x7e\xdb\x1f\xe3\ \x65\x1a\x04\x9b\x75\xd0\xff\x7f\xea\x85\x3d\xcf\x27\x88\x02\x94\ \x4c\xc0\xee\xf4\x9d\xfc\xe8\x4d\x3f\x87\x72\x78\xf8\x41\xee\x99\ \xf9\x81\x4d\x16\xbe\x56\x17\xf6\x3c\x9f\x28\x0a\x38\x3c\x7a\x3f\ \xff\xfc\xfa\x27\x78\xe1\xe5\xd3\xbc\xfd\xc0\xfb\x31\x14\xb3\x4f\ \x22\x3d\x55\xae\x27\xff\x4d\x57\x0e\x71\xb9\xf9\x1a\x27\x16\xbe\ \xc9\x43\x33\xef\xa1\x9c\x19\x24\xde\xd4\x76\xb7\x92\x88\xe7\x79\ \xa8\xe8\xd4\xf3\x63\xf8\xb9\x8b\xec\x1f\xb8\x97\x89\xca\x2e\x86\ \x72\x93\xf8\x5b\xfa\xee\x09\xeb\x71\x14\x51\xcb\x0f\x93\xad\x44\ \x7c\xe5\x85\xaf\xf3\x96\x7d\x3f\xc1\x8d\xa3\xf7\x62\x7b\x9d\xfe\ \xc5\x04\xfa\xb5\xc3\x42\x40\x31\xdd\xce\x27\x9e\xff\x6f\xfc\xbf\ \x6d\x9c\x6b\x8c\x5c\x65\x01\x86\x9f\x73\xbe\x73\xce\x5c\x76\xe7\ \xbe\xd3\xdd\x2e\xdd\xb2\xbd\xb0\xad\x6d\xb7\x58\x4b\xa9\x6c\xb1\ \x36\xa4\x0d\x26\x1a\x8c\x25\x26\x18\x2d\x58\x8c\x3f\x08\x5a\x34\ \x81\x5f\x68\x22\x09\xff\x88\x09\x09\x4a\x82\x09\x68\x34\x40\x0c\ \x8a\x60\x0c\x72\x91\x16\x50\xda\x02\x52\x2b\x4b\xaf\x3b\xed\x76\ \x2f\xdd\xeb\xcc\xec\xcc\xec\xcc\xb9\x5f\xfc\x71\x66\x4e\x97\xe2\ \xef\x99\x39\xf9\xe6\x3b\x97\xef\xbc\xdf\xfb\xbc\xef\x57\x6e\xf8\ \x36\x6b\x33\x43\xc4\xe5\x64\x5b\x67\xeb\x11\x4c\x65\x9a\x06\xe2\ \x73\x79\xe1\x5d\xdc\x98\xde\x82\x69\x1b\xd7\x3a\xbc\xda\x8d\x4b\ \x8e\xe3\xb0\x54\xd3\x79\xf8\xe0\x23\xbc\x56\xfa\x0d\x4a\xb5\x59\ \xe1\xa3\xb9\x77\x71\x1d\x17\xcb\x0c\x08\xb8\x96\x8d\xb5\x6d\x0b\ \x15\x70\x7c\x9b\x94\x56\xc0\x50\x54\xce\xcc\xfd\x1b\x9f\xd0\xdb\ \x15\x42\x44\x20\xb8\xe3\x38\x78\xdd\x5e\xc8\x48\x27\x7a\x58\x10\ \x26\x35\xf7\x2a\xb6\xdf\x6e\x81\xb3\x44\x98\x29\x6e\x4f\x60\xf8\ \x50\x0f\xda\x09\x4b\x07\x4f\x36\xa9\x2c\x2f\x32\x5b\x9f\xc4\xb2\ \x63\xf8\x76\x54\xf0\x88\x69\x99\x78\x8a\x87\x24\xc9\x48\xbe\x20\ \x9f\xca\xf3\xf6\xe8\x1b\x94\x63\x2d\x64\x5f\x44\x57\x77\xb8\x99\ \x60\x61\x5b\x16\x42\x56\xf0\x71\xe9\xe9\xea\x65\xb1\x35\x83\xe5\ \xe9\x18\x4e\x0b\xdb\x4e\x46\xab\xb1\xe3\x38\x04\xb6\x07\x71\x48\ \x74\xa9\x04\x6e\x48\xb9\x4a\xc8\x8c\xd7\x3e\x05\x2f\x9c\x07\x1f\ \xaf\x3d\x27\x26\x8e\xec\xa0\x08\xc1\x52\xbd\x81\x2a\x62\xc8\xa7\ \xea\x2f\x93\xee\x4e\x61\xbb\x76\x44\xda\xaf\x34\xa8\x45\xa0\x72\ \x72\xfe\xcf\x6c\x49\x1d\xa0\x6f\x83\xcb\x44\xeb\x54\x38\x98\xff\ \x93\x58\x77\x2c\x17\x23\x3e\xc1\xd2\x92\xc9\xce\xa1\x61\x5e\x39\ \xff\x2b\x26\x97\xcf\xe2\xd8\x4e\x94\xe9\x5d\x49\xe9\xab\x9a\xe0\ \xed\xcb\x2f\x72\xf8\x4b\x8f\xf1\xfb\xd1\xc7\xb8\x6c\x1e\x27\x9d\ \xc8\xa3\x5f\x97\x17\x36\x8d\x70\xd7\x67\x6e\xf9\x0a\xf5\x86\x45\ \xae\x28\x90\xf2\x33\xa8\x52\x02\xdb\xb5\x3e\x33\x6e\xd3\x34\x30\ \x6d\x0b\x09\x41\x5d\xb9\xc8\x70\xff\x97\x99\xf2\x4e\xf0\xd7\x33\ \xcf\xd1\xa5\x75\x87\xe3\xd6\x8d\x08\xb9\x33\x4c\x13\xcf\x87\x8d\ \x1b\xf3\xbc\x7f\xee\x7d\xfa\xb2\xfd\x3c\xfd\xe1\x23\x64\xe2\x85\ \x68\x4e\xae\x91\x09\x61\x8b\x5c\x21\x93\xe1\x89\xa3\x3f\xe5\x81\ \x9d\xbf\x44\x69\x2a\xd3\xcc\x2e\x4d\x33\x5b\xaa\xa0\xd7\x3c\xba\ \xdd\xd0\x17\x2e\x97\xcb\xd4\x1b\xcb\xc4\x9b\x49\x6c\x15\x9e\x3a\ \xf1\x30\xf7\xec\xb9\x8f\xe9\xb9\xd3\x2c\x9d\x81\x6a\xb5\x1e\x69\ \xe1\xce\x15\x48\x52\x42\xa8\x05\xfe\x78\xe6\x09\x7e\xb1\xfe\x19\ \x66\xec\xb3\xcc\x8d\x66\x29\x5f\xad\x61\xd5\xfd\xce\xbb\x5d\x84\ \x56\x74\xdb\x31\xaa\xfe\x25\x5e\x3d\xfb\x0c\x6e\xa2\xce\xe5\x85\ \xb3\x94\x3e\x30\xa8\xce\x1b\x91\x2f\x6c\x18\x06\x8e\xe9\x60\xc9\ \x3e\x86\x1f\xe3\xd8\xe4\x1f\xd8\xbf\xf9\x6e\xc8\x54\x38\x37\x39\ \xcf\xfc\xe5\x3a\x8d\x25\x07\x49\x84\xef\x6c\xe5\x72\x99\x4a\xbd\ \x41\xbf\x9d\x63\xd2\xf8\x98\x77\x27\xff\x44\x90\x68\xf2\xaf\x99\ \x97\x59\x98\x32\x29\xcf\xd7\x50\xe3\x4a\xa4\x85\x97\xab\x0d\x1a\ \x09\x1f\x2f\x48\xf1\xce\xdc\x73\x6c\xf5\xf7\x30\xee\x7c\x40\x63\ \xd1\xe0\xca\xa9\x32\x8e\xee\x13\x4f\x84\x5a\xb8\x5c\x2e\x63\x24\ \x7c\x4c\x5b\x50\xe9\x1e\xe5\xb9\xe3\x4f\xa2\x3c\xff\xc3\xd3\x98\ \x8b\x10\xcb\x48\xa8\xaa\x12\x35\xd6\xca\xb2\x4c\x4c\xd3\x70\x17\ \x02\xe6\xff\xe3\xd1\x98\x9a\xe3\xc7\x4f\x3d\x8a\x3e\xae\x41\x10\ \x10\x4b\x2b\x91\xb1\xd3\x6e\xc0\xc0\xb7\x7c\x96\xce\xb9\xc8\xad\ \x6e\xee\x7b\xe9\xfb\xe8\x25\x0d\xb3\x5e\x26\x91\x15\x88\x70\x75\ \x8f\x8e\x9d\xcf\xe7\xb1\x67\x5b\x4c\xbd\x1d\xf0\xe1\xe8\x9b\x2c\ \x8e\xda\xf8\x96\x84\x92\x04\x2d\xa6\x46\x50\x64\x10\x04\x68\x09\ \x0d\xcf\xb0\x99\x3f\xed\xb2\x3c\x3b\xc3\xb1\x5f\x3f\x8e\x7e\x59\ \xc5\x5c\x72\x89\x67\x15\x14\x45\x44\x81\x48\xa1\x28\xc4\x64\x15\ \x7d\xdc\xa7\x5a\x87\x17\x2f\xbe\xc4\xd2\x79\x9f\xc6\x15\x1f\x2d\ \x29\xa3\x25\xd5\xa8\xd2\x59\x08\x81\x1a\x53\xe9\xd6\x7d\x16\x47\ \x1d\x96\xe7\x17\x39\x7e\xee\x05\x96\xce\x05\xb8\x7a\x40\x3c\x2b\ \x50\x54\x39\x82\x33\x25\x49\x22\x21\x69\xd4\x2e\xb8\x34\x15\x9f\ \xb3\x93\xef\xa0\x6c\xda\xb0\x05\xe9\x26\xd0\xd4\x30\xc1\xe8\xfb\ \x3e\x33\x33\x33\xec\xd9\xb3\x87\x81\x81\x01\x2c\xdd\xe6\xf4\x07\ \x9f\xb0\x2a\x19\x43\x4a\x2c\x52\xdc\xd7\xc3\xfc\xc2\x3c\x8d\x7a\ \x83\x42\xa1\xc0\xd8\xd8\x18\xbd\xbd\xbd\xec\xdb\xb7\x8f\x54\x77\ \x8a\xbf\xff\xed\x0d\x7a\xfb\x7a\x59\xe5\xcc\xd3\xbb\x7b\x15\xf5\ \x46\x8d\x56\x4b\x27\x9d\x4e\x73\xe1\xc2\x05\x0c\xc3\xe0\xfe\xfb\ \xef\x67\xe7\xce\x9d\xbc\xf5\xfa\x3f\xb0\xaa\x36\x92\x32\xc3\xb6\ \x03\x39\x9a\xcd\x26\xb9\x5c\x8e\x5a\xad\xc6\xf4\xf4\x34\xad\x56\ \x8b\xe1\xe1\x61\x46\x46\x46\x88\x69\x31\x3e\x39\xf5\x29\x9e\xd1\ \xe2\x06\xa9\x45\x6c\xab\x46\x26\x97\xe1\x52\xe9\x12\xf1\x78\x3c\ \x4c\x27\xa9\x2a\x23\x23\x23\xdc\x7c\xf3\xcd\x9c\xf8\xe7\x49\x16\ \x2f\x56\x28\x6a\x82\xbe\x41\x19\x77\xad\x43\xb5\x52\xed\x10\xb8\ \x51\x6c\xf6\xd0\xa1\x43\x2c\x55\xaa\x7c\x7c\xec\x34\x99\x54\x8a\ \x78\xcc\x24\x7f\xd3\x32\xb9\x7c\x0e\xcb\xb2\xa8\x54\x2a\xb4\x5a\ \x2d\x74\x5d\xe7\xc8\x43\x47\x68\x35\x9b\x8c\x97\x26\x59\xaa\xd5\ \xc8\x3a\x16\xca\xf0\xf0\x36\xce\x9f\x3f\xcf\xe0\xe0\x20\xa9\x54\ \x2a\x12\xfc\x7b\xf7\xee\xe5\xf6\xdb\x6f\x0f\x21\x1f\x7e\x47\x2e\ \x97\xc3\xb6\xed\x08\xcb\xb5\x4c\x8b\x62\xb1\xc8\xd8\xd8\x18\xf9\ \x7c\x9e\x43\x87\x0e\x91\xcf\xe7\xb9\x3a\x73\x95\xa1\xa1\x21\x26\ \x26\x26\xe8\xd4\x28\x5f\xb9\x72\x85\xad\x5b\xb7\x52\x2a\x95\x30\ \x4d\x93\x3b\xee\xb8\x83\x4d\x9b\x36\x31\x31\x31\x11\x2e\x00\x9e\ \xc1\xf6\xed\xdb\x39\x7d\xfa\x34\xe9\x74\x9a\xfe\xfe\x7e\xe6\xe6\ \xe6\x00\xd8\xb1\x63\x07\x07\x0f\x1e\x64\xfd\xfa\xf5\x3c\xfb\xec\ \xb3\x2c\x2c\x2c\x50\x28\x14\x38\x79\xf2\x24\x7d\xbd\x7d\xed\xc6\ \xca\x90\xd1\x51\x14\x85\x91\x91\x11\xee\xbd\xf7\x5e\x1c\xc7\xa1\ \x54\x2a\x31\x34\x34\xc4\xa5\x4b\x97\xc8\x66\xb3\x1c\x3d\x7a\x94\ \xb5\x6b\xd7\x32\x35\x35\x45\xb9\x5c\x26\x97\xcb\x71\xf8\xf0\x61\ \x46\x47\x47\x29\x57\x2b\x6c\xde\xbc\x19\x5d\xd7\xb9\x70\xe1\x02\ \x99\x4c\x86\x62\xb1\x48\xa9\x54\x8a\x7c\xe1\x23\x47\x8e\x70\xee\ \xdc\x39\xc6\xc7\xc7\x99\x9d\x9d\x0d\x19\xe9\x5d\xbb\x76\x05\x1d\ \x9d\xe8\x38\x0e\xc9\x64\x92\xc9\xc9\xc9\x8b\x6b\xd6\xac\x19\xda\ \xbc\x79\x33\x63\x63\x63\xd1\xce\xf3\xf5\xdd\xcc\xed\xf8\x53\x53\ \xd3\xb4\xd8\xd6\xad\x5b\xd5\x6a\xb5\xca\xf2\xf2\x72\xa4\x55\x3b\ \x5e\x6b\x27\x62\x2f\x49\x52\xd9\x75\xdd\x71\x60\x57\x36\x9b\x8d\ \x68\x82\x95\xbb\x29\x2b\xfd\x67\x55\x55\x1b\xb3\xb3\xb3\xd2\xfe\ \xfd\xfb\x53\x63\x63\x63\x91\x36\xed\x3c\x36\x3a\x15\x2d\xae\xeb\ \x76\x18\xe9\x89\x91\x91\x91\x1b\x6d\xdb\x8e\xbc\xdb\xce\x6e\xf2\ \xca\xa6\x8e\x95\xbe\x70\x87\xed\x5e\xb9\x58\xac\x1c\xbb\xef\xfb\ \x08\x21\xa8\xd7\xeb\xe5\x62\xb1\xd8\x33\x38\x38\xc8\xe4\xe4\x64\ \x74\x4b\x2b\xa9\xee\x74\xa4\x29\xa5\x76\x96\xd6\x75\x5d\xaf\xbd\ \xbf\x46\x32\xd1\x15\x62\xb4\xda\xf5\x5c\x72\x88\xf8\x5a\x96\xe5\ \xa6\x52\x29\x75\x76\x76\x16\x59\x96\xdb\x8c\xf4\xf5\x1c\x73\xd0\ \x99\x44\x79\x66\x66\x46\x5a\xbd\x7a\xb5\x27\x84\x90\x62\x5a\xec\ \xb3\x59\x64\xae\x79\xbd\xed\x1a\xe4\xa0\x58\x2c\x2a\x53\x53\x53\ \x24\x12\x09\x3a\x5a\x58\x6a\x7f\xb7\xab\xab\x3b\xfa\x4d\xfb\x8f\ \x9a\xba\xae\x63\x3b\x36\x71\x2d\x8e\xef\x43\x5c\xfb\xfc\xf1\x85\ \x10\x94\xcb\x65\x84\x10\x52\xbd\x5e\x47\x42\x42\x15\x31\x34\x25\ \xb6\x82\x91\x96\x22\x4d\xdc\x68\x34\xf0\x7d\xbf\x99\x4e\xa7\x7b\ \x16\x16\x16\xe8\x4a\x74\x11\xf8\x61\x7d\x96\x92\x1b\x8c\x47\x5a\ \xb1\x73\x36\x65\x59\x76\xf3\xf9\x3c\x86\x6e\xe0\x74\x99\x24\xfb\ \xed\xb0\x94\xd0\x10\xf8\xba\x1a\xe6\x85\xdb\x98\x6c\xa5\x52\x69\ \x15\x0a\x05\x55\x08\x11\xf3\xf0\xf0\x56\x2d\xd3\x9d\x52\x42\xd6\ \xb8\x93\xe9\x75\xe5\x4e\x0d\x7c\x22\x16\x8b\xe5\x93\xc9\xa4\xa3\ \x28\x8a\x68\xca\x4d\x72\x03\x12\xbe\x29\x11\xb4\x54\x7c\x5d\x21\ \xb0\xe4\xd0\xeb\x0d\xaf\x02\x21\x84\x48\xe6\x72\x39\x5a\xbe\x41\ \x7a\xa3\x05\xae\x4c\xa0\x2b\x04\xa6\xd2\xee\xda\x92\x91\xa4\x10\ \x6b\x53\x14\x65\xb2\xa7\xa7\x67\x93\xa9\x9b\xd4\xe2\x55\xfa\x06\ \x05\x4e\xb3\x9d\x73\xd6\xc3\x9c\x73\x27\xb1\x2e\xcb\x32\x7d\x7d\ \x7d\x6a\xe0\x07\x94\x9d\x3a\x7d\x5b\x20\xb0\x24\x7c\x43\x21\x30\ \x04\x7e\x33\xe4\xaf\x65\x21\x77\x56\xf7\x4b\x99\x4c\x66\xd0\xb2\ \x1d\xfc\x55\x4d\x52\x05\x19\x57\x07\x25\x7b\xa0\x8c\x2c\x04\x4b\ \x6f\x65\x71\xe6\xb5\x4e\x0b\x5b\x5c\x08\x81\xe3\x7b\xf8\xfd\xcb\ \x24\x77\xb7\xe8\x4d\x0c\xd0\x34\xeb\x21\x74\x69\x2b\x54\x5e\x29\ \x46\x77\x9a\xa2\x28\xb2\xe7\x79\xe8\xaa\x41\x6c\x7b\x95\xe2\x9a\ \x1c\x29\x35\xcb\x4c\x75\x8a\x58\x5c\xa5\x7e\x2c\x8f\x3d\x13\xc3\ \xf7\x7d\x59\x51\x94\x64\x2c\x16\xd3\x14\x45\x91\xe7\x56\x4f\xb3\ \xe5\x4e\x8d\x44\x50\x60\xa9\x59\x41\xc8\x02\x77\xaa\x9b\xe5\x8f\ \x52\xf8\x6e\xd8\x20\x62\x59\x16\xb2\x2f\x05\x73\x4a\x45\x1a\xdc\ \x1b\x10\x0f\xb2\x58\x76\x0b\xd7\xb1\x09\x0c\x95\xfa\xf1\x0c\xce\ \xa2\x8a\xa6\x69\x04\x41\x10\x97\x65\x19\xd9\x95\x59\x5e\xb7\xc0\ \xe6\x3d\x69\x12\x41\x9e\xa6\x5e\xc3\xb6\x1d\x68\x24\xa9\xbe\x99\ \x5d\x59\xaf\x27\x39\xb6\xc3\x7c\x72\x91\xe1\xbd\x49\x02\x2b\x8e\ \x2a\x4b\x34\x5a\x15\x54\x45\x63\xf1\x95\x3c\xbe\x11\xed\xe4\xa4\ \x09\xa0\x6a\xe8\xac\xbb\x4d\x47\xc9\x18\x0c\xa4\x86\x90\x0f\xac\ \x7b\x80\x64\x57\xbb\x3b\xcb\xba\x96\x17\x0e\x2b\x92\x2c\x3c\xd9\ \x66\x7d\xec\xab\x7c\x6f\xc7\xa3\x7c\xe7\x0b\x8f\xb3\x2e\xb3\x3b\ \x2a\x31\xec\xd8\x9a\x51\xfe\xd7\x73\x58\xa8\x34\xf8\xd1\xee\x27\ \x19\xce\xde\xc5\x37\xb7\x3f\xc0\xb7\x6e\xfd\x01\xa6\xdb\x5a\x49\ \xa8\x06\x1d\x59\x67\x05\x06\xbb\x7a\xef\x66\x77\xf1\xbb\xdc\xb3\ \xfb\x41\xbe\xb8\xea\x1b\xe8\xa2\x82\x71\xad\x47\xba\x93\x17\x96\ \xbc\xc0\x61\x6d\x6e\x13\x5f\x1f\x7c\x88\x9f\xdf\xf9\x5b\x32\xe6\ \x6d\xac\xea\xed\xc1\xf6\xcc\x28\x45\x19\xf5\x5f\x1b\x26\x8a\x26\ \xb1\x31\xb9\x87\x07\x6f\x79\x9a\xa1\xfc\x5e\x7e\xb2\xf7\x19\x6c\ \x6d\xf9\x33\x34\x6b\xc7\x73\x96\x55\xb8\x32\x51\xe3\xd1\x7d\xcf\ \xb3\x21\xbb\x9b\x9f\xed\x7f\x01\x27\xd9\x88\x3e\xbf\x96\xd6\x6c\ \xe7\x85\x65\x83\x7d\xa9\x76\x5e\x78\x4d\x6a\x13\xeb\x0b\xdb\xb0\ \xed\x50\x79\x74\xb4\x70\x28\xf8\x4d\x5c\xd7\x64\x53\xe1\x16\x8e\ \xcf\xfc\x85\xf7\x4e\x7d\xc4\xce\x35\xfb\xc2\x64\xf9\x0a\x6d\x1b\ \x69\x61\xdb\x22\x2b\x06\x98\xaa\x95\x38\x71\xf9\x75\xbe\x36\x74\ \x08\x81\xc0\x75\xbd\x48\x67\x77\x1a\x83\x0c\xc3\x20\x70\x15\x06\ \x73\x37\x71\xd6\x7c\x95\x1d\xf9\xbb\xd8\x58\xdc\x46\x5f\xd7\x7a\ \xcc\xeb\x7c\x61\xd3\x34\xc2\xbc\xb0\x92\xa4\xea\x4c\xf3\xdf\xd2\ \x28\xb7\xae\xdb\x4b\x3e\xbe\x1a\xd3\x32\xae\x53\x22\xa1\xe7\xac\ \x08\x41\x73\x49\xf0\xda\xd9\xe7\x59\xad\x6d\x63\xfb\xda\xed\x68\ \x52\x22\xd4\xca\xc6\x0a\x4d\x6e\x1a\x04\x81\x47\xd6\xdb\x40\xd5\ \x2b\xd1\x97\xed\xa7\xb7\x7b\x80\xde\xe4\x40\x14\xde\xee\x48\x50\ \xbd\xcd\x48\x37\xda\x79\xe1\x33\x95\xf7\xf8\x1f\xcb\xb6\x8e\xf6\ \x8f\xf1\xef\x16\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x1a\x78\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x69\x08\x06\x00\x00\x00\xcc\x7c\x86\x8a\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x88\x26\x00\x00\x88\x26\x01\ \xac\x91\x9d\x06\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x04\x3a\x04\x0e\x03\xc5\x00\x00\x19\xf8\x49\x44\x41\x54\x78\ \xda\xed\x9d\x7b\x74\x54\xf5\xbd\xe8\x3f\xbf\xbd\x67\xcf\x64\x92\ \x0c\x79\x12\xc2\x23\x01\x4a\x28\x8f\x4a\x90\xa2\x16\x6b\xc3\xa9\ \xa0\x02\xf5\xd4\x2e\xbd\xda\x2e\x5b\xee\xa5\x85\x7a\xb4\x75\xf5\ \xae\x16\xef\x83\xf6\xf6\x9c\x73\x5b\xd0\x7a\x7b\xaf\x4b\xaf\xbd\ \xb4\x97\xd5\x7a\x3d\x2a\xb7\xd6\x1e\x3d\xe7\xd4\x5a\xa1\x2a\x78\ \x05\x0f\x4a\x00\x51\x08\xa4\x09\xaf\xc8\x23\x04\xf2\x9a\x24\x33\ \x99\xcc\xec\xc7\xef\xfe\x31\xcc\x66\x1e\x7b\x87\x09\x4c\x12\x70\ \xe5\x3b\x6b\xaf\x64\xf6\xfe\xfd\x7e\xfb\xf7\xfb\xbe\xbf\xdf\xdf\ \x63\x04\x40\x65\x65\x65\x9d\x10\x62\x07\x63\x30\xea\xa0\x00\xaa\ \x65\x59\xda\x18\x2a\xae\x0e\xf0\x00\x85\xa6\x69\x16\xaa\xaa\x0a\ \x80\x94\x12\xcb\xb2\xc6\x30\x33\x42\x20\x84\x40\x51\x94\x14\x82\ \x94\x1b\x86\x51\xe6\xf5\x7a\x01\xc8\xcf\xcf\x67\xe5\xca\x95\x63\ \x98\x1a\x21\xd8\xbf\x7f\x3f\x7b\xf7\xee\x4d\x21\xc8\x44\xc3\x30\ \x2a\xd3\x0b\x9a\xa6\x89\xae\xeb\x63\x18\x1b\x46\xc9\xf0\xf9\x7c\ \x08\x21\x32\x54\xd6\xf8\x0b\x97\x0d\x52\x4a\xfa\xfb\xfb\x69\x6b\ \x6b\x1b\xc3\xdc\x30\x41\x5e\x5e\x1e\x53\xa6\x4c\x41\x4a\x99\x41\ \x90\x80\x65\x59\x81\xf4\x0a\xc3\x65\x4b\x84\x10\x28\x28\x08\x40\ \x20\x88\x19\x26\x31\xcb\x40\xf5\x9b\xf1\x3b\x31\x0f\xaa\xa5\x82\ \x00\xa1\x48\x10\x20\x91\x9f\x38\x82\xa4\x13\x22\x99\x20\x5e\x21\ \x84\xe6\x54\x30\x5d\x9c\x72\x01\x41\xa3\x8f\x93\xfa\x39\xba\x8d\ \x10\x03\x32\xc6\x67\x6e\xc8\x67\x76\x6d\x01\x49\x76\x8d\xfe\x1e\ \x89\x6c\xcf\x27\x76\xce\x87\xd5\xee\xc7\x33\x90\x17\x27\x90\xdd\ \xb1\x4f\x36\x41\x14\xcb\xb2\xd4\x64\x22\x58\x96\x95\x53\x09\x11\ \x40\x8f\x19\xa6\x61\xe0\x04\x1d\x66\x0f\x42\x2a\x4c\x9d\x9e\xc7\ \x8a\xa5\x65\xe4\xe5\x29\x98\x26\x48\x09\xe2\x82\x34\x14\x94\x0a\ \x28\xeb\x47\xcc\x09\x83\x02\xb1\x01\x89\xec\xd3\x30\x7a\x35\x64\ \x9f\x86\x19\xf2\x60\x85\x34\xac\xb0\x07\x2b\xa4\xa2\xe8\x9a\x2d\ \x4d\xf1\x4b\x5e\x13\x04\x49\xe0\x39\x9d\x20\xc2\x49\x12\xdc\x28\ \x78\x39\x10\xb2\x22\xfc\x6b\x7f\x03\x52\x4a\x54\xa9\x52\x31\xc9\ \xcb\x17\xbf\x54\x8a\xb4\xc0\x30\x24\x42\x08\x12\x5d\x10\x71\x1d\ \x05\x52\x20\x11\x60\x48\x34\x55\x81\x62\x13\x6f\xb1\x09\x0c\x10\ \xef\xda\x85\x72\xc0\x40\x48\x62\x9c\xcf\xc3\x68\xf7\xa1\xb7\xf9\ \xf0\x84\xf3\x6d\x4e\x10\x57\xa9\x44\x0d\x26\x21\xae\x94\xcb\x85\ \x84\x18\xd2\x64\x57\xff\xa1\x0b\x12\x20\xf0\xe5\x09\x6e\xbb\xab\ \x0c\x69\x65\xa9\x16\xed\xe7\xc2\xf1\x96\x04\xfc\x45\x02\x8a\x07\ \x10\xb3\x07\x40\x01\x3d\x66\x61\xf6\x7a\xb0\x7a\xbd\x18\xbd\x2a\ \xb2\xcf\x8b\x19\x56\x91\x21\x0f\x46\x48\x41\x89\x7a\x11\x42\xc6\ \xc3\xe2\x51\x92\xa8\xc1\x24\xc4\xb5\x42\x2e\xa4\xe4\xa4\x7e\x0e\ \x43\x9a\x28\x17\xb0\x58\x33\xb7\x00\x45\x11\xc8\x1c\x31\xae\xdd\ \x86\x14\x48\x13\xa4\x09\x1e\xa1\xe0\x29\x92\x50\x14\xbd\x30\x96\ \xfe\x14\x89\xd2\xa3\x92\x81\x36\x0d\xeb\x9c\x9f\x48\x9b\x07\x4f\ \x77\xbe\xad\xee\x46\x4a\xa2\xb2\x96\x90\x64\x62\xe4\x82\x20\xed\ \x46\x4f\x8a\x14\x54\x4e\xf6\x0e\xab\x5d\x16\x4e\xff\x25\x4b\x94\ \x94\x78\xfd\x02\xef\x0c\x1d\x51\xa3\x53\xa2\x48\x4c\xab\x83\x58\ \x8f\x02\x3d\x5e\x62\x3d\x2a\xf4\x7a\x31\xc2\x0a\x84\x35\x62\x21\ \x81\x12\xd1\x10\x6a\x6e\x25\xc9\x0d\xbf\xc3\x4e\x90\x90\x8c\xa4\ \x7c\x2f\x2c\x52\x47\x3d\x20\x03\xc0\x8a\x4b\xa9\x34\x40\x11\x0a\ \x79\x85\x12\x0a\x63\xe4\x4d\x06\x49\x04\x64\xc2\x96\x81\x65\x40\ \xd7\x9f\x4b\x90\x5d\x79\x39\x27\x48\x56\x2a\x2b\x97\x04\x31\x30\ \xe3\x86\xfa\x02\xf8\x7c\xa3\x4b\x10\x57\x02\xa5\xcb\x56\xc2\x63\ \x93\xa0\xfa\x40\xd1\xc0\x90\x72\xe4\x09\x92\x4b\xef\x8a\xf8\x78\ \x6c\xfb\x01\xa0\x88\x6b\x2c\x8c\x10\x49\x03\x19\x01\x18\x54\x42\ \xc6\xb2\xbe\xc3\x97\xb9\x18\x92\x0d\xc9\xb5\xa4\x64\xb6\x25\x87\ \x50\xf7\x82\x5a\x11\xf1\x7a\x71\xc4\x48\x5b\xdd\x08\x2e\xc6\x30\ \xc3\x4a\x90\x1c\x8b\xc8\x90\xbc\xac\x04\x27\xe4\x82\x23\x84\x88\ \x1b\xcd\x54\x50\xb2\xaa\xab\xa8\xd0\xd5\xae\x73\xea\x64\x1f\x35\ \x15\x73\xb8\x61\xc6\x4d\x54\x96\x4e\x60\x7a\xe5\xa7\x50\x15\xe8\ \xec\x6f\xe3\x64\xf0\x2f\xb4\x85\x3e\xe6\x78\x77\x03\x8a\x50\x1d\ \xde\x95\x33\x0c\xe6\x5c\x42\x86\x1c\x87\x0c\xb7\x63\x7a\x29\xc9\ \x78\xfb\x4f\xdd\xf4\xb4\xc3\xab\x3f\xfb\xbf\xcc\x9f\x3e\x1f\x8f\ \xea\x71\xec\xa7\x29\x0d\xce\xf4\x1e\xe5\xd7\x7b\xff\x96\xf3\xa1\ \x93\xa8\x8a\x73\xb9\x44\x46\xc0\x92\x56\x5c\xf2\x10\x59\xe7\xeb\ \xe4\x30\xa8\x40\x27\x3c\x2b\xd9\x78\x01\x57\x72\x5d\x0e\xc4\x06\ \x2c\x5e\x7d\xb1\x0d\x2d\x56\xc6\x47\xcf\xec\x60\x61\xcd\x42\x54\ \x45\x75\xf5\x92\x3c\x8a\xc6\xd4\xe2\x39\x6c\xb8\xed\x65\x6e\xfd\ \xd4\x7d\x18\x96\xee\x58\x2e\xd4\x6b\xb0\xed\x4f\xed\x4c\xb6\xea\ \xb8\xbf\x76\x2d\x4b\x3e\xf5\x55\xe6\x8c\xff\x5c\xd6\x0c\x92\x2b\ \x9c\x0c\x86\x97\x61\x77\x7b\x11\x82\xf4\x66\x06\x6b\xd7\xb2\xe0\ \xf5\x7f\xec\x24\xe0\x2f\xe5\xfd\x5f\xbe\x89\xdf\xeb\xcf\x2a\xc5\ \x92\x90\x80\xfb\x6b\xff\x23\xc5\x79\x15\xfc\x63\xc3\xff\xc4\xab\ \xfa\xec\xe7\xaa\x47\xd0\x72\x64\x80\xe6\xc3\x3d\xdc\xff\xf7\x7f\ \x43\xcd\xc4\x99\x00\xb4\x74\x1f\xe6\xf0\xf9\xf7\xb3\xa0\x88\x95\ \x53\xad\xe1\xa4\xae\x06\x55\x59\xb9\xf3\xf3\xe3\xae\x6e\x32\xa7\ \x2a\x8a\x3b\x72\x0f\x7f\xd0\x47\xa4\xdf\xe4\xe7\x0f\x3e\x62\x13\ \x23\x1d\xa2\x46\x84\xf7\xff\xb2\x1b\x4d\xf8\xb9\x61\xd6\x02\xbc\ \x1e\x6f\x0a\x61\x56\x7c\x7a\x15\x4d\x1d\x7b\x69\xee\xfc\xe0\x22\ \x41\x54\xc1\xc9\x63\x03\x54\x56\x94\x50\x33\x71\xa6\x4d\x40\x04\ \x29\x73\xda\x57\xaa\x6a\x73\xee\xf6\xe6\x42\xe5\x5c\xb6\x1f\x23\ \x05\x87\x3f\x0c\x51\x5e\x12\xe0\xdf\xde\x76\xbf\x63\xa9\x73\xa1\ \x53\xfc\xb7\x9d\xab\xe9\xe9\x0b\xb3\xf5\xe5\x4e\xaa\x27\x54\xf1\ \xde\x2f\xde\xca\x08\xf4\xfe\xcd\x67\xfe\x3d\x8f\xbd\xb3\xca\xfe\ \x1e\x09\x5b\xf4\xf5\x98\xdc\x3c\x6f\x61\x76\x49\xcd\x61\xca\xed\ \x5d\x4a\x0b\x29\x83\x89\x93\x65\x59\x57\x7c\x25\x5c\xc6\xc4\x27\ \xfd\x7b\xe2\xa3\xa8\x82\x86\x7d\x7d\x74\xf7\x84\xf9\xdf\x8f\x3c\ \xe1\x6a\x04\x5f\xf8\xf0\x51\x22\x46\x98\xbc\x7c\xc1\xed\x77\x97\ \x70\xf0\x48\x13\x77\xfe\xf8\xde\x0c\x04\x57\x15\xcd\xa4\xa6\x74\ \x3e\xa6\x65\x20\x91\x74\x77\xe8\x48\x24\xd7\xd7\x5c\xe7\xe8\xd2\ \x5e\xf2\x93\x23\x7c\x24\x2e\x37\x2f\x4b\x71\x32\x7e\xb9\xe4\x06\ \x91\xf6\x71\xba\x27\x10\x28\x42\xa1\xf9\x60\x3f\x15\xe5\x45\x2c\ \xb9\x7e\x89\xa3\x51\xee\x8e\x9c\xa3\xb1\xbd\x1e\x81\x40\x5a\x50\ \x50\xa8\x32\x73\xf6\x38\xde\xfb\x70\x3f\xef\x37\xd6\x67\xd4\x59\ \xb3\xf0\xa7\x58\xc4\xd0\x54\x85\x73\x6d\x61\xf4\x98\xc1\xbc\x4f\ \xcd\xc9\x70\x9f\x84\x14\x5c\xea\x93\x6b\x37\x2b\xeb\xc0\x30\xd9\ \x1d\xcb\xdd\x8c\xa1\xc8\x20\x51\x3a\x74\xb4\xc5\xd0\x63\xb0\xe2\ \xe6\xbf\x72\x8d\x25\xde\x39\xf1\x4f\xa8\xc2\x13\xaf\x7f\xa1\x89\ \x09\x93\x7d\x9c\x3c\x16\xe5\x9d\x8f\xfe\x95\x45\x73\x6e\x4a\x19\ \x47\xb1\x7f\x3c\x4d\x3b\x4b\x68\x3a\x76\x8a\xed\xbf\x78\x99\xfe\ \xaf\xc7\x98\x33\x25\x95\x20\x01\x5f\x09\x9f\xab\x5a\xce\x80\x11\ \x41\x37\x23\xb4\x87\x5b\xe9\xe8\x3f\xe3\x28\x45\xb9\x8e\x43\x46\ \xc7\xcb\xca\x12\xba\xda\x75\x84\x80\x05\x33\xe7\xb9\x96\x69\xee\ \xfc\x00\x55\xa4\xba\xbf\x25\x65\xf1\xe5\x00\x07\x8e\x35\x38\x26\ \x0d\xe7\x55\xcd\xa7\xe1\x2f\x1f\x33\xa9\x64\x32\x25\x53\xca\x33\ \xda\x2c\xcb\x9f\xc8\xaa\x05\x7f\x1b\x4f\xec\x4a\x8b\xff\x77\xe2\ \x65\x5e\x39\xf4\xf4\xd5\x65\x43\x86\x23\x0f\x94\xfa\x72\x99\x71\ \x85\x7a\x4d\xa4\x94\x54\x55\x4c\x74\x6d\xe7\x74\x4f\x33\x42\x28\ \x29\xf5\x0a\x02\x2a\x52\x4a\xce\x76\xb6\x3b\xd6\x99\x3b\xf5\x33\ \x59\x05\x76\x82\x78\x46\x41\x49\x6b\xff\xe2\x75\x15\x24\x17\x73\ \xc1\x11\x8a\x48\x55\x51\xc2\xc5\x7d\x0c\xf7\x59\x08\x21\xa8\x99\ \x3c\xd3\xb5\x2d\xc3\x32\x33\x8c\xb7\x3f\x5f\x41\x08\x41\x6b\xc7\ \x19\xc7\x3a\xd3\x26\x4d\xc6\x32\xa1\xc0\xe7\x4f\x89\x57\x06\x57\ \xaf\xc2\xd9\xf0\xcb\x51\x9a\xa0\x4a\xcf\x69\x5d\x79\x2c\x22\x2e\ \xe9\xd3\x87\x43\x71\x64\x57\x96\x95\x39\x47\xef\x66\xd4\x11\x91\ \xaa\x27\x9e\xfe\x08\x47\x23\xce\x12\x32\xb3\x9a\xaf\xfd\x4d\x25\ \x13\xef\x9b\x45\x59\x51\x11\x47\xfe\xe1\x50\xaa\x1b\xdd\x77\x8a\ \x7f\x3e\xf8\x0c\x9a\xe2\xa3\xc0\x57\x48\x47\xf4\x63\x67\x82\x58\ \x57\x81\x0d\x19\x49\xd0\x63\xf1\xc1\x96\x14\x16\x3b\x3f\x37\x07\ \x5c\x93\x4c\x9a\x4f\x10\x89\x39\x3f\x2f\xce\x1b\x8f\xc7\xa3\x90\ \xe7\xc9\xc7\x32\x32\x35\x74\xc4\xe8\xe3\x40\xc7\x9b\xa9\x32\xe2\ \xb4\x0a\x67\xd8\xd5\xf8\x20\x5e\x56\x6e\xd7\x65\x65\x17\x80\x99\ \x46\xbc\x63\xf9\xde\x80\xab\x84\xb8\x81\xd7\xab\x10\xee\x77\x5e\ \x87\xec\x55\xf3\x2e\xa6\x0c\x84\x73\xf7\x44\x36\x19\xe2\xd1\xcc\ \xf6\x26\x62\x91\x5c\xac\x5c\x8c\xe3\x41\xa4\x7d\x77\x20\x88\x39\ \x78\xf4\xac\x9b\x51\x57\xd2\xfa\x7c\x0a\xba\x61\x3a\x3e\xd3\x54\ \xef\xc5\xf5\x73\x0e\xed\x0b\x57\xab\x96\x8d\xea\xcd\xb5\x2a\x1f\ \x64\x3e\x64\xa4\x67\x0c\x0d\x43\x0e\x3a\xdf\x1e\x1b\x54\x65\x29\ \x18\xba\x85\x69\x99\x19\x59\x61\x4d\xf1\x5d\x94\x84\x2b\xc8\x47\ \xe5\x1a\x1f\xc9\x11\xfb\x88\x67\x7b\xb3\x51\xc0\x8a\x10\xf6\x4c\ \xe0\x50\xb8\x53\x42\xea\xaa\xc7\x61\xe2\xea\x38\x3e\x86\x3f\x52\ \x57\x46\x42\x34\xb3\x01\x55\x15\xe8\x86\x3b\x07\xda\xb6\xc0\x81\ \xde\x7a\xcc\x42\x55\xe3\x3b\x91\xd2\x07\x69\x5a\xc6\x05\x0c\x08\ \x57\x09\x1b\x2d\xc8\x5a\x65\xb9\xcd\x66\x5d\x49\x2e\x2b\xcd\x8a\ \x3a\xbb\xaf\x03\xee\x8c\xa0\xa9\x3e\xc7\x7a\x08\x81\x11\x13\x68\ \x9a\xc7\x71\x90\xba\x15\x03\x71\x31\x8b\xe6\x4a\xd5\x51\xca\xf6\ \x66\x6d\x43\x92\xb3\xb5\x23\x25\x21\x08\x88\x9a\x11\x7c\x6a\xe6\ \x3c\x88\x6d\x0b\x5c\x5c\x66\xaf\xe6\x71\x71\x06\x62\xb9\x41\x20\ \x16\xb9\x44\x47\xd6\xd9\xde\x5c\x4a\x87\x9b\x4d\x72\x4a\x6f\xfb\ \xfc\x71\x75\x73\xae\xfb\xbc\x8b\xca\xf2\x39\xd6\x13\x02\x62\x31\ \x49\x9e\xe6\x75\xce\x00\xc4\x82\x17\xd3\xfe\xd2\x0d\xd9\x97\xfe\ \x0c\x47\xb6\x77\x48\x81\x61\xee\x88\x92\x39\x43\xa8\x38\x98\xae\ \xfc\x02\x15\x45\x51\xe8\xea\x09\x52\x5d\x3e\xd5\x51\x65\x09\xe9\ \x10\xb4\x49\xe2\xa9\x91\x7c\x67\x1b\xd3\x1b\xed\x8e\xef\xd8\x12\ \x02\xb7\x89\x41\x25\x8b\x94\x9e\xcc\xf1\x14\xee\x90\x92\x8b\x39\ \x9d\x0f\x11\xd9\x39\x0c\xfe\xfc\xb8\xbb\xda\xda\xd9\x36\x88\x1d\ \xf1\x66\x1a\x6d\x23\xfe\x8e\xc2\xbc\x80\x0b\x41\x3a\x93\xe2\x53\ \x71\x45\x4a\x2b\xd7\x30\x6a\xb9\xac\x6c\xa0\x70\x5c\x9c\x20\xc7\ \x5b\x5b\x5c\xcb\x54\x17\xcf\xe2\x48\xc7\x47\x29\x29\xf8\x70\x28\ \x1e\x10\x56\x8f\x9f\xe2\x58\xa7\x2d\xd4\x92\x23\xe4\x31\xba\xb9\ \x2c\xb7\x55\x11\x97\x3d\x9a\x34\x9d\x9d\x0e\x25\xe5\x1a\x48\xc9\ \xfe\xa3\x07\x5c\x9b\x99\x51\x32\x9f\xa6\xf6\x0f\x52\x54\x4c\x7f\ \xc8\x02\x29\x19\x5f\x52\xea\x58\xe7\x6c\xdf\x09\xdb\x06\x38\x8e\ \x27\xcb\x4d\xa5\x72\x98\x56\x9d\x64\x6d\xd4\x73\x16\x8b\x08\x01\ \x8a\x62\x5f\x82\xf8\x2e\xdc\xf4\x4f\x69\xb9\x06\x8a\xc2\xa1\x13\ \xcd\xae\x1c\xf4\xb9\xaa\xe5\x58\xd2\x4c\xa9\x17\xec\x34\x40\x51\ \x58\x38\x6b\x81\xe3\x38\x4e\x06\x9b\xe2\x04\x54\x04\xc2\x61\xb5\ \x8b\xa6\xe6\xa1\xc8\xe4\x16\x9d\xfb\x37\x12\x69\x93\x41\x6d\x48\ \x32\x05\x47\x62\xa1\x9c\xd7\x27\x98\x32\xcd\xc7\xc1\xa3\xcd\x1c\ \x3d\xdb\x9c\xd1\x61\x29\x25\x13\x0a\xab\xa9\x2c\x9c\x9a\x82\xf0\ \xf3\xad\x31\x2c\xcb\xa2\xae\xf6\x73\x19\x03\x6e\x09\x1e\xe6\x7c\ \xe8\x54\xdc\xad\x56\x04\xb1\x68\x66\x02\x72\x42\x41\x15\xba\x15\ \x45\x37\x74\x4e\x9f\xee\xa3\x37\xe8\x9c\x13\x93\x96\xcc\xe9\x42\ \xb9\xac\x25\xc4\x2d\x1e\xb9\xa2\x55\x27\xe9\x04\x72\x98\x90\x33\ \x0d\x58\xb0\x28\x80\x47\xd5\xf8\xbb\xff\xf3\xb8\x2b\x47\xdd\x32\ \xf5\x2e\x4c\xcb\x44\x51\x05\xbd\x41\x83\xa3\xcd\xbd\x2c\xbd\x71\ \x11\xb5\xd3\x6b\x33\xea\xbc\xd6\xf8\x1b\x3c\x8a\x06\x12\xbc\x3e\ \x85\x48\x34\x13\xd9\xaa\xe2\xe1\x3f\xd7\x3d\xcb\xd4\xe8\xdd\xac\ \xb9\xfe\x67\xac\xff\xeb\x67\x1d\xfb\x37\x1c\xab\x4e\xb2\xb6\x21\ \x09\x24\xe6\x26\xdb\xeb\xb0\x3a\x5d\x38\xc7\x02\xf9\x85\x2a\x53\ \xa7\x17\xb0\x6d\xdf\x7b\x1c\x6d\x3d\x4a\xcd\xa4\x9a\x8c\x72\x77\ \xd4\xac\xa4\xab\xff\x2c\xbf\xdd\xf9\x02\x3b\xdf\xe8\xe3\xcb\x75\ \xb7\xf3\xcc\x7f\xf8\x5f\x19\xe5\x4e\x74\x1f\xa2\xa9\x73\x9f\xbd\ \xce\xb7\xb8\xd4\x43\x4f\xb7\x41\xd3\xe9\x26\x66\x4d\x99\x95\x32\ \xce\x69\xa5\xb3\x59\xf7\xb5\xd9\x00\x9c\xea\x69\x1a\x24\xa0\x1f\ \xfe\x94\x92\x32\x98\x77\x95\x2b\x09\x89\x13\x45\x5c\xdc\x56\xe0\ \x70\xd9\x8b\x12\x6e\x28\x04\x09\x3f\xfb\xed\x53\xae\xb6\xe4\xfe\ \xf9\xff\x89\x8d\x5f\x7b\x9d\xc3\xcf\xed\x64\xf3\x0f\x7f\x8d\x4f\ \xf3\x65\x38\x0c\x6f\x1c\x7d\x21\xe5\x7d\x53\x6b\xf2\x40\xc2\x3f\ \xed\x7c\x6d\x50\x5b\x29\x50\x1c\xfb\x97\x58\x75\x32\xe2\xeb\xb2\ \x46\xc3\xe5\x4d\x86\xf2\x4a\x8d\x1b\x6e\x19\xc7\x2b\xdb\xff\xcc\ \xaf\xfe\xb4\x29\x13\x61\x17\xbe\x57\x8f\xaf\x62\x52\x49\x55\xc6\ \x80\x04\x82\x57\x0e\xfd\x82\x03\x6d\xef\xa6\xdc\x9f\x54\xed\xe3\ \xc6\xc5\xe3\x78\xea\xa5\x67\xf8\xf5\x96\xe7\x1c\x6d\xd4\xbb\x2d\ \x7f\xe0\xf9\x0f\x1f\xcd\xc6\x51\xcc\x99\xdb\x9b\x55\xfa\x3d\x97\ \xfb\x43\x86\xec\x0e\x9a\x92\x9a\xb9\x7e\x06\x06\x8a\xf9\x2f\x9b\ \xfe\x3b\x05\xbe\x00\xff\xee\xb6\xfb\x5d\x83\xba\x64\xc4\x1a\x96\ \xce\x96\xe6\x7f\x60\xdb\xf1\xdf\xc5\x6d\x47\xca\x98\x24\x33\x66\ \xfb\x99\x3e\xd3\xcf\x96\x8f\x7f\xc1\x9f\x36\x6e\xe4\xf3\x73\x6f\ \xa4\xbc\xa8\x9c\x96\xee\xc3\x9c\xed\x6b\xc1\xa3\x78\xf0\x28\x5e\ \x67\xd5\x34\x4c\x33\x86\x23\x1e\x87\x88\xcb\xb0\x39\x52\xc2\xdc\ \xeb\xf3\x99\x5c\xed\xe3\xd1\x17\x1f\xe7\xb7\x6f\xfc\x0b\xcf\xae\ \x7b\x8a\x89\xa5\x93\x5c\xeb\xed\x6f\x7d\x9b\xd7\x9b\x9f\xe5\x6c\ \xa8\x25\x83\x18\xc9\xed\x0a\x05\xa6\x54\x15\x02\x92\x93\xe1\x83\ \x9c\x0c\x4b\x04\xf1\x39\xf7\xc1\x6c\x84\x35\x42\xab\x4e\x94\x6c\ \xf3\x2d\x23\xb9\x3f\x24\x81\xc0\xe2\x32\x0f\x7f\xfd\xb5\x32\x2a\ \xae\x3b\xc3\xc2\x87\x3f\xcf\xb2\x75\x77\xd3\xda\x75\xd6\xb1\xfc\ \xef\x0e\x3e\xc1\xb9\xf0\xc9\x21\xec\xa0\x12\x17\xd6\x61\xa9\x17\ \xed\xdb\x10\x82\xdb\x2b\xc5\x99\x5b\xc4\x7e\xc9\x19\x43\xd3\x34\ \x87\x1c\xfe\xa7\xa4\xbf\x0d\x23\x65\xbf\xbd\x69\x19\x08\x4b\xb8\ \xe7\x8b\x64\x6a\xe6\xc8\x30\xa1\xb0\x04\x66\xce\x2e\x66\xf7\x9e\ \x8f\x78\x63\xef\x36\xbe\x79\x47\xe6\x89\x77\x9f\xa9\x58\xc4\xfb\ \xa7\x5e\xbf\x44\xe6\x49\x66\x9d\xaa\x92\x69\x37\x23\xfd\x11\xfa\ \xfb\x8d\xdc\x79\x53\x8a\x92\xbd\xca\xb2\x2c\x0b\x5d\xd7\x09\x87\ \xc3\x57\x2c\xa6\x51\xdd\x40\x58\xa9\xf3\x13\xf2\x32\xdc\xc7\x92\ \xf1\x60\x18\x06\xef\x35\xec\xe5\x9b\x77\xac\x8c\xa7\xde\x93\x14\ \xe2\x8a\x4f\x7f\x93\xe6\x8e\x0f\xe8\x8b\x06\x31\xa4\x8e\x31\xc8\ \x2a\x95\x6c\x74\x6b\xfa\x84\x56\xb4\xdf\xc0\x30\x72\x47\x10\xc3\ \x30\x18\x18\x18\xc8\x38\xb5\xcf\x51\xbe\x63\xb1\x18\xb1\x58\x2c\ \x67\x36\x24\xd9\xed\x4d\xec\xeb\x1b\xea\x35\xb1\xca\x87\xd7\xab\ \xf0\xcf\x17\xdc\xd6\x74\x8e\x1e\x5f\x30\x85\xbf\xbb\xf5\xb7\xfc\ \xd7\x25\xbf\xe3\xce\x4f\xaf\xc6\xb0\x62\x43\x7b\x47\xc6\x2a\x7d\ \x71\x31\x1e\x53\xa0\xaf\x2d\x77\xc4\x18\x72\x1c\x62\x9a\x66\x4e\ \xf7\x87\xe4\x2a\x3f\x79\xcb\xed\xc5\xb4\x77\xf5\xf1\xf7\x2f\x6c\ \x70\xd4\xf9\x5e\x4f\x1e\x25\xf9\x15\x14\xfa\x8a\x73\xb6\x8d\x59\ \x51\x05\x67\x0f\x45\x31\x42\x66\x4e\xe3\x10\xb7\x88\x5d\x19\x2e\ \x63\x6e\x1b\xaf\x1c\x05\xb7\x96\x25\x99\x54\xed\xa3\xf6\xb3\x25\ \xfc\x8f\xcd\x9b\x78\x6b\xff\xf6\xac\xed\xd8\x15\x31\x82\x80\xc3\ \x2f\xf6\xa2\x78\x73\x8b\x97\xcb\xf2\xb2\xae\x26\x48\x48\xc4\xe7\ \x97\x14\x31\x77\x41\x80\x6f\x3c\xb6\x9a\x97\x77\xbd\x44\x7b\xef\ \x79\x42\x03\xbd\xe8\x66\x94\xa8\x11\x21\xa2\x87\xe9\x8f\xf5\x72\ \xa5\x9c\x90\x60\xa6\x13\x6f\xf7\x13\x0b\x9a\x23\x36\x4e\x8f\x7b\ \xfe\x49\xe4\x26\x77\x93\x63\x0e\xb6\x2c\x58\x78\x4b\x80\x79\x0b\ \x0b\xf8\x7d\xf3\x63\xfc\xf9\xf4\x46\x4a\x03\x25\xf8\x7d\x7e\x4c\ \xcb\x24\x66\x46\x08\xc7\x7a\xd1\x14\xef\x15\xbd\x47\xf3\x2b\x9c\ \xd8\xd5\xcf\x91\x7f\x09\x0d\x4b\x0e\xcb\x0d\xbf\x1e\xae\x41\x90\ \x16\x68\x5e\x85\x12\x6f\x1e\x10\x25\x18\x6b\x23\x18\xbb\xcc\x44\ \xe0\x85\x55\x49\x52\x82\x11\x95\x98\x31\x0b\x23\x22\x39\xb6\xbd\ \x9f\x33\x3b\x22\xa8\x9a\x18\x56\x89\x77\x3a\xb7\x77\x78\x25\xe4\ \x6a\x52\x7b\x0a\x08\x35\x6e\xa8\x0d\x43\xd2\x73\x46\xa7\xb7\xc5\ \xa0\xe7\xb4\x4e\xff\x19\x13\xbd\x5f\xa2\xf7\x5b\xc4\xfa\x2c\xa4\ \x89\x4d\x8c\xe1\xc2\x43\x62\x0d\xf5\x35\x2f\x21\xd9\xc6\x13\x66\ \x4c\xda\x57\x34\x64\x11\x3c\x65\xd0\x73\x4c\xa7\xfb\x63\x9d\xc8\ \x19\x23\xce\x74\x4a\x9c\x50\xe9\xd6\x54\x0c\xb3\x75\x1d\x35\x09\ \x91\x62\xf8\xce\x98\xb4\x39\x5e\x11\x98\x52\xd2\x7b\xd6\xa0\xaf\ \xc5\xa0\xe7\x8c\x41\xf8\xb4\x41\x2c\x2c\x31\xc2\x16\xb1\x7e\x89\ \x19\x89\xaf\xe1\x4a\xa8\x28\x4f\xde\xe8\xfb\x33\x59\xdb\x90\x5c\ \x8a\x68\x7e\x97\x42\xa4\xd8\xe2\xb2\xd7\x9e\x27\x73\xbc\x2e\xb1\ \x62\x12\x53\x97\xc4\xfa\x25\xc1\xd3\x3a\xbd\xc7\x0c\xba\x3e\xd6\ \xe9\x3f\x69\xc6\xc3\x39\x9b\xe3\x45\x4a\xf4\xa8\x5c\x65\xba\xc0\ \x8d\xe9\x3d\x43\xa5\xe0\x50\x61\xdc\x79\x15\x8f\x2e\xe8\xad\x30\ \x11\x52\x64\xc5\xf1\x42\x11\x48\x24\xbd\xe7\x4d\x42\x1f\x27\x38\ \xde\x24\xd6\x67\xd9\x1c\x6f\xf4\x4b\x7b\xa9\x95\x10\xe0\xf1\x89\ \x1c\xe4\x9a\x47\x1f\x5c\x93\x8b\xb9\x5b\x75\x02\x05\xdd\xf1\xb3\ \xdc\x43\x65\x16\xc9\x7b\x2a\x2d\x23\xae\xdf\x2d\x5d\xa2\x0f\x48\ \x7a\x5a\x8d\x38\xc7\x9f\xd4\x09\xb7\x98\x60\xe2\xaa\xe3\x15\x95\ \x6b\x1e\xb2\x5e\x28\xe7\x66\x70\xae\x84\x28\x85\xdd\x2a\xaa\x2e\ \x68\xff\x4b\x8c\x70\x9b\x49\xf8\x94\x49\xb4\xcf\x42\x0f\x49\xf4\ \xb0\x85\x1e\x96\x71\x5b\xa3\xc4\x39\x5e\xf5\x88\x4f\xa2\xcb\x91\ \xa1\xb2\xb2\xf6\xb2\x72\xed\xea\x49\x01\xfe\x90\xca\xa1\x5f\x87\ \x3e\xb1\x1c\x9f\x0b\xc3\x3e\xb2\x71\x88\x00\x45\x13\x8c\x81\x7b\ \xa4\xae\x8c\xa1\xe6\x1a\x30\xea\x39\xb7\x21\x63\x70\x65\x6e\xaf\ \xc8\x72\x8b\x17\x80\xaa\xaa\x68\x9a\x86\x65\x59\xf6\x74\x6f\x2e\ \x37\x5a\x5e\x6d\x5e\x50\x2e\xeb\x0d\x29\xb9\xe8\xa6\xe3\x2c\xcb\ \x62\x60\x60\x80\x3b\xef\xbc\x93\x3b\xef\xbc\x93\xf1\xe3\xc7\x13\ \x08\x04\x88\xc5\x62\x04\x83\x41\x76\xef\xde\xcd\xee\xdd\xbb\xd1\ \x34\x2d\xc5\x8b\x70\xfa\x9b\xed\xb3\xa1\x96\x4b\xf4\x33\x19\x41\ \x6e\xe5\xae\xf4\x5d\x4e\x7f\x13\x53\xe0\xb1\x58\xcc\x95\x39\xdd\ \xee\x7b\xb2\x49\x78\x25\xc3\x67\x3f\xfb\x59\x7e\xf9\xcb\x5f\x52\ \x96\x76\x26\x49\x22\x76\xb9\xf5\xd6\x5b\xe9\xed\xed\xe5\xe9\xa7\ \x9f\xe6\xe8\xd1\xa3\x19\x03\x4f\xb4\x9d\x3e\x5b\x96\x3e\xd8\xc1\ \xbe\x67\x5b\x6e\xb0\xff\xdd\xbe\x5b\x96\x95\x72\x88\xdb\x60\xfd\ \x75\xeb\x97\xc7\xe3\xc1\xeb\xf5\xe2\xf7\xfb\xe9\xef\xef\xb7\x67\ \x60\xb3\x91\x24\xe5\x52\xfa\x2d\x71\x19\x86\xc1\x8f\x7e\xf4\x23\ \x5e\x7a\xe9\x25\x9b\x18\xe9\xcb\x45\x13\x10\x08\x04\x58\xb7\x6e\ \x1d\x5f\xff\xfa\xd7\x5d\x17\x06\xe4\xe7\xe7\x53\x57\x57\x47\xe2\ \x07\x2d\xaf\xc6\x20\x2d\x5d\x33\xdc\x7a\xeb\xad\x8c\x1f\x3f\x3e\ \x2b\x35\x24\xa5\x44\x51\x14\x0a\x0a\x0a\xc8\xcb\xcb\x73\x9d\xcb\ \x1f\xb2\x97\x95\xa8\xf4\xfd\xef\x7f\x9f\x55\xab\x56\xd9\x1d\xaf\ \xaf\xaf\x67\xf5\xea\xd5\x6c\xdd\xba\xd5\x2e\x6b\x18\x06\x3f\xff\ \xf9\xcf\x59\xb3\x66\x0d\x07\x0e\x1c\xe0\x8e\x3b\xee\xe0\x9e\x7b\ \xee\x71\x1c\xec\x8a\x15\x2b\xf8\xce\x77\xbe\xc3\x4d\x37\xdd\x34\ \xea\x84\x50\x14\x85\x69\xd3\xa6\x0d\x5a\x6e\xee\xdc\xb9\x6c\xd8\ \xb0\x81\x87\x1e\x7a\x68\xc8\xf6\xc1\xe7\xf3\xe1\xf3\xf9\x2e\xcf\ \xcb\xba\x78\x02\xb4\xb0\x7f\x20\x6c\xce\x9c\x39\x7c\xef\x7b\xdf\ \x4b\x79\xd1\xb9\x73\xe7\xf0\xf9\x7c\x4c\x99\x32\xc5\xae\xf7\xf4\ \xd3\x4f\xd3\xd8\xd8\xc8\xda\xb5\x6b\x99\x37\x2f\x7e\x32\xdc\x3d\ \xf7\xdc\xc3\xfe\xfd\xfb\x69\x69\x69\x49\xe9\xe4\xce\x9d\x3b\x89\ \x46\xa3\x1c\x3c\x78\x70\x54\x09\x12\x8d\x46\x79\xe8\xa1\x87\xb8\ \xf9\xe6\x9b\x79\xe0\x81\x07\x5c\xcb\x1d\x3f\x7e\x9c\x27\x9f\x7c\ \x92\x03\x07\x0e\x5c\x56\xe0\xe7\xf3\xf9\x30\x0c\xc3\x79\x01\xfa\ \x50\x24\xc4\x30\x0c\x36\x6d\xda\x94\x71\xff\xdc\xb9\x73\x48\x29\ \xa9\xac\xac\x44\x4a\xc9\x0b\x2f\xbc\x40\x53\x53\x13\xab\x57\xaf\ \x66\xde\xbc\x79\x29\x52\xb1\x76\xed\xda\x94\x05\x77\x7e\xbf\x9f\ \x50\x28\xc4\x5b\x6f\xbd\x45\x38\x1c\x76\x7c\xaf\xa6\x69\x68\x9a\ \x86\x94\x92\xbc\xbc\x3c\x02\x81\x00\xf9\xf9\xf9\x59\x9e\xb1\x1b\ \x7f\x47\x20\x10\xa0\xa0\xa0\xc0\x9d\x1b\x3d\x1e\xaa\xab\xab\x59\ \xb9\x72\x25\xcd\xcd\xcd\xe4\xe7\xe7\xe3\xf7\x67\xee\x91\xf7\xf9\ \x7c\x78\xbd\x5e\xb6\x6c\xd9\xc2\xf1\xe3\xc7\x07\x95\x36\x55\x55\ \x29\x2c\x2c\x64\xdc\xb8\x71\x14\x16\x16\xda\x2a\x59\x08\xe1\xd8\ \x76\x56\x46\x3d\xf9\x5a\xb4\x68\x11\x13\x26\x4c\xc8\x48\x38\xb6\ \xb5\xb5\x21\x84\xa0\xa2\xa2\x82\x17\x5f\x7c\x91\x37\xdf\x7c\x93\ \x07\x1e\x78\x80\xba\xba\xba\x0c\x5d\x5a\x52\x52\xc2\xdc\xb9\x73\ \x69\x6e\x6e\xa6\xa4\xa4\x84\xa7\x9e\x7a\xca\x26\xc4\xb7\xbf\xfd\ \x6d\x47\x3b\x72\xef\xbd\xf7\xe2\xf1\x78\xe8\xea\xea\xe2\xab\x5f\ \xfd\x2a\x7e\xbf\x9f\x48\x24\xc2\x9b\x6f\xbe\xc9\xb3\xcf\x3e\x3b\ \x28\x92\x1f\x7e\xf8\x61\x6e\xb9\xe5\x16\x2c\xcb\xc2\xe3\xf1\xb0\ \x67\xcf\x1e\x1e\x7d\x34\x75\x55\x7b\x2c\x16\xe3\xc1\x07\x1f\xe4\ \xde\x7b\xef\xb5\x55\xe8\xb2\x65\xcb\xa8\xaf\xaf\xe7\x87\x3f\xfc\ \xa1\x5d\x2e\x12\x89\xb0\x71\xe3\x46\x6a\x6a\x6a\x88\x46\xa3\xfc\ \xf8\xc7\x3f\x66\xff\xfe\xfd\x19\xef\xd5\x75\x9d\xeb\xae\xbb\x8e\ \x47\x1e\x79\x84\xda\xda\x5a\x2c\xcb\x42\x55\x55\x36\x6c\xd8\xc0\ \x1f\xff\xf8\x47\x9b\x58\xaa\xaa\xda\x8e\xc3\x65\x49\x48\x42\xc7\ \x27\x57\x94\x52\xd2\xda\xda\x4a\x75\x75\x35\x3b\x76\xec\x60\xfb\ \xf6\xed\xdc\x77\xdf\x7d\x2c\x5e\xbc\x38\x73\x7b\xc0\x85\x7a\xb3\ \x67\xc7\x37\xc4\x74\x77\x77\xb3\x6a\xd5\x2a\xf2\xf3\xf3\xe9\xec\ \xec\x74\xfd\xbd\xdd\xea\xea\x6a\x96\x2c\x59\xc2\xf2\xe5\xcb\x79\ \xf0\xc1\x07\x59\xbe\x7c\x39\x67\xce\x9c\xe1\xae\xbb\xee\xc2\xe3\ \xf1\xb8\x7a\x2d\x6b\xd7\xae\xe5\xb6\xdb\x6e\x63\xe3\xc6\x8d\x7c\ \xe5\x2b\x5f\x61\xf3\xe6\xcd\xd4\xd5\xd5\xb1\x64\x49\xea\xd1\xb3\ \x5e\xaf\x97\x4d\x9b\x36\xb1\x79\xf3\x66\x00\xd6\xad\x5b\xc7\xd2\ \xa5\x4b\x59\xb7\x6e\x5d\x86\xa4\x3d\xfc\xf0\xc3\xd4\xd7\xd7\x53\ \x5c\x5c\xcc\xd9\xb3\xce\x6b\x8b\x67\xcf\x9e\xcd\xf3\xcf\x3f\x4f\ \x51\x51\x11\x2b\x56\xac\xa0\xb6\xb6\x96\x65\xcb\x96\xd9\x2a\x2e\ \x81\x87\x4b\x39\x31\x97\xf4\xb2\x26\x4c\x98\x90\xf1\x3c\x18\x0c\ \xd2\xd7\xd7\xc7\xc0\xc0\x00\x9b\x37\x6f\x66\xd9\xb2\x65\xdc\x75\ \xd7\x5d\x83\xfa\xd7\x25\x25\x25\x36\xd2\x4a\x4b\x4b\x51\x55\x95\ \x8f\x3e\xfa\xc8\xb5\x83\x93\x26\x4d\xa2\xa0\xa0\x80\xf5\xeb\xd7\ \x13\x0e\x87\xf1\x7a\xbd\xec\xde\xbd\x1b\x80\xb2\xb2\xb2\x0c\x82\ \x18\x86\xc1\x82\x05\x0b\x58\xbc\x78\x31\x7f\xf8\xc3\x1f\xd8\xb2\ \x65\x0b\x3e\x9f\xcf\x56\x31\x45\x45\x45\x8e\x04\xac\xae\xae\x06\ \xe0\xe4\xc9\x93\x83\xaa\xa2\xa9\x53\xa7\x62\x9a\xa6\x63\x39\x29\ \x25\x3f\xf8\xc1\x0f\x6c\xf5\xdc\xd9\xd9\x49\x61\x61\x21\x5d\x5d\ \x5d\x9c\x38\x71\x22\x15\xe1\x8a\x32\x74\x2f\x2b\xb9\xe0\xb8\x71\ \xe3\x32\x9e\x1f\x3a\x74\x28\xbe\xd1\xb2\xae\x8e\x68\x34\x3a\xe8\ \x82\xec\x04\x24\x74\xb9\x69\x9a\xd4\xd6\xc6\xf7\x03\x1e\x3c\x78\ \x30\x83\x20\x09\x44\x4f\x9c\x38\x91\x96\x96\x16\x4e\x9c\x38\x61\ \x3b\x17\x55\x55\x55\x00\xb4\xb7\xb7\x67\x1e\x32\xa3\xeb\xb6\xe3\ \xf1\xcc\x33\xcf\x50\x58\x58\x48\x5e\x5e\x1e\xb7\xdf\x7e\x3b\x96\ \x65\xd1\xd8\xd8\xe8\x38\xce\xaa\xaa\x2a\x2c\xcb\xe2\xd4\xa9\x53\ \x83\x06\x71\xd3\xa6\x4d\xe3\xd0\xa1\x43\x19\x63\x95\x52\x52\x54\ \x54\xc4\x8d\x37\xde\xc8\x87\x1f\x7e\x48\x73\x73\xb3\x6d\xe7\x14\ \x45\xc9\xb0\x79\xc9\xef\xb8\xac\x19\xc3\x60\x30\x98\x71\xbf\xb1\ \xb1\x11\x55\x55\x59\xba\x74\x29\x07\x0e\x1c\x60\xdb\xb6\x6d\x2c\ \x5d\xba\x94\xf2\xf2\x72\xd7\xb6\x42\xa1\x90\x4d\x90\x84\x07\x96\ \xdc\xf9\x74\x6e\x04\xd8\xb1\x63\x07\x9a\xa6\xd9\xf5\xae\xbf\xfe\ \x7a\x82\xc1\x60\x4a\xf0\x96\x80\xc9\x93\x27\x53\x51\x51\x41\x24\ \x12\xe1\x27\x3f\xf9\x09\x81\x40\x80\xea\xea\x6a\xda\xda\xda\xd8\ \xb0\x61\x03\x0d\x0d\x0d\x78\x3c\x9e\x8c\xd8\x62\xfa\xf4\xe9\x34\ \x36\x36\xa2\xeb\xba\xfd\xae\xf4\x32\x09\x29\xaa\xaf\xaf\xcf\x60\ \x20\xc3\x30\x58\xbe\x7c\x39\x00\x2f\xbd\xf4\x12\x89\xdf\xa5\x1f\ \x4c\xda\x06\x4b\x2d\x79\x2e\x15\x24\x39\xe9\xcc\xc3\x87\x0f\x53\ \x59\x59\x89\xaa\xaa\x2c\x5e\xbc\x98\xe6\xe6\x66\xde\x7e\xfb\x6d\ \xee\xbb\xef\x3e\xd7\x17\x76\x74\x74\xd8\x03\xbc\xee\xba\xeb\xe8\ \xea\xea\xc2\x34\xcd\x0c\xc4\x26\x10\x0f\xa4\xa8\xb4\xd2\xd2\x52\ \xc6\x8d\x1b\x47\x43\x43\x83\x63\x36\x21\xc1\x0c\x67\xce\x9c\x61\ \xd7\xae\x5d\x74\x74\x74\xd0\xd0\xd0\x40\x30\x18\xc4\xe3\xf1\x64\ \x10\x43\x4a\xc9\xc4\x89\xf1\x33\x82\xf7\xec\xd9\x93\xf1\x3c\xb9\ \x3f\x8b\x16\x2d\x02\x60\xf7\xee\xdd\x19\x04\x31\x4d\x93\x19\x33\ \x66\x00\x70\xe2\xc4\x89\x4b\x7a\x81\xc9\x7b\x1b\x2f\x2b\x52\xaf\ \xaf\xaf\x4f\x69\x28\x12\x89\x10\x0e\x87\xed\xc1\xdc\x74\xd3\x4d\ \x04\x02\x01\xde\x79\xe7\x1d\x0c\xc3\x70\xdc\xbb\x97\x20\x62\x42\ \xff\xe7\xe7\xe7\xd3\xda\xda\xea\x8a\x80\xf9\xf3\xe7\x03\xa4\xa8\ \x91\xc9\x93\x27\xdb\x08\x1f\x6c\xa0\x47\x8e\x1c\xe1\xb5\xd7\x5e\ \xe3\xbd\xf7\xde\x23\x1c\x0e\x3b\x72\x7d\xfa\x7b\xf6\xec\xd9\xe3\ \x6a\xcb\x0c\xc3\xb0\x1d\x9b\xa6\xa6\xa6\x8c\x72\x42\x08\xa2\xd1\ \xa8\xad\x36\x5d\x4f\xbe\x4b\x4b\xcd\xb8\xd9\x5b\xe5\x52\xe9\xf7\ \x7d\xfb\xf6\x71\xe4\xc8\x11\xfb\x5e\xc2\xdd\x4d\x36\xf6\xab\x56\ \xad\x22\x18\x0c\xf2\xfb\xdf\xff\xde\xb1\xad\xd3\xa7\x4f\xd3\xd4\ \xd4\x64\x1b\x6b\x37\xc9\x4b\xc0\x9c\x39\x73\x6c\x82\x25\xde\x9b\ \x08\x40\xdd\x08\x72\xfe\xfc\x79\x5b\x05\x79\xbd\x5e\x54\x35\x7e\ \xba\x50\x79\x79\x39\x85\x85\x85\x99\x87\xd6\x98\x26\x73\xe7\xce\ \x4d\x41\xb4\xdb\x8f\x34\x2f\x58\xb0\x80\xd6\xd6\x56\xc7\xd5\xfc\ \xaa\xaa\xda\xc1\xed\x97\xbe\xf4\x25\x3b\x6f\xa5\x69\x1a\xaa\xaa\ \xa6\x48\x44\xe2\xd9\x60\x46\xfd\x92\x33\x86\x7e\xbf\x9f\xef\x7e\ \xf7\xbb\x6c\xdd\xba\x15\x55\x55\x39\x75\xea\x14\x91\x48\x84\x8a\ \x8a\x0a\xbb\xc3\xb5\xb5\xb5\x4c\x9f\x3e\x9d\xad\x5b\xb7\xb2\x64\ \xc9\x12\x2a\x2b\x2b\x53\x74\xf0\x13\x4f\x3c\x61\xeb\xd6\x04\x62\ \xdd\x08\x32\x69\xd2\x24\x54\x55\xa5\xad\x2d\xf5\x54\xa0\x84\x41\ \x77\x23\x48\x7b\x7b\x3b\xcf\x3d\xf7\x1c\xdf\xfa\xd6\xb7\x78\xfc\ \xf1\xc7\x39\x73\xe6\x0c\xe5\xe5\xe5\xcc\x9e\x3d\x9b\x35\x6b\xd6\ \x64\x72\xa2\xa2\xd8\x1e\xd8\x4f\x7f\xfa\x53\x0c\xc3\xe0\xf5\xd7\ \x5f\x67\xe7\xce\x9d\x29\xea\x6b\xca\x94\x29\xf8\x7c\x3e\x4e\x9f\ \x3e\xed\x1a\xf7\xbc\xf1\xc6\x1b\x7c\xe3\x1b\xdf\x60\xcd\x9a\x35\ \xcc\x98\x31\x83\x48\x24\xc2\xc2\x85\x0b\x59\xbf\x7e\x3d\xbb\x76\ \xed\xb2\xdd\x74\x5d\xd7\x6d\x95\xe6\x46\x10\x15\xb8\x41\xd3\xb4\ \xea\xbc\xbc\xbc\xda\x44\x47\xa7\x4d\x9b\xc6\xc0\xc0\x00\x3d\x3d\ \xf1\xdf\xb1\x0d\x87\xc3\x74\x76\x76\x52\x57\x57\x47\x69\x69\x29\ \x5f\xf8\xc2\x17\x98\x35\x6b\x96\x9d\x62\x07\x58\xb8\x70\x21\x75\ \x75\x75\x04\x02\x01\x3b\x6f\x23\xa5\xe4\xf9\xe7\x9f\xa7\xb1\xb1\ \xd1\x2e\x57\x54\x54\x44\x5f\x5f\x1f\xf5\xf5\xf5\xf4\xf6\xf6\x66\ \x74\x28\x10\x08\x20\xa5\xa4\xbe\xbe\x3e\x05\xf9\xa5\xa5\xa5\x74\ \x74\x74\xf0\xee\xbb\xef\xda\x2a\x22\x9d\x53\x0f\x1d\x3a\xc4\xbe\ \x7d\xfb\x28\x2b\x2b\x23\x10\x08\xd0\xd0\xd0\xc0\x63\x8f\x3d\x46\ \x5f\x5f\x5f\x66\x00\xa6\x28\x34\x36\x36\xd2\xd7\xd7\x47\x55\x55\ \x15\x67\xcf\x9e\x65\xfb\xf6\xed\x0c\x0c\x0c\xa4\x94\x4d\xb8\xcb\ \x3b\x76\xec\xa0\xa5\xa5\xc5\xd5\xf9\x79\xe5\x95\x57\x08\x87\xc3\ \x4c\x98\x30\x81\x68\x34\xca\xaf\x7e\xf5\x2b\xf6\xee\xdd\x6b\x4b\ \x89\xae\xeb\x29\x52\xaa\x69\x1a\xa5\xa5\xa5\x04\x83\x41\xba\xbb\ \xbb\x2f\xb6\x05\x3c\xe8\xf7\xfb\xbf\x50\x5c\x5c\xbc\x32\x41\xf1\ \x2f\x7e\xf1\x8b\x04\x83\xc1\x14\x9f\xdb\x30\x0c\xee\xbe\xfb\x6e\ \xd6\xaf\x5f\x9f\x75\xd2\xee\x37\xbf\xf9\x0d\x3b\x76\xec\xb0\x3b\ \x25\xa5\xc4\x30\x0c\x4c\xd3\x4c\x51\x11\xc9\x69\x6c\xd3\x34\x6d\ \x4e\x4a\xae\xa7\xeb\xba\x1d\x79\x3b\xa5\xc7\x93\xf7\x44\x26\x72\ \x46\x42\x08\x9b\xdb\xdd\xd2\xed\xb1\x58\xcc\xb6\x7d\x89\x54\x4d\ \x72\xfb\x96\x65\x11\x8b\xc5\x52\xfa\xe3\x96\x7e\x8f\xc5\x62\x29\ \xef\x4d\xd8\x1b\x5d\xd7\x6d\x07\x26\x39\xdb\x5d\x53\x53\xc3\xf1\ \xe3\xc7\x53\xd2\x31\x9e\x6c\x53\xd2\x1e\x8f\x87\x57\x5f\x7d\x95\ \xfa\xfa\x7a\x36\x6e\xdc\xc8\xf4\xe9\xd3\x1d\x0d\xa1\x65\x59\xb4\ \xb6\xb6\xf2\xe4\x93\x4f\xd2\xd9\xd9\x99\x51\x26\x91\x3e\x70\xdd\ \xb0\xa2\x28\x78\xbd\x99\x07\x95\xa5\x23\xd6\x35\xd2\x4d\xaa\x9f\ \xcd\xc9\x78\x9a\xa6\xa5\x44\xfe\x4e\x99\x06\x9f\xcf\x97\xd5\xae\ \xe2\x64\x97\x37\x79\xa2\x6a\x28\x27\xf4\x0d\x69\xc6\x50\x08\xc1\ \xd9\xb3\x67\xf9\xf2\x97\xbf\x4c\x6d\x6d\x2d\xb5\xb5\xb5\x4c\x9a\ \x34\x89\x8a\x8a\x0a\x42\xa1\x10\xed\xed\xed\x1c\x3b\x76\x8c\x63\ \xc7\x8e\x39\xba\x99\x83\xcd\xd4\x39\xfd\xbd\xd4\x0c\xa3\x5b\xbb\ \x43\xbd\x7f\xb9\xe5\x2e\x35\xbb\xe8\x34\x57\x74\xd9\x04\x71\x6b\ \x28\xc1\xe1\xcd\xcd\xcd\xb6\xe7\x94\xf3\x33\xb6\x3e\x01\x0b\x18\ \x2e\x85\x8f\x21\x4d\xe1\x66\xbb\x2e\x6b\x8c\x00\x57\x4e\xb8\x21\ \x67\x7b\xc7\x60\x78\xa5\x68\xc8\x71\xc8\x18\x8c\x2c\x51\xc6\x24\ \x64\x4c\x42\xc6\x60\x4c\x42\xae\x21\x4f\xcc\x55\x42\xc6\x8d\x1b\ \xc7\xac\x59\xb3\xc6\x30\x37\x4c\x90\x98\x39\x74\x54\x59\xe9\x01\ \x8f\x53\xae\x68\x0c\x72\x0b\x96\x65\x11\x8d\x46\x33\x16\x12\x7a\ \x00\x4b\x88\x8b\xfb\x64\x0d\xc3\x60\xdb\xb6\x6d\x63\x18\x1b\xa5\ \x58\xc4\x03\xe8\x40\x2c\x5d\x9c\xc6\x60\x94\x54\x19\x10\x16\x42\ \x0c\x8c\x79\x54\xa3\x0f\x52\xc6\x77\x16\x2f\x05\x26\x6a\x9a\x56\ \x21\xa5\xf4\x70\x2d\xee\x25\xbe\x76\xc0\x14\x42\xc4\x80\x5e\x45\ \x51\x3a\x54\x55\x3d\xa7\x69\x5a\x50\xd3\xb4\x88\xc7\xe3\x31\x00\ \xf9\xff\x01\xfa\x90\x4b\xa0\xc0\x4f\x7e\x35\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0b\ \x08\x52\xaa\xc7\ \x00\x66\ \x00\x69\x00\x67\x00\x75\x00\x72\x00\x65\x00\x38\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x14\ \x00\x22\x00\x47\ \x00\x54\ \x00\x69\x00\x6d\x00\x65\x00\x2d\x00\x46\x00\x6f\x00\x72\x00\x2d\x00\x4c\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x2d\x00\x32\x00\x2e\ \x00\x6a\x00\x70\x00\x67\ \x00\x0b\ \x07\x50\x31\x47\ \x00\x65\ \x00\x6c\x00\x6c\x00\x69\x00\x70\x00\x73\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x0b\x53\x47\xc7\ \x00\x72\ \x00\x61\x00\x6e\x00\x64\x00\x6f\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x05\x8f\xe2\xc7\ \x00\x63\ \x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x00\x28\x58\x27\ \x00\x74\ \x00\x69\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x0a\x12\x5e\xc7\ \x00\x6b\ \x00\x69\x00\x6e\x00\x65\x00\x74\x00\x69\x00\x63\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\ \x00\x00\x00\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x36\xe6\ \x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x01\x1d\xd1\ \x00\x00\x00\x92\x00\x00\x00\x00\x00\x01\x00\x01\x1a\x51\ \x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\xb5\xc1\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\xc6\x00\x00\x00\x00\x00\x01\x00\x01\x5d\xa6\ \x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\xdf\xd4\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/animatedtiles_rc3.py0000644000076500000240000141366212536324426026354 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:12:39 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x36\xe2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x1c\x24\x7c\x1a\xa6\xff\x00\x00\x20\x00\x49\x44\x41\x54\x78\ \xda\xed\x9d\x77\x98\x9d\x65\x9d\xf7\x3f\xf7\x53\x4e\x9f\x99\x33\ \x33\x99\x4c\x66\x12\x32\xa9\xa4\x03\x91\x90\x10\x6a\xe8\x48\xd9\ \x05\xa5\x88\xc8\xba\xeb\xcb\xb2\xae\x04\x51\x57\x5f\x57\x5d\x5d\ \x76\x5d\x45\x51\x56\x50\x71\x59\x75\xa5\x59\xc0\x12\x3a\x16\x88\ \x94\x00\x09\x29\xa4\x4d\xea\xb4\x4c\xa6\xcf\x9c\x39\xbd\x3d\xf5\ \x7e\xff\x38\xf3\x3c\x99\x41\x94\x34\x7d\xdf\xeb\xbd\xb8\xaf\x2b\ \x57\x32\xc9\xc9\x79\xca\xf7\xfe\xb5\xef\xaf\xdc\xf0\xee\x7a\x77\ \xbd\xbb\xde\x5d\xef\xae\x77\xd7\xbb\xeb\xdd\xf5\xee\x7a\x77\xfd\ \x7f\xbf\xc4\xb1\xfc\xe7\xba\xba\xba\xab\x0c\xc3\x08\x4e\x99\x32\ \xe5\x73\x2b\x57\xae\x3c\x51\x51\x14\xb6\x6d\xdb\x46\x6d\x6d\xed\ \xa1\x0b\xb8\x02\x09\x20\xe4\x1f\x5c\x4d\x55\xd5\x94\xa2\x28\xf9\ \x72\xb9\xac\xbf\xfa\xea\xab\xb3\xfe\x6f\xbf\x8c\xda\xda\xda\x9f\ \x5d\x77\xdd\x75\x57\x97\xcb\x65\x17\x40\x41\xe0\x48\x89\xf8\x23\ \x6f\xc9\x71\x1c\x02\x81\x00\xaf\xbf\xfe\xba\xb3\x60\xc1\x82\xc2\ \xc0\xc0\x40\x6c\xcb\x96\x2d\xd3\x2d\xcb\x4a\x1e\xed\x3d\x68\xc7\ \xf2\x00\x8b\x16\x2d\xfa\xe1\xcc\x99\x33\xeb\x37\x6f\xde\x4c\xa9\ \x54\xc2\xb6\x6d\xea\xeb\xeb\x69\x68\x68\x40\x08\x41\xbf\x95\x62\ \xda\x05\x45\xaa\xa2\x3a\x4e\x3a\x88\x93\xd1\x71\x73\x3a\x76\x4a\ \x43\x16\x35\x80\xb0\x94\xf2\x0f\xbe\x77\xda\xb4\x69\xa2\xb7\xb7\ \x57\xfe\x25\x40\xa8\xaa\xaa\xba\x60\xc5\x8a\x15\x6b\x74\x5d\x37\ \x1d\xc7\xa9\xe9\xef\xed\xd3\x6d\x0b\x84\x22\x31\x30\x09\xc5\x04\ \xb2\xa0\x4d\xd8\x4c\x42\x08\xf6\xee\xdd\xcb\xd2\xa5\x4b\xbd\x8d\ \x85\xa6\x69\xb1\x58\x2c\x86\xeb\xba\xa7\x85\x42\xa1\x6c\x6d\x6d\ \xed\xae\x81\x81\x81\xec\x9f\x1d\x90\x45\x8b\x16\xb1\x77\xef\xde\ \x90\xe3\x38\x28\x8a\xe2\x94\x4a\x25\x5c\xd7\xc5\x34\x4d\x6c\xdb\ \xc6\xb2\x2c\xca\xe5\x32\x42\x08\x8a\xdd\x09\xba\xba\xc3\x48\x69\ \x22\x30\x91\xaa\x8b\x40\x80\xa8\x3c\xf0\x38\x19\x95\x67\x9c\x71\ \x86\x04\xc8\x66\xb3\xb4\xb6\xb6\x8a\xbf\x94\x54\x94\xcb\xe5\xe6\ \xc9\x93\x27\x57\x9b\xa6\x89\x82\xe0\x60\xb8\x87\x85\x17\x2a\xd8\ \xc3\x41\xec\x44\x10\x67\x34\x88\x8c\x0a\xa4\xa9\x20\x2d\xa5\xf2\ \xd2\x34\x0d\x55\x55\x31\x4d\x13\x45\x51\x70\x5d\x17\xc3\x30\x30\ \x4d\x53\x5e\x75\xd5\x55\xbf\x11\x42\xf0\xda\x6b\xaf\x5d\x00\xfc\ \xfe\xcf\x0e\x48\x47\x47\xc7\x9c\xd3\x4e\x3b\xad\xad\xb6\xb6\x96\ \x42\xa1\x80\x69\x9a\x13\x00\xf1\x6e\x4e\x51\x14\xa6\x4c\x6d\x22\ \x1c\x0e\xa3\x08\x41\xab\x71\x80\xe5\x1f\x82\x40\x40\xc1\x1e\xd5\ \xb1\x7a\xa3\x98\x83\x01\x9c\xe1\x20\x42\xa9\x28\x05\x29\x25\xc1\ \x60\xf0\x2f\xab\xb3\x85\xf0\x37\x92\x86\x8a\x3b\x3f\x43\x20\x5e\ \x43\x20\x5e\x82\x13\x4b\x13\x3e\x3b\xf4\xe8\x24\xdc\xa2\x8a\xeb\ \xba\x48\x29\x31\x0c\x03\x21\x04\x52\x4a\x2c\xcb\xc2\x75\x5d\x61\ \x18\x06\x9a\xa6\x01\xb8\x7f\x11\x95\x55\x2e\x97\x1b\x1a\x1a\x1a\ \x08\x85\x42\xe4\xf3\x79\x0c\xc3\xf0\x6f\xce\x71\x1c\x1c\xc7\xf1\ \x6f\x34\x10\x08\x54\xc0\x11\x82\x5e\x7b\x84\xf3\x62\x4d\xb8\x46\ \x90\x25\x4b\x4e\x61\xe7\xe4\x57\x89\x08\x89\xa2\xe8\xa4\x5f\xae\ \xa2\xb0\x27\x8c\x94\x12\xd7\x75\xff\xec\x20\x44\xa3\xd1\xb3\xae\ \xb9\xe6\x9a\x75\xa5\x52\xa9\xf2\x42\x5d\x29\x43\xf5\x42\xb8\x29\ \x9d\x19\xbb\x4e\x61\x74\x97\xac\x48\xf0\x5b\xe4\xb4\x6d\xef\x2e\ \x66\xcc\x98\xe1\x03\x32\x5e\x42\xca\xe5\xb2\xbf\x31\xa5\x94\x94\ \xcb\xe5\x8f\x57\x55\x55\x5d\x57\x55\x55\xf5\x40\x7f\x7f\xff\xa6\ \x3f\xab\x0d\xb1\x6d\x1b\xc3\x30\x7c\x69\xf0\x6e\xc4\x71\x1c\x7f\ \xb7\x09\x21\x50\x55\x15\xcb\xb2\x90\xae\x4b\x7d\x3a\xc4\xc1\xa7\ \x15\x4e\x08\x2e\x26\x57\x3f\x05\x3b\x31\x17\xac\x30\x49\x3a\x29\ \x0c\x98\x38\x79\xc7\x07\xe4\xec\xb3\xcf\xfe\x1f\x29\x65\x20\x99\ \x4c\x86\x7b\x7b\x7b\xff\x36\x9b\xcd\xe6\x8f\x27\x20\x52\xca\xb0\ \xaa\xaa\x15\x89\x96\x92\x5d\x93\x77\x8a\xf3\xaf\xac\xc3\x95\x36\ \x76\x56\x43\x64\xc3\xd8\x59\x0d\x27\xab\x51\xde\x1f\x41\x3a\xc2\ \x97\xa6\x72\xb9\x8c\xa2\x54\x54\x97\x07\x88\x27\x21\x8e\xe3\x54\ \x9e\x57\x4a\xb9\x6a\xd5\xaa\xab\x9b\x9b\x9b\x79\xf0\xc1\x07\xd7\ \x03\x7f\x1e\x40\xa6\x4d\x9b\xb6\xb0\x54\x2a\xcd\xb7\x6d\x1b\x29\ \x25\x8e\xe3\x4c\x50\x59\x8e\xe3\x00\xf8\x2a\x4b\xd3\x34\xff\x33\ \x0b\x1b\x66\x13\x4d\x55\x91\x24\x41\x77\x7f\x37\xf1\xf7\x14\xd0\ \xcc\x00\xd1\x44\x9c\x48\xbd\x86\xac\x11\x48\x43\x01\x57\x80\xe0\ \x23\x00\xe1\x70\x98\xdd\xbb\x77\x7f\x14\x38\x26\x40\x9a\x9a\x9a\ \x18\x18\x18\x18\x0f\x88\x34\x4d\x13\xd3\x34\x31\x5d\x9b\x58\xb5\ \x0e\xb6\xc2\xf2\xc9\xef\xa7\xaa\x25\xc4\x4b\x9d\xbf\x62\xfa\xbc\ \x26\x86\x8c\x2e\xf2\x1d\x2a\x4e\xa9\x02\x80\xf7\x9c\xe3\xed\x86\ \xf7\x67\x4f\x32\xc6\xde\x87\xc8\x66\xb3\x44\xa3\x51\x14\x45\x91\ \x7f\x36\x95\x55\x5b\x5b\xbb\x66\xd9\xb2\x65\xf3\xd2\xe9\xb4\x6f\ \x2f\x1c\xa7\xb2\xb3\x3d\x2f\x2b\x18\x0c\x32\x66\xf0\x09\x06\x83\ \xb8\xae\x8b\x65\x59\xbe\xb1\x57\x51\xd8\x17\xee\xe0\xc2\x05\xd5\ \x40\xf1\x2d\x0a\x5d\x92\x5e\x57\x43\xb9\x2d\x02\x80\x65\x59\xc7\ \x45\x22\x06\x06\x06\x68\x6a\x6a\x9a\x04\x2c\x01\x1c\xc3\x30\x4e\ \x4e\x24\x12\x64\xb3\x59\x6c\x5c\xec\x11\x9b\x9d\xcf\x17\xb8\xf2\ \x7d\xf3\x79\xfa\xd5\x35\xcc\x6b\xbe\x82\xf7\xd4\xaf\xe4\xbf\xb6\ \x7f\x8a\x6c\x2a\x87\x2e\xc3\xbe\x9b\xeb\x01\x02\x50\x28\x14\x70\ \x1c\x07\xd7\x75\x29\x95\x4a\x9e\xed\xc0\xf3\x1c\x3d\x4d\xf1\x67\ \x03\x44\x4a\xa9\x14\x0a\x05\x1f\x08\xdb\xb6\xc9\xe5\x72\xd8\xb6\ \x4d\x3e\x9f\xf7\x75\x6b\xa9\x54\x42\x51\x14\xc2\xe1\x30\xb6\x6d\ \x63\xdb\xf6\xa1\x87\x91\x02\xc2\x15\xf1\xff\xc8\xc2\xbb\x91\x8a\ \x4b\xda\xed\x64\xe3\xd6\x2e\x92\x55\xeb\x18\x1d\xfb\x9c\xb7\x23\ \x8f\xd7\x2a\x95\x4a\x37\x9f\x7f\xfe\xf9\x77\xaa\xaa\x8a\x40\x90\ \x30\x33\x4c\x3f\xbd\x1a\x77\x38\x8c\x33\xda\x82\x48\xc3\x8f\xbe\ \xf3\x53\x14\x55\xf0\x1a\x5b\x78\x55\x6e\x26\xa0\xcd\x27\x9f\x6c\ \x27\x1a\x55\x91\x52\x7a\xb6\xc1\x07\xa4\x58\x2c\xfa\xef\x22\x9b\ \xcd\x12\x8b\xc5\x7c\x30\xc6\x49\x4b\x63\x2c\x16\x9b\x95\xcf\xe7\ \x3b\xff\x1c\x80\xf8\x2f\xd8\xb2\x2c\x6c\xdb\xf6\x5f\x9e\xa6\x69\ \x3e\x10\xaa\xaa\xfa\xde\x4b\xb1\x58\xf4\x8d\xbd\x27\x21\x58\x92\ \xd1\x5e\x83\xa9\xef\x99\xcb\x75\x3f\x5a\xca\xcf\x3e\xb2\x81\xa6\ \x93\xd2\xac\xed\xc9\xb2\x27\xfb\x2a\xf9\x9c\xe9\xab\x3e\xa0\xce\ \xbb\xfe\xf4\xe9\xd3\x93\x07\x0f\x1e\x74\x8f\xd2\x6e\x44\xbd\x0d\ \x53\x74\x4d\xb4\x73\xfa\xa9\x9d\x1f\xc1\x92\x83\x48\x1b\x44\x36\ \x86\x9d\x51\x71\x52\x3a\xf9\x2d\xd5\xa0\x48\x1c\x69\xfb\xb6\xc2\ \x93\x90\x54\x2a\x85\xaa\xaa\x38\x8e\xe3\xc5\x1f\x08\x21\xd0\x34\ \x0d\x45\x51\xc8\xe5\x72\x04\x83\x41\x22\x91\x08\xa6\x69\xca\x93\ \x4f\x3e\xf9\x9b\xaa\xaa\xde\xf1\xca\x2b\xaf\x54\xfd\x39\x00\x91\ \x1e\x10\xde\x4e\x51\x14\x05\xdb\xb6\x99\x34\x69\x12\x37\xdd\x74\ \x13\xdf\xf9\xce\x77\xa8\xad\xad\x65\xfa\xf4\xe9\x74\x75\x75\x91\ \xcd\x66\x7d\x63\xed\x38\x0e\x96\x10\xa8\xdb\x5c\x8a\xf9\xa9\xdc\ \xf4\xab\x0f\x50\x1b\x38\x95\x9b\xd6\xdd\x88\xae\xa9\xa8\x76\x08\ \x4d\x6b\x24\x5e\xe3\xc7\x28\xf2\xca\x2b\xaf\xdc\xe7\xfd\xff\xf5\ \xeb\xd7\xcf\x07\xf6\x1d\xad\x94\x78\x2a\xc4\x74\x4d\xe2\xe1\x00\ \x85\x8c\xcb\x4d\x27\xdf\x81\xab\x16\x59\xb3\xf7\x5e\x26\x37\x34\ \x32\x9c\xef\x65\xf4\xd5\x30\x4a\x40\x4e\x50\xc9\xde\x86\x54\x55\ \xd5\x07\x24\x16\x8b\x21\x84\xf0\x37\xa1\xa2\x28\xfe\x35\x02\x81\ \x00\x96\x65\x09\x21\x04\xe1\x70\xb8\x70\xb8\xf7\xa8\x1c\xce\x87\ \xa6\x4c\x99\x32\x69\xca\x94\x29\x2f\xb9\xae\x3b\xcd\xb3\x05\xd9\ \x6c\x25\x08\xbd\xea\xaa\xab\x68\x6c\x6c\xe4\x57\xbf\xfa\x15\xcd\ \xcd\xcd\x00\xac\x5d\xbb\x96\xdb\x6f\xbf\x9d\x50\x28\x84\xa6\x69\ \xbe\x71\x37\x0c\x83\x72\xa9\x84\xd0\x04\xa1\x58\x90\xda\xda\x5a\ \xba\xd5\x21\x16\x7c\xbc\xcc\xac\x8f\x16\x69\xb9\x75\x94\xc9\xd7\ \x24\x89\x9f\x6e\x10\x69\x16\x04\x83\x01\x11\x0c\x06\x09\x06\x83\ \xd4\xd7\xd7\xe3\x38\xce\x31\xe9\x30\xc3\x30\xbc\x00\x0e\x45\x28\ \x9c\x14\x7e\x3f\xa1\x6a\x9b\xe7\xdf\x78\x9d\x45\xda\xf5\xac\x3e\ \xe3\x6e\x6a\x42\xf5\x94\xcb\xe5\xca\xbd\x96\xcb\x98\xa6\x49\x36\ \x9b\xf5\x37\x56\x20\x10\xf0\xa5\xe1\xb2\xcb\x2e\x23\x12\x89\x50\ \x5f\x5f\xcf\xdc\xb9\x73\x7d\x60\x34\x4d\xf3\xb5\x87\xe7\x7d\x1d\ \x57\x40\x92\xc9\x64\xed\x05\x17\x5c\x70\x6e\x28\x14\x8a\x58\x96\ \xe5\x5f\xb8\x5c\x2e\xf3\xe1\x0f\x7f\x18\xc3\x30\xb8\xff\xfe\xfb\ \x59\xbe\x7c\xb9\xaf\x3b\xbd\x1b\x5f\xb0\x60\x01\xb7\xdd\x76\xdb\ \x04\xe3\xee\xc5\x2d\xa6\x61\xe2\x04\x4c\x34\x4d\x25\x9b\x74\xb8\ \x6a\xe1\xc7\xa8\x9b\x1a\x23\xb2\x38\x4b\xed\x15\xc3\xe8\x0b\x52\ \x18\xa5\x31\x6f\xc8\x34\x8f\xd8\x40\x36\x34\x34\x5c\x1e\x8d\x46\ \x6f\x8a\xc5\x62\x37\x4a\x29\x97\x0c\x0d\x0d\x31\x38\x38\x48\x62\ \x68\x84\x81\x37\xb3\xf4\xed\x18\xe0\xb9\x35\x6b\xd9\xf1\xfa\x0e\ \xf6\x6d\xda\xc3\xfd\x0f\x7c\x97\x9d\x2f\x76\x91\x2f\x64\x7d\xe0\ \x3c\x0f\xca\xf3\xa2\xce\x3e\xfb\x6c\xaa\xab\xab\x91\x52\x92\x48\ \x24\x7c\xa3\x9e\x48\x24\x18\x93\x06\x5f\x75\x65\xb3\x59\x5f\x5d\ \x1f\x57\xa3\xee\xf9\xdf\xde\xc5\x15\x45\xe1\xfc\xf3\xcf\xa7\xb5\ \xb5\x95\xc7\x1f\x7f\x9c\xba\xba\x3a\x9e\x7a\xea\x29\x9e\x79\xe6\ \x19\x42\xa1\x10\x57\x5d\x75\x15\xa7\x9f\x7e\x3a\xa9\x54\x8a\xfb\ \xef\xbf\x9f\xbe\xbe\x3e\x0c\xc3\x20\x99\x4c\xfa\xd1\xb8\x69\x9a\ \x20\x41\x6a\x92\x72\xc9\xe1\xae\xf7\x3e\xc5\xa3\xad\xdf\xe0\xa6\ \xf9\x5f\x65\xed\x8e\x17\x50\x1b\xfa\x78\xcd\xde\x56\xb1\x23\x4a\ \x65\x67\x1e\xe9\x9a\x3c\x79\xf2\xb7\x97\x2d\x5b\x36\xcb\xb2\x2c\ \x54\xa1\x50\xac\x4e\xcb\x58\xb5\x26\xdc\xac\x8e\x9d\xd4\xe9\xdb\ \x36\x0c\x02\xea\xb5\x69\x8c\xa6\x73\x24\x64\x96\xa6\xc0\x0a\xf6\ \x8f\xbe\x44\x53\xa0\xc9\x7f\x91\x9e\x4d\xb4\x2c\x8b\x48\x24\xe2\ \x7b\x91\x1b\x37\x6e\x24\x16\x8b\x91\x48\x24\xa8\xae\xae\x46\x08\ \xc1\xb4\x69\xd3\x18\x1e\x1e\x26\x9f\xcf\xfb\x31\xdb\x91\x48\xb6\ \x72\xb8\x80\x78\x60\x14\x8b\x45\xa6\x4d\x9b\xc6\xbf\xfc\xcb\xbf\ \xa0\x69\x1a\xcf\x3d\xf7\x1c\x7d\x7d\x7d\xc4\x62\x31\x82\xc1\xa0\ \xef\xee\x6e\xdb\xb6\x0d\x4d\xd3\x26\xf8\xff\x9e\xcd\x39\x24\x21\ \x95\x28\x3f\xa0\x46\x98\xd6\x38\x85\x84\xd8\x85\xb4\x42\x48\x09\ \x8e\xb4\x70\x1d\x07\xc3\x34\x7c\xd1\xb7\xde\xe2\x07\x37\x35\x35\ \xbd\xd3\x7d\x3b\xe5\x72\x99\x72\xb9\xcc\xee\x6c\x17\x91\x73\x07\ \x45\xe8\xac\x7e\x42\x97\x75\x50\xf5\xe1\x7d\xd4\x7c\xf0\x00\xa1\ \x73\xfb\x11\x33\x93\x95\xeb\x58\x26\x96\x7b\x28\x9e\xf0\x24\xbd\ \xbe\xbe\x1e\x4d\xd3\xd0\x75\x9d\x97\x5e\x7a\xc9\xb7\x29\xba\xae\ \xfb\x52\x14\x0e\x87\x31\x0c\xc3\x07\xcf\xb3\x35\x63\x80\x34\xad\ \x5c\xb9\x52\xd6\xd7\xd7\xcf\x3f\x6e\x46\xdd\x8b\x3b\x4c\xd3\xa4\ \x54\x2a\x31\x30\x30\x40\x24\x12\x61\x68\x68\x08\xc7\x71\xe8\xef\ \xef\xf7\xe9\xe8\xd1\xd1\xd1\x0a\x97\x35\x65\x0a\x9f\xfd\xec\x67\ \x71\x1c\x87\x60\x30\x88\xaa\x1e\x72\x1f\xbd\x77\xeb\xb4\x97\xd8\ \xf0\xef\x2a\xa7\xfe\xdb\xa9\x00\x3c\xcf\x87\xde\xf6\xfa\xd9\x6c\ \x96\xf9\xf3\xe7\x77\x79\xee\xf0\xd0\xd0\xd0\xbf\x0d\x0c\x0c\xdc\ \xf1\x4e\x5e\xa1\x07\xa6\x29\x2d\x14\x14\xc8\x4c\xe6\x8e\xcb\xbf\ \x47\x7b\x7a\x33\xdf\x7b\xf9\xdf\x58\xbc\x64\x0e\xdd\x75\x9d\x64\ \x77\x69\xbe\x34\x18\x86\x41\x2a\x95\xf2\x8d\xf3\xf5\xd7\x5f\xcf\ \x9a\x35\x6b\xc8\x64\x32\xd4\xd5\x55\x9c\xbe\xd1\xd1\x51\xff\x1a\ \xf5\xf5\xf5\x98\xa6\x49\x38\x1c\x66\x68\x68\x08\x55\x55\x89\xc7\ \xe3\xe8\xba\x4e\x2e\x97\x03\x60\xee\xdc\xb9\xec\xda\xb5\xcb\x39\ \x2e\x80\x58\x96\x55\xf0\x5e\xa0\xa2\x28\x14\x8b\x45\x3e\xf3\x99\ \xcf\x50\x5d\x5d\xed\xe7\x3e\xc6\x7b\x22\xde\x9f\x93\xc9\x24\x81\ \x40\xc0\x07\xe4\x87\x3f\xfc\x21\x86\x61\xf0\xf1\x8f\x7f\xdc\xe7\ \xbb\x54\x54\x96\x2c\x59\x52\x51\x89\xd2\x21\x39\xf7\x00\x73\x16\ \x46\x70\x72\x2a\xd6\x70\x08\x7b\x28\x88\x35\x18\x44\x48\x05\xa1\ \xbb\xfe\x35\x86\x86\x86\x0e\xdb\x90\xdb\x96\x8d\xab\x3a\x08\x45\ \x70\xdd\x82\x4f\xb3\xbe\xf7\x49\x9c\x91\x69\x5c\x37\xf7\x4b\x9c\ \x7f\xea\x99\xdc\xfe\xe8\xe5\xbe\x6b\xab\xaa\xaa\x1f\x03\x79\x6c\ \xc3\x96\x2d\x5b\x2a\xe4\xe3\x98\x73\x32\x69\xd2\x24\xa4\x94\x08\ \x21\x28\x95\x4a\xfe\xc6\x54\x55\x95\x50\x28\x44\xb1\x58\x24\x12\ \x89\xf8\xa1\x80\x65\x59\xfe\xf7\x1f\x33\x20\xb5\xb5\xb5\xb7\x2c\ \x5d\xba\xf4\x2e\x8f\x2e\x39\xe1\x84\x13\x48\xa5\x52\x04\x02\x01\ \xd2\xe9\xb4\xaf\x82\xa4\x94\x28\x8a\xe2\xb3\x9f\xde\xee\x1a\xa3\ \x16\x5c\x65\x2c\x9a\x9a\x36\x6d\x1a\x8e\xe3\x50\x28\x14\x10\x08\ \x6c\x69\x51\x2c\x16\x29\x97\xcb\xf4\x59\x49\x5a\xa6\x3b\xc8\x48\ \x89\xc6\x49\xd3\x49\x4d\xed\x43\x0a\x07\xd3\x35\x51\x4a\x61\x86\ \x1e\x99\x5c\x49\x74\x1d\x01\x45\x62\x59\x16\xb6\x65\x21\x15\x89\ \xa2\x09\x1a\xaa\x9b\x39\x58\xfa\x3d\xc9\x24\x64\xdd\x7e\xea\x4e\ \x30\x08\x07\x23\x5e\xcc\x33\x41\xe5\x78\x2a\xb6\xa7\xa7\x87\x50\ \x28\x84\xeb\xba\xac\x5e\xbd\x9a\xad\x5b\xb7\xd2\xd9\xd9\xe9\x7b\ \x52\xaa\x5a\x61\x80\x6b\x6a\x6a\xc8\x66\xb3\xa8\xaa\x4a\x2c\x16\ \xf3\xd5\x9e\x17\xbb\x1d\x8e\x53\xf2\x8e\x80\x98\xa6\x39\xb5\xa9\ \xa9\xa9\xa6\xa7\xa7\x07\xd3\x34\xb9\xe7\x9e\x7b\xd8\xb3\x67\x0f\ \x37\xde\x78\x23\x3f\xf8\xc1\x0f\x48\x24\x12\xd4\xd6\xd6\x12\x0c\ \x06\x79\xe9\xa5\x97\x58\xb8\x70\x21\xbb\x76\xed\xa2\xa7\xa7\x87\ \xb9\x73\xe7\xb2\x6d\xdb\x36\xf6\xef\xdf\x7f\xfb\x82\x05\x0b\xbe\ \xf3\xec\xb3\xcf\x72\xd1\x45\x17\x51\x2e\x97\x7d\x95\x25\x74\xc5\ \xf7\xbe\x5c\xc7\x45\x55\x04\xa1\xec\x7c\x3e\x71\xd1\x9d\x68\x32\ \xca\x17\x9e\xf8\x08\x1f\x3e\xfb\x46\x7e\xb6\xfd\x6e\x2c\xcb\xac\ \xe4\x52\xfe\xc8\x83\x0d\x0c\x0c\x30\x6b\xd6\xac\x3b\xa3\xd1\xe8\ \x54\x00\xe9\xca\x29\xc9\xd1\x14\xd2\x75\x41\xb7\xe9\xfc\xa5\xc2\ \x77\x5f\xf8\x16\x69\xf7\x20\x46\x36\x88\x4d\x89\xee\x75\x9d\x74\ \x0d\xe6\x30\xcd\xb0\x0f\x48\x38\x1c\x66\xc6\x8c\x19\x0c\x0e\x0e\ \x62\x9a\x66\xaa\x54\x2a\xf5\x38\x8e\xb3\x44\x51\x14\x71\xd7\x5d\ \x77\x49\xd7\x75\x85\xb7\x01\x3d\x1b\x0b\xf8\x86\x1c\x20\x95\x4a\ \x11\x8b\xc5\xfc\x4d\x7a\xb8\x34\x8a\x76\x38\x06\xdd\x34\x4d\x0a\ \x85\x02\xaa\xaa\xf2\xa3\x1f\xfd\x88\x6f\x7f\xfb\xdb\xfc\xf4\xa7\ \x3f\x65\xfd\xfa\xf5\xa8\xaa\x8a\xae\xeb\x68\x9a\x46\x2a\x95\x62\ \xef\xde\xbd\xe4\xf3\x79\xca\xe5\x32\x89\x44\xc2\x53\x5f\x21\x55\ \x55\xd9\xb0\x61\x03\xaf\xbf\xfe\xba\xef\xab\x8f\xbd\x34\xdf\xdf\ \xb7\xb1\x71\x71\x59\xd6\x70\x19\x8f\x6c\xfb\x2a\xb3\xb4\xf3\xb9\ \xf6\xa4\xd5\xb4\xd4\x4c\x41\xa0\x54\xd4\x9c\x22\xde\xc9\xb3\xfa\ \xfb\xe9\xd3\xa7\xd7\x0b\x21\x28\x38\x65\x58\x38\x4c\x7d\x3c\x8c\ \xd3\x1f\xc1\xea\x0b\x93\x19\x4d\x22\x88\x11\xaa\x98\x65\x8a\x43\ \x92\x46\x71\x22\x1d\x66\x87\xcf\x38\x54\x57\x57\x13\x8f\xc7\x49\ \xa5\x52\x98\xa6\xf9\xec\x9e\x3d\x7b\x6e\x8a\xc7\xe3\xd7\x5a\x96\ \x35\xcb\xb2\xac\xaf\x5d\x70\xc1\x05\xac\x58\xb1\x82\x47\x1f\x7d\ \xd4\xb7\xab\x5e\x10\xe9\x51\x4a\x8a\xa2\x30\x3c\x3c\x4c\x34\x1a\ \x3d\x22\x5e\xeb\xb0\x00\xf1\xbe\xcc\x73\xf5\x4e\x3b\xed\x34\x5f\ \x2d\x8d\xb7\x1f\x42\x08\x7a\x7b\x7b\xfd\x3f\x1f\x38\x70\xc0\xf3\ \xbc\xd2\xfb\xf7\xef\xff\xab\xb1\xe8\x95\x50\x28\xf4\xf8\x89\x27\ \x9e\xa8\x7e\xf1\x8b\x5f\xe4\x73\x9f\xfb\x1c\xa6\x69\x56\xf2\x29\ \xaa\x8d\x10\x10\xd0\x22\x38\xae\x8d\x61\x9a\x64\x64\x8a\xae\x4c\ \xe2\x10\x85\x21\xf0\x77\xe6\xdb\x2d\x8f\x85\x05\x78\x23\xbf\x9f\ \xeb\x4f\xaf\xc1\xb2\x73\x94\x5a\x06\xa9\xd6\xc2\x08\x47\x45\x1a\ \x2a\xc5\x3d\x51\xf2\xdb\x62\x20\x2a\x3b\x3d\x95\x4a\xf9\xd7\x28\ \x95\x4a\xa4\x52\xa9\x09\xcf\x98\x4e\xa7\x7f\x01\x9c\xb8\x6a\xd5\ \xaa\xaf\xdd\x79\xe7\x9d\xe8\xba\x8e\x61\x18\x74\x75\x75\xb1\x74\ \xe9\x52\x7e\xf9\xcb\x5f\xf2\xbe\xf7\xbd\x8f\x2d\x5b\xb6\xb0\x67\ \xcf\x1e\x2e\xbd\xf4\x52\x86\x86\x86\x58\xbb\x76\xad\xbf\xa9\x17\ \x2c\x58\xf0\x66\x6b\x6b\xeb\xaa\x6c\x36\xbb\xe5\x98\x25\xc4\x33\ \x70\x93\x27\x4f\x66\x68\x68\xc8\xb7\x15\xde\x4d\xbb\xae\xeb\xff\ \xf2\x78\xac\xb1\x07\x7c\x42\xd7\xf5\xbd\xc3\xc3\xc3\xaf\x7a\xdf\ \xd9\xd2\xd2\x22\x9f\x7b\xee\x39\x5e\x7c\xf1\x45\x96\x2f\x5f\xce\ \x86\x0d\x1b\x2a\xbb\x2c\xe4\x32\xb4\xce\xe2\xf9\xf8\xd3\xc8\xc8\ \x28\xfd\xca\x1b\x18\x56\x89\xaa\x1a\x9d\x83\x43\x06\x85\xa2\xed\ \xdf\x53\x2c\x16\x3b\x77\xf1\xe2\xc5\x5f\x02\x84\x61\x18\x76\x5b\ \x5b\xdb\x57\x3c\xbe\xc9\xf7\x8e\x85\x44\x22\x59\x20\xae\x67\xc5\ \x7b\x4e\x21\x6d\xf6\xb3\x61\xdf\x6b\x64\x42\xfb\x29\x06\x6c\x2c\ \xcb\x44\x22\xd1\x34\xcd\x27\x32\x5d\xd7\x95\xaa\xaa\x0a\xc7\x71\ \x88\xc7\xe3\x24\x12\x89\xf1\xe8\x2b\x43\x43\x43\xec\xde\xbd\x9b\ \xe6\xe6\x66\x3c\x97\x7a\xe3\xc6\x8d\x00\xbc\xf6\xda\x6b\x94\xcb\ \x65\x74\x5d\xe7\xb5\xd7\x5e\xa3\xa1\xa1\xc1\xbf\x5f\xc3\x30\xa8\ \xa9\xa9\x89\x59\x96\xa5\x1f\xab\x97\x25\x6d\xdb\x46\x55\x55\x1e\ \x7e\xf8\x61\xa6\x4e\x9d\xca\x23\x8f\x3c\xc2\xce\x9d\x3b\x09\x85\ \x42\x24\x93\x49\xa2\xd1\x28\x83\x83\x83\x04\x02\x01\x62\xb1\x18\ \x23\x23\x23\x64\x32\x19\xd2\xe9\x34\x6d\x6d\x6d\x57\xbf\xdd\x2e\ \x7e\xf6\xd9\x67\xa9\xad\xad\x25\x97\xcb\xf9\x34\x45\xa9\x54\xa4\ \x2e\xb9\x08\x07\x0b\x91\xa9\xa1\xcf\x19\x22\x34\xbd\x8c\x99\x0d\ \xd0\xc8\x3c\x26\xaf\xa8\xe4\xb5\xa5\x25\x40\x61\x95\x10\xac\x1a\ \x8b\x69\x4a\x1e\x20\xe3\x25\x44\x00\x03\xfd\x79\xfe\xf3\x6f\x3e\ \xce\xc7\x7f\x7d\x36\x5f\x3e\xe7\x69\x6a\xec\x79\xa8\x35\x29\xbe\ \xb5\xe9\xab\x18\x86\x09\xa2\xc2\x59\x79\x2a\x54\xd3\x34\x31\x38\ \x38\xd8\x39\x38\x38\xb8\x4d\x08\xe1\x06\x02\x81\xb5\x6f\xdd\xa0\ \xab\x57\xaf\xc6\xb6\x6d\x42\xa1\xd0\x04\x35\x74\xf0\xe0\xc1\x09\ \x3f\x1f\x38\x70\xc0\xb7\x21\x85\x42\xe1\x0f\x3e\x7f\x54\x80\x28\ \x8a\x32\xc7\xb2\x2c\x54\x55\xa5\x54\x2a\x51\x2c\x16\x99\x3b\x77\ \x2e\x6f\xbe\xf9\x26\x4b\x96\x2c\x61\x78\x78\x98\xda\xda\x5a\xb2\ \xd9\x2c\xe5\x72\x99\x48\x24\xc2\x39\xe7\x9c\xc3\x33\xcf\x3c\xf3\ \x47\x2f\xae\x69\x1a\x5f\xfa\xd2\x97\x7c\x43\xe8\xc5\x0b\x05\xa5\ \x4c\xa9\x54\x42\xa4\x05\x42\x08\x76\xe8\xfb\x78\xef\x19\x35\xd8\ \xd6\x78\xcf\x4a\xe2\x18\x0a\x99\x17\xea\x30\x87\x03\x80\xfc\x03\ \xb0\x7d\x9a\x45\x07\xc7\x86\x80\xae\xa3\x29\x01\x10\x90\xc8\x0f\ \xf2\x46\xff\x03\x48\x57\x8e\xa9\xc0\x8a\x94\x37\x34\x34\xf8\x36\ \x40\x51\x94\x5f\x67\x32\x99\xd5\x6f\x17\x8e\x79\xae\xbc\xb7\xeb\ \x0f\x33\xed\xed\x7f\xff\xb1\x02\x32\xbd\xb6\xb6\xf6\x46\xc3\x30\ \xa4\xa6\x69\xe2\xee\xbb\xef\xa6\xb1\xb1\x91\xbd\x7b\xf7\xe2\xba\ \x2e\x83\x83\x83\x18\x86\x41\x38\x1c\xa6\x50\x28\x20\xa5\x64\x74\ \x74\x94\x5d\xbb\x76\xfd\x49\xee\xa9\x58\x2c\xe6\xa5\x94\xde\xb5\ \x83\xe1\x70\x58\x77\x1c\x07\xdd\x52\x71\xdc\x43\x2a\x47\x09\x09\ \x2c\xc7\x66\x45\xf4\x16\x16\xcf\x5c\xc0\x96\xe4\xe3\xe4\x92\x1a\ \xbb\xdd\xe7\x70\xb4\x18\x96\x09\x12\x39\xc1\xa6\xb8\xae\x2b\x7d\ \x03\x1a\x12\xc4\x27\x85\x28\x18\x65\x02\x21\x95\x9a\xaa\x5a\x4c\ \xa5\x88\x16\xd2\x40\xa9\x00\x22\x91\xbe\xfa\x6d\x6e\x6e\x66\x68\ \x68\x88\xb7\x2b\x4d\x02\x08\x04\x02\xed\x1d\x1d\x1d\x8d\xf3\xe7\ \xcf\x1f\x9a\x32\x65\x0a\x37\xdc\x70\x03\x8f\x3d\xf6\x98\x6f\x7b\ \xbc\x80\xd7\xdb\x60\x1e\xc3\xa1\xeb\xba\xcf\x8a\x1f\x2b\x20\x11\ \x21\x04\xb9\x5c\x4e\xd4\xd7\xd7\x33\x3c\x3c\xcc\xe0\xc0\x10\x20\ \x10\x02\x1f\xf1\x72\xb9\xec\x07\x54\xde\x36\x8e\xc5\x62\xa2\x54\ \x2a\xbd\x6d\xf4\x2c\x84\xf0\x2b\xe9\x66\xce\x9c\xf9\xa0\xaa\xaa\ \x1f\xbe\xfc\xf2\xcb\xfd\x00\xec\x90\x2b\x29\x49\x0d\x0a\xfe\xee\ \xe6\x9b\xb9\xe9\x67\x4b\xf9\x97\xb3\x1f\xa3\x18\x2f\x30\xd3\x6c\ \xe6\x27\xbf\x79\x02\xc3\x90\x9e\x0d\x08\x5d\x74\xd1\x45\x23\x80\ \x14\x8e\xa8\xb3\x2c\x89\xa2\xc0\x22\x3b\xc2\xf0\xc3\x0a\xd7\x3f\ \x74\x2d\x52\x09\x71\xfd\x7f\x5d\x83\x65\x5b\x04\xb5\x08\xdb\x5b\ \x7b\xa9\x8a\xc4\x7d\x4a\xdd\x23\x3f\xff\x18\x18\xe3\xf2\x22\x32\ \x16\x8b\xf1\xe2\x8b\x2f\xb2\x71\xe3\x46\x5a\x5a\x5a\xd8\xba\x75\ \x2b\xe1\x70\x98\xf5\xeb\xd7\xfb\x36\x31\x12\x89\xd0\xd2\xd2\xc2\ \xae\x5d\xbb\x18\x1d\x1d\xf5\x93\x74\xc7\xac\xb2\xa4\x94\xe8\xba\ \xce\xbe\x7d\xfb\x90\xae\xa4\x66\xb1\x4e\x24\xac\x92\xeb\xb7\x29\ \x0e\x39\x48\xf7\x6d\xd5\x9c\x28\x97\xcb\x9d\x8a\xa2\x7c\xf3\xed\ \x9c\x84\xb7\xb0\x00\xfa\x07\x3e\xf0\x01\xe6\xcc\x99\xc3\x07\x3f\ \xf8\x41\x6e\xbd\xf5\x56\x3f\xcf\x20\x10\x54\x05\xe3\xd8\xb2\x44\ \xbc\xaa\x8a\xe6\xda\xa9\x3c\xbf\xe3\xd7\x3c\xd1\x77\x1f\xb6\xd5\ \x88\x69\xb9\x50\xd9\xe1\xa2\xa6\xa6\x66\x92\x40\xd0\x35\x6d\x0f\ \xa7\x5d\x14\xc6\x18\xac\xd4\x55\xd9\x83\x01\x9c\xac\x06\x96\x8e\ \x5b\x52\x50\x75\x0d\x4d\x53\x29\xe5\x4d\x6c\x23\xe5\x25\xdd\x64\ \x34\x1a\x15\x23\x23\x23\x84\x42\xa1\x77\xe4\xf8\x1c\xc7\xe1\x95\ \x57\x5e\x21\x1e\x8f\xe3\xba\x2e\xfd\xfd\xfd\x7e\xa2\xca\x4b\xc8\ \x79\xec\x6f\x5d\x5d\x1d\x03\x03\x03\x68\x9a\xe6\x05\x91\xb1\xe3\ \x02\xc8\xec\xd9\xb3\x2b\x14\x40\xb2\x22\x9a\x51\x29\x89\xd4\xcb\ \x09\xa5\x3b\x9e\x97\x35\xb6\xe3\x7a\x06\x06\x06\xfe\xeb\x70\xe9\ \x8d\xb9\x73\xe7\xfa\x51\xed\x21\x75\x27\xb0\x5d\x13\x45\x68\x80\ \xa0\x64\x15\xd1\x54\x8d\xa0\x16\xc5\x71\x5c\x4c\xd3\xf2\x83\x39\ \xcb\xb2\x28\x38\x65\x6a\xa7\x29\x48\x5b\x25\x5a\x1f\x46\x99\x62\ \x61\xcc\x4f\xf8\x9b\x60\xe0\xa1\x49\x48\x5b\xf1\x3d\x41\x8f\x5b\ \x53\x55\x55\x74\x75\x75\x3d\xe0\xed\x11\x5d\xd7\x7f\xfd\xa7\xee\ \xd7\x75\x5d\x3e\xf9\xc9\x4f\xfa\xdf\x33\x7e\xed\xdb\x77\x28\x7f\ \xd6\xdf\xdf\xef\x7b\xa1\xf1\x78\x1c\xc7\x71\xa8\xaa\xaa\xfa\x72\ \x3a\x9d\x7e\xe1\x98\x00\x59\xb1\x62\x05\x97\x5d\x76\x19\x67\x9f\ \x7d\x36\xdf\xfb\xde\xf7\x68\x6d\x6d\xe5\xe4\x93\x4f\xe6\xf5\xd7\ \x5f\x67\xee\xdc\xb9\x64\x32\x19\x5a\x5b\x5b\x09\x87\xc3\xcc\x9c\ \x39\x93\x37\xde\x78\xe3\xb0\x29\xf2\x40\x20\xc0\x0b\x2f\xbc\xc0\ \xde\xbd\x7b\xe9\xed\xed\xf5\x19\x54\x21\x04\x85\xd6\x1c\x43\x46\ \x23\xff\xeb\xa5\x5b\x18\xcc\xea\x7c\xea\xb1\x4f\x60\x18\x36\x79\ \x27\x8e\x5d\x14\x44\x22\x87\xa4\xae\xa2\x1e\x25\xca\xeb\x93\x39\ \xf8\x86\xe0\xc1\x07\x7e\xc4\xfe\x9e\x2e\x7e\xbb\xf7\xa7\xfc\xed\ \xaa\x8f\x72\xf7\xba\x5b\x31\x4d\x0b\x69\x1f\x02\x42\xd7\x75\x9f\ \x4a\x1f\x19\x19\xf9\xc8\xe1\xde\x73\x3e\x9f\x27\x12\x89\x1c\x02\ \xc3\x01\xcb\x74\xc7\xee\x05\x84\x2a\x50\xd4\x31\x6d\x30\xf6\x91\ \xd1\xd1\x51\x5f\x3d\x1e\x8b\x84\xb8\xde\x2e\x88\xc7\xe3\x84\xc3\ \x61\x9f\x74\x0b\x04\x02\x2c\x5d\xba\x94\xee\xee\x6e\xaa\xab\xab\ \x7d\xa3\xa5\xeb\xfa\x3b\x5e\xf4\x2d\x2a\x2b\xa0\x28\x0a\x07\x0f\ \x1e\xf4\x8a\x06\x64\xb9\x5c\x16\x00\xe5\x62\x91\x69\x2b\x66\x92\ \xcb\xe5\x88\x69\x75\xa4\x67\x1c\xa0\x69\x46\x80\xaa\xb4\x8e\x93\ \x1d\xfb\x95\xd6\x70\x73\x1a\x62\xec\x49\xc2\xe1\x30\xe9\x54\x9a\ \xf5\x3d\xcf\xb2\xe9\xcd\x2e\x2e\x3e\xf9\x06\x1a\x63\xd3\x11\x28\ \x95\x58\xc7\xaa\x48\xd4\xbc\x79\xf3\xfc\x6c\xe6\xe1\x12\x95\x00\ \x35\x35\x35\x23\x1d\x1d\x1d\x4d\xa7\x9c\x72\xca\x40\x2a\x95\x42\ \x48\x70\x67\x0b\x96\x5f\x59\x43\x7e\xc0\xa1\x38\x6c\x93\x1b\x70\ \x28\x0e\xd9\x18\x19\x17\xcf\x24\x79\xef\xf0\x4f\xd9\xa8\x77\x04\ \x24\x1a\x8d\x2e\x07\xd8\xb6\x6d\x1b\x89\x44\x82\xe1\xe1\x61\x8a\ \xc5\x4a\xe9\xce\xee\xdd\xbb\xfd\xc0\xd0\x03\xcd\x75\x5d\x5e\x7e\ \xf9\xe5\x23\x4a\x26\x25\x93\xc9\x2f\x0e\x0d\x0d\x7d\x77\xcc\x8d\ \x9c\xbe\x60\xc1\x82\x87\x0f\x79\x23\x95\x0a\x96\x72\xb9\x4c\xca\ \xcd\x31\x75\xae\x89\xa8\xb2\x69\x9c\xd6\x44\xd9\xcd\x51\x72\x12\ \x28\x0a\xd8\x79\x95\xe1\x9f\x4e\xf6\x1f\x5c\x4a\x89\x57\xb2\x9e\ \x29\x8d\x92\x35\x12\x08\x45\x4c\x00\x24\x93\xc9\x70\xf5\xd5\x57\ \xf3\xf4\xd3\x4f\xfb\x31\xc8\xe1\xac\x4c\x26\x83\xae\xeb\x52\xd3\ \x34\x9a\x9a\x9a\x2a\x36\xa2\x7f\x80\x8e\x07\x15\x2c\xc7\x45\x28\ \x3a\xae\xab\xa2\x11\x40\x09\xbb\x7e\x4e\xc4\x53\xe5\xc7\x04\x88\ \xae\xeb\x7f\xe3\x65\xf8\xfa\xfa\xfa\xfc\xa4\xcc\xf8\xdf\x8f\x75\ \x15\x0a\x85\xbd\xc0\xde\xb1\x1f\xe7\x7b\x8c\x80\x10\x02\xa5\x50\ \x79\x89\xa6\x61\x62\x2b\x0e\xaa\xaa\xd0\xa2\xae\xe2\xef\x56\xde\ \x4a\x4d\xa0\x9e\x0f\x7c\xef\x7c\x6e\xbb\xea\x56\x7e\xb1\xfe\xfb\ \x13\xe8\x73\xdb\xb1\x59\x30\xe9\x34\x92\x53\x54\x06\x72\xdd\x04\ \xd5\xd3\x51\x50\x30\xcd\x32\xae\x55\x89\x83\x32\x99\x0c\x4f\x3f\ \xfd\xb4\xef\x96\x1e\xe9\x52\x14\x85\x07\x1e\x78\x80\xe1\xe1\x61\ \x84\x10\x3c\xfe\xf8\xe3\xc4\xe3\x71\x3a\x3b\x3b\x69\x6e\x6e\x66\ \xcb\x96\x2d\xcc\x9a\x35\x0b\xc7\x71\xd8\xb7\x6f\x1f\xcd\xcd\xcd\ \x74\x74\x74\x1c\x1b\x97\x25\xa5\x54\x63\xb1\x18\x7b\xf6\xec\x41\ \x08\x41\xf4\x7c\x9d\x15\x17\xd5\x20\x01\x23\x27\x49\xee\x35\x18\ \x6d\xb7\xc8\x74\x98\x98\x85\x43\xf9\x90\x9a\x9a\x9a\x11\xe0\x7d\ \x47\x5b\xa6\xfa\xd3\x9f\xfe\x94\x42\xa1\xc0\xe7\x3f\xff\x79\xbf\ \x30\xc1\x52\x4d\x84\x90\x9c\x3c\xe5\x6c\x7e\xd7\xfe\x00\xa9\xce\ \x06\xae\x58\xf8\xb7\xcc\xa8\x59\x84\xed\x54\xaa\x60\x3c\x09\xe9\ \xee\xee\xe6\x6b\xff\xfb\xbb\x95\xc4\x56\x29\xc5\xc6\x9f\xec\xe2\ \xc0\x20\x64\x53\x79\x8f\x02\x92\x8a\xa2\x08\xaf\x8e\xea\x9d\x76\ \xed\xdb\xd9\x55\x8f\x5d\x9e\x3f\x7f\x3e\x5d\x5d\x5d\x8c\x8c\x8c\ \x78\xcf\xce\xc9\x27\x9f\xcc\xe6\xcd\x9b\x19\x19\x19\x61\xd1\xa2\ \x45\xa4\x52\x29\x46\x47\x47\xd1\x34\xed\xd8\x24\xc4\x8b\xaa\x3d\ \xef\xc9\xd9\xa9\xf1\x66\x47\x96\x7c\xbf\x83\x55\x94\x28\x9e\xf1\ \x52\x55\x54\x55\xfa\xb9\x91\x40\x20\xe0\x0e\x0c\x0c\x1c\x55\xd3\ \xca\xbc\x79\xf3\x68\x6e\x6e\x66\x74\x74\x94\xe6\xe6\xe6\x4a\x85\ \xbd\x65\xe2\xe0\x00\x02\x4d\x09\x60\x4b\x0b\xdb\xb1\x18\x48\x0f\ \xd3\x95\x0e\xa3\x09\xdd\x8f\x5f\x34\x4d\x03\xcd\xa1\xa4\xa6\x70\ \xb2\x1a\x8a\xd4\xc9\xe6\xb2\xc4\xf4\x38\xb9\x5c\x07\x8a\xa2\xa0\ \xeb\xba\x28\x14\x0a\x3b\x37\x6d\xda\xf4\x4f\x42\x08\x55\x51\x94\ \x23\x2e\x91\x54\x55\x95\xaf\x7c\xe5\x2b\xcc\x9f\x3f\x9f\xcd\x9b\ \x37\xa3\xeb\x3a\x1d\x1d\x1d\xb8\xae\xcb\xab\xaf\xbe\x8a\xa6\x69\ \x24\x93\x49\xda\xdb\xdb\xc7\x9b\x00\xa4\x94\x35\xc7\x22\x21\x48\ \x29\xf9\xd1\x8f\x7e\xc4\xac\x59\xb3\xb8\xf7\xde\x7b\x2b\x65\x93\ \x73\x4a\x7e\x92\xaa\x58\x2c\x22\xa5\x64\xd2\xa4\x49\x74\x75\x75\ \x91\xc9\x64\x8e\xb8\x3a\x64\x42\x85\x79\x5b\x1b\x2f\xbd\xf4\x12\ \x2d\x2d\x2d\x1c\x38\x70\x80\x78\x3c\x5e\x49\xc3\x62\xa3\x6b\x21\ \x52\xc6\x20\xd3\xa7\xcc\xa3\x7e\x5a\x1d\x9b\x7a\xba\xa9\x8d\x4c\ \x1e\x8b\xba\x0f\xb9\xc0\x7a\x5c\x52\xf7\xfe\x01\x46\x9e\xae\xc3\ \xe8\xad\xd0\x2b\x8e\xe3\xf8\xe5\x3b\x63\xbf\x27\x8b\xc5\xe2\xf3\ \x47\x73\x8f\x63\x84\xab\xab\xeb\xba\xb2\x73\xe7\xce\x4a\x0b\x85\ \x00\x55\x55\x90\x12\x62\x91\x18\x96\x6b\x55\x1c\x2c\x81\x1f\xab\ \x8d\xd5\x78\x2d\x38\x26\x09\x99\x37\x6f\x1e\xb3\x67\xcf\xe6\x84\ \x13\x4e\x60\xd9\xb2\x65\x6c\xdd\xba\x95\x65\xcb\x96\xf1\xe4\x93\ \x4f\x72\xf1\xc5\x17\xb3\x7b\xf7\x6e\x36\x6c\xd8\xc0\x99\x67\x9e\ \x49\x73\x73\x33\xcf\x3e\xfb\xec\x9f\xa4\xc7\xdf\x69\x45\x22\x11\ \xbe\xf5\xad\x6f\x21\x84\x60\x68\x68\xa8\x52\x01\x68\x98\xd8\xaa\ \xcb\x86\xff\x1e\x64\x93\xf9\x55\xe6\x35\x2e\xc1\x95\x2e\x3b\xfa\ \x36\xd1\xfa\x68\x1b\x1d\x23\xbd\x14\x86\x0e\xbd\x2c\x4d\x53\x59\ \xf7\xb5\x61\x8c\xd1\x51\x9c\x92\x64\xc6\x8c\x19\xe8\xba\xce\xd1\ \xaa\xa8\xb7\xf1\x0c\x87\x76\xee\xdc\x79\xf1\xac\x59\xb3\x5e\x28\ \x95\x4a\xb8\x2a\x4c\xbd\x21\xca\xc9\xcb\x63\xd8\x8e\x43\x53\x78\ \x1e\xc3\x46\x3b\x8e\xe1\x72\xf0\xd5\x12\xfb\x9e\xc8\xa3\xa8\x15\ \xa7\x27\xe2\xf9\xea\x47\x0b\x48\x67\x67\x27\xbf\xfc\xe5\x2f\x39\ \xe5\x94\x53\x78\xe5\x95\x57\xc8\xe5\x72\xf4\xf4\xf4\x60\x18\x06\ \x4f\x3e\xf9\xa4\x5f\x99\xf1\x9b\xdf\xfc\x86\x40\x20\xe0\xa7\x3e\ \x8f\x72\x8d\x0e\x0d\x0d\x7d\x43\xd7\x75\x6b\xec\xc1\x3f\x98\x4a\ \xa5\x66\xe4\xf3\x79\x2c\x53\x32\x2b\x3c\x83\x19\x33\xa6\x57\xa4\ \x54\x1a\x2c\xbb\x7e\x16\x55\x91\x32\x0d\xc3\x27\x63\x0d\x06\x71\ \x46\x2b\x69\x27\xa1\x48\x50\x24\x4c\x83\x5c\x2e\xc7\xc8\xc8\x08\ \xd1\x68\x94\x78\x3c\xce\x69\xa7\x9d\xc6\xcb\x2f\xbf\x7c\x5c\x1c\ \x12\x3f\xcd\x2b\xa1\xd4\x6a\xb3\x63\x7f\x8e\x7c\xaf\x83\x6d\x6c\ \xc4\x2e\x4a\xec\x72\xa5\x3f\x51\x0f\x68\xbe\x23\x70\xac\xd4\x49\ \x34\x1a\x8d\xf2\xf4\xd3\x4f\xf3\xc4\xe3\x4f\x1c\xf2\x46\x84\xc7\ \x49\x29\x7e\x4f\x8b\x50\x2a\x89\xac\xea\xea\x6a\x69\xdb\xf6\xd1\ \xea\xac\x91\xde\xde\xde\xff\xed\xfd\x50\x5f\x5f\xbf\x5c\x51\x94\ \x19\xaa\xa2\x80\x03\xae\xe3\x92\xcf\xe7\x11\xc0\x66\xab\x8d\x4b\ \x5a\xa2\xb8\x4a\x8e\xe0\xd4\x22\x8a\x2c\xa1\x6a\x0a\x76\x5a\xa7\ \xbc\x2f\x46\x7e\x5b\xd4\x67\x01\xbc\xea\xc1\x7c\x3e\x5f\xc9\xe5\ \x8b\xe3\xd3\x31\x67\x59\x16\xb7\xdc\x72\x0b\x00\x2f\xae\x7d\x11\ \x51\x56\xd0\xb4\x02\x42\x17\x18\xba\x81\xac\x96\x7e\x6c\x94\x48\ \x24\x0e\x2b\x6b\xa8\xbd\x83\x41\xaf\xf7\x92\xf9\xae\x0a\x93\xe6\ \x05\xd0\x75\x81\xb4\x75\xe6\x4e\x5e\x48\x47\x6a\x07\x28\x50\x4e\ \x39\xa4\xbb\x7c\x1d\x2e\x6c\xdb\xee\xe0\xf8\x2c\x25\x10\x08\x30\ \x7d\xe1\xc2\x4a\x46\xcf\x1a\xa3\xd6\xbd\x88\x58\x11\xac\xac\xbe\ \x85\xf7\x9d\x7e\x2d\x3b\x86\x5f\xe6\x85\x2d\x2f\xa1\x35\x0f\xd3\ \xd6\x37\xe0\x13\x85\x5e\xc2\xca\x8b\x05\xd6\xaf\x5f\xef\xf1\x55\ \xc7\xbc\xce\x3e\xfb\x6c\x2e\xb8\xe0\x02\xe6\xcc\x99\x43\xa1\x50\ \xa0\xb7\xb7\x97\x8b\x2f\xbe\x98\xc7\x1f\x7f\x9c\xf3\xce\x3b\x8f\ \x62\xb1\xc8\xab\xaf\xbe\xca\xfc\xf9\xf3\x89\xc5\x62\x3c\xf5\xd4\ \x53\x7e\x09\xee\x51\x01\xa2\x28\x8a\xa8\xaf\xaf\xa7\x90\x2f\x60\ \x45\x24\x4b\x3f\x52\x47\x75\x8d\x86\x74\x25\xc9\xb6\x7e\xea\xf6\ \x55\x31\xbc\xdd\xc0\x1a\x75\x88\xc5\x82\xbe\x27\x31\x34\x34\xf4\ \xe6\xf1\x78\x60\xd7\x75\xb9\xfd\xf6\xdb\xa9\xae\xae\xe6\x8a\x2b\ \xae\xe0\xa2\x8b\x2e\xaa\xe4\x20\x24\x10\x82\x4c\xba\xc4\x65\x67\ \x5c\xcf\x2d\xbf\x3c\x93\x9f\xff\xcd\x2e\x4e\x08\x2d\x25\xe1\xec\ \x67\xf7\xfa\x3b\x30\x0c\xcd\x0f\x5a\xcb\xe5\x32\xd1\x68\x94\x60\ \x30\x78\x58\xae\xe7\xe1\xae\x6d\xdb\xb6\x31\x75\xea\x54\x06\x06\ \x06\x50\x55\x95\xda\xda\x5a\x76\xec\xd8\x81\x10\x82\x8e\x8e\x0e\ \xbf\x16\x78\xe7\xce\x9d\xac\x5c\xb9\xf2\xd8\xe9\x77\x8f\x7b\x29\ \x95\x4b\xe8\x8e\xce\x9b\x77\xa7\x91\x16\x58\xc5\x43\x39\x74\xa1\ \x4c\xd4\x8d\x47\x42\x9b\x1c\xce\x32\x4d\x93\xfa\xfa\x7a\xbf\xe2\ \xdc\xb2\xac\x4a\x27\x6f\x08\x0c\xc3\x25\x14\x0c\xe0\x52\xa9\x3f\ \xeb\x1e\x3a\xc8\xc6\xfc\x63\x28\xa8\x13\x92\x47\x1e\xf7\xd4\xd6\ \xd6\x36\xb7\x58\x2c\x8e\x00\xb2\xa1\xa1\xc1\x38\x1e\x36\xe4\xea\ \xab\xaf\x46\xd3\xb4\x3f\x48\x56\xb5\xb7\xb7\xfb\xc4\xa2\x94\x92\ \x5f\xfc\xe2\x17\x95\xf7\x75\xac\xf4\xfb\x25\x97\x5c\xc2\x87\x3e\ \xf4\x21\x5c\xd7\xe5\xc9\x27\x9f\xa4\xab\xab\x8b\x68\x34\xca\xc1\ \x83\x07\x89\xc5\x62\x54\x55\x55\x71\xe0\xc0\x01\x72\xb9\x1c\x8d\ \x8d\x8d\xf4\xf4\xf4\x1c\xb7\x1d\x28\x84\xe0\x87\x3f\xfc\x21\xcb\ \x96\x2d\xe3\x3f\xfe\xe3\x3f\x0e\x05\x7f\x08\xa4\x0b\xf1\x78\x88\ \x64\x26\x4d\x4d\xa0\xbe\xe2\x56\x4a\x9b\x80\x88\x20\x5d\x89\x65\ \xd9\x7e\xad\x98\x57\xd6\xa9\xeb\x7a\xce\x75\xdd\x0c\x70\x44\xfc\ \xd5\x1f\x91\x5e\x73\x7c\xbe\xc7\x09\x40\x75\x5c\xc5\x71\x5d\x26\ \x87\x67\x50\x72\xd3\x14\xac\x2c\x42\x48\x8c\xac\x8b\x5b\x92\x7e\ \xf6\xf0\xa8\x01\x19\x6b\xc0\xa4\xb5\xb5\x95\x1b\x6e\xb8\x81\x6d\ \xdb\xb6\x51\x2a\x95\xa8\xab\xab\x63\xd9\xb2\x65\x6c\xdc\xb8\x91\ \x60\x30\x48\x38\x1c\x26\x93\xc9\x1c\xf7\xb6\x66\x29\xa5\x5b\x55\ \x55\x25\x77\xec\xd8\x51\x29\x59\xf0\x4a\x50\x25\x48\x21\x89\x45\ \xc2\x3c\xbe\xfb\x7e\xbe\x75\xe5\x6f\xf8\xcd\xfe\x87\x78\xa9\xe3\ \x65\xce\x3a\xe9\x74\x5e\x73\x37\x62\x18\xa6\xcf\xe8\x7a\x54\x8c\ \x6d\xdb\xb3\xea\xeb\xeb\x03\xa3\xa3\xa3\x3d\xc7\x7a\x6f\xb6\x6d\ \xb7\x09\x21\x2a\xc5\x82\x08\x46\x96\x48\xfe\xee\xf6\x66\x24\x2e\ \x51\x33\x42\x50\x0f\x72\x70\xb8\x80\x55\x90\xbc\x7e\x57\x0a\xe9\ \x54\x34\xce\x31\xb9\xbd\x42\x08\xbe\xf9\xcd\x6f\x72\xfb\xed\xb7\ \xf3\xc9\x4f\x7e\x92\xb6\xb6\x36\x5c\xd7\x9d\xd0\x5f\x38\xd6\x9f\ \x8d\x94\x92\x9e\x9e\x9e\xe3\x0a\x48\x2a\x95\xba\xe8\xf9\xe7\x9f\ \xa7\xa5\xa5\xa5\x7d\xce\x9c\x39\xb3\xb3\xd9\x6c\xa5\x6e\x58\x28\ \x14\x6a\x24\x25\x33\xca\x7e\xf9\x1c\xdf\x79\x56\x67\xd5\xe9\xa7\ \x90\x50\x76\xf0\xcc\xbe\x5d\x0c\xb5\xe5\x48\xa5\x2a\x01\x6b\x28\ \x14\xa2\xa5\xa5\x85\x52\xa9\xc4\xb5\xd7\x5e\xfb\x7a\x5b\x5b\xdb\ \x86\x75\xeb\xd6\xad\x3c\x1e\x0e\x87\xef\xfa\x0a\x85\xba\x83\x92\ \x7d\x4f\x15\x18\xda\x6e\x90\xef\xdb\x38\x41\x35\xa9\x42\x03\x8d\ \xb7\xcd\x9f\x1c\xb1\x0d\x89\xc7\xe3\xdc\x77\xdf\x7d\x7e\xc2\xc8\ \x2b\x34\x00\xd0\x35\x1d\x5d\x3b\xe4\x0a\x7b\xe5\xa3\xfb\xf7\xef\ \x9f\x71\x3c\xed\x88\x57\x2d\xef\xbd\x00\x81\x40\x35\x5c\xb4\x30\ \xe4\x7b\xe1\xf5\xce\x9f\xf3\xe4\x4f\x7e\x4c\x79\x44\x62\x95\x5c\ \xca\x69\xd7\x8f\x85\x54\x55\x25\x9d\x4e\x13\x0a\x85\x18\x19\x19\ \x39\xa2\x5e\x8d\xc3\x21\x18\x2f\xbc\xf0\x42\x6e\xbc\xf1\x46\xbe\ \xf5\xad\x6f\xa1\xf6\xa9\x10\xcc\xd1\x38\x1b\xbf\x7f\xbf\x5c\x2e\ \x53\x55\x55\x45\x2a\x95\xc2\xeb\x8b\x3f\x6a\x40\x62\xb1\x98\xdc\ \xb4\x69\x53\xa5\x92\x23\x06\x0b\xcf\x8f\xa1\x07\x04\x4a\xa9\x9e\ \x0b\x16\x5f\xca\xef\x3a\x1f\x41\x0b\xa8\x8c\xee\x33\x19\xd8\x5c\ \xf6\x12\x4e\x52\xd7\xf5\x29\xc7\x13\x10\xd7\x75\x1d\x2f\x69\xa5\ \xaa\x2a\x8b\x17\x2f\xa6\xb3\xbd\x83\xd7\xfe\xa9\x5c\xd9\x1b\x0a\ \xa0\x54\x28\x12\xe1\xba\x84\x42\xd2\xa7\x2a\xbc\x11\x18\x63\x3d\ \x7f\xc7\xb5\x91\xb4\x58\x2c\xf2\xe9\x4f\x7f\x9a\x54\x2a\xc5\x27\ \x3f\xf9\x49\x1e\x7a\xe8\x21\x4e\x5f\x79\x3a\xdd\xdd\xdd\xcc\x9b\ \x37\x8f\xdf\xfe\xf6\xb7\xac\x5c\xb9\x12\x5d\xd7\xc9\x66\xb3\xec\ \xd8\xb1\xc3\xaf\x9a\x3f\x2a\x40\x42\x63\x4f\x66\xdb\x36\xb2\xda\ \x65\xc6\x39\x35\x68\x08\xac\xb2\xc1\xeb\x23\x3f\x43\xb5\xc3\x24\ \x5a\x0d\x92\xfb\x2b\xc1\xcf\x98\xdb\x2b\x86\x87\x87\x8f\xc9\xaa\ \xc7\xe3\xf1\x96\xb9\x73\xe7\x1e\x08\x04\x02\x15\x4f\x4f\x51\x71\ \x84\x4d\xa9\x54\xe2\xdb\xdf\xfe\x36\x4d\x4d\x4d\x24\x12\x09\x7e\ \xf7\xbb\xdf\xf9\x05\x04\x00\x23\x23\x23\x4c\x9d\x3a\x95\x64\x32\ \xc9\xc8\xc8\x08\xaa\xaa\x92\x4c\x26\x09\x85\x42\x94\xcb\x65\x02\ \x81\xc0\x71\x05\x24\x14\x0a\xb1\x63\xc7\x0e\x66\xcf\x9e\xcd\x0b\ \x2f\xbc\xe0\xf7\xd0\x8c\x8e\x8e\xfa\x95\x90\x83\x83\x83\xc4\xe3\ \x71\xbf\x78\xf0\x9d\x58\x8c\x77\xb4\x21\x9e\x1b\x5b\x9d\x83\x0d\ \x77\x64\xdf\x32\xaa\xa8\xa2\x46\x82\x11\x7d\x82\x18\x1f\x87\x9d\ \x17\x98\x3d\x7b\x36\xb6\x6d\xa3\x0a\x95\x56\x75\x3f\x67\xdd\x10\ \x64\xfd\x7f\x38\xbe\x2b\x3c\x6f\xde\x3c\x1e\x7b\xec\x31\x9a\x9b\ \x9b\xa9\xad\xad\x65\xde\xbc\x79\xdc\x73\xcf\x3d\x68\x9a\xc6\xc2\ \x85\x0b\xd1\x75\x9d\x5f\xff\xfa\xd7\x7e\x56\xd0\xab\x5e\x3f\x9e\ \x80\x84\xc3\x61\xbe\xfa\xd5\xaf\x4e\x50\x43\xad\xad\xad\x00\xec\ \xdf\xbf\xdf\xa7\xe8\xc7\xab\xde\x63\x02\x44\x4a\xc9\x3f\xfe\xe3\ \x3f\x32\x77\xee\x5c\x6a\x6b\x6b\x79\xe2\x89\x27\x38\x78\xf0\x20\ \x9a\xa6\xf9\x85\xd4\x73\xe7\xce\xa5\xbd\xbd\x9d\x44\x22\x41\x73\ \x73\x33\x07\x0e\x1c\x38\x2e\xee\xae\xd7\x68\xa3\x09\x95\x4c\x3c\ \x03\x72\x32\x91\x48\x84\xaf\x7f\xfd\xeb\x9c\x7a\xea\xa9\x7e\xed\ \x97\xc7\x24\xe8\xba\x4e\xb1\x58\x64\xd7\xae\x5d\x7e\x4f\xbc\xe7\ \xf7\x8f\xa7\x2c\x8e\x17\x20\xf1\x78\xfc\x1b\x5e\x40\x08\x20\x15\ \x89\xa6\x09\x5c\x17\xa2\xa1\x28\x05\x23\x57\x69\x10\x12\xe0\xda\ \x87\x18\xdf\x77\xba\xbe\xf6\x4e\x5c\xcd\xfc\xf9\xf3\xc9\xe5\x72\ \x5c\x7a\xe9\xa5\xfc\xfe\xf7\xbf\x67\xce\x9c\x39\xd4\xd7\xd7\x33\ \x73\xe6\x4c\x1e\x7a\xe8\x21\x74\x5d\x67\xd2\xa4\x49\x78\xcd\xa0\ \xc7\xc3\xcb\x1a\x3f\xa1\x47\x52\x29\x42\x28\x17\x25\xf9\xb4\x41\ \x44\x53\x59\xbb\xb6\x52\xdd\xa9\xab\x41\x14\xad\x52\x23\xe6\x35\ \x00\x79\x76\xc2\x8b\xc8\xbd\xde\x72\x2f\x4d\x6b\x59\xd6\xa4\x50\ \x28\x74\x9d\x10\x22\x00\x88\xba\xba\xba\x57\xfb\xfa\xfa\xba\x8e\ \xc2\xae\x4d\xaf\xaf\xaf\xaf\xd8\x04\x45\xa0\x9d\xaf\x73\xe9\xb5\ \x93\x28\x96\x0d\x2e\x3b\xf1\x66\xb6\x8c\x3e\x45\x62\x28\x49\xae\ \xdf\x61\xc3\x37\x93\x3e\xcb\x1c\x8d\x46\x87\x8f\x1a\x90\x60\x30\ \xc8\xbd\xf7\xde\xcb\xe7\x3e\xf7\x39\x3e\xf6\xb1\x8f\xd1\xdf\xdf\ \xef\x8b\xbd\x37\xdb\x24\x95\x4a\x61\x59\x16\xa5\x52\xc9\xcf\x85\ \xc8\xb1\xc8\xf0\xad\x0d\x34\x47\x0a\x88\x61\x18\x38\x28\xa8\xaa\ \x42\x6f\xa7\xc1\xdd\xf7\x7e\x95\x6f\x3c\xfb\x2f\x7c\xe1\xfc\x2f\ \x13\x8f\xc4\xf9\x9f\xad\x5f\xa4\xfd\x37\x39\x8c\x11\xc5\xaf\xec\ \x38\xe1\x84\x13\x68\x6c\x6c\x64\xfb\xf6\xed\xd4\x35\x55\x71\xc2\ \xcc\x46\x96\x4f\x5a\x86\xea\xea\x15\x07\x40\x30\x47\x22\x1f\xf3\ \xd2\xd0\x3f\xfc\xe1\x0f\xff\x06\xe8\x3a\x8a\x7b\x94\xe3\x55\xb4\ \x18\x81\xe1\x5d\x65\x12\x7b\x2d\xbe\xfa\xdd\x7b\x49\xee\xb3\x70\ \x4d\x89\xa2\x0b\x14\x4d\xf1\x35\x8e\x10\x42\x39\x26\x1b\x92\x48\ \x24\xb8\xfd\xf6\xdb\x0f\xeb\x26\xbd\x1e\x43\x21\xc4\xa2\xa6\x43\ \x9e\x9f\xf6\x00\x00\x16\x56\x49\x44\x41\x54\xa6\xa6\x53\x06\x06\ \x06\xb6\x1d\x43\xe0\x55\x01\x5d\x2a\xa8\x42\x05\x14\x96\x2e\x3b\ \x85\x86\xb6\x2a\x96\xaf\x38\x8d\x29\xb5\x4d\xac\x29\xa9\x54\x6d\ \x8c\xa0\xe4\x85\xaf\xd3\x67\xcc\x98\xe1\x79\x88\x4c\x3a\xdd\xa5\ \xf9\xec\x34\xd2\x4d\xe3\x00\xc6\x40\x00\xa3\x2d\x42\xb9\x33\x82\ \x10\x15\xde\x4d\x55\xd5\xa3\x76\x40\x54\x55\x65\xe1\xc2\x85\x9c\ \x74\xd2\x49\x6c\xd8\xb0\x81\x81\x35\x15\xa3\x1e\x70\x1c\x26\x37\ \xba\x7e\xac\xe6\x6d\x62\x6f\xb0\xdb\x51\x03\x32\x3c\x3c\xdc\xe5\ \xba\xee\x5c\xaf\x80\xa0\xe9\xac\x30\x91\x88\x82\xb4\x75\xde\x77\ \xd2\x2d\x3c\xb3\xef\x87\xd8\x18\xd8\x86\xe4\xc0\xef\x8b\x7e\x0a\ \xb5\xaa\xaa\x2a\x52\x2c\x16\xe3\x47\xf2\x70\x53\xa6\x4c\x79\x5f\ \xb1\x58\xbc\x10\x70\xa5\x94\xf1\xce\xce\xce\x8a\xee\x97\x82\xb2\ \x61\x32\xd0\x53\xe2\xab\x89\x6f\xb2\xa7\x6d\x98\x3b\xb6\xfd\x2b\ \xb1\x50\x35\x1b\x0e\x1e\xc4\xee\x8b\xa2\x58\x41\x7f\x07\xb6\xb6\ \xb6\xfa\x6d\x69\x81\x62\x33\x77\x5e\xf4\x23\x36\xf6\xfe\x96\x1f\ \xbc\xf8\x9f\xcc\x9c\x51\xc7\x50\x39\x4f\x76\x77\xa5\xb6\x57\xd7\ \xf5\x63\xa2\xe2\x83\xc1\x20\xdf\xfc\xe6\x37\x89\xc5\x62\x34\x35\ \x35\xb1\x63\xc7\x0e\xce\x3d\xf7\x5c\xd6\xac\x59\xc3\xca\x95\x2b\ \x69\x6b\x6b\x43\x08\xc1\xac\x59\xb3\xc8\x64\x32\xbc\xf2\xca\x2b\ \xc7\xc6\xf6\x5a\x96\xd5\x16\x0c\x06\x2f\xf6\xf2\xd5\xd3\x2f\x09\ \x13\x8f\x6b\xe4\xfa\x6d\x7e\x33\x70\x1f\xb6\x22\x28\x0c\x38\xa4\ \xbb\x0f\x19\x4d\x5d\xd7\x7d\x37\xf4\x08\x49\xc4\x5b\xaf\xbb\xee\ \xba\xf3\xa5\x94\xb8\x48\x32\x55\xa3\x34\x4d\x0f\xe0\x66\xbc\xfa\ \x2b\x9d\x74\x22\xc7\xa9\x0d\xe7\x60\x16\x6d\x92\xc5\x24\xa7\x37\ \x5d\xc9\xb3\x5b\x9f\x21\x18\x74\x7c\x09\x55\x14\x05\xe9\x4a\xa4\ \x25\xb8\x76\xf9\x87\xf8\xef\x0d\xff\xca\xf2\xd8\x87\x58\xd9\x70\ \x23\x2b\x17\x2c\xe0\x3b\xad\x5f\x99\xd0\xfb\x7e\xb4\x80\x48\x29\ \x9d\xf1\x05\xe5\x9e\x93\xe3\xb9\xd9\x5e\xc7\x59\x77\x77\x37\x81\ \x40\x80\xda\xda\x5a\x7f\x9c\xd3\xb1\x90\x8b\x0a\x40\x75\x75\x35\ \xb6\x6d\xb3\xe3\x6b\x45\xac\x9c\x44\x68\x20\x14\x10\xaa\x57\x81\ \xa1\xa2\x69\x87\x22\xe3\xa3\x1c\xab\xa4\x27\x93\x49\x5c\xd7\x25\ \x63\x17\x99\x73\x45\x06\x5b\xad\xa8\x7d\x29\x6c\x74\x4d\x85\xa4\ \x82\x71\x20\x4a\xfe\x8d\xb1\xe1\x30\x63\xde\xd4\xf8\x12\xa0\x48\ \x38\x4c\x32\x98\xe3\xcc\x8f\x45\x38\xff\xfc\x0b\xf8\xd1\xce\xe7\ \x18\x4a\x8d\xb0\xb7\x7f\x27\xc5\x9a\xed\xa8\x54\x6a\x6c\x85\x7a\ \x74\xe3\x93\x00\x1a\x1b\x1b\x4f\x94\x52\xae\x08\x85\x42\x5c\x73\ \xcd\x35\xc4\x62\x31\x7f\x13\x6e\xdd\xba\x15\x45\x51\xd8\xb3\x67\ \x8f\x5f\xf4\x31\x30\x30\xe0\x17\x18\x1e\x2b\x20\x9c\x7c\xf2\xc9\ \x7c\xe9\x4b\x5f\xc2\xb6\x6d\x1e\x7e\xf8\x61\x0e\x1c\x38\x30\x61\ \x8e\x47\x3c\x1e\x67\x70\x70\xd0\x8f\x46\xbd\xc1\x34\x47\x9b\x81\ \x73\x5d\x17\xcb\xb1\x51\x84\x42\xba\x27\xcc\x23\x7f\xff\x3b\xfa\ \x0b\xfb\xb9\xe3\xb7\x7f\xc7\xec\xc6\x79\x74\x96\xdb\x30\xca\x21\ \x14\xfd\xd0\x44\x37\xdf\xf5\xf4\x8a\xf6\x14\x85\x40\x40\xc7\xb2\ \x0c\x34\x25\x88\xaa\x68\x04\xb4\x20\x21\xad\x42\x85\x1b\xa6\x81\ \xa2\x8a\xa3\x9e\xc7\x55\x2a\x95\x5a\x9a\x9b\x9b\xc3\x85\x42\x81\ \xaa\xaa\x2a\x9f\x32\x1a\xbf\xfe\x58\xb1\xa0\x17\x30\x1e\x35\x20\ \x2b\x56\xac\x60\xf7\xee\xdd\xfc\xf5\x5f\xff\x35\x67\x9c\x71\x06\ \x42\x08\x22\x91\x4a\x1b\xb1\x97\x0e\x2d\x16\x8b\x0c\x0f\x0f\xd3\ \xdc\xdc\xcc\xe0\xe0\xa0\x6f\x97\x8f\xf4\x41\xbd\xb9\x8d\x16\x15\ \x55\xb0\x7a\xd5\xbf\xf2\xf3\x3d\x5f\x27\x79\xa0\x9a\x05\xda\x55\ \xdc\x72\xc6\xdf\xf3\x99\x9e\xf7\x57\x5c\x5c\xa7\xa2\x72\x82\xc1\ \xa0\x3f\xdb\xd1\x75\x5d\x0c\xd3\xc4\x2a\x18\x64\xd7\x2c\xe6\x8b\ \xbf\xfa\x22\x8e\xb4\xd9\xcb\xe3\x94\x0d\x8b\xcc\xcb\x02\xe4\x0c\ \x66\xcf\x96\x20\x2a\xb9\x8a\xcb\x2f\xbf\xfc\x7f\x84\x10\xdf\x07\ \xd8\xbc\x79\x73\xc7\xde\xbd\x7b\x97\x1c\xae\x27\x98\x4e\xa7\x2b\ \x1d\xc4\x01\xb8\xe4\xdf\x1a\x50\x54\x01\xa8\x34\xd7\x9f\x40\x7f\ \xea\x00\xa3\xfb\x4c\x0e\xbc\x58\x24\xd5\x5e\x91\xe0\xaa\xaa\x2a\ \xf2\xf9\xfc\xfd\xc7\x14\x18\xfe\xfc\xe7\x3f\xe7\x03\x1f\xf8\x00\ \x77\xdf\x7d\x37\xeb\xd7\xaf\xf7\xfd\xfd\x7c\x3e\xef\xd3\x25\xa9\ \x54\x6a\x42\xaa\x54\x4a\x49\x63\x63\xe3\x97\x14\x45\xb9\xa5\xaf\ \xaf\xef\xc0\x91\x4a\x88\x83\x83\x22\x55\xa6\xd4\x4d\x61\xff\x40\ \x91\xa2\x05\x1d\xc3\xfb\x79\x72\xef\x7d\xd8\xb6\x85\x65\x55\x74\ \xa9\x69\x9a\x04\x83\x41\x4e\x3d\xf5\x54\xf6\xee\xdd\x4b\x22\x91\ \x20\x9d\x4e\x63\xba\x26\x56\xd9\xc6\x30\x2a\x53\x91\x76\xd7\x6e\ \xe6\x9c\x6b\x63\x38\xb9\xca\x1c\x45\x37\x13\xc4\xc9\x6a\x38\x19\ \x0d\x6b\x20\x18\x40\xfa\x33\x15\x83\x47\x60\x43\xd0\xf5\x4a\x3d\ \x98\xee\x2a\x0c\x6c\x36\x29\x0e\x3b\x14\x86\x1c\x5e\x1d\x48\x50\ \x4e\xb9\x95\xba\x35\x4d\xf8\xb5\x08\x63\x36\xcb\x3e\x26\x1b\xe2\ \xba\x2e\x0f\x3c\xf0\xc0\xa1\x1b\xf1\x02\x4d\x01\x99\x74\x06\xcf\ \xad\x16\xa2\xc2\xdb\x78\x63\xfd\xe6\xcc\x99\x73\x51\x26\x93\xa9\ \x07\xfe\x28\x20\xf3\xe6\xcd\x7b\x8f\xae\xeb\x42\x51\x14\x67\x78\ \x78\x38\x56\x2e\x55\x26\x7b\x5a\x8a\x4d\xbe\x3f\xc0\xae\x5d\xbb\ \x48\xe4\x0a\xa4\x07\x6c\xb2\x89\x2c\xa3\x07\x8b\xe4\x07\x2d\x4c\ \x4b\xa2\xc8\x0a\x80\x86\x61\xd0\xdc\xdc\xcc\x8e\x1d\x3b\x50\x94\ \x4a\xeb\xb4\x23\x0f\x4d\x1e\x32\x5c\x8b\x70\x2d\x28\x8e\xc6\xb4\ \xfa\x05\xc4\x67\x54\xb1\x73\x70\x03\x75\x91\xc9\x64\xe5\x10\x03\ \x0f\x36\xe0\x14\x0e\xa9\xbc\x23\x49\x2f\x57\x55\x55\xb1\x7a\xf5\ \x6a\xf6\xec\xd9\xc3\x81\x7d\x07\x08\x18\x65\x54\xc7\x21\x56\xef\ \x62\xd7\xd8\xfe\x98\x0e\x2f\x6e\xf3\xbc\xbf\x63\x89\x43\xfe\xfb\ \xe0\xc1\x83\x17\xdb\xb6\x3d\x53\x08\x41\x31\x26\x39\xf5\xf2\x6a\ \xf4\x80\xa0\x30\x52\xc5\xfb\xcf\xb8\x9e\x67\xf6\xfd\x00\x4d\xd5\ \x19\xda\x6e\x30\xb8\xb5\x84\x50\x84\x3f\xed\xe7\x1d\x1e\xb0\xe1\ \xb4\xd3\x4e\xdb\xac\xaa\xaa\x10\x42\x20\x91\x50\x5b\x82\x6c\x10\ \xe1\xa8\xb0\x11\x9e\xd8\xf8\xd4\x21\xde\x88\x1a\x76\x1c\x18\x64\ \xf4\x60\x0c\x47\xe6\xb0\x4d\xe9\x1b\x73\xaf\x16\xcc\x9b\xec\xe6\ \x9a\xae\xdf\x6a\x6d\x49\x07\x45\x55\xe8\xde\x6f\xf3\x95\x5b\xbf\ \xc2\x0f\xd6\x7e\x97\x4b\x5a\x6e\xe1\x8a\x25\x1f\xe4\x53\xcf\x5f\ \x80\x65\x5a\xd8\xa6\x73\x44\x80\x78\x69\xd9\x6f\x7f\xfb\xdb\x24\ \x12\x09\x6e\xbe\xf9\x66\x9e\x7b\xee\x39\xbf\x72\xb1\xbd\xbd\x9d\ \x65\xcb\x96\x11\x0e\x87\xd9\xb6\x6d\x1b\xdb\xb6\x6d\x63\xe9\xd2\ \xa5\x6c\xd8\xb0\xe1\x1d\xbf\xfb\x4f\x02\x92\xcb\xe5\xb6\x36\x37\ \x37\x0f\x1b\x86\x31\x53\x08\x81\xa1\x3b\xb4\x9c\x57\x8d\x9d\x92\ \xa4\x3b\x0c\x1e\xfd\xed\x03\x14\x07\x04\x56\xd1\xa2\x9c\x92\x84\ \xc2\x21\xdf\xf5\x7d\xa7\xf6\x30\x40\x2f\x97\xcb\xc2\xb6\x6d\x10\ \xb0\x35\xb2\x8b\xf7\x9e\x5f\x87\x2b\x5d\x1c\xc3\x45\xb1\x83\x48\ \x4b\xc1\xc9\xab\xe4\x5e\xab\xc1\x29\xaa\x3e\xb1\x98\x4c\x26\xfd\ \xe0\xd1\xa3\x47\x5c\xd7\xa5\xb3\xb3\x53\xbe\xf1\xc6\x1b\xe2\xd1\ \x47\x1f\x65\xdb\xb6\x6d\x15\xc7\x43\x3a\xa8\x9a\xc2\x09\xd5\x4b\ \x38\x98\xdf\xcd\x48\xf9\x20\xff\xeb\xc4\xdb\x09\x6a\x21\x42\xa1\ \x20\x96\x63\x63\x99\xbe\x1a\x7a\x47\x44\x6a\x6a\x6a\x3e\x71\xde\ \x79\xe7\x7d\xa3\xb5\xb5\x95\x47\x1e\x79\x84\x2f\x7f\xf9\xcb\xf4\ \xf5\xf5\xb1\x77\xef\x5e\x72\xb9\x9c\x4f\xd3\xac\x5d\xbb\x96\x99\ \x33\x67\xd2\xd3\xd3\x83\xe3\x38\x8c\x8e\x8e\x1e\x9f\xc1\x01\x95\ \x0d\x21\x38\xe9\xa4\x93\xe8\xee\xea\x66\xe3\xe7\xca\x48\x7b\xcc\ \x21\x16\x1a\x08\x15\xe9\x38\x84\x42\xba\xff\x72\xbc\x12\xfc\x77\ \xba\x01\xbf\x3c\x07\x49\xa0\xae\xd2\xd9\x74\xd6\xa4\x0f\xd3\x32\ \xb9\x85\xa7\x3b\xbe\xc7\xcc\xaa\x53\xd8\x9a\xfa\x0d\xf6\xc6\x30\ \xb6\x75\xa8\x8a\x64\x7c\x1b\x44\xa1\x50\xb8\x63\xff\xfe\xfd\xff\ \x3e\x69\xd2\xa4\x81\x91\x91\x91\xc6\xb5\x6b\xd7\xb2\x68\xd1\x22\ \x36\x6e\xdc\x58\xe9\xc8\x52\x5d\x92\xbf\x2f\xd3\x3b\x75\x90\x7b\ \x36\x3f\x40\x32\x97\xe0\x0b\xbf\xfb\x12\xaa\xa2\xd2\x9d\x05\x2b\ \x7f\x48\x32\x26\x4f\x9e\x7c\xc2\xb4\x69\xd3\x5e\x05\x54\xc7\x71\ \xd8\xb9\x73\xe7\x75\xc9\x64\xb2\xe7\x2d\x6c\x44\xad\xa2\x28\x9a\ \x94\x92\x4d\x9b\x36\x71\xd1\x45\x17\xf9\xe4\xe6\x5b\xd7\xfe\xfd\ \xfb\x7d\x82\x73\xeb\xd6\xad\xc4\xe3\xf1\x63\x07\xc4\xb2\x2c\x6e\ \xbd\xf5\x56\xce\x3b\xef\x3c\x0c\xc3\xe0\xb1\xc7\x1e\xf3\x07\x41\ \x7a\x9e\xd6\x9c\x39\x73\xd8\xbb\x77\xaf\x4f\x0d\x0c\x0c\x0c\x78\ \x37\xb9\x70\xda\xb4\x69\xc9\xde\xde\xde\xb7\xe3\x8a\x1c\x8f\xaf\ \x92\x02\x14\x45\xd0\xbd\xcf\xe6\xdb\x7f\x75\x13\xff\xf0\xe3\x2b\ \xf8\xe2\xc5\xdf\x27\x1e\x6e\x60\x74\x7b\x27\x83\xd6\x08\x86\xe1\ \xf8\x80\x7b\xc4\xe1\xb8\x2a\x49\xa9\xaa\x2a\xb7\xde\x7a\x2b\x9f\ \xff\xfc\xe7\xb9\xff\xfe\xfb\xfd\x09\x3c\xb6\x70\xd1\x8a\x1a\xb1\ \x13\xaa\x28\x65\x2c\x0a\x96\x60\x64\xd9\x56\xe2\xb1\x10\x93\x46\ \xc2\xd8\xf5\x41\xdc\xb2\x8a\x34\x14\xa4\xa9\x84\x91\xe2\x4c\x2f\ \xf7\xfd\xe6\x9b\x6f\x86\xde\x4e\x5d\x8d\x4f\x5b\x2b\xaa\x4a\xb8\ \x4a\x23\x10\x14\x87\x3a\xa6\x04\xd8\x25\x17\xbb\xa4\xf8\x36\x57\ \x51\x14\x4a\xa5\x92\x65\x9a\x66\xe2\x98\x00\x71\x1c\x87\xd9\xb3\ \x67\x93\x4c\x26\x39\xe5\x94\x53\x08\x85\x42\x9c\x72\xca\x29\x44\ \xa3\x51\xa2\xd1\x28\x3f\xf9\xc9\x4f\xa8\xa9\xa9\xe1\xcc\x33\xcf\ \x24\x9d\x4e\xb3\x6e\xdd\x3a\x02\x81\x00\xb6\x6d\xf3\x9e\xf7\xbc\ \xe7\xe1\xf6\xf6\xf6\x1f\xf7\xf6\xf6\xde\x34\x46\x36\x36\x01\xab\ \x01\xd3\x75\xdd\xea\xde\xde\xde\x4a\x01\x32\x60\x5a\x26\xf9\x6c\ \x8c\x3b\xef\xfc\x1a\x3d\xed\x59\x1e\x1f\x7a\x86\x4c\x21\xc3\x2b\ \x7d\x6f\x52\xe8\x0a\x13\xd3\x6b\x3d\xb6\x94\xaa\xaa\x2a\x72\xb9\ \xdc\x84\xd1\x17\x42\x08\xda\xda\xda\xb8\xe9\xa6\x9b\xc8\xe5\x72\ \x54\x55\x55\x55\x66\x09\x0b\x17\xdc\xb1\x39\xed\xc0\x90\x36\xc2\ \xc2\x85\x01\x6c\xcb\x84\xa6\x89\x23\x93\xb2\x9b\xc7\x2a\x1e\x85\ \xf4\x0b\x23\xfe\x18\xf1\xd9\xd0\xd0\x30\xd6\x82\x00\xb5\xe7\x04\ \x59\x7c\x5a\x8c\xa1\xed\x65\x46\xf7\x59\x8c\xee\x36\x71\xed\xb7\ \x75\x04\x0e\x0c\x0e\x0e\xde\x77\x4c\x80\x44\x22\x11\xee\xbc\xf3\ \x4e\xce\x3c\xf3\x4c\xee\xb9\xe7\x1e\x8a\xc5\xe2\x84\xec\x97\x69\ \x9a\xac\x5d\xbb\x16\xdb\xae\x64\xf4\x82\xc1\xa0\xff\xef\xde\xf0\ \x2e\x6f\x8d\x8c\x8c\xac\xba\xf2\xca\x2b\x3f\xef\x51\xf4\x19\xb3\ \x28\x6b\x67\x3b\x42\x26\xc3\xb8\xc9\x00\xd8\x92\x3d\x6f\x76\x32\ \x59\x59\xc0\xa6\x8d\x95\xe9\xdc\xd3\xb4\xe5\x74\xba\x1d\x7e\x8e\ \x3a\x12\x89\x10\x0c\x06\xfd\x91\x47\xe3\xa8\x97\x7b\x86\x87\x87\ \xab\x84\x10\x6e\xb9\x5c\x5e\x2e\x84\xb8\xb8\x5c\x2e\xe3\x28\x2e\ \xa1\x50\x78\xac\xe2\x51\x80\x2a\x31\x4d\x87\x0f\xcc\xbc\x93\xee\ \xec\x2e\x4e\x9a\xb5\x98\xff\x7a\xee\x3e\xec\xba\x76\x1c\x27\x82\ \x65\x5a\xa0\xc8\xb7\x8d\xe2\x03\x81\xc0\x6c\x29\x65\x9d\x37\x48\ \x61\xd1\xa2\x45\x04\x02\x01\xfa\x5e\xeb\x65\xe7\xcb\x12\x49\x00\ \x29\x75\x62\x91\x90\xaf\x52\xbd\x5f\x5e\x61\xc8\x31\xab\x2c\xdb\ \xb6\x83\x8a\xa2\xf0\xda\x6b\xaf\x55\xf4\xa1\x64\xc2\x64\x05\x21\ \xc0\xb6\x1c\x84\x52\x31\xe6\x5e\x2e\xa2\x50\x28\x4c\x18\x2c\xec\ \x3d\x93\x33\x6e\x50\x72\x76\x61\xa7\x98\x79\x46\x14\xcb\x35\x71\ \x1c\x17\x25\x17\xab\xc4\x07\xde\xec\xdc\x31\xf7\xd2\x9b\x17\x2c\ \xa5\xf4\xe9\xfe\xfa\xfa\x7a\x12\x89\x43\xd2\x9f\x4c\x26\xbf\xe6\ \x19\xfb\xc9\x93\x27\x7f\x4c\xd3\xb4\x8b\xa5\x94\x08\x1b\xb0\x5d\ \xff\x50\x00\xcb\x34\x48\xec\x93\x54\x35\x57\xf3\xfc\x9b\x3f\xc6\ \x3a\xf0\x31\x16\x28\x67\x12\x53\x56\xf0\x58\xef\x4f\xc9\x8d\x06\ \x40\x48\x6f\xf0\xd8\x29\x81\x40\xa0\x5e\x55\x55\x51\x2a\x95\x76\ \x5f\x72\xc9\x25\xed\x3d\x3d\x3d\x58\x96\x25\x6b\x6b\x6b\xc5\x3f\ \xff\xf3\x3f\xb3\x78\xf1\x62\xee\xbd\xf7\x5e\xf6\xed\xdb\xc7\xe2\ \xc5\x8b\x79\xf3\xcd\x37\x69\x69\x69\xa1\xbf\xbf\x9f\x74\x3a\xcd\ \x94\x29\x53\x90\x52\xb2\x7d\xfb\x76\xd2\xe9\xf4\xb1\x03\x72\xe0\ \xc0\x81\xbf\xcb\xe5\x72\x9b\xd4\x31\x7e\x22\x1f\x72\x39\xff\x96\ \x3a\xca\x59\x07\xbb\x24\x29\xa5\x5c\xd2\x5d\x16\x99\x03\x36\xee\ \x38\xa0\x26\x4d\x9a\xe4\xd1\x2b\x55\xb1\x58\x6c\x46\x3e\x9f\x3f\ \x00\xb8\xe3\x77\x4a\x38\xa2\x61\x14\x25\x97\xcf\xfc\x27\x26\xd7\ \xd5\xf2\xf3\x3d\xdf\x20\x56\xd7\x48\xa2\xf9\x00\xc9\xf5\x21\x5f\ \xf7\x3a\x8e\x43\x3a\x9d\x46\x4a\x49\x38\x1c\xc6\xb2\x2c\x06\x06\ \x06\xbc\x06\x98\xb7\xf3\x1c\x54\x4d\xd3\x58\xbd\x7a\x35\xf9\x7c\ \x9e\x1f\xff\xf8\xc7\x7e\x02\xad\xae\x5c\x45\x68\xeb\x1c\xee\xda\ \x7c\x17\xaa\x32\x87\xdf\x06\x9e\x20\xa4\xeb\x48\x43\x65\x8a\xb3\ \x98\xa6\x13\xbd\x9d\x26\xb9\xfa\xea\xab\x7f\xee\x55\x8e\xac\x59\ \xb3\x66\xaa\x57\x13\x6c\xdb\xb6\x37\x8f\xd7\x1f\x36\xe3\xba\x2e\ \x93\x27\x4f\x66\xfa\xf4\xe9\x94\xcb\x65\x66\xcc\x98\xc1\xba\x75\ \xeb\xfc\x64\xde\xce\x9d\x3b\x8f\x8f\x97\x65\x59\xd6\xd6\x40\x20\ \x20\x3d\x35\x13\x01\x76\xfe\xc0\x7c\x4b\x6e\x5d\x27\xa4\xeb\xa0\ \x1f\x8a\x62\x35\x4d\xc3\xb2\x2c\x1a\x1b\x1b\xff\x7a\xc9\x92\x25\ \x97\xbd\xf8\xe2\x8b\x5f\xb5\x2c\xeb\xe4\xbe\xbe\xbe\x43\x63\x9d\ \xde\x28\xa0\xb5\x57\xb3\xeb\xc4\x36\xbe\xb1\xf9\x19\x66\x4e\x99\ \x89\x1e\x9f\x42\xdb\xe0\x4e\xf2\x43\xae\x5f\x1c\xf0\x16\xd1\x2f\ \x77\x74\x74\x3c\x34\x96\xf1\x33\x34\x4d\x7b\xe5\xed\x72\x29\xef\ \x7b\xdf\xfb\xa8\xaf\xaf\xe7\xb6\xdb\x6e\xe3\xd1\x47\x1f\xf5\x53\ \xba\xae\x74\x29\x9b\x15\xb5\xbb\x21\xdd\xca\x7b\x6f\x0d\x4f\x18\ \x33\x65\x0d\x07\x30\x7b\xc2\x98\x07\xc3\x38\x39\x8d\xf1\xb3\x54\ \xbc\x2a\x7a\x2f\xc6\xb9\xed\xb6\xdb\x08\x06\x83\x94\x4a\x25\xa4\ \x94\x7c\xff\xfb\xdf\x9f\xd0\x7f\x22\xa5\x64\xf7\xee\xdd\xb4\xb6\ \xb6\x1e\x36\x89\x79\x58\xed\xa7\xae\xeb\xf2\xd1\x8f\x7e\x94\x73\ \xce\x39\x87\x8e\x8e\x0e\x76\xee\xdc\x49\x67\x67\xa7\x3f\xdb\xc3\ \x34\x4d\x4e\x3f\xfd\x74\xf6\xef\xdf\xcf\x9e\x3d\x7b\x98\x3d\x7b\ \x36\x1d\x1d\x1d\x7e\x26\xb1\x5c\x2e\xeb\xe7\x9e\x7b\xee\xbf\x2a\ \x42\x61\x58\x1b\x96\xd3\x4f\x12\xc2\x1c\x0c\x63\x0f\x07\x71\x53\ \x3a\x3b\x36\xee\xa5\x45\x3d\x11\x67\xc4\xa5\x77\x78\x90\x26\x6d\ \x29\xeb\x13\xaf\xfb\xbd\xe0\x5e\x71\xc0\x18\x91\x98\x4f\x24\x12\ \x1f\xfd\x93\x0f\xa5\x69\xbc\xf2\xca\x2b\xac\x59\xb3\x86\x91\x91\ \x11\x8a\xc5\xa2\x3f\x4f\xd7\x2b\x0b\x02\x28\x0a\x93\x68\x6d\x0c\ \x92\xd3\xb8\xfd\x92\x2f\xf1\x8b\xd6\xff\x64\x24\x32\x82\x3d\x37\ \x4b\x62\xb3\x45\xea\xe5\x2a\x54\xad\xd2\xb2\x7d\xd6\x59\x67\xad\ \xf3\x00\x29\x95\x4a\x84\xc3\x95\xf3\x4e\x8a\xb9\x4a\x39\xa9\x50\ \x15\x94\x3f\x5e\xd6\x2c\x01\x91\x4a\xa5\xa2\xc7\x05\x10\x29\x25\ \xd7\x5c\x73\x0d\x5b\xb6\x6c\x61\xd5\xaa\x55\x24\x12\x09\x16\x2d\ \x5a\xc4\xf6\xed\xdb\x69\x68\x68\xa0\xb3\xb3\x93\x9a\x9a\x1a\x16\ \x2e\x5c\x48\x20\x10\xa0\xbd\xbd\xdd\x1f\x00\xe9\xbd\x80\xfe\xfe\ \x7e\x1c\x29\xa9\xbe\x3e\x2f\xc2\x8b\x63\x84\x97\x66\x41\x91\x48\ \x53\xc1\x4e\x6b\xb8\x59\x9d\xd4\xf3\xb5\x38\x96\x8b\xe6\x1e\xaa\ \x2e\xf1\x06\xa7\xd5\xd5\xd5\x4d\x98\x35\xff\x4e\x91\x74\xb1\x58\ \xe4\x9c\x73\xce\xf1\xc1\xf4\xf4\x77\x5d\x5d\x9d\xff\xbd\x4d\x3d\ \x2a\x7b\xbf\x5c\x87\xed\x66\xf8\x9b\xff\xfc\x18\x02\x9d\x40\x40\ \x45\x1a\x51\x14\x5d\x22\x74\x13\xd5\x55\xbc\xd1\xb8\xb3\x0c\xc3\ \xc0\xb6\x6d\xaa\xab\xab\x2b\xc9\x27\x04\xb5\x4b\x82\xe8\x08\xf2\ \x03\x0e\x46\xc6\x9d\x30\x9c\xc8\x93\x0a\x4d\xd3\x44\x36\x9b\x7d\ \xc3\xb6\xed\xf7\x1e\x17\x40\x74\x5d\xe7\xfa\xeb\xaf\xe7\xae\xbb\ \xee\xe2\xeb\x5f\xff\x3a\xdd\xdd\xdd\x13\x4e\xd2\x29\x16\x8b\x74\ \x75\x75\x91\xcb\xe5\xfc\x29\x9d\xaa\xaa\x92\xcd\x66\xa9\xad\xad\ \xc5\x75\x5d\x7f\xc8\xc0\xc0\x03\x36\x6f\x28\xde\xb0\x49\x65\x1c\ \x65\x61\x52\xb4\xda\x68\x69\x69\x99\x90\xb7\xf7\x26\xea\x7c\xf4\ \xa3\x1f\xe5\xfe\xfb\xef\x3f\xac\x32\x23\xc3\x30\x72\xb6\x6d\x77\ \x7b\x75\x5d\x42\x88\xe9\xaa\xaa\x0a\x4f\xda\xfd\x89\xa8\x01\x8d\ \x9a\x49\x31\x2c\xcb\x62\xb4\x6c\x53\x7d\xe9\x10\xb5\x93\x74\x64\ \x49\xc3\x1c\x0a\x52\xec\x08\x40\x22\xea\x57\x4e\x7a\xf1\x47\x28\ \x14\xe2\x13\x9f\xf8\x04\xc9\x64\x92\xed\xdb\xb7\x57\x1a\x95\x6a\ \x2d\x64\xfc\x90\xf3\xe1\xfd\xee\x15\x5d\x94\x4a\xa5\x72\x22\x91\ \x48\x1d\x17\x40\xbc\xb9\x8a\x5f\xf8\xc2\x17\xfe\xe8\x67\xf2\xf9\ \xbc\x4f\xcd\x4b\x29\x19\x3b\xb1\xcc\x67\x81\x87\x86\x86\x2a\x85\ \xda\x93\xe3\xa8\xaa\x4a\x5b\x5b\x9b\x3f\xcb\x77\xf1\xe2\xc5\x63\ \xd4\x47\xd9\xcf\x71\xd8\xb6\xed\xe7\x0e\xaa\xaa\xaa\xfc\xf9\x86\ \x87\x03\x48\x3a\x9d\x7e\x70\xd3\xa6\x4d\x0f\x7a\x3f\x4f\x9f\x3e\ \xdd\x52\x55\x55\x3b\xf1\xc4\x13\xe9\xee\xee\xf6\x81\xf6\x5e\x98\ \x61\x18\x24\x7b\x46\x68\x5e\x7f\x12\xd9\x52\x89\x75\xeb\xd6\xa1\ \x69\x1a\xcb\x97\x2f\xa7\xa1\xa1\x81\x36\xa5\x7d\xc2\x09\x3a\x17\ \x5e\x78\x21\x93\x27\x4f\xe6\x33\x9f\xf9\x0c\x8f\x3c\xf2\x08\x2f\ \xbf\xfc\x32\x97\x5d\x76\x19\xbf\xff\xfd\xef\x99\x35\x6b\x16\xc3\ \xc3\xc3\x6c\xd8\xb0\x81\x58\x2c\xc6\xa9\xa7\x9e\xca\x73\xcf\x3d\ \x77\xd8\xa4\xe5\x61\x01\x92\x4a\xa5\xfe\x2a\x9b\xcd\x7e\xa3\xa6\ \xa6\x66\x51\x3e\x9f\xf7\xcb\xfb\xc7\x1b\xaa\xb7\x1a\x2d\xaf\xc8\ \xce\x03\xc5\xcb\x75\x54\x55\x55\x11\x08\x04\x68\x6a\x6a\x62\xe6\ \xcc\x99\x0c\x0c\x0c\x4c\x38\xbf\x6a\xfc\x31\x42\xe3\x8b\x93\xbd\ \xe1\x68\x47\x93\xfc\x92\x52\xb2\x6e\xdd\x3a\x86\x86\x86\x58\xbd\ \x7a\xb5\x1f\x4b\x79\x52\xe8\x79\x4a\xb6\x6d\x93\x4e\xa7\x39\xeb\ \xac\xb3\x88\xc5\x62\x24\x93\x49\x32\x99\xcc\xf8\x53\xd8\x30\x4d\ \x93\xbd\x7b\xf7\x72\xdb\x6d\xb7\x31\x32\x32\xc2\x8e\x1d\x3b\x70\ \x5d\x97\xed\xdb\xb7\xe3\xba\x2e\xfb\xf6\xed\xf3\x9f\xbd\x50\x28\ \x30\x38\x38\x78\x44\x2c\xf2\x61\x01\x92\x4c\x26\x7f\x5d\x57\x57\ \xf7\xcf\xcb\x97\x2f\x67\xf5\xea\xd5\x74\x77\x77\xb3\x79\xf3\x66\ \xba\xba\xba\x08\x04\x02\x7e\xe2\x7e\xea\xd4\xa9\xf4\xf5\xf5\x91\ \x4e\xa7\x99\x34\x69\x92\xcf\x7e\xfa\x25\x3d\xe3\x62\x10\xcb\xb2\ \xc8\xe7\xf3\x3e\x4d\x3e\xfe\x40\xb1\xf1\xb3\x73\xc7\x5e\x5c\x6a\ \x60\x60\xe0\xe1\xb1\xff\x37\x72\x34\x65\x45\x86\x61\xf8\x52\x9b\ \xcd\x66\xfd\xef\x1f\x3f\x74\xdf\x53\x4b\xa6\x69\xfa\x07\xd5\x78\ \xff\xe6\xfd\xbd\xe3\x38\x8c\x8c\x8c\xb0\x6a\xd5\x2a\x5f\x9d\x43\ \xa5\x9b\xca\x1f\xeb\x31\x6e\x83\xbe\xf1\xc6\x1b\x47\xd4\x42\x77\ \x24\xe7\x87\x88\x8f\x7f\xfc\xe3\x0c\x0e\x0e\x72\xed\xb5\xd7\x62\ \xdb\x36\xb3\x67\xcf\xa6\xaf\xaf\x0f\xdb\xb6\xa9\xab\xab\x43\x88\ \x4a\x32\xa6\xbd\xbd\x9d\x62\xb1\x48\x30\x18\xf4\x87\x24\x7b\xb6\ \xc0\x03\xc4\x2f\xf3\x19\x03\x61\xbc\x24\xa9\xaa\x4a\x20\x10\xa0\ \xa5\xa5\xc5\x9b\x3b\x35\xd2\xd9\xd9\xf9\x89\xf1\x31\xce\xf8\xa0\ \xf0\x70\x54\xee\xc5\x17\x5f\xcc\x45\x17\x5d\xc4\xf0\xf0\xb0\xaf\ \xb2\x42\xa1\x90\x9f\x8a\xf6\xd4\xd7\x78\x06\x60\xfc\xe1\x67\xde\ \xdc\xc9\xb1\x0d\x3a\x81\x4c\x1c\x5f\x72\xfb\x76\xd7\x96\x52\x76\ \x49\x29\xfb\x8e\x37\x20\x7c\xfa\xd3\x9f\xe6\xa1\x87\x1e\xe2\x67\ \x3f\xfb\x19\x2f\xbe\xf8\xe2\x84\xf3\x38\x0c\xc3\x20\x1a\x8d\xfa\ \x65\xf7\xde\x91\x0e\x9e\x6b\xec\xa9\xaf\xf1\xa7\xd5\x8c\x3f\xe9\ \xcd\x7b\x21\xc5\x62\xd1\xaf\x32\x9c\x3a\x75\x2a\xe9\x74\xfa\x0f\ \x28\x87\x23\x01\xc3\x53\x59\x4d\x4d\x4d\xec\xde\xbd\xdb\x57\xb7\ \x9e\x5a\x1c\x7f\x14\x85\xf7\x67\x4f\x5a\xc7\xd7\x54\x99\xa6\x89\ \xae\xeb\xdc\x71\xc7\x1d\x5c\x70\xc1\x05\xfc\xfb\xbf\xff\xbb\x97\ \x5f\xf7\x59\x6b\x4f\xda\xab\xaa\xaa\xfc\x41\x3d\x52\x4a\x76\xed\ \xda\x35\xeb\xb8\x4b\x88\xe7\x3e\x7e\xf0\x83\x1f\x9c\xd0\x53\x38\ \xde\x76\x78\x93\x9d\x3d\xfd\x59\x55\x55\xe5\x9f\xc4\xe3\xed\x4a\ \x8f\x23\xf2\xa4\xc5\xf3\x46\x3c\x8a\xc4\xa3\xab\xa5\x94\x13\x06\ \x80\x1d\xcb\x4a\xa7\xd3\xb3\x36\x6f\xde\x8c\x65\x59\xf9\xe9\xd3\ \xa7\x77\xac\x5a\xb5\xaa\xf6\x53\x9f\xfa\x14\x37\xdf\x7c\x33\xf9\ \x7c\xde\xef\xb5\xf7\xdc\x5a\x6f\x1c\xdf\x78\x9a\x3f\x93\xc9\x30\ \x7b\xf6\x6c\xce\x3d\xf7\x5c\xa2\xd1\x28\xe7\x9c\x73\x0e\x1b\x36\ \x6c\xe0\x92\x4b\x2e\x61\xcd\x9a\x35\x5c\x79\xe5\x95\x3c\xf9\xe4\ \x93\x2c\x5c\xb8\x90\xda\xda\x5a\x54\x55\xe5\xb9\xe7\x9e\x9b\x30\ \xed\xfa\x78\x03\xf2\x8b\xee\xee\xee\xed\x8a\xa2\xac\x7e\xef\x7b\ \xdf\x8b\xa2\x28\xb4\xb7\xb7\x63\x18\x86\x3f\xef\xdc\xd3\xb7\x35\ \x35\x35\x38\x8e\xe3\x0f\x94\x14\x42\x90\x4a\xa5\xfc\x01\xf5\xe3\ \x55\x96\x57\xd1\xe7\x7d\x6e\xac\x5a\x5d\x3a\x8e\x23\x6c\xdb\xa6\ \xa6\xa6\x86\x4c\x26\xa3\x1e\x23\x20\x7e\x4e\xa3\x58\x2c\xba\x77\ \xdd\x75\x17\xeb\xd7\xaf\xa7\xba\xba\x9a\x91\x91\x11\x7f\xf7\x8f\ \xb7\x67\x1e\xd5\x32\x3e\xd1\x96\xcb\xe5\xd8\xbd\x7b\x37\x0d\x0d\ \x0d\x78\xe7\xff\x7a\x6e\xef\xd6\xad\x5b\xb1\x6d\x9b\x9e\x9e\x1e\ \x7f\x10\x8d\x37\x92\xe9\x88\xec\xdd\xe1\x7c\xc8\x3b\xab\x0f\xd0\ \x96\x2c\x59\x62\x6d\xdd\xba\x95\x9d\x3b\x77\xd2\xd3\xd3\xc3\x96\ \x2d\x5b\x58\xb1\x62\x05\x3f\xf8\xc1\x0f\xb8\xf0\xc2\x0b\xe9\xec\ \xec\x24\x18\x0c\x32\x7f\xfe\x7c\x3a\x3b\x3b\x79\xf5\xd5\x57\xc9\ \x66\xb3\x0c\x0f\x0f\x13\x8b\xc5\xfc\x72\x53\xef\x04\x01\x29\xa5\ \xdf\x9f\x18\x8d\x46\xfd\x03\x51\x06\x07\x07\x13\xe5\x72\xf9\xe5\ \x31\xbb\xb4\x67\x64\x64\xe4\x8b\x1c\x87\x75\xe2\x89\x27\x26\x6e\ \xbc\xf1\xc6\xfa\x4b\x2f\xbd\x94\xcf\x7e\xf6\xb3\x0c\x0c\x0c\x50\ \x2a\x95\xfc\x39\xed\x85\x42\x81\x29\x53\xa6\xf8\x07\x9c\x79\xe3\ \x6f\x55\x55\x65\xe6\xcc\x99\x64\x32\x19\xff\xb4\x87\xb7\x73\x1e\ \xde\x9a\xe6\xb5\x6d\x9b\x37\xdf\x7c\x53\x1c\x57\x09\x19\xa7\xc3\ \x15\xcb\xb2\x78\xf8\xe1\x87\xb9\xec\xb2\xcb\x78\xf4\xd1\x47\x49\ \x26\x93\xbc\xf0\xc2\x0b\x48\x29\x19\x1c\x1c\x64\xdf\xbe\x7d\x95\ \xb3\xa5\xba\xbb\x27\x64\x10\xbd\xc1\x2f\xe9\x74\x9a\x60\x30\xe8\ \x0f\x4f\x8e\x46\xa3\xbe\xd4\x18\x86\xc1\xec\xd9\xb3\xc9\x64\x32\ \x28\x8a\xb2\x2b\x93\xc9\x5c\xc3\x71\x5e\xba\xae\xf3\xe4\x93\x4f\ \xf2\xd4\x53\x4f\x91\xcf\xe7\x99\x3c\x79\x32\x9f\xfd\xec\x67\xf9\ \xf4\xa7\x3f\xed\x0f\x4b\xf3\x46\x8d\xc7\xe3\x71\x9f\x36\xff\xfc\ \xe7\x3f\xcf\x7d\xf7\xdd\xe7\x8f\x05\xf4\xc8\x4e\x4f\x9d\xd7\xd5\ \xd5\x91\xcf\xe7\x49\xa5\x52\x34\x36\x36\x32\x3c\x3c\x8c\x65\x59\ \x7d\x8a\xa2\xe4\xff\x2c\x2a\xcb\x5b\xa1\x50\x88\x7b\xee\xb9\x87\ \xfb\xee\xbb\xcf\x8f\x13\x3c\x75\xd3\xdd\xdd\x8d\x10\xc2\x1f\x76\ \xe6\xdd\x6c\x55\x55\x95\x4f\xc5\x7b\x27\x2d\x7b\xb6\xc6\x3b\xef\ \xd0\x8b\x3f\xf6\xec\xd9\x73\x5c\xfb\x00\xdf\xba\x46\x47\x47\x5f\ \x09\x87\xc3\xd5\x63\xf7\xb6\xf2\x1b\xdf\xf8\x46\xe4\xb5\xd7\x5e\ \xf3\xef\xcd\xb3\x61\xe3\x8f\xde\x70\x5d\x97\x55\xab\x56\x31\x75\ \xea\x54\x96\x2d\x5b\xc6\xd3\x4f\x3f\x4d\x75\x75\x35\x5b\xb6\x6c\ \xa1\xb9\xb9\x99\xad\x5b\xb7\xb2\x72\xe5\x4a\x0a\x85\x02\xed\xed\ \xed\x1c\x3c\x78\x90\x68\x34\x4a\x6f\x6f\xef\xe5\xdd\xdd\xdd\xdb\ \x8f\xa4\x0b\xe0\x48\xad\xa5\x36\x73\xe6\xcc\x27\xa3\xd1\x68\x40\ \xd7\xf5\x0b\x4f\x3c\xf1\x44\x42\xa1\x10\xaa\xaa\xb2\x6f\xdf\x3e\ \xbf\x05\x39\x1c\x0e\xfb\xd3\x0d\x42\xa1\x90\x7f\x1c\x50\x26\x93\ \x21\x97\xcb\x4d\xe0\xb9\x82\xc1\x20\x17\x5e\x78\x21\x2f\xbf\xfc\ \x32\xde\xbc\x75\x21\x04\xed\xed\xed\xaf\x0f\x0c\x0c\x9c\x79\x3c\ \xc1\x18\xb3\x47\xfe\xcf\x73\xe7\xce\xdd\x7b\xed\xb5\xd7\xce\xbb\ \xf9\xe6\x9b\xb9\xfc\xf2\xcb\x59\xb6\x6c\x19\x2d\x2d\x2d\x3c\xf9\ \xe4\x93\xbe\x6a\xfd\x87\x7f\xf8\x07\x1e\x79\xe4\x11\x0c\xc3\xe0\ \x86\x1b\x6e\x60\xd3\xa6\x4d\x8c\x8e\x8e\xfa\xae\xb0\xd7\x93\xa2\ \xeb\xba\x7f\x0c\x47\x30\x18\x44\xd7\x75\xba\xbb\xbb\x97\x1d\x3c\ \x78\x70\xcb\x91\xdc\xe3\x91\xf6\x9f\xd9\x5d\x5d\x5d\x97\xb7\xb6\ \xb6\x5e\x17\x0a\x85\x38\xf3\xcc\x33\xf9\xc2\x17\xbe\x40\x34\x1a\ \xa5\xb9\xb9\x99\xa9\x53\xa7\x52\x55\x55\xc5\x8c\x19\x33\xa8\xa9\ \xa9\xa1\xae\xae\x8e\x48\x24\x82\xeb\xba\x7e\xa0\xb5\x72\xe5\x4a\ \x02\x81\x00\x0d\x0d\x0d\xc4\xe3\x71\x82\xc1\x20\xd1\x68\x94\xb1\ \x81\xcd\x6f\x6e\xdf\xbe\xfd\x9f\xb6\x6f\xdf\xfe\x19\xe0\x2b\xc7\ \x5b\x3a\xc6\x83\x31\x26\xa1\xca\x0b\x2f\xbc\xc0\x25\x97\x5c\x82\ \x10\x82\x7b\xee\xb9\xc7\x3f\x9f\x70\xc3\x86\x0d\x18\x86\xc1\x15\ \x57\x5c\x41\x22\x91\x40\xd7\x75\x7e\xf9\xcb\x5f\xd2\xdd\xdd\x4d\ \xa1\x50\xa0\x58\x2c\x4e\x38\x39\xc7\x73\xed\x43\xa1\x90\xf4\xcb\ \x91\x5c\xf7\x88\xdd\xc3\xa3\x3a\x2d\x5a\xd3\xb4\x80\x10\x82\x07\ \x1f\x7c\x90\x87\x1e\x7a\xe8\x0f\xfe\xfd\xe0\xc1\x83\x7f\xd4\x39\ \x78\xab\x1b\xeb\x38\x0e\xbf\xfd\xed\x6f\xbd\x49\x6f\xbb\x72\xb9\ \xdc\x7f\x02\xef\x58\xb6\x7f\x3c\x56\x36\x9b\x95\x9e\x8a\x12\x42\ \xf0\xfc\xf3\xcf\x73\xfa\xe9\xa7\xb3\x63\xc7\x0e\x36\x6c\xd8\x40\ \x7d\x7d\x3d\x0f\x3e\xf8\x20\x0f\x3e\xf8\x20\x77\xdf\x7d\xb7\xef\ \xba\x7b\x41\xaf\x77\xc2\x90\x97\xbe\x1e\x53\x6f\xa2\xad\xad\xed\ \x5c\xc7\x71\xf6\xd4\xd5\xd5\x25\x8e\xf4\x9e\x8e\xca\xc1\x0f\x85\ \x42\xb1\xba\xba\xba\xcf\x85\x42\x21\x17\xb8\x2a\x1c\x0e\x2f\x3e\ \x1c\xbd\xef\x4d\x7a\xf0\xa6\x3c\x7b\x99\x36\xcf\xdf\x4f\xa7\xd3\ \x6b\x7a\x7a\x7a\xde\xcf\x5f\x7e\x45\x16\x2f\x5e\x5c\xf0\xfa\x45\ \x74\x5d\x67\xe9\xd2\xa5\xec\xdb\xb7\xcf\x77\xc9\x0f\xc7\x7d\xf5\ \xf8\xb1\xed\xdb\xb7\xcf\x2d\x14\x0a\xed\x47\x73\x23\xc7\x3c\x38\ \xaa\xb9\xb9\xf9\xe7\x4d\x4d\x4d\xd7\x1e\xce\x5c\x73\x0f\x14\x8f\ \xce\xae\xa9\xa9\xa1\x50\x28\x14\x5b\x5b\x5b\xa3\xe3\xbe\x8f\xfe\ \xfe\xfe\xbf\x34\x20\xc1\x96\x96\x96\x6d\xf1\x78\x5c\xe4\xf3\xf9\ \x48\x63\x63\xe3\x09\x52\x4a\x0a\x85\xc2\x61\x8f\x90\x2d\x14\x0a\ \x98\xa6\x79\x9f\xeb\xba\x56\xb9\x5c\xfe\x8f\xa1\xa1\xa1\xd1\xff\ \x2b\x80\x00\x81\xb1\xef\x09\x86\x42\xa1\xa5\x87\x1b\xd7\x78\x51\ \x7b\x38\x1c\x4e\x64\x32\x99\x5d\xfc\x3f\xb2\x82\xc1\x60\x6d\x38\ \x1c\xfe\x47\xd7\x75\x9d\x23\x60\x08\x64\x20\x10\x48\x9e\x7c\xf2\ \xc9\xff\xf3\xc2\x0b\x2f\x48\xde\x5d\xef\xae\x77\xd7\xbb\xeb\xdd\ \xf5\xee\x7a\x77\xbd\xbb\xde\x5d\xff\x8f\xad\xff\x03\x21\xf6\x70\ \xa0\xc1\x03\x97\x85\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x7e\xd7\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ \x01\x00\x00\xff\xdb\x00\x43\x00\x04\x02\x03\x03\x03\x02\x04\x03\ \x03\x03\x04\x04\x04\x04\x05\x09\x06\x05\x05\x05\x05\x0b\x08\x08\ \x06\x09\x0d\x0b\x0d\x0d\x0d\x0b\x0c\x0c\x0e\x10\x14\x11\x0e\x0f\ \x13\x0f\x0c\x0c\x12\x18\x12\x13\x15\x16\x17\x17\x17\x0e\x11\x19\ \x1b\x19\x16\x1a\x14\x16\x17\x16\xff\xdb\x00\x43\x01\x04\x04\x04\ \x05\x05\x05\x0a\x06\x06\x0a\x16\x0f\x0c\x0f\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\xff\xfe\x00\ \x10\x54\x69\x6d\x65\x20\x66\x6f\x72\x20\x4c\x75\x6e\x63\x68\xff\ \xc0\x00\x11\x08\x02\x00\x02\x00\x03\x01\x22\x00\x02\x11\x01\x03\ \x11\x01\xff\xc4\x00\x1b\x00\x00\x02\x03\x01\x01\x01\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x02\x03\x01\x04\x05\x00\x06\x08\xff\ \xc4\x00\x44\x10\x00\x02\x01\x02\x04\x04\x04\x03\x07\x02\x04\x05\ \x04\x01\x05\x01\x01\x02\x03\x00\x11\x04\x12\x21\x31\x05\x41\x51\ \x61\x13\x22\x32\x71\x42\x81\x91\x14\x23\x52\xa1\xb1\xc1\xd1\x62\ \xe1\x06\x33\x72\xf0\x24\x43\x82\x92\xf1\x15\x53\x73\xa2\x25\x34\ \x35\x54\x63\x93\xa3\xff\xc4\x00\x19\x01\x01\x01\x01\x01\x01\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x03\x04\x05\ \xff\xc4\x00\x21\x11\x01\x01\x01\x00\x03\x01\x01\x01\x00\x03\x01\ \x01\x00\x00\x00\x00\x00\x01\x11\x02\x21\x31\x41\x12\x51\x22\x32\ \x61\x71\x42\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\ \x00\xfa\x73\xfc\x3c\xe0\xa6\x23\x07\x32\x67\x92\x16\xcc\xb9\xc5\ \xcd\xbf\x5a\xb1\x32\xca\xaa\x5e\x17\xce\xa0\x7a\x1f\x5b\x0e\xd5\ \x9f\x23\xb2\xc9\xf6\x98\x6e\x1c\xa8\x0c\x47\x50\x74\x3f\x3a\xbd\ \x82\xc5\x26\x29\x43\x0b\x09\x47\xa9\x3a\xfb\x57\xca\x97\xe3\xd5\ \x7f\xae\x86\x48\xa6\x8b\x35\x95\x18\x1b\x10\x4f\xe9\x44\x6e\x0d\ \x8d\xfe\xa6\xaa\x4e\xf2\x61\x84\xb0\xe5\xf2\x48\x6e\x1a\x9b\x83\ \x90\xcb\x85\xbb\x6a\x50\xe5\xbf\x5a\x74\x58\x6f\x97\xa0\xa9\x0a\ \x0d\xb5\x00\x93\x61\xae\xe6\x80\x9a\xe6\xf3\x44\xc8\x5b\x2d\xfd\ \x27\xa1\xa8\x0d\x49\xd8\xb1\xa6\x21\x1c\xd4\x30\x3b\x83\xad\xe9\ \x7e\x73\x1a\x99\x4a\x99\x2d\xe6\x20\xef\xd0\xd0\x7d\xe6\x6b\xf4\ \xfa\x54\x8d\xc3\x48\x22\x95\xf0\xb9\xf2\xe5\x6f\x21\xd8\x51\xba\ \x46\xc7\xcf\x18\xbe\xf7\x53\x63\x59\xf8\xec\xdf\x6b\x7c\xdb\x93\ \x7a\xbb\x87\xb8\xc2\x47\x98\xdc\x90\x48\x3d\xa9\x94\x9f\x11\x44\ \x16\x8d\x42\xdf\x73\xcc\xfc\xe8\x89\x04\x52\x41\xa9\x56\x07\x4b\ \xfb\x53\xa0\xdc\xce\x08\x2a\xda\x8a\xcb\xe2\x03\xc3\xc7\x4a\x8a\ \x6c\x03\x6d\xbd\x68\xc6\x0b\x38\x51\xcc\xda\xb2\xb8\x8c\x82\x4c\ \x7c\xae\xb7\xb1\x6e\x74\x72\xf0\xc0\xec\x6f\x7b\x93\xce\x8b\x0d\ \x27\x85\x88\x49\x00\x00\xab\x5e\xf6\xab\x58\x3c\x22\x18\x95\xe6\ \x04\x97\xf4\xa8\x36\xb0\xea\x6a\x31\x78\x03\x94\xbe\x1d\xf3\x00\ \x2e\x55\xb7\x1f\xcd\x67\x29\xd6\x93\x32\xba\x87\x8d\xae\x8d\xa8\ \xa5\x3b\x00\x7a\x9e\x95\x9d\xc3\x71\xde\x00\xf0\xa6\x1f\x76\x5a\ \xc4\x73\x53\xd6\xb4\xbd\x3a\x83\x70\xda\x86\x1c\xeb\x72\xeb\x38\ \x15\xb0\xf4\xef\x52\xa1\x6c\x43\x2a\xb0\x3b\xdc\x57\x7c\xbe\x94\ \x24\xf7\x1f\x5a\x90\xd4\x42\xa3\xcb\x12\x0f\x6b\xff\x00\x35\x24\ \xa9\x50\xa0\x00\x06\xc0\x0d\xa9\x57\x27\x9d\xba\x69\x44\xa4\xfc\ \xc5\x5a\x85\x1a\x90\xf7\x36\xb5\x54\xe3\x99\x1b\x18\x3c\x48\xd1\ \xfe\xed\x75\x61\xda\xae\x29\xaa\x1c\x70\xff\x00\xc6\x8f\xfe\x35\ \xfd\x2a\xe5\xe1\x9e\xab\xc6\x17\x35\x91\x42\x03\xba\x8d\x98\x7e\ \xc6\xb5\x78\xba\x80\xd1\x95\xd8\x2e\x5b\xf5\xaa\xbc\x12\x11\x28\ \x92\x47\x51\xa7\x95\x75\xd2\xe6\xac\xe3\xbe\xf3\x02\x8e\x3e\x12\ \x2e\x2f\xce\xd6\xfd\xa8\x93\xa5\x7d\x54\xb8\x03\x7a\xec\xca\x7e\ \x21\x4b\xf8\x87\x6a\x25\xbd\x0b\x13\xb9\x04\xec\x3b\x6e\x6b\x9a\ \x8a\xd4\x2c\x39\xd4\x80\x47\x31\xbd\x06\x30\xe6\xc0\xca\xed\x9b\ \x3a\x5b\xce\xbb\x81\xad\xff\x00\x6a\x61\xa8\x55\x0c\x59\x1a\xd9\ \x64\x52\xa6\xf5\x12\x7f\xc3\xae\x35\x8d\xe4\x42\xc6\x45\x60\xca\ \x2d\x98\x58\xef\xde\xb4\x25\x5b\x12\x1b\x4d\x6d\x58\x5c\x2d\x12\ \x3e\x26\x60\x9d\x6d\x73\x6c\xc7\x4d\x79\x56\xfc\x8b\x93\x10\x63\ \x72\x58\x91\x74\x66\xdc\xf6\xa3\x87\x70\x5f\x55\x9f\x43\x61\xa9\ \xed\x43\x6b\x6f\xb9\xab\x24\x03\x4b\x75\xa5\x69\x40\x51\x90\x0a\ \x65\x62\x74\x37\x52\x37\x53\xd4\x57\x05\xae\x22\xf5\x2d\x49\xb6\ \xed\x6b\x7e\x35\x1f\xa8\xe5\x43\xe2\xc4\x08\x50\xfe\x23\x1d\x95\ \x2b\x85\xd4\xdc\x13\x7a\x25\x20\x12\x42\x28\x62\x2c\x58\x0d\x6a\ \x43\x65\x2f\x13\xa8\x8a\x40\x59\x2d\xc8\xfe\x95\x9a\x3c\xad\x60\ \xac\xec\x3e\x1c\xa4\x0f\x99\x35\x78\x12\x0d\xc6\xe2\xaa\x71\x04\ \x64\x93\x30\x27\xc3\x7d\x46\xba\x03\x45\x51\xc1\xb7\xbb\x06\x62\ \x2c\x48\x16\x00\x74\x02\xac\xf0\xd9\x15\x49\x85\x8e\x8e\x7c\xbd\ \x8d\x67\x83\x46\xad\x6a\x25\x6a\xc6\xb9\x1a\xd7\x0b\x83\x71\xca\ \xab\xe1\xb1\x4b\x22\x65\x93\xd6\x07\xab\xf1\x7f\x7a\x31\x20\x2c\ \x43\xe9\x6d\x81\xad\xeb\x18\xa1\xc7\x11\x17\x1c\x4c\x7a\x19\x14\ \x35\xba\x13\x56\x38\x2c\xb7\x8d\xb0\xa7\x65\x05\x90\xfe\xb4\x9e\ \x3f\x28\x6c\x4c\x68\x2d\x71\x18\xd7\x99\xbd\x17\x04\x04\x45\x34\ \xa7\x73\x65\x1d\x7a\xd6\x3f\xfa\x6b\xe2\xe3\x9a\x84\x01\x89\x42\ \x4d\x9f\x43\x42\x58\x5e\xd7\xd7\xa5\x09\x6e\x95\xa6\x41\x26\x26\ \x31\x03\x86\x3f\x7c\x01\x51\xa6\xe7\xad\x23\x86\xe1\x8c\x83\xc6\ \x95\x88\x04\xd8\x2d\xae\x5a\x83\x8a\xa9\x13\x78\xc0\x8b\x4a\x6f\ \x6e\x95\x67\x0f\x2f\x8d\x1a\xac\x4a\xd0\xaa\x8b\x33\xff\x00\x15\ \x9f\x6f\x6d\x7c\x5c\x67\x55\xd6\x42\x16\xda\x05\x1a\x9f\xa5\x04\ \x99\xe7\x50\xa6\xf1\x45\xbe\xbb\xb5\x02\x14\x8c\x5a\x21\x6e\xad\ \xf1\x1f\x9d\x71\x90\x03\xa9\x37\xf6\xad\xeb\x23\x48\x9a\x31\xf7\ \x13\x1e\xeb\x20\xd0\xd1\x78\xae\x83\xfe\x22\x2c\xa3\xf1\xa6\xd4\ \xb5\x95\x76\xd4\x7b\x8a\x62\xb8\xea\xba\xf2\x3c\xea\x46\x73\xd0\ \xdc\x1d\x88\xe7\x52\x80\xad\xd0\x00\x5c\x1b\x12\x76\x5f\x7f\xe2\ \x94\x09\x51\x68\xe6\x55\x5e\x4b\x6b\x95\xf6\x34\x48\x6c\x81\x40\ \xb2\x8b\x9b\x53\xa8\xdb\xc9\xcb\x10\x49\xfc\x2c\xa3\x2d\x03\x62\ \x10\x3e\x49\x94\xc4\xdd\xb5\x53\x42\x5a\xba\x40\x25\x89\xa3\x6d\ \xac\x48\x3d\x2d\x56\xa3\x1a\x45\x44\x32\x31\xba\x81\x7d\x39\xd5\ \x19\xe6\x97\x13\x32\x85\x51\xd1\x54\x1d\xaa\xd4\x66\xd8\x78\xd4\ \x8f\xf9\x60\x10\x45\x70\xc8\xa6\xe9\x1a\x21\x3a\x5c\x51\x50\x62\ \xc3\x28\x60\x1d\xf3\xb3\x68\x75\xda\xf5\x54\x48\xfe\x3e\x43\x2b\ \x65\x24\xa9\x3f\x95\x5d\x8c\xfd\xea\xfb\x8a\xcc\x9c\xda\x57\xff\ \x00\x51\xa2\xd3\x1d\xc3\x6d\xf6\x93\x98\x5c\x05\x3a\x75\xa5\x63\ \x70\x46\x3b\xe2\x30\xac\x4a\x83\x7c\xbc\xd6\xbb\x86\xb9\x18\xc5\ \x5f\xc4\x32\x9f\xa5\x5e\x85\xf2\xbd\xef\xd4\x1a\xcc\xee\x35\x55\ \xa1\xe2\x90\xa2\x78\x38\xe9\x14\xc8\x79\xef\xcb\xe2\xa7\x60\xd3\ \x26\x0e\xf9\x95\x83\xbd\xee\xa7\x41\x61\xfd\xeb\x17\xfc\x49\xc3\ \x8c\x0e\x31\x50\xa9\x31\xc9\x7c\xd6\x37\xb1\xae\xe0\xd8\x99\xe1\ \xe1\xb6\x8a\x42\xa1\x24\xb6\x52\x34\x37\xd7\x5a\xcc\xe5\x65\xca\ \xb3\xae\x9b\x6e\xf6\xd1\x6c\x68\x4e\x6b\xf9\xaf\x7a\xa0\x9c\x4b\ \x12\x18\x1f\x0e\x0f\xfb\x05\x13\x71\x4c\x4b\x10\x7c\x38\x7f\xec\ \x15\xaf\xd4\x18\xd3\x43\x70\x0f\x5a\x2b\x58\xd5\x7c\x06\x26\x3c\ \x62\x15\x0b\xe1\xc8\x2e\x72\x03\x70\x45\x34\xe7\xb5\x81\xd2\xb4\ \x30\x73\x42\x93\x15\x2e\x4a\x95\xd2\xe0\x6e\x28\xa2\x8d\xa2\x4c\ \xb1\x48\x1d\x7f\x03\x8b\x7d\x0d\x04\x57\x53\xae\xa0\xfe\x54\x38\ \xfc\x60\xc3\x1f\x0e\x34\x57\x92\xda\x96\xd4\x2f\x6a\x91\xe4\x82\ \xac\x40\x2a\x40\xf3\x29\xdc\x7f\x6a\x35\x46\x71\x70\x85\x87\x61\ \x58\xd2\x71\x0c\x49\x95\x9f\xc4\xc8\xea\x97\x19\x74\x02\xda\xdb\ \xfd\xf5\xa3\xc5\x62\x67\x32\x12\xd3\x39\xb0\x07\xd5\xf3\xab\xf5\ \x17\xe6\xb4\x71\xb8\x85\xc1\xc4\x4b\x79\xe4\x20\x80\xb7\xf4\xf2\ \xd6\xb2\xf8\x72\x3e\x27\x14\x91\x90\x3c\xcd\xa9\xb5\x01\xbb\xef\ \x7d\x79\x5f\x53\x5a\x9c\x1f\x0c\x70\xf0\x99\x9a\xf9\xdc\x59\x54\ \xe9\x61\xd6\x8f\xf6\xa7\xc8\xb6\xe5\x73\x1c\xa2\xc3\x61\xed\x50\ \x09\x0d\x70\x6c\x6a\x06\xdb\x1f\xa5\x4d\xbb\x37\xd2\xb6\xca\x8f\ \x19\xc3\x02\x46\x2a\x35\x16\xd9\xc0\x1e\x93\xd6\x83\x84\xe3\x15\ \x41\x86\x66\x61\x1b\x7a\x58\x8d\x14\xd6\x88\x3b\x82\x0d\x98\x59\ \xae\x39\x56\x46\x3b\x0c\xd8\x69\xb2\xda\xe8\x7d\x27\xa8\xac\xde\ \xae\xc6\xa7\x7d\x35\x9d\x48\xb0\xb8\x20\xf3\x06\xe0\x8a\xeb\x5a\ \xb1\xf0\x38\xa9\xb0\xc0\x04\x71\x6e\x68\xfb\x1a\xbb\x17\x16\xc3\ \xb8\x1e\x2c\x45\x49\x3a\xe5\x3b\x55\x39\x41\x8b\x55\x23\x71\xdb\ \x5f\xf7\xfe\xf9\x50\xc5\x2e\x1e\x60\x0c\x53\x29\xec\x74\x34\x44\ \x32\xee\x08\x27\x5a\xd0\x48\x36\xac\xfe\x38\x6f\x8d\x5f\xfe\x35\ \xfd\x2a\xfa\x02\xcc\x00\xdc\x9a\xcd\xe2\xb2\x2c\xb8\xd3\x93\x50\ \xa0\x28\x3d\x6d\x47\x2f\x0c\xf5\x7f\x84\xa8\x5e\x1c\x08\xbd\xdd\ \xc9\x3f\x2f\xfc\xd3\xb1\x0b\x9e\x1c\x42\x87\xf4\xb6\x6b\x5b\x9f\ \x4a\x5f\x0e\x42\x9c\x3e\x3c\xc4\xf9\xae\xc0\x76\xd3\xf8\xa6\xb2\ \x33\x33\x34\x4c\x15\xdd\x6c\x41\xd8\xd6\xa7\x81\x9a\xa0\x58\x7b\ \x5e\x8d\x45\x71\x8d\x94\x90\x45\x99\x7c\xae\xbc\xd4\xd4\x81\x58\ \x29\x14\x2d\x72\x3c\xba\x5f\x99\xa2\x61\xa8\x53\xcf\x5a\x83\x50\ \x2d\x87\xbf\xd6\x81\xb5\xdf\x5e\xc6\x98\xfb\xd4\x11\x65\x66\xcb\ \x98\xa8\xbe\x51\xce\xa3\x15\x78\xa6\x1c\xe2\x62\x13\x46\x01\x96\ \x31\x66\x00\xea\xc3\x91\xab\x03\x12\x24\x68\x0b\xb1\x19\x72\x80\ \xe0\xe9\xca\xd7\xe9\xd2\x83\x0d\x24\xf2\x44\x25\xcf\x0c\x77\x24\ \x0f\xbb\xd6\xba\x7c\x1e\x21\xf0\x4c\xf0\xe4\x66\x6b\xa9\xfa\xdf\ \x4a\x3f\xec\x2d\x19\x90\xac\x84\x11\x6e\x63\xda\x82\xb3\xb8\x57\ \x11\x95\x30\x82\x2c\x4a\x67\x11\xbe\x43\x7d\xc0\xde\xb4\xe3\xc9\ \x2c\x62\x48\x5b\x3a\x1f\x91\x1e\xf4\xcb\xbe\x0b\x30\x04\x0a\x16\ \x02\xd4\xc6\x68\xc7\xc4\x5b\xba\xad\xc7\xd6\xa0\xa8\xb0\x20\x82\ \x0e\xc7\xad\x40\xa2\x05\x08\xb5\x31\x96\x84\x8b\x54\x90\x68\x5d\ \x16\x58\x8c\x6c\x6d\xcc\x1e\x95\xcd\xa6\xa6\x87\x29\x27\x36\xa0\ \xde\xf5\x15\x29\x50\xc7\x21\x46\xdd\x4d\xa8\x41\xe9\x57\xb1\x11\ \x89\xd4\x5c\x59\xc6\xc7\xaf\x6a\xa2\xc0\xab\x15\x61\x62\x37\xac\ \x59\x8d\x4a\x90\x4d\x3e\x2c\x49\xf4\xcb\xa8\xda\xe3\x71\x55\x6f\ \x5d\x7a\x34\xa7\x8f\xc8\x3e\xd0\xb6\xd4\x78\x6a\x01\x1b\x5e\xd5\ \x73\x87\x00\x38\x54\x40\xf3\x66\xfd\xab\x33\x8a\xbb\xae\x1e\x2c\ \x4a\x00\x42\xf9\x25\x16\xf5\x74\xbd\x68\xf0\xf9\x23\x6e\x15\x1f\ \x86\x49\x0a\xc7\x97\x5a\x65\xff\x00\x2a\x3e\x1a\xd6\xe5\xa1\xa8\ \x0e\x08\x25\xae\x00\xde\x96\xcf\x6e\xbf\x4a\x28\x88\xf2\x86\x1a\ \xb4\x83\xf2\xb9\xfd\x85\x68\x25\xd5\x64\x70\xf3\x29\x27\xe1\x4b\ \xe8\xa3\xa5\x10\x60\x14\x28\x00\x01\xb0\x14\xbb\xeb\x5d\x7a\xba\ \x43\x2c\x6d\xa5\x72\x30\xca\x29\x6c\x6d\xef\xca\xb8\x69\xa5\x5a\ \x8e\x06\x89\x5a\x92\x0d\x12\xb5\x29\x65\x5a\x8c\x30\x35\x5d\x4d\ \x12\x35\x4c\x9f\x5c\x40\x24\xa6\xe0\x7a\xf5\xff\x00\xeb\xfc\xd0\ \x17\x2a\x42\x8b\x67\x6f\x48\x3c\xbb\xd4\x82\x15\x02\x8f\x48\xff\ \x00\x77\xa9\x08\x9b\x9b\xd4\x11\xde\x84\x3d\xf6\xd6\xa0\xbd\xb7\ \x23\xeb\x52\x31\x48\x5b\xb1\x36\x0a\x09\x27\xa5\x63\x3b\x8b\xeb\ \x7b\x9e\xd5\x7f\x1d\x2e\x5c\x26\x50\x48\x69\x3f\x21\x59\x6e\xc1\ \x98\xef\xd0\x56\x79\x56\xb8\xc1\xe0\x64\xf0\xf1\x68\xcc\x35\x0c\ \x34\xeb\x5a\x39\x7c\xe5\x17\x5d\x6d\x59\x4e\x03\x32\xdb\x42\x35\ \xbd\x6a\xc2\x56\x58\xf3\xa9\xf5\x8b\x36\xba\x8e\xbf\x90\xfc\xea\ \xe2\x68\x64\x4f\x1a\x42\xc5\xc0\x86\xd9\x00\x23\xd6\x3a\x8a\xa7\ \x2f\x0c\xf0\x30\xe5\x70\x65\xa5\x42\xd9\x9a\xfe\xa1\xa7\x4a\xba\ \xc7\x31\xe9\xd2\xdc\xaa\x23\x2c\xb2\x7a\x8f\x63\x4d\x92\x86\x3b\ \xa3\xa7\xad\x19\x7d\xc5\xa8\x49\xb0\xbd\x6f\x78\xae\x48\x56\x39\ \xb9\xf9\x85\xff\x00\x5a\x5c\x98\x4c\x14\xda\x98\x8c\x6d\xf8\x90\ \xfe\x76\xac\xfe\x3f\x87\x59\x38\x49\x64\xc3\xe2\x04\xcb\xb8\x37\ \xb5\x6c\x61\xf1\x98\x4c\x42\x66\x0f\xe0\xb7\x30\xfb\x7c\x8d\x52\ \x9f\x86\x4c\x83\x3c\x4c\x26\x5e\x76\xdc\x7c\xaa\xab\x2b\x29\x21\ \x94\xa9\xee\x2d\x54\xde\x2b\x25\x6c\x4b\x8c\x82\x05\xbc\x72\x2c\ \xb2\x7c\x39\x76\x15\x9a\x03\x4b\x29\x21\x49\x66\xd7\x4d\xeb\xb0\ \x78\x69\xb1\x0f\x68\xd0\x91\xcc\xf2\x15\xb1\x82\x85\x30\x89\x64\ \x21\xa4\x3e\xa7\xfe\x29\x9b\xc8\x75\x08\x83\x85\x46\xb1\xb0\x9d\ \xdb\x33\xa9\xba\x0f\xad\x89\xf9\x55\xb6\x83\x0c\x14\x2f\xd9\xe3\ \x6f\x28\xd5\xb5\x3b\x51\x2f\x99\x48\xe6\xde\x50\x7d\xcd\xbf\x9a\ \x97\x20\xb9\x23\x6a\xdc\x92\x33\xb4\x2a\xb0\x2b\x02\x30\xd1\x29\ \x1b\x10\x2f\x4d\xb9\x66\x24\x9b\x93\x4b\x8f\xcc\xc4\x8e\x5b\x53\ \x29\x89\x1a\xe5\xa9\xb1\xae\x16\xe6\x6b\x98\xd9\x49\xed\xa5\x29\ \xd6\xa8\x3a\xae\x56\x50\xc3\x7b\x11\x7a\x9b\x2d\xb6\xbf\x73\x5c\ \xbb\x91\xc8\x54\x83\x68\xb6\xf0\x22\x3f\xf4\xd4\x18\xb0\xcc\x7c\ \xf8\x48\x4f\xfd\x34\xc0\xb6\xa8\x22\xf5\x62\x55\x93\x87\xe1\x1e\ \x5f\xba\xcd\x13\x5b\xad\xc7\xf6\xa0\x64\xe2\x38\x4d\x98\xbc\x63\ \x6f\x89\x4d\x5a\x37\x0d\x99\x45\x3a\x37\x36\x0c\xa4\x8b\xd1\x91\ \x6b\x2a\x4c\x76\x25\x90\xa5\xd5\x2f\xbe\x55\xb1\xaa\xca\x09\x6b\ \x0d\x49\x35\xb9\x2c\x30\x4b\xfe\x64\x22\xfd\x57\x43\x41\x87\xc2\ \x61\xe1\x93\xc4\x5c\xce\xc3\x60\xc0\x58\x51\xf9\xa7\x4e\x2a\x11\ \x55\x00\xb0\x55\x02\xdd\x2b\x80\xa9\x00\x93\x73\xb9\xa3\x51\x6a\ \xd8\x0c\xd8\x78\xe7\x00\xb1\x2b\x22\x8b\x07\x53\x62\x7b\x1a\xa2\ \xd1\x49\x1b\xb2\x4c\xcc\x59\x45\xc3\x6d\x98\x75\xf7\xad\x20\x34\ \xa9\x75\x57\xc8\x19\x43\x00\xd6\xb1\xe8\x7f\xf1\x55\xe3\xa2\x56\ \x4b\x58\x68\x05\xaa\x37\x15\xa3\x26\x16\x17\x37\x19\x93\xdb\x51\ \x48\x93\x04\xc3\xd0\xe8\x7d\xf4\xb5\x66\xf1\xa7\x54\x9c\x54\x29\ \x20\xdc\x55\x87\xc2\xce\x2f\x78\xc9\x03\x98\xda\x97\xe1\x3d\xfd\ \x24\x77\x22\xb3\x94\xe9\x4e\xa1\x73\x46\xa2\xc0\x79\xd7\x4e\x47\ \x7f\xce\xad\xe0\x98\xae\x0d\x2c\x6d\xe6\x6f\xda\xab\x61\xe1\x97\ \x13\x8a\x92\x65\x5b\x46\xab\x91\x6f\xa0\x35\x71\x63\x11\xc2\xb1\ \x83\x7b\x5e\xe7\xbd\x31\x52\x78\x86\x14\x62\x90\x98\xc0\x59\x46\ \xb6\x03\x47\xfe\xf5\x9d\x83\x90\xc3\x8b\x11\x9f\xf2\xd4\x5e\x71\ \xd7\xb5\x6c\x00\xf9\x08\x8d\x82\xbf\x22\x6b\x27\x1b\x1f\x87\x2b\ \x8c\x99\x4b\xbe\x63\xf4\x1f\xbd\xe8\xe5\xfd\x53\xf8\xd7\x39\xd5\ \x82\xa3\x10\xb6\xf2\xdb\x41\x6a\x5a\x15\x71\x29\x4b\x65\x12\x79\ \x6c\x3a\xd2\x70\x38\x94\x7c\x11\x85\x9b\x2c\x80\x64\x43\xd6\xfc\ \xbf\x5a\xbb\xe1\xd9\x02\x46\xb9\x94\x6d\x93\x51\x7a\xd4\xec\x2a\ \xc8\x72\xe9\x6b\x93\xb5\x09\x4e\xac\x6a\xc1\x85\xef\x72\x8d\x7e\ \xca\x68\x1d\x0a\x9b\x10\x47\xb8\xa3\x11\x05\x05\xef\xb9\xee\x76\ \xa8\x2b\x4d\x22\x81\x8e\xb4\x22\x8a\xd2\xe7\x84\x4c\x08\x26\xce\ \x3d\x2d\xd7\xb5\x3c\xda\xd7\xa0\x61\xa5\xf9\xd4\x65\x66\x3a\xb2\ \x39\x56\xb8\x23\x7b\xd0\x93\x57\x38\xa2\x66\x8c\x4c\x37\x1e\x56\ \xfd\xaa\x8b\x1b\x0a\xe7\x7a\x6e\x09\x54\x4b\x14\xb0\x1d\x9d\x0f\ \xc8\x8d\x69\x5f\xe1\x59\xbe\xe9\xa1\x61\xe5\x67\xca\x3b\x5c\x51\ \xc6\xc1\x23\x9a\x46\xf4\xa4\x64\x9e\xf5\x47\x81\xb6\x48\xd5\x94\ \xf9\xbc\x71\x6a\xcf\x96\x26\xe3\x1b\x1a\x82\xcc\x27\xc3\x00\x37\ \x72\x68\xa6\x53\xe3\xb2\x81\xf1\x1a\x01\x63\x2f\x8a\x0f\x96\x21\ \x95\x3b\x9e\x66\xba\x32\x33\xbf\x5a\x82\x75\xb0\xff\x00\xc5\x0d\ \xeb\x97\x46\x6d\x77\xa9\x27\xda\xbb\x9d\x75\x70\xde\xa4\x2a\x90\ \x6a\x39\x54\xd3\x10\xd0\xd3\x03\x64\x42\xf6\xb9\x1a\x28\xea\x4e\ \xd4\x90\x69\x80\xda\x4d\xae\x22\xd0\x77\x63\xfc\x0a\x52\x63\xfb\ \xbb\x82\x09\x63\xbb\x6e\x4d\x48\x24\xea\x7e\x40\xd0\x83\x7a\x9a\ \x90\x89\x07\x71\x52\x2c\x06\x77\xb2\xa8\xde\x84\x15\x55\x2e\xe6\ \xca\x39\xd5\x3c\x5e\x20\xcc\xd6\x02\xc8\x36\x14\x5b\x83\x03\x89\ \x93\xc6\x94\xb9\x03\xa0\x1d\x05\x21\x92\xcd\x75\x36\xa3\x35\x04\ \x8a\xc3\x65\x5f\xcc\xb5\x67\x0d\x2b\xc3\x2c\x65\x6d\xac\x4e\x4d\ \xc6\xf5\x5d\x56\xee\x14\x6a\x49\xb7\xbd\x4c\x72\x07\xc4\x62\x82\ \x6a\x11\x15\x45\xba\x03\x44\xa9\x7e\x3c\x5c\x0f\xeb\x56\x43\xdb\ \x51\x4f\x50\x1c\x5e\x36\x57\x1d\x8d\x64\x0a\x62\x31\x06\xe0\xdb\ \xda\xb5\x39\x0c\x69\x6c\xda\xe9\x71\x61\x44\x06\x97\xa4\x61\xf1\ \x80\x8c\xb3\xeb\xfd\x7c\xfe\x75\x64\xa8\xdc\x5a\xc4\x68\x46\x97\ \xad\xb3\x5c\xb7\x07\x43\x63\x4d\x12\x39\xd4\xe5\x3d\xca\x82\x69\ \x2c\x72\xdb\x98\xa9\x57\x61\xa9\x1e\x53\x50\xc3\x73\xb1\x16\x26\ \xc3\xa0\x16\x15\x22\x81\x5b\x37\xa4\x7c\xcd\x18\xbf\x36\x3f\x41\ \x4a\x74\x8f\x92\x48\x17\xf1\x3d\xea\x09\x62\xd6\x1a\x8e\x75\x2c\ \xa0\xcb\x19\x37\x25\x41\x35\x23\x7a\x90\xb3\x05\xd0\x2d\x16\xb7\ \xd5\x8f\xca\x84\x6d\x5c\x09\x02\xd7\x07\xde\x94\xe2\xa4\x9b\x96\ \xa8\x28\xdb\x02\x2a\x6f\xad\x10\xd4\x8d\x0d\xc9\xe9\x52\x72\xa8\ \x55\xb5\x16\x8a\x73\x3b\x2a\x29\x1b\xb1\xb5\x04\xf8\xa8\x20\x66\ \x4d\x65\x91\x77\x51\xa0\x53\xd0\x9f\xda\xb3\xb1\x12\xc9\x34\x85\ \xdd\xd2\xe7\x90\x52\x40\xf9\xdc\x55\x6e\x26\xce\x42\x40\x2b\x66\ \x07\x62\xa6\xf4\x8c\x77\x88\x90\x06\x8c\xb2\xea\x73\x5a\x83\x84\ \x43\x7c\x33\xb3\xb4\x85\x58\xf9\x47\xa7\xf4\xa7\xcb\x87\x71\x1b\ \x08\xe5\xf2\x91\xaa\xb6\xa4\x53\xec\x4a\x8b\x8e\x21\x72\xcb\x15\ \xcd\xbd\x6b\xa7\xe5\x56\x70\xe7\x34\x21\x85\xf2\x9d\x45\x72\x44\ \x90\xc2\x2d\xe6\x2c\x75\xa6\x40\xb9\x70\xca\xa3\x93\x35\xbd\xaf\ \x54\xd4\xe1\x44\x05\xeb\x82\xd1\x28\x26\xf6\xd0\x6d\x7a\xd2\x48\ \x5b\x0b\xd4\x8e\xc0\x9e\xfb\x57\x05\x51\xc8\x5f\xa9\xd4\xd4\xee\ \x69\x65\xda\xfe\x1f\xfe\xd5\xd7\xfb\xc4\x5d\x8e\x62\x6c\x7b\x0f\ \xef\x47\x6b\x0d\x28\x5e\xe6\x64\x51\xba\xdc\xb5\xb9\x02\x2a\x48\ \xa8\x22\x8f\x27\xf5\x1f\xca\xa0\xa1\xe4\x7e\xa2\xa4\x00\x0d\xe9\ \x38\xec\x49\x45\x31\x2b\x12\xe7\x43\xae\xd5\x65\x6e\x1b\x6d\x7d\ \xeb\x39\x22\x95\x66\x0e\xf0\x3b\x00\x6e\x47\x5a\xcd\xff\x00\x86\ \x1f\x02\xb2\xe1\x54\x35\xee\x4d\xcd\xeb\x88\xa3\x12\xac\xad\x65\ \xb8\x6e\x61\x86\xd5\x05\x3a\xde\xa2\x56\xec\x40\xb0\xb6\xe6\x93\ \x89\xc2\xfd\xa4\x12\x08\xf1\x53\x4d\x46\x8e\x3a\x1a\xb4\x16\xc2\ \xc0\x0a\x12\x32\xb6\x61\x7d\x4e\xb4\x62\x62\x48\x0a\xb5\x8d\xee\ \xa7\x40\x16\xc0\x1b\x5a\xfd\x4d\x44\x5e\x3d\xad\x11\x7d\x39\x29\ \x35\xbe\x58\x93\x72\x17\xe6\xa2\xa4\x3b\x0f\x4d\x97\xb8\x00\x7e\ \x95\x9f\xc1\xd6\x03\x3c\xe0\x0c\xcf\x28\xbf\x22\x48\xa6\x61\xf1\ \xf3\xc5\xe5\x73\xe2\x25\xad\x95\x8d\x6b\xc8\x24\x2d\x7b\x86\x1d\ \x1e\xc6\xdf\x5a\xcc\xe2\xf0\x2a\x05\x96\x34\x20\x31\xb3\x0e\x86\ \xb3\x65\x9d\xc3\x2e\xae\x12\xaf\x1a\xc8\x9e\x97\x17\x1d\xbb\x50\ \x30\xa4\xf0\x96\x27\x0d\x24\x7f\x81\x81\x1e\xd4\xf7\x36\x17\xa7\ \xde\xd9\xa4\xbe\x8e\xbf\x33\x42\xe6\xf4\xc6\x16\xd4\xee\x69\x46\ \xa3\x09\xc7\xe9\x82\x3d\xd8\x56\x73\x5c\xe8\x35\x26\xae\x71\x77\ \xb1\x48\x47\xc2\x2e\xde\xe6\xa9\x62\xa7\x4c\x14\x1e\x2b\x1b\xca\ \xeb\xf7\x4b\x6d\xbb\xd7\x3e\x57\xb6\xa2\xaf\x1d\x9b\xc2\x85\x70\ \x68\xd7\x6b\xde\x50\x0e\xe7\x90\xa3\xc3\x44\x62\x96\x08\x94\x5d\ \xa3\x21\x9d\xbb\x92\x0d\x67\x60\x95\xe7\xc6\x78\xb2\x02\xe1\x4e\ \x76\xef\x5b\x5c\x31\x95\xf1\xf9\xdf\x51\x18\x2d\x6f\xc4\xfc\xcf\ \xcb\x6a\xe7\x3b\xba\x6a\xd3\xc8\x71\x39\xb2\x02\x88\xc6\xee\xe7\ \x7f\x61\x52\xcc\x2c\x15\x45\x94\x0b\x01\xd2\x82\xe5\x9c\xb9\xe7\ \xb5\x41\x35\xd7\x46\x08\xb5\x85\xcd\x70\x3a\x77\x26\x80\xea\x40\ \x3c\xb5\x35\x20\xd5\xab\x0c\x06\xa6\xf4\xbb\xd4\x83\x56\xac\x30\ \x1a\x9b\xd0\x03\x5c\xc7\xc8\x6d\x48\x36\x36\xf3\x02\x3e\xa6\xa3\ \x0e\x4f\x84\x62\x63\x77\x8d\x89\x3a\xef\x7e\x74\x31\x9c\xc4\x5b\ \x9d\x4a\x10\x59\xa6\xe6\xf6\x0b\xfe\x91\xce\xa4\x60\x34\x59\x95\ \x10\xbc\x86\xca\x3f\x3a\x05\xb6\xb7\x36\x00\x5c\x9e\x95\x4b\x19\ \x3f\x8b\x2d\x97\xd0\xbe\x9a\x6d\xc4\x3c\x4e\x21\xa6\x6e\x8a\x36\ \x14\xb0\x69\x63\x7a\x9a\xe7\xad\x0c\xb5\x01\x3a\xd4\x1a\x83\xb6\ \xd5\x27\x2b\x59\xb4\xb8\x3c\xaf\x4c\xb2\x87\x18\x85\x40\xa7\x30\ \x59\x00\xf8\x81\xa1\xf0\xbc\xb6\xbe\xbd\x68\xd5\x5d\xa0\x75\x00\ \x06\xb8\x61\x7e\x76\x35\x62\x73\xa6\x59\x19\x46\xb6\x24\x5e\xba\ \xf6\xda\xb9\x87\x89\x69\xd5\x8f\x9c\x93\xa8\xdb\xb5\x72\x86\xce\ \x41\xb1\xef\x6a\x52\x41\xab\x7c\x3e\x7c\xad\xe1\x39\xf2\x36\xdd\ \x8d\x55\xd3\x99\x14\x2e\x5c\x37\x31\xd2\xad\xc5\x5b\x0e\x32\xdc\ \x30\xfa\xd1\x0b\x5a\xd5\x53\x09\x29\x9a\x1b\x31\xf3\xa0\xb6\xa7\ \x71\x56\x86\x80\x03\x5d\x18\xb0\x43\xb5\x4d\xc2\xa9\x63\xb2\x8b\ \xd4\x0a\x56\x39\x98\x61\xec\xa2\xe1\x8f\x98\xda\xa0\x6c\x0d\x9e\ \x1f\x14\xee\xe4\xdf\xb5\xb6\x14\x42\xa8\xe1\xa7\x96\x2f\x2a\xea\ \xa7\xe1\x3b\x56\x83\x03\x60\x76\xd3\x50\x29\x9d\x9a\xe0\x6a\x75\ \xa0\x37\xb5\xaf\xad\x12\x85\x03\xaf\xb9\xa4\x08\x0b\xd3\x10\x12\ \xac\x01\xb3\x5b\xca\x6f\xce\x81\x4f\x73\x44\x46\x9b\x9f\xad\x31\ \x31\xf1\x0a\xd0\x49\xe1\xce\xad\xab\x12\xb2\x01\xa1\xbe\xb6\x3d\ \x0d\x5d\xc0\x60\x1d\x8a\xc9\x88\x5c\x89\xbd\xb9\xb5\x5c\x8f\xcc\ \xb9\x5c\x93\xd6\xfa\xdb\xda\x8a\x16\x24\x34\x6e\xc1\x9a\x33\x6b\ \xf5\x1c\xa8\x9c\x61\xd1\x46\xd7\x94\x20\x00\x28\x16\x00\x72\xa7\ \x0d\x28\x10\x5b\x5b\x6b\x46\x2b\x71\x9a\x15\x48\xd5\x8b\x91\x60\ \x35\x3d\xab\x91\x6d\x1a\x8b\x58\xda\xf6\xe9\x7d\x69\x8c\xb7\x0a\ \xa7\x62\x75\xee\x00\xbf\xeb\x6a\xe6\x1a\x9d\x75\xa4\x16\xe3\xc8\ \x7a\xda\xa4\x0b\x00\x3a\x57\x38\xf2\xdb\xae\x82\x8c\x81\x7a\x92\ \x02\xde\x88\x0b\x54\xd7\x54\x9c\xc4\x2a\x96\x3b\x28\xb9\xa8\x41\ \x65\xd7\xd4\x75\x63\xd4\xd4\x4d\xfe\x4b\xdc\x5c\x65\x35\x26\xe0\ \xdb\xa6\xf5\x24\xd4\x13\x6a\x16\xbd\xea\x00\x26\xa4\xe3\xbd\x71\ \x2d\xc8\xfe\x75\x39\x4d\x2e\x50\xd2\x44\x52\x3b\x00\x77\x73\xb7\ \xb0\xeb\x52\x55\xe2\x52\xa3\x32\x84\x37\x65\xdd\x87\xe9\x44\x98\ \xd4\xca\x03\xa3\x16\xe7\x6e\x74\xa9\x30\x53\x2f\xa4\x07\x03\xf0\ \xd4\x70\xf4\x07\x17\xe6\xf8\x41\x36\x35\xcf\x6e\x95\xb5\x67\x71\ \x75\x80\x01\xcb\x3b\xd8\x9a\x0c\xe9\x98\xa4\x9f\x76\xdf\x85\xb9\ \xd3\x8e\xa6\xe6\xb9\x80\x6b\x66\x45\x6b\x6d\x71\xb5\x69\x00\x45\ \xa6\x9f\x91\xa9\x29\x6e\x67\xf2\xa9\x78\xe3\x65\x39\xa3\x5d\xb7\ \x02\xc4\x50\xc4\xd9\xe0\x46\xce\x3d\x3e\x6b\x9a\x52\x0a\xeb\xea\ \x34\xb9\x21\x57\x86\x44\x37\x62\xca\x48\xbf\x5a\x6a\xb2\x35\xc2\ \x48\xac\x57\x70\x2a\x50\x0c\xe3\xbe\x94\x16\x3f\x0a\x39\x71\x4c\ \xa6\xde\x64\x23\x5e\xb5\x66\xe0\xc9\xa6\xc2\xa8\xc8\x4c\x38\x9b\ \x8b\x82\x8f\x71\x7a\xbe\xb9\x58\x67\x8c\xdd\x48\xbd\xeb\x9c\x34\ \x12\x52\x98\x84\x46\x91\xfd\x2b\xaf\xbf\x6a\x73\x8b\xd6\x6f\x13\ \x9c\x3b\x78\x69\xe8\x53\xf5\xef\x45\xb9\x14\x21\x4f\x8d\x8c\xcc\ \xfa\xdc\x96\x3e\xc3\x5a\xc1\xe2\x18\x89\x31\x78\xb2\xe7\x5b\x9b\ \x28\xe8\x39\x0a\xdb\xc3\xb0\x13\x1c\xc6\xc0\xa9\x1f\x95\x52\x8b\ \x87\x4d\x83\x66\xc4\x4c\x97\x0a\x6d\x19\xe4\x4f\x5a\xe3\xca\x5b\ \x1b\x82\xc2\xa1\xc3\x44\xaa\x06\xb1\x83\x24\x96\xeb\xc8\x55\xbe\ \x10\xa0\x49\x3e\x97\x29\x18\x5b\xdf\xbe\xbf\x9d\x54\x04\x29\x8a\ \x36\xf5\x4a\x73\xb0\xe7\x94\x6d\xf9\xd5\xae\x18\x24\x2d\x3a\x44\ \xe3\xc4\xca\x0b\xb7\x25\x37\xda\x9e\x3e\xaa\xb2\xc0\x8f\x50\x23\ \xde\x84\xef\x40\x1a\x68\x0d\xb1\x0d\x9e\x36\x3a\x38\xd6\xd4\x63\ \x23\x1f\x2c\xa8\x49\xd8\x66\xad\x00\x8b\x8b\xe9\x7b\x9a\x91\xf4\ \xa2\x64\x65\x17\x2a\x6d\xd6\xa3\x42\x2a\x28\x6b\x01\x52\xa7\xad\ \x44\xa6\x28\x55\x5a\x5c\xde\x6d\x94\x6f\x45\x04\xb1\xcf\x71\x1e\ \x60\x47\x23\xce\xa0\x91\x6e\xf5\xc4\x12\x35\x36\xed\x53\xb5\x48\ \xda\xb4\x10\x54\x88\x88\x5d\x59\xfc\x8b\xee\x69\xae\x6e\xe6\xdb\ \x00\x05\x40\x03\xc6\x4e\xaa\x85\x80\xbf\x3b\xef\x43\x23\xac\x51\ \xf8\x8d\xaf\x41\xd6\xa4\x5f\x10\x97\x22\x78\x2a\x75\x6d\x5b\xf8\ \xaa\x60\x9a\xe7\x66\x77\x2e\xc6\xe4\x9b\x93\x52\x39\x56\x6b\x43\ \x02\xa7\x95\x08\x3a\x51\x0d\xeb\x29\x04\x50\xb0\x60\xd7\xb5\xc0\ \xa6\xd8\x74\xa8\x75\xb8\x22\xfb\xd3\x88\xef\x05\xf9\x21\x3d\xc6\ \xb5\x24\xac\x0c\x1a\x56\xb3\x0f\x4a\x0d\xc9\xac\xd7\x5c\x4c\x1e\ \x4b\x48\x8c\xdb\x00\x77\xab\x98\x18\x4e\x1d\x3c\x59\x35\x95\x87\ \x97\x36\xa5\x7b\xd3\x2a\x31\x87\x84\x8b\x13\x0b\x11\x76\x3e\xe7\ \x95\x72\x6a\x5a\xdf\x2a\xeb\xf5\xe7\xbd\x4d\xea\x4e\x51\x94\x00\ \x45\x8f\x5e\xb5\x22\xba\xbb\x2e\x9b\x9f\xad\x21\x31\xb9\x49\x43\ \x8d\xc7\x3a\xd2\x84\x89\x22\xce\x9a\x8b\xed\xcc\x56\x51\x36\x36\ \x3a\x53\x20\x91\xd1\xcb\x46\xc4\x5a\x99\x55\x8d\x4b\x54\xa1\x00\ \x12\xc7\xcb\x6b\x9b\xf3\x15\x49\x71\x92\x81\x62\x15\xbd\xc5\x41\ \xc4\xcb\x23\x58\x90\x01\xd0\xe5\x00\x56\xb5\x9c\x58\xc2\x61\x85\ \xbc\x56\x0d\x72\x6e\xa8\x3e\x1e\x97\xa7\x15\xb1\x25\x9e\xc7\x9d\ \xda\xb3\x56\x79\x64\x46\x57\x91\x89\x89\xb2\x93\xd7\xa5\x40\xd7\ \x5b\xd1\x2c\x58\xd4\x02\xfa\x06\x53\xff\x00\x50\xae\x60\x41\xda\ \xb3\x05\x36\x09\xe4\x8d\xb4\x37\x1f\x84\xed\x4f\xe9\x62\xfa\xd3\ \x06\xd4\xb8\xd8\x3a\x07\x5d\x9b\xf2\xa6\x2e\xd5\xa0\x20\x01\xde\ \xa0\x69\xc4\xd4\x2e\xc6\x31\x71\xf2\xa2\x5d\xaa\x20\xb1\xe2\x33\ \x5f\x70\x2c\xbe\xd5\xa4\xb1\xa0\x52\x49\xb0\x1b\x93\x47\x1d\x9a\ \xc5\x48\x61\xd4\x1a\x4e\x25\x4b\x61\xca\xdf\x42\xcb\x7f\xad\x48\ \xc3\xc6\x8f\x65\x2c\x17\x9a\xdf\x46\xa5\x91\xe6\x2e\xf7\x43\xa6\ \xc0\xf6\xbe\xff\x00\xef\xb5\x1e\x45\xb6\xda\xf5\xe7\x5d\x1f\xa6\ \xf6\xde\x8a\x94\x05\x8d\x43\x66\xd4\x9e\xf4\x43\x7a\x16\x34\x4a\ \x74\xd6\xa4\x9a\xea\xeb\x8a\x1c\xc2\x94\xe9\x54\xb2\x15\x07\x5e\ \x55\xc0\xb1\x17\x68\xf5\xff\x00\x58\xa1\x2c\x7a\xd4\x66\xd6\x84\ \x98\x9d\x1e\xfb\x02\x0e\xa0\x9d\xa8\xb3\x0b\x79\x6c\xdd\xf6\x1f\ \x5f\xe2\x80\xb2\x8f\x31\x03\xdf\x2d\xeb\xb3\x12\x6e\xdf\x2e\xd5\ \x21\x9b\x11\xad\xdf\xb5\xac\xbf\xef\xde\xf4\x2e\xe6\xfe\x60\x2d\ \xd6\xf5\xd7\xbd\x0b\x79\xc6\x50\x7d\xcf\x4a\x92\x6f\xad\x03\xa8\ \xfb\x44\x72\x58\x5c\xdd\x4f\x7d\x28\xc0\x00\x58\x72\xa8\x27\xfe\ \x2a\x34\xe8\xa4\x9a\xaa\x75\xaa\x40\xa3\xcb\x50\xc2\xc6\xa4\x5c\ \xc8\xcd\x19\x55\x60\xb9\xb4\x24\xf4\xa4\xc7\x87\x85\x37\x5c\xe7\ \xab\x6d\x56\x0d\x09\xd2\x8b\x09\x5e\x16\x49\x43\xc4\xaa\x0d\xac\ \xcb\x7b\x5c\x51\x33\x0c\xc0\x15\x74\x27\x6b\xda\xc7\xe6\x2a\x49\ \xa8\x60\x0a\x95\x61\x70\x68\x2a\x7c\x4f\x04\x66\x63\x34\x63\xcd\ \x6f\x32\xdb\x53\x59\x2a\xf3\xe1\xa5\x25\x4b\x46\xdb\x11\xd2\xb7\ \x46\x60\xc6\x27\x60\x40\x17\x43\x6d\xfb\x52\x78\x94\x69\x36\x19\ \xdd\x96\xef\x18\xba\xd8\x7a\x8f\x4a\xc7\x2e\x3b\xdc\x32\xa8\xcb\ \x8e\x57\x87\xc1\xb8\x49\xd8\x02\x75\xdc\x7f\x35\x9d\x38\x2a\x6c\ \x45\x88\xe5\x59\xf8\xa9\x1d\xe5\x69\x09\xb3\x5f\x97\x2a\xbd\x04\ \x87\x11\x82\x59\x08\xf3\x29\xc8\xdd\xfa\x57\x1f\xd7\xe9\xbc\xc1\ \x61\x20\x32\xbd\xce\x8a\x37\x35\x7c\xb9\x06\xc0\x0c\xbb\x65\x23\ \x4a\xe5\x8c\x43\x08\x8c\x6f\xbb\x77\x34\x27\x7a\xde\x63\x2c\xdf\ \xf1\x07\x0e\xcf\x3a\xe2\xa2\x94\x45\x1e\x50\xa7\xa8\xf6\xa6\x70\ \x22\x82\x39\xa1\x8c\x10\xa1\x6f\x73\xbb\x1b\xef\x57\x27\x8f\xc6\ \xc2\xcb\x0d\xae\x4a\xdd\x7d\xc5\x65\xf0\x79\x44\x38\xd0\x1b\x69\ \x01\x43\xaf\x5a\xc5\x92\x72\xd3\xf1\xa2\x48\xca\x54\x8b\xa9\xd0\ \x8a\x50\x83\x0a\x3f\xe4\x9f\xfb\xcd\x36\x45\x2a\xc5\x48\xb5\x42\ \x0b\xb0\x1d\x6b\x55\x17\x88\xfb\x98\x0c\xb0\xb3\x26\x52\x01\x52\ \xd7\x06\x81\x31\x98\x72\x2e\xca\xea\x7a\x0d\x41\xa1\xc5\xbb\xcf\ \x29\xc3\xc2\x9a\x29\xd7\xa9\x34\x71\x61\x22\x44\xfb\xe0\x5d\x8f\ \x20\x6c\x05\x1d\xef\x49\x59\xd9\xf1\x78\xbf\x28\xb6\x6d\x85\xf6\ \x14\xd9\x60\x6c\x32\x89\x92\x4b\xd8\xd8\xe9\x6a\x60\xc3\x45\x71\ \xe1\x33\xc6\xc0\xe8\x77\xae\xc7\x44\xde\x5f\x1b\x13\x7e\x8b\x60\ \x09\xa3\x3e\xa3\xa1\x94\x4d\x00\x93\x2e\x53\x7b\x1a\x9b\xda\xa8\ \xe0\x38\xa6\x0f\x33\x61\x56\x17\x36\x37\x52\xc6\xc4\x9a\x62\xf1\ \x34\xcc\x73\x61\x11\x11\x7d\x44\xb1\xbd\x33\x94\xfe\xac\x5a\x9a\ \xcb\x87\x33\x92\x57\xc2\x20\x83\xfb\x55\x4c\x64\xad\x24\xd7\x61\ \x6b\x01\xa7\x4a\xa9\x8d\xe3\x4d\x89\x4f\x0f\x09\x04\x6a\x11\xae\ \xaa\xe7\xd5\xdf\x5e\x74\x2f\xc5\x1d\x90\xc9\x16\x1a\x1c\xc3\xd6\ \x18\x6a\xa7\xb8\xac\xde\x70\xc9\x56\x2a\x41\xe5\x49\xc0\x71\x11\ \x89\xc4\x24\x32\xe1\xa3\x05\xcd\x8b\x2e\x96\xf9\x53\xf2\x9f\x10\ \xa2\x82\x4d\xed\xa5\x32\xcb\xe2\x12\xd1\xa8\xa7\xc1\x83\x00\x03\ \x33\x5b\xfa\x56\xad\x45\x1e\x1d\x76\x88\x1f\xf5\x1b\xd3\x38\x8d\ \x51\x14\x68\x8c\xc2\xe0\x6d\xb9\xab\x86\x08\x1e\xf6\x4c\xa6\xc4\ \xe8\x74\xdb\xa5\x67\x62\xa2\xc5\x62\x2f\xe1\x36\x74\x1b\x22\xe9\ \x6f\x95\x36\x62\xd5\xec\x3c\xb1\x4a\xf3\x0c\xa1\x4b\x1b\xc7\xdb\ \xda\xa8\xc6\xcd\x98\xa9\xdc\x1a\xb3\xe2\x69\x1e\x1c\xc5\x95\xa2\ \x6d\x5c\x0e\x55\x5d\x47\x9d\x18\x1b\xe6\x4b\x93\xd6\x8a\xa0\xc5\ \x10\xa8\x5a\x9a\x88\xb4\xb5\xed\x52\x37\xb6\x95\x0a\x68\x59\x19\ \xd8\xb0\xd8\x9d\x29\x64\x65\x14\x9b\x9b\xd7\x01\xc8\x0a\x88\x83\ \xa9\xf3\x03\x6f\xd2\x8c\x6a\x34\x37\xa5\x04\xae\xc3\xa9\xa2\x16\ \x45\xcf\x6d\x07\xa4\x75\x3d\x05\x43\x0b\x2e\x7b\x85\x09\xa9\x27\ \xa5\x70\x60\xe0\x4a\xc4\xa9\x22\xc8\xbf\x84\x75\xf7\x35\x27\x22\ \xf8\x51\xe5\x24\x66\x26\xec\x7b\xd7\x66\x3c\x87\xd6\xac\x43\x84\ \x77\x50\xc6\xc8\xa7\x9b\x6e\x69\xc9\x84\x81\x46\xa5\x98\xfd\x29\ \xca\xb5\x48\x13\xf8\x4f\xca\xb9\x58\xb3\x10\x45\xb4\xab\xb2\x61\ \x52\xc4\xc6\xc4\x11\xc8\xd5\x2d\x4c\x9a\x82\x32\xe8\x6f\x56\x25\ \xae\x1f\x29\x56\x31\x9d\x9b\x6f\x7a\xbd\x01\xba\xeb\x58\xf9\xd8\ \x3f\x90\x6c\x77\xad\xa5\xb1\x01\x80\xd0\x80\x45\xab\x5c\x45\x31\ \x05\xcd\xaa\xb9\x97\x2e\x3d\xa6\xb1\x2b\x9a\xd7\xb7\x2a\xb5\x0f\ \xa8\x77\xa1\x89\x8a\xc0\x97\x50\x57\x28\xfe\xf5\xb0\x31\x22\x3b\ \xaa\x23\x06\xbf\x98\xf6\x03\x5f\xd6\x8c\x6b\xf3\xaa\x39\xbe\xcf\ \x8b\xce\x05\xc1\x1b\x7b\xd5\xd6\x60\xa0\x1e\xa0\x10\x29\x94\x25\ \x5a\xea\x3d\xa8\xae\x6d\xbd\x2d\x76\xb7\x4d\x28\x81\xa4\x26\x88\ \x11\x6a\x1b\xd0\x96\xb5\x48\x4c\x45\x09\x34\x2c\xff\x00\x2a\x0c\ \xe3\x6b\x8f\xad\x1a\x70\xcb\xf7\xae\x2c\x05\x29\x9a\xc3\x5a\x12\ \xe4\xec\x3e\xb4\x69\xc1\xca\xcd\x75\x03\xad\xea\x73\x6b\x4b\x5d\ \xfa\x93\xce\x88\x54\x86\x4f\x97\xb5\xf5\x34\xd4\x17\x00\x2e\xdc\ \xad\x42\x8a\x58\x58\x0b\xde\x80\x2c\xda\xc5\x19\xd7\x62\xdf\x86\ \x90\x99\xa7\x0a\x08\x89\x73\x11\xbb\x72\x14\x58\x24\x60\x8d\x2c\ \x9e\xb9\x3f\x4a\x88\xb0\x8c\x8b\xe6\x90\x38\xbd\xec\x05\x81\xf7\ \xa6\xc6\x7c\xbb\x9b\x8a\x64\xbb\xda\x15\x03\xef\xbe\xd4\x67\x6a\ \x5c\x84\x09\x3c\xc7\x4b\x5c\x55\x40\x49\xb8\xb8\x04\xd0\x33\x5d\ \x8a\xda\xdf\x3a\xe9\x65\xb9\xb2\x7d\x6b\x88\x0a\x2c\x3e\x66\x83\ \x11\x41\x23\x85\x5b\xd4\xbb\x59\x49\xe9\x55\xee\xce\xf7\x35\x9b\ \x49\x81\x6e\xa4\x1d\x58\x8b\xdf\xa1\xaa\x78\xec\x40\x66\x40\x9b\ \x2f\xab\xdf\x9d\x5b\x53\xf7\x83\xde\xb2\xb1\x0d\x7c\x64\xeb\x71\ \x96\xf9\x94\x74\xbe\xf5\x9e\x57\xa3\x18\xdc\x6a\x1f\x07\x18\xf6\ \x5b\x23\x1b\xaf\x71\x45\xfe\x1c\x90\x0e\x21\xe1\xc8\x7e\xed\x81\ \x2c\x3a\x5b\x9d\x5e\xc5\xc2\xb8\xb8\x7c\x22\x40\x75\xf4\x13\xfa\ \x56\x56\x0d\x5a\x0e\x20\x61\x95\x4a\xb3\x02\xba\xf2\xbd\x70\xb3\ \x39\x6b\x7f\x1e\x8a\x60\x44\x87\x36\xf4\xa3\xbd\x55\xc1\xe3\x8a\ \x0f\x03\x11\x72\xb7\xd1\x8e\xeb\x57\x19\x48\x20\x8d\x41\xd8\x8e\ \x75\xd3\x75\x90\x83\x95\x83\x0e\x55\x9d\xc5\xb0\x6c\x92\x36\x22\ \x11\x78\x98\xdf\x4f\x84\xd6\x8b\x29\x1a\x10\x45\x72\x12\xbb\x73\ \xde\xfc\xe8\xb3\x54\xac\xfc\x16\x39\x72\x88\xb1\x37\x2a\x36\x7e\ \x62\xad\x23\xc0\xd6\x29\x89\x8c\xdf\x5d\x4d\x88\xa8\xc4\x61\x30\ \xb3\xfa\x94\xc4\xdd\x50\x68\x7e\x55\x56\x4e\x16\x6f\xf7\x58\x88\ \xdb\xb3\x79\x68\xff\x00\x28\x57\xd7\xcc\x09\x59\xa2\xb7\x36\x0c\ \x29\x12\x62\xb0\x48\x4e\x69\xcb\x11\xc9\x53\x7f\x9d\x51\x7e\x1d\ \x8b\x52\x09\x8b\x32\xdf\x52\xa6\xf5\x57\x1c\x78\x96\x1f\x10\x50\ \x61\x7e\xef\xe1\x1e\x1d\xc5\xa8\xbc\xac\xf8\xa4\x5d\xc4\x71\x57\ \x23\x26\x1a\x31\x10\x23\x56\xdd\xbe\xb5\x51\xdd\x84\xb9\x14\xe7\ \xc4\xb0\xcc\x4b\x1d\x10\x75\x34\x98\xb1\x2c\x49\x69\xf0\x91\x8c\ \xbb\xe5\x26\xff\x00\x41\x54\x31\x3c\x59\xa2\xe2\x06\x58\xf0\xec\ \x88\xde\xa2\x41\x0c\x47\x6e\x95\xca\xf2\xfb\x6b\x58\xb1\x89\xc2\ \xa6\x1d\xd5\xdf\x10\xac\xc4\xde\xda\xaf\xf2\x68\x31\xf8\xb9\x31\ \x01\x54\xbe\x60\xa3\x5b\x0b\x02\x7a\xda\x93\x2a\xf8\x89\xe3\xc4\ \xe6\x44\x6d\xcf\x31\xef\x4a\xbd\x62\xdf\xe1\xc1\x03\x56\xa3\x2e\ \x71\x38\x42\xba\xc9\x21\x2a\x6d\xbb\x27\x7a\xa8\x0d\x6d\xff\x00\ \x87\x11\x15\xd3\x13\x3a\x80\x21\xd1\x6f\xbe\xa6\xf4\xf1\x9b\x55\ \xab\x5c\x23\x87\x36\x1f\x33\x31\xb4\x8c\x37\xe4\x83\xf9\xad\x18\ \x55\x21\x5c\xb1\xdf\xbb\x1d\xcd\x40\x91\x65\x17\x8e\x55\x23\xa5\ \xec\x6a\x76\xd2\xbd\x32\x49\xe3\x14\x60\xd1\x03\x4b\x06\x8d\x01\ \x63\x60\x09\x34\x83\x22\x60\x1a\xe7\x60\x09\x3e\xd5\xd8\x13\x93\ \x04\xad\xac\x62\xec\xcd\xd6\xdc\xa9\x32\x9c\xc5\x70\xe8\x41\x67\ \x20\xc9\x6d\x40\x14\xeb\xac\x85\x93\x65\x71\x94\x76\x1c\xa9\x4a\ \x98\xb9\xd2\x46\x00\x2a\xbe\x5d\xd9\x86\xff\x00\x2a\x59\x66\x73\ \x76\x37\xa5\xa0\x14\xc1\x58\x68\x42\xa4\x50\xd7\x7c\x27\xda\xa4\ \x33\xf8\x79\x9e\x42\x8f\x9d\x00\xd0\xd8\x68\x28\x97\x6a\x60\xa2\ \xe7\x50\x45\xcf\x7a\xea\x95\x3e\x60\x06\xa7\x90\x1b\xd2\x02\xaa\ \xb2\xe2\x0c\x24\xb3\xac\x76\x39\x07\xc4\xd5\xa1\x87\xc3\xa4\x07\ \xc5\x94\x03\x21\xe5\xc9\x6a\xbc\x90\x7d\x90\x7d\xa8\x00\x25\x63\ \x62\x06\xb9\x68\xf0\xb3\x4f\x89\x3e\x75\x40\xa3\x98\x16\xb5\x33\ \xaa\xaa\xcb\x48\xa4\xdc\xb1\xd7\x99\x15\xc4\x81\xb9\x1f\x5a\x51\ \x56\x67\x0a\x4d\xc0\xfc\xaa\x7c\x21\x9a\xf7\xb0\xe9\x4b\x26\xd5\ \x7c\x72\x82\x4c\x80\x00\x6d\xaf\x7a\x70\x04\x68\x18\xfc\xea\x55\ \x41\x3e\x7d\x6f\xa1\x1d\xaa\x4c\xf1\x7a\xd2\xe1\x6d\x9b\x0c\xc2\ \xf7\x28\x74\xf6\xac\xe9\x30\xec\x98\x96\x41\x7c\xbc\xb5\xb5\xe9\ \xd8\x1c\xd0\xe2\x75\x07\x2b\x0b\x1a\xb8\xf5\x5a\xad\x50\xc5\x41\ \x3d\x05\xc5\x14\x63\x2d\xd0\xdb\xf1\x0f\xdc\x7d\x7f\x5a\x50\x0f\ \x7c\xad\x6b\x5f\x53\x45\x24\x81\x02\x3b\x1b\x0c\xc5\x49\xec\x45\ \x74\x64\xae\x27\x1d\xd2\x36\x52\x6f\xaa\xfc\xea\xc3\x00\xa7\x28\ \xdc\x00\x09\xf9\x50\x0c\xb3\x48\x1a\xf7\x8e\x3d\x8f\x26\x34\x4e\ \x75\x26\xa4\x90\x6d\x5c\x1a\x80\x1a\xea\x92\x58\x96\xbd\xc9\x02\ \xfb\x50\xb5\xed\xeb\x6f\xad\x40\x3e\x51\xdc\x57\x1a\x90\x6c\x4f\ \xa8\xde\xd5\x24\x0e\x82\xba\xf5\x0c\x68\x48\x20\x03\xa5\x75\xea\ \x2a\x54\x5c\xda\x84\x25\x37\x15\x18\xcc\x4a\xe1\x80\x45\x01\xe5\ \x22\xf6\x3b\x20\xea\x6b\x95\xd4\x11\x93\xef\x09\x3c\x81\xb0\xf9\ \xd6\x5c\xce\xcf\x33\xb3\x1b\xb3\x31\x2c\x7a\x9a\xad\xc8\xa2\xcb\ \x62\xf1\x32\x8b\x3e\x25\xb2\xfe\x18\xd7\x2d\xe8\xb0\xb8\x89\x62\ \x23\xc3\x62\x00\x37\xb7\x5a\xab\x1d\x59\xc1\x46\x65\x9d\x63\x51\ \xab\x1b\x51\xde\x9a\xdd\x27\xee\xc3\x81\xba\x83\x6a\x15\x4d\x2f\ \x7d\x4e\xa6\x9c\x40\xd8\x6c\x05\x85\x01\x16\x3a\x6d\xd2\xbb\xb0\ \x5b\xf9\x54\x9b\x6c\x2f\x4b\x68\xc1\xf5\x6a\x7a\xd3\x24\x04\xe8\ \x4e\x9d\x05\x41\xd3\x5a\x2a\x21\xa2\x50\x41\x51\xa8\xeb\x40\xf9\ \xb7\x16\x14\xe6\xa5\x3d\x66\x98\x53\x82\x7d\x76\xf6\x14\x04\xd3\ \x1c\xd2\x98\xd6\x69\x46\x62\x1a\xfd\x2b\x37\x8a\x2f\x83\x2f\x8e\ \x6f\xb8\x52\x79\x32\x9a\xd0\xaa\xdc\x4d\x5a\x54\x11\x78\x25\xd2\ \xd7\x24\x75\xac\x5f\x0c\x50\x93\x46\x20\x6d\x43\x3c\x29\x8c\x8c\ \x24\xa1\x83\x29\xf2\xc8\xa3\x51\xef\x44\xe2\x64\x16\x43\x13\x90\ \x2c\x33\x8b\x11\x55\x27\x4e\x22\xe4\xdc\x48\x47\xf4\x9f\xe2\xb9\ \xd6\x88\xc4\x1c\x46\x1d\x8a\xe2\x62\xf1\x50\x68\x24\x1b\xfd\x69\ \xf8\x3e\x27\x04\x70\x18\xb3\xba\x03\xb1\x61\x7c\xbf\x3a\x94\xc1\ \xe2\xda\x2f\xbe\x25\x54\xf2\x60\x49\x34\xb1\xc3\xb0\xef\x7f\x0a\ \x44\x27\x98\x91\x8a\x5b\xf5\xac\xf7\x3c\x3d\x35\xb0\xc6\x29\x30\ \xaa\xd1\xe2\x52\x4b\x5e\xe6\xfa\xd7\x1c\x9c\xe4\x4f\xfb\xab\xcf\ \x62\x70\xf8\x9c\x0c\x99\xd6\xe8\x2f\xa3\x2b\xdc\x1f\xca\x8a\x3e\ \x2d\x36\xd8\x80\xb3\x2f\x32\x56\xcd\xf5\xa7\xf7\x3e\x8c\x6e\xbf\ \x87\x6b\xf8\xd1\xe9\xfd\x54\x99\x24\x85\x75\x69\x47\xfd\x3a\xd5\ \x28\x24\xc3\x62\x85\xb0\xf2\x15\x7b\x5f\xc3\x7d\x3f\x3a\x19\x94\ \xa9\xb3\x0b\x11\x4d\xe5\xd2\xc5\xa6\xc5\xc2\x86\xe8\xae\xc7\xbe\ \x82\x82\x6e\x21\x24\xa9\xe1\x95\xca\x84\x58\x8c\xc4\xfe\xb5\x50\ \xd4\x56\x3f\x54\x86\x4c\x34\xa4\xfd\xd6\x3a\xea\x0e\xce\x4a\xda\ \x97\x34\x18\xd4\x5c\xca\xe9\x32\x0d\xf6\x20\x8e\xf7\xa7\x57\x2b\ \x14\x60\x54\xd8\xd1\x90\xeb\x35\x22\x84\xc8\x64\xc3\x01\x0c\x84\ \x1c\xd1\x1f\x44\x9e\xdd\x0d\x56\xc4\xc7\x97\x12\x63\x41\xec\x08\ \xd6\xb6\x71\x18\x13\x8b\x9d\x1a\x01\x95\x9f\x57\xe8\x2b\x51\x70\ \xf8\x68\xe1\x10\x01\xaa\x8b\x09\x40\xd5\x4d\x13\x86\xad\x79\xdc\ \x26\x0f\xc3\x0b\x2e\x24\x58\x9d\x55\x39\x9f\x7a\xbe\xb3\xc4\x8c\ \xa9\x3b\x64\x59\xd0\x59\xc0\xd8\x82\x77\xfa\xd0\x63\xf0\xd2\xe1\ \xe6\xb4\x87\x30\x6d\x43\xfe\x2a\x56\x2b\x0e\xf8\x98\x62\x58\x99\ \x3c\x80\xdf\x33\x58\xd1\xe7\x8b\xd6\xa6\x0b\x08\xe6\x70\xe5\xbc\ \x8b\x66\x0c\xba\xde\xae\x66\x0f\x3b\x2a\x87\x76\xbf\x9b\x28\x00\ \x2f\xcc\xd6\x3f\x0a\x3c\x4f\x02\xa5\x22\x78\x24\x43\xbc\x65\xef\ \x7f\x6a\xd6\xc0\xbc\x72\x42\x23\xb1\x8a\x76\xf3\x34\x64\xdf\xf3\ \xae\xbc\x2f\x4c\xd3\x4a\x91\x6b\x42\xef\xfe\x97\x1a\x7b\xd4\xa3\ \x5e\xe2\x42\x07\xff\x00\xd6\x87\x4f\x99\xe7\x42\x47\x6a\x95\x51\ \x7b\x90\x0d\x6c\x08\xb1\x0b\x95\x55\x54\x74\x51\x52\x80\x93\x43\ \x94\x11\x6d\x7e\xb4\x8c\x6b\x65\xfb\x95\x63\x7f\x8f\xf8\xab\x71\ \x2b\x83\xde\xd4\xc0\x53\x28\x2d\x2a\x29\x23\x66\x3a\xd2\x63\x8c\ \xbf\x94\x31\xa6\xaa\xa0\x3e\x33\x59\xf4\x01\x01\x1c\x86\x99\xab\ \x11\xa3\x4a\x84\x17\x91\x85\xb9\x65\x20\x93\xec\x2b\xac\x4a\x12\ \x30\xb3\xda\xdb\xdc\x54\x09\x5b\x93\x28\xee\x00\x15\xd7\xb9\xb9\ \x37\xfc\xe9\x06\xd9\xef\xe5\x85\x35\xe4\xf2\x58\xd4\x48\xd9\x06\ \x66\xc3\x4e\x07\x5b\x83\x40\xb7\xb0\x06\xa5\x4b\x03\x71\x71\x4a\ \xc0\x7d\xa8\xb7\x97\x0d\x03\xbb\x75\x61\x7a\xbf\xc3\x9a\x35\x16\ \x95\x44\x53\x30\xbd\x8e\xdf\xf9\xa8\xe1\xea\xce\xc5\xdf\xd2\xbc\ \x86\x97\x35\x66\x78\xa3\x9c\x5a\x54\xb9\xea\x34\x35\xa9\x2f\xa2\ \xd0\xca\xab\x88\x21\x33\x5e\x34\xd5\xcf\xe2\x3d\x05\x1a\xe8\x32\ \x8d\x14\x6c\x06\xc2\xb8\x21\x48\xc2\x20\xb2\x8d\xaf\x5d\x66\x3a\ \x11\x61\xce\x96\x51\x1f\xa3\xe7\x44\x05\x48\x15\xd6\xa9\x38\x54\ \xaa\xdc\xf4\x00\x5c\x9e\x82\x88\x21\x22\xf6\xd3\xa9\xaa\xdc\x47\ \x12\x91\x44\x61\x8d\x83\x3b\x8b\x31\x07\xd2\x29\xea\x7a\x99\x7f\ \xe2\x39\xde\x5c\x44\x6f\x1b\x11\x1b\x0c\xaa\x3a\x5a\x91\xc3\xb1\ \x72\xe1\xa5\xf5\x96\x46\xf5\x03\xaf\x3a\x2c\x59\xcf\x85\x0d\x63\ \xf7\x6c\x0f\xd7\x4a\xaa\xbe\xab\x74\xae\x36\xf7\xad\xe3\xd9\x42\ \xe2\x58\x04\x8b\xb7\xed\xca\xa2\x64\x12\xc2\x63\x26\xda\x82\x0d\ \x66\x7f\x87\xb1\x36\xc2\x80\x7f\xe5\xb1\x56\x17\xe4\x79\xd6\xa9\ \xec\x6e\x0e\xc6\xbd\x12\xec\x61\x2b\x65\x01\x57\x45\x5d\xab\x98\ \xde\xa2\xba\x94\xea\xe1\xb8\xae\xae\xa9\x05\x3d\x03\xda\xa1\x88\ \x02\xa2\x43\x96\xe7\x91\xde\x96\x5c\x6f\x63\x6e\xb4\x6a\x13\x35\ \xea\x2f\x43\x7b\xed\xad\x70\xa1\x08\x7f\x73\x40\x5c\xca\xb9\x22\ \x46\x2a\x4d\x99\xf9\x5a\x8b\x42\xac\xa4\x8f\x30\x22\x81\xa6\x8e\ \x1c\x22\xc8\xdb\x81\x60\xbd\xea\x49\xc7\x62\x57\x0d\x0e\x55\x3e\ \x72\x2c\x8b\xd0\x75\xac\xe4\x6b\xeb\x49\x9e\x57\x9a\x63\x23\x9b\ \x93\x4d\x48\xe4\x45\x0c\xc8\xc0\x75\x22\xb1\xfa\xda\xd6\x61\xa9\ \xbd\x6e\x70\x7c\x3f\x81\x17\x88\xe3\xef\x1f\x6e\xc2\xb0\xe1\xb6\ \x71\x7d\xaf\xad\x7a\x53\xea\x1d\x2c\x2d\xf4\xae\x9c\x27\x6c\xf2\ \x30\x1d\x2a\x0d\x4a\x54\x91\x5d\x59\x29\xc5\x03\xfa\x69\xac\x29\ \x6c\x39\x51\x51\x47\x7a\x5c\x83\xa9\x03\xdc\x8a\x29\xdf\xc2\x89\ \xa4\x3c\xb6\xf7\xac\xa4\xbc\xd8\x91\x9c\x17\xcc\x75\xb5\x63\x95\ \x31\x79\xd7\x4b\xdd\x6d\xfe\xa1\x49\x25\x4e\xc7\x37\xfa\x05\xff\ \x00\x3d\xa8\xca\x46\x86\xe9\x1a\x2d\xb9\xda\x85\x89\x3b\x92\x68\ \x20\x21\xef\xea\x11\x8e\xde\x66\xfe\x28\x48\xb1\x37\x79\x1b\xdc\ \x81\xfb\x51\x31\xa0\x63\x59\xa8\xb3\x06\x1b\x35\xfc\x22\x4f\x3b\ \xb5\x42\xbc\x71\xe9\x1a\xe4\xf6\x1a\xd4\xb1\xa0\x26\x82\x23\x3b\ \x6f\xe2\x3d\xfd\xcd\x04\x92\x17\x5b\x00\xbe\xf9\x05\x4e\x9d\x3f\ \x2a\x06\x00\xf2\xb7\xb5\x45\xca\xea\x17\x21\x8a\x36\x5e\x61\x96\ \xa9\x71\x0c\x0c\x0e\x9e\x26\x1f\x07\x11\xfc\x48\x14\xdc\x77\xab\ \x7a\xdb\xad\x40\x24\x1b\x8b\x82\x3a\x51\x64\xa9\x84\xcb\x00\x24\ \x1c\x32\x0e\xb6\xb8\x22\xb4\x70\x03\x0f\x89\x83\x2b\x02\x64\x5d\ \x02\x97\xd6\xdf\x4a\xb3\x89\x86\x1c\x40\x1e\x34\x76\x61\xf1\x2d\ \x81\xaa\x72\xf0\xdb\x31\x31\x62\x00\x3c\x83\x0b\x7e\x75\xcf\xf3\ \x65\x6b\x61\xcd\x86\xc3\x29\xb3\x40\xe0\x8e\xae\x69\x58\x98\x70\ \x91\x2e\x62\x18\x5f\x61\x7b\xd4\x88\xf8\xbc\x63\x2c\x72\x19\x07\ \xf4\xb0\x6b\x50\xcb\x3e\x35\x7c\x98\x8c\x1e\x7d\x39\x2d\xbf\x4a\ \x7a\xfe\x01\x61\xa3\xc2\x4b\x19\x61\x1b\x12\xbb\xdd\xad\x4e\x8d\ \x63\x12\x00\xb0\xc6\xba\xda\xe0\x6b\x55\x63\xe2\x10\x44\x32\x36\ \x19\x96\xfe\xa0\x0d\xa8\xcf\x11\xc1\x5e\xf9\x27\xfa\x8a\xb6\x21\ \xc4\xa0\x33\xce\x45\x99\xd8\x81\xfd\x20\x69\x52\x8a\xcc\xc0\x0d\ \x49\xa0\x18\xec\x26\x63\xe4\x93\x2b\xea\xb7\x61\x6c\xdd\x3b\x5e\ \xaa\x62\xf8\x94\x85\x5a\x28\xa2\x10\x83\xa1\xeb\x46\xc8\x85\xc6\ \xa6\x8d\x82\x40\x87\x31\x8c\x9c\xcd\xcb\xda\xa9\x28\xa1\x07\x5a\ \x35\x3a\x57\x3d\xde\xda\xc4\x93\x6a\xe4\x62\xae\x19\x4d\x88\xd8\ \xd7\x1a\x8e\x75\x44\xdd\xc3\x4d\xf6\x9c\x1a\x4c\x4f\x9c\x79\x5f\ \xdf\xad\x1a\x9a\xce\xe0\xb8\x85\x8e\x46\x86\x56\xb4\x72\x0d\xfa\ \x1e\x46\xb4\x8a\x95\x6b\x1a\xed\xc6\xec\x66\xa5\x9f\xc3\x85\xe5\ \xe6\xa3\x4f\x7a\xce\x04\x93\x73\xa9\x35\x77\x19\xff\x00\xed\xf2\ \x7f\xa9\x6b\x3f\x52\xb6\x1b\xde\xae\x4a\x2c\x46\xaa\x50\xeb\x9a\ \x31\xff\x00\xfd\x0f\xf1\xfa\xd1\x31\x2c\xd7\x63\x44\xe1\xcb\xf9\ \xc5\x8f\x4b\x5a\xd5\x39\x68\x41\x17\xe5\xa5\x4d\x8f\x3b\x9a\x20\ \xbd\x68\x82\xd3\x8b\x42\xa2\x8a\xd4\x40\x57\x01\x48\x5e\xc1\xae\ \x5c\x2a\xdb\xe2\x24\xd3\x00\x3a\xd8\x6b\x6d\x2f\xd6\x87\x00\x73\ \x61\xb2\xde\xe5\x0e\xdd\xa8\xe5\x0c\x19\x55\x05\xdc\xec\xbf\xb9\ \xad\xb2\xab\x84\x5c\x44\xa5\x9b\xc6\x65\x50\x75\x37\xe7\x56\x82\ \xb8\xf8\x8c\xab\xce\xfa\x30\xfe\x68\xa0\x87\xc2\x84\x25\xee\x49\ \xbb\x7b\xd1\xaa\xda\x99\x10\x14\x06\x17\x53\x7b\x6e\x2d\x62\x3d\ \xe8\x71\x32\xc7\x86\x8c\x33\x82\xcc\xde\x95\x15\x60\xda\xe1\xc8\ \xdb\x46\x3d\x8f\xf0\x6a\x97\x1e\x53\x68\x4d\xb4\x00\x8f\xce\xab\ \xd4\x4a\x38\xbc\x44\xb3\xb9\x2c\x48\x5e\x4a\x36\x15\x56\x6b\x86\ \x03\x91\xa6\xb6\xf4\x32\x8c\xc9\xa6\xe0\xd7\x2b\xdb\x63\x2b\x9a\ \x39\x13\x7c\xc8\x6c\x2b\x32\x31\x6a\xd6\xc3\xa4\x84\x24\x99\x18\ \xaf\x33\x6a\xcd\x99\x32\x4c\xeb\xd1\x88\xac\xf2\x89\x77\x80\x37\ \xdf\xc9\x17\xfe\xe2\x7e\x63\x51\x5b\x38\x2c\x46\x82\x29\x2d\x6f\ \x84\xf4\xaf\x3d\xc3\xa4\xf0\xb1\xd1\x49\x6d\x98\x56\xcc\xca\x15\ \xca\x8e\x46\xba\x70\xbd\x0a\xd2\x20\x8f\xe6\xa2\xb3\xe2\x9a\x58\ \xfd\x0e\x40\xe9\x4e\x18\xd9\x00\xf3\x22\x37\xca\xd5\xd3\xf5\x19\ \xc5\xaa\x83\xb5\x57\x18\xdd\x75\x85\x7e\x44\xd7\x1c\x62\x69\xf7\ \x47\xbf\x9a\xad\x8b\x0c\x7d\xe8\x0d\x29\xf1\x84\xe8\xb0\xaf\xd4\ \x9a\x53\xe3\xa4\x07\x41\x18\xed\x96\x8d\x87\x0f\xc8\x3b\xfd\x6a\ \x42\xad\xf6\xaa\x9f\x6c\x97\xf1\xaf\xd0\x51\x2e\x32\x41\xba\xa3\ \x0f\x6a\x36\x2c\x5b\x05\x63\x46\x91\xb4\x54\x17\xf7\xac\x8c\x4c\ \xad\x2c\xcd\x2d\xaf\x7d\xd0\x73\x1d\xbb\xd6\x9a\x62\x20\x91\x1a\ \x39\x03\x28\x75\xb1\xe9\x59\x93\xc4\x62\x90\xad\xee\xa7\xd2\x7a\ \xd6\x79\x18\xb1\xc2\x70\xcb\x2c\xa6\x56\xf3\x46\x9a\xfb\x9e\x95\ \xab\x9f\x30\x2a\xe0\x32\x9f\x84\xed\x59\x3c\x3b\x10\xd0\xc8\xc0\ \x65\xcb\x26\xe0\xec\x4f\x7a\xd5\x4b\x32\x07\x5f\x49\xfc\x8f\x4a\ \xd7\x0f\x05\x51\xc7\x41\xe0\x4a\x0a\xff\x00\x96\xfa\xaf\x6e\xd5\ \xb1\x80\x98\x4f\x83\x47\xbe\xaa\x32\xb5\x52\xc7\x28\x6c\x03\xdf\ \xe1\x21\x85\x07\xf8\x7e\x52\x27\x78\x4e\xce\xb7\x1e\xe2\xb5\x3a\ \xa2\xf8\xd8\x8d\xb5\xb1\xa6\x83\xa5\x57\x06\xfa\xd3\x11\xb4\xae\ \xac\x8d\xe9\x2f\xbd\x30\x9b\xd0\xb6\xba\x54\x95\xf1\x68\x1e\x02\ \xa4\x68\x59\x7f\x5a\x51\x45\x40\x42\x22\xa8\xec\x2a\xcc\x80\x98\ \xd8\x0d\xed\x71\xdf\x9d\x2d\xc0\x3a\x8d\x8e\xa2\xb1\x61\x55\x90\ \x69\x6a\x5b\x69\x56\x1d\x75\xa4\xc8\xa4\x56\x69\x25\xa8\x1f\x4a\ \x61\x14\xb7\x15\x84\x5b\x9d\x68\x68\xce\xf5\x0c\x2a\x32\x80\xef\ \x43\xa5\xe8\x88\xd2\x84\xd4\x50\x68\x6b\x89\xa8\xbd\x1a\x93\x42\ \xdb\x57\x72\xa8\x6b\x05\x2c\xcc\xaa\xa3\x99\x34\x20\x10\x2f\xb5\ \x48\x69\x14\x59\x64\x70\x3b\x35\x46\x68\x7f\xf7\xd0\x7b\xd1\x32\ \x90\x3b\x75\x07\x4a\x93\xbc\x57\x1b\x90\x7d\xd4\x1f\xda\x93\x24\ \x78\x69\x2e\x24\xc3\x47\xee\x83\x29\xa3\x61\xce\x85\xa8\xa6\x14\ \xd8\x4c\x13\x23\x28\x59\x10\x1d\xfc\xc1\x81\xf9\x50\xae\x0b\x09\ \x75\x52\xf2\xca\x3e\x1c\xda\x11\xfd\x34\xeb\x50\xca\xa4\x02\x14\ \x7d\xe3\x8f\x20\xef\xd6\xb3\x90\x99\x19\x48\x85\xa1\x85\x23\xe5\ \xe9\xb9\xa3\xce\x24\x19\x65\x8e\x37\x1d\x0a\x8f\xda\x97\x23\x03\ \x26\xfa\xf3\xf7\xa9\x43\xad\x86\xf5\xa0\xa7\xc5\x70\x89\x08\x59\ \xa1\x2d\xe1\xb9\x37\x07\xe1\x3d\x2a\x90\xad\x4e\x35\x2a\xc7\x85\ \x18\x60\xc0\xbb\x36\x67\x03\x90\xe5\x59\x43\x38\x37\xbe\x9d\xab\ \x9f\x39\x34\xc3\x2d\xa5\x5a\xc3\x71\x0c\x4c\x4a\x13\x30\x74\x02\ \xc1\x5c\x5c\x0a\xa6\xcc\x2e\x32\xde\xe3\xad\x19\x3a\x5f\x29\x17\ \xa2\x74\xbd\x6b\xc5\x8a\x87\x17\x87\x92\x30\x9e\x1c\x85\x7d\x37\ \xd0\xfb\x55\x58\xe3\x66\x6c\x80\x6b\xfa\x52\x38\x79\x61\x89\x89\ \x81\xd4\xb8\xd6\xb5\xf1\x50\x09\x99\xd6\x18\xec\xaa\x7c\xe8\x3e\ \x3d\x34\x1e\xdd\xab\xa4\xff\x00\x28\x3c\x5e\x6c\xad\xe4\x91\x03\ \x0e\xa7\x7a\x54\xd8\x20\x7c\xd0\xb5\xff\x00\xa4\xef\x56\x05\x88\ \x2d\x96\xc6\xe4\x10\x77\x16\xa9\xb7\x3d\x2f\x5d\x71\x86\x6b\x23\ \x23\x65\x60\x41\x1b\x83\x51\x6a\xd2\x9d\x12\x58\xfc\xe8\x73\x5b\ \x46\xb6\xd5\x9f\x30\x68\xc9\x52\x3c\xc3\x4b\x56\x6c\x6a\x22\xa4\ \x0a\x08\xcb\xde\xe7\x5f\x7a\x60\x64\x04\x29\x0e\xcc\x75\x08\xa3\ \x5a\x91\x98\x67\x68\x98\x32\x9b\x66\x60\xbf\xef\xe5\x5a\x3e\x81\ \x68\xc5\xc1\xd7\x37\x36\xee\x6b\x32\xc7\x38\x67\x00\x65\xf4\x20\ \x37\xd7\xa9\xab\x58\x09\xf4\xf0\xa4\x3a\x7c\x24\xf2\xad\x71\xa2\ \xac\x80\x48\xe9\x5d\x62\x07\x5a\x3b\x5b\x43\x5d\x5b\x08\x16\x23\ \x5d\x54\x8b\x1a\x46\x22\x29\xe6\x84\xc2\x02\xb8\x02\xea\xd7\xb1\ \x27\xa5\x3f\x28\xde\xd5\x0c\x0a\xea\x9a\x1d\xed\x45\x4c\x09\x4b\ \x47\x7f\xf8\x69\x49\x1c\x88\xfe\x2b\x94\x87\x85\x64\x00\x8b\xe8\ \x47\x42\x2b\x5f\x88\x61\x9a\x71\xe2\xc1\xfe\x67\xc4\x2f\xbf\x71\ \x54\x57\x0f\x2b\x4c\x10\xc6\x47\x8b\xdb\x98\xfe\x47\xe9\x5c\xef\ \x1c\xad\x4a\xd2\xc2\x1f\x0f\x86\x21\x51\xb4\x45\x88\xeb\xad\x60\ \x71\xa8\xc0\xc5\x78\xaa\x34\x70\x09\xf7\xb5\x7a\x0c\x53\x2a\xe0\ \xce\x5d\xb2\x84\x51\x59\xfc\x6b\x0c\x17\xc2\x4b\x82\x64\x8c\xe5\ \x27\xad\xf4\xfe\x29\xe7\x36\x08\xc4\xad\xd5\x7f\x17\x0f\x14\xa3\ \xe2\x40\x0f\xb8\xac\x47\x5f\x2e\x70\x08\x04\x90\x41\xf8\x4f\x31\ \x5a\x7c\x20\x93\xc3\x98\x1f\x86\x4d\x3e\x95\x8e\x3e\xe3\x55\x61\ \x45\xc8\x02\xa4\xa9\xcb\x7d\x0d\xba\x1b\xd0\x48\xc5\x30\xee\xe3\ \x70\x2c\x3e\x75\x21\x12\x28\xe3\x91\x17\xd3\x6c\xdf\xd4\x0d\x6c\ \x3a\xb9\xb4\x15\x2c\x32\xb1\x1d\x2a\x18\x12\x45\xad\x61\xca\xf5\ \x00\x15\x36\xd7\x5a\x19\x0a\xc7\x11\x76\x07\x28\x36\xd0\x53\x09\ \x6c\xd9\x42\xeb\xef\x43\x32\x13\x86\x93\x31\xbf\x97\x6b\x54\x41\ \x19\x49\x14\xb4\x6c\x0d\xb7\x16\xd4\x57\x65\xe9\x4a\xc1\xe1\xa4\ \xc8\x25\x49\x42\x13\xe9\x16\xde\xac\x44\xfe\x20\x60\xcb\x96\x44\ \xf5\x2f\xef\x44\xff\x00\xa8\x20\x75\x15\x24\x02\x2c\x45\xc5\x16\ \x95\x1f\x5a\x51\x7f\x67\x66\x04\xa0\xcc\x2d\xa8\x1b\xd1\xe0\xb1\ \x72\xe1\x9f\x2c\x77\x65\xb8\xcf\x13\x7c\x5e\xdd\x0d\x1c\x32\x34\ \x52\x07\x4d\xc5\x5c\x9e\x1c\x3e\x2e\x21\x29\x05\x5b\x9b\x2f\x2f\ \x7a\xa4\xfe\x2d\x51\xe2\x1c\x60\x3e\x58\x63\x8c\x04\x27\xef\x05\ \x8d\xea\xd7\x03\x8f\x36\x29\x67\x43\x78\xd0\x5e\xff\x00\xb5\x4a\ \x70\x9c\x37\xda\x04\xcd\x3b\x16\x03\x5f\x2e\xe7\xad\x5c\x8a\x35\ \x89\x6d\x0e\x97\xd4\x92\x3d\x5e\xe2\xb5\x25\xdd\xa2\xe7\xc5\x85\ \x24\x53\x01\xb8\xa4\x23\x66\x21\x6d\x95\xed\xe9\xeb\xdc\x75\xa3\ \x0d\x63\xa9\xb5\x74\x60\xca\xeb\xd7\x02\x0d\x56\x9b\x14\xd1\x4a\ \xc8\xf1\x03\x6d\x88\x3b\xd5\x6e\x25\x9b\xeb\x42\xe2\xde\x65\x17\ \xe6\x54\x73\xf6\xef\x41\x87\xc4\x47\x30\xb0\xf2\xb7\xe1\x3c\xe8\ \xf3\x6b\x56\xea\x29\x80\x6f\x4d\xc8\x3b\x11\x48\x11\xda\xf9\x97\ \xe7\x56\x25\xba\x13\x2c\x6a\x48\xf8\xd0\x7e\xa2\xa1\xca\x90\x19\ \x48\x65\x3b\x11\xce\x8b\x0c\x54\x91\x2d\xb5\x2d\x94\xf2\xb5\x5a\ \x75\x06\x94\xc9\x58\xb0\xab\x32\x91\xc8\x7c\x8d\x03\xe6\x03\xd2\ \x6a\xc3\x2d\xa8\x6d\x59\x4a\xb9\x81\xed\x42\xe5\x6d\xbd\x14\xb1\ \x95\x6b\x5b\x4a\xe0\x05\xb6\x15\x34\x43\xb0\x1d\x6a\x01\xb8\xb8\ \xd0\x51\xca\x97\x3a\x69\x4b\x54\x65\x3b\xdc\x56\x6a\x49\x02\xdb\ \x5f\xde\x86\x50\x81\xa2\x76\x00\x05\x72\x09\xe9\x71\x44\x76\xae\ \xd0\x82\xad\xaa\xb0\xb1\x15\x20\xc8\x5b\x35\x9c\x66\x1c\xc1\xd6\ \x80\x8f\x08\xf8\x90\x6a\xa7\xd7\x1f\xf1\x44\x97\xcf\xe0\xbe\xac\ \xa2\xea\xdf\x8c\x54\xae\x8c\x0e\x97\x15\x17\x2b\x24\xa9\x9e\x32\ \x48\xe6\x08\xda\x84\xad\x74\x51\x04\xc4\x4d\x97\x45\x75\x0c\xa0\ \x1e\xf5\x24\x74\x63\x42\x27\x15\x2b\x40\xea\x88\x80\x16\xb7\x9d\ \x85\xc5\x31\x62\x60\xe5\x54\x34\x92\x36\xef\xcc\xfb\x76\xa9\x0c\ \x1a\x3c\xb2\x00\x50\xee\x0d\x54\xe3\x12\xcd\x87\x85\x30\xb8\x7c\ \x59\x8d\x59\x73\x12\x45\xcd\x8d\x17\xae\xd2\xd4\x91\x88\x96\xf3\ \xba\xc6\xbd\xcd\xef\x55\x66\xe2\x49\x1d\xd7\x0a\xa4\x9b\x7a\xdf\ \x97\xb5\x50\x88\xb1\xf2\xac\xcc\xe3\xf0\xcc\x74\x6f\x63\xca\xad\ \xe1\x38\x78\x95\x81\x93\x34\x00\x9d\x15\xac\x4b\x7b\x56\x76\xdf\ \x0a\xb2\xe6\x91\xaf\x62\xce\x4e\xbc\xcd\x5e\xc3\x70\xc9\x99\x33\ \x4a\xcb\x08\x23\x4c\xda\x93\xf2\xab\xf8\x68\xe2\xc3\x8c\x98\x68\ \x80\x6e\x6e\xda\xb7\xf6\xae\x79\x61\x56\x39\xe5\x24\x8d\xca\xae\ \x6b\x7c\xe9\x9c\x27\xd1\xaa\x91\xf0\x60\xe4\x01\x8c\x4b\x9d\x00\ \xc8\x75\xaa\x33\x06\x8e\x46\x8d\xac\x72\x92\x2f\xd6\xb7\xf0\xcd\ \x1e\x51\x88\x0d\x78\xd2\xec\x49\x16\xda\xb1\x1c\x78\xd2\xb1\x03\ \xd6\xd7\x03\xde\x9e\x5c\x64\xf1\x4a\x77\x02\x84\xcb\x8d\x0c\x7d\ \x11\xf9\x9e\xb7\x20\x8c\x04\x90\xa9\xd5\xa4\xd7\xb5\xa9\x38\x5c\ \x32\xe1\x30\x8b\x11\xf5\xb6\xb2\x69\xf9\x55\xc4\x06\xf9\x94\x8b\ \x91\x62\x1b\x66\xe9\xec\x6b\x7c\x78\xe4\xc6\x6d\x42\x92\x54\x16\ \x3e\x66\x25\x9b\xb5\xff\x00\xd8\xa9\x06\x93\x01\xcf\x96\x55\x1e\ \x52\xa3\xf4\xb5\x36\xb4\x04\x0d\x74\xa8\x26\x8f\x21\xb6\x61\xe9\ \x6e\x86\x86\xf5\x20\xd2\x99\xec\x0a\xb1\x07\x71\x52\x4f\xfc\x4b\ \x8d\x8f\x82\xb6\xfa\xd5\xae\x20\x83\xc3\x38\x83\xb2\x0f\x38\xeb\ \x58\xf1\x4e\xff\x00\x6b\x38\x86\x42\x55\xae\x0e\x9a\x5a\xb1\x7a\ \x6a\x2e\x8a\x35\xa1\x4c\xae\x99\xa3\x60\xcb\xfa\x51\x8e\x94\xa6\ \x86\x0a\x6f\x16\x3c\xac\x46\x75\x1a\x77\x14\xda\xce\x81\xcc\x72\ \x87\x07\x63\x5a\x4c\x3c\xda\x6c\x75\x15\xb9\x59\xa9\xa8\x22\xa4\ \x6d\x5c\x69\x45\x95\x2a\x6e\xbf\x4f\xe2\xa6\xe5\xd3\x29\x73\x66\ \xd8\xf4\x3d\x68\x88\xa0\x65\x20\xdd\x34\x3d\x3a\xd4\x95\xe3\x49\ \x65\xc4\x2a\x4a\xbe\x55\x62\x49\xb6\xfa\xd4\x7f\x88\xd4\xb6\x06\ \x39\x47\xc2\xf6\x3d\xaa\xcc\x57\x08\x01\xb8\xae\xc6\x28\x7c\x04\ \x88\xcb\x71\xa1\xac\xe7\x49\x82\xf8\x49\x64\x8f\xed\x09\x18\x39\ \xc7\xde\xa0\xdd\xba\x30\xef\x56\xb0\x91\x78\x18\x35\x8c\x9b\xb3\ \x9c\xe7\xf6\xa6\x66\x21\x81\x5d\x2d\xa5\xab\xac\x02\x15\x1b\x29\ \xba\xff\x00\xa4\xff\x00\xb3\x58\x93\x1a\xd7\x05\x0e\x8c\x8c\x6c\ \x18\x5a\xfd\x2a\xa3\x62\x4c\x70\x18\x0a\xdc\xdb\x2a\x91\xef\x56\ \x74\xcc\x09\xda\xd5\x2e\xb0\xbc\xaa\xcd\x18\x62\x39\xd5\x40\x97\ \x3b\x46\xac\xc1\x41\x65\x04\xde\xa0\x82\x39\xaf\xbd\xa8\x9d\xff\ \x00\x2e\x54\x05\xa9\x4e\x1a\x0b\x0b\xf7\x35\x28\x03\x5d\x18\x68\ \xc2\xc6\x82\xfa\xd7\x4a\xe6\x38\x19\xc6\xe3\x41\xda\xf5\x27\x46\ \x2d\x87\x41\xcc\x5c\x7e\x74\x13\xab\xf8\xab\x88\x8c\xdd\x90\x79\ \xd7\xa8\xa6\x40\x19\xf0\xf1\x04\x17\x25\x2d\xa7\x5a\xb5\x86\xc2\ \x28\x23\xc6\x24\x96\xd3\x28\x36\xb5\xea\xcd\x4a\x6e\x41\x01\x94\ \xdd\x58\x5c\x50\xd5\xfc\x3a\xe1\x9e\x20\x82\x38\x83\x47\x71\x66\ \x3c\xaf\x4a\xc4\xc3\x87\x22\xf0\xc8\xa5\xbf\x00\xd6\x9c\x5a\xab\ \x4d\xc3\xca\x62\x7b\xee\xa7\x42\x3a\xd2\xb5\x04\x82\x2c\x6a\x77\ \x34\x16\x9c\x46\xf1\xa9\x06\xe0\xec\x68\xef\x54\xb8\x7b\xb3\x46\ \x50\x1f\x49\x24\x03\xd2\xad\x8a\xdc\xac\x98\x32\xba\xe5\x71\x71\ \xf9\x8e\xe2\x97\x2c\xb2\xc5\x20\x49\xc9\x92\x36\xd5\x5f\x98\xf7\ \xa2\x5a\x62\x3e\x53\x72\x74\x3a\x1a\x50\xa3\x7f\x28\x2b\xe6\x1e\ \xf5\xd8\x88\xd7\x11\x1f\xf5\x0d\x8f\xec\x6a\xbe\x2c\xf8\x0c\xb3\ \xc4\x72\x82\x6c\x40\xf4\x9a\x6e\x16\x5f\x19\x4b\x65\xca\xcb\xbd\ \xb9\x8a\xb7\xe5\x0a\x48\xae\xd2\x05\x4f\x55\xf4\xab\xe2\x56\x5b\ \x2e\x23\xca\xc7\x66\xf8\x5b\xe7\xd6\x95\x2c\x46\x2c\x40\xc4\x47\ \x72\xb7\xf3\x2d\xef\x6a\x6b\x32\x11\x63\x62\x0e\xd7\xe7\x54\x98\ \x85\x72\x06\x61\xb7\x51\x49\x90\xe4\x6c\xcb\xa2\xc8\x6c\x47\x2c\ \xdd\x6a\x56\x24\x56\xcc\x85\x93\xfd\x26\xd4\xbc\x44\x02\x4d\x4c\ \xd2\x5f\x95\xf5\x15\x5d\x43\x06\xf4\x2f\x42\x09\x03\x5f\x50\x16\ \x36\xd9\xbb\xd4\x92\x0a\xdf\xad\x04\x04\xde\x81\x85\x11\xde\x85\ \xa8\x41\x61\xa5\x25\xc6\xb4\xe6\x34\xa6\x35\x94\x4c\x82\x96\x69\ \xce\x39\x52\xd8\x6b\x53\x40\x61\x42\x45\x19\xa1\xac\xa2\xe7\x42\ \xf1\x66\x53\x69\x22\xd5\x4f\xed\x52\xb9\x65\x8d\x65\x5d\x2f\xbd\ \xb9\x1a\x35\xd1\xae\x39\x52\x9e\x19\x52\x63\x26\x1e\x40\x81\x86\ \xa0\x9d\x8d\x45\xd3\x12\x98\xac\x39\x20\x9c\xca\x41\x15\xd7\x63\ \x7b\x0f\x9d\x32\x30\x14\x16\xbe\x79\x1b\xd4\xe7\xf4\x1d\xa8\x58\ \x00\x2e\x36\xe9\x42\x2c\x29\x1b\xd5\x4f\xf1\x08\x6f\x16\x27\x03\ \xca\x63\x02\xfe\xd5\x7c\xed\x4a\xe2\x31\x78\xbc\x3d\xf6\xcd\x17\ \x98\x1e\xdc\xe8\xb3\xa5\xac\xfe\x0b\x1a\xcb\x8e\x51\x20\xb8\x00\ \x9b\x56\xb3\xbf\x8a\x32\xc9\xe9\xf8\x6d\xf0\xfb\x56\x67\x04\x36\ \xc7\x82\x7f\x09\xfd\x2a\xfa\x99\x5d\xc8\x81\x63\xc8\x86\xc5\x9f\ \x99\xa3\x87\x8a\x8d\x56\x76\x19\x67\x99\x5a\x3f\xe9\xf5\x37\x63\ \x4d\x57\xd3\x2e\x55\xc9\xf8\x6d\xa5\x0a\xa9\x63\x94\x80\xaf\xbe\ \x50\x6e\x1b\xb8\x35\xda\x83\x62\x2d\x5b\x05\x71\x29\x46\x1f\x02\ \xd8\x54\x56\x19\x9a\xe0\xf2\x2a\x75\xa5\xff\x00\x87\xe2\x0d\x88\ \x69\x98\x5d\x62\x17\x00\xf3\x3c\xa9\x9c\x63\xcc\x72\x58\xe9\x11\ \x00\xf2\xba\x9f\xe2\x8f\x81\x9f\xff\x00\x1d\x25\xbf\xf7\x47\xe9\ \x47\xff\x00\x47\xe2\xf0\x39\xef\x7e\x74\xd8\x90\x0f\x88\xe9\xa9\ \xa4\x47\x47\x88\x7c\x98\x29\x9b\x63\x96\xc0\xf7\x35\xb6\x04\xa5\ \x40\x01\x54\x01\xca\xc2\x8a\x92\x9a\x0f\x2e\x9d\xb9\x1a\x60\x61\ \x60\x7a\xd4\x85\x7a\x91\x40\x0d\xe8\x85\x49\xd3\x58\xe0\xe6\x56\ \x1a\x3a\x65\xff\x00\x7f\x4a\xa2\x80\xc5\x12\x46\x0e\xca\x2f\xde\ \xae\x62\xce\x5c\x04\xff\x00\x89\x92\xca\x3b\xd5\x18\x24\x12\xc4\ \xac\xcc\xaa\xca\x2c\xe0\x9b\x5a\xab\xe9\x89\xca\xab\x8b\x81\x96\ \xca\x5e\xf9\x80\xd8\xd3\x4e\xf4\x99\xd1\xe6\x64\x31\xb0\x44\x4d\ \x9c\xf3\xee\x05\x1f\x88\x43\x85\x94\x7a\x8d\x84\x8b\xb1\xf7\xa2\ \x13\x2b\x4f\x0c\xd9\xb0\xc8\xda\x6d\x63\x59\x7b\x1b\x1d\xc5\x5f\ \xe1\xcc\x0e\x19\x97\x9a\x9b\xd6\xb8\xfa\x29\xe4\xd7\x03\x51\x5d\ \x5b\x02\xae\x35\xc2\xba\xa4\x1a\x92\x33\x44\xeb\xd5\x48\xa9\x22\ \xba\x2f\x58\x1d\x74\xa9\x32\x69\x8b\xa8\xf7\x4d\xbd\x8f\xf7\xa8\ \x98\x65\x91\x97\xa1\x22\xa0\xb8\x46\x88\x9d\x03\x12\xa7\xe7\x5c\ \xcb\x98\xe9\x60\x37\xae\xf4\x8b\x57\x35\xd5\x85\xc5\xb7\xa1\x26\ \xf5\x24\x31\xae\xd0\x2b\x33\x1b\x2a\x8b\x9a\x93\x50\x50\x3c\x61\ \x0e\xcc\xd7\x3e\xc0\x5f\xf8\xa8\x82\x19\xe1\x95\xb2\xa1\x60\x79\ \x06\xe7\x57\x70\xf8\x4c\xe8\x7c\x6d\x10\xfc\x36\xd4\xd0\x43\x85\ \x18\x84\x0e\x55\x54\x21\xf2\x5b\x4f\x95\x5b\xc3\xc8\xef\x9d\x25\ \x5b\x3c\x7c\xfa\x8a\x64\xfe\x8b\x5d\x0c\x71\x61\x80\x48\x97\x2c\ \x6f\xb1\x26\xe5\x5b\xdf\xbd\x17\xa5\xae\x46\xa0\xd4\x92\x2c\x41\ \x17\x07\x71\xd6\xa2\xc4\x28\x55\x90\x10\x3f\x1a\xdf\x4e\x97\xde\ \xb6\x19\xb8\xf8\x72\x62\x2c\xb7\x21\xc5\xc5\x0e\x59\xb0\xd2\xab\ \xb2\x15\x23\x51\x71\x57\xd2\x39\x3c\x7f\x1a\x56\x4b\x80\x42\x2a\ \xeb\x6a\x31\x7b\x65\x36\x20\xee\x0e\xd5\x9c\x3a\xcb\xc5\xe2\x13\ \xc4\x0e\xf1\x39\x32\x0b\xf9\x0d\xea\x22\x78\xe5\x04\xc6\x4e\x61\ \xba\xb0\xd4\x53\xf8\xb8\x5c\x2c\xb0\xcf\x1a\xdd\x42\x90\xca\x0e\ \xab\x7a\xcd\x77\x93\x11\x8e\x0f\x87\x52\xad\x6e\x7f\xa9\xac\x5b\ \x94\xc5\xfc\x1b\x14\xc4\xa9\x02\xe0\x9b\x69\x57\xa3\xf1\x33\x9b\ \xdc\x0e\xf5\x47\x0e\x59\x5d\x5a\x50\x8d\x62\x09\x68\xf9\x7c\xab\ \x51\xc7\x98\x90\x41\x5b\xe8\x45\x6f\x88\xa1\x19\xba\x8f\xa5\x12\ \xb6\xe0\x8a\x8a\xe5\xf5\x8f\x7a\xd0\x06\x28\x2c\xa5\x70\xcb\xa1\ \xbd\xd8\x81\xb5\x33\x0f\x14\x31\xae\x58\xc3\x2b\x1d\xc9\x35\x53\ \x0d\x37\x87\x8d\x71\x29\x23\x35\xc1\x35\x70\xd8\xe8\x75\xf6\x34\ \x4f\xea\x10\x72\x0d\x8e\xff\x00\xad\x0e\x89\xa0\x07\xc3\xfa\xe4\ \xfe\xd4\x19\x6e\xc7\x33\x1d\x0e\x95\x20\x10\x74\x66\xa5\x08\xf9\ \x40\x20\xdd\x08\xd0\x8d\xa8\x58\xd0\xc8\x59\x15\x98\x05\x2a\x7d\ \x63\xf7\x15\xce\x6c\x05\x8d\xc1\xd8\xf5\xa9\x21\xbd\x54\x27\x7f\ \x7a\xe6\x3a\x7b\xd0\xb1\x36\xd3\x71\x59\x4e\x34\x2d\x44\x35\x17\ \x1b\x50\xbd\x15\x16\xc7\x7a\x07\xda\x88\xef\x40\xf4\x20\x9a\x17\ \xa2\xa1\x6a\x9a\x03\x0a\x13\x47\x42\x45\x15\x06\xd5\xc4\x03\xa5\ \x49\xd0\x57\x0c\xdd\x85\x08\x20\x11\xa0\xd4\x54\x10\x49\xd6\xd6\ \xa9\x62\x46\xeb\xf4\xa3\x58\x99\x97\x35\xac\xb6\xf5\x1d\x05\x48\ \xa5\x60\xd5\x18\x86\x58\xb0\x92\xbb\x91\xe6\x52\xaa\x0f\x33\x4a\ \xc4\x62\x20\xc3\x7c\x42\x57\xe4\x14\xe9\xf5\xaa\x38\xa9\xe7\xc5\ \x38\x0e\x6f\xaf\x95\x40\xd2\xb3\x79\x61\xc1\xf0\x78\xd9\xf1\x7a\ \x72\x46\xb9\xe9\xa5\x68\xc2\x99\x21\x64\xb5\x8a\xc9\xaf\x7b\xed\ \x43\x81\x80\xe1\x70\xc5\x5a\xde\x24\x9e\xa1\xd0\x53\x88\x62\x33\ \xa2\xe6\x60\x2c\xcb\xf8\x87\xf2\x29\xe3\x32\x2b\x43\xe5\x65\xc8\ \xe2\xeb\x7f\x98\xf6\xa9\x80\x3b\x19\x22\x63\x9a\x48\x9a\xda\x6e\ \x45\x28\xca\x89\xe6\x6c\xe0\x77\x4b\x52\x10\xc9\x89\xc7\xb1\x52\ \x63\xce\x6e\x48\x3b\x0a\xb5\x62\xdf\x12\x2a\x20\x45\x76\xca\xea\ \x49\x23\xaa\xda\xc6\xff\x00\x2d\x7e\x55\x5f\x81\x4e\x23\x99\xb0\ \xf2\x1b\x24\x9a\x7b\x1e\x55\x6e\x18\xa0\x89\x83\x14\xce\x79\xb3\ \x9d\x4d\x63\x71\xbc\x46\x27\x09\xc5\xa5\x82\x19\x59\x62\x43\x74\ \x17\xe5\xca\x8e\x5d\x76\xa7\xf1\xbc\x64\xcb\x70\x07\x9a\xfc\xc6\ \xd4\x67\x58\xd5\x5c\x96\x56\x7b\x9b\x74\x03\x5f\xda\xab\xae\x35\ \x25\x8e\x27\x92\x36\x66\x96\x30\xc0\x82\x2f\xd3\x5f\xa5\x58\x52\ \xe0\x16\x75\xc8\x58\x65\x55\xe6\xa3\xbd\x74\x96\x56\x52\xba\x0a\ \xeb\xdb\x6d\xb9\x8a\x59\x6b\x30\x1c\x88\xa9\x27\x43\x52\xc3\x97\ \xda\x8a\xe1\x53\x33\x9b\x2f\x7a\xab\x2c\xa2\x30\x19\xda\xec\x46\ \x8b\xfc\xd5\x77\x9a\x49\x48\x32\x1d\x46\x80\x0d\x80\xa3\x62\xc3\ \xa6\x99\xa5\x92\xe3\x45\x1b\x0e\x94\x24\x86\x3e\x75\x56\x3d\xc5\ \x2c\x1a\x2b\xd1\xa4\x45\xae\x75\xa0\xc6\x10\x30\x4f\x7e\xa2\xde\ \xf4\x57\x19\x80\xe6\x6a\x9f\x13\xc4\x23\x48\xb0\xa9\x39\x57\x9f\ \x22\x6a\xb7\xa5\x17\x60\x72\xf8\x68\xdd\x8d\xc9\x1a\x9a\xbb\xc2\ \x5b\xef\x99\x09\xf5\x2e\xdd\x4d\x64\xf0\xb7\xf2\x3c\x6c\x74\x1a\ \x8b\x9a\xb9\x0c\x85\x5c\x3a\x5e\xe3\x9e\xd5\xae\x35\x56\xbe\xbc\ \xaa\x6c\x29\x65\x54\xd9\x94\xe8\xc2\xe0\xde\x89\x43\x03\x7c\xd5\ \xd1\x91\x8a\x9a\x81\xa8\xb8\xa9\xa9\x22\xbb\xbd\x71\xae\xa9\x28\ \xf1\x24\xcb\x89\x2d\xc9\xf5\x15\x5d\xd1\x64\x88\xc6\xe6\xc0\xea\ \x0f\x43\x5a\x18\xf4\xcf\x86\xcc\x37\x8f\x5f\x95\x67\xd6\x39\x4e\ \xcc\x20\x26\x36\x26\xf2\xdd\xd5\x76\xd6\xe0\xd3\xc3\x23\xb9\x0a\ \x0a\xb8\xdd\x1b\x7a\xe3\xa8\xf9\xd0\x63\x43\x18\x44\xab\xeb\x8d\ \xb7\xea\x2b\x3e\x11\xda\xf4\xd8\x21\x69\x65\x65\x03\x45\xb2\xdf\ \xa7\x33\xfb\x7d\x2a\x93\x62\xe7\xd1\x44\x4a\x19\xb4\x0d\x6a\xd9\ \xe1\xd1\x78\x58\x04\x51\xab\x90\x4b\x9d\xf5\xa7\x8f\x74\x51\x80\ \xaa\xa1\x14\x59\x57\x6a\xed\x06\x20\x72\x2f\x1f\xd6\xc6\xa4\x82\ \x37\x04\x50\x49\xa6\x2b\x0c\x7b\x91\x5d\x00\x8e\xd4\x35\x26\xd6\ \x24\x9b\x00\x2e\x4f\x4a\xa3\x89\xe2\x45\x5e\xd0\x22\x65\x1f\x13\ \x0b\x93\x45\xb2\x25\xda\xe1\xa9\xb5\x56\xe1\xf8\xdf\xb4\x4a\x21\ \x95\x50\x33\x7a\x59\x45\xb5\xe9\x6a\xb2\x18\x28\x2e\x4d\x82\x82\ \x6f\x54\xb2\xa5\x0e\x34\x7c\x44\x9d\x41\x16\x4b\x58\xf5\x02\x93\ \x1c\x6b\x04\x62\x34\xdc\x80\x59\xb9\x9a\x94\x39\x99\xcb\x5a\xc5\ \x49\x6b\xed\x40\xaf\xe2\x43\x1c\x82\xc7\x32\xeb\x6e\xda\x56\x3e\ \xeb\x46\x43\xa4\xab\xee\x2b\x46\x42\xb0\xe2\x80\xd5\x63\x92\xe0\ \xf4\x06\xa8\x60\x54\x3e\x32\x35\x61\x70\x5a\xaf\xe2\x54\xc9\x87\ \x71\xf1\x0f\x30\xd2\xb5\x3c\x14\x6c\x08\x36\x3c\xab\x85\xb5\x63\ \xb2\x8b\x9a\xa7\x1e\x2e\x61\x95\x06\x56\x3b\x00\x56\xe6\x9b\x8a\ \x13\xb4\x2a\xc5\x95\x90\x1b\xba\xa0\xb5\xbd\xe9\xd0\x08\xf0\xc6\ \x60\x66\x95\xca\x97\x24\x81\x6a\xb6\x00\x3e\x5b\x82\xca\x35\xbe\ \xf5\xce\x41\x20\x8f\x49\x1e\x5f\x6a\x16\x8d\x1e\x65\x94\xb3\x06\ \x51\x6f\x2f\x3a\xb1\x05\x1a\xc4\x8b\x12\x29\x9b\xeb\x41\x89\xb7\ \xa8\x69\x73\xad\x44\x4c\x72\xdb\x29\x20\x73\x15\x21\x5e\xc6\x84\ \x00\xb9\xd1\x76\x04\x38\x16\xd8\x1a\x92\x45\xed\x7d\x68\x26\x57\ \x62\xad\x1b\x5a\x44\xd0\x03\xb3\x0e\x95\x54\x82\x68\x49\xa5\x7d\ \xad\x09\x2a\xf0\xb0\x6b\xec\xa6\x8f\xc4\x87\xf1\x38\xee\xc8\x40\ \x15\x9d\x43\x24\x8b\xb5\xc1\x52\x06\x9d\x08\xff\x00\xcd\x09\x52\ \x76\xd6\x85\xf1\x18\x74\xff\x00\x98\x58\x8e\x40\x68\x7e\x75\x4a\ \x58\xf1\x0e\xc6\x61\xa6\x6d\x40\x07\x51\x55\xa7\x16\xa4\xb2\x30\ \x56\x04\xb3\x6c\xa3\x7a\x16\x23\x36\x42\xa5\x09\xf4\xdc\xdc\x37\ \xce\xab\x0c\x54\x58\x58\x8e\x70\x5e\x56\xe5\x7f\xd6\xb9\x38\x84\ \x33\x44\xe9\x24\x45\x34\x26\xe0\xdc\x0a\xce\xac\x3c\x8b\x1b\x1a\ \x83\x41\x0c\xa1\x80\x49\x18\x6b\xe8\x93\x93\x0a\x36\x04\x0b\xee\ \x3b\x6b\x49\x06\x80\x16\x3b\x28\xb9\xaa\xd8\x7c\x53\xc9\x89\xc9\ \x27\xa1\xcd\x80\xfc\x35\x65\xf2\xb4\x4e\xa4\xd8\x32\x91\x7e\x95\ \x99\x2e\x1e\x78\x4e\x7f\x84\x1f\x50\x3a\x56\x79\x69\x8d\x09\x06\ \x51\xdc\x1a\xe1\x72\x2e\x45\xa9\x31\xe3\x22\x68\xc3\x4a\xcd\x9c\ \x0b\x1b\x0d\xe9\xb0\x49\x2c\xaa\x1d\x63\x8e\x38\xfa\xb6\xa5\xa9\ \xd0\x0c\x7c\xc7\x0d\x84\x56\x50\x0b\xbb\x58\x5f\x5b\x0a\xc9\x96\ \x59\x24\xbe\x77\x2d\x7d\xee\x6b\x5b\x89\x2b\xbe\x04\x93\x87\x8d\ \xb2\x38\xb5\xa4\xeb\xde\xb2\x64\x31\x89\x04\x72\x2b\x42\xcd\xe9\ \xb9\xba\x9f\x9d\x73\xe7\xe9\x85\xac\x2d\x2c\x81\x62\x42\x49\xe5\ \x5b\x38\x2c\x32\x61\x63\x1b\x3c\xbc\xd8\x8d\xbd\xa9\x7c\x16\x33\ \x16\x1e\x49\x34\xcc\x5b\x28\xed\x4f\x7b\x8d\x47\x3a\x78\xcc\xed\ \x54\x9d\xf5\x3a\x9a\x9f\x6a\xe5\x51\x6d\x45\xfb\xd7\x59\xbb\x56\ \xc0\x96\x47\x3e\x5d\x5a\xdc\x9b\x51\x55\xe7\x88\x41\x8f\x8d\x97\ \x28\x0f\x6b\xad\xce\x9d\x45\x3e\x30\x55\xee\x0d\xef\xbf\xf3\x54\ \x4a\x48\xb8\xc0\xa4\x33\x30\x6d\xba\xd1\x4c\x5f\x58\x4a\xcd\x96\ \xf7\x0a\x4d\xcf\x40\x2b\x17\x8d\x83\x8f\xe3\xea\xb1\x82\x04\x81\ \x7e\x55\xa3\xc5\x78\xb6\x0e\x0c\xf0\xa5\xe4\x91\xbf\xcc\x03\x61\ \xda\xaa\xe1\x63\x68\x10\xe2\x26\x00\x62\x27\xd4\x0b\xea\x8a\x6b\ \x3c\xb2\xf4\xa2\xfe\x04\xab\x63\xce\x50\x32\xa4\x64\x2e\x9d\x06\ \xf5\x64\x58\xef\x54\x78\x41\xff\x00\x89\x6f\xfe\x36\xfd\x2a\xe0\ \x35\xae\x3e\x0a\x00\x33\x35\xce\xc3\x6e\xf4\x5e\x55\x46\x76\x1e\ \x55\x17\xb7\x53\x45\x90\xa9\x0a\x75\x3f\xad\x56\xe2\x32\x02\xc2\ \x25\x20\x85\xde\xdc\xcd\x37\xa4\x44\xae\xd2\x39\x66\x37\x26\xb8\ \x54\x0a\x90\x2b\x0d\x0d\x4d\xa9\x80\xd2\x41\xb5\x4e\x6a\x74\x60\ \xb1\x12\x98\x85\x94\x5d\xdc\x59\x47\xef\x54\x1b\x09\x89\x92\x75\ \x41\x13\x0d\x37\x23\x41\x57\xdc\xf9\xe6\x6b\xf9\xae\x32\xf5\x0b\ \x6d\x28\x92\x46\x0b\x94\xb1\xef\xad\x16\x6a\xd0\x88\xca\x20\x45\ \x4d\xb7\x6e\xb4\xf0\x75\xa0\x0d\x44\x0d\x6e\x05\xac\x1e\x27\xc3\ \x19\x1c\x5d\x39\x5b\x71\x5a\x09\x62\xb9\x94\xdd\x7a\xd6\x3a\xd3\ \x60\x95\xe2\x37\x46\x23\xb5\x6a\x51\x8d\x45\xd3\xdb\xf4\xa2\x1b\ \x8a\x46\x1f\x15\x1c\x9a\x3f\x91\xbf\x23\x4e\x22\xde\xd5\xb8\x04\ \x45\xe8\x48\xa2\x5d\xaa\x6d\x7a\x40\x2d\x7d\x0e\xaa\x74\x22\xb3\ \x71\x31\x18\xa5\x2b\xcb\x91\xeb\x5a\x85\x74\xa0\x91\x12\x44\xcb\ \x20\xb8\xe5\xd4\x56\x6c\xd3\x2b\x2f\x99\xed\x52\x85\xaf\x65\xd4\ \x9a\xb8\xd8\x38\x80\xb8\x77\xbd\xf4\xd2\x9d\x1c\x51\x45\xe8\x5d\ \x7f\x11\xde\x8f\xcd\x3a\xa7\x88\x85\xd2\x14\x91\xf5\x60\x79\xfc\ \x34\xcc\x2c\x4e\x22\x25\xdd\x95\x5b\x65\x06\xd7\xa7\xcc\x03\x64\ \x8d\xbe\x23\x98\x8e\xc2\x86\x47\x24\xf7\xab\x02\x02\x5b\x44\x96\ \x45\xf9\xde\x97\x1c\x32\x7d\xa5\x64\x92\x5c\xc1\x75\xbf\x3a\x2c\ \xda\x5c\x9a\x25\x34\xa2\xf8\xab\x95\xc0\x1b\x7f\xcc\x6b\x56\x39\ \x17\xda\xb6\xb1\xe9\xe2\xe0\x1d\x46\xe9\xe7\x15\x8c\x6b\x1c\xfd\ \x31\x38\x42\xcb\x8a\x8d\x94\x90\x43\x8d\x6b\x6b\x88\x9c\xb0\xcd\ \x61\xb9\xcb\xf9\xd6\x18\x62\x08\x23\x71\x5b\x78\xe1\x9f\x08\xc4\ \x10\x6e\xaa\xd7\xbe\xfa\x6b\xf9\xd5\xc7\xca\xaf\xac\xb2\x85\xe0\ \x96\x30\x45\xd9\x0d\xbf\x5f\xda\x87\x0e\x99\x70\x71\x03\xcc\x16\ \x16\xe8\x69\xd1\x30\x52\x58\xe8\xa1\x4d\xc9\xe5\xa5\x09\x37\xca\ \xb6\xb1\x08\x05\xbe\x55\x13\x78\x71\xb6\x36\x22\xd6\xdf\x7a\xd2\ \xbe\x53\x73\xcb\x7a\xc9\x43\x96\x45\x27\x91\xb9\xad\x49\x08\x63\ \x9b\x93\x6b\x5a\xe2\x2a\xa3\xdb\x0d\x8f\x59\x00\x39\x0b\x66\x1e\ \xd5\x61\xb1\x10\xa4\x6c\x43\x86\x26\xf6\x51\xce\xf4\x18\xb4\xcd\ \x11\x1b\x91\xaa\xf5\x15\x45\x2d\x9d\x73\x6d\x7e\x74\x78\x9a\x58\ \x5c\xdf\x64\x8f\x36\xfa\xdb\xda\x8a\xe6\xf6\x16\xbf\x7e\x54\x33\ \x92\x24\xb2\xb5\x94\xed\xd8\x57\x0b\x28\xb0\xf9\xd6\x82\x58\x66\ \xf5\x12\x7d\xb4\xa9\x16\x0b\x61\x43\x9a\xa4\x1b\xd4\x9c\xe7\x63\ \xd0\xd0\xb0\x37\xbd\x49\x60\x7c\xa3\x73\xa5\x11\xb0\x1a\x9b\x7b\ \xd4\x80\x59\xaf\x7d\x01\xeb\x6d\x7e\xb5\x05\xd8\x0f\x33\x5c\x73\ \x07\x51\x52\x59\x3a\x8e\xe7\x61\x49\x9f\x11\x85\x45\x39\xde\x4d\ \xb4\xfb\xb2\x2f\xf3\xa1\x2a\x71\x18\xd5\x66\x53\x10\xb8\x93\x60\ \x39\x1a\x64\xb8\x94\x8a\x20\xcb\xe6\x90\x2d\x89\xbf\x95\x2c\x39\ \x9a\xab\x89\xc6\x99\x2f\x1a\xa6\x44\xe5\x66\xd4\xfc\xeb\x37\x1d\ \x02\x2a\xc7\xe1\x33\x2a\xc8\xd6\x2a\x5a\xff\x00\x3a\xe7\x79\x67\ \x8d\x48\x63\xa9\x99\xcb\xa4\x89\x2b\x1d\xf2\x9b\xd0\xba\xb4\x78\ \x69\x8b\xa9\x19\x93\x28\xb8\xb5\xc9\xa3\xc9\x0c\x0f\x91\x20\x43\ \x94\xd8\xb1\xbd\xcd\x41\x2a\xba\xac\x44\x13\xb1\x72\x5b\xe9\x7a\ \xcb\x48\xe1\xe2\x4c\x3c\x19\x27\x70\x50\x9b\x15\xdc\xa5\xf6\x35\ \x77\xc3\xc4\x61\xe3\xf1\x95\xac\x2f\x6b\x75\xaa\x31\x0f\x10\xbc\ \x6d\x7f\x3a\x9b\x9b\xfc\xe9\xff\x00\xe1\xe9\xc6\x30\x0c\x3c\xcd\ \xe6\x88\x5d\x6e\x7d\x42\xa9\xfc\x15\x78\xd9\x91\x58\x8b\x07\x50\ \x48\xe9\x42\x9e\x47\x22\xe3\x5e\xb4\xd9\x83\x03\x66\x16\x3d\x29\ \x6c\x9d\xf5\xae\x81\x5e\x7c\x28\x7c\x75\x94\x05\x52\xa1\x9b\xb5\ \x58\x36\xb0\x55\x16\x55\x16\x15\x28\xa0\x48\x0d\xcd\xda\x36\xbf\ \xc8\x8b\x7e\xf5\xce\xcb\x04\x46\x69\x6c\x00\xf4\x83\xf1\x1a\x27\ \x49\x5b\x8c\xb8\x8f\x06\x20\xbf\x9a\x43\x98\x8e\xd5\x9b\x2c\x26\ \x60\x98\x7b\xfa\x48\x77\x62\x3d\x3d\x05\x14\xaf\x26\x27\x11\x99\ \xdb\xcc\xc6\xde\xd5\xab\x81\x81\x53\x0e\x31\x0e\xbe\x77\x76\x65\ \x53\xf9\x13\xf2\xae\x7f\xed\x4f\x82\x0a\x23\x88\x26\x97\x3e\x66\ \xb5\x75\xaf\x44\x41\x2d\x73\xa9\x34\x4a\x2d\xef\x5d\x70\x01\x12\ \xc6\xf7\xd3\xa5\x11\x14\x56\xae\xa9\x04\x21\x24\x00\x09\x27\xa5\ \x54\xe3\x73\x5b\x0c\xeb\x86\x65\x33\xc6\x9f\x78\xc3\x9a\xf4\x1e\ \xd5\x67\x1f\x2b\x41\x81\x2c\x9a\x34\x8d\x92\xfd\x05\xab\x37\x05\ \x1f\x8d\x21\x42\x33\x07\xd1\x87\x51\xbf\xec\x07\xce\xb3\xca\xfc\ \x30\x8f\xf0\xde\x03\xc5\xc5\x7d\xa7\x14\xb6\x46\x6f\x28\x27\x57\ \x35\xb4\xf1\x45\x33\xf9\xb0\xeb\x72\x7e\x0d\x0d\x09\xc2\xb7\x88\ \xae\x31\x08\x85\x3d\x2a\xaa\x6c\xbd\xab\xa6\x4c\x63\xbe\x51\x2a\ \x88\xce\xec\xa2\xc2\x8e\x33\xf3\x33\x15\xba\xad\x12\x18\xf8\xa0\ \x8e\x27\x06\xcf\x60\x6a\xe3\x6a\xc7\x2e\xd7\xd2\x97\x1e\x12\x34\ \x90\x3c\x53\xb2\xba\x9b\xdd\xd7\x4f\xca\x98\xd2\xb4\x6c\x7c\x40\ \x8e\x83\x76\x45\xca\x57\xe5\x4c\xe8\x16\x71\x1e\x1e\x0d\x2d\x6f\ \x13\x2d\x87\x61\xfc\xd5\x46\x94\xa6\x2e\x38\x40\x41\x9c\x02\xcc\ \xc2\xfb\xd5\x63\xc4\x30\xb8\x62\x13\x19\x88\x46\x3b\xd9\x63\x24\ \x8d\x7a\xd0\xe3\xf1\xb8\x39\x22\x47\x11\x4a\x1d\x96\xe1\xae\x34\ \x1c\x85\x66\xf2\xff\x00\xad\x62\xfc\x8c\x06\x29\x60\x70\x2e\xe2\ \xea\x42\x80\x54\xf7\xa0\xbd\x67\xe0\xb1\xf8\x48\xdb\x34\x89\x2b\ \x39\xd0\x35\xc6\x95\x64\x62\xb8\x7b\x35\x97\x18\xc2\xfb\x66\x8c\ \x80\x3d\xcd\x13\x94\xa8\xeb\xd7\x5e\x83\x36\x1f\xff\x00\xe7\x61\ \xbf\xef\xfe\xd4\x48\x82\x40\x7c\x19\xe2\x97\x5d\x91\xbf\x9a\x50\ \xc3\x31\x65\xcb\x6c\xc0\x11\xae\xcc\x3a\x54\xab\x44\xf6\x2b\x2a\ \xad\xfe\x16\xdc\x52\xb5\x56\x01\xb4\x20\xd3\x16\x57\x1a\x83\xaf\ \x5b\x6b\xf5\xa8\x05\xf1\x29\x19\xb2\xc3\x23\x0e\x6c\x45\x85\x58\ \x56\x0c\xa1\xd0\x92\xad\xb1\xa5\x09\x5f\xf1\x93\xf3\xa9\x8e\xc0\ \xdd\x0e\x42\x4e\xb6\xd5\x4f\xb8\xa6\x2a\x78\x34\x6a\x69\x2a\x7c\ \xd9\x48\xca\xc7\x61\x7b\x86\xf6\x34\x52\xc8\x21\x8f\x3c\x8a\xc7\ \x5b\x58\x69\x5a\xd0\x70\x37\xab\x38\x4c\x51\x8c\x64\x71\x99\x7d\ \xf5\x15\x4e\x09\x23\x99\x43\x44\xc2\xfc\xd5\x8e\xa2\x9b\x91\xaf\ \xcb\x5e\x57\xa6\x54\xd4\x56\x05\x43\xa1\xba\x9a\x35\x70\x45\x67\ \x60\x24\x29\x88\x08\x76\x6d\x08\xab\xbb\x1b\x8a\xdc\xac\xd8\x63\ \x1d\x28\x76\xa8\x56\xbd\x71\x34\xa0\xb9\x6c\xe0\x1f\x4d\xea\x24\ \x9a\x14\x62\xae\xe7\x30\xdc\x01\x45\x7b\x29\xbf\x4a\xce\xc2\xc6\ \x65\x66\x67\xf3\x2a\xeb\x6e\x67\xde\x8b\x52\xea\x31\x75\x32\x95\ \xb1\x7b\x65\xec\x05\x2d\x8d\xc9\x00\xd4\xa1\x24\x90\x4f\xf6\xa0\ \xcc\x10\x1b\xee\x0d\x15\x25\x88\x28\x00\x3b\xd1\x03\xad\x21\x49\ \xce\x0f\x7a\x60\x27\xa5\x11\x2c\x42\xc2\xfa\xec\x74\x3e\xc6\xb1\ \x31\x89\xe1\x62\x5e\x3f\xc2\x48\xad\x68\xc9\x3e\xe4\xda\xb2\xf8\ \xc3\x2b\x71\x19\x8a\x9b\x8c\xd4\x72\xf0\xf1\xf5\x5e\xf5\x73\x07\ \xc4\x0c\x71\x78\x32\xa0\x74\xd8\x1e\x6a\x2a\x8d\xcd\x1e\x1f\x0f\ \x34\xe6\xd1\xa5\xc7\x53\xb0\xac\x4b\x67\x8d\x55\x9c\xd0\xb3\x08\ \xcb\xe4\xcb\x62\xca\xfa\x66\x27\x61\x7e\x95\x0e\xcc\x65\x21\xd4\ \x8b\xeb\x73\xce\x87\x89\x70\xb7\x91\x51\xc4\xd1\x99\x32\x65\x65\ \x23\x47\xb6\xc2\xfc\xa9\x38\x61\xc4\x70\xa9\x67\xc2\x46\xd1\x74\ \x12\xde\xfe\xd7\xa7\x6e\xf6\x16\x01\xab\xfc\x3e\x6c\xf1\xf8\x2d\ \x6b\xaf\xa3\xbf\x6a\xce\x8f\x11\x85\x90\xd9\xcb\xe1\xdf\xa3\xa9\ \xb5\x19\x93\x0c\x84\x13\x8c\x86\xfc\x80\x7b\x7e\xb6\xad\x4a\x9a\ \xc0\xd8\x82\x37\x06\x96\xf8\x6c\x33\x36\x6c\xac\xb7\x37\x21\x4e\ \x87\xf8\xa4\x47\xc4\xb0\xf2\x58\x11\x63\xd4\x87\xf3\x7b\x1b\x5a\ \x8f\xed\x98\x5b\x5e\xed\xed\x63\x7f\xa5\xab\x5b\x19\xca\x73\xaa\ \x93\xd3\x4b\x6f\x51\xcb\xb8\xa5\x2e\x26\x16\xbd\x96\x40\x06\xec\ \x08\x36\xa1\x97\x13\x02\x59\xbc\x4c\xf7\xdc\x2e\xf5\x6c\x47\x0a\ \x25\x22\x90\xb3\xc6\xe2\xe8\x49\x1c\xef\xb8\xa3\x92\x68\x61\x8b\ \xc4\x95\xec\x0e\xca\x06\xa6\xad\x46\xb1\x5f\x9f\x6a\x8b\x80\x6f\ \xcf\xa9\xac\xe9\xb8\xab\xe6\xfb\x98\xa3\x55\xfe\xa1\x72\x6b\x93\ \x8a\x3d\x8f\x89\x04\x6f\xd2\xde\x5f\xd2\x8f\xd4\x39\x57\xa5\x62\ \xaf\x98\x12\x3b\x8a\x57\x15\x7f\x17\x86\xc8\x49\xb9\x0e\xb9\x6f\ \xb8\xaa\xe7\x89\x86\x5b\x7d\x95\x07\xfd\x66\x93\x8a\x9e\x4c\x51\ \x16\x50\xaa\xa3\xd2\x0e\x9e\xf4\x5e\x53\xe2\x92\xaa\x85\x2c\x40\ \x1b\xdc\x55\x9c\x16\x08\xe2\xe4\x13\xb0\x0b\x1c\x77\x11\xe6\x1a\ \x7b\xf7\xa8\xc2\x44\xcf\x32\xf8\x56\x77\xbe\x83\x5b\x03\xdc\xed\ \x5a\xcf\x00\x8e\x34\x89\x1a\xe2\x35\x03\xdc\xf3\x35\x9e\x3c\x74\ \xda\x4a\x43\x87\x87\x58\xe2\x52\xc3\xe3\x71\x72\x6b\x9a\x42\x56\ \xed\x1a\xb2\x5b\x62\xa2\x89\xa3\x76\xdc\xfd\x68\x5a\x0d\x34\x6a\ \xdb\x2c\xfc\x7e\x13\xec\xee\x31\x10\x8c\xd1\x13\xa8\xfc\x3d\xab\ \x23\xec\xf3\x41\xc4\x55\xa1\x52\x54\xb5\xd5\x80\xe5\x5e\x9d\x15\ \xd4\xda\xde\x52\x3c\xc1\xb6\x34\xac\x46\x02\x27\xb9\x86\x66\x86\ \xff\x00\x0e\xb9\x6b\x1c\xb8\x6f\x8d\x4e\x4c\xd6\xc6\xe2\x61\x93\ \x2a\x38\x65\x04\x80\x18\x66\x00\x51\xe2\x78\xba\x43\x87\x0e\xf8\ \x54\x66\x7f\x48\x0c\x45\xfb\xd5\x96\xe1\x98\x60\xb6\x33\x4a\x48\ \xd6\xe1\x45\xa9\x27\x85\xc5\x36\x30\x93\x3a\xe5\x85\x00\x0a\xea\ \x4d\x8f\x5f\xad\x59\xc9\x6c\x26\x2e\x29\x24\x90\x1c\x40\x82\x38\ \xcb\x9c\xaa\x2e\x58\x58\x55\x77\x79\x31\x58\x90\x65\x62\xd9\x88\ \xf9\x55\xfc\x47\x0f\xf0\xd0\x49\xf6\x88\x88\x26\xcd\xf7\x66\xdd\ \xb4\xe4\x7b\xd4\xe0\x61\xc8\x59\xe0\x88\xc8\xdc\x98\x0d\x17\xeb\ \x46\x5f\x29\xd8\x8c\x06\x10\x78\x4c\xf2\xbe\x53\xb0\x55\xf8\x3f\ \xbd\x59\xb0\x0a\x15\x6f\x65\x16\xd6\x8e\x08\x7c\x28\x8a\x12\x0b\ \x33\x5d\x88\xda\x88\xad\x6a\x4c\x66\xd2\x80\xa9\x02\x8e\xd5\xda\ \x52\xb4\x36\xee\x2a\x00\xd6\x8c\x81\x5c\x05\x43\x55\xb8\xc2\x16\ \xe1\xaa\x40\xf4\x49\x73\xf3\x15\x4b\x84\x3a\xc7\x8c\x57\x7f\x40\ \x23\x31\xb6\xdc\xbf\x5b\x56\x9c\xf2\xc5\x10\x31\x3a\x97\x2e\x2c\ \xca\x0e\xd5\x56\x6e\x1b\x30\xb1\x8c\x2b\x20\x20\xf8\x69\xea\x3d\ \x2f\x59\xb3\xbd\x6a\x78\xb5\x20\x21\xf2\x8d\xaf\xa3\x6e\x0f\xb5\ \x09\x17\xde\xe6\xb3\x44\xb8\xcc\x2c\x8c\x4a\xba\xdc\xea\xac\x34\ \x26\xad\xc5\xc4\x70\xf2\x1f\xbd\x8d\xa3\x3d\x57\x51\xf4\xa6\x72\ \x8b\x0e\x39\x86\xda\xfb\xf2\xae\xd3\x0f\x19\x92\x43\x61\x63\xbf\ \xc5\xda\xa7\xc6\xc3\x88\x5a\x54\xc4\x26\xd6\x01\xae\x0d\xea\xa6\ \x27\xec\xeb\x08\x92\x4c\x6a\x34\xcc\x2e\x11\x8f\x3a\xad\x4a\x32\ \xf0\xfc\x1c\xb3\x45\x23\x46\xf2\x85\x16\x32\x33\xd8\xad\xba\x8e\ \x74\xc9\xdb\x0e\xcf\x98\x60\xa0\x37\x3a\x0c\xa6\xf6\xfa\xd0\x1b\ \xf2\xb1\xf9\xd0\xb6\xe7\xb5\x85\x73\x68\x77\xc3\x5b\x5c\x0e\x1c\ \x7f\xd1\xfd\xe9\x72\x61\xb8\x74\xb7\xfb\xb7\x89\x89\xff\x00\x96\ \xd7\xfc\x8d\x75\x45\x81\x7c\xdd\x3f\x3a\x2e\x22\xcf\x0b\x81\x89\ \x30\xe3\x2d\xa6\x8b\x22\x9b\xfd\x76\xaa\x78\xac\x3e\x27\x07\x20\ \x12\x29\x53\xf0\xb0\x3a\x1f\x63\x5a\x20\xda\x98\xcb\xf6\x9c\x1c\ \xb8\x63\xa9\xca\x5a\x3d\x79\x8f\xf7\xf9\x51\x78\x4f\x8b\x41\xc3\ \x71\x5f\x6b\xc3\xb4\x52\xff\x00\x9b\x1a\xdd\x5b\x9b\x0a\x76\x6a\ \xc4\xc1\x4e\x70\xf8\x94\x94\x7c\x27\x5e\xe2\xb7\x4a\xab\xc2\xb3\ \xc5\xac\x6d\xff\x00\xd7\xb1\xab\x8d\xd8\xab\x81\xa3\x53\x4b\x5d\ \xef\x44\x34\xad\xa3\x95\xc6\x5c\xac\x2e\x0e\xe2\x95\x89\x86\x49\ \x2d\xe1\xc8\xce\xa3\xe1\x66\xd4\x7b\x57\x5e\xa4\x1e\x86\xa1\x83\ \xc1\x26\x1e\x4c\x3e\x52\x80\xc8\xbe\xa1\xb3\x54\x4f\x86\x60\x33\ \xc2\xec\xd6\xd4\x83\xb8\xa2\x46\x25\xc3\x05\xbb\x01\x60\x46\xf5\ \x6f\x0b\x0b\xe6\x0f\x25\xd4\x74\xe7\x5a\x93\x55\xe8\x1c\x17\x14\ \xf9\xb3\x4f\xe6\x45\xd0\x13\xb8\xad\x65\x65\x65\xcc\xac\x18\x1e\ \x62\xb3\xe7\x84\x36\x28\x22\x79\x55\x85\xfb\x0a\x38\xe2\x9e\x07\ \xcd\x13\x09\x07\x30\x39\xfc\xab\x7c\x76\x33\x57\x74\xb5\x0b\xca\ \xaa\xf9\x0c\x8b\x7e\xe3\x6a\x1c\xd7\x50\xc0\x11\x7e\x47\x71\x5d\ \x98\x2c\xb7\x36\x02\x40\x06\x63\xc8\x8e\x47\xde\xb5\xa0\xac\x76\ \x20\x78\x5e\x1a\x4a\xad\x9b\x72\xbc\xa9\x1e\x22\xc4\xaa\x60\x91\ \xb3\x11\x67\xb8\xa9\xe2\x51\xa2\x15\x65\x00\x16\xbd\xc7\x2a\x3e\ \x1c\x88\x22\xf1\x48\x05\xb3\x5b\x5e\x55\x9f\xa5\x6a\x26\x49\x23\ \x0f\x1f\x31\xa8\xe9\x49\x9d\x6f\xa8\x1a\x93\x46\xde\x6f\x32\xd9\ \x5c\x6c\x6d\x6f\x91\xed\x49\xc6\x49\x29\x4f\x0d\x21\x65\x6f\x88\ \x8d\x40\x1d\xa9\xa1\x31\x80\x07\x23\x7a\x23\xf9\xf2\xa4\xe1\x6f\ \xe0\xa5\x81\xf2\x5c\x1f\xf7\xf3\xa6\xa1\x0c\xc4\xd1\x10\xd0\x88\ \xa3\x69\x0e\xbe\x1a\x96\xac\x29\x1b\x33\x96\x3b\x93\x7a\xd6\xe2\ \x72\x78\x7c\x39\xb6\xbc\x87\x27\xef\x55\xf8\x54\x28\xb0\xfd\xa1\ \xd4\x16\x63\x65\xbf\x2a\xcf\x2e\xee\x35\x3a\x80\xc1\x60\x4c\x8a\ \x24\x95\xb2\x2d\xf4\x5b\x6a\x6b\x44\x65\x54\x08\x8b\x95\x06\xc2\ \x96\xce\x49\xb9\x35\x19\xe9\x9d\x0b\x74\xc0\xd6\xda\xdf\x31\x43\ \x2a\x89\x2e\xca\xc5\x24\xfc\x43\x9f\xbd\x0e\x6d\x2a\x03\x54\x15\ \xe7\x52\x3c\x93\x46\x3b\x15\x39\x4f\xc8\x8a\x57\x85\x87\xfc\x33\ \x7f\xfe\xe6\xae\xbb\x23\xa6\x57\x19\x87\x6e\x55\x56\x48\x98\x5c\ \xa0\x2c\x3f\x31\x45\x87\x49\x38\x6c\x16\x6c\xc2\x19\x2f\xd7\xc5\ \x34\x66\x34\x90\x91\xe2\xba\x5f\x6b\xd8\x8f\x9d\xa8\x0b\xdb\x90\ \x34\x25\xbb\x0a\x3a\x21\x6f\xb4\x61\x58\x30\x24\x03\xb1\x1b\x1a\ \xbb\x82\xe2\x10\xc8\xbe\x1c\xa1\x22\x70\x3d\x45\x46\x53\x55\xc4\ \xc4\xc7\xe1\xbd\x99\x3a\x1a\x19\x70\x0e\xcb\x9f\x0f\xf7\x8b\xd3\ \x9d\x53\x67\x87\xff\x00\x56\xf1\x73\xc1\x14\x82\x68\xd9\x64\xcc\ \x9a\xaa\x6c\x75\xb5\x67\xcf\x3b\xca\xe5\xdc\xdd\x8d\x48\x56\x55\ \x55\x70\x54\x32\xb2\x6a\x39\xdc\x11\xfb\xd5\x76\x24\x12\x0e\x96\ \xa3\x95\xaa\x41\x86\xa2\x07\xa5\x29\x4e\xb4\x6b\x59\x26\x03\xf9\ \xd5\x84\x8c\xbc\x82\x30\xb9\xb2\x90\x15\x6d\xa3\x36\xe4\x9e\xb6\ \xa4\x44\x06\x60\x5b\xd2\x35\x3e\xd5\xab\xc2\xa3\x29\x84\x18\x89\ \x57\xef\x24\x62\xc9\x71\xa8\x07\x9d\x6f\x8c\xd1\x6a\xd4\x00\xe1\ \xe1\x11\x83\xe6\xb7\x9c\x8e\xbd\x2a\x43\x03\x4b\x1b\xd1\xa0\xd6\ \xba\x30\xe2\x0f\x4a\x13\xa1\xa6\x69\x7d\xea\x1b\x28\xd4\x91\xf2\ \xab\x11\x7a\x54\x15\xa6\x05\x0c\x2e\x2a\x4a\x91\x52\x21\x85\x01\ \x8b\xef\x3c\x48\xd8\x23\x9f\x50\x23\x46\xab\x05\x6f\x49\xc5\x32\ \xc7\x26\x42\xe7\x35\xb5\x55\x17\xb7\xbd\x18\x8a\x92\x39\xe5\x53\ \x13\xa2\xc4\x81\x86\x63\x9a\xf9\xbd\xa9\xb9\x54\x28\x44\x16\x45\ \xd8\x52\x92\x78\x90\xf9\xd2\x40\x4f\x33\x4d\x61\xa5\xc1\xb8\x3b\ \x1e\xb4\x17\x1b\x0a\x12\xdd\xab\xac\xc4\x5e\x84\x9a\x82\x49\xa8\ \x2d\x42\x4d\xe8\x6a\x38\x3c\xc2\x97\x8d\x96\x48\xa0\x46\x89\xca\ \xdd\x88\x36\xe7\x53\x7a\x5e\x30\xd8\x43\x21\x52\xd1\xa1\x39\x87\ \x7a\xaf\x8b\x15\x15\x99\x66\x56\x7b\x8d\x41\xd6\xb4\xa7\xbe\x72\ \x79\x31\xf2\x9e\xb7\xaa\x78\x89\x5b\x1b\x32\xaa\x29\x55\x1f\x11\ \xd6\xde\xf4\x79\x9f\x0a\xaa\x4b\x09\x62\x2d\xb1\x16\x3b\x72\xac\ \xc3\x56\x04\x8f\xcd\xb3\x0e\x8c\x2e\x3f\x3a\x07\xc3\x61\x5d\x73\ \x49\x87\x54\x1b\xdd\x5b\x2d\xff\x00\x9a\x4b\xe3\xa2\x0b\xf7\x71\ \x31\x6f\xeb\x3a\x55\x69\x25\x92\x46\x0e\xe4\x34\x92\x1b\x46\xa7\ \x6f\x7b\x74\xa6\xf2\x8b\x1d\x88\x8b\x0d\xe2\x59\x1e\x45\x54\x37\ \x16\x50\x48\xbe\xd7\xd7\x7a\xab\x26\x0b\x07\x23\x97\x79\xb1\x04\ \x9f\xe9\x5a\x6c\xac\x01\xc8\xa6\xea\x0e\xe7\xe2\x3c\xc9\xa5\xb3\ \xa8\x6c\xa4\xd8\xfe\x95\xce\xb4\xe8\xf0\xef\x31\xb4\x71\x13\xa6\ \xe2\x82\x58\x65\xc3\xf9\x64\x52\xa4\xeb\xad\x6b\xb8\x1a\xa2\x59\ \x63\x4f\xa0\xee\x6b\x3f\x1f\x30\x96\x50\x17\xd0\x82\xcb\x7f\xd6\ \xab\xc7\x04\xaa\xeb\x7d\xcd\x72\xe9\xa7\x4d\xaa\x6b\xbb\xf4\xa0\ \xba\x9d\x82\x36\xc5\xa0\x3b\x31\xca\x7e\x7a\x7e\xf4\xa0\x2f\xd7\ \xe9\x44\xa2\xcd\x71\x7d\x3a\x5b\xf9\xa6\x26\x3e\x21\x04\x78\x99\ \x10\x03\x65\x72\x07\xb5\x3b\x05\x8a\x9f\x0a\xf7\x8a\x4c\xb9\xbe\ \x13\xb1\xad\x2c\x46\x1f\x0b\x8b\x9c\xcd\x2f\x8b\x1b\x9f\x51\x40\ \x0e\x63\xd7\x5a\x98\xb0\xbc\x3e\x16\x0c\xb0\x34\xac\x07\xaa\x56\ \xd3\xe9\x58\x9c\x6c\xa7\x4a\x8b\x8b\x21\xb0\x9b\x08\x84\xfc\x45\ \x09\x1f\x96\xd4\xf4\xc6\xf0\xf7\x5b\xf8\xb2\xc6\x7a\x32\x66\xfd\ \x2a\x5a\x3c\x24\x82\xcf\x83\x8c\x5c\xef\x1d\xd4\xd4\x45\xc1\xe0\ \xc4\x4b\x9b\x0f\x23\x28\x06\xe5\x1f\x6f\x60\x6b\x73\xf4\x0f\x89\ \x23\x98\x06\x86\x65\x65\x3d\x74\x35\x6d\x30\xf8\x44\x8d\x5e\x59\ \x90\xdf\xab\x7f\x15\x9b\x8b\x86\x68\x9f\x2c\x91\x14\x03\x61\x6d\ \x00\xa4\xd3\xb9\xf0\x36\x86\x33\x05\x18\xca\xb3\x10\x07\x25\x8f\ \x7f\x9d\x70\xc7\xe0\xd5\x0c\x85\xa4\xb2\xf3\x22\xb2\xe0\xc3\x4b\ \x2a\x66\x58\xe4\x61\x7b\x79\x56\xac\x37\x09\x92\x58\x8c\x52\xc8\ \x89\x73\x71\xe6\xd4\x7b\x8a\xd6\xf2\xf9\x06\x45\xa8\x31\xf0\x29\ \x2d\x20\x92\xf2\x0b\xdf\xa0\xa7\x47\x8f\xc0\xb7\xfc\xe6\x07\xba\ \x55\x01\xc3\x8c\x91\xae\x7c\x42\x29\x5f\x21\xb0\x3a\xda\xa3\xff\ \x00\x4d\x60\x72\xa6\x22\x33\x61\xbe\xa2\xf5\x4b\xc9\x64\x6c\xa1\ \x59\x17\x34\x52\x2c\x83\xaa\x9b\xd7\x5f\x75\x22\xe0\xee\x0d\x62\ \x9c\x16\x36\x23\x9e\x3f\x31\xe6\x63\x6b\xfd\x69\x90\xf1\x4c\x44\ \x44\x47\x89\x84\x32\xed\x98\x8b\x1f\xad\x3f\xaf\xe8\xc6\x89\x86\ \x03\xae\x43\xa7\xf5\x69\x53\x9e\x35\x5c\xaa\x00\x1d\xa9\x11\x62\ \xb0\xf8\x96\xc8\xb2\x80\xc0\x5e\xcd\xa7\xe7\x4f\x58\xd9\x45\xd5\ \x2e\x3a\x8d\x69\x9f\xf1\x09\x1e\xe3\x45\x35\x21\x9f\x36\x6b\xdb\ \xe7\x4b\xcf\x6a\x8c\xf7\xab\x40\xda\x45\x8a\x47\x32\x12\x16\x42\ \x18\x10\x36\x36\xb5\xa8\x23\x99\x1a\x7b\x05\x74\xcd\xe9\xcd\xb3\ \x51\x26\x76\xf4\x82\x7e\x57\xa5\x62\xe4\x48\x94\xb4\xee\x3b\x28\ \x3a\xdf\x95\x45\x5f\xfc\x44\xf7\x58\xa0\xda\xc3\x31\xf7\x34\xdc\ \x3c\x80\x60\x60\x04\x58\xe4\xe5\xef\x59\x53\x62\xa6\x93\x16\x44\ \x90\xab\x48\x41\x2a\xf9\xb4\xb7\x5a\xd2\x0d\x96\x18\x45\xf3\x11\ \x18\xcd\xde\xb3\x2e\xdb\x4e\x74\x66\x75\xfc\x55\x19\xd6\xfa\x30\ \xa5\xdd\x4d\xed\x6a\x02\x7c\xd6\x14\xea\x58\xcd\x6a\xe7\x63\x94\ \xd8\xda\x96\x49\xa8\x6b\xe5\x34\xa3\x81\xb0\x16\xe9\x50\x5c\x82\ \x08\xde\x96\xad\x71\x53\x98\xdc\x5e\xa4\x99\x60\x8e\x7f\x31\x39\ \x1f\xa8\xd8\xfb\xd5\x3c\x42\x3c\x4d\x66\x5f\xa5\x5d\x06\xa5\xb2\ \xb2\xe5\x71\x99\x7a\x1a\x2c\xd4\xce\x07\x9d\x33\x0f\x88\x78\x5a\ \xe8\x74\xe6\x0e\xd5\x38\xac\x2b\x20\x2f\x11\x2c\xbc\xc7\x31\x55\ \x43\x9b\xd8\xd6\x3c\x6b\xd6\xbc\x58\xb5\x99\x4d\x88\x70\x47\x99\ \x1b\x5f\xa5\xe8\x13\x3d\xf2\xc3\xe1\x15\xfe\xa1\x62\x2b\x2d\x49\ \x49\x33\xa1\xb1\x15\x7b\x01\x8a\x59\x49\x0e\x32\xbf\x23\xc8\xd6\ \xa5\xd6\x71\x63\xec\xf1\x6a\x71\x11\xa3\x06\x3a\xc8\xba\x65\xfe\ \x28\x26\xe1\x8b\x7b\xc3\x25\xbf\xa5\xbf\x9a\xb1\x11\x21\xec\x47\ \xb8\xeb\x54\x9a\x79\x17\x34\x71\xb9\xc8\x09\xb7\xb5\x37\x14\xd0\ \x47\x10\x17\x59\x2c\x56\xfa\x80\x77\xfe\xd5\xae\x1b\x3c\x51\xb5\ \xad\x74\x1a\x74\xac\x85\x37\xad\x4c\x3b\xe7\xc2\xc6\xcb\xf0\x8c\ \xa6\x9e\x22\x9a\xa3\x5a\x25\xb9\x24\x03\x60\x37\x22\x97\x7b\x0a\ \x6c\x43\x2a\x81\x5a\x80\x59\x53\xf0\x0a\x90\x00\xf4\x80\x3d\xab\ \xaa\x6c\x6b\x49\x04\x03\xb8\x07\xdc\x54\x65\x53\xf0\x8f\xa5\x15\ \xab\x97\x46\x07\xa1\xa9\x05\x97\xc3\x06\x46\x19\x02\x8b\xde\xd6\ \xaa\xd8\x51\x6c\x32\xb1\xb8\x67\x62\x49\xe6\x69\x8b\x08\xf1\xe5\ \xf1\x49\x65\x46\xd0\x13\xa5\x11\x60\xcc\x06\x5b\x0e\x5c\xa8\x40\ \x7c\xb2\x0c\xb2\x8c\xc2\xd6\xb9\x1a\x8a\xa4\x9e\x3c\x38\xaf\xb3\ \x29\x04\x16\xb0\xb8\xd3\xde\xae\xb5\x81\xb7\x3e\x82\xab\xe3\xd5\ \xef\x0c\xab\xa1\x0d\x97\xde\xb3\x4c\x1b\x95\x0f\xa6\x5d\x09\x2b\ \x7e\x54\x82\xc4\x9b\x20\xbd\xb7\x35\x62\x45\x01\x99\x40\xd2\xfb\ \x52\x9b\xca\xa4\xa8\x1a\x50\x00\x7a\x8a\x8a\x30\xa0\x0d\x2e\x7b\ \xd0\xb0\x00\x5c\x9d\x2a\x3a\x12\x2b\x90\x90\x74\xf9\xd4\xfb\x6b\ \x50\xdb\x5b\xad\x45\x25\xcb\x02\xa2\xd6\xe7\x61\x6b\xd0\xe2\x23\ \x59\xa1\x11\xb3\xe5\xb3\x5c\x1b\x5e\xa4\xda\xdd\x85\x42\x92\x58\ \x00\x37\xa9\x13\x26\x0b\x0e\xb1\xb4\x9e\x24\x96\x51\xcc\x00\x0d\ \x50\x9c\x5b\x13\xf6\x8f\x13\x33\x0f\x4d\x86\x8b\xf5\xab\x5c\x52\ \x6c\xcf\xe0\xaf\xa5\x37\x23\x99\xaa\x65\xac\x6b\x9d\xcd\xe8\xc0\ \xe7\x62\x7d\x63\xfe\x91\x40\xcc\x11\xb4\xdc\x8d\x6f\x44\xc0\x36\ \xbb\x1e\x44\x0a\xe8\xa1\x69\xb1\x48\xa4\x8b\x31\x02\xb3\x49\xf3\ \x4f\x3c\xa9\x95\xa4\x25\x7f\x08\xa4\x53\x0d\x71\x53\xae\x97\xf9\ \xd3\xa8\xba\x90\x28\x97\x53\x63\xa1\xa2\x0a\x4e\x9c\xea\x40\xb5\ \x10\x5a\x24\x0d\x94\x92\x01\xb1\xd4\x73\xa3\xca\x4a\x82\x96\xf9\ \xd4\x8b\x17\xa9\xa6\x15\xe9\x50\x16\xac\x41\x15\xa9\x87\x4f\x0b\ \x0e\xa9\xf1\x37\x99\xbf\x6a\xa5\x84\x88\x49\x89\x44\xd8\x13\xad\ \x68\xb0\xbb\x93\xca\xf5\xbe\x30\x5a\xe5\x77\xcb\x96\xf7\x1d\x0e\ \xa3\xf3\xa8\x6c\x84\xdd\xa1\x88\x91\xcc\xad\x48\xf6\xae\x22\xf5\ \xa6\x50\x5d\xed\x60\xc4\x0e\x83\x4a\x53\x13\x7a\x32\x2d\x42\xd5\ \x17\x06\x3e\x21\x1f\x0c\x9a\x8e\xcd\xd2\x96\x58\xe7\x35\x33\x06\ \x31\xa2\x25\xb3\x3c\x82\xd7\xed\xad\x74\xa6\xf2\x16\x1d\x68\x42\ \x0c\x46\xa0\xda\x8f\xc5\x63\xeb\xb3\x8f\xea\x17\xa4\x13\x5d\x9a\ \xad\x4e\x97\x0b\x81\x94\xdc\xc1\x90\xf5\x8c\xd8\x0f\x95\x25\x70\ \x53\xc4\x6f\x85\xc7\x01\x6d\x81\x25\x69\xad\x73\xb3\x11\x50\xb9\ \xc1\xd4\x82\x28\xe9\x25\x5f\x8c\xaf\x34\x9b\xd8\x83\x4b\x9b\x1b\ \xc4\xd1\xb2\xb4\x45\x4f\x68\xe9\xd7\xa2\x59\x64\x51\x65\x91\x80\ \xe8\x1a\xac\xff\x00\xa9\x49\xa6\xe2\x73\xe8\x7c\x73\x7d\xbc\xa4\ \x52\x8e\x0f\x1c\xce\x41\x85\xef\xcc\x9a\xd1\x92\x57\x6f\x29\x76\ \x6f\x73\xb5\x43\x3d\x97\x56\x36\x14\x7e\x67\xf4\xea\xb4\x78\x27\ \x45\x47\x9d\xd0\x04\x24\x35\xbc\xc7\x29\xdf\x6d\xaa\xd6\x21\x46\ \x7f\x2e\xd6\xf2\xf7\x1c\xa9\x62\x51\x7d\x14\x91\xb1\xa8\x88\xe4\ \x2f\x16\x62\x46\x50\xe9\x7e\x5d\x45\x33\x27\x81\x39\x0d\xaf\x7b\ \x1a\x94\x52\x0d\xc9\xbd\x0e\x6a\x82\xd7\x39\x41\xf7\xa9\x19\x7a\ \xeb\xd2\x55\x9b\x35\x81\xd0\x75\xa3\x2c\xdf\x87\xe9\x56\xac\x1d\ \xec\x6f\xf5\xae\xbf\x2a\x58\x25\xb4\x0b\xda\x89\x4a\x33\x65\x59\ \x55\x98\x7c\x20\xeb\x56\xa1\x23\xdc\x5e\xf4\x79\xcd\x27\x55\x3b\ \x7b\x8a\x95\x6b\x8a\x75\x1a\x1a\xc6\xe3\x43\x49\xc5\x61\xd2\x62\ \x5d\x3c\xaf\xd3\x91\xa2\x26\xc2\xf5\x19\x88\x3b\x1a\x92\x83\x02\ \xad\x94\x82\x08\xe4\x6b\x81\xf3\x5c\x68\x6a\xf4\xea\xb3\x80\x18\ \x59\x86\xcd\x54\xa5\x56\x8e\x42\xae\xba\x8e\x87\x7a\xc5\x8d\x2e\ \xe0\xb1\x6c\x06\x49\x2e\xc3\x61\xd4\x55\xdc\x19\x5f\xb1\x21\x4c\ \xac\xba\x86\xd3\x9f\x7a\xc5\x8c\xd9\x89\xd7\x5a\xb9\x86\x9d\xe3\ \x7c\xc8\xd6\x63\xa1\xbe\xa1\xbb\x1f\xe6\x99\xc8\x58\xb9\x2e\x16\ \x27\x6c\xc8\xde\x19\x3c\xad\x71\x52\x15\xf0\x6a\x64\x57\x12\x27\ \xc4\xb6\xb5\x0f\xdb\x20\x24\x28\x56\x59\x0f\xfc\xb6\x3f\xa1\xe7\ \x51\x36\x22\x16\x56\x5b\x3d\xd9\x6d\x62\x2b\x5d\x33\xda\xe4\x6c\ \xae\xe0\xc7\x72\xac\x34\xa7\xa5\xf9\x8d\x6a\xa6\x15\x55\xb0\x28\ \x14\x58\xe5\x20\x1e\x60\xd3\xb8\x79\x90\xc0\xa5\xe5\x62\x0e\xc0\ \x80\x6b\x70\x2c\x2d\x10\x17\xa8\x19\xbf\x1c\x7f\xf6\x1f\xe6\x8c\ \x1b\x0f\x30\x00\x7e\x25\x3a\x7c\xfa\x56\x83\x80\xa9\x2b\x70\x45\ \x15\xba\xd4\xd8\xf4\xad\x05\x59\x62\x65\xfb\xc3\x72\xa0\x59\xc0\ \xdc\x8e\xbf\x2b\xd7\x10\xac\xb7\x52\x19\x7a\x8a\xb5\x1f\xac\x03\ \xb5\xf5\xaa\x78\x38\xb2\x89\x7f\xd6\x40\x17\xe5\x7a\xcd\x87\x5c\ \x14\x0d\x86\xf4\xa6\x2a\xd8\xd0\x83\xfe\x52\x93\xf3\xab\x25\x7b\ \x81\xef\xa5\x56\x96\x48\x53\x1b\xe2\x86\x04\x37\x95\xc8\x1a\x5c\ \xf3\xa2\x94\x30\xa0\x2b\x4d\x0f\x13\x1b\x2b\x8b\xf4\x3a\x57\x3a\ \xdb\x71\x59\xc4\x41\x45\x1b\x28\xa0\x74\x0c\x2d\x76\xfd\x69\xe4\ \x50\xb2\xd0\x88\xc8\x14\x69\x70\x6a\x08\xf3\x5c\x9b\xd3\x1a\x81\ \xad\x7a\x8c\x09\x1a\x5a\x82\x67\xf0\x30\xed\x27\xc4\x7c\xab\x4d\ \x51\x73\x6f\xf6\x2a\x87\x11\x97\xc5\x94\x85\xf4\x26\x8b\x47\x2b\ \x90\xab\x7b\xd0\x91\xda\x8a\xa2\xb9\x34\x1b\x0a\xe4\xcc\xac\x18\ \x1b\x11\xb1\xa2\xa9\xb5\x3a\x9c\x6c\x05\xe8\xe3\xb3\x0f\x28\x27\ \xf2\xa2\xcb\xe5\x3a\x5f\x4d\xa9\x9c\x3a\x13\x23\x14\xb5\x94\x6a\ \x5b\xa5\x32\x22\x63\xc2\xcf\x34\xb9\x51\x33\x13\xae\x9c\xaa\xf4\ \x3c\x3f\x28\x02\x59\x46\x9b\xe5\xd6\xaf\x22\x24\x71\x84\x41\x61\ \x6d\x7a\x9a\x12\x40\xd8\x5e\xb7\x38\xc6\x6f\x25\x77\xc0\x46\xc2\ \xf1\xcc\xca\xc3\xf1\x0d\xea\xab\xc0\xd0\x93\x1b\xea\x6f\xca\xb5\ \x14\xad\xaf\x7b\x54\xcb\x08\x9e\x1c\xbf\x16\xe8\x6d\xf9\x55\xf9\ \x83\x59\x16\xed\x5d\x96\xfc\xa9\xe5\x2c\x6c\x46\xb5\x19\x68\xc6\ \xb4\x7c\x2d\x7f\xe2\x4e\x9f\x01\xab\x65\x6d\xca\xf5\x5f\x87\x69\ \x8a\x02\xde\xa0\x54\x55\xb3\xbd\x33\xc6\x69\x2c\x2b\x81\xeb\x4d\ \x65\xa5\x95\xa4\x3a\xc2\xc4\xda\xf9\x45\xec\x39\xd5\x27\xc6\x81\ \x70\x60\x1f\xf7\x1a\xba\x2e\x0d\xc6\xf5\x9d\xc5\x54\x2e\x36\x50\ \x05\x80\x34\x72\xdc\x6a\x1b\x0b\xb6\x21\x84\xec\x02\xa4\x67\xc8\ \xa3\x99\xa9\x3b\xd4\xe1\xd1\x93\x09\x1a\xb0\x00\xea\x48\xf7\xa1\ \x7c\xdc\x80\xab\xe2\x76\xde\xd5\x07\xf2\xa1\x0c\xe4\x1b\x28\xa0\ \x05\x96\xf9\x86\x9d\xb9\x50\x70\xc9\x1e\x28\x80\x32\xbe\x5b\xec\ \x00\xb9\x35\x1e\x2c\x44\x5f\x39\x5e\xee\x84\x0a\x5c\xca\xb3\x2a\ \x82\xc1\x59\x4d\xd5\x88\xa9\x94\xcf\x24\x45\x24\x68\x54\x11\xa9\ \x04\xb7\xe5\x46\xa3\x58\xd8\x03\x7b\x83\xb1\x1b\x1a\x8b\xd2\x60\ \x41\x0a\x14\x59\x1d\xef\xca\xd6\x14\x46\xe0\xea\x08\xab\x56\x25\ \x9b\x29\xb8\x3b\xef\x52\x1e\xe3\x51\x4a\x66\xf3\x0b\xf2\xa6\x01\ \xa6\x62\x42\x8e\xa4\xd8\x55\xa9\x0c\xf4\xac\x54\xe6\x17\x8d\x86\ \xae\x01\x05\x4e\xd9\x7b\xd1\xea\x5f\x42\x51\x7f\x15\xac\xcd\xed\ \xd0\x54\xfd\xd2\x5e\xd1\xae\xbb\xe6\xd4\x9a\x12\x19\xae\x15\x97\ \x40\xe2\xe0\x57\x2f\x99\xb5\xa8\x6d\x40\xb0\xb2\x8d\x00\x14\x4a\ \x54\x0d\xef\x51\x12\xd9\x5b\x53\xbd\x49\x7f\xc3\xad\x05\xb3\x0b\ \x93\xf2\xa8\xd5\x45\xd7\x7e\x94\x83\x12\xeb\x20\x20\xea\x75\xa0\ \x91\x62\x86\xee\xca\x0c\x4e\x75\x36\xb9\x53\x5c\xa4\xde\xe7\x7f\ \xd2\x88\xe5\x74\x68\xdf\xd2\xfb\xf6\xa9\x07\x0d\x3f\x8d\x19\xd4\ \xe7\x8c\x6a\x4f\xc4\x3a\xd1\x0b\xdf\xcb\x54\x07\x8b\x83\xc4\x66\ \x2b\xdb\x5d\x88\xa6\xcf\x8d\x56\x8b\x2c\x28\xca\xcd\x6b\x92\x76\ \xf6\xac\xfe\xbf\xa9\x6a\xe6\xfa\xd1\x66\x14\xac\x3c\xab\x88\x4e\ \x62\x45\x1e\x60\x79\xf7\xa2\xb9\xad\x6a\x15\xea\x64\x55\x95\x32\ \x3f\xc8\xf4\xa0\xa9\x53\x6a\xb5\x62\xa4\x8a\xd1\x49\x95\xfe\x47\ \xad\x10\x6b\x55\xa9\x51\x66\x4c\x87\xd4\x3d\x26\xa8\x6a\xa4\x83\ \xc8\xd8\xd1\x61\x58\xba\xc9\x1e\x47\x06\xdc\x88\xdc\x51\x0f\x17\ \x25\x83\x24\xd6\xda\xfa\x30\xaa\xea\xda\xd3\x15\xaa\xd4\xb1\x0f\ \x15\x38\x7b\xc6\x20\x36\x3b\x86\x3b\x1a\xd2\xe1\xb8\xc8\x64\xc1\ \xc6\x58\x14\xb1\x23\xa8\x15\x98\x72\x3d\xbc\x6f\x0c\xdc\x69\x9b\ \x7f\x95\x16\x09\x44\x73\x4d\x02\x9b\xa6\x50\xc0\x74\x35\xa9\x6e\ \xb3\x63\xd0\xae\xa9\x98\x10\xc0\xf3\x14\x71\x9a\xc7\xc2\xce\xf0\ \xb5\xc3\x58\x74\x3b\x1a\xd3\xc2\xcc\x93\x26\x75\x20\x11\xea\x17\ \xda\xba\xca\xcd\x8b\x08\x0a\xd8\x25\xad\xf8\x4f\x2f\x63\xca\x8d\ \x5d\x49\xb1\xf2\xb0\xf8\x5b\x4a\x5a\x3a\xdf\x9f\xbd\x14\xae\xa6\ \xca\x40\x61\xdf\x5a\xdb\x26\x01\x67\x06\xd6\xd6\x90\xb1\xa1\x8d\ \x6c\x0e\xbd\x34\xbe\xb4\xc3\x1a\x15\x39\x4b\x2d\xc7\x23\xa7\xd2\ \x82\x72\x21\xc3\x31\x5d\x32\x2d\x85\x49\x9d\x8e\x25\xa5\x31\x86\ \xba\x2f\xe6\x6a\x9e\xd2\x18\xed\xe5\x7f\x2d\xaa\xc3\x1b\x9d\x69\ \x2f\xa1\xcd\xcc\x57\x1a\xdc\x00\x6c\xf1\xab\x5f\x5b\x59\xbd\xc6\ \x94\xc8\x71\x0f\x19\xb1\xf3\x2f\x43\x4b\x72\xa1\x09\x1b\x2b\xb5\ \xfe\x7a\x8f\xd6\x95\x09\x25\x0d\xce\xc6\x8d\x2d\x28\xa4\x49\x41\ \xc8\x6c\x7f\x09\xa2\x61\xae\xa2\xb3\x01\x21\xb4\x36\xa7\x47\x8a\ \x99\x16\xd7\x0c\x3f\xa8\x5e\x9d\x18\xb0\xe3\x5a\x0c\xa5\x8e\x9f\ \xf8\xa5\x49\x8e\xd3\xfc\x95\xbf\xb9\xaa\xd3\xe2\x65\x94\x59\x98\ \x01\xd1\x45\x85\x1b\x14\x94\xcc\x74\xea\x23\xf0\xa2\x37\x27\xd4\ \xc3\xf4\xaa\x4f\xb5\x1d\xa8\x5c\x69\x58\xb7\x5b\x2a\xa6\x8b\x2d\ \x48\x5a\xce\x20\x5b\x5a\x9a\x92\x2a\x42\xd3\x89\x66\x38\xc9\x60\ \x06\xf5\xaa\xb0\xac\x71\x08\x80\xbd\xbd\x47\xa9\xa4\xf0\xa8\xaf\ \x39\x73\xff\x00\x2c\x5e\xae\x85\xae\xdc\x63\x16\x91\x94\x07\x00\ \xb5\xc5\xa9\x80\x0e\xab\xf5\x14\x52\x45\x98\xdc\x1b\x1a\x01\x11\ \xce\x14\xd3\x80\x56\x1b\x58\x37\x60\x2a\x51\x32\xa8\x1f\xbd\x31\ \x50\x01\x60\x2a\x72\xd3\x89\x47\x89\xc3\xaf\x8e\xa3\xd5\xea\xec\ \x6a\x99\x15\xb5\x94\x10\x55\x85\xd5\x85\x8d\x66\xe2\xe1\x68\x64\ \xca\x57\x36\x6f\x4d\xb9\x8a\x2c\x31\x5d\x09\x57\x0c\xa7\x50\x6e\ \x2b\x47\x47\x41\x22\xec\xc2\xfe\xd5\x9e\x79\xf9\x0e\x9f\x95\x5a\ \xe1\xf2\x00\x3c\x26\x3e\x56\xd5\x49\x3b\x1a\x22\xa6\x91\x6a\x12\ \x2f\x4e\x28\x79\xd0\x32\xda\xac\x05\x65\x25\xac\x06\xa6\xab\x49\ \x0f\x8b\x8b\x92\x72\x2f\x18\x6b\x8b\xfc\x56\xab\x8c\x0e\x5d\x3d\ \x4f\x75\x5d\x3e\xa7\xe5\x42\xea\x2d\x94\x68\xa0\x58\x0e\xd4\x58\ \x62\xbc\x9a\xb1\x26\x94\xe2\xd4\xf9\x01\x51\xa8\xbd\xb9\x8e\x74\ \xa3\xe6\xd2\xd6\xa8\x93\x6d\x49\xa1\x61\x4d\x22\xd4\x2c\x2b\x28\ \x86\x16\x3d\x8d\x0d\xc5\xed\x4e\x65\x14\x21\x2d\xb5\x18\x74\x9c\ \x54\xb2\x46\xd1\xaa\x3f\x86\x8e\x35\x7b\x52\xb1\x38\x86\x81\xc0\ \x8f\x11\xe3\xa1\x1a\x83\xad\x5a\x9a\x21\x2c\x26\x36\x6c\xba\xdc\ \x35\xb6\xa4\xe0\xe0\xf0\x26\x3e\x2d\xb3\x7c\x04\xec\x68\xba\x81\ \x0c\x92\xcd\xac\x78\x5b\x13\xbb\x35\xec\x29\xc4\xfd\xe7\xa8\xb1\ \x03\x56\xfe\x3a\x53\x24\x67\x6d\x19\x8f\xb7\x2a\x5a\x7a\x6d\x51\ \x71\x37\x37\x22\xf5\xc2\xd6\xb5\x87\xd2\xa6\xd5\xd5\x27\x0e\xd4\ \x5a\xda\x86\xe0\x1d\x6a\x0b\x12\x6c\x34\xa9\x08\xd4\x57\x1a\xea\ \x93\xaa\x49\xbd\x09\x35\x17\xbd\x48\x77\x05\x72\xba\x86\x5e\x86\ \x96\x23\x8e\x07\xfb\x44\x6a\x4a\x8f\x52\x9d\x6c\x3a\x8a\x20\x6a\ \x64\x91\x61\x81\xa4\x61\x7c\xc3\x28\x5e\xb5\x22\x31\xb3\xc4\x65\ \x8a\x48\xdb\x33\x29\xf3\x10\x2d\xa5\x5a\x70\x58\xe7\x40\x4a\xb6\ \xa0\x8a\xcf\xc1\xe1\x9e\x6f\x31\x39\x50\x6e\xc6\x9f\x8a\x85\x70\ \xf0\xe7\x8e\x69\x03\x5f\x40\x4d\xaf\x44\xb7\xd4\xb1\x66\x02\xe5\ \x48\x1d\x6d\x51\x71\x55\x70\x12\x62\x1f\x14\xa3\x3b\x30\x3e\xab\ \x9b\x8b\x55\xa2\x2e\xf6\x51\x7d\x74\xa6\x76\x84\xa7\xa1\xaa\xdc\ \x4b\x49\xd5\xbf\x12\xeb\x56\x42\x30\x17\x20\x7d\x6a\xb7\x12\x20\ \xca\x88\x06\xa8\xba\x9a\xaf\x80\x9a\x34\x3a\x50\x81\x73\x47\x10\ \xf3\x00\x39\x6a\x68\x22\x96\x3f\x16\x48\x16\xf6\x24\x35\x58\xc0\ \x42\x60\x8d\xf3\x90\x5d\x8d\xbe\x54\x97\x76\x8e\x48\x1d\x23\x2e\ \xc0\x36\x80\x55\x9c\x39\x12\x47\x9d\x41\x52\x0d\x99\x4e\xe2\x99\ \xe8\xa6\xaf\xad\x47\x7a\xbb\xc3\x74\xc5\xa8\x03\x46\xd0\xd5\x35\ \xbe\x60\x40\x27\xda\xb4\xb8\x7c\x3e\x18\xf1\x18\xf9\x88\xb2\x8e\ \x95\xd7\x8f\xac\xd5\xc8\xb6\xa3\x74\x04\x5c\x0d\x4d\x25\xa4\xf0\ \xec\xc7\x61\xbd\x14\x18\x98\xa4\x75\x4d\x54\x93\xa5\xf9\xd7\x4d\ \x9e\x32\x72\x5c\x79\x4f\x2a\xaf\xc5\x0d\xa1\x09\xf8\x8d\xea\xd1\ \x03\x37\x7a\xa3\xc5\x9b\xef\x55\x7a\x2d\x5c\xba\x8a\x28\xb5\x2d\ \xbb\xd1\xb9\x16\xde\x96\xfb\x57\x26\xa1\x13\xa3\x11\x9e\x3d\x5c\ \x0d\x54\xec\xc2\xa3\x0f\x66\x80\xb0\x04\x10\xd6\x65\xe8\x68\xce\ \xfa\x53\x06\x1a\x56\x1f\x68\x44\xd6\xde\x60\x74\x12\x0f\xe6\x8c\ \x24\xf3\xa8\x6a\xb0\x70\x93\x11\x99\x56\xe0\xea\x35\xd6\x97\x26\ \x1e\x70\x0f\xdd\x9d\x2a\xca\x95\x9c\xd0\xd3\x1a\x19\x83\x10\x62\ \x6d\x3b\x50\x15\x60\x2e\x54\x81\xd4\x8a\xc3\x48\xae\x22\xbb\xf2\ \xfd\x68\x80\xf7\xff\x00\xb8\xd4\x83\x96\xb8\x8a\x62\x8f\xea\x3f\ \x3d\x6b\xb2\x83\xb9\x3f\x2d\x29\xc1\xa5\x65\xa9\x00\x02\x37\xb9\ \xda\x9b\x91\x4f\x23\xef\x7a\xe8\xe3\xc8\x73\x6e\x3f\x4a\xb1\x6b\ \x63\x86\xa6\x5c\x1e\x6b\x83\x98\xe8\x47\x41\x56\x00\xa4\x70\xf5\ \xb6\x15\x5a\x32\x10\x96\x3e\x5f\x84\xf6\x23\xf7\xa7\x86\x05\x73\ \x00\x45\x8d\x88\x3b\xa9\xe8\x6b\xb4\xf1\x87\x5a\xba\x50\x91\x47\ \xe2\xc8\xe1\x00\xd0\x5f\xe2\xed\x51\x34\xb1\xe1\xe2\xf1\x24\xd4\ \x9f\x4a\xf5\xac\xdc\x64\xef\x89\x6c\xd2\x01\x61\xb2\xf2\x15\x5b\ \x89\x6e\x4e\x25\x1a\xbd\xa2\x83\x30\x1c\xdc\xd0\x2f\x13\x7c\xb6\ \x78\x51\xbb\x8d\x3f\x4a\xa4\xaa\xc4\x90\x01\x6b\x7d\x68\x95\x24\ \xbf\xf9\x6f\x6e\xb9\x4d\xab\x3f\xaa\x72\x34\x62\xc6\xe1\xa4\xd1\ \xb3\x44\x7b\xea\x28\xe4\x48\xf1\x29\x95\x24\x46\xc9\xb1\x53\xad\ \xfa\x56\x77\x81\x27\xfe\xd3\xff\x00\xda\x68\x4c\x52\x03\x70\x8e\ \x08\xe6\x06\xd4\xea\xc3\x9a\x09\x6e\x54\xc6\xe6\xda\x6d\x40\x90\ \xc8\xad\x90\x8c\xa4\x6d\x98\x81\x7f\xad\x54\xc6\x89\xe4\x52\x22\ \x95\xc4\x8a\x2f\xe5\x3e\xa1\xfc\xd6\x6e\x20\x4a\x04\x71\xbb\x33\ \x3c\xc6\xc0\x9b\x9b\x0b\xf2\xae\x77\x96\x7c\x32\x3d\x5c\x0e\x1d\ \x0f\x88\xea\x19\x46\xa7\x91\xae\x70\x48\x3e\x12\x67\x3b\x66\x3a\ \x28\xaf\x3d\x04\x86\x2c\x6c\x62\x2b\x00\xac\x00\x36\xf5\x0b\xd7\ \xa2\xf1\xd6\x59\x99\x0e\x8e\x09\x00\x72\x35\xd3\x8f\x2d\x16\x61\ \x79\x4a\x82\x5d\x83\x3b\x68\x48\xd8\x0e\x82\x81\x85\x39\xc6\x96\ \xa4\xc8\x72\xa7\x7d\x85\x54\x16\xe5\x7a\x8a\x43\xaa\xf8\x83\x21\ \xf7\xa7\x20\x19\x4d\xc8\xd7\xf2\xa1\xb0\x58\xaf\xd7\x7a\xc9\x85\ \x3a\xeb\x4b\x6b\x03\x6e\x74\xf6\x04\x8e\x42\x96\xc8\x09\xd6\xf7\ \xeb\x51\x28\x8a\x82\xb4\xc6\xd3\x7f\xad\x0d\x18\x80\x45\x04\xca\ \x0e\x16\x55\x22\xf6\x52\x47\xbd\x3a\xb9\x00\x2c\x57\xf1\x02\x28\ \xc4\x54\xc3\xcc\x17\x9d\x85\xf5\xed\x50\x16\x89\x98\x30\x43\x6b\ \x12\xa2\xff\x00\x4a\x86\x20\x0b\x93\x41\x09\x1a\xd0\x9b\x57\x3c\ \x82\xfb\x50\x9b\x9d\x49\xb7\x61\x41\x71\x55\xbd\xcd\x4a\x82\x4d\ \x95\x6f\xec\x2a\x15\x03\x30\x5e\xa6\xab\x4f\x88\x91\xa4\xf0\x60\ \x2c\x17\x6d\x0e\xad\x45\xb8\x96\xe4\xc9\x18\xbc\xb2\x2a\x76\xbd\ \xcf\xd2\x85\xed\x94\x32\xe6\x21\x86\x84\xad\xa8\x70\xf0\x24\x3e\ \x67\x01\xe5\x3b\xdf\x50\xb4\x6e\x4b\x35\xc9\xb9\xa5\x16\x73\x54\ \x44\x18\x9b\x93\xa5\x18\x17\xf6\xfd\x68\xd5\x49\x36\x03\xd8\x54\ \x83\x6a\xaf\xc5\x3f\xcd\x45\xbe\xcb\xb7\x4a\xba\x88\xc4\x7d\xd2\ \xab\x9e\x6c\x7d\x2b\xfc\xd4\xa4\x10\xc6\xe5\xdb\xef\x64\x3b\xb3\ \x6d\xf2\x15\x66\x8d\x66\xc3\x2e\x22\x24\xb4\x6c\xca\xb4\xdc\x3e\ \x1e\x4c\x43\x78\xb3\x31\xc9\xd4\x9d\x4f\xb5\x68\x34\x84\xef\x6f\ \x6b\x50\xc8\xdb\x17\xb9\xcd\xa2\xa8\xe7\xfc\x55\xf9\x5a\x04\x50\ \x13\x24\x4a\x11\x79\xff\x00\x73\x48\x9a\x62\x5b\xc1\xc3\x0b\xb1\ \xd0\xb7\xf1\x56\x99\x54\xaf\xde\x6a\xa3\x52\xa3\x44\x1e\xfd\x69\ \x18\x63\x0c\x0c\xee\x54\xdd\xbd\x23\x98\x14\xd4\xe8\x50\x61\x22\ \x2e\xde\x67\x6f\xd7\xa5\x55\xb3\xbc\x85\xc9\xb9\x63\x73\x7a\x6c\ \xce\xf3\x49\x99\xb4\x1c\x80\xe5\x5c\xab\x61\xa5\x66\x90\xaa\x91\ \xfd\xaa\xce\x0f\x0c\xd2\xb5\x94\x58\x0d\xcf\x21\x4c\xc1\x60\xda\ \x4f\x3c\x9e\x54\xeb\xd6\xb4\x11\x00\x50\xaa\x2c\xa3\xf3\xad\x4e\ \x3f\x68\xb5\x38\x60\x21\x5c\xb1\x0b\x77\xb6\xa6\x8c\x24\x47\x16\ \x19\xa3\x5c\xd2\x21\xbf\x42\x46\xd5\x2a\xb6\xda\x83\x17\x13\xb2\ \x2c\x88\x7d\x1c\xbf\x7a\xe8\xc1\xe9\x1a\x81\x65\x40\xbe\xc2\x99\ \x15\x93\x36\x76\xb0\x1a\xde\x86\x09\x63\x68\x95\xd9\xc6\x6b\x6a\ \xa3\x7b\xfb\x54\x82\x64\x90\x31\x1a\x8f\x48\xe4\xbf\xde\xb4\x83\ \x8b\x49\x5c\x09\x32\xd9\x57\x40\xbc\xc7\xbd\x06\x10\x67\xc4\x22\ \xf5\x61\x57\xa3\xf2\x8b\x6f\x4b\x8a\x20\x98\xd2\xc0\x79\x42\xe6\ \x1d\xb9\x55\x78\xf6\x34\xf6\xca\x75\xb7\x3a\xa1\xc5\x54\x78\xe0\ \xda\xfe\x51\xbe\xb5\x74\x1a\xa5\xc5\x35\xc4\xfb\x28\xa7\x97\x8a\ \x2a\xb1\xd2\x90\x49\x00\x8e\x86\xd4\xd9\x0d\x28\x9b\xfc\xcd\xeb\ \x9b\x50\xec\x04\x41\x98\xc8\xc2\xea\xbb\x0e\xa6\x9f\x8a\x62\x30\ \xce\xc4\xea\xde\x51\x53\x87\x19\x30\x88\x3a\xdd\xab\xa4\xb1\x78\ \x94\x81\x60\x0b\xeb\xcc\xed\x5a\xf8\x91\x7c\xa0\x06\x16\xd0\x7e\ \x94\x12\x1e\x94\x52\x90\xd7\xcc\x6f\x7a\x51\x1d\xcd\x14\x27\x33\ \x6c\x09\xd3\xbd\x48\x91\x8e\xfb\x0e\x47\x5a\x0b\x80\x2c\x2b\x94\ \x92\x6c\x01\x26\x84\xe9\x62\x86\x4f\x52\x05\x27\xe2\x5a\xa7\x3c\ \x4d\x0b\xe5\x61\x70\x76\x23\x63\x57\xb4\x0c\x14\xba\x06\x3b\x02\ \xd4\x18\xb0\x87\x0c\x44\x92\x22\x95\xd5\x75\xbf\xe9\x45\x86\x29\ \x0b\x72\xa2\x50\x49\xb0\xd4\xd0\x23\xc1\xcf\x13\x17\xd4\xd0\x89\ \x96\x69\xd3\x0f\x09\x21\x5c\xf9\xda\xda\x9f\xed\x46\x93\x90\xa6\ \x6c\xab\x9a\x46\x1f\x0a\x0b\xfe\x74\xc1\x95\x45\xe4\x8a\x48\x87\ \xe2\x6b\x11\xf9\x54\x02\x02\xe5\x40\x15\x7a\x0a\x34\x62\xbb\x73\ \xe5\x4c\x4b\xdc\x39\xc3\x61\x32\xf3\x46\xbe\xfb\xde\x8f\x15\x30\ \x86\x45\x7b\x5c\xb2\x80\x41\x36\x04\xea\x45\xfe\x42\xa8\x60\x24\ \x11\x62\xb3\x92\x6c\xe3\x2b\x0e\xd4\x7f\xe2\x58\x25\x93\x04\x92\ \x46\x0b\x04\x7f\x35\xba\x01\x5a\xdf\xf1\x1f\x49\x96\x79\xb1\x38\ \x96\x58\xbc\xf2\xf3\x6b\xf9\x53\xda\xb4\x21\xc1\xb4\x08\x1b\x13\ \x31\x9d\x86\xad\x1d\xb6\xf9\xd5\x5f\xf0\x8a\x34\x65\xf3\xad\x89\ \xbb\x2d\xc6\xfa\x6f\x5a\xc4\x02\xc1\xb9\x8e\x74\xf1\x9b\x35\x5b\ \xf0\x11\x95\xb2\xac\x2a\xa8\x1b\x50\x40\xb1\xa6\x80\xe1\x6e\x25\ \x72\x07\x22\x69\x2a\x8f\x1b\x05\x6d\x81\x25\x1f\x71\x6e\x86\x9d\ \x1b\x07\x25\x43\xad\xf9\x81\xbd\x6e\x32\x3f\x12\x66\x5f\x29\x20\ \x1e\xad\x43\x92\x5b\x1b\xc8\x75\xdc\x5e\xf7\xa6\x0a\x25\x50\x6b\ \x58\x08\x58\x54\x91\xe2\x47\x1b\x01\xa8\xf2\xdb\xf4\xac\x2f\xf1\ \x06\x0d\x61\xe2\x8f\x2c\x60\xe5\xf0\x96\xc3\x90\x26\xbd\x13\x34\ \x48\x49\x79\x05\x97\x53\x6d\x4d\xab\x23\x12\xed\x89\x9d\x8b\xaf\ \xf9\xc7\xd3\xd0\x72\x15\xcf\x9c\x99\x8d\x4b\xdb\x1f\x83\x61\xdc\ \xce\x64\x91\x09\x8e\x3d\x4d\xfa\xf2\x15\xa4\xcd\x9c\x97\xd8\xdf\ \x5a\xb4\xf8\x6f\xb1\xc6\xb0\x0b\xdb\x72\x7a\x9a\x44\x82\xcf\xee\ \x2b\x19\x9d\x1d\xd1\xc1\x8a\x01\x42\x4d\xa8\x1b\x30\xde\x9a\xea\ \x08\xb8\xb3\x29\xd8\xf2\xaa\x4e\x35\xae\x8e\x57\x88\xdd\x0f\xb8\ \x3b\x1a\x75\x62\xd3\x28\xbd\xec\x3e\x94\x0f\x72\xc0\x5b\x63\x72\ \x68\xe3\x92\x39\x63\x2c\xba\x11\xea\x1d\x2a\x06\xe4\xf5\xab\x01\ \x4c\x2c\x68\x1c\x53\xa4\xda\x96\xda\x8a\x11\x46\x94\xc2\xcc\x7a\ \x1a\x75\x2e\x41\x53\x41\xa8\xcd\x91\x1d\xf9\xaa\x93\x5d\x6e\xe6\ \xa0\xd8\x5c\x1d\x98\x10\x6b\x28\xb4\x92\x03\x02\x31\x99\x14\x05\ \x02\xd7\xd4\x50\xab\xc3\x2d\xc4\x66\x59\x0f\x50\x9a\x55\x7f\xb1\ \x44\x8f\x98\xb9\x71\xf8\x6d\x6a\x79\x26\xc0\x1d\x00\xd9\x46\xc2\ \xb3\xb7\xe9\x10\x8a\xdf\x04\x97\xf6\x5f\xe6\xa3\x28\xd6\xe0\xff\ \x00\xd4\xc0\x7e\x97\xa1\x35\x16\xbd\x25\x33\x06\x28\x56\x29\x23\ \x42\x45\x8d\x81\xfd\x6a\xae\x12\x29\x60\xc7\x20\x65\x07\x36\xc4\ \x1d\x3d\xea\xd2\xad\xcd\x80\xd4\xd1\xaf\x99\x83\x28\xb8\x00\xaa\ \x77\xea\x68\xcd\xed\x00\xee\x40\xae\xb6\x94\x41\x2c\x2e\xcc\xa0\ \x75\x2c\x29\x89\x16\x72\x08\x05\x97\xae\x81\x4f\xcc\xef\x56\x22\ \xe3\x17\x51\xa5\x31\x14\x0d\x6c\x3e\x62\xa3\x10\x71\x10\xa0\x65\ \x48\x72\xed\xa1\xcd\x4c\xb1\x08\xb9\xc8\x2f\x6f\x35\x86\xd5\xa0\ \xe6\x62\xdb\x9d\xb6\xed\x42\x75\xa2\xae\xb7\x5d\x6a\x01\x02\xf4\ \x6b\x14\x9f\x6b\xf1\x33\x47\x95\x54\xaa\x0d\xcd\xbe\x55\x20\x00\ \xa5\x98\x85\x51\xb9\x35\x5f\x11\x89\xcd\x74\x8b\xca\x9c\xcf\x33\ \x55\xc8\x85\x8a\x91\x41\xca\xa7\x3b\x0e\xde\x51\xfe\xfe\x7e\xf5\ \x57\x29\x26\xe7\x73\x46\x05\xa9\x98\x78\x9e\x56\xb2\x0d\x39\x9e\ \x95\x9f\x5a\xf0\xb4\x42\x4e\x55\x04\x93\x57\xf0\xb8\x05\x5b\x34\ \xda\xb7\xe0\x1f\xbd\x3b\x0f\x1c\x70\x0b\x26\xad\xcd\xbf\x8a\x66\ \x6a\xdc\x98\xcd\xa9\xb5\xed\xca\xdc\x85\x12\x8a\x1b\x82\x2c\x6a\ \x56\xca\xb6\x17\xa5\x91\x8b\x5e\xd7\xa6\xa1\x51\xcc\x77\xaa\xac\ \x75\x00\x6e\x68\xe3\x00\x6e\x6f\x5a\x95\x1b\x68\xd4\xe5\x8d\x40\ \xbe\xe7\xad\x14\x5e\x49\x6d\x7b\xe9\x42\xac\x2d\x63\x4c\x52\x00\ \xd3\x4a\x50\xc3\x50\xcb\x23\x27\xde\x04\xcc\xa1\x6c\xc0\x1d\x46\ \xb5\x05\xa8\x59\xc8\x46\x23\x73\xe5\x1e\xe7\x4a\x75\x1d\x04\xa9\ \x2a\x07\x50\x40\x26\xda\xd6\x7e\x2e\x5f\x12\x77\x6e\xa6\xac\x4a\ \xe2\x0c\x29\x50\x76\x19\x57\xbf\x7a\xce\x26\xe3\x53\xf2\xac\xf2\ \xaa\x44\x3b\x5f\x40\x68\x4b\x54\x33\x5a\x82\x23\x9e\x74\x51\xcd\ \x85\x63\x5a\x6a\x31\xb2\xaa\xdf\x40\xa0\x7e\x54\x8c\x63\x95\x30\ \xba\x9d\x43\xe5\xa2\x99\xc6\x63\x6d\xaf\x49\x91\x81\x40\xcc\x2e\ \x23\x70\xde\xc3\x9d\x36\x88\x37\x6f\x39\xe9\x7a\x16\x7a\x17\xbe\ \x72\x07\xd6\x96\x59\x7f\x18\x62\x3e\x14\x37\x35\x23\x01\x19\x4b\ \x31\xca\xa3\x73\x55\x71\x18\xdb\xdd\x61\x05\x57\xaf\x33\x4d\x6f\ \x31\x0d\x20\x04\x8d\x97\x92\xff\x00\x26\x97\x26\x1e\x29\x1f\x35\ \xca\x75\x00\x69\x59\xbb\xf0\xac\x41\x1c\x22\x04\x26\x35\x72\xeb\ \x98\x96\xde\x8e\x3c\x3e\x1a\xe7\xc8\xc2\xea\x6f\xe6\xed\x42\x18\ \x58\x28\x16\x0a\x2c\x28\xe2\xdc\xff\x00\xa4\xfe\x95\xa4\xcc\x8b\ \x0f\x85\x51\xe8\x67\xff\x00\x51\xb5\xa9\xb0\xc5\x04\x73\x2c\xb1\ \x87\x05\x76\x17\xb8\xa0\x5a\x25\x22\xf5\x89\x84\xe5\x34\x57\xa5\ \xa9\xa2\x06\xb5\x00\x85\x68\x60\x1d\x71\x18\x76\xc3\x48\x75\xb7\ \x94\xed\x59\xe0\x12\x36\x34\x50\xb3\x23\x86\x06\xc4\x1a\xd4\xaa\ \x8e\x09\x64\xc3\x63\x41\x63\x66\x43\x95\x81\x35\xab\x81\x99\xb1\ \x31\x34\x99\x57\x2d\x81\x16\xf8\x4f\x30\x7d\xa9\x18\xec\x32\x63\ \xb0\xeb\x22\x0b\x4b\x6b\x82\x39\xf5\x15\x9d\x85\x69\x30\xf2\x96\ \x89\xca\xb6\xc7\xca\x35\xf7\xeb\x4e\xde\x35\x9f\x5b\xea\x48\xd8\ \x91\xed\x51\x1a\x83\x8b\x92\x4f\xc2\x32\xfb\x9b\x6a\x6a\x84\x3c\ \x4e\x41\x61\x2a\x44\xfa\xea\x40\x20\xd5\xdc\x06\x25\x31\x39\xc0\ \x39\x5f\x31\x60\x87\x72\x39\xfb\xd6\xe5\x94\x61\xf4\x9c\x74\xb2\ \x20\x54\x5f\x2a\xb6\xed\xd7\xb5\x3a\xab\xf1\x17\x55\x54\x56\xb1\ \x0a\x0b\x9d\x7f\x2a\x6f\x82\x3b\x8a\x4c\x90\x61\x7c\x08\xf7\x90\ \x0b\x91\xd2\x93\xc2\x21\xb1\xfb\x4b\xec\xa7\xc8\x2d\xb9\xeb\x54\ \x73\x34\x85\x09\xdd\xc5\xfe\x64\xff\x00\x7a\xda\x08\x22\x81\x63\ \x03\xd1\x61\xf3\xac\xce\xee\x9f\x11\x32\x78\xb1\x95\x36\xd7\x6b\ \xf2\x35\x97\x2a\x14\x25\x4f\xa8\x1d\x6b\x58\x9a\xa3\xc5\x96\xcc\ \xae\x3e\x21\xad\x5c\xe7\xd5\x14\x5f\x6a\x51\xfd\xe9\x8f\x4b\xae\ \x6d\x40\xe1\xdc\xa6\x2d\x6e\x6f\xae\xa3\xad\x5f\x7d\x18\xdb\xad\ \x67\x46\xb9\xa5\x04\xef\x9a\xb4\x64\xd6\x43\xef\x54\xf1\x52\xdf\ \x51\x4b\x90\xe9\x6a\x63\x02\x74\x1a\xd2\x64\x68\xc1\xb7\x88\x3e\ \x40\x90\x3e\x75\x00\xd0\xbe\xd4\x4b\x94\x93\x96\x45\x6b\x6e\x06\ \xe2\x84\x82\xc4\xdb\xff\x00\x15\x34\x59\xde\x85\xaa\x25\x95\x82\ \xe6\x8a\x02\xe8\x37\x73\xcf\xda\xa6\xe1\x91\x5c\x02\x03\x0b\xd8\ \xd6\x51\x4e\x35\xa8\x6a\x63\x2d\xec\x6f\x50\x10\x66\x1c\xfa\xd1\ \x87\x40\x14\x9a\x2c\xb6\xa6\x65\xa9\xcb\x56\x2d\x28\x28\x2a\xca\ \x4b\x2e\x61\x6b\x8d\xc5\x14\x71\xc6\xb1\xf8\x65\xe5\x75\xe8\x4e\ \x5b\x7d\x29\x81\x68\x82\xd3\x80\x0a\xa9\x18\xb4\x51\x2a\x9e\x46\ \xd7\x35\x2c\x5e\xd7\x73\x6e\x57\x34\xc8\x94\x5c\xb1\x04\xf6\x1c\ \xea\x70\xe2\x62\xec\xf3\x46\xca\x76\x4f\x29\x21\x7e\x94\xe2\x05\ \xac\xc1\x9d\x48\xb7\xa1\x5b\xf5\x3f\xc5\x47\x3a\x6b\x5b\x35\x83\ \x02\x77\xb6\xb4\x06\x94\x1d\x7a\x57\x3b\xc7\x12\xe7\x96\xe3\xf0\ \x8e\xb5\x2e\xc9\x14\x5e\x23\xeb\xf8\x47\x53\x54\x26\x91\xe5\x90\ \xbb\x1b\x9f\xd2\xb3\x6e\x24\xe2\x71\x0d\x33\x6f\xec\xa3\x61\x4b\ \x42\xc3\x73\xf2\xa8\xb6\xba\x1a\x76\x16\x23\x2b\x1b\x90\xaa\x37\ \x35\x8e\xeb\x46\xe1\x30\xe6\x5f\x3b\x9c\xa8\x39\xf5\xf6\xab\xc0\ \x85\x5c\x88\x32\xa8\xe5\x4a\x04\x9b\x6b\x60\x05\x80\xa2\x26\xba\ \x48\xc8\xf3\x1a\xec\xc6\x97\x9a\xba\xe6\x95\x86\x86\xa9\xce\x00\ \xb9\x34\x9c\xe3\xdf\xb0\xa8\x05\xcb\x5e\xd6\xa8\x62\xc4\x6d\xb9\ \xe6\x69\x81\xc5\x56\xbd\x10\x6e\xf5\x2c\x59\x06\x8c\x3d\x56\x57\ \xa6\x23\x16\x36\x02\xe6\x9d\x06\xe6\xbd\x0e\x22\x41\x14\x51\xb9\ \x22\xe6\x41\x61\x7d\x4d\x26\x6c\x54\x10\x86\xbb\x66\x2b\xea\xb6\ \xcb\x54\xa7\x9d\xe7\x91\x66\x94\xda\xc2\xf1\xa7\xe1\xee\x7b\xd1\ \x79\x19\x0e\xc5\x4e\xd3\x49\xad\x85\xb4\x03\xa0\xa4\xbb\xd2\xf3\ \x80\x34\x34\xb7\x92\xb3\x79\x35\x83\x76\xbd\x1e\x00\xdf\x12\x0f\ \xe1\x05\xaa\xa3\xc9\xad\x85\xc9\xab\x1c\x3a\xe2\x39\x1e\xfb\xd9\ \x45\x12\xf6\xbe\x2d\x96\xd2\xe7\x41\xd4\xd0\x19\x54\x5e\xec\x08\ \x22\xc6\xd4\xb6\x60\x35\xa0\x2d\x7d\x6b\x5a\x12\x4b\x15\xca\x5d\ \xdd\x47\x27\x3a\x7f\x7a\x92\xee\x45\x89\xb0\xe8\x28\x0b\x50\x93\ \x59\xd3\x86\x73\x05\x4d\xa8\x81\x6b\x5e\xff\x00\x51\x48\xbb\x5c\ \x5b\xe7\x46\x49\x23\x4f\x9d\x5a\xb0\xe5\x62\x45\xf2\xe9\x4f\x84\ \xf9\x88\xec\x7f\x4a\xac\x5c\x11\xe5\x3b\xd3\x62\x62\xa6\xd6\xb9\ \xca\x7f\x4a\xd4\xa1\x48\x1a\x90\x75\xa5\x67\xca\x2e\x41\x3e\xd4\ \x68\xc1\xb5\x17\xac\x34\x7c\x66\x8c\x52\xe3\xa6\x2d\x69\x94\x8b\ \x74\xbf\x7a\x24\x37\x72\x37\xb5\x56\x92\x6b\x68\x01\x04\xef\x7a\ \x98\x4b\x13\xa5\xea\xd3\x8d\x9e\x17\x29\xb1\x88\x9e\xeb\xef\x43\ \xc4\x70\x8c\xef\xe3\xc0\xb7\xbf\xad\x40\xd8\xf5\xaa\x51\x4b\x6b\ \x16\x24\x30\x3d\x2b\x57\x0f\x88\x59\x62\xf1\x43\x00\xc3\xd4\x01\ \xfc\xeb\xa4\xb2\xcc\x65\x93\xa8\x36\x3a\x1a\x38\x5d\xd2\x55\x78\ \xdb\x2b\xae\xa1\xbb\xd6\xb4\xc9\x16\x25\x2d\x2a\xef\xa8\x60\x2c\ \x45\x65\xe3\x30\xef\x87\x97\x2b\x6a\x0e\xaa\xc3\x63\x45\x98\xa5\ \x6c\xc5\x8c\x8a\x58\x83\x94\x71\x26\xcc\x80\x73\xa8\xc4\x44\xad\ \x85\x99\xe6\x5b\xb9\x5c\xc7\x5d\xba\x0a\xcb\xe1\xb8\xaf\xb3\x4c\ \x49\x17\x56\x16\x60\x37\xab\xd8\xbc\x76\x1d\xb0\xae\x91\xbb\x33\ \x38\xb5\x8a\xda\xd5\xb9\xcb\x67\x63\x19\xc8\xe4\x48\xad\xa6\x84\ \x56\xec\xad\xf7\x82\xfc\xc6\x6a\xc0\x17\x2c\x15\x45\xc9\xda\xb7\ \x4a\x02\x40\x3a\x9c\xa2\xe4\xfb\x51\xc1\x72\x43\x30\x2e\x14\x1d\ \x46\xa6\xaa\xf1\x66\x45\x85\x03\xba\xa9\xb9\xde\x89\x8b\x16\x26\ \x2b\xaa\xde\xc2\x43\xcf\xda\xa3\x1e\x8a\x30\xcc\xc8\x35\x0d\xb9\ \xd4\x9b\xf5\xa6\xdd\x81\x9d\x2d\x94\xf9\x9d\x47\x4d\x6e\x4f\xb5\ \x2d\x8a\x9f\x2a\x2c\x8c\xd6\xbf\xa6\xc0\x7c\xcd\x1e\x6c\xb7\x2a\ \x02\xf5\xb0\xb5\x2d\xdd\x8a\x9b\xb1\xd7\xbd\x73\x6c\x58\x50\xfe\ \x38\x26\x38\xd9\x13\x52\x15\xae\x6a\xdb\x32\x9b\x95\x0e\xc7\xba\ \xe5\xfc\xcd\x27\x00\xb6\x89\x9f\xf1\x1b\x0f\x95\x35\xc3\x91\xa2\ \xb1\xaa\x0a\x53\x9b\xe8\xd6\x61\xf8\x7e\x1f\xef\x40\xee\xd6\xd1\ \x88\xf6\xa9\x9d\xa2\x89\x6f\x34\xca\xbd\x86\xa6\x93\x16\x27\x0b\ \x34\xa2\x24\x66\x0c\x76\x2c\x34\x35\x6a\x82\x36\x76\xb9\x16\x61\ \xb3\x8d\xc5\x57\xc4\x3c\xc9\x2a\xa6\x22\x4b\xc4\xc7\x52\x39\x8a\ \xb6\x14\xe6\x20\xe9\x61\xaf\x6a\xad\x28\x49\xe5\x12\xbd\xcc\x6b\ \xa4\x6b\xf8\xbb\xd1\x48\x89\x12\x21\x0b\x70\x84\x58\xb5\xad\xa7\ \x45\x1f\xbd\x73\x9b\x9b\xec\x06\xc3\xa0\xae\x66\xb9\xeb\xd0\x74\ \xae\xb5\xf7\xa9\x04\x02\x7b\x0a\x35\x4b\x6c\x2a\x54\x51\x9d\x2a\ \xc4\x10\x95\xd9\x45\x10\xa9\x03\xa5\x28\x39\x6a\x72\xf7\xa3\x60\ \x91\xae\x69\xa4\x58\xc7\x7d\xea\xac\xfc\x4a\x24\x16\x82\x3c\xc7\ \xf1\x3e\xdf\x4a\x91\xc1\x09\x16\x5b\x9e\x82\xa5\xad\x10\x1e\x34\ \x89\x1f\x42\xc6\xb3\xe5\xe2\x38\xa7\x5b\x66\x54\xff\x00\x42\xda\ \xa8\xcd\x21\x24\xdc\x96\x27\x72\x6b\x17\x9c\x87\x1b\x6f\x8a\xc2\ \xb9\x03\xc6\x67\x2a\xe2\xc7\x2e\xda\xf2\xa2\x4c\x92\xdd\xa2\x91\ \x58\x73\xed\x59\x31\x00\x11\x46\x9f\x11\x07\xbd\x80\x1f\xa9\xaa\ \xd2\xe3\x0e\x1a\x4c\x98\x7f\x33\x83\xe6\x6f\xda\x8f\xde\x7a\xb1\ \xa3\x8f\x90\x4b\x3f\x94\xdd\x54\x58\x55\x72\x47\x33\xf2\x14\x42\ \x48\xf1\x10\x09\xe1\x16\xbe\x8e\xbf\x84\xd0\x5f\xf2\xa3\xd2\xe2\ \xdd\xad\xf3\xad\x28\x50\x47\x02\x27\xc5\x6b\x9a\xcf\xc3\x29\x93\ \x10\x8b\xd5\xab\x49\xc8\x2e\x48\xeb\x5a\xe3\xd0\xa8\x2e\x41\xf4\ \xde\x84\xca\x2f\xb5\xaa\x76\xa5\x4c\x09\x7e\x80\xd3\xa0\xdc\xeb\ \xd6\xa6\xf7\xdf\xe9\x48\x45\xb3\x5c\x9d\xa8\xcb\x81\xdc\xf4\x15\ \x6a\x30\x9e\xa6\xbb\x38\xef\xf4\xa5\xa9\x20\x6b\xa9\xa3\x8c\x33\ \x9b\x28\xf7\xed\x4e\xa1\x06\x1d\x0f\xd2\x89\x6e\x4e\x83\xf3\xa5\ \x3c\xd8\x74\x62\xa2\x68\xe4\x90\x7c\x0a\x6a\x9e\x23\x19\x2b\xdd\ \x41\xc8\xbf\x84\x51\xfa\x4b\xf2\xcc\x90\xfa\x9d\x58\xfe\x10\x75\ \xaa\xf3\xe3\x65\x71\x95\x3e\xed\x7a\x2f\xf3\x54\x73\x1a\x90\xd5\ \x9b\x6d\x38\xb0\x35\x55\x46\x17\x04\x97\x3d\xc0\xe5\xf5\x35\xd9\ \xd9\x98\x93\x49\x6c\x42\xa6\x3c\xc5\x21\xb2\xb2\x00\x1a\xf7\xb5\ \x1b\x5c\x3e\x5d\x49\xed\xce\x8d\x29\x73\x40\x4f\x7a\x62\xe1\xe7\ \x71\x70\x84\x03\xcd\xb4\x14\x47\x0a\x8b\xeb\x72\xe4\xf2\x5d\x05\ \x59\x52\xbc\x28\xd3\x4a\x72\xe8\x0f\x33\xc8\x55\xdb\x85\x40\x89\ \xb2\x8a\x92\x48\x50\xa0\x05\x1d\x05\x2c\x9a\x7c\x0e\x26\xb8\x9a\ \x12\x7b\x9f\x6a\x16\x63\x7d\xf4\xa8\xa5\x9a\xa0\x35\x05\x48\x1a\ \xd1\xa8\xc5\xa6\x21\x03\x52\x69\x4b\xbd\x1a\xd2\x8c\x50\x73\x66\ \x5b\x0e\x97\xa6\x40\xcc\x24\xcc\xc2\x96\xa7\x4a\x34\xad\x46\x55\ \x71\xe8\xd0\xb9\x16\xf2\xb6\xc7\xb5\x0e\x18\x31\xd4\x5b\x5d\x35\ \xad\x06\x41\x34\x46\x33\xbd\xbc\xa6\xa8\x94\x78\xd8\xad\xac\x6f\ \xb1\xe5\x45\x98\x62\x52\x56\x0d\x6b\x0d\xfa\x53\x73\xbd\xaf\x6b\ \x52\x61\x42\xad\x99\x88\xf6\xa3\xbd\xee\x3a\xd1\x0a\x74\x61\x63\ \xa8\xa7\x42\x86\xde\x45\x36\xa5\xa2\xd8\xd8\x00\x5b\x73\x7d\x97\ \xdf\xf8\xa2\x96\x35\x93\x43\x34\x99\xb9\x36\xc0\x7c\xa9\x82\x9a\ \x8a\x19\x8e\x6d\x02\xe9\x4e\x85\xbc\x39\x03\x28\xb6\xba\xf7\xa4\ \xa3\x1b\x28\x60\x3c\x45\x16\x65\xfc\x43\xa8\xa2\x57\xcc\x6c\x10\ \x83\xdf\x95\x6a\x06\xb6\x1d\x95\x96\xe8\x6e\xbb\xdb\x9a\xf6\xa6\ \x90\xb2\x46\x63\x91\x43\x29\xfa\x8f\x6a\xcf\xe1\xb2\x78\x73\x65\ \x63\xe5\x7d\x0d\x68\x01\x63\xde\xba\xca\xcd\x66\x63\x30\x92\x40\ \xd9\x87\x99\x0e\xcc\x29\x1a\x1d\x6f\xad\x6e\x03\xa5\xb7\x07\x71\ \xd6\x90\xd8\x3c\x2b\xbe\x6c\xac\xa4\xf2\x07\x4a\x2f\x1f\xe2\x95\ \x5b\x83\x42\x5a\x63\x3b\xdc\xaa\x0d\x3b\x9a\xd1\x94\x93\x0c\x86\ \xe7\xd2\x4d\x72\x85\x54\x08\x83\x2a\x8d\x85\x73\x6b\x1b\x8e\xaa\ \x7f\x4a\xd4\x99\x06\xf6\x06\x8f\x2b\x80\x1a\xea\xb4\x38\xd7\x8a\ \x3c\x3b\xac\xa7\x56\x5b\x85\x1b\xd3\x66\x91\x62\x8d\xa6\x6d\x94\ \x5c\x77\x35\x8a\x5a\x4c\x46\x2f\x31\xbb\x16\x3a\xfb\x51\xca\xe2\ \x9d\xa9\xcd\xc4\xe3\x5d\x23\xc3\x82\x35\x3e\x76\xaa\xf2\x71\x59\ \xb4\xcb\x14\x40\xff\x00\xa6\xf5\x64\xe0\x30\xe9\x33\x09\x5d\x9c\ \x8b\xf9\x46\x80\x51\xa2\x41\x1b\x7d\xd4\x08\xa7\xa9\x17\x35\xc3\ \x39\x37\xd1\x7f\x6d\xc5\xa4\x68\x04\xa5\x5b\x28\x2d\x6e\xa6\x91\ \x36\x27\x11\x26\x8f\x33\x90\x4d\xce\xb5\xbc\xd6\x51\x91\x51\x00\ \xb0\xd3\x28\xa4\xcb\x0e\x1d\xc1\xcd\x87\x8c\x9e\xa0\x58\xd6\xaf\ \x1b\xfd\x5a\xf3\x6e\xec\x58\xe9\xa9\xe7\x51\x77\x8c\x82\xa7\x5b\ \xd6\xe8\xc3\xe1\x51\x48\x18\x54\xee\x49\xbd\x56\xc5\x70\xe8\xe5\ \xf3\xe1\xce\x56\xff\x00\xdb\x3c\xfd\xab\x17\x85\x3a\x9c\x3e\x39\ \x71\x11\xa4\x78\x80\x10\x1d\x59\xaf\xea\x02\xdb\xfd\x45\x58\x90\ \x66\x5b\xa1\x42\x08\xf2\xd9\x86\xd5\x91\x30\x29\x9e\x33\xff\x00\ \x2d\x55\x2d\xdc\x9b\x9a\x47\x85\x26\x5c\xd9\x18\x0e\xb6\xab\xf5\ \x62\xc6\xc1\x78\x21\x07\xc6\x9d\x10\xf4\x1a\x9a\x4b\xf1\x28\x14\ \xda\x28\x19\xf5\xdd\xcd\xbf\x4a\xcc\xb5\x12\xa8\xe9\x47\xee\xfc\ \x58\xd2\x4e\x27\x11\xd2\x4c\x3e\x5e\x99\x5b\xf9\xa7\xae\x23\x06\ \xc3\x37\xda\x32\xf6\x23\x5a\xce\x87\x05\x3c\xab\x9a\x38\x0b\x03\ \xce\xd4\xd4\xe1\x78\x92\xd6\x78\x84\x63\xab\x5a\xb5\x2f\x25\xd2\ \xeb\x63\x30\x6a\x09\x12\xbb\x9e\x81\x6d\xf9\xd2\xbe\xdd\x88\x98\ \xe4\xc2\x41\x97\x4d\xed\x73\xf5\xae\xc2\xf0\xec\x34\x63\x34\x8e\ \xd2\x37\x41\xa2\x8a\xb6\x32\x85\xca\x8a\x15\x7a\x0a\xd7\x63\xa5\ \x13\x82\x9a\x43\x9f\x11\x38\x56\x3b\x86\xb9\x34\x63\x87\x41\x94\ \x03\x33\x5c\x6e\x72\xe8\x7d\xaa\xdd\x8d\x71\x01\x57\x33\xb0\x51\ \xd4\xd5\x91\x6a\xaf\xfe\x99\x87\x2c\x2d\x3c\x84\x7e\x1c\xbb\xfd\ \x28\xfc\x3e\x1d\x85\xda\x10\xcd\xd0\x9c\xc7\xfb\x52\xf1\x58\x92\ \xde\x58\xae\xab\xd7\x99\xaa\xc0\x58\x97\x63\xa2\xea\x4d\x66\xd9\ \x3c\x38\x6c\xd3\x34\xae\x5b\x2e\x51\x1a\x8b\x5b\x99\x27\xfb\x52\ \x25\xc3\xe1\xf1\x6b\x91\xd3\x24\x9f\x0b\x8d\x01\xf7\x15\xcc\xc5\ \x57\x33\x7a\xa4\x39\x98\x74\x1c\x85\x75\xae\x34\xac\xd2\xcd\xc1\ \xcb\x27\x0f\xc7\x94\x9c\x30\x53\xa3\xaf\x51\x5a\x33\x20\x52\x0a\ \x9c\xca\xc2\xe0\xf5\x15\x5f\x8f\xa6\x7c\x3c\x13\x5b\xcd\xaa\x13\ \x6d\xfa\x55\x8e\x03\x1c\xb3\xe1\x4c\x33\x02\xa1\x35\x46\x6d\xed\ \xcc\x51\x3d\xc5\xff\x00\x4e\xe1\x91\xfd\xe9\x97\x92\x0f\xce\xad\ \x11\x52\x02\xaa\x04\x41\x65\x1f\x9d\x41\xda\xba\x66\x46\x50\x45\ \x0b\x0b\xd4\x9a\x83\x52\x09\x5d\x2c\x49\xb5\x47\x6d\xbe\x54\x44\ \x8a\x8b\x83\x52\x71\xd0\x0d\x0b\x13\xb2\x8e\x75\x57\x17\x8d\x77\ \x06\x3d\x90\x1f\x42\xe8\x3e\x7a\xdc\xd3\xf1\x44\xae\x14\xb8\x36\ \x28\x41\x07\x6f\x7a\xcc\x7b\xe6\x37\xde\xf5\x9e\x57\x0c\x11\x48\ \xe5\xb6\x48\xd2\x39\x14\xdd\x4a\x8b\x03\xd8\xd3\x24\x1e\x21\x32\ \x2a\x90\x6f\xe7\x5e\x6a\x69\x17\x14\x78\x9c\x40\xc3\xe1\x52\x6b\ \xa8\x99\x89\x11\xb1\x1b\x0e\xf5\x82\x91\x7b\x5e\xc6\xdd\x6a\xcc\ \x18\x57\x70\x19\xce\x45\x3c\xce\xe6\xa8\x60\x31\xbc\x52\x66\x76\ \x9b\x13\x85\xc8\x8b\xba\x1e\x7c\xaf\x57\xb0\xdc\x4e\x53\x88\x48\ \x31\x30\xc4\xcb\x26\x89\x2a\x8b\x0b\xf7\xa7\x8d\x95\x76\xb4\x70\ \xf8\x36\xb6\x78\x33\x30\x16\xce\xc6\xe7\xe9\x4c\x8d\xb2\x05\x88\ \x15\x03\x64\x60\xb6\xbf\x63\xde\x80\x99\xd4\x5a\x48\x23\x24\x6e\ \x11\xac\xdf\x4a\x15\x9b\x0f\x22\xb2\x34\x99\x3a\xac\x9a\x11\x5d\ \x3a\x64\xc6\x24\x9d\x77\xef\x40\xc6\xe7\xd8\xeb\x4a\x93\x17\x1a\ \x49\x91\x88\x91\x46\xce\xa7\x5f\x9d\x13\x9d\x99\x4e\x65\x61\x71\ \xde\x8d\x38\x96\x6a\x02\xd5\x04\xdf\x9d\xbb\x50\xb9\xb7\x3b\x50\ \x5c\xcd\x50\x6a\x2e\x2f\xa0\xbf\xb5\x46\x60\x76\xbe\xb4\x24\xeb\ \x7a\x82\x58\x5b\x4b\x51\xc8\x22\x8d\x7e\xf1\x82\x9e\x97\xb9\xa8\ \xc3\x78\x53\x12\x15\xce\x6e\x4a\x74\xbd\x48\x71\x5b\x2e\x9b\xf3\ \xa3\x03\x5a\x0f\x0b\x5d\xed\xef\x46\xa2\xca\x05\xef\x4a\x1a\xd3\ \x12\x82\x31\x4c\x02\xd5\xa8\xc8\xd2\x98\xf1\xac\xcb\x95\xf4\x3c\ \x9b\xa5\x29\x69\xe9\xbd\x69\x33\xe6\x8d\xe2\x72\x8e\x35\x1f\x9d\ \x08\xad\x39\x23\x59\x93\x23\xef\xf0\xb7\x4a\xce\x91\x19\x24\x28\ \xc0\x82\x0d\x62\xcc\x32\xe9\xae\xb9\x4f\x87\xbd\x8e\xa4\x9d\xcf\ \x33\x5c\x05\x1c\xdf\xe7\x37\xb9\xb5\x0d\xe9\x02\x53\x70\x15\xaf\ \x61\xb7\x51\xdc\x53\x16\xec\x72\x9f\x58\x17\xb0\xd9\x87\x51\xfc\ \x52\x81\xa9\x92\xed\x87\x70\x2f\x75\x19\x92\xdb\x83\x4c\x47\x29\ \x37\x16\xde\xb5\x0c\xf1\x05\x52\xee\x01\x20\x68\x35\xaf\x3f\x06\ \x2b\x17\x31\x11\xa1\x05\x8f\xc5\x6d\x7e\xb5\xbd\x87\x89\x61\x85\ \x50\x85\x66\xb0\xcc\x6d\x7a\xd7\x1b\xa2\x9a\x45\x8e\x86\xa4\x5c\ \xd2\xd4\xaa\x7d\xd9\xd1\x6f\xe4\x27\x6f\x6a\x60\x16\xde\xb6\x04\ \x2a\x31\x04\x58\x44\x0d\x8b\xee\x7a\x0a\x0c\x54\xf1\xe1\x94\x67\ \xbb\x3b\x0b\xac\x60\x6a\x47\x5e\xd5\x9d\x36\x26\x69\x59\x89\x01\ \x2e\x2c\x15\x4d\xc9\xf7\xaa\xf2\x90\x48\x77\x10\x99\xb1\x58\x85\ \x82\x1b\x95\x1a\x0e\xe6\x9b\x0c\x71\xe1\x90\xc6\x08\xb9\x1e\x66\ \xeb\x4b\xc1\xc0\x62\x87\x3b\x2b\x09\x1f\x6e\xc2\x98\xca\xbb\x9d\ \x7d\xe8\xff\x00\xa5\x4b\x8a\x80\x31\x02\x40\x2c\x24\x17\xf9\xf3\ \xaa\x97\xd6\xb4\x31\xe9\x9f\x0d\xa0\xd6\x33\x7f\x95\x67\x1d\xeb\ \x1c\xbd\x31\xa6\x5b\x32\x2b\x8f\x89\x45\x2c\x92\xca\x6d\xa5\xff\ \x00\x3a\x5e\x0d\xf3\x41\x97\x9a\x7e\x94\x43\xa0\x36\xa8\x16\x49\ \x36\xb8\xd3\xad\x14\x7a\x4a\xa7\xa1\xa2\x2b\xe4\xca\x35\xcd\xce\ \xb8\x47\x76\x00\x54\x75\x8f\xc4\x6e\xb8\xa6\x70\x80\x17\x21\x9b\ \xb9\x06\xa8\xe2\x23\x9d\x65\xf1\xf0\xec\xc7\x5b\x94\xbd\xed\xf2\ \xad\x4e\x2d\x22\xc9\x8a\x7c\xa3\xc9\x1a\xe4\xbd\xb7\x6e\x75\x44\ \xe6\x04\x10\x6c\x6f\xbd\x72\xe5\x3b\x6e\x22\x71\x63\x72\x02\x92\ \xb7\x20\x72\x34\xce\x16\x10\xe3\x61\x32\x80\xc9\x9b\x51\x4b\x75\ \xcf\xb9\xf9\xd0\x46\x5a\x39\x01\x53\xa8\x34\x79\x53\xd1\x4a\x49\ \x94\x8e\x9a\x1d\x2d\x51\x63\x41\x81\xc4\x2e\x2e\x30\x09\x02\x65\ \x1a\x8b\x7a\xbb\xd3\xc2\x9b\x5f\x61\xde\xbb\x30\x55\xad\xca\x89\ \x41\x27\x4a\x87\x96\x04\xde\x4c\xc7\xa2\x8b\xd5\x79\xb1\x2e\xc3\ \x2c\x63\x20\xeb\xce\x8d\x5d\xac\xcb\x24\x71\x03\x9d\x81\x6f\xc2\ \x37\xaa\x38\xdc\x43\x34\x2d\x29\x4c\xd9\x48\x01\x6f\xa0\x14\x36\ \x24\xde\x89\x55\x4a\x95\x7f\x4b\x0b\x1a\x2d\xb4\xe4\x84\x47\x39\ \x91\x6e\x30\x8f\x6e\x45\x4d\xe9\x18\x99\x64\x98\x18\xa3\x85\x94\ \x73\x16\xb9\xad\x08\xd4\xa4\x69\x11\x36\x2a\x2c\xa4\x1d\x1b\xfb\ \xd4\xb1\x6b\xdc\x92\x1b\x6b\xf3\xac\xe6\xc3\xaa\xb6\x26\x24\x2e\ \x2c\xc5\x7c\xc2\xd5\xd1\xa3\x19\x02\xa0\x27\x31\xb5\xa9\xae\x09\ \x37\x26\x9f\x80\x0a\xaa\x64\xb7\x9a\xf6\x14\xc8\x8a\xe2\x31\x24\ \x18\x35\xcd\xe6\x7f\x13\x4b\x8d\x2f\x6a\xa9\x81\x91\xd7\x88\x46\ \xd9\x89\x25\xad\xa9\xab\xdc\x6e\xc7\x07\x10\x36\xf5\x1a\xad\xc1\ \xe2\x0f\x8a\xf1\x18\x79\x62\x19\xbe\x7c\xa8\xbf\xec\xa7\x8b\xd2\ \x8c\xb2\x30\x1b\x03\x42\x68\x98\xdd\x89\x3c\xe8\x6b\xa0\x41\xa1\ \x22\x8c\xd4\x11\x59\x40\xcb\xda\xba\xdd\xa8\xab\x8e\xd5\x24\x04\ \x8e\x55\xf0\xa4\x24\x03\xcc\x72\xd2\xb3\x71\x11\x15\x95\xa3\x60\ \x04\xa9\xb8\xe4\xc3\xa8\xad\x2a\xab\xc4\xcf\xdf\xea\xc4\x1d\x19\ \x1b\xa7\x6f\x6a\xcf\x29\xd1\x8c\xf2\x29\x7c\x62\x31\x2f\x08\x12\ \x58\xe6\x81\xec\x35\xe4\x6a\xd4\xaa\xa4\x16\x5d\x34\xb9\x43\xb8\ \xfe\x47\x71\x4a\xc5\xdb\xff\x00\x47\xc4\xdc\x1b\x1c\xb6\xb8\xef\ \x5c\xec\xe8\xb3\xb8\x3b\x5e\x39\xe3\xfe\x90\xdf\x4a\xb2\x8c\xa5\ \x32\x48\x09\x5b\xdc\x58\xd8\x83\xd4\x56\x7e\x12\x53\x06\x21\x64\ \x1b\x0d\xfb\x8a\xd0\x9d\x02\xbf\x94\xf9\x48\xba\x9e\xd5\x89\x7a\ \x6a\xb4\xe3\xc7\x4c\x70\xba\xb2\xbb\x47\x6b\x31\x1e\xa5\xeb\xd8\ \xd5\x59\x1c\xc9\x31\x77\xe6\x6e\x6d\x4e\xe0\x20\x3a\x4e\x8e\x33\ \x28\x50\x6d\x56\xc4\x38\x61\xa8\x83\x5e\xec\x48\xae\xb3\x6c\xd6\ \x4a\x9a\x2c\x33\xe1\xcb\x40\x09\x60\x34\x02\xe4\xfc\xc5\x27\x0d\ \x8a\x68\x87\x87\x22\x66\x5e\x9b\x11\x57\x73\x90\x00\x5f\x28\x1b\ \x05\xd0\x0a\x09\x95\x66\x89\xfc\x45\x04\xaa\x92\x18\x0d\x69\xb3\ \xf8\x80\xb8\x8c\x33\x9d\x59\x90\xf5\x23\xf8\xae\x02\x37\x92\xd1\ \xb7\x88\x6d\x7d\x36\x1e\xe4\xd5\x48\xb0\xd3\x49\x1e\x74\x8c\x95\ \xeb\x57\x30\x51\x34\x38\x76\x0e\xb6\x77\x23\x9e\xb6\xa2\x5b\x7d\ \x54\x72\x00\xab\x72\x83\x2f\x36\x46\xbd\xbd\xc5\xab\x92\x10\x40\ \x28\x33\x03\xb1\x06\xf7\xa3\x8c\x95\x37\x06\xb9\xa2\x85\xbe\x12\ \x87\xf1\x21\xb5\x6f\x02\xb6\x32\x0f\x1b\x1a\xa9\x18\xf3\x10\x33\ \xdb\x61\x56\x06\x1a\x0b\x04\x55\x0a\x57\xd3\x27\x3b\xd3\x22\x48\ \xe2\x8f\x24\x40\xd8\xfa\x98\xee\xd4\x56\xaa\x45\xa8\x61\x71\x98\ \x80\x1a\xf9\x5c\x03\xb1\xa5\xa6\x6c\xf6\xb0\xbf\x7a\xb1\xb8\xcc\ \x6e\x54\x8b\x35\xb5\xb5\xb6\x3f\x4b\x83\x5c\x22\xb9\x00\x26\x6b\ \xec\x46\xb7\xfa\x53\x80\x2a\xa7\xf1\x0f\xa5\x15\xb5\xb5\x19\x8e\ \x45\x5b\xb2\xb0\x1f\xd4\xbf\xbd\x42\x03\x7b\x90\x05\xb6\xad\x27\ \x20\xa6\xa0\xa8\x51\x46\x2a\x16\x8d\x57\x4a\x4f\x10\x8e\xea\xb3\ \x00\x09\x0a\x46\xbc\xcf\x2f\xd6\x9e\x9b\x0a\xec\x55\x86\x02\x52\ \x76\x16\xf9\x6b\x50\x8c\xcc\x44\x8d\x98\xe4\x5b\xd8\x74\xd8\x54\ \x07\xba\x86\x1c\xe8\x1c\xb2\x5c\xdb\x51\xb8\x35\x03\x45\x03\xe7\ \x58\xd6\xf0\xd5\x6a\x34\x62\x0d\xc1\xd6\x90\x0d\x1a\xb6\xb5\x6a\ \xc5\xcc\x10\xf1\x27\x55\xb0\x00\x9b\xb5\x85\x69\x06\xb9\xbd\x53\ \xc0\xc7\xe1\x45\x99\xbd\x6e\x3e\x82\xac\x29\xae\x93\xa8\xcd\x3d\ \x4e\x96\x3a\x83\xc8\xd2\xf1\x52\xb6\x16\x0c\xf1\xc8\x00\x26\xca\ \xac\x2f\x63\x52\xa6\xa9\xf1\x32\xd3\x71\x05\x81\x6e\x42\xd9\x40\ \xef\xce\xb5\x6f\x41\xd8\x3c\x3c\x98\x96\x32\x3b\xb6\x52\x7c\xce\ \xdb\xb1\xab\xf0\xc7\x0c\x2b\x68\xd0\x7f\xa8\xee\x6b\x88\x54\x02\ \x34\x16\x55\xd0\x5a\xa2\xe6\xa9\x31\x22\x46\xcb\xa1\xbd\xb9\x1a\ \x02\x74\xa9\x90\xe9\x40\x08\xd8\xde\xfb\x55\x52\x01\xf3\x6a\x2e\ \x0e\xe2\xb3\x71\x91\x18\xa6\x2a\x76\xdc\x1e\xa2\xb4\x89\xd7\x63\ \x49\xc5\xc4\x26\x87\x2f\xc6\xba\xaf\x7e\xd5\x9b\x34\xc6\x7c\x32\ \x98\xa5\x0e\x35\x1b\x11\xd6\xae\xdd\x4a\x86\x53\x75\x3b\x56\x71\ \xd0\xdb\xa5\x1e\x12\x73\x11\xca\xd7\x28\x77\x1d\x2b\x12\x9b\x17\ \xc6\xa2\xa5\xe5\xf0\x20\x79\x88\xcd\x94\x69\xf3\xa1\x5b\x10\x1d\ \x4d\xd4\xd2\xe7\x99\xfc\x76\xc2\xb2\xab\x2b\xec\x6d\xaf\x6a\xd0\ \x8c\xb9\x41\x22\xda\x79\x18\x83\xae\xf7\xd4\x1f\xce\x94\xa3\x3b\ \x65\x22\xc0\x9d\x7b\x55\x8c\x4c\x18\x88\x03\x09\xf5\x77\x6c\xd7\ \x1b\x6d\xa5\x20\xdc\x6a\x2d\x5c\xab\x6d\x75\xe1\xd8\x45\xb4\x6d\ \x03\x35\xc7\xac\x36\xf5\x9d\xc5\xf0\x70\xe0\x98\x66\x72\x43\x6a\ \xa2\xda\xfc\xe8\xb0\xf8\x9c\x42\x59\x44\xec\x14\x6b\x60\x6b\x37\ \x13\x3c\xb3\xc9\x9a\x59\x19\xcd\xf9\xd3\xcb\x94\xcf\x04\x94\xc8\ \x31\xd2\xc2\xe1\xa1\x0a\xb6\xfe\x9b\x9a\xd4\x79\x8e\x22\x24\x9e\ \xe4\x86\x1a\x8b\xec\x79\xd6\x22\x29\x76\x0a\xa2\xe4\xec\x05\x6d\ \x61\x22\x68\x70\x29\x13\xfa\xae\x49\x1d\x2f\xca\x8e\x16\xd3\x62\ \x10\x86\x17\x15\x36\x14\x4a\x8a\xa6\xe0\x57\x11\x5b\x64\x26\xf5\ \xd5\x35\xd6\xa9\x39\x4e\x99\x48\x0c\xa7\x91\x1b\xd1\x7c\x36\xb9\ \x60\x36\x3f\x10\xf7\xeb\xef\x43\x6a\xed\x8d\x48\x2e\xba\x66\x04\ \x10\x76\x20\xdc\x1a\xb1\x82\x17\xc3\x9e\xaa\xd4\xab\x82\x6e\x49\ \x04\xee\x47\x3f\x71\xb1\xa6\xe0\x0d\xa7\x31\xb6\x50\x59\x74\xe8\ \xdd\xc5\x53\xd5\x7c\x27\x8e\x1f\xf8\x58\x56\xda\x96\x26\xbb\x85\ \x47\x93\x04\xd2\x5f\x59\x1a\xdf\x4a\x57\x18\x94\x4d\x89\x58\xa3\ \x20\xaa\x0b\x0f\x7a\xbc\x23\xf0\xa1\x48\x41\x07\x22\xd8\xfb\xd5\ \x3f\xdb\x57\xc2\xce\xf5\x07\x6a\x93\x73\x7d\x28\x4e\xf4\xd4\xeb\ \x9a\xed\xeb\xaa\x39\x50\x9c\x4d\x09\x35\x26\x84\xd4\x90\x5b\xa5\ \x56\xe2\xba\xf8\x6d\xd5\x48\xab\x06\x91\xc5\x01\xf0\x22\x16\x3a\ \xdc\xd6\x6f\x85\x55\x1b\x41\x1b\x6c\x0d\xc1\xe6\x3b\x8a\x2c\x52\ \x99\x70\x18\x88\x55\x7e\xf1\x6d\x70\x36\x24\x6b\xa7\xb8\xa4\xb0\ \x24\xe5\xda\xd4\xd4\x6b\x62\x1a\x3b\xe5\x91\x95\x5d\x0f\xca\xd6\ \xac\x42\xc0\x65\x60\xcd\x71\x6d\x76\x3b\xd6\x86\x05\xbc\x5c\x0d\ \x89\xf3\x42\x6d\xff\x00\x49\xab\xf3\x47\x06\x20\x9f\xb4\xc1\x67\ \xe6\xe9\xa1\xfa\x50\x61\xb8\x77\x85\x24\x86\x09\x44\xa8\xe8\x46\ \x5d\x9a\xfc\xb4\xac\xce\x16\x53\xa7\x70\x01\xac\xe7\x96\x4f\xde\ \xae\x1d\xa9\x5c\x26\x16\x8b\x0b\x23\x3a\x95\x32\x10\xa0\x11\x6d\ \xa9\xc4\x76\xae\xb3\xc0\x00\x09\x36\x02\xf4\x38\xb7\x10\xe1\xdf\ \x31\xb3\xb8\xb0\x1c\xed\x5d\x88\x38\x87\xc5\x88\x22\x93\x22\xb2\ \x06\xf6\x16\xa1\x9f\x06\x83\x0e\xef\x79\x0b\x28\xbe\x76\xd8\xf6\ \xab\xff\x00\x01\x18\x2c\x48\x48\xc4\x72\x29\x28\x35\x04\x6e\x2a\ \xca\xcb\x86\x94\x12\x98\x80\x00\x3f\x10\xb5\xeb\x39\x04\x92\x9f\ \x06\x25\x2c\x58\xed\x6a\xb6\x9c\x39\x96\xe0\xcc\x99\xbf\x09\x16\ \xfc\xeb\x32\xdc\x2b\x48\x84\x0c\xc0\x82\xa7\x40\x41\xbd\xe8\xd4\ \x69\x4b\xc2\x44\xd0\x21\x8d\xca\x92\xc7\x37\x94\xdf\x91\xa6\xd6\ \xe0\xa9\x14\x4c\x52\x38\xcc\xb2\xb6\x54\x1c\xed\x72\x7d\xaa\x10\ \x28\x53\x24\x87\x2a\x2f\xa8\xfe\xd5\x99\x8b\x9e\x4c\x5e\x23\x41\ \xa0\x36\x45\x1c\x85\x56\xe0\x5b\x6e\x26\x43\xe5\xc2\xc0\x2f\xc9\ \x9b\xcc\x4f\xca\x8a\x57\xc7\xaa\x91\x24\xb9\x21\x91\x6f\x90\xb8\ \x56\x53\xda\x9f\x84\xc3\x47\x83\x50\x02\x86\x9b\x76\x72\x3d\x3d\ \x85\x76\x35\x4c\xd8\x62\xbe\xa6\x53\x98\x5c\xdf\xde\x9c\xb9\xda\ \x26\x0c\x37\x14\x8c\xf8\x89\x88\x1a\x8f\x4f\x8b\x76\xb7\xb5\x1a\ \x63\xe6\x89\xc4\x78\xc8\x73\x10\x6c\x58\xe8\xc3\xf9\xa6\xc3\x89\ \x56\x44\x56\x8e\x42\xcb\x60\xc5\x75\xfc\xaa\xc3\x2c\x73\xc6\x52\ \x4b\x4a\x9f\x46\x5a\x64\xfe\x55\xbf\xd4\xc2\x63\x9d\x73\x41\x20\ \x71\xd0\xe8\x47\xca\xa4\x82\xa6\xc4\x5b\xde\xa9\x62\x78\x6c\x89\ \xf7\x98\x66\x2e\xa0\x7b\x30\xae\x83\x88\x4b\x1d\x93\x10\x9e\x22\ \x8e\xba\x30\xf9\xd5\xbf\xd1\x9f\xc5\xe5\x26\x97\xc4\xcf\xfc\x1a\ \xc2\x0f\x9a\x76\x20\xff\x00\xa7\x99\xa6\x46\xd1\xcd\x1e\x78\x5b\ \x30\x03\x51\xcd\x6a\xb7\x13\x90\x7d\xa5\x23\x3b\x04\x28\x18\xf2\ \x6b\xde\xd4\xdf\x14\xf5\x51\x81\x92\x14\x63\x60\x59\x75\xb7\x22\ \x34\xa5\xc4\xc4\xa5\xb2\x93\x97\x4d\x28\xf1\x09\x96\x49\x63\x24\ \x8b\x36\x70\x0e\xe0\x1f\xef\x53\x83\x86\x59\x17\xd2\x04\x77\xf5\ \x1a\xe7\xf5\xa4\x00\x4f\x23\xfa\xd5\xdc\x16\x16\xd6\x92\x51\x71\ \xb8\x5e\xbe\xf4\xdc\x2c\x70\x44\x40\x52\xa2\x53\x7b\x16\x3a\xff\ \x00\x6a\x64\x88\x54\x16\x98\x65\x03\x76\x23\x5a\xdc\xe2\x2d\x33\ \x52\x46\xd7\x3b\x0a\xec\xc0\x10\x0d\x66\xcf\x36\x69\xfc\x41\x7c\ \xab\x6c\xa7\xb7\x7a\xd1\x23\xc4\x54\x90\x69\x9d\x73\x53\x28\xc3\ \x90\xf4\x35\x4e\x56\xf0\xf8\xe1\x3c\x84\xb5\x66\x25\xd4\x29\x27\ \x53\xb5\x66\x62\x8e\x6e\x2e\xcd\x60\x4f\x8a\x36\xe7\xad\x36\xf4\ \xa3\x66\x4d\x24\x60\x39\x1a\x8b\xe9\x43\x35\x8c\xcf\xa0\xdc\xf2\ \xa8\x0c\x47\x7f\x9d\x6b\x42\x0b\x5c\x91\x44\xbc\xe8\x52\xc4\x74\ \x23\xad\x70\x37\xed\x6d\xe8\x48\x7e\x7d\x28\x2f\xa5\xea\x64\x36\ \x5d\x4d\x46\xf4\x54\xa9\xc4\x60\xce\xa6\x64\x1a\x8f\x58\x1f\xad\ \x51\xb0\xad\x70\x1b\x3d\xd4\x12\x7b\x55\x7c\x56\x0f\x31\xbc\x6b\ \x91\xb9\xa9\xe7\xed\x59\xb3\xeb\x52\xaa\x61\xe5\x78\x49\xca\x6e\ \x0e\xe0\xec\x6a\xdc\x13\x47\x26\x24\x16\x21\x18\xc7\xe5\xbe\xdb\ \xf5\xaa\x45\x48\x36\x3b\xd4\xb0\x6f\x23\x80\x4e\x4b\x86\x03\x7b\ \x1a\x25\xa6\xb4\x58\x39\x1e\x19\x4c\xea\x77\x04\x5c\x52\xfe\xc3\ \x85\x63\x7f\xb2\xb0\x3c\xf2\x35\x87\xd2\xa8\xea\x23\x0f\x1c\xbe\ \x5e\xa0\xfe\xa2\xa0\x4f\x23\xe8\x5d\xaf\xef\x57\xea\x7d\x18\x6e\ \x22\x0c\x34\x2e\x55\x73\x3d\xc5\x8f\x9b\x6a\x54\x71\xe1\xd1\xc1\ \x8f\x0a\xa0\xff\x00\x56\xb5\xc0\x51\xa8\xd2\x82\x2c\xc4\x9d\x95\ \x40\xfc\x20\x54\x85\x5b\xfa\x45\x08\xa9\xbd\x20\x56\xf7\xfa\xd4\ \x1f\x7a\x8b\xd7\x6a\x6a\x4e\x3b\xee\x3e\x95\xd6\x3d\x45\x4d\xab\ \xaa\x48\x1b\xdb\x63\x5c\x74\xa9\xde\xba\xc7\xb1\xa9\x20\x94\x48\ \x8c\xb2\xb6\x54\x1c\xfa\xd5\x29\xf8\x89\x91\xbc\x28\x07\x86\x3e\ \x16\x27\x5b\xf7\xae\xe3\xce\xde\x2c\x71\x0d\x15\x50\x1b\x77\x34\ \xee\x19\x86\x8e\x2c\x32\xe2\x24\x50\x59\x86\x60\x4f\xc0\xbd\x7d\ \xeb\x3b\x6d\xc8\x73\xad\x3b\x04\xb0\x9c\x42\xe2\x66\x5f\x0f\x38\ \xcc\xaa\xdb\x5e\xad\xcb\x7c\xc6\xfb\xd2\xf0\x91\xc6\xf0\x09\x64\ \x19\x9f\x31\x39\x49\xd1\x6f\xa8\xa6\x4a\xda\x92\x6b\x70\x7d\x2f\ \xe1\x14\x24\x54\xee\x2f\xb0\xae\x53\x7d\x41\x20\x76\xa5\x04\x8e\ \xd4\x07\xc4\xbe\xc2\xdd\xa8\xc9\x39\xf2\xef\x50\xc6\xc4\x0e\xb4\ \x20\x9a\x13\x46\x68\x1b\x40\x4f\x4a\x10\x4e\xa6\xf5\x53\x8a\x13\ \x26\x24\x22\x7c\x20\x00\x07\x33\x57\xa1\x1e\x23\x6a\x3c\xab\xa9\ \x17\xde\xa8\x46\xc1\xb1\x99\xdb\x7b\x97\xfa\x6b\x59\xe4\xd4\x2a\ \x00\x7c\x67\x48\x99\x57\xc2\xb6\x79\x48\xbe\xbd\x05\x0e\x23\x06\ \x26\x97\xc4\x8f\x16\xc5\xfa\xca\x2c\x4f\xcc\x69\x4f\x2b\xe1\x40\ \xa9\x6b\x34\x87\xc4\x93\xdc\xf2\xa8\x55\xbe\xf5\x9c\xeb\xb4\x98\ \xe3\x9f\xc1\x3f\x68\x42\x19\x3d\x2e\x35\x0c\x2a\xc7\x0b\x4f\xf3\ \x24\x3f\x08\xb0\x3d\xea\xae\xe0\xe5\x1b\x75\x35\xa3\xc3\x93\xfe\ \x04\x58\x80\x59\x89\x60\xcc\x05\xad\xa5\x6a\x0a\x8c\x6e\x21\x20\ \x11\x19\x95\x9f\xc4\x04\xe6\xcd\xa8\xd6\xd4\x50\xaa\x4e\xb9\xb0\ \xce\x24\xed\xb3\x0f\x95\x27\x8b\x64\x64\x80\x85\x0f\x95\x4f\x99\ \x9b\x2a\x03\x7f\xce\xa9\x78\xe1\x08\xfb\xc7\x62\x0e\x9e\x19\xc8\ \xa3\xdb\xad\x57\x96\x5e\xd6\x74\x6f\x13\x90\x8c\x68\x31\xbd\x8a\ \x28\x17\x1d\x45\x36\x18\x04\x98\x70\xf8\x89\x24\xcd\x26\xa3\x5d\ \x87\xb5\x57\x82\x07\xc6\x67\x95\x0a\xa9\x07\xcc\x09\xb7\xce\xb4\ \x25\x3e\x7d\x35\xb0\x00\x77\xa2\x77\xda\x56\xc0\xe1\xcc\x12\x34\ \x99\xd7\x2e\x56\x02\xc7\x52\x4d\x34\x0f\x95\x48\x50\xa2\xc3\xf3\ \xa1\x93\x53\x6e\x94\xe6\x21\x8b\x16\xd3\x97\x3a\x62\x85\x08\x5e\ \x46\xca\x8b\xbb\x54\x44\xaa\x22\xcf\x21\xca\x8a\x35\x35\x43\x15\ \x34\xb8\xe9\x84\x50\xa1\xc8\x0d\x95\x47\xea\x69\xb7\x10\x71\xd8\ \x97\xc5\x4a\x23\x8d\x48\x8c\x1b\x22\x0e\x7d\xeb\x43\x87\xe1\x57\ \x06\xa1\x9e\xc6\x73\xff\x00\xd3\xfb\xd1\x61\x30\xf1\xe0\xd0\x65\ \x0a\xf3\x73\x7f\xc3\xd8\x53\x54\x5c\xdc\xd3\x38\xfd\xa3\x5c\x54\ \xb0\xef\xde\xa7\x0c\x72\xb9\x16\xbe\x61\x6a\x34\x5a\x60\x5c\xdf\ \xcd\x68\x6b\xa2\x51\x1d\xfc\x24\x09\x7d\xed\xbd\x0e\x25\x0a\xa3\ \x4e\xac\x55\x97\x9f\x5e\xd4\xe8\xc1\x2a\x6f\xb8\x36\x35\x18\x98\ \xcc\xb6\x86\xf6\x55\x37\x76\xfd\xaa\xc4\x4e\x0f\x16\x24\x60\xae\ \xb6\x63\xa0\x75\xda\x9b\x8a\x82\x2c\x52\xda\x51\x67\xd6\xce\x34\ \xd7\xbd\x28\x60\xa3\x59\x96\x45\x9a\xca\x1a\xe4\x15\xd4\xd5\x96\ \x39\x98\x9b\x6e\x6f\x54\xdc\xed\x7f\xe3\x28\x24\xfc\x36\x76\x95\ \x80\x20\x21\x3d\x43\x0a\x87\x03\x11\x11\x64\x24\xa4\xea\x4a\xf6\ \x3d\x3d\xeb\x47\x89\x46\xb3\x70\xf3\x03\xb1\x1e\x23\x59\x48\xe5\ \xfd\xab\x0b\x86\xca\xd8\x4c\x63\x61\xa5\xd1\x59\xac\x6f\xf0\x91\ \xb1\xac\x5e\xae\x19\xda\xc7\x09\x55\x9e\x73\x1c\xce\x49\x78\xd4\ \xa9\x36\xb1\xb0\x1e\x5b\xf5\xb8\x3f\xec\x56\x8a\x07\x13\x08\x94\ \x05\x7c\xb7\xb7\xe0\x15\x93\x82\x85\x5e\x18\x62\x11\x96\x77\xb3\ \x02\xbb\x8d\x6b\x68\x44\x90\xca\xcc\xac\x59\x88\xb1\xd0\x00\x4f\ \x33\x4f\x1f\x15\x23\x11\x83\x52\xb7\x80\x5c\x8d\xc1\x1a\x9e\xe2\ \xaa\x9f\x14\xb0\x46\x2e\xdc\xac\x4e\xbf\x4a\xd1\x04\x8a\x89\x50\ \x4c\xca\xf9\x8a\x48\x9b\x35\xaf\x7a\x6c\x12\xa9\x34\x6d\x1d\xbc\ \x45\x2b\x7f\xc5\xa5\x68\x70\xe9\x56\x4c\x3a\x44\x74\x74\x04\x2d\ \xf9\x8a\x5e\x26\x19\xe6\x20\x2f\x85\x65\xd7\x43\x6b\x9e\xba\xd2\ \xf0\x0a\xc9\x8f\x8d\x58\x10\x43\x73\xa6\x75\x53\x46\x1f\xf3\x54\ \x9d\x81\xbf\xd2\xb1\x61\x19\xf1\xe0\xa9\xd1\xa5\xba\xdf\x90\xbd\ \x6c\xc2\x7e\xf5\x7d\xed\x58\xa2\xe9\x8e\x00\x5b\xcb\x26\x97\x36\ \xb6\xb5\x72\xf8\xa3\x66\x7d\x66\x6f\xf5\x1a\x85\x15\x33\x5f\xc5\ \x7d\x47\xa8\xf2\xef\x43\xaf\x61\xf9\xd6\x80\xd4\x29\x2c\x58\x79\ \x46\xa7\xe4\x2b\x29\xb8\x96\x20\x4c\xe2\x30\x42\x83\xa0\xab\x9c\ \x4d\xcc\x7c\x38\xda\xf7\x76\x00\xd6\x41\x3a\xdf\xeb\x58\xe5\x73\ \xc6\xa4\x5f\x87\x88\x2c\x8d\x7c\x4c\x36\xe4\x0a\xff\x00\x15\x2f\ \xc4\xa0\x53\x95\x61\x76\x3f\xd4\x6c\x2b\x38\x11\xf8\x87\xd6\xb8\ \xe6\x3b\x58\x0e\x57\xa3\xf5\x4e\x43\xf1\x38\xcc\x44\xd7\x19\xb2\ \x2f\x45\xd2\x82\x1c\x6e\x2a\x11\x65\x94\x95\xfc\x2d\xa8\xa0\xe5\ \xb8\xbf\xb5\x5f\xc0\xe1\xa2\x38\x41\x23\xc6\x24\x67\x26\xdd\xa8\ \x9b\x6a\xb9\x0b\x18\xcc\x36\x20\x85\x99\x7c\x37\xfc\x43\x6a\x39\ \x30\x6e\x14\x34\x6c\x24\x07\xf0\x9d\x68\xce\x03\x0d\x20\xb9\x56\ \x8c\xff\x00\x4e\xb4\xb5\xc0\xe2\xf0\xe7\x3e\x12\x51\x27\x60\x6c\ \x7e\x9c\xeb\x5d\xfd\x1d\x2b\x4f\x01\x2d\x9d\x33\x2c\xab\xea\x1b\ \x67\x14\xa5\x4c\xc7\x32\x03\x6b\xfd\x3d\xea\xf2\xe3\xca\x9c\x98\ \xbc\x31\xb8\x3b\x81\x63\x53\x2b\x60\xe6\x91\x1e\x19\x32\x3b\x1c\ \xad\x71\x6c\xda\x6d\x46\x45\xb5\x5d\x52\xdc\xc9\xf7\x34\x40\x5a\ \x9c\xf8\x59\x46\xa9\x67\x07\x9a\x9a\x53\xab\x21\xb3\x29\x1e\xf5\ \x62\x45\x75\x45\xeb\xaa\x4e\x22\xe6\xa4\x57\x0a\x9a\x92\x40\xae\ \xae\xae\xa5\x3a\xdd\xab\xad\xad\x4d\x75\xaa\xc4\xa7\xc7\x63\xce\ \xb1\x4e\xa2\xc4\xae\x46\x37\xe6\x36\xd3\xfd\xef\x4d\xc1\xb1\x97\ \x0e\x80\x90\x52\x15\xd1\x6d\xcc\x31\x02\xff\x00\x91\xa7\x49\x1f\ \x8f\x87\x93\x0f\xcd\x85\xd7\xdc\x55\x6e\x1e\xcc\x85\xe0\x73\x6c\ \xe8\x96\x1c\xb3\x6a\x7e\x5a\x00\x2b\x39\xda\xf8\xbd\xc3\xc9\x2b\ \x2a\x12\x2f\xa3\x0b\xf3\xa2\x90\x5c\x58\xfe\x54\x8e\x1c\xc0\x63\ \x2c\x7e\x20\x54\x55\x87\xb1\xad\x4f\x05\xf5\x5d\x94\x96\xcb\x5c\ \x17\x21\x1a\xe8\x69\x84\x73\x1b\xfe\xb5\x04\xa8\x4c\xee\xe1\x54\ \x73\x35\x12\xda\xec\xd7\x5e\x5b\x9a\x9c\xba\xdc\xb5\xcd\x4c\x6f\ \x0c\xa4\x84\x97\x6e\x45\x6d\x45\x94\x13\x65\x74\x24\x6e\x2f\x6f\ \xd6\xa4\x59\x15\xd9\x46\x52\x58\x85\x51\xb9\x3b\x53\x0c\x4d\xb8\ \x1a\x75\xbe\x9f\x5a\x8b\x2b\x1b\xe8\xc2\x2d\x06\xb7\x05\x8d\x58\ \x95\xe4\x56\x4c\x24\x8c\x8c\xb6\x60\x00\x21\xc0\x1a\xf3\xfc\xaa\ \x9c\x30\x9c\x99\x94\x11\x9b\x43\x2b\x68\x00\xe7\x6e\xb5\x7f\x1f\ \xe4\x81\x5d\x15\x43\x33\x58\xf9\x46\xba\x55\x2b\x97\x62\x59\x8b\ \x1e\x75\x8e\x53\xb3\x13\x29\x0f\x29\x61\xb6\xc2\x84\x81\x6d\x6a\ \x76\xae\x35\x92\x18\x90\x34\x81\x54\x1b\x13\xa8\xbe\xf4\xec\x04\ \x0a\xd2\x33\x38\xba\xc5\xa1\x1d\x5b\xff\x00\x34\xdc\x36\x1c\xa6\ \x11\xe7\x26\xcd\x94\x95\x16\xe5\x56\x32\x2c\x68\xb1\xa0\xd2\xc0\ \x93\xd4\x91\x5b\x9c\x46\x93\xc4\xd0\xe2\x38\x79\x03\x78\x9b\x30\ \x00\x72\xac\x60\x3a\x0a\xf4\x11\xb1\x57\xb8\x17\xb6\xe3\xf6\x35\ \x9b\xc5\xb0\x9e\x0c\xbe\x2a\x29\x31\xbe\xa0\x9e\x47\xa5\x1c\xf8\ \xfd\x52\x87\x82\x39\x18\xf5\x8c\x1b\x2c\xbe\x53\xde\xae\x85\x02\ \x52\x3a\x0e\x75\x9b\xc3\xe3\x69\x31\xf1\x22\x9b\x12\xe3\x5a\xd8\ \x97\x2b\x48\xc5\x45\x81\x26\xd5\x70\x9d\x2a\x55\xaa\x5a\x35\xf0\ \xcc\x8d\xe5\x55\xdc\xd1\x48\xd1\x41\x18\x92\x72\x40\x3e\x95\x1b\ \xb5\x51\x69\x26\xe2\x38\x85\x88\x2d\x90\x1d\x15\x74\x0a\x29\xb4\ \x47\x4c\xd3\xf1\x0c\x42\xc3\x12\x15\x8c\x6c\x39\x7b\x9a\xd0\x82\ \x38\xf0\xb0\xf8\x50\x9d\x4f\xad\xc6\xed\xfd\xaa\x62\x54\x81\x0c\ \x30\x8b\x20\xe7\xcd\xbb\x9a\x9b\x53\x26\x76\x82\x06\xb4\xd8\xd7\ \x95\x42\x8b\x53\x10\x56\x85\x12\x8d\x6d\x4c\x41\x50\x83\x4a\x35\ \x14\xc0\x9b\x84\x90\x30\x17\xd2\xe4\x75\xa3\x28\x42\x05\x3a\x93\ \xe6\x63\xd4\x9d\x6b\x94\x03\xa3\x6c\x41\x14\x69\x73\x18\xcf\xeb\ \x5f\x2b\x58\x74\xd8\xfd\x2b\x51\x14\x56\xc0\x9b\x6c\x2a\x02\xe5\ \x50\x29\xd7\x5b\xdb\xf2\xb5\x00\x07\x2e\xa3\x51\x46\x25\x3e\x28\ \x40\x78\xd3\xa2\xdc\xfc\xeb\x23\x8f\xc7\x71\x16\x25\x45\x8b\x79\ \x58\xf7\x15\xaf\xc5\x74\xc4\x8f\xf4\x0f\xd2\xb3\xb8\xbe\x5f\xfd\ \x28\xe6\xdf\xc4\x19\x3d\xf9\xfe\x55\xcf\x9c\xf5\xae\x2d\x3c\x1c\ \x0b\x86\xc3\xa1\x0b\x69\x1d\x05\xcf\xe1\x16\xda\xb8\xdc\x9a\x7e\ \x28\x7d\xe6\x51\xb0\x00\x7d\x00\x14\x83\xa5\x69\x97\x0a\x25\x34\ \x35\x2b\x52\x18\xda\x89\x81\x91\x40\x06\xce\xba\xa3\x5f\x63\x42\ \xb4\x40\xeb\x4c\x43\x0d\x9d\x44\x83\x42\x77\xec\x79\xd6\x6f\x1b\ \x8d\x93\x18\x66\x1b\x4b\xe6\x06\xb4\x09\xca\xcc\xe1\x4b\x2b\x6a\ \xe0\x6e\x0f\x5a\x99\x16\x39\x22\xc9\x20\x12\x46\x76\x20\xed\xed\ \x55\x9b\x0c\xea\xab\x61\xb1\xf0\xc8\x80\x62\x2e\x8e\x05\xb3\x01\ \x7b\xd3\xda\x6c\x28\x5c\xc7\x13\x19\x03\xa6\xff\x00\x4a\xac\xfc\ \x32\x26\x6b\xc7\x88\xca\x3a\x32\x9b\xfe\x54\xa9\xb8\x64\xf1\xdc\ \x96\x8f\x2f\x22\x5a\xd7\xa3\x79\x45\xd0\x78\xa6\x29\x67\xcb\x1c\ \x57\xc8\x97\xd4\xf3\xaa\x95\x63\xec\x73\x88\x4c\x9e\x04\xae\xa3\ \xf0\x2e\x9f\x5a\x42\x14\x75\x25\x43\x02\xbe\xa5\x61\xa8\xac\x5d\ \xfa\xd4\xc7\x0b\xd7\x58\xd4\x8a\x90\x3c\xb7\xa0\x86\xc6\xb5\x78\ \x6d\x9f\x87\x2d\xbe\x06\x20\xfc\xeb\x2f\xe5\x57\xf8\x1c\x83\xc4\ \x78\x0f\xfc\xc0\x32\xfb\xd6\xb8\xfa\x2f\x8b\x56\xae\xb5\x19\x17\ \x14\x24\x6b\x5d\x18\x43\xda\x45\xc9\x2a\x89\x01\xd2\xcc\x2f\x55\ \x8e\x0b\x0e\xf2\xfd\xde\x68\xc2\x12\x49\xbd\xc5\xc8\xb5\xaa\xd1\ \x16\x89\x8e\x6c\xbb\x00\x7d\xcd\xaa\x5d\x42\x9c\x8a\x3c\xab\xa0\ \xa3\x16\xb3\x1f\x0b\x8b\xc1\xfd\xec\x12\xe6\x41\xbd\x8e\xde\xe2\ \xad\x60\x31\x23\x15\xf7\x4e\xa0\x48\x06\x9a\x68\xd5\x65\x09\x56\ \xb8\xff\x00\xcd\x51\xe2\x78\x51\x1f\xfc\x4c\x07\x28\xbf\x99\x7f\ \x09\xa3\x33\xc3\xba\xb0\xf8\x58\xe4\xbe\x51\xe1\xb7\x3e\x9f\xda\ \xa9\xcc\x8b\x13\x65\x92\x44\x53\xca\xe7\x7a\xb5\x83\x91\xf1\x8e\ \xc9\x2c\x8c\x72\x0c\xc5\x41\xb6\x70\x76\x3f\xcf\xb5\x49\xc2\xc6\ \xd8\x93\x11\x04\xc2\x10\x31\x07\x52\x2f\xd2\xac\xdf\x12\x93\x29\ \x53\x63\xf9\x57\x0a\xb1\x8d\x84\xc5\x2f\x55\x61\xe5\xb7\x4a\x4f\ \xb5\x18\x5c\x05\x75\xaa\x46\x82\xa0\x1b\xd2\x93\x50\x6a\x6b\x8e\ \xa2\xa4\x10\x4a\xb0\x61\xb8\x3a\x55\x3e\x34\x1a\x2c\x44\x8e\x9e\ \x51\x94\x49\x19\x07\xa6\x9f\xb8\xab\x6d\x53\x2c\x51\x62\x03\x44\ \xe3\xcc\x51\x42\xb5\xbd\x37\xfe\xe0\x56\x6c\xde\x90\x38\x64\x8b\ \x89\x9a\x29\xd2\xd9\x81\xb4\x8a\x39\x1e\xb5\x64\xd7\x9e\xc1\xb4\ \xf8\x4e\x26\xa2\x13\x66\x12\x65\x3a\xdb\x4a\xf4\x12\x32\xb4\xbe\ \x22\xb7\x92\x41\x99\x7d\xaa\xe1\x76\x1a\x9b\xd2\x38\x92\x5f\x07\ \x98\x35\xad\x25\xed\xd7\x4a\x2b\xf9\xf3\x0d\x40\xa6\xe4\xf1\x3c\ \x10\xc3\xca\x25\x24\xdc\x5e\xfa\x53\xe8\x27\x0c\x7c\x18\x11\x14\ \x10\xc4\x5d\x88\xef\x4c\x2c\x58\x11\x20\x0e\x3f\xa8\x5e\x80\x7f\ \x9b\xf3\xe7\x4c\x37\xbd\x51\x06\xd1\x65\xcb\xe0\x47\x6e\x9a\xff\ \x00\x35\x20\x8b\x05\x00\x28\x1b\x28\xda\xa6\xc6\xa4\x0b\xd2\x89\ \xe2\x5a\x60\xd0\x85\xbd\xa4\x3f\xa5\x66\xc6\x72\xb5\xcf\x3d\xeb\ \x57\x1e\x3f\xe1\x93\xff\x00\x90\xfe\x95\x9c\xa8\x19\xcf\x6a\xc7\ \x2f\x4c\x41\xd7\x50\x34\xef\x45\x86\x88\xcb\x88\x58\xee\x06\x63\ \xc8\x5e\x8a\xd5\x6b\x85\xc6\x73\x3b\x80\x6e\x05\x87\xce\x89\x36\ \x9a\x9e\x20\xfe\x1e\x1f\x22\x9d\x24\xd0\x0b\x6b\x94\x54\x60\x09\ \x93\x0c\x55\x8d\xcc\x67\x4b\xf4\xa8\xe2\x65\x4f\x86\x80\xdd\x94\ \x1b\xd8\xde\xd5\x30\xc5\x2e\x12\xd2\xba\x82\x8e\x2c\x40\x35\xaf\ \xac\xfc\x37\x2d\x2f\x89\x18\xd3\x07\xe0\xc8\xda\xca\xea\x6d\xd0\ \x75\xab\x12\xbc\x50\xe1\x8e\x20\xd9\xd7\xe1\x1d\x4d\x63\x62\xa5\ \x79\xe6\x32\x48\x75\x3f\x95\x36\xa8\x4c\x38\xf9\x30\x9c\x5c\x09\ \x11\x04\x71\xb7\xa4\x0d\xbb\xd6\x8c\xdc\x45\x50\x0c\xb8\x54\x37\ \x17\x0d\x98\x91\xee\x2b\x33\x8a\xa7\x89\x83\x49\x88\xbb\x23\x65\ \x27\xb7\x2a\x77\x0e\xe1\xdc\x56\xc1\x51\x13\xc3\xb5\xfe\xf0\xf9\ \x47\xf7\xae\x72\xf2\x97\x23\x5d\x02\x77\x9b\x15\x88\xcc\xe7\x33\ \xb6\x80\x01\xfa\x56\xbe\x12\x0f\xb2\x61\x7c\x2f\xf9\x8f\xac\x9d\ \xbb\x51\xe0\xe0\x4c\x39\x20\x46\x04\xfb\xdc\xdf\x6f\xe9\xa2\xb5\ \xeb\x7c\x78\xe7\x75\x9b\x41\x6b\x58\xd1\x01\x53\x96\xed\x6f\x99\ \xa3\x55\xad\x0d\x42\xad\x35\x56\xb9\x16\x98\x05\x41\xca\x28\xd4\ \x6b\x50\xbb\xda\x88\x9b\x68\xba\xb7\xb6\xd5\xa4\x24\x5a\x6a\x8f\ \x30\xe8\xfe\x53\xd8\x8d\x8f\xed\x49\x89\xb3\x1f\x31\xdb\x96\xd4\ \xd8\x8f\xde\x2a\x83\xe5\xcc\x48\xee\x40\xdb\xf3\xad\x44\xe3\x7b\ \x6e\x68\x5a\x9a\x46\x9a\xd0\x30\xa9\x33\x78\xb7\xff\x00\xaa\x1f\ \xe8\x5f\xd2\xb2\xb8\xf3\x11\x85\x82\x3b\x68\xc4\xb9\xf7\xda\xb6\ \x78\xba\x7d\xea\x3d\xfd\x4b\xfa\x69\x59\x3c\x69\x03\x3e\x0d\x0e\ \xcd\x70\x7f\xee\xae\x5c\xe7\x55\xae\x2d\xc9\xbc\xc1\x5f\x6c\xea\ \x1b\xda\x90\xc0\xde\x8b\x87\x16\x9f\x85\xc0\x43\x67\x65\x05\x0d\ \xbb\x7f\xe6\x89\x81\x07\x51\xaf\xb5\x6a\xff\x00\x59\x2c\x2f\x5a\ \x21\x5d\x51\x7e\xd4\x21\x0f\x7a\x9a\x10\x6a\x41\x35\x21\x02\x41\ \x04\x6e\x29\x44\x4d\x16\x2b\x2c\x00\x15\x94\x66\x00\x8b\x81\x4c\ \x15\x32\x5c\x46\xd2\xa5\xc3\xc6\xbe\xe0\x8e\x96\xa5\x03\x10\xf8\ \xc8\xe2\x2d\x9a\x35\x00\xea\x63\xb5\x1e\x19\x32\xc2\xae\x7c\xce\ \xe2\xe4\xb6\xb6\xaa\x32\x4b\x88\x9d\x6e\x73\xba\x83\xf0\x8d\x05\ \x5d\x49\x84\xa1\x72\x02\x0a\xd8\x15\x3b\xe9\x54\xa4\xd0\xd2\x66\ \xcd\x98\xdf\xad\xea\xbc\xb0\x26\x23\x89\x4a\x19\x72\xda\xf7\x75\ \x1a\xfc\xea\xc6\x66\x12\x00\xaa\x73\x7c\x2b\xd7\xdf\xb5\x74\x71\ \xac\x20\x85\x39\x8b\x1f\x33\x1e\x67\xb7\x6a\x7d\x0c\x9c\x66\x19\ \xf0\xf2\xe5\x3a\xa9\xd5\x58\x6c\x69\x56\x35\xbb\x3c\x5e\x3e\x19\ \xa2\xe7\xba\x7b\xd6\x31\x5b\x12\x08\x37\x15\x8e\x5c\x71\xa9\x41\ \x6d\x2d\x56\x38\x40\xff\x00\xf2\x50\xff\x00\xaa\x92\x6c\x37\x20\ \x7b\xd5\x8e\x12\x3f\xfc\x8c\x27\xfa\xaa\x9e\xa6\x89\x02\xda\x52\ \xcd\x31\x98\x6c\x01\x27\xda\x81\xae\x01\xd0\x56\xd9\x71\x00\xca\ \xa9\x73\x64\x5f\x10\x81\xcc\xec\x2a\x05\xed\x6d\xed\xce\xa1\x81\ \x2a\xac\x1a\xef\x6b\x65\x3b\x30\xe9\xd8\xd3\x22\x0a\x45\x95\x80\ \x23\x70\xda\x11\x52\x0d\x8d\x12\x73\xd0\x32\x9d\x18\x72\x34\xc5\ \x8c\xf2\x19\xbd\x8d\xe9\x25\x6c\xe5\x46\x52\x06\xec\x4e\x9e\xda\ \x6e\x6a\x4c\xfe\x2a\x92\x60\x18\x62\xa0\x3e\x54\x6b\x2e\xbb\x83\ \xc8\xfc\xe9\xdc\x1b\x1d\x1e\x36\x49\x73\x30\x49\x99\x75\x52\x74\ \x36\x3c\x8d\x59\x9a\x05\xc4\xc2\xd8\x76\x94\x80\xe2\xd6\x0a\x00\ \xbf\x5a\xf3\x85\x25\xc0\x63\xd9\x1d\x7c\xcb\x70\xc3\x91\x15\x8b\ \x6f\x1b\xbf\x0c\xed\xe9\xa7\x89\x9e\x06\x46\x1c\xae\xa6\xb3\x2d\ \x47\x82\xc5\xbc\x79\x64\x8d\xd8\xc4\xc7\x55\x34\xdc\x5a\x05\x9c\ \xd8\x68\xda\x8a\xd6\xea\x22\xc6\xbb\x2d\x34\x2d\x71\x5a\x16\xaa\ \xe3\xe6\x92\x08\xd0\x44\x72\x97\xb9\x27\xb7\x4a\x94\xc5\x61\xde\ \x30\xce\xf9\x5a\xde\x60\x16\xfa\xd3\xa7\x8e\x39\x23\xfb\xc4\x24\ \xa0\xd0\x83\x6a\x4b\xe0\x62\x71\xe4\x63\x1b\x7f\x56\xa2\x8e\xf7\ \xa3\xd3\x96\x48\x24\x6c\xb1\xcb\x73\xfd\x42\xd4\x4a\xd9\xe5\x31\ \x23\x03\x95\x2c\x4f\x72\x74\xb5\x56\x7e\x1f\x38\x04\xfd\xd3\x76\ \x56\xd7\xe9\x4e\xc0\x14\x83\x06\xce\x48\x56\x8e\xec\xc0\xef\xdb\ \x4a\x3b\xde\xd3\x3b\x10\x56\x4f\xf1\x31\xc8\x43\x5e\x4f\xae\x95\ \xb2\x61\x11\xc3\x1c\x6d\xea\x44\x00\xf6\x35\x99\xfe\x1e\x84\xcb\ \xc6\x17\x12\xea\x08\x4d\x4d\xf9\x9a\xd6\x93\x31\xb9\x2a\x6e\x68\ \xe1\xe6\xaa\x51\xb2\xad\x42\xc8\x4a\x94\x07\x29\x24\x10\x7a\x11\ \xb5\x11\x40\x39\x6b\xd6\x81\xd4\x12\x2c\x35\xad\x23\x34\x20\x48\ \xab\x6c\xdb\x8e\x87\x98\xa1\x66\xb1\xb5\xa8\x92\xd7\x24\x79\x49\ \xdf\x4b\x86\xf7\x1f\xb8\xa9\xb5\xcd\xad\x66\x1a\xe5\xbe\xfd\xc7\ \x5a\x52\x28\xd4\x50\xae\xf4\x6b\x50\xa0\xc7\x2e\x6c\x18\x23\xe1\ \x7d\x7e\x75\x9c\x10\x2e\xa0\xed\xbd\x69\xe2\x41\x6c\x1c\x80\x6e\ \x2c\x4f\xb5\x51\x50\x2d\x59\xbe\x99\x42\x12\xe6\xdb\x73\x27\xa5\ \x5c\xc0\x25\xf0\xcc\xc4\xb2\x29\x60\x02\x8d\x0b\x0b\x1d\x4f\x4a\ \x42\x80\x14\x2b\x5a\xce\x72\xfc\x86\xa7\xf2\x1f\x9d\x5c\xc0\xdd\ \xa0\x91\x8e\xe6\x4b\xfe\x55\x48\xa8\xac\xa5\x72\x18\xd3\x2f\xe1\ \xcb\x50\xd8\x44\x98\x04\xf1\x64\x50\x3d\x2a\x75\x02\x99\x61\x4c\ \x87\xd6\x47\x55\x20\x7d\x0d\x69\x96\x0e\x35\xc3\x48\x51\x49\xca\ \xa4\xdb\xa0\x1b\x0f\xd2\xff\x00\x3a\xb1\xc3\xb8\x78\x78\x84\xd8\ \x82\xc1\x0f\xa5\x46\xed\x54\x9c\x10\xc5\x48\xd4\x1b\x1a\xdf\x6d\ \x42\x64\xb6\x4c\x82\xc4\x7b\x56\x38\xf7\x75\xaa\x52\x41\x86\x8d\ \x72\x24\x00\x5c\xdf\x31\x39\x88\x34\xb4\x79\x12\x5f\xb3\xce\xd7\ \x0d\xe8\x6e\x5f\xf8\xa7\xb0\x23\x98\x3f\x95\x2d\xf2\x99\x21\x72\ \x40\xc9\x25\x89\x27\x60\x7f\xbd\x6c\x39\x94\x98\xd8\x0d\x59\x7c\ \xcb\xae\xc4\x57\x40\xc9\x32\xe7\x42\x01\xf8\x94\x9d\xa8\xe2\x17\ \x97\x2f\x33\x70\x79\xf6\xac\xf8\x96\x21\x23\xac\x8c\xde\x51\xe5\ \xcb\x45\xaa\x34\x02\x1b\x92\x74\x27\xb7\x2a\x25\x5b\x54\x61\x03\ \x8c\x22\x67\x37\x27\x51\x7e\x42\x9a\x10\x9f\xee\x6d\x5a\xc0\x85\ \x14\x5c\xab\x88\x23\x71\xa7\x23\xd6\xa4\x52\x9c\xbe\xaa\x38\xf4\ \x5b\x03\xcc\xdf\xeb\x41\x6d\x6b\xae\x43\x79\x4d\x89\x3a\x8a\x90\ \xa6\xb6\x9d\x4d\x1c\x79\x64\x87\x2b\x72\xe6\x39\x1e\xb5\x20\x8e\ \x82\xb8\x1c\xa4\xe5\x1a\x1d\xc5\x69\x25\x24\x61\x27\x85\x3d\xae\ \x7d\x2f\xc9\xa8\xd9\x4d\xed\x6f\x95\x2d\x99\x5d\x32\xb4\x64\xaf\ \x7d\xc5\x04\x73\x98\xdf\xc2\x98\x92\xa7\xd0\xc7\x97\x6a\x90\x78\ \x9a\x5f\x0c\xad\x6f\x4b\x6b\x58\xfc\x60\x5b\x09\x0c\xd9\x6f\xe1\ \x4b\xa9\xe8\x37\xfd\x6b\x73\x1a\xc8\x20\x78\xdd\xd4\x31\x17\x00\ \x9e\x95\x95\x8c\x48\xdf\x01\x34\x66\x45\x37\x00\x8b\x1e\x63\x6f\ \xd6\xb1\xce\x18\xff\xd9\ \x00\x00\x2a\x0f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x1c\x2b\xec\xa5\xbb\x6e\x00\x00\x20\x00\x49\x44\x41\x54\x78\ \xda\xed\x9d\x79\x94\x5d\x55\x9d\xef\x3f\xfb\x0c\x77\xae\x39\x35\ \xa5\x06\x2a\x21\x21\x09\x14\x15\x84\x88\xd1\x00\x09\x08\xad\x08\ \x1d\x5b\xec\x36\x60\x0b\x48\xd3\xf0\x1c\x68\xc4\xf5\xda\xd5\x4f\ \x78\x48\x83\xda\x93\xad\x48\xab\x4b\xb4\x15\x51\x40\x9f\xd8\x34\ \xad\x08\xd8\x0e\xc8\x20\x24\x81\x8c\x18\x92\x9a\x92\xaa\x54\xaa\ \xea\xd6\x70\xab\xea\xce\xc3\x99\xf6\xfb\xe3\xd6\x3e\xb9\xc9\x13\ \x03\x61\xce\xcb\x5e\x2b\x8b\x5b\xdc\xe1\x9c\xbb\xbf\xfb\x37\x7d\ \x7f\xc3\x85\xe3\xeb\xf8\x3a\xbe\x8e\xaf\xe3\xeb\xf8\x3a\xbe\x8e\ \xaf\xe3\xeb\xf8\x3a\xe6\x97\x78\x33\xdd\x4c\x75\x75\x75\x57\x26\ \x93\x31\xa5\x94\x5e\x5d\x5d\xdd\xfb\xd6\xac\x59\xf3\x39\xd3\x34\ \x5d\xd7\x75\xe5\xfe\xfd\xfb\x5b\x56\xac\x58\x81\xe7\x79\x24\x93\ \x49\x5a\x5b\x5b\x29\x95\x4a\x68\x9a\xc6\xae\x5d\xbb\xb0\x6d\xbb\ \xfc\x85\x84\x40\xd3\xb4\x83\x5f\x50\x08\x0b\x70\xd5\x63\xc3\x30\ \xfa\x00\x0d\x20\x1e\x8f\x7f\x30\x1e\x8f\x8f\xa8\xd7\xb6\xb6\xb6\ \x12\x8f\xc7\xdf\xd0\x3d\x30\xde\xc8\x8b\xb7\xb5\xb5\x2d\x9d\x9b\ \x9b\x7b\xa7\x94\xd2\x03\x58\xbe\x7c\xf9\xb7\xdb\xdb\xdb\xc3\x52\ \x4a\x86\xf6\x0d\x11\x0c\x06\xa5\xa6\x69\xc2\x95\x2e\x86\x61\xe0\ \x38\x0e\x48\xc9\x44\x3e\x41\x87\xd1\x41\x26\x93\x01\x5d\x90\x76\ \xf2\x9c\xbd\xea\x9d\x00\x4c\x27\xa6\xd1\x84\x86\xae\xeb\x00\xe8\ \xba\x1e\x90\x12\x44\xf9\xe8\x85\x81\x33\xd5\xf5\x1b\x1b\x1b\x77\ \xae\x5c\xb9\xd2\x11\x42\xb0\x67\xcf\x1e\x86\x87\x87\x1b\xdf\xe8\ \x43\xf9\xba\x03\x52\x55\x55\x65\x66\x32\x19\x1d\x60\x76\x76\xf6\ \xba\x8f\x7e\xf4\xa3\xd7\xab\xe7\xfa\xfb\xfb\xcb\x27\x5c\x08\xf2\ \x94\xb0\x4a\x96\x10\x9a\x20\xe7\x14\xf0\x3c\x0f\xcb\xb2\xc0\x83\ \x9c\x5b\xc4\xb2\x2c\x2c\xcb\xc2\xd6\x5d\x1c\xd7\x26\x9d\x4e\x03\ \x70\x60\x7a\x9c\xd3\x4e\xea\xa6\x58\x2a\xa1\xeb\x3a\x3b\x76\x3f\ \x4f\x55\x93\xc0\x9b\x0b\x21\x84\x00\x49\xf9\x9f\x00\x04\xb5\xea\ \xda\xd1\x68\x94\xee\xee\xee\x3e\x40\xb8\xae\x6b\xee\xd9\xb3\x67\ \xd1\xff\x17\x80\xb4\xb5\xb5\x3d\xb8\x78\xf1\xe2\x8b\xa4\x94\xf4\ \xf7\xf7\x33\x33\x33\x53\x3e\xf9\x40\xc9\x2e\x6f\xb2\x00\x8a\x9e\ \x85\xed\xd8\x08\x21\x70\x1c\x07\x29\x25\x96\x65\x21\x3d\x89\x94\ \x1e\xb6\x6d\x63\x59\x16\x8e\x21\x91\xe0\x7f\x86\xf4\x3c\x6c\xdb\ \xc1\xb6\x6d\xa4\xe7\x11\xa9\x8a\xb2\xb8\x61\x31\x62\x81\x20\x91\ \x99\xc3\x3a\x69\x94\x05\x75\x61\x9c\xb1\x28\xf6\x58\x08\xe1\xea\ \x95\x8a\xfb\x24\x29\x25\x52\x4a\x92\xc9\xe4\xba\x0a\xb5\x3e\x1a\ \x8f\xc7\x07\x8e\x19\x40\x1a\x1b\x1b\x3f\x58\x28\x14\x22\x80\x15\ \x0c\x06\x97\xc7\x62\x31\xa4\x94\x98\x01\xd3\xdf\x58\x00\xc7\x73\ \x28\x95\x4a\xfe\xc6\x5a\x96\x55\x06\x42\x5a\x78\x9e\x57\x7e\xce\ \x03\x29\x25\xa5\x52\xa9\x0c\x88\xe7\x95\x01\x2c\x16\x01\x70\x1d\ \xd7\xff\x4c\x57\xd3\x91\xea\x7d\x40\x7f\x6f\x1f\xe7\x37\x9e\x47\ \x6e\x34\x87\x29\xa0\x14\x4d\xb3\xa0\x43\xc3\x89\x87\x90\x39\x13\ \x74\x09\x9a\x44\x68\xc8\xb3\xce\x3a\xeb\xb7\x00\xa6\x69\xf2\xe8\ \xa3\x8f\xde\x09\x7c\xfc\x98\x01\x64\xc1\x82\x05\xf7\xbf\xed\x6d\ \x6f\xd3\x34\x4d\x63\xef\xde\xbd\x94\x4a\xa5\xf2\xa6\xba\x36\xb6\ \x65\x57\x80\x50\xde\x68\x81\x40\x4a\xcf\x07\xca\x96\xb6\x2f\x21\ \x78\x12\xcf\x93\x07\x37\x7d\xfe\x44\xab\xd7\xba\x5e\x59\x7a\x4a\ \xa5\x12\xba\xa6\xfb\xcf\x09\x21\x90\x9e\x87\x87\x87\x2b\x5d\x12\ \xb3\x33\x88\x25\x33\xa4\xa4\x09\x0b\x25\xd2\x16\x38\xc9\x00\x6e\ \xca\xc0\x4b\x1b\xa2\x6c\xd5\xc0\x30\x0c\xea\xea\xea\x4e\x6f\x6b\ \x6b\xbb\x45\x08\xc1\xec\xec\xec\xf3\x63\x63\x63\x0f\xbe\xe5\x00\ \xe9\xe8\xe8\x38\xa3\xa6\xa6\x86\x52\xa9\x84\xe7\x79\x5e\xa1\x50\ \xd0\x74\x5d\xc7\x75\xdd\x83\x00\x48\x0f\xcb\xb6\x7c\x0f\x49\xd9\ \x09\x21\x04\x9e\x47\x59\xed\x48\x89\x8d\x8d\x37\xbf\xd1\xd2\xf5\ \x90\x42\xfa\x9b\xee\x49\x81\x40\x1c\x04\xc4\x3d\x28\x21\xba\xa6\ \xf9\xd2\x24\x84\xf0\xc1\xb1\x6d\x9b\x03\xc3\x23\x9c\xbb\xe8\x5c\ \x64\x52\xe2\x49\x49\x36\x92\xa2\x61\xa9\x8e\x37\x17\x42\xda\x02\ \x69\x69\x48\xab\xec\xad\x75\x76\x76\x9e\x09\x9c\x69\x18\x06\x3b\ \x76\xec\xb8\xa7\x12\x90\x57\xdb\x33\x7b\xad\x00\x09\x34\x37\x37\ \x6f\xe9\xe9\xe9\xc1\x71\x1c\x36\x6f\xde\x8c\x6d\xdb\xb8\xae\x7b\ \x50\xf5\xcc\x03\x60\x5b\x07\x55\x96\xe7\x79\x58\xae\x5b\x36\xbe\ \xa0\xc0\xc4\x16\x0e\x42\x42\x3a\x9d\x2e\x4b\x51\xb0\x44\xb1\x58\ \x24\x9f\xcf\x23\x1d\x81\x44\x56\x7c\xc6\x41\x40\x34\xa1\xe1\x79\ \x15\x12\x32\x0f\x88\xfa\xdc\x54\x2a\x85\xe7\x79\x4c\xa7\x66\xd1\ \x16\x4d\x32\x33\x72\x58\x14\x60\x78\xd8\x89\x00\xd6\x81\x30\x42\ \x2b\xbb\xd4\xb3\xb3\xb3\x2b\x5b\x5b\x5b\x6f\x06\x74\xe0\xe1\x78\ \x3c\xfe\xdc\x9b\x56\x42\xda\xda\xda\x9a\xc7\xc6\xc6\x6a\x80\xa0\ \xfa\xc2\xae\xeb\xfa\x1b\xa1\x69\x1a\xae\xeb\xfa\x9b\x27\x3d\x89\ \xed\x1c\x04\xc4\xc5\x23\x9b\xca\xa0\x09\x0d\xdb\xb3\xc8\xd8\x19\ \x1c\xc7\xc1\xd1\x3d\x62\x66\xc4\x57\x59\x8e\x61\x93\xcd\x66\xc9\ \xe5\x72\x48\x47\xe0\x78\x2e\x73\x73\x73\x00\xe4\xbd\x22\xb6\x6d\ \x51\x28\x14\xd0\x84\x40\x9a\x07\xc1\x92\xe0\x7b\x67\xbe\xd7\x06\ \xe4\xe6\xd2\x2c\x6b\x3c\xcd\xb7\xe1\xe3\xc1\x71\x16\xad\x08\xe2\ \x4c\x86\x71\x73\x41\x64\xa7\x31\x6f\x5b\x24\x8b\x16\x2d\xea\x01\ \x7a\x34\x4d\x63\xfb\xf6\xed\x89\x37\x35\x20\x85\x42\xe1\x9e\x4b\ \x2f\xbd\xf4\x82\x5c\x2e\xc7\xe8\xe8\x28\xb6\x6d\xfb\x1e\x92\x0a\ \xe2\x2a\x37\xc2\x93\x92\x5c\x2e\x47\x2e\x97\x2b\x8b\x55\x38\xe8\ \x9f\x66\x57\x73\x31\x4c\x1d\xcf\xf3\x30\xe4\xc1\x80\xaf\x50\x2a\ \x10\x4c\x6b\x18\x55\xe5\x5b\x17\x36\xe8\x9e\x40\x33\xca\xea\x45\ \x77\x05\x99\x4c\x96\x74\x3a\x8d\x40\x10\xaa\x8f\x50\xb4\x8b\xf3\ \x12\xe2\xf9\xce\x80\xef\xb5\xc9\xb2\xfa\x2b\x96\xca\xaf\xd9\x9f\ \x9d\xa2\xed\xe2\x14\xd4\x07\x30\x3a\x25\x86\x06\x5e\x51\xc3\x4d\ \x1a\x38\x33\x01\x32\xcf\x55\x81\x26\xd1\x34\x8d\x7c\x3e\x1f\x01\ \x6a\xe7\xf7\x31\xf1\xa6\x03\xc4\xf3\x3c\x2d\x18\x0c\x52\x28\x14\ \x7c\xd5\xe4\x38\xce\x61\xb6\xc1\xa3\x50\x28\xcc\x3f\x76\xfd\x13\ \x0b\x10\x8c\x84\xd0\xe6\xf5\x7e\x20\xaf\x21\xea\x34\xce\x3d\xf7\ \x5c\x66\x67\x67\xe9\xeb\xeb\xe3\x82\x0b\x2e\xe0\xf2\xcb\x2f\xe7\ \xce\x3b\xef\x64\x70\x70\x90\xcb\x2f\xbf\x9c\x58\x2c\xc6\x9d\x77\ \xde\x89\xa6\x69\x74\x76\x76\x72\xe0\xc0\x01\x74\x43\xc7\x30\x0c\ \x04\xe0\x14\x6c\x72\xb9\x4c\x59\x3a\x1d\xd7\x57\x91\xea\x9e\x3c\ \xcf\xf3\xed\x13\x80\x91\xb4\xf1\x1e\x5d\x44\x42\x96\x25\xca\xd3\ \x9d\xb2\x2d\xb2\x34\x04\x02\xdd\xf4\x7c\x37\xb9\xa7\xa7\xe7\x9f\ \x4f\x3d\xf5\xd4\x7f\x2e\x95\x4a\xfc\xea\x57\xbf\x12\x6f\x0a\x40\ \x9a\x9b\x9b\x9b\x84\x10\x0f\x01\x05\xcb\xb2\x7a\xd4\x06\x2b\xa9\ \xa8\x54\x59\x2a\xa6\xc8\x66\xb3\x68\x9a\x86\x65\x59\x18\xba\x81\ \x61\x94\x6f\x43\x93\x82\xf7\xbc\xe7\x3d\xdc\x74\xd3\x4d\x5c\x7b\ \xed\xb5\x9c\x7b\xee\xb9\xbc\xfd\xed\x6f\xa7\xbb\xbb\x9b\x75\xeb\ \xd6\x71\xcb\x2d\xb7\xf0\xfc\xf3\xcf\x73\xe5\x95\x57\xf2\x9d\xef\ \x7c\x87\x77\xbc\xe3\x1d\x5c\x70\xc1\x05\xdc\x7f\xff\xfd\xdc\x78\ \xe3\x8d\x74\x76\x76\xf2\xcc\x33\xcf\x70\xcf\x3d\xf7\x50\x53\x53\ \x43\x34\x1a\x65\x7a\x7a\x1a\xd7\x30\xd0\x34\x0d\xcd\x12\x64\xb2\ \x19\xb2\xd9\xac\xaf\x3a\x3d\xcf\xf3\x1f\x3b\x8e\x43\x38\x12\x26\ \x18\x31\xd1\x34\x8d\x67\x8b\x7b\x78\xef\x35\x31\x04\xe5\x80\xd2\ \x4a\x98\x38\x13\x61\xac\x91\x10\xee\x6c\x60\xde\x31\x91\x04\x83\ \xc1\x37\x8f\xca\x9a\x9c\x9c\x5c\xf4\xfe\xf7\xbf\xff\xcc\x58\x2c\ \xc6\xe6\xcd\x9b\x29\x16\x8b\xb2\x54\x2a\x09\x05\x82\xeb\xba\x38\ \x8e\xc3\xdc\xdc\x1c\x42\x08\x74\x7d\xfe\xf4\x0a\x81\xe6\x69\x48\ \x24\x77\xdd\x75\x17\x89\x44\x82\x5b\x6f\xbd\x95\xab\xae\xba\x8a\ \xbe\xbe\x3e\xce\x39\xe7\x1c\x76\xec\xd8\xc1\x65\x97\x5d\x86\xe7\ \x95\x7d\xd0\x6f\x7d\xeb\x5b\xdc\x70\xc3\x0d\x7c\xe1\x0b\x5f\x20\ \x91\x48\xd0\xd3\xd3\x43\xb1\x58\x64\x66\x66\x86\x93\x4f\x3e\x99\ \xde\xde\x5e\x3a\x3b\x3b\x59\xbc\x78\x31\x9f\xfa\xd4\xa7\x58\xb5\ \x6a\x15\x67\x9f\x7d\x36\xae\xeb\xf2\x9e\xf7\xbc\x87\x87\x1e\x7a\ \x88\x52\xa9\x74\xd0\x59\x38\xcc\xd1\x70\xe7\x1d\x0a\xdb\xb6\x49\ \x26\x93\x94\x92\x73\xec\xb8\x37\x87\xe7\x49\x14\xfd\x22\xca\x11\ \x3e\xd6\x8c\x81\x35\x11\xf0\xf9\xb3\xea\xea\xea\xaf\x4b\x29\x09\ \x87\xc3\xcf\x4d\x4d\x4d\x7d\xff\x75\x05\xa4\xb9\xb9\x99\xc9\xc9\ \x49\xf5\x67\xde\xb6\xed\xca\x53\x27\xd4\xc9\x53\x5f\x58\x79\x50\ \x0a\x90\xaa\xaa\x2a\x2e\xbd\xf4\x52\x7e\xfc\xe3\x1f\xf3\xde\xf7\ \xbe\x17\x21\x04\x17\x5d\x74\x11\xdf\xf8\xc6\x37\x78\xf0\xc1\x07\ \xf9\xc8\x47\x3e\xc2\xf6\xed\xdb\xe9\xef\xef\xe7\xea\xab\xaf\xa6\ \x58\x2c\xa2\x69\x1a\x0f\x3e\xf8\x20\x3f\xfc\xe1\x0f\xf1\x3c\x8f\ \x45\x8b\x16\x71\xf1\xc5\x17\x63\x9a\xe5\xd3\x7c\xc5\x15\x57\x70\ \xd9\x65\x97\xf1\xe8\xa3\x8f\xb2\x60\xc1\x02\xaa\xaa\xaa\x08\x85\ \x42\xe4\x72\x39\xee\xbd\xf7\x5e\x22\x91\x08\x23\x23\x23\xec\xdf\ \xbf\xdf\x77\xa7\x93\xc9\x24\x8e\xe3\xf8\xae\xb2\xeb\xba\x68\x9a\ \x46\xa9\x54\xe2\xc0\x81\x03\xac\x3f\xff\xa2\x32\x18\x48\xa6\xf4\ \x04\x9d\x2b\x4c\xbc\x94\x89\x9b\x31\xf1\xaa\x4d\x64\x87\x86\xd0\ \x24\x18\x52\x22\xf9\xa4\x61\x18\x6c\xdd\xba\xf5\x47\xaf\x3b\x20\ \x93\x93\x93\x34\x36\x36\xfe\xd5\x89\x27\x9e\xf8\xdd\x7c\x3e\x8f\ \xeb\xba\x12\x10\x95\x7e\x7e\xa5\x97\x25\x84\x40\x08\x81\xb2\x2f\ \xb7\xdf\x7e\x3b\xd9\x6c\x96\xb5\x6b\xd7\xf2\xf4\xd3\x4f\xb3\x7e\ \xfd\x7a\xf6\xec\xd9\x83\xe3\x38\x3c\xf6\xd8\x63\x3c\xfa\xe8\xa3\ \xe4\xf3\x79\x5a\x5a\x5a\xfc\xd3\x5c\x28\x14\x58\xb0\x60\x01\xa1\ \x50\x88\x42\xa1\x40\x2a\x95\x22\x1a\x8d\xfa\x6a\x23\x10\x08\xf0\ \xc0\x03\x0f\x30\x37\x37\x47\xa9\x54\x92\x37\xdd\x74\x93\x08\x04\ \x02\x65\x6f\x4b\xd3\x48\xa5\x52\xe8\xba\xce\xc2\x85\x0b\xf9\xb7\ \x7f\xfb\x37\x3e\xf3\x99\xcf\x90\x4c\x26\xfd\xf7\x2b\x69\x0e\x04\ \x02\xbe\xb4\xcc\xcc\xce\x20\xa5\x24\xe7\x96\x08\x5f\x18\x47\x76\ \x04\xd1\x84\x86\xa6\x79\x48\xcd\xc3\xc9\xe8\xd8\xe3\x21\x52\xbf\ \xae\x13\xe8\x12\xc3\x30\x90\x52\xda\xaf\x24\x46\x39\x6a\x95\x65\ \x59\x56\x57\x5b\x5b\x1b\x73\x73\x73\xd8\xb6\x2d\x94\xf1\x56\x31\ \x80\x94\xd2\x3f\x7d\xae\xeb\x72\xdd\x75\xd7\x71\xf5\xd5\x57\xb3\ \x61\xc3\x06\x76\xed\xda\xc5\xfa\xf5\xeb\x79\xf2\xc9\x27\x71\x1c\ \x87\xeb\xaf\x2f\xf3\x8b\x13\x13\x13\x48\x29\xfd\x6b\xec\xdb\xb7\ \xef\x90\x6b\x1e\x38\x70\x40\x6d\xa0\xed\x38\xce\x01\x29\x25\xba\ \xae\x5b\xf9\x7c\xfe\xf2\xb1\xb1\xb1\x29\x80\x40\x20\x70\x49\x73\ \x73\xf3\xed\xb9\x5c\x8e\x42\xa1\x40\x2c\x16\xe3\xda\x6b\xaf\xa5\ \xa3\xa3\x83\x6d\xdb\xb6\xf1\xdd\xef\x7e\x97\x91\x91\x11\x9a\x9a\ \x9a\x7c\x42\xd2\x71\x1c\x92\xc9\x24\xae\xeb\xd2\xd0\xd0\x70\x30\ \x20\x9d\x97\xfc\xfd\x07\x46\x30\xa7\x1c\x06\x83\xd0\x12\x5c\x4a\ \x20\x28\x38\x90\x1e\x44\x22\x11\x1e\x94\xe2\x63\x88\x79\xc6\x3f\ \x9f\xcf\xff\x49\x73\x73\xf3\x63\x9a\xa6\x69\xf1\x78\x7c\xdd\xeb\ \x66\x43\xa4\x94\x56\xa9\x54\xc2\xb6\x6d\x3f\xbe\x80\x72\xf0\x96\ \x4e\xa7\x31\x4d\x13\x21\x04\xa5\x52\x89\x70\x38\xcc\xdf\xfe\xed\ \xdf\xf2\xf4\xd3\x4f\xd3\xdc\xdc\xcc\x8f\x7e\xf4\x23\x1e\x7f\xfc\ \x71\x06\x07\x07\x0f\x01\x20\x12\x89\xfc\xe1\xa4\x8d\x10\x58\x96\ \xb5\x4f\xd3\xb4\x21\x40\x3a\x8e\xb3\x2b\x1e\x8f\x7f\xfa\x0f\xbd\ \x36\x12\x89\x7c\x7b\xeb\xd6\xad\xff\x09\x48\xdb\xb6\xb3\x8b\x17\ \x2f\x1e\x6d\x68\x68\x88\x28\x09\xb9\xef\xbe\xfb\xe4\x97\xbe\xf4\ \x25\xf1\xbd\xef\x7d\x8f\x0f\x7c\xe0\x03\x7c\xe8\x43\x1f\xe2\xf3\ \x9f\xff\x3c\xdb\xb7\x6f\xf7\x3d\xae\x4a\xa7\x24\x91\x48\x70\xf6\ \x9a\xb3\x70\x1c\x07\x81\x60\xd4\x1c\xe3\x84\xf3\xa0\x6d\x7a\x39\ \x4e\x22\x84\x1d\x0f\x21\x5b\xe6\xe3\x14\x43\x02\xb4\x18\x86\xd1\ \xb2\x71\xe3\xc6\xa3\x8a\xe0\x5f\x36\x20\x75\x75\x75\xd7\xae\x59\ \xb3\xe6\x1f\x07\x07\x07\x43\x8e\x53\x66\x55\x75\x5d\x3f\x24\xde\ \xb0\x2c\x8b\x40\x20\xc0\x0d\x37\xdc\xc0\x8a\x15\x2b\xb8\xe6\x9a\ \x6b\xb8\xfe\xfa\xeb\xb9\xf0\xc2\x0b\x19\x1e\x1e\x66\x3e\x39\x44\ \x2c\x16\x3b\x12\xe8\x2e\x20\x85\x10\x64\x32\x99\x6f\xc4\xe3\xf1\ \xaf\x1c\xe9\xfe\xd2\xe9\x74\x1e\xf0\x93\x4e\xa3\xa3\xa3\xeb\x47\ \x46\x46\xcc\x79\xe9\xf9\xc7\xf1\xf1\xf1\xd3\x2e\xb8\xe0\x02\x12\ \x89\x04\xb7\xdd\x76\x1b\x13\x13\x13\x2c\x5e\xbc\x98\xe7\x9f\x7f\ \x9e\x7c\x3e\x8f\x6d\xdb\x14\x0a\x05\xd4\x77\x73\x5d\x97\x42\xa1\ \x50\xfe\x4e\xc2\xa0\xd0\x33\x81\xb6\xa0\x16\xad\x36\x47\xf4\x14\ \x0d\xa9\x49\xa4\x0d\x4e\x32\xc0\xec\xcf\xeb\xf1\x8a\x9a\x52\x5d\ \x1c\x8d\xea\x32\x8e\x42\x55\xb5\x2d\x5c\xb8\xb0\x7e\x6c\x6c\xcc\ \xb7\x17\x95\x34\x87\x4a\x0c\x01\xac\x5f\xbf\x9e\xbe\xbe\x3e\x4c\ \xd3\x64\xf3\xe6\xcd\x3c\xf5\xd4\x53\x04\x83\x41\x82\xc1\xa0\x4f\ \x8f\x1c\x8e\x81\xb2\x45\x55\x55\x55\x6c\xd9\xb2\xa5\x3d\x99\x4c\ \x4e\xbc\x12\x9d\x9c\xc9\x64\x7e\xa3\x1e\x87\xc3\xe1\x4b\x0e\x1c\ \x38\x60\x00\x9e\xeb\xba\x27\xde\x70\xc3\x0d\xd1\xaf\x7c\xe5\x2b\ \xf4\xf6\xf6\xd2\xd1\xd1\xc1\x9d\x77\xde\xc9\xfa\xf5\xeb\x29\x14\ \x0a\xbe\x5d\x71\x1c\x07\xc7\x71\x98\x9d\x9d\xc5\x2e\x59\x94\x4a\ \x3a\x2f\xf4\xe7\x79\xfb\xc2\x0b\x89\x85\xa3\x3c\xbe\xef\x3f\x08\ \xe9\xd5\xd8\x64\xc9\x1f\xb0\x91\x0e\x68\x9a\x86\x69\x9a\xf4\xf4\ \xf4\xdc\x9d\x4c\x26\x37\x8d\x8c\x8c\xdc\xf9\x9a\x49\x88\x52\x43\ \x95\xbe\xbb\xd2\xc1\xb6\x6d\xb3\x70\xe1\x42\xee\xb9\xe7\x1e\x3e\ \xfc\xe1\x0f\xf3\xaf\xff\xfa\xaf\xfc\xdd\xdf\xfd\x1d\xc1\x60\xb0\ \xcc\x3b\xcd\x4b\x90\xe7\x79\xa8\xbc\x83\x52\x13\xf3\xf6\x40\xa4\ \x52\xa9\x87\x80\x84\xae\xeb\xe9\x70\x38\x6c\x2b\xc3\xab\xa4\xea\ \x95\xac\x44\x22\x71\x6d\x22\x51\x0e\xa8\xeb\xeb\xeb\x9f\x8c\xc5\ \x62\x67\xdf\x7c\xf3\xcd\x8c\x8f\x8f\x73\xfb\xed\xb7\xb3\x73\xe7\ \x4e\x02\x81\x80\x4f\x5c\x56\x7e\xbf\xe9\xe9\x69\xba\xbb\xbb\xcb\ \x81\xab\x2b\x79\x7c\xfc\x71\xba\xcf\x09\xd2\xae\xb5\xe2\x4e\x84\ \xf0\x52\x0b\xa1\xed\x10\x72\x15\x5d\xd7\xaf\xec\xef\xef\xd7\x5f\ \x2b\x40\x42\xef\x7b\xdf\xfb\xf6\x1e\x38\x70\xa0\x5a\x89\xb2\xa2\ \x46\x94\xeb\x29\xa5\xe4\xd3\x9f\xfe\x34\x4f\x3d\xf5\x14\xf3\x5c\ \x0f\x1f\xfc\xe0\x07\xa9\xa9\xa9\x79\x49\x17\x30\x4d\x93\x2d\x5b\ \xb6\x7c\x3e\x93\xc9\xbc\xaa\xfc\xd0\x8b\x48\xfa\x8d\x03\x03\x03\ \xf5\x9a\xa6\x59\x52\xca\xff\xf5\x4f\xff\xf4\x4f\x6b\x6f\xba\xe9\ \x26\x2c\xcb\x62\xdd\xba\x75\xec\xdb\xb7\x8f\xb1\xb1\x31\x5f\x8d\ \x39\x8e\xe3\xb3\xc6\x39\xaf\x44\xdb\x7b\x4a\x84\xdb\xa1\xd0\x3c\ \x8b\x01\x04\xb5\x08\x6e\x09\x28\x98\x4c\xfd\xa4\x11\x61\x78\x18\ \x86\xe1\xc7\x50\xaf\x05\x20\xf5\xd5\xd5\xd5\x0b\x75\x5d\xf7\x25\ \xa4\x50\x28\x50\x2c\x16\x09\x04\x02\x84\xc3\x61\x34\x4d\xe3\x27\ \x3f\xf9\x09\x57\x5c\x71\x05\xb5\xb5\xb5\x14\x8b\x45\xdf\x5b\x39\ \x5c\x1a\xd4\xdf\xba\xae\x93\x4e\xa7\x77\x1a\x86\xf1\xb8\xeb\xba\ \x4e\x24\x12\x89\x67\x32\x99\xd7\x14\x0c\x4d\xd3\xc8\x66\xb3\xbf\ \xcb\x66\xb3\xea\x34\x5f\x61\x18\x06\xb7\xdc\x72\x0b\x86\x61\xc8\ \xbb\xee\xba\x4b\xac\x5e\xbd\xda\x7f\xbd\x72\xe3\x95\x26\xc8\x14\ \x73\x44\xb6\xe7\x98\xfa\x7d\x9a\xcb\xcf\xf8\x5b\x5c\xbd\xc0\x43\ \xbd\xdf\xa6\x29\xdc\xc5\x44\x66\x88\xb9\xb1\x22\xc2\x28\x5f\x67\ \x66\x66\x66\x51\x34\x1a\xfd\xcb\x5c\x2e\x77\xdf\xab\x02\x48\x85\ \xde\x76\x95\xaf\xae\x44\xd9\xb2\x2c\xf2\xf9\x3c\xed\xed\xed\x3c\ \xf4\xd0\x43\xbc\xff\xfd\xef\x67\xdf\xbe\x7d\x5c\x77\xdd\x75\x04\ \x02\x01\x34\x4d\xfb\x43\x55\x20\x87\x7c\x7e\x38\x1c\x26\x1e\x8f\ \x3f\x35\x33\x33\x73\xc3\xeb\x95\x46\x3e\xfc\xd4\xa6\xd3\xe9\xcd\ \x3b\x76\xec\x08\x7a\x9e\xa7\xb7\xb4\xb4\xbc\xff\xe9\xa7\x9f\x46\ \xd7\x75\x84\x10\x84\xc3\xe1\x43\x54\x97\x69\x9a\x9c\x7d\xda\x1a\ \xa4\x07\xae\x74\xd9\xd6\xbb\x11\xd3\xd0\x59\xea\x9c\x83\x3b\x23\ \x58\x6a\x2f\x86\xd5\xaa\x9e\x47\x02\xac\x29\x14\x0a\x6b\xee\xbe\ \xfb\xee\x57\x07\x90\x78\x3c\x4e\x6b\x6b\xeb\x59\xb6\x6d\x7f\x40\ \xc5\x15\x2a\x12\x37\x8c\x32\x0f\x55\x53\x53\xc3\xe6\xcd\x9b\x31\ \x4d\x93\x9d\x3b\x77\x1e\x02\xc0\x4b\x4a\x9e\x04\x02\x6f\x68\x39\ \x52\x2a\x95\xba\x03\xb8\x03\x08\x2c\x5e\xbc\xb8\xf4\x37\x7f\xf3\ \x37\x4c\x4e\x4e\xb2\x61\xc3\x06\xba\xba\xba\xf8\xee\x77\xbf\x4b\ \xb1\x58\x2c\xb3\xc2\xc5\x22\xf1\x78\x1c\x21\x04\x1b\x53\xbd\xfc\ \xd9\xa7\xab\xf1\x5c\xf0\x7c\xb0\xc1\x1a\x0b\x52\xe8\x8d\x61\x8d\ \x05\x01\xf9\x62\x0e\xcc\xd1\xab\xac\x50\x28\xf4\xd7\x67\x9e\x79\ \xe6\x95\x96\x65\x49\xd7\x75\x85\xba\x39\xcf\xf3\x38\xef\xbc\xf3\ \xd8\xbd\x7b\x37\xdf\xf8\xc6\x37\xe8\xea\xea\xf2\x6d\x8b\x0a\xb8\ \x0c\xc3\xf0\xa3\x60\x29\xcb\xd1\xac\xa2\x42\xb6\x6d\xdb\x16\x01\ \x0a\xbc\x79\x96\x4c\x24\x12\x39\xd3\x34\xa5\x6d\xdb\xe1\x0d\x1b\ \x36\xe8\x3f\xf8\xc1\x0f\x7c\x49\xaf\xe4\xe6\x00\x2c\xcd\x25\x54\ \x25\x88\x26\x4f\xe7\x86\x0b\x3f\xcb\x23\x83\xdf\x61\x60\x6c\x90\ \xd2\xa9\x93\x4c\xe4\x0b\xe4\x86\x34\x10\xf2\x65\x1d\xd0\x97\x04\ \x5d\x57\x57\xd7\x7d\x2b\x56\xac\xf8\xb0\x6d\xdb\xec\xdf\xbf\x9f\ \x68\x34\x4a\x3c\x1e\xe7\x93\x9f\xfc\x24\x1d\x1d\x1d\xfc\xcb\xbf\ \xfc\x0b\xe1\x70\xd8\x57\x49\xca\xc0\x7b\x9e\x57\x66\x59\xe7\xf3\ \x20\x95\x2e\x71\x3e\x9f\x67\xef\xde\xbd\xe1\x7c\x3e\x5f\xe4\x4d\ \xb8\xea\xea\xea\x1e\x3b\xe5\x94\x53\xce\x5d\xbe\x7c\x39\x5b\xb7\ \x6e\x65\x7a\x7a\x9a\xd6\xd6\x56\xa4\x94\x64\x32\x19\x16\x2d\x5a\ \x84\x8e\x86\x53\x82\xa2\x57\xc4\xa5\x84\x69\x47\xd0\x8d\x79\x35\ \x6d\x82\x30\xfc\x78\x4a\x9a\xa6\x29\xb6\x6f\xdf\xbe\x7a\x6c\x6c\ \x6c\xf3\x2b\xb5\x21\x31\xcf\xf3\xaa\xd4\xe9\x70\x5d\xd7\x67\x6b\ \xe3\xf1\x38\xe7\x9c\x73\x0e\x37\xdd\x74\x13\xdb\xb6\x6d\x23\x97\ \xcb\x31\x37\x37\x47\x2a\x95\x22\x10\x08\xd0\xda\xda\xca\xd8\xd8\ \x18\x63\x63\x63\xac\x58\xb1\x82\x6d\xdb\xb6\x51\x2c\x16\x7f\x35\ \x3e\x3e\x7e\x6b\x2c\x16\x4b\xd7\xd7\xd7\x97\xf2\xf9\xfc\x9b\x11\ \x0f\x84\x10\x01\xdb\xb6\x79\xe2\x89\x27\xe8\xee\xee\x96\x97\x5c\ \x72\x89\xb8\xeb\xae\xbb\xa8\xad\xad\xc5\xf3\x3c\x9f\x47\x1b\xd5\ \x67\x68\xff\x8b\x59\x16\x34\x06\x70\xf2\x56\x39\xcb\x38\x15\xc2\ \x9a\x08\x22\x0b\x3a\x5e\x5e\x07\x10\xd1\x68\x14\xc3\x30\x9c\x57\ \xac\xb2\xea\xeb\xeb\x6f\x6f\x6c\x6c\xfc\x53\xe5\xea\x2a\x40\xba\ \xba\xba\x78\xf6\xd9\x67\xd9\xb4\x69\xd3\x8b\xbe\x77\x74\x74\xd4\ \x97\x9a\xde\xde\x5e\x62\xb1\x18\x81\x40\x60\x72\xff\xfe\xfd\x4f\ \xcf\xcd\xcd\xf9\x69\xd7\x37\xe3\x72\x1c\xe7\xf3\x03\x03\x03\xcd\ \xb6\x6d\xaf\x59\xb3\x66\xcd\xb5\x43\x43\x43\x18\x86\x71\x48\x7e\ \x07\x20\x65\xe5\x38\xb3\x39\x4a\x21\x2f\x79\xd7\x09\xef\xa3\xaf\ \x6a\x33\xe9\x8e\x19\x40\x50\x18\x36\x99\xf9\x45\x0d\xe8\x65\xf2\ \xf3\x55\xb1\x21\xae\xeb\x46\x94\xfb\xaa\x0a\x0b\xde\xfd\xee\x77\ \x33\x3a\x3a\xca\x63\x8f\x3d\x46\x38\x1c\xf6\xcb\x3c\x15\xbd\xae\ \x0c\x7e\x85\x6b\x5b\x2e\x09\x75\x5d\xd2\xe9\x74\x94\x37\xf9\xaa\ \xae\xae\x26\x9d\x4e\xff\xf7\x3c\x37\xe6\x0e\x0d\x0d\x5d\x9b\x4c\ \x26\x51\x55\x33\x9e\xe7\xd1\xdf\xdf\x4f\x55\x55\x15\x86\x67\xb3\ \xed\x6b\x36\x94\xa2\xcc\xd5\xed\x44\x0a\x93\x78\xca\x21\x60\xea\ \x14\x0b\x19\x9c\x54\x39\x3d\x3d\x35\x35\x45\x2c\x16\xfb\x61\x53\ \x53\xd3\x0d\x53\x53\x53\x8f\x1e\x35\x20\x52\x4a\x57\x49\x86\xb2\ \x07\x13\x13\x13\xdc\x78\xe3\x8d\x7c\xf5\xab\x5f\xe5\xf6\xdb\x6f\ \x67\x78\x78\x98\x93\x4f\x3e\x99\x99\x99\x19\xe2\xf1\x38\x35\x35\ \x35\x3c\xff\xfc\xf3\x68\x9a\xc6\x49\x27\x9d\xc4\x96\x2d\x5b\xc4\ \xe8\xe8\xe8\x13\xd3\xd3\xd3\xeb\x00\x16\x2e\x5c\xc8\xf8\xf8\xf8\ \x9b\x16\x10\xc5\x02\xcf\x4b\xb7\xa9\xb2\x9c\xab\x56\xad\x92\xa3\ \xa3\xa3\x22\x99\x4c\xd2\xd0\xd0\xc0\xc9\x27\x9f\x5c\x26\x23\x3d\ \x1b\x4e\x9a\xa1\xa6\xae\x80\x97\x0e\x50\x93\x5a\x84\x97\x36\x71\ \x53\x06\xb4\x80\xd0\xa5\x22\x3e\x4f\xba\xf7\xde\x7b\x1b\x8e\x5a\ \x42\x9a\x9a\x9a\x16\xbb\xae\xfb\x6e\xe5\x39\x05\x02\x01\x02\x81\ \x00\x43\x43\x43\x6c\xd8\xb0\xc1\xf7\x9a\x00\x7e\xff\xfb\xdf\xfb\ \x39\xf3\xca\x78\x63\xd3\xa6\x4d\x84\x42\x21\xff\x75\xc0\x9b\x1a\ \x8c\x3f\x10\x44\x3e\xba\x65\xcb\x96\xb5\x81\x40\xe0\xea\xf3\xce\ \x3b\xef\x8a\x1f\xfc\xe0\x07\x7e\x6a\x21\x93\xc9\x20\x3d\x8f\x31\ \x99\xe0\x8c\xb7\x39\xd8\x8e\x4b\x55\xa8\x86\x82\x9b\x41\xe8\xe5\ \x82\xbe\xfc\xae\x18\xe9\x67\x6a\x40\x1c\x74\x72\xfe\xe8\xf5\x8e\ \x40\xcc\xad\x89\x44\x22\x0b\x5d\xd7\x25\x99\x4c\x22\xa5\xe4\xfa\ \xeb\xaf\xa7\x58\x2c\x12\x0e\x87\x89\x44\x22\x3e\x48\xa1\x50\x88\ \x60\x30\x48\x38\x1c\x26\x1c\x0e\x13\x0a\x85\x08\x85\x42\xc4\x62\ \xb1\x43\xbc\xab\xb7\xda\xca\x64\x32\x93\xa5\x52\xe9\x49\x4d\xd3\ \x46\xbe\xf5\xad\x6f\x1d\x22\x3d\x7e\x32\x4e\xba\x80\xc6\x62\x79\ \x11\x9f\x59\x7d\x37\x7f\x7f\xee\x8f\x18\xde\xe3\xd2\x11\x5b\x8e\ \x08\x96\x6b\xcf\x14\x7b\x7c\xa4\x98\xe4\x8f\x3e\x1b\x0e\x87\xaf\ \x5c\xb2\x64\xc9\xdd\x00\xc9\x64\x92\xa6\xa6\x26\x7e\xf2\x93\x9f\ \x30\x3d\x3d\xcd\x43\x0f\x3d\xc4\xfe\xfd\xfb\x59\xb7\x6e\x1d\x8f\ \x3c\xf2\x08\x2b\x57\xae\x24\x91\x48\x30\x38\x38\x48\x4f\x4f\x0f\ \x8d\x8d\x8d\xfc\xf0\x87\x3f\xa4\x58\x2c\xce\xbc\xf0\xc2\x0b\x8d\ \xcd\xcd\xcd\x81\xc9\xc9\xc9\xd2\x5b\x15\x98\x9a\x9a\x9a\x2f\xac\ \x5e\xbd\xfa\xa6\xd1\xd1\x51\x92\xc9\x24\xa1\x50\x88\xd3\x4f\x3f\ \x9d\x40\x20\x80\x04\x02\x86\x86\x74\x02\x38\x5e\x09\xc3\x30\x71\ \xa4\x8d\xa6\x97\x6b\xcf\x64\x05\x31\x30\x3c\x3c\x1c\x7f\xfa\xe9\ \xa7\x17\x1e\x95\xca\xd2\x34\x2d\xac\x54\x90\xae\xeb\x84\x42\x21\ \x3e\xf9\xc9\x4f\xd2\xd9\xd9\xc9\x0b\x2f\xbc\x80\x94\x92\xde\xde\ \x5e\x74\x5d\xf7\xf3\x1c\x00\x8f\x3c\xf2\x08\xae\xeb\xaa\x82\x06\ \x09\xc8\xb7\x32\x18\xf3\x74\xcb\xcf\x9e\x79\xe6\x99\xfd\x0b\x17\ \x2e\xbc\xbd\xbd\xbd\x3d\x3a\x3a\x3a\xea\xf3\x79\x1e\x1e\xdb\xeb\ \xfb\x38\xeb\x2f\x22\x18\x19\x13\x37\x6d\xa0\xa7\x82\xb8\x29\x03\ \x37\x6d\x60\x8d\x85\x10\x02\xc5\x68\x9b\x47\x6d\x43\x42\xa1\xd0\ \xa7\x65\xd9\xaa\x8b\x25\x4b\x96\xe0\x38\x0e\xf9\x7c\x9e\x3d\x7b\ \xf6\xf8\xd1\xab\xe2\x7c\x82\xc1\xa0\x9f\x94\x51\x65\x9b\x80\x4c\ \xa5\x52\x36\xc7\xc0\xca\x64\x32\xcf\x02\xcf\x1a\x86\xf1\x8f\x23\ \x23\x23\x51\x4d\xd3\x0e\x26\xe5\xa4\x43\xfd\x42\x03\xe1\xea\x2c\ \x6a\x3c\x85\x9a\x45\x55\xbc\x30\xb5\x89\x58\xa0\x96\xbc\x3e\xc5\ \xc8\x57\x5b\x11\x5a\x99\x50\x55\x99\xd5\xa3\x02\x44\x4a\x29\xa4\ \x94\xa2\x54\x2a\xf1\x89\x4f\x7c\x02\xc3\x30\xb8\xe8\xa2\x8b\xf8\ \xf2\x97\xbf\x8c\x69\x9a\x18\x86\x41\x2a\x95\x62\x64\x64\x84\xee\ \xee\x6e\x86\x87\x87\x49\xa7\xd3\xf4\xf7\xf7\x93\xcd\x66\xc9\x64\ \x32\x7f\x33\x30\x30\xf0\x0d\x8e\xa1\xa5\x3c\x4d\x28\xe7\xf8\xa5\ \x94\xb8\x48\x3c\xf2\x3c\xbb\xab\xc8\xa2\x77\x76\xf1\xf0\xf3\x4f\ \x10\xab\x8f\x12\x88\x2e\x66\xd7\xcc\x5e\x52\xa3\x36\x9a\x56\x3e\ \xa4\x85\x42\xa1\xee\xa8\x6d\x48\x7d\x7d\x7d\x7f\x53\x53\xd3\x52\ \xd7\x75\xa9\xab\xab\xe3\x8a\x2b\xae\xa0\xb7\xb7\xd7\x2f\x36\xf0\ \xdb\x0a\x4a\x25\x42\xa1\x10\xa5\x52\x89\x6c\x36\x4b\x34\x1a\x25\ \x95\x4a\x91\xcd\x66\xaf\x3b\xd6\x00\x69\x69\x69\xf9\x8c\x10\xe2\ \xb3\x42\x88\xba\x95\x2b\x57\xfa\xb9\x9e\xa2\x67\x11\x3a\x39\x85\ \xe1\x18\x78\xd3\x11\x9c\xc9\x30\x68\x1e\x42\x13\x2a\xd7\x8e\x94\ \x92\xe9\xe9\x69\x1e\x7b\xec\x31\x71\xb4\x71\x88\x50\x74\xb5\xae\ \xeb\xdc\x75\xd7\x5d\x87\x24\xa3\x2a\xdd\x5b\x15\xb9\x9a\xa6\x89\ \x6d\xdb\x32\x16\x8b\x89\x74\x3a\xad\x1f\x4b\x60\x54\x57\x57\x33\ \x31\x31\xf1\xa5\xd6\xd6\xd6\x6b\x81\x3a\xcf\xf3\xca\x44\xa9\xd0\ \x78\xac\xb8\x9d\xbf\x5c\xd5\x84\x23\x6d\x2c\xb7\x44\xcc\x08\xe3\ \x66\x74\xbc\x54\x90\xdc\xce\x18\x56\x3c\xf0\x07\xa9\xff\x97\xe5\ \xf6\x02\xa6\x6d\xdb\x5c\x70\xc1\x05\x34\x36\x36\x72\xf5\xd5\x57\ \xd3\xd4\xd4\x84\x69\x9a\x2c\x5e\xbc\x98\x8e\x8e\x0e\x4c\xd3\xa4\ \xb1\xb1\x91\x64\x32\x49\x2e\x97\x43\xd7\x75\xe2\xf1\xb8\xd8\xbd\ \x7b\xf7\x2f\x32\x99\xcc\x2f\x8f\x25\x40\x94\xcb\x2b\xe6\x4f\xa1\ \x4a\x45\x58\x96\x85\xd0\xca\xe5\xa6\xef\x8c\xfd\x35\x5f\x5c\xf7\ \x30\xcb\x6a\xcf\x64\x79\xc3\xd9\x44\x3b\x25\xc4\x4a\x07\x1b\x8c\ \x5e\x89\x0d\x01\xc4\x7c\x76\x8d\x7b\xef\xbd\x97\xa1\xa1\x21\xf6\ \xec\xd9\x83\x69\x9a\xd4\xd7\xd7\x93\xcd\x66\xd1\x75\x9d\xce\xce\ \x4e\x6a\x6b\x6b\xd9\xbb\x77\x2f\x3d\x3d\x3d\x64\x32\x19\x0a\x85\ \xc2\xe6\x78\x3c\xde\xcb\x31\xb8\x1c\xc7\x91\x7e\x57\x30\xa0\x21\ \xd0\x43\x82\x7d\x7b\x93\xfc\xcb\xff\xb8\x9c\xeb\x1e\x7c\x37\x77\ \x5f\xb6\x99\xc9\xb9\x69\x9e\x4b\xfc\x17\xdf\xfb\xd5\xbd\x58\x96\ \xe6\x07\x94\xaf\x88\xcb\xd2\x34\x8d\x81\x81\x01\x2e\xba\xe8\x22\ \x0a\x85\x82\xaf\x0b\x2b\xcb\x5c\xfa\xfa\xfa\xfc\xc7\x4f\x3f\xfd\ \xf4\x21\x51\xf9\xb1\xb8\x66\x66\x66\xde\xd5\xd2\xd2\x32\xa5\x78\ \x2d\x81\x40\x84\x05\x85\x9c\x47\x38\x74\xd0\xab\x75\x5c\x87\xc7\ \x87\xfe\x03\xcf\x95\xbe\xbd\x7d\xa5\x12\x42\x20\x10\xa0\xbe\xbe\ \x9e\x40\x20\xa0\xaa\x14\x09\x06\x83\x64\x32\x19\x6a\x6a\x6a\xfc\ \xbc\xba\xca\xa9\x67\x32\x19\x2c\xcb\xb2\x81\xb1\x63\x15\x10\xd7\ \x75\xb3\xf3\x92\x52\xa6\x43\x28\xe7\x80\x62\x31\x13\xdb\x02\xd7\ \x9b\xef\x08\xc6\xc5\xf5\x1c\x3c\xd7\xc5\xb2\xbc\x57\x0e\x88\xe7\ \x79\xac\x5b\xb7\x8e\x2b\xaf\xbc\x92\x33\xce\x38\x83\x87\x1f\x7e\ \x98\xdf\xfd\xee\x77\xe4\xf3\x79\x26\x26\x26\x38\xe3\x8c\x33\x98\ \x9c\x9c\xa4\xaf\xaf\x0f\xcf\xf3\x68\x6c\x6c\xe4\x85\x17\x5e\xc0\ \xf3\xbc\x7d\xf1\x78\xfc\xdf\xdf\x0c\x93\x11\x5e\xab\x35\xcf\x64\ \x4b\xcb\xb2\x84\x40\x20\x34\x9d\xa5\xcb\xea\x79\x64\xeb\xcf\xf9\ \xcc\x39\xdf\xe2\xbf\xf6\x7c\x13\x27\x17\xe6\xbc\xc5\x1b\xe8\x75\ \xbe\x43\xa9\xe4\x1c\xa2\x55\x8e\x5a\x42\x36\x6e\xdc\xc8\xf4\xf4\ \x34\x35\x35\x35\x0c\x0c\x0c\xf8\x28\x4b\x29\xf9\xe9\x4f\x7f\xea\ \x57\x92\x78\x9e\xc7\xd4\xd4\x94\x2a\xae\x16\xc0\x31\x0b\x06\x60\ \x15\x0a\x85\xd9\x42\xa1\x50\x9f\x4c\x26\xd1\x84\x46\xbe\xd9\xa3\ \x68\x55\xf1\x1f\x43\x7f\xcf\x27\x63\xdf\xe3\x40\xae\x9f\xe7\x27\ \x7e\x87\x11\xd0\x98\x19\x4b\x31\x37\x57\xae\x43\x50\x99\xd5\xa3\ \x06\xc4\x30\x0c\x46\x47\x47\x19\x1e\x1e\x46\xd7\x75\xdf\xe5\xd5\ \x34\xcd\xff\x5b\x45\xed\x2a\x0f\x32\x39\x39\xd9\xd2\xda\xda\xfa\ \xbe\x78\x3c\xfe\xc8\xb1\xaa\xb5\x84\x10\x96\x4a\x57\xab\x86\x1e\ \x23\x28\xa8\x22\xc2\x1d\x8f\x5d\x4b\xb2\xcf\x63\x66\x6f\x81\x52\ \xd2\x23\x37\xe9\x22\x34\xe1\xef\xd3\x51\x03\x12\x8d\x46\xf9\xc8\ \x47\x3e\x42\x7f\x7f\x3f\x17\x5f\x7c\x31\x4f\x3c\xf1\x04\x43\x43\ \x43\xd4\xd5\xd5\xe1\x38\x8e\xef\x06\x8e\x8c\x8c\x90\x4c\x26\x69\ \x69\x69\x61\x72\x72\x92\x5c\x2e\x57\x4d\xb9\x18\xe6\x98\x03\xa4\ \xa5\xa5\x45\x55\xe9\x4b\x75\x08\x6b\x6b\x6b\x31\x87\x8b\x3c\x71\ \x63\x9a\x42\xc2\x2d\x77\xec\x6a\x20\xf4\xb2\x0f\x66\x98\xf8\x07\ \xf6\x48\xf4\xfb\x1f\x05\x24\x12\x89\x30\x35\x35\xc5\xa7\x3e\xf5\ \x29\xa4\x94\x6c\xdc\xb8\x91\xba\xba\x3a\x6a\x6b\x6b\x71\x5d\x97\ \xd1\xd1\x51\xba\xba\xba\xfc\xc6\x97\xb6\xb6\x36\x72\xb9\x9c\x02\ \xca\x3b\x16\x45\x63\x62\x62\x82\xf6\xf6\xf6\xef\x06\x02\x81\x46\ \xd7\x75\xb9\xe3\x8e\x3b\x58\xb7\x6e\x1d\x5f\xfb\xda\xd7\x38\x70\ \xe0\x00\x9e\xe7\x91\xc9\x64\x30\x0c\x83\xd9\xd9\x59\xaa\xab\xab\ \x09\x85\x42\x0c\x0f\x0f\x53\x28\x14\x38\x52\x0d\xc1\x91\xd8\x5e\ \x7e\xf1\x8b\x5f\xf0\xf3\x9f\xff\xfc\x45\x5f\x53\x69\x27\x76\xed\ \xda\x45\x24\x12\x79\x49\xc6\xeb\xad\xbc\x02\x81\xc0\xda\x55\xab\ \x56\x19\xbf\xff\xfd\xef\x59\xb1\x62\x05\x7d\x7d\x7d\xac\x5d\xbb\ \x96\xef\x7f\xff\xfb\xf4\xf4\xf4\x30\x36\x36\x46\x57\x57\x17\x8f\ \x3c\xf2\x08\xd5\xd5\xd5\xb4\xb7\xb7\x73\xda\x69\xa7\x71\xdf\x7d\ \xf7\x1d\x31\x37\xf4\x47\x15\x5a\x6b\x6b\xeb\x70\x55\x55\xd5\x09\ \x95\x84\x5a\xa9\x54\x22\x12\x89\xf8\x95\x25\x91\x48\x84\x5c\x2e\ \x87\xe7\x79\xd4\xd5\xd5\xf9\xd2\xd2\xde\xde\x6e\xcf\xcd\xcd\xdd\ \xb3\x67\xcf\x9e\xab\x8f\x35\x40\x16\x2d\x5a\x34\x78\xea\xa9\xa7\ \x9e\x38\x31\x31\xc1\x92\x25\x4b\x58\xb3\x66\x0d\xbf\xfc\xe5\x2f\ \x29\x95\x4a\x04\x02\x01\xb2\xd9\x2c\xe1\x70\x98\x74\x3a\xed\xef\ \x9b\xe7\x79\xe4\x72\x39\x5c\xd7\x65\xe7\xce\x9d\x47\xc7\x65\x45\ \xa3\x51\xeb\x9b\xdf\xfc\x26\xa9\x54\x8a\x0f\x7c\xe0\x03\xdc\x7f\ \xff\xfd\xf4\xf6\xf6\xd2\xd0\xd0\x40\x55\x55\x15\xcf\x3d\xf7\x1c\ \x55\x55\x55\xf4\xf5\xf5\x31\x31\x31\x41\x57\x57\x17\x23\x23\x23\ \x0c\x0f\x0f\xe3\x38\x8e\x29\x84\x30\x8f\x41\x30\xfe\x2a\x10\x08\ \xd4\xcd\xcc\xcc\x20\x84\x60\x68\xdf\x10\x03\x03\x83\x18\xc6\xa1\ \x27\xdf\x1f\x86\x33\x1f\x77\x08\x21\x08\x85\x42\xfe\xff\x3f\x2a\ \x40\x74\x5d\xe7\x73\x9f\xfb\x1c\x5f\xfc\xe2\x17\xb9\xf5\xd6\x5b\ \xd9\xb1\x63\x87\x5f\x75\x91\xcf\xe7\xd1\x75\xdd\xaf\x46\x71\x1c\ \x87\xe1\xe1\x61\x3f\x8a\x9f\x77\x8d\xbd\x79\x49\x3b\x66\x5c\xe0\ \xb6\xb6\xb6\x7f\x5c\xba\x74\x69\x3d\xc0\x8e\x5d\xcf\xe3\x35\xa5\ \x89\x04\x4c\x64\x26\x80\xb4\x34\x3c\x4b\x43\xda\x1a\x42\x48\x5f\ \xff\x48\x29\xc9\xe7\xf3\x94\x4a\x25\x7f\x48\xc2\x2b\x8a\xd4\x6f\ \xbe\xf9\xe6\x17\xe3\x74\x7c\x5b\xa3\x7a\xb5\x43\xa1\x90\x7f\x32\ \x34\x4d\xbb\x72\xe9\xd2\xa5\x17\x0d\x0c\x0c\x34\x1e\x2b\x12\x62\ \x59\x96\xae\x5a\xbc\xc7\xab\xf3\xfc\xf9\x27\x1a\x70\x0f\xa3\xa7\ \x3c\x07\xb2\x5b\xaa\xc9\xef\x89\xa2\x6a\x7b\x67\x67\x67\xc9\x66\ \xb3\x94\x4a\xa5\xc4\x51\xb3\xbd\x63\x63\x63\xf7\x37\x35\x35\x71\ \xe9\xa5\x97\x72\xd3\x4d\x37\x71\xd6\x59\x67\xd1\xda\xda\x8a\x2a\ \xd5\x3f\xef\xbc\xf3\x68\x6f\x6f\x07\xca\xad\xd2\x4b\x96\x2c\x61\ \x72\x72\xd2\x77\x8b\xab\xab\xab\xe9\xe8\xe8\x38\x56\x24\x23\x02\ \x2c\xcc\xe7\xf3\x7a\x32\x99\x2c\x37\x28\x15\x2c\x32\x13\x25\xc4\ \xd0\x32\x3e\xdc\xf6\x45\x4e\x64\x0d\xda\x44\x3b\x6e\xca\x24\x53\ \x4a\x91\x9c\x2b\x33\xe0\xaa\xb7\xe4\xa5\xd4\xf8\xfe\x51\x09\xb1\ \x6d\xbb\xdf\xb2\x2c\xd6\xae\x5d\xcb\xb2\x65\xcb\x18\x1f\x1f\xa7\ \x54\x2a\x31\x37\x37\x47\x73\x73\x33\xe9\x74\x9a\xda\xda\x5a\x52\ \xa9\x14\x93\x93\x93\x54\x57\x57\xa3\xeb\x3a\xaa\x87\xc4\xb6\x6d\ \x4c\xd3\x94\x15\x4e\xc2\x5b\x56\x75\xe5\xf3\xf9\x8f\xfd\xe9\x9f\ \xfe\xe9\x97\x4d\xd3\x04\x29\xc9\xd8\x45\xde\xbd\x68\x39\xa9\x9f\ \x19\xcc\x15\x53\xfc\xc3\xc3\x5f\xc6\xd0\x0d\x34\x43\x20\x58\x80\ \xae\xc1\x82\x46\x9d\xa1\xa1\x21\x1a\x1b\x1b\x29\x16\x8b\x04\x83\ \x41\xe9\x79\x5e\xf8\x15\xd1\xef\x63\x63\x63\x6c\xd8\xb0\x01\xc3\ \x30\xfc\xfc\xb9\x5a\x83\x83\x83\xbe\xc1\x02\x78\xee\xb9\xe7\x30\ \x4d\x93\x4a\xe2\xcd\x75\xdd\xaa\x95\x2b\x57\xde\x35\x35\x35\x35\ \x18\x8f\xc7\xff\xe1\xad\x2a\x21\x9e\xe7\xd5\x29\x16\xbb\x20\x6d\ \xec\x35\x23\x2c\xe8\x89\xe1\xe2\x22\x6d\x70\x27\xa2\x58\x93\x01\ \x9c\xc9\x20\x56\xdc\xf0\xab\xde\x55\x43\x6c\x2a\x95\xa2\xb9\xb9\ \x59\x14\x8b\xc5\xab\xda\xda\xda\x18\x1b\x1b\x7b\xf9\x2a\x4b\xd3\ \x34\x4f\xa9\x9e\x48\x24\x42\x30\x18\xf4\xeb\xb0\x54\xd7\xd4\xe1\ \x35\x58\x6a\x7a\x82\x6a\x03\x03\x42\x3d\x3d\x3d\x57\x01\x7f\x72\ \x0c\xd8\x8f\x72\xff\xa1\x65\x51\x57\x13\xa2\x54\x70\x38\x77\xc1\ \x5f\xf3\xde\x25\x57\x10\x68\xb5\xa8\x7f\x9b\x43\xd5\x79\x09\x4a\ \x79\xfb\xe0\x4c\xc8\xf9\x7a\x2c\x55\xa0\x2e\x84\x08\xbe\x18\x18\ \x47\x94\x90\xaa\xaa\xaa\x7b\xc7\xc6\xc6\xd6\x7f\xf6\xb3\x9f\xfd\ \xf3\x9a\x9a\x1a\x2e\xbd\xf4\x52\x6e\xbb\xed\x36\x92\xc9\x24\x2b\ \x57\xae\xc4\xf3\x3c\x7e\xf9\xcb\x5f\xb2\x72\xe5\x4a\x76\xec\xd8\ \x01\x40\x30\x18\xa4\x58\x2c\x92\xcd\x66\xfd\xc1\x01\xf3\xae\x9e\ \xfb\x56\x54\x5d\xa1\x50\xe8\x2f\xd6\xaf\x5f\x7f\xff\x7c\x25\x8d\ \x74\x5d\x29\xc2\x55\x3a\xde\x2f\x1a\xc8\x08\xc9\x03\xda\x6f\x40\ \x80\xa6\x75\xfa\xef\xa9\xae\xd7\xd8\xbc\x79\x33\xcb\x96\x2d\xf3\ \x5b\xe1\x94\x2a\x3f\x52\xd0\xfc\x47\x01\x99\x9a\x9a\x92\x8b\x16\ \x2d\xb2\x1e\x78\xe0\x01\x3e\xfe\xf1\x8f\x73\xf3\xcd\x37\xd3\xd7\ \xd7\x87\xa6\x69\xc4\xe3\x71\x3f\x25\xb9\x65\xcb\x16\x0a\x85\x02\ \xc9\x64\x92\xe6\xe6\x66\x9f\x7c\x54\xee\xaf\x6d\xdb\x84\xc3\xe1\ \x33\x2e\xbc\xf0\xc2\x67\x06\x06\x06\xfe\x7b\x70\x70\xf0\xd6\xb7\ \x90\xaa\x0a\x29\x9b\x68\x08\x5d\x0c\x9d\xb0\x8b\x77\x9c\x5f\x85\ \xeb\xb9\xd8\x29\x0d\xd2\x11\xdc\xb4\x81\x9b\x34\x29\x0e\x86\x91\ \xae\x00\xb7\xac\xde\x2b\xa7\xd7\x05\x02\x01\x12\x89\xc4\xf3\x86\ \x61\xec\x7b\x45\x6e\xaf\x94\x52\x73\x5d\x97\x2f\x7d\xe9\x4b\x7e\ \xbd\x95\xf2\x16\xa4\x3c\xb4\x5d\x4b\xd3\x34\xa6\xa7\xa7\x7d\xf1\ \x54\xdd\x46\xf3\x11\x6c\x4d\x7d\x7d\xfd\x3b\x6b\x6b\x6b\xf7\xbe\ \x45\x48\xc4\xda\xfa\xfa\xfa\x25\x89\x44\x62\xd1\x7c\xd2\x0d\x5d\ \x6a\xe8\x96\x20\x35\x24\xa9\xd3\x4e\xa4\xb5\xae\x9a\x01\x6f\x3b\ \xa2\x4a\x43\x54\x0b\x72\x2f\x54\xe3\x15\x35\x7f\x22\xc5\xc1\xd9\ \x92\x52\xb5\x32\x7c\x73\x6a\x6a\xea\x99\x57\x04\xc8\xec\xec\xec\ \x57\xb3\xd9\x6c\xe7\x35\xd7\x5c\xf3\xae\x42\xa1\xc0\xbb\xde\xf5\ \x2e\x1e\x78\xe0\x01\x3c\xcf\x63\xc1\x82\x05\x8c\x8f\x8f\x13\x0e\ \x87\x89\xc5\x62\x3c\xf3\xcc\x33\xb4\xb7\xb7\xd3\xd2\xd2\x42\xb1\ \x58\xf4\x49\xb6\xca\x51\x15\x2f\xb7\x4d\xf8\x8d\x5a\xc5\x62\xf1\ \xe3\xa7\x9f\x7e\xfa\x3f\x28\x43\x5e\x92\x16\xc1\x06\x87\xa6\xd9\ \xb7\x23\x9e\x13\xe4\x80\x1c\x0e\x01\x4e\xf5\xdf\xd3\xde\x64\xb0\ \x7b\xf7\x6e\xbf\x15\x43\x55\xe2\xa8\x34\x05\xe5\x39\x8d\x47\xaf\ \xb2\x0c\xc3\x20\x9d\x4e\x6f\x5e\xb8\x70\xe1\xd0\xbe\x7d\xfb\xde\ \xf5\xef\xff\xfe\xef\xf4\xf7\xf7\xb3\x74\xe9\x52\x0c\xc3\xf0\xdb\ \xa3\x0d\xc3\x20\x1a\x8d\x72\xca\x29\xa7\x30\x37\x37\x47\x43\x43\ \xc3\x21\x05\x65\xaa\x49\x74\x9e\x07\xfb\xe0\x25\x97\x5c\x72\xfe\ \xcc\xcc\x8c\xd8\xbe\x7d\x7b\x77\x3a\x9d\x4e\xbc\x59\x40\xa8\xb4\ \x6d\x9e\xe7\x99\xf9\x7c\x1e\x21\x04\x79\xb7\x04\xe7\x1e\x60\xf1\ \xb2\x30\xd2\x03\x69\xcf\x47\xe4\x96\x86\x3d\x6d\x92\x7a\xbc\x0e\ \x29\x5c\xbf\xa1\x47\x1d\xc0\x64\x32\x49\x30\x18\x44\xd3\x34\x19\ \x08\x04\x84\x65\x59\xe6\x2b\x02\xa4\x22\x12\x17\x7d\x7d\x7d\xac\ \x5b\xb7\xce\x37\x50\x87\x97\x8d\x2a\xf5\x25\x84\xe0\xd7\xbf\xfe\ \xf5\xc1\x21\x65\x9a\x46\xb1\x58\xf4\x01\x11\x42\x84\x0d\xc3\x08\ \xd7\xd6\xd6\x62\x59\xd6\x9b\x8a\x16\x8e\xc7\xe3\x9c\x72\xca\x29\ \xff\xa7\xb9\xb9\xb9\xb3\x54\x2a\x75\x64\xd2\x69\xf0\x34\x1c\xcf\ \xc3\x78\xb2\x96\xa1\xcd\x82\xf9\x56\xe7\x0a\x5e\xd6\x25\x3b\x33\ \x4d\x75\x4d\x95\xdf\x61\xe6\xcf\x1b\xb6\x6d\x42\xa1\x10\xba\xae\ \x8b\x4d\x9b\x36\x9d\x58\x5f\x5f\x3f\xf1\x8a\x00\x51\xab\x54\x2a\ \x4d\x99\xa6\x39\xaa\xeb\x7a\x7b\x53\x53\x13\x86\x61\xf8\xdc\x8c\ \x9a\x5f\x15\x0a\x85\x7c\x23\xaf\x8a\xe9\xd4\x00\x80\xd9\xd9\x59\ \x7f\xca\x8e\x9a\xdb\xeb\x38\x0e\x5d\x5d\x5d\xd7\x04\x02\x81\xec\ \xc4\xc4\xc4\xf3\x53\x53\x53\x4f\xbe\xd1\x52\x31\xef\x59\x5e\xb0\ \x60\xc1\x82\x7a\x80\x84\x9d\xa6\x7a\xcd\x2c\xf5\xd5\x21\x9c\xc9\ \x30\xce\x64\x08\x59\xd2\xf1\x4a\xe5\xb9\xbe\x78\xe5\xc3\x18\x6d\ \x29\x77\x07\x54\x4e\x5d\x55\xd9\x53\x55\x74\x2e\xa5\xdc\x37\x33\ \x33\x73\xc4\xfb\x79\x49\x95\x85\xf9\x7c\xfe\xbf\xc7\xc7\xc7\x7f\ \xdc\xd4\xd4\xf4\x3f\xef\xbe\xfb\x6e\x56\xad\x5a\xe5\xab\xa3\x0f\ \x7d\xe8\x43\x4c\x4e\x4e\xb2\x7c\xf9\x72\xba\xba\xba\x98\x99\x99\ \x61\xed\xda\xb5\xac\x5e\xbd\xda\x1f\x4a\xa6\x5a\xdb\x22\x91\x88\ \x3f\x24\xcc\xf3\x3c\x5a\x5b\x5b\xcf\xef\xea\xea\x7a\xdf\xee\xdd\ \xbb\xf3\xc5\x62\xf1\x0d\xc9\x2e\x66\xb3\x59\x5a\x5b\x5b\x3b\xab\ \xaa\xaa\xde\x56\x5d\x5d\xdd\x68\x9a\xe6\x47\xa5\x94\xc1\x42\xa1\ \xc0\xae\xe4\x10\x4b\x4f\x35\x28\x16\x2c\x1c\x23\x87\x57\x9b\xc2\ \x6b\x48\x22\x9b\x67\x29\x58\x79\x72\xe3\xf8\x55\xed\x2a\x05\x91\ \x4e\xa7\x7d\xb2\x55\x0d\xda\x89\xc5\x62\x0c\x0f\x0f\xbf\x24\xcf\ \xf2\x65\x15\x50\x85\x42\x21\xae\xbd\xf6\x5a\x6a\x6a\x6a\x18\x1f\ \x1f\x47\x4a\xc9\xee\xdd\xbb\xf1\x3c\x8f\x7d\xfb\xf6\xf9\x0d\x29\ \x3f\xfd\xe9\x4f\x7d\x35\xa6\x69\x9a\x6f\x6f\x94\x28\x2b\x5e\xa7\ \x62\x60\x66\x8d\xa6\x69\x4b\x01\xb1\x70\xe1\xc2\xf8\xe8\xe8\x68\ \xe6\xf5\x04\x25\x14\x0a\xdd\xb2\x6a\xd5\xaa\xbf\x2a\x47\xca\x1a\ \x33\xcc\xb1\xa0\x5d\x67\xdd\x64\x0f\xf6\x6f\xcc\x72\x4b\x9a\x06\ \x68\x07\x35\x6c\x58\xc0\xc4\xec\x10\x4d\x4d\x4d\xfe\x58\xc0\xca\ \x31\xb8\xaa\xa0\x21\x9f\xcf\x3f\x3e\x3d\x3d\x7d\xdb\x4b\xbd\x97\ \x97\x05\x88\xda\xd4\x44\x22\x21\x3d\xcf\x13\xf3\x5c\x15\xba\xae\ \x53\x2c\x16\x0f\xe9\x51\x57\x34\x8b\x4a\x68\x25\x93\x49\x66\x66\ \x66\xa8\xa9\xa9\xc1\xb2\x2c\x4c\xd3\x54\x80\xc8\xce\xce\xce\x8f\ \x2c\x59\xb2\xe4\x23\xba\xae\xf3\xab\x5f\xfd\xea\x2a\xe0\xee\xd7\ \x41\x55\xb5\xa5\xd3\xe9\xf3\x3c\xcf\x2b\xe5\x72\xb9\xe5\xaa\x63\ \x38\x65\xe7\x09\xaf\x4c\xa1\x05\x83\xd0\x25\x91\x96\xc0\x4d\x99\ \x38\x49\x03\x37\x69\x10\xf6\x6a\xa9\xae\xa9\x46\x7a\xd2\xb7\x8b\ \xba\xae\xfb\x83\xdc\x94\x33\x54\x31\x28\xe1\xc0\xe8\xe8\xe8\x6f\ \x5f\x0b\x40\xe2\x5b\xb7\x6e\x0d\x06\x83\xc1\x5b\x3e\xf1\x89\x4f\ \xdc\x78\xf6\xd9\x67\x73\xfe\xf9\xe7\xf3\xed\x6f\x7f\x9b\xed\xbb\ \x25\x5f\xa5\x00\x00\x09\x83\x49\x44\x41\x54\xdb\xb7\xf3\x8e\x77\ \xbc\x83\x74\x3a\xcd\xe0\xe0\x20\x35\x35\x35\x3e\xaf\xb5\x7a\xf5\ \x6a\x9e\x7b\xee\x39\x1f\xac\xc3\x67\xf8\x5a\x96\x25\x94\x73\x30\ \xdf\x22\xd7\xd1\xdd\xdd\x7d\x86\x94\x92\x99\x99\x99\x3d\x13\x13\ \x13\xaf\x49\x23\x7b\xa1\x50\xf8\xcb\xcb\x2e\xbb\xec\x9f\x55\xbb\ \x72\x51\x2b\x12\xad\x13\x60\xe9\x78\x25\x0d\x99\x2e\xdb\x88\xb2\ \x62\x97\xc8\x06\x30\x9a\x0d\xb6\xef\xd8\x46\xc8\x3a\x98\x62\x50\ \x87\x2b\x99\x4c\x22\x84\xf0\x0f\x9c\x65\x59\x04\x83\x41\x6c\xdb\ \x7e\x59\x73\x46\x5e\x0e\x20\x92\xf2\xcf\x4d\x38\xdb\xb7\x6f\x47\ \x4a\xc9\x8f\x7f\xfc\x63\xa6\xa7\xa7\xf1\x3c\x8f\x07\x1e\x78\xc0\ \x4f\x5e\x55\x8e\xca\xdb\xb4\x69\x93\x5f\xfe\xa2\x4e\x4e\xa1\x50\ \x38\xc4\x45\xac\x9c\xd5\x78\xea\xa9\xa7\xde\xd6\xd1\xd1\x71\x5b\ \x24\x12\xe1\xe1\x87\x1f\x5e\x05\x6c\x7d\x15\xa5\xe2\x03\xc0\x69\ \xe5\xbd\x74\xdf\xbd\x73\xe7\xce\xf2\xc8\x0c\xcf\x41\x9c\x90\xa6\ \xa6\x74\xa8\x57\x6a\x27\x75\xec\xf1\x20\x26\x21\x9a\x9b\x9b\x39\ \xfc\xc7\x04\x0e\x3f\x5c\xca\x33\x8d\xc5\x62\x64\xb3\x59\x06\x07\ \x07\xfb\x75\x5d\x1f\x78\xad\x00\xf1\x1d\x81\x50\x28\xc4\xb6\x6d\ \xdb\xfc\x69\xa4\xaa\x5d\x41\x75\x54\x55\x26\xf2\x95\x64\xa8\xea\ \x8b\x5c\x2e\x47\xb1\x58\xf4\xd9\xe3\x4a\xcf\x4b\x4d\x11\x4d\xa7\ \xd3\x78\x9e\x47\x47\x47\xc7\x7f\x9e\x74\xd2\x49\x45\xd7\x75\xf5\ \xde\xde\xde\x3b\xe2\xf1\xf8\xd7\x5e\xce\x8d\x1e\x36\xce\x96\x6c\ \x36\x7b\xcd\x65\x97\x5d\x76\x61\x36\x9b\x45\x08\x41\xa2\x76\x5c\ \x76\x2e\x33\x85\x15\x0f\xe3\xcc\x04\x91\x19\xd3\xf7\x68\xa5\xe7\ \x21\x35\x49\x78\x69\x98\x8d\x9b\x36\x52\x5b\x5b\xeb\x03\x52\x39\ \xe4\x53\x4d\xe9\x56\x71\x57\x30\x78\x70\x5c\xfa\xf4\xf4\xf4\xb2\ \x97\xcb\xdd\xbd\x6c\x40\x74\x5d\xbf\xfb\xc9\x27\x9f\x7c\x4a\xd7\ \xf5\x2b\x2f\xba\xe8\xa2\xcb\xd6\xae\x5d\x4b\x5b\x5b\x1b\x9b\x36\ \x6d\x22\x9d\x4e\x93\x4c\x26\x99\x9b\x9b\x43\xd7\x75\x4e\x38\xe1\ \x04\x86\x87\x87\x99\x98\x98\xe0\xf4\xd3\x4f\xe7\x85\x17\x5e\x38\ \x04\x34\xdb\xb6\xfd\x21\x36\xa5\x52\x89\x60\x30\xe8\x7f\x61\xdb\ \xb6\xa9\xab\xab\xeb\x54\x3f\xfe\xb2\x6b\xd7\xae\x75\xe1\x70\x78\ \x06\xd0\x82\xc1\x60\x21\x99\x4c\x3e\x70\xa4\x7b\x9d\x9c\x9c\xe4\ \xe4\x93\x4f\x7e\x7c\xd1\xa2\x45\x6b\x95\x5d\xdb\x37\xb6\x57\x06\ \x82\x9a\x90\x05\x03\x7d\x26\x22\x0e\xf4\x83\xd0\x6c\x84\x66\xe3\ \x7a\xae\x1f\x3f\x00\xd4\xd4\xd4\xa0\xe9\x07\x8b\x3b\x2a\x01\x51\ \x01\xaf\x2a\x5c\x38\xf1\xc4\x13\x89\xc7\xe3\x94\x4a\x25\xaa\xaa\ \xaa\x0e\x99\x52\xf1\x72\x88\xd4\x97\x0d\xc8\xdc\xdc\xdc\x20\x30\ \x58\x53\x53\x73\xd6\xce\x9d\x3b\x59\xbe\x7c\x39\x03\x03\x03\xfe\ \x54\x4f\x25\xca\xae\xeb\x32\x36\x36\xe6\x73\x5d\x3b\x76\xec\xf0\ \xdb\xe0\x54\x10\x39\x37\x37\xc7\xe1\xe3\x65\x2b\xb8\x2f\x7f\x13\ \x00\xd9\xdd\xdd\x7d\xc9\x8a\x15\x2b\x2e\x01\xd8\xbf\x7f\x7f\x7e\ \x74\x74\xb4\x65\x5e\x45\xe8\x53\x53\x53\x4f\xba\xae\x1b\x9f\xe7\ \x8d\x16\xb5\xb5\xb5\x6d\xac\x2c\xd9\xac\xdc\x10\xe9\x49\xa1\xa4\ \x40\x49\x29\xc0\xf4\xf4\x34\x3d\x3d\x3d\x7e\x2c\x31\x3b\x3b\x5b\ \xe6\xaf\xe6\x27\x53\x54\x8e\x16\x51\x80\x54\xd2\x22\x4b\x96\x2c\ \x61\x7a\x7a\x9a\x52\xa9\x34\x37\x35\x35\x35\x52\x2c\x16\x9d\xa3\ \x51\xab\xaf\xa8\x6f\xa0\xad\xad\x8d\x8d\x1b\x37\x02\xfc\xc1\x59\ \x1e\x55\x55\x55\x87\xe7\x57\x08\x85\x42\xb8\xae\xcb\xd4\xd4\x94\ \x1f\xd9\x2b\x5d\xac\x86\x84\x29\x09\x51\x7f\x03\x22\x97\xcb\x31\ \x31\x31\xa1\xf4\x74\x64\xc5\x8a\x15\x5f\x57\xc4\xdd\xd6\xad\x5b\ \xa9\xae\xae\xf6\x83\xd0\xe9\xe9\xe9\x3f\x58\xb2\xe9\x38\x0e\x17\ \x5e\x78\xa1\xef\x11\x8d\x8f\x8f\xd3\xd8\xd8\xe8\xdf\xbf\x72\x5d\ \x95\x3a\x52\x3f\xb1\xa1\xa6\xe2\x29\x57\x5d\x55\x8e\xa8\x61\x97\ \xba\xae\x33\x32\x32\xa2\x00\x7a\x78\xf7\xee\xdd\x97\x1f\xed\x9e\ \x1e\x35\x20\x9e\xe7\x7d\xed\xd9\x67\x9f\xfd\xb1\x65\x59\x2b\x7b\ \x7a\x7a\xee\xbd\xf5\xd6\x5b\x69\x6b\x6b\xe3\x67\x3f\xfb\x19\x3b\ \x76\xec\x40\x08\x41\x36\x9b\x65\xd9\xb2\x65\xf4\xf6\xf6\xfa\xcd\ \x3d\x8d\x8d\x8d\xec\xdb\xb7\xcf\xd7\xbb\x8a\xda\x3e\x3c\xd2\x55\ \x29\x60\xe5\x4e\xab\x0d\x52\x41\xa6\xda\x14\x29\x25\xad\xad\xad\ \xb4\xb5\xb5\x21\x84\x60\x72\x72\x92\xd6\xd6\x56\x3f\x0e\xd8\xbb\ \x77\xaf\x9f\xd7\xdf\xb5\x6b\x97\xcf\xbf\xa9\x93\x7f\xb8\x81\x56\ \xb4\x90\xf2\x9e\x0e\xf7\x0c\xd5\xf5\x01\x9f\x48\x1d\x1c\x1c\x64\ \x6e\x6e\x8e\xaa\xaa\x2a\x2a\x87\x76\xbe\xae\x80\x64\x32\x99\x29\ \x60\x4a\xd7\xf5\x2a\x4d\xd3\xf8\xdc\xe7\x3e\x47\x43\x43\x03\x89\ \x44\xc2\xff\x52\x52\x4a\x26\x26\x26\x0e\xa1\xeb\x15\x58\xb1\x58\ \x8c\xee\xee\x6e\xe2\xf1\xb8\xaf\x12\x2a\x87\x6b\xaa\x7f\x4a\x8a\ \x94\xe1\xaf\xcc\xb1\x54\x66\xf2\x14\x11\xa8\x0c\xad\x72\x34\x14\ \xeb\xac\xdc\x54\xc5\x38\x2b\xf0\xd5\xe7\xa8\x83\xa0\x3c\xc2\xca\ \xc2\x84\xf9\xa1\x39\xfe\xf7\x50\x0e\xcc\xb2\x65\xcb\xe8\xeb\xeb\ \xc3\x30\x0c\xe2\xf1\xf8\x1d\x42\x08\xaf\x50\x28\x3c\xf3\x86\x00\ \x52\xa1\x86\x9c\x52\xa9\x54\x0c\x87\xc3\xc5\x64\x32\x19\x8d\x46\ \xa3\x66\x30\x18\x44\xd7\x75\x7f\x34\xac\x3a\x65\xca\xb0\xaa\x4d\ \x53\xd5\x8f\x2a\x9a\xd7\x75\xdd\x4f\xff\x56\x66\xd6\x54\x4f\xb8\ \x92\x10\x21\x84\x2f\x21\x95\x3a\x5e\x01\xa7\x1c\x05\xe5\xc1\xa9\ \x4d\x57\xaa\x47\x01\xa2\xc6\xc1\x56\x3e\xa7\x0e\x40\x25\x20\x95\ \x3f\xb7\x51\x55\x55\xe5\x17\x5c\xff\xf6\xb7\xbf\x25\x12\x89\x10\ \x89\x44\xd8\xb7\x6f\x9f\x3f\x33\xb2\xa9\xa9\x89\xa9\xa9\xa9\x37\ \x06\x10\xdb\xb6\x9f\xdb\xbe\x7d\x7b\x18\xa0\xbe\xbe\xfe\x37\xdd\ \xdd\xdd\xe7\x7d\xec\x63\x1f\xe3\xc9\x27\x9f\x64\x60\x60\xc0\x4f\ \x61\x2a\x43\xaf\x36\x44\xd7\x75\xb2\xd9\xac\xcf\xf7\xd4\xd4\xd4\ \xf8\x06\x5f\xc5\x33\x2a\xda\xad\x54\x1b\x2a\xd9\xa3\x00\x3b\x7c\ \xde\x7c\xa5\x24\x05\x02\x01\x7f\x63\xd5\xa6\x2b\xe6\xf9\x70\x8f\ \x49\x5d\x4f\x79\x81\x4a\x22\x54\x1b\x9f\xca\x8b\x74\x76\x76\xb2\ \x7c\xf9\x72\x1e\x7b\xec\x31\x3c\xcf\xa3\xa5\xa5\xe5\xff\xe9\x1b\ \x3c\x5a\x30\x5e\x15\x40\x0e\xcb\x2e\x8a\xba\xba\x3a\xbe\xfe\xf5\ \xaf\x2b\xf1\x9e\xaf\xda\x2f\x9f\x3a\xd3\x34\xfd\xaa\x14\xb5\x02\ \x81\x00\x96\x65\x11\x8d\x46\xfd\xd3\xaf\x3c\x17\x55\x90\x66\xcc\ \xff\x20\x8b\xda\x74\xb5\xb9\xea\xfd\x95\x9b\x5e\x19\x6c\x2a\x37\ \xfa\x70\x3b\xa1\x24\x44\x49\x9d\x7a\x4e\xc5\x27\x6a\xf3\x95\x9d\ \x33\x0c\x83\x70\x38\x8c\xe3\x38\xc4\xe3\x71\x9f\x3c\xcc\x66\xb3\ \x0f\x0d\x0c\x0c\xfc\x4f\xf3\xf0\x2f\xf5\x46\xaa\xac\xc3\xd4\xd7\ \x1d\xbf\xf9\xcd\x6f\x1e\x14\x42\xc8\x40\x20\xf0\xc5\xf6\xf6\xf6\ \xea\x8b\x2f\xbe\x98\x1d\x3b\x76\xf8\x11\xbd\x3a\x89\xea\x34\x3a\ \x8e\x43\x6d\x6d\xad\x5f\xf7\x1a\x0a\x85\x58\xba\x74\x29\xd3\xd3\ \xd3\x87\x8c\x99\x2d\x16\x8b\xbe\xc4\xd4\xd6\xd6\x1e\x12\x78\x56\ \x06\x6b\x95\x12\x52\x59\xf5\xa1\x40\x54\xaf\x53\x00\xab\xc1\x6b\ \xa6\x69\xfa\x41\x9e\x72\xcf\x55\xb0\x17\x0e\x87\x59\xbd\x7a\x35\ \xdb\xb6\x6d\xf3\x55\x5b\x5d\x5d\x1d\x85\x42\x21\x93\xcb\xe5\x5e\ \xd5\x5f\x00\x7d\x55\x01\x99\x99\x99\xf9\x69\x45\x94\xfc\xbf\x63\ \xb1\x58\xf5\x43\x0f\x3d\xe4\x7b\x2b\x95\xbf\xb0\x73\x98\xc7\x46\ \x2a\x95\xa2\xaa\xaa\x8a\x33\xcf\x3c\x93\xfd\xfb\xf7\xfb\x9b\x52\ \x39\xa5\x4e\x01\xe2\xba\x2e\xa9\x54\x0a\x28\xf7\xb0\x28\x6f\x4c\ \x6d\xb4\x02\xa4\x72\x22\xb5\x02\x24\x9b\xcd\x1e\x32\x1d\x55\x1d\ \x8c\xea\xea\xea\x43\xae\x57\x5d\x5d\x4d\x43\x43\x03\x73\x73\x73\ \xa4\xd3\x69\xa2\xd1\x28\xae\xeb\x92\xcb\xe5\x0e\xec\xdd\xbb\xf7\ \x59\x21\x84\x0c\x06\x83\xbf\x79\xb5\x39\xb6\xd7\xac\x7f\xd9\x75\ \xdd\xe1\xfe\xfe\xfe\x1c\xe0\x09\x21\x4e\xd0\x75\xdd\xac\xae\xae\ \xf6\x0d\x7d\xc5\x80\x9a\x43\x0c\x78\x22\x91\xa0\xbe\xbe\x1e\xdb\ \xb6\x89\xc5\x62\x2c\x5d\xba\x94\xdd\xbb\x77\xfb\xaa\x43\xa9\x1b\ \x15\x67\x08\x21\xfc\x71\xe0\x6a\x38\x65\x65\x85\x79\x3e\x9f\xf7\ \xd5\x92\x4a\x03\x54\xb2\xd1\x4a\xdb\x68\x9a\x46\x4d\x4d\x8d\xff\ \x39\xea\xf5\x81\x40\x00\xd7\x75\x79\xea\xa9\xa7\x30\x0c\x83\x50\ \x28\xf4\x44\x2a\x95\xba\xfc\xb5\xda\xb7\xd7\x0c\x90\x44\x22\xe1\ \xcf\xea\xee\xec\xec\x1c\xe8\xec\xec\x5c\xf2\x12\xed\x90\x4f\x3f\ \x78\x9e\xc7\xc2\x85\x0b\x19\x1c\x1c\x24\x12\x89\xf8\x53\xa6\xfd\ \xde\xbe\x0a\x1a\x46\xd9\x1d\x65\xaf\x14\x58\x87\x4f\xd6\x56\x91\ \xb9\xa6\x69\xbe\x87\xa7\x24\xa8\xb3\xb3\x13\xc3\x30\x18\x1c\x1c\ \xf4\x27\x1f\xcd\x57\xce\xa4\x67\x67\x67\x9f\x13\x42\x78\x96\x65\ \x6d\x7e\x2d\xd3\x02\xaf\x4b\x87\x7f\x2e\x97\xfb\xfe\xf8\xf8\xf8\ \x02\xca\x6d\x6e\xef\x0b\x87\xc3\xcb\x8e\xd4\xaf\x3d\x33\x33\x43\ \x20\x10\xe0\x99\x67\x9e\xf1\x37\xf0\xec\xb3\xcf\x66\xe3\xc6\x8d\ \x68\x9a\xe6\xf7\xa8\x24\x12\x09\xbf\x92\x52\xd9\x0a\xd3\x34\x0f\ \x99\xbc\x1d\x0c\x06\x7d\x4f\xaf\xb5\xb5\x95\xd9\xd9\xd9\x72\xea\ \x35\x1a\x65\xe9\xd2\xa5\x0c\x0f\x0f\x93\xcb\xe5\xd0\x34\x4d\xfd\ \x57\x0a\x21\x84\xe3\x38\xaa\x23\x6c\xdf\xd0\xd0\xd0\xf9\x2f\x96\ \xf6\x7d\x4b\x01\x32\x3f\x90\xfe\x0b\x2a\x9f\x7c\xc2\x09\x27\xb4\ \x2e\x58\xb0\x60\x59\x45\xe4\x2b\xc5\x1f\xe0\x39\x2a\xd5\x98\x8a\ \x69\x2a\xf3\xf8\xd1\x68\xd4\x1f\x31\x58\x5f\x5f\xcf\xf2\xe5\xcb\ \xd9\xb3\x67\x0f\x75\x75\x75\xe4\x72\x39\x82\xc1\x20\xb9\x5c\x8e\ \x13\x4f\x3c\x11\x21\x04\xa9\x54\x8a\x44\x22\x41\x47\x47\x07\xef\ \x7c\xe7\x3b\xf9\xf5\xaf\x7f\x4d\xa1\x50\xa0\xa1\xa1\x81\xde\xde\ \x5e\x34\x4d\x63\xff\xfe\xfd\x4a\x8d\x89\xc1\xc1\xc1\x6f\x39\x8e\ \xb3\x0f\x70\x23\x91\xc8\xc0\xe1\xc5\x10\xaf\xd5\x7a\xdd\x67\xae\ \x6b\x9a\xb6\x40\xd3\xb4\xc8\xfc\xe3\x0f\x76\x77\x77\x7f\xe5\x48\ \xf3\x3f\x94\x3e\x57\x76\x27\x10\x08\xf8\x86\xd9\xb2\xca\x3f\xb3\ \x7a\xd5\x55\x57\x71\xdf\x7d\xf7\x11\x0e\x87\xa9\xad\xad\x65\x7a\ \x7a\xda\x9f\x3e\xb1\x61\xc3\x06\x7e\xfe\xf3\x9f\x33\x37\x37\x47\ \x57\x57\x17\xdd\xdd\xdd\x3c\xfe\xf8\xe3\xaa\x3a\xdf\x57\x6d\xea\ \xf7\x15\x5d\xd7\x25\x93\xc9\x9c\x1b\x8f\xc7\x1f\x7f\xbd\xf7\xe7\ \x0d\x1d\x82\x1f\x0e\x87\x4f\x6b\x6c\x6c\xbc\x4c\xd7\x75\x07\x20\ \x1a\x8d\x7e\x2a\x18\x0c\x1e\x71\xae\xaf\x9a\x60\xa7\xd4\xd3\xd8\ \xd8\x18\xd5\xd5\xd5\x38\x8e\xe3\xe7\x24\x14\xf1\x37\x31\x31\x41\ \x5d\x5d\x9d\x3f\x73\x38\x16\x8b\xf9\x81\x61\xa1\x50\xf0\x6d\xca\ \xfc\xe8\xf3\x43\x66\xd1\xbf\x11\xe3\x6c\xdf\xd0\x29\x31\x85\x42\ \x61\xc7\xc8\xc8\xc8\x8e\x0a\xdd\xec\x45\xa3\xd1\x2a\x29\xa5\xb4\ \x6d\xbb\xcb\x30\x8c\x3f\x3b\x52\xa3\xbd\xb2\x05\xca\x63\x2a\x16\ \x8b\x7e\x90\xa9\x62\x09\xf5\x6b\x9c\xd9\x6c\x16\xcf\xf3\x76\x4b\ \x29\x75\xd7\x75\xdd\x64\x32\xf9\xf7\xe3\xe3\xe3\x3f\x79\xb1\xcf\ \x7e\x23\xc6\xd9\xbe\xa1\x12\x72\x24\xed\x06\xf8\x9c\x7e\x2c\x16\ \xbb\x5a\xd3\xb4\xd8\x8b\x81\xa2\x96\x69\x9a\x3e\x95\x21\x84\x28\ \x00\x7b\x8b\xc5\x62\x56\x4a\x29\x63\xb1\x58\x66\x76\x76\x76\xfb\ \x61\x69\xdd\x63\x79\x04\xc8\xf1\x75\x7c\x1d\x5f\xc7\xd7\xf1\x75\ \x7c\x1d\x5f\xc7\xd7\xf1\x05\xc0\xff\x05\xf4\xe6\xb0\x9e\xc6\x6e\ \xd0\xb8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x3a\x79\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x1c\x1e\xba\x16\x7f\x4d\x00\x00\x20\x00\x49\x44\x41\x54\x78\ \xda\xed\xbd\x79\x9c\x5c\x55\x99\xff\xff\x3e\x77\xa9\x5b\xd5\xd5\ \xdd\xd5\xdd\xe9\x2d\x49\x77\xd2\x21\x1b\x09\x59\x00\x59\x02\x81\ \x08\x88\x40\x40\x10\x46\x5c\x66\x1c\xc1\x19\x01\xf9\x02\x83\xdf\ \x41\xe7\x0b\xe3\x38\x83\xc8\x57\x04\x74\x5c\x58\x64\x40\x51\x91\ \x4d\x04\xd9\x05\x21\x04\x08\x09\xd9\x43\x3a\x0b\x4d\xd6\x4e\xa7\ \xf7\xa5\xba\xf6\xed\xae\xe7\xf7\xc7\xed\xba\x49\x00\x35\x60\xc0\ \xef\xcc\x8f\xf3\x7a\xd5\xab\xb7\xea\x53\xf7\x9e\xe7\x9c\x67\xf9\ \x3c\x9f\xe7\xb9\xf0\xd1\xf8\x68\x7c\x34\x3e\x1a\x1f\x8d\x8f\xc6\ \x47\xe3\xa3\xf1\xd1\xf8\x68\xfc\x8f\x1f\xe2\x7f\xf2\xcd\x9d\x74\ \xd2\x49\x3b\xa7\x4c\x99\x32\x51\x4a\x89\x00\xa4\xad\x20\x25\xa0\ \x48\x50\x24\x42\xbc\x73\x05\x4a\xa5\x52\x78\xc9\x92\x25\x5f\x4c\ \xa7\xd3\x0f\xff\x35\xae\x59\xfb\x20\x26\xad\xaf\xaf\x5f\x94\xcf\ \xe7\x27\x1d\xf4\xae\x10\x02\xcf\xf3\xa8\xa9\xa9\x79\x6e\x70\x70\ \x30\x71\xa8\xae\x43\x55\xd5\xea\x42\xa1\x10\x01\xd8\x63\x0f\x32\ \xf3\x73\x05\x2a\xa3\x3a\x4e\x4a\xc3\x4b\x87\xf0\x72\xfe\xf7\x6e\ \x4a\xc3\x4d\x86\x00\xf0\x3c\x0f\x29\xa5\xf6\xd7\xda\x44\x1f\xc8\ \x07\xd7\xd5\xd5\xdd\xf5\xd9\xcf\x7e\x76\x36\x80\x27\x3d\xdc\x0a\ \x8b\xb0\xa1\x20\xad\xb1\x97\xad\x80\x1c\xdb\x9d\x63\x3b\xd4\x30\ \x0c\x1e\x7f\xfc\xf1\x63\x81\x43\x26\x10\x29\xa5\xb4\x2c\x0b\x01\ \x8c\xb8\x29\x3e\x16\xa9\x24\x24\xab\x38\xf6\x88\x05\x6c\x1f\x5d\ \x4f\x22\x93\xa4\xae\x2a\x42\x6e\xd8\x66\xf8\x77\x75\x07\x6c\x90\ \xff\x51\x02\xb1\x6d\xdb\x18\x1a\x1a\x02\x60\x67\xbe\x9f\x85\x57\ \x81\xed\xed\xbf\x50\x60\x0f\x86\x28\xee\x8c\x62\xee\x8e\x80\x90\ \x54\x55\x55\x81\x2f\xa6\x43\x36\x5c\xd7\xc5\xb2\x2c\x90\x20\x74\ \xf0\x84\xc3\x45\x33\xbe\xcf\x73\x3d\xb7\x71\xeb\x99\xbf\xe7\x47\ \x4f\xfe\x90\x89\xad\x1e\x4b\x06\x9e\xf1\xdf\x37\x26\x8c\xbf\xa6\ \x40\x94\x0f\x68\x5e\xcf\x34\x4d\x4c\xd3\xc4\x76\x5d\x74\x5d\x21\ \x37\x50\xc5\xb7\x3f\xfe\x5b\xce\x9e\x71\x31\x8a\x13\x61\xdc\xe4\ \x0a\x42\x93\xf3\x98\x25\x0b\xcb\xb2\x30\x4d\xf3\xa0\x17\xa2\xa5\ \xa5\xe5\xe0\x2e\xc2\xf3\xa4\x65\x59\xd8\xb6\x8d\x87\x24\x95\x31\ \x39\xfa\xf0\x23\xe9\x48\xaf\x40\x11\x0a\x9f\x38\xfa\x93\x54\x55\ \xc5\x50\x42\x12\xc7\x71\x30\x4d\x13\xc7\x71\xfe\xaa\x76\x4f\x7b\ \x1f\xea\xe8\xc2\x63\x8e\x39\xe6\x5f\x1c\xc7\xf1\x24\x12\x55\xaa\ \xb8\xb6\xf4\x45\xab\x48\x34\x5d\x75\x3b\x3b\x3b\x5b\x4d\xd3\xf4\ \x77\xa9\xe7\x62\x96\x14\xfe\xed\xcc\x3b\xf8\xe9\xfa\x6b\x38\xab\ \xf9\x1b\x4c\x51\xe2\x9c\x34\xeb\x28\xee\xde\x7e\xab\x2f\x08\x55\ \x12\x0a\x85\x90\xf2\xe0\x0e\x48\x6f\x6f\x2f\x6d\x6d\x6d\xab\x1a\ \x1b\x1b\x29\x1b\x6c\x3c\x05\x89\x24\x95\x4e\xd6\x4d\x39\x6c\xca\ \x0c\x45\x51\x40\x08\xa4\x2b\x11\x86\xcb\xdc\xfc\x14\x72\xbf\x84\ \xd3\x7e\xf6\x71\x2a\x42\xd3\x39\xf9\x8e\x93\xd1\x55\x0d\x81\x46\ \x28\x54\xc3\xce\x9d\x5b\x68\x6d\x6d\x45\x4a\x89\xeb\xba\x53\x43\ \xa1\xd0\x82\xf7\xb2\x2e\x15\x15\x15\x54\x57\x57\xaf\xe9\xee\xee\ \x96\x1f\xaa\x40\x2c\xcb\x9a\x7b\xd8\x61\x87\x1d\x97\x48\xf8\xaa\ \xbe\xaf\xae\x8b\xd9\x0b\x75\xac\x81\x08\xce\x48\x18\x91\x8b\xd0\ \xdd\xa3\x62\xdb\xb6\xbf\x4b\x85\x87\x6b\x4b\x66\xb5\xcd\x40\xd9\ \x03\x45\x3b\x4b\xb6\x98\xe3\xa5\xdd\x0f\xe0\x79\xbe\x4a\x11\xaa\ \x0c\xde\x7f\x90\x23\x5c\x5f\x5f\xbf\x60\xda\xb4\x69\x78\x9e\x47\ \x51\x9a\x68\x87\xa7\xa8\x0c\x87\xe8\x5c\xe1\x31\xae\xba\x1e\xcb\ \x32\xd1\x84\xca\xf6\xf1\x5b\x39\xe1\xec\x4a\x5c\xd7\xc3\x1e\xd1\ \x71\x07\xa3\x58\xc3\x50\x93\x19\x87\x9d\x52\x28\x16\x4a\xa8\xaa\ \x40\xd3\x34\x72\xb9\x1c\xae\xeb\xca\x93\x4e\x3a\xe9\xfa\xda\xda\ \xda\xeb\x01\x1c\xe9\xa2\x57\x79\xe0\x28\x60\x8f\xd9\xbf\xc0\xf6\ \xc9\x40\xcd\xed\xde\xbd\x9b\xb5\x6b\xd7\x46\x80\xd2\x87\x6e\x43\ \x4a\xa5\x12\xa6\x69\x92\x73\x4b\x44\x8e\x2d\xa2\x56\x2b\x44\xaa\ \x73\x30\x33\x87\x66\x08\xc4\x5a\x27\xd0\xc9\x9e\xe6\xa1\xaa\x2a\ \xa9\x5c\x1a\x45\x51\x51\x15\x1d\xdb\x33\xa9\xd2\x2b\xf1\x24\x58\ \xa6\x89\xd0\x08\xde\x7f\xb0\x8e\x99\xe7\x79\x94\x4a\x25\xf0\x24\ \x9d\x7a\x37\x0b\x8f\xd6\x81\x22\x46\x3c\x83\xbd\xc7\xc2\xb2\x2d\ \x3c\x54\x8c\x98\xc4\x35\x05\xf5\xea\x6c\x1a\x67\xd6\xd0\x51\xb3\ \x8a\x8a\xd9\x2a\x20\xd8\xf4\x23\x9b\xa9\x2d\x87\x53\x55\x55\x45\ \x6b\x6b\x2b\x00\x83\x83\x83\xa2\xac\x42\x55\x14\x76\x36\x6e\x63\ \xc1\xd9\x51\xbc\x31\x1b\xe8\x59\x02\x7b\xd0\xc0\xea\x89\x60\x76\ \x85\xc1\xf5\xb5\xbe\xae\xeb\x78\x9e\xf7\xe1\xdb\x10\x21\x04\x96\ \xe5\xeb\x7d\xc7\x71\x50\x55\x05\x37\x5d\xcf\x4d\xa7\x3f\xc3\x95\ \x47\xfd\x17\x7a\xb1\x85\xd6\xd8\xd4\xe0\x3d\x9e\xe7\x11\x8d\x86\ \xb8\xe5\xf1\xef\xf2\x37\xd3\xaf\x61\x7c\x53\x2d\x49\xaf\x93\x73\ \x66\x5c\x82\x22\xf7\xcd\xf5\x1e\x4f\x08\x52\xca\x31\xdb\x63\x21\ \x3d\xdf\x65\x3b\xa7\xf5\x1b\x2c\x9e\xf6\x0f\x98\xb6\x3f\xa7\x65\ \x9a\xa8\xaa\x82\x9a\x6f\xe2\xfa\xb3\xfe\x0b\x37\x3e\x81\x93\x9b\ \xbe\xcc\x37\x4f\x7a\x88\x90\x6a\x50\x32\x4b\x64\x32\x19\x86\x86\ \x86\x18\x1a\x1a\x62\x53\xec\x75\xe4\xc2\x1d\x38\xa6\x87\x69\x9a\ \x58\xa6\x85\xa2\x4b\x1c\xc7\x65\x6e\xf4\x5c\xbe\x76\xe2\x8f\x89\ \x44\x42\xd4\xb4\x54\x52\x7d\x52\x12\xcf\xf0\x37\x66\xf9\x3e\xff\ \x6a\x46\xbd\xbc\x83\x2c\xcb\x42\x08\x98\xa0\x1e\xc5\x8a\x9e\x27\ \xf9\xed\xf2\xdf\xf0\xa5\x23\xbf\x89\xeb\x3a\xa4\xd3\x69\x52\xa9\ \x14\xf9\x42\x1e\xc7\xb3\x49\xd6\x2e\x63\xeb\xee\xdd\xf4\xe4\x36\ \x43\x6d\x3f\x3f\x5a\x7b\x39\xe9\x64\x8e\x54\x3a\x4d\x3a\x9d\x26\ \x93\xc9\x20\x84\xf8\xb3\xc7\x64\xfc\xf8\xf1\x41\xbc\xe0\x0b\xd2\ \x02\x21\xd1\xc3\x1a\x9f\x9c\x73\x3e\xab\x07\x9f\x41\x7a\xbe\x0a\ \xb4\x6c\x1b\x3d\xac\x23\xac\x18\xbd\xc5\x1d\xb4\xf7\xaf\xe0\xb0\ \xfa\x79\x34\xd5\x34\xa1\x0a\x1d\xd7\x75\x71\x1c\x27\xd8\x14\x91\ \x2a\x81\xaa\x8a\xe0\xf7\xb6\x6d\x23\x74\x41\x85\xde\xc0\x95\x9f\ \xf8\x26\x3f\x7c\xf6\x07\x5c\x7a\xec\xad\x5c\xb3\xe8\x1e\xda\x1a\ \x67\xe0\xb8\x0e\x8e\xe3\xbf\x3c\xcf\x43\x51\x94\x0f\xdf\xa8\x97\ \x4f\x88\x6d\xdb\x38\xd8\x08\xa1\x10\xd6\x23\xb8\x9e\x8d\x2b\x5d\ \x92\xc5\x61\x14\x45\x0b\xbc\x15\xd7\x71\x91\x8a\x87\x6b\x49\x9e\ \xeb\xba\x85\xd2\x56\x97\xe2\x80\x20\xdf\xa5\x31\xb4\xb1\x88\x11\ \xd1\x41\x82\x65\xda\x54\x46\xab\x6e\x9e\x3b\x67\xee\xe8\x1f\xc3\ \x0f\x52\xa9\xd4\xeb\x3d\x3d\x3d\x77\x97\x05\x32\x38\x38\xe8\x7b\ \x66\xa3\x2e\xab\x6f\xca\x70\xfe\x0f\xcf\x63\x30\x91\x43\x9a\x05\ \x24\x1e\x02\x81\x7c\xda\x65\xad\xda\xc1\xe5\x8f\x5c\xc3\x68\x36\ \xc1\xe5\x77\x5f\xc1\x9a\x37\x5e\xc3\x74\x8b\xbe\x5d\xd9\xef\x64\ \x6a\x86\xc2\xf6\x9f\xbb\x54\xc7\x72\x60\xfa\x66\x42\x5f\x51\xc5\ \xea\x57\x93\xcc\xbd\x76\x1e\xd5\x91\x18\x5f\xfa\xd1\x57\x71\xa5\ \x8b\xa1\x46\xd0\x23\x1a\x42\xf8\x1b\x54\x55\xd5\x43\xe2\x2e\x6b\ \xef\xf7\x84\x58\x96\x85\x2d\x1c\x34\x45\x63\x30\xbf\x97\x33\x62\ \x0b\xe8\x89\x99\x24\x0a\x7e\xfc\xa1\x69\xfe\xd4\x75\x05\x95\xa5\ \xd7\x8d\x62\x67\x64\x10\x04\xda\xb6\xcd\xa2\x45\x8b\x68\x98\x6d\ \xa2\x0a\x85\x4e\x6d\x2f\x47\x2c\xd2\xb1\xfb\x2a\xce\xb6\x07\x22\ \xc8\x74\xe8\x5d\x41\x9d\x2d\x5b\xb6\x00\xdc\x5d\x56\x59\x93\x27\ \x4f\x26\x12\x89\x20\x84\xa0\xcf\x19\xa1\xee\xfc\x21\x26\xca\x2a\ \x9c\xfe\x0a\xac\xde\x0a\xdc\x78\x08\xe4\xbe\x89\x6a\xaa\xc6\xb1\ \x77\xef\x5e\x22\x54\x51\x1b\x6e\xc4\x73\x07\x71\x1c\x27\xf0\xee\ \xd4\x9c\x47\x7d\x63\x3d\xe3\xea\xc6\xa1\x28\x0a\x3b\x0b\xfd\xcc\ \xfc\x5c\x91\x58\x4c\xc7\x4d\xc7\xb0\x7a\x23\x38\x83\x35\x58\xfd\ \x61\x14\x45\x04\xaa\x13\xa0\xbb\xbb\xfb\xaf\x2b\x90\x52\xa9\x84\ \xad\x49\xa4\x0c\x63\xd7\x6c\x27\x31\xec\x70\xd2\xc7\x8e\xe4\x57\ \x9b\x6e\xa0\x2f\xd9\xc7\x59\x67\x9d\xc5\xa5\x97\x5e\xca\xf2\xe5\ \xcb\x69\x6f\x6f\x67\x68\x68\x08\xd7\x75\x71\x5d\x97\x81\x81\x01\ \xca\x71\x4a\xca\x29\x10\x3d\x39\x4b\xa8\x39\x8a\xd7\x90\x44\x3b\ \x4a\x10\x12\x15\x38\x25\x0f\x55\x68\x0c\x3d\xd0\xe8\x63\x4f\xfb\ \xdd\x7c\xf9\xfb\x72\xec\xa0\x08\x85\x2d\xd6\x1e\xe6\xd5\x36\x53\ \xb2\x0a\xd4\xcc\x0b\x51\x98\xdd\x0b\x48\x84\x13\x22\xbd\xaa\x9a\ \xe2\x8e\x30\x00\x21\x11\xe6\xba\x57\xcf\x23\x5b\xca\x60\xd9\x56\ \xa0\x72\x00\x2a\x84\x82\x3b\x36\xa7\x10\x82\xbe\xd2\x28\x27\x37\ \xd6\x51\x2c\xba\x1c\x39\xe3\x38\xb6\xd6\xac\x40\xce\x75\x11\xa8\ \xe4\x36\x45\xc9\xac\xa9\x02\x21\x51\x14\x05\xcf\xf3\x3e\x78\x81\ \x8c\x1f\x3f\x9e\x81\x81\x81\x03\x8d\x8e\xa2\x38\xc9\x64\x92\x54\ \x2a\x85\xad\x79\x94\xac\x18\x8e\x90\xdc\xf5\xc6\xd7\xf9\xc6\x19\ \x37\x23\xc3\x26\x96\x5b\xe0\xfa\xeb\xaf\x67\xd9\xb2\x65\x7c\xfe\ \xf3\x9f\x47\xd7\x75\x22\x91\x08\x3b\x76\xec\xa0\xb2\xb2\x92\xf6\ \xf6\x76\x5f\xa0\xb6\x8d\xed\xda\x18\x9a\x4a\x6a\x48\xe5\x07\x17\ \x3e\xcd\x60\x7a\x80\xfb\x36\x5d\xcf\xe2\x79\x7f\xc3\xf3\x5d\xf7\ \x8e\xb9\xc5\xbc\x43\x20\x65\xe1\x5a\x96\x85\x22\x04\x8a\xa2\x60\ \xd9\x36\x5f\x3d\xfc\x67\x64\x44\x17\x9a\xe1\x91\x1c\x75\x58\x91\ \xf8\x39\x49\x7c\x7b\x20\xa5\xc4\x93\x1e\xdd\xdb\x06\x48\xec\xb4\ \xc9\xc6\x4b\x38\xd5\xfb\x3c\xc2\xa8\x50\x02\x35\x26\x84\x00\x01\ \x25\xd3\xe4\x82\xe6\xef\x31\xaa\xb7\x73\xcd\x82\x7b\x78\x65\xf3\ \xcb\x64\x22\x1d\xb4\xb3\x0b\xdb\xb6\x90\x48\x34\x4d\xc3\xb6\x6d\ \x54\x55\x7d\xcf\xce\xc9\x7b\x12\xc8\xc0\xc0\x00\x6d\x6d\x6d\xff\ \xbb\xba\xba\xfa\x68\x3f\x00\x13\x8c\x26\x46\xe7\xab\xaa\x8a\xa2\ \x28\xe8\x52\xc1\xc9\x48\x72\x03\x2e\x76\x9f\xe0\xeb\xff\xf2\xcf\ \xa4\x77\x49\x4a\xa3\x82\xaf\x7c\xe5\x2b\x7c\xfb\xdb\xdf\xe6\x57\ \xbf\xfa\x15\xdb\xb7\x6f\x47\x4a\x49\x22\x91\x20\x16\x8b\xd1\xd9\ \xd9\x49\x7d\x7d\xbd\x1f\x19\x4b\x1b\x01\x1c\x1e\x5e\xcc\x9a\xc1\ \xa7\xd9\xd3\x35\xca\x39\xe3\xff\x0f\x0b\x0f\x3b\x96\x35\x43\xcf\ \xb2\xd3\x2c\xbd\xab\x40\xca\x27\xc4\x71\x1c\x14\x04\x4a\xa5\xa0\ \x73\x67\x96\x23\xcf\x9b\xcd\x65\xbf\xbd\x9c\xfb\xfe\x76\x1d\xc3\ \x75\x23\x78\x03\x23\x3c\xe4\xfc\x0e\xd3\x1c\xfb\x7f\xcd\x63\xe5\ \x77\x53\xa8\xba\x40\x11\x0a\xc5\x62\x91\x62\xb1\x08\x40\x95\x1b\ \xc2\x75\x55\xff\xd4\x29\x0a\x42\x48\x46\x86\x4a\x9c\xfd\xe9\x4f\ \x72\xe5\xd3\x37\x70\xe6\xd4\x8b\x99\xde\x30\x8f\x94\x6e\xb0\xc1\ \xdd\x8e\x69\xfa\x0e\x85\x94\xfe\xeb\x43\x31\xea\xe3\xc6\x8d\xfb\ \xc2\xb4\x69\xd3\x8e\x07\x70\xa5\xc7\xfa\x3d\x6f\xa0\x0a\x95\x89\ \x13\x27\x62\xdb\x36\xe9\x67\x2d\x52\xd2\x43\x4a\x81\x94\x61\x34\ \x40\xd3\x2d\xfa\xfa\xfa\xb8\xf4\xd2\x4b\xdf\x75\xce\x5c\x2e\x47\ \x2c\x16\xf3\x5d\x67\xe1\x20\x84\x42\xa5\x51\x83\xe5\x16\x71\x3d\ \x97\xba\x86\x10\x5d\xa9\xad\x64\xac\x04\x96\xa5\xa1\x68\xe2\x1d\ \x02\x51\x14\x25\x38\x25\x02\x81\xa2\xa8\xb8\x2e\x68\xaa\x8a\x10\ \xfe\xc2\x38\x8e\xc3\xea\x9e\xdf\xe3\xb9\x2e\x96\xe5\x05\xae\xf2\ \x9c\xf9\xb3\xe9\xe8\xe8\x20\x16\x8b\x05\xaa\x13\xc0\xf1\x94\x7d\ \xa7\x4e\x51\xc0\xd8\x87\x7e\x0a\x45\x41\x08\x41\xb6\x94\x65\xc3\ \xc8\x92\x60\x2e\xc4\xbe\xe0\xf0\x60\x91\x86\xbf\x48\x20\x9e\xe7\ \x09\xd3\x34\x91\x52\xf2\x96\xd9\x4b\xed\x14\x97\xe3\x9a\x8e\xe7\ \x9c\x73\xce\xe6\xe4\x93\x4f\xe6\xa7\x3f\xfd\x29\x5b\xb7\x6e\x65\ \xfe\xfc\xf9\xac\x5c\xb9\x92\x99\x33\x67\xb2\x66\xcd\x1a\xe2\xf1\ \x38\xe1\x70\x98\x7c\x3e\x1f\xec\x9c\x8c\x52\x62\xfc\x1c\x85\xfa\ \xc4\x54\x8a\xd9\x9c\xef\x18\x28\x0e\x8a\xa2\x32\x9c\xeb\x61\x7e\ \x74\x2e\x03\xc2\x64\xb4\xd0\xcf\x84\xc8\x44\x84\x14\x58\xa6\x85\ \x70\xdf\x79\x42\xf6\x07\x0f\x05\x02\x01\x34\x35\x45\xc8\x65\x1c\ \xa4\xeb\xab\x26\x17\x9b\xb0\x52\x85\xeb\x66\x30\x4d\xb7\x0c\x8b\ \x80\x84\x49\x93\x26\xa1\x69\x1a\xae\xeb\x06\xf3\x2a\x1b\x24\x39\ \x27\x03\x58\xbe\xca\x0a\x43\x7d\x7d\x84\xcd\x3b\x77\x20\x2d\x1d\ \x45\x51\x48\x17\xe3\x1c\x56\x7d\x34\x3b\xdc\x17\xb0\x2c\x5f\x65\ \x95\x6d\xc7\x87\x22\x10\x29\xe5\x3e\xfd\xeb\xf9\xae\xa4\x10\x82\ \x9a\x9a\x1a\x22\x91\x48\xe0\x7f\x87\x42\x21\x8e\x3a\xea\x28\xf6\ \xee\xdd\xcb\xd1\x47\x1f\xcd\xba\x75\xeb\x30\x0c\x83\x9a\x9a\x1a\ \xd2\xe9\x34\x42\x08\x52\x86\xc7\xb4\x4f\x45\x08\xaf\x9e\xc6\x96\ \xd5\xeb\x7c\xf0\x51\xf7\x50\x44\x98\x41\x63\x39\x13\xf5\x8b\x68\ \x9a\x3f\x9d\x7b\xd6\xff\x1b\xe7\x86\xfe\x91\xaa\x70\x2d\x25\xab\ \x0f\xe5\x5d\x04\x22\x84\x1f\x2f\x94\x4a\x25\x94\x31\x2c\x63\xc2\ \xc4\x6a\x7e\xf2\xca\xb7\xb8\xeb\xc2\x65\xdc\xf4\xda\xc5\x48\x33\ \x42\x63\x4d\x33\xb6\xd3\x45\xa9\x64\xf9\xaa\xc5\x15\x8c\x3f\x5d\ \x62\x0e\x55\xe1\x66\x75\x9c\xa4\x06\xb6\x82\x50\xfd\x13\x35\xe2\ \x24\x82\x13\xe2\x54\xba\x54\x55\x86\xb9\x73\xdd\xff\xe6\xa7\x9f\ \x5b\xca\x7f\x6d\xb8\x86\x1d\x99\x0e\x5a\xf4\x56\x6c\xd7\x22\x9f\ \x2f\x80\xf0\x05\xa2\x28\xca\x87\x76\x42\x28\x9f\x10\x4f\x78\x28\ \x42\xa1\xbd\xbd\x9d\xd1\xd1\x38\xc3\xc3\xc3\x14\x0a\x05\x00\x3a\ \x3a\x3a\x02\x5d\xea\xba\x6e\xb0\x6b\x4a\xa5\x12\x86\x61\xf8\x49\ \x28\xdd\xa3\xc2\x30\xd8\x34\xf4\x3a\x89\x44\x8e\x62\xb1\x88\x19\ \x92\x14\xad\x18\x46\x34\xc2\xb5\xbf\xbb\x98\xbb\xbf\xf2\x5b\x32\ \xde\x20\x8f\x75\xfc\x88\x52\xca\x63\x74\x64\x14\xcd\x50\xca\x6a\ \xca\xdb\x5f\x20\xc5\x62\x91\x54\x2a\x85\x40\x50\x30\x25\x25\xcb\ \xa4\xcb\x7b\x85\x5f\x2f\xbf\x87\x86\xda\x09\xac\x8b\x2f\xc5\x4b\ \x08\xba\x37\x26\xc9\xa7\x7d\xf7\x56\xc3\xa0\x75\x41\x05\xfd\xf1\ \xbd\xfe\x42\x86\x24\x89\x57\x63\x14\x3b\xa2\x41\x90\x58\x2c\x16\ \xfd\xf9\xab\x3c\x2c\xd7\x82\xaa\x38\x5f\xfb\xed\xe7\x39\x72\xc6\ \x0c\x52\xb9\x61\x92\xf1\x38\x3b\x96\x24\xc9\xe7\xfd\x39\x85\x10\ \x18\x86\xf1\xe1\xa0\xbd\xe5\x88\x18\x40\xea\x12\x90\xd4\x8f\x1b\ \x47\x3c\x1e\x47\x51\x14\x2a\x2b\x2b\xff\x64\x10\xd9\xdf\xdf\x4f\ \x32\x99\x44\x51\x14\x72\xc2\xa1\x64\x57\x10\xad\xcf\x93\x56\x55\ \x54\x55\x45\x43\x82\x10\x08\x45\x50\x69\x48\x2e\xfa\xe6\xa7\x19\ \xed\xb0\x49\xed\x2e\x20\x14\x81\x51\xa1\x07\xf3\x19\x86\x71\xf1\ \x84\x09\x13\xf6\xf4\xf7\xf7\xdf\x2a\x84\x40\x1d\x9b\x43\x11\x0a\ \x46\xc1\x45\xba\x92\x64\x07\x3c\xbc\xfd\x1e\x86\x37\x5b\x98\x69\ \x17\x31\x16\x2f\x68\x9a\xe6\x67\x03\x3d\x97\xd3\x26\xfc\x23\x62\ \xa2\x43\x7a\x58\xf0\x4a\xf2\x36\x46\x6c\x5f\xf5\xb9\xae\x8b\xa2\ \x28\x68\x9a\x86\xa2\x28\x44\xd3\x2e\xe9\x5e\x87\xfe\x0d\x26\x89\ \x1d\x9b\x78\x7e\xef\xfa\xfd\x5c\x5b\x81\xae\xeb\x48\x29\x83\xa0\ \xf0\x50\x9c\x10\xf5\xcf\xbd\xa1\xa1\xa1\xe1\x52\x55\x55\x27\xba\ \xae\x4b\x56\xb5\x98\xff\xe9\x28\x67\x1c\xfd\x0f\x94\x66\x6c\xe2\ \xb2\xcf\x5c\x87\xd1\xa2\x30\xfe\x38\x41\x32\xba\x87\xee\x35\x19\ \xf2\x85\x3c\x85\x42\x81\x81\x81\x01\x2b\x9b\xcd\x5a\xb6\x6d\xab\ \x8e\xe3\x08\x29\x25\xc5\x88\xc7\xec\x8f\x57\x92\xed\xb5\x29\xec\ \xd1\x88\x44\x22\x18\x42\xa3\xd8\x01\x5d\x2f\x9a\x0c\xac\xb4\xc9\ \x74\x4a\x9c\xac\x8f\xbe\xaa\xaa\x5a\x4e\xc5\x22\x84\x60\xe2\xc4\ \x89\x24\x12\x89\x64\x38\x1c\x56\x33\x99\xcc\xce\x58\x2c\x76\x7c\ \xb1\x58\x54\x9a\x9b\x9b\x09\x25\x25\x7b\x5f\xb2\x19\xdd\xec\x52\ \xe8\x07\x5c\x05\x4d\x53\xc7\xbc\x25\x7f\x3e\x21\x04\x9a\x30\xc8\ \x1f\xdd\xce\xff\x3a\xf6\x7b\x44\x8d\x2a\x06\x0a\xbb\xd9\xbd\xb9\ \x97\x5c\x9f\x87\xe3\x38\x14\x0a\x05\xc6\x8f\x1f\xcf\x55\x57\x5d\ \x45\xba\x6f\x84\xe4\x46\x0d\x67\x28\x44\xc8\xad\x20\x52\x11\xa1\ \xa2\xa2\x02\x45\x51\x08\x87\xc3\x01\xa0\x68\x18\x06\xf1\x78\xfc\ \x51\x55\x55\x1f\x2b\x14\x0a\xde\x07\x2e\x10\x60\xa2\xe7\x79\xe4\ \x0d\x87\x39\xa7\x56\x93\x74\x07\xb9\xee\x9c\x3b\x18\x12\x6f\xb1\ \x31\xf5\x02\x0b\xe7\x9c\xca\x9e\xc4\x56\x06\xd6\xfa\xd8\x96\xa2\ \x28\x4c\x9f\x32\x53\x9d\x75\xf8\x6c\x3d\x91\x4a\x88\x52\xa9\x44\ \xa9\x54\xa2\xca\x32\xc8\x74\xb9\xf4\xaf\xcb\x33\x67\xd6\x3c\x6e\ \xbd\xf5\x56\xae\xb8\xe2\x0a\xf6\xee\xe9\x26\x16\x8b\xb1\x60\xc1\ \xf1\x84\x42\x21\xe6\xcc\x99\xc3\xcc\x99\x33\x31\x4d\x93\x29\x53\ \xa6\x30\x69\xd2\x24\xe2\xf1\x38\x91\x48\x84\xda\x58\xdd\x2c\x4f\ \xba\x17\xcc\x99\x33\x67\x61\x32\x99\x54\xee\xbe\xfb\x6e\x2e\xbf\ \xfc\x72\x6a\x6a\x6b\xd1\x43\x3a\xf3\xe6\xcf\xa3\xb2\xaa\x92\xb9\ \x73\xe7\x00\x30\x6f\xde\x3c\xa6\x4d\x9b\x86\x94\x92\x48\x24\x42\ \x3e\x5b\x64\xea\xe2\x6a\xce\x9e\x71\x31\xd9\x42\x8e\xe7\x3a\xef\ \x22\xb1\xdd\x09\x04\x52\x2c\x16\x79\xf9\xe5\x97\x91\x52\x72\xd2\ \xc9\x27\x91\x2f\xe4\x99\x35\x7b\x16\x55\x55\x55\xcc\x9b\x37\x0f\ \x80\x73\xce\x39\x87\xe9\xd3\xa7\x07\x73\x16\x8b\x45\xb6\x6d\xdb\ \x36\xe7\x2f\x15\xc6\x41\x81\x8b\x8e\xe3\x30\x3a\x3a\xca\xe8\xe8\ \x28\xe9\x4c\x86\xa2\x55\xa4\x10\xd9\xc5\xf7\x9f\xfa\x2e\x9a\xae\ \x90\x55\xba\x79\xea\xad\xbb\xe9\xeb\x48\x92\x4c\x26\x48\x24\x12\ \xa4\x53\x19\xd4\xd3\x76\x23\x3e\xbe\x1d\x19\x29\x71\xc2\x09\x27\ \xb0\x7e\xfd\x7a\x3e\x76\xcc\xd1\xc4\xec\xf1\x54\x68\xd5\x4c\x99\ \x32\x85\x64\x32\x49\x73\x73\x33\xe3\xc7\x8f\xa7\xb6\xb6\x96\xa9\ \x53\xa7\x32\x7d\xfa\x74\x14\x45\x61\xf2\xe4\xc9\x68\x9a\x46\x38\ \x1c\xa6\xb1\xb1\x31\xd8\x8d\xea\xcc\x38\x42\x11\x54\x54\x54\xe0\ \x79\x1e\x8d\x8d\x8d\xc4\xe3\x71\x26\x4d\x9a\x84\xeb\xba\x4c\x98\ \x30\x81\x86\x86\x06\x66\xce\x9c\x19\xc0\x34\x75\x75\x75\x9c\x7e\ \xfa\xe9\x14\x0a\x05\x54\x45\xa1\x52\xaf\xc5\x76\x4d\x2c\xcf\xa4\ \xda\x68\x08\xbc\xb5\xb2\xda\xea\xea\xea\xc2\x75\x5d\x86\x87\x87\ \xf1\x3c\x8f\xda\xda\x5a\xf2\xf9\x3c\x9a\xa6\x91\x4c\x26\xe9\xeb\ \xeb\xc3\x71\x1c\x9a\x9b\x9b\x29\x95\x4a\xc1\x49\xfe\x50\x68\x40\ \x33\x67\xce\x5c\x63\x9a\xe6\x71\x8a\xa2\x90\xaa\x74\xf8\xd4\x37\ \x1b\x31\x0c\x41\x6a\xb7\xc3\xf0\x16\x93\xf8\x5b\x16\xf9\x61\xf7\ \x00\x6c\x47\x55\x35\xce\xb9\xe2\x54\xf4\x79\x7b\x78\xf1\x3b\x7b\ \xf8\xc9\x0d\x3f\x23\x9d\x4e\x73\xef\xbd\xf7\x52\x53\x53\x43\x67\ \x67\x27\xae\xeb\x72\xec\xb1\xc7\x92\x4c\x26\xe9\xef\xef\x0f\x9c\ \x01\xcf\xf3\xde\xf1\x2a\xbb\xa6\x95\x95\x95\x0c\x65\x7a\x50\x4c\ \x83\x19\x33\x66\x32\x3c\x3c\x4c\x65\x65\x25\x0b\x16\x2c\x60\xcd\ \x9a\x35\x7f\xf6\xff\x1d\xc7\x21\x97\xcb\xb1\x6b\xd7\x2e\xae\x7f\ \xf9\x73\x14\xf3\x50\x5d\xa3\xb1\xf2\x81\xdd\x0c\xac\xdd\x67\x43\ \xde\x4b\x5e\xbd\x7c\x4a\x56\xad\x5a\x25\x3e\x14\xa3\x5e\x1e\xcd\ \xcd\xcd\x18\x89\x24\x1b\x6f\x2e\xe2\x94\xe4\x18\x6b\x44\x22\xd1\ \x30\x0c\x35\xb8\x38\xcf\xf3\x50\x04\x7c\xe6\xd8\xbf\x27\xde\xb4\ \x89\x57\x42\x77\xf2\xfd\xef\x7f\x9f\x6f\x7e\xf3\x9b\x64\x32\x19\ \x22\x91\x08\xb6\x6d\x53\x55\x55\x45\x7b\x7b\xbb\x7f\xf3\x08\x3c\ \x57\xe2\x49\x17\x21\x14\xdf\xb0\x2a\x1a\x9e\x94\x28\x42\x09\x22\ \x75\xcb\xb2\x68\xaa\x6e\x65\x64\x64\xc4\x8f\x01\xa4\xc4\xb1\x1d\ \x96\xbd\xf2\x1a\xae\x74\xd0\x14\x1d\x4f\xfa\x71\x8d\x82\x8a\x16\ \xd2\x82\x6d\x27\x3c\x81\xeb\x4a\x9c\xa2\xc7\xcf\x97\xdf\x49\x63\ \xb4\x85\xcd\x85\xe5\x14\x6d\x95\x3d\x6f\xc4\x29\x26\xfd\x20\x33\ \x1c\x36\xd0\x09\x53\x74\xf2\x44\x42\x11\x2c\xdb\xf6\x6d\x11\x3a\ \x8a\x2e\x0f\xd8\xc2\x41\x7c\x95\xc9\x7c\x78\x39\x75\xdb\xb6\xb9\ \xfa\xea\xab\x59\xb4\x68\x11\x8e\xe3\xf0\xe8\xa3\x8f\x92\xc9\x64\ \x82\xa0\xaf\x50\x28\x30\x7d\xfa\x74\xde\x7c\xf3\x4d\x12\x89\x04\ \xf5\xf5\xf5\x6c\xdd\xba\x15\x4d\xd5\x58\xd3\xf3\x1c\x21\xcd\x20\ \x97\xcb\xf1\xf5\xaf\x7f\x9d\x42\xa1\x40\x4d\x4d\x0d\xd1\x68\x94\ \xad\x5b\xb7\xd2\xd8\xd8\xe8\xab\x0b\xc5\x65\xce\xe7\x22\x1c\x3b\ \xee\x42\xcc\x70\x1f\xa9\xbe\x30\xeb\x7b\x5e\xe5\xf4\x63\x4e\x66\ \xdd\x8e\x57\xd9\xf3\x8c\x83\xa2\x41\x43\x43\x03\xc5\x62\x31\xf0\ \xfc\x5c\xc7\xa1\xdb\xeb\x67\xde\x19\x95\x5c\x71\xc2\xcd\xfc\x62\ \xe3\xb7\x38\xa5\xf1\x32\x56\xed\x7a\x95\x7c\xc5\x36\xb6\x3c\x90\ \x21\x9f\x2d\x20\x10\xe4\xc6\x79\x2c\x38\x3b\x86\x18\xf6\x78\xfc\ \xf9\x9f\x92\xee\x76\x31\x47\x20\xdb\xe7\x60\xe7\xf7\x79\x4a\x9e\ \xa5\x70\xfa\x1d\x2d\xfc\xe8\xec\xdf\xf3\x99\xff\xfc\x24\xff\xf2\ \xe9\x7f\x47\x91\x21\x36\x24\x7f\xc7\x0b\xff\xf5\x06\xa5\x3e\x3d\ \x10\xca\x4b\x2f\xbd\xd4\x0c\x0c\x1f\x4a\xb6\xcc\x41\xb9\xbd\x93\ \x27\x4f\xa6\x58\x2c\x32\x73\xe6\x4c\x14\x45\x61\xda\xb4\x69\x54\ \x56\x56\x52\x55\x55\xc5\x53\x4f\x3d\x15\x18\xe2\x4c\x26\xc3\xc6\ \x8d\x1b\x09\x85\x42\x08\x04\xba\x88\x50\x74\xf2\xec\xdd\x35\xe2\ \xbb\x91\xd1\x68\x80\x13\x95\xed\x83\x6d\xdb\x48\xcd\x63\xe2\x91\ \xd5\xbc\x35\xf8\x2a\x3f\xb8\xe0\x01\x4c\x25\xc5\x7f\x3c\xbb\x86\ \xc5\x27\x9f\x4d\x9f\xda\x4e\xef\xf3\x69\xd4\x90\x4f\xa6\x2b\xc3\ \xe5\x96\x65\x11\x0e\x47\x30\xea\x1c\x5a\xe6\xd7\x70\xc6\x19\x67\ \xb0\x54\xf9\x21\xc7\xb7\x9e\xc8\x50\xa4\x8b\xe1\xe8\x5e\xba\xaa\ \x3c\x0c\x3d\x4c\x43\x43\x03\xc3\x83\x43\x74\x3d\x06\x42\x11\xc4\ \x55\x90\x63\xe6\x53\x78\x1a\x46\x58\x04\x2a\x53\x95\x1a\x8a\x5d\ \x85\xc4\x25\x4b\x2f\x4d\x35\xcd\x3c\xbf\xfa\x55\x76\x2a\x1b\xf1\ \xc6\xd4\x1e\xc2\xf7\xfc\xaa\xaa\xaa\xc8\x66\xb3\x87\x94\xba\xf4\ \x67\x05\x12\x89\x44\xb8\xe9\xa6\x9b\x38\xf7\xdc\x73\xf9\xde\xf7\ \xbe\x47\xa9\x54\x0a\x74\x72\x59\x3f\xf7\xf6\xf6\x1e\x60\x03\x14\ \xa1\xb0\xec\xad\xa5\xcc\x3d\xfe\x44\xd6\xb6\x75\xe3\x0c\x86\x89\ \x46\xa3\xa4\xd3\xe9\x03\xd2\xb5\x89\x44\xc2\x0f\xc6\x42\x12\xcb\ \x0d\x53\xd1\x58\xe2\x7b\x7f\xb8\x86\x1b\x3f\xf3\x13\x8c\x4a\x87\ \x5f\x6e\xfc\x0f\xe2\x03\x26\xa9\x74\x12\x45\x13\xd8\xb6\x1d\xc4\ \x13\x65\xbe\x95\x94\xe0\x78\x26\xb9\x62\x0e\x2b\x6b\xa0\x1a\x16\ \xaa\xaa\x53\x1f\x6a\xa3\x64\x6e\xe0\xb6\x1f\xdf\x41\x7d\x7d\x3d\ \xab\x56\xad\x62\xe3\xc6\x8d\x84\xc3\x61\x7a\x7a\x7a\x68\x6c\x6c\ \xa4\xab\xab\x8b\xd9\xb3\x67\x63\x59\x16\x1b\x36\x6c\xa0\xa2\xa2\ \x82\xbe\xae\x01\x14\x0d\x54\x55\xc7\x71\x05\xae\x74\x89\xe8\x61\ \xa4\xe7\xe1\xd8\x0e\xa6\xe5\x93\x1b\xca\xc1\xee\x87\x4e\x03\x72\ \x5d\x57\xaf\xac\xac\x64\xe9\xd2\xa5\xc1\x05\x94\x8d\x5e\x39\x30\ \x13\x12\xf6\x4f\x29\x3b\xb6\xc7\xda\xc4\x23\x74\xf7\x45\x48\x0d\ \x65\x49\xa7\x0b\x54\x55\x55\x51\x57\x57\x17\x08\xa4\x1c\x50\x79\ \x9e\x87\x82\x44\x0b\x0b\x8a\x09\x97\xc1\x9d\x5b\x39\xeb\xcb\x27\ \x91\xeb\xf5\xb0\xf3\x12\x2b\xe3\xa2\x85\xf6\xc5\x23\xe5\xcd\x50\ \x2a\x95\x90\x9e\xc4\x71\x3c\x22\x51\x95\x6b\x9f\xfd\x2c\x37\x9e\ \xf9\x30\xbf\xd8\x72\x1d\x83\xfa\x4e\x1a\xf4\x06\xa4\x84\x71\xe3\ \xc6\x91\xcd\x66\x69\x6d\x6d\x65\xdd\xba\x75\xcc\x9f\x3f\x1f\xcf\ \xf3\x98\x3d\x7b\x36\x43\x43\x43\xe4\xf3\x79\xda\xda\xda\x98\x35\ \x6b\x16\x0f\x3c\xf0\x00\x42\x51\x70\x34\x3f\xfa\xff\xdb\xa3\xff\ \x89\xbc\xec\x47\xa2\x72\xc6\x94\x7f\x60\xab\x73\x27\xd6\x98\x40\ \x0e\x55\x86\xf0\x3d\x7b\x59\x55\x55\x55\x0b\x3c\xcf\xab\x79\x9b\ \x67\x51\xdb\xda\xda\xfa\x50\x2e\x97\x43\x48\x70\xa7\x08\x8e\x3b\ \xb7\x9a\xfc\x90\x4b\x7e\xd8\xa5\x30\xe4\x11\xa9\xd2\x29\xa5\x3d\ \x92\xbb\x6c\x3c\xe9\x32\x79\xf2\x64\x74\x5d\x27\x97\xcb\x61\xdb\ \x36\xc3\xc3\xc3\x84\x42\x21\xe6\xcd\x9b\x47\x5f\x6f\x1f\x96\x6d\ \xe3\x99\x72\x8c\x08\xed\x3b\x0c\xae\xeb\x1e\xa0\x3a\xa3\xd1\x28\ \xa5\x52\x89\x7c\x3e\xef\x5f\xbc\x04\x73\x9a\xe0\x6f\xbe\xd1\x84\ \xeb\x42\x4b\xf8\x28\xc6\x37\xd7\xb2\x7a\xd7\x4b\xe4\xfa\x5d\xba\ \x1e\x0c\xd1\x32\xb1\x95\x63\x8f\x3d\x96\x17\x5e\x78\x21\x88\xa6\ \x2d\xcb\xc2\x30\x7c\xdb\x56\xce\x65\xf8\xfc\x00\x81\x5d\xf0\x38\ \xed\xce\x4a\xf2\x43\x06\x3f\xff\xfc\x52\x6e\x5a\xf1\x65\xba\xd2\ \x6f\x22\xf1\xd8\xfc\xd3\x12\xc9\x4e\x07\x90\xd4\xd6\xd6\xb2\x73\ \xe7\xce\xe6\x64\x32\x39\xf4\xa1\x0a\xe4\xdd\x86\xae\xeb\x4d\xf3\ \xe7\xcf\x1f\x4c\xa5\x52\xd4\xd4\xd4\x90\xcb\x66\x71\x2c\x3f\x5f\ \x82\x02\x8a\xcf\xb2\x39\x00\xdb\x6a\x69\x69\x61\x60\x60\x00\xcf\ \xf3\x13\x40\xa6\x69\x72\xdf\x7d\xf7\xd1\xd2\xd2\x82\xa2\x28\x3c\ \xf9\xe4\x93\xec\xde\xbd\x1b\xd7\x75\x03\x6f\x6c\xc2\x84\x09\x74\ \x76\x76\x92\x4c\x26\xd1\x34\x8d\x74\x3a\x4d\x22\x91\xc0\x34\xcd\ \x40\x75\x79\x8d\x82\x93\xff\xb1\x96\xf8\x0e\x9b\x54\xa7\xcd\xe8\ \x36\x0b\x33\xe5\xa1\x68\x82\xc6\xf1\xf5\x41\x2a\xf9\xcf\x79\xaf\ \xe5\xb5\xc8\xa5\x0a\x1c\xf5\x8d\x10\x4e\x49\x52\xa1\xd6\xa1\xaa\ \x1e\x59\x33\x49\xba\xc7\x61\xfb\x13\x39\x3c\xc7\x37\x19\xd5\xd5\ \xd5\xe4\xf3\xf9\x33\xc3\xe1\xf0\x68\x2a\x95\x32\x7b\x7a\x7a\xb6\ \xfe\x55\xb9\xbd\x42\x08\x1e\x7d\xf4\x51\xa4\x94\xac\x5c\xb9\x92\ \xdd\xbb\x77\xd3\xdb\xdb\xeb\x67\x01\xc7\x5e\xaa\xaa\x62\x18\x06\ \x9d\x9d\x9d\x44\x22\x11\x74\x5d\x3f\x80\xa1\x31\x7d\xfa\x74\x5e\ \x7f\xfd\x75\x3e\xfb\xd9\xcf\xd2\xda\xda\x4a\x24\x12\xa1\xbf\xbf\ \x9f\x19\x33\x66\xd0\xde\xde\x8e\x61\x18\x34\x34\x34\x90\xcd\x66\ \x49\xa5\x52\xe8\xba\xee\xa3\xbb\x8a\x82\x61\x18\x7c\xf1\x8b\x5f\ \xe4\xe5\x97\x5f\xa6\xe7\xa1\xb1\x39\x5d\x97\x71\x31\x0f\xb7\xd2\ \xb7\x65\xfb\x7b\x64\xb1\x58\x8c\xed\xdb\xb7\x9f\x52\x2a\x95\xf6\ \xbc\xed\x56\x8e\x3e\xfc\xf0\xc3\x9f\xc8\xe5\x72\x14\x0a\x05\x16\ \x2d\x5a\x84\xb2\xbc\x92\x10\x50\xf0\x6c\xb4\x3a\x0b\x2d\x35\x91\ \x06\x04\x0d\x27\xbe\x63\x19\x5e\x50\x55\x95\x8e\x8e\x8e\x1d\x3d\ \x3d\x3d\x33\xff\x6a\x27\x44\xd3\xb4\xa6\xa3\x8f\x3e\x7a\xf0\x96\ \x5b\x6e\xa1\xa9\xa9\x09\xc3\x30\xb8\xe1\x86\x1b\x68\x68\x68\x40\ \x55\x55\x16\x2c\x58\xc0\x5d\x77\xdd\x45\x55\x55\x15\x4d\x4d\x4d\ \x84\xc3\x61\x5e\x78\xe1\x85\x20\xc3\xd7\xd0\xd0\xc0\xde\xbd\x7b\ \x99\x3e\x7d\x3a\x47\x1e\x79\x24\x83\x83\x83\x24\x93\xc9\x20\xe1\ \x34\x56\x12\x80\xae\xeb\x14\x8b\x45\x1c\xc7\x21\x12\x89\x04\x64\ \x02\x45\x51\x78\xf3\xcd\x37\xd9\xbc\x79\x33\x00\x1b\x36\x6c\x40\ \xd3\x34\x56\xae\x5c\xc9\xe4\xc9\x93\xc9\x66\xb3\x4c\x99\x32\x85\ \x62\xb1\xc8\xfa\xf5\xeb\x91\x52\x32\x34\x34\xc4\x5b\x6f\xbd\x35\ \x7d\x74\x74\x74\x57\xf9\x3e\x1a\x1b\x1b\xaf\x2d\x14\x0a\xc7\xd4\ \xd6\xd6\x5e\x58\xbe\xf6\x6c\x36\x1b\x44\xde\x83\xc5\x61\x2a\x23\ \x3e\xac\x2e\xed\x31\xe6\xbe\x23\x98\x34\x69\x12\x55\xd5\x55\x3e\ \x89\x5b\x08\x1c\xc7\xb1\x84\x10\x5d\x63\xea\x5c\xdb\xb4\x69\xd3\ \x7d\xf1\x78\xfc\x3b\x1f\xea\x09\x51\x14\x85\x47\x1f\x7d\x94\xe3\ \x8f\x3f\x9e\x67\x9f\x7d\x96\x5c\x2e\x17\xa8\x93\xce\xce\xce\x20\ \x67\x1e\x8f\xc7\xf1\x3c\x8f\x48\x24\x42\x26\x93\xe1\x86\x1b\x6e\ \x60\xca\x94\x29\x5c\x7c\xf1\xc5\x98\xa6\xc9\xca\x95\x2b\x03\x1b\ \x51\x86\x47\xca\xc6\xb2\x9c\xdb\xd6\x75\x1d\xdb\xb6\x09\x87\xc3\ \x41\x00\xba\x71\xe3\x46\x9a\x9a\x9a\xd8\xb1\x63\x07\xa3\xa3\xa3\ \x81\x0b\x5d\x59\x59\xc9\xc6\x8d\x1b\x19\x1a\x1a\xa2\xa1\xa1\x01\ \x5d\xd7\xe9\xed\xed\x45\x55\x55\xa4\x94\xe2\x6d\xc1\xee\x25\x0b\ \x17\x2e\x9c\x66\xdb\xb6\x44\x22\x8a\xd5\x69\xaa\x62\x1a\x5e\x2a\ \x84\x9b\xd6\x11\x52\x01\x05\x84\x90\x01\xc8\x64\x95\x2c\x7a\xd8\ \x4c\xf3\x94\x5a\xdc\x8c\x8e\x9b\xd2\xf0\xb2\x5a\x48\x68\xcc\x00\ \x08\x87\xc3\x6c\xd8\xb0\xa1\xf1\xc3\x88\xd4\xeb\x92\xc9\xa4\x3e\ \x56\x5c\xd3\xe0\xba\x2e\x6b\xd6\xac\x61\xf5\xea\xd5\xef\xf0\x36\ \xca\xbc\xdf\xb2\x6a\xdb\x3f\xc5\x59\x55\x55\x45\xa9\x54\xe2\x17\ \xbf\xf8\x05\xf7\xde\x7b\x2f\xb6\x6d\x53\x53\x53\x43\x63\x63\x23\ \x2f\xbc\xf0\x02\xad\xad\xad\xe4\xf3\x79\xb2\xd9\x2c\x9e\xe7\x91\ \x4e\xa7\xc9\x66\xb3\xc4\x62\x31\x52\xc9\x14\x55\x95\xd5\x14\x4b\ \x05\x2e\xbb\xec\x32\x62\xb1\x98\x8f\x4f\x8d\xed\x68\x21\x04\x6f\ \xbd\xf5\x56\x90\xde\xdd\x1f\xde\x18\x37\x6e\xdc\xbb\xb2\xe3\x13\ \x89\x04\xb6\x6d\x8b\xbd\xf6\x10\xb3\x3f\x69\x22\xa3\x0a\x1e\x0e\ \xaa\xa6\xe0\xa5\x74\xac\x01\x03\xbb\x2f\x4c\xa9\xd3\x3f\xa1\xd2\ \x85\xda\x79\x61\xea\x16\x94\x28\xba\x71\x14\x05\x9c\x9c\xca\xf0\ \x43\x8d\xef\xb8\xe7\x0f\x54\x20\x8a\xa2\xac\xb9\xf0\xc2\x0b\xa7\ \xbd\x17\xca\x64\x28\x14\xe2\xc5\x17\x5f\x7c\xc2\x34\xcd\x27\x01\ \xea\xeb\xeb\x6f\xbd\xe9\xa6\x9b\x9a\xce\x3a\xeb\x2c\x56\xad\x5a\ \x15\xa8\xa7\x72\x1c\xa3\x28\x0a\xbd\xbd\xbd\x07\xe0\x50\xd1\x68\ \x94\xfa\xfa\x7a\xc6\x35\xd7\xc3\xbc\x21\xaa\x23\x21\x5e\xb9\x6d\ \x37\xb1\x58\x2c\x60\x9d\x1f\xcc\xd8\x3f\x95\xfc\x76\x3a\xaa\x6d\ \xdb\x58\xd2\x46\x41\x41\xcf\x4d\xe4\xe6\xf3\xee\xe1\x85\xdd\xbf\ \xe6\xf9\xd1\xc7\x99\x3c\xbf\x9e\xbe\xd8\x20\xd9\xed\x5a\x70\x6a\ \x3f\x31\xe1\x5c\xae\x38\xf5\x6a\xbe\xf0\xd3\xd3\xf8\xa7\xf3\xaf\ \xe4\xd1\x55\xf7\x04\x39\xa3\xbf\x94\xe8\x70\xd0\x02\xf1\x3c\xaf\ \xaa\x4c\xb1\x1c\x75\x33\x4c\xbc\x20\x4d\xa4\x42\x01\x4b\xc1\xb3\ \x15\xdc\x94\x86\x35\x60\xe0\x0c\x19\xb8\x19\x1d\x21\xfc\xaa\xa8\ \x50\x28\xd4\x3e\x30\x30\xf0\xeb\x31\x28\xff\x3f\xea\xeb\xeb\x1b\ \x57\xae\x5c\x29\xf6\x8f\x63\x74\x5d\xff\x93\xe0\x5d\x3e\x97\x67\ \x43\x7e\x07\x67\xcc\xaa\x40\xd5\x2d\x16\xde\x58\x81\xa6\x14\xd0\ \x55\x1d\xd7\x96\x38\x71\x83\xd4\xd2\xda\xe0\x7f\x5e\x7b\xed\xb5\ \xaf\xe6\xf3\xf9\x47\xde\xb6\xa1\xdc\xa6\xa6\xa6\xfc\xdb\xe7\x37\ \x4d\x13\xc7\x76\xf0\x54\x3f\x99\xf5\x99\xe9\xd7\xf0\x5f\xab\xff\ \x9d\x2f\xcc\xfa\x57\x66\x2d\xfc\x04\x7a\xb4\xc4\xcd\xbb\xaf\xde\ \x47\x06\xf7\x04\xaf\x74\x3f\x88\xf6\x6c\x8c\x4f\xcd\xfe\x32\x6d\ \xb1\x23\x70\x5c\xc7\x27\x7e\x8f\x09\xe4\x43\x39\x21\x65\x70\xcf\ \xb1\x1d\xb2\x4a\x9e\xca\x6a\x41\x36\x67\x72\xce\x11\x7f\xcf\xa8\ \xd9\xcd\x9b\x43\xab\xa9\x9a\xe6\x51\x18\xcd\x30\xf4\x70\x3d\x42\ \x0b\x6a\x3e\x82\xab\x8b\xc7\xe3\x09\xdb\xb6\xa7\x9a\xa6\x19\x40\ \x31\xe5\x2c\x5b\x52\x49\xd1\x38\x51\xc7\x4d\xeb\x78\x59\x1d\x69\ \xa9\x64\x0b\x29\x8c\xb0\xc1\xb8\xba\x71\x40\x06\x45\x15\xcc\x33\ \xbe\xc0\xe2\xc5\x67\x63\x91\xe3\x7b\x4f\xfd\x3b\xf3\x67\x4f\x66\ \xab\xb3\x35\x98\x67\x2c\xbf\x5d\xf4\x3c\x2f\xbd\xff\xb5\x47\xa3\ \xd1\xfa\xbe\xbe\xbe\xf0\xdb\x84\xa1\x96\xe3\x22\xcb\x30\x29\xa6\ \x15\xbc\x82\x4a\xef\xd0\x1e\x36\x29\x5b\x78\xab\xe7\x4d\x1a\x0e\ \xcf\xa1\x29\xa1\x80\x99\xa2\xa0\xa2\x22\x71\x5c\x9b\x81\xd4\x30\ \x7b\x52\x11\x34\xa1\x07\xe8\x43\x39\x9e\xf9\xf0\x04\xe2\x38\x78\ \xba\x8b\x50\x14\x3e\x5e\x7f\x19\xcd\xb1\x3a\x1a\x12\x47\xb1\x6e\ \x68\x3b\x9f\x3d\xf9\x42\x1e\x1f\xf4\xc9\x6d\x8a\xa4\x1c\x91\xef\ \x8f\xf5\x64\xc3\xe1\x30\xae\xeb\xa2\x69\x1a\x13\x27\x4e\xc4\x75\ \x5d\xd2\x4e\x81\x59\x17\xb9\x18\x61\x05\x17\x1b\xa1\x38\x78\x79\ \x85\xed\x77\xd7\x60\x88\x0a\x3f\x4a\xf0\x20\x95\x2a\x72\xfe\xf1\ \x17\x71\xdb\xda\xcb\xf8\xfc\xf4\xff\xe0\xdf\x17\xdf\x81\xad\x8f\ \xd2\xbe\xf5\xaa\x60\xc1\xfe\x48\x04\xad\xb4\xb4\xb4\x8c\x94\x13\ \x55\x00\x9e\xea\xa2\x69\x2a\x9e\x29\x10\x52\xd0\x20\x1a\xc8\x3d\ \x06\x37\x7b\xd7\xa3\x2b\x06\x3f\xf5\x6e\x43\x41\xc5\x99\xbb\x9b\ \x49\xb3\x9a\xf6\x95\xbc\xa1\xd0\x1a\x69\xe5\xb0\xe6\xc3\x58\xdf\ \xbb\x97\x1a\xa3\x11\x89\xc4\xb2\xec\x03\x28\xb4\x1f\x8a\x40\xca\ \xc7\xdb\x15\x0e\x0a\x61\x16\xcd\x5d\xc4\xca\xa1\x87\x19\xe9\xaa\ \xc0\x70\xea\xb1\xbd\x12\x48\xe1\x03\x88\x1e\xe5\x9c\xf3\xa9\xe3\ \xc7\x8f\x1f\x1c\x18\x18\xb8\xa7\x7c\xc1\xe5\x8b\x2e\xd3\xf8\x6d\ \xd7\x26\xa4\x6b\x24\x06\x5d\x7e\x70\xc1\xe3\x74\x66\xd6\xf1\xe0\ \xc6\xff\x44\x7a\xc2\x27\x19\x48\xc0\x00\xab\x24\x89\x46\x2a\xf0\ \x84\x43\xb6\x90\x67\xdd\xce\x0d\x54\xb4\xf4\xa3\x29\xa1\x7d\x05\ \x42\xef\x4e\xe9\x34\x2a\x2a\x2a\x88\x44\x22\x48\xcf\xa3\x47\x0e\ \x33\xff\x22\x6b\x1f\xe1\x6e\x34\x84\x33\x10\xa1\xd4\x6d\x10\x4e\ \x54\x8f\x91\x8a\xc2\x84\x8d\x30\xf3\xa7\x9f\xc4\x26\xf7\x09\x2c\ \x6b\xdf\xbe\x3a\xa5\xed\x52\x26\x4f\x8f\xf0\xfc\xf0\x2a\x56\x74\ \xd9\x50\xe6\x68\x8d\xdd\xdf\x5f\x72\x42\x0e\xda\x02\x95\x0d\xa0\ \x65\x59\x78\xae\x07\x63\xa5\xcc\x08\x51\xa6\x92\x51\x72\x72\x63\ \xef\x33\x83\x72\x85\xc3\x0f\x3f\xfc\x14\xc3\x30\xbe\x5a\x9e\x23\ \x16\x8b\x71\xd7\x5d\x77\x31\x7e\xfc\xf8\x7d\x75\x26\xb6\x83\x10\ \x82\xaf\x1c\xf3\x6d\xd6\x0c\x3d\xce\xce\x6d\x19\x66\xa9\x9f\xa5\ \xd2\xa8\x0e\xe6\x41\x42\xac\xc6\x60\x24\x35\x4a\xb5\x5e\xcf\xf8\ \xba\x46\x5c\xcf\xc6\x76\x6c\x84\x54\x02\xc2\xdb\x1f\xa3\x72\x4a\ \x29\xc7\x6a\x3e\x6c\xf2\x22\x0f\x12\x0a\x29\x95\x0b\x66\xff\x2f\ \xaa\x9b\x43\x18\xb3\xd3\x8c\x3b\x37\x4e\x78\x7e\x22\x98\xcb\x71\ \x5c\x96\x74\xdd\x87\x63\x7b\x24\x93\x49\x92\xc9\x24\xa5\x82\xc9\ \xa3\x9b\xee\xc2\x94\x39\x42\x95\x92\xce\xe2\x5a\x86\x77\xe7\x82\ \xbf\x8f\x51\x9e\x9c\x0f\xd5\x86\xb8\xae\x8b\x82\xc2\x8b\xed\x7f\ \xe0\xe4\x8f\x9d\x4c\x4a\xea\xbc\xd6\xf5\x34\x47\x36\x7e\x8d\x97\ \xc5\x73\x58\x56\x1e\x45\xfa\xe8\xec\x98\x57\xe6\x95\x77\xef\x75\ \xd7\x5d\x47\x3c\x1e\xa7\xa5\xa5\x85\x42\xa1\xe0\x9f\x10\x61\xa3\ \x48\x95\xc3\x9a\xa6\xf2\xda\xe0\x4a\x46\x0b\x25\x76\x0d\x75\x20\ \xf0\x17\x5a\x20\x90\x48\x2a\x2b\x22\x3c\xb2\xe5\x87\x7c\x79\xc1\ \x77\xe8\xcc\xad\xe6\xcd\xfc\xf3\x9c\x11\x39\x1b\x5b\xee\x63\x1f\ \xfe\x31\xb7\xb3\x1c\xb1\x4b\x57\xe2\x85\x7c\xa4\xe0\xc6\x33\x1f\ \xe6\xa9\xad\x3f\xe7\xba\x85\x0f\xb0\x64\xe3\x12\xcc\xea\x9d\x2c\ \x59\xff\x2a\xa6\xe9\x73\x03\x8c\x90\x4d\xff\x6a\x8b\x3d\x23\xa9\ \xa0\x20\xc7\x71\x6d\x92\x9b\x2c\x6e\xf8\xfa\xad\x28\xd2\x20\xdf\ \xef\x61\xe7\x75\x26\x8e\xaf\x06\x21\x51\x35\x85\x9a\x9a\x9a\xcf\ \xcf\x9d\x3b\xf7\xf8\xfd\x3f\x7f\x70\x70\x90\xee\xee\xee\x8f\xe7\ \x72\x39\xeb\x90\x09\xa4\x50\x28\xe0\xd8\x36\x66\xc4\xc3\xc3\x65\ \xb3\xf5\x30\x87\xf5\x4d\xa5\xae\x51\xa1\x6d\x96\xca\x7f\xae\xba\ \x04\xcb\x09\x91\xcb\xe5\x51\x74\x7f\x61\xca\xc1\x5c\xd9\x03\x59\ \xb9\x72\x25\x9f\xf9\xcc\x67\x02\x40\xcf\xf3\x3c\x6c\xc5\x46\x28\ \x1a\x99\x62\x86\x90\x6a\xa0\x8b\x10\x96\x6b\xe2\x38\x36\xa3\xa3\ \xa3\x28\x42\x21\x5b\xe5\x51\xb4\x2a\xe8\x0e\xbd\xc6\x0f\x9e\x4b\ \xf1\xa5\x4f\x7e\x11\x33\xd2\xc3\xb3\xdb\x7f\xce\x68\x57\x91\x64\ \x32\x1b\xb8\xc1\xef\xe6\x7a\x06\xfc\x32\x57\x42\x54\x22\xa4\x42\ \x4d\x64\x1c\x9b\xe3\xaf\x70\xf2\xf0\x67\xf0\x2c\x15\xd7\x75\x70\ \x5d\x89\x65\xfa\xc5\x21\x86\x61\x90\xee\x74\x31\x0c\x0d\x4d\xf3\ \xe7\xb4\x1d\x9b\xa6\xca\x49\x18\xd2\x40\x00\xb9\x89\x83\xcc\x3a\ \xcb\x81\x4c\x08\x37\x6e\xe0\x0c\x87\x91\xb6\xd2\x2c\x4d\xa5\x59\ \xda\x3e\x81\xaf\x4c\xea\xeb\xe8\xe8\x50\x0e\xe9\x09\xc9\xe7\xf3\ \x7e\x4e\xa0\x42\x62\xbb\x16\x9a\xaa\xf2\x78\xe7\x77\x39\xa2\x74\ \x0c\x96\x6d\x61\xa5\x15\xb6\xfd\x3e\x49\xc9\xb6\x10\xce\x81\xf6\ \xa2\x3c\x96\x2f\x5f\xce\xf3\xcf\x3f\xcf\xe0\xe0\x20\x2d\x2d\x2d\ \x7e\xb5\x92\xea\xa7\x6e\xef\x5b\x76\x0f\xff\x72\xc1\xb5\x94\x1a\ \x3c\x56\xfc\xee\x51\x2c\x3b\x12\xf0\xae\x34\xd7\x57\x8b\x9e\x25\ \xe8\x1b\x6e\xe7\x9a\x7f\x5d\xcb\xe8\x36\x93\xc2\xa0\x8b\x50\xc5\ \x01\x94\xa1\x77\xe3\x47\x05\x5c\x5c\x4f\xe2\x49\x89\x50\xfc\x53\ \xa7\x08\x05\x55\x55\x49\x66\x53\xa4\x43\x5d\xe0\x81\x65\xdb\x41\ \x21\x4e\x4b\x4b\x0b\xd1\x68\xb4\x5c\x10\x4a\x32\x99\x0c\xd4\xa2\ \x8a\x42\x69\x72\x82\xc8\xb8\x4a\x64\x5d\x11\xda\x8a\x07\x7c\xe6\ \xf0\xef\xc6\xe1\xa6\xb5\x80\xf6\x7a\xc8\x55\x56\x99\x0b\x1b\xc9\ \x29\xec\x7e\x31\x4f\x6a\xb7\x83\x99\xf6\x58\x55\x58\x82\x5b\x02\ \xd7\x94\x08\x55\xa0\x69\xfb\x16\x67\xff\x82\x18\xa0\xd0\xd3\xd3\ \x93\x97\x52\x4a\xdb\xb6\x23\xe9\x74\x5a\xb5\x6d\xdb\x4f\x50\x39\ \x06\xb2\xae\x9d\x47\x56\x3e\xc4\xe7\x4f\xfe\x3c\x8d\x93\xa0\xc7\ \x49\xe1\x38\x0e\x93\x26\x4d\xc2\x48\x24\x58\x7b\x63\x1e\xb7\x34\ \x06\xce\x0a\x90\x68\x84\xc2\xfb\xf2\xf9\x7f\x8a\x81\x5e\x16\x88\ \x74\x25\xd2\xf3\x91\xe9\x54\x21\xce\xec\xda\x53\x98\x32\x71\x02\ \x2f\xae\xf7\x38\xbe\xf9\x53\xbc\xe1\xfe\x38\x30\xe0\xe1\x70\x98\ \x68\x45\x94\xa6\xba\x09\x34\xd6\x4a\xde\xdc\xbe\x85\xb6\xb6\xb6\ \x7d\xf9\x1c\x1f\x57\xc1\x73\x42\x7c\xef\x93\x4f\xf2\xd2\x96\x17\ \x70\xaa\xf7\x92\xd8\x1b\x61\x93\xfd\x80\x5f\x16\x67\x79\x41\xeb\ \x90\x83\x21\xd3\xbd\x27\x81\xb4\xb5\xb5\x71\xe1\x85\x17\xb2\x7e\ \xfd\x7a\x06\x7a\x06\xf1\xac\x0c\x6e\xc8\x41\xea\x12\x2b\x62\x05\ \x09\x27\xcf\xf3\xc8\xe5\x72\xc1\xcf\x80\x33\x06\xa9\x9c\x5b\x86\ \x55\x62\xb1\xd8\x8b\xae\xeb\x7e\xd2\xcf\x3a\x7a\x28\x86\xbf\x6b\ \xdb\x47\x7e\x47\xc7\xfd\xaf\x30\xd8\x53\xc0\x2a\x48\xee\xbc\xf3\ \x4e\x26\x4f\x9e\xcc\xf0\xf0\x30\x4b\x96\x2c\xc1\x34\x4d\x5c\xd7\ \xa5\x50\x28\x90\xc9\x64\x98\x30\x61\x02\x7b\xf6\xec\x61\x64\x64\ \x84\xe6\xe6\x66\xba\xbb\xbb\xff\x68\x2a\x3a\x9f\xcf\x23\x5d\x0f\ \xcb\xf6\x09\x15\xdf\x7d\xf5\x62\xae\x3f\xf5\x11\x1e\xda\x74\x0b\ \x3b\xb4\x65\xf4\x77\x56\xe2\xd8\x2e\xb9\x5c\xa1\x9c\x66\xa0\xc7\ \x1b\xa1\xf9\xb2\x51\x22\xba\x8e\xbc\x67\x14\xe1\x34\x04\x20\xa8\ \x8a\x82\x22\x04\x21\x6b\x1c\xb1\x68\x8c\x1f\xbd\x74\x1d\xf7\x5e\ \xfc\x07\xea\x4f\xaa\x23\xd7\xbe\x85\x1e\x6b\x17\x96\xa9\x7c\x70\ \x02\xf9\xf5\xaf\x7f\xcd\xab\xaf\xbe\xca\x2d\xb7\xdc\xc2\xb2\x65\ \xcb\xd8\xb8\x71\x23\x42\x08\xba\xbb\xbb\x99\x34\x69\x12\x93\x27\ \x4f\x66\xf5\xea\xd5\x74\x74\x74\x70\xec\xb1\xc7\xb2\x71\xe3\x46\ \x8a\xc5\x22\xaa\xaa\x2e\x38\xf1\xc4\x13\x65\x40\x92\xf6\x3c\x34\ \x5d\x05\x47\x48\x84\xdf\x94\xa7\xfd\x5b\x1e\x12\x50\x14\x1d\xa1\ \xda\xa8\x7a\x2d\x8e\x19\x0f\xa2\xf8\xa9\x53\xa7\xf2\xc8\x23\x5f\ \x1c\x22\x28\x00\x00\x19\xed\x49\x44\x41\x54\x8f\x50\x57\x57\x47\ \x73\x73\x33\x8d\x8d\x8d\xdc\x7f\xff\xfd\x14\x0a\x05\xc2\xe1\x30\ \xb1\x58\xac\x5c\x38\x8a\xe7\x79\x6d\xb5\xb5\xb5\x1f\xdb\x8f\xa8\ \x11\x76\x5d\x37\xb0\x21\xb6\x09\x8e\xb4\x51\x2b\x6d\x7e\xb0\xfa\ \x2b\xb4\xd5\xcc\xa0\x94\xb6\xc9\x0f\x27\xe8\x7c\x2d\x45\xb1\xe8\ \xab\x97\x48\x38\x8c\x5d\x6d\x51\x53\x15\xc6\xce\x87\x69\xac\x99\ \x88\x3d\x60\xe3\x49\x1f\x8d\x76\xa5\x40\x11\x02\xe9\x29\x38\x9e\ \x0d\x02\x14\xdd\x65\xf7\xc0\x2e\xba\xd3\xdb\x70\x6c\xb0\x6d\x11\ \x6c\x88\x72\xa5\xd5\x21\x13\xc8\x13\x4f\x3c\xc1\x69\xa7\x9d\xc6\ \x9e\x3d\x7b\x18\x1a\x1a\xc2\xb6\x7d\xa3\xab\x69\x1a\x5b\xb7\x6e\ \xc5\xb2\x2c\x92\xc9\x64\x40\xb0\x03\x02\xe2\xf2\xc4\x89\x13\x7d\ \x6f\xa3\x94\xa2\x6e\xf1\x30\x13\x26\x86\x71\xb2\xaa\xb0\xfb\x22\ \x38\x03\x61\xac\xbe\x08\x65\x07\xba\xcc\xc1\x2a\x6c\xc9\x73\xe3\ \x8d\x37\x72\xc6\x19\x67\xf0\xfa\xeb\xaf\xe3\x79\x1e\xbb\x76\xed\ \xc2\xb6\x6d\x74\x5d\x67\xc2\x84\x09\x14\x0a\x05\x74\x5d\x0f\xc0\ \xc3\xe6\xe6\x66\x66\xce\x9c\xf9\x1d\xe0\x3b\xfb\x93\xfd\xb6\x6c\ \xd9\x82\xa6\x69\x48\x45\xa2\xc7\x61\xef\xcb\x45\x46\xb6\x9a\xa4\ \xba\x46\x11\x6c\x3b\x20\x23\x51\xb6\x7b\xaa\xea\x17\x75\x96\x8a\ \x2e\xb7\x9c\xf9\x3b\xfe\xfe\xa9\xf3\x28\x39\x2e\x12\x9f\x6c\x21\ \x3c\x40\x0a\xf4\x88\x43\x48\x35\x68\x8c\x4e\x22\x59\x1c\x42\x11\ \x51\xf0\x14\x6c\xc7\x0a\xd4\x5f\x99\x94\x7d\x48\x6d\xc8\x3d\xf7\ \xdc\xc3\x43\x0f\x3d\x44\x2e\x97\x7b\x87\x7e\x06\xd8\xb9\x73\x67\ \xf0\xbb\x35\x6b\xd6\x50\x5d\x5d\x1d\xfc\xbd\x8c\xf5\x8c\x94\x52\ \x1c\x39\xa5\x82\x62\xc9\x66\xf6\xe4\xe3\xd8\x53\xb3\x09\x67\x76\ \x16\xcf\x93\x98\x7b\x2a\x18\x7d\x31\x86\x50\x65\x90\xcc\x8a\x46\ \xa3\x41\x3e\x5f\x08\xe1\x97\xd2\xd9\x36\x93\x27\x4f\xc6\xb6\x6d\ \x14\x04\x3b\xd4\x3d\x1c\x73\xa1\x86\x90\x0a\xd2\x12\x78\x25\x15\ \x27\x1e\xc2\xea\x37\x70\x86\x0d\x9c\xb1\xce\x37\xc7\x1c\x73\x0c\ \x97\x5e\x7a\x29\xf7\xfd\xea\x3e\xe4\x28\x48\x75\x90\xba\x29\x5e\ \x60\x13\x4c\xd3\x24\x1a\x8d\x32\x86\x00\xa3\x69\x2a\x02\xbf\xe6\ \xb1\xae\xaa\x96\x82\x95\xc3\x71\xfc\x66\x39\xa5\x52\x09\x45\x0a\ \x42\x02\x6c\x2d\xc1\x8f\xff\xf0\x7f\xf9\xe5\xa5\x4f\x70\xd3\xeb\ \x17\x61\x78\x31\xaa\x23\x31\x4c\xb3\x97\x52\xc9\x0b\xec\xe9\xc1\ \x00\x8f\xef\x05\x5c\xdc\x65\x9a\xa6\x61\x59\x56\xcd\x3e\x86\xe2\ \x81\x30\xc5\xdb\x4b\xce\xb2\xd9\xec\x01\xb9\x0d\xff\xf7\x1e\x9e\ \x27\x39\x2e\x74\x39\x2d\x0d\x1a\x67\x4c\xba\x84\x5f\xbc\xfe\x9f\ \xcc\x98\xda\xcc\xaa\x3d\xab\xb0\x2d\x1b\xa1\xf9\x35\x29\x75\x8d\ \x31\x42\x5e\xa5\xaf\xd3\x14\x49\xae\x90\x65\xfc\xf8\xf1\x44\xa3\ \x51\xb2\xd9\x6c\xd0\x6d\x21\x57\x59\x40\xd3\xab\x89\x29\x93\x58\ \x38\xf7\x14\x5e\xda\xfd\x30\xce\x38\x17\x31\x2f\x41\xfc\xd5\x28\ \xf9\x2d\x7e\xb1\xcd\x1d\x77\xdc\xc1\x8a\x15\x2b\xf8\xc1\x7f\xfe\ \x80\x5f\xfd\xea\x57\xcc\x91\x47\xd0\xdd\xdd\xcd\xac\x59\xb3\x78\ \xe1\x85\x17\x98\x34\x69\x12\x96\x65\xa1\x69\x1a\xa1\x50\x88\x54\ \x32\x35\x56\x6b\x28\xf6\xab\x49\x71\xb0\x6c\xcb\x2f\x83\x70\xa1\ \xb2\x14\xc2\xf6\x74\x3a\xcc\x27\x59\xdd\x73\x18\x55\x15\x55\x0c\ \xe6\x77\x93\x1f\x74\x89\xf7\x25\xb1\x0b\xfb\x52\xbe\x07\x43\x39\ \x3d\x68\x81\x8c\x8c\x8c\x9c\x54\x2c\x16\x7f\x72\xce\x39\xe7\x5c\ \x7d\xdb\x6d\xb7\x91\xcd\x66\x79\xf8\xe1\x87\xd9\xb5\x6b\x17\x8a\ \xa2\x90\x4c\x26\x89\x44\x22\x28\x8a\xc2\xe8\xe8\x68\x90\xf5\x4b\ \xa5\x52\x94\x4a\xa5\x00\x5a\x70\xa5\x47\xa9\xe8\x71\xf1\x79\x7f\ \xcf\x4d\x2b\xfe\x1e\xad\x66\x02\x53\xab\x8e\x61\x76\x43\x2b\x2b\ \xe5\x2a\x4c\xcb\x44\xb8\x3e\x30\xd9\x74\x41\x96\xaa\x89\x05\xec\ \x11\x03\x77\x30\x02\x1d\x02\x67\xd8\x0b\xa8\x48\xb6\x6d\xe3\x4a\ \xdf\x08\x49\x04\xdf\x3c\xe5\x5e\x7e\xf4\xf2\xbf\xf2\xef\x67\x3c\ \xc4\xea\x8d\x6f\xb2\xc9\xf9\x35\x43\x76\x1f\xb6\xed\x2f\xe6\xd3\ \x4f\x3f\xcd\x82\x05\x0b\x68\x6f\x6f\x67\xe7\xce\x9d\xc1\x02\x25\ \x12\x09\x4a\xa5\x12\x89\x44\x22\x48\x3b\x17\x0a\x05\xca\x0d\x6c\ \x5c\x69\x32\x9a\x1e\xa5\xda\xa8\x23\xed\x24\x02\xc6\x0d\x02\x94\ \xbc\xa0\x30\xe2\x91\x1b\x76\xb9\xf5\xd9\x1b\x49\xec\x70\x49\x75\ \x3a\x20\xfd\xba\xf7\xb2\x0c\x0e\xb6\xa0\xe7\x3d\xa9\x2c\x21\x84\ \xbe\x70\xe1\x42\xd6\xad\x5b\xc7\x39\xe7\x9c\xc3\xe1\x87\x1f\x4e\ \x3e\x9f\xc7\xf3\x3c\x5a\x5b\x5b\x29\x14\x0a\x98\xa6\x49\x3a\x9d\ \x26\x1e\x8f\x53\x5b\x5b\x1b\x64\x01\x83\x1a\x13\xc5\x1b\xd3\xd3\ \xba\x8f\xcc\x0a\x85\xa1\xec\x00\xb9\xde\x4d\xfe\xfb\x4c\x2b\x38\ \x21\xb8\x82\x29\x91\xe3\x08\x1d\xee\xb2\xab\x61\x33\x66\x2c\xcf\ \xf0\x23\x3a\x20\x83\x40\x4f\x91\x3e\x15\x35\x1d\xf7\x88\x86\x2b\ \x58\xd6\xf9\x04\xd7\x6a\x37\xd3\x50\x57\x83\xd5\x6f\xe1\x38\x2e\ \xa6\xe9\x43\x33\x77\xde\x79\x27\x77\xdc\x71\xc7\x1f\xbd\xbf\xd1\ \xd1\xd1\x03\x7e\x8e\x55\x8f\xe5\x5c\xa2\x3a\xff\xe7\xf7\x9f\xa5\ \x36\x34\x89\xed\xc5\x5e\xa2\xd1\x28\x86\x61\xd0\xd4\xd4\x44\x6a\ \x73\x8a\x2d\x9b\xdd\x31\xb7\xdb\xef\x68\x54\x15\xf3\x0e\xa0\xd6\ \x96\x0b\x98\x0e\xb9\x40\xa4\x94\xfc\xf6\xb7\xbf\xa5\x9c\x60\xea\ \xe8\xe8\x08\x20\x8b\xb2\x8d\x10\x42\x50\x28\x14\x70\x5d\x37\x10\ \x56\x59\x3f\x03\xb8\x61\x8f\x48\x58\xe7\xe5\x0d\xcb\x09\x51\x4d\ \x6d\xb4\x9e\x81\x4c\x17\x67\x55\x7f\x9c\xad\x72\x07\xa6\x55\x42\ \xf1\x7c\x20\xb3\x3a\x7d\x2c\xe7\x1f\xfd\x45\x5e\x5a\xbd\x8e\x71\ \xd2\xe3\xf4\xd9\xa7\xf0\x7d\xeb\x76\xc2\xaa\xb1\x8f\x94\x37\x56\ \x61\xa8\x28\x82\x03\x6d\xa6\xc0\xf6\x8a\x63\x27\xc9\x25\x95\x4a\ \xf9\xe9\x80\xb1\x60\x50\x4a\xe9\x7f\xaf\xf9\x7c\xa2\xb0\x16\xa5\ \x60\x67\x51\x84\x8a\x6b\xfa\x0b\x97\x4e\xa5\x70\x5a\x1c\x4c\xa7\ \x84\x16\xf5\xd8\x38\xb4\x02\xd7\x11\x34\x36\x36\x72\xf7\xdd\x77\ \xe3\x79\x1e\xab\x57\xaf\x66\xd5\xaa\x55\xb4\xb6\xb6\xb2\x66\xcd\ \x1a\x8e\x3c\xf2\x48\x36\x6d\xf2\x37\x57\x5d\x5d\x1d\xf9\x7c\x9e\ \xde\xde\xde\x83\xe6\xff\xbe\x57\xac\x58\xd5\x34\x8d\x67\x9e\x79\ \x46\x0a\x21\x84\x22\x94\x80\x3d\xe8\x4a\x9f\xaf\xa4\x29\x21\x3f\ \x3f\xae\x86\x70\x1c\x87\x8a\x8a\x0a\xa4\x94\x41\xe9\xb1\xa5\xd8\ \x68\xba\xe0\xc1\xed\xff\xce\x2d\x67\x3f\xce\xda\xe1\x27\x08\x35\ \xf7\xd3\x93\xdf\x82\xed\x59\x14\xf2\x05\x14\xdd\x8f\x01\x8e\x9b\ \xbe\x80\xee\xd4\x76\xde\xec\x5f\xc7\xc2\x19\xa7\x11\x56\x8c\xb1\ \xb2\x33\x11\xb4\xf8\x50\xa4\x40\x22\xa8\xad\x0f\x91\xce\x67\x38\ \xf7\x88\x7f\x20\x51\x1c\x20\x97\x2b\x31\xb5\xf6\x28\xda\x9d\x3f\ \xe0\xba\xd2\xf7\xf2\x5c\x41\xa9\x26\xc1\xb4\xd8\x5c\x4a\xa5\x12\ \x03\x6e\x8a\x19\x5f\x34\x99\x56\xb1\x90\x8b\xcf\xf8\x12\x35\x6a\ \x2b\x37\x3d\x7e\x0d\xcf\x5e\xbf\x0e\x0f\x5f\xe0\x91\xa2\xce\xc0\ \x1b\x26\x99\x5e\x87\xd4\x9e\x02\xba\x5a\x5d\xce\xed\x30\x77\xee\ \x5c\xaa\xaa\xaa\xc8\xe5\x72\x74\x74\x74\xa0\xeb\x3a\xb1\x58\x0c\ \x29\x25\xc9\x64\x12\xd3\x34\x69\x6b\x6b\x63\xdb\xb6\x6d\x1f\x8c\ \xca\x52\x14\xe5\xd1\x37\xde\x78\x63\xda\xac\x59\xb3\x4e\x2b\x14\ \x0a\x58\xd2\x45\x9f\x9e\xa7\xae\xaa\x96\xb3\xe7\x7e\x8e\x92\x69\ \xb1\x74\xfb\x13\x9c\x39\xfb\x1c\x96\xee\xfe\x2d\xe9\xf5\x61\x0a\ \x85\x02\x42\x88\x60\x87\xe4\x85\x87\xed\x5a\x84\xaa\x3c\xfe\xed\ \xf7\x17\xb1\x78\xfe\xd9\x64\xf3\x29\xd6\xc7\x57\xb2\xf3\xe5\x2c\ \xd9\x82\x19\xec\xf4\x92\x69\xe2\x58\x2a\xae\xe3\x91\x2b\xa5\xf0\ \x1c\x1f\xcd\x95\x78\x68\x9a\xe6\xcf\x2d\xfd\xb8\x06\xe1\x71\xcd\ \xd3\xe7\xf3\xc3\xf3\x9e\xe2\xc6\xd7\x2f\x24\x53\x8a\xa3\xe9\x1a\ \x56\xc9\x22\x97\xdb\x97\x2b\x99\x14\x9d\x46\x3e\x9f\xf7\x53\xb7\ \xd8\xd8\xa6\xcb\xac\xc6\x45\x3c\xd9\xfe\x33\x0e\x53\x3f\xc1\x31\ \x0d\x8b\x79\x46\xae\xa6\xbe\xa1\x9e\xe3\x8f\x3f\x9e\xad\x5b\xb6\ \x12\xff\x83\x83\xe5\x98\xb8\x99\x0c\xd1\x6a\x9d\x64\x32\xc9\xd7\ \xbe\xf6\x35\x5a\x5b\x5b\xe9\xec\xec\xdc\x57\x2e\x27\x25\x3b\x76\ \xec\x08\x16\x3f\x95\x4a\x05\x2c\x99\x3f\x06\xe9\xfc\x45\x02\xc9\ \x64\x32\x2f\x55\x55\x55\x9d\xdc\xda\xda\x7a\x5a\x32\x99\xa4\x88\ \x45\xf5\xc9\x3a\xc7\x34\x9e\xc9\xdc\x63\x9a\x59\xb7\xb1\x93\xef\ \x7f\xe6\x6e\x8e\x9b\x79\x0c\x43\xcf\x2c\x63\x47\x4f\x08\xe1\xaa\ \xa4\x52\xa9\xc0\x80\x46\x4a\x2e\xd9\x21\x87\xc1\x8d\x16\xa3\xdb\ \xf6\xb0\xfa\x96\xbb\x83\x5e\x55\x4d\xa2\x99\xa6\xb9\xfb\x3e\xef\ \xf7\x0f\x3f\x05\x63\xcd\x5a\xfb\x78\x09\x80\x09\x13\xc7\x53\x2c\ \x16\xc9\x66\xb3\xe4\xf3\x79\x84\x14\x38\xa6\xf0\x85\x5c\x6d\x71\ \xe3\x6b\x7f\x47\x24\x5c\x41\x41\xd5\x48\x76\xda\x74\xae\x4c\x21\ \x9d\x80\xe0\xc7\xb8\xea\x71\xf4\xf7\xf7\xfb\xec\x79\xd5\x19\xab\ \xf8\xf2\xf1\x32\xd7\xf3\x48\x17\x13\xa8\xaa\xc6\xaa\x55\xab\x78\ \xf1\xc5\x17\xf9\xd2\x97\xbe\xc4\xb2\x65\xcb\xa8\xa8\xa8\xe0\xfe\ \xfb\xef\xa7\xad\xad\x8d\xae\xae\xae\xc0\x3d\xae\xa9\xa9\x39\xa8\ \xb5\x8b\xc7\xe3\x1f\x0c\x0d\x48\x55\xd5\x69\xe5\xf6\x4c\xb6\xf0\ \x6f\xa8\x52\x8f\x61\xba\x45\x4c\xa7\xc4\x50\xa6\x97\xbe\x6c\x2c\ \x80\xeb\x71\xf6\xf9\xde\xd7\x5e\x7b\x2d\x4b\x96\x2c\xa1\xe7\xbe\ \x04\xae\x6b\x13\x05\xf4\x4a\x2b\x28\x1c\xdd\x59\xe8\xe7\x88\xcf\ \x38\x54\x84\x35\xa4\xa9\x62\x27\x74\xdc\x11\x03\xab\x3f\x8c\x97\ \xd5\x10\x9a\x0c\x82\xc6\x6c\x36\xeb\xef\x4c\xd7\x23\xdc\x2d\xd8\ \xf6\xbb\x1c\xe9\xbd\x0e\x4e\x21\x81\x5d\x90\x38\x45\x89\x94\xa0\ \xa8\x6a\x50\xb8\x67\x84\x22\x6c\xea\x5a\x45\xb5\x6c\xf6\xf3\x1d\ \x86\x87\xae\x18\xec\x18\xdd\xc8\xf1\x47\x9f\xc0\x78\xed\x70\x36\ \xed\x5e\x13\x70\xbd\xda\xda\xda\xe8\xee\xee\xf6\x05\x3f\x86\xd8\ \x0e\x0c\x0c\x70\xc3\x0d\x37\x30\x3a\x3a\xca\x93\x4f\x3e\x19\x54\ \x28\xe7\x72\xb9\xe0\x24\x94\x49\xe5\xb5\xb5\xb5\xe5\x62\xa4\xd1\ \xe1\xe1\xe1\x85\x8d\x8d\x8d\x66\x6f\x6f\xef\xa1\x15\x88\x94\xf2\ \xb0\x80\x9d\xa8\xb8\xa8\x42\x63\xb4\x38\x40\x53\x74\x2e\x35\x15\ \x69\xb2\x56\x1a\x5d\x0d\xa3\xa0\x60\x5b\x26\xd2\x11\x38\x8e\xc3\ \x33\xcf\x3c\xc3\xe8\xe8\x28\x27\x9f\x7c\x32\xbf\xff\xfd\xef\x03\ \x2c\x6a\xd9\xb2\x65\x81\xc1\xef\x2d\xc5\x59\x34\x7e\x1c\x85\xac\ \xc7\x71\xd3\x3f\xce\xa6\xc1\x65\x38\x33\x72\x54\xa9\x92\xec\xe6\ \x0a\x32\xaf\x57\xfb\x86\x58\xf1\x8b\x7a\x16\x2f\x5e\xcc\xec\xd9\ \xb3\x79\x69\xc9\x4b\x78\x19\x09\x8c\x42\x05\x58\x9a\x85\x88\xf9\ \x0b\xa8\xeb\x3a\x99\x4c\x06\xc7\x71\xd0\x74\x85\x64\xb7\x83\x5e\ \x5f\xf4\x93\x55\x38\x78\x9e\xc1\x40\xe8\x55\xc2\xc5\xd3\xc9\xd7\ \xf6\xb0\xdb\x7a\x19\x5d\x35\xb8\xe8\xa2\x8b\x98\x3d\x7b\x76\xd0\ \xe5\xc7\xf3\x3c\x86\x86\x86\x98\x3a\x75\x2a\xdf\xf8\xc6\x37\x10\ \x42\x10\x0a\x85\xde\x35\x07\x53\x2e\x32\xcd\x64\x32\xd4\xd4\xd4\ \x50\x28\x14\x9c\xd1\xd1\xd1\xed\x1f\x14\x51\x4e\x09\x1a\x98\xa9\ \x7e\x6e\xb5\x50\xb9\x8d\xb6\xca\xeb\x38\x62\xf1\x09\x5c\xf3\xe4\ \x05\xb4\x4d\x6c\x06\x01\x96\x65\xe2\x8d\x61\x39\x6f\xbe\xf9\x26\ \x8d\x8d\x8d\x64\x32\x99\x72\xd3\x64\x86\x87\x87\x0f\xf0\xc0\x84\ \x10\x94\x6c\x93\x0b\x5a\x6e\x65\xc4\xdb\xc0\x3f\x2f\xb8\x9b\x97\ \xda\x97\x90\x8e\x6c\xa5\xdd\xde\x15\xf4\x16\x29\x0b\xe4\xf2\xcb\ \x2f\x27\x97\xcb\x71\xda\x69\xa7\x71\xfb\xed\xb7\x73\xc2\x89\x0b\ \xe8\xee\xee\xe6\xc8\x23\x8f\xe4\xd1\x47\x1f\x65\xf2\xe4\xc9\x7e\ \x7b\xc1\x54\x8a\x54\x2a\xc5\xe0\xe0\x20\x95\x95\x51\x32\x99\x0c\ \xa6\x69\x52\xf0\xfc\x32\x08\x4f\x95\xfc\xf4\x8d\x7f\xe2\xaa\x53\ \xbf\x8d\xed\x94\x30\x4d\x18\xd7\x54\x4b\x5f\x5f\x5f\xa0\x6a\x35\ \x4d\xc3\x30\x0c\x7a\x7a\x7a\x10\x9a\x40\xd5\xfc\x66\x01\x39\x33\ \x43\xa5\x51\xed\x57\x69\x45\x4d\xec\x3c\x63\x88\xf4\x81\xbd\xc5\ \x3e\x30\xe6\xa2\x10\x82\x44\x22\xe1\xe7\x05\x34\x49\xc9\x8a\x61\ \xab\x70\xe5\x6f\xcf\xe6\xd1\xaf\x6c\x44\x8b\x58\xdc\xb7\xe9\xdb\ \x78\x2e\xc4\x87\x92\x41\x50\x74\xeb\xad\xb7\xbe\x23\xdf\xbd\x3f\ \x1b\xdd\x87\x46\x60\x78\xa0\xc4\xd9\xe7\x9e\xc6\x95\xcf\x5c\xcf\ \xe2\x19\x17\x33\xa9\x76\x06\x03\xa4\x91\xde\xce\xa0\xb7\x48\xb9\ \x8e\xbc\xbb\xbb\x9b\x13\x4f\x3c\x91\xdf\xfc\xe6\x37\x01\x15\xb5\ \xdc\x4c\x40\x4a\x19\xb4\xf7\xd0\x75\xdd\x8f\xac\xc7\x3e\xaf\x6c\ \x84\x2b\x8a\x1e\xa5\xb8\x47\xcf\xae\x12\xf1\xad\x16\xff\xf0\xdd\ \xaf\xfb\xf9\x7b\x05\x46\x46\x46\x0e\x70\xf7\xcb\xc5\xa4\x0a\x82\ \xf8\x94\x0c\xc7\x9e\x59\xc5\xaf\xfe\x76\x25\x67\xde\x39\x85\x67\ \xae\x58\xc1\xe6\xce\x0e\x9e\xea\xbd\x91\xad\x8f\x8f\x32\xba\xc9\ \x37\xde\x86\x61\xb0\x7d\xfb\x76\x1a\x1b\x1b\x3f\x38\x81\x94\x17\ \x58\x51\x14\x34\x4f\xa2\xea\x02\xd7\xf1\x60\x54\x72\xca\xa5\x87\ \x93\xeb\xf2\xb0\xf2\x12\x33\xe3\x05\x1c\xa5\x62\xb1\x28\xcb\xb5\ \xea\x6f\x17\xae\x10\x62\xdf\x0e\x32\x7c\x17\x7a\xff\xbf\xdb\x8e\ \xcd\xae\xec\xc6\x31\xd6\xbc\x15\xb0\x91\x15\x45\xe1\x5b\xdf\xfa\ \x16\xd1\x68\x34\x20\xc1\x95\xe7\xdf\xbc\x79\x73\x80\x18\xec\xff\ \x99\xe5\xfa\x12\xc3\x30\xb8\xfa\xea\xab\x59\xbe\x7c\x39\x83\x2f\ \x0e\xe2\x7a\x1e\x21\xc7\xa6\xa9\x51\xee\x6b\xed\x37\xa6\xa6\xca\ \xbd\x7c\xcb\xc1\xad\x22\x05\x52\x08\x6a\xea\x74\xe2\x99\x11\xae\ \x38\xe9\x46\xfa\xb3\xbb\x18\x49\xa4\x38\x7e\xe2\xd9\xbc\x61\xff\ \x9c\x32\x85\xab\x6c\x53\xde\x0b\xe9\xe1\x7d\x09\x44\x08\xc1\xb4\ \x69\xd3\x48\xa5\x52\x0c\xdc\x6b\xd2\x63\x9a\x08\x45\xe2\xe7\x6d\ \xfd\xc0\x24\xa4\x4a\xa4\x22\xcb\xa4\x69\x31\x30\x30\xb0\x6c\x64\ \x64\xe4\x94\xb7\xcf\x35\x67\xce\x9c\xb8\x69\x9a\xe3\x84\x10\x60\ \x40\x4d\x4d\x98\x3d\x7d\x7d\x78\x8e\x82\xa6\xe8\x64\xcd\x24\x4d\ \x91\x36\x76\xba\x71\x4c\xd3\x0e\xba\xef\xd8\xb6\x4d\x34\x1a\x0d\ \xd2\xb6\xfb\x7b\x72\x65\xb8\xfb\x80\x93\xe8\x82\x65\xfa\xc4\xed\ \xab\xae\xba\x0a\x21\x04\x0f\x3e\xf8\x20\xdf\xfe\xf6\xb7\xe9\xea\ \xea\x62\xe6\xcc\x99\x8c\x8c\x8c\x60\xdb\x36\x4d\x4d\x4d\xbc\xf2\ \xca\x2b\x84\x42\x21\xc6\x8f\x1f\xcf\xba\x75\xeb\xb0\x6d\xdb\xc7\ \xe6\x3c\xb0\x2c\x70\xa5\xcd\xb5\x2f\x9e\xc7\xff\x3d\xf5\x29\xee\ \xdd\xfc\xcf\xf4\xa4\xde\x42\x4b\xa8\x94\x0a\x26\x99\x8c\x79\xc0\ \x26\x78\x2f\x6c\xc6\xf7\x63\xd4\x39\xf2\xc8\x23\xb9\xec\xb2\xcb\ \x38\xe2\x88\x23\xb8\xf9\xe6\x9b\xe9\xec\xec\xa4\xa6\xa6\x86\x91\ \x91\x11\x74\xdd\x6f\x2e\x39\x38\x38\x88\xae\xeb\x68\x9a\xc6\xe0\ \xe0\x20\xe9\x74\xda\xfb\x63\x89\xa3\x52\xa9\xe4\xef\xc8\x2a\xc9\ \xb8\x71\x95\xfc\x68\xd9\xbf\x70\xd7\xdf\x2d\xe3\x97\x6f\x5c\xcf\ \x9b\xa9\x2d\x1c\x31\x69\x0e\xae\x37\xc6\x0e\x1c\xb3\x21\x53\xa7\ \x4e\x0b\xe2\x15\x55\x55\x59\xb1\x62\x05\xcd\xcd\xcd\xef\xea\xeb\ \xab\x21\x08\xcd\x4d\xd2\xb7\xb2\x48\x21\xe9\xb0\x6b\xd7\x2e\xae\ \xbc\xf2\x4a\xf6\xee\xdd\x4b\xb1\x58\xa4\xb1\xb1\x91\xca\xca\x4a\ \x74\x5d\x67\xd9\xb2\x65\xd4\xd5\xd5\xd1\xda\xda\x4a\x4f\x4f\x4f\ \x50\x4e\x5d\x2c\x16\x83\xb8\xc7\x49\x0b\x92\xfd\x7e\x31\xe9\xbf\ \x3e\x79\x3e\x15\x46\x98\x6c\xce\x25\xdd\x63\xd2\xb9\x22\x8b\xaa\ \xa8\x07\x6c\x9a\xb1\xcd\x11\x06\x98\x34\x69\x92\xdd\xdd\xdd\xed\ \x1e\xb2\x72\x84\xda\xda\xda\x35\x4d\x4d\x4d\xc7\x1d\x2c\xa7\xb6\ \x3c\x5c\xd7\xa5\xbf\xbf\x7f\xc6\xc8\xc8\xc8\xce\xfd\x7f\x3f\x7d\ \xfa\xf4\x78\xa9\x54\x1a\xa7\x28\x0a\xc3\x13\x5c\xfe\xf1\x5b\x13\ \xb1\x2c\x97\x9a\xc2\xb1\x1c\x35\x67\x0a\x4b\x77\xff\x06\x4d\xd3\ \x58\xf5\x83\x04\xa9\x2e\x5f\x17\x54\x56\x54\xb1\xe8\x96\x2a\x86\ \xee\x6f\x44\x3a\xbe\x5a\x58\xbb\x76\x2d\xd1\x68\x94\x70\x38\x1c\ \x30\xef\xcb\x69\x5d\xc7\xb5\x31\xa2\x21\xdc\x92\x0c\x9a\x0b\xec\ \xcf\x52\xf9\x53\x19\xd2\xe6\xe6\xe6\xfd\xaa\x7a\x64\x90\xb3\xf9\ \x63\x9b\xb5\xa7\xa7\x87\x6d\xdb\xb6\x21\x84\xa0\xb2\xb2\x32\x28\ \x8e\x2d\x6f\xbe\xb5\x6b\xd7\x7e\x29\x99\x4c\x3e\x70\x48\x4f\x88\ \x61\x18\xcc\x98\x31\x03\x80\x7e\x33\xc1\xe4\xb3\xf3\x44\xc2\x1a\ \xc2\x34\xb0\x87\x42\x38\xc3\x61\x9c\xe1\x03\x1b\x59\x46\x22\x11\ \xee\xbd\xf7\xde\xf4\xbb\x4d\x59\x26\x97\x85\x73\x50\xca\x78\x0c\ \x6d\xb1\xe8\xd8\xf3\x0a\xcf\xdf\xb9\x04\xcf\x14\xd8\x79\x0f\xd7\ \xf4\x8d\xf1\xbe\xbc\xb9\xc0\x76\x1c\xa4\xed\xeb\xfa\x39\x73\xe6\ \xd0\xda\xda\x4a\x2c\x16\x63\xdb\xb6\x6d\x8c\x8e\x8e\xd2\xd4\xd4\ \xc4\xd0\xd0\x10\xfd\xfd\xfd\x78\xa6\xaf\xba\x4c\xd3\x0c\xe8\x47\ \x0a\x02\xc7\x94\xd8\xb2\x84\x42\x08\xcb\x2d\xa1\xab\x1a\x48\x05\ \x4d\xd5\x28\x95\x8a\x0c\x0d\x0d\x21\x10\xac\x2c\x6d\xe5\x9c\xcb\ \x62\x28\x52\xe0\x9a\x80\xa5\xfb\xd7\x36\x60\x50\xda\x5d\x81\x97\ \xf5\xaf\xad\x50\x28\x50\x5b\x5b\x1b\x54\x1b\x47\x8c\x8a\x20\xce\ \x8a\x46\xa3\x7f\xd6\xe3\x7a\x5f\x02\x29\xe7\xb4\x15\x04\xa3\x5a\ \x9c\xf9\x2d\x61\x32\xd9\x34\xed\x77\x58\x4c\xac\x99\x82\xeb\x65\ \x11\x8a\xc0\x72\x1d\x74\x5d\x20\x4d\x0d\x44\x82\xb3\xce\x5c\x3c\ \x54\xb6\x01\x65\xa3\xd7\xd5\xd5\x45\x28\x14\xe2\xf4\xd3\x4f\x67\ \xfd\xda\x75\xb4\xdf\xec\x20\x85\x0e\x42\x47\x93\x6e\xd9\xd1\xc6\ \x88\x2a\x81\x8b\x5c\x66\xa2\x58\xa6\xef\x56\xab\xaa\xca\xc0\xc0\ \x00\xae\xeb\x52\x59\x59\x49\x26\x93\x09\x58\x1e\x8e\xe3\x10\x0e\ \x87\x39\xef\xbc\xf3\x48\xa7\xd3\x2c\x5f\xbe\x3c\xc8\x08\x0e\x47\ \x8b\x9c\x7e\x55\x15\xc7\x1a\x57\xd1\x30\xc5\x64\x51\xeb\x17\xb8\ \x7f\xc5\x4f\xf9\xf8\x91\x0b\xb9\xf3\xb9\x6f\xd3\xff\x98\x87\xa5\ \xfa\x0d\xd2\x0a\x58\x18\xba\x42\x23\x47\x72\xfa\x51\xe7\xf0\xe4\ \xb6\xbb\x50\x9d\x4a\x72\x2d\xbd\x8c\xe4\x25\xa5\xd1\x48\xe0\x31\ \x1e\x73\xcc\x31\x6c\xdf\xbe\x9d\x7c\xa6\x80\x31\x37\x49\x69\x57\ \x04\xa1\xec\xf3\x0e\x0f\xa9\x40\xaa\xab\xab\x03\x86\xa0\x82\x00\ \x4d\x62\x3b\x2e\x7f\x33\xf1\x26\x12\x8d\x77\x05\xbb\x20\xe5\x66\ \x19\x77\x41\x9c\x71\x0d\x3a\x4e\x1e\xec\xa1\x0a\xdc\x11\x03\x7b\ \xd0\x40\x16\x55\xdc\xbc\x8a\xa6\x69\x94\x4a\x25\x7e\xf3\x9b\xdf\ \x00\x70\xc6\x19\x67\xb0\x7c\xf9\x72\x1c\xc7\x21\x1e\x8f\x53\x53\ \x53\x43\x4f\x4f\x0f\x8b\x16\x2d\x62\x64\x64\x84\x35\x6b\xd6\x10\ \x8d\x46\xd9\xbb\xa7\x1b\x81\xc0\xb2\x6c\x3c\x9b\x20\x3a\x0e\x87\ \xc3\xa4\x52\xa9\xe0\x5a\xfb\xfa\xfa\x08\x87\xc3\x58\x96\x45\x22\ \x91\x60\xca\x94\x29\x81\x6b\x2c\x84\xc0\x0d\xbb\xa8\x8a\xc6\x26\ \xef\x7e\x2e\x09\xdd\xce\x53\xbb\x7f\xc4\x4e\x6f\x29\x3b\xdf\x78\ \x0e\x4f\x2a\x7e\x1a\xda\x94\x7e\x4f\x47\x43\x30\x38\x94\xe3\x3b\ \x17\xdc\xca\xff\x7e\xf6\x0c\xee\xfe\xfc\x12\xf6\xf4\xf7\xf0\x74\ \xef\xad\x0c\xda\x5d\x81\x0a\xf4\x3c\x8f\x78\x3c\x3e\x86\xe1\x29\ \x78\x8e\x87\x6b\x9a\x08\x95\x03\x02\xc9\xbf\x98\x4a\x1a\x90\x64\ \x0d\x23\xd8\x09\x25\xd3\xf4\xdb\x7c\xdb\x06\xe7\x9d\xb8\x98\xbc\ \x99\x09\xe8\xa1\x23\x4e\x9a\x8a\x50\x08\x33\xab\xb0\x70\xca\xf9\ \xd4\x4e\xd1\x88\x1e\x95\xa1\xf6\xec\x11\x2a\x4f\x89\x07\xdd\xb1\ \xcb\x5e\xd0\xc8\xc8\x08\xe1\x70\x18\x45\x51\x98\x33\x67\x0e\x86\ \x61\x30\x69\xd2\x24\x6c\xdb\x0e\x3a\x44\x9c\x78\xe2\x89\xa4\xd3\ \xe9\x31\x57\x52\x39\xa0\x4d\xb9\xeb\xba\x41\xcb\xf0\x72\xb3\x9c\ \x78\x3c\x1e\xd4\x3d\x76\x74\x74\xf0\xec\xb3\xcf\xa2\xaa\x6a\xd0\ \x81\xa2\x50\x2c\x62\x3b\x16\x28\x36\x77\xb4\x5f\xc6\x70\xb6\x0f\ \x89\x24\x3f\xe2\xb2\xfe\xde\x38\xae\xb7\xaf\xeb\xb5\xa2\x28\x8c\ \x0c\x98\xc4\x6a\x42\x28\xaa\x4b\x44\xaf\xa4\xa6\xb2\x86\x78\xae\ \x2f\x48\x96\x95\x89\x7f\x5d\x5d\x5d\x7e\x73\x4e\x55\x41\xba\xde\ \x01\x34\xd7\x3f\xe7\x02\xbf\x2f\xb7\xb7\xac\x3a\x04\x7e\xa0\x55\ \xf6\x2a\xf6\xb5\xff\xb6\x71\x15\x17\x45\x15\x7c\x7a\xd2\x37\xc9\ \xc8\x5d\x5c\xbf\xe8\x31\x1e\x5d\xfd\x20\xcd\x93\x74\x9e\x58\x71\ \x5f\x70\x93\xd1\x68\x94\x2b\xaf\xbc\x92\xc9\x93\x27\xd3\xdf\xdf\ \x8f\xeb\xba\x2c\x5d\xba\x14\xcf\xf3\x68\x6f\x6f\xc7\x71\x9c\x40\ \x1d\x95\x03\xcb\x90\x66\x04\xf1\x8b\x6b\xf9\x49\xa0\x50\x28\x44\ \x5d\x5d\x1d\x42\x08\x6a\x6b\x6b\xdf\x76\xc1\x63\x24\x03\x45\x04\ \xa5\xd0\x9e\xe7\x51\x9d\x51\xe9\x5a\x52\x20\xd7\xed\x62\x65\x3d\ \xd6\x14\x56\xe2\x14\xc1\xb3\x25\x8a\x2a\x70\x0d\x77\x5f\x5b\x43\ \x14\x74\x5d\xc1\x19\xe3\x35\x83\xff\xf4\x20\x04\xb8\xae\x87\x69\ \xfa\xfc\x33\xd7\x71\xa8\x6d\xae\x27\x99\x8f\x13\x8a\x99\x84\x2a\ \x55\xd2\xb6\xdf\x37\xf2\x60\x4a\x15\xde\x57\xa4\x5e\x5e\x78\x81\ \xdf\x30\xc0\xf1\x6c\x4a\xa6\x89\xa6\xe8\xfb\x0a\x60\x0c\x0f\x4f\ \x0a\x5a\xab\x67\xf0\x9b\x3d\xbf\xa0\x2d\x74\x22\xf5\x91\x16\x0c\ \x25\x83\xf4\x08\x04\x52\x2a\x95\x64\x28\x14\x12\x9d\x9d\x9d\xfb\ \x47\xef\x52\x08\x21\x5c\xd7\x45\xda\x60\x7b\xde\x98\x43\xa8\x82\ \x02\x96\x63\x63\x3a\x92\xd1\x91\x04\x72\x8c\x65\x5f\xce\x4c\xe6\ \xf3\xf9\x75\x1d\x1d\x1d\x0f\xd6\xd7\xd7\xff\x58\xd3\x34\xbf\x0f\ \x7c\x9d\xc7\xe1\x0b\x2b\xc0\xae\xa2\x32\x57\x45\x75\x75\x35\x97\ \x5c\x72\x09\xcb\x97\x2f\x67\x78\x70\x18\xc5\xc9\xe1\x86\x5c\x3c\ \xcd\xc3\x8d\xba\x01\xe4\x51\xde\x78\xca\x58\x43\x9c\xa9\xd3\x6b\ \xd8\xd1\xb5\x97\xd3\x0f\xfb\x3b\xde\x1c\x5e\x4d\x32\x51\x64\x76\ \xc3\x09\xbc\xe5\xfc\x01\xcb\xf2\xb3\x86\x85\x7c\x81\x07\x7f\xf9\ \x30\x3f\x79\xea\xfb\xfc\xcd\x27\x4e\xe5\x67\x8f\xfd\xc4\xcf\x82\ \xaa\x7c\x30\x27\x44\x4a\xa9\x4a\x29\x65\xa9\x54\x12\x02\x81\xe7\ \xb9\x54\x44\x15\xfe\xf9\xe1\x8b\x91\x9e\xc0\xb6\x7d\x42\xb6\xa7\ \xb9\x08\x11\x02\x24\xaa\xe2\x1b\xb3\x91\x54\x9c\x5c\x65\x7f\xa0\ \x6e\x00\x1a\x1b\x1b\xc5\x1b\x6f\xbc\xf1\x95\x62\xb1\xf8\x10\xe0\ \x45\xa3\xd1\xeb\xa7\x4d\x9b\xf6\xcd\x64\x32\x89\xa3\x48\xa6\x7f\ \xa5\x92\xd6\x96\x30\x76\x41\x62\x17\x3d\x52\x9d\x36\x99\x6e\x87\ \x25\xff\x6c\x07\x5e\xfb\xd8\xb3\xa6\x44\x2c\x16\x43\xd3\xb4\x5d\ \xf9\x7c\xfe\xce\x96\x96\x96\x1f\x97\x79\x58\x6e\xb5\xa0\xed\xd4\ \x28\x5a\x58\xf2\xd2\xfa\x7e\x7e\xf6\xfd\x5f\xb1\x77\xef\x5e\x6e\ \xbf\xfd\x76\x6e\xb8\xe1\x06\x74\x5d\xa7\xbe\xbe\x9e\x62\xb1\xc8\ \xee\xdd\xbb\x59\xb4\x68\x11\xeb\xd6\xad\x63\xfd\xfa\xf5\xe4\x72\ \x39\xc4\x98\x47\xa7\xeb\x2a\xdf\x79\xf5\x0b\xdc\x7e\xc1\x0b\x7c\ \x7f\xcd\x97\xc8\x5a\x09\x14\x5d\x90\xcf\x9a\x64\xb3\x3e\xea\xeb\ \x58\x2e\x23\x72\x33\x4e\xdd\x56\x96\xed\x4e\x21\x5d\x49\xb1\x54\ \x44\x28\x3e\x13\xf2\x90\x0b\x64\xd7\xae\x5d\x9f\x6a\x69\x69\x19\ \x48\xa7\xd3\x7e\x13\xfd\x71\x02\xd3\x89\xe2\xd5\xee\x61\xb4\x90\ \x25\x22\x6b\x7c\x81\x44\x20\xa4\x84\xe8\x4a\x77\x30\xbf\xfe\x34\ \x8e\x9e\x3e\x8f\xd7\x77\xbc\xc2\x11\xb1\xa3\x59\xea\x3d\x8f\x65\ \x39\x41\x8e\x22\x12\x89\xd8\xc5\x62\xb1\x34\xf6\xb3\x13\x0e\x87\ \x31\x0c\x03\x03\xe8\xff\x95\x43\xbf\x92\x7b\x17\x5a\xab\xbe\x3f\ \xc5\x55\x64\xb3\xd9\x6d\xbb\x76\xed\xba\x41\xd7\xf5\x37\x01\xb5\ \x4c\x44\x90\x42\xe2\xb9\x3e\x27\xca\x35\x21\x6a\x84\x79\xfa\xe9\ \xa7\xb9\xf6\xda\x6b\x79\xe9\xa5\x97\x28\x95\x4a\x44\xa3\x51\xfa\ \xfb\xfb\x89\xc5\x62\x0c\x0f\x0f\xd3\xd9\xd9\x49\x38\xec\x27\xd7\ \x4a\xa5\x12\x8a\x50\xb0\x5d\x0f\xc7\xb3\xa9\xab\x37\xb8\xfe\xb5\ \x4f\xfb\xea\xaf\x4f\x32\xb4\xb9\xc8\x9e\x65\x79\x14\x6d\x8c\x9d\ \xe8\x29\x24\xf2\x43\xa0\xba\x0c\x15\xf6\xb2\x77\x6d\x9a\x5c\xae\ \x04\x82\x43\xef\x65\x8d\x31\xef\x06\x03\xd6\x05\x10\xb2\xa0\x98\ \xf6\x18\x79\xd3\xc4\xca\x7b\xb8\x5e\x0e\xc7\x71\x28\x19\x2e\xb6\ \x5b\xc1\x92\xa1\x9f\x70\x4e\xe3\xb7\x78\x78\xeb\x2d\xec\x16\x2f\ \x92\xd8\xbe\x02\x4f\xba\x64\xb3\xd9\x20\x3e\x79\x3b\x95\xa8\xad\ \xad\x8d\x1b\x6f\xbc\x91\x89\x13\x27\xf2\xcb\x5f\xfe\x92\xae\xae\ \x2e\xc6\x8f\x1f\xcf\xb6\x6d\xdb\xa8\xaf\xf7\xbb\x33\x74\x75\x75\ \x61\x18\x06\x91\x48\x84\xae\xae\x2e\x84\x10\x83\x89\x44\xe2\x37\ \xe5\xb0\xa7\x5c\x60\x34\x61\xc2\x04\xd2\xc3\x69\x5e\xbf\x3e\xe7\ \xc7\x22\x8a\xca\xcb\x2f\xbf\xcc\x86\x0d\x1b\x82\x16\x1d\xe5\xe8\ \xbe\xfc\xb5\x9c\xb3\x28\x63\x76\xae\xeb\x52\xdb\xa9\xb1\xe6\xc7\ \x29\xac\x8c\x87\x53\x92\x38\x79\x89\xf4\x7c\xb7\xa8\xdc\x8b\x45\ \x51\x14\x8c\x90\xc1\x75\x5f\xf8\x21\x6e\xc1\x8f\x9f\x24\xa0\xee\ \xc7\x75\x3e\xa4\xd0\xc9\xfe\xf8\x90\xae\xeb\x2c\x5e\xbc\x98\x75\ \x6b\xd6\xb1\xe9\x66\x0b\x94\x10\x6e\xd1\xc4\x74\x0b\x38\xb6\x43\ \xa9\x52\xe2\x48\x0b\x43\x53\x79\x76\xe8\x26\x4e\x98\x72\x1a\xf9\ \x64\x89\x91\xb7\x7a\xd9\xf3\x72\x81\x62\xf1\xdd\x9f\x8a\xe6\xba\ \x2e\x33\x66\xcc\x20\x1e\x8f\xf3\xc9\x4f\x7e\x92\x19\x33\x66\x90\ \x4a\xa5\x38\xee\xb8\xe3\x68\x6b\x6b\xa3\xbf\xbf\x9f\x50\x28\x14\ \xa4\x46\xcb\x4d\x64\xde\x8e\x3a\x94\x69\x3f\xe5\xf4\xf1\xaa\x55\ \xab\x48\xa5\x52\xbc\xfa\xea\xab\x18\x86\x41\xb1\x58\x0c\xc0\xbf\ \x72\x92\x69\x2c\x6e\x19\x50\x14\xa5\xcc\x48\x98\xfe\xb9\xcf\x7d\ \x4e\x39\xf5\xd4\x53\x79\xf8\xe1\x87\xc9\x66\xb3\xe4\xd4\x5c\x60\ \x43\xcb\x0d\x30\x5d\xd7\x27\x51\x94\x89\xe5\xd5\x4a\x03\x4e\xd8\ \xc1\x52\x2c\x22\x91\x08\x85\x42\x21\xe8\x6c\x71\x48\xb9\xbd\xfb\ \x0b\x66\xcd\x9a\x35\x6c\xd8\xb0\x81\x4f\x7d\xea\x53\x6c\xde\xbc\ \x99\x81\x81\x01\x96\x2e\x5d\x4a\x3e\x9f\xc7\x75\x5c\xa2\x49\x85\ \xa1\x0d\x16\x85\x3e\x87\xe4\xce\x04\xcf\x75\xdf\x87\xa2\x0b\x14\ \x15\x14\x6d\x7f\xba\xa6\xfa\x0e\x44\x76\xd5\xaa\x55\x2c\x58\xb0\ \x80\xdb\x6e\xbb\x8d\xa5\x4b\x97\x22\xa5\xe4\x91\x47\x1e\x21\x9f\ \xcf\x13\x0e\x87\x83\xee\x0e\xa5\x52\x89\xe5\xcb\x97\xbf\x2b\xd5\ \xbf\x0c\xb5\x4b\x29\x39\xec\xb0\xc3\x58\xb2\x64\x09\xba\xae\x73\ \xe2\x89\x27\xb2\x70\xe1\x42\xee\xbd\xf7\x5e\x2a\x2b\x2b\xa9\xaf\ \xaf\x27\x9f\xcf\xb3\x67\x8f\xdf\x71\x63\xeb\xd6\xad\x57\x27\x12\ \x89\xc7\x00\x66\xcc\x98\x51\xb8\xe4\x92\x4b\x22\xa3\xa3\xa3\x5c\ \x7e\xf9\xe5\xdc\x7b\xef\xbd\x9c\x7f\xfe\xf9\xb4\xb7\xb7\x33\x67\ \xce\x1c\x9e\x7b\xee\x39\x66\xce\x9c\x49\x43\x43\x03\xc9\x64\x92\ \x55\xab\x56\xd1\xdb\xdb\x1b\xb8\xe7\x1f\xfb\xd8\xc7\x58\xbb\x76\ \x2d\xbb\x77\xef\xe6\xb0\xc3\x0e\x63\xd7\xae\x5d\x1f\x8c\x40\xca\ \x5e\x48\x2e\x97\xa3\xa1\xa1\x01\x21\x04\xb3\x66\xcd\xe2\xd5\x57\ \x5f\xa5\xb1\xb1\x91\xeb\xaf\xbf\x9e\x07\x1f\x7c\x90\xc4\x8e\x04\ \x8a\x69\x12\x8e\x39\x34\xce\xf6\x4b\xaa\xcb\xcc\xf1\x72\xd3\xe2\ \x77\xab\x1d\x0f\x87\xc3\xdc\x7c\xf3\xcd\xef\xfa\xd9\x65\x1a\x6b\ \xb9\x9b\x36\x10\x60\x45\x6f\xbf\xc6\x2b\xae\xb8\x82\x33\xcf\x3c\ \x93\xe5\xcb\x97\x07\xde\x61\xb9\xe1\x81\x94\x92\xd1\xd1\x51\xf6\ \xec\xd9\x13\x08\x74\x6c\x9e\xa0\xc2\xa8\xb2\xb2\x52\xbc\xfe\xfa\ \xeb\x9c\x7b\xee\xb9\xdc\x70\xc3\x0d\x58\x96\xc5\xe6\xcd\x9b\xe9\ \xea\xea\xa2\xae\xae\x8e\x5c\x2e\xc7\xde\xbd\x7b\xe9\xec\xec\xc4\ \xb2\x2c\x0a\x85\x02\x52\x4a\x8e\x38\xe2\x08\x1e\x7b\xec\x31\x74\ \x5d\x27\x1a\x8d\x52\x51\x51\x41\x22\x91\x38\x28\xd4\xf7\x7d\x55\ \x27\xb6\xb5\xb5\xc9\xa6\xa6\x26\x26\x4f\x9e\xcc\xc0\xc0\x40\xe0\ \x31\xc5\xe3\x71\x1e\x7c\xf0\x41\xde\x78\xe3\x0d\xbe\xfa\xd5\xaf\ \x72\xfb\xed\xb7\x33\x38\x38\x48\x24\x12\xa1\xbe\xbe\x9e\x95\x2b\ \x57\xd2\xdc\xdc\xcc\xae\x5d\xbb\x18\x1d\x1d\xa5\xae\xae\x8e\x81\ \x81\x01\x76\xef\xde\x7d\x51\x22\x91\xb8\x7f\x6c\x51\x66\x56\x55\ \x55\xcd\x14\x42\xbc\x97\x4e\x6d\x9e\xeb\xba\x5d\x83\x83\x83\x6f\ \x96\x6d\xc8\xe1\x87\x1f\x5e\x68\x6e\x6e\x3e\xa0\xcb\xf6\x1f\x2b\ \x77\xdb\x5f\x0d\x6f\xd8\xb0\xe1\xcb\xc9\x64\xf2\x3e\x80\x13\x4e\ \x38\xa1\x58\x28\x14\xc2\x65\x0c\x6d\x7f\xd2\xf4\xfe\x5f\xdf\x4e\ \xa5\x0d\x85\x42\x41\xcc\x54\xee\xef\x55\x6e\x3a\xbd\x65\xcb\x96\ \x2f\x25\x12\x89\x07\x0e\xb9\xca\xca\x64\x32\x74\x74\x74\x04\x79\ \xeb\x32\xd7\xf7\xe9\xa7\x9f\xe6\xea\xab\xaf\xe6\xb5\xd7\x5e\x63\ \xc7\x8e\x1d\x81\x5d\x28\x43\x0a\xa1\x50\x28\xc8\xe2\xbd\xdb\x43\ \x1c\xb3\xd9\xec\xf6\x6c\x36\xbb\xfd\xfd\x5c\x57\x7d\x7d\x7d\x99\ \xdd\x61\x0e\x0d\x0d\x2d\xee\xe9\xe9\x79\xaf\x53\xd8\x35\x35\x35\ \x9b\xcb\x0c\xfe\xe1\xe1\xe1\xe7\xa3\xd1\xa8\x5a\x2c\x16\x8f\x55\ \x14\x65\x3c\x80\xab\x42\xdd\x14\x8d\xe1\xad\x05\xa4\x2b\x29\xd9\ \x25\xc2\x5a\x05\x20\xc7\xf0\xbb\x12\x4d\x4d\x4d\x07\x08\x6f\xff\ \xb6\xeb\x42\x08\xfd\x90\x9f\x90\xfa\xfa\xfa\xdd\xab\x56\xad\x3a\ \xac\xbd\xbd\x9d\xa3\x8f\x3e\x9a\x27\x9f\x7c\xb2\x8c\xe6\x06\x39\ \xec\x70\x38\xfc\x0e\xaf\xe2\xdd\x76\xaa\x61\x18\x6c\xdb\xb6\x2d\ \x38\x21\xff\x2f\x8e\xf1\xe3\xc7\x3f\x1a\x0a\x85\x2e\x04\xc8\x55\ \x78\x9c\xf1\xcd\x46\x22\x06\xe4\x87\xab\xf8\xfa\x79\xff\xc6\xed\ \x2b\xaf\x81\x92\xce\xc0\x86\x22\x6f\x3d\x96\xf5\x1f\xb0\xe9\x37\ \x46\x7b\xa8\xbf\xbf\xff\x8b\xfb\xa9\xc1\xd2\x21\xf5\xb2\xf6\xc3\ \xb3\xe4\x4d\x37\xdd\xc4\x2d\xb7\xdc\xc2\x4b\x2f\xbd\x44\x6f\x6f\ \xaf\xff\x28\x87\x74\x1a\x5d\xd7\x83\x27\xcd\x1c\x4c\x72\x3f\x9b\ \xcd\xfe\xc9\xd6\x1a\xff\x8f\x0c\x25\x70\xf3\x6d\x81\xe7\x49\x4a\ \x49\x41\x72\x47\x9c\xcb\xbe\x7c\x15\x99\x2e\x2b\xd8\xdb\x46\x24\ \x14\xe4\xed\x85\x28\x3f\x68\xe3\xe0\x1f\x36\xf9\xbe\x73\xea\xed\ \xed\xed\x2c\x5e\xbc\x38\x68\x3e\x2c\xa5\xa4\xba\xba\xfa\x8f\x16\ \x5c\xc6\x62\x31\x76\xee\xdc\x79\x6c\x7f\x7f\xff\x7a\xfe\x9b\x8e\ \x53\x4e\x39\x85\xae\xae\x2e\xf6\xdc\x99\xc3\x73\x25\x52\x1a\x08\ \xa9\x53\x5d\x1d\xf1\x0b\x78\xc6\x6c\x46\x39\x3c\xb0\x6d\xfb\x3d\ \xb7\xbc\x7e\x5f\x02\x31\x4d\xf3\x65\xd7\x75\xb7\x95\xbd\x93\x83\ \xe9\x10\x94\x4a\xa5\x6c\xcf\xf3\x46\xff\x3b\x0a\x42\x4a\x69\x5e\ \x72\xc9\x25\x9c\x72\xca\x29\xb4\xb4\xb4\x70\xc7\x1d\x77\x90\x4a\ \xa5\x68\x68\x68\xa0\xb7\xb7\x97\x9a\x9a\x1a\xda\xda\xda\x58\xb1\ \x62\x45\x90\xa2\xd8\xb0\x61\x03\xb6\x6d\xaf\xfb\xc0\x05\x52\x5d\ \x5d\xcd\xf0\xf0\xf0\x65\xc3\xc3\xc3\xfc\xff\x68\xc8\x32\x0e\x15\ \x0e\xfb\x7d\x80\xcb\x7d\xbd\xa6\x4c\x99\xc2\xe6\xcd\x9b\x99\x30\ \x61\x02\x53\xa7\x4e\xa5\xa7\xa7\x87\xee\xee\xee\x32\xb9\xc1\xfe\ \xc0\x05\x72\x28\xdb\x6a\xff\x77\x19\x9a\xa6\x71\xff\xfd\xf7\xf3\ \xc2\x0b\x2f\x90\xcd\x66\x83\xb8\xa5\x1c\x78\x4a\x29\xe9\xee\xee\ \x0e\xbe\xf7\x3c\xef\x7d\x37\xe8\xd7\xf8\x68\xfc\xd9\xe1\x38\x4e\ \xc8\x30\x0c\xd2\xe9\xf4\x01\x1e\xe2\x9f\x8a\x69\xc6\x82\xe7\xf7\ \xec\xad\x88\x8f\x96\xfb\xcf\x8f\x48\x24\xd2\x54\x2a\x95\xaa\xde\ \xe3\xba\xba\x75\x75\x75\x83\xa3\xa3\xa3\x85\x8f\x56\xf0\xa3\xf1\ \xd1\xf8\x68\x7c\x34\x3e\x1a\x1f\x8d\x8f\xc6\x47\xe3\xa3\xf1\xd1\ \x38\x60\xfc\x7f\xa7\x8c\x4b\xc9\xd0\xc3\x6c\x1c\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\x7c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x64\x08\x06\x00\x00\x00\x70\xe2\x95\x54\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x1c\x0e\xa7\xa1\x6f\x29\x00\x00\x02\xfc\x49\x44\x41\x54\x78\ \xda\xed\xd6\xbf\x6f\x1c\x45\x18\xc6\xf1\xef\xcc\xed\xda\xb1\x0f\ \x9b\x93\x85\x90\x2d\xb0\x38\x12\x09\x77\x6e\xac\x14\x6e\x10\xe0\ \x8b\x90\x4b\x37\x14\xc8\x7f\x03\xfc\x01\x54\x27\x51\x42\x81\x28\ \xdd\xd0\x90\x36\x6d\x30\x8e\x70\x2a\x44\x44\x94\x20\x17\xc8\x0e\ \x06\x64\x90\xec\xe4\x02\xde\xf3\xde\x9e\xf7\xd7\xec\x50\x1c\x39\ \x89\x32\x52\xae\x58\xf1\x7c\xa4\xed\x76\xa4\x9d\x7d\xe7\x79\xdf\ \x01\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\ \x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\ \x11\x79\x31\x4c\x9d\x3e\x76\x71\x71\xf1\x13\x63\x4c\xf8\x9c\xcb\ \xa6\x80\xcf\x4e\x4f\x4f\xff\x56\x41\x5e\xb0\xf5\xf5\x75\xdf\x6e\ \xb7\xf1\xde\x53\x51\x51\xbe\xf9\x94\x97\xae\x4c\x53\x3e\x99\xc6\ \x9d\xcd\x8c\x5e\xb2\x60\xac\x1f\xef\x2c\x8e\x63\xf6\xf6\xf6\x56\ \xb2\x2c\x3b\xaa\xc3\x1e\x83\xba\x45\x3a\x4d\x53\x0c\x70\x3f\xff\ \x85\xce\xf5\x19\x1a\xe1\x05\x99\xbb\xa4\x19\x5e\x81\x24\xa0\x3c\ \x9f\x22\xfb\x75\x86\xe1\xe1\x2c\x00\x65\x59\x62\x8c\xf1\x75\xd9\ \x9f\xad\x53\x31\xaa\xaa\x22\xcf\x73\xf2\xbc\xc0\x53\x61\x8d\xe1\ \xaa\x79\x9f\xcf\x3b\x77\x78\xe7\xf5\x0f\x98\xe7\x1a\x8b\x57\x5b\ \xd8\x57\x32\x8a\xa2\xa0\x28\x0a\x9c\x73\xb5\x3a\x70\xb5\x4a\x88\ \x73\x8e\x3c\xcf\xc1\x8f\x26\xc3\x60\x90\xf2\xe1\x7b\x1f\xf3\xd1\ \xad\x1b\x7c\xbd\xfd\x90\x77\x5f\x3b\xe3\x24\x7d\xc0\x17\xf7\x3f\ \x25\xcf\x73\xbc\xf7\xcf\x12\xa2\x82\x4c\x82\xf7\x9e\x2c\xcb\x30\ \x18\x98\x82\xe1\xc0\x31\xd7\x6c\x92\x57\x29\x00\x87\x7f\x1e\xf2\ \x63\x72\x0b\xe3\x2d\x59\x96\x8d\x53\xa5\x82\x4c\xb8\x65\x19\x00\ \x0f\x73\xf3\x53\x0c\x86\x43\xa6\x1b\xa3\x79\x51\xe1\x29\x5d\x81\ \xf7\x8c\x92\xf4\xec\xe6\x52\xa3\x82\xd8\x3a\x26\x24\xcb\x72\x2a\ \x3c\x2f\xcf\x37\xb9\xfd\xf3\x4d\xba\x37\x6e\xf2\xe0\xf4\x2e\xf7\ \xfe\xf8\x96\xb7\xdf\xd8\xa2\x28\xf3\x7f\xdf\xcb\xd4\xb2\x26\xa9\ \x28\x0a\xe2\x38\xc6\x1a\x4b\x32\x57\x71\x99\x35\xf9\xc1\x7d\x45\ \x75\x6f\x8e\x57\xaf\x65\x1c\x97\xdf\xf0\xfb\x4f\x7b\x44\x8f\x13\ \xce\xcf\x13\xbc\xf7\xcc\xce\xce\x62\xad\x55\x41\x26\x16\x69\x6b\ \x31\x18\x4c\x05\x8d\x69\x43\xc3\x86\x7c\xf7\xdb\x97\x5c\xdc\x31\ \x3c\x79\x94\x90\xfe\xe5\x48\x1e\x3b\x8c\x31\xb5\x4a\x46\x6d\x0b\ \xe2\x9c\x63\x61\x61\x81\xf0\x6c\xc8\xf7\xdd\x0b\x2e\x9f\x56\x18\ \x03\xc6\x8e\x1e\x6f\x0c\x41\x10\x8c\x67\x4e\x9d\xd2\x51\xcb\x5b\ \x56\xb7\xdb\x65\x63\x63\x83\xfd\xfd\x7d\x0e\x0e\x0e\xe8\xf5\x7a\ \x94\x65\x49\x55\x55\x44\x51\x44\xab\xd5\x22\x49\x12\x7a\xbd\x1e\ \x8d\x46\x83\x7e\xbf\x8f\xf7\xbe\x3e\x1d\xa0\x6e\x33\xa4\xdd\x6e\ \x73\x72\x72\xc2\xe6\xe6\x26\x51\x14\xb1\xb4\xb4\xc4\xda\xda\x1a\ \xdb\xdb\xdb\x78\xef\x69\xb5\x5a\xac\xac\xac\xd0\xe9\x74\x28\xcb\ \x92\x30\x0c\x6b\x95\x90\x5a\x35\xd9\xd5\xd5\x55\xbf\xbc\xbc\xcc\ \xd6\xd6\x16\xbb\xbb\xbb\xa3\x01\x6f\xed\xf8\xc7\x47\x51\x44\x18\ \x86\x78\xef\x49\xd3\x14\xe7\x1c\xce\x39\x8e\x8e\x8e\xde\x1a\x0c\ \x06\x8f\xd4\xb2\x26\xa0\xdf\xef\xb3\xb3\xb3\x33\x9e\x13\xff\x39\ \x5d\xc6\x50\x14\xc5\x68\x63\x41\x40\x10\x04\x14\x45\xa1\x6b\xef\ \xa4\x1c\x1f\x1f\x3f\x04\xca\xe7\x59\x13\x86\xe1\x4c\xb3\xd9\x4c\ \xe3\x38\x46\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\ \x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\x44\ \x44\x44\x44\xfe\x4f\xfe\x01\xd1\xc0\x51\x25\xbd\x25\x7f\x60\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x3f\xd1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x50\x00\x00\x00\x50\x08\x06\x00\x00\x00\x8e\x11\xf2\xad\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\ \x95\x2b\x0e\x1b\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x36\x08\x21\xa9\x06\x34\x00\x00\x20\x00\x49\x44\x41\x54\x78\ \xda\x9c\xbc\x69\x98\x24\x57\x79\xe7\xfb\x3b\xb1\xe6\x9e\x59\x99\ \x59\x5b\xd7\xd2\x55\x5d\xbd\xaa\x17\x49\x2d\xb5\xf6\xd6\x0e\x12\ \x12\x18\x8c\x6d\x60\x7c\x19\x6c\x23\x1b\xcc\xb0\x08\xcf\x18\xdb\ \x63\x3f\x9e\xe5\xde\x67\xbc\x8c\xf1\x78\x7b\xbc\x8c\x3d\x36\xc6\ \xf6\x18\x06\x63\x1b\x0c\xd8\x80\x05\x5a\x11\x12\xdd\x48\xa8\x5b\ \xea\x7d\x51\x55\xd7\xbe\xe4\x16\xfb\x7a\xee\x87\xac\xcc\xae\x06\ \xc6\x73\x9f\x9b\x1f\xba\xb3\x9e\x38\x71\xe2\x8d\x13\x27\x22\xce\ \xef\xfd\xff\xdf\x14\xef\x7a\xd7\xbb\xa4\xe3\x38\xd4\x6a\x35\x5e\ \x7f\xfd\x75\x7c\xdf\x67\x61\x61\xc1\xfa\xe8\x47\x3f\x5a\x2c\x97\ \xcb\x84\x61\xc8\x8b\x2f\xbe\x88\xaa\xaa\x84\x61\x48\x18\x86\x74\ \x3a\x1d\xd6\xd7\xd7\xa9\xd5\x6a\x9c\x39\x73\x66\x75\x68\x68\xa8\ \xf8\xfe\xf7\xbf\x3f\x5b\xab\xd5\xf8\xf4\xa7\x3f\xcd\xf0\xf0\x30\ \x17\x2f\x5e\x64\x68\x68\x88\xf9\xf9\x79\x4c\xd3\xc4\x34\x4d\x4e\ \x9e\x3c\x19\x25\x49\x12\xfc\xe2\x2f\xfe\x62\x61\x78\x78\x98\x67\ \x9e\x79\x06\xc7\x71\xb8\x72\xe5\x0a\x83\x83\x83\x34\x1a\x0d\x86\ \x87\x87\xd9\xd8\xd8\x60\x6e\x6e\x0e\xdb\xb6\x3b\xb7\xdf\x7e\xbb\ \x78\xc3\x1b\xde\x50\xac\xd7\xeb\x3c\xf3\xcc\x33\xac\xac\xac\x90\ \xa6\x29\x8e\xe3\x50\x2a\x95\xb8\x7c\xf9\x32\x51\x14\xe1\xba\x2e\ \xf3\xf3\xf3\xb3\xef\x79\xcf\x7b\xb6\x3f\xf0\xc0\x03\x7c\xe9\x4b\ \x5f\xe2\xca\x95\x2b\x14\x0a\x05\x82\x20\x20\x8a\x22\x66\x67\x67\ \xa9\x56\xab\x34\x9b\x4d\x2e\x5d\xba\x74\xee\xae\xbb\xee\xda\xf9\ \xb3\x3f\xfb\xb3\xca\x73\xcf\x3d\xc7\x4b\x2f\xbd\xc4\xf4\xf4\x34\ \x97\x2f\x5f\x46\xd3\x34\x6c\xdb\x66\x72\x72\x92\x73\xe7\xce\xb1\ \xb8\xb8\xb8\xb4\xb2\xb2\xb2\xfc\xeb\xbf\xfe\xeb\x37\x66\xb3\x59\ \x4e\x9c\x38\xc1\xfa\xfa\x3a\xb6\x6d\xa3\x0c\x0d\x0d\x91\xcb\xe5\ \x10\x42\x30\x39\x39\x89\xa6\x69\x08\x21\xc8\xe7\xf3\xfc\xc8\x8f\ \xfc\x08\x83\x83\x83\x54\xab\x55\xa6\xa6\xa6\xd8\xb1\x63\x07\xc5\ \x62\x91\x52\xa9\x84\xae\xeb\x8c\x8d\x8d\x01\x10\x86\x21\x0f\x3c\ \xf0\x00\xd7\x5f\x7f\x3d\xa6\x69\x32\x35\x35\xc5\xe0\xe0\x20\xdb\ \xb7\x6f\xa7\x5e\xaf\x63\x9a\x26\xfb\xf7\xef\x47\x08\x81\xef\xfb\ \xec\xdf\xbf\xbf\xbf\x6d\x6c\x6c\x8c\x52\xa9\xc4\xbe\x7d\xfb\xc8\ \xe7\xf3\x14\x0a\x05\x76\xee\xdc\x49\xa1\x50\x40\x55\x55\x56\x57\ \x57\xb9\xfd\xf6\xdb\x29\x95\x4a\xa4\x69\x4a\x26\x93\xa1\x54\x2a\ \x11\x04\x01\xba\xae\x23\x84\xa0\x5e\xaf\xa3\x69\x1a\x52\x4a\xf6\ \xee\xdd\xcb\x7d\xf7\xdd\x47\xb1\x58\x64\x70\x70\x90\xe9\xe9\x69\ \x06\x06\x06\x98\x9c\x9c\xc4\x30\x0c\x86\x87\x87\xc9\xe5\x72\x00\ \x68\x9a\xc6\xbe\x7d\xfb\x30\x0c\x83\x5c\x2e\xd7\xdf\x5e\x28\x14\ \x30\x0c\x83\x28\x8a\x28\x16\x8b\xa8\xaa\x8a\x10\x82\xc1\xc1\x41\ \x6e\xbe\xf9\x66\xc6\xc6\xc6\xd8\xbb\x77\x6f\x77\xdc\x0e\x1f\x3e\ \x2c\x01\xa4\x94\xfd\x00\x3b\x9d\x8e\x95\xcf\xe7\x8b\x99\x4c\x06\ \xd7\x75\x11\x42\x20\xa5\xa4\xf7\x91\x52\x22\x84\x40\x08\x41\xa7\ \xd3\x59\x1d\x1c\x1c\x2c\xa6\x69\x9a\x05\x88\xa2\xa8\xbf\x3d\x4d\ \xd3\xfe\xbe\x52\x4a\xe2\x38\x8e\xa2\x28\x0a\xf2\xf9\x7c\xa1\x58\ \x2c\x62\xdb\xf6\xf7\xf4\xbb\xf5\x7f\x4d\xd3\x3a\xed\x76\x5b\x94\ \x4a\xa5\x62\x92\x24\x28\x8a\x72\xcd\xf1\xb7\xf6\x5f\xad\x56\x79\ \xed\xb5\xd7\x66\xaf\xbb\xee\xba\xed\x8e\xe3\x90\xa6\x69\xff\x9c\ \x7a\x6d\x7a\xfb\xe8\xba\xce\xec\xec\xec\xb9\x3d\x7b\xf6\xec\x6c\ \xb7\xdb\x8a\xa6\x69\xd7\x1c\x77\xeb\x47\x4a\x89\xa2\x28\x4b\x6b\ \x6b\x6b\xcb\x43\x43\x43\x37\x9a\xa6\x89\xef\xfb\x08\x21\xba\x31\ \xa6\x89\x6c\x08\x01\x08\x50\x14\x05\xcf\xf3\x52\xcb\xb2\x2e\x67\ \xb3\x59\xdd\xb6\x6d\x04\x82\x34\x95\x80\x40\x08\x09\x9b\x6d\x7b\ \x07\x8b\xe3\x78\xa5\xd3\xe9\xec\xd1\x34\xad\x24\x10\x9b\x07\xdd\ \xfc\x47\x00\x9b\xfb\x6c\x1e\x30\xf4\x3c\x6f\x31\x93\xc9\x28\xed\ \x76\x1b\x05\xe5\xfb\xf6\xdd\x0b\xae\xd3\xe9\x34\x92\x24\xd1\xd3\ \x34\x2d\x0a\x04\x71\x9c\x76\x8f\x20\x05\x42\xa4\xdd\x38\xe8\xc6\ \xb1\xbe\xbe\x1e\x03\x8d\x76\xbb\x5d\x4d\xd3\x34\x12\x88\xee\x96\ \x14\xa4\x90\x88\xcd\xb6\x42\x08\x92\x24\x51\x84\x10\xad\x8d\x8d\ \x8d\xbf\x35\x0c\xc3\x90\x69\x4a\x9a\x00\xdd\x50\xba\x31\x28\xb2\ \x7b\x0a\x42\x08\xd7\x75\x97\xc2\x30\x2c\x48\x29\x35\xcf\x75\x13\ \xa4\x42\x2a\x53\x40\xa0\xed\xb9\x7b\xb4\x9a\xac\x99\xc8\x50\x41\ \x28\x82\x28\x8a\x08\xc3\x30\xbb\x6d\xdb\xb6\x7c\x1c\xc7\xc4\x15\ \x87\xc2\x64\x44\xe2\x81\x6c\xe6\x88\x1b\x3a\x32\x50\x51\x0c\x89\ \xa2\x28\x44\x51\xb4\x32\x33\x33\x53\x52\x55\x35\x1b\x11\x11\x4f\ \x34\xa9\xd6\x35\x22\x4f\x22\x5a\x05\xa2\x0d\x1d\x02\x15\xa1\x82\ \xeb\xba\xe1\xdc\xdc\x5c\x6e\x64\x64\xa4\xa4\x28\x0a\x6b\xe6\x3a\ \x3b\xae\xd3\x08\xda\x02\xd9\xca\x10\x37\x0d\x64\xa0\xa0\x18\xdd\ \x19\xdb\x6a\xb5\xbc\x34\x4d\xe3\xed\xdb\xb7\x17\x9d\xc8\xa3\x7c\ \xd8\x41\x20\x49\x5c\x05\xda\x39\xa2\x75\x1d\x22\x05\x54\x89\xa1\ \x1b\xac\xac\xac\xfc\xf3\xae\x5d\xbb\x8a\x32\x96\xac\x15\x97\x99\ \xdc\xab\x13\x78\x09\x58\x19\xd2\xa6\x49\xdc\xd2\x11\x0a\x18\x86\ \x4e\xa7\xd3\xb9\x65\x64\x64\xe4\xfa\x8c\x99\x31\x37\x42\x8b\xa1\ \xeb\x43\x14\x14\xe2\xa6\x4e\xda\xcc\x90\xb6\x55\x84\x01\x42\x01\ \xcb\xb2\x08\x82\xe0\x89\xd1\xd1\xd1\x83\x41\x18\x11\x8d\xb6\xa9\ \x8d\x2a\x44\x36\x68\xf9\xbb\x56\x21\x51\x69\x7f\xad\x4a\xb8\x6a\ \x20\x14\xd0\x34\x2d\xcd\x66\xb3\xd8\x9e\x8b\x32\x1d\x92\xbf\xa9\ \xc3\x9e\xea\x11\x4e\x2f\x1e\xc3\x4c\xf3\xd0\xc9\xd1\xfc\xe7\x01\ \x54\x55\x45\xd3\x34\xd1\xbb\x75\x6d\xcd\xc1\xd8\xb5\xc1\xd4\xae\ \x03\x8c\x57\xb7\xf3\xe4\xe9\xcf\x53\xd2\xca\xd8\x4f\xd7\x09\x16\ \x75\xa2\x28\x12\x9a\xa6\x29\xa6\x69\x22\x84\xc0\x38\xe0\x33\x70\ \xab\xc6\xb6\xdc\x1e\x2e\x2f\x9f\x45\xa4\x90\xce\xd6\xb0\x5e\xce\ \x23\x63\xc8\xe5\x72\x51\xa7\xd3\x11\x69\x9c\xb2\x21\x5b\x6c\x3b\ \xec\x30\x6a\xec\x43\xd3\x53\xe6\xd6\x2e\x10\x77\x34\xdc\x63\x55\ \xfc\x05\x0d\xd3\x30\x91\x52\x66\xd2\x34\x45\x06\x12\x6b\xef\x2a\ \xc5\x43\x75\x0e\x97\x8f\x70\x6e\xfd\x18\xad\xe6\x32\xb9\x76\x85\ \xc6\xd7\x4a\x28\x8a\xe8\x3d\xe7\x43\x53\xd5\xcd\x97\xc3\x59\x0e\ \xdf\x5f\x24\x8d\x15\x0a\x6a\x9e\xc5\x8d\xd7\xc9\xca\x2a\xd6\xf3\ \x65\xc2\x15\x83\x5c\x2e\x01\x28\x9b\xa6\x49\x33\x08\x98\xba\x1b\ \xcc\x41\x9b\x1d\x85\x9b\x50\x7e\x74\xdf\xaf\x70\xc3\x8e\x3b\x89\ \x65\x80\xe7\xf9\x04\x41\x80\x94\x12\xdf\xf7\xf1\x83\x80\x50\xba\ \xdc\x51\xf9\x71\xee\xdb\xfe\x4e\x7e\xe5\xc1\x2f\x71\xf3\xe4\x0f\ \x50\x1b\xeb\x3e\xc4\x83\x20\x20\x49\x12\xc2\x30\xc4\xf7\x7d\xa2\ \x24\xa4\xb1\x16\xf2\x8e\xeb\xfe\x1d\x39\x6f\x86\xf7\xdf\xfc\x9b\ \xbc\xe7\x9e\x9f\x21\x90\x6e\xbf\x7d\x9a\xa6\x5b\xf6\x8d\x79\x74\ \xfb\x87\xd9\xad\x3f\xcc\x8f\xdd\xf2\x4b\xdc\xbf\xe3\x31\x44\xd1\ \x27\x08\x7c\x7c\xdf\x27\x8e\x63\xa2\x38\xc2\x73\x5d\xa2\x24\x66\ \xbc\xb0\x9b\xa3\xa3\xef\xe4\x07\xa7\x7e\x81\x01\xef\x76\xee\xbf\ \xe1\xcd\xb8\x49\x1b\xdf\xf3\x89\xa2\x08\x00\x3f\xf0\x71\x5d\x17\ \x5d\xd3\x98\xd2\x6f\xe7\x81\xf1\x9f\xe0\x86\xf2\xdb\xf9\xaf\x6f\ \xf9\x12\xb2\xe0\xe1\xfb\x3e\x9e\xeb\x91\xa6\x69\x37\x6e\x2f\x20\ \x11\x09\xae\x1b\xf0\xa1\x83\x7f\xc2\x1b\x76\xbd\x9b\x8f\xde\xfe\ \xe7\x4c\x4c\x8f\x12\xe2\xe1\x7b\x3e\x61\x18\xf6\xc7\x24\x08\x03\ \xa4\xf0\xb9\x5d\x7b\x9c\x5b\x27\xde\x80\xa2\xc4\x3a\x6e\xe0\x10\ \x04\x11\xbe\xe7\xf5\x1b\x7b\x9e\xd7\x7d\xfd\x27\x01\xfb\x87\x6e\ \xe3\xb3\xaf\xfd\x2e\xf3\x4b\xeb\x1c\x1c\xb9\x15\x05\xa5\x3b\xc0\ \xbe\x4f\x92\x24\x44\x51\x84\xe7\x79\x84\x41\xc8\x80\x3e\xc1\xb2\ \x35\xcb\x8b\xb3\x4f\x70\xc7\xf4\x43\x78\x91\x43\x14\x84\xfd\xfe\ \x92\x24\xe9\xef\x6b\xaa\x79\x06\x72\x75\x9e\x5f\xfa\x1b\x6e\xa8\ \xbf\x81\x5a\x6e\x84\x92\x5e\xc7\xf3\xaf\x0e\x60\x12\x27\x78\xbe\ \x4f\x1c\x45\xe4\xf4\x02\x4a\xc6\xe5\x5b\xe7\xbe\x85\x48\x55\x6c\ \xbf\x49\x1c\x26\x78\x7e\x77\x60\x00\x02\x3f\xc0\x75\x3d\x34\x55\ \xc5\x69\x09\xbe\x7e\xfe\xf3\x28\x71\x9e\x6a\xa5\x40\x92\x24\x78\ \x9e\x87\xe7\x79\xf4\xee\x1a\xcf\x73\x51\x15\xc1\xc5\xb3\x16\x03\ \x43\x2a\x1b\xce\x32\xd7\x4f\xde\x4c\x35\x33\x46\x10\x76\xe3\x88\ \xa2\xa8\x7b\xe1\x37\xbf\xb7\x3a\x1e\x3f\xf5\xc8\x63\xfc\xd3\xf9\ \x4f\xa0\x24\x32\x25\xa3\x94\x88\xe2\x88\x20\x08\xfa\x03\xd8\x9b\ \x25\x0a\x2a\x7e\xe2\x50\xcf\x8e\x33\x50\xa8\x32\xb7\x3e\x8b\x84\ \xef\x19\xc0\x30\x0c\x89\x93\x18\x3f\xb1\x19\x2c\x6c\x43\x13\x59\ \x5a\xde\x1a\x59\x2d\x47\x14\xc7\x84\x61\x78\x35\x90\x20\xc0\xf7\ \x7d\x24\x29\x0a\x1a\x9e\x03\xa9\xea\xd1\x72\xdb\xac\xdb\x2b\x84\ \x9b\xdb\x93\x24\x21\x8e\xe3\xcd\x81\x4f\x49\x64\x42\x1a\x19\xcc\ \x8c\xee\xa2\xe3\xd8\x94\x33\x43\x84\x71\xd0\x8f\x15\x20\x08\x43\ \x7c\xdf\x43\x51\x14\xf2\x45\x9d\xbd\x43\x37\x62\xf9\x4d\x32\x4a\ \x09\x4d\x18\xdd\xb6\x61\xf7\x2e\x8b\xa2\x08\xcf\xf7\x91\x52\x50\ \x19\x30\x49\x02\x1d\x29\x05\x48\x85\x86\xbb\x4c\x12\xa7\xfd\x01\ \x94\x52\xe2\xf9\x3e\x61\x14\x62\xe8\x1a\x73\xcb\xcb\x18\x4a\x16\ \xed\x58\xfb\xd3\x78\x4a\x03\xdf\xf3\xb0\xec\x88\x6c\x9a\x41\x4a\ \x89\xe3\x38\xf8\x71\x44\x11\x83\x2f\xbf\xfe\x47\xbc\xf7\xd0\xaf\ \x72\xb2\xf3\x0f\x5c\x72\x4f\x10\x8b\x00\xc7\x71\x50\x55\xb5\x3f\ \x78\xae\xeb\x92\x1a\x30\x52\x57\xf8\xc6\x99\xe7\xf8\xf9\x47\xff\ \x1f\x7e\xeb\x9b\x1f\x64\x7c\x74\x9c\x34\x49\x71\x9c\xcd\x19\xb5\ \x39\x0b\xa4\x94\x0c\x68\x82\xa7\x2e\xfd\x1d\x3f\xff\xc6\xdf\xe4\ \x53\xaf\xfd\x1a\x96\xef\x50\xca\x54\x70\xdd\x79\xe2\x40\x62\x18\ \x06\x61\x18\x62\x5b\x16\xbe\x1e\xb3\x64\x5f\x62\x89\x45\xf6\x6f\ \xaf\x21\x07\x2f\x70\xa9\xd1\x5d\x20\x5b\x96\x8f\x61\xea\x00\xb8\ \x8e\x83\xdb\x71\xd1\x52\x9d\xa5\xe8\x3b\xdc\x9b\x7d\x2b\x51\x71\ \x8e\x8f\x3f\xfd\x41\x14\x15\x6c\xdb\x46\xd3\xf4\xab\x93\xc4\xf1\ \x89\xf2\x31\xdb\xb7\x0f\xf2\xd4\xa9\xaf\x32\xb3\x7d\x86\xdf\x7b\ \xf1\x71\x32\x46\x86\x30\x0e\xb0\xed\x18\xdd\xd4\x48\xd3\x14\x77\ \x73\x4c\xca\xf9\x22\xbf\xf5\xcc\xe3\x7c\xec\xc1\x3f\x40\x5b\x5c\ \x9b\xa5\xd1\x59\x63\xf9\x6c\x9b\xc8\x4d\x91\xa4\xa4\x69\x4a\xab\ \xd5\x22\x48\x22\x8a\x41\x1e\x57\x5b\xe4\xf7\xbe\xf5\x38\x8f\x5e\ \xff\xc3\x9c\x5d\x3d\xc6\xea\x0b\x92\x76\xdb\x46\x51\x14\xd2\x34\ \xc5\xb6\x6d\xda\xed\x36\x52\x15\x08\xa5\xc2\xf3\x8d\x4f\x30\x3e\ \x37\xca\x6a\x67\x8e\xc5\xd5\x39\x16\xce\x34\xf1\xda\x49\x7f\x0d\ \x16\x86\x21\x69\x9a\x52\x48\xf2\xcc\x06\xdf\xe2\xd9\x85\xcf\x62\ \xf9\x4d\x4e\x2f\xbc\xc2\xec\x31\x9f\x8d\x15\x07\x04\x94\x4a\xa5\ \x2e\xf9\x44\x29\x41\x26\x25\x51\x4a\x3c\xb3\xfa\x57\xb4\xd3\xa3\ \xf8\x9e\xc5\x4b\x17\x4f\xb0\x72\xda\xc1\x77\x62\x32\x59\x13\xe8\ \x0e\x90\x6d\xd9\x14\x92\x02\x8e\x58\xe5\x8b\xb3\xbf\x8d\x65\x59\ \x2c\xaf\x2d\xb0\xf2\x4a\x40\xbb\x61\x61\x64\xb5\xfe\x24\xb1\x1a\ \x6d\x9c\xa2\x24\x91\x15\xbe\xd5\xfc\x14\xcb\xfe\x8d\x5c\x6e\xbd\ \x8c\xe3\xb8\x5c\xfa\x66\x03\x99\xa6\xe4\x92\x1c\x69\x9a\xd2\x68\ \x34\xe9\xc8\x84\x30\x32\x71\x33\x97\xf9\x95\xaf\x7c\x04\x31\x3d\ \xb1\x53\x0a\x04\x66\x5e\x23\x8c\x42\xb2\xd9\x2c\x51\x14\x59\x69\ \x9a\x16\x6b\xd5\x3a\x72\xac\x43\x69\x58\x67\xe5\x3b\x1e\xeb\x17\ \x5d\x4c\xc3\x44\xa8\xa0\x1a\xdd\x37\x59\x10\x04\xab\x03\x03\x03\ \x45\x45\x51\xb2\x52\x4f\x29\xdd\x2c\x89\x97\x52\x16\x5e\xe9\x80\ \xa7\x21\x14\x81\x6a\x76\xd7\x60\x69\x9a\x46\x42\x88\xc0\x30\x8c\ \x42\xa5\x52\x41\xee\xb1\x28\x19\x3a\x57\x8e\x5b\x38\x4b\x09\x9a\ \xa6\x81\x2a\x51\x75\x41\x92\x24\x14\x0a\x85\x4e\xb3\xd9\x14\x3b\ \x67\x76\x16\x1b\x9d\x06\xa3\x37\x1b\xcc\xbf\x68\x63\x37\x42\x34\ \x45\x43\x92\xa2\x67\x54\xe2\x24\xa6\x52\xa9\x30\x3b\x3b\xfb\xec\ \xce\x9d\x3b\x8f\x2a\xa8\x24\x43\x16\x6a\x2a\x58\x7e\xd5\x21\x8d\ \x25\xaa\xa2\x22\x34\x50\xba\x6b\x66\xc2\x30\xa4\x5c\x2e\x5b\x02\ \x51\x6c\xe2\x73\xe3\x5b\x0a\x2c\x1c\x77\x59\x3f\xe7\x21\x43\x15\ \x64\x8a\x96\xed\x4e\x10\xc3\x30\xe8\x74\x3a\xc7\xf2\xf9\xfc\x11\ \x33\x5b\x64\xfb\x23\x12\x67\x21\x61\xfd\x9c\x8f\x76\xc7\xdd\xb7\ \xd2\x6c\x36\x19\x1d\x1d\xe5\xc2\x85\x0b\x78\x9e\xc7\xca\xca\x0a\ \x3f\xf6\x63\x3f\xc6\xbe\x7d\x7b\x99\xbb\x3c\xcf\xcb\x2f\xbf\x42\ \x7d\xbb\x24\x9d\xec\xbe\x00\x3c\xcf\xa3\xd1\x68\x50\x2c\x16\xb9\ \x74\xe9\x12\x9a\xa6\xf1\xd3\x3f\xfd\xd3\x0c\x54\x06\xf8\xab\x4f\ \xfe\x35\x95\x6a\x85\xf2\x9e\x25\x6a\xb5\x1a\x0b\x0b\x0b\x18\x86\ \x81\xa2\x28\x5c\xb8\x70\x81\x30\x0c\xf9\xc0\x07\x3e\xc0\xc1\x83\ \x07\xf9\xe4\x9f\xfe\x05\xaa\xd4\x30\x46\x97\x19\xbc\xbe\xce\xc6\ \xc6\x06\x03\x03\x03\x34\x9b\x4d\x16\x16\x16\x08\x82\x80\x3b\xef\ \xbc\x93\xc7\x1e\x7b\x8c\x30\x0c\x79\xe6\xc9\xe7\x18\xbd\x71\x19\ \x55\x53\xe9\x74\x3a\x14\x0a\x05\x16\x16\x16\x70\x5d\x97\x24\x49\ \x50\x55\x95\x87\x1e\x7a\x88\xb7\xbf\xfd\xed\x7c\xe1\x73\x5f\xe4\ \x95\x13\x27\x98\xbe\x53\x23\x9f\xcf\xb3\xb0\xb0\x80\xe3\x38\x64\ \xb3\x59\x9a\xcd\x26\xcb\xcb\xcb\x54\xab\x55\x3e\xf2\xf8\x47\xb8\ \x7c\xf1\x12\xcf\x3e\xf5\x4d\xf6\x0c\x64\xd9\x7d\x5b\xca\xfa\xc6\ \x3a\x85\x42\x01\x21\x04\x4b\x4b\x4b\x58\x96\x45\x92\x24\x7c\xe0\ \x03\x1f\x60\x6a\x6a\x3b\x4f\x7f\xed\x1b\x34\xd3\x06\x83\x13\x2e\ \xda\xe0\xe0\x20\x8e\xe3\x60\x18\x06\x53\x53\x53\x9c\x3b\x77\x8e\ \x24\x49\x98\x99\x99\xe1\xe8\xd1\xbb\x39\x55\x3b\xc5\x5a\x63\x95\ \xc1\xc1\x41\x14\x45\xe1\x95\x57\x5e\x61\x74\x74\x14\x80\xe1\xe1\ \x61\x2e\x5d\xba\x44\x9a\xa6\xdc\x76\xdb\x6d\x64\xb3\x59\xbe\xfc\ \x95\x2f\x73\xfd\xf5\xd7\x73\xe6\x4c\x16\xc3\x30\xfa\x57\xfb\xc0\ \x81\x03\x5c\xbc\x78\x11\x80\xc3\x87\x0f\x33\x3e\x3e\xce\x2d\x77\ \x1c\x61\x65\x65\x05\x2f\xb2\xd9\xb1\x63\x07\x69\x9a\x32\x34\x34\ \xc4\xae\x5d\xbb\xf8\xca\x57\xbe\xd2\x9b\x25\x94\x4a\x25\x86\x86\ \x86\x78\xf5\xd5\x57\x11\x9a\x24\x9f\xcf\x73\xfc\xf8\x71\xc6\xc6\ \xc6\x68\x36\x9b\xe4\xf3\x79\xd6\xd6\xd6\x10\x42\x50\x2a\x95\xd8\ \xbd\x7b\x37\x03\xf5\x0a\x95\x6a\x89\x72\xb9\x8c\x94\x92\x5a\xad\ \x86\x65\x59\x0c\x0d\x0d\x11\x04\x01\x42\x08\x0a\x85\x02\x37\x5c\ \x7f\x03\x19\x33\xc3\x99\xb3\x67\xd9\xbb\x77\x2f\x6b\x6b\x6b\x20\ \xa0\x50\x28\x30\x3a\x3a\x4a\x36\x9b\xe5\xe4\xc9\x93\x00\xdc\x71\ \xc7\x1d\x94\x4a\x25\x3a\x1d\x0b\xcf\xf3\x38\x79\xf2\x24\xe2\xc6\ \x1b\x6f\xec\x03\x60\x8f\x85\xdb\xed\xb6\x55\x2a\x95\x8a\x41\x10\ \xf4\xf9\xf3\xfb\x7d\x14\x45\xa1\xd3\xe9\xac\x0e\x0d\x0d\x15\x1d\ \xc7\xc9\xf6\x10\xec\x7f\xf7\x89\xe3\x38\x0a\xc3\x30\xc8\xe7\xf3\ \x85\xef\xc7\x9d\xdf\xcd\xda\x8a\xa2\x74\x3a\x9d\x8e\x28\x95\x4a\ \xc5\xff\x53\xfb\x72\xb9\xcc\xa9\x53\xa7\x9e\xdd\xb9\x73\xe7\x51\ \xcf\xf3\xf8\xdf\xc5\x22\xa5\x44\xd3\x34\x36\x36\x36\x18\x1c\x1c\ \xb4\x82\x20\x28\xfe\x4b\x71\xf7\x62\x59\x5b\x5b\x3b\x36\x34\x34\ \x74\xa4\xc7\xd6\xbd\x8f\xb6\x35\xae\x4d\x16\xc6\xb2\xac\x20\x9f\ \xcf\x67\x15\x45\x91\x48\x90\x89\xd8\xc2\xb4\x9b\x8d\x05\xa4\x69\ \x2a\xe2\x38\x8e\x3b\x9d\x0e\x3d\x20\x47\x0a\x64\x17\x53\x41\x91\ \xfd\xb6\x9b\xc1\x48\xdf\xf7\xe3\x4c\x26\x13\x2b\x8a\x22\x85\x14\ \x5d\x06\x15\x12\x94\xcd\x66\x5b\x58\xd8\xb2\x2c\xdf\xf7\xfd\x0d\ \x21\x44\x19\x90\x24\xa2\xcb\xd9\xca\xb5\xb1\x48\x29\x85\xe7\x79\ \x91\x94\x72\x61\x63\x63\x63\x5d\x4a\x19\x90\x8a\x2e\x27\xa7\x02\ \x94\x2e\x0b\x6f\xc6\x21\x36\x9f\xdd\x0d\xcb\xb2\xb6\x9b\xa6\x19\ \x0b\x90\x69\xb2\xd9\xd9\x26\x37\xb3\x25\x96\x20\x08\x94\x24\xe9\ \x36\x50\xc4\x26\xbf\xcb\xcd\x64\xc2\xf8\xae\x21\xa4\xa7\x76\x0f\ \xd4\x1d\x14\x96\x96\x96\x2e\xed\xd8\xb1\xe3\x80\xe7\x7a\x69\x98\ \x73\xc9\xef\x08\x10\xae\x46\xd2\x36\x49\x2d\x1d\x19\x75\x77\x56\ \x55\x55\x00\x72\x78\x78\x58\x64\x32\x19\x02\x11\xc2\x74\x8b\x52\ \x41\x25\xee\xe8\xd0\xce\x90\x5a\x1a\x32\x51\x40\x82\xe7\x79\x72\ \x71\x71\x31\x1a\x1b\x1b\x0b\x14\x45\x91\x8d\xcc\x06\x63\xbb\x35\ \xa2\xa6\x86\x6c\x9b\x24\x8e\x0a\x49\xff\xea\x8a\x76\xbb\x1d\x04\ \x41\x30\x36\x39\x31\x59\xf2\x93\x10\x75\x47\x9b\xac\xae\x93\x34\ \x0d\x12\x4b\x47\x06\xdd\x7e\x01\x4c\xd3\xe4\xc9\x27\x9f\xbc\x70\ \xe8\xd0\xa1\xba\x8c\x25\xab\xb9\x65\xb6\x1f\xd0\x08\xda\x20\xdb\ \x19\x92\x8e\x01\xbe\x8a\x4c\xc1\x30\x0c\x8e\x1f\x3f\xbe\x6d\x62\ \x62\x62\xde\x34\x4c\xa5\x15\xda\x72\xe0\x90\x8f\x96\xea\xc4\x0d\ \x9d\xb4\xd3\x65\xf2\x6e\x92\x03\x61\x59\x56\x9c\x24\xc9\xc4\xf4\ \xf4\x34\x96\xef\x93\xd9\x63\x51\xa8\x28\x04\x9d\x14\xad\xfe\x03\ \x1b\xe8\x8a\x49\xf3\xc9\x2e\xf7\x19\x86\x40\x55\xd5\x01\xd3\x34\ \x73\x9e\xe7\xa3\x6e\xf7\xa9\xdc\xee\xa0\x87\x45\xc2\x78\x0d\x25\ \x36\x90\x81\x46\xe3\x8b\xdd\x1c\xdc\xe6\x2d\xae\x26\x49\x82\x9d\ \xb1\x19\xbc\xbe\xc3\xee\xf1\xfd\x90\xa6\xcc\xad\x5c\x44\x55\x54\ \x3a\xcf\xd4\x09\x17\x75\xd2\x34\x55\x54\x55\xcd\x69\x9a\x96\x17\ \x42\xc0\x1e\x8b\x81\xdb\x35\x72\x69\x9d\x56\x7b\x1d\x21\x15\xc2\ \x73\x15\xac\x13\x39\x84\x90\x68\x9a\x96\x7a\x9e\x07\x52\xb2\x21\ \x5b\xec\xbf\xdf\x46\x4b\x32\x04\x6e\x03\x3d\xcd\x10\xb9\x02\xfb\ \x78\x99\x60\x51\x47\xc9\x2a\x48\x29\x37\x1f\xba\xe0\xee\x5d\xa7\ \x74\xc3\x00\x55\x75\x8a\x75\x6b\x0e\xcb\xb2\xd1\x3a\x55\x1a\x4f\ \x14\xe9\xa5\xc6\x0c\xc3\xa8\xe8\xaa\x9e\xbf\x98\xac\xf2\xe6\xbb\ \x73\x44\x81\x4f\x96\x12\x1d\x7b\x03\x43\xe4\xe8\x7c\xa3\x4c\xb8\ \x6c\xf4\x72\x8d\x91\x4c\x25\x56\xea\x30\x7a\x38\xc0\x53\xda\xbc\ \x71\xe7\x0f\xa2\x3c\xba\xfb\x71\x8a\xd5\x22\xb1\xec\xf2\xec\x26\ \x0b\x4b\xdf\xf7\xf1\x7c\x9f\x54\x84\x4c\x72\x37\x1f\xbc\xf3\xbf\ \xf2\xaf\xaf\xfb\x0d\xf6\x0c\x1d\x65\x78\xdb\x60\x9f\x26\x92\x24\ \x91\xbd\x4c\x75\x9c\x46\x24\xcd\x0a\xf7\x8e\xbf\x93\x43\x85\xb7\ \x72\xcf\xf6\x77\xf3\xa6\x5b\xde\x41\x78\x2d\x0b\xcb\xde\x71\xe2\ \x34\xe1\xd1\xed\x1f\x61\x52\x79\x80\x07\x0f\xbc\x8b\xa3\x33\xef\ \xc2\x11\x1b\x5b\x29\x47\xc6\x71\x8c\xe7\xfa\x84\x49\xc8\x48\x76\ \x9a\x47\x26\x3e\xca\xcf\xdd\xfd\x49\xbc\x66\x9d\x1d\xd3\x53\x84\ \xd2\xed\xf3\x6a\x8f\x85\x3d\xcf\xc5\x30\x54\xa6\xd5\xbb\x78\xcb\ \xd4\xe3\x1c\xaa\xbc\x95\x5f\x79\xcb\xdf\x93\xe6\xec\xcd\x55\x84\ \x8f\x94\x92\x30\x0c\xa5\xef\x7a\x44\x32\xc2\x73\x23\x3e\x7c\xfd\ \x27\xb8\x7f\xf7\xbb\xf8\xd0\x1d\x7f\x48\x65\x34\x47\x24\x83\x3e\ \x67\x4b\x29\xf1\x3d\x8f\x38\x89\x68\x76\x5a\xfc\xee\x43\x4f\xb3\ \xb4\xbe\x86\x32\x5e\xd8\xc3\xc1\x91\x3b\x37\x07\xa4\xcb\xc2\x42\ \x08\x3c\xcf\xc3\x0f\x7c\xc2\x38\xe0\xba\xa1\x5b\x79\x7e\xe1\xef\ \x79\xe1\xe4\x09\x6e\x9f\x7a\x08\x4d\xd1\xfb\x4c\x99\x24\x09\x41\ \x10\x74\x59\x38\x0a\x19\x2b\xee\x66\xb1\x73\x91\xf3\x6b\x27\xb9\ \x6d\xfa\x01\x92\x34\x21\x0e\x63\x7c\xbf\x7b\x92\x5b\xdb\x67\xd4\ \x3c\x95\xcc\x20\xaf\x7b\x2f\xb0\xbf\x7c\x3f\x3b\x87\x0e\x50\xd2\ \xeb\xf8\xbe\x8b\xe7\x79\xc4\x71\x4c\x1c\xc7\xf8\x7e\xf7\x7b\x29\ \x53\x21\x57\x4c\x78\xf6\xc4\xf3\x1c\x1c\xbd\x83\xdd\xb5\x9b\x70\ \x03\xe7\x7b\x59\xd8\xf3\x51\x55\x15\xa7\x2d\x78\x71\xee\x9f\xc9\ \x8a\x2a\x43\x03\x43\xa4\x49\x17\x41\x03\xdf\xef\x27\x13\x3c\xcf\ \x43\x51\x15\x2e\x9f\xb3\x18\x1a\xc9\xe2\x47\x2e\x37\x4c\xdc\xc2\ \x64\xe9\x3a\xfc\xb0\x1b\x47\x0f\x41\x3d\xdf\x27\x0a\x23\x34\x99\ \x61\xb8\x3a\xc4\x46\x7a\x06\xcd\x09\x6c\xce\xae\xbc\x4a\x14\xc5\ \xf8\x5e\xda\x7d\xa0\x43\x77\xc6\xf8\x01\x86\x14\xb8\xa1\xc5\x60\ \x69\x02\x59\xc8\xf3\xfa\xfa\xb9\xfe\x76\x55\x55\xfb\x2c\x1c\xc7\ \x31\x69\x92\xd2\xf4\xd7\x18\x2d\x3f\x4c\x73\x3d\x65\xc5\x9d\xc5\ \x54\xb3\x44\x51\x44\x10\x24\x7d\x02\xe9\x65\x74\x75\x52\x14\x45\ \xc1\x77\x25\x46\xce\x67\xfe\xd2\x02\x1b\xf6\x0a\x81\x6f\xf6\x5f\ \x3c\x71\x1c\x77\x93\x09\x5a\xd2\x7d\x46\x27\x0a\x23\x03\x23\xbc\ \x7c\xf9\x18\xb2\xa2\x40\xd2\x1d\xb4\x1e\xc3\x87\x61\x48\xe0\xfb\ \x18\x42\xa5\x50\x30\x98\xa9\xed\xe7\xcc\xc2\x59\x4c\x91\x45\x11\ \x4a\x3f\x23\xd4\xeb\x3b\xf6\x23\xc8\x40\xa9\x62\x92\x84\xda\x66\ \xf6\x1a\x96\x3a\x97\x49\xe2\x6e\x06\x46\x8a\xb4\x8f\x7e\xb1\x1a\ \x23\x45\x42\xe0\xc7\x04\xae\x8e\xf2\xcd\xf5\xbf\xc2\xc8\x4a\x82\ \xd0\xef\xb2\xde\xe6\x95\xec\xcd\x30\x91\x6a\x1c\x6f\xfc\x2d\x39\ \x6f\x86\xfc\xf8\x3a\x67\xed\x67\x71\x93\x36\x8e\xe3\xe0\x38\x4e\ \xf7\x04\x3d\x0f\xdb\xb6\x09\xfc\x90\x38\xbf\xc8\x2b\xe7\xcf\xf0\ \xc0\xf5\xf7\xf1\x77\x67\x7e\x9b\xb3\xad\x6f\x11\xc6\x21\x96\x65\ \xe1\x38\x4e\x3f\x1b\xe3\xba\x2e\x8a\x96\xf0\xb5\x8b\x9f\xe1\x67\ \xee\xff\x35\x3e\xf3\xea\x6f\x73\x39\x78\x8e\xac\x56\xc0\x71\x5d\ \x1c\xc7\xe9\x5f\x18\xcf\x75\x09\xc3\x88\x65\xfb\x75\xd6\x5b\x2d\ \x28\xb4\x48\xab\xb3\x04\x69\x17\xee\x1d\xc7\xe9\x67\x58\x1c\xc7\ \xc1\xea\x58\x24\x69\xca\x7c\xf4\x6d\x34\x91\xc1\xcf\x5d\xe4\x77\ \xbe\xf9\x33\xa8\x9a\x8a\x65\x59\x58\x1d\xab\x3f\xd8\xae\xe3\x12\ \xc7\x29\x53\x53\x15\xbe\xfc\xca\xe7\x19\x2a\x8d\xf0\x3b\x2f\xfe\ \x9b\xae\x26\x12\xfb\x38\x8e\xd3\xcf\x22\x59\x9d\x0e\xae\xeb\x91\ \xcf\x65\xf9\xb5\xa7\xdf\xcf\x2f\xdd\xf3\xe7\x68\xae\xb2\xce\xdc\ \x85\x39\x96\xce\xb5\x08\xac\x84\x84\x04\x80\x66\xb3\x49\xab\xd3\ \x21\xef\xe6\x09\x55\x95\xbf\xbb\xfc\x6b\xbc\xe5\xf0\x3b\x99\xbb\ \xf8\x1a\x6b\x2f\x49\xda\xed\x4e\x7f\x8d\xd8\x9b\x85\x94\x14\x14\ \xd5\xe0\x78\xe7\x53\xd4\xd7\x14\xda\xd1\x32\xf3\x5f\xd9\x60\xfe\ \x44\x9b\xc8\x4e\xbf\x2f\x0b\x2f\xf8\xdf\xe1\xb9\xa5\xff\x45\xa0\ \xd9\x5c\x7a\xfd\x3c\x57\x4e\x3b\xb4\x9a\x1e\x42\xe9\xb2\xb0\xef\ \xfb\xc4\x41\x44\xa0\x4b\xfc\x34\xc7\xb3\x4b\x7f\xcd\xbd\x7b\x7e\ \x00\x99\x6b\xf1\x9d\x6f\xaf\xb0\x7c\xce\xc2\xe9\x44\xe8\x66\x77\ \xf6\xd8\xb6\x8d\xdd\xb1\xc9\xa5\x05\x7c\x75\x9d\x63\xf6\x5f\xd3\ \xf1\x2c\x5e\xfe\xce\x2c\xcb\xaf\x04\x74\x5a\x0e\xba\xa9\xf6\x19\ \xde\x6a\xb6\xb1\x4b\x92\x58\x96\xf9\x8e\xfd\xf7\x74\x16\x6f\x60\ \xae\xf3\x2a\xeb\xb3\x0e\x97\xbf\xd5\x20\x89\x52\xb2\xd9\x2c\x69\ \x9a\xd2\xb1\x2c\xbc\x44\x92\x92\x65\x39\x7e\x95\x3f\x7c\xf9\xe7\ \x10\xe3\x43\x53\x52\x48\x05\xbd\xd0\x5d\xf7\xe4\xf3\x79\xd6\xd7\ \xd7\xcf\x55\xab\xd5\xdd\xaa\xa2\x62\x4e\x47\xd4\x76\x1a\x6c\x9c\ \x0e\x58\x3e\xe5\x90\x76\x34\xf4\x9c\x82\x96\xed\xb2\x70\x1c\xc7\ \xb6\xaa\xaa\x66\x2e\x97\xd3\x63\x23\x62\xec\x1e\x83\x60\x21\x61\ \xe9\x94\x83\x73\x05\xb4\x8c\x40\xcf\x8a\x3e\x0b\x2b\x8a\x12\xa8\ \xaa\x5a\xc8\xe5\x72\x18\x87\x22\x6a\x15\x9d\xc5\x93\x0e\x1b\xa7\ \x62\x44\x22\xd0\x73\x02\x61\x80\x4c\x25\x85\x42\xa1\xb3\xb1\xb1\ \x21\x86\x86\x86\x8a\x9d\xd8\xe6\xd0\x0f\x17\x59\x3b\x15\xb2\x7c\ \xd2\xc6\x5f\x56\x50\x0c\x30\xf2\x5d\x7d\xa2\x5a\xad\x32\x3b\x3b\ \xfb\xec\x8e\x1d\x3b\x8e\x8a\x54\x90\x4e\x38\xe4\x32\x1a\x8b\x2f\ \x3b\x78\xeb\x09\xba\xa9\xa2\x1a\x20\xb4\xee\xda\x2e\x0c\x43\x4a\ \xa5\x92\x15\x87\x71\xb1\x63\x46\xdc\xfc\xd6\x22\xab\xaf\xf9\xac\ \x9e\xf6\xf0\x57\xba\xed\x8c\x42\x97\x85\x4d\xd3\xc4\x75\xdd\xf5\ \x7c\x3e\x5f\xcf\x97\x8b\x54\x0e\x44\x74\xe6\x23\x5a\x97\x43\xb4\ \x3b\xee\xbd\x05\xc7\x71\xa8\x56\xab\x5c\xb9\x72\xa5\xa7\x0b\xf3\ \xe0\x83\x0f\x72\xf0\xe0\x41\x3a\x2d\x8b\x63\xdf\x3a\xce\xd8\x48\ \x96\xf1\x4c\x83\x62\xa9\xc0\xd2\xe2\x12\xcd\x66\xb3\xa7\x0b\x33\ \x3d\x3d\xcd\x23\x8f\x3c\xc2\xf0\xd0\x30\xff\xf3\x2f\x3f\xc5\xde\ \xc9\x09\x4a\x13\x0b\x8c\xde\x3a\xca\xca\xca\x0a\x61\x18\x92\xcb\ \xe5\x38\x79\xf2\x24\x69\x9a\xf2\xde\xf7\xbe\x97\x83\x07\x0f\xf2\ \x99\x4f\xfd\x0d\x19\x37\x8b\x9a\x9b\xe7\xae\x1f\x9e\xdc\xd4\x90\ \x0d\x54\x55\xe3\xdc\xb9\x73\x84\x61\xc8\xe1\xc3\x87\x79\xdb\xdb\ \xde\x46\x12\x27\x9c\x78\xf9\x55\x0a\x6a\x8b\x6d\xfb\x7d\xb4\x1b\ \xbb\x69\xfc\xd7\x5f\x7f\x1d\x45\x51\x70\x5d\x17\x55\x55\x79\xe3\ \x1b\xdf\xc8\xdb\x7f\xa8\xcb\xc2\xaf\x9e\x7c\x95\xd1\x1b\x54\x86\ \x86\x07\x39\x77\xf6\x1c\xae\xeb\x92\xcb\xe5\x68\xb5\x5a\x7d\x16\ \xfe\xc9\x9f\xfc\x49\x56\x96\x57\x78\xfa\xc9\xe7\xd8\x3b\x58\x65\ \xfb\xf5\x1e\xcd\x56\x83\x72\xb9\x8c\xa0\xcb\xc2\x8d\x46\x03\x21\ \x04\x1f\xff\xf8\xc7\x11\x42\xf0\xd4\xd7\x9e\x21\x2d\x27\x5c\xc8\ \x9c\x47\x1b\x1b\x1b\xe3\xd2\xa5\x4b\x14\x8b\x45\xb6\x6d\xdb\xc6\ \xe5\xcb\x97\x49\x92\x84\x3d\x7b\xf6\xf0\xf6\xb7\xbf\x9d\xb9\xb9\ \x39\x56\xd7\x57\xa8\x54\x2a\xb8\xae\xcb\xf2\xf2\x32\x03\x03\x03\ \x58\x96\x45\xa5\x52\xe9\xeb\xab\xef\x78\xc7\x3b\x50\x14\x85\x63\ \xc7\x8f\x31\x3d\x3d\x4d\xa1\x9c\x47\xd7\x75\xb2\xd9\x2c\xcb\xcb\ \xcb\xec\xd9\xb3\x87\xd7\x5e\x7b\x8d\x28\x8a\xb8\xe7\x9e\x7b\xb8\ \xe9\xa6\x9b\x38\x7f\xfe\x3c\xcd\x66\x13\xcb\x6d\x33\x39\x39\xd9\ \xcf\x5a\x6f\xdf\xbe\xbd\xcf\xcd\xdb\xb7\x6f\xef\xeb\xbc\xae\xe7\ \xb2\xb6\xb6\x46\xa5\x52\xe1\xc5\x17\x5f\x64\x68\x70\x88\x6a\xb5\ \xda\x17\xfc\x01\x6a\xb5\x1a\x07\xf6\x1f\xe0\xf9\x6f\x3c\x4f\xb9\ \x5a\xa2\x58\x2c\x02\x30\x30\x30\x80\xeb\xba\x94\xcb\x65\x7a\xa8\ \x57\x2e\x97\x79\xd3\x9b\xde\xc4\xf1\xe3\xc7\x39\x7b\xee\x2c\x3b\ \x77\xee\xc4\x75\x5d\x2e\x5c\xb8\x40\x3e\x9f\xa7\x56\xab\x21\x84\ \xa0\xd5\x6a\x91\xa6\x29\x53\x53\x53\x84\x61\xc8\xd0\x68\x1d\x29\ \x25\x8b\x4b\x0b\x88\x1b\x6e\xb8\xe1\x1a\x16\xce\x66\xb3\xcc\xce\ \xce\x9e\x9b\x9e\x9e\xde\xdd\x4b\x7c\xaa\xaa\xfa\x3d\x9a\x6d\x0f\ \xb7\x3c\xcf\xb3\x33\x99\x8c\xa9\xaa\xaa\xbe\xb5\xcd\xa6\x7c\xd8\ \x6f\x9b\x24\x09\x52\xca\x28\x8a\xa2\x40\x55\xd5\x42\x3e\x9f\x27\ \x8e\xe3\x7e\x3f\xbd\x37\x63\xef\x99\xaa\x28\x0a\xba\xae\x77\x1a\ \x8d\x86\xa8\xd5\x6a\x45\xdf\xf7\xd1\x75\xbd\xdf\x56\x51\x14\xe2\ \x38\x46\x51\x14\x92\x24\xa1\x56\xab\x71\xea\xd4\xa9\x67\xa7\xa6\ \xa6\x8e\xb6\xdb\x6d\xb2\xd9\xec\x35\xcc\xba\xf5\xbb\x61\x18\xac\ \xae\xae\x52\xaf\xd7\xad\x30\x0c\x8b\x3d\x51\xbe\xa7\x25\xf7\x74\ \xe4\x5e\x4c\x9b\xcc\xbf\x5e\x2c\x16\xeb\x61\x18\x62\x18\x46\x5f\ \x17\xd7\x0a\x85\x62\x2a\xb6\xf0\x6a\x18\x86\x8a\x10\x42\xc9\xe5\ \x72\x64\x32\x19\xc4\x26\xdb\xf6\xf4\xd2\x4d\x61\xb6\x1f\x94\xeb\ \xba\x81\xa6\x69\x6a\x26\x93\x51\x85\x10\x90\x6e\x8a\xf0\xdf\xc5\ \xcd\x9b\x4b\x9f\x68\x7d\x7d\xdd\xaf\xd7\xeb\x79\x21\x84\xcc\x9a\ \x59\xd2\x64\x53\x0f\xde\xc2\xc2\xbd\xcf\xfa\xfa\x7a\x92\xcd\x66\ \xf5\x4c\x26\x93\x66\x32\x99\x2e\x93\xb3\x45\x3f\xde\xd2\x7e\x73\ \xad\x16\x46\x51\x44\xbe\x90\x4f\x45\xda\xe3\x6c\xfa\x4b\xb3\x5e\ \x2c\x9b\x59\x74\x99\x24\x49\x52\x2c\x16\xbb\x2a\xf6\xbf\xd0\xb7\ \x65\x59\x22\x08\x02\xaf\x54\x2a\xc5\xa6\x69\x4a\x52\x90\x49\x57\ \x6f\xd6\x46\x76\x97\x93\xc4\xd2\x20\xee\xbf\x14\x12\xdb\xb6\x6b\ \x13\x13\x13\x84\x51\x44\x52\xf4\xc8\x8d\xc4\xa4\xbe\x02\xbe\x4e\ \xea\xa8\xa4\xae\xda\xbf\xa2\xb6\x6d\xaf\xd7\xeb\xf5\x9a\x69\x9a\ \x5a\x24\x62\xc4\xa8\x4d\x2e\xab\x75\xb5\x5b\xd7\x20\xb1\x55\x44\ \xd2\x1d\x1d\xcf\xf3\x9c\x20\x08\xd6\xea\xf5\xfa\x80\xaa\xaa\x69\ \x3b\xd3\x64\x68\x52\x25\x76\x14\xf0\x74\x12\x57\x45\xfa\x2a\x3d\ \x81\x3e\x0c\xc3\x28\x9b\xcd\x16\x6b\xb5\x5a\xe2\xa4\x1e\xa5\x5d\ \x01\x24\x0a\xa9\xab\x76\xdb\xdb\x2a\x24\x0a\x20\x31\x4d\x53\x5c\ \xba\x74\x29\x3e\x78\xf0\x20\x69\x94\x26\x8d\xfc\x2a\xdb\x76\x69\ \x84\x36\xe0\x99\xa4\xae\x42\xea\xe8\xc8\x50\x60\x9a\x26\xed\x76\ \x3b\x19\x1e\x1e\x8e\x73\x99\x6c\xd2\x0c\x6d\x59\xdb\x17\x23\xd2\ \x6e\xdf\xd2\xd3\x49\x6d\x15\x19\x2b\x28\xaa\xc0\x30\x0c\xc5\xf7\ \x7d\x67\xef\x9e\xbd\x81\x1f\x86\xa9\x1c\xb6\x29\xd6\x15\x12\x4f\ \xa2\x95\x1e\x5c\xd5\x55\x55\xa5\xf1\x85\x1a\xb1\xd5\x65\x5b\x21\ \x84\x6e\xdb\x36\x96\xef\x92\x8c\xad\x91\xd9\x1f\xb1\x2d\x3f\xcd\ \x4a\xeb\x75\x34\xa9\x90\xba\x3a\x8d\x2f\xd6\x7a\x6f\xb3\x2c\x90\ \x49\xd3\x54\xef\x18\x16\x43\x47\x9a\x8c\x56\x07\x51\x11\x34\x3a\ \xcb\xe8\x19\x95\x8d\x2f\xd6\x88\x9b\x1a\x49\x92\x64\x85\x10\x85\ \x34\x4d\x55\x40\xf5\x77\xac\x53\xbe\x25\x4b\x4d\x1f\x67\xa9\x79\ \x05\x45\xa8\x78\xa7\x0b\xd8\xaf\x14\x00\x89\xae\xeb\x39\x40\x13\ \x09\x2c\x69\xeb\x6c\xbf\x4b\x62\xa4\x25\x64\x9a\x10\x04\x6d\xd2\ \x40\xa1\xf3\x62\x89\x60\xde\x40\xcd\xa9\x24\x49\x92\xf3\x3c\x8f\ \xd4\x4d\xf5\xd5\xa9\x39\xa6\x0f\x0e\x30\xae\x4d\xb3\x62\xcd\x11\ \x79\x29\x71\x5b\x63\xe3\xcb\x15\xc2\x30\x42\x08\xa1\xab\xaa\x1a\ \x93\xa2\x9d\xf2\x17\x78\xeb\xd1\x3c\x22\x36\x30\x44\x86\xb6\xbd\ \x8e\xae\x99\xb4\x9e\x2a\x13\x2e\x19\xbd\x5b\xba\x1e\x45\x51\x7e\ \xd5\xea\x30\xfd\x88\x8d\x5a\xf6\x98\x2a\xed\x46\x79\x64\xe7\xe3\ \x0c\x54\x86\x08\x93\xb0\xbf\xa2\x07\x64\x10\x04\x84\x41\x48\xac\ \xfa\xdc\x5e\x7b\x37\x77\x6f\x7f\x27\xff\xe9\x0d\x7f\xcb\x74\xe5\ \x36\x06\xea\xa5\xfe\x83\xbb\xc7\x94\x41\x10\x10\xcb\x90\xd6\x1a\ \xbc\xeb\xe0\xcf\xf3\xd0\xc4\xe3\x1c\x9a\x38\xca\xdd\x07\x1f\xc6\ \x0f\x9d\x5e\x7b\xd9\xd3\x91\xc3\x30\x24\x8c\x23\xde\x3c\xf3\x41\ \x86\xd2\xdb\x79\xd3\x0d\xef\xe2\xc8\xe8\x0f\xe1\xd2\xc2\xdf\x8c\ \xa3\xc7\xc2\xbe\x1f\x90\xc8\x88\x89\x81\xdd\xfc\xc8\xde\x7f\xcf\ \xbf\x3b\xfa\xdf\x59\x9e\xd7\xd9\x31\x39\x43\x94\xfa\x04\xfe\x55\ \x55\xae\xcb\xc2\x1e\xba\xa1\x32\x63\x1c\xe5\x8d\x13\xff\x86\xbd\ \x85\x87\xf8\xc5\x37\x7e\x92\xd8\xb0\xfb\x9a\xf3\xa6\x2a\x27\x7d\ \xcf\x27\x25\xc6\x0f\x42\xde\x77\xf0\x0f\xb9\x77\xe7\x3b\xf9\xe0\ \xad\x7f\x40\xa9\x96\x23\x96\x5d\x1a\xbb\xaa\x26\xfa\x04\x51\x48\ \xa2\x7a\xdc\x5b\xfa\x59\xf6\x0e\xde\x8a\xb2\x7f\xe4\x30\x23\x95\ \xb1\x2e\x1d\x78\x2e\xfe\x26\x27\xf6\xde\x88\x71\x1c\xb0\xb7\x7e\ \x84\xaf\x5c\xfc\x73\x2e\x5f\x59\xe4\xd0\xb6\xdb\x50\x64\x77\xd9\ \xd0\xe3\xd5\x3e\x0b\x87\x21\xbb\xaa\x37\x71\x7e\xfd\x15\x8e\xcd\ \x3d\xc9\x1b\xa6\xff\x35\xba\x92\x21\x0c\xbb\xf6\xb3\x5e\xdf\x3d\ \x12\xc9\xe9\x45\x8a\x66\x95\x0b\xce\xb3\x5c\x57\xb8\x9f\xd1\xca\ \x24\x06\x19\x3c\xcf\xed\xaa\x7c\x69\xda\xd7\x6e\xd3\x24\x25\xa3\ \x64\x49\xf4\x16\x4f\x7c\xfb\x49\x0e\x8d\xdc\x41\x2d\xb3\x0d\x3f\ \xf0\xfa\x71\xf7\x58\xd8\x73\x5d\x34\x55\xc5\x6a\xc2\x4b\x8b\x4f\ \x52\x54\x87\x19\xa9\x0e\x41\x2a\xf0\x3d\x1f\xdf\xef\x0a\xeb\x41\ \x18\xe0\x79\x2e\x42\x11\x5c\x3c\x63\x31\x34\x6a\xe0\x86\x1d\x0e\ \x8e\xdf\x44\xc5\x1c\xee\x8a\xf4\x5b\x58\xd8\x75\x5d\xc2\x30\xa0\ \xdd\xf6\xf8\xf1\x87\xde\xcd\x4b\xcb\x5f\x41\xf1\x43\x1f\x3f\xec\ \x66\x1c\xc2\x4d\x1f\xdd\x56\x5d\x18\x54\xfc\xd8\x61\xa8\x30\xc1\ \x40\x7e\x80\xa6\xdd\x04\xa1\x74\x99\x73\x13\x71\xba\xac\x1b\x90\ \xc6\x29\x4e\xd8\x61\x20\x37\x48\xd1\xac\xd2\x8e\x56\x51\x95\xab\ \xbe\xc2\x28\x8a\xfa\xc9\x84\xee\xec\x4d\x11\x08\x94\x24\x4b\xa2\ \xdb\xb8\x5e\x80\x17\xba\x84\xc1\xb5\x7d\xf7\x66\x8c\x50\x54\x34\ \x91\x65\x64\x60\x94\x75\x6b\x0d\x2f\xb2\x49\xe2\x84\x30\xb8\xba\ \x8c\x09\xc2\x00\xcf\xf7\x51\x84\x4a\xbe\xa0\x33\x53\x3f\x84\x15\ \x36\x50\x31\x00\x05\x7f\x73\x06\x02\x44\x61\x57\x17\x46\x42\xa9\ \x6c\x92\x04\x1a\x9a\xa2\x23\x53\x08\x22\x97\x24\x4e\xfa\x62\x7a\ \x6f\x4c\xa2\x28\xc2\xd4\x35\xae\x2c\x2f\x51\xcc\x54\xd1\x3e\x77\ \xf1\xe3\x78\xda\x3a\x41\xe0\xe3\xba\x29\x19\x99\x5e\x75\x26\xc4\ \x11\x65\x25\xcb\x17\x2e\xff\x2e\x3f\x7d\xf8\xe3\x3c\xb9\xf8\xdf\ \x99\xeb\x9c\xc7\x4f\xec\x2e\xcb\x6e\x2e\x21\x7a\x59\x16\x19\x43\ \x98\x9f\xc3\xee\x24\x1c\xd9\x73\x23\x7f\x73\xea\xb7\xa8\x0c\x16\ \x88\xa2\x18\xd7\x0d\x89\xe3\xb8\x6f\x91\x00\xc8\x18\x0a\x4f\x5c\ \xf8\x5f\x7c\xe4\xde\xff\xc2\x5f\x9c\xfa\x45\xe2\x58\xa2\xa2\xe1\ \xba\x5d\x59\x53\xd7\xf5\x6e\xf0\x91\x24\x4d\x25\x0b\xed\x0b\x2c\ \x8a\x55\x4a\x25\x03\x6d\x78\x8e\x85\xb6\x4e\x1c\x77\x6d\x19\x99\ \x9c\xd9\x8d\xdb\xf5\x70\x2d\x17\x43\x6a\x5c\x09\x5f\x62\xc6\xbb\ \x81\x96\xf6\x1a\xbf\xf9\x8d\x0f\xa0\xeb\x1a\xb6\xd3\x46\x57\xf5\ \xbe\xb0\x1e\xba\x01\x69\x51\x32\x35\x35\xc0\x57\x4f\x7e\x81\x99\ \xc9\x51\x7e\xfd\xf9\x1f\x27\x10\x36\x51\x1c\xe1\xba\x11\xaa\xae\ \x5c\xbd\x2b\xe3\x88\x72\xa1\xcc\xef\x7c\xf3\x71\x3e\x72\xf4\xd7\ \xd1\x6c\x7d\x99\xf5\xc5\x16\x2b\xaf\x37\x89\x83\x94\x5c\xd4\xd5\ \x40\x9b\xcd\x26\x7e\x12\x91\x77\x73\x84\xea\x3a\x7f\xf0\xed\x8f\ \x72\xc3\xcc\x8d\xb4\x5a\x57\x38\xff\x4f\x01\xad\x96\xdb\xd7\x85\ \xdb\xed\x36\x71\x1c\x43\x4e\x20\x45\x95\xcf\x5f\xfe\x6f\x3c\x9c\ \xf9\x57\x34\xd3\x79\x16\x8f\xe9\xac\xce\x36\x89\x9c\xee\xba\x4a\ \xd3\xb4\xbe\xff\x26\x17\xe5\x58\x8e\x5e\xe5\xef\xce\xfe\x0e\x8e\ \x6c\xd2\xf6\x9a\x2c\x5d\xb4\x68\x6e\x61\x61\xcf\xf3\x48\xfc\x98\ \x70\x50\xe0\xcb\x0c\x5f\x5f\xf8\x53\x0e\x6b\x47\x49\x0b\x1d\xe6\ \x2f\x84\x2c\x9c\x6e\xe1\xb5\x63\x34\xa3\xbb\x32\xb0\x2c\xab\xcb\ \xc2\x71\x81\x40\x59\xe3\x45\xfb\x2f\x48\x8c\x80\x85\x53\xeb\xbc\ \xfe\xb4\x4b\xa7\xe9\x7e\x17\x0b\x77\xe8\x14\x52\x62\x4a\x1c\x6b\ \x7e\x86\xf9\x78\x27\x4d\xed\x32\xeb\x97\x5c\x2e\x7c\xa3\x2b\x30\ \x65\x32\x19\x92\x24\x61\x63\xa3\x41\x47\x26\x04\xa1\x8e\xa5\xbc\ \xce\xc7\x9f\xfe\x08\x62\xfb\xc4\xb4\x4c\x3c\xc8\x54\xba\x9d\xe6\ \x72\x39\xa2\x28\xb2\xa4\x94\x45\xdd\x30\x30\x27\x13\x8a\x83\x2a\ \xf6\x52\x44\x63\xd6\x23\x6a\xa8\x68\x86\x82\x9a\xe9\x2f\x90\xe7\ \x34\x4d\x1b\x30\x4d\xb3\x18\xeb\x11\x43\x87\x0d\xe2\x46\xc2\xc6\ \x15\x07\x7f\x59\x25\xf1\x25\x66\x59\x25\x4d\x13\x00\x0b\x68\x1a\ \x86\x31\xa9\x69\x1a\xe6\x9e\x84\x72\x51\xa7\x31\xe7\x61\xcf\x27\ \xf8\x1b\xa0\xe7\x15\x14\xbd\x6b\x6f\x2b\x16\x8b\x96\xe7\x79\xc5\ \x8c\x61\xe2\x19\x01\x33\x77\xe6\x68\xcf\x85\x34\xe7\x5d\xfc\x55\ \x95\xd8\x97\x64\x4a\x57\x59\x78\x6e\x6e\xee\xd9\x89\x89\x89\xa3\ \x49\x94\xa2\x8c\x85\xe4\x73\x2a\x8d\xd7\x03\xac\x85\x10\x81\x8a\ \x66\x8a\x4d\x5b\x9e\x4a\x10\x04\x94\xcb\x65\x2b\x0a\xc2\xa2\x65\ \xc4\xec\xbf\xa7\x40\x73\x36\xc0\x5a\x0a\x70\x16\x24\x69\x04\x66\ \x45\x21\x4d\xba\xba\xb0\xe7\x79\xeb\x86\x61\xd4\x51\x75\x26\xef\ \xd6\x88\xec\x14\x77\x2d\x46\x3b\x72\xcb\x4d\x34\x5b\x4d\x0a\x85\ \x02\xed\x76\x9b\x20\x08\x58\x58\x58\xe0\xb1\xc7\x1e\x23\x9f\xcf\ \x93\x84\x29\x2f\xbd\xfc\x32\x5a\x4d\xc5\xcd\x39\x28\xaa\x82\xe3\ \x38\xac\xae\xae\x52\xad\x56\x39\x7b\xf6\x2c\x33\x33\x33\xdc\x7f\ \xff\xfd\x0c\x0f\x0d\xf3\xe9\xff\xf9\x19\x76\x4d\x4d\xb0\xe0\x2e\ \xb0\xed\xe0\x28\x1b\x8d\x0d\x6c\xdb\xa6\x52\xa9\xf0\xca\x2b\xaf\ \x20\xa5\xe4\x7d\xef\x7b\x1f\xf5\x7a\x9d\x27\xbe\xf2\x35\x74\x0c\ \x32\xc6\x22\xe3\xf7\x8c\xb1\xba\xb6\x82\xd1\xb5\xa9\xf5\xfd\xda\ \x77\xde\x79\x27\x37\x1e\x3e\x8c\xa1\xe9\x7c\xfb\x5b\x2f\x33\x5c\ \x0a\x68\x8f\xb7\xd1\xa6\x55\xaa\xd5\x2a\x67\xce\x9c\x21\x93\xc9\ \x6c\x5a\x36\x34\xee\xbb\xef\x3e\x1e\x7d\xf3\xa3\xbc\xf0\x8d\x17\ \x79\xe9\xa5\x97\x98\xda\x97\xa1\x7c\x7b\x89\xd9\xd9\x59\x2c\xcb\ \xa2\x5c\x2e\xb3\xbe\xbe\xce\xd2\xd2\x12\xd5\x6a\x95\x77\xbf\xfb\ \xdd\x34\x36\x36\x78\xe6\xa9\xe7\xd9\x57\x1f\xc0\xcf\x7a\x34\x06\ \x1a\x0c\x0e\x0e\x12\x86\x21\x2b\x2b\x2b\xb4\xdb\x6d\x3c\xcf\xe3\ \xc3\x1f\xfe\x30\x99\x4c\x86\x57\x5f\x39\x4d\x4b\x69\xe2\x97\x3d\ \xb4\xa9\xe9\x29\xdc\x53\x2e\x9a\xa6\x31\x33\x33\xc3\x99\x33\x67\ \x48\xd3\x94\x5d\xbb\x76\xf1\xc8\x23\x8f\xf0\xe2\x8b\x2f\xb2\xde\ \x5c\xa3\x56\xab\x21\xa5\xe4\xfc\xf9\xf3\xd4\xeb\x75\x3c\xcf\x63\ \x60\x60\xa0\x6f\x9b\x7d\xec\xb1\xc7\xf0\x7d\x9f\x13\x27\x4f\x30\ \x33\x33\x43\xa1\x94\xa7\x5c\x2e\x53\x1f\xac\x73\xfa\xf4\x69\x6e\ \xba\xe9\x26\x4e\x9c\x38\x41\x10\x04\xdc\x7f\xff\xfd\x4c\x4d\x4d\ \xd1\x6e\xb7\xd9\xd8\xd8\xc0\x0b\x1d\xf6\xee\xdb\x0b\x02\x5c\xd7\ \x65\xf7\xee\xdd\xcc\xcf\xcf\x03\xb0\x6d\xdb\x36\xde\xf9\x8e\x77\ \xe0\x79\x1e\x17\x2e\x5e\x40\xd7\xab\xec\x1f\xb8\x8e\x6f\x7f\xfb\ \xdb\xd4\x6a\x35\xea\xf5\x3a\xba\xae\xf7\xb3\xe3\xbb\x77\xef\xe6\ \xbe\x7b\xef\xe3\xe4\x89\x93\xd4\x06\xab\x98\xa6\x49\xb9\x5c\xa6\ \xd5\x6a\xf5\x2f\xa4\x65\x59\x00\x94\xcb\x65\xde\xf6\xb6\xb7\xf1\ \xc2\x0b\x2f\x70\xfe\xc2\x05\xf6\xee\xdd\x8b\x65\x59\x5c\xbc\x78\ \x91\x81\x81\x01\x4a\xa5\x12\xa6\x69\xf2\xda\x6b\xaf\x21\xa5\xe4\ \xc8\x91\x23\x4c\x4c\x4c\xf4\x66\x24\xaf\xbd\xf6\x5a\xd7\x23\xdd\ \x63\xbf\x28\x8a\xc8\x66\xb3\x58\x96\x65\x65\x32\x99\xe2\xb6\x6d\ \xdb\x58\x5a\x5a\x42\xd3\xb4\x1e\xcb\xf6\x59\xb4\xb7\x8f\xeb\xba\ \x73\xd9\x6c\x76\x60\x64\x64\xa4\xd8\x4b\x3e\xf6\xb6\xa7\x69\xda\ \xff\xbe\xe9\xdf\xb3\xc2\x30\x6c\xe6\xf3\xf9\xc9\xf1\xf1\x71\x16\ \x17\x17\x7b\x0b\xf7\xee\x33\x74\x93\xa3\x7b\x8c\xab\x69\x9a\xe5\ \xba\x6e\x71\x66\x66\xa6\xef\x70\x48\xd3\xb4\xcf\xca\x3d\x96\x4e\ \x92\x84\x6a\xb5\xda\x67\xe1\x9e\x51\x60\x2b\xe3\xf7\x72\x97\xbd\ \x9c\x64\xa3\xd1\x60\x68\x68\xc8\xca\xe5\x72\xc5\xad\x2b\x84\xad\ \xb1\xf7\x58\x5e\x51\x14\xda\xed\xf6\x7a\xb5\x5a\xad\xd7\x6a\x35\ \x9a\xcd\x66\x9f\x99\xb5\x6c\x26\x1b\xf4\x98\x6f\xf3\xf9\x27\x6d\ \xdb\x6e\xd4\xeb\x75\xa3\xd1\x68\x90\xcd\xe6\x20\x05\x5d\xdd\xc2\ \xc1\x5b\x18\xdd\xb6\x6d\x3f\x93\xc9\x48\xc7\x71\x10\x42\x90\x35\ \x73\x7d\xdf\x72\x9f\x27\xaf\xb2\xb0\xf0\x3c\x8f\x4c\x26\x13\xae\ \xaf\xaf\xcb\x6c\x26\x4b\x9a\x82\x40\xa2\x6b\xc6\x35\xcc\x2a\x13\ \x6a\x82\x26\x00\x00\x1f\x45\x49\x44\x41\x54\x84\x60\x75\x75\xd5\ \xca\xe5\x72\x99\x76\xbb\xad\x17\x8b\xc5\x2e\x93\x7f\x9f\x7e\x7b\ \x03\x93\xa6\x69\x1b\xe8\x14\x8b\xc5\x10\x49\xbf\xfd\x77\xf3\xb0\ \xaa\xaa\x04\x41\x10\x85\x61\xa8\xab\xaa\x6a\x02\x52\x53\x74\x34\ \x45\xbf\xf6\x1c\x05\x08\x04\xb6\x6d\x8b\x24\x49\x56\x72\xb9\x5c\ \xd9\xb6\xed\xd4\xd0\xcd\xbe\x9c\xaa\x8d\xec\x2d\x99\xf1\x86\x81\ \x48\x05\xa8\x5d\x9d\xe0\xf2\xe5\xcb\xcd\xb1\xb1\xb1\xed\x9e\xe7\ \x93\x16\x3d\xb2\x63\x11\x69\x92\x82\xab\x93\xb4\x32\x24\x2d\xad\ \xef\x91\x76\x1c\xa7\x30\x31\x31\xa1\xaa\xaa\x4a\xac\x24\x24\xdb\ \xda\x94\xcb\x2a\x49\x24\x51\x82\x0c\x51\x43\x43\x3a\x3a\x02\x81\ \xe3\x38\xba\xe7\x79\xa5\x7a\xbd\x6e\xa8\xaa\x4a\x33\xdb\x60\x62\ \x87\x4e\xe4\x27\xc8\x4e\x96\xa4\xad\x21\x5d\xb5\x9f\xf4\x74\x5d\ \x37\xc9\x64\x32\xf6\xf6\xc9\xc9\x01\x37\x0e\xc8\xef\x75\x50\x84\ \x20\x75\x55\xd2\x8e\x49\xd2\xd4\x21\xa5\xeb\x91\x36\x0c\xce\x9c\ \x39\xa3\x4f\x4c\x4c\x94\x64\x22\x69\xe6\x36\x18\x99\xd6\x88\xfc\ \x14\x6c\x93\xa4\xad\x93\x74\xba\x71\x1b\x86\xce\xca\xca\x0a\x43\ \x43\x43\xcd\x5c\x36\x67\xac\x07\x1d\x86\x0f\x74\x0d\xec\xa9\xab\ \x20\x2d\x93\x68\xa3\x1b\xb3\xa2\x77\x97\x53\xed\x76\x7b\x6e\x68\ \x70\x70\xbf\x17\x46\x88\x6d\x36\xc5\xaa\x42\x1c\x26\x68\xe5\x37\ \xae\xa2\x48\x9d\xd6\xd7\xab\x44\x2b\x46\xaf\xf6\x22\xaf\x69\x1a\ \x71\x9a\x20\x47\x6d\xb4\xc3\x2d\xf6\xd5\x6e\x66\xc5\xbe\x8c\xed\ \x36\x50\xbc\x0c\x8d\x2f\x0c\xf6\xec\x17\x5a\x1c\xc7\x4a\x18\x86\ \x58\x9a\x83\xb9\x63\x89\xfd\x3b\x0f\x32\x59\x9d\xe6\xe9\x73\xff\ \x40\x25\x57\x63\xfd\xab\x39\x82\x05\x13\xd7\x75\x15\x45\x51\xb4\ \xde\xed\x14\xef\x6c\x52\xbc\x39\xc3\x74\xe9\x00\xe7\x57\x4e\x92\ \xa6\x92\xe8\x74\x15\xfb\x44\xbe\x97\x20\x50\xa3\x28\xd2\x7d\x37\ \x60\x21\x5d\xe1\xe0\x4d\x0e\x25\x31\x8c\x24\xc0\xf6\x56\x89\x2c\ \x81\x73\xac\x4a\xb0\xa0\xf7\x6e\xd1\x9c\xaa\xa9\xc8\x50\x62\x4f\ \xad\x31\x70\x7b\x99\xaa\x36\xc1\xba\x33\x8f\x65\x3b\x18\xd6\x00\ \x8d\x7f\x2e\x03\xa2\x97\x2e\xd3\x55\x29\x38\x1f\x2e\xb2\xff\x68\ \x19\x2d\xc9\x92\x33\xb2\xcc\x6f\xbc\x4e\x45\x14\xe8\x3c\x3b\x40\ \xb8\x64\xf4\xd2\x68\x75\x10\xb4\x02\x8f\x1d\xb7\xfa\x50\x6c\x73\ \xd3\xf0\x3d\x28\x6f\xde\xf1\xb3\x8c\x0c\x4e\x11\xa7\x61\xdf\x23\ \x0d\x48\xdf\xf7\xf1\x3d\x9f\x98\x80\x5d\xc6\x03\xfc\xab\x1b\x3e\ \xc6\x8f\x5d\xf7\x9b\x5c\x3f\xf8\x28\xa3\x63\xa3\x7d\xed\x36\xde\ \x74\x9f\x06\x41\x40\x9c\x44\xac\xaf\x06\xfc\xe8\xc1\x9f\x43\xb6\ \x07\xf9\xa9\x23\xbf\xce\x0f\x1d\x79\x1f\x41\xe2\x5f\xe3\x50\xf5\ \x3c\xaf\xef\xfc\x7c\xf3\xcc\x87\xd8\xa1\x3f\xc8\xdd\x3b\x7f\x90\ \x37\xed\xfc\x20\xa1\x66\xe3\x79\x57\xfb\xee\x89\x56\x51\x1a\x31\ \x9c\x9f\xe2\xa1\x89\x0f\xf1\x73\x77\xfd\x19\xf6\xd2\x20\x37\xee\ \xb9\x95\x20\xb5\xaf\xd5\x85\xfd\x00\xd7\x75\xd1\x74\xc1\x8e\xdc\ \xed\x7c\xf8\xc8\x1f\x70\xa0\xfa\x46\x7e\xe9\xbe\x4f\x11\x67\xba\ \x6d\xb7\x78\xa4\xa5\xeb\x7a\x24\xa4\x78\x81\xcf\xfb\x0e\xfc\x01\ \xf7\xed\xf8\x51\x7e\xe6\x96\x4f\x32\x36\xbe\x8d\x30\xbd\xd6\x23\ \xed\xf9\x1e\x7e\x10\x10\x0b\x97\xbb\x73\x1f\xe3\xc0\xf0\x9d\x28\ \x35\x73\x9c\xa1\xfc\x58\x9f\x67\x7b\xce\xa5\xfe\x49\xc6\x01\xd7\ \x0d\x1f\xe1\x89\x4b\x7f\xc1\x97\x5f\x78\x8a\xbd\x43\x37\xf4\x6c\ \x1a\xfd\x37\x5f\xdf\x23\x1d\xfa\xd4\x8c\x49\xe6\xdb\x17\x78\x75\ \xe5\x05\x6e\x99\x78\x00\x3f\xb6\xfb\xfa\xeb\x56\x8f\xb4\xe7\x79\ \x64\xf5\x22\xe5\x4c\x95\x67\x16\x3e\xcd\x91\x91\x47\x29\x64\x4a\ \x68\xa9\x89\xe7\x79\xb8\xae\xbb\xc5\xc7\xec\x11\x47\x11\xe5\xec\ \x00\x4a\xa1\xcd\x17\x5f\xfc\x12\x3b\x6b\x07\x29\x68\x15\xfc\x20\ \xc0\xf3\xbd\xab\x16\x5f\xdf\xbf\xea\x91\x6e\xe8\x7c\xe6\xe5\x3f\ \x24\x9f\x8e\x33\x33\x3e\x09\xa9\x8a\xe7\x5f\xf5\x48\x77\xe3\xea\ \x7a\xa4\x2f\x9c\xb6\xa8\x0d\x2b\xac\x3b\x8b\xec\x9f\x38\x44\x4e\ \x2d\x6f\xb2\xb2\x77\xcd\x85\x8f\xc2\x90\x76\xdb\xe3\xa7\x1e\xfd\ \x71\xbe\x7a\xe9\x93\x28\x61\x1c\x63\x79\x9d\x4d\x16\xbe\xea\x76\ \xef\x79\x89\x91\x02\x27\xb4\x19\x2e\x6c\x67\xa8\x32\x44\xcb\x6d\ \xf5\xf5\xd5\xad\xbc\x1a\x86\x21\x71\x94\x12\xa4\x0e\xb5\xdc\x08\ \x05\x7d\x80\x8e\xdf\x24\x6f\x94\xfb\x09\x87\x9e\x1a\xd7\x9b\xb1\ \xa9\x4c\x10\x28\x68\x69\x9e\x58\xb3\xf0\xbc\x08\x3f\xf2\x09\x43\ \xbf\xdf\x77\x92\x24\x04\xa1\x4f\x12\xa7\xa4\x52\x22\x63\x9d\xb1\ \xda\x04\xab\xad\x35\xc2\x34\xd8\xe4\xd5\x2d\x1e\xe9\x4d\x83\x80\ \xa2\xa8\x64\xb3\x1a\xe3\xe5\x19\x2c\xbf\x89\x21\xf2\x48\xb9\xe9\ \xcf\x0e\xba\x49\x8d\x5e\xa6\x47\x4a\x28\x57\x4c\xe2\x40\x43\x57\ \x0c\x04\x0a\x61\xe2\x13\x47\xc9\x35\x1e\xe9\x1e\x17\x1b\xba\xc6\ \xdc\xd2\x12\x45\xa3\x8a\x72\xac\xf9\x69\x7c\xd1\xda\xf4\x39\x7b\ \xdf\x57\x17\xfe\xc6\xca\xa7\xd9\x6e\xdc\xce\xf8\x4e\x85\x13\xcd\ \x7f\xc2\x89\xdb\xb8\x6e\x37\x63\xd2\xbb\x85\x5d\xd7\x25\x08\x43\ \x0a\xb5\x90\x97\x5f\xff\x36\x8f\x3f\xfc\x4b\x7c\xfc\xf9\xf7\xf1\ \xed\xc5\x27\x49\x93\xf4\x9a\x6c\x4c\xaf\x6f\xd5\x48\xf9\xfa\x85\ \xcf\xf2\xf8\xbd\xbf\xc2\xe7\x4e\xfd\x01\x67\xec\xaf\xa1\xa2\xe2\ \xba\xd7\xce\x6e\xd7\xf5\x88\xe2\x88\x25\xeb\x12\xed\x8e\x4d\x6d\ \xd8\x40\xd6\x2f\xb2\x61\xaf\x10\x27\xdd\x4c\x4f\x3f\x9d\xe5\xfb\ \xb8\x8e\x8b\x94\xd0\xe0\x2c\x7b\x86\x6e\xc0\xcb\x5f\xe4\x77\x9e\ \xf9\x18\xba\xa6\x5f\x33\xbb\xbb\x71\x3b\x24\x49\xca\xd4\xd4\x00\ \x4f\x9d\xfe\x67\xc6\x6b\x93\xfc\xc6\x73\xef\x07\x91\xf4\xfb\xee\ \x5d\x78\xd7\xeb\xde\xc2\x95\x7c\x99\xdf\x78\xe6\x83\x7c\xf0\xa6\ \xdf\x41\x6b\x27\x8b\xb4\xa3\x15\x96\xce\x35\xf0\x3b\x29\x71\x9a\ \x47\x08\x41\xb3\xd9\xa4\xdd\xb1\x28\xb8\x39\x84\xa9\xf2\x47\x2f\ \x3f\xce\x1b\xf6\xfe\x10\xab\xf1\x79\xd6\xbf\xd3\xe5\xdf\x5e\x32\ \xc1\xb6\x6d\x5a\xad\x56\x37\x87\x2f\x2a\x3c\xbb\xf6\x67\xa8\xaf\ \x25\xb4\xc3\x65\x5a\x97\x57\x59\x38\xd3\xc0\x6f\xa7\xdf\xc3\xc2\ \xf9\x28\xc7\x42\xf8\x32\x9f\x3f\xf3\x87\x58\x41\x93\x96\x7f\x9e\ \xd5\x79\x9b\x56\xd3\x05\x21\xb7\xe8\xc2\x31\x81\x96\x12\x93\xe7\ \x2b\xaf\xff\x0f\xee\xd1\xde\x02\x19\x87\xb3\xf3\x27\x58\x39\xdb\ \xd5\x85\x35\x43\x05\xa0\xdd\x6e\x63\x37\x6d\x32\x51\x81\x66\xf2\ \x3a\x5f\xb8\xf4\xbb\xb8\x71\x93\x8b\xce\x4b\x6c\x2c\xf8\x6c\x2c\ \x37\x31\xf2\x5d\x0d\xc4\xb6\x6d\xac\x46\x07\xbb\xd8\xd5\x85\x9f\ \x5f\xfb\x4b\x2e\xd9\x7b\x58\x8b\xcf\x11\x58\x3e\xe7\x9f\x5e\x43\ \xd1\xe9\xeb\xc2\xcd\x66\x93\x4e\x9a\x10\x44\x06\xe6\xc0\x02\xbf\ \xfc\xa5\x9f\x40\xec\xd8\xb9\x43\xc6\xb6\xc4\x2c\x68\x24\x69\x42\ \x2e\x97\x63\x7d\x7d\xfd\xdc\xe0\xe0\xe0\x6e\x5d\xd3\xd1\xb6\x85\ \xe4\xea\x82\x8d\xb3\x3e\x76\x23\x40\x7a\x3a\xc8\xae\xde\xbb\x99\ \x91\x5e\xad\x54\x2a\x45\x20\x8b\x2e\xc9\x5f\x97\x12\x2d\xa7\xb4\ \x96\x1c\x12\x57\x23\xf1\x40\xcf\x0a\x52\x99\xf6\x3d\xd2\xa6\x69\ \x16\x72\xb9\x1c\xca\x8c\x4f\x5e\x55\x59\x39\xef\x10\x75\x20\xf1\ \xe8\x56\x11\xe9\xdd\x75\x5d\x3e\x9f\x5f\x6c\xb5\x5a\xa5\x91\xe1\ \x91\x82\x15\x5a\xcc\x3c\x98\x63\xf9\x84\x47\x6b\xc9\x45\x09\x0c\ \x02\x27\xc1\xc8\x77\x39\xfb\x1a\x16\x0e\x12\xf4\xbd\x31\x85\xac\ \xca\xca\x69\x9b\xd0\x92\xa4\x9e\x82\x4c\x41\xcb\x82\xd8\x4c\xc7\ \x55\x2a\x15\x4b\xa6\xb2\xd8\xc1\x67\xef\xbd\x79\x56\x4e\xba\xd8\ \xab\x21\xa9\xaf\x10\x3a\x29\x66\x49\x25\x89\x93\x9e\xe9\xf4\x58\ \x3e\x9f\x3f\x62\x98\x59\xc6\xee\x56\xb0\x97\x23\xda\x73\x21\xda\ \xa1\x03\x87\x7a\x86\x6e\xe6\xe6\xe6\x48\xd3\x94\x85\x85\x05\x1e\ \x7e\xf8\x61\x0e\x1c\x38\x40\x6b\xa3\xcd\x73\xcf\x7e\x83\xc9\x5d\ \x19\x36\x1a\x1b\x14\x8b\x05\x36\x36\x36\x68\x34\x1a\x54\xab\x55\ \xce\x9d\x3b\x87\xa6\x69\xbc\xef\x7d\xef\xa3\x90\x2f\xf0\x99\x4f\ \x7d\x96\xda\xb6\x2a\x57\xd2\x39\x86\x86\x87\x58\x5a\x5a\xc2\x34\ \xbb\x0e\xfa\x8b\x17\x2f\x12\x86\x21\x8f\x3f\xfe\x38\xf5\x7a\x9d\ \x2f\x7e\xfe\x1f\xbb\x25\x57\x43\xcb\x8c\x1c\x1a\x61\x75\x75\x95\ \x6c\x2e\xdb\xd7\xa6\x3d\xcf\xe3\xd6\x5b\x6f\xe5\x91\x47\x1e\xc1\ \xd0\x0d\x9e\x7d\xea\x79\x0a\x03\x0d\xe2\x52\x44\x14\xc7\x0c\x0e\ \xd6\xb9\x70\xe1\x02\xaa\xaa\x76\x4d\x42\x8a\xc2\xbd\xf7\xde\xcb\ \xfd\xf7\xdf\xcf\xd3\x5f\x7f\x86\xd3\xa7\xce\x50\x9b\xd4\x31\x32\ \x26\xcd\x46\x03\xdb\xb5\xc9\x66\xb2\x74\x3a\x1d\x56\x56\x56\xa8\ \xd5\x6a\xbc\xef\xfd\xef\x63\x7e\x6e\x9e\xe7\x9e\x7a\x9e\xeb\x46\ \xf3\x44\x83\x01\x8d\x66\x93\x5a\xad\x4a\x14\x45\x2c\x2f\x2f\xf7\ \x2d\x29\x1f\xfa\xd0\x87\xa8\xd7\x6b\x7c\xeb\xf9\x97\x58\xd5\x57\ \x88\xb6\x07\x68\x3b\x76\xec\xe8\x83\x75\xa1\x50\xe0\xf4\xe9\xd3\ \x24\x49\xc2\xde\xbd\x7b\xb9\xfb\xee\xbb\x09\x82\x80\x95\xf5\x65\ \x06\x07\x07\xd9\xd8\xd8\xe8\xdf\xba\x96\x65\x5d\xe3\xa9\x7e\xe0\ \x81\x07\x50\x55\x95\xaf\x3f\xf5\x75\x6e\xbb\xf5\x36\xf4\xe3\x1a\ \xa3\xa3\xa3\xfd\x5b\xf6\xe6\x9b\x6f\xe6\xd2\xa5\x4b\x24\x49\xc2\ \xad\xb7\xde\x4a\xa1\xd0\xbd\x10\xcb\xcb\xcb\xf8\x91\xcb\xee\x3d\ \xbb\x31\x33\x26\x8e\xe3\x70\xd3\x4d\x37\xf1\xb9\xcf\x7d\x0e\xdf\ \xf7\xd9\xb1\x63\x07\x87\x0e\x1d\x62\xdf\xbe\x7d\xb4\xda\x2d\xd6\ \xd7\xd7\x29\x16\x8b\x3c\xf7\xdc\x73\x8c\x8d\x8d\xd1\xe9\x74\xd0\ \x75\x9d\x2b\x57\xae\xa0\x28\x0a\xd3\xd3\xd3\x3c\xfa\xe8\xa3\x34\ \x9b\x4d\x6c\xcf\xa2\x56\xab\x01\xb0\x52\xc8\x73\xee\xdc\x39\x66\ \x66\x66\xb8\x70\xe1\x02\xab\xab\xab\x14\x0a\x05\xee\xb8\xfd\x0e\ \x4e\x16\x4e\x72\xf6\xfc\x59\x0e\x1d\x3c\xc4\xfa\xfa\x3a\x97\x2e\ \x5d\xa2\x5e\xaf\x53\xad\x56\xb9\x78\xf1\x22\x27\x4e\x9c\x00\xd8\ \x52\xb7\xdc\x4d\xae\xbe\xf4\xd2\x4b\x57\x3d\xd2\x3d\x1d\xb4\xa7\ \x0b\xcf\xcc\xcc\xec\xce\xe7\xf3\x7d\xee\xdb\xaa\xdb\x6e\xf5\x09\ \x5b\x96\xb5\x3a\x38\x38\x58\xcc\x64\x32\xd9\x5e\x8e\x6d\x6b\x6d\ \xee\xd6\xbe\x93\x24\x89\xc2\x30\x0c\xaa\xd5\x6a\xa1\x52\xa9\xf4\ \x8d\xe1\x5b\x75\xe1\xad\x35\xbe\x42\x88\xc5\x4e\xa7\x53\xda\xb5\ \x6b\x57\xa1\xd5\x6a\x5d\xc3\xcb\x5b\x75\xe7\x34\x4d\x19\x18\x18\ \xe0\xd4\xa9\x53\xcf\x1e\x38\x70\xe0\xa8\xa2\x28\xdd\x67\xf2\x16\ \x9f\xf3\x56\x8e\xd7\x34\x8d\x66\xb3\xc9\xd0\xd0\x90\x95\xc9\x64\ \x8a\xbd\xaa\xa8\xad\xbc\xdf\xd3\xa7\x7b\xe8\xb7\xb6\xb6\x76\x6c\ \x64\x64\xe4\x48\xb9\x5c\xee\xd6\xc4\xf4\x6a\x9a\xd3\x44\x6e\x28\ \xaa\x10\x42\x88\x1e\x23\xca\x34\x4d\xd7\x3d\xcf\x2b\xb6\xdb\xed\ \x54\x11\x8a\x90\xa9\xb8\xea\x1d\xde\xc2\x9f\x42\x08\x91\x24\xc9\ \x7c\xa7\xd3\xa9\xd8\xb6\x9d\xef\x5a\x8c\x95\x6e\x9d\xad\x72\x0d\ \x33\xf7\x4e\xc4\x0f\xc3\xd0\x75\x5d\xb7\xe6\x38\x8e\x54\x85\x4a\ \x9a\xf2\x7d\xfb\xde\xac\x17\x5e\x54\x14\x45\xac\xac\xac\x44\x02\ \x21\xb7\xb2\xad\x10\xb2\x3f\xf8\xaa\xaa\x62\xdb\xb6\x04\x56\x1a\ \x8d\xc6\x46\x92\x24\xc1\xbf\xd4\xf7\xe6\x52\xca\x71\x1c\x27\xef\ \xfb\x7e\xac\x20\x64\x2a\xaf\xd6\x0b\xf7\xda\xab\xaa\x0a\x20\xa2\ \x28\x0a\xe3\x38\x76\xd3\x34\x6d\x6f\x6c\x6c\x24\x48\x01\x12\x54\ \x4d\xd5\xb4\xf1\xbd\x83\xb5\xa4\xa9\x23\xd4\x6e\x6d\x6c\x77\x6d\ \xe4\x8f\x0e\x0e\x0e\xc6\x49\x9c\x10\x16\x1d\x72\xdb\x03\x68\x65\ \x48\xd6\x4d\x92\x8e\xd6\x7d\xd9\x1a\x12\x40\x49\x92\xc4\xa9\xd5\ \x6a\x59\x4d\xd3\x32\x31\x09\xd1\x78\x83\x81\x5c\x96\x68\xcd\x20\ \xd9\x30\x91\x91\x82\x62\x76\x5d\xe7\x41\x10\xb8\xc0\xda\xe0\xe0\ \xe0\x80\xa2\x28\xe9\xba\xba\xce\xe4\x75\x2a\xc9\x86\x49\xbc\x62\ \x92\x3a\x3a\x42\x93\x08\xad\x3b\x63\x72\xb9\xdc\x36\x45\x51\x46\ \x2b\x95\x0a\x7e\x1c\x92\xb9\xae\x83\xa1\x2a\xc4\x2d\x83\xb4\xd1\ \xe5\x5b\xa1\x4b\x50\x24\xba\xd6\xbd\x8d\x47\x46\x46\x22\x99\xa4\ \xc9\x9a\xb2\xc1\xf6\xeb\x15\xc2\x55\x83\x68\xd5\x44\xda\x3a\x42\ \x91\x08\xbd\xeb\xd2\x6f\x34\x1a\xb9\xc9\xc9\xc9\x11\x24\xca\x62\ \xd0\x60\xea\x66\x20\x12\x24\x4d\x9d\xa4\x91\x21\xb1\x34\x54\x53\ \x22\x14\x41\xb3\xd9\x5c\x0f\xc3\x70\xdf\xb6\x6d\xdb\xca\x8e\xef\ \x63\xee\xb4\xc9\x55\x14\xc2\x0e\x68\xf5\xb7\xae\xa3\xa5\x19\xda\ \x4f\x55\x89\xd6\x34\x0c\xc3\x40\xd7\xf5\xc1\x72\xb9\x5c\xb0\x3d\ \x0f\x65\x8f\xc5\xe8\x6d\x11\x78\x0a\x9e\xdf\x22\x27\xca\xa4\x6d\ \x93\xd6\x53\x15\x14\x45\xa1\xd1\x68\xa4\x85\x42\xa1\xaa\xeb\x7a\ \xbe\x6d\xb4\xd9\x76\x9f\x4a\x21\x17\x90\x84\x1e\x7a\x9c\x27\x49\ \x13\x9c\xa7\x46\x88\x3b\x0a\xaa\xaa\x56\x2d\xcb\x2a\x17\x8b\xc5\ \x31\x21\x04\xde\x75\xab\x8c\xde\x2e\x49\x5d\x41\xea\xc7\xc8\x58\ \x12\x9f\xaf\xe1\x9c\xc9\xf4\x3c\x37\x51\x18\x86\x64\x74\x93\x0d\ \xdd\x62\xc7\x83\x21\x39\x59\xc5\xf7\x3d\x48\x23\xbc\x86\xc4\x7f\ \xa9\x8a\xbf\xa4\x53\x2c\x16\x10\x42\x8c\x54\x06\x2a\x23\xd2\x95\ \x34\xf7\x2e\xb2\xed\xee\x0c\x8d\x8d\x0d\x0a\x4a\x85\xc0\x0b\xd1\ \xdb\x55\x5a\xdf\x28\x62\x9a\x26\x9a\xa6\x91\xcb\xe5\xc2\xc8\x8f\ \x0c\xbb\x6a\x33\x7e\x6f\x91\xd8\x57\x29\x68\x05\xe6\xd6\x2e\x52\ \x52\x86\xd8\xf8\xc7\x32\x32\x50\x31\x0c\x43\x13\x42\xa4\xa6\x61\ \xd0\x4c\x5c\x26\xef\x04\x4f\x5f\xe3\xd6\xd1\x7b\x51\xde\xb6\xeb\ \xe7\x19\x1f\x9b\x21\xc6\xc7\xf7\xaf\xf5\x31\x7b\x81\x47\xa4\x78\ \xec\xd2\xdf\xc4\x2f\x3c\xf0\xa7\xfc\xc2\x83\x9f\x60\x62\xf0\x20\ \xe5\x09\xf3\xbb\x3d\xd2\xa9\xef\xfb\x04\x49\x40\xa7\x19\xf1\xe1\ \x5b\x7f\x9f\x8f\xde\xf1\xa7\x4c\x8c\xec\xe6\xae\x5b\xee\xc1\x4b\ \xec\x1e\xb9\xa4\x49\x92\x5c\xf5\x48\x13\x71\xef\xc8\x7b\x79\xd7\ \xae\x5f\xe5\xd6\xbd\xf7\x73\x64\xe6\x51\x3c\x63\x03\xdf\x0b\x7a\ \x04\x20\xbb\xb5\xc8\x01\x51\x12\x32\x94\x99\xe6\xd1\xc9\x9f\xe1\ \xe7\x8f\xfe\x05\x71\x73\x82\x9b\xf6\x1f\xc1\xc7\xea\x7b\xbb\xbb\ \x0c\xdf\x95\x35\xd5\x0c\x4c\x67\x6e\xe7\x4f\xde\xf6\x1d\xae\x1b\ \x3d\xca\x8f\xdf\xf9\x9f\x89\x2b\xad\x2e\x0b\x7b\x5e\xbf\x6a\xd4\ \xf3\x7d\x34\x1d\xe6\xe7\x3a\xfc\xf2\x5d\x9f\x61\x6f\xf5\x28\xff\ \xe5\x4d\x9f\x23\x3b\x92\x12\xc4\xdd\xed\x71\x1c\xcb\xae\x47\xda\ \x27\x4c\x43\x3a\x5e\x87\x5f\xb8\xf1\xb3\x8c\x99\x07\x51\x46\xf2\ \xd3\x4c\x0d\xec\x25\x08\xc2\x6b\x0a\xae\xbb\x2c\x1c\x10\xc6\x3e\ \x77\x6c\x7f\x94\xdf\x7f\xe1\x63\x84\x56\x86\x1f\xb9\xe1\x03\x64\ \xd4\x5c\x9f\x95\x7b\x32\xa5\xbf\x59\x0a\x3a\x5d\xb8\x99\x53\x6b\ \xcf\xf3\xe5\x93\x7f\xc3\x3b\xf7\xfe\x7b\x26\x2a\x7b\x88\xa3\xb8\ \xcf\xc2\x3d\x5d\xd8\xf3\x3c\x4c\x25\xc7\xc4\xc0\x0e\x3e\x77\xfe\ \xb7\xb9\xa1\xf8\x83\x3c\xb0\xf7\xad\x0c\x66\x27\x71\xbd\xab\x9a\ \x73\x4f\x17\x8e\xa3\x84\x72\x76\x00\x91\xed\xf0\xc4\x4b\x4f\xb0\ \xb3\x76\x3d\xa3\x85\x1d\x78\x81\xb7\xd5\x1c\x4f\xe0\xfb\x38\xae\ \x87\xae\x29\x04\xad\x3c\x9f\x3c\xf6\x1b\x4c\x9a\x47\x78\xf0\xba\ \xb7\x60\xaa\x79\x5c\xdf\xc5\x73\xb7\xb2\xb0\x07\x48\xf2\xe1\x14\ \xeb\xe9\x19\x2a\xf9\x12\xdb\x4a\x3b\xa8\x67\xc7\xf1\x7d\xaf\x8f\ \x6f\x5b\x3d\xd2\x44\x1a\x37\xee\x3e\xc4\xf3\xeb\x9f\x42\x73\x7c\ \x97\xb9\xe6\x25\xa2\x28\x26\xf0\x23\x24\x7a\x5f\x7a\x0c\xc3\x80\ \x2c\x0a\x71\x12\x52\xd0\x2b\xe8\x8a\xc9\x8b\x17\xbf\x42\x9c\x76\ \x1d\xfd\x5b\x65\x4d\x80\x24\x9f\x10\x24\x1e\x05\xa3\x8c\x2a\x3a\ \x38\x2c\xd3\x70\x97\xf1\x7d\x97\xc0\xd7\xae\xa9\x17\x06\x30\x00\ \x55\xa8\x04\x5e\x42\x75\x50\xe5\xc5\xb3\xc7\x98\x6b\x9c\x25\x08\ \xba\xd6\x0e\x4d\xd3\x7a\xcf\x64\x12\x23\x46\x00\x32\x51\xa8\x97\ \x07\x79\xe9\xf2\x4b\xc4\x25\x1f\x91\x76\x8b\xbf\x33\x81\xb9\xe9\ \x4c\x08\x08\xbc\x00\x43\x68\x98\x19\x9d\x4a\x66\x88\xe5\xf6\x3c\ \x31\x1e\x4e\x60\x11\xf8\x06\x32\x95\x57\xb5\x6f\xdf\x47\x20\xf0\ \xd2\x0e\x25\x7d\x90\x86\xf3\x3c\x0a\x0a\xeb\xce\x12\x51\x18\x11\ \xf9\xd1\x35\x72\x6c\xac\xc5\xa4\xa4\x90\x82\x63\xa5\x28\xc7\x5b\ \x9f\xc5\xc8\x48\x82\xc0\xc3\x71\x9d\xfe\xf4\xee\x95\xfc\x6b\x22\ \xcb\x57\x5f\xff\x33\xde\x73\xf0\x3f\x73\xca\xfd\x12\x1b\xf1\xe5\ \x9e\x51\xa8\xcf\xab\xbd\x92\xff\x24\x4a\xe9\x68\x17\xc8\xc8\x41\ \xee\x3b\x78\x2f\x9f\x3f\xfb\x47\xf8\xa9\x4d\x12\x5f\x4d\x61\x6d\ \x2d\xb8\x16\x5a\xc2\x8b\x73\x4f\xf0\x33\xf7\xfe\x06\x7f\x7f\xfa\ \xf7\xb1\xb8\x42\x35\x3b\x8a\xe7\x5d\x75\xc7\xf7\x06\x30\x8a\x62\ \x96\xad\x39\x9c\x4e\xc2\xe8\xb6\x02\x71\x61\x96\x91\xe2\x76\xbc\ \xa0\x3b\xa3\xae\x26\x13\x7c\x7c\xcf\x45\x22\xb0\xb5\xcb\x1c\x1e\ \x3f\x4a\x47\x3f\xc3\x17\x4f\xfe\x15\x05\xb3\xd8\xcd\xc6\xb8\x5e\ \x7f\x40\xba\x3e\xef\x94\xfa\x64\xc4\x4b\xe7\x5e\x65\xa2\x3e\xce\ \x9f\xbc\xfc\x0b\x54\x8b\x75\xdc\xc0\xc1\xb6\x9d\xbe\xee\xed\x38\ \x0e\x81\xef\x53\x2a\x64\xf9\xbf\xff\xf1\x23\xfc\xe6\xa3\x5f\x44\ \x6b\xf9\x8b\x2c\x2e\xcd\xb2\x7c\xb1\x8d\xdf\x8e\x89\x93\x3c\x52\ \x4a\x36\x36\x36\xf0\xe3\x88\x82\x97\xa7\xa5\x9e\xe3\xb7\x9f\xfc\ \x25\x7e\xe2\xc1\xc7\xf8\xc7\x8b\xff\x83\xd6\x49\x95\x66\xb3\xeb\ \x91\x96\x52\x5e\xf5\x48\x67\x04\x46\xb6\xc6\xef\x3e\xf7\x6f\xf9\ \xa3\x1f\xfd\x27\xce\x36\xbe\xc9\x95\xd5\xf3\xac\xce\x37\xf0\x5b\ \x57\x3d\xd2\x3d\xa7\x41\x2e\xc9\x73\xb2\xf5\x55\x0e\x78\xb7\xe1\ \x26\x1d\xce\x2e\x7d\x89\xb9\x4b\x0e\x8d\x75\x17\xa1\x42\xa5\x52\ \xe9\x9e\x60\x10\x13\x69\xe0\xc9\x0c\x4f\xcc\x7d\x92\xf7\x8c\x7c\ \x0c\x51\x6a\xf0\xf5\x57\xbe\x48\x63\xde\xa1\xd5\x0c\x51\xf5\x6e\ \x92\xb6\xd9\x68\x62\xaf\xdb\xe8\x51\x91\xa5\xe0\x14\xc7\xd6\xfe\ \x81\x62\x31\xcb\x17\xce\xfc\x31\x8d\xc5\x90\x8d\x95\x26\x7a\xa6\ \x2b\xe1\x5a\x96\x45\xb3\xd9\xea\x96\xe5\xaa\x79\x9e\x5c\xfe\x63\ \x26\x9d\x43\x9c\x59\xf9\x06\x7e\x27\x61\xe1\xd5\x26\x7a\x01\x4c\ \xb3\xab\x0b\x37\x9b\x4d\xfc\xbc\x24\x4e\x4d\x16\xd2\x17\xf8\xcd\ \xaf\xfd\x1c\x62\xfb\xd8\x0e\x29\x10\xa8\x99\xae\x3f\xae\x57\x2f\ \x1c\x45\x51\x31\x9b\xcd\x91\xbf\x21\x66\x6c\x6f\x8e\xd5\x93\x1e\ \x57\x5e\xea\x80\x65\xa2\xe8\xa0\x9a\xe2\x1a\x5d\x58\xd7\xf5\x62\ \x92\x8f\xd8\xfd\xf6\x02\xe1\x7c\xca\xe5\xe3\x1b\xf8\xb3\x5d\x9d\ \x43\xcb\xf4\xcb\xc8\x2c\x45\x51\x9a\x52\xca\xc9\x7c\x3e\x4f\xfe\ \x68\xca\xd8\x68\x86\xd9\xe3\x6d\xd6\xbf\x93\x90\x86\x02\xd5\x00\ \x45\xeb\x2e\xc2\x2b\x95\x4a\xd8\x6e\xb7\x8d\x5c\x36\x87\xad\xb8\ \xdc\xf5\xc1\x1a\x2b\x27\x7c\x66\x8f\xb5\x09\xe6\x75\x10\x29\x5a\ \x46\x45\x72\x55\x17\x1e\x1d\x1d\x3d\xea\x5b\x01\x95\x37\x2a\x4c\ \x4e\xe5\x98\x7d\xb1\xcd\xda\x89\x08\xe9\x75\x7f\x7a\x45\x35\xe9\ \xeb\xc2\xb5\x5a\x2d\x94\x89\x34\xa2\x91\x88\xe9\x1b\x33\x2c\x1e\ \x77\x68\x5e\x0c\x20\x56\x91\x48\xb4\xac\x20\x4d\x52\x74\x5d\x6f\ \x7a\x9e\x27\x33\x99\x4c\x35\x57\x2e\xb0\xed\x5e\x89\x75\x25\x66\ \xe3\x9c\x8f\x76\xe4\xf6\xc3\x58\x56\x17\x79\x66\x67\x67\x09\xc3\ \x6e\xd9\xc0\x5b\xde\xf2\x16\x76\xed\xda\xc5\xc2\xdc\x22\xa7\xbf\ \x79\x96\xba\x22\x29\xed\xf4\x51\x54\xa5\x5f\x2f\x5c\x28\x14\xb8\ \x72\xe5\x0a\xd5\x6a\x95\x77\xbc\xe3\x1d\x68\xaa\xc6\xe7\xff\xf6\ \x8b\x54\x6b\x03\x4c\xe4\x1b\x54\x8f\x0e\xd0\x6e\xb7\x09\xc3\x10\ \xd3\x34\xb9\x70\xe1\x02\x71\x1c\xf3\xde\xf7\xbe\x97\x1d\x3b\x76\ \xf0\x0f\x7f\xf7\x05\x94\x15\x8d\xaa\xbd\xce\xce\xdb\x06\x68\xb5\ \x5b\x18\x86\x41\x92\x24\x2c\x2e\x2e\x22\xa5\x64\xdf\xbe\x7d\x3c\ \xf2\xe8\x23\xf8\xae\xcf\x77\x9e\x7a\x95\x9c\xd5\x66\xa6\xea\xa3\ \x8f\x6a\x64\xb3\x59\x16\x16\x16\xfa\xd4\x20\x84\xe0\x8e\x3b\xee\ \xe0\xce\xbb\xee\xe4\xb9\xa7\xbe\xc1\xe5\xaf\xce\x52\xd7\x87\x99\ \xbc\x21\x4b\xb3\xd5\xec\xfe\xd0\x85\x69\x62\x59\x16\x2b\x2b\x2b\ \x8c\x8d\x8d\xf1\xe1\x0f\x7f\x98\xe7\x9e\x7e\x8e\x57\x4f\x9e\xe2\ \xfa\xf1\x32\xd6\x40\x87\x30\x0a\x49\xe2\x84\x62\xb1\xc8\xfc\xfc\ \x3c\xcd\x66\x13\x80\xff\xf8\x1f\xff\x23\x00\x2f\x3c\x77\x0c\x37\ \x63\xb3\x3c\xb2\x8c\xb6\x6d\xdb\x36\x66\x67\x67\x19\x18\xe8\xfe\ \x0e\xcc\x85\x0b\x17\x08\x82\x80\xfb\xee\xbb\x8f\xc3\x87\x0f\x33\ \x3b\x3b\x4b\x2c\x23\x86\x86\x86\x30\x4d\x93\x6f\x7e\xf3\x9b\x8c\ \x8e\x8e\x62\x9a\x66\xdf\x12\x3b\x3e\x3e\xce\x43\x0f\x3d\xc4\xd0\ \xd0\x10\x17\x2f\x5d\xec\x0e\xfc\x66\x32\x60\x6c\x6c\x8c\xa5\xa5\ \x25\x46\x46\x46\xb8\x7c\xf9\x32\x00\x0f\x3f\xfc\x30\x7b\xf6\xec\ \xa1\xd3\xe9\xb0\xb6\xb6\xc6\xb9\x73\xb0\x6f\xdf\x3e\x2e\x5f\xbe\ \x8c\xef\xfb\x8c\x8f\x8f\xb3\xb2\xb2\x42\x1c\xc7\xdc\x7c\xf3\xcd\ \xdc\x79\xc7\x9d\xec\xdc\xb9\x93\xbf\xfc\xcb\xbf\x64\x7e\x61\x9e\ \xd1\x91\x51\x9e\x78\xe2\x09\xea\xf5\x3a\x00\x6b\x6b\x6b\x44\x51\ \x84\xa6\x69\x1c\x3c\x78\x90\x77\xff\x5f\xef\xc6\x34\x4c\x9e\x78\ \xe2\x09\x86\x86\x86\x48\x92\x84\xf9\xf9\x79\xae\x5c\xb9\x42\x4f\ \xaa\xed\xb1\xf0\x2d\xb7\xdc\xc2\xdc\xdc\x1c\x4b\xab\x4b\xdc\x78\ \xe3\x8d\xbc\xf2\xca\x2b\x54\x2a\x15\xce\x9c\x39\xc3\xc1\x83\x07\ \xc9\x64\x32\x1c\x3f\x7e\x9c\x34\x4d\x79\xf8\xe1\x87\xb9\x70\xf1\ \x42\x3f\xb9\xf0\xfc\xf3\xcf\x7f\xff\x7a\xe1\x4e\xa7\x63\xe5\x72\ \xb9\x62\xad\x56\xa3\xdd\x6e\xf7\xb7\xf5\x98\x72\xab\x17\xda\xb6\ \xed\xb9\x7c\x3e\x3f\x50\xad\x56\x8b\x5b\xcd\xde\x5b\xf9\xb9\xf7\ \x3d\x8e\x63\x2b\x0c\xc3\x66\xb1\x58\x9c\x1c\x18\x18\xa0\xd3\xe9\ \x5c\xc3\xab\x3d\x1d\xb9\xf7\xb7\x61\x18\xa1\xe3\x38\xc6\xf0\xf0\ \x30\xb6\x6d\x7f\x8f\x77\x79\xeb\xef\x63\x55\x2a\x15\x4e\x9f\x3e\ \xfd\xec\xee\xdd\xbb\x8f\x6e\xb1\xfc\x5e\xb3\x4f\xef\x7f\x4d\xd3\ \x58\x5b\x5b\x63\x7c\x7c\x3c\xb4\x6d\xdb\xf8\x97\x6a\xa2\x37\xcf\ \xb7\x69\x59\x96\x2c\x97\xcb\xd5\xef\xde\xae\xa5\x49\x1a\x6d\xf5\ \x31\x3b\x8e\x83\x65\x59\x5e\xb5\x5a\xcd\xb4\x5a\xdd\xf4\xbd\x4c\ \x05\x8a\x10\x08\xe5\x7b\x78\x55\x58\x96\x95\x68\x9a\xd6\xcd\x5e\ \x23\xd0\x84\xde\xd5\x85\x95\xab\x35\x19\x5b\xfc\xd7\xd2\x75\xdd\ \x50\xd7\x75\x1c\xc7\x41\x57\xf5\x6b\xea\x85\x15\x5d\x5c\xd3\x7f\ \xa7\xd3\x91\x8a\xa2\x44\xbe\xef\x6b\x9a\xa6\x09\x12\x81\x14\xa0\ \x6a\x12\x45\xb9\xb6\xed\x26\xf8\xcb\x24\x49\x64\x9a\xa6\xb1\x82\ \xd2\x35\x5e\x23\x51\x94\x3e\xd7\xf6\xab\x0a\xe2\x38\x4e\x2c\xcb\ \x4a\x55\x55\x15\x02\xf8\x17\xea\x85\xc5\xe6\x7a\x37\xca\x66\xb3\ \x71\x9a\xa6\x52\xc8\xcd\xba\x65\x40\xdb\x36\x39\x12\xc8\x48\xd9\ \x2c\x90\xee\x16\x2f\xaf\xae\xae\x5e\xaa\xd7\xeb\x07\x7d\xcf\x97\ \xa1\xd1\xd5\x85\x71\x4d\xd2\x4e\xb7\x46\x57\x46\x0a\x42\x93\xbd\ \x3c\x9c\x51\x2a\x95\xf4\x4c\x26\x43\x44\x44\x3a\xde\xa6\x98\x35\ \x48\x5a\xbd\xba\xdb\xab\x81\x87\x61\x18\xb8\xae\xbb\x5a\x2c\x16\ \x67\x74\x5d\x17\x2d\xb5\xc5\xf0\x1e\x48\x6d\x8d\xb4\x65\x22\x1d\ \x6d\xd3\x48\xde\xbf\xfa\x9e\xeb\xb9\xb2\x5a\xad\x0e\x04\x49\x88\ \xb2\xa3\x4d\x4e\x33\x88\x5b\x3a\x69\x5b\x47\x46\x6a\xf7\xc7\xc5\ \x90\x64\x32\x19\x2e\x5e\xbc\x58\x19\x1e\x1e\x0e\x7c\xd7\x8f\xdb\ \x99\x16\x23\x13\x2a\xe1\x86\x41\x6a\x6b\xdd\x1a\xe7\x44\x20\x54\ \xd0\x75\x5d\x18\x86\xe1\x8f\x8c\x8c\x04\x19\x33\x53\xfe\x3f\xd4\ \x0b\x63\xdb\xb6\x7e\xe5\xca\x95\xb5\x72\xb9\x5c\x0c\xe3\x38\x0d\ \xca\x16\x95\xba\x4a\xda\xd1\xd1\x46\x7e\xa4\x55\xd0\x35\x9d\xe6\ \x53\x15\xa2\x55\x1d\x45\x15\x08\x21\x6a\xa5\x52\x29\x9f\x4a\x50\ \x76\x39\x8c\xde\x11\x11\x05\x2e\x22\xd2\xd0\x45\x86\x34\x50\x68\ \xfe\x63\x1d\x55\x55\xd1\x75\x5d\x98\xa6\xa9\xea\xba\x8e\x63\xb8\ \x0c\xde\xe5\x53\x2f\x6a\x10\x87\x84\x9e\x0b\xba\xa4\xfd\xe5\x21\ \xe2\x96\x8a\x94\x52\x68\x9a\xa6\x1b\x86\x21\x34\x4d\xc3\x1d\xeb\ \x30\x7c\xbf\x46\x51\x8e\xb2\xda\x58\x41\x93\x1a\xf1\x42\x91\xce\ \xf1\x02\x32\x06\xd3\x34\xd5\x3e\x0b\xab\x1d\xf6\xbf\x29\x42\x4b\ \x54\x7c\xc7\xc1\x24\x47\xe4\x82\x75\xac\x44\xb0\x68\xf4\x7e\x03\ \xb1\x52\x2e\x97\x33\x41\x94\x90\xb9\xc5\x65\xdb\x21\x13\xab\x6d\ \x91\xa1\x40\x10\x06\xe8\x4e\x99\xc6\xd7\xcb\x98\x86\x81\xa6\x69\ \x79\xd3\x34\xed\xff\x2f\xf5\xc2\xaa\xaa\xa2\xaa\x6a\xb5\x90\xcf\ \xe7\x96\xfd\x16\x13\x6f\x94\x14\x06\x7d\x22\xcf\x47\xb9\x63\xea\ \x1d\x88\x3c\xc4\xd2\xff\x2e\xa6\xec\xfe\x9d\xaa\x01\x35\x79\x80\ \xff\xf0\xe0\xa7\x78\xef\x91\x5f\xa5\x56\xdc\x41\x7d\xdb\xc0\x35\ \x35\xbd\x7d\x94\x4b\x03\xec\x35\x9d\x77\x1f\xfa\x65\xde\xbc\xe3\ \x63\x1c\x9c\xb8\x87\x7b\x6e\x78\x23\x5e\xe4\x5c\xf3\xdb\x59\xbd\ \xe3\xf8\x49\xc0\x7d\x23\x3f\xc1\xb0\x72\x23\x8f\xdd\xf1\x1f\xb8\ \x65\xf2\xed\x78\x7a\xa3\xef\x22\x4d\x92\x44\x76\x51\x31\x24\x4c\ \x23\x6a\xe6\x36\x1e\x19\xfb\xb7\xfc\xa7\x87\x3f\xcd\xeb\xf3\x1e\ \xa3\xe3\xc3\xc4\xe2\xaa\x8f\x59\x76\xa7\x2c\x9e\xe7\x63\xe4\x04\ \xdb\x94\xdb\xf9\xbd\x1f\x7c\x9a\x4a\x66\x86\x5f\x7e\xdb\x1f\xe3\ \x65\x1a\x04\x9b\x75\xd0\xff\x7f\xea\x85\x3d\xcf\x27\x88\x02\x94\ \x4c\xc0\xee\xf4\x9d\xfc\xe8\x4d\x3f\x87\x72\x78\xf8\x41\xee\x99\ \xf9\x81\x4d\x16\xbe\x56\x17\xf6\x3c\x9f\x28\x0a\x38\x3c\x7a\x3f\ \xff\xfc\xfa\x27\x78\xe1\xe5\xd3\xbc\xfd\xc0\xfb\x31\x14\xb3\x4f\ \x22\x3d\x55\xae\x27\xff\x4d\x57\x0e\x71\xb9\xf9\x1a\x27\x16\xbe\ \xc9\x43\x33\xef\xa1\x9c\x19\x24\xde\xd4\x76\xb7\x92\x88\xe7\x79\ \xa8\xe8\xd4\xf3\x63\xf8\xb9\x8b\xec\x1f\xb8\x97\x89\xca\x2e\x86\ \x72\x93\xf8\x5b\xfa\xee\x09\xeb\x71\x14\x51\xcb\x0f\x93\xad\x44\ \x7c\xe5\x85\xaf\xf3\x96\x7d\x3f\xc1\x8d\xa3\xf7\x62\x7b\x9d\xfe\ \xc5\x04\xfa\xb5\xc3\x42\x40\x31\xdd\xce\x27\x9e\xff\x6f\xfc\xbf\ \x6d\x9c\x6b\x8c\x5c\x65\x01\x86\x9f\x73\xbe\x73\xce\x5c\x76\xe7\ \xbe\xd3\xdd\x2e\xdd\xb2\xbd\xb0\xad\x6d\xb7\x58\x4b\xa9\x6c\xb1\ \x36\xa4\x0d\x26\x1a\x8c\x25\x26\x18\x2d\x58\x8c\x3f\x08\x5a\x34\ \x81\x5f\x68\x22\x09\xff\x88\x09\x09\x4a\x82\x09\x68\x34\x40\x0c\ \x8a\x60\x0c\x72\x91\x16\x50\xda\x02\x52\x2b\x4b\xaf\x3b\xed\x76\ \x2f\xdd\xeb\xcc\xec\xcc\xec\xcc\xb9\x5f\xfc\x71\x66\x4e\x97\xe2\ \xef\x99\x39\xf9\xe6\x3b\x97\xef\xbc\xdf\xfb\xbc\xef\x57\x6e\xf8\ \x36\x6b\x33\x43\xc4\xe5\x64\x5b\x67\xeb\x11\x4c\x65\x9a\x06\xe2\ \x73\x79\xe1\x5d\xdc\x98\xde\x82\x69\x1b\xd7\x3a\xbc\xda\x8d\x4b\ \x8e\xe3\xb0\x54\xd3\x79\xf8\xe0\x23\xbc\x56\xfa\x0d\x4a\xb5\x59\ \xe1\xa3\xb9\x77\x71\x1d\x17\xcb\x0c\x08\xb8\x96\x8d\xb5\x6d\x0b\ \x15\x70\x7c\x9b\x94\x56\xc0\x50\x54\xce\xcc\xfd\x1b\x9f\xd0\xdb\ \x15\x42\x44\x20\xb8\xe3\x38\x78\xdd\x5e\xc8\x48\x27\x7a\x58\x10\ \x26\x35\xf7\x2a\xb6\xdf\x6e\x81\xb3\x44\x98\x29\x6e\x4f\x60\xf8\ \x50\x0f\xda\x09\x4b\x07\x4f\x36\xa9\x2c\x2f\x32\x5b\x9f\xc4\xb2\ \x63\xf8\x76\x54\xf0\x88\x69\x99\x78\x8a\x87\x24\xc9\x48\xbe\x20\ \x9f\xca\xf3\xf6\xe8\x1b\x94\x63\x2d\x64\x5f\x44\x57\x77\xb8\x99\ \x60\x61\x5b\x16\x42\x56\xf0\x71\xe9\xe9\xea\x65\xb1\x35\x83\xe5\ \xe9\x18\x4e\x0b\xdb\x4e\x46\xab\xb1\xe3\x38\x04\xb6\x07\x71\x48\ \x74\xa9\x04\x6e\x48\xb9\x4a\xc8\x8c\xd7\x3e\x05\x2f\x9c\x07\x1f\ \xaf\x3d\x27\x26\x8e\xec\xa0\x08\xc1\x52\xbd\x81\x2a\x62\xc8\xa7\ \xea\x2f\x93\xee\x4e\x61\xbb\x76\x44\xda\xaf\x34\xa8\x45\xa0\x72\ \x72\xfe\xcf\x6c\x49\x1d\xa0\x6f\x83\xcb\x44\xeb\x54\x38\x98\xff\ \x93\x58\x77\x2c\x17\x23\x3e\xc1\xd2\x92\xc9\xce\xa1\x61\x5e\x39\ \xff\x2b\x26\x97\xcf\xe2\xd8\x4e\x94\xe9\x5d\x49\xe9\xab\x9a\xe0\ \xed\xcb\x2f\x72\xf8\x4b\x8f\xf1\xfb\xd1\xc7\xb8\x6c\x1e\x27\x9d\ \xc8\xa3\x5f\x97\x17\x36\x8d\x70\xd7\x67\x6e\xf9\x0a\xf5\x86\x45\ \xae\x28\x90\xf2\x33\xa8\x52\x02\xdb\xb5\x3e\x33\x6e\xd3\x34\x30\ \x6d\x0b\x09\x41\x5d\xb9\xc8\x70\xff\x97\x99\xf2\x4e\xf0\xd7\x33\ \xcf\xd1\xa5\x75\x87\xe3\xd6\x8d\x08\xb9\x33\x4c\x13\xcf\x87\x8d\ \x1b\xf3\xbc\x7f\xee\x7d\xfa\xb2\xfd\x3c\xfd\xe1\x23\x64\xe2\x85\ \x68\x4e\xae\x91\x09\x61\x8b\x5c\x21\x93\xe1\x89\xa3\x3f\xe5\x81\ \x9d\xbf\x44\x69\x2a\xd3\xcc\x2e\x4d\x33\x5b\xaa\xa0\xd7\x3c\xba\ \xdd\xd0\x17\x2e\x97\xcb\xd4\x1b\xcb\xc4\x9b\x49\x6c\x15\x9e\x3a\ \xf1\x30\xf7\xec\xb9\x8f\xe9\xb9\xd3\x2c\x9d\x81\x6a\xb5\x1e\x69\ \xe1\xce\x15\x48\x52\x42\xa8\x05\xfe\x78\xe6\x09\x7e\xb1\xfe\x19\ \x66\xec\xb3\xcc\x8d\x66\x29\x5f\xad\x61\xd5\xfd\xce\xbb\x5d\x84\ \x56\x74\xdb\x31\xaa\xfe\x25\x5e\x3d\xfb\x0c\x6e\xa2\xce\xe5\x85\ \xb3\x94\x3e\x30\xa8\xce\x1b\x91\x2f\x6c\x18\x06\x8e\xe9\x60\xc9\ \x3e\x86\x1f\xe3\xd8\xe4\x1f\xd8\xbf\xf9\x6e\xc8\x54\x38\x37\x39\ \xcf\xfc\xe5\x3a\x8d\x25\x07\x49\x84\xef\x6c\xe5\x72\x99\x4a\xbd\ \x41\xbf\x9d\x63\xd2\xf8\x98\x77\x27\xff\x44\x90\x68\xf2\xaf\x99\ \x97\x59\x98\x32\x29\xcf\xd7\x50\xe3\x4a\xa4\x85\x97\xab\x0d\x1a\ \x09\x1f\x2f\x48\xf1\xce\xdc\x73\x6c\xf5\xf7\x30\xee\x7c\x40\x63\ \xd1\xe0\xca\xa9\x32\x8e\xee\x13\x4f\x84\x5a\xb8\x5c\x2e\x63\x24\ \x7c\x4c\x5b\x50\xe9\x1e\xe5\xb9\xe3\x4f\xa2\x3c\xff\xc3\xd3\x98\ \x8b\x10\xcb\x48\xa8\xaa\x12\x35\xd6\xca\xb2\x4c\x4c\xd3\x70\x17\ \x02\xe6\xff\xe3\xd1\x98\x9a\xe3\xc7\x4f\x3d\x8a\x3e\xae\x41\x10\ \x10\x4b\x2b\x91\xb1\xd3\x6e\xc0\xc0\xb7\x7c\x96\xce\xb9\xc8\xad\ \x6e\xee\x7b\xe9\xfb\xe8\x25\x0d\xb3\x5e\x26\x91\x15\x88\x70\x75\ \x8f\x8e\x9d\xcf\xe7\xb1\x67\x5b\x4c\xbd\x1d\xf0\xe1\xe8\x9b\x2c\ \x8e\xda\xf8\x96\x84\x92\x04\x2d\xa6\x46\x50\x64\x10\x04\x68\x09\ \x0d\xcf\xb0\x99\x3f\xed\xb2\x3c\x3b\xc3\xb1\x5f\x3f\x8e\x7e\x59\ \xc5\x5c\x72\x89\x67\x15\x14\x45\x44\x81\x48\xa1\x28\xc4\x64\x15\ \x7d\xdc\xa7\x5a\x87\x17\x2f\xbe\xc4\xd2\x79\x9f\xc6\x15\x1f\x2d\ \x29\xa3\x25\xd5\xa8\xd2\x59\x08\x81\x1a\x53\xe9\xd6\x7d\x16\x47\ \x1d\x96\xe7\x17\x39\x7e\xee\x05\x96\xce\x05\xb8\x7a\x40\x3c\x2b\ \x50\x54\x39\x82\x33\x25\x49\x22\x21\x69\xd4\x2e\xb8\x34\x15\x9f\ \xb3\x93\xef\xa0\x6c\xda\xb0\x05\xe9\x26\xd0\xd4\x30\xc1\xe8\xfb\ \x3e\x33\x33\x33\xec\xd9\xb3\x87\x81\x81\x01\x2c\xdd\xe6\xf4\x07\ \x9f\xb0\x2a\x19\x43\x4a\x2c\x52\xdc\xd7\xc3\xfc\xc2\x3c\x8d\x7a\ \x83\x42\xa1\xc0\xd8\xd8\x18\xbd\xbd\xbd\xec\xdb\xb7\x8f\x54\x77\ \x8a\xbf\xff\xed\x0d\x7a\xfb\x7a\x59\xe5\xcc\xd3\xbb\x7b\x15\xf5\ \x46\x8d\x56\x4b\x27\x9d\x4e\x73\xe1\xc2\x05\x0c\xc3\xe0\xfe\xfb\ \xef\x67\xe7\xce\x9d\xbc\xf5\xfa\x3f\xb0\xaa\x36\x92\x32\xc3\xb6\ \x03\x39\x9a\xcd\x26\xb9\x5c\x8e\x5a\xad\xc6\xf4\xf4\x34\xad\x56\ \x8b\xe1\xe1\x61\x46\x46\x46\x88\x69\x31\x3e\x39\xf5\x29\x9e\xd1\ \xe2\x06\xa9\x45\x6c\xab\x46\x26\x97\xe1\x52\xe9\x12\xf1\x78\x3c\ \x4c\x27\xa9\x2a\x23\x23\x23\xdc\x7c\xf3\xcd\x9c\xf8\xe7\x49\x16\ \x2f\x56\x28\x6a\x82\xbe\x41\x19\x77\xad\x43\xb5\x52\xed\x10\xb8\ \x51\x6c\xf6\xd0\xa1\x43\x2c\x55\xaa\x7c\x7c\xec\x34\x99\x54\x8a\ \x78\xcc\x24\x7f\xd3\x32\xb9\x7c\x0e\xcb\xb2\xa8\x54\x2a\xb4\x5a\ \x2d\x74\x5d\xe7\xc8\x43\x47\x68\x35\x9b\x8c\x97\x26\x59\xaa\xd5\ \xc8\x3a\x16\xca\xf0\xf0\x36\xce\x9f\x3f\xcf\xe0\xe0\x20\xa9\x54\ \x2a\x12\xfc\x7b\xf7\xee\xe5\xf6\xdb\x6f\x0f\x21\x1f\x7e\x47\x2e\ \x97\xc3\xb6\xed\x08\xcb\xb5\x4c\x8b\x62\xb1\xc8\xd8\xd8\x18\xf9\ \x7c\x9e\x43\x87\x0e\x91\xcf\xe7\xb9\x3a\x73\x95\xa1\xa1\x21\x26\ \x26\x26\xe8\xd4\x28\x5f\xb9\x72\x85\xad\x5b\xb7\x52\x2a\x95\x30\ \x4d\x93\x3b\xee\xb8\x83\x4d\x9b\x36\x31\x31\x31\x11\x2e\x00\x9e\ \xc1\xf6\xed\xdb\x39\x7d\xfa\x34\xe9\x74\x9a\xfe\xfe\x7e\xe6\xe6\ \xe6\x00\xd8\xb1\x63\x07\x07\x0f\x1e\x64\xfd\xfa\xf5\x3c\xfb\xec\ \xb3\x2c\x2c\x2c\x50\x28\x14\x38\x79\xf2\x24\x7d\xbd\x7d\xed\xc6\ \xca\x90\xd1\x51\x14\x85\x91\x91\x11\xee\xbd\xf7\x5e\x1c\xc7\xa1\ \x54\x2a\x31\x34\x34\xc4\xa5\x4b\x97\xc8\x66\xb3\x1c\x3d\x7a\x94\ \xb5\x6b\xd7\x32\x35\x35\x45\xb9\x5c\x26\x97\xcb\x71\xf8\xf0\x61\ \x46\x47\x47\x29\x57\x2b\x6c\xde\xbc\x19\x5d\xd7\xb9\x70\xe1\x02\ \x99\x4c\x86\x62\xb1\x48\xa9\x54\x8a\x7c\xe1\x23\x47\x8e\x70\xee\ \xdc\x39\xc6\xc7\xc7\x99\x9d\x9d\x0d\x19\xe9\x5d\xbb\x76\x05\x1d\ \x9d\xe8\x38\x0e\xc9\x64\x92\xc9\xc9\xc9\x8b\x6b\xd6\xac\x19\xda\ \xbc\x79\x33\x63\x63\x63\xd1\xce\xf3\xf5\xdd\xcc\xed\xf8\x53\x53\ \xd3\xb4\xd8\xd6\xad\x5b\xd5\x6a\xb5\xca\xf2\xf2\x72\xa4\x55\x3b\ \x5e\x6b\x27\x62\x2f\x49\x52\xd9\x75\xdd\x71\x60\x57\x36\x9b\x8d\ \x68\x82\x95\xbb\x29\x2b\xfd\x67\x55\x55\x1b\xb3\xb3\xb3\xd2\xfe\ \xfd\xfb\x53\x63\x63\x63\x91\x36\xed\x3c\x36\x3a\x15\x2d\xae\xeb\ \x76\x18\xe9\x89\x91\x91\x91\x1b\x6d\xdb\x8e\xbc\xdb\xce\x6e\xf2\ \xca\xa6\x8e\x95\xbe\x70\x87\xed\x5e\xb9\x58\xac\x1c\xbb\xef\xfb\ \x08\x21\xa8\xd7\xeb\xe5\x62\xb1\xd8\x33\x38\x38\xc8\xe4\xe4\x64\ \x74\x4b\x2b\xa9\xee\x74\xa4\x29\xa5\x76\x96\xd6\x75\x5d\xaf\xbd\ \xbf\x46\x32\xd1\x15\x62\xb4\xda\xf5\x5c\x72\x88\xf8\x5a\x96\xe5\ \xa6\x52\x29\x75\x76\x76\x16\x59\x96\xdb\x8c\xf4\xf5\x1c\x73\xd0\ \x99\x44\x79\x66\x66\x46\x5a\xbd\x7a\xb5\x27\x84\x90\x62\x5a\xec\ \xb3\x59\x64\xae\x79\xbd\xed\x1a\xe4\xa0\x58\x2c\x2a\x53\x53\x53\ \x24\x12\x09\x3a\x5a\x58\x6a\x7f\xb7\xab\xab\x3b\xfa\x4d\xfb\x8f\ \x9a\xba\xae\x63\x3b\x36\x71\x2d\x8e\xef\x43\x5c\xfb\xfc\xf1\x85\ \x10\x94\xcb\x65\x84\x10\x52\xbd\x5e\x47\x42\x42\x15\x31\x34\x25\ \xb6\x82\x91\x96\x22\x4d\xdc\x68\x34\xf0\x7d\xbf\x99\x4e\xa7\x7b\ \x16\x16\x16\xe8\x4a\x74\x11\xf8\x61\x7d\x96\x92\x1b\x8c\x47\x5a\ \xb1\x73\x36\x65\x59\x76\xf3\xf9\x3c\x86\x6e\xe0\x74\x99\x24\xfb\ \xed\xb0\x94\xd0\x10\xf8\xba\x1a\xe6\x85\xdb\x98\x6c\xa5\x52\x69\ \x15\x0a\x05\x55\x08\x11\xf3\xf0\xf0\x56\x2d\xd3\x9d\x52\x42\xd6\ \xb8\x93\xe9\x75\xe5\x4e\x0d\x7c\x22\x16\x8b\xe5\x93\xc9\xa4\xa3\ \x28\x8a\x68\xca\x4d\x72\x03\x12\xbe\x29\x11\xb4\x54\x7c\x5d\x21\ \xb0\xe4\xd0\xeb\x0d\xaf\x02\x21\x84\x48\xe6\x72\x39\x5a\xbe\x41\ \x7a\xa3\x05\xae\x4c\xa0\x2b\x04\xa6\xd2\xee\xda\x92\x91\xa4\x10\ \x6b\x53\x14\x65\xb2\xa7\xa7\x67\x93\xa9\x9b\xd4\xe2\x55\xfa\x06\ \x05\x4e\xb3\x9d\x73\xd6\xc3\x9c\x73\x27\xb1\x2e\xcb\x32\x7d\x7d\ \x7d\x6a\xe0\x07\x94\x9d\x3a\x7d\x5b\x20\xb0\x24\x7c\x43\x21\x30\ \x04\x7e\x33\xe4\xaf\x65\x21\x77\x56\xf7\x4b\x99\x4c\x66\xd0\xb2\ \x1d\xfc\x55\x4d\x52\x05\x19\x57\x07\x25\x7b\xa0\x8c\x2c\x04\x4b\ \x6f\x65\x71\xe6\xb5\x4e\x0b\x5b\x5c\x08\x81\xe3\x7b\xf8\xfd\xcb\ \x24\x77\xb7\xe8\x4d\x0c\xd0\x34\xeb\x21\x74\x69\x2b\x54\x5e\x29\ \x46\x77\x9a\xa2\x28\xb2\xe7\x79\xe8\xaa\x41\x6c\x7b\x95\xe2\x9a\ \x1c\x29\x35\xcb\x4c\x75\x8a\x58\x5c\xa5\x7e\x2c\x8f\x3d\x13\xc3\ \xf7\x7d\x59\x51\x94\x64\x2c\x16\xd3\x14\x45\x91\xe7\x56\x4f\xb3\ \xe5\x4e\x8d\x44\x50\x60\xa9\x59\x41\xc8\x02\x77\xaa\x9b\xe5\x8f\ \x52\xf8\x6e\xd8\x20\x62\x59\x16\xb2\x2f\x05\x73\x4a\x45\x1a\xdc\ \x1b\x10\x0f\xb2\x58\x76\x0b\xd7\xb1\x09\x0c\x95\xfa\xf1\x0c\xce\ \xa2\x8a\xa6\x69\x04\x41\x10\x97\x65\x19\xd9\x95\x59\x5e\xb7\xc0\ \xe6\x3d\x69\x12\x41\x9e\xa6\x5e\xc3\xb6\x1d\x68\x24\xa9\xbe\x99\ \x5d\x59\xaf\x27\x39\xb6\xc3\x7c\x72\x91\xe1\xbd\x49\x02\x2b\x8e\ \x2a\x4b\x34\x5a\x15\x54\x45\x63\xf1\x95\x3c\xbe\x11\xed\xe4\xa4\ \x09\xa0\x6a\xe8\xac\xbb\x4d\x47\xc9\x18\x0c\xa4\x86\x90\x0f\xac\ \x7b\x80\x64\x57\xbb\x3b\xcb\xba\x96\x17\x0e\x2b\x92\x2c\x3c\xd9\ \x66\x7d\xec\xab\x7c\x6f\xc7\xa3\x7c\xe7\x0b\x8f\xb3\x2e\xb3\x3b\ \x2a\x31\xec\xd8\x9a\x51\xfe\xd7\x73\x58\xa8\x34\xf8\xd1\xee\x27\ \x19\xce\xde\xc5\x37\xb7\x3f\xc0\xb7\x6e\xfd\x01\xa6\xdb\x5a\x49\ \xa8\x06\x1d\x59\x67\x05\x06\xbb\x7a\xef\x66\x77\xf1\xbb\xdc\xb3\ \xfb\x41\xbe\xb8\xea\x1b\xe8\xa2\x82\x71\xad\x47\xba\x93\x17\x96\ \xbc\xc0\x61\x6d\x6e\x13\x5f\x1f\x7c\x88\x9f\xdf\xf9\x5b\x32\xe6\ \x6d\xac\xea\xed\xc1\xf6\xcc\x28\x45\x19\xf5\x5f\x1b\x26\x8a\x26\ \xb1\x31\xb9\x87\x07\x6f\x79\x9a\xa1\xfc\x5e\x7e\xb2\xf7\x19\x6c\ \x6d\xf9\x33\x34\x6b\xc7\x73\x96\x55\xb8\x32\x51\xe3\xd1\x7d\xcf\ \xb3\x21\xbb\x9b\x9f\xed\x7f\x01\x27\xd9\x88\x3e\xbf\x96\xd6\x6c\ \xe7\x85\x65\x83\x7d\xa9\x76\x5e\x78\x4d\x6a\x13\xeb\x0b\xdb\xb0\ \xed\x50\x79\x74\xb4\x70\x28\xf8\x4d\x5c\xd7\x64\x53\xe1\x16\x8e\ \xcf\xfc\x85\xf7\x4e\x7d\xc4\xce\x35\xfb\xc2\x64\xf9\x0a\x6d\x1b\ \x69\x61\xdb\x22\x2b\x06\x98\xaa\x95\x38\x71\xf9\x75\xbe\x36\x74\ \x08\x81\xc0\x75\xbd\x48\x67\x77\x1a\x83\x0c\xc3\x20\x70\x15\x06\ \x73\x37\x71\xd6\x7c\x95\x1d\xf9\xbb\xd8\x58\xdc\x46\x5f\xd7\x7a\ \xcc\xeb\x7c\x61\xd3\x34\xc2\xbc\xb0\x92\xa4\xea\x4c\xf3\xdf\xd2\ \x28\xb7\xae\xdb\x4b\x3e\xbe\x1a\xd3\x32\xae\x53\x22\xa1\xe7\xac\ \x08\x41\x73\x49\xf0\xda\xd9\xe7\x59\xad\x6d\x63\xfb\xda\xed\x68\ \x52\x22\xd4\xca\xc6\x0a\x4d\x6e\x1a\x04\x81\x47\xd6\xdb\x40\xd5\ \x2b\xd1\x97\xed\xa7\xb7\x7b\x80\xde\xe4\x40\x14\xde\xee\x48\x50\ \xbd\xcd\x48\x37\xda\x79\xe1\x33\x95\xf7\xf8\x1f\xcb\xb6\x8e\xf6\ \x8f\xf1\xef\x16\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x1a\x78\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x64\x00\x00\x00\x69\x08\x06\x00\x00\x00\xcc\x7c\x86\x8a\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x88\x26\x00\x00\x88\x26\x01\ \xac\x91\x9d\x06\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x03\x03\ \x0e\x04\x3a\x04\x0e\x03\xc5\x00\x00\x19\xf8\x49\x44\x41\x54\x78\ \xda\xed\x9d\x7b\x74\x54\xf5\xbd\xe8\x3f\xbf\xbd\x67\xcf\x64\x92\ \x0c\x79\x12\xc2\x23\x01\x4a\x28\x8f\x4a\x90\xa2\x16\x6b\xc3\xa9\ \xa0\x02\xf5\xd4\x2e\xbd\xda\x2e\x5b\xee\xa5\x85\x7a\xb4\x75\xf5\ \xae\x16\xef\x83\xf6\xf6\x9c\x73\x5b\xd0\x7a\x7b\xaf\x4b\xaf\xbd\ \xb4\x97\xd5\x7a\x3d\x2a\xb7\xd6\x1e\x3d\xe7\xd4\x5a\xa1\x2a\x78\ \x05\x0f\x4a\x00\x51\x08\xa4\x09\xaf\xc8\x23\x04\xf2\x9a\x24\x33\ \x99\xcc\xec\xc7\xef\xfe\x31\xcc\x66\x1e\x7b\x87\x09\x4c\x12\x70\ \xe5\x3b\x6b\xaf\x64\xf6\xfe\xfd\x7e\xfb\xf7\xfb\xbe\xbf\xdf\xdf\ \x63\x04\x40\x65\x65\x65\x9d\x10\x62\x07\x63\x30\xea\xa0\x00\xaa\ \x65\x59\xda\x18\x2a\xae\x0e\xf0\x00\x85\xa6\x69\x16\xaa\xaa\x0a\ \x80\x94\x12\xcb\xb2\xc6\x30\x33\x42\x20\x84\x40\x51\x94\x14\x82\ \x94\x1b\x86\x51\xe6\xf5\x7a\x01\xc8\xcf\xcf\x67\xe5\xca\x95\x63\ \x98\x1a\x21\xd8\xbf\x7f\x3f\x7b\xf7\xee\x4d\x21\xc8\x44\xc3\x30\ \x2a\xd3\x0b\x9a\xa6\x89\xae\xeb\x63\x18\x1b\x46\xc9\xf0\xf9\x7c\ \x08\x21\x32\x54\xd6\xf8\x0b\x97\x0d\x52\x4a\xfa\xfb\xfb\x69\x6b\ \x6b\x1b\xc3\xdc\x30\x41\x5e\x5e\x1e\x53\xa6\x4c\x41\x4a\x99\x41\ \x90\x80\x65\x59\x81\xf4\x0a\xc3\x65\x4b\x84\x10\x28\x28\x08\x40\ \x20\x88\x19\x26\x31\xcb\x40\xf5\x9b\xf1\x3b\x31\x0f\xaa\xa5\x82\ \x00\xa1\x48\x10\x20\x91\x9f\x38\x82\xa4\x13\x22\x99\x20\x5e\x21\ \x84\xe6\x54\x30\x5d\x9c\x72\x01\x41\xa3\x8f\x93\xfa\x39\xba\x8d\ \x10\x03\x32\xc6\x67\x6e\xc8\x67\x76\x6d\x01\x49\x76\x8d\xfe\x1e\ \x89\x6c\xcf\x27\x76\xce\x87\xd5\xee\xc7\x33\x90\x17\x27\x90\xdd\ \xb1\x4f\x36\x41\x14\xcb\xb2\xd4\x64\x22\x58\x96\x95\x53\x09\x11\ \x40\x8f\x19\xa6\x61\xe0\x04\x1d\x66\x0f\x42\x2a\x4c\x9d\x9e\xc7\ \x8a\xa5\x65\xe4\xe5\x29\x98\x26\x48\x09\xe2\x82\x34\x14\x94\x0a\ \x28\xeb\x47\xcc\x09\x83\x02\xb1\x01\x89\xec\xd3\x30\x7a\x35\x64\ \x9f\x86\x19\xf2\x60\x85\x34\xac\xb0\x07\x2b\xa4\xa2\xe8\x9a\x2d\ \x4d\xf1\x4b\x5e\x13\x04\x49\xe0\x39\x9d\x20\xc2\x49\x12\xdc\x28\ \x78\x39\x10\xb2\x22\xfc\x6b\x7f\x03\x52\x4a\x54\xa9\x52\x31\xc9\ \xcb\x17\xbf\x54\x8a\xb4\xc0\x30\x24\x42\x08\x12\x5d\x10\x71\x1d\ \x05\x52\x20\x11\x60\x48\x34\x55\x81\x62\x13\x6f\xb1\x09\x0c\x10\ \xef\xda\x85\x72\xc0\x40\x48\x62\x9c\xcf\xc3\x68\xf7\xa1\xb7\xf9\ \xf0\x84\xf3\x6d\x4e\x10\x57\xa9\x44\x0d\x26\x21\xae\x94\xcb\x85\ \x84\x18\xd2\x64\x57\xff\xa1\x0b\x12\x20\xf0\xe5\x09\x6e\xbb\xab\ \x0c\x69\x65\xa9\x16\xed\xe7\xc2\xf1\x96\x04\xfc\x45\x02\x8a\x07\ \x10\xb3\x07\x40\x01\x3d\x66\x61\xf6\x7a\xb0\x7a\xbd\x18\xbd\x2a\ \xb2\xcf\x8b\x19\x56\x91\x21\x0f\x46\x48\x41\x89\x7a\x11\x42\xc6\ \xc3\xe2\x51\x92\xa8\xc1\x24\xc4\xb5\x42\x2e\xa4\xe4\xa4\x7e\x0e\ \x43\x9a\x28\x17\xb0\x58\x33\xb7\x00\x45\x11\xc8\x1c\x31\xae\xdd\ \x86\x14\x48\x13\xa4\x09\x1e\xa1\xe0\x29\x92\x50\x14\xbd\x30\x96\ \xfe\x14\x89\xd2\xa3\x92\x81\x36\x0d\xeb\x9c\x9f\x48\x9b\x07\x4f\ \x77\xbe\xad\xee\x46\x4a\xa2\xb2\x96\x90\x64\x62\xe4\x82\x20\xed\ \x46\x4f\x8a\x14\x54\x4e\xf6\x0e\xab\x5d\x16\x4e\xff\x25\x4b\x94\ \x94\x78\xfd\x02\xef\x0c\x1d\x51\xa3\x53\xa2\x48\x4c\xab\x83\x58\ \x8f\x02\x3d\x5e\x62\x3d\x2a\xf4\x7a\x31\xc2\x0a\x84\x35\x62\x21\ \x81\x12\xd1\x10\x6a\x6e\x25\xc9\x0d\xbf\xc3\x4e\x90\x90\x8c\xa4\ \x7c\x2f\x2c\x52\x47\x3d\x20\x03\xc0\x8a\x4b\xa9\x34\x40\x11\x0a\ \x79\x85\x12\x0a\x63\xe4\x4d\x06\x49\x04\x64\xc2\x96\x81\x65\x40\ \xd7\x9f\x4b\x90\x5d\x79\x39\x27\x48\x56\x2a\x2b\x97\x04\x31\x30\ \xe3\x86\xfa\x02\xf8\x7c\xa3\x4b\x10\x57\x02\xa5\xcb\x56\xc2\x63\ \x93\xa0\xfa\x40\xd1\xc0\x90\x72\xe4\x09\x92\x4b\xef\x8a\xf8\x78\ \x6c\xfb\x01\xa0\x88\x6b\x2c\x8c\x10\x49\x03\x19\x01\x18\x54\x42\ \xc6\xb2\xbe\xc3\x97\xb9\x18\x92\x0d\xc9\xb5\xa4\x64\xb6\x25\x87\ \x50\xf7\x82\x5a\x11\xf1\x7a\x71\xc4\x48\x5b\xdd\x08\x2e\xc6\x30\ \xc3\x4a\x90\x1c\x8b\xc8\x90\xbc\xac\x04\x27\xe4\x82\x23\x84\x88\ \x1b\xcd\x54\x50\xb2\xaa\xab\xa8\xd0\xd5\xae\x73\xea\x64\x1f\x35\ \x15\x73\xb8\x61\xc6\x4d\x54\x96\x4e\x60\x7a\xe5\xa7\x50\x15\xe8\ \xec\x6f\xe3\x64\xf0\x2f\xb4\x85\x3e\xe6\x78\x77\x03\x8a\x50\x1d\ \xde\x95\x33\x0c\xe6\x5c\x42\x86\x1c\x87\x0c\xb7\x63\x7a\x29\xc9\ \x78\xfb\x4f\xdd\xf4\xb4\xc3\xab\x3f\xfb\xbf\xcc\x9f\x3e\x1f\x8f\ \xea\x71\xec\xa7\x29\x0d\xce\xf4\x1e\xe5\xd7\x7b\xff\x96\xf3\xa1\ \x93\xa8\x8a\x73\xb9\x44\x46\xc0\x92\x56\x5c\xf2\x10\x59\xe7\xeb\ \xe4\x30\xa8\x40\x27\x3c\x2b\xd9\x78\x01\x57\x72\x5d\x0e\xc4\x06\ \x2c\x5e\x7d\xb1\x0d\x2d\x56\xc6\x47\xcf\xec\x60\x61\xcd\x42\x54\ \x45\x75\xf5\x92\x3c\x8a\xc6\xd4\xe2\x39\x6c\xb8\xed\x65\x6e\xfd\ \xd4\x7d\x18\x96\xee\x58\x2e\xd4\x6b\xb0\xed\x4f\xed\x4c\xb6\xea\ \xb8\xbf\x76\x2d\x4b\x3e\xf5\x55\xe6\x8c\xff\x5c\xd6\x0c\x92\x2b\ \x9c\x0c\x86\x97\x61\x77\x7b\x11\x82\xf4\x66\x06\x6b\xd7\xb2\xe0\ \xf5\x7f\xec\x24\xe0\x2f\xe5\xfd\x5f\xbe\x89\xdf\xeb\xcf\x2a\xc5\ \x92\x90\x80\xfb\x6b\xff\x23\xc5\x79\x15\xfc\x63\xc3\xff\xc4\xab\ \xfa\xec\xe7\xaa\x47\xd0\x72\x64\x80\xe6\xc3\x3d\xdc\xff\xf7\x7f\ \x43\xcd\xc4\x99\x00\xb4\x74\x1f\xe6\xf0\xf9\xf7\xb3\xa0\x88\x95\ \x53\xad\xe1\xa4\xae\x06\x55\x59\xb9\xf3\xf3\xe3\xae\x6e\x32\xa7\ \x2a\x8a\x3b\x72\x0f\x7f\xd0\x47\xa4\xdf\xe4\xe7\x0f\x3e\x62\x13\ \x23\x1d\xa2\x46\x84\xf7\xff\xb2\x1b\x4d\xf8\xb9\x61\xd6\x02\xbc\ \x1e\x6f\x0a\x61\x56\x7c\x7a\x15\x4d\x1d\x7b\x69\xee\xfc\xe0\x22\ \x41\x54\xc1\xc9\x63\x03\x54\x56\x94\x50\x33\x71\xa6\x4d\x40\x04\ \x29\x73\xda\x57\xaa\x6a\x73\xee\xf6\xe6\x42\xe5\x5c\xb6\x1f\x23\ \x05\x87\x3f\x0c\x51\x5e\x12\xe0\xdf\xde\x76\xbf\x63\xa9\x73\xa1\ \x53\xfc\xb7\x9d\xab\xe9\xe9\x0b\xb3\xf5\xe5\x4e\xaa\x27\x54\xf1\ \xde\x2f\xde\xca\x08\xf4\xfe\xcd\x67\xfe\x3d\x8f\xbd\xb3\xca\xfe\ \x1e\x09\x5b\xf4\xf5\x98\xdc\x3c\x6f\x61\x76\x49\xcd\x61\xca\xed\ \x5d\x4a\x0b\x29\x83\x89\x93\x65\x59\x57\x7c\x25\x5c\xc6\xc4\x27\ \xfd\x7b\xe2\xa3\xa8\x82\x86\x7d\x7d\x74\xf7\x84\xf9\xdf\x8f\x3c\ \xe1\x6a\x04\x5f\xf8\xf0\x51\x22\x46\x98\xbc\x7c\xc1\xed\x77\x97\ \x70\xf0\x48\x13\x77\xfe\xf8\xde\x0c\x04\x57\x15\xcd\xa4\xa6\x74\ \x3e\xa6\x65\x20\x91\x74\x77\xe8\x48\x24\xd7\xd7\x5c\xe7\xe8\xd2\ \x5e\xf2\x93\x23\x7c\x24\x2e\x37\x2f\x4b\x71\x32\x7e\xb9\xe4\x06\ \x91\xf6\x71\xba\x27\x10\x28\x42\xa1\xf9\x60\x3f\x15\xe5\x45\x2c\ \xb9\x7e\x89\xa3\x51\xee\x8e\x9c\xa3\xb1\xbd\x1e\x81\x40\x5a\x50\ \x50\xa8\x32\x73\xf6\x38\xde\xfb\x70\x3f\xef\x37\xd6\x67\xd4\x59\ \xb3\xf0\xa7\x58\xc4\xd0\x54\x85\x73\x6d\x61\xf4\x98\xc1\xbc\x4f\ \xcd\xc9\x70\x9f\x84\x14\x5c\xea\x93\x6b\x37\x2b\xeb\xc0\x30\xd9\ \x1d\xcb\xdd\x8c\xa1\xc8\x20\x51\x3a\x74\xb4\xc5\xd0\x63\xb0\xe2\ \xe6\xbf\x72\x8d\x25\xde\x39\xf1\x4f\xa8\xc2\x13\xaf\x7f\xa1\x89\ \x09\x93\x7d\x9c\x3c\x16\xe5\x9d\x8f\xfe\x95\x45\x73\x6e\x4a\x19\ \x47\xb1\x7f\x3c\x4d\x3b\x4b\x68\x3a\x76\x8a\xed\xbf\x78\x99\xfe\ \xaf\xc7\x98\x33\x25\x95\x20\x01\x5f\x09\x9f\xab\x5a\xce\x80\x11\ \x41\x37\x23\xb4\x87\x5b\xe9\xe8\x3f\xe3\x28\x45\xb9\x8e\x43\x46\ \xc7\xcb\xca\x12\xba\xda\x75\x84\x80\x05\x33\xe7\xb9\x96\x69\xee\ \xfc\x00\x55\xa4\xba\xbf\x25\x65\xf1\xe5\x00\x07\x8e\x35\x38\x26\ \x0d\xe7\x55\xcd\xa7\xe1\x2f\x1f\x33\xa9\x64\x32\x25\x53\xca\x33\ \xda\x2c\xcb\x9f\xc8\xaa\x05\x7f\x1b\x4f\xec\x4a\x8b\xff\x77\xe2\ \x65\x5e\x39\xf4\xf4\xd5\x65\x43\x86\x23\x0f\x94\xfa\x72\x99\x71\ \x85\x7a\x4d\xa4\x94\x54\x55\x4c\x74\x6d\xe7\x74\x4f\x33\x42\x28\ \x29\xf5\x0a\x02\x2a\x52\x4a\xce\x76\xb6\x3b\xd6\x99\x3b\xf5\x33\ \x59\x05\x76\x82\x78\x46\x41\x49\x6b\xff\xe2\x75\x15\x24\x17\x73\ \xc1\x11\x8a\x48\x55\x51\xc2\xc5\x7d\x0c\xf7\x59\x08\x21\xa8\x99\ \x3c\xd3\xb5\x2d\xc3\x32\x33\x8c\xb7\x3f\x5f\x41\x08\x41\x6b\xc7\ \x19\xc7\x3a\xd3\x26\x4d\xc6\x32\xa1\xc0\xe7\x4f\x89\x57\x06\x57\ \xaf\xc2\xd9\xf0\xcb\x51\x9a\xa0\x4a\xcf\x69\x5d\x79\x2c\x22\x2e\ \xe9\xd3\x87\x43\x71\x64\x57\x96\x95\x39\x47\xef\x66\xd4\x11\x91\ \xaa\x27\x9e\xfe\x08\x47\x23\xce\x12\x32\xb3\x9a\xaf\xfd\x4d\x25\ \x13\xef\x9b\x45\x59\x51\x11\x47\xfe\xe1\x50\xaa\x1b\xdd\x77\x8a\ \x7f\x3e\xf8\x0c\x9a\xe2\xa3\xc0\x57\x48\x47\xf4\x63\x67\x82\x58\ \x57\x81\x0d\x19\x49\xd0\x63\xf1\xc1\x96\x14\x16\x3b\x3f\x37\x07\ \x5c\x93\x4c\x9a\x4f\x10\x89\x39\x3f\x2f\xce\x1b\x8f\xc7\xa3\x90\ \xe7\xc9\xc7\x32\x32\x35\x74\xc4\xe8\xe3\x40\xc7\x9b\xa9\x32\xe2\ \xb4\x0a\x67\xd8\xd5\xf8\x20\x5e\x56\x6e\xd7\x65\x65\x17\x80\x99\ \x46\xbc\x63\xf9\xde\x80\xab\x84\xb8\x81\xd7\xab\x10\xee\x77\x5e\ \x87\xec\x55\xf3\x2e\xa6\x0c\x84\x73\xf7\x44\x36\x19\xe2\xd1\xcc\ \xf6\x26\x62\x91\x5c\xac\x5c\x8c\xe3\x41\xa4\x7d\x77\x20\x88\x39\ \x78\xf4\xac\x9b\x51\x57\xd2\xfa\x7c\x0a\xba\x61\x3a\x3e\xd3\x54\ \xef\xc5\xf5\x73\x0e\xed\x0b\x57\xab\x96\x8d\xea\xcd\xb5\x2a\x1f\ \x64\x3e\x64\xa4\x67\x0c\x0d\x43\x0e\x3a\xdf\x1e\x1b\x54\x65\x29\ \x18\xba\x85\x69\x99\x19\x59\x61\x4d\xf1\x5d\x94\x84\x2b\xc8\x47\ \xe5\x1a\x1f\xc9\x11\xfb\x88\x67\x7b\xb3\x51\xc0\x8a\x10\xf6\x4c\ \xe0\x50\xb8\x53\x42\xea\xaa\xc7\x61\xe2\xea\x38\x3e\x86\x3f\x52\ \x57\x46\x42\x34\xb3\x01\x55\x15\xe8\x86\x3b\x07\xda\xb6\xc0\x81\ \xde\x7a\xcc\x42\x55\xe3\x3b\x91\xd2\x07\x69\x5a\xc6\x05\x0c\x08\ \x57\x09\x1b\x2d\xc8\x5a\x65\xb9\xcd\x66\x5d\x49\x2e\x2b\xcd\x8a\ \x3a\xbb\xaf\x03\xee\x8c\xa0\xa9\x3e\xc7\x7a\x08\x81\x11\x13\x68\ \x9a\xc7\x71\x90\xba\x15\x03\x71\x31\x8b\xe6\x4a\xd5\x51\xca\xf6\ \x66\x6d\x43\x92\xb3\xb5\x23\x25\x21\x08\x88\x9a\x11\x7c\x6a\xe6\ \x3c\x88\x6d\x0b\x5c\x5c\x66\xaf\xe6\x71\x71\x06\x62\xb9\x41\x20\ \x16\xb9\x44\x47\xd6\xd9\xde\x5c\x4a\x87\x9b\x4d\x72\x4a\x6f\xfb\ \xfc\x71\x75\x73\xae\xfb\xbc\x8b\xca\xf2\x39\xd6\x13\x02\x62\x31\ \x49\x9e\xe6\x75\xce\x00\xc4\x82\x17\xd3\xfe\xd2\x0d\xd9\x97\xfe\ \x0c\x47\xb6\x77\x48\x81\x61\xee\x88\x92\x39\x43\xa8\x38\x98\xae\ \xfc\x02\x15\x45\x51\xe8\xea\x09\x52\x5d\x3e\xd5\x51\x65\x09\xe9\ \x10\xb4\x49\xe2\xa9\x91\x7c\x67\x1b\xd3\x1b\xed\x8e\xef\xd8\x12\ \x02\xb7\x89\x41\x25\x8b\x94\x9e\xcc\xf1\x14\xee\x90\x92\x8b\x39\ \x9d\x0f\x11\xd9\x39\x0c\xfe\xfc\xb8\xbb\xda\xda\xd9\x36\x88\x1d\ \xf1\x66\x1a\x6d\x23\xfe\x8e\xc2\xbc\x80\x0b\x41\x3a\x93\xe2\x53\ \x71\x45\x4a\x2b\xd7\x30\x6a\xb9\xac\x6c\xa0\x70\x5c\x9c\x20\xc7\ \x5b\x5b\x5c\xcb\x54\x17\xcf\xe2\x48\xc7\x47\x29\x29\xf8\x70\x28\ \x1e\x10\x56\x8f\x9f\xe2\x58\xa7\x2d\xd4\x92\x23\xe4\x31\xba\xb9\ \x2c\xb7\x55\x11\x97\x3d\x9a\x34\x9d\x9d\x0e\x25\xe5\x1a\x48\xc9\ \xfe\xa3\x07\x5c\x9b\x99\x51\x32\x9f\xa6\xf6\x0f\x52\x54\x4c\x7f\ \xc8\x02\x29\x19\x5f\x52\xea\x58\xe7\x6c\xdf\x09\xdb\x06\x38\x8e\ \x27\xcb\x4d\xa5\x72\x98\x56\x9d\x64\x6d\xd4\x73\x16\x8b\x08\x01\ \x8a\x62\x5f\x82\xf8\x2e\xdc\xf4\x4f\x69\xb9\x06\x8a\xc2\xa1\x13\ \xcd\xae\x1c\xf4\xb9\xaa\xe5\x58\xd2\x4c\xa9\x17\xec\x34\x40\x51\ \x58\x38\x6b\x81\xe3\x38\x4e\x06\x9b\xe2\x04\x54\x04\xc2\x61\xb5\ \x8b\xa6\xe6\xa1\xc8\xe4\x16\x9d\xfb\x37\x12\x69\x93\x41\x6d\x48\ \x32\x05\x47\x62\xa1\x9c\xd7\x27\x98\x32\xcd\xc7\xc1\xa3\xcd\x1c\ \x3d\xdb\x9c\xd1\x61\x29\x25\x13\x0a\xab\xa9\x2c\x9c\x9a\x82\xf0\ \xf3\xad\x31\x2c\xcb\xa2\xae\xf6\x73\x19\x03\x6e\x09\x1e\xe6\x7c\ \xe8\x54\xdc\xad\x56\x04\xb1\x68\x66\x02\x72\x42\x41\x15\xba\x15\ \x45\x37\x74\x4e\x9f\xee\xa3\x37\xe8\x9c\x13\x93\x96\xcc\xe9\x42\ \xb9\xac\x25\xc4\x2d\x1e\xb9\xa2\x55\x27\xe9\x04\x72\x98\x90\x33\ \x0d\x58\xb0\x28\x80\x47\xd5\xf8\xbb\xff\xf3\xb8\x2b\x47\xdd\x32\ \xf5\x2e\x4c\xcb\x44\x51\x05\xbd\x41\x83\xa3\xcd\xbd\x2c\xbd\x71\ \x11\xb5\xd3\x6b\x33\xea\xbc\xd6\xf8\x1b\x3c\x8a\x06\x12\xbc\x3e\ \x85\x48\x34\x13\xd9\xaa\xe2\xe1\x3f\xd7\x3d\xcb\xd4\xe8\xdd\xac\ \xb9\xfe\x67\xac\xff\xeb\x67\x1d\xfb\x37\x1c\xab\x4e\xb2\xb6\x21\ \x09\x24\xe6\x26\xdb\xeb\xb0\x3a\x5d\x38\xc7\x02\xf9\x85\x2a\x53\ \xa7\x17\xb0\x6d\xdf\x7b\x1c\x6d\x3d\x4a\xcd\xa4\x9a\x8c\x72\x77\ \xd4\xac\xa4\xab\xff\x2c\xbf\xdd\xf9\x02\x3b\xdf\xe8\xe3\xcb\x75\ \xb7\xf3\xcc\x7f\xf8\x5f\x19\xe5\x4e\x74\x1f\xa2\xa9\x73\x9f\xbd\ \xce\xb7\xb8\xd4\x43\x4f\xb7\x41\xd3\xe9\x26\x66\x4d\x99\x95\x32\ \xce\x69\xa5\xb3\x59\xf7\xb5\xd9\x00\x9c\xea\x69\x1a\x24\xa0\x1f\ \xfe\x94\x92\x32\x98\x77\x95\x2b\x09\x89\x13\x45\x5c\xdc\x56\xe0\ \x70\xd9\x8b\x12\x6e\x28\x04\x09\x3f\xfb\xed\x53\xae\xb6\xe4\xfe\ \xf9\xff\x89\x8d\x5f\x7b\x9d\xc3\xcf\xed\x64\xf3\x0f\x7f\x8d\x4f\ \xf3\x65\x38\x0c\x6f\x1c\x7d\x21\xe5\x7d\x53\x6b\xf2\x40\xc2\x3f\ \xed\x7c\x6d\x50\x5b\x29\x50\x1c\xfb\x97\x58\x75\x32\xe2\xeb\xb2\ \x46\xc3\xe5\x4d\x86\xf2\x4a\x8d\x1b\x6e\x19\xc7\x2b\xdb\xff\xcc\ \xaf\xfe\xb4\x29\x13\x61\x17\xbe\x57\x8f\xaf\x62\x52\x49\x55\xc6\ \x80\x04\x82\x57\x0e\xfd\x82\x03\x6d\xef\xa6\xdc\x9f\x54\xed\xe3\ \xc6\xc5\xe3\x78\xea\xa5\x67\xf8\xf5\x96\xe7\x1c\x6d\xd4\xbb\x2d\ \x7f\xe0\xf9\x0f\x1f\xcd\xc6\x51\xcc\x99\xdb\x9b\x55\xfa\x3d\x97\ \xfb\x43\x86\xec\x0e\x9a\x92\x9a\xb9\x7e\x06\x06\x8a\xf9\x2f\x9b\ \xfe\x3b\x05\xbe\x00\xff\xee\xb6\xfb\x5d\x83\xba\x64\xc4\x1a\x96\ \xce\x96\xe6\x7f\x60\xdb\xf1\xdf\xc5\x6d\x47\xca\x98\x24\x33\x66\ \xfb\x99\x3e\xd3\xcf\x96\x8f\x7f\xc1\x9f\x36\x6e\xe4\xf3\x73\x6f\ \xa4\xbc\xa8\x9c\x96\xee\xc3\x9c\xed\x6b\xc1\xa3\x78\xf0\x28\x5e\ \x67\xd5\x34\x4c\x33\x86\x23\x1e\x87\x88\xcb\xb0\x39\x52\xc2\xdc\ \xeb\xf3\x99\x5c\xed\xe3\xd1\x17\x1f\xe7\xb7\x6f\xfc\x0b\xcf\xae\ \x7b\x8a\x89\xa5\x93\x5c\xeb\xed\x6f\x7d\x9b\xd7\x9b\x9f\xe5\x6c\ \xa8\x25\x83\x18\xc9\xed\x0a\x05\xa6\x54\x15\x02\x92\x93\xe1\x83\ \x9c\x0c\x4b\x04\xf1\x39\xf7\xc1\x6c\x84\x35\x42\xab\x4e\x94\x6c\ \xf3\x2d\x23\xb9\x3f\x24\x81\xc0\xe2\x32\x0f\x7f\xfd\xb5\x32\x2a\ \xae\x3b\xc3\xc2\x87\x3f\xcf\xb2\x75\x77\xd3\xda\x75\xd6\xb1\xfc\ \xef\x0e\x3e\xc1\xb9\xf0\xc9\x21\xec\xa0\x12\x17\xd6\x61\xa9\x17\ \xed\xdb\x10\x82\xdb\x2b\xc5\x99\x5b\xc4\x7e\xc9\x19\x43\xd3\x34\ \x87\x1c\xfe\xa7\xa4\xbf\x0d\x23\x65\xbf\xbd\x69\x19\x08\x4b\xb8\ \xe7\x8b\x64\x6a\xe6\xc8\x30\xa1\xb0\x04\x66\xce\x2e\x66\xf7\x9e\ \x8f\x78\x63\xef\x36\xbe\x79\x47\xe6\x89\x77\x9f\xa9\x58\xc4\xfb\ \xa7\x5e\xbf\x44\xe6\x49\x66\x9d\xaa\x92\x69\x37\x23\xfd\x11\xfa\ \xfb\x8d\xdc\x79\x53\x8a\x92\xbd\xca\xb2\x2c\x0b\x5d\xd7\x09\x87\ \xc3\x57\x2c\xa6\x51\xdd\x40\x58\xa9\xf3\x13\xf2\x32\xdc\xc7\x92\ \xf1\x60\x18\x06\xef\x35\xec\xe5\x9b\x77\xac\x8c\xa7\xde\x93\x14\ \xe2\x8a\x4f\x7f\x93\xe6\x8e\x0f\xe8\x8b\x06\x31\xa4\x8e\x31\xc8\ \x2a\x95\x6c\x74\x6b\xfa\x84\x56\xb4\xdf\xc0\x30\x72\x47\x10\xc3\ \x30\x18\x18\x18\xc8\x38\xb5\xcf\x51\xbe\x63\xb1\x18\xb1\x58\x2c\ \x67\x36\x24\xd9\xed\x4d\xec\xeb\x1b\xea\x35\xb1\xca\x87\xd7\xab\ \xf0\xcf\x17\xdc\xd6\x74\x8e\x1e\x5f\x30\x85\xbf\xbb\xf5\xb7\xfc\ \xd7\x25\xbf\xe3\xce\x4f\xaf\xc6\xb0\x62\x43\x7b\x47\xc6\x2a\x7d\ \x71\x31\x1e\x53\xa0\xaf\x2d\x77\xc4\x18\x72\x1c\x62\x9a\x66\x4e\ \xf7\x87\xe4\x2a\x3f\x79\xcb\xed\xc5\xb4\x77\xf5\xf1\xf7\x2f\x6c\ \x70\xd4\xf9\x5e\x4f\x1e\x25\xf9\x15\x14\xfa\x8a\x73\xb6\x8d\x59\ \x51\x05\x67\x0f\x45\x31\x42\x66\x4e\xe3\x10\xb7\x88\x5d\x19\x2e\ \x63\x6e\x1b\xaf\x1c\x05\xb7\x96\x25\x99\x54\xed\xa3\xf6\xb3\x25\ \xfc\x8f\xcd\x9b\x78\x6b\xff\xf6\xac\xed\xd8\x15\x31\x82\x80\xc3\ \x2f\xf6\xa2\x78\x73\x8b\x97\xcb\xf2\xb2\xae\x26\x48\x48\xc4\xe7\ \x97\x14\x31\x77\x41\x80\x6f\x3c\xb6\x9a\x97\x77\xbd\x44\x7b\xef\ \x79\x42\x03\xbd\xe8\x66\x94\xa8\x11\x21\xa2\x87\xe9\x8f\xf5\x72\ \xa5\x9c\x90\x60\xa6\x13\x6f\xf7\x13\x0b\x9a\x23\x36\x4e\x8f\x7b\ \xfe\x49\xe4\x26\x77\x93\x63\x0e\xb6\x2c\x58\x78\x4b\x80\x79\x0b\ \x0b\xf8\x7d\xf3\x63\xfc\xf9\xf4\x46\x4a\x03\x25\xf8\x7d\x7e\x4c\ \xcb\x24\x66\x46\x08\xc7\x7a\xd1\x14\xef\x15\xbd\x47\xf3\x2b\x9c\ \xd8\xd5\xcf\x91\x7f\x09\x0d\x4b\x0e\xcb\x0d\xbf\x1e\xae\x41\x90\ \x16\x68\x5e\x85\x12\x6f\x1e\x10\x25\x18\x6b\x23\x18\xbb\xcc\x44\ \xe0\x85\x55\x49\x52\x82\x11\x95\x98\x31\x0b\x23\x22\x39\xb6\xbd\ \x9f\x33\x3b\x22\xa8\x9a\x18\x56\x89\x77\x3a\xb7\x77\x78\x25\xe4\ \x6a\x52\x7b\x0a\x08\x35\x6e\xa8\x0d\x43\xd2\x73\x46\xa7\xb7\xc5\ \xa0\xe7\xb4\x4e\xff\x19\x13\xbd\x5f\xa2\xf7\x5b\xc4\xfa\x2c\xa4\ \x89\x4d\x8c\xe1\xc2\x43\x62\x0d\xf5\x35\x2f\x21\xd9\xc6\x13\x66\ \x4c\xda\x57\x34\x64\x11\x3c\x65\xd0\x73\x4c\xa7\xfb\x63\x9d\xc8\ \x19\x23\xce\x74\x4a\x9c\x50\xe9\xd6\x54\x0c\xb3\x75\x1d\x35\x09\ \x91\x62\xf8\xce\x98\xb4\x39\x5e\x11\x98\x52\xd2\x7b\xd6\xa0\xaf\ \xc5\xa0\xe7\x8c\x41\xf8\xb4\x41\x2c\x2c\x31\xc2\x16\xb1\x7e\x89\ \x19\x89\xaf\xe1\x4a\xa8\x28\x4f\xde\xe8\xfb\x33\x59\xdb\x90\x5c\ \x8a\x68\x7e\x97\x42\xa4\xd8\xe2\xb2\xd7\x9e\x27\x73\xbc\x2e\xb1\ \x62\x12\x53\x97\xc4\xfa\x25\xc1\xd3\x3a\xbd\xc7\x0c\xba\x3e\xd6\ \xe9\x3f\x69\xc6\xc3\x39\x9b\xe3\x45\x4a\xf4\xa8\x5c\x65\xba\xc0\ \x8d\xe9\x3d\x43\xa5\xe0\x50\x61\xdc\x79\x15\x8f\x2e\xe8\xad\x30\ \x11\x52\x64\xc5\xf1\x42\x11\x48\x24\xbd\xe7\x4d\x42\x1f\x27\x38\ \xde\x24\xd6\x67\xd9\x1c\x6f\xf4\x4b\x7b\xa9\x95\x10\xe0\xf1\x89\ \x1c\xe4\x9a\x47\x1f\x5c\x93\x8b\xb9\x5b\x75\x02\x05\xdd\xf1\xb3\ \xdc\x43\x65\x16\xc9\x7b\x2a\x2d\x23\xae\xdf\x2d\x5d\xa2\x0f\x48\ \x7a\x5a\x8d\x38\xc7\x9f\xd4\x09\xb7\x98\x60\xe2\xaa\xe3\x15\x95\ \x6b\x1e\xb2\x5e\x28\xe7\x66\x70\xae\x84\x28\x85\xdd\x2a\xaa\x2e\ \x68\xff\x4b\x8c\x70\x9b\x49\xf8\x94\x49\xb4\xcf\x42\x0f\x49\xf4\ \xb0\x85\x1e\x96\x71\x5b\xa3\xc4\x39\x5e\xf5\x88\x4f\xa2\xcb\x91\ \xa1\xb2\xb2\xf6\xb2\x72\xed\xea\x49\x01\xfe\x90\xca\xa1\x5f\x87\ \x3e\xb1\x1c\x9f\x0b\xc3\x3e\xb2\x71\x88\x00\x45\x13\x8c\x81\x7b\ \xa4\xae\x8c\xa1\xe6\x1a\x30\xea\x39\xb7\x21\x63\x70\x65\x6e\xaf\ \xc8\x72\x8b\x17\x80\xaa\xaa\x68\x9a\x86\x65\x59\xf6\x74\x6f\x2e\ \x37\x5a\x5e\x6d\x5e\x50\x2e\xeb\x0d\x29\xb9\xe8\xa6\xe3\x2c\xcb\ \x62\x60\x60\x80\x3b\xef\xbc\x93\x3b\xef\xbc\x93\xf1\xe3\xc7\x13\ \x08\x04\x88\xc5\x62\x04\x83\x41\x76\xef\xde\xcd\xee\xdd\xbb\xd1\ \x34\x2d\xc5\x8b\x70\xfa\x9b\xed\xb3\xa1\x96\x4b\xf4\x33\x19\x41\ \x6e\xe5\xae\xf4\x5d\x4e\x7f\x13\x53\xe0\xb1\x58\xcc\x95\x39\xdd\ \xee\x7b\xb2\x49\x78\x25\xc3\x67\x3f\xfb\x59\x7e\xf9\xcb\x5f\x52\ \x96\x76\x26\x49\x22\x76\xb9\xf5\xd6\x5b\xe9\xed\xed\xe5\xe9\xa7\ \x9f\xe6\xe8\xd1\xa3\x19\x03\x4f\xb4\x9d\x3e\x5b\x96\x3e\xd8\xc1\ \xbe\x67\x5b\x6e\xb0\xff\xdd\xbe\x5b\x96\x95\x72\x88\xdb\x60\xfd\ \x75\xeb\x97\xc7\xe3\xc1\xeb\xf5\xe2\xf7\xfb\xe9\xef\xef\xb7\x67\ \x60\xb3\x91\x24\xe5\x52\xfa\x2d\x71\x19\x86\xc1\x8f\x7e\xf4\x23\ \x5e\x7a\xe9\x25\x9b\x18\xe9\xcb\x45\x13\x10\x08\x04\x58\xb7\x6e\ \x1d\x5f\xff\xfa\xd7\x5d\x17\x06\xe4\xe7\xe7\x53\x57\x57\x47\xe2\ \x07\x2d\xaf\xc6\x20\x2d\x5d\x33\xdc\x7a\xeb\xad\x8c\x1f\x3f\x3e\ \x2b\x35\x24\xa5\x44\x51\x14\x0a\x0a\x0a\xc8\xcb\xcb\x73\x9d\xcb\ \x1f\xb2\x97\x95\xa8\xf4\xfd\xef\x7f\x9f\x55\xab\x56\xd9\x1d\xaf\ \xaf\xaf\x67\xf5\xea\xd5\x6c\xdd\xba\xd5\x2e\x6b\x18\x06\x3f\xff\ \xf9\xcf\x59\xb3\x66\x0d\x07\x0e\x1c\xe0\x8e\x3b\xee\xe0\x9e\x7b\ \xee\x71\x1c\xec\x8a\x15\x2b\xf8\xce\x77\xbe\xc3\x4d\x37\xdd\x34\ \xea\x84\x50\x14\x85\x69\xd3\xa6\x0d\x5a\x6e\xee\xdc\xb9\x6c\xd8\ \xb0\x81\x87\x1e\x7a\x68\xc8\xf6\xc1\xe7\xf3\xe1\xf3\xf9\x2e\xcf\ \xcb\xba\x78\x02\xb4\xb0\x7f\x20\x6c\xce\x9c\x39\x7c\xef\x7b\xdf\ \x4b\x79\xd1\xb9\x73\xe7\xf0\xf9\x7c\x4c\x99\x32\xc5\xae\xf7\xf4\ \xd3\x4f\xd3\xd8\xd8\xc8\xda\xb5\x6b\x99\x37\x2f\x7e\x32\xdc\x3d\ \xf7\xdc\xc3\xfe\xfd\xfb\x69\x69\x69\x49\xe9\xe4\xce\x9d\x3b\x89\ \x46\xa3\x1c\x3c\x78\x70\x54\x09\x12\x8d\x46\x79\xe8\xa1\x87\xb8\ \xf9\xe6\x9b\x79\xe0\x81\x07\x5c\xcb\x1d\x3f\x7e\x9c\x27\x9f\x7c\ \x92\x03\x07\x0e\x5c\x56\xe0\xe7\xf3\xf9\x30\x0c\xc3\x79\x01\xfa\ \x50\x24\xc4\x30\x0c\x36\x6d\xda\x94\x71\xff\xdc\xb9\x73\x48\x29\ \xa9\xac\xac\x44\x4a\xc9\x0b\x2f\xbc\x40\x53\x53\x13\xab\x57\xaf\ \x66\xde\xbc\x79\x29\x52\xb1\x76\xed\xda\x94\x05\x77\x7e\xbf\x9f\ \x50\x28\xc4\x5b\x6f\xbd\x45\x38\x1c\x76\x7c\xaf\xa6\x69\x68\x9a\ \x86\x94\x92\xbc\xbc\x3c\x02\x81\x00\xf9\xf9\xf9\x59\x9e\xb1\x1b\ \x7f\x47\x20\x10\xa0\xa0\xa0\xc0\x9d\x1b\x3d\x1e\xaa\xab\xab\x59\ \xb9\x72\x25\xcd\xcd\xcd\xe4\xe7\xe7\xe3\xf7\x67\xee\x91\xf7\xf9\ \x7c\x78\xbd\x5e\xb6\x6c\xd9\xc2\xf1\xe3\xc7\x07\x95\x36\x55\x55\ \x29\x2c\x2c\x64\xdc\xb8\x71\x14\x16\x16\xda\x2a\x59\x08\xe1\xd8\ \x76\x56\x46\x3d\xf9\x5a\xb4\x68\x11\x13\x26\x4c\xc8\x48\x38\xb6\ \xb5\xb5\x21\x84\xa0\xa2\xa2\x82\x17\x5f\x7c\x91\x37\xdf\x7c\x93\ \x07\x1e\x78\x80\xba\xba\xba\x0c\x5d\x5a\x52\x52\xc2\xdc\xb9\x73\ \x69\x6e\x6e\xa6\xa4\xa4\x84\xa7\x9e\x7a\xca\x26\xc4\xb7\xbf\xfd\ \x6d\x47\x3b\x72\xef\xbd\xf7\xe2\xf1\x78\xe8\xea\xea\xe2\xab\x5f\ \xfd\x2a\x7e\xbf\x9f\x48\x24\xc2\x9b\x6f\xbe\xc9\xb3\xcf\x3e\x3b\ \x28\x92\x1f\x7e\xf8\x61\x6e\xb9\xe5\x16\x2c\xcb\xc2\xe3\xf1\xb0\ \x67\xcf\x1e\x1e\x7d\x34\x75\x55\x7b\x2c\x16\xe3\xc1\x07\x1f\xe4\ \xde\x7b\xef\xb5\x55\xe8\xb2\x65\xcb\xa8\xaf\xaf\xe7\x87\x3f\xfc\ \xa1\x5d\x2e\x12\x89\xb0\x71\xe3\x46\x6a\x6a\x6a\x88\x46\xa3\xfc\ \xf8\xc7\x3f\x66\xff\xfe\xfd\x19\xef\xd5\x75\x9d\xeb\xae\xbb\x8e\ \x47\x1e\x79\x84\xda\xda\x5a\x2c\xcb\x42\x55\x55\x36\x6c\xd8\xc0\ \x1f\xff\xf8\x47\x9b\x58\xaa\xaa\xda\x8e\xc3\x65\x49\x48\x42\xc7\ \x27\x57\x94\x52\xd2\xda\xda\x4a\x75\x75\x35\x3b\x76\xec\x60\xfb\ \xf6\xed\xdc\x77\xdf\x7d\x2c\x5e\xbc\x38\x73\x7b\xc0\x85\x7a\xb3\ \x67\xc7\x37\xc4\x74\x77\x77\xb3\x6a\xd5\x2a\xf2\xf3\xf3\xe9\xec\ \xec\x74\xfd\xbd\xdd\xea\xea\x6a\x96\x2c\x59\xc2\xf2\xe5\xcb\x79\ \xf0\xc1\x07\x59\xbe\x7c\x39\x67\xce\x9c\xe1\xae\xbb\xee\xc2\xe3\ \xf1\xb8\x7a\x2d\x6b\xd7\xae\xe5\xb6\xdb\x6e\x63\xe3\xc6\x8d\x7c\ \xe5\x2b\x5f\x61\xf3\xe6\xcd\xd4\xd5\xd5\xb1\x64\x49\xea\xd1\xb3\ \x5e\xaf\x97\x4d\x9b\x36\xb1\x79\xf3\x66\x00\xd6\xad\x5b\xc7\xd2\ \xa5\x4b\x59\xb7\x6e\x5d\x86\xa4\x3d\xfc\xf0\xc3\xd4\xd7\xd7\x53\ \x5c\x5c\xcc\xd9\xb3\xce\x6b\x8b\x67\xcf\x9e\xcd\xf3\xcf\x3f\x4f\ \x51\x51\x11\x2b\x56\xac\xa0\xb6\xb6\x96\x65\xcb\x96\xd9\x2a\x2e\ \x81\x87\x4b\x39\x31\x97\xf4\xb2\x26\x4c\x98\x90\xf1\x3c\x18\x0c\ \xd2\xd7\xd7\xc7\xc0\xc0\x00\x9b\x37\x6f\x66\xd9\xb2\x65\xdc\x75\ \xd7\x5d\x83\xfa\xd7\x25\x25\x25\x36\xd2\x4a\x4b\x4b\x51\x55\x95\ \x8f\x3e\xfa\xc8\xb5\x83\x93\x26\x4d\xa2\xa0\xa0\x80\xf5\xeb\xd7\ \x13\x0e\x87\xf1\x7a\xbd\xec\xde\xbd\x1b\x80\xb2\xb2\xb2\x0c\x82\ \x18\x86\xc1\x82\x05\x0b\x58\xbc\x78\x31\x7f\xf8\xc3\x1f\xd8\xb2\ \x65\x0b\x3e\x9f\xcf\x56\x31\x45\x45\x45\x8e\x04\xac\xae\xae\x06\ \xe0\xe4\xc9\x93\x83\xaa\xa2\xa9\x53\xa7\x62\x9a\xa6\x63\x39\x29\ \x25\x3f\xf8\xc1\x0f\x6c\xf5\xdc\xd9\xd9\x49\x61\x61\x21\x5d\x5d\ \x5d\x9c\x38\x71\x22\x15\xe1\x8a\x32\x74\x2f\x2b\xb9\xe0\xb8\x71\ \xe3\x32\x9e\x1f\x3a\x74\x28\xbe\xd1\xb2\xae\x8e\x68\x34\x3a\xe8\ \x82\xec\x04\x24\x74\xb9\x69\x9a\xd4\xd6\xc6\xf7\x03\x1e\x3c\x78\ \x30\x83\x20\x09\x44\x4f\x9c\x38\x91\x96\x96\x16\x4e\x9c\x38\x61\ \x3b\x17\x55\x55\x55\x00\xb4\xb7\xb7\x67\x1e\x32\xa3\xeb\xb6\xe3\ \xf1\xcc\x33\xcf\x50\x58\x58\x48\x5e\x5e\x1e\xb7\xdf\x7e\x3b\x96\ \x65\xd1\xd8\xd8\xe8\x38\xce\xaa\xaa\x2a\x2c\xcb\xe2\xd4\xa9\x53\ \x83\x06\x71\xd3\xa6\x4d\xe3\xd0\xa1\x43\x19\x63\x95\x52\x52\x54\ \x54\xc4\x8d\x37\xde\xc8\x87\x1f\x7e\x48\x73\x73\xb3\x6d\xe7\x14\ \x45\xc9\xb0\x79\xc9\xef\xb8\xac\x19\xc3\x60\x30\x98\x71\xbf\xb1\ \xb1\x11\x55\x55\x59\xba\x74\x29\x07\x0e\x1c\x60\xdb\xb6\x6d\x2c\ \x5d\xba\x94\xf2\xf2\x72\xd7\xb6\x42\xa1\x90\x4d\x90\x84\x07\x96\ \xdc\xf9\x74\x6e\x04\xd8\xb1\x63\x07\x9a\xa6\xd9\xf5\xae\xbf\xfe\ \x7a\x82\xc1\x60\x4a\xf0\x96\x80\xc9\x93\x27\x53\x51\x51\x41\x24\ \x12\xe1\x27\x3f\xf9\x09\x81\x40\x80\xea\xea\x6a\xda\xda\xda\xd8\ \xb0\x61\x03\x0d\x0d\x0d\x78\x3c\x9e\x8c\xd8\x62\xfa\xf4\xe9\x34\ \x36\x36\xa2\xeb\xba\xfd\xae\xf4\x32\x09\x29\xaa\xaf\xaf\xcf\x60\ \x20\xc3\x30\x58\xbe\x7c\x39\x00\x2f\xbd\xf4\x12\x89\xdf\xa5\x1f\ \x4c\xda\x06\x4b\x2d\x79\x2e\x15\x24\x39\xe9\xcc\xc3\x87\x0f\x53\ \x59\x59\x89\xaa\xaa\x2c\x5e\xbc\x98\xe6\xe6\x66\xde\x7e\xfb\x6d\ \xee\xbb\xef\x3e\xd7\x17\x76\x74\x74\xd8\x03\xbc\xee\xba\xeb\xe8\ \xea\xea\xc2\x34\xcd\x0c\xc4\x26\x10\x0f\xa4\xa8\xb4\xd2\xd2\x52\ \xc6\x8d\x1b\x47\x43\x43\x83\x63\x36\x21\xc1\x0c\x67\xce\x9c\x61\ \xd7\xae\x5d\x74\x74\x74\xd0\xd0\xd0\x40\x30\x18\xc4\xe3\xf1\x64\ \x10\x43\x4a\xc9\xc4\x89\xf1\x33\x82\xf7\xec\xd9\x93\xf1\x3c\xb9\ \x3f\x8b\x16\x2d\x02\x60\xf7\xee\xdd\x19\x04\x31\x4d\x93\x19\x33\ \x66\x00\x70\xe2\xc4\x89\x4b\x7a\x81\xc9\x7b\x1b\x2f\x2b\x52\xaf\ \xaf\xaf\x4f\x69\x28\x12\x89\x10\x0e\x87\xed\xc1\xdc\x74\xd3\x4d\ \x04\x02\x01\xde\x79\xe7\x1d\x0c\xc3\x70\xdc\xbb\x97\x20\x62\x42\ \xff\xe7\xe7\xe7\xd3\xda\xda\xea\x8a\x80\xf9\xf3\xe7\x03\xa4\xa8\ \x91\xc9\x93\x27\xdb\x08\x1f\x6c\xa0\x47\x8e\x1c\xe1\xb5\xd7\x5e\ \xe3\xbd\xf7\xde\x23\x1c\x0e\x3b\x72\x7d\xfa\x7b\xf6\xec\xd9\xe3\ \x6a\xcb\x0c\xc3\xb0\x1d\x9b\xa6\xa6\xa6\x8c\x72\x42\x08\xa2\xd1\ \xa8\xad\x36\x5d\x4f\xbe\x4b\x4b\xcd\xb8\xd9\x5b\xe5\x52\xe9\xf7\ \x7d\xfb\xf6\x71\xe4\xc8\x11\xfb\x5e\xc2\xdd\x4d\x36\xf6\xab\x56\ \xad\x22\x18\x0c\xf2\xfb\xdf\xff\xde\xb1\xad\xd3\xa7\x4f\xd3\xd4\ \xd4\x64\x1b\x6b\x37\xc9\x4b\xc0\x9c\x39\x73\x6c\x82\x25\xde\x9b\ \x08\x40\xdd\x08\x72\xfe\xfc\x79\x5b\x05\x79\xbd\x5e\x54\x35\x7e\ \xba\x50\x79\x79\x39\x85\x85\x85\x99\x87\xd6\x98\x26\x73\xe7\xce\ \x4d\x41\xb4\xdb\x8f\x34\x2f\x58\xb0\x80\xd6\xd6\x56\xc7\xd5\xfc\ \xaa\xaa\xda\xc1\xed\x97\xbe\xf4\x25\x3b\x6f\xa5\x69\x1a\xaa\xaa\ \xa6\x48\x44\xe2\xd9\x60\x46\xfd\x92\x33\x86\x7e\xbf\x9f\xef\x7e\ \xf7\xbb\x6c\xdd\xba\x15\x55\x55\x39\x75\xea\x14\x91\x48\x84\x8a\ \x8a\x0a\xbb\xc3\xb5\xb5\xb5\x4c\x9f\x3e\x9d\xad\x5b\xb7\xb2\x64\ \xc9\x12\x2a\x2b\x2b\x53\x74\xf0\x13\x4f\x3c\x61\xeb\xd6\x04\x62\ \xdd\x08\x32\x69\xd2\x24\x54\x55\xa5\xad\x2d\xf5\x54\xa0\x84\x41\ \x77\x23\x48\x7b\x7b\x3b\xcf\x3d\xf7\x1c\xdf\xfa\xd6\xb7\x78\xfc\ \xf1\xc7\x39\x73\xe6\x0c\xe5\xe5\xe5\xcc\x9e\x3d\x9b\x35\x6b\xd6\ \x64\x72\xa2\xa2\xd8\x1e\xd8\x4f\x7f\xfa\x53\x0c\xc3\xe0\xf5\xd7\ \x5f\x67\xe7\xce\x9d\x29\xea\x6b\xca\x94\x29\xf8\x7c\x3e\x4e\x9f\ \x3e\xed\x1a\xf7\xbc\xf1\xc6\x1b\x7c\xe3\x1b\xdf\x60\xcd\x9a\x35\ \xcc\x98\x31\x83\x48\x24\xc2\xc2\x85\x0b\x59\xbf\x7e\x3d\xbb\x76\ \xed\xb2\xdd\x74\x5d\xd7\x6d\x95\xe6\x46\x10\x15\xb8\x41\xd3\xb4\ \xea\xbc\xbc\xbc\xda\x44\x47\xa7\x4d\x9b\xc6\xc0\xc0\x00\x3d\x3d\ \xf1\xdf\xb1\x0d\x87\xc3\x74\x76\x76\x52\x57\x57\x47\x69\x69\x29\ \x5f\xf8\xc2\x17\x98\x35\x6b\x96\x9d\x62\x07\x58\xb8\x70\x21\x75\ \x75\x75\x04\x02\x01\x3b\x6f\x23\xa5\xe4\xf9\xe7\x9f\xa7\xb1\xb1\ \xd1\x2e\x57\x54\x54\x44\x5f\x5f\x1f\xf5\xf5\xf5\xf4\xf6\xf6\x66\ \x74\x28\x10\x08\x20\xa5\xa4\xbe\xbe\x3e\x05\xf9\xa5\xa5\xa5\x74\ \x74\x74\xf0\xee\xbb\xef\xda\x2a\x22\x9d\x53\x0f\x1d\x3a\xc4\xbe\ \x7d\xfb\x28\x2b\x2b\x23\x10\x08\xd0\xd0\xd0\xc0\x63\x8f\x3d\x46\ \x5f\x5f\x5f\x66\x00\xa6\x28\x34\x36\x36\xd2\xd7\xd7\x47\x55\x55\ \x15\x67\xcf\x9e\x65\xfb\xf6\xed\x0c\x0c\x0c\xa4\x94\x4d\xb8\xcb\ \x3b\x76\xec\xa0\xa5\xa5\xc5\xd5\xf9\x79\xe5\x95\x57\x08\x87\xc3\ \x4c\x98\x30\x81\x68\x34\xca\xaf\x7e\xf5\x2b\xf6\xee\xdd\x6b\x4b\ \x89\xae\xeb\x29\x52\xaa\x69\x1a\xa5\xa5\xa5\x04\x83\x41\xba\xbb\ \xbb\x2f\xb6\x05\x3c\xe8\xf7\xfb\xbf\x50\x5c\x5c\xbc\x32\x41\xf1\ \x2f\x7e\xf1\x8b\x04\x83\xc1\x14\x9f\xdb\x30\x0c\xee\xbe\xfb\x6e\ \xd6\xaf\x5f\x9f\x75\xd2\xee\x37\xbf\xf9\x0d\x3b\x76\xec\xb0\x3b\ \x25\xa5\xc4\x30\x0c\x4c\xd3\x4c\x51\x11\xc9\x69\x6c\xd3\x34\x6d\ \x4e\x4a\xae\xa7\xeb\xba\x1d\x79\x3b\xa5\xc7\x93\xf7\x44\x26\x72\ \x46\x42\x08\x9b\xdb\xdd\xd2\xed\xb1\x58\xcc\xb6\x7d\x89\x54\x4d\ \x72\xfb\x96\x65\x11\x8b\xc5\x52\xfa\xe3\x96\x7e\x8f\xc5\x62\x29\ \xef\x4d\xd8\x1b\x5d\xd7\x6d\x07\x26\x39\xdb\x5d\x53\x53\xc3\xf1\ \xe3\xc7\x53\xd2\x31\x9e\x6c\x53\xd2\x1e\x8f\x87\x57\x5f\x7d\x95\ \xfa\xfa\x7a\x36\x6e\xdc\xc8\xf4\xe9\xd3\x1d\x0d\xa1\x65\x59\xb4\ \xb6\xb6\xf2\xe4\x93\x4f\xd2\xd9\xd9\x99\x51\x26\x91\x3e\x70\xdd\ \xb0\xa2\x28\x78\xbd\x99\x07\x95\xa5\x23\xd6\x35\xd2\x4d\xaa\x9f\ \xcd\xc9\x78\x9a\xa6\xa5\x44\xfe\x4e\x99\x06\x9f\xcf\x97\xd5\xae\ \xe2\x64\x97\x37\x79\xa2\x6a\x28\x27\xf4\x0d\x69\xc6\x50\x08\xc1\ \xd9\xb3\x67\xf9\xf2\x97\xbf\x4c\x6d\x6d\x2d\xb5\xb5\xb5\x4c\x9a\ \x34\x89\x8a\x8a\x0a\x42\xa1\x10\xed\xed\xed\x1c\x3b\x76\x8c\x63\ \xc7\x8e\x39\xba\x99\x83\xcd\xd4\x39\xfd\xbd\xd4\x0c\xa3\x5b\xbb\ \x43\xbd\x7f\xb9\xe5\x2e\x35\xbb\xe8\x34\x57\x74\xd9\x04\x71\x6b\ \x28\xc1\xe1\xcd\xcd\xcd\xb6\xe7\x94\xf3\x33\xb6\x3e\x01\x0b\x18\ \x2e\x85\x8f\x21\x4d\xe1\x66\xbb\x2e\x6b\x8c\x00\x57\x4e\xb8\x21\ \x67\x7b\xc7\x60\x78\xa5\x68\xc8\x71\xc8\x18\x8c\x2c\x51\xc6\x24\ \x64\x4c\x42\xc6\x60\x4c\x42\xae\x21\x4f\xcc\x55\x42\xc6\x8d\x1b\ \xc7\xac\x59\xb3\xc6\x30\x37\x4c\x90\x98\x39\x74\x54\x59\xe9\x01\ \x8f\x53\xae\x68\x0c\x72\x0b\x96\x65\x11\x8d\x46\x33\x16\x12\x7a\ \x00\x4b\x88\x8b\xfb\x64\x0d\xc3\x60\xdb\xb6\x6d\x63\x18\x1b\xa5\ \x58\xc4\x03\xe8\x40\x2c\x5d\x9c\xc6\x60\x94\x54\x19\x10\x16\x42\ \x0c\x8c\x79\x54\xa3\x0f\x52\xc6\x77\x16\x2f\x05\x26\x6a\x9a\x56\ \x21\xa5\xf4\x70\x2d\xee\x25\xbe\x76\xc0\x14\x42\xc4\x80\x5e\x45\ \x51\x3a\x54\x55\x3d\xa7\x69\x5a\x50\xd3\xb4\x88\xc7\xe3\x31\x00\ \xf9\xff\x01\xfa\x90\x4b\xa0\xc0\x4f\x7e\x35\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0b\ \x08\x52\xaa\xc7\ \x00\x66\ \x00\x69\x00\x67\x00\x75\x00\x72\x00\x65\x00\x38\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x14\ \x00\x22\x00\x47\ \x00\x54\ \x00\x69\x00\x6d\x00\x65\x00\x2d\x00\x46\x00\x6f\x00\x72\x00\x2d\x00\x4c\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x2d\x00\x32\x00\x2e\ \x00\x6a\x00\x70\x00\x67\ \x00\x0b\ \x07\x50\x31\x47\ \x00\x65\ \x00\x6c\x00\x6c\x00\x69\x00\x70\x00\x73\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x0b\x53\x47\xc7\ \x00\x72\ \x00\x61\x00\x6e\x00\x64\x00\x6f\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x05\x8f\xe2\xc7\ \x00\x63\ \x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x00\x28\x58\x27\ \x00\x74\ \x00\x69\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x0a\x12\x5e\xc7\ \x00\x6b\ \x00\x69\x00\x6e\x00\x65\x00\x74\x00\x69\x00\x63\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\ \x00\x00\x00\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x36\xe6\ \x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x01\x1d\xd1\ \x00\x00\x00\x92\x00\x00\x00\x00\x00\x01\x00\x01\x1a\x51\ \x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\xb5\xc1\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\xc6\x00\x00\x00\x00\x00\x01\x00\x01\x5d\xa6\ \x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\xdf\xd4\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/images/0000755000076500000240000000000012536324426023640 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/images/centered.png0000644000076500000240000000157412536324426026146 0ustar philstaff00000000000000‰PNG  IHDRddpâ•TsRGB®ÎébKGDÿÿÿ ½§“ pHYsÄÄ•+tIMEÙ§¡o)üIDATxÚíÖ¿oEÆñïÌíÚ±›“…-°8 wn¬nà‹K7ÈüT'QB(ÝÐ6m0Žp*DD” ÈdìäÞóÞž÷×ìP9‰2R®Xñ|¤ív¤}çyßy1L>vqqñcLøœË¦€ÏNOOÿVA^°õõußn·ñÞSQQ¾ù”—®LS>™ÆÍŒ^²`¬ï,ŽcöööV²,;ªÃƒºE:MS p?ÿ…Îõá™»¤^$ <Ÿ"ûu†áá,eYbŒñuÙŸ­S1ªª"Ïsò¼ÀSaáªyŸÏ;wxçõ˜ç‹W[ØW2Š¢ ( œsµ:pµJˆsŽ<ÏÁ&Ã`òá{óÑ­|½ýw_;ã$}À÷?%Ïs¼÷Ï¢‚L‚÷ž,Ë0˜‚áÀ1×l’W)‡òcr ã-Y–S¥‚L¸esóS †C¦£yQá)]÷Œ’ôìæR£‚Ø:&$Ër* n3¤ÝnsrrÂææ&Q±´´ÄÚÚÛÛÛxïiµZ¬¬¬Ðét(Ë’0 k•Z5ÙÕÕU¿¼¼ÌÖÖ»»»£oíøÇGQD†xïIÓçÎ9ŽŽŽÞ Ô²& ßï³³³3žÿ9]ÆPÅhcA@E¡kï¤?ÊçY†áL³ÙLã8FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDþOþÑÀQ%½%`IEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/images/ellipse.png0000644000076500000240000002501712536324426026010 0ustar philstaff00000000000000‰PNG  IHDRddpâ•TsRGB®ÎébKGDÿÿÿ ½§“ pHYsÄÄ•+tIMEÙ+쥻n IDATxÚíy”]Uï?û w®95¥*!! „ˆÑ ­[ì6` HÓðhÄõÚÕOxHƒÚ“­H«K´Q@ŸØ4­ØÈ $Œ’š’ªTªêÖp«êÎÙöûãÖ>¹ÉaÎË^+‹[Ü᜻¿û7}Ã…ãëø:¾Ž¯ãëø:¾Ž¯ãëø:æ—x3ÝLuuuW&“1¥”^]]ÝûÖ¬Yó9Ó4]×uåþýû[V¬Xçy$“IZ[[)•JhšÆ®]»°m»ü…„@Ó´ƒ_P pÕcÃ0ú 0¨×¶¶¶ÇßÐ=0ÞÈ‹·µµ-››{§”ÒX¾|ù·ÛÛÛÃRJ†ö  ¥¦i•.†aà8HÉD>A‡ÑA&“]vòœ½êL'¦Ñ„†®ëèºDùè…3Õõw®\¹ÒB°gφ‡‡ßèCùºRUUef2`vvöº~ô£×«çúûûË'\ò”°J–š çð<˲Àƒœ[IJ,,ËÂÖ]×&Np`zœÓNê¦X*¡ë:;v?OU“À› !„IùŸµêÚÑh”îîî>@¸®kîÙ³gÑÿ€´µµ=¸xñ⋤”ô÷÷333S>ù@É.o²Šž…íØ!p)%–e!=‰”¶mcYŽ!‘à†ôÇŽ@?X("€ —Çb1¤”˜ÓßXÇs(•JþÆZ–UBZxžW~Î)%¥R© ˆç•,p×ÿLWÓ‘ê}@oç7žGn4‡) M³ Cɇ9t šDhȳÎ:ë·¦iòè£Þ |ü˜dÁ‚÷¿ímoÓ4McïÞ½”J¥ò¦º6¶eW€PÞh@JÏÊ–¶/!xÏ“7}þD«×º^YzJ¥º¦ûÏ !ž‡‡‡+]³3ˆ%3¤¤ %Ò8ÉnÊÀK¢lÕÀ0 êêêNokk»EÁìììóccc¾åéèè8£¦¦†R©„çy^¡PÐt]Çu݃H˶|IÙ !žGYíH‰7¿ÑÒõBú›îI@Ä=(!º¦ùÒ$„ðÁ±m›Ã#œ»è\dRâII6’¢a©Ž7BÚiiH«ì­uvvž œi;v츧WÛ3{­ 477oéééÁq6oÞŒmÛ¸®{PõÌ`[U–çyX®[6¾ ÀÄBB:.KQ°D±X$ŸÏ#DV|ÆA@4¡áy2ˆúÜT*…çyL§fÑM23rX`x؉Ö0B+»Ô³³³+[[[otàáx<þÜ›VBÚÚÚšÇÆÆj€ ú®ëú¡i®ëú›'=‰íÄÅ#›Ê  Û³ÈØÇÁÑ=bfÄWYŽa“ÍfÉårHGàx.sssä½"¶mQ(Є@šÁ’à{g¾×äæÒ,k<Í·áãÁq­âL†qsAd§1o[$‹-êz4Mcûöí‰75 …BážK/½ô‚\.Çèè(¶mû’ â*7“’\.G.—+‹U8èŸfWs1LÏó0äÁ€¯P*LkUå[6èž@3ÊêEw™L–t:@ªP´‹óâù΀ïµÉ²ú+–ʯٟ¢íâÔ0:%†^QÃM832ÏU&Ñ4|>jç÷1ñ¦Äó<- R(|Õä8Îa¶Á£P(Ì?vý Œ„Ðæõ~ ¯!ê4Î=÷\fggéëëã‚ .àòË/çÎ;ïdppË/¿œX,ÆwÞ‰¦itvvràÀtCÇ0 àlr¹LY:×W‘êž<Ïó퀑´ñ]DB–%ÊÓ²-²4Ýô|7¹§§çŸO=õÔ.•JüêW¿o @š›››„˲zÔ+©¨TY*¦Èf³hš†eYºa”oC“‚÷¼ç=ÜtÓM\{íµœ{î¹¼ýío§»»›uëÖqË-·ðüóÏså•Wòï|‡w¼ã\pÁÜÿýÜxãtvvòÌ3ÏpÏ=÷PSSC4ezz×0Ð4 Íd²²Ù¬¯:=Ïó;ŽC8&1Ñ4g‹{xï51å€ÒJ˜8a¬‘îl`Þ1‘ƒÁ7Êšœœ\ôþ÷¿ÿÌX,ÆæÍ›)‹²T* ‚ëº8ŽÃÜÜBt}þô æiH$wÝu‰D‚[o½•«®ºŠ¾¾>Î9çvìØÁe—]†ç•}Ðo}ë[Üpà |á _ ‘HÐÓÓC±Xdff†“O>™ÞÞ^:;;Y¼x1ŸúÔ§XµjgŸ}6®ëòž÷¼‡‡zˆR©tÐY8ÌÑpç Û¶I&“”’sì¸7‡çIý"Ê>ÖŒ5ðù³êêê¯K) ‡ÃÏMMM}ÿu¤¹¹™ÉÉIõgÞ¶íÊS'ÔÉS_XyP ªª*.½ôR~üãóÞ÷¾!]tßøÆ7xðÁùÈG>ÂöíÛéïïçꫯ¦X,¢i>ø ?üáñ뺕~~¥—%„@²/·ß~;Ùl–µk×òôÓO³~ýzöìÙƒã8<öØc<úè£äóyZZZüÓ\(X°`¡PˆB¡@*•"új#ðÀ077G©T’7Ýt“eoKÓH¥RèºÎÂ… ù·û7>ó™ÏL&ý÷+i¾´ÌÌÎ ¥$ç–_GvÑ„†¦yHÍÃÉèØã!R¿®èÃ0RÚ¯$F9j•eYVW[[sssض-”ñV1€”Ò?}®ërÝu×qõÕW³aÃvíÚÅúõëyòÉ'q‡ë¯/ó‹H)ýkìÛ·ïk8p@m í8Î)%º®[ù|þò±±±)€@ pIssóí¹\ŽB¡@,ãÚk¯¥££ƒmÛ¶ñÝï~—‘‘ššš|BÒq’É$®ëÒÐÐp0 —üýF0§ƒÐ\J (8D"”âcˆyÆ?ŸÏÿIssócš¦iñx|ÝëfC¤”V©T¶m?¾€rð–N§1M!¥R‰p8ÌßþíßòôÓOÓÜÜÌ~ô#üq ‰üá¤X–µOÓ´!@:޳+ú½6‰|{ëÖ­ÿ HÛ¶³‹/mhhˆ( ¹ï¾ûä—¾ô%ñ½ï}|à|èCâóŸÿ<Û·o÷=®J§$‘Hpöš³p`Ôã„ó mz9N"„![æãC´†Ñ²qãÆ£Šà_6 uuu×®Y³æCŽSfUu]?$Þ°,‹@ À 7ÜÀŠ+¸æšk¸þúë¹ð f>9D,;è. …d2™oÄãñ¯éþÒétð“N£££ëGFFÌyéùÇñññÓ.¸à‰·Ýv,^¼˜çŸž|>mÛ Ôws]—B¡PþN Ð3¶ ­6Gô ©I¤ N2ÀìÏëñŠšR]ê2ŽBUµ-\¸°~llÌ·•4‡J ¬_¿ž¾¾>LÓdóæÍ<õÔSƒA‚Á O޲EUUUlÙ²¥=™LN¼œÉd~£‡ÃáK8`žëº'Þpà ѯ|å+ôööÒÑÑÁwÞÉúõë) ¾]qÇq˜Å.Y”J:/ôçyû ‰…£<¾ï?éÕØdɰ‘hš†išôôôÜL&7ŒŒÜùšIˆRC•¾»ÒÁ¶m³páBî¹ç>üáó¯ÿú¯üÝßýÁ`°Ì;ÍKçy¨¼ƒRóö@¤R©‡€„®ëép8l+ë¤ê•¬D"qm"Q¨ëë럌Åbgß|óÍŒsûí·³sçN€O\V~¿ééiº»»Ë«+y|üqºÏ Ò®µâN„ðR ¡ír]ׯìïï×_+@Bï{ßûö8p Z‰²¢F”ë)¥äÓŸþ4O=õó\üà©©©yI0M“-[¶|>“ɼªüЋHúõš¦YRÊÿõOÿôOkoºé&,ËbݺuìÛ·±±1_9Žã³Æ9¯DÛ{J„Û¡Ð<‹µn (˜Lý¤ax†áÇP¯ õÕÕÕ u]÷%¤P(P, „Ãa4Mã'?ù W\qµµµ‹Eß[9\Ôߺ®“N§w†ñ¸ëºN$‰g2™× MÓÈf³¿Ëf³ê4_a·Ür †aÈ»îºK¬^½Ú½rã•&ÈsD¶ç˜ú}šËÏø[\½ÀC½ß¦)ÜÅDfˆ¹±"Â(_gfffQ4ýË\.wß«H…Þv•¯®DÙ²,òù<ííí<ôÐC¼ÿýïgß¾}\wÝu4MûCU ‡|~8&?533sÃë•F>üÔ¦ÓéÍ;vìzž§·´´¼ÿé§ŸF×u„„ÃáCT—išœ}Ú¤®tÙÖ»ÓÐY꜃;#Xj/†ÕªžG¬) kî¾ûîWxŸgïÞ½á|>_äM¸êêê;å”SÎ]¾|9[·nezzšÖÖV¤”d2-Z„ކS‚¢WÄ¥„iGÐy5m‚0üxJš¦)¶oß¾zllló+µ!1ÏóªÔép]×gkãñ8çœs7ÝtÛ¶m#—Ë177G*•"ÐÚÚÊØØccc¬X±‚mÛ¶Q,5>>~k,K×××—òùü›„Û¶yâ‰'èîî–—\r‰¸ë®»¨­­Åó<ŸGÕghÿ‹Y4pòV9Ë8š" :^^ÑhÃ0œW¬²êëëoollüSåê*@ºººxöÙgÙ´iÓ‹¾wttÔ—šÞÞ^b±@`rÿþýOÏÍÍùi×7ãrçóͶm¯Y³f͵CCC†qH~ eå8³9J!/y× ï£¯j3éŽ@P6™ùE èeòóU±!®ëF”ûª Þýîw3::Êc=F8öË<½® ~…k[. u]Òét”7ùª®®&Nÿ÷<7æ ]›L&QU3žçÑßßOUU†g³ík6”¢ÌÕíD “xÊ!`ê œT9==55E,ûaSSÓ SSS5 RJWI†²Üxã|õ«_åöÛogxx˜“O>™™™âñ8555<ÿüóhšÆI'Ä–-[ÄèèèÓÓÓë.\Èøøø›ÅÏK·©²œ«V­’£££"™LÒÐÐÀÉ'Ÿ\&#=N𡦮€—P“Z„—6qS´€Ð¥">Oº÷Þ{ŽZBššš»®ûnå9CCClذÁ÷š~ÿûßû9óÊxcÓ¦M„B!ÿuÀ›Œ?D>ºeË–µ@àêóÎ;ïŠüà~j!“É =1™àŒ·9ØŽKU¨†‚›Aè傾ü®égj@trþèõŽ@Ì­‰D" ]×%™L"¥äú믧X,‡‰D">H¡Pˆ`0H8& ……BÄb±C¼«·ÚÊd2“¥RéIMÓF¾õ­o"=~2Nº€ÆbyŸY}7îÞãÒ[Ž–kÏ{|¤˜ä>‡¯\²dÉÝÉd’¦¦&~ò“Ÿ0==ÍC=ÄþýûY·n<ò+W®$‘H088HOOüð‡?¤X,μð ÍÍÍÉÉÉÒ[˜ššš/¬^½ú¦ÑÑQ’É$¡PˆÓO?@ €††t8^ Ã0q¤¦—kÏd10<<úé§•ÊÒ4-¬T®ë„B!>ùÉOÒÙÙÉ /¼€”’ÞÞ^t]÷ó<ò®ëª‚ È·2ótËÏžyæ™ý .¼½½½=:::êóyÛëû8ë/"7m §‚¸)7m`…Åh›GmCB¡Ð§eÙª‹%K–à8ù|ž={öøÑ«â|‚Á Ÿ”Qe›€L¥R6ÇÀÊd2Ïφñ###QMÓ&å¤CýBáê,j<…šEU¼0µ‰X –¼>ÅÈW[Z™PU™Õ£DJ)¤”¢T*ñ‰O|Ã0¸è¢‹øò—¿Œiš†A*•bdd„îîn†‡‡I§Óô÷÷“ÍfÉd2300ð Ž¡¥¤…B¡î¨mH}}}SSÓR×u©««ãŠ+® ··×/6ðÛ J%B¡¥R‰l6K4%•J‘Íf¯;ÖiiiùŒâ³Bˆº•+Wú¹ž¢g:9…áxÓœÉ0hB*׎”’ééi{ì1q´qˆPtµ®ëÜu×]‡$£*Ý[¹š¦‰mÛ2‹‰t:­K`TWW311ñ¥ÖÖÖk:ÏóÊD©Ðx¬¸¿\Õ„#m,·DÌãft¼TÜÎV<ð©ÿ—åö¦mÛ\pÁ466rõÕWÓÔÔ„iš,^¼˜ŽŽLÓ¤±±‘d2I.—C×uâñ¸Ø½{÷/2™Ì/%@”Ë+æO¡JEX–…ÐÊå¦ïŒý5_\÷0ËjÏdyÃÙD;%ÄJŒ^‰ Ä|v{ï½—¡¡!öìÙƒišÔ×דÍfÑuÎÎNjkkÙ»w/===d2 …Âæx<ÞË1¸Ç‘~W0 !ÐC‚}{“üËÿ¸œë|7w_¶™É¹ižKüßûÕ½X–支ˆËÒ4.ºè" …‚¯ +Ë\úúúüÇO?ýô!Qù±¸fffÞÕÒÒ2¥x-@„…œG8tЫu\‡Ç‡þÏ•¾½}¥B  ¾¾ž@  ª ƒd2jjjü¼ºÊ©g2,˲±c×u³ó’R¦C(ç€b1Û×›ïÆÅõ<×Ų¼Wˆçy¬[·Ž+¯¼’3Î8ƒ‡~˜ßýîwäóy&&&8ãŒ3˜œœ¤¯¯Ïóhllä…^Àó¼}ñxüßß “^«5ÏdK˲„@ 4¥ËêydëÏùÌ9ßâ¿ö|'æ¼Åèu¾C©ä¢UŽZB6nÜÈôô4555 ø(K)ùéOêW’xžÇÔÔ”*®À1 ` …ÙB¡PŸL&Ñ„F¾Ù£hUñCÏ'cßã@®Ÿç'~‡ИK17W®CP™Õ£Ä0 FGGF×ußåÕ4Íÿ[Eí*299ÙÒÚÚú¾x<þȱªµ„–JW«†#(¨"Â]K²ÏcfoRÒ#7é"4áïÓQFùÈG>B?_|1O<ñCCCÔÕÕá8ŽïŽŒŒL&iiiarr’\.WM¹æ˜¤¥¥EUéKukkk1‡‹õ)¤”lܸ‘ºº:jkkq]—ÑÑQºººüÆ—¶¶6r¹œÊ;Ecbb‚öööïF×u¹ãŽ;X·n_ûÚ×8pàžç‘Éd0 ƒÙÙYª«« …B S(8R Á‘Ø^~ñ‹_ðóŸÿüE_Si'víÚE$yIÆë­¼ÀÚU«V¿ÿýïY±b}}}¬]»–ïÿûôôô066FWW<òÕÕÕ´··sÚi§qß}÷17ôGZkkëpUUÕ •„Z©T"‰ø•%‘H„\.‡çyÔÕÕùÒÒÞÞnÏÍÍݳgÏž«5@-Z4xê©§ž811Á’%KX³f ¿üå/)•J²Ù,áp˜t:íï›çyär9\×eçÎGÇeE£Që›ßü&©TŠ|àÜÿýôööÒÐÐ@UUÏ=÷UUUôõõ111AWW### ã8Ž)„0A0þ*ÔÍÌÌ „`h߃ơ'߆3w!…Bþÿ?*@t]çsŸû_üâ¹õÖ[Ù±c‡_u‘ÏçÑuݯFq‡ááa?ŠŸw½yI;f\à¶¶¶\ºti=ÀŽ]Ïã5¥‰Ld&€´4ÜöENd ÚD;nÊ$SJ‘œ+3ષä¥ÔøþQ ±m»ß²,Ö®]˲e˧T*177Gss3étšÚÚZR©“““TWW£ë:ª‡Ä¶mLÓ”NÂ[VuåóùýéŸþé—MÓ)ÉØEÞ½h9©ŸÌSüÃÃ_ÆÐ 4C X€®Á‚F¡¡!)‹ƒAéy^øÑïccclذÃ0üü¹Zƒƒƒ¾Áxî¹ç0M“JâÍuݪ•+WÞ5555Çÿá­*!žçÕ)» mì5#,è‰áâ"mp'¢X“œÉ VÜð«ÞUCl*•¢¹¹Y‹Å«ÚÚÚ{ù*KÓ4O©žH$B0ôë°T×Ôá5Xjz‚jB===Wr Ørÿ¡eQW¢Tp8wÁ_óÞ%Whµ¨›CÕy JyûàLÈùz,U .„¾G”ªªª{ÇÆÆÖö³Ÿýóšš.½ôRn»í6’É$+W®Äó<~ùË_²råJvìØ@0¤X,’ÍfýÁó®žûVT]¡Pè/Ö¯_ÿ|%t])ÂU:Þ/ÈÉÚo@€¦uúï©®×Ø¼y3Ë–-ó[á”*?RÐüG™šš’‹-²xà>þñsóÍ7Ó×ׇ¦iÄãq?%¹eË …Éd’ææfŸ|Tî¯mÛ„Ãá3.¼ðÂgþ{ppðÖ·ª )›h] °‹wœ_…ë¹Ø) ÒÜ´›4)†‘®·¬Þ+§×‰Äó†aì{En¯”Rs]—/}éK~½•ò¤<´]KÓ4¦§§}ñTÝFólM}}ý;kkk÷¾EHÄÚúúú%‰DbÑ|Ò ]jè– 5$©ÓN¤µ®šo;¢JCT r/Tã5"ÅÁÙ’Rµ2|sjjê™WÈìììW³Ùlç5×\ó®B¡À»Þõ.xà<ÏcÁ‚Œ‡‰Åb<óÌ3´··ÓÒÒB±XôI¶ÊQ/·MøZÅbñã§Ÿ~ú?(C^’Á‡¦Ù·#žä€NõßÓÞd°{÷n¿CUâ¨4å9G¯² à No^¸páо}ûÞõïÿþïô÷÷³téR ÃðÛ£ à rÊ)§077GCCÃ!eªItžûà%—\rþÌ̌ؾ}{w:N¼Y@¨´mžç™ù|!y·ç`ñ²0ÒiÏGä–†=m’z¼)\¿¡GÀd2I0DÓ4„eYæ+¤"}}}¬[·Î7P‡—*õ%„à׿þõÁ!ešF±XôB„ Ã×ÖÖbYÖ›ŠŽÇãœrÊ)ÿ§¹¹¹³T*udÒið4ÏÃx²–¡Í‚ùVç ^Ö%;3MuM•ßaæÏ¶mB¡º®‹M›6X__?ñŠQ«T*M™¦9ªëz{SS†aøÜŒš_ …|#¯ŠéÔ€ÙÙYÊŽšÛë8]]]×ìÄÄÄóSSSO¾ÑR1ïY^°`Á‚z€„¦zÍ,õÕ!œÉ0ÎdYÒñJå¹¾xåÃm)wTN]UÙSUt.¥Ü733sÄûyI•…ù|þ¿ÇÇÇÜÔÔô?ï¾ûnV­Zå«£}èCLNN²|ùrººº˜™™aíÚµ¬^½ÚJ¦ZÛ"‘ˆ?$Ìó==}ÛK½——ˆÚÔD"!=Ïó\º®S,éQW4‹Jh%“Ifff¨©©Á²,LÓT€ÈÎÎÎ,Y²ä#º®ó«_ýê*àî×AUµ¥Óéó<Ï+år¹åªc8eç ¯L¡ƒÐ%‘–ÀM™8I7iöj©®©FzÒ·‹º®ûƒÜ”3T1(áÀèèèo_ @â[·n ƒÁ[>ñ‰OÜxöÙgsþùçóío›í»%_¥ ƒIDATÛ·óŽw¼ƒt:Íàà 555>¯µzõjž{î9¬ÃgøZ–%”s0ß"×ÑÝÝ}†”’™™™=¯I#{¡PøËË.»ìŸU»rQ+­`éx% ™.Ûˆ²b—È0š ¶ïØFÈ:˜bP‡+™L"„ðœeYƒAlÛ~YsF^ ’òÏM8Û·oGJÉüc¦§§ñ<xÀO^UŽÊÛ´i“_þ¢NN¡P8ÄE¬œÕxê©§ÞÖÑÑq[$áá‡^l}¥âÀiå½tß½sçÎòÈ ÏAœ¦¦t¨Wj'uìñ &!š››9üÇ?\Ê3Åbd³Yûu]x­ñP(ĶmÛüi¤ª]AuTU&ò•d¨ê‹\.G±XôÙãJÏKMM§ÓxžGGGÇžtÒIE×uõÞÞÞ;âñø×^Î6Ζl6{Íe—]va6›EA¢v\v.3…ãÌ‘Ó÷h¥ç!5Ixi˜›6R[[ëR9äSMéVqW0xp\úôôô²—Ëݽl@t]¿ûÉ'Ÿ|J×õ+/ºè¢ËÖ®]K[[›6m"N“L&™››C×uN8ᆇ‡™˜˜àôÓOç…^84Û¶ý!6¥R‰`0èaÛ¶©««ëT?þ²k×®uápxЂÁ`!™L>p¤{œœää“O~|Ñ¢Ek•]Û7¶W‚š}&"ôƒÐl„fãz®?ÔÔÔ é‹;*Q¯*\8ñĉÇã”J%ªªª™RñrˆÔ— ÈÜÜÜ 0XSSsÖÎ;Y¾|9þTO%Ê®ë266æs];vìðÛàT977Çáãe+¸/ÙÝÝ}ÉŠ+.Ø¿~tt´e^EèSSSOº®Ÿçµµµm¬,Ù¬ÜéI¡¤@I)Àôô4===~,1;;[æ¯æ'STŽQ€TÒ"K–,azzšR©47555R,£Q«¯¨o ­­7üÁYUUU‡çW…B¸®ËÔÔ”Ù+]¬†„) Q"—Ë111¡ôtdÅŠ_WÄÝÖ­[©®®öƒÐééé?X²é8^x¡ïÓØØèß¿r]•:R?±¡¦â)W]Uލa—º®322¢zx÷îÝ—íž5 žç}íÙgŸý±eY+{zzî½õÖ[ikkãg?û;vì@A6›eÙ²eôööúÍ=ìÛ·Ï×»ŠÚ><ÒU)`åN« RA¦Ú)%­­­´µµ!„`rr’ÖÖV?Ø»w¯Ÿ×ßµk—Ï¿©“¸V´òž÷ ÕõŸHdnnŽªª**‡v¾®€d2™)`J×õ*MÓøÜç>GCC‰DÂÿRRJ&&&¡ëX±XŒîînâñ¸¯*‡kªJŠ”á¯Ì±Tfò¨ ­r4ë¬ÜTÅ8+ðÕ稃 <ÂÊ„ù¡9þ÷P̲eËèëëÃ0 âñøB¯P(<ó†R¡†œR©T ‡ÃÅd2F£f0D×u4¬:eʰªMSÕ*š×uÝOÿVfÖTO¸’!„/!•:^§åÁ©MWªG¢ÆÁV>§@% •?·QUUå\ÿö·¿%‰‰DØ·oŸ?3²©©‰©©©7Û¶ŸÛ¾}{ ¾¾þ7ÝÝÝç}ìcãÉ'Ÿd``ÀOa*C¯6D×u²Ù¬Ï÷ÔÔÔø_Å3*Ú­T*Ù£;|Þ|¥$cÕ¦+æùpI]OyJ"TŸÊ‹tvv²|ùr{ì1<Ï£¥¥åÿéŸ÷Õ’JT²ÑJÛhšFMMÿ9êõ@×uyê©§0 ƒP(ôD*•ºüµÚ·× D"áÏêîììèìì\òíO?xžÇÂ… $‰øS¦ýÞ¾ FÙe¯X‡OÖV‘¹¦i¾‡§$¨³³Ã0ô'ÍWΤgggŸBx–em~-Ó¯K‡.—ûþøøøÊmnï ‡ÃËŽÔ¯=33C à™gžñ7ðì³ÏfãÆhšæ÷¨$ ¿’RÙ Ó4™¼ }O¯µµ•ÙÙÙrê5eéÒ¥ “ËåÐ4MýW !„ã8ª#lßÐÐÐù/–ö}K2?þ *Ÿ| '´.X°`YEä+Åà9*Õ˜Ši*óøÑhÔ1X__ÏòåËÙ³guuuär9‚Á ¹\ŽO<!©TŠD"AGGï|ç;ùõ¯M¡P ¡¡ÞÞ^4McÿþýJ‰ÁÁÁo9޳p#‘ÈÀáůÕzÝg®kš¶@Ó´ÈüãvwwåHó?”>Wv'ø†Ù²Ê?³zÕUWqß}÷‡©­­ezzÚŸ>±aÃ~þóŸ377GWWÝÝÝ<þøãª:ßWmê÷]×%“ɜǽ÷ç ‚‡Okll¼L×u ~* q®¯š`§ÔÓØØÕÕÕ8Žãç$ñ711A]]?s8‹ùa¡PðmÊüèóCfÑ¿ãlßÐ)1…BaÇÈÈÈŽ ÝìE£Ñ*)¥´m»Ë0Œ?;R£½²Êc*‹~©b õkœÙlÏóvK)u×uÝd2ù÷ããã?y±Ï~#ÆÙ¾¡r$íøœ~,»ZÓ´Ø‹¢–iš>•!„({‹ÅbVJ)c±XfvvvûaiÝcyÈñu|_Ç×ñu|_Ç×ñÀÿôæ°žÆnиIEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/images/figure8.png0000644000076500000240000003334212536324426025724 0ustar philstaff00000000000000‰PNG  IHDRddpâ•TsRGB®ÎébKGDÿÿÿ ½§“ pHYsÄÄ•+tIMEÙ$|¦ÿ IDATxÚíw˜e÷?÷SNŸ™33™Lf2©¤‘jèHÙ¥ˆÈºë˲®QW_W]]v]EQVPqYu¥YÀ:ˆ” )¤Mê´L¦Ïœ9½=õ~ÿ8ó<™A”4}ß뽸¯+W2ÉÉyÊ÷þµï¯Üðîzw½»Þ]ï®w×»ëÝõîzwý¿Ä±ü纺º« ÃN™2ås+W®;ôè$Ü¢ŠëºH)1 !RJ,ËÂu]a𦏕U.—…Bäóy ÃðoÎqÇño4TÀ‚^{„óbM¸F%KNaçäW‰‰¢è¤_®¢°'Œ”×uÿì D£Ñ³®¹æšu¥R©òB])CõB¸)»Nat—¬Hð[ä´mï.f̘á2^BÊ岿1¥””ËåWUU]WUUõ@ÿ¦?« ±mÃ0|iðnÄq· !PU˲®K}:ÄÁ§N.&W?;1¬0I:) ˜8yÇäì³Ïþ)e ™L†{{{ÿ6›Íæ' Rʰªª‰–’]“wŠó¯¬Ã•6vVCdÃØY '«QÞA:—¦r¹Œ¢TT—ˆ'!ŽãTžWJ¹jÕª«›››yðÁ×@¦M›¶°T*Í·m)%ŽãLPYŽãø*KÓ4ÿ3 fMU‘$Aw7ñ÷ÐÌÑDœH½†¬HCW€à#áp˜Ý»w8&@šššˆ4MÓ41]›Xµ¶ÂòÉ離%ÄK¿bú¼&†Œ.ò*N©€÷œãí†÷gO2ÆÞ‡Èf³D£QE‘6•U[[»fÙ²eóÒé´o/§²³=/+ 2f𠃸®‹eY¾±WQØîàÂÕ@ñ- ]’^WC¹-€eYÇE"hjjš,Ã0NN$d³Yl\ì›Ï¸ò}óyúÕ5Ìk¾‚÷ԯ俶Šl*‡.þ›ëP(p×u)•JžíÀó=MñgDJ© Û¶ÉårضM>Ÿ÷uk©TBQÂá0¶mcÛö¡‡‘ÂñÿÈ»‘ŠKÚídãÖ.’Uëûœ·#×*•J7ŸþùwªªŠ@03L?½w8Œ3Ú‚HþóSUð[xUn& Í'Ÿl'U‘Rz¶Á¤X,úï"›Í‹Å|0ÆIKc,›•Ïç;ÿ€ø/ز,lÛö_ž¦i>ªªúÞK±Xô½'!X’Ñ^ƒ©ï™Ëu?ZÊÏ>²¦“Ò¬íɲ'û*ùœé«> Î»þôéÓ“tÒnD½ StM´sú©Á’ƒHD6†QqR:ù-Õ Hiû¶Â“T*…ªª8ŽãÅ!Ð4 EQÈårƒA"‘¦iÊ“O>ù›ªªÞñÊ+¯Tý9‘ÞNQÛ¶™4i7ÝtßùÎw¨­­eúôétuu‘Íf}cí8–¨Û\Šù©Üô«P8•›Ö݈®©¨vMk$^ãÇ(òÊ+¯Üçýÿõë×Ïö­”x*ÄtMâá…ŒËM'ß«Y³÷^&742œïeôÕ0J@NPÉÞ†TUÕ$‹!„ð7¡¢(þ5–e !áp¸p¸÷¨·¦L™2iÊ”)/¹®;ͳÙl%½êª«hlläW¿úÍÍͬ]»–Ûo¿P(„¦i¾q7 ƒr©„СXÚÚZºÕ!|¼Ì¬i¹u”É×$‰Ÿniƒ  ƒÔ××ã8Î1é0Ã0¼E(œ~?¡j›çßxEÚõ¬>ãnjBõ”Ëåʽ–˘¦I6›õ7V ð¥á²Ë.#‰P__Ïܹs}`4Móµ‡ç}W@’Édí\pn(ŠX–å_¸\.óáÃ0¸ÿþûY¾|¹¯;½_°`·ÝvÛãîÅ-¦aâL4M%›t¸jáǨ›#²8KíÃè R¥1oÈ4Ø@644\FoŠÅb7J)— 188Hbh„7³ôíà¹5kÙñúömÚÃý|—/v‘/d}à<Êó¢Î>ûlª««‘R’H$|£žH$“_ue³Y_]W£îùßÞÅEáüóϧµµ•Çœºº:žzê)žyæB¡W]u§Ÿ~:©TŠû￟¾¾> à ™LúѸiš Aj’rÉá®÷>Å£­ßà¦ù_eíŽPúxÍÞV±#Jegéšó™ÏP]]íç>Æ{"ÞŸ“É$@Àä‡?ü!†aðñÜç»TT–,YRQ‰Ò!9÷sFpr*Öp{(ˆ5DH¡»þ5†††ÛÛ–«:EpÝ‚O³¾÷Iœ‘i\7÷Kœê™Üþèå¾k«ªªylÖ-[*äã˜s2iÒ$¤”!(•JþÆTU•P(D±X$‰ø¡€eYþ÷3 µµµ·,]ºô..9á„H¥RÒé´¯‚¤”(Šâ³ŸÞî£\e,šš6mŽãP(liQ,)—ËôYIZ¦;ÈH‰ÆIÓIMíC Ó5QJa†™\ItEbY¶e!‰¢ ª›9Xú=É$dÝ~êN0#^Ì3Aåx*¶§§‡P(„뺬^½š­[·ÒÙÙé{RªZa€kjjÈf³¨ªJ,óÕž»ŽSòŽ€˜¦9µ©©©¦§§Ó4¹çž{سg7Þx#?øÁH$ÔÖÖ y饗X¸p!»ví¢§§‡¹sç²mÛ6öïßû‚ ¾óì³ÏrÑEQ.—}•%tÅ÷¾\ÇEU¡ì|>qÑh2Êžø>ûF~¶ýn,ˬäRþȃ 0kÖ¬;£ÑèTéÊ)ÉÑÒuA·éü¥Âw_øi÷ F6ˆM‰îut æ0ͰH8fÆŒ bšfªT*õ8޳DQq×]wI×u…·= ø† •J‹ÅüMz¸4Šv8Ý4M …ªªò£ýˆoûÛüô§?eýúõ¨ªŠ®ëhšF*•bïÞ½äóyÊå2‰DÂS_!UUÙ°a¯¿þºï«½4ßß·±qqYÖplû*³´ó¹ö¤Õ´ÔLA TÔœ"ÞɳúûéÓ§× !(8eX8L}<ŒÓÁê “M"ˆª˜eŠC’Fq"f‡Ï8TWWÇI¥R˜¦ùìž={nŠÇã×Z–5˲¬¯]pÁ¬X±‚G}Ô·«^éQJŠ¢0<ÎÇ}6_>çijìy¨5)¾µé«† ¢ÂYy*TÓ4188Ø988¸MáµoÝ «W¯Æ¶mB¡Ð5tðàÁ ?8pÀ·!…Bá>T€(Š2Dz,TU¥T*Q,™;w.o¾ù&K–,axx˜ÚÚZ²Ù,år™H$Â9çœÃ3Ï<óG/®i_úÒ—|CèÅ ¥L©TB¤Bvèûxï5ØÖxÏJâ ™ê0‡€ü°}šEdž€®£)ÈòFÿHWŽ©ÀŠ”744ø6@Q”_g2™ÕoŽy®¼·ë3ííÿ±2½¶¶öFÃ0¤¦iâî»ï¦±±‘½{÷âº.ƒƒƒ†A8¦P( ¥dtt”]»výIî©X,楔޵ƒápXwÝRqÜC*G ,ÇfEôÏ\À–äãä’»Ýçp´– 9Á¦¸®+}Ä'…(e!•šªZL¥ˆÒ@©"‘¾úmnnfhhˆ·+MíóçÏš2e 7Üp=ö˜o{¼€×Û`áëºÏŠ+ !¹\NÔ××3<<ÌàÀ ñr¹ìTÞ6ŽÅb¢T*½mô,„ð+éfΜù ªª¾üòËýì+)I þîæ›¹égKù—³£/0Ólæ'¿yÞ ]tÑE#€ލ³,‰¢À";Âðà ×?t-R qý]ƒe[µÛ[{©ŠÄ}JÝ#?ÿãò"2‹ñâ‹/²qãFZZZغu+áp˜õë×û61‰ÐÒÒ®]»õ“tǬ²¤”èºÎ¾}û®¤f±N$¬’ë·)9H÷mÕœ(—ËŠ¢|ó휄·°ú>ðæÌ™Ã?øAn½õV?Ï TãØ²D¼ªŠæÚ©<¿ã×<Ñw¶Õˆi¹PÙᢦ¦f’@Ð5m§]ƬÔUÙƒœ¬–Ž[RPu MS)åMl#å%Ýd4###„B¡wäøÇá•W^!ãº.ýýý~¢ÊKÈyìo]]h𿑱ãÈìÙ³+@²"šQ)‰ÔË ¥;ž—5¶ãzþëpé¹sçúQí!u'°]Eh€ dÑT Åq\LÓòƒ9˲(8ej§)H[%ZF™baÌOø›`à¡IH[ñ=A[SUUtuu=àí]×ý§î×u]>ùÉOúß3~íÛw(Ößßï{¡ñxÇq¨ªªúr:~á˜Y±b—]vgŸ}6ßûÞ÷hmmåä“Oæõ×_gîܹd2Z[[ ‡ÃÌœ9“7Þxã°)ò@ À /¼ÀÞ½{éííõT!…ÖCF#ÿë¥[Ìê|ê±O`6y'Ž]D"‡¤®¢%Êë“9ø†àÁ~Äþž.~»÷§üíªr÷º[1M iB×uŸJùÈáÞs>Ÿ'‰ÃËtÇî„*PÔ1m0ö‘ÑÑQ_=‹„¸Þ.ˆÇã„ÃaŸt ,]º”îînª««}£¥ëú;^ô-*+ ( ôŠd¹\åb‘i+f’Ëåˆiu¤g iF€ª´Ž“û•ÖpsbìIÂá0éTšõ=ϲéÍ..>ùcÓ(•XǪHÔ¼yóülæá•555#M§œrÊ@*•BHpg –_YC~À¡8l“p(ÙÏ$yïðOÙ¨w$.ضm‰D‚ááaŠÅJéÎîÝ»ýÀÐÍu]^~ùå#J&%“É/ }wÌœ¾`Á‚‡y#• –r¹LÊÍ1u®‰¨²iœÖDÙÍQr( Øy•áŸNö\J‰W²ž)’5EL$“ÉpõÕWóôÓOû1Èá¬L&ƒ®ëRÓ4ššš*6¢€Ž,ÇE(:®«¢@ »~NÄSåLj®ëãeøúúúü¤Ìøßu …½ÀÞ±ç{Œ€¥Py‰¦ab+ªªÐ¢®âïVÞJM ž|ï|n»êV~±þûèsÛ±Y0é4’STrÝÕÓQP0Í2®U‰ƒ2™ O?ý´ï–éR…x€ááa„<þøãÄãq:;;innfË–-Ìš5 ÇqØ·oÍÍÍttt—%¥Tc±{öìAAô|Õ #'Iî5m·Èt˜˜…Cùšššà}G[¦úÓŸþ”B¡Àç?ÿy¿0ÁRM„œ<ål~×þ©Î®Xø·Ì¨Y„íTª`< éîîækÿû»•ÄV)ÅÆŸìâÀ dSy’Š¢¯ŽêvíÛÙU]ž?>]]]ŒŒŒxÏÎÉ'ŸÌæÍ›aÑ¢E¤R)FGGÑ4íØ$Ä‹ª=ïÉÙ©ñfG–|¿ƒU”(žñRUTUú¹‘@ à UÓʼyóhnnftt”æææJ…½eâàM `K Û±HÓ•£ Ý_4MÍ¡¤¦p²ŠÔÉæ²Äô8¹\Š¢ ëº( ;7mÚôOBUQ”#.‘TU•¯|å+ÌŸ?ŸÍ›7£ë:¸®Ë«¯¾Š¦i$“IÚÛÛÇ›¤”5Ç"!H)ùÑ~ĬY³¸÷Þ{+e“sJ~’ªX,"¥dÒ¤Ituu‘Édޏ:dB…y[/½ô---8p€x<^IÃb£k!RÆ Ó§Ì£~Z›zº©L‹º¹Àz\R÷þFž®Ãè­Ð+Žãøå;c¿'‹ÅâóGsc„««ëº²sçÎJ …UUb‘–kU,«Õx-8& ™7o³gÏæ„N`Ù²elݺ•eË–ñä“Orñų{÷n6lØÀ™gžIss3Ï>û쟤ÇßiE"¾õ­o!„`hh¨Rh˜ØªË†ÿd“ùUæ5.Á•.;ú6Ñúh#½†½,MSY÷µaŒÑQœ’dÆŒèºÎѪ¨·ñ ‡vîÜyñ¬Y³^(•J¸*L½!ÊÉËcØŽCSxÃF;ŽárðÕûžÈ£¨§'âùêG Hgg'¿üå/9å”Sxå•WÈårôôô`O>ù¤_™ñ›ßü†@ à§>r }C×ukìÁ?˜J¥fäóy,S2+<ƒ3¦W¤T,»~U‘2 Ã'c qF+i'¡HP$Lƒ\.ÇÈÈÑh”x<Îi§ÆË/¿|\?Í+¡Ôj³cŽ|¯ƒmlÄ.Jìr¥?Qh¾#p¬ÔI4òôÓOóÄãOòF„ÇI)~O‹P*‰¬êêjiÛöÑꬑÞÞÞÿíýP__¿\Q”ª¢€®ã’ÏçÀf«KZ¢¸JŽàÔ"Š,¡j vZ§¼/F~[Ôg¼êÁ|>_Éå‹ãÓ1gY·Ür /®}QVдBº¬–~l”H$+k¨½ƒA¯÷’ù® “æÐu´uæN^HGj(PN9¤»|.lÛîàø,%0}áÂJFÏ£Ö½ˆX¬¬¾…÷~-;†_æ…-/¡5ÓÖ7à…^Âʋ֯_ïñUǼÎ>ûl.¸àæÌ™C¡P ··—‹/¾˜ÇœóÎ;b±È«¯¾Êüùó‰Åb<õÔS~ îQ¢(Ѝ¯¯§/`E$K?RGu†t%ɶ~êöU1¼ÝÀuˆÅ‚¾'144ôæñx`×u¹ýöÛ©®®æŠ+®à¢‹.ªä $‚LºÄeg\Ï-¿<“ŸÿÍ.N-%áìg÷ú;0 ÍZËå2Ñh”`0xX®çá®mÛ¶1uêTPU•ÚÚZvìØ‚ŽŽ¿xçά\¹òØéw{)•KèŽÎ›w§‘XÅC9t¡LÔGB›Î2M“úúz¿âܲ¬J'o Ã% àR©?ë:ÈÆüc(¨’G÷ÔÖÖ6·X,޲¡¡Á86äꫯFÓ´?HVµ··ûÄ¢”’_üâ•÷u¬ôû%—\‡>ô!\×åÉ'Ÿ¤««‹h4ÊÁƒ‰ÅbTUUqàÀr¹ôôô·(„à‡?ü!Ë–-ã?þã?¤ ñxˆd&MM ¾âVJ›€ˆ ]‰eÙ~­˜WÖ©ëzÎuÝ pDüÕ‘^s|¾Ç @u\Åq]&‡gPrÓ¬,BHŒ¬‹[’~öð¨kÀ¤µµ•n¸mÛ¶Q*•¨««cÙ²elܸ‘`0H8&“É÷¶f)¥[UU%wìØQ)YðJP%H!‰EÂ<¾û~¾uåoøÍþ‡x©ãeÎ:ét^s7b¦ÏèzTŒmÛ³êë룣£=Çzo¶m· !*Å‚F–Hþîöf$.Q3BPrp¸€U¼~W éT4Î1¹½B¾ùÍorûí·óÉO~’¶¶6\×Ð_8ÖŸ”’žžžã H*•ºèù矧¥¥¥}Μ9³³Ùl¥nX(j$%3Ê~ùßyVgÕé§Pvð̾] µåH¥*k(¢¥¥…R©Äµ×^ûz[[Û†uëÖ­<‡ïú …ºƒ’}OÚnïÛ8A5©B·ÍŸ± ‰ÇãÜwß}~ÂÈ+4Ð5];ä {å£û÷ïŸq<íˆW-ï½@5\´0ä{áõΟóäO~LyDb•\Êi×…TU%N …9¢^Ã!/¼ðBn¼ñF¾õ­o¡ö©ÌÑ8¿¿\.SUUE*•Âë‹?j@b±˜Ü´iS¥’# Ï¡J©ž _Êï:A ¨Œî3Ø\öNR×õ)Ç×u/i¥ª*‹/¦³½ƒ×þ©\Ù  T(ẄBÒ§*¼c=ǵ‘´X,òéOšT*Å'?ùIzè!N_y:ÝÝÝÌ›7ßþö·¬\¹]×Éf³ìرïš?*@BcOfÛ6²ÚeÆ95h¬²Áë#?CµÃ$Z ’û+ÁϘÛ+†‡‡ÉªÇãñ–¹sçOOQq„M©TâÛßþ6MMM$ ~÷»ßù###L:•d2ÉÈȪª’L& …B”ËeÀq$ ±cÇfÏžÍ /¼à÷ÐŒŽŽú•ƒƒƒÄãq¿xðXŒw´!ž[ƒ wdß2ª¨¢F‚}‚‡˜={6¶m£ •Vu?gÝdý8¾+Eb(I®ßaÃ7“>ËF‡`0Ƚ÷ÞËç>÷9>ö±Ñßß7Û$•JaY¥RÉυȱÈð­ 4G ˆa8(¨ªBo§ÁÝ÷~•o<û/|áü/ÄùŸ­_¤ý79Œůì8á„hlldûöíÔ5UqÂÌF–OZ†êê@0G"óÒÐ?üáÿè:Š{”ãU´á]e{-¾úÝ{Iî³pM‰¢ Mñ5ŽB9&’H$¸ýöÛë&½C!Ä¢¦CžŸöVIDAT¦¦S¶CàU]*¨B–.;…†¶*–¯8)µM¬)©TmŒ ä…¯Óg̘áyˆL:Ý¥ùì4ÒMãÆ@£-B¹3‚ÞMUÕ£v@TUeáÂ…œtÒIlذ5£p&7º~¬æmbo°ÛQ2<<Üåºî\¯€ é¬0‘ˆ‚´uÞwÒ-<³ï‡Ø؆äÀï‹~ µªª*R,ãGòpS¦Ly_±X¼p¥”ñÎÎΊ²a2ÐS⫉o²§m˜;¶ý+±P5Äî‹¢XA¶¶¶úmib3w^ô#6öþ–¼øŸÌœQÇP9Ovw¥¶W×õc¢âƒÁ ßüæ7‰Åb455±cÇÎ=÷\Ö¬YÃÊ•+ikkCÁ¬Y³Èd2¼òÊ+ÇÆöZ–Õ /öòÕÓ/ käúm~3p¶"( 8¤»M]×}7ôIÄ[¯»îºó¥”¸H2U£4Màf¼ú+t"Ç© ç`m’Å$§7]ɳ[Ÿ!t| UéJ¤%¸vù‡øï ÿÊò؇XÙp#+,à;­_™Ðû~´€H)ñåž“ã¹Ù^ÇYww7@€ÚÚZœÓ±‹ @uu5¶m³ãkE¬œDh ªW¡¢i‡"㣫¤'“I\×%c™sE[­¨})ltM…¤‚q Jþ±á0cÞÔø H8L2˜ãÌE8ÿü øÑÎçJ°·'Åší¨Tjl…ztã“O”R®…B\sÍ5Äb1nݺEQسg_ô100à+ œ|òÉ|éK_¶m~øa80aŽG<gppÐF½Á4G›s]˱Q„Bº'Ì#ÿ;ú û¹ã·ÇìÆyt–Û0Ê!ýÐD7ßõôŠö…@@Dz 4%ˆªh´ !­B…¦¢Š£žÇU*•Zš››Ã…Bªª*Ÿ2¿þX± 05 +V¬`÷îÝüõ_ÿ5gœqB"‘J±—-‹ ÓÜÜÌàà o—ôA½¹U°zÕ¿òó=_'y šÚUÜrÆßó™ž÷W\\§¢r‚Á ?ÛÑu] ÓÄ*d×,æ‹¿ú"Ž´ÙËã” ‹ÌËä fÏ– *¹ŠË/¿ü„ßؼysÇÞ½{—®'˜N§+ĸäßPT¨4ן@ê£ûL¼X$Õ^‘પ*òùüýÇþüç?çøwß}7ëׯ÷ýý|>ïÓ%©TjBªTJIccã—E¹¥¯¯ïÀ‘Jˆƒƒ"U¦ÔMaÿ@‘¢Ãûyrï}ض…eUt©išƒAN=õTöîÝK"‘ Ncº&VÙÆ0*S‘v×næœkc8¹ÊE7ÄÉj8 k @ú3ƒG`CÐõJ=˜î* l6);†^HPN¹•º5Møµc6Ë>&âº.<ðÀ¡ñM™tÏ­¢ÂÛxcýæÌ™sQ&“©þ( óæÍ{®ëBQgxx8V.U&{ZŠM¾?À®]»Hä ¤l²‰,£‹ä-LK¢È €†aÐÜÜÌŽ;P”Jë´#M2\‹p-(ŽÆ´úÄgT±spu‘Édå6੼#I/WUU±zõjöìÙÃ}eTÇ!Vïbרþ˜/nó¼¿c‰CþûàÁƒÛ¶=SA1&9õòjô€ 0RÅûϸžgöýMÕÚn0¸µ„P„?íç°á´ÓNÛ¬ªªB ‘P[‚lᨰžØøÔ!Þˆvdô` Gæ°Més¯Ì›ìæš®ßjmIEUèÞoó•[¿ÂÖ~—KZnáŠ%äSÏ_€eZئsD€xiÙoûÛ$ n¾ùfž{î9¿r±½½eË–‡Ù¶mÛ¶mcéÒ¥lذá¿ûO’Ëå¶677†1S¡;´œW’¤; ýíVÑ¢œ’„Â!ßõ}§ö0@/—˶m°5²‹÷ž_‡+]ÃE±ƒHKÁÉ«ä^«Á)ª>±˜L&ýàÑ£G\×¥³³S¾ñÆâÑGeÛ¶mÇC:¨šÂ ÕK8˜ßÍHù ÿëÄÛ j!B¡ –cc™¾zGDjjj>qÞyç}£µµ•Gy„/ùËôõõ±wï^r¹œOÓ¬]»–™3gÒÓÓƒã8ŒŽŽŸÁ• !8餓èîêfãçÊH{Ì!é8„Bºÿr¼üwº¿<I ®ÒÙtÖ¤Ó2¹…§;¾Ç̪SØšú öÆ0¶u¨Šd|D¡P¸cÿþýÿ>iÒ¤‘‘‘ƵkײhÑ"6nÜXéÈR]’¿/Ó;u{6?@2—à ¿ûª¢Ò+H2&Ož|´iÓ^TÇqعsçuÉd²ç-lD­¢(š”’M›6qÑEùäæ[×þýû}‚sëÖ­ÄãñcIJ,n½õVÎ;ï< Ãà±ÇóAzžÖœ9sØ»w¯O x7¹pÚ´iÉÞÞ޷㊯’EÐ½ÏæÛuÿðã+øâÅß'n`t{'ƒÖ†áø€{Äá¸*I©ª*·Þz+Ÿÿüç¹ÿþûý <¶pÑŠ±ª(e, –`dÙVⱓFÂØõAܲŠ4¤©„‘âL/÷ýæ›o†ÞN]O[+ªJ¸J#‡:¦Ø%»¤ø6WQJ¥’ešfâ˜q‡Ù³g“L&9å”S…BœrÊ)D£Q¢Ñ(?ùÉO¨©©áÌ3Ï$N³nÝ:¶móž÷¼çáööö÷ööÞ4F66«ÓuÝêÞÞÞJ2`Z&ùlŒ;ïü=íYz†L!Ã+}oRè Ók=¶”ªª*r¹Ü„ÑBÚÚڸ馛ÈårTUUUf ܱ9íÀ6ÂÂ…lË„¦‰#“²›Ç*…ô #þñÙÐÐ0Ö‚µçY|ZŒ¡íeF÷YŒî6qí·u ÞwL€D"î¼óNÎ<óLî¹çŠÅâ„ì—iš¬]»Û®dô‚Á ÿïÞð.oŒŒ¬ºòÊ+?ïQô³(kg;B&Ã¸ÉØ’=ov2YYÀ¦•éÜÓ´åtº~Ž:‰ ý‘G㨗{†‡‡«„n¹\^.„¸¸\.ã(.¡Px¬âQ€*1M‡̼“îì.Nšµ˜ÿzî>ìºv'‚eZ È·âÀl)e7HaÑ¢Eú^ëeçËI)ub‘¯R½_^aÈ1«,Û¶ƒŠ¢ðÚk¯Uô¡dÂd!À¶„R1æ^.¢P(L,ì=“3nPrva§˜yFË5q%«ÄÞìÜ1÷Ò›,¥ôéþúúz‰CÒŸL&¿æûÉ“'LÓ´‹¥”°]ÿPË4Hì“T5Wóü›?Æ:ð1(gSVðXïOÉ@HoðØ)@ ^UUQ*•v_rÉ%í===X–%kkkÅ?ÿó?³xñbî½÷^öíÛÇâÅ‹yóÍ7iii¡¿¿Ÿt:Í”)SR²}ûvÒéô±ràÀ¿Ëår›Ô1~"r9ÿ–:ÊY»$)¥\Ò]™6î8 &MšäÑ+U±XlF>Ÿ?¸ãwJ8¢a%—Ïü'&×Õòó=ß V×H¢ùÉõ!_÷:ŽC:FJI8Ʋ,¼˜·óTMÓX½z5ù|žÿøÇ~­®\EhëîÚ|ª2‡ßž ¤ëHCeг˜¦½&¹úê«îUެY³fªWlÛ¶7×6ãº.“'Ofúôé”Ëef̘ÁºuëüdÞÎ;—eYÖÖ@ =5vþÀ|Kn]'¤ë Šb5Mò,ÿzÉ’%—½øâ‹_µ,ëä¾¾¾CcÞ( µW³ëÄ6¾±ùfN™‰ŸBÛàNòC®_ðÑ/wtt<4–ñ34M{åír)ï{ßû¨¯¯ç¶ÛnãÑGõSº®t)›µ»!ÝÊ{o O3e 0{˜Ã89ñ³T¼*z/ƹí¶Ûƒ”J%¤”|ÿûߟÐ"¥d÷îÝ´¶¶6‰yXí§®ëòÑ~”sÎ9‡ŽŽvîÜIgg§?ÛÃ4MN?ýtöïßÏž={˜={6~&±\.ëçž{î¿*BaX–ÓO cqS:;6î¥E=gÄ¥wx&m)ë¯û½à^qÀ‘˜O$ý“¥i¼òÊ+¬Y³†‘‘ŠÅ¢?O×+ ( “hm ’Ó¸ý’/ñ‹Öÿd$2‚=7Kb³Eêå*T­Ò²}ÖYg­ó)•J„ÕóNйJ9©P”?^Ö,‘J¥¢Ç)%×\s [¶laÕªU$ -ZÄöíÛihh ³³“šš.\H  ½½Ýé½€þþ~)©¾>/‹c„—fA‘HSÁNk¸YÔóµ8–‹æª.ñ§ÕÕÕM˜5ÿN‘t±XäœsÎñÁôôw]]ÿ½M=*{¿\‡ífø›ÿü@@EQ]"tÕU¼Ñ¸³ ÃÀ¶mª««+É'µK‚èòFÆ0œÈ“ MÓD6›}öí÷@t]çúë¯ç®»îâë_ÿ:ÝÝÝNÒ)‹tuu‘Ëåü)ªª’Íf©­­Åu]ÈÀÀ6o(Þ°IeeaR´Úhii™·÷&ê|ô£åþûï?¬2#Ã0r¶mw{u]Bˆéªª OÚý‰¨šI1,Ëb´lS}鵓tdIà Rì@"êWNzñG(âŸøÉd’íÛ·W•j-düóáýî]”J¥r"‘H@¼¹Š_øÂþègòù¼OÍK);±Ìg‡††*…ړ㨪J[[›?ËwñâÅcÔGÙÏqضí窪ªüù†‡H:~pÓ¦Mz?OŸ>ÝRUU;ñÄéîîöö^˜a${Fh^ÙR‰uëÖ¡iË—/§¡¡6¥} :^x!“'Oæ3Ÿù <ò/¿ü2—]v¿ÿýï™5kÃÃÃlذX,Æ©§žÊsÏ=wؤåa’J¥þ*›Í~£¦¦fQ>Ÿ÷ËûǪ·-¯ÈÎÅËuTUUhjjbæÌ™ L8¿jü1Bã‹“½áhG“ü’R²nÝ:†††X½zµKyRèyJ¶m“N§9묳ˆÅb$“I2™ÌøSØ0M“½{÷rÛm·122ÂŽ;p]—íÛ·ãº.ûöíóŸ½P(088xD,òa’L&]WW÷ÏË—/gõêÕtww³yófººº~â~êÔ©ôõõ‘N§™4i’Ï~ú%=ãb˲Èçó>M>þ@±ñ³sÇ^\j``àá±ÿ7r4eE†aøR›Ífýï?tßSK¦iúÕxÿæý½ã8ŒŒŒ°jÕ*_C¥›Êë1nƒ¾ñÆGÔBw$燈üã ríµ×bÛ6³gϦ¯¯Û¶©««CˆJ2¦½½b±H0ô‡${¶ÀÄ/óa¼$©ªJ  ¥¥Å›;5ÒÙÙù‰ñ1Îø ðpTîÅ_ÌE]Äð𰯲B¡ŸŠöÔ×x`üágÞÜɱ :L_rûv×–RvI)ûŽ7 |úӟ桇âg?û/¾øâ„ó8 à úe÷Þ‘žk쩯ñ§ÕŒ?éÍ{!Åbѯ2œ:u*étú(‡#ÃSYMMMìÞ½ÛW·žZ…÷gOZÇ×T™¦‰®ëÜqÇ\pÁüû¿ÿ»—_÷YkOÚ«ªªüA=RJvíÚ5ë¸Kˆç>~ðƒœÐS8Þvx“=ýYUUåŸÄãíJ#ò¤ÅóF<ŠÄ£«¥”€ËJ§Ó³6oÞŒeYùéÓ§w¬ZµªöSŸú7ß|3ù|Þïµ÷ÜZoßxš?“É0{ölÎ=÷\¢Ñ(çœs6là’K.aÍš5\yå•<ùä“,\¸ÚÚZTUå¹çž›0íúxò‹îîî튢¬~ï{ß‹¢(´··c†?ïÜÓ·5558Žã”BJ¥üõãU–WÑç}n¬Z]:Ž#lÛ¦¦¦†L&£# ~N£X,ºwÝuëׯ§ººš‘‘÷·gÕ2>Ñ–Ë娽{7 xçÿznïÖ­[±m›žž7’éˆìÝá|È;«Ж,Ybmݺ•;wÒÓÓÖ-[X±b?øÁ¸ð éìì$ 2þ|:;;yõÕWÉf³ ‹ÅürSï)¥ßŸFýQårùå1»´gdd䋇uâ‰'&n¼ñÆúK/½”Ï~ö³ P*•ü9í…B)S¦øœyãoUUeæÌ™d2ÿ´‡·sÞšæµm›7ß|SW §Ã˲xøá‡¹ì²ËxôÑGI&“¼ð H)dß¾}•³¥º»'d½Á/étš`0èOŽF£¾Ô†ÁìÙ³Éd2(в+“É\Ãq^º®óä“OòÔSO‘Ï癿9ûÓ B¡P&“!—ËMโÁ ^x!/¿ü2Þ¼u!ííí¯ œy<Á³GþÏsçÎÝ{íµ×λù曹üòËY¶l---<ù䓾jý‡øyä Ãà†n`Ó¦MŒŽŽú®°×“¢ëº G0D×uº»»—ø >ø wß}·ïº{A¯w—¾So¢­­í\ÇqöÔÕÕ%ŽôžŽÊÁ…B±ºººÏ…B!¸*/>½ïMzð¦<{™6ÏßO§ÓkzzzÞÏ_~E/^\ðúEt]géÒ¥ìÛ·ÏwÉÇ}õø±íÛ·Ï- íGs#Ç<8ª¹¹ùçMMM×Î\sή©©¡P([[[£ã¾þþþ¿4 Á–––mñx\äóùHccã RJ …Âa- ˜¦yŸëºV¹\þ¡¡¡Ñÿ+€±ï †B¡¥‡×xQ{8Nd2™]ü?²‚Á`m8þG×u#`d Hž|òÉÿó /HÞ]ï®w×»ëÝõîzw½»Þ]ÿ­ÿ!öp Á—…IEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/images/kinetic.png0000644000076500000240000001517012536324426026000 0ustar philstaff00000000000000‰PNG  IHDRdiÌ|†ŠsRGB®ÎébKGDÿÿÿ ½§“ pHYsˆ&ˆ&¬‘tIMEÙ:ÅøIDATxÚí{tTõ½è?¿½gÏd’ yÂ#J(J¢ké õÔ.½Ú.[z´uõ®ïƒööœs[Ðz{¯K¯½´—Õz=*·Ö=çÔZ¡*xJQ¤ ¯È#òš$3™ÌìÇïþ1Ìf{‡ Lpå;k¯döþý~û÷û¾¿ßßc@eeebc0ê ªeYÚ*®ð…¦iªª €”˲Æ03B „@Q”‚”†QæõzÈÏÏgåÊ•c˜!Ø¿?{÷îM!ÈDÃ0*Ó š¦‰®ëcFÉðù|!2TÖø — RJúûûikkÃÜ0A^^S¦LAJ™A€eYô ÃeK„((@ ˆ&1Ë@õ›ñ;1ª¥‚¡H ‘Ÿ8‚¤"™ ^!„æT0]œrA£“ú9º2ÆgnÈgvmIvþ‰lÏ'v·ÕîÇ3'ݱO6A˲Ôd"X–•S @¦aàfB*LžÇŠ¥eäå)˜&H â‚4” (ëGÌ ƒ±‰ìÓ0z5dŸ†ò`…4¬°+¤¢èš-MñK^Ià9 ÂIÜ(x9²"ükRJT©R1ÉË¿TŠ´À0$B]qR `H4Ubo± ïÚ…rÀ@HbœÏÃh÷¡·ùð„ómNW©D &!®”Ë…„ÒdWÿ¡  ðå n»« ie©íçÂñ–üEг@=faöz°z½½*²Ï‹V‘!FHA‰zBÆÃâQ’¨Á$ĵB.¤ä¤~Cš(°X3·EÈ1®Ý†H¤ ¡à)’P½0–þ‰Ò£’6 뜟H›Ow¾­îFJ¢²–dbä‚ íFOŠTNö«]Nÿ%K””xýï Q£S¢HL«ƒX=^b=*ôz1 „5b!Ñjn%É ¿ÃNŒ¤|/,RG= ÀŠK©4@ y… cäMId–e@ןK]y9'HV*+—10ã†úø|£KW¥ËVÂc“ ú@ÑÀrä ’KïŠøxlû ˆk,ŒITBƲ¾Ã—¹’ ɵ¤d¶%‡P÷‚ZñzqÄH[Ý.Æ0ÃJ‹È¼¬'ä‚#„ˆÍTP²ª«¨ÐÕ®sêd5s¸aÆMT–N`zå§Pèìoãdð/´…>æxwŠPÞ•3 æ\B†‡ ·cz)ÉxûOÝô´Ã«?û¿ÌŸ>êqì§) Îôå×{ÿ–󡓨Šs¹DFÀ’V\òYçëä0¨@'<+ÙxWr]Ä,^}± -VÆGÏì`aÍBTEuõ’<ŠÆÔâ9l¸íenýÔ}–îX.Ôk°íOíL¶ê¸¿v-K>õUæŒÿ\Ö ’+œ †—aw{‚ôfkײàõì$à/åý_¾‰ßëÏ*Å’€ûkÿ#ÅyücÃÿÄ«úìçªGÐrd€æÃ=Üÿ÷CÍÄ™´tæðù÷³ ˆ•S­á¤®UY¹óóã®n2§*Š;rÐG¤ßäç>b#¢F„÷ÿ²Mø¹aÖ¼o aV|zM{iîüà"ATÁÉcTV”P3q¦M@)sÚWªjsîöæBå\¶#‡? Q^àßÞv¿c©s¡Sü·«éé ³õåNª'TñÞ/ÞÊôþÍgþ=½³Êþ [ôõ˜Ü¦e ‘twèH$××\çèÒ^ò“#|$.7/Kq2~¹ä‘öqº'(B¡ù`?åE,¹~‰£Q£±½@ZPP¨2sö8Þûp?ï7ÖgÔY³ð§XÄÐT…smaô˜Á¼OÍÉpŸ„\ê“k7+ëÀ0ÙËÝŒ¡È Q:t´ÅÐc°âæ¿r%Þ9ñO¨Â¯¡‰ “}œ<åþ•EsnJG±ø šâ£ÀWHGôcg‚XW IÐcñÁ–;?7\“LšO‰9?/ÎÇ£çÉÇ225tÄèã@Ç›©2â´ gØÕø ^Vn×ee€™F¼cùÞ€«„¸×«îw^‡ìUó.¦ „s÷D6âÑÌö&b‘\¬\ŒãA¤}w ˆ9xô¬›QWÒú| ºa:>ÓTïÅõsí W«–ê͵*d>d¤g C:ßTe)º…i™YaMñ]”„+ÈGåÉûˆg{³QÀŠöLàP¸SBêªÇaâê8>†?RWFB4³Uè†;Ú¶ÀÞzÌBUã;‘ÒiZÆ W -ÈZe¹Íf]I.+ÍŠ:»¯©>ÇzhšÇqºq1‹æJÕQÊöfmC’³µ#%!ˆš|jæ<ˆm \\f¯æqqb¹A ¹DGÖÙÞ\J‡›MrJoûüqus®û¼‹Êò9Öb1IžæuÎÄ‚ÓþÒ Ù—þ G¶wHa9C¨8˜®üEQèê R]>ÕQe é´Iâ©‘|gÓíŽïØ·‰A%‹”žÌñî’‹9Ù9 þü¸»ÚÚÙ6ˆñfm#þŽÂ¼€ A:“âSqEJ+×0j¹¬l p\œ Ç[[\ËTÏâHÇG))øp(VŸâX§-Ô’#ä1º¹,·U—=š4%åHÉþ£\›™Q2Ÿ¦öRTLÈ)_RêXçlß Û8Ž'ËM¥r˜VdmÔs‹Šb_‚ø.ÜôOi¹ŠÂ¡Í®ô¹ªåXÒL©ì4@QX8kã8N›âTÂaµ‹¦æ¡Èäû7i“AmH2Gb¡œ×'˜2ÍÇÁ£Í=ÛœÑa)% «©,œš‚ðó­1,Ë¢®ösn æ|èTÜ­V±hfrBAºE7tNŸî£7蜓–ÌéB¹¬%Ä-¹¢U'ér˜3 X°(€GÕø»ÿó¸+GÝ2õ.LËDQ½Aƒ£Í½,½qµÓk3ê¼Öø<м>…H4Ùªâá?×=ËÔèݬ¹þg¬ÿëgû7«N²¶! $æ&Ûë°:]8Çù…*S§°mß{m=JͤšŒrwÔ¬¤«ÿ,¿Ýù;ßèãËu·óÌø_åNt¢©sŸ½Î·¸ÔCO·AÓé&fM™•2Îi¥³Y÷µÙœêi$ þ”’2˜w•+ ‰E\ÜVàpÙ‹n( ?ûíS®¶äþùÿ‰_{ÃÏídóOóe8 o}!å}Skò@Â?í|mP[)Pû—Xu2âë²FÃåM†òJnÇ+Ûÿ̯þ´)a¾W¯bRIUÆ€‚Wý‚mï¦ÜŸTíãÆÅãxê¥gøõ–çmÔ»-àùÍÆQ̙ۛUú=—ûC†ìš’š¹~Šù/›þ;¾ÿî¶û]ƒºdÄ–Ζæ`ÛñßÅmGʘ$3fû™>ÓÏ–ÁŸ6näóso¤¼¨œ–îÜíkÁ£xð(^gÕ4L3†#‡ˆË°9RÂÜëó™\íãÑç·oü Ï®{Љ¥“\ëío}›×›Ÿål¨%ƒÉí ¦T’“ნ Kñ9÷Ál„5B«N”ló-#¹?$Àâ2ýµ2*®;Ç?ϲuwÓÚuÖ±üï>Á¹ðÉ!ì Öa©íÛ‚Û+Å™[Ä~ÉCÓ4‡þ§¤¿ #e¿½iK¸ç‹djæÈ0¡°fÎ.f÷žxcï6¾yGæ‰wŸ©XÄû§^¿DæIfª’i7#ýúûÜySŠ’½Ê², ]× ‡ÃW,¦QÝ@X©óò2ÜÇ’ñ`ï5ìå›w¬Œ§Þ“âŠO“æŽè‹1¤Ž1È*•ltkú„V´ßÀ0rGÃ0È8µÏQ¾c±±X,g6$ÙíMìëê5±Ê‡×«ðÏÜÖtŽ_0…¿»õ·ü×%¿ãÎO¯Æ°bC{GÆ*}q1S ¯-wÄrbšfN÷‡ä*?yËíÅ´wõñ÷/lpÔù^O%ùúŠs¶YQgE1BfNã·ˆ].cn¯·–%™Tí£ö³%üÍ›xkÿö¬íØ1‚€Ã/ö¢xs‹—Ëò²®&HHÄç—1wA€o<¶š—w½D{ïyB½èf”¨!¢‡éõr¥œ`¦o÷ š#6N{þIä&w“c¶,XxK€y ø}ócüùôFJ%ø}~LË$fFÇzÑï½Gó+œØÕÏ‘ KË ¿®Ah^…o%k#»ÌDà…UIR‚•˜1 #"9¶½Ÿ3;"¨šV‰w:·wx%äjR{ 5n¨ CÒsF§·Å ç´Nÿ½_¢÷[Äú,¤‰MŒáÂCb õ5/!ÙÆfLÚW4dÖé?iÆÃ9›ãEJô¨\eºÀé=C¥àPaÜy.è­0RdÅñBH$½çMB'8Þ$ÖgÙoôK{©•àñ‰äšG\“‹¹[uÝñ³ÜCeÉ{*-#®ß-]¢HzZ8ÇŸÔ ·˜`âªã•k²^(çfp®„(…Ý*ª.hÿKŒp›Iø”I´ÏBIô°…–q[£Ä9^õˆO¢Ë‘¡²²ö²ríêIþÊ¡_‡>±Ÿ Ã>²qˆEŒ{¤®Œ¡æ0ê9·!cpen¯Èr‹€ªªhš†eYöto.7Z^m^P.ë )¹è¦ã,Ëb``€;3;3ñãLjÅbƒAvïÞÍîÝ»Ñ4-Å‹pú›í³¡–Kô3Anå®ô]NSà±XÌ•9Ýî{²Ix%Ãg?ûY~ùË_R–v&I"v¹õÖ[éííåé§ŸæèÑ£O´>[–>ØÁ¾g[n°ÿݾ[–•rˆÛ`ýuë—ÇãÁëõâ÷ûéïï·g`³‘$åRú-q†Á~ô#^zé%›éËEX·n_ÿú×]äççSWWGâ-¯Æ -]3Üzë­Œ?>+5$¥DQ ÈËËs˲—•¨ôýïŸU«VÙ¯¯¯gõêÕlݺÕ.k?ÿùÏY³f àŽ;îàž{îqìŠ+øÎw¾ÃM7Ý4ê„P…iÓ¦ Znîܹlذ‡zhÈöÁçóáóù.Ï˺x´° lΜ9|ï{ßKyѹsçðù|L™2Å®÷ôÓOÓØØÈÚµk™7/~2Ü=÷ÜÃþýûiiiIéäÎ;‰F£;(’~øan¹å,ËÂãñ°gÏ}4uU{,ãÁäÞ{ïµUè²e˨¯¯ç‡?ü¡].‰°qãFjjjˆF£üøÇ?fÿþýïÕuë®»ŽGy„ÚÚZ,ËBUU6lØÀÿøG›XªªÚŽÃeIHBÇ'W”RÒÚÚJuu5;vì`ûöíÜwß},^¼8s{À…z³gÇ7Ätww³jÕ*òóóéììtý½Ýêêj–,YÂòåËyðÁY¾|9gΜᮻîÂãñ¸z-k×®å¶ÛncãÆ|å+_aóæÍÔÕÕ±dIêѳ^¯—M›6±yófÖ­[ÇÒ¥KY·n]†¤=üðÃÔ××S\\ÌÙ³Îk‹gÏžÍóÏ?OQQ+V¬ ¶¶–eË–Ù*.‡K91—ô²&L˜ñ< Ò××ÇÀÀ›7ofÙ²eÜu×]ƒú×%%%6ÒJKKQU•>úȵƒ“&M¢  €õëׇñz½ìÞ½€²²² ‚†Á‚ X¼x1øÃزe >ŸÏV1EEEެ®®àäÉ“ƒª¢©S§bš¦c9)%?øÁlõÜÙÙIaa!]]]œ8q"áŠ2t/+¹à¸qã2ž:t(¾Ñ²®Žh4:è‚ì$t¹išÔÖÆ÷×vttؼîºëèêêÂ4Í Ä&¤¨´ÒÒRÆGCCƒc6!Á gΜa×®]tttÐÐÐ@0ÄãñdCJÉĉñ3‚÷ìÙ“ñ<¹?‹-`÷îÝ1M“3fpâĉKzÉ{/+R¯¯¯Oi(‰‡íÁÜtÓMÞyç ÃpÜ»— bBÿçççÓÚÚꊀùó礨‘É“'Ûl GŽáµ×^ã½÷Þ#;r}ú{öìÙãjË Ã°›¦¦¦ŒrB¢Ñ¨­6]O¾KK͸Ù[åRé÷}ûöqäÈû^ÂÝM6ö«V­" òûßÿÞ±­Ó§OÓÔÔdk7ÉKÀœ9sl‚%Þ›@Ýrþüy[y½^T5~ºPyy9………™‡Ö˜&sçÎMA´Û4/X°€ÖÖVÇÕüªªÚÁí—¾ô%;o¥iªª¦HDâÙ`Fý’3†~¿Ÿï~÷»lݺUU9uê‘H„ŠŠ »ÃµµµLŸ>­[·²dÉ*++StðONŸ>í÷¼ñÆ|ãß`Íš5̘1ƒH$ÂÂ… Y¿~=»ví²Ýt]×m•æF¸AÓ´ê¼¼¼ÚDG§M›ÆÀÀ==ñß± ‡ÃtvvRWWGii)_øÂ˜5k–bX¸p!uuu;o#¥äù矧±±Ñ.WTTD__õõõôööft( ¥¤¾¾>ù¥¥¥tttðî»ïÚ*"S:ľ}û(++#ÐÐÐÀc=F___f¦(466Ò××GUUgÏžeûöí ¤”M¸Ë;vì ¥¥ÅÕùyå•W‡ÃL˜0h4ʯ~õ+öîÝkK‰®ë)Rªi¥¥¥ƒAº»»/¶<è÷û¿P\\¼2Añ/~ñ‹ƒÁŸÛ0 î¾ûnÖ¯_ŸuÒî7¿ù ;vì°;%¥Ä0 LÓLQÉilÓ4mNJ®§ëºy;¥Ç“÷D&rFB›ÛÝÒí±X̶}‰TMrû–e‹ÅRúã–~Åb)ïMØ]×m&9Û]SSÃñãÇSÒ1žlSÒ‡W_}•úúz6nÜÈôéÓ ¡eY´¶¶òä“OÒÙÙ™Q&‘>pݰ¢(x½™•¥#Ö5ÒMªŸÍÉxš¦¥DþN™ŸÏ—Õ®âd—7y¢j('ô iÆPÁÙ³gùò—¿Lmm-µµµLš4‰ŠŠ B¡ííí;vŒcÇŽ9º™ƒÍÔ9ý½Ô £[»C½¹å.5»è4WtÙqk(ÁáÍÍͶç”ó3¶> .…!Máf».kŒWN¸!g{Ç`x¥hÈqÈŒ,QÆ$dLBÆ`LB®!OÌUBÆǬY³Æ07L˜9tTYéS®h r –eF3zKˆ‹ûd Ã`Û¶mc¥XÄè@,]œÆ`”TB ŒyT£RÆw/&jšV!¥ôp-î%¾vÀBÄ€^EQ:TU=§iZPÓ´ˆÇã1ùÿúK ÀO~5IEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/images/random.png0000644000076500000240000003517112536324426025635 0ustar philstaff00000000000000‰PNG  IHDRddpâ•TsRGB®ÎébKGDÿÿÿ ½§“ pHYsÄÄ•+tIMEÙºM IDATxÚí½yœ\U™ÿÿ>w©[ÕÕÝÕÝé-IwÒ! YYˆ@@F\fÁùƒßAç ã8ƒÈWt\Xd@Q‘MÙ! ÙC: MÖN§÷¥ºöí®ç÷ÇíºI5`ÀïÌózÕ«·êS÷žçœgù<Ÿç¹ðÑøh|4>ÆGã£ñÑøhüâòÍtÒI;§L™2QJ‰¤­ % HP$B¼sJ¥RxÉ’%_L§Óÿ5®Yû &­¯¯_”Ïç'ô®Ï󨩩ynpp0q¨®CUÕêB¡Øc2ós*£:NJÃK‡ðrþ÷nJÃM†ð<)¥ö×ÚDÈ×ÕÕÝõÙÏ~v6€'=Ü ‹°¡ ­±—­€Ûc;Ô0 üñcC&)¥´, Œ¸)>©$$«8öˆl]O"“¤®*BnØføwulÿQ±mÛ`g¾Ÿ…Wíí¿P`†(îŒbTUU/¦C6\×Ų, tð„ÃE3¾Ïs=·q뙿çGOþ‰­Kžñß7&Œ¿¦@”h^Ï4MLÓÄv]t]!7PÅ·?þ[Ξq1ŠaÜä B“ó˜% ˲0Mó ¢¥¥åà.Âó¤eYض‡$•19úð#éH¯@ Ÿ8ú“TUÅPBÇq0MÇqþªvO{êèÂcŽ9æ_Çñ$Uª¸¶ôE«H4]u;;;[MÓôw©çb–þíÌ;øéúk8«ùLQâœ4ë(îÞ~«/U …òàHoo/mmm«)l<‰$•NÖM9lÊ EQ@¤+†ËÜür¿„Ó~öq*BÓ9ùŽ“ÑU F(TÃÎ[hmmEJ‰ëºSC¡Ð‚÷².TWW¯éîî–ª@,Ëš{Øa‡—Høª¾¯®‹Ù u¬ÎH‘‹ÐÝ£bÛ¶¿K…‡kKfµÍ@ÙE;K¶˜ã¥Ýày¾Jª Þ#\__¿`Ú´ixžGQšh‡§¨ ‡è\á1®ºË2Ñ„Êöñ[9áìJ\×ÃÑq£XÃP“‡R(J¨ª@Ó4r¹®ëÊ“N:éúÚÚÚëé¢Wyà(`Ù¿ÀöÉ@ÍíÞ½›µk×F€Ò‡nCJ¥¦i’sKDŽ-¢V+Dªs03‡fÄZ'Ðɞ桪*©\EQQÛ3©Ò+ñ$X¦‰ÐÞ°Ž™çy”J%ð$z7 Ö"F<ƒ½Ç²-“›¾Ì7OzˆjP2Kd2†††bSìuäÂ8¦‡išX¦…¢KÇenô\¾vâ‰DBÔ´TR}RÏð7fù>ÿjF½¼ƒ,ËB˜ ÅŠž'ùíòßð¥#¿‰ë:¤ÓiR©ùBdzIÖ.cëîÝôä6Cm??Z{9édŽT:M:&“É „ø³ÇdüøñA¼à Ò!Ñßœs>«ŸAz¾ ´l=¬#¬½Å´÷¯à°úy4Õ4¡ ×uq'Ø‘*ªŠà÷¶m#tA…ÞÀ•Ÿø&?|ö\zì­\³èÚgฎã¿<ÏCQ”ߨ—OˆmÛ8Ø¡Ö#¸ž+]’ÅaE ¼×q‘ЇkIžëº…ÒV—†ߥ1´±ˆÑA‚eÚTF«nž;gîèÃR©Ôë===w—288è{f£.«oÊpþÏc0‘Cš$|Úe­ÚÁå\Ãh6Áåw_Áš7^Ãt‹¾]Ùïdj†ÂöŸ»TÇr`úfB_QÅêW“̽vÕ‘_úÑWq¥‹¡FÐ#BøTUÕCâ.kï÷„X–…-4Ec0¿—3b 艙$ ~ü¡iþÔu•¥×bgdÚ¶Í¢E‹h˜m¢ …Nm/G,Ò±û*ζ"Ètè]A-[¶Ü]VY“'O&‰ „ Ï¡îü!&Ê*œþ ¬Þ Üx侉jªÆ±wï^"TQnÄsq'ðîÔœG}c=ãêÆ¡( ; ýÌü\‘XLÇMǰz#8ƒ5XýaEª »»û¯+R©„­I¤ c×l'1ìpÒÇŽäW›n /ÙÇYgÅ¥—^ÊòåËiooghh×uq]—ÊqJÊ)=9K¨9Š×D;J8%Uh =ÐècOûÝ|ùûrì …-ÖæÕ6S² ÔÌ Q˜Ý H„"½ªšâŽ0!æºWÏ#[Ê`ÙV r*„‚;6§‚¾Ò('7ÖQ,º9ã8¶Ö¬@Îu¨ä6Eɬ©!QÏó>xŒ?žŽ¢8Éd’T*…­y”¬ŽÜõÆ×ùÆ7#Ã&–[àúë¯gÙ²e|þóŸG×u"‘;vì ²²’ööv_ ¶íÚšJjHå>Í`z€û6]ÏâyÃó]÷޹żC eáZ–…"Š¢`Ù6_=ügdDšá‘uX‘ø9I|{ ¥Ä“ÝÛHì´ÉÆK8Õû<¨P5&„%Ó䂿ï1ª·sÍ‚{xeóËd"´³ Û¶H4MömTU}ÏÎÉ{ÈÀÀmmmÿ»ººúh?Œ&Fç«ªŠ¢(èRÁÉHr.vŸàëÿòϤwIJ£‚¯|å+|ûÛßæW¿úÛ·oGJI"‘ ‹ÑÙÙI}}½K^ÌšÁ§ÙÓ5Ê9ãÿ ;–5CϲÓ,½«@Ê'ÄqJ¥ sg–#Ï›Íe¿½œûþvÃu#x#<äüÓûÍcåwS¨º@ Åb‘b±@•ÂuUÿÔ) BHF†JœýéOråÓ7pæÔ‹™Þ0”n°ÁÝŽiú…”þëC1êãÆû´iÓŽp¥Çú=o  •‰'bÛ6ég-RÒCJ”a4@Ó-úúú¸ôÒKßuÎ\.G,ó]gá „B¥Qƒåq=—º†]©­d¬–¥¡hâQ%8%¢¨¸.hªŠþÂ8ŽÃêžßã¹.–å®òœù³éèè ‹ªÀñ”}§NQÀ؇~ EAA¶”eÃÈ’`.ľàð`‘†¿H žç Ó4‘Rò–ÙKí—㚎çœsÎæä“Oæ§?ý)[·neþüù¬\¹’™3g²fÍâñ8áp˜|>윌Rbü…úÄTŠÙœï(Š¢2œëa~t.Âd´ÐÏ„ÈD„X¦…pßyBö45EÈe¤ë«&›°R…ëf0M· ‹€„I“&¡i®ëó*$9'X¾Ê C}}„Í;w -EQHãV}4;ܰ,_e•mLJ")å>ýëù®¤‚šš"‘Hà‡B!Ž:ê(öîÝËÑGͺuë0 ƒššÒé4BR†Ç´OE¯žÆ–Õë|ðQ÷PD˜Ac9õ‹hš?{Öÿç†þ‘ªp-%«å]"„/”J%”1,cÂÄj~òÊ·¸ëÂeÜôÚÅH3BcM3¶ÓE©dùªÅŒ?]bUáfuœ¤¶‚Pý5â$‚âTºTU†¹sÝÿæ§Ÿ[Êm¸†™ZôVl×"Ÿ/€ð¢(ʇvB(ŸOx(B¡½½ÑÑ8ÃÃà :::]êºn°kJ¥†aøI(Ý£Â0Ø4ô:‰DŽb±ˆ’­F4µ¿»˜»¿ò[2Þ uüˆRÊctdÍPÊjÊÛ_ Åb‘T*…@P0%%ˤË{…_/¿‡†Ú ¬‹/ÅKº7&ɧ}÷VàuAýñ½þB†$‰Wc;¢AX,ýù«<,ׂª8_ûíç9rÆ R¹a’ñ8;–$Éçý9…†ñá ½åˆ@êÔG<GQ*++ÿdÙßßO2™DQr¡dW­Ï“VUTUEC‚EPiH.úæ§í°Ií. Q¡ó†qñ„ öô÷÷ß*„@›C FÁEº’d<¼ý†7[˜i1/hšæg=—Ó&ü#b¢CzXðJò6Fl_õ¹®‹¢(hš†¢(DÓ.é^‡þ &‰›x~ïúý\[®ëH)ƒ ðPœõϽ¡¡¡áRUU'º®KVµ˜ÿé(gý”flâ²Ï\‡Ñ¢0þ8A2º‡î5ò…<…B+›ÍZ¶m«Žã)%ňÇìW’íµ)ìшD"B£Ø]/š ¬´ÉtJœ¬¾ªªZNÅ"„`âĉ$‰d8V3™ÌÎX,v|±XTš›› %%{_²ÝìRè\MSǼ%>!š0ÈÝÎÿ:ö{D* »Ù½¹—\Ÿ‡ã8 ÆÏUW]Eºo„äF g(DÈ­ R¡¢¢EQ‡Ã hñxüQUU+ Þ.`¢çyä ‡9§V“t¹îœ;o±1õ çœÊžÄVÖúØ–¢(LŸ2Suøl=‘JˆR©D©T¢Ê2Èt¹ô¯Ë3gÖ[dêâjΞq1ÙBŽç:ï"±Ý R,yùå—‘RrÒÉ'‘/ä™5{UUUÌ›7€sÎ9‡éÓ§s‹E¶mÛ6ç/ÆA‹Žã0::Êèè(éL†¢U¤ÙÅ÷Ÿú.š®Uºyê­»éëH’L&H$¤SÔÓv#>¾)q '°~ýz>vÌÑÄìñThÕL™2…d2Iss3ãǧ¶¶–©S§2}útEaòäÉhšF8¦±±1ØêÌ8BTTTàyÄãq&Mš„ëºL˜0††fΜÀ4uuuœ~úé TE¡R¯ÅvM,ϤÚh¼µ²ÚêêêÂu]†‡‡ñ<ÚÚZòù<š¦‘L&éëëÃqš››)•JÁIþPh@3gÎ\cšæqŠ¢ªtøÔ71 Aj·Ãð“ø[ùa÷lGU5ιâTôy{xñ;{øÉ ?#Nsï½÷RSSCgg'®ërì±Ç’L&éïïœÏóÞñ*»¦••• ezPLƒ3f2<£^ÍÍ͉$o.â”äkD"Ñ0 5¸8ÏóP|æØ¿'Þ´‰WBwòýïŸo~ó›d2"‘¶mSUUE{{»ó=ÊK/½Ô J¶ÌA¹½“'O¦X,2sæLEaÚ´iTVVRUUÅSO=âL&ÃÆ …BºˆPtòìÝ5⻑Ñh€•íƒmÛHÍcâ‘Õ¼5ø*?¸àL%Å<»†Å'ŸMŸÚNïóiÔO¦+Ãå–eG0êZæ×pÆg°Tù!Ç·žÈP¤‹áè^ºª< =LCCÃCt=BÄUcæSxFX*S•Š]…Ä%K/M5Í<¿úUv*ñÆÔÂ÷üªªªÈf³‡”ºôg‰D¸é¦›8÷ÜsùÞ÷¾G©T trY?÷öö`¡°ì­¥Ì=þDÖ¶uã †‰F£¤ÓéÒµ‰DÂÆBË SÑXâ{¸†?óŒJ‡_nüâ&©tEضÄe¾•”àx&¹b+k ªªSj£dnà¶ßA}}=«V­bãÆ„Ãazzzhll¤««‹Ù³gcY6l ¢¢‚¾® TUÇq®t‰èa¤çáØ¦å“ÊÁî‡Nr]W¯¬¬déÒ¥Á”^90öO);¶ÇÚÄ#t÷EH eI§ TUUQWW¤Pyž‡‚D Š —Á[9ëË'‘ëõ°ó+㢅öÅ#åÍP*•žÄq<"Q•kŸý,7žù0¿ØrƒúNô¤„qãÆ‘ÍfimmeݺuÌŸ?Ïó˜={6CCCäóyÚÚÚ˜5k<ðBQp4?úÿÛ£ÿ‰¼ìG¢rÆ”`«s'Ö˜@U†ð={YUUU <Ï«y›gQÛÚÚúP.—CHp§Ž;·šüK~Ø¥0ä©Ò)¥=’»l<é2yòdt]'—ËaÛ6ÃÃÄB!æÍ›G_o–mã™rŒí; ®ë :£Ñ(¥R‰|>ï_¼sšào¾Ñ„ëBKø(Æ7ײz×Käú]º Ñ2±•c=–^x!ˆ¦-ËÂ0|ÛVÎeøü]ð8íÎJòC?ÿüRnZñeºÒo"ñØüÓÉNÔÖÖ²sçÎæd29ô¡ ä݆®ëMóçÏL¥RÔÔÔËfq,?_‚ŠÏ²9Ûjiia``Ïó@¦irß}÷ÑÒÒ‚¢(<ùä“ìÞ½×uol„ tvv’L&Ñ4t:M"‘À4Í@uy‚“ÿ±–ø›T§Íè6 3å¡h‚ÆñõA*ùÏy¯åµÈ¥ õNIR¡Ö¡ªY3IºÇaû9<Ç7ÕÕÕäóù3Ãáðh*•2{zz¶þU¹½B}ôQ¤”¬\¹’Ý»wÓÛÛëgÇ^ªªbD"t]?€¡1}út^ýu>ûÙÏÒÚÚJ$¡¿¿Ÿ3fÐÞÞŽa444ÍfI¥Rèºî£»Š‚a|ñ‹_äå—_¦ç¡±9]—q1·Ò·eû{d±XŒíÛ·ŸR*•ö¼íVŽ>üðßÈår -Z„²¼’Pðl´: -5‘ '¾c^PU•ŽŽŽ===3ÿj'DÓ´¦£>zð–[n¡©© Ã0¸á†hhh@UU,XÀ]wÝEUUMMM„Ãa^xá… Ã×ÐÐÀÞ½{™>}:Gy$ƒƒƒ$“É á4V€®ë‹EÇ!‰dEQxóÍ7Ù¼y36l@Ó4V®\ÉäÉ“Éf³L™2…b±Èúõë‘R244Ä[o½5}tttWù>¯- ÇÔÖÖ^X¾öl6DÞƒÅa*#>¬.í1æ¾#˜4iUÕU>‰[DZ„]cê\Û´iÓ}ñxü;ê Q…G}”ã?žgŸ}–\.¨“ÎÎÎ gÇñV\Óàº.kÖ¬aõêÕïð6ʼ߲jÛ?ÅYUUE©Tâ¿ø÷Þ{/¶mSSSCcc#/¼ð­­­äóy²Ù,žç‘N§Éf³Äb1RÉU•ÕK.»ì2b±˜Oíh!o½õVÞÝÞ7nÜ»²ã‰¶m‹½ö³?i"£ ª¦à¥t¬»/L©Ó?¡Ò…Úyaê”(ºqœœÊðCï¸çT Š¢¬¹ð §½Êd(âÅ_|Â4Í'êëëo½é¦›šÎ:ë,V­Z¨§r£( ½½½àPÑh”úúzÆ5×ü!ª#!^¹m7±X,`ÌØ?•üv:ªmÛXÒFAAÏMäæóîá…Ý¿æùÑÇ™<¿ž¾Ø ÙíZpj?1á\®8õj¾ðÓÓø§ó¯äÑU÷9£¿”èpÐñ<¯ªL±u3L¼ M¤BKÁ³Ü”†5`à ¸!üª¨P(Ô>00ðë1(ÿ?êëëW®\)öct]ÿ“à]>—gC~g̪@Õ-ÞX¦ÐU×–8qƒÔÒÚà^{íµ¯æóùGÞ¶¡Ü¦¦¦üÛç7MÇvðT?™õ™é×ð_«ÿ/ÌúWf-üz´ÄÍ»¯ÞG÷¯t?ˆölŒOÍþ2m±#p\Ç'~ äC9!epϱ²JžÊjA6grÎϨÙÍ›C«©šæQÍ0ôp=B j>‚«‹Çã Û¶§š¦@1å,[RIÑ8QÇMëxYi©d )Œ°Á¸ºq@EÌ3¾ÀâÅgc‘ã{Oý;ógOf«³5˜g,¿]ô^ͱ:G±nh;Ÿ=ùBôÉmФ‘ïõdÃá0®ë¢i'NÄu]ÒNY¹a¡8xy…íw×`ˆ ?Jð •*rþñqÛÚËøüôÿàßß­Ò¾õª`ÁþH­´´´Œ”Užê¢i*ž)RÐ È=7{×£+?õnCAÅ™»›I³šö•¼¡Ðiå°æÃXß»—£‰Ä²ì(´Š@ÊÇÛ aÍ]ÄÊ¡‡éªÀpê±½Háˆåœó©ãǸ§|Áå‹.Óøm×&¤k$]~pÁãtfÖñàÆÿDzÂ'HÀ«$‰F*ð„C¶gÝÎ T´ô£)¡}BïNé4***ˆD"HÏ£G3ÿ"kán4„3¡ÔmNT‘ŠÂ„0ó§ŸÄ&÷ ,kß¾:¥íR&Oðüð*VtÙPæhÝß_rBÚ•  eYx®c¥ÌQ¦’Qrrcï3ƒr…Ã?üÃ0¾Zž#‹q×]w1~üø}u&¶ƒ‚¯ómÖ =ÎÎmf©Ÿ¥Ò¨æAB¬Æ`$5Jµ^ÏøºF\ÏÆvl„TÂÛ£rJ)Çj>lò" )• fÿ/ª›C³ÓŒ;7Nx~"˜Ëq\–t݇c{$“I’É$¥‚É£›î”9B•’ÎâZ†wç‚¿QžœÕ†¸®‹‚‹íàäLJê¼Öõ4G6~—ÅsXVEúèì˜Wæ•wïu×]G<§¥¥…B¡àŸa£H•Ú¦òÚàJF %v u ðZ H*+"<²å‡|yÁwèÌ­æÍüóœ9[îcþ1·³±KWâ…|¤àÆ3æ©­?纅°dãÌê,Yÿ*¦ésŒMÿj‹=#©  Çqm’›,nøú­(Ò ßïaçu&ޝ!Q5…šššÏÏ;÷øý?ppîîîçr9ë ¤P(àØ6fÄÃÃe³õ0‡õM¥®Q¡m–Ê®ºË ‘ËåQtaÊÁ\ÙY¹r%ŸùÌg@Ïó¯LêëèèPé Éçó~N Bb»šªòxçw9¢t –ma¥¶ý>IɶÎö¢<–/_ÎóÏ?Ïàà ---~µ’ê§nï[vÿrÁµ”ÄçOþ<“ ÇIá8“&MÂH$X{c·4Î h„ÂûòùŠ^ˆt%Òó‘éT!ÎìÚS˜2q/®÷8¾ùS¼áþ80àáp˜hE”¦º 4ÖJÞܾ…¶¶¶}ùWÁsB|ï“OòÒ–pª÷’Øa“ý€_gyAëƒ!Ó½'´µµqá…²~ýzzñ¬ nÈAê+b 'ÏóÈårÁÏ€3©œ[†Ub±Ø‹®ë~ÒÏ:z(†¿kÛG~GÇý¯0ØSÀ*Hî¼óN&OžÌðð0K–,Á4M\×¥P(Éd˜0a{öìadd„ææfº»»ÿh*:ŸÏ#]Ëö ß}õb®?õÚt ;´eôwVâØ.¹\¡œf Ç¡ù²Q"ºŽ¼gá4 ¨Š‚"!k±hŒ½t÷^üêOª#×¾…k–©|pùõ¯Í«¯¾Ê-·Ü²eËØ¸q#Bº»»™4i“'OfõêÕtttpì±Ç²qãFŠÅ"ªª.8ñÄe@’ö<4]GH„ß”§ý[P¡Ú¨z-Ž¢ø©S§òÈ#_"(íIDATPWWGss3Üÿý Âá0±X¬\8ŠçymµµµÛ¨v]7°!¶ Ž´Q+m~°ú+´ÕÌ ”¶É'è|-E±è«—H8Œ]mQSÆÎ‡i¬™ˆ=`ãIv¥@é)8ž Ýe÷À.ºÓÛpl°mlˆr¥Õ!ÈO<Ái§Æž={¶}£«i[·nŲ,’Éd@°âòĉ}o£”¢nñ0&†q²ª°û"8a¬¾eºÌÁ*lÉsã7rÆgðúë¯ãy»ví¶mt]g„  t]ÀÃææffΜùà;û“ý¶lÙ‚¦iHE¢ÇaïËEF¶š¤ºFl; #Q¶{ªêu–Š.·œù;þþ©ó(9.Ÿl!<@ ôˆCH5hŒN"YBQðlÇ Ô_™”}HmÈ=÷ÜÃC=D.—{‡~عsgð»5kÖP]]ü½ŒõŒ”R9¥‚bÉföäãØS³ gvÏ“˜{*}1†PeÌŠF£A>_á—ÒÙ6“'Oƶm;Ô=s¡† Òx%'Âê7p† œ±Î7Çs —^z)÷ýê>ä(Huº)^`LÓ$2†£i*¿æ±®ª–‚•Ãqüf9¥R E Bl-Áÿðùå¥OpÓëax1ª#1L³—RÉ ìéÁï\Üeš¦aYVÍ>†â0ÅÛKβÙì¹ ÿ÷ž'9.t9- gLº„_¼þŸÌ˜Ú̪=«°-¡ù5)u1B^¥¯ÓI®eüøñD£Q²ÙlÐm!WY@Ó«‰)“X8÷^Úý0Î81/AüÕ(ù-~±ÍwÜÁŠ+øÁþ€_ýêWÌ‘GÐÝÝͬY³xá…˜4i–e¡i¡PˆT25Vk(ö«Iq°lË/ƒp¡²Âöt:Ì'YÝsUU æw“t‰÷%± ûR¾C9=hŒŒŒœT,rÎ9ç\}Ûm·‘Ífyøá‡ÙµkŠ¢L&‰D"(ŠÂèèhõK¥R”J¥Zp¥G©èqñyÏM+þ­fS«ŽavC++å*LËD¸>0ÙtA–ª‰ìw0gØ ¨H¶mãJßIß<å^~ôò¿òïg<Äêo²Éù5Cv¶í/æÓO?Í‚ hoogçÎÁ% J¥‰D"H; Ê l\i2š¥Ú¨#í$Æ ”¼ 0â‘v¹õÙIìpIu: ýº÷² ¶ ç=©,!„¾páBÖ­[Ç9çœÃá‡N>ŸÇó5÷ˆ†+XÖù×j7ÓPWƒÕoá8.¦éC3wÞy'wÜqǽ¿ÑÑÑ~ŽUå\¢:ÿç÷Ÿ¥64‰íÅ^¢Ñ(†aÐÔÔDjsŠ-›Ý1·ÛïhTó Ö– ˜¹@¤”üö·¿¥œ`êèè ‹²BP(p]7VY?¸aHXçå Ë QMm´žLgUœ­r¦UBñ| ³:},çýE^Z½ŽqÒãôÙ§ð}ëvª±”7Va¨(‚m¦ÀöŠc'É%•Jù週`PJé¯ù|¢°¥`gQ„Škú —N¥pZL§„õØ8´×466r÷Ýwãy«W¯fÕªU´¶¶²fÍŽ<òH6mò7W]]ù|žÞÞÞƒæÿ¾W¬XÕ4gžyF !„"”€=èJŸ¯¤)!??®†p‡ŠŠ ¤”Aé±¥ØhºàÁíÿÎ-g?ÎÚá'5÷Ó“ß‚íYòÝŽ›¾€îÔvÞì_ǧVŒ±²3´øP¤@"¨­‘Îg8÷ˆ Q —+1µö(Ú?àºÒ÷ò\A©&Á´Ø\J¥nŠ_4™V±‹Ïø5j+7=~ Ï^¿_à‘¢ÎÀ&™^‡ÔžºZ]Îí0wî\ªªªÈårttt ë:±X )%ÉdÓ4ikkcÛ¶mŒÊRåÑ7ÞxcÚ¬Y³N+ XÒEŸž§®ª–³ç~Ž’i±tûœ9û–îþ-éõa …Bˆ`‡ä…‡íZ„ª<þí÷±xþÙdó)ÖÇW²óå,Ù‚ìô’iâX*®ã‘+¥ðÍ•xhšæÏ-ý¸áqÍÓçóÃóžâÆ×/$SŠ£éVÉ"—Û—+™F>Ÿ÷S·ØØ¦Ë¬ÆE<Ùþ3S?Á1 ‹yF®¦¾¡žã?ž­[¶ÿƒƒå˜¸™ Ñjd2É×¾ö5Z[[éììÜW.'%;vì?•J,™?éüEÉd2/UUUÜÚÚzZ2™¤ˆEõÉ:Ç4žÉÜcšY·±“ïænŽ›y CÏ,cGO᪤R©À€FJ.Ù!‡Á£Ûö°ú–»ƒ^UM¢™¦¹û>ï÷?cÍZûx € ÇS,Éf³äóy„8¦ð…\mqãkG$\AAÕHvÚt®L!€àǸêqô÷÷ûìyÕ«øòñ2×óH¨ªÆªU«xñÅùÒ—¾Ä²e˨¨¨àþûï§­­®®®À=®©©9¨µ‹Çã HUÕiåöL¶ðo¨RaºEL§ÄP¦—¾l,€ëqöùÞ×^{-K–,¡ç¾®kôJ+(ÝYèçˆÏ8T„5¤©b'tÜ«?Œ—Õš ‚Æl6ëïL×#Ü-Øö»é½N!]8E‰” ¨jP¸g„"lêZEµlö󆇮ìÝÈñGŸÀxíp6í^p½ÚÚÚèîîö?†Ø pà 70::Ê“O>T(çr¹à$”Iåµµµåb¤Ñááá…foo”ò°€¨¸¨Bc´8@St.5i²V] £ `[&Ò8ŽÃ3Ï<Ãèè('Ÿ|2¿ÿýï,jÙ²eÁï-ÅY4~…¬ÇqÓ?ΦÁe83rT©’ìæ 2¯Wû†Xñ‹z/^ÌìÙ³yiÉKx ŒBXš…ˆù ¨ë:™LÇqÐt…d·ƒ^_ô“U8xžÁ@èUÂÅÓÉ×ö°Ûz]5¸è¢‹˜={vÐåÇó<†††˜:u*ßøÆ7B …Þ5S.2Íd2ÔÔÔP(œÑÑÑíQN ˜©~nµP¹¶Êë8bñ \óä´Ml–eâa9o¾ù&d2™rÓd†‡‡ðÀ„”l“ ZneÄÛÀ?/¸›—Ú—Žl¥ÝÞô) äòË/'—ËqÚi§qûí·s‰ èîîæÈ#äÑGeòäÉ~{ÁTŠT*Åàà ••Q2™ ¦iRðü2O•üôâªS¿í”0M×TK___ j5MÃ0 zzzš@Õüf93C¥QíWiEMì0梂D"áç4IÉŠa«påoÏæÑ¯lD‹XÜ·éÛx.ć’APtë­·¾#ß½?݇F`x ÄÙçžÆ•Ï\Ïâ3©v¤‘ÞΠ·H¹Ž¼»»›O<‘ßüæ7µÜL@J´÷ÐuݬÇ>¯l„+Š¥¸GÏ®ñ­ÿðݯûù{FFFp÷ËŤ ‚ø” ÇžYůþv%gÞ9…g®XÁæÎžê½‘­2ºÉ7Þ†a°}ûv?8”XQ4O¢ê×ñ`TrÊ¥‡“ëò°ò3ã¥b±(˵êo®bß2|zÿ¿ÛŽÍ®ìÆ1Ö¼°‘Eá[ßúÑh4 Á•çß¼ys€ìÿ™åúÃ0¸úê«Y¾|9ƒ/âz!Ǧ©Qîkí7¦¦Ê½|ËÁ­"Rjêtâ™®8éFú³»I¤8~âÙ¼aÿœ2…«lSÞ éá} DÁ´iÓH¥R ÜkÒcšEâçmýÀ$¤J¤"ˤi100°lddä”·Ï5gΜ¸išã„`@MM˜=}}xŽ‚¦èdÍ$M‘6vºqLÓºïضM4 Ò¶û{re¸û€“è‚eúÄí«®º !>ø ßþö·éêêbæÌ™ŒŒŒ`Û6MMM¼òÊ+„B!ÆϺuë°mÛÇæ<°,p¥Íµ/žÇÿ=õ)îÝüÏô¤ÞBK¨” &™ŒyÀ&x/lÆ÷cÔ9òÈ#¹ì²Ë8âˆ#¸ùæ›éì줦¦†‘‘tÝo.988ˆ®ëhšÆàà étÚûc‰£R©äïÈ*ɸq•ühÙ¿p×ß-ã—o\Ï›©-1i®7Ƴ!S§N âUUY±bÍÍÍïêë«!ÍMÒ·²H!é°k×.®¼òJöîÝK±X¤±±‘ÊÊJt]gÙ²eÔÕÕÑÚÚJOOOPN],ƒ¸ÇI ’ý~1é¿>y>F˜lÎ%ÝcÒ¹"‹ª¨lš±Í˜4i’ÝÝÝí²r„ÚÚÚ5MMMÇ,§¶<\×¥¿¿ÆÈÈÈÎý?}úôx©T§( Ã\þñ[±,—šÂ±5g KwÿMÓXõƒ©._TVT±è–*†îoD:¾ZX»v-Ñh”p80ïËi]ǵ1¢!Ü’ š ìÏRùSÒæææýªzd³ùc›µ§§‡mÛ¶!„ ²²2(Ž-o¾µk×~)™L>pHOˆa̘1€~3Áä³óDÂÂ4°‡B8ÃaœáYF"î½÷Þô»MY&—…sPÊx m±èØó Ïß¹ÏØy×ôñ¾¼¹Àv¤íëú9sæÐÚÚJ,cÛ¶mŒŽŽÒÔÔÄÐÐýýýx¦¯ºLÓ èG ǔز„BË-¡«HMÕ(•Š !¬,måœËb(Ràš€¥û×6`PÚ]—õ¯­P(P[[TGŒŠ ΊF£Öãz_)ç´£Zœù-a2Ù4íwXL¬™‚ëeŠÀrt] M D‚³Î\†á)xއkš•É¿˜Jd #Ø %ÓôÛ|Û縘¼™ è¡#NšŠP3«°pÊùÔNш•¡öì*O‰ݱË^ÐÈÈápEQ˜3g†a0iÒ$lÛ:Dœx≤Óé1WR9 M¹ëºAËðr³œx<Ô=vttðì³Ï¢ªjТP,b;(6w´_Æp¶‰$?â²þÞ8®·¯ëµ¢(Œ ˜ÄjB(ªKD¯¤¦²†x®/H–•‰]]]~sNUAºÞ4×?ç¿/··¬:~ Uö*öµÿ¶qE|zÒ7ÉÈ]\¿è1]ý Í“tžXq_p“Ñh”+¯¼’É“'Óßßëº,]ºÏóhooÇqœ@•Ëfñ‹kùI P(D]]BjkkßvÁc$E¥ÐžçQQéZR ×íbe=ÖVâÁ³%Š*p w_[Ct]Áã5ƒÿô ¸®‡iúü3×q¨m®'™Š™„*UÒ¶ß7ò`JÞW¤^^xß0ÀñlJ¦‰¦èû ` O Z«gð›=¿ -t"õ‘ %ƒôR*•d(ûGïR!\×EÚ`{Þ˜C¨‚–cc:’Ñ‘rŒe_ÎLæóùuÖ××ÿXÓ4¿|Çá +À®¢2WEuu5—\r Ë—/gxpÅÉá†\<ÍúäQÞxÊXCœ©ÓkØÑµ—Óû;Þ^M2Qdvà ¼åüËò³†…|ù0?yêûüÍ'NågýÄÏ‚ª|0'DJ©J)e©Tç¹TDþùá‹‘žÀ¶}B¶§¹$ªâ³‘Tœ\e nÅo¼ñ•b±øàE£Ñë§M›öÍd2‰£H¦¥’Ö–0vAb=R6™n‡%ÿl^ûس¦D,CÓ´]ù|þΖ––—yXnµ íÔ(ZXòÒú~~öý_±wï^n¿ývn¸át]§¾¾žb±ÈîÝ»Y´hëÖ­cýúõär9ĘG§ë*ßyõ Ü~Á |Í—ÈZ ]Ïšd³>êëX.#r3NÝV–íN!]I±TD(>ò d×®]ŸjiiH§Ó~ýqÓ‰âÕîa´%"k|D ¤„èJw0¿þ4Žž>×w¼Â±£Yê=e9AŽ"‰ØÅb±4ö³‡1 èÿ•C¿’{Z«¾?ÅUd³Ùm»víºA×õ7µLDBâ¹>'Ê5!j„yúé§¹öÚky饗(•JD£Qúûû‰Åb ÓÙÙI8ì'×J¥ŠP°]dz©«7¸þµOûê¯O2´¹ÈžeymŒè)$òC º ö²wmš\®‚Cïe1ïÖ² ˜öyÓÄÊ{¸^Çq(.¶[Á’¡ŸpNã·xxë-ì/’ؾOºd³Ù >y;•¨­­o¼‘‰'òË_þ’®®.Æ϶mÛ¨¯÷»3tuua‘H„®®.„ƒ‰Dâ7å°§\`4aÂÒÃi^¿>çÇ"ŠÊË/¿Ì† ‚åè¾üµœ³(cv®ëRÛ©±æÇ)¬Œ‡S’8y‰ô|·¨Ü‹EQŒÁu_ø!nÁŸ$ îÇu>¤ÐÉþø®ë,^¼˜ukÖ±éf ”nÑÄt 8¶C©RâH CSyvè&N˜rùd‰‘·zÙórbñÝŸŠæº.3fÌ óÉO~’3fJ¥8î¸ãhkk£¿¿ŸP(¤FËMdÞŽ:”i?åôñªU«H¥R¼ú꫆A±X À¿r’i,nP¥ÌH˜þ¹Ï}N9õÔSyøá‡Éf³äÔ\`CË 0]×'Q”‰åÕJNØÁR,"‘…B!èlqH¹½û fÍš5lذO}êSlÞ¼™–.]J>ŸÇu\¢I…¡ …>‡äÎÏu߇¢ mº¦úDvÕªU,X°€Ûn»¥K—"¥ä‘G!ŸÏ‡ƒî¥R‰åË—¿+Õ¿ µK)9ì°ÃX²d º®sâ‰'²páBî½÷^*++©¯¯'ŸÏ³gßqcëÖ­W'‰Çf̘Q¸ä’K"£££\~ùåÜ{|þù´··3gΞ{î9fΜICCÉd’U«VÑÛÛ¸çûØÇX»v-»wïæ°Ãc×®]Œ@Ê^H.—£¡¡!³fÍâÕW_¥±±‘믿ž|ÄŽŠiŽ94ÎöKªËÌñrÓâw«‡ÃÜ|óÍïúÙek¹›6`Eo¿Æ+®¸‚3Ï<“åË—Þa¹á”’ÑÑQöìÙtlž Â¨²²R¼þúëœ{î¹Üpà X–ÅæÍ›éêꢮ®Ž\.ÇÞ½{éììIJ, …RJŽ8â{ì1t]'RQQA"‘8(Ô÷}U'¶µµÉ¦¦&&OžÌÀÀ@à1Åãq|ðAÞxã ¾úÕ¯rûí·388H$¡¾¾ž•+WÒÜÜÌ®]»¥®®ŽvïÞ}Q"‘¸lQfVUUÍB¼—Nmžëº]ƒƒƒo–mÈá‡^hnn> Ëö+wÛ_ oذáËÉdò>€N8¡X(Âe mÒôþ_ßN¥ …BAÌTîïUn:½eË–/%‰¹ÊÊd2tttyë2×÷é§Ÿæê«¯æµ×^cÇŽ](C ¡P(Èâ½ÛC³Ùìöl6»ýý\W}}}™Ýa -îééy¯SØ555›Ë þáááç£Ñ¨Z,Ue<€«BÝá­¤+)Ù%ÂZ Çð»MMMoÿ¶ëBýŸúúúÝ«V­:¬½½£>š'Ÿ|²Œæ9ìp8ü¯âÝvªalÛ¶-8!ÿ/ŽñãÇ? ….ÈUxœñÍF"䇫øúyÿÆí+¯’ÎÀ†"o=–õ°é7F{¨¿¿ÿ‹û©ÁÒ!õ²öóäM7ÝÄ-·ÜÂK/½Doo¯ÿ(‡t]׃'ÍLr?›ÍþÉÖÿ %pómçIJIArGœË¾|™.+ØÛF$äí…(?hãà6ù¾sêííí,^¼8h>,¥¤ººú\Æb1vîÜylÿzþ›ŽSN9…®®.öÜ™Ãs%R©S]ñ xÆlF9<°mû=·¼~_1Móe×u·•½“ƒé”J¥lÏóFÿ; BJi^rÉ%œrÊ)´´´pÇwJ¥hhh ··—ššÚÚÚX±bE¢Ø°a¶m¯ûÀR]]ÍðððeÃÃÃüÿhÈ2û}€Ë}½¦L™ÂæÍ›™0aS§N¥§§‡îîî2¹ÁþÀr(Ûjÿwš¦qÿý÷ó /Ífƒ¸¥xJ)éîî¾÷<ï}7è×øhüÙá8NÈ0 Òéô⟊iÆ‚ç÷ì­ˆ–ûÏH$ÒT*•ªÞ㺺uuuƒ£££…Vð£ñÑøh|4>ÆGã£ñÑ8`ü§ŒKÉÐÃlIEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/images/tile.png0000644000076500000240000003772112536324426025315 0ustar philstaff00000000000000‰PNG  IHDRPPŽò­sRGB®ÎébKGDÿÿÿ ½§“ pHYsÄÄ•+tIMEÙ6!©4 IDATxÚœ¼i˜$Wyçû;±æžY™Y[×ÒU]½ªI-µöÖŒm`|l#̰ÏÛc?žåÞg¼Œñx{¼Œ=6Æöc Ø€ZÝH¨[ê}QU×¾äûz̮ÆsŸ›º³ž8qâ'"Îïýÿßïz×»¤ã8Ôj5^ýu|ßgaaÁúèG?Z,—Ë„aÈ‹/¾ˆªª„aH†t:Ö×שÕjœ9sfuhh¨øþ÷¿?[«Õøô§?Íðð0/^dhhˆùùyLÓÄ4MNž<%Iüâ/þbaxx˜gžyÇq¸rå ƒƒƒ4 †‡‡ÙØØ`nnÛ¶;·ß~»xÃÞP¬×ë<óÌ3¬¬¬¦)ŽãP*•¸|ù2Qáº.óóó³ïyÏ{¶?ðÀ|éK_âÊ•+ ‚ Š"fgg©V«4›M.]ºtî®»îÚù³?û³ÊsÏ=ÇK/½Äôô4—/_FÓ4lÛfrr’sçα¸¸¸´²²²üë¿þë7f³YNœ8Áúú:¶m£ ‘ËåB099‰¦i!ÈçóüÈüƒƒƒT«U¦¦¦Ø±cÅb‘R©„®ëŒ†!<ð×_=¦i255Åàà Û·o§^¯cš&û÷ïGïûìß¿¿¿mllŒR©Ä¾}ûÈçó vîÜI¡P@UUVWW¹ýöÛ)•J¤iJ&“¡T*º®#„ ^¯£iRJöîÝË}÷ÝG±Xdppééi˜œœÄ0 †‡‡ÉårhšÆ¾}û0 ƒ\.×ß^(0 ƒ(Š(‹¨ªŠ‚ÁÁAn¾ùfÆÆÆØ»wowÜ>,¤”ý;Ž•Ïç‹™L×uB ¥¤÷‘R"„@A§ÓY,¦išˆ¢¨¿=MÓþ¾RJâ8Ž¢( òù|¡X,bÛö÷ô»õMÓ:ív[”J¥b’$(ŠrÍñ·ö_­Vyíµ×f¯»îºíŽã¦iÿœzmzûèºÎììì¹={öìl·ÛЦi×wëGJ‰¢(KkkkËCCC7š¦‰ïû!º1¦‰lPÏóR˲.g³Yݶm‚4•€@ ›m{‹ãx¥ÓéìÑ4­$›ÝüG›ûl0ôă IÂ0Ä÷}¢$¤±òŽëþ9o†÷ßü›¼çžŸ!n¿}š¦[öytû‡Ù­?ÌÝòKÜ¿ã1DÑ'||ß'Žc¢8Âs]¢$f¼°›££ïä§~ïvî¿á͸Ißó‰¢?ðq]]Ó˜ÒoçñŸà†òÛù¯où²àáû>žë‘¦i7n/  ®ð¡ƒÂv½›ÞþçLLâá{>aöÇ$¤ð¹]{œ['Þ€¢Ä:nà¾çõ{ž×}ý'û‡n㳯ý.óKë¹¥;À¾O’$DQ„çy„AÈ€>Á²5Ë‹³OpÇôCx‘C„ýþ’$éïkªyruž_ún¨¿Zn„’^Çó¯`'x¾OEäôJÆå[ç¾…HUl¿I&x~w`?Àu=4UÅi ¾~þó(qžj¥@’$xž‡çyôîÏsQÁųC*Î2×OÞL53Fv㈢¨{á7¿·:?õÈcüÓùO $2%£”ˆâˆ úØ›% *~âPÏŽ3P¨2·>‹„ïÀ0 ‰“?±,lCYZÞY-GÇ„ax5 À÷}$) ž©êÑrÛ¬Û+„›Û“$!ŽãÍOIdBÌŒî¢ãØ”3C„qÐ C|ßCQòE½C7bùM2J Mݶa÷.‹¢Ï÷‘RP0I)H…†»L§ý”Râù>abèsËËJíXûÓxJßó°ìˆlšAJ‰ã8øqDƒ/¿þG¼÷Яr²ó\rO‹ÇqPUµ?x®ë’0RWøÆ™çøùGÿ~ë›d|tœ4IqœÍµ9 ¤” h‚§.ý?ÿÆßäS¯ý–ïPÊTpÝyâ@bab[¾³d_b‰Eöo¯!/p©Ñ] [–a긎ƒÛqÑR¥è;Ü›}+QqŽ?ýAlÛFÓô«“Äñ‰ò1Û·òÔ©¯2³}†ß{ñq2F†0°íÝÔHÓwsLÊù"¿õÌã|ìÁ?@[\›¥ÑYcùl›ÈM‘¤¤iJ«Õ"H"ŠAW[ä÷¾õ8^ÿÜ]=Æê ’vÛFQÒ4ŶmÚí6R¥ÂóO0>7ÊjgŽÅÕ9Î4ñÚI †!išRHòÌßâÙ…ÏbùMN/¼Âì1Ÿ”J¥.ùD)A&%QJ<³úW´Ó£øžÅKO°rÚÁwb2YèmÙ’ŽX勳¿eY,¯-°òJ@»aadµþ$±mœ¢$‘¾ÕüËþ\n½Œã¸\úf™¦ä’išÒh4éÈ„02q3—ù•¯|1=±S f^#ŒB²Ù,QYiškÕ:r¬CiXgå;ë]LÃD¨ Ý7Y«EEQ²RO)Ý,‰—R^逧!jv×`išFBˆÀ0ŒB¥RAî±(:WŽ[8K š¦*QuA’$ …N³Ù;gv£7Ì¿hc7B4EC’¢gTâ$¦R©0;;ûìÎ;*¨$Cj*X~Õ!%ª¢"4PºkfÂ0¤\.[Qlâsã[ ,wY?ç!CdŠ–íNÃ0èt:Çòùü3[dû#g!aýœvÇÝ·Òl6åÂ… xžÇÊÊ ?öc?ƾ}{™»<ÏË/¿B}»$ì¾<Ï£ÑhP,¹t隦ñÓ?ýÓ Tø«Oþ5•j…òž%jµ †¢(\¸p0 ùÀ>ÀÁƒùäŸþªÔ0F—¼¾ÎÆÆ4›M‚€;3Ç{Œ0 yæÉç½qUSét: p]—$IPU•‡zˆ·¿ýí|ás_ä•'˜¾S#ŸÏ³°°€ã8d³YšÍ&ËËËT«U>òøG¸|ñÏ>õMö dÙ}[ÊúÆ:…B!KKKX–E’$|à`jj;Oí4Óƒ.Úàà Žã`SSSœ;wŽ$I˜™™áèÑ»9U;ÅZc•ÁÁAEá•W^att€ááa.]ºDš¦ÜvÛmd³Y¾ü•/sýõ×sæLÃ0úWûÀ\¼x€Ã‡3>>Î-waee/²Ù±ciš244Ä®]»øÊW¾Ò›%”J%†††xõÕWš$ŸÏsüøqÆÆÆh6›äóyÖÖÖBP*•ؽ{7õ •j‰r¹Œ”’Z­†eY B …7\3Ù³gÙ»w/kkk  P(0::J6›åäÉ“ÜqÇ”J%: Ïó8yò$âÆoì`…Ûí¶U*•ŠAôùóû}E¡Óé¬ ÇÉöì÷‰ã8 Ã0Èçó…ïÇßÍÚŠ¢t:Ž(•JÅÿSûr¹Ì©S§žÝ¹sçQÏóøßÅ"¥DÓ4666´‚ (þKq÷bY[[;644t¤ÇÖ½¶5®MƲ¬ ŸÏgE‘H‰ØÂ´›¤i*â8Ž;= G dSA‘ý¶›ÁHß÷ãL&+Š"…]”Íf[Xز,ß÷ý !D$¢ËÙʵ±H)…çy‘”raccc]JŠ.'§”. oÆ!6ŸÝ ˲¶›¦ i²ÙÙ&7³%– ”$é6PÄ&¿ËÍdÂø®!¤§vÔ–––.íØ±ã€çzi˜sÉï®FÒ6I-uwVUUrxxXd2Ât‹RA%îèÐÎZ2Q@‚çyrqq1 E‘Ìc»5¢¦†l›$Ž IÿêŠv»A0691Yò“uG›¬®“4 KGÝ~LÓäÉ'Ÿ¼pèСºŒ%«¹e¶ÐÚ Û’Ž¾ŠLÁ0 Ž?¾mbbbÞ4L¥Úrà–êÄ ´Óeòn’aYVœ$ÉÄôô4–ï“ÙcQ¨(­þèŠIóÉ.÷†@UÕÓ4sžç£n÷©Üî ‡EÂx %6Fã‹ÝÜæ-®&I‚±¼¾Ãîñý¦Ì­\DUT:ÏÔ uÒ4UTUÍiš–BÀ‹Û5riV{!Âs¬9„hš–zžR²![ì¿ßFK2n=͹ûx™`QGÉ*H)7ºàî]§tÃUuŠuk˲Ñ:UO饯 è語¿˜¬òæ»sDO–{Cäè|£L¸lôr‘L%Vê0z8ÀSÚ¼qç¢<ºûqŠÕ"±ìòì& Kß÷ñ|ŸT„Lr7¼ó¿ò¯¯û ö exÛ`Ÿ&’$‘½LuœF$Í ÷Ž¿“C…·rÏöwó¦[ÞAx- ËÞqâ4áÑíaRy€¼‹£3ïÂ[)GÆqŒçú„IÈHvšG&>ÊÏÝýI¼fÓS„Òíój…=ÏÅ0T¦Õ»xËÔ㪼•_yËß“æìÍU„”’0 ¥ïzD2Âs#>|ý'¸÷»øÐHe4G$ƒ>gK)ñ=8‰hvZüîCO³´¾†2^ØÃÁ‘;7¤ËÂB<ÏÃ|Â8ມ[y~áïyáä nŸzMÑûL™$ AtY8 +îf±s‘ók'¹mú’4!c|¿{’[ÛgÔ<•Ì ¯{/°¿|?;‡PÒëø¾‹çyÄqLÇø~÷{)S!WLxöÄó½ƒÝµ›pç{YØóQU§-xqîŸÉŠ*CC¤IAßï'<ÏCQ.Ÿ³ÉâG.7LÜÂdé:ü°GA=ß' #4™a¸:ÄFzÍ lή¼JÅø^Ú} CwÆø†¸¡Å`iYÈóúú¹þvUUû,Ç1i’Òô×-?Ls=eÅÅT³DQD$}éetuREÁw%FÎgþÒö oö_óêos9xެVÀq]Çé_Ïu ÈeûuÖ[-(´H«³iîÇégXÇÁêX$iÊ|ôm4‘ÁÏ]äw¾ù3¨šŠeYX«?Ø®ãÇ)SS¾üÊç*ð;/þ›®&û8ŽÓÏ"Y®ë‘Ïeùµ§ßÏ/Ýóçh®²ÎÜ…9–嬄„€f³I«Ó!ïæ U•¿»ük¼åð;™»øk/IÚíNØ›…”ÕàxçSÔ×ÚÑ2ó_Ù`þD›ÈN¿/ /øßá¹¥ÿE Ù\zýåv4ôœ‚–í²pǶªªf.—Óc#bìƒ`!a锃s´Œ@ÏŠ> +ЍªZÈår‡"jÅ“§bD"Ðsa€L%…B¡³±±!†††ŠØæÐY;²|ÒÆ_VP 0ò]}¢Z­2;;ûìŽ;ŽŠTN8ä2‹/;xë º©¢ ´îÚ. CJ¥’‡q±cFÜüÖ"«¯ù¬žöðWºíŒB—…MÓÄuÝõ|>_Ï—‹TDtæ#Z—C´;î½Çq¨V«\¹r¥§ óàƒrðàA:-‹cß:ÎØH–ñLƒb©ÀÒâÍf³§ 3==Í#<ÂðÐ0ÿó/?ÅÞÉ J ŒÞ:ÊÊÊ a’Ëå8yò$išòÞ÷¾—ƒò™Oý 7‹š›ç®žÜÔ TUãܹs„aÈáÇyÛÛÞF'œxùU j‹mû}´»iü×_EQp]UUyãßÈۨ˯ž|•ÑT††9wö®ë’ËåhµZ}þÉŸüIV–WxúÉçØ;XeûõÍVƒr¹Œ ËÂF!ÿøÇBðÔמ!-'\ÈœGãÒ¥K‹E¶mÛÆåË—I’„={öðö·¿¹¹9V×W¨T*¸®Ëòò2X–E¥Réë«ïxÇ;P…cÇ1==M¡œG×u²Ù,ËËËìÙ³‡×^{(Џçž{¸é¦›8þ<ÍfËm399ÙÏZoß¾½ÏÍÛ·oï뼮粶¶F¥RáÅ_dhpˆjµÚüjµöàùoŸ§V«!„ Õj‘¦)SSS„aÈÐh)%‹K ˆn¸áÎf³ÌÎΞ›žžÞÝK|ªªú=šm·<ϳ3™Œ©ªª¾µÍ¦|Øo›$ RÊ(Š¢@UÕB>Ÿ'Žã~?½7c( º®w†¨ÕjEß÷Ñu½ßVQâ8FQ’$¡V«qêÔ©g§¦¦Ž¶Ûm²Ùì5̺õ»a¬®®R¯×­0 ‹=Q¾§%÷tä^L›Ì¿^,ëabF_× …b*¶ðj†ŠBÉård2Ä&ÛöôÒMa¶”뺦ij&“Q…nŠðßÅÍ›KŸh}}ݯ×ëy!„ÌšYÒdSÞ½Ïúúz’ÍfõL&“f2™.“³E?ÞÒ~s­FQD¾OEÚãlúK³^,›Yt™$IR,»*ö¿Ð·eY"¯T*ŦiJRIWoÖFv—“ÄÒ î¿Û¶k„QDRôÈĤ¾¾Nꨤ®Ú¿¢¶m¯×ëõšišZ$bĨM.«uµ[× ±UDÒÏóœ Öêõú€ªªi;ÓdhR%vðtWEú*=> Ã(›ÍkµZ⤥]$ ©«vÛÛ*$ 1MS\ºt)>xð i”&ü*Ûvi„6à™¤®BêèÈP`š&ív;Žs™lÒ mYÛ#ÒnßÒÓIm+(ªÀ0 Å÷}gïž½†©¶)ÖO¢•\ÕUU¥ñ…±Õe[!„nÛ6–ï’Œ­‘Ù±-?ÍJëu4©º:/Özo³,IÓTïCGšŒVQ4:Ëè•/Öˆ›I’d……4MU@õw¬S¾%KMg©yE¨x§ د‰®ë9@ ,iël¿Kb¤%dšmÒ@¡ób‰`Þ@Í©$I’ó<ÔMõÕ©9¦0®M³bÍy)q[cãËÂ0B¡«ª“¢òxëÑ<"60D†¶½Ž®™´ž*.½[ºEQ~Õê0ýˆZö˜*íFydçã T†“°¿¢d„AH¬úÜ^{7wo'ÿé Ëtå6ê¥þƒ»Ç”AËÖ¼ëàÏóÐÄãš8ÊÝÆ^{ÙÓ‘Ã0$Œ#Þ<óA†ÒÛyÓ ïâÈèáÒÂߌ£Ç¾Ȉ‰ÝüÈÞÏ¿;úßYž×Ù19C”úþUU®Ëº¡2cåÿ†½…‡øÅ7~’ذûšó¦*'}Ï'%ÆBÞwð¹wç;ùà­@©–#–]»ª&úQH¢zÜ[úYöÞŠ²ä0#•±.x.þ&'öÞˆq°·~„¯\üs._YäжÛPdwÙÐãÕ> ‡!»ª7q~ýŽÍ=ɦÿ5º’! »ö³^ß=ÉéEŠf• γ\W¸ŸÑÊ$<Ïíª|iÚ×nÓ$%£dIôO|ûIÜA-³ ?ðúq÷XØs]4UÅjÂK‹ORT‡©A*ð=ßï ëAày.B\wñãxÚ:Aàãº)™^u&Äe%Ë.ÿ.?}øã<¹øß™ëœÇOì.Ën.!zYC˜ŸÃî$Ùs#sê·¨ ˆ¢× ‰ã¸o‘È O\ø_|äÞÿÂ_œúEâX¢¢áº]YS×õnð‘$M% í ,ŠUJ%mxŽ…¶Nwm™œÙÛõp-Cj\ _bÆ»–ö¿ù ë¶ÓFWõ¾°ºiQ255ÀWO~™ÉQ~ýù'6QẪ®\½+ãˆr¡Ìï|óq>rô×Ñl}™õÅ+¯7‰ƒ”\ÔÕ@›Í&~‘ws„ê:ðírÃÌ´ZW8ÿO­–Û×…Ûí6qCN E•Ï_þo<œùW4Óyé¬Î6‰œîºJÓ´¾ÿ&åXŽ^åïÎþŽlÒöš,]´hnaaÏóHü˜pPàË __øSkGI æ/„,œnáµc4£»2°,«ËÂq@YãEû/HŒ€…Së¼þ´K§é~ wèRbJk~†ùx'Mí2ë—\.|£+0e2’$ac£AG&¡Ž¥¼ÎÇŸþbûÄ´L<ÈTºær9¢(²¤”EÝ00'Šƒ*öRDcÖ#j¨h†‚šé/ç4M0M³ëC‡ âFÂÆY%ñ%fY%M h†1©iæž„rQ§1çaÏ'ø ç½ko+‹–çyÅŒaâ3wæhÏ…4ç]üU•Ø—dJWYxnnîÙ‰‰‰£I”¢Œ…äs*׬…ŠfŠM[žJ”Ëe+ ¢eÄì¿§@s6ÀZ p$ifE!Mºº°çyë†aÔQu&ïÖˆìw-F;rËM4[M …ív› XXXà±Ç#ŸÏ“„)/½ü2ZMÅÍ9(ª‚ã8¬®®R­V9{ö,333Üÿý  óéÿùvMM°à.°íà( lÛ¦R©ðÊ+¯ ¥ä}ï{õz'¾ò5t 2Æ"ã÷Œ±º¶‚ѵ©õýÚwÞy'7>Œ¡é|û[/3\ h·Ñ¦UªÕ*gΜ!“ÉlZ64î»ï>}ó£¼ðy饗˜Ú—¡|{‰ÙÙY,Ë¢\.³¾¾ÎÒÒÕj•w¿ûÝ466xæ©çÙWÀÏz4 †!+++´Ûm<ÏãÃþ0™L†W_9MKiâ—=´©é)ÜS.š¦133Ù3gHÓ”]»vñÈ#ðâ‹/²Þ\£V«!¥äüùóÔëu<Ïc`` o›}ì±Çð}Ÿ'O033C¡”§\.S¬súôinºé&Nœ8AÜÿýLMMÑn·ÙØØÀ öîÛ \×e÷îÝÌÏϰmÛ6ÞùŽwày.^@׫츎oûÛÔj5êõ:º®÷³ã»wïæ¾{ïã䉓Ô«˜¦I¹\¦Õjõ/¤eY”ËeÞö¶·ñ /pþÂöîÝ‹eY\¼x‘J¥¦iòÚk¯!¥äÈ‘#LLLôf$¯½öZ×#Ýc¿(ŠÈf³X–ee2™â¶mÛXZZBÓ´ËöY´·ëºsÙlv`dd¤ØK>ö¶§iÚÿ¾éß³Â0læóùÉññq{ ÷î3t“£{Œ«išåºnqff¦ïpHÓ´ÏÊ=–N’„jµÚgážQ`+ã÷r—½œd£Ñ`hhÈÊårÅ­+„­±÷X^QÚíözµZ­×j5šÍfŸ™µl&ô˜oóù'mÛnÔëu£ÑhÍæ ]ÝÂÁ[ݶm?“ÉHÇqB5s}ßrŸ'¯²°ðÆ]÷›\?ø(£c£}í6ÞtŸA@œD¬¯üèÁŸC¶ù©#¿ÎyAâ_ãPõ<¯ïü|ó̇ء?ÈÝ;7íü ¡fãyWûî‰VQ1œŸâ¡‰ñswýöÒ 7 µ¯Õ…ý×uÑtÁŽÜí|øÈp úF~é¾Ogºm·x¤¥ëz$¤xÏûü÷íøQ~æ–O26¾0½Ö#íù~ —»sãÀð(5sœ¡üXŸg{Î¥þIÆ× á‰KÁ—_xнC7ôlý7_ß#úÔŒIæÛxuån™x?¶ûúëV´çydõ"åL•g>Í‘‘G)dJh©‰çy¸®»ÅÇìGåìJ¡Í_ü;k)hü Àó½«_ß¿ê‘nè|æå?$ŸŽ33> ©Šç_õHwãêz¤/œ¶¨ +¬;‹ìŸ8DN-o²²wÍ…ÂvÛã§ýq¾zé“(acyM¾êvïy‰‘'´.lg¨2DËmõõÕ­¼†!q”¤µÜ}€Žß$o”û ‡ž×›±©L(hižX³ð¼?ò C¿ßw’$¡O§¤R"c±Ú«­5Â4ØäÕ-éMƒ€¢¨d³ãå,¿‰!òH¹éϺI^¦GJ(WLâ@CW  aâGÉ5éºÆÜÒE£Šr¬ùi|ÑÚô9{ßWþÆÊ§ÙnÜÎøN…͉۸n7cÒ»…]×%C µ—_ÿ6?üK|üù÷ñíÅ'I“ôšlL¯oÕHùú…Ïòø½¿ÂçNýg쯡¢âº×În×õˆâˆ%ëíŽMmØ@Ö/²a¯'ÝLO?åû¸Ž‹”Ðà,{†nÀË_äwžùº¦_3»»q;$IÊÔÔOþgÆk“üÆsï‘ôûî]x×ëÞ•|™ßxæƒ|ð¦ßAk'‹´£–Î5ð;)qšGA³Ù¤Ý±(¸9„©òG/?Îöþ«ñyÖ¿Óåß^2Á¶mZ­V7‡/*<»ög¨¯%´ÃeZ—WY8ÓÀo§ßÃÂù(ÇBø2Ÿ?ó‡XA“–žÕy›VÓ!·èÂ1–“ç+¯ÿîÑÞ‡³ó'X9ÛÕ…5C Ýnc7m2Qfò:_¸ô»¸q“‹ÎKl,øl,71ò] Ķm¬F»ØÕ…Ÿ_ûK.Ù{X‹ÏX>çŸ^CÑéëÂÍf“NšDæÀ¿ü¥Ÿ@ìØ¹CƶÄ,h$iB.—c}}ýÜàààn]ÓѶ…äꂳ>v#@z:Ȯ޻™‘^­T*E ‹.É_—-§´–W#ñ@Ï R™ö=Ò¦ir¹ÊŒO^UY9ïu ñèVéÝu]>Ÿ_lµZ¥‘á‘‚ZÌ<˜cù„GkÉE 'ÁÈw9ûô½1…¬ÊÊi›Ð’¤ž‚LAË‚ØLÇU*K¦²ØÁgï½yVNºØ«!©¯:)fI%‰“žéôX>Ÿ?b˜YÆîV°—#Ús!Ú¡‡z†næææHÓ”……~øa8@k£ÍsÏ~ƒÉ]6‹666h4T«UÎ;‡¦i¼ï}ï£/ð™O}–Ú¶*WÒ9††‡XZZÂ4»ú‹/†!?þ8õz/~þ»%WCËŒauu•l.Ûצ=ÏãÖ[oå‘GÁÐ ž}êy  âRDÇ Ö¹p᪪vMBŠÂ½÷ÞËý÷ßÏÓ_†Ó§ÎP›Ô12&ÍFÛµÉf²t:VVV¨Õj¼ïýïc~nžçžzžëFóDƒf“Z­JE,//÷-)úЇ¨×k|ëù—XÕWˆ¶h;vìèƒu¡PàôéÓ$IÂÞ½{¹ûî» ‚€•õeÙØØèߺ–e]ã©~àPU•¯?õun»õ6ô㣣£ý[öæ›oæÒ¥K$I­·ÞJ¡Ð½ËËËø‘Ëî=»13&ŽãpÓM7ñ¹Ï}ß÷Ù±c‡bß¾}´Ú-Ö××)‹<÷ÜsŒÑétÐu+W® ( ÓÓÓ<úè£4›MlÏ¢V«°RÈsîÜ9fff¸pá««« î¸ýNNröüY<Äúú:—.]¢^¯S­V¹xñ"'NœØR·ÜM®¾ôÒKW=Ò=´§ ÏÌÌìÎçó}îÛªÛnõ [–µ:88XÌd2Ù^ŽmkmîÖ¾“$‰Â0 ªÕj¡R©ôá[uá­5¾BˆÅN§SÚµkW¡Õj]ÃË[uç4MàÔ©SÏ8pਢ(ÝgòŸóVŽ×4f³ÉÐЕÉdнª¨­¼ßÓ§{è·¶¶vlddäH¹\îÖÄôjšÓDn(ªBˆ#Ê4M×=Ï+¶ÛíTŠ©¸êÞŸB‘$É|§Ó©Ø¶ïZŒ•n­r 3÷NÄÃÐu]·æ8ŽT…Jšò}ûÞ¬^TE¬¬¬D!·²­²?øªªbÛ¶VÆF’$Á¿Ô÷æRÊq'ïû~¬ d*¯Ö ÷Ú«ª ¢( ã8vÓ4moll$HTMÕ´ñ½ƒµ¤©#ÔnmlwmäÆIœrÛheHÖM’ŽÖ}Ù@I’Ä©ÕjYMÓ21 Ñxƒ\–hÍ Ù0‘‘‚bv]çA¸ÀÚààà€¢(麺Îäu*ɆI¼b’::B“­;cr¹Ü6EQF+• ~’¹®ƒ¡*Ä-ƒ´Ñå[¡KP$ºÖ½GFF"™¤Éš²ÁöëÂUƒhÕDÚ:B‘½ëÒo4¹ÉÉÉ$ÊbÐ`êf $M¤‘!±4TS"A³Ù\Ãpß¶mÛÊŽïcî´ÉUÂhõ·®£¥ÚOU‰Ö4 Ã@×õÁr¹\°=eÅèmx žß"'ʤm“ÖSE¡Ñh¤…B¡ªëz¾m´ÙvŸJ!„zœ'Iœ§Fˆ; ªªV-Ë*‹Å1!Þu«ŒÞ.I]AêÇÈXŸ¯áœÉô<7Q†dt“ Ýbǃ!9YÅ÷=H#¼†Ä©Š¿¤S,BŒT*#Ò•4÷.²íî J…À ÑÛUZß(bš&š¦‘ËåÂÈ »j3~o‘ØW)hæÖ.RR†ØøÇ22P1 CB¤¦aÐL\&ïO_ãÖÑ{QÞ¶ëç›!ÆÇ÷¯õ1{G¤xìÒßÄ/<ð§üƒŸ`bð å ó»=Ò©ïûI@§ñá[ŸÞñ§LŒìæ®[îÁK칤I’\õHqïÈ{y×®_åÖ½÷sdæQwl”ßác„V†¹ádÔ\Ÿ•{2¥¿Y :]¸™SkÏóå“Ã;÷þ{&*{ˆ£¸ÏÂ=]Øówþ·¹¡øƒ<°÷­ f'q½«šsOŽ£„rv‘íðÄKO°³v=£…x·ÕOàû8®‡®)­<Ÿ<öLšGxðº·`ªy\ßÅs·²°Hòáëé*ùÛJ;¨gÇñ}¯o[=ÒD7î>ÄóëŸBs|—¹æ%¢(&ð#$z_z À, qRÐ+èŠÉ‹¿Bœvý[eM€$Ÿ$£Œ*:8,Óp—ñ}—À×®©0U¨^BuPåųǘkœ%ºÖMÓzÏd#F2Q¨—yéòKÄ%‘v‹¿3¹éL¼Ch˜Jfˆåö<1N`ø2•WµoßG ðÒ%}†ó< ëÎQùÑ5rl¬Å¤¤‚c¥(Ç[ŸÅÈH‚ÀÃqþôî•ük"ËW_ÿ3Þsð?sÊýñåžQ¨Ï«½’ÿ$JéhÈÈAî;x/Ÿ?ûGø©M_Mam-¸Z‹sOð3÷þú÷±¸B5;Šç]uÇ÷0Šb–­9œNÂè¶qa–‘âv¼ ;£®&||ÏE"°µË?JG?ÃOþ³ØÍƸ^@º>ï”údÄKç^e¢>Ο¼ü T‹uÜÀÁ¶¾îí8ïS*dù¿ÿñ#üæ£_Dkù‹,.Ͳ|±ßމ“÷où£ý'Î6¾É•Õó¬Î7ð[W=Ò=§A.És²õUx·á&Î.}‰¹Ku¡B¥Réž`iàÉ OÌ}’÷Œ| QjðõW¾HcÞ¡Õ Qõn’¶Ùhb¯ÛèQ‘¥àÇÖþb1ËÎü1Å•&z¦+áZ–E³Ùê–åªyž\þc&CœYù~'aáÕ&zL³« 7›Mü¼$NMÒøÍ¯ýbûØ)¨™®?®W/EQ1›Í‘¿!floŽÕ“W^ê€e¢è šâ]X×õb’Øýöá|Êåãø³]CËôËÈ,EQšRÊÉ|>OþhÊØh†ÙãmÖ¿“†ÕEë.Â+•JØn·\6‡­¸ÜõÁ+'|fµ æu)ZFErU=ê[•7*LNå˜}±ÍÚ‰éuzE5éëµZ-”‰4¢‘ˆé3,wh^ V‘H´¬ MRt]ozž'3™L5W.°í^‰u%fãœväöÃXVyfgg ÃnÙÀ[ÞòvíÚÅÂÜ"§¿y–º")íôQT¥_/\(¸rå Õj•w¼ãhªÆçÿö‹TkLäTÐn· ÃÓ4¹páqóÞ÷¾—;vð÷”ª½ÎÎÛhµ[†A’$,.."¥dß¾}<òè#ø®Ïwžz•œÕf¦ê£jd³YúÔ „àŽ;îàλîä¹§¾Áå¯ÎRׇ™¼!K³ÕìþÐ…ibY+++Œñá˜çž~ŽWOžâúñ2Ö@‡0 Iâ„b±Èüü<Íf€ÿøÿ#/>ÎC=ÄÐÐ/]ìüf2`llŒ¥¥%FFF¸|ù2?ü0{öì¡Óé°¶¶Æ¹s°oß>._¾ŒïûŒ³²²BÇÜ|óÍÜyÇìܹ“¿üË¿d~ažÑ‘Qžxâ êõ:kkkDQ„¦i?P­V‹[ÍÞ[ù¹÷=Žc+ Ãf±Xœ Óé\ë=¹÷·a¡ã8Æðð0¶mwyëïcU*NŸ>ýìîÝ»n±ü^³OïMÓX[[c||<´mÛø—j¢7Ï·iY–,—ËÕïÞ®¥Imõ1;ŽƒeY^µZÍ´ZÝô½LŠå{xUX–•hšÖÍ^#ЄÞÕ…•«5[ü×ÒuÝP×uÇAWõkê…]\Ó§Ó‘Š¢D¾ïk𦠠jE¹¶í&øË$Id𦱂Ò5^#Q”>×ö« â8N,ËJUUøê…Åæz7Êf³qš¦RÈͺe@Û69ÈHÙ,î/¯®®^ª×ë}Ï—¡ÑÕ…qMÒN·FWF B“½<œQ*•ôL&CDD:Þ¦˜5HZ½ºÛ«‡a¸®»Z,gt]-µÅðHm´e"mÓHÞ¿úžë¹²Z­Iˆ²£MN3ˆ[:i[GFj÷ÇÅd2.^¼X|×Û™#*á†AjkÝçD TÐu]†áŒŒ3Sþ?Ô cÛ¶~åÊ•µr¹\ ã8 Ê•ºJÚÑÑF~¤UÐ5æS¢UE!j¥R)ŸJPv9ŒÞ."ÒÐE†4PhþcUUÑu]˜¦©êºŽc¸ ÞåS/j‡„ž º¤ýå!â–Š”Rhš¦†!4MÃë0|¿FQ޲ÚXA“ñB‘Îñ2Ó4Õ> «ö¿)BKT|ÇÁ$Gä‚u¬D°hô~±R.—3A”¹ÅeÛ!«m‘¡@èN™Æ×˘†¦iyÓ4íÿ/õªª¢ªjµÏç–ýo”}"ÏG¹cêˆ<ÄÒÿ.¦ìþª5y€ÿðà§xï‘_¥VÜA}ÛÀ55½}”Kì5wúeÞ¼ãcœ¸‡{nx#^ä\óÛY½ãøIÀ}#?Á°r#Ýñ¸eòíxz£ï"M’DvQ1$L#jæ6û·ü§‡?Íëó£ãÃÄâªYv§,žçcäÛ”Ûù½|šJf†_~Ûãe›uÐÿê…=Ï'ˆ”LÀîôüèM?‡rxøAî™ùM¾Vö<Ÿ( 8/œ¯='&Žì ÁR½*bȧê/“îNa»vDÚ¯4¨E rrþÏlI oƒËDëT8˜ÿ“Xw,#>ÁÒ’ÉΡa^9ÿ+&—ÏâØN”é]I髚àíË/røKñûÑǸl'È£_—6p×gnù õ†E®(ò3¨RÛµ>3nÓ40m A]¹Èpÿ—™òNð×3ÏÑ¥u‡ãÖ¹3Lχó¼î}ú²ý<ýá#dâ…hN®‘ a‹\!“ባ?å¿Di*ÓÌ.M3[ª ×<ºÝÐ.—ËÔËÄ›Ilž:ñ0÷ì¹é¹Ó,jµiáÎHRB¨þxæ ~±þfì³Ìf)_­aÕýλ]„VtÛ1ªþ%^=û n¢Îå…³”>0¨Î‘/lŽé`É>†ãØäØ¿ùnÈT879Ïüå:%I„ïlår™J½A¿cÒø˜w'ÿDhò¯™—Y˜2)Ï×PãJ¤…—«  /HñÎÜslõ÷0î|@cÑàÊ©2ŽîO„Z¸\.c$|L[Péå¹ãO¢<ÿÃÓ˜‹ËH¨ª5ÖʲLLÓpæÿãјšãÇO=Š>®AK+‘±ÓnÀÀ·|–ιȭnî{éûè% ³^&‘ˆpuŽÏç±g[L½ðáè›,ŽÚø–„’-¦FPdh ϰ™?í²<;ñ_?Ž~YÅ\r‰gEDH¡(Äd}ܧZ‡/¾ÄÒyŸÆ-)£%Õ¨ÒYSéÖ}G–ç9~î–θz@<+PT9‚3%I"!iÔ.¸4Ÿ³“ï lÚ°é&ÐÔ0Áèû>333ìÙ³‡,ÝæôŸ°*CJ,RÜ×ÃüÂ9õ)žÑâ©El«F&—áRéñx¿–Ölç…eƒ}©v^xMjë Û°íPyt´p(øM\×dSáŽÏü…÷N}ÄÎ5ûÂdù miaÛ"+˜ª•8qùu¾6tÀu½Hgwƒ à ps7qÖ|•ù»ØXÜF_×zÌë|aÓ4¼°’¤êLóßÒ(·®ÛK>¾Ó2®S"¡ç¬AsIðÚÙçY­mcûÚíhR"ÔÊÆ MnGÖÛ@Õ+Ñ—í§·{€Þä@ÞîHP½ÍH7Úyá3•÷ø˶ŽöñïIEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/animatedtiles/images/Time-For-Lunch-2.jpg0000644000076500000240000007732712536324426027212 0ustar philstaff00000000000000ÿØÿàJFIFÿÛC    ÿÛC   ÿþTime for LunchÿÀ"ÿÄÿÄD!1AQa"2qB‘#R¡±ÁÑbá3rð$C‚’ñSs¢%45Tc“£ÿÄÿÄ!!1AQ"2aqBÿÚ ?úsü<à¦#2g’̹ÅÍ¿Z±2ʪ^Πz[ÕŸ#²Éö˜n¨ GPt?:½‚Å&)C G©:ûWÊ—ãÕ®†H¦‹5•OéDn þ¦ªNòa„°åòHn›ƒË…»jPå¿ZtXo— © µ“a®æ€šæóDÈ[-ý'¡¨ Iر¦!Ô0;ƒ­é~s™J™-æ ïÐÐ}ækôúTÃH"•ð¹òåo!ØQºFÇϾ÷ScYøìßk|Û“z»‡¸ÂG˜ÜH=©”ŸDBßsÌüè‰RA©VKûS ÜÎ*ÚŠËâÃÇJŠlm½hÆ 8QÌÚ²¸Œ‚L|®·±ntrðÀìo{“΋ '…ˆI«^ö«X<"•æ—ô¨6°êj1x”¾ó.U·Íg)Ö“2º‡®¨¥;zž•ÃqÞð¦vZÄsSÖ´½:ƒpÚ†ërë8°ôïR¡lC*°;ÜW|¾”$÷ZÔB£Ëkÿ5$©P À ©W'ºiD¤üÅZ…÷6µTã™./ÎÖý¨“¥}T¸zìÊ~!Kø‡j%½ ¹ì;nkšŠÔ,9Ô€G1½0æÀÊí›:[λ­ÿja¨U YÙdR¦õî5äBÆE`Ê-˜XïÞ´%[MmX\->&`mslÇMyVü‹“crX‘tfÜö£‡p_UŸCa©íCko¹«$Ku¥i@Q ebt7R7SÔW®"õ-I¶ík~5¨åCâÄPþ#•+…ÔÜz% B(b,X jCe/¨Š@Y-Èþ•š<­`¬ì>¤™5x Æâªqd“0'Ã}FºEQÁ·»b,Ht¬ðÙI…ŽŽ|½gƒF­j%jƹ× ƒqÊ«á±K"e“Ö«ñz1 ,Cém­ë¡ÇLz5ºV8,·°§eþ´ž?(lLh-q×™½E4§sezÖ?úkâãš„‰BMŸCBX^××¥ n•¦A&&1†?|Q¦ç­#†áŒƒÆ•ˆØ-®ZƒŠ©xÀ‹Jon•g/¬JЪ‹3ÿŸom|\gUÖBÚŸ¥™çP¦ñE¾»µŒZ!n­ñq©7ö­ë#Hš1÷ë ÐÑx®ƒþ",£ñ¦Ôµ•vÔ{Šb¸êºò<êFsÐ܈çR€­Ð\v_â” QhæU^Kk•ö4Hl@²‹›S¨ÛÉËIü,£-b>I”ÄݵSBZº@%‰£m¬H=-V£ED21º}9Õæ—2…QÑTªÔfØxÔù`EpȦé!:\QPbÃ(`ó³huÚõTHþ>C+e$©?•]ŒýêûŠÌœÚWÿQ¢ÓÃmö“˜\:u¥cpF;â0¬Jƒ|¼Ö»†¹Å_Ä2Ÿ¥^…ò½ïÔÌî5U¡â¢x8éÈyïËâ§`Ó&ù•ƒ½î§AaýëüIÃŒ1P©1É|Ö7±®àØ™áá¶ŠB¡$¶R47×ZÌåeʳ®›nöÑlhNkù¯z œKûqLK|8ì¯ÔÓCpZ+XÕ|&'‘<Í©µ»ï}y_SZœ pð™šùÜYTéaÖö§È¶ås¢ÃaíP pljÛ¥M»7Ò¶ÊÃF*5ÙÀ“Öƒ„ãA†fazXÖˆ;‚ ˜Y®9VF; Øi²Úè}'¨¬Þ®Æ§}5H°¸ óàŠëZ±ð8©°Àqnhû»ø,EI:å;U9A‹U#qÛ_÷þùPÅ.` S)ìt4D2î'ZÐH6¬þ8o_þ5ý*úÌÜšÍâ²,¸Ó“P (=mG/ õ„¨^½ÝÉ?/üÓ± žB‡ô¶k[ŸJ_Bœ><Äù®ÀvÓø¦²334LÝlAØÖ§š X{^Eq”E™|®¼ÔÔX)-r<º_™¢a¨SÏZƒP-‡¿Öµß^ƘûÔef˘¨¾QΣx¦âbF–1fêÑ«$h ±r€àéÊ×éÒƒ $òD%Ï w$»Öº|!ðLðäfk©úßJ?ì-¬„ncÚ‚³¸W•0‚,Jg¾C}ÀÞ´ãÉ,bH[:‘ô˾ 0 ÔÆhÇÄ[º­ÇÖ ¨° ‚Ç­@¢µ1–„‹Th]XŒlmÌ•ͦ¦‡)'6 Þõ)PÇ!FÝM¨AéW±‰Ô\YÆÇ¯j¢À«ab7¬YJM>,Iô˨ÚãqUo]z4§È>жÔxj^Õs‡8T@ófý«3Š»®,JBù%õt½hðù#n†I Ç—Zeÿ*>Ö塨%®Þ–Ïn¿J(ˆò†´ƒò¹ý…h%Õdpó)'áK裥`(°»ë]zºC,m¥r0Ê)lmïʸi¥ZމZ’ µ)eZŒ05]M5LŸ\@$¦àzõÿëüÐ*B‹goH<»Ô‚Hÿw©››ÔÞ„=öÖ ½·#ëR1H[±6 '¥c;‹ë{žÕ.\&PHi?!YnÁ˜ïÐVyV¸ÁàdðñhÌ5 4ëZ9|å]mYN2ÛB5½jÂVXó©õ‹6ºŽ¿üêâhdOBÅÀ†Ù#Ö:Ч/ ð0åpe¥BÙšþ¡§JºÇ1éÒܪ#,²zcM’†;£§­}ŨI°½ox®HV9¹ù…ÿZ\˜LÚ˜Œmøþv¬þ?‡Y8IdÃâ˸7µlañ˜LBfà·0û|RŸ†Lƒ§þ)›Èuƒ…F±°Û3©º­‰ùU¶ƒ /Ùão(Õµ;Q/™HæÞP}Í¿š— ¹#jÜ’3´*°+0Ñ)/M¹f$›“KÌÄŽ[S)‰婱®æk˜ÙIí¥)Ö¨:®VPÃ{z›-¶¿s\»‘ÈTƒh¶ð"?ôÔ°Ì|øHOý4À¶¨"õbU“‡á_ºÍ[­Çö dâ8M˜¼co‰MZ7 ™E:76 ¤‹Ñ‘k*Lv%¥Õ/¾U±ªÊ k I5¹,0Kþd"ýWCA‡Âaá“Ä\ÎÃ`ÀXQù§N*U°UÝ+€©“s¹£QjØ Øxç±+"‹Sb{¢ÑI²LÌYEÃm˜u÷­ 4©uWÈCÖ±èñUã¢VKXhª7£&7“ÛQH“ÃÐè}ôµfñ§TœT) ÜU‡ÂÎ/xɘڗá=ý$w"³”éN¡sF¢Ày×NGÎ­à˜® ,mæoÚ«aá—Š’e[F«‘o 5qc±ƒ{^ç½1Rx†b˜ÀYF¶GþõƒÃ‹ŸòÔ^q×µlù‚¿"k'‡+Œ™K¾cô½èåýSø×9Õ‚£¶òÛAjZq)Keyl:Òp8”|…›,€dCÖü¿Z»áÙF¹”m“QzÔì*Èrék“µ N¬jÁ…ïr~Êh ›G¸£ï¹îv¨+M"Ž´"ŠÒç„L&Î=-×µ<Ú× a¥ùÔef:²9V¸#{ГW8¢fŒL7Výª‹ çzn TK°Èi_áY¾é¡aågÊ;\QÆÁ#šFô¤džõG¶HÕ”ù¼qjÏ–&ã‚Ì'Ã7rh¦Sã²ñc/Š–!•;žfº23¿Z‚u°ÿÅ ë—Fmw©'Ú»upÞ¤*j9TÓÐÓdBö¹(êNÔi€ÚM®"Ðwcü Rcû»‚ c»nMH$ê~@Ѓzš‰qR,w²¨Þ„U.æÊ9Õ<^ ÌÖÈ6[ƒ‰“Æ”¹ !’Íu6£5ŠÃe_̵g +Ã,em¬NMÆõ]VîjI·½LrÄb‚jEºD©~<\ëVCÛQOP^6Wd b1àÛÚµ9 ilÚéqaD—¤añ€Œ³ëý|þud¨ÜZÄhF—­³\·CcM9Ôå=Ê‚i,rÛ˜©Wa©SPÃs±&à"[7¤|Í¿6?AJt’Hñ=ê bÖŽu, Ë7%A5#z³Ð-·ÕÊ„m\ ×ޔ⤛–¨(Û*o­Ô ÉéRr¨UµŠs;*)±µø¨ fMe‘wQ SПڳ±É4…ÝÒçR@ùÜUn&ÎB@+fb¦ôŒwˆŒ²êsZƒ„C|3³´…XùG§ô§Ë‡qåò‘ª¶¤SìJ‹Ž!rËͽk§åVpç4!…òErDÂ-æ,u¦@¹pÊ£“5½¯TÔáDë‚Ñ(&öÐmzÒH[ ÔŽÀžûWQÈ_©ÔÔîieÚþþÕ×ûÄ]Žbl{ïGk (^ædQºÜµ¹*H¨"'õÊ ¡ä~¢¤ é8ìIE1+çC®Õenm}ë9"•fð;nGZÍÿ†²áT5îMÍ눣¬­e¸na†Õ:Þ¢Vì@°¶æ“‰Âý¤ñSMFŽ:´ÂÀ 2¶a}N´bbH µî§@ÀZýMD^=­}9)5¾X“r梤;M—¸~•ŸÁÖ<à Ï(¿"H¦añóÅåsâ%­•kÈ$-{†ÆßZÌâð*–4 1³†³eÃ.®¯Èž—»P0¤ð–' $Ô÷6§ÞÙ¤¾Ž¿3BæôÆÔîiF£ Çé‚=ØVs\è5&®qw±HGÂ.Þæ©b§L+Êë÷Km»×>W¶¢¯›Â…ph×kÞPç£ÃDb–”]£!»’ g`•çÆx²áNvï[\1•ñùßQ-oÄüÏËjç;ºjÓÈq9²ˆÆîçaRÌ,E” ҂圹çµA5×Fµ…Íp:w&€ê@<µ5 Õ« ¦ô»ÔƒV¬0›Ð\ÇÈmH66ó>¦£O„bcw‰:ï~t1œÄ[JY¦æö þ‘Τ`4Y•¼†Ê?:¶·6\ž•K?‹-—оšmÄ|­á9ò6ÝUÓ™.\71Ò­Å[2Ü0úÑ ZÕS )š1ó ¶§qV†€]°CµM©c²‹Ô V9˜aì¢á˜Ú l žîäßµ¶B¨á§–/*ê§á;Vƒ`vÓP)šàju 7µ¯­…¯¹¤ Ó¬³[ÊoÎOsDF›Ÿ­11ñ ÐIáέ«²¡¾¶= ]À`ŠÉˆ\‰½¹µ\̹\“ÖúÛÚŠ$4nÁš3kõ¨œaÑF×” (r§ ([[kF+qšHÕ‹‘`5=«‘m‹XÚöé}iŒ· §buî¿ëjæu¤ãÈzÚ¤ :W8òÛ®‚Œz’Þˆ T×TœÄ*–;(¹¨Ae×ÔucÔÔMþKÜ\e5&àÛ¦õ$Ôj½ê&¤ã½q-Èþu9M.PÒDR;ws·°ëRUâR£2„7e݇éD˜ÔÊ£çnt©0S/¤ðÔpôæøA65Ïn•µgqu€Ë;Øš 阤Ÿvß…¹ÓŽ¦æ¹€kfEkmqµiE¦Ÿ‘©)ngò©xãe9£]·ÄPÄÙàFÎ=>kšR ëê4¹!W†D7bÊH¿Zj²5ÂH¬Wp*P ã¾”? 9qL¦Þd#^µfàɦ¨ÈL8›‹‚qz¾¹XgŒÝH½ëœ4R˜„F‘ý+¯¿js‹Öoœ;xièSõïE¹!OŒÌúÜ–>ÃZÁâ‰1x²ç[›(è9 ÛðÆÀ©•R‹‡MƒfÄL— mäOZãÊ[‚¡ÃDª±ƒ$–ëÈU¾ I>—)[ß¾¿T)Š6õJs°ç”mùÕ®$-:DãÄÊ ·%7Úž>ª²ÀP#Þ„ï@h ± ž6:8ÖÔc#,¨IØf­‹‹é{š‘ô¢de*mÖ£B*(kR§­D¦(UZ\Þm”oE±Ïq`G#Π‘nõÄ56íSµHÚ´Tˆˆ]Yü‹îi®næÛ@ÆNª…€¿;ïC#¬Qø¯AÖ¤_—"x*um[øª`šçfw.Æä›“R9VkC§•:Q ë)P°`×µÀ¦Øt¨u¸"ûÓˆïù!=Ƶ$¬ V³J ɬ×\LKHŒÛw«˜Nç•rjZß*ëõç½MêNQ”E^µ"º».›Ÿ­!1¹ICÇ:Ò„‰"Κ‹íÌVQ66:S ‘ÑËFÄZ™UKT¡ÇËk›óIq’b½ÅAÄË#XÐåVµœXÂa…¼V rn¨>—§±%žÇÚ³VydFW‘‰‰²“×¥@×[Ñ,XÔúSÿP®`AÚ³6 ä´7„íOébúÓÔ¸Ø:]›ò¦.Õ  Þ iÄÔ.Æ1qò¢]ª ±â3_p,¾Õ¤± RI°“GšÅHaÔN%KaÊßBË­HÃÆe,šßF¥‘æ.÷C¦Àö¾ÿïµE¶Úõç]¦öÞŠ”CfÔžôCz4JtÖ¤šê는éT²^UÀ±hõÿX¡,zÔfÖ„˜û ¨³ ylÝö_′1ß-ë³nß.Õ!›­ßµ¬¿ïÞô.æþ`-Öõ×½ yÆP}ÏJ’o­¨ûDrX\ÝO}(ÀXr¨'þ*4褚ªuª@£ËPÂÆ¤\ÈÍU`¹´$ô¤Ç‡…7\ç«mV Ò‹ ^ICĪ ¬Ë{\Q3 Àt'kÚÇæ*I¨` •aph*|Ofc4cÍo2ÛSY*óá¥%KFÛÒ·F`Æ'`@CmûRx”i6Ý–ïºØzJÇ.;Ü2¨ËŽW‡Á¸IØuÜ58*lEˆåYø©åi ³_—*½‡‚Yó)ÈÝúW×é¼Áa 2½ÎŠ75|¹À »e#JåŒCŒo»w4'zÞc,ßñÏ:⢔EP§¨ö¦p"‚9¡Œ¡os»ïW'ÆÂË ®JÝ}ÅeðyD8ÐiC¯ZÅ’rÓñ¢HÊT‹©ÐŠPƒ ?äŸûÍ6E*ÅHµB °kUˆû˜ °³&RR×1˜r.Êêz A¡Å»Ï)Ú)ש4qa"Dûà] lïIYÙñx¿(¶m…öÙ`l2‰’KØØéj`ÃEqá3ÆÀèw®ÇDÞ_~‹` £>£¡”M“.S{›Ú¨à8¦3aV67RÆÄšbñ4Ìsa}D±½3”þ¬ZšË‡3’W ƒûULd­$×ak§J©ãM‰O j®ªçÕß^t/ÅÉÃÖj§¸¬ÞpÉV*AåIÀq‰Ä$2á£Í‹.–ùSòŸ¢‚Mí¥2ËâѨ§Áƒ3[úV­EvˆõÓ8QhŒÂàm¹«†öL¦ÄètÛ¥gb¢Åb/á6t"éo•6bÕì<±Jó ¡KÇÛÚ¨ÆÍ˜©Ü³âiÅ•¢m\U]GæK“ÖŠ Å¨Zšˆ´µíR7¶• hYذØ)de››×È ˆƒ©óoÒŒj47¥®Ã©¢EÏm¤u=C .{… ©'¥p`àJÄ©"È¿„u÷5'"øQå$f&ì{×f<‡Ö¬C„wPÆÈ§›niÉ„F¥˜ý)ʵHøOʹX³E´«²aRÄÆÄÈÕ-Lš‚2èoV%®)V1›oz½ºëXùØ?lw­¥±€Ð€E«\E1ͪ¹—.=¦±+š×·*µ¨w¡‰ŠÀ—PW(þõ°1";ª#¿˜ö_ÖŒkóª9¾Ï‹ÎÁ{ÕÖ`  )”%Zê=¨®m½-v·M(¤&ˆjЖµHLE 4,ÿ* ãk­pË÷®,)šÃZäì>´iÁÊÍu­êskK]ú“ΈT†O—µõ4Ô.Ü­BŠXX Þ€,ÚÅ×b߆™§ ‰s»rX$`,ž¹?Jˆ°Œ‹æ8½ì÷¦Æ|»›Šd»Úï¾Ôgj\„ <ÇK\U@I¸¸Ð3]ŠÚß:ée¹²}kˆ ,>fƒA#…[Ô»YIéUîÎ÷5›In¤X‹ß¡ªxì@f@›/«ß[S÷ƒÞ²± |dëq–ù”t¾õžW£Üjö[#¯qEþ!áÈ~í,:[^Ÿ¸|"@uôúVV Z a•J³ºò½p³9kŠ`D‡6ô£½UÁãŠr·ÑŽëWH AØŽuÓuƒ•ƒUŰl’6"x˜ßO„Ö‹)Er»sÞüè³T¬ü9rˆ±7*6~b­#ÀÖ)‰Œß]Mˆ¨Äa0³ú”ÄÝPh~UVNo÷XˆÛ³yhÿ(W×Ì Y¢·6 )b°HNiËÉSQ~‹R ‹2ßR¦õWx–Pa~ïáŨ¼¬ø¤]ÄqW#&1#VݾµQÝ„¹çİÌKu4˜±,Ii𑌻å&ÿAT1ÕØ“­¬bìÍÖÜ©2œÅpèAg Ém@묅“eq”v©J˜¹ÒF*¾]Ù†ÿ*Yfsv7¥ ÁXhB¤P×|'Ú¤3øyžBÐØh(—j`¢çPEÏzê•>`§Òª²â $³¬v9ÄÕ¡‡Ã¤Å”!åÉj¼}}¨%cb¹hð³O‰>u@£˜µ3ªªËH¤Ü±×™ĹZQVg MÀüª|!š÷°éK&Õ|r‚L€m¯zphüêUA>}o¡ªLñzÒám› Â÷(tö¬é0옖A|¼µµéØÐâu+ ¸õZ­PÅA=Åc-ÐÛñÜ}ZP|­k_SE$; ÅIìEtd®'Ò6Roªüêç(Ü ùP ³H÷Ž=&4Nu&¤m\€ê’X–½ÉûPµíëo­@>QÜWlO¨ÞÕ$‚ºõ hH ¥uê*T\Ú„%7ÌJá€Eå"ö; êk•Ô“ï <°ùÖ\ÎÏ3³³1,zš­È¢Ëbñ2‹>%²þ×-è°¸‰b#Ãb7·Z«YÁFecQ«QÞšÝ'îúƒjM/}N¦œ@Øl…:mÒ»°[ùT›l/KhÁõjzÓ$èNAÓZ*!¢PAQ¨ë@ù·æ¥=f˜S‚}vöÓÒ˜ÖiFbý+7Š/ƒ/Žo¸Ry2šÐªÜMZTx%Ò×$u¬_ P“F mC<)ŒŒ$¡ƒ)òÈ£QïDâdC,3‹U'N"äÜHGôŸâ¹ÖˆÄFŠâbñPh$ýiø>'p³º±a|¿:”ÁâÚ/¾%Tò`I4±Ã°ï D'˜‘Š[õ¬÷<=5°Æ)0ªÑâRK^æúלäOû«Ïbpøœ ™Öè/£+ÜÊŠ>-6Ø€³/2VÍõ§÷>Œn¿‡køÑéýT™$…uiGý:Õ($Ãb…°ò{_Ã}?:”©³ MåÒŦņè®Ç¾‚‚n!$©á•Ê„XŒÄþµPÔV?T†L4¤ýÖ:êÎJÚ—4Ô\Êé2 ö Ž÷§W+`TØÑë5"„Èdà „ÑDžÝ VÄÇ—cAìÖ¶q‹•ŸWè+Qpøh᪋ @ÕM†­yÜ&à .$XU9Ÿz¾³ÄŒ©;dYÐYÀØ‚wúÐcðÒáæ´‡0mCþ*V+ø˜bX™<€ß3XÑç‹Ö¦ æp弋f ºÞ®f;*‡v¿›(/ÌÖ? 3Yô†™«£J„‘…¹e “ì+¬J0³ÚÛÜT [“(î×¹¹7üéÙïå…5äòXÔHÙfÃN[ƒ@·°¥KqqJÀ}¨·— »uaz¿Ãš5•DS0½Žßù¨áêÎÅßÒ¼†—5fx£œZT¹ê45©/¢ÐÊ«ˆ!3^4ÕÏâ=è2l¸!H ²¯]f:aΖQ£çDHÖ©8TªÜô\ž‚ˆ!"öÓ©ªÜG‘Daƒ;‹1Ò)êz™â9Þ\Do ª:Z‘ñrá¥õ–Fõ¯:,YÏ… c÷l×Jª¾«t®6÷­ãÙBâX‹·íÊ¢dÂc&Ú‚ f‡±6€å±VäyÖ©ìnƽìa+eWE]«˜Þ¢º”êḮ®©=Ú¡ˆ¢C–ç‘Þ–\ocn´j5ê/C{í­p¡s@\ʹ"F*M™ùZ‹B¬¤0"¦Ž"ÈÛ`½êIÇbW U>r,‹Ðu¬äkëIžWšc#›“MHäE ÈÀu"±úÚÖa©½np|?ˆãïn°á¶q}¯­zSê,-ô®œ'lò0* JT‘]Y)Åúi¬)l9QQGz\ƒ©ÜŠ)߉¤<¶÷¬¤¼Ø‘œÌuµc•1y×KÝmþ¡I%NÇ7úÿ=¨ÊF†é-¹Ú…‰;’h !ïêŽÞfþ(H±7yÜûQ1 cY¨³5ü"O;µB¼qéäöÔ± &‚#;oâ=ýÍ’[¾ùN?*ò·µEÊê!Š6^a–©q ž&üHÜw«zÛ­@$‹‚:Qd©„Ë$2¶¸"´p‰ƒ+d]—ÖßJ³‰†@4vañ-ªrðÛ11b<ƒ ~uÏóeka͆Ã)³@àŽ®iX˜p‘.b_a{Ôˆø¼c,rô°kPË>5|˜Œ}9-¿Jzþa£ÂKa»Ý­Nc°ÆºÚàkUcâD26–þ  ¨ÏÁ^ù'úж!Ä 3ÎE™Øý iRŠÌÀ I ì&cä“+ê·alÝ;^ªbø”…Z(¢ƒ¡ëFȅƦ‚@‡1ŒœÍËÚ©(¡Z5:W=ÞÚÄ“jäb®MˆØ×ŽuDÝÃMöœLOœy_ß­šÎฅŽF†V´r úF´Š•kíÆìf¥ŸÃ…忣OzΓs©5wÿíò©k?R¶Þ®J,FªPëš1ÿýñúÑ1,×cDáËùÅKZÕ9hAå¥M;š ½h‚Ó‹B¢ŠÔ@WH^Á®\*Ûâ$Ó:Økm/Ö‡sa²Þåݨå UÜ쿹­²«„\D¥›ÆePu7çV‚¸øŒ«Îú0þh ‡Â„%îI»{ѪڙS{n-b=èq2džŒ3‚ÌÞ•`ÚáÈÛF=ðj—ShM´Î«ÔJ8¼D³¹,H^J6Vk†‘¦¶ô2ŒÉ¦à×+Ûc+š9|Èl+21jÖä„$™¯3jÍ™2Lëш¬ò‰w€7ßÉþâ~cQ[8,F‚)-o„ô¯=äð±ÑIm˜VÌÊÊŽFºp½ Ò æ¢³âšXý@éNÙó"7ÊÕÓõŪƒµWÝu…~D×bi÷G¿š­‹ }è )ñ„è°¯ÔšSã¤Aí–‡È;ýjB­öªŸl—ñ¯ÐQ.2Aº£j6,[cF‘´T÷¬ŒL­,Í-¯}Ðs»Öšb ‘9(u±éY“Äb­î§ÒzÖy±ÂpË,¦VóFšûž•«Ÿ0*à2Ÿ„íY<;ÐÈÀeË&àìOzÕK2_IüJ×QÇAàJ ÿ–ú¯nÕ±€˜OƒG¾ª2µRÇ(lßá!…ø~R'xNηâµ:¢øØµ±¦ƒ¥WúÓ´®¬é/½0›Ð¶ºT•ñh¤hYZQE@B"¨ì*Ì€˜Ø íqß-À:Ž¢±aUij[iVu¤È¤Vi%¨Ja·„[hhÎõ *2€ïC¥èˆÒ„ÔPhk‰¨½“BÛWr¨k,̪£™4 /µHiYdp;5Fh÷Ð{Ñ2;uJ“¼W}ÔÚ“$xi.$ÃGîƒ)£aÎ…¨¦ØL#(YüÁùP® uRòÊ>Úý4ëPʤ}ã ïÖ³™H…¡…#åé¹£Î$eŽ7 Ú—#&úó÷©C­†õ §Åp‰Y¡-á¹7á=*­N5*Ç…`À»6gåYC87¾«Ÿ94Ã-¥ZÃq LJ0tÁ\\ ¦Ì.2Þã­:_)¢t½kÅŠ‡‡’0ž…}7ÐûUXãfl€kúR8ya‰‰Ô¸ÖµñP ™Öìª|è>=4Ý«¤ÿ(<^l­ä‘§zTØ |еÿ¤ïVˆ-–Æäw©·=/]q†k##e`AƒQjÒXüès[F¶ÕŸ0hÉR<ÃKVlj"¤ ËÞç_z`d)Ìu£Z‘˜gh˜2›f`¿ïåZ>hÅÁ×76îk2Ç8geô 7ש«X ôð¤:|$ò­q¢¬€Hé]bZ;[C][#]T‹F")愸ê×±'¥?(ÞÕ êšíEL KGøiIˆþ+”‡…d‹èGB+_ˆašqâÁþgÄ/¿qTW+LÆG‹Û˜þGé\ï­JÒ†!Q´Eˆë­`q¨ÀÅxª4p ÷µz S*àÎ]²„QYük ÂK‚dŒå'­ôþ)ç6Ä­Õ£â@¸¬G_.pAøO1Z| “؆M>•Ž>ãUaEȤ©Ë} ºÐHÅ0îãp,>u!(ã‘ÓlßÔ l:¹´,2±*E­aÊõ6×Z Çv(6ÐS lÙBëïC2†“1¿—kTAI´l ·ÔWeéJÁá¤È%IBéÞ¬Dþ `Ë–Dõ/ïDÿ¨ u$,EÅ•ZQgf Ì-¨Ñà±ráŸ,we¸Ï|^Ý 24RMÅ\ž>.!)[›//z¤þ-Qâ`>XcŒ'ïê×6)gCxÐ^ÿµJpœ7ÚÍ;_.ç­\Š5‰m—Ô’=^âµ%Ý¢çÅ…$S¸¤#f!m•íéëÜu£ c©µt`Êë× V›ÑJÈñmˆ;Õn%›ëBâÞeæTsöïA‡ÄG0°ò·á<èókVê)€oMÈ;HÚù—çV%º,jHøÐ~¢¡ÊHe;΋ T‘-µ-”òµZu”ÉX°«2‘È|æÒjÃ-¨mYJ¹íBåm½±•k[Jà¶4C°j¸¸ÐQÊ—:iKTe;ÜVjIÛ_Þ†P¢vr éqDv®Ð‚­ª°± È[5œfÁÖ€øj§×ñD—Ïྫྷ¢êߌT®Œ—+$©ž2HæÚ„­tQÄM—Eu  õ$tcB'+@ꈀ·…Å1b`åT4’6ïÌûv© <²Pî Tã͇…0¸|YYsEÍ®ÒÔ‘ˆ–óºÆ½ÍïUfâI× ¤›zß—µPˆ±ò¬ÌãðÌtocÊ­á8x•“4¬K{Vvß ²æ‘¯bÎN¼Í^ÃpÉ™3JË#LÚ“ò«øhâÃŒ˜h€nnÚ·ö®yaV9å$Ê®k|éœ'Ѫ‘ð`äŒKÈuª3ŽF¬r’/Ö·ðÍQˆ xÒìIÚ±xÒ±Ö×Þž\dñJw„Ë }ùž· Œ©Õ¤×µ©8\2á0‹õ¶²iùUÄù”‹‘bféìk|xäÆmB’T>f%›µÿØ©“Ï–UR£ôµ6´ t¨&!¶aén††õ Ò™ì ±qROüK‚¶úÕ® ƒÃ8ƒ²8ëXñNÿk8†BU®šZ±zj.Š5¡L®™£`ËúQŽ”¦† o<¬FuwÚÎÌr‡cZL<Úlu¹Y©¨"¤m\iE•*n¿Oâ¦åÓ)sfØô=hˆ e Ý4=:Ô•ãIeÄ*J¾UbI¶úÔˆÔ¶9GÂö=ªÌW¸®Æ(|ˆËq¡¬çI‚øIdí 9Çޠݺ0ïV°‘x5Œ›³œçö¦f!]-¥«¬)ºÿ¤ÿ³X“׌ŒlZý*£bLp ÜÛ*‘ïVtÌ ÚÕ.°¼ªÍb9Õ@—;F¬ÁAeÞ ‚9¯½¨ÿ.T©N ÷5(]hÂÆ‚ú×Jæ8ÆãAÚõ'F-‡AÌ\~t«ø«ˆŒÝyר¦@ðñ%-§Zµ†Â(#Æ$–Ó(6µêÍJnA”ÝX\PÕü:áž ‚8ƒGqf<¯JÄÇ"ðÈ¥¿ÖœZ«MÃÊb{î§B:Òµ‚,jw4œFñ©àìhïT¸{³FPI$Ò­ŠÜ¬˜2ºåqqùŽâ—,²Å IÉ’6Õ_˜÷¢Zb>Srt:P£(+æõ؈×õ ìj¾,ø ³Är‚l@ôšn_KeÊ˽¹Š·å H®ÒOUô«âV[.#ÊÇfø[çÖ•,F,@ÄGr·ó-ïjk2cb×çT˜…ra·QIälË¢ÈlG,ÝjV$VÌ…“ý&Ô¼DMLÒ_•õ]Cô/B _P6Ù»Ô’ ß­Þ…Þ…¨Aa¥%Æ´æ4¦5”L‚–iÎ9RØkS@aBE¡¬¢çBñfSi"ÕOíR¹ee]/½¹5Ñ®9RžRc&@† EÓ˜¬9 œÊA×c{20¾yÔçô¨X.6éB,)ÕOño'ÊcþÕ|íJâ1x¼=ö͘Üè³¥¬þ ËŽQ ¸›V³¿Š2ÉéømðûVg6Ç‚ ý*ú™]ÈcȆş™£‡ŠVvg™Z?éõ7cMWÓ.UÉøm¥ ©c”€¯¾Pn¸5Úƒb-[q)FØTVšàò*u¥ÿ‡â ˆi˜]bó<©œcÌrXéòºŸâŸÿ%¿÷GéGÿGâð9ï~t؈驤GGˆ|˜)›c–À÷5¶¥@TÊŠ’š.¹`a`zÔ…z‘@ è…IÓXàæV:eÿJ¢€ÅFÊ/Þ®bÎ\ÿ‰’Ê;Õ$Ĭ̪Ê,à›Z«é‰Ê«‹–Ê^ù€ØÓNô™Ñæd1°DMœóîˆC…”z„‹±÷¢+O Ù°ÈÚmcY{Å_áÌ—š›Ö¸ú)ä×Q][®5º¤’3DëÕH©"º/Xt©2i‹¨÷M½÷¨˜e‘—¡" ¸Fˆ§ç\˘é`7®ô‹W5Õ…Å·¡&õ$1®Ð+3*‹š“PPÀ_ø¨‚ᕲ¡`yçWpøLè|mü6ÔÐC…„UT!ò[O•[ÃÈï%[<|úŠdþ‹] qa€H—,o±&å[ß½¥®F Ô’,AqÖ¢Ä(U?ßN—Þ¶¸ørb,·!ÅÅY°Ò«²#QqWÒ9<VK€B*ëj1{e6 îÕœ:ËÅâÄñ92 ù ê"xåÆNaº°ÔSø¸\,°ÏÝBÊ«zÍw“އR­n©¬[”ÅüÄ©à›iW£ñ3›ÜõGY]ZPb hù|«QǘA[èEoˆ¡º¥¶àŠŠåõzÐ(,¥pË¡½Øµ31®XÃ+É5S 7‡q)#5Á5pØèuö4Oêr Žÿ­‰ ÃúäþÔnÇ3• tf¥ù@ ÝШXÐÈY˜*}c÷ÎlÁØõ©!½T'zæ:{б6ÓqYN4-D5P½ÇzÚˆï@ô š¢¡jš GBEÕÄ¥IÐW Ý…  ÔTIÖÖ©bFëô£X™—5¬¶õH¥`Õ†X°’»‘æRª3JÄb Ã|BWäéõª8©çÅ8o¯•@Ò³yaÁðxÙñzrF¹é¥h™!dµŠÉ¯{íC€ápÅZÞ$ž¡ÐSˆb3¢æ`,Ëø‡ò)ã2+CåeÈâë˜ö©€;"cšHšÚnE(ʉælàwKRɉDZRcÎnH; µbß* EvÊêI#ªÚÆÿ-~U_N#™°ò$š{Un ‰ƒÎy³Mcq¼F' Å¥‚YbCtåÊŽ]v§ñ¼dËpšüÆÔgXÕ\–V{›t_Ú«®5%Ž'’6f–0À‚/Ó_¥XRàuÈXeU棽t–VRº ëÛm¹ŠYk0ˆ©'CR×ڊáS3›/z«,¢0ÚìF‹üÕwšIH2F€ €£b晥’ãE”$†>uV=Å,+ѤE®u Æ0O~¢ÞôW€æjŸÄ#H°©9WŸ"j·¥`røhÝÉš»Â[ï™ õ.ÝMdð·òÚôØ!ieeE²ß§3û}*“bçÑDJ´ jÙáÑxXQ«Kõ§tQ€ª¡YWjí r/ÖÆ¤‚7PI¦+ {‘]ŽÔ5&Ö$›.OJ£‰âE^Ð"e “E²%Ú᩵Váøß´J!•P3zYEµéj²(.M‚‚oT²¥4|DAKXõ“kb4Ü€Y¹š”9™ËZÅIkí@¯âC‚Ç2ënÚV>ëFC¤«î+FB°â€Õc’àô¨`T>25apZ¯âTɇqñ0Òµ<l6<«…µc²‹š§.a•V;V曊´*Å•º µ½éÐðÆ`f•Ê—$j¶>[‚Ê5¾õÎA I_je”³Qo/:±Ä‹)›ëA‰·¨is­DLrÛ) s!^Æ„¹Ñv8Ø’Eí}h&Wb­ZDг•T‚hI¥}­ *ð°kì¦Ä‡ñ8îÈ@C$‹µÁRÿÍ RvÖ…ñtÿ˜XŽ@h~uJXñÆa¦m@QU§¤²0V³l£z#6B¥ ôÜÜ7Ϋ TXXŽp^VåÖ¹8„3Dé$E4&àÜ Î¬<‹ƒA ¡€Ikè““ 6 î;kI€;(¹ªØ|SɉÉ'¡Í€ü5eò´N¤Ø2‘~•™.xN„P:Vyi QÜár.E©1ã"hÃJÍœ  é°I,ªcŽ8ú¶¥©Ð |Ç „VP »X_[ É–Y$¾w-}îk[‰+¾“‡²8µ¤ëÞ²d1‰r+BÍ鹺Ÿsçé…¬-,bBIå[8,2ac<¼Ø½©|3I4Ì[(íO{G:xÌíTõ:šŸjåQmEû×Y»VÀ–G>]ZÜ›QUçˆA—(k­ÎE>0Uî ï¿óTJH¸À¤30mºÑL_XJÍ–÷ MÏ@+ƒã걂~U£Åx¶ ð¥ä‘¿ÌaÚªáchâ&b'Ô êŠk<²ô¢þ«cÎP2¤d.õdXïTxAÿ‰oþ6ý*à5®> 35ÎÃnô^UFvU·SE© u?­Vâ2Â% …ÞÜÍ7¤D®Ò9f7&¸T + M©€ÒAµNjt`±˜…”]ÜYGïT ‰’uA 7#AWÜùækù®2õ m(’F ”±ï­jÐˆÊ EM·n´ðu  D n¬'Ã]9[qZ b¹”ÝzÖ:Ó`•â7F#µjQEÓÛô¢ŠFš?‘¿#N"ÞÕ¸EèH¢]ªmz@-}ªt"³q1¥+Ë‘ëZ…t ‘DË ¸åÔVlÓ+/™íR…¯eÔš¸Ø8€¸w½ôÒQEè]ÞÍ:§ˆ…Ò‘õ`yü4Ì,N"%Ý•[e×§Ìd¾#˜ŽÂ†G$÷«[D–EùÞ—2}¥d’\Áu¿:,Ú\š%4¢ø«•ÀÌkV9Ú¶±éâàFéçŒký18BËŠ”Ckkˆœ°Ía¹ËùÖb#q[xáŸÄnª×¾úkùÕÇʯ¬²…à–0EÙ ¿_Ú‡™pqÌèiÑ0RXè¡MÉå¥ 7ʶ±¾Uxq¶6"ÖßzÒ¾SsËzÉC–E'‘¹­Ic›“kZâ*£Û Y9 fÕa±¤lC†&öQÎô´Í‘ªõE-sm~txšX\ßd6úÛÚŠæö¿~T3’$²µ”íØW (°ùÖ‚Xfõ}´© aCš¤ÔœçcÐа7½I`|£s¥°›{Ô€Y¯}ëm~µØ3\sQRY:ŽçaIŸ…E9ÞM´û²/ó¡*qÕfS¸“`9d¸”Š Ëæ-‰¿•,9𫉯™/¦DåfÔüë7*Çá3*ÈÖ*Zÿ:çygHc©™Ë¤‰+ò›Ðº´xi‹©“(¸µÉ£É ‘ C”ر½ÍA*º¬D±r[ézËHáâL<'pP›Ü¥ö5wÃÄaãñ•¬/kuª1¼m:››üéÿáéÆ0 <Íæˆ]n}B©üxÙ‘X‹PHéBžG"ã^´Ùƒf=)lõ®^|(|u”R¡›µX6°UU( H ÍÚ6¿È‹~õÎËFilôƒñ'I[Œ¸ ¿šC˜ŽÕ›,&`˜{úHwb==¯&'™ÛÌÆÞÕ«S1¾wveSùò®íO‚ #ˆ&—>fµu¯DA-s©4J-ï]pÆ÷Ó¥V®©!$ '¥Tãs[ ë†e3ÆŸxÚôÕg+A,š4’ý«7!B3чQ¿ìγÊü0ðÞÅÅ}§¶Fo('W5´ñE3ù°ër~ ·ˆ®1…=*ªl½«¦Lc¾Q*ˆÎì¢ÂŽ3ó3º­ø Ž'Ï`jãjÇ.×Ò—4Ʊ1‰áb^?ÂH­hÉ>äÚ²øÃ+qŠ›ŒÔrðñõ^õsÄ qx2 tØj*Í4æÑ¥ÇS°¬KgUœÐ³ËäËbÊúf'a~•Ìe!Ô‹ës·‰p·‘QÄÑ™2ee#G¶Âü©8aÄp©gÂFÑtÞþ×§nö«ü>lñø-k¯£¿jÎ…ÙËáߣ©µ“ „Œ†ü€{~¶­JšÀØ‚7–øl36l¬·7!N‡ø¤GİòXcÔ‡ó{Zí˜[^ííc¥«[Êsª“ÓKoQ˸¥.&½–@ì6¡—Y¼L÷Ü.õlG %"³ÆâèI︣’ha‹Ä•ìʦ­F±_Ÿj‹€oÏ©¬é¸«æû˜£Uþ¡rk“Š=‰oÒÞ_ÒÔ9W¥b¯˜;ŠW†ÈI¹¹o¸ªç‰†[}•ýf“ŠžLQPª£Òžô^Sâ’ª…,@ÜUœâä° wæ{÷¨ÂDÏ2øVw¾ƒ[ÜíZÏŽ4‰â5Üó5ž' )Sð°:cZ Ú˜Ëöœ¸c©ÊZ=y÷ùQxO‹AÃq_kôRÿ›Ý[› vjÄÁNpø””|'^â·J«Â³Å¬mÿ×±«Ø«£SK]ïD4­£•Æ\¬.╉†I-áÈΣáfÔ{W^¤†¡ƒÁ&L>R€È¾¡³TO†`3ÂìÖÔƒ¸¢F%û`Fõo æ%ÔtçZ“Uèù³OæEи­eee̬b³ç„6("yU…û 8âžÍ 09ü«|v3Wtµ ʪù ‹~ãj×PÀ~Gq]˜,·6@cÈŽGÞµ ¬v x^J­›r¼©"Ī`‘³g¸©âQ¢e½Ç*>ˆ"ñH³[^UŸ¥j&I#1¨éIo¨“FÞo2Ù\lmo‘íIÆI)O !eoˆ@©¡1€#z#ùò¤áoà¥ò\÷ó¦¡ ÄÑЈ£i¾–¬)3–;“zÖârx|9¶¼‡'ïUøT(°ý¡Ôce¿*Ï.î5:€Á`LŠ$•²-ô[jkDeT‹•–ÎI¹5é tÀÖÚß1C*‰.ÊÅ$üCŸ½m*TçR<“F;9OÈŠW…‡ü3þæ®»#¦W‡nUVH˜\ ,?1E‡I8llÂ/×Å4f4‘âº_kب Û4%» :!o´aX0$±»‚âȾ¡"p=EFSUÄÄÇá½™:pËŸ÷‹ÓSg‡ÿVñsÁ‚hÙdÌšªluµgÏ;ÊåÜÝHVUUpT2²j9ÜûÕv$–£•ªA†¢¥)N´kY&ùÕ„Œ¼‚0¹²m£6äž¶¤D`[Ò5>ի£)„‰Wï$bÉq¨oŒÑjÔááƒæ·œŽ½*CKÑ Öº0âJ¡¦i}ê(Ô‘ò«zT¦ .*J‘R!…‹ï!x™erµ;ŠŸ ÷ŠL¹¾±­,F ‹œÍ/‹ŸQ@c×Z˜°¼> °4¬ªVÓéXœl§J‹‹!°›„üE –ÔôÆð÷[ø²Æz2fý*Z<$‚σŒ\ïÔÔEÁàÄK›#(åo`ksô‰#˜†ee=t5m0øD^Yß«›‹†hŸ,‘am¤Ó¹ð6†3ʳ%pÇàÕ …¤²ó"²àÃK*fXäa{yV¬7 ’XŒRȉsqæÔ{ŠÖòùE¨1ð)- ’ò ß §GÀ·üæºUÃŒ‘®|B)_!°:Ú£ÿM`r¦"3a¾¢õKÉdl¡Y4R,ƒª›×_u"àî bœ6#ž?1æckýiñLDDG‰„2혋­?¯èƉ†®C§õiSž5\ª©b°ø–Ȳ€À^ͧçOXÙEÕ.:iŸñ ãE5!Ÿ6kÛçKÏjŒ÷«@ÚEŠG2B66µ¨#™{tÍéͳQ&vô‚~W¥bäH”´î;(:ß•E_üD÷X ÚÃ1÷4Ü<€``XäåïYSb¦“D«HA*ù´·ZÒ –EóÍÞ³.ÛNtfuüUÖú0¥ÝMíj|ÖêXÍjçc”ØÚ–I¨kå4£°éP\‚Þ–­qS˜Ü^¤™`Ž19¨ØûÕ‚«ãÕï «¡ —Þ³L•¦] +~T‚Ä› ½·5bE™@ÒûR›Ê¤¨PzŠŠ0  .{а\*:+tùÔûkPÛ[­E%Ë¢ÖçakÐâ#Y¡³å³\^¤ÚÝ…B’X7©& ±´ž$–QÌ Pœ[ö3M†‹õ«\RlÏ௥7#™ªe¬kÍèÀçb}cþ‘@Ì´ÜoDÀ6»D è¡i±H¤‹1³IóO<©•¤%¤S qS®—ùÓ¨º(—Sc¡¢ Nœê@µZ$ ”’±Ôs£ÊJ‚–ùÔ‹©¦éP¬A©‡O ©ñ7™¿j¥„ˆI‰DØ­h°»“Êõ¾0ZåwË–÷£ó¨l„Ý¡ˆ‘Ì­Hö®"õ¦P]í`ăJSz2-BÕ>! šŽÍÒ–Xç531¢%³<‚×í­t¦òhB F ÚÅcë³ê¤]š­N— ”ÜÁõŒØ•%pSÄo…Çm%i­s³P¹ÁÔ‚(é%_Œ¯4›ØƒK›ÄѲ´EOhé×¢YdQe‘€è¬ÿ©I¦âsè|s}¼¤RŽÎA…ï̚ђWo)vosµC=—V6~gôê´x'EGÐ$5¼Ç)ßmªÖ!F.Öò÷©bQ}‘±¨ˆä/bFPé~]E3'9 ¯{”R ɽj‚×9A÷©zëÒU›5Ðu£,߇éV¬ìoõ®¿*X%´ Ú‰J3eYU˜| ëV¡#Ü^ôyÍ'U;{Š•kŠuÆãCIÅaÒb]<¯Ó‘¢&Âõˆ;’ƒ­”‚äkó\hjôê³€Y†ÍT¥VŽB®ºŽ‡zÅ.à±lI.ÃaÔUÜ_±!L¬º†ÓŸzŌى×Z¹†ã|ÈÖc¡¾¡»æ™ÈX¹.'lÈÞ<­qRðjdW'͵Û $(VYü¶?¡çQ6"V[=Ùmb+]3Úäl®àÇr¬4§¥ùj¦U°(Xå `Ó¸yÀ¥åbÀ€kp,-¨¿öæŒ0~%:|úVƒ€©+pEºÔØô­YbeûÃr YÀÜŽ¿+׬·Rz嬵õªx8²‰Ö@åz͇\ †ô¦*ØÐƒþR“ó«%{ï¥V–HSâ†7•È\ó¢”0 +M+‹ô:W:ÛqYÄAE( t -výiäP²ÐˆÈipjó\›Ó­zŒ Z‚gð0í'Ä|«MQsoö*‡—Å”…ô&‹G+«{Бڊ¢¹4 ä̬±¢©µ:œlèã³('ò¢Ëå:_M©œ:#µ”j[¥2"cÂÏ4¹Q3®œªôVÕI;"¦‘j/N(yÐ2Ú¬e%¬¦«I‹‹’r/k‹üV«Œ]=Ou]>§åBê-”h XÔXb¼š±&”âÔùQ¨½¹Žt£æÒÖ¨“mI¡aM"Ô,+(†= ÅíNe!-µtœT²FѪ?†Ž5{R±8†À㡃­Zš!,&6lºÜ5¶¤ààð&>-³|ìhº ’ͬx[»5ì)Äý稱Vþ:S$gm·*ZzmQq77"õÂÖµ‡Ò¦ÕÕ'ÔZÚ†àj l4©ÔWꓪI½ 5½Hwrº†^†–#ŽûDjJRl:Š jd‘a¤a|Ã(^µ"1³ÄeŠHÛ3)ó-¥ZpXç@J¶ ŠÏÁážo19PnÆŸŠ…pðçŽi_@M¯D·Ô±fåHmQqUpb£;0>«›‹U¢.öQ}t¦v„§¡ªÜKIÕ¿ëVB0 }j· ʈ¨ºš¯€š4:PsGó9jh"–?Hö$5XÀB`ó]¾T—vŽH#.À6€Uœ9GAR ™Nâ™è¦¯­Gz»ÃtŨFÐÕ5¾`@'Ú´¸|>ñùˆ²Ž•׬Õȶ£t\ M%¤ðìÇa½˜¤uMT“¥ù×Mž2r\yO*¯Å ¡ øêÑ7z£Å›ïUz-\ºŠ(µ-»Ñ¹Þ–ûW&¡£ž=\ Tì£f€°ÖeèhÎúSVhDÖÞ`tæŒ$ó¨j°p“™Vàê5Ö—&pÝ*Ê•œÐÓƒbm;P`.TÔŠÃH®"»òýh€÷ÿ¸Ôƒ–¸Šbê?=k²ƒ¹?-)Á¥e©7¹Ú›‘O#ïzèãÈsn?J±kc†¦\kƒ˜èGAV¤põ¶Z2–>_„ö#÷§†sEˆ;©èk´ñ‡ZºP‘GâÈáÐ_âíQ4±áâñ$ÔŸJõ¬Üdï‰lÒa²ò[‰nN%½¢ƒ0ÜÐ/|¶xQ»?J¤ªÄk}h•$¿ùon¹M«?ªr4bÆá¤Ñ³D{ê(äHñ)•$FɱS­úVw'þÓÿÚhLRpŽæÔêÚ nTÆæÚm@È­Œ¤m˜­TƉäR"•ÄŠ/å>¡üÖn Jq»3<ÆÀ›› ò®w–|2=\ˆêF§‘®pH>g;f:(¯=†,lb+¬6õ ×¢ñÖY™Ž r5Ó-ayJ‚]ƒ;hHØ‚…9Æ–¤Èr§}…TåzŠCªøƒ!÷§ MÈ×ò¡°X¯×zÉ…:ëKkntöŽB–È Ö÷ëQ(Š‚´ÆÓ­ €EÊU"öRG½:¹,Wñ(ÄTÃÌ…õíP‰˜0Ck¢ÿJ† “A ЛW<‚ûP›I·aAqU½ÍJ‚M•oì*0^¦«Oˆ‘¤ð`,m­E¸–äɼ²*v½ÏÒ…í”2æ!†„­¨pð$>gå;ßP´nK5ɹ¥sTD›“¥öýhÕI6ØTƒj¯Å?ÍE¾Ë·JºˆÄ}Ò«žl}+üÔ¤ÆåÛïd;³mòffÃ."$´lÊ´Ü>LCx³1ÉÔOµh4„ïokPÈ۹͢¨çüUùZP$JyÿsHšb[Áà ±Ð·ñV™T¯Þj£R£Dýic îTݽ#˜ÔèPa".Þgo×¥U³¼…ɹcszlÎóI™´€å\«a¥fª‘ýªÎ Òµ”X Ï!LÁ`ÚO<žTëÖ´Pª,£ó­N?hµ8`!\± w¶¦Œ$G£\Ò!¿BFÕ*¶Úƒ²,ˆ}¿zèÁée@¾Â™“6v°Þ† ch•ÙÆkj£{ûT‚d1Hä¿Þ´ƒ‹I\ 2ÙW@¼Ç½gÄ"õaW£ò‹oKŠ ˜ÒÀyBæ¹Uxö4öÊu·:¡ÅTxàÚþQ¾µt¥Å5Äû(§—Š*±ÒIކÔÙ (›üÍë›PìA˜ÈÂ껦ŸŠb0ÎÄêÞQS‡0ˆ:Ý«¤±x”` ëÌíZø‘| Ð~””R×ÌozQÍ'3l Ó½H‘ŽûGZ €,+”’l&„éb†OR'âZ§”rÀ[crhã’9c,ºê*äõ«L,hS¤Ú–ÚŠF”ÂÌzu.ASA¨Í‘ùª“]næ Ø\˜k(´’1™×ÔP«Ã-ÄfYPšU±D˜¹qømjy&ÀÙF³·éŠß—ö_æ£(ÖàÿÔÀ~—¡5½%3(V)#BEýj®)`Ç e6Ä=êÒ­Í€Ôѯ™ƒ(¸ªwêhÍíî@®¶”A,.Ì u,)‰r—®OÌïV"ãQ¥1 l>b£q eHrí¡ÍL±¹È/o5†Õ æbÛ¶íBu¢®·]jôkŸkñ3G•Tª ;U ¥˜…Q¹5_‰Ít‹ÊœÏ3UÈ…Š‘Aʧ;ÞQþþ~õW)&çsF©˜xžV² 9ž•ŸZð´BNU“Wð¸[4Ú·à½;p &­Í¿ŠfjܘͩµíÊÜ…Š‚,jVʶ¥‘‹^צ¡QÌwª¬unhãnoZ•hÔå@¾ç­^Im{éB¬-cLRÓJPÃPË#'ÞÌ¡lÀFµ¨YÈF#såçJu©*P@&ÚÖ~._wn¦¬Jâ )PvW¿zÎ&ãSò¬òªD;_@hKT3Z‚#žtQÍ…cZj1²ªß@ ~TŒc•0ºC墙Æcm¯I‘@Ì.#pÞÃ6ˆ7o9ézz¾rÖ–Yb>75#K1Ê£sUqÛÝaW¯3Mo1 —’ÿ&—&)5ÊuiY»ð¬A"&5r똖ގ<>çÈÂêoæíBX( ,(âÜÿ¤þ•¤Ì‹…QègÿQµ©°Ås,±‡v¸ Z%"õ‰„å4W¥©¢µ…h`qvÃHu·”íYà64P³#†ÄÔªŽ dÃcAcfC•5«™±14™W-øO0}©ì2c°ë" Kk‚9õ…i0ò–‰Ê¶ÇÊ5÷ëNÞ5Ÿ[êHØ‘íQƒ‹’OÂ2û›jj„!­\çÕ_jQýéK®m@áܦ-no®£­_}Û­gF¹¥ïš´dÖCïTñRßQKéjctÒdhÁ·ˆ>@>uоÔK”“–Eknâ„‚ÄÛÿ4YÞ…ª%•‚æŠè7sÏÚ¦á‘\ ØÖQN5¨jc-ìoPfúч@š,¶¦e©ËV-((*ÊK.akÅqƱøeåuèN[})h‚Ó€ ©´Q*žF×5,^×snW4È”\±öêpâbìóFÊvO)!~”â¬ÁH·¡[õ?ÅG:k[5ƒw¶´”zW;Çç–ãð޵.É^#ëøGST&‘廟ҳn$âq 3oì£aKBÃsò¨¶ºv#+ª75ŽëFá0æ_;œ¨9õö«À…\ˆ2¨åJ›k`€¢&ºHÈóìÆ—šºæ•††©Î¹4œãß°¨Ë^Ö¨bÄm¹æiÅV½nõ,YŒ=VW¦#6ææ½"AQ¹"æAa}M&lT†»f+ê¶ËT§ç‘f”ÚÂñ§áî{ÑyÅNÓI­…´ ¤»Òó€44·’³y5ƒv½ß᪣ɭ…É«:â9ûÙEö¾-–ÒçAÔÐT^ì"ÆÔ¶`5 -}kZKÊ]ÝG':z’îE‰°è( P“YÓ†sM¨k^ÿQH»\[çFI#OZ°åbEòéO„ùˆìJ¬\å;Óbb¦Ö¹ÊJÔ¡Hu¥gÊ.A>ÔhÁµ¬4|fŒRã¦-i”‹t¿z$7r7µV’khïz˜K¥êÓž)±ˆžëïCÄpŒïãÀ·¿­@ØõªQKk$0=+WˆYbñCÃÔü뤲Ìe“¨6:8]ÒUxÛ+®¡»Ö´É%-*ï¨`,Eeã0+jªÃcE˜¥lÅŒŠXƒ”q&Ì€s¨ÄD­…™æ[¹\Ç]º Ëḯ³LIV`7«Ø¼v°®‘»38µŠÚÕ¹ËgcÈäH­¦„Vì­÷‚üÆjÀ,EÉÚ·J@:œ¢äûQÁrC0.F¦ªñfE…º©¹Þ‰‹&+ªÞÂCÏÚ£Š0ÌÈ5 ¹Ô›õ¦Ý-”ùGMnOµ-ŠŸ*,ŒÖ¿¦À|Íl·*õ°µ-ÝŠ›±×½slXPþ8&8ÙR®jÛ2›•ǺåüÍ'¶‰Ÿñ•5Ñ¢±ª S›èÖaø~ï@îÖшö©¢‰o4ʽ†¦“' 4¢$f v,45j‚6v¹a³ÅWÄ<É*¦"KÄÇR9жæ éa¯j­(Iå½Ìk¤kø»ÑH‰! p„Xµ­§E½s››ìà®f¹ëÐt®µ÷©{ 5Kl*TQ*Ä•ÙE©¥(9jr÷£`‘®i¤XÇ}ê¬üJ$‚<Çñ>ßJ‘Á [ž‚¥­4‰BƳåâ8§[fTÿBÚ¨Í!$Ü–'rkœ‡oŠÂ¹Æg*âÇ.Úò¢L’Ý¢‘XsíY1FŸ½€©ªÒãL˜3ƒæoÚÞz±£K?”ÝTXUrG3òBHñ ᾎ¿„Ð_ò£ÒâÝ­ó­(PG'ÅkšÏÃ)“‹Õ«IÈ.HëZãШ.AôÞ„Ê/µªv¥L ~€Ó ÜëÖ¦÷ßéHE³\¨ËÜôj0ž¦»8ïô¥© k©£Œ3›(÷íN¡Ò‰nNƒó¥<Øtb¢hä| jž#+ÝAÈ¿„QúKòÌúXþuªóãeq•>íz/óTsÕ›m8°5UF—=Àåõ5ÙÙ˜“IlB¦<Å!²²÷µ\>]IíÎ)s@Ozbáçqp„Í´G ‹ëräò]YR¼(ÓJrè3ÈUÛ…@‰²Š’HP ,š|&¸š{Ÿjc}ô¨¥š 5HѨŦ!RiK½ÒŒPsf[—¦@Ì$Ì–§J4­FUqèйò¶Çµ1Ô[]5­A4F3½¼¦¨”xØ­¬o±åE˜bRV k úSs½¯kRaB­™ˆö£½î:Ñ tac¨§B†ÞE6¥¢ØØ[s}—ßø¢–5“C4™¹6À|©‚šŠŽméN…¼9(¶º÷¤£(`vªòqY´Ë@ÿ¦õdà0é3 ]œ‹ùF€Q¢A}Ô§©5Ã97ÑmŤh¥[(-n¦‘6'&3Mε¼ÖQ‘Q°Ó(¤ËÁ͇Œž XÖ¯ýZónìXé©çQwŒ‚§[ÖèÃáQHTîI½VÅpèåóáÎVÿÛ<ý«…:œ>9q¤x€Y¯êÛýEXf[¡BòÙ†Õ‘0)ž3ÿ-U-Ü›šG…&\Ù¶«õbÆÁx!ÆôšKñ(Ú(õÝÍ¿J̵¨éGîüXÒN'ÒL>^™[ù§®#Ã7Ú2ö#Z·<«š8 ÎÔÔáx’Öx„c«Zµ/%Òëc0j »žmùҾ݈˜äÂA—Mísõ®Âðì4c4ŽÒ7A¢Š¶2…ÊŠz ×c¥‚šCŸ8V;†¹4c‡A”3\nrè}ªÝqW3°QÔÕ‘j¯þ™‡,-<„~»ý(ü>…ÚÍМÇûRñX’ÞX®«×™ªÀX—c¢êMfÙ<8lÓ4®[.Q‹[™'ûR%Ãáñk‘Ó$Ÿ ÷ÌÅW3z¤9˜t…u®4¬ÒÍÁË'Ç”œ0S£¯QZ3 R œÊÂàõ_¦|<[ͪmúU޳áL3¡5FmíÌQ=ÅÿNá‘ýé—’έRªAeAÚºfFPE ÔšƒR ],IµGm¾TDŠ‹ƒRqÐ ²ŽuWw=Bè>zÜÓñD®¸6(AozÌ{æ7ÞõžW Hå¶HÒ9ÝJ‹ØÓ$!2*oç^jixœ@ÃáRk¨™‰±õ‚‘{^ÆÝjÌWpÎE<Îæ¨`1¼Rfv›…È‹º|¯W°ÜNSˆH10ÄË&‰*‹ ÷§•v´pø6¶x30ÎÆçéL²ˆd`¶¿cÞ€™ÔZH#$n¬ßJ›"²4™:¬š]:dÆ$wï@ÆçØëJ“I‘ˆ‘FΧ_™NeaqÞ8–jÕß»P¹·;P\ÍPj./ ¿µF`v¾´$ëz‚X[KQÈ"~ñ‚ž—¹¨ÃxSÎnJt½Hq[.›ó£Z ]íïF¢ÊïJÓ‚1LÕ¨ÈÒ˜ñ¬Ë•ô<›¥)ié½i3æârŽ5­9#Y“#ïð·JΑ$(À‚ bÌ2鮹O‡½Ž¤Ï3\ßç7¹µ éSp¯a·QÜSìrŸX°Ù‡QüR©’í‡p/u’ÛƒLG)7Þµ ñRî h5¯?+1¡Åm~µ½‡‰a…P…f°Ìmz×¢šEކ¤\ÒÔª}ÙÑoä'oj`Þ¶*1XD ‹îz Tñá”g»; ¬`jG^Õ6&iY‰.,MÉ÷ªòHw™±X…‚•æ› qáÆ¹fëKÁÀb‡;+ n˜ʻ}èÿ¥KŠ€1@,$ùóª—Ö´1éŸ  Ö3•gë½1¦[2+‰E,’Êm¥ÿ:^ óA—š~”C 6¨I6¸Ó­zJ§¡¢+äÊ5ÍθGvTuÄn¸¦p€!›¹¨â#eñðìÇ[”½íò­N-"ÉŠ|£Éä½·nuDælo½rå;n"qcr’· r4Îãa2€É›QKuϹùÐFZ9S¨4ySÑJI”Žš-QcAÄ..0 e‹z»Ó›_aÞ»0U­Ê‰A'J‡–ÞLÇ¢‹Õy±.Ã,c ëÎ]¬Ë$qoÂ7ª8ÜC4-)LÙHo 6$Þ‰UJ•K -´ä„G9‘n0nEMé™d˜£…”s¹­Ô¤i6*,¤ûÔ±kÜ’kó¬æÃª¶&$.,Å|ÂÕÑ£ '1µ©® 7&Ÿ€ ªd·šöÈŠâ1$5ÍæK/j©‘׈FÙ‰%­©«ÜnÇ6õ­ÁâŠñyb¾|¨¿ì§‹ÒŒ²0Bh˜Ý‰<èk A¡"ŒÔY@Ëںݨ«ŽÕ$ŽUð¤$ÌrÒ³q•£`©¸äè­*«ÄÏßêħojÏ)ÑŒò)|b1/Xæì5äjÔª¤]4¹C¸þGqJÅÛÿGÄܶ¸ï\ì賸;^9ãþßJ²Œ¥2H [ÜX؃ÔV~S!d ûŠÐ¿”ùHºžÕ‰zj´ãÇLpº²»Gk1¥ëØÕYÉ1wænmNà :NŽ3(PmVÄ8a¨ƒ^ìH®³lÖJš,3áË@ `4äüÅ' Šh‡‡"f^›Ws_(Ð •f‰üEª’ i³ø€¸Œ3Yõ#ø®7’Ñ·ˆm}6äÕH°ÓItŒ•ëW0Q48v¶w#ž¶¢[}Tr«rƒ/6F½½Å«’@(3±÷£Œ•7¹¢…¾‡ñ!µo¶2©ó3ÛaV U WÓ';Ó"Hâ$@Øú˜îÔVªE¨aq˜€ù\±¥¦lö°¿z±¸ÌnT‹5µµ¶?Kƒ\"¹&kìF·úS€*§ñ¥µµŽE[²°Ô¿½B{¶­' ¦ ¨QF*WJOŽê³ F¼Ï/Öž› ìU†RvùkPŒÌD˜ä[ØtØTº†è²\ÛQ¸5EçXÖðÕj4b ÁÖ ¶µjÅÌñ'U°›µ…i¹½SÀÇáE™½n>‚¬)®“¨Í=N–:ƒÈÒñR¶ ñÈ&ʬ/cR¦©ñ2ÓqnBÙ@ïεoAØ<<˜–2;¶R|ÎÛ±«ðÇ +hШîkˆT4UÐZ¢æ©1"FË¡½¹t©é@ØÞûURój.â³q‘¦*vÜ¢´‰×cIÅÄ&‡/ƺ¯~Õ›4Æ|2˜¥5Ö®ÝJ†Su;VqÐÛ¥sÊ×(w+›Æ¢¥åð yˆÍ”ió¡[MÔÒç™üv²«+ìm¯jÐŒ¹A"Úyƒ®÷ÔΔ£;e"À{UŒLˆ õwl×m¥ Üj-\«muáØE´m5Ǭ6õÅðpà˜frCj¢Úüè°øœBYDìk`k7<³ÉšYÍùÓ˔ϔÈ1ÒÂá¡ ¶þ›šÔyŽ"$žä†‹ìyÖ")v ¢äìma"hp)ú®I/ÊŽÓb†6JЦàW[d&õÕ5Ö©9N™H §‘Ñ|6¹`6?÷ëïCjíH.ºfv ܱ‚ÞªÔ«‚nIîG?q±¦à §1¶PYtèÝÅSÕ|'ŽøXVÚ–&»…G“Ò_YßJW”M‰X£ ª z¼#ð¡HA"ØûÕ?ÛWÂÎõj“s}(NôÔëšíëª9PœM 5&„Ô[¥VâºømÕH«‘Åð":ÜÖo…UAl Áæ;Š,R™pˆU~ñmp6$k§¸¤°$åÚÔÔkb;å‘•]ÊÖ¬BÀe`Íqmv;Ö†¼\ ‰óBmÿI«óG Ÿ´Ágæé¡úPa¸w…$† D¨èF]šü´¬ÎS§p¬ç–OÞ®©\&‹ #:•2 m©Äv®³À 6ô8·áß1³¸°í]ˆ8‡Åˆ"“"²ö¡Ÿƒïy (¾vØö«ÿ,HHÄr)(5n*ʈ”˜€?µë9’Ÿ%,Xíj¶œ9–àÌ™¿ üë2Ü+H„ À‚§@A½èÔiKÂDÐ!Ê’Ç7”ß‘¦Öà©LR8̲¶Tír}ª(S$‡*/¨þÕ™‹žL^#A 6E…Và[n&CåÂÀ/É›ÌOÊŠWǪ‘$¹!‘o¸VSÚŸ„ÃGƒP†›vr==…v5LØb¾¦S˜\ßÞœ¹Ú& 7Œø‰ˆO‹v·µcæ‰ÄxÈslXèÃù¦Ã‰VDVŽBË`ÅuüªÃ,sÆRKJŸFZdþU¿ÔÂcsA qÐèGʤ‚¦Ä[Þ©bxl‰÷˜f. {0®ƒˆK“ž"Žº0ùÕ¿ÑŸÅå&—ÄÏüšv ÿ§™¦FÑÍx[0QÍj·}¥#;(òkÞÔßõQ’c`Yu·"4¥ÄÄ¥²“—M(ñ –Ic$‹6pàïSƒ†YÒwõçõ¤O#úÕÜÖ’Qq¸^¾ôÜ,pD@R¢S{:ÿjdˆT˜ev#ZÜâ-3RF×; ìÀ fÏ6iüA|«l§·zÑ#ÄTisS(Ãô5NVðøá<„µf%Ô)'SµfbŽn.Í`OŠ6ç­6ô£fM$`9‹éC5ŒÏ Üò¨ GkB \‘D¼èRÄt#­p7ímèH~}(/¥êd6]MFôT©Ä`ΦdX­Q°­p=Ô{U|V1¼k‘¹©çíY³ëRªaåxIÊnàìjÜG&$!Çå¾ÛõªEH6;Ô°o#€NK†{%¦´X9Lêw\RþÃ…c²°<ò5‡Ò¨ê#¾^ þ¢ O#è]¯ïWê}n" 4.Us=Å›jTqáÑÁ  ÿVµÀQ¨Ò‚,Ä•@ü T…[úE©½ V÷úÔz‹×jjN;î>•Ö=EM«ªHÛc\t©ÞºÇ±© ”HŒ²¶TúÕ)ø‰‘¼(†>'[÷®ãÎÞ,q Pw4,2â$PY†`OÀ½}ë;mÈs­;°œBâf_8̪Û^­Ë|ÆûÒð‘Æð dŸ19IÑo¨¦JÚ’kp}/á$Tî/°®S}A v¥ŽÔľÂݨÉ9òïPÆÄ´ šFh@OJN¦õSŠ&$"| 3W¡#j<«©Þ¨FÁ±™Û{—úkYäÔ*|gH™W¶yH¾½#&—ÄÅúÊ,OÌiO+á@©k4‡Ä“Üò¨U¾õœë´˜ãŸÁ?hB=.5 *Ç Oó$?°=ê®àåu5£Ã“þX€Y‰`Ì­¥j Œn! •ŸÄæÍ¨ÖÔPªN¹°Î$í³•'‹dd€…•O™›*ΩxáûÇbžÈ£Û­W–^ÖtoŒh1½Š(E6˜pø‰$Í&£]‡µW‚Æg• ©Ì ·Î´%>}5°w¢wÚVÀáÌ4™×.VÇRM4•HP¢Ãó¡“Sn”æ!‹Ó—:b…^FÊ‹»TDª"Ï!ÊŠ55C4¸é„P¡È •Gêi·qØ—ÅJ#HŒ"}ëC‡áW¡žÆsÿÓûÑa0ñàÐe ósÃØST\ÜÓ8ý£\T°ïÞ§ r¹¾aj4Z`\ßÍhk¢Qü$ }í½% £N¬U—Ÿ^ÔèÁ*o¸65˜Ì¶†öU7výªÄN$`®¶c uÚ›Š‚,RÚQgÖÎ4×½(`£Y–EšÊäÔÕ–9˜›noTÜíã($ü6v•€ !=C ‡d$¤êJö==ëG‰F³pó±#YHåý« †ÊØLca¥ÑY¬o𑱬^®ÚÇ UžsÎIxÔ©6±°[õ¸?ìVŠ”|··à“‚…^b–w³»khDÊ̬Yˆ±ÐO3O#ƒR·€\ÁžâªŸ°F.ܬN¿JÑЉPLÊùŠH›5¯zl©4m¼E+Å¥hpéVL:Dtt-ùŠ^&æ /…e×CkžºÒð ÉXCs¦uSFóT¿Ò±añà©Ñ¥ºß½lÂ~õ}íX¢éŽ[Ë&—6¶µrø£f}foõ…3_Å}G¨òïC¯aùÖ€Ô),XyF§ä+)¸– Lâ0Bƒ «œMÌ|8Ú÷vÖA:ßëXåsƤ_‡ˆ,|L6ä ÿ/Ä S•av?Ôl+8ø‡Ö¸æ;XW£õNCñ8ÌDײ/EÒ‚n*e”•ü-¨ å¸¿µ_Àá¢8A#Æ$g&ݨ›j¹ Ì6 …™|7üCj90n4l$ðhÎ ¹VŒÿN´µÀâðç>Q'`l~œë]ý+O-3,«êg¥LÇ2ký=êòãÊœ˜¼1¸;cS+`æ‘2;­qlÚmFEµ]RÜÉ÷4@ZœøYF©gššS«!³)õbEuEëªN"æ¤W š’@®®®¥:Ý«­­MuªÄ§ÇcαN¢Ä®F7æ6ÓýïMÁ±—€RÑmÌ1ÿ‘§I‡“Í…×ÜUnÌ…àslè–³j~Z+9Úø½ÃÉ+*/£ ó¢\XþTŽÀc,~ TU‡±­Oõ]”–Ë\!èi„sþµ¨LîáTs5Úì×^[šœºÜµÍLo ¤„—nEmE”et$n/oÖ¤YÙFRX…Q¹;S M¸u¾ŸZ‹+èÂ-·X•äVL$ŒŒ¶`!Àóüªœ0œ™”›C+hçnµä]C3XùFºU+—bY‹uŽS³))a¶Â„mjv®5’4T¨¾ôì Ò38ºÅ¡[ÿ4Ü6¦ç&Í”•åV2,h± ÒÀ“Ô‘[œF“ÄÐâ8yx›0r¬`: ô±W¸¶ãö5›Å°ž ¾*)1¾ žG¥øýR‡‚9õŒ,¾SÞ®…R:u›Ããi1ñ"›ãZØ—+HÅE&Õp*UªZ5ðÌåUÜÑHÑA’r@>•µQi&â8…ˆ-t )´GLÓñ BÃŒl9{šÐ‚8ð°øPO­ÆíýªbT 0‹ çÍ»š›S&v‚´Ø×•B‹SV…mLAPƒJ5À›„0Òäu£(B:“æcÔk”£lAisÏë_+XtØý+QVÀ›l*åP)×[Ûòµ.£QF%>(@xÓ¢Üüë#Çq%E‹yX÷¯ÅtÄôÒ³¸¾_ý(æßÄ=ùþUÏœõ®-< †Ã¡ iÏáڸܚ~(}æQ°}ƒ¥i— %45+RÚ‰‘@κ£_cB´@ëLC DƒBwìyÖo“fKæ´ ÊÌáK+jànZ™9"É Fv ííU› ê«a±ðÈ€b.޳{ÓÚl(\ǦÿJ¬ü2&kLjÊ:2›þT©¸dñÜ–/"Z×£yEÐx¦)gËWÈ—Ôóª•cìsˆLž®£ð.ŸZBu%C¾¥a¨¬]úÔÇ ×XÔŠ<· †ÆµxmŸ‡-¾ üë/åWøƒÄxüÀ2ûÖ¸ú/‹V®µ$k]CÚEÉ*‰ÒÌ/UŽ òýÞhÂI½ÅȵªÑ‰Žl»}ͪ]BœŠ<« £³ ‹ÁýìæA½ŽÞâ­`1#÷N HšhÕe V¸ÿÍQâxQüL(¿™ £3ú°øXä¾Qá·>ŸÚ©Ì‹e’DSÊçzµƒ‘ñŽÉ,Œr ÅA¶pv?ϵIÂÆØ“Â1R/Ҭߓ)ScùW ±„Å/Uaå·JOµ\uªF‚ Ò“PjkŽ¢¤J°a¸:U>4,DŽžQ”I¦Ÿ¸«mS,QbDãÌQBµ½7þàVlÞ8d‹‰š)ÒÙ´Š9µdמÁ´øN&¢fe:ÛJô2´¾"·’A™}ªáv›Ò8’_˜5­%í×J+ùó @¦äñ<ÃÊ%$Ü^úSè' |Ä]ˆïL,X ?¨^€›óçL7½QÑeËàGnšÿ5 ‹((ڦƤ Ò‰âZ`Ð…½¤?¥fÆrµÏ=ëW?á“ÿþ•œ¨ÏjÇ/LA×P4ïE†ˆËˆXîcÈ^ŠÕk…Æs;€n‡Î‰6šž þ"$Ð k”T` “ UÌgKô¨âeO†€Ý”ØÞÕ0Å.Òº‚Ž,@5¯¬ü7-/‰ÓàÈÚÊêmÐu«¼PᎠÙ×áMcb¥yæ2Hu?•6¨L8ù0œ\ q·¤ »ÖŒÜEP ¸T7 ˜‘î+3Ч‰ƒIˆ»#e'·*wáÜVÁQõþðùG÷®rò—#]w›ˆÌç3¶€úV¾²a|/ù¬»QààL9 FûÜßo颵ë|xçu›AkXÑS–ío™£U­ B­5V¹˜AÊ(ÔkP»Úˆ›hº·¶Õ¤$Zj0èþSØíI‰³1Û–ÔØÞ*ƒåÌHî@Ûó­Dã{nhZšFšÐ0©3x·ÿªè_Ò²¸ó…‚;hĹ÷Ú¶xº}ê=ýKúiY Ípî®\çU®-ɼÁ_lêÚÀÞ‹‡Ÿ…ÀCge »æ‰Q¯µjÿY,/Z!]Q~Ô!zšjA5!An)DM+,”f‹L2\FÒ¥ÃÆ¾àŽ–¥øÈâ-š5êcµ2®|Îâä¶¶ª2Kˆnsºƒð]I„¡r Ø;éT¤ÐÒf߭͘꼰&#‰JrÚ÷uüêÆfªs|+×ßµtq¬ …9‹3g·j} œfðòå:©ÕXliV5»<^>¢çº{Ö1[7Ž\q©Am-V8@ÿòPÿª’l7 {ÕŽ?üŒ'úªž¦‰ÚRÍ1˜l'Ú®ÐVÙqÊ©sd_Ìì*ímíΡ*¬ïke;0éØÓ" E•€#pÚR sÐ2r4ÅŒò½é%låFRìNžÚnjLþ*’`b >Tk.»ƒÈüéÜ6Is0I™uRt6ª'ÛÂ7¼èžÔq¥Eþ³þ›Û·Cð§ÖâvSû.Á°ü13˜!{ÝI˜§ 4é¶æ,Ì+ hÒJ$•†ÜR™M[I«~úTKT;qB»„&ÚA^2Úï5|ý.Ú,cˆá©~,ÀR®TE9ŽKçlŸ!×qæÛ•LÀ‡•è(zY‡šæî·¹@8¦hÜÙR2‰íŸÛ°!‰°V“hk.„Þ¯×ñ–Ò`­\¦B.Oç^"ˆÿb±ËâñÝGôj?. «AàºB  ÒµZJˆîöȈÒbõØQŠšâÔQFäiEAˆ–º¾ƒ°\Qmäh²2BÒû©H@~- ƒB¤Q ð¸PZ6’Ô‘Ú;)µ04鮀¨,JÚ ü{ÝØØêû…Ž1E¦Þ‘9ºa Ä54³…x,] ð"%1!›[Ò DÀËs"Ú–<¯EsN|]ùéÏ_OW=ñO=‚Zùˆ´†RŒ0šk²­}À­ ±ÖMïÝMÕ…yð|Ñ‘ ´¶£±JQ%Tƒ#眳â&éC¿óÛ4uà aNç2Ù0u1‘m‰ ´z±ÄXÙ¤T™  ð§äû J®Kã[6Cy²2Z»€PPnZDØÛÛfè#ùuò8@ ý|„Ãßý.Í~ÿ)2m›+Gm)Í÷WD7ùÕïëÀ4zÏÆSÚY @¢µ¸€[ôý¼N…A±HeÂøÈ:mÒ 2"¹ú ︃&.»Œì‰Éåʼn–ÞéÒ?%n‰±Q}ï,Ñí Ñ9AØ‹&‘u¦¹¿ 7óMà"OÅ3g8p^oר^Œ¶<ŸÀsÜοé&eÑó‘–ÇO·ô”’`oÒ»M»OuHÕ¨\©D÷#"ª$î' (œtÝ9-€J¥JelcíK/!btX•lǰqZxæiJÂ]&ýôóã$røTG=PŸ;CÜR›6“üïç•ö<ÇQÖ`Y\ŒQ hñDziÇÍ7ÓøîÝ”šœ -[¨„ÍÕ¯ºZ @[ã¬Kb³# zg'€?/ˆSaei)¬\W»ÀŠ®0¸e+_æþúQâ¶ëÖ[aN—”òªdNÏÌP[áz"A›gðüØ'~ƒŠÕ*Ó¶¸ ÖÒÕˆ#ÏýÞýÌuôÚ¯^I‡.ÿÑóÏaÅ/>‚aè³s .Ж œJb^l½V#‡FÐd;ќ޻j煉gæhá?~@“W^IñééviPùðašúØÇè’ûï§_ù½kik­D[·o£+î½—~÷ÀkÛ¶M“WÂøèãSá¾M~òå’iÊ%RôæÜ"=ÿå?£ ¼¶€™ÏŒŽ¦ ´µ@g·.DA°¿Â47LOQ û+‘èöQöýæ1õè…ªxAs>LÜöÜv›w$ÙDõÐA²ZçùxäQzþÛÿH¯Üt#¾å ¢«¿ó’ÃÃêÙ‘}ûhÝyçÑÑç~DBÊ6Ÿ¯Zö2y’×°ö ì^«Èe ‚%¡¶Å¨vœOul†ìtºM󂡃—eqÄó¾š;òÞû”{î9š¸â JlÝÖnÎ@ý½÷ˆ[ÖàA`0x*&SôÚ>C³O|â8]Ú|Í5êÙ±Í窥5‚ ¼†è ¯‘ Úß x€S‚¼>Ù01ŽT8Oqø¡ÎýÜËe4´y39ˆúÖùçÓðG6ñ‹”Úº•¸í½ývXA£Í êÍ}Erjª­bt “rO>AhìBjÎ2 @Ó»÷¨^µAv“Ws±0œ ´ÖZË©·ÅssdŽò§.u#`‘#ðÿ1µ‹/¹˜v —²/üÖÛT|õ¿ôRÜ·w¹à©Jäà›SW]Œ¨o…ïÅÙÒ0—ÿÛ¿Q½‡õ¾åfr ´íŸþ4}êÇ/чøsÚõ§B×<û_4™¡÷_~µËp=rçúõ›ÖjðŽ;ά>áZ ÆGä™Aö•v ðÿm[©|èy¾¯I,›µƒÏÏ~óëÄíÃ_½‡\7 OR½“ÙñO~’ª¥2y®KU¤Ýón¹…{˜¾þÆ2™ƒ… ýìêS龯’<~Œ¦öï§-Ó“äßs7½ùµ¯“ošzñmAq]"±o­“Í-qÕâR¦kXT u K*z"h+ÇþªGßWÖ€Ö~&€ö³gDÓHœÊöÝu½ùo„Ky "/ºˆ®|è!Ú{ã”;p€†Qá‰'¿G/>ñ¹v¬­¼=X÷èÈcÓÈ·&[•ãIhÚêŠ zl‡™àŸÙKÝÅj´iΓ矇Z`‰bHOuÄÝ:M^ó[4ÿúëTľa¨¹¡T®¿ð¡¯‘ í–Ÿ}†&“qÊÞtýÏ“OQî¡èÄý!e°uŽeÒä—+ôö™YÊÇÈgò!-•%æp¿“(°âY–Êk¶€¦¸˜ämñ®];iþøIŠƒ ÀÞ€Û ”K`®éÁ Å! ?ø½ü•»I¶“Ãuæo½™ŽÁ5VLð Cõ§ø¾• ÊIÜd"-~‚Ôƒx眅³f m-àV[ja<‚¨<ž]Oôî;až}ûM:õÙëèLß3-ò-‹„o;0ôЉ ÙÑf-·[…$­N”[OKñ-ŸI¿P(ö ‚Q-C‹:p*,χ©ÐðÂʼãÑû 7‹ .KPÑ´[ÿÕFtL¦{)Ûvl¢cŒE3tëjŒî °½(ÒÏFs&Jâ=ku}0²\ 8\ ‹ds}Ωº¶~dõq·;çºÝ ·Öõ|×µs |èáç‹AÓ¨Tka*\·ŽL½·_¡ÉÎëÕ„ÐiâÏ÷pƒh®· °ŒµX€¼¨Ї›ÔuÔún©DoŠ\·›p/­Æ*‚éÖx7ñþƒ""`[ ì!€È Nã`Ä—ÒIis-°ž»¶«ba¡·ö™pÿn{¹AçA\•Ä=ƒàJ»BlA‹:lÚy>UQ¾&²Y4]ŒÖk¢^AoÕà&£ûÑ5£Ç°+(â¼mbbóº‹úˆü\äú*4ŸX¿^ŸùwGëιUH©~5uÆ-ïŠ1€Z,pж÷¯IÚP ,ÁmT ŸBUW™ŸW„h'½qM¸ÔJ}ôÜZ¬çzç7 {A‰ÆÁB—ÕÖs|>L…ØRò¢Öõ¸g6è]Q­w6Ìîi*[œuÜ ‹!§P z¥Â ¿Ô;v5éÞÙ 7ñnaꬅœ‚8¾/È4çø n­§t-Ph­*Uª;yÕª:)˜£^Ú×VÒËz¤A]V+bø]½'„ôÙZ‰ÀH ;•–öðLŽŽÑàä„ÞDS»vÈ¿¸óË×ýÛ»ï¾Ü³Xñ`ÄóæZkåpƒR¡\Zê&݇¸My÷ˆAcˆÇ#‘F&ÃÿxR ŒËÑÉIcdzÚ™·m;f™øŸmÙ‹Åȶ-ôqâëd2ICXçy““ ÎœzÔÝðx£1+ðŽþ#Éäöj JŽ‘€V{ïh-isd c­ ™JI+“1l¤Õl‰3ããæðô”™Éfm2ÔÆÂæåZ–EqE$ãq5Ž'¸‡¤c˜·cüœza¨gÒ©4í?wRé­g)¼Ò®Y C• wìÀ¶ø¸ §‹µZègx6°¬@ÄbB&R H™Î XŽÉĆsÌÔøFcÝä¤=8:fAU&/Î4”C’É‹L›&€&Œ{!iÀbà®êY }ä‡y~Wƒ¤æ&’™n÷Ú¯ž ù$I!2®ãѶ©)ùêñÍÌHû⣛6Ùƒƒ&~ÈÔ d­`¬4€Y²sùøÔ1xÌ‹W൙ü4 è9uøÉ‚7|—c÷ü “ …Øü]4¾ÖÙ,ÜÅÖënÌ”©5œug‚Š¡)§8òŸ)¼‰Ï}ç"#”I§@2Á Q„AE½&˜ŒŽâ£iY¼xŒ-@l¢Çš„z>Z…&¬5ÝšºY0<×ö ¾®‹eË™5l‡£Z@[@¥y.°åäž}Ö¦éiÊŽ’ÝÔ4± “;mªšDD޼Ð0¥:.kW/XC›4£mŽßÑB@k޵@W.óùÛ|¾JÂO³qôk,µó VBC“ÓÒ×ZÔÚ×d;›N›&uÓµöô³:#t¶r>ïξóN=ô¨S:y¯ž™•A¡`Xº= E|ÈŽ¥2©d2–ˆ¿ž[ü×>²@” O9΂’=;ЋnÕ¨‚Ö4Òµh\k´¥¯ÖÆïq+ærÎé#Gê Gޏ…ãÇýòéÓÒYX0übÑ6DÜ÷S¶iÆñ¸ †Q L£ä ` ¢œCÑuèéÓ³O¾ÏëW:4ê¾_ò¤ŒkrÚ„[ÍUC]©fgÈ-;æ,=êWggy—¹L.!DÊ„,Àï5)K|(ƒZ¤XÇÖœÿ cYˆ|›´<sÔuç0_gWeèÌÔ€P çû€ Ôq@zl|qqG°Yƒ¶ÝEä¹C‡êyÃ_ƒ käD©Sš"ÍädÙ†~CÊJ“œ"Vñý|Ä|?‡|;Ñ2ê Çð[´÷z=««ÀXµp€Ò{ÆK›—–ö¾ôàƒ‹‰zÕ<5Ÿ¯á€T‚œm6ÉŠ_þod€:ÿY­.e¡æûKh¬èy ‹8f?‰ÍÕ‚ë–4¡>ˆ1 ÏÜúþ¿ÎB&…æ¸RÚ~óääoL&w§Ò)ÿ¹ÜOª¨J@Äp€š;㺋ݤ€Þ¤¸Œä(w·ÕÈö+-]† ÎF[kÔ}0Ä>xè,&Þ„¡k„_.bý·ÿÇýçÛ#]8IEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/appchooser/akregator.png0000644000076500000240000001141112536324426024376 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞbKGDÿÿÿ ½§“ pHYs¯¯^‘tIME× I†pA–IDATxÚí[ t\Õyþî{³k´Z²%Ù–dclƒ16¶á°4ÂÚ”†ÒBr ] hKH ‡Ú­sRR$­{ ä°•Í@°V/€±-ÛØ²llÙ²,ÉKiöåm÷ö3ïðô:š&=Éi~O÷½ûî›yßwÿå¾+´?Úÿoc8»uRíô‹]3—\·ï<¡¤<гÃBÍ q5J"ÄSã!‘…„À€áèÔŸCùƒ@üØ•h]v7çXÆÓQ™BpáªÀe?„ì`n‚ \‚Ü×Òº2. mHèjHhJHèÙWÓ$T|HhÙ0…M ™ß;Äž?Çù÷¿ˆæEÌ$®&9C2€Ä€šÌCÏ@hðl‚W’à¦P²\HSNÐÁu-'@× $ A ®‡C 6•3¡ n„„:GòÿN€§.îÄ™·,…°Ès#ǹ(֧硘âdí>Ó„W3¤£BÈ‚snpÖP29 RÏĺ&Ìn€<‰ 'h`N<Äd˜ØÙq)ºÙÅ•à…kSXxm ?óF œb8Æ‹Ü5¢ÈXò@NÜ€ËGðçÍô–Ô§âH4Æc •?Ù Ô׳.…Þ4—œìèC«Á³Ô8®ÈŒˆU¢_c PÒ$”5ˆ‰x¢×E1‘Š|Ö±~¶iZH¿×¾5¨ZºžéË– ξÚó8N>¯BLpÝ"3iyDÙ‡çå½€Pþ³íky¼ ¬½zfRCéa5)˜¡bI%(|8΋Ìl1aŽ‘8/Z“'òé1äì“Õ0^¤šäó·BÀ_ ÉØ„J’q— %^FœBñlòöD1Ý,¯Ö#òÏ-@¡ÛxA±Øu•ÂDYÆÃâƒD>Œã„żr@Íè6ãMˆE®’-pw˜¡C ÒA0Ž=£†Jù$È1)ÆK'¦Lœ· à$[¾Ô•_”ÿ¬B‹õ©Q”4C·‰W8,WžL‘k(¨&ÅE.OÈ/“á eÐA¶E26l¢¹~˜un`÷MšËϼ3 6D%@ÉD5¹°ˆ±c$nÂ>¶¿'jÎüŽÕ×-â*äeVz"ň•Ãês ‡X_ù²f8Ê`%(ÛN!œd =Â&n dXà@œÈgˆ¼Tä}µtp Ò+Á‚8·`“ÿÛ ,bÂáæ6Y‚ã8~ˆÈ²5TXà(gö:Àö‚ ¯=U@ý ù§ÑÓ@& $ZÒ™èìX.ˆ9£S¨xož¼d==³E°ýºt°Ë`åÖ¶þ)ÀÜKá4‘al/ú(ç¾…îOú„Ãåóm⓼MÖÙò̬$Xéu€#»‚-y´_˜ààkÀH§36y³µÉ›3Ôrû2ÀSr M‚°PÎj:€Ónθ¨ž>!Îí|`Ÿ[ä³y ÔZÊ€¡øË¨dÀ$ßPʯ2êçç,:.s„„ “üA"²I•+-‚0ôÊW"j'ªH°în@èùso5l&²'Ó–Ñy}Áv"Nº¨›ì\ š• ‰€b‘“ŽDh·§­ ¸æŒQé2ˆ‰åO²aÂ00ºèyh\Ìþ3 ºk9ðXš ${ì™%’œpv’f œûU±`Κ?Y³¶ºG¶›|²Šº²pØ”ÅÀ’ûtŸI¾xÌÛýǦÙeP©$QX×mò…«>Sˆ5$Ä@jk:8õûdË‚MÿÎ~ö;] Zý@û€»*oHñƒÀx`¨D 6uØJ",y¨™‹Omþߣ‡žP&þQÂõ%GžÈƒëöí¢2ëçÌûê€Ö³`ÛRò+Á¡w€¾Õt±;ZØ~‰ðÏNÎ|y׬ýÅãŸõO'iÉ>ñЇ€í;´_œõS q©óåf|+°þr@‹Ùã= ¤ÝOÊ×|f·6Š„›Ä¡*#€s%XÒ<õÀâû€¶+ò^Ø(G€T°ýV8¬ýZ á´ÏPûK±¢bp Pb@x0² HNò- ˜û] ñL ;h?xÿStÏ;†Qç)÷g",qÌœÄ*—ìú?¾ØpÝ ë©ãJ`ÆÅÎ¥ÙÂáß‘NûAwß\¸Õ×Jal’ýÎØg6 c½€Ï¶'øà}7-ÜòöO¥ÒU€ÀUç’„LØû°ý‡€‘™ðÉnà ¿\.{ãۀщ^ íß,;óNïì3怷7÷®~kþ_¬h(Üós.Æ:o´ú,«ž´]çŒãþ_ÂaÓ¯.AºLÜ£à܃ãÉ㊞íÜ58ÇîÁ%Jo‰;„°wo÷‡Ÿö¬„ÃæÝå$7º0ÒöõÚÅ€jéã$n >ƒ$3CûÎ×ßìºæPÿØCÅß àŒ=Oí 83O>=€œí¥š¯Å'xÁÉ@Í|›” òÑIsÊÙ…¤Q6Þ É3'q!¹åc •É)ÝÈŽE’·<»zë=k_xðžÂ?ñ|æ^r'PoruÔž¾Âv{†üâçÈ«pØÔ‹3Û ‡Õ.:¢eD€úµËwú/–?pëë=üÃïüì'÷N/Z2Š¢'ÒÿöM›^Zºtékϼ¼ù¡ÿ{åÈÙ—üÃ*G¬™ TµÀaîàäïÛ¿o÷n:¾9Á NqºwfVuÂñ‘G‰¾ %pã¦.φ¡ý—7Ô×^>sf‹øêÕWìš6mÚ{UU5ë3Yõƒ{äç£9Mã~qÎÿvgwÿ¹/½±íqÊÃ8ü¤-€–)²ùq –€Ã|Í·V‡à0oKY‚åÉ;cŸƒaj÷­ÚTí&¹Z‡G¢ll<¹¨·oh‘,Ë·©ªÊçÌ™s{N]×Y:› €lÇŽƒ ,ø»5oï|ºeZís'0SrÃÚÁéÒG@3–< ç\†Ã\µÎ5¿‘‚Ãä*—±ÉûF²>¼©ÃÁL-gk0K_¤ëIÄb1(äå„}ĵ•s^oùâ,ó¸Œò@–uww?cÆÓÿùôºÀk‘¹rZxnýãÈõ·åWƒ°,; ì|ÈI°ªÓãpîï{P`öýÇeãY7~µ·׿½ËûÏÅ{±™ØÜ¯àÀÞ.Ô%ºQ§ô?ZSSsáÊ•+gKgÏžÝ#I¬oz˲€ÏÓ”U•FL0à&U5N^þØÚÓ<·\†Ë›úà3_{“}$õ&`î×óö<¨$‚<áá[.ƒÃR½6yFëá0mÇ!‚™àFªðìî©ØžM×CDßÃås ÌYäɳÚà­m¦<}A_û•÷ ?ü0#[,D.k_MxÃuÏß_ƒÇÖîlJ¦ÕË-8L·µµ}%Il]ñËß6É7~—d‡à–ëÛþ/€y,ãÓílƬ‡ßùàÀ£fÉÌ#ü.À'¸¯o¦Z8E˜´oó`«¶5cÓa/¢Ñb‘ñ¥9 ~tž„óΫ›‡=ƒ@dè¢;îÝyðpó|ÅŠËÈ<$Àër¥ÊÕØX#e­ßÐ5 †&h1»¿ÿpô„¦ë‡ŽŒ¬Yñä&–¹újœo¼¬A–ÍJH V¦–YçŒÂ]`‚œ¯œ)]Æ¡±ŽÄ<Šzzõ¿Ó×!ͦ#eÔ$l-ï@ÏÀÔj s›2X6#…)~¦ 'ÜØp°/uMÁǃÂá0"ããø‹¥À7pâ¼/䱈1´‘}1¤‘O7n·5E`---›ù€ìyXæºýÞU^ÿ¨Y“üB!FÈø™ÓG×m<\÷`oß‘û~IBôO¯Â2u5<..Wž¼ËÛPÚ‹Á¸ýQŽ$ƒØ?ìBoHC:“E6›…ªf D>_À(‚òÔ7ð—O¼É°ÿ¤ó5ytKÊ`® ¯ªÆå®ž‚¨„1Žhúè#ÏÀÀÀ©z‹íè„8AµD¨N"ðz¢'5#|Þ¬Èïö5³ÞÞÞ›ÍX"o´f…áœ9®È½_ŸåŸµèBo°u!sû‚H Ä 1‚ªÐa<ÙŸÛ,‘”$=™ ÈB@fËÐ=\ 97Û7ž|ëlPhýB-f4$—ÛàJ+HíZ ‘ÎÐ}fü #•T³'eøyd}ººuzý¿÷ôôÔùLòå6D¸ÿ#E)S;ûÛÖ/Æ[•ïiš6àÛ„6¼n¹wÙ‰5÷¶_ùèu5SZÚT%-¥3 ·¦¦]Jr£ý½™pÿÇn#¾¿Z6â¾€WTy=Âð)àa¹Êâ"¸À àÝ9H$º0³[‚nìymj=.Q'?ïpúÇ=Ɉ¿*óx·ÌßöT*µÐãõ¾ÜqúÕïÏ>åì¯ . CSâ‘p÷ÞwoüÍ“£ªšöAW}† Ý[%¸VE¡dB¯—™Þà–ŒÚjŸA-Ƥ™ó;û¤*UQâ æàƒ#««ðeTá󻸧ûˆ±dÍ;ÏÊ.Öxƒ ÂÇ`¸‡”Hç¸r$*¼šgÚ;æÌ˜ÑÕÕ•…B÷xô³l‰„„% 3Ã0ƶd2™…þ@p×Wn¼wšËí5³íû]»÷¼±£sk”C—Oú2ã\e¤‰Äõ,3Ô´¤+)IW“2eoY£–gSî1-íc ÝÍËÝÙõ:$†;¦b›j¸LéÄ¥Þ>,Ø[O®›uá²YÏ·4øÓã±Ô´Ñhú„pLŸoHþ™ž@]£«ÆŒ†ÃêÎî÷^Öu}9€]íóü¯1f‰UK˜j•Ê$ÕÕ›¨&ßÖÜÜü z‡PÒétâ7ÞØ=É–†€Ó˜œÃàB7èH冚Û¶í¨†·zíÞ½ŸÌëììÜàL‚þÖ-KƒEc{ì,ºóy·ÛÝìõzUj™Ëår“Èñx|¿¢(küZÑ]@¼œ” !(„&ÂUUãæºšÚ¦—ÉÈ+8—SçŸ=cŒA¢xÜðñw7|Ôî÷W=‘ˆÆæmÛ¶mÀ5Öx™ð1d«*ÕäwTp 塳µÖs… û ¦p}ÖbNTfW¸0$’Ö—fiÆ7’J"‘8ãÀ¯Qyät.I’U!räó/ «•H,±nݺ6º~=-O¿sèÐ!ÿ¦M›ÆéÚ_ÈÚ&|§6Á “„Ý„NBб&E/Gºtÿ}2!àñx¾M°œÂ`å©§žºž’£›\“Q‚ääš: ¢rÎ #(_Èããã3ü~ÿ)4æ"j—Q‚b”¡ êÿÀ*ÂQ‹PÂ*ɱQ'AnAàs«Àý&®cŒ=L¤j«ªª†‰XŠÚ self.orig.size().width(): self.p = self.orig.scaled(rect.size().toSize()) else: self.p = QtGui.QPixmap(self.orig) def createStates(objects, selectedRect, parent): for obj in objects: state = QtCore.QState(parent) state.assignProperty(obj, 'geometry', selectedRect) parent.addTransition(obj.clicked, state) def createAnimations(objects, machine): for obj in objects: animation = QtCore.QPropertyAnimation(obj, 'geometry', obj) machine.addDefaultAnimation(animation) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) p1 = Pixmap(QtGui.QPixmap(':/digikam.png')) p2 = Pixmap(QtGui.QPixmap(':/akregator.png')) p3 = Pixmap(QtGui.QPixmap(':/accessories-dictionary.png')) p4 = Pixmap(QtGui.QPixmap(':/k3b.png')) p1.setGeometry(QtCore.QRectF(0.0, 0.0, 64.0, 64.0)) p2.setGeometry(QtCore.QRectF(236.0, 0.0, 64.0, 64.0)) p3.setGeometry(QtCore.QRectF(236.0, 236.0, 64.0, 64.0)) p4.setGeometry(QtCore.QRectF(0.0, 236.0, 64.0, 64.0)) scene = QtGui.QGraphicsScene(0, 0, 300, 300) scene.setBackgroundBrush(QtCore.Qt.white) scene.addItem(p1) scene.addItem(p2) scene.addItem(p3) scene.addItem(p4) window = QtGui.QGraphicsView(scene) window.setFrameStyle(0) window.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) window.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) window.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) machine = QtCore.QStateMachine() machine.setGlobalRestorePolicy(QtCore.QStateMachine.RestoreProperties) group = QtCore.QState(machine) selectedRect = QtCore.QRect(86, 86, 128, 128) idleState = QtCore.QState(group) group.setInitialState(idleState) objects = [p1, p2, p3, p4] createStates(objects, selectedRect, group) createAnimations(objects, machine) machine.setInitialState(group) machine.start() window.resize(300, 300) window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/animation/appchooser/appchooser.qrc0000644000076500000240000000030312536324426024561 0ustar philstaff00000000000000 accessories-dictionary.png akregator.png digikam.png k3b.png PyQt-x11-gpl-4.11.4/examples/animation/appchooser/appchooser_rc2.py0000644000076500000240000026262312536324426025211 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:13:37 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x0d\x06\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x0c\x83\x49\x44\ \x41\x54\x78\xda\xed\x9b\x5b\x68\x55\xd9\x19\xc7\xd7\x49\x4e\xa2\ \x26\x26\x1a\xe3\x35\x31\x5e\xc6\x54\xad\x97\x4a\x95\x29\x38\x14\ \xc4\x22\xb6\xcc\x73\x9f\x2a\xf4\x61\x5e\x7c\x10\xc4\xc2\x0c\x08\ \x7d\x28\xf8\x54\x4a\x1f\x15\xa4\x4f\xf6\x51\x0a\x52\x90\x4e\x07\ \x41\x94\xfa\xe0\xfd\xd6\xaa\x03\x5e\xc6\xfb\x35\x51\x63\x2e\x46\ \xcd\xc5\x7e\xbf\x0d\xbf\x61\xcf\x31\x92\x8c\x1c\x83\xc1\x2c\x58\ \xec\xbd\xd7\x59\x7b\xad\xef\xfb\x7f\xf7\xb5\x93\xc2\xeb\xd7\xaf\ \xd3\xc7\xdc\x2a\xa2\x8f\x03\x30\x0e\xc0\x38\x00\xe3\x00\x8c\x03\ \x30\x0e\xc0\x47\xda\x8a\x1f\x1a\x41\xc7\x8e\x1d\xdb\x53\x5d\x5d\ \xfd\xb3\x69\xd3\xa6\x7d\xe1\x98\xad\xad\xad\xed\x8f\x95\x95\x95\ \xf3\x57\xaf\x5e\xfd\x8b\x72\xed\xf7\x41\x24\x42\xdb\xb6\x6d\x5b\ \x50\x2c\x16\xff\x10\xb7\x9f\xcd\x9e\x3d\xbb\x65\xf2\xe4\xc9\x93\ \x18\x87\x36\xaf\xb6\x81\x81\x81\xc1\x4b\x97\x2e\xdd\x1a\x1c\x1c\ \xbc\xd4\xd1\xd1\xf1\xb7\xbd\x7b\xf7\x1e\x1a\xd3\x00\x6c\xd9\xb2\ \xe5\xb3\xfa\xfa\xfa\xc3\x21\xf5\xaa\x21\x09\x2c\x14\xd2\xdb\xc6\ \x03\x84\x74\xfd\xfa\xf5\x43\x15\x15\x15\xbf\xd9\xb3\x67\xcf\xab\ \xb1\x64\x02\x32\xff\xcb\x9a\x9a\x9a\x43\x21\x84\xe2\xcb\x97\x2f\ \x87\x63\x78\xc8\xb1\x96\x96\x96\xf5\xd7\xae\x5d\xfb\x26\x1e\x7f\ \x35\x96\x9c\xa0\x0c\xfc\xb3\xbf\xbf\x3f\x13\x42\x00\x91\xaa\xaa\ \xaa\x52\x98\x02\x3d\xbb\xb7\x3b\x6e\x9f\x38\x71\x62\xc6\x3c\xa0\ \xd1\x9b\x9a\x9a\xd6\x6f\xd8\xb0\x61\xdd\x98\xd2\x80\xcd\x9b\x37\ \xff\x39\x98\x69\xec\xeb\xeb\x4b\xcf\x9e\x3d\x4b\x0f\x1e\x3c\x40\ \xa5\x47\x0a\x5c\x0a\x27\x99\x1a\x1b\x1b\x93\xad\xae\xae\xee\xaf\ \x71\xf9\x74\xac\x00\x00\xb3\x5f\x04\xf3\x48\x10\xef\x9e\x16\x2d\ \x5a\x94\xc2\xf9\xa5\xe7\xcf\x9f\x23\x65\xe7\xa4\xce\xce\xce\xd4\ \xd0\xd0\x90\x31\xfc\xf4\xe9\xd3\x34\x69\xd2\xa4\x74\xfa\xf4\xe9\ \xf4\xe4\xc9\x93\x44\x0b\xff\x91\x68\x53\xa6\x4c\xf9\xf9\xc6\x8d\ \x1b\x8b\x07\x0e\x1c\xe8\xff\xe0\x01\xd8\xb4\x69\x53\x75\xb4\xe9\ \x71\x0b\xc3\x78\xf6\xb4\x6a\xd5\xaa\x34\x61\xc2\x84\x74\xe3\xc6\ \x8d\x34\x6b\xd6\xac\x74\xea\xd4\xa9\xd4\xda\xda\x9a\xe6\xcf\x9f\ \x8f\x9d\xc3\x60\xba\x7a\xf5\x6a\x5a\xb8\x70\x61\x3a\x7b\xf6\x6c\ \xf6\x4e\x77\x77\xb7\xe6\x00\x68\x95\x2f\x5e\xbc\xd8\x14\x4b\xfe\ \xfd\x83\x88\x02\xdb\xb7\x6f\x6f\x7c\xf4\xe8\xd1\xba\x20\xbc\x3f\ \x88\x9d\x17\xd2\x5b\x31\x73\xe6\xcc\xdf\xde\xb9\x73\xa7\x2b\x88\ \x9e\x1c\x63\xd3\x83\xe0\x84\x16\x00\x42\xc4\xf7\x77\xd1\xa2\x4c\ \x33\x02\xcc\x0c\x84\x5b\xb7\x6e\xed\x0b\x8d\xd9\x4f\x38\x8d\x7e\ \x34\xd6\xfc\xf7\x89\x13\x27\x1e\xbc\x17\x00\x7e\x1d\x6d\xc5\x8a\ \x15\x95\xc1\x54\x6d\x30\xd3\x7a\xe6\xcc\x99\xdf\xaf\x59\xb3\xa6\ \x39\x18\x7d\x10\xd2\x68\xba\x70\xe1\x42\xed\xb2\x65\xcb\xd2\xdd\ \xbb\x77\xd3\xd4\xa9\x53\x53\x57\x57\x57\x7a\xfc\xf8\x71\x46\x6c\ \x84\xad\xc4\xbe\xd8\x3e\x12\x0c\xa0\x90\xa8\x9e\x7e\xc4\x0d\x4d\ \x61\x1d\x1c\x28\x66\xc3\xfd\xe5\xcb\x97\xf1\x07\x98\x13\xfb\xbc\ \x0e\xad\xba\x1c\x4e\xf4\x1f\x3d\x3d\x3d\xff\xda\xbf\x7f\xff\x89\ \x98\x33\x38\x62\x00\x76\xec\xd8\xb1\xf4\xe6\xcd\x9b\x5f\xc5\x6d\ \xcb\xe2\xc5\x8b\x6f\xd6\xd6\xd6\xd6\x04\xa1\x8b\x7a\x7b\x7b\x5b\ \xcf\x9f\x3f\xdf\xc8\x26\xa8\x24\x92\x84\x51\x18\xc0\x63\xf3\x8c\ \x6d\xbf\x7a\xf5\xca\xae\x27\x77\x69\xa4\xce\x38\x44\xd2\x99\xcf\ \x18\x4c\x0c\x1b\x0e\x01\x2d\x68\x51\x0b\x78\x3f\x63\xd8\xe7\x90\ \x7a\x8a\xe8\x82\xf9\x00\x3e\x7e\x22\xdb\x3b\xe8\xee\x6c\x6f\x6f\ \xff\x26\xf6\xfd\x32\xe6\xdc\x1e\x12\x80\xdd\xbb\x77\xa3\x8b\xbf\ \x7b\xf8\xf0\xe1\x5f\x8e\x1f\x3f\x3e\x3b\xd4\x88\x97\x0d\x37\x10\ \x08\xe1\x79\x06\x91\x1e\x1b\xdb\xdf\x78\x46\x42\x74\x1b\x6b\xe0\ \xd0\x64\x9e\x3d\x60\x8c\x7b\xae\xf9\x6e\xf3\x3d\xaf\xac\xeb\x95\ \x0e\x00\x79\xe7\x19\x1a\x09\x08\x00\xc5\xfa\x38\x4f\xfc\x48\xe6\ \x67\x42\x1b\xae\x1f\x3d\x7a\xf4\x93\x37\x00\xd8\xb5\x6b\x57\x4d\ \xd8\xd0\xd7\xa1\xaa\xeb\x62\x92\x4c\xb2\x10\x1d\xc6\xd8\x14\xbb\ \x85\x38\x09\x18\x16\x00\x36\x86\x39\x1b\xce\x0b\x2d\x81\x30\xc6\ \xed\x23\x01\x80\x2e\x93\x79\x10\x58\xcb\x88\xe0\xef\x87\x0f\x1f\ \x66\x1f\x98\x56\x08\xdc\xd3\xfb\xc3\x24\xeb\x6f\xdf\xbe\xdd\x5b\ \xf4\x85\x9d\x3b\x77\xb6\x44\x38\xfa\x36\x54\xb9\x96\xd0\x93\x27\ \x02\x64\x91\x18\xe3\x61\xf3\x69\xee\xdc\xb9\x29\x5e\x06\x08\x36\ \x96\x30\x89\xcb\xe6\x00\x60\xe4\xea\x3f\x20\xd6\xe6\xfa\x00\x25\ \x08\x6a\x80\xfb\x39\xce\x9a\x39\x40\x87\xd4\x00\x3b\xcc\xf1\x1e\ \xfe\x06\x8d\x20\x7a\x60\x56\x08\x12\x20\x42\xab\x11\x24\xeb\x17\ \xc3\x17\xfd\x09\x5f\x9d\x01\xb0\x6f\xdf\xbe\xc6\x90\xca\xb5\x28\ \x32\xaa\x64\x3a\xcf\x3c\x49\xca\xca\x95\x2b\x13\xed\xc8\x91\x23\ \x20\x9d\x81\x10\x7e\x00\xe9\xe6\x01\xc8\x88\x8e\x82\x86\x8d\x01\ \x8d\x35\xb2\x4d\x6d\x6a\x14\x8d\xb9\x30\xc7\x1e\xd3\xa7\x4f\xc7\ \x79\xf1\x9b\x1a\x02\xe1\x43\x81\x24\x20\xa5\x20\xc8\x38\xe0\x2b\ \x79\xd6\xc0\x0c\xe8\xd6\x0f\xfc\x86\xe3\xfd\x2a\x9e\xf7\x64\x00\ \xdc\xbb\x77\xef\x3f\x11\x77\xab\x54\x53\x99\xd7\xfe\xc9\xb8\x02\ \x31\x9c\x48\x46\xa4\xf3\x24\x16\xfb\x82\x10\xcd\x23\x22\x00\x8c\ \xf2\x2c\x00\xae\x9b\xad\x41\x13\x00\x12\x20\xd6\x46\xa3\xc8\x01\ \xf2\x4e\x50\xa6\x35\x3d\x9b\x29\x71\xe9\x6f\xac\x8d\x83\xc4\xe1\ \x42\x07\xeb\xd2\xb6\x6e\xdd\x9a\xdd\x9f\x3b\x77\x0e\x67\x4d\xa4\ \x40\x0b\x2b\x02\x88\x4f\x8b\x21\xfd\xda\x50\x8d\x9f\xe6\xbd\xac\ \xc4\xa9\x8a\x84\x29\x50\x43\xa2\x80\x81\x84\x4f\x9e\x3c\xc9\x34\ \xc6\xd9\x54\x00\x40\x18\x86\x95\x8e\x25\xec\x0f\x34\x80\x36\x6f\ \xde\x3c\x9c\x2a\x5a\x04\x31\xec\x07\xb8\x86\x34\x9e\x5d\x03\x1a\ \x74\xb6\xec\x87\x76\x71\xcd\xfb\x09\xe6\xb0\xaf\xeb\x93\x1f\x08\ \x36\x91\x20\xfb\x7d\xce\x9c\x39\x19\x38\x57\xae\x5c\x31\x5a\x4d\ \x2b\xc6\x4b\xad\x11\x8f\x0b\xbc\xa8\x63\x73\x41\x91\x9e\x31\x63\ \x46\xb6\xb0\xa9\xea\xc1\x83\x07\x9d\x87\x8a\xb1\xd1\x1b\x6a\xc9\ \x06\xda\xbf\x44\x0a\xc4\xf2\xe5\xcb\x49\x65\x31\x27\x18\x05\x54\ \xcc\x0a\xa2\x19\xd7\x9e\x95\x24\xb4\x20\x41\x34\x0d\x3a\x98\x03\ \xb3\xa8\x3c\x57\x23\x13\x82\x50\x20\x8c\xab\x45\xf8\x37\xae\xbc\ \x57\xea\x5c\x0b\xc5\xd8\xa0\x10\x8d\x7c\x9b\x8d\xf3\x5e\x7f\x48\ \xc6\x68\x10\xc6\x6f\x3c\x03\x00\x0b\x43\x30\x44\xd2\x35\x0d\x43\ \x9f\xef\x31\x8e\x2f\x21\xa5\x25\x09\x82\x69\xf6\x05\x60\xd6\x40\ \xc3\xb8\xc2\xb4\x0e\xcf\x7d\xd5\x4a\xf6\x31\x17\xc0\xff\xb0\x26\ \x6b\x01\x12\x7b\xd2\xa0\x01\x3e\xbc\xd7\x17\xd9\xf3\x0d\x0d\xe0\ \x65\x88\xd0\x86\xe9\x82\x90\x0f\x7f\x02\x61\x1e\xfe\x86\x5d\x6a\ \x7f\x02\xa0\x59\xd8\xc8\xed\x2f\x5e\xbc\x08\x68\x48\x1d\x89\x03\ \x00\x3e\x08\x69\xb2\x2f\x84\xeb\x00\xe9\x32\x8b\xf4\x55\x5b\xe6\ \x40\x07\x6b\xe0\xf0\x58\x83\x88\xc3\x3c\x0b\x26\x53\xeb\x61\x53\ \xec\xa2\x2a\xf4\xae\x4d\x2f\x9d\x6b\x10\x85\xa4\x4a\xd3\x56\x9c\ \x1c\x0c\x10\x26\x91\x0c\x73\xd0\x06\x00\x83\x01\x1c\x14\x6b\xe1\ \xb1\xd1\x1e\xf3\x07\x01\x61\x5d\x68\x45\x73\xb8\x47\x0b\x99\x03\ \xe3\x80\x00\xf3\xbc\x8b\x43\x25\x04\x1a\xc5\xb8\xda\x87\x01\xa0\ \x4c\x0d\xc2\x60\xc0\x06\x51\x48\x18\x55\x85\x50\x7d\x47\x14\x46\ \x5c\x61\x1c\x8d\xc1\x31\xf2\x1e\x0c\xb3\x06\x0c\x41\x1b\x0c\xd2\ \x01\x4d\xed\x83\x31\xd6\xa5\x94\xc6\x79\x5a\x1a\xb3\x47\x36\x7e\ \xff\xfe\x7d\x9c\xec\xb0\xf5\x05\x3e\x20\x95\xbb\x69\x32\x46\x15\ \x98\x8a\x63\x2b\x33\x31\x4d\x0b\x46\xa8\xe0\x32\x82\x97\x2c\x59\ \x42\xb1\xc4\x19\x5f\x69\x46\x88\xb4\x61\x1e\xa6\x59\x03\x86\x01\ \x8e\xe8\x01\xd3\x5c\x71\xd0\xac\xc9\x95\x75\x19\xc3\x54\x4c\xb3\ \x05\xe2\xfd\x6b\x80\x9b\xda\xb0\x47\xc2\x28\x04\x40\xac\x21\x92\ \x2b\xb6\x8f\x39\x00\x00\xe6\x01\xe1\xe6\x0d\xe6\x21\x26\x2f\xfa\ \x03\x7d\x92\x76\x0e\x38\x80\x82\xc6\xa8\x25\x8c\x13\xfa\x58\x1f\ \xad\x1a\xd6\x07\x94\xb3\x11\x26\x21\x02\x50\xb5\x41\xd4\xbf\x94\ \x79\x54\x17\x82\x91\x26\x7e\x40\x4d\xe4\x1d\x23\x8a\x79\x88\xe9\ \x30\x73\x60\xd4\xb9\xcc\x43\x5b\xe4\x81\x39\x00\x05\x20\x79\xc7\ \x6d\x1b\x15\x0d\x30\x03\x63\x63\x25\x44\x83\x59\x01\x80\x09\xa4\ \x4d\xb9\x8a\xad\x32\x66\x4a\x8c\x64\x35\x15\xcf\x0e\x64\xce\x08\ \x01\xc8\x98\x0b\x8e\xd5\x04\x88\xf7\xd4\x06\x43\x26\x9a\x85\x1f\ \x61\x9d\xd1\xd2\x00\xe3\x36\x1d\x86\x70\x4a\x84\xaf\x7c\xa6\x08\ \xf1\x84\x5d\x3d\x39\x0c\xe8\xd4\xb0\x61\xa3\x00\xa0\x31\x6e\x78\ \x86\x79\xde\xb1\xe0\xa1\x13\x05\x04\x3e\x9f\x00\xc1\xb4\x7b\x51\ \x67\x70\xff\x56\x27\x58\x56\x0d\x90\x51\x9a\xea\x8e\x9a\xe7\x55\ \xd2\x3a\x9d\x28\xc0\xb8\x67\x06\x8c\x31\x17\xa6\xb8\x1a\xfb\xcd\ \xf4\x90\x3c\xcf\xfa\x05\x8b\x1f\x9a\xd9\xa2\x69\x35\x60\xd0\x0c\ \x9b\x68\x1c\xfb\x8e\xaa\x06\x68\xab\x4a\xd1\x31\x98\x70\x1e\xfb\ \x43\x38\x04\xeb\xe1\x71\x60\xf3\x66\x2c\x49\x4d\xd3\x3e\x49\x03\ \x13\x42\xdd\xbb\x6f\xa3\x29\x30\x6c\x8d\x60\xde\x6f\xea\xab\x84\ \x87\xca\x1e\xc9\x31\x00\xd5\x7c\xe2\xfd\xfa\x80\x3c\x21\x82\x9b\ \xaf\xda\x54\x55\x88\xb7\xb4\x05\x00\x41\x50\x0b\xe6\xcf\x5c\x9a\ \xfa\x6b\x1f\xa7\xe6\xa6\x96\x54\xdd\x96\x85\x4c\xed\x1d\x46\x74\ \xb6\xac\xc7\x3b\xae\x6f\x04\x92\x27\xfd\x0a\xa6\x88\x29\x00\x40\ \x59\x35\x60\xd8\x23\x2b\x01\xb0\xa9\x01\xee\x2b\xd1\x8c\xe5\x35\ \xa1\x50\xf7\x32\x2d\x58\xb4\x34\x15\xeb\xfa\x52\xb1\xba\x39\x75\ \x90\x2a\xc7\x3b\x66\x99\x9e\x31\xa2\x19\xac\xaf\x29\x5b\xd0\xe5\ \xa3\x10\xe1\xd0\xcc\xb3\xb4\x55\x94\xd3\x07\xc8\xa8\x04\x20\x95\ \x52\x60\xf2\x67\x0e\xf9\x7b\x9f\x3d\x23\x7c\xde\xdf\x1e\xcc\x3e\ \x4a\xb5\x55\xf5\xa9\x3e\xca\xd8\x89\x75\x93\x53\xfd\xec\xc8\x19\ \x1a\xa6\x38\xcf\xf7\x5c\xc3\xee\xfe\x76\x35\x0d\xb0\xde\x04\xa0\ \xdc\x3e\x20\x4f\x40\xbe\xa2\xf3\xde\x4c\xd0\xef\x7f\x30\xeb\x5c\ \xfb\xf7\x31\xbf\xa7\x37\x75\x84\xea\x77\xb5\xb7\xa5\xee\xb6\xf6\ \xd4\x1b\x6a\x3c\x21\xbe\x9c\x0f\xe6\x34\x8c\xf5\x2c\x99\x05\x54\ \xe9\x6b\x86\x66\x93\xac\x5b\xda\x8a\x12\x53\x6e\x00\x8c\xdd\x3a\ \x2d\x9a\xa1\xd1\x33\x02\x55\x9f\x79\x3a\x35\xed\x1b\x6f\x5e\xc5\ \x07\x8f\xfa\xba\xd4\xf7\xbc\x27\x3d\x8d\x32\xb9\xb3\xa7\x3b\xf5\ \x15\x99\xfb\x7d\xc5\x0a\x00\xbc\x83\xa7\x57\xd2\xa5\x25\x38\x7b\ \x50\x83\x70\x1d\x1d\x00\x24\x40\x00\x2c\xb9\x75\x4a\x82\xc2\xbd\ \x85\x92\xcc\x6b\xe3\xcc\xc9\xca\xe3\xca\x42\x7a\x45\x32\x55\x5d\ \x91\xba\xba\x3b\x23\xb7\x4e\xa9\xab\xb3\xcb\x13\x6b\x22\x06\x60\ \x19\xf7\x65\xdc\xc6\x98\xc5\xd2\x90\xad\xa8\x57\x2e\x57\xf3\x24\ \x57\x42\xcc\xe3\x21\x42\x7f\x03\xb1\x66\x7e\x48\x0e\xdb\xa4\x9b\ \xfe\xe6\x6d\x96\x10\x56\x37\xb3\x21\x4d\xa8\x9c\x98\xba\x7a\xbb\ \xd2\xa3\x2b\x0f\x01\x0c\x2d\x61\x4d\xee\xcd\x1a\x3d\x87\x54\xab\ \xbc\x1f\xdd\x54\x18\x06\xf2\x84\xc0\x84\xa0\xd0\x4c\x7a\x90\x9a\ \x80\x51\x10\x91\x12\x23\xfd\x7c\xf1\x83\x60\x3c\x95\xce\x67\x82\ \xda\x33\x8c\x73\x82\xb4\x60\xc1\x02\xcf\x27\x05\xd8\xc4\x89\x44\ \x69\x74\x8b\x21\x9d\x9a\xcd\xb3\x3a\x80\x80\x60\x6d\x14\xd5\x67\ \x0c\x66\x01\x8a\xda\x3d\x3e\x5b\x65\xc0\x18\xeb\xad\x05\xb4\x65\ \x41\xf0\x9c\x32\x3e\xdb\x71\x40\x2b\xd0\xcc\xc9\x3b\x42\xb5\x84\ \x3d\x47\x4f\x03\x4c\x47\x05\x82\x67\x08\xf1\x68\x8b\x31\x99\xf6\ \xd0\xd3\x12\x1a\x10\x50\x79\x6b\x04\xab\x41\xdf\xf1\xec\x12\x9a\ \xa9\x20\x39\x12\xf3\x5c\xd0\x33\x4a\x80\xf5\xd3\x1d\xe6\x05\xf3\ \xa3\x75\x20\x62\xfd\xaf\xf3\xd3\x0c\x60\xca\x6a\x4d\x02\x21\x1a\ \x40\xf2\x1f\x47\x19\x83\x21\x8b\x17\xa4\xed\x3c\xc3\x27\x5f\x77\ \x00\x94\x4a\x12\x06\xd9\x03\xe6\x35\x09\xfd\x0f\x42\xe0\x58\x8c\ \xdf\x46\xd7\x07\x58\xcf\xeb\x84\x54\x77\x2b\x40\x98\x32\x13\xb4\ \x74\x36\x1c\xf2\x9b\x45\x8b\x15\x9d\x1f\x52\x61\x44\x8f\x1e\x5f\ \xaa\xd1\x0e\x4f\x95\x00\x8f\xf7\x33\xa0\x3c\x29\x6a\x6e\x6e\x36\ \xed\x1d\x55\x1f\x20\xc3\x1e\x45\xeb\x18\x01\x85\x7c\xdc\x83\x4e\ \xf3\x7a\x01\x31\xf4\xe1\x20\x61\x54\xd3\x00\x00\xde\xa1\xf6\x67\ \x1d\xd7\xd4\x21\x5a\x4c\xb1\x27\x63\x74\xd6\xc0\xf9\x01\xfa\x88\ \x00\xe0\x0b\x71\xb9\x01\xc0\xa1\x69\xbf\x66\x6c\x48\x0b\xf5\xd5\ \x57\xc0\xb8\xde\xde\x52\xd7\x44\x4a\xa6\x4a\x73\x0b\x55\xde\x22\ \x27\x9f\x0c\x79\x62\x84\xf4\x31\xbb\x11\x29\x6c\x31\x50\xae\x61\ \xd1\x72\x54\x7f\x36\x88\xb3\x04\x2e\x05\x06\x10\x20\x54\xe7\x05\ \x13\xac\x81\xdd\x23\x71\xa5\x6a\x6d\x60\x46\x49\xb7\xb6\x27\xf9\ \xf1\x54\x29\xff\x75\x8a\x77\xf9\xd6\xc0\xbc\xb5\x6b\xd7\x72\xec\ \xa6\x06\xe9\x24\xf9\x2e\x21\xdd\x00\xde\x87\x06\x34\xf0\xf0\x0e\ \xcd\x8c\xee\x6d\x5a\x80\x2d\x2a\x39\xbb\xc7\xde\x10\xe7\x87\x0d\ \x08\xf1\x4b\x8e\xa7\xba\x1e\x8c\x70\xc6\x0f\x53\x00\xc5\xf1\x39\ \x6b\xc8\x98\xef\x20\x6d\x00\x63\x3d\x2b\x4e\x2a\x40\xd6\xf6\x3d\ \x40\xf5\xbc\x01\xba\xa0\x01\x20\x6f\x15\xf9\xdb\x5b\xff\x14\xed\ \xc7\xb6\x7c\xf5\xa5\xbd\xea\xfd\xd9\xc0\xdf\x4a\x9b\x4e\x12\x8f\ \x0e\x51\x48\x15\xa2\xf3\x69\x33\x34\xd1\x79\x9f\x64\xc7\x46\xe6\ \x67\x68\x33\x29\xe2\x7d\x4b\x5d\x01\xf8\xee\xbb\xef\x86\x22\x59\ \x00\xd1\xd0\xb3\x11\x49\xfe\x5b\x8c\x81\x9b\x64\x5a\x6c\xca\x22\ \xf9\xd8\x9b\xaf\xeb\xed\x2c\x6e\x4d\x0f\x61\x7e\xa8\x90\x28\x8f\ \xb8\xec\x6e\xea\xb5\xa4\x79\x86\xef\x91\xd8\x70\x69\xb9\x66\x82\ \xcf\xf0\x0b\xb6\xe7\x83\x23\x31\x57\xfd\xc7\x85\xf8\xfb\x86\x2f\ \x63\xa8\xad\x18\x52\xea\x08\x6f\x79\x28\x08\x5f\xef\x5f\x58\x04\ \x83\x32\xe2\x55\xe2\x65\x12\x2f\x3f\x10\x44\x7c\x1b\x8f\xcf\xf2\ \x69\xae\xcd\xf8\x3e\x82\x26\x38\x95\x01\xe8\xd4\x58\x63\x7a\xd0\ \x50\x13\x9d\xbf\x57\x80\x3e\xf6\x1b\x88\xf1\xbe\xb8\xbc\x88\xa9\ \x8f\xc3\x41\x3e\x09\xa0\x7e\x6c\x02\x83\xd0\x3a\xc2\x9c\x2e\x45\ \x38\xfe\x3a\xd6\xbb\xc0\x29\x7e\x21\xfe\xf6\x7e\x52\x2c\xbc\x3a\ \x54\xf6\xf3\x40\x77\x59\xfc\xf0\x13\xfe\xcc\x8d\xf9\x79\xc9\x4b\ \x67\x34\xa0\xbe\x1d\xb6\x74\x24\x88\xf8\x5f\xbc\xdb\x99\xde\x4f\ \x73\xc3\x42\xb4\xd7\x65\xc8\x4f\x90\x0e\xb4\x12\x1b\xef\x45\x7f\ \x12\x7f\x71\xfa\x3a\x0b\x81\xf1\xf7\x7d\xd3\x02\xed\x96\x60\x66\ \x6e\x3c\x83\x7e\x7d\x00\x41\xfd\xca\xef\x48\xb2\x10\x9d\x7b\xfa\ \x60\xdc\xb3\x50\x7b\xcc\xb9\x16\xd7\xa7\x69\x6c\x34\x40\xec\x23\ \x68\x04\xe3\x7d\x0e\x9a\x03\x00\x42\x15\x99\x6c\xf4\x9a\xe8\x18\ \xa2\xfa\xeb\xb5\x40\x67\x21\x54\x07\x7f\x44\x07\xc5\x34\x86\xdb\ \xf8\xbf\xce\xa6\x34\xfe\x5f\x63\xe3\x00\x8c\x03\xf0\x11\xb7\xff\ \x03\x7f\x19\x0a\xe4\xd7\x62\x63\xda\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x15\x14\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x14\x91\x49\x44\ \x41\x54\x78\xda\xe5\x5b\x79\x8c\x64\xc5\x7d\xfe\xbd\xa3\x8f\xe9\ \xee\x39\x76\xa6\x97\xdd\xb9\x96\x3d\x66\x61\xef\x05\x61\x6c\xae\ \xa0\x38\xb6\x20\x4e\x2c\x22\x27\x32\x09\x92\x0f\x14\x20\xc6\x81\ \x18\x84\x92\x08\x59\x8a\x30\x7f\x18\x04\x09\xe0\xf8\x08\x47\x24\ \xa2\x24\x76\x14\x9b\x80\xf3\x4f\x0e\x27\x86\x80\xc3\x61\x60\x31\ \xe6\xb0\x21\xbb\xec\xb2\xf7\xce\xf4\x4c\xcf\xf4\xdd\xfd\xae\xaa\ \x7c\xbf\x7a\x5d\xf3\xfa\x98\x49\xef\xb4\x90\x65\x29\x65\x7d\x54\ \xbd\x7a\x47\xd7\xf7\xbb\xab\x66\x6d\x48\x29\xe9\xff\x73\xb3\xe9\ \x97\xb8\xbd\x74\xed\xb5\x03\x9e\xeb\x66\x09\xf0\x84\x18\x23\xe9\ \x67\xa5\x2f\xb3\x42\x88\xac\x14\x18\x63\x4e\x04\x22\x2d\xfd\xe0\ \xdf\x7f\xf3\x95\x57\xfe\x8a\xfa\x68\xbf\x30\x0b\x78\xef\x4b\x5f\ \x4a\x54\x3d\x2f\xeb\x48\x37\x6b\xf8\x41\x96\x04\x88\x04\x04\x02\ \x41\x56\x92\xc8\x52\x20\x43\x52\x52\x8c\xc9\x40\xe0\x9e\x60\x82\ \x29\x89\x87\x70\x4d\x18\x87\x08\x02\x12\xd1\xb8\xd9\x8b\xc6\x46\ \x21\x86\x2e\x3a\x70\xc0\xfb\x85\x58\xc0\xcf\xef\xbe\x3b\x6e\xd5\ \x6a\x59\xd7\xf3\xc6\x4c\xc3\xc8\x0a\x62\x12\x06\x2f\x18\x3d\x8d\ \x19\x22\xc8\x0a\x49\x59\x92\x4c\x42\x86\x7d\x20\xd3\x20\x47\x06\ \x6e\xa0\x03\xd0\xf3\x80\x00\x26\x21\x19\x12\x64\x00\xdc\x23\xd9\ \x84\x7a\xae\x1d\xb4\x0c\xd2\x73\xc9\x63\x52\xee\xbc\x88\xe8\xcd\ \x0f\x44\x00\xef\xdc\x79\xe7\xed\xe5\xb8\xbd\x29\x79\xe2\xe4\x88\ \xb1\x6e\x24\x26\x0d\xca\x1a\x64\x8c\x11\x48\x12\x49\x80\x06\x7d\ \xe2\x26\xa1\x38\xee\x42\x32\x7a\x61\x22\xec\x43\xed\xf0\x98\xfb\ \xe6\x75\x04\xb9\x32\xa4\x86\x88\xde\xd7\x08\xaf\x43\x88\xf6\xdf\ \x34\xa4\x7f\x01\x7d\x10\x02\x78\xec\xc2\x0b\xbf\x72\xc5\x95\x97\ \xdf\xe5\x98\x43\x94\x1a\x18\xa0\x40\x88\x90\xaa\xc1\xff\x55\xff\ \xa1\x50\xf4\x7a\x28\xc3\x61\xa4\x9d\x88\x74\x34\x56\xef\x5a\xa9\ \x34\x05\x8d\x3a\x5c\x99\xcd\xda\x65\x33\x50\x30\x63\x36\xe6\x1b\ \xe1\xb5\xd0\xc4\xf1\x46\x32\x41\xa4\x85\x55\xa9\xb4\x0b\xa3\xc3\ \x2a\x84\x30\x2e\x30\x0c\xe3\xef\x25\x5a\x5f\x02\x30\xd0\xee\x98\ \x9e\x4e\xce\x0c\x0f\xdf\x5e\x2f\x95\xa9\x54\x2c\x53\x76\x7c\x9c\ \xfc\x72\x89\xc8\x34\x69\xb5\x66\x26\x12\x24\xea\xf5\x48\x10\xe1\ \xe2\x99\x8c\xd6\x54\x48\xcc\x60\x01\x0c\xa0\xc7\x3b\x98\x0b\x6a\ \xfc\xb2\xa5\xe6\xfc\x5a\x83\xac\xc1\x21\xf4\x35\xb2\x86\x06\xc9\ \xcd\xcd\x13\xa5\x53\xca\xf7\x85\x03\xc1\x60\x5e\x13\xee\xd6\xbe\ \xb6\x00\xb1\xbf\xa9\xa1\xb5\x0b\x80\xc9\xf3\x72\x3c\xa2\x6d\x41\ \x10\x0c\xd7\xf0\x83\x85\xa5\x22\xc5\x76\xee\xa4\x5a\x6e\x8e\xcc\ \x64\x52\x4b\x49\x6b\x5d\x75\xf1\x6c\x96\xbc\x42\x81\x12\x1b\x36\ \x52\x50\xad\x84\x6b\xf1\x3d\x32\x62\x31\xe2\x4f\x06\x9e\x47\xd6\ \x40\x4a\x09\xa8\x31\x3f\xaf\x34\xeb\xd7\x41\x36\x99\xc4\x3b\x1b\ \xc8\xc9\xe5\x48\xb2\x65\xc0\xd2\xbc\x7a\x95\xc8\x32\xc9\xaf\xd6\ \xc8\x84\x50\x02\xd7\xa3\x00\xe4\xf9\x5d\xe9\xba\x91\xf6\x05\xf7\ \x1d\xae\x80\x1e\x2a\xda\xcb\x2b\xec\xd7\x05\x0c\x20\x31\x57\xaf\ \xaf\x9f\x49\xa5\xa8\x86\x1f\x75\xaa\x55\xb2\x86\x47\x28\x60\xe9\ \xc7\xe2\x78\xa2\xfd\xeb\x12\x30\x2c\x1b\x8b\x74\x48\xb8\x0e\x34\ \x08\xcd\x2d\x2c\x28\x72\x36\xb4\xe9\x2c\x2e\xc2\xb4\xe3\xea\x9e\ \xa4\xd0\xff\xb5\x00\xdd\xa5\x25\x08\x6e\x89\x04\x5c\x21\x58\x2a\ \x34\x4d\xbe\x33\x3e\x04\xaa\x27\xdb\xc2\x37\xbc\xe8\x9e\xd4\x71\ \xa5\x45\x18\x00\xfe\xb3\xfe\x9b\xdb\xb7\x8f\x43\xf0\xa7\xd6\xe2\ \x06\x76\x53\xfb\x16\x90\x2e\x04\xc1\x04\x07\xb0\x06\xfc\x31\x33\ \x98\x21\x7b\xdd\x08\x49\x98\xa7\x1c\x0c\x34\xe9\xb6\xe6\x2c\xcc\ \x2b\xc2\x0d\x68\xd2\x4a\x24\x95\x86\xdc\x52\x99\x4d\x5b\x49\xab\ \x7e\xfa\x54\x4b\x1c\x90\x54\x3b\x71\x42\xbb\x84\x26\xda\x41\x5e\ \x32\xda\xef\x35\x7c\xfd\x8d\x2e\x17\x00\xda\x2c\x63\x90\x88\x03\ \xe1\xa9\x7e\x2c\xc0\x04\x52\xae\x54\x45\x06\x39\x8e\x4b\xe7\x6c\ \x9f\x21\xd7\x07\x71\x19\xe6\xdb\x95\x4c\xc0\x87\x95\xe8\x00\x28\ \x3c\x8f\x47\xa1\x99\x57\xca\xad\x01\x31\x22\x2d\x23\x82\x3a\x4b\ \x44\x02\x88\xae\x89\xc1\xf9\xde\xf7\x29\xf0\xb9\xf7\xd4\xd8\xc7\ \x98\x94\xba\x2c\x32\x01\xb8\x5a\x28\x6c\xdc\x93\x58\x0b\xc8\xec\ \xc3\xdd\x7f\xe9\x57\x00\x31\x43\xca\x14\x2f\xd2\x81\xcf\x4d\xcf\ \x6c\xa3\xea\x7c\x8e\xcc\x78\x3c\x5c\x54\x77\xd3\xe4\xa3\x6c\xa0\ \x53\x22\xe9\x34\x18\x09\x81\x05\x20\x02\xc1\x71\x21\x04\x2f\x1a\ \x40\xaf\x82\xac\x61\x59\x80\x0d\x60\x8c\xdf\x34\x6c\x9b\x6c\xcc\ \xc7\x00\xa4\x60\xf0\xe4\x9e\xf8\x79\x95\x31\x82\x3a\xe0\x38\xe1\ \x98\xdd\x8c\xb3\x89\x94\xfb\x74\x20\xec\x27\x0d\x9a\xf0\xd1\x18\ \x2f\xd6\xf3\x7c\x15\x7c\x2a\xe5\x1a\x0d\x20\x1a\x3b\xda\x02\xba\ \x9a\x04\x09\x90\x0a\x3c\x28\xc1\x67\x2b\x08\xb5\x16\x04\x4c\x46\ \x91\xb0\x00\xee\xc9\x8e\x21\x63\x58\xb8\xb6\xe0\xd6\x36\x00\xc2\ \x26\x60\x19\xca\xc7\x03\xfc\x9e\xd0\x84\x18\xd0\xa8\xaf\x2d\xa4\ \x37\x94\x0b\x58\x3a\x10\xf6\x15\x04\x81\x79\xdf\x2f\xa2\x57\x64\ \x3c\x04\xb1\x52\xb5\x4e\x83\x08\x84\x8d\xc5\x3c\xd5\x0a\x45\x12\ \x2c\xa5\x78\x8c\x4d\x4f\x59\x86\x65\xa1\xcf\xc4\xc8\x42\xb0\x8b\ \xc7\x98\x5c\x1c\x81\x2f\xd4\xa2\x6c\x92\x11\x8a\x90\x43\x3e\x7a\ \x59\x87\x90\x9a\xe6\xee\xb7\xb9\x40\x38\xa6\x68\xdc\x01\xd9\x1b\ \x52\x32\x89\xed\x9f\xdb\xb0\x21\x89\xb0\x56\x93\x68\x6b\x2e\x84\ \xde\xaf\xd7\x17\xf1\x96\xd2\x60\xad\x5c\xa6\x42\x2e\x4f\xe7\x5e\ \x3c\x4d\xf2\xd4\x29\x1a\xdb\xb5\x8b\xcd\x34\x24\xa5\xc9\xb9\x0e\ \x08\x42\x73\x24\x55\x40\xf6\xa8\xc5\x0d\x80\xee\x9e\xc9\x74\x8e\ \x55\xdf\x4d\x3e\x22\x06\x88\xff\x1b\x62\x19\xb1\xcb\xe2\xf1\xdd\ \x7f\x47\xf4\x6a\x3f\x2e\x20\xab\x41\xe0\xba\x42\xa0\x0b\xd2\xb5\ \x5a\x9d\x4a\x88\xee\xf6\xc8\x88\xd2\x62\xf5\xd8\x51\x8a\x9a\xe2\ \xd4\x51\x15\x46\xe4\x69\x45\x41\x88\x96\xba\xbe\x83\xb0\x5c\x51\ \x00\x6d\xe4\x68\x19\xb2\x1b\x32\x42\xd2\x90\xfb\xa9\x0f\x01\x48\ \x40\x00\x7e\x2d\x08\x0a\x83\x42\xa4\x51\x0b\xf0\x02\xb8\x16\x50\ \x5a\x36\x06\x92\xd4\x91\x06\xda\x3b\x29\xb5\x30\x34\xe9\xae\x80\ \xa8\x02\x2c\x4a\xda\x0a\xfc\x7b\xdd\xd8\xd8\xea\xfb\x85\x8e\x31\ \x45\xa6\xde\x91\x39\xba\x61\x0a\xc4\x81\x35\x34\xb3\x85\x8d\x0f\ \x78\x2c\x00\x5d\x0b\xf0\x22\x25\x07\x31\x21\x9b\x5b\xd2\x20\x44\ \xc0\x10\xcb\x73\x22\xda\x96\x02\x3c\x0e\xaf\x45\x73\x4e\x00\x7c\ \x5d\x02\xf9\xe9\xcf\x5f\x4f\x57\x3d\xf1\x4f\x3d\x82\x5a\x07\xf9\ \x88\xb4\x86\x16\x52\x17\x8c\x30\x15\x9a\x6b\xb2\x00\xad\x7d\xc0\ \xad\x0a\xb1\x14\xd6\x02\x1e\x4d\xef\xdd\x4d\xd5\x85\x79\x15\xf0\ \x7c\xd1\x91\x09\xb4\xb6\xa3\xb1\x4a\x51\x25\x54\x83\x23\xe7\x9c\ \xb3\xe2\x26\xe9\x43\xbf\xf3\xdb\x34\x75\xc3\x0d\x61\x4e\xe7\x32\ \xd9\x30\x75\x31\x13\x91\x6d\x89\x0d\xb4\x7a\xb1\xc4\x58\xd9\x02\ \xa4\x54\x99\xa0\x1f\x0b\xf0\x00\xa7\xe4\xfb\x0b\x4a\x00\xae\x4b\ \xe3\x5b\x36\x43\x00\x79\xb2\x32\x19\x12\x5a\xbb\x80\x50\x50\x1a\ \x6e\x5a\x44\xd8\xdb\xdb\x66\xe8\x23\x7f\xf9\x75\xf2\x38\x40\x0a\ \xfd\x7c\x84\xc3\xdf\xfd\x2e\xcd\x7e\xff\x29\x32\x6d\x9b\x2b\x47\ \x6d\x29\xcd\xf7\x57\x44\x37\xf9\xd5\xef\xeb\xc0\x34\x7a\xcf\xc6\ \x8d\x53\x06\xda\x59\x09\x40\xa2\xb5\xb8\x80\x5b\xf4\xfd\xbc\x4e\ \x85\x41\xb1\x48\x65\x04\xc2\xf8\xc8\x3a\x6d\xd2\x0a\x32\x22\x17\ \xb9\x01\xfa\x0b\xef\xb8\x83\x26\x2e\xbb\x8c\xec\x89\xc9\xe5\xc5\ \x89\x96\xde\x01\xe9\xd2\x1b\x3f\x25\x6e\x89\xb1\x51\x7d\xef\x2c\ \xd1\xed\x0a\xd1\x39\x41\xd8\x8b\x26\x91\x75\xa6\xb9\xbf\x1f\x0b\ \x08\x00\x37\x1f\x04\xf3\x4d\x01\xe0\x22\x4f\xc5\x33\x67\x38\x13\ \x70\x5e\x6f\xd7\xa8\x5e\x8c\xb6\x06\x3c\x9f\xc0\x73\xdc\xce\xbf\ \xe9\x26\x65\x05\xd1\xf3\x91\x96\x1b\xc7\x4f\x10\xb7\xf4\x94\x12\ \x92\x16\x60\x6f\xd2\x00\xbb\x4d\x19\xbb\x4f\x07\x75\x48\xd5\x0f\ \xa8\x5c\xa9\x44\xf7\x23\x22\xaa\x24\xee\x27\x0b\x28\x01\x9c\x74\ \xdd\x39\x2d\x80\x4a\xa5\x4a\x65\x6c\x63\xed\x4b\x2f\x21\x62\x01\ \x74\x58\x95\x6c\x19\xc7\xb0\x71\x5a\x78\xe6\x69\x4a\xc2\x5d\x26\ \x7f\xfd\x13\xf4\xf3\x8d\xe3\x24\x72\xf8\x54\x47\x3d\x50\x9f\x3b\ \x43\xdc\x52\x9b\x36\x93\xfc\xef\xe7\x95\xf6\x3c\xc7\x51\xd6\x60\ \x59\x5c\x8c\x1a\x51\x0c\x68\xf1\x7f\xc7\xb2\x69\xc7\xcd\x37\xd3\ \xf8\xee\xdd\x94\x9a\x9c\xa0\x81\x2d\x5b\xa8\x84\xcd\xd5\x0f\xaf\ \xba\x5a\x0b\x40\x5b\x00\x7f\xe3\xac\x4b\x62\xb3\x23\x0d\x7a\x67\ \x1c\x27\x1f\x80\x3f\x2f\x88\x53\x61\x65\x69\x29\xac\x05\x5c\x57\ \xbb\xc0\x8a\xae\x30\xb8\x65\x2b\x15\x5f\x7f\x8d\xe6\xfe\xfa\x51\ \xe2\xb6\xeb\xd6\x5b\x61\x05\x4e\x97\x1b\x94\x17\xf2\xaa\x64\x4e\ \xcf\xcc\x50\x15\x5b\xe1\x7a\x22\x41\x9b\x10\x18\x67\xf0\xfc\xd8\ \x27\x7e\x83\x8a\xd5\x2a\x07\xd3\xb6\xb8\x20\xd6\x8d\xd2\xd5\x88\ \x1f\x23\xcf\xfd\x90\xde\xfd\xcc\x75\xf4\xda\xaf\x5e\x49\x87\x2e\ \xff\x08\xd1\xf3\xcf\x61\xc5\x1e\x2f\x3e\x82\x61\xe8\xb3\x01\x73\ \x0d\x2e\xd0\x96\x09\x9c\x1a\x4a\x62\x5e\x6c\xbd\x56\x23\x1b\x87\ \x15\x46\x12\xd0\x64\x3b\xd1\x9c\x1f\xde\xbb\x8f\x6a\xef\x1d\xa6\ \x93\x67\xe6\x68\xe1\x3f\x7e\x40\x93\x57\x5e\x49\xf1\xe9\xe9\x76\ \x17\x00\x1c\x69\x50\xf9\xf0\x61\x9a\xfa\xd8\xc7\xe8\x92\xfb\xef\ \xa7\x5f\xf9\xbd\x6b\x69\x6b\xad\x44\x5b\xb7\x6f\xa3\x2b\xee\xbd\ \x97\x7e\xf7\xc0\x6b\x14\xdb\xb6\x4d\x93\x57\xc2\xf8\xe8\xe3\x8f\ \x53\xe1\x1f\xbe\x4d\x07\x7e\xf2\x16\xe5\x92\x69\xca\x25\x52\xf4\ \xe6\xdc\x22\x3d\xff\xe5\x3f\xa3\xa0\x9d\xbc\xb6\x80\x99\xcf\x8c\ \x8e\xa6\x0c\xb4\xb5\x08\x40\x67\x02\xb7\x2e\x44\x41\xb0\xbf\xc2\ \x34\x37\x4c\x4f\x51\x0d\xfb\x02\x2b\x91\xe8\xf6\x51\xf6\xfd\xe6\ \x31\xf5\xe8\x85\x17\xaa\x78\x11\x90\x41\x73\x8f\x3e\x4c\xdc\xf6\ \xdc\x76\x1b\x9b\x77\x18\x24\x01\xd9\x44\xf5\xd0\x41\xb2\x90\x5a\ \xe7\x1f\xf9\x16\x1d\x78\xe4\x51\x7a\xfe\xdb\xff\x48\xaf\xdc\x74\ \x23\x9d\xbe\xe5\x0b\x14\x1f\x1a\xa2\xab\xbf\xf3\x1d\x92\xc3\xc3\ \xea\xd9\x91\x7d\xfb\x68\xdd\x79\xe7\xd1\xd1\xe7\x7e\x44\x42\xca\ \x36\x9f\xaf\x5a\xf6\x32\x79\x11\x92\xd7\xb0\xf6\x0d\x0c\xec\x5e\ \xab\x05\xc8\x65\x0b\x08\x82\x25\xa1\xb6\xc5\xa8\x05\x76\x9c\x4f\ \x75\x6c\x86\xec\x74\xba\x4d\xf3\x82\xa1\x83\x97\x65\x71\x90\xc4\ \xf3\xbe\x9a\x3b\xf2\xde\xfb\x94\x7b\xee\x39\x9a\xb8\xe2\x0a\x4a\ \x6c\xdd\xd6\x6e\xce\x40\xfd\xbd\xf7\x88\x5b\x11\xd6\xe0\x41\x60\ \x30\x78\x2a\x26\x53\xf4\xda\x7f\x3e\x43\xb3\x4f\x7c\x8f\xe2\x38\ \x5d\xda\x7c\xcd\x35\xea\xd9\xb1\xcd\xe7\xaa\xa5\x35\x82\xa0\x8d\ \xbc\x86\xe8\x20\xaf\x91\x20\xda\xdf\x8f\x0b\x78\x80\x53\x0e\x82\ \xbc\x3e\x18\xd9\x30\x31\x8e\x54\x38\x4f\x71\xf8\xa1\xce\xfd\xdc\ \xcb\x65\x04\x34\xb4\x79\x33\x39\x88\xfa\xd6\xf9\xe7\xd3\xf0\x47\ \x7f\x8d\x36\x7f\xf1\x8b\x94\xda\xba\x95\xb8\xed\xbd\xfd\x76\x58\ \x41\xa3\xcd\x0d\xea\xcd\x7d\x45\x72\x6a\xaa\xad\x62\x74\x0d\x93\ \x72\x4f\x3e\x41\x68\xec\x42\x6a\xce\x32\x0d\x15\x40\xd3\xbb\xf7\ \xa8\x5e\x10\xb5\x41\x76\x93\x57\x73\xb1\x30\x13\x9c\x9d\x0b\xb4\ \xd6\x02\x5a\x00\xcb\xa9\x90\xb7\xc5\x73\x73\x64\x8f\x8e\xf2\x81\ \xa7\x2e\x75\x23\x60\x91\x23\xf0\xff\x31\x04\xb5\x8b\x2f\xb9\x98\ \x76\x0a\x97\xb2\x2f\x3c\x4b\xf9\x9b\x7f\x9f\x4a\xaf\x1d\xa0\x89\ \xcb\x2f\xa7\xd4\x8e\x9d\xad\x6e\x00\x01\x1c\x0b\x53\x21\x22\x79\ \xe7\x5f\x7e\x4e\x1f\x3c\x48\xaa\x35\x35\x5e\x7b\xe9\x45\x95\x48\ \x66\xbe\xf0\x07\xe4\x0a\xd1\x45\x94\xd7\x68\x66\x32\x5d\x71\x80\ \x4c\x53\x95\xc4\xfd\xb8\x80\xbb\x84\x5a\xa0\x55\x00\x95\x85\x05\ \x95\x09\x60\xe3\x6a\xb1\x11\x42\x52\x59\x14\x3f\x07\xaf\xff\x2c\ \xfd\xf8\xe1\x47\xe8\x85\x1f\x3c\x4d\xaf\xbc\xf5\x0e\xfd\xf4\x64\ \x8e\x4e\xdf\x77\x2f\x71\xdb\x87\x02\x89\x33\x82\x7e\xaf\x78\xf2\ \x64\x28\x80\x6d\x33\x1d\x55\x20\x22\xc8\xba\x31\xe2\xe6\xe7\xe6\ \xd4\xdc\xc9\xa3\x27\xa8\xf8\xc2\xf3\xb4\xfe\x82\x0b\xe8\xa2\xfb\ \xef\x23\xc7\xe0\xc0\xef\xa9\x2d\x7b\x1d\x19\x63\xe6\xfa\xeb\xe9\ \xdc\x5d\x3b\xda\xc8\x03\x4c\x6c\x37\x77\x06\xda\x5a\x04\x10\x00\ \xde\xac\xeb\xe6\x42\x25\x04\x61\x2d\x80\x54\x68\x8d\x0c\xf3\x2f\ \x33\xe1\x08\xbc\x78\x32\x68\x74\xcf\x1e\x3a\x8e\xe8\xef\xe1\x73\ \xa2\xa5\x34\x3e\xfc\xd6\xdb\x54\x7c\xf5\x15\x1a\xbf\xf4\x52\x1a\ \xdc\xb7\x77\xb9\xe0\xa9\x14\x4a\xe4\xe0\x9b\x53\x57\x5d\x15\x1e\ \x8c\xa8\x6f\x85\xef\xc5\xd9\xd2\x30\x97\xff\xdb\xbf\x51\xbd\x87\ \xf5\x1f\xbe\xe5\x66\x72\x20\xb4\xed\x9f\xfe\x34\x7d\xea\xc7\x2f\ \xd1\x87\x1e\xf8\x73\xda\xf5\xa7\x7f\x42\xd7\x3c\xfb\x5f\x34\x99\ \x1d\xa1\xf7\x5f\x7e\xb5\xcb\x15\x70\x3d\x72\xe7\xfa\xf5\x9b\xd6\ \x6a\x01\x02\xf0\x8e\x3b\xce\xac\x3e\x18\xe1\x5a\xa0\xc6\x47\xe4\ \x99\x41\xf6\x95\x76\x0b\x10\xf0\xff\x6d\x5b\xa9\x7c\xe8\x10\x79\ \xbe\xaf\x49\x2c\x9b\xb5\x83\xcf\xcf\x7e\xf3\xeb\xc4\xed\xc3\x5f\ \xbd\x87\x5c\x37\x14\xa0\x4f\x52\xbd\x93\x04\xd9\xf1\x4f\x7e\x92\ \xaa\xa5\x32\x79\xae\x4b\x55\xa4\xdd\xf3\x6e\xb9\x85\x16\x1e\x7b\ \x98\x0e\xbe\xfe\xc6\x32\x99\x83\x85\x0a\xfd\xec\xea\x8f\x53\xe9\ \xbe\xaf\x92\x3c\x7e\x8c\xa6\xf6\xef\xa7\x2d\xd3\x93\xe4\xdf\x73\ \x37\xbd\xf9\xb5\xaf\x93\x6f\x9a\x7a\xf1\x6d\x41\x71\x5d\x22\xb1\ \x6f\xad\x7f\x1a\x93\xcd\x2d\x71\xd5\x05\xe2\x52\xa6\x6b\x58\x54\ \x06\x0b\x75\x0a\x4b\x2a\x15\x7a\x22\x68\x2b\x03\xc7\x90\xfe\xaa\ \x47\xdf\x57\xd6\x80\xd6\x7e\x26\x80\xf6\xb3\x67\x7f\x44\xd3\x48\ \x8f\x9c\xca\xf6\xdd\x75\x17\xbd\xf9\x8d\x6f\x90\x84\x4b\x79\x20\ \x22\x2f\xba\x88\xae\x7c\xe8\x21\xda\x7b\xe3\x8d\x94\x3b\x70\x80\ \x86\x51\xe1\x89\x27\xbf\x47\x2f\x3e\xf1\x14\xb9\x76\xac\xad\xbc\ \x3d\x58\xf7\xe8\xc8\x63\x8f\xd3\xc8\xb7\x1e\x26\x5b\x08\x95\x02\ \x17\xe3\x49\x68\xda\xea\x8a\x0b\x7a\x6c\x87\x99\xe0\x9f\x01\xd9\ \x4b\x00\xdd\xc5\x10\x6a\x81\xb4\x10\x69\xce\x04\x93\xe7\x9f\x87\ \x5a\x60\x89\x62\x48\x4f\x75\xc4\x04\xdd\x1a\x8d\x3a\x4d\x5e\xf3\ \x5b\x34\xff\xfa\xeb\x54\xc4\xbe\x61\xa8\xb9\x17\x90\xa1\x10\x54\ \xae\xbf\xf0\xa1\xaf\x91\x09\xed\x96\x9f\x7d\x86\x26\x93\x71\xca\ \xde\x74\x03\xfd\xcf\x93\x4f\x51\xee\xa1\x07\xe8\xc4\x1f\xfd\x21\ \x65\xb0\x75\x8e\x65\xd2\xe4\x97\x2b\xf4\xf6\x99\x59\xca\xc7\x07\ \xc8\x67\xf2\x11\x21\x2d\x04\x95\x25\xe6\x70\xbf\x93\x28\xb0\xe2\ \x1c\x59\x96\xca\x04\x6b\xb6\x80\xa6\x00\xb8\x16\x98\xe4\x6d\xf1\ \xae\x5d\x3b\x69\xfe\xf8\x49\x8a\x83\xa0\xc0\xde\x80\xdb\x10\x0a\ \x94\x4b\x60\xae\xe9\xc1\x0c\xc5\x21\xa0\x8f\x3f\xf8\x00\xbd\xfc\ \x95\xbb\x49\xb6\x1e\x93\xc3\x75\xe6\x6f\xbd\x99\x8e\xc1\x35\x1a\ \x56\x4c\x11\xf0\x0d\x43\xf5\xa7\xf8\xbe\x95\x20\xca\x17\x49\x02\ \xdc\x64\x22\x15\x2d\x7e\x05\x82\xd4\x83\x78\xe7\x9c\x85\xb3\x81\ \x66\x20\x14\x12\x6d\x2d\x16\xe0\x56\x5b\x6a\x81\x61\x90\x3c\x82\ \xa8\x3c\x9e\x5d\x4f\xf4\xee\x3b\x61\x9e\x7d\xfb\x4d\x3a\xf5\xd9\ \xeb\xe8\x10\x4c\xdf\x33\x2d\xf2\x2d\x8b\x84\x1d\x6f\x3b\x30\xf4\ \xd0\x1f\x89\x0d\x10\xd9\xd1\x66\x08\x2d\x1c\xb7\x12\x5b\x85\x24\ \xad\x4e\x94\x5b\x4f\x4b\x00\xf1\x2d\x9f\x1a\x19\x49\x7f\xbf\x50\ \x28\xf6\x0a\x82\x51\x2d\x10\x15\x43\x8b\x3a\x13\x70\x2a\x2c\xcf\ \x87\xa9\xd0\xf0\xc2\x8d\xca\xbc\xe3\xd1\xfb\x20\x37\x8b\x0a\x2e\ \x1f\x4b\x50\xd1\xb4\x5b\xff\xd5\x46\x74\x4c\xa6\x7b\x29\xdb\x76\ \x6c\xa2\x63\x8c\x45\x33\x74\x00\xeb\x0e\x6a\x8c\xee\x0a\xb0\xbd\ \x28\xd2\xcf\x46\x73\x26\x4a\xe2\x3d\x6b\x75\x01\x7d\x30\xb2\x5c\ \x0b\x38\x5c\x0b\x14\x8b\x64\x73\x7d\xce\xa9\x90\xba\x1b\x18\xb6\ \x7e\x64\xf5\x71\xb7\x06\x3b\xe7\xba\xdd\xa0\xb7\xd6\xf5\x7c\xd7\ \xb5\x1d\x8f\x73\x20\x7c\x11\xe8\xe1\x02\x1d\xe7\x02\x8b\x41\x90\ \xd3\x02\xa8\x54\x6b\x61\x2a\x5c\xb7\x8e\x4c\xbd\xb7\x5f\xa1\xc9\ \xce\xeb\xd5\x84\xd0\x69\xe2\x9d\xcf\xf7\x70\x83\x68\xae\xb7\x1b\ \x20\x0e\xb0\x00\x8c\xb5\x58\x80\x00\xbc\x13\xa8\x05\xd0\x87\x9b\ \x17\xd4\x02\x75\xd4\xfa\x6e\xa9\x44\x16\x6f\x8a\x5c\xb7\x9b\x70\ \x2f\xad\x1b\xc6\x2a\x82\xe9\xd6\x78\x37\xf1\xfe\x83\x22\x22\x60\ \x5b\x20\xec\x21\x80\xc8\x0d\x4e\xe3\x60\xc4\x97\xd2\x8f\x49\x69\ \x73\x2d\xb0\x1e\x1b\x9e\x06\xbb\x01\xb6\xab\x62\x61\xa1\xb7\xf6\ \x99\x70\xff\x6e\x10\x8d\x7b\xb9\x41\x8f\xe7\x41\x5c\x95\xc4\x3d\ \x83\xe0\x4a\xbb\x42\x6c\x41\x8b\x3a\x13\x6c\xda\x79\x3e\x55\x51\ \xbe\x26\xb2\x59\x0e\x34\x5d\x90\x8c\xd6\x6b\xa2\x5e\x41\x6f\xd5\ \xe0\x26\xa3\xfb\xd1\x35\xa3\xc7\x0e\xb0\x2b\x28\xe2\x1a\x02\x18\ \xbc\x6d\x62\x62\xf3\x1a\x04\x10\x05\xc2\xba\x10\x8b\xfa\x88\xfc\ \x5c\xe4\xfa\x2a\x34\x9f\x58\xbf\x5e\x9f\xf9\x77\x47\xeb\xce\xb9\ \x55\x48\xa9\x7e\x35\x01\x75\x13\x8f\xc6\x2d\xef\x8a\x1e\x31\x80\ \x5a\x2c\x70\xd0\xb6\xf7\xaf\x49\x00\xda\x02\x50\x0b\x2c\xc1\x6d\ \x54\x0d\x9f\x42\x55\x57\x99\x9f\x57\x81\x90\x84\x68\x27\xbd\x1a\ \x71\x4d\xb8\x9d\xd4\x4a\x7d\xf4\xdc\x5a\xac\x81\xe7\x7a\x90\xe7\ \x16\x37\x0c\x15\x08\x7b\x06\x41\x89\xc6\xc1\x42\x97\xc3\x95\xd6\ \x73\x81\x7c\x3e\x4c\x85\xd8\x17\x18\x52\xf2\xa2\xd6\x16\x08\xf5\ \xb8\x67\x36\xe8\x5d\x10\x51\x0f\xad\x77\x36\xcc\xee\x69\x2a\x5b\ \x9c\x75\x10\x04\xdc\x12\x04\xa0\x8b\x21\xa7\x50\xa0\x7a\xa5\xc2\ \x16\xa0\xbf\xd4\x3b\x10\x76\x8d\x35\xe9\xde\xd9\xa0\x37\xf1\x6e\ \x61\xea\xac\x85\x8d\x9c\x82\x0f\x38\xbe\x2f\xc8\x34\xe7\xf8\x09\ \x6e\x12\xad\xa7\x00\x74\x2d\x50\x68\xad\x05\x2a\x55\xaa\x3b\x0e\ \x79\xd5\xaa\x3a\x29\x16\x98\xa3\x5e\xda\xd7\x56\xd2\xcb\x12\x7a\ \xa4\x41\x5d\x56\x2b\x62\xf8\x5d\x0f\xbd\x27\x84\xf4\xd9\x5a\x13\ \x89\xc0\x1a\x48\x0a\x3b\x95\x96\xf6\xf0\x90\x4c\x8e\x8e\xd1\xe0\ \xe4\x84\x1c\x9d\xde\x44\x53\xbb\x76\xc8\xbf\xb8\xf3\xcb\xd7\xfd\ \xdb\xbb\xef\xbe\xdc\xb3\x0e\x58\xf1\x60\xc4\xf3\xe6\x5a\x6b\x01\ \xe5\x17\x70\x83\x18\x52\xa1\x5c\x5a\xea\x26\xdd\x87\x1b\xb8\x4d\ \x8d\x79\x00\xf7\x0e\x88\x41\x63\x81\x88\xc7\x03\x23\x91\x10\x46\ \x26\xc3\xff\x78\x52\x9d\x1d\x0c\x8c\x8f\xcb\xd1\xc9\x49\x63\x64\ \x7a\xda\x1e\x99\x18\xb7\x6d\x3b\x66\x99\xf8\x9f\x6d\xd9\x14\x8b\ \xc5\xc8\xb6\x2d\xf4\x71\xe2\xeb\x64\x32\x49\x43\x58\xe7\x79\x93\ \x93\x15\x08\xa0\xce\x9c\x7a\xd4\x01\xdd\x81\xf0\x78\xa3\x31\x2b\ \xf0\x8e\xfe\x23\xc9\xe4\xf6\x19\x6a\xa0\x18\x4a\x8e\x8d\x91\x80\ \x00\x56\x7b\x11\xef\x68\x2d\x69\x73\x64\x0d\x0a\x11\x12\x63\xad\ \x09\x99\x4a\x49\x2b\x93\x31\x6c\xa4\xd5\x01\x6c\x89\x33\xe3\xe3\ \xe6\xf0\xf4\x94\x99\xc9\x66\x6d\x32\xd4\xc6\xc2\xe6\xe5\x5a\x96\ \x45\x71\x45\x0e\x24\xe3\x71\x35\x8e\x27\xb8\x8f\x87\xa4\x63\x98\ \xb7\x63\xfc\x9c\x7a\x06\x02\x61\x01\xa8\x67\xd2\xa9\x34\xed\x3f\ \x77\x52\xe9\xad\x67\x29\xbc\xd2\xae\x10\x59\xa0\x02\x12\x15\x14\ \x43\x19\x95\x0a\x77\xec\xc0\xb6\xf8\xb8\x0a\xa7\x8b\xb5\x5a\xe8\ \x67\x78\x36\xb0\xac\x40\xc4\x62\x42\x26\x12\x52\x0e\x0c\x48\x99\ \xce\x20\x58\x8e\xc9\xc4\x86\x73\xcc\xd4\xf8\x46\x63\xdd\xe4\xa4\ \x3d\x38\x3a\x66\x41\x55\x26\x2f\xce\x34\x94\x43\x92\xc9\x8b\x06\ \x4c\x1e\x9b\x26\x19\x80\x26\x8c\x7b\x21\x69\xc0\x62\xe0\x1e\xae\ \x19\xea\x59\x0d\x7d\xe4\x87\x79\x7e\x57\x83\x05\xa4\xe6\x26\x92\ \x99\x18\x6e\xf7\xda\x0e\xaf\x9e\x0a\xf9\x8f\x24\x49\x21\x32\xae\ \xe3\xd1\xb6\xa9\x29\xf9\xea\xf1\x13\x1e\xcd\xcc\x48\xfb\xe2\x0f\ \x1b\xa3\x9b\x36\xd9\x03\x83\x83\x26\x7e\xc8\xd4\x0b\x64\xad\x60\ \xac\x34\x80\x59\xb2\x15\x19\x73\xf9\xf8\x1b\xd4\x31\x0e\x78\xcc\ \x8b\x57\xe0\xb5\x99\xfc\x0e\x34\x0c\xe8\x39\x75\xf8\xc9\x82\x37\ \x00\x7c\x97\x63\x11\xf7\xfc\x0c\x93\x0c\x85\xd8\xfc\x5d\x34\xbe\ \xd6\xd9\x2c\xdc\xc5\xd6\xeb\x6e\xcc\x94\xa9\x35\x9c\x08\x75\x67\ \x82\x1a\x8a\xa1\x11\x29\xa7\x38\xf2\x9f\x29\x14\xbc\x89\xcf\x7d\ \x1e\xe7\x22\x23\x94\x49\xa7\x40\x32\xc1\x0b\x51\x84\x41\x45\xbd\ \x26\x98\x8c\x8e\xe2\x18\xa3\x0f\x17\x69\x59\xbc\x78\x8c\x2d\x40\ \x11\x6c\x03\x04\xa2\xc7\x9a\x84\x7a\x3e\x11\x5a\x85\x26\xac\x35\ \xdd\x9a\xba\x59\x30\x3c\xd7\xf6\x0d\xbe\xae\x17\x8b\x65\xcb\x13\ \x99\x35\x6c\x87\xa3\x5a\x40\x5b\x40\xa5\x79\x2e\xb0\x1e\x01\xe5\ \xe4\x9e\x7d\xd6\xa6\xe9\x69\xca\x8e\x8d\x92\xdd\xd4\x34\xb1\x16\ \x0c\x93\x3b\x6d\xaa\x9a\x44\x44\x8e\x11\x04\xbc\xd0\x30\xa5\x3a\ \x2e\x6b\x57\x2f\x58\x43\x9b\x34\xa3\x6d\x8e\xdf\xd1\x42\x40\x6b\ \x8e\xb5\x40\x57\x2e\xf3\xf9\xdb\x8d\x7c\xbe\x4a\xc2\x4f\xb3\x71\ \xf4\x6b\x01\x2c\x00\xb5\xf3\x09\x3c\x4f\x66\xa6\xa7\x51\x06\x8c\ \xd0\xf0\xf0\x30\xff\x78\xf3\xbb\xa1\xf6\x74\xbd\x00\x62\x7a\xcc\ \xe0\x7b\x0a\xda\x2c\xd1\xba\xc9\x47\xd0\x1a\xe6\xbe\x6d\x0c\xa2\ \xda\x0a\xf8\xdd\xd0\xc4\x9b\xbb\x52\xad\x71\xfd\x8c\x16\x4a\xe5\ \xf4\xa9\x1a\x1e\x4c\xaf\xc1\x02\xba\x53\x61\xc9\xf7\x95\x00\x6a\ \xae\x1b\x0c\x25\x93\x76\x22\x9e\x20\x5d\x1b\x60\x31\x6d\x64\xb5\ \x00\x22\xd2\x91\x70\xb4\x56\x5b\x7d\x94\x7b\x4d\x46\x2f\x5e\x9b\ \xb4\xe3\x38\xfa\x0f\x20\xda\xf4\xbb\x02\x1d\xe6\x75\x1c\x50\xdf\ \xd1\xef\xeb\x00\xb9\xf8\xea\x2b\x0d\xc3\xf3\xfa\xb6\x00\xd1\xfc\ \x17\x23\x73\xfc\xb6\x67\xdb\x42\xfd\xa8\x69\x68\xcd\x6a\xad\x69\ \x82\xda\x2c\x79\xac\x89\x30\xb4\x50\x34\xda\xde\xd1\x66\xaf\xef\ \xe9\x6b\xf4\xfa\x5b\x3c\xcf\xdf\x60\x8d\xab\xf9\x0c\x6a\x83\x81\ \x81\x01\x95\xeb\x13\xcd\x38\xd4\xd9\x1a\xa5\x62\xc3\x39\x72\x78\ \xc4\xf5\x7c\xd9\x87\x05\x44\xa9\x10\x07\x23\x67\x78\x11\x3e\x56\ \x8d\x42\x43\x93\xd3\xd2\xd7\x5a\xd4\xda\xd7\x64\x3b\x03\x9b\x16\ \x4e\x9b\x26\x75\xd3\x04\xb5\xf6\xf4\xb3\x3a\x23\x74\xb6\x72\x3e\ \xef\xce\xbe\xf3\x4e\x3d\x7f\xf4\xa8\x53\x3a\x79\xc2\xaf\x9e\x99\ \x95\x41\xa1\x60\x58\x8d\xba\x3d\x20\x45\x7c\xc8\x8e\xa5\x32\xa9\ \x64\x32\x96\x88\x0f\xbf\x9e\x5b\xfc\xd7\x3e\xb2\x40\x94\x0a\x4f\ \x39\xce\x82\x90\x92\x3d\x3b\xd0\x8b\x6e\xd5\xa8\x16\x82\xd6\x1a\ \x34\xd2\xb5\x68\x5c\x6b\xb4\xa5\xaf\xd6\xc6\xef\x71\x2b\xe6\x72\ \xce\xe9\x23\x47\xea\x0b\x47\x8e\xb8\x85\xe3\xc7\xfd\xf2\xe9\xd3\ \xd2\x59\x58\x30\xfc\x62\xd1\x36\x1a\x8d\x44\xdc\xf7\x53\xb6\x69\ \xc6\xf1\x8d\xb8\x0a\x90\x86\x51\x0b\x4c\xa3\xe4\x1a\x0a\x05\x60\ \x09\xa2\x9c\x43\xd1\x75\xe8\xe9\xd3\xb3\x4f\xbe\x9d\xcf\x1f\xeb\ \x57\x00\x3a\x13\x34\xea\xbe\x5f\xf2\xa4\x8c\x6b\x72\xda\x84\x5b\ \xcd\x55\x43\x13\x5d\xa9\x15\x66\x67\x9d\x1c\xc8\x2d\x1d\x3b\xe6\ \x2c\x1e\x3d\xea\x57\x67\x67\x79\x97\xb9\x4c\x2e\x21\x44\xca\x84\ \x2c\x08\xc0\xef\x35\x1c\x29\x4b\x7c\x28\x83\x5a\xa4\x58\xc7\xd6\ \x9c\xff\x0d\x63\x59\x88\x7c\x01\x9b\xb4\x3c\x14\x73\xd4\x75\xe7\ \x30\x5f\x67\x57\x65\xe8\xcc\x05\xd4\x80\x02\x50\x0c\xe7\xfb\x17\ \x80\x0b\xd4\x71\x40\x7a\x6c\x7c\x71\x71\x47\x12\x02\xb0\x59\x83\ \xb6\xdd\x45\x12\xe4\x1a\xb9\x43\x87\xea\x79\x90\xc3\x5f\x7f\x83\ \x0a\x6b\x0e\xe4\x44\xa9\x14\x53\x9a\x13\x22\xcd\xe4\x02\x64\xd9\ \x86\x10\x7e\x43\xca\x4a\x93\x9c\x22\x56\xf1\xfd\x7c\x11\xc4\x16\ \x7c\x3f\x87\x12\x7c\x1e\x3b\xd1\x32\x13\xea\x20\xc7\xf0\x5b\x10\ \xb4\xf7\x7a\x1c\x3d\xab\xab\xc0\x1e\x02\x58\xb5\x16\x70\x80\xd2\ \x7b\x8d\xc6\x4b\x9b\x97\x96\xf6\xbe\xf4\xe0\x83\x8b\x89\x7a\xd5\ \x3c\x35\x9f\xaf\xe1\x80\x54\x82\x9c\x6d\x36\x1a\xc9\x18\x8a\x5f\ \xfe\x16\x6f\x64\x80\x3a\xff\x59\xad\x2e\x65\xa1\xe6\xfb\x4b\x15\ \x68\xac\xe8\x79\x0b\x8b\x38\x66\x3f\x89\xcd\xd5\x82\xeb\x96\x34\ \xa1\x3e\x88\x31\x04\x20\xcf\x06\xdc\xfa\xfe\xbf\xce\x42\x00\x26\ \x85\xe6\xb8\x11\x52\xda\x7e\xf3\xe4\xe4\x1f\x6f\x4c\x26\x77\xa7\ \xd2\x29\xff\x8d\xb9\xdc\x4f\xaa\xa8\x0f\x4a\x40\x1e\xc4\x70\x80\ \x9a\x3b\xe3\xba\x8b\xdd\xa4\x80\xde\xa4\xb8\x17\x8c\x1e\xe4\x28\ \x1a\x77\xb7\xd5\xc8\xf6\x2b\x00\x2d\x04\x1b\x5d\x1a\x18\x05\x86\ \x81\x18\x20\xce\x46\x5b\x6b\xd4\x18\x7d\x30\xc4\x3e\x78\x01\x18\ \xe8\x2c\x26\xde\x84\xa1\x6b\x84\x5f\x2e\x62\xfd\xb7\xff\x05\xc7\ \xfd\xe7\xdb\x23\x5d\x13\x38\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x20\x1c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\ \x1b\xaf\x01\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xd7\x08\x12\x14\x39\x28\x29\x91\x7c\x0e\x00\x00\x1f\xa9\x49\x44\ \x41\x54\x78\xda\xe5\x9b\x09\xb0\x5c\x57\x99\xdf\xff\xb7\xf7\xbd\ \x5f\xbf\xfd\xe9\xe9\x3d\x49\xd6\x2e\xd9\xda\x2c\x79\xc1\x78\xc0\ \x76\x42\x81\xc1\x03\x64\x0c\x13\x1c\x42\x65\x02\x4e\xb1\x84\x78\ \x5c\xc5\x14\x55\x49\x2a\x54\x48\x05\x2a\x03\xc3\x14\x03\x55\x33\ \x13\x43\x2a\xae\x21\x9e\x01\x26\x05\x43\x80\xd8\xb2\x0d\x78\xc3\ \x96\x25\x6b\xb1\xf5\xb4\x3d\x6b\x7d\xd2\xdb\xb7\xde\xb7\xdb\xb7\ \xf3\x3b\xa7\xbb\x35\x12\x1a\x0a\x18\xb0\x81\x4a\xcb\x9f\xcf\xed\ \xbb\x9c\x77\xbe\xed\xff\x2d\xf7\xb4\xfe\x7f\xff\x38\xaf\xe7\xdf\ \x59\xb3\x66\x8d\xaf\xab\xab\xcb\xd7\xdb\xdb\x6b\x29\x91\x48\x38\ \xd5\x6a\x55\xb9\x5c\xce\x5b\x58\x58\xf0\x96\x97\x97\xbd\x0b\x17\ \x2e\x78\xd9\x6c\xb6\x29\x09\xfa\x2d\x16\x40\x24\x12\xf1\x6d\xdd\ \xba\x35\xb0\x7b\xf7\xee\xf8\xdd\x77\xdf\xbd\xb5\xaf\xaf\x6f\x67\ \x34\x1a\x5d\xcf\xf9\x75\x7e\xbf\xbf\xd7\x71\x9c\x04\x14\x6f\xf2\ \x69\x34\x1a\x05\x43\x08\x63\xa6\x5c\x2e\x9f\x2a\x16\x8b\xe3\xd3\ \xd3\xd3\xfb\xbf\xfd\xed\x6f\x9f\x3c\x70\xe0\x40\x0d\xa1\x34\x8c\ \x40\x7e\x1b\x04\xe0\x6c\xda\xb4\x29\x74\xef\xbd\xf7\xf6\xbe\xf5\ \xad\x6f\xbd\x07\x2d\xbf\x3d\x16\x8b\xdd\x1c\x0e\x87\xfb\x60\x5a\ \xf0\x2a\xd7\x75\x2d\xc1\xb0\x3c\xcf\xb3\x0f\xf9\x7c\x3e\x4b\xc1\ \x60\x50\xdc\x67\xcf\x57\x2a\x15\x15\x0a\x85\x49\xac\xe1\xd9\xa9\ \xa9\xa9\x6f\x3d\xca\xe7\x5b\xdf\xfa\x56\xde\x58\xca\xaf\x52\x18\ \xce\xaf\x4a\xdb\xd7\x5f\x7f\x7d\xf4\x13\x9f\xf8\xc4\xae\x6d\xdb\ \xb6\x7d\x34\x9d\x4e\xdf\x0d\xd3\x29\xc3\x08\x1a\x15\x1a\x55\xa9\ \x54\x52\x15\xa6\x6a\xb5\x9a\xdc\x7a\xbd\x25\x00\x08\xa1\x40\xad\ \x95\xc0\xbc\x15\x42\x38\x1a\x55\x2a\x95\xb2\x14\xe5\xb8\xce\xfd\ \x8b\x8b\x8b\xf3\x33\x33\x33\xff\x7b\x6c\x6c\xec\xcf\x3e\xf7\xb9\ \xcf\x8d\x4f\x4e\x4e\xba\x46\x10\xbf\x6e\x01\x38\x1b\x37\x6e\x8c\ \x7e\xfa\xd3\x9f\xbe\x79\xc7\x8e\x1d\x7f\x94\xc9\x64\xde\xe2\xe7\ \x03\xd3\xc6\xaf\x55\x2c\x14\x54\xe1\xd8\x50\x15\x2a\x23\x04\xc8\ \x0a\xa2\x8e\x20\x1a\x58\x82\xe1\xde\xe7\x38\xf2\x07\x02\x0a\x05\ \x43\x0a\x86\x42\x0a\x84\x43\xf2\x9b\x63\xc6\x68\x3c\xae\x9e\xbe\ \x3e\xf5\x41\x21\xae\x2d\x2d\x2d\xd5\x2f\x5d\xba\xf4\xcd\x23\x47\ \x8e\x7c\x96\xbf\x7b\x22\x9f\xcf\xbb\xbf\x16\x01\xa0\x9d\xe0\x87\ \x3f\xfc\xe1\x91\xf7\xbf\xff\xfd\xff\x7e\x68\x68\xe8\x03\x98\x70\ \x10\x4d\x5b\xc6\x4b\x30\x6e\x28\xbb\xbc\xac\x85\xb9\x79\xcd\xce\ \xcd\x6a\x6e\x76\x56\x4b\x8b\x4b\xca\xe6\xb2\xd6\x1a\x3a\x02\xf0\ \x49\x0a\xfa\xfc\x8a\x84\x82\x4a\x18\xcd\x27\x12\xea\x4a\xa7\xd5\ \x95\xe9\x56\x2a\xd3\xa5\x68\x2a\xad\x50\x22\xae\x70\x2c\xa6\x6e\ \x84\x30\xbc\x72\xa5\x62\x1c\xcf\xce\xce\x96\xcf\x9c\x39\xf3\xc5\ \x6f\x7c\xe3\x1b\x9f\xfb\xfa\xd7\xbf\xbe\x2c\xc9\x7b\xbd\x04\xe0\ \x8c\x8e\x8e\xc6\xbe\xf4\xa5\x2f\xbd\x63\xcf\x9e\x3d\x7f\x8a\x89\ \x0e\x5d\xd6\x78\x3e\xaf\x1c\x4c\x4f\x4f\x4d\xe9\xfc\xb9\xf3\x3a\ \x73\xf6\x8c\x26\x26\x26\x34\x03\xf3\xf8\x72\x87\x71\x6b\xfa\xc2\ \x3d\x1c\xa3\x7d\x49\x01\xc7\xa7\x00\x18\x10\x0a\xf8\x15\x45\xcb\ \x89\x48\x54\x19\xcc\xbf\xaf\xa7\x5b\x83\x83\x83\xea\x5f\xb1\x42\ \xe9\x81\x01\x45\x33\x19\x85\xcd\x79\xce\xad\x5a\xb5\x4a\xc2\x72\ \xce\x9d\x3b\xf7\xea\xc1\x83\x07\xff\xf5\x27\x3f\xf9\xc9\xe7\x5d\ \x3e\xaf\xb5\x00\x7c\xb7\xdc\x72\x4b\xf7\x97\xbf\xfc\xe5\xff\x40\ \x48\xfb\xb7\x66\xed\x98\xa0\x0a\x50\x76\x71\x51\x13\x17\x2e\xe8\ \xc4\xf1\x13\x1a\x3b\x7e\x4c\x68\xc7\x32\x5e\x2e\x96\xd4\xdb\xdb\ \xa3\x95\x2b\x86\xd5\xc7\xd8\xdd\xd5\xa5\x58\x24\xa2\x30\xbe\xde\ \x6c\x78\x06\x0f\xb8\xa7\xa0\x02\x02\x5c\x5a\x58\xd0\xfc\xf4\x0c\ \x34\x8d\x60\x9a\x8a\xe0\x06\x29\x5c\xa0\xbf\xa7\x47\x2b\x56\x0e\ \x6b\xc5\xea\xd5\xca\x8c\x8c\x2a\xda\xdb\xab\x38\xc2\x19\xe5\x7b\ \x5f\x7f\xbf\xc0\x86\x2a\xd8\xf0\x1f\x1f\x7c\xf0\xc1\x2f\xe3\x22\ \x95\xd7\x4a\x00\xfe\xb7\xbf\xfd\xed\x2b\x3e\xff\xf9\xcf\xff\x05\ \x5a\xb9\x1b\x60\xb2\x8c\xe7\xd0\xec\xe4\xc5\x8b\x3a\xfa\xca\x2b\ \x3a\xf0\xd2\x4b\x3a\x7e\xf2\xa4\x66\xa6\xa6\xf1\xd9\x5e\x6d\xdb\ \xba\x55\x9b\x37\x6d\x52\x22\x1c\x91\xaf\xe9\xc9\xef\xb5\xc8\x31\ \x04\xf3\x62\x84\xac\x45\x34\x0c\x71\xec\x72\x5f\xb5\x5a\xb3\x73\ \x9e\x3e\x76\x4c\x0b\x08\xd1\x80\x63\x12\xb3\xef\x87\xf1\x95\x30\ \xbd\x62\xfd\x7a\xa5\x56\x8d\x2a\xc2\xf7\x01\x5c\x62\xf5\x75\xd7\ \x59\xa0\x45\x08\x5f\xf9\xd4\xa7\x3e\xf5\xe0\xc9\x93\x27\x8b\x3f\ \x2f\x40\xfa\x7f\x5e\xe6\x3f\xf0\x81\x0f\xac\xf9\xcc\x67\x3e\xf3\ \x48\x7f\x7f\xff\x9d\x26\x44\xe5\xdb\x1a\x3b\x31\x36\xa6\x1f\xfe\ \xf0\x87\x7a\xe2\x07\x3f\xd0\xcb\x2f\xbf\xac\x01\x16\xf5\xce\x77\ \xdc\xa3\xbb\x6e\xbf\x5d\xd7\xa1\xf5\x0c\xbe\x9d\xc4\x54\xd3\x6a\ \x51\xaa\x43\x9c\x4b\x4a\x4a\x74\x88\x73\x71\xc6\x18\x6e\x11\xe7\ \x5a\x6f\x32\xa5\x75\x1b\xd6\x69\x04\x06\x6b\x08\xb9\xb0\xb0\xa8\ \x12\x02\x2f\xf2\x37\x6b\x4b\x4b\xf2\x55\xaa\x0a\x20\x98\x4a\xdd\ \x55\xae\x84\x95\x81\x0f\x03\x03\x03\xbb\x6e\xb8\xe1\x86\xad\x58\ \xc4\x63\xe7\xcf\x9f\xaf\xfe\xaa\x04\xe0\xbf\xf3\xce\x3b\x57\x7e\ \xf6\xb3\x9f\xfd\x5f\xc4\xf5\x5b\x0d\x8a\x1b\xb3\x9f\xc3\x4c\x5f\ \xda\x7f\x40\x8f\x3d\xbe\x57\xcf\x3e\xfb\xac\x5c\x7c\xfb\xbd\xbf\ \xf7\x7b\xba\xe3\x8d\x6f\xd4\x20\xc0\x95\xc2\xa7\xd3\x4e\x87\xe9\ \x0e\xb3\x0e\x0c\xc2\xa4\xa4\xa8\x31\xf1\x26\x24\x99\x11\xe2\x9c\ \x19\xa1\x98\xbd\xc6\x79\xac\x22\x01\x26\x5c\xb7\x6e\xbd\xba\x01\ \xc4\xfc\xf4\x94\xaa\x68\xba\x9c\xcb\xab\xba\xbc\x24\x87\xb5\x84\ \x88\x1e\x0d\x9f\xa3\x3c\xc7\x19\x5c\x05\x21\x6c\x02\xa3\x36\xee\ \xdb\xb7\xef\xbb\xe0\x52\xfd\x97\x15\x80\x8f\x30\xd7\xff\xd0\x43\ \x0f\x7d\x85\x89\xef\x00\xc4\xac\xd9\x4f\x5d\xba\xa4\xe7\x9f\x7f\ \x5e\xff\xf7\xb1\x47\x75\xe8\xe0\x41\xed\xda\xb1\x43\xff\xfc\xde\ \x7b\xb5\xb2\xa7\x57\xe9\x0e\xe3\x57\x68\x38\x0a\x85\x61\x0c\xaf\ \x57\x00\xc6\x02\x8c\xfe\xa6\x20\x46\xaf\x75\xec\x33\xc7\xf6\xba\ \x21\x29\xc8\x18\x16\xe4\xf1\x9c\x5b\x07\x3b\x12\x1a\xc1\x22\xaa\ \x33\x73\xaa\xb1\x86\x5a\x89\xd0\x4a\x44\xb1\x42\xf0\x33\x23\x96\ \x96\x03\x8c\xbb\x00\x4a\x42\xe6\x26\xb2\xd0\x81\xef\x7f\xff\xfb\ \x8f\xe3\x5a\xee\x3f\x56\x00\x0e\x79\x7b\xea\xe1\x87\x1f\xfe\xcf\ \x6b\xd7\xae\xbd\x8f\x58\x6e\x32\x33\x4d\xc3\xfc\x8f\x9f\x7b\x4e\ \x8f\xed\xdd\xab\xb3\xa7\x4f\xeb\xdd\xef\x7c\xa7\x6e\xdb\xbd\x47\ \x5d\x80\x5a\x86\x85\x74\x18\x8f\x59\xa6\x61\xb6\xcd\xa4\x45\x7c\ \x33\x1a\xbf\x6f\x42\x1c\x37\x6d\x24\x68\x8d\x6a\x9f\x77\xec\xbd\ \x8c\x1d\xe1\x58\x30\x6c\x32\x59\xdd\x5a\xcf\xf0\x9a\x0d\x6a\x10\ \x4e\xdd\x42\x8e\x30\x5a\x53\x3d\x57\x40\x08\x65\x2c\x21\x88\xa4\ \x23\x2a\xd6\x6a\xd6\x1d\x58\xfb\x2e\x92\xb3\x65\x84\xb0\x5f\xcc\ \xfe\x0b\x0b\x80\xb8\x1e\xf9\xc2\x17\xbe\x70\xef\x6d\xb7\xdd\xf6\ \x5f\x00\x3c\x1f\xcc\x5b\xb3\x7f\xe1\xf9\x17\xb4\xf7\xf1\xc7\x75\ \x11\xc4\xbf\xef\xf7\x7f\x5f\x1b\x09\x47\x5d\xf8\x62\x06\xcd\xe3\ \xd7\x76\x91\x21\x18\x68\x69\xb5\xcd\x58\x9b\xa9\xa6\x65\x9a\xb1\ \x7d\xac\xf6\xb1\xda\xc7\xba\xea\xd8\x8e\xac\xc3\x53\x20\x0d\x40\ \x3a\x9e\x42\x45\xc9\x29\xd7\x35\xb4\xf6\x3a\x35\x96\xc1\x02\x37\ \x27\xa7\xee\x22\x84\xa2\xfc\x60\x42\x08\xb0\x6d\x1a\x21\x10\x0d\ \x07\x08\x95\xe4\x0b\xbf\x43\x8e\xf2\x14\x2e\x3a\x21\x66\xfc\x45\ \x04\xe0\xa7\x80\xd9\xf4\x91\x8f\x7c\xe4\xaf\x40\xe0\xa4\xc9\xe8\ \x96\x09\x73\x07\x0f\x1c\x40\xf3\x8f\xeb\x3c\x21\xce\x30\xbf\x66\ \x60\x00\xcd\xfb\xd4\xed\xf7\x29\xe9\x39\xd6\x7f\x03\x2d\x2d\x42\ \xad\x58\xaf\x0e\xa3\x57\x33\x79\x95\x15\xa8\x6d\x05\x96\x38\xee\ \x8c\x1c\x28\x18\xa7\x2e\xe8\x8a\x28\x56\x73\xe5\xe5\x4c\xf4\x80\ \x88\x40\xfd\x6b\x56\x03\x86\x17\xb9\xa7\x2a\xaf\x84\x80\x8a\x65\ \xf9\x39\x1f\x8a\xc7\xd4\x20\xcc\xba\x92\x86\x56\xac\x08\x90\xa7\ \xdc\x76\xe2\xc4\x89\x47\x00\xc6\xf2\xcf\x2d\x00\x24\xd7\xf5\xc5\ \x2f\x7e\xf1\xb3\x84\xbb\x5b\x08\x2f\x36\xc1\x39\x41\x48\x7a\xfc\ \x89\x27\x34\x06\xd2\xbf\xfb\x77\xef\xd1\xda\xa1\x15\xea\x86\xf9\ \x54\x44\xea\x92\x8f\xe4\x25\x2e\x11\xbe\x3a\xcc\x59\x26\x1a\x10\ \x82\x40\xcb\x57\x6a\xfe\xaa\x31\x68\xb4\xe6\xba\xc4\xf7\x11\xad\ \xba\x79\x8f\xfa\xd6\xae\x55\x1f\xbe\xde\x47\xa8\xeb\xdf\xb8\x56\ \xf1\x35\xbd\x0a\xf7\xf4\x6b\xd5\x75\x5b\xd4\xbf\xe1\x06\x0d\x6e\ \xde\xac\x9e\xd1\x51\x2d\x9c\x1a\x57\xdf\x48\x9f\x16\x16\x27\x14\ \xab\x53\x64\x95\x5d\x35\x89\x4e\x01\x39\x0a\xa6\x92\xaa\x01\x9e\ \x41\x04\xd1\xc3\x07\x2b\xf0\xbe\xf7\xbd\xef\x3d\x2d\xa9\x71\x8d\ \xa5\xeb\xda\x4f\xf0\x81\x07\x1e\x78\x13\x7e\xff\x1e\xc2\x9d\xcd\ \xe3\xa7\x88\xc9\xa0\xaa\x8e\x1e\x79\x59\xb7\xec\xd9\xad\x75\xc3\ \xc3\x4a\x4b\x84\x38\xc1\x78\x40\x41\x98\x1b\x20\x16\xa7\x07\xfb\ \x5b\x0c\x37\x5a\xc4\xf1\x15\x82\xb8\x96\x12\x84\xcc\x55\x37\xed\ \x91\x83\xfb\xa8\x69\xdc\xe4\xea\xcc\xc4\xf1\xd7\x55\x27\x19\x8a\ \x45\xc3\xdc\x1f\x30\x67\x3a\xff\xc9\x2b\x57\x14\x4b\x74\x6b\x64\ \xeb\xf5\x44\x08\xbf\xe2\xc2\x32\x4c\x74\xc0\x3a\x6b\x27\x4e\xca\ \x9b\x5f\xd0\x0c\x19\x29\x25\xb7\xe0\xe5\x81\x0f\x7e\xf0\x83\x9b\ \xcd\x04\x3f\x4b\x00\x0e\xda\xcf\x50\xca\xfe\x21\x26\x18\xb0\xf1\ \x9e\xd4\x76\xec\xe8\x98\x8e\x1c\x3a\xa4\x34\xfe\x75\xeb\xce\x5d\ \x4a\x35\x05\xd8\x11\xaf\xc3\x3e\x28\x24\xc7\x6d\x58\x06\x52\x83\ \x43\x56\x83\xfc\x55\xc3\x34\x74\x25\xf3\x8d\xd6\xb1\x71\x11\x09\ \x0d\xaf\xd3\x10\x89\x12\xcc\x9b\x73\x96\x3c\xa8\xf3\x8c\xb8\xbf\ \xd1\x2c\x2b\x90\xea\x95\xcf\x0a\x51\x10\xff\xb3\xd7\x20\xc6\xfa\ \x72\x4e\xab\x6f\xbc\x49\xc9\xe1\x5e\x25\x03\xb8\x20\xcf\x08\x57\ \x75\x4f\x9f\x55\x1d\x41\xd4\xb3\x39\xcd\xce\xcc\xa8\xbb\xbb\x3b\ \x7a\xeb\xad\xb7\xfe\x91\xa4\xf0\xcf\x12\x40\xe0\x43\x1f\xfa\xd0\ \x1b\x30\x99\xdb\x0d\xf3\xb5\x72\x19\xb0\x9b\xd0\x91\xc3\x87\x34\ \x4b\x4e\xff\x4f\xde\x7c\x87\x92\x86\x51\x28\x0e\x85\x78\x9a\xe5\ \x4b\x56\xe3\xae\x65\x32\x92\x4c\x6a\x68\xcb\x66\x05\x11\x56\xc7\ \x0a\x3a\xcc\x73\xc0\xf9\x80\x86\x77\x6e\x53\x7a\x68\xa8\xe3\x16\ \x1d\x21\x5d\x1e\xbd\xf6\x33\x35\xaf\xa6\x68\xba\x5b\xf8\xc8\x35\ \x56\x64\x05\x56\xab\x2a\x46\x6a\xdd\x7b\xfd\x76\xd2\xeb\x16\x77\ \x81\x5a\x5d\x4d\xc0\xba\x81\x00\x3c\xb2\xc8\x02\x0a\x34\x25\xf8\ \xca\x95\x2b\xdf\x73\xdf\x7d\xf7\x6d\x90\xe4\xfc\x54\x01\x50\x8b\ \x27\xdf\xf6\xb6\xb7\xdd\x4f\x1d\xef\x33\x0f\xe5\xc9\xc0\xc6\x4f\ \x9e\xd0\x19\xd2\xdb\x35\xc3\x2b\xb5\xb2\x3b\xa3\x64\x87\x79\x16\ \xe4\x73\x01\xa6\x96\x6a\x34\x73\xfc\x24\x7e\x58\xb1\x4c\x53\xda\ \xe2\xab\xa4\xc0\x7d\xbd\x57\xb9\x43\x72\x20\xad\xe4\x86\x21\x85\ \x13\x21\xfb\xbd\x01\x68\x4d\x1d\x79\x45\x2e\xc2\xbe\xc6\x6d\x9a\ \x8c\x12\xf7\xa6\x25\xe6\x6b\xaa\x7e\xf9\x9a\xd7\x06\x53\x5f\x90\ \x68\x43\xe1\xd4\xbd\x79\xbb\xc2\x71\x8a\x29\x2c\x2f\x64\xc2\x2d\ \xb9\x81\x26\xa7\xe4\x52\x8c\x09\x25\x2e\x92\x3d\xd2\xa3\x08\xdd\ \x7e\xfb\xed\x1f\x35\x6c\xfe\x14\x01\xd8\xa4\x67\xd5\xf0\xf0\xf0\ \x9b\x6d\xd3\x02\x9a\x45\x92\xe3\xc7\x8f\x2b\x37\x33\xab\x3d\xdb\ \xb7\x2b\xe1\xb5\x98\x0f\x7b\x6d\x34\xae\xd4\x44\x1b\x0b\x33\x6e\ \xa8\x92\x5d\xd6\xa5\x23\x47\x54\x5e\x5a\x6a\x23\xbb\xd4\x43\xde\ \xde\x0b\x36\x38\x8e\x0f\xd7\x58\xad\xae\xf5\x83\x72\x9d\x96\x36\ \x2b\xa4\xd2\xe7\x5f\x78\x41\x59\xf2\x8a\x2b\x35\xeb\x59\x17\x60\ \x6c\x0b\xc3\x4f\x7c\x0f\xf6\xad\x92\x17\xc8\x09\x6e\x38\x57\x63\ \xee\x9a\x82\x31\x4f\x91\x95\x09\xa5\x46\x37\x2a\x3e\x30\xc2\xf7\ \xa0\x65\xc6\x2f\x59\xc5\x80\x8e\x6a\x5e\xbc\x64\xb1\xa0\x8a\x40\ \x5c\xce\x01\xea\xef\x06\x13\xd3\x3f\x4d\x00\xa1\xfb\xef\xbf\xff\ \x1e\xc2\x5e\xcc\xdc\x5c\x06\xfd\x2f\x9e\x3b\xa7\x4b\x50\x17\x68\ \xba\xb2\xaf\xcf\x32\x1f\x31\xc9\x89\xf5\x41\x34\x58\xc2\x02\xaa\ \x2c\xca\x6f\x17\x6b\x35\x39\x05\x5e\x2c\x9d\xbf\x60\x90\xdd\x32\ \x11\x27\x3d\x1d\xdd\xbd\x4b\xc9\x15\x5d\x2a\xe3\xef\x31\xc2\xd4\ \xf2\xc4\xa4\x2e\xec\xdb\xaf\x6a\xbe\xd0\x36\xfd\x46\x27\x62\x40\ \xae\x25\xbe\x5b\x6c\xa9\x15\x73\xea\x1e\xdd\x2c\x67\x78\xbd\x6a\ \xf1\xaa\xea\xe1\x05\x79\xf1\xac\xba\x6e\x5a\xa3\xfe\x37\xbf\x13\ \xdc\x59\x05\x58\xc2\x38\x40\xe9\x48\x90\xcd\x2a\xad\xe6\x1d\x98\ \xaf\x9d\x3f\x2f\x1f\xf3\x93\xbe\x1b\x2b\xe8\xff\xd8\xc7\x3e\xf6\ \x96\x2b\xf9\x0e\x74\x0e\x4c\xbc\x5f\xb7\x6e\xdd\x3f\xb5\xfd\x3a\ \xc8\x80\xdf\xc4\xd9\x73\xca\xcf\xcd\x69\x23\x05\x89\x61\x3e\x6a\ \xd2\x52\x99\x2c\xcd\x11\xff\xc1\xb0\xf1\x39\x4f\x35\xbf\x83\x96\ \x1b\x62\xdd\x36\x7e\x2f\xf2\x5c\x79\x69\x59\x7d\xeb\xd6\xca\x47\ \x8d\x2f\x01\x58\x2a\x29\xda\xb7\x5a\x0b\x2f\x3d\xa5\xec\x89\x39\ \xee\xbd\x3a\x3a\x74\xa2\x87\xeb\x95\xe4\x73\x4c\x1e\x11\x56\x80\ \x46\x49\x61\xfa\xac\x62\x3d\x03\xea\xb9\xee\x06\x35\x86\xd7\xa9\ \x5e\x29\xda\x7b\xd3\x3c\xeb\x0f\x84\x54\x2f\xcd\x6b\xf9\xcc\x01\ \xf9\x38\xbe\xaa\xbc\x75\x11\x22\x19\x63\x63\x72\x52\x3e\x5c\xb3\ \x1a\x29\x8b\x2e\xb4\x46\x46\x46\xee\x91\xf4\xb7\x50\xf5\x4a\x01\ \xf8\xe8\xeb\xf5\x51\xec\x6c\x43\x00\xb6\x46\x5f\x9a\x9f\xd7\x0c\ \xc0\xe7\x15\x8a\x1a\x1d\x18\x84\x79\x4f\xe0\x7d\x0b\xf4\xd4\x12\ \x00\xa7\x14\x2a\x4b\x95\x4c\x42\x3d\x23\x61\x92\x91\x90\xb8\x6c\ \x85\x20\xa8\x00\x08\x25\xfa\xfb\x59\x5c\x55\x0d\xe2\x7d\x94\x92\ \x36\x68\xd2\x65\xaa\x44\x0b\x1d\xed\x4c\x11\x8b\x69\x9b\xbd\xcb\ \xbc\xf4\x06\xca\x05\x25\x82\x43\x6a\x54\x29\x74\x66\x2f\xa8\xd0\ \x33\xc8\x3c\x2b\x69\x93\x05\x99\x2b\x6d\x05\x40\x6f\x0d\x21\x56\ \x55\xbc\xf4\x8c\xca\xf3\x17\x98\x2c\x70\x75\xaa\x67\xc0\xb5\x84\ \x30\x97\xb3\xaa\xd3\x91\x0a\x66\xba\x2c\x18\x92\x22\xdf\x2a\x29\ \x7e\x8d\x00\xde\xf7\xbe\xf7\xed\xa4\xe7\x96\x32\x75\x7e\x1d\xbf\ \x5e\x64\xf1\xb9\xf9\x39\x85\x78\xa8\x2f\x95\xb4\xa6\x1f\xb8\x42\ \xfb\x12\xa3\x44\x4e\x8e\x65\xf4\xd3\xcc\x1c\x1a\x54\xaa\xe6\x80\ \xcc\x2d\x21\x48\x56\x10\x2d\xcd\x3a\x15\x85\x32\xd7\x59\xbb\x4b\ \x76\xf7\x90\xae\x26\x61\xfc\xef\x05\xb5\x6c\x05\xd0\x10\x12\xc0\ \xd7\xc1\x1f\xa7\x2e\xa9\xc6\x5c\x01\x42\x20\x45\xce\xd8\x8f\xd1\ \xf4\x0d\x4a\xaf\x24\xc4\xca\x69\x27\x57\x2e\x65\xf2\x69\x15\x27\ \x9e\x43\x18\x01\x6b\x8d\x57\x49\x80\x63\x38\x96\x43\x16\x5b\xa3\ \x3f\x11\xdb\xb8\xd1\xe2\x55\x32\x99\x1c\x7d\xef\x7b\xdf\xbb\x96\ \x56\xda\x92\xb9\xab\xe3\x0b\xc1\xcd\x9b\x37\xef\x68\x58\xe0\xf1\ \x6c\x03\x73\x79\x76\x4e\x55\xe2\x68\x8c\xef\x69\x90\x36\xc8\x1f\ \xf5\x75\x90\xda\x35\xe4\x5a\x72\x2b\x1c\x67\xb3\x30\x38\x48\xd2\ \xe2\x5a\xc1\xe2\xfb\x68\xc7\xf8\xb1\xa1\xba\xdc\x26\x85\x4c\x77\ \x9f\xd5\x78\xc7\xd4\xbd\xcb\x73\xb9\x1d\x74\x87\x60\x3c\x88\x30\ \x09\x7d\xcc\x63\xae\x63\x05\x7e\xf9\xf2\x21\x95\x4f\x1d\xd0\xc2\ \xab\x87\x39\xc7\xf9\xa6\xc1\x9e\x25\x15\xce\x3f\xa6\xc2\x1c\xbd\ \x01\x04\x5f\xcf\x5f\x5b\xf9\xda\x39\xc1\x19\x17\x6b\x0e\x4a\x82\ \x3f\xdb\x7e\xa7\x48\xba\xd1\x28\xfd\x4a\x0b\x08\x63\x1a\xd7\x99\ \xf0\x02\x59\xd4\x2c\x90\x50\x08\x41\x24\xda\xa5\x6c\x80\xf3\x72\ \x98\x54\x90\x73\xd9\xd3\x6c\xde\xdf\x58\x32\xa5\xe9\x9c\xa2\x83\ \x6b\x94\x3d\xf4\x8c\x2a\x97\x6a\x1d\x3c\xb0\xc5\x4c\x78\x75\x4c\ \x99\x70\x54\x24\x16\x5a\x9a\x9c\xe0\xba\x07\xe3\xcd\xcb\xe9\xb0\ \x5b\xad\xd1\xe8\x98\x57\xe0\x62\x45\xd1\xeb\xd7\x60\xe6\x61\x2d\ \x1e\x3b\xa2\xca\x82\x1f\x86\x5b\xf7\xf8\xfc\x35\x85\xce\x9d\x56\ \xa3\x56\x51\xd7\xaa\xf5\x98\xfe\xb3\xaa\xcc\x8f\xa9\xb4\x80\x5b\ \x16\xa5\x7a\xe1\xda\xfe\x07\xcc\xd8\xf4\x98\x57\x4e\x56\x79\x00\ \x9d\x3d\x0d\x18\xae\x6f\x0b\xa0\x61\x05\x40\xba\x18\xe5\xe4\x68\ \x5b\x00\x36\x01\x2a\xe7\x73\xf2\xd7\xea\xb6\x3b\x13\x70\xeb\x98\ \x62\xf8\x1f\x2c\xa8\x3c\xa8\x56\xc0\xdf\x27\x4e\xab\x67\xe3\x0e\ \xe5\x87\x46\xc9\xc2\x9e\x57\x79\xc1\x33\x8b\x87\x19\x68\x68\xc0\ \x40\x33\xa1\x2a\x8e\x35\xc0\x2c\x9d\xe2\x46\xa5\x53\x00\x59\x37\ \xc1\xda\x96\x54\xca\xe4\x94\x19\xb8\x9d\x67\x69\xa2\x5e\xbc\xa0\ \xfc\xc5\xc6\x55\x40\x19\x8c\x73\x5f\xed\xbb\xf2\x6e\xbd\x59\x95\ \xc9\xa7\x54\x5e\xac\xa9\x59\x8c\xaa\x3c\x57\x27\xa7\xa8\xf2\xb7\ \xac\x17\x5d\xbd\x4c\x5c\x5a\x46\x08\xf4\x26\xa9\x8c\xac\x52\x00\ \xc3\x75\x6d\xe5\xd7\x6d\x82\xcd\xc9\x08\xfe\xdf\xdd\xa9\xc4\xea\ \xa0\xa6\xcb\x03\x41\xd3\x91\x09\x88\x73\x39\x72\x11\x34\x68\x7c\ \xfc\x27\xd2\x69\x66\xc4\x4c\x9b\xf4\xec\x12\xe4\xe7\x45\x0d\x6c\ \xd8\xae\xd2\xf8\x51\x98\x58\xb4\x02\x18\xde\xb3\x4b\x4e\xb7\x2b\ \x07\x21\x86\x58\x40\x64\xc5\x88\x4a\xaf\xce\x6a\x74\xcf\x1b\x25\ \xaf\x85\x01\x67\x9e\x79\x56\x7e\xea\xfd\x08\x7d\xbe\xee\x61\x22\ \x45\x31\xcf\xf5\x9b\x55\xdf\x1c\x63\x0e\x33\x7f\x15\x4d\x2f\x68\ \xe1\xf4\xb8\x8a\x67\xa6\x34\xe1\xfe\x9d\x32\x83\x39\x84\x44\xb4\ \x28\x86\x55\x99\xcb\x2b\x10\xa9\xcb\x09\xb3\xf6\x25\x3f\x56\x72\ \x79\x6d\xd6\x0d\x7d\x75\x97\x90\x5d\xc4\x00\xfa\xad\x1b\xc0\x6b\ \x7f\xc7\xfa\x2f\x63\x00\xbe\x11\x45\x00\xd6\x02\xdc\x3a\x92\x05\ \x40\xa8\xeb\x61\xcc\x91\x8b\xf9\x05\x42\x36\x5e\x5f\x4d\xae\x6b\ \x47\xaf\x8e\x58\x08\x87\x15\x6a\xf4\x10\x5a\x0e\x0f\x0e\x81\xd8\ \xd6\xcf\x6d\xb8\x13\x0c\xd4\x8b\x59\xeb\x42\x19\xac\x24\x3c\x14\ \x15\x27\x3b\x58\x80\xe6\x5c\xc5\x46\x42\xea\xd9\x76\x8b\xfc\xa1\ \x20\xf3\x56\xed\x73\x16\x6b\xcc\x75\x4c\x37\xde\xdf\xa7\x91\x9b\ \x6e\x26\x5b\xcd\xc0\x64\x5e\xf9\x19\xae\xe5\xfd\x58\x4e\x90\x28\ \xb0\x48\x32\x86\x9b\x76\xb9\x8a\x64\x58\xcb\x95\x3a\x6a\x97\xe6\ \x5e\x0d\x1e\x02\x81\x4e\xc8\x8f\x9b\xe1\x2a\x01\x70\x32\x72\xb9\ \x16\x77\x5b\x80\x17\x96\x14\x89\xf9\x31\xdd\x28\x8b\xd4\x15\x49\ \xcb\xb5\x82\xf0\x4c\x49\x5a\x5a\xb6\xb1\x21\xdc\x3d\x80\x46\xdb\ \x80\xe7\x1a\xe1\x34\x31\xfb\x49\xc1\x15\x89\xcb\x0a\x65\x76\xdd\ \x22\x5f\x2c\xcb\x12\x4a\x24\x31\x45\x25\x56\x39\xca\xec\xbe\x55\ \x99\xd5\x6b\xdb\x00\x57\x62\xc1\xb8\xa3\x4d\xa6\xda\x64\xc1\xd2\ \x53\xff\xa6\x75\xd6\x2a\x4a\x53\x92\x9b\x8d\x20\xd8\xba\xaa\x26\ \xde\x57\x1d\x18\xa4\x14\xee\x62\xed\xc1\xab\x2c\x14\x62\xe4\x79\ \x9a\xa8\x1d\x01\xc4\x7e\x12\x04\x1d\x4c\xc3\xf1\x0c\x83\xf6\x4a\ \xd3\x5e\x08\x3a\x52\x18\xb2\xe8\x0f\x98\xd9\x30\xe5\x75\x26\xbe\ \x3a\xe6\x34\xeb\x46\xca\x06\xa1\xeb\x36\x7d\xc5\x96\xda\xd6\x01\ \x92\x97\x7d\xf2\xa6\xcf\xab\xb1\x9a\x50\x18\x0a\xab\xff\x86\xdd\ \xca\x12\x59\x34\x77\xc6\x3c\x49\x65\x78\x17\xf8\xb1\x0d\x2d\x8a\ \x79\xd0\x7e\x39\xaf\x06\x02\x38\xfd\xa3\xa7\x2c\xd3\xe1\x78\x5c\ \x83\x37\x5c\x8f\x55\x31\xab\x93\xc5\x22\x82\x6a\xe4\x04\x78\x86\ \x55\x26\x5a\x79\xf8\x39\x38\x06\xcc\x98\x05\x7b\xf8\x7a\x93\xe7\ \x9d\x2b\x85\x60\xad\x08\x2b\xef\x84\xe7\x4e\xd2\xd8\x11\x00\x42\ \xe7\xc3\x85\x76\x3b\xcc\x4f\xa3\x11\x62\x45\x7e\x18\xf0\xe1\x54\ \x75\xb7\x80\xb6\x42\x52\xbd\x3d\xe7\x55\x42\x68\xb6\x42\x98\x5a\ \x3e\xe7\x96\x0b\xb8\x90\x09\x93\x56\x8b\x00\x1e\x52\x07\x89\x0b\ \x53\x17\x94\x1a\x59\x85\x80\x7c\xea\xdd\xb8\x55\x8d\x35\x68\x5c\ \x20\xbc\x31\x7b\xeb\xaf\x35\x35\x8c\xf6\x4b\x05\xc6\x20\xb1\xbf\ \x64\x05\x50\xcb\x17\x48\x84\x7a\x94\x59\x13\xa3\x29\x7b\x09\x2c\ \xc1\xdd\x96\x22\xcc\x5b\x47\x00\xb3\xed\x90\x07\xb9\x0e\x2e\xd4\ \xb4\x02\xa8\xe6\x6c\xc8\xb2\x82\x11\x14\x08\x87\x6d\xe9\xcd\x77\ \x53\x17\x94\x0c\xcf\x57\xba\x80\x0b\xff\x95\x8e\x00\x02\xc1\x80\ \xc2\xc1\x90\x15\x40\xb3\xcc\x12\x17\xa7\xd4\xe0\x38\x94\x34\x3c\ \xa3\xd5\x2b\xfc\x1f\xe2\x24\xa3\x9f\x3e\x7d\x2c\x69\x05\x51\x5b\ \x9c\x36\xa6\xd9\xbe\xee\xb6\xcc\xb9\xe8\xd3\xd2\xf1\x83\x68\xc6\ \x30\x55\x13\x92\xc4\x4d\x70\x2f\x88\x63\x90\xd8\x16\x39\x30\x4b\ \x31\x55\x2a\xa3\xd5\xcb\xee\x86\xe6\xfd\xa4\xc3\x21\x55\xaa\x13\ \xe4\x13\x45\x04\xd0\x24\x22\x04\x40\xff\x29\xee\xab\xb5\x75\xd0\ \xae\x03\x1c\xc1\x2c\x7e\xcf\xd8\xd6\x26\x6b\xf3\x29\x9c\x4c\x5e\ \x16\x00\xd6\x5e\x96\xe4\x5d\x69\x01\x55\x8a\x85\x2c\x17\xe4\xf0\ \x2f\x88\xb4\xa2\xd4\xf3\x05\x53\x86\x56\x1c\x55\x2f\x4d\x2a\x0a\ \x6a\xbb\x4b\x53\x0a\xa7\x43\xaa\x2e\xb9\x1d\xe5\x63\x15\x14\x48\ \x5d\x52\x33\x19\x55\xbc\xb7\x4f\x75\xb4\x5f\x9e\xba\x88\x00\x0c\ \x00\x36\x21\xd7\x2c\x02\x01\x38\x2a\x2d\x9e\x52\x61\xc3\x46\xac\ \x60\xd4\x6a\x85\xa7\xda\xeb\x68\xf9\x37\x44\xec\x9f\x46\x0e\x4d\ \x0b\x82\xa3\xb7\xdc\x6c\x05\x10\x8c\xfa\x15\x88\xcf\xca\xf5\x16\ \x50\x42\x59\x71\x94\x51\x9e\xe1\x38\x32\xaf\x6a\x10\x86\xea\x6a\ \x15\x44\x30\x6e\x4a\x82\x9a\x8d\x6d\x86\xe0\x06\x1e\x3c\x53\x84\ \x51\x94\x75\xde\x99\xa1\xec\x79\x06\xb7\x63\x01\x4d\x88\x28\xb3\ \x30\xe9\xb5\x93\x9d\x40\x84\xbc\x9d\xc2\x21\x84\x69\xca\x63\xc2\ \x19\xfa\x82\x17\x4f\x29\xb3\x69\xbb\xe2\x1b\x57\x28\x71\x5d\x58\ \xb1\x15\x94\xc6\x2b\xa5\xd4\xfa\xa8\xd2\x3b\x37\x72\x6d\x27\x9a\ \x0a\xa8\x34\x37\xad\xda\xec\x02\xe6\xd9\xd2\x1e\x02\x80\x18\xb1\ \x82\xf2\xa5\xa2\x96\x8e\x1e\xe0\xb8\x24\x54\x67\x1b\x9a\x6a\x6b\ \xbe\x69\xc8\xa5\x09\x33\x8f\xb5\x95\x1c\x2e\x5b\xf4\xc7\xa4\x03\ \x54\x7a\xa4\xb3\xd5\x29\x3a\x3f\xe4\x23\x7c\x0f\xc5\x68\x84\xa4\ \x27\x94\x1c\xad\xaa\x6b\x6d\x43\xd1\x6e\x62\xfb\x30\x58\x91\xa0\ \x44\x4e\x19\x16\x3a\xd6\x60\x5c\x22\x24\x7f\x3c\x81\xe2\xd2\xea\ \x58\x38\xca\x3e\xcb\xe0\x5e\x69\x01\x15\x5e\x37\x5f\x68\xa7\x8a\ \x56\x00\x71\x3a\x2d\x61\x80\xca\x71\x72\xaa\x2e\x37\x95\x3b\xfa\ \x8a\x86\x6e\xbc\x59\xdd\xeb\x37\xca\xb9\x7e\x37\xfe\x99\x67\x81\ \xb8\x45\x22\x69\xcd\x2b\xc4\xbd\x1e\x0c\x94\x2e\x9e\xc5\x05\x4c\ \x62\xd2\xb0\x21\xc8\x46\x08\x00\x94\x0f\x7e\x4b\x59\xfa\xea\xb8\ \x4a\x37\x6c\x53\x6a\x68\x58\xb0\x29\x62\x94\x05\x4e\xdb\xe2\x22\ \x6f\xaf\x13\x4a\xdd\x52\xc8\x0a\x8e\x05\x83\x17\x75\xc6\x59\xc5\ \x7a\xa9\x27\xd2\x31\xd6\xd3\x24\xaf\x99\x50\x62\x10\x54\xc7\xdf\ \xb3\xb1\xba\x92\x83\x8e\x55\x54\xac\xdf\xa3\x36\xc1\xcc\xc9\xf0\ \xf9\x87\xc9\x1b\xcb\x89\xcb\x47\x63\xc6\x6f\x92\x20\xe6\xe7\x63\ \x36\x5b\x9c\x66\x68\x5c\x89\x01\xb5\x31\x3e\x6e\xfb\x8f\xfa\x90\ \x5a\x82\xfa\x3f\xc2\xc3\x4c\x62\x4d\xac\x7c\x3e\xaf\xe9\xe7\x7f\ \x04\x43\x25\xf9\x9d\x0a\x85\xc9\x08\x4c\x0c\x21\x71\xee\x71\x6c\ \x1e\x4f\x3c\x9e\x21\xef\x9e\xc5\x8f\x6d\x28\x6d\xbd\xf4\xb4\x16\ \x00\xd5\x4d\xdd\x40\x9a\x3d\x57\x50\x69\xf2\x02\xf7\x57\xed\x33\ \x1e\xd4\x74\x49\x9d\x99\xb7\x78\xe1\x04\xe8\x5e\x36\xf7\xd9\x6e\ \xd1\xf9\x67\x9f\xd3\xf4\xb1\x1f\xab\xb4\x7c\x46\xd1\x01\x3f\x16\ \x66\xc2\xd5\x8c\x22\xe9\xb8\x42\xa9\xa8\x62\x03\x41\xf5\x6d\x75\ \xd4\xb3\xc9\x53\xcf\x96\x06\x02\x90\x4d\xd6\x1c\xd7\x47\x04\xf3\ \xb5\x36\x5c\xa0\x9c\x38\x1d\x67\xe1\x0a\x9d\x4c\xf7\xa5\x97\x5e\ \x3a\x72\x0d\x08\x3e\xf9\xe4\x93\x87\x79\x97\x56\x32\x37\x38\x94\ \x9d\x71\x04\x10\xc5\x0a\x8c\x09\x35\x25\xea\x7b\x29\x77\xf8\xa8\ \xe6\xc7\x0e\x61\xde\x79\x62\xef\x84\x8d\xd9\x96\xbc\x9a\x05\xb7\ \xfc\xe9\x63\xc4\xe6\x26\xd7\x3d\xcb\x7c\xc7\x05\x3a\x84\x50\xb8\ \x86\x20\xb0\x1e\x98\xb7\x66\xcf\x09\xc2\x24\xf5\xc1\xf4\x5e\xcd\ \xef\x7f\xc2\x6a\xd0\xab\x59\x90\x45\x08\x15\x18\x68\xd0\xf1\x09\ \x71\xef\x12\xe7\x2f\xe2\xe7\x30\x97\x48\x51\x7c\xf5\x70\x2d\x4e\ \xe1\x14\xa2\x90\xf1\x81\xfc\xed\x30\x58\x43\xf7\x35\xbf\x22\x4e\ \x00\x1c\x8b\xc9\x0b\x85\x08\xbb\xf4\x12\x4c\x94\x81\x30\xff\x69\ \xb6\x1b\x9d\xfc\x49\x10\xf4\xf8\x5c\x64\x33\xc3\xab\xd4\x04\xdb\ \x48\x15\x49\x66\x32\x4a\x50\xe2\xe6\xe9\xa8\xd8\x5c\xda\xe5\xe1\ \x0b\x35\xcd\x3d\xff\x14\xdd\x9d\x21\xc5\xfa\xfa\x55\x5d\x30\x66\ \x69\xea\xfd\x10\xe0\x35\xa7\x3a\x55\x57\x2d\x17\x31\xcc\xb6\xa3\ \x83\xc9\x0f\x60\x1e\x57\x41\x8a\x9c\x73\xad\xc9\xe3\x9b\x30\x58\ \x80\xa1\x79\x79\x95\x33\xb8\xd8\x51\xac\x62\x99\xe2\x86\x34\x35\ \xe0\xb4\xdc\x47\x02\xe9\x23\x58\x98\x41\xf5\x79\x70\x61\x49\xa1\ \xae\x1e\x1a\x17\x71\x14\x94\xa0\x59\x02\x40\xc3\xa4\x70\x51\xb1\ \x36\x61\x31\x6e\x1d\xed\x57\xc0\x8c\x0a\xd1\x05\x73\xf1\x27\x53\ \xaa\x74\xa5\x71\xdb\xf5\xca\xb6\x37\x66\xcd\xcf\xcf\x1f\x94\x94\ \xfd\xc9\x96\x58\x13\x9a\xc7\x0b\x9e\x05\x21\xad\x99\xf8\x31\x9d\ \xf4\x9a\x35\x0a\xa6\x52\xed\xa6\xa4\xd0\x9c\xa3\xfc\x49\x1a\x25\ \xfb\x9e\x46\x71\x86\x81\x32\x42\xb8\x00\xd3\x33\xaa\x2d\x2f\x81\ \x65\xa1\xab\xc2\x97\x07\xb5\xcd\x1f\x42\xe3\x6a\xa0\x41\x97\x89\ \x2e\xaa\x3a\xbf\x17\xac\xd8\x8b\xc6\x8f\x32\x4f\x56\x45\x84\x0b\ \xd6\xd8\x8c\xce\x41\x60\xe4\x06\x3c\x5f\x67\xfe\xf3\xcc\x3b\x4b\ \x68\x0e\xc2\x78\x44\x0e\xc2\xf6\x05\xad\x10\xf0\xeb\x2e\xe6\x8b\ \xf3\xbd\xdd\xaa\xc9\xe1\xf7\x65\x42\x78\x1d\xed\x93\x70\x05\x33\ \x19\xa5\xae\xdf\x2a\x5f\x3c\x66\x9b\x21\xa6\xd7\xc1\xde\x81\xc7\ \x84\x4a\xff\xa1\x9e\x60\xe9\x3b\xdf\xf9\xce\xf7\x30\x91\xaa\xc1\ \x02\x87\x50\x18\xe7\x0d\x4c\x64\x90\xb4\x36\x16\xb5\x21\x05\xb9\ \x80\xf2\xd2\xf2\xe1\x63\x5a\x3a\x31\x66\x72\x76\xa8\x26\x37\x3f\ \xa7\xe5\xb1\x7d\x2a\x4d\x2f\xb0\xc0\xa0\x01\x1c\x8b\x1d\x3c\x70\ \xd9\xfc\x1b\x90\xcf\xef\xa2\x4d\x63\xf6\x27\x08\xaf\x17\x44\xc5\ \xc5\xb1\xc9\x14\x49\x6d\x67\xc8\xeb\x0b\x71\xc1\x91\x15\x58\x85\ \x0c\xaf\x1b\x8c\x49\xf6\x0d\x12\x96\xbb\x15\x80\xe9\x96\x19\xc9\ \xb6\xcd\x85\xf6\x1d\x5f\x08\x0e\x18\x9b\x30\x8e\xe9\x8b\x42\xc8\ \x57\xc0\xfc\x3d\x08\xe4\x5f\x0e\xfa\xb4\xfa\xce\x3b\x55\x67\x1d\ \xed\x0d\x1d\xcb\xff\xf3\xab\x5f\x7d\x54\x92\x7b\x4d\x4f\x50\x2c\ \x85\xed\x25\x63\x48\xe8\x50\x3c\x1e\xbf\x85\x92\x51\x41\xd0\x33\ \x45\x27\x25\x4b\x77\x55\x24\x27\xcc\x62\x2b\xad\xdc\xb9\x3a\xfe\ \xba\x4f\x09\x5c\x21\x94\x4e\x09\x75\x63\xa2\x05\x15\xcf\x03\x82\ \xe5\x59\xe5\xa7\xd1\x98\x79\x3e\x81\x76\x22\x61\xae\xdb\x82\x04\ \x90\x42\x33\x69\xa8\x2f\x20\xc0\xc5\x76\x8b\xb9\x04\xb3\x2e\x89\ \x48\x85\x50\x9b\x27\xf5\xbe\x84\x15\xd4\x5a\xcf\xf8\x4d\x76\x88\ \x40\x8a\x97\x6b\x14\xdc\xa3\x6c\xdd\x11\x0d\xb5\xdc\xac\x0e\x55\ \xb8\x37\x8f\xd5\x2c\x04\x14\xc8\x13\x26\x11\x8c\x47\xdc\x0f\x6c\ \xda\xa0\x24\x2f\x6f\xe7\x0a\x79\xdb\x0d\x62\xd3\xc4\xe3\xf9\x62\ \x71\xca\x4a\xf2\x5a\x01\xd8\x93\xb3\x7b\xf7\xee\x7d\x84\xf6\xb8\ \xd9\xdc\xe8\x04\x89\x02\x49\x04\x50\xe4\xbd\xa0\x72\x79\x28\x67\ \xb5\x5a\x2b\x38\xca\x9d\x9e\xd7\x12\xe7\xfb\xf7\xec\x84\x11\x59\ \x8d\x37\x1d\x17\x01\xd5\x29\x54\xa6\x68\x5e\x56\x6c\x1c\x0f\x63\ \xce\x84\x22\x50\x1b\xad\x24\x73\x8a\x0f\x61\x5d\x32\x61\xcf\xb1\ \x59\x9c\xc7\xc2\xb2\x2f\x5f\xd2\xfc\xcb\x0d\x30\xc6\xa7\x64\x66\ \xb0\x53\x9e\xd8\x66\x4b\xad\x14\xc6\x5d\x7c\x8a\x90\x03\x78\x80\ \x26\x21\x02\xa1\x76\xf3\xf7\x10\x08\x2e\xa8\xb2\xd1\x08\xb8\x32\ \x8b\xf6\x97\x30\xff\x32\x18\x80\xdb\x9e\x25\xc3\xdc\xf0\xcf\xde\ \xad\xba\xcf\xe9\xec\x55\x74\xbf\xff\xdd\xef\x7e\x05\x26\x4b\xe2\ \x73\x8d\x00\x3a\x49\xd2\xfe\xfd\xfb\x1f\xc7\x0a\x5e\xd9\xbe\x7d\ \xfb\x36\xfa\x67\x0a\x00\x84\x5d\xbb\x76\x69\x79\x0e\xf3\x86\xa9\ \x26\xa4\x86\x30\x59\x72\x83\x53\xa7\xd4\xbd\x69\x2d\x0c\x46\xf0\ \xd7\x12\x3d\xfe\x57\xb4\x34\x0e\x63\x2d\x03\xb3\xa6\x7f\xfe\x99\ \xe7\x8c\x55\xab\x7b\xa3\xc7\xcb\x4d\x97\x4c\x2e\x88\xb5\xa0\x79\ \x00\x8b\x66\x08\x02\x80\xc9\x2c\xe9\x33\x9a\xf3\xc8\x00\x27\x5e\ \xdc\x7f\xe5\x0e\x26\xee\x97\x46\x76\x01\x8e\xfd\x54\x99\x7d\x30\ \x69\xe6\x75\x0a\x08\x1d\xa0\x2d\x92\x3c\x65\x6b\xf2\x2f\x32\xd7\ \x14\x82\xce\x05\x01\xbf\xa8\xf2\x7d\xdd\x8a\xdc\xb2\x5b\x29\xc0\ \x6f\x1e\xed\x9b\x8d\x1d\x67\x4e\x9f\x7e\xe2\x99\xa7\x9e\x3a\x20\ \x56\xff\x53\xdf\x0e\x77\xb2\x42\x5e\x8b\xf9\xb6\x6c\xd9\xf2\x16\ \x3a\xc5\x8e\x49\x8a\x82\x50\x9d\xee\x6a\x93\x56\xb7\x8c\x00\x6c\ \xda\xea\x90\xa2\xd6\xd0\x68\x17\x3e\x38\x21\x77\xf9\x15\xb0\xa0\ \x2c\x8c\x11\x80\x74\xac\x69\x63\xe1\x24\x55\x52\x7a\xb5\xa7\xde\ \x55\xae\x7a\x77\x05\x40\x72\x98\x08\xf9\xb0\x0e\x23\x00\x21\x08\ \xfc\xff\xac\xa7\xec\xb4\x0f\x30\x75\xae\x69\x3a\xe1\x5d\x60\x90\ \xa3\x44\xcc\x53\xa8\xa7\xfd\x72\xd4\xb6\xa1\x58\xc3\x32\xda\x9f\ \x02\x57\x26\xb9\xe7\x22\x20\x59\x00\x24\xfb\x07\x75\xaa\x2f\xa5\ \x1d\x0f\xfe\xa1\x6a\x91\x90\x49\x7a\x44\x92\x57\xfb\xc6\x23\x8f\ \x3c\x38\x7e\xf6\xec\x31\x33\xe5\xcf\x7a\x3d\xee\xb2\x0d\x75\x86\ \x77\x69\xdb\xd9\x6a\xb2\x26\x12\x8d\xb2\x80\x98\xc2\x50\x69\x6e\ \x16\x90\xa1\x2f\x8f\xd9\xa2\x3d\x00\xad\x81\xc4\x27\x15\x0c\x9d\ \xc5\xa5\x2b\x80\x95\x09\x18\xd4\x06\xa4\xa6\x80\x34\xcd\x89\xa6\ \xba\x60\xbe\x67\x65\x83\x66\x87\x0f\x40\x0d\x60\xbe\x41\x9b\x5b\ \xd8\xac\xa6\x2d\x80\xfa\x82\x47\xb2\xe3\x53\x69\xde\x0a\xa5\xa3\ \xfd\x4e\x25\x6b\x29\xc1\x5c\xb1\x3e\xb5\xdc\xad\xc1\x89\x3c\x37\ \xce\x50\xfa\xe2\xd1\xc1\x69\x7c\x3f\x6b\x36\x47\xf4\xea\x04\x09\ \xd2\xba\x7f\xf7\x51\x45\x79\xf9\xba\x48\x64\x9a\x9b\x9b\x63\x2f\ \xd3\xfe\xaf\xfd\xcd\xc3\x0f\x3f\x64\xf2\xb9\x9f\x77\x83\x44\x89\ \x0d\x88\xb3\xec\xb8\x7a\x07\x1b\x0c\xc2\x30\x6f\x22\x01\x42\x88\ \xab\x44\xf9\xe9\x00\x88\x04\x5d\x5b\x76\xc6\xd3\x15\x16\xd6\x80\ \x29\x07\x40\x74\x38\x86\xf1\x98\xc7\xf9\xa6\x52\x7d\x9e\xd2\xc3\ \x4d\xa5\xb7\xf8\x31\x5f\x7c\x33\x12\x82\xa2\x58\x40\xbc\x85\xe0\ \x4d\x59\x60\x13\x0c\xb9\xcb\x9e\x0a\x0b\x3e\xac\x47\xd7\x7e\x9a\ \xcc\xdb\x83\x10\x98\xd3\x66\x83\x26\xdd\x5d\xa0\xc4\x9d\x26\xde\ \xcf\x60\x55\xb9\x30\x80\x99\xd1\x59\xf2\xfd\xf0\xbb\xde\xae\x91\ \xb7\xbd\x55\xd9\x72\xc9\x68\xde\x00\xdf\xe4\x9f\xfd\xf1\x1f\x7f\ \x14\x0c\xb8\xe4\x32\xd3\xcf\x2b\x80\x06\x7e\x33\x07\x72\x3a\xec\ \xc8\xbc\xdd\xb8\x42\x10\x21\x18\x30\x0b\x43\x65\xfa\x73\xbe\x4a\ \x99\xa2\xa4\xa6\x44\x0f\x9d\xa3\x5e\x13\x8d\xa0\xa0\x6c\x46\x16\ \xee\xf6\x51\x2c\xf9\x14\x1d\xf6\xa3\x75\x3f\x11\xc1\x68\x3e\x0c\ \xf3\x09\xf0\x20\x45\x0c\xa7\x34\x05\xc5\x65\x30\xc0\xad\xdb\xf6\ \x99\x93\x6d\x08\x78\xa4\xd1\x69\x31\xe4\xca\x8f\x2d\x61\xa3\xcc\ \x99\x49\xca\xbe\x2d\xf2\x2d\xa2\xf1\x59\xfc\x7d\x0e\xca\x86\xb9\ \x9e\xd6\x85\x44\x46\xb9\x9b\x76\x6b\xcb\x07\xff\x40\x45\x22\xce\ \x2c\x9a\x27\xb3\x73\xbf\xfd\xcd\xbf\x7d\x60\xec\xd0\xa1\xa7\x8b\ \x92\xfb\x8b\x6e\x92\x32\xfb\xf4\xcf\xd0\x2e\x5f\xcb\x0b\xc5\x8d\ \xc6\x15\x82\x26\xb4\x25\x13\xb6\xf8\xa9\xd0\xc5\x4d\xc6\x4b\x8a\ \x67\xaa\x14\x44\x4d\x2b\x00\x27\xe0\x20\x04\x53\x81\xf9\x18\x61\ \x3a\x1c\xe0\xd8\x6a\x1d\x4a\xf2\x3d\x0d\xf3\x90\x2f\x81\x2a\x5a\ \x4d\x10\xe2\x9a\xb5\x82\x00\x56\x13\x2c\x21\x04\x62\x77\x35\x27\ \xce\x31\x9f\x98\xcb\x41\xd3\xe0\x45\x17\x00\x98\x89\xa0\xf1\x3a\ \xf9\xfd\x42\x58\x21\x28\x98\x37\xf9\x46\x5a\xe7\x48\x17\x67\xe8\ \x18\xed\x78\xe0\xe3\xaa\x04\xfc\x2d\xe6\xd9\xd4\xf1\xdc\xd3\xcf\ \xfc\xf9\xb7\xbe\xf6\x57\x7f\xce\x74\xc5\x7f\xcc\x2e\xb1\x26\x54\ \x38\x76\xec\xd8\x89\x15\x2b\x56\xec\x21\x22\x0c\x21\x04\x6b\x05\ \x81\x54\xca\x36\x29\x6b\xe5\x9c\x52\xdd\xe6\x5d\x5e\xcd\x34\x25\ \x21\x41\x7e\xcc\xd1\x6f\xb2\x33\x98\x07\x94\xc2\x31\x4c\x3e\xc1\ \xf7\x14\xe7\x93\x5c\x8f\x73\x53\xa8\x95\x83\xd9\x1e\xa3\x6b\xdd\ \xc9\x71\xc0\x93\x18\x7e\x5e\x47\x10\x29\x1f\x58\x40\x37\x0a\x0a\ \xd3\x0c\x49\x67\x82\x1a\xec\x0e\x28\x19\x20\x45\x07\xe8\x42\xf8\ \x7b\xa0\x4c\xc7\x38\xd8\xa3\x13\xfe\x08\x9a\xbf\x49\x3b\x3e\xfe\ \x31\x55\x10\xfa\x0c\xcc\xa3\x38\xb3\x9f\xe9\xd1\xbf\xfc\x93\x2f\ \x7c\xb2\x5b\x9a\x5b\xfe\x25\xf6\x09\x7a\x68\x69\xe1\xf8\xf1\xe3\ \x63\xbc\x36\xbf\x0d\x3c\xe8\x09\x1b\x50\x8c\xc7\xa1\x24\x05\xd3\ \xb0\xf2\x4b\xa0\x30\xd5\xa1\xdf\xd6\xf6\x08\x41\x62\x0c\x30\xfa\ \xa1\x90\x80\x3e\x04\x84\x20\xcc\xc8\x79\x35\xfc\x26\x77\x87\xcc\ \x66\xa7\x06\x63\x83\xb1\x2e\x51\x00\xc1\x36\xd6\xe4\x28\xe9\x49\ \x5d\x34\x63\xbb\x32\x01\xf5\x76\xc3\x3c\x05\x4f\x97\x2f\xac\x70\ \x93\x88\x54\x04\x43\xdc\x84\xaa\x80\xcd\x8b\x3c\x1f\x7d\xd7\xbb\ \xb4\xf9\x5f\xfd\x4b\x15\xb1\x94\xe9\x99\x19\xcb\xfc\xcb\x87\x0f\ \xbf\xf0\x97\x9f\xff\xc2\xbf\x49\x36\xea\x13\xe7\xe0\xe1\x97\xdd\ \x29\x4a\x16\xeb\xce\x8c\x8f\x8f\x1f\x23\x2a\x98\x04\xa9\x27\x1c\ \x89\xd8\x4c\xaf\x19\x89\x53\xa7\xaf\x22\xcb\x4a\xab\x9c\xaf\x90\ \x81\xd5\x2d\x53\x0c\xb6\x2a\x73\xaa\x50\x05\x43\x2e\x0b\xe0\x84\ \xd9\xa2\x2b\x15\xb0\x96\x62\x95\xe3\x0a\x54\x6b\x51\xc1\x05\xd8\ \x1a\x8c\xb8\x50\x09\xcc\x00\xe9\xa2\x50\x02\x9c\x48\xf9\xe8\x4d\ \x40\xa1\x26\xd6\x57\x8f\x23\xdb\x8c\x26\x7c\x51\x1d\x66\x0d\x9b\ \x1f\x7c\x50\x43\x77\xdd\xa1\x2c\x51\x69\x6a\x7a\xda\x00\x1e\xbb\ \x59\x0e\xbf\xf8\xb5\xbf\xf8\xef\xf7\x47\xf2\xd9\xf1\xb3\xac\xfd\ \x57\xb9\x59\x3a\x82\x05\xdc\xc4\xcf\x61\xfe\x94\x24\x69\x17\xdb\ \x68\x44\xe5\x68\x37\x48\x85\xca\x00\x62\x7e\x5e\xc5\xf1\x17\x15\ \x29\x8f\x29\x1d\x98\x57\xa8\x51\x6d\xed\x0a\x35\x8d\x55\xfe\xf9\ \x9a\x10\xff\x1c\x4b\x9d\xfd\x4e\xed\x37\xc4\xed\x1e\x23\x9e\xd4\ \x29\x67\xa1\x20\xc2\x0c\xa2\x6d\x46\x2f\x2c\x4c\x4e\x34\xc1\x34\ \x56\xa6\x17\x71\xd7\x5d\xda\xf8\x9e\x7b\xd5\xc0\x12\x17\xb3\xcb\ \x76\x57\x3a\x95\xac\x8e\x1c\x3c\xf4\xf8\x5f\x3f\xf4\x95\x8f\x77\ \x57\x4a\xa7\x8f\x4b\xee\x6b\xb1\x5d\x3e\x44\xc7\x68\x2b\x7b\x08\ \x3f\xc5\x6f\x05\x7e\x97\x5c\xc1\x61\x03\x92\x22\x21\x80\x09\x33\ \x8e\x19\x7f\xa6\xa7\x57\x3e\x7d\x08\x3f\x3d\xa5\x1e\x65\x11\x48\ \x49\x81\x6a\xc3\xee\x23\xf0\xd7\x01\x4b\x5b\x11\x43\xcd\x76\xba\ \x6b\x81\xc3\x69\x63\x82\x9f\xf3\x86\x60\xda\xe4\xfa\x68\xde\xa3\ \x08\xba\x58\x71\x75\xae\xe1\xd1\x97\xdc\xa3\x4d\xec\x47\x0e\xb2\ \x1b\x2d\x47\x42\xb6\x40\x92\xc3\xfe\x3f\xa3\xf9\xc6\x81\x7d\xfb\ \xfe\xc7\xf7\xfe\xfa\x6f\xfe\xeb\x48\xd3\xbb\x78\x04\x91\xbe\x96\ \x3f\x98\x08\x40\xc3\x3b\x77\xee\xfc\x83\x37\xbd\xe9\x4d\x0f\x12\ \x26\x53\xec\x20\x17\x20\xa9\xb0\xc9\xfd\x59\x68\xdc\x41\x61\xc5\ \x9c\x0a\xaf\x9e\x94\x26\xc7\x15\x9a\xbf\xa4\x1e\x9a\x1b\x09\xf2\ \xf6\x40\x89\xd4\xb5\x4a\xee\x6e\x84\xc0\x3f\xf1\x8c\x7c\x50\x20\ \x88\x79\x87\x60\x38\xa2\x1a\xe3\x54\xa9\xaa\x59\xee\xa9\x62\x69\ \x03\x6f\x78\x83\x46\xd8\x7d\xee\x74\xa5\xf1\xa0\xaa\x96\xb2\x59\ \x9b\xe1\x4d\x63\xf6\x67\xcf\x9c\x99\x7b\xe6\xc9\x1f\xfc\xa7\xa3\ \xcf\x3d\xff\xcd\x95\xd4\x73\x07\x25\xef\xf5\xf8\xc9\x8c\x03\xa5\ \xf9\xdc\x7a\xc7\x1d\x77\x7c\x82\xd7\xcd\x6f\xc6\x25\x7c\x84\x4b\ \xc5\x63\x31\xbb\x83\x3b\x2c\x29\xee\x0f\x28\xe6\x43\xb3\xe4\xe3\ \x45\x4c\xb4\x3a\x35\xa9\xe6\xec\x8c\x7c\x30\xa0\x82\x79\x77\x50\ \xb7\x55\x5e\xc3\x54\x85\xe1\x88\x5c\x00\xd6\x4b\x53\xe3\x0f\xf4\ \xab\x7f\xcb\x56\xf5\x6e\xdd\x22\x1f\x6e\x46\xd9\xa0\x3c\x6e\x96\ \xe3\x99\x2c\xcf\xd2\xd4\x10\xd9\xaa\xcb\xa6\xcd\xbf\xfb\xc1\xf7\ \x1f\xfd\x6f\xde\xe2\xe2\xd1\xf5\xf2\x2a\x3f\x92\x9a\xaf\xf7\x8f\ \xa6\x82\xd0\x8a\x0d\x1b\x36\xdc\x73\xe3\x8d\x37\xde\xbf\x7e\xfd\ \xfa\x1b\x00\x4a\xb3\xc9\xda\x6e\x47\x09\xe3\x1a\x21\x63\x15\x50\ \x14\x0d\x47\x8c\x60\x10\x4a\xc0\x74\x6b\x3b\x11\x83\x63\x87\xeb\ \xe2\x9a\x82\x41\x46\xbf\x5c\x47\xb6\x86\x2f\x03\x6e\x14\x26\x2a\ \x96\x4a\xc8\xab\xd0\xc9\xeb\xbd\xd3\xe3\xe3\x2f\x1c\xdc\xf7\xe2\ \x97\xce\x1d\x1d\x7b\x22\xd3\x6c\x2c\x8d\x4b\x8d\x5f\xe7\xcf\xe6\ \x1c\x28\x02\x0d\xaf\x5b\xbb\xf6\x2d\x3b\x76\xee\xfc\x17\xb8\xc5\ \x6e\x04\x11\xc2\x42\xac\x20\x00\x4f\x11\x3d\x14\x0c\xc0\x3c\xcc\ \xf2\xfb\x20\x2c\x3f\x00\x01\x78\x68\x9f\xff\xd9\xa4\xa8\xe1\x79\ \x96\xea\x00\x62\x0d\xe6\xcb\x30\x6f\x18\xe7\x17\xa5\x26\xa7\x2f\ \x4f\x9c\x3f\xff\xdc\xe1\xfd\x07\xbe\x7a\xe1\xd4\xf8\xd3\x51\xcf\ \x9d\x0f\x49\xb5\x73\xbf\x41\x3f\x9c\x74\xa0\x30\xec\xf4\x26\x62\ \xb1\x2d\xdb\x77\xee\x7c\xc7\xc8\xe8\xe8\xef\x80\x0f\x1b\x32\xec\ \xd4\x64\x07\xea\xdf\x0b\x02\x4d\x07\x10\x46\xe7\x5d\x9d\xda\xbb\ \x37\x08\xb7\xb6\x75\x45\x35\x6a\x4b\xd8\xa5\xc5\xc5\xc2\xfc\xdc\ \xdc\x31\x36\x6b\x3e\x79\xe4\xc5\x17\xff\x4f\xad\x54\x79\x35\xe8\ \xd5\x97\x03\xa6\x60\x93\x9a\xbf\xa9\x3f\x9d\x75\xd4\x2a\x0d\xa2\ \xb0\xd7\x8d\x81\x0f\xaf\xdd\xb0\xfe\xc6\x15\xc3\xc3\xd7\x03\x94\ \xab\x12\xc9\xd4\xca\x70\x24\x9c\xa6\xf1\x8a\x57\x04\xc3\xdc\x6c\ \x18\xaf\xd0\xb2\x2a\xc1\xfc\x32\x6d\xab\x0b\xec\x4e\x3f\x37\x39\ \x31\x71\xf8\xec\xa9\xf1\x83\x5c\x9f\xa6\xfa\xcb\x8a\x3e\xd1\xb2\ \xe4\xfd\x36\xfe\x78\x9a\xba\x0f\xb7\x97\xc8\xf2\x15\x91\x15\x8c\ \xc3\xe8\x84\x9a\x9c\xc7\xfc\x3d\x47\xb8\x3d\x90\xc8\xf5\x32\x9b\ \x54\xcb\xa0\x80\xcd\x08\x0c\xd7\xaf\xf5\x8f\xa8\x9d\xdf\xb0\x5f\ \xad\x37\xf5\x3a\x7f\xfe\x1f\x5f\xbc\xdd\xe6\x1a\x53\x0c\xc2\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x13\x09\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\ \x1b\xaf\x01\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xd7\x09\x17\x17\x15\x19\x49\x86\x70\x41\x00\x00\x12\x96\x49\x44\ \x41\x54\x78\xda\xed\x5b\x09\x74\x5c\xd5\x79\xfe\xee\x7b\xb3\x6b\ \xb4\x5a\xb2\x25\xd9\x96\x64\x63\x6c\x83\x31\x36\xb6\x81\x00\xe1\ \xb0\x34\x14\xc2\xda\x94\x86\x04\xd2\x90\x42\x72\x20\x5d\x20\x14\ \x68\x08\x4b\x48\x09\x87\xda\xad\x73\x52\x52\x02\x24\xad\x7b\x20\ \xe4\xb0\x95\xcd\x40\xb0\x1b\x56\x2f\x80\xb1\x2d\xdb\xd8\xb2\x6c\ \x6c\xd9\xb2\x2c\xc9\x1a\x4b\x1a\x69\xf6\xe5\x6d\xf7\xf6\x7f\x33\ \xef\xf0\xf4\x3a\x9a\x19\x1b\x26\x3d\xc9\x69\x7e\x9d\x4f\xf7\xbd\ \xfb\xee\x9b\x79\xdf\x77\xff\xe5\xbe\x2b\x1b\x7f\xb4\x3f\xda\xff\ \x6f\x63\x38\x0e\x1b\xbb\x05\x75\x52\xed\xf4\x8b\x5d\x33\x97\x5c\ \x06\xb7\xef\x3c\xa1\xa4\x3c\xd0\xb3\xc3\x42\xcd\x0c\x71\x35\x15\ \x12\x4a\x22\xc4\x53\xe3\x21\x91\x8d\x85\x84\xc0\x10\x80\x10\xe1\ \xe8\xd4\x9f\x43\xf9\x83\x16\x40\xfc\xd8\x7f\x95\x68\x5d\x76\x37\ \xe7\x58\xc6\xd3\x51\x99\x08\x42\x70\x01\xe1\x0e\x12\xaa\xc0\x65\ \x3f\x84\xec\x81\x60\x6e\x82\x0b\x90\x5c\x10\x82\x03\xdc\x00\xd7\ \xd2\x02\xba\x32\x2e\x0c\x6d\x48\xe8\x6a\x48\x68\x4a\x48\xe8\xd9\ \x10\x57\xd3\x24\x54\x7c\x48\x68\xd9\x90\x30\x85\x12\x08\x4d\x7f\ \x0c\x99\xdf\x3b\x01\xc4\x03\x9e\x3f\xc7\xf9\xf7\xbf\x88\xe6\x45\ \xcc\x24\x04\xae\x03\x26\x39\x43\x05\x32\x11\x80\xc4\x80\x9a\xcc\ \x43\xcf\x40\x68\x19\xf0\x6c\x82\x90\x02\x57\x92\xe0\xa6\x50\xb2\ \x0f\x5c\x48\x04\x53\x13\x4e\xd0\xc1\x75\x2d\x27\x14\x40\xd7\x0d\ \x03\x24\x0a\x41\x8d\x0a\xae\x87\x08\x43\xc2\xa0\x36\x07\x95\x04\ \x33\xa1\x0c\x09\x6e\x84\x00\x84\x3a\x1e\x47\xf2\xff\x4e\x80\xa7\ \x2e\xee\xc4\x99\xb7\x2c\x85\xb0\xc8\x73\x23\x07\xc7\xb9\x28\xd6\ \xa7\xe7\xa1\x98\xe2\x64\xed\x3e\xd3\x84\x00\x57\x33\xa4\xa3\x42\ \xc8\x82\x73\x0e\x03\x6e\x70\x12\xd6\x50\x32\x39\x01\x0d\x12\x52\ \xcf\xc4\x01\xba\x26\xcc\x1f\x6e\x80\x3c\x89\xa0\x27\x68\x60\x4e\ \x90\x1c\x04\x0f\x01\x3c\xc4\x64\x98\xd8\xd9\x71\x29\xba\xd9\xc5\ \x10\x95\x11\xe0\x85\x6b\x53\x58\x78\x6d\x20\x3f\xf3\x46\x09\x01\ \x9c\x62\x38\xc6\x8b\xdc\x35\x1b\xa2\xc8\x58\xf2\x1e\x40\x00\x14\ \x4e\x90\xdc\x80\xcb\x47\xf0\xe7\x3c\x46\xd7\x75\x18\x9a\x96\xf3\ \x20\x9d\x33\x12\x27\x09\x3d\x35\x06\x75\xa4\x07\x7a\xa2\x0f\xae\ \x00\x03\xf3\xe4\x6f\x37\x14\xf1\x3a\x35\xdf\xe8\x58\x81\x04\xca\ \x98\x0b\x65\x8d\xb9\x72\x0f\x97\x8b\x69\x82\x63\xc6\xb9\x89\x82\ \x63\xc7\x78\x61\x58\x2d\xb7\xfa\x8b\x8c\x35\x21\xc9\xf9\x3e\xcd\ \xf4\x96\xd4\xa7\xe2\x48\x34\xc6\x63\x0b\x95\x0f\x3f\xd9\x0b\xd4\ \xd7\x00\xb3\x2e\x85\xde\x34\x97\x9c\xec\x03\xe8\x43\xab\xc1\xb3\ \x06\xd4\x38\xae\xc8\x8c\x88\x55\xa2\x1b\x5f\x63\x0b\x50\xd2\x24\ \x94\x35\x0e\x88\x89\x04\x78\x01\x81\xa2\xd7\x45\x31\x91\x8a\x7c\ \xd6\xb1\x7e\xb6\x69\x5a\x1a\x48\x1c\x01\x0e\xbf\x0f\xd7\xbe\x35\ \xa8\x5a\xba\x02\x9e\xe9\xcb\x00\x96\x1f\x0a\xce\xbe\xda\xf3\x38\ \x4e\x00\x3e\xaf\x00\x42\x4c\x70\xdd\x22\x33\x69\x79\x44\xd9\x87\ \xe7\xe5\xbd\x80\x50\xfe\xb3\xed\x6b\x79\x11\x0e\xbc\x09\xac\xbd\ \x13\x7a\x66\x16\x52\x43\x02\xe9\x61\x01\x35\x29\x98\xa1\x62\x49\ \x25\x04\x28\x7c\x38\xce\x8b\xcc\x6c\x31\x61\x8e\x91\x38\x2f\x15\ \x5a\x93\x08\x13\x27\xf2\xe9\x31\xe4\xec\x93\xd5\x30\x12\x5e\xa4\ \x8f\x9a\xe4\xf3\xb7\x42\xc0\x5f\x81\x1c\x20\x0a\xc9\xd8\x84\x4a\ \x92\x71\x1e\x97\x0a\x25\x5e\x46\x9c\x42\xf1\x6c\xf2\xf6\x44\x31\ \xdd\x2c\xaf\xd6\x23\xc3\xb2\xcf\x2d\x40\xa1\xdb\x15\x78\x41\xb1\ \xd8\x75\x1e\x17\x0f\x95\xc2\x44\x59\xc6\xc3\xe2\x83\x44\x3e\x8c\ \x02\xe3\x1a\x84\xc5\xbc\x72\x02\x40\x14\xcd\xe8\x36\x81\xe3\x4d\ \x88\x45\xae\x17\x92\x2d\x1c\x1f\x1b\x70\x90\x77\x98\xa1\x43\xa0\ \xd2\x02\x08\x41\x30\x8e\x3d\xa3\x17\x86\x4a\xf9\x24\xc8\x8f\x31\ \x29\xc6\x4b\x90\x27\x13\xa6\x07\x4c\x9c\xb7\x0a\x09\xe0\x24\x5b\ \xbe\xd4\x95\x5f\x03\x94\xff\xac\x42\x0f\x8b\xf5\x03\xa9\x51\x94\ \x34\x43\xb7\x89\x57\x38\x04\x2c\x18\x05\x0f\x57\x9e\x4c\x91\x6b\ \x28\xa8\x26\xc5\x45\x8d\x1d\x2e\x4f\x1e\xc8\x2f\x93\xe1\x14\xa0\ \x12\x65\xd0\x41\xb6\x10\x45\x32\x36\x6c\xa2\xb9\x7e\x10\x98\x75\ \x0e\x6e\x9d\x13\x60\xf7\x4d\x9a\x10\xcb\xcf\xbc\x33\x09\x02\x36\ \x44\x25\x04\x40\xc9\x44\x35\xb9\x10\xb0\x88\xb1\x63\x24\x6e\xc2\ \x3e\xb6\xbf\x27\x6a\xce\xfc\x08\x8e\xd5\x04\xd7\x2d\xe2\x16\x2a\ \xe4\x01\x65\x56\x7a\x0e\x22\xc5\x88\x95\x12\xc3\xea\x73\x0a\x87\ \x58\x5f\x01\xf9\xb2\x66\x38\xca\x60\x25\x05\x28\x1f\xdb\x4e\x21\ \x9c\x64\x0a\x3d\xc2\x26\x6e\x0b\x64\x58\xe0\x40\x9c\xc8\x67\x88\ \xbc\x54\xe4\x7d\xb5\x74\x15\x70\xa0\xd2\x2b\xc1\x82\x38\xb7\x60\ \x93\x13\xff\xdb\x0b\x2c\x62\xc2\xe1\xe6\x36\x59\x82\xe3\x38\x7e\ \x88\xc8\x0f\x03\xb2\x35\x54\x58\xe0\x28\x67\xf6\x3a\xc0\xf6\x82\ \x0a\xaf\x04\x3d\x55\x40\xfd\x09\xf9\xa7\xd1\xd3\x40\x26\x0c\x24\ \x8f\x02\x5a\xd2\x99\xe8\xec\x58\x2e\x14\x88\x39\x12\xa3\x53\xa8\ \x78\x6f\x9e\xbc\x64\x3d\x3d\xb3\x45\xb0\xfd\xba\x74\x15\xb0\xcb\ \x60\xe5\xd6\x01\xb6\x08\xfe\x29\xc0\xdc\x4b\xe1\x34\x91\x17\x61\ \x6c\x2f\x10\xfa\x28\xe7\xbe\x85\xee\x4f\x10\x13\xfa\x84\xc3\xe5\ \xf3\x6d\xe2\x90\x93\xbc\x4d\xd6\xd9\xf2\x12\xcc\xac\x24\x58\xe9\ \x75\x80\x23\xbb\x17\x1a\x03\x82\x2d\x79\xb4\x5f\x98\x17\xe0\xe0\ \x6b\xc0\x48\xa7\x33\x1c\x18\x01\x36\x79\xb3\xb5\xc9\x9b\x33\x7f\ \xd4\x72\xfb\x32\x02\xc0\x1e\x53\x72\x1d\x20\x08\x15\x4d\x82\xb0\ \x50\xce\x6a\x3a\x80\xd3\x6e\x05\xce\xb8\x17\xa8\x9e\x3e\x21\xce\ \xed\x7c\x60\x9f\x5b\xe4\xb3\x16\x79\x09\xd4\x5a\x90\xca\x80\xa1\ \xf8\xcb\x90\xa8\x64\x15\xc0\x24\x19\xdf\x50\xca\xaf\x32\xea\xe7\ \x01\xe7\x2c\x07\x3a\x2e\x73\x84\x84\x0d\x93\xfc\x41\x22\x1f\xb2\ \x49\x95\x03\x2b\x2d\x82\x30\xf4\xca\x57\x01\x22\x6a\x27\xaa\x48\ \x0f\xb0\xee\x6e\x40\xe8\xf9\x73\x6f\x35\x10\x6c\x26\xb2\x27\x02\ \xd3\x96\xd1\x79\x7d\xc1\x76\x22\x4e\xba\x01\xa8\x9b\x03\xec\x5c\ \x09\x18\x9a\x95\x00\x09\x89\x03\x80\x62\x91\x17\x93\x00\x8e\x44\ \x68\x1b\xb7\xa7\xad\x20\x1c\xb8\xe6\x8c\x16\x51\xe9\x32\x88\x89\ \xe5\x4f\x07\xb2\x61\xc2\x30\x30\xba\x1d\xe8\x79\x16\x68\x5c\x04\ \xcc\xfe\x33\xa0\xba\x1d\x0e\x6b\x39\x17\xf0\x90\x58\x9d\x14\x16\ \x9a\x0a\x24\x7b\xec\x99\x17\x25\x92\x9c\x70\x10\x76\x92\x66\x13\ \x20\x9c\x1e\x90\xfb\x55\xb1\x10\x60\x02\xce\x9a\x3f\x59\x19\xb3\ \xb6\xba\x47\xb6\x00\x9b\x7f\x00\x7c\xb2\x8a\xba\xb2\x70\xd8\x94\ \xc5\xc0\x92\xfb\x81\x74\x9f\x49\xbe\x78\xcc\xdb\xfd\xc7\x17\x1a\ \xa6\xd9\x65\x90\x50\xa9\x24\x08\x51\x58\xd7\x6d\xf2\x85\xab\x3e\ \x53\x88\x81\x35\x24\xc4\x1d\x40\x6a\x10\x0e\x6b\x3a\x13\x38\xf5\ \xfb\x05\x64\xcb\x82\x4d\x1a\xff\xce\x7e\xf6\x3b\x5d\x09\x5a\x04\ \xfd\x8d\x40\xfb\x05\x80\xbb\x2a\x17\x6f\x48\x0f\x01\xf1\x83\xc0\ \x78\x17\x60\xa8\x13\x44\xa0\x36\x75\x18\xd8\x4a\x22\x2c\x79\x10\ \xa8\x99\x8b\x4f\x6d\xfe\xdf\x00\xa3\x1f\x00\x87\x9e\x01\x50\x26\ \xfe\x51\xc2\xf5\x25\x47\x9e\xc8\x83\xeb\xf6\xed\xa2\x32\xeb\x00\ \xe7\xcc\xfb\xea\x80\xd6\xb3\x60\xdb\x52\x02\xf2\x2b\xc1\xa1\x77\ \x80\xbe\xd5\x74\x1c\xb1\x17\x3b\x5a\x14\xd8\x7e\x17\x89\xf0\xcf\ \x4e\x11\xce\x7c\x04\x18\x79\xd7\xac\xfd\xc5\xe3\x9f\x17\xf5\x4f\ \x27\x69\xc9\x3e\x17\x10\x16\xf1\x8a\x87\x80\xed\xee\x93\x9a\x3b\ \x08\xb4\x5f\x05\x9c\xf5\x53\xa0\x71\xa9\xf3\xe5\x66\x7c\x2b\xb0\ \xfe\x72\x40\x8b\xd9\xe3\x3d\x0d\xa4\xdd\x4f\xca\xd7\x7c\x66\xb7\ \x36\x8a\x84\x06\x9b\xc4\xa1\x2a\x23\x80\x73\x25\x58\xd2\x3c\xf5\ \xc0\xe2\xfb\x80\xb6\x2b\xf2\x5e\x90\xd8\x07\x28\x47\x80\x54\x0f\ \xb0\xfd\x56\x38\xac\xfd\x5a\xa0\xe1\xb4\xcf\x50\xfb\x4b\xc2\xb1\ \x12\x14\xa2\x62\x02\x70\x0b\x02\x50\x62\x40\x78\x17\x30\xb2\x0d\ \x48\x0e\x4e\xf2\x2d\x0c\x98\xfb\x5d\xa0\xf1\x4c\x20\x3b\x68\x3f\ \x78\xff\x53\x74\xcf\x3b\x13\x86\x51\xe7\x29\xf7\x1d\x67\x22\x2c\ \x71\xcc\x9c\xc4\x05\x2a\x97\x03\xec\xfa\x3f\xbe\x17\xd8\x70\x1b\ \x00\xdd\x0a\x09\xeb\x05\xa9\xe3\x4a\x60\xc6\xc5\xce\xa5\xd9\xc2\ \x1f\x11\xe1\xdf\x02\x91\x4e\xfb\x41\x77\xdf\x05\x5c\xb8\xd5\x1e\ \xd7\x4a\x61\x13\x6c\x03\x92\xfd\xce\xd8\x67\x36\x0a\x63\xbd\x04\ \x80\xcf\xb6\x27\xf8\xe0\x7d\x37\x2d\xdc\xf2\xf6\x4f\xa5\xd2\x55\ \x80\xc0\x55\xe7\x92\x18\x84\x4c\x08\xd8\xfb\x18\xb0\xfd\x87\x80\ \x91\x99\xf0\xc9\x6e\xe0\x0b\xbf\x06\x5c\x2e\x7b\x16\xe3\xdb\x80\ \xd1\x89\x5e\x20\x03\xed\xdf\x2c\x3b\xf3\x4e\x14\xef\x17\xec\x33\ \xe6\x80\xb7\x37\xf7\xae\x7e\x6b\xc3\xbe\x5f\x90\x08\xac\x68\x0e\ \x28\xdc\xf3\x73\x2e\x90\xc6\x3a\x81\x0f\x6f\xb4\xfa\x2c\xab\x9e\ \x0f\xb4\x5d\xe7\x8c\xe3\xfe\x5f\xc2\x61\xd3\xaf\x2e\x41\xba\x4c\ \xdc\xa3\xe0\xdc\x0e\x83\xe3\xc9\x01\xe3\x8a\x9e\xed\xdc\x35\x38\ \x7f\xc7\xee\xc1\x7f\x25\x11\x4a\x6f\x89\x81\x3b\x84\xb0\x77\x6f\ \xf7\x00\x87\x9f\x03\xf6\xac\x84\xc3\xe6\xdd\xe5\x24\x37\xba\x06\ \x30\xd2\xf6\xf5\xda\xc5\x80\x7f\x6a\x01\xe9\xe3\x24\x6e\x0b\x20\ \x3e\x83\x07\x24\x33\x19\x43\x81\xfb\xce\xd7\xdf\xec\xba\xe6\x50\ \xff\xd8\x43\xc5\xdf\x06\x09\x81\x16\xe0\x8c\x1f\x03\x17\x3d\x4f\ \xed\x0a\x20\x38\x33\x4f\x3e\x3d\x80\x9c\xed\xa5\x9a\xaf\xc5\x27\ \x78\xc1\xc9\x40\xcd\x7c\x9b\x94\x20\xf2\xd1\x0f\x9d\x49\x73\xca\ \xd9\x85\xa4\x51\x36\xde\x0b\xc9\x33\x27\x71\x21\xb9\xe5\x63\x12\ \x20\x95\xc9\x1a\x29\xdd\xc8\x8e\x45\x92\xb7\x3c\xbb\x7a\xeb\x3d\ \x6b\x5f\x78\xf0\x9e\xc2\x3f\x8d\xf1\x7c\xe6\x5e\x72\x27\x50\x6f\ \x12\x72\x01\x75\xd4\x9e\xbe\xc2\x76\x7b\x86\xfc\xe2\xe7\xc8\xab\ \x70\xd8\xd4\x8b\x9d\x33\x1b\xdb\x0c\x87\xd5\x2e\x3a\x0e\xa2\x65\ \x44\x80\x05\xfa\xb5\xcb\x77\xfa\x2f\x96\x3f\x70\xeb\xeb\x8f\x3d\ \xfc\xc3\xef\xfc\xec\x27\xf7\x4e\x2f\x5a\x05\x32\x8a\xa2\x27\xd2\ \x19\xff\xf6\x4d\x9b\x5e\x5a\xba\x74\xe9\x6b\xcf\xbc\xbc\xf9\xa1\ \x0f\xff\x7b\xe5\xc8\xd9\x97\xfc\xc3\x2a\x47\x12\xac\x99\x0d\x54\ \xb5\xc0\x61\xee\x1a\xe0\xe4\xef\x01\xdb\xbf\x6f\xf7\x8d\x6e\x00\ \x3a\xbe\x39\xc1\x0b\x4e\x71\xba\x77\x66\x1f\x1c\x56\x75\xc2\xf1\ \x91\x47\x89\xbe\x09\x25\x70\xe3\xa6\x2e\xcf\x86\xa1\xfd\x97\x37\ \xd4\xd7\x5e\x3e\x73\x66\x8b\xf8\xea\xd5\x57\xec\x9a\x36\x6d\xda\ \x7b\x55\x55\x35\xeb\x33\x59\xf5\x83\x7f\x7b\xe4\xe7\xa3\x39\x01\ \x14\x4d\xe3\x14\x06\x7e\x90\x71\xce\xff\x76\x67\x77\xff\xb9\x2f\ \xbd\xb1\xed\x71\xca\x07\xc3\x38\xfc\xa4\x2d\x80\x96\x29\xb2\xf9\ \x71\x0a\x1c\x96\x19\x80\xc3\x7c\xcd\xce\x87\x56\x87\xe0\x30\x6f\ \x4b\x59\x82\xe5\xc9\x3b\x63\x9f\x83\x61\x6a\x9d\xf7\xad\xda\x54\ \xed\x02\x26\xb9\x5a\x87\x47\xa2\x6c\x6c\x3c\xb9\xa8\xb7\x6f\x68\ \x91\x2c\xcb\xb7\xa9\xaa\xca\xe7\xcc\x99\x73\x7b\x4e\x00\x5d\xd7\ \x59\x3a\x9b\x0d\x80\x6c\xc7\x8e\x1d\x83\x0b\x16\x2c\xf8\xbb\x35\ \x6f\xef\x7c\xba\x65\x5a\xed\x73\x27\x9d\x30\x53\x0e\x72\xc3\xda\ \xc1\xe9\x07\xd2\x47\x81\x40\x33\x1c\x96\x3c\x0c\xe7\x02\x5c\x86\ \xc3\x5c\xb5\xce\x35\xbf\x91\x82\xc3\xe4\x2a\x1c\x97\xb1\xc9\xfb\ \x46\xb2\x3e\xbc\x1f\xa9\xc3\xc1\x4c\x2d\x0e\x67\x6b\x30\x1e\x4b\ \x5f\xa4\xeb\x49\xc4\x62\x31\x28\xe4\xe5\x84\x7d\xc4\xb5\x95\x73\ \x5e\x6f\xf9\xe2\x2c\xf3\x17\xb8\x10\x8c\xf2\x40\x10\x96\x75\x77\ \x77\x3f\x63\x18\xc6\xd3\xff\xf9\xf4\xba\xc0\x6b\x91\xb9\x72\x5a\ \x78\x00\x6e\xfd\xe3\xc8\xf5\xb7\xe5\x57\x83\xb0\x2c\x3b\x0a\xec\ \x7c\xc8\x49\xb0\xaa\x03\x0e\xd3\xe3\x70\xee\xef\x7b\x50\x60\xf6\ \xfd\xc7\x65\xe3\x59\x37\x7e\xb5\xb7\x19\xd7\xbf\xbd\x00\xcb\xfb\ \xcf\xc5\x7b\xb1\x99\xd8\xdc\xaf\xe0\xc0\xde\x2e\xd4\x25\xba\x51\ \xa7\xf4\x3f\x5a\x53\x53\x73\xe1\xca\x95\x2b\x67\x90\x00\x4b\x67\ \xcf\x9e\xdd\x23\x49\x12\xac\x6f\x7a\xcb\x05\xb2\x80\xcf\xd3\x94\ \x55\x95\x46\x4c\x30\x12\xe0\x26\x55\x35\x4e\x5e\xfe\xd8\xda\xd3\ \x3c\xb7\x5c\x86\xcb\x9b\xfa\xe0\x33\x5f\x7b\x93\x7d\x24\xf5\x26\ \x60\xee\xd7\xf3\x1a\xf6\x3c\x01\xa8\x24\x82\x3c\xe1\xe1\x5b\x2e\ \x83\xc3\x52\xbd\x36\x79\x46\x90\xeb\xe1\x30\x6d\x1c\x10\xc7\x21\ \x82\x99\xe0\x46\xaa\xf0\xec\xee\xa9\xd8\x12\x9e\x06\x4d\xd7\x10\ \x8f\x8f\x43\x44\xdf\xc3\xe5\x73\x0d\xcc\x59\xe4\xc3\x89\xb3\xda\ \xe0\xad\x6d\xa6\x3c\x7d\x41\x5f\xfb\x95\xf7\x0c\x03\x10\x0f\x3f\ \xfc\x30\x23\x5b\x2c\x44\x2e\x6b\x5f\x4d\x78\xc3\x75\xcf\xdf\x5f\ \x83\xc7\xd6\xee\x6c\x4a\xa6\xd5\x16\xcb\x2d\x38\x01\x07\x0f\x1e\ \x4c\xb7\xb5\xb5\x7d\x25\x1a\x49\x6c\x5d\xf1\xcb\xdf\x36\xc9\x37\ \x7e\x11\x97\x64\x87\xe0\x96\x00\x16\xeb\x07\xdb\xfe\x2f\x80\x79\ \x2c\xe3\xd3\xed\x6c\xc6\xac\x87\xdf\xf9\x03\xe0\xc0\xa3\x66\xc9\ \xcc\x23\xfc\x2e\xc0\x27\xb8\xaf\x6f\x0e\x1c\xa6\x5a\x02\x38\x45\ \x98\xb4\x6f\xf3\x60\x10\xab\xb6\x35\x63\xd3\x61\x2f\xa2\xd1\x08\ \x62\x91\x8f\xf1\xa5\x39\x0a\x7e\x74\x9e\x84\xf3\x17\xce\x04\xab\ \x9b\x87\x3d\x83\x40\x64\xe8\x10\xa2\x07\x3b\x11\xee\xdd\x79\xf0\ \x9d\x70\xf3\x01\x00\x7c\xc5\x8a\x15\xcb\xc8\x1b\x3c\x24\xc0\xeb\ \x00\x72\xa5\xca\xd5\xd8\x58\x23\x65\x15\xad\xdf\xd0\x35\x0e\xa0\ \x86\x90\x26\x68\x04\x31\xbb\xbf\xff\x70\xf4\x84\xa6\xeb\x87\x8e\ \x8c\xac\x59\xf1\xe4\x26\x96\xb9\xfa\x6a\x9c\x6f\xbc\x08\x8f\xac\ \x41\x96\xcd\x4a\x48\xa0\x56\xa6\x96\x59\xe7\x8c\x13\xc2\x5d\x60\ \x11\x82\x9c\xaf\x9c\x29\x5d\xc6\xa1\xb1\x00\x8e\xc4\x3c\x18\x8a\ \x7a\x10\x7a\xf5\xbf\x10\xd3\xd7\x21\xcd\xa6\x23\x65\xd4\x01\x24\ \x6c\x2d\xef\x40\x8d\xcf\xc0\xd4\x6a\x0d\x73\x9b\x32\x58\x36\x23\ \x85\x29\x7e\x1d\xa6\x0d\x27\xdc\xd8\x70\xb0\x1a\x2f\x75\x4d\xc1\ \xc7\x83\x12\xc2\xe1\x30\x22\xe3\xe3\xf8\x8b\xa5\xc0\x03\x37\x07\ \x70\xe2\xbc\x2f\xe4\x12\xb1\x88\x1d\x81\x31\xb4\x1d\x91\x7d\x31\ \xa4\x14\x91\x4f\x37\x6e\xb7\x35\x45\x60\x2d\x2d\x2d\x17\x9b\xf9\ \x80\xec\x79\x58\xe6\xba\xfd\xde\x55\x1c\x5e\xff\x12\xa8\x59\x93\ \xfc\x14\x42\x15\x21\x46\xc8\x10\xf8\x99\xd3\x47\xd7\x6d\x3c\x5c\ \xf7\x60\x6f\xdf\x91\xfb\x1f\x7e\x49\x42\xf4\x4f\xaf\xc2\x32\x75\ \x35\x3c\x2e\x1d\x2e\x57\x9e\xbc\xcb\x12\x81\x13\xdb\x50\xda\x8b\ \xc1\xb8\x17\xfd\x51\x1f\x8e\x24\x83\xd8\x3f\xec\x42\x6f\x48\x43\ \x3a\x93\x45\x36\x9b\x85\xaa\x66\x20\x44\x1a\x3e\x5f\x06\x81\xc0\ \x28\x82\xf2\x18\x3c\x48\x23\x6f\x12\x09\xe4\x42\x46\xf7\xc0\xef\ \xaf\xc7\xec\x66\x2f\x3d\x5a\x35\x14\xe1\x43\x86\xee\x1f\x0a\x8d\ \x20\x3c\x36\x86\xa0\x17\x78\xed\x8e\x7a\x5c\xf2\x27\xe7\x03\xb5\ \x27\x43\x28\x29\x18\x07\xd7\xe6\x04\x10\x06\xc0\x49\x79\xc1\x04\ \x84\xe0\x74\xec\xca\x15\x5f\xf3\xbb\xeb\xeb\xeb\xaf\xef\xeb\xeb\ \xcb\x80\x6e\x77\xbe\x0d\x2a\xf4\xe9\x00\xb7\x50\x47\xf0\x13\xa2\ \x9b\x81\x44\xbb\x0e\x76\x61\x7b\xf4\xb9\xf7\x0e\xd7\xce\x3e\xd4\ \x37\xf0\x97\x4f\xbc\xc9\xb0\xff\xa4\xf3\x35\x79\x74\x4b\xca\x60\ \xae\xa0\xaf\xaa\xc6\xe5\xae\x9e\x82\x81\xa8\x84\x81\x31\x8e\x68\ \x3c\x8d\x54\x2a\x83\x44\x32\x8d\x80\x34\x88\x93\x5a\x75\x5c\xbb\ \x54\xc2\xbc\x19\x40\x5b\xb3\x84\xf6\xd6\x20\x9a\xbf\xf4\x22\x24\ \x33\x51\xba\x48\xf3\x9d\x37\x83\x99\x9b\x26\xba\x02\x28\x49\x30\ \x35\x85\xa7\xd6\xeb\xb8\xf1\x3f\x52\x18\x19\xe1\x85\xc9\x9e\x01\ \xab\x6f\x0b\xe0\xbc\x2b\xbe\x05\xe1\x69\x82\x48\x0e\x43\xdb\xf7\ \x12\x90\x49\x12\x61\x19\x0c\xc8\x91\xe7\xd6\x96\x92\x90\x68\xa6\ \x00\xf6\xca\x2b\xaf\xdc\x10\x08\x04\x66\x47\xa3\xd1\x55\x20\x5e\ \xc5\x0a\x8a\x8b\x10\x24\x34\x10\xbc\x84\x64\x73\x10\x89\xf3\xe7\ \x81\x35\x04\x51\xfb\x9b\xfd\x0d\x77\x29\xdc\xfd\xdd\xd6\xd6\x56\ \xf4\xf7\xf7\xa1\x2a\xe0\x05\x37\x34\x84\x86\x23\x30\x0c\x8e\x69\ \xb5\x14\x87\xf3\x25\x9c\x3b\x8f\xe1\x82\xa5\x4d\x68\x9f\x3d\x8b\ \x2a\x5c\x13\x98\xbf\x01\xcc\x5b\x0b\xe6\x0e\x82\x41\x03\xb8\x92\ \x03\x33\xb2\x10\x6a\x14\x2c\x3d\x08\xa4\x87\x73\xdb\xec\x4c\xcb\ \xe2\xd0\x51\x81\xb3\x97\xd7\x62\x24\x1c\x01\x59\x6e\xc6\x3b\x1a\ \x25\xec\x09\x01\xa7\xb5\x09\x7c\xf0\xb3\x0b\x20\xd1\xeb\x37\x4f\ \x47\xa0\xed\x79\x06\x22\x9b\xb4\x37\xaa\x75\x81\x4d\x07\x38\x14\ \x8d\x83\x09\xae\x27\x1b\x16\x2f\x7c\xba\xa7\x4e\x27\xf2\x5b\x3e\ \xfa\xe8\x23\xcf\xc0\xc0\xc0\xa9\x00\x7a\x8b\xed\x07\xe8\x84\x38\ \x41\xb5\x44\xa8\x1d\x4e\x22\xf0\x7a\x17\xa2\x27\x35\x23\x7c\xde\ \xac\xc8\x9d\xef\xf6\x35\xb3\xde\xde\xde\x9b\xcd\x58\x22\x6f\xb4\ \x66\x85\xe1\x9c\x39\xae\xc8\xbd\x5f\x9f\xe5\x9f\xb5\xe8\x42\x6f\ \xb0\x75\x21\x73\xfb\x82\x48\x0b\x05\xc4\x90\xa0\x10\x31\x82\xaa\ \xd0\x61\x14\x3c\xd9\x9f\xdb\x2c\x91\x94\x10\x24\x3d\x01\x99\x09\ \xc8\x42\x40\x12\x66\xcb\xd0\x3d\x5c\x0d\x0e\x39\x37\xdb\x37\x9e\ \x03\x7c\xeb\x6c\x50\x68\x00\x7f\xfd\x42\x2d\x66\x34\x24\x10\x97\ \xdb\xe0\x4a\x2b\x48\xed\x5a\x0d\x91\xce\xd0\x7d\x66\xfc\x09\x08\ \x9d\x23\x95\x11\x54\x1a\x01\xb3\x27\x65\xf8\x1e\x79\x64\x7d\xba\ \xba\x75\x7a\xfd\xbf\xf7\xf4\xf4\xd4\x11\xf9\x1b\x4c\xf2\xe5\x36\ \x44\xb8\x15\xff\x23\x04\x45\x00\x8d\x29\x15\x53\x3b\xfb\x11\xdb\ \xd6\x2f\xc6\x5b\x1b\x95\xef\x69\x9a\x36\x04\xe0\xdb\x84\x36\x02\ \xbc\x6e\xb9\x77\xd9\x89\x35\xf7\xb6\x5f\xf9\xe8\x75\x35\x53\x5a\ \xda\x54\x25\x2d\xa5\x33\x09\xb7\xa6\xa6\x5d\x4a\x72\x14\xa3\xfd\ \xbd\x99\x70\xff\xc7\x6e\x23\xbe\xbf\x5a\x36\xe2\xbe\x80\x57\x54\ \x79\x3d\xc2\x13\xf0\x08\x29\xe0\x61\xb9\xca\xe2\x22\xb8\x19\xc0\ \x0d\xe0\xdd\x81\x39\x48\x24\xba\x30\xb3\x1e\x5b\x82\x6e\xec\x79\ \x6d\x07\x6a\x3d\x2e\x51\x27\x04\x3f\xef\x70\x18\xfa\xc7\x3d\x11\ \xc9\x88\xbf\x2a\xf3\x78\x04\x01\xb7\xcc\x3c\x4c\x80\x71\x01\x45\ \x15\x62\xdf\x30\xd4\xa3\x09\x36\x7a\x28\xea\xde\xf8\xe1\xa0\xdf\ \x35\xeb\xc4\xa6\xd5\x54\xd1\x9a\xf7\xee\xdd\x7b\x37\x80\x5f\x1d\ \xeb\x8e\x90\xb0\xbc\x60\xdc\x6a\x1b\x09\x0d\x02\x08\x1c\x09\x8f\ \x87\x01\xac\x90\x65\xf9\x9f\x7c\x3e\xdf\xf6\x54\x2a\xb5\xd0\xe3\ \xf5\xbe\xdc\x71\xfa\xd5\xef\xcf\x3e\xe5\xec\xaf\x09\x2e\x06\x0c\ \x43\x53\xe2\x91\x70\xf7\xde\x1d\x1b\x77\x6f\xfc\xcd\x93\xa3\xaa\ \x9a\xf6\x41\x57\x7d\x86\x11\x0c\x08\xdd\x5b\x25\xb8\x56\x45\xa1\ \x13\x64\x42\xaf\x97\x99\xde\xe0\x96\x8c\xda\x6a\x9f\x41\x2d\x0f\ \xc6\xa4\x99\xf3\x3b\xfb\xa4\x2a\x55\x51\xe2\x0b\xe6\xe0\x0e\x83\ \x23\xab\xab\xf0\x65\x54\xe1\xf3\xbb\xb8\xa7\xfb\x88\xb1\x64\xcd\ \x3b\x9d\xcf\xca\x2e\xd6\x00\x78\x83\x0c\xc2\xc7\x60\xb8\x05\x87\ \x94\x48\xc3\x08\xa7\xb8\x72\x24\x2a\xbc\x9a\x67\xda\x17\x3b\xe6\ \xcc\x98\xd1\xd5\xd5\x95\x08\x85\x42\xf7\x00\x78\xf4\xb3\x6c\x89\ \x19\x84\x84\x25\xc2\x14\x0b\x33\x08\x11\xc3\x30\xc6\x1a\x1a\x1a\ \xb6\x64\x32\x99\x85\xfe\x40\x70\xd7\x57\x6e\xbc\x77\x9a\xcb\xed\ \x35\xb3\xed\xfb\x5d\xbb\xf7\xbc\xb1\xa3\x73\x6b\x94\x43\x97\x1a\ \x4f\xfa\x32\xe3\x5c\x65\xa4\x89\xc4\xf5\x2c\x33\xd4\xb4\xa4\x2b\ \x29\x49\x57\x93\x32\x65\x6f\x59\xa3\x96\x67\x53\xee\x31\x2d\xed\ \x19\x1c\x63\x0b\xdd\xcd\xcb\x1e\xdd\xd9\xf5\x3a\x24\x86\x07\x3b\ \xa6\x62\x9b\x00\x1d\x6a\x90\xb8\x4c\xe9\xc4\xa5\xde\x3e\x2c\xd8\ \x5b\x4f\xae\x1f\x9b\x75\xe1\xb2\x59\xcf\xb7\x34\xf8\xd3\xe3\xb1\ \xd4\xb4\xd1\x68\xfa\x84\x70\x4c\x9f\x6f\x48\xfe\x99\x9e\x40\x5d\ \xa3\xab\xc6\x1f\x8c\x86\xc3\xea\xce\xee\xf7\x5e\xd6\x75\x7d\x39\ \x80\x5d\x04\xed\xf3\xfc\xaf\x31\x66\x89\x55\x4b\x98\x6a\x95\xca\ \x24\xd5\xd5\x9b\xa8\x26\xdf\xd6\xdc\xdc\xfc\x0d\x7a\x87\x50\xd2\ \xe9\x74\xe2\x8d\x37\xde\xd8\x3d\xc9\x96\x86\x80\x05\xd3\x98\x10\ \x9c\xc3\xe0\x42\x37\xe8\x48\xe5\x86\x9a\x11\xdb\xb6\xed\xa8\x86\ \xb7\x7a\xed\xde\xbd\x9f\xcc\xeb\xec\xec\xdc\x0e\xe0\x4c\x82\xfe\ \x8f\x00\xd6\x2d\x06\x4b\x8d\x83\x45\x63\x90\x7b\x13\xec\x2c\xba\ \xf3\x79\xb7\xdb\xdd\xec\xf5\x7a\x55\x6a\x99\xcb\xe5\x72\x93\x81\ \xc8\x1a\xf1\x78\x7c\xbf\xa2\x28\x6b\x01\xfc\x5a\x08\xd1\x5d\x40\ \xbc\x9c\x07\x94\x08\x09\x8d\x10\x21\x28\x84\x26\xc2\x14\x55\x55\ \xe3\xe6\xba\x9a\xda\xa6\x97\xc9\xc8\x2b\x38\x00\x97\x53\x00\xe7\ \x9f\x3d\x18\x63\x1c\x8c\x41\xa2\x1f\x78\xdc\x02\xf0\xf1\x77\x37\ \x7c\xd4\xee\xf7\x57\x3d\x91\x88\xc6\xe6\x6d\xdb\xb6\x6d\x14\xc0\ \x35\xd6\x78\x99\x04\x90\xf0\x31\x64\xab\x2a\xd5\xe4\x77\x54\x70\ \x0b\xe5\xa1\xb3\x08\xb5\xd6\x73\x85\x09\xfb\x09\xa6\x70\x7d\xd6\ \x62\x4e\x54\x66\x57\xb8\x30\x24\x92\xd6\x97\x66\x69\xc6\x37\x92\ \x00\x4a\x22\x91\x38\xe3\xc0\x81\x03\xaf\x51\x79\xe4\x74\x2e\x13\ \x49\x13\x92\x55\x21\x72\xe4\xf3\x13\x2f\x0c\xab\x95\x48\x2c\xb1\ \x6e\xdd\xba\x36\xba\x7e\x3d\x2d\x4f\xbf\x73\xe8\xd0\x21\xff\xa6\ \x4d\x9b\xc6\xe9\xda\x5f\x01\xc8\x12\xda\x26\x7c\xa7\x36\xc1\x0b\ \x93\x84\xdd\x84\x4e\x42\x8a\x90\xb1\x26\x45\x2f\x47\xba\x74\x08\ \x1c\xff\x7d\x32\x21\xe0\xf1\x78\xbe\x4d\x1e\xb0\x9c\xc2\x60\xe5\ \xa9\xa7\x9e\xba\x9e\x92\xa3\x9b\x5c\x93\x51\x82\xe4\xe4\x9a\x3a\ \x09\xa2\x72\xce\x0d\x1a\x23\x28\x5f\xc8\xe3\xe3\xe3\x33\xfc\x7e\ \xff\x29\x34\xe6\x22\x6a\x97\x51\x82\x62\x94\xa1\x0d\xea\xff\x10\ \xc0\x2a\xc2\x51\x8b\x50\xc2\x2a\xc9\xb1\x1c\x51\x27\x41\x6e\x41\ \xe0\x73\x1a\xab\xc0\xfd\x26\xae\x63\x8c\x3d\x4c\xa4\x6a\xab\xaa\ \xaa\x86\x89\x58\x8a\xda\x0c\x09\x20\x3c\x79\xf3\xd1\xf5\x06\x42\ \x8d\x39\xfb\xe4\x39\x88\x44\x22\xc6\xd0\xd0\x50\x2f\x79\xc2\x06\ \x6b\x69\x3a\x60\x11\x4d\x12\xd2\x96\x08\x9a\x4d\xf6\x77\x63\x0c\ \x95\xb3\x2a\xc2\x97\x09\xa7\x13\xda\x2c\xc2\x75\x04\x37\xe7\x5c\ \xb2\x5e\x41\x23\x84\x83\x84\x6e\xc2\xfb\x84\x7e\x6b\xa6\x8d\x72\ \x7f\xd6\xfb\x03\x10\xa0\xf0\xf3\x1c\xff\x0a\xc0\xf9\x17\x56\x81\ \xdf\x13\xfb\x1f\x84\xaf\xe2\x02\x22\xe6\xe9\x93\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x0b\ \x01\xad\xab\x47\ \x00\x64\ \x00\x69\x00\x67\x00\x69\x00\x6b\x00\x61\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1a\ \x08\xdd\xe1\xa7\ \x00\x61\ \x00\x63\x00\x63\x00\x65\x00\x73\x00\x73\x00\x6f\x00\x72\x00\x69\x00\x65\x00\x73\x00\x2d\x00\x64\x00\x69\x00\x63\x00\x74\x00\x69\ \x00\x6f\x00\x6e\x00\x61\x00\x72\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0e\x95\x57\x87\ \x00\x6b\ \x00\x33\x00\x62\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0b\x34\x2d\xe7\ \x00\x61\ \x00\x6b\x00\x72\x00\x65\x00\x67\x00\x61\x00\x74\x00\x6f\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x0a\ \x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x42\x42\ \x00\x00\x00\x56\x00\x00\x00\x00\x00\x01\x00\x00\x22\x22\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/animation/appchooser/appchooser_rc3.py0000644000076500000240000026262612536324426025215 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:13:37 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x0d\x06\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x0c\x83\x49\x44\ \x41\x54\x78\xda\xed\x9b\x5b\x68\x55\xd9\x19\xc7\xd7\x49\x4e\xa2\ \x26\x26\x1a\xe3\x35\x31\x5e\xc6\x54\xad\x97\x4a\x95\x29\x38\x14\ \xc4\x22\xb6\xcc\x73\x9f\x2a\xf4\x61\x5e\x7c\x10\xc4\xc2\x0c\x08\ \x7d\x28\xf8\x54\x4a\x1f\x15\xa4\x4f\xf6\x51\x0a\x52\x90\x4e\x07\ \x41\x94\xfa\xe0\xfd\xd6\xaa\x03\x5e\xc6\xfb\x35\x51\x63\x2e\x46\ \xcd\xc5\x7e\xbf\x0d\xbf\x61\xcf\x31\x92\x8c\x1c\x83\xc1\x2c\x58\ \xec\xbd\xd7\x59\x7b\xad\xef\xfb\x7f\xf7\xb5\x93\xc2\xeb\xd7\xaf\ \xd3\xc7\xdc\x2a\xa2\x8f\x03\x30\x0e\xc0\x38\x00\xe3\x00\x8c\x03\ \x30\x0e\xc0\x47\xda\x8a\x1f\x1a\x41\xc7\x8e\x1d\xdb\x53\x5d\x5d\ \xfd\xb3\x69\xd3\xa6\x7d\xe1\x98\xad\xad\xad\xed\x8f\x95\x95\x95\ \xf3\x57\xaf\x5e\xfd\x8b\x72\xed\xf7\x41\x24\x42\xdb\xb6\x6d\x5b\ \x50\x2c\x16\xff\x10\xb7\x9f\xcd\x9e\x3d\xbb\x65\xf2\xe4\xc9\x93\ \x18\x87\x36\xaf\xb6\x81\x81\x81\xc1\x4b\x97\x2e\xdd\x1a\x1c\x1c\ \xbc\xd4\xd1\xd1\xf1\xb7\xbd\x7b\xf7\x1e\x1a\xd3\x00\x6c\xd9\xb2\ \xe5\xb3\xfa\xfa\xfa\xc3\x21\xf5\xaa\x21\x09\x2c\x14\xd2\xdb\xc6\ \x03\x84\x74\xfd\xfa\xf5\x43\x15\x15\x15\xbf\xd9\xb3\x67\xcf\xab\ \xb1\x64\x02\x32\xff\xcb\x9a\x9a\x9a\x43\x21\x84\xe2\xcb\x97\x2f\ \x87\x63\x78\xc8\xb1\x96\x96\x96\xf5\xd7\xae\x5d\xfb\x26\x1e\x7f\ \x35\x96\x9c\xa0\x0c\xfc\xb3\xbf\xbf\x3f\x13\x42\x00\x91\xaa\xaa\ \xaa\x52\x98\x02\x3d\xbb\xb7\x3b\x6e\x9f\x38\x71\x62\xc6\x3c\xa0\ \xd1\x9b\x9a\x9a\xd6\x6f\xd8\xb0\x61\xdd\x98\xd2\x80\xcd\x9b\x37\ \xff\x39\x98\x69\xec\xeb\xeb\x4b\xcf\x9e\x3d\x4b\x0f\x1e\x3c\x40\ \xa5\x47\x0a\x5c\x0a\x27\x99\x1a\x1b\x1b\x93\xad\xae\xae\xee\xaf\ \x71\xf9\x74\xac\x00\x00\xb3\x5f\x04\xf3\x48\x10\xef\x9e\x16\x2d\ \x5a\x94\xc2\xf9\xa5\xe7\xcf\x9f\x23\x65\xe7\xa4\xce\xce\xce\xd4\ \xd0\xd0\x90\x31\xfc\xf4\xe9\xd3\x34\x69\xd2\xa4\x74\xfa\xf4\xe9\ \xf4\xe4\xc9\x93\x44\x0b\xff\x91\x68\x53\xa6\x4c\xf9\xf9\xc6\x8d\ \x1b\x8b\x07\x0e\x1c\xe8\xff\xe0\x01\xd8\xb4\x69\x53\x75\xb4\xe9\ \x71\x0b\xc3\x78\xf6\xb4\x6a\xd5\xaa\x34\x61\xc2\x84\x74\xe3\xc6\ \x8d\x34\x6b\xd6\xac\x74\xea\xd4\xa9\xd4\xda\xda\x9a\xe6\xcf\x9f\ \x8f\x9d\xc3\x60\xba\x7a\xf5\x6a\x5a\xb8\x70\x61\x3a\x7b\xf6\x6c\ \xf6\x4e\x77\x77\xb7\xe6\x00\x68\x95\x2f\x5e\xbc\xd8\x14\x4b\xfe\ \xfd\x83\x88\x02\xdb\xb7\x6f\x6f\x7c\xf4\xe8\xd1\xba\x20\xbc\x3f\ \x88\x9d\x17\xd2\x5b\x31\x73\xe6\xcc\xdf\xde\xb9\x73\xa7\x2b\x88\ \x9e\x1c\x63\xd3\x83\xe0\x84\x16\x00\x42\xc4\xf7\x77\xd1\xa2\x4c\ \x33\x02\xcc\x0c\x84\x5b\xb7\x6e\xed\x0b\x8d\xd9\x4f\x38\x8d\x7e\ \x34\xd6\xfc\xf7\x89\x13\x27\x1e\xbc\x17\x00\x7e\x1d\x6d\xc5\x8a\ \x15\x95\xc1\x54\x6d\x30\xd3\x7a\xe6\xcc\x99\xdf\xaf\x59\xb3\xa6\ \x39\x18\x7d\x10\xd2\x68\xba\x70\xe1\x42\xed\xb2\x65\xcb\xd2\xdd\ \xbb\x77\xd3\xd4\xa9\x53\x53\x57\x57\x57\x7a\xfc\xf8\x71\x46\x6c\ \x84\xad\xc4\xbe\xd8\x3e\x12\x0c\xa0\x90\xa8\x9e\x7e\xc4\x0d\x4d\ \x61\x1d\x1c\x28\x66\xc3\xfd\xe5\xcb\x97\xf1\x07\x98\x13\xfb\xbc\ \x0e\xad\xba\x1c\x4e\xf4\x1f\x3d\x3d\x3d\xff\xda\xbf\x7f\xff\x89\ \x98\x33\x38\x62\x00\x76\xec\xd8\xb1\xf4\xe6\xcd\x9b\x5f\xc5\x6d\ \xcb\xe2\xc5\x8b\x6f\xd6\xd6\xd6\xd6\x04\xa1\x8b\x7a\x7b\x7b\x5b\ \xcf\x9f\x3f\xdf\xc8\x26\xa8\x24\x92\x84\x51\x18\xc0\x63\xf3\x8c\ \x6d\xbf\x7a\xf5\xca\xae\x27\x77\x69\xa4\xce\x38\x44\xd2\x99\xcf\ \x18\x4c\x0c\x1b\x0e\x01\x2d\x68\x51\x0b\x78\x3f\x63\xd8\xe7\x90\ \x7a\x8a\xe8\x82\xf9\x00\x3e\x7e\x22\xdb\x3b\xe8\xee\x6c\x6f\x6f\ \xff\x26\xf6\xfd\x32\xe6\xdc\x1e\x12\x80\xdd\xbb\x77\xa3\x8b\xbf\ \x7b\xf8\xf0\xe1\x5f\x8e\x1f\x3f\x3e\x3b\xd4\x88\x97\x0d\x37\x10\ \x08\xe1\x79\x06\x91\x1e\x1b\xdb\xdf\x78\x46\x42\x74\x1b\x6b\xe0\ \xd0\x64\x9e\x3d\x60\x8c\x7b\xae\xf9\x6e\xf3\x3d\xaf\xac\xeb\x95\ \x0e\x00\x79\xe7\x19\x1a\x09\x08\x00\xc5\xfa\x38\x4f\xfc\x48\xe6\ \x67\x42\x1b\xae\x1f\x3d\x7a\xf4\x93\x37\x00\xd8\xb5\x6b\x57\x4d\ \xd8\xd0\xd7\xa1\xaa\xeb\x62\x92\x4c\xb2\x10\x1d\xc6\xd8\x14\xbb\ \x85\x38\x09\x18\x16\x00\x36\x86\x39\x1b\xce\x0b\x2d\x81\x30\xc6\ \xed\x23\x01\x80\x2e\x93\x79\x10\x58\xcb\x88\xe0\xef\x87\x0f\x1f\ \x66\x1f\x98\x56\x08\xdc\xd3\xfb\xc3\x24\xeb\x6f\xdf\xbe\xdd\x5b\ \xf4\x85\x9d\x3b\x77\xb6\x44\x38\xfa\x36\x54\xb9\x96\xd0\x93\x27\ \x02\x64\x91\x18\xe3\x61\xf3\x69\xee\xdc\xb9\x29\x5e\x06\x08\x36\ \x96\x30\x89\xcb\xe6\x00\x60\xe4\xea\x3f\x20\xd6\xe6\xfa\x00\x25\ \x08\x6a\x80\xfb\x39\xce\x9a\x39\x40\x87\xd4\x00\x3b\xcc\xf1\x1e\ \xfe\x06\x8d\x20\x7a\x60\x56\x08\x12\x20\x42\xab\x11\x24\xeb\x17\ \xc3\x17\xfd\x09\x5f\x9d\x01\xb0\x6f\xdf\xbe\xc6\x90\xca\xb5\x28\ \x32\xaa\x64\x3a\xcf\x3c\x49\xca\xca\x95\x2b\x13\xed\xc8\x91\x23\ \x20\x9d\x81\x10\x7e\x00\xe9\xe6\x01\xc8\x88\x8e\x82\x86\x8d\x01\ \x8d\x35\xb2\x4d\x6d\x6a\x14\x8d\xb9\x30\xc7\x1e\xd3\xa7\x4f\xc7\ \x79\xf1\x9b\x1a\x02\xe1\x43\x81\x24\x20\xa5\x20\xc8\x38\xe0\x2b\ \x79\xd6\xc0\x0c\xe8\xd6\x0f\xfc\x86\xe3\xfd\x2a\x9e\xf7\x64\x00\ \xdc\xbb\x77\xef\x3f\x11\x77\xab\x54\x53\x99\xd7\xfe\xc9\xb8\x02\ \x31\x9c\x48\x46\xa4\xf3\x24\x16\xfb\x82\x10\xcd\x23\x22\x00\x8c\ \xf2\x2c\x00\xae\x9b\xad\x41\x13\x00\x12\x20\xd6\x46\xa3\xc8\x01\ \xf2\x4e\x50\xa6\x35\x3d\x9b\x29\x71\xe9\x6f\xac\x8d\x83\xc4\xe1\ \x42\x07\xeb\xd2\xb6\x6e\xdd\x9a\xdd\x9f\x3b\x77\x0e\x67\x4d\xa4\ \x40\x0b\x2b\x02\x88\x4f\x8b\x21\xfd\xda\x50\x8d\x9f\xe6\xbd\xac\ \xc4\xa9\x8a\x84\x29\x50\x43\xa2\x80\x81\x84\x4f\x9e\x3c\xc9\x34\ \xc6\xd9\x54\x00\x40\x18\x86\x95\x8e\x25\xec\x0f\x34\x80\x36\x6f\ \xde\x3c\x9c\x2a\x5a\x04\x31\xec\x07\xb8\x86\x34\x9e\x5d\x03\x1a\ \x74\xb6\xec\x87\x76\x71\xcd\xfb\x09\xe6\xb0\xaf\xeb\x93\x1f\x08\ \x36\x91\x20\xfb\x7d\xce\x9c\x39\x19\x38\x57\xae\x5c\x31\x5a\x4d\ \x2b\xc6\x4b\xad\x11\x8f\x0b\xbc\xa8\x63\x73\x41\x91\x9e\x31\x63\ \x46\xb6\xb0\xa9\xea\xc1\x83\x07\x9d\x87\x8a\xb1\xd1\x1b\x6a\xc9\ \x06\xda\xbf\x44\x0a\xc4\xf2\xe5\xcb\x49\x65\x31\x27\x18\x05\x54\ \xcc\x0a\xa2\x19\xd7\x9e\x95\x24\xb4\x20\x41\x34\x0d\x3a\x98\x03\ \xb3\xa8\x3c\x57\x23\x13\x82\x50\x20\x8c\xab\x45\xf8\x37\xae\xbc\ \x57\xea\x5c\x0b\xc5\xd8\xa0\x10\x8d\x7c\x9b\x8d\xf3\x5e\x7f\x48\ \xc6\x68\x10\xc6\x6f\x3c\x03\x00\x0b\x43\x30\x44\xd2\x35\x0d\x43\ \x9f\xef\x31\x8e\x2f\x21\xa5\x25\x09\x82\x69\xf6\x05\x60\xd6\x40\ \xc3\xb8\xc2\xb4\x0e\xcf\x7d\xd5\x4a\xf6\x31\x17\xc0\xff\xb0\x26\ \x6b\x01\x12\x7b\xd2\xa0\x01\x3e\xbc\xd7\x17\xd9\xf3\x0d\x0d\xe0\ \x65\x88\xd0\x86\xe9\x82\x90\x0f\x7f\x02\x61\x1e\xfe\x86\x5d\x6a\ \x7f\x02\xa0\x59\xd8\xc8\xed\x2f\x5e\xbc\x08\x68\x48\x1d\x89\x03\ \x00\x3e\x08\x69\xb2\x2f\x84\xeb\x00\xe9\x32\x8b\xf4\x55\x5b\xe6\ \x40\x07\x6b\xe0\xf0\x58\x83\x88\xc3\x3c\x0b\x26\x53\xeb\x61\x53\ \xec\xa2\x2a\xf4\xae\x4d\x2f\x9d\x6b\x10\x85\xa4\x4a\xd3\x56\x9c\ \x1c\x0c\x10\x26\x91\x0c\x73\xd0\x06\x00\x83\x01\x1c\x14\x6b\xe1\ \xb1\xd1\x1e\xf3\x07\x01\x61\x5d\x68\x45\x73\xb8\x47\x0b\x99\x03\ \xe3\x80\x00\xf3\xbc\x8b\x43\x25\x04\x1a\xc5\xb8\xda\x87\x01\xa0\ \x4c\x0d\xc2\x60\xc0\x06\x51\x48\x18\x55\x85\x50\x7d\x47\x14\x46\ \x5c\x61\x1c\x8d\xc1\x31\xf2\x1e\x0c\xb3\x06\x0c\x41\x1b\x0c\xd2\ \x01\x4d\xed\x83\x31\xd6\xa5\x94\xc6\x79\x5a\x1a\xb3\x47\x36\x7e\ \xff\xfe\x7d\x9c\xec\xb0\xf5\x05\x3e\x20\x95\xbb\x69\x32\x46\x15\ \x98\x8a\x63\x2b\x33\x31\x4d\x0b\x46\xa8\xe0\x32\x82\x97\x2c\x59\ \x42\xb1\xc4\x19\x5f\x69\x46\x88\xb4\x61\x1e\xa6\x59\x03\x86\x01\ \x8e\xe8\x01\xd3\x5c\x71\xd0\xac\xc9\x95\x75\x19\xc3\x54\x4c\xb3\ \x05\xe2\xfd\x6b\x80\x9b\xda\xb0\x47\xc2\x28\x04\x40\xac\x21\x92\ \x2b\xb6\x8f\x39\x00\x00\xe6\x01\xe1\xe6\x0d\xe6\x21\x26\x2f\xfa\ \x03\x7d\x92\x76\x0e\x38\x80\x82\xc6\xa8\x25\x8c\x13\xfa\x58\x1f\ \xad\x1a\xd6\x07\x94\xb3\x11\x26\x21\x02\x50\xb5\x41\xd4\xbf\x94\ \x79\x54\x17\x82\x91\x26\x7e\x40\x4d\xe4\x1d\x23\x8a\x79\x88\xe9\ \x30\x73\x60\xd4\xb9\xcc\x43\x5b\xe4\x81\x39\x00\x05\x20\x79\xc7\ \x6d\x1b\x15\x0d\x30\x03\x63\x63\x25\x44\x83\x59\x01\x80\x09\xa4\ \x4d\xb9\x8a\xad\x32\x66\x4a\x8c\x64\x35\x15\xcf\x0e\x64\xce\x08\ \x01\xc8\x98\x0b\x8e\xd5\x04\x88\xf7\xd4\x06\x43\x26\x9a\x85\x1f\ \x61\x9d\xd1\xd2\x00\xe3\x36\x1d\x86\x70\x4a\x84\xaf\x7c\xa6\x08\ \xf1\x84\x5d\x3d\x39\x0c\xe8\xd4\xb0\x61\xa3\x00\xa0\x31\x6e\x78\ \x86\x79\xde\xb1\xe0\xa1\x13\x05\x04\x3e\x9f\x00\xc1\xb4\x7b\x51\ \x67\x70\xff\x56\x27\x58\x56\x0d\x90\x51\x9a\xea\x8e\x9a\xe7\x55\ \xd2\x3a\x9d\x28\xc0\xb8\x67\x06\x8c\x31\x17\xa6\xb8\x1a\xfb\xcd\ \xf4\x90\x3c\xcf\xfa\x05\x8b\x1f\x9a\xd9\xa2\x69\x35\x60\xd0\x0c\ \x9b\x68\x1c\xfb\x8e\xaa\x06\x68\xab\x4a\xd1\x31\x98\x70\x1e\xfb\ \x43\x38\x04\xeb\xe1\x71\x60\xf3\x66\x2c\x49\x4d\xd3\x3e\x49\x03\ \x13\x42\xdd\xbb\x6f\xa3\x29\x30\x6c\x8d\x60\xde\x6f\xea\xab\x84\ \x87\xca\x1e\xc9\x31\x00\xd5\x7c\xe2\xfd\xfa\x80\x3c\x21\x82\x9b\ \xaf\xda\x54\x55\x88\xb7\xb4\x05\x00\x41\x50\x0b\xe6\xcf\x5c\x9a\ \xfa\x6b\x1f\xa7\xe6\xa6\x96\x54\xdd\x96\x85\x4c\xed\x1d\x46\x74\ \xb6\xac\xc7\x3b\xae\x6f\x04\x92\x27\xfd\x0a\xa6\x88\x29\x00\x40\ \x59\x35\x60\xd8\x23\x2b\x01\xb0\xa9\x01\xee\x2b\xd1\x8c\xe5\x35\ \xa1\x50\xf7\x32\x2d\x58\xb4\x34\x15\xeb\xfa\x52\xb1\xba\x39\x75\ \x90\x2a\xc7\x3b\x66\x99\x9e\x31\xa2\x19\xac\xaf\x29\x5b\xd0\xe5\ \xa3\x10\xe1\xd0\xcc\xb3\xb4\x55\x94\xd3\x07\xc8\xa8\x04\x20\x95\ \x52\x60\xf2\x67\x0e\xf9\x7b\x9f\x3d\x23\x7c\xde\xdf\x1e\xcc\x3e\ \x4a\xb5\x55\xf5\xa9\x3e\xca\xd8\x89\x75\x93\x53\xfd\xec\xc8\x19\ \x1a\xa6\x38\xcf\xf7\x5c\xc3\xee\xfe\x76\x35\x0d\xb0\xde\x04\xa0\ \xdc\x3e\x20\x4f\x40\xbe\xa2\xf3\xde\x4c\xd0\xef\x7f\x30\xeb\x5c\ \xfb\xf7\x31\xbf\xa7\x37\x75\x84\xea\x77\xb5\xb7\xa5\xee\xb6\xf6\ \xd4\x1b\x6a\x3c\x21\xbe\x9c\x0f\xe6\x34\x8c\xf5\x2c\x99\x05\x54\ \xe9\x6b\x86\x66\x93\xac\x5b\xda\x8a\x12\x53\x6e\x00\x8c\xdd\x3a\ \x2d\x9a\xa1\xd1\x33\x02\x55\x9f\x79\x3a\x35\xed\x1b\x6f\x5e\xc5\ \x07\x8f\xfa\xba\xd4\xf7\xbc\x27\x3d\x8d\x32\xb9\xb3\xa7\x3b\xf5\ \x15\x99\xfb\x7d\xc5\x0a\x00\xbc\x83\xa7\x57\xd2\xa5\x25\x38\x7b\ \x50\x83\x70\x1d\x1d\x00\x24\x40\x00\x2c\xb9\x75\x4a\x82\xc2\xbd\ \x85\x92\xcc\x6b\xe3\xcc\xc9\xca\xe3\xca\x42\x7a\x45\x32\x55\x5d\ \x91\xba\xba\x3b\x23\xb7\x4e\xa9\xab\xb3\xcb\x13\x6b\x22\x06\x60\ \x19\xf7\x65\xdc\xc6\x98\xc5\xd2\x90\xad\xa8\x57\x2e\x57\xf3\x24\ \x57\x42\xcc\xe3\x21\x42\x7f\x03\xb1\x66\x7e\x48\x0e\xdb\xa4\x9b\ \xfe\xe6\x6d\x96\x10\x56\x37\xb3\x21\x4d\xa8\x9c\x98\xba\x7a\xbb\ \xd2\xa3\x2b\x0f\x01\x0c\x2d\x61\x4d\xee\xcd\x1a\x3d\x87\x54\xab\ \xbc\x1f\xdd\x54\x18\x06\xf2\x84\xc0\x84\xa0\xd0\x4c\x7a\x90\x9a\ \x80\x51\x10\x91\x12\x23\xfd\x7c\xf1\x83\x60\x3c\x95\xce\x67\x82\ \xda\x33\x8c\x73\x82\xb4\x60\xc1\x02\xcf\x27\x05\xd8\xc4\x89\x44\ \x69\x74\x8b\x21\x9d\x9a\xcd\xb3\x3a\x80\x80\x60\x6d\x14\xd5\x67\ \x0c\x66\x01\x8a\xda\x3d\x3e\x5b\x65\xc0\x18\xeb\xad\x05\xb4\x65\ \x41\xf0\x9c\x32\x3e\xdb\x71\x40\x2b\xd0\xcc\xc9\x3b\x42\xb5\x84\ \x3d\x47\x4f\x03\x4c\x47\x05\x82\x67\x08\xf1\x68\x8b\x31\x99\xf6\ \xd0\xd3\x12\x1a\x10\x50\x79\x6b\x04\xab\x41\xdf\xf1\xec\x12\x9a\ \xa9\x20\x39\x12\xf3\x5c\xd0\x33\x4a\x80\xf5\xd3\x1d\xe6\x05\xf3\ \xa3\x75\x20\x62\xfd\xaf\xf3\xd3\x0c\x60\xca\x6a\x4d\x02\x21\x1a\ \x40\xf2\x1f\x47\x19\x83\x21\x8b\x17\xa4\xed\x3c\xc3\x27\x5f\x77\ \x00\x94\x4a\x12\x06\xd9\x03\xe6\x35\x09\xfd\x0f\x42\xe0\x58\x8c\ \xdf\x46\xd7\x07\x58\xcf\xeb\x84\x54\x77\x2b\x40\x98\x32\x13\xb4\ \x74\x36\x1c\xf2\x9b\x45\x8b\x15\x9d\x1f\x52\x61\x44\x8f\x1e\x5f\ \xaa\xd1\x0e\x4f\x95\x00\x8f\xf7\x33\xa0\x3c\x29\x6a\x6e\x6e\x36\ \xed\x1d\x55\x1f\x20\xc3\x1e\x45\xeb\x18\x01\x85\x7c\xdc\x83\x4e\ \xf3\x7a\x01\x31\xf4\xe1\x20\x61\x54\xd3\x00\x00\xde\xa1\xf6\x67\ \x1d\xd7\xd4\x21\x5a\x4c\xb1\x27\x63\x74\xd6\xc0\xf9\x01\xfa\x88\ \x00\xe0\x0b\x71\xb9\x01\xc0\xa1\x69\xbf\x66\x6c\x48\x0b\xf5\xd5\ \x57\xc0\xb8\xde\xde\x52\xd7\x44\x4a\xa6\x4a\x73\x0b\x55\xde\x22\ \x27\x9f\x0c\x79\x62\x84\xf4\x31\xbb\x11\x29\x6c\x31\x50\xae\x61\ \xd1\x72\x54\x7f\x36\x88\xb3\x04\x2e\x05\x06\x10\x20\x54\xe7\x05\ \x13\xac\x81\xdd\x23\x71\xa5\x6a\x6d\x60\x46\x49\xb7\xb6\x27\xf9\ \xf1\x54\x29\xff\x75\x8a\x77\xf9\xd6\xc0\xbc\xb5\x6b\xd7\x72\xec\ \xa6\x06\xe9\x24\xf9\x2e\x21\xdd\x00\xde\x87\x06\x34\xf0\xf0\x0e\ \xcd\x8c\xee\x6d\x5a\x80\x2d\x2a\x39\xbb\xc7\xde\x10\xe7\x87\x0d\ \x08\xf1\x4b\x8e\xa7\xba\x1e\x8c\x70\xc6\x0f\x53\x00\xc5\xf1\x39\ \x6b\xc8\x98\xef\x20\x6d\x00\x63\x3d\x2b\x4e\x2a\x40\xd6\xf6\x3d\ \x40\xf5\xbc\x01\xba\xa0\x01\x20\x6f\x15\xf9\xdb\x5b\xff\x14\xed\ \xc7\xb6\x7c\xf5\xa5\xbd\xea\xfd\xd9\xc0\xdf\x4a\x9b\x4e\x12\x8f\ \x0e\x51\x48\x15\xa2\xf3\x69\x33\x34\xd1\x79\x9f\x64\xc7\x46\xe6\ \x67\x68\x33\x29\xe2\x7d\x4b\x5d\x01\xf8\xee\xbb\xef\x86\x22\x59\ \x00\xd1\xd0\xb3\x11\x49\xfe\x5b\x8c\x81\x9b\x64\x5a\x6c\xca\x22\ \xf9\xd8\x9b\xaf\xeb\xed\x2c\x6e\x4d\x0f\x61\x7e\xa8\x90\x28\x8f\ \xb8\xec\x6e\xea\xb5\xa4\x79\x86\xef\x91\xd8\x70\x69\xb9\x66\x82\ \xcf\xf0\x0b\xb6\xe7\x83\x23\x31\x57\xfd\xc7\x85\xf8\xfb\x86\x2f\ \x63\xa8\xad\x18\x52\xea\x08\x6f\x79\x28\x08\x5f\xef\x5f\x58\x04\ \x83\x32\xe2\x55\xe2\x65\x12\x2f\x3f\x10\x44\x7c\x1b\x8f\xcf\xf2\ \x69\xae\xcd\xf8\x3e\x82\x26\x38\x95\x01\xe8\xd4\x58\x63\x7a\xd0\ \x50\x13\x9d\xbf\x57\x80\x3e\xf6\x1b\x88\xf1\xbe\xb8\xbc\x88\xa9\ \x8f\xc3\x41\x3e\x09\xa0\x7e\x6c\x02\x83\xd0\x3a\xc2\x9c\x2e\x45\ \x38\xfe\x3a\xd6\xbb\xc0\x29\x7e\x21\xfe\xf6\x7e\x52\x2c\xbc\x3a\ \x54\xf6\xf3\x40\x77\x59\xfc\xf0\x13\xfe\xcc\x8d\xf9\x79\xc9\x4b\ \x67\x34\xa0\xbe\x1d\xb6\x74\x24\x88\xf8\x5f\xbc\xdb\x99\xde\x4f\ \x73\xc3\x42\xb4\xd7\x65\xc8\x4f\x90\x0e\xb4\x12\x1b\xef\x45\x7f\ \x12\x7f\x71\xfa\x3a\x0b\x81\xf1\xf7\x7d\xd3\x02\xed\x96\x60\x66\ \x6e\x3c\x83\x7e\x7d\x00\x41\xfd\xca\xef\x48\xb2\x10\x9d\x7b\xfa\ \x60\xdc\xb3\x50\x7b\xcc\xb9\x16\xd7\xa7\x69\x6c\x34\x40\xec\x23\ \x68\x04\xe3\x7d\x0e\x9a\x03\x00\x42\x15\x99\x6c\xf4\x9a\xe8\x18\ \xa2\xfa\xeb\xb5\x40\x67\x21\x54\x07\x7f\x44\x07\xc5\x34\x86\xdb\ \xf8\xbf\xce\xa6\x34\xfe\x5f\x63\xe3\x00\x8c\x03\xf0\x11\xb7\xff\ \x03\x7f\x19\x0a\xe4\xd7\x62\x63\xda\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x15\x14\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x14\x91\x49\x44\ \x41\x54\x78\xda\xe5\x5b\x79\x8c\x64\xc5\x7d\xfe\xbd\xa3\x8f\xe9\ \xee\x39\x76\xa6\x97\xdd\xb9\x96\x3d\x66\x61\xef\x05\x61\x6c\xae\ \xa0\x38\xb6\x20\x4e\x2c\x22\x27\x32\x09\x92\x0f\x14\x20\xc6\x81\ \x18\x84\x92\x08\x59\x8a\x30\x7f\x18\x04\x09\xe0\xf8\x08\x47\x24\ \xa2\x24\x76\x14\x9b\x80\xf3\x4f\x0e\x27\x86\x80\xc3\x61\x60\x31\ \xe6\xb0\x21\xbb\xec\xb2\xf7\xce\xf4\x4c\xcf\xf4\xdd\xfd\xae\xaa\ \x7c\xbf\x7a\x5d\xf3\xfa\x98\x49\xef\xb4\x90\x65\x29\x65\x7d\x54\ \xbd\x7a\x47\xd7\xf7\xbb\xab\x66\x6d\x48\x29\xe9\xff\x73\xb3\xe9\ \x97\xb8\xbd\x74\xed\xb5\x03\x9e\xeb\x66\x09\xf0\x84\x18\x23\xe9\ \x67\xa5\x2f\xb3\x42\x88\xac\x14\x18\x63\x4e\x04\x22\x2d\xfd\xe0\ \xdf\x7f\xf3\x95\x57\xfe\x8a\xfa\x68\xbf\x30\x0b\x78\xef\x4b\x5f\ \x4a\x54\x3d\x2f\xeb\x48\x37\x6b\xf8\x41\x96\x04\x88\x04\x04\x02\ \x41\x56\x92\xc8\x52\x20\x43\x52\x52\x8c\xc9\x40\xe0\x9e\x60\x82\ \x29\x89\x87\x70\x4d\x18\x87\x08\x02\x12\xd1\xb8\xd9\x8b\xc6\x46\ \x21\x86\x2e\x3a\x70\xc0\xfb\x85\x58\xc0\xcf\xef\xbe\x3b\x6e\xd5\ \x6a\x59\xd7\xf3\xc6\x4c\xc3\xc8\x0a\x62\x12\x06\x2f\x18\x3d\x8d\ \x19\x22\xc8\x0a\x49\x59\x92\x4c\x42\x86\x7d\x20\xd3\x20\x47\x06\ \x6e\xa0\x03\xd0\xf3\x80\x00\x26\x21\x19\x12\x64\x00\xdc\x23\xd9\ \x84\x7a\xae\x1d\xb4\x0c\xd2\x73\xc9\x63\x52\xee\xbc\x88\xe8\xcd\ \x0f\x44\x00\xef\xdc\x79\xe7\xed\xe5\xb8\xbd\x29\x79\xe2\xe4\x88\ \xb1\x6e\x24\x26\x0d\xca\x1a\x64\x8c\x11\x48\x12\x49\x80\x06\x7d\ \xe2\x26\xa1\x38\xee\x42\x32\x7a\x61\x22\xec\x43\xed\xf0\x98\xfb\ \xe6\x75\x04\xb9\x32\xa4\x86\x88\xde\xd7\x08\xaf\x43\x88\xf6\xdf\ \x34\xa4\x7f\x01\x7d\x10\x02\x78\xec\xc2\x0b\xbf\x72\xc5\x95\x97\ \xdf\xe5\x98\x43\x94\x1a\x18\xa0\x40\x88\x90\xaa\xc1\xff\x55\xff\ \xa1\x50\xf4\x7a\x28\xc3\x61\xa4\x9d\x88\x74\x34\x56\xef\x5a\xa9\ \x34\x05\x8d\x3a\x5c\x99\xcd\xda\x65\x33\x50\x30\x63\x36\xe6\x1b\ \xe1\xb5\xd0\xc4\xf1\x46\x32\x41\xa4\x85\x55\xa9\xb4\x0b\xa3\xc3\ \x2a\x84\x30\x2e\x30\x0c\xe3\xef\x25\x5a\x5f\x02\x30\xd0\xee\x98\ \x9e\x4e\xce\x0c\x0f\xdf\x5e\x2f\x95\xa9\x54\x2c\x53\x76\x7c\x9c\ \xfc\x72\x89\xc8\x34\x69\xb5\x66\x26\x12\x24\xea\xf5\x48\x10\xe1\ \xe2\x99\x8c\xd6\x54\x48\xcc\x60\x01\x0c\xa0\xc7\x3b\x98\x0b\x6a\ \xfc\xb2\xa5\xe6\xfc\x5a\x83\xac\xc1\x21\xf4\x35\xb2\x86\x06\xc9\ \xcd\xcd\x13\xa5\x53\xca\xf7\x85\x03\xc1\x60\x5e\x13\xee\xd6\xbe\ \xb6\x00\xb1\xbf\xa9\xa1\xb5\x0b\x80\xc9\xf3\x72\x3c\xa2\x6d\x41\ \x10\x0c\xd7\xf0\x83\x85\xa5\x22\xc5\x76\xee\xa4\x5a\x6e\x8e\xcc\ \x64\x52\x4b\x49\x6b\x5d\x75\xf1\x6c\x96\xbc\x42\x81\x12\x1b\x36\ \x52\x50\xad\x84\x6b\xf1\x3d\x32\x62\x31\xe2\x4f\x06\x9e\x47\xd6\ \x40\x4a\x09\xa8\x31\x3f\xaf\x34\xeb\xd7\x41\x36\x99\xc4\x3b\x1b\ \xc8\xc9\xe5\x48\xb2\x65\xc0\xd2\xbc\x7a\x95\xc8\x32\xc9\xaf\xd6\ \xc8\x84\x50\x02\xd7\xa3\x00\xe4\xf9\x5d\xe9\xba\x91\xf6\x05\xf7\ \x1d\xae\x80\x1e\x2a\xda\xcb\x2b\xec\xd7\x05\x0c\x20\x31\x57\xaf\ \xaf\x9f\x49\xa5\xa8\x86\x1f\x75\xaa\x55\xb2\x86\x47\x28\x60\xe9\ \xc7\xe2\x78\xa2\xfd\xeb\x12\x30\x2c\x1b\x8b\x74\x48\xb8\x0e\x34\ \x08\xcd\x2d\x2c\x28\x72\x36\xb4\xe9\x2c\x2e\xc2\xb4\xe3\xea\x9e\ \xa4\xd0\xff\xb5\x00\xdd\xa5\x25\x08\x6e\x89\x04\x5c\x21\x58\x2a\ \x34\x4d\xbe\x33\x3e\x04\xaa\x27\xdb\xc2\x37\xbc\xe8\x9e\xd4\x71\ \xa5\x45\x18\x00\xfe\xb3\xfe\x9b\xdb\xb7\x8f\x43\xf0\xa7\xd6\xe2\ \x06\x76\x53\xfb\x16\x90\x2e\x04\xc1\x04\x07\xb0\x06\xfc\x31\x33\ \x98\x21\x7b\xdd\x08\x49\x98\xa7\x1c\x0c\x34\xe9\xb6\xe6\x2c\xcc\ \x2b\xc2\x0d\x68\xd2\x4a\x24\x95\x86\xdc\x52\x99\x4d\x5b\x49\xab\ \x7e\xfa\x54\x4b\x1c\x90\x54\x3b\x71\x42\xbb\x84\x26\xda\x41\x5e\ \x32\xda\xef\x35\x7c\xfd\x8d\x2e\x17\x00\xda\x2c\x63\x90\x88\x03\ \xe1\xa9\x7e\x2c\xc0\x04\x52\xae\x54\x45\x06\x39\x8e\x4b\xe7\x6c\ \x9f\x21\xd7\x07\x71\x19\xe6\xdb\x95\x4c\xc0\x87\x95\xe8\x00\x28\ \x3c\x8f\x47\xa1\x99\x57\xca\xad\x01\x31\x22\x2d\x23\x82\x3a\x4b\ \x44\x02\x88\xae\x89\xc1\xf9\xde\xf7\x29\xf0\xb9\xf7\xd4\xd8\xc7\ \x98\x94\xba\x2c\x32\x01\xb8\x5a\x28\x6c\xdc\x93\x58\x0b\xc8\xec\ \xc3\xdd\x7f\xe9\x57\x00\x31\x43\xca\x14\x2f\xd2\x81\xcf\x4d\xcf\ \x6c\xa3\xea\x7c\x8e\xcc\x78\x3c\x5c\x54\x77\xd3\xe4\xa3\x6c\xa0\ \x53\x22\xe9\x34\x18\x09\x81\x05\x20\x02\xc1\x71\x21\x04\x2f\x1a\ \x40\xaf\x82\xac\x61\x59\x80\x0d\x60\x8c\xdf\x34\x6c\x9b\x6c\xcc\ \xc7\x00\xa4\x60\xf0\xe4\x9e\xf8\x79\x95\x31\x82\x3a\xe0\x38\xe1\ \x98\xdd\x8c\xb3\x89\x94\xfb\x74\x20\xec\x27\x0d\x9a\xf0\xd1\x18\ \x2f\xd6\xf3\x7c\x15\x7c\x2a\xe5\x1a\x0d\x20\x1a\x3b\xda\x02\xba\ \x9a\x04\x09\x90\x0a\x3c\x28\xc1\x67\x2b\x08\xb5\x16\x04\x4c\x46\ \x91\xb0\x00\xee\xc9\x8e\x21\x63\x58\xb8\xb6\xe0\xd6\x36\x00\xc2\ \x26\x60\x19\xca\xc7\x03\xfc\x9e\xd0\x84\x18\xd0\xa8\xaf\x2d\xa4\ \x37\x94\x0b\x58\x3a\x10\xf6\x15\x04\x81\x79\xdf\x2f\xa2\x57\x64\ \x3c\x04\xb1\x52\xb5\x4e\x83\x08\x84\x8d\xc5\x3c\xd5\x0a\x45\x12\ \x2c\xa5\x78\x8c\x4d\x4f\x59\x86\x65\xa1\xcf\xc4\xc8\x42\xb0\x8b\ \xc7\x98\x5c\x1c\x81\x2f\xd4\xa2\x6c\x92\x11\x8a\x90\x43\x3e\x7a\ \x59\x87\x90\x9a\xe6\xee\xb7\xb9\x40\x38\xa6\x68\xdc\x01\xd9\x1b\ \x52\x32\x89\xed\x9f\xdb\xb0\x21\x89\xb0\x56\x93\x68\x6b\x2e\x84\ \xde\xaf\xd7\x17\xf1\x96\xd2\x60\xad\x5c\xa6\x42\x2e\x4f\xe7\x5e\ \x3c\x4d\xf2\xd4\x29\x1a\xdb\xb5\x8b\xcd\x34\x24\xa5\xc9\xb9\x0e\ \x08\x42\x73\x24\x55\x40\xf6\xa8\xc5\x0d\x80\xee\x9e\xc9\x74\x8e\ \x55\xdf\x4d\x3e\x22\x06\x88\xff\x1b\x62\x19\xb1\xcb\xe2\xf1\xdd\ \x7f\x47\xf4\x6a\x3f\x2e\x20\xab\x41\xe0\xba\x42\xa0\x0b\xd2\xb5\ \x5a\x9d\x4a\x88\xee\xf6\xc8\x88\xd2\x62\xf5\xd8\x51\x8a\x9a\xe2\ \xd4\x51\x15\x46\xe4\x69\x45\x41\x88\x96\xba\xbe\x83\xb0\x5c\x51\ \x00\x6d\xe4\x68\x19\xb2\x1b\x32\x42\xd2\x90\xfb\xa9\x0f\x01\x48\ \x40\x00\x7e\x2d\x08\x0a\x83\x42\xa4\x51\x0b\xf0\x02\xb8\x16\x50\ \x5a\x36\x06\x92\xd4\x91\x06\xda\x3b\x29\xb5\x30\x34\xe9\xae\x80\ \xa8\x02\x2c\x4a\xda\x0a\xfc\x7b\xdd\xd8\xd8\xea\xfb\x85\x8e\x31\ \x45\xa6\xde\x91\x39\xba\x61\x0a\xc4\x81\x35\x34\xb3\x85\x8d\x0f\ \x78\x2c\x00\x5d\x0b\xf0\x22\x25\x07\x31\x21\x9b\x5b\xd2\x20\x44\ \xc0\x10\xcb\x73\x22\xda\x96\x02\x3c\x0e\xaf\x45\x73\x4e\x00\x7c\ \x5d\x02\xf9\xe9\xcf\x5f\x4f\x57\x3d\xf1\x4f\x3d\x82\x5a\x07\xf9\ \x88\xb4\x86\x16\x52\x17\x8c\x30\x15\x9a\x6b\xb2\x00\xad\x7d\xc0\ \xad\x0a\xb1\x14\xd6\x02\x1e\x4d\xef\xdd\x4d\xd5\x85\x79\x15\xf0\ \x7c\xd1\x91\x09\xb4\xb6\xa3\xb1\x4a\x51\x25\x54\x83\x23\xe7\x9c\ \xb3\xe2\x26\xe9\x43\xbf\xf3\xdb\x34\x75\xc3\x0d\x61\x4e\xe7\x32\ \xd9\x30\x75\x31\x13\x91\x6d\x89\x0d\xb4\x7a\xb1\xc4\x58\xd9\x02\ \xa4\x54\x99\xa0\x1f\x0b\xf0\x00\xa7\xe4\xfb\x0b\x4a\x00\xae\x4b\ \xe3\x5b\x36\x43\x00\x79\xb2\x32\x19\x12\x5a\xbb\x80\x50\x50\x1a\ \x6e\x5a\x44\xd8\xdb\xdb\x66\xe8\x23\x7f\xf9\x75\xf2\x38\x40\x0a\ \xfd\x7c\x84\xc3\xdf\xfd\x2e\xcd\x7e\xff\x29\x32\x6d\x9b\x2b\x47\ \x6d\x29\xcd\xf7\x57\x44\x37\xf9\xd5\xef\xeb\xc0\x34\x7a\xcf\xc6\ \x8d\x53\x06\xda\x59\x09\x40\xa2\xb5\xb8\x80\x5b\xf4\xfd\xbc\x4e\ \x85\x41\xb1\x48\x65\x04\xc2\xf8\xc8\x3a\x6d\xd2\x0a\x32\x22\x17\ \xb9\x01\xfa\x0b\xef\xb8\x83\x26\x2e\xbb\x8c\xec\x89\xc9\xe5\xc5\ \x89\x96\xde\x01\xe9\xd2\x1b\x3f\x25\x6e\x89\xb1\x51\x7d\xef\x2c\ \xd1\xed\x0a\xd1\x39\x41\xd8\x8b\x26\x91\x75\xa6\xb9\xbf\x1f\x0b\ \x08\x00\x37\x1f\x04\xf3\x4d\x01\xe0\x22\x4f\xc5\x33\x67\x38\x13\ \x70\x5e\x6f\xd7\xa8\x5e\x8c\xb6\x06\x3c\x9f\xc0\x73\xdc\xce\xbf\ \xe9\x26\x65\x05\xd1\xf3\x91\x96\x1b\xc7\x4f\x10\xb7\xf4\x94\x12\ \x92\x16\x60\x6f\xd2\x00\xbb\x4d\x19\xbb\x4f\x07\x75\x48\xd5\x0f\ \xa8\x5c\xa9\x44\xf7\x23\x22\xaa\x24\xee\x27\x0b\x28\x01\x9c\x74\ \xdd\x39\x2d\x80\x4a\xa5\x4a\x65\x6c\x63\xed\x4b\x2f\x21\x62\x01\ \x74\x58\x95\x6c\x19\xc7\xb0\x71\x5a\x78\xe6\x69\x4a\xc2\x5d\x26\ \x7f\xfd\x13\xf4\xf3\x8d\xe3\x24\x72\xf8\x54\x47\x3d\x50\x9f\x3b\ \x43\xdc\x52\x9b\x36\x93\xfc\xef\xe7\x95\xf6\x3c\xc7\x51\xd6\x60\ \x59\x5c\x8c\x1a\x51\x0c\x68\xf1\x7f\xc7\xb2\x69\xc7\xcd\x37\xd3\ \xf8\xee\xdd\x94\x9a\x9c\xa0\x81\x2d\x5b\xa8\x84\xcd\xd5\x0f\xaf\ \xba\x5a\x0b\x40\x5b\x00\x7f\xe3\xac\x4b\x62\xb3\x23\x0d\x7a\x67\ \x1c\x27\x1f\x80\x3f\x2f\x88\x53\x61\x65\x69\x29\xac\x05\x5c\x57\ \xbb\xc0\x8a\xae\x30\xb8\x65\x2b\x15\x5f\x7f\x8d\xe6\xfe\xfa\x51\ \xe2\xb6\xeb\xd6\x5b\x61\x05\x4e\x97\x1b\x94\x17\xf2\xaa\x64\x4e\ \xcf\xcc\x50\x15\x5b\xe1\x7a\x22\x41\x9b\x10\x18\x67\xf0\xfc\xd8\ \x27\x7e\x83\x8a\xd5\x2a\x07\xd3\xb6\xb8\x20\xd6\x8d\xd2\xd5\x88\ \x1f\x23\xcf\xfd\x90\xde\xfd\xcc\x75\xf4\xda\xaf\x5e\x49\x87\x2e\ \xff\x08\xd1\xf3\xcf\x61\xc5\x1e\x2f\x3e\x82\x61\xe8\xb3\x01\x73\ \x0d\x2e\xd0\x96\x09\x9c\x1a\x4a\x62\x5e\x6c\xbd\x56\x23\x1b\x87\ \x15\x46\x12\xd0\x64\x3b\xd1\x9c\x1f\xde\xbb\x8f\x6a\xef\x1d\xa6\ \x93\x67\xe6\x68\xe1\x3f\x7e\x40\x93\x57\x5e\x49\xf1\xe9\xe9\x76\ \x17\x00\x1c\x69\x50\xf9\xf0\x61\x9a\xfa\xd8\xc7\xe8\x92\xfb\xef\ \xa7\x5f\xf9\xbd\x6b\x69\x6b\xad\x44\x5b\xb7\x6f\xa3\x2b\xee\xbd\ \x97\x7e\xf7\xc0\x6b\x14\xdb\xb6\x4d\x93\x57\xc2\xf8\xe8\xe3\x8f\ \x53\xe1\x1f\xbe\x4d\x07\x7e\xf2\x16\xe5\x92\x69\xca\x25\x52\xf4\ \xe6\xdc\x22\x3d\xff\xe5\x3f\xa3\xa0\x9d\xbc\xb6\x80\x99\xcf\x8c\ \x8e\xa6\x0c\xb4\xb5\x08\x40\x67\x02\xb7\x2e\x44\x41\xb0\xbf\xc2\ \x34\x37\x4c\x4f\x51\x0d\xfb\x02\x2b\x91\xe8\xf6\x51\xf6\xfd\xe6\ \x31\xf5\xe8\x85\x17\xaa\x78\x11\x90\x41\x73\x8f\x3e\x4c\xdc\xf6\ \xdc\x76\x1b\x9b\x77\x18\x24\x01\xd9\x44\xf5\xd0\x41\xb2\x90\x5a\ \xe7\x1f\xf9\x16\x1d\x78\xe4\x51\x7a\xfe\xdb\xff\x48\xaf\xdc\x74\ \x23\x9d\xbe\xe5\x0b\x14\x1f\x1a\xa2\xab\xbf\xf3\x1d\x92\xc3\xc3\ \xea\xd9\x91\x7d\xfb\x68\xdd\x79\xe7\xd1\xd1\xe7\x7e\x44\x42\xca\ \x36\x9f\xaf\x5a\xf6\x32\x79\x11\x92\xd7\xb0\xf6\x0d\x0c\xec\x5e\ \xab\x05\xc8\x65\x0b\x08\x82\x25\xa1\xb6\xc5\xa8\x05\x76\x9c\x4f\ \x75\x6c\x86\xec\x74\xba\x4d\xf3\x82\xa1\x83\x97\x65\x71\x90\xc4\ \xf3\xbe\x9a\x3b\xf2\xde\xfb\x94\x7b\xee\x39\x9a\xb8\xe2\x0a\x4a\ \x6c\xdd\xd6\x6e\xce\x40\xfd\xbd\xf7\x88\x5b\x11\xd6\xe0\x41\x60\ \x30\x78\x2a\x26\x53\xf4\xda\x7f\x3e\x43\xb3\x4f\x7c\x8f\xe2\x38\ \x5d\xda\x7c\xcd\x35\xea\xd9\xb1\xcd\xe7\xaa\xa5\x35\x82\xa0\x8d\ \xbc\x86\xe8\x20\xaf\x91\x20\xda\xdf\x8f\x0b\x78\x80\x53\x0e\x82\ \xbc\x3e\x18\xd9\x30\x31\x8e\x54\x38\x4f\x71\xf8\xa1\xce\xfd\xdc\ \xcb\x65\x04\x34\xb4\x79\x33\x39\x88\xfa\xd6\xf9\xe7\xd3\xf0\x47\ \x7f\x8d\x36\x7f\xf1\x8b\x94\xda\xba\x95\xb8\xed\xbd\xfd\x76\x58\ \x41\xa3\xcd\x0d\xea\xcd\x7d\x45\x72\x6a\xaa\xad\x62\x74\x0d\x93\ \x72\x4f\x3e\x41\x68\xec\x42\x6a\xce\x32\x0d\x15\x40\xd3\xbb\xf7\ \xa8\x5e\x10\xb5\x41\x76\x93\x57\x73\xb1\x30\x13\x9c\x9d\x0b\xb4\ \xd6\x02\x5a\x00\xcb\xa9\x90\xb7\xc5\x73\x73\x64\x8f\x8e\xf2\x81\ \xa7\x2e\x75\x23\x60\x91\x23\xf0\xff\x31\x04\xb5\x8b\x2f\xb9\x98\ \x76\x0a\x97\xb2\x2f\x3c\x4b\xf9\x9b\x7f\x9f\x4a\xaf\x1d\xa0\x89\ \xcb\x2f\xa7\xd4\x8e\x9d\xad\x6e\x00\x01\x1c\x0b\x53\x21\x22\x79\ \xe7\x5f\x7e\x4e\x1f\x3c\x48\xaa\x35\x35\x5e\x7b\xe9\x45\x95\x48\ \x66\xbe\xf0\x07\xe4\x0a\xd1\x45\x94\xd7\x68\x66\x32\x5d\x71\x80\ \x4c\x53\x95\xc4\xfd\xb8\x80\xbb\x84\x5a\xa0\x55\x00\x95\x85\x05\ \x95\x09\x60\xe3\x6a\xb1\x11\x42\x52\x59\x14\x3f\x07\xaf\xff\x2c\ \xfd\xf8\xe1\x47\xe8\x85\x1f\x3c\x4d\xaf\xbc\xf5\x0e\xfd\xf4\x64\ \x8e\x4e\xdf\x77\x2f\x71\xdb\x87\x02\x89\x33\x82\x7e\xaf\x78\xf2\ \x64\x28\x80\x6d\x33\x1d\x55\x20\x22\xc8\xba\x31\xe2\xe6\xe7\xe6\ \xd4\xdc\xc9\xa3\x27\xa8\xf8\xc2\xf3\xb4\xfe\x82\x0b\xe8\xa2\xfb\ \xef\x23\xc7\xe0\xc0\xef\xa9\x2d\x7b\x1d\x19\x63\xe6\xfa\xeb\xe9\ \xdc\x5d\x3b\xda\xc8\x03\x4c\x6c\x37\x77\x06\xda\x5a\x04\x10\x00\ \xde\xac\xeb\xe6\x42\x25\x04\x61\x2d\x80\x54\x68\x8d\x0c\xf3\x2f\ \x33\xe1\x08\xbc\x78\x32\x68\x74\xcf\x1e\x3a\x8e\xe8\xef\xe1\x73\ \xa2\xa5\x34\x3e\xfc\xd6\xdb\x54\x7c\xf5\x15\x1a\xbf\xf4\x52\x1a\ \xdc\xb7\x77\xb9\xe0\xa9\x14\x4a\xe4\xe0\x9b\x53\x57\x5d\x15\x1e\ \x8c\xa8\x6f\x85\xef\xc5\xd9\xd2\x30\x97\xff\xdb\xbf\x51\xbd\x87\ \xf5\x1f\xbe\xe5\x66\x72\x20\xb4\xed\x9f\xfe\x34\x7d\xea\xc7\x2f\ \xd1\x87\x1e\xf8\x73\xda\xf5\xa7\x7f\x42\xd7\x3c\xfb\x5f\x34\x99\ \x1d\xa1\xf7\x5f\x7e\xb5\xcb\x15\x70\x3d\x72\xe7\xfa\xf5\x9b\xd6\ \x6a\x01\x02\xf0\x8e\x3b\xce\xac\x3e\x18\xe1\x5a\xa0\xc6\x47\xe4\ \x99\x41\xf6\x95\x76\x0b\x10\xf0\xff\x6d\x5b\xa9\x7c\xe8\x10\x79\ \xbe\xaf\x49\x2c\x9b\xb5\x83\xcf\xcf\x7e\xf3\xeb\xc4\xed\xc3\x5f\ \xbd\x87\x5c\x37\x14\xa0\x4f\x52\xbd\x93\x04\xd9\xf1\x4f\x7e\x92\ \xaa\xa5\x32\x79\xae\x4b\x55\xa4\xdd\xf3\x6e\xb9\x85\x16\x1e\x7b\ \x98\x0e\xbe\xfe\xc6\x32\x99\x83\x85\x0a\xfd\xec\xea\x8f\x53\xe9\ \xbe\xaf\x92\x3c\x7e\x8c\xa6\xf6\xef\xa7\x2d\xd3\x93\xe4\xdf\x73\ \x37\xbd\xf9\xb5\xaf\x93\x6f\x9a\x7a\xf1\x6d\x41\x71\x5d\x22\xb1\ \x6f\xad\x7f\x1a\x93\xcd\x2d\x71\xd5\x05\xe2\x52\xa6\x6b\x58\x54\ \x06\x0b\x75\x0a\x4b\x2a\x15\x7a\x22\x68\x2b\x03\xc7\x90\xfe\xaa\ \x47\xdf\x57\xd6\x80\xd6\x7e\x26\x80\xf6\xb3\x67\x7f\x44\xd3\x48\ \x8f\x9c\xca\xf6\xdd\x75\x17\xbd\xf9\x8d\x6f\x90\x84\x4b\x79\x20\ \x22\x2f\xba\x88\xae\x7c\xe8\x21\xda\x7b\xe3\x8d\x94\x3b\x70\x80\ \x86\x51\xe1\x89\x27\xbf\x47\x2f\x3e\xf1\x14\xb9\x76\xac\xad\xbc\ \x3d\x58\xf7\xe8\xc8\x63\x8f\xd3\xc8\xb7\x1e\x26\x5b\x08\x95\x02\ \x17\xe3\x49\x68\xda\xea\x8a\x0b\x7a\x6c\x87\x99\xe0\x9f\x01\xd9\ \x4b\x00\xdd\xc5\x10\x6a\x81\xb4\x10\x69\xce\x04\x93\xe7\x9f\x87\ \x5a\x60\x89\x62\x48\x4f\x75\xc4\x04\xdd\x1a\x8d\x3a\x4d\x5e\xf3\ \x5b\x34\xff\xfa\xeb\x54\xc4\xbe\x61\xa8\xb9\x17\x90\xa1\x10\x54\ \xae\xbf\xf0\xa1\xaf\x91\x09\xed\x96\x9f\x7d\x86\x26\x93\x71\xca\ \xde\x74\x03\xfd\xcf\x93\x4f\x51\xee\xa1\x07\xe8\xc4\x1f\xfd\x21\ \x65\xb0\x75\x8e\x65\xd2\xe4\x97\x2b\xf4\xf6\x99\x59\xca\xc7\x07\ \xc8\x67\xf2\x11\x21\x2d\x04\x95\x25\xe6\x70\xbf\x93\x28\xb0\xe2\ \x1c\x59\x96\xca\x04\x6b\xb6\x80\xa6\x00\xb8\x16\x98\xe4\x6d\xf1\ \xae\x5d\x3b\x69\xfe\xf8\x49\x8a\x83\xa0\xc0\xde\x80\xdb\x10\x0a\ \x94\x4b\x60\xae\xe9\xc1\x0c\xc5\x21\xa0\x8f\x3f\xf8\x00\xbd\xfc\ \x95\xbb\x49\xb6\x1e\x93\xc3\x75\xe6\x6f\xbd\x99\x8e\xc1\x35\x1a\ \x56\x4c\x11\xf0\x0d\x43\xf5\xa7\xf8\xbe\x95\x20\xca\x17\x49\x02\ \xdc\x64\x22\x15\x2d\x7e\x05\x82\xd4\x83\x78\xe7\x9c\x85\xb3\x81\ \x66\x20\x14\x12\x6d\x2d\x16\xe0\x56\x5b\x6a\x81\x61\x90\x3c\x82\ \xa8\x3c\x9e\x5d\x4f\xf4\xee\x3b\x61\x9e\x7d\xfb\x4d\x3a\xf5\xd9\ \xeb\xe8\x10\x4c\xdf\x33\x2d\xf2\x2d\x8b\x84\x1d\x6f\x3b\x30\xf4\ \xd0\x1f\x89\x0d\x10\xd9\xd1\x66\x08\x2d\x1c\xb7\x12\x5b\x85\x24\ \xad\x4e\x94\x5b\x4f\x4b\x00\xf1\x2d\x9f\x1a\x19\x49\x7f\xbf\x50\ \x28\xf6\x0a\x82\x51\x2d\x10\x15\x43\x8b\x3a\x13\x70\x2a\x2c\xcf\ \x87\xa9\xd0\xf0\xc2\x8d\xca\xbc\xe3\xd1\xfb\x20\x37\x8b\x0a\x2e\ \x1f\x4b\x50\xd1\xb4\x5b\xff\xd5\x46\x74\x4c\xa6\x7b\x29\xdb\x76\ \x6c\xa2\x63\x8c\x45\x33\x74\x00\xeb\x0e\x6a\x8c\xee\x0a\xb0\xbd\ \x28\xd2\xcf\x46\x73\x26\x4a\xe2\x3d\x6b\x75\x01\x7d\x30\xb2\x5c\ \x0b\x38\x5c\x0b\x14\x8b\x64\x73\x7d\xce\xa9\x90\xba\x1b\x18\xb6\ \x7e\x64\xf5\x71\xb7\x06\x3b\xe7\xba\xdd\xa0\xb7\xd6\xf5\x7c\xd7\ \xb5\x1d\x8f\x73\x20\x7c\x11\xe8\xe1\x02\x1d\xe7\x02\x8b\x41\x90\ \xd3\x02\xa8\x54\x6b\x61\x2a\x5c\xb7\x8e\x4c\xbd\xb7\x5f\xa1\xc9\ \xce\xeb\xd5\x84\xd0\x69\xe2\x9d\xcf\xf7\x70\x83\x68\xae\xb7\x1b\ \x20\x0e\xb0\x00\x8c\xb5\x58\x80\x00\xbc\x13\xa8\x05\xd0\x87\x9b\ \x17\xd4\x02\x75\xd4\xfa\x6e\xa9\x44\x16\x6f\x8a\x5c\xb7\x9b\x70\ \x2f\xad\x1b\xc6\x2a\x82\xe9\xd6\x78\x37\xf1\xfe\x83\x22\x22\x60\ \x5b\x20\xec\x21\x80\xc8\x0d\x4e\xe3\x60\xc4\x97\xd2\x8f\x49\x69\ \x73\x2d\xb0\x1e\x1b\x9e\x06\xbb\x01\xb6\xab\x62\x61\xa1\xb7\xf6\ \x99\x70\xff\x6e\x10\x8d\x7b\xb9\x41\x8f\xe7\x41\x5c\x95\xc4\x3d\ \x83\xe0\x4a\xbb\x42\x6c\x41\x8b\x3a\x13\x6c\xda\x79\x3e\x55\x51\ \xbe\x26\xb2\x59\x0e\x34\x5d\x90\x8c\xd6\x6b\xa2\x5e\x41\x6f\xd5\ \xe0\x26\xa3\xfb\xd1\x35\xa3\xc7\x0e\xb0\x2b\x28\xe2\x1a\x02\x18\ \xbc\x6d\x62\x62\xf3\x1a\x04\x10\x05\xc2\xba\x10\x8b\xfa\x88\xfc\ \x5c\xe4\xfa\x2a\x34\x9f\x58\xbf\x5e\x9f\xf9\x77\x47\xeb\xce\xb9\ \x55\x48\xa9\x7e\x35\x01\x75\x13\x8f\xc6\x2d\xef\x8a\x1e\x31\x80\ \x5a\x2c\x70\xd0\xb6\xf7\xaf\x49\x00\xda\x02\x50\x0b\x2c\xc1\x6d\ \x54\x0d\x9f\x42\x55\x57\x99\x9f\x57\x81\x90\x84\x68\x27\xbd\x1a\ \x71\x4d\xb8\x9d\xd4\x4a\x7d\xf4\xdc\x5a\xac\x81\xe7\x7a\x90\xe7\ \x16\x37\x0c\x15\x08\x7b\x06\x41\x89\xc6\xc1\x42\x97\xc3\x95\xd6\ \x73\x81\x7c\x3e\x4c\x85\xd8\x17\x18\x52\xf2\xa2\xd6\x16\x08\xf5\ \xb8\x67\x36\xe8\x5d\x10\x51\x0f\xad\x77\x36\xcc\xee\x69\x2a\x5b\ \x9c\x75\x10\x04\xdc\x12\x04\xa0\x8b\x21\xa7\x50\xa0\x7a\xa5\xc2\ \x16\xa0\xbf\xd4\x3b\x10\x76\x8d\x35\xe9\xde\xd9\xa0\x37\xf1\x6e\ \x61\xea\xac\x85\x8d\x9c\x82\x0f\x38\xbe\x2f\xc8\x34\xe7\xf8\x09\ \x6e\x12\xad\xa7\x00\x74\x2d\x50\x68\xad\x05\x2a\x55\xaa\x3b\x0e\ \x79\xd5\xaa\x3a\x29\x16\x98\xa3\x5e\xda\xd7\x56\xd2\xcb\x12\x7a\ \xa4\x41\x5d\x56\x2b\x62\xf8\x5d\x0f\xbd\x27\x84\xf4\xd9\x5a\x13\ \x89\xc0\x1a\x48\x0a\x3b\x95\x96\xf6\xf0\x90\x4c\x8e\x8e\xd1\xe0\ \xe4\x84\x1c\x9d\xde\x44\x53\xbb\x76\xc8\xbf\xb8\xf3\xcb\xd7\xfd\ \xdb\xbb\xef\xbe\xdc\xb3\x0e\x58\xf1\x60\xc4\xf3\xe6\x5a\x6b\x01\ \xe5\x17\x70\x83\x18\x52\xa1\x5c\x5a\xea\x26\xdd\x87\x1b\xb8\x4d\ \x8d\x79\x00\xf7\x0e\x88\x41\x63\x81\x88\xc7\x03\x23\x91\x10\x46\ \x26\xc3\xff\x78\x52\x9d\x1d\x0c\x8c\x8f\xcb\xd1\xc9\x49\x63\x64\ \x7a\xda\x1e\x99\x18\xb7\x6d\x3b\x66\x99\xf8\x9f\x6d\xd9\x14\x8b\ \xc5\xc8\xb6\x2d\xf4\x71\xe2\xeb\x64\x32\x49\x43\x58\xe7\x79\x93\ \x93\x15\x08\xa0\xce\x9c\x7a\xd4\x01\xdd\x81\xf0\x78\xa3\x31\x2b\ \xf0\x8e\xfe\x23\xc9\xe4\xf6\x19\x6a\xa0\x18\x4a\x8e\x8d\x91\x80\ \x00\x56\x7b\x11\xef\x68\x2d\x69\x73\x64\x0d\x0a\x11\x12\x63\xad\ \x09\x99\x4a\x49\x2b\x93\x31\x6c\xa4\xd5\x01\x6c\x89\x33\xe3\xe3\ \xe6\xf0\xf4\x94\x99\xc9\x66\x6d\x32\xd4\xc6\xc2\xe6\xe5\x5a\x96\ \x45\x71\x45\x0e\x24\xe3\x71\x35\x8e\x27\xb8\x8f\x87\xa4\x63\x98\ \xb7\x63\xfc\x9c\x7a\x06\x02\x61\x01\xa8\x67\xd2\xa9\x34\xed\x3f\ \x77\x52\xe9\xad\x67\x29\xbc\xd2\xae\x10\x59\xa0\x02\x12\x15\x14\ \x43\x19\x95\x0a\x77\xec\xc0\xb6\xf8\xb8\x0a\xa7\x8b\xb5\x5a\xe8\ \x67\x78\x36\xb0\xac\x40\xc4\x62\x42\x26\x12\x52\x0e\x0c\x48\x99\ \xce\x20\x58\x8e\xc9\xc4\x86\x73\xcc\xd4\xf8\x46\x63\xdd\xe4\xa4\ \x3d\x38\x3a\x66\x41\x55\x26\x2f\xce\x34\x94\x43\x92\xc9\x8b\x06\ \x4c\x1e\x9b\x26\x19\x80\x26\x8c\x7b\x21\x69\xc0\x62\xe0\x1e\xae\ \x19\xea\x59\x0d\x7d\xe4\x87\x79\x7e\x57\x83\x05\xa4\xe6\x26\x92\ \x99\x18\x6e\xf7\xda\x0e\xaf\x9e\x0a\xf9\x8f\x24\x49\x21\x32\xae\ \xe3\xd1\xb6\xa9\x29\xf9\xea\xf1\x13\x1e\xcd\xcc\x48\xfb\xe2\x0f\ \x1b\xa3\x9b\x36\xd9\x03\x83\x83\x26\x7e\xc8\xd4\x0b\x64\xad\x60\ \xac\x34\x80\x59\xb2\x15\x19\x73\xf9\xf8\x1b\xd4\x31\x0e\x78\xcc\ \x8b\x57\xe0\xb5\x99\xfc\x0e\x34\x0c\xe8\x39\x75\xf8\xc9\x82\x37\ \x00\x7c\x97\x63\x11\xf7\xfc\x0c\x93\x0c\x85\xd8\xfc\x5d\x34\xbe\ \xd6\xd9\x2c\xdc\xc5\xd6\xeb\x6e\xcc\x94\xa9\x35\x9c\x08\x75\x67\ \x82\x1a\x8a\xa1\x11\x29\xa7\x38\xf2\x9f\x29\x14\xbc\x89\xcf\x7d\ \x1e\xe7\x22\x23\x94\x49\xa7\x40\x32\xc1\x0b\x51\x84\x41\x45\xbd\ \x26\x98\x8c\x8e\xe2\x18\xa3\x0f\x17\x69\x59\xbc\x78\x8c\x2d\x40\ \x11\x6c\x03\x04\xa2\xc7\x9a\x84\x7a\x3e\x11\x5a\x85\x26\xac\x35\ \xdd\x9a\xba\x59\x30\x3c\xd7\xf6\x0d\xbe\xae\x17\x8b\x65\xcb\x13\ \x99\x35\x6c\x87\xa3\x5a\x40\x5b\x40\xa5\x79\x2e\xb0\x1e\x01\xe5\ \xe4\x9e\x7d\xd6\xa6\xe9\x69\xca\x8e\x8d\x92\xdd\xd4\x34\xb1\x16\ \x0c\x93\x3b\x6d\xaa\x9a\x44\x44\x8e\x11\x04\xbc\xd0\x30\xa5\x3a\ \x2e\x6b\x57\x2f\x58\x43\x9b\x34\xa3\x6d\x8e\xdf\xd1\x42\x40\x6b\ \x8e\xb5\x40\x57\x2e\xf3\xf9\xdb\x8d\x7c\xbe\x4a\xc2\x4f\xb3\x71\ \xf4\x6b\x01\x2c\x00\xb5\xf3\x09\x3c\x4f\x66\xa6\xa7\x51\x06\x8c\ \xd0\xf0\xf0\x30\xff\x78\xf3\xbb\xa1\xf6\x74\xbd\x00\x62\x7a\xcc\ \xe0\x7b\x0a\xda\x2c\xd1\xba\xc9\x47\xd0\x1a\xe6\xbe\x6d\x0c\xa2\ \xda\x0a\xf8\xdd\xd0\xc4\x9b\xbb\x52\xad\x71\xfd\x8c\x16\x4a\xe5\ \xf4\xa9\x1a\x1e\x4c\xaf\xc1\x02\xba\x53\x61\xc9\xf7\x95\x00\x6a\ \xae\x1b\x0c\x25\x93\x76\x22\x9e\x20\x5d\x1b\x60\x31\x6d\x64\xb5\ \x00\x22\xd2\x91\x70\xb4\x56\x5b\x7d\x94\x7b\x4d\x46\x2f\x5e\x9b\ \xb4\xe3\x38\xfa\x0f\x20\xda\xf4\xbb\x02\x1d\xe6\x75\x1c\x50\xdf\ \xd1\xef\xeb\x00\xb9\xf8\xea\x2b\x0d\xc3\xf3\xfa\xb6\x00\xd1\xfc\ \x17\x23\x73\xfc\xb6\x67\xdb\x42\xfd\xa8\x69\x68\xcd\x6a\xad\x69\ \x82\xda\x2c\x79\xac\x89\x30\xb4\x50\x34\xda\xde\xd1\x66\xaf\xef\ \xe9\x6b\xf4\xfa\x5b\x3c\xcf\xdf\x60\x8d\xab\xf9\x0c\x6a\x83\x81\ \x81\x01\x95\xeb\x13\xcd\x38\xd4\xd9\x1a\xa5\x62\xc3\x39\x72\x78\ \xc4\xf5\x7c\xd9\x87\x05\x44\xa9\x10\x07\x23\x67\x78\x11\x3e\x56\ \x8d\x42\x43\x93\xd3\xd2\xd7\x5a\xd4\xda\xd7\x64\x3b\x03\x9b\x16\ \x4e\x9b\x26\x75\xd3\x04\xb5\xf6\xf4\xb3\x3a\x23\x74\xb6\x72\x3e\ \xef\xce\xbe\xf3\x4e\x3d\x7f\xf4\xa8\x53\x3a\x79\xc2\xaf\x9e\x99\ \x95\x41\xa1\x60\x58\x8d\xba\x3d\x20\x45\x7c\xc8\x8e\xa5\x32\xa9\ \x64\x32\x96\x88\x0f\xbf\x9e\x5b\xfc\xd7\x3e\xb2\x40\x94\x0a\x4f\ \x39\xce\x82\x90\x92\x3d\x3b\xd0\x8b\x6e\xd5\xa8\x16\x82\xd6\x1a\ \x34\xd2\xb5\x68\x5c\x6b\xb4\xa5\xaf\xd6\xc6\xef\x71\x2b\xe6\x72\ \xce\xe9\x23\x47\xea\x0b\x47\x8e\xb8\x85\xe3\xc7\xfd\xf2\xe9\xd3\ \xd2\x59\x58\x30\xfc\x62\xd1\x36\x1a\x8d\x44\xdc\xf7\x53\xb6\x69\ \xc6\xf1\x8d\xb8\x0a\x90\x86\x51\x0b\x4c\xa3\xe4\x1a\x0a\x05\x60\ \x09\xa2\x9c\x43\xd1\x75\xe8\xe9\xd3\xb3\x4f\xbe\x9d\xcf\x1f\xeb\ \x57\x00\x3a\x13\x34\xea\xbe\x5f\xf2\xa4\x8c\x6b\x72\xda\x84\x5b\ \xcd\x55\x43\x13\x5d\xa9\x15\x66\x67\x9d\x1c\xc8\x2d\x1d\x3b\xe6\ \x2c\x1e\x3d\xea\x57\x67\x67\x79\x97\xb9\x4c\x2e\x21\x44\xca\x84\ \x2c\x08\xc0\xef\x35\x1c\x29\x4b\x7c\x28\x83\x5a\xa4\x58\xc7\xd6\ \x9c\xff\x0d\x63\x59\x88\x7c\x01\x9b\xb4\x3c\x14\x73\xd4\x75\xe7\ \x30\x5f\x67\x57\x65\xe8\xcc\x05\xd4\x80\x02\x50\x0c\xe7\xfb\x17\ \x80\x0b\xd4\x71\x40\x7a\x6c\x7c\x71\x71\x47\x12\x02\xb0\x59\x83\ \xb6\xdd\x45\x12\xe4\x1a\xb9\x43\x87\xea\x79\x90\xc3\x5f\x7f\x83\ \x0a\x6b\x0e\xe4\x44\xa9\x14\x53\x9a\x13\x22\xcd\xe4\x02\x64\xd9\ \x86\x10\x7e\x43\xca\x4a\x93\x9c\x22\x56\xf1\xfd\x7c\x11\xc4\x16\ \x7c\x3f\x87\x12\x7c\x1e\x3b\xd1\x32\x13\xea\x20\xc7\xf0\x5b\x10\ \xb4\xf7\x7a\x1c\x3d\xab\xab\xc0\x1e\x02\x58\xb5\x16\x70\x80\xd2\ \x7b\x8d\xc6\x4b\x9b\x97\x96\xf6\xbe\xf4\xe0\x83\x8b\x89\x7a\xd5\ \x3c\x35\x9f\xaf\xe1\x80\x54\x82\x9c\x6d\x36\x1a\xc9\x18\x8a\x5f\ \xfe\x16\x6f\x64\x80\x3a\xff\x59\xad\x2e\x65\xa1\xe6\xfb\x4b\x15\ \x68\xac\xe8\x79\x0b\x8b\x38\x66\x3f\x89\xcd\xd5\x82\xeb\x96\x34\ \xa1\x3e\x88\x31\x04\x20\xcf\x06\xdc\xfa\xfe\xbf\xce\x42\x00\x26\ \x85\xe6\xb8\x11\x52\xda\x7e\xf3\xe4\xe4\x1f\x6f\x4c\x26\x77\xa7\ \xd2\x29\xff\x8d\xb9\xdc\x4f\xaa\xa8\x0f\x4a\x40\x1e\xc4\x70\x80\ \x9a\x3b\xe3\xba\x8b\xdd\xa4\x80\xde\xa4\xb8\x17\x8c\x1e\xe4\x28\ \x1a\x77\xb7\xd5\xc8\xf6\x2b\x00\x2d\x04\x1b\x5d\x1a\x18\x05\x86\ \x81\x18\x20\xce\x46\x5b\x6b\xd4\x18\x7d\x30\xc4\x3e\x78\x01\x18\ \xe8\x2c\x26\xde\x84\xa1\x6b\x84\x5f\x2e\x62\xfd\xb7\xff\x05\xc7\ \xfd\xe7\xdb\x23\x5d\x13\x38\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x20\x1c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\ \x1b\xaf\x01\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xd7\x08\x12\x14\x39\x28\x29\x91\x7c\x0e\x00\x00\x1f\xa9\x49\x44\ \x41\x54\x78\xda\xe5\x9b\x09\xb0\x5c\x57\x99\xdf\xff\xb7\xf7\xbd\ \x5f\xbf\xfd\xe9\xe9\x3d\x49\xd6\x2e\xd9\xda\x2c\x79\xc1\x78\xc0\ \x76\x42\x81\xc1\x03\x64\x0c\x13\x1c\x42\x65\x02\x4e\xb1\x84\x78\ \x5c\xc5\x14\x55\x49\x2a\x54\x48\x05\x2a\x03\xc3\x14\x03\x55\x33\ \x13\x43\x2a\xae\x21\x9e\x01\x26\x05\x43\x80\xd8\xb2\x0d\x78\xc3\ \x96\x25\x6b\xb1\xf5\xb4\x3d\x6b\x7d\xd2\xdb\xb7\xde\xb7\xdb\xb7\ \xf3\x3b\xa7\xbb\x35\x12\x1a\x0a\x18\xb0\x81\x4a\xcb\x9f\xcf\xed\ \xbb\x9c\x77\xbe\xed\xff\x2d\xf7\xb4\xfe\x7f\xff\x38\xaf\xe7\xdf\ \x59\xb3\x66\x8d\xaf\xab\xab\xcb\xd7\xdb\xdb\x6b\x29\x91\x48\x38\ \xd5\x6a\x55\xb9\x5c\xce\x5b\x58\x58\xf0\x96\x97\x97\xbd\x0b\x17\ \x2e\x78\xd9\x6c\xb6\x29\x09\xfa\x2d\x16\x40\x24\x12\xf1\x6d\xdd\ \xba\x35\xb0\x7b\xf7\xee\xf8\xdd\x77\xdf\xbd\xb5\xaf\xaf\x6f\x67\ \x34\x1a\x5d\xcf\xf9\x75\x7e\xbf\xbf\xd7\x71\x9c\x04\x14\x6f\xf2\ \x69\x34\x1a\x05\x43\x08\x63\xa6\x5c\x2e\x9f\x2a\x16\x8b\xe3\xd3\ \xd3\xd3\xfb\xbf\xfd\xed\x6f\x9f\x3c\x70\xe0\x40\x0d\xa1\x34\x8c\ \x40\x7e\x1b\x04\xe0\x6c\xda\xb4\x29\x74\xef\xbd\xf7\xf6\xbe\xf5\ \xad\x6f\xbd\x07\x2d\xbf\x3d\x16\x8b\xdd\x1c\x0e\x87\xfb\x60\x5a\ \xf0\x2a\xd7\x75\x2d\xc1\xb0\x3c\xcf\xb3\x0f\xf9\x7c\x3e\x4b\xc1\ \x60\x50\xdc\x67\xcf\x57\x2a\x15\x15\x0a\x85\x49\xac\xe1\xd9\xa9\ \xa9\xa9\x6f\x3d\xca\xe7\x5b\xdf\xfa\x56\xde\x58\xca\xaf\x52\x18\ \xce\xaf\x4a\xdb\xd7\x5f\x7f\x7d\xf4\x13\x9f\xf8\xc4\xae\x6d\xdb\ \xb6\x7d\x34\x9d\x4e\xdf\x0d\xd3\x29\xc3\x08\x1a\x15\x1a\x55\xa9\ \x54\x52\x15\xa6\x6a\xb5\x9a\xdc\x7a\xbd\x25\x00\x08\xa1\x40\xad\ \x95\xc0\xbc\x15\x42\x38\x1a\x55\x2a\x95\xb2\x14\xe5\xb8\xce\xfd\ \x8b\x8b\x8b\xf3\x33\x33\x33\xff\x7b\x6c\x6c\xec\xcf\x3e\xf7\xb9\ \xcf\x8d\x4f\x4e\x4e\xba\x46\x10\xbf\x6e\x01\x38\x1b\x37\x6e\x8c\ \x7e\xfa\xd3\x9f\xbe\x79\xc7\x8e\x1d\x7f\x94\xc9\x64\xde\xe2\xe7\ \x03\xd3\xc6\xaf\x55\x2c\x14\x54\xe1\xd8\x50\x15\x2a\x23\x04\xc8\ \x0a\xa2\x8e\x20\x1a\x58\x82\xe1\xde\xe7\x38\xf2\x07\x02\x0a\x05\ \x43\x0a\x86\x42\x0a\x84\x43\xf2\x9b\x63\xc6\x68\x3c\xae\x9e\xbe\ \x3e\xf5\x41\x21\xae\x2d\x2d\x2d\xd5\x2f\x5d\xba\xf4\xcd\x23\x47\ \x8e\x7c\x96\xbf\x7b\x22\x9f\xcf\xbb\xbf\x16\x01\xa0\x9d\xe0\x87\ \x3f\xfc\xe1\x91\xf7\xbf\xff\xfd\xff\x7e\x68\x68\xe8\x03\x98\x70\ \x10\x4d\x5b\xc6\x4b\x30\x6e\x28\xbb\xbc\xac\x85\xb9\x79\xcd\xce\ \xcd\x6a\x6e\x76\x56\x4b\x8b\x4b\xca\xe6\xb2\xd6\x1a\x3a\x02\xf0\ \x49\x0a\xfa\xfc\x8a\x84\x82\x4a\x18\xcd\x27\x12\xea\x4a\xa7\xd5\ \x95\xe9\x56\x2a\xd3\xa5\x68\x2a\xad\x50\x22\xae\x70\x2c\xa6\x6e\ \x84\x30\xbc\x72\xa5\x62\x1c\xcf\xce\xce\x96\xcf\x9c\x39\xf3\xc5\ \x6f\x7c\xe3\x1b\x9f\xfb\xfa\xd7\xbf\xbe\x2c\xc9\x7b\xbd\x04\xe0\ \x8c\x8e\x8e\xc6\xbe\xf4\xa5\x2f\xbd\x63\xcf\x9e\x3d\x7f\x8a\x89\ \x0e\x5d\xd6\x78\x3e\xaf\x1c\x4c\x4f\x4f\x4d\xe9\xfc\xb9\xf3\x3a\ \x73\xf6\x8c\x26\x26\x26\x34\x03\xf3\xf8\x72\x87\x71\x6b\xfa\xc2\ \x3d\x1c\xa3\x7d\x49\x01\xc7\xa7\x00\x18\x10\x0a\xf8\x15\x45\xcb\ \x89\x48\x54\x19\xcc\xbf\xaf\xa7\x5b\x83\x83\x83\xea\x5f\xb1\x42\ \xe9\x81\x01\x45\x33\x19\x85\xcd\x79\xce\xad\x5a\xb5\x4a\xc2\x72\ \xce\x9d\x3b\xf7\xea\xc1\x83\x07\xff\xf5\x27\x3f\xf9\xc9\xe7\x5d\ \x3e\xaf\xb5\x00\x7c\xb7\xdc\x72\x4b\xf7\x97\xbf\xfc\xe5\xff\x40\ \x48\xfb\xb7\x66\xed\x98\xa0\x0a\x50\x76\x71\x51\x13\x17\x2e\xe8\ \xc4\xf1\x13\x1a\x3b\x7e\x4c\x68\xc7\x32\x5e\x2e\x96\xd4\xdb\xdb\ \xa3\x95\x2b\x86\xd5\xc7\xd8\xdd\xd5\xa5\x58\x24\xa2\x30\xbe\xde\ \x6c\x78\x06\x0f\xb8\xa7\xa0\x02\x02\x5c\x5a\x58\xd0\xfc\xf4\x0c\ \x34\x8d\x60\x9a\x8a\xe0\x06\x29\x5c\xa0\xbf\xa7\x47\x2b\x56\x0e\ \x6b\xc5\xea\xd5\xca\x8c\x8c\x2a\xda\xdb\xab\x38\xc2\x19\xe5\x7b\ \x5f\x7f\xbf\xc0\x86\x2a\xd8\xf0\x1f\x1f\x7c\xf0\xc1\x2f\xe3\x22\ \x95\xd7\x4a\x00\xfe\xb7\xbf\xfd\xed\x2b\x3e\xff\xf9\xcf\xff\x05\ \x5a\xb9\x1b\x60\xb2\x8c\xe7\xd0\xec\xe4\xc5\x8b\x3a\xfa\xca\x2b\ \x3a\xf0\xd2\x4b\x3a\x7e\xf2\xa4\x66\xa6\xa6\xf1\xd9\x5e\x6d\xdb\ \xba\x55\x9b\x37\x6d\x52\x22\x1c\x91\xaf\xe9\xc9\xef\xb5\xc8\x31\ \x04\xf3\x62\x84\xac\x45\x34\x0c\x71\xec\x72\x5f\xb5\x5a\xb3\x73\ \x9e\x3e\x76\x4c\x0b\x08\xd1\x80\x63\x12\xb3\xef\x87\xf1\x95\x30\ \xbd\x62\xfd\x7a\xa5\x56\x8d\x2a\xc2\xf7\x01\x5c\x62\xf5\x75\xd7\ \x59\xa0\x45\x08\x5f\xf9\xd4\xa7\x3e\xf5\xe0\xc9\x93\x27\x8b\x3f\ \x2f\x40\xfa\x7f\x5e\xe6\x3f\xf0\x81\x0f\xac\xf9\xcc\x67\x3e\xf3\ \x48\x7f\x7f\xff\x9d\x26\x44\xe5\xdb\x1a\x3b\x31\x36\xa6\x1f\xfe\ \xf0\x87\x7a\xe2\x07\x3f\xd0\xcb\x2f\xbf\xac\x01\x16\xf5\xce\x77\ \xdc\xa3\xbb\x6e\xbf\x5d\xd7\xa1\xf5\x0c\xbe\x9d\xc4\x54\xd3\x6a\ \x51\xaa\x43\x9c\x4b\x4a\x4a\x74\x88\x73\x71\xc6\x18\x6e\x11\xe7\ \x5a\x6f\x32\xa5\x75\x1b\xd6\x69\x04\x06\x6b\x08\xb9\xb0\xb0\xa8\ \x12\x02\x2f\xf2\x37\x6b\x4b\x4b\xf2\x55\xaa\x0a\x20\x98\x4a\xdd\ \x55\xae\x84\x95\x81\x0f\x03\x03\x03\xbb\x6e\xb8\xe1\x86\xad\x58\ \xc4\x63\xe7\xcf\x9f\xaf\xfe\xaa\x04\xe0\xbf\xf3\xce\x3b\x57\x7e\ \xf6\xb3\x9f\xfd\x5f\xc4\xf5\x5b\x0d\x8a\x1b\xb3\x9f\xc3\x4c\x5f\ \xda\x7f\x40\x8f\x3d\xbe\x57\xcf\x3e\xfb\xac\x5c\x7c\xfb\xbd\xbf\ \xf7\x7b\xba\xe3\x8d\x6f\xd4\x20\xc0\x95\xc2\xa7\xd3\x4e\x87\xe9\ \x0e\xb3\x0e\x0c\xc2\xa4\xa4\xa8\x31\xf1\x26\x24\x99\x11\xe2\x9c\ \x19\xa1\x98\xbd\xc6\x79\xac\x22\x01\x26\x5c\xb7\x6e\xbd\xba\x01\ \xc4\xfc\xf4\x94\xaa\x68\xba\x9c\xcb\xab\xba\xbc\x24\x87\xb5\x84\ \x88\x1e\x0d\x9f\xa3\x3c\xc7\x19\x5c\x05\x21\x6c\x02\xa3\x36\xee\ \xdb\xb7\xef\xbb\xe0\x52\xfd\x97\x15\x80\x8f\x30\xd7\xff\xd0\x43\ \x0f\x7d\x85\x89\xef\x00\xc4\xac\xd9\x4f\x5d\xba\xa4\xe7\x9f\x7f\ \x5e\xff\xf7\xb1\x47\x75\xe8\xe0\x41\xed\xda\xb1\x43\xff\xfc\xde\ \x7b\xb5\xb2\xa7\x57\xe9\x0e\xe3\x57\x68\x38\x0a\x85\x61\x0c\xaf\ \x57\x00\xc6\x02\x8c\xfe\xa6\x20\x46\xaf\x75\xec\x33\xc7\xf6\xba\ \x21\x29\xc8\x18\x16\xe4\xf1\x9c\x5b\x07\x3b\x12\x1a\xc1\x22\xaa\ \x33\x73\xaa\xb1\x86\x5a\x89\xd0\x4a\x44\xb1\x42\xf0\x33\x23\x96\ \x96\x03\x8c\xbb\x00\x4a\x42\xe6\x26\xb2\xd0\x81\xef\x7f\xff\xfb\ \x8f\xe3\x5a\xee\x3f\x56\x00\x0e\x79\x7b\xea\xe1\x87\x1f\xfe\xcf\ \x6b\xd7\xae\xbd\x8f\x58\x6e\x32\x33\x4d\xc3\xfc\x8f\x9f\x7b\x4e\ \x8f\xed\xdd\xab\xb3\xa7\x4f\xeb\xdd\xef\x7c\xa7\x6e\xdb\xbd\x47\ \x5d\x80\x5a\x86\x85\x74\x18\x8f\x59\xa6\x61\xb6\xcd\xa4\x45\x7c\ \x33\x1a\xbf\x6f\x42\x1c\x37\x6d\x24\x68\x8d\x6a\x9f\x77\xec\xbd\ \x8c\x1d\xe1\x58\x30\x6c\x32\x59\xdd\x5a\xcf\xf0\x9a\x0d\x6a\x10\ \x4e\xdd\x42\x8e\x30\x5a\x53\x3d\x57\x40\x08\x65\x2c\x21\x88\xa4\ \x23\x2a\xd6\x6a\xd6\x1d\x58\xfb\x2e\x92\xb3\x65\x84\xb0\x5f\xcc\ \xfe\x0b\x0b\x80\xb8\x1e\xf9\xc2\x17\xbe\x70\xef\x6d\xb7\xdd\xf6\ \x5f\x00\x3c\x1f\xcc\x5b\xb3\x7f\xe1\xf9\x17\xb4\xf7\xf1\xc7\x75\ \x11\xc4\xbf\xef\xf7\x7f\x5f\x1b\x09\x47\x5d\xf8\x62\x06\xcd\xe3\ \xd7\x76\x91\x21\x18\x68\x69\xb5\xcd\x58\x9b\xa9\xa6\x65\x9a\xb1\ \x7d\xac\xf6\xb1\xda\xc7\xba\xea\xd8\x8e\xac\xc3\x53\x20\x0d\x40\ \x3a\x9e\x42\x45\xc9\x29\xd7\x35\xb4\xf6\x3a\x35\x96\xc1\x02\x37\ \x27\xa7\xee\x22\x84\xa2\xfc\x60\x42\x08\xb0\x6d\x1a\x21\x10\x0d\ \x07\x08\x95\xe4\x0b\xbf\x43\x8e\xf2\x14\x2e\x3a\x21\x66\xfc\x45\ \x04\xe0\xa7\x80\xd9\xf4\x91\x8f\x7c\xe4\xaf\x40\xe0\xa4\xc9\xe8\ \x96\x09\x73\x07\x0f\x1c\x40\xf3\x8f\xeb\x3c\x21\xce\x30\xbf\x66\ \x60\x00\xcd\xfb\xd4\xed\xf7\x29\xe9\x39\xd6\x7f\x03\x2d\x2d\x42\ \xad\x58\xaf\x0e\xa3\x57\x33\x79\x95\x15\xa8\x6d\x05\x96\x38\xee\ \x8c\x1c\x28\x18\xa7\x2e\xe8\x8a\x28\x56\x73\xe5\xe5\x4c\xf4\x80\ \x88\x40\xfd\x6b\x56\x03\x86\x17\xb9\xa7\x2a\xaf\x84\x80\x8a\x65\ \xf9\x39\x1f\x8a\xc7\xd4\x20\xcc\xba\x92\x86\x56\xac\x08\x90\xa7\ \xdc\x76\xe2\xc4\x89\x47\x00\xc6\xf2\xcf\x2d\x00\x24\xd7\xf5\xc5\ \x2f\x7e\xf1\xb3\x84\xbb\x5b\x08\x2f\x36\xc1\x39\x41\x48\x7a\xfc\ \x89\x27\x34\x06\xd2\xbf\xfb\x77\xef\xd1\xda\xa1\x15\xea\x86\xf9\ \x54\x44\xea\x92\x8f\xe4\x25\x2e\x11\xbe\x3a\xcc\x59\x26\x1a\x10\ \x82\x40\xcb\x57\x6a\xfe\xaa\x31\x68\xb4\xe6\xba\xc4\xf7\x11\xad\ \xba\x79\x8f\xfa\xd6\xae\x55\x1f\xbe\xde\x47\xa8\xeb\xdf\xb8\x56\ \xf1\x35\xbd\x0a\xf7\xf4\x6b\xd5\x75\x5b\xd4\xbf\xe1\x06\x0d\x6e\ \xde\xac\x9e\xd1\x51\x2d\x9c\x1a\x57\xdf\x48\x9f\x16\x16\x27\x14\ \xab\x53\x64\x95\x5d\x35\x89\x4e\x01\x39\x0a\xa6\x92\xaa\x01\x9e\ \x41\x04\xd1\xc3\x07\x2b\xf0\xbe\xf7\xbd\xef\x3d\x2d\xa9\x71\x8d\ \xa5\xeb\xda\x4f\xf0\x81\x07\x1e\x78\x13\x7e\xff\x1e\xc2\x9d\xcd\ \xe3\xa7\x88\xc9\xa0\xaa\x8e\x1e\x79\x59\xb7\xec\xd9\xad\x75\xc3\ \xc3\x4a\x4b\x84\x38\xc1\x78\x40\x41\x98\x1b\x20\x16\xa7\x07\xfb\ \x5b\x0c\x37\x5a\xc4\xf1\x15\x82\xb8\x96\x12\x84\xcc\x55\x37\xed\ \x91\x83\xfb\xa8\x69\xdc\xe4\xea\xcc\xc4\xf1\xd7\x55\x27\x19\x8a\ \x45\xc3\xdc\x1f\x30\x67\x3a\xff\xc9\x2b\x57\x14\x4b\x74\x6b\x64\ \xeb\xf5\x44\x08\xbf\xe2\xc2\x32\x4c\x74\xc0\x3a\x6b\x27\x4e\xca\ \x9b\x5f\xd0\x0c\x19\x29\x25\xb7\xe0\xe5\x81\x0f\x7e\xf0\x83\x9b\ \xcd\x04\x3f\x4b\x00\x0e\xda\xcf\x50\xca\xfe\x21\x26\x18\xb0\xf1\ \x9e\xd4\x76\xec\xe8\x98\x8e\x1c\x3a\xa4\x34\xfe\x75\xeb\xce\x5d\ \x4a\x35\x05\xd8\x11\xaf\xc3\x3e\x28\x24\xc7\x6d\x58\x06\x52\x83\ \x43\x56\x83\xfc\x55\xc3\x34\x74\x25\xf3\x8d\xd6\xb1\x71\x11\x09\ \x0d\xaf\xd3\x10\x89\x12\xcc\x9b\x73\x96\x3c\xa8\xf3\x8c\xb8\xbf\ \xd1\x2c\x2b\x90\xea\x95\xcf\x0a\x51\x10\xff\xb3\xd7\x20\xc6\xfa\ \x72\x4e\xab\x6f\xbc\x49\xc9\xe1\x5e\x25\x03\xb8\x20\xcf\x08\x57\ \x75\x4f\x9f\x55\x1d\x41\xd4\xb3\x39\xcd\xce\xcc\xa8\xbb\xbb\x3b\ \x7a\xeb\xad\xb7\xfe\x91\xa4\xf0\xcf\x12\x40\xe0\x43\x1f\xfa\xd0\ \x1b\x30\x99\xdb\x0d\xf3\xb5\x72\x19\xb0\x9b\xd0\x91\xc3\x87\x34\ \x4b\x4e\xff\x4f\xde\x7c\x87\x92\x86\x51\x28\x0e\x85\x78\x9a\xe5\ \x4b\x56\xe3\xae\x65\x32\x92\x4c\x6a\x68\xcb\x66\x05\x11\x56\xc7\ \x0a\x3a\xcc\x73\xc0\xf9\x80\x86\x77\x6e\x53\x7a\x68\xa8\xe3\x16\ \x1d\x21\x5d\x1e\xbd\xf6\x33\x35\xaf\xa6\x68\xba\x5b\xf8\xc8\x35\ \x56\x64\x05\x56\xab\x2a\x46\x6a\xdd\x7b\xfd\x76\xd2\xeb\x16\x77\ \x81\x5a\x5d\x4d\xc0\xba\x81\x00\x3c\xb2\xc8\x02\x0a\x34\x25\xf8\ \xca\x95\x2b\xdf\x73\xdf\x7d\xf7\x6d\x90\xe4\xfc\x54\x01\x50\x8b\ \x27\xdf\xf6\xb6\xb7\xdd\x4f\x1d\xef\x33\x0f\xe5\xc9\xc0\xc6\x4f\ \x9e\xd0\x19\xd2\xdb\x35\xc3\x2b\xb5\xb2\x3b\xa3\x64\x87\x79\x16\ \xe4\x73\x01\xa6\x96\x6a\x34\x73\xfc\x24\x7e\x58\xb1\x4c\x53\xda\ \xe2\xab\xa4\xc0\x7d\xbd\x57\xb9\x43\x72\x20\xad\xe4\x86\x21\x85\ \x13\x21\xfb\xbd\x01\x68\x4d\x1d\x79\x45\x2e\xc2\xbe\xc6\x6d\x9a\ \x8c\x12\xf7\xa6\x25\xe6\x6b\xaa\x7e\xf9\x9a\xd7\x06\x53\x5f\x90\ \x68\x43\xe1\xd4\xbd\x79\xbb\xc2\x71\x8a\x29\x2c\x2f\x64\xc2\x2d\ \xb9\x81\x26\xa7\xe4\x52\x8c\x09\x25\x2e\x92\x3d\xd2\xa3\x08\xdd\ \x7e\xfb\xed\x1f\x35\x6c\xfe\x14\x01\xd8\xa4\x67\xd5\xf0\xf0\xf0\ \x9b\x6d\xd3\x02\x9a\x45\x92\xe3\xc7\x8f\x2b\x37\x33\xab\x3d\xdb\ \xb7\x2b\xe1\xb5\x98\x0f\x7b\x6d\x34\xae\xd4\x44\x1b\x0b\x33\x6e\ \xa8\x92\x5d\xd6\xa5\x23\x47\x54\x5e\x5a\x6a\x23\xbb\xd4\x43\xde\ \xde\x0b\x36\x38\x8e\x0f\xd7\x58\xad\xae\xf5\x83\x72\x9d\x96\x36\ \x2b\xa4\xd2\xe7\x5f\x78\x41\x59\xf2\x8a\x2b\x35\xeb\x59\x17\x60\ \x6c\x0b\xc3\x4f\x7c\x0f\xf6\xad\x92\x17\xc8\x09\x6e\x38\x57\x63\ \xee\x9a\x82\x31\x4f\x91\x95\x09\xa5\x46\x37\x2a\x3e\x30\xc2\xf7\ \xa0\x65\xc6\x2f\x59\xc5\x80\x8e\x6a\x5e\xbc\x64\xb1\xa0\x8a\x40\ \x5c\xce\x01\xea\xef\x06\x13\xd3\x3f\x4d\x00\xa1\xfb\xef\xbf\xff\ \x1e\xc2\x5e\xcc\xdc\x5c\x06\xfd\x2f\x9e\x3b\xa7\x4b\x50\x17\x68\ \xba\xb2\xaf\xcf\x32\x1f\x31\xc9\x89\xf5\x41\x34\x58\xc2\x02\xaa\ \x2c\xca\x6f\x17\x6b\x35\x39\x05\x5e\x2c\x9d\xbf\x60\x90\xdd\x32\ \x11\x27\x3d\x1d\xdd\xbd\x4b\xc9\x15\x5d\x2a\xe3\xef\x31\xc2\xd4\ \xf2\xc4\xa4\x2e\xec\xdb\xaf\x6a\xbe\xd0\x36\xfd\x46\x27\x62\x40\ \xae\x25\xbe\x5b\x6c\xa9\x15\x73\xea\x1e\xdd\x2c\x67\x78\xbd\x6a\ \xf1\xaa\xea\xe1\x05\x79\xf1\xac\xba\x6e\x5a\xa3\xfe\x37\xbf\x13\ \xdc\x59\x05\x58\xc2\x38\x40\xe9\x48\x90\xcd\x2a\xad\xe6\x1d\x98\ \xaf\x9d\x3f\x2f\x1f\xf3\x93\xbe\x1b\x2b\xe8\xff\xd8\xc7\x3e\xf6\ \x96\x2b\xf9\x0e\x74\x0e\x4c\xbc\x5f\xb7\x6e\xdd\x3f\xb5\xfd\x3a\ \xc8\x80\xdf\xc4\xd9\x73\xca\xcf\xcd\x69\x23\x05\x89\x61\x3e\x6a\ \xd2\x52\x99\x2c\xcd\x11\xff\xc1\xb0\xf1\x39\x4f\x35\xbf\x83\x96\ \x1b\x62\xdd\x36\x7e\x2f\xf2\x5c\x79\x69\x59\x7d\xeb\xd6\xca\x47\ \x8d\x2f\x01\x58\x2a\x29\xda\xb7\x5a\x0b\x2f\x3d\xa5\xec\x89\x39\ \xee\xbd\x3a\x3a\x74\xa2\x87\xeb\x95\xe4\x73\x4c\x1e\x11\x56\x80\ \x46\x49\x61\xfa\xac\x62\x3d\x03\xea\xb9\xee\x06\x35\x86\xd7\xa9\ \x5e\x29\xda\x7b\xd3\x3c\xeb\x0f\x84\x54\x2f\xcd\x6b\xf9\xcc\x01\ \xf9\x38\xbe\xaa\xbc\x75\x11\x22\x19\x63\x63\x72\x52\x3e\x5c\xb3\ \x1a\x29\x8b\x2e\xb4\x46\x46\x46\xee\x91\xf4\xb7\x50\xf5\x4a\x01\ \xf8\xe8\xeb\xf5\x51\xec\x6c\x43\x00\xb6\x46\x5f\x9a\x9f\xd7\x0c\ \xc0\xe7\x15\x8a\x1a\x1d\x18\x84\x79\x4f\xe0\x7d\x0b\xf4\xd4\x12\ \x00\xa7\x14\x2a\x4b\x95\x4c\x42\x3d\x23\x61\x92\x91\x90\xb8\x6c\ \x85\x20\xa8\x00\x08\x25\xfa\xfb\x59\x5c\x55\x0d\xe2\x7d\x94\x92\ \x36\x68\xd2\x65\xaa\x44\x0b\x1d\xed\x4c\x11\x8b\x69\x9b\xbd\xcb\ \xbc\xf4\x06\xca\x05\x25\x82\x43\x6a\x54\x29\x74\x66\x2f\xa8\xd0\ \x33\xc8\x3c\x2b\x69\x93\x05\x99\x2b\x6d\x05\x40\x6f\x0d\x21\x56\ \x55\xbc\xf4\x8c\xca\xf3\x17\x98\x2c\x70\x75\xaa\x67\xc0\xb5\x84\ \x30\x97\xb3\xaa\xd3\x91\x0a\x66\xba\x2c\x18\x92\x22\xdf\x2a\x29\ \x7e\x8d\x00\xde\xf7\xbe\xf7\xed\xa4\xe7\x96\x32\x75\x7e\x1d\xbf\ \x5e\x64\xf1\xb9\xf9\x39\x85\x78\xa8\x2f\x95\xb4\xa6\x1f\xb8\x42\ \xfb\x12\xa3\x44\x4e\x8e\x65\xf4\xd3\xcc\x1c\x1a\x54\xaa\xe6\x80\ \xcc\x2d\x21\x48\x56\x10\x2d\xcd\x3a\x15\x85\x32\xd7\x59\xbb\x4b\ \x76\xf7\x90\xae\x26\x61\xfc\xef\x05\xb5\x6c\x05\xd0\x10\x12\xc0\ \xd7\xc1\x1f\xa7\x2e\xa9\xc6\x5c\x01\x42\x20\x45\xce\xd8\x8f\xd1\ \xf4\x0d\x4a\xaf\x24\xc4\xca\x69\x27\x57\x2e\x65\xf2\x69\x15\x27\ \x9e\x43\x18\x01\x6b\x8d\x57\x49\x80\x63\x38\x96\x43\x16\x5b\xa3\ \x3f\x11\xdb\xb8\xd1\xe2\x55\x32\x99\x1c\x7d\xef\x7b\xdf\xbb\x96\ \x56\xda\x92\xb9\xab\xe3\x0b\xc1\xcd\x9b\x37\xef\x68\x58\xe0\xf1\ \x6c\x03\x73\x79\x76\x4e\x55\xe2\x68\x8c\xef\x69\x90\x36\xc8\x1f\ \xf5\x75\x90\xda\x35\xe4\x5a\x72\x2b\x1c\x67\xb3\x30\x38\x48\xd2\ \xe2\x5a\xc1\xe2\xfb\x68\xc7\xf8\xb1\xa1\xba\xdc\x26\x85\x4c\x77\ \x9f\xd5\x78\xc7\xd4\xbd\xcb\x73\xb9\x1d\x74\x87\x60\x3c\x88\x30\ \x09\x7d\xcc\x63\xae\x63\x05\x7e\xf9\xf2\x21\x95\x4f\x1d\xd0\xc2\ \xab\x87\x39\xc7\xf9\xa6\xc1\x9e\x25\x15\xce\x3f\xa6\xc2\x1c\xbd\ \x01\x04\x5f\xcf\x5f\x5b\xf9\xda\x39\xc1\x19\x17\x6b\x0e\x4a\x82\ \x3f\xdb\x7e\xa7\x48\xba\xd1\x28\xfd\x4a\x0b\x08\x63\x1a\xd7\x99\ \xf0\x02\x59\xd4\x2c\x90\x50\x08\x41\x24\xda\xa5\x6c\x80\xf3\x72\ \x98\x54\x90\x73\xd9\xd3\x6c\xde\xdf\x58\x32\xa5\xe9\x9c\xa2\x83\ \x6b\x94\x3d\xf4\x8c\x2a\x97\x6a\x1d\x3c\xb0\xc5\x4c\x78\x75\x4c\ \x99\x70\x54\x24\x16\x5a\x9a\x9c\xe0\xba\x07\xe3\xcd\xcb\xe9\xb0\ \x5b\xad\xd1\xe8\x98\x57\xe0\x62\x45\xd1\xeb\xd7\x60\xe6\x61\x2d\ \x1e\x3b\xa2\xca\x82\x1f\x86\x5b\xf7\xf8\xfc\x35\x85\xce\x9d\x56\ \xa3\x56\x51\xd7\xaa\xf5\x98\xfe\xb3\xaa\xcc\x8f\xa9\xb4\x80\x5b\ \x16\xa5\x7a\xe1\xda\xfe\x07\xcc\xd8\xf4\x98\x57\x4e\x56\x79\x00\ \x9d\x3d\x0d\x18\xae\x6f\x0b\xa0\x61\x05\x40\xba\x18\xe5\xe4\x68\ \x5b\x00\x36\x01\x2a\xe7\x73\xf2\xd7\xea\xb6\x3b\x13\x70\xeb\x98\ \x62\xf8\x1f\x2c\xa8\x3c\xa8\x56\xc0\xdf\x27\x4e\xab\x67\xe3\x0e\ \xe5\x87\x46\xc9\xc2\x9e\x57\x79\xc1\x33\x8b\x87\x19\x68\x68\xc0\ \x40\x33\xa1\x2a\x8e\x35\xc0\x2c\x9d\xe2\x46\xa5\x53\x00\x59\x37\ \xc1\xda\x96\x54\xca\xe4\x94\x19\xb8\x9d\x67\x69\xa2\x5e\xbc\xa0\ \xfc\xc5\xc6\x55\x40\x19\x8c\x73\x5f\xed\xbb\xf2\x6e\xbd\x59\x95\ \xc9\xa7\x54\x5e\xac\xa9\x59\x8c\xaa\x3c\x57\x27\xa7\xa8\xf2\xb7\ \xac\x17\x5d\xbd\x4c\x5c\x5a\x46\x08\xf4\x26\xa9\x8c\xac\x52\x00\ \xc3\x75\x6d\xe5\xd7\x6d\x82\xcd\xc9\x08\xfe\xdf\xdd\xa9\xc4\xea\ \xa0\xa6\xcb\x03\x41\xd3\x91\x09\x88\x73\x39\x72\x11\x34\x68\x7c\ \xfc\x27\xd2\x69\x66\xc4\x4c\x9b\xf4\xec\x12\xe4\xe7\x45\x0d\x6c\ \xd8\xae\xd2\xf8\x51\x98\x58\xb4\x02\x18\xde\xb3\x4b\x4e\xb7\x2b\ \x07\x21\x86\x58\x40\x64\xc5\x88\x4a\xaf\xce\x6a\x74\xcf\x1b\x25\ \xaf\x85\x01\x67\x9e\x79\x56\x7e\xea\xfd\x08\x7d\xbe\xee\x61\x22\ \x45\x31\xcf\xf5\x9b\x55\xdf\x1c\x63\x0e\x33\x7f\x15\x4d\x2f\x68\ \xe1\xf4\xb8\x8a\x67\xa6\x34\xe1\xfe\x9d\x32\x83\x39\x84\x44\xb4\ \x28\x86\x55\x99\xcb\x2b\x10\xa9\xcb\x09\xb3\xf6\x25\x3f\x56\x72\ \x79\x6d\xd6\x0d\x7d\x75\x97\x90\x5d\xc4\x00\xfa\xad\x1b\xc0\x6b\ \x7f\xc7\xfa\x2f\x63\x00\xbe\x11\x45\x00\xd6\x02\xdc\x3a\x92\x05\ \x40\xa8\xeb\x61\xcc\x91\x8b\xf9\x05\x42\x36\x5e\x5f\x4d\xae\x6b\ \x47\xaf\x8e\x58\x08\x87\x15\x6a\xf4\x10\x5a\x0e\x0f\x0e\x81\xd8\ \xd6\xcf\x6d\xb8\x13\x0c\xd4\x8b\x59\xeb\x42\x19\xac\x24\x3c\x14\ \x15\x27\x3b\x58\x80\xe6\x5c\xc5\x46\x42\xea\xd9\x76\x8b\xfc\xa1\ \x20\xf3\x56\xed\x73\x16\x6b\xcc\x75\x4c\x37\xde\xdf\xa7\x91\x9b\ \x6e\x26\x5b\xcd\xc0\x64\x5e\xf9\x19\xae\xe5\xfd\x58\x4e\x90\x28\ \xb0\x48\x32\x86\x9b\x76\xb9\x8a\x64\x58\xcb\x95\x3a\x6a\x97\xe6\ \x5e\x0d\x1e\x02\x81\x4e\xc8\x8f\x9b\xe1\x2a\x01\x70\x32\x72\xb9\ \x16\x77\x5b\x80\x17\x96\x14\x89\xf9\x31\xdd\x28\x8b\xd4\x15\x49\ \xcb\xb5\x82\xf0\x4c\x49\x5a\x5a\xb6\xb1\x21\xdc\x3d\x80\x46\xdb\ \x80\xe7\x1a\xe1\x34\x31\xfb\x49\xc1\x15\x89\xcb\x0a\x65\x76\xdd\ \x22\x5f\x2c\xcb\x12\x4a\x24\x31\x45\x25\x56\x39\xca\xec\xbe\x55\ \x99\xd5\x6b\xdb\x00\x57\x62\xc1\xb8\xa3\x4d\xa6\xda\x64\xc1\xd2\ \x53\xff\xa6\x75\xd6\x2a\x4a\x53\x92\x9b\x8d\x20\xd8\xba\xaa\x26\ \xde\x57\x1d\x18\xa4\x14\xee\x62\xed\xc1\xab\x2c\x14\x62\xe4\x79\ \x9a\xa8\x1d\x01\xc4\x7e\x12\x04\x1d\x4c\xc3\xf1\x0c\x83\xf6\x4a\ \xd3\x5e\x08\x3a\x52\x18\xb2\xe8\x0f\x98\xd9\x30\xe5\x75\x26\xbe\ \x3a\xe6\x34\xeb\x46\xca\x06\xa1\xeb\x36\x7d\xc5\x96\xda\xd6\x01\ \x92\x97\x7d\xf2\xa6\xcf\xab\xb1\x9a\x50\x18\x0a\xab\xff\x86\xdd\ \xca\x12\x59\x34\x77\xc6\x3c\x49\x65\x78\x17\xf8\xb1\x0d\x2d\x8a\ \x79\xd0\x7e\x39\xaf\x06\x02\x38\xfd\xa3\xa7\x2c\xd3\xe1\x78\x5c\ \x83\x37\x5c\x8f\x55\x31\xab\x93\xc5\x22\x82\x6a\xe4\x04\x78\x86\ \x55\x26\x5a\x79\xf8\x39\x38\x06\xcc\x98\x05\x7b\xf8\x7a\x93\xe7\ \x9d\x2b\x85\x60\xad\x08\x2b\xef\x84\xe7\x4e\xd2\xd8\x11\x00\x42\ \xe7\xc3\x85\x76\x3b\xcc\x4f\xa3\x11\x62\x45\x7e\x18\xf0\xe1\x54\ \x75\xb7\x80\xb6\x42\x52\xbd\x3d\xe7\x55\x42\x68\xb6\x42\x98\x5a\ \x3e\xe7\x96\x0b\xb8\x90\x09\x93\x56\x8b\x00\x1e\x52\x07\x89\x0b\ \x53\x17\x94\x1a\x59\x85\x80\x7c\xea\xdd\xb8\x55\x8d\x35\x68\x5c\ \x20\xbc\x31\x7b\xeb\xaf\x35\x35\x8c\xf6\x4b\x05\xc6\x20\xb1\xbf\ \x64\x05\x50\xcb\x17\x48\x84\x7a\x94\x59\x13\xa3\x29\x7b\x09\x2c\ \xc1\xdd\x96\x22\xcc\x5b\x47\x00\xb3\xed\x90\x07\xb9\x0e\x2e\xd4\ \xb4\x02\xa8\xe6\x6c\xc8\xb2\x82\x11\x14\x08\x87\x6d\xe9\xcd\x77\ \x53\x17\x94\x0c\xcf\x57\xba\x80\x0b\xff\x95\x8e\x00\x02\xc1\x80\ \xc2\xc1\x90\x15\x40\xb3\xcc\x12\x17\xa7\xd4\xe0\x38\x94\x34\x3c\ \xa3\xd5\x2b\xfc\x1f\xe2\x24\xa3\x9f\x3e\x7d\x2c\x69\x05\x51\x5b\ \x9c\x36\xa6\xd9\xbe\xee\xb6\xcc\xb9\xe8\xd3\xd2\xf1\x83\x68\xc6\ \x30\x55\x13\x92\xc4\x4d\x70\x2f\x88\x63\x90\xd8\x16\x39\x30\x4b\ \x31\x55\x2a\xa3\xd5\xcb\xee\x86\xe6\xfd\xa4\xc3\x21\x55\xaa\x13\ \xe4\x13\x45\x04\xd0\x24\x22\x04\x40\xff\x29\xee\xab\xb5\x75\xd0\ \xae\x03\x1c\xc1\x2c\x7e\xcf\xd8\xd6\x26\x6b\xf3\x29\x9c\x4c\x5e\ \x16\x00\xd6\x5e\x96\xe4\x5d\x69\x01\x55\x8a\x85\x2c\x17\xe4\xf0\ \x2f\x88\xb4\xa2\xd4\xf3\x05\x53\x86\x56\x1c\x55\x2f\x4d\x2a\x0a\ \x6a\xbb\x4b\x53\x0a\xa7\x43\xaa\x2e\xb9\x1d\xe5\x63\x15\x14\x48\ \x5d\x52\x33\x19\x55\xbc\xb7\x4f\x75\xb4\x5f\x9e\xba\x88\x00\x0c\ \x00\x36\x21\xd7\x2c\x02\x01\x38\x2a\x2d\x9e\x52\x61\xc3\x46\xac\ \x60\xd4\x6a\x85\xa7\xda\xeb\x68\xf9\x37\x44\xec\x9f\x46\x0e\x4d\ \x0b\x82\xa3\xb7\xdc\x6c\x05\x10\x8c\xfa\x15\x88\xcf\xca\xf5\x16\ \x50\x42\x59\x71\x94\x51\x9e\xe1\x38\x32\xaf\x6a\x10\x86\xea\x6a\ \x15\x44\x30\x6e\x4a\x82\x9a\x8d\x6d\x86\xe0\x06\x1e\x3c\x53\x84\ \x51\x94\x75\xde\x99\xa1\xec\x79\x06\xb7\x63\x01\x4d\x88\x28\xb3\ \x30\xe9\xb5\x93\x9d\x40\x84\xbc\x9d\xc2\x21\x84\x69\xca\x63\xc2\ \x19\xfa\x82\x17\x4f\x29\xb3\x69\xbb\xe2\x1b\x57\x28\x71\x5d\x58\ \xb1\x15\x94\xc6\x2b\xa5\xd4\xfa\xa8\xd2\x3b\x37\x72\x6d\x27\x9a\ \x0a\xa8\x34\x37\xad\xda\xec\x02\xe6\xd9\xd2\x1e\x02\x80\x18\xb1\ \x82\xf2\xa5\xa2\x96\x8e\x1e\xe0\xb8\x24\x54\x67\x1b\x9a\x6a\x6b\ \xbe\x69\xc8\xa5\x09\x33\x8f\xb5\x95\x1c\x2e\x5b\xf4\xc7\xa4\x03\ \x54\x7a\xa4\xb3\xd5\x29\x3a\x3f\xe4\x23\x7c\x0f\xc5\x68\x84\xa4\ \x27\x94\x1c\xad\xaa\x6b\x6d\x43\xd1\x6e\x62\xfb\x30\x58\x91\xa0\ \x44\x4e\x19\x16\x3a\xd6\x60\x5c\x22\x24\x7f\x3c\x81\xe2\xd2\xea\ \x58\x38\xca\x3e\xcb\xe0\x5e\x69\x01\x15\x5e\x37\x5f\x68\xa7\x8a\ \x56\x00\x71\x3a\x2d\x61\x80\xca\x71\x72\xaa\x2e\x37\x95\x3b\xfa\ \x8a\x86\x6e\xbc\x59\xdd\xeb\x37\xca\xb9\x7e\x37\xfe\x99\x67\x81\ \xb8\x45\x22\x69\xcd\x2b\xc4\xbd\x1e\x0c\x94\x2e\x9e\xc5\x05\x4c\ \x62\xd2\xb0\x21\xc8\x46\x08\x00\x94\x0f\x7e\x4b\x59\xfa\xea\xb8\ \x4a\x37\x6c\x53\x6a\x68\x58\xb0\x29\x62\x94\x05\x4e\xdb\xe2\x22\ \x6f\xaf\x13\x4a\xdd\x52\xc8\x0a\x8e\x05\x83\x17\x75\xc6\x59\xc5\ \x7a\xa9\x27\xd2\x31\xd6\xd3\x24\xaf\x99\x50\x62\x10\x54\xc7\xdf\ \xb3\xb1\xba\x92\x83\x8e\x55\x54\xac\xdf\xa3\x36\xc1\xcc\xc9\xf0\ \xf9\x87\xc9\x1b\xcb\x89\xcb\x47\x63\xc6\x6f\x92\x20\xe6\xe7\x63\ \x36\x5b\x9c\x66\x68\x5c\x89\x01\xb5\x31\x3e\x6e\xfb\x8f\xfa\x90\ \x5a\x82\xfa\x3f\xc2\xc3\x4c\x62\x4d\xac\x7c\x3e\xaf\xe9\xe7\x7f\ \x04\x43\x25\xf9\x9d\x0a\x85\xc9\x08\x4c\x0c\x21\x71\xee\x71\x6c\ \x1e\x4f\x3c\x9e\x21\xef\x9e\xc5\x8f\x6d\x28\x6d\xbd\xf4\xb4\x16\ \x00\xd5\x4d\xdd\x40\x9a\x3d\x57\x50\x69\xf2\x02\xf7\x57\xed\x33\ \x1e\xd4\x74\x49\x9d\x99\xb7\x78\xe1\x04\xe8\x5e\x36\xf7\xd9\x6e\ \xd1\xf9\x67\x9f\xd3\xf4\xb1\x1f\xab\xb4\x7c\x46\xd1\x01\x3f\x16\ \x66\xc2\xd5\x8c\x22\xe9\xb8\x42\xa9\xa8\x62\x03\x41\xf5\x6d\x75\ \xd4\xb3\xc9\x53\xcf\x96\x06\x02\x90\x4d\xd6\x1c\xd7\x47\x04\xf3\ \xb5\x36\x5c\xa0\x9c\x38\x1d\x67\xe1\x0a\x9d\x4c\xf7\xa5\x97\x5e\ \x3a\x72\x0d\x08\x3e\xf9\xe4\x93\x87\x79\x97\x56\x32\x37\x38\x94\ \x9d\x71\x04\x10\xc5\x0a\x8c\x09\x35\x25\xea\x7b\x29\x77\xf8\xa8\ \xe6\xc7\x0e\x61\xde\x79\x62\xef\x84\x8d\xd9\x96\xbc\x9a\x05\xb7\ \xfc\xe9\x63\xc4\xe6\x26\xd7\x3d\xcb\x7c\xc7\x05\x3a\x84\x50\xb8\ \x86\x20\xb0\x1e\x98\xb7\x66\xcf\x09\xc2\x24\xf5\xc1\xf4\x5e\xcd\ \xef\x7f\xc2\x6a\xd0\xab\x59\x90\x45\x08\x15\x18\x68\xd0\xf1\x09\ \x71\xef\x12\xe7\x2f\xe2\xe7\x30\x97\x48\x51\x7c\xf5\x70\x2d\x4e\ \xe1\x14\xa2\x90\xf1\x81\xfc\xed\x30\x58\x43\xf7\x35\xbf\x22\x4e\ \x00\x1c\x8b\xc9\x0b\x85\x08\xbb\xf4\x12\x4c\x94\x81\x30\xff\x69\ \xb6\x1b\x9d\xfc\x49\x10\xf4\xf8\x5c\x64\x33\xc3\xab\xd4\x04\xdb\ \x48\x15\x49\x66\x32\x4a\x50\xe2\xe6\xe9\xa8\xd8\x5c\xda\xe5\xe1\ \x0b\x35\xcd\x3d\xff\x14\xdd\x9d\x21\xc5\xfa\xfa\x55\x5d\x30\x66\ \x69\xea\xfd\x10\xe0\x35\xa7\x3a\x55\x57\x2d\x17\x31\xcc\xb6\xa3\ \x83\xc9\x0f\x60\x1e\x57\x41\x8a\x9c\x73\xad\xc9\xe3\x9b\x30\x58\ \x80\xa1\x79\x79\x95\x33\xb8\xd8\x51\xac\x62\x99\xe2\x86\x34\x35\ \xe0\xb4\xdc\x47\x02\xe9\x23\x58\x98\x41\xf5\x79\x70\x61\x49\xa1\ \xae\x1e\x1a\x17\x71\x14\x94\xa0\x59\x02\x40\xc3\xa4\x70\x51\xb1\ \x36\x61\x31\x6e\x1d\xed\x57\xc0\x8c\x0a\xd1\x05\x73\xf1\x27\x53\ \xaa\x74\xa5\x71\xdb\xf5\xca\xb6\x37\x66\xcd\xcf\xcf\x1f\x94\x94\ \xfd\xc9\x96\x58\x13\x9a\xc7\x0b\x9e\x05\x21\xad\x99\xf8\x31\x9d\ \xf4\x9a\x35\x0a\xa6\x52\xed\xa6\xa4\xd0\x9c\xa3\xfc\x49\x1a\x25\ \xfb\x9e\x46\x71\x86\x81\x32\x42\xb8\x00\xd3\x33\xaa\x2d\x2f\x81\ \x65\xa1\xab\xc2\x97\x07\xb5\xcd\x1f\x42\xe3\x6a\xa0\x41\x97\x89\ \x2e\xaa\x3a\xbf\x17\xac\xd8\x8b\xc6\x8f\x32\x4f\x56\x45\x84\x0b\ \xd6\xd8\x8c\xce\x41\x60\xe4\x06\x3c\x5f\x67\xfe\xf3\xcc\x3b\x4b\ \x68\x0e\xc2\x78\x44\x0e\xc2\xf6\x05\xad\x10\xf0\xeb\x2e\xe6\x8b\ \xf3\xbd\xdd\xaa\xc9\xe1\xf7\x65\x42\x78\x1d\xed\x93\x70\x05\x33\ \x19\xa5\xae\xdf\x2a\x5f\x3c\x66\x9b\x21\xa6\xd7\xc1\xde\x81\xc7\ \x84\x4a\xff\xa1\x9e\x60\xe9\x3b\xdf\xf9\xce\xf7\x30\x91\xaa\xc1\ \x02\x87\x50\x18\xe7\x0d\x4c\x64\x90\xb4\x36\x16\xb5\x21\x05\xb9\ \x80\xf2\xd2\xf2\xe1\x63\x5a\x3a\x31\x66\x72\x76\xa8\x26\x37\x3f\ \xa7\xe5\xb1\x7d\x2a\x4d\x2f\xb0\xc0\xa0\x01\x1c\x8b\x1d\x3c\x70\ \xd9\xfc\x1b\x90\xcf\xef\xa2\x4d\x63\xf6\x27\x08\xaf\x17\x44\xc5\ \xc5\xb1\xc9\x14\x49\x6d\x67\xc8\xeb\x0b\x71\xc1\x91\x15\x58\x85\ \x0c\xaf\x1b\x8c\x49\xf6\x0d\x12\x96\xbb\x15\x80\xe9\x96\x19\xc9\ \xb6\xcd\x85\xf6\x1d\x5f\x08\x0e\x18\x9b\x30\x8e\xe9\x8b\x42\xc8\ \x57\xc0\xfc\x3d\x08\xe4\x5f\x0e\xfa\xb4\xfa\xce\x3b\x55\x67\x1d\ \xed\x0d\x1d\xcb\xff\xf3\xab\x5f\x7d\x54\x92\x7b\x4d\x4f\x50\x2c\ \x85\xed\x25\x63\x48\xe8\x50\x3c\x1e\xbf\x85\x92\x51\x41\xd0\x33\ \x45\x27\x25\x4b\x77\x55\x24\x27\xcc\x62\x2b\xad\xdc\xb9\x3a\xfe\ \xba\x4f\x09\x5c\x21\x94\x4e\x09\x75\x63\xa2\x05\x15\xcf\x03\x82\ \xe5\x59\xe5\xa7\xd1\x98\x79\x3e\x81\x76\x22\x61\xae\xdb\x82\x04\ \x90\x42\x33\x69\xa8\x2f\x20\xc0\xc5\x76\x8b\xb9\x04\xb3\x2e\x89\ \x48\x85\x50\x9b\x27\xf5\xbe\x84\x15\xd4\x5a\xcf\xf8\x4d\x76\x88\ \x40\x8a\x97\x6b\x14\xdc\xa3\x6c\xdd\x11\x0d\xb5\xdc\xac\x0e\x55\ \xb8\x37\x8f\xd5\x2c\x04\x14\xc8\x13\x26\x11\x8c\x47\xdc\x0f\x6c\ \xda\xa0\x24\x2f\x6f\xe7\x0a\x79\xdb\x0d\x62\xd3\xc4\xe3\xf9\x62\ \x71\xca\x4a\xf2\x5a\x01\xd8\x93\xb3\x7b\xf7\xee\x7d\x84\xf6\xb8\ \xd9\xdc\xe8\x04\x89\x02\x49\x04\x50\xe4\xbd\xa0\x72\x79\x28\x67\ \xb5\x5a\x2b\x38\xca\x9d\x9e\xd7\x12\xe7\xfb\xf7\xec\x84\x11\x59\ \x8d\x37\x1d\x17\x01\xd5\x29\x54\xa6\x68\x5e\x56\x6c\x1c\x0f\x63\ \xce\x84\x22\x50\x1b\xad\x24\x73\x8a\x0f\x61\x5d\x32\x61\xcf\xb1\ \x59\x9c\xc7\xc2\xb2\x2f\x5f\xd2\xfc\xcb\x0d\x30\xc6\xa7\x64\x66\ \xb0\x53\x9e\xd8\x66\x4b\xad\x14\xc6\x5d\x7c\x8a\x90\x03\x78\x80\ \x26\x21\x02\xa1\x76\xf3\xf7\x10\x08\x2e\xa8\xb2\xd1\x08\xb8\x32\ \x8b\xf6\x97\x30\xff\x32\x18\x80\xdb\x9e\x25\xc3\xdc\xf0\xcf\xde\ \xad\xba\xcf\xe9\xec\x55\x74\xbf\xff\xdd\xef\x7e\x05\x26\x4b\xe2\ \x73\x8d\x00\x3a\x49\xd2\xfe\xfd\xfb\x1f\xc7\x0a\x5e\xd9\xbe\x7d\ \xfb\x36\xfa\x67\x0a\x00\x84\x5d\xbb\x76\x69\x79\x0e\xf3\x86\xa9\ \x26\xa4\x86\x30\x59\x72\x83\x53\xa7\xd4\xbd\x69\x2d\x0c\x46\xf0\ \xd7\x12\x3d\xfe\x57\xb4\x34\x0e\x63\x2d\x03\xb3\xa6\x7f\xfe\x99\ \xe7\x8c\x55\xab\x7b\xa3\xc7\xcb\x4d\x97\x4c\x2e\x88\xb5\xa0\x79\ \x00\x8b\x66\x08\x02\x80\xc9\x2c\xe9\x33\x9a\xf3\xc8\x00\x27\x5e\ \xdc\x7f\xe5\x0e\x26\xee\x97\x46\x76\x01\x8e\xfd\x54\x99\x7d\x30\ \x69\xe6\x75\x0a\x08\x1d\xa0\x2d\x92\x3c\x65\x6b\xf2\x2f\x32\xd7\ \x14\x82\xce\x05\x01\xbf\xa8\xf2\x7d\xdd\x8a\xdc\xb2\x5b\x29\xc0\ \x6f\x1e\xed\x9b\x8d\x1d\x67\x4e\x9f\x7e\xe2\x99\xa7\x9e\x3a\x20\ \x56\xff\x53\xdf\x0e\x77\xb2\x42\x5e\x8b\xf9\xb6\x6c\xd9\xf2\x16\ \x3a\xc5\x8e\x49\x8a\x82\x50\x9d\xee\x6a\x93\x56\xb7\x8c\x00\x6c\ \xda\xea\x90\xa2\xd6\xd0\x68\x17\x3e\x38\x21\x77\xf9\x15\xb0\xa0\ \x2c\x8c\x11\x80\x74\xac\x69\x63\xe1\x24\x55\x52\x7a\xb5\xa7\xde\ \x55\xae\x7a\x77\x05\x40\x72\x98\x08\xf9\xb0\x0e\x23\x00\x21\x08\ \xfc\xff\xac\xa7\xec\xb4\x0f\x30\x75\xae\x69\x3a\xe1\x5d\x60\x90\ \xa3\x44\xcc\x53\xa8\xa7\xfd\x72\xd4\xb6\xa1\x58\xc3\x32\xda\x9f\ \x02\x57\x26\xb9\xe7\x22\x20\x59\x00\x24\xfb\x07\x75\xaa\x2f\xa5\ \x1d\x0f\xfe\xa1\x6a\x91\x90\x49\x7a\x44\x92\x57\xfb\xc6\x23\x8f\ \x3c\x38\x7e\xf6\xec\x31\x33\xe5\xcf\x7a\x3d\xee\xb2\x0d\x75\x86\ \x77\x69\xdb\xd9\x6a\xb2\x26\x12\x8d\xb2\x80\x98\xc2\x50\x69\x6e\ \x16\x90\xa1\x2f\x8f\xd9\xa2\x3d\x00\xad\x81\xc4\x27\x15\x0c\x9d\ \xc5\xa5\x2b\x80\x95\x09\x18\xd4\x06\xa4\xa6\x80\x34\xcd\x89\xa6\ \xba\x60\xbe\x67\x65\x83\x66\x87\x0f\x40\x0d\x60\xbe\x41\x9b\x5b\ \xd8\xac\xa6\x2d\x80\xfa\x82\x47\xb2\xe3\x53\x69\xde\x0a\xa5\xa3\ \xfd\x4e\x25\x6b\x29\xc1\x5c\xb1\x3e\xb5\xdc\xad\xc1\x89\x3c\x37\ \xce\x50\xfa\xe2\xd1\xc1\x69\x7c\x3f\x6b\x36\x47\xf4\xea\x04\x09\ \xd2\xba\x7f\xf7\x51\x45\x79\xf9\xba\x48\x64\x9a\x9b\x9b\x63\x2f\ \xd3\xfe\xaf\xfd\xcd\xc3\x0f\x3f\x64\xf2\xb9\x9f\x77\x83\x44\x89\ \x0d\x88\xb3\xec\xb8\x7a\x07\x1b\x0c\xc2\x30\x6f\x22\x01\x42\x88\ \xab\x44\xf9\xe9\x00\x88\x04\x5d\x5b\x76\xc6\xd3\x15\x16\xd6\x80\ \x29\x07\x40\x74\x38\x86\xf1\x98\xc7\xf9\xa6\x52\x7d\x9e\xd2\xc3\ \x4d\xa5\xb7\xf8\x31\x5f\x7c\x33\x12\x82\xa2\x58\x40\xbc\x85\xe0\ \x4d\x59\x60\x13\x0c\xb9\xcb\x9e\x0a\x0b\x3e\xac\x47\xd7\x7e\x9a\ \xcc\xdb\x83\x10\x98\xd3\x66\x83\x26\xdd\x5d\xa0\xc4\x9d\x26\xde\ \xcf\x60\x55\xb9\x30\x80\x99\xd1\x59\xf2\xfd\xf0\xbb\xde\xae\x91\ \xb7\xbd\x55\xd9\x72\xc9\x68\xde\x00\xdf\xe4\x9f\xfd\xf1\x1f\x7f\ \x14\x0c\xb8\xe4\x32\xd3\xcf\x2b\x80\x06\x7e\x33\x07\x72\x3a\xec\ \xc8\xbc\xdd\xb8\x42\x10\x21\x18\x30\x0b\x43\x65\xfa\x73\xbe\x4a\ \x99\xa2\xa4\xa6\x44\x0f\x9d\xa3\x5e\x13\x8d\xa0\xa0\x6c\x46\x16\ \xee\xf6\x51\x2c\xf9\x14\x1d\xf6\xa3\x75\x3f\x11\xc1\x68\x3e\x0c\ \xf3\x09\xf0\x20\x45\x0c\xa7\x34\x05\xc5\x65\x30\xc0\xad\xdb\xf6\ \x99\x93\x6d\x08\x78\xa4\xd1\x69\x31\xe4\xca\x8f\x2d\x61\xa3\xcc\ \x99\x49\xca\xbe\x2d\xf2\x2d\xa2\xf1\x59\xfc\x7d\x0e\xca\x86\xb9\ \x9e\xd6\x85\x44\x46\xb9\x9b\x76\x6b\xcb\x07\xff\x40\x45\x22\xce\ \x2c\x9a\x27\xb3\x73\xbf\xfd\xcd\xbf\x7d\x60\xec\xd0\xa1\xa7\x8b\ \x92\xfb\x8b\x6e\x92\x32\xfb\xf4\xcf\xd0\x2e\x5f\xcb\x0b\xc5\x8d\ \xc6\x15\x82\x26\xb4\x25\x13\xb6\xf8\xa9\xd0\xc5\x4d\xc6\x4b\x8a\ \x67\xaa\x14\x44\x4d\x2b\x00\x27\xe0\x20\x04\x53\x81\xf9\x18\x61\ \x3a\x1c\xe0\xd8\x6a\x1d\x4a\xf2\x3d\x0d\xf3\x90\x2f\x81\x2a\x5a\ \x4d\x10\xe2\x9a\xb5\x82\x00\x56\x13\x2c\x21\x04\x62\x77\x35\x27\ \xce\x31\x9f\x98\xcb\x41\xd3\xe0\x45\x17\x00\x98\x89\xa0\xf1\x3a\ \xf9\xfd\x42\x58\x21\x28\x98\x37\xf9\x46\x5a\xe7\x48\x17\x67\xe8\ \x18\xed\x78\xe0\xe3\xaa\x04\xfc\x2d\xe6\xd9\xd4\xf1\xdc\xd3\xcf\ \xfc\xf9\xb7\xbe\xf6\x57\x7f\xce\x74\xc5\x7f\xcc\x2e\xb1\x26\x54\ \x38\x76\xec\xd8\x89\x15\x2b\x56\xec\x21\x22\x0c\x21\x04\x6b\x05\ \x81\x54\xca\x36\x29\x6b\xe5\x9c\x52\xdd\xe6\x5d\x5e\xcd\x34\x25\ \x21\x41\x7e\xcc\xd1\x6f\xb2\x33\x98\x07\x94\xc2\x31\x4c\x3e\xc1\ \xf7\x14\xe7\x93\x5c\x8f\x73\x53\xa8\x95\x83\xd9\x1e\xa3\x6b\xdd\ \xc9\x71\xc0\x93\x18\x7e\x5e\x47\x10\x29\x1f\x58\x40\x37\x0a\x0a\ \xd3\x0c\x49\x67\x82\x1a\xec\x0e\x28\x19\x20\x45\x07\xe8\x42\xf8\ \x7b\xa0\x4c\xc7\x38\xd8\xa3\x13\xfe\x08\x9a\xbf\x49\x3b\x3e\xfe\ \x31\x55\x10\xfa\x0c\xcc\xa3\x38\xb3\x9f\xe9\xd1\xbf\xfc\x93\x2f\ \x7c\xb2\x5b\x9a\x5b\xfe\x25\xf6\x09\x7a\x68\x69\xe1\xf8\xf1\xe3\ \x63\xbc\x36\xbf\x0d\x3c\xe8\x09\x1b\x50\x8c\xc7\xa1\x24\x05\xd3\ \xb0\xf2\x4b\xa0\x30\xd5\xa1\xdf\xd6\xf6\x08\x41\x62\x0c\x30\xfa\ \xa1\x90\x80\x3e\x04\x84\x20\xcc\xc8\x79\x35\xfc\x26\x77\x87\xcc\ \x66\xa7\x06\x63\x83\xb1\x2e\x51\x00\xc1\x36\xd6\xe4\x28\xe9\x49\ \x5d\x34\x63\xbb\x32\x01\xf5\x76\xc3\x3c\x05\x4f\x97\x2f\xac\x70\ \x93\x88\x54\x04\x43\xdc\x84\xaa\x80\xcd\x8b\x3c\x1f\x7d\xd7\xbb\ \xb4\xf9\x5f\xfd\x4b\x15\xb1\x94\xe9\x99\x19\xcb\xfc\xcb\x87\x0f\ \xbf\xf0\x97\x9f\xff\xc2\xbf\x49\x36\xea\x13\xe7\xe0\xe1\x97\xdd\ \x29\x4a\x16\xeb\xce\x8c\x8f\x8f\x1f\x23\x2a\x98\x04\xa9\x27\x1c\ \x89\xd8\x4c\xaf\x19\x89\x53\xa7\xaf\x22\xcb\x4a\xab\x9c\xaf\x90\ \x81\xd5\x2d\x53\x0c\xb6\x2a\x73\xaa\x50\x05\x43\x2e\x0b\xe0\x84\ \xd9\xa2\x2b\x15\xb0\x96\x62\x95\xe3\x0a\x54\x6b\x51\xc1\x05\xd8\ \x1a\x8c\xb8\x50\x09\xcc\x00\xe9\xa2\x50\x02\x9c\x48\xf9\xe8\x4d\ \x40\xa1\x26\xd6\x57\x8f\x23\xdb\x8c\x26\x7c\x51\x1d\x66\x0d\x9b\ \x1f\x7c\x50\x43\x77\xdd\xa1\x2c\x51\x69\x6a\x7a\xda\x00\x1e\xbb\ \x59\x0e\xbf\xf8\xb5\xbf\xf8\xef\xf7\x47\xf2\xd9\xf1\xb3\xac\xfd\ \x57\xb9\x59\x3a\x82\x05\xdc\xc4\xcf\x61\xfe\x94\x24\x69\x17\xdb\ \x68\x44\xe5\x68\x37\x48\x85\xca\x00\x62\x7e\x5e\xc5\xf1\x17\x15\ \x29\x8f\x29\x1d\x98\x57\xa8\x51\x6d\xed\x0a\x35\x8d\x55\xfe\xf9\ \x9a\x10\xff\x1c\x4b\x9d\xfd\x4e\xed\x37\xc4\xed\x1e\x23\x9e\xd4\ \x29\x67\xa1\x20\xc2\x0c\xa2\x6d\x46\x2f\x2c\x4c\x4e\x34\xc1\x34\ \x56\xa6\x17\x71\xd7\x5d\xda\xf8\x9e\x7b\xd5\xc0\x12\x17\xb3\xcb\ \x76\x57\x3a\x95\xac\x8e\x1c\x3c\xf4\xf8\x5f\x3f\xf4\x95\x8f\x77\ \x57\x4a\xa7\x8f\x4b\xee\x6b\xb1\x5d\x3e\x44\xc7\x68\x2b\x7b\x08\ \x3f\xc5\x6f\x05\x7e\x97\x5c\xc1\x61\x03\x92\x22\x21\x80\x09\x33\ \x8e\x19\x7f\xa6\xa7\x57\x3e\x7d\x08\x3f\x3d\xa5\x1e\x65\x11\x48\ \x49\x81\x6a\xc3\xee\x23\xf0\xd7\x01\x4b\x5b\x11\x43\xcd\x76\xba\ \x6b\x81\xc3\x69\x63\x82\x9f\xf3\x86\x60\xda\xe4\xfa\x68\xde\xa3\ \x08\xba\x58\x71\x75\xae\xe1\xd1\x97\xdc\xa3\x4d\xec\x47\x0e\xb2\ \x1b\x2d\x47\x42\xb6\x40\x92\xc3\xfe\x3f\xa3\xf9\xc6\x81\x7d\xfb\ \xfe\xc7\xf7\xfe\xfa\x6f\xfe\xeb\x48\xd3\xbb\x78\x04\x91\xbe\x96\ \x3f\x98\x08\x40\xc3\x3b\x77\xee\xfc\x83\x37\xbd\xe9\x4d\x0f\x12\ \x26\x53\xec\x20\x17\x20\xa9\xb0\xc9\xfd\x59\x68\xdc\x41\x61\xc5\ \x9c\x0a\xaf\x9e\x94\x26\xc7\x15\x9a\xbf\xa4\x1e\x9a\x1b\x09\xf2\ \xf6\x40\x89\xd4\xb5\x4a\xee\x6e\x84\xc0\x3f\xf1\x8c\x7c\x50\x20\ \x88\x79\x87\x60\x38\xa2\x1a\xe3\x54\xa9\xaa\x59\xee\xa9\x62\x69\ \x03\x6f\x78\x83\x46\xd8\x7d\xee\x74\xa5\xf1\xa0\xaa\x96\xb2\x59\ \x9b\xe1\x4d\x63\xf6\x67\xcf\x9c\x99\x7b\xe6\xc9\x1f\xfc\xa7\xa3\ \xcf\x3d\xff\xcd\x95\xd4\x73\x07\x25\xef\xf5\xf8\xc9\x8c\x03\xa5\ \xf9\xdc\x7a\xc7\x1d\x77\x7c\x82\xd7\xcd\x6f\xc6\x25\x7c\x84\x4b\ \xc5\x63\x31\xbb\x83\x3b\x2c\x29\xee\x0f\x28\xe6\x43\xb3\xe4\xe3\ \x45\x4c\xb4\x3a\x35\xa9\xe6\xec\x8c\x7c\x30\xa0\x82\x79\x77\x50\ \xb7\x55\x5e\xc3\x54\x85\xe1\x88\x5c\x00\xd6\x4b\x53\xe3\x0f\xf4\ \xab\x7f\xcb\x56\xf5\x6e\xdd\x22\x1f\x6e\x46\xd9\xa0\x3c\x6e\x96\ \xe3\x99\x2c\xcf\xd2\xd4\x10\xd9\xaa\xcb\xa6\xcd\xbf\xfb\xc1\xf7\ \x1f\xfd\x6f\xde\xe2\xe2\xd1\xf5\xf2\x2a\x3f\x92\x9a\xaf\xf7\x8f\ \xa6\x82\xd0\x8a\x0d\x1b\x36\xdc\x73\xe3\x8d\x37\xde\xbf\x7e\xfd\ \xfa\x1b\x00\x4a\xb3\xc9\xda\x6e\x47\x09\xe3\x1a\x21\x63\x15\x50\ \x14\x0d\x47\x8c\x60\x10\x4a\xc0\x74\x6b\x3b\x11\x83\x63\x87\xeb\ \xe2\x9a\x82\x41\x46\xbf\x5c\x47\xb6\x86\x2f\x03\x6e\x14\x26\x2a\ \x96\x4a\xc8\xab\xd0\xc9\xeb\xbd\xd3\xe3\xe3\x2f\x1c\xdc\xf7\xe2\ \x97\xce\x1d\x1d\x7b\x22\xd3\x6c\x2c\x8d\x4b\x8d\x5f\xe7\xcf\xe6\ \x1c\x28\x02\x0d\xaf\x5b\xbb\xf6\x2d\x3b\x76\xee\xfc\x17\xb8\xc5\ \x6e\x04\x11\xc2\x42\xac\x20\x00\x4f\x11\x3d\x14\x0c\xc0\x3c\xcc\ \xf2\xfb\x20\x2c\x3f\x00\x01\x78\x68\x9f\xff\xd9\xa4\xa8\xe1\x79\ \x96\xea\x00\x62\x0d\xe6\xcb\x30\x6f\x18\xe7\x17\xa5\x26\xa7\x2f\ \x4f\x9c\x3f\xff\xdc\xe1\xfd\x07\xbe\x7a\xe1\xd4\xf8\xd3\x51\xcf\ \x9d\x0f\x49\xb5\x73\xbf\x41\x3f\x9c\x74\xa0\x30\xec\xf4\x26\x62\ \xb1\x2d\xdb\x77\xee\x7c\xc7\xc8\xe8\xe8\xef\x80\x0f\x1b\x32\xec\ \xd4\x64\x07\xea\xdf\x0b\x02\x4d\x07\x10\x46\xe7\x5d\x9d\xda\xbb\ \x37\x08\xb7\xb6\x75\x45\x35\x6a\x4b\xd8\xa5\xc5\xc5\xc2\xfc\xdc\ \xdc\x31\x36\x6b\x3e\x79\xe4\xc5\x17\xff\x4f\xad\x54\x79\x35\xe8\ \xd5\x97\x03\xa6\x60\x93\x9a\xbf\xa9\x3f\x9d\x75\xd4\x2a\x0d\xa2\ \xb0\xd7\x8d\x81\x0f\xaf\xdd\xb0\xfe\xc6\x15\xc3\xc3\xd7\x03\x94\ \xab\x12\xc9\xd4\xca\x70\x24\x9c\xa6\xf1\x8a\x57\x04\xc3\xdc\x6c\ \x18\xaf\xd0\xb2\x2a\xc1\xfc\x32\x6d\xab\x0b\xec\x4e\x3f\x37\x39\ \x31\x71\xf8\xec\xa9\xf1\x83\x5c\x9f\xa6\xfa\xcb\x8a\x3e\xd1\xb2\ \xe4\xfd\x36\xfe\x78\x9a\xba\x0f\xb7\x97\xc8\xf2\x15\x91\x15\x8c\ \xc3\xe8\x84\x9a\x9c\xc7\xfc\x3d\x47\xb8\x3d\x90\xc8\xf5\x32\x9b\ \x54\xcb\xa0\x80\xcd\x08\x0c\xd7\xaf\xf5\x8f\xa8\x9d\xdf\xb0\x5f\ \xad\x37\xf5\x3a\x7f\xfe\x1f\x5f\xbc\xdd\xe6\x1a\x53\x0c\xc2\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x13\x09\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\ \x1b\xaf\x01\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xd7\x09\x17\x17\x15\x19\x49\x86\x70\x41\x00\x00\x12\x96\x49\x44\ \x41\x54\x78\xda\xed\x5b\x09\x74\x5c\xd5\x79\xfe\xee\x7b\xb3\x6b\ \xb4\x5a\xb2\x25\xd9\x96\x64\x63\x6c\x83\x31\x36\xb6\x81\x00\xe1\ \xb0\x34\x14\xc2\xda\x94\x86\x04\xd2\x90\x42\x72\x20\x5d\x20\x14\ \x68\x08\x4b\x48\x09\x87\xda\xad\x73\x52\x52\x02\x24\xad\x7b\x20\ \xe4\xb0\x95\xcd\x40\xb0\x1b\x56\x2f\x80\xb1\x2d\xdb\xd8\xb2\x6c\ \x6c\xd9\xb2\x2c\xc9\x1a\x4b\x1a\x69\xf6\xe5\x6d\xf7\xf6\x7f\x33\ \xef\xf0\xf4\x3a\x9a\x19\x1b\x26\x3d\xc9\x69\x7e\x9d\x4f\xf7\xbd\ \xfb\xee\x9b\x79\xdf\x77\xff\xe5\xbe\x2b\x1b\x7f\xb4\x3f\xda\xff\ \x6f\x63\x38\x0e\x1b\xbb\x05\x75\x52\xed\xf4\x8b\x5d\x33\x97\x5c\ \x06\xb7\xef\x3c\xa1\xa4\x3c\xd0\xb3\xc3\x42\xcd\x0c\x71\x35\x15\ \x12\x4a\x22\xc4\x53\xe3\x21\x91\x8d\x85\x84\xc0\x10\x80\x10\xe1\ \xe8\xd4\x9f\x43\xf9\x83\x16\x40\xfc\xd8\x7f\x95\x68\x5d\x76\x37\ \xe7\x58\xc6\xd3\x51\x99\x08\x42\x70\x01\xe1\x0e\x12\xaa\xc0\x65\ \x3f\x84\xec\x81\x60\x6e\x82\x0b\x90\x5c\x10\x82\x03\xdc\x00\xd7\ \xd2\x02\xba\x32\x2e\x0c\x6d\x48\xe8\x6a\x48\x68\x4a\x48\xe8\xd9\ \x10\x57\xd3\x24\x54\x7c\x48\x68\xd9\x90\x30\x85\x12\x08\x4d\x7f\ \x0c\x99\xdf\x3b\x01\xc4\x03\x9e\x3f\xc7\xf9\xf7\xbf\x88\xe6\x45\ \xcc\x24\x04\xae\x03\x26\x39\x43\x05\x32\x11\x80\xc4\x80\x9a\xcc\ \x43\xcf\x40\x68\x19\xf0\x6c\x82\x90\x02\x57\x92\xe0\xa6\x50\xb2\ \x0f\x5c\x48\x04\x53\x13\x4e\xd0\xc1\x75\x2d\x27\x14\x40\xd7\x0d\ \x03\x24\x0a\x41\x8d\x0a\xae\x87\x08\x43\xc2\xa0\x36\x07\x95\x04\ \x33\xa1\x0c\x09\x6e\x84\x00\x84\x3a\x1e\x47\xf2\xff\x4e\x80\xa7\ \x2e\xee\xc4\x99\xb7\x2c\x85\xb0\xc8\x73\x23\x07\xc7\xb9\x28\xd6\ \xa7\xe7\xa1\x98\xe2\x64\xed\x3e\xd3\x84\x00\x57\x33\xa4\xa3\x42\ \xc8\x82\x73\x0e\x03\x6e\x70\x12\xd6\x50\x32\x39\x01\x0d\x12\x52\ \xcf\xc4\x01\xba\x26\xcc\x1f\x6e\x80\x3c\x89\xa0\x27\x68\x60\x4e\ \x90\x1c\x04\x0f\x01\x3c\xc4\x64\x98\xd8\xd9\x71\x29\xba\xd9\xc5\ \x10\x95\x11\xe0\x85\x6b\x53\x58\x78\x6d\x20\x3f\xf3\x46\x09\x01\ \x9c\x62\x38\xc6\x8b\xdc\x35\x1b\xa2\xc8\x58\xf2\x1e\x40\x00\x14\ \x4e\x90\xdc\x80\xcb\x47\xf0\xe7\x3c\x46\xd7\x75\x18\x9a\x96\xf3\ \x20\x9d\x33\x12\x27\x09\x3d\x35\x06\x75\xa4\x07\x7a\xa2\x0f\xae\ \x00\x03\xf3\xe4\x6f\x37\x14\xf1\x3a\x35\xdf\xe8\x58\x81\x04\xca\ \x98\x0b\x65\x8d\xb9\x72\x0f\x97\x8b\x69\x82\x63\xc6\xb9\x89\x82\ \x63\xc7\x78\x61\x58\x2d\xb7\xfa\x8b\x8c\x35\x21\xc9\xf9\x3e\xcd\ \xf4\x96\xd4\xa7\xe2\x48\x34\xc6\x63\x0b\x95\x0f\x3f\xd9\x0b\xd4\ \xd7\x00\xb3\x2e\x85\xde\x34\x97\x9c\xec\x03\xe8\x43\xab\xc1\xb3\ \x06\xd4\x38\xae\xc8\x8c\x88\x55\xa2\x1b\x5f\x63\x0b\x50\xd2\x24\ \x94\x35\x0e\x88\x89\x04\x78\x01\x81\xa2\xd7\x45\x31\x91\x8a\x7c\ \xd6\xb1\x7e\xb6\x69\x5a\x1a\x48\x1c\x01\x0e\xbf\x0f\xd7\xbe\x35\ \xa8\x5a\xba\x02\x9e\xe9\xcb\x00\x96\x1f\x0a\xce\xbe\xda\xf3\x38\ \x4e\x00\x3e\xaf\x00\x42\x4c\x70\xdd\x22\x33\x69\x79\x44\xd9\x87\ \xe7\xe5\xbd\x80\x50\xfe\xb3\xed\x6b\x79\x11\x0e\xbc\x09\xac\xbd\ \x13\x7a\x66\x16\x52\x43\x02\xe9\x61\x01\x35\x29\x98\xa1\x62\x49\ \x25\x04\x28\x7c\x38\xce\x8b\xcc\x6c\x31\x61\x8e\x91\x38\x2f\x15\ \x5a\x93\x08\x13\x27\xf2\xe9\x31\xe4\xec\x93\xd5\x30\x12\x5e\xa4\ \x8f\x9a\xe4\xf3\xb7\x42\xc0\x5f\x81\x1c\x20\x0a\xc9\xd8\x84\x4a\ \x92\x71\x1e\x97\x0a\x25\x5e\x46\x9c\x42\xf1\x6c\xf2\xf6\x44\x31\ \xdd\x2c\xaf\xd6\x23\xc3\xb2\xcf\x2d\x40\xa1\xdb\x15\x78\x41\xb1\ \xd8\x75\x1e\x17\x0f\x95\xc2\x44\x59\xc6\xc3\xe2\x83\x44\x3e\x8c\ \x02\xe3\x1a\x84\xc5\xbc\x72\x02\x40\x14\xcd\xe8\x36\x81\xe3\x4d\ \x88\x45\xae\x17\x92\x2d\x1c\x1f\x1b\x70\x90\x77\x98\xa1\x43\xa0\ \xd2\x02\x08\x41\x30\x8e\x3d\xa3\x17\x86\x4a\xf9\x24\xc8\x8f\x31\ \x29\xc6\x4b\x90\x27\x13\xa6\x07\x4c\x9c\xb7\x0a\x09\xe0\x24\x5b\ \xbe\xd4\x95\x5f\x03\x94\xff\xac\x42\x0f\x8b\xf5\x03\xa9\x51\x94\ \x34\x43\xb7\x89\x57\x38\x04\x2c\x18\x05\x0f\x57\x9e\x4c\x91\x6b\ \x28\xa8\x26\xc5\x45\x8d\x1d\x2e\x4f\x1e\xc8\x2f\x93\xe1\x14\xa0\ \x12\x65\xd0\x41\xb6\x10\x45\x32\x36\x6c\xa2\xb9\x7e\x10\x98\x75\ \x0e\x6e\x9d\x13\x60\xf7\x4d\x9a\x10\xcb\xcf\xbc\x33\x09\x02\x36\ \x44\x25\x04\x40\xc9\x44\x35\xb9\x10\xb0\x88\xb1\x63\x24\x6e\xc2\ \x3e\xb6\xbf\x27\x6a\xce\xfc\x08\x8e\xd5\x04\xd7\x2d\xe2\x16\x2a\ \xe4\x01\x65\x56\x7a\x0e\x22\xc5\x88\x95\x12\xc3\xea\x73\x0a\x87\ \x58\x5f\x01\xf9\xb2\x66\x38\xca\x60\x25\x05\x28\x1f\xdb\x4e\x21\ \x9c\x64\x0a\x3d\xc2\x26\x6e\x0b\x64\x58\xe0\x40\x9c\xc8\x67\x88\ \xbc\x54\xe4\x7d\xb5\x74\x15\x70\xa0\xd2\x2b\xc1\x82\x38\xb7\x60\ \x93\x13\xff\xdb\x0b\x2c\x62\xc2\xe1\xe6\x36\x59\x82\xe3\x38\x7e\ \x88\xc8\x0f\x03\xb2\x35\x54\x58\xe0\x28\x67\xf6\x3a\xc0\xf6\x82\ \x0a\xaf\x04\x3d\x55\x40\xfd\x09\xf9\xa7\xd1\xd3\x40\x26\x0c\x24\ \x8f\x02\x5a\xd2\x99\xe8\xec\x58\x2e\x14\x88\x39\x12\xa3\x53\xa8\ \x78\x6f\x9e\xbc\x64\x3d\x3d\xb3\x45\xb0\xfd\xba\x74\x15\xb0\xcb\ \x60\xe5\xd6\x01\xb6\x08\xfe\x29\xc0\xdc\x4b\xe1\x34\x91\x17\x61\ \x6c\x2f\x10\xfa\x28\xe7\xbe\x85\xee\x4f\x10\x13\xfa\x84\xc3\xe5\ \xf3\x6d\xe2\x90\x93\xbc\x4d\xd6\xd9\xf2\x12\xcc\xac\x24\x58\xe9\ \x75\x80\x23\xbb\x17\x1a\x03\x82\x2d\x79\xb4\x5f\x98\x17\xe0\xe0\ \x6b\xc0\x48\xa7\x33\x1c\x18\x01\x36\x79\xb3\xb5\xc9\x9b\x33\x7f\ \xd4\x72\xfb\x32\x02\xc0\x1e\x53\x72\x1d\x20\x08\x15\x4d\x82\xb0\ \x50\xce\x6a\x3a\x80\xd3\x6e\x05\xce\xb8\x17\xa8\x9e\x3e\x21\xce\ \xed\x7c\x60\x9f\x5b\xe4\xb3\x16\x79\x09\xd4\x5a\x90\xca\x80\xa1\ \xf8\xcb\x90\xa8\x64\x15\xc0\x24\x19\xdf\x50\xca\xaf\x32\xea\xe7\ \x01\xe7\x2c\x07\x3a\x2e\x73\x84\x84\x0d\x93\xfc\x41\x22\x1f\xb2\ \x49\x95\x03\x2b\x2d\x82\x30\xf4\xca\x57\x01\x22\x6a\x27\xaa\x48\ \x0f\xb0\xee\x6e\x40\xe8\xf9\x73\x6f\x35\x10\x6c\x26\xb2\x27\x02\ \xd3\x96\xd1\x79\x7d\xc1\x76\x22\x4e\xba\x01\xa8\x9b\x03\xec\x5c\ \x09\x18\x9a\x95\x00\x09\x89\x03\x80\x62\x91\x17\x93\x00\x8e\x44\ \x68\x1b\xb7\xa7\xad\x20\x1c\xb8\xe6\x8c\x16\x51\xe9\x32\x88\x89\ \xe5\x4f\x07\xb2\x61\xc2\x30\x30\xba\x1d\xe8\x79\x16\x68\x5c\x04\ \xcc\xfe\x33\xa0\xba\x1d\x0e\x6b\x39\x17\xf0\x90\x58\x9d\x14\x16\ \x9a\x0a\x24\x7b\xec\x99\x17\x25\x92\x9c\x70\x10\x76\x92\x66\x13\ \x20\x9c\x1e\x90\xfb\x55\xb1\x10\x60\x02\xce\x9a\x3f\x59\x19\xb3\ \xb6\xba\x47\xb6\x00\x9b\x7f\x00\x7c\xb2\x8a\xba\xb2\x70\xd8\x94\ \xc5\xc0\x92\xfb\x81\x74\x9f\x49\xbe\x78\xcc\xdb\xfd\xc7\x17\x1a\ \xa6\xd9\x65\x90\x50\xa9\x24\x08\x51\x58\xd7\x6d\xf2\x85\xab\x3e\ \x53\x88\x81\x35\x24\xc4\x1d\x40\x6a\x10\x0e\x6b\x3a\x13\x38\xf5\ \xfb\x05\x64\xcb\x82\x4d\x1a\xff\xce\x7e\xf6\x3b\x5d\x09\x5a\x04\ \xfd\x8d\x40\xfb\x05\x80\xbb\x2a\x17\x6f\x48\x0f\x01\xf1\x83\xc0\ \x78\x17\x60\xa8\x13\x44\xa0\x36\x75\x18\xd8\x4a\x22\x2c\x79\x10\ \xa8\x99\x8b\x4f\x6d\xfe\xdf\x00\xa3\x1f\x00\x87\x9e\x01\x50\x26\ \xfe\x51\xc2\xf5\x25\x47\x9e\xc8\x83\xeb\xf6\xed\xa2\x32\xeb\x00\ \xe7\xcc\xfb\xea\x80\xd6\xb3\x60\xdb\x52\x02\xf2\x2b\xc1\xa1\x77\ \x80\xbe\xd5\x74\x1c\xb1\x17\x3b\x5a\x14\xd8\x7e\x17\x89\xf0\xcf\ \x4e\x11\xce\x7c\x04\x18\x79\xd7\xac\xfd\xc5\xe3\x9f\x17\xf5\x4f\ \x27\x69\xc9\x3e\x17\x10\x16\xf1\x8a\x87\x80\xed\xee\x93\x9a\x3b\ \x08\xb4\x5f\x05\x9c\xf5\x53\xa0\x71\xa9\xf3\xe5\x66\x7c\x2b\xb0\ \xfe\x72\x40\x8b\xd9\xe3\x3d\x0d\xa4\xdd\x4f\xca\xd7\x7c\x66\xb7\ \x36\x8a\x84\x06\x9b\xc4\xa1\x2a\x23\x80\x73\x25\x58\xd2\x3c\xf5\ \xc0\xe2\xfb\x80\xb6\x2b\xf2\x5e\x90\xd8\x07\x28\x47\x80\x54\x0f\ \xb0\xfd\x56\x38\xac\xfd\x5a\xa0\xe1\xb4\xcf\x50\xfb\x4b\xc2\xb1\ \x12\x14\xa2\x62\x02\x70\x0b\x02\x50\x62\x40\x78\x17\x30\xb2\x0d\ \x48\x0e\x4e\xf2\x2d\x0c\x98\xfb\x5d\xa0\xf1\x4c\x20\x3b\x68\x3f\ \x78\xff\x53\x74\xcf\x3b\x13\x86\x51\xe7\x29\xf7\x1d\x67\x22\x2c\ \x71\xcc\x9c\xc4\x05\x2a\x97\x03\xec\xfa\x3f\xbe\x17\xd8\x70\x1b\ \x00\xdd\x0a\x09\xeb\x05\xa9\xe3\x4a\x60\xc6\xc5\xce\xa5\xd9\xc2\ \x1f\x11\xe1\xdf\x02\x91\x4e\xfb\x41\x77\xdf\x05\x5c\xb8\xd5\x1e\ \xd7\x4a\x61\x13\x6c\x03\x92\xfd\xce\xd8\x67\x36\x0a\x63\xbd\x04\ \x80\xcf\xb6\x27\xf8\xe0\x7d\x37\x2d\xdc\xf2\xf6\x4f\xa5\xd2\x55\ \x80\xc0\x55\xe7\x92\x18\x84\x4c\x08\xd8\xfb\x18\xb0\xfd\x87\x80\ \x91\x99\xf0\xc9\x6e\xe0\x0b\xbf\x06\x5c\x2e\x7b\x16\xe3\xdb\x80\ \xd1\x89\x5e\x20\x03\xed\xdf\x2c\x3b\xf3\x4e\x14\xef\x17\xec\x33\ \xe6\x80\xb7\x37\xf7\xae\x7e\x6b\xc3\xbe\x5f\x90\x08\xac\x68\x0e\ \x28\xdc\xf3\x73\x2e\x90\xc6\x3a\x81\x0f\x6f\xb4\xfa\x2c\xab\x9e\ \x0f\xb4\x5d\xe7\x8c\xe3\xfe\x5f\xc2\x61\xd3\xaf\x2e\x41\xba\x4c\ \xdc\xa3\xe0\xdc\x0e\x83\xe3\xc9\x01\xe3\x8a\x9e\xed\xdc\x35\x38\ \x7f\xc7\xee\xc1\x7f\x25\x11\x4a\x6f\x89\x81\x3b\x84\xb0\x77\x6f\ \xf7\x00\x87\x9f\x03\xf6\xac\x84\xc3\xe6\xdd\xe5\x24\x37\xba\x06\ \x30\xd2\xf6\xf5\xda\xc5\x80\x7f\x6a\x01\xe9\xe3\x24\x6e\x0b\x20\ \x3e\x83\x07\x24\x33\x19\x43\x81\xfb\xce\xd7\xdf\xec\xba\xe6\x50\ \xff\xd8\x43\xc5\xdf\x06\x09\x81\x16\xe0\x8c\x1f\x03\x17\x3d\x4f\ \xed\x0a\x20\x38\x33\x4f\x3e\x3d\x80\x9c\xed\xa5\x9a\xaf\xc5\x27\ \x78\xc1\xc9\x40\xcd\x7c\x9b\x94\x20\xf2\xd1\x0f\x9d\x49\x73\xca\ \xd9\x85\xa4\x51\x36\xde\x0b\xc9\x33\x27\x71\x21\xb9\xe5\x63\x12\ \x20\x95\xc9\x1a\x29\xdd\xc8\x8e\x45\x92\xb7\x3c\xbb\x7a\xeb\x3d\ \x6b\x5f\x78\xf0\x9e\xc2\x3f\x8d\xf1\x7c\xe6\x5e\x72\x27\x50\x6f\ \x12\x72\x01\x75\xd4\x9e\xbe\xc2\x76\x7b\x86\xfc\xe2\xe7\xc8\xab\ \x70\xd8\xd4\x8b\x9d\x33\x1b\xdb\x0c\x87\xd5\x2e\x3a\x0e\xa2\x65\ \x44\x80\x05\xfa\xb5\xcb\x77\xfa\x2f\x96\x3f\x70\xeb\xeb\x8f\x3d\ \xfc\xc3\xef\xfc\xec\x27\xf7\x4e\x2f\x5a\x05\x32\x8a\xa2\x27\xd2\ \x19\xff\xf6\x4d\x9b\x5e\x5a\xba\x74\xe9\x6b\xcf\xbc\xbc\xf9\xa1\ \x0f\xff\x7b\xe5\xc8\xd9\x97\xfc\xc3\x2a\x47\x12\xac\x99\x0d\x54\ \xb5\xc0\x61\xee\x1a\xe0\xe4\xef\x01\xdb\xbf\x6f\xf7\x8d\x6e\x00\ \x3a\xbe\x39\xc1\x0b\x4e\x71\xba\x77\x66\x1f\x1c\x56\x75\xc2\xf1\ \x91\x47\x89\xbe\x09\x25\x70\xe3\xa6\x2e\xcf\x86\xa1\xfd\x97\x37\ \xd4\xd7\x5e\x3e\x73\x66\x8b\xf8\xea\xd5\x57\xec\x9a\x36\x6d\xda\ \x7b\x55\x55\x35\xeb\x33\x59\xf5\x83\x7f\x7b\xe4\xe7\xa3\x39\x01\ \x14\x4d\xe3\x14\x06\x7e\x90\x71\xce\xff\x76\x67\x77\xff\xb9\x2f\ \xbd\xb1\xed\x71\xca\x07\xc3\x38\xfc\xa4\x2d\x80\x96\x29\xb2\xf9\ \x71\x0a\x1c\x96\x19\x80\xc3\x7c\xcd\xce\x87\x56\x87\xe0\x30\x6f\ \x4b\x59\x82\xe5\xc9\x3b\x63\x9f\x83\x61\x6a\x9d\xf7\xad\xda\x54\ \xed\x02\x26\xb9\x5a\x87\x47\xa2\x6c\x6c\x3c\xb9\xa8\xb7\x6f\x68\ \x91\x2c\xcb\xb7\xa9\xaa\xca\xe7\xcc\x99\x73\x7b\x4e\x00\x5d\xd7\ \x59\x3a\x9b\x0d\x80\x6c\xc7\x8e\x1d\x83\x0b\x16\x2c\xf8\xbb\x35\ \x6f\xef\x7c\xba\x65\x5a\xed\x73\x27\x9d\x30\x53\x0e\x72\xc3\xda\ \xc1\xe9\x07\xd2\x47\x81\x40\x33\x1c\x96\x3c\x0c\xe7\x02\x5c\x86\ \xc3\x5c\xb5\xce\x35\xbf\x91\x82\xc3\xe4\x2a\x1c\x97\xb1\xc9\xfb\ \x46\xb2\x3e\xbc\x1f\xa9\xc3\xc1\x4c\x2d\x0e\x67\x6b\x30\x1e\x4b\ \x5f\xa4\xeb\x49\xc4\x62\x31\x28\xe4\xe5\x84\x7d\xc4\xb5\x95\x73\ \x5e\x6f\xf9\xe2\x2c\xf3\x17\xb8\x10\x8c\xf2\x40\x10\x96\x75\x77\ \x77\x3f\x63\x18\xc6\xd3\xff\xf9\xf4\xba\xc0\x6b\x91\xb9\x72\x5a\ \x78\x00\x6e\xfd\xe3\xc8\xf5\xb7\xe5\x57\x83\xb0\x2c\x3b\x0a\xec\ \x7c\xc8\x49\xb0\xaa\x03\x0e\xd3\xe3\x70\xee\xef\x7b\x50\x60\xf6\ \xfd\xc7\x65\xe3\x59\x37\x7e\xb5\xb7\x19\xd7\xbf\xbd\x00\xcb\xfb\ \xcf\xc5\x7b\xb1\x99\xd8\xdc\xaf\xe0\xc0\xde\x2e\xd4\x25\xba\x51\ \xa7\xf4\x3f\x5a\x53\x53\x73\xe1\xca\x95\x2b\x67\x90\x00\x4b\x67\ \xcf\x9e\xdd\x23\x49\x12\xac\x6f\x7a\xcb\x05\xb2\x80\xcf\xd3\x94\ \x55\x95\x46\x4c\x30\x12\xe0\x26\x55\x35\x4e\x5e\xfe\xd8\xda\xd3\ \x3c\xb7\x5c\x86\xcb\x9b\xfa\xe0\x33\x5f\x7b\x93\x7d\x24\xf5\x26\ \x60\xee\xd7\xf3\x1a\xf6\x3c\x01\xa8\x24\x82\x3c\xe1\xe1\x5b\x2e\ \x83\xc3\x52\xbd\x36\x79\x46\x90\xeb\xe1\x30\x6d\x1c\x10\xc7\x21\ \x82\x99\xe0\x46\xaa\xf0\xec\xee\xa9\xd8\x12\x9e\x06\x4d\xd7\x10\ \x8f\x8f\x43\x44\xdf\xc3\xe5\x73\x0d\xcc\x59\xe4\xc3\x89\xb3\xda\ \xe0\xad\x6d\xa6\x3c\x7d\x41\x5f\xfb\x95\xf7\x0c\x03\x10\x0f\x3f\ \xfc\x30\x23\x5b\x2c\x44\x2e\x6b\x5f\x4d\x78\xc3\x75\xcf\xdf\x5f\ \x83\xc7\xd6\xee\x6c\x4a\xa6\xd5\x16\xcb\x2d\x38\x01\x07\x0f\x1e\ \x4c\xb7\xb5\xb5\x7d\x25\x1a\x49\x6c\x5d\xf1\xcb\xdf\x36\xc9\x37\ \x7e\x11\x97\x64\x87\xe0\x96\x00\x16\xeb\x07\xdb\xfe\x2f\x80\x79\ \x2c\xe3\xd3\xed\x6c\xc6\xac\x87\xdf\xf9\x03\xe0\xc0\xa3\x66\xc9\ \xcc\x23\xfc\x2e\xc0\x27\xb8\xaf\x6f\x0e\x1c\xa6\x5a\x02\x38\x45\ \x98\xb4\x6f\xf3\x60\x10\xab\xb6\x35\x63\xd3\x61\x2f\xa2\xd1\x08\ \x62\x91\x8f\xf1\xa5\x39\x0a\x7e\x74\x9e\x84\xf3\x17\xce\x04\xab\ \x9b\x87\x3d\x83\x40\x64\xe8\x10\xa2\x07\x3b\x11\xee\xdd\x79\xf0\ \x9d\x70\xf3\x01\x00\x7c\xc5\x8a\x15\xcb\xc8\x1b\x3c\x24\xc0\xeb\ \x00\x72\xa5\xca\xd5\xd8\x58\x23\x65\x15\xad\xdf\xd0\x35\x0e\xa0\ \x86\x90\x26\x68\x04\x31\xbb\xbf\xff\x70\xf4\x84\xa6\xeb\x87\x8e\ \x8c\xac\x59\xf1\xe4\x26\x96\xb9\xfa\x6a\x9c\x6f\xbc\x08\x8f\xac\ \x41\x96\xcd\x4a\x48\xa0\x56\xa6\x96\x59\xe7\x8c\x13\xc2\x5d\x60\ \x11\x82\x9c\xaf\x9c\x29\x5d\xc6\xa1\xb1\x00\x8e\xc4\x3c\x18\x8a\ \x7a\x10\x7a\xf5\xbf\x10\xd3\xd7\x21\xcd\xa6\x23\x65\xd4\x01\x24\ \x6c\x2d\xef\x40\x8d\xcf\xc0\xd4\x6a\x0d\x73\x9b\x32\x58\x36\x23\ \x85\x29\x7e\x1d\xa6\x0d\x27\xdc\xd8\x70\xb0\x1a\x2f\x75\x4d\xc1\ \xc7\x83\x12\xc2\xe1\x30\x22\xe3\xe3\xf8\x8b\xa5\xc0\x03\x37\x07\ \x70\xe2\xbc\x2f\xe4\x12\xb1\x88\x1d\x81\x31\xb4\x1d\x91\x7d\x31\ \xa4\x14\x91\x4f\x37\x6e\xb7\x35\x45\x60\x2d\x2d\x2d\x17\x9b\xf9\ \x80\xec\x79\x58\xe6\xba\xfd\xde\x55\x1c\x5e\xff\x12\xa8\x59\x93\ \xfc\x14\x42\x15\x21\x46\xc8\x10\xf8\x99\xd3\x47\xd7\x6d\x3c\x5c\ \xf7\x60\x6f\xdf\x91\xfb\x1f\x7e\x49\x42\xf4\x4f\xaf\xc2\x32\x75\ \x35\x3c\x2e\x1d\x2e\x57\x9e\xbc\xcb\x12\x81\x13\xdb\x50\xda\x8b\ \xc1\xb8\x17\xfd\x51\x1f\x8e\x24\x83\xd8\x3f\xec\x42\x6f\x48\x43\ \x3a\x93\x45\x36\x9b\x85\xaa\x66\x20\x44\x1a\x3e\x5f\x06\x81\xc0\ \x28\x82\xf2\x18\x3c\x48\x23\x6f\x12\x09\xe4\x42\x46\xf7\xc0\xef\ \xaf\xc7\xec\x66\x2f\x3d\x5a\x35\x14\xe1\x43\x86\xee\x1f\x0a\x8d\ \x20\x3c\x36\x86\xa0\x17\x78\xed\x8e\x7a\x5c\xf2\x27\xe7\x03\xb5\ \x27\x43\x28\x29\x18\x07\xd7\xe6\x04\x10\x06\xc0\x49\x79\xc1\x04\ \x84\xe0\x74\xec\xca\x15\x5f\xf3\xbb\xeb\xeb\xeb\xaf\xef\xeb\xeb\ \xcb\x80\x6e\x77\xbe\x0d\x2a\xf4\xe9\x00\xb7\x50\x47\xf0\x13\xa2\ \x9b\x81\x44\xbb\x0e\x76\x61\x7b\xf4\xb9\xf7\x0e\xd7\xce\x3e\xd4\ \x37\xf0\x97\x4f\xbc\xc9\xb0\xff\xa4\xf3\x35\x79\x74\x4b\xca\x60\ \xae\xa0\xaf\xaa\xc6\xe5\xae\x9e\x82\x81\xa8\x84\x81\x31\x8e\x68\ \x3c\x8d\x54\x2a\x83\x44\x32\x8d\x80\x34\x88\x93\x5a\x75\x5c\xbb\ \x54\xc2\xbc\x19\x40\x5b\xb3\x84\xf6\xd6\x20\x9a\xbf\xf4\x22\x24\ \x33\x51\xba\x48\xf3\x9d\x37\x83\x99\x9b\x26\xba\x02\x28\x49\x30\ \x35\x85\xa7\xd6\xeb\xb8\xf1\x3f\x52\x18\x19\xe1\x85\xc9\x9e\x01\ \xab\x6f\x0b\xe0\xbc\x2b\xbe\x05\xe1\x69\x82\x48\x0e\x43\xdb\xf7\ \x12\x90\x49\x12\x61\x19\x0c\xc8\x91\xe7\xd6\x96\x92\x90\x68\xa6\ \x00\xf6\xca\x2b\xaf\xdc\x10\x08\x04\x66\x47\xa3\xd1\x55\x20\x5e\ \xc5\x0a\x8a\x8b\x10\x24\x34\x10\xbc\x84\x64\x73\x10\x89\xf3\xe7\ \x81\x35\x04\x51\xfb\x9b\xfd\x0d\x77\x29\xdc\xfd\xdd\xd6\xd6\x56\ \xf4\xf7\xf7\xa1\x2a\xe0\x05\x37\x34\x84\x86\x23\x30\x0c\x8e\x69\ \xb5\x14\x87\xf3\x25\x9c\x3b\x8f\xe1\x82\xa5\x4d\x68\x9f\x3d\x8b\ \x2a\x5c\x13\x98\xbf\x01\xcc\x5b\x0b\xe6\x0e\x82\x41\x03\xb8\x92\ \x03\x33\xb2\x10\x6a\x14\x2c\x3d\x08\xa4\x87\x73\xdb\xec\x4c\xcb\ \xe2\xd0\x51\x81\xb3\x97\xd7\x62\x24\x1c\x01\x59\x6e\xc6\x3b\x1a\ \x25\xec\x09\x01\xa7\xb5\x09\x7c\xf0\xb3\x0b\x20\xd1\xeb\x37\x4f\ \x47\xa0\xed\x79\x06\x22\x9b\xb4\x37\xaa\x75\x81\x4d\x07\x38\x14\ \x8d\x83\x09\xae\x27\x1b\x16\x2f\x7c\xba\xa7\x4e\x27\xf2\x5b\x3e\ \xfa\xe8\x23\xcf\xc0\xc0\xc0\xa9\x00\x7a\x8b\xed\x07\xe8\x84\x38\ \x41\xb5\x44\xa8\x1d\x4e\x22\xf0\x7a\x17\xa2\x27\x35\x23\x7c\xde\ \xac\xc8\x9d\xef\xf6\x35\xb3\xde\xde\xde\x9b\xcd\x58\x22\x6f\xb4\ \x66\x85\xe1\x9c\x39\xae\xc8\xbd\x5f\x9f\xe5\x9f\xb5\xe8\x42\x6f\ \xb0\x75\x21\x73\xfb\x82\x48\x0b\x05\xc4\x90\xa0\x10\x31\x82\xaa\ \xd0\x61\x14\x3c\xd9\x9f\xdb\x2c\x91\x94\x10\x24\x3d\x01\x99\x09\ \xc8\x42\x40\x12\x66\xcb\xd0\x3d\x5c\x0d\x0e\x39\x37\xdb\x37\x9e\ \x03\x7c\xeb\x6c\x50\x68\x00\x7f\xfd\x42\x2d\x66\x34\x24\x10\x97\ \xdb\xe0\x4a\x2b\x48\xed\x5a\x0d\x91\xce\xd0\x7d\x66\xfc\x09\x08\ \x9d\x23\x95\x11\x54\x1a\x01\xb3\x27\x65\xf8\x1e\x79\x64\x7d\xba\ \xba\x75\x7a\xfd\xbf\xf7\xf4\xf4\xd4\x11\xf9\x1b\x4c\xf2\xe5\x36\ \x44\xb8\x15\xff\x23\x04\x45\x00\x8d\x29\x15\x53\x3b\xfb\x11\xdb\ \xd6\x2f\xc6\x5b\x1b\x95\xef\x69\x9a\x36\x04\xe0\xdb\x84\x36\x02\ \xbc\x6e\xb9\x77\xd9\x89\x35\xf7\xb6\x5f\xf9\xe8\x75\x35\x53\x5a\ \xda\x54\x25\x2d\xa5\x33\x09\xb7\xa6\xa6\x5d\x4a\x72\x14\xa3\xfd\ \xbd\x99\x70\xff\xc7\x6e\x23\xbe\xbf\x5a\x36\xe2\xbe\x80\x57\x54\ \x79\x3d\xc2\x13\xf0\x08\x29\xe0\x61\xb9\xca\xe2\x22\xb8\x19\xc0\ \x0d\xe0\xdd\x81\x39\x48\x24\xba\x30\xb3\x1e\x5b\x82\x6e\xec\x79\ \x6d\x07\x6a\x3d\x2e\x51\x27\x04\x3f\xef\x70\x18\xfa\xc7\x3d\x11\ \xc9\x88\xbf\x2a\xf3\x78\x04\x01\xb7\xcc\x3c\x4c\x80\x71\x01\x45\ \x15\x62\xdf\x30\xd4\xa3\x09\x36\x7a\x28\xea\xde\xf8\xe1\xa0\xdf\ \x35\xeb\xc4\xa6\xd5\x54\xd1\x9a\xf7\xee\xdd\x7b\x37\x80\x5f\x1d\ \xeb\x8e\x90\xb0\xbc\x60\xdc\x6a\x1b\x09\x0d\x02\x08\x1c\x09\x8f\ \x87\x01\xac\x90\x65\xf9\x9f\x7c\x3e\xdf\xf6\x54\x2a\xb5\xd0\xe3\ \xf5\xbe\xdc\x71\xfa\xd5\xef\xcf\x3e\xe5\xec\xaf\x09\x2e\x06\x0c\ \x43\x53\xe2\x91\x70\xf7\xde\x1d\x1b\x77\x6f\xfc\xcd\x93\xa3\xaa\ \x9a\xf6\x41\x57\x7d\x86\x11\x0c\x08\xdd\x5b\x25\xb8\x56\x45\xa1\ \x13\x64\x42\xaf\x97\x99\xde\xe0\x96\x8c\xda\x6a\x9f\x41\x2d\x0f\ \xc6\xa4\x99\xf3\x3b\xfb\xa4\x2a\x55\x51\xe2\x0b\xe6\xe0\x0e\x83\ \x23\xab\xab\xf0\x65\x54\xe1\xf3\xbb\xb8\xa7\xfb\x88\xb1\x64\xcd\ \x3b\x9d\xcf\xca\x2e\xd6\x00\x78\x83\x0c\xc2\xc7\x60\xb8\x05\x87\ \x94\x48\xc3\x08\xa7\xb8\x72\x24\x2a\xbc\x9a\x67\xda\x17\x3b\xe6\ \xcc\x98\xd1\xd5\xd5\x95\x08\x85\x42\xf7\x00\x78\xf4\xb3\x6c\x89\ \x19\x84\x84\x25\xc2\x14\x0b\x33\x08\x11\xc3\x30\xc6\x1a\x1a\x1a\ \xb6\x64\x32\x99\x85\xfe\x40\x70\xd7\x57\x6e\xbc\x77\x9a\xcb\xed\ \x35\xb3\xed\xfb\x5d\xbb\xf7\xbc\xb1\xa3\x73\x6b\x94\x43\x97\x1a\ \x4f\xfa\x32\xe3\x5c\x65\xa4\x89\xc4\xf5\x2c\x33\xd4\xb4\xa4\x2b\ \x29\x49\x57\x93\x32\x65\x6f\x59\xa3\x96\x67\x53\xee\x31\x2d\xed\ \x19\x1c\x63\x0b\xdd\xcd\xcb\x1e\xdd\xd9\xf5\x3a\x24\x86\x07\x3b\ \xa6\x62\x9b\x00\x1d\x6a\x90\xb8\x4c\xe9\xc4\xa5\xde\x3e\x2c\xd8\ \x5b\x4f\xae\x1f\x9b\x75\xe1\xb2\x59\xcf\xb7\x34\xf8\xd3\xe3\xb1\ \xd4\xb4\xd1\x68\xfa\x84\x70\x4c\x9f\x6f\x48\xfe\x99\x9e\x40\x5d\ \xa3\xab\xc6\x1f\x8c\x86\xc3\xea\xce\xee\xf7\x5e\xd6\x75\x7d\x39\ \x80\x5d\x04\xed\xf3\xfc\xaf\x31\x66\x89\x55\x4b\x98\x6a\x95\xca\ \x24\xd5\xd5\x9b\xa8\x26\xdf\xd6\xdc\xdc\xfc\x0d\x7a\x87\x50\xd2\ \xe9\x74\xe2\x8d\x37\xde\xd8\x3d\xc9\x96\x86\x80\x05\xd3\x98\x10\ \x9c\xc3\xe0\x42\x37\xe8\x48\xe5\x86\x9a\x11\xdb\xb6\xed\xa8\x86\ \xb7\x7a\xed\xde\xbd\x9f\xcc\xeb\xec\xec\xdc\x0e\xe0\x4c\x82\xfe\ \x8f\x00\xd6\x2d\x06\x4b\x8d\x83\x45\x63\x90\x7b\x13\xec\x2c\xba\ \xf3\x79\xb7\xdb\xdd\xec\xf5\x7a\x55\x6a\x99\xcb\xe5\x72\x93\x81\ \xc8\x1a\xf1\x78\x7c\xbf\xa2\x28\x6b\x01\xfc\x5a\x08\xd1\x5d\x40\ \xbc\x9c\x07\x94\x08\x09\x8d\x10\x21\x28\x84\x26\xc2\x14\x55\x55\ \xe3\xe6\xba\x9a\xda\xa6\x97\xc9\xc8\x2b\x38\x00\x97\x53\x00\xe7\ \x9f\x3d\x18\x63\x1c\x8c\x41\xa2\x1f\x78\xdc\x02\xf0\xf1\x77\x37\ \x7c\xd4\xee\xf7\x57\x3d\x91\x88\xc6\xe6\x6d\xdb\xb6\x6d\x14\xc0\ \x35\xd6\x78\x99\x04\x90\xf0\x31\x64\xab\x2a\xd5\xe4\x77\x54\x70\ \x0b\xe5\xa1\xb3\x08\xb5\xd6\x73\x85\x09\xfb\x09\xa6\x70\x7d\xd6\ \x62\x4e\x54\x66\x57\xb8\x30\x24\x92\xd6\x97\x66\x69\xc6\x37\x92\ \x00\x4a\x22\x91\x38\xe3\xc0\x81\x03\xaf\x51\x79\xe4\x74\x2e\x13\ \x49\x13\x92\x55\x21\x72\xe4\xf3\x13\x2f\x0c\xab\x95\x48\x2c\xb1\ \x6e\xdd\xba\x36\xba\x7e\x3d\x2d\x4f\xbf\x73\xe8\xd0\x21\xff\xa6\ \x4d\x9b\xc6\xe9\xda\x5f\x01\xc8\x12\xda\x26\x7c\xa7\x36\xc1\x0b\ \x93\x84\xdd\x84\x4e\x42\x8a\x90\xb1\x26\x45\x2f\x47\xba\x74\x08\ \x1c\xff\x7d\x32\x21\xe0\xf1\x78\xbe\x4d\x1e\xb0\x9c\xc2\x60\xe5\ \xa9\xa7\x9e\xba\x9e\x92\xa3\x9b\x5c\x93\x51\x82\xe4\xe4\x9a\x3a\ \x09\xa2\x72\xce\x0d\x1a\x23\x28\x5f\xc8\xe3\xe3\xe3\x33\xfc\x7e\ \xff\x29\x34\xe6\x22\x6a\x97\x51\x82\x62\x94\xa1\x0d\xea\xff\x10\ \xc0\x2a\xc2\x51\x8b\x50\xc2\x2a\xc9\xb1\x1c\x51\x27\x41\x6e\x41\ \xe0\x73\x1a\xab\xc0\xfd\x26\xae\x63\x8c\x3d\x4c\xa4\x6a\xab\xaa\ \xaa\x86\x89\x58\x8a\xda\x0c\x09\x20\x3c\x79\xf3\xd1\xf5\x06\x42\ \x8d\x39\xfb\xe4\x39\x88\x44\x22\xc6\xd0\xd0\x50\x2f\x79\xc2\x06\ \x6b\x69\x3a\x60\x11\x4d\x12\xd2\x96\x08\x9a\x4d\xf6\x77\x63\x0c\ \x95\xb3\x2a\xc2\x97\x09\xa7\x13\xda\x2c\xc2\x75\x04\x37\xe7\x5c\ \xb2\x5e\x41\x23\x84\x83\x84\x6e\xc2\xfb\x84\x7e\x6b\xa6\x8d\x72\ \x7f\xd6\xfb\x03\x10\xa0\xf0\xf3\x1c\xff\x0a\xc0\xf9\x17\x56\x81\ \xdf\x13\xfb\x1f\x84\xaf\xe2\x02\x22\xe6\xe9\x93\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x0b\ \x01\xad\xab\x47\ \x00\x64\ \x00\x69\x00\x67\x00\x69\x00\x6b\x00\x61\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1a\ \x08\xdd\xe1\xa7\ \x00\x61\ \x00\x63\x00\x63\x00\x65\x00\x73\x00\x73\x00\x6f\x00\x72\x00\x69\x00\x65\x00\x73\x00\x2d\x00\x64\x00\x69\x00\x63\x00\x74\x00\x69\ \x00\x6f\x00\x6e\x00\x61\x00\x72\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0e\x95\x57\x87\ \x00\x6b\ \x00\x33\x00\x62\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0b\x34\x2d\xe7\ \x00\x61\ \x00\x6b\x00\x72\x00\x65\x00\x67\x00\x61\x00\x74\x00\x6f\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x0a\ \x00\x00\x00\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x42\x42\ \x00\x00\x00\x56\x00\x00\x00\x00\x00\x01\x00\x00\x22\x22\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/animation/appchooser/digikam.png0000644000076500000240000000640612536324426024034 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î< ƒIDATxÚí›[hUÙÇ×IN¢&&ã51^ÆT­—J•)8Ä"¶ÌsŸ*ôa^|Ä }(øTJ¤OöQ RNA”úàýÖª^Æû5Qc.FÍÅ~¿ ¿aÏ1’ŒƒÁ,Xì½×Y{­ïû÷µ“ÂëׯÓÇÜ*¢0À8ãŒ0ÀGÚŠAÇŽÛS]]ý³iÓ¦}ᘭ­­í•••óW¯^ý‹rí÷A$BÛ¶m[P,ÿ·ŸÍž=»eòäÉ“‡6¯¶ÁK—.ݼÔÑÑñ·½{÷ÓlÙ²å³úúúÃ!õª! ,ÒÛÆ„týúõC¿Ù³gÏ«±d2ÿËšššC!„âË—/‡cxȱ–––õ×®]û&5–œ  ü³¿¿?B‘ªªªR˜=»·;nŸ8qbÆ< Ñ›ššÖoذaݘҀ͛7ÿ9˜iìëëKÏž=K<@¥G \ '™“­®®î¯qùt¬³_óHïž-Z”Âù¥çÏŸ#eç¤ÎÎÎÔÐÐ1üôéÓ4iÒ¤túôéôäÉ“D ÿ‘hS¦LùùÆ‹èÿàØ´iSu´éq Ãxö´jÕª4a„tãÆ4kÖ¬têÔ©ÔÚÚšæÏŸÃ`ºzõjZ¸pa:{ölöNww·æh•/^¼ØKþýƒˆÛ·oo|ôèѺ ¼?ˆÒ[1sæÌßÞ¹s§+ˆžcÓƒà„BÄ÷wÑ¢L3Ì „[·ní ÙO8~4Öü÷‰'¼~mÅŠ•ÁTm0ÓzæÌ™ß¯Y³¦9}ÒhºpáBí²eËÒÝ»wÓÔ©SSWWWzüøqFl„­Ä¾Ø>  ¨ž~Ä Ma(fÃýåË—ñ˜û¼­ºNô===ÿÚ¿ÿ‰˜38bvìØ±ôæÍ›_ÅmËâÅ‹oÖÖÖÖ¡‹z{{[ÏŸ?ßÈ&¨$’„QÀcóŒm¿zõÊ®'wi¤Î8DÒ™ÏL -hQ x?cØçzŠè‚ù>~"Û;èîlooÿ&öý2æÜ€Ý»w£‹¿{øðá_Ž?>;Ôˆ— 7áy‘ÛßxFBtkàÐdž=`Œ{®ùnó=¯¬ë•yç Åú8OüHægB®=zô“7صkWMØÐסªëb’L²ÆØ»…8 6†9Î -0Æí#€.“yXˈàï‡f˜VÜÓûÃ$ëoß¾Ý[ô…;w¶D8ú6T¹–Г'd‘ãaóiîܹ)^6–0‰Ëæ`äê? Öæú%j€û9Κ9@‡Ô;Ìñþ z`V B«$ëÃý _°oß¾ÆÊµ(2ªd:ϼ×Ùó àeˆÐ†é‚aþ†]j YØÈí/^¼hH‰>i²/„ëé2‹ôU[æ@kàðXƒˆÃ< &SëaSì¢*ô®M/k…¤JÓVœ &‘ sЃká±Ñóa]hEs¸G ™ã€ó¼‹C%Ÿڇ L Â`ÀQHU…P}GF\aÁ1ò ³ A ÒMíƒ1Ö¥”ÆyZ³G6~ÿþ}œì°õ> •»i2F˜Šc+31M F¨à2‚—,YB±Ä_iFˆ´a¦Y†ŽèÓ\qЬɕuÃTL³âýk€›Ú°GÂ(@¬!’+¶9æáæ æ!&/ú}’v8€‚ƨ%ŒúX­Ö”³&!PµAÔ¿”yT‚‘&~@Mä#Šyˆé0s`Ô¹ÌC[ä9 yÇm 0cc%DƒY€ ¤M¹Š­2fJŒd5ÏdÎȘ ŽÕˆ÷ÔC&š…aÑÒã6†pJ„¯|¦ñ„]=9 èÔ°a£ 1nx†yÞ±à¡>ŸÁ´{QgpÿV'XV QšêŽšçUÒ:(À¸gŒ1¦¸ûÍô<Ïú‹šÙ¢i5`Ð ›hûŽªh«JÑ1˜pûC8ëáq`óf,IMÓ>IBÝ»o£)0l`Þoê«„‡ÊÉ1Õ|âýú€JµUõ©>ÊØ‰u“SýìȦ8Ï÷\Ãîþv5 °Þ Ü> O@¾¢óÞLÐï0ë\û÷1¿§7u„êwµ·¥î¶öÔj[eÀë­´eAðœ2>Ûq@+ÐÌÉ;Bµ„=GOLG‚gñh‹1™öÐÓPyk«Aßñìš© 9ó\Ð3J€õÓæó£u bý¯óÓ `ÊjM!@òGƒ!‹¤í<Ã'_w”JÙæ5 ýBàXŒßF×XÏë„Tw+@˜2´t6ò›E‹RaD_ªÑO•÷3 <)jnn6íU ÃEë…|܃Nóz1ôá aTÓÞ¡ög×Ô!ZL±'ctÖÀùúˆà q¹À¡i¿flH õÕWÀ¸ÞÞR×DJ¦Js UÞ"'Ÿ yb„ô1»)l1P®aÑrT6ˆ³. Tç¬Ý#q¥jm`FI·¶'ùñT)ÿuŠwùÖÀ¼µk×rì¦é$ù.!ÝÞ‡4ððÍŒîmZ€-*9»ÇÞç‡ ñKާºŒpÆSÅñ9kȘï mc=+N*@Öö=@õ¼º  oùÛ[ÿíǶ|õ¥½êýÙÀßJ›NQH¢ói34ÑyŸdÇFægh3)â}K]øî»ï†"YÑгIþ[Œ›dZlÊ"ùØ›¯ëí,nMa~¨(¸ìn굤y†ï‘Øpi¹f‚Ïð ¶çƒ#1WýÇ…øû†/c¨­Rêoy(_ï_Xƒ2âUâe/?D|Ïòi®Íø>‚&8•èÔXczÐP¿W€>öˆñ¾¸¼ˆ©ÃA>  ~lƒÐ:œ.E8þ:Ö»À)~!þö~R,¼:Töó@wYüðþÌùyÉKg4 ¾¶t$ˆø_¼Û™ÞOsÃB´×eÈO´ïEqú: ñ÷}Óí–`fn<ƒ~}AýÊïH²{ú`ܳP{̹×§il4@ì#hã}šB™lôšè¢úëµ@g!TDÅ4†Ûø¿Î¦4þ_cãŒð·ÿ ä×bcÚIEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/appchooser/k3b.png0000644000076500000240000002003412536324426023077 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞbKGDÿÿÿ ½§“ pHYs¯¯^‘tIME×9()‘|©IDATxÚå› °\W™ßÿ·÷½_¿ýéé=IÖ.ÙÚ,yÁxÀvBÁd BeN±„x\ÅUI*TH*ÃU3C*®!ž&C€Ø² xÖ%k±õ´=k}ÒÛ·Þ·Û·ó;§»5 °JËŸÏí»œw¾íÿ-÷´þÿ8¯çßY³f¯««Ë×ÛÛk)‘H8ÕjU¹\Î[XXð–——½ .xÙl¶) ú-@$ñmݺ5°{÷îøÝwß½µ¯¯og4]Ïùu~¿¿×qœoòi4Cc¦\.Ÿ*‹ãÓÓÓû¿ýíoŸKÁ`PÜgÏW* …I¬áÙ©©©o=Êç[ßúVÞXʯRίJÛ×_}ôŸøÄ®mÛ¶}4Nß Ó)ÃU©TR¦jµšÜz½%¡@­•À¼B8U*•²å¸Îý‹‹‹ó333ÿ{llìÏ>÷¹ÏONNºF¿n87nŒ~úÓŸ¾yÇŽ”ÉdÞâçÓÆ¯U,TáØP*#È ¢Ž X‚áÞç8ò C †B „Cò›cÆh<®ž¾>õA!®---Õ/]ºôÍ#GŽ|–¿{"ŸÏ»¿ à‡?üá‘÷¿ÿýÿ~hhè˜pM[ÆK0n(»¼¬…¹yÍÎÍjnvVK‹KÊæ²Ö:ðI úüŠ„‚JÍ'êJ§Õ•éV*Ó¥h*­P"®p,¦n„0¼r¥bÏÎΖϜ9óÅo|ãŸûú׿¾,É{½àŒŽŽÆ¾ô¥/½cÏž=Љ]Öx>¯LOOMéü¹ó:söŒ&&&4óør‡qkúÂ=£}Iǧ øEˉHTÌ¿¯§[ƒƒƒê_±BéE3…ÍyέZµJÂrÎ;÷êÁƒÿõ'?ùÉç]>¯µ|·ÜrK÷—¿üåÿ@Hû·f혠 PvqQ.èÄñ;~LhÇ2^.–ÔÛÛ£•+†ÕÇØÝÕ¥X$¢0¾Þlx¸§ \ZXÐüô 4`šŠà)\ ¿§G+VkÅêÕÊŒŒ*ÚÛ«8Âå{_¿À†*Øð|ðÁ/ã"•×Jþ·¿ýí+>ÿùÏÿZ¹`²ŒçÐìäÅ‹:úÊ+:ðÒK:~ò¤f¦¦ñÙ^mÛºU›7mR"‘¯éÉïµÈ1ób„¬E4 qìr_µZ³sž>vL Ñ€c³ï‡ñ•0½býz¥V*Â÷\bõu×Y E_ùÔ§>õàÉ“'‹?/@ú^æ?ð¬ùÌg>óHÿ&DåÛ;16¦þð‡zâ?ÐË/¿¬õÎwÜ£»n¿]סõ ¾ÄTÓjQªCœKJJtˆsqÆnçZo2¥uÖik¹°°¨/ò7kKKòUª ˜JÝU®„•»n¸á†­XÄcçÏŸ¯þªà¿óÎ;W~ö³Ÿý_Äõ[ гŸÃL_Ú@=¾WÏ>û¬\|û½¿÷{ºãoÔ À•§ÓN‡é³ ¤¤¨1ñ&$™âœ¡˜½Æy¬"&\·n½ºÄüô”ªhºœË«º¼$‡µ„ˆ Ÿ£<Ç\!l£6îÛ·ï»àRý—€0×ÿÐC}…‰ïĬÙO]º¤çŸ^ÿ÷±GuèàAíÚ±CÿüÞ{µ²§WéãWh8 …a ¯WÆŒþ¦ F¯uì3Çöº!)Èäñœ[;Á"ª3sª±†Z‰ÐJD±Bð3#––Œ»JBæ&²ÐïÿûãZî?Vy{êá‡þÏk×®½Xn23MÃüŸ{NíÝ«³§OëÝï|§nÛ½G]€Z†…tY¦a¶Í¤E|3¿oB7m$hjŸw콌áX0l2YÝZÏðš jNÝBŽ0ZS=W@e,!ˆ¤#*ÖjÖXû.’³e„°_Ìþ €¸ù¾pïm·Ýö_<Ì[³áù´÷ñÇuÄ¿ï÷_ G]øbÍã×v‘!hiµÍX›©¦eš±}¬ö±ÚÇºêØŽ¬ÃS @:žBEÉ)×5´ö:5–Á7'§î"„¢ü`B°m! •ä ¿CŽò.:!füEà§€Ùô‘|ä¯@à¤Éè– s@óë($ÇmXRƒCVƒüUÃ4t%óÖ±q ¯Ó‰Ì›s–<¨óŒ¸¿Ñ,+ê•Ï Qÿ³× ÆúrN«o¼IÉá^%¸ ÏWuOŸUAÔ³9ÍĮ̂»»;zë­·þ‘¤ðÏ@àCúÐ0™Û óµr°›Ð‘Ç4KNÿOÞ|‡’†Q(…xšåKVã®e2’LjhËfVÇ :ÌsÀù€†wnSzh¨ã!]½ö35¯¦hº[øÈ5VdV«*FjÝ{ývÒëwZ]MÀº<²È 4%øÊ•+ßsß}÷mäüTP‹'ßö¶·ÝOï3åÉÀÆOžÐÒÛ5Ã+µ²;£d‡yäs¦–j4sü$~X±LSÚ⫤À}½W¹Cr ­ä†!…!û½hMyE.¾ÆmšŒ÷¦%ækª~ùš×S_hCáÔ½y»ÂqŠ),/dÂ-¹&§äRŒ %.’=Ò£Ý~ûí5lþؤgÕððð›mÓšE’ãÇ+73«=Û·+ᵘ{m4®ÔD 3n¨’]Ö¥#GT^Zj#»ÔCÞÞ 68Ž×X­®õƒr–6+¤Òç_xAYòŠ+5ëY`l ÃO|ö­’È n8Wcîš‚1O‘• ¥F7*>0Â÷ eÆ/YÅ€Žj^¼d± Š@\ÎêïÓ?M¡ûï¿ÿÂ^ÌÜ\ý/ž;§KPhº²¯Ï21ɉõA4Xª,Êok59^,¿`Ý2'=ݽKÉ]*ãï1ÂÔòĤ.ìÛ¯j¾Ð6ýF'b@®%¾[l©sêÝ,gx½jñªêáyñ¬ºnZ£þ7¿ÜYXÂ8@éHÍ*­æ˜¯?/ó“¾+èÿØÇ>ö–+ùtL¼_·nÝ?µý:È€ßÄÙsÊÏÍi#‰a>jÒR™,ÍÿÁ°ñ9O5¿ƒ–bÝ6~/ò\yiY}ëÖÊG/X*)Ú·Z /=¥ì‰9î½::t¢‡ë•äsLV€FIaú¬b=ê¹î5†×©^)Ú{Ó<ë„T/ÍkùÌù8¾ª¼u"ccrR>\³)‹.´FFFî‘ô·PõJøèëõQìlC¶F_šŸ× À犄yOà} ôÔ§*K•LB=#a’‘¸l… ¨%úûY\U â}”’6hÒeªD íL‹i›½Ë¼ôÊ%‚CjT)tf/¨Ð3È<+i“™+m@o !VU¼ôŒÊó˜,puªgÀµ„0—³ªÓ‘ fº,’"ß*)~Þ÷¾÷í¤ç–2u~¿^dñ¹ù9…x¨/•´¦¸Bû£DNŽeôÓÌTªæ€Ì-!HV-Í:…2×Y»Kv÷®&aüïµlÐÀ×Á§.©Æ\B EÎØÑô J¯$ÄÊi'W.eòi'žCkWI€c8–C[£?Û¸ÑâU2™}ï{ß»–VÚ’¹«ã ÁÍ›7ïhXàñlsyvNUâhŒïi6ÈõuÚ5äZr+g³08HÒâZÁâûhÇø±¡ºÜ&…LwŸÕxÇÔ½Ës¹t‡`<ˆ0 }Ìc®c~ùò!•OЫ‡9Çù¦Áž%Î?¦Â½_Ï_[ùÚ9ÁkJ‚?Û~§HºÑ(ýJ c×™ðYÔ,PA$Ú¥l€ór˜TsÙÓlÞßX2¥éœ¢ƒk”=ôŒ*—j<°ÅLxuL™pT$ZšœàºãÍËé°[­Ñè˜WàbEÑë×`æa-;¢Ê‚†[÷øü5…ÎV£VQתõ˜þ³ªÌ©´€[¥záÚþÌØô˜WNVy= ®o  a@ºåäh[6*çsò×ê¶;pë˜bø,¨<¨VÀß'N«gãå‡FÉžWyÁ3‹‡hhÀ@3¡*Ž5À,âF¥SY7ÁÚ–TÊ䔸gi¢^¼ üÅÆU@Œs_í»òn½Y•ɧT^¬©YŒªç– ¸ “V‹R‰ S”Y…€|êݸU5h\ ¼1{ë¯55ŒöKÆ ±¿dPËH„z”Y£){ ,ÁÝ–"Ì[G³í¹.Ô´¨ælȲ‚‡méÍwS” ÏWº€ ÿ•ŽÁ€ÂÁ@³Ì§Ôà8”4<£Õ+üâ$£Ÿ>},iQ[œ6¦Ù¾î¶Ì¹èÓÒñƒhÆ0U’ÄMp/ˆcØ90K1U*£ÕËî†æý¤Ã!UªäEÐ$"@ÿ)uЮÁ,~ÏØÖ&kó)œL^Ö^–ä]iUŠ…,äð/ˆ´¢ÔóS†VU/M* j»KS §Cª.¹åcH]R3U¼·Ou´_žºˆ 6!×,8*-žRaÃF¬`Ôj…§Úëhù7DìŸFM ‚£·ÜlŒúˆÏÊõPBYq”Qžá82¯j†êjD0nJ‚šm†àËà^i^7_h§ŠVq:-a€Êqrª.7•;úІn¼YÝë7ʹ~7þ™g¸E"iÍ+Ľ ”.žÅLbÒ°!ÈF”~KYúê¸J7lSjhX°)b”NÛâ"o¯JÝRÈ ŽƒuÆYÅz©'Ò1ÖÓ$¯™PbTÇß³±º’ƒŽUT¬ß£6ÁÌÉðù‡ÉˉËGcÆo’ æçc6[œfh\‰µ1>nûúZ‚ú?ÂÃLbM¬|>¯éçC%ù …ÉL !qîqlO<ž!ïžÅm(m½ô´ÕMÝ@š=WPiò÷Wí3ÔtI™·xáè^6÷ÙnÑùgŸÓô±«´|FÑ?fÂÕŒ"é¸B©¨bAõmuÔ³ÉSÏ–MÖ×Góµ6\ œ8gá L÷¥—^:r >ù䓇y—V278”qÅ Œ 5%ê{)wø¨æÇaÞybï„Ù–¼š·üécÄæ&×=Ë|Ç:„P¸† °˜·fÏ Â$õÁô^ÍïÂjЫYEhÐñ qïç/âç0—HQ|õp-Ná¢ñüí0XC÷5¿"N‹É …»ôL”0ÿi¶üIôø\d3ëÔÛHIf2JPâæé¨Ø\Úåá 5Í=ÿÝ!ÅúúU]0fiêýà5§:UW-1̶£ƒÉ`WAŠœs­Éã›0X€¡yy•3¸ØQ¬b™â†45à´ÜGé#X˜AõypaI¡®q” Y@äpQ±6a1níWÀŒ Ñsñ'Sªt¥qÛõʶ7fÍÏÏ””ýÉ–XšÇ ž!­™ø1ôš5 ¦Rí¦¤Ðœ£üI%ûžFq†2B¸Ó3ª-/e¡«Â—µÍBãj A—‰.ª:¿¬Ø‹Æ2OVE„ ÖØŒÎA`ä<_gþóÌ;KhÂxDÂö­ðë.æ‹ó½ÝªÉá÷eBxí“p3¥®ß*_v"a®Û‚B3i¨/ ÀÅv‹¹³.‰H…P›'õ¾„ÔZÏøMvˆ@Š—kÜ£lÝ µÜ¬U¸7Õ,È&ŒGÜlÚ $/oç yÛ bÓÄãùbqÊJòZØ“³{÷î}„ö¸ÙÜè‰IPä½ ry(gµZ+8Êž×çû÷ì„Y7Õ)T¦h^Vlc΄"P­$sŠa]2aϱYœÇ²/_ÒüË 0Ƨdf°SžØfK­Æ]|Šx€&!¡vó÷.¨²Ñ¸2‹ö—0ÿ2€Ûž%ÃÜðÏÞ­ºÏéìUt¿ÿÝï~&Kâs:IÒþýûÇ ^Ù¾}û6úg „]»viyó†©&¤†0YrƒS§Ô½i- Fð×=þW´4c-³¦þ™çŒU«{£ÇËM—L.ˆµ y‹f€É,é3šóÈ'^Üå&î—FvŽýT™}0iæu  -’8!wù° ,Œ€t¬icá$URzµ§ÞU®zw@r˜ù°#!üÿ¬§ì´0u®i:á]`£DÌS¨§ýrÔ¶¡XÃ2ÚŸW&¹ç" Y$ûuª/¥þ¡j‘IzD’WûÆ#<8~öì13åÏz=î² u†wiÛÙj²&²€˜ÂPin¡/Ù¢=­Ä' Å¥+€• Ô¤¦€4͉¦º`¾geƒf‡@ `¾A›[ج¦-€ú‚G²ãSiÞ ¥£ýN%k)Á\±>µÜ­Á‰<7ÎPúâÑÁi|?k6Gôê Òº÷QEyùºHdš››c/Óþ¯ýÍÃ?dò¹ŸwƒD‰ ˆ³ì¸z Â0o"Bˆ«Dùéˆ][vÆÓÖ€)@t8†ñ˜Çù¦R}žÒÃM¥·ø1_|3‚¢X@¼…àMY` ¹Ëž >¬G×~šÌÛƒ˜Ófƒ&Ý] Ä&ÞÏ`U¹0€™ÑYòýð»Þ®‘·½UÙrÉhÞßäŸýñ ¸ä2ÓÏ+€~3r:ìȼݸB!0 Ceús¾J™¢¤¦D£^  lFîöQ,ùö£u?Áh> ó ð E §4Åe0À­Ûö™“mx¤Ñi1äÊ-a£Ì™Iʾ-ò-¢ñYü}ʆ¹žÖ…DF¹›vkËÿ@E"Î,š'³s¿ýÍ¿}`ìС§‹’û‹n’2ûôÏÐ._Ë ÅÆ‚&´%¶ø©ÐÅMÆKŠgªDM+'à Sùa:àØjJò= ó/*ZMâšµ‚V,!bw5'Î1Ÿ˜ËAÓàE˜‰ ñ:ùýBX!(˜7ùFZçHgèíxàãªü-æÙÔñÜÓÏüù·¾öWÎtÅÌ.±&T8vìØ‰+Vì!" !kTÊ6)kåœRÝæ]^Í4%!A~ÌÑo²3˜”Â1L>Á÷ç“\sS¨•ƒÙ£kÝÉqÀ“~^G)X@7 Ó Ig‚ì( EèBø{ LÇ8Ø£þš¿I;>þ1Uú Ì£8³ŸéÑ¿ü“/|²[š[þ%ö zhiáøñãc¼6¿ <è PŒÇ¡$Ó°òK 0Õ¡ßÖöAb 0ú¡€>„ ÌÈy5ü&w‡Ìf§cƒ±.QÁ6Öä(éI]4c»2õvÃ<O—/¬p“ˆTCÜ„ª€Í‹<}×»´ù_ýK±”é™Ëüˇ¿ð—Ÿÿ¿I6êçàá—Ý)JëÎŒ#*˜©'‰ØL¯‰S§¯"ËJ«œ¯Õ-S ¶*sªPC. à„Ù¢+°–b•ã TkQÁØŒ¸P Ìé¢PœHùèM@¡&ÖW#ÛŒ&|Qf ›|PCwÝ¡,QijzÚ»Y¿øµ¿øï÷GòÙñ³¬ýW¹Y:‚ÜÄÏaþ”$iÛhDåh7H…Êb~^Åñ))˜W¨Qmí 5UþùšÿKýNí7Äí#žÔ)g¡  ¢mF/,LN4Á4V¦q×]Úøž{ÕÀ³ËvW:•¬Ž<ôø_?ô•wWJ§Kîk±]>DÇh+{?Åo~—\Áa’"!€ 3ަ§W>}?=¥eHIjÃî#ð×K[CÍvºkÃic‚Ÿó†`ÚäúhÞ£ºXqu®áÑ—Ü£MìG²-GB¶@’Ãþ?£ùÆ}ûþÇ÷þúoþëHÓ»x‘¾–?˜@Ã;wîüƒ7½éM&Sì  ©°ÉýYhÜAaÅœ ¯ž”&Çš¿¤š òö@‰ÔµJîn„À?ñŒ|P ˆy‡`8¢ãT©ªYî©bioxƒFØ}ît¥ñ ª–²Y›áMcögÏœ™{æÉü§£Ï=ÿÍ•Ôs%ïõøÉŒ¥ùÜzÇw|‚×ÍoÆ%|„KÅc1»ƒ;,)î(æC³äãEL´:5©æìŒ|0 ‚ywP·U^ÃT…áˆ\ÖKSãô«ËVõnÝ"nFÙ yäÅÿO­Ty5èÕ—¦`“š¿©?uÔ* ¢°×¯Ý°þÆÃÃ×”«ÉÔÊp$œ¦ñŠWÃÜl¯Ð²*Áü2m« ìN?791qøì©ñƒ\Ÿ¦úËŠ>Ѳäý6þxšº·—Èò‘ŒÃ脚œÇü=G¸=Èõ2›TË €Í ׯõ¨ß°_­7õ:þ_¼ÝæS ÂIEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/easing/0000755000076500000240000000000012536324426021016 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/animation/easing/easing.py0000755000076500000240000002324212536324426022644 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import easing_rc3 except ImportError: import easing_rc2 from ui_form import Ui_Form class Animation(QtCore.QPropertyAnimation): LinearPath, CirclePath = range(2) def __init__(self, target, prop): super(Animation, self).__init__(target, prop) self.setPathType(Animation.LinearPath) def setPathType(self, pathType): self.m_pathType = pathType self.m_path = QtGui.QPainterPath() def updateCurrentTime(self, currentTime): if self.m_pathType == Animation.CirclePath: if self.m_path.isEmpty(): end = self.endValue() start = self.startValue() self.m_path.moveTo(start) self.m_path.addEllipse(QtCore.QRectF(start, end)) dura = self.duration() if dura == 0: progress = 1.0 else: progress = (((currentTime - 1) % dura) + 1) / float(dura) easedProgress = self.easingCurve().valueForProgress(progress) if easedProgress > 1.0: easedProgress -= 1.0 elif easedProgress < 0: easedProgress += 1.0 pt = self.m_path.pointAtPercent(easedProgress) self.updateCurrentValue(pt) self.valueChanged.emit(pt) else: super(Animation, self).updateCurrentTime(currentTime) # PyQt doesn't support deriving from more than one wrapped class so we use # composition and delegate the property. class PixmapItem(QtCore.QObject): def __init__(self, pix): super(PixmapItem, self).__init__() self.pixmap_item = QtGui.QGraphicsPixmapItem(pix) def _set_pos(self, pos): self.pixmap_item.setPos(pos) pos = QtCore.pyqtProperty(QtCore.QPointF, fset=_set_pos) class Window(QtGui.QWidget): def __init__(self, parent=None): super(QtGui.QWidget, self).__init__(parent) self.m_iconSize = QtCore.QSize(64, 64) self.m_scene = QtGui.QGraphicsScene() self.m_ui = Ui_Form() self.m_ui.setupUi(self) self.m_ui.easingCurvePicker.setIconSize(self.m_iconSize) self.m_ui.easingCurvePicker.setMinimumHeight(self.m_iconSize.height() + 50) self.m_ui.buttonGroup.setId(self.m_ui.lineRadio, 0) self.m_ui.buttonGroup.setId(self.m_ui.circleRadio, 1) dummy = QtCore.QEasingCurve() self.m_ui.periodSpinBox.setValue(dummy.period()) self.m_ui.amplitudeSpinBox.setValue(dummy.amplitude()) self.m_ui.overshootSpinBox.setValue(dummy.overshoot()) self.m_ui.easingCurvePicker.currentRowChanged.connect(self.curveChanged) self.m_ui.buttonGroup.buttonClicked[int].connect(self.pathChanged) self.m_ui.periodSpinBox.valueChanged.connect(self.periodChanged) self.m_ui.amplitudeSpinBox.valueChanged.connect(self.amplitudeChanged) self.m_ui.overshootSpinBox.valueChanged.connect(self.overshootChanged) self.createCurveIcons() pix = QtGui.QPixmap(':/images/qt-logo.png') self.m_item = PixmapItem(pix) self.m_scene.addItem(self.m_item.pixmap_item) self.m_ui.graphicsView.setScene(self.m_scene) self.m_anim = Animation(self.m_item, 'pos') self.m_anim.setEasingCurve(QtCore.QEasingCurve.OutBounce) self.m_ui.easingCurvePicker.setCurrentRow(int(QtCore.QEasingCurve.OutBounce)) self.startAnimation() def createCurveIcons(self): pix = QtGui.QPixmap(self.m_iconSize) painter = QtGui.QPainter() gradient = QtGui.QLinearGradient(0, 0, 0, self.m_iconSize.height()) gradient.setColorAt(0.0, QtGui.QColor(240, 240, 240)) gradient.setColorAt(1.0, QtGui.QColor(224, 224, 224)) brush = QtGui.QBrush(gradient) # The original C++ code uses undocumented calls to get the names of the # different curve types. We do the Python equivalant (but without # cheating). curve_types = [(n, c) for n, c in QtCore.QEasingCurve.__dict__.items() if isinstance(c, QtCore.QEasingCurve.Type) and c != QtCore.QEasingCurve.Custom] curve_types.sort(key=lambda ct: ct[1]) painter.begin(pix) for curve_name, curve_type in curve_types: painter.fillRect( QtCore.QRect(QtCore.QPoint(0, 0), self.m_iconSize), brush) curve = QtCore.QEasingCurve(curve_type) painter.setPen(QtGui.QColor(0, 0, 255, 64)) xAxis = self.m_iconSize.height() / 1.5 yAxis = self.m_iconSize.width() / 3.0 painter.drawLine(0, xAxis, self.m_iconSize.width(), xAxis) painter.drawLine(yAxis, 0, yAxis, self.m_iconSize.height()) curveScale = self.m_iconSize.height() / 2.0; painter.setPen(QtCore.Qt.NoPen) # Start point. painter.setBrush(QtCore.Qt.red) start = QtCore.QPoint(yAxis, xAxis - curveScale * curve.valueForProgress(0)) painter.drawRect(start.x() - 1, start.y() - 1, 3, 3) # End point. painter.setBrush(QtCore.Qt.blue) end = QtCore.QPoint(yAxis + curveScale, xAxis - curveScale * curve.valueForProgress(1)) painter.drawRect(end.x() - 1, end.y() - 1, 3, 3) curvePath = QtGui.QPainterPath() curvePath.moveTo(QtCore.QPointF(start)) t = 0.0 while t <= 1.0: to = QtCore.QPointF(yAxis + curveScale * t, xAxis - curveScale * curve.valueForProgress(t)) curvePath.lineTo(to) t += 1.0 / curveScale painter.setRenderHint(QtGui.QPainter.Antialiasing, True) painter.strokePath(curvePath, QtGui.QColor(32, 32, 32)) painter.setRenderHint(QtGui.QPainter.Antialiasing, False) item = QtGui.QListWidgetItem() item.setIcon(QtGui.QIcon(pix)) item.setText(curve_name) self.m_ui.easingCurvePicker.addItem(item) painter.end() def startAnimation(self): self.m_anim.setStartValue(QtCore.QPointF(0, 0)) self.m_anim.setEndValue(QtCore.QPointF(100, 100)) self.m_anim.setDuration(2000) self.m_anim.setLoopCount(-1) self.m_anim.start() def curveChanged(self, row): curveType = QtCore.QEasingCurve.Type(row) self.m_anim.setEasingCurve(curveType) self.m_anim.setCurrentTime(0) isElastic = (curveType >= QtCore.QEasingCurve.InElastic and curveType <= QtCore.QEasingCurve.OutInElastic) isBounce = (curveType >= QtCore.QEasingCurve.InBounce and curveType <= QtCore.QEasingCurve.OutInBounce) self.m_ui.periodSpinBox.setEnabled(isElastic) self.m_ui.amplitudeSpinBox.setEnabled(isElastic or isBounce) self.m_ui.overshootSpinBox.setEnabled(curveType >= QtCore.QEasingCurve.InBack and curveType <= QtCore.QEasingCurve.OutInBack) def pathChanged(self, index): self.m_anim.setPathType(index) def periodChanged(self, value): curve = self.m_anim.easingCurve() curve.setPeriod(value) self.m_anim.setEasingCurve(curve) def amplitudeChanged(self, value): curve = self.m_anim.easingCurve() curve.setAmplitude(value) self.m_anim.setEasingCurve(curve) def overshootChanged(self, value): curve = self.m_anim.easingCurve() curve.setOvershoot(value) self.m_anim.setEasingCurve(curve) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) w = Window() w.resize(400, 400) w.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/animation/easing/easing.qrc0000644000076500000240000000015112536324426022770 0ustar philstaff00000000000000 images/qt-logo.png PyQt-x11-gpl-4.11.4/examples/animation/easing/easing_rc2.py0000644000076500000240000005326112536324426023413 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:16:13 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x14\x1d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x2e\x00\x00\x00\x37\x08\x06\x00\x00\x00\x73\x60\x78\x64\ \x00\x00\x13\xe4\x49\x44\x41\x54\x78\x9c\x62\xfc\xff\xff\x3f\xc3\ \xdf\x7f\x7f\x99\x99\x99\x98\xff\x3e\x78\xf1\x58\x66\xe9\x9e\x55\ \x09\x87\x2f\x9e\xb6\x79\xf7\xe9\xad\x98\xa4\xf2\x3f\x7e\x51\xb9\ \xbf\xfc\xcc\x1c\x3f\xf8\xfe\xfd\xff\xc7\xca\xc5\xc6\xf7\x46\x9c\ \x5b\xf6\x96\x24\xaf\xd2\x35\x29\x3e\xa5\xcb\xd2\xbc\x4a\xd7\xc4\ \x78\x64\xef\x08\x70\x8a\x3e\x63\x63\x66\xff\xc5\x80\x05\xfc\x67\ \xf8\xcf\xf4\xef\xff\x3f\x26\x06\x86\xff\x0c\x8c\x0c\x8c\xff\x19\ \x19\x18\xff\x33\x30\x42\x69\x0a\x00\x00\x00\x00\xff\xff\x62\xfc\ \xfb\xf7\x2f\x33\x13\x13\xd3\xdf\x59\x9b\x17\xa6\x54\xcf\x6d\xed\ \x7d\xf3\xe6\x0d\x1f\x17\x2f\xdb\x7f\x7b\x2f\x61\x46\x59\x45\x4e\ \x06\x86\x7f\x8c\x0c\x0c\xff\x99\x18\x18\x18\x18\x18\xfe\xfd\xff\ \xc7\xf0\xe7\xdf\x6f\x86\x7f\xff\xff\x30\x30\x30\x30\x32\xb0\x30\ \xb1\x32\x70\xb2\xf0\x7c\xe3\x63\x17\x7a\x26\xcc\x25\x75\x5f\x9c\ \x47\xee\xa6\x04\x8f\xc2\x75\x09\x5e\x85\x9b\xa2\x5c\x52\xf7\x05\ \x38\xc5\x9e\xb1\xb3\x70\xfc\xc0\x6e\xf5\x7f\xc6\x7f\xff\xff\x31\ \xc3\x39\x24\x7a\x08\x00\x00\x00\xff\xff\x62\xfc\xff\xff\x3f\xc3\ \xa4\xb5\xb3\x73\xf2\xbb\xf3\x26\x73\xf2\x09\xff\x63\x67\x63\xfb\ \xef\x1e\x2c\xc4\x20\x21\xc3\xc6\xf8\xed\xeb\x3f\x46\x46\x88\x39\ \x8c\x70\x0b\x18\x99\xfe\x33\x32\x30\xfc\x67\x60\x60\x60\xf8\xff\ \xff\x3f\xd3\xbf\xff\x7f\x19\xff\xfc\xff\x03\xf1\xd0\xbf\x3f\x0c\ \xff\x19\xfe\x33\xb0\x30\xb2\x32\xb0\xb3\x70\xff\xe5\x67\x17\x7e\ \x21\xcc\x25\x79\x5f\x8c\x47\xee\xa6\x14\xaf\xe2\x75\x09\x1e\x85\ \xeb\xa2\x3c\x32\x77\x85\x39\x25\x9e\x70\xb0\x72\x7d\xc5\xe7\xa1\ \xff\x70\x4b\x19\xff\x31\x62\xf1\x10\x00\x00\x00\xff\xff\x6c\x92\ \xbd\x0a\xc2\x30\x14\x46\xbf\x2f\x16\x7f\xd2\x06\x21\x83\xc6\x41\ \xc5\x5d\x70\xec\xa8\xbb\xcf\xe2\x6b\xba\x76\x70\x28\xa8\x83\xe0\ \xd6\xb1\x88\x20\x24\xf7\x3a\x88\x5b\x5e\xe0\x1c\x0e\x1c\x36\xb7\ \xcb\x76\x7f\x3a\x9e\x85\xea\xe2\x87\xb2\xab\x4b\x53\x1f\xa6\x78\ \xbf\x04\x66\x90\x03\x67\x4c\xa0\xfe\x0a\xa9\xc4\x7f\x8f\x64\xa2\ \x44\x24\x89\x48\x1a\xa1\x2a\x30\x2c\x30\x2e\xac\xb8\x91\xef\xfc\ \x24\x3c\x66\xe5\xf2\xba\x70\x9b\x36\x54\xeb\x76\x5e\xad\xee\xde\ \x86\xa7\x1d\xba\x9e\x79\x0f\x45\xc5\x28\x94\x04\xf0\x05\x00\x00\ \xff\xff\x62\x99\xbc\x76\x56\xee\xa7\xef\x5f\x79\xf9\xb9\xf9\xfe\ \x32\xb2\xff\x65\x56\xd6\xe4\x62\xf8\xfd\xeb\x3f\x03\x23\x13\x51\ \x8e\x66\x60\x60\x60\x60\xfc\xcf\xf0\x9f\xf1\xff\x7f\xf4\x18\x66\ \xfc\xcf\xca\xc4\xf6\x9f\x8d\x99\x1d\xc9\x43\x0c\x8c\xff\xfe\xff\ \x65\xfe\xf8\xe3\xb5\xc4\xbb\xef\xcf\x24\x6e\xbc\x39\x65\x01\xf1\ \x10\x33\x03\x3b\x33\xe7\x7f\x1e\x36\xc1\xb7\x82\x9c\xe2\x0f\xc5\ \x79\x64\x6f\x8b\xf3\x28\x5c\x97\xe4\x55\xb8\x2e\xce\x23\x77\x5b\ \x98\x4b\xe2\x11\x0f\x9b\xc0\x3b\x26\x46\xa6\xbf\x30\xd3\x01\x00\ \x00\x00\xff\xff\x62\x54\x89\x34\xbe\xfb\xf4\xed\x0b\x25\x86\xff\ \xcc\xff\x85\x44\x58\x18\xbd\xc3\x45\x88\x76\x31\xb9\x00\x9a\x9e\ \xff\x31\xa2\x79\xe8\xef\x7f\x48\x0c\xfd\xf9\xf7\x9b\xe1\xff\xff\ \x7f\x0c\x8c\x8c\xcc\x0c\x6c\xcc\x1c\x0c\x3c\xac\xfc\x1f\x04\x39\ \xc5\x1e\x89\x72\xcb\xde\x91\xe0\x51\xb8\x26\xc9\xab\x70\x03\x00\ \x00\x00\xff\xff\xbc\xd1\xb1\x0d\x80\x30\x10\x03\x40\x3b\x05\x54\ \x54\xb4\x91\x32\x0e\xa2\x65\xff\x45\xc8\xff\xdb\x54\x94\xb4\x8c\ \x70\x3a\x6e\xe7\xb8\x01\x2f\x73\x1a\x7d\xac\x38\xae\x1d\x11\x06\ \x3f\xbe\x7e\x00\x99\xa0\x5e\x90\xad\x56\x4e\x96\x02\xa9\x84\x5c\ \x20\x1b\x1e\x00\x00\x00\xff\xff\xb4\x92\x21\x12\x00\x20\x0c\xc3\ \xda\x5b\x81\xff\x7f\x98\xa0\x26\x70\x18\x2a\x73\x11\x11\x0d\x30\ \xdd\xd6\xfb\x3d\xbe\x0c\x61\x81\x91\xae\x92\x72\xa8\x0c\x96\xbc\ \x9b\x1d\x00\x00\x00\xff\xff\x94\x94\xb1\x0d\x00\x20\x0c\xc3\xdc\ \x96\xff\x4f\x76\x19\xd8\x10\x42\x70\x40\x6c\x79\xc9\xd8\x96\x7f\ \x22\x21\x33\xa8\x2a\x6c\xd1\x05\xc8\x08\xd6\x27\x34\xb6\x57\xc6\ \x93\xe7\x10\x34\x01\x00\x00\xff\xff\x8c\x91\xc1\x0a\x80\x20\x10\ \x05\x67\xdd\x35\xa5\xfe\xff\x3b\x83\x28\x41\xad\xad\x4b\x67\xeb\ \xdd\x67\x18\x78\x36\x02\x46\xc1\x6a\x42\x9e\x8d\xbd\x1c\xac\x5b\ \x21\x6a\x24\x4d\x09\x01\xaa\x37\x4e\xef\x68\x30\xb2\x2d\x04\x51\ \xfc\xbe\x3e\xac\xef\xed\x3f\xf7\x00\x00\x00\xff\xff\x22\xd9\xe1\ \xff\xff\x31\x30\x70\x70\x32\x33\x7c\xfb\xfa\x87\xe1\xf4\xc9\xc7\ \x0c\x52\x5c\xea\x0c\x5e\x26\x3e\x0c\xc6\xaa\x86\x0c\xa2\x02\x22\ \x0c\x8c\x8c\x0c\x0c\x5f\x7e\x7d\x60\x78\xf6\xe9\x1e\xc3\xb5\xd7\ \x27\x19\xae\xbe\x3a\xc1\xf0\xf5\xf7\x27\x06\x6e\x56\x3e\x9c\x8e\ \x67\x64\x64\x60\x80\x95\x4a\x4c\x8c\x4c\x0c\xff\xff\xff\x67\xf8\ \x4f\xc0\x13\x00\x00\x00\x00\xff\xff\x22\xc9\xe1\xff\xff\x43\x1c\ \x7d\xe7\xc6\x17\x86\xa3\xfb\xde\x32\x54\x84\x54\x30\x14\x85\x67\ \x30\xb0\xb3\xb3\x32\xfc\x87\x54\xe9\x70\xb5\x5a\x62\x16\x0c\xae\ \x2a\xd1\x0c\xcf\x3f\x3f\x60\x58\x73\x75\x22\xc3\xe9\x27\x3b\x19\ \xb8\xd8\xf8\x18\x30\x8b\x4d\x06\x86\x5f\x3f\xff\x31\xb0\xb0\xb0\ \x30\x30\x32\xfd\x65\xf8\xf6\xfb\x0b\x03\x0b\x13\x0b\x03\x2b\x13\ \x3b\x5e\xc7\x03\x00\x00\x00\xff\xff\x22\x3a\x3b\xfe\xff\xc7\xc0\ \xc0\xce\xc1\xc4\x70\xe3\xf2\x57\x86\x9d\x6b\x5f\x30\xcc\x2e\x9c\ \xce\x50\x19\x97\xcb\xc0\xc2\xca\xc4\xf0\xf7\xdf\x5f\x86\xff\xff\ \xff\xc1\x2b\x9b\x3f\x7f\x7f\x33\xfc\xfe\x03\x29\xd2\x24\x79\xe5\ \x19\x72\x2d\xfa\x19\x42\x74\xf2\x19\xbe\xfd\xfa\xcc\xc0\x04\x2d\ \x01\xfe\xff\x67\x60\x60\x65\x63\x64\x78\xf5\xec\x0f\xc3\x92\x59\ \x0f\x18\x3c\xc4\x4b\x18\xba\xbc\x36\x32\xd4\xd8\x2f\x66\x30\x94\ \x74\x64\xf8\xf1\xe7\x1b\x5c\x2d\x36\x00\x00\x00\x00\xff\xff\x8c\ \xd4\x21\x0e\xc2\x40\x10\x40\xd1\x3f\x33\xbb\x75\x0d\x06\x01\x0e\ \x53\x82\x44\x35\x58\x24\xa6\x12\x8d\x20\xe1\x04\x78\x6e\xc4\x01\ \xb8\x0c\x69\x10\x08\x0c\x49\x31\x5d\xb6\x83\x42\x92\x70\x82\xff\ \xd4\xff\x0b\xfe\x8d\x3c\xee\x99\xcb\xf9\xca\x69\x7f\x64\xbb\x6e\ \xe8\x53\x42\x45\x31\x35\x44\x14\xd3\x80\x49\x20\x58\xa4\x08\x05\ \x0e\x0c\xee\x64\xcf\x34\x8b\x03\x9b\xf9\x8e\xae\x7f\xa2\x62\xb8\ \x3b\xaa\xc2\xad\x7d\x11\xbd\xa4\xae\x56\x8c\xe2\x94\x6a\xbc\x64\ \x52\xce\x78\x0f\x09\xf8\xfd\xe4\x0f\x00\x00\x00\xff\xff\x22\x3a\ \xc4\x19\x19\x99\x18\x0e\xee\x7e\xce\xa0\xa9\xac\xcb\x50\x16\x95\ \xcb\xc0\xc0\xc0\xc0\xc0\xca\xc2\xc2\xc0\xc8\xc8\xc8\xf0\xff\x3f\ \x24\x99\xdc\x78\x7b\x92\xa1\x66\x43\x3a\x83\x4f\x65\x04\xc3\xda\ \x43\x5b\xa0\x21\xc6\x08\x0f\xb9\x10\xed\x3c\x06\x45\x41\x6d\x86\ \x9f\x7f\xbe\x31\x30\x33\x31\x33\xfc\xff\xc7\xc8\xf0\xf4\xf1\x17\ \x06\x6d\x25\x55\x06\x19\x51\x69\xa8\x63\x19\x18\xfe\x13\x51\x12\ \x01\x00\x00\x00\xff\xff\x84\xd4\x2b\x0e\xc2\x40\x14\x46\xe1\xf3\ \xdf\xa6\x4c\x05\xeb\x40\xa0\x50\x2c\x02\x0d\x49\x75\x05\x0e\xc9\ \x1e\x58\x09\x8a\x2d\x90\x60\x70\x24\x78\x12\x14\x62\x12\x02\x02\ \x0c\x8f\xb6\x77\xb0\x18\xc2\x0e\x8e\xf8\x72\xfe\x86\xa7\x04\x9d\ \x20\xe2\xe9\x4d\x3c\xde\x99\x4d\x2a\x42\x5e\xd0\xb4\x0d\x92\xf0\ \xe4\x48\xe2\x70\xdd\xb3\xd8\x4c\x89\xb6\xe5\xd6\xdd\x31\x9e\x97\ \x2c\xd7\x2b\x4c\xc2\xdd\xf1\xd4\x92\x67\x81\x51\xaf\xa2\xf6\x1a\ \x99\x78\x3d\xc4\xe5\xfc\x64\xd8\x1f\x00\x7c\xed\x34\xc3\x64\x98\ \x0c\xfd\xe0\xf2\x01\x00\x00\xff\xff\x22\x1c\xe2\xff\x21\x65\xf5\ \x8d\x2b\x1f\x19\x04\x84\xc4\x19\xfc\xad\x3d\x19\x18\x18\x18\x18\ \x98\xa1\x2d\x30\x58\x64\x6e\xbe\x31\x8b\xe1\xdf\xff\xbf\x0c\xec\ \x0c\x02\x0c\xa6\xe6\x92\x0c\x72\x9a\x22\x0c\x55\x33\xda\x18\xbe\ \xff\x82\x84\x2e\x23\xb4\x08\x36\x94\x74\x60\x90\xe1\x57\x66\x60\ \x62\xfd\xc5\xf0\xf2\xc5\x67\x86\xdf\x2f\xdf\x33\x58\xe9\x98\x20\ \x2c\x63\x60\x60\xf8\xf5\xf7\x3b\xc3\xd7\xdf\x9f\x18\xbe\xff\xf9\ \xca\xf0\xeb\x2f\xf6\x56\x31\x00\x00\x00\xff\xff\x22\xe8\x70\x26\ \x66\x06\x86\x9f\xdf\x19\x18\xee\xdf\xfb\xc8\x60\xa9\x63\xc4\x20\ \x25\x2c\x09\x0f\xe5\xff\x0c\xff\x19\x18\x19\x99\x18\x3e\xfc\x78\ \xcd\xf0\xe0\xfd\x55\x06\x0e\x16\x2e\x86\x3f\xff\x7e\x33\xfc\xfe\ \xf3\x87\x41\x53\x47\x90\xe1\xe1\xe3\xfb\x0c\x07\x2e\x1c\x85\x84\ \xe6\xff\x7f\x0c\x7f\xff\xfd\x65\x60\x67\xe1\x64\xe0\xfd\x64\xc4\ \xb0\x62\xfe\x43\x86\x64\xd3\x46\x86\xcd\x33\x76\x30\xb8\x98\x38\ \x40\x03\x03\x52\xc8\x29\x08\x6a\x33\x98\xc9\xb8\x33\x68\x88\x98\ \x30\x48\xf2\x28\x60\x75\x17\x00\x00\x00\xff\xff\xc2\x5b\x1c\xfe\ \xff\xcf\xc0\xc0\xc2\xc2\xc8\xf0\xfe\xdd\x5f\x86\xef\xef\x7f\x30\ \x58\xe9\x9a\x42\x1c\xf1\xef\x1f\x03\x13\x33\xa4\xbc\x65\x64\x64\ \x64\x78\xf9\xe5\x21\xc3\x97\x5f\x1f\x19\xd8\x59\xb8\x20\xc9\xe2\ \xef\x7f\x06\x61\x31\x36\x06\x06\xe6\x7f\x0c\xa7\xae\x9d\x63\xf0\ \x34\x73\x85\xe7\x03\x06\x06\x06\x06\x4d\x51\x33\x86\x77\x8f\xfa\ \x19\x54\xc5\xb4\x19\x34\xe5\xd5\x18\xfe\xfe\xfb\x0b\x75\x38\x24\ \x16\x2d\x65\xbd\x19\x2c\x64\x3c\x19\x18\x19\x99\x18\x9e\x7f\xbe\ \xcf\xd0\xb0\x2f\x02\xc3\x6d\x00\x00\x00\x00\xff\xff\xc2\x1f\xe2\ \xff\x19\x18\x98\x98\x19\x19\xde\xbf\xfd\xcd\xc0\xf0\x8f\x99\x41\ \x5f\x45\x8b\x81\x81\x81\x81\x81\x11\xde\x02\x83\x44\xed\x9b\x6f\ \xcf\x19\xfe\xfc\xfb\xcd\xc0\xc8\xc0\xc8\xc0\xc8\x08\x49\xab\x9c\ \xdc\x4c\x0c\xcc\x5c\x2c\x0c\x37\x1f\xdf\x83\xeb\x61\x64\x82\xe8\ \xd3\x53\xd1\x64\xe0\xe2\xe3\x67\xf8\xf3\xf7\x0f\x6e\x8b\x09\x54\ \x40\x00\x00\x00\x00\xff\xff\x22\x98\x54\x18\x19\x19\x18\x3e\xbc\ \xff\xc5\xc0\xc4\xce\xc9\xa0\x20\x21\x07\x11\x83\x86\x1c\xcc\xe8\ \x4f\x3f\xde\x42\x9a\xa1\x50\xfe\xbf\x7f\x0c\x0c\xac\xac\x0c\x0c\ \xdc\xdc\xac\x0c\xcf\xdf\xbc\x84\x58\xc4\xc8\x04\xd7\x27\x25\x2c\ \xc1\xa0\xa9\x26\xc5\x70\xf1\xfe\x25\x86\xa7\xaf\x9f\xc3\x43\x1a\ \x06\xfe\xfc\xfd\xcb\xf0\xfb\xcf\x3f\x14\xbb\xd0\x01\x00\x00\x00\ \xff\xff\x22\x5c\x73\xfe\x67\x60\xf8\xfc\xe9\x37\x03\x2f\x17\x37\ \x83\x28\xbf\x30\xd4\x33\xd0\x4e\x15\x54\xc9\xb7\xdf\x9f\x51\x3c\ \xc2\xc0\x00\xc9\x1b\x1c\x1c\x2c\x0c\xef\x3f\x7f\x82\xeb\xf9\x0f\ \x0d\x49\x4e\x76\x4e\x86\x88\x28\x2d\x86\xd4\xce\x64\x06\x13\x69\ \x17\x86\xc3\x53\x37\x32\xfc\xff\xff\x9f\xe1\x1f\xc3\x3f\x06\x66\ \x46\x66\x86\xed\x37\x17\x32\xec\xba\xbd\x82\x41\x84\x5b\x92\x01\ \xa9\xef\x80\x02\x00\x00\x00\x00\xff\xff\x7c\x95\x4d\x0a\x80\x20\ \x18\x44\x9f\xf9\x43\x88\x50\xf7\xbf\x5b\x27\x88\x36\x2d\x34\x31\ \xfd\x5a\xb8\x11\x8a\xf6\x03\xf3\x86\x19\x98\x7f\x70\xd5\x77\x9e\ \x62\x21\xf8\x85\xe0\xc3\xa7\x2c\xdf\x91\xf1\x2c\x44\x7a\x53\xce\ \x69\xe2\x95\x28\xb5\x60\xb5\x05\x81\x86\x30\x29\x85\xb7\x2b\xd6\ \x18\x8c\x1e\x11\x7a\xf4\xd4\x4e\xf6\xbc\x91\xe4\xa0\xb6\x8a\xd3\ \xf3\xcb\xf3\x01\x00\x00\xff\xff\x84\x97\xc1\x0a\x80\x30\x0c\x43\ \x5f\xb7\xae\x9b\xc5\xff\xff\x57\xad\x16\x0f\x9e\x64\x03\xef\x21\ \x79\x10\x08\xe4\x7f\xc7\x81\x88\x64\xb3\x41\x57\x5b\x6a\x22\x63\ \x3a\x1e\x22\xa0\x5a\x38\xe2\xe4\xba\x63\x82\xf3\xb6\x93\x99\x7c\ \x7b\x7a\x4d\x8a\x54\x9a\x0c\xac\x3a\x5d\x7d\x99\xf9\x00\x00\x00\ \xff\xff\x22\xaa\x1c\xff\xfb\xf7\x3f\x03\x0b\x33\x33\x03\x13\x13\ \x13\xb2\xf9\x70\x00\x69\xf5\xa1\xbb\x1c\x92\xb1\xff\xfe\xfb\x0b\ \x75\x20\x2a\x60\x65\x62\x83\x26\x1d\x6c\x69\x18\xd2\x3a\xfc\xff\ \xff\x1f\xce\x5a\x14\x00\x00\x00\xff\xff\x22\xb2\xad\x02\x29\xf6\ \x18\x71\xf6\xe7\xb0\x97\x00\x8c\x50\x29\x6c\xb2\x4c\x8c\xc4\x0d\ \x21\xe0\x02\x00\x00\x00\x00\xff\xff\x22\xca\xe1\x4c\x4c\x8c\x0c\ \x7f\xff\xfd\x63\xf8\x87\xa5\x49\xca\xc0\xc0\x80\xbd\x5a\x86\x3a\ \x98\x91\x11\x7b\xb9\x40\x69\xcf\x08\x00\x00\x00\xff\xff\x22\xaa\ \x38\x64\x61\x85\xa4\xd5\xdf\x7f\x7e\xc3\x1d\x85\x0c\x58\x18\x59\ \xb1\xb6\x9d\xff\xfd\xfd\xcf\xc0\xcc\xc4\xc4\xc0\x84\x65\x80\xe6\ \xf7\xbf\x9f\xd0\xa2\x8e\xbc\x91\x38\x00\x00\x00\x00\xff\xff\x22\ \x1c\xe2\x8c\x0c\x0c\xec\xec\x2c\x0c\xdf\x7e\x7c\x67\xf8\xf1\x0b\ \x7b\xbb\x81\x95\x99\x1d\xc3\xfe\xff\x0c\x0c\x0c\x7f\xfe\xfe\x63\ \x60\x65\x65\x65\x60\x61\x46\x76\x38\x24\xfc\x7f\xfc\xf9\x06\x2d\ \x22\xc9\x03\x00\x00\x00\x00\xff\xff\x22\x58\x73\x32\x32\x32\x30\ \x70\x73\x43\xfa\x96\x1f\xbf\x7e\x82\x0a\xff\x87\x3b\x8e\x81\x81\ \x81\x81\x93\x95\x9b\x01\x32\xa8\x89\x70\xda\xff\x7f\x0c\x0c\xbf\ \x7f\xfd\x65\xe0\x64\xe7\x80\x14\x85\x50\x09\x58\x3e\xf9\xfa\xeb\ \x23\x24\x89\x91\xe9\x72\x00\x00\x00\x00\xff\xff\x22\x2a\x8d\xf3\ \xf2\xb1\x32\x7c\xff\xf1\x8d\xe1\xe5\xfb\xd7\x10\x07\xff\x47\x38\ \x90\x81\x81\x81\x81\x87\x4d\x80\x81\x81\x01\x29\xf4\x18\x21\x0e\ \xff\xf9\xf3\x2f\x03\x1f\x17\x2f\x44\x0e\xaa\x89\x91\x81\x91\xe1\ \xcf\xbf\xdf\x0c\x9f\x7e\xbe\x63\x60\x66\x64\x21\xd8\xb7\xc4\x05\ \x00\x00\x00\x00\xff\xff\xc2\xef\x70\xa8\x03\xf8\x05\xd9\x18\x18\ \xfe\xfc\x64\xb8\xf7\xec\x21\xd4\xe1\xa8\x96\x09\x70\x88\xa2\x74\ \xb3\x18\x19\x19\x18\xfe\xfc\x81\x54\x5c\x62\x82\x42\x0c\x0c\x0c\ \x90\x9e\x10\xcc\x8d\x9f\x7e\xbe\x83\x38\x9c\x89\x85\x81\xdc\x20\ \x07\x00\x00\x00\xff\xff\x22\x18\xe2\x7f\xff\xfd\x67\xe0\x17\x64\ \x61\x60\x60\x61\x60\xb8\x78\xe7\x2a\x9a\xbf\x20\x61\x2e\xc2\x25\ \xc5\xc0\xc6\xc2\x09\x29\x29\xa0\xed\xf7\x9f\x3f\xfe\x33\xfc\xfc\ \xf6\x87\x41\x5e\x42\x06\xee\x59\x58\xe8\xbe\xfc\xf2\x88\xe1\xeb\ \xaf\x8f\x0c\xcc\x8c\xcc\x64\xa7\x71\x00\x00\x00\x00\xff\xff\xc2\ \xeb\x70\x46\x46\x06\x86\xbf\x7f\xfe\x33\xf0\xf0\x31\x31\xf0\x0a\ \x73\x32\x9c\xbc\x7a\x8e\x81\x81\x81\x81\x81\x19\x5e\x11\x41\x1c\ \x2e\xca\x2d\xc3\x20\xc0\x2e\xc2\xf0\x17\xda\x4f\x64\x62\x66\x60\ \xf8\xfc\xe1\x0f\x03\xc3\xaf\xff\x0c\xba\xca\x9a\x50\xd3\x10\x2d\ \xbe\x7b\xef\x2e\x33\xfc\xfe\xfb\x0b\x9a\xc6\x91\x9d\x8e\x48\x4e\ \x4c\x8c\x4c\x0c\xac\x2c\x2c\x0c\xcc\xcc\xd8\xcb\x7b\x00\x00\x00\ \x00\xff\xff\x22\x5c\xe5\xff\x63\x60\x60\x65\x67\x60\x50\x50\xe2\ \x67\x38\x7b\xe3\x32\xc3\xa3\x57\x8f\xa1\x5d\x36\x48\xfb\xfa\xdf\ \xff\x7f\x0c\x9c\xac\x3c\x0c\x4a\x42\x3a\x0c\xbf\xfe\xfd\x64\x60\ \x64\x60\x62\x60\x62\x62\x64\x78\xfa\xe8\x3b\x03\x2b\x27\x2f\x83\ \x8d\xae\x05\xc4\x22\xa4\x6e\xd8\xb5\x57\x27\x18\x58\xa0\xc9\x04\ \xa5\x3c\x87\xfa\x81\x87\x4d\x90\xe1\xeb\xef\x8f\x0c\x2f\xdf\xbd\ \x61\x78\xf7\xf1\x23\xd6\x16\x22\x00\x00\x00\xff\xff\x22\xaa\x38\ \xfc\xf7\xf7\x3f\x83\x9a\x06\x2f\xc3\xe7\x8f\x6f\x18\x36\x1f\xdb\ \xc9\xc0\xc0\xc0\x80\x51\x8d\xdb\x2b\x86\x30\xfc\xfb\xfb\x97\x81\ \x99\xed\x1f\xc3\xcf\x6f\x4c\x0c\xa7\x8e\x3e\x60\x08\x75\xf2\x66\ \x50\x93\x51\x61\xf8\xf7\xef\x1f\x03\x23\x23\x24\x24\x9f\x7c\xba\ \xc3\x70\xfb\xed\x45\x06\x0e\x56\x2e\x06\x56\x36\x26\x86\xcf\xdf\ \xbe\x30\x30\x30\x40\x6a\x66\x58\x6d\x6a\x25\xef\xc5\x60\x2d\x92\ \xc0\xa0\xfc\x27\x80\x21\x55\x77\x02\x83\x28\x8f\x34\x24\x86\x90\ \x3c\x00\x00\x00\x00\xff\xff\x22\xaa\x02\xfa\xfd\xeb\x3f\x83\x84\ \x0c\x1b\x83\x84\x12\x1f\xc3\xf4\xf5\x8b\x18\x7e\xfd\xf9\xc5\xc0\ \xc2\xcc\xcc\xf0\x9f\xe1\x3f\x7c\xe4\x49\x5b\xcc\x82\x21\x4c\x2f\ \x9f\xe1\xd3\xa7\xef\x0c\x5b\xd6\x3d\x64\xb0\xd5\x73\x61\x98\x98\ \xd7\x0a\x35\x83\x91\xe1\x1f\x03\xc4\xa3\xfb\xef\xad\x62\xf8\xfa\ \xeb\x13\x03\x0b\x0b\x33\x83\x98\x18\x27\xc3\xc3\x17\x4f\x19\x9e\ \xbf\x7b\x01\x0d\x70\x48\x90\xf3\xb2\x09\x33\x14\xb9\xb6\x30\xb4\ \x25\xb4\x31\x38\xe9\x3a\x33\xc0\x87\xe7\x90\x9a\x1c\x00\x00\x00\ \x00\xff\xff\x22\xae\xad\xc2\xc0\xc0\xf0\x9f\xf1\x1f\x83\xad\x93\ \x04\xc3\xd5\x5b\x17\x19\xa6\xac\x9b\xcd\xc0\xc0\xc0\xc0\xf0\xfb\ \xcf\x1f\xb8\xc3\xfe\xff\xff\xcf\xe0\xa7\x91\xc1\x50\x67\xb7\x86\ \x61\x4d\xf9\x46\x86\xbd\x13\xd7\x30\x88\xf0\x8b\x40\xc6\x56\x18\ \xfe\x32\x30\x33\xb2\x30\xdc\x7b\x77\x99\xe1\xd0\x83\xf5\x0c\xdc\ \x6c\x7c\x0c\xbf\x7e\xfd\x66\x50\xd7\xe1\x67\xf8\xf8\xf1\x15\xc3\ \xca\x3d\x9b\x20\xf6\xfc\x83\xe5\x03\xb4\x21\x38\x2c\x39\x18\x00\ \x00\x00\xff\xff\x22\x6a\x08\x8e\x91\x91\x81\xe1\xf7\xcf\xff\x0c\ \x12\x32\x2c\x0c\xd6\xee\x32\x0c\x95\x53\xdb\x18\x4c\x35\x8d\x18\ \x6c\x75\x2d\x19\x7e\xff\xf9\xcd\xc0\xc4\xc4\xc4\xc0\xcc\xc4\xc4\ \xf0\xff\xff\x3f\x06\x55\x29\x55\x06\x55\x29\x48\x29\x02\x49\xbf\ \xff\x19\x98\x19\x59\x18\x3e\xfd\x7c\xc7\x30\xe7\x6c\x2d\xc3\xdf\ \x7f\xbf\x19\xd8\x59\x38\x19\x7e\xff\xfe\xc7\x20\x24\xc6\xcc\xe0\ \x1a\x28\xcb\xd0\xb1\xaa\x9b\x41\x5c\x58\x94\x21\xc4\xde\x9f\x81\ \x99\x81\x91\xe1\xff\xff\x7f\x0c\x9f\x7f\x7d\x60\x78\xf8\xe1\x3a\ \xc3\xa9\x27\x3b\x19\xde\x7c\x7b\xc6\xc0\xca\xcc\x86\xd2\x52\x04\ \x00\x00\x00\xff\xff\x62\xe4\xf1\x90\xfb\xcf\xc8\xc8\xc0\xf0\xeb\ \xe7\x7f\x06\x59\x45\x76\x06\xb7\x40\xdc\x03\xfb\xff\xff\x33\x30\ \x70\x70\x30\x33\x9c\x3a\xf2\x96\xe1\xe6\xf9\xbf\x0c\x4b\x6b\x66\ \x33\x78\x59\x3a\x42\xca\x75\x68\x1a\xfe\xf7\xff\x1f\xc3\xff\xff\ \x90\x92\x07\x36\x9e\xf8\xe4\xe3\x6d\x86\xe9\xa7\xca\x18\x9e\x7e\ \xba\xcb\xc0\xc9\xca\x03\x1f\xfc\xfc\xff\x9f\x81\x81\x9d\x9d\x89\ \xe1\xcb\x97\x5f\x0c\x2f\x5f\x7e\x65\x50\x93\x51\x66\x10\x17\x12\ \x63\xf8\xf1\xe7\x1b\xc3\xfb\xef\x2f\x19\x3e\xfe\x78\x03\xcf\xfc\ \xe8\x19\x14\x00\x00\x00\xff\xff\x22\xc9\xe1\x30\xcb\x38\x39\x59\ \x18\x1e\xde\xff\xcc\x70\xf1\xf4\x47\x06\x6f\xfd\x50\x86\x64\xcf\ \x78\x06\x1d\x25\x4d\x06\x56\x68\x6f\x06\xe6\xe0\x6f\xbf\x3f\x33\ \xac\xbd\x3a\x99\xe1\xf0\x83\x0d\x0c\x7f\xfe\xfd\x82\x8c\x02\xa0\ \x8d\xd8\xc2\x86\xac\x59\x58\x98\x18\x7e\xfc\xfa\xc1\xf0\xfb\xcf\ \x1f\xc8\x8c\x03\x13\x2b\xb4\xe4\x61\xc4\x3a\xca\x0b\x00\x00\x00\ \xff\xff\x22\x79\x0e\x82\x91\x91\x81\xe1\xfb\xb7\x3f\x0c\x32\x72\ \xdc\x0c\x7e\xe1\xd2\x0c\x77\x19\x37\x31\x18\x25\x58\x31\xb4\x2e\ \xee\x63\x60\x60\x60\x60\xf8\xfb\x17\x61\xc9\x9f\x7f\xbf\x18\x0e\ \xde\x5f\xcb\xc0\xc0\xc0\xc0\xc0\xc5\xca\x8b\xd5\x01\x8c\x4c\x90\ \x51\x81\x9f\x3f\xff\x32\x30\x33\xb0\x31\x70\xb0\x72\x33\xb0\xb3\ \x70\x32\x30\x33\x42\x27\x0b\xb0\x0f\x4d\xff\x07\x00\x00\x00\xff\ \xff\x22\x6b\xf2\x84\x91\x89\x81\xe1\xd7\xaf\x7f\x0c\x3f\xbe\xfd\ \x65\x50\x53\x15\x67\x10\x94\xe0\x65\xd8\x7a\x6c\x0f\x03\x03\x03\ \x03\x03\x13\x33\x33\x3c\xc9\xf0\xb1\x0b\x33\xb8\xa9\xc6\x30\x7c\ \xf8\xf1\x8a\xe1\xe3\xcf\xb7\xd0\x34\x8f\x3d\x2a\x19\x19\x19\x50\ \x7a\x3d\x78\xdb\x30\xff\x19\xfe\x00\x00\x00\x00\xff\xff\x22\x6b\ \x46\x02\x6e\xd1\x3f\x06\x86\xff\x8c\x7f\x18\xd4\x35\x04\x19\xce\ \x1c\xbd\xca\x70\xe9\xde\x15\x06\x3d\x25\x1d\xc8\x80\x11\xb4\x76\ \x0d\xd4\xca\x66\x90\xe1\x53\x65\x78\xf1\xe9\x11\xc3\xb1\x27\x9b\ \x19\x3e\xfc\x78\x85\xb3\xfd\x4e\x84\xad\xff\xff\xfd\xff\xc3\xc8\ \xcf\x2e\xfa\x0c\x00\x00\x00\xff\xff\xa2\x6c\xba\x8a\x91\x81\xe1\ \xf7\xef\xff\x0c\xea\xba\xbc\x0c\x7f\xfe\x7f\x63\x98\xb1\x71\x21\ \x03\x03\x03\x03\xc3\x9f\xbf\x7f\xe0\x0d\x31\x16\x46\x56\x06\x2b\ \x39\x1f\x86\x20\x9d\x2c\x06\x5e\x36\x01\x86\xbf\xff\xfe\x30\xe0\ \xcc\x40\x04\x00\x13\x23\xe3\xbf\xdf\x7f\x7f\x32\xa8\x0a\x1b\xed\ \x07\x00\x00\x00\xff\xff\xa2\xc8\xe1\x8c\x8c\x0c\x0c\x7f\x7f\xff\ \x67\xe0\x15\x60\x64\x70\x74\x97\x65\x98\xb9\x76\x31\xc3\xf6\x13\ \x7b\x19\xd8\x58\xd9\xe0\x0e\xff\xcf\xf0\x9f\x88\xf9\x1f\xa2\xc0\ \xff\xff\x0c\xff\x99\x98\x99\xd8\x7e\x3b\x28\x06\xcf\x02\x00\x00\ \x00\xff\xff\xa2\x78\x82\x90\x91\x89\x81\xe1\xe7\x8f\x7f\x0c\xda\ \x86\x3c\x0c\xf6\x3e\xc2\x0c\x69\x93\x32\x19\x66\x6c\x9a\xcf\xf0\ \xe1\xf3\x67\x86\xff\xff\x11\x6d\x94\x6f\xbf\x3f\x33\xfc\xf9\xff\ \x1b\xe7\xc8\x14\x0e\xd3\xff\x33\x32\x32\xfd\x63\x62\x64\xfe\xc3\ \xc2\xc4\xfa\xfb\xfd\xf7\x57\x8c\x0e\x0a\xa1\x53\xd4\x45\x8d\x8e\ \x03\x00\x00\x00\xff\xff\x22\xb9\x38\xc4\x05\x60\x65\xfc\xb7\xef\ \xbf\x19\x9e\x3c\xfd\xc0\x20\x29\x20\xc5\xa0\x28\x29\xc7\xc0\xce\ \xc6\xce\xf0\xfd\xf7\x67\x86\x8f\x3f\xde\x41\x47\xbc\x30\xd3\x36\ \x64\x62\x16\xba\x82\x02\xba\xd8\xe0\x3f\xc3\x3f\xe6\x7f\xff\x20\ \x0b\x1c\xfe\xfe\xfb\xfd\xef\xf7\xdf\x5f\x4c\xb6\xf2\x41\x2b\x52\ \x4d\x5b\x62\x58\x98\x58\xfe\x02\x00\x00\x00\xff\xff\x22\x3b\x73\ \x62\x58\xce\xc8\xc0\xf0\xe3\xfb\x5f\x06\x16\x66\x66\x06\x35\x15\ \x31\x86\x5f\xbf\xbf\x31\xdc\xff\x78\x09\x3e\xb5\x0d\x9d\x66\xf9\ \x0f\x59\x09\xc1\x04\x6f\xe3\xfe\x67\xf8\xc7\xfc\xf7\xdf\x5f\xc6\ \xbf\xff\x7e\x33\xfe\xfd\xf7\x87\xe1\xef\xbf\xbf\x0c\x8c\x0c\x90\ \x7e\x2c\x17\x2b\xdf\x17\x71\x4e\xb1\xc7\xa2\x5c\x32\xb7\xcd\x64\ \xdc\x97\x9a\xcb\x7a\xac\x82\x0c\xb4\xff\x67\x04\x00\x00\x00\xff\ \xff\x62\x81\xac\x7a\xf8\x4f\x95\x09\x70\x48\xf3\xfa\x3f\xc3\xcf\ \x1f\x7f\xfe\x33\x32\xb2\xfc\xe7\x64\x65\x83\x2f\xd7\xf8\xf7\xff\ \x2f\xf3\xdf\x7f\x7f\x18\x7f\xff\xfb\xcd\xf8\xe7\xdf\x1f\x86\x7f\ \xff\x20\x6b\x5e\xd8\x20\x0e\xfc\x2a\xc0\x21\xff\x58\x94\x5b\xe6\ \xb6\x24\xaf\xc2\x75\x49\x5e\xc5\xab\x92\xbc\x0a\x37\x45\xb8\xa4\ \x1e\xf0\x71\x08\xbd\x66\x62\x64\xfe\xc7\xc0\xc0\xc0\xf0\xff\xff\ \x3f\x26\x06\x68\xac\x00\x00\x00\x00\xff\xff\x62\xf9\xf3\xe7\x0f\ \x03\x1b\x1b\xdb\x3f\x06\x86\xdf\x4c\x24\x25\x3f\x88\x53\xff\x33\ \x32\x32\xa0\x85\xe0\x7f\xe6\x7f\xff\xff\x30\xfe\xfe\xfb\x8b\xf1\ \xef\x9f\xdf\xf0\x10\x64\x61\x66\x67\xe0\x66\xe5\xfb\x2a\xc6\x21\ \xff\x58\x94\x5b\xfa\x0e\xc4\x81\x4a\x57\x25\x78\x14\x6e\x8a\x72\ \x4b\xdd\x47\x76\x20\x3a\x80\x2c\xc8\xf9\xcf\xc0\xc4\xc8\x0c\xcf\ \xe5\x00\x00\x00\x00\xff\xff\x62\x11\x13\x10\x7e\xf2\xf4\xed\x73\ \x59\x76\x66\xee\xbf\xff\xff\x33\x30\x63\x77\x3c\xe3\x7f\xa4\xc5\ \x2e\x28\x69\x10\x11\x82\x10\x33\x59\x61\x0e\xe4\x16\x7d\x22\xca\ \x2d\x73\x5b\x82\x57\xe1\xba\x14\xaf\xe2\x35\x09\x1e\x85\x9b\x22\ \xdc\xd2\xf7\xf9\x39\x84\x5e\xe1\x72\xe0\xff\xff\xff\x98\xff\xc3\ \x63\x1f\xba\x18\x81\x91\xf1\x3f\x13\x96\x21\x5b\x00\x00\x00\x00\ \xff\xff\x62\xd9\xd3\xbf\xc1\x2e\xa4\x2e\x6e\xd3\xc5\x2b\x97\x74\ \x59\x98\xa5\xfe\x42\x06\x53\x99\xfe\x33\x31\x22\x56\x01\xfd\xfd\ \xff\x87\xf1\xcf\x5f\xc8\x0a\x86\xbf\xff\xa1\x21\xc8\xc4\xce\xc0\ \xcd\xc6\xf7\x5d\x94\x43\x0e\x12\x82\x3c\x8a\xd7\x24\x79\x15\xaf\ \x49\xf0\xca\xdf\x10\xe5\x96\xb9\xcf\xcf\x2e\xf4\x8a\x89\x09\xb7\ \x03\xff\x41\x17\xcc\x40\x03\x05\xb2\x04\x84\x91\xe9\x2f\xb1\x91\ \x0e\x00\x00\x00\xff\xff\x62\xfc\xff\xff\x3f\xc3\xeb\x8f\x6f\x84\ \xbd\x4a\xa2\x37\x3f\xfe\x76\xd9\x32\x38\x46\xee\xdf\xd7\x6f\xdf\ \x99\xfe\x33\x40\x06\x32\x59\x99\xd8\x18\xb8\x58\x79\x3f\x09\x70\ \x88\x3d\x11\xe1\x96\xbe\x23\xc1\xa3\x70\x43\x92\x57\xe1\x9a\x38\ \x8f\xfc\x4d\x51\x6e\xa9\x07\xfc\xec\xc2\x78\x1d\x88\x2d\x04\x89\ \x74\x1b\x5e\x00\x00\x00\x00\xff\xff\x62\xfc\xf3\xf7\x0f\x33\x33\ \x13\xf3\xdf\x57\xef\xde\xf3\x66\xcf\x4e\xde\x2e\xa1\xfd\x56\x4f\ \x96\x4f\xfd\xac\x04\xaf\xc2\x75\x69\x3e\x95\x4b\x52\xbc\x8a\xd7\ \xc4\xb8\x65\xef\x08\x70\x8a\xbe\x64\x66\x62\xc6\xde\xe2\xf9\xff\ \x8f\xf9\x1f\xc3\x3f\x68\xc3\x96\x11\x69\xa9\x13\xd9\x9d\x78\x82\ \x00\x00\x00\x00\xff\xff\x03\x00\x3c\x1e\x17\xa6\x18\xe4\xa8\x9e\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0b\ \x05\x52\xbf\x27\ \x00\x71\ \x00\x74\x00\x2d\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/animation/easing/easing_rc3.py0000644000076500000240000005326412536324426023417 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:16:13 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x14\x1d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x2e\x00\x00\x00\x37\x08\x06\x00\x00\x00\x73\x60\x78\x64\ \x00\x00\x13\xe4\x49\x44\x41\x54\x78\x9c\x62\xfc\xff\xff\x3f\xc3\ \xdf\x7f\x7f\x99\x99\x99\x98\xff\x3e\x78\xf1\x58\x66\xe9\x9e\x55\ \x09\x87\x2f\x9e\xb6\x79\xf7\xe9\xad\x98\xa4\xf2\x3f\x7e\x51\xb9\ \xbf\xfc\xcc\x1c\x3f\xf8\xfe\xfd\xff\xc7\xca\xc5\xc6\xf7\x46\x9c\ \x5b\xf6\x96\x24\xaf\xd2\x35\x29\x3e\xa5\xcb\xd2\xbc\x4a\xd7\xc4\ \x78\x64\xef\x08\x70\x8a\x3e\x63\x63\x66\xff\xc5\x80\x05\xfc\x67\ \xf8\xcf\xf4\xef\xff\x3f\x26\x06\x86\xff\x0c\x8c\x0c\x8c\xff\x19\ \x19\x18\xff\x33\x30\x42\x69\x0a\x00\x00\x00\x00\xff\xff\x62\xfc\ \xfb\xf7\x2f\x33\x13\x13\xd3\xdf\x59\x9b\x17\xa6\x54\xcf\x6d\xed\ \x7d\xf3\xe6\x0d\x1f\x17\x2f\xdb\x7f\x7b\x2f\x61\x46\x59\x45\x4e\ \x06\x86\x7f\x8c\x0c\x0c\xff\x99\x18\x18\x18\x18\x18\xfe\xfd\xff\ \xc7\xf0\xe7\xdf\x6f\x86\x7f\xff\xff\x30\x30\x30\x30\x32\xb0\x30\ \xb1\x32\x70\xb2\xf0\x7c\xe3\x63\x17\x7a\x26\xcc\x25\x75\x5f\x9c\ \x47\xee\xa6\x04\x8f\xc2\x75\x09\x5e\x85\x9b\xa2\x5c\x52\xf7\x05\ \x38\xc5\x9e\xb1\xb3\x70\xfc\xc0\x6e\xf5\x7f\xc6\x7f\xff\xff\x31\ \xc3\x39\x24\x7a\x08\x00\x00\x00\xff\xff\x62\xfc\xff\xff\x3f\xc3\ \xa4\xb5\xb3\x73\xf2\xbb\xf3\x26\x73\xf2\x09\xff\x63\x67\x63\xfb\ \xef\x1e\x2c\xc4\x20\x21\xc3\xc6\xf8\xed\xeb\x3f\x46\x46\x88\x39\ \x8c\x70\x0b\x18\x99\xfe\x33\x32\x30\xfc\x67\x60\x60\x60\xf8\xff\ \xff\x3f\xd3\xbf\xff\x7f\x19\xff\xfc\xff\x03\xf1\xd0\xbf\x3f\x0c\ \xff\x19\xfe\x33\xb0\x30\xb2\x32\xb0\xb3\x70\xff\xe5\x67\x17\x7e\ \x21\xcc\x25\x79\x5f\x8c\x47\xee\xa6\x14\xaf\xe2\x75\x09\x1e\x85\ \xeb\xa2\x3c\x32\x77\x85\x39\x25\x9e\x70\xb0\x72\x7d\xc5\xe7\xa1\ \xff\x70\x4b\x19\xff\x31\x62\xf1\x10\x00\x00\x00\xff\xff\x6c\x92\ \xbd\x0a\xc2\x30\x14\x46\xbf\x2f\x16\x7f\xd2\x06\x21\x83\xc6\x41\ \xc5\x5d\x70\xec\xa8\xbb\xcf\xe2\x6b\xba\x76\x70\x28\xa8\x83\xe0\ \xd6\xb1\x88\x20\x24\xf7\x3a\x88\x5b\x5e\xe0\x1c\x0e\x1c\x36\xb7\ \xcb\x76\x7f\x3a\x9e\x85\xea\xe2\x87\xb2\xab\x4b\x53\x1f\xa6\x78\ \xbf\x04\x66\x90\x03\x67\x4c\xa0\xfe\x0a\xa9\xc4\x7f\x8f\x64\xa2\ \x44\x24\x89\x48\x1a\xa1\x2a\x30\x2c\x30\x2e\xac\xb8\x91\xef\xfc\ \x24\x3c\x66\xe5\xf2\xba\x70\x9b\x36\x54\xeb\x76\x5e\xad\xee\xde\ \x86\xa7\x1d\xba\x9e\x79\x0f\x45\xc5\x28\x94\x04\xf0\x05\x00\x00\ \xff\xff\x62\x99\xbc\x76\x56\xee\xa7\xef\x5f\x79\xf9\xb9\xf9\xfe\ \x32\xb2\xff\x65\x56\xd6\xe4\x62\xf8\xfd\xeb\x3f\x03\x23\x13\x51\ \x8e\x66\x60\x60\x60\x60\xfc\xcf\xf0\x9f\xf1\xff\x7f\xf4\x18\x66\ \xfc\xcf\xca\xc4\xf6\x9f\x8d\x99\x1d\xc9\x43\x0c\x8c\xff\xfe\xff\ \x65\xfe\xf8\xe3\xb5\xc4\xbb\xef\xcf\x24\x6e\xbc\x39\x65\x01\xf1\ \x10\x33\x03\x3b\x33\xe7\x7f\x1e\x36\xc1\xb7\x82\x9c\xe2\x0f\xc5\ \x79\x64\x6f\x8b\xf3\x28\x5c\x97\xe4\x55\xb8\x2e\xce\x23\x77\x5b\ \x98\x4b\xe2\x11\x0f\x9b\xc0\x3b\x26\x46\xa6\xbf\x30\xd3\x01\x00\ \x00\x00\xff\xff\x62\x54\x89\x34\xbe\xfb\xf4\xed\x0b\x25\x86\xff\ \xcc\xff\x85\x44\x58\x18\xbd\xc3\x45\x88\x76\x31\xb9\x00\x9a\x9e\ \xff\x31\xa2\x79\xe8\xef\x7f\x48\x0c\xfd\xf9\xf7\x9b\xe1\xff\xff\ \x7f\x0c\x8c\x8c\xcc\x0c\x6c\xcc\x1c\x0c\x3c\xac\xfc\x1f\x04\x39\ \xc5\x1e\x89\x72\xcb\xde\x91\xe0\x51\xb8\x26\xc9\xab\x70\x03\x00\ \x00\x00\xff\xff\xbc\xd1\xb1\x0d\x80\x30\x10\x03\x40\x3b\x05\x54\ \x54\xb4\x91\x32\x0e\xa2\x65\xff\x45\xc8\xff\xdb\x54\x94\xb4\x8c\ \x70\x3a\x6e\xe7\xb8\x01\x2f\x73\x1a\x7d\xac\x38\xae\x1d\x11\x06\ \x3f\xbe\x7e\x00\x99\xa0\x5e\x90\xad\x56\x4e\x96\x02\xa9\x84\x5c\ \x20\x1b\x1e\x00\x00\x00\xff\xff\xb4\x92\x21\x12\x00\x20\x0c\xc3\ \xda\x5b\x81\xff\x7f\x98\xa0\x26\x70\x18\x2a\x73\x11\x11\x0d\x30\ \xdd\xd6\xfb\x3d\xbe\x0c\x61\x81\x91\xae\x92\x72\xa8\x0c\x96\xbc\ \x9b\x1d\x00\x00\x00\xff\xff\x94\x94\xb1\x0d\x00\x20\x0c\xc3\xdc\ \x96\xff\x4f\x76\x19\xd8\x10\x42\x70\x40\x6c\x79\xc9\xd8\x96\x7f\ \x22\x21\x33\xa8\x2a\x6c\xd1\x05\xc8\x08\xd6\x27\x34\xb6\x57\xc6\ \x93\xe7\x10\x34\x01\x00\x00\xff\xff\x8c\x91\xc1\x0a\x80\x20\x10\ \x05\x67\xdd\x35\xa5\xfe\xff\x3b\x83\x28\x41\xad\xad\x4b\x67\xeb\ \xdd\x67\x18\x78\x36\x02\x46\xc1\x6a\x42\x9e\x8d\xbd\x1c\xac\x5b\ \x21\x6a\x24\x4d\x09\x01\xaa\x37\x4e\xef\x68\x30\xb2\x2d\x04\x51\ \xfc\xbe\x3e\xac\xef\xed\x3f\xf7\x00\x00\x00\xff\xff\x22\xd9\xe1\ \xff\xff\x31\x30\x70\x70\x32\x33\x7c\xfb\xfa\x87\xe1\xf4\xc9\xc7\ \x0c\x52\x5c\xea\x0c\x5e\x26\x3e\x0c\xc6\xaa\x86\x0c\xa2\x02\x22\ \x0c\x8c\x8c\x0c\x0c\x5f\x7e\x7d\x60\x78\xf6\xe9\x1e\xc3\xb5\xd7\ \x27\x19\xae\xbe\x3a\xc1\xf0\xf5\xf7\x27\x06\x6e\x56\x3e\x9c\x8e\ \x67\x64\x64\x60\x80\x95\x4a\x4c\x8c\x4c\x0c\xff\xff\xff\x67\xf8\ \x4f\xc0\x13\x00\x00\x00\x00\xff\xff\x22\xc9\xe1\xff\xff\x43\x1c\ \x7d\xe7\xc6\x17\x86\xa3\xfb\xde\x32\x54\x84\x54\x30\x14\x85\x67\ \x30\xb0\xb3\xb3\x32\xfc\x87\x54\xe9\x70\xb5\x5a\x62\x16\x0c\xae\ \x2a\xd1\x0c\xcf\x3f\x3f\x60\x58\x73\x75\x22\xc3\xe9\x27\x3b\x19\ \xb8\xd8\xf8\x18\x30\x8b\x4d\x06\x86\x5f\x3f\xff\x31\xb0\xb0\xb0\ \x30\x30\x32\xfd\x65\xf8\xf6\xfb\x0b\x03\x0b\x13\x0b\x03\x2b\x13\ \x3b\x5e\xc7\x03\x00\x00\x00\xff\xff\x22\x3a\x3b\xfe\xff\xc7\xc0\ \xc0\xce\xc1\xc4\x70\xe3\xf2\x57\x86\x9d\x6b\x5f\x30\xcc\x2e\x9c\ \xce\x50\x19\x97\xcb\xc0\xc2\xca\xc4\xf0\xf7\xdf\x5f\x86\xff\xff\ \xff\xc1\x2b\x9b\x3f\x7f\x7f\x33\xfc\xfe\x03\x29\xd2\x24\x79\xe5\ \x19\x72\x2d\xfa\x19\x42\x74\xf2\x19\xbe\xfd\xfa\xcc\xc0\x04\x2d\ \x01\xfe\xff\x67\x60\x60\x65\x63\x64\x78\xf5\xec\x0f\xc3\x92\x59\ \x0f\x18\x3c\xc4\x4b\x18\xba\xbc\x36\x32\xd4\xd8\x2f\x66\x30\x94\ \x74\x64\xf8\xf1\xe7\x1b\x5c\x2d\x36\x00\x00\x00\x00\xff\xff\x8c\ \xd4\x21\x0e\xc2\x40\x10\x40\xd1\x3f\x33\xbb\x75\x0d\x06\x01\x0e\ \x53\x82\x44\x35\x58\x24\xa6\x12\x8d\x20\xe1\x04\x78\x6e\xc4\x01\ \xb8\x0c\x69\x10\x08\x0c\x49\x31\x5d\xb6\x83\x42\x92\x70\x82\xff\ \xd4\xff\x0b\xfe\x8d\x3c\xee\x99\xcb\xf9\xca\x69\x7f\x64\xbb\x6e\ \xe8\x53\x42\x45\x31\x35\x44\x14\xd3\x80\x49\x20\x58\xa4\x08\x05\ \x0e\x0c\xee\x64\xcf\x34\x8b\x03\x9b\xf9\x8e\xae\x7f\xa2\x62\xb8\ \x3b\xaa\xc2\xad\x7d\x11\xbd\xa4\xae\x56\x8c\xe2\x94\x6a\xbc\x64\ \x52\xce\x78\x0f\x09\xf8\xfd\xe4\x0f\x00\x00\x00\xff\xff\x22\x3a\ \xc4\x19\x19\x99\x18\x0e\xee\x7e\xce\xa0\xa9\xac\xcb\x50\x16\x95\ \xcb\xc0\xc0\xc0\xc0\xc0\xca\xc2\xc2\xc0\xc8\xc8\xc8\xf0\xff\x3f\ \x24\x99\xdc\x78\x7b\x92\xa1\x66\x43\x3a\x83\x4f\x65\x04\xc3\xda\ \x43\x5b\xa0\x21\xc6\x08\x0f\xb9\x10\xed\x3c\x06\x45\x41\x6d\x86\ \x9f\x7f\xbe\x31\x30\x33\x31\x33\xfc\xff\xc7\xc8\xf0\xf4\xf1\x17\ \x06\x6d\x25\x55\x06\x19\x51\x69\xa8\x63\x19\x18\xfe\x13\x51\x12\ \x01\x00\x00\x00\xff\xff\x84\xd4\x2b\x0e\xc2\x40\x14\x46\xe1\xf3\ \xdf\xa6\x4c\x05\xeb\x40\xa0\x50\x2c\x02\x0d\x49\x75\x05\x0e\xc9\ \x1e\x58\x09\x8a\x2d\x90\x60\x70\x24\x78\x12\x14\x62\x12\x02\x02\ \x0c\x8f\xb6\x77\xb0\x18\xc2\x0e\x8e\xf8\x72\xfe\x86\xa7\x04\x9d\ \x20\xe2\xe9\x4d\x3c\xde\x99\x4d\x2a\x42\x5e\xd0\xb4\x0d\x92\xf0\ \xe4\x48\xe2\x70\xdd\xb3\xd8\x4c\x89\xb6\xe5\xd6\xdd\x31\x9e\x97\ \x2c\xd7\x2b\x4c\xc2\xdd\xf1\xd4\x92\x67\x81\x51\xaf\xa2\xf6\x1a\ \x99\x78\x3d\xc4\xe5\xfc\x64\xd8\x1f\x00\x7c\xed\x34\xc3\x64\x98\ \x0c\xfd\xe0\xf2\x01\x00\x00\xff\xff\x22\x1c\xe2\xff\x21\x65\xf5\ \x8d\x2b\x1f\x19\x04\x84\xc4\x19\xfc\xad\x3d\x19\x18\x18\x18\x18\ \x98\xa1\x2d\x30\x58\x64\x6e\xbe\x31\x8b\xe1\xdf\xff\xbf\x0c\xec\ \x0c\x02\x0c\xa6\xe6\x92\x0c\x72\x9a\x22\x0c\x55\x33\xda\x18\xbe\ \xff\x82\x84\x2e\x23\xb4\x08\x36\x94\x74\x60\x90\xe1\x57\x66\x60\ \x62\xfd\xc5\xf0\xf2\xc5\x67\x86\xdf\x2f\xdf\x33\x58\xe9\x98\x20\ \x2c\x63\x60\x60\xf8\xf5\xf7\x3b\xc3\xd7\xdf\x9f\x18\xbe\xff\xf9\ \xca\xf0\xeb\x2f\xf6\x56\x31\x00\x00\x00\xff\xff\x22\xe8\x70\x26\ \x66\x06\x86\x9f\xdf\x19\x18\xee\xdf\xfb\xc8\x60\xa9\x63\xc4\x20\ \x25\x2c\x09\x0f\xe5\xff\x0c\xff\x19\x18\x19\x99\x18\x3e\xfc\x78\ \xcd\xf0\xe0\xfd\x55\x06\x0e\x16\x2e\x86\x3f\xff\x7e\x33\xfc\xfe\ \xf3\x87\x41\x53\x47\x90\xe1\xe1\xe3\xfb\x0c\x07\x2e\x1c\x85\x84\ \xe6\xff\x7f\x0c\x7f\xff\xfd\x65\x60\x67\xe1\x64\xe0\xfd\x64\xc4\ \xb0\x62\xfe\x43\x86\x64\xd3\x46\x86\xcd\x33\x76\x30\xb8\x98\x38\ \x40\x03\x03\x52\xc8\x29\x08\x6a\x33\x98\xc9\xb8\x33\x68\x88\x98\ \x30\x48\xf2\x28\x60\x75\x17\x00\x00\x00\xff\xff\xc2\x5b\x1c\xfe\ \xff\xcf\xc0\xc0\xc2\xc2\xc8\xf0\xfe\xdd\x5f\x86\xef\xef\x7f\x30\ \x58\xe9\x9a\x42\x1c\xf1\xef\x1f\x03\x13\x33\xa4\xbc\x65\x64\x64\ \x64\x78\xf9\xe5\x21\xc3\x97\x5f\x1f\x19\xd8\x59\xb8\x20\xc9\xe2\ \xef\x7f\x06\x61\x31\x36\x06\x06\xe6\x7f\x0c\xa7\xae\x9d\x63\xf0\ \x34\x73\x85\xe7\x03\x06\x06\x06\x06\x4d\x51\x33\x86\x77\x8f\xfa\ \x19\x54\xc5\xb4\x19\x34\xe5\xd5\x18\xfe\xfe\xfb\x0b\x75\x38\x24\ \x16\x2d\x65\xbd\x19\x2c\x64\x3c\x19\x18\x19\x99\x18\x9e\x7f\xbe\ \xcf\xd0\xb0\x2f\x02\xc3\x6d\x00\x00\x00\x00\xff\xff\xc2\x1f\xe2\ \xff\x19\x18\x98\x98\x19\x19\xde\xbf\xfd\xcd\xc0\xf0\x8f\x99\x41\ \x5f\x45\x8b\x81\x81\x81\x81\x81\x11\xde\x02\x83\x44\xed\x9b\x6f\ \xcf\x19\xfe\xfc\xfb\xcd\xc0\xc8\xc0\xc8\xc0\xc8\x08\x49\xab\x9c\ \xdc\x4c\x0c\xcc\x5c\x2c\x0c\x37\x1f\xdf\x83\xeb\x61\x64\x82\xe8\ \xd3\x53\xd1\x64\xe0\xe2\xe3\x67\xf8\xf3\xf7\x0f\x6e\x8b\x09\x54\ \x40\x00\x00\x00\x00\xff\xff\x22\x98\x54\x18\x19\x19\x18\x3e\xbc\ \xff\xc5\xc0\xc4\xce\xc9\xa0\x20\x21\x07\x11\x83\x86\x1c\xcc\xe8\ \x4f\x3f\xde\x42\x9a\xa1\x50\xfe\xbf\x7f\x0c\x0c\xac\xac\x0c\x0c\ \xdc\xdc\xac\x0c\xcf\xdf\xbc\x84\x58\xc4\xc8\x04\xd7\x27\x25\x2c\ \xc1\xa0\xa9\x26\xc5\x70\xf1\xfe\x25\x86\xa7\xaf\x9f\xc3\x43\x1a\ \x06\xfe\xfc\xfd\xcb\xf0\xfb\xcf\x3f\x14\xbb\xd0\x01\x00\x00\x00\ \xff\xff\x22\x5c\x73\xfe\x67\x60\xf8\xfc\xe9\x37\x03\x2f\x17\x37\ \x83\x28\xbf\x30\xd4\x33\xd0\x4e\x15\x54\xc9\xb7\xdf\x9f\x51\x3c\ \xc2\xc0\x00\xc9\x1b\x1c\x1c\x2c\x0c\xef\x3f\x7f\x82\xeb\xf9\x0f\ \x0d\x49\x4e\x76\x4e\x86\x88\x28\x2d\x86\xd4\xce\x64\x06\x13\x69\ \x17\x86\xc3\x53\x37\x32\xfc\xff\xff\x9f\xe1\x1f\xc3\x3f\x06\x66\ \x46\x66\x86\xed\x37\x17\x32\xec\xba\xbd\x82\x41\x84\x5b\x92\x01\ \xa9\xef\x80\x02\x00\x00\x00\x00\xff\xff\x7c\x95\x4d\x0a\x80\x20\ \x18\x44\x9f\xf9\x43\x88\x50\xf7\xbf\x5b\x27\x88\x36\x2d\x34\x31\ \xfd\x5a\xb8\x11\x8a\xf6\x03\xf3\x86\x19\x98\x7f\x70\xd5\x77\x9e\ \x62\x21\xf8\x85\xe0\xc3\xa7\x2c\xdf\x91\xf1\x2c\x44\x7a\x53\xce\ \x69\xe2\x95\x28\xb5\x60\xb5\x05\x81\x86\x30\x29\x85\xb7\x2b\xd6\ \x18\x8c\x1e\x11\x7a\xf4\xd4\x4e\xf6\xbc\x91\xe4\xa0\xb6\x8a\xd3\ \xf3\xcb\xf3\x01\x00\x00\xff\xff\x84\x97\xc1\x0a\x80\x30\x0c\x43\ \x5f\xb7\xae\x9b\xc5\xff\xff\x57\xad\x16\x0f\x9e\x64\x03\xef\x21\ \x79\x10\x08\xe4\x7f\xc7\x81\x88\x64\xb3\x41\x57\x5b\x6a\x22\x63\ \x3a\x1e\x22\xa0\x5a\x38\xe2\xe4\xba\x63\x82\xf3\xb6\x93\x99\x7c\ \x7b\x7a\x4d\x8a\x54\x9a\x0c\xac\x3a\x5d\x7d\x99\xf9\x00\x00\x00\ \xff\xff\x22\xaa\x1c\xff\xfb\xf7\x3f\x03\x0b\x33\x33\x03\x13\x13\ \x13\xb2\xf9\x70\x00\x69\xf5\xa1\xbb\x1c\x92\xb1\xff\xfe\xfb\x0b\ \x75\x20\x2a\x60\x65\x62\x83\x26\x1d\x6c\x69\x18\xd2\x3a\xfc\xff\ \xff\x1f\xce\x5a\x14\x00\x00\x00\xff\xff\x22\xb2\xad\x02\x29\xf6\ \x18\x71\xf6\xe7\xb0\x97\x00\x8c\x50\x29\x6c\xb2\x4c\x8c\xc4\x0d\ \x21\xe0\x02\x00\x00\x00\x00\xff\xff\x22\xca\xe1\x4c\x4c\x8c\x0c\ \x7f\xff\xfd\x63\xf8\x87\xa5\x49\xca\xc0\xc0\x80\xbd\x5a\x86\x3a\ \x98\x91\x11\x7b\xb9\x40\x69\xcf\x08\x00\x00\x00\xff\xff\x22\xaa\ \x38\x64\x61\x85\xa4\xd5\xdf\x7f\x7e\xc3\x1d\x85\x0c\x58\x18\x59\ \xb1\xb6\x9d\xff\xfd\xfd\xcf\xc0\xcc\xc4\xc4\xc0\x84\x65\x80\xe6\ \xf7\xbf\x9f\xd0\xa2\x8e\xbc\x91\x38\x00\x00\x00\x00\xff\xff\x22\ \x1c\xe2\x8c\x0c\x0c\xec\xec\x2c\x0c\xdf\x7e\x7c\x67\xf8\xf1\x0b\ \x7b\xbb\x81\x95\x99\x1d\xc3\xfe\xff\x0c\x0c\x0c\x7f\xfe\xfe\x63\ \x60\x65\x65\x65\x60\x61\x46\x76\x38\x24\xfc\x7f\xfc\xf9\x06\x2d\ \x22\xc9\x03\x00\x00\x00\x00\xff\xff\x22\x58\x73\x32\x32\x32\x30\ \x70\x73\x43\xfa\x96\x1f\xbf\x7e\x82\x0a\xff\x87\x3b\x8e\x81\x81\ \x81\x81\x93\x95\x9b\x01\x32\xa8\x89\x70\xda\xff\x7f\x0c\x0c\xbf\ \x7f\xfd\x65\xe0\x64\xe7\x80\x14\x85\x50\x09\x58\x3e\xf9\xfa\xeb\ \x23\x24\x89\x91\xe9\x72\x00\x00\x00\x00\xff\xff\x22\x2a\x8d\xf3\ \xf2\xb1\x32\x7c\xff\xf1\x8d\xe1\xe5\xfb\xd7\x10\x07\xff\x47\x38\ \x90\x81\x81\x81\x81\x87\x4d\x80\x81\x81\x01\x29\xf4\x18\x21\x0e\ \xff\xf9\xf3\x2f\x03\x1f\x17\x2f\x44\x0e\xaa\x89\x91\x81\x91\xe1\ \xcf\xbf\xdf\x0c\x9f\x7e\xbe\x63\x60\x66\x64\x21\xd8\xb7\xc4\x05\ \x00\x00\x00\x00\xff\xff\xc2\xef\x70\xa8\x03\xf8\x05\xd9\x18\x18\ \xfe\xfc\x64\xb8\xf7\xec\x21\xd4\xe1\xa8\x96\x09\x70\x88\xa2\x74\ \xb3\x18\x19\x19\x18\xfe\xfc\x81\x54\x5c\x62\x82\x42\x0c\x0c\x0c\ \x90\x9e\x10\xcc\x8d\x9f\x7e\xbe\x83\x38\x9c\x89\x85\x81\xdc\x20\ \x07\x00\x00\x00\xff\xff\x22\x18\xe2\x7f\xff\xfd\x67\xe0\x17\x64\ \x61\x60\x60\x61\x60\xb8\x78\xe7\x2a\x9a\xbf\x20\x61\x2e\xc2\x25\ \xc5\xc0\xc6\xc2\x09\x29\x29\xa0\xed\xf7\x9f\x3f\xfe\x33\xfc\xfc\ \xf6\x87\x41\x5e\x42\x06\xee\x59\x58\xe8\xbe\xfc\xf2\x88\xe1\xeb\ \xaf\x8f\x0c\xcc\x8c\xcc\x64\xa7\x71\x00\x00\x00\x00\xff\xff\xc2\ \xeb\x70\x46\x46\x06\x86\xbf\x7f\xfe\x33\xf0\xf0\x31\x31\xf0\x0a\ \x73\x32\x9c\xbc\x7a\x8e\x81\x81\x81\x81\x81\x19\x5e\x11\x41\x1c\ \x2e\xca\x2d\xc3\x20\xc0\x2e\xc2\xf0\x17\xda\x4f\x64\x62\x66\x60\ \xf8\xfc\xe1\x0f\x03\xc3\xaf\xff\x0c\xba\xca\x9a\x50\xd3\x10\x2d\ \xbe\x7b\xef\x2e\x33\xfc\xfe\xfb\x0b\x9a\xc6\x91\x9d\x8e\x48\x4e\ \x4c\x8c\x4c\x0c\xac\x2c\x2c\x0c\xcc\xcc\xd8\xcb\x7b\x00\x00\x00\ \x00\xff\xff\x22\x5c\xe5\xff\x63\x60\x60\x65\x67\x60\x50\x50\xe2\ \x67\x38\x7b\xe3\x32\xc3\xa3\x57\x8f\xa1\x5d\x36\x48\xfb\xfa\xdf\ \xff\x7f\x0c\x9c\xac\x3c\x0c\x4a\x42\x3a\x0c\xbf\xfe\xfd\x64\x60\ \x64\x60\x62\x60\x62\x62\x64\x78\xfa\xe8\x3b\x03\x2b\x27\x2f\x83\ \x8d\xae\x05\xc4\x22\xa4\x6e\xd8\xb5\x57\x27\x18\x58\xa0\xc9\x04\ \xa5\x3c\x87\xfa\x81\x87\x4d\x90\xe1\xeb\xef\x8f\x0c\x2f\xdf\xbd\ \x61\x78\xf7\xf1\x23\xd6\x16\x22\x00\x00\x00\xff\xff\x22\xaa\x38\ \xfc\xf7\xf7\x3f\x83\x9a\x06\x2f\xc3\xe7\x8f\x6f\x18\x36\x1f\xdb\ \xc9\xc0\xc0\xc0\x80\x51\x8d\xdb\x2b\x86\x30\xfc\xfb\xfb\x97\x81\ \x99\xed\x1f\xc3\xcf\x6f\x4c\x0c\xa7\x8e\x3e\x60\x08\x75\xf2\x66\ \x50\x93\x51\x61\xf8\xf7\xef\x1f\x03\x23\x23\x24\x24\x9f\x7c\xba\ \xc3\x70\xfb\xed\x45\x06\x0e\x56\x2e\x06\x56\x36\x26\x86\xcf\xdf\ \xbe\x30\x30\x30\x40\x6a\x66\x58\x6d\x6a\x25\xef\xc5\x60\x2d\x92\ \xc0\xa0\xfc\x27\x80\x21\x55\x77\x02\x83\x28\x8f\x34\x24\x86\x90\ \x3c\x00\x00\x00\x00\xff\xff\x22\xaa\x02\xfa\xfd\xeb\x3f\x83\x84\ \x0c\x1b\x83\x84\x12\x1f\xc3\xf4\xf5\x8b\x18\x7e\xfd\xf9\xc5\xc0\ \xc2\xcc\xcc\xf0\x9f\xe1\x3f\x7c\xe4\x49\x5b\xcc\x82\x21\x4c\x2f\ \x9f\xe1\xd3\xa7\xef\x0c\x5b\xd6\x3d\x64\xb0\xd5\x73\x61\x98\x98\ \xd7\x0a\x35\x83\x91\xe1\x1f\x03\xc4\xa3\xfb\xef\xad\x62\xf8\xfa\ \xeb\x13\x03\x0b\x0b\x33\x83\x98\x18\x27\xc3\xc3\x17\x4f\x19\x9e\ \xbf\x7b\x01\x0d\x70\x48\x90\xf3\xb2\x09\x33\x14\xb9\xb6\x30\xb4\ \x25\xb4\x31\x38\xe9\x3a\x33\xc0\x87\xe7\x90\x9a\x1c\x00\x00\x00\ \x00\xff\xff\x22\xae\xad\xc2\xc0\xc0\xf0\x9f\xf1\x1f\x83\xad\x93\ \x04\xc3\xd5\x5b\x17\x19\xa6\xac\x9b\xcd\xc0\xc0\xc0\xc0\xf0\xfb\ \xcf\x1f\xb8\xc3\xfe\xff\xff\xcf\xe0\xa7\x91\xc1\x50\x67\xb7\x86\ \x61\x4d\xf9\x46\x86\xbd\x13\xd7\x30\x88\xf0\x8b\x40\xc6\x56\x18\ \xfe\x32\x30\x33\xb2\x30\xdc\x7b\x77\x99\xe1\xd0\x83\xf5\x0c\xdc\ \x6c\x7c\x0c\xbf\x7e\xfd\x66\x50\xd7\xe1\x67\xf8\xf8\xf1\x15\xc3\ \xca\x3d\x9b\x20\xf6\xfc\x83\xe5\x03\xb4\x21\x38\x2c\x39\x18\x00\ \x00\x00\xff\xff\x22\x6a\x08\x8e\x91\x91\x81\xe1\xf7\xcf\xff\x0c\ \x12\x32\x2c\x0c\xd6\xee\x32\x0c\x95\x53\xdb\x18\x4c\x35\x8d\x18\ \x6c\x75\x2d\x19\x7e\xff\xf9\xcd\xc0\xc4\xc4\xc4\xc0\xcc\xc4\xc4\ \xf0\xff\xff\x3f\x06\x55\x29\x55\x06\x55\x29\x48\x29\x02\x49\xbf\ \xff\x19\x98\x19\x59\x18\x3e\xfd\x7c\xc7\x30\xe7\x6c\x2d\xc3\xdf\ \x7f\xbf\x19\xd8\x59\x38\x19\x7e\xff\xfe\xc7\x20\x24\xc6\xcc\xe0\ \x1a\x28\xcb\xd0\xb1\xaa\x9b\x41\x5c\x58\x94\x21\xc4\xde\x9f\x81\ \x99\x81\x91\xe1\xff\xff\x7f\x0c\x9f\x7f\x7d\x60\x78\xf8\xe1\x3a\ \xc3\xa9\x27\x3b\x19\xde\x7c\x7b\xc6\xc0\xca\xcc\x86\xd2\x52\x04\ \x00\x00\x00\xff\xff\x62\xe4\xf1\x90\xfb\xcf\xc8\xc8\xc0\xf0\xeb\ \xe7\x7f\x06\x59\x45\x76\x06\xb7\x40\xdc\x03\xfb\xff\xff\x33\x30\ \x70\x70\x30\x33\x9c\x3a\xf2\x96\xe1\xe6\xf9\xbf\x0c\x4b\x6b\x66\ \x33\x78\x59\x3a\x42\xca\x75\x68\x1a\xfe\xf7\xff\x1f\xc3\xff\xff\ \x90\x92\x07\x36\x9e\xf8\xe4\xe3\x6d\x86\xe9\xa7\xca\x18\x9e\x7e\ \xba\xcb\xc0\xc9\xca\x03\x1f\xfc\xfc\xff\x9f\x81\x81\x9d\x9d\x89\ \xe1\xcb\x97\x5f\x0c\x2f\x5f\x7e\x65\x50\x93\x51\x66\x10\x17\x12\ \x63\xf8\xf1\xe7\x1b\xc3\xfb\xef\x2f\x19\x3e\xfe\x78\x03\xcf\xfc\ \xe8\x19\x14\x00\x00\x00\xff\xff\x22\xc9\xe1\x30\xcb\x38\x39\x59\ \x18\x1e\xde\xff\xcc\x70\xf1\xf4\x47\x06\x6f\xfd\x50\x86\x64\xcf\ \x78\x06\x1d\x25\x4d\x06\x56\x68\x6f\x06\xe6\xe0\x6f\xbf\x3f\x33\ \xac\xbd\x3a\x99\xe1\xf0\x83\x0d\x0c\x7f\xfe\xfd\x82\x8c\x02\xa0\ \x8d\xd8\xc2\x86\xac\x59\x58\x98\x18\x7e\xfc\xfa\xc1\xf0\xfb\xcf\ \x1f\xc8\x8c\x03\x13\x2b\xb4\xe4\x61\xc4\x3a\xca\x0b\x00\x00\x00\ \xff\xff\x22\x79\x0e\x82\x91\x91\x81\xe1\xfb\xb7\x3f\x0c\x32\x72\ \xdc\x0c\x7e\xe1\xd2\x0c\x77\x19\x37\x31\x18\x25\x58\x31\xb4\x2e\ \xee\x63\x60\x60\x60\x60\xf8\xfb\x17\x61\xc9\x9f\x7f\xbf\x18\x0e\ \xde\x5f\xcb\xc0\xc0\xc0\xc0\xc0\xc5\xca\x8b\xd5\x01\x8c\x4c\x90\ \x51\x81\x9f\x3f\xff\x32\x30\x33\xb0\x31\x70\xb0\x72\x33\xb0\xb3\ \x70\x32\x30\x33\x42\x27\x0b\xb0\x0f\x4d\xff\x07\x00\x00\x00\xff\ \xff\x22\x6b\xf2\x84\x91\x89\x81\xe1\xd7\xaf\x7f\x0c\x3f\xbe\xfd\ \x65\x50\x53\x15\x67\x10\x94\xe0\x65\xd8\x7a\x6c\x0f\x03\x03\x03\ \x03\x03\x13\x33\x33\x3c\xc9\xf0\xb1\x0b\x33\xb8\xa9\xc6\x30\x7c\ \xf8\xf1\x8a\xe1\xe3\xcf\xb7\xd0\x34\x8f\x3d\x2a\x19\x19\x19\x50\ \x7a\x3d\x78\xdb\x30\xff\x19\xfe\x00\x00\x00\x00\xff\xff\x22\x6b\ \x46\x02\x6e\xd1\x3f\x06\x86\xff\x8c\x7f\x18\xd4\x35\x04\x19\xce\ \x1c\xbd\xca\x70\xe9\xde\x15\x06\x3d\x25\x1d\xc8\x80\x11\xb4\x76\ \x0d\xd4\xca\x66\x90\xe1\x53\x65\x78\xf1\xe9\x11\xc3\xb1\x27\x9b\ \x19\x3e\xfc\x78\x85\xb3\xfd\x4e\x84\xad\xff\xff\xfd\xff\xc3\xc8\ \xcf\x2e\xfa\x0c\x00\x00\x00\xff\xff\xa2\x6c\xba\x8a\x91\x81\xe1\ \xf7\xef\xff\x0c\xea\xba\xbc\x0c\x7f\xfe\x7f\x63\x98\xb1\x71\x21\ \x03\x03\x03\x03\xc3\x9f\xbf\x7f\xe0\x0d\x31\x16\x46\x56\x06\x2b\ \x39\x1f\x86\x20\x9d\x2c\x06\x5e\x36\x01\x86\xbf\xff\xfe\x30\xe0\ \xcc\x40\x04\x00\x13\x23\xe3\xbf\xdf\x7f\x7f\x32\xa8\x0a\x1b\xed\ \x07\x00\x00\x00\xff\xff\xa2\xc8\xe1\x8c\x8c\x0c\x0c\x7f\x7f\xff\ \x67\xe0\x15\x60\x64\x70\x74\x97\x65\x98\xb9\x76\x31\xc3\xf6\x13\ \x7b\x19\xd8\x58\xd9\xe0\x0e\xff\xcf\xf0\x9f\x88\xf9\x1f\xa2\xc0\ \xff\xff\x0c\xff\x99\x98\x99\xd8\x7e\x3b\x28\x06\xcf\x02\x00\x00\ \x00\xff\xff\xa2\x78\x82\x90\x91\x89\x81\xe1\xe7\x8f\x7f\x0c\xda\ \x86\x3c\x0c\xf6\x3e\xc2\x0c\x69\x93\x32\x19\x66\x6c\x9a\xcf\xf0\ \xe1\xf3\x67\x86\xff\xff\x11\x6d\x94\x6f\xbf\x3f\x33\xfc\xf9\xff\ \x1b\xe7\xc8\x14\x0e\xd3\xff\x33\x32\x32\xfd\x63\x62\x64\xfe\xc3\ \xc2\xc4\xfa\xfb\xfd\xf7\x57\x8c\x0e\x0a\xa1\x53\xd4\x45\x8d\x8e\ \x03\x00\x00\x00\xff\xff\x22\xb9\x38\xc4\x05\x60\x65\xfc\xb7\xef\ \xbf\x19\x9e\x3c\xfd\xc0\x20\x29\x20\xc5\xa0\x28\x29\xc7\xc0\xce\ \xc6\xce\xf0\xfd\xf7\x67\x86\x8f\x3f\xde\x41\x47\xbc\x30\xd3\x36\ \x64\x62\x16\xba\x82\x02\xba\xd8\xe0\x3f\xc3\x3f\xe6\x7f\xff\x20\ \x0b\x1c\xfe\xfe\xfb\xfd\xef\xf7\xdf\x5f\x4c\xb6\xf2\x41\x2b\x52\ \x4d\x5b\x62\x58\x98\x58\xfe\x02\x00\x00\x00\xff\xff\x22\x3b\x73\ \x62\x58\xce\xc8\xc0\xf0\xe3\xfb\x5f\x06\x16\x66\x66\x06\x35\x15\ \x31\x86\x5f\xbf\xbf\x31\xdc\xff\x78\x09\x3e\xb5\x0d\x9d\x66\xf9\ \x0f\x59\x09\xc1\x04\x6f\xe3\xfe\x67\xf8\xc7\xfc\xf7\xdf\x5f\xc6\ \xbf\xff\x7e\x33\xfe\xfd\xf7\x87\xe1\xef\xbf\xbf\x0c\x8c\x0c\x90\ \x7e\x2c\x17\x2b\xdf\x17\x71\x4e\xb1\xc7\xa2\x5c\x32\xb7\xcd\x64\ \xdc\x97\x9a\xcb\x7a\xac\x82\x0c\xb4\xff\x67\x04\x00\x00\x00\xff\ \xff\x62\x81\xac\x7a\xf8\x4f\x95\x09\x70\x48\xf3\xfa\x3f\xc3\xcf\ \x1f\x7f\xfe\x33\x32\xb2\xfc\xe7\x64\x65\x83\x2f\xd7\xf8\xf7\xff\ \x2f\xf3\xdf\x7f\x7f\x18\x7f\xff\xfb\xcd\xf8\xe7\xdf\x1f\x86\x7f\ \xff\x20\x6b\x5e\xd8\x20\x0e\xfc\x2a\xc0\x21\xff\x58\x94\x5b\xe6\ \xb6\x24\xaf\xc2\x75\x49\x5e\xc5\xab\x92\xbc\x0a\x37\x45\xb8\xa4\ \x1e\xf0\x71\x08\xbd\x66\x62\x64\xfe\xc7\xc0\xc0\xc0\xf0\xff\xff\ \x3f\x26\x06\x68\xac\x00\x00\x00\x00\xff\xff\x62\xf9\xf3\xe7\x0f\ \x03\x1b\x1b\xdb\x3f\x06\x86\xdf\x4c\x24\x25\x3f\x88\x53\xff\x33\ \x32\x32\xa0\x85\xe0\x7f\xe6\x7f\xff\xff\x30\xfe\xfe\xfb\x8b\xf1\ \xef\x9f\xdf\xf0\x10\x64\x61\x66\x67\xe0\x66\xe5\xfb\x2a\xc6\x21\ \xff\x58\x94\x5b\xfa\x0e\xc4\x81\x4a\x57\x25\x78\x14\x6e\x8a\x72\ \x4b\xdd\x47\x76\x20\x3a\x80\x2c\xc8\xf9\xcf\xc0\xc4\xc8\x0c\xcf\ \xe5\x00\x00\x00\x00\xff\xff\x62\x11\x13\x10\x7e\xf2\xf4\xed\x73\ \x59\x76\x66\xee\xbf\xff\xff\x33\x30\x63\x77\x3c\xe3\x7f\xa4\xc5\ \x2e\x28\x69\x10\x11\x82\x10\x33\x59\x61\x0e\xe4\x16\x7d\x22\xca\ \x2d\x73\x5b\x82\x57\xe1\xba\x14\xaf\xe2\x35\x09\x1e\x85\x9b\x22\ \xdc\xd2\xf7\xf9\x39\x84\x5e\xe1\x72\xe0\xff\xff\xff\x98\xff\xc3\ \x63\x1f\xba\x18\x81\x91\xf1\x3f\x13\x96\x21\x5b\x00\x00\x00\x00\ \xff\xff\x62\xd9\xd3\xbf\xc1\x2e\xa4\x2e\x6e\xd3\xc5\x2b\x97\x74\ \x59\x98\xa5\xfe\x42\x06\x53\x99\xfe\x33\x31\x22\x56\x01\xfd\xfd\ \xff\x87\xf1\xcf\x5f\xc8\x0a\x86\xbf\xff\xa1\x21\xc8\xc4\xce\xc0\ \xcd\xc6\xf7\x5d\x94\x43\x0e\x12\x82\x3c\x8a\xd7\x24\x79\x15\xaf\ \x49\xf0\xca\xdf\x10\xe5\x96\xb9\xcf\xcf\x2e\xf4\x8a\x89\x09\xb7\ \x03\xff\x41\x17\xcc\x40\x03\x05\xb2\x04\x84\x91\xe9\x2f\xb1\x91\ \x0e\x00\x00\x00\xff\xff\x62\xfc\xff\xff\x3f\xc3\xeb\x8f\x6f\x84\ \xbd\x4a\xa2\x37\x3f\xfe\x76\xd9\x32\x38\x46\xee\xdf\xd7\x6f\xdf\ \x99\xfe\x33\x40\x06\x32\x59\x99\xd8\x18\xb8\x58\x79\x3f\x09\x70\ \x88\x3d\x11\xe1\x96\xbe\x23\xc1\xa3\x70\x43\x92\x57\xe1\x9a\x38\ \x8f\xfc\x4d\x51\x6e\xa9\x07\xfc\xec\xc2\x78\x1d\x88\x2d\x04\x89\ \x74\x1b\x5e\x00\x00\x00\x00\xff\xff\x62\xfc\xf3\xf7\x0f\x33\x33\ \x13\xf3\xdf\x57\xef\xde\xf3\x66\xcf\x4e\xde\x2e\xa1\xfd\x56\x4f\ \x96\x4f\xfd\xac\x04\xaf\xc2\x75\x69\x3e\x95\x4b\x52\xbc\x8a\xd7\ \xc4\xb8\x65\xef\x08\x70\x8a\xbe\x64\x66\x62\xc6\xde\xe2\xf9\xff\ \x8f\xf9\x1f\xc3\x3f\x68\xc3\x96\x11\x69\xa9\x13\xd9\x9d\x78\x82\ \x00\x00\x00\x00\xff\xff\x03\x00\x3c\x1e\x17\xa6\x18\xe4\xa8\x9e\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0b\ \x05\x52\xbf\x27\ \x00\x71\ \x00\x74\x00\x2d\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/animation/easing/form.ui0000644000076500000240000001344012536324426022322 0ustar philstaff00000000000000 Form 0 0 545 471 Easing curves 0 0 16777215 120 Qt::ScrollBarAlwaysOff QListView::Static false QListView::IconMode false Path type Line true buttonGroup Circle buttonGroup 0 0 Properties QFormLayout::AllNonFixedFieldsGrow Period false -1.000000000000000 0.100000000000000 -1.000000000000000 Amplitude false -1.000000000000000 0.100000000000000 -1.000000000000000 Overshoot false -1.000000000000000 0.100000000000000 -1.000000000000000 Qt::Vertical 20 40 0 0 PyQt-x11-gpl-4.11.4/examples/animation/easing/images/0000755000076500000240000000000012536324426022263 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/animation/easing/images/qt-logo.png0000644000076500000240000001203512536324426024354 0ustar philstaff00000000000000‰PNG  IHDR.7s`xdäIDATxœbüÿÿ?Ãß™™™˜ÿ>xñXféžU ‡/ž¶y÷é­˜¤ò?~Q¹¿üÌ?øþýÿÇÊÅÆ÷Fœ[ö–$¯Ò5)>¥ËÒ¼J×ÄxdïpŠ>ccfÿÅ€ügøÏôïÿ?&†ÿ Œ Œÿÿ30Bi ÿÿbüû÷/3ÓßY›¦TÏmí}óæ /Û{/aFYEN†Œ ÿ™þýÿÇðçßo†ÿÿ00002°0±2p²ð|ãcz&Ì%u_œGî¦Âu ^…›¢\R÷8Åž±³püÀnõÆÿÿ1Ã9$zÿÿbüÿÿ?äµ³sò»ó&sò ÿcgcûï,Ä !ÃÆøíë?FFˆ9Œp ™þ320üg```øÿÿ?Ó¿ÿÿüÿñп? ÿþ3°0²2°³pÿåg~!Ì%y_ŒGâu …ë¢<2w…9%žp°r}Åç¡ÿpKÿ1bñÿÿl’½ Â0F¿/Ò!ƒÆAÅ]p쨻Ïâkºvp(¨ƒàÖ±ˆ $÷:ˆ[^à6·Ëv:ž…ê⇲«KS¦x¿fgL þ ©Äd¢D$‰H¡*0,0.¬¸‘ïü$¬ïí?÷ÿÿ"Ùáÿÿ10pp23|ûú‡áôÉÇ R\ê ^&> ƪ† ¢" ŒŒ _~}`xöéõ×'®¾:Áðõ÷'nV>œŽgdd`€•JLŒL ÿÿÿgøOÀÿÿ"ÉáÿÿC}çÆ†£ûÞ2T„T0…g0°³³2ü‡TépµZb ®*Ñ Ï??`Xsu"Ãé';¸Øø0‹M†_?ÿ1°°°002ýeøöû   +;^Çÿÿ":;þÿÇÀÀÎÁÄpãòW†k_0Ì.œÎP—ËÀÂÊÄð÷ß_†ÿÿÿÁ+›?3üþ)Ò$yår-úBtò¾ýúÌÀ-þÿg``ecdxõìÃ’Y<ÄKº¼62ÔØ/f0”tdøñç\-6ÿÿŒÔ!Â@@Ñ?3»u S‚D5X$¦ áxnĸ i I1]¶ƒB’p‚ÿÔÿ þ<î™ËùÊid»nèSBE15DÓ€I X¤ îdÏ4‹›ùŽ®¢b¸;ªÂ­}½¤®VŒâ”j¼dRÎx øýäÿÿ":Ä™î~Π©¬ËP•ËÀÀÀÀÀÊÂÂÀÈÈÈðÿ?$™Üx{’¡fC:ƒOeÃÚC[ !ƹí<EAm†Ÿ¾10313üÿÇÈðôñm%UQi¨cþQÿÿ„Ô+Â@FáóߦLë@ P, IuÉX Š-`p$xb ¶w°ÂŽørþ†§ âéM<Þ™M*B^д ’ðäHâpݳØL‰¶åÖÝ1ž—,×+LÂÝñÔ’gQ¯¢ö™x=ÄåüdØ|í4Ãd˜ ýàòÿÿ"âÿ!eõ+„Äü­=˜¡-0Xdn¾1‹áßÿ¿ ì  ¦æ’ rš" U3Ú¾ÿ‚„.#´6”t`áWf`býÅðòÅg†ß/ß3Xé˜ ,c``øõ÷;Ã×ߟ¾ÿùÊðë/öV1ÿÿ"èp&f†ŸßîßûÈ`©cÄ %, åÿ ÿ™>üxÍðàýU.†?ÿ~3üþó‡ASGááãû .…„æÿ ÿýe`gádàýdİbþC†dÓF†Í3v0¸˜8@RÈ)j3˜É¸3hˆ˜0Hò(`uÿÿÂ[þÿÏÀÀÂÂÈðþÝ_†ïï0XéšBñï3¤¼edddxùå!×_ØY¸ Éâïa16æ §®cð4s…çMQ3†wúTÅ´4åÕþþû u8$-e½,d<™ž¾Ïа/ÃmÿÿÂâÿ˜˜Þ¿ýÍÀð™A_E‹ÞƒDí›oÏþüûÍÀÈÀÈÀÈI«œÜL Ì\, 7߃ëad‚èÓSÑdàâãgøó÷n‹ T@ÿÿ"˜T>¼ÿÅÀÄÎÉ  !ƒ†ÌèO?ÞBš¡Pþ¿ ¬¬ Üܬ Ïß¼„XÄÈ×'%,Á ©&Åpñþ%†§¯ŸÃCþüýËðûÏ?»Ðÿÿ"\sþg`øüé7/7ƒ(¿0Ô3ÐNTɷߟQ<ÂÀÉ, ï?‚ëù INvN†ˆ(-†ÔÎdi†ÃS72üÿÿŸáÃ?fFf†í72캽‚A„[’©ï€ÿÿ|•M € DŸùCˆP÷¿['ˆ6-41ýZ¸Šöó†˜pÕwžb!ø…àç,ß‘ñ,DzSÎiâ•(µ`µ†0)…·+ÖŒzôÔNö¼‘ä ¶ŠÓóËóÿÿ„—Á €0 C_·®›ÅÿÿW­ždï!yäLjd³AW[j"c:" Z8âäºc‚ó¶“™|{zMŠTš ¬:]}™ùÿÿ"ªÿû÷? 33²ùpiõ¡»’±ÿþû u *`ebƒ&liÒ:üÿÿÎZÿÿ"²­)öqöç°—ŒP)l²LŒÄ !àÿÿ"ÊáLLŒ ÿýcø‡¥IÊÀÀ€½Z†:˜‘{¹@iÏÿÿ"ª8da…¤Õß~Ã… XY±¶ÿýýÏÀÌÄÄÀ„e€æ÷¿ŸÐ¢Ž¼‘8ÿÿ"⌠ìì, ß~|gøñ {»•™Ãþÿ þþc`eee`aFv8$üüù-"Éÿÿ"Xs2220psCú–¿~‚ ÿ‡;Ž“•›2¨‰pÚÿ ¿ýeàd瀅P X>ùúë#$‰‘érÿÿ"*óò±2|ÿñáåû×ÿG8‡M€)ô!ÿùó//Dª‰‘‘áÏ¿ß Ÿ~¾c`fd!Ø·ÄÿÿÂïp¨øÙþüd¸÷ì!Ôᨖ pˆ¢t³þüT\b‚B žÌŸ~¾ƒ8œ‰…Ü ÿÿ"âÿýgàda``a`¸xç*š¿ a.Â%ÅÀÆÂ )) í÷Ÿ?þ3üüö‡A^BîYXè¾üòˆáë¯ ÌŒÌd§qÿÿÂëpFF†¿þ3ðð11ð s2œ¼zŽ^A.Ê-à À.ÂðÚOdbf`øüáïÿ ºÊšPÓ-¾{ï.3üþû šÆ‘ŽHNLŒL ¬,, ÌÌØË{ÿÿ"\åÿc``eg`PPâg8{ã2ãW¡]6Hûúßÿ œ¬< JB: ¿þýd`d`b`bbdxúè;+'/ƒ®Ä"¤nصW'X É¥<‡ú‡Máëï /ß½ax÷ñ#Ö"ÿÿ"ª8ü÷÷?ƒš/Ãço6ÛÉÀÀÀ€QÛ+†0üûû—™íÃÏoL §Ž>`uòfP“Qaø÷ï##$$Ÿ|ºÃpûíEV.V6&†Ïß¾000@jfXmj%ïÅ`-’À ü'€!Uwƒ(4$†<ÿÿ"ªúýë?ƒ„ ƒ„Ãôõ‹~ýùÅÀÂÌÌðŸá?|äI[Ì‚!L/ŸáÓ§ï [Ö=d°Õsa˜˜× 5ƒ‘áÄ£ûï­bøúë 3ƒ˜'ÃÃOž¿{ pHó² 3¹¶0´%´18é:3À‡çšÿÿ"®­ÂÀÀðŸñƒ­“ÃÕ[¦¬›ÍÀÀÀÀðûϸÃþÿÿÏà§‘ÁPg·†aMùF†½×0ˆð‹@ÆVþ203²0Ü{w™áЃõ Ül| ¿~ýfP×ágøøñÃÊ=› öüƒå´!8,9ÿÿ"jŽ‘‘á÷Ïÿ 2, Öî2 •SÛL5lu-~ÿùÍÀÄÄÄÀÌÄÄðÿÿ?U)UU)H)I¿ÿ˜Y>ý|Ç0çl-Ãß¿ØY8~ÿþÇ $ÆÌà(Ëбª›A\X”!ÄÞŸ™‘áÿÿ Ÿ}`xøá:é';Þ|{ÆÀÊ̆ÒRÿÿbäñûÏÈÈÀðëçYEv·@Üûÿÿ30pp03œ:ò–áæù¿ Kkf3xY:BÊuhþ÷ÿÃÿÿ’6žøäãm†é§Êž~ºËÀÉÊüüÿŸ‰áË—_ /_~eP“QfcøñçÃûï/>þxÏüèÿÿ"Éá0Ë89YÞÿÌpñôGoýP†dÏx%MVhoæào¿?3¬½:™áðƒ þý‚Œ ØÂ†¬YX˜~üúÁðûÏÈŒ+´äaÄ:Ê ÿÿ"y‚‘‘áû·? 2rÜ ~áÒ w71%X1´.îc````øûaÉŸ¿Þ_ËÀÀÀÀÀÅʋՌLQŸ?ÿ203°1p°r3°³p203B' °Mÿÿÿ"kò„‘‰áׯ ?¾ýePSg”àeØzl33<Éð± 3¸©Æ0|øñŠáãÏ·Ð4=*Pz=xÛ0ÿþÿÿ"kFnÑ?†ÿŒÔ5νÊpéÞ=%È€´v ÔÊfáSexñéñ'›>üx…³ýN„­ÿÿýÿÃÈÏ.ú ÿÿ¢lºŠ‘á÷ïÿ 꺼 þc˜±q!ß¿à 1FV+9† ,^6†¿ÿþ0àÌ@#ã¿ß2¨ íÿÿ¢Èጌ ÿgà`dpt—e˜¹v1Ãö{ØXÙàÿÏðŸˆù¢Àÿÿ ÿ™˜™Ø~;(Ïÿÿ¢x‚‘‰áç Ú†< ö> i“2flšÏðáóg†ÿÿm”o¿?3üùÿçÈÓÿ322ýcbdþÃÂÄúûý÷WŒ ¡SÔEŽÿÿ"¹8Ä`eü·ï¿ž<ýÀ ) Å ()ÇÀÎÆÎðý÷g†?ÞAG¼0Ó6dbº‚ºØà?Ã?æÿ þþûýï÷ß_L¶òA+RM[bX˜Xþÿÿ";sbXÎÈÀðãû_ff51†_¿¿1Üÿx >µ fùY ÁoãþgøÇü÷ß_Æ¿ÿ~3þý÷‡áï¿¿ Œ ~,+ßqN±Ç¢\2·ÍdÜ—šËz¬‚ ´ÿgÿÿb¬zøO• pHóú?ÃÏþ32²üçdeƒ/×ø÷ÿ/óßÿûÍøç߆ÿ k^Ø ü*À!ÿX”[æ¶$¯ÂuI^Å«’¼ 7E¸¤ðq½fbdþÇÀÀÀðÿÿ?&h¬ÿÿbùóçÛ?†ßL$%?ˆSÿ322 …àæÿÿ0þþû‹ñïŸßðdafgàfåû*Æ!ÿX”[úÄJW%xnŠrKÝGv :€,ÈùÏÀÄÈ Ïåÿÿb~òôísYvfî¿ÿÿ30cw<ã¤Å.(i‚3Yaä}"Ê-s[‚Wắâ5 …›"ÜÒ÷ù9„^áràÿÿÿ˜ÿÃcº‘ñ?–![ÿÿbÙÓ¿Á.¤.nÓÅ+—tY˜¥þBS™þ31"Výýÿ‡ñÏ_È †¿ÿ¡!ÈÄÎÀÍÆ÷]”C‚<Š×$y¯IðÊßå–¹ÏÏ.ôЉ ·ÿAÌ@²„‘é/±‘ÿÿbüÿÿ?Ãëo„½J¢7?þvÙ28Fîß×oß™þ3@2Y™Ø¸Xy? pˆ=á–¾#Á£pC’Wáš8üMQn©üìÂxˆ-‰t^ÿÿbüó÷33óßWïÞófÏNÞ.¡ýVO–Oý¬¯Âui>•KR¼Š×ĸeïpоdfbÆÞâùÿùÃ?hÖi©Ùx‚ÿÿ<¦䨞IEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/easing/ui_form.py0000644000076500000240000001475312536324426023042 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'form.ui' # # Created: Wed Dec 16 18:18:01 2009 # by: PyQt4 UI code generator 4.7-snapshot-20091216 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(545, 471) self.gridLayout = QtGui.QGridLayout(Form) self.gridLayout.setObjectName("gridLayout") self.easingCurvePicker = QtGui.QListWidget(Form) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.easingCurvePicker.sizePolicy().hasHeightForWidth()) self.easingCurvePicker.setSizePolicy(sizePolicy) self.easingCurvePicker.setMaximumSize(QtCore.QSize(16777215, 120)) self.easingCurvePicker.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.easingCurvePicker.setMovement(QtGui.QListView.Static) self.easingCurvePicker.setProperty("isWrapping", False) self.easingCurvePicker.setViewMode(QtGui.QListView.IconMode) self.easingCurvePicker.setSelectionRectVisible(False) self.easingCurvePicker.setObjectName("easingCurvePicker") self.gridLayout.addWidget(self.easingCurvePicker, 0, 0, 1, 2) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.groupBox_2 = QtGui.QGroupBox(Form) self.groupBox_2.setObjectName("groupBox_2") self.verticalLayout_2 = QtGui.QVBoxLayout(self.groupBox_2) self.verticalLayout_2.setObjectName("verticalLayout_2") self.lineRadio = QtGui.QRadioButton(self.groupBox_2) self.lineRadio.setChecked(True) self.lineRadio.setObjectName("lineRadio") self.buttonGroup = QtGui.QButtonGroup(Form) self.buttonGroup.setObjectName("buttonGroup") self.buttonGroup.addButton(self.lineRadio) self.verticalLayout_2.addWidget(self.lineRadio) self.circleRadio = QtGui.QRadioButton(self.groupBox_2) self.circleRadio.setObjectName("circleRadio") self.buttonGroup.addButton(self.circleRadio) self.verticalLayout_2.addWidget(self.circleRadio) self.verticalLayout.addWidget(self.groupBox_2) self.groupBox = QtGui.QGroupBox(Form) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth()) self.groupBox.setSizePolicy(sizePolicy) self.groupBox.setObjectName("groupBox") self.formLayout = QtGui.QFormLayout(self.groupBox) self.formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow) self.formLayout.setObjectName("formLayout") self.label = QtGui.QLabel(self.groupBox) self.label.setObjectName("label") self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.label) self.periodSpinBox = QtGui.QDoubleSpinBox(self.groupBox) self.periodSpinBox.setEnabled(False) self.periodSpinBox.setMinimum(-1.0) self.periodSpinBox.setSingleStep(0.1) self.periodSpinBox.setProperty("value", -1.0) self.periodSpinBox.setObjectName("periodSpinBox") self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.periodSpinBox) self.label_2 = QtGui.QLabel(self.groupBox) self.label_2.setObjectName("label_2") self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.label_2) self.amplitudeSpinBox = QtGui.QDoubleSpinBox(self.groupBox) self.amplitudeSpinBox.setEnabled(False) self.amplitudeSpinBox.setMinimum(-1.0) self.amplitudeSpinBox.setSingleStep(0.1) self.amplitudeSpinBox.setProperty("value", -1.0) self.amplitudeSpinBox.setObjectName("amplitudeSpinBox") self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.amplitudeSpinBox) self.label_3 = QtGui.QLabel(self.groupBox) self.label_3.setObjectName("label_3") self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.label_3) self.overshootSpinBox = QtGui.QDoubleSpinBox(self.groupBox) self.overshootSpinBox.setEnabled(False) self.overshootSpinBox.setMinimum(-1.0) self.overshootSpinBox.setSingleStep(0.1) self.overshootSpinBox.setProperty("value", -1.0) self.overshootSpinBox.setObjectName("overshootSpinBox") self.formLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.overshootSpinBox) self.verticalLayout.addWidget(self.groupBox) spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.gridLayout.addLayout(self.verticalLayout, 1, 0, 1, 1) self.graphicsView = QtGui.QGraphicsView(Form) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.graphicsView.sizePolicy().hasHeightForWidth()) self.graphicsView.setSizePolicy(sizePolicy) self.graphicsView.setObjectName("graphicsView") self.gridLayout.addWidget(self.graphicsView, 1, 1, 1, 1) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle(QtGui.QApplication.translate("Form", "Easing curves", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_2.setTitle(QtGui.QApplication.translate("Form", "Path type", None, QtGui.QApplication.UnicodeUTF8)) self.lineRadio.setText(QtGui.QApplication.translate("Form", "Line", None, QtGui.QApplication.UnicodeUTF8)) self.circleRadio.setText(QtGui.QApplication.translate("Form", "Circle", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox.setTitle(QtGui.QApplication.translate("Form", "Properties", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("Form", "Period", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("Form", "Amplitude", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("Form", "Overshoot", None, QtGui.QApplication.UnicodeUTF8)) PyQt-x11-gpl-4.11.4/examples/animation/moveblocks.py0000755000076500000240000002026312536324426022274 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class StateSwitchEvent(QtCore.QEvent): StateSwitchType = QtCore.QEvent.User + 256 def __init__(self, rand=0): super(StateSwitchEvent, self).__init__(StateSwitchEvent.StateSwitchType) self.m_rand = rand def rand(self): return self.m_rand class QGraphicsRectWidget(QtGui.QGraphicsWidget): def paint(self, painter, option, widget): painter.fillRect(self.rect(), QtCore.Qt.blue) class StateSwitchTransition(QtCore.QAbstractTransition): def __init__(self, rand): super(StateSwitchTransition, self).__init__() self.m_rand = rand def eventTest(self, event): return (event.type() == StateSwitchEvent.StateSwitchType and event.rand() == self.m_rand) def onTransition(self, event): pass class StateSwitcher(QtCore.QState): def __init__(self, machine): super(StateSwitcher, self).__init__(machine) self.m_stateCount = 0 self.m_lastIndex = 0 def onEntry(self, event): n = QtCore.qrand() % self.m_stateCount + 1 while n == self.m_lastIndex: n = QtCore.qrand() % self.m_stateCount + 1 self.m_lastIndex = n self.machine().postEvent(StateSwitchEvent(n)) def onExit(self, event): pass def addState(self, state, animation): self.m_stateCount += 1 trans = StateSwitchTransition(self.m_stateCount) trans.setTargetState(state) self.addTransition(trans) trans.addAnimation(animation) def createGeometryState(w1, rect1, w2, rect2, w3, rect3, w4, rect4, parent): result = QtCore.QState(parent) result.assignProperty(w1, 'geometry', rect1) result.assignProperty(w1, 'geometry', rect1) result.assignProperty(w2, 'geometry', rect2) result.assignProperty(w3, 'geometry', rect3) result.assignProperty(w4, 'geometry', rect4) return result if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) button1 = QGraphicsRectWidget() button2 = QGraphicsRectWidget() button3 = QGraphicsRectWidget() button4 = QGraphicsRectWidget() button2.setZValue(1) button3.setZValue(2) button4.setZValue(3) scene = QtGui.QGraphicsScene(0, 0, 300, 300) scene.setBackgroundBrush(QtCore.Qt.black) scene.addItem(button1) scene.addItem(button2) scene.addItem(button3) scene.addItem(button4) window = QtGui.QGraphicsView(scene) window.setFrameStyle(0) window.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) window.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) window.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) machine = QtCore.QStateMachine() group = QtCore.QState() timer = QtCore.QTimer() timer.setInterval(1250) timer.setSingleShot(True) group.entered.connect(timer.start) state1 = createGeometryState(button1, QtCore.QRect(100, 0, 50, 50), button2, QtCore.QRect(150, 0, 50, 50), button3, QtCore.QRect(200, 0, 50, 50), button4, QtCore.QRect(250, 0, 50, 50), group) state2 = createGeometryState(button1, QtCore.QRect(250, 100, 50, 50), button2, QtCore.QRect(250, 150, 50, 50), button3, QtCore.QRect(250, 200, 50, 50), button4, QtCore.QRect(250, 250, 50, 50), group) state3 = createGeometryState(button1, QtCore.QRect(150, 250, 50, 50), button2, QtCore.QRect(100, 250, 50, 50), button3, QtCore.QRect(50, 250, 50, 50), button4, QtCore.QRect(0, 250, 50, 50), group) state4 = createGeometryState(button1, QtCore.QRect(0, 150, 50, 50), button2, QtCore.QRect(0, 100, 50, 50), button3, QtCore.QRect(0, 50, 50, 50), button4, QtCore.QRect(0, 0, 50, 50), group) state5 = createGeometryState(button1, QtCore.QRect(100, 100, 50, 50), button2, QtCore.QRect(150, 100, 50, 50), button3, QtCore.QRect(100, 150, 50, 50), button4, QtCore.QRect(150, 150, 50, 50), group) state6 = createGeometryState(button1, QtCore.QRect(50, 50, 50, 50), button2, QtCore.QRect(200, 50, 50, 50), button3, QtCore.QRect(50, 200, 50, 50), button4, QtCore.QRect(200, 200, 50, 50), group) state7 = createGeometryState(button1, QtCore.QRect(0, 0, 50, 50), button2, QtCore.QRect(250, 0, 50, 50), button3, QtCore.QRect(0, 250, 50, 50), button4, QtCore.QRect(250, 250, 50, 50), group) group.setInitialState(state1) animationGroup = QtCore.QParallelAnimationGroup() anim = QtCore.QPropertyAnimation(button4, 'geometry') anim.setDuration(1000) anim.setEasingCurve(QtCore.QEasingCurve.OutElastic) animationGroup.addAnimation(anim) subGroup = QtCore.QSequentialAnimationGroup(animationGroup) subGroup.addPause(100) anim = QtCore.QPropertyAnimation(button3, 'geometry') anim.setDuration(1000) anim.setEasingCurve(QtCore.QEasingCurve.OutElastic) subGroup.addAnimation(anim) subGroup = QtCore.QSequentialAnimationGroup(animationGroup) subGroup.addPause(150) anim = QtCore.QPropertyAnimation(button2, 'geometry') anim.setDuration(1000) anim.setEasingCurve(QtCore.QEasingCurve.OutElastic) subGroup.addAnimation(anim) subGroup = QtCore.QSequentialAnimationGroup(animationGroup) subGroup.addPause(200) anim = QtCore.QPropertyAnimation(button1, 'geometry') anim.setDuration(1000) anim.setEasingCurve(QtCore.QEasingCurve.OutElastic) subGroup.addAnimation(anim) stateSwitcher = StateSwitcher(machine) group.addTransition(timer.timeout, stateSwitcher) stateSwitcher.addState(state1, animationGroup) stateSwitcher.addState(state2, animationGroup) stateSwitcher.addState(state3, animationGroup) stateSwitcher.addState(state4, animationGroup) stateSwitcher.addState(state5, animationGroup) stateSwitcher.addState(state6, animationGroup) stateSwitcher.addState(state7, animationGroup) machine.addState(group) machine.setInitialState(group) machine.start() window.resize(300, 300) window.show() QtCore.qsrand(QtCore.QTime(0, 0, 0).secsTo(QtCore.QTime.currentTime())) sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/animation/README0000644000076500000240000000153612536324426020435 0ustar philstaff00000000000000The animation framework aims to provide an easy way for creating animated and smooth GUI's. By animating PyQt properties, the framework provides great freedom for animating widgets and other QObjects. The framework can also be used with the Graphics View framework. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/animation/states/0000755000076500000240000000000012536324426021053 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/animation/states/accessories-dictionary.png0000644000076500000240000001242412536324426026232 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<‘IDATxÚå[yŒdÅ}þ½£éî9v¦—ݹ–=faïal® 8¶ N,"'2 ’ Æ„’YŠ0 àøG$¢$v›€óO'†€Ãa`1æ°!»ì²÷ÎôLÏôÝý®ª|¿z]óú˜Iï´e)e}T½zG×÷»«fmH)éÿs³é—¸½tíµžëf ð„#ég¥/³Bˆ¬cN"-ýàßó•WþŠúh¿0 xïK_JT=/ëH7køA–ˆAV’ÈR CRRŒÉ@àž`‚)‰‡pM‡ѸًÆF!†.:pÀû…XÀÏï¾;nÕjY×óÆLÃÈ b/="È IY’LB†} Ó Gn Ðó€&!dÜ#Ù„z®´ ÒsÉcRèÍDïÜyçí帽)yâ䈱n$& ÊdŒHI€}â&¡8îB2za"ìCíð˜ûæu¹2¤†ˆÞׯCˆöß4¤}xì ¿rÅ•—ßå˜C” @ˆªÁÿUÿ¡Pôz(Ãa¤ˆt4VïZ©4:\™ÍÚe3P0c6æáµÐÄñF2A¤…U©´ £Ã*„0.0 ãï%Z_0ÐNÎ ß^/•©T,Sv|œür‰È4iµf&$êõHá♌ÖTHÌ`  Ç;˜ jü²¥æüZƒ¬Á!ô5²†ÉÍÍ¥SÊ÷…Á`^îÖ¾¶±¿©¡µ €Éór<¢mA ×ðƒ…¥"Åvî¤ZnŽÌdRKIk]uñl–¼B6RP­„kñ=2b1âOžGÖ@J ¨1?¯4ë×A6™Ä;ÈÉåH²eÀÒ¼z•È2ɯÖÈ„P×£äù]麑ö÷®€*ÚË+ì× 1W¯¯ŸI¥¨†uªU²†G(`éÇâx¢ýë0,‹tH¸4Í-,(r6´é,.´ãꞤÐÿµÝ¥%n‰\!X*4M¾3>ª'ÛÂ7¼èžÔq¥Eþ³þ›Û·Cð§ÖâvSû.Á°ü13˜!{ÝI˜§ 4é¶æ,Ì+ hÒJ$•†ÜR™M[I«~úTKT;qB»„&ÚA^2Úï5|ý.Ú,cˆá©~,ÀR®TE9ŽKçlŸ!×qæÛ•LÀ‡•è(zY‡šæî·¹@8¦hÜÙR2‰íŸÛ°!‰°V“hk.„Þ¯×ñ–Ò`­\¦B.Oç^"ˆÿb±ËâñÝGôj?. «AàºB  ÒµZJˆîöȈÒbõØQŠšâÔQFäiEAˆ–º¾ƒ°\Qmäh²2BÒû©H@~- ƒB¤Q ð¸PZ6’Ô‘Ú;)µ04鮀¨,JÚ ü{ÝØØêû…Ž1E¦Þ‘9ºa Ä54³…x,] ð"%1!›[Ò DÀËs"Ú–<¯EsN|]ùéÏ_OW=ñO=‚Zùˆ´†RŒ0šk²­}À­ ±ÖMïÝMÕ…yð|Ñ‘ ´¶£±JQ%Tƒ#眳â&éC¿óÛ4uà aNç2Ù0u1‘m‰ ´z±ÄXÙ¤T™  ð§äû J®Kã[6Cy²2Z»€PPnZDØÛÛfè#ùuò8@ ý|„Ãßý.Í~ÿ)2m›+Gm)Í÷WD7ùÕïëÀ4zÏÆSÚY @¢µ¸€[ôý¼N…A±HeÂøÈ:mÒ 2"¹ú ︃&.»Œì‰Éåʼn–ÞéÒ?%n‰±Q}ï,Ñí Ñ9AØ‹&‘u¦¹¿ 7óMà"OÅ3g8p^oר^Œ¶<ŸÀsÜοé&eÑó‘–ÇO·ô”’`oÒ»M»OuHÕ¨\©D÷#"ª$î' (œtÝ9-€J¥JelcíK/!btX•lǰqZxæiJÂ]&ýôóã$røTG=PŸ;CÜR›6“üïç•ö<ÇQÖ`Y\ŒQ hñDziÇÍ7ÓøîÝ”šœ -[¨„ÍÕ¯ºZ @[ã¬Kb³# zg'€?/ˆSaei)¬\W»ÀŠ®0¸e+_æþúQâ¶ëÖ[aN—”òªdNÏÌP[áz"A›gðüØ'~ƒŠÕ*Ó¶¸ ÖÒÕˆ#ÏýÞýÌuôÚ¯^I‡.ÿÑóÏaÅ/>‚aè³s .Ж œJb^l½V#‡FÐd;ќ޻j煉gæhá?~@“W^IñééviPùðašúØÇè’ûï§_ù½kik­D[·o£+î½—~÷ÀkÛ¶M“WÂøèãSá¾M~òå’iÊ%RôæÜ"=ÿå?£ ¼¶€™ÏŒŽ¦ ´µ@g·.DA°¿Â47LOQ û+‘èöQöýæ1õè…ªxAs>LÜöÜv›w$ÙDõÐA²ZçùxäQzþÛÿH¯Üt#¾å ¢«¿ó’ÃÃêÙ‘}ûhÝyçÑÑç~DBÊ6Ÿ¯Zö2y’×°ö ì^«Èe ‚%¡¶Å¨vœOul†ìtºM󂡃—eqÄó¾š;òÞû”{î9š¸â JlÝÖnÎ@ý½÷ˆ[ÖàA`0x*&SôÚ>C³O|â8]Ú|Í5êÙ±Í窥5‚ ¼†è ¯‘ Úß x€S‚¼>Ù01ŽT8Oqø¡ÎýÜËe4´y39ˆúÖùçÓðG6ñ‹”Úº•¸í½ývXA£Í êÍ}Erjª­bt “rO>AhìBjÎ2 @Ó»÷¨^µAv“Ws±0œ ´ÖZË©·ÅssdŽò§.u#`‘#ðÿ1µ‹/¹˜v —²/üÖÛT|õ¿ôRÜ·w¹à©Jäà›SW]Œ¨o…ïÅÙÒ0—ÿÛ¿Q½‡õ¾åfr ´íŸþ4}êÇ/чøsÚõ§B×<û_4™¡÷_~µËp=rçúõ›ÖjðŽ;ά>áZ ÆGä™Aö•v ðÿm[©|èy¾¯I,›µƒÏÏ~óëÄíÃ_½‡\7 OR½“ÙñO~’ª¥2y®KU¤Ýón¹…{˜¾þÆ2™ƒ… ýìêS龯’<~Œ¦öï§-Ó“äßs7½ùµ¯“ošzñmAq]"±o­“Í-qÕâR¦kXT u K*z"h+ÇþªGßWÖ€Ö~&€ö³gDÓHœÊöÝu½ùo„Ky "/ºˆ®|è!Ú{ã”;p€†Qá‰'¿G/>ñ¹v¬­¼=X÷èÈcÓÈ·&[•ãIhÚêŠ zl‡™àŸÙKÝÅj´iΓ矇Z`‰bHOuÄÝ:M^ó[4ÿúëTľa¨¹¡T®¿ð¡¯‘ í–Ÿ}†&“qÊÞtýÏ“OQî¡èÄý!e°uŽeÒä—+ôö™YÊÇÈgò!-•%æp¿“(°âY–Êk¶€¦¸˜ämñ®];iþøIŠƒ ÀÞ€Û ”K`®éÁ Å! ?ø½ü•»I¶“Ãuæo½™ŽÁ5VLð Cõ§ø¾• ÊIÜd"-~‚Ôƒx眅³f m-àV[ja<‚¨<ž]Oôî;až}ûM:õÙëèLß3-ò-‹„o;0ôЉ ÙÑf-·[…$­N”[OKñ-ŸI¿P(ö ‚Q-C‹:p*,χ©ÐðÂʼãÑû 7‹ .KPÑ´[ÿÕFtL¦{)Ûvl¢cŒE3tëjŒî °½(ÒÏFs&Jâ=ku}0²\ 8\ ‹ds}Ωº¶~dõq·;çºÝ ·Öõ|×µs |èáç‹AÓ¨Tka*\·ŽL½·_¡ÉÎëÕ„ÐiâÏ÷pƒh®· °ŒµX€¼¨Ї›ÔuÔún©DoŠ\·›p/­Æ*‚éÖx7ñþƒ""`[ ì!€È Nã`Ä—ÒIis-°ž»¶«ba¡·ö™pÿn{¹AçA\•Ä=ƒàJ»BlA‹:lÚy>UQ¾&²Y4]ŒÖk¢^AoÕà&£ûÑ5£Ç°+(â¼mbbóº‹úˆü\äú*4ŸX¿^ŸùwGëιUH©~5uÆ-ïŠ1€Z,pж÷¯IÚP ,ÁmT ŸBUW™ŸW„h'½qM¸ÔJ}ôÜZ¬çzç7 {A‰ÆÁB—ÕÖs|>L…ØRò¢Öõ¸g6è]Q­w6Ìîi*[œuÜ ‹!§P z¥Â ¿Ô;v5éÞÙ 7ñnaꬅœ‚8¾/È4çø n­§t-Ph­*Uª;yÕª:)˜£^Ú×VÒËz¤A]V+bø]½'„ôÙZ‰ÀH ;•–öðLŽŽÑàä„ÞDS»vÈ¿¸óË×ýÛ»ï¾Ü³Xñ`ÄóæZkåpƒR¡\Zê&݇¸My÷ˆAcˆÇ#‘F&ÃÿxR ŒËÑÉIcdzÚ™·m;f™øŸmÙ‹Åȶ-ôqâëd2ICXçy““ ÎœzÔÝðx£1+ðŽþ#Éäöj JŽ‘€V{ïh-isd c­ ™JI+“1l¤Õl‰3ããæðô”™Éfm2ÔÆÂæåZ–EqE$ãq5Ž'¸‡¤c˜·cüœza¨gÒ©4í?wRé­g)¼Ò®Y C• wìÀ¶ø¸ §‹µZègx6°¬@ÄbB&R H™Î XŽÉĆsÌÔøFcÝä¤=8:fAU&/Î4”C’É‹L›&€&Œ{!iÀbà®êY }ä‡y~Wƒ¤æ&’™n÷Ú¯ž ù$I!2®ãѶ©)ùêñÍÌHû⣛6Ùƒƒ&~ÈÔ d­`¬4€Y²sùøÔ1xÌ‹W൙ü4 è9uøÉ‚7|—c÷ü “ …Øü]4¾ÖÙ,ÜÅÖënÌ”©5œug‚Š¡)§8òŸ)¼‰Ï}ç"#”I§@2Á Q„AE½&˜ŒŽâ£iY¼xŒ-@l¢Çš„z>Z…&¬5ÝšºY0<×ö ¾®‹eË™5l‡£Z@[@¥y.°åäž}Ö¦éiÊŽ’ÝÔ4± “;mªšDD޼Ð0¥:.kW/XC›4£mŽßÑB@k޵@W.óùÛ|¾JÂO³qôk,µó VBC“ÓÒ×ZÔÚ×d;›N›&uÓµöô³:#t¶r>ïξóN=ô¨S:y¯ž™•A¡`Xº= E|ÈŽ¥2©d2–ˆ¿ž[ü×>²@” O9΂’=;ЋnÕ¨‚Ö4Òµh\k´¥¯ÖÆïq+ærÎé#Gê Gޏ…ãÇýòéÓÒYX0übÑ6DÜ÷S¶iÆñ¸ †Q L£ä ` ¢œCÑuèéÓ³O¾ÏëW:4ê¾_ò¤ŒkrÚ„[ÍUC]©fgÈ-;æ,=êWggy—¹L.!DÊ„,Àï5)K|(ƒZ¤XÇÖœÿ cYˆ|›´<sÔuç0_gWeèÌÔ€P çû€ Ôq@zl|qqG°Yƒ¶ÝEä¹C‡êyÃ_ƒ käD©Sš"ÍädÙ†~CÊJ“œ"Vñý|Ä|?‡|;Ñ2ê Çð[´÷z=««ÀXµp€Ò{ÆK›—–ö¾ôàƒ‹‰zÕ<5Ÿ¯á€T‚œm6ÉŠ_þod€:ÿY­.e¡æûKh¬èy ‹8f?‰ÍÕ‚ë–4¡>ˆ1 ÏÜúþ¿ÎB&…æ¸RÚ~óääoL&w§Ò)ÿ¹ÜOª¨J@Äp€š;㺋ݤ€Þ¤¸Œä(w·ÕÈö+-]† ÎF[kÔ}0Ä>xè,&Þ„¡k„_.bý·ÿÇýçÛ#]8IEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/states/akregator.png0000644000076500000240000001141112536324426023536 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞbKGDÿÿÿ ½§“ pHYs¯¯^‘tIME× I†pA–IDATxÚí[ t\Õyþî{³k´Z²%Ù–dclƒ16¶á°4ÂÚ”†ÒBr ] hKH ‡Ú­sRR$­{ ä°•Í@°V/€±-ÛØ²llÙ²,ÉKiöåm÷ö3ïðô:š&=Éi~O÷½ûî›yßwÿå¾+´?Úÿoc8»uRíô‹]3—\·ï<¡¤<гÃBÍ q5J"ÄSã!‘…„À€áèÔŸCùƒ@üØ•h]v7çXÆÓQ™BpáªÀe?„ì`n‚ \‚Ü×Òº2. mHèjHhJHèÙWÓ$T|HhÙ0…M ™ß;Äž?Çù÷¿ˆæEÌ$®&9C2€Ä€šÌCÏ@hðl‚W’à¦P²\HSNÐÁu-'@× $ A ®‡C 6•3¡ n„„:GòÿN€§.îÄ™·,…°Ès#ǹ(֧硘âdí>Ó„W3¤£BÈ‚snpÖP29 RÏĺ&Ìn€<‰ 'h`N<Äd˜ØÙq)ºÙÅ•à…kSXxm ?óF œb8Æ‹Ü5¢ÈXò@NÜ€ËGðçÍô–Ô§âH4Æc •?Ù Ô׳.…Þ4—œìèC«Á³Ô8®ÈŒˆU¢_c PÒ$”5ˆ‰x¢×E1‘Š|Ö±~¶iZH¿×¾5¨ZºžéË– ξÚó8N>¯BLpÝ"3iyDÙ‡çå½€Pþ³íky¼ ¬½zfRCéa5)˜¡bI%(|8΋Ìl1aŽ‘8/Z“'òé1äì“Õ0^¤šäó·BÀ_ ÉØ„J’q— %^FœBñlòöD1Ý,¯Ö#òÏ-@¡ÛxA±Øu•ÂDYÆÃâƒD>Œã„żr@Íè6ãMˆE®’-pw˜¡C ÒA0Ž=£†Jù$È1)ÆK'¦Lœ· à$[¾Ô•_”ÿ¬B‹õ©Q”4C·‰W8,WžL‘k(¨&ÅE.OÈ/“á eÐA¶E26l¢¹~˜un`÷MšËϼ3 6D%@ÉD5¹°ˆ±c$nÂ>¶¿'jÎüŽÕ×-â*äeVz"ň•Ãês ‡X_ù²f8Ê`%(ÛN!œd =Â&n dXà@œÈgˆ¼Tä}µtp Ò+Á‚8·`“ÿÛ ,bÂáæ6Y‚ã8~ˆÈ²5TXà(gö:Àö‚ ¯=U@ý ù§ÑÓ@& $ZÒ™èìX.ˆ9£S¨xož¼d==³E°ýºt°Ë`åÖ¶þ)ÀÜKá4‘al/ú(ç¾…îOú„Ãåóm⓼MÖÙò̬$Xéu€#»‚-y´_˜ààkÀH§36y³µÉ›3Ôrû2ÀSr M‚°PÎj:€Ónθ¨ž>!Îí|`Ÿ[ä³y ÔZÊ€¡øË¨dÀ$ßPʯ2êçç,:.s„„ “üA"²I•+-‚0ôÊW"j'ªH°în@èùso5l&²'Ó–Ñy}Áv"Nº¨›ì\ š• ‰€b‘“ŽDh·§­ ¸æŒQé2ˆ‰åO²aÂ00ºèyh\Ìþ3 ºk9ðXš ${ì™%’œpv’f œûU±`Κ?Y³¶ºG¶›|²Šº²pØ”ÅÀ’ûtŸI¾xÌÛýǦÙeP©$QX×mò…«>Sˆ5$Ä@jk:8õûdË‚MÿÎ~ö;] Zý@û€»*oHñƒÀx`¨D 6uØJ",y¨™‹Omþߣ‡žP&þQÂõ%GžÈƒëöí¢2ëçÌûê€Ö³`ÛRò+Á¡w€¾Õt±;ZØ~‰ðÏNÎ|y׬ýÅãŸõO'iÉ>ñЇ€í;´_œõS q©óåf|+°þr@‹Ùã= ¤ÝOÊ×|f·6Š„›Ä¡*#€s%XÒ<õÀâû€¶+ò^Ø(G€T°ýV8¬ýZ á´ÏPûK±¢bp Pb@x0² HNò- ˜û] ñL ;h?xÿStÏ;†Qç)÷g",qÌœÄ*—ìú?¾ØpÝ ë©ãJ`ÆÅÎ¥ÙÂáß‘NûAwß\¸Õ×Jal’ýÎØg6 c½€Ï¶'øà}7-ÜòöO¥ÒU€ÀUç’„LØû°ý‡€‘™ðÉnà ¿\.{ãۀщ^ íß,;óNïì3怷7÷®~kþ_¬h(Üós.Æ:o´ú,«ž´]çŒãþ_ÂaÓ¯.AºLÜ£à܃ãÉ㊞íÜ58ÇîÁ%Jo‰;„°wo÷‡Ÿö¬„ÃæÝå$7º0ÒöõÚÅ€jéã$n >ƒ$3CûÎ×ßìºæPÿØCÅß àŒ=Oí 83O>=€œí¥š¯Å'xÁÉ@Í|›” òÑIsÊÙ…¤Q6Þ É3'q!¹åc •É)ÝÈŽE’·<»zë=k_xðžÂ?ñ|æ^r'PoruÔž¾Âv{†üâçÈ«pØÔ‹3Û ‡Õ.:¢eD€úµËwú/–?pëë=üÃïüì'÷N/Z2Š¢'ÒÿöM›^Zºtékϼ¼ù¡ÿ{åÈÙ—üÃ*G¬™ TµÀaîàäïÛ¿o÷n:¾9Á NqºwfVuÂñ‘G‰¾ %pã¦.φ¡ý—7Ô×^>sf‹øêÕWìš6mÚ{UU5ë3Yõƒ{äç£9Mã~qÎÿvgwÿ¹/½±íqÊÃ8ü¤-€–)²ùq –€Ã|Í·V‡à0oKY‚åÉ;cŸƒaj÷­ÚTí&¹Z‡G¢ll<¹¨·oh‘,Ë·©ªÊçÌ™s{N]×Y:› €lÇŽƒ ,ø»5oï|ºeZís'0SrÃÚÁéÒG@3–< ç\†Ã\µÎ5¿‘‚Ãä*—±ÉûF²>¼©ÃÁL-gk0K_¤ëIÄb1(äå„}ĵ•s^oùâ,ó¸Œò@–uww?cÆÓÿùôºÀk‘¹rZxnýãÈõ·åWƒ°,; ì|ÈI°ªÓãpîï{P`öýÇeãY7~µ·׿½ËûÏÅ{±™ØÜ¯àÀÞ.Ô%ºQ§ô?ZSSsáÊ•+gKgÏžÝ#I¬oz˲€ÏÓ”U•FL0à&U5N^þØÚÓ<·\†Ë›úà3_{“}$õ&`î×óö<¨$‚<áá[.ƒÃR½6yFëá0mÇ!‚™àFªðìî©ØžM×CDßÃås ÌYäɳÚà­m¦<}A_û•÷ ?ü0#[,D.k_MxÃuÏß_ƒÇÖîlJ¦ÕË-8L·µµ}%Il]ñËß6É7~—d‡à–ëÛþ/€y,ãÓílƬ‡ßùàÀ£fÉÌ#ü.À'¸¯o¦Z8E˜´oó`«¶5cÓa/¢Ñb‘ñ¥9 ~tž„óΫ›‡=ƒ@dè¢;îÝyðpó|ÅŠËÈ<$Àër¥ÊÕØX#e­ßÐ5 †&h1»¿ÿpô„¦ë‡ŽŒ¬Yñä&–¹újœo¼¬A–ÍJH V¦–YçŒÂ]`‚œ¯œ)]Æ¡±ŽÄ<Šzzõ¿Ó×!ͦ#eÔ$l-ï@ÏÀÔj s›2X6#…)~¦ 'ÜØp°/uMÁǃÂá0"ããø‹¥À7pâ¼/䱈1´‘}1¤‘O7n·5E`---›ù€ìyXæºýÞU^ÿ¨Y“üB!FÈø™ÓG×m<\÷`oß‘û~IBôO¯Â2u5<..Wž¼ËÛPÚ‹Á¸ýQŽ$ƒØ?ìBoHC:“E6›…ªf D>_À(‚òÔ7ð—O¼É°ÿ¤ó5ytKÊ`® ¯ªÆå®ž‚¨„1Žhúè#ÏÀÀÀ©z‹íè„8AµD¨N"ðz¢'5#|Þ¬Èïö5³ÞÞÞ›ÍX"o´f…áœ9®È½_ŸåŸµèBo°u!sû‚H Ä 1‚ªÐa<ÙŸÛ,‘”$=™ ÈB@fËÐ=\ 97Û7ž|ëlPhýB-f4$—ÛàJ+HíZ ‘ÎÐ}fü #•T³'eøyd}ººuzý¿÷ôôÔùLòå6D¸ÿ#E)S;ûÛÖ/Æ[•ïiš6àÛ„6¼n¹wÙ‰5÷¶_ùèu5SZÚT%-¥3 ·¦¦]Jr£ý½™pÿÇn#¾¿Z6â¾€WTy=Âð)àa¹Êâ"¸À àÝ9H$º0³[‚nìymj=.Q'?ïpúÇ=Ɉ¿*óx·ÌßöT*µÐãõ¾ÜqúÕïÏ>åì¯ . CSâ‘p÷ÞwoüÍ“£ªšöAW}† Ý[%¸VE¡dB¯—™Þà–ŒÚjŸA-Ƥ™ó;û¤*UQâ æàƒ#««ðeTá󻸧ûˆ±dÍ;ÏÊ.Öxƒ ÂÇ`¸‡”Hç¸r$*¼šgÚ;æÌ˜ÑÕÕ•…B÷xô³l‰„„% 3Ã0ƶd2™…þ@p×Wn¼wšËí5³íû]»÷¼±£sk”C—Oú2ã\e¤‰Äõ,3Ô´¤+)IW“2eoY£–gSî1-íc ÝÍËÝÙõ:$†;¦b›j¸LéÄ¥Þ>,Ø[O®›uá²YÏ·4øÓã±Ô´Ñhú„pLŸoHþ™ž@]£«ÆŒ†ÃêÎî÷^Öu}9€]íóü¯1f‰UK˜j•Ê$ÕÕ›¨&ßÖÜÜü z‡PÒétâ7ÞØ=É–†€Ó˜œÃàB7èH冚Û¶í¨†·zíÞ½ŸÌëììÜàL‚þÖ-KƒEc{ì,ºóy·ÛÝìõzUj™Ëår“Èñx|¿¢(küZÑ]@¼œ” !(„&ÂUUãæºšÚ¦—ÉÈ+8—SçŸ=cŒA¢xÜðñw7|Ôî÷W=‘ˆÆæmÛ¶mÀ5Öx™ð1d«*ÕäwTp 塳µÖs… û ¦p}ÖbNTfW¸0$’Ö—fiÆ7’J"‘8ãÀ¯Qyät.I’U!räó/ «•H,±nݺ6º~=-O¿sèÐ!ÿ¦M›ÆéÚ_ÈÚ&|§6Á “„Ý„NBб&E/Gºtÿ}2!àñx¾M°œÂ`å©§žºž’£›\“Q‚ääš: ¢rÎ #(_Èããã3ü~ÿ)4æ"j—Q‚b”¡ êÿÀ*ÂQ‹PÂ*ɱQ'AnAàs«Àý&®cŒ=L¤j«ªª†‰XŠÚ   ¨ž~Ä Ma(fÃýåË—ñ˜û¼­ºNô===ÿÚ¿ÿ‰˜38bvìØ±ôæÍ›_ÅmËâÅ‹oÖÖÖÖ¡‹z{{[ÏŸ?ßÈ&¨$’„QÀcóŒm¿zõÊ®'wi¤Î8DÒ™ÏL -hQ x?cØçzŠè‚ù>~"Û;èîlooÿ&öý2æÜ€Ý»w£‹¿{øðá_Ž?>;Ôˆ— 7áy‘ÛßxFBtkàÐdž=`Œ{®ùnó=¯¬ë•yç Åú8OüHægB®=zô“7صkWMØÐסªëb’L²ÆØ»…8 6†9Î -0Æí#€.“yXˈàï‡f˜VÜÓûÃ$ëoß¾Ý[ô…;w¶D8ú6T¹–Г'd‘ãaóiîܹ)^6–0‰Ëæ`äê? Öæú%j€û9Κ9@‡Ô;Ìñþ z`V B«$ëÃý _°oß¾ÆÊµ(2ªd:ϼ×Ùó àeˆÐ†é‚aþ†]j YØÈí/^¼hH‰>i²/„ëé2‹ôU[æ@kàðXƒˆÃ< &SëaSì¢*ô®M/k…¤JÓVœ &‘ sЃká±Ñóa]hEs¸G ™ã€ó¼‹C%Ÿڇ L Â`ÀQHU…P}GF\aÁ1ò ³ A ÒMíƒ1Ö¥”ÆyZ³G6~ÿþ}œì°õ> •»i2F˜Šc+31M F¨à2‚—,YB±Ä_iFˆ´a¦Y†ŽèÓ\qЬɕuÃTL³âýk€›Ú°GÂ(@¬!’+¶9æáæ æ!&/ú}’v8€‚ƨ%ŒúX­Ö”³&!PµAÔ¿”yT‚‘&~@Mä#Šyˆé0s`Ô¹ÌC[ä9 yÇm 0cc%DƒY€ ¤M¹Š­2fJŒd5ÏdÎȘ ŽÕˆ÷ÔC&š…aÑÒã6†pJ„¯|¦ñ„]=9 èÔ°a£ 1nx†yÞ±à¡>ŸÁ´{QgpÿV'XV QšêŽšçUÒ:(À¸gŒ1¦¸ûÍô<Ïú‹šÙ¢i5`Ð ›hûŽªh«JÑ1˜pûC8ëáq`óf,IMÓ>IBÝ»o£)0l`Þoê«„‡ÊÉ1Õ|âýú€JµUõ©>ÊØ‰u“SýìȦ8Ï÷\Ãîþv5 °Þ Ü> O@¾¢óÞLÐï0ë\û÷1¿§7u„êwµ·¥î¶öÔj[eÀë­´eAðœ2>Ûq@+ÐÌÉ;Bµ„=GOLG‚gñh‹1™öÐÓPyk«Aßñìš© 9ó\Ð3J€õÓæó£u bý¯óÓ `ÊjM!@òGƒ!‹¤í<Ã'_w”JÙæ5 ýBàXŒßF×XÏë„Tw+@˜2´t6ò›E‹RaD_ªÑO•÷3 <)jnn6íU ÃEë…|܃Nóz1ôá aTÓÞ¡ög×Ô!ZL±'ctÖÀùúˆà q¹À¡i¿flH õÕWÀ¸ÞÞR×DJ¦Js UÞ"'Ÿ yb„ô1»)l1P®aÑrT6ˆ³. Tç¬Ý#q¥jm`FI·¶'ùñT)ÿuŠwùÖÀ¼µk×rì¦é$ù.!ÝÞ‡4ððÍŒîmZ€-*9»ÇÞç‡ ñKާºŒpÆSÅñ9kȘï mc=+N*@Öö=@õ¼º  oùÛ[ÿíǶ|õ¥½êýÙÀßJ›NQH¢ói34ÑyŸdÇFægh3)â}K]øî»ï†"YÑгIþ[Œ›dZlÊ"ùØ›¯ëí,nMa~¨(¸ìn굤y†ï‘Øpi¹f‚Ïð ¶çƒ#1WýÇ…øû†/c¨­Rêoy(_ï_Xƒ2âUâe/?D|Ïòi®Íø>‚&8•èÔXczÐP¿W€>öˆñ¾¸¼ˆ©ÃA>  ~lƒÐ:œ.E8þ:Ö»À)~!þö~R,¼:Töó@wYüðþÌùyÉKg4 ¾¶t$ˆø_¼Û™ÞOsÃB´×eÈO´ïEqú: ñ÷}Óí–`fn<ƒ~}AýÊïH²{ú`ܳP{̹×§il4@ì#hã}šB™lôšè¢úëµ@g!TDÅ4†Ûø¿Î¦4þ_cãŒð·ÿ ä×bcÚIEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/states/help-browser.png0000644000076500000240000001551012536324426024174 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<ÅIDATxÚÍ{ \Ï÷÷¿ùîÆ0Û×ý2fÆfÃØìŠQQ*B®¹5„¹3†æº”kÉ¥t/©$•Šä¾Ür EIJJ÷˧Ëçù?Ï×GóÝwßÿwû}ÇðxœõÞûó~ó<çu^çõzŸsÞ5üeZ¿~½¾‡‡ÇHwwwË­[·¶_°`AÍÿöü¦M›j¹DÎñ9zÏÊ;&e¢G@øO2vÒÎ;­\\\Æ Mš¼cÇ^puuí-ü›qìÓ¦¿48((¨öîÝ»‡‡‡GGGãèÑ£¿±±±Zù-óÀ9 û÷ïOºòàСC111Ú[ÉwP\V©èÆ­dÈ5öÔ©Sˆˆˆ(8qâÂÂÂɳü[ ¡"á·aÆV/„¼½½`…(+3d-³8ÕÇÇg¿¿à®]»¢EáÛøJXp`Ž·Ý’‡{÷•îÚXæâ¹·lùÖ°ò¹Î§*ço;S¹Ö=®l“gLá6C™ÞWÃg˜¯Úã°l¢ðìçç7UäÌž»öíÛwNŒS)ƪoò\ ³PÿرcZuê?ý~Ò°Q—cn:2P/9f`CíÑÁMq9%WÓ x¯ÉE¸IÒ]' ݸWˆ«w pmXk$˜¼¥ýÅPÿ—óz ãûéu¨æ+K¬cpppŠx]Îs5׬¸l•§§§Uõ½«ýë5Œ7Ò_o wûâ€F¸6¸ nh‰;Vï ÍæCdç—!·Pƒüâr”訰¤‚Õ½Ü" r 4¸?óc¤Ywà8ŽW|Î h|›¼)CŒ§}®—Ü-k¦ÙI‹fµâ ô3Ð/¸lú6nZ¶@Êøv¸?õ}<œÕ9 { oe_TTV¡²J‹*’V ­"^«{üM=“·Ö¹¶_rÇ“ù)¾—Lß.ˆ™cqí`p`ñs5€¯¯ïQYŸÚ ßš(Ê? â·F¶ÂÝIïâÁ÷ çQzEo8 @Ñ–!(q³BYP¢Š„ ËtTPªû[$T,÷KË…|¿C‰ËHŽãxò!?ò%%çüðvÚó '챨ñçb·-›nnurÂ¥83 XÖÌñhÉçÈ·3PàKÝÇBã?A³P¹ @F>p?HW¤»ÎÊ”ûYòLÕѨ ÿã8ž|È|ÉŸr(r¹4®œ7ªßòo5À9ß;¯X¤Ý°~=n[µEæôÎx´øSâÎCQæ3ûg¢*b³ ˆ^íáqû!”Ü|ÜÈŸºwK~K–g´ €È…ÇñäC~äKþ”Cy”«ä'˜5Í%¦¿Å¿êMZJâ5ïñ·Þ_õ>°Õ¨]Ê‘¡í+ªÇŸùÒ'ÕAÞôWÈŸr(ruò/b€¤ˆ8Þ‹æÙÔá6ÀñþN_1û'÷\u)Ü8e~Ö8í·‘¸ê»Øù%`û 4 dÖg¾ŒÔIõptø;ˆÖáCÚ”,ëÓ.¾k×®D¹9¢ì¹þìCÝ¿v]ºtiJâ5oð7>Ãg9fÚWܦ˜¼È3y\}äL}r(ruòƒ'Q‹é ÄGœÄ«pŸÔäôÿd€¸~úÆŒøÉcÚ {ÎGÈ_kˆRÏq( [Œ¨ˆ0„ÊÐîüXVS¹fþ÷¯àú¸8dÑ‘­´s¾iV”X+ §r¢”¾Ð+ä’|†Ïr Ç’‡Í—NF i]EÞ—Gëááä×(r)Ÿ;=1(â$^âVøã ß6þ¿À¶FÍãý§ÊÞª[÷Ë¿‘£éT„ÌFÔ>™ýpœqž ,ýWåÏÖGÈà–Ü\cܳ“·ÌäXQ¤³Ðëÿë)cɃ¼Œ>éìjÞ¢’2ÎŽh„¬ï^¯6‚¯þÀÁi4q/q+üñCZ¦R§?m€˜~§&7æ _Hd›1ƒf ìT‰‹ˆ¶¨\ÝH¹a€¸9®.ö™5ƒçÀf»ué²Ffî+^÷i%-È‹O‚‹)°ömºœ:¤\ó¼Ö׎èõž—«ÎÏRy’¤ÈL<ˆÕ«W{šôèìê1 öܰzÈœô:ñ—‡=ÃÕi±*r±ò‚¼Õ}•>1ã?Ehhhs–{÷îú~ÑôÍxC½JFΨ ! Lø¸#Ñ{6*‚¬¹å¨ƒHÑ엕몋Ž›Ÿå?åÕ{ù3¦š2{Ù’„)–åp{‰ñGŒë!M·ˆ‹øˆSç1âÓÔQ9{~7Üݦ’:ž’”Zéï ðm›KfMd;!:â"öù"Û{´<{ï84§•Õ$m\m¸Ô­ÅÇ )wú;H’®ïK2æºd£5K–,Ñl7h€[–u1¡qq¯:Tœ¯Û–}©ÞƒŒšÙÈ2ØÊ¬³¤Û»ü†yˆIû³¡^Û!ÉNݹù.ø–t‘ÕÛˆkLIJ§¼†“CkáçÞ®uëÖ­-Ç>êÕ«W»Å_¾}ñè 7èÄE|ÄI¼Õ;‚Ê#äÿÜ_½'Dš¶:!ùÌ‘’jÏŒy’áY5­v°çmä¡0œX7yë Q¾GÝØÖ®Œ´ÜvÔšóðZ•QÎVÕ‡›çA”ýY÷Gîü¶¶æÎÈ:ÄE|ÄI¼ÄMü\<ªƒÑ•‘mJÝ]¶~E˜bû+3/W—˜¨Èpĺ¬FÞŽÉ(Þo‹²8g”œqCáa¹ç1éö_áú²¯pföר4 iV÷îÝUây1ØõkžqdroœŸ÷ ’äð“µþxEqÔjhκ¡ü¸3Jƒl‘»} î¬×…SLYt‘zÃzÝ컹ñ€~8†éifh™¤d*fkTÃWÞ×ׄ<ÀÔ·1zÔŒH™:ÏÛÄ0vØÔ+ç[Xp.Góq¥gî×îi€Ü@’Í(ÕT"=§ìXq’x⡘Hv7êàÁЊĔ,•VÐekÓsÄ •²bæ†É õ?~Û-ôd3S„süs%bøÊÄzîðM‰˜ï—†-‡sqàb9N&—Ó” §(¯4UÈÊ+Ã'‡}²ÃŠÞ¾ŠÉáÇ5A{ößË.A‰XIy%´žÎŠgnábÕGò°xw:F;^ÇŸ~Û‰c_"–Á ˜å•Š ‡²™ybú9H&b%Måi„*Uœ‰tu:#uF­`o Ÿ˜;Óò Kµs7†—ÝÏ)E©˜Šî’[ ¤æWÒSb€ÐKåpŽÊÅ‚]icw\#–ûE1±Œ^]5ÝýìCbÏÙRÄÝb‚U—eÎ*Põ]TåÉkï±¼ô¹Øs²†”¨g²B;ctiæ£Rº‰<<*¦û(7Rî"nåùó|ïbIJª÷@oÒBß2·;°;…]§K˜|eZ¥áü‹j௡!üÄøÕ 6FV=1×Ío |A£ 0×ç.F®ˆÈ¡õ^ Ô³ZXÎà̼" ûo(ùW-§|‚Eѵ÷n>¸ÓUûg=ÀÒþ\¥}ã2ÀƒWžÖÒÆ½ݳ%”xxù¬©~Ë rt¨b (ûO1 ùI `¤eÄýl¬}ÛÅ]‡Ù·5±»Œê°ûLÉA®[ð ´}ûöAм\ÜõrXUöï»ÀÝÙ]®Äö˜<,’]`”Ó Nq5Q `iõÓxóuWÝöÅÿ~({² H=ïX^ˆÒ½¼¼jÕ~ž—¥Ì­Ù¼bÙ;ñ§‘—x•÷®¡ð^¦¥!%9W/ßÀÙ¸“ :‚­n‡°Ô>‹&LwyQ ðÃ(kŸ9+öbÝ–PìòFlÔ $œ>¤ÄÈHME~F4™I(M½‚¸°8yò$AþËF‡ÉbªyS¬˜4HØ^¥•‹wX¢2l³+|¿VièÒyº$È=«Ú8fªwýE1@H¿·ÏÞZ¸ˆ8‰—¸‰_éQì2BŽù«~þÞî÷ÅýÕ; _/ƒ¥ÇGknnÞóªU{ »2r~Âü:+²L2²HÉ:KUL<¨WÏ$˺8mÔ ÃóV>¶o£ÖÕ¯L<ÄE|ÄI¼ÄMüÉ»—"l¯"Âb—³F Ô£z<¢äDt_"iãý¦í’ïŒkÇú;‹Ž¬Íóu’Z•d¨”:óoLF¦Ž~§LõÜŸ¯X»ÐJü&ññ§à•·À•ˆ<°ò–‡°Áð_8’)ûêZ=ž;@œ,¹ùšõgï9ß•%À––ž™NbZ‰åiU˜\Q[¹×#›W‘. ‘kCë•Æ7©ýw)+ÿ^’¾Á%xµàÿ_ê¯ÿñe“Ú¤auž›×pmy„¹Ø"`·‚ƒö#xÿ^­›S?FÊäð0ïF]«yòMpx@ÆñãÇ_’ä†á «v©Ú©„"g T늞lùàלÀëב2Jyÿ³V|Ë–-u¤-.JþVØÙÙU:;;cÛ¶m^.Û*üÖ/‡Ÿ“\6ÛÃÁÞ«V­Â6ç-Øå挧ÙHZg‚öFJŸÛ“;Vú¼ëov/Áµ’czèù×<ܬÍýT †lNâ2`©‰Ë@eW|°#¥ë'^<¼..7ý¬”·µµ}U&)cåÊ•U¢ô]1ÄÁìïë²õV€·öx»!(p/wy"T‚Ü)‡!ÈØÔy^£P:—ø©‡ZÖ—Çw(¤Žÿn€þ’#ËgvD\£öô/:xßµ~÷¾{•VÝn:ïI0tê„ )UÎd,x w%3œhQ¯ìªqÃ÷Ÿ…Da·5kÖ`›ü«¾wÁ¨Q— ÆúùI–õ‘6¾ž*¿çÏ©…²E¯@ëØ©:ø7ñS©T¿÷Ac¨ãïê’ÑÈNpïÖ² LŽ iŸ2¡½J!¬Èú»Î "æ²úÂ-†%)F\•†J•¥`^ÿ.{øžûgmÞ¼9‹×¤‹ >¿8°AÑ!õ(·:%N<ÄE|ÄI¼Ä­ð?Ù¿1þÝò]»¢Ž¿3€¤šOH–õ!ƒË|ÐIJgGOž h5åÛ‡³Þ¦ó‚Щܘx¬^ Ü~$ÔÁÕÁoÞ¿b¬×ýi®}ICß!5óŒ. hPFå)r)Ÿ8ˆ‡¸ˆ¯º>Hܹ˾PU⟠Þ§nÿ.£:%Ö›ÍÈ{öì  Ք¬A¨Ië)ã$ÌîÂJ+[Qt=@‡ö[1 ÊvÃ~Ýáèþc#$y³â¢qýéO×zJЫ®ñ•ñ†ú#6¬¨Vžò(—ò‰ƒxˆ‹øˆ“x‰›‘K£Û•P'êöÿ-ÉH ܘ%ïÍù~Ý¿[çõIcÚh¹A 7«éã¥0OwÊÚÔžñ€ 'L¬¥öã[r*KÔ0ð‚AýV±{ÜÆá:i@æ5ÓúZò%Ê¡<Ê¥|â âª.ŒïÃùÝqgÜ;˜Ûç}êô_‹£NNNŸGGG±ùù2׉:¿ØÖ¿mâí±muqù×t)žYqaŽîl°¾Ap&ØÊÂ5©rô·-é õ´—Lê‡_4j0°º<ýg‰.xÁØØõë°cìäG¾äO9”G¹”OÄC\ħpæHÓÔé!Œ¶x'‹ºP§?¬K  Ú_ìáá¾I¼)%¯Y‡Œ[å°T–aÓIUZKvŽFå9@ô#pxúâZÌ—€Ä2ÕýñÊÔ6I·½hªwoœãi“)ž«ßŸs²ÿû³N¾ÓÕ:þ¯yÏx²÷ª1“OÇ›è'ÉŒ#v¶!¤+Þ¿$?ò%Ê¡<Ê­VžxˆKáË[Õ<Ñ^ùNégݻΥ.ªA‚'-ñ€4Y ZY¾²#¼Û³ÛÇk⇴(KÕY³>äºbë*[ÔžT,ç. D,Mñ8ÊYâÑ”ÀÕVyK:;Ì®bÀš|»â"¾ùé¾^vNKâu_¹g¸:ƒÖ^A¢¥>Xè8µ /ÖÚÙ!`ZßêF)ò§Ê£\Ê'â!.Ág€”‰ípcdë*“O»l”r}»ÿS‹Œ¼%Õ–`xÓÓË£ÒÑisù¬Ù³Î›}Óëеa-ªØ¤ü`¦ì(Œ‘öqà| h<àÞ› Jrd~bÎ\úwoâ{ÏLq½ Û’À<þ˜-7u¾©Ríß¹$«¤FÚÄúÊÕ/-ú ?ýôBæIù»&ù’?åPåR>qè”ÿÙ©³nh…é_uÜ/Q¿ÛU¬ÿ[)zº¯¯OæZ{»Ša–C1cÐךëÃZà†4(§s9ذSSÖÜ÷ <,D²"Ë®N65²Ó“½}ÜŸuñav¬ ËV…•å™X*EŒ÷¤“XÐ`½ýƒ*£“ó}]]çɲ.]ËÌP¹¼.ù’?åPåR¾Â‘³¼7’F·|-aÿmû³²îûþ™²ÝŸ9‰½+^±Ëú;ëÜéfßj,Z€ý´tîª>(Þ:Œíiª#ÑÊt K»Ì€=X¯×-k!à—RV—T—èÎØVq¹ÆªnQvªtVéµÕ;ÇýUíáä¸Qk­På3ˆ|ÉŸr(r•ü {âÆðæ¸>¬¹viŸwOŠÛå‰ï©¶Ê Ãúýúõ›>l@ÿk'¥OçºES$j…ìÅŸ©ú{©‡#ð“FinI<”pz jG/æé˜­U}ÁQתyUG‡åš}Ã,¿1™Yµé]5ÛYž# Gœç üÀ÷Õ Ó”£äl0Á]›Î,ì ¬Ý«#Ï1Èõ™t‹³';C¿î]?Ú2 E6?e¹.”2^Î +zW·Ê«7H-½Aˆ*íÁïU’ò|ª®ÔvöÎo©ºcœ™\m°µ2ޣбÛß±nK ‘:?ù’Ñ dÌév±ÃI³Ž?ùЙ؈ñ™¶Ë‹€WÅÅzÙ:|Ýúê%ó¦Ul¦¼*@R­;ÊVÙ_¢Ôk<Ê÷M×¥ÕŽØB{d9’³€[Õß dןPõ7LcË,ÿ¤‚[NÄj~2‡87[î¥øfþð¥‹2¯˜7Ñú¶Ní*Xˆ‰Øþ–&x¤”ûžX|ZÏ®]ܽû·¼wÙôŸÚ˃ÞÂUv[<"sÁ§â¢¦ìÎPÇÒ²}3‘õ¯_‹ä÷É5)¿érøå!óÔi.Ís&"$‰ybã4¤Mÿ@)N—¥C,t`‹ìþŸ|èK ÄBLë'3O‹Äò}ä¼° O÷λC ›e`‚Ic’zKžÓgwC®½±ÊÍiž|+”¯ˆ×ŠTI¾D#׎x°äK_1R¸Eì÷ýe¶u|7-Þóý`ʤlb –çðáäo¼¡©ÌÄ@c;°{§`—¾­ÓN˜¶À%“·øM‘¢óf,Lü拱ê¼&U9Æg9æàæ•`ÓÆY‹–š=†-îü´c8ePeRö_ÅÿT…Z ™ ÀÙÒ¿ã:ÂÂ<Ïqð§ˆ6nYyÞ¬yUNnòŠ/XZ¢'Äïuß”á‚yóªƒÖßj¢¢ÃÓÝ-OfÚ<É›2(ëù~:ûdžЗ™ú@Œ`nmm}nÒ¤IEBUC‡Ím9}ú '/ò|¨ÏºhYS¨©´´•cm_n˜¸ ‹ˆB®x)ñf2‹0]*_…VIš.A Ö‚<ž%Fþço¥åË—ÿSÒ{ö{­Þ±çˆ÷Î}±þ.¾ÁëåÞ,I|Lâ§ò¬Ùý]xþTÇg2 )|åIEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/states/k3b.png0000644000076500000240000002003412536324426022237 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞbKGDÿÿÿ ½§“ pHYs¯¯^‘tIME×9()‘|©IDATxÚå› °\W™ßÿ·÷½_¿ýéé=IÖ.ÙÚ,yÁxÀvBÁd BeN±„x\ÅUI*TH*ÃU3C*®!ž&C€Ø² xÖ%k±õ´=k}ÒÛ·Þ·Û·ó;§»5 °JËŸÏí»œw¾íÿ-÷´þÿ8¯çßY³f¯««Ë×ÛÛk)‘H8ÕjU¹\Î[XXð–——½ .xÙl¶) ú-@$ñmݺ5°{÷îøÝwß½µ¯¯og4]Ïùu~¿¿×qœoòi4Cc¦\.Ÿ*‹ãÓÓÓû¿ýíoŸKÁ`PÜgÏW* …I¬áÙ©©©o=Êç[ßúVÞXʯRίJÛ×_}ôŸøÄ®mÛ¶}4Nß Ó)ÃU©TR¦jµšÜz½%¡@­•À¼B8U*•²å¸Îý‹‹‹ó333ÿ{llìÏ>÷¹ÏONNºF¿n87nŒ~úÓŸ¾yÇŽ”ÉdÞâçÓÆ¯U,TáØP*#È ¢Ž X‚áÞç8ò C †B „Cò›cÆh<®ž¾>õA!®---Õ/]ºôÍ#GŽ|–¿{"ŸÏ»¿ à‡?üá‘÷¿ÿýÿ~hhè˜pM[ÆK0n(»¼¬…¹yÍÎÍjnvVK‹KÊæ²Ö:ðI úüŠ„‚JÍ'êJ§Õ•éV*Ó¥h*­P"®p,¦n„0¼r¥bÏÎΖϜ9óÅo|ãŸûú׿¾,É{½àŒŽŽÆ¾ô¥/½cÏž=Љ]Öx>¯LOOMéü¹ó:söŒ&&&4óør‡qkúÂ=£}Iǧ øEˉHTÌ¿¯§[ƒƒƒê_±BéE3…ÍyέZµJÂrÎ;÷êÁƒÿõ'?ùÉç]>¯µ|·ÜrK÷—¿üåÿ@Hû·f혠 PvqQ.èÄñ;~LhÇ2^.–ÔÛÛ£•+†ÕÇØÝÕ¥X$¢0¾Þlx¸§ \ZXÐüô 4`šŠà)\ ¿§G+VkÅêÕÊŒŒ*ÚÛ«8Âå{_¿À†*Øð|ðÁ/ã"•×Jþ·¿ýí+>ÿùÏÿZ¹`²ŒçÐìäÅ‹:úÊ+:ðÒK:~ò¤f¦¦ñÙ^mÛºU›7mR"‘¯éÉïµÈ1ób„¬E4 qìr_µZ³sž>vL Ñ€c³ï‡ñ•0½býz¥V*Â÷\bõu×Y E_ùÔ§>õàÉ“'‹?/@ú^æ?ð¬ùÌg>óHÿ&DåÛ;16¦þð‡zâ?ÐË/¿¬õÎwÜ£»n¿]סõ ¾ÄTÓjQªCœKJJtˆsqÆnçZo2¥uÖik¹°°¨/ò7kKKòUª ˜JÝU®„•»n¸á†­XÄcçÏŸ¯þªà¿óÎ;W~ö³Ÿý_Äõ[ гŸÃL_Ú@=¾WÏ>û¬\|û½¿÷{ºãoÔ À•§ÓN‡é³ ¤¤¨1ñ&$™âœ¡˜½Æy¬"&\·n½ºÄüô”ªhºœË«º¼$‡µ„ˆ Ÿ£<Ç\!l£6îÛ·ï»àRý—€0×ÿÐC}…‰ïĬÙO]º¤çŸ^ÿ÷±GuèàAíÚ±CÿüÞ{µ²§WéãWh8 …a ¯WÆŒþ¦ F¯uì3Çöº!)Èäñœ[;Á"ª3sª±†Z‰ÐJD±Bð3#––Œ»JBæ&²ÐïÿûãZî?Vy{êá‡þÏk×®½Xn23MÃüŸ{NíÝ«³§OëÝï|§nÛ½G]€Z†…tY¦a¶Í¤E|3¿oB7m$hjŸw콌áX0l2YÝZÏðš jNÝBŽ0ZS=W@e,!ˆ¤#*ÖjÖXû.’³e„°_Ìþ €¸ù¾pïm·Ýö_<Ì[³áù´÷ñÇuÄ¿ï÷_ G]øbÍã×v‘!hiµÍX›©¦eš±}¬ö±ÚÇºêØŽ¬ÃS @:žBEÉ)×5´ö:5–Á7'§î"„¢ü`B°m! •ä ¿CŽò.:!füEà§€Ùô‘|ä¯@à¤Éè– s@óë($ÇmXRƒCVƒüUÃ4t%óÖ±q ¯Ó‰Ì›s–<¨óŒ¸¿Ñ,+ê•Ï Qÿ³× ÆúrN«o¼IÉá^%¸ ÏWuOŸUAÔ³9ÍĮ̂»»;zë­·þ‘¤ðÏ@àCúÐ0™Û óµr°›Ð‘Ç4KNÿOÞ|‡’†Q(…xšåKVã®e2’LjhËfVÇ :ÌsÀù€†wnSzh¨ã!]½ö35¯¦hº[øÈ5VdV«*FjÝ{ývÒëwZ]MÀº<²È 4%øÊ•+ßsß}÷mäüTP‹'ßö¶·ÝOï3åÉÀÆOžÐÒÛ5Ã+µ²;£d‡yäs¦–j4sü$~X±LSÚ⫤À}½W¹Cr ­ä†!…!û½hMyE.¾ÆmšŒ÷¦%ækª~ùš×S_hCáÔ½y»ÂqŠ),/dÂ-¹&§äRŒ %.’=Ò£Ý~ûí5lþؤgÕððð›mÓšE’ãÇ+73«=Û·+ᵘ{m4®ÔD 3n¨’]Ö¥#GT^Zj#»ÔCÞÞ 68Ž×X­®õƒr–6+¤Òç_xAYòŠ+5ëY`l ÃO|ö­’È n8Wcîš‚1O‘• ¥F7*>0Â÷ eÆ/YÅ€Žj^¼d± Š@\ÎêïÓ?M¡ûï¿ÿÂ^ÌÜ\ý/ž;§KPhº²¯Ï21ɉõA4Xª,Êok59^,¿`Ý2'=ݽKÉ]*ãï1ÂÔòĤ.ìÛ¯j¾Ð6ýF'b@®%¾[l©sêÝ,gx½jñªêáyñ¬ºnZ£þ7¿ÜYXÂ8@éHÍ*­æ˜¯?/ó“¾+èÿØÇ>ö–+ùtL¼_·nÝ?µý:È€ßÄÙsÊÏÍi#‰a>jÒR™,ÍÿÁ°ñ9O5¿ƒ–bÝ6~/ò\yiY}ëÖÊG/X*)Ú·Z /=¥ì‰9î½::t¢‡ë•äsLV€FIaú¬b=ê¹î5†×©^)Ú{Ó<ë„T/ÍkùÌù8¾ª¼u"ccrR>\³)‹.´FFFî‘ô·PõJøèëõQìlC¶F_šŸ× À犄yOà} ôÔ§*K•LB=#a’‘¸l… ¨%úûY\U â}”’6hÒeªD íL‹i›½Ë¼ôÊ%‚CjT)tf/¨Ð3È<+i“™+m@o !VU¼ôŒÊó˜,puªgÀµ„0—³ªÓ‘ fº,’"ß*)~Þ÷¾÷í¤ç–2u~¿^dñ¹ù9…x¨/•´¦¸Bû£DNŽeôÓÌTªæ€Ì-!HV-Í:…2×Y»Kv÷®&aüïµlÐÀ×Á§.©Æ\B EÎØÑô J¯$ÄÊi'W.eòi'žCkWI€c8–C[£?Û¸ÑâU2™}ï{ß»–VÚ’¹«ã ÁÍ›7ïhXàñlsyvNUâhŒïi6ÈõuÚ5äZr+g³08HÒâZÁâûhÇø±¡ºÜ&…LwŸÕxÇÔ½Ës¹t‡`<ˆ0 }Ìc®c~ùò!•OЫ‡9Çù¦Áž%Î?¦Â½_Ï_[ùÚ9ÁkJ‚?Û~§HºÑ(ýJ c×™ðYÔ,PA$Ú¥l€ór˜TsÙÓlÞßX2¥éœ¢ƒk”=ôŒ*—j<°ÅLxuL™pT$ZšœàºãÍËé°[­Ñè˜WàbEÑë×`æa-;¢Ê‚†[÷øü5…ÎV£VQתõ˜þ³ªÌ©´€[¥záÚþÌØô˜WNVy= ®o  a@ºåäh[6*çsò×ê¶;pë˜bø,¨<¨VÀß'N«gãå‡FÉžWyÁ3‹‡hhÀ@3¡*Ž5À,âF¥SY7ÁÚ–TÊ䔸gi¢^¼ üÅÆU@Œs_í»òn½Y•ɧT^¬©YŒªç– ¸ “V‹R‰ S”Y…€|êݸU5h\ ¼1{ë¯55ŒöKÆ ±¿dPËH„z”Y£){ ,ÁÝ–"Ì[G³í¹.Ô´¨ælȲ‚‡méÍwS” ÏWº€ ÿ•ŽÁ€ÂÁ@³Ì§Ôà8”4<£Õ+üâ$£Ÿ>},iQ[œ6¦Ù¾î¶Ì¹èÓÒñƒhÆ0U’ÄMp/ˆcØ90K1U*£ÕËî†æý¤Ã!UªäEÐ$"@ÿ)uЮÁ,~ÏØÖ&kó)œL^Ö^–ä]iUŠ…,äð/ˆ´¢ÔóS†VU/M* j»KS §Cª.¹åcH]R3U¼·Ou´_žºˆ 6!×,8*-žRaÃF¬`Ôj…§Úëhù7DìŸFM ‚£·ÜlŒúˆÏÊõPBYq”Qžá82¯j†êjD0nJ‚šm†àËà^i^7_h§ŠVq:-a€Êqrª.7•;úІn¼YÝë7ʹ~7þ™g¸E"iÍ+Ľ ”.žÅLbÒ°!ÈF”~KYúê¸J7lSjhX°)b”NÛâ"o¯JÝRÈ ŽƒuÆYÅz©'Ò1ÖÓ$¯™PbTÇß³±º’ƒŽUT¬ß£6ÁÌÉðù‡ÉˉËGcÆo’ æçc6[œfh\‰µ1>nûúZ‚ú?ÂÃLbM¬|>¯éçC%ù …ÉL !qîqlO<ž!ïžÅm(m½ô´ÕMÝ@š=WPiò÷Wí3ÔtI™·xáè^6÷ÙnÑùgŸÓô±«´|FÑ?fÂÕŒ"é¸B©¨bAõmuÔ³ÉSÏ–MÖ×Góµ6\ œ8gá L÷¥—^:r >ù䓇y—V278”qÅ Œ 5%ê{)wø¨æÇaÞybï„Ù–¼š·üécÄæ&×=Ë|Ç:„P¸† °˜·fÏ Â$õÁô^ÍïÂjЫYEhÐñ qïç/âç0—HQ|õp-Ná¢ñüí0XC÷5¿"N‹É …»ôL”0ÿi¶üIôø\d3ëÔÛHIf2JPâæé¨Ø\Úåá 5Í=ÿÝ!ÅúúU]0fiêýà5§:UW-1̶£ƒÉ`WAŠœs­Éã›0X€¡yy•3¸ØQ¬b™â†45à´ÜGé#X˜AõypaI¡®q” Y@äpQ±6a1níWÀŒ Ñsñ'Sªt¥qÛõʶ7fÍÏÏ””ýÉ–XšÇ ž!­™ø1ôš5 ¦Rí¦¤Ðœ£üI%ûžFq†2B¸Ó3ª-/e¡«Â—µÍBãj A—‰.ª:¿¬Ø‹Æ2OVE„ ÖØŒÎA`ä<_gþóÌ;KhÂxDÂö­ðë.æ‹ó½ÝªÉá÷eBxí“p3¥®ß*_v"a®Û‚B3i¨/ ÀÅv‹¹³.‰H…P›'õ¾„ÔZÏøMvˆ@Š—kÜ£lÝ µÜ¬U¸7Õ,È&ŒGÜlÚ $/oç yÛ bÓÄãùbqÊJòZØ“³{÷î}„ö¸ÙÜè‰IPä½ ry(gµZ+8Êž×çû÷ì„Y7Õ)T¦h^Vlc΄"P­$sŠa]2aϱYœÇ²/_ÒüË 0Ƨdf°SžØfK­Æ]|Šx€&!¡vó÷.¨²Ñ¸2‹ö—0ÿ2€Ûž%ÃÜðÏÞ­ºÏéìUt¿ÿÝï~&Kâs:IÒþýûÇ ^Ù¾}û6úg „]»viyó†©&¤†0YrƒS§Ô½i- Fð×=þW´4c-³¦þ™çŒU«{£ÇËM—L.ˆµ y‹f€É,é3šóÈ'^Üå&î—FvŽýT™}0iæu  -’8!wù° ,Œ€t¬icá$URzµ§ÞU®zw@r˜ù°#!üÿ¬§ì´0u®i:á]`£DÌS¨§ýrÔ¶¡XÃ2ÚŸW&¹ç" Y$ûuª/¥þ¡j‘IzD’WûÆ#<8~öì13åÏz=î² u†wiÛÙj²&²€˜ÂPin¡/Ù¢=­Ä' Å¥+€• Ô¤¦€4͉¦º`¾geƒf‡@ `¾A›[ج¦-€ú‚G²ãSiÞ ¥£ýN%k)Á\±>µÜ­Á‰<7ÎPúâÑÁi|?k6Gôê Òº÷QEyùºHdš››c/Óþ¯ýÍÃ?dò¹ŸwƒD‰ ˆ³ì¸z Â0o"Bˆ«Dùéˆ][vÆÓÖ€)@t8†ñ˜Çù¦R}žÒÃM¥·ø1_|3‚¢X@¼…àMY` ¹Ëž >¬G×~šÌÛƒ˜Ófƒ&Ý] Ä&ÞÏ`U¹0€™ÑYòýð»Þ®‘·½UÙrÉhÞßäŸýñ ¸ä2ÓÏ+€~3r:ìȼݸB!0 Ceús¾J™¢¤¦D£^  lFîöQ,ùö£u?Áh> ó ð E §4Åe0À­Ûö™“mx¤Ñi1äÊ-a£Ì™Iʾ-ò-¢ñYü}ʆ¹žÖ…DF¹›vkËÿ@E"Î,š'³s¿ýÍ¿}`ìС§‹’û‹n’2ûôÏÐ._Ë ÅÆ‚&´%¶ø©ÐÅMÆKŠgªDM+'à Sùa:àØjJò= ó/*ZMâšµ‚V,!bw5'Î1Ÿ˜ËAÓàE˜‰ ñ:ùýBX!(˜7ùFZçHgèíxàãªü-æÙÔñÜÓÏüù·¾öWÎtÅÌ.±&T8vìØ‰+Vì!" !kTÊ6)kåœRÝæ]^Í4%!A~ÌÑo²3˜”Â1L>Á÷ç“\sS¨•ƒÙ£kÝÉqÀ“~^G)X@7 Ó Ig‚ì( EèBø{ LÇ8Ø£þš¿I;>þ1Uú Ì£8³ŸéÑ¿ü“/|²[š[þ%ö zhiáøñãc¼6¿ <è PŒÇ¡$Ó°òK 0Õ¡ßÖöAb 0ú¡€>„ ÌÈy5ü&w‡Ìf§cƒ±.QÁ6Öä(éI]4c»2õvÃ<O—/¬p“ˆTCÜ„ª€Í‹<}×»´ù_ýK±”é™Ëüˇ¿ð—Ÿÿ¿I6êçàá—Ý)JëÎŒ#*˜©'‰ØL¯‰S§¯"ËJ«œ¯Õ-S ¶*sªPC. à„Ù¢+°–b•ã TkQÁØŒ¸P Ìé¢PœHùèM@¡&ÖW#ÛŒ&|Qf ›|PCwÝ¡,QijzÚ»Y¿øµ¿øï÷GòÙñ³¬ýW¹Y:‚ÜÄÏaþ”$iÛhDåh7H…Êb~^Åñ))˜W¨Qmí 5UþùšÿKýNí7Äí#žÔ)g¡  ¢mF/,LN4Á4V¦q×]Úøž{ÕÀ³ËvW:•¬Ž<ôø_?ô•wWJ§Kîk±]>DÇh+{?Åo~—\Áa’"!€ 3ަ§W>}?=¥eHIjÃî#ð×K[CÍvºkÃic‚Ÿó†`ÚäúhÞ£ºXqu®áÑ—Ü£MìG²-GB¶@’Ãþ?£ùÆ}ûþÇ÷þúoþëHÓ»x‘¾–?˜@Ã;wîüƒ7½éM&Sì  ©°ÉýYhÜAaÅœ ¯ž”&Çš¿¤š òö@‰ÔµJîn„À?ñŒ|P ˆy‡`8¢ãT©ªYî©bioxƒFØ}ît¥ñ ª–²Y›áMcögÏœ™{æÉü§£Ï=ÿÍ•Ôs%ïõøÉŒ¥ùÜzÇw|‚×ÍoÆ%|„KÅc1»ƒ;,)î(æC³äãEL´:5©æìŒ|0 ‚ywP·U^ÃT…áˆ\ÖKSãô«ËVõnÝ"nFÙ yäÅÿO­Ty5èÕ—¦`“š¿©?uÔ* ¢°×¯Ý°þÆÃÃ×”«ÉÔÊp$œ¦ñŠWÃÜl¯Ð²*Áü2m« ìN?791qøì©ñƒ\Ÿ¦úËŠ>Ѳäý6þxšº·—Èò‘ŒÃ脚œÇü=G¸=Èõ2›TË €Í ׯõ¨ß°_­7õ:þ_¼ÝæS ÂIEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/states/kchart.png0000644000076500000240000001142712536324426023042 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYsììu85tEXtSoftwarewww.inkscape.org›î<”IDATxÚí› \GyÇÿÝïšsgöÒ®V»º½²„ Q² lŽ@œ@H ÊT€p䨊S`Š"EHGEc(S©ØØ±b‚mŽ T0’ É–¬ÓÒ®v%K{h¯™ÝÙyóŽî|¯_Ç3{i%°W¡Oúëë×;õf~ÿïë~o4³LJ‰ßåà¤k\3àš× ¸fÀ5^ú`Qàÿ9®Ê}»îs­FÒy•Dx$ï’yÎÑhšFcÒ6šR 3ÏÏ€I7 Q  ¾/ U_LTªþø¶u©ƒ‡ÿ«{ñ„ùÛ— ¯øÚ-Yë5‰„µ£T¶·,oY™r,¤“&2) Ù´…\ÆBÂ1`[LƒÃˆÄY†1dt ¸^ˆ=‡Æƒ¡¾_Z^Þ°î]ÑÝ•ÿ›íï°ßÝ7ë\×ÕÎÇæ$ ;†¥c=¦ùH¶©Æ–É”Œ¡ª¿ïèZóá‘Þýgr xÙÀ^÷K3¿mÓšÜ]ÉdíM F¡TŪŽ&0‚±m’lÇÐc–Ï™&‡É`ª}$!1íJLVŒÊɽw8ÿ²3ÀÚùÝ×n_›¿/Ÿm_74VA{kãÓŒ@Ü€P04À%,ààI¾`p}Àà‘$±KH %?”8ÚWFÇgJ…›@ñ²1€Ýòè²\"ùÕ6´ÝyqÂÅȤO8g%‚ÁŠÊàK/Œ*Í`ú$ƒÅÐÀçPðSðBJ”]T29õÔOî8ÀøËÃvóÏ·´æѶZÏ úa ƒ$Å  ʾàà>2+xFÀ ””Pwå’‘×ãȉžÓžW½ d.˜(>sóÍ+f†‡ïï?,CœdG¿&eõj@ð»w€'~\ªò¦BY*xS0½{fTQÉ TWV¨@KB,0]ÌØ„ú2ž÷B‰íëì±Ý¿ks žD‘äü³v[ÛÎÖ+vzÓÓpK%¸SSÁGÓéC~¹ü˜ÿW)¿è÷ì÷~Ý fC¶nvVÖpªÂ¼.se€Vü@•âj )Z>’²D÷ Ö侃‡÷~ï&Ï8(?þ-…OÒ9åW­2yôØ0DèyJëbfl ¥ÁÁ(Ÿq§§ÿ À=_’òÜ‹cÀëŽÿ„Ò›fA³z#.1f—ÿsÇbøã|ðá{>ÒNàü8üß¶Ë·m{Sª¥"‚®T@U‡O9 ¬•ÊdÆä¹s[,>Ä„øü§¤<ñ/v[ÿÁHüÕL<ó??ºnv(xpDyg“hÉçr77äóBÀdÑÒ3`X̨HÁÿI8MMhH&M2à=3ƒƒïþ"cØ]wK9qåï ñ§X4Ø‹¦æ,ÇÊæ ÿô³On³fÜRzß:¹¹¡©‰…ðI¢Phýsª¶éº0}ÁÛ¼”HH2†l"ÖåËÙ²öö;“†qô›Œ½áÊ7AÉnØo|_|9aÀk¶Zxò‰Ë º¶öñ†e!ÖX~Π—Ñšª¨NA³ '˜ç)ñj š×ÝÛ¶‘hlìŠÅŸÞÏØ§Þ#å?_¾Œ­üM XœaëZ[V³™‘á¡ÃΞ¸E [Ÿs}½£Xüøz*´©LÆ;(Ó&H'„ïÇF‘&)¤±:ŽcYŒŒù§ï1Vz»”_½<DpÜ~^İMFÐ[×Ó½ýC§|ø™ ]ËÌ<Øìê¿w@Ûø„SS঩:Jr®¯›Jd€ÔB\y•È êƒ–‰ˆ– +àâËO06ôF)w-m@P,Á^¶d{/ŒÀAcË*>Ý{nèôwvÚàÁ+ –À©ª¯áÇ» ì¿Ï¨ “ôm# èÐ]‚¦*+P°¤ÊóH5๙12áÇŒ=öf)«—6 tº-í`W¬“çØ²’O÷ôŸ~à?]‚À9À :„I9’¡ôñ- ‰§~··\É'1è=@‹I©æŒ9[3æ×çŽ ð÷,±ª×ÁݧýÖËf]×·®fØ¼Š—zÎõ<ðȳÜÀ¬ÍBšz®%aà]k%¦=†Pߺ˜!%çÁè¼ðâ¦Ü¹´Ü&ì@ë²àæ¦Å€çƒCŸîê}à‘㸩«©…ÚXÈЉ °ðÅÚ¶­AÃûßÒÃC–Ë/ ‘ªÚ/J´.½ÂÆè/–7¯}ã±ñsó¢à6½nlêDéTß…þ9Õr»ª´ApR@dè¹þÔdý£žoïÓýèZÕ€pR;wbê¾ûPݿΒž'¥IYR†”×b¸²(MKÞ ³Wÿ@"¬Â…inÐxû³étêÕ3n}Åcð+ÂéS½çÏ8|f]JÂD#ͪu›'ÓãX-éiwìâ@"2ëm#¿B‹7ü–pÇ»þ7m^ ï©§ð«o~c…‚=hér¶ ¦âX:öþLÊ—6`çR U•×oèÞ_M¾bÍÅIÞv_Oà'Nö8Ò¿:¬NZ&ãÇJègz\ž;×è½ÂøE;2àÃ?Dzê$B˶nœ|Ó{ßit¬ìÌœþÖ·0ø³Ÿ]r!š¤R'ÉÆâñaàJùúKpË“’ PÁ“\5¶-9ýÖß¿u`¤P¶öèYV§L¥yÕÕš37ߌœ9êOÇ-ÀÄ»ˆvw42€„” eó†à­ï}ëñÜW¾‚Êðð¢F0­6ÒJR³c (¾HöH™XzÔ×\=Pòüjfzø@ç©>™+%ý®-ƒ1²v銃/ ¯ ¼ð4É€I0% €'Ž6¿ý±DÛ–ë÷üí‡ÐÙsŠ>öóŠÅMР(Vë®Ð|ÖÓˆÛ—Þy¢\gცM)m" ˜™9@W8†€€ ˜‘&R\Á‘ÙÚ(Ž>g|çèg±lËÆðÍÿÖò]»Xåùç±X\ M“Ö‘îEb_ìö,¨XºdwSñ†ÆÍ¨.<`)ÀçT–Ïiw>\Fã¬%…#ãg Hj&À¢±¡—ƒT™EYñàÇÿ­[7…øÑa½_5†z“Ï<³à]J%™Äç+b̃}k! 0 IqéË ¤’‚£¹%’Ù,@d€¨«ÌkclvIì9!8`dÕy-Ûã[ðEW2$‡PÈ@¨³¨ËSGN÷è“hݶ)¼ã/>ˆíwgáÄ8m–2 ÁÞìfY¨¶xH|Xcö4€Ì1pû}/P˜Eã4eSIp.•&€œYK¬VyÆ8rYÙ•gùù _ë߆|IV“pœ)Ï…˜0$ÁJB ZeÒ#JÏž4¼ëhÞºQÜq×äwßm ïÚ…'OõT/ë·ZÜ U¡’2à Hç¤î˜5xE‘V@2ˆ—‚)Uë#$‰¨Bž¥ùÙ µ*/TùHêüÈel4®_¿ÕeM$uÂnXf½~Oò»MdÆ]Pñ ”€P&HëcÈY†HRéÈ)þÐ_~ Md„cACqÆiJ%Q¿ÏÇ4$œ¸ ›õ¶?Ë=ΓtÛÛºòZd‚`.Bé\CƒÍU¡RWn!·z|ÝA„ÙTàù° ä¦ßs{ ‰÷%°rw •a ,Õ²ÑcIcY«c0L“™îå<™´·‰T™Q–Alž¾w^Ì€V0V›6te‚Z‚Ù³a£!ǼÊ3hHÛÈ­:¶f_ AUÂ$ p0+Ü”À¡ÛÊ8AFlޗνi¸QGø¬††î ®@Å †$l )ljÁiB«,በ$c¡=ÀŠ;€éÂÆV$<¡Æ~àªãùÿ? ëŠÏMs4t[½AzAø3’2Á‡B $MZP&” +lò;>gÕxú538ö*Ž-O§±foÕB¾ëìê •ÕòPÇŽcCu€6 ^FÙêYù<ô$‘J,l‚/ä4^øLgLdWô]{¤âJ—"h Ä/ Ù^D‘’èaEŒ™.:½ r¡Ï[5î(áè6†­‡3X¿? ¯XU{„êˆ"6A+™ H8`\sH`JˆIT‹]ªCp:št•g™àKKëBgR&2Þ±^b †"hUm BŸ'Œ ÐxÈŸ&$àÆ—ºqTP`.™…ÎJ 9ߪuéÀ¦*ެc¸áx݇“tþ€ "^訬 H9 ¼&© ©zîy%R0Ï=9™3çXÑ9wCÁð8ç <Ýv²À µŠqÕu_Ɔ31tÃs÷?* }S)m„‡‚å£Qèš¶‘ó pÁàØ¿¶ŒÃ]ÛOå°ñd~ð$ôrd€TR€¸õ¡;ad&<`lÁû=9éÇÐüÚíʲY&U_*ðt’\^Ö Ù²®U\èŠK„$@Ákð2AŸ ªWL’\R©a!#Ò9G×$CÞÕŸ=±]38ÜNFôå°¹§¾´É¶AE‰ ô` ~ÈuÏî*^üÅ‹0г÷}ío œöæ¹&ø!`''Ñ|Ý^T“½˜®–QuCš×U–uà\ƒgN×À=Ý€.jêš´ ©z#€qC ò ³ä\ÄKC„Ø·jÏ­¨àÆcÍX5ÙÎ9Ž¥ à’FEÞÃç¿ í.-x+Ls‚16oô8žûä×±õŸ³Ìz¼@ÊÀÂÅñCpŒuȧ²ö¦Ã"füiÂ[=Cà©<ˆûÓ×ïL<,^ìmBr¶Plr «ÄÑdÐáå‘è-â8+aƒÝË0$ç,º(øjz œûò¡ÉÂ/\$ù—z3䑆0òÓŸàü¿¯ÇÊÞ p¦Mˆ74: ½.?…I_"eµ Ñ^‡Õ \¶µ÷J/9ÈG+Àh¹åèƒËÉ2„'°`0,z‰(¬¤…´“Fs²MÉ&‘CÃp¥8Sî»Ðtþâ@S¦ïðÍ<‡*op“qD1c°Ò§Ÿ>ôùŸ;÷Cý±")5@wA @N}úTG¦±þ#æØ`€êûZª)PÆ”ßÇ@¢—%|×Ù×lÌmÄmÍ·¥ÚÓíNsC³Y ªÌ \”½2fª3˜ªN¡ä–0åNQÅ,d,’V);…„•€c:° [Š@„ã¥qo¤2Rî/õ»=zǦÆ:à#Þò@ƒÍÐVbàHp¶a„d‚uøâè‘ؽ÷+†G÷$ÍHŠËûxœ1‹RŽ´­¯#6}îðۚMÈ 2¥²÷VȲ½4Hº¢~µ$'á #Ñ!:NÑh7ÊŒay;/sfŽ5Ø ÂÅJ…JA–ª%Lº“l¨2Ä.”/…r!>_ ×¯{-< yÂzösåÎÎó‘¾þï~ûYõ¿^TÕ¨¸WðEIýÎðHí0²qý§Þ‡¦[w";˜Bûß§îl‡ÐÙªÁêˆÎ$A| è/1§P!k?Ó{Ì£xŸAEÒ¸~ÓHŠ+þŠŒ”2T›"PEX*àøßõ#Ó*¬?ÞU•/€éX('Z|NÖR!µ„ž“:Ï›ÓÇ\KÔ×cq5{ªîU…ªê¿Í—¤ô *d„Gy Ńϣ6„Þ¨x ZKÏ…^Â9ç¸=_Lçú%[CW^Ü/KënÐ'.á$~~| 3œ ºÄñ¢ª7ÏÌ¥Mp1AÍÿ<îf¢¸j_–¦ssý!M;i ¶àvlÂ[Љn$`Ú·ök2ØüÙY—>ö z°Çñ\œÐ—¹"ñøWË€zmDc¼Ib9¶áUX‡Wb6ÐQ;Wl€‰¹"Є܇!ÁiìG}úÆf´v©7¼«fÀ|#LmFRßÑç•)I´ ›ìèIJ¢Íh'5#’°U¯Úø/¨ “ô§@¸$¼sxž`Ç0  U$•õNä‘„é_@¯¹HF!6)Q»©U9Q× †«Ûú‚ZV`•Rç JÒ½±ôÕ7`iCÙÎPËÚ€8D-«¹PC-¹ðËÉ€¥¹ÌP /Q\ûÕYàÚo]3àš¿Ãñ¿Ò®âZïiNIEND®B`‚PyQt-x11-gpl-4.11.4/examples/animation/states/states.py0000755000076500000240000003037212536324426022740 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui try: import states_rc3 except ImportError: import states_rc2 class Pixmap(QtGui.QGraphicsObject): def __init__(self, pix): super(Pixmap, self).__init__() self.p = QtGui.QPixmap(pix) def paint(self, painter, option, widget): painter.drawPixmap(QtCore.QPointF(), self.p) def boundingRect(self): return QtCore.QRectF(QtCore.QPointF(0, 0), QtCore.QSizeF(self.p.size())) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) # Text edit and button. edit = QtGui.QTextEdit() edit.setText("asdf lkjha yuoiqwe asd iuaysd u iasyd uiy " "asdf lkjha yuoiqwe asd iuaysd u iasyd uiy " "asdf lkjha yuoiqwe asd iuaysd u iasyd uiy " "asdf lkjha yuoiqwe asd iuaysd u iasyd uiy!") button = QtGui.QPushButton() buttonProxy = QtGui.QGraphicsProxyWidget() buttonProxy.setWidget(button) editProxy = QtGui.QGraphicsProxyWidget() editProxy.setWidget(edit) box = QtGui.QGroupBox() box.setFlat(True) box.setTitle("Options") layout2 = QtGui.QVBoxLayout() box.setLayout(layout2) layout2.addWidget(QtGui.QRadioButton("Herring")) layout2.addWidget(QtGui.QRadioButton("Blue Parrot")) layout2.addWidget(QtGui.QRadioButton("Petunias")) layout2.addStretch() boxProxy = QtGui.QGraphicsProxyWidget() boxProxy.setWidget(box) # Parent widget. widget = QtGui.QGraphicsWidget() layout = QtGui.QGraphicsLinearLayout(QtCore.Qt.Vertical, widget) layout.addItem(editProxy) layout.addItem(buttonProxy) widget.setLayout(layout) p1 = Pixmap(QtGui.QPixmap(':/digikam.png')) p2 = Pixmap(QtGui.QPixmap(':/akregator.png')) p3 = Pixmap(QtGui.QPixmap(':/accessories-dictionary.png')) p4 = Pixmap(QtGui.QPixmap(':/k3b.png')) p5 = Pixmap(QtGui.QPixmap(':/help-browser.png')) p6 = Pixmap(QtGui.QPixmap(':/kchart.png')) scene = QtGui.QGraphicsScene(0, 0, 400, 300) scene.setBackgroundBrush(scene.palette().window()) scene.addItem(widget) scene.addItem(boxProxy) scene.addItem(p1) scene.addItem(p2) scene.addItem(p3) scene.addItem(p4) scene.addItem(p5) scene.addItem(p6) machine = QtCore.QStateMachine() state1 = QtCore.QState(machine) state2 = QtCore.QState(machine) state3 = QtCore.QState(machine) machine.setInitialState(state1) # State 1. state1.assignProperty(button, 'text', "Switch to state 2") state1.assignProperty(widget, 'geometry', QtCore.QRectF(0, 0, 400, 150)) state1.assignProperty(box, 'geometry', QtCore.QRect(-200, 150, 200, 150)) state1.assignProperty(p1, 'pos', QtCore.QPointF(68, 185)) state1.assignProperty(p2, 'pos', QtCore.QPointF(168, 185)) state1.assignProperty(p3, 'pos', QtCore.QPointF(268, 185)) state1.assignProperty(p4, 'pos', QtCore.QPointF(68 - 150, 48 - 150)) state1.assignProperty(p5, 'pos', QtCore.QPointF(168, 48 - 150)) state1.assignProperty(p6, 'pos', QtCore.QPointF(268 + 150, 48 - 150)) state1.assignProperty(p1, 'rotation', 0.0) state1.assignProperty(p2, 'rotation', 0.0) state1.assignProperty(p3, 'rotation', 0.0) state1.assignProperty(p4, 'rotation', -270.0) state1.assignProperty(p5, 'rotation', -90.0) state1.assignProperty(p6, 'rotation', 270.0) state1.assignProperty(boxProxy, 'opacity', 0.0) state1.assignProperty(p1, 'opacity', 1.0) state1.assignProperty(p2, 'opacity', 1.0) state1.assignProperty(p3, 'opacity', 1.0) state1.assignProperty(p4, 'opacity', 0.0) state1.assignProperty(p5, 'opacity', 0.0) state1.assignProperty(p6, 'opacity', 0.0) # State 2. state2.assignProperty(button, 'text', "Switch to state 3") state2.assignProperty(widget, 'geometry', QtCore.QRectF(200, 150, 200, 150)) state2.assignProperty(box, 'geometry', QtCore.QRect(9, 150, 190, 150)) state2.assignProperty(p1, 'pos', QtCore.QPointF(68 - 150, 185 + 150)) state2.assignProperty(p2, 'pos', QtCore.QPointF(168, 185 + 150)) state2.assignProperty(p3, 'pos', QtCore.QPointF(268 + 150, 185 + 150)) state2.assignProperty(p4, 'pos', QtCore.QPointF(64, 48)) state2.assignProperty(p5, 'pos', QtCore.QPointF(168, 48)) state2.assignProperty(p6, 'pos', QtCore.QPointF(268, 48)) state2.assignProperty(p1, 'rotation', -270.0) state2.assignProperty(p2, 'rotation', 90.0) state2.assignProperty(p3, 'rotation', 270.0) state2.assignProperty(p4, 'rotation', 0.0) state2.assignProperty(p5, 'rotation', 0.0) state2.assignProperty(p6, 'rotation', 0.0) state2.assignProperty(boxProxy, 'opacity', 1.0) state2.assignProperty(p1, 'opacity', 0.0) state2.assignProperty(p2, 'opacity', 0.0) state2.assignProperty(p3, 'opacity', 0.0) state2.assignProperty(p4, 'opacity', 1.0) state2.assignProperty(p5, 'opacity', 1.0) state2.assignProperty(p6, 'opacity', 1.0) # State 3. state3.assignProperty(button, 'text', "Switch to state 1") state3.assignProperty(p1, 'pos', QtCore.QPointF(0, 5)) state3.assignProperty(p2, 'pos', QtCore.QPointF(0, 5 + 64 + 5)) state3.assignProperty(p3, 'pos', QtCore.QPointF(5, 5 + (64 + 5) + 64)) state3.assignProperty(p4, 'pos', QtCore.QPointF(5 + 64 + 5, 5)) state3.assignProperty(p5, 'pos', QtCore.QPointF(5 + 64 + 5, 5 + 64 + 5)) state3.assignProperty(p6, 'pos', QtCore.QPointF(5 + 64 + 5, 5 + (64 + 5) + 64)) state3.assignProperty(widget, 'geometry', QtCore.QRectF(138, 5, 400 - 138, 200)) state3.assignProperty(box, 'geometry', QtCore.QRect(5, 205, 400, 90)) state3.assignProperty(p1, 'opacity', 1.0) state3.assignProperty(p2, 'opacity', 1.0) state3.assignProperty(p3, 'opacity', 1.0) state3.assignProperty(p4, 'opacity', 1.0) state3.assignProperty(p5, 'opacity', 1.0) state3.assignProperty(p6, 'opacity', 1.0) t1 = state1.addTransition(button.clicked, state2) animation1SubGroup = QtCore.QSequentialAnimationGroup() animation1SubGroup.addPause(250) animation1SubGroup.addAnimation(QtCore.QPropertyAnimation(box, 'geometry', state1)) t1.addAnimation(animation1SubGroup) t1.addAnimation(QtCore.QPropertyAnimation(widget, 'geometry', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p1, 'pos', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p2, 'pos', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p3, 'pos', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p4, 'pos', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p5, 'pos', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p6, 'pos', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p1, 'rotation', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p2, 'rotation', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p3, 'rotation', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p4, 'rotation', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p5, 'rotation', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p6, 'rotation', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p1, 'opacity', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p2, 'opacity', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p3, 'opacity', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p4, 'opacity', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p5, 'opacity', state1)) t1.addAnimation(QtCore.QPropertyAnimation(p6, 'opacity', state1)) t2 = state2.addTransition(button.clicked, state3) t2.addAnimation(QtCore.QPropertyAnimation(box, 'geometry', state2)) t2.addAnimation(QtCore.QPropertyAnimation(widget, 'geometry', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p1, 'pos', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p2, 'pos', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p3, 'pos', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p4, 'pos', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p5, 'pos', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p6, 'pos', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p1, 'rotation', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p2, 'rotation', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p3, 'rotation', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p4, 'rotation', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p5, 'rotation', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p6, 'rotation', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p1, 'opacity', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p2, 'opacity', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p3, 'opacity', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p4, 'opacity', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p5, 'opacity', state2)) t2.addAnimation(QtCore.QPropertyAnimation(p6, 'opacity', state2)) t3 = state3.addTransition(button.clicked, state1) t3.addAnimation(QtCore.QPropertyAnimation(box, 'geometry', state3)) t3.addAnimation(QtCore.QPropertyAnimation(widget, 'geometry', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p1, 'pos', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p2, 'pos', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p3, 'pos', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p4, 'pos', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p5, 'pos', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p6, 'pos', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p1, 'rotation', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p2, 'rotation', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p3, 'rotation', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p4, 'rotation', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p5, 'rotation', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p6, 'rotation', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p1, 'opacity', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p2, 'opacity', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p3, 'opacity', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p4, 'opacity', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p5, 'opacity', state3)) t3.addAnimation(QtCore.QPropertyAnimation(p6, 'opacity', state3)) machine.start() view = QtGui.QGraphicsView(scene) view.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/animation/states/states.qrc0000644000076500000240000000040112536324426023060 0ustar philstaff00000000000000 accessories-dictionary.png akregator.png digikam.png help-browser.png k3b.png kchart.png PyQt-x11-gpl-4.11.4/examples/animation/states/states_rc2.py0000644000076500000240000042321112536324426023501 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:17:11 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x1b\x48\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x1a\xc5\x49\x44\ \x41\x54\x78\xda\xcd\x7b\x0b\x5c\xcf\xf7\xf7\xbf\xf9\xee\xc6\x30\ \x14\xdb\xd7\xfd\x32\x66\xc6\x66\xc3\xd8\xec\x8a\x51\x51\x2a\x42\ \xae\xb9\x35\x84\xb9\x33\x86\xe6\xba\x94\x6b\xc9\xa5\x74\x2f\x11\ \xa9\x24\x95\x8a\xe4\xbe\xdc\x72\x0b\x45\x49\x4a\x4a\xf7\xcb\xa7\ \xcb\xe7\xf9\x3f\xcf\xd7\x47\xf3\xdd\x77\xdf\xff\x77\xfb\x7d\xc7\ \xf0\x78\x9c\xf5\xde\xfb\xf3\x7e\x9d\xf3\x3c\xe7\x75\x5e\xe7\xf5\ \x7a\x9f\x73\xde\x35\x00\xfc\x65\x5a\xbf\x7e\xbd\xbe\x87\x87\xc7\ \x48\x77\x77\x77\xcb\xad\x5b\xb7\xb6\x5f\xb0\x60\x41\xcd\xff\xf6\ \xfc\xa6\x4d\x9b\x6a\xb9\x07\x44\xce\xf1\x39\x7a\xcf\xca\x3b\x26\ \x65\xa2\x47\x40\xf8\x4f\x32\x76\xd2\xce\x9d\x3b\xad\x5c\x5c\x5c\ \xc6\x0a\x4d\x12\x9a\xbc\x63\xc7\x0e\x5e\x8f\x70\x75\x75\xed\x2d\ \xfc\x9b\x71\xec\xd3\xa6\xbf\x34\x38\x28\x28\xa8\xf6\xee\xdd\xbb\ \x8f\x87\x87\x87\x17\x47\x47\x47\xe3\xe8\xd1\xa3\x90\xbf\x15\xb1\ \xb1\xb1\x5a\xf9\x2d\xf3\xc0\x81\x03\x39\x01\x01\x01\x09\xfb\xf7\ \xef\x4f\x15\xba\x11\x12\x12\xf2\xe0\xd0\xa1\x43\x05\x31\x31\x31\ \xda\x5b\xc9\x77\x50\x5c\x56\xa9\xe8\xc6\xad\x64\xc8\x18\x35\xf6\ \xd4\xa9\x53\x88\x88\x88\x28\x38\x71\xe2\x04\xc2\xc2\xc2\x1e\xc9\ \xb3\xfc\x5b\x10\x19\x19\x09\xa1\x22\xe1\x1b\xb7\x61\xc3\x86\x56\ \x2f\x84\x01\xbc\xbd\xbd\x03\x05\x60\x85\x28\x19\x2b\x33\x64\x2d\ \xb3\x38\xd5\xc7\xc7\x67\x9d\xbf\xbf\x7f\xe0\xae\x5d\xbb\xa2\x45\ \xe1\xdb\x02\xf8\x4a\x58\x70\x60\x8e\xb7\xdd\x92\x87\x7b\xf7\x05\ \x95\xee\xda\x1d\x58\xe6\xe2\xb9\xb7\x6c\xf9\xd6\xb0\xf2\xb9\xce\ \xa7\x2a\xe7\x6f\x3b\x53\xb9\xd6\x3d\xae\x6c\x93\x67\x4c\xe1\x36\ \x8f\x43\x99\xde\x1e\x81\x57\xc3\x67\x98\xaf\xda\xe3\xb0\x6c\xa2\ \xf0\x1c\xec\xe7\xe7\x37\x55\xe4\xcc\x17\x9e\xbb\xf6\xed\xdb\x77\ \x4e\x8c\x53\x29\xc6\xaa\x14\x6f\x19\xf2\x5c\x0d\x20\xb3\x50\xff\ \xd8\xb1\x63\x5a\x01\x75\xea\x3f\xfd\x7e\xd2\xb0\x51\x97\x63\x03\ \x1a\x6e\x3a\x32\x50\x2f\x39\x66\x60\x43\xed\xd1\xc1\x4d\x71\x39\ \x25\x1f\x57\xd3\x0a\x90\x78\xaf\x08\xc9\x19\x45\xb8\x9d\x49\xd2\ \x5d\x27\x09\xdd\xb8\x57\x88\xab\x77\x0b\x70\x6d\x58\x6b\x24\x98\ \xbc\xa5\xfd\xc5\x50\xff\x97\xf3\x06\x7a\x0b\xe3\xfb\xe9\x75\xa8\ \xe6\x2b\x4b\xac\x63\x70\x70\x70\x8a\x78\x5d\xce\x73\x35\x00\xd7\ \xac\xb8\x6c\x95\xa7\xa7\xa7\x55\xf5\xbd\xab\xfd\xeb\x35\x8c\x37\ \xd2\x5f\x15\x6f\xa0\x77\xfb\xe2\x80\x46\xb8\x36\xb8\x09\x6e\x8d\ \x68\x89\x3b\x56\xef\x20\xcd\xe6\x43\x64\xe7\x97\x21\xb7\x50\x83\ \xfc\xe2\x72\x14\x94\xe8\xa8\xb0\xa4\x82\x7f\xd5\xbd\xdc\x22\x0d\ \x72\x0a\x34\xb8\x3f\xf3\x63\xa4\x59\x77\xe0\x38\x8e\x57\x7c\xce\ \x0d\x68\x7c\x9b\xbc\x29\x43\x8c\x1e\x15\x17\x17\xa7\x7d\xae\x06\ \x10\x97\xdc\x2d\x6b\x1c\x02\xa6\xd9\x49\x8b\x66\xb5\xe2\x0d\xf4\ \x17\x9d\x33\xd0\x2f\xb8\x6c\xfa\x36\x6e\x5a\xb6\x40\xca\xf8\x76\ \xb8\x3f\xf5\x7d\x3c\x9c\xd5\x05\x39\x0b\x7b\x20\x6f\x65\x5f\x54\ \x54\x56\xa1\xb2\x4a\x8b\x2a\x92\x56\x0b\xad\x22\x5e\xab\x7b\xfc\ \x4d\x3d\x93\xb7\xd6\x08\xb9\xb6\x5f\x72\x1c\xc7\x93\x0f\xf9\x29\ \xbe\x97\x4c\xdf\x2e\x88\x99\x63\x71\xed\x60\x70\x60\xf1\x73\x35\ \x80\xaf\xaf\xef\x51\x59\x9f\xda\x0b\x03\xdf\x9a\x28\xca\x3f\xa0\ \xe2\xb7\x46\xb6\xc2\xdd\x49\xef\xe2\xc1\xf7\x1f\x20\xe7\x07\x51\ \x7a\x45\x6f\x14\x38\x0c\x40\xd1\x96\x21\x28\x71\xb3\x42\x59\x05\ \x50\xa2\x01\x8a\x84\x0a\xcb\x74\x54\x50\xaa\xfb\x5b\x24\x54\x2c\ \xf7\x4b\xcb\x85\x7c\xbf\x43\x89\xcb\x48\x8e\xe3\x78\xf2\x21\x3f\ \xf2\x25\x7f\x25\xe7\xfc\xf0\x76\xda\xf3\x06\x0d\x27\xec\xb1\xa8\ \xf1\x8f\xe7\x62\x00\xb7\x2d\x9b\x6e\x6e\x75\x72\xc2\xa5\x81\x8d\ \x38\x33\x0a\x58\xd6\xcc\x0f\xf1\x68\xc9\xe7\xc8\xb7\x33\x50\xe0\ \x4b\xdd\xc7\x42\xe3\x3f\x19\x15\x41\xb3\x50\x19\xb9\x04\x0f\x0b\ \x81\x07\x05\x40\x46\x3e\x70\x3f\x0f\x48\x57\xa4\xbb\xce\x10\xca\ \x94\xfb\x59\xf2\x4c\xd5\xd1\x15\xa8\x0a\xff\x81\xe3\x38\x9e\x7c\ \xc8\x8f\x7c\xc9\x9f\x72\x28\x8f\x72\xb9\x34\xae\x9c\x37\xaa\xdf\ \xf2\x6f\x35\xc0\x39\xc3\x06\x9f\x3b\xaf\x58\xa4\xdd\xb0\x7e\x3d\ \x6e\x5b\xb5\x45\xe6\xf4\xce\x78\xb4\xf8\x53\x9d\xe2\xce\x43\x51\ \xe6\x33\x11\x15\xfb\x67\xa2\x2a\x62\x11\x10\xb3\x0c\x88\x5e\x02\ \xed\xe1\x1f\x71\xfb\x21\x90\x94\x05\xdc\x7c\x00\xdc\xc8\x04\x12\ \x9f\x90\xba\x77\x4b\x7e\x4b\x96\x67\xb4\x11\x0b\x80\xc8\x85\x1c\ \xc7\xf1\xe4\x43\x7e\xe4\x4b\xfe\x94\x43\x79\x94\xab\xe4\x27\x98\ \x35\xcd\x25\xa6\xbf\xc5\x00\xbf\x18\xea\x4d\x3c\x6f\xa8\x5f\xe1\ \xb2\x6a\x11\xdc\x76\x6c\x45\xf6\xdc\x8f\x65\x7d\xf7\x41\x91\xd3\ \x60\x94\x79\x4f\x50\xb3\xa6\x7d\xac\x34\x22\x45\x91\xb0\x19\x40\ \xd0\x04\x68\x03\x46\xe0\xd2\x3d\xe0\xc2\x5d\xe0\x5c\x2a\x10\x9f\ \x02\xfc\xf2\x84\xd4\xbd\xf3\xf2\xdb\xc5\x34\x40\xeb\x63\x02\xec\ \xb6\xe0\x38\x8e\x27\x1f\xf2\x23\x5f\xf2\xa7\x1c\xca\xa3\x5c\xca\ \x57\x01\x33\x71\x58\xf3\x0a\x62\x7b\x66\x06\x90\x47\x5f\x3a\x6b\ \xa0\xb7\xe9\x82\x91\xbe\x8a\xcc\xbe\x9b\xed\x10\x12\x1c\xa4\xd6\ \x68\x89\xeb\x28\x94\xef\x9d\xc6\x59\xd6\x29\x1e\x31\x0f\x08\xf9\ \x4e\xa7\x84\xdb\xd7\xc0\xe6\x0e\xa8\x5a\xd3\x08\xc7\x93\x80\x63\ \x37\x81\xa3\x37\x80\x23\x42\x31\x89\x5a\x44\x5f\xd7\xf2\x5a\x51\ \xac\xfc\x76\xfc\x16\x50\xb1\xec\x75\x60\x65\x5d\x8e\xe3\x78\xf2\ \x21\x3f\xf2\xad\xf6\x26\xca\xa3\x5c\x25\x3f\x67\x51\x4f\xa4\x4f\ \xe9\xa8\x70\x9d\x35\x6c\xb4\x89\x58\x9f\xba\x01\x4e\x19\x34\xb6\ \xbb\x38\x40\x1f\x49\x12\x80\x32\xa6\x75\x82\xff\x16\x3b\xec\xf7\ \xf7\x56\xb3\x51\x19\x3a\x57\xb4\x59\xaa\x73\xdb\x03\x53\x00\xff\ \xc1\xc0\xb6\xee\xc0\x9a\x86\xa8\x5a\x5c\x03\x9a\x85\x35\x51\xb4\ \xe0\x0d\x04\x9e\x2b\x83\xff\x99\x12\x78\x9f\x28\x82\x47\x5c\x21\ \xdc\x8e\x15\x28\x72\x97\x6b\x2f\xb9\xe7\x77\xaa\x18\x7b\xe3\x4b\ \x51\x30\xaf\x0e\x4a\xe6\xfe\x83\xe3\x38\x9e\x7c\xc8\x8f\x7c\xc9\ \x9f\x72\x28\x8f\x72\x95\xfc\xc2\x4d\xa6\x78\xb4\xf4\x0b\xe2\x52\ \xf8\x4e\x19\x35\xb6\x7b\xaa\x06\x38\x6d\xa8\x37\xe2\x82\xa1\x1e\ \x99\x73\xdd\xa9\x2d\x2a\xd8\xcf\x1d\xe1\x07\xf6\x73\x7d\xea\x66\ \x3d\x7c\x36\xb0\x77\x24\xe0\xda\x0b\x58\x5d\x1f\x95\x8b\x5e\x42\ \xe9\xfc\x9a\x28\x9c\xf5\x32\xb2\x6c\xea\xe0\xe6\xc4\x36\xd8\x28\ \x67\x97\xb5\xa1\x59\x58\x15\xf4\x00\x3f\x05\x66\xc0\x76\x5f\x06\ \x96\xed\xbd\xaf\xae\x57\x06\x65\xe2\xe7\x90\x2c\xac\x0f\xcb\x46\ \xe2\x84\x36\xc8\x9c\x5c\x17\x79\x33\x5e\xe1\x78\xf2\x21\x3f\xf2\ \x25\x7f\xca\xa1\x3c\xca\x55\xf2\x35\xbb\xbe\xe3\x92\x20\x2e\xe2\ \x53\x38\x89\xf9\xa9\x18\xe0\xac\x91\x7e\xb7\x73\x06\x7a\xe5\x37\ \x2d\x5b\xd2\xc2\x14\xa2\x22\x72\x58\xa0\x3f\x0e\xf8\xb9\x00\x51\ \xe2\xf6\xa1\x36\x80\x9f\x09\xb0\xa1\x2d\xaa\x7e\xac\x81\xb2\xc7\ \x8a\xdf\x9b\x5c\x1f\x97\xc6\xb6\xc1\xa9\x51\x9d\x71\x7a\x54\x27\ \xcc\xf1\xbe\x8b\x99\x3b\x2e\x6b\xa7\xd9\x47\x95\x58\x2d\xd9\xf5\ \xd0\x74\x86\xd3\x6d\xb3\xe9\x4e\xb7\xc7\x2d\xf1\xcb\xb6\xb1\x8f\ \x2c\x9d\xb1\x2d\x41\x3b\xd3\x33\x85\xcf\xaa\x31\x17\xc7\xb4\x45\ \xea\xc4\x06\xc8\x9d\xf6\x2a\xf9\x91\x2f\xf9\x53\x0e\xe5\x51\xae\ \x92\xaf\x8d\x5a\x02\xcd\xee\x29\xc4\x45\x7c\x0a\xe7\x75\xcb\x96\ \xe5\xc4\xfe\x97\x0c\x10\xdf\x5f\xff\x9f\x67\x0c\xf4\xb3\x13\x87\ \x36\xe3\x1a\x53\x5b\x50\x91\xa3\x39\x72\xbd\xac\x71\x3c\x2e\x0e\ \xe1\x5e\x1b\x80\x10\x6b\xc0\xa3\xaf\x9a\x9d\xf2\x1f\x5e\x42\xf1\ \x9c\x7f\x20\x6b\x6a\x6d\x9c\x1d\xd5\x16\xc7\x2c\x3b\x2a\x8a\x1b\ \xde\xae\xd2\x75\x60\xbb\xb4\x6f\xbe\xec\x73\xe0\xe3\x8f\x3f\x76\ \x16\x5a\x2f\xb4\xea\xa3\x8f\x3e\x5a\x4a\xe2\x35\xef\xf1\xb7\xde\ \x5f\xf5\x3e\xb0\xd5\xa8\x5d\xca\x91\xa1\xed\x2b\xaa\xc7\x9f\x19\ \xf9\x0e\xd2\x27\xd5\x41\xde\xf4\x57\xc8\x9f\x72\x28\x8f\x72\x75\ \xf2\x0f\x2f\x62\x80\xa4\x11\x88\x8f\x38\x15\xde\x04\x8b\xe6\xd9\ \xd4\xe1\x7f\x36\xc0\xf1\xfe\x8d\x4e\x5f\x31\xfb\x27\xf7\x5c\x75\ \x10\x29\xdc\x38\x08\x65\x7e\xd6\x38\xed\xb7\x06\x91\x11\x11\xb8\ \xea\xbb\x10\xd8\xf9\x25\x60\xfb\x0a\x34\x0b\x64\xd6\x67\xbe\x8c\ \xd4\x49\xf5\x70\x74\xf8\x3b\x88\x1e\xd6\x0e\xe1\x43\xda\x94\x2c\ \xeb\xd3\x2e\xbe\x6b\xd7\xae\x1b\x44\xb9\x39\xa2\xec\x10\xb9\xfe\ \xec\x43\xdd\xbf\x76\x5d\xba\x74\x69\x4a\xe2\x35\x6f\xf0\x37\x3e\ \xc3\x67\x39\x66\xda\x57\x1d\x8f\x1f\x1c\xdc\xa6\x98\xbc\xc8\x33\ \x79\x5c\x7d\xe4\x4c\x7d\x8d\x72\x28\x8f\x72\x75\xf2\x83\x27\x01\ \x51\x8b\xe9\x09\xc4\x47\x9c\xc4\xab\x70\x9f\x19\xd4\xe4\xf4\xff\ \x64\x80\xb8\x7e\xfa\xc6\x8c\xf8\xc9\x63\xda\x20\x7b\xce\x47\xc8\ \x5f\x6b\x88\x52\xcf\x71\x28\x0d\x5b\x8c\xa8\x88\x30\x84\xca\x12\ \xd0\xee\xfc\x1a\x58\x56\x53\xb9\x66\xfe\xf7\xaf\xe0\xfa\xb8\x06\ \x38\x64\xd1\x06\x91\x16\xad\xb4\x73\xbe\x69\x7f\x56\x94\x58\x2b\ \x0a\x0e\xa7\x72\xa2\x94\xbe\xd0\x2b\x7f\xe4\x92\x7c\x86\xcf\x72\ \x0c\xc7\x92\x87\xcd\x97\x1d\x4e\x46\x0c\x69\x5d\x45\xde\x97\x47\ \xeb\xe1\xe1\xe4\xd7\x28\x8f\x72\x29\x9f\x3b\x05\x3d\x81\x31\x81\ \x07\x28\xe2\x24\x5e\xe2\x56\xf8\xe3\x0c\xdf\x36\xfe\xbf\x19\xc0\ \xb6\x46\xcd\xe3\xfd\x1b\xa7\xca\xde\xaa\x5b\xf7\xcb\xbf\x91\xa3\ \xe9\x08\x54\x84\xcc\x46\xd4\x3e\x0f\x99\xfd\x70\x9c\x71\x9e\x0c\ \x2c\x7f\xfd\x57\xe5\xcf\x8f\xd6\x47\xc8\xe0\x96\x08\x1d\xdc\x5c\ \x63\xdc\xb3\x93\xb7\xcc\xe4\x58\x51\xa4\xb3\xd0\xeb\xff\xeb\x29\ \x8d\x63\xc9\x83\xbc\x8c\x3e\xe9\xec\x15\x6a\xde\xa2\x92\x32\xce\ \x8e\x68\x84\xac\xef\x5e\xaf\x36\x82\xc2\x01\xaf\xfe\xc0\xc1\x69\ \x34\x02\x71\x12\x2f\x71\x2b\xfc\xf1\x43\x5a\xa6\x52\xa7\x3f\x6d\ \x80\x98\x7e\x8d\xa7\x26\x18\x37\xe6\x0b\x08\x5f\x48\x64\x9b\x31\ \x83\x66\x8f\x0d\x0e\x07\xec\x54\x89\x8b\x88\x1d\xb6\xa8\x5c\xdd\ \x48\xb9\x61\x81\x80\xb8\x39\xae\x2e\xf6\x99\x35\x83\xe7\xc0\x66\ \x0f\xbb\x75\xe9\xb2\x46\x66\xee\x2b\x01\x5e\xf7\x69\x25\x2d\xc8\ \x8b\x3c\x47\x0f\x1b\x7a\x29\xd0\xbc\xb5\x96\xb2\xae\x8e\xac\x47\ \x23\x50\xbe\xc2\x81\x9f\x1b\x01\x7e\xa6\x40\xf8\x1c\x9e\x1e\x89\ \x97\xb8\x89\x5f\xe9\x71\xd4\xe8\xed\xa9\x7f\xca\x00\x47\xbe\x6e\ \xf5\xfa\x29\x83\x46\x8f\x6e\x0c\x6f\x81\xcc\x19\x9d\x91\xbf\xe6\ \x5b\x14\x7a\x4c\x40\xa0\xef\x4e\x04\xf8\xfb\x21\xcc\xdd\x1e\x9a\ \xf5\x1d\x50\x21\x81\x88\x91\x39\x53\x40\xec\x37\x6b\x2c\xca\x37\ \x79\x24\x20\x17\xca\x6c\x75\x11\xc0\x2f\x3f\xed\xd4\x15\x79\x3a\ \x38\x38\xc4\x2e\x5e\xf4\x03\x7c\x07\x34\xc9\x0f\x34\x7d\x0b\xa9\ \x63\x6b\x73\x39\x10\x87\xc2\x03\xc7\x8e\x40\xe0\x18\x06\x45\xd9\ \x1e\x65\x29\x78\x8c\x25\x7e\xa5\xc7\xc5\xa1\xad\x1e\x51\xb7\x3f\ \x34\xc0\xa1\x7e\x8d\xe7\x5d\xaa\x9e\x7d\x9e\xb0\x9c\xc7\x62\xfb\ \xe6\x75\x70\x74\x74\xc4\x41\xd7\x35\x28\x75\xee\x05\xed\x92\x1a\ \x28\x96\x83\x4a\xce\xd4\x57\x11\x65\xd1\x00\xfe\x26\x8d\xca\x7b\ \x7c\xd4\xd9\x56\x40\xbe\x23\xa4\x4e\x61\xcf\x82\x24\xf7\xb0\x55\ \xa8\xf8\xf3\x5e\x9f\xae\xf3\x1c\xf0\x56\x59\x84\x59\x43\xa4\x8f\ \xaf\x45\x1c\xc4\x43\x5c\x8c\x07\x8f\x97\xc2\x52\x94\x07\xce\xe0\ \xf9\x80\x7a\x28\x7d\x82\xe6\x8e\x4a\x92\xd7\xf8\x63\x92\xad\xf2\ \x93\x3c\x66\xad\xff\x68\x80\xf0\x7e\x6f\x5d\xe1\xb6\xc7\xb5\x93\ \xb0\x61\x12\x7c\xbc\xbd\xb0\x6d\xeb\x56\x1c\xdb\x3e\x4f\x82\x8b\ \x29\xb0\xf6\x6d\xba\x9c\x3a\xa4\x5c\x1e\xf3\x06\xbc\x06\xd6\xd7\ \x8e\xe8\xf5\x9e\x97\x04\xab\xce\xcf\x52\x79\x92\xa4\xc8\x4c\x0e\ \x1e\x3c\x88\xd5\xab\x57\x7b\x9a\xf4\xe8\xec\xea\x31\xa0\x81\xf6\ \xdc\xb0\x7a\xc8\x9c\xf4\x3a\xf1\x10\x97\xc2\x87\x3d\xc3\xd5\x69\ \xb1\x2a\x72\xb1\xf2\x82\xbc\xd5\x7d\x95\x3e\x31\xe3\x3f\x45\x68\ \x68\x68\x16\x73\x96\x7b\xf7\xee\x8d\xfa\x9d\x01\x0e\x7e\xd1\xf4\ \xcd\x78\x43\xbd\x4a\x46\xce\xa8\x8d\x0b\x21\x09\x4c\x04\xf8\xb8\ \x23\xd1\x7b\x36\x2a\x82\xac\xb9\xe5\xa8\x83\x48\xd1\xec\x97\x95\ \xeb\x05\x0e\xaa\x8b\xc5\xbd\x9b\x9f\x13\xe5\x3f\x17\xe5\xd5\x7b\ \xf9\x33\xa6\x9a\x32\x7b\xd9\x92\x84\x29\x96\xe5\x70\x7b\x89\xf1\ \x47\x8f\x02\x8c\xeb\x21\x4d\xb7\x14\x88\x8b\xf8\x88\x53\xe7\x05\ \x31\xe2\x05\x01\xd3\xd4\x51\x39\x7b\x7e\x37\xdc\x1c\xdd\xa6\x92\ \x3a\x06\x06\x06\x9e\x92\x94\x5a\xe9\xef\x0c\x10\xf0\x6d\x13\x9b\ \x4b\x66\x4d\x64\x9d\x3b\x21\x3a\xe2\x10\x22\xf6\xf9\x22\xdb\x7b\ \x12\xb4\x3c\x7b\xef\x1b\x05\x38\x34\xa7\x95\xd5\x81\x24\x6d\x5c\ \x6d\xb8\x18\xd4\xad\x10\xc5\xc7\x09\x29\x77\xfa\x3b\x48\x92\xae\ \xef\x4b\x32\xe6\xba\x64\xa3\x35\x4b\x96\x2c\xd1\x6c\x37\x68\x80\ \x5b\x96\x75\x90\x31\xa1\x16\x71\x11\x1f\x71\x12\xaf\x3a\x1b\x54\ \x1e\x9c\xaf\xdb\x11\x96\x7d\xa9\xde\x1a\x83\x8c\x9a\xd9\xc8\x32\ \xd8\xca\xac\xb3\xa4\xdb\xbb\xfc\x86\x79\x88\x49\xfb\xb3\xa1\x5e\ \xdb\x21\xc9\x4e\x1c\xdd\xb9\x1a\xf9\x2e\xc3\xb8\x96\x74\x91\xd5\ \xdb\x88\x6b\x4c\x9d\xc4\xb2\xa7\xbc\x86\x93\x43\x6b\xe1\xe7\xde\ \x8d\xae\x75\xeb\xd6\xad\x2d\xc7\x3e\x0f\xea\xd5\xab\x57\xbb\xc5\ \x5f\xbe\x7d\xf1\xe8\xa0\x37\xe8\x05\xc4\x45\x7c\xc4\x49\xbc\xd5\ \x3b\x82\xca\x23\xe4\xff\xdc\x5f\xbd\x27\x44\x9a\xb6\x3a\x21\xf9\ \xcc\x91\x92\x6a\xcf\x17\x03\x8c\x79\x92\xe1\x59\x35\xad\x76\xb0\ \xe7\x0e\x6d\xe4\xa1\x30\x9c\x58\x37\x1d\x79\xeb\x0c\x51\xbe\x47\ \x05\x13\xdd\x1b\xd8\xd6\xae\x8c\xb4\xdc\x76\xd4\x9a\xf3\x1f\xf0\ \x5a\x95\x51\x8f\xce\x56\xd5\x87\x9b\xe7\x41\x94\xfd\x59\xf7\x0f\ \x47\xee\xfc\xb6\xb6\xe6\xce\xc8\x3a\xc4\x45\x7c\xc4\x49\xbc\xc4\ \x4d\xfc\x5c\x06\x3c\x1d\xaa\x83\xd1\x95\x91\x6d\x4a\xdd\x5d\xb6\ \x7e\x45\x0f\x90\x98\x62\xfb\x2b\x33\x2f\x57\x97\x98\xa8\xc8\x70\ \xc4\xba\xac\x46\xde\x8e\xc9\x28\xde\x6f\x8b\xb2\x38\x67\x94\x9c\ \x71\x43\xe1\x61\xb9\xe7\x31\x14\xe9\xf6\x5f\xe1\xfa\xb2\xaf\x70\ \x66\xf6\xd7\xd8\x34\xa0\x69\x56\xf7\xee\xdd\x55\x81\xe2\x79\x12\ \x31\xd8\xf5\x6b\x9e\x71\x64\x72\x6f\x9c\x9f\xf7\x0d\x92\xe4\xf0\ \x93\xb5\xfe\x1b\x14\x78\x0e\x45\x71\xd4\x6a\x68\xce\xba\xa1\xfc\ \xb8\x33\x4a\x83\x6c\x91\xbb\x7d\x0a\xee\xac\x18\x0e\xd7\x85\x53\ \x4c\x59\x74\x91\x7a\xc3\x7a\xdd\xec\xbb\xb9\x19\xf1\x80\x13\x7e\ \x38\x86\xe9\x69\x66\x68\x99\xa4\x64\xee\x8e\xa9\x2a\x66\x6b\x54\ \x12\xc3\x57\xde\xd7\xd7\x84\x3c\xc0\xd4\x9d\xb7\x31\x7a\xd4\x8c\ \x48\x99\x81\x3a\xcf\xdb\x00\xc4\x30\x76\xd8\xd4\x18\x2b\xe7\x5b\ \x58\x12\x70\x1f\x2e\x47\xf3\x11\x71\xa5\x12\x67\xee\x00\xd7\xee\ \x03\x69\x8f\x80\xdc\x12\x40\x92\xcd\x28\xd5\x54\x22\x3d\xa7\x04\ \x01\x1b\xec\x1c\x58\x71\x92\x78\xe2\xa1\x98\x48\x76\x37\xea\xe0\ \xc1\xd0\x8a\xc4\x94\x2c\x14\x95\x56\x00\xd0\x65\x6b\xd3\x73\x81\ \xc4\x0c\x95\xb2\x62\xe6\x86\xc9\x0b\xf5\x0e\x3f\x7e\xdb\x2d\xf4\ \x1a\x64\x33\x53\x84\x73\xfc\x73\x25\x62\xf8\xca\xc4\x7a\xee\xf0\ \x4d\x89\x98\xef\x97\x86\x2d\x87\x73\x71\xe0\x62\x39\x4e\x26\x03\ \x97\xd3\x81\x94\x1c\x20\xa7\x08\x28\xaf\x04\x34\x15\x55\xc8\xca\ \x2b\xc3\x01\x27\x87\x7d\xb2\xc3\x15\x8a\xde\xbe\x8a\xc9\xe1\xc3\ \x87\x35\x41\x7b\xf6\x14\xdf\xcb\x2e\x41\x89\x58\x49\x1c\x00\x79\ \x25\xb4\x9e\xce\x8a\x67\x6e\x03\xe1\x62\xd5\x1d\x47\xf2\xb0\x78\ \x77\x3a\x46\x3b\x5e\xc7\x07\x9f\x7e\xdb\x89\x63\x5f\x04\x22\x96\ \xc1\x0e\x09\x98\xe5\x95\x8a\x0d\x87\xb2\x99\x79\x62\xfa\x8d\x39\ \x48\x26\x62\x25\x1b\x4d\xe5\x69\x84\x2a\x55\x9c\x89\x74\x75\x3a\ \x23\x75\x46\xad\x18\x60\x6f\x0d\x9f\x98\x3b\xd3\xf2\x0a\x4b\xb5\ \x73\x37\x86\x97\xdd\xcf\x29\x45\xa9\x98\x8a\xee\x92\x5b\x0c\xa4\ \xe6\x00\x57\xd2\x81\x53\x62\x80\xd0\x4b\xe5\x70\x8e\xca\xc5\x82\ \x5d\x69\x18\x63\x77\x5c\x23\x96\x7f\xfb\x45\x31\x00\xb1\x8c\x5e\ \x1e\x5d\x35\xdd\xfd\x0e\xec\x43\x1f\x62\xcf\xd9\x52\xc4\xdd\x62\ \x82\x55\x97\x65\xce\x2a\x50\xf5\x06\x16\x5d\x54\xe5\xc9\x6b\xef\ \xb1\xbc\xf4\x07\xb9\xd8\x15\x1c\x73\xb2\x86\x94\xa8\x67\xb2\x42\ \x3b\x7f\x63\x74\x69\xe6\xa3\x52\xba\x89\x3c\x08\x3c\x2a\xa6\xfb\ \x28\x37\x52\xee\x14\x22\x6e\xe5\x18\xf9\x08\xf3\x7c\xef\x62\xc4\ \xb2\x90\x1c\x11\xaa\xf7\x02\x19\x40\x6f\xd2\x42\xdf\x32\x1b\xb7\ \x3b\xb0\x3b\x90\x85\x5d\xa7\x4b\x98\x7c\x65\x06\x5a\xa5\xe1\x1f\ \xfc\x8b\x01\x1e\x15\x6a\xe0\x19\x1c\xaf\xa1\x21\xfc\x0e\xc4\x9d\ \xf8\xd5\x00\x0b\x36\x46\x56\x3d\x31\x00\xd7\xcd\x6f\x0d\x10\x7c\ \x41\xa3\x0c\x30\xd7\xe7\x2e\x46\xae\x88\xc8\x17\xa1\xf5\x5e\x20\ \x03\xd4\xb3\x5a\x1c\x58\xce\xe0\xcc\xbc\x22\x0d\x10\xfb\x6f\x06\ \x28\xf9\x57\x03\x04\x9d\x2d\xa7\x01\x7c\x82\x8f\x45\xd1\x00\xb5\ \xf7\x05\x06\x6e\x3e\xb8\xd3\x55\xfb\x67\x3d\xc0\xd2\xfe\x5c\xa5\ \x08\x7d\xe3\x05\x32\xc0\x1b\x83\x57\x9e\xd6\xd2\x00\x7f\xc6\x03\ \xc2\xbd\xdd\xb3\x25\x06\x94\x78\x78\xf9\xac\xa9\x7e\xcb\x0a\x0e\ \x72\x74\xa8\x62\x0c\x28\xfb\x4f\x31\x20\xf9\x49\x0c\x60\xa4\x65\ \xc4\xfd\x6c\xac\x7d\xdb\x17\xc5\x00\x5d\x87\xd9\xb7\x35\xb1\xbb\ \x8c\xea\x18\xb0\xfb\x4c\xc9\x7f\x8d\x01\x41\xae\x5b\x1e\xf0\x20\ \xb4\x7d\xfb\xf6\x41\x8a\x81\xbc\x5c\xdc\xf5\x72\x58\x55\xf6\xef\ \xbb\xc0\xdd\x7f\xd9\x05\x0e\x5d\xae\xc4\xf6\x98\x3c\x2c\x92\x5d\ \x60\x94\xd3\x0d\x18\x4e\x71\x35\x7f\x51\x0c\x60\x69\xf5\xd3\x78\ \xf3\x75\x57\x7f\xdd\x05\xf6\xc5\xff\x7e\x17\x28\x7b\xb2\x0b\x48\ \x3d\xc3\xaf\x58\x5e\x88\xd2\xbd\xbc\xbc\x6a\xd5\x90\x7e\x9e\x97\ \xa5\xcc\xad\xd9\xbc\x62\xd9\x9d\x3b\xf1\xa7\x91\x97\x78\x1e\x95\ \xf7\xae\xa1\xf0\x5e\x12\x1e\xa6\xa5\x21\x25\x39\x15\x57\x2f\xdf\ \xc0\xd9\xb8\x93\x08\x0a\x3a\x82\xad\x6e\x87\xb0\xd4\x3e\x10\x8b\ \x26\x4c\x77\x79\x51\x0c\xf0\xc3\x28\x6b\x9f\x39\x2b\xf6\x62\xdd\ \x96\x50\xec\xf2\x8f\x46\x6c\xd4\x09\x24\x9c\x3e\x8d\xa4\xc4\x1b\ \xc8\x48\x4d\x45\x7e\x46\x1a\x34\x99\x49\x28\x4d\xbd\x82\xb8\xb0\ \x03\x38\x79\xf2\x24\x0f\x41\xfe\x1c\xcb\x46\x87\xc9\x62\x8d\xaa\ \x79\x53\xac\x9d\x98\x34\x48\x9d\xd8\x5e\xa5\x95\x8b\x77\x58\xa2\ \x32\x6c\x01\xb3\x2b\x7c\xbf\x56\x69\xe8\xd2\x79\xba\x24\xc8\x3d\ \xab\xda\x38\x66\xaa\x77\xfd\x45\x31\x40\x48\xbf\xb7\xcf\xde\x1c\ \x5a\x8f\xb8\x88\x8f\x38\x89\x97\xb8\x89\x5f\xe9\x51\xec\x32\x42\ \x8e\xf9\xab\x10\x19\x7e\x08\xfe\xde\xee\xf7\xc5\xfd\xd5\x3b\x0c\ \x5f\x2f\x83\xa5\xc7\x47\x6b\x6e\x6e\xde\xf3\xaa\x55\x7b\x0d\xbb\ \x32\x72\x16\x7e\xc2\xfc\x3a\x2b\xb2\x4c\x32\xb2\x48\xc9\x3a\x1d\ \x4b\x55\x4c\x3c\xa8\x57\xcf\x24\xcb\xba\x38\x6d\xd4\xa0\xc3\xf3\ \x56\x3e\xb6\x6f\xa3\xd6\x17\x07\xd5\xaf\x4c\x16\x3c\xc4\x45\x7c\ \xc4\x49\xbc\xc4\x4d\xfc\xc9\xbb\x97\x22\x6c\xaf\x0f\x22\xc2\x0e\ \x62\x97\xb3\x03\x46\x0d\x1e\xd4\xa3\x7a\x3c\x1b\x9d\xa2\xe4\x44\ \x74\x5f\x22\x69\xe3\xfd\xa6\xed\x92\xef\x8c\x6b\xc7\xfa\x3b\x8b\ \x8e\xac\xcd\xf3\x75\x92\x15\x5a\x95\x64\xa8\x94\x3a\x1d\xf3\x6f\ \x4c\x46\xa6\x8e\x7e\x03\xa7\x4c\xf5\xdc\x9f\xaf\x01\x58\xbb\xd0\ \x0f\x4a\x1c\xfc\x26\xf1\x10\x17\xf1\x11\xa7\xe0\x95\x17\xb7\xc0\ \x95\x88\x3c\xb0\x17\xf2\x96\x87\xb0\x03\xc1\xf0\x5f\x38\x92\x29\ \xfb\x02\xea\x5a\x3d\x9e\x3b\x40\x9c\x2c\x81\x12\xb9\xf9\x9a\xf5\ \x67\xef\x39\xdf\x95\x25\xc0\x96\x14\x96\x9e\x99\x4e\x62\x5a\x89\ \xe5\x69\x55\x98\x5c\x51\x5b\xb9\xd7\x23\x9b\x57\x91\x2e\x09\x91\ \x6b\x43\xeb\x95\xc6\x1b\x37\xa9\xfd\x77\x29\x2b\xff\x5e\x92\xbe\ \xc1\x0f\x25\x78\xb5\xe0\xff\x5f\xea\xaf\xff\xf1\x65\x93\x06\xda\ \xa4\x61\x75\x15\x9e\x1c\x9b\xd7\x70\x6d\x79\x0f\x84\xb9\xd8\x22\ \x60\xb7\x1f\x82\x83\xf6\x23\x78\xff\x5e\x04\xad\x9b\x8f\x13\x53\ \x3f\x46\xca\xe4\x0e\xf0\x30\xef\x14\x46\x5d\xab\x79\xf2\x4d\x70\ \x8f\x78\x40\xc6\xf1\xe3\xc7\x5f\x92\xe4\x86\xe1\x0d\xab\x76\x15\ \xa9\x13\xda\xa9\x06\x84\x22\x67\x0b\x54\x04\xeb\x8a\x90\x08\x9e\ \x08\x6c\xf9\xe0\xd7\x9c\xc0\x03\xeb\xd7\x91\x32\x4a\x79\x81\xff\ \xb3\x56\x7c\xcb\x96\x2d\x75\xa4\x2d\x2e\x4a\xfe\x56\xd8\xd9\xd9\ \x55\x3a\x3b\x3b\x63\xdb\xb6\x6d\x05\x5e\x2e\xdb\x2a\xfc\xd6\x2f\ \x87\x9f\x93\x1d\x5c\x36\xdb\xc3\xc1\xde\x1e\xab\x56\xad\xc2\x36\ \xe7\x2d\xd8\xe5\xe6\x8c\x18\xa7\xd9\x48\x5a\x67\x82\x07\xf6\x46\ \x4a\x9f\xdb\x93\x3b\x56\x0e\xfa\xbc\xeb\x6f\x76\x2f\x06\xc1\xb5\ \x92\x1f\x63\x7a\xe8\x13\xf9\xd7\x3c\xdc\xac\xcd\xfd\x54\x09\x86\ \x6c\x4e\xe2\x32\x60\xa9\x89\xcb\x40\x65\x57\x7c\x06\xb0\x12\x23\ \xa5\xeb\x27\x5e\x90\x3c\xbc\x2e\x2e\x19\x37\x18\xfd\xac\x94\xb7\ \xb5\xb5\x7d\x55\x26\x29\x63\xe5\xca\x95\x55\xa2\xf4\x5d\x31\xc4\ \x0e\xc1\xec\xef\xeb\xb2\xf5\x56\x80\xb7\x07\xf6\x78\xbb\x21\x28\ \x70\x2f\x02\x77\x79\x22\x54\x82\xdc\x29\x87\x21\xc8\xd8\xd4\x1b\ \x79\x5e\xa3\x50\x16\x3a\x97\xf8\xa9\x87\x5a\xd6\x97\xc7\x77\x28\ \xa4\x8e\xff\x6e\x80\xfe\x92\x23\xcb\x67\x76\x44\x5c\xa3\xf6\xf4\ \x2f\x3a\x78\xdf\xb5\x7e\x17\xf7\xbe\x7b\x8f\x95\x56\xdd\x6e\x10\ \x3a\xef\x49\x30\x74\xea\x84\x0a\x29\x55\x17\xce\x64\x2c\x78\x0d\ \x77\x25\x33\x9c\x68\x51\xaf\xec\xaa\x71\xc3\xf7\x9f\x85\x01\x44\ \x61\xb7\x35\x6b\xd6\x60\x9b\xfc\xab\xbe\x77\xc1\xa8\x51\x97\x0b\ \xc6\xfa\xf9\x49\x96\xf5\x91\x36\xbe\x9e\x2a\xbf\xe7\xcf\xa9\x85\ \xb2\x45\xaf\x40\xeb\xd8\xa9\x3a\xf8\x11\x37\xf1\x53\x0f\xa9\x54\ \xbf\x07\xf7\x41\x1d\x63\xa8\xe3\xef\xea\x02\x92\x1d\xd1\xc8\x4e\ \x70\x9d\xef\xd6\xb2\x0c\x4c\x8e\x0d\x69\x9d\x9f\x32\xa1\xbd\x4a\ \x21\x15\xac\x1b\xc8\xfa\xbb\xce\x0b\x22\xe6\xb2\xfa\xc2\x2d\x86\ \x25\x29\x46\x5c\x95\x86\x4a\x95\xa5\x90\x60\x5e\xff\x2e\x7b\xf8\ \x9e\x81\xfb\x67\x6d\xde\xbc\x39\x8b\xd7\xa4\x8b\x06\x0d\x3e\xbf\ \x38\xb0\x41\xd1\x8d\x21\xf5\x28\xb7\x3a\x25\x4e\x3c\xc4\x45\x7c\ \xc4\x49\xbc\xc4\xad\xf0\x3f\x90\xd9\xbf\x31\xfe\xdd\xf2\x1e\x5d\ \xbb\x0e\xa2\x8e\xbf\x33\x80\xa4\x9a\x4f\x48\x96\xf5\x21\x83\xcb\ \x07\x1f\x7c\xd0\xc4\xb2\x67\x47\x4f\x9e\x09\x68\x35\xe5\x05\xdb\ \x87\xb3\xde\xa6\xf3\x82\xd0\xa9\xdc\x11\x98\x78\xac\x5e\x0a\xdc\ \x7e\x24\x1e\xd4\xc1\xd5\xc1\x6f\xde\xbf\x62\xac\xd7\xfd\x69\xae\ \x7d\x49\x7f\x43\x02\xdf\x21\x35\xf3\x06\x8d\x8c\x2e\x0d\x68\x50\ \x46\xe5\x29\x8f\x72\x29\x9f\x38\x88\x87\xb8\x88\xaf\xba\x3e\x48\ \xdc\xb9\xcb\xbe\x50\x55\xe2\x9f\x0d\xde\x0f\xa7\x6e\xff\x2e\xa3\ \x3a\x25\xd6\x9b\xcd\xc8\x7b\xf6\xec\x09\x14\x0b\xd5\x94\xc2\xac\ \x41\xa8\x49\xeb\x07\x29\xe3\x24\x16\xcc\xee\xc2\x4a\x2b\x5b\x51\ \x74\x3d\x40\x87\x7f\x00\xf6\x5b\x31\x20\xca\x76\xc3\x7e\x00\xdd\ \xe1\xe8\xfe\x63\x23\x24\x0e\x79\xb3\xe2\xa2\x71\xfd\xe9\x4f\xc3\ \x00\x12\x97\x7a\x4a\xd0\xab\x90\xae\xf1\x95\xf1\x86\xfa\x23\x13\ \x06\x36\xac\xa8\x56\x9e\xf2\x28\x97\xf2\x89\x83\x78\x88\x8b\xf8\ \x88\x93\x78\x89\x9b\x05\x91\x4b\xa3\xdb\x95\x50\x27\xea\xf6\xff\ \x2d\x8d\xc9\x12\x48\x0a\xdc\x1f\x98\x25\xef\x05\xcd\xf9\x7e\xdd\ \xbf\x5b\xe7\xf5\x49\x63\xda\x68\xb9\x14\x18\x41\x0b\x37\xab\x02\ \xe9\xe3\xa5\x30\x4f\x77\xca\xda\xd4\x9e\xf1\x80\x05\x09\x9d\x27\ \x4c\xac\xa5\xf6\xe3\x5b\x72\x2a\x4b\x18\xd4\x30\xf0\x82\x41\xfd\ \x56\x7f\xb1\x19\x7b\xdc\xc6\x8d\x1b\xe1\x3a\x69\x40\xe6\x35\xd3\ \xfa\x5a\xf2\x25\x7f\xca\xa1\x3c\xca\xa5\x7c\xe2\x20\x1e\xe2\xaa\ \x2e\x8c\x12\xef\xc3\xf9\xdd\x71\x67\xdc\x3b\x98\xdb\xe7\x7d\x1f\ \xea\xf4\x5f\x8b\xa3\x4e\x4e\x4e\x9f\x47\x47\x47\xb1\xf9\xf9\x32\ \xd7\x89\x14\x3a\xbf\xd8\xd6\xbf\x6d\xe2\xed\xb1\x6d\x75\x01\x71\ \xf9\xd7\x74\x29\x9e\x0e\x59\x71\x61\x8f\x8e\xee\x6c\xb0\xbe\x15\ \x41\x70\x26\xd8\xca\xc2\x35\xa9\x72\xf4\xb7\x2d\xe9\x0d\xf5\xb4\ \x97\x4c\xea\x87\x5f\x34\x6a\x30\xb0\xba\x3c\xfd\x67\x89\x81\x2e\ \x78\xc1\xd8\xd8\xf5\xeb\x1c\xb0\x63\xec\x17\xe4\x47\xbe\xe4\x4f\ \x39\x94\x47\xb9\x94\x4f\x1c\xc4\x43\x5c\xc4\xa7\x70\xe6\x48\xd3\ \xd4\x1d\xe9\x21\x8c\xb6\x78\x27\x8b\xba\x50\xa7\x3f\xac\x0e\x4b\ \x0c\x08\x0e\x0a\xda\x5f\xec\xe1\xe1\xbe\x49\x06\xbc\x29\x25\xaf\ \x59\x87\x8c\x5b\xe5\xb0\x54\x96\x61\xd3\x49\x55\x5a\x4b\x76\x8e\ \x46\xe5\x81\x39\x40\xf4\x13\x23\x70\x06\x78\xfa\xe2\x5a\xcc\x97\ \x80\xc4\x32\xd5\xfd\xf1\xca\x1b\xd4\x36\x49\xb7\xbd\x68\xaa\x77\ \x6f\x9c\x8d\xe3\x69\x93\x29\x9e\xab\xdf\x9f\x73\xb2\xff\xfb\xb3\ \x4e\xbe\xd3\xd5\x3a\xfe\x15\x12\xaf\x79\xcf\x78\xb2\xf7\xaa\x31\ \x93\x1d\x4f\xc7\x9b\xe8\x27\xc9\x8c\x23\x76\xb6\x21\xa4\x2b\x1d\ \xde\x13\xbf\x24\x3f\xf2\x25\x7f\xca\xa1\x3c\xca\xad\x56\x9e\x78\ \x88\x4b\xe1\xcb\x5b\xd5\x17\x3c\xd1\x5e\x1c\xf9\x4e\xe9\x67\xdd\ \xbb\xce\xa5\x2e\x7f\xaa\x41\x82\x27\x2d\xf1\x80\x34\x59\x0a\x5a\ \x59\x7f\xbe\xb2\x23\xbc\xdb\xb3\xdb\xc7\x6b\xe2\x87\xb4\x28\x4b\ \x1e\xd5\x1a\x59\xb3\x3e\xe4\xba\x62\xeb\x2a\x5b\xd4\x9e\x54\x8d\ \x02\x2c\x01\xe7\x2e\x0c\x44\x2c\x4d\xf1\x38\xca\x59\xe2\xd1\x94\ \xc0\xd5\x56\x79\x4b\x3a\x3b\xcc\x1c\xae\x62\xc0\x9a\x04\x7c\xbb\ \xe2\x22\xbe\xf9\xe9\x02\xbe\x5e\x76\x4e\x4b\xe2\x75\x5f\xb9\x67\ \xb8\x3a\x01\x83\xd6\x5e\x41\xa2\xa5\x3e\x58\xe8\x38\xb5\xa0\x2f\ \xd6\xda\xd9\x21\x60\x5a\xdf\xea\x46\x29\xf2\xa7\x1c\xca\xa3\x5c\ \xca\x27\x0e\xe2\x21\x2e\xc1\x67\x80\x94\x89\xed\x70\x63\x64\xeb\ \x2a\x93\x4f\xbb\x6c\x94\x72\x7d\xbb\xff\x53\x8b\x8c\xbc\x25\xd5\ \x96\x60\x78\xd3\xd3\xcb\xa3\xd2\xd1\x69\x73\xf9\xac\xd9\xb3\xce\ \x9b\x7d\xd3\xeb\xd0\xb5\x61\x2d\xaa\xd8\xa4\xfc\x60\xa6\x1c\x90\ \xec\x8d\x28\x8c\x91\xf6\x71\x7f\xe0\x7c\x20\x68\x3c\xe0\xde\x9b\ \x8d\x0a\x0c\x4a\x72\x64\x7e\x62\x08\xce\x5c\xfa\x77\x6f\xe2\x7b\ \xcf\x14\x4c\x71\xbd\x8d\x09\xdb\x92\xc0\x3c\xfe\x98\x2d\x37\x15\ \x8d\x75\xbe\xa9\x52\xed\xdf\xb9\x24\xab\xa4\x46\xda\xc4\xfa\xca\ \xd5\x2f\x2d\xfa\x0c\x3f\xfd\xf4\x13\x42\xe6\x1b\x49\xf9\xbb\x26\ \xf9\x92\x3f\xe5\x50\x1e\xe5\x52\x3e\x71\xe8\x94\xff\xd9\x00\xa9\ \x12\xb3\x6e\x8d\x68\x85\xe9\x5f\x75\xdc\x2f\x51\xbf\xdb\x1f\x55\ \xac\xff\x5b\x29\x7a\xba\xaf\xaf\x4f\xe6\x5a\x7b\xbb\x8a\x61\x96\ \x43\x31\x63\xd0\xd7\x9a\xeb\xc3\x5a\xe0\x86\x34\x28\xa7\x73\x39\ \xd8\x19\xb0\x53\x53\xd6\xdc\xf7\x0c\x3c\x2c\x44\xb2\x22\xcb\xae\ \x4e\x36\x35\xb2\xd3\x93\xbd\x7d\xdc\x9f\x75\xf1\x61\x76\x1d\xac\ \x0b\xcb\x56\x85\x95\xe5\x81\x99\x58\x2a\x45\x8c\x1f\xf7\xa4\x93\ \x58\xd0\x60\xbd\x81\xfd\x83\x2a\xa3\x93\xf3\x7d\x5d\x5d\xe7\xc9\ \xb2\x2e\x90\x5d\x00\x11\xcb\xcc\x50\xb9\xbc\x2e\xf9\x92\x3f\xe5\ \x50\x1e\xe5\x52\xbe\xc2\x91\xb3\xbc\x37\x92\x46\xb7\x11\x7c\x2d\ \x61\xff\x6d\xfb\xb3\xb2\xee\xfb\xfe\x99\xb2\xdd\x9f\x39\x89\xbd\ \x2b\x5e\xb1\xcb\xfa\x3b\xeb\xdc\xe9\x66\xdf\x6a\x13\x2c\x5a\x80\ \xfd\x03\xb4\x74\xee\xaa\x3e\x28\xde\x3a\x8c\xed\x69\xaa\x23\x03\ \xd1\xca\x1b\x74\x0d\x4b\xbb\xcc\x80\x1d\x3d\x58\xaf\xd7\x2d\x8d\ \x1f\x6b\x21\xe0\x97\x52\x56\x97\x54\x97\xe8\xce\xd8\x02\x56\x71\ \x14\xb9\xc6\xaa\x6e\x51\x76\x90\xaa\x74\x56\xe9\x0f\xb5\xd5\x3b\ \xc7\xfd\x55\xed\xe1\xe4\xb8\x19\x51\x6b\xad\x50\xe5\x33\x88\x7c\ \xc9\x9f\x72\x28\x8f\x72\x95\xfc\x07\x0b\x7b\xe2\xc6\xf0\xe6\xb8\ \x3e\xac\xb9\x76\x69\x9f\x77\x4f\x8a\xdb\x0f\xe5\x89\xef\xa9\xb6\ \xca\x0a\xc3\xfa\xfd\xfa\xf5\x9b\x3e\x6c\x40\xff\x6b\x27\xa5\x4f\ \xe7\xba\x45\x53\x24\x8d\x6a\x85\xec\xc5\x9f\xa9\xfa\x7b\xa9\x87\ \x15\x23\xf0\x93\x46\x69\x6e\x49\x3c\x94\x70\x9d\x7a\x19\xa0\x6a\ \x47\x2f\xe6\xe9\x98\xad\x55\x7d\xc1\x51\xd7\xaa\x10\x79\x55\x47\ \x87\xe5\x9a\x7d\xc3\x2c\xbf\x31\x99\x59\xb5\xe9\x5d\x35\xdb\x59\ \x9e\x23\x20\x81\x19\x47\x9c\xe7\xa0\xfc\xc0\xf7\xd5\x0d\xd3\x94\ \xa3\xe4\x15\x6c\x30\xc1\x5d\x9b\xce\x10\x2c\xec\x09\xac\x18\xdd\ \xab\x23\xcf\x31\xc3\x88\xf5\x99\x74\x8b\xb3\x0e\x27\x3b\x43\xbf\ \xee\x5d\x3f\xda\x14\x32\xa0\x45\x36\x3f\x65\xb9\x2e\x94\x32\x5e\ \xce\x0a\x2b\x7a\x57\xb7\xca\xab\x37\x48\x2d\xbd\x41\x88\x19\x19\ \x06\x2a\xed\xc1\xef\x55\x92\xf2\x7c\xaa\xae\xd4\x76\xf6\xce\x6f\ \xa9\xba\x63\x9c\x99\x5c\x6d\xb0\xb5\x32\xde\xa3\xd0\x1f\xb1\xdb\ \xdf\x0f\xb1\x6e\x4b\xa0\x91\x3a\x3f\xf9\x92\x7f\xd1\x16\x0b\x64\ \xcc\xe9\x0e\x76\xb1\x11\xc3\x49\xb3\x16\xc5\xbd\x3f\xf9\xd0\x99\ \xd8\x88\xf1\x99\xb6\xcb\x8b\x80\x57\xc5\xc5\x7a\x08\xd9\x3a\x7c\ \xdd\xfa\xea\x25\xf3\xa6\x55\x6c\xa6\xbc\x2a\x40\x52\xad\x3b\xca\ \x56\xd9\x5f\x19\xa2\xd4\x6b\x3c\xca\xf7\x4d\xd7\xa5\xd5\x8e\xd8\ \x42\x7b\x64\x39\x92\xb3\x80\x5b\xd5\xdf\x0a\x64\x00\xd7\x9f\x50\ \xf5\x37\x03\x4c\x63\xcb\x2c\xff\xa4\x82\x5b\x4e\xc4\x6a\x7e\x32\ \x87\x38\x37\x5b\x14\xee\x1c\xa5\xf8\x66\xfe\xf0\x19\x12\xa5\x81\ \x8b\x32\xaf\x98\x37\xd1\xfa\x18\xb6\x4e\xed\x2a\x58\x88\x89\xd8\ \xfe\x96\x0f\x26\x78\xa4\x94\x08\xfb\x9e\x58\x7c\x5a\xcf\xae\x5d\ \xdc\xbd\xfb\xb7\xbc\x77\xd9\xf4\x9f\xda\xcb\x83\xde\xc2\x55\x01\ \x76\x5b\x3c\x22\x73\xc1\xa7\xe2\xa2\xa6\xec\xce\x50\xc7\xd2\xb2\ \x7d\x33\x91\xf5\xaf\x5f\x8b\xe4\x02\xf7\x14\xc9\x35\x29\x8f\xbf\ \xe9\x72\xf8\xe5\x21\xf3\xd4\x69\x2e\xcd\x73\x26\x22\x24\x89\x79\ \x62\xe3\x34\xa4\x4d\xff\x40\x29\x4e\x19\x97\xa5\x43\x2c\x74\x60\ \x8b\xec\xfe\x9f\x7c\xe8\x4b\x0c\xc4\x42\x4c\x7f\xeb\x27\x33\x8f\ \x4f\x8b\x8d\xc4\xf2\x7d\xe4\xbc\xb0\xa0\x4f\xf7\xce\xbb\x43\x0c\ \x9b\x65\x13\x60\x82\x49\x63\x92\x02\x7a\x4b\x1a\x9e\xd3\x67\x77\ \x43\xae\xbd\xb1\xca\xcd\x17\x69\x9e\x7c\x2b\x94\xaf\x88\xd7\x8a\ \x54\x49\xbe\x44\x23\xd7\x8e\x16\x78\xb0\xe4\x4b\x1c\x5f\x31\x01\ \x52\xb8\x45\xec\xf7\xfd\x65\xb6\x75\x7c\x8f\x18\x37\x2d\x1c\xde\ \xf3\xfd\x60\xca\xa4\x6c\x62\x20\x96\xe7\xf0\xe1\xe4\x6f\xbc\xa1\ \xa9\xcc\xc4\x40\x01\x63\x3b\xb0\x7b\xa7\x60\x97\xbe\xad\xd3\x4e\ \x98\xb6\xc0\x25\x93\xb7\xf8\x4d\x91\xa2\x04\xf3\x66\x2c\x4c\xfc\ \xe6\x8b\xb1\xea\x7f\xbc\x26\x55\x7f\x39\xc6\x67\x39\xe6\xe0\xe6\ \x95\x60\xd3\xc6\x59\x8b\x96\x9a\x3d\x86\x2d\xee\x8f\xfc\xb4\x63\ \x38\x65\x50\x16\x65\x52\xf6\x5f\xc5\xff\x54\x1b\x19\x85\x5a\x0b\ \x99\x09\xc0\xd9\xd2\xbf\xe3\x3a\xc2\xc2\x3c\xcf\x71\xf0\xa7\x88\ \x36\x6e\x59\x79\xde\xac\x79\x55\x4e\x6e\x11\xf2\x8a\x1e\x7f\x2f\ \x58\x5a\x81\xa2\x27\xc4\xef\x07\x75\xdf\x0e\x16\x94\xe1\x82\x79\ \xf3\xaa\x83\xd6\xdf\x6a\xa2\xa2\x0e\xc3\xd3\xdd\x2d\x4f\x66\xda\ \x81\x3c\xc9\x9b\x32\x28\xeb\xf9\x7e\x3a\xfb\xc7\x86\xd0\x97\x99\ \xfa\x40\x8c\x60\x6e\x6d\x6d\x7d\x6e\xd2\xa4\x49\x45\x42\x55\x43\ \x87\x0e\xcd\x1e\x6d\x39\x3c\x75\xe9\xc4\x11\x29\x9b\x57\xda\xe7\ \x3a\xba\x86\x6a\x1c\xdd\xc2\x35\x5b\xd6\x6f\xcb\xb5\x9b\x63\x73\ \x73\xde\x8c\x69\xf1\xf3\xe6\xcf\x3f\x2f\x87\xb0\x6c\xf9\x3a\xb4\ \x54\x52\x75\x9a\x3e\x7d\xfa\x0c\x27\x2f\xf2\x7c\x16\x1d\xa8\xcf\ \xba\x68\x59\x53\xa8\x81\x8d\x8d\x8d\xa9\xb4\xb4\x1d\x95\x63\x6d\ \x16\x5f\x6e\x98\xb8\x0c\x8b\x88\x42\xae\x78\x03\x29\xf1\x66\x32\ \x1b\x18\x8b\x1f\x7f\x30\x5d\x2a\x5f\x85\x56\x49\x9a\x2e\x41\x0c\ \xd6\x82\x3c\x9e\x25\x46\xfe\xe7\x6f\xa5\xe5\xcb\x97\xff\x53\xd2\ \x7b\xc3\xb6\x7b\x07\xad\xde\xb1\xe7\x88\xf7\xce\x7d\xb1\xfe\x2e\ \xbe\xc1\xeb\xe5\xde\x2c\x49\x7c\x4c\xe2\xa7\xf2\xac\xd9\xfd\x5d\ \x78\xfe\x1f\x54\xc7\x67\x32\x0b\x29\x7c\xe5\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x13\x17\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x12\x94\x49\x44\ \x41\x54\x78\xda\xed\x9b\x09\x90\x5c\x47\x79\xc7\xff\xdd\xef\x9a\ \x73\x67\xf6\xd2\xae\x56\xbb\xba\xbd\xb2\x84\x0e\x0b\x1b\x51\xb2\ \x1d\x0a\x6c\x8e\x40\x9c\x40\x48\x0a\xca\x54\x80\x70\xe4\xa8\x8a\ \x53\x60\x08\x15\x8a\x22\x45\x48\x02\x14\x47\x01\x45\x05\x63\x28\ \x53\xa9\xd8\xd8\xb1\x62\x82\x6d\x8e\x02\x0c\x54\x30\x92\x15\x09\ \xc9\x96\xac\xd3\xd2\xae\x76\x25\x4b\x7b\x68\xaf\x99\xdd\xd9\x9d\ \x79\xf3\x8e\xee\x7c\xaf\x5f\xc7\x33\x7b\x69\x25\xb0\x1c\x57\xa1\ \x4f\xfa\xeb\xeb\xd7\x3b\xf5\x66\x7e\xff\xef\xeb\x7e\x6f\x34\xb3\ \x4c\x4a\x89\xdf\xe5\xe0\xa4\x6b\x06\x5c\x33\xe0\x9a\x01\xd7\x0c\ \xb8\x66\xc0\x35\x03\x5e\xfa\x60\x51\xe0\xff\x39\xae\xca\x7d\x00\ \xbb\xee\x73\xad\x46\xd2\x79\x95\x44\x78\x13\x24\xef\x92\x12\x79\ \xce\xd1\x68\x9a\x46\x63\xd2\x36\x9a\x52\x09\x33\xcf\x18\xcf\x80\ \x49\x37\x0c\x51\x0c\x05\x0a\xbe\x2f\x0a\x55\x5f\x4c\x54\xaa\xfe\ \xf8\xb6\x75\xa9\x83\x87\x1f\xff\xab\x7b\xf1\x12\x84\xf9\xdb\x97\ \x11\x0c\xaf\xf8\xda\x2d\x8d\x59\xeb\x35\x89\x84\xb5\xa3\x54\x0e\ \xb6\xb7\x2c\x6f\x59\x99\x72\x2c\xa4\x93\x26\x32\x29\x0b\xd9\xb4\ \x85\x5c\xc6\x42\xc2\x31\x60\x5b\x06\x4c\x83\xc3\x88\xc4\x59\x86\ \x31\x64\x00\x74\x0a\x01\xb8\x5e\x88\x3d\x87\xc6\x83\xa1\xbe\x5f\ \x5a\x00\x5e\xde\x06\xb0\x1b\xee\x5d\xd1\xdd\x95\xff\x9b\xed\xef\ \xb0\xdf\xdd\x37\x90\xeb\x5c\xd7\xd5\x00\xce\x01\xc7\xe6\x24\x03\ \x09\x3b\x86\xa5\x63\x3d\xa6\xf9\x48\xb6\xa9\xc6\x96\xc9\x94\x11\ \x8c\x01\xa1\x00\xaa\x04\xbf\xef\xe8\x04\x5a\xf3\xe1\x91\xde\xfd\ \x67\x72\xa0\x78\xd9\x19\xc0\x5e\xf7\x4b\x33\x17\x0e\xbf\x6d\xd3\ \x9a\xdc\x5d\xc9\x64\xc3\xad\x4d\x8d\x0d\x46\xa1\x54\xc5\xaa\x8e\ \x26\x30\x82\xb1\x6d\x05\x1c\x03\x92\x6c\xc7\xd0\x63\x03\x96\x1d\ \xcf\x99\x26\x87\x11\xc9\x60\xaa\x7d\x04\x24\x02\x21\x31\xed\x4a\ \x4c\x56\x8c\xca\xc9\xbd\x8f\x77\x02\x38\xff\xb2\x33\xc0\xda\xf9\ \xdd\xd7\x6e\x5f\x9b\xbf\x2f\x9f\x6d\x5f\x37\x34\x56\x41\x7b\x6b\ \x0e\xe3\xd3\x8c\x40\x12\x90\xdc\x80\x50\x30\x1c\x81\x34\xc0\x25\ \x03\x17\x1c\x2c\xe0\x90\xe0\x08\x49\xbe\x60\x70\x7d\xc0\xe0\x91\ \x24\xb1\x4b\x48\x09\x25\x3f\x94\x38\xda\x57\x46\x02\x13\xc7\x67\ \x4a\x85\x9b\x40\xf1\xb2\x31\x80\xdd\xf2\xe8\xb2\x5c\x22\xf9\xd5\ \x1b\x36\xb4\xdd\x79\x71\xc2\xc5\xc8\xa4\x4f\x00\x16\x38\x67\x08\ \x25\x00\x82\x05\xc1\x8a\x00\x04\xca\xe0\x4b\x0e\x2f\x8c\x2a\xcd\ \x60\xfa\x24\x83\xc5\xd0\x06\xc0\x19\x03\xe7\x50\xf0\x00\x53\xf0\ \x42\x4a\x94\x5d\x81\x54\x32\x39\xf5\xd4\x4f\x1f\xee\x06\x38\xc0\ \xf8\xcb\xc3\x00\x76\xf3\xcf\xb7\xb4\xe6\x1a\x7f\xd1\x90\xb6\x5a\ \xcf\x0c\xfa\x04\x61\x13\x0c\x83\x90\x04\x24\x19\x01\xc5\xe3\x80\ \x80\x0d\xca\xbe\xe0\xe0\x3e\x08\x32\x12\x81\x2b\x78\x46\xc0\x0c\ \x94\x94\x50\x77\xe5\x13\x92\x91\x00\xd7\xe3\xc8\x89\x9e\xd3\x9e\ \x57\xbd\x09\x64\x2e\x98\x81\x28\x3e\x73\xf3\xcd\x2b\x66\x86\x87\ \x1f\x19\xef\xef\x3f\x2c\x81\x43\x9c\x64\x03\x47\xbf\x26\x65\xf5\ \x6a\x1b\x40\xf0\xbb\x77\x80\x27\x7e\x5c\xaa\xf2\xa6\x42\x59\x2a\ \x78\x53\x30\xbd\x7b\x03\x66\x54\x51\xc9\x09\x54\x57\x56\x12\xa8\ \x40\x04\x4b\x42\x2c\x30\x5d\xcc\xd8\x84\xfa\x90\x32\x9e\xf7\x42\ \x89\xed\xeb\xec\xb1\x1f\xdd\xbf\x6b\x73\x0d\x9e\x44\x91\xe4\xfc\ \xb3\x76\x5b\xdb\xce\xd6\x15\x2b\x76\x7a\xd3\xd3\x70\x4b\x25\xb8\ \x53\x53\xc1\x47\xd3\xe9\x43\x7e\xb9\xfc\x98\x00\x1e\xff\x57\x29\ \x8f\xbf\xe8\xf7\x01\xec\xf7\x7e\xdd\x0d\x66\x1c\x04\x43\xb6\x6e\ \x76\x56\xd6\x70\xaa\xc2\xbc\x2e\x73\x65\x80\x56\xfc\x40\x95\x05\ \xe2\x6a\x0b\x11\x29\x5a\x3e\x92\xb2\x44\xf7\x0a\x0b\xd6\xe4\xbe\ \x83\x87\xf7\x7e\xef\x26\x05\xcf\x38\x28\x3f\xfe\x8d\x2d\x85\x4f\ \xd2\x39\x0e\xe5\x57\xad\x32\x79\xf4\xd8\x30\x44\xe8\x79\x4a\x81\ \xeb\x62\x66\x6c\x0c\xa5\xc1\xc1\x28\x9f\x71\xa7\xa7\xff\x0b\xc0\ \x3d\x5f\x92\xf2\xdc\x8b\x63\xc0\xeb\x8e\xff\x84\xd2\x9b\x66\x41\ \xb3\x7a\x23\x2e\x31\x66\x97\xff\x73\xc7\x62\xf8\xe3\x9d\x7c\xf0\ \xe1\x7b\x3e\xd2\x4e\xe0\xfc\x05\x03\x38\x7f\xfc\xdf\xb6\x15\x13\ \xcb\xb7\x6d\x7b\x53\xaa\xa5\x05\x22\x82\xae\x54\x40\x55\x87\x4f\ \x39\xa0\xac\x8f\x95\xca\x64\xc6\xe4\xb9\x73\x81\x5b\x2c\x3e\xc4\ \x84\xf8\xfc\xa7\xa4\x3c\xf1\x1b\x2f\x01\x76\x5b\xff\x1f\xc1\x48\ \x12\xfc\xd5\x8f\x1d\x1b\x4c\x3c\xf3\x3f\x3f\xba\x08\x6e\x76\x28\ \x78\x70\x44\x79\x67\x93\x68\xc9\xe7\x72\x37\x37\xe4\xf3\x90\x42\ \xc0\x64\xd1\xd2\x33\x60\x58\x16\xcc\xa8\x13\x48\xc1\xff\x49\x08\ \x38\x4d\x4d\x68\x48\x26\x4d\x32\xe0\x3d\x33\x83\x83\xef\xfe\x22\ \x63\x0f\x13\xd8\x5d\x77\x4b\x39\x71\xe5\xef\x05\x0c\xf1\xa7\x58\ \x34\xd8\x8b\xa6\xe6\x2c\xc7\xca\xe6\xa0\xff\xf4\xb3\x4f\x6e\x07\ \xb3\x00\x66\x02\xdc\x52\x7a\xdf\x3a\xb9\xb9\xa1\xa9\x89\x85\x13\ \x13\xf0\x49\xa2\x50\x00\x68\xfd\x73\xaa\xb6\xe9\xba\x30\x7d\x1f\ \x16\xc1\xdb\x11\xbc\x94\x48\x02\x48\x32\x86\x6c\x22\x81\xd6\xe5\ \xcb\xd9\xb2\xf6\xf6\x3b\x93\x86\x71\xf4\x9b\x8c\xbd\xe1\xca\x37\ \x41\xc9\x6e\x04\xd8\x6f\x7c\x5f\x7c\x39\x61\x19\xc0\x6b\xb6\x5a\ \x78\xf2\x89\x07\xcb\x0a\xba\xb6\xf6\xf1\x86\x65\x21\xd6\x58\x7e\ \xce\xa0\x16\x97\xd1\x9a\x8f\xaa\x0f\xa8\x4e\x00\x41\xb3\x20\x00\ \x27\x03\x98\xe7\x29\xf1\x6a\x15\x06\x1d\x0b\x9a\xd7\xdd\x01\xdb\ \xb6\x91\x68\x6c\xec\x08\x8a\xc5\x9f\xde\xcf\xd8\xa7\xde\x23\xe5\ \x3f\x5f\xbe\x01\x8c\xad\xfc\x4d\x0d\x58\x1a\x9c\x61\xeb\x5a\x13\ \x5b\x56\xb3\x99\x91\xe1\xa1\xc3\x17\xce\x9e\xb8\x45\x19\xa0\x5b\ \x9f\x73\x13\x7f\x7d\xbd\x07\xa3\x58\x06\xfc\xf8\x7a\x2a\xb4\xa9\ \x4c\xc6\x3b\x28\xd3\x26\x48\x12\x27\x03\x84\xef\xc7\x46\x91\x11\ \x26\x29\xa4\xb1\x3a\x8e\x1e\x63\x59\x8c\x8c\xf9\xa7\xef\x31\x56\ \x7a\xbb\x94\x5f\xbd\x3c\x03\x44\x70\x0e\xdc\x7e\x05\x5e\xc4\xb0\ \x4d\x46\xd0\x1c\x5b\xd7\x18\xd3\xbd\xfd\x43\xa7\x1f\x7c\xf8\x99\ \x0d\x5d\xcb\xcc\x3c\xd8\xec\xea\xbf\x77\x8d\x40\xdb\xf8\x05\x84\ \x53\x53\xe0\xa6\xa9\x3a\x4a\x72\x0e\xae\xaf\x9b\x4a\x64\x80\xd4\ \x42\x5c\x79\x95\x8d\xc8\x0c\xea\x1a\x83\x96\x89\x88\x96\x09\x1d\ \x2b\xc3\xa0\xe2\xcb\x4f\x30\x36\xf4\x46\x29\x77\x2d\x6d\x40\x50\ \x2c\xc1\x5e\xb6\x64\x7b\x2f\x1d\x8c\xc0\x11\x41\x63\xcb\x2a\x3e\ \xdd\x7b\x6e\xe8\xf4\x77\x76\x1d\xda\xe0\x07\xc1\x2b\x09\x96\xc0\ \x1c\xa9\xaa\xaf\xe1\x13\x06\xc7\x07\xbb\x09\xec\xbf\xcf\xa8\x0d\ \x8f\x93\xf4\x6d\x23\x0c\xe8\xd0\x5d\x00\x82\xa6\x2a\x2b\x50\x10\ \xb0\xa4\xca\xf3\x48\x35\xe0\xb9\x99\x31\x32\xe1\xc7\x8c\x3d\xf6\ \x66\x29\xab\x97\x36\xa0\x74\xba\x19\x2d\xed\x1e\x00\x1b\x60\x57\ \x04\xac\x93\x06\xe7\xd8\xb2\x92\x4f\xf7\xf4\x0f\x9f\x7e\xe0\x3f\ \x0f\x5d\x1f\x04\x82\xc0\x39\xc0\x13\x0a\x3a\x84\x49\x39\x92\xa1\ \xf4\xf1\x2d\x0c\x89\xa7\x7e\x0e\xb7\xb7\x17\x1a\x5c\xc9\x27\x31\ \xe8\x3d\x40\x8b\x49\xa9\xe6\x8c\x39\x5b\x33\xe6\x1f\xd7\xe7\x8e\ \x0c\xf0\x01\x00\xf7\x2c\xb1\x04\xaa\xd7\xc1\x1b\xdd\x03\xa7\xfd\ \xd6\xcb\x02\x06\x66\x5d\xd7\xb7\xae\x66\xd8\xbc\x8a\x97\x7a\xce\ \x0e\xf5\x3c\xf0\xc8\xb3\x1a\xdc\xc0\xac\xcd\x0e\x1c\x42\x9a\x1c\ \x7a\xae\x25\x61\xe0\x5d\x6b\x25\xa6\x1f\x3d\x86\x14\x50\xdf\xba\ \x98\x21\x25\xe7\xc1\xe8\xbc\x18\xf0\xe2\xa6\xdc\xb9\xb4\x01\xdc\ \x01\x26\x8f\xec\x40\xeb\xb2\x13\xe0\xe6\xa6\xc5\x80\xe7\x83\x43\ \x81\x9f\xee\x1b\xea\x7d\xe0\x91\xe3\x04\x1e\x12\xb8\xa9\xab\xa9\ \x85\xda\x58\xc8\xd0\x89\x0d\xb0\xf0\xc5\x9d\x16\xda\xb6\xad\x41\ \xc3\xfb\xdf\x8f\xd2\xc3\x0f\x43\x96\xcb\x2f\x00\x0c\x91\x12\xaa\ \xda\x2f\x4a\xb4\x2e\xbd\x07\x18\x0e\x10\xc2\xc6\xe8\x2f\x96\x37\ \xaf\x7d\xe3\xb1\xf1\x19\x73\xf3\xa2\xe0\x36\x03\xbd\x6e\x6c\xea\ \x44\xe9\x54\xdf\x85\xfe\x07\x1e\x39\xd5\x1d\x04\x72\xbb\xaa\xb4\ \x41\x70\x52\x90\x02\x40\x90\x64\x08\x1a\xe8\xb9\x10\xfe\xd4\x64\ \x13\xfd\xa3\x9e\x6f\xef\xd3\xfd\xe8\x5a\xd5\x80\x1d\x7f\x70\x07\ \x52\x3b\x77\x62\xea\xbe\xfb\x50\xdd\xbf\x1f\x13\x00\xce\x92\x9e\ \x27\xa5\x49\x59\x52\x86\x94\xd7\x62\xb8\xb2\x28\x02\x4d\x4b\xde\ \x0a\xb3\x57\xff\x40\x22\xac\x02\xc2\x85\x69\x04\x6e\xd0\x78\xfb\ \xb3\xe9\x74\xea\xd5\x33\x6e\x7d\xc5\x63\xf0\x8d\x2b\xc2\xe9\x53\ \xbd\xe7\xcf\x1f\x38\x7c\x66\x5d\x18\x4a\x1b\xc2\x05\x44\x05\x08\ \x23\xcd\x90\xaa\x75\x9b\x27\xd3\xe3\x58\x2d\xe9\x69\x77\xec\xe2\ \x40\x22\x32\xeb\x6d\x23\xbf\x42\x8b\x37\x81\xfc\x96\x1b\x70\xc7\ \xbb\xfe\x04\x37\x6d\x5e\x0b\xef\xa9\xa7\xf0\xab\x6f\x7e\x13\x63\ \x85\xc2\x82\x3d\x68\xe9\x72\xb6\x20\xa6\xe2\x58\x3a\xf6\x00\x07\ \xfe\x4c\xca\x1d\x97\x36\x60\xe7\x13\x52\x1b\xa0\x55\x95\xd7\x6f\ \xe8\xde\x5f\x4d\xbe\x62\xcd\xc5\x49\xde\x76\x03\x81\x5f\x4f\xe0\ \x27\x4e\xf6\x0f\x1d\x38\xd2\xbf\x3a\xac\x4e\x5a\x08\x26\xe3\xc7\ \x4a\xe8\x16\x67\x7a\x5c\x03\x9e\x3b\xd7\xe8\x14\xbd\xc2\xf8\x45\ \x3b\x32\xe0\x9d\xc3\x3f\xc7\xb2\xea\x18\x04\x24\x42\x00\xcb\xb6\ \x6e\x9c\x7c\xd3\x7b\xdf\x69\x74\xac\xec\xcc\x9c\xfe\xd6\xb7\x30\ \xf8\xb3\x9f\x5d\x72\x21\x9a\xa4\x0e\x52\x27\xc9\xc6\xe2\xf1\x61\ \xe0\x17\x8f\x4a\xf9\xfa\x4b\x1b\x70\xcb\x93\x92\xa0\x81\x50\xc1\ \x93\x5c\x35\xb6\x2d\x39\xfd\xd6\xdf\xbf\x75\x60\xa4\x50\xb6\xf6\ \x1c\xe8\x59\x19\x56\xa7\x4c\x04\xa5\x79\xd5\xd5\x9a\x33\x37\xdf\ \x8c\x9c\x39\xea\x4f\x16\xc7\x2d\xc0\xc4\xbb\x07\x7f\x88\x76\x77\ \x34\x32\x80\x04\x84\x94\x07\x10\xa0\x65\xf3\x86\xe0\xad\xef\x7d\ \x17\xeb\x12\x81\xf1\xdc\x57\xbe\x82\xca\xf0\xf0\xa2\x46\x30\xad\ \x36\xd2\x4a\x52\x02\xb3\x63\x0c\x28\xbe\x03\x48\xf6\x48\x99\x58\ \x7a\x13\xd4\xd7\x5c\x3d\x50\xf2\xfc\x6a\x66\x7a\xf8\x40\xe7\xa9\ \x3e\x99\x0e\x2b\x25\xfd\xae\x2d\x15\x83\x31\x00\xb2\x76\xe9\x8a\ \x83\x2f\x0c\xaf\x0d\x90\xbc\x04\xf0\x34\xc9\x80\x03\x13\x49\x30\ \x08\x25\xa0\x80\x10\x06\x8d\x27\x8e\x9d\x36\xbf\xfd\xb1\x7f\x44\ \xdb\x96\xeb\xc3\xb7\xfc\xed\x87\xd0\xd9\x73\x8a\x0f\x3e\xf6\x18\ \xf3\x8a\xc5\x05\x4d\xd0\xa0\x28\x90\x56\xeb\xae\xd0\x11\x7c\x16\ \xd6\xd3\x19\x88\xdb\x97\xde\x04\x79\xa2\x0e\x5c\x67\xe1\x83\xaa\ \x4d\x29\x6d\x05\x22\x0d\x98\x99\x39\x40\x57\x38\x86\x80\x80\x0d\ \x98\x91\x81\x26\x1c\x52\x02\x5c\xc1\x07\x91\xd9\x90\xda\x10\x28\ \x15\x8e\x3e\x67\x7c\xe7\xe8\x67\xb1\x6c\xcb\xc6\xf0\xcd\x1f\xff\ \x04\xd6\x8f\x8f\xf2\x81\x5d\xbb\x58\xe5\xf9\xe7\xb1\x58\x5c\x20\ \x4d\x93\xd6\x91\xee\x45\x62\x5f\x05\xec\xf6\x2c\x02\xa8\x58\xba\ \x03\x64\x9d\x77\x53\xf1\x86\xc6\xcd\xa8\x2e\x3c\x60\x29\xc0\x08\ \xe7\x54\x96\xcf\x69\x77\x3e\x07\x5c\x46\x7f\xe3\xac\x25\x85\x23\ \xe3\x67\x8f\x0d\x48\x6a\x03\x26\x10\xc0\xa2\xb1\xa1\x97\x83\x54\ \x99\x45\x59\x19\xf1\xe0\xc7\xff\x05\xad\x5b\x37\x85\x7f\xf8\xd1\ \x8f\x61\xbd\x5f\x35\x86\x1e\x7a\x08\x93\xcf\x3c\xb3\xe0\x5d\x4a\ \x25\x99\xc4\xe7\x2b\x62\xcc\x83\x7d\x6b\x16\x21\x04\x0c\x30\x0a\ \x49\x71\xe9\xcb\x20\xa4\x92\x82\x07\xa3\xb9\x14\x25\x03\x92\xd9\ \x2c\x40\x64\x80\xa8\x01\xab\xcc\x6b\x63\x15\x6c\x76\x07\x49\x12\ \xc3\xac\x39\x21\x38\x60\x64\xd5\x79\x2d\xdb\x81\xe3\x5b\xf0\x45\ \x08\x57\x32\x24\x04\x87\x50\xc8\x40\xa8\xb3\xa8\xcb\x53\x47\x4e\ \x1a\xf7\x7f\xe8\x93\x68\xdd\xb6\x29\xbc\xe3\x2f\x3e\x88\xed\x77\ \x67\x8d\xe1\x07\x1f\xc4\x38\x6d\x96\x32\x0c\xc1\x1d\x07\xc3\x9e\ \x1f\xec\x66\x59\x0f\xa8\xb6\x78\x90\x48\x13\x7c\x58\x63\xf6\x17\ \x34\x80\xcc\x31\x70\xfb\x19\x7d\x2f\x50\x06\x98\x45\xe3\x34\x65\ \x53\x49\x70\x2e\x95\x01\x26\x16\x00\x17\x80\x9c\x05\x59\x4b\xac\ \x56\x79\xc6\x38\x72\x59\x07\xd9\x95\x67\xf9\xf9\x0d\x5f\x07\xeb\ \xdf\x86\x7c\x49\x56\x93\x70\x9c\x29\xcf\x85\x15\x98\x30\x24\xc1\ \x4a\x42\x15\x0a\x5a\x65\x01\xd2\x1c\x23\x4a\xcf\x9e\x34\x1e\xbc\ \xeb\x13\x68\xde\xba\x51\xdc\x71\xd7\x07\xe4\x8d\x77\xdf\x6d\x0c\ \xef\xda\x85\x27\x4f\xf5\x54\x2f\x1c\xeb\xb7\x5a\xdc\x20\x55\x81\ \xa1\x1e\x1d\x92\x32\xe0\xa0\x48\x13\xe7\xa4\xee\x02\x98\x35\x78\ \x45\x91\x56\x40\x32\x88\x97\x82\x29\x55\xeb\x23\x24\x89\xa8\x03\ \x04\x42\x9e\xa5\xf9\xd9\xa0\xb5\x2a\x2f\x54\xf9\x48\xea\xfc\xc8\ \x65\x6c\x34\xae\x1d\x01\x5f\xbf\x07\xd5\x65\x07\x4d\x24\x0e\x81\ \x75\x1f\xc2\x0f\x6e\x58\x66\xbd\x7e\x4f\x13\xf2\xbb\x4d\x64\xc6\ \x5d\x50\xf1\x20\x94\x01\x80\x50\x26\x48\x1a\xeb\x63\xc8\x59\x86\ \x48\x52\xe9\xc8\x29\xfe\xd0\x5f\x7e\x0c\x4d\x64\x84\x63\x04\x41\ \x43\x71\xc6\x69\x4a\x25\x51\x81\x1b\xbf\x06\xcf\xc7\x34\x24\x9c\ \xb8\x0d\x9b\xf5\x1d\xb6\x3f\xcb\x00\x3d\xce\x93\x74\xdb\xdb\xba\ \xf2\x5a\x64\x82\x60\x2e\x42\xe9\x00\x5c\x43\x83\xcd\x06\x55\xa1\ \x8d\x90\x52\x57\x1c\x04\x6e\x21\xb7\x7a\x08\x7c\xdd\x41\x84\xd9\ \x01\x54\x05\xe0\xf9\x02\xb0\xa0\xe4\xa6\x05\xdf\x73\x7b\x09\x89\ \x9d\x1c\x1b\xf7\x25\xb0\x72\x77\x0a\x95\x02\x19\x11\x90\x11\x61\ \x0c\x2c\xd5\xb2\xd1\x63\x49\x63\x59\x1b\xab\x63\x30\x4c\x93\x11\ \x99\xee\xe5\x3c\x99\xb4\x11\xb7\x89\x54\x99\x51\x96\x41\x6c\x9e\ \xbe\x77\x1a\x5e\xcc\x80\x56\x30\x56\x9b\x36\x74\x07\x08\x65\x82\ \x5a\x8f\x82\xd9\xb3\x61\xa3\x21\xc7\xbc\xca\x33\x03\x68\x48\xdb\ \xc8\xad\x3a\x0f\xb6\x66\x5f\x0c\x1e\x02\x41\x55\xc2\x0f\x24\x08\ \x0d\x70\x30\x2b\xdc\x94\xc0\xa1\xdb\xca\x38\x41\x46\x6c\xde\x97\ \xc4\xaa\xbd\x69\xb8\x13\x51\x47\xf8\x11\xac\x86\x86\xee\x0e\x0d\ \xae\x40\xc5\x0b\x86\x24\x6c\x0b\x29\xc7\x89\xc1\x69\x0e\x42\xab\ \x2c\xe1\x89\x10\x14\x0d\x24\x63\xa1\x3d\xc0\x8a\x3b\x80\xe9\xc2\ \xc6\x15\x56\x24\x3c\xa1\xc6\x7e\xe0\xaa\xe3\xf9\xff\x3f\x20\xeb\ \x8a\xcf\x90\x4d\x73\x34\x74\x9d\x05\x5b\xbd\x17\x41\x7a\x00\x41\ \x08\xf8\x33\x92\x32\xc1\x87\x42\x19\x20\x24\x4d\x5a\x50\x26\x94\ \x11\x20\x2b\x6c\xf2\x3b\x3e\x67\xd5\x16\x78\xfa\x35\x33\x38\xf6\ \x2a\x8e\x2d\x4f\xa7\xb1\x66\x6f\x12\xd5\x42\x15\xbe\x1f\x10\xeb\ \xec\xea\x0b\x95\xd5\xf2\x50\xc7\x8e\x63\x43\x75\x80\x36\xa0\x5e\ \x46\xd9\x13\x90\xea\x59\xf9\x3c\x03\xf4\x24\x91\x4a\x2c\x6c\x82\ \x03\x2f\xe4\x34\x5e\xf8\x1e\x4c\x81\x67\x4c\x64\x57\xf4\x01\x5d\ \x7b\x10\xa4\x06\xe2\x4a\x97\x22\x68\x0d\x1f\xc4\x2f\x16\x20\xd9\ \x5e\x44\x0e\x91\x92\xe8\x61\x45\x8c\x99\x2e\x3a\xbd\x0c\x72\x01\ \x19\xa1\xcf\x5b\x35\x05\x0e\xee\x28\xe1\xe8\x36\x86\xad\x87\x33\ \x58\xbf\x3f\x09\xaf\x58\x55\x7b\x84\xea\x88\x08\x1a\x22\x36\x41\ \x2b\x99\xa0\x0e\x48\x38\x60\x02\x1a\x5c\x73\x48\x60\x4a\x88\x49\ \x54\x10\x00\x10\x8b\x5d\x06\x05\xaa\x43\x13\x70\x3a\x9a\x74\x95\ \x67\x99\xe0\x4b\x4b\x8d\xeb\x42\x81\x67\x52\x26\x32\x1d\x04\xde\ \xb1\x07\x5e\x62\x20\x86\x9d\x22\x68\x55\x6d\x20\x14\x42\x9f\x27\ \x04\x8c\x0a\xd0\x78\x02\xc8\x9f\x04\x26\x24\xe0\xc6\x97\xba\x71\ \x54\x50\x60\x2e\x1a\x99\x85\xce\x4a\x0a\x39\xdf\xaa\x75\x04\xe9\ \xc0\xa6\x2a\x8e\xac\x63\xb8\xe1\x78\x16\xdd\x87\x93\x74\xfe\x80\ \x0a\x22\x5e\xe8\x08\xa8\xac\x0d\x48\x39\x0a\xbc\x26\xa9\x0c\xa9\ \x7a\xee\x79\x00\x25\x52\x30\xcf\x00\x3d\x39\x8d\x99\x33\xe7\x90\ \x58\xd1\x04\x39\x77\x43\x03\xc1\xf0\x1a\x38\xe7\x0a\x3c\xdd\x76\ \x06\xb2\x8d\xc0\x9d\x0b\xb5\x8a\x07\x71\xd5\x75\x5f\xc6\x86\x1b\ \x33\x31\x74\xc3\x73\x00\xf7\x01\x3f\x2a\x09\x00\x7d\x53\x29\x01\ \x6d\x84\x87\x82\xe5\xa3\x51\x18\xe8\x9a\xb6\x91\xf3\x0c\x70\x05\ \xc1\xe0\x01\xd8\xbf\xb6\x8c\xc3\x5d\x1c\xdb\x4f\xe5\xb0\xf1\x64\ \x06\x7e\x19\xf0\x24\xf4\x72\x10\x64\x80\x8d\x54\x52\x1b\x80\xb8\ \xf5\xa1\x3b\x61\x64\x26\x3c\x00\x60\x6c\xc1\xfb\x00\x3d\x39\x81\ \xe9\x13\xc7\xd0\xfc\xda\xed\xca\xb2\x59\x26\x00\x55\x5f\x2a\xf0\ \x74\x92\x5c\x5e\xd6\x0b\xd9\xb2\x1b\xae\x15\x55\x5c\xe8\x8a\x4b\ \x84\x24\x40\xc1\x6b\xf0\x32\x41\x9f\x20\x9d\xaa\x81\x57\x01\x4c\ \x92\x5c\x52\x1f\xa9\x61\x21\x23\x02\x14\xd2\x01\x1a\x39\x47\xd7\ \x24\x43\xde\xd5\x9f\x3d\x02\xb1\x11\x5d\x33\x38\xdc\x4e\x46\xf4\ \xe5\xb0\xb9\xa7\x11\xbe\xb4\xc9\x08\x03\xb6\x41\x45\x89\x0c\x00\ \xf4\x12\x60\x0a\x7e\xc8\x75\xcf\xee\x2a\x5e\xfc\x0f\xc5\x08\x04\ \x8b\x19\x30\x8a\xb3\xf7\x7d\x1f\xed\x6f\x7f\x0b\x9c\xf6\xe6\xb9\ \x26\xf8\x21\x60\x27\x27\xd1\x7c\xdd\x5e\x54\x93\xbd\x98\xae\x96\ \x51\x75\x43\x9a\xd7\x55\x96\x75\xe0\x5c\x83\x67\x4e\xd7\xc0\x3d\ \xdd\x80\x2e\x6a\x11\xea\x9a\x14\xb4\x09\xa9\x7a\x23\x80\x71\x43\ \xa0\x90\x07\xf2\x15\xa0\xb3\x08\xe4\x5c\xc4\x4b\x43\x02\x15\x84\ \xd8\xb7\x6a\x1c\xcf\xad\xa8\xe0\xc6\x63\xcd\x58\x35\xd9\x04\xce\ \x39\x12\x8e\xa5\x0c\xe0\x92\x04\x46\x45\x11\xde\x03\xc3\xe7\xbf\ \xa0\xed\x2e\x2d\x78\x2b\x4c\x73\x82\x31\x36\x05\x6f\xf4\x38\x9e\ \xfb\xe4\xd7\xb1\xf5\x1b\x9f\x00\xb3\xcc\x7a\x13\xbc\x40\xca\xc0\ \x18\xc2\xc5\xf1\x43\x70\x8c\x75\xc8\xa7\xb2\x90\xf6\x08\xa6\xc3\ \x22\x66\xfc\x69\x04\xc2\x8f\x5b\x3d\x43\xe0\xa9\x08\x3c\x88\xfb\ \xd3\xd7\xef\x4c\x3c\x2c\x1e\x81\x5e\xec\x05\x6d\x42\x72\xb6\x11\ \x13\x06\x50\x6c\x02\x72\x15\xa0\xab\xc4\xd1\x11\x64\xd0\xe1\xe5\ \x90\x1c\x91\xe8\x2d\x8d\xe2\x38\x2b\x61\x83\xdd\x06\xcb\x30\x24\ \xe7\x2c\xba\x12\x28\xf8\x6a\x10\x7a\x0f\x0d\x9c\xfb\xf2\xa1\xc9\ \xc2\x2f\x01\x5c\x24\xf9\x97\x7a\x33\xe4\x91\x86\x30\xf2\xd3\x9f\ \xe0\xfc\xbf\xaf\xc7\xca\x0f\xde\x09\x70\xa6\x4d\x88\x37\x34\x3a\ \x0c\xbd\x00\x2e\x3f\x85\x49\x5f\x22\x65\xb5\xa0\xd1\x5e\x87\xd5\ \x0d\x5c\xb6\xb5\xf7\x4a\x2f\x39\xc8\x47\x2b\xc0\x68\xb9\x11\xe5\ \xe8\x83\xcb\xc9\x32\x84\x27\xb0\x60\x30\x2c\x18\x7a\x89\x28\x13\ \xac\xa4\x85\xb4\x93\x46\x73\xb2\x19\x4d\xc9\x26\x91\x43\xc3\x70\ \xa5\x38\x53\x1e\xee\xbb\xd0\x74\xfe\xe2\x40\x53\xa6\x12\xef\xf0\ \xcd\x3c\x03\x87\x2a\x6f\x70\x0e\x93\x71\x44\x31\x63\xb0\xd2\xa7\ \x9f\x3e\xf4\xf9\x1f\x9f\x3b\xf7\x43\xfd\x06\xb1\x22\x29\x16\x35\ \x40\x77\x41\x09\x40\x0f\x4e\x7d\xfa\x1e\x54\x47\xa6\xb1\xfe\x23\ \x7f\x0e\xe6\xd8\x60\x80\x1f\xea\xfb\x5a\x11\xaa\x04\x29\x50\xc6\ \x19\x94\x13\xdf\xc7\x40\xa2\x97\x25\x7c\x03\xd7\xd9\xd7\x8d\x6c\ \xcc\x6d\xc4\x6d\xcd\xb7\xa5\xda\xd3\xed\x4e\x73\x43\xb3\x59\x0d\ \xaa\xcc\x0d\x5c\x94\xbd\x32\x66\xaa\x33\x98\xaa\x4e\xa1\xe4\x96\ \x30\xe5\x4e\x51\xc5\x2c\x64\x9d\x2c\x92\x56\x12\x29\x3b\x85\x84\ \x95\x80\x63\x3a\xb0\x0d\x5b\x8a\x40\x84\xe3\xa5\x71\x6f\xa4\x32\ \x52\xee\x2f\xf5\xbb\x3d\x17\x7a\x1a\xc7\xa6\xc6\x3a\xe0\x23\xde\ \x0f\xf2\x40\x83\xcd\xd0\x56\x62\x90\xe0\x48\x70\x1b\xb6\x61\x84\ \x64\x82\x75\xf8\xe2\xe8\x91\x7f\xd8\xbd\xf7\x2b\x07\x86\x47\xf7\ \x01\x18\x24\xcd\x48\x8a\xcb\xfb\x78\x9c\x31\x8b\x52\x8e\xb4\x16\ \xad\xaf\x7f\x23\x36\x7d\xee\xc3\xb0\xdb\x9a\x4d\x7f\xc8\x0d\x32\ \xa5\x04\xb2\xf7\x03\x56\x19\xc8\x1c\x03\xb2\xbd\x34\x0e\x48\xba\ \xa2\x7e\x9d\xb5\x24\x27\xe1\xa0\x23\xd1\x21\x3a\x8d\x4e\xd1\x68\ \x37\xca\x8c\x9d\x61\x79\x3b\x2f\x73\x66\x8e\x35\xd8\x0d\x08\xc2\ \x00\xc5\x4a\x11\x85\x4a\x41\x96\xaa\x25\x4c\xba\x93\x6c\xa8\x32\ \xc4\x2e\x94\x2f\x18\x85\x72\x21\x3e\x5f\xa0\xd7\x01\xaf\x7b\x0e\ \x2d\x16\x90\x3c\xa0\x79\xc2\x7a\xf6\x73\xe5\x1b\x8d\xce\xce\x16\ \xf3\x91\xbe\xfe\xef\x7e\xfb\x59\xf5\x11\x7f\xbf\x5e\x54\xd5\xa8\ \xb8\x57\xf0\x45\x49\xfd\xce\x90\xf0\x48\xed\x30\xb2\x1b\x71\xfd\ \xa7\xde\x87\xa6\x5b\x77\x22\x3b\x98\x42\xfb\xdf\xa7\x90\xee\x07\ \x6c\x05\x1e\x87\xd0\xd9\xaa\xc1\xc3\xaa\xcb\x86\xce\x24\x15\x41\ \x9d\x7c\x0d\xe8\x2f\x31\xa7\x8d\x50\x21\x6b\x3f\xd3\x7b\xcc\xa3\ \x78\x02\x9f\x41\x1c\x45\xd2\xb8\x7e\xd3\x13\x48\x8a\x2b\xfe\x8a\ \x8c\x94\x32\x54\x9b\x22\x50\x45\x58\x2a\xe0\xf8\xdf\xf5\x23\x7f\ \xd3\x2a\xac\x3f\xde\x8d\x55\x95\x2f\x80\xe9\x17\x13\x90\x58\x1d\ \x28\x27\x19\x5a\x7c\x4e\xd6\x52\x21\xb5\x84\x9e\x93\x3a\xcf\x9b\ \xd3\xc7\x5c\x4b\xd4\x81\xd7\x63\x71\x35\x7b\xaa\xee\x55\x85\xaa\ \xea\xbf\xcd\x97\xa4\xf4\x09\x2a\x64\x84\x47\x79\x0a\xc5\x83\xcf\ \xa3\x01\x36\x84\xde\xa8\x78\x0d\x5a\x4b\x03\xcf\x85\x5e\xc2\x00\ \x39\xe7\xb8\x06\x3d\x5f\x4c\xe7\xfa\x02\x08\x25\x5b\x43\x57\x5e\ \xdc\x2f\x4b\xeb\x6e\xd0\x27\x2e\xe1\x24\x7e\x8d\x7e\x7c\x0d\x33\ \x18\x9c\x0b\xba\xc4\xf1\xa2\xaa\x19\x37\xcf\xcc\xa5\x4d\x90\x70\ \x31\x41\xcd\xff\x3c\xee\x8d\x66\xa2\xb8\x6a\x5f\x96\xa6\x73\x73\ \xfd\x21\x4d\x3b\x69\x0d\xb6\xe0\x76\x6c\xc2\x5b\xd0\x89\x6e\x24\ \x60\xc3\x9a\xb7\xf6\x6b\x32\x17\xd8\x03\xfc\xd9\x59\x8f\x97\x3e\ \xf6\x20\x09\x7a\x04\x17\xb0\x1b\xc7\xf1\x18\x5c\x9c\xd0\x97\xb9\ \x22\xf1\xf8\x57\xcb\x80\x7a\x13\x1c\x6d\x44\x63\xbc\x49\x62\x39\ \xb6\xe1\x55\x58\x87\x57\x62\x05\x36\xd0\x51\x3b\x1c\x18\x57\x6c\ \x80\x7f\x89\xb9\x22\x8a\x84\xdc\x87\x21\x1c\xc1\x69\xec\x47\x01\ \x7d\xfa\xc6\x66\xb4\x76\x7f\xa9\x37\xbc\xab\x66\xc0\x7c\x23\x4c\ \x6d\x46\x52\xdf\xd1\xe7\x95\x29\x49\xb4\xa0\x9b\xec\xe8\xc4\x1a\ \xb2\xa2\x03\xcd\x68\x27\x35\x23\x8d\x04\x92\xb0\x55\xaf\x18\xda\ \x16\x17\x02\x15\xf8\x2f\xa8\x0c\x0f\x93\xf4\xa7\x40\xb8\x13\x18\ \x24\xbc\x73\x78\x9e\x60\xc7\x30\x00\xa0\xa0\x55\x24\x95\xf5\x4e\ \xe4\x91\x84\x06\x7f\xe9\x7f\x5f\x40\xaf\xb9\x48\x46\x9d\x21\x36\ \x29\x51\xbb\xa9\x55\x39\x51\xd7\x0b\x86\x16\xab\xdb\xfa\x82\x5a\ \x56\x60\x95\x08\x52\xe7\x19\x0d\x4a\xd2\xbd\xb1\x14\xf4\xd5\x37\ \x60\x69\x43\x16\xd9\xce\x50\xcb\xda\x80\x38\x44\x2d\xab\xb9\x50\ \x8f\x43\x2d\xb9\x10\xf0\xcb\xc9\x80\xa5\x8d\xb9\xcc\x50\xa0\x2f\ \x51\x5c\xfb\xd5\x59\xe0\xda\x6f\x8d\x5d\x33\xe0\x9a\x01\xbf\xc3\ \xf1\xbf\x9d\xd2\xae\xe2\x5a\xef\x69\x4e\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x0d\x06\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x0c\x83\x49\x44\ \x41\x54\x78\xda\xed\x9b\x5b\x68\x55\xd9\x19\xc7\xd7\x49\x4e\xa2\ \x26\x26\x1a\xe3\x35\x31\x5e\xc6\x54\xad\x97\x4a\x95\x29\x38\x14\ \xc4\x22\xb6\xcc\x73\x9f\x2a\xf4\x61\x5e\x7c\x10\xc4\xc2\x0c\x08\ \x7d\x28\xf8\x54\x4a\x1f\x15\xa4\x4f\xf6\x51\x0a\x52\x90\x4e\x07\ \x41\x94\xfa\xe0\xfd\xd6\xaa\x03\x5e\xc6\xfb\x35\x51\x63\x2e\x46\ \xcd\xc5\x7e\xbf\x0d\xbf\x61\xcf\x31\x92\x8c\x1c\x83\xc1\x2c\x58\ \xec\xbd\xd7\x59\x7b\xad\xef\xfb\x7f\xf7\xb5\x93\xc2\xeb\xd7\xaf\ \xd3\xc7\xdc\x2a\xa2\x8f\x03\x30\x0e\xc0\x38\x00\xe3\x00\x8c\x03\ \x30\x0e\xc0\x47\xda\x8a\x1f\x1a\x41\xc7\x8e\x1d\xdb\x53\x5d\x5d\ \xfd\xb3\x69\xd3\xa6\x7d\xe1\x98\xad\xad\xad\xed\x8f\x95\x95\x95\ \xf3\x57\xaf\x5e\xfd\x8b\x72\xed\xf7\x41\x24\x42\xdb\xb6\x6d\x5b\ \x50\x2c\x16\xff\x10\xb7\x9f\xcd\x9e\x3d\xbb\x65\xf2\xe4\xc9\x93\ \x18\x87\x36\xaf\xb6\x81\x81\x81\xc1\x4b\x97\x2e\xdd\x1a\x1c\x1c\ \xbc\xd4\xd1\xd1\xf1\xb7\xbd\x7b\xf7\x1e\x1a\xd3\x00\x6c\xd9\xb2\ \xe5\xb3\xfa\xfa\xfa\xc3\x21\xf5\xaa\x21\x09\x2c\x14\xd2\xdb\xc6\ \x03\x84\x74\xfd\xfa\xf5\x43\x15\x15\x15\xbf\xd9\xb3\x67\xcf\xab\ \xb1\x64\x02\x32\xff\xcb\x9a\x9a\x9a\x43\x21\x84\xe2\xcb\x97\x2f\ \x87\x63\x78\xc8\xb1\x96\x96\x96\xf5\xd7\xae\x5d\xfb\x26\x1e\x7f\ \x35\x96\x9c\xa0\x0c\xfc\xb3\xbf\xbf\x3f\x13\x42\x00\x91\xaa\xaa\ \xaa\x52\x98\x02\x3d\xbb\xb7\x3b\x6e\x9f\x38\x71\x62\xc6\x3c\xa0\ \xd1\x9b\x9a\x9a\xd6\x6f\xd8\xb0\x61\xdd\x98\xd2\x80\xcd\x9b\x37\ \xff\x39\x98\x69\xec\xeb\xeb\x4b\xcf\x9e\x3d\x4b\x0f\x1e\x3c\x40\ \xa5\x47\x0a\x5c\x0a\x27\x99\x1a\x1b\x1b\x93\xad\xae\xae\xee\xaf\ \x71\xf9\x74\xac\x00\x00\xb3\x5f\x04\xf3\x48\x10\xef\x9e\x16\x2d\ \x5a\x94\xc2\xf9\xa5\xe7\xcf\x9f\x23\x65\xe7\xa4\xce\xce\xce\xd4\ \xd0\xd0\x90\x31\xfc\xf4\xe9\xd3\x34\x69\xd2\xa4\x74\xfa\xf4\xe9\ \xf4\xe4\xc9\x93\x44\x0b\xff\x91\x68\x53\xa6\x4c\xf9\xf9\xc6\x8d\ \x1b\x8b\x07\x0e\x1c\xe8\xff\xe0\x01\xd8\xb4\x69\x53\x75\xb4\xe9\ \x71\x0b\xc3\x78\xf6\xb4\x6a\xd5\xaa\x34\x61\xc2\x84\x74\xe3\xc6\ \x8d\x34\x6b\xd6\xac\x74\xea\xd4\xa9\xd4\xda\xda\x9a\xe6\xcf\x9f\ \x8f\x9d\xc3\x60\xba\x7a\xf5\x6a\x5a\xb8\x70\x61\x3a\x7b\xf6\x6c\ \xf6\x4e\x77\x77\xb7\xe6\x00\x68\x95\x2f\x5e\xbc\xd8\x14\x4b\xfe\ \xfd\x83\x88\x02\xdb\xb7\x6f\x6f\x7c\xf4\xe8\xd1\xba\x20\xbc\x3f\ \x88\x9d\x17\xd2\x5b\x31\x73\xe6\xcc\xdf\xde\xb9\x73\xa7\x2b\x88\ \x9e\x1c\x63\xd3\x83\xe0\x84\x16\x00\x42\xc4\xf7\x77\xd1\xa2\x4c\ \x33\x02\xcc\x0c\x84\x5b\xb7\x6e\xed\x0b\x8d\xd9\x4f\x38\x8d\x7e\ \x34\xd6\xfc\xf7\x89\x13\x27\x1e\xbc\x17\x00\x7e\x1d\x6d\xc5\x8a\ \x15\x95\xc1\x54\x6d\x30\xd3\x7a\xe6\xcc\x99\xdf\xaf\x59\xb3\xa6\ \x39\x18\x7d\x10\xd2\x68\xba\x70\xe1\x42\xed\xb2\x65\xcb\xd2\xdd\ \xbb\x77\xd3\xd4\xa9\x53\x53\x57\x57\x57\x7a\xfc\xf8\x71\x46\x6c\ \x84\xad\xc4\xbe\xd8\x3e\x12\x0c\xa0\x90\xa8\x9e\x7e\xc4\x0d\x4d\ \x61\x1d\x1c\x28\x66\xc3\xfd\xe5\xcb\x97\xf1\x07\x98\x13\xfb\xbc\ \x0e\xad\xba\x1c\x4e\xf4\x1f\x3d\x3d\x3d\xff\xda\xbf\x7f\xff\x89\ \x98\x33\x38\x62\x00\x76\xec\xd8\xb1\xf4\xe6\xcd\x9b\x5f\xc5\x6d\ \xcb\xe2\xc5\x8b\x6f\xd6\xd6\xd6\xd6\x04\xa1\x8b\x7a\x7b\x7b\x5b\ \xcf\x9f\x3f\xdf\xc8\x26\xa8\x24\x92\x84\x51\x18\xc0\x63\xf3\x8c\ \x6d\xbf\x7a\xf5\xca\xae\x27\x77\x69\xa4\xce\x38\x44\xd2\x99\xcf\ \x18\x4c\x0c\x1b\x0e\x01\x2d\x68\x51\x0b\x78\x3f\x63\xd8\xe7\x90\ \x7a\x8a\xe8\x82\xf9\x00\x3e\x7e\x22\xdb\x3b\xe8\xee\x6c\x6f\x6f\ \xff\x26\xf6\xfd\x32\xe6\xdc\x1e\x12\x80\xdd\xbb\x77\xa3\x8b\xbf\ \x7b\xf8\xf0\xe1\x5f\x8e\x1f\x3f\x3e\x3b\xd4\x88\x97\x0d\x37\x10\ \x08\xe1\x79\x06\x91\x1e\x1b\xdb\xdf\x78\x46\x42\x74\x1b\x6b\xe0\ \xd0\x64\x9e\x3d\x60\x8c\x7b\xae\xf9\x6e\xf3\x3d\xaf\xac\xeb\x95\ \x0e\x00\x79\xe7\x19\x1a\x09\x08\x00\xc5\xfa\x38\x4f\xfc\x48\xe6\ \x67\x42\x1b\xae\x1f\x3d\x7a\xf4\x93\x37\x00\xd8\xb5\x6b\x57\x4d\ \xd8\xd0\xd7\xa1\xaa\xeb\x62\x92\x4c\xb2\x10\x1d\xc6\xd8\x14\xbb\ \x85\x38\x09\x18\x16\x00\x36\x86\x39\x1b\xce\x0b\x2d\x81\x30\xc6\ \xed\x23\x01\x80\x2e\x93\x79\x10\x58\xcb\x88\xe0\xef\x87\x0f\x1f\ \x66\x1f\x98\x56\x08\xdc\xd3\xfb\xc3\x24\xeb\x6f\xdf\xbe\xdd\x5b\ \xf4\x85\x9d\x3b\x77\xb6\x44\x38\xfa\x36\x54\xb9\x96\xd0\x93\x27\ \x02\x64\x91\x18\xe3\x61\xf3\x69\xee\xdc\xb9\x29\x5e\x06\x08\x36\ \x96\x30\x89\xcb\xe6\x00\x60\xe4\xea\x3f\x20\xd6\xe6\xfa\x00\x25\ \x08\x6a\x80\xfb\x39\xce\x9a\x39\x40\x87\xd4\x00\x3b\xcc\xf1\x1e\ \xfe\x06\x8d\x20\x7a\x60\x56\x08\x12\x20\x42\xab\x11\x24\xeb\x17\ \xc3\x17\xfd\x09\x5f\x9d\x01\xb0\x6f\xdf\xbe\xc6\x90\xca\xb5\x28\ \x32\xaa\x64\x3a\xcf\x3c\x49\xca\xca\x95\x2b\x13\xed\xc8\x91\x23\ \x20\x9d\x81\x10\x7e\x00\xe9\xe6\x01\xc8\x88\x8e\x82\x86\x8d\x01\ \x8d\x35\xb2\x4d\x6d\x6a\x14\x8d\xb9\x30\xc7\x1e\xd3\xa7\x4f\xc7\ \x79\xf1\x9b\x1a\x02\xe1\x43\x81\x24\x20\xa5\x20\xc8\x38\xe0\x2b\ \x79\xd6\xc0\x0c\xe8\xd6\x0f\xfc\x86\xe3\xfd\x2a\x9e\xf7\x64\x00\ \xdc\xbb\x77\xef\x3f\x11\x77\xab\x54\x53\x99\xd7\xfe\xc9\xb8\x02\ \x31\x9c\x48\x46\xa4\xf3\x24\x16\xfb\x82\x10\xcd\x23\x22\x00\x8c\ \xf2\x2c\x00\xae\x9b\xad\x41\x13\x00\x12\x20\xd6\x46\xa3\xc8\x01\ \xf2\x4e\x50\xa6\x35\x3d\x9b\x29\x71\xe9\x6f\xac\x8d\x83\xc4\xe1\ \x42\x07\xeb\xd2\xb6\x6e\xdd\x9a\xdd\x9f\x3b\x77\x0e\x67\x4d\xa4\ \x40\x0b\x2b\x02\x88\x4f\x8b\x21\xfd\xda\x50\x8d\x9f\xe6\xbd\xac\ \xc4\xa9\x8a\x84\x29\x50\x43\xa2\x80\x81\x84\x4f\x9e\x3c\xc9\x34\ \xc6\xd9\x54\x00\x40\x18\x86\x95\x8e\x25\xec\x0f\x34\x80\x36\x6f\ \xde\x3c\x9c\x2a\x5a\x04\x31\xec\x07\xb8\x86\x34\x9e\x5d\x03\x1a\ \x74\xb6\xec\x87\x76\x71\xcd\xfb\x09\xe6\xb0\xaf\xeb\x93\x1f\x08\ \x36\x91\x20\xfb\x7d\xce\x9c\x39\x19\x38\x57\xae\x5c\x31\x5a\x4d\ \x2b\xc6\x4b\xad\x11\x8f\x0b\xbc\xa8\x63\x73\x41\x91\x9e\x31\x63\ \x46\xb6\xb0\xa9\xea\xc1\x83\x07\x9d\x87\x8a\xb1\xd1\x1b\x6a\xc9\ \x06\xda\xbf\x44\x0a\xc4\xf2\xe5\xcb\x49\x65\x31\x27\x18\x05\x54\ \xcc\x0a\xa2\x19\xd7\x9e\x95\x24\xb4\x20\x41\x34\x0d\x3a\x98\x03\ \xb3\xa8\x3c\x57\x23\x13\x82\x50\x20\x8c\xab\x45\xf8\x37\xae\xbc\ \x57\xea\x5c\x0b\xc5\xd8\xa0\x10\x8d\x7c\x9b\x8d\xf3\x5e\x7f\x48\ \xc6\x68\x10\xc6\x6f\x3c\x03\x00\x0b\x43\x30\x44\xd2\x35\x0d\x43\ \x9f\xef\x31\x8e\x2f\x21\xa5\x25\x09\x82\x69\xf6\x05\x60\xd6\x40\ \xc3\xb8\xc2\xb4\x0e\xcf\x7d\xd5\x4a\xf6\x31\x17\xc0\xff\xb0\x26\ \x6b\x01\x12\x7b\xd2\xa0\x01\x3e\xbc\xd7\x17\xd9\xf3\x0d\x0d\xe0\ \x65\x88\xd0\x86\xe9\x82\x90\x0f\x7f\x02\x61\x1e\xfe\x86\x5d\x6a\ \x7f\x02\xa0\x59\xd8\xc8\xed\x2f\x5e\xbc\x08\x68\x48\x1d\x89\x03\ \x00\x3e\x08\x69\xb2\x2f\x84\xeb\x00\xe9\x32\x8b\xf4\x55\x5b\xe6\ \x40\x07\x6b\xe0\xf0\x58\x83\x88\xc3\x3c\x0b\x26\x53\xeb\x61\x53\ \xec\xa2\x2a\xf4\xae\x4d\x2f\x9d\x6b\x10\x85\xa4\x4a\xd3\x56\x9c\ \x1c\x0c\x10\x26\x91\x0c\x73\xd0\x06\x00\x83\x01\x1c\x14\x6b\xe1\ \xb1\xd1\x1e\xf3\x07\x01\x61\x5d\x68\x45\x73\xb8\x47\x0b\x99\x03\ \xe3\x80\x00\xf3\xbc\x8b\x43\x25\x04\x1a\xc5\xb8\xda\x87\x01\xa0\ \x4c\x0d\xc2\x60\xc0\x06\x51\x48\x18\x55\x85\x50\x7d\x47\x14\x46\ \x5c\x61\x1c\x8d\xc1\x31\xf2\x1e\x0c\xb3\x06\x0c\x41\x1b\x0c\xd2\ \x01\x4d\xed\x83\x31\xd6\xa5\x94\xc6\x79\x5a\x1a\xb3\x47\x36\x7e\ \xff\xfe\x7d\x9c\xec\xb0\xf5\x05\x3e\x20\x95\xbb\x69\x32\x46\x15\ \x98\x8a\x63\x2b\x33\x31\x4d\x0b\x46\xa8\xe0\x32\x82\x97\x2c\x59\ \x42\xb1\xc4\x19\x5f\x69\x46\x88\xb4\x61\x1e\xa6\x59\x03\x86\x01\ \x8e\xe8\x01\xd3\x5c\x71\xd0\xac\xc9\x95\x75\x19\xc3\x54\x4c\xb3\ \x05\xe2\xfd\x6b\x80\x9b\xda\xb0\x47\xc2\x28\x04\x40\xac\x21\x92\ \x2b\xb6\x8f\x39\x00\x00\xe6\x01\xe1\xe6\x0d\xe6\x21\x26\x2f\xfa\ \x03\x7d\x92\x76\x0e\x38\x80\x82\xc6\xa8\x25\x8c\x13\xfa\x58\x1f\ \xad\x1a\xd6\x07\x94\xb3\x11\x26\x21\x02\x50\xb5\x41\xd4\xbf\x94\ \x79\x54\x17\x82\x91\x26\x7e\x40\x4d\xe4\x1d\x23\x8a\x79\x88\xe9\ \x30\x73\x60\xd4\xb9\xcc\x43\x5b\xe4\x81\x39\x00\x05\x20\x79\xc7\ \x6d\x1b\x15\x0d\x30\x03\x63\x63\x25\x44\x83\x59\x01\x80\x09\xa4\ \x4d\xb9\x8a\xad\x32\x66\x4a\x8c\x64\x35\x15\xcf\x0e\x64\xce\x08\ \x01\xc8\x98\x0b\x8e\xd5\x04\x88\xf7\xd4\x06\x43\x26\x9a\x85\x1f\ \x61\x9d\xd1\xd2\x00\xe3\x36\x1d\x86\x70\x4a\x84\xaf\x7c\xa6\x08\ \xf1\x84\x5d\x3d\x39\x0c\xe8\xd4\xb0\x61\xa3\x00\xa0\x31\x6e\x78\ \x86\x79\xde\xb1\xe0\xa1\x13\x05\x04\x3e\x9f\x00\xc1\xb4\x7b\x51\ \x67\x70\xff\x56\x27\x58\x56\x0d\x90\x51\x9a\xea\x8e\x9a\xe7\x55\ \xd2\x3a\x9d\x28\xc0\xb8\x67\x06\x8c\x31\x17\xa6\xb8\x1a\xfb\xcd\ \xf4\x90\x3c\xcf\xfa\x05\x8b\x1f\x9a\xd9\xa2\x69\x35\x60\xd0\x0c\ \x9b\x68\x1c\xfb\x8e\xaa\x06\x68\xab\x4a\xd1\x31\x98\x70\x1e\xfb\ \x43\x38\x04\xeb\xe1\x71\x60\xf3\x66\x2c\x49\x4d\xd3\x3e\x49\x03\ \x13\x42\xdd\xbb\x6f\xa3\x29\x30\x6c\x8d\x60\xde\x6f\xea\xab\x84\ \x87\xca\x1e\xc9\x31\x00\xd5\x7c\xe2\xfd\xfa\x80\x3c\x21\x82\x9b\ \xaf\xda\x54\x55\x88\xb7\xb4\x05\x00\x41\x50\x0b\xe6\xcf\x5c\x9a\ \xfa\x6b\x1f\xa7\xe6\xa6\x96\x54\xdd\x96\x85\x4c\xed\x1d\x46\x74\ \xb6\xac\xc7\x3b\xae\x6f\x04\x92\x27\xfd\x0a\xa6\x88\x29\x00\x40\ \x59\x35\x60\xd8\x23\x2b\x01\xb0\xa9\x01\xee\x2b\xd1\x8c\xe5\x35\ \xa1\x50\xf7\x32\x2d\x58\xb4\x34\x15\xeb\xfa\x52\xb1\xba\x39\x75\ \x90\x2a\xc7\x3b\x66\x99\x9e\x31\xa2\x19\xac\xaf\x29\x5b\xd0\xe5\ \xa3\x10\xe1\xd0\xcc\xb3\xb4\x55\x94\xd3\x07\xc8\xa8\x04\x20\x95\ \x52\x60\xf2\x67\x0e\xf9\x7b\x9f\x3d\x23\x7c\xde\xdf\x1e\xcc\x3e\ \x4a\xb5\x55\xf5\xa9\x3e\xca\xd8\x89\x75\x93\x53\xfd\xec\xc8\x19\ \x1a\xa6\x38\xcf\xf7\x5c\xc3\xee\xfe\x76\x35\x0d\xb0\xde\x04\xa0\ \xdc\x3e\x20\x4f\x40\xbe\xa2\xf3\xde\x4c\xd0\xef\x7f\x30\xeb\x5c\ \xfb\xf7\x31\xbf\xa7\x37\x75\x84\xea\x77\xb5\xb7\xa5\xee\xb6\xf6\ \xd4\x1b\x6a\x3c\x21\xbe\x9c\x0f\xe6\x34\x8c\xf5\x2c\x99\x05\x54\ \xe9\x6b\x86\x66\x93\xac\x5b\xda\x8a\x12\x53\x6e\x00\x8c\xdd\x3a\ \x2d\x9a\xa1\xd1\x33\x02\x55\x9f\x79\x3a\x35\xed\x1b\x6f\x5e\xc5\ \x07\x8f\xfa\xba\xd4\xf7\xbc\x27\x3d\x8d\x32\xb9\xb3\xa7\x3b\xf5\ \x15\x99\xfb\x7d\xc5\x0a\x00\xbc\x83\xa7\x57\xd2\xa5\x25\x38\x7b\ \x50\x83\x70\x1d\x1d\x00\x24\x40\x00\x2c\xb9\x75\x4a\x82\xc2\xbd\ \x85\x92\xcc\x6b\xe3\xcc\xc9\xca\xe3\xca\x42\x7a\x45\x32\x55\x5d\ \x91\xba\xba\x3b\x23\xb7\x4e\xa9\xab\xb3\xcb\x13\x6b\x22\x06\x60\ \x19\xf7\x65\xdc\xc6\x98\xc5\xd2\x90\xad\xa8\x57\x2e\x57\xf3\x24\ \x57\x42\xcc\xe3\x21\x42\x7f\x03\xb1\x66\x7e\x48\x0e\xdb\xa4\x9b\ \xfe\xe6\x6d\x96\x10\x56\x37\xb3\x21\x4d\xa8\x9c\x98\xba\x7a\xbb\ \xd2\xa3\x2b\x0f\x01\x0c\x2d\x61\x4d\xee\xcd\x1a\x3d\x87\x54\xab\ \xbc\x1f\xdd\x54\x18\x06\xf2\x84\xc0\x84\xa0\xd0\x4c\x7a\x90\x9a\ \x80\x51\x10\x91\x12\x23\xfd\x7c\xf1\x83\x60\x3c\x95\xce\x67\x82\ \xda\x33\x8c\x73\x82\xb4\x60\xc1\x02\xcf\x27\x05\xd8\xc4\x89\x44\ \x69\x74\x8b\x21\x9d\x9a\xcd\xb3\x3a\x80\x80\x60\x6d\x14\xd5\x67\ \x0c\x66\x01\x8a\xda\x3d\x3e\x5b\x65\xc0\x18\xeb\xad\x05\xb4\x65\ \x41\xf0\x9c\x32\x3e\xdb\x71\x40\x2b\xd0\xcc\xc9\x3b\x42\xb5\x84\ \x3d\x47\x4f\x03\x4c\x47\x05\x82\x67\x08\xf1\x68\x8b\x31\x99\xf6\ \xd0\xd3\x12\x1a\x10\x50\x79\x6b\x04\xab\x41\xdf\xf1\xec\x12\x9a\ \xa9\x20\x39\x12\xf3\x5c\xd0\x33\x4a\x80\xf5\xd3\x1d\xe6\x05\xf3\ \xa3\x75\x20\x62\xfd\xaf\xf3\xd3\x0c\x60\xca\x6a\x4d\x02\x21\x1a\ \x40\xf2\x1f\x47\x19\x83\x21\x8b\x17\xa4\xed\x3c\xc3\x27\x5f\x77\ \x00\x94\x4a\x12\x06\xd9\x03\xe6\x35\x09\xfd\x0f\x42\xe0\x58\x8c\ \xdf\x46\xd7\x07\x58\xcf\xeb\x84\x54\x77\x2b\x40\x98\x32\x13\xb4\ \x74\x36\x1c\xf2\x9b\x45\x8b\x15\x9d\x1f\x52\x61\x44\x8f\x1e\x5f\ \xaa\xd1\x0e\x4f\x95\x00\x8f\xf7\x33\xa0\x3c\x29\x6a\x6e\x6e\x36\ \xed\x1d\x55\x1f\x20\xc3\x1e\x45\xeb\x18\x01\x85\x7c\xdc\x83\x4e\ \xf3\x7a\x01\x31\xf4\xe1\x20\x61\x54\xd3\x00\x00\xde\xa1\xf6\x67\ \x1d\xd7\xd4\x21\x5a\x4c\xb1\x27\x63\x74\xd6\xc0\xf9\x01\xfa\x88\ \x00\xe0\x0b\x71\xb9\x01\xc0\xa1\x69\xbf\x66\x6c\x48\x0b\xf5\xd5\ \x57\xc0\xb8\xde\xde\x52\xd7\x44\x4a\xa6\x4a\x73\x0b\x55\xde\x22\ \x27\x9f\x0c\x79\x62\x84\xf4\x31\xbb\x11\x29\x6c\x31\x50\xae\x61\ \xd1\x72\x54\x7f\x36\x88\xb3\x04\x2e\x05\x06\x10\x20\x54\xe7\x05\ \x13\xac\x81\xdd\x23\x71\xa5\x6a\x6d\x60\x46\x49\xb7\xb6\x27\xf9\ \xf1\x54\x29\xff\x75\x8a\x77\xf9\xd6\xc0\xbc\xb5\x6b\xd7\x72\xec\ \xa6\x06\xe9\x24\xf9\x2e\x21\xdd\x00\xde\x87\x06\x34\xf0\xf0\x0e\ \xcd\x8c\xee\x6d\x5a\x80\x2d\x2a\x39\xbb\xc7\xde\x10\xe7\x87\x0d\ \x08\xf1\x4b\x8e\xa7\xba\x1e\x8c\x70\xc6\x0f\x53\x00\xc5\xf1\x39\ \x6b\xc8\x98\xef\x20\x6d\x00\x63\x3d\x2b\x4e\x2a\x40\xd6\xf6\x3d\ \x40\xf5\xbc\x01\xba\xa0\x01\x20\x6f\x15\xf9\xdb\x5b\xff\x14\xed\ \xc7\xb6\x7c\xf5\xa5\xbd\xea\xfd\xd9\xc0\xdf\x4a\x9b\x4e\x12\x8f\ \x0e\x51\x48\x15\xa2\xf3\x69\x33\x34\xd1\x79\x9f\x64\xc7\x46\xe6\ \x67\x68\x33\x29\xe2\x7d\x4b\x5d\x01\xf8\xee\xbb\xef\x86\x22\x59\ \x00\xd1\xd0\xb3\x11\x49\xfe\x5b\x8c\x81\x9b\x64\x5a\x6c\xca\x22\ \xf9\xd8\x9b\xaf\xeb\xed\x2c\x6e\x4d\x0f\x61\x7e\xa8\x90\x28\x8f\ \xb8\xec\x6e\xea\xb5\xa4\x79\x86\xef\x91\xd8\x70\x69\xb9\x66\x82\ \xcf\xf0\x0b\xb6\xe7\x83\x23\x31\x57\xfd\xc7\x85\xf8\xfb\x86\x2f\ \x63\xa8\xad\x18\x52\xea\x08\x6f\x79\x28\x08\x5f\xef\x5f\x58\x04\ \x83\x32\xe2\x55\xe2\x65\x12\x2f\x3f\x10\x44\x7c\x1b\x8f\xcf\xf2\ \x69\xae\xcd\xf8\x3e\x82\x26\x38\x95\x01\xe8\xd4\x58\x63\x7a\xd0\ \x50\x13\x9d\xbf\x57\x80\x3e\xf6\x1b\x88\xf1\xbe\xb8\xbc\x88\xa9\ \x8f\xc3\x41\x3e\x09\xa0\x7e\x6c\x02\x83\xd0\x3a\xc2\x9c\x2e\x45\ \x38\xfe\x3a\xd6\xbb\xc0\x29\x7e\x21\xfe\xf6\x7e\x52\x2c\xbc\x3a\ \x54\xf6\xf3\x40\x77\x59\xfc\xf0\x13\xfe\xcc\x8d\xf9\x79\xc9\x4b\ \x67\x34\xa0\xbe\x1d\xb6\x74\x24\x88\xf8\x5f\xbc\xdb\x99\xde\x4f\ \x73\xc3\x42\xb4\xd7\x65\xc8\x4f\x90\x0e\xb4\x12\x1b\xef\x45\x7f\ \x12\x7f\x71\xfa\x3a\x0b\x81\xf1\xf7\x7d\xd3\x02\xed\x96\x60\x66\ \x6e\x3c\x83\x7e\x7d\x00\x41\xfd\xca\xef\x48\xb2\x10\x9d\x7b\xfa\ \x60\xdc\xb3\x50\x7b\xcc\xb9\x16\xd7\xa7\x69\x6c\x34\x40\xec\x23\ \x68\x04\xe3\x7d\x0e\x9a\x03\x00\x42\x15\x99\x6c\xf4\x9a\xe8\x18\ \xa2\xfa\xeb\xb5\x40\x67\x21\x54\x07\x7f\x44\x07\xc5\x34\x86\xdb\ \xf8\xbf\xce\xa6\x34\xfe\x5f\x63\xe3\x00\x8c\x03\xf0\x11\xb7\xff\ \x03\x7f\x19\x0a\xe4\xd7\x62\x63\xda\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x15\x14\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x14\x91\x49\x44\ \x41\x54\x78\xda\xe5\x5b\x79\x8c\x64\xc5\x7d\xfe\xbd\xa3\x8f\xe9\ \xee\x39\x76\xa6\x97\xdd\xb9\x96\x3d\x66\x61\xef\x05\x61\x6c\xae\ \xa0\x38\xb6\x20\x4e\x2c\x22\x27\x32\x09\x92\x0f\x14\x20\xc6\x81\ \x18\x84\x92\x08\x59\x8a\x30\x7f\x18\x04\x09\xe0\xf8\x08\x47\x24\ \xa2\x24\x76\x14\x9b\x80\xf3\x4f\x0e\x27\x86\x80\xc3\x61\x60\x31\ \xe6\xb0\x21\xbb\xec\xb2\xf7\xce\xf4\x4c\xcf\xf4\xdd\xfd\xae\xaa\ \x7c\xbf\x7a\x5d\xf3\xfa\x98\x49\xef\xb4\x90\x65\x29\x65\x7d\x54\ \xbd\x7a\x47\xd7\xf7\xbb\xab\x66\x6d\x48\x29\xe9\xff\x73\xb3\xe9\ \x97\xb8\xbd\x74\xed\xb5\x03\x9e\xeb\x66\x09\xf0\x84\x18\x23\xe9\ \x67\xa5\x2f\xb3\x42\x88\xac\x14\x18\x63\x4e\x04\x22\x2d\xfd\xe0\ \xdf\x7f\xf3\x95\x57\xfe\x8a\xfa\x68\xbf\x30\x0b\x78\xef\x4b\x5f\ \x4a\x54\x3d\x2f\xeb\x48\x37\x6b\xf8\x41\x96\x04\x88\x04\x04\x02\ \x41\x56\x92\xc8\x52\x20\x43\x52\x52\x8c\xc9\x40\xe0\x9e\x60\x82\ \x29\x89\x87\x70\x4d\x18\x87\x08\x02\x12\xd1\xb8\xd9\x8b\xc6\x46\ \x21\x86\x2e\x3a\x70\xc0\xfb\x85\x58\xc0\xcf\xef\xbe\x3b\x6e\xd5\ \x6a\x59\xd7\xf3\xc6\x4c\xc3\xc8\x0a\x62\x12\x06\x2f\x18\x3d\x8d\ \x19\x22\xc8\x0a\x49\x59\x92\x4c\x42\x86\x7d\x20\xd3\x20\x47\x06\ \x6e\xa0\x03\xd0\xf3\x80\x00\x26\x21\x19\x12\x64\x00\xdc\x23\xd9\ \x84\x7a\xae\x1d\xb4\x0c\xd2\x73\xc9\x63\x52\xee\xbc\x88\xe8\xcd\ \x0f\x44\x00\xef\xdc\x79\xe7\xed\xe5\xb8\xbd\x29\x79\xe2\xe4\x88\ \xb1\x6e\x24\x26\x0d\xca\x1a\x64\x8c\x11\x48\x12\x49\x80\x06\x7d\ \xe2\x26\xa1\x38\xee\x42\x32\x7a\x61\x22\xec\x43\xed\xf0\x98\xfb\ \xe6\x75\x04\xb9\x32\xa4\x86\x88\xde\xd7\x08\xaf\x43\x88\xf6\xdf\ \x34\xa4\x7f\x01\x7d\x10\x02\x78\xec\xc2\x0b\xbf\x72\xc5\x95\x97\ \xdf\xe5\x98\x43\x94\x1a\x18\xa0\x40\x88\x90\xaa\xc1\xff\x55\xff\ \xa1\x50\xf4\x7a\x28\xc3\x61\xa4\x9d\x88\x74\x34\x56\xef\x5a\xa9\ \x34\x05\x8d\x3a\x5c\x99\xcd\xda\x65\x33\x50\x30\x63\x36\xe6\x1b\ \xe1\xb5\xd0\xc4\xf1\x46\x32\x41\xa4\x85\x55\xa9\xb4\x0b\xa3\xc3\ \x2a\x84\x30\x2e\x30\x0c\xe3\xef\x25\x5a\x5f\x02\x30\xd0\xee\x98\ \x9e\x4e\xce\x0c\x0f\xdf\x5e\x2f\x95\xa9\x54\x2c\x53\x76\x7c\x9c\ \xfc\x72\x89\xc8\x34\x69\xb5\x66\x26\x12\x24\xea\xf5\x48\x10\xe1\ \xe2\x99\x8c\xd6\x54\x48\xcc\x60\x01\x0c\xa0\xc7\x3b\x98\x0b\x6a\ \xfc\xb2\xa5\xe6\xfc\x5a\x83\xac\xc1\x21\xf4\x35\xb2\x86\x06\xc9\ \xcd\xcd\x13\xa5\x53\xca\xf7\x85\x03\xc1\x60\x5e\x13\xee\xd6\xbe\ \xb6\x00\xb1\xbf\xa9\xa1\xb5\x0b\x80\xc9\xf3\x72\x3c\xa2\x6d\x41\ \x10\x0c\xd7\xf0\x83\x85\xa5\x22\xc5\x76\xee\xa4\x5a\x6e\x8e\xcc\ \x64\x52\x4b\x49\x6b\x5d\x75\xf1\x6c\x96\xbc\x42\x81\x12\x1b\x36\ \x52\x50\xad\x84\x6b\xf1\x3d\x32\x62\x31\xe2\x4f\x06\x9e\x47\xd6\ \x40\x4a\x09\xa8\x31\x3f\xaf\x34\xeb\xd7\x41\x36\x99\xc4\x3b\x1b\ \xc8\xc9\xe5\x48\xb2\x65\xc0\xd2\xbc\x7a\x95\xc8\x32\xc9\xaf\xd6\ \xc8\x84\x50\x02\xd7\xa3\x00\xe4\xf9\x5d\xe9\xba\x91\xf6\x05\xf7\ \x1d\xae\x80\x1e\x2a\xda\xcb\x2b\xec\xd7\x05\x0c\x20\x31\x57\xaf\ \xaf\x9f\x49\xa5\xa8\x86\x1f\x75\xaa\x55\xb2\x86\x47\x28\x60\xe9\ \xc7\xe2\x78\xa2\xfd\xeb\x12\x30\x2c\x1b\x8b\x74\x48\xb8\x0e\x34\ \x08\xcd\x2d\x2c\x28\x72\x36\xb4\xe9\x2c\x2e\xc2\xb4\xe3\xea\x9e\ \xa4\xd0\xff\xb5\x00\xdd\xa5\x25\x08\x6e\x89\x04\x5c\x21\x58\x2a\ \x34\x4d\xbe\x33\x3e\x04\xaa\x27\xdb\xc2\x37\xbc\xe8\x9e\xd4\x71\ \xa5\x45\x18\x00\xfe\xb3\xfe\x9b\xdb\xb7\x8f\x43\xf0\xa7\xd6\xe2\ \x06\x76\x53\xfb\x16\x90\x2e\x04\xc1\x04\x07\xb0\x06\xfc\x31\x33\ \x98\x21\x7b\xdd\x08\x49\x98\xa7\x1c\x0c\x34\xe9\xb6\xe6\x2c\xcc\ \x2b\xc2\x0d\x68\xd2\x4a\x24\x95\x86\xdc\x52\x99\x4d\x5b\x49\xab\ \x7e\xfa\x54\x4b\x1c\x90\x54\x3b\x71\x42\xbb\x84\x26\xda\x41\x5e\ \x32\xda\xef\x35\x7c\xfd\x8d\x2e\x17\x00\xda\x2c\x63\x90\x88\x03\ \xe1\xa9\x7e\x2c\xc0\x04\x52\xae\x54\x45\x06\x39\x8e\x4b\xe7\x6c\ \x9f\x21\xd7\x07\x71\x19\xe6\xdb\x95\x4c\xc0\x87\x95\xe8\x00\x28\ \x3c\x8f\x47\xa1\x99\x57\xca\xad\x01\x31\x22\x2d\x23\x82\x3a\x4b\ \x44\x02\x88\xae\x89\xc1\xf9\xde\xf7\x29\xf0\xb9\xf7\xd4\xd8\xc7\ \x98\x94\xba\x2c\x32\x01\xb8\x5a\x28\x6c\xdc\x93\x58\x0b\xc8\xec\ \xc3\xdd\x7f\xe9\x57\x00\x31\x43\xca\x14\x2f\xd2\x81\xcf\x4d\xcf\ \x6c\xa3\xea\x7c\x8e\xcc\x78\x3c\x5c\x54\x77\xd3\xe4\xa3\x6c\xa0\ \x53\x22\xe9\x34\x18\x09\x81\x05\x20\x02\xc1\x71\x21\x04\x2f\x1a\ \x40\xaf\x82\xac\x61\x59\x80\x0d\x60\x8c\xdf\x34\x6c\x9b\x6c\xcc\ \xc7\x00\xa4\x60\xf0\xe4\x9e\xf8\x79\x95\x31\x82\x3a\xe0\x38\xe1\ \x98\xdd\x8c\xb3\x89\x94\xfb\x74\x20\xec\x27\x0d\x9a\xf0\xd1\x18\ \x2f\xd6\xf3\x7c\x15\x7c\x2a\xe5\x1a\x0d\x20\x1a\x3b\xda\x02\xba\ \x9a\x04\x09\x90\x0a\x3c\x28\xc1\x67\x2b\x08\xb5\x16\x04\x4c\x46\ \x91\xb0\x00\xee\xc9\x8e\x21\x63\x58\xb8\xb6\xe0\xd6\x36\x00\xc2\ \x26\x60\x19\xca\xc7\x03\xfc\x9e\xd0\x84\x18\xd0\xa8\xaf\x2d\xa4\ \x37\x94\x0b\x58\x3a\x10\xf6\x15\x04\x81\x79\xdf\x2f\xa2\x57\x64\ \x3c\x04\xb1\x52\xb5\x4e\x83\x08\x84\x8d\xc5\x3c\xd5\x0a\x45\x12\ \x2c\xa5\x78\x8c\x4d\x4f\x59\x86\x65\xa1\xcf\xc4\xc8\x42\xb0\x8b\ \xc7\x98\x5c\x1c\x81\x2f\xd4\xa2\x6c\x92\x11\x8a\x90\x43\x3e\x7a\ \x59\x87\x90\x9a\xe6\xee\xb7\xb9\x40\x38\xa6\x68\xdc\x01\xd9\x1b\ \x52\x32\x89\xed\x9f\xdb\xb0\x21\x89\xb0\x56\x93\x68\x6b\x2e\x84\ \xde\xaf\xd7\x17\xf1\x96\xd2\x60\xad\x5c\xa6\x42\x2e\x4f\xe7\x5e\ \x3c\x4d\xf2\xd4\x29\x1a\xdb\xb5\x8b\xcd\x34\x24\xa5\xc9\xb9\x0e\ \x08\x42\x73\x24\x55\x40\xf6\xa8\xc5\x0d\x80\xee\x9e\xc9\x74\x8e\ \x55\xdf\x4d\x3e\x22\x06\x88\xff\x1b\x62\x19\xb1\xcb\xe2\xf1\xdd\ \x7f\x47\xf4\x6a\x3f\x2e\x20\xab\x41\xe0\xba\x42\xa0\x0b\xd2\xb5\ \x5a\x9d\x4a\x88\xee\xf6\xc8\x88\xd2\x62\xf5\xd8\x51\x8a\x9a\xe2\ \xd4\x51\x15\x46\xe4\x69\x45\x41\x88\x96\xba\xbe\x83\xb0\x5c\x51\ \x00\x6d\xe4\x68\x19\xb2\x1b\x32\x42\xd2\x90\xfb\xa9\x0f\x01\x48\ \x40\x00\x7e\x2d\x08\x0a\x83\x42\xa4\x51\x0b\xf0\x02\xb8\x16\x50\ \x5a\x36\x06\x92\xd4\x91\x06\xda\x3b\x29\xb5\x30\x34\xe9\xae\x80\ \xa8\x02\x2c\x4a\xda\x0a\xfc\x7b\xdd\xd8\xd8\xea\xfb\x85\x8e\x31\ \x45\xa6\xde\x91\x39\xba\x61\x0a\xc4\x81\x35\x34\xb3\x85\x8d\x0f\ \x78\x2c\x00\x5d\x0b\xf0\x22\x25\x07\x31\x21\x9b\x5b\xd2\x20\x44\ \xc0\x10\xcb\x73\x22\xda\x96\x02\x3c\x0e\xaf\x45\x73\x4e\x00\x7c\ \x5d\x02\xf9\xe9\xcf\x5f\x4f\x57\x3d\xf1\x4f\x3d\x82\x5a\x07\xf9\ \x88\xb4\x86\x16\x52\x17\x8c\x30\x15\x9a\x6b\xb2\x00\xad\x7d\xc0\ \xad\x0a\xb1\x14\xd6\x02\x1e\x4d\xef\xdd\x4d\xd5\x85\x79\x15\xf0\ \x7c\xd1\x91\x09\xb4\xb6\xa3\xb1\x4a\x51\x25\x54\x83\x23\xe7\x9c\ \xb3\xe2\x26\xe9\x43\xbf\xf3\xdb\x34\x75\xc3\x0d\x61\x4e\xe7\x32\ \xd9\x30\x75\x31\x13\x91\x6d\x89\x0d\xb4\x7a\xb1\xc4\x58\xd9\x02\ \xa4\x54\x99\xa0\x1f\x0b\xf0\x00\xa7\xe4\xfb\x0b\x4a\x00\xae\x4b\ \xe3\x5b\x36\x43\x00\x79\xb2\x32\x19\x12\x5a\xbb\x80\x50\x50\x1a\ \x6e\x5a\x44\xd8\xdb\xdb\x66\xe8\x23\x7f\xf9\x75\xf2\x38\x40\x0a\ \xfd\x7c\x84\xc3\xdf\xfd\x2e\xcd\x7e\xff\x29\x32\x6d\x9b\x2b\x47\ \x6d\x29\xcd\xf7\x57\x44\x37\xf9\xd5\xef\xeb\xc0\x34\x7a\xcf\xc6\ \x8d\x53\x06\xda\x59\x09\x40\xa2\xb5\xb8\x80\x5b\xf4\xfd\xbc\x4e\ \x85\x41\xb1\x48\x65\x04\xc2\xf8\xc8\x3a\x6d\xd2\x0a\x32\x22\x17\ \xb9\x01\xfa\x0b\xef\xb8\x83\x26\x2e\xbb\x8c\xec\x89\xc9\xe5\xc5\ \x89\x96\xde\x01\xe9\xd2\x1b\x3f\x25\x6e\x89\xb1\x51\x7d\xef\x2c\ \xd1\xed\x0a\xd1\x39\x41\xd8\x8b\x26\x91\x75\xa6\xb9\xbf\x1f\x0b\ \x08\x00\x37\x1f\x04\xf3\x4d\x01\xe0\x22\x4f\xc5\x33\x67\x38\x13\ \x70\x5e\x6f\xd7\xa8\x5e\x8c\xb6\x06\x3c\x9f\xc0\x73\xdc\xce\xbf\ \xe9\x26\x65\x05\xd1\xf3\x91\x96\x1b\xc7\x4f\x10\xb7\xf4\x94\x12\ \x92\x16\x60\x6f\xd2\x00\xbb\x4d\x19\xbb\x4f\x07\x75\x48\xd5\x0f\ \xa8\x5c\xa9\x44\xf7\x23\x22\xaa\x24\xee\x27\x0b\x28\x01\x9c\x74\ \xdd\x39\x2d\x80\x4a\xa5\x4a\x65\x6c\x63\xed\x4b\x2f\x21\x62\x01\ \x74\x58\x95\x6c\x19\xc7\xb0\x71\x5a\x78\xe6\x69\x4a\xc2\x5d\x26\ \x7f\xfd\x13\xf4\xf3\x8d\xe3\x24\x72\xf8\x54\x47\x3d\x50\x9f\x3b\ \x43\xdc\x52\x9b\x36\x93\xfc\xef\xe7\x95\xf6\x3c\xc7\x51\xd6\x60\ \x59\x5c\x8c\x1a\x51\x0c\x68\xf1\x7f\xc7\xb2\x69\xc7\xcd\x37\xd3\ \xf8\xee\xdd\x94\x9a\x9c\xa0\x81\x2d\x5b\xa8\x84\xcd\xd5\x0f\xaf\ \xba\x5a\x0b\x40\x5b\x00\x7f\xe3\xac\x4b\x62\xb3\x23\x0d\x7a\x67\ \x1c\x27\x1f\x80\x3f\x2f\x88\x53\x61\x65\x69\x29\xac\x05\x5c\x57\ \xbb\xc0\x8a\xae\x30\xb8\x65\x2b\x15\x5f\x7f\x8d\xe6\xfe\xfa\x51\ \xe2\xb6\xeb\xd6\x5b\x61\x05\x4e\x97\x1b\x94\x17\xf2\xaa\x64\x4e\ \xcf\xcc\x50\x15\x5b\xe1\x7a\x22\x41\x9b\x10\x18\x67\xf0\xfc\xd8\ \x27\x7e\x83\x8a\xd5\x2a\x07\xd3\xb6\xb8\x20\xd6\x8d\xd2\xd5\x88\ \x1f\x23\xcf\xfd\x90\xde\xfd\xcc\x75\xf4\xda\xaf\x5e\x49\x87\x2e\ \xff\x08\xd1\xf3\xcf\x61\xc5\x1e\x2f\x3e\x82\x61\xe8\xb3\x01\x73\ \x0d\x2e\xd0\x96\x09\x9c\x1a\x4a\x62\x5e\x6c\xbd\x56\x23\x1b\x87\ \x15\x46\x12\xd0\x64\x3b\xd1\x9c\x1f\xde\xbb\x8f\x6a\xef\x1d\xa6\ \x93\x67\xe6\x68\xe1\x3f\x7e\x40\x93\x57\x5e\x49\xf1\xe9\xe9\x76\ \x17\x00\x1c\x69\x50\xf9\xf0\x61\x9a\xfa\xd8\xc7\xe8\x92\xfb\xef\ \xa7\x5f\xf9\xbd\x6b\x69\x6b\xad\x44\x5b\xb7\x6f\xa3\x2b\xee\xbd\ \x97\x7e\xf7\xc0\x6b\x14\xdb\xb6\x4d\x93\x57\xc2\xf8\xe8\xe3\x8f\ \x53\xe1\x1f\xbe\x4d\x07\x7e\xf2\x16\xe5\x92\x69\xca\x25\x52\xf4\ \xe6\xdc\x22\x3d\xff\xe5\x3f\xa3\xa0\x9d\xbc\xb6\x80\x99\xcf\x8c\ \x8e\xa6\x0c\xb4\xb5\x08\x40\x67\x02\xb7\x2e\x44\x41\xb0\xbf\xc2\ \x34\x37\x4c\x4f\x51\x0d\xfb\x02\x2b\x91\xe8\xf6\x51\xf6\xfd\xe6\ \x31\xf5\xe8\x85\x17\xaa\x78\x11\x90\x41\x73\x8f\x3e\x4c\xdc\xf6\ \xdc\x76\x1b\x9b\x77\x18\x24\x01\xd9\x44\xf5\xd0\x41\xb2\x90\x5a\ \xe7\x1f\xf9\x16\x1d\x78\xe4\x51\x7a\xfe\xdb\xff\x48\xaf\xdc\x74\ \x23\x9d\xbe\xe5\x0b\x14\x1f\x1a\xa2\xab\xbf\xf3\x1d\x92\xc3\xc3\ \xea\xd9\x91\x7d\xfb\x68\xdd\x79\xe7\xd1\xd1\xe7\x7e\x44\x42\xca\ \x36\x9f\xaf\x5a\xf6\x32\x79\x11\x92\xd7\xb0\xf6\x0d\x0c\xec\x5e\ \xab\x05\xc8\x65\x0b\x08\x82\x25\xa1\xb6\xc5\xa8\x05\x76\x9c\x4f\ \x75\x6c\x86\xec\x74\xba\x4d\xf3\x82\xa1\x83\x97\x65\x71\x90\xc4\ \xf3\xbe\x9a\x3b\xf2\xde\xfb\x94\x7b\xee\x39\x9a\xb8\xe2\x0a\x4a\ \x6c\xdd\xd6\x6e\xce\x40\xfd\xbd\xf7\x88\x5b\x11\xd6\xe0\x41\x60\ \x30\x78\x2a\x26\x53\xf4\xda\x7f\x3e\x43\xb3\x4f\x7c\x8f\xe2\x38\ \x5d\xda\x7c\xcd\x35\xea\xd9\xb1\xcd\xe7\xaa\xa5\x35\x82\xa0\x8d\ \xbc\x86\xe8\x20\xaf\x91\x20\xda\xdf\x8f\x0b\x78\x80\x53\x0e\x82\ \xbc\x3e\x18\xd9\x30\x31\x8e\x54\x38\x4f\x71\xf8\xa1\xce\xfd\xdc\ \xcb\x65\x04\x34\xb4\x79\x33\x39\x88\xfa\xd6\xf9\xe7\xd3\xf0\x47\ \x7f\x8d\x36\x7f\xf1\x8b\x94\xda\xba\x95\xb8\xed\xbd\xfd\x76\x58\ \x41\xa3\xcd\x0d\xea\xcd\x7d\x45\x72\x6a\xaa\xad\x62\x74\x0d\x93\ \x72\x4f\x3e\x41\x68\xec\x42\x6a\xce\x32\x0d\x15\x40\xd3\xbb\xf7\ \xa8\x5e\x10\xb5\x41\x76\x93\x57\x73\xb1\x30\x13\x9c\x9d\x0b\xb4\ \xd6\x02\x5a\x00\xcb\xa9\x90\xb7\xc5\x73\x73\x64\x8f\x8e\xf2\x81\ \xa7\x2e\x75\x23\x60\x91\x23\xf0\xff\x31\x04\xb5\x8b\x2f\xb9\x98\ \x76\x0a\x97\xb2\x2f\x3c\x4b\xf9\x9b\x7f\x9f\x4a\xaf\x1d\xa0\x89\ \xcb\x2f\xa7\xd4\x8e\x9d\xad\x6e\x00\x01\x1c\x0b\x53\x21\x22\x79\ \xe7\x5f\x7e\x4e\x1f\x3c\x48\xaa\x35\x35\x5e\x7b\xe9\x45\x95\x48\ \x66\xbe\xf0\x07\xe4\x0a\xd1\x45\x94\xd7\x68\x66\x32\x5d\x71\x80\ \x4c\x53\x95\xc4\xfd\xb8\x80\xbb\x84\x5a\xa0\x55\x00\x95\x85\x05\ \x95\x09\x60\xe3\x6a\xb1\x11\x42\x52\x59\x14\x3f\x07\xaf\xff\x2c\ \xfd\xf8\xe1\x47\xe8\x85\x1f\x3c\x4d\xaf\xbc\xf5\x0e\xfd\xf4\x64\ \x8e\x4e\xdf\x77\x2f\x71\xdb\x87\x02\x89\x33\x82\x7e\xaf\x78\xf2\ \x64\x28\x80\x6d\x33\x1d\x55\x20\x22\xc8\xba\x31\xe2\xe6\xe7\xe6\ \xd4\xdc\xc9\xa3\x27\xa8\xf8\xc2\xf3\xb4\xfe\x82\x0b\xe8\xa2\xfb\ \xef\x23\xc7\xe0\xc0\xef\xa9\x2d\x7b\x1d\x19\x63\xe6\xfa\xeb\xe9\ \xdc\x5d\x3b\xda\xc8\x03\x4c\x6c\x37\x77\x06\xda\x5a\x04\x10\x00\ \xde\xac\xeb\xe6\x42\x25\x04\x61\x2d\x80\x54\x68\x8d\x0c\xf3\x2f\ \x33\xe1\x08\xbc\x78\x32\x68\x74\xcf\x1e\x3a\x8e\xe8\xef\xe1\x73\ \xa2\xa5\x34\x3e\xfc\xd6\xdb\x54\x7c\xf5\x15\x1a\xbf\xf4\x52\x1a\ \xdc\xb7\x77\xb9\xe0\xa9\x14\x4a\xe4\xe0\x9b\x53\x57\x5d\x15\x1e\ \x8c\xa8\x6f\x85\xef\xc5\xd9\xd2\x30\x97\xff\xdb\xbf\x51\xbd\x87\ \xf5\x1f\xbe\xe5\x66\x72\x20\xb4\xed\x9f\xfe\x34\x7d\xea\xc7\x2f\ \xd1\x87\x1e\xf8\x73\xda\xf5\xa7\x7f\x42\xd7\x3c\xfb\x5f\x34\x99\ \x1d\xa1\xf7\x5f\x7e\xb5\xcb\x15\x70\x3d\x72\xe7\xfa\xf5\x9b\xd6\ \x6a\x01\x02\xf0\x8e\x3b\xce\xac\x3e\x18\xe1\x5a\xa0\xc6\x47\xe4\ \x99\x41\xf6\x95\x76\x0b\x10\xf0\xff\x6d\x5b\xa9\x7c\xe8\x10\x79\ \xbe\xaf\x49\x2c\x9b\xb5\x83\xcf\xcf\x7e\xf3\xeb\xc4\xed\xc3\x5f\ \xbd\x87\x5c\x37\x14\xa0\x4f\x52\xbd\x93\x04\xd9\xf1\x4f\x7e\x92\ \xaa\xa5\x32\x79\xae\x4b\x55\xa4\xdd\xf3\x6e\xb9\x85\x16\x1e\x7b\ \x98\x0e\xbe\xfe\xc6\x32\x99\x83\x85\x0a\xfd\xec\xea\x8f\x53\xe9\ \xbe\xaf\x92\x3c\x7e\x8c\xa6\xf6\xef\xa7\x2d\xd3\x93\xe4\xdf\x73\ \x37\xbd\xf9\xb5\xaf\x93\x6f\x9a\x7a\xf1\x6d\x41\x71\x5d\x22\xb1\ \x6f\xad\x7f\x1a\x93\xcd\x2d\x71\xd5\x05\xe2\x52\xa6\x6b\x58\x54\ \x06\x0b\x75\x0a\x4b\x2a\x15\x7a\x22\x68\x2b\x03\xc7\x90\xfe\xaa\ \x47\xdf\x57\xd6\x80\xd6\x7e\x26\x80\xf6\xb3\x67\x7f\x44\xd3\x48\ \x8f\x9c\xca\xf6\xdd\x75\x17\xbd\xf9\x8d\x6f\x90\x84\x4b\x79\x20\ \x22\x2f\xba\x88\xae\x7c\xe8\x21\xda\x7b\xe3\x8d\x94\x3b\x70\x80\ \x86\x51\xe1\x89\x27\xbf\x47\x2f\x3e\xf1\x14\xb9\x76\xac\xad\xbc\ \x3d\x58\xf7\xe8\xc8\x63\x8f\xd3\xc8\xb7\x1e\x26\x5b\x08\x95\x02\ \x17\xe3\x49\x68\xda\xea\x8a\x0b\x7a\x6c\x87\x99\xe0\x9f\x01\xd9\ \x4b\x00\xdd\xc5\x10\x6a\x81\xb4\x10\x69\xce\x04\x93\xe7\x9f\x87\ \x5a\x60\x89\x62\x48\x4f\x75\xc4\x04\xdd\x1a\x8d\x3a\x4d\x5e\xf3\ \x5b\x34\xff\xfa\xeb\x54\xc4\xbe\x61\xa8\xb9\x17\x90\xa1\x10\x54\ \xae\xbf\xf0\xa1\xaf\x91\x09\xed\x96\x9f\x7d\x86\x26\x93\x71\xca\ \xde\x74\x03\xfd\xcf\x93\x4f\x51\xee\xa1\x07\xe8\xc4\x1f\xfd\x21\ \x65\xb0\x75\x8e\x65\xd2\xe4\x97\x2b\xf4\xf6\x99\x59\xca\xc7\x07\ \xc8\x67\xf2\x11\x21\x2d\x04\x95\x25\xe6\x70\xbf\x93\x28\xb0\xe2\ \x1c\x59\x96\xca\x04\x6b\xb6\x80\xa6\x00\xb8\x16\x98\xe4\x6d\xf1\ \xae\x5d\x3b\x69\xfe\xf8\x49\x8a\x83\xa0\xc0\xde\x80\xdb\x10\x0a\ \x94\x4b\x60\xae\xe9\xc1\x0c\xc5\x21\xa0\x8f\x3f\xf8\x00\xbd\xfc\ \x95\xbb\x49\xb6\x1e\x93\xc3\x75\xe6\x6f\xbd\x99\x8e\xc1\x35\x1a\ \x56\x4c\x11\xf0\x0d\x43\xf5\xa7\xf8\xbe\x95\x20\xca\x17\x49\x02\ \xdc\x64\x22\x15\x2d\x7e\x05\x82\xd4\x83\x78\xe7\x9c\x85\xb3\x81\ \x66\x20\x14\x12\x6d\x2d\x16\xe0\x56\x5b\x6a\x81\x61\x90\x3c\x82\ \xa8\x3c\x9e\x5d\x4f\xf4\xee\x3b\x61\x9e\x7d\xfb\x4d\x3a\xf5\xd9\ \xeb\xe8\x10\x4c\xdf\x33\x2d\xf2\x2d\x8b\x84\x1d\x6f\x3b\x30\xf4\ \xd0\x1f\x89\x0d\x10\xd9\xd1\x66\x08\x2d\x1c\xb7\x12\x5b\x85\x24\ \xad\x4e\x94\x5b\x4f\x4b\x00\xf1\x2d\x9f\x1a\x19\x49\x7f\xbf\x50\ \x28\xf6\x0a\x82\x51\x2d\x10\x15\x43\x8b\x3a\x13\x70\x2a\x2c\xcf\ \x87\xa9\xd0\xf0\xc2\x8d\xca\xbc\xe3\xd1\xfb\x20\x37\x8b\x0a\x2e\ \x1f\x4b\x50\xd1\xb4\x5b\xff\xd5\x46\x74\x4c\xa6\x7b\x29\xdb\x76\ \x6c\xa2\x63\x8c\x45\x33\x74\x00\xeb\x0e\x6a\x8c\xee\x0a\xb0\xbd\ \x28\xd2\xcf\x46\x73\x26\x4a\xe2\x3d\x6b\x75\x01\x7d\x30\xb2\x5c\ \x0b\x38\x5c\x0b\x14\x8b\x64\x73\x7d\xce\xa9\x90\xba\x1b\x18\xb6\ \x7e\x64\xf5\x71\xb7\x06\x3b\xe7\xba\xdd\xa0\xb7\xd6\xf5\x7c\xd7\ \xb5\x1d\x8f\x73\x20\x7c\x11\xe8\xe1\x02\x1d\xe7\x02\x8b\x41\x90\ \xd3\x02\xa8\x54\x6b\x61\x2a\x5c\xb7\x8e\x4c\xbd\xb7\x5f\xa1\xc9\ \xce\xeb\xd5\x84\xd0\x69\xe2\x9d\xcf\xf7\x70\x83\x68\xae\xb7\x1b\ \x20\x0e\xb0\x00\x8c\xb5\x58\x80\x00\xbc\x13\xa8\x05\xd0\x87\x9b\ \x17\xd4\x02\x75\xd4\xfa\x6e\xa9\x44\x16\x6f\x8a\x5c\xb7\x9b\x70\ \x2f\xad\x1b\xc6\x2a\x82\xe9\xd6\x78\x37\xf1\xfe\x83\x22\x22\x60\ \x5b\x20\xec\x21\x80\xc8\x0d\x4e\xe3\x60\xc4\x97\xd2\x8f\x49\x69\ \x73\x2d\xb0\x1e\x1b\x9e\x06\xbb\x01\xb6\xab\x62\x61\xa1\xb7\xf6\ \x99\x70\xff\x6e\x10\x8d\x7b\xb9\x41\x8f\xe7\x41\x5c\x95\xc4\x3d\ \x83\xe0\x4a\xbb\x42\x6c\x41\x8b\x3a\x13\x6c\xda\x79\x3e\x55\x51\ \xbe\x26\xb2\x59\x0e\x34\x5d\x90\x8c\xd6\x6b\xa2\x5e\x41\x6f\xd5\ \xe0\x26\xa3\xfb\xd1\x35\xa3\xc7\x0e\xb0\x2b\x28\xe2\x1a\x02\x18\ \xbc\x6d\x62\x62\xf3\x1a\x04\x10\x05\xc2\xba\x10\x8b\xfa\x88\xfc\ \x5c\xe4\xfa\x2a\x34\x9f\x58\xbf\x5e\x9f\xf9\x77\x47\xeb\xce\xb9\ \x55\x48\xa9\x7e\x35\x01\x75\x13\x8f\xc6\x2d\xef\x8a\x1e\x31\x80\ \x5a\x2c\x70\xd0\xb6\xf7\xaf\x49\x00\xda\x02\x50\x0b\x2c\xc1\x6d\ \x54\x0d\x9f\x42\x55\x57\x99\x9f\x57\x81\x90\x84\x68\x27\xbd\x1a\ \x71\x4d\xb8\x9d\xd4\x4a\x7d\xf4\xdc\x5a\xac\x81\xe7\x7a\x90\xe7\ \x16\x37\x0c\x15\x08\x7b\x06\x41\x89\xc6\xc1\x42\x97\xc3\x95\xd6\ \x73\x81\x7c\x3e\x4c\x85\xd8\x17\x18\x52\xf2\xa2\xd6\x16\x08\xf5\ \xb8\x67\x36\xe8\x5d\x10\x51\x0f\xad\x77\x36\xcc\xee\x69\x2a\x5b\ \x9c\x75\x10\x04\xdc\x12\x04\xa0\x8b\x21\xa7\x50\xa0\x7a\xa5\xc2\ \x16\xa0\xbf\xd4\x3b\x10\x76\x8d\x35\xe9\xde\xd9\xa0\x37\xf1\x6e\ \x61\xea\xac\x85\x8d\x9c\x82\x0f\x38\xbe\x2f\xc8\x34\xe7\xf8\x09\ \x6e\x12\xad\xa7\x00\x74\x2d\x50\x68\xad\x05\x2a\x55\xaa\x3b\x0e\ \x79\xd5\xaa\x3a\x29\x16\x98\xa3\x5e\xda\xd7\x56\xd2\xcb\x12\x7a\ \xa4\x41\x5d\x56\x2b\x62\xf8\x5d\x0f\xbd\x27\x84\xf4\xd9\x5a\x13\ \x89\xc0\x1a\x48\x0a\x3b\x95\x96\xf6\xf0\x90\x4c\x8e\x8e\xd1\xe0\ \xe4\x84\x1c\x9d\xde\x44\x53\xbb\x76\xc8\xbf\xb8\xf3\xcb\xd7\xfd\ \xdb\xbb\xef\xbe\xdc\xb3\x0e\x58\xf1\x60\xc4\xf3\xe6\x5a\x6b\x01\ \xe5\x17\x70\x83\x18\x52\xa1\x5c\x5a\xea\x26\xdd\x87\x1b\xb8\x4d\ \x8d\x79\x00\xf7\x0e\x88\x41\x63\x81\x88\xc7\x03\x23\x91\x10\x46\ \x26\xc3\xff\x78\x52\x9d\x1d\x0c\x8c\x8f\xcb\xd1\xc9\x49\x63\x64\ \x7a\xda\x1e\x99\x18\xb7\x6d\x3b\x66\x99\xf8\x9f\x6d\xd9\x14\x8b\ \xc5\xc8\xb6\x2d\xf4\x71\xe2\xeb\x64\x32\x49\x43\x58\xe7\x79\x93\ \x93\x15\x08\xa0\xce\x9c\x7a\xd4\x01\xdd\x81\xf0\x78\xa3\x31\x2b\ \xf0\x8e\xfe\x23\xc9\xe4\xf6\x19\x6a\xa0\x18\x4a\x8e\x8d\x91\x80\ \x00\x56\x7b\x11\xef\x68\x2d\x69\x73\x64\x0d\x0a\x11\x12\x63\xad\ \x09\x99\x4a\x49\x2b\x93\x31\x6c\xa4\xd5\x01\x6c\x89\x33\xe3\xe3\ \xe6\xf0\xf4\x94\x99\xc9\x66\x6d\x32\xd4\xc6\xc2\xe6\xe5\x5a\x96\ \x45\x71\x45\x0e\x24\xe3\x71\x35\x8e\x27\xb8\x8f\x87\xa4\x63\x98\ \xb7\x63\xfc\x9c\x7a\x06\x02\x61\x01\xa8\x67\xd2\xa9\x34\xed\x3f\ \x77\x52\xe9\xad\x67\x29\xbc\xd2\xae\x10\x59\xa0\x02\x12\x15\x14\ \x43\x19\x95\x0a\x77\xec\xc0\xb6\xf8\xb8\x0a\xa7\x8b\xb5\x5a\xe8\ \x67\x78\x36\xb0\xac\x40\xc4\x62\x42\x26\x12\x52\x0e\x0c\x48\x99\ \xce\x20\x58\x8e\xc9\xc4\x86\x73\xcc\xd4\xf8\x46\x63\xdd\xe4\xa4\ \x3d\x38\x3a\x66\x41\x55\x26\x2f\xce\x34\x94\x43\x92\xc9\x8b\x06\ \x4c\x1e\x9b\x26\x19\x80\x26\x8c\x7b\x21\x69\xc0\x62\xe0\x1e\xae\ \x19\xea\x59\x0d\x7d\xe4\x87\x79\x7e\x57\x83\x05\xa4\xe6\x26\x92\ \x99\x18\x6e\xf7\xda\x0e\xaf\x9e\x0a\xf9\x8f\x24\x49\x21\x32\xae\ \xe3\xd1\xb6\xa9\x29\xf9\xea\xf1\x13\x1e\xcd\xcc\x48\xfb\xe2\x0f\ \x1b\xa3\x9b\x36\xd9\x03\x83\x83\x26\x7e\xc8\xd4\x0b\x64\xad\x60\ \xac\x34\x80\x59\xb2\x15\x19\x73\xf9\xf8\x1b\xd4\x31\x0e\x78\xcc\ \x8b\x57\xe0\xb5\x99\xfc\x0e\x34\x0c\xe8\x39\x75\xf8\xc9\x82\x37\ \x00\x7c\x97\x63\x11\xf7\xfc\x0c\x93\x0c\x85\xd8\xfc\x5d\x34\xbe\ \xd6\xd9\x2c\xdc\xc5\xd6\xeb\x6e\xcc\x94\xa9\x35\x9c\x08\x75\x67\ \x82\x1a\x8a\xa1\x11\x29\xa7\x38\xf2\x9f\x29\x14\xbc\x89\xcf\x7d\ \x1e\xe7\x22\x23\x94\x49\xa7\x40\x32\xc1\x0b\x51\x84\x41\x45\xbd\ \x26\x98\x8c\x8e\xe2\x18\xa3\x0f\x17\x69\x59\xbc\x78\x8c\x2d\x40\ \x11\x6c\x03\x04\xa2\xc7\x9a\x84\x7a\x3e\x11\x5a\x85\x26\xac\x35\ \xdd\x9a\xba\x59\x30\x3c\xd7\xf6\x0d\xbe\xae\x17\x8b\x65\xcb\x13\ \x99\x35\x6c\x87\xa3\x5a\x40\x5b\x40\xa5\x79\x2e\xb0\x1e\x01\xe5\ \xe4\x9e\x7d\xd6\xa6\xe9\x69\xca\x8e\x8d\x92\xdd\xd4\x34\xb1\x16\ \x0c\x93\x3b\x6d\xaa\x9a\x44\x44\x8e\x11\x04\xbc\xd0\x30\xa5\x3a\ \x2e\x6b\x57\x2f\x58\x43\x9b\x34\xa3\x6d\x8e\xdf\xd1\x42\x40\x6b\ \x8e\xb5\x40\x57\x2e\xf3\xf9\xdb\x8d\x7c\xbe\x4a\xc2\x4f\xb3\x71\ \xf4\x6b\x01\x2c\x00\xb5\xf3\x09\x3c\x4f\x66\xa6\xa7\x51\x06\x8c\ \xd0\xf0\xf0\x30\xff\x78\xf3\xbb\xa1\xf6\x74\xbd\x00\x62\x7a\xcc\ \xe0\x7b\x0a\xda\x2c\xd1\xba\xc9\x47\xd0\x1a\xe6\xbe\x6d\x0c\xa2\ \xda\x0a\xf8\xdd\xd0\xc4\x9b\xbb\x52\xad\x71\xfd\x8c\x16\x4a\xe5\ \xf4\xa9\x1a\x1e\x4c\xaf\xc1\x02\xba\x53\x61\xc9\xf7\x95\x00\x6a\ \xae\x1b\x0c\x25\x93\x76\x22\x9e\x20\x5d\x1b\x60\x31\x6d\x64\xb5\ \x00\x22\xd2\x91\x70\xb4\x56\x5b\x7d\x94\x7b\x4d\x46\x2f\x5e\x9b\ \xb4\xe3\x38\xfa\x0f\x20\xda\xf4\xbb\x02\x1d\xe6\x75\x1c\x50\xdf\ \xd1\xef\xeb\x00\xb9\xf8\xea\x2b\x0d\xc3\xf3\xfa\xb6\x00\xd1\xfc\ \x17\x23\x73\xfc\xb6\x67\xdb\x42\xfd\xa8\x69\x68\xcd\x6a\xad\x69\ \x82\xda\x2c\x79\xac\x89\x30\xb4\x50\x34\xda\xde\xd1\x66\xaf\xef\ \xe9\x6b\xf4\xfa\x5b\x3c\xcf\xdf\x60\x8d\xab\xf9\x0c\x6a\x83\x81\ \x81\x01\x95\xeb\x13\xcd\x38\xd4\xd9\x1a\xa5\x62\xc3\x39\x72\x78\ \xc4\xf5\x7c\xd9\x87\x05\x44\xa9\x10\x07\x23\x67\x78\x11\x3e\x56\ \x8d\x42\x43\x93\xd3\xd2\xd7\x5a\xd4\xda\xd7\x64\x3b\x03\x9b\x16\ \x4e\x9b\x26\x75\xd3\x04\xb5\xf6\xf4\xb3\x3a\x23\x74\xb6\x72\x3e\ \xef\xce\xbe\xf3\x4e\x3d\x7f\xf4\xa8\x53\x3a\x79\xc2\xaf\x9e\x99\ \x95\x41\xa1\x60\x58\x8d\xba\x3d\x20\x45\x7c\xc8\x8e\xa5\x32\xa9\ \x64\x32\x96\x88\x0f\xbf\x9e\x5b\xfc\xd7\x3e\xb2\x40\x94\x0a\x4f\ \x39\xce\x82\x90\x92\x3d\x3b\xd0\x8b\x6e\xd5\xa8\x16\x82\xd6\x1a\ \x34\xd2\xb5\x68\x5c\x6b\xb4\xa5\xaf\xd6\xc6\xef\x71\x2b\xe6\x72\ \xce\xe9\x23\x47\xea\x0b\x47\x8e\xb8\x85\xe3\xc7\xfd\xf2\xe9\xd3\ \xd2\x59\x58\x30\xfc\x62\xd1\x36\x1a\x8d\x44\xdc\xf7\x53\xb6\x69\ \xc6\xf1\x8d\xb8\x0a\x90\x86\x51\x0b\x4c\xa3\xe4\x1a\x0a\x05\x60\ \x09\xa2\x9c\x43\xd1\x75\xe8\xe9\xd3\xb3\x4f\xbe\x9d\xcf\x1f\xeb\ \x57\x00\x3a\x13\x34\xea\xbe\x5f\xf2\xa4\x8c\x6b\x72\xda\x84\x5b\ \xcd\x55\x43\x13\x5d\xa9\x15\x66\x67\x9d\x1c\xc8\x2d\x1d\x3b\xe6\ \x2c\x1e\x3d\xea\x57\x67\x67\x79\x97\xb9\x4c\x2e\x21\x44\xca\x84\ \x2c\x08\xc0\xef\x35\x1c\x29\x4b\x7c\x28\x83\x5a\xa4\x58\xc7\xd6\ \x9c\xff\x0d\x63\x59\x88\x7c\x01\x9b\xb4\x3c\x14\x73\xd4\x75\xe7\ \x30\x5f\x67\x57\x65\xe8\xcc\x05\xd4\x80\x02\x50\x0c\xe7\xfb\x17\ \x80\x0b\xd4\x71\x40\x7a\x6c\x7c\x71\x71\x47\x12\x02\xb0\x59\x83\ \xb6\xdd\x45\x12\xe4\x1a\xb9\x43\x87\xea\x79\x90\xc3\x5f\x7f\x83\ \x0a\x6b\x0e\xe4\x44\xa9\x14\x53\x9a\x13\x22\xcd\xe4\x02\x64\xd9\ \x86\x10\x7e\x43\xca\x4a\x93\x9c\x22\x56\xf1\xfd\x7c\x11\xc4\x16\ \x7c\x3f\x87\x12\x7c\x1e\x3b\xd1\x32\x13\xea\x20\xc7\xf0\x5b\x10\ \xb4\xf7\x7a\x1c\x3d\xab\xab\xc0\x1e\x02\x58\xb5\x16\x70\x80\xd2\ \x7b\x8d\xc6\x4b\x9b\x97\x96\xf6\xbe\xf4\xe0\x83\x8b\x89\x7a\xd5\ \x3c\x35\x9f\xaf\xe1\x80\x54\x82\x9c\x6d\x36\x1a\xc9\x18\x8a\x5f\ \xfe\x16\x6f\x64\x80\x3a\xff\x59\xad\x2e\x65\xa1\xe6\xfb\x4b\x15\ \x68\xac\xe8\x79\x0b\x8b\x38\x66\x3f\x89\xcd\xd5\x82\xeb\x96\x34\ \xa1\x3e\x88\x31\x04\x20\xcf\x06\xdc\xfa\xfe\xbf\xce\x42\x00\x26\ \x85\xe6\xb8\x11\x52\xda\x7e\xf3\xe4\xe4\x1f\x6f\x4c\x26\x77\xa7\ \xd2\x29\xff\x8d\xb9\xdc\x4f\xaa\xa8\x0f\x4a\x40\x1e\xc4\x70\x80\ \x9a\x3b\xe3\xba\x8b\xdd\xa4\x80\xde\xa4\xb8\x17\x8c\x1e\xe4\x28\ \x1a\x77\xb7\xd5\xc8\xf6\x2b\x00\x2d\x04\x1b\x5d\x1a\x18\x05\x86\ \x81\x18\x20\xce\x46\x5b\x6b\xd4\x18\x7d\x30\xc4\x3e\x78\x01\x18\ \xe8\x2c\x26\xde\x84\xa1\x6b\x84\x5f\x2e\x62\xfd\xb7\xff\x05\xc7\ \xfd\xe7\xdb\x23\x5d\x13\x38\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x20\x1c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\ \x1b\xaf\x01\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xd7\x08\x12\x14\x39\x28\x29\x91\x7c\x0e\x00\x00\x1f\xa9\x49\x44\ \x41\x54\x78\xda\xe5\x9b\x09\xb0\x5c\x57\x99\xdf\xff\xb7\xf7\xbd\ \x5f\xbf\xfd\xe9\xe9\x3d\x49\xd6\x2e\xd9\xda\x2c\x79\xc1\x78\xc0\ \x76\x42\x81\xc1\x03\x64\x0c\x13\x1c\x42\x65\x02\x4e\xb1\x84\x78\ \x5c\xc5\x14\x55\x49\x2a\x54\x48\x05\x2a\x03\xc3\x14\x03\x55\x33\ \x13\x43\x2a\xae\x21\x9e\x01\x26\x05\x43\x80\xd8\xb2\x0d\x78\xc3\ \x96\x25\x6b\xb1\xf5\xb4\x3d\x6b\x7d\xd2\xdb\xb7\xde\xb7\xdb\xb7\ \xf3\x3b\xa7\xbb\x35\x12\x1a\x0a\x18\xb0\x81\x4a\xcb\x9f\xcf\xed\ \xbb\x9c\x77\xbe\xed\xff\x2d\xf7\xb4\xfe\x7f\xff\x38\xaf\xe7\xdf\ \x59\xb3\x66\x8d\xaf\xab\xab\xcb\xd7\xdb\xdb\x6b\x29\x91\x48\x38\ \xd5\x6a\x55\xb9\x5c\xce\x5b\x58\x58\xf0\x96\x97\x97\xbd\x0b\x17\ \x2e\x78\xd9\x6c\xb6\x29\x09\xfa\x2d\x16\x40\x24\x12\xf1\x6d\xdd\ \xba\x35\xb0\x7b\xf7\xee\xf8\xdd\x77\xdf\xbd\xb5\xaf\xaf\x6f\x67\ \x34\x1a\x5d\xcf\xf9\x75\x7e\xbf\xbf\xd7\x71\x9c\x04\x14\x6f\xf2\ \x69\x34\x1a\x05\x43\x08\x63\xa6\x5c\x2e\x9f\x2a\x16\x8b\xe3\xd3\ \xd3\xd3\xfb\xbf\xfd\xed\x6f\x9f\x3c\x70\xe0\x40\x0d\xa1\x34\x8c\ \x40\x7e\x1b\x04\xe0\x6c\xda\xb4\x29\x74\xef\xbd\xf7\xf6\xbe\xf5\ \xad\x6f\xbd\x07\x2d\xbf\x3d\x16\x8b\xdd\x1c\x0e\x87\xfb\x60\x5a\ \xf0\x2a\xd7\x75\x2d\xc1\xb0\x3c\xcf\xb3\x0f\xf9\x7c\x3e\x4b\xc1\ \x60\x50\xdc\x67\xcf\x57\x2a\x15\x15\x0a\x85\x49\xac\xe1\xd9\xa9\ \xa9\xa9\x6f\x3d\xca\xe7\x5b\xdf\xfa\x56\xde\x58\xca\xaf\x52\x18\ \xce\xaf\x4a\xdb\xd7\x5f\x7f\x7d\xf4\x13\x9f\xf8\xc4\xae\x6d\xdb\ \xb6\x7d\x34\x9d\x4e\xdf\x0d\xd3\x29\xc3\x08\x1a\x15\x1a\x55\xa9\ \x54\x52\x15\xa6\x6a\xb5\x9a\xdc\x7a\xbd\x25\x00\x08\xa1\x40\xad\ \x95\xc0\xbc\x15\x42\x38\x1a\x55\x2a\x95\xb2\x14\xe5\xb8\xce\xfd\ \x8b\x8b\x8b\xf3\x33\x33\x33\xff\x7b\x6c\x6c\xec\xcf\x3e\xf7\xb9\ \xcf\x8d\x4f\x4e\x4e\xba\x46\x10\xbf\x6e\x01\x38\x1b\x37\x6e\x8c\ \x7e\xfa\xd3\x9f\xbe\x79\xc7\x8e\x1d\x7f\x94\xc9\x64\xde\xe2\xe7\ \x03\xd3\xc6\xaf\x55\x2c\x14\x54\xe1\xd8\x50\x15\x2a\x23\x04\xc8\ \x0a\xa2\x8e\x20\x1a\x58\x82\xe1\xde\xe7\x38\xf2\x07\x02\x0a\x05\ \x43\x0a\x86\x42\x0a\x84\x43\xf2\x9b\x63\xc6\x68\x3c\xae\x9e\xbe\ \x3e\xf5\x41\x21\xae\x2d\x2d\x2d\xd5\x2f\x5d\xba\xf4\xcd\x23\x47\ \x8e\x7c\x96\xbf\x7b\x22\x9f\xcf\xbb\xbf\x16\x01\xa0\x9d\xe0\x87\ \x3f\xfc\xe1\x91\xf7\xbf\xff\xfd\xff\x7e\x68\x68\xe8\x03\x98\x70\ \x10\x4d\x5b\xc6\x4b\x30\x6e\x28\xbb\xbc\xac\x85\xb9\x79\xcd\xce\ \xcd\x6a\x6e\x76\x56\x4b\x8b\x4b\xca\xe6\xb2\xd6\x1a\x3a\x02\xf0\ \x49\x0a\xfa\xfc\x8a\x84\x82\x4a\x18\xcd\x27\x12\xea\x4a\xa7\xd5\ \x95\xe9\x56\x2a\xd3\xa5\x68\x2a\xad\x50\x22\xae\x70\x2c\xa6\x6e\ \x84\x30\xbc\x72\xa5\x62\x1c\xcf\xce\xce\x96\xcf\x9c\x39\xf3\xc5\ \x6f\x7c\xe3\x1b\x9f\xfb\xfa\xd7\xbf\xbe\x2c\xc9\x7b\xbd\x04\xe0\ \x8c\x8e\x8e\xc6\xbe\xf4\xa5\x2f\xbd\x63\xcf\x9e\x3d\x7f\x8a\x89\ \x0e\x5d\xd6\x78\x3e\xaf\x1c\x4c\x4f\x4f\x4d\xe9\xfc\xb9\xf3\x3a\ \x73\xf6\x8c\x26\x26\x26\x34\x03\xf3\xf8\x72\x87\x71\x6b\xfa\xc2\ \x3d\x1c\xa3\x7d\x49\x01\xc7\xa7\x00\x18\x10\x0a\xf8\x15\x45\xcb\ \x89\x48\x54\x19\xcc\xbf\xaf\xa7\x5b\x83\x83\x83\xea\x5f\xb1\x42\ \xe9\x81\x01\x45\x33\x19\x85\xcd\x79\xce\xad\x5a\xb5\x4a\xc2\x72\ \xce\x9d\x3b\xf7\xea\xc1\x83\x07\xff\xf5\x27\x3f\xf9\xc9\xe7\x5d\ \x3e\xaf\xb5\x00\x7c\xb7\xdc\x72\x4b\xf7\x97\xbf\xfc\xe5\xff\x40\ \x48\xfb\xb7\x66\xed\x98\xa0\x0a\x50\x76\x71\x51\x13\x17\x2e\xe8\ \xc4\xf1\x13\x1a\x3b\x7e\x4c\x68\xc7\x32\x5e\x2e\x96\xd4\xdb\xdb\ \xa3\x95\x2b\x86\xd5\xc7\xd8\xdd\xd5\xa5\x58\x24\xa2\x30\xbe\xde\ \x6c\x78\x06\x0f\xb8\xa7\xa0\x02\x02\x5c\x5a\x58\xd0\xfc\xf4\x0c\ \x34\x8d\x60\x9a\x8a\xe0\x06\x29\x5c\xa0\xbf\xa7\x47\x2b\x56\x0e\ \x6b\xc5\xea\xd5\xca\x8c\x8c\x2a\xda\xdb\xab\x38\xc2\x19\xe5\x7b\ \x5f\x7f\xbf\xc0\x86\x2a\xd8\xf0\x1f\x1f\x7c\xf0\xc1\x2f\xe3\x22\ \x95\xd7\x4a\x00\xfe\xb7\xbf\xfd\xed\x2b\x3e\xff\xf9\xcf\xff\x05\ \x5a\xb9\x1b\x60\xb2\x8c\xe7\xd0\xec\xe4\xc5\x8b\x3a\xfa\xca\x2b\ \x3a\xf0\xd2\x4b\x3a\x7e\xf2\xa4\x66\xa6\xa6\xf1\xd9\x5e\x6d\xdb\ \xba\x55\x9b\x37\x6d\x52\x22\x1c\x91\xaf\xe9\xc9\xef\xb5\xc8\x31\ \x04\xf3\x62\x84\xac\x45\x34\x0c\x71\xec\x72\x5f\xb5\x5a\xb3\x73\ \x9e\x3e\x76\x4c\x0b\x08\xd1\x80\x63\x12\xb3\xef\x87\xf1\x95\x30\ \xbd\x62\xfd\x7a\xa5\x56\x8d\x2a\xc2\xf7\x01\x5c\x62\xf5\x75\xd7\ \x59\xa0\x45\x08\x5f\xf9\xd4\xa7\x3e\xf5\xe0\xc9\x93\x27\x8b\x3f\ \x2f\x40\xfa\x7f\x5e\xe6\x3f\xf0\x81\x0f\xac\xf9\xcc\x67\x3e\xf3\ \x48\x7f\x7f\xff\x9d\x26\x44\xe5\xdb\x1a\x3b\x31\x36\xa6\x1f\xfe\ \xf0\x87\x7a\xe2\x07\x3f\xd0\xcb\x2f\xbf\xac\x01\x16\xf5\xce\x77\ \xdc\xa3\xbb\x6e\xbf\x5d\xd7\xa1\xf5\x0c\xbe\x9d\xc4\x54\xd3\x6a\ \x51\xaa\x43\x9c\x4b\x4a\x4a\x74\x88\x73\x71\xc6\x18\x6e\x11\xe7\ \x5a\x6f\x32\xa5\x75\x1b\xd6\x69\x04\x06\x6b\x08\xb9\xb0\xb0\xa8\ \x12\x02\x2f\xf2\x37\x6b\x4b\x4b\xf2\x55\xaa\x0a\x20\x98\x4a\xdd\ \x55\xae\x84\x95\x81\x0f\x03\x03\x03\xbb\x6e\xb8\xe1\x86\xad\x58\ \xc4\x63\xe7\xcf\x9f\xaf\xfe\xaa\x04\xe0\xbf\xf3\xce\x3b\x57\x7e\ \xf6\xb3\x9f\xfd\x5f\xc4\xf5\x5b\x0d\x8a\x1b\xb3\x9f\xc3\x4c\x5f\ \xda\x7f\x40\x8f\x3d\xbe\x57\xcf\x3e\xfb\xac\x5c\x7c\xfb\xbd\xbf\ \xf7\x7b\xba\xe3\x8d\x6f\xd4\x20\xc0\x95\xc2\xa7\xd3\x4e\x87\xe9\ \x0e\xb3\x0e\x0c\xc2\xa4\xa4\xa8\x31\xf1\x26\x24\x99\x11\xe2\x9c\ \x19\xa1\x98\xbd\xc6\x79\xac\x22\x01\x26\x5c\xb7\x6e\xbd\xba\x01\ \xc4\xfc\xf4\x94\xaa\x68\xba\x9c\xcb\xab\xba\xbc\x24\x87\xb5\x84\ \x88\x1e\x0d\x9f\xa3\x3c\xc7\x19\x5c\x05\x21\x6c\x02\xa3\x36\xee\ \xdb\xb7\xef\xbb\xe0\x52\xfd\x97\x15\x80\x8f\x30\xd7\xff\xd0\x43\ \x0f\x7d\x85\x89\xef\x00\xc4\xac\xd9\x4f\x5d\xba\xa4\xe7\x9f\x7f\ \x5e\xff\xf7\xb1\x47\x75\xe8\xe0\x41\xed\xda\xb1\x43\xff\xfc\xde\ \x7b\xb5\xb2\xa7\x57\xe9\x0e\xe3\x57\x68\x38\x0a\x85\x61\x0c\xaf\ \x57\x00\xc6\x02\x8c\xfe\xa6\x20\x46\xaf\x75\xec\x33\xc7\xf6\xba\ \x21\x29\xc8\x18\x16\xe4\xf1\x9c\x5b\x07\x3b\x12\x1a\xc1\x22\xaa\ \x33\x73\xaa\xb1\x86\x5a\x89\xd0\x4a\x44\xb1\x42\xf0\x33\x23\x96\ \x96\x03\x8c\xbb\x00\x4a\x42\xe6\x26\xb2\xd0\x81\xef\x7f\xff\xfb\ \x8f\xe3\x5a\xee\x3f\x56\x00\x0e\x79\x7b\xea\xe1\x87\x1f\xfe\xcf\ \x6b\xd7\xae\xbd\x8f\x58\x6e\x32\x33\x4d\xc3\xfc\x8f\x9f\x7b\x4e\ \x8f\xed\xdd\xab\xb3\xa7\x4f\xeb\xdd\xef\x7c\xa7\x6e\xdb\xbd\x47\ \x5d\x80\x5a\x86\x85\x74\x18\x8f\x59\xa6\x61\xb6\xcd\xa4\x45\x7c\ \x33\x1a\xbf\x6f\x42\x1c\x37\x6d\x24\x68\x8d\x6a\x9f\x77\xec\xbd\ \x8c\x1d\xe1\x58\x30\x6c\x32\x59\xdd\x5a\xcf\xf0\x9a\x0d\x6a\x10\ \x4e\xdd\x42\x8e\x30\x5a\x53\x3d\x57\x40\x08\x65\x2c\x21\x88\xa4\ \x23\x2a\xd6\x6a\xd6\x1d\x58\xfb\x2e\x92\xb3\x65\x84\xb0\x5f\xcc\ \xfe\x0b\x0b\x80\xb8\x1e\xf9\xc2\x17\xbe\x70\xef\x6d\xb7\xdd\xf6\ \x5f\x00\x3c\x1f\xcc\x5b\xb3\x7f\xe1\xf9\x17\xb4\xf7\xf1\xc7\x75\ \x11\xc4\xbf\xef\xf7\x7f\x5f\x1b\x09\x47\x5d\xf8\x62\x06\xcd\xe3\ \xd7\x76\x91\x21\x18\x68\x69\xb5\xcd\x58\x9b\xa9\xa6\x65\x9a\xb1\ \x7d\xac\xf6\xb1\xda\xc7\xba\xea\xd8\x8e\xac\xc3\x53\x20\x0d\x40\ \x3a\x9e\x42\x45\xc9\x29\xd7\x35\xb4\xf6\x3a\x35\x96\xc1\x02\x37\ \x27\xa7\xee\x22\x84\xa2\xfc\x60\x42\x08\xb0\x6d\x1a\x21\x10\x0d\ \x07\x08\x95\xe4\x0b\xbf\x43\x8e\xf2\x14\x2e\x3a\x21\x66\xfc\x45\ \x04\xe0\xa7\x80\xd9\xf4\x91\x8f\x7c\xe4\xaf\x40\xe0\xa4\xc9\xe8\ \x96\x09\x73\x07\x0f\x1c\x40\xf3\x8f\xeb\x3c\x21\xce\x30\xbf\x66\ \x60\x00\xcd\xfb\xd4\xed\xf7\x29\xe9\x39\xd6\x7f\x03\x2d\x2d\x42\ \xad\x58\xaf\x0e\xa3\x57\x33\x79\x95\x15\xa8\x6d\x05\x96\x38\xee\ \x8c\x1c\x28\x18\xa7\x2e\xe8\x8a\x28\x56\x73\xe5\xe5\x4c\xf4\x80\ \x88\x40\xfd\x6b\x56\x03\x86\x17\xb9\xa7\x2a\xaf\x84\x80\x8a\x65\ \xf9\x39\x1f\x8a\xc7\xd4\x20\xcc\xba\x92\x86\x56\xac\x08\x90\xa7\ \xdc\x76\xe2\xc4\x89\x47\x00\xc6\xf2\xcf\x2d\x00\x24\xd7\xf5\xc5\ \x2f\x7e\xf1\xb3\x84\xbb\x5b\x08\x2f\x36\xc1\x39\x41\x48\x7a\xfc\ \x89\x27\x34\x06\xd2\xbf\xfb\x77\xef\xd1\xda\xa1\x15\xea\x86\xf9\ \x54\x44\xea\x92\x8f\xe4\x25\x2e\x11\xbe\x3a\xcc\x59\x26\x1a\x10\ \x82\x40\xcb\x57\x6a\xfe\xaa\x31\x68\xb4\xe6\xba\xc4\xf7\x11\xad\ \xba\x79\x8f\xfa\xd6\xae\x55\x1f\xbe\xde\x47\xa8\xeb\xdf\xb8\x56\ \xf1\x35\xbd\x0a\xf7\xf4\x6b\xd5\x75\x5b\xd4\xbf\xe1\x06\x0d\x6e\ \xde\xac\x9e\xd1\x51\x2d\x9c\x1a\x57\xdf\x48\x9f\x16\x16\x27\x14\ \xab\x53\x64\x95\x5d\x35\x89\x4e\x01\x39\x0a\xa6\x92\xaa\x01\x9e\ \x41\x04\xd1\xc3\x07\x2b\xf0\xbe\xf7\xbd\xef\x3d\x2d\xa9\x71\x8d\ \xa5\xeb\xda\x4f\xf0\x81\x07\x1e\x78\x13\x7e\xff\x1e\xc2\x9d\xcd\ \xe3\xa7\x88\xc9\xa0\xaa\x8e\x1e\x79\x59\xb7\xec\xd9\xad\x75\xc3\ \xc3\x4a\x4b\x84\x38\xc1\x78\x40\x41\x98\x1b\x20\x16\xa7\x07\xfb\ \x5b\x0c\x37\x5a\xc4\xf1\x15\x82\xb8\x96\x12\x84\xcc\x55\x37\xed\ \x91\x83\xfb\xa8\x69\xdc\xe4\xea\xcc\xc4\xf1\xd7\x55\x27\x19\x8a\ \x45\xc3\xdc\x1f\x30\x67\x3a\xff\xc9\x2b\x57\x14\x4b\x74\x6b\x64\ \xeb\xf5\x44\x08\xbf\xe2\xc2\x32\x4c\x74\xc0\x3a\x6b\x27\x4e\xca\ \x9b\x5f\xd0\x0c\x19\x29\x25\xb7\xe0\xe5\x81\x0f\x7e\xf0\x83\x9b\ \xcd\x04\x3f\x4b\x00\x0e\xda\xcf\x50\xca\xfe\x21\x26\x18\xb0\xf1\ \x9e\xd4\x76\xec\xe8\x98\x8e\x1c\x3a\xa4\x34\xfe\x75\xeb\xce\x5d\ \x4a\x35\x05\xd8\x11\xaf\xc3\x3e\x28\x24\xc7\x6d\x58\x06\x52\x83\ \x43\x56\x83\xfc\x55\xc3\x34\x74\x25\xf3\x8d\xd6\xb1\x71\x11\x09\ \x0d\xaf\xd3\x10\x89\x12\xcc\x9b\x73\x96\x3c\xa8\xf3\x8c\xb8\xbf\ \xd1\x2c\x2b\x90\xea\x95\xcf\x0a\x51\x10\xff\xb3\xd7\x20\xc6\xfa\ \x72\x4e\xab\x6f\xbc\x49\xc9\xe1\x5e\x25\x03\xb8\x20\xcf\x08\x57\ \x75\x4f\x9f\x55\x1d\x41\xd4\xb3\x39\xcd\xce\xcc\xa8\xbb\xbb\x3b\ \x7a\xeb\xad\xb7\xfe\x91\xa4\xf0\xcf\x12\x40\xe0\x43\x1f\xfa\xd0\ \x1b\x30\x99\xdb\x0d\xf3\xb5\x72\x19\xb0\x9b\xd0\x91\xc3\x87\x34\ \x4b\x4e\xff\x4f\xde\x7c\x87\x92\x86\x51\x28\x0e\x85\x78\x9a\xe5\ \x4b\x56\xe3\xae\x65\x32\x92\x4c\x6a\x68\xcb\x66\x05\x11\x56\xc7\ \x0a\x3a\xcc\x73\xc0\xf9\x80\x86\x77\x6e\x53\x7a\x68\xa8\xe3\x16\ \x1d\x21\x5d\x1e\xbd\xf6\x33\x35\xaf\xa6\x68\xba\x5b\xf8\xc8\x35\ \x56\x64\x05\x56\xab\x2a\x46\x6a\xdd\x7b\xfd\x76\xd2\xeb\x16\x77\ \x81\x5a\x5d\x4d\xc0\xba\x81\x00\x3c\xb2\xc8\x02\x0a\x34\x25\xf8\ \xca\x95\x2b\xdf\x73\xdf\x7d\xf7\x6d\x90\xe4\xfc\x54\x01\x50\x8b\ \x27\xdf\xf6\xb6\xb7\xdd\x4f\x1d\xef\x33\x0f\xe5\xc9\xc0\xc6\x4f\ \x9e\xd0\x19\xd2\xdb\x35\xc3\x2b\xb5\xb2\x3b\xa3\x64\x87\x79\x16\ \xe4\x73\x01\xa6\x96\x6a\x34\x73\xfc\x24\x7e\x58\xb1\x4c\x53\xda\ \xe2\xab\xa4\xc0\x7d\xbd\x57\xb9\x43\x72\x20\xad\xe4\x86\x21\x85\ \x13\x21\xfb\xbd\x01\x68\x4d\x1d\x79\x45\x2e\xc2\xbe\xc6\x6d\x9a\ \x8c\x12\xf7\xa6\x25\xe6\x6b\xaa\x7e\xf9\x9a\xd7\x06\x53\x5f\x90\ \x68\x43\xe1\xd4\xbd\x79\xbb\xc2\x71\x8a\x29\x2c\x2f\x64\xc2\x2d\ \xb9\x81\x26\xa7\xe4\x52\x8c\x09\x25\x2e\x92\x3d\xd2\xa3\x08\xdd\ \x7e\xfb\xed\x1f\x35\x6c\xfe\x14\x01\xd8\xa4\x67\xd5\xf0\xf0\xf0\ \x9b\x6d\xd3\x02\x9a\x45\x92\xe3\xc7\x8f\x2b\x37\x33\xab\x3d\xdb\ \xb7\x2b\xe1\xb5\x98\x0f\x7b\x6d\x34\xae\xd4\x44\x1b\x0b\x33\x6e\ \xa8\x92\x5d\xd6\xa5\x23\x47\x54\x5e\x5a\x6a\x23\xbb\xd4\x43\xde\ \xde\x0b\x36\x38\x8e\x0f\xd7\x58\xad\xae\xf5\x83\x72\x9d\x96\x36\ \x2b\xa4\xd2\xe7\x5f\x78\x41\x59\xf2\x8a\x2b\x35\xeb\x59\x17\x60\ \x6c\x0b\xc3\x4f\x7c\x0f\xf6\xad\x92\x17\xc8\x09\x6e\x38\x57\x63\ \xee\x9a\x82\x31\x4f\x91\x95\x09\xa5\x46\x37\x2a\x3e\x30\xc2\xf7\ \xa0\x65\xc6\x2f\x59\xc5\x80\x8e\x6a\x5e\xbc\x64\xb1\xa0\x8a\x40\ \x5c\xce\x01\xea\xef\x06\x13\xd3\x3f\x4d\x00\xa1\xfb\xef\xbf\xff\ \x1e\xc2\x5e\xcc\xdc\x5c\x06\xfd\x2f\x9e\x3b\xa7\x4b\x50\x17\x68\ \xba\xb2\xaf\xcf\x32\x1f\x31\xc9\x89\xf5\x41\x34\x58\xc2\x02\xaa\ \x2c\xca\x6f\x17\x6b\x35\x39\x05\x5e\x2c\x9d\xbf\x60\x90\xdd\x32\ \x11\x27\x3d\x1d\xdd\xbd\x4b\xc9\x15\x5d\x2a\xe3\xef\x31\xc2\xd4\ \xf2\xc4\xa4\x2e\xec\xdb\xaf\x6a\xbe\xd0\x36\xfd\x46\x27\x62\x40\ \xae\x25\xbe\x5b\x6c\xa9\x15\x73\xea\x1e\xdd\x2c\x67\x78\xbd\x6a\ \xf1\xaa\xea\xe1\x05\x79\xf1\xac\xba\x6e\x5a\xa3\xfe\x37\xbf\x13\ \xdc\x59\x05\x58\xc2\x38\x40\xe9\x48\x90\xcd\x2a\xad\xe6\x1d\x98\ \xaf\x9d\x3f\x2f\x1f\xf3\x93\xbe\x1b\x2b\xe8\xff\xd8\xc7\x3e\xf6\ \x96\x2b\xf9\x0e\x74\x0e\x4c\xbc\x5f\xb7\x6e\xdd\x3f\xb5\xfd\x3a\ \xc8\x80\xdf\xc4\xd9\x73\xca\xcf\xcd\x69\x23\x05\x89\x61\x3e\x6a\ \xd2\x52\x99\x2c\xcd\x11\xff\xc1\xb0\xf1\x39\x4f\x35\xbf\x83\x96\ \x1b\x62\xdd\x36\x7e\x2f\xf2\x5c\x79\x69\x59\x7d\xeb\xd6\xca\x47\ \x8d\x2f\x01\x58\x2a\x29\xda\xb7\x5a\x0b\x2f\x3d\xa5\xec\x89\x39\ \xee\xbd\x3a\x3a\x74\xa2\x87\xeb\x95\xe4\x73\x4c\x1e\x11\x56\x80\ \x46\x49\x61\xfa\xac\x62\x3d\x03\xea\xb9\xee\x06\x35\x86\xd7\xa9\ \x5e\x29\xda\x7b\xd3\x3c\xeb\x0f\x84\x54\x2f\xcd\x6b\xf9\xcc\x01\ \xf9\x38\xbe\xaa\xbc\x75\x11\x22\x19\x63\x63\x72\x52\x3e\x5c\xb3\ \x1a\x29\x8b\x2e\xb4\x46\x46\x46\xee\x91\xf4\xb7\x50\xf5\x4a\x01\ \xf8\xe8\xeb\xf5\x51\xec\x6c\x43\x00\xb6\x46\x5f\x9a\x9f\xd7\x0c\ \xc0\xe7\x15\x8a\x1a\x1d\x18\x84\x79\x4f\xe0\x7d\x0b\xf4\xd4\x12\ \x00\xa7\x14\x2a\x4b\x95\x4c\x42\x3d\x23\x61\x92\x91\x90\xb8\x6c\ \x85\x20\xa8\x00\x08\x25\xfa\xfb\x59\x5c\x55\x0d\xe2\x7d\x94\x92\ \x36\x68\xd2\x65\xaa\x44\x0b\x1d\xed\x4c\x11\x8b\x69\x9b\xbd\xcb\ \xbc\xf4\x06\xca\x05\x25\x82\x43\x6a\x54\x29\x74\x66\x2f\xa8\xd0\ \x33\xc8\x3c\x2b\x69\x93\x05\x99\x2b\x6d\x05\x40\x6f\x0d\x21\x56\ \x55\xbc\xf4\x8c\xca\xf3\x17\x98\x2c\x70\x75\xaa\x67\xc0\xb5\x84\ \x30\x97\xb3\xaa\xd3\x91\x0a\x66\xba\x2c\x18\x92\x22\xdf\x2a\x29\ \x7e\x8d\x00\xde\xf7\xbe\xf7\xed\xa4\xe7\x96\x32\x75\x7e\x1d\xbf\ \x5e\x64\xf1\xb9\xf9\x39\x85\x78\xa8\x2f\x95\xb4\xa6\x1f\xb8\x42\ \xfb\x12\xa3\x44\x4e\x8e\x65\xf4\xd3\xcc\x1c\x1a\x54\xaa\xe6\x80\ \xcc\x2d\x21\x48\x56\x10\x2d\xcd\x3a\x15\x85\x32\xd7\x59\xbb\x4b\ \x76\xf7\x90\xae\x26\x61\xfc\xef\x05\xb5\x6c\x05\xd0\x10\x12\xc0\ \xd7\xc1\x1f\xa7\x2e\xa9\xc6\x5c\x01\x42\x20\x45\xce\xd8\x8f\xd1\ \xf4\x0d\x4a\xaf\x24\xc4\xca\x69\x27\x57\x2e\x65\xf2\x69\x15\x27\ \x9e\x43\x18\x01\x6b\x8d\x57\x49\x80\x63\x38\x96\x43\x16\x5b\xa3\ \x3f\x11\xdb\xb8\xd1\xe2\x55\x32\x99\x1c\x7d\xef\x7b\xdf\xbb\x96\ \x56\xda\x92\xb9\xab\xe3\x0b\xc1\xcd\x9b\x37\xef\x68\x58\xe0\xf1\ \x6c\x03\x73\x79\x76\x4e\x55\xe2\x68\x8c\xef\x69\x90\x36\xc8\x1f\ \xf5\x75\x90\xda\x35\xe4\x5a\x72\x2b\x1c\x67\xb3\x30\x38\x48\xd2\ \xe2\x5a\xc1\xe2\xfb\x68\xc7\xf8\xb1\xa1\xba\xdc\x26\x85\x4c\x77\ \x9f\xd5\x78\xc7\xd4\xbd\xcb\x73\xb9\x1d\x74\x87\x60\x3c\x88\x30\ \x09\x7d\xcc\x63\xae\x63\x05\x7e\xf9\xf2\x21\x95\x4f\x1d\xd0\xc2\ \xab\x87\x39\xc7\xf9\xa6\xc1\x9e\x25\x15\xce\x3f\xa6\xc2\x1c\xbd\ \x01\x04\x5f\xcf\x5f\x5b\xf9\xda\x39\xc1\x19\x17\x6b\x0e\x4a\x82\ \x3f\xdb\x7e\xa7\x48\xba\xd1\x28\xfd\x4a\x0b\x08\x63\x1a\xd7\x99\ \xf0\x02\x59\xd4\x2c\x90\x50\x08\x41\x24\xda\xa5\x6c\x80\xf3\x72\ \x98\x54\x90\x73\xd9\xd3\x6c\xde\xdf\x58\x32\xa5\xe9\x9c\xa2\x83\ \x6b\x94\x3d\xf4\x8c\x2a\x97\x6a\x1d\x3c\xb0\xc5\x4c\x78\x75\x4c\ \x99\x70\x54\x24\x16\x5a\x9a\x9c\xe0\xba\x07\xe3\xcd\xcb\xe9\xb0\ \x5b\xad\xd1\xe8\x98\x57\xe0\x62\x45\xd1\xeb\xd7\x60\xe6\x61\x2d\ \x1e\x3b\xa2\xca\x82\x1f\x86\x5b\xf7\xf8\xfc\x35\x85\xce\x9d\x56\ \xa3\x56\x51\xd7\xaa\xf5\x98\xfe\xb3\xaa\xcc\x8f\xa9\xb4\x80\x5b\ \x16\xa5\x7a\xe1\xda\xfe\x07\xcc\xd8\xf4\x98\x57\x4e\x56\x79\x00\ \x9d\x3d\x0d\x18\xae\x6f\x0b\xa0\x61\x05\x40\xba\x18\xe5\xe4\x68\ \x5b\x00\x36\x01\x2a\xe7\x73\xf2\xd7\xea\xb6\x3b\x13\x70\xeb\x98\ \x62\xf8\x1f\x2c\xa8\x3c\xa8\x56\xc0\xdf\x27\x4e\xab\x67\xe3\x0e\ \xe5\x87\x46\xc9\xc2\x9e\x57\x79\xc1\x33\x8b\x87\x19\x68\x68\xc0\ \x40\x33\xa1\x2a\x8e\x35\xc0\x2c\x9d\xe2\x46\xa5\x53\x00\x59\x37\ \xc1\xda\x96\x54\xca\xe4\x94\x19\xb8\x9d\x67\x69\xa2\x5e\xbc\xa0\ \xfc\xc5\xc6\x55\x40\x19\x8c\x73\x5f\xed\xbb\xf2\x6e\xbd\x59\x95\ \xc9\xa7\x54\x5e\xac\xa9\x59\x8c\xaa\x3c\x57\x27\xa7\xa8\xf2\xb7\ \xac\x17\x5d\xbd\x4c\x5c\x5a\x46\x08\xf4\x26\xa9\x8c\xac\x52\x00\ \xc3\x75\x6d\xe5\xd7\x6d\x82\xcd\xc9\x08\xfe\xdf\xdd\xa9\xc4\xea\ \xa0\xa6\xcb\x03\x41\xd3\x91\x09\x88\x73\x39\x72\x11\x34\x68\x7c\ \xfc\x27\xd2\x69\x66\xc4\x4c\x9b\xf4\xec\x12\xe4\xe7\x45\x0d\x6c\ \xd8\xae\xd2\xf8\x51\x98\x58\xb4\x02\x18\xde\xb3\x4b\x4e\xb7\x2b\ \x07\x21\x86\x58\x40\x64\xc5\x88\x4a\xaf\xce\x6a\x74\xcf\x1b\x25\ \xaf\x85\x01\x67\x9e\x79\x56\x7e\xea\xfd\x08\x7d\xbe\xee\x61\x22\ \x45\x31\xcf\xf5\x9b\x55\xdf\x1c\x63\x0e\x33\x7f\x15\x4d\x2f\x68\ \xe1\xf4\xb8\x8a\x67\xa6\x34\xe1\xfe\x9d\x32\x83\x39\x84\x44\xb4\ \x28\x86\x55\x99\xcb\x2b\x10\xa9\xcb\x09\xb3\xf6\x25\x3f\x56\x72\ \x79\x6d\xd6\x0d\x7d\x75\x97\x90\x5d\xc4\x00\xfa\xad\x1b\xc0\x6b\ \x7f\xc7\xfa\x2f\x63\x00\xbe\x11\x45\x00\xd6\x02\xdc\x3a\x92\x05\ \x40\xa8\xeb\x61\xcc\x91\x8b\xf9\x05\x42\x36\x5e\x5f\x4d\xae\x6b\ \x47\xaf\x8e\x58\x08\x87\x15\x6a\xf4\x10\x5a\x0e\x0f\x0e\x81\xd8\ \xd6\xcf\x6d\xb8\x13\x0c\xd4\x8b\x59\xeb\x42\x19\xac\x24\x3c\x14\ \x15\x27\x3b\x58\x80\xe6\x5c\xc5\x46\x42\xea\xd9\x76\x8b\xfc\xa1\ \x20\xf3\x56\xed\x73\x16\x6b\xcc\x75\x4c\x37\xde\xdf\xa7\x91\x9b\ \x6e\x26\x5b\xcd\xc0\x64\x5e\xf9\x19\xae\xe5\xfd\x58\x4e\x90\x28\ \xb0\x48\x32\x86\x9b\x76\xb9\x8a\x64\x58\xcb\x95\x3a\x6a\x97\xe6\ \x5e\x0d\x1e\x02\x81\x4e\xc8\x8f\x9b\xe1\x2a\x01\x70\x32\x72\xb9\ \x16\x77\x5b\x80\x17\x96\x14\x89\xf9\x31\xdd\x28\x8b\xd4\x15\x49\ \xcb\xb5\x82\xf0\x4c\x49\x5a\x5a\xb6\xb1\x21\xdc\x3d\x80\x46\xdb\ \x80\xe7\x1a\xe1\x34\x31\xfb\x49\xc1\x15\x89\xcb\x0a\x65\x76\xdd\ \x22\x5f\x2c\xcb\x12\x4a\x24\x31\x45\x25\x56\x39\xca\xec\xbe\x55\ \x99\xd5\x6b\xdb\x00\x57\x62\xc1\xb8\xa3\x4d\xa6\xda\x64\xc1\xd2\ \x53\xff\xa6\x75\xd6\x2a\x4a\x53\x92\x9b\x8d\x20\xd8\xba\xaa\x26\ \xde\x57\x1d\x18\xa4\x14\xee\x62\xed\xc1\xab\x2c\x14\x62\xe4\x79\ \x9a\xa8\x1d\x01\xc4\x7e\x12\x04\x1d\x4c\xc3\xf1\x0c\x83\xf6\x4a\ \xd3\x5e\x08\x3a\x52\x18\xb2\xe8\x0f\x98\xd9\x30\xe5\x75\x26\xbe\ \x3a\xe6\x34\xeb\x46\xca\x06\xa1\xeb\x36\x7d\xc5\x96\xda\xd6\x01\ \x92\x97\x7d\xf2\xa6\xcf\xab\xb1\x9a\x50\x18\x0a\xab\xff\x86\xdd\ \xca\x12\x59\x34\x77\xc6\x3c\x49\x65\x78\x17\xf8\xb1\x0d\x2d\x8a\ \x79\xd0\x7e\x39\xaf\x06\x02\x38\xfd\xa3\xa7\x2c\xd3\xe1\x78\x5c\ \x83\x37\x5c\x8f\x55\x31\xab\x93\xc5\x22\x82\x6a\xe4\x04\x78\x86\ \x55\x26\x5a\x79\xf8\x39\x38\x06\xcc\x98\x05\x7b\xf8\x7a\x93\xe7\ \x9d\x2b\x85\x60\xad\x08\x2b\xef\x84\xe7\x4e\xd2\xd8\x11\x00\x42\ \xe7\xc3\x85\x76\x3b\xcc\x4f\xa3\x11\x62\x45\x7e\x18\xf0\xe1\x54\ \x75\xb7\x80\xb6\x42\x52\xbd\x3d\xe7\x55\x42\x68\xb6\x42\x98\x5a\ \x3e\xe7\x96\x0b\xb8\x90\x09\x93\x56\x8b\x00\x1e\x52\x07\x89\x0b\ \x53\x17\x94\x1a\x59\x85\x80\x7c\xea\xdd\xb8\x55\x8d\x35\x68\x5c\ \x20\xbc\x31\x7b\xeb\xaf\x35\x35\x8c\xf6\x4b\x05\xc6\x20\xb1\xbf\ \x64\x05\x50\xcb\x17\x48\x84\x7a\x94\x59\x13\xa3\x29\x7b\x09\x2c\ \xc1\xdd\x96\x22\xcc\x5b\x47\x00\xb3\xed\x90\x07\xb9\x0e\x2e\xd4\ \xb4\x02\xa8\xe6\x6c\xc8\xb2\x82\x11\x14\x08\x87\x6d\xe9\xcd\x77\ \x53\x17\x94\x0c\xcf\x57\xba\x80\x0b\xff\x95\x8e\x00\x02\xc1\x80\ \xc2\xc1\x90\x15\x40\xb3\xcc\x12\x17\xa7\xd4\xe0\x38\x94\x34\x3c\ \xa3\xd5\x2b\xfc\x1f\xe2\x24\xa3\x9f\x3e\x7d\x2c\x69\x05\x51\x5b\ \x9c\x36\xa6\xd9\xbe\xee\xb6\xcc\xb9\xe8\xd3\xd2\xf1\x83\x68\xc6\ \x30\x55\x13\x92\xc4\x4d\x70\x2f\x88\x63\x90\xd8\x16\x39\x30\x4b\ \x31\x55\x2a\xa3\xd5\xcb\xee\x86\xe6\xfd\xa4\xc3\x21\x55\xaa\x13\ \xe4\x13\x45\x04\xd0\x24\x22\x04\x40\xff\x29\xee\xab\xb5\x75\xd0\ \xae\x03\x1c\xc1\x2c\x7e\xcf\xd8\xd6\x26\x6b\xf3\x29\x9c\x4c\x5e\ \x16\x00\xd6\x5e\x96\xe4\x5d\x69\x01\x55\x8a\x85\x2c\x17\xe4\xf0\ \x2f\x88\xb4\xa2\xd4\xf3\x05\x53\x86\x56\x1c\x55\x2f\x4d\x2a\x0a\ \x6a\xbb\x4b\x53\x0a\xa7\x43\xaa\x2e\xb9\x1d\xe5\x63\x15\x14\x48\ \x5d\x52\x33\x19\x55\xbc\xb7\x4f\x75\xb4\x5f\x9e\xba\x88\x00\x0c\ \x00\x36\x21\xd7\x2c\x02\x01\x38\x2a\x2d\x9e\x52\x61\xc3\x46\xac\ \x60\xd4\x6a\x85\xa7\xda\xeb\x68\xf9\x37\x44\xec\x9f\x46\x0e\x4d\ \x0b\x82\xa3\xb7\xdc\x6c\x05\x10\x8c\xfa\x15\x88\xcf\xca\xf5\x16\ \x50\x42\x59\x71\x94\x51\x9e\xe1\x38\x32\xaf\x6a\x10\x86\xea\x6a\ \x15\x44\x30\x6e\x4a\x82\x9a\x8d\x6d\x86\xe0\x06\x1e\x3c\x53\x84\ \x51\x94\x75\xde\x99\xa1\xec\x79\x06\xb7\x63\x01\x4d\x88\x28\xb3\ \x30\xe9\xb5\x93\x9d\x40\x84\xbc\x9d\xc2\x21\x84\x69\xca\x63\xc2\ \x19\xfa\x82\x17\x4f\x29\xb3\x69\xbb\xe2\x1b\x57\x28\x71\x5d\x58\ \xb1\x15\x94\xc6\x2b\xa5\xd4\xfa\xa8\xd2\x3b\x37\x72\x6d\x27\x9a\ \x0a\xa8\x34\x37\xad\xda\xec\x02\xe6\xd9\xd2\x1e\x02\x80\x18\xb1\ \x82\xf2\xa5\xa2\x96\x8e\x1e\xe0\xb8\x24\x54\x67\x1b\x9a\x6a\x6b\ \xbe\x69\xc8\xa5\x09\x33\x8f\xb5\x95\x1c\x2e\x5b\xf4\xc7\xa4\x03\ \x54\x7a\xa4\xb3\xd5\x29\x3a\x3f\xe4\x23\x7c\x0f\xc5\x68\x84\xa4\ \x27\x94\x1c\xad\xaa\x6b\x6d\x43\xd1\x6e\x62\xfb\x30\x58\x91\xa0\ \x44\x4e\x19\x16\x3a\xd6\x60\x5c\x22\x24\x7f\x3c\x81\xe2\xd2\xea\ \x58\x38\xca\x3e\xcb\xe0\x5e\x69\x01\x15\x5e\x37\x5f\x68\xa7\x8a\ \x56\x00\x71\x3a\x2d\x61\x80\xca\x71\x72\xaa\x2e\x37\x95\x3b\xfa\ \x8a\x86\x6e\xbc\x59\xdd\xeb\x37\xca\xb9\x7e\x37\xfe\x99\x67\x81\ \xb8\x45\x22\x69\xcd\x2b\xc4\xbd\x1e\x0c\x94\x2e\x9e\xc5\x05\x4c\ \x62\xd2\xb0\x21\xc8\x46\x08\x00\x94\x0f\x7e\x4b\x59\xfa\xea\xb8\ \x4a\x37\x6c\x53\x6a\x68\x58\xb0\x29\x62\x94\x05\x4e\xdb\xe2\x22\ \x6f\xaf\x13\x4a\xdd\x52\xc8\x0a\x8e\x05\x83\x17\x75\xc6\x59\xc5\ \x7a\xa9\x27\xd2\x31\xd6\xd3\x24\xaf\x99\x50\x62\x10\x54\xc7\xdf\ \xb3\xb1\xba\x92\x83\x8e\x55\x54\xac\xdf\xa3\x36\xc1\xcc\xc9\xf0\ \xf9\x87\xc9\x1b\xcb\x89\xcb\x47\x63\xc6\x6f\x92\x20\xe6\xe7\x63\ \x36\x5b\x9c\x66\x68\x5c\x89\x01\xb5\x31\x3e\x6e\xfb\x8f\xfa\x90\ \x5a\x82\xfa\x3f\xc2\xc3\x4c\x62\x4d\xac\x7c\x3e\xaf\xe9\xe7\x7f\ \x04\x43\x25\xf9\x9d\x0a\x85\xc9\x08\x4c\x0c\x21\x71\xee\x71\x6c\ \x1e\x4f\x3c\x9e\x21\xef\x9e\xc5\x8f\x6d\x28\x6d\xbd\xf4\xb4\x16\ \x00\xd5\x4d\xdd\x40\x9a\x3d\x57\x50\x69\xf2\x02\xf7\x57\xed\x33\ \x1e\xd4\x74\x49\x9d\x99\xb7\x78\xe1\x04\xe8\x5e\x36\xf7\xd9\x6e\ \xd1\xf9\x67\x9f\xd3\xf4\xb1\x1f\xab\xb4\x7c\x46\xd1\x01\x3f\x16\ \x66\xc2\xd5\x8c\x22\xe9\xb8\x42\xa9\xa8\x62\x03\x41\xf5\x6d\x75\ \xd4\xb3\xc9\x53\xcf\x96\x06\x02\x90\x4d\xd6\x1c\xd7\x47\x04\xf3\ \xb5\x36\x5c\xa0\x9c\x38\x1d\x67\xe1\x0a\x9d\x4c\xf7\xa5\x97\x5e\ \x3a\x72\x0d\x08\x3e\xf9\xe4\x93\x87\x79\x97\x56\x32\x37\x38\x94\ \x9d\x71\x04\x10\xc5\x0a\x8c\x09\x35\x25\xea\x7b\x29\x77\xf8\xa8\ \xe6\xc7\x0e\x61\xde\x79\x62\xef\x84\x8d\xd9\x96\xbc\x9a\x05\xb7\ \xfc\xe9\x63\xc4\xe6\x26\xd7\x3d\xcb\x7c\xc7\x05\x3a\x84\x50\xb8\ \x86\x20\xb0\x1e\x98\xb7\x66\xcf\x09\xc2\x24\xf5\xc1\xf4\x5e\xcd\ \xef\x7f\xc2\x6a\xd0\xab\x59\x90\x45\x08\x15\x18\x68\xd0\xf1\x09\ \x71\xef\x12\xe7\x2f\xe2\xe7\x30\x97\x48\x51\x7c\xf5\x70\x2d\x4e\ \xe1\x14\xa2\x90\xf1\x81\xfc\xed\x30\x58\x43\xf7\x35\xbf\x22\x4e\ \x00\x1c\x8b\xc9\x0b\x85\x08\xbb\xf4\x12\x4c\x94\x81\x30\xff\x69\ \xb6\x1b\x9d\xfc\x49\x10\xf4\xf8\x5c\x64\x33\xc3\xab\xd4\x04\xdb\ \x48\x15\x49\x66\x32\x4a\x50\xe2\xe6\xe9\xa8\xd8\x5c\xda\xe5\xe1\ \x0b\x35\xcd\x3d\xff\x14\xdd\x9d\x21\xc5\xfa\xfa\x55\x5d\x30\x66\ \x69\xea\xfd\x10\xe0\x35\xa7\x3a\x55\x57\x2d\x17\x31\xcc\xb6\xa3\ \x83\xc9\x0f\x60\x1e\x57\x41\x8a\x9c\x73\xad\xc9\xe3\x9b\x30\x58\ \x80\xa1\x79\x79\x95\x33\xb8\xd8\x51\xac\x62\x99\xe2\x86\x34\x35\ \xe0\xb4\xdc\x47\x02\xe9\x23\x58\x98\x41\xf5\x79\x70\x61\x49\xa1\ \xae\x1e\x1a\x17\x71\x14\x94\xa0\x59\x02\x40\xc3\xa4\x70\x51\xb1\ \x36\x61\x31\x6e\x1d\xed\x57\xc0\x8c\x0a\xd1\x05\x73\xf1\x27\x53\ \xaa\x74\xa5\x71\xdb\xf5\xca\xb6\x37\x66\xcd\xcf\xcf\x1f\x94\x94\ \xfd\xc9\x96\x58\x13\x9a\xc7\x0b\x9e\x05\x21\xad\x99\xf8\x31\x9d\ \xf4\x9a\x35\x0a\xa6\x52\xed\xa6\xa4\xd0\x9c\xa3\xfc\x49\x1a\x25\ \xfb\x9e\x46\x71\x86\x81\x32\x42\xb8\x00\xd3\x33\xaa\x2d\x2f\x81\ \x65\xa1\xab\xc2\x97\x07\xb5\xcd\x1f\x42\xe3\x6a\xa0\x41\x97\x89\ \x2e\xaa\x3a\xbf\x17\xac\xd8\x8b\xc6\x8f\x32\x4f\x56\x45\x84\x0b\ \xd6\xd8\x8c\xce\x41\x60\xe4\x06\x3c\x5f\x67\xfe\xf3\xcc\x3b\x4b\ \x68\x0e\xc2\x78\x44\x0e\xc2\xf6\x05\xad\x10\xf0\xeb\x2e\xe6\x8b\ \xf3\xbd\xdd\xaa\xc9\xe1\xf7\x65\x42\x78\x1d\xed\x93\x70\x05\x33\ \x19\xa5\xae\xdf\x2a\x5f\x3c\x66\x9b\x21\xa6\xd7\xc1\xde\x81\xc7\ \x84\x4a\xff\xa1\x9e\x60\xe9\x3b\xdf\xf9\xce\xf7\x30\x91\xaa\xc1\ \x02\x87\x50\x18\xe7\x0d\x4c\x64\x90\xb4\x36\x16\xb5\x21\x05\xb9\ \x80\xf2\xd2\xf2\xe1\x63\x5a\x3a\x31\x66\x72\x76\xa8\x26\x37\x3f\ \xa7\xe5\xb1\x7d\x2a\x4d\x2f\xb0\xc0\xa0\x01\x1c\x8b\x1d\x3c\x70\ \xd9\xfc\x1b\x90\xcf\xef\xa2\x4d\x63\xf6\x27\x08\xaf\x17\x44\xc5\ \xc5\xb1\xc9\x14\x49\x6d\x67\xc8\xeb\x0b\x71\xc1\x91\x15\x58\x85\ \x0c\xaf\x1b\x8c\x49\xf6\x0d\x12\x96\xbb\x15\x80\xe9\x96\x19\xc9\ \xb6\xcd\x85\xf6\x1d\x5f\x08\x0e\x18\x9b\x30\x8e\xe9\x8b\x42\xc8\ \x57\xc0\xfc\x3d\x08\xe4\x5f\x0e\xfa\xb4\xfa\xce\x3b\x55\x67\x1d\ \xed\x0d\x1d\xcb\xff\xf3\xab\x5f\x7d\x54\x92\x7b\x4d\x4f\x50\x2c\ \x85\xed\x25\x63\x48\xe8\x50\x3c\x1e\xbf\x85\x92\x51\x41\xd0\x33\ \x45\x27\x25\x4b\x77\x55\x24\x27\xcc\x62\x2b\xad\xdc\xb9\x3a\xfe\ \xba\x4f\x09\x5c\x21\x94\x4e\x09\x75\x63\xa2\x05\x15\xcf\x03\x82\ \xe5\x59\xe5\xa7\xd1\x98\x79\x3e\x81\x76\x22\x61\xae\xdb\x82\x04\ \x90\x42\x33\x69\xa8\x2f\x20\xc0\xc5\x76\x8b\xb9\x04\xb3\x2e\x89\ \x48\x85\x50\x9b\x27\xf5\xbe\x84\x15\xd4\x5a\xcf\xf8\x4d\x76\x88\ \x40\x8a\x97\x6b\x14\xdc\xa3\x6c\xdd\x11\x0d\xb5\xdc\xac\x0e\x55\ \xb8\x37\x8f\xd5\x2c\x04\x14\xc8\x13\x26\x11\x8c\x47\xdc\x0f\x6c\ \xda\xa0\x24\x2f\x6f\xe7\x0a\x79\xdb\x0d\x62\xd3\xc4\xe3\xf9\x62\ \x71\xca\x4a\xf2\x5a\x01\xd8\x93\xb3\x7b\xf7\xee\x7d\x84\xf6\xb8\ \xd9\xdc\xe8\x04\x89\x02\x49\x04\x50\xe4\xbd\xa0\x72\x79\x28\x67\ \xb5\x5a\x2b\x38\xca\x9d\x9e\xd7\x12\xe7\xfb\xf7\xec\x84\x11\x59\ \x8d\x37\x1d\x17\x01\xd5\x29\x54\xa6\x68\x5e\x56\x6c\x1c\x0f\x63\ \xce\x84\x22\x50\x1b\xad\x24\x73\x8a\x0f\x61\x5d\x32\x61\xcf\xb1\ \x59\x9c\xc7\xc2\xb2\x2f\x5f\xd2\xfc\xcb\x0d\x30\xc6\xa7\x64\x66\ \xb0\x53\x9e\xd8\x66\x4b\xad\x14\xc6\x5d\x7c\x8a\x90\x03\x78\x80\ \x26\x21\x02\xa1\x76\xf3\xf7\x10\x08\x2e\xa8\xb2\xd1\x08\xb8\x32\ \x8b\xf6\x97\x30\xff\x32\x18\x80\xdb\x9e\x25\xc3\xdc\xf0\xcf\xde\ \xad\xba\xcf\xe9\xec\x55\x74\xbf\xff\xdd\xef\x7e\x05\x26\x4b\xe2\ \x73\x8d\x00\x3a\x49\xd2\xfe\xfd\xfb\x1f\xc7\x0a\x5e\xd9\xbe\x7d\ \xfb\x36\xfa\x67\x0a\x00\x84\x5d\xbb\x76\x69\x79\x0e\xf3\x86\xa9\ \x26\xa4\x86\x30\x59\x72\x83\x53\xa7\xd4\xbd\x69\x2d\x0c\x46\xf0\ \xd7\x12\x3d\xfe\x57\xb4\x34\x0e\x63\x2d\x03\xb3\xa6\x7f\xfe\x99\ \xe7\x8c\x55\xab\x7b\xa3\xc7\xcb\x4d\x97\x4c\x2e\x88\xb5\xa0\x79\ \x00\x8b\x66\x08\x02\x80\xc9\x2c\xe9\x33\x9a\xf3\xc8\x00\x27\x5e\ \xdc\x7f\xe5\x0e\x26\xee\x97\x46\x76\x01\x8e\xfd\x54\x99\x7d\x30\ \x69\xe6\x75\x0a\x08\x1d\xa0\x2d\x92\x3c\x65\x6b\xf2\x2f\x32\xd7\ \x14\x82\xce\x05\x01\xbf\xa8\xf2\x7d\xdd\x8a\xdc\xb2\x5b\x29\xc0\ \x6f\x1e\xed\x9b\x8d\x1d\x67\x4e\x9f\x7e\xe2\x99\xa7\x9e\x3a\x20\ \x56\xff\x53\xdf\x0e\x77\xb2\x42\x5e\x8b\xf9\xb6\x6c\xd9\xf2\x16\ \x3a\xc5\x8e\x49\x8a\x82\x50\x9d\xee\x6a\x93\x56\xb7\x8c\x00\x6c\ \xda\xea\x90\xa2\xd6\xd0\x68\x17\x3e\x38\x21\x77\xf9\x15\xb0\xa0\ \x2c\x8c\x11\x80\x74\xac\x69\x63\xe1\x24\x55\x52\x7a\xb5\xa7\xde\ \x55\xae\x7a\x77\x05\x40\x72\x98\x08\xf9\xb0\x0e\x23\x00\x21\x08\ \xfc\xff\xac\xa7\xec\xb4\x0f\x30\x75\xae\x69\x3a\xe1\x5d\x60\x90\ \xa3\x44\xcc\x53\xa8\xa7\xfd\x72\xd4\xb6\xa1\x58\xc3\x32\xda\x9f\ \x02\x57\x26\xb9\xe7\x22\x20\x59\x00\x24\xfb\x07\x75\xaa\x2f\xa5\ \x1d\x0f\xfe\xa1\x6a\x91\x90\x49\x7a\x44\x92\x57\xfb\xc6\x23\x8f\ \x3c\x38\x7e\xf6\xec\x31\x33\xe5\xcf\x7a\x3d\xee\xb2\x0d\x75\x86\ \x77\x69\xdb\xd9\x6a\xb2\x26\x12\x8d\xb2\x80\x98\xc2\x50\x69\x6e\ \x16\x90\xa1\x2f\x8f\xd9\xa2\x3d\x00\xad\x81\xc4\x27\x15\x0c\x9d\ \xc5\xa5\x2b\x80\x95\x09\x18\xd4\x06\xa4\xa6\x80\x34\xcd\x89\xa6\ \xba\x60\xbe\x67\x65\x83\x66\x87\x0f\x40\x0d\x60\xbe\x41\x9b\x5b\ \xd8\xac\xa6\x2d\x80\xfa\x82\x47\xb2\xe3\x53\x69\xde\x0a\xa5\xa3\ \xfd\x4e\x25\x6b\x29\xc1\x5c\xb1\x3e\xb5\xdc\xad\xc1\x89\x3c\x37\ \xce\x50\xfa\xe2\xd1\xc1\x69\x7c\x3f\x6b\x36\x47\xf4\xea\x04\x09\ \xd2\xba\x7f\xf7\x51\x45\x79\xf9\xba\x48\x64\x9a\x9b\x9b\x63\x2f\ \xd3\xfe\xaf\xfd\xcd\xc3\x0f\x3f\x64\xf2\xb9\x9f\x77\x83\x44\x89\ \x0d\x88\xb3\xec\xb8\x7a\x07\x1b\x0c\xc2\x30\x6f\x22\x01\x42\x88\ \xab\x44\xf9\xe9\x00\x88\x04\x5d\x5b\x76\xc6\xd3\x15\x16\xd6\x80\ \x29\x07\x40\x74\x38\x86\xf1\x98\xc7\xf9\xa6\x52\x7d\x9e\xd2\xc3\ \x4d\xa5\xb7\xf8\x31\x5f\x7c\x33\x12\x82\xa2\x58\x40\xbc\x85\xe0\ \x4d\x59\x60\x13\x0c\xb9\xcb\x9e\x0a\x0b\x3e\xac\x47\xd7\x7e\x9a\ \xcc\xdb\x83\x10\x98\xd3\x66\x83\x26\xdd\x5d\xa0\xc4\x9d\x26\xde\ \xcf\x60\x55\xb9\x30\x80\x99\xd1\x59\xf2\xfd\xf0\xbb\xde\xae\x91\ \xb7\xbd\x55\xd9\x72\xc9\x68\xde\x00\xdf\xe4\x9f\xfd\xf1\x1f\x7f\ \x14\x0c\xb8\xe4\x32\xd3\xcf\x2b\x80\x06\x7e\x33\x07\x72\x3a\xec\ \xc8\xbc\xdd\xb8\x42\x10\x21\x18\x30\x0b\x43\x65\xfa\x73\xbe\x4a\ \x99\xa2\xa4\xa6\x44\x0f\x9d\xa3\x5e\x13\x8d\xa0\xa0\x6c\x46\x16\ \xee\xf6\x51\x2c\xf9\x14\x1d\xf6\xa3\x75\x3f\x11\xc1\x68\x3e\x0c\ \xf3\x09\xf0\x20\x45\x0c\xa7\x34\x05\xc5\x65\x30\xc0\xad\xdb\xf6\ \x99\x93\x6d\x08\x78\xa4\xd1\x69\x31\xe4\xca\x8f\x2d\x61\xa3\xcc\ \x99\x49\xca\xbe\x2d\xf2\x2d\xa2\xf1\x59\xfc\x7d\x0e\xca\x86\xb9\ \x9e\xd6\x85\x44\x46\xb9\x9b\x76\x6b\xcb\x07\xff\x40\x45\x22\xce\ \x2c\x9a\x27\xb3\x73\xbf\xfd\xcd\xbf\x7d\x60\xec\xd0\xa1\xa7\x8b\ \x92\xfb\x8b\x6e\x92\x32\xfb\xf4\xcf\xd0\x2e\x5f\xcb\x0b\xc5\x8d\ \xc6\x15\x82\x26\xb4\x25\x13\xb6\xf8\xa9\xd0\xc5\x4d\xc6\x4b\x8a\ \x67\xaa\x14\x44\x4d\x2b\x00\x27\xe0\x20\x04\x53\x81\xf9\x18\x61\ \x3a\x1c\xe0\xd8\x6a\x1d\x4a\xf2\x3d\x0d\xf3\x90\x2f\x81\x2a\x5a\ \x4d\x10\xe2\x9a\xb5\x82\x00\x56\x13\x2c\x21\x04\x62\x77\x35\x27\ \xce\x31\x9f\x98\xcb\x41\xd3\xe0\x45\x17\x00\x98\x89\xa0\xf1\x3a\ \xf9\xfd\x42\x58\x21\x28\x98\x37\xf9\x46\x5a\xe7\x48\x17\x67\xe8\ \x18\xed\x78\xe0\xe3\xaa\x04\xfc\x2d\xe6\xd9\xd4\xf1\xdc\xd3\xcf\ \xfc\xf9\xb7\xbe\xf6\x57\x7f\xce\x74\xc5\x7f\xcc\x2e\xb1\x26\x54\ \x38\x76\xec\xd8\x89\x15\x2b\x56\xec\x21\x22\x0c\x21\x04\x6b\x05\ \x81\x54\xca\x36\x29\x6b\xe5\x9c\x52\xdd\xe6\x5d\x5e\xcd\x34\x25\ \x21\x41\x7e\xcc\xd1\x6f\xb2\x33\x98\x07\x94\xc2\x31\x4c\x3e\xc1\ \xf7\x14\xe7\x93\x5c\x8f\x73\x53\xa8\x95\x83\xd9\x1e\xa3\x6b\xdd\ \xc9\x71\xc0\x93\x18\x7e\x5e\x47\x10\x29\x1f\x58\x40\x37\x0a\x0a\ \xd3\x0c\x49\x67\x82\x1a\xec\x0e\x28\x19\x20\x45\x07\xe8\x42\xf8\ \x7b\xa0\x4c\xc7\x38\xd8\xa3\x13\xfe\x08\x9a\xbf\x49\x3b\x3e\xfe\ \x31\x55\x10\xfa\x0c\xcc\xa3\x38\xb3\x9f\xe9\xd1\xbf\xfc\x93\x2f\ \x7c\xb2\x5b\x9a\x5b\xfe\x25\xf6\x09\x7a\x68\x69\xe1\xf8\xf1\xe3\ \x63\xbc\x36\xbf\x0d\x3c\xe8\x09\x1b\x50\x8c\xc7\xa1\x24\x05\xd3\ \xb0\xf2\x4b\xa0\x30\xd5\xa1\xdf\xd6\xf6\x08\x41\x62\x0c\x30\xfa\ \xa1\x90\x80\x3e\x04\x84\x20\xcc\xc8\x79\x35\xfc\x26\x77\x87\xcc\ \x66\xa7\x06\x63\x83\xb1\x2e\x51\x00\xc1\x36\xd6\xe4\x28\xe9\x49\ \x5d\x34\x63\xbb\x32\x01\xf5\x76\xc3\x3c\x05\x4f\x97\x2f\xac\x70\ \x93\x88\x54\x04\x43\xdc\x84\xaa\x80\xcd\x8b\x3c\x1f\x7d\xd7\xbb\ \xb4\xf9\x5f\xfd\x4b\x15\xb1\x94\xe9\x99\x19\xcb\xfc\xcb\x87\x0f\ \xbf\xf0\x97\x9f\xff\xc2\xbf\x49\x36\xea\x13\xe7\xe0\xe1\x97\xdd\ \x29\x4a\x16\xeb\xce\x8c\x8f\x8f\x1f\x23\x2a\x98\x04\xa9\x27\x1c\ \x89\xd8\x4c\xaf\x19\x89\x53\xa7\xaf\x22\xcb\x4a\xab\x9c\xaf\x90\ \x81\xd5\x2d\x53\x0c\xb6\x2a\x73\xaa\x50\x05\x43\x2e\x0b\xe0\x84\ \xd9\xa2\x2b\x15\xb0\x96\x62\x95\xe3\x0a\x54\x6b\x51\xc1\x05\xd8\ \x1a\x8c\xb8\x50\x09\xcc\x00\xe9\xa2\x50\x02\x9c\x48\xf9\xe8\x4d\ \x40\xa1\x26\xd6\x57\x8f\x23\xdb\x8c\x26\x7c\x51\x1d\x66\x0d\x9b\ \x1f\x7c\x50\x43\x77\xdd\xa1\x2c\x51\x69\x6a\x7a\xda\x00\x1e\xbb\ \x59\x0e\xbf\xf8\xb5\xbf\xf8\xef\xf7\x47\xf2\xd9\xf1\xb3\xac\xfd\ \x57\xb9\x59\x3a\x82\x05\xdc\xc4\xcf\x61\xfe\x94\x24\x69\x17\xdb\ \x68\x44\xe5\x68\x37\x48\x85\xca\x00\x62\x7e\x5e\xc5\xf1\x17\x15\ \x29\x8f\x29\x1d\x98\x57\xa8\x51\x6d\xed\x0a\x35\x8d\x55\xfe\xf9\ \x9a\x10\xff\x1c\x4b\x9d\xfd\x4e\xed\x37\xc4\xed\x1e\x23\x9e\xd4\ \x29\x67\xa1\x20\xc2\x0c\xa2\x6d\x46\x2f\x2c\x4c\x4e\x34\xc1\x34\ \x56\xa6\x17\x71\xd7\x5d\xda\xf8\x9e\x7b\xd5\xc0\x12\x17\xb3\xcb\ \x76\x57\x3a\x95\xac\x8e\x1c\x3c\xf4\xf8\x5f\x3f\xf4\x95\x8f\x77\ \x57\x4a\xa7\x8f\x4b\xee\x6b\xb1\x5d\x3e\x44\xc7\x68\x2b\x7b\x08\ \x3f\xc5\x6f\x05\x7e\x97\x5c\xc1\x61\x03\x92\x22\x21\x80\x09\x33\ \x8e\x19\x7f\xa6\xa7\x57\x3e\x7d\x08\x3f\x3d\xa5\x1e\x65\x11\x48\ \x49\x81\x6a\xc3\xee\x23\xf0\xd7\x01\x4b\x5b\x11\x43\xcd\x76\xba\ \x6b\x81\xc3\x69\x63\x82\x9f\xf3\x86\x60\xda\xe4\xfa\x68\xde\xa3\ \x08\xba\x58\x71\x75\xae\xe1\xd1\x97\xdc\xa3\x4d\xec\x47\x0e\xb2\ \x1b\x2d\x47\x42\xb6\x40\x92\xc3\xfe\x3f\xa3\xf9\xc6\x81\x7d\xfb\ \xfe\xc7\xf7\xfe\xfa\x6f\xfe\xeb\x48\xd3\xbb\x78\x04\x91\xbe\x96\ \x3f\x98\x08\x40\xc3\x3b\x77\xee\xfc\x83\x37\xbd\xe9\x4d\x0f\x12\ \x26\x53\xec\x20\x17\x20\xa9\xb0\xc9\xfd\x59\x68\xdc\x41\x61\xc5\ \x9c\x0a\xaf\x9e\x94\x26\xc7\x15\x9a\xbf\xa4\x1e\x9a\x1b\x09\xf2\ \xf6\x40\x89\xd4\xb5\x4a\xee\x6e\x84\xc0\x3f\xf1\x8c\x7c\x50\x20\ \x88\x79\x87\x60\x38\xa2\x1a\xe3\x54\xa9\xaa\x59\xee\xa9\x62\x69\ \x03\x6f\x78\x83\x46\xd8\x7d\xee\x74\xa5\xf1\xa0\xaa\x96\xb2\x59\ \x9b\xe1\x4d\x63\xf6\x67\xcf\x9c\x99\x7b\xe6\xc9\x1f\xfc\xa7\xa3\ \xcf\x3d\xff\xcd\x95\xd4\x73\x07\x25\xef\xf5\xf8\xc9\x8c\x03\xa5\ \xf9\xdc\x7a\xc7\x1d\x77\x7c\x82\xd7\xcd\x6f\xc6\x25\x7c\x84\x4b\ \xc5\x63\x31\xbb\x83\x3b\x2c\x29\xee\x0f\x28\xe6\x43\xb3\xe4\xe3\ \x45\x4c\xb4\x3a\x35\xa9\xe6\xec\x8c\x7c\x30\xa0\x82\x79\x77\x50\ \xb7\x55\x5e\xc3\x54\x85\xe1\x88\x5c\x00\xd6\x4b\x53\xe3\x0f\xf4\ \xab\x7f\xcb\x56\xf5\x6e\xdd\x22\x1f\x6e\x46\xd9\xa0\x3c\x6e\x96\ \xe3\x99\x2c\xcf\xd2\xd4\x10\xd9\xaa\xcb\xa6\xcd\xbf\xfb\xc1\xf7\ \x1f\xfd\x6f\xde\xe2\xe2\xd1\xf5\xf2\x2a\x3f\x92\x9a\xaf\xf7\x8f\ \xa6\x82\xd0\x8a\x0d\x1b\x36\xdc\x73\xe3\x8d\x37\xde\xbf\x7e\xfd\ \xfa\x1b\x00\x4a\xb3\xc9\xda\x6e\x47\x09\xe3\x1a\x21\x63\x15\x50\ \x14\x0d\x47\x8c\x60\x10\x4a\xc0\x74\x6b\x3b\x11\x83\x63\x87\xeb\ \xe2\x9a\x82\x41\x46\xbf\x5c\x47\xb6\x86\x2f\x03\x6e\x14\x26\x2a\ \x96\x4a\xc8\xab\xd0\xc9\xeb\xbd\xd3\xe3\xe3\x2f\x1c\xdc\xf7\xe2\ \x97\xce\x1d\x1d\x7b\x22\xd3\x6c\x2c\x8d\x4b\x8d\x5f\xe7\xcf\xe6\ \x1c\x28\x02\x0d\xaf\x5b\xbb\xf6\x2d\x3b\x76\xee\xfc\x17\xb8\xc5\ \x6e\x04\x11\xc2\x42\xac\x20\x00\x4f\x11\x3d\x14\x0c\xc0\x3c\xcc\ \xf2\xfb\x20\x2c\x3f\x00\x01\x78\x68\x9f\xff\xd9\xa4\xa8\xe1\x79\ \x96\xea\x00\x62\x0d\xe6\xcb\x30\x6f\x18\xe7\x17\xa5\x26\xa7\x2f\ \x4f\x9c\x3f\xff\xdc\xe1\xfd\x07\xbe\x7a\xe1\xd4\xf8\xd3\x51\xcf\ \x9d\x0f\x49\xb5\x73\xbf\x41\x3f\x9c\x74\xa0\x30\xec\xf4\x26\x62\ \xb1\x2d\xdb\x77\xee\x7c\xc7\xc8\xe8\xe8\xef\x80\x0f\x1b\x32\xec\ \xd4\x64\x07\xea\xdf\x0b\x02\x4d\x07\x10\x46\xe7\x5d\x9d\xda\xbb\ \x37\x08\xb7\xb6\x75\x45\x35\x6a\x4b\xd8\xa5\xc5\xc5\xc2\xfc\xdc\ \xdc\x31\x36\x6b\x3e\x79\xe4\xc5\x17\xff\x4f\xad\x54\x79\x35\xe8\ \xd5\x97\x03\xa6\x60\x93\x9a\xbf\xa9\x3f\x9d\x75\xd4\x2a\x0d\xa2\ \xb0\xd7\x8d\x81\x0f\xaf\xdd\xb0\xfe\xc6\x15\xc3\xc3\xd7\x03\x94\ \xab\x12\xc9\xd4\xca\x70\x24\x9c\xa6\xf1\x8a\x57\x04\xc3\xdc\x6c\ \x18\xaf\xd0\xb2\x2a\xc1\xfc\x32\x6d\xab\x0b\xec\x4e\x3f\x37\x39\ \x31\x71\xf8\xec\xa9\xf1\x83\x5c\x9f\xa6\xfa\xcb\x8a\x3e\xd1\xb2\ \xe4\xfd\x36\xfe\x78\x9a\xba\x0f\xb7\x97\xc8\xf2\x15\x91\x15\x8c\ \xc3\xe8\x84\x9a\x9c\xc7\xfc\x3d\x47\xb8\x3d\x90\xc8\xf5\x32\x9b\ \x54\xcb\xa0\x80\xcd\x08\x0c\xd7\xaf\xf5\x8f\xa8\x9d\xdf\xb0\x5f\ \xad\x37\xf5\x3a\x7f\xfe\x1f\x5f\xbc\xdd\xe6\x1a\x53\x0c\xc2\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x13\x09\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\ \x1b\xaf\x01\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xd7\x09\x17\x17\x15\x19\x49\x86\x70\x41\x00\x00\x12\x96\x49\x44\ \x41\x54\x78\xda\xed\x5b\x09\x74\x5c\xd5\x79\xfe\xee\x7b\xb3\x6b\ \xb4\x5a\xb2\x25\xd9\x96\x64\x63\x6c\x83\x31\x36\xb6\x81\x00\xe1\ \xb0\x34\x14\xc2\xda\x94\x86\x04\xd2\x90\x42\x72\x20\x5d\x20\x14\ \x68\x08\x4b\x48\x09\x87\xda\xad\x73\x52\x52\x02\x24\xad\x7b\x20\ \xe4\xb0\x95\xcd\x40\xb0\x1b\x56\x2f\x80\xb1\x2d\xdb\xd8\xb2\x6c\ \x6c\xd9\xb2\x2c\xc9\x1a\x4b\x1a\x69\xf6\xe5\x6d\xf7\xf6\x7f\x33\ \xef\xf0\xf4\x3a\x9a\x19\x1b\x26\x3d\xc9\x69\x7e\x9d\x4f\xf7\xbd\ \xfb\xee\x9b\x79\xdf\x77\xff\xe5\xbe\x2b\x1b\x7f\xb4\x3f\xda\xff\ \x6f\x63\x38\x0e\x1b\xbb\x05\x75\x52\xed\xf4\x8b\x5d\x33\x97\x5c\ \x06\xb7\xef\x3c\xa1\xa4\x3c\xd0\xb3\xc3\x42\xcd\x0c\x71\x35\x15\ \x12\x4a\x22\xc4\x53\xe3\x21\x91\x8d\x85\x84\xc0\x10\x80\x10\xe1\ \xe8\xd4\x9f\x43\xf9\x83\x16\x40\xfc\xd8\x7f\x95\x68\x5d\x76\x37\ \xe7\x58\xc6\xd3\x51\x99\x08\x42\x70\x01\xe1\x0e\x12\xaa\xc0\x65\ \x3f\x84\xec\x81\x60\x6e\x82\x0b\x90\x5c\x10\x82\x03\xdc\x00\xd7\ \xd2\x02\xba\x32\x2e\x0c\x6d\x48\xe8\x6a\x48\x68\x4a\x48\xe8\xd9\ \x10\x57\xd3\x24\x54\x7c\x48\x68\xd9\x90\x30\x85\x12\x08\x4d\x7f\ \x0c\x99\xdf\x3b\x01\xc4\x03\x9e\x3f\xc7\xf9\xf7\xbf\x88\xe6\x45\ \xcc\x24\x04\xae\x03\x26\x39\x43\x05\x32\x11\x80\xc4\x80\x9a\xcc\ \x43\xcf\x40\x68\x19\xf0\x6c\x82\x90\x02\x57\x92\xe0\xa6\x50\xb2\ \x0f\x5c\x48\x04\x53\x13\x4e\xd0\xc1\x75\x2d\x27\x14\x40\xd7\x0d\ \x03\x24\x0a\x41\x8d\x0a\xae\x87\x08\x43\xc2\xa0\x36\x07\x95\x04\ \x33\xa1\x0c\x09\x6e\x84\x00\x84\x3a\x1e\x47\xf2\xff\x4e\x80\xa7\ \x2e\xee\xc4\x99\xb7\x2c\x85\xb0\xc8\x73\x23\x07\xc7\xb9\x28\xd6\ \xa7\xe7\xa1\x98\xe2\x64\xed\x3e\xd3\x84\x00\x57\x33\xa4\xa3\x42\ \xc8\x82\x73\x0e\x03\x6e\x70\x12\xd6\x50\x32\x39\x01\x0d\x12\x52\ \xcf\xc4\x01\xba\x26\xcc\x1f\x6e\x80\x3c\x89\xa0\x27\x68\x60\x4e\ \x90\x1c\x04\x0f\x01\x3c\xc4\x64\x98\xd8\xd9\x71\x29\xba\xd9\xc5\ \x10\x95\x11\xe0\x85\x6b\x53\x58\x78\x6d\x20\x3f\xf3\x46\x09\x01\ \x9c\x62\x38\xc6\x8b\xdc\x35\x1b\xa2\xc8\x58\xf2\x1e\x40\x00\x14\ \x4e\x90\xdc\x80\xcb\x47\xf0\xe7\x3c\x46\xd7\x75\x18\x9a\x96\xf3\ \x20\x9d\x33\x12\x27\x09\x3d\x35\x06\x75\xa4\x07\x7a\xa2\x0f\xae\ \x00\x03\xf3\xe4\x6f\x37\x14\xf1\x3a\x35\xdf\xe8\x58\x81\x04\xca\ \x98\x0b\x65\x8d\xb9\x72\x0f\x97\x8b\x69\x82\x63\xc6\xb9\x89\x82\ \x63\xc7\x78\x61\x58\x2d\xb7\xfa\x8b\x8c\x35\x21\xc9\xf9\x3e\xcd\ \xf4\x96\xd4\xa7\xe2\x48\x34\xc6\x63\x0b\x95\x0f\x3f\xd9\x0b\xd4\ \xd7\x00\xb3\x2e\x85\xde\x34\x97\x9c\xec\x03\xe8\x43\xab\xc1\xb3\ \x06\xd4\x38\xae\xc8\x8c\x88\x55\xa2\x1b\x5f\x63\x0b\x50\xd2\x24\ \x94\x35\x0e\x88\x89\x04\x78\x01\x81\xa2\xd7\x45\x31\x91\x8a\x7c\ \xd6\xb1\x7e\xb6\x69\x5a\x1a\x48\x1c\x01\x0e\xbf\x0f\xd7\xbe\x35\ \xa8\x5a\xba\x02\x9e\xe9\xcb\x00\x96\x1f\x0a\xce\xbe\xda\xf3\x38\ \x4e\x00\x3e\xaf\x00\x42\x4c\x70\xdd\x22\x33\x69\x79\x44\xd9\x87\ \xe7\xe5\xbd\x80\x50\xfe\xb3\xed\x6b\x79\x11\x0e\xbc\x09\xac\xbd\ \x13\x7a\x66\x16\x52\x43\x02\xe9\x61\x01\x35\x29\x98\xa1\x62\x49\ \x25\x04\x28\x7c\x38\xce\x8b\xcc\x6c\x31\x61\x8e\x91\x38\x2f\x15\ \x5a\x93\x08\x13\x27\xf2\xe9\x31\xe4\xec\x93\xd5\x30\x12\x5e\xa4\ \x8f\x9a\xe4\xf3\xb7\x42\xc0\x5f\x81\x1c\x20\x0a\xc9\xd8\x84\x4a\ \x92\x71\x1e\x97\x0a\x25\x5e\x46\x9c\x42\xf1\x6c\xf2\xf6\x44\x31\ \xdd\x2c\xaf\xd6\x23\xc3\xb2\xcf\x2d\x40\xa1\xdb\x15\x78\x41\xb1\ \xd8\x75\x1e\x17\x0f\x95\xc2\x44\x59\xc6\xc3\xe2\x83\x44\x3e\x8c\ \x02\xe3\x1a\x84\xc5\xbc\x72\x02\x40\x14\xcd\xe8\x36\x81\xe3\x4d\ \x88\x45\xae\x17\x92\x2d\x1c\x1f\x1b\x70\x90\x77\x98\xa1\x43\xa0\ \xd2\x02\x08\x41\x30\x8e\x3d\xa3\x17\x86\x4a\xf9\x24\xc8\x8f\x31\ \x29\xc6\x4b\x90\x27\x13\xa6\x07\x4c\x9c\xb7\x0a\x09\xe0\x24\x5b\ \xbe\xd4\x95\x5f\x03\x94\xff\xac\x42\x0f\x8b\xf5\x03\xa9\x51\x94\ \x34\x43\xb7\x89\x57\x38\x04\x2c\x18\x05\x0f\x57\x9e\x4c\x91\x6b\ \x28\xa8\x26\xc5\x45\x8d\x1d\x2e\x4f\x1e\xc8\x2f\x93\xe1\x14\xa0\ \x12\x65\xd0\x41\xb6\x10\x45\x32\x36\x6c\xa2\xb9\x7e\x10\x98\x75\ \x0e\x6e\x9d\x13\x60\xf7\x4d\x9a\x10\xcb\xcf\xbc\x33\x09\x02\x36\ \x44\x25\x04\x40\xc9\x44\x35\xb9\x10\xb0\x88\xb1\x63\x24\x6e\xc2\ \x3e\xb6\xbf\x27\x6a\xce\xfc\x08\x8e\xd5\x04\xd7\x2d\xe2\x16\x2a\ \xe4\x01\x65\x56\x7a\x0e\x22\xc5\x88\x95\x12\xc3\xea\x73\x0a\x87\ \x58\x5f\x01\xf9\xb2\x66\x38\xca\x60\x25\x05\x28\x1f\xdb\x4e\x21\ \x9c\x64\x0a\x3d\xc2\x26\x6e\x0b\x64\x58\xe0\x40\x9c\xc8\x67\x88\ \xbc\x54\xe4\x7d\xb5\x74\x15\x70\xa0\xd2\x2b\xc1\x82\x38\xb7\x60\ \x93\x13\xff\xdb\x0b\x2c\x62\xc2\xe1\xe6\x36\x59\x82\xe3\x38\x7e\ \x88\xc8\x0f\x03\xb2\x35\x54\x58\xe0\x28\x67\xf6\x3a\xc0\xf6\x82\ \x0a\xaf\x04\x3d\x55\x40\xfd\x09\xf9\xa7\xd1\xd3\x40\x26\x0c\x24\ \x8f\x02\x5a\xd2\x99\xe8\xec\x58\x2e\x14\x88\x39\x12\xa3\x53\xa8\ \x78\x6f\x9e\xbc\x64\x3d\x3d\xb3\x45\xb0\xfd\xba\x74\x15\xb0\xcb\ \x60\xe5\xd6\x01\xb6\x08\xfe\x29\xc0\xdc\x4b\xe1\x34\x91\x17\x61\ \x6c\x2f\x10\xfa\x28\xe7\xbe\x85\xee\x4f\x10\x13\xfa\x84\xc3\xe5\ \xf3\x6d\xe2\x90\x93\xbc\x4d\xd6\xd9\xf2\x12\xcc\xac\x24\x58\xe9\ \x75\x80\x23\xbb\x17\x1a\x03\x82\x2d\x79\xb4\x5f\x98\x17\xe0\xe0\ \x6b\xc0\x48\xa7\x33\x1c\x18\x01\x36\x79\xb3\xb5\xc9\x9b\x33\x7f\ \xd4\x72\xfb\x32\x02\xc0\x1e\x53\x72\x1d\x20\x08\x15\x4d\x82\xb0\ \x50\xce\x6a\x3a\x80\xd3\x6e\x05\xce\xb8\x17\xa8\x9e\x3e\x21\xce\ \xed\x7c\x60\x9f\x5b\xe4\xb3\x16\x79\x09\xd4\x5a\x90\xca\x80\xa1\ \xf8\xcb\x90\xa8\x64\x15\xc0\x24\x19\xdf\x50\xca\xaf\x32\xea\xe7\ \x01\xe7\x2c\x07\x3a\x2e\x73\x84\x84\x0d\x93\xfc\x41\x22\x1f\xb2\ \x49\x95\x03\x2b\x2d\x82\x30\xf4\xca\x57\x01\x22\x6a\x27\xaa\x48\ \x0f\xb0\xee\x6e\x40\xe8\xf9\x73\x6f\x35\x10\x6c\x26\xb2\x27\x02\ \xd3\x96\xd1\x79\x7d\xc1\x76\x22\x4e\xba\x01\xa8\x9b\x03\xec\x5c\ \x09\x18\x9a\x95\x00\x09\x89\x03\x80\x62\x91\x17\x93\x00\x8e\x44\ \x68\x1b\xb7\xa7\xad\x20\x1c\xb8\xe6\x8c\x16\x51\xe9\x32\x88\x89\ \xe5\x4f\x07\xb2\x61\xc2\x30\x30\xba\x1d\xe8\x79\x16\x68\x5c\x04\ \xcc\xfe\x33\xa0\xba\x1d\x0e\x6b\x39\x17\xf0\x90\x58\x9d\x14\x16\ \x9a\x0a\x24\x7b\xec\x99\x17\x25\x92\x9c\x70\x10\x76\x92\x66\x13\ \x20\x9c\x1e\x90\xfb\x55\xb1\x10\x60\x02\xce\x9a\x3f\x59\x19\xb3\ \xb6\xba\x47\xb6\x00\x9b\x7f\x00\x7c\xb2\x8a\xba\xb2\x70\xd8\x94\ \xc5\xc0\x92\xfb\x81\x74\x9f\x49\xbe\x78\xcc\xdb\xfd\xc7\x17\x1a\ \xa6\xd9\x65\x90\x50\xa9\x24\x08\x51\x58\xd7\x6d\xf2\x85\xab\x3e\ \x53\x88\x81\x35\x24\xc4\x1d\x40\x6a\x10\x0e\x6b\x3a\x13\x38\xf5\ \xfb\x05\x64\xcb\x82\x4d\x1a\xff\xce\x7e\xf6\x3b\x5d\x09\x5a\x04\ \xfd\x8d\x40\xfb\x05\x80\xbb\x2a\x17\x6f\x48\x0f\x01\xf1\x83\xc0\ \x78\x17\x60\xa8\x13\x44\xa0\x36\x75\x18\xd8\x4a\x22\x2c\x79\x10\ \xa8\x99\x8b\x4f\x6d\xfe\xdf\x00\xa3\x1f\x00\x87\x9e\x01\x50\x26\ \xfe\x51\xc2\xf5\x25\x47\x9e\xc8\x83\xeb\xf6\xed\xa2\x32\xeb\x00\ \xe7\xcc\xfb\xea\x80\xd6\xb3\x60\xdb\x52\x02\xf2\x2b\xc1\xa1\x77\ \x80\xbe\xd5\x74\x1c\xb1\x17\x3b\x5a\x14\xd8\x7e\x17\x89\xf0\xcf\ \x4e\x11\xce\x7c\x04\x18\x79\xd7\xac\xfd\xc5\xe3\x9f\x17\xf5\x4f\ \x27\x69\xc9\x3e\x17\x10\x16\xf1\x8a\x87\x80\xed\xee\x93\x9a\x3b\ \x08\xb4\x5f\x05\x9c\xf5\x53\xa0\x71\xa9\xf3\xe5\x66\x7c\x2b\xb0\ \xfe\x72\x40\x8b\xd9\xe3\x3d\x0d\xa4\xdd\x4f\xca\xd7\x7c\x66\xb7\ \x36\x8a\x84\x06\x9b\xc4\xa1\x2a\x23\x80\x73\x25\x58\xd2\x3c\xf5\ \xc0\xe2\xfb\x80\xb6\x2b\xf2\x5e\x90\xd8\x07\x28\x47\x80\x54\x0f\ \xb0\xfd\x56\x38\xac\xfd\x5a\xa0\xe1\xb4\xcf\x50\xfb\x4b\xc2\xb1\ \x12\x14\xa2\x62\x02\x70\x0b\x02\x50\x62\x40\x78\x17\x30\xb2\x0d\ \x48\x0e\x4e\xf2\x2d\x0c\x98\xfb\x5d\xa0\xf1\x4c\x20\x3b\x68\x3f\ \x78\xff\x53\x74\xcf\x3b\x13\x86\x51\xe7\x29\xf7\x1d\x67\x22\x2c\ \x71\xcc\x9c\xc4\x05\x2a\x97\x03\xec\xfa\x3f\xbe\x17\xd8\x70\x1b\ \x00\xdd\x0a\x09\xeb\x05\xa9\xe3\x4a\x60\xc6\xc5\xce\xa5\xd9\xc2\ \x1f\x11\xe1\xdf\x02\x91\x4e\xfb\x41\x77\xdf\x05\x5c\xb8\xd5\x1e\ \xd7\x4a\x61\x13\x6c\x03\x92\xfd\xce\xd8\x67\x36\x0a\x63\xbd\x04\ \x80\xcf\xb6\x27\xf8\xe0\x7d\x37\x2d\xdc\xf2\xf6\x4f\xa5\xd2\x55\ \x80\xc0\x55\xe7\x92\x18\x84\x4c\x08\xd8\xfb\x18\xb0\xfd\x87\x80\ \x91\x99\xf0\xc9\x6e\xe0\x0b\xbf\x06\x5c\x2e\x7b\x16\xe3\xdb\x80\ \xd1\x89\x5e\x20\x03\xed\xdf\x2c\x3b\xf3\x4e\x14\xef\x17\xec\x33\ \xe6\x80\xb7\x37\xf7\xae\x7e\x6b\xc3\xbe\x5f\x90\x08\xac\x68\x0e\ \x28\xdc\xf3\x73\x2e\x90\xc6\x3a\x81\x0f\x6f\xb4\xfa\x2c\xab\x9e\ \x0f\xb4\x5d\xe7\x8c\xe3\xfe\x5f\xc2\x61\xd3\xaf\x2e\x41\xba\x4c\ \xdc\xa3\xe0\xdc\x0e\x83\xe3\xc9\x01\xe3\x8a\x9e\xed\xdc\x35\x38\ \x7f\xc7\xee\xc1\x7f\x25\x11\x4a\x6f\x89\x81\x3b\x84\xb0\x77\x6f\ \xf7\x00\x87\x9f\x03\xf6\xac\x84\xc3\xe6\xdd\xe5\x24\x37\xba\x06\ \x30\xd2\xf6\xf5\xda\xc5\x80\x7f\x6a\x01\xe9\xe3\x24\x6e\x0b\x20\ \x3e\x83\x07\x24\x33\x19\x43\x81\xfb\xce\xd7\xdf\xec\xba\xe6\x50\ \xff\xd8\x43\xc5\xdf\x06\x09\x81\x16\xe0\x8c\x1f\x03\x17\x3d\x4f\ \xed\x0a\x20\x38\x33\x4f\x3e\x3d\x80\x9c\xed\xa5\x9a\xaf\xc5\x27\ \x78\xc1\xc9\x40\xcd\x7c\x9b\x94\x20\xf2\xd1\x0f\x9d\x49\x73\xca\ \xd9\x85\xa4\x51\x36\xde\x0b\xc9\x33\x27\x71\x21\xb9\xe5\x63\x12\ \x20\x95\xc9\x1a\x29\xdd\xc8\x8e\x45\x92\xb7\x3c\xbb\x7a\xeb\x3d\ \x6b\x5f\x78\xf0\x9e\xc2\x3f\x8d\xf1\x7c\xe6\x5e\x72\x27\x50\x6f\ \x12\x72\x01\x75\xd4\x9e\xbe\xc2\x76\x7b\x86\xfc\xe2\xe7\xc8\xab\ \x70\xd8\xd4\x8b\x9d\x33\x1b\xdb\x0c\x87\xd5\x2e\x3a\x0e\xa2\x65\ \x44\x80\x05\xfa\xb5\xcb\x77\xfa\x2f\x96\x3f\x70\xeb\xeb\x8f\x3d\ \xfc\xc3\xef\xfc\xec\x27\xf7\x4e\x2f\x5a\x05\x32\x8a\xa2\x27\xd2\ \x19\xff\xf6\x4d\x9b\x5e\x5a\xba\x74\xe9\x6b\xcf\xbc\xbc\xf9\xa1\ \x0f\xff\x7b\xe5\xc8\xd9\x97\xfc\xc3\x2a\x47\x12\xac\x99\x0d\x54\ \xb5\xc0\x61\xee\x1a\xe0\xe4\xef\x01\xdb\xbf\x6f\xf7\x8d\x6e\x00\ \x3a\xbe\x39\xc1\x0b\x4e\x71\xba\x77\x66\x1f\x1c\x56\x75\xc2\xf1\ \x91\x47\x89\xbe\x09\x25\x70\xe3\xa6\x2e\xcf\x86\xa1\xfd\x97\x37\ \xd4\xd7\x5e\x3e\x73\x66\x8b\xf8\xea\xd5\x57\xec\x9a\x36\x6d\xda\ \x7b\x55\x55\x35\xeb\x33\x59\xf5\x83\x7f\x7b\xe4\xe7\xa3\x39\x01\ \x14\x4d\xe3\x14\x06\x7e\x90\x71\xce\xff\x76\x67\x77\xff\xb9\x2f\ \xbd\xb1\xed\x71\xca\x07\xc3\x38\xfc\xa4\x2d\x80\x96\x29\xb2\xf9\ \x71\x0a\x1c\x96\x19\x80\xc3\x7c\xcd\xce\x87\x56\x87\xe0\x30\x6f\ \x4b\x59\x82\xe5\xc9\x3b\x63\x9f\x83\x61\x6a\x9d\xf7\xad\xda\x54\ \xed\x02\x26\xb9\x5a\x87\x47\xa2\x6c\x6c\x3c\xb9\xa8\xb7\x6f\x68\ \x91\x2c\xcb\xb7\xa9\xaa\xca\xe7\xcc\x99\x73\x7b\x4e\x00\x5d\xd7\ \x59\x3a\x9b\x0d\x80\x6c\xc7\x8e\x1d\x83\x0b\x16\x2c\xf8\xbb\x35\ \x6f\xef\x7c\xba\x65\x5a\xed\x73\x27\x9d\x30\x53\x0e\x72\xc3\xda\ \xc1\xe9\x07\xd2\x47\x81\x40\x33\x1c\x96\x3c\x0c\xe7\x02\x5c\x86\ \xc3\x5c\xb5\xce\x35\xbf\x91\x82\xc3\xe4\x2a\x1c\x97\xb1\xc9\xfb\ \x46\xb2\x3e\xbc\x1f\xa9\xc3\xc1\x4c\x2d\x0e\x67\x6b\x30\x1e\x4b\ \x5f\xa4\xeb\x49\xc4\x62\x31\x28\xe4\xe5\x84\x7d\xc4\xb5\x95\x73\ \x5e\x6f\xf9\xe2\x2c\xf3\x17\xb8\x10\x8c\xf2\x40\x10\x96\x75\x77\ \x77\x3f\x63\x18\xc6\xd3\xff\xf9\xf4\xba\xc0\x6b\x91\xb9\x72\x5a\ \x78\x00\x6e\xfd\xe3\xc8\xf5\xb7\xe5\x57\x83\xb0\x2c\x3b\x0a\xec\ \x7c\xc8\x49\xb0\xaa\x03\x0e\xd3\xe3\x70\xee\xef\x7b\x50\x60\xf6\ \xfd\xc7\x65\xe3\x59\x37\x7e\xb5\xb7\x19\xd7\xbf\xbd\x00\xcb\xfb\ \xcf\xc5\x7b\xb1\x99\xd8\xdc\xaf\xe0\xc0\xde\x2e\xd4\x25\xba\x51\ \xa7\xf4\x3f\x5a\x53\x53\x73\xe1\xca\x95\x2b\x67\x90\x00\x4b\x67\ \xcf\x9e\xdd\x23\x49\x12\xac\x6f\x7a\xcb\x05\xb2\x80\xcf\xd3\x94\ \x55\x95\x46\x4c\x30\x12\xe0\x26\x55\x35\x4e\x5e\xfe\xd8\xda\xd3\ \x3c\xb7\x5c\x86\xcb\x9b\xfa\xe0\x33\x5f\x7b\x93\x7d\x24\xf5\x26\ \x60\xee\xd7\xf3\x1a\xf6\x3c\x01\xa8\x24\x82\x3c\xe1\xe1\x5b\x2e\ \x83\xc3\x52\xbd\x36\x79\x46\x90\xeb\xe1\x30\x6d\x1c\x10\xc7\x21\ \x82\x99\xe0\x46\xaa\xf0\xec\xee\xa9\xd8\x12\x9e\x06\x4d\xd7\x10\ \x8f\x8f\x43\x44\xdf\xc3\xe5\x73\x0d\xcc\x59\xe4\xc3\x89\xb3\xda\ \xe0\xad\x6d\xa6\x3c\x7d\x41\x5f\xfb\x95\xf7\x0c\x03\x10\x0f\x3f\ \xfc\x30\x23\x5b\x2c\x44\x2e\x6b\x5f\x4d\x78\xc3\x75\xcf\xdf\x5f\ \x83\xc7\xd6\xee\x6c\x4a\xa6\xd5\x16\xcb\x2d\x38\x01\x07\x0f\x1e\ \x4c\xb7\xb5\xb5\x7d\x25\x1a\x49\x6c\x5d\xf1\xcb\xdf\x36\xc9\x37\ \x7e\x11\x97\x64\x87\xe0\x96\x00\x16\xeb\x07\xdb\xfe\x2f\x80\x79\ \x2c\xe3\xd3\xed\x6c\xc6\xac\x87\xdf\xf9\x03\xe0\xc0\xa3\x66\xc9\ \xcc\x23\xfc\x2e\xc0\x27\xb8\xaf\x6f\x0e\x1c\xa6\x5a\x02\x38\x45\ \x98\xb4\x6f\xf3\x60\x10\xab\xb6\x35\x63\xd3\x61\x2f\xa2\xd1\x08\ \x62\x91\x8f\xf1\xa5\x39\x0a\x7e\x74\x9e\x84\xf3\x17\xce\x04\xab\ \x9b\x87\x3d\x83\x40\x64\xe8\x10\xa2\x07\x3b\x11\xee\xdd\x79\xf0\ \x9d\x70\xf3\x01\x00\x7c\xc5\x8a\x15\xcb\xc8\x1b\x3c\x24\xc0\xeb\ \x00\x72\xa5\xca\xd5\xd8\x58\x23\x65\x15\xad\xdf\xd0\x35\x0e\xa0\ \x86\x90\x26\x68\x04\x31\xbb\xbf\xff\x70\xf4\x84\xa6\xeb\x87\x8e\ \x8c\xac\x59\xf1\xe4\x26\x96\xb9\xfa\x6a\x9c\x6f\xbc\x08\x8f\xac\ \x41\x96\xcd\x4a\x48\xa0\x56\xa6\x96\x59\xe7\x8c\x13\xc2\x5d\x60\ \x11\x82\x9c\xaf\x9c\x29\x5d\xc6\xa1\xb1\x00\x8e\xc4\x3c\x18\x8a\ \x7a\x10\x7a\xf5\xbf\x10\xd3\xd7\x21\xcd\xa6\x23\x65\xd4\x01\x24\ \x6c\x2d\xef\x40\x8d\xcf\xc0\xd4\x6a\x0d\x73\x9b\x32\x58\x36\x23\ \x85\x29\x7e\x1d\xa6\x0d\x27\xdc\xd8\x70\xb0\x1a\x2f\x75\x4d\xc1\ \xc7\x83\x12\xc2\xe1\x30\x22\xe3\xe3\xf8\x8b\xa5\xc0\x03\x37\x07\ \x70\xe2\xbc\x2f\xe4\x12\xb1\x88\x1d\x81\x31\xb4\x1d\x91\x7d\x31\ \xa4\x14\x91\x4f\x37\x6e\xb7\x35\x45\x60\x2d\x2d\x2d\x17\x9b\xf9\ \x80\xec\x79\x58\xe6\xba\xfd\xde\x55\x1c\x5e\xff\x12\xa8\x59\x93\ \xfc\x14\x42\x15\x21\x46\xc8\x10\xf8\x99\xd3\x47\xd7\x6d\x3c\x5c\ \xf7\x60\x6f\xdf\x91\xfb\x1f\x7e\x49\x42\xf4\x4f\xaf\xc2\x32\x75\ \x35\x3c\x2e\x1d\x2e\x57\x9e\xbc\xcb\x12\x81\x13\xdb\x50\xda\x8b\ \xc1\xb8\x17\xfd\x51\x1f\x8e\x24\x83\xd8\x3f\xec\x42\x6f\x48\x43\ \x3a\x93\x45\x36\x9b\x85\xaa\x66\x20\x44\x1a\x3e\x5f\x06\x81\xc0\ \x28\x82\xf2\x18\x3c\x48\x23\x6f\x12\x09\xe4\x42\x46\xf7\xc0\xef\ \xaf\xc7\xec\x66\x2f\x3d\x5a\x35\x14\xe1\x43\x86\xee\x1f\x0a\x8d\ \x20\x3c\x36\x86\xa0\x17\x78\xed\x8e\x7a\x5c\xf2\x27\xe7\x03\xb5\ \x27\x43\x28\x29\x18\x07\xd7\xe6\x04\x10\x06\xc0\x49\x79\xc1\x04\ \x84\xe0\x74\xec\xca\x15\x5f\xf3\xbb\xeb\xeb\xeb\xaf\xef\xeb\xeb\ \xcb\x80\x6e\x77\xbe\x0d\x2a\xf4\xe9\x00\xb7\x50\x47\xf0\x13\xa2\ \x9b\x81\x44\xbb\x0e\x76\x61\x7b\xf4\xb9\xf7\x0e\xd7\xce\x3e\xd4\ \x37\xf0\x97\x4f\xbc\xc9\xb0\xff\xa4\xf3\x35\x79\x74\x4b\xca\x60\ \xae\xa0\xaf\xaa\xc6\xe5\xae\x9e\x82\x81\xa8\x84\x81\x31\x8e\x68\ \x3c\x8d\x54\x2a\x83\x44\x32\x8d\x80\x34\x88\x93\x5a\x75\x5c\xbb\ \x54\xc2\xbc\x19\x40\x5b\xb3\x84\xf6\xd6\x20\x9a\xbf\xf4\x22\x24\ \x33\x51\xba\x48\xf3\x9d\x37\x83\x99\x9b\x26\xba\x02\x28\x49\x30\ \x35\x85\xa7\xd6\xeb\xb8\xf1\x3f\x52\x18\x19\xe1\x85\xc9\x9e\x01\ \xab\x6f\x0b\xe0\xbc\x2b\xbe\x05\xe1\x69\x82\x48\x0e\x43\xdb\xf7\ \x12\x90\x49\x12\x61\x19\x0c\xc8\x91\xe7\xd6\x96\x92\x90\x68\xa6\ \x00\xf6\xca\x2b\xaf\xdc\x10\x08\x04\x66\x47\xa3\xd1\x55\x20\x5e\ \xc5\x0a\x8a\x8b\x10\x24\x34\x10\xbc\x84\x64\x73\x10\x89\xf3\xe7\ \x81\x35\x04\x51\xfb\x9b\xfd\x0d\x77\x29\xdc\xfd\xdd\xd6\xd6\x56\ \xf4\xf7\xf7\xa1\x2a\xe0\x05\x37\x34\x84\x86\x23\x30\x0c\x8e\x69\ \xb5\x14\x87\xf3\x25\x9c\x3b\x8f\xe1\x82\xa5\x4d\x68\x9f\x3d\x8b\ \x2a\x5c\x13\x98\xbf\x01\xcc\x5b\x0b\xe6\x0e\x82\x41\x03\xb8\x92\ \x03\x33\xb2\x10\x6a\x14\x2c\x3d\x08\xa4\x87\x73\xdb\xec\x4c\xcb\ \xe2\xd0\x51\x81\xb3\x97\xd7\x62\x24\x1c\x01\x59\x6e\xc6\x3b\x1a\ \x25\xec\x09\x01\xa7\xb5\x09\x7c\xf0\xb3\x0b\x20\xd1\xeb\x37\x4f\ \x47\xa0\xed\x79\x06\x22\x9b\xb4\x37\xaa\x75\x81\x4d\x07\x38\x14\ \x8d\x83\x09\xae\x27\x1b\x16\x2f\x7c\xba\xa7\x4e\x27\xf2\x5b\x3e\ \xfa\xe8\x23\xcf\xc0\xc0\xc0\xa9\x00\x7a\x8b\xed\x07\xe8\x84\x38\ \x41\xb5\x44\xa8\x1d\x4e\x22\xf0\x7a\x17\xa2\x27\x35\x23\x7c\xde\ \xac\xc8\x9d\xef\xf6\x35\xb3\xde\xde\xde\x9b\xcd\x58\x22\x6f\xb4\ \x66\x85\xe1\x9c\x39\xae\xc8\xbd\x5f\x9f\xe5\x9f\xb5\xe8\x42\x6f\ \xb0\x75\x21\x73\xfb\x82\x48\x0b\x05\xc4\x90\xa0\x10\x31\x82\xaa\ \xd0\x61\x14\x3c\xd9\x9f\xdb\x2c\x91\x94\x10\x24\x3d\x01\x99\x09\ \xc8\x42\x40\x12\x66\xcb\xd0\x3d\x5c\x0d\x0e\x39\x37\xdb\x37\x9e\ \x03\x7c\xeb\x6c\x50\x68\x00\x7f\xfd\x42\x2d\x66\x34\x24\x10\x97\ \xdb\xe0\x4a\x2b\x48\xed\x5a\x0d\x91\xce\xd0\x7d\x66\xfc\x09\x08\ \x9d\x23\x95\x11\x54\x1a\x01\xb3\x27\x65\xf8\x1e\x79\x64\x7d\xba\ \xba\x75\x7a\xfd\xbf\xf7\xf4\xf4\xd4\x11\xf9\x1b\x4c\xf2\xe5\x36\ \x44\xb8\x15\xff\x23\x04\x45\x00\x8d\x29\x15\x53\x3b\xfb\x11\xdb\ \xd6\x2f\xc6\x5b\x1b\x95\xef\x69\x9a\x36\x04\xe0\xdb\x84\x36\x02\ \xbc\x6e\xb9\x77\xd9\x89\x35\xf7\xb6\x5f\xf9\xe8\x75\x35\x53\x5a\ \xda\x54\x25\x2d\xa5\x33\x09\xb7\xa6\xa6\x5d\x4a\x72\x14\xa3\xfd\ \xbd\x99\x70\xff\xc7\x6e\x23\xbe\xbf\x5a\x36\xe2\xbe\x80\x57\x54\ \x79\x3d\xc2\x13\xf0\x08\x29\xe0\x61\xb9\xca\xe2\x22\xb8\x19\xc0\ \x0d\xe0\xdd\x81\x39\x48\x24\xba\x30\xb3\x1e\x5b\x82\x6e\xec\x79\ \x6d\x07\x6a\x3d\x2e\x51\x27\x04\x3f\xef\x70\x18\xfa\xc7\x3d\x11\ \xc9\x88\xbf\x2a\xf3\x78\x04\x01\xb7\xcc\x3c\x4c\x80\x71\x01\x45\ \x15\x62\xdf\x30\xd4\xa3\x09\x36\x7a\x28\xea\xde\xf8\xe1\xa0\xdf\ \x35\xeb\xc4\xa6\xd5\x54\xd1\x9a\xf7\xee\xdd\x7b\x37\x80\x5f\x1d\ \xeb\x8e\x90\xb0\xbc\x60\xdc\x6a\x1b\x09\x0d\x02\x08\x1c\x09\x8f\ \x87\x01\xac\x90\x65\xf9\x9f\x7c\x3e\xdf\xf6\x54\x2a\xb5\xd0\xe3\ \xf5\xbe\xdc\x71\xfa\xd5\xef\xcf\x3e\xe5\xec\xaf\x09\x2e\x06\x0c\ \x43\x53\xe2\x91\x70\xf7\xde\x1d\x1b\x77\x6f\xfc\xcd\x93\xa3\xaa\ \x9a\xf6\x41\x57\x7d\x86\x11\x0c\x08\xdd\x5b\x25\xb8\x56\x45\xa1\ \x13\x64\x42\xaf\x97\x99\xde\xe0\x96\x8c\xda\x6a\x9f\x41\x2d\x0f\ \xc6\xa4\x99\xf3\x3b\xfb\xa4\x2a\x55\x51\xe2\x0b\xe6\xe0\x0e\x83\ \x23\xab\xab\xf0\x65\x54\xe1\xf3\xbb\xb8\xa7\xfb\x88\xb1\x64\xcd\ \x3b\x9d\xcf\xca\x2e\xd6\x00\x78\x83\x0c\xc2\xc7\x60\xb8\x05\x87\ \x94\x48\xc3\x08\xa7\xb8\x72\x24\x2a\xbc\x9a\x67\xda\x17\x3b\xe6\ \xcc\x98\xd1\xd5\xd5\x95\x08\x85\x42\xf7\x00\x78\xf4\xb3\x6c\x89\ \x19\x84\x84\x25\xc2\x14\x0b\x33\x08\x11\xc3\x30\xc6\x1a\x1a\x1a\ \xb6\x64\x32\x99\x85\xfe\x40\x70\xd7\x57\x6e\xbc\x77\x9a\xcb\xed\ \x35\xb3\xed\xfb\x5d\xbb\xf7\xbc\xb1\xa3\x73\x6b\x94\x43\x97\x1a\ \x4f\xfa\x32\xe3\x5c\x65\xa4\x89\xc4\xf5\x2c\x33\xd4\xb4\xa4\x2b\ \x29\x49\x57\x93\x32\x65\x6f\x59\xa3\x96\x67\x53\xee\x31\x2d\xed\ \x19\x1c\x63\x0b\xdd\xcd\xcb\x1e\xdd\xd9\xf5\x3a\x24\x86\x07\x3b\ \xa6\x62\x9b\x00\x1d\x6a\x90\xb8\x4c\xe9\xc4\xa5\xde\x3e\x2c\xd8\ \x5b\x4f\xae\x1f\x9b\x75\xe1\xb2\x59\xcf\xb7\x34\xf8\xd3\xe3\xb1\ \xd4\xb4\xd1\x68\xfa\x84\x70\x4c\x9f\x6f\x48\xfe\x99\x9e\x40\x5d\ \xa3\xab\xc6\x1f\x8c\x86\xc3\xea\xce\xee\xf7\x5e\xd6\x75\x7d\x39\ \x80\x5d\x04\xed\xf3\xfc\xaf\x31\x66\x89\x55\x4b\x98\x6a\x95\xca\ \x24\xd5\xd5\x9b\xa8\x26\xdf\xd6\xdc\xdc\xfc\x0d\x7a\x87\x50\xd2\ \xe9\x74\xe2\x8d\x37\xde\xd8\x3d\xc9\x96\x86\x80\x05\xd3\x98\x10\ \x9c\xc3\xe0\x42\x37\xe8\x48\xe5\x86\x9a\x11\xdb\xb6\xed\xa8\x86\ \xb7\x7a\xed\xde\xbd\x9f\xcc\xeb\xec\xec\xdc\x0e\xe0\x4c\x82\xfe\ \x8f\x00\xd6\x2d\x06\x4b\x8d\x83\x45\x63\x90\x7b\x13\xec\x2c\xba\ \xf3\x79\xb7\xdb\xdd\xec\xf5\x7a\x55\x6a\x99\xcb\xe5\x72\x93\x81\ \xc8\x1a\xf1\x78\x7c\xbf\xa2\x28\x6b\x01\xfc\x5a\x08\xd1\x5d\x40\ \xbc\x9c\x07\x94\x08\x09\x8d\x10\x21\x28\x84\x26\xc2\x14\x55\x55\ \xe3\xe6\xba\x9a\xda\xa6\x97\xc9\xc8\x2b\x38\x00\x97\x53\x00\xe7\ \x9f\x3d\x18\x63\x1c\x8c\x41\xa2\x1f\x78\xdc\x02\xf0\xf1\x77\x37\ \x7c\xd4\xee\xf7\x57\x3d\x91\x88\xc6\xe6\x6d\xdb\xb6\x6d\x14\xc0\ \x35\xd6\x78\x99\x04\x90\xf0\x31\x64\xab\x2a\xd5\xe4\x77\x54\x70\ \x0b\xe5\xa1\xb3\x08\xb5\xd6\x73\x85\x09\xfb\x09\xa6\x70\x7d\xd6\ \x62\x4e\x54\x66\x57\xb8\x30\x24\x92\xd6\x97\x66\x69\xc6\x37\x92\ \x00\x4a\x22\x91\x38\xe3\xc0\x81\x03\xaf\x51\x79\xe4\x74\x2e\x13\ \x49\x13\x92\x55\x21\x72\xe4\xf3\x13\x2f\x0c\xab\x95\x48\x2c\xb1\ \x6e\xdd\xba\x36\xba\x7e\x3d\x2d\x4f\xbf\x73\xe8\xd0\x21\xff\xa6\ \x4d\x9b\xc6\xe9\xda\x5f\x01\xc8\x12\xda\x26\x7c\xa7\x36\xc1\x0b\ \x93\x84\xdd\x84\x4e\x42\x8a\x90\xb1\x26\x45\x2f\x47\xba\x74\x08\ \x1c\xff\x7d\x32\x21\xe0\xf1\x78\xbe\x4d\x1e\xb0\x9c\xc2\x60\xe5\ \xa9\xa7\x9e\xba\x9e\x92\xa3\x9b\x5c\x93\x51\x82\xe4\xe4\x9a\x3a\ \x09\xa2\x72\xce\x0d\x1a\x23\x28\x5f\xc8\xe3\xe3\xe3\x33\xfc\x7e\ \xff\x29\x34\xe6\x22\x6a\x97\x51\x82\x62\x94\xa1\x0d\xea\xff\x10\ \xc0\x2a\xc2\x51\x8b\x50\xc2\x2a\xc9\xb1\x1c\x51\x27\x41\x6e\x41\ \xe0\x73\x1a\xab\xc0\xfd\x26\xae\x63\x8c\x3d\x4c\xa4\x6a\xab\xaa\ \xaa\x86\x89\x58\x8a\xda\x0c\x09\x20\x3c\x79\xf3\xd1\xf5\x06\x42\ \x8d\x39\xfb\xe4\x39\x88\x44\x22\xc6\xd0\xd0\x50\x2f\x79\xc2\x06\ \x6b\x69\x3a\x60\x11\x4d\x12\xd2\x96\x08\x9a\x4d\xf6\x77\x63\x0c\ \x95\xb3\x2a\xc2\x97\x09\xa7\x13\xda\x2c\xc2\x75\x04\x37\xe7\x5c\ \xb2\x5e\x41\x23\x84\x83\x84\x6e\xc2\xfb\x84\x7e\x6b\xa6\x8d\x72\ \x7f\xd6\xfb\x03\x10\xa0\xf0\xf3\x1c\xff\x0a\xc0\xf9\x17\x56\x81\ \xdf\x13\xfb\x1f\x84\xaf\xe2\x02\x22\xe6\xe9\x93\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x10\ \x0f\xad\xca\x47\ \x00\x68\ \x00\x65\x00\x6c\x00\x70\x00\x2d\x00\x62\x00\x72\x00\x6f\x00\x77\x00\x73\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x08\x99\x64\x87\ \x00\x6b\ \x00\x63\x00\x68\x00\x61\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x01\xad\xab\x47\ \x00\x64\ \x00\x69\x00\x67\x00\x69\x00\x6b\x00\x61\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1a\ \x08\xdd\xe1\xa7\ \x00\x61\ \x00\x63\x00\x63\x00\x65\x00\x73\x00\x73\x00\x6f\x00\x72\x00\x69\x00\x65\x00\x73\x00\x2d\x00\x64\x00\x69\x00\x63\x00\x74\x00\x69\ \x00\x6f\x00\x6e\x00\x61\x00\x72\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0e\x95\x57\x87\ \x00\x6b\ \x00\x33\x00\x62\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0b\x34\x2d\xe7\ \x00\x61\ \x00\x6b\x00\x72\x00\x65\x00\x67\x00\x61\x00\x74\x00\x6f\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\ \x00\x00\x00\x40\x00\x00\x00\x00\x00\x01\x00\x00\x2e\x67\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x1b\x4c\ \x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x3b\x71\ \x00\x00\x00\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x70\xa9\ \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x50\x89\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/animation/states/states_rc3.py0000644000076500000240000042321412536324426023505 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:17:11 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x1b\x48\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x1a\xc5\x49\x44\ \x41\x54\x78\xda\xcd\x7b\x0b\x5c\xcf\xf7\xf7\xbf\xf9\xee\xc6\x30\ \x14\xdb\xd7\xfd\x32\x66\xc6\x66\xc3\xd8\xec\x8a\x51\x51\x2a\x42\ \xae\xb9\x35\x84\xb9\x33\x86\xe6\xba\x94\x6b\xc9\xa5\x74\x2f\x11\ \xa9\x24\x95\x8a\xe4\xbe\xdc\x72\x0b\x45\x49\x4a\x4a\xf7\xcb\xa7\ \xcb\xe7\xf9\x3f\xcf\xd7\x47\xf3\xdd\x77\xdf\xff\x77\xfb\x7d\xc7\ \xf0\x78\x9c\xf5\xde\xfb\xf3\x7e\x9d\xf3\x3c\xe7\x75\x5e\xe7\xf5\ \x7a\x9f\x73\xde\x35\x00\xfc\x65\x5a\xbf\x7e\xbd\xbe\x87\x87\xc7\ \x48\x77\x77\x77\xcb\xad\x5b\xb7\xb6\x5f\xb0\x60\x41\xcd\xff\xf6\ \xfc\xa6\x4d\x9b\x6a\xb9\x07\x44\xce\xf1\x39\x7a\xcf\xca\x3b\x26\ \x65\xa2\x47\x40\xf8\x4f\x32\x76\xd2\xce\x9d\x3b\xad\x5c\x5c\x5c\ \xc6\x0a\x4d\x12\x9a\xbc\x63\xc7\x0e\x5e\x8f\x70\x75\x75\xed\x2d\ \xfc\x9b\x71\xec\xd3\xa6\xbf\x34\x38\x28\x28\xa8\xf6\xee\xdd\xbb\ \x8f\x87\x87\x87\x17\x47\x47\x47\xe3\xe8\xd1\xa3\x90\xbf\x15\xb1\ \xb1\xb1\x5a\xf9\x2d\xf3\xc0\x81\x03\x39\x01\x01\x01\x09\xfb\xf7\ \xef\x4f\x15\xba\x11\x12\x12\xf2\xe0\xd0\xa1\x43\x05\x31\x31\x31\ \xda\x5b\xc9\x77\x50\x5c\x56\xa9\xe8\xc6\xad\x64\xc8\x18\x35\xf6\ \xd4\xa9\x53\x88\x88\x88\x28\x38\x71\xe2\x04\xc2\xc2\xc2\x1e\xc9\ \xb3\xfc\x5b\x10\x19\x19\x09\xa1\x22\xe1\x1b\xb7\x61\xc3\x86\x56\ \x2f\x84\x01\xbc\xbd\xbd\x03\x05\x60\x85\x28\x19\x2b\x33\x64\x2d\ \xb3\x38\xd5\xc7\xc7\x67\x9d\xbf\xbf\x7f\xe0\xae\x5d\xbb\xa2\x45\ \xe1\xdb\x02\xf8\x4a\x58\x70\x60\x8e\xb7\xdd\x92\x87\x7b\xf7\x05\ \x95\xee\xda\x1d\x58\xe6\xe2\xb9\xb7\x6c\xf9\xd6\xb0\xf2\xb9\xce\ \xa7\x2a\xe7\x6f\x3b\x53\xb9\xd6\x3d\xae\x6c\x93\x67\x4c\xe1\x36\ \x8f\x43\x99\xde\x1e\x81\x57\xc3\x67\x98\xaf\xda\xe3\xb0\x6c\xa2\ \xf0\x1c\xec\xe7\xe7\x37\x55\xe4\xcc\x17\x9e\xbb\xf6\xed\xdb\x77\ \x4e\x8c\x53\x29\xc6\xaa\x14\x6f\x19\xf2\x5c\x0d\x20\xb3\x50\xff\ \xd8\xb1\x63\x5a\x01\x75\xea\x3f\xfd\x7e\xd2\xb0\x51\x97\x63\x03\ \x1a\x6e\x3a\x32\x50\x2f\x39\x66\x60\x43\xed\xd1\xc1\x4d\x71\x39\ \x25\x1f\x57\xd3\x0a\x90\x78\xaf\x08\xc9\x19\x45\xb8\x9d\x49\xd2\ \x5d\x27\x09\xdd\xb8\x57\x88\xab\x77\x0b\x70\x6d\x58\x6b\x24\x98\ \xbc\xa5\xfd\xc5\x50\xff\x97\xf3\x06\x7a\x0b\xe3\xfb\xe9\x75\xa8\ \xe6\x2b\x4b\xac\x63\x70\x70\x70\x8a\x78\x5d\xce\x73\x35\x00\xd7\ \xac\xb8\x6c\x95\xa7\xa7\xa7\x55\xf5\xbd\xab\xfd\xeb\x35\x8c\x37\ \xd2\x5f\x15\x6f\xa0\x77\xfb\xe2\x80\x46\xb8\x36\xb8\x09\x6e\x8d\ \x68\x89\x3b\x56\xef\x20\xcd\xe6\x43\x64\xe7\x97\x21\xb7\x50\x83\ \xfc\xe2\x72\x14\x94\xe8\xa8\xb0\xa4\x82\x7f\xd5\xbd\xdc\x22\x0d\ \x72\x0a\x34\xb8\x3f\xf3\x63\xa4\x59\x77\xe0\x38\x8e\x57\x7c\xce\ \x0d\x68\x7c\x9b\xbc\x29\x43\x8c\x1e\x15\x17\x17\xa7\x7d\xae\x06\ \x10\x97\xdc\x2d\x6b\x1c\x02\xa6\xd9\x49\x8b\x66\xb5\xe2\x0d\xf4\ \x17\x9d\x33\xd0\x2f\xb8\x6c\xfa\x36\x6e\x5a\xb6\x40\xca\xf8\x76\ \xb8\x3f\xf5\x7d\x3c\x9c\xd5\x05\x39\x0b\x7b\x20\x6f\x65\x5f\x54\ \x54\x56\xa1\xb2\x4a\x8b\x2a\x92\x56\x0b\xad\x22\x5e\xab\x7b\xfc\ \x4d\x3d\x93\xb7\xd6\x08\xb9\xb6\x5f\x72\x1c\xc7\x93\x0f\xf9\x29\ \xbe\x97\x4c\xdf\x2e\x88\x99\x63\x71\xed\x60\x70\x60\xf1\x73\x35\ \x80\xaf\xaf\xef\x51\x59\x9f\xda\x0b\x03\xdf\x9a\x28\xca\x3f\xa0\ \xe2\xb7\x46\xb6\xc2\xdd\x49\xef\xe2\xc1\xf7\x1f\x20\xe7\x07\x51\ \x7a\x45\x6f\x14\x38\x0c\x40\xd1\x96\x21\x28\x71\xb3\x42\x59\x05\ \x50\xa2\x01\x8a\x84\x0a\xcb\x74\x54\x50\xaa\xfb\x5b\x24\x54\x2c\ \xf7\x4b\xcb\x85\x7c\xbf\x43\x89\xcb\x48\x8e\xe3\x78\xf2\x21\x3f\ \xf2\x25\x7f\x25\xe7\xfc\xf0\x76\xda\xf3\x06\x0d\x27\xec\xb1\xa8\ \xf1\x8f\xe7\x62\x00\xb7\x2d\x9b\x6e\x6e\x75\x72\xc2\xa5\x81\x8d\ \x38\x33\x0a\x58\xd6\xcc\x0f\xf1\x68\xc9\xe7\xc8\xb7\x33\x50\xe0\ \x4b\xdd\xc7\x42\xe3\x3f\x19\x15\x41\xb3\x50\x19\xb9\x04\x0f\x0b\ \x81\x07\x05\x40\x46\x3e\x70\x3f\x0f\x48\x57\xa4\xbb\xce\x10\xca\ \x94\xfb\x59\xf2\x4c\xd5\xd1\x15\xa8\x0a\xff\x81\xe3\x38\x9e\x7c\ \xc8\x8f\x7c\xc9\x9f\x72\x28\x8f\x72\xb9\x34\xae\x9c\x37\xaa\xdf\ \xf2\x6f\x35\xc0\x39\xc3\x06\x9f\x3b\xaf\x58\xa4\xdd\xb0\x7e\x3d\ \x6e\x5b\xb5\x45\xe6\xf4\xce\x78\xb4\xf8\x53\x9d\xe2\xce\x43\x51\ \xe6\x33\x11\x15\xfb\x67\xa2\x2a\x62\x11\x10\xb3\x0c\x88\x5e\x02\ \xed\xe1\x1f\x71\xfb\x21\x90\x94\x05\xdc\x7c\x00\xdc\xc8\x04\x12\ \x9f\x90\xba\x77\x4b\x7e\x4b\x96\x67\xb4\x11\x0b\x80\xc8\x85\x1c\ \xc7\xf1\xe4\x43\x7e\xe4\x4b\xfe\x94\x43\x79\x94\xab\xe4\x27\x98\ \x35\xcd\x25\xa6\xbf\xc5\x00\xbf\x18\xea\x4d\x3c\x6f\xa8\x5f\xe1\ \xb2\x6a\x11\xdc\x76\x6c\x45\xf6\xdc\x8f\x65\x7d\xf7\x41\x91\xd3\ \x60\x94\x79\x4f\x50\xb3\xa6\x7d\xac\x34\x22\x45\x91\xb0\x19\x40\ \xd0\x04\x68\x03\x46\xe0\xd2\x3d\xe0\xc2\x5d\xe0\x5c\x2a\x10\x9f\ \x02\xfc\xf2\x84\xd4\xbd\xf3\xf2\xdb\xc5\x34\x40\xeb\x63\x02\xec\ \xb6\xe0\x38\x8e\x27\x1f\xf2\x23\x5f\xf2\xa7\x1c\xca\xa3\x5c\xca\ \x57\x01\x33\x71\x58\xf3\x0a\x62\x7b\x66\x06\x90\x47\x5f\x3a\x6b\ \xa0\xb7\xe9\x82\x91\xbe\x8a\xcc\xbe\x9b\xed\x10\x12\x1c\xa4\xd6\ \x68\x89\xeb\x28\x94\xef\x9d\xc6\x59\xd6\x29\x1e\x31\x0f\x08\xf9\ \x4e\xa7\x84\xdb\xd7\xc0\xe6\x0e\xa8\x5a\xd3\x08\xc7\x93\x80\x63\ \x37\x81\xa3\x37\x80\x23\x42\x31\x89\x5a\x44\x5f\xd7\xf2\x5a\x51\ \xac\xfc\x76\xfc\x16\x50\xb1\xec\x75\x60\x65\x5d\x8e\xe3\x78\xf2\ \x21\x3f\xf2\xad\xf6\x26\xca\xa3\x5c\x25\x3f\x67\x51\x4f\xa4\x4f\ \xe9\xa8\x70\x9d\x35\x6c\xb4\x89\x58\x9f\xba\x01\x4e\x19\x34\xb6\ \xbb\x38\x40\x1f\x49\x12\x80\x32\xa6\x75\x82\xff\x16\x3b\xec\xf7\ \xf7\x56\xb3\x51\x19\x3a\x57\xb4\x59\xaa\x73\xdb\x03\x53\x00\xff\ \xc1\xc0\xb6\xee\xc0\x9a\x86\xa8\x5a\x5c\x03\x9a\x85\x35\x51\xb4\ \xe0\x0d\x04\x9e\x2b\x83\xff\x99\x12\x78\x9f\x28\x82\x47\x5c\x21\ \xdc\x8e\x15\x28\x72\x97\x6b\x2f\xb9\xe7\x77\xaa\x18\x7b\xe3\x4b\ \x51\x30\xaf\x0e\x4a\xe6\xfe\x83\xe3\x38\x9e\x7c\xc8\x8f\x7c\xc9\ \x9f\x72\x28\x8f\x72\x95\xfc\xc2\x4d\xa6\x78\xb4\xf4\x0b\xe2\x52\ \xf8\x4e\x19\x35\xb6\x7b\xaa\x06\x38\x6d\xa8\x37\xe2\x82\xa1\x1e\ \x99\x73\xdd\xa9\x2d\x2a\xd8\xcf\x1d\xe1\x07\xf6\x73\x7d\xea\x66\ \x3d\x7c\x36\xb0\x77\x24\xe0\xda\x0b\x58\x5d\x1f\x95\x8b\x5e\x42\ \xe9\xfc\x9a\x28\x9c\xf5\x32\xb2\x6c\xea\xe0\xe6\xc4\x36\xd8\x28\ \x67\x97\xb5\xa1\x59\x58\x15\xf4\x00\x3f\x05\x66\xc0\x76\x5f\x06\ \x96\xed\xbd\xaf\xae\x57\x06\x65\xe2\xe7\x90\x2c\xac\x0f\xcb\x46\ \xe2\x84\x36\xc8\x9c\x5c\x17\x79\x33\x5e\xe1\x78\xf2\x21\x3f\xf2\ \x25\x7f\xca\xa1\x3c\xca\x55\xf2\x35\xbb\xbe\xe3\x92\x20\x2e\xe2\ \x53\x38\x89\xf9\xa9\x18\xe0\xac\x91\x7e\xb7\x73\x06\x7a\xe5\x37\ \x2d\x5b\xd2\xc2\x14\xa2\x22\x72\x58\xa0\x3f\x0e\xf8\xb9\x00\x51\ \xe2\xf6\xa1\x36\x80\x9f\x09\xb0\xa1\x2d\xaa\x7e\xac\x81\xb2\xc7\ \x8a\xdf\x9b\x5c\x1f\x97\xc6\xb6\xc1\xa9\x51\x9d\x71\x7a\x54\x27\ \xcc\xf1\xbe\x8b\x99\x3b\x2e\x6b\xa7\xd9\x47\x95\x58\x2d\xd9\xf5\ \xd0\x74\x86\xd3\x6d\xb3\xe9\x4e\xb7\xc7\x2d\xf1\xcb\xb6\xb1\x8f\ \x2c\x9d\xb1\x2d\x41\x3b\xd3\x33\x85\xcf\xaa\x31\x17\xc7\xb4\x45\ \xea\xc4\x06\xc8\x9d\xf6\x2a\xf9\x91\x2f\xf9\x53\x0e\xe5\x51\xae\ \x92\xaf\x8d\x5a\x02\xcd\xee\x29\xc4\x45\x7c\x0a\xe7\x75\xcb\x96\ \xe5\xc4\xfe\x97\x0c\x10\xdf\x5f\xff\x9f\x67\x0c\xf4\xb3\x13\x87\ \x36\xe3\x1a\x53\x5b\x50\x91\xa3\x39\x72\xbd\xac\x71\x3c\x2e\x0e\ \xe1\x5e\x1b\x80\x10\x6b\xc0\xa3\xaf\x9a\x9d\xf2\x1f\x5e\x42\xf1\ \x9c\x7f\x20\x6b\x6a\x6d\x9c\x1d\xd5\x16\xc7\x2c\x3b\x2a\x8a\x1b\ \xde\xae\xd2\x75\x60\xbb\xb4\x6f\xbe\xec\x73\xe0\xe3\x8f\x3f\x76\ \x16\x5a\x2f\xb4\xea\xa3\x8f\x3e\x5a\x4a\xe2\x35\xef\xf1\xb7\xde\ \x5f\xf5\x3e\xb0\xd5\xa8\x5d\xca\x91\xa1\xed\x2b\xaa\xc7\x9f\x19\ \xf9\x0e\xd2\x27\xd5\x41\xde\xf4\x57\xc8\x9f\x72\x28\x8f\x72\x75\ \xf2\x0f\x2f\x62\x80\xa4\x11\x88\x8f\x38\x15\xde\x04\x8b\xe6\xd9\ \xd4\xe1\x7f\x36\xc0\xf1\xfe\x8d\x4e\x5f\x31\xfb\x27\xf7\x5c\x75\ \x10\x29\xdc\x38\x08\x65\x7e\xd6\x38\xed\xb7\x06\x91\x11\x11\xb8\ \xea\xbb\x10\xd8\xf9\x25\x60\xfb\x0a\x34\x0b\x64\xd6\x67\xbe\x8c\ \xd4\x49\xf5\x70\x74\xf8\x3b\x88\x1e\xd6\x0e\xe1\x43\xda\x94\x2c\ \xeb\xd3\x2e\xbe\x6b\xd7\xae\x1b\x44\xb9\x39\xa2\xec\x10\xb9\xfe\ \xec\x43\xdd\xbf\x76\x5d\xba\x74\x69\x4a\xe2\x35\x6f\xf0\x37\x3e\ \xc3\x67\x39\x66\xda\x57\x1d\x8f\x1f\x1c\xdc\xa6\x98\xbc\xc8\x33\ \x79\x5c\x7d\xe4\x4c\x7d\x8d\x72\x28\x8f\x72\x75\xf2\x83\x27\x01\ \x51\x8b\xe9\x09\xc4\x47\x9c\xc4\xab\x70\x9f\x19\xd4\xe4\xf4\xff\ \x64\x80\xb8\x7e\xfa\xc6\x8c\xf8\xc9\x63\xda\x20\x7b\xce\x47\xc8\ \x5f\x6b\x88\x52\xcf\x71\x28\x0d\x5b\x8c\xa8\x88\x30\x84\xca\x12\ \xd0\xee\xfc\x1a\x58\x56\x53\xb9\x66\xfe\xf7\xaf\xe0\xfa\xb8\x06\ \x38\x64\xd1\x06\x91\x16\xad\xb4\x73\xbe\x69\x7f\x56\x94\x58\x2b\ \x0a\x0e\xa7\x72\xa2\x94\xbe\xd0\x2b\x7f\xe4\x92\x7c\x86\xcf\x72\ \x0c\xc7\x92\x87\xcd\x97\x1d\x4e\x46\x0c\x69\x5d\x45\xde\x97\x47\ \xeb\xe1\xe1\xe4\xd7\x28\x8f\x72\x29\x9f\x3b\x05\x3d\x81\x31\x81\ \x07\x28\xe2\x24\x5e\xe2\x56\xf8\xe3\x0c\xdf\x36\xfe\xbf\x19\xc0\ \xb6\x46\xcd\xe3\xfd\x1b\xa7\xca\xde\xaa\x5b\xf7\xcb\xbf\x91\xa3\ \xe9\x08\x54\x84\xcc\x46\xd4\x3e\x0f\x99\xfd\x70\x9c\x71\x9e\x0c\ \x2c\x7f\xfd\x57\xe5\xcf\x8f\xd6\x47\xc8\xe0\x96\x08\x1d\xdc\x5c\ \x63\xdc\xb3\x93\xb7\xcc\xe4\x58\x51\xa4\xb3\xd0\xeb\xff\xeb\x29\ \x8d\x63\xc9\x83\xbc\x8c\x3e\xe9\xec\x15\x6a\xde\xa2\x92\x32\xce\ \x8e\x68\x84\xac\xef\x5e\xaf\x36\x82\xc2\x01\xaf\xfe\xc0\xc1\x69\ \x34\x02\x71\x12\x2f\x71\x2b\xfc\xf1\x43\x5a\xa6\x52\xa7\x3f\x6d\ \x80\x98\x7e\x8d\xa7\x26\x18\x37\xe6\x0b\x08\x5f\x48\x64\x9b\x31\ \x83\x66\x8f\x0d\x0e\x07\xec\x54\x89\x8b\x88\x1d\xb6\xa8\x5c\xdd\ \x48\xb9\x61\x81\x80\xb8\x39\xae\x2e\xf6\x99\x35\x83\xe7\xc0\x66\ \x0f\xbb\x75\xe9\xb2\x46\x66\xee\x2b\x01\x5e\xf7\x69\x25\x2d\xc8\ \x8b\x3c\x47\x0f\x1b\x7a\x29\xd0\xbc\xb5\x96\xb2\xae\x8e\xac\x47\ \x23\x50\xbe\xc2\x81\x9f\x1b\x01\x7e\xa6\x40\xf8\x1c\x9e\x1e\x89\ \x97\xb8\x89\x5f\xe9\x71\xd4\xe8\xed\xa9\x7f\xca\x00\x47\xbe\x6e\ \xf5\xfa\x29\x83\x46\x8f\x6e\x0c\x6f\x81\xcc\x19\x9d\x91\xbf\xe6\ \x5b\x14\x7a\x4c\x40\xa0\xef\x4e\x04\xf8\xfb\x21\xcc\xdd\x1e\x9a\ \xf5\x1d\x50\x21\x81\x88\x91\x39\x53\x40\xec\x37\x6b\x2c\xca\x37\ \x79\x24\x20\x17\xca\x6c\x75\x11\xc0\x2f\x3f\xed\xd4\x15\x79\x3a\ \x38\x38\xc4\x2e\x5e\xf4\x03\x7c\x07\x34\xc9\x0f\x34\x7d\x0b\xa9\ \x63\x6b\x73\x39\x10\x87\xc2\x03\xc7\x8e\x40\xe0\x18\x06\x45\xd9\ \x1e\x65\x29\x78\x8c\x25\x7e\xa5\xc7\xc5\xa1\xad\x1e\x51\xb7\x3f\ \x34\xc0\xa1\x7e\x8d\xe7\x5d\xaa\x9e\x7d\x9e\xb0\x9c\xc7\x62\xfb\ \xe6\x75\x70\x74\x74\xc4\x41\xd7\x35\x28\x75\xee\x05\xed\x92\x1a\ \x28\x96\x83\x4a\xce\xd4\x57\x11\x65\xd1\x00\xfe\x26\x8d\xca\x7b\ \x7c\xd4\xd9\x56\x40\xbe\x23\xa4\x4e\x61\xcf\x82\x24\xf7\xb0\x55\ \xa8\xf8\xf3\x5e\x9f\xae\xf3\x1c\xf0\x56\x59\x84\x59\x43\xa4\x8f\ \xaf\x45\x1c\xc4\x43\x5c\x8c\x07\x8f\x97\xc2\x52\x94\x07\xce\xe0\ \xf9\x80\x7a\x28\x7d\x82\xe6\x8e\x4a\x92\xd7\xf8\x63\x92\xad\xf2\ \x93\x3c\x66\xad\xff\x68\x80\xf0\x7e\x6f\x5d\xe1\xb6\xc7\xb5\x93\ \xb0\x61\x12\x7c\xbc\xbd\xb0\x6d\xeb\x56\x1c\xdb\x3e\x4f\x82\x8b\ \x29\xb0\xf6\x6d\xba\x9c\x3a\xa4\x5c\x1e\xf3\x06\xbc\x06\xd6\xd7\ \x8e\xe8\xf5\x9e\x97\x04\xab\xce\xcf\x52\x79\x92\xa4\xc8\x4c\x0e\ \x1e\x3c\x88\xd5\xab\x57\x7b\x9a\xf4\xe8\xec\xea\x31\xa0\x81\xf6\ \xdc\xb0\x7a\xc8\x9c\xf4\x3a\xf1\x10\x97\xc2\x87\x3d\xc3\xd5\x69\ \xb1\x2a\x72\xb1\xf2\x82\xbc\xd5\x7d\x95\x3e\x31\xe3\x3f\x45\x68\ \x68\x68\x16\x73\x96\x7b\xf7\xee\x8d\xfa\x9d\x01\x0e\x7e\xd1\xf4\ \xcd\x78\x43\xbd\x4a\x46\xce\xa8\x8d\x0b\x21\x09\x4c\x04\xf8\xb8\ \x23\xd1\x7b\x36\x2a\x82\xac\xb9\xe5\xa8\x83\x48\xd1\xec\x97\x95\ \xeb\x05\x0e\xaa\x8b\xc5\xbd\x9b\x9f\x13\xe5\x3f\x17\xe5\xd5\x7b\ \xf9\x33\xa6\x9a\x32\x7b\xd9\x92\x84\x29\x96\xe5\x70\x7b\x89\xf1\ \x47\x8f\x02\x8c\xeb\x21\x4d\xb7\x14\x88\x8b\xf8\x88\x53\xe7\x05\ \x31\xe2\x05\x01\xd3\xd4\x51\x39\x7b\x7e\x37\xdc\x1c\xdd\xa6\x92\ \x3a\x06\x06\x06\x9e\x92\x94\x5a\xe9\xef\x0c\x10\xf0\x6d\x13\x9b\ \x4b\x66\x4d\x64\x9d\x3b\x21\x3a\xe2\x10\x22\xf6\xf9\x22\xdb\x7b\ \x12\xb4\x3c\x7b\xef\x1b\x05\x38\x34\xa7\x95\xd5\x81\x24\x6d\x5c\ \x6d\xb8\x18\xd4\xad\x10\xc5\xc7\x09\x29\x77\xfa\x3b\x48\x92\xae\ \xef\x4b\x32\xe6\xba\x64\xa3\x35\x4b\x96\x2c\xd1\x6c\x37\x68\x80\ \x5b\x96\x75\x90\x31\xa1\x16\x71\x11\x1f\x71\x12\xaf\x3a\x1b\x54\ \x1e\x9c\xaf\xdb\x11\x96\x7d\xa9\xde\x1a\x83\x8c\x9a\xd9\xc8\x32\ \xd8\xca\xac\xb3\xa4\xdb\xbb\xfc\x86\x79\x88\x49\xfb\xb3\xa1\x5e\ \xdb\x21\xc9\x4e\x1c\xdd\xb9\x1a\xf9\x2e\xc3\xb8\x96\x74\x91\xd5\ \xdb\x88\x6b\x4c\x9d\xc4\xb2\xa7\xbc\x86\x93\x43\x6b\xe1\xe7\xde\ \x8d\xae\x75\xeb\xd6\xad\x2d\xc7\x3e\x0f\xea\xd5\xab\x57\xbb\xc5\ \x5f\xbe\x7d\xf1\xe8\xa0\x37\xe8\x05\xc4\x45\x7c\xc4\x49\xbc\xd5\ \x3b\x82\xca\x23\xe4\xff\xdc\x5f\xbd\x27\x44\x9a\xb6\x3a\x21\xf9\ \xcc\x91\x92\x6a\xcf\x17\x03\x8c\x79\x92\xe1\x59\x35\xad\x76\xb0\ \xe7\x0e\x6d\xe4\xa1\x30\x9c\x58\x37\x1d\x79\xeb\x0c\x51\xbe\x47\ \x05\x13\xdd\x1b\xd8\xd6\xae\x8c\xb4\xdc\x76\xd4\x9a\xf3\x1f\xf0\ \x5a\x95\x51\x8f\xce\x56\xd5\x87\x9b\xe7\x41\x94\xfd\x59\xf7\x0f\ \x47\xee\xfc\xb6\xb6\xe6\xce\xc8\x3a\xc4\x45\x7c\xc4\x49\xbc\xc4\ \x4d\xfc\x5c\x06\x3c\x1d\xaa\x83\xd1\x95\x91\x6d\x4a\xdd\x5d\xb6\ \x7e\x45\x0f\x90\x98\x62\xfb\x2b\x33\x2f\x57\x97\x98\xa8\xc8\x70\ \xc4\xba\xac\x46\xde\x8e\xc9\x28\xde\x6f\x8b\xb2\x38\x67\x94\x9c\ \x71\x43\xe1\x61\xb9\xe7\x31\x14\xe9\xf6\x5f\xe1\xfa\xb2\xaf\x70\ \x66\xf6\xd7\xd8\x34\xa0\x69\x56\xf7\xee\xdd\x55\x81\xe2\x79\x12\ \x31\xd8\xf5\x6b\x9e\x71\x64\x72\x6f\x9c\x9f\xf7\x0d\x92\xe4\xf0\ \x93\xb5\xfe\x1b\x14\x78\x0e\x45\x71\xd4\x6a\x68\xce\xba\xa1\xfc\ \xb8\x33\x4a\x83\x6c\x91\xbb\x7d\x0a\xee\xac\x18\x0e\xd7\x85\x53\ \x4c\x59\x74\x91\x7a\xc3\x7a\xdd\xec\xbb\xb9\x19\xf1\x80\x13\x7e\ \x38\x86\xe9\x69\x66\x68\x99\xa4\x64\xee\x8e\xa9\x2a\x66\x6b\x54\ \x12\xc3\x57\xde\xd7\xd7\x84\x3c\xc0\xd4\x9d\xb7\x31\x7a\xd4\x8c\ \x48\x99\x81\x3a\xcf\xdb\x00\xc4\x30\x76\xd8\xd4\x18\x2b\xe7\x5b\ \x58\x12\x70\x1f\x2e\x47\xf3\x11\x71\xa5\x12\x67\xee\x00\xd7\xee\ \x03\x69\x8f\x80\xdc\x12\x40\x92\xcd\x28\xd5\x54\x22\x3d\xa7\x04\ \x01\x1b\xec\x1c\x58\x71\x92\x78\xe2\xa1\x98\x48\x76\x37\xea\xe0\ \xc1\xd0\x8a\xc4\x94\x2c\x14\x95\x56\x00\xd0\x65\x6b\xd3\x73\x81\ \xc4\x0c\x95\xb2\x62\xe6\x86\xc9\x0b\xf5\x0e\x3f\x7e\xdb\x2d\xf4\ \x1a\x64\x33\x53\x84\x73\xfc\x73\x25\x62\xf8\xca\xc4\x7a\xee\xf0\ \x4d\x89\x98\xef\x97\x86\x2d\x87\x73\x71\xe0\x62\x39\x4e\x26\x03\ \x97\xd3\x81\x94\x1c\x20\xa7\x08\x28\xaf\x04\x34\x15\x55\xc8\xca\ \x2b\xc3\x01\x27\x87\x7d\xb2\xc3\x15\x8a\xde\xbe\x8a\xc9\xe1\xc3\ \x87\x35\x41\x7b\xf6\x14\xdf\xcb\x2e\x41\x89\x58\x49\x1c\x00\x79\ \x25\xb4\x9e\xce\x8a\x67\x6e\x03\xe1\x62\xd5\x1d\x47\xf2\xb0\x78\ \x77\x3a\x46\x3b\x5e\xc7\x07\x9f\x7e\xdb\x89\x63\x5f\x04\x22\x96\ \xc1\x0e\x09\x98\xe5\x95\x8a\x0d\x87\xb2\x99\x79\x62\xfa\x8d\x39\ \x48\x26\x62\x25\x1b\x4d\xe5\x69\x84\x2a\x55\x9c\x89\x74\x75\x3a\ \x23\x75\x46\xad\x18\x60\x6f\x0d\x9f\x98\x3b\xd3\xf2\x0a\x4b\xb5\ \x73\x37\x86\x97\xdd\xcf\x29\x45\xa9\x98\x8a\xee\x92\x5b\x0c\xa4\ \xe6\x00\x57\xd2\x81\x53\x62\x80\xd0\x4b\xe5\x70\x8e\xca\xc5\x82\ \x5d\x69\x18\x63\x77\x5c\x23\x96\x7f\xfb\x45\x31\x00\xb1\x8c\x5e\ \x1e\x5d\x35\xdd\xfd\x0e\xec\x43\x1f\x62\xcf\xd9\x52\xc4\xdd\x62\ \x82\x55\x97\x65\xce\x2a\x50\xf5\x06\x16\x5d\x54\xe5\xc9\x6b\xef\ \xb1\xbc\xf4\x07\xb9\xd8\x15\x1c\x73\xb2\x86\x94\xa8\x67\xb2\x42\ \x3b\x7f\x63\x74\x69\xe6\xa3\x52\xba\x89\x3c\x08\x3c\x2a\xa6\xfb\ \x28\x37\x52\xee\x14\x22\x6e\xe5\x18\xf9\x08\xf3\x7c\xef\x62\xc4\ \xb2\x90\x1c\x11\xaa\xf7\x02\x19\x40\x6f\xd2\x42\xdf\x32\x1b\xb7\ \x3b\xb0\x3b\x90\x85\x5d\xa7\x4b\x98\x7c\x65\x06\x5a\xa5\xe1\x1f\ \xfc\x8b\x01\x1e\x15\x6a\xe0\x19\x1c\xaf\xa1\x21\xfc\x0e\xc4\x9d\ \xf8\xd5\x00\x0b\x36\x46\x56\x3d\x31\x00\xd7\xcd\x6f\x0d\x10\x7c\ \x41\xa3\x0c\x30\xd7\xe7\x2e\x46\xae\x88\xc8\x17\xa1\xf5\x5e\x20\ \x03\xd4\xb3\x5a\x1c\x58\xce\xe0\xcc\xbc\x22\x0d\x10\xfb\x6f\x06\ \x28\xf9\x57\x03\x04\x9d\x2d\xa7\x01\x7c\x82\x8f\x45\xd1\x00\xb5\ \xf7\x05\x06\x6e\x3e\xb8\xd3\x55\xfb\x67\x3d\xc0\xd2\xfe\x5c\xa5\ \x08\x7d\xe3\x05\x32\xc0\x1b\x83\x57\x9e\xd6\xd2\x00\x7f\xc6\x03\ \xc2\xbd\xdd\xb3\x25\x06\x94\x78\x78\xf9\xac\xa9\x7e\xcb\x0a\x0e\ \x72\x74\xa8\x62\x0c\x28\xfb\x4f\x31\x20\xf9\x49\x0c\x60\xa4\x65\ \xc4\xfd\x6c\xac\x7d\xdb\x17\xc5\x00\x5d\x87\xd9\xb7\x35\xb1\xbb\ \x8c\xea\x18\xb0\xfb\x4c\xc9\x7f\x8d\x01\x41\xae\x5b\x1e\xf0\x20\ \xb4\x7d\xfb\xf6\x41\x8a\x81\xbc\x5c\xdc\xf5\x72\x58\x55\xf6\xef\ \xbb\xc0\xdd\x7f\xd9\x05\x0e\x5d\xae\xc4\xf6\x98\x3c\x2c\x92\x5d\ \x60\x94\xd3\x0d\x18\x4e\x71\x35\x7f\x51\x0c\x60\x69\xf5\xd3\x78\ \xf3\x75\x57\x7f\xdd\x05\xf6\xc5\xff\x7e\x17\x28\x7b\xb2\x0b\x48\ \x3d\xc3\xaf\x58\x5e\x88\xd2\xbd\xbc\xbc\x6a\xd5\x90\x7e\x9e\x97\ \xa5\xcc\xad\xd9\xbc\x62\xd9\x9d\x3b\xf1\xa7\x91\x97\x78\x1e\x95\ \xf7\xae\xa1\xf0\x5e\x12\x1e\xa6\xa5\x21\x25\x39\x15\x57\x2f\xdf\ \xc0\xd9\xb8\x93\x08\x0a\x3a\x82\xad\x6e\x87\xb0\xd4\x3e\x10\x8b\ \x26\x4c\x77\x79\x51\x0c\xf0\xc3\x28\x6b\x9f\x39\x2b\xf6\x62\xdd\ \x96\x50\xec\xf2\x8f\x46\x6c\xd4\x09\x24\x9c\x3e\x8d\xa4\xc4\x1b\ \xc8\x48\x4d\x45\x7e\x46\x1a\x34\x99\x49\x28\x4d\xbd\x82\xb8\xb0\ \x03\x38\x79\xf2\x24\x0f\x41\xfe\x1c\xcb\x46\x87\xc9\x62\x8d\xaa\ \x79\x53\xac\x9d\x98\x34\x48\x9d\xd8\x5e\xa5\x95\x8b\x77\x58\xa2\ \x32\x6c\x01\xb3\x2b\x7c\xbf\x56\x69\xe8\xd2\x79\xba\x24\xc8\x3d\ \xab\xda\x38\x66\xaa\x77\xfd\x45\x31\x40\x48\xbf\xb7\xcf\xde\x1c\ \x5a\x8f\xb8\x88\x8f\x38\x89\x97\xb8\x89\x5f\xe9\x51\xec\x32\x42\ \x8e\xf9\xab\x10\x19\x7e\x08\xfe\xde\xee\xf7\xc5\xfd\xd5\x3b\x0c\ \x5f\x2f\x83\xa5\xc7\x47\x6b\x6e\x6e\xde\xf3\xaa\x55\x7b\x0d\xbb\ \x32\x72\x16\x7e\xc2\xfc\x3a\x2b\xb2\x4c\x32\xb2\x48\xc9\x3a\x1d\ \x4b\x55\x4c\x3c\xa8\x57\xcf\x24\xcb\xba\x38\x6d\xd4\xa0\xc3\xf3\ \x56\x3e\xb6\x6f\xa3\xd6\x17\x07\xd5\xaf\x4c\x16\x3c\xc4\x45\x7c\ \xc4\x49\xbc\xc4\x4d\xfc\xc9\xbb\x97\x22\x6c\xaf\x0f\x22\xc2\x0e\ \x62\x97\xb3\x03\x46\x0d\x1e\xd4\xa3\x7a\x3c\x1b\x9d\xa2\xe4\x44\ \x74\x5f\x22\x69\xe3\xfd\xa6\xed\x92\xef\x8c\x6b\xc7\xfa\x3b\x8b\ \x8e\xac\xcd\xf3\x75\x92\x15\x5a\x95\x64\xa8\x94\x3a\x1d\xf3\x6f\ \x4c\x46\xa6\x8e\x7e\x03\xa7\x4c\xf5\xdc\x9f\xaf\x01\x58\xbb\xd0\ \x0f\x4a\x1c\xfc\x26\xf1\x10\x17\xf1\x11\xa7\xe0\x95\x17\xb7\xc0\ \x95\x88\x3c\xb0\x17\xf2\x96\x87\xb0\x03\xc1\xf0\x5f\x38\x92\x29\ \xfb\x02\xea\x5a\x3d\x9e\x3b\x40\x9c\x2c\x81\x12\xb9\xf9\x9a\xf5\ \x67\xef\x39\xdf\x95\x25\xc0\x96\x14\x96\x9e\x99\x4e\x62\x5a\x89\ \xe5\x69\x55\x98\x5c\x51\x5b\xb9\xd7\x23\x9b\x57\x91\x2e\x09\x91\ \x6b\x43\xeb\x95\xc6\x1b\x37\xa9\xfd\x77\x29\x2b\xff\x5e\x92\xbe\ \xc1\x0f\x25\x78\xb5\xe0\xff\x5f\xea\xaf\xff\xf1\x65\x93\x06\xda\ \xa4\x61\x75\x15\x9e\x1c\x9b\xd7\x70\x6d\x79\x0f\x84\xb9\xd8\x22\ \x60\xb7\x1f\x82\x83\xf6\x23\x78\xff\x5e\x04\xad\x9b\x8f\x13\x53\ \x3f\x46\xca\xe4\x0e\xf0\x30\xef\x14\x46\x5d\xab\x79\xf2\x4d\x70\ \x8f\x78\x40\xc6\xf1\xe3\xc7\x5f\x92\xe4\x86\xe1\x0d\xab\x76\x15\ \xa9\x13\xda\xa9\x06\x84\x22\x67\x0b\x54\x04\xeb\x8a\x90\x08\x9e\ \x08\x6c\xf9\xe0\xd7\x9c\xc0\x03\xeb\xd7\x91\x32\x4a\x79\x81\xff\ \xb3\x56\x7c\xcb\x96\x2d\x75\xa4\x2d\x2e\x4a\xfe\x56\xd8\xd9\xd9\ \x55\x3a\x3b\x3b\x63\xdb\xb6\x6d\x05\x5e\x2e\xdb\x2a\xfc\xd6\x2f\ \x87\x9f\x93\x1d\x5c\x36\xdb\xc3\xc1\xde\x1e\xab\x56\xad\xc2\x36\ \xe7\x2d\xd8\xe5\xe6\x8c\x18\xa7\xd9\x48\x5a\x67\x82\x07\xf6\x46\ \x4a\x9f\xdb\x93\x3b\x56\x0e\xfa\xbc\xeb\x6f\x76\x2f\x06\xc1\xb5\ \x92\x1f\x63\x7a\xe8\x13\xf9\xd7\x3c\xdc\xac\xcd\xfd\x54\x09\x86\ \x6c\x4e\xe2\x32\x60\xa9\x89\xcb\x40\x65\x57\x7c\x06\xb0\x12\x23\ \xa5\xeb\x27\x5e\x90\x3c\xbc\x2e\x2e\x19\x37\x18\xfd\xac\x94\xb7\ \xb5\xb5\x7d\x55\x26\x29\x63\xe5\xca\x95\x55\xa2\xf4\x5d\x31\xc4\ \x0e\xc1\xec\xef\xeb\xb2\xf5\x56\x80\xb7\x07\xf6\x78\xbb\x21\x28\ \x70\x2f\x02\x77\x79\x22\x54\x82\xdc\x29\x87\x21\xc8\xd8\xd4\x1b\ \x79\x5e\xa3\x50\x16\x3a\x97\xf8\xa9\x87\x5a\xd6\x97\xc7\x77\x28\ \xa4\x8e\xff\x6e\x80\xfe\x92\x23\xcb\x67\x76\x44\x5c\xa3\xf6\xf4\ \x2f\x3a\x78\xdf\xb5\x7e\x17\xf7\xbe\x7b\x8f\x95\x56\xdd\x6e\x10\ \x3a\xef\x49\x30\x74\xea\x84\x0a\x29\x55\x17\xce\x64\x2c\x78\x0d\ \x77\x25\x33\x9c\x68\x51\xaf\xec\xaa\x71\xc3\xf7\x9f\x85\x01\x44\ \x61\xb7\x35\x6b\xd6\x60\x9b\xfc\xab\xbe\x77\xc1\xa8\x51\x97\x0b\ \xc6\xfa\xf9\x49\x96\xf5\x91\x36\xbe\x9e\x2a\xbf\xe7\xcf\xa9\x85\ \xb2\x45\xaf\x40\xeb\xd8\xa9\x3a\xf8\x11\x37\xf1\x53\x0f\xa9\x54\ \xbf\x07\xf7\x41\x1d\x63\xa8\xe3\xef\xea\x02\x92\x1d\xd1\xc8\x4e\ \x70\x9d\xef\xd6\xb2\x0c\x4c\x8e\x0d\x69\x9d\x9f\x32\xa1\xbd\x4a\ \x21\x15\xac\x1b\xc8\xfa\xbb\xce\x0b\x22\xe6\xb2\xfa\xc2\x2d\x86\ \x25\x29\x46\x5c\x95\x86\x4a\x95\xa5\x90\x60\x5e\xff\x2e\x7b\xf8\ \x9e\x81\xfb\x67\x6d\xde\xbc\x39\x8b\xd7\xa4\x8b\x06\x0d\x3e\xbf\ \x38\xb0\x41\xd1\x8d\x21\xf5\x28\xb7\x3a\x25\x4e\x3c\xc4\x45\x7c\ \xc4\x49\xbc\xc4\xad\xf0\x3f\x90\xd9\xbf\x31\xfe\xdd\xf2\x1e\x5d\ \xbb\x0e\xa2\x8e\xbf\x33\x80\xa4\x9a\x4f\x48\x96\xf5\x21\x83\xcb\ \x07\x1f\x7c\xd0\xc4\xb2\x67\x47\x4f\x9e\x09\x68\x35\xe5\x05\xdb\ \x87\xb3\xde\xa6\xf3\x82\xd0\xa9\xdc\x11\x98\x78\xac\x5e\x0a\xdc\ \x7e\x24\x1e\xd4\xc1\xd5\xc1\x6f\xde\xbf\x62\xac\xd7\xfd\x69\xae\ \x7d\x49\x7f\x43\x02\xdf\x21\x35\xf3\x06\x8d\x8c\x2e\x0d\x68\x50\ \x46\xe5\x29\x8f\x72\x29\x9f\x38\x88\x87\xb8\x88\xaf\xba\x3e\x48\ \xdc\xb9\xcb\xbe\x50\x55\xe2\x9f\x0d\xde\x0f\xa7\x6e\xff\x2e\xa3\ \x3a\x25\xd6\x9b\xcd\xc8\x7b\xf6\xec\x09\x14\x0b\xd5\x94\xc2\xac\ \x41\xa8\x49\xeb\x07\x29\xe3\x24\x16\xcc\xee\xc2\x4a\x2b\x5b\x51\ \x74\x3d\x40\x87\x7f\x00\xf6\x5b\x31\x20\xca\x76\xc3\x7e\x00\xdd\ \xe1\xe8\xfe\x63\x23\x24\x0e\x79\xb3\xe2\xa2\x71\xfd\xe9\x4f\xc3\ \x00\x12\x97\x7a\x4a\xd0\xab\x90\xae\xf1\x95\xf1\x86\xfa\x23\x13\ \x06\x36\xac\xa8\x56\x9e\xf2\x28\x97\xf2\x89\x83\x78\x88\x8b\xf8\ \x88\x93\x78\x89\x9b\x05\x91\x4b\xa3\xdb\x95\x50\x27\xea\xf6\xff\ \x2d\x8d\xc9\x12\x48\x0a\xdc\x1f\x98\x25\xef\x05\xcd\xf9\x7e\xdd\ \xbf\x5b\xe7\xf5\x49\x63\xda\x68\xb9\x14\x18\x41\x0b\x37\xab\x02\ \xe9\xe3\xa5\x30\x4f\x77\xca\xda\xd4\x9e\xf1\x80\x05\x09\x9d\x27\ \x4c\xac\xa5\xf6\xe3\x5b\x72\x2a\x4b\x18\xd4\x30\xf0\x82\x41\xfd\ \x56\x7f\xb1\x19\x7b\xdc\xc6\x8d\x1b\xe1\x3a\x69\x40\xe6\x35\xd3\ \xfa\x5a\xf2\x25\x7f\xca\xa1\x3c\xca\xa5\x7c\xe2\x20\x1e\xe2\xaa\ \x2e\x8c\x12\xef\xc3\xf9\xdd\x71\x67\xdc\x3b\x98\xdb\xe7\x7d\x1f\ \xea\xf4\x5f\x8b\xa3\x4e\x4e\x4e\x9f\x47\x47\x47\xb1\xf9\xf9\x32\ \xd7\x89\x14\x3a\xbf\xd8\xd6\xbf\x6d\xe2\xed\xb1\x6d\x75\x01\x71\ \xf9\xd7\x74\x29\x9e\x0e\x59\x71\x61\x8f\x8e\xee\x6c\xb0\xbe\x15\ \x41\x70\x26\xd8\xca\xc2\x35\xa9\x72\xf4\xb7\x2d\xe9\x0d\xf5\xb4\ \x97\x4c\xea\x87\x5f\x34\x6a\x30\xb0\xba\x3c\xfd\x67\x89\x81\x2e\ \x78\xc1\xd8\xd8\xf5\xeb\x1c\xb0\x63\xec\x17\xe4\x47\xbe\xe4\x4f\ \x39\x94\x47\xb9\x94\x4f\x1c\xc4\x43\x5c\xc4\xa7\x70\xe6\x48\xd3\ \xd4\x1d\xe9\x21\x8c\xb6\x78\x27\x8b\xba\x50\xa7\x3f\xac\x0e\x4b\ \x0c\x08\x0e\x0a\xda\x5f\xec\xe1\xe1\xbe\x49\x06\xbc\x29\x25\xaf\ \x59\x87\x8c\x5b\xe5\xb0\x54\x96\x61\xd3\x49\x55\x5a\x4b\x76\x8e\ \x46\xe5\x81\x39\x40\xf4\x13\x23\x70\x06\x78\xfa\xe2\x5a\xcc\x97\ \x80\xc4\x32\xd5\xfd\xf1\xca\x1b\xd4\x36\x49\xb7\xbd\x68\xaa\x77\ \x6f\x9c\x8d\xe3\x69\x93\x29\x9e\xab\xdf\x9f\x73\xb2\xff\xfb\xb3\ \x4e\xbe\xd3\xd5\x3a\xfe\x15\x12\xaf\x79\xcf\x78\xb2\xf7\xaa\x31\ \x93\x1d\x4f\xc7\x9b\xe8\x27\xc9\x8c\x23\x76\xb6\x21\xa4\x2b\x1d\ \xde\x13\xbf\x24\x3f\xf2\x25\x7f\xca\xa1\x3c\xca\xad\x56\x9e\x78\ \x88\x4b\xe1\xcb\x5b\xd5\x17\x3c\xd1\x5e\x1c\xf9\x4e\xe9\x67\xdd\ \xbb\xce\xa5\x2e\x7f\xaa\x41\x82\x27\x2d\xf1\x80\x34\x59\x0a\x5a\ \x59\x7f\xbe\xb2\x23\xbc\xdb\xb3\xdb\xc7\x6b\xe2\x87\xb4\x28\x4b\ \x1e\xd5\x1a\x59\xb3\x3e\xe4\xba\x62\xeb\x2a\x5b\xd4\x9e\x54\x8d\ \x02\x2c\x01\xe7\x2e\x0c\x44\x2c\x4d\xf1\x38\xca\x59\xe2\xd1\x94\ \xc0\xd5\x56\x79\x4b\x3a\x3b\xcc\x1c\xae\x62\xc0\x9a\x04\x7c\xbb\ \xe2\x22\xbe\xf9\xe9\x02\xbe\x5e\x76\x4e\x4b\xe2\x75\x5f\xb9\x67\ \xb8\x3a\x01\x83\xd6\x5e\x41\xa2\xa5\x3e\x58\xe8\x38\xb5\xa0\x2f\ \xd6\xda\xd9\x21\x60\x5a\xdf\xea\x46\x29\xf2\xa7\x1c\xca\xa3\x5c\ \xca\x27\x0e\xe2\x21\x2e\xc1\x67\x80\x94\x89\xed\x70\x63\x64\xeb\ \x2a\x93\x4f\xbb\x6c\x94\x72\x7d\xbb\xff\x53\x8b\x8c\xbc\x25\xd5\ \x96\x60\x78\xd3\xd3\xcb\xa3\xd2\xd1\x69\x73\xf9\xac\xd9\xb3\xce\ \x9b\x7d\xd3\xeb\xd0\xb5\x61\x2d\xaa\xd8\xa4\xfc\x60\xa6\x1c\x90\ \xec\x8d\x28\x8c\x91\xf6\x71\x7f\xe0\x7c\x20\x68\x3c\xe0\xde\x9b\ \x8d\x0a\x0c\x4a\x72\x64\x7e\x62\x08\xce\x5c\xfa\x77\x6f\xe2\x7b\ \xcf\x14\x4c\x71\xbd\x8d\x09\xdb\x92\xc0\x3c\xfe\x98\x2d\x37\x15\ \x8d\x75\xbe\xa9\x52\xed\xdf\xb9\x24\xab\xa4\x46\xda\xc4\xfa\xca\ \xd5\x2f\x2d\xfa\x0c\x3f\xfd\xf4\x13\x42\xe6\x1b\x49\xf9\xbb\x26\ \xf9\x92\x3f\xe5\x50\x1e\xe5\x52\x3e\x71\xe8\x94\xff\xd9\x00\xa9\ \x12\xb3\x6e\x8d\x68\x85\xe9\x5f\x75\xdc\x2f\x51\xbf\xdb\x1f\x55\ \xac\xff\x5b\x29\x7a\xba\xaf\xaf\x4f\xe6\x5a\x7b\xbb\x8a\x61\x96\ \x43\x31\x63\xd0\xd7\x9a\xeb\xc3\x5a\xe0\x86\x34\x28\xa7\x73\x39\ \xd8\x19\xb0\x53\x53\xd6\xdc\xf7\x0c\x3c\x2c\x44\xb2\x22\xcb\xae\ \x4e\x36\x35\xb2\xd3\x93\xbd\x7d\xdc\x9f\x75\xf1\x61\x76\x1d\xac\ \x0b\xcb\x56\x85\x95\xe5\x81\x99\x58\x2a\x45\x8c\x1f\xf7\xa4\x93\ \x58\xd0\x60\xbd\x81\xfd\x83\x2a\xa3\x93\xf3\x7d\x5d\x5d\xe7\xc9\ \xb2\x2e\x90\x5d\x00\x11\xcb\xcc\x50\xb9\xbc\x2e\xf9\x92\x3f\xe5\ \x50\x1e\xe5\x52\xbe\xc2\x91\xb3\xbc\x37\x92\x46\xb7\x11\x7c\x2d\ \x61\xff\x6d\xfb\xb3\xb2\xee\xfb\xfe\x99\xb2\xdd\x9f\x39\x89\xbd\ \x2b\x5e\xb1\xcb\xfa\x3b\xeb\xdc\xe9\x66\xdf\x6a\x13\x2c\x5a\x80\ \xfd\x03\xb4\x74\xee\xaa\x3e\x28\xde\x3a\x8c\xed\x69\xaa\x23\x03\ \xd1\xca\x1b\x74\x0d\x4b\xbb\xcc\x80\x1d\x3d\x58\xaf\xd7\x2d\x8d\ \x1f\x6b\x21\xe0\x97\x52\x56\x97\x54\x97\xe8\xce\xd8\x02\x56\x71\ \x14\xb9\xc6\xaa\x6e\x51\x76\x90\xaa\x74\x56\xe9\x0f\xb5\xd5\x3b\ \xc7\xfd\x55\xed\xe1\xe4\xb8\x19\x51\x6b\xad\x50\xe5\x33\x88\x7c\ \xc9\x9f\x72\x28\x8f\x72\x95\xfc\x07\x0b\x7b\xe2\xc6\xf0\xe6\xb8\ \x3e\xac\xb9\x76\x69\x9f\x77\x4f\x8a\xdb\x0f\xe5\x89\xef\xa9\xb6\ \xca\x0a\xc3\xfa\xfd\xfa\xf5\x9b\x3e\x6c\x40\xff\x6b\x27\xa5\x4f\ \xe7\xba\x45\x53\x24\x8d\x6a\x85\xec\xc5\x9f\xa9\xfa\x7b\xa9\x87\ \x15\x23\xf0\x93\x46\x69\x6e\x49\x3c\x94\x70\x9d\x7a\x19\xa0\x6a\ \x47\x2f\xe6\xe9\x98\xad\x55\x7d\xc1\x51\xd7\xaa\x10\x79\x55\x47\ \x87\xe5\x9a\x7d\xc3\x2c\xbf\x31\x99\x59\xb5\xe9\x5d\x35\xdb\x59\ \x9e\x23\x20\x81\x19\x47\x9c\xe7\xa0\xfc\xc0\xf7\xd5\x0d\xd3\x94\ \xa3\xe4\x15\x6c\x30\xc1\x5d\x9b\xce\x10\x2c\xec\x09\xac\x18\xdd\ \xab\x23\xcf\x31\xc3\x88\xf5\x99\x74\x8b\xb3\x0e\x27\x3b\x43\xbf\ \xee\x5d\x3f\xda\x14\x32\xa0\x45\x36\x3f\x65\xb9\x2e\x94\x32\x5e\ \xce\x0a\x2b\x7a\x57\xb7\xca\xab\x37\x48\x2d\xbd\x41\x88\x19\x19\ \x06\x2a\xed\xc1\xef\x55\x92\xf2\x7c\xaa\xae\xd4\x76\xf6\xce\x6f\ \xa9\xba\x63\x9c\x99\x5c\x6d\xb0\xb5\x32\xde\xa3\xd0\x1f\xb1\xdb\ \xdf\x0f\xb1\x6e\x4b\xa0\x91\x3a\x3f\xf9\x92\x7f\xd1\x16\x0b\x64\ \xcc\xe9\x0e\x76\xb1\x11\xc3\x49\xb3\x16\xc5\xbd\x3f\xf9\xd0\x99\ \xd8\x88\xf1\x99\xb6\xcb\x8b\x80\x57\xc5\xc5\x7a\x08\xd9\x3a\x7c\ \xdd\xfa\xea\x25\xf3\xa6\x55\x6c\xa6\xbc\x2a\x40\x52\xad\x3b\xca\ \x56\xd9\x5f\x19\xa2\xd4\x6b\x3c\xca\xf7\x4d\xd7\xa5\xd5\x8e\xd8\ \x42\x7b\x64\x39\x92\xb3\x80\x5b\xd5\xdf\x0a\x64\x00\xd7\x9f\x50\ \xf5\x37\x03\x4c\x63\xcb\x2c\xff\xa4\x82\x5b\x4e\xc4\x6a\x7e\x32\ \x87\x38\x37\x5b\x14\xee\x1c\xa5\xf8\x66\xfe\xf0\x19\x12\xa5\x81\ \x8b\x32\xaf\x98\x37\xd1\xfa\x18\xb6\x4e\xed\x2a\x58\x88\x89\xd8\ \xfe\x96\x0f\x26\x78\xa4\x94\x08\xfb\x9e\x58\x7c\x5a\xcf\xae\x5d\ \xdc\xbd\xfb\xb7\xbc\x77\xd9\xf4\x9f\xda\xcb\x83\xde\xc2\x55\x01\ \x76\x5b\x3c\x22\x73\xc1\xa7\xe2\xa2\xa6\xec\xce\x50\xc7\xd2\xb2\ \x7d\x33\x91\xf5\xaf\x5f\x8b\xe4\x02\xf7\x14\xc9\x35\x29\x8f\xbf\ \xe9\x72\xf8\xe5\x21\xf3\xd4\x69\x2e\xcd\x73\x26\x22\x24\x89\x79\ \x62\xe3\x34\xa4\x4d\xff\x40\x29\x4e\x19\x97\xa5\x43\x2c\x74\x60\ \x8b\xec\xfe\x9f\x7c\xe8\x4b\x0c\xc4\x42\x4c\x7f\xeb\x27\x33\x8f\ \x4f\x8b\x8d\xc4\xf2\x7d\xe4\xbc\xb0\xa0\x4f\xf7\xce\xbb\x43\x0c\ \x9b\x65\x13\x60\x82\x49\x63\x92\x02\x7a\x4b\x1a\x9e\xd3\x67\x77\ \x43\xae\xbd\xb1\xca\xcd\x17\x69\x9e\x7c\x2b\x94\xaf\x88\xd7\x8a\ \x54\x49\xbe\x44\x23\xd7\x8e\x16\x78\xb0\xe4\x4b\x1c\x5f\x31\x01\ \x52\xb8\x45\xec\xf7\xfd\x65\xb6\x75\x7c\x8f\x18\x37\x2d\x1c\xde\ \xf3\xfd\x60\xca\xa4\x6c\x62\x20\x96\xe7\xf0\xe1\xe4\x6f\xbc\xa1\ \xa9\xcc\xc4\x40\x01\x63\x3b\xb0\x7b\xa7\x60\x97\xbe\xad\xd3\x4e\ \x98\xb6\xc0\x25\x93\xb7\xf8\x4d\x91\xa2\x04\xf3\x66\x2c\x4c\xfc\ \xe6\x8b\xb1\xea\x7f\xbc\x26\x55\x7f\x39\xc6\x67\x39\xe6\xe0\xe6\ \x95\x60\xd3\xc6\x59\x8b\x96\x9a\x3d\x86\x2d\xee\x8f\xfc\xb4\x63\ \x38\x65\x50\x16\x65\x52\xf6\x5f\xc5\xff\x54\x1b\x19\x85\x5a\x0b\ \x99\x09\xc0\xd9\xd2\xbf\xe3\x3a\xc2\xc2\x3c\xcf\x71\xf0\xa7\x88\ \x36\x6e\x59\x79\xde\xac\x79\x55\x4e\x6e\x11\xf2\x8a\x1e\x7f\x2f\ \x58\x5a\x81\xa2\x27\xc4\xef\x07\x75\xdf\x0e\x16\x94\xe1\x82\x79\ \xf3\xaa\x83\xd6\xdf\x6a\xa2\xa2\x0e\xc3\xd3\xdd\x2d\x4f\x66\xda\ \x81\x3c\xc9\x9b\x32\x28\xeb\xf9\x7e\x3a\xfb\xc7\x86\xd0\x97\x99\ \xfa\x40\x8c\x60\x6e\x6d\x6d\x7d\x6e\xd2\xa4\x49\x45\x42\x55\x43\ \x87\x0e\xcd\x1e\x6d\x39\x3c\x75\xe9\xc4\x11\x29\x9b\x57\xda\xe7\ \x3a\xba\x86\x6a\x1c\xdd\xc2\x35\x5b\xd6\x6f\xcb\xb5\x9b\x63\x73\ \x73\xde\x8c\x69\xf1\xf3\xe6\xcf\x3f\x2f\x87\xb0\x6c\xf9\x3a\xb4\ \x54\x52\x75\x9a\x3e\x7d\xfa\x0c\x27\x2f\xf2\x7c\x16\x1d\xa8\xcf\ \xba\x68\x59\x53\xa8\x81\x8d\x8d\x8d\xa9\xb4\xb4\x1d\x95\x63\x6d\ \x16\x5f\x6e\x98\xb8\x0c\x8b\x88\x42\xae\x78\x03\x29\xf1\x66\x32\ \x1b\x18\x8b\x1f\x7f\x30\x5d\x2a\x5f\x85\x56\x49\x9a\x2e\x41\x0c\ \xd6\x82\x3c\x9e\x25\x46\xfe\xe7\x6f\xa5\xe5\xcb\x97\xff\x53\xd2\ \x7b\xc3\xb6\x7b\x07\xad\xde\xb1\xe7\x88\xf7\xce\x7d\xb1\xfe\x2e\ \xbe\xc1\xeb\xe5\xde\x2c\x49\x7c\x4c\xe2\xa7\xf2\xac\xd9\xfd\x5d\ \x78\xfe\x1f\x54\xc7\x67\x32\x0b\x29\x7c\xe5\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x13\x17\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x12\x94\x49\x44\ \x41\x54\x78\xda\xed\x9b\x09\x90\x5c\x47\x79\xc7\xff\xdd\xef\x9a\ \x73\x67\xf6\xd2\xae\x56\xbb\xba\xbd\xb2\x84\x0e\x0b\x1b\x51\xb2\ \x1d\x0a\x6c\x8e\x40\x9c\x40\x48\x0a\xca\x54\x80\x70\xe4\xa8\x8a\ \x53\x60\x08\x15\x8a\x22\x45\x48\x02\x14\x47\x01\x45\x05\x63\x28\ \x53\xa9\xd8\xd8\xb1\x62\x82\x6d\x8e\x02\x0c\x54\x30\x92\x15\x09\ \xc9\x96\xac\xd3\xd2\xae\x76\x25\x4b\x7b\x68\xaf\x99\xdd\xd9\x9d\ \x79\xf3\x8e\xee\x7c\xaf\x5f\xc7\x33\x7b\x69\x25\xb0\x1c\x57\xa1\ \x4f\xfa\xeb\xeb\xd7\x3b\xf5\x66\x7e\xff\xef\xeb\x7e\x6f\x34\xb3\ \x4c\x4a\x89\xdf\xe5\xe0\xa4\x6b\x06\x5c\x33\xe0\x9a\x01\xd7\x0c\ \xb8\x66\xc0\x35\x03\x5e\xfa\x60\x51\xe0\xff\x39\xae\xca\x7d\x00\ \xbb\xee\x73\xad\x46\xd2\x79\x95\x44\x78\x13\x24\xef\x92\x12\x79\ \xce\xd1\x68\x9a\x46\x63\xd2\x36\x9a\x52\x09\x33\xcf\x18\xcf\x80\ \x49\x37\x0c\x51\x0c\x05\x0a\xbe\x2f\x0a\x55\x5f\x4c\x54\xaa\xfe\ \xf8\xb6\x75\xa9\x83\x87\x1f\xff\xab\x7b\xf1\x12\x84\xf9\xdb\x97\ \x11\x0c\xaf\xf8\xda\x2d\x8d\x59\xeb\x35\x89\x84\xb5\xa3\x54\x0e\ \xb6\xb7\x2c\x6f\x59\x99\x72\x2c\xa4\x93\x26\x32\x29\x0b\xd9\xb4\ \x85\x5c\xc6\x42\xc2\x31\x60\x5b\x06\x4c\x83\xc3\x88\xc4\x59\x86\ \x31\x64\x00\x74\x0a\x01\xb8\x5e\x88\x3d\x87\xc6\x83\xa1\xbe\x5f\ \x5a\x00\x5e\xde\x06\xb0\x1b\xee\x5d\xd1\xdd\x95\xff\x9b\xed\xef\ \xb0\xdf\xdd\x37\x90\xeb\x5c\xd7\xd5\x00\xce\x01\xc7\xe6\x24\x03\ \x09\x3b\x86\xa5\x63\x3d\xa6\xf9\x48\xb6\xa9\xc6\x96\xc9\x94\x11\ \x8c\x01\xa1\x00\xaa\x04\xbf\xef\xe8\x04\x5a\xf3\xe1\x91\xde\xfd\ \x67\x72\xa0\x78\xd9\x19\xc0\x5e\xf7\x4b\x33\x17\x0e\xbf\x6d\xd3\ \x9a\xdc\x5d\xc9\x64\xc3\xad\x4d\x8d\x0d\x46\xa1\x54\xc5\xaa\x8e\ \x26\x30\x82\xb1\x6d\x05\x1c\x03\x92\x6c\xc7\xd0\x63\x03\x96\x1d\ \xcf\x99\x26\x87\x11\xc9\x60\xaa\x7d\x04\x24\x02\x21\x31\xed\x4a\ \x4c\x56\x8c\xca\xc9\xbd\x8f\x77\x02\x38\xff\xb2\x33\xc0\xda\xf9\ \xdd\xd7\x6e\x5f\x9b\xbf\x2f\x9f\x6d\x5f\x37\x34\x56\x41\x7b\x6b\ \x0e\xe3\xd3\x8c\x40\x12\x90\xdc\x80\x50\x30\x1c\x81\x34\xc0\x25\ \x03\x17\x1c\x2c\xe0\x90\xe0\x08\x49\xbe\x60\x70\x7d\xc0\xe0\x91\ \x24\xb1\x4b\x48\x09\x25\x3f\x94\x38\xda\x57\x46\x02\x13\xc7\x67\ \x4a\x85\x9b\x40\xf1\xb2\x31\x80\xdd\xf2\xe8\xb2\x5c\x22\xf9\xd5\ \x1b\x36\xb4\xdd\x79\x71\xc2\xc5\xc8\xa4\x4f\x00\x16\x38\x67\x08\ \x25\x00\x82\x05\xc1\x8a\x00\x04\xca\xe0\x4b\x0e\x2f\x8c\x2a\xcd\ \x60\xfa\x24\x83\xc5\xd0\x06\xc0\x19\x03\xe7\x50\xf0\x00\x53\xf0\ \x42\x4a\x94\x5d\x81\x54\x32\x39\xf5\xd4\x4f\x1f\xee\x06\x38\xc0\ \xf8\xcb\xc3\x00\x76\xf3\xcf\xb7\xb4\xe6\x1a\x7f\xd1\x90\xb6\x5a\ \xcf\x0c\xfa\x04\x61\x13\x0c\x83\x90\x04\x24\x19\x01\xc5\xe3\x80\ \x80\x0d\xca\xbe\xe0\xe0\x3e\x08\x32\x12\x81\x2b\x78\x46\xc0\x0c\ \x94\x94\x50\x77\xe5\x13\x92\x91\x00\xd7\xe3\xc8\x89\x9e\xd3\x9e\ \x57\xbd\x09\x64\x2e\x98\x81\x28\x3e\x73\xf3\xcd\x2b\x66\x86\x87\ \x1f\x19\xef\xef\x3f\x2c\x81\x43\x9c\x64\x03\x47\xbf\x26\x65\xf5\ \x6a\x1b\x40\xf0\xbb\x77\x80\x27\x7e\x5c\xaa\xf2\xa6\x42\x59\x2a\ \x78\x53\x30\xbd\x7b\x03\x66\x54\x51\xc9\x09\x54\x57\x56\x12\xa8\ \x40\x04\x4b\x42\x2c\x30\x5d\xcc\xd8\x84\xfa\x90\x32\x9e\xf7\x42\ \x89\xed\xeb\xec\xb1\x1f\xdd\xbf\x6b\x73\x0d\x9e\x44\x91\xe4\xfc\ \xb3\x76\x5b\xdb\xce\xd6\x15\x2b\x76\x7a\xd3\xd3\x70\x4b\x25\xb8\ \x53\x53\xc1\x47\xd3\xe9\x43\x7e\xb9\xfc\x98\x00\x1e\xff\x57\x29\ \x8f\xbf\xe8\xf7\x01\xec\xf7\x7e\xdd\x0d\x66\x1c\x04\x43\xb6\x6e\ \x76\x56\xd6\x70\xaa\xc2\xbc\x2e\x73\x65\x80\x56\xfc\x40\x95\x05\ \xe2\x6a\x0b\x11\x29\x5a\x3e\x92\xb2\x44\xf7\x0a\x0b\xd6\xe4\xbe\ \x83\x87\xf7\x7e\xef\x26\x05\xcf\x38\x28\x3f\xfe\x8d\x2d\x85\x4f\ \xd2\x39\x0e\xe5\x57\xad\x32\x79\xf4\xd8\x30\x44\xe8\x79\x4a\x81\ \xeb\x62\x66\x6c\x0c\xa5\xc1\xc1\x28\x9f\x71\xa7\xa7\xff\x0b\xc0\ \x3d\x5f\x92\xf2\xdc\x8b\x63\xc0\xeb\x8e\xff\x84\xd2\x9b\x66\x41\ \xb3\x7a\x23\x2e\x31\x66\x97\xff\x73\xc7\x62\xf8\xe3\x9d\x7c\xf0\ \xe1\x7b\x3e\xd2\x4e\xe0\xfc\x05\x03\x38\x7f\xfc\xdf\xb6\x15\x13\ \xcb\xb7\x6d\x7b\x53\xaa\xa5\x05\x22\x82\xae\x54\x40\x55\x87\x4f\ \x39\xa0\xac\x8f\x95\xca\x64\xc6\xe4\xb9\x73\x81\x5b\x2c\x3e\xc4\ \x84\xf8\xfc\xa7\xa4\x3c\xf1\x1b\x2f\x01\x76\x5b\xff\x1f\xc1\x48\ \x12\xfc\xd5\x8f\x1d\x1b\x4c\x3c\xf3\x3f\x3f\xba\x08\x6e\x76\x28\ \x78\x70\x44\x79\x67\x93\x68\xc9\xe7\x72\x37\x37\xe4\xf3\x90\x42\ \xc0\x64\xd1\xd2\x33\x60\x58\x16\xcc\xa8\x13\x48\xc1\xff\x49\x08\ \x38\x4d\x4d\x68\x48\x26\x4d\x32\xe0\x3d\x33\x83\x83\xef\xfe\x22\ \x63\x0f\x13\xd8\x5d\x77\x4b\x39\x71\xe5\xef\x05\x0c\xf1\xa7\x58\ \x34\xd8\x8b\xa6\xe6\x2c\xc7\xca\xe6\xa0\xff\xf4\xb3\x4f\x6e\x07\ \xb3\x00\x66\x02\xdc\x52\x7a\xdf\x3a\xb9\xb9\xa1\xa9\x89\x85\x13\ \x13\xf0\x49\xa2\x50\x00\x68\xfd\x73\xaa\xb6\xe9\xba\x30\x7d\x1f\ \x16\xc1\xdb\x11\xbc\x94\x48\x02\x48\x32\x86\x6c\x22\x81\xd6\xe5\ \xcb\xd9\xb2\xf6\xf6\x3b\x93\x86\x71\xf4\x9b\x8c\xbd\xe1\xca\x37\ \x41\xc9\x6e\x04\xd8\x6f\x7c\x5f\x7c\x39\x61\x19\xc0\x6b\xb6\x5a\ \x78\xf2\x89\x07\xcb\x0a\xba\xb6\xf6\xf1\x86\x65\x21\xd6\x58\x7e\ \xce\xa0\x16\x97\xd1\x9a\x8f\xaa\x0f\xa8\x4e\x00\x41\xb3\x20\x00\ \x27\x03\x98\xe7\x29\xf1\x6a\x15\x06\x1d\x0b\x9a\xd7\xdd\x01\xdb\ \xb6\x91\x68\x6c\xec\x08\x8a\xc5\x9f\xde\xcf\xd8\xa7\xde\x23\xe5\ \x3f\x5f\xbe\x01\x8c\xad\xfc\x4d\x0d\x58\x1a\x9c\x61\xeb\x5a\x13\ \x5b\x56\xb3\x99\x91\xe1\xa1\xc3\x17\xce\x9e\xb8\x45\x19\xa0\x5b\ \x9f\x73\x13\x7f\x7d\xbd\x07\xa3\x58\x06\xfc\xf8\x7a\x2a\xb4\xa9\ \x4c\xc6\x3b\x28\xd3\x26\x48\x12\x27\x03\x84\xef\xc7\x46\x91\x11\ \x26\x29\xa4\xb1\x3a\x8e\x1e\x63\x59\x8c\x8c\xf9\xa7\xef\x31\x56\ \x7a\xbb\x94\x5f\xbd\x3c\x03\x44\x70\x0e\xdc\x7e\x05\x5e\xc4\xb0\ \x4d\x46\xd0\x1c\x5b\xd7\x18\xd3\xbd\xfd\x43\xa7\x1f\x7c\xf8\x99\ \x0d\x5d\xcb\xcc\x3c\xd8\xec\xea\xbf\x77\x8d\x40\xdb\xf8\x05\x84\ \x53\x53\xe0\xa6\xa9\x3a\x4a\x72\x0e\xae\xaf\x9b\x4a\x64\x80\xd4\ \x42\x5c\x79\x95\x8d\xc8\x0c\xea\x1a\x83\x96\x89\x88\x96\x09\x1d\ \x2b\xc3\xa0\xe2\xcb\x4f\x30\x36\xf4\x46\x29\x77\x2d\x6d\x40\x50\ \x2c\xc1\x5e\xb6\x64\x7b\x2f\x1d\x8c\xc0\x11\x41\x63\xcb\x2a\x3e\ \xdd\x7b\x6e\xe8\xf4\x77\x76\x1d\xda\xe0\x07\xc1\x2b\x09\x96\xc0\ \x1c\xa9\xaa\xaf\xe1\x13\x06\xc7\x07\xbb\x09\xec\xbf\xcf\xa8\x0d\ \x8f\x93\xf4\x6d\x23\x0c\xe8\xd0\x5d\x00\x82\xa6\x2a\x2b\x50\x10\ \xb0\xa4\xca\xf3\x48\x35\xe0\xb9\x99\x31\x32\xe1\xc7\x8c\x3d\xf6\ \x66\x29\xab\x97\x36\xa0\x74\xba\x19\x2d\xed\x1e\x00\x1b\x60\x57\ \x04\xac\x93\x06\xe7\xd8\xb2\x92\x4f\xf7\xf4\x0f\x9f\x7e\xe0\x3f\ \x0f\x5d\x1f\x04\x82\xc0\x39\xc0\x13\x0a\x3a\x84\x49\x39\x92\xa1\ \xf4\xf1\x2d\x0c\x89\xa7\x7e\x0e\xb7\xb7\x17\x1a\x5c\xc9\x27\x31\ \xe8\x3d\x40\x8b\x49\xa9\xe6\x8c\x39\x5b\x33\xe6\x1f\xd7\xe7\x8e\ \x0c\xf0\x01\x00\xf7\x2c\xb1\x04\xaa\xd7\xc1\x1b\xdd\x03\xa7\xfd\ \xd6\xcb\x02\x06\x66\x5d\xd7\xb7\xae\x66\xd8\xbc\x8a\x97\x7a\xce\ \x0e\xf5\x3c\xf0\xc8\xb3\x1a\xdc\xc0\xac\xcd\x0e\x1c\x42\x9a\x1c\ \x7a\xae\x25\x61\xe0\x5d\x6b\x25\xa6\x1f\x3d\x86\x14\x50\xdf\xba\ \x98\x21\x25\xe7\xc1\xe8\xbc\x18\xf0\xe2\xa6\xdc\xb9\xb4\x01\xdc\ \x01\x26\x8f\xec\x40\xeb\xb2\x13\xe0\xe6\xa6\xc5\x80\xe7\x83\x43\ \x81\x9f\xee\x1b\xea\x7d\xe0\x91\xe3\x04\x1e\x12\xb8\xa9\xab\xa9\ \x85\xda\x58\xc8\xd0\x89\x0d\xb0\xf0\xc5\x9d\x16\xda\xb6\xad\x41\ \xc3\xfb\xdf\x8f\xd2\xc3\x0f\x43\x96\xcb\x2f\x00\x0c\x91\x12\xaa\ \xda\x2f\x4a\xb4\x2e\xbd\x07\x18\x0e\x10\xc2\xc6\xe8\x2f\x96\x37\ \xaf\x7d\xe3\xb1\xf1\x19\x73\xf3\xa2\xe0\x36\x03\xbd\x6e\x6c\xea\ \x44\xe9\x54\xdf\x85\xfe\x07\x1e\x39\xd5\x1d\x04\x72\xbb\xaa\xb4\ \x41\x70\x52\x90\x02\x40\x90\x64\x08\x1a\xe8\xb9\x10\xfe\xd4\x64\ \x13\xfd\xa3\x9e\x6f\xef\xd3\xfd\xe8\x5a\xd5\x80\x1d\x7f\x70\x07\ \x52\x3b\x77\x62\xea\xbe\xfb\x50\xdd\xbf\x1f\x13\x00\xce\x92\x9e\ \x27\xa5\x49\x59\x52\x86\x94\xd7\x62\xb8\xb2\x28\x02\x4d\x4b\xde\ \x0a\xb3\x57\xff\x40\x22\xac\x02\xc2\x85\x69\x04\x6e\xd0\x78\xfb\ \xb3\xe9\x74\xea\xd5\x33\x6e\x7d\xc5\x63\xf0\x8d\x2b\xc2\xe9\x53\ \xbd\xe7\xcf\x1f\x38\x7c\x66\x5d\x18\x4a\x1b\xc2\x05\x44\x05\x08\ \x23\xcd\x90\xaa\x75\x9b\x27\xd3\xe3\x58\x2d\xe9\x69\x77\xec\xe2\ \x40\x22\x32\xeb\x6d\x23\xbf\x42\x8b\x37\x81\xfc\x96\x1b\x70\xc7\ \xbb\xfe\x04\x37\x6d\x5e\x0b\xef\xa9\xa7\xf0\xab\x6f\x7e\x13\x63\ \x85\xc2\x82\x3d\x68\xe9\x72\xb6\x20\xa6\xe2\x58\x3a\xf6\x00\x07\ \xfe\x4c\xca\x1d\x97\x36\x60\xe7\x13\x52\x1b\xa0\x55\x95\xd7\x6f\ \xe8\xde\x5f\x4d\xbe\x62\xcd\xc5\x49\xde\x76\x03\x81\x5f\x4f\xe0\ \x27\x4e\xf6\x0f\x1d\x38\xd2\xbf\x3a\xac\x4e\x5a\x08\x26\xe3\xc7\ \x4a\xe8\x16\x67\x7a\x5c\x03\x9e\x3b\xd7\xe8\x14\xbd\xc2\xf8\x45\ \x3b\x32\xe0\x9d\xc3\x3f\xc7\xb2\xea\x18\x04\x24\x42\x00\xcb\xb6\ \x6e\x9c\x7c\xd3\x7b\xdf\x69\x74\xac\xec\xcc\x9c\xfe\xd6\xb7\x30\ \xf8\xb3\x9f\x5d\x72\x21\x9a\xa4\x0e\x52\x27\xc9\xc6\xe2\xf1\x61\ \xe0\x17\x8f\x4a\xf9\xfa\x4b\x1b\x70\xcb\x93\x92\xa0\x81\x50\xc1\ \x93\x5c\x35\xb6\x2d\x39\xfd\xd6\xdf\xbf\x75\x60\xa4\x50\xb6\xf6\ \x1c\xe8\x59\x19\x56\xa7\x4c\x04\xa5\x79\xd5\xd5\x9a\x33\x37\xdf\ \x8c\x9c\x39\xea\x4f\x16\xc7\x2d\xc0\xc4\xbb\x07\x7f\x88\x76\x77\ \x34\x32\x80\x04\x84\x94\x07\x10\xa0\x65\xf3\x86\xe0\xad\xef\x7d\ \x17\xeb\x12\x81\xf1\xdc\x57\xbe\x82\xca\xf0\xf0\xa2\x46\x30\xad\ \x36\xd2\x4a\x52\x02\xb3\x63\x0c\x28\xbe\x03\x48\xf6\x48\x99\x58\ \x7a\x13\xd4\xd7\x5c\x3d\x50\xf2\xfc\x6a\x66\x7a\xf8\x40\xe7\xa9\ \x3e\x99\x0e\x2b\x25\xfd\xae\x2d\x15\x83\x31\x00\xb2\x76\xe9\x8a\ \x83\x2f\x0c\xaf\x0d\x90\xbc\x04\xf0\x34\xc9\x80\x03\x13\x49\x30\ \x08\x25\xa0\x80\x10\x06\x8d\x27\x8e\x9d\x36\xbf\xfd\xb1\x7f\x44\ \xdb\x96\xeb\xc3\xb7\xfc\xed\x87\xd0\xd9\x73\x8a\x0f\x3e\xf6\x18\ \xf3\x8a\xc5\x05\x4d\xd0\xa0\x28\x90\x56\xeb\xae\xd0\x11\x7c\x16\ \xd6\xd3\x19\x88\xdb\x97\xde\x04\x79\xa2\x0e\x5c\x67\xe1\x83\xaa\ \x4d\x29\x6d\x05\x22\x0d\x98\x99\x39\x40\x57\x38\x86\x80\x80\x0d\ \x98\x91\x81\x26\x1c\x52\x02\x5c\xc1\x07\x91\xd9\x90\xda\x10\x28\ \x15\x8e\x3e\x67\x7c\xe7\xe8\x67\xb1\x6c\xcb\xc6\xf0\xcd\x1f\xff\ \x04\xd6\x8f\x8f\xf2\x81\x5d\xbb\x58\xe5\xf9\xe7\xb1\x58\x5c\x20\ \x4d\x93\xd6\x91\xee\x45\x62\x5f\x05\xec\xf6\x2c\x02\xa8\x58\xba\ \x03\x64\x9d\x77\x53\xf1\x86\xc6\xcd\xa8\x2e\x3c\x60\x29\xc0\x08\ \xe7\x54\x96\xcf\x69\x77\x3e\x07\x5c\x46\x7f\xe3\xac\x25\x85\x23\ \xe3\x67\x8f\x0d\x48\x6a\x03\x26\x10\xc0\xa2\xb1\xa1\x97\x83\x54\ \x99\x45\x59\x19\xf1\xe0\xc7\xff\x05\xad\x5b\x37\x85\x7f\xf8\xd1\ \x8f\x61\xbd\x5f\x35\x86\x1e\x7a\x08\x93\xcf\x3c\xb3\xe0\x5d\x4a\ \x25\x99\xc4\xe7\x2b\x62\xcc\x83\x7d\x6b\x16\x21\x04\x0c\x30\x0a\ \x49\x71\xe9\xcb\x20\xa4\x92\x82\x07\xa3\xb9\x14\x25\x03\x92\xd9\ \x2c\x40\x64\x80\xa8\x01\xab\xcc\x6b\x63\x15\x6c\x76\x07\x49\x12\ \xc3\xac\x39\x21\x38\x60\x64\xd5\x79\x2d\xdb\x81\xe3\x5b\xf0\x45\ \x08\x57\x32\x24\x04\x87\x50\xc8\x40\xa8\xb3\xa8\xcb\x53\x47\x4e\ \x1a\xf7\x7f\xe8\x93\x68\xdd\xb6\x29\xbc\xe3\x2f\x3e\x88\xed\x77\ \x67\x8d\xe1\x07\x1f\xc4\x38\x6d\x96\x32\x0c\xc1\x1d\x07\xc3\x9e\ \x1f\xec\x66\x59\x0f\xa8\xb6\x78\x90\x48\x13\x7c\x58\x63\xf6\x17\ \x34\x80\xcc\x31\x70\xfb\x19\x7d\x2f\x50\x06\x98\x45\xe3\x34\x65\ \x53\x49\x70\x2e\x95\x01\x26\x16\x00\x17\x80\x9c\x05\x59\x4b\xac\ \x56\x79\xc6\x38\x72\x59\x07\xd9\x95\x67\xf9\xf9\x0d\x5f\x07\xeb\ \xdf\x86\x7c\x49\x56\x93\x70\x9c\x29\xcf\x85\x15\x98\x30\x24\xc1\ \x4a\x42\x15\x0a\x5a\x65\x01\xd2\x1c\x23\x4a\xcf\x9e\x34\x1e\xbc\ \xeb\x13\x68\xde\xba\x51\xdc\x71\xd7\x07\xe4\x8d\x77\xdf\x6d\x0c\ \xef\xda\x85\x27\x4f\xf5\x54\x2f\x1c\xeb\xb7\x5a\xdc\x20\x55\x81\ \xa1\x1e\x1d\x92\x32\xe0\xa0\x48\x13\xe7\xa4\xee\x02\x98\x35\x78\ \x45\x91\x56\x40\x32\x88\x97\x82\x29\x55\xeb\x23\x24\x89\xa8\x03\ \x04\x42\x9e\xa5\xf9\xd9\xa0\xb5\x2a\x2f\x54\xf9\x48\xea\xfc\xc8\ \x65\x6c\x34\xae\x1d\x01\x5f\xbf\x07\xd5\x65\x07\x4d\x24\x0e\x81\ \x75\x1f\xc2\x0f\x6e\x58\x66\xbd\x7e\x4f\x13\xf2\xbb\x4d\x64\xc6\ \x5d\x50\xf1\x20\x94\x01\x80\x50\x26\x48\x1a\xeb\x63\xc8\x59\x86\ \x48\x52\xe9\xc8\x29\xfe\xd0\x5f\x7e\x0c\x4d\x64\x84\x63\x04\x41\ \x43\x71\xc6\x69\x4a\x25\x51\x81\x1b\xbf\x06\xcf\xc7\x34\x24\x9c\ \xb8\x0d\x9b\xf5\x1d\xb6\x3f\xcb\x00\x3d\xce\x93\x74\xdb\xdb\xba\ \xf2\x5a\x64\x82\x60\x2e\x42\xe9\x00\x5c\x43\x83\xcd\x06\x55\xa1\ \x8d\x90\x52\x57\x1c\x04\x6e\x21\xb7\x7a\x08\x7c\xdd\x41\x84\xd9\ \x01\x54\x05\xe0\xf9\x02\xb0\xa0\xe4\xa6\x05\xdf\x73\x7b\x09\x89\ \x9d\x1c\x1b\xf7\x25\xb0\x72\x77\x0a\x95\x02\x19\x11\x90\x11\x61\ \x0c\x2c\xd5\xb2\xd1\x63\x49\x63\x59\x1b\xab\x63\x30\x4c\x93\x11\ \x99\xee\xe5\x3c\x99\xb4\x11\xb7\x89\x54\x99\x51\x96\x41\x6c\x9e\ \xbe\x77\x1a\x5e\xcc\x80\x56\x30\x56\x9b\x36\x74\x07\x08\x65\x82\ \x5a\x8f\x82\xd9\xb3\x61\xa3\x21\xc7\xbc\xca\x33\x03\x68\x48\xdb\ \xc8\xad\x3a\x0f\xb6\x66\x5f\x0c\x1e\x02\x41\x55\xc2\x0f\x24\x08\ \x0d\x70\x30\x2b\xdc\x94\xc0\xa1\xdb\xca\x38\x41\x46\x6c\xde\x97\ \xc4\xaa\xbd\x69\xb8\x13\x51\x47\xf8\x11\xac\x86\x86\xee\x0e\x0d\ \xae\x40\xc5\x0b\x86\x24\x6c\x0b\x29\xc7\x89\xc1\x69\x0e\x42\xab\ \x2c\xe1\x89\x10\x14\x0d\x24\x63\xa1\x3d\xc0\x8a\x3b\x80\xe9\xc2\ \xc6\x15\x56\x24\x3c\xa1\xc6\x7e\xe0\xaa\xe3\xf9\xff\x3f\x20\xeb\ \x8a\xcf\x90\x4d\x73\x34\x74\x9d\x05\x5b\xbd\x17\x41\x7a\x00\x41\ \x08\xf8\x33\x92\x32\xc1\x87\x42\x19\x20\x24\x4d\x5a\x50\x26\x94\ \x11\x20\x2b\x6c\xf2\x3b\x3e\x67\xd5\x16\x78\xfa\x35\x33\x38\xf6\ \x2a\x8e\x2d\x4f\xa7\xb1\x66\x6f\x12\xd5\x42\x15\xbe\x1f\x10\xeb\ \xec\xea\x0b\x95\xd5\xf2\x50\xc7\x8e\x63\x43\x75\x80\x36\xa0\x5e\ \x46\xd9\x13\x90\xea\x59\xf9\x3c\x03\xf4\x24\x91\x4a\x2c\x6c\x82\ \x03\x2f\xe4\x34\x5e\xf8\x1e\x4c\x81\x67\x4c\x64\x57\xf4\x01\x5d\ \x7b\x10\xa4\x06\xe2\x4a\x97\x22\x68\x0d\x1f\xc4\x2f\x16\x20\xd9\ \x5e\x44\x0e\x91\x92\xe8\x61\x45\x8c\x99\x2e\x3a\xbd\x0c\x72\x01\ \x19\xa1\xcf\x5b\x35\x05\x0e\xee\x28\xe1\xe8\x36\x86\xad\x87\x33\ \x58\xbf\x3f\x09\xaf\x58\x55\x7b\x84\xea\x88\x08\x1a\x22\x36\x41\ \x2b\x99\xa0\x0e\x48\x38\x60\x02\x1a\x5c\x73\x48\x60\x4a\x88\x49\ \x54\x10\x00\x10\x8b\x5d\x06\x05\xaa\x43\x13\x70\x3a\x9a\x74\x95\ \x67\x99\xe0\x4b\x4b\x8d\xeb\x42\x81\x67\x52\x26\x32\x1d\x04\xde\ \xb1\x07\x5e\x62\x20\x86\x9d\x22\x68\x55\x6d\x20\x14\x42\x9f\x27\ \x04\x8c\x0a\xd0\x78\x02\xc8\x9f\x04\x26\x24\xe0\xc6\x97\xba\x71\ \x54\x50\x60\x2e\x1a\x99\x85\xce\x4a\x0a\x39\xdf\xaa\x75\x04\xe9\ \xc0\xa6\x2a\x8e\xac\x63\xb8\xe1\x78\x16\xdd\x87\x93\x74\xfe\x80\ \x0a\x22\x5e\xe8\x08\xa8\xac\x0d\x48\x39\x0a\xbc\x26\xa9\x0c\xa9\ \x7a\xee\x79\x00\x25\x52\x30\xcf\x00\x3d\x39\x8d\x99\x33\xe7\x90\ \x58\xd1\x04\x39\x77\x43\x03\xc1\xf0\x1a\x38\xe7\x0a\x3c\xdd\x76\ \x06\xb2\x8d\xc0\x9d\x0b\xb5\x8a\x07\x71\xd5\x75\x5f\xc6\x86\x1b\ \x33\x31\x74\xc3\x73\x00\xf7\x01\x3f\x2a\x09\x00\x7d\x53\x29\x01\ \x6d\x84\x87\x82\xe5\xa3\x51\x18\xe8\x9a\xb6\x91\xf3\x0c\x70\x05\ \xc1\xe0\x01\xd8\xbf\xb6\x8c\xc3\x5d\x1c\xdb\x4f\xe5\xb0\xf1\x64\ \x06\x7e\x19\xf0\x24\xf4\x72\x10\x64\x80\x8d\x54\x52\x1b\x80\xb8\ \xf5\xa1\x3b\x61\x64\x26\x3c\x00\x60\x6c\xc1\xfb\x00\x3d\x39\x81\ \xe9\x13\xc7\xd0\xfc\xda\xed\xca\xb2\x59\x26\x00\x55\x5f\x2a\xf0\ \x74\x92\x5c\x5e\xd6\x0b\xd9\xb2\x1b\xae\x15\x55\x5c\xe8\x8a\x4b\ \x84\x24\x40\xc1\x6b\xf0\x32\x41\x9f\x20\x9d\xaa\x81\x57\x01\x4c\ \x92\x5c\x52\x1f\xa9\x61\x21\x23\x02\x14\xd2\x01\x1a\x39\x47\xd7\ \x24\x43\xde\xd5\x9f\x3d\x02\xb1\x11\x5d\x33\x38\xdc\x4e\x46\xf4\ \xe5\xb0\xb9\xa7\x11\xbe\xb4\xc9\x08\x03\xb6\x41\x45\x89\x0c\x00\ \xf4\x12\x60\x0a\x7e\xc8\x75\xcf\xee\x2a\x5e\xfc\x0f\xc5\x08\x04\ \x8b\x19\x30\x8a\xb3\xf7\x7d\x1f\xed\x6f\x7f\x0b\x9c\xf6\xe6\xb9\ \x26\xf8\x21\x60\x27\x27\xd1\x7c\xdd\x5e\x54\x93\xbd\x98\xae\x96\ \x51\x75\x43\x9a\xd7\x55\x96\x75\xe0\x5c\x83\x67\x4e\xd7\xc0\x3d\ \xdd\x80\x2e\x6a\x11\xea\x9a\x14\xb4\x09\xa9\x7a\x23\x80\x71\x43\ \xa0\x90\x07\xf2\x15\xa0\xb3\x08\xe4\x5c\xc4\x4b\x43\x02\x15\x84\ \xd8\xb7\x6a\x1c\xcf\xad\xa8\xe0\xc6\x63\xcd\x58\x35\xd9\x04\xce\ \x39\x12\x8e\xa5\x0c\xe0\x92\x04\x46\x45\x11\xde\x03\xc3\xe7\xbf\ \xa0\xed\x2e\x2d\x78\x2b\x4c\x73\x82\x31\x36\x05\x6f\xf4\x38\x9e\ \xfb\xe4\xd7\xb1\xf5\x1b\x9f\x00\xb3\xcc\x7a\x13\xbc\x40\xca\xc0\ \x18\xc2\xc5\xf1\x43\x70\x8c\x75\xc8\xa7\xb2\x90\xf6\x08\xa6\xc3\ \x22\x66\xfc\x69\x04\xc2\x8f\x5b\x3d\x43\xe0\xa9\x08\x3c\x88\xfb\ \xd3\xd7\xef\x4c\x3c\x2c\x1e\x81\x5e\xec\x05\x6d\x42\x72\xb6\x11\ \x13\x06\x50\x6c\x02\x72\x15\xa0\xab\xc4\xd1\x11\x64\xd0\xe1\xe5\ \x90\x1c\x91\xe8\x2d\x8d\xe2\x38\x2b\x61\x83\xdd\x06\xcb\x30\x24\ \xe7\x2c\xba\x12\x28\xf8\x6a\x10\x7a\x0f\x0d\x9c\xfb\xf2\xa1\xc9\ \xc2\x2f\x01\x5c\x24\xf9\x97\x7a\x33\xe4\x91\x86\x30\xf2\xd3\x9f\ \xe0\xfc\xbf\xaf\xc7\xca\x0f\xde\x09\x70\xa6\x4d\x88\x37\x34\x3a\ \x0c\xbd\x00\x2e\x3f\x85\x49\x5f\x22\x65\xb5\xa0\xd1\x5e\x87\xd5\ \x0d\x5c\xb6\xb5\xf7\x4a\x2f\x39\xc8\x47\x2b\xc0\x68\xb9\x11\xe5\ \xe8\x83\xcb\xc9\x32\x84\x27\xb0\x60\x30\x2c\x18\x7a\x89\x28\x13\ \xac\xa4\x85\xb4\x93\x46\x73\xb2\x19\x4d\xc9\x26\x91\x43\xc3\x70\ \xa5\x38\x53\x1e\xee\xbb\xd0\x74\xfe\xe2\x40\x53\xa6\x12\xef\xf0\ \xcd\x3c\x03\x87\x2a\x6f\x70\x0e\x93\x71\x44\x31\x63\xb0\xd2\xa7\ \x9f\x3e\xf4\xf9\x1f\x9f\x3b\xf7\x43\xfd\x06\xb1\x22\x29\x16\x35\ \x40\x77\x41\x09\x40\x0f\x4e\x7d\xfa\x1e\x54\x47\xa6\xb1\xfe\x23\ \x7f\x0e\xe6\xd8\x60\x80\x1f\xea\xfb\x5a\x11\xaa\x04\x29\x50\xc6\ \x19\x94\x13\xdf\xc7\x40\xa2\x97\x25\x7c\x03\xd7\xd9\xd7\x8d\x6c\ \xcc\x6d\xc4\x6d\xcd\xb7\xa5\xda\xd3\xed\x4e\x73\x43\xb3\x59\x0d\ \xaa\xcc\x0d\x5c\x94\xbd\x32\x66\xaa\x33\x98\xaa\x4e\xa1\xe4\x96\ \x30\xe5\x4e\x51\xc5\x2c\x64\x9d\x2c\x92\x56\x12\x29\x3b\x85\x84\ \x95\x80\x63\x3a\xb0\x0d\x5b\x8a\x40\x84\xe3\xa5\x71\x6f\xa4\x32\ \x52\xee\x2f\xf5\xbb\x3d\x17\x7a\x1a\xc7\xa6\xc6\x3a\xe0\x23\xde\ \x0f\xf2\x40\x83\xcd\xd0\x56\x62\x90\xe0\x48\x70\x1b\xb6\x61\x84\ \x64\x82\x75\xf8\xe2\xe8\x91\x7f\xd8\xbd\xf7\x2b\x07\x86\x47\xf7\ \x01\x18\x24\xcd\x48\x8a\xcb\xfb\x78\x9c\x31\x8b\x52\x8e\xb4\x16\ \xad\xaf\x7f\x23\x36\x7d\xee\xc3\xb0\xdb\x9a\x4d\x7f\xc8\x0d\x32\ \xa5\x04\xb2\xf7\x03\x56\x19\xc8\x1c\x03\xb2\xbd\x34\x0e\x48\xba\ \xa2\x7e\x9d\xb5\x24\x27\xe1\xa0\x23\xd1\x21\x3a\x8d\x4e\xd1\x68\ \x37\xca\x8c\x9d\x61\x79\x3b\x2f\x73\x66\x8e\x35\xd8\x0d\x08\xc2\ \x00\xc5\x4a\x11\x85\x4a\x41\x96\xaa\x25\x4c\xba\x93\x6c\xa8\x32\ \xc4\x2e\x94\x2f\x18\x85\x72\x21\x3e\x5f\xa0\xd7\x01\xaf\x7b\x0e\ \x2d\x16\x90\x3c\xa0\x79\xc2\x7a\xf6\x73\xe5\x1b\x8d\xce\xce\x16\ \xf3\x91\xbe\xfe\xef\x7e\xfb\x59\xf5\x11\x7f\xbf\x5e\x54\xd5\xa8\ \xb8\x57\xf0\x45\x49\xfd\xce\x90\xf0\x48\xed\x30\xb2\x1b\x71\xfd\ \xa7\xde\x87\xa6\x5b\x77\x22\x3b\x98\x42\xfb\xdf\xa7\x90\xee\x07\ \x6c\x05\x1e\x87\xd0\xd9\xaa\xc1\xc3\xaa\xcb\x86\xce\x24\x15\x41\ \x9d\x7c\x0d\xe8\x2f\x31\xa7\x8d\x50\x21\x6b\x3f\xd3\x7b\xcc\xa3\ \x78\x02\x9f\x41\x1c\x45\xd2\xb8\x7e\xd3\x13\x48\x8a\x2b\xfe\x8a\ \x8c\x94\x32\x54\x9b\x22\x50\x45\x58\x2a\xe0\xf8\xdf\xf5\x23\x7f\ \xd3\x2a\xac\x3f\xde\x8d\x55\x95\x2f\x80\xe9\x17\x13\x90\x58\x1d\ \x28\x27\x19\x5a\x7c\x4e\xd6\x52\x21\xb5\x84\x9e\x93\x3a\xcf\x9b\ \xd3\xc7\x5c\x4b\xd4\x81\xd7\x63\x71\x35\x7b\xaa\xee\x55\x85\xaa\ \xea\xbf\xcd\x97\xa4\xf4\x09\x2a\x64\x84\x47\x79\x0a\xc5\x83\xcf\ \xa3\x01\x36\x84\xde\xa8\x78\x0d\x5a\x4b\x03\xcf\x85\x5e\xc2\x00\ \x39\xe7\xb8\x06\x3d\x5f\x4c\xe7\xfa\x02\x08\x25\x5b\x43\x57\x5e\ \xdc\x2f\x4b\xeb\x6e\xd0\x27\x2e\xe1\x24\x7e\x8d\x7e\x7c\x0d\x33\ \x18\x9c\x0b\xba\xc4\xf1\xa2\xaa\x19\x37\xcf\xcc\xa5\x4d\x90\x70\ \x31\x41\xcd\xff\x3c\xee\x8d\x66\xa2\xb8\x6a\x5f\x96\xa6\x73\x73\ \xfd\x21\x4d\x3b\x69\x0d\xb6\xe0\x76\x6c\xc2\x5b\xd0\x89\x6e\x24\ \x60\xc3\x9a\xb7\xf6\x6b\x32\x17\xd8\x03\xfc\xd9\x59\x8f\x97\x3e\ \xf6\x20\x09\x7a\x04\x17\xb0\x1b\xc7\xf1\x18\x5c\x9c\xd0\x97\xb9\ \x22\xf1\xf8\x57\xcb\x80\x7a\x13\x1c\x6d\x44\x63\xbc\x49\x62\x39\ \xb6\xe1\x55\x58\x87\x57\x62\x05\x36\xd0\x51\x3b\x1c\x18\x57\x6c\ \x80\x7f\x89\xb9\x22\x8a\x84\xdc\x87\x21\x1c\xc1\x69\xec\x47\x01\ \x7d\xfa\xc6\x66\xb4\x76\x7f\xa9\x37\xbc\xab\x66\xc0\x7c\x23\x4c\ \x6d\x46\x52\xdf\xd1\xe7\x95\x29\x49\xb4\xa0\x9b\xec\xe8\xc4\x1a\ \xb2\xa2\x03\xcd\x68\x27\x35\x23\x8d\x04\x92\xb0\x55\xaf\x18\xda\ \x16\x17\x02\x15\xf8\x2f\xa8\x0c\x0f\x93\xf4\xa7\x40\xb8\x13\x18\ \x24\xbc\x73\x78\x9e\x60\xc7\x30\x00\xa0\xa0\x55\x24\x95\xf5\x4e\ \xe4\x91\x84\x06\x7f\xe9\x7f\x5f\x40\xaf\xb9\x48\x46\x9d\x21\x36\ \x29\x51\xbb\xa9\x55\x39\x51\xd7\x0b\x86\x16\xab\xdb\xfa\x82\x5a\ \x56\x60\x95\x08\x52\xe7\x19\x0d\x4a\xd2\xbd\xb1\x14\xf4\xd5\x37\ \x60\x69\x43\x16\xd9\xce\x50\xcb\xda\x80\x38\x44\x2d\xab\xb9\x50\ \x8f\x43\x2d\xb9\x10\xf0\xcb\xc9\x80\xa5\x8d\xb9\xcc\x50\xa0\x2f\ \x51\x5c\xfb\xd5\x59\xe0\xda\x6f\x8d\x5d\x33\xe0\x9a\x01\xbf\xc3\ \xf1\xbf\x9d\xd2\xae\xe2\x5a\xef\x69\x4e\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x0d\x06\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x0c\x83\x49\x44\ \x41\x54\x78\xda\xed\x9b\x5b\x68\x55\xd9\x19\xc7\xd7\x49\x4e\xa2\ \x26\x26\x1a\xe3\x35\x31\x5e\xc6\x54\xad\x97\x4a\x95\x29\x38\x14\ \xc4\x22\xb6\xcc\x73\x9f\x2a\xf4\x61\x5e\x7c\x10\xc4\xc2\x0c\x08\ \x7d\x28\xf8\x54\x4a\x1f\x15\xa4\x4f\xf6\x51\x0a\x52\x90\x4e\x07\ \x41\x94\xfa\xe0\xfd\xd6\xaa\x03\x5e\xc6\xfb\x35\x51\x63\x2e\x46\ \xcd\xc5\x7e\xbf\x0d\xbf\x61\xcf\x31\x92\x8c\x1c\x83\xc1\x2c\x58\ \xec\xbd\xd7\x59\x7b\xad\xef\xfb\x7f\xf7\xb5\x93\xc2\xeb\xd7\xaf\ \xd3\xc7\xdc\x2a\xa2\x8f\x03\x30\x0e\xc0\x38\x00\xe3\x00\x8c\x03\ \x30\x0e\xc0\x47\xda\x8a\x1f\x1a\x41\xc7\x8e\x1d\xdb\x53\x5d\x5d\ \xfd\xb3\x69\xd3\xa6\x7d\xe1\x98\xad\xad\xad\xed\x8f\x95\x95\x95\ \xf3\x57\xaf\x5e\xfd\x8b\x72\xed\xf7\x41\x24\x42\xdb\xb6\x6d\x5b\ \x50\x2c\x16\xff\x10\xb7\x9f\xcd\x9e\x3d\xbb\x65\xf2\xe4\xc9\x93\ \x18\x87\x36\xaf\xb6\x81\x81\x81\xc1\x4b\x97\x2e\xdd\x1a\x1c\x1c\ \xbc\xd4\xd1\xd1\xf1\xb7\xbd\x7b\xf7\x1e\x1a\xd3\x00\x6c\xd9\xb2\ \xe5\xb3\xfa\xfa\xfa\xc3\x21\xf5\xaa\x21\x09\x2c\x14\xd2\xdb\xc6\ \x03\x84\x74\xfd\xfa\xf5\x43\x15\x15\x15\xbf\xd9\xb3\x67\xcf\xab\ \xb1\x64\x02\x32\xff\xcb\x9a\x9a\x9a\x43\x21\x84\xe2\xcb\x97\x2f\ \x87\x63\x78\xc8\xb1\x96\x96\x96\xf5\xd7\xae\x5d\xfb\x26\x1e\x7f\ \x35\x96\x9c\xa0\x0c\xfc\xb3\xbf\xbf\x3f\x13\x42\x00\x91\xaa\xaa\ \xaa\x52\x98\x02\x3d\xbb\xb7\x3b\x6e\x9f\x38\x71\x62\xc6\x3c\xa0\ \xd1\x9b\x9a\x9a\xd6\x6f\xd8\xb0\x61\xdd\x98\xd2\x80\xcd\x9b\x37\ \xff\x39\x98\x69\xec\xeb\xeb\x4b\xcf\x9e\x3d\x4b\x0f\x1e\x3c\x40\ \xa5\x47\x0a\x5c\x0a\x27\x99\x1a\x1b\x1b\x93\xad\xae\xae\xee\xaf\ \x71\xf9\x74\xac\x00\x00\xb3\x5f\x04\xf3\x48\x10\xef\x9e\x16\x2d\ \x5a\x94\xc2\xf9\xa5\xe7\xcf\x9f\x23\x65\xe7\xa4\xce\xce\xce\xd4\ \xd0\xd0\x90\x31\xfc\xf4\xe9\xd3\x34\x69\xd2\xa4\x74\xfa\xf4\xe9\ \xf4\xe4\xc9\x93\x44\x0b\xff\x91\x68\x53\xa6\x4c\xf9\xf9\xc6\x8d\ \x1b\x8b\x07\x0e\x1c\xe8\xff\xe0\x01\xd8\xb4\x69\x53\x75\xb4\xe9\ \x71\x0b\xc3\x78\xf6\xb4\x6a\xd5\xaa\x34\x61\xc2\x84\x74\xe3\xc6\ \x8d\x34\x6b\xd6\xac\x74\xea\xd4\xa9\xd4\xda\xda\x9a\xe6\xcf\x9f\ \x8f\x9d\xc3\x60\xba\x7a\xf5\x6a\x5a\xb8\x70\x61\x3a\x7b\xf6\x6c\ \xf6\x4e\x77\x77\xb7\xe6\x00\x68\x95\x2f\x5e\xbc\xd8\x14\x4b\xfe\ \xfd\x83\x88\x02\xdb\xb7\x6f\x6f\x7c\xf4\xe8\xd1\xba\x20\xbc\x3f\ \x88\x9d\x17\xd2\x5b\x31\x73\xe6\xcc\xdf\xde\xb9\x73\xa7\x2b\x88\ \x9e\x1c\x63\xd3\x83\xe0\x84\x16\x00\x42\xc4\xf7\x77\xd1\xa2\x4c\ \x33\x02\xcc\x0c\x84\x5b\xb7\x6e\xed\x0b\x8d\xd9\x4f\x38\x8d\x7e\ \x34\xd6\xfc\xf7\x89\x13\x27\x1e\xbc\x17\x00\x7e\x1d\x6d\xc5\x8a\ \x15\x95\xc1\x54\x6d\x30\xd3\x7a\xe6\xcc\x99\xdf\xaf\x59\xb3\xa6\ \x39\x18\x7d\x10\xd2\x68\xba\x70\xe1\x42\xed\xb2\x65\xcb\xd2\xdd\ \xbb\x77\xd3\xd4\xa9\x53\x53\x57\x57\x57\x7a\xfc\xf8\x71\x46\x6c\ \x84\xad\xc4\xbe\xd8\x3e\x12\x0c\xa0\x90\xa8\x9e\x7e\xc4\x0d\x4d\ \x61\x1d\x1c\x28\x66\xc3\xfd\xe5\xcb\x97\xf1\x07\x98\x13\xfb\xbc\ \x0e\xad\xba\x1c\x4e\xf4\x1f\x3d\x3d\x3d\xff\xda\xbf\x7f\xff\x89\ \x98\x33\x38\x62\x00\x76\xec\xd8\xb1\xf4\xe6\xcd\x9b\x5f\xc5\x6d\ \xcb\xe2\xc5\x8b\x6f\xd6\xd6\xd6\xd6\x04\xa1\x8b\x7a\x7b\x7b\x5b\ \xcf\x9f\x3f\xdf\xc8\x26\xa8\x24\x92\x84\x51\x18\xc0\x63\xf3\x8c\ \x6d\xbf\x7a\xf5\xca\xae\x27\x77\x69\xa4\xce\x38\x44\xd2\x99\xcf\ \x18\x4c\x0c\x1b\x0e\x01\x2d\x68\x51\x0b\x78\x3f\x63\xd8\xe7\x90\ \x7a\x8a\xe8\x82\xf9\x00\x3e\x7e\x22\xdb\x3b\xe8\xee\x6c\x6f\x6f\ \xff\x26\xf6\xfd\x32\xe6\xdc\x1e\x12\x80\xdd\xbb\x77\xa3\x8b\xbf\ \x7b\xf8\xf0\xe1\x5f\x8e\x1f\x3f\x3e\x3b\xd4\x88\x97\x0d\x37\x10\ \x08\xe1\x79\x06\x91\x1e\x1b\xdb\xdf\x78\x46\x42\x74\x1b\x6b\xe0\ \xd0\x64\x9e\x3d\x60\x8c\x7b\xae\xf9\x6e\xf3\x3d\xaf\xac\xeb\x95\ \x0e\x00\x79\xe7\x19\x1a\x09\x08\x00\xc5\xfa\x38\x4f\xfc\x48\xe6\ \x67\x42\x1b\xae\x1f\x3d\x7a\xf4\x93\x37\x00\xd8\xb5\x6b\x57\x4d\ \xd8\xd0\xd7\xa1\xaa\xeb\x62\x92\x4c\xb2\x10\x1d\xc6\xd8\x14\xbb\ \x85\x38\x09\x18\x16\x00\x36\x86\x39\x1b\xce\x0b\x2d\x81\x30\xc6\ \xed\x23\x01\x80\x2e\x93\x79\x10\x58\xcb\x88\xe0\xef\x87\x0f\x1f\ \x66\x1f\x98\x56\x08\xdc\xd3\xfb\xc3\x24\xeb\x6f\xdf\xbe\xdd\x5b\ \xf4\x85\x9d\x3b\x77\xb6\x44\x38\xfa\x36\x54\xb9\x96\xd0\x93\x27\ \x02\x64\x91\x18\xe3\x61\xf3\x69\xee\xdc\xb9\x29\x5e\x06\x08\x36\ \x96\x30\x89\xcb\xe6\x00\x60\xe4\xea\x3f\x20\xd6\xe6\xfa\x00\x25\ \x08\x6a\x80\xfb\x39\xce\x9a\x39\x40\x87\xd4\x00\x3b\xcc\xf1\x1e\ \xfe\x06\x8d\x20\x7a\x60\x56\x08\x12\x20\x42\xab\x11\x24\xeb\x17\ \xc3\x17\xfd\x09\x5f\x9d\x01\xb0\x6f\xdf\xbe\xc6\x90\xca\xb5\x28\ \x32\xaa\x64\x3a\xcf\x3c\x49\xca\xca\x95\x2b\x13\xed\xc8\x91\x23\ \x20\x9d\x81\x10\x7e\x00\xe9\xe6\x01\xc8\x88\x8e\x82\x86\x8d\x01\ \x8d\x35\xb2\x4d\x6d\x6a\x14\x8d\xb9\x30\xc7\x1e\xd3\xa7\x4f\xc7\ \x79\xf1\x9b\x1a\x02\xe1\x43\x81\x24\x20\xa5\x20\xc8\x38\xe0\x2b\ \x79\xd6\xc0\x0c\xe8\xd6\x0f\xfc\x86\xe3\xfd\x2a\x9e\xf7\x64\x00\ \xdc\xbb\x77\xef\x3f\x11\x77\xab\x54\x53\x99\xd7\xfe\xc9\xb8\x02\ \x31\x9c\x48\x46\xa4\xf3\x24\x16\xfb\x82\x10\xcd\x23\x22\x00\x8c\ \xf2\x2c\x00\xae\x9b\xad\x41\x13\x00\x12\x20\xd6\x46\xa3\xc8\x01\ \xf2\x4e\x50\xa6\x35\x3d\x9b\x29\x71\xe9\x6f\xac\x8d\x83\xc4\xe1\ \x42\x07\xeb\xd2\xb6\x6e\xdd\x9a\xdd\x9f\x3b\x77\x0e\x67\x4d\xa4\ \x40\x0b\x2b\x02\x88\x4f\x8b\x21\xfd\xda\x50\x8d\x9f\xe6\xbd\xac\ \xc4\xa9\x8a\x84\x29\x50\x43\xa2\x80\x81\x84\x4f\x9e\x3c\xc9\x34\ \xc6\xd9\x54\x00\x40\x18\x86\x95\x8e\x25\xec\x0f\x34\x80\x36\x6f\ \xde\x3c\x9c\x2a\x5a\x04\x31\xec\x07\xb8\x86\x34\x9e\x5d\x03\x1a\ \x74\xb6\xec\x87\x76\x71\xcd\xfb\x09\xe6\xb0\xaf\xeb\x93\x1f\x08\ \x36\x91\x20\xfb\x7d\xce\x9c\x39\x19\x38\x57\xae\x5c\x31\x5a\x4d\ \x2b\xc6\x4b\xad\x11\x8f\x0b\xbc\xa8\x63\x73\x41\x91\x9e\x31\x63\ \x46\xb6\xb0\xa9\xea\xc1\x83\x07\x9d\x87\x8a\xb1\xd1\x1b\x6a\xc9\ \x06\xda\xbf\x44\x0a\xc4\xf2\xe5\xcb\x49\x65\x31\x27\x18\x05\x54\ \xcc\x0a\xa2\x19\xd7\x9e\x95\x24\xb4\x20\x41\x34\x0d\x3a\x98\x03\ \xb3\xa8\x3c\x57\x23\x13\x82\x50\x20\x8c\xab\x45\xf8\x37\xae\xbc\ \x57\xea\x5c\x0b\xc5\xd8\xa0\x10\x8d\x7c\x9b\x8d\xf3\x5e\x7f\x48\ \xc6\x68\x10\xc6\x6f\x3c\x03\x00\x0b\x43\x30\x44\xd2\x35\x0d\x43\ \x9f\xef\x31\x8e\x2f\x21\xa5\x25\x09\x82\x69\xf6\x05\x60\xd6\x40\ \xc3\xb8\xc2\xb4\x0e\xcf\x7d\xd5\x4a\xf6\x31\x17\xc0\xff\xb0\x26\ \x6b\x01\x12\x7b\xd2\xa0\x01\x3e\xbc\xd7\x17\xd9\xf3\x0d\x0d\xe0\ \x65\x88\xd0\x86\xe9\x82\x90\x0f\x7f\x02\x61\x1e\xfe\x86\x5d\x6a\ \x7f\x02\xa0\x59\xd8\xc8\xed\x2f\x5e\xbc\x08\x68\x48\x1d\x89\x03\ \x00\x3e\x08\x69\xb2\x2f\x84\xeb\x00\xe9\x32\x8b\xf4\x55\x5b\xe6\ \x40\x07\x6b\xe0\xf0\x58\x83\x88\xc3\x3c\x0b\x26\x53\xeb\x61\x53\ \xec\xa2\x2a\xf4\xae\x4d\x2f\x9d\x6b\x10\x85\xa4\x4a\xd3\x56\x9c\ \x1c\x0c\x10\x26\x91\x0c\x73\xd0\x06\x00\x83\x01\x1c\x14\x6b\xe1\ \xb1\xd1\x1e\xf3\x07\x01\x61\x5d\x68\x45\x73\xb8\x47\x0b\x99\x03\ \xe3\x80\x00\xf3\xbc\x8b\x43\x25\x04\x1a\xc5\xb8\xda\x87\x01\xa0\ \x4c\x0d\xc2\x60\xc0\x06\x51\x48\x18\x55\x85\x50\x7d\x47\x14\x46\ \x5c\x61\x1c\x8d\xc1\x31\xf2\x1e\x0c\xb3\x06\x0c\x41\x1b\x0c\xd2\ \x01\x4d\xed\x83\x31\xd6\xa5\x94\xc6\x79\x5a\x1a\xb3\x47\x36\x7e\ \xff\xfe\x7d\x9c\xec\xb0\xf5\x05\x3e\x20\x95\xbb\x69\x32\x46\x15\ \x98\x8a\x63\x2b\x33\x31\x4d\x0b\x46\xa8\xe0\x32\x82\x97\x2c\x59\ \x42\xb1\xc4\x19\x5f\x69\x46\x88\xb4\x61\x1e\xa6\x59\x03\x86\x01\ \x8e\xe8\x01\xd3\x5c\x71\xd0\xac\xc9\x95\x75\x19\xc3\x54\x4c\xb3\ \x05\xe2\xfd\x6b\x80\x9b\xda\xb0\x47\xc2\x28\x04\x40\xac\x21\x92\ \x2b\xb6\x8f\x39\x00\x00\xe6\x01\xe1\xe6\x0d\xe6\x21\x26\x2f\xfa\ \x03\x7d\x92\x76\x0e\x38\x80\x82\xc6\xa8\x25\x8c\x13\xfa\x58\x1f\ \xad\x1a\xd6\x07\x94\xb3\x11\x26\x21\x02\x50\xb5\x41\xd4\xbf\x94\ \x79\x54\x17\x82\x91\x26\x7e\x40\x4d\xe4\x1d\x23\x8a\x79\x88\xe9\ \x30\x73\x60\xd4\xb9\xcc\x43\x5b\xe4\x81\x39\x00\x05\x20\x79\xc7\ \x6d\x1b\x15\x0d\x30\x03\x63\x63\x25\x44\x83\x59\x01\x80\x09\xa4\ \x4d\xb9\x8a\xad\x32\x66\x4a\x8c\x64\x35\x15\xcf\x0e\x64\xce\x08\ \x01\xc8\x98\x0b\x8e\xd5\x04\x88\xf7\xd4\x06\x43\x26\x9a\x85\x1f\ \x61\x9d\xd1\xd2\x00\xe3\x36\x1d\x86\x70\x4a\x84\xaf\x7c\xa6\x08\ \xf1\x84\x5d\x3d\x39\x0c\xe8\xd4\xb0\x61\xa3\x00\xa0\x31\x6e\x78\ \x86\x79\xde\xb1\xe0\xa1\x13\x05\x04\x3e\x9f\x00\xc1\xb4\x7b\x51\ \x67\x70\xff\x56\x27\x58\x56\x0d\x90\x51\x9a\xea\x8e\x9a\xe7\x55\ \xd2\x3a\x9d\x28\xc0\xb8\x67\x06\x8c\x31\x17\xa6\xb8\x1a\xfb\xcd\ \xf4\x90\x3c\xcf\xfa\x05\x8b\x1f\x9a\xd9\xa2\x69\x35\x60\xd0\x0c\ \x9b\x68\x1c\xfb\x8e\xaa\x06\x68\xab\x4a\xd1\x31\x98\x70\x1e\xfb\ \x43\x38\x04\xeb\xe1\x71\x60\xf3\x66\x2c\x49\x4d\xd3\x3e\x49\x03\ \x13\x42\xdd\xbb\x6f\xa3\x29\x30\x6c\x8d\x60\xde\x6f\xea\xab\x84\ \x87\xca\x1e\xc9\x31\x00\xd5\x7c\xe2\xfd\xfa\x80\x3c\x21\x82\x9b\ \xaf\xda\x54\x55\x88\xb7\xb4\x05\x00\x41\x50\x0b\xe6\xcf\x5c\x9a\ \xfa\x6b\x1f\xa7\xe6\xa6\x96\x54\xdd\x96\x85\x4c\xed\x1d\x46\x74\ \xb6\xac\xc7\x3b\xae\x6f\x04\x92\x27\xfd\x0a\xa6\x88\x29\x00\x40\ \x59\x35\x60\xd8\x23\x2b\x01\xb0\xa9\x01\xee\x2b\xd1\x8c\xe5\x35\ \xa1\x50\xf7\x32\x2d\x58\xb4\x34\x15\xeb\xfa\x52\xb1\xba\x39\x75\ \x90\x2a\xc7\x3b\x66\x99\x9e\x31\xa2\x19\xac\xaf\x29\x5b\xd0\xe5\ \xa3\x10\xe1\xd0\xcc\xb3\xb4\x55\x94\xd3\x07\xc8\xa8\x04\x20\x95\ \x52\x60\xf2\x67\x0e\xf9\x7b\x9f\x3d\x23\x7c\xde\xdf\x1e\xcc\x3e\ \x4a\xb5\x55\xf5\xa9\x3e\xca\xd8\x89\x75\x93\x53\xfd\xec\xc8\x19\ \x1a\xa6\x38\xcf\xf7\x5c\xc3\xee\xfe\x76\x35\x0d\xb0\xde\x04\xa0\ \xdc\x3e\x20\x4f\x40\xbe\xa2\xf3\xde\x4c\xd0\xef\x7f\x30\xeb\x5c\ \xfb\xf7\x31\xbf\xa7\x37\x75\x84\xea\x77\xb5\xb7\xa5\xee\xb6\xf6\ \xd4\x1b\x6a\x3c\x21\xbe\x9c\x0f\xe6\x34\x8c\xf5\x2c\x99\x05\x54\ \xe9\x6b\x86\x66\x93\xac\x5b\xda\x8a\x12\x53\x6e\x00\x8c\xdd\x3a\ \x2d\x9a\xa1\xd1\x33\x02\x55\x9f\x79\x3a\x35\xed\x1b\x6f\x5e\xc5\ \x07\x8f\xfa\xba\xd4\xf7\xbc\x27\x3d\x8d\x32\xb9\xb3\xa7\x3b\xf5\ \x15\x99\xfb\x7d\xc5\x0a\x00\xbc\x83\xa7\x57\xd2\xa5\x25\x38\x7b\ \x50\x83\x70\x1d\x1d\x00\x24\x40\x00\x2c\xb9\x75\x4a\x82\xc2\xbd\ \x85\x92\xcc\x6b\xe3\xcc\xc9\xca\xe3\xca\x42\x7a\x45\x32\x55\x5d\ \x91\xba\xba\x3b\x23\xb7\x4e\xa9\xab\xb3\xcb\x13\x6b\x22\x06\x60\ \x19\xf7\x65\xdc\xc6\x98\xc5\xd2\x90\xad\xa8\x57\x2e\x57\xf3\x24\ \x57\x42\xcc\xe3\x21\x42\x7f\x03\xb1\x66\x7e\x48\x0e\xdb\xa4\x9b\ \xfe\xe6\x6d\x96\x10\x56\x37\xb3\x21\x4d\xa8\x9c\x98\xba\x7a\xbb\ \xd2\xa3\x2b\x0f\x01\x0c\x2d\x61\x4d\xee\xcd\x1a\x3d\x87\x54\xab\ \xbc\x1f\xdd\x54\x18\x06\xf2\x84\xc0\x84\xa0\xd0\x4c\x7a\x90\x9a\ \x80\x51\x10\x91\x12\x23\xfd\x7c\xf1\x83\x60\x3c\x95\xce\x67\x82\ \xda\x33\x8c\x73\x82\xb4\x60\xc1\x02\xcf\x27\x05\xd8\xc4\x89\x44\ \x69\x74\x8b\x21\x9d\x9a\xcd\xb3\x3a\x80\x80\x60\x6d\x14\xd5\x67\ \x0c\x66\x01\x8a\xda\x3d\x3e\x5b\x65\xc0\x18\xeb\xad\x05\xb4\x65\ \x41\xf0\x9c\x32\x3e\xdb\x71\x40\x2b\xd0\xcc\xc9\x3b\x42\xb5\x84\ \x3d\x47\x4f\x03\x4c\x47\x05\x82\x67\x08\xf1\x68\x8b\x31\x99\xf6\ \xd0\xd3\x12\x1a\x10\x50\x79\x6b\x04\xab\x41\xdf\xf1\xec\x12\x9a\ \xa9\x20\x39\x12\xf3\x5c\xd0\x33\x4a\x80\xf5\xd3\x1d\xe6\x05\xf3\ \xa3\x75\x20\x62\xfd\xaf\xf3\xd3\x0c\x60\xca\x6a\x4d\x02\x21\x1a\ \x40\xf2\x1f\x47\x19\x83\x21\x8b\x17\xa4\xed\x3c\xc3\x27\x5f\x77\ \x00\x94\x4a\x12\x06\xd9\x03\xe6\x35\x09\xfd\x0f\x42\xe0\x58\x8c\ \xdf\x46\xd7\x07\x58\xcf\xeb\x84\x54\x77\x2b\x40\x98\x32\x13\xb4\ \x74\x36\x1c\xf2\x9b\x45\x8b\x15\x9d\x1f\x52\x61\x44\x8f\x1e\x5f\ \xaa\xd1\x0e\x4f\x95\x00\x8f\xf7\x33\xa0\x3c\x29\x6a\x6e\x6e\x36\ \xed\x1d\x55\x1f\x20\xc3\x1e\x45\xeb\x18\x01\x85\x7c\xdc\x83\x4e\ \xf3\x7a\x01\x31\xf4\xe1\x20\x61\x54\xd3\x00\x00\xde\xa1\xf6\x67\ \x1d\xd7\xd4\x21\x5a\x4c\xb1\x27\x63\x74\xd6\xc0\xf9\x01\xfa\x88\ \x00\xe0\x0b\x71\xb9\x01\xc0\xa1\x69\xbf\x66\x6c\x48\x0b\xf5\xd5\ \x57\xc0\xb8\xde\xde\x52\xd7\x44\x4a\xa6\x4a\x73\x0b\x55\xde\x22\ \x27\x9f\x0c\x79\x62\x84\xf4\x31\xbb\x11\x29\x6c\x31\x50\xae\x61\ \xd1\x72\x54\x7f\x36\x88\xb3\x04\x2e\x05\x06\x10\x20\x54\xe7\x05\ \x13\xac\x81\xdd\x23\x71\xa5\x6a\x6d\x60\x46\x49\xb7\xb6\x27\xf9\ \xf1\x54\x29\xff\x75\x8a\x77\xf9\xd6\xc0\xbc\xb5\x6b\xd7\x72\xec\ \xa6\x06\xe9\x24\xf9\x2e\x21\xdd\x00\xde\x87\x06\x34\xf0\xf0\x0e\ \xcd\x8c\xee\x6d\x5a\x80\x2d\x2a\x39\xbb\xc7\xde\x10\xe7\x87\x0d\ \x08\xf1\x4b\x8e\xa7\xba\x1e\x8c\x70\xc6\x0f\x53\x00\xc5\xf1\x39\ \x6b\xc8\x98\xef\x20\x6d\x00\x63\x3d\x2b\x4e\x2a\x40\xd6\xf6\x3d\ \x40\xf5\xbc\x01\xba\xa0\x01\x20\x6f\x15\xf9\xdb\x5b\xff\x14\xed\ \xc7\xb6\x7c\xf5\xa5\xbd\xea\xfd\xd9\xc0\xdf\x4a\x9b\x4e\x12\x8f\ \x0e\x51\x48\x15\xa2\xf3\x69\x33\x34\xd1\x79\x9f\x64\xc7\x46\xe6\ \x67\x68\x33\x29\xe2\x7d\x4b\x5d\x01\xf8\xee\xbb\xef\x86\x22\x59\ \x00\xd1\xd0\xb3\x11\x49\xfe\x5b\x8c\x81\x9b\x64\x5a\x6c\xca\x22\ \xf9\xd8\x9b\xaf\xeb\xed\x2c\x6e\x4d\x0f\x61\x7e\xa8\x90\x28\x8f\ \xb8\xec\x6e\xea\xb5\xa4\x79\x86\xef\x91\xd8\x70\x69\xb9\x66\x82\ \xcf\xf0\x0b\xb6\xe7\x83\x23\x31\x57\xfd\xc7\x85\xf8\xfb\x86\x2f\ \x63\xa8\xad\x18\x52\xea\x08\x6f\x79\x28\x08\x5f\xef\x5f\x58\x04\ \x83\x32\xe2\x55\xe2\x65\x12\x2f\x3f\x10\x44\x7c\x1b\x8f\xcf\xf2\ \x69\xae\xcd\xf8\x3e\x82\x26\x38\x95\x01\xe8\xd4\x58\x63\x7a\xd0\ \x50\x13\x9d\xbf\x57\x80\x3e\xf6\x1b\x88\xf1\xbe\xb8\xbc\x88\xa9\ \x8f\xc3\x41\x3e\x09\xa0\x7e\x6c\x02\x83\xd0\x3a\xc2\x9c\x2e\x45\ \x38\xfe\x3a\xd6\xbb\xc0\x29\x7e\x21\xfe\xf6\x7e\x52\x2c\xbc\x3a\ \x54\xf6\xf3\x40\x77\x59\xfc\xf0\x13\xfe\xcc\x8d\xf9\x79\xc9\x4b\ \x67\x34\xa0\xbe\x1d\xb6\x74\x24\x88\xf8\x5f\xbc\xdb\x99\xde\x4f\ \x73\xc3\x42\xb4\xd7\x65\xc8\x4f\x90\x0e\xb4\x12\x1b\xef\x45\x7f\ \x12\x7f\x71\xfa\x3a\x0b\x81\xf1\xf7\x7d\xd3\x02\xed\x96\x60\x66\ \x6e\x3c\x83\x7e\x7d\x00\x41\xfd\xca\xef\x48\xb2\x10\x9d\x7b\xfa\ \x60\xdc\xb3\x50\x7b\xcc\xb9\x16\xd7\xa7\x69\x6c\x34\x40\xec\x23\ \x68\x04\xe3\x7d\x0e\x9a\x03\x00\x42\x15\x99\x6c\xf4\x9a\xe8\x18\ \xa2\xfa\xeb\xb5\x40\x67\x21\x54\x07\x7f\x44\x07\xc5\x34\x86\xdb\ \xf8\xbf\xce\xa6\x34\xfe\x5f\x63\xe3\x00\x8c\x03\xf0\x11\xb7\xff\ \x03\x7f\x19\x0a\xe4\xd7\x62\x63\xda\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x15\x14\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x14\x91\x49\x44\ \x41\x54\x78\xda\xe5\x5b\x79\x8c\x64\xc5\x7d\xfe\xbd\xa3\x8f\xe9\ \xee\x39\x76\xa6\x97\xdd\xb9\x96\x3d\x66\x61\xef\x05\x61\x6c\xae\ \xa0\x38\xb6\x20\x4e\x2c\x22\x27\x32\x09\x92\x0f\x14\x20\xc6\x81\ \x18\x84\x92\x08\x59\x8a\x30\x7f\x18\x04\x09\xe0\xf8\x08\x47\x24\ \xa2\x24\x76\x14\x9b\x80\xf3\x4f\x0e\x27\x86\x80\xc3\x61\x60\x31\ \xe6\xb0\x21\xbb\xec\xb2\xf7\xce\xf4\x4c\xcf\xf4\xdd\xfd\xae\xaa\ \x7c\xbf\x7a\x5d\xf3\xfa\x98\x49\xef\xb4\x90\x65\x29\x65\x7d\x54\ \xbd\x7a\x47\xd7\xf7\xbb\xab\x66\x6d\x48\x29\xe9\xff\x73\xb3\xe9\ \x97\xb8\xbd\x74\xed\xb5\x03\x9e\xeb\x66\x09\xf0\x84\x18\x23\xe9\ \x67\xa5\x2f\xb3\x42\x88\xac\x14\x18\x63\x4e\x04\x22\x2d\xfd\xe0\ \xdf\x7f\xf3\x95\x57\xfe\x8a\xfa\x68\xbf\x30\x0b\x78\xef\x4b\x5f\ \x4a\x54\x3d\x2f\xeb\x48\x37\x6b\xf8\x41\x96\x04\x88\x04\x04\x02\ \x41\x56\x92\xc8\x52\x20\x43\x52\x52\x8c\xc9\x40\xe0\x9e\x60\x82\ \x29\x89\x87\x70\x4d\x18\x87\x08\x02\x12\xd1\xb8\xd9\x8b\xc6\x46\ \x21\x86\x2e\x3a\x70\xc0\xfb\x85\x58\xc0\xcf\xef\xbe\x3b\x6e\xd5\ \x6a\x59\xd7\xf3\xc6\x4c\xc3\xc8\x0a\x62\x12\x06\x2f\x18\x3d\x8d\ \x19\x22\xc8\x0a\x49\x59\x92\x4c\x42\x86\x7d\x20\xd3\x20\x47\x06\ \x6e\xa0\x03\xd0\xf3\x80\x00\x26\x21\x19\x12\x64\x00\xdc\x23\xd9\ \x84\x7a\xae\x1d\xb4\x0c\xd2\x73\xc9\x63\x52\xee\xbc\x88\xe8\xcd\ \x0f\x44\x00\xef\xdc\x79\xe7\xed\xe5\xb8\xbd\x29\x79\xe2\xe4\x88\ \xb1\x6e\x24\x26\x0d\xca\x1a\x64\x8c\x11\x48\x12\x49\x80\x06\x7d\ \xe2\x26\xa1\x38\xee\x42\x32\x7a\x61\x22\xec\x43\xed\xf0\x98\xfb\ \xe6\x75\x04\xb9\x32\xa4\x86\x88\xde\xd7\x08\xaf\x43\x88\xf6\xdf\ \x34\xa4\x7f\x01\x7d\x10\x02\x78\xec\xc2\x0b\xbf\x72\xc5\x95\x97\ \xdf\xe5\x98\x43\x94\x1a\x18\xa0\x40\x88\x90\xaa\xc1\xff\x55\xff\ \xa1\x50\xf4\x7a\x28\xc3\x61\xa4\x9d\x88\x74\x34\x56\xef\x5a\xa9\ \x34\x05\x8d\x3a\x5c\x99\xcd\xda\x65\x33\x50\x30\x63\x36\xe6\x1b\ \xe1\xb5\xd0\xc4\xf1\x46\x32\x41\xa4\x85\x55\xa9\xb4\x0b\xa3\xc3\ \x2a\x84\x30\x2e\x30\x0c\xe3\xef\x25\x5a\x5f\x02\x30\xd0\xee\x98\ \x9e\x4e\xce\x0c\x0f\xdf\x5e\x2f\x95\xa9\x54\x2c\x53\x76\x7c\x9c\ \xfc\x72\x89\xc8\x34\x69\xb5\x66\x26\x12\x24\xea\xf5\x48\x10\xe1\ \xe2\x99\x8c\xd6\x54\x48\xcc\x60\x01\x0c\xa0\xc7\x3b\x98\x0b\x6a\ \xfc\xb2\xa5\xe6\xfc\x5a\x83\xac\xc1\x21\xf4\x35\xb2\x86\x06\xc9\ \xcd\xcd\x13\xa5\x53\xca\xf7\x85\x03\xc1\x60\x5e\x13\xee\xd6\xbe\ \xb6\x00\xb1\xbf\xa9\xa1\xb5\x0b\x80\xc9\xf3\x72\x3c\xa2\x6d\x41\ \x10\x0c\xd7\xf0\x83\x85\xa5\x22\xc5\x76\xee\xa4\x5a\x6e\x8e\xcc\ \x64\x52\x4b\x49\x6b\x5d\x75\xf1\x6c\x96\xbc\x42\x81\x12\x1b\x36\ \x52\x50\xad\x84\x6b\xf1\x3d\x32\x62\x31\xe2\x4f\x06\x9e\x47\xd6\ \x40\x4a\x09\xa8\x31\x3f\xaf\x34\xeb\xd7\x41\x36\x99\xc4\x3b\x1b\ \xc8\xc9\xe5\x48\xb2\x65\xc0\xd2\xbc\x7a\x95\xc8\x32\xc9\xaf\xd6\ \xc8\x84\x50\x02\xd7\xa3\x00\xe4\xf9\x5d\xe9\xba\x91\xf6\x05\xf7\ \x1d\xae\x80\x1e\x2a\xda\xcb\x2b\xec\xd7\x05\x0c\x20\x31\x57\xaf\ \xaf\x9f\x49\xa5\xa8\x86\x1f\x75\xaa\x55\xb2\x86\x47\x28\x60\xe9\ \xc7\xe2\x78\xa2\xfd\xeb\x12\x30\x2c\x1b\x8b\x74\x48\xb8\x0e\x34\ \x08\xcd\x2d\x2c\x28\x72\x36\xb4\xe9\x2c\x2e\xc2\xb4\xe3\xea\x9e\ \xa4\xd0\xff\xb5\x00\xdd\xa5\x25\x08\x6e\x89\x04\x5c\x21\x58\x2a\ \x34\x4d\xbe\x33\x3e\x04\xaa\x27\xdb\xc2\x37\xbc\xe8\x9e\xd4\x71\ \xa5\x45\x18\x00\xfe\xb3\xfe\x9b\xdb\xb7\x8f\x43\xf0\xa7\xd6\xe2\ \x06\x76\x53\xfb\x16\x90\x2e\x04\xc1\x04\x07\xb0\x06\xfc\x31\x33\ \x98\x21\x7b\xdd\x08\x49\x98\xa7\x1c\x0c\x34\xe9\xb6\xe6\x2c\xcc\ \x2b\xc2\x0d\x68\xd2\x4a\x24\x95\x86\xdc\x52\x99\x4d\x5b\x49\xab\ \x7e\xfa\x54\x4b\x1c\x90\x54\x3b\x71\x42\xbb\x84\x26\xda\x41\x5e\ \x32\xda\xef\x35\x7c\xfd\x8d\x2e\x17\x00\xda\x2c\x63\x90\x88\x03\ \xe1\xa9\x7e\x2c\xc0\x04\x52\xae\x54\x45\x06\x39\x8e\x4b\xe7\x6c\ \x9f\x21\xd7\x07\x71\x19\xe6\xdb\x95\x4c\xc0\x87\x95\xe8\x00\x28\ \x3c\x8f\x47\xa1\x99\x57\xca\xad\x01\x31\x22\x2d\x23\x82\x3a\x4b\ \x44\x02\x88\xae\x89\xc1\xf9\xde\xf7\x29\xf0\xb9\xf7\xd4\xd8\xc7\ \x98\x94\xba\x2c\x32\x01\xb8\x5a\x28\x6c\xdc\x93\x58\x0b\xc8\xec\ \xc3\xdd\x7f\xe9\x57\x00\x31\x43\xca\x14\x2f\xd2\x81\xcf\x4d\xcf\ \x6c\xa3\xea\x7c\x8e\xcc\x78\x3c\x5c\x54\x77\xd3\xe4\xa3\x6c\xa0\ \x53\x22\xe9\x34\x18\x09\x81\x05\x20\x02\xc1\x71\x21\x04\x2f\x1a\ \x40\xaf\x82\xac\x61\x59\x80\x0d\x60\x8c\xdf\x34\x6c\x9b\x6c\xcc\ \xc7\x00\xa4\x60\xf0\xe4\x9e\xf8\x79\x95\x31\x82\x3a\xe0\x38\xe1\ \x98\xdd\x8c\xb3\x89\x94\xfb\x74\x20\xec\x27\x0d\x9a\xf0\xd1\x18\ \x2f\xd6\xf3\x7c\x15\x7c\x2a\xe5\x1a\x0d\x20\x1a\x3b\xda\x02\xba\ \x9a\x04\x09\x90\x0a\x3c\x28\xc1\x67\x2b\x08\xb5\x16\x04\x4c\x46\ \x91\xb0\x00\xee\xc9\x8e\x21\x63\x58\xb8\xb6\xe0\xd6\x36\x00\xc2\ \x26\x60\x19\xca\xc7\x03\xfc\x9e\xd0\x84\x18\xd0\xa8\xaf\x2d\xa4\ \x37\x94\x0b\x58\x3a\x10\xf6\x15\x04\x81\x79\xdf\x2f\xa2\x57\x64\ \x3c\x04\xb1\x52\xb5\x4e\x83\x08\x84\x8d\xc5\x3c\xd5\x0a\x45\x12\ \x2c\xa5\x78\x8c\x4d\x4f\x59\x86\x65\xa1\xcf\xc4\xc8\x42\xb0\x8b\ \xc7\x98\x5c\x1c\x81\x2f\xd4\xa2\x6c\x92\x11\x8a\x90\x43\x3e\x7a\ \x59\x87\x90\x9a\xe6\xee\xb7\xb9\x40\x38\xa6\x68\xdc\x01\xd9\x1b\ \x52\x32\x89\xed\x9f\xdb\xb0\x21\x89\xb0\x56\x93\x68\x6b\x2e\x84\ \xde\xaf\xd7\x17\xf1\x96\xd2\x60\xad\x5c\xa6\x42\x2e\x4f\xe7\x5e\ \x3c\x4d\xf2\xd4\x29\x1a\xdb\xb5\x8b\xcd\x34\x24\xa5\xc9\xb9\x0e\ \x08\x42\x73\x24\x55\x40\xf6\xa8\xc5\x0d\x80\xee\x9e\xc9\x74\x8e\ \x55\xdf\x4d\x3e\x22\x06\x88\xff\x1b\x62\x19\xb1\xcb\xe2\xf1\xdd\ \x7f\x47\xf4\x6a\x3f\x2e\x20\xab\x41\xe0\xba\x42\xa0\x0b\xd2\xb5\ \x5a\x9d\x4a\x88\xee\xf6\xc8\x88\xd2\x62\xf5\xd8\x51\x8a\x9a\xe2\ \xd4\x51\x15\x46\xe4\x69\x45\x41\x88\x96\xba\xbe\x83\xb0\x5c\x51\ \x00\x6d\xe4\x68\x19\xb2\x1b\x32\x42\xd2\x90\xfb\xa9\x0f\x01\x48\ \x40\x00\x7e\x2d\x08\x0a\x83\x42\xa4\x51\x0b\xf0\x02\xb8\x16\x50\ \x5a\x36\x06\x92\xd4\x91\x06\xda\x3b\x29\xb5\x30\x34\xe9\xae\x80\ \xa8\x02\x2c\x4a\xda\x0a\xfc\x7b\xdd\xd8\xd8\xea\xfb\x85\x8e\x31\ \x45\xa6\xde\x91\x39\xba\x61\x0a\xc4\x81\x35\x34\xb3\x85\x8d\x0f\ \x78\x2c\x00\x5d\x0b\xf0\x22\x25\x07\x31\x21\x9b\x5b\xd2\x20\x44\ \xc0\x10\xcb\x73\x22\xda\x96\x02\x3c\x0e\xaf\x45\x73\x4e\x00\x7c\ \x5d\x02\xf9\xe9\xcf\x5f\x4f\x57\x3d\xf1\x4f\x3d\x82\x5a\x07\xf9\ \x88\xb4\x86\x16\x52\x17\x8c\x30\x15\x9a\x6b\xb2\x00\xad\x7d\xc0\ \xad\x0a\xb1\x14\xd6\x02\x1e\x4d\xef\xdd\x4d\xd5\x85\x79\x15\xf0\ \x7c\xd1\x91\x09\xb4\xb6\xa3\xb1\x4a\x51\x25\x54\x83\x23\xe7\x9c\ \xb3\xe2\x26\xe9\x43\xbf\xf3\xdb\x34\x75\xc3\x0d\x61\x4e\xe7\x32\ \xd9\x30\x75\x31\x13\x91\x6d\x89\x0d\xb4\x7a\xb1\xc4\x58\xd9\x02\ \xa4\x54\x99\xa0\x1f\x0b\xf0\x00\xa7\xe4\xfb\x0b\x4a\x00\xae\x4b\ \xe3\x5b\x36\x43\x00\x79\xb2\x32\x19\x12\x5a\xbb\x80\x50\x50\x1a\ \x6e\x5a\x44\xd8\xdb\xdb\x66\xe8\x23\x7f\xf9\x75\xf2\x38\x40\x0a\ \xfd\x7c\x84\xc3\xdf\xfd\x2e\xcd\x7e\xff\x29\x32\x6d\x9b\x2b\x47\ \x6d\x29\xcd\xf7\x57\x44\x37\xf9\xd5\xef\xeb\xc0\x34\x7a\xcf\xc6\ \x8d\x53\x06\xda\x59\x09\x40\xa2\xb5\xb8\x80\x5b\xf4\xfd\xbc\x4e\ \x85\x41\xb1\x48\x65\x04\xc2\xf8\xc8\x3a\x6d\xd2\x0a\x32\x22\x17\ \xb9\x01\xfa\x0b\xef\xb8\x83\x26\x2e\xbb\x8c\xec\x89\xc9\xe5\xc5\ \x89\x96\xde\x01\xe9\xd2\x1b\x3f\x25\x6e\x89\xb1\x51\x7d\xef\x2c\ \xd1\xed\x0a\xd1\x39\x41\xd8\x8b\x26\x91\x75\xa6\xb9\xbf\x1f\x0b\ \x08\x00\x37\x1f\x04\xf3\x4d\x01\xe0\x22\x4f\xc5\x33\x67\x38\x13\ \x70\x5e\x6f\xd7\xa8\x5e\x8c\xb6\x06\x3c\x9f\xc0\x73\xdc\xce\xbf\ \xe9\x26\x65\x05\xd1\xf3\x91\x96\x1b\xc7\x4f\x10\xb7\xf4\x94\x12\ \x92\x16\x60\x6f\xd2\x00\xbb\x4d\x19\xbb\x4f\x07\x75\x48\xd5\x0f\ \xa8\x5c\xa9\x44\xf7\x23\x22\xaa\x24\xee\x27\x0b\x28\x01\x9c\x74\ \xdd\x39\x2d\x80\x4a\xa5\x4a\x65\x6c\x63\xed\x4b\x2f\x21\x62\x01\ \x74\x58\x95\x6c\x19\xc7\xb0\x71\x5a\x78\xe6\x69\x4a\xc2\x5d\x26\ \x7f\xfd\x13\xf4\xf3\x8d\xe3\x24\x72\xf8\x54\x47\x3d\x50\x9f\x3b\ \x43\xdc\x52\x9b\x36\x93\xfc\xef\xe7\x95\xf6\x3c\xc7\x51\xd6\x60\ \x59\x5c\x8c\x1a\x51\x0c\x68\xf1\x7f\xc7\xb2\x69\xc7\xcd\x37\xd3\ \xf8\xee\xdd\x94\x9a\x9c\xa0\x81\x2d\x5b\xa8\x84\xcd\xd5\x0f\xaf\ \xba\x5a\x0b\x40\x5b\x00\x7f\xe3\xac\x4b\x62\xb3\x23\x0d\x7a\x67\ \x1c\x27\x1f\x80\x3f\x2f\x88\x53\x61\x65\x69\x29\xac\x05\x5c\x57\ \xbb\xc0\x8a\xae\x30\xb8\x65\x2b\x15\x5f\x7f\x8d\xe6\xfe\xfa\x51\ \xe2\xb6\xeb\xd6\x5b\x61\x05\x4e\x97\x1b\x94\x17\xf2\xaa\x64\x4e\ \xcf\xcc\x50\x15\x5b\xe1\x7a\x22\x41\x9b\x10\x18\x67\xf0\xfc\xd8\ \x27\x7e\x83\x8a\xd5\x2a\x07\xd3\xb6\xb8\x20\xd6\x8d\xd2\xd5\x88\ \x1f\x23\xcf\xfd\x90\xde\xfd\xcc\x75\xf4\xda\xaf\x5e\x49\x87\x2e\ \xff\x08\xd1\xf3\xcf\x61\xc5\x1e\x2f\x3e\x82\x61\xe8\xb3\x01\x73\ \x0d\x2e\xd0\x96\x09\x9c\x1a\x4a\x62\x5e\x6c\xbd\x56\x23\x1b\x87\ \x15\x46\x12\xd0\x64\x3b\xd1\x9c\x1f\xde\xbb\x8f\x6a\xef\x1d\xa6\ \x93\x67\xe6\x68\xe1\x3f\x7e\x40\x93\x57\x5e\x49\xf1\xe9\xe9\x76\ \x17\x00\x1c\x69\x50\xf9\xf0\x61\x9a\xfa\xd8\xc7\xe8\x92\xfb\xef\ \xa7\x5f\xf9\xbd\x6b\x69\x6b\xad\x44\x5b\xb7\x6f\xa3\x2b\xee\xbd\ \x97\x7e\xf7\xc0\x6b\x14\xdb\xb6\x4d\x93\x57\xc2\xf8\xe8\xe3\x8f\ \x53\xe1\x1f\xbe\x4d\x07\x7e\xf2\x16\xe5\x92\x69\xca\x25\x52\xf4\ \xe6\xdc\x22\x3d\xff\xe5\x3f\xa3\xa0\x9d\xbc\xb6\x80\x99\xcf\x8c\ \x8e\xa6\x0c\xb4\xb5\x08\x40\x67\x02\xb7\x2e\x44\x41\xb0\xbf\xc2\ \x34\x37\x4c\x4f\x51\x0d\xfb\x02\x2b\x91\xe8\xf6\x51\xf6\xfd\xe6\ \x31\xf5\xe8\x85\x17\xaa\x78\x11\x90\x41\x73\x8f\x3e\x4c\xdc\xf6\ \xdc\x76\x1b\x9b\x77\x18\x24\x01\xd9\x44\xf5\xd0\x41\xb2\x90\x5a\ \xe7\x1f\xf9\x16\x1d\x78\xe4\x51\x7a\xfe\xdb\xff\x48\xaf\xdc\x74\ \x23\x9d\xbe\xe5\x0b\x14\x1f\x1a\xa2\xab\xbf\xf3\x1d\x92\xc3\xc3\ \xea\xd9\x91\x7d\xfb\x68\xdd\x79\xe7\xd1\xd1\xe7\x7e\x44\x42\xca\ \x36\x9f\xaf\x5a\xf6\x32\x79\x11\x92\xd7\xb0\xf6\x0d\x0c\xec\x5e\ \xab\x05\xc8\x65\x0b\x08\x82\x25\xa1\xb6\xc5\xa8\x05\x76\x9c\x4f\ \x75\x6c\x86\xec\x74\xba\x4d\xf3\x82\xa1\x83\x97\x65\x71\x90\xc4\ \xf3\xbe\x9a\x3b\xf2\xde\xfb\x94\x7b\xee\x39\x9a\xb8\xe2\x0a\x4a\ \x6c\xdd\xd6\x6e\xce\x40\xfd\xbd\xf7\x88\x5b\x11\xd6\xe0\x41\x60\ \x30\x78\x2a\x26\x53\xf4\xda\x7f\x3e\x43\xb3\x4f\x7c\x8f\xe2\x38\ \x5d\xda\x7c\xcd\x35\xea\xd9\xb1\xcd\xe7\xaa\xa5\x35\x82\xa0\x8d\ \xbc\x86\xe8\x20\xaf\x91\x20\xda\xdf\x8f\x0b\x78\x80\x53\x0e\x82\ \xbc\x3e\x18\xd9\x30\x31\x8e\x54\x38\x4f\x71\xf8\xa1\xce\xfd\xdc\ \xcb\x65\x04\x34\xb4\x79\x33\x39\x88\xfa\xd6\xf9\xe7\xd3\xf0\x47\ \x7f\x8d\x36\x7f\xf1\x8b\x94\xda\xba\x95\xb8\xed\xbd\xfd\x76\x58\ \x41\xa3\xcd\x0d\xea\xcd\x7d\x45\x72\x6a\xaa\xad\x62\x74\x0d\x93\ \x72\x4f\x3e\x41\x68\xec\x42\x6a\xce\x32\x0d\x15\x40\xd3\xbb\xf7\ \xa8\x5e\x10\xb5\x41\x76\x93\x57\x73\xb1\x30\x13\x9c\x9d\x0b\xb4\ \xd6\x02\x5a\x00\xcb\xa9\x90\xb7\xc5\x73\x73\x64\x8f\x8e\xf2\x81\ \xa7\x2e\x75\x23\x60\x91\x23\xf0\xff\x31\x04\xb5\x8b\x2f\xb9\x98\ \x76\x0a\x97\xb2\x2f\x3c\x4b\xf9\x9b\x7f\x9f\x4a\xaf\x1d\xa0\x89\ \xcb\x2f\xa7\xd4\x8e\x9d\xad\x6e\x00\x01\x1c\x0b\x53\x21\x22\x79\ \xe7\x5f\x7e\x4e\x1f\x3c\x48\xaa\x35\x35\x5e\x7b\xe9\x45\x95\x48\ \x66\xbe\xf0\x07\xe4\x0a\xd1\x45\x94\xd7\x68\x66\x32\x5d\x71\x80\ \x4c\x53\x95\xc4\xfd\xb8\x80\xbb\x84\x5a\xa0\x55\x00\x95\x85\x05\ \x95\x09\x60\xe3\x6a\xb1\x11\x42\x52\x59\x14\x3f\x07\xaf\xff\x2c\ \xfd\xf8\xe1\x47\xe8\x85\x1f\x3c\x4d\xaf\xbc\xf5\x0e\xfd\xf4\x64\ \x8e\x4e\xdf\x77\x2f\x71\xdb\x87\x02\x89\x33\x82\x7e\xaf\x78\xf2\ \x64\x28\x80\x6d\x33\x1d\x55\x20\x22\xc8\xba\x31\xe2\xe6\xe7\xe6\ \xd4\xdc\xc9\xa3\x27\xa8\xf8\xc2\xf3\xb4\xfe\x82\x0b\xe8\xa2\xfb\ \xef\x23\xc7\xe0\xc0\xef\xa9\x2d\x7b\x1d\x19\x63\xe6\xfa\xeb\xe9\ \xdc\x5d\x3b\xda\xc8\x03\x4c\x6c\x37\x77\x06\xda\x5a\x04\x10\x00\ \xde\xac\xeb\xe6\x42\x25\x04\x61\x2d\x80\x54\x68\x8d\x0c\xf3\x2f\ \x33\xe1\x08\xbc\x78\x32\x68\x74\xcf\x1e\x3a\x8e\xe8\xef\xe1\x73\ \xa2\xa5\x34\x3e\xfc\xd6\xdb\x54\x7c\xf5\x15\x1a\xbf\xf4\x52\x1a\ \xdc\xb7\x77\xb9\xe0\xa9\x14\x4a\xe4\xe0\x9b\x53\x57\x5d\x15\x1e\ \x8c\xa8\x6f\x85\xef\xc5\xd9\xd2\x30\x97\xff\xdb\xbf\x51\xbd\x87\ \xf5\x1f\xbe\xe5\x66\x72\x20\xb4\xed\x9f\xfe\x34\x7d\xea\xc7\x2f\ \xd1\x87\x1e\xf8\x73\xda\xf5\xa7\x7f\x42\xd7\x3c\xfb\x5f\x34\x99\ \x1d\xa1\xf7\x5f\x7e\xb5\xcb\x15\x70\x3d\x72\xe7\xfa\xf5\x9b\xd6\ \x6a\x01\x02\xf0\x8e\x3b\xce\xac\x3e\x18\xe1\x5a\xa0\xc6\x47\xe4\ \x99\x41\xf6\x95\x76\x0b\x10\xf0\xff\x6d\x5b\xa9\x7c\xe8\x10\x79\ \xbe\xaf\x49\x2c\x9b\xb5\x83\xcf\xcf\x7e\xf3\xeb\xc4\xed\xc3\x5f\ \xbd\x87\x5c\x37\x14\xa0\x4f\x52\xbd\x93\x04\xd9\xf1\x4f\x7e\x92\ \xaa\xa5\x32\x79\xae\x4b\x55\xa4\xdd\xf3\x6e\xb9\x85\x16\x1e\x7b\ \x98\x0e\xbe\xfe\xc6\x32\x99\x83\x85\x0a\xfd\xec\xea\x8f\x53\xe9\ \xbe\xaf\x92\x3c\x7e\x8c\xa6\xf6\xef\xa7\x2d\xd3\x93\xe4\xdf\x73\ \x37\xbd\xf9\xb5\xaf\x93\x6f\x9a\x7a\xf1\x6d\x41\x71\x5d\x22\xb1\ \x6f\xad\x7f\x1a\x93\xcd\x2d\x71\xd5\x05\xe2\x52\xa6\x6b\x58\x54\ \x06\x0b\x75\x0a\x4b\x2a\x15\x7a\x22\x68\x2b\x03\xc7\x90\xfe\xaa\ \x47\xdf\x57\xd6\x80\xd6\x7e\x26\x80\xf6\xb3\x67\x7f\x44\xd3\x48\ \x8f\x9c\xca\xf6\xdd\x75\x17\xbd\xf9\x8d\x6f\x90\x84\x4b\x79\x20\ \x22\x2f\xba\x88\xae\x7c\xe8\x21\xda\x7b\xe3\x8d\x94\x3b\x70\x80\ \x86\x51\xe1\x89\x27\xbf\x47\x2f\x3e\xf1\x14\xb9\x76\xac\xad\xbc\ \x3d\x58\xf7\xe8\xc8\x63\x8f\xd3\xc8\xb7\x1e\x26\x5b\x08\x95\x02\ \x17\xe3\x49\x68\xda\xea\x8a\x0b\x7a\x6c\x87\x99\xe0\x9f\x01\xd9\ \x4b\x00\xdd\xc5\x10\x6a\x81\xb4\x10\x69\xce\x04\x93\xe7\x9f\x87\ \x5a\x60\x89\x62\x48\x4f\x75\xc4\x04\xdd\x1a\x8d\x3a\x4d\x5e\xf3\ \x5b\x34\xff\xfa\xeb\x54\xc4\xbe\x61\xa8\xb9\x17\x90\xa1\x10\x54\ \xae\xbf\xf0\xa1\xaf\x91\x09\xed\x96\x9f\x7d\x86\x26\x93\x71\xca\ \xde\x74\x03\xfd\xcf\x93\x4f\x51\xee\xa1\x07\xe8\xc4\x1f\xfd\x21\ \x65\xb0\x75\x8e\x65\xd2\xe4\x97\x2b\xf4\xf6\x99\x59\xca\xc7\x07\ \xc8\x67\xf2\x11\x21\x2d\x04\x95\x25\xe6\x70\xbf\x93\x28\xb0\xe2\ \x1c\x59\x96\xca\x04\x6b\xb6\x80\xa6\x00\xb8\x16\x98\xe4\x6d\xf1\ \xae\x5d\x3b\x69\xfe\xf8\x49\x8a\x83\xa0\xc0\xde\x80\xdb\x10\x0a\ \x94\x4b\x60\xae\xe9\xc1\x0c\xc5\x21\xa0\x8f\x3f\xf8\x00\xbd\xfc\ \x95\xbb\x49\xb6\x1e\x93\xc3\x75\xe6\x6f\xbd\x99\x8e\xc1\x35\x1a\ \x56\x4c\x11\xf0\x0d\x43\xf5\xa7\xf8\xbe\x95\x20\xca\x17\x49\x02\ \xdc\x64\x22\x15\x2d\x7e\x05\x82\xd4\x83\x78\xe7\x9c\x85\xb3\x81\ \x66\x20\x14\x12\x6d\x2d\x16\xe0\x56\x5b\x6a\x81\x61\x90\x3c\x82\ \xa8\x3c\x9e\x5d\x4f\xf4\xee\x3b\x61\x9e\x7d\xfb\x4d\x3a\xf5\xd9\ \xeb\xe8\x10\x4c\xdf\x33\x2d\xf2\x2d\x8b\x84\x1d\x6f\x3b\x30\xf4\ \xd0\x1f\x89\x0d\x10\xd9\xd1\x66\x08\x2d\x1c\xb7\x12\x5b\x85\x24\ \xad\x4e\x94\x5b\x4f\x4b\x00\xf1\x2d\x9f\x1a\x19\x49\x7f\xbf\x50\ \x28\xf6\x0a\x82\x51\x2d\x10\x15\x43\x8b\x3a\x13\x70\x2a\x2c\xcf\ \x87\xa9\xd0\xf0\xc2\x8d\xca\xbc\xe3\xd1\xfb\x20\x37\x8b\x0a\x2e\ \x1f\x4b\x50\xd1\xb4\x5b\xff\xd5\x46\x74\x4c\xa6\x7b\x29\xdb\x76\ \x6c\xa2\x63\x8c\x45\x33\x74\x00\xeb\x0e\x6a\x8c\xee\x0a\xb0\xbd\ \x28\xd2\xcf\x46\x73\x26\x4a\xe2\x3d\x6b\x75\x01\x7d\x30\xb2\x5c\ \x0b\x38\x5c\x0b\x14\x8b\x64\x73\x7d\xce\xa9\x90\xba\x1b\x18\xb6\ \x7e\x64\xf5\x71\xb7\x06\x3b\xe7\xba\xdd\xa0\xb7\xd6\xf5\x7c\xd7\ \xb5\x1d\x8f\x73\x20\x7c\x11\xe8\xe1\x02\x1d\xe7\x02\x8b\x41\x90\ \xd3\x02\xa8\x54\x6b\x61\x2a\x5c\xb7\x8e\x4c\xbd\xb7\x5f\xa1\xc9\ \xce\xeb\xd5\x84\xd0\x69\xe2\x9d\xcf\xf7\x70\x83\x68\xae\xb7\x1b\ \x20\x0e\xb0\x00\x8c\xb5\x58\x80\x00\xbc\x13\xa8\x05\xd0\x87\x9b\ \x17\xd4\x02\x75\xd4\xfa\x6e\xa9\x44\x16\x6f\x8a\x5c\xb7\x9b\x70\ \x2f\xad\x1b\xc6\x2a\x82\xe9\xd6\x78\x37\xf1\xfe\x83\x22\x22\x60\ \x5b\x20\xec\x21\x80\xc8\x0d\x4e\xe3\x60\xc4\x97\xd2\x8f\x49\x69\ \x73\x2d\xb0\x1e\x1b\x9e\x06\xbb\x01\xb6\xab\x62\x61\xa1\xb7\xf6\ \x99\x70\xff\x6e\x10\x8d\x7b\xb9\x41\x8f\xe7\x41\x5c\x95\xc4\x3d\ \x83\xe0\x4a\xbb\x42\x6c\x41\x8b\x3a\x13\x6c\xda\x79\x3e\x55\x51\ \xbe\x26\xb2\x59\x0e\x34\x5d\x90\x8c\xd6\x6b\xa2\x5e\x41\x6f\xd5\ \xe0\x26\xa3\xfb\xd1\x35\xa3\xc7\x0e\xb0\x2b\x28\xe2\x1a\x02\x18\ \xbc\x6d\x62\x62\xf3\x1a\x04\x10\x05\xc2\xba\x10\x8b\xfa\x88\xfc\ \x5c\xe4\xfa\x2a\x34\x9f\x58\xbf\x5e\x9f\xf9\x77\x47\xeb\xce\xb9\ \x55\x48\xa9\x7e\x35\x01\x75\x13\x8f\xc6\x2d\xef\x8a\x1e\x31\x80\ \x5a\x2c\x70\xd0\xb6\xf7\xaf\x49\x00\xda\x02\x50\x0b\x2c\xc1\x6d\ \x54\x0d\x9f\x42\x55\x57\x99\x9f\x57\x81\x90\x84\x68\x27\xbd\x1a\ \x71\x4d\xb8\x9d\xd4\x4a\x7d\xf4\xdc\x5a\xac\x81\xe7\x7a\x90\xe7\ \x16\x37\x0c\x15\x08\x7b\x06\x41\x89\xc6\xc1\x42\x97\xc3\x95\xd6\ \x73\x81\x7c\x3e\x4c\x85\xd8\x17\x18\x52\xf2\xa2\xd6\x16\x08\xf5\ \xb8\x67\x36\xe8\x5d\x10\x51\x0f\xad\x77\x36\xcc\xee\x69\x2a\x5b\ \x9c\x75\x10\x04\xdc\x12\x04\xa0\x8b\x21\xa7\x50\xa0\x7a\xa5\xc2\ \x16\xa0\xbf\xd4\x3b\x10\x76\x8d\x35\xe9\xde\xd9\xa0\x37\xf1\x6e\ \x61\xea\xac\x85\x8d\x9c\x82\x0f\x38\xbe\x2f\xc8\x34\xe7\xf8\x09\ \x6e\x12\xad\xa7\x00\x74\x2d\x50\x68\xad\x05\x2a\x55\xaa\x3b\x0e\ \x79\xd5\xaa\x3a\x29\x16\x98\xa3\x5e\xda\xd7\x56\xd2\xcb\x12\x7a\ \xa4\x41\x5d\x56\x2b\x62\xf8\x5d\x0f\xbd\x27\x84\xf4\xd9\x5a\x13\ \x89\xc0\x1a\x48\x0a\x3b\x95\x96\xf6\xf0\x90\x4c\x8e\x8e\xd1\xe0\ \xe4\x84\x1c\x9d\xde\x44\x53\xbb\x76\xc8\xbf\xb8\xf3\xcb\xd7\xfd\ \xdb\xbb\xef\xbe\xdc\xb3\x0e\x58\xf1\x60\xc4\xf3\xe6\x5a\x6b\x01\ \xe5\x17\x70\x83\x18\x52\xa1\x5c\x5a\xea\x26\xdd\x87\x1b\xb8\x4d\ \x8d\x79\x00\xf7\x0e\x88\x41\x63\x81\x88\xc7\x03\x23\x91\x10\x46\ \x26\xc3\xff\x78\x52\x9d\x1d\x0c\x8c\x8f\xcb\xd1\xc9\x49\x63\x64\ \x7a\xda\x1e\x99\x18\xb7\x6d\x3b\x66\x99\xf8\x9f\x6d\xd9\x14\x8b\ \xc5\xc8\xb6\x2d\xf4\x71\xe2\xeb\x64\x32\x49\x43\x58\xe7\x79\x93\ \x93\x15\x08\xa0\xce\x9c\x7a\xd4\x01\xdd\x81\xf0\x78\xa3\x31\x2b\ \xf0\x8e\xfe\x23\xc9\xe4\xf6\x19\x6a\xa0\x18\x4a\x8e\x8d\x91\x80\ \x00\x56\x7b\x11\xef\x68\x2d\x69\x73\x64\x0d\x0a\x11\x12\x63\xad\ \x09\x99\x4a\x49\x2b\x93\x31\x6c\xa4\xd5\x01\x6c\x89\x33\xe3\xe3\ \xe6\xf0\xf4\x94\x99\xc9\x66\x6d\x32\xd4\xc6\xc2\xe6\xe5\x5a\x96\ \x45\x71\x45\x0e\x24\xe3\x71\x35\x8e\x27\xb8\x8f\x87\xa4\x63\x98\ \xb7\x63\xfc\x9c\x7a\x06\x02\x61\x01\xa8\x67\xd2\xa9\x34\xed\x3f\ \x77\x52\xe9\xad\x67\x29\xbc\xd2\xae\x10\x59\xa0\x02\x12\x15\x14\ \x43\x19\x95\x0a\x77\xec\xc0\xb6\xf8\xb8\x0a\xa7\x8b\xb5\x5a\xe8\ \x67\x78\x36\xb0\xac\x40\xc4\x62\x42\x26\x12\x52\x0e\x0c\x48\x99\ \xce\x20\x58\x8e\xc9\xc4\x86\x73\xcc\xd4\xf8\x46\x63\xdd\xe4\xa4\ \x3d\x38\x3a\x66\x41\x55\x26\x2f\xce\x34\x94\x43\x92\xc9\x8b\x06\ \x4c\x1e\x9b\x26\x19\x80\x26\x8c\x7b\x21\x69\xc0\x62\xe0\x1e\xae\ \x19\xea\x59\x0d\x7d\xe4\x87\x79\x7e\x57\x83\x05\xa4\xe6\x26\x92\ \x99\x18\x6e\xf7\xda\x0e\xaf\x9e\x0a\xf9\x8f\x24\x49\x21\x32\xae\ \xe3\xd1\xb6\xa9\x29\xf9\xea\xf1\x13\x1e\xcd\xcc\x48\xfb\xe2\x0f\ \x1b\xa3\x9b\x36\xd9\x03\x83\x83\x26\x7e\xc8\xd4\x0b\x64\xad\x60\ \xac\x34\x80\x59\xb2\x15\x19\x73\xf9\xf8\x1b\xd4\x31\x0e\x78\xcc\ \x8b\x57\xe0\xb5\x99\xfc\x0e\x34\x0c\xe8\x39\x75\xf8\xc9\x82\x37\ \x00\x7c\x97\x63\x11\xf7\xfc\x0c\x93\x0c\x85\xd8\xfc\x5d\x34\xbe\ \xd6\xd9\x2c\xdc\xc5\xd6\xeb\x6e\xcc\x94\xa9\x35\x9c\x08\x75\x67\ \x82\x1a\x8a\xa1\x11\x29\xa7\x38\xf2\x9f\x29\x14\xbc\x89\xcf\x7d\ \x1e\xe7\x22\x23\x94\x49\xa7\x40\x32\xc1\x0b\x51\x84\x41\x45\xbd\ \x26\x98\x8c\x8e\xe2\x18\xa3\x0f\x17\x69\x59\xbc\x78\x8c\x2d\x40\ \x11\x6c\x03\x04\xa2\xc7\x9a\x84\x7a\x3e\x11\x5a\x85\x26\xac\x35\ \xdd\x9a\xba\x59\x30\x3c\xd7\xf6\x0d\xbe\xae\x17\x8b\x65\xcb\x13\ \x99\x35\x6c\x87\xa3\x5a\x40\x5b\x40\xa5\x79\x2e\xb0\x1e\x01\xe5\ \xe4\x9e\x7d\xd6\xa6\xe9\x69\xca\x8e\x8d\x92\xdd\xd4\x34\xb1\x16\ \x0c\x93\x3b\x6d\xaa\x9a\x44\x44\x8e\x11\x04\xbc\xd0\x30\xa5\x3a\ \x2e\x6b\x57\x2f\x58\x43\x9b\x34\xa3\x6d\x8e\xdf\xd1\x42\x40\x6b\ \x8e\xb5\x40\x57\x2e\xf3\xf9\xdb\x8d\x7c\xbe\x4a\xc2\x4f\xb3\x71\ \xf4\x6b\x01\x2c\x00\xb5\xf3\x09\x3c\x4f\x66\xa6\xa7\x51\x06\x8c\ \xd0\xf0\xf0\x30\xff\x78\xf3\xbb\xa1\xf6\x74\xbd\x00\x62\x7a\xcc\ \xe0\x7b\x0a\xda\x2c\xd1\xba\xc9\x47\xd0\x1a\xe6\xbe\x6d\x0c\xa2\ \xda\x0a\xf8\xdd\xd0\xc4\x9b\xbb\x52\xad\x71\xfd\x8c\x16\x4a\xe5\ \xf4\xa9\x1a\x1e\x4c\xaf\xc1\x02\xba\x53\x61\xc9\xf7\x95\x00\x6a\ \xae\x1b\x0c\x25\x93\x76\x22\x9e\x20\x5d\x1b\x60\x31\x6d\x64\xb5\ \x00\x22\xd2\x91\x70\xb4\x56\x5b\x7d\x94\x7b\x4d\x46\x2f\x5e\x9b\ \xb4\xe3\x38\xfa\x0f\x20\xda\xf4\xbb\x02\x1d\xe6\x75\x1c\x50\xdf\ \xd1\xef\xeb\x00\xb9\xf8\xea\x2b\x0d\xc3\xf3\xfa\xb6\x00\xd1\xfc\ \x17\x23\x73\xfc\xb6\x67\xdb\x42\xfd\xa8\x69\x68\xcd\x6a\xad\x69\ \x82\xda\x2c\x79\xac\x89\x30\xb4\x50\x34\xda\xde\xd1\x66\xaf\xef\ \xe9\x6b\xf4\xfa\x5b\x3c\xcf\xdf\x60\x8d\xab\xf9\x0c\x6a\x83\x81\ \x81\x01\x95\xeb\x13\xcd\x38\xd4\xd9\x1a\xa5\x62\xc3\x39\x72\x78\ \xc4\xf5\x7c\xd9\x87\x05\x44\xa9\x10\x07\x23\x67\x78\x11\x3e\x56\ \x8d\x42\x43\x93\xd3\xd2\xd7\x5a\xd4\xda\xd7\x64\x3b\x03\x9b\x16\ \x4e\x9b\x26\x75\xd3\x04\xb5\xf6\xf4\xb3\x3a\x23\x74\xb6\x72\x3e\ \xef\xce\xbe\xf3\x4e\x3d\x7f\xf4\xa8\x53\x3a\x79\xc2\xaf\x9e\x99\ \x95\x41\xa1\x60\x58\x8d\xba\x3d\x20\x45\x7c\xc8\x8e\xa5\x32\xa9\ \x64\x32\x96\x88\x0f\xbf\x9e\x5b\xfc\xd7\x3e\xb2\x40\x94\x0a\x4f\ \x39\xce\x82\x90\x92\x3d\x3b\xd0\x8b\x6e\xd5\xa8\x16\x82\xd6\x1a\ \x34\xd2\xb5\x68\x5c\x6b\xb4\xa5\xaf\xd6\xc6\xef\x71\x2b\xe6\x72\ \xce\xe9\x23\x47\xea\x0b\x47\x8e\xb8\x85\xe3\xc7\xfd\xf2\xe9\xd3\ \xd2\x59\x58\x30\xfc\x62\xd1\x36\x1a\x8d\x44\xdc\xf7\x53\xb6\x69\ \xc6\xf1\x8d\xb8\x0a\x90\x86\x51\x0b\x4c\xa3\xe4\x1a\x0a\x05\x60\ \x09\xa2\x9c\x43\xd1\x75\xe8\xe9\xd3\xb3\x4f\xbe\x9d\xcf\x1f\xeb\ \x57\x00\x3a\x13\x34\xea\xbe\x5f\xf2\xa4\x8c\x6b\x72\xda\x84\x5b\ \xcd\x55\x43\x13\x5d\xa9\x15\x66\x67\x9d\x1c\xc8\x2d\x1d\x3b\xe6\ \x2c\x1e\x3d\xea\x57\x67\x67\x79\x97\xb9\x4c\x2e\x21\x44\xca\x84\ \x2c\x08\xc0\xef\x35\x1c\x29\x4b\x7c\x28\x83\x5a\xa4\x58\xc7\xd6\ \x9c\xff\x0d\x63\x59\x88\x7c\x01\x9b\xb4\x3c\x14\x73\xd4\x75\xe7\ \x30\x5f\x67\x57\x65\xe8\xcc\x05\xd4\x80\x02\x50\x0c\xe7\xfb\x17\ \x80\x0b\xd4\x71\x40\x7a\x6c\x7c\x71\x71\x47\x12\x02\xb0\x59\x83\ \xb6\xdd\x45\x12\xe4\x1a\xb9\x43\x87\xea\x79\x90\xc3\x5f\x7f\x83\ \x0a\x6b\x0e\xe4\x44\xa9\x14\x53\x9a\x13\x22\xcd\xe4\x02\x64\xd9\ \x86\x10\x7e\x43\xca\x4a\x93\x9c\x22\x56\xf1\xfd\x7c\x11\xc4\x16\ \x7c\x3f\x87\x12\x7c\x1e\x3b\xd1\x32\x13\xea\x20\xc7\xf0\x5b\x10\ \xb4\xf7\x7a\x1c\x3d\xab\xab\xc0\x1e\x02\x58\xb5\x16\x70\x80\xd2\ \x7b\x8d\xc6\x4b\x9b\x97\x96\xf6\xbe\xf4\xe0\x83\x8b\x89\x7a\xd5\ \x3c\x35\x9f\xaf\xe1\x80\x54\x82\x9c\x6d\x36\x1a\xc9\x18\x8a\x5f\ \xfe\x16\x6f\x64\x80\x3a\xff\x59\xad\x2e\x65\xa1\xe6\xfb\x4b\x15\ \x68\xac\xe8\x79\x0b\x8b\x38\x66\x3f\x89\xcd\xd5\x82\xeb\x96\x34\ \xa1\x3e\x88\x31\x04\x20\xcf\x06\xdc\xfa\xfe\xbf\xce\x42\x00\x26\ \x85\xe6\xb8\x11\x52\xda\x7e\xf3\xe4\xe4\x1f\x6f\x4c\x26\x77\xa7\ \xd2\x29\xff\x8d\xb9\xdc\x4f\xaa\xa8\x0f\x4a\x40\x1e\xc4\x70\x80\ \x9a\x3b\xe3\xba\x8b\xdd\xa4\x80\xde\xa4\xb8\x17\x8c\x1e\xe4\x28\ \x1a\x77\xb7\xd5\xc8\xf6\x2b\x00\x2d\x04\x1b\x5d\x1a\x18\x05\x86\ \x81\x18\x20\xce\x46\x5b\x6b\xd4\x18\x7d\x30\xc4\x3e\x78\x01\x18\ \xe8\x2c\x26\xde\x84\xa1\x6b\x84\x5f\x2e\x62\xfd\xb7\xff\x05\xc7\ \xfd\xe7\xdb\x23\x5d\x13\x38\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x20\x1c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\ \x1b\xaf\x01\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xd7\x08\x12\x14\x39\x28\x29\x91\x7c\x0e\x00\x00\x1f\xa9\x49\x44\ \x41\x54\x78\xda\xe5\x9b\x09\xb0\x5c\x57\x99\xdf\xff\xb7\xf7\xbd\ \x5f\xbf\xfd\xe9\xe9\x3d\x49\xd6\x2e\xd9\xda\x2c\x79\xc1\x78\xc0\ \x76\x42\x81\xc1\x03\x64\x0c\x13\x1c\x42\x65\x02\x4e\xb1\x84\x78\ \x5c\xc5\x14\x55\x49\x2a\x54\x48\x05\x2a\x03\xc3\x14\x03\x55\x33\ \x13\x43\x2a\xae\x21\x9e\x01\x26\x05\x43\x80\xd8\xb2\x0d\x78\xc3\ \x96\x25\x6b\xb1\xf5\xb4\x3d\x6b\x7d\xd2\xdb\xb7\xde\xb7\xdb\xb7\ \xf3\x3b\xa7\xbb\x35\x12\x1a\x0a\x18\xb0\x81\x4a\xcb\x9f\xcf\xed\ \xbb\x9c\x77\xbe\xed\xff\x2d\xf7\xb4\xfe\x7f\xff\x38\xaf\xe7\xdf\ \x59\xb3\x66\x8d\xaf\xab\xab\xcb\xd7\xdb\xdb\x6b\x29\x91\x48\x38\ \xd5\x6a\x55\xb9\x5c\xce\x5b\x58\x58\xf0\x96\x97\x97\xbd\x0b\x17\ \x2e\x78\xd9\x6c\xb6\x29\x09\xfa\x2d\x16\x40\x24\x12\xf1\x6d\xdd\ \xba\x35\xb0\x7b\xf7\xee\xf8\xdd\x77\xdf\xbd\xb5\xaf\xaf\x6f\x67\ \x34\x1a\x5d\xcf\xf9\x75\x7e\xbf\xbf\xd7\x71\x9c\x04\x14\x6f\xf2\ \x69\x34\x1a\x05\x43\x08\x63\xa6\x5c\x2e\x9f\x2a\x16\x8b\xe3\xd3\ \xd3\xd3\xfb\xbf\xfd\xed\x6f\x9f\x3c\x70\xe0\x40\x0d\xa1\x34\x8c\ \x40\x7e\x1b\x04\xe0\x6c\xda\xb4\x29\x74\xef\xbd\xf7\xf6\xbe\xf5\ \xad\x6f\xbd\x07\x2d\xbf\x3d\x16\x8b\xdd\x1c\x0e\x87\xfb\x60\x5a\ \xf0\x2a\xd7\x75\x2d\xc1\xb0\x3c\xcf\xb3\x0f\xf9\x7c\x3e\x4b\xc1\ \x60\x50\xdc\x67\xcf\x57\x2a\x15\x15\x0a\x85\x49\xac\xe1\xd9\xa9\ \xa9\xa9\x6f\x3d\xca\xe7\x5b\xdf\xfa\x56\xde\x58\xca\xaf\x52\x18\ \xce\xaf\x4a\xdb\xd7\x5f\x7f\x7d\xf4\x13\x9f\xf8\xc4\xae\x6d\xdb\ \xb6\x7d\x34\x9d\x4e\xdf\x0d\xd3\x29\xc3\x08\x1a\x15\x1a\x55\xa9\ \x54\x52\x15\xa6\x6a\xb5\x9a\xdc\x7a\xbd\x25\x00\x08\xa1\x40\xad\ \x95\xc0\xbc\x15\x42\x38\x1a\x55\x2a\x95\xb2\x14\xe5\xb8\xce\xfd\ \x8b\x8b\x8b\xf3\x33\x33\x33\xff\x7b\x6c\x6c\xec\xcf\x3e\xf7\xb9\ \xcf\x8d\x4f\x4e\x4e\xba\x46\x10\xbf\x6e\x01\x38\x1b\x37\x6e\x8c\ \x7e\xfa\xd3\x9f\xbe\x79\xc7\x8e\x1d\x7f\x94\xc9\x64\xde\xe2\xe7\ \x03\xd3\xc6\xaf\x55\x2c\x14\x54\xe1\xd8\x50\x15\x2a\x23\x04\xc8\ \x0a\xa2\x8e\x20\x1a\x58\x82\xe1\xde\xe7\x38\xf2\x07\x02\x0a\x05\ \x43\x0a\x86\x42\x0a\x84\x43\xf2\x9b\x63\xc6\x68\x3c\xae\x9e\xbe\ \x3e\xf5\x41\x21\xae\x2d\x2d\x2d\xd5\x2f\x5d\xba\xf4\xcd\x23\x47\ \x8e\x7c\x96\xbf\x7b\x22\x9f\xcf\xbb\xbf\x16\x01\xa0\x9d\xe0\x87\ \x3f\xfc\xe1\x91\xf7\xbf\xff\xfd\xff\x7e\x68\x68\xe8\x03\x98\x70\ \x10\x4d\x5b\xc6\x4b\x30\x6e\x28\xbb\xbc\xac\x85\xb9\x79\xcd\xce\ \xcd\x6a\x6e\x76\x56\x4b\x8b\x4b\xca\xe6\xb2\xd6\x1a\x3a\x02\xf0\ \x49\x0a\xfa\xfc\x8a\x84\x82\x4a\x18\xcd\x27\x12\xea\x4a\xa7\xd5\ \x95\xe9\x56\x2a\xd3\xa5\x68\x2a\xad\x50\x22\xae\x70\x2c\xa6\x6e\ \x84\x30\xbc\x72\xa5\x62\x1c\xcf\xce\xce\x96\xcf\x9c\x39\xf3\xc5\ \x6f\x7c\xe3\x1b\x9f\xfb\xfa\xd7\xbf\xbe\x2c\xc9\x7b\xbd\x04\xe0\ \x8c\x8e\x8e\xc6\xbe\xf4\xa5\x2f\xbd\x63\xcf\x9e\x3d\x7f\x8a\x89\ \x0e\x5d\xd6\x78\x3e\xaf\x1c\x4c\x4f\x4f\x4d\xe9\xfc\xb9\xf3\x3a\ \x73\xf6\x8c\x26\x26\x26\x34\x03\xf3\xf8\x72\x87\x71\x6b\xfa\xc2\ \x3d\x1c\xa3\x7d\x49\x01\xc7\xa7\x00\x18\x10\x0a\xf8\x15\x45\xcb\ \x89\x48\x54\x19\xcc\xbf\xaf\xa7\x5b\x83\x83\x83\xea\x5f\xb1\x42\ \xe9\x81\x01\x45\x33\x19\x85\xcd\x79\xce\xad\x5a\xb5\x4a\xc2\x72\ \xce\x9d\x3b\xf7\xea\xc1\x83\x07\xff\xf5\x27\x3f\xf9\xc9\xe7\x5d\ \x3e\xaf\xb5\x00\x7c\xb7\xdc\x72\x4b\xf7\x97\xbf\xfc\xe5\xff\x40\ \x48\xfb\xb7\x66\xed\x98\xa0\x0a\x50\x76\x71\x51\x13\x17\x2e\xe8\ \xc4\xf1\x13\x1a\x3b\x7e\x4c\x68\xc7\x32\x5e\x2e\x96\xd4\xdb\xdb\ \xa3\x95\x2b\x86\xd5\xc7\xd8\xdd\xd5\xa5\x58\x24\xa2\x30\xbe\xde\ \x6c\x78\x06\x0f\xb8\xa7\xa0\x02\x02\x5c\x5a\x58\xd0\xfc\xf4\x0c\ \x34\x8d\x60\x9a\x8a\xe0\x06\x29\x5c\xa0\xbf\xa7\x47\x2b\x56\x0e\ \x6b\xc5\xea\xd5\xca\x8c\x8c\x2a\xda\xdb\xab\x38\xc2\x19\xe5\x7b\ \x5f\x7f\xbf\xc0\x86\x2a\xd8\xf0\x1f\x1f\x7c\xf0\xc1\x2f\xe3\x22\ \x95\xd7\x4a\x00\xfe\xb7\xbf\xfd\xed\x2b\x3e\xff\xf9\xcf\xff\x05\ \x5a\xb9\x1b\x60\xb2\x8c\xe7\xd0\xec\xe4\xc5\x8b\x3a\xfa\xca\x2b\ \x3a\xf0\xd2\x4b\x3a\x7e\xf2\xa4\x66\xa6\xa6\xf1\xd9\x5e\x6d\xdb\ \xba\x55\x9b\x37\x6d\x52\x22\x1c\x91\xaf\xe9\xc9\xef\xb5\xc8\x31\ \x04\xf3\x62\x84\xac\x45\x34\x0c\x71\xec\x72\x5f\xb5\x5a\xb3\x73\ \x9e\x3e\x76\x4c\x0b\x08\xd1\x80\x63\x12\xb3\xef\x87\xf1\x95\x30\ \xbd\x62\xfd\x7a\xa5\x56\x8d\x2a\xc2\xf7\x01\x5c\x62\xf5\x75\xd7\ \x59\xa0\x45\x08\x5f\xf9\xd4\xa7\x3e\xf5\xe0\xc9\x93\x27\x8b\x3f\ \x2f\x40\xfa\x7f\x5e\xe6\x3f\xf0\x81\x0f\xac\xf9\xcc\x67\x3e\xf3\ \x48\x7f\x7f\xff\x9d\x26\x44\xe5\xdb\x1a\x3b\x31\x36\xa6\x1f\xfe\ \xf0\x87\x7a\xe2\x07\x3f\xd0\xcb\x2f\xbf\xac\x01\x16\xf5\xce\x77\ \xdc\xa3\xbb\x6e\xbf\x5d\xd7\xa1\xf5\x0c\xbe\x9d\xc4\x54\xd3\x6a\ \x51\xaa\x43\x9c\x4b\x4a\x4a\x74\x88\x73\x71\xc6\x18\x6e\x11\xe7\ \x5a\x6f\x32\xa5\x75\x1b\xd6\x69\x04\x06\x6b\x08\xb9\xb0\xb0\xa8\ \x12\x02\x2f\xf2\x37\x6b\x4b\x4b\xf2\x55\xaa\x0a\x20\x98\x4a\xdd\ \x55\xae\x84\x95\x81\x0f\x03\x03\x03\xbb\x6e\xb8\xe1\x86\xad\x58\ \xc4\x63\xe7\xcf\x9f\xaf\xfe\xaa\x04\xe0\xbf\xf3\xce\x3b\x57\x7e\ \xf6\xb3\x9f\xfd\x5f\xc4\xf5\x5b\x0d\x8a\x1b\xb3\x9f\xc3\x4c\x5f\ \xda\x7f\x40\x8f\x3d\xbe\x57\xcf\x3e\xfb\xac\x5c\x7c\xfb\xbd\xbf\ \xf7\x7b\xba\xe3\x8d\x6f\xd4\x20\xc0\x95\xc2\xa7\xd3\x4e\x87\xe9\ \x0e\xb3\x0e\x0c\xc2\xa4\xa4\xa8\x31\xf1\x26\x24\x99\x11\xe2\x9c\ \x19\xa1\x98\xbd\xc6\x79\xac\x22\x01\x26\x5c\xb7\x6e\xbd\xba\x01\ \xc4\xfc\xf4\x94\xaa\x68\xba\x9c\xcb\xab\xba\xbc\x24\x87\xb5\x84\ \x88\x1e\x0d\x9f\xa3\x3c\xc7\x19\x5c\x05\x21\x6c\x02\xa3\x36\xee\ \xdb\xb7\xef\xbb\xe0\x52\xfd\x97\x15\x80\x8f\x30\xd7\xff\xd0\x43\ \x0f\x7d\x85\x89\xef\x00\xc4\xac\xd9\x4f\x5d\xba\xa4\xe7\x9f\x7f\ \x5e\xff\xf7\xb1\x47\x75\xe8\xe0\x41\xed\xda\xb1\x43\xff\xfc\xde\ \x7b\xb5\xb2\xa7\x57\xe9\x0e\xe3\x57\x68\x38\x0a\x85\x61\x0c\xaf\ \x57\x00\xc6\x02\x8c\xfe\xa6\x20\x46\xaf\x75\xec\x33\xc7\xf6\xba\ \x21\x29\xc8\x18\x16\xe4\xf1\x9c\x5b\x07\x3b\x12\x1a\xc1\x22\xaa\ \x33\x73\xaa\xb1\x86\x5a\x89\xd0\x4a\x44\xb1\x42\xf0\x33\x23\x96\ \x96\x03\x8c\xbb\x00\x4a\x42\xe6\x26\xb2\xd0\x81\xef\x7f\xff\xfb\ \x8f\xe3\x5a\xee\x3f\x56\x00\x0e\x79\x7b\xea\xe1\x87\x1f\xfe\xcf\ \x6b\xd7\xae\xbd\x8f\x58\x6e\x32\x33\x4d\xc3\xfc\x8f\x9f\x7b\x4e\ \x8f\xed\xdd\xab\xb3\xa7\x4f\xeb\xdd\xef\x7c\xa7\x6e\xdb\xbd\x47\ \x5d\x80\x5a\x86\x85\x74\x18\x8f\x59\xa6\x61\xb6\xcd\xa4\x45\x7c\ \x33\x1a\xbf\x6f\x42\x1c\x37\x6d\x24\x68\x8d\x6a\x9f\x77\xec\xbd\ \x8c\x1d\xe1\x58\x30\x6c\x32\x59\xdd\x5a\xcf\xf0\x9a\x0d\x6a\x10\ \x4e\xdd\x42\x8e\x30\x5a\x53\x3d\x57\x40\x08\x65\x2c\x21\x88\xa4\ \x23\x2a\xd6\x6a\xd6\x1d\x58\xfb\x2e\x92\xb3\x65\x84\xb0\x5f\xcc\ \xfe\x0b\x0b\x80\xb8\x1e\xf9\xc2\x17\xbe\x70\xef\x6d\xb7\xdd\xf6\ \x5f\x00\x3c\x1f\xcc\x5b\xb3\x7f\xe1\xf9\x17\xb4\xf7\xf1\xc7\x75\ \x11\xc4\xbf\xef\xf7\x7f\x5f\x1b\x09\x47\x5d\xf8\x62\x06\xcd\xe3\ \xd7\x76\x91\x21\x18\x68\x69\xb5\xcd\x58\x9b\xa9\xa6\x65\x9a\xb1\ \x7d\xac\xf6\xb1\xda\xc7\xba\xea\xd8\x8e\xac\xc3\x53\x20\x0d\x40\ \x3a\x9e\x42\x45\xc9\x29\xd7\x35\xb4\xf6\x3a\x35\x96\xc1\x02\x37\ \x27\xa7\xee\x22\x84\xa2\xfc\x60\x42\x08\xb0\x6d\x1a\x21\x10\x0d\ \x07\x08\x95\xe4\x0b\xbf\x43\x8e\xf2\x14\x2e\x3a\x21\x66\xfc\x45\ \x04\xe0\xa7\x80\xd9\xf4\x91\x8f\x7c\xe4\xaf\x40\xe0\xa4\xc9\xe8\ \x96\x09\x73\x07\x0f\x1c\x40\xf3\x8f\xeb\x3c\x21\xce\x30\xbf\x66\ \x60\x00\xcd\xfb\xd4\xed\xf7\x29\xe9\x39\xd6\x7f\x03\x2d\x2d\x42\ \xad\x58\xaf\x0e\xa3\x57\x33\x79\x95\x15\xa8\x6d\x05\x96\x38\xee\ \x8c\x1c\x28\x18\xa7\x2e\xe8\x8a\x28\x56\x73\xe5\xe5\x4c\xf4\x80\ \x88\x40\xfd\x6b\x56\x03\x86\x17\xb9\xa7\x2a\xaf\x84\x80\x8a\x65\ \xf9\x39\x1f\x8a\xc7\xd4\x20\xcc\xba\x92\x86\x56\xac\x08\x90\xa7\ \xdc\x76\xe2\xc4\x89\x47\x00\xc6\xf2\xcf\x2d\x00\x24\xd7\xf5\xc5\ \x2f\x7e\xf1\xb3\x84\xbb\x5b\x08\x2f\x36\xc1\x39\x41\x48\x7a\xfc\ \x89\x27\x34\x06\xd2\xbf\xfb\x77\xef\xd1\xda\xa1\x15\xea\x86\xf9\ \x54\x44\xea\x92\x8f\xe4\x25\x2e\x11\xbe\x3a\xcc\x59\x26\x1a\x10\ \x82\x40\xcb\x57\x6a\xfe\xaa\x31\x68\xb4\xe6\xba\xc4\xf7\x11\xad\ \xba\x79\x8f\xfa\xd6\xae\x55\x1f\xbe\xde\x47\xa8\xeb\xdf\xb8\x56\ \xf1\x35\xbd\x0a\xf7\xf4\x6b\xd5\x75\x5b\xd4\xbf\xe1\x06\x0d\x6e\ \xde\xac\x9e\xd1\x51\x2d\x9c\x1a\x57\xdf\x48\x9f\x16\x16\x27\x14\ \xab\x53\x64\x95\x5d\x35\x89\x4e\x01\x39\x0a\xa6\x92\xaa\x01\x9e\ \x41\x04\xd1\xc3\x07\x2b\xf0\xbe\xf7\xbd\xef\x3d\x2d\xa9\x71\x8d\ \xa5\xeb\xda\x4f\xf0\x81\x07\x1e\x78\x13\x7e\xff\x1e\xc2\x9d\xcd\ \xe3\xa7\x88\xc9\xa0\xaa\x8e\x1e\x79\x59\xb7\xec\xd9\xad\x75\xc3\ \xc3\x4a\x4b\x84\x38\xc1\x78\x40\x41\x98\x1b\x20\x16\xa7\x07\xfb\ \x5b\x0c\x37\x5a\xc4\xf1\x15\x82\xb8\x96\x12\x84\xcc\x55\x37\xed\ \x91\x83\xfb\xa8\x69\xdc\xe4\xea\xcc\xc4\xf1\xd7\x55\x27\x19\x8a\ \x45\xc3\xdc\x1f\x30\x67\x3a\xff\xc9\x2b\x57\x14\x4b\x74\x6b\x64\ \xeb\xf5\x44\x08\xbf\xe2\xc2\x32\x4c\x74\xc0\x3a\x6b\x27\x4e\xca\ \x9b\x5f\xd0\x0c\x19\x29\x25\xb7\xe0\xe5\x81\x0f\x7e\xf0\x83\x9b\ \xcd\x04\x3f\x4b\x00\x0e\xda\xcf\x50\xca\xfe\x21\x26\x18\xb0\xf1\ \x9e\xd4\x76\xec\xe8\x98\x8e\x1c\x3a\xa4\x34\xfe\x75\xeb\xce\x5d\ \x4a\x35\x05\xd8\x11\xaf\xc3\x3e\x28\x24\xc7\x6d\x58\x06\x52\x83\ \x43\x56\x83\xfc\x55\xc3\x34\x74\x25\xf3\x8d\xd6\xb1\x71\x11\x09\ \x0d\xaf\xd3\x10\x89\x12\xcc\x9b\x73\x96\x3c\xa8\xf3\x8c\xb8\xbf\ \xd1\x2c\x2b\x90\xea\x95\xcf\x0a\x51\x10\xff\xb3\xd7\x20\xc6\xfa\ \x72\x4e\xab\x6f\xbc\x49\xc9\xe1\x5e\x25\x03\xb8\x20\xcf\x08\x57\ \x75\x4f\x9f\x55\x1d\x41\xd4\xb3\x39\xcd\xce\xcc\xa8\xbb\xbb\x3b\ \x7a\xeb\xad\xb7\xfe\x91\xa4\xf0\xcf\x12\x40\xe0\x43\x1f\xfa\xd0\ \x1b\x30\x99\xdb\x0d\xf3\xb5\x72\x19\xb0\x9b\xd0\x91\xc3\x87\x34\ \x4b\x4e\xff\x4f\xde\x7c\x87\x92\x86\x51\x28\x0e\x85\x78\x9a\xe5\ \x4b\x56\xe3\xae\x65\x32\x92\x4c\x6a\x68\xcb\x66\x05\x11\x56\xc7\ \x0a\x3a\xcc\x73\xc0\xf9\x80\x86\x77\x6e\x53\x7a\x68\xa8\xe3\x16\ \x1d\x21\x5d\x1e\xbd\xf6\x33\x35\xaf\xa6\x68\xba\x5b\xf8\xc8\x35\ \x56\x64\x05\x56\xab\x2a\x46\x6a\xdd\x7b\xfd\x76\xd2\xeb\x16\x77\ \x81\x5a\x5d\x4d\xc0\xba\x81\x00\x3c\xb2\xc8\x02\x0a\x34\x25\xf8\ \xca\x95\x2b\xdf\x73\xdf\x7d\xf7\x6d\x90\xe4\xfc\x54\x01\x50\x8b\ \x27\xdf\xf6\xb6\xb7\xdd\x4f\x1d\xef\x33\x0f\xe5\xc9\xc0\xc6\x4f\ \x9e\xd0\x19\xd2\xdb\x35\xc3\x2b\xb5\xb2\x3b\xa3\x64\x87\x79\x16\ \xe4\x73\x01\xa6\x96\x6a\x34\x73\xfc\x24\x7e\x58\xb1\x4c\x53\xda\ \xe2\xab\xa4\xc0\x7d\xbd\x57\xb9\x43\x72\x20\xad\xe4\x86\x21\x85\ \x13\x21\xfb\xbd\x01\x68\x4d\x1d\x79\x45\x2e\xc2\xbe\xc6\x6d\x9a\ \x8c\x12\xf7\xa6\x25\xe6\x6b\xaa\x7e\xf9\x9a\xd7\x06\x53\x5f\x90\ \x68\x43\xe1\xd4\xbd\x79\xbb\xc2\x71\x8a\x29\x2c\x2f\x64\xc2\x2d\ \xb9\x81\x26\xa7\xe4\x52\x8c\x09\x25\x2e\x92\x3d\xd2\xa3\x08\xdd\ \x7e\xfb\xed\x1f\x35\x6c\xfe\x14\x01\xd8\xa4\x67\xd5\xf0\xf0\xf0\ \x9b\x6d\xd3\x02\x9a\x45\x92\xe3\xc7\x8f\x2b\x37\x33\xab\x3d\xdb\ \xb7\x2b\xe1\xb5\x98\x0f\x7b\x6d\x34\xae\xd4\x44\x1b\x0b\x33\x6e\ \xa8\x92\x5d\xd6\xa5\x23\x47\x54\x5e\x5a\x6a\x23\xbb\xd4\x43\xde\ \xde\x0b\x36\x38\x8e\x0f\xd7\x58\xad\xae\xf5\x83\x72\x9d\x96\x36\ \x2b\xa4\xd2\xe7\x5f\x78\x41\x59\xf2\x8a\x2b\x35\xeb\x59\x17\x60\ \x6c\x0b\xc3\x4f\x7c\x0f\xf6\xad\x92\x17\xc8\x09\x6e\x38\x57\x63\ \xee\x9a\x82\x31\x4f\x91\x95\x09\xa5\x46\x37\x2a\x3e\x30\xc2\xf7\ \xa0\x65\xc6\x2f\x59\xc5\x80\x8e\x6a\x5e\xbc\x64\xb1\xa0\x8a\x40\ \x5c\xce\x01\xea\xef\x06\x13\xd3\x3f\x4d\x00\xa1\xfb\xef\xbf\xff\ \x1e\xc2\x5e\xcc\xdc\x5c\x06\xfd\x2f\x9e\x3b\xa7\x4b\x50\x17\x68\ \xba\xb2\xaf\xcf\x32\x1f\x31\xc9\x89\xf5\x41\x34\x58\xc2\x02\xaa\ \x2c\xca\x6f\x17\x6b\x35\x39\x05\x5e\x2c\x9d\xbf\x60\x90\xdd\x32\ \x11\x27\x3d\x1d\xdd\xbd\x4b\xc9\x15\x5d\x2a\xe3\xef\x31\xc2\xd4\ \xf2\xc4\xa4\x2e\xec\xdb\xaf\x6a\xbe\xd0\x36\xfd\x46\x27\x62\x40\ \xae\x25\xbe\x5b\x6c\xa9\x15\x73\xea\x1e\xdd\x2c\x67\x78\xbd\x6a\ \xf1\xaa\xea\xe1\x05\x79\xf1\xac\xba\x6e\x5a\xa3\xfe\x37\xbf\x13\ \xdc\x59\x05\x58\xc2\x38\x40\xe9\x48\x90\xcd\x2a\xad\xe6\x1d\x98\ \xaf\x9d\x3f\x2f\x1f\xf3\x93\xbe\x1b\x2b\xe8\xff\xd8\xc7\x3e\xf6\ \x96\x2b\xf9\x0e\x74\x0e\x4c\xbc\x5f\xb7\x6e\xdd\x3f\xb5\xfd\x3a\ \xc8\x80\xdf\xc4\xd9\x73\xca\xcf\xcd\x69\x23\x05\x89\x61\x3e\x6a\ \xd2\x52\x99\x2c\xcd\x11\xff\xc1\xb0\xf1\x39\x4f\x35\xbf\x83\x96\ \x1b\x62\xdd\x36\x7e\x2f\xf2\x5c\x79\x69\x59\x7d\xeb\xd6\xca\x47\ \x8d\x2f\x01\x58\x2a\x29\xda\xb7\x5a\x0b\x2f\x3d\xa5\xec\x89\x39\ \xee\xbd\x3a\x3a\x74\xa2\x87\xeb\x95\xe4\x73\x4c\x1e\x11\x56\x80\ \x46\x49\x61\xfa\xac\x62\x3d\x03\xea\xb9\xee\x06\x35\x86\xd7\xa9\ \x5e\x29\xda\x7b\xd3\x3c\xeb\x0f\x84\x54\x2f\xcd\x6b\xf9\xcc\x01\ \xf9\x38\xbe\xaa\xbc\x75\x11\x22\x19\x63\x63\x72\x52\x3e\x5c\xb3\ \x1a\x29\x8b\x2e\xb4\x46\x46\x46\xee\x91\xf4\xb7\x50\xf5\x4a\x01\ \xf8\xe8\xeb\xf5\x51\xec\x6c\x43\x00\xb6\x46\x5f\x9a\x9f\xd7\x0c\ \xc0\xe7\x15\x8a\x1a\x1d\x18\x84\x79\x4f\xe0\x7d\x0b\xf4\xd4\x12\ \x00\xa7\x14\x2a\x4b\x95\x4c\x42\x3d\x23\x61\x92\x91\x90\xb8\x6c\ \x85\x20\xa8\x00\x08\x25\xfa\xfb\x59\x5c\x55\x0d\xe2\x7d\x94\x92\ \x36\x68\xd2\x65\xaa\x44\x0b\x1d\xed\x4c\x11\x8b\x69\x9b\xbd\xcb\ \xbc\xf4\x06\xca\x05\x25\x82\x43\x6a\x54\x29\x74\x66\x2f\xa8\xd0\ \x33\xc8\x3c\x2b\x69\x93\x05\x99\x2b\x6d\x05\x40\x6f\x0d\x21\x56\ \x55\xbc\xf4\x8c\xca\xf3\x17\x98\x2c\x70\x75\xaa\x67\xc0\xb5\x84\ \x30\x97\xb3\xaa\xd3\x91\x0a\x66\xba\x2c\x18\x92\x22\xdf\x2a\x29\ \x7e\x8d\x00\xde\xf7\xbe\xf7\xed\xa4\xe7\x96\x32\x75\x7e\x1d\xbf\ \x5e\x64\xf1\xb9\xf9\x39\x85\x78\xa8\x2f\x95\xb4\xa6\x1f\xb8\x42\ \xfb\x12\xa3\x44\x4e\x8e\x65\xf4\xd3\xcc\x1c\x1a\x54\xaa\xe6\x80\ \xcc\x2d\x21\x48\x56\x10\x2d\xcd\x3a\x15\x85\x32\xd7\x59\xbb\x4b\ \x76\xf7\x90\xae\x26\x61\xfc\xef\x05\xb5\x6c\x05\xd0\x10\x12\xc0\ \xd7\xc1\x1f\xa7\x2e\xa9\xc6\x5c\x01\x42\x20\x45\xce\xd8\x8f\xd1\ \xf4\x0d\x4a\xaf\x24\xc4\xca\x69\x27\x57\x2e\x65\xf2\x69\x15\x27\ \x9e\x43\x18\x01\x6b\x8d\x57\x49\x80\x63\x38\x96\x43\x16\x5b\xa3\ \x3f\x11\xdb\xb8\xd1\xe2\x55\x32\x99\x1c\x7d\xef\x7b\xdf\xbb\x96\ \x56\xda\x92\xb9\xab\xe3\x0b\xc1\xcd\x9b\x37\xef\x68\x58\xe0\xf1\ \x6c\x03\x73\x79\x76\x4e\x55\xe2\x68\x8c\xef\x69\x90\x36\xc8\x1f\ \xf5\x75\x90\xda\x35\xe4\x5a\x72\x2b\x1c\x67\xb3\x30\x38\x48\xd2\ \xe2\x5a\xc1\xe2\xfb\x68\xc7\xf8\xb1\xa1\xba\xdc\x26\x85\x4c\x77\ \x9f\xd5\x78\xc7\xd4\xbd\xcb\x73\xb9\x1d\x74\x87\x60\x3c\x88\x30\ \x09\x7d\xcc\x63\xae\x63\x05\x7e\xf9\xf2\x21\x95\x4f\x1d\xd0\xc2\ \xab\x87\x39\xc7\xf9\xa6\xc1\x9e\x25\x15\xce\x3f\xa6\xc2\x1c\xbd\ \x01\x04\x5f\xcf\x5f\x5b\xf9\xda\x39\xc1\x19\x17\x6b\x0e\x4a\x82\ \x3f\xdb\x7e\xa7\x48\xba\xd1\x28\xfd\x4a\x0b\x08\x63\x1a\xd7\x99\ \xf0\x02\x59\xd4\x2c\x90\x50\x08\x41\x24\xda\xa5\x6c\x80\xf3\x72\ \x98\x54\x90\x73\xd9\xd3\x6c\xde\xdf\x58\x32\xa5\xe9\x9c\xa2\x83\ \x6b\x94\x3d\xf4\x8c\x2a\x97\x6a\x1d\x3c\xb0\xc5\x4c\x78\x75\x4c\ \x99\x70\x54\x24\x16\x5a\x9a\x9c\xe0\xba\x07\xe3\xcd\xcb\xe9\xb0\ \x5b\xad\xd1\xe8\x98\x57\xe0\x62\x45\xd1\xeb\xd7\x60\xe6\x61\x2d\ \x1e\x3b\xa2\xca\x82\x1f\x86\x5b\xf7\xf8\xfc\x35\x85\xce\x9d\x56\ \xa3\x56\x51\xd7\xaa\xf5\x98\xfe\xb3\xaa\xcc\x8f\xa9\xb4\x80\x5b\ \x16\xa5\x7a\xe1\xda\xfe\x07\xcc\xd8\xf4\x98\x57\x4e\x56\x79\x00\ \x9d\x3d\x0d\x18\xae\x6f\x0b\xa0\x61\x05\x40\xba\x18\xe5\xe4\x68\ \x5b\x00\x36\x01\x2a\xe7\x73\xf2\xd7\xea\xb6\x3b\x13\x70\xeb\x98\ \x62\xf8\x1f\x2c\xa8\x3c\xa8\x56\xc0\xdf\x27\x4e\xab\x67\xe3\x0e\ \xe5\x87\x46\xc9\xc2\x9e\x57\x79\xc1\x33\x8b\x87\x19\x68\x68\xc0\ \x40\x33\xa1\x2a\x8e\x35\xc0\x2c\x9d\xe2\x46\xa5\x53\x00\x59\x37\ \xc1\xda\x96\x54\xca\xe4\x94\x19\xb8\x9d\x67\x69\xa2\x5e\xbc\xa0\ \xfc\xc5\xc6\x55\x40\x19\x8c\x73\x5f\xed\xbb\xf2\x6e\xbd\x59\x95\ \xc9\xa7\x54\x5e\xac\xa9\x59\x8c\xaa\x3c\x57\x27\xa7\xa8\xf2\xb7\ \xac\x17\x5d\xbd\x4c\x5c\x5a\x46\x08\xf4\x26\xa9\x8c\xac\x52\x00\ \xc3\x75\x6d\xe5\xd7\x6d\x82\xcd\xc9\x08\xfe\xdf\xdd\xa9\xc4\xea\ \xa0\xa6\xcb\x03\x41\xd3\x91\x09\x88\x73\x39\x72\x11\x34\x68\x7c\ \xfc\x27\xd2\x69\x66\xc4\x4c\x9b\xf4\xec\x12\xe4\xe7\x45\x0d\x6c\ \xd8\xae\xd2\xf8\x51\x98\x58\xb4\x02\x18\xde\xb3\x4b\x4e\xb7\x2b\ \x07\x21\x86\x58\x40\x64\xc5\x88\x4a\xaf\xce\x6a\x74\xcf\x1b\x25\ \xaf\x85\x01\x67\x9e\x79\x56\x7e\xea\xfd\x08\x7d\xbe\xee\x61\x22\ \x45\x31\xcf\xf5\x9b\x55\xdf\x1c\x63\x0e\x33\x7f\x15\x4d\x2f\x68\ \xe1\xf4\xb8\x8a\x67\xa6\x34\xe1\xfe\x9d\x32\x83\x39\x84\x44\xb4\ \x28\x86\x55\x99\xcb\x2b\x10\xa9\xcb\x09\xb3\xf6\x25\x3f\x56\x72\ \x79\x6d\xd6\x0d\x7d\x75\x97\x90\x5d\xc4\x00\xfa\xad\x1b\xc0\x6b\ \x7f\xc7\xfa\x2f\x63\x00\xbe\x11\x45\x00\xd6\x02\xdc\x3a\x92\x05\ \x40\xa8\xeb\x61\xcc\x91\x8b\xf9\x05\x42\x36\x5e\x5f\x4d\xae\x6b\ \x47\xaf\x8e\x58\x08\x87\x15\x6a\xf4\x10\x5a\x0e\x0f\x0e\x81\xd8\ \xd6\xcf\x6d\xb8\x13\x0c\xd4\x8b\x59\xeb\x42\x19\xac\x24\x3c\x14\ \x15\x27\x3b\x58\x80\xe6\x5c\xc5\x46\x42\xea\xd9\x76\x8b\xfc\xa1\ \x20\xf3\x56\xed\x73\x16\x6b\xcc\x75\x4c\x37\xde\xdf\xa7\x91\x9b\ \x6e\x26\x5b\xcd\xc0\x64\x5e\xf9\x19\xae\xe5\xfd\x58\x4e\x90\x28\ \xb0\x48\x32\x86\x9b\x76\xb9\x8a\x64\x58\xcb\x95\x3a\x6a\x97\xe6\ \x5e\x0d\x1e\x02\x81\x4e\xc8\x8f\x9b\xe1\x2a\x01\x70\x32\x72\xb9\ \x16\x77\x5b\x80\x17\x96\x14\x89\xf9\x31\xdd\x28\x8b\xd4\x15\x49\ \xcb\xb5\x82\xf0\x4c\x49\x5a\x5a\xb6\xb1\x21\xdc\x3d\x80\x46\xdb\ \x80\xe7\x1a\xe1\x34\x31\xfb\x49\xc1\x15\x89\xcb\x0a\x65\x76\xdd\ \x22\x5f\x2c\xcb\x12\x4a\x24\x31\x45\x25\x56\x39\xca\xec\xbe\x55\ \x99\xd5\x6b\xdb\x00\x57\x62\xc1\xb8\xa3\x4d\xa6\xda\x64\xc1\xd2\ \x53\xff\xa6\x75\xd6\x2a\x4a\x53\x92\x9b\x8d\x20\xd8\xba\xaa\x26\ \xde\x57\x1d\x18\xa4\x14\xee\x62\xed\xc1\xab\x2c\x14\x62\xe4\x79\ \x9a\xa8\x1d\x01\xc4\x7e\x12\x04\x1d\x4c\xc3\xf1\x0c\x83\xf6\x4a\ \xd3\x5e\x08\x3a\x52\x18\xb2\xe8\x0f\x98\xd9\x30\xe5\x75\x26\xbe\ \x3a\xe6\x34\xeb\x46\xca\x06\xa1\xeb\x36\x7d\xc5\x96\xda\xd6\x01\ \x92\x97\x7d\xf2\xa6\xcf\xab\xb1\x9a\x50\x18\x0a\xab\xff\x86\xdd\ \xca\x12\x59\x34\x77\xc6\x3c\x49\x65\x78\x17\xf8\xb1\x0d\x2d\x8a\ \x79\xd0\x7e\x39\xaf\x06\x02\x38\xfd\xa3\xa7\x2c\xd3\xe1\x78\x5c\ \x83\x37\x5c\x8f\x55\x31\xab\x93\xc5\x22\x82\x6a\xe4\x04\x78\x86\ \x55\x26\x5a\x79\xf8\x39\x38\x06\xcc\x98\x05\x7b\xf8\x7a\x93\xe7\ \x9d\x2b\x85\x60\xad\x08\x2b\xef\x84\xe7\x4e\xd2\xd8\x11\x00\x42\ \xe7\xc3\x85\x76\x3b\xcc\x4f\xa3\x11\x62\x45\x7e\x18\xf0\xe1\x54\ \x75\xb7\x80\xb6\x42\x52\xbd\x3d\xe7\x55\x42\x68\xb6\x42\x98\x5a\ \x3e\xe7\x96\x0b\xb8\x90\x09\x93\x56\x8b\x00\x1e\x52\x07\x89\x0b\ \x53\x17\x94\x1a\x59\x85\x80\x7c\xea\xdd\xb8\x55\x8d\x35\x68\x5c\ \x20\xbc\x31\x7b\xeb\xaf\x35\x35\x8c\xf6\x4b\x05\xc6\x20\xb1\xbf\ \x64\x05\x50\xcb\x17\x48\x84\x7a\x94\x59\x13\xa3\x29\x7b\x09\x2c\ \xc1\xdd\x96\x22\xcc\x5b\x47\x00\xb3\xed\x90\x07\xb9\x0e\x2e\xd4\ \xb4\x02\xa8\xe6\x6c\xc8\xb2\x82\x11\x14\x08\x87\x6d\xe9\xcd\x77\ \x53\x17\x94\x0c\xcf\x57\xba\x80\x0b\xff\x95\x8e\x00\x02\xc1\x80\ \xc2\xc1\x90\x15\x40\xb3\xcc\x12\x17\xa7\xd4\xe0\x38\x94\x34\x3c\ \xa3\xd5\x2b\xfc\x1f\xe2\x24\xa3\x9f\x3e\x7d\x2c\x69\x05\x51\x5b\ \x9c\x36\xa6\xd9\xbe\xee\xb6\xcc\xb9\xe8\xd3\xd2\xf1\x83\x68\xc6\ \x30\x55\x13\x92\xc4\x4d\x70\x2f\x88\x63\x90\xd8\x16\x39\x30\x4b\ \x31\x55\x2a\xa3\xd5\xcb\xee\x86\xe6\xfd\xa4\xc3\x21\x55\xaa\x13\ \xe4\x13\x45\x04\xd0\x24\x22\x04\x40\xff\x29\xee\xab\xb5\x75\xd0\ \xae\x03\x1c\xc1\x2c\x7e\xcf\xd8\xd6\x26\x6b\xf3\x29\x9c\x4c\x5e\ \x16\x00\xd6\x5e\x96\xe4\x5d\x69\x01\x55\x8a\x85\x2c\x17\xe4\xf0\ \x2f\x88\xb4\xa2\xd4\xf3\x05\x53\x86\x56\x1c\x55\x2f\x4d\x2a\x0a\ \x6a\xbb\x4b\x53\x0a\xa7\x43\xaa\x2e\xb9\x1d\xe5\x63\x15\x14\x48\ \x5d\x52\x33\x19\x55\xbc\xb7\x4f\x75\xb4\x5f\x9e\xba\x88\x00\x0c\ \x00\x36\x21\xd7\x2c\x02\x01\x38\x2a\x2d\x9e\x52\x61\xc3\x46\xac\ \x60\xd4\x6a\x85\xa7\xda\xeb\x68\xf9\x37\x44\xec\x9f\x46\x0e\x4d\ \x0b\x82\xa3\xb7\xdc\x6c\x05\x10\x8c\xfa\x15\x88\xcf\xca\xf5\x16\ \x50\x42\x59\x71\x94\x51\x9e\xe1\x38\x32\xaf\x6a\x10\x86\xea\x6a\ \x15\x44\x30\x6e\x4a\x82\x9a\x8d\x6d\x86\xe0\x06\x1e\x3c\x53\x84\ \x51\x94\x75\xde\x99\xa1\xec\x79\x06\xb7\x63\x01\x4d\x88\x28\xb3\ \x30\xe9\xb5\x93\x9d\x40\x84\xbc\x9d\xc2\x21\x84\x69\xca\x63\xc2\ \x19\xfa\x82\x17\x4f\x29\xb3\x69\xbb\xe2\x1b\x57\x28\x71\x5d\x58\ \xb1\x15\x94\xc6\x2b\xa5\xd4\xfa\xa8\xd2\x3b\x37\x72\x6d\x27\x9a\ \x0a\xa8\x34\x37\xad\xda\xec\x02\xe6\xd9\xd2\x1e\x02\x80\x18\xb1\ \x82\xf2\xa5\xa2\x96\x8e\x1e\xe0\xb8\x24\x54\x67\x1b\x9a\x6a\x6b\ \xbe\x69\xc8\xa5\x09\x33\x8f\xb5\x95\x1c\x2e\x5b\xf4\xc7\xa4\x03\ \x54\x7a\xa4\xb3\xd5\x29\x3a\x3f\xe4\x23\x7c\x0f\xc5\x68\x84\xa4\ \x27\x94\x1c\xad\xaa\x6b\x6d\x43\xd1\x6e\x62\xfb\x30\x58\x91\xa0\ \x44\x4e\x19\x16\x3a\xd6\x60\x5c\x22\x24\x7f\x3c\x81\xe2\xd2\xea\ \x58\x38\xca\x3e\xcb\xe0\x5e\x69\x01\x15\x5e\x37\x5f\x68\xa7\x8a\ \x56\x00\x71\x3a\x2d\x61\x80\xca\x71\x72\xaa\x2e\x37\x95\x3b\xfa\ \x8a\x86\x6e\xbc\x59\xdd\xeb\x37\xca\xb9\x7e\x37\xfe\x99\x67\x81\ \xb8\x45\x22\x69\xcd\x2b\xc4\xbd\x1e\x0c\x94\x2e\x9e\xc5\x05\x4c\ \x62\xd2\xb0\x21\xc8\x46\x08\x00\x94\x0f\x7e\x4b\x59\xfa\xea\xb8\ \x4a\x37\x6c\x53\x6a\x68\x58\xb0\x29\x62\x94\x05\x4e\xdb\xe2\x22\ \x6f\xaf\x13\x4a\xdd\x52\xc8\x0a\x8e\x05\x83\x17\x75\xc6\x59\xc5\ \x7a\xa9\x27\xd2\x31\xd6\xd3\x24\xaf\x99\x50\x62\x10\x54\xc7\xdf\ \xb3\xb1\xba\x92\x83\x8e\x55\x54\xac\xdf\xa3\x36\xc1\xcc\xc9\xf0\ \xf9\x87\xc9\x1b\xcb\x89\xcb\x47\x63\xc6\x6f\x92\x20\xe6\xe7\x63\ \x36\x5b\x9c\x66\x68\x5c\x89\x01\xb5\x31\x3e\x6e\xfb\x8f\xfa\x90\ \x5a\x82\xfa\x3f\xc2\xc3\x4c\x62\x4d\xac\x7c\x3e\xaf\xe9\xe7\x7f\ \x04\x43\x25\xf9\x9d\x0a\x85\xc9\x08\x4c\x0c\x21\x71\xee\x71\x6c\ \x1e\x4f\x3c\x9e\x21\xef\x9e\xc5\x8f\x6d\x28\x6d\xbd\xf4\xb4\x16\ \x00\xd5\x4d\xdd\x40\x9a\x3d\x57\x50\x69\xf2\x02\xf7\x57\xed\x33\ \x1e\xd4\x74\x49\x9d\x99\xb7\x78\xe1\x04\xe8\x5e\x36\xf7\xd9\x6e\ \xd1\xf9\x67\x9f\xd3\xf4\xb1\x1f\xab\xb4\x7c\x46\xd1\x01\x3f\x16\ \x66\xc2\xd5\x8c\x22\xe9\xb8\x42\xa9\xa8\x62\x03\x41\xf5\x6d\x75\ \xd4\xb3\xc9\x53\xcf\x96\x06\x02\x90\x4d\xd6\x1c\xd7\x47\x04\xf3\ \xb5\x36\x5c\xa0\x9c\x38\x1d\x67\xe1\x0a\x9d\x4c\xf7\xa5\x97\x5e\ \x3a\x72\x0d\x08\x3e\xf9\xe4\x93\x87\x79\x97\x56\x32\x37\x38\x94\ \x9d\x71\x04\x10\xc5\x0a\x8c\x09\x35\x25\xea\x7b\x29\x77\xf8\xa8\ \xe6\xc7\x0e\x61\xde\x79\x62\xef\x84\x8d\xd9\x96\xbc\x9a\x05\xb7\ \xfc\xe9\x63\xc4\xe6\x26\xd7\x3d\xcb\x7c\xc7\x05\x3a\x84\x50\xb8\ \x86\x20\xb0\x1e\x98\xb7\x66\xcf\x09\xc2\x24\xf5\xc1\xf4\x5e\xcd\ \xef\x7f\xc2\x6a\xd0\xab\x59\x90\x45\x08\x15\x18\x68\xd0\xf1\x09\ \x71\xef\x12\xe7\x2f\xe2\xe7\x30\x97\x48\x51\x7c\xf5\x70\x2d\x4e\ \xe1\x14\xa2\x90\xf1\x81\xfc\xed\x30\x58\x43\xf7\x35\xbf\x22\x4e\ \x00\x1c\x8b\xc9\x0b\x85\x08\xbb\xf4\x12\x4c\x94\x81\x30\xff\x69\ \xb6\x1b\x9d\xfc\x49\x10\xf4\xf8\x5c\x64\x33\xc3\xab\xd4\x04\xdb\ \x48\x15\x49\x66\x32\x4a\x50\xe2\xe6\xe9\xa8\xd8\x5c\xda\xe5\xe1\ \x0b\x35\xcd\x3d\xff\x14\xdd\x9d\x21\xc5\xfa\xfa\x55\x5d\x30\x66\ \x69\xea\xfd\x10\xe0\x35\xa7\x3a\x55\x57\x2d\x17\x31\xcc\xb6\xa3\ \x83\xc9\x0f\x60\x1e\x57\x41\x8a\x9c\x73\xad\xc9\xe3\x9b\x30\x58\ \x80\xa1\x79\x79\x95\x33\xb8\xd8\x51\xac\x62\x99\xe2\x86\x34\x35\ \xe0\xb4\xdc\x47\x02\xe9\x23\x58\x98\x41\xf5\x79\x70\x61\x49\xa1\ \xae\x1e\x1a\x17\x71\x14\x94\xa0\x59\x02\x40\xc3\xa4\x70\x51\xb1\ \x36\x61\x31\x6e\x1d\xed\x57\xc0\x8c\x0a\xd1\x05\x73\xf1\x27\x53\ \xaa\x74\xa5\x71\xdb\xf5\xca\xb6\x37\x66\xcd\xcf\xcf\x1f\x94\x94\ \xfd\xc9\x96\x58\x13\x9a\xc7\x0b\x9e\x05\x21\xad\x99\xf8\x31\x9d\ \xf4\x9a\x35\x0a\xa6\x52\xed\xa6\xa4\xd0\x9c\xa3\xfc\x49\x1a\x25\ \xfb\x9e\x46\x71\x86\x81\x32\x42\xb8\x00\xd3\x33\xaa\x2d\x2f\x81\ \x65\xa1\xab\xc2\x97\x07\xb5\xcd\x1f\x42\xe3\x6a\xa0\x41\x97\x89\ \x2e\xaa\x3a\xbf\x17\xac\xd8\x8b\xc6\x8f\x32\x4f\x56\x45\x84\x0b\ \xd6\xd8\x8c\xce\x41\x60\xe4\x06\x3c\x5f\x67\xfe\xf3\xcc\x3b\x4b\ \x68\x0e\xc2\x78\x44\x0e\xc2\xf6\x05\xad\x10\xf0\xeb\x2e\xe6\x8b\ \xf3\xbd\xdd\xaa\xc9\xe1\xf7\x65\x42\x78\x1d\xed\x93\x70\x05\x33\ \x19\xa5\xae\xdf\x2a\x5f\x3c\x66\x9b\x21\xa6\xd7\xc1\xde\x81\xc7\ \x84\x4a\xff\xa1\x9e\x60\xe9\x3b\xdf\xf9\xce\xf7\x30\x91\xaa\xc1\ \x02\x87\x50\x18\xe7\x0d\x4c\x64\x90\xb4\x36\x16\xb5\x21\x05\xb9\ \x80\xf2\xd2\xf2\xe1\x63\x5a\x3a\x31\x66\x72\x76\xa8\x26\x37\x3f\ \xa7\xe5\xb1\x7d\x2a\x4d\x2f\xb0\xc0\xa0\x01\x1c\x8b\x1d\x3c\x70\ \xd9\xfc\x1b\x90\xcf\xef\xa2\x4d\x63\xf6\x27\x08\xaf\x17\x44\xc5\ \xc5\xb1\xc9\x14\x49\x6d\x67\xc8\xeb\x0b\x71\xc1\x91\x15\x58\x85\ \x0c\xaf\x1b\x8c\x49\xf6\x0d\x12\x96\xbb\x15\x80\xe9\x96\x19\xc9\ \xb6\xcd\x85\xf6\x1d\x5f\x08\x0e\x18\x9b\x30\x8e\xe9\x8b\x42\xc8\ \x57\xc0\xfc\x3d\x08\xe4\x5f\x0e\xfa\xb4\xfa\xce\x3b\x55\x67\x1d\ \xed\x0d\x1d\xcb\xff\xf3\xab\x5f\x7d\x54\x92\x7b\x4d\x4f\x50\x2c\ \x85\xed\x25\x63\x48\xe8\x50\x3c\x1e\xbf\x85\x92\x51\x41\xd0\x33\ \x45\x27\x25\x4b\x77\x55\x24\x27\xcc\x62\x2b\xad\xdc\xb9\x3a\xfe\ \xba\x4f\x09\x5c\x21\x94\x4e\x09\x75\x63\xa2\x05\x15\xcf\x03\x82\ \xe5\x59\xe5\xa7\xd1\x98\x79\x3e\x81\x76\x22\x61\xae\xdb\x82\x04\ \x90\x42\x33\x69\xa8\x2f\x20\xc0\xc5\x76\x8b\xb9\x04\xb3\x2e\x89\ \x48\x85\x50\x9b\x27\xf5\xbe\x84\x15\xd4\x5a\xcf\xf8\x4d\x76\x88\ \x40\x8a\x97\x6b\x14\xdc\xa3\x6c\xdd\x11\x0d\xb5\xdc\xac\x0e\x55\ \xb8\x37\x8f\xd5\x2c\x04\x14\xc8\x13\x26\x11\x8c\x47\xdc\x0f\x6c\ \xda\xa0\x24\x2f\x6f\xe7\x0a\x79\xdb\x0d\x62\xd3\xc4\xe3\xf9\x62\ \x71\xca\x4a\xf2\x5a\x01\xd8\x93\xb3\x7b\xf7\xee\x7d\x84\xf6\xb8\ \xd9\xdc\xe8\x04\x89\x02\x49\x04\x50\xe4\xbd\xa0\x72\x79\x28\x67\ \xb5\x5a\x2b\x38\xca\x9d\x9e\xd7\x12\xe7\xfb\xf7\xec\x84\x11\x59\ \x8d\x37\x1d\x17\x01\xd5\x29\x54\xa6\x68\x5e\x56\x6c\x1c\x0f\x63\ \xce\x84\x22\x50\x1b\xad\x24\x73\x8a\x0f\x61\x5d\x32\x61\xcf\xb1\ \x59\x9c\xc7\xc2\xb2\x2f\x5f\xd2\xfc\xcb\x0d\x30\xc6\xa7\x64\x66\ \xb0\x53\x9e\xd8\x66\x4b\xad\x14\xc6\x5d\x7c\x8a\x90\x03\x78\x80\ \x26\x21\x02\xa1\x76\xf3\xf7\x10\x08\x2e\xa8\xb2\xd1\x08\xb8\x32\ \x8b\xf6\x97\x30\xff\x32\x18\x80\xdb\x9e\x25\xc3\xdc\xf0\xcf\xde\ \xad\xba\xcf\xe9\xec\x55\x74\xbf\xff\xdd\xef\x7e\x05\x26\x4b\xe2\ \x73\x8d\x00\x3a\x49\xd2\xfe\xfd\xfb\x1f\xc7\x0a\x5e\xd9\xbe\x7d\ \xfb\x36\xfa\x67\x0a\x00\x84\x5d\xbb\x76\x69\x79\x0e\xf3\x86\xa9\ \x26\xa4\x86\x30\x59\x72\x83\x53\xa7\xd4\xbd\x69\x2d\x0c\x46\xf0\ \xd7\x12\x3d\xfe\x57\xb4\x34\x0e\x63\x2d\x03\xb3\xa6\x7f\xfe\x99\ \xe7\x8c\x55\xab\x7b\xa3\xc7\xcb\x4d\x97\x4c\x2e\x88\xb5\xa0\x79\ \x00\x8b\x66\x08\x02\x80\xc9\x2c\xe9\x33\x9a\xf3\xc8\x00\x27\x5e\ \xdc\x7f\xe5\x0e\x26\xee\x97\x46\x76\x01\x8e\xfd\x54\x99\x7d\x30\ \x69\xe6\x75\x0a\x08\x1d\xa0\x2d\x92\x3c\x65\x6b\xf2\x2f\x32\xd7\ \x14\x82\xce\x05\x01\xbf\xa8\xf2\x7d\xdd\x8a\xdc\xb2\x5b\x29\xc0\ \x6f\x1e\xed\x9b\x8d\x1d\x67\x4e\x9f\x7e\xe2\x99\xa7\x9e\x3a\x20\ \x56\xff\x53\xdf\x0e\x77\xb2\x42\x5e\x8b\xf9\xb6\x6c\xd9\xf2\x16\ \x3a\xc5\x8e\x49\x8a\x82\x50\x9d\xee\x6a\x93\x56\xb7\x8c\x00\x6c\ \xda\xea\x90\xa2\xd6\xd0\x68\x17\x3e\x38\x21\x77\xf9\x15\xb0\xa0\ \x2c\x8c\x11\x80\x74\xac\x69\x63\xe1\x24\x55\x52\x7a\xb5\xa7\xde\ \x55\xae\x7a\x77\x05\x40\x72\x98\x08\xf9\xb0\x0e\x23\x00\x21\x08\ \xfc\xff\xac\xa7\xec\xb4\x0f\x30\x75\xae\x69\x3a\xe1\x5d\x60\x90\ \xa3\x44\xcc\x53\xa8\xa7\xfd\x72\xd4\xb6\xa1\x58\xc3\x32\xda\x9f\ \x02\x57\x26\xb9\xe7\x22\x20\x59\x00\x24\xfb\x07\x75\xaa\x2f\xa5\ \x1d\x0f\xfe\xa1\x6a\x91\x90\x49\x7a\x44\x92\x57\xfb\xc6\x23\x8f\ \x3c\x38\x7e\xf6\xec\x31\x33\xe5\xcf\x7a\x3d\xee\xb2\x0d\x75\x86\ \x77\x69\xdb\xd9\x6a\xb2\x26\x12\x8d\xb2\x80\x98\xc2\x50\x69\x6e\ \x16\x90\xa1\x2f\x8f\xd9\xa2\x3d\x00\xad\x81\xc4\x27\x15\x0c\x9d\ \xc5\xa5\x2b\x80\x95\x09\x18\xd4\x06\xa4\xa6\x80\x34\xcd\x89\xa6\ \xba\x60\xbe\x67\x65\x83\x66\x87\x0f\x40\x0d\x60\xbe\x41\x9b\x5b\ \xd8\xac\xa6\x2d\x80\xfa\x82\x47\xb2\xe3\x53\x69\xde\x0a\xa5\xa3\ \xfd\x4e\x25\x6b\x29\xc1\x5c\xb1\x3e\xb5\xdc\xad\xc1\x89\x3c\x37\ \xce\x50\xfa\xe2\xd1\xc1\x69\x7c\x3f\x6b\x36\x47\xf4\xea\x04\x09\ \xd2\xba\x7f\xf7\x51\x45\x79\xf9\xba\x48\x64\x9a\x9b\x9b\x63\x2f\ \xd3\xfe\xaf\xfd\xcd\xc3\x0f\x3f\x64\xf2\xb9\x9f\x77\x83\x44\x89\ \x0d\x88\xb3\xec\xb8\x7a\x07\x1b\x0c\xc2\x30\x6f\x22\x01\x42\x88\ \xab\x44\xf9\xe9\x00\x88\x04\x5d\x5b\x76\xc6\xd3\x15\x16\xd6\x80\ \x29\x07\x40\x74\x38\x86\xf1\x98\xc7\xf9\xa6\x52\x7d\x9e\xd2\xc3\ \x4d\xa5\xb7\xf8\x31\x5f\x7c\x33\x12\x82\xa2\x58\x40\xbc\x85\xe0\ \x4d\x59\x60\x13\x0c\xb9\xcb\x9e\x0a\x0b\x3e\xac\x47\xd7\x7e\x9a\ \xcc\xdb\x83\x10\x98\xd3\x66\x83\x26\xdd\x5d\xa0\xc4\x9d\x26\xde\ \xcf\x60\x55\xb9\x30\x80\x99\xd1\x59\xf2\xfd\xf0\xbb\xde\xae\x91\ \xb7\xbd\x55\xd9\x72\xc9\x68\xde\x00\xdf\xe4\x9f\xfd\xf1\x1f\x7f\ \x14\x0c\xb8\xe4\x32\xd3\xcf\x2b\x80\x06\x7e\x33\x07\x72\x3a\xec\ \xc8\xbc\xdd\xb8\x42\x10\x21\x18\x30\x0b\x43\x65\xfa\x73\xbe\x4a\ \x99\xa2\xa4\xa6\x44\x0f\x9d\xa3\x5e\x13\x8d\xa0\xa0\x6c\x46\x16\ \xee\xf6\x51\x2c\xf9\x14\x1d\xf6\xa3\x75\x3f\x11\xc1\x68\x3e\x0c\ \xf3\x09\xf0\x20\x45\x0c\xa7\x34\x05\xc5\x65\x30\xc0\xad\xdb\xf6\ \x99\x93\x6d\x08\x78\xa4\xd1\x69\x31\xe4\xca\x8f\x2d\x61\xa3\xcc\ \x99\x49\xca\xbe\x2d\xf2\x2d\xa2\xf1\x59\xfc\x7d\x0e\xca\x86\xb9\ \x9e\xd6\x85\x44\x46\xb9\x9b\x76\x6b\xcb\x07\xff\x40\x45\x22\xce\ \x2c\x9a\x27\xb3\x73\xbf\xfd\xcd\xbf\x7d\x60\xec\xd0\xa1\xa7\x8b\ \x92\xfb\x8b\x6e\x92\x32\xfb\xf4\xcf\xd0\x2e\x5f\xcb\x0b\xc5\x8d\ \xc6\x15\x82\x26\xb4\x25\x13\xb6\xf8\xa9\xd0\xc5\x4d\xc6\x4b\x8a\ \x67\xaa\x14\x44\x4d\x2b\x00\x27\xe0\x20\x04\x53\x81\xf9\x18\x61\ \x3a\x1c\xe0\xd8\x6a\x1d\x4a\xf2\x3d\x0d\xf3\x90\x2f\x81\x2a\x5a\ \x4d\x10\xe2\x9a\xb5\x82\x00\x56\x13\x2c\x21\x04\x62\x77\x35\x27\ \xce\x31\x9f\x98\xcb\x41\xd3\xe0\x45\x17\x00\x98\x89\xa0\xf1\x3a\ \xf9\xfd\x42\x58\x21\x28\x98\x37\xf9\x46\x5a\xe7\x48\x17\x67\xe8\ \x18\xed\x78\xe0\xe3\xaa\x04\xfc\x2d\xe6\xd9\xd4\xf1\xdc\xd3\xcf\ \xfc\xf9\xb7\xbe\xf6\x57\x7f\xce\x74\xc5\x7f\xcc\x2e\xb1\x26\x54\ \x38\x76\xec\xd8\x89\x15\x2b\x56\xec\x21\x22\x0c\x21\x04\x6b\x05\ \x81\x54\xca\x36\x29\x6b\xe5\x9c\x52\xdd\xe6\x5d\x5e\xcd\x34\x25\ \x21\x41\x7e\xcc\xd1\x6f\xb2\x33\x98\x07\x94\xc2\x31\x4c\x3e\xc1\ \xf7\x14\xe7\x93\x5c\x8f\x73\x53\xa8\x95\x83\xd9\x1e\xa3\x6b\xdd\ \xc9\x71\xc0\x93\x18\x7e\x5e\x47\x10\x29\x1f\x58\x40\x37\x0a\x0a\ \xd3\x0c\x49\x67\x82\x1a\xec\x0e\x28\x19\x20\x45\x07\xe8\x42\xf8\ \x7b\xa0\x4c\xc7\x38\xd8\xa3\x13\xfe\x08\x9a\xbf\x49\x3b\x3e\xfe\ \x31\x55\x10\xfa\x0c\xcc\xa3\x38\xb3\x9f\xe9\xd1\xbf\xfc\x93\x2f\ \x7c\xb2\x5b\x9a\x5b\xfe\x25\xf6\x09\x7a\x68\x69\xe1\xf8\xf1\xe3\ \x63\xbc\x36\xbf\x0d\x3c\xe8\x09\x1b\x50\x8c\xc7\xa1\x24\x05\xd3\ \xb0\xf2\x4b\xa0\x30\xd5\xa1\xdf\xd6\xf6\x08\x41\x62\x0c\x30\xfa\ \xa1\x90\x80\x3e\x04\x84\x20\xcc\xc8\x79\x35\xfc\x26\x77\x87\xcc\ \x66\xa7\x06\x63\x83\xb1\x2e\x51\x00\xc1\x36\xd6\xe4\x28\xe9\x49\ \x5d\x34\x63\xbb\x32\x01\xf5\x76\xc3\x3c\x05\x4f\x97\x2f\xac\x70\ \x93\x88\x54\x04\x43\xdc\x84\xaa\x80\xcd\x8b\x3c\x1f\x7d\xd7\xbb\ \xb4\xf9\x5f\xfd\x4b\x15\xb1\x94\xe9\x99\x19\xcb\xfc\xcb\x87\x0f\ \xbf\xf0\x97\x9f\xff\xc2\xbf\x49\x36\xea\x13\xe7\xe0\xe1\x97\xdd\ \x29\x4a\x16\xeb\xce\x8c\x8f\x8f\x1f\x23\x2a\x98\x04\xa9\x27\x1c\ \x89\xd8\x4c\xaf\x19\x89\x53\xa7\xaf\x22\xcb\x4a\xab\x9c\xaf\x90\ \x81\xd5\x2d\x53\x0c\xb6\x2a\x73\xaa\x50\x05\x43\x2e\x0b\xe0\x84\ \xd9\xa2\x2b\x15\xb0\x96\x62\x95\xe3\x0a\x54\x6b\x51\xc1\x05\xd8\ \x1a\x8c\xb8\x50\x09\xcc\x00\xe9\xa2\x50\x02\x9c\x48\xf9\xe8\x4d\ \x40\xa1\x26\xd6\x57\x8f\x23\xdb\x8c\x26\x7c\x51\x1d\x66\x0d\x9b\ \x1f\x7c\x50\x43\x77\xdd\xa1\x2c\x51\x69\x6a\x7a\xda\x00\x1e\xbb\ \x59\x0e\xbf\xf8\xb5\xbf\xf8\xef\xf7\x47\xf2\xd9\xf1\xb3\xac\xfd\ \x57\xb9\x59\x3a\x82\x05\xdc\xc4\xcf\x61\xfe\x94\x24\x69\x17\xdb\ \x68\x44\xe5\x68\x37\x48\x85\xca\x00\x62\x7e\x5e\xc5\xf1\x17\x15\ \x29\x8f\x29\x1d\x98\x57\xa8\x51\x6d\xed\x0a\x35\x8d\x55\xfe\xf9\ \x9a\x10\xff\x1c\x4b\x9d\xfd\x4e\xed\x37\xc4\xed\x1e\x23\x9e\xd4\ \x29\x67\xa1\x20\xc2\x0c\xa2\x6d\x46\x2f\x2c\x4c\x4e\x34\xc1\x34\ \x56\xa6\x17\x71\xd7\x5d\xda\xf8\x9e\x7b\xd5\xc0\x12\x17\xb3\xcb\ \x76\x57\x3a\x95\xac\x8e\x1c\x3c\xf4\xf8\x5f\x3f\xf4\x95\x8f\x77\ \x57\x4a\xa7\x8f\x4b\xee\x6b\xb1\x5d\x3e\x44\xc7\x68\x2b\x7b\x08\ \x3f\xc5\x6f\x05\x7e\x97\x5c\xc1\x61\x03\x92\x22\x21\x80\x09\x33\ \x8e\x19\x7f\xa6\xa7\x57\x3e\x7d\x08\x3f\x3d\xa5\x1e\x65\x11\x48\ \x49\x81\x6a\xc3\xee\x23\xf0\xd7\x01\x4b\x5b\x11\x43\xcd\x76\xba\ \x6b\x81\xc3\x69\x63\x82\x9f\xf3\x86\x60\xda\xe4\xfa\x68\xde\xa3\ \x08\xba\x58\x71\x75\xae\xe1\xd1\x97\xdc\xa3\x4d\xec\x47\x0e\xb2\ \x1b\x2d\x47\x42\xb6\x40\x92\xc3\xfe\x3f\xa3\xf9\xc6\x81\x7d\xfb\ \xfe\xc7\xf7\xfe\xfa\x6f\xfe\xeb\x48\xd3\xbb\x78\x04\x91\xbe\x96\ \x3f\x98\x08\x40\xc3\x3b\x77\xee\xfc\x83\x37\xbd\xe9\x4d\x0f\x12\ \x26\x53\xec\x20\x17\x20\xa9\xb0\xc9\xfd\x59\x68\xdc\x41\x61\xc5\ \x9c\x0a\xaf\x9e\x94\x26\xc7\x15\x9a\xbf\xa4\x1e\x9a\x1b\x09\xf2\ \xf6\x40\x89\xd4\xb5\x4a\xee\x6e\x84\xc0\x3f\xf1\x8c\x7c\x50\x20\ \x88\x79\x87\x60\x38\xa2\x1a\xe3\x54\xa9\xaa\x59\xee\xa9\x62\x69\ \x03\x6f\x78\x83\x46\xd8\x7d\xee\x74\xa5\xf1\xa0\xaa\x96\xb2\x59\ \x9b\xe1\x4d\x63\xf6\x67\xcf\x9c\x99\x7b\xe6\xc9\x1f\xfc\xa7\xa3\ \xcf\x3d\xff\xcd\x95\xd4\x73\x07\x25\xef\xf5\xf8\xc9\x8c\x03\xa5\ \xf9\xdc\x7a\xc7\x1d\x77\x7c\x82\xd7\xcd\x6f\xc6\x25\x7c\x84\x4b\ \xc5\x63\x31\xbb\x83\x3b\x2c\x29\xee\x0f\x28\xe6\x43\xb3\xe4\xe3\ \x45\x4c\xb4\x3a\x35\xa9\xe6\xec\x8c\x7c\x30\xa0\x82\x79\x77\x50\ \xb7\x55\x5e\xc3\x54\x85\xe1\x88\x5c\x00\xd6\x4b\x53\xe3\x0f\xf4\ \xab\x7f\xcb\x56\xf5\x6e\xdd\x22\x1f\x6e\x46\xd9\xa0\x3c\x6e\x96\ \xe3\x99\x2c\xcf\xd2\xd4\x10\xd9\xaa\xcb\xa6\xcd\xbf\xfb\xc1\xf7\ \x1f\xfd\x6f\xde\xe2\xe2\xd1\xf5\xf2\x2a\x3f\x92\x9a\xaf\xf7\x8f\ \xa6\x82\xd0\x8a\x0d\x1b\x36\xdc\x73\xe3\x8d\x37\xde\xbf\x7e\xfd\ \xfa\x1b\x00\x4a\xb3\xc9\xda\x6e\x47\x09\xe3\x1a\x21\x63\x15\x50\ \x14\x0d\x47\x8c\x60\x10\x4a\xc0\x74\x6b\x3b\x11\x83\x63\x87\xeb\ \xe2\x9a\x82\x41\x46\xbf\x5c\x47\xb6\x86\x2f\x03\x6e\x14\x26\x2a\ \x96\x4a\xc8\xab\xd0\xc9\xeb\xbd\xd3\xe3\xe3\x2f\x1c\xdc\xf7\xe2\ \x97\xce\x1d\x1d\x7b\x22\xd3\x6c\x2c\x8d\x4b\x8d\x5f\xe7\xcf\xe6\ \x1c\x28\x02\x0d\xaf\x5b\xbb\xf6\x2d\x3b\x76\xee\xfc\x17\xb8\xc5\ \x6e\x04\x11\xc2\x42\xac\x20\x00\x4f\x11\x3d\x14\x0c\xc0\x3c\xcc\ \xf2\xfb\x20\x2c\x3f\x00\x01\x78\x68\x9f\xff\xd9\xa4\xa8\xe1\x79\ \x96\xea\x00\x62\x0d\xe6\xcb\x30\x6f\x18\xe7\x17\xa5\x26\xa7\x2f\ \x4f\x9c\x3f\xff\xdc\xe1\xfd\x07\xbe\x7a\xe1\xd4\xf8\xd3\x51\xcf\ \x9d\x0f\x49\xb5\x73\xbf\x41\x3f\x9c\x74\xa0\x30\xec\xf4\x26\x62\ \xb1\x2d\xdb\x77\xee\x7c\xc7\xc8\xe8\xe8\xef\x80\x0f\x1b\x32\xec\ \xd4\x64\x07\xea\xdf\x0b\x02\x4d\x07\x10\x46\xe7\x5d\x9d\xda\xbb\ \x37\x08\xb7\xb6\x75\x45\x35\x6a\x4b\xd8\xa5\xc5\xc5\xc2\xfc\xdc\ \xdc\x31\x36\x6b\x3e\x79\xe4\xc5\x17\xff\x4f\xad\x54\x79\x35\xe8\ \xd5\x97\x03\xa6\x60\x93\x9a\xbf\xa9\x3f\x9d\x75\xd4\x2a\x0d\xa2\ \xb0\xd7\x8d\x81\x0f\xaf\xdd\xb0\xfe\xc6\x15\xc3\xc3\xd7\x03\x94\ \xab\x12\xc9\xd4\xca\x70\x24\x9c\xa6\xf1\x8a\x57\x04\xc3\xdc\x6c\ \x18\xaf\xd0\xb2\x2a\xc1\xfc\x32\x6d\xab\x0b\xec\x4e\x3f\x37\x39\ \x31\x71\xf8\xec\xa9\xf1\x83\x5c\x9f\xa6\xfa\xcb\x8a\x3e\xd1\xb2\ \xe4\xfd\x36\xfe\x78\x9a\xba\x0f\xb7\x97\xc8\xf2\x15\x91\x15\x8c\ \xc3\xe8\x84\x9a\x9c\xc7\xfc\x3d\x47\xb8\x3d\x90\xc8\xf5\x32\x9b\ \x54\xcb\xa0\x80\xcd\x08\x0c\xd7\xaf\xf5\x8f\xa8\x9d\xdf\xb0\x5f\ \xad\x37\xf5\x3a\x7f\xfe\x1f\x5f\xbc\xdd\xe6\x1a\x53\x0c\xc2\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x13\x09\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\ \x1b\xaf\x01\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ \xd7\x09\x17\x17\x15\x19\x49\x86\x70\x41\x00\x00\x12\x96\x49\x44\ \x41\x54\x78\xda\xed\x5b\x09\x74\x5c\xd5\x79\xfe\xee\x7b\xb3\x6b\ \xb4\x5a\xb2\x25\xd9\x96\x64\x63\x6c\x83\x31\x36\xb6\x81\x00\xe1\ \xb0\x34\x14\xc2\xda\x94\x86\x04\xd2\x90\x42\x72\x20\x5d\x20\x14\ \x68\x08\x4b\x48\x09\x87\xda\xad\x73\x52\x52\x02\x24\xad\x7b\x20\ \xe4\xb0\x95\xcd\x40\xb0\x1b\x56\x2f\x80\xb1\x2d\xdb\xd8\xb2\x6c\ \x6c\xd9\xb2\x2c\xc9\x1a\x4b\x1a\x69\xf6\xe5\x6d\xf7\xf6\x7f\x33\ \xef\xf0\xf4\x3a\x9a\x19\x1b\x26\x3d\xc9\x69\x7e\x9d\x4f\xf7\xbd\ \xfb\xee\x9b\x79\xdf\x77\xff\xe5\xbe\x2b\x1b\x7f\xb4\x3f\xda\xff\ \x6f\x63\x38\x0e\x1b\xbb\x05\x75\x52\xed\xf4\x8b\x5d\x33\x97\x5c\ \x06\xb7\xef\x3c\xa1\xa4\x3c\xd0\xb3\xc3\x42\xcd\x0c\x71\x35\x15\ \x12\x4a\x22\xc4\x53\xe3\x21\x91\x8d\x85\x84\xc0\x10\x80\x10\xe1\ \xe8\xd4\x9f\x43\xf9\x83\x16\x40\xfc\xd8\x7f\x95\x68\x5d\x76\x37\ \xe7\x58\xc6\xd3\x51\x99\x08\x42\x70\x01\xe1\x0e\x12\xaa\xc0\x65\ \x3f\x84\xec\x81\x60\x6e\x82\x0b\x90\x5c\x10\x82\x03\xdc\x00\xd7\ \xd2\x02\xba\x32\x2e\x0c\x6d\x48\xe8\x6a\x48\x68\x4a\x48\xe8\xd9\ \x10\x57\xd3\x24\x54\x7c\x48\x68\xd9\x90\x30\x85\x12\x08\x4d\x7f\ \x0c\x99\xdf\x3b\x01\xc4\x03\x9e\x3f\xc7\xf9\xf7\xbf\x88\xe6\x45\ \xcc\x24\x04\xae\x03\x26\x39\x43\x05\x32\x11\x80\xc4\x80\x9a\xcc\ \x43\xcf\x40\x68\x19\xf0\x6c\x82\x90\x02\x57\x92\xe0\xa6\x50\xb2\ \x0f\x5c\x48\x04\x53\x13\x4e\xd0\xc1\x75\x2d\x27\x14\x40\xd7\x0d\ \x03\x24\x0a\x41\x8d\x0a\xae\x87\x08\x43\xc2\xa0\x36\x07\x95\x04\ \x33\xa1\x0c\x09\x6e\x84\x00\x84\x3a\x1e\x47\xf2\xff\x4e\x80\xa7\ \x2e\xee\xc4\x99\xb7\x2c\x85\xb0\xc8\x73\x23\x07\xc7\xb9\x28\xd6\ \xa7\xe7\xa1\x98\xe2\x64\xed\x3e\xd3\x84\x00\x57\x33\xa4\xa3\x42\ \xc8\x82\x73\x0e\x03\x6e\x70\x12\xd6\x50\x32\x39\x01\x0d\x12\x52\ \xcf\xc4\x01\xba\x26\xcc\x1f\x6e\x80\x3c\x89\xa0\x27\x68\x60\x4e\ \x90\x1c\x04\x0f\x01\x3c\xc4\x64\x98\xd8\xd9\x71\x29\xba\xd9\xc5\ \x10\x95\x11\xe0\x85\x6b\x53\x58\x78\x6d\x20\x3f\xf3\x46\x09\x01\ \x9c\x62\x38\xc6\x8b\xdc\x35\x1b\xa2\xc8\x58\xf2\x1e\x40\x00\x14\ \x4e\x90\xdc\x80\xcb\x47\xf0\xe7\x3c\x46\xd7\x75\x18\x9a\x96\xf3\ \x20\x9d\x33\x12\x27\x09\x3d\x35\x06\x75\xa4\x07\x7a\xa2\x0f\xae\ \x00\x03\xf3\xe4\x6f\x37\x14\xf1\x3a\x35\xdf\xe8\x58\x81\x04\xca\ \x98\x0b\x65\x8d\xb9\x72\x0f\x97\x8b\x69\x82\x63\xc6\xb9\x89\x82\ \x63\xc7\x78\x61\x58\x2d\xb7\xfa\x8b\x8c\x35\x21\xc9\xf9\x3e\xcd\ \xf4\x96\xd4\xa7\xe2\x48\x34\xc6\x63\x0b\x95\x0f\x3f\xd9\x0b\xd4\ \xd7\x00\xb3\x2e\x85\xde\x34\x97\x9c\xec\x03\xe8\x43\xab\xc1\xb3\ \x06\xd4\x38\xae\xc8\x8c\x88\x55\xa2\x1b\x5f\x63\x0b\x50\xd2\x24\ \x94\x35\x0e\x88\x89\x04\x78\x01\x81\xa2\xd7\x45\x31\x91\x8a\x7c\ \xd6\xb1\x7e\xb6\x69\x5a\x1a\x48\x1c\x01\x0e\xbf\x0f\xd7\xbe\x35\ \xa8\x5a\xba\x02\x9e\xe9\xcb\x00\x96\x1f\x0a\xce\xbe\xda\xf3\x38\ \x4e\x00\x3e\xaf\x00\x42\x4c\x70\xdd\x22\x33\x69\x79\x44\xd9\x87\ \xe7\xe5\xbd\x80\x50\xfe\xb3\xed\x6b\x79\x11\x0e\xbc\x09\xac\xbd\ \x13\x7a\x66\x16\x52\x43\x02\xe9\x61\x01\x35\x29\x98\xa1\x62\x49\ \x25\x04\x28\x7c\x38\xce\x8b\xcc\x6c\x31\x61\x8e\x91\x38\x2f\x15\ \x5a\x93\x08\x13\x27\xf2\xe9\x31\xe4\xec\x93\xd5\x30\x12\x5e\xa4\ \x8f\x9a\xe4\xf3\xb7\x42\xc0\x5f\x81\x1c\x20\x0a\xc9\xd8\x84\x4a\ \x92\x71\x1e\x97\x0a\x25\x5e\x46\x9c\x42\xf1\x6c\xf2\xf6\x44\x31\ \xdd\x2c\xaf\xd6\x23\xc3\xb2\xcf\x2d\x40\xa1\xdb\x15\x78\x41\xb1\ \xd8\x75\x1e\x17\x0f\x95\xc2\x44\x59\xc6\xc3\xe2\x83\x44\x3e\x8c\ \x02\xe3\x1a\x84\xc5\xbc\x72\x02\x40\x14\xcd\xe8\x36\x81\xe3\x4d\ \x88\x45\xae\x17\x92\x2d\x1c\x1f\x1b\x70\x90\x77\x98\xa1\x43\xa0\ \xd2\x02\x08\x41\x30\x8e\x3d\xa3\x17\x86\x4a\xf9\x24\xc8\x8f\x31\ \x29\xc6\x4b\x90\x27\x13\xa6\x07\x4c\x9c\xb7\x0a\x09\xe0\x24\x5b\ \xbe\xd4\x95\x5f\x03\x94\xff\xac\x42\x0f\x8b\xf5\x03\xa9\x51\x94\ \x34\x43\xb7\x89\x57\x38\x04\x2c\x18\x05\x0f\x57\x9e\x4c\x91\x6b\ \x28\xa8\x26\xc5\x45\x8d\x1d\x2e\x4f\x1e\xc8\x2f\x93\xe1\x14\xa0\ \x12\x65\xd0\x41\xb6\x10\x45\x32\x36\x6c\xa2\xb9\x7e\x10\x98\x75\ \x0e\x6e\x9d\x13\x60\xf7\x4d\x9a\x10\xcb\xcf\xbc\x33\x09\x02\x36\ \x44\x25\x04\x40\xc9\x44\x35\xb9\x10\xb0\x88\xb1\x63\x24\x6e\xc2\ \x3e\xb6\xbf\x27\x6a\xce\xfc\x08\x8e\xd5\x04\xd7\x2d\xe2\x16\x2a\ \xe4\x01\x65\x56\x7a\x0e\x22\xc5\x88\x95\x12\xc3\xea\x73\x0a\x87\ \x58\x5f\x01\xf9\xb2\x66\x38\xca\x60\x25\x05\x28\x1f\xdb\x4e\x21\ \x9c\x64\x0a\x3d\xc2\x26\x6e\x0b\x64\x58\xe0\x40\x9c\xc8\x67\x88\ \xbc\x54\xe4\x7d\xb5\x74\x15\x70\xa0\xd2\x2b\xc1\x82\x38\xb7\x60\ \x93\x13\xff\xdb\x0b\x2c\x62\xc2\xe1\xe6\x36\x59\x82\xe3\x38\x7e\ \x88\xc8\x0f\x03\xb2\x35\x54\x58\xe0\x28\x67\xf6\x3a\xc0\xf6\x82\ \x0a\xaf\x04\x3d\x55\x40\xfd\x09\xf9\xa7\xd1\xd3\x40\x26\x0c\x24\ \x8f\x02\x5a\xd2\x99\xe8\xec\x58\x2e\x14\x88\x39\x12\xa3\x53\xa8\ \x78\x6f\x9e\xbc\x64\x3d\x3d\xb3\x45\xb0\xfd\xba\x74\x15\xb0\xcb\ \x60\xe5\xd6\x01\xb6\x08\xfe\x29\xc0\xdc\x4b\xe1\x34\x91\x17\x61\ \x6c\x2f\x10\xfa\x28\xe7\xbe\x85\xee\x4f\x10\x13\xfa\x84\xc3\xe5\ \xf3\x6d\xe2\x90\x93\xbc\x4d\xd6\xd9\xf2\x12\xcc\xac\x24\x58\xe9\ \x75\x80\x23\xbb\x17\x1a\x03\x82\x2d\x79\xb4\x5f\x98\x17\xe0\xe0\ \x6b\xc0\x48\xa7\x33\x1c\x18\x01\x36\x79\xb3\xb5\xc9\x9b\x33\x7f\ \xd4\x72\xfb\x32\x02\xc0\x1e\x53\x72\x1d\x20\x08\x15\x4d\x82\xb0\ \x50\xce\x6a\x3a\x80\xd3\x6e\x05\xce\xb8\x17\xa8\x9e\x3e\x21\xce\ \xed\x7c\x60\x9f\x5b\xe4\xb3\x16\x79\x09\xd4\x5a\x90\xca\x80\xa1\ \xf8\xcb\x90\xa8\x64\x15\xc0\x24\x19\xdf\x50\xca\xaf\x32\xea\xe7\ \x01\xe7\x2c\x07\x3a\x2e\x73\x84\x84\x0d\x93\xfc\x41\x22\x1f\xb2\ \x49\x95\x03\x2b\x2d\x82\x30\xf4\xca\x57\x01\x22\x6a\x27\xaa\x48\ \x0f\xb0\xee\x6e\x40\xe8\xf9\x73\x6f\x35\x10\x6c\x26\xb2\x27\x02\ \xd3\x96\xd1\x79\x7d\xc1\x76\x22\x4e\xba\x01\xa8\x9b\x03\xec\x5c\ \x09\x18\x9a\x95\x00\x09\x89\x03\x80\x62\x91\x17\x93\x00\x8e\x44\ \x68\x1b\xb7\xa7\xad\x20\x1c\xb8\xe6\x8c\x16\x51\xe9\x32\x88\x89\ \xe5\x4f\x07\xb2\x61\xc2\x30\x30\xba\x1d\xe8\x79\x16\x68\x5c\x04\ \xcc\xfe\x33\xa0\xba\x1d\x0e\x6b\x39\x17\xf0\x90\x58\x9d\x14\x16\ \x9a\x0a\x24\x7b\xec\x99\x17\x25\x92\x9c\x70\x10\x76\x92\x66\x13\ \x20\x9c\x1e\x90\xfb\x55\xb1\x10\x60\x02\xce\x9a\x3f\x59\x19\xb3\ \xb6\xba\x47\xb6\x00\x9b\x7f\x00\x7c\xb2\x8a\xba\xb2\x70\xd8\x94\ \xc5\xc0\x92\xfb\x81\x74\x9f\x49\xbe\x78\xcc\xdb\xfd\xc7\x17\x1a\ \xa6\xd9\x65\x90\x50\xa9\x24\x08\x51\x58\xd7\x6d\xf2\x85\xab\x3e\ \x53\x88\x81\x35\x24\xc4\x1d\x40\x6a\x10\x0e\x6b\x3a\x13\x38\xf5\ \xfb\x05\x64\xcb\x82\x4d\x1a\xff\xce\x7e\xf6\x3b\x5d\x09\x5a\x04\ \xfd\x8d\x40\xfb\x05\x80\xbb\x2a\x17\x6f\x48\x0f\x01\xf1\x83\xc0\ \x78\x17\x60\xa8\x13\x44\xa0\x36\x75\x18\xd8\x4a\x22\x2c\x79\x10\ \xa8\x99\x8b\x4f\x6d\xfe\xdf\x00\xa3\x1f\x00\x87\x9e\x01\x50\x26\ \xfe\x51\xc2\xf5\x25\x47\x9e\xc8\x83\xeb\xf6\xed\xa2\x32\xeb\x00\ \xe7\xcc\xfb\xea\x80\xd6\xb3\x60\xdb\x52\x02\xf2\x2b\xc1\xa1\x77\ \x80\xbe\xd5\x74\x1c\xb1\x17\x3b\x5a\x14\xd8\x7e\x17\x89\xf0\xcf\ \x4e\x11\xce\x7c\x04\x18\x79\xd7\xac\xfd\xc5\xe3\x9f\x17\xf5\x4f\ \x27\x69\xc9\x3e\x17\x10\x16\xf1\x8a\x87\x80\xed\xee\x93\x9a\x3b\ \x08\xb4\x5f\x05\x9c\xf5\x53\xa0\x71\xa9\xf3\xe5\x66\x7c\x2b\xb0\ \xfe\x72\x40\x8b\xd9\xe3\x3d\x0d\xa4\xdd\x4f\xca\xd7\x7c\x66\xb7\ \x36\x8a\x84\x06\x9b\xc4\xa1\x2a\x23\x80\x73\x25\x58\xd2\x3c\xf5\ \xc0\xe2\xfb\x80\xb6\x2b\xf2\x5e\x90\xd8\x07\x28\x47\x80\x54\x0f\ \xb0\xfd\x56\x38\xac\xfd\x5a\xa0\xe1\xb4\xcf\x50\xfb\x4b\xc2\xb1\ \x12\x14\xa2\x62\x02\x70\x0b\x02\x50\x62\x40\x78\x17\x30\xb2\x0d\ \x48\x0e\x4e\xf2\x2d\x0c\x98\xfb\x5d\xa0\xf1\x4c\x20\x3b\x68\x3f\ \x78\xff\x53\x74\xcf\x3b\x13\x86\x51\xe7\x29\xf7\x1d\x67\x22\x2c\ \x71\xcc\x9c\xc4\x05\x2a\x97\x03\xec\xfa\x3f\xbe\x17\xd8\x70\x1b\ \x00\xdd\x0a\x09\xeb\x05\xa9\xe3\x4a\x60\xc6\xc5\xce\xa5\xd9\xc2\ \x1f\x11\xe1\xdf\x02\x91\x4e\xfb\x41\x77\xdf\x05\x5c\xb8\xd5\x1e\ \xd7\x4a\x61\x13\x6c\x03\x92\xfd\xce\xd8\x67\x36\x0a\x63\xbd\x04\ \x80\xcf\xb6\x27\xf8\xe0\x7d\x37\x2d\xdc\xf2\xf6\x4f\xa5\xd2\x55\ \x80\xc0\x55\xe7\x92\x18\x84\x4c\x08\xd8\xfb\x18\xb0\xfd\x87\x80\ \x91\x99\xf0\xc9\x6e\xe0\x0b\xbf\x06\x5c\x2e\x7b\x16\xe3\xdb\x80\ \xd1\x89\x5e\x20\x03\xed\xdf\x2c\x3b\xf3\x4e\x14\xef\x17\xec\x33\ \xe6\x80\xb7\x37\xf7\xae\x7e\x6b\xc3\xbe\x5f\x90\x08\xac\x68\x0e\ \x28\xdc\xf3\x73\x2e\x90\xc6\x3a\x81\x0f\x6f\xb4\xfa\x2c\xab\x9e\ \x0f\xb4\x5d\xe7\x8c\xe3\xfe\x5f\xc2\x61\xd3\xaf\x2e\x41\xba\x4c\ \xdc\xa3\xe0\xdc\x0e\x83\xe3\xc9\x01\xe3\x8a\x9e\xed\xdc\x35\x38\ \x7f\xc7\xee\xc1\x7f\x25\x11\x4a\x6f\x89\x81\x3b\x84\xb0\x77\x6f\ \xf7\x00\x87\x9f\x03\xf6\xac\x84\xc3\xe6\xdd\xe5\x24\x37\xba\x06\ \x30\xd2\xf6\xf5\xda\xc5\x80\x7f\x6a\x01\xe9\xe3\x24\x6e\x0b\x20\ \x3e\x83\x07\x24\x33\x19\x43\x81\xfb\xce\xd7\xdf\xec\xba\xe6\x50\ \xff\xd8\x43\xc5\xdf\x06\x09\x81\x16\xe0\x8c\x1f\x03\x17\x3d\x4f\ \xed\x0a\x20\x38\x33\x4f\x3e\x3d\x80\x9c\xed\xa5\x9a\xaf\xc5\x27\ \x78\xc1\xc9\x40\xcd\x7c\x9b\x94\x20\xf2\xd1\x0f\x9d\x49\x73\xca\ \xd9\x85\xa4\x51\x36\xde\x0b\xc9\x33\x27\x71\x21\xb9\xe5\x63\x12\ \x20\x95\xc9\x1a\x29\xdd\xc8\x8e\x45\x92\xb7\x3c\xbb\x7a\xeb\x3d\ \x6b\x5f\x78\xf0\x9e\xc2\x3f\x8d\xf1\x7c\xe6\x5e\x72\x27\x50\x6f\ \x12\x72\x01\x75\xd4\x9e\xbe\xc2\x76\x7b\x86\xfc\xe2\xe7\xc8\xab\ \x70\xd8\xd4\x8b\x9d\x33\x1b\xdb\x0c\x87\xd5\x2e\x3a\x0e\xa2\x65\ \x44\x80\x05\xfa\xb5\xcb\x77\xfa\x2f\x96\x3f\x70\xeb\xeb\x8f\x3d\ \xfc\xc3\xef\xfc\xec\x27\xf7\x4e\x2f\x5a\x05\x32\x8a\xa2\x27\xd2\ \x19\xff\xf6\x4d\x9b\x5e\x5a\xba\x74\xe9\x6b\xcf\xbc\xbc\xf9\xa1\ \x0f\xff\x7b\xe5\xc8\xd9\x97\xfc\xc3\x2a\x47\x12\xac\x99\x0d\x54\ \xb5\xc0\x61\xee\x1a\xe0\xe4\xef\x01\xdb\xbf\x6f\xf7\x8d\x6e\x00\ \x3a\xbe\x39\xc1\x0b\x4e\x71\xba\x77\x66\x1f\x1c\x56\x75\xc2\xf1\ \x91\x47\x89\xbe\x09\x25\x70\xe3\xa6\x2e\xcf\x86\xa1\xfd\x97\x37\ \xd4\xd7\x5e\x3e\x73\x66\x8b\xf8\xea\xd5\x57\xec\x9a\x36\x6d\xda\ \x7b\x55\x55\x35\xeb\x33\x59\xf5\x83\x7f\x7b\xe4\xe7\xa3\x39\x01\ \x14\x4d\xe3\x14\x06\x7e\x90\x71\xce\xff\x76\x67\x77\xff\xb9\x2f\ \xbd\xb1\xed\x71\xca\x07\xc3\x38\xfc\xa4\x2d\x80\x96\x29\xb2\xf9\ \x71\x0a\x1c\x96\x19\x80\xc3\x7c\xcd\xce\x87\x56\x87\xe0\x30\x6f\ \x4b\x59\x82\xe5\xc9\x3b\x63\x9f\x83\x61\x6a\x9d\xf7\xad\xda\x54\ \xed\x02\x26\xb9\x5a\x87\x47\xa2\x6c\x6c\x3c\xb9\xa8\xb7\x6f\x68\ \x91\x2c\xcb\xb7\xa9\xaa\xca\xe7\xcc\x99\x73\x7b\x4e\x00\x5d\xd7\ \x59\x3a\x9b\x0d\x80\x6c\xc7\x8e\x1d\x83\x0b\x16\x2c\xf8\xbb\x35\ \x6f\xef\x7c\xba\x65\x5a\xed\x73\x27\x9d\x30\x53\x0e\x72\xc3\xda\ \xc1\xe9\x07\xd2\x47\x81\x40\x33\x1c\x96\x3c\x0c\xe7\x02\x5c\x86\ \xc3\x5c\xb5\xce\x35\xbf\x91\x82\xc3\xe4\x2a\x1c\x97\xb1\xc9\xfb\ \x46\xb2\x3e\xbc\x1f\xa9\xc3\xc1\x4c\x2d\x0e\x67\x6b\x30\x1e\x4b\ \x5f\xa4\xeb\x49\xc4\x62\x31\x28\xe4\xe5\x84\x7d\xc4\xb5\x95\x73\ \x5e\x6f\xf9\xe2\x2c\xf3\x17\xb8\x10\x8c\xf2\x40\x10\x96\x75\x77\ \x77\x3f\x63\x18\xc6\xd3\xff\xf9\xf4\xba\xc0\x6b\x91\xb9\x72\x5a\ \x78\x00\x6e\xfd\xe3\xc8\xf5\xb7\xe5\x57\x83\xb0\x2c\x3b\x0a\xec\ \x7c\xc8\x49\xb0\xaa\x03\x0e\xd3\xe3\x70\xee\xef\x7b\x50\x60\xf6\ \xfd\xc7\x65\xe3\x59\x37\x7e\xb5\xb7\x19\xd7\xbf\xbd\x00\xcb\xfb\ \xcf\xc5\x7b\xb1\x99\xd8\xdc\xaf\xe0\xc0\xde\x2e\xd4\x25\xba\x51\ \xa7\xf4\x3f\x5a\x53\x53\x73\xe1\xca\x95\x2b\x67\x90\x00\x4b\x67\ \xcf\x9e\xdd\x23\x49\x12\xac\x6f\x7a\xcb\x05\xb2\x80\xcf\xd3\x94\ \x55\x95\x46\x4c\x30\x12\xe0\x26\x55\x35\x4e\x5e\xfe\xd8\xda\xd3\ \x3c\xb7\x5c\x86\xcb\x9b\xfa\xe0\x33\x5f\x7b\x93\x7d\x24\xf5\x26\ \x60\xee\xd7\xf3\x1a\xf6\x3c\x01\xa8\x24\x82\x3c\xe1\xe1\x5b\x2e\ \x83\xc3\x52\xbd\x36\x79\x46\x90\xeb\xe1\x30\x6d\x1c\x10\xc7\x21\ \x82\x99\xe0\x46\xaa\xf0\xec\xee\xa9\xd8\x12\x9e\x06\x4d\xd7\x10\ \x8f\x8f\x43\x44\xdf\xc3\xe5\x73\x0d\xcc\x59\xe4\xc3\x89\xb3\xda\ \xe0\xad\x6d\xa6\x3c\x7d\x41\x5f\xfb\x95\xf7\x0c\x03\x10\x0f\x3f\ \xfc\x30\x23\x5b\x2c\x44\x2e\x6b\x5f\x4d\x78\xc3\x75\xcf\xdf\x5f\ \x83\xc7\xd6\xee\x6c\x4a\xa6\xd5\x16\xcb\x2d\x38\x01\x07\x0f\x1e\ \x4c\xb7\xb5\xb5\x7d\x25\x1a\x49\x6c\x5d\xf1\xcb\xdf\x36\xc9\x37\ \x7e\x11\x97\x64\x87\xe0\x96\x00\x16\xeb\x07\xdb\xfe\x2f\x80\x79\ \x2c\xe3\xd3\xed\x6c\xc6\xac\x87\xdf\xf9\x03\xe0\xc0\xa3\x66\xc9\ \xcc\x23\xfc\x2e\xc0\x27\xb8\xaf\x6f\x0e\x1c\xa6\x5a\x02\x38\x45\ \x98\xb4\x6f\xf3\x60\x10\xab\xb6\x35\x63\xd3\x61\x2f\xa2\xd1\x08\ \x62\x91\x8f\xf1\xa5\x39\x0a\x7e\x74\x9e\x84\xf3\x17\xce\x04\xab\ \x9b\x87\x3d\x83\x40\x64\xe8\x10\xa2\x07\x3b\x11\xee\xdd\x79\xf0\ \x9d\x70\xf3\x01\x00\x7c\xc5\x8a\x15\xcb\xc8\x1b\x3c\x24\xc0\xeb\ \x00\x72\xa5\xca\xd5\xd8\x58\x23\x65\x15\xad\xdf\xd0\x35\x0e\xa0\ \x86\x90\x26\x68\x04\x31\xbb\xbf\xff\x70\xf4\x84\xa6\xeb\x87\x8e\ \x8c\xac\x59\xf1\xe4\x26\x96\xb9\xfa\x6a\x9c\x6f\xbc\x08\x8f\xac\ \x41\x96\xcd\x4a\x48\xa0\x56\xa6\x96\x59\xe7\x8c\x13\xc2\x5d\x60\ \x11\x82\x9c\xaf\x9c\x29\x5d\xc6\xa1\xb1\x00\x8e\xc4\x3c\x18\x8a\ \x7a\x10\x7a\xf5\xbf\x10\xd3\xd7\x21\xcd\xa6\x23\x65\xd4\x01\x24\ \x6c\x2d\xef\x40\x8d\xcf\xc0\xd4\x6a\x0d\x73\x9b\x32\x58\x36\x23\ \x85\x29\x7e\x1d\xa6\x0d\x27\xdc\xd8\x70\xb0\x1a\x2f\x75\x4d\xc1\ \xc7\x83\x12\xc2\xe1\x30\x22\xe3\xe3\xf8\x8b\xa5\xc0\x03\x37\x07\ \x70\xe2\xbc\x2f\xe4\x12\xb1\x88\x1d\x81\x31\xb4\x1d\x91\x7d\x31\ \xa4\x14\x91\x4f\x37\x6e\xb7\x35\x45\x60\x2d\x2d\x2d\x17\x9b\xf9\ \x80\xec\x79\x58\xe6\xba\xfd\xde\x55\x1c\x5e\xff\x12\xa8\x59\x93\ \xfc\x14\x42\x15\x21\x46\xc8\x10\xf8\x99\xd3\x47\xd7\x6d\x3c\x5c\ \xf7\x60\x6f\xdf\x91\xfb\x1f\x7e\x49\x42\xf4\x4f\xaf\xc2\x32\x75\ \x35\x3c\x2e\x1d\x2e\x57\x9e\xbc\xcb\x12\x81\x13\xdb\x50\xda\x8b\ \xc1\xb8\x17\xfd\x51\x1f\x8e\x24\x83\xd8\x3f\xec\x42\x6f\x48\x43\ \x3a\x93\x45\x36\x9b\x85\xaa\x66\x20\x44\x1a\x3e\x5f\x06\x81\xc0\ \x28\x82\xf2\x18\x3c\x48\x23\x6f\x12\x09\xe4\x42\x46\xf7\xc0\xef\ \xaf\xc7\xec\x66\x2f\x3d\x5a\x35\x14\xe1\x43\x86\xee\x1f\x0a\x8d\ \x20\x3c\x36\x86\xa0\x17\x78\xed\x8e\x7a\x5c\xf2\x27\xe7\x03\xb5\ \x27\x43\x28\x29\x18\x07\xd7\xe6\x04\x10\x06\xc0\x49\x79\xc1\x04\ \x84\xe0\x74\xec\xca\x15\x5f\xf3\xbb\xeb\xeb\xeb\xaf\xef\xeb\xeb\ \xcb\x80\x6e\x77\xbe\x0d\x2a\xf4\xe9\x00\xb7\x50\x47\xf0\x13\xa2\ \x9b\x81\x44\xbb\x0e\x76\x61\x7b\xf4\xb9\xf7\x0e\xd7\xce\x3e\xd4\ \x37\xf0\x97\x4f\xbc\xc9\xb0\xff\xa4\xf3\x35\x79\x74\x4b\xca\x60\ \xae\xa0\xaf\xaa\xc6\xe5\xae\x9e\x82\x81\xa8\x84\x81\x31\x8e\x68\ \x3c\x8d\x54\x2a\x83\x44\x32\x8d\x80\x34\x88\x93\x5a\x75\x5c\xbb\ \x54\xc2\xbc\x19\x40\x5b\xb3\x84\xf6\xd6\x20\x9a\xbf\xf4\x22\x24\ \x33\x51\xba\x48\xf3\x9d\x37\x83\x99\x9b\x26\xba\x02\x28\x49\x30\ \x35\x85\xa7\xd6\xeb\xb8\xf1\x3f\x52\x18\x19\xe1\x85\xc9\x9e\x01\ \xab\x6f\x0b\xe0\xbc\x2b\xbe\x05\xe1\x69\x82\x48\x0e\x43\xdb\xf7\ \x12\x90\x49\x12\x61\x19\x0c\xc8\x91\xe7\xd6\x96\x92\x90\x68\xa6\ \x00\xf6\xca\x2b\xaf\xdc\x10\x08\x04\x66\x47\xa3\xd1\x55\x20\x5e\ \xc5\x0a\x8a\x8b\x10\x24\x34\x10\xbc\x84\x64\x73\x10\x89\xf3\xe7\ \x81\x35\x04\x51\xfb\x9b\xfd\x0d\x77\x29\xdc\xfd\xdd\xd6\xd6\x56\ \xf4\xf7\xf7\xa1\x2a\xe0\x05\x37\x34\x84\x86\x23\x30\x0c\x8e\x69\ \xb5\x14\x87\xf3\x25\x9c\x3b\x8f\xe1\x82\xa5\x4d\x68\x9f\x3d\x8b\ \x2a\x5c\x13\x98\xbf\x01\xcc\x5b\x0b\xe6\x0e\x82\x41\x03\xb8\x92\ \x03\x33\xb2\x10\x6a\x14\x2c\x3d\x08\xa4\x87\x73\xdb\xec\x4c\xcb\ \xe2\xd0\x51\x81\xb3\x97\xd7\x62\x24\x1c\x01\x59\x6e\xc6\x3b\x1a\ \x25\xec\x09\x01\xa7\xb5\x09\x7c\xf0\xb3\x0b\x20\xd1\xeb\x37\x4f\ \x47\xa0\xed\x79\x06\x22\x9b\xb4\x37\xaa\x75\x81\x4d\x07\x38\x14\ \x8d\x83\x09\xae\x27\x1b\x16\x2f\x7c\xba\xa7\x4e\x27\xf2\x5b\x3e\ \xfa\xe8\x23\xcf\xc0\xc0\xc0\xa9\x00\x7a\x8b\xed\x07\xe8\x84\x38\ \x41\xb5\x44\xa8\x1d\x4e\x22\xf0\x7a\x17\xa2\x27\x35\x23\x7c\xde\ \xac\xc8\x9d\xef\xf6\x35\xb3\xde\xde\xde\x9b\xcd\x58\x22\x6f\xb4\ \x66\x85\xe1\x9c\x39\xae\xc8\xbd\x5f\x9f\xe5\x9f\xb5\xe8\x42\x6f\ \xb0\x75\x21\x73\xfb\x82\x48\x0b\x05\xc4\x90\xa0\x10\x31\x82\xaa\ \xd0\x61\x14\x3c\xd9\x9f\xdb\x2c\x91\x94\x10\x24\x3d\x01\x99\x09\ \xc8\x42\x40\x12\x66\xcb\xd0\x3d\x5c\x0d\x0e\x39\x37\xdb\x37\x9e\ \x03\x7c\xeb\x6c\x50\x68\x00\x7f\xfd\x42\x2d\x66\x34\x24\x10\x97\ \xdb\xe0\x4a\x2b\x48\xed\x5a\x0d\x91\xce\xd0\x7d\x66\xfc\x09\x08\ \x9d\x23\x95\x11\x54\x1a\x01\xb3\x27\x65\xf8\x1e\x79\x64\x7d\xba\ \xba\x75\x7a\xfd\xbf\xf7\xf4\xf4\xd4\x11\xf9\x1b\x4c\xf2\xe5\x36\ \x44\xb8\x15\xff\x23\x04\x45\x00\x8d\x29\x15\x53\x3b\xfb\x11\xdb\ \xd6\x2f\xc6\x5b\x1b\x95\xef\x69\x9a\x36\x04\xe0\xdb\x84\x36\x02\ \xbc\x6e\xb9\x77\xd9\x89\x35\xf7\xb6\x5f\xf9\xe8\x75\x35\x53\x5a\ \xda\x54\x25\x2d\xa5\x33\x09\xb7\xa6\xa6\x5d\x4a\x72\x14\xa3\xfd\ \xbd\x99\x70\xff\xc7\x6e\x23\xbe\xbf\x5a\x36\xe2\xbe\x80\x57\x54\ \x79\x3d\xc2\x13\xf0\x08\x29\xe0\x61\xb9\xca\xe2\x22\xb8\x19\xc0\ \x0d\xe0\xdd\x81\x39\x48\x24\xba\x30\xb3\x1e\x5b\x82\x6e\xec\x79\ \x6d\x07\x6a\x3d\x2e\x51\x27\x04\x3f\xef\x70\x18\xfa\xc7\x3d\x11\ \xc9\x88\xbf\x2a\xf3\x78\x04\x01\xb7\xcc\x3c\x4c\x80\x71\x01\x45\ \x15\x62\xdf\x30\xd4\xa3\x09\x36\x7a\x28\xea\xde\xf8\xe1\xa0\xdf\ \x35\xeb\xc4\xa6\xd5\x54\xd1\x9a\xf7\xee\xdd\x7b\x37\x80\x5f\x1d\ \xeb\x8e\x90\xb0\xbc\x60\xdc\x6a\x1b\x09\x0d\x02\x08\x1c\x09\x8f\ \x87\x01\xac\x90\x65\xf9\x9f\x7c\x3e\xdf\xf6\x54\x2a\xb5\xd0\xe3\ \xf5\xbe\xdc\x71\xfa\xd5\xef\xcf\x3e\xe5\xec\xaf\x09\x2e\x06\x0c\ \x43\x53\xe2\x91\x70\xf7\xde\x1d\x1b\x77\x6f\xfc\xcd\x93\xa3\xaa\ \x9a\xf6\x41\x57\x7d\x86\x11\x0c\x08\xdd\x5b\x25\xb8\x56\x45\xa1\ \x13\x64\x42\xaf\x97\x99\xde\xe0\x96\x8c\xda\x6a\x9f\x41\x2d\x0f\ \xc6\xa4\x99\xf3\x3b\xfb\xa4\x2a\x55\x51\xe2\x0b\xe6\xe0\x0e\x83\ \x23\xab\xab\xf0\x65\x54\xe1\xf3\xbb\xb8\xa7\xfb\x88\xb1\x64\xcd\ \x3b\x9d\xcf\xca\x2e\xd6\x00\x78\x83\x0c\xc2\xc7\x60\xb8\x05\x87\ \x94\x48\xc3\x08\xa7\xb8\x72\x24\x2a\xbc\x9a\x67\xda\x17\x3b\xe6\ \xcc\x98\xd1\xd5\xd5\x95\x08\x85\x42\xf7\x00\x78\xf4\xb3\x6c\x89\ \x19\x84\x84\x25\xc2\x14\x0b\x33\x08\x11\xc3\x30\xc6\x1a\x1a\x1a\ \xb6\x64\x32\x99\x85\xfe\x40\x70\xd7\x57\x6e\xbc\x77\x9a\xcb\xed\ \x35\xb3\xed\xfb\x5d\xbb\xf7\xbc\xb1\xa3\x73\x6b\x94\x43\x97\x1a\ \x4f\xfa\x32\xe3\x5c\x65\xa4\x89\xc4\xf5\x2c\x33\xd4\xb4\xa4\x2b\ \x29\x49\x57\x93\x32\x65\x6f\x59\xa3\x96\x67\x53\xee\x31\x2d\xed\ \x19\x1c\x63\x0b\xdd\xcd\xcb\x1e\xdd\xd9\xf5\x3a\x24\x86\x07\x3b\ \xa6\x62\x9b\x00\x1d\x6a\x90\xb8\x4c\xe9\xc4\xa5\xde\x3e\x2c\xd8\ \x5b\x4f\xae\x1f\x9b\x75\xe1\xb2\x59\xcf\xb7\x34\xf8\xd3\xe3\xb1\ \xd4\xb4\xd1\x68\xfa\x84\x70\x4c\x9f\x6f\x48\xfe\x99\x9e\x40\x5d\ \xa3\xab\xc6\x1f\x8c\x86\xc3\xea\xce\xee\xf7\x5e\xd6\x75\x7d\x39\ \x80\x5d\x04\xed\xf3\xfc\xaf\x31\x66\x89\x55\x4b\x98\x6a\x95\xca\ \x24\xd5\xd5\x9b\xa8\x26\xdf\xd6\xdc\xdc\xfc\x0d\x7a\x87\x50\xd2\ \xe9\x74\xe2\x8d\x37\xde\xd8\x3d\xc9\x96\x86\x80\x05\xd3\x98\x10\ \x9c\xc3\xe0\x42\x37\xe8\x48\xe5\x86\x9a\x11\xdb\xb6\xed\xa8\x86\ \xb7\x7a\xed\xde\xbd\x9f\xcc\xeb\xec\xec\xdc\x0e\xe0\x4c\x82\xfe\ \x8f\x00\xd6\x2d\x06\x4b\x8d\x83\x45\x63\x90\x7b\x13\xec\x2c\xba\ \xf3\x79\xb7\xdb\xdd\xec\xf5\x7a\x55\x6a\x99\xcb\xe5\x72\x93\x81\ \xc8\x1a\xf1\x78\x7c\xbf\xa2\x28\x6b\x01\xfc\x5a\x08\xd1\x5d\x40\ \xbc\x9c\x07\x94\x08\x09\x8d\x10\x21\x28\x84\x26\xc2\x14\x55\x55\ \xe3\xe6\xba\x9a\xda\xa6\x97\xc9\xc8\x2b\x38\x00\x97\x53\x00\xe7\ \x9f\x3d\x18\x63\x1c\x8c\x41\xa2\x1f\x78\xdc\x02\xf0\xf1\x77\x37\ \x7c\xd4\xee\xf7\x57\x3d\x91\x88\xc6\xe6\x6d\xdb\xb6\x6d\x14\xc0\ \x35\xd6\x78\x99\x04\x90\xf0\x31\x64\xab\x2a\xd5\xe4\x77\x54\x70\ \x0b\xe5\xa1\xb3\x08\xb5\xd6\x73\x85\x09\xfb\x09\xa6\x70\x7d\xd6\ \x62\x4e\x54\x66\x57\xb8\x30\x24\x92\xd6\x97\x66\x69\xc6\x37\x92\ \x00\x4a\x22\x91\x38\xe3\xc0\x81\x03\xaf\x51\x79\xe4\x74\x2e\x13\ \x49\x13\x92\x55\x21\x72\xe4\xf3\x13\x2f\x0c\xab\x95\x48\x2c\xb1\ \x6e\xdd\xba\x36\xba\x7e\x3d\x2d\x4f\xbf\x73\xe8\xd0\x21\xff\xa6\ \x4d\x9b\xc6\xe9\xda\x5f\x01\xc8\x12\xda\x26\x7c\xa7\x36\xc1\x0b\ \x93\x84\xdd\x84\x4e\x42\x8a\x90\xb1\x26\x45\x2f\x47\xba\x74\x08\ \x1c\xff\x7d\x32\x21\xe0\xf1\x78\xbe\x4d\x1e\xb0\x9c\xc2\x60\xe5\ \xa9\xa7\x9e\xba\x9e\x92\xa3\x9b\x5c\x93\x51\x82\xe4\xe4\x9a\x3a\ \x09\xa2\x72\xce\x0d\x1a\x23\x28\x5f\xc8\xe3\xe3\xe3\x33\xfc\x7e\ \xff\x29\x34\xe6\x22\x6a\x97\x51\x82\x62\x94\xa1\x0d\xea\xff\x10\ \xc0\x2a\xc2\x51\x8b\x50\xc2\x2a\xc9\xb1\x1c\x51\x27\x41\x6e\x41\ \xe0\x73\x1a\xab\xc0\xfd\x26\xae\x63\x8c\x3d\x4c\xa4\x6a\xab\xaa\ \xaa\x86\x89\x58\x8a\xda\x0c\x09\x20\x3c\x79\xf3\xd1\xf5\x06\x42\ \x8d\x39\xfb\xe4\x39\x88\x44\x22\xc6\xd0\xd0\x50\x2f\x79\xc2\x06\ \x6b\x69\x3a\x60\x11\x4d\x12\xd2\x96\x08\x9a\x4d\xf6\x77\x63\x0c\ \x95\xb3\x2a\xc2\x97\x09\xa7\x13\xda\x2c\xc2\x75\x04\x37\xe7\x5c\ \xb2\x5e\x41\x23\x84\x83\x84\x6e\xc2\xfb\x84\x7e\x6b\xa6\x8d\x72\ \x7f\xd6\xfb\x03\x10\xa0\xf0\xf3\x1c\xff\x0a\xc0\xf9\x17\x56\x81\ \xdf\x13\xfb\x1f\x84\xaf\xe2\x02\x22\xe6\xe9\x93\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x10\ \x0f\xad\xca\x47\ \x00\x68\ \x00\x65\x00\x6c\x00\x70\x00\x2d\x00\x62\x00\x72\x00\x6f\x00\x77\x00\x73\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x08\x99\x64\x87\ \x00\x6b\ \x00\x63\x00\x68\x00\x61\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x01\xad\xab\x47\ \x00\x64\ \x00\x69\x00\x67\x00\x69\x00\x6b\x00\x61\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1a\ \x08\xdd\xe1\xa7\ \x00\x61\ \x00\x63\x00\x63\x00\x65\x00\x73\x00\x73\x00\x6f\x00\x72\x00\x69\x00\x65\x00\x73\x00\x2d\x00\x64\x00\x69\x00\x63\x00\x74\x00\x69\ \x00\x6f\x00\x6e\x00\x61\x00\x72\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0e\x95\x57\x87\ \x00\x6b\ \x00\x33\x00\x62\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0b\x34\x2d\xe7\ \x00\x61\ \x00\x6b\x00\x72\x00\x65\x00\x67\x00\x61\x00\x74\x00\x6f\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x01\ \x00\x00\x00\x40\x00\x00\x00\x00\x00\x01\x00\x00\x2e\x67\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x1b\x4c\ \x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x3b\x71\ \x00\x00\x00\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x70\xa9\ \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x50\x89\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/animation/stickman/0000755000076500000240000000000012536324426021361 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/animation/stickman/animations/0000755000076500000240000000000012536324426023523 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/animation/stickman/animations/chilling0000644000076500000240000001455412536324426025250 0ustar philstaff00000000000000ÿÿÿÿ@8LÊ?J$ÞÀb—2]ó@:%ÎEÀX° Ý †TÀ@Ã1Ê-çèÀNNÆ…/bØ@P ²Ä]ÀCšŽÊ>¬/À>ƒj±`;±@E5/n0\@2S™ËÅü@JÇžÓì˜ÀD~}ñ-~À`]Ë·ÖÞÕ@"¢ä7ZÀciáya˜G@Px ZúÄÀ[yn{ºÓw@<ŽU@8LËu|äÀb—ËFž@:ù ¡ÀX°CæÆÀ@Ã7)°­qÀNN )ø¯c@P ÷zuùÀCš£ÇÿŽçÀ>ƒ$Lj1@E5‚B˜#@2S¾5úñ@Jë†~©çÀD~sD±áQÀ`]ÂZUÇc@"¢ËiYPMÀcià¹2Þ@Px¹תÀ[yzf³yk@ƒ$Lj1@E5‚B˜#@2S¾5úñ@Jë†~©çÀD~sD±áQÀ`]ÂZUÇc@"¢ËiYPMÀcià¹2Þ@Px¹תÀ[yzf³yk@ƒ´6N‘@E5Q»@2SsH‚¸³@J¡ÞÌ‘ÀD~ˆÈ™ÌãÀ`]ÕŒâÔÖ@"¢þAs“³ÀciâCDi×@PxÕ°—±À[yb%íB@ƒ¸)h¬@E5Ræˆ @2Sq5V'¾@JŸ×³:dÀD~‰_ûÖ¦À`]ÖöÍ”@"¢ÿ§,§ÀciâṄ@Px˜ ËÀ[ya}¼À3@ƒ»S@E5TAŒô@2So§š^Õ@JžSæ ÀD~‰ÑLIìÀ`]ÖyáA@"£²ðe÷ÀciâV5¾=@PxiñPNÀ[y`ÿìËg@¡R@P 8äŒÀCšuÕæ¡\À>ƒ¾ýl@E5VÖ>¶@2SmžÜ{|@JœVsŽ{ÀD~Še›šÂÀ`]Öýhðj@"£eò€Àciâ`ÒÍ@Px-¢ SÀ[y`[\Ål@ƒÀ:¢›@E5V™nûÒ@2Sl÷óoY@J›³qÙ~ÀD~Š•"ÃÀ`]×'Ðÿ$@"£³jÀciâd9w@PxPñÔÀ[y`&§v+@-ÀX°&¡tåbÀ@Ã*¾HÉÀNNöï÷5Ö@P '!0sÀCšt¤QÑ À>ƒÃ Âô@E5Wå 4_@2Sk{Ç‘a@Jš@7}ÁÀD~‹\qÀ`]׈co@"£qÝÀciâkø.Œ@PxîWè9À[y_®«5"@ƒÃEŸM/@E5Wþ§ž³@2Sk^h/2@Jš#‰Ã"ÀD~‹ ¸^lÀ`]רÈF@"£•2©€Àciâl‘XÃ@Pxêò‰ªÀ[y_¥gà@ƒÃ޾C@E5X /êJ@2Sk7öo@J™þKŸÀD~‹©¿KÀ`]×™œqÀ@"£¯X2ÀciâmYÑ÷@Px怱…À[y_™FE=@Q ÀgŸ%É™Q@ijôt¡ê@aˆ öÑ@^ÜûW>e@`¡âãÎñ„@kê4xΑ,@8LÈÁ2äùÀb— .øÞ@:\fÆê ÀX°&©×2}À@Ã*³ÉßÀNN÷6“–@P $îQeÀCšt~u‘‘À>ƒÃ޾C@E5X /êJ@2Sk7öo@J™þKŸÀD~‹©¿KÀ`]×™œqÀ@"£¯X2ÀciâmYÑ÷@Px怱…À[y_™FE=@Q ÀgŸ%É™Q@ijôt¡ê@aˆ öÑ@^ÜûW>e@`¡âãÎñ„@kê4xΑ,@8LÈ¿Ïü<Àb— ¢7¼@:\›9”zÀX°&¯Lê—À@Ã*¬ô1cÀNN÷dš%@P #ÐÀCšteÍÿÐÀ>ƒÃâ¾%@E5XFµ³…@2Sk Ë ’@J™ÒàíBÀD~‹!;ðöÀ`]פÔ¯@"£ÌÂöÏÀciân@3@PxáežœÀ[y_‹WÀò@ƒÃÄ×Î @E5X8ÿi¦@2SkƒÁÐ@J™â:ZDÀD~‹ÂpôÀ`]× ÕçH@"£Â0#\Àciâmî%«@Pxã6ÛhÀ[y_M6@ƒÃΫÊT@E5X=?&@2SkXÖ,@J™Ý.ÀÀD~‹:÷´À`]×¢%à|@"£ũ߀Àciân Ÿ@PxâîÀ[y_Ž«ïò@ƒÃÛˆê)@E5XCgzG@2Sk•Iµ@J™Ö”2ÀD~‹ 'ËÀ`]ףݠ3@"£Ê6mÛÀciân,\7@PxáÕÅïÀ[y_Œ‰Çn@ïÀd|ð²Rœ$@Z˜< {U­ÀgŸ%ÊKŽ@ij÷#¶ö@aˆ ý@˜^@^ÜûZjPÌ@`¡âã»XÄ@kê4yÞ‘@8LȿݞÀb— ¢Çâ@:\™LYÏÀX°&¯’À@Ã*­4yyÀNN÷bß*¡@P #EïÀCštfµ×éÀ>ƒÃߨ4²@E5XEKoB@2Sk jhä@J™Ôvs6ÀD~‹ ŹEÀ`]פj‹z@"£Ë«tÀciân7©u@Pxá•¡ÛÀ[y_‹ÚÃ*@ƒÃëëXz@E5XJë Þ@2Sk÷áÚ@J™Î*í-ÀD~‹"›{ËÀ`]צ Çl@"£ÐÒ_ÀciânYH®@PxàÖéÆÀ[y_‰Ñý@Ž@*âÕŒTÖ@N\»ï±’fÀC¿û¦™K!À_…Ѝž%@ ãÍ_òhâÀcZŸwâby@`Öã¬Ì_À4¥¥H®Â@dã€k!'–ÀP #©ÃäÀI‰Ë[¾gÓ@Q&ó@Ò Á@0S=ì+Ëã@Uß¶‡ƒrÉÀePzyì@Z³]ýu»Àg¬#…L>Á@i¤PýÁ¾@a,€5@^²Øië™@`¢°r20H@kÛL´r4@9yæØ–u:ÀaÀ‡í@8ìÙÇQ·ÀW¸™› wÀBó‡œ •ÀKÈ/Ëo@N[{_¬À?kIŸï¨ÀAõ¿vÜ@GÁ°3>‡@)5éBào&@MË7m¦Ä½ÀCÂÒ1[ñ®À_‹ùeK³¹@ ò8êaµhÀc[%±)sD@`t°ñ¯‡À<+[ŸÕÌ:@_Ñÿ³´iÀTùŸr3ùÀIÓúW­ò„@QVæ0­6÷@0EzŽ×Uù@UÏÌ*-Àej0X<Ó@Z·>1ûÀ¼Àg­Z.Ì—»@iªÒvÏÆ@a'ý­©@^­ík$¹\@`¢¾šÿ@kÙ[x™™@:ºÜú]À`õÈAôæ@Aú»ôJÀUª&éìLðÀ;!LÆT?\ÀK[P |˜@PùË ®À7“KO;óXÀAAhø T@H ™…,@*do~ªp@OÕ¤&kàaÀCt‹±˜òÀ_äŽ|m@ Bå5º¾LÀcTdè¨^@aSHÄðÀ8‰×çËÄC@evn?¯ "ÀQe§Úª&uÀIæF‚Ð$¹@Q/gÜòõ@-pnáóËú@V¢‘à?Àehrrû%@Z·שÀ&Àg­Iø•"1@iªqíÅ/‰@`ýÖ=@^«†6ëÅ@`¢ÇV5Fé@kØ5OäÄR@:" ÀÈŒhÀazáqWâÐ@7ˆW+´'eÀVz’-$lÀBª/í›!4ÀJô¥…ïû@MÃÆ¬EyÀ= £Á³p¿ÀBýv8@H•SìTæ@$æ¼Lù´÷@NÌOâ€jNÀC{ n} ÀÀ_&›à-p@ W܆àÓìÀcU)G9³@`G nâ{åÀ=Žy³ÅØ@YôÙn£}ÊÀS´®‹¸æ-ÀJð²cs%@Q¹‰®NëÍ@+Ù,©Ð±p@V„çPÀe¾`ܹ‡K@ZÄšž& ²Àg°Óˆ›î @i¿JCQÂ@`Òp)–@Ä@^ž]íœA@`¢ä_¿ïQ@kÒÔõÚ@9“|WÀaí8Hö@9ÎÔ=OáÀWZy€ÑîÀAZ°[Ù„§ÀLkK¦Åg@O1yiÊÄÀ@r؇?JÛÀA03½m@G’ö_‡@,V·’LT@M̆"óbÀCíh†mñ÷À_×!IUO@!xÇÊÝ®3Àc`h7”}@UaFì·¼ÀXíÝŸÝ1ö@M4Õ]ÎsÀb“t‡ŒàÀI cC¾Ä@QˆÁkn@1ä¯dÒ«@U8r€µ¬Àe,RW8Ö@Z­D…1þÕÀgª(߇‘Ð@iš€ MI„@a,J’ d @^º’¸Õ2@`¢ŽyGõð@kÞR{Íÿv@9 ‡˜¸àìÀb.›ô š@8;™!WÀWÞvx uÀAÛÉÎÛLÀLýVkÄ@NÝcgèƒ6ÀAÃV’UoÌÀ@ç~üC‚@FŠWAÖÑ@-ÔbTàY@L'VÂÍ‹ÀBZðMZËæÀ`Ú G‰B1Àb˜[©ˆÃ:ÀH•O9}ð@PÌùßéÖ@3 Ô ^¯Ž@Tº„5AØÀe®mVZ;@Z§}~—Å´Àg§þ£Ú`i@i22à÷C@a;ªx·Á@^ÀGr^#¶@`¢uF„VÃ@kàxÕÌŒPyQt-x11-gpl-4.11.4/examples/animation/stickman/animations/dancing0000644000076500000240000000445412536324426025060 0ustar philstaff00000000000000ÿÿÿÿ À6Á1÷qÍÀbÄ1e–4À"Yu^?ðÀY€šé ÀGRÉ/zÀE)*g1y@Idä6ŒþÀP"qdå?Ë?É~F‚tA@Hâ|g§ò@Hu¸Úlä¬@CCŒ±c—öÀY”2×svó?øÑk,‚%À_‚¿ µ­@Jm‡@U2sª”ìwÀNIhæ•Ó@`åÞbl•À:»_©†~ÀhÊÛÜÝ6@S:tVQ@Pµoa\@NRX Ó mÀ8¾i44 ×@i>ª:NóÀ=ÿ©¥N§@rÀiÌ ²@?¢¯î²z£@f· ‡ö-@=®š@ß_ž£@`eTSÄ8q@@ ³„ŸÒœÀPö,•½Ÿ@O;°Q‘–?õ¶»L‰û§@R@MË@®À>EšvVû¬@fÃKœâË À=sµ;!2¶@q£—¼yß„@<Õø'bd@hkm i~@=µ7v±î@rw¦¦!Î_¿ãTùÑû–Àb9]H@baÀ¤@þ#AfÀWþžzZŒeÀQS‡/˜Ÿ/ÀP±§¿W@8M§9šÀ?•mjröMÀTE‹/WŽ'@AÑS«n÷ÀA$GÅ0›@J ª„ü Àa&Ú®Z¾ ÀG‡­1æVIÀeñ«¢qzÀUïŸ#&¿ý@D¤4I™´@B­Å9üÃÉ@TwcUÝU?Ò;{"jÖÀXÏÁµT@KÂbc«bÀ@ÛúF"‡‰@T dòš€*ÀDë)š/”I@dà65L~J;{™ý@p§Ê ªHÙ@9F¥2Fü@gÔÀl7ª@=“à0Õ æ@r+.Ú‘Ò¿×ç¡—9ÀÀb¼Õ¤8+3À+$¢÷¼:ÀYk9H-ÀPü"]˜ØàÀL;€F¯Ü@@?£á7¼|ÀG§3°Ö8ÀJŸËáH@F³¼ÆÎþÀNÇvÇ@Hýõ3~KÀ`bÐ7Ð>%À8¥úSüz}ÀdRŒŽÞðmÀQµ{ðã…!@RaŽ;ëÑÞ@#TrM~f¶@ZÆ0xe^ÀA„5­È„ÀPá<ïA–@QXA'§"@¤‹¥L@Ròâ¾”À:­ÛöàÍ)@gž¨n¤CÀ=¤ÊKF@r Î Ñ@=í¹{õŠ@hׯ֝1P@=´¦2³r @r­â=èØÀ4÷Jè17Àcç<×RnÀ2‡Î"TÀY•ŠÃɸÀQ5Éܰ߷ÀJSºªYém@?'ã!w¼ÀJG¦<'ÑÀF<('}r{@G¿Ì²›u÷@¾}E!‰@Gé+õi©zÀ^úäRâî=À ŸÃÅ*Àc-gÔhÙÕÀKæ÷ÆÓ²@VšðŠaÀ*ÞÜΙ†Â@]5â ‰ºÀOX•…„ÔÀKQBú+¥ï@R„4­6ß@.ºv¥±¸E@R9Iª0>À7¹o‡ýÐw@h>µ¹èÍŠÀ=ß/@zÈÐ@r^TÐ¥4D@=ýáRŠ@h¯ˆÿØü0@=´–áÉG@r™ÃíÀDŰÿøÀb×ÌÛQ7éÀ8p&?ÝÑÀYÓÊÑmfÀP›_ßT˜‚ÀG58Þ>YÑ@@:KÞ±^ÀN¨ãsÂÀ:ͤ<œ£J@H^éÈAJ@6£g\ßr@D¥Ô0»¾ÀXÈ¡R)¤@0Gáª1d>Àc]²éÌzâ@)é—[pª@XP oïÀ@€õ_U5Q@`ê&ÌÃbÀR|‡”TÍÀ@{™šX}N@R¼ùGtœÓ@B TK㇠@P!GPX%À5Ø EŒÝ@hûtBLPÀ>MŸ ®:Ë@r¹ÿ­’Z@=kø:þ[Ì@g·v ƒ+@=¯.$¥@r¹JƒZ6ÀV!{-'tÀ]÷r—ëÀEjÎKJYÀXk˜ÊÎ[ÀPy!í À>Õò\@ @8Ô,y{·ÀR§Þf°ªB?×µâ{‰¤Ê@Hƒ[3@F©Bp‚òü@::B¹…7)ÀTâÅ'Qj@BÑ{*¡Àa ‹#zÀ@3GšI‚æ@W¬ë›y0úÀSå>@`C«Q¿‡ïÀ]ã\ió-‰@€t`¹ê@R¾t -@PP›â¥ºN@F)’ØëQ²À2g¹_Ë™@hÔÌŸc/!À>ygC[@r¡¯-†è@C8T9‰_ö@dÚRè¾½@>ªeÚ³ÙÏ@pªRô™ÿ PyQt-x11-gpl-4.11.4/examples/animation/stickman/animations/dead0000644000076500000240000000041412536324426024342 0ustar philstaff00000000000000ÿÿÿÿÀruмJ~;@n¨:vÌJOÀnÄÛŠ@m‘•J¯qÀiLþPlwn@rAõ)£DÊÀgÑ»kfôü@h|A«'ðÀY AðÖ)I@qrhx``„ÀWŽK6^‹o@l° ÎÅ"Àpõ˧x•@qDNzP…ŸÀtrfZ®@qñäö~Àd.W[ãol@pS^[jzÀ`-É5&¯Ð@rñ„¶ðØ®ÀS !-d[³@r@ —¿UÀQ ÏH<@kѨ*ßb@Dw{ì@oüeii@a!ò2¡ØÙ@qA%DШ@LˆçN»ë¸@l{ä(z @b‡Œ«µ•ñ@pÔKLƒPyQt-x11-gpl-4.11.4/examples/animation/stickman/animations/jumping0000644000076500000240000000243412536324426025122 0ustar philstaff00000000000000ÿÿÿÿÀbÀÀYÀIÀI@IÀIÀ9@I@9@IÀYÀ_@@I@Y@_@@IÀA€@RÀ@A€@RÀÀ9@iÀ>@rÀ@9@i@>@rÀÀ<‰xïdAùÀfÙèá}À1ã$n5KÀ`¾¨Ë£˜èÀK&œÝ¶ÎÀRUó^šÌ@E\ú›}ÀXcBMȪÀ_Á²Òm@1÷/Ù@l@EVQì®}î@(¾:.j6ÀUŽ?†6DÀ$}âåV]ŽÀ]8å°cV2@B?+±3æ«@G'u²ÿáÀe€iÉEä@F¥‹:l§¨Àl¦sÿ¼À#»µµQ}@F$'Þ7®e@M4Ê €ú@;d½!_€À7éV—Y @e/†´MÀ<µµÅZÕ0@pÍÀ;ïÖ@CÎ834Ý@bìºqb@?^r%@oe:MíÀÙÀ<‰¸§ë©ÀfÚ S1À1áŒðºßuÀ`¾Ñ¦dC‚ÀK&ˆ’Ê¿ÀRV”ª0]r@E]RmWœÙÀXbÌ`tþTÀi¤ _Ï@1 ÐÐbí@ETÃEîÒÌ@#Ó8Öi(ÀUŽqn1À$‚ÛyÃnÀ]8ŠÇÊt@B>P3@G'U²j¥-Àe>¨@F¥ýfg#ÀlΪBFÀ#9Œ•¥@F&àµ4^^@M4­IA^@;_ù(K¦bÀ7êl“ü¦³@eì°{¨üÀ<µþÒ»óK@pÎm7^}@CÎÌG&Â@bës€:‹¯@?^â·®_¶@od‘,&Ê!À80kºÜÀdë¾ô™ò›À£0Û¶À^JŸ€ï¸ÀHöŒ}é½òÀP¨~&[m@HÏzY¡$ÅÀS 5 ´»À/ j5—Ó~@>ˆ {Á´/@A TQ.~@9Éž÷²ØÆÀUþÆ#°O%À`=f’çÀ]ºÎ^*T%@CÄ$Ob@X ÎKÙ"áÀ6íÞ´@,s@ZÑNïÄk@?ܼ¥˜À7ê5¦fÿ@L.-(†@GI£Õâð@HÝoöðhÀ8Á2)dû[@f·êa^±WÀ=ELïoP@qœS€Kd @BŒ˜U6H*@eصyöƒ‰@=¦ÃTI+˜@q)ê~]Ã@1Â`ˆ‹NÀh<ìßÉ\/@ZƒÊÉÅÀb'6´›R`ÀH`£Æt´ÀY9CÒù{K@IU¦;‹±ÉÀVˆ»3ÜkÀAS³œ…ÿ%?óp„íé›@.¾°HRy@_‰Û[EÀÀPÀ΢ÃåDÀe&œ@í ÀT¢rÞ/HÉÀkÝΞV³@UÜ6i´niÀ=½/ðNq×@Z9 à¹!Ç@7^çæFÀG¤t¸¯·î@8þª-—~@6O˜É8}@@C f0RÜÀ?Óðˇ8@b®SÞŒÀ=%„’ÒE@o0¼X¼ß@AD¦À )Ø@cªjz Ù4@>«˜ ÙBW@pæ/ PyQt-x11-gpl-4.11.4/examples/animation/stickman/stickman.py0000755000076500000240000004702212536324426023554 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) import math from PyQt4 import QtCore, QtGui try: import stickman_rc3 except ImportError: import stickman_rc2 class Node(QtGui.QGraphicsObject): positionChanged = QtCore.pyqtSignal() def __init__(self, pos, parent=None): super(Node, self).__init__(parent) self.m_dragging = False self.setPos(pos) self.setFlag(QtGui.QGraphicsItem.ItemSendsGeometryChanges) def boundingRect(self): return QtCore.QRectF(-6.0, -6.0, 12.0, 12.0) def paint(self, painter, option, widget): painter.setPen(QtCore.Qt.white) painter.drawEllipse(QtCore.QPointF(0.0, 0.0), 5.0, 5.0) def itemChange(self, change, value): if change == QtGui.QGraphicsItem.ItemPositionChange: self.positionChanged.emit() return super(Node, self).itemChange(change, value) def mousePressEvent(self, event): self.m_dragging = True def mouseMoveEvent(self, event): if self.m_dragging: self.setPos(self.mapToParent(event.pos())) def mouseReleaseEvent(self, event): self.m_dragging = False Coords = ( # Head: 0 (0.0, -150.0), # Body pentagon, top->bottom, left->right: 1 - 5 (0.0, -100.0), (-50.0, -50.0), (50.0, -50.0), (-25.0, 50.0), (25.0, 50.0), # Right arm: 6 - 7 (-100.0, 0.0), (-125.0, 50.0), # Left arm: 8 - 9 (100.0, 0.0), (125.0, 50.0), # Lower body: 10 - 11 (-35.0, 75.0), (35.0, 75.0), # Right leg: 12 - 13 (-25.0, 200.0), (-30.0, 300.0), # Left leg: 14 - 15 (25.0, 200.0), (30.0, 300.0)) Bones = ( # Neck. (0, 1), # Body. (1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5), # Right arm. (2, 6), (6, 7), # Left arm. (3, 8), (8, 9), # Lower body. (4, 10), (4, 11), (5, 10), (5, 11), (10, 11), # Right leg. (10, 12), (12, 13), # Left leg. (11, 14), (14, 15)) class StickMan(QtGui.QGraphicsObject): def __init__(self): super(StickMan, self).__init__() self.m_sticks = True self.m_isDead = False self.m_pixmap = QtGui.QPixmap('images/head.png') self.m_penColor = QtGui.QColor(QtCore.Qt.white) self.m_fillColor = QtGui.QColor(QtCore.Qt.black) # Set up start position of limbs. self.m_nodes = [] for x, y in Coords: node = Node(QtCore.QPointF(x, y), self) node.positionChanged.connect(self.childPositionChanged) self.m_nodes.append(node) self.m_perfectBoneLengths = [] for n1, n2 in Bones: node1 = self.m_nodes[n1] node2 = self.m_nodes[n2] dist = node1.pos() - node2.pos() self.m_perfectBoneLengths.append(math.hypot(dist.x(), dist.y())) self.startTimer(10) def childPositionChanged(self): self.prepareGeometryChange() def setDrawSticks(self, on): self.m_sticks = on for node in self.m_nodes: node.setVisible(on) def drawSticks(self): return self.m_sticks def boundingRect(self): # Account for head radius of 50.0 plus pen which is 5.0. return self.childrenBoundingRect().adjusted(-55.0, -55.0, 55.0, 55.0) def nodeCount(self): return len(self.m_nodes) def node(self, idx): if idx >= 0 and idx < len(self.m_nodes): return self.m_nodes[idx] return None def timerEvent(self, e): self.update() def stabilize(self): threshold = 0.001 for i, (n1, n2) in enumerate(Bones): node1 = self.m_nodes[n1] node2 = self.m_nodes[n2] pos1 = node1.pos() pos2 = node2.pos() dist = pos1 - pos2 length = math.hypot(dist.x(), dist.y()) diff = (length - self.m_perfectBoneLengths[i]) / length p = dist * (0.5 * diff) if p.x() > threshold and p.y() > threshold: pos1 -= p pos2 += p node1.setPos(pos1) node2.setPos(pos2) def posFor(self, idx): return self.m_nodes[idx].pos() @QtCore.pyqtProperty(QtGui.QColor) def penColor(self): return QtGui.QColor(self.m_penColor) @penColor.setter def penColor(self, color): self.m_penColor = QtGui.QColor(color) @QtCore.pyqtProperty(QtGui.QColor) def fillColor(self): return QtGui.QColor(self.m_fillColor) @fillColor.setter def fillColor(self, color): self.m_fillColor = QtGui.QColor(color) @QtCore.pyqtProperty(bool) def isDead(self): return self.m_isDead @isDead.setter def isDead(self, isDead): self.m_isDead = isDead def paint(self, painter, option, widget): self.stabilize() if self.m_sticks: painter.setPen(QtCore.Qt.white) for n1, n2 in Bones: node1 = self.m_nodes[n1] node2 = self.m_nodes[n2] painter.drawLine(node1.pos(), node2.pos()) else: # First bone is neck and will be used for head. path = QtGui.QPainterPath() path.moveTo(self.posFor(0)) path.lineTo(self.posFor(1)) # Right arm. path.lineTo(self.posFor(2)) path.lineTo(self.posFor(6)) path.lineTo(self.posFor(7)) # Left arm. path.moveTo(self.posFor(3)) path.lineTo(self.posFor(8)) path.lineTo(self.posFor(9)) # Body. path.moveTo(self.posFor(2)) path.lineTo(self.posFor(4)) path.lineTo(self.posFor(10)) path.lineTo(self.posFor(11)) path.lineTo(self.posFor(5)) path.lineTo(self.posFor(3)) path.lineTo(self.posFor(1)) # Right leg. path.moveTo(self.posFor(10)) path.lineTo(self.posFor(12)) path.lineTo(self.posFor(13)) # Left leg. path.moveTo(self.posFor(11)) path.lineTo(self.posFor(14)) path.lineTo(self.posFor(15)) painter.setPen(QtGui.QPen(self.m_penColor, 5.0, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap)) painter.drawPath(path) n1, n2 = Bones[0] node1 = self.m_nodes[n1] node2 = self.m_nodes[n2] dist = node2.pos() - node1.pos() sinAngle = dist.x() / math.hypot(dist.x(), dist.y()) angle = math.degrees(math.asin(sinAngle)) headPos = node1.pos() painter.translate(headPos) painter.rotate(-angle) painter.setBrush(self.m_fillColor) painter.drawEllipse(QtCore.QPointF(0, 0), 50.0, 50.0) painter.setBrush(self.m_penColor) painter.setPen(QtGui.QPen(self.m_penColor, 2.5, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap)) # Eyes. if self.m_isDead: painter.drawLine(-30.0, -30.0, -20.0, -20.0) painter.drawLine(-20.0, -30.0, -30.0, -20.0) painter.drawLine(20.0, -30.0, 30.0, -20.0) painter.drawLine(30.0, -30.0, 20.0, -20.0) else: painter.drawChord(QtCore.QRectF(-30.0, -30.0, 25.0, 70.0), 30.0 * 16, 120.0 * 16) painter.drawChord(QtCore.QRectF(5.0, -30.0, 25.0, 70.0), 30.0 * 16, 120.0 * 16) # Mouth. if self.m_isDead: painter.drawLine(-28.0, 2.0, 29.0, 2.0) else: painter.setBrush(QtGui.QColor(128, 0, 64 )) painter.drawChord(QtCore.QRectF(-28.0, 2.0 - 55.0 / 2.0, 57.0, 55.0), 0.0, -180.0 * 16) # Pupils. if not self.m_isDead: painter.setPen(QtGui.QPen(self.m_fillColor, 1.0, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap)) painter.setBrush(self.m_fillColor) painter.drawEllipse(QtCore.QPointF(-12.0, -25.0), 5.0, 5.0) painter.drawEllipse(QtCore.QPointF(22.0, -25.0), 5.0, 5.0) class GraphicsView(QtGui.QGraphicsView): keyPressed = QtCore.pyqtSignal(int) def keyPressEvent(self, e): if e.key() == QtCore.Qt.Key_Escape: self.close() self.keyPressed.emit(QtCore.Qt.Key(e.key())) class Frame(object): def __init__(self): self.m_nodePositions = [] def nodeCount(self): return len(self.m_nodePositions) def setNodeCount(self, nodeCount): while nodeCount > len(self.m_nodePositions): self.m_nodePositions.append(QtCore.QPointF()) while nodeCount < len(self.m_nodePositions): self.m_nodePositions.pop() def nodePos(self, idx): return QtCore.QPointF(self.m_nodePositions[idx]) def setNodePos(self, idx, pos): self.m_nodePositions[idx] = QtCore.QPointF(pos) class Animation(object): def __init__(self): self.m_currentFrame = 0 self.m_frames = [Frame()] self.m_name = '' def setTotalFrames(self, totalFrames): while len(self.m_frames) < totalFrames: self.m_frames.append(Frame()) while totalFrames < len(self.m_frames): self.m_frames.pop() def totalFrames(self): return len(self.m_frames) def setCurrentFrame(self, currentFrame): self.m_currentFrame = max(min(currentFrame, self.totalFrames() - 1), 0) def currentFrame(self): return self.m_currentFrame def setNodeCount(self, nodeCount): frame = self.m_frames[self.m_currentFrame] frame.setNodeCount(nodeCount) def nodeCount(self): frame = self.m_frames[self.m_currentFrame] return frame.nodeCount() def setNodePos(self, idx, pos): frame = self.m_frames[self.m_currentFrame] frame.setNodePos(idx, pos) def nodePos(self, idx): frame = self.m_frames[self.m_currentFrame] return frame.nodePos(idx) def name(self): return self.m_name def setName(self, name): self.m_name = name def save(self, device): stream = QtCore.QDataStream(device) stream.writeQString(self.m_name) stream.writeInt(len(self.m_frames)) for frame in self.m_frames: stream.writeInt(frame.nodeCount()) for i in range(frame.nodeCount()): stream << frame.nodePos(i) def load(self, device): self.m_frames = [] stream = QtCore.QDataStream(device) self.m_name = stream.readQString() frameCount = stream.readInt() for i in range(frameCount): nodeCount = stream.readInt() frame = Frame() frame.setNodeCount(nodeCount) for j in range(nodeCount): pos = QtCore.QPointF() stream >> pos frame.setNodePos(j, pos) self.m_frames.append(frame) class KeyPressTransition(QtCore.QSignalTransition): def __init__(self, receiver, key, target=None): super(KeyPressTransition, self).__init__(receiver.keyPressed) self.m_key = key if target is not None: self.setTargetState(target) def eventTest(self, e): if super(KeyPressTransition, self).eventTest(e): key = e.arguments()[0] return key == self.m_key return False class LightningStrikesTransition(QtCore.QEventTransition): def __init__(self, target): super(LightningStrikesTransition, self).__init__() self.setEventSource(self) self.setEventType(QtCore.QEvent.Timer) self.setTargetState(target) QtCore.qsrand(QtCore.QDateTime.currentDateTime().toTime_t()) self.startTimer(1000) def eventTest(self, e): return (super(LightningStrikesTransition, self).eventTest(e) and (QtCore.qrand() % 50) == 0) class LifeCycle(object): def __init__(self, stickMan, keyReceiver): self.m_stickMan = stickMan self.m_keyReceiver = keyReceiver # Create animation group to be used for all transitions. self.m_animationGroup = QtCore.QParallelAnimationGroup() stickManNodeCount = self.m_stickMan.nodeCount() self._pas = [] for i in range(stickManNodeCount): pa = QtCore.QPropertyAnimation(self.m_stickMan.node(i), 'pos') self._pas.append(pa) self.m_animationGroup.addAnimation(pa) # Set up intial state graph. self.m_machine = QtCore.QStateMachine() self.m_machine.addDefaultAnimation(self.m_animationGroup) self.m_alive = QtCore.QState(self.m_machine) self.m_alive.setObjectName('alive') # Make it blink when lightning strikes before entering dead animation. lightningBlink = QtCore.QState(self.m_machine) lightningBlink.assignProperty(self.m_stickMan.scene(), 'backgroundBrush', QtCore.Qt.white) lightningBlink.assignProperty(self.m_stickMan, 'penColor', QtCore.Qt.black) lightningBlink.assignProperty(self.m_stickMan, 'fillColor', QtCore.Qt.white) lightningBlink.assignProperty(self.m_stickMan, 'isDead', True) timer = QtCore.QTimer(lightningBlink) timer.setSingleShot(True) timer.setInterval(100) lightningBlink.entered.connect(timer.start) lightningBlink.exited.connect(timer.stop) self.m_dead = QtCore.QState(self.m_machine) self.m_dead.assignProperty(self.m_stickMan.scene(), 'backgroundBrush', QtCore.Qt.black) self.m_dead.assignProperty(self.m_stickMan, 'penColor', QtCore.Qt.white) self.m_dead.assignProperty(self.m_stickMan, 'fillColor', QtCore.Qt.black) self.m_dead.setObjectName('dead') # Idle state (sets no properties). self.m_idle = QtCore.QState(self.m_alive) self.m_idle.setObjectName('idle') self.m_alive.setInitialState(self.m_idle) # Lightning strikes at random. self.m_alive.addTransition(LightningStrikesTransition(lightningBlink)) lightningBlink.addTransition(timer.timeout, self.m_dead) self.m_machine.setInitialState(self.m_alive) def setDeathAnimation(self, fileName): deathAnimation = self.makeState(self.m_dead, fileName) self.m_dead.setInitialState(deathAnimation) def start(self): self.m_machine.start() def addActivity(self, fileName, key): state = self.makeState(self.m_alive, fileName) self.m_alive.addTransition(KeyPressTransition(self.m_keyReceiver, key, state)) def makeState(self, parentState, animationFileName): topLevel = QtCore.QState(parentState) animation = Animation() file = QtCore.QFile(animationFileName) if file.open(QtCore.QIODevice.ReadOnly): animation.load(file) frameCount = animation.totalFrames() previousState = None for i in range(frameCount): animation.setCurrentFrame(i) frameState = QtCore.QState(topLevel) nodeCount = animation.nodeCount() for j in range(nodeCount): frameState.assignProperty(self.m_stickMan.node(j), 'pos', animation.nodePos(j)) frameState.setObjectName('frame %d' % i) if previousState is None: topLevel.setInitialState(frameState) else: previousState.addTransition(previousState.propertiesAssigned, frameState) previousState = frameState previousState.addTransition(previousState.propertiesAssigned, topLevel.initialState()) return topLevel if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) stickMan = StickMan() stickMan.setDrawSticks(False) textItem = QtGui.QGraphicsTextItem() textItem.setHtml("Stickman" "

" "Tell the stickman what to do!" "

" "

" "

  • Press J to make the stickman jump.
  • " "
  • Press D to make the stickman dance.
  • " "
  • Press C to make him chill out.
  • " "
  • When you are done, press Escape.
  • " "

    " "

    If he is unlucky, the stickman will get struck by lightning, and never jump, dance or chill out again." "

    ") w = textItem.boundingRect().width() stickManBoundingRect = stickMan.mapToScene(stickMan.boundingRect()).boundingRect() textItem.setPos(-w / 2.0, stickManBoundingRect.bottom() + 25.0) scene = QtGui.QGraphicsScene() scene.addItem(stickMan) scene.addItem(textItem) scene.setBackgroundBrush(QtCore.Qt.black) view = GraphicsView() view.setRenderHints(QtGui.QPainter.Antialiasing) view.setTransformationAnchor(QtGui.QGraphicsView.NoAnchor) view.setScene(scene) view.show() view.setFocus() # Make enough room in the scene for stickman to jump and die. sceneRect = scene.sceneRect() view.resize(sceneRect.width() + 100, sceneRect.height() + 100) view.setSceneRect(sceneRect) cycle = LifeCycle(stickMan, view) cycle.setDeathAnimation(':/animations/dead') cycle.addActivity(':/animations/jumping', QtCore.Qt.Key_J) cycle.addActivity(':/animations/dancing', QtCore.Qt.Key_D) cycle.addActivity(':/animations/chilling', QtCore.Qt.Key_C) cycle.start() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/animation/stickman/stickman.qrc0000644000076500000240000000031712536324426023702 0ustar philstaff00000000000000 animations/chilling animations/dancing animations/dead animations/jumping PyQt-x11-gpl-4.11.4/examples/animation/stickman/stickman_rc2.py0000644000076500000240000012666512536324426024332 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:18:27 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x05\x1c\ \xff\ \xff\xff\xff\x00\x00\x00\x05\x00\x00\x00\x10\x00\x00\x00\x00\x00\ \x00\x00\x00\xc0\x62\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\xc0\x59\x00\x00\x00\x00\x00\x00\xc0\x49\x00\x00\x00\ \x00\x00\x00\xc0\x49\x00\x00\x00\x00\x00\x00\x40\x49\x00\x00\x00\ \x00\x00\x00\xc0\x49\x00\x00\x00\x00\x00\x00\xc0\x39\x00\x00\x00\ \x00\x00\x00\x40\x49\x00\x00\x00\x00\x00\x00\x40\x39\x00\x00\x00\ \x00\x00\x00\x40\x49\x00\x00\x00\x00\x00\x00\xc0\x59\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x5f\x40\x00\x00\ \x00\x00\x00\x40\x49\x00\x00\x00\x00\x00\x00\x40\x59\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x5f\x40\x00\x00\ \x00\x00\x00\x40\x49\x00\x00\x00\x00\x00\x00\xc0\x41\x80\x00\x00\ \x00\x00\x00\x40\x52\xc0\x00\x00\x00\x00\x00\x40\x41\x80\x00\x00\ \x00\x00\x00\x40\x52\xc0\x00\x00\x00\x00\x00\xc0\x39\x00\x00\x00\ \x00\x00\x00\x40\x69\x00\x00\x00\x00\x00\x00\xc0\x3e\x00\x00\x00\ \x00\x00\x00\x40\x72\xc0\x00\x00\x00\x00\x00\x40\x39\x00\x00\x00\ \x00\x00\x00\x40\x69\x00\x00\x00\x00\x00\x00\x40\x3e\x00\x00\x00\ \x00\x00\x00\x40\x72\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x10\xc0\ \x3c\x89\x78\xef\x64\x41\xf9\xc0\x66\xd9\xe8\x90\xe1\x7d\x15\xc0\ \x31\xe3\x24\x6e\x1a\x35\x4b\xc0\x60\xbe\xa8\xcb\xa3\x98\xe8\xc0\ \x4b\x26\x9c\xdd\x08\xb6\xce\xc0\x52\x55\xf3\x5e\x1e\x9a\xcc\x40\ \x45\x5c\xfa\x9b\x0f\x7d\x05\xc0\x58\x63\x42\x06\x4d\xc8\xaa\xc0\ \x17\x5f\xc1\xb2\xd2\x1c\x6d\x40\x31\x9d\xf7\x2f\xd9\x40\x6c\x40\ \x45\x56\x51\xec\xae\x7d\xee\x40\x16\x28\xbe\x3a\x2e\x6a\x36\xc0\ \x55\x8e\x3f\x19\x86\x36\x44\xc0\x24\x7d\xe2\xe5\x56\x5d\x8e\xc0\ \x5d\x38\xe5\xb0\x63\x56\x32\x40\x42\x3f\x2b\xb1\x33\xe6\xab\x40\ \x47\x27\x75\x17\xb2\xff\xe1\xc0\x65\x05\x80\x69\xc9\x45\xe4\x40\ \x46\xa5\x8b\x3a\x6c\xa7\xa8\xc0\x6c\x02\x0f\xa6\x73\xff\xbc\xc0\ \x23\x07\xbb\xb5\xb5\x51\x7d\x40\x46\x24\x27\xde\x37\xae\x65\x40\ \x4d\x34\xca\x20\x80\xfa\x8f\x40\x3b\x64\xbd\x21\x5f\x80\x81\xc0\ \x37\xe9\x56\x97\x59\x09\x15\x40\x65\x1b\x2f\x86\xb4\x04\x4d\xc0\ \x3c\xb5\xb5\xc5\x5a\xd5\x30\x40\x70\xcd\xc0\x3b\x0e\xef\xd6\x40\ \x43\xce\x38\x01\x33\x34\xdd\x40\x62\xec\x1a\xba\x71\x62\x00\x40\ \x3f\x5e\x72\xef\x9e\x8c\x25\x40\x6f\x65\x3a\x4d\xed\xc0\xd9\x00\ \x00\x00\x10\xc0\x3c\x89\xb8\xa7\xeb\xa9\x01\xc0\x66\xda\x0d\x17\ \x53\x31\x17\xc0\x31\xe1\x8c\xf0\xba\xdf\x75\xc0\x60\xbe\xd1\xa6\ \x64\x43\x82\xc0\x4b\x26\x88\x07\x92\xca\xbf\xc0\x52\x56\x94\xaa\ \x30\x5d\x72\x40\x45\x5d\x52\x6d\x57\x9c\xd9\xc0\x58\x62\xcc\x60\ \x74\xfe\x54\xc0\x17\x69\xa4\x0b\x5f\xcf\x0e\x40\x31\xa0\xd0\x0e\ \xd0\x62\xed\x40\x45\x54\xc3\x45\xee\xd2\xcc\x40\x16\x23\xd3\x38\ \xd6\x69\x28\xc0\x55\x8e\x03\x71\x6e\x9d\x31\xc0\x24\x82\xdb\x79\ \xc3\x1b\x6e\xc0\x5d\x38\x8a\xc7\x14\xca\x74\x40\x42\x3e\x16\x8f\ \x10\x50\x33\x40\x47\x27\x55\xb2\x6a\xa5\x2d\xc0\x65\x05\x3e\xa8\ \x00\x01\x15\x40\x46\xa5\x8f\xfd\x66\x67\x23\xc0\x6c\x01\xce\x0e\ \xaa\x42\x46\xc0\x23\x05\x39\x8c\x95\xa5\x0f\x40\x46\x26\xe0\xb5\ \x34\x5e\x5e\x40\x4d\x34\xad\x03\x49\x41\x5e\x40\x3b\x5f\xf9\x28\ \x4b\xa6\x62\xc0\x37\xea\x6c\x93\xfc\xa6\xb3\x40\x65\x1b\xec\xb0\ \x7b\xa8\xfc\xc0\x3c\xb5\xfe\xd2\xbb\xf3\x4b\x40\x70\xce\x1f\x6d\ \x37\x5e\x7d\x40\x43\xce\xcc\x1c\x47\x26\xc2\x40\x62\xeb\x73\x80\ \x3a\x8b\xaf\x40\x3f\x5e\xe2\xb7\xae\x5f\xb6\x40\x6f\x64\x91\x2c\ \x26\xca\x21\x00\x00\x00\x10\xc0\x38\x01\x30\x6b\xba\xdc\x1b\xc0\ \x64\xeb\xbe\xf4\x99\xf2\x9b\xc0\x13\xa3\x04\x1c\x30\xdb\xb6\xc0\ \x5e\x4a\x12\x9f\x80\xef\xb8\xc0\x48\xf6\x8c\x7d\xe9\xbd\xf2\xc0\ \x50\xa8\x10\x7e\x26\x5b\x6d\x40\x48\xcf\x7a\x59\xa1\x24\xc5\xc0\ \x53\x09\x35\x0a\x19\xb4\xbb\xc0\x2f\x0b\x6a\x35\x97\xd3\x7e\x40\ \x3e\x88\x20\x7b\xc1\xb4\x2f\x40\x41\x20\x0b\x54\x51\x2e\x7e\x40\ \x39\xc9\x9e\xf7\xb2\xd8\xc6\xc0\x55\xfe\xc6\x23\xb0\x4f\x25\xc0\ \x1c\x1c\x60\x3d\x66\x92\xe7\xc0\x5d\xba\xce\x5e\x2a\x54\x25\x40\ \x43\xc4\x24\x4f\x00\x90\x62\x40\x58\x0b\xce\x4b\xd9\x22\xe1\xc0\ \x36\xed\xde\xb4\x40\x2c\x73\x40\x5a\xd1\x4e\xef\xc4\x03\x6b\x40\ \x3f\xdc\xbc\xa5\x13\x81\x98\xc0\x37\x1b\xea\x35\xa6\x66\xff\x40\ \x4c\x2e\x2d\x1e\x28\x01\x86\x40\x47\x49\xa3\x1a\xd5\xe2\xf0\x40\ \x48\xdd\x6f\xf6\xf0\x01\x68\xc0\x38\xc1\x32\x29\x64\xfb\x5b\x40\ \x66\xb7\xea\x61\x5e\xb1\x57\xc0\x3d\x45\x4c\x15\xef\x6f\x50\x40\ \x71\x9c\x53\x80\x4b\x64\x0c\x40\x42\x8c\x98\x55\x36\x48\x2a\x40\ \x65\xd8\xb5\x79\xf6\x83\x89\x40\x3d\xa6\xc3\x54\x49\x2b\x98\x40\ \x71\x29\xea\x7e\x10\x5d\xc3\x00\x00\x00\x10\x40\x31\xc2\x13\x60\ \x88\x8b\x4e\xc0\x68\x3c\xec\xdf\xc9\x5c\x2f\x40\x19\x5a\x83\xca\ \x1f\xc9\xc5\xc0\x62\x27\x36\xb4\x9b\x52\x60\xc0\x48\x60\x10\xa3\ \xc6\x74\xb4\xc0\x59\x39\x43\xd2\xf9\x7b\x4b\x40\x49\x55\xa6\x3b\ \x8b\xb1\xc9\xc0\x56\x88\xbb\x33\x01\xdc\x6b\xc0\x41\x53\xb3\x9c\ \x85\xff\x25\x3f\xf3\x70\x84\x8f\xed\xe9\x9b\x40\x2e\x1c\xbe\xb0\ \x48\x52\x79\x40\x1a\x5f\x89\xdb\x5b\x45\xc0\xc0\x50\xc0\xce\xa2\ \xc3\xe5\x44\xc0\x65\x26\x9c\x40\xed\xa0\x1a\xc0\x54\xa2\x72\xde\ \x2f\x48\xc9\xc0\x6b\xdd\x16\xce\x9e\x56\xb3\x40\x55\xdc\x36\x69\ \xb4\x6e\x69\xc0\x3d\xbd\x2f\xf0\x4e\x71\xd7\x40\x5a\x39\x0b\xe0\ \xb9\x21\xc7\x40\x37\x5e\x81\xe7\xe6\x46\x06\xc0\x47\xa4\x74\xb8\ \xaf\xb7\xee\x40\x38\xfe\xaa\x2d\x0e\x97\x7e\x40\x36\x4f\x1c\x98\ \xc9\x38\x7d\x40\x40\x43\x0a\x66\x30\x52\xdc\xc0\x3f\xd3\xf0\xcb\ \x87\x9d\x38\x40\x62\xae\x04\x10\x53\xde\x8c\xc0\x3d\x00\x25\x84\ \x92\xd2\x45\x40\x6f\x30\xbc\x58\x1f\xbc\xdf\x40\x41\x44\xa6\xc0\ \x0b\x29\xd8\x40\x63\xaa\x6a\x7a\x0d\xd9\x34\x40\x3e\xab\x98\x09\ \xd9\x42\x57\x40\x70\x16\x03\x15\xe6\x2f\x0a\ \x00\x00\x01\x0c\ \xff\ \xff\xff\xff\x00\x00\x00\x01\x00\x00\x00\x10\xc0\x72\x75\xd0\xbc\ \x4a\x7e\x3b\x40\x6e\xa8\x3a\x76\xcc\x4a\x4f\xc0\x6e\xc4\x15\x8d\ \xdb\x8a\x81\x40\x6d\x91\x95\x4a\xaf\x90\x71\xc0\x69\x4c\xfe\x50\ \x6c\x77\x6e\x40\x72\x41\xf5\x29\xa3\x44\xca\xc0\x67\xd1\xbb\x6b\ \x66\xf4\xfc\x40\x68\x1a\x7c\x41\xab\x27\xf0\xc0\x59\x09\x41\xf0\ \xd6\x29\x49\x40\x71\x72\x68\x78\x60\x60\x84\xc0\x57\x8e\x4b\x36\ \x5e\x8b\x6f\x40\x6c\xb0\x0b\xce\x10\xc5\x22\xc0\x70\xf5\x12\xcb\ \xa7\x78\x95\x40\x71\x44\x4e\x7a\x50\x85\x9f\xc0\x74\x72\x66\x5a\ \x1e\x1b\xae\x40\x71\x17\xf1\xe4\xf6\x7f\x7e\xc0\x64\x2e\x57\x5b\ \xe3\x6f\x6c\x40\x70\x14\x53\x5e\x5b\x6a\x7a\xc0\x60\x2d\xc9\x35\ \x26\xaf\xd0\x40\x72\xf1\x84\xb6\xf0\xd8\xae\xc0\x53\x20\x21\x2d\ \x64\x5b\xb3\x40\x72\x40\xa0\x97\xbf\x55\x8f\xc0\x51\x0d\xcf\x0f\ \x1b\x48\x3c\x40\x6b\xd1\x05\xa8\x2a\xdf\x62\x40\x44\x77\x7b\xec\ \x05\x04\x13\x40\x6f\x01\xfc\x1b\x65\x69\x69\x40\x61\x21\xf2\x32\ \xa1\xd8\xd9\x40\x71\x41\x25\x0f\x44\xd0\xa8\x40\x4c\x88\xe7\x4e\ \xbb\xeb\xb8\x40\x6c\x7b\xe4\x15\x28\x7a\x0a\x40\x62\x87\x8c\xab\ \xb5\x95\xf1\x40\x70\xd4\x4b\x4c\x03\x9d\x83\ \x00\x00\x19\x6c\ \xff\ \xff\xff\xff\x00\x00\x00\x19\x00\x00\x00\x10\x40\x38\x4c\xca\x3f\ \x4a\x24\xde\xc0\x62\x97\x1b\x32\x01\x5d\xf3\x40\x3a\x05\x25\x01\ \xce\x14\x45\xc0\x58\xb0\x20\xdd\x20\x86\x54\xc0\x40\xc3\x31\xca\ \x2d\xe7\xe8\xc0\x4e\x4e\xc6\x85\x2f\x62\xd8\x40\x50\x0a\x03\xb2\ \x01\xc4\x5d\xc0\x43\x9a\x8e\xca\x3e\xac\x2f\xc0\x3e\x83\x6a\xb1\ \x60\x3b\xb1\x40\x45\x35\x2f\x6e\x30\x18\x5c\x40\x32\x53\x99\xcb\ \xc5\x8d\xfc\x40\x4a\x8f\xc7\x9e\xd3\xec\x98\xc0\x44\x7e\x7d\xc3\ \xb1\x2d\x7e\xc0\x60\x5d\xcb\xb7\xd6\xde\xd5\x40\x22\xa2\xe4\x37\ \x5a\x12\x12\xc0\x63\x69\xe1\x79\x61\x98\x47\x40\x50\x78\x0c\x5a\ \xfa\x18\xc4\xc0\x5b\x79\x6e\x7b\xba\xd3\x77\x40\x3c\x78\x0c\xfd\ \x1b\x24\x7a\xc0\x62\xee\x0e\xa0\x41\x5e\x50\xc0\x46\xd1\x51\x1c\ \xc7\x57\xf6\x40\x50\x2c\x59\x00\x05\x07\x96\x40\x36\xbd\x5a\xba\ \x55\x33\x3c\x40\x53\xeb\xd5\xdc\x95\x84\x02\xc0\x64\x7c\xe6\xa7\ \x82\xd4\x73\x40\x5a\x98\x3a\x9d\x99\xd2\x25\xc0\x67\x9f\x24\xfc\ \xa8\x8b\x88\x40\x69\x6a\x0c\xdc\x04\x07\xad\x40\x61\x88\x18\xa6\ \x50\x33\xdf\x40\x5e\xdc\xf7\xac\x43\x1d\x93\x40\x60\xa1\xe2\xfa\ \x78\x8e\x27\x40\x6b\xea\x33\x3e\x3c\x8e\x55\x00\x00\x00\x10\x40\ \x38\x4c\xcb\x75\x7c\x04\xe4\xc0\x62\x97\x16\xcb\x46\x05\x9e\x40\ \x3a\x04\xf9\x90\xa0\xa1\x90\xc0\x58\xb0\x1c\x43\xe6\x16\xc6\xc0\ \x40\xc3\x37\x29\xb0\xad\x71\xc0\x4e\x4e\xa0\x29\xf8\xaf\x63\x40\ \x50\x0a\x04\xf7\x7a\x75\xf9\xc0\x43\x9a\xa3\xc7\xff\x8e\xe7\xc0\ \x3e\x83\x24\xc7\x88\x06\x31\x40\x45\x35\x0f\x82\x42\x98\x23\x40\ \x32\x53\xbe\x35\xfa\x10\xf1\x40\x4a\x8f\xeb\x86\x7e\xa9\xe7\xc0\ \x44\x7e\x73\x44\xb1\xe1\x51\xc0\x60\x5d\xc2\x5a\x55\xc7\x63\x40\ \x22\xa2\xcb\x69\x59\x50\x4d\xc0\x63\x69\xe0\xb9\x0f\x32\xde\x40\ \x50\x78\x10\xb9\x1c\xd7\xaa\xc0\x5b\x79\x7a\x66\xb3\x79\x6b\x40\ \x3c\x77\xfd\x1b\x3d\x06\x10\xc0\x62\xee\x10\xd4\xaa\xf0\xf0\xc0\ \x46\xd1\x4e\xde\x36\xe2\x04\x40\x50\x2c\x31\x73\xb4\xd5\x4d\x40\ \x36\xbd\x01\xb5\xb5\x00\xbf\x40\x53\xeb\xec\x32\x09\x0f\xf3\xc0\ \x64\x7c\xde\xd4\xf9\xea\x5a\x40\x5a\x98\x39\x7f\xc7\xf1\x43\xc0\ \x67\x9f\x24\x5c\x76\xd5\xf3\x40\x69\x6a\x0a\x70\x9e\x4e\xa4\x40\ \x61\x88\x12\x1f\x05\xdd\x03\x40\x5e\xdc\xf4\xca\xc1\xac\x79\x40\ \x60\xa1\xe3\x0c\x44\xff\x6e\x40\x6b\xea\x32\x47\x27\x58\xb5\x00\ \x00\x00\x10\x40\x38\x4c\xcb\x75\x7c\x04\xe4\xc0\x62\x97\x16\xcb\ \x46\x05\x9e\x40\x3a\x04\xf9\x90\xa0\xa1\x90\xc0\x58\xb0\x1c\x43\ \xe6\x16\xc6\xc0\x40\xc3\x37\x29\xb0\xad\x71\xc0\x4e\x4e\xa0\x29\ \xf8\xaf\x63\x40\x50\x0a\x04\xf7\x7a\x75\xf9\xc0\x43\x9a\xa3\xc7\ \xff\x8e\xe7\xc0\x3e\x83\x24\xc7\x88\x06\x31\x40\x45\x35\x0f\x82\ \x42\x98\x23\x40\x32\x53\xbe\x35\xfa\x10\xf1\x40\x4a\x8f\xeb\x86\ \x7e\xa9\xe7\xc0\x44\x7e\x73\x44\xb1\xe1\x51\xc0\x60\x5d\xc2\x5a\ \x55\xc7\x63\x40\x22\xa2\xcb\x69\x59\x50\x4d\xc0\x63\x69\xe0\xb9\ \x0f\x32\xde\x40\x50\x78\x10\xb9\x1c\xd7\xaa\xc0\x5b\x79\x7a\x66\ \xb3\x79\x6b\x40\x3c\x77\xfd\x1b\x3d\x06\x10\xc0\x62\xee\x10\xd4\ \xaa\xf0\xf0\xc0\x46\xd1\x4e\xde\x36\xe2\x04\x40\x50\x2c\x31\x73\ \xb4\xd5\x4d\x40\x36\xbd\x01\xb5\xb5\x00\xbf\x40\x53\xeb\xec\x32\ \x09\x0f\xf3\xc0\x64\x7c\xde\xd4\xf9\xea\x5a\x40\x5a\x98\x39\x7f\ \xc7\xf1\x43\xc0\x67\x9f\x24\x5c\x76\xd5\xf3\x40\x69\x6a\x0a\x70\ \x9e\x4e\xa4\x40\x61\x88\x12\x1f\x05\xdd\x03\x40\x5e\xdc\xf4\xca\ \xc1\xac\x79\x40\x60\xa1\xe3\x0c\x44\xff\x6e\x40\x6b\xea\x32\x47\ \x27\x58\xb5\x00\x00\x00\x10\x40\x38\x4c\xc9\x02\x38\xef\xcd\xc0\ \x62\x97\x1f\xb1\x2b\xf9\x2a\x40\x3a\x05\x52\xd2\x95\xd7\xab\xc0\ \x58\xb0\x25\xaa\x53\xdb\xfb\xc0\x40\xc3\x2b\xf2\x52\x75\x9c\xc0\ \x4e\x4e\xee\xcf\x9b\x90\x20\x40\x50\x0a\x02\x68\x2b\x0a\x79\xc0\ \x43\x9a\x79\x01\x1a\xe6\xb9\xc0\x3e\x83\xb4\x36\x4e\x91\x1d\x40\ \x45\x35\x51\x17\x06\xbb\x13\x40\x32\x53\x73\x48\x82\xb8\xb3\x40\ \x4a\x8f\xa1\xde\xcc\x91\x1f\xc0\x44\x7e\x88\xc8\x99\xcc\xe3\xc0\ \x60\x5d\xd5\x8c\xe2\xd4\xd6\x40\x22\xa2\xfe\x41\x73\x93\xb3\xc0\ \x63\x69\xe2\x43\x44\x69\xd7\x40\x50\x78\x07\xd5\xb0\x97\xb1\xc0\ \x5b\x79\x62\x25\xed\x42\x8d\x40\x3c\x78\x1d\x6d\x64\xc2\xa2\xc0\ \x62\xee\x0c\x58\x0f\x63\xac\xc0\x46\xd1\x53\xa5\xee\xcf\x4a\x40\ \x50\x2c\x82\x94\x9a\xd5\x79\x40\x36\xbd\xb8\x76\x84\x73\x91\x40\ \x53\xeb\xbe\x59\x7d\x1d\xee\xc0\x64\x7c\xee\xed\xf6\x5d\x09\x40\ \x5a\x98\x3b\xcb\xed\xe6\x6c\xc0\x67\x9f\x25\xa6\x1c\x6e\xe9\x40\ \x69\x6a\x0f\x6b\x3b\xad\xe5\x40\x61\x88\x1f\x86\x72\xb7\xce\x40\ \x5e\xdc\xfa\xb5\x02\x69\xbf\x40\x60\xa1\xe2\xe7\xb9\x5c\x6a\x40\ \x6b\xea\x34\x42\x75\x16\xa6\x00\x00\x00\x10\x40\x38\x4c\xc8\xf1\ \x73\x46\x04\xc0\x62\x97\x1f\xee\x0c\xf5\x37\x40\x3a\x05\x55\x49\ \x9a\x94\xdf\xc0\x58\xb0\x25\xec\x1f\xd6\x66\xc0\x40\xc3\x2b\xa0\ \x8b\xcc\x68\xc0\x4e\x4e\xf0\xf9\x4c\x7d\xc5\x40\x50\x0a\x02\x56\ \xcf\x1b\x74\xc0\x43\x9a\x77\xd7\x9d\x67\xb9\xc0\x3e\x83\xb8\x29\ \x68\x18\xac\x40\x45\x35\x52\xe6\x88\x0c\x08\x40\x32\x53\x71\x35\ \x56\x27\xbe\x40\x4a\x8f\x9f\xd7\xb3\x3a\x64\xc0\x44\x7e\x89\x5f\ \xfb\xd6\xa6\xc0\x60\x5d\xd6\x13\xf6\xcd\x94\x40\x22\xa2\xff\xa7\ \x2c\xa7\x01\xc0\x63\x69\xe2\x4e\x19\xcc\x87\x40\x50\x78\x07\x98\ \x0d\x09\xcb\xc0\x5b\x79\x61\x7d\xbc\xc0\x33\x40\x3c\x78\x1e\x4d\ \x88\xf4\x35\xc0\x62\xee\x0c\x38\xf1\xc4\xe8\xc0\x46\xd1\x53\xca\ \x0b\x08\xfb\x40\x50\x2c\x84\xd0\x5d\x55\x8c\x40\x36\xbd\xbd\x80\ \x5a\xad\x4a\x40\x53\xeb\xbd\x15\xf5\x07\xab\xc0\x64\x7c\xef\x60\ \x1c\x2f\x98\x40\x5a\x98\x3b\xdc\x37\xef\xe9\xc0\x67\x9f\x25\xaf\ \x3d\xbf\xd4\x40\x69\x6a\x0f\x8e\x89\x77\x9f\x40\x61\x88\x1f\xe5\ \x0f\x7e\xd1\x40\x5e\xdc\xfa\xde\xc3\x4f\x44\x40\x60\xa1\xe2\xe6\ \xb7\x5f\xeb\x40\x6b\xea\x34\x50\x71\xf2\x5e\x00\x00\x00\x10\x40\ \x38\x4c\xc8\xe4\xe9\x4a\xe6\xc0\x62\x97\x20\x1b\x90\x2c\x4f\x40\ \x3a\x05\x57\x22\x0c\x24\x7d\xc0\x58\xb0\x26\x1d\x5d\x86\x5d\xc0\ \x40\xc3\x2b\x63\x3b\xcf\x8c\xc0\x4e\x4e\xf2\x97\xc3\x66\xc7\x40\ \x50\x0a\x02\x49\xd6\x8c\x4d\xc0\x43\x9a\x76\xf9\x0d\x28\xdf\xc0\ \x3e\x83\xbb\x1e\x53\x10\x07\x40\x45\x35\x54\x41\x8c\xf4\x10\x40\ \x32\x53\x6f\xa7\x9a\x5e\xd5\x40\x4a\x8f\x9e\x53\x1a\xe6\x20\xc0\ \x44\x7e\x89\xd1\x4c\x49\xec\xc0\x60\x5d\xd6\x79\x12\xe1\x41\x40\ \x22\xa3\x00\xb2\xf0\x65\xf7\xc0\x63\x69\xe2\x56\x35\xbe\x3d\x40\ \x50\x78\x07\x69\xf1\x50\x4e\xc0\x5b\x79\x60\xff\xec\xcb\x67\x40\ \x3c\x78\x1e\xf5\x33\x9c\xb3\xc0\x62\xee\x0c\x21\xab\x29\xe4\xc0\ \x46\xd1\x53\xe5\x27\x99\x97\x40\x50\x2c\x86\x7c\x61\xad\xa6\x40\ \x36\xbd\xc1\x45\xf8\xa0\x3f\x40\x53\xeb\xbc\x23\xbf\xbf\x32\xc0\ \x64\x7c\xef\xb5\x95\x62\x2d\x40\x5a\x98\x3b\xe8\x6a\x6d\xa5\xc0\ \x67\x9f\x25\xb6\x13\xea\x8f\x40\x69\x6a\x0f\xa8\xf8\xea\x0c\x40\ \x61\x88\x20\x2b\xe3\xfb\xb4\x40\x5e\xdc\xfa\xfe\x05\x65\x16\x40\ \x60\xa1\xe2\xe5\xf6\x3c\x86\x40\x6b\xea\x34\x5a\xea\xb2\xfe\x00\ \x00\x00\x10\x40\x38\x4c\xc8\xd4\x84\xf3\x4d\xc0\x62\x97\x20\x57\ \x0f\x3b\xd7\x40\x3a\x05\x59\x8c\x8a\x5e\xce\xc0\x58\xb0\x26\x5d\ \xcd\x2f\x15\xc0\x40\xc3\x2b\x12\xda\xcc\x87\xc0\x4e\x4e\xf4\xb6\ \x3e\xa1\x52\x40\x50\x0a\x02\x38\xe4\x10\x8c\xc0\x43\x9a\x75\xd5\ \xe6\xa1\x5c\xc0\x3e\x83\xbe\xfd\x1d\x6c\x0f\x40\x45\x35\x56\x07\ \xd6\x3e\xb6\x40\x32\x53\x6d\x9e\xdc\x7b\x7c\x40\x4a\x8f\x9c\x56\ \x73\x8e\x7b\xc0\x44\x7e\x8a\x65\x9b\x9a\xc2\xc0\x60\x5d\xd6\xfd\ \x68\xf0\x6a\x40\x22\xa3\x02\x11\x65\xf2\x80\xc0\x63\x69\xe2\x60\ \xd2\xcd\x1f\x40\x50\x78\x07\x2d\xa2\x09\x53\xc0\x5b\x79\x60\x5b\ \x5c\xc5\x6c\x40\x3c\x78\x1f\xd0\x82\x80\xbc\xc0\x62\xee\x0c\x03\ \x39\x4a\xd4\xc0\x46\xd1\x54\x08\xbe\xbb\x9e\x40\x50\x2c\x88\xac\ \xa3\x4c\x7c\x40\x36\xbd\xc6\x35\xfc\x61\x64\x40\x53\xeb\xba\xe6\ \xb1\x05\x48\xc0\x64\x7c\xf0\x25\x7e\x80\x23\x40\x5a\x98\x3b\xf8\ \x62\xb1\x2e\xc0\x67\x9f\x25\xbf\x07\x67\xde\x40\x69\x6a\x0f\xcb\ \x95\x87\xec\x40\x61\x88\x20\x88\x9b\xc5\x2f\x40\x5e\xdc\xfb\x26\ \xf0\x4e\x91\x40\x60\xa1\xe2\xe4\xf9\x69\xcb\x40\x6b\xea\x34\x68\ \x9f\xdc\x0a\x00\x00\x00\x10\x40\x38\x4c\xc8\xcf\x45\x6d\x70\xc0\ \x62\x97\x20\x6a\x1b\x9c\x23\x40\x3a\x05\x5a\x52\xc4\x7b\x1c\xc0\ \x58\xb0\x26\x72\x72\x66\xea\xc0\x40\xc3\x2a\xf9\x10\xed\xb9\xc0\ \x4e\x4e\xf5\x64\x15\x69\xb0\x40\x50\x0a\x02\x33\x77\xa5\x56\xc0\ \x43\x9a\x75\x78\xa3\x77\x6b\xc0\x3e\x83\xc0\x3a\xa2\x9b\x18\x40\ \x45\x35\x56\x99\x6e\xfb\xd2\x40\x32\x53\x6c\xf7\xf3\x6f\x59\x40\ \x4a\x8f\x9b\xb3\x71\xd9\x7e\xc0\x44\x7e\x8a\x95\x22\x08\xc3\xc0\ \x60\x5d\xd7\x27\xd0\xff\x24\x40\x22\xa3\x02\x81\xb3\x6a\x1c\xc0\ \x63\x69\xe2\x64\x39\x77\x1e\x40\x50\x78\x07\x1a\x50\xf1\xd4\xc0\ \x5b\x79\x60\x26\xa7\x76\x2b\x40\x3c\x78\x20\x16\xc0\xae\xfd\xc0\ \x62\xee\x0b\xf9\x78\xf7\x9a\xc0\x46\xd1\x54\x14\x2c\xd4\x30\x40\ \x50\x2c\x89\x60\x2e\x92\x45\x40\x36\xbd\xc7\xcb\x13\x78\x86\x40\ \x53\xeb\xba\x81\x14\xb0\x4f\xc0\x64\x7c\xf0\x49\x5d\x6b\x81\x40\ \x5a\x98\x3b\xfd\x81\x19\xae\xc0\x67\x9f\x25\xc1\xe5\xe5\x65\x40\ \x69\x6a\x0f\xd6\xad\x9f\xef\x40\x61\x88\x20\xa6\x52\x94\x24\x40\ \x5e\xdc\xfb\x34\x0d\x4b\xd1\x40\x60\xa1\xe2\xe4\xa8\x63\x78\x40\ \x6b\xea\x34\x6d\x04\x78\x67\x00\x00\x00\x10\x40\x38\x4c\xc8\xc3\ \x53\xf0\xd7\xc0\x62\x97\x20\x95\x74\xbf\xc7\x40\x3a\x05\x5c\x16\ \x3e\x0f\x2d\xc0\x58\xb0\x26\xa1\x74\xe5\x62\xc0\x40\xc3\x2a\xbe\ \x48\x1a\xc9\xc0\x4e\x4e\xf6\xef\xf7\x35\xd6\x40\x50\x0a\x02\x27\ \x21\x30\x73\xc0\x43\x9a\x74\xa4\x51\xd1\x0d\xc0\x3e\x83\xc3\x0d\ \xc2\x0e\xf4\x40\x45\x35\x57\xe5\x09\x34\x5f\x40\x32\x53\x6b\x7b\ \xc7\x91\x61\x40\x4a\x8f\x9a\x40\x37\x7d\xc1\xc0\x44\x7e\x8b\x01\ \x5c\x12\x71\xc0\x60\x5d\xd7\x88\x63\x00\x6f\x40\x22\xa3\x03\x81\ \x71\x1e\xdd\xc0\x63\x69\xe2\x6b\xf8\x2e\x8c\x40\x50\x78\x06\xee\ \x57\xe8\x39\xc0\x5b\x79\x5f\xae\xab\x35\x22\x40\x3c\x78\x20\xb6\ \xa7\x72\x0b\xc0\x62\xee\x0b\xe3\x46\x4f\xd6\xc0\x46\xd1\x54\x2e\ \x40\x0a\x1b\x40\x50\x2c\x8a\xf9\x12\xa8\xf6\x40\x36\xbd\xcb\x65\ \xa5\xcc\xd1\x40\x53\xeb\xb9\x99\xaa\xcf\x03\xc0\x64\x7c\xf0\x9b\ \x11\xbc\x05\x40\x5a\x98\x3c\x09\x29\xdc\x73\xc0\x67\x9f\x25\xc8\ \x6e\xde\xfd\x40\x69\x6a\x0f\xef\xf2\x9d\x38\x40\x61\x88\x20\xe9\ \xfe\xa9\x62\x40\x5e\xdc\xfb\x51\xea\xa9\x9f\x40\x60\xa1\xe2\xe3\ \xef\xdb\xd6\x40\x6b\xea\x34\x77\x05\xb5\xb1\x00\x00\x00\x10\x40\ \x38\x4c\xc8\xc2\x67\xdd\x57\xc0\x62\x97\x20\x98\xcd\x94\x1a\x40\ \x3a\x05\x5c\x39\x1f\x5d\xdb\xc0\x58\xb0\x26\xa5\x16\x7d\x84\xc0\ \x40\xc3\x2a\xb9\xbc\xba\x60\xc0\x4e\x4e\xf7\x0e\x8c\x4a\xb1\x40\ \x50\x0a\x02\x26\x2d\x64\x0a\xc0\x43\x9a\x74\x93\xeb\xe8\x2d\xc0\ \x3e\x83\xc3\x45\x9f\x4d\x2f\x40\x45\x35\x57\xfe\xa7\x9e\xb3\x40\ \x32\x53\x6b\x5e\x68\x2f\x32\x40\x4a\x8f\x9a\x23\x89\xc3\x22\xc0\ \x44\x7e\x8b\x09\xb8\x5e\x6c\xc0\x60\x5d\xd7\x8f\xd8\xc8\x46\x40\ \x22\xa3\x03\x95\x32\xa9\x80\xc0\x63\x69\xe2\x6c\x91\x58\xc3\x40\ \x50\x78\x06\xea\xf2\x89\xaa\xc0\x5b\x79\x5f\xa5\x67\x05\xe0\x40\ \x3c\x78\x20\xc3\x00\xcb\xb0\xc0\x62\xee\x0b\xe1\x8f\x72\x2a\xc0\ \x46\xd1\x54\x30\x44\x61\xe5\x40\x50\x2c\x8b\x18\xa9\x44\x23\x40\ \x36\xbd\xcb\xac\xeb\xcc\x19\x40\x53\xeb\xb9\x87\xca\x0f\x26\xc0\ \x64\x7c\xf0\xa1\x61\xc8\xea\x40\x5a\x98\x3c\x0a\x10\x78\x9d\xc0\ \x67\x9f\x25\xc8\xf0\x21\x1c\x40\x69\x6a\x0f\xf1\xe6\x6c\xcd\x40\ \x61\x88\x20\xef\x39\x09\x1b\x40\x5e\xdc\xfb\x54\x39\x4e\x8a\x40\ \x60\xa1\xe2\xe3\xe1\x9a\x53\x40\x6b\xea\x34\x77\xcb\x94\x20\x00\ \x00\x00\x10\x40\x38\x4c\xc8\xc1\x32\xe4\xf9\xc0\x62\x97\x20\x9d\ \x2e\xf8\xde\x40\x3a\x05\x5c\x66\xc6\xea\x0b\xc0\x58\xb0\x26\xa9\ \xd7\x32\x7d\xc0\x40\xc3\x2a\xb3\xc9\xdf\x14\xc0\x4e\x4e\xf7\x36\ \x93\x96\x7f\x40\x50\x0a\x02\x24\xee\x51\x65\xc0\x43\x9a\x74\x7e\ \x75\x91\x91\xc0\x3e\x83\xc3\x8e\xbe\x00\x43\x40\x45\x35\x58\x20\ \x2f\xea\x4a\x40\x32\x53\x6b\x37\xf6\x02\x6f\x40\x4a\x8f\x99\xfe\ \x00\x4b\x9f\xc0\x44\x7e\x8b\x14\xa9\xbf\x4b\xc0\x60\x5d\xd7\x99\ \x9c\x71\xc0\x40\x22\xa3\x03\xaf\x0e\x58\x32\xc0\x63\x69\xe2\x6d\ \x59\xd1\xf7\x40\x50\x78\x06\xe6\x80\xb1\x85\xc0\x5b\x79\x5f\x99\ \x46\x45\x3d\x40\x3c\x78\x20\xd3\x2a\x6b\xb5\xc0\x62\xee\x0b\xdf\ \x51\x0d\x21\xc0\x46\xd1\x54\x32\xe8\x5b\x66\x40\x50\x2c\x8b\x42\ \x01\xb4\x84\x40\x36\xbd\xcc\x0a\x35\xc8\xee\x40\x53\xeb\xb9\x70\ \x63\x9a\x1b\xc0\x64\x7c\xf0\xa9\xa5\x0c\xbe\x40\x5a\x98\x3c\x0b\ \x3e\x51\xa0\xc0\x67\x9f\x25\xc9\x99\x51\x18\x40\x69\x6a\x0f\xf4\ \x74\xa1\xea\x40\x61\x88\x20\xf6\x10\xd1\x9d\x40\x5e\xdc\xfb\x57\ \x3e\x65\x10\x40\x60\xa1\xe2\xe3\xce\xf1\x84\x40\x6b\xea\x34\x78\ \xce\x91\x2c\x00\x00\x00\x10\x40\x38\x4c\xc8\xc1\x32\xe4\xf9\xc0\ \x62\x97\x20\x9d\x2e\xf8\xde\x40\x3a\x05\x5c\x66\xc6\xea\x0b\xc0\ \x58\xb0\x26\xa9\xd7\x32\x7d\xc0\x40\xc3\x2a\xb3\xc9\xdf\x14\xc0\ \x4e\x4e\xf7\x36\x93\x96\x7f\x40\x50\x0a\x02\x24\xee\x51\x65\xc0\ \x43\x9a\x74\x7e\x75\x91\x91\xc0\x3e\x83\xc3\x8e\xbe\x00\x43\x40\ \x45\x35\x58\x20\x2f\xea\x4a\x40\x32\x53\x6b\x37\xf6\x02\x6f\x40\ \x4a\x8f\x99\xfe\x00\x4b\x9f\xc0\x44\x7e\x8b\x14\xa9\xbf\x4b\xc0\ \x60\x5d\xd7\x99\x9c\x71\xc0\x40\x22\xa3\x03\xaf\x0e\x58\x32\xc0\ \x63\x69\xe2\x6d\x59\xd1\xf7\x40\x50\x78\x06\xe6\x80\xb1\x85\xc0\ \x5b\x79\x5f\x99\x46\x45\x3d\x40\x3c\x78\x20\xd3\x2a\x6b\xb5\xc0\ \x62\xee\x0b\xdf\x51\x0d\x21\xc0\x46\xd1\x54\x32\xe8\x5b\x66\x40\ \x50\x2c\x8b\x42\x01\xb4\x84\x40\x36\xbd\xcc\x0a\x35\xc8\xee\x40\ \x53\xeb\xb9\x70\x63\x9a\x1b\xc0\x64\x7c\xf0\xa9\xa5\x0c\xbe\x40\ \x5a\x98\x3c\x0b\x3e\x51\xa0\xc0\x67\x9f\x25\xc9\x99\x51\x18\x40\ \x69\x6a\x0f\xf4\x74\xa1\xea\x40\x61\x88\x20\xf6\x10\xd1\x9d\x40\ \x5e\xdc\xfb\x57\x3e\x65\x10\x40\x60\xa1\xe2\xe3\xce\xf1\x84\x40\ \x6b\xea\x34\x78\xce\x91\x2c\x00\x00\x00\x10\x40\x38\x4c\xc8\xbf\ \xcf\xfc\x3c\xc0\x62\x97\x20\xa2\x37\x18\xbc\x40\x3a\x05\x5c\x9b\ \x39\x94\x7a\xc0\x58\xb0\x26\xaf\x4c\xea\x97\xc0\x40\xc3\x2a\xac\ \xf4\x31\x63\xc0\x4e\x4e\xf7\x64\x8f\x9a\x25\x40\x50\x0a\x02\x23\ \x7f\xd0\x06\xc0\x43\x9a\x74\x65\xcd\xff\xd0\xc0\x3e\x83\xc3\xe2\ \xbe\x25\x12\x40\x45\x35\x58\x46\xb5\xb3\x85\x40\x32\x53\x6b\x0b\ \xcb\x0d\x92\x40\x4a\x8f\x99\xd2\xe0\xed\x42\xc0\x44\x7e\x8b\x21\ \x3b\xf0\xf6\xc0\x60\x5d\xd7\xa4\xd4\x07\xaf\x40\x22\xa3\x03\xcc\ \xc2\xf6\xcf\xc0\x63\x69\xe2\x6e\x40\x1f\x33\x40\x50\x78\x06\xe1\ \x65\x9e\x9c\xc0\x5b\x79\x5f\x8b\x57\xc0\xf2\x40\x3c\x78\x20\xe5\ \xbb\x6d\x77\xc0\x62\xee\x0b\xdc\xbd\x3a\x54\xc0\x46\xd1\x54\x35\ \xf1\x1f\xf9\x40\x50\x2c\x8b\x71\x81\x27\x09\x40\x36\xbd\xcc\x75\ \x61\x96\xaf\x40\x53\xeb\xb9\x55\x81\xb9\x30\xc0\x64\x7c\xf0\xb3\ \x23\x22\x31\x40\x5a\x98\x3c\x0c\x99\x17\x47\xc0\x67\x9f\x25\xca\ \x5b\xaf\x44\x40\x69\x6a\x0f\xf7\x64\x34\xea\x40\x61\x88\x20\xfd\ \xed\x47\xed\x40\x5e\xdc\xfb\x5a\xb6\x86\x41\x40\x60\xa1\xe2\xe3\ \xb9\x81\xe1\x40\x6b\xea\x34\x79\xf8\x18\x55\x00\x00\x00\x10\x40\ \x38\x4c\xc8\xc0\x4e\x4f\x3d\xc0\x62\x97\x20\xa0\x6c\x9c\x10\x40\ \x3a\x05\x5c\x88\x8e\x66\x1c\xc0\x58\xb0\x26\xad\x5b\x68\x24\xc0\ \x40\xc3\x2a\xaf\x63\x02\x46\xc0\x4e\x4e\xf7\x54\x31\x68\xc3\x40\ \x50\x0a\x02\x24\x02\x43\xaf\xc0\x43\x9a\x74\x6e\x94\x89\x25\xc0\ \x3e\x83\xc3\xc4\xd7\xce\x09\x40\x45\x35\x58\x38\xff\x69\xa6\x40\ \x32\x53\x6b\x1b\x83\xc1\xd0\x40\x4a\x8f\x99\xe2\x3a\x5a\x44\xc0\ \x44\x7e\x8b\x1c\xc2\x70\xf4\xc0\x60\x5d\xd7\xa0\xd5\xe7\x48\x40\ \x22\xa3\x03\xc2\x30\x23\x5c\xc0\x63\x69\xe2\x6d\xee\x25\xab\x40\ \x50\x78\x06\xe3\x36\xdb\x68\xc0\x5b\x79\x5f\x90\x4d\x36\x90\x40\ \x3c\x78\x20\xdf\x1f\xa6\xa9\xc0\x62\xee\x0b\xdd\xa8\x15\x8e\xc0\ \x46\xd1\x54\x34\xdc\x9c\x16\x40\x50\x2c\x8b\x60\x99\x08\x6c\x40\ \x36\xbd\xcc\x4f\x3b\xe3\xde\x40\x53\xeb\xb9\x5f\x13\x4e\xf5\xc0\ \x64\x7c\xf0\xaf\xc2\x25\x0e\x40\x5a\x98\x3c\x0c\x1d\xa8\x48\xc0\ \x67\x9f\x25\xca\x16\x7f\xd6\x40\x69\x6a\x0f\xf6\x58\xaf\x08\x40\ \x61\x88\x20\xfb\x20\xf3\x53\x40\x5e\xdc\xfb\x59\x7a\x65\xa7\x40\ \x60\xa1\xe2\xe3\xc1\x23\x31\x40\x6b\xea\x34\x79\x8e\x30\xd7\x00\ \x00\x00\x10\x40\x38\x4c\xc8\xc0\x24\xc9\x42\xc0\x62\x97\x20\xa1\ \x03\x51\x04\x40\x3a\x05\x5c\x8e\xb1\x4a\x18\xc0\x58\xb0\x26\xad\ \xfe\xf0\x2a\xc0\x40\xc3\x2a\xae\x96\x4c\x84\xc0\x4e\x4e\xf7\x59\ \x92\xb9\xe9\x40\x50\x0a\x02\x23\xd7\x61\x93\xc0\x43\x9a\x74\x6b\ \xb2\x17\xa4\xc0\x3e\x83\xc3\xce\xab\xca\x54\x40\x45\x35\x58\x3d\ \x81\x3f\x26\x40\x32\x53\x6b\x16\x58\xd6\x2c\x40\x4a\x8f\x99\xdd\ \x2e\xc0\x07\xc0\x44\x7e\x8b\x1e\x3a\xf7\xb4\xc0\x60\x5d\xd7\xa2\ \x25\xe0\x7c\x40\x22\xa3\x03\xc5\xa9\xdf\x80\xc0\x63\x69\xe2\x6e\ \x09\x17\x9f\x40\x50\x78\x06\xe2\x9d\xee\x8d\xc0\x5b\x79\x5f\x8e\ \xab\xef\xf2\x40\x3c\x78\x20\xe1\x4b\xbe\x79\xc0\x62\xee\x0b\xdd\ \x5a\xe2\xd6\xc0\x46\xd1\x54\x35\x37\x7f\x10\x40\x50\x2c\x8b\x66\ \x27\xb0\x54\x40\x36\xbd\xcc\x5b\xc5\xe0\xc4\x40\x53\xeb\xb9\x5b\ \xee\x21\x36\xc0\x64\x7c\xf0\xb0\xde\x77\x49\x40\x5a\x98\x3c\x0c\ \x46\x3a\xd9\xc0\x67\x9f\x25\xca\x2d\x3d\x92\x40\x69\x6a\x0f\xf6\ \xb0\x9e\x4b\x40\x61\x88\x20\xfc\x0c\x68\x9b\x40\x5e\xdc\xfb\x59\ \xe2\x4e\xeb\x40\x60\xa1\xe2\xe3\xbe\xa1\x23\x40\x6b\xea\x34\x79\ \xb1\x00\x66\x00\x00\x00\x10\x40\x38\x4c\xc8\xbf\xee\x70\x14\xc0\ \x62\x97\x20\xa1\xc8\x92\x26\x40\x3a\x05\x5c\x96\xb9\x6c\xbd\xc0\ \x58\xb0\x26\xae\xd4\xfb\x26\xc0\x40\xc3\x2a\xad\x8a\x57\xfb\xc0\ \x4e\x4e\xf7\x60\x9d\x78\x70\x40\x50\x0a\x02\x23\x9f\x41\xd1\xc0\ \x43\x9a\x74\x67\xeb\x91\x0b\xc0\x3e\x83\xc3\xdb\x88\xea\x29\x40\ \x45\x35\x58\x43\x67\x7a\x47\x40\x32\x53\x6b\x0f\x95\x49\xb5\x40\ \x4a\x8f\x99\xd6\x94\x32\x19\xc0\x44\x7e\x8b\x20\x27\xcb\x9d\xc0\ \x60\x5d\xd7\xa3\xdd\xa0\x33\x40\x22\xa3\x03\xca\x36\x6d\xdb\xc0\ \x63\x69\xe2\x6e\x2c\x5c\x37\x40\x50\x78\x06\xe1\xd5\xc5\xef\xc0\ \x5b\x79\x5f\x8c\x89\xc7\x6e\x40\x3c\x78\x20\xe4\x23\x98\x6b\xc0\ \x62\xee\x0b\xdc\xf5\xd8\x14\xc0\x46\xd1\x54\x35\xae\x76\x39\x40\ \x50\x2c\x8b\x6d\x6d\xc6\x31\x40\x36\xbd\xcc\x6c\x2f\x5e\xd3\x40\ \x53\xeb\xb9\x57\xd0\x3e\xef\xc0\x64\x7c\xf0\xb2\x52\x9c\x24\x40\ \x5a\x98\x3c\x0c\x7b\x55\xad\xc0\x67\x9f\x25\xca\x4b\x01\x8e\x40\ \x69\x6a\x0f\xf7\x23\xb6\xf6\x40\x61\x88\x20\xfd\x40\x98\x5e\x40\ \x5e\xdc\xfb\x5a\x6a\x50\xcc\x40\x60\xa1\xe2\xe3\xbb\x58\xc4\x40\ \x6b\xea\x34\x79\xde\x90\x91\x00\x00\x00\x10\x40\x38\x4c\xc8\xbf\ \xdd\x05\x9e\xc0\x62\x97\x20\xa2\x07\xc7\xe2\x40\x3a\x05\x5c\x99\ \x4c\x59\xcf\xc0\x58\xb0\x26\xaf\x19\x92\x90\xc0\x40\xc3\x2a\xad\ \x34\x79\x79\xc0\x4e\x4e\xf7\x62\xdf\x2a\xa1\x40\x50\x0a\x02\x23\ \x8d\x45\xef\xc0\x43\x9a\x74\x66\xb5\xd7\xe9\xc0\x3e\x83\xc3\xdf\ \xa8\x34\xb2\x40\x45\x35\x58\x45\x4b\x6f\x42\x40\x32\x53\x6b\x0d\ \x6a\x68\xe4\x40\x4a\x8f\x99\xd4\x76\x73\x36\xc0\x44\x7e\x8b\x20\ \xc5\xb9\x45\xc0\x60\x5d\xd7\xa4\x6a\x8b\x7a\x40\x22\xa3\x03\xcb\ \xab\x9d\x74\xc0\x63\x69\xe2\x6e\x37\xa9\x75\x40\x50\x78\x06\xe1\ \x95\xa1\xdb\xc0\x5b\x79\x5f\x8b\xda\xc3\x2a\x40\x3c\x78\x20\xe5\ \x0c\xd5\xed\xc0\x62\xee\x0b\xdc\xd5\x77\x11\xc0\x46\xd1\x54\x35\ \xd4\x96\x1e\x40\x50\x2c\x8b\x6f\xc2\x7c\x13\x40\x36\xbd\xcc\x71\ \x71\xc0\xb2\x40\x53\xeb\xb9\x56\x7e\x86\x5a\xc0\x64\x7c\xf0\xb2\ \xc9\xdd\x72\x40\x5a\x98\x3c\x0c\x8c\x5a\x33\xc0\x67\x9f\x25\xca\ \x54\x8b\x69\x40\x69\x6a\x0f\xf7\x48\x99\x09\x40\x61\x88\x20\xfd\ \xa3\x5a\xc4\x40\x5e\xdc\xfb\x5a\x95\xe6\x4c\x40\x60\xa1\xe2\xe3\ \xba\x4b\x77\x40\x6b\xea\x34\x79\xed\x2a\x63\x00\x00\x00\x10\x40\ \x38\x4c\xc8\xbf\xa9\x3c\xf7\xc0\x62\x97\x20\xa2\xc3\xba\x2f\x40\ \x3a\x05\x5c\xa0\xf4\xb7\xf1\xc0\x58\xb0\x26\xaf\xe5\x96\xe4\xc0\ \x40\xc3\x2a\xac\x34\xe6\xf4\xc0\x4e\x4e\xf7\x69\x95\xca\xcd\x40\ \x50\x0a\x02\x23\x57\xdb\x46\xc0\x43\x9a\x74\x63\x1c\x4c\x49\xc0\ \x3e\x83\xc3\xeb\xeb\x58\x7a\x40\x45\x35\x58\x4a\xeb\x0b\xde\x40\ \x32\x53\x6b\x06\xf7\xe1\xda\x40\x4a\x8f\x99\xce\x2a\xed\x2d\xc0\ \x44\x7e\x8b\x22\x9b\x7b\xcb\xc0\x60\x5d\xd7\xa6\x0d\xc7\x6c\x40\ \x22\xa3\x03\xd0\x01\xd2\x5f\xc0\x63\x69\xe2\x6e\x59\x48\xae\x40\ \x50\x78\x06\xe0\xd6\xe9\xc6\xc0\x5b\x79\x5f\x89\xd1\xfd\x18\x40\ \x3c\x78\x20\xe7\xc2\xd5\xed\xc0\x62\xee\x0b\xdc\x75\x1f\x54\xc0\ \x46\xd1\x54\x36\x45\xdf\xf2\x40\x50\x2c\x8b\x76\xb1\x88\xd7\x40\ \x36\xbd\xcc\x81\x16\xe5\x42\x40\x53\xeb\xb9\x52\x91\xe6\x77\xc0\ \x64\x7c\xf0\xb4\x2c\x9e\xd1\x40\x5a\x98\x3c\x0c\xbe\x99\x62\xc0\ \x67\x9f\x25\xca\x70\xda\x68\x40\x69\x6a\x0f\xf7\xb6\x0f\x69\x40\ \x61\x88\x20\xfe\xc9\x33\xea\x40\x5e\xdc\xfb\x5b\x17\x3b\x26\x40\ \x60\xa1\xe2\xe3\xb7\x2f\x1f\x40\x6b\xea\x34\x7a\x18\x57\x7f\x00\ \x00\x00\x10\x40\x39\x3a\xfb\x80\x37\xf3\x20\xc0\x61\xfc\xcb\xa3\ \xcd\x26\xb3\x40\x36\xe1\xc0\x3b\x54\x6a\xc7\xc0\x57\x7d\x1f\x83\ \x86\xf3\x1c\xc0\x42\x8a\xc6\x53\xae\xe3\x90\xc0\x4c\x3d\xf4\x90\ \xee\x6c\x3f\x40\x4e\x2d\x2a\x66\xb7\xf4\x4a\xc0\x40\xfe\x98\xb5\ \x59\x0c\x29\xc0\x41\x9c\x26\x3c\x27\x7a\x60\x40\x47\x49\xd1\x47\ \xd2\xac\x49\x40\x2a\xff\x46\x2d\x2a\xf5\xdd\x40\x4c\xe9\x81\x90\ \xd0\x9c\x7c\xc0\x43\xec\x12\xf4\xe3\xc3\x79\xc0\x5f\xc9\x03\x0f\ \xff\x7b\x76\x40\x21\x4c\x2e\x53\x8d\xf5\xb6\xc0\x63\x5e\x70\x2e\ \xf1\x12\x4a\x40\x60\x35\xaf\x9d\x23\xb9\xb3\xc0\x47\xf5\xbd\xee\ \x88\x2b\x80\x40\x5f\x27\xde\x05\x0a\xe0\xcd\xc0\x59\xe5\xec\x76\ \x6e\x20\x9e\xc0\x49\x4b\x2f\xeb\x9c\x1a\x49\x40\x51\x2b\xee\x40\ \x71\xae\x98\x40\x31\x9e\x54\x8b\xa5\x0f\x9e\x40\x55\x1b\xb6\xcb\ \xa1\xcb\x36\xc0\x65\x42\x19\x74\x05\x9a\xf9\x40\x5a\xb0\xf1\x49\ \x6b\xdf\x29\xc0\x67\xab\x60\x4e\xa0\x19\x85\x40\x69\xa0\x71\xdc\ \x2e\x28\xe1\x40\x61\x1f\xc5\xf2\x50\xd7\x8a\x40\x5e\xb5\x77\xa5\ \x7e\x2d\xd8\x40\x60\xa2\xa4\x00\xc9\xca\x1b\x40\x6b\xdc\x49\x66\ \x6f\x08\x2d\x00\x00\x00\x10\x40\x39\x6d\xdd\x13\x57\xa1\xd5\xc0\ \x61\x88\xae\xf7\xb1\x07\xb9\x40\x3d\xcf\xf4\x8d\x6a\x17\x82\xc0\ \x56\x9d\xa9\x7a\xdd\x4a\xee\xc0\x3f\xd1\x0f\xe0\xc8\xca\x1b\xc0\ \x4b\xe5\xb8\x99\x8a\x88\x81\x40\x50\x1e\xc0\x45\x2f\x34\x10\xc0\ \x3c\xd5\xaf\x28\x25\x54\xfa\xc0\x41\x59\xfd\x10\xd6\x49\xbe\x40\ \x47\x9e\x2c\x2b\x96\x3e\x8e\x40\x2a\xe2\xd5\x8c\x54\xd6\x15\x40\ \x4e\x5c\xbb\xef\xb1\x92\x66\xc0\x43\xbf\xfb\xa6\x99\x4b\x21\xc0\ \x5f\x85\x8a\xa8\x9e\x7f\x25\x40\x20\xe3\xcd\x5f\xf2\x68\xe2\xc0\ \x63\x5a\x9f\x77\xe2\x62\x79\x40\x60\xd6\xe3\xac\xcc\x5f\x90\xc0\ \x34\xa5\x13\xa5\x48\xae\xc2\x40\x64\xe3\x80\x6b\x21\x27\x96\xc0\ \x50\x8d\x0b\x23\xa9\xc3\xe4\xc0\x49\x89\xcb\x5b\xbe\x67\xd3\x40\ \x51\x26\xf3\x40\xd2\x0d\xc1\x40\x30\x53\x3d\xec\x2b\xcb\xe3\x40\ \x55\xdf\xb6\x87\x83\x72\xc9\xc0\x65\x50\x90\x7a\x79\xec\x90\x40\ \x5a\xb3\x5d\xfd\x75\x1b\xbb\xc0\x67\xac\x23\x85\x4c\x3e\xc1\x40\ \x69\xa4\x50\xfd\xc1\x1a\xbe\x40\x61\x15\x08\x2c\x04\x80\x35\x40\ \x5e\xb2\x16\xd8\x69\xeb\x99\x40\x60\xa2\xb0\x72\x32\x30\x48\x40\ \x6b\xdb\x00\x4c\xb4\x72\x34\x00\x00\x00\x10\x40\x39\x79\xe6\xd8\ \x96\x75\x3a\xc0\x61\xc0\x16\x90\x87\x0e\xed\x40\x38\x8f\xec\xd9\ \xc7\x51\xb7\xc0\x57\x00\xb8\x99\x9b\x0c\x77\xc0\x42\x03\xf3\x87\ \x9c\x0b\x95\xc0\x4b\xc8\x06\x2f\x17\xcb\x6f\x40\x4e\x81\x5b\x7b\ \x07\x5f\xac\xc0\x3f\x6b\x1b\x49\x9f\xef\xa8\xc0\x41\xf5\x1a\xbf\ \x81\x76\xdc\x40\x47\xc1\xb0\x33\x3e\x15\x87\x40\x29\x35\xe9\x42\ \xe0\x6f\x26\x40\x4d\xcb\x37\x6d\xa6\xc4\xbd\xc0\x43\xc2\xd2\x31\ \x5b\xf1\xae\xc0\x5f\x8b\xf9\x65\x4b\xb3\xb9\x40\x20\xf2\x38\xea\ \x61\xb5\x68\xc0\x63\x5b\x25\xb1\x29\x73\x44\x40\x60\x74\xb0\xf1\ \xaf\x14\x87\xc0\x3c\x2b\x5b\x9f\xd5\xcc\x3a\x40\x5f\xd1\xff\x1a\ \xb3\xb4\x69\xc0\x54\xf9\x9f\x72\x33\xf9\x81\xc0\x49\xd3\xfa\x57\ \xad\xf2\x84\x40\x51\x56\xe6\x30\xad\x36\xf7\x40\x30\x45\x7a\x8e\ \xd7\x55\xf9\x40\x55\x90\xcf\xcc\x04\x2a\x2d\xc0\x65\x6a\x17\x30\ \x58\x3c\xd3\x40\x5a\xb7\x3e\x31\xfb\xc0\xbc\xc0\x67\xad\x5a\x2e\ \xcc\x97\xbb\x40\x69\xaa\xd2\x12\x76\xcf\xc6\x40\x61\x08\x27\xfd\ \xad\x8d\xa9\x40\x5e\xad\xed\x6b\x24\xb9\x5c\x40\x60\xa2\xbe\x9a\ \x9d\xff\x01\x40\x6b\xd9\x5b\x1b\x78\x99\x99\x00\x00\x00\x10\x40\ \x3a\x1c\xba\xdc\xfa\x1a\x5d\xc0\x60\xf5\xc8\x41\xf4\x13\xe6\x40\ \x41\xfa\x03\xbb\xf4\x1d\x4a\xc0\x55\xaa\x26\xe9\xec\x4c\xf0\xc0\ \x3b\x21\x4c\xc6\x54\x3f\x5c\xc0\x4b\x5b\x50\x0c\x7c\x8f\x98\x40\ \x50\xf9\x7f\xcb\x19\x0b\xae\xc0\x37\x93\x4b\x4f\x3b\xf3\x58\xc0\ \x41\x41\x68\xf8\x0c\x13\x54\x40\x48\x0c\x99\x85\x2c\x7f\x15\x40\ \x2a\x01\x64\x6f\x7e\xaa\x70\x40\x4f\xd5\xa4\x26\x6b\xe0\x61\xc0\ \x43\x74\x8b\x1b\xb1\x98\xf2\xc0\x5f\x1b\xe4\x8e\x02\x7c\x6d\x40\ \x20\x42\xe5\x35\xba\xbe\x4c\xc0\x63\x54\x64\xe8\xa8\x03\x5e\x40\ \x61\x53\x48\x12\x1c\xc4\xf0\xc0\x38\x89\xd7\xe7\xcb\xc4\x43\x40\ \x65\x76\x6e\x3f\xaf\x20\x22\xc0\x51\x65\xa7\xda\xaa\x26\x75\xc0\ \x49\xe6\x46\x82\xd0\x24\xb9\x40\x51\x2f\x67\xdc\xf2\x10\xf5\x40\ \x2d\x70\x6e\xe1\xf3\xcb\xfa\x40\x56\xa2\x91\x0e\xe0\x3f\x9d\xc0\ \x65\x68\x72\x72\x08\xfb\x25\x40\x5a\xb7\x12\xd7\xa9\xc0\x26\xc0\ \x67\xad\x49\xf8\x95\x22\x31\x40\x69\xaa\x71\xed\xc5\x2f\x89\x40\ \x60\xfd\xd6\x05\x90\x17\x3d\x40\x5e\xab\x02\x86\x36\xeb\xc5\x40\ \x60\xa2\xc7\x56\x35\x46\xe9\x40\x6b\xd8\x35\x4f\xe4\xc4\x52\x00\ \x00\x00\x10\x40\x3a\x22\xa0\xc0\xc8\x8c\x68\xc0\x61\x7a\xe1\x71\ \x57\xe2\xd0\x40\x37\x88\x57\x2b\xb4\x27\x65\xc0\x56\x7a\x19\x92\ \x2d\x24\x6c\xc0\x42\xaa\x2f\xed\x9b\x21\x34\xc0\x4a\xf4\xa5\x85\ \xef\xfb\x8d\x40\x4d\xc3\xc6\xac\x45\x1a\x79\xc0\x3d\x0b\xa3\xc1\ \xb3\x70\xbf\xc0\x42\xfd\x76\x03\x11\x38\x1a\x40\x48\x95\x81\x53\ \xec\x54\xe6\x40\x24\xe6\xbc\x4c\xf9\xb4\xf7\x40\x4e\xcc\x4f\xe2\ \x80\x6a\x4e\xc0\x43\x7b\x0d\x6e\x7d\x0a\xc0\xc0\x5f\x26\x9b\xe0\ \x90\x2d\x70\x40\x20\x57\xdc\x86\xe0\xd3\xec\xc0\x63\x55\x29\x47\ \x39\xb3\x08\x40\x60\x47\xa0\x6e\xe2\x7b\xe5\xc0\x3d\x8e\x03\x79\ \xb3\xc5\xd8\x40\x59\xf4\xd9\x6e\xa3\x7d\xca\xc0\x53\xb4\xae\x8b\ \xb8\xe6\x2d\xc0\x4a\xf0\xb2\x63\x73\x25\x8f\x40\x51\xb9\x89\xae\ \x4e\xeb\xcd\x40\x2b\xd9\x2c\xa9\xd0\xb1\x70\x40\x56\x13\x03\x84\ \xe7\x17\x50\xc0\x65\xbe\x60\xdc\xb9\x87\x4b\x40\x5a\xc4\x9a\x9e\ \x26\x0d\xb2\xc0\x67\xb0\xd3\x88\x9b\xee\x09\x40\x69\xbf\x4a\x43\ \x04\x51\xc2\x40\x60\xd2\x70\x29\x96\x40\xc4\x40\x5e\x9e\x5d\xed\ \x9c\x03\x41\x40\x60\xa2\xe4\x5f\xbf\xef\x51\x40\x6b\xd2\xd4\x01\ \xf5\xda\x8f\x00\x00\x00\x10\x40\x39\x93\x07\x18\x7c\x00\x57\xc0\ \x61\xed\x38\x48\x04\xf6\x05\x40\x39\xce\xd4\x3d\x16\x4f\xe1\xc0\ \x57\x5a\x79\x80\xd1\xee\x90\xc0\x41\x5a\xb0\x5b\xd9\x84\xa7\xc0\ \x4c\x6b\x4b\xa6\xc5\x05\x67\x40\x4f\x31\x11\x79\x69\xca\xc4\xc0\ \x40\x72\xd8\x87\x3f\x4a\xdb\xc0\x41\x30\x33\x06\x0e\xbd\x6d\x40\ \x47\x1e\x92\xf6\x5f\x87\x9d\x40\x2c\x56\xb7\x92\x4c\x0f\x54\x40\ \x4d\x1a\xcc\x86\x22\xf3\x62\xc0\x43\xed\x68\x86\x6d\xf1\xf7\xc0\ \x5f\xd7\x21\x49\x55\x4f\x8d\x40\x21\x78\xc7\xca\xdd\xae\x33\xc0\ \x63\x60\x08\x68\x37\x94\x7d\x40\x55\x61\x16\x46\xec\xb7\xbc\xc0\ \x58\xed\xdd\x9f\xdd\x31\xf6\x40\x4d\x34\xd5\x5d\xce\x73\x18\xc0\ \x62\x93\x74\x7f\x87\x8c\xe0\xc0\x49\x09\x16\x63\x43\xbe\xc4\x40\ \x51\x07\x88\xc1\x11\x6b\x6e\x40\x31\xe4\xaf\x64\x08\xd2\xab\x40\ \x55\x38\x17\x72\x80\xb5\xac\xc0\x65\x2c\x52\x57\x7f\x38\xd6\x40\ \x5a\xad\x44\x85\x31\xfe\xd5\xc0\x67\xaa\x28\xdf\x87\x91\xd0\x40\ \x69\x9a\x80\x20\x4d\x49\x84\x40\x61\x2c\x4a\x92\x0c\x64\x0a\x40\ \x5e\xba\x92\xb8\xd5\x32\x10\x40\x60\xa2\x8e\x79\x47\xf5\xf0\x40\ \x6b\xde\x52\x7b\xcd\xff\x76\x00\x00\x00\x10\x40\x39\xa0\x87\x98\ \xb8\xe0\xec\xc0\x62\x2e\x9b\xf4\x0c\x9a\x1f\x40\x38\x3b\x99\x1e\ \x7f\x21\x57\xc0\x57\xde\x76\x78\x0a\x75\x02\xc0\x41\xdb\xc9\xce\ \x7f\xdb\x4c\xc0\x4c\xfd\x56\x17\x6b\xc4\x02\x40\x4e\xdd\x63\x67\ \xe8\x83\x36\xc0\x41\xc3\x56\x92\x55\x6f\xcc\xc0\x40\xe7\x7e\x05\ \xfc\x43\x82\x40\x46\x8a\x57\x00\x41\xd6\xd1\x40\x2d\xd4\x62\x54\ \xe0\x04\x59\x40\x4c\x27\x56\xc2\xcd\x8b\x08\xc0\x42\x5a\xf0\x4d\ \x5a\xcb\xe6\xc0\x60\x15\xda\x3c\x46\xaf\x80\x40\x2e\xe6\x21\xc4\ \x8c\x1a\x04\xc0\x62\x99\x50\xe9\xf4\x73\xa0\x40\x50\x8a\xee\x4b\ \xfe\x05\x2c\xc0\x5a\x86\x37\xad\x7c\x15\x19\x40\x3e\x0c\x8f\x47\ \x89\x42\x31\xc0\x62\x98\x5b\xa9\x88\xc3\x3a\xc0\x48\x95\x4f\x39\ \x7f\x7d\xf0\x40\x50\xcc\x9d\xf9\xdf\xe9\xd6\x40\x33\x0b\xd4\x0c\ \x5e\xaf\x8e\x40\x54\xba\x84\x35\x41\xd8\x1e\xc0\x65\x06\xae\x6d\ \x56\x5a\x3b\x40\x5a\xa7\x7d\x7e\x97\xc5\xb4\xc0\x67\xa7\xfe\xa3\ \xda\x60\x69\x40\x69\x90\x32\x32\xe0\xf7\x43\x40\x61\x3b\xaa\x06\ \x78\xb7\xc1\x40\x5e\xc0\x47\x72\x5e\x23\xb6\x40\x60\xa2\x75\x46\ \x84\x56\xc3\x40\x6b\xe0\x78\xd5\xcc\x8c\x07\ \x00\x00\x09\x2c\ \xff\ \xff\xff\xff\x00\x00\x00\x09\x00\x00\x00\x10\xc0\x36\xc1\x31\xf7\ \x71\x07\xcd\xc0\x62\xc4\x31\x65\x15\x96\x34\xc0\x22\x59\x75\x1b\ \x5e\x3f\xf0\xc0\x59\x80\x9a\x15\x13\xe9\x09\xc0\x47\x52\xc9\x1c\ \x2f\x1a\x7a\xc0\x45\x06\x29\x2a\x67\x31\x79\x40\x49\x64\xe4\x36\ \x8c\xfe\x06\xc0\x50\x22\x71\x64\xe5\x3f\xcb\x3f\xc9\x7e\x46\xc2\ \x82\x74\x41\x40\x48\xe2\x7c\x67\xa7\x02\xf2\x40\x48\x75\xb8\xda\ \x6c\xe4\xac\x40\x43\x43\x8c\xb1\x63\x97\xf6\xc0\x59\x94\x32\xd7\ \x73\x76\xf3\x3f\xf8\xd1\x11\x6b\x2c\x82\x25\xc0\x5f\x82\xbf\x09\ \xb5\x16\xad\x40\x4a\x15\x6d\x1b\x87\x1c\x19\x40\x55\x32\x73\xaa\ \x94\xec\x77\xc0\x04\x4e\x49\x68\xe6\x95\xd3\x40\x60\xe5\xde\x62\ \x15\x6c\x95\xc0\x3a\xbb\x5f\xa9\x86\x06\x7e\xc0\x0f\x68\xca\xdb\ \xdc\xdd\x36\x40\x53\x18\x3a\x74\x13\x56\x51\x40\x50\x12\x0e\xb5\ \x6f\x61\x5c\x40\x4e\x52\x58\x0d\xd3\x0c\x6d\xc0\x38\xbe\x69\x34\ \x34\x0d\xd7\x40\x69\x01\x3e\xaa\x3a\x4e\xf3\xc0\x3d\xff\xa9\xa5\ \x4e\x81\xa7\x40\x72\xc0\x69\xcc\x0a\xb2\x0e\x40\x3f\xa2\xaf\xee\ \xb2\x7a\xa3\x40\x66\xb7\x06\x0c\x87\xf6\x2d\x40\x3d\xae\x9a\x40\ \x3c\x67\x56\x40\x71\x9d\x34\xa4\xbb\x47\x7d\x00\x00\x00\x10\xc0\ \x30\xaf\xc1\x69\x97\x5a\x95\xc0\x63\x49\x63\x4e\x8e\x9f\xdc\xc0\ \x1e\xaf\xb7\x04\x39\xf0\x0c\xc0\x5a\x46\x95\xdc\xfb\x24\x8e\xc0\ \x49\x9c\xd2\x5c\x93\x47\x4c\xc0\x48\xb5\xcf\xe8\x99\x9c\xdd\x40\ \x48\x02\x8f\xa5\xd6\xdc\x31\xc0\x4e\xc7\x1a\x4e\x1b\x4a\x1c\xc0\ \x2c\x94\xbf\x13\x77\x29\x41\x40\x47\x68\xf0\xdd\xb4\xba\x6a\x40\ \x41\xac\x5d\x06\x4f\x13\x18\x40\x44\x62\x29\x5f\x79\x2c\x69\xc0\ \x58\x78\xf9\x10\x42\x39\x8c\x40\x0d\x9e\x34\x27\x91\xbd\x70\xc0\ \x63\x03\xb5\x2e\x0b\xf6\xb5\x40\x31\x49\xc5\x70\x34\x57\xdc\x40\ \x55\x55\x0b\xb2\x96\x65\xb2\xbf\xf7\xd0\xc3\xa3\x37\x60\x82\x40\ \x60\xe6\x74\x90\x7c\xd3\xd5\xc0\x3a\xbd\xb7\xf4\x49\xd6\x6d\xc0\ \x35\x33\x14\x59\x01\x4b\xa9\x40\x52\x36\xaa\xf8\xcd\xd9\x51\x40\ \x48\x24\x95\xbf\x77\x92\xaf\x40\x50\x19\x5d\x72\x39\xa4\xee\xc0\ \x38\x3c\x43\x48\x09\x4c\x70\x40\x68\xc7\x21\x6e\x01\xfb\xd3\xc0\ \x3d\xe6\x09\x44\x84\xd2\x4f\x40\x72\xa2\xff\xdd\x04\x92\x32\x40\ \x3d\x30\xda\x3a\xb4\x2e\xfe\x40\x67\x8a\xdf\x98\x83\xb8\xf6\x40\ \x3d\xa4\x89\x7f\x23\xcd\xd5\x40\x72\x07\x6b\x4d\x22\x90\x7e\x00\ \x00\x00\x10\x3f\xe8\xdc\xd8\x6c\x4e\xe2\x7a\xc0\x63\x6c\xe1\x17\ \xf2\xa0\xbf\xc0\x1c\xa0\x1f\x76\xa3\x67\x0e\xc0\x5a\x82\x4b\xa2\ \xc3\x07\x44\xc0\x4e\x6a\xa4\x92\xae\xdd\x89\xc0\x4e\x00\xb1\x06\ \xb8\xfd\xe4\x40\x43\x6f\xe2\x4f\x4e\xd0\x7e\xc0\x4a\x2d\xf6\xac\ \x0f\xbe\x52\xc0\x45\xc6\xbd\x2e\xcf\xf5\x06\x40\x44\xce\x84\x52\ \x4a\x5a\x37\x40\x19\x34\x31\x96\xfb\x44\x7f\x40\x46\xb7\xe1\xb0\ \xec\xbd\xa9\xc0\x58\xfd\xf7\xfd\x56\xdc\x11\xbf\xf1\xca\x67\x3c\ \x06\x01\x31\xc0\x63\x1e\x02\x33\x3c\x22\x49\xc0\x32\xfa\x9d\x13\ \x66\xaf\x41\x40\x54\x9e\xa9\xbe\x7c\x61\xe3\x40\x0a\x72\xb1\x55\ \x98\x28\x33\x40\x61\x32\xb3\x01\xb0\xbc\x2d\xc0\x18\x63\x1b\xa0\ \x7e\x49\xee\xc0\x4b\xb7\xac\x9e\xf7\xef\xea\x40\x50\x71\xa3\x37\ \xe4\x2e\xa7\x40\x2c\xb8\x60\xb8\xfe\xc6\xc2\x40\x51\xc8\x31\x75\ \xbd\x97\x6c\xc0\x3b\x25\x5d\xe3\x55\xb6\xc3\x40\x67\x7e\x28\x3a\ \x2f\xcf\x04\xc0\x3d\x79\xfb\x74\x2a\xf4\x86\x40\x72\x00\xa4\xae\ \xf2\x81\x95\x40\x3c\xfa\x8b\x66\xc9\x22\x30\x40\x68\x75\x84\x1e\ \x7d\x6d\xd4\x40\x3d\xb5\xf8\x8b\xe7\x75\x6d\x40\x72\x7c\xb6\xc6\ \x9a\xe9\x9a\x00\x00\x00\x10\x3f\xe4\x9d\xa9\x42\x5e\xe7\x43\xc0\ \x63\x56\x3a\x89\xf9\xf5\x03\xc0\x1b\xb9\xb9\x7a\xc0\xda\x37\xc0\ \x5a\x51\x6d\x68\xd6\x38\x91\xc0\x4f\xf0\xb8\xf8\x76\x60\x54\xc0\ \x4f\xad\xc6\x15\x51\x43\xe4\x40\x41\x7d\xdd\x1f\xa6\x7e\x97\xc0\ \x48\x29\x8c\x8c\x88\xc5\xd5\xc0\x4b\x19\x1c\xf8\xef\x04\xe9\x40\ \x43\xa1\x52\x38\x86\xcc\xe1\xc0\x13\x11\x86\xaf\xfa\x18\xd1\x40\ \x47\x64\x45\xcd\x84\x52\xf0\xc0\x5d\x6b\xc7\x4d\xed\xcd\x82\xc0\ \x31\x79\xa5\x95\x16\x3c\x6c\xc0\x64\x78\xba\xa8\x85\x58\x74\xc0\ \x48\x8e\x36\x95\x37\x4b\xa5\x40\x54\xcc\x34\x76\x69\xe8\x4e\x40\ \x0b\x3e\xdf\x5f\x9e\x8d\xa3\x40\x60\x65\x54\x53\xc4\x38\x71\x40\ \x40\x0c\xb3\x84\x9f\xd2\x9c\xc0\x50\xf6\x2c\x1c\x95\xbd\x9f\x40\ \x4f\x3b\xb0\x51\x91\x96\x07\x3f\xf5\xb6\xbb\x4c\x89\xfb\xa7\x40\ \x52\x40\x4d\xcb\x0f\x40\xae\xc0\x3e\x45\x9a\x76\x56\xfb\xac\x40\ \x66\xc3\x4b\x9c\xe2\xcb\x0b\xc0\x3d\x73\xb5\x3b\x21\x32\xb6\x40\ \x71\xa3\x97\xbc\x79\xdf\x84\x40\x3c\xd5\xf8\x27\x62\x64\x9d\x40\ \x68\x6b\x6d\x0c\x69\x1b\x7e\x40\x3d\xb5\x37\x81\x76\xb1\xee\x40\ \x72\x77\xa6\xa6\x21\xce\x5f\x00\x00\x00\x10\xbf\xe3\x54\xf9\xd1\ \xc3\xbb\x96\xc0\x62\x39\x5d\x48\x40\x62\x61\xc0\x13\xa4\x40\xfe\ \x23\x41\x66\xc0\x57\xfe\x9e\x7a\x5a\x8c\x65\xc0\x51\x53\x87\x2f\ \x98\x9f\x2f\xc0\x50\xb1\x13\x00\xa7\xbf\x57\x40\x38\x4d\x1d\xa7\ \x39\x9a\x03\xc0\x3f\x95\x6d\x6a\x72\xf6\x4d\xc0\x54\x45\x8b\x2f\ \x57\x8e\x27\x40\x41\xd1\x53\x04\xab\x6e\xf7\xc0\x41\x24\x47\xc5\ \x1a\x30\x9b\x40\x4a\x9d\x0a\xaa\x84\xfc\x0d\xc0\x61\x26\xda\xae\ \x5a\xbe\x0d\xc0\x47\x87\xad\x31\xe6\x56\x49\xc0\x65\xf1\xab\xa2\ \x9d\x71\x7a\xc0\x55\xef\x9f\x23\x26\xbf\xfd\x40\x44\x02\xa4\x34\ \x49\x99\xb4\x40\x42\xad\xc5\x39\xfc\xc3\xc9\x40\x54\x77\x1a\x63\ \x55\xdd\x55\x3f\xd2\x3b\x7b\x22\x6a\xd6\x1f\xc0\x58\xcf\x8d\xc1\ \xb5\x07\x54\x40\x4b\xc2\x62\x63\xab\x19\x62\xc0\x40\xdb\xfa\x46\ \x22\x87\x89\x40\x54\x09\x64\xf2\x9a\x80\x2a\xc0\x44\xeb\x29\x9a\ \x2f\x94\x49\x40\x64\xe0\x36\x35\x4c\x3c\x43\xc0\x3e\x7e\x4a\x3b\ \x7b\x99\xfd\x40\x70\xa7\xca\x20\xaa\x48\xd9\x40\x39\x90\x46\xa5\ \x32\x46\xfc\x40\x67\xd4\xc0\x6c\x37\x15\xaa\x40\x3d\x93\xe0\x30\ \xd5\xa0\xe6\x40\x72\x2b\x16\x2e\xda\x91\xd2\x00\x00\x00\x10\xbf\ \xd7\x9d\xe7\xa1\x97\x39\xc0\xc0\x62\xbc\xd5\xa4\x38\x2b\x33\xc0\ \x2b\x24\x07\xa2\xf7\xbc\x3a\xc0\x59\x6b\x39\x1d\x48\x8d\x2d\xc0\ \x50\xfc\x22\x5d\x98\xd8\xe0\xc0\x4c\x3b\x80\x46\xaf\xdc\x40\x40\ \x3f\xa3\xe1\x10\x37\xbc\x7c\xc0\x47\xa7\x33\xb0\x1d\xd6\x38\xc0\ \x4a\x1a\x00\x9f\xcb\xe1\x48\x40\x46\xb3\xbc\xc6\xce\x1c\xfe\xc0\ \x03\x4e\xc7\x08\x76\xc7\x1c\x40\x48\xfd\xf5\x33\x7e\x4b\x81\xc0\ \x60\x62\xd0\x37\xd0\x3e\x25\xc0\x38\xa5\xfa\x53\xfc\x7a\x7d\xc0\ \x64\x52\x8c\x8e\xde\xf0\x6d\xc0\x51\xb5\x7b\xf0\xe3\x85\x21\x40\ \x52\x61\x8e\x3b\xeb\xd1\xde\x40\x23\x54\x72\x4d\x7e\x66\xb6\x40\ \x5a\xc6\x30\x18\x78\x65\x5e\xc0\x41\x84\x35\xad\x81\xc8\x84\xc0\ \x50\x1c\xe1\x3c\xef\x41\x96\x40\x51\x58\x7f\x41\x27\xa7\x22\x40\ \x15\x04\xa4\x11\x8b\xa5\x4c\x40\x52\xf2\xe2\x10\x1d\xbe\x94\xc0\ \x3a\xad\xdb\xf6\xe0\xcd\x29\x40\x67\x9e\xa8\x6e\xa4\x7f\x43\xc0\ \x3d\xa4\xca\x4b\x1f\x0f\x46\x40\x72\x10\xa0\x16\xce\x0d\xd1\x40\ \x3d\xed\xb9\x7b\x1d\xf5\x8a\x40\x68\xd7\xc6\xd6\xaf\x31\x50\x40\ \x3d\xb4\xa6\x32\xb3\x72\x09\x40\x72\xad\xe2\x15\x3d\xe8\xd8\x00\ \x00\x00\x10\xc0\x34\xf7\x01\x4a\xe8\x31\x37\xc0\x63\x08\xe7\x3c\ \xd7\x52\x6e\xc0\x32\x87\x01\x16\xce\x22\x54\xc0\x59\x95\x8a\xc3\ \xc9\x1c\xb8\xc0\x51\x35\xc9\xdc\xb0\xdf\xb7\xc0\x4a\x53\xba\xaa\ \x59\xe9\x6d\x40\x3f\x27\xe3\x21\x77\x13\xbc\xc0\x4a\x03\x47\xa6\ \x3c\x27\xd1\xc0\x46\x3c\x28\x27\x7d\x72\x7b\x40\x47\xbf\xcc\xb2\ \x9b\x75\xf7\x40\x16\x1c\xbe\x7d\x45\x21\x89\x40\x47\xe9\x2b\xf5\ \x69\xa9\x7a\xc0\x5e\xfa\xe4\x52\xe2\xee\x3d\xc0\x20\x9f\xc3\x12\ \xc5\x03\x2a\xc0\x63\x2d\x67\xd4\x68\xd9\xd5\xc0\x4b\xe6\x04\xf7\ \xc6\xd3\xb2\x40\x56\x9a\x17\x7f\xf0\x8a\x61\xc0\x2a\xde\xdc\xce\ \x99\x86\xc2\x40\x5d\x35\xe2\x20\x89\xba\x10\xc0\x4f\x58\x95\x85\ \x01\x84\xd4\xc0\x4b\x51\x42\xfa\x2b\xa5\xef\x40\x52\x1b\x84\x34\ \xad\x36\xdf\x40\x2e\xba\x76\xa5\xb1\xb8\x45\x40\x52\x39\x02\x49\ \xaa\x30\x3e\xc0\x37\xb9\x6f\x87\xfd\xd0\x77\x40\x68\x3e\xb5\xb9\ \xe8\xcd\x8a\xc0\x3d\xdf\x2f\x40\x7a\xc8\xd0\x40\x72\x5e\x54\xd0\ \xa5\x34\x44\x40\x3d\x8f\xfd\xe1\x90\x52\x8a\x40\x68\xaf\x88\xff\ \xd8\xfc\x30\x40\x3d\xb4\x96\xe1\xc9\x47\x14\x40\x72\x99\xc3\xc3\ \x16\xad\x07\x00\x00\x00\x10\xc0\x44\x1f\xc5\xb0\x8d\xff\xf8\xc0\ \x62\xd7\xcc\xdb\x51\x37\xe9\xc0\x38\x70\x1f\x26\x3f\xdd\xd1\xc0\ \x59\xd3\xca\x12\xd1\x6d\x66\xc0\x50\x9b\x5f\xdf\x54\x98\x82\xc0\ \x47\x35\x38\xde\x3e\x59\xd1\x40\x40\x3a\x4b\xde\xb1\x11\x5e\xc0\ \x4e\xa8\xe3\x73\xc2\x1e\x04\xc0\x3a\xcd\xa4\x3c\x9c\xa3\x4a\x40\ \x48\x5e\xe9\xc8\x41\x4a\x06\x40\x36\xa3\x67\x5c\xdf\x00\x72\x40\ \x44\xa5\x11\xd4\x30\xbb\xbe\xc0\x58\xc8\x06\xa1\x52\x29\xa4\x40\ \x30\x47\xe1\xaa\x31\x64\x3e\xc0\x63\x5d\xb2\xe9\xcc\x7a\xe2\x40\ \x29\xe9\x00\x97\x5b\x70\xaa\x40\x58\x50\x0c\x6f\xef\x08\x06\xc0\ \x40\x80\xf5\x5f\x55\x35\x51\x40\x60\xea\x26\xcc\x19\xc3\x62\xc0\ \x52\x7c\x87\x94\x54\x11\xcd\xc0\x40\x7b\x99\x9a\x58\x7d\x4e\x40\ \x52\xbc\xf9\x47\x74\x9c\xd3\x40\x42\x20\x54\x4b\xe3\x87\xa0\x40\ \x50\x21\x47\x81\x50\x58\x25\xc0\x35\xd8\x1b\x0b\x45\x8c\xdd\x40\ \x68\xfb\x74\x42\x1b\x4c\x50\xc0\x3e\x4d\x9f\x09\xae\x3a\xcb\x40\ \x72\xb9\xff\x8f\xad\x92\x5a\x40\x3d\x6b\xf8\x3a\xfe\x5b\xcc\x40\ \x67\xb7\x76\x0a\x83\x1d\x2b\x40\x3d\xaf\x2e\x02\x24\x00\xa5\x40\ \x72\x1d\xb9\x4a\x83\x5a\x36\x00\x00\x00\x10\xc0\x56\x21\x7b\x1a\ \x2d\x27\x74\xc0\x5d\x7f\x81\xf7\x72\x97\xeb\xc0\x45\x6a\xce\x4b\ \x4a\x59\x0e\xc0\x58\x6b\x98\xca\x1a\xce\x5b\xc0\x50\x79\x21\x8d\ \x02\xed\x0a\xc0\x3e\xd5\xf2\x5c\x01\x40\xa0\x40\x38\x02\xd4\x2c\ \x79\x7b\xb7\xc0\x52\xa7\xde\x66\xb0\xaa\x42\x3f\xd7\xb5\xe2\x7b\ \x89\xa4\xca\x40\x48\x0f\x83\x05\x1a\x5b\x33\x40\x46\xa9\x42\x70\ \x82\xf2\xfc\x40\x3a\x3a\x42\xb9\x85\x37\x29\xc0\x54\xe2\xc5\x27\ \x1d\x51\x6a\x40\x42\xd1\x7b\x2a\xa1\x08\x15\xc0\x61\x0b\x0a\x8b\ \x23\x7a\xc0\x40\x33\x47\x9a\x49\x82\xe6\x81\x40\x57\xac\xeb\x9b\ \x79\x30\xfa\xc0\x53\x13\x15\xe5\x3e\x1d\x05\x40\x60\x43\xab\x51\ \xbf\x87\xef\xc0\x5d\xe3\x5c\x69\xf3\x2d\x89\x40\x02\x9d\x80\x74\ \x60\xb9\xea\x40\x52\xbe\x74\x1e\x0d\x17\x2d\x40\x50\x50\x9b\xe2\ \xa5\xba\x4e\x40\x46\x29\x92\xd8\xeb\x51\xb2\xc0\x32\x67\x07\xb9\ \x5f\xcb\x99\x40\x68\xd4\xcc\x9f\x63\x2f\x21\xc0\x3e\x08\x79\x67\ \x07\x43\x5b\x40\x72\xa1\x8d\xaf\x2d\x86\xe8\x40\x43\x38\x54\x39\ \x89\x5f\xf6\x40\x64\xda\x52\xe8\xbe\xbd\x10\x40\x3e\xaa\x65\xda\ \xb3\xd9\xcf\x40\x70\xaa\x52\xf4\x99\xff\x0c\ " qt_resource_name = "\ \x00\x0a\ \x03\x88\x10\x53\ \x00\x61\ \x00\x6e\x00\x69\x00\x6d\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\ \x00\x07\ \x01\xc4\x70\xa7\ \x00\x6a\ \x00\x75\x00\x6d\x00\x70\x00\x69\x00\x6e\x00\x67\ \x00\x04\ \x00\x06\xab\x74\ \x00\x64\ \x00\x65\x00\x61\x00\x64\ \x00\x08\ \x0f\x03\x25\x67\ \x00\x63\ \x00\x68\x00\x69\x00\x6c\x00\x6c\x00\x69\x00\x6e\x00\x67\ \x00\x07\ \x0a\x84\xa0\x87\ \x00\x64\ \x00\x61\x00\x6e\x00\x63\x00\x69\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\ \x00\x00\x00\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x05\x20\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x52\x00\x00\x00\x00\x00\x01\x00\x00\x1f\xa0\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x06\x30\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/animation/stickman/stickman_rc3.py0000644000076500000240000012667012536324426024327 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 11:18:27 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x05\x1c\ \xff\ \xff\xff\xff\x00\x00\x00\x05\x00\x00\x00\x10\x00\x00\x00\x00\x00\ \x00\x00\x00\xc0\x62\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\xc0\x59\x00\x00\x00\x00\x00\x00\xc0\x49\x00\x00\x00\ \x00\x00\x00\xc0\x49\x00\x00\x00\x00\x00\x00\x40\x49\x00\x00\x00\ \x00\x00\x00\xc0\x49\x00\x00\x00\x00\x00\x00\xc0\x39\x00\x00\x00\ \x00\x00\x00\x40\x49\x00\x00\x00\x00\x00\x00\x40\x39\x00\x00\x00\ \x00\x00\x00\x40\x49\x00\x00\x00\x00\x00\x00\xc0\x59\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x5f\x40\x00\x00\ \x00\x00\x00\x40\x49\x00\x00\x00\x00\x00\x00\x40\x59\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x5f\x40\x00\x00\ \x00\x00\x00\x40\x49\x00\x00\x00\x00\x00\x00\xc0\x41\x80\x00\x00\ \x00\x00\x00\x40\x52\xc0\x00\x00\x00\x00\x00\x40\x41\x80\x00\x00\ \x00\x00\x00\x40\x52\xc0\x00\x00\x00\x00\x00\xc0\x39\x00\x00\x00\ \x00\x00\x00\x40\x69\x00\x00\x00\x00\x00\x00\xc0\x3e\x00\x00\x00\ \x00\x00\x00\x40\x72\xc0\x00\x00\x00\x00\x00\x40\x39\x00\x00\x00\ \x00\x00\x00\x40\x69\x00\x00\x00\x00\x00\x00\x40\x3e\x00\x00\x00\ \x00\x00\x00\x40\x72\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x10\xc0\ \x3c\x89\x78\xef\x64\x41\xf9\xc0\x66\xd9\xe8\x90\xe1\x7d\x15\xc0\ \x31\xe3\x24\x6e\x1a\x35\x4b\xc0\x60\xbe\xa8\xcb\xa3\x98\xe8\xc0\ \x4b\x26\x9c\xdd\x08\xb6\xce\xc0\x52\x55\xf3\x5e\x1e\x9a\xcc\x40\ \x45\x5c\xfa\x9b\x0f\x7d\x05\xc0\x58\x63\x42\x06\x4d\xc8\xaa\xc0\ \x17\x5f\xc1\xb2\xd2\x1c\x6d\x40\x31\x9d\xf7\x2f\xd9\x40\x6c\x40\ \x45\x56\x51\xec\xae\x7d\xee\x40\x16\x28\xbe\x3a\x2e\x6a\x36\xc0\ \x55\x8e\x3f\x19\x86\x36\x44\xc0\x24\x7d\xe2\xe5\x56\x5d\x8e\xc0\ \x5d\x38\xe5\xb0\x63\x56\x32\x40\x42\x3f\x2b\xb1\x33\xe6\xab\x40\ \x47\x27\x75\x17\xb2\xff\xe1\xc0\x65\x05\x80\x69\xc9\x45\xe4\x40\ \x46\xa5\x8b\x3a\x6c\xa7\xa8\xc0\x6c\x02\x0f\xa6\x73\xff\xbc\xc0\ \x23\x07\xbb\xb5\xb5\x51\x7d\x40\x46\x24\x27\xde\x37\xae\x65\x40\ \x4d\x34\xca\x20\x80\xfa\x8f\x40\x3b\x64\xbd\x21\x5f\x80\x81\xc0\ \x37\xe9\x56\x97\x59\x09\x15\x40\x65\x1b\x2f\x86\xb4\x04\x4d\xc0\ \x3c\xb5\xb5\xc5\x5a\xd5\x30\x40\x70\xcd\xc0\x3b\x0e\xef\xd6\x40\ \x43\xce\x38\x01\x33\x34\xdd\x40\x62\xec\x1a\xba\x71\x62\x00\x40\ \x3f\x5e\x72\xef\x9e\x8c\x25\x40\x6f\x65\x3a\x4d\xed\xc0\xd9\x00\ \x00\x00\x10\xc0\x3c\x89\xb8\xa7\xeb\xa9\x01\xc0\x66\xda\x0d\x17\ \x53\x31\x17\xc0\x31\xe1\x8c\xf0\xba\xdf\x75\xc0\x60\xbe\xd1\xa6\ \x64\x43\x82\xc0\x4b\x26\x88\x07\x92\xca\xbf\xc0\x52\x56\x94\xaa\ \x30\x5d\x72\x40\x45\x5d\x52\x6d\x57\x9c\xd9\xc0\x58\x62\xcc\x60\ \x74\xfe\x54\xc0\x17\x69\xa4\x0b\x5f\xcf\x0e\x40\x31\xa0\xd0\x0e\ \xd0\x62\xed\x40\x45\x54\xc3\x45\xee\xd2\xcc\x40\x16\x23\xd3\x38\ \xd6\x69\x28\xc0\x55\x8e\x03\x71\x6e\x9d\x31\xc0\x24\x82\xdb\x79\ \xc3\x1b\x6e\xc0\x5d\x38\x8a\xc7\x14\xca\x74\x40\x42\x3e\x16\x8f\ \x10\x50\x33\x40\x47\x27\x55\xb2\x6a\xa5\x2d\xc0\x65\x05\x3e\xa8\ \x00\x01\x15\x40\x46\xa5\x8f\xfd\x66\x67\x23\xc0\x6c\x01\xce\x0e\ \xaa\x42\x46\xc0\x23\x05\x39\x8c\x95\xa5\x0f\x40\x46\x26\xe0\xb5\ \x34\x5e\x5e\x40\x4d\x34\xad\x03\x49\x41\x5e\x40\x3b\x5f\xf9\x28\ \x4b\xa6\x62\xc0\x37\xea\x6c\x93\xfc\xa6\xb3\x40\x65\x1b\xec\xb0\ \x7b\xa8\xfc\xc0\x3c\xb5\xfe\xd2\xbb\xf3\x4b\x40\x70\xce\x1f\x6d\ \x37\x5e\x7d\x40\x43\xce\xcc\x1c\x47\x26\xc2\x40\x62\xeb\x73\x80\ \x3a\x8b\xaf\x40\x3f\x5e\xe2\xb7\xae\x5f\xb6\x40\x6f\x64\x91\x2c\ \x26\xca\x21\x00\x00\x00\x10\xc0\x38\x01\x30\x6b\xba\xdc\x1b\xc0\ \x64\xeb\xbe\xf4\x99\xf2\x9b\xc0\x13\xa3\x04\x1c\x30\xdb\xb6\xc0\ \x5e\x4a\x12\x9f\x80\xef\xb8\xc0\x48\xf6\x8c\x7d\xe9\xbd\xf2\xc0\ \x50\xa8\x10\x7e\x26\x5b\x6d\x40\x48\xcf\x7a\x59\xa1\x24\xc5\xc0\ \x53\x09\x35\x0a\x19\xb4\xbb\xc0\x2f\x0b\x6a\x35\x97\xd3\x7e\x40\ \x3e\x88\x20\x7b\xc1\xb4\x2f\x40\x41\x20\x0b\x54\x51\x2e\x7e\x40\ \x39\xc9\x9e\xf7\xb2\xd8\xc6\xc0\x55\xfe\xc6\x23\xb0\x4f\x25\xc0\ \x1c\x1c\x60\x3d\x66\x92\xe7\xc0\x5d\xba\xce\x5e\x2a\x54\x25\x40\ \x43\xc4\x24\x4f\x00\x90\x62\x40\x58\x0b\xce\x4b\xd9\x22\xe1\xc0\ \x36\xed\xde\xb4\x40\x2c\x73\x40\x5a\xd1\x4e\xef\xc4\x03\x6b\x40\ \x3f\xdc\xbc\xa5\x13\x81\x98\xc0\x37\x1b\xea\x35\xa6\x66\xff\x40\ \x4c\x2e\x2d\x1e\x28\x01\x86\x40\x47\x49\xa3\x1a\xd5\xe2\xf0\x40\ \x48\xdd\x6f\xf6\xf0\x01\x68\xc0\x38\xc1\x32\x29\x64\xfb\x5b\x40\ \x66\xb7\xea\x61\x5e\xb1\x57\xc0\x3d\x45\x4c\x15\xef\x6f\x50\x40\ \x71\x9c\x53\x80\x4b\x64\x0c\x40\x42\x8c\x98\x55\x36\x48\x2a\x40\ \x65\xd8\xb5\x79\xf6\x83\x89\x40\x3d\xa6\xc3\x54\x49\x2b\x98\x40\ \x71\x29\xea\x7e\x10\x5d\xc3\x00\x00\x00\x10\x40\x31\xc2\x13\x60\ \x88\x8b\x4e\xc0\x68\x3c\xec\xdf\xc9\x5c\x2f\x40\x19\x5a\x83\xca\ \x1f\xc9\xc5\xc0\x62\x27\x36\xb4\x9b\x52\x60\xc0\x48\x60\x10\xa3\ \xc6\x74\xb4\xc0\x59\x39\x43\xd2\xf9\x7b\x4b\x40\x49\x55\xa6\x3b\ \x8b\xb1\xc9\xc0\x56\x88\xbb\x33\x01\xdc\x6b\xc0\x41\x53\xb3\x9c\ \x85\xff\x25\x3f\xf3\x70\x84\x8f\xed\xe9\x9b\x40\x2e\x1c\xbe\xb0\ \x48\x52\x79\x40\x1a\x5f\x89\xdb\x5b\x45\xc0\xc0\x50\xc0\xce\xa2\ \xc3\xe5\x44\xc0\x65\x26\x9c\x40\xed\xa0\x1a\xc0\x54\xa2\x72\xde\ \x2f\x48\xc9\xc0\x6b\xdd\x16\xce\x9e\x56\xb3\x40\x55\xdc\x36\x69\ \xb4\x6e\x69\xc0\x3d\xbd\x2f\xf0\x4e\x71\xd7\x40\x5a\x39\x0b\xe0\ \xb9\x21\xc7\x40\x37\x5e\x81\xe7\xe6\x46\x06\xc0\x47\xa4\x74\xb8\ \xaf\xb7\xee\x40\x38\xfe\xaa\x2d\x0e\x97\x7e\x40\x36\x4f\x1c\x98\ \xc9\x38\x7d\x40\x40\x43\x0a\x66\x30\x52\xdc\xc0\x3f\xd3\xf0\xcb\ \x87\x9d\x38\x40\x62\xae\x04\x10\x53\xde\x8c\xc0\x3d\x00\x25\x84\ \x92\xd2\x45\x40\x6f\x30\xbc\x58\x1f\xbc\xdf\x40\x41\x44\xa6\xc0\ \x0b\x29\xd8\x40\x63\xaa\x6a\x7a\x0d\xd9\x34\x40\x3e\xab\x98\x09\ \xd9\x42\x57\x40\x70\x16\x03\x15\xe6\x2f\x0a\ \x00\x00\x01\x0c\ \xff\ \xff\xff\xff\x00\x00\x00\x01\x00\x00\x00\x10\xc0\x72\x75\xd0\xbc\ \x4a\x7e\x3b\x40\x6e\xa8\x3a\x76\xcc\x4a\x4f\xc0\x6e\xc4\x15\x8d\ \xdb\x8a\x81\x40\x6d\x91\x95\x4a\xaf\x90\x71\xc0\x69\x4c\xfe\x50\ \x6c\x77\x6e\x40\x72\x41\xf5\x29\xa3\x44\xca\xc0\x67\xd1\xbb\x6b\ \x66\xf4\xfc\x40\x68\x1a\x7c\x41\xab\x27\xf0\xc0\x59\x09\x41\xf0\ \xd6\x29\x49\x40\x71\x72\x68\x78\x60\x60\x84\xc0\x57\x8e\x4b\x36\ \x5e\x8b\x6f\x40\x6c\xb0\x0b\xce\x10\xc5\x22\xc0\x70\xf5\x12\xcb\ \xa7\x78\x95\x40\x71\x44\x4e\x7a\x50\x85\x9f\xc0\x74\x72\x66\x5a\ \x1e\x1b\xae\x40\x71\x17\xf1\xe4\xf6\x7f\x7e\xc0\x64\x2e\x57\x5b\ \xe3\x6f\x6c\x40\x70\x14\x53\x5e\x5b\x6a\x7a\xc0\x60\x2d\xc9\x35\ \x26\xaf\xd0\x40\x72\xf1\x84\xb6\xf0\xd8\xae\xc0\x53\x20\x21\x2d\ \x64\x5b\xb3\x40\x72\x40\xa0\x97\xbf\x55\x8f\xc0\x51\x0d\xcf\x0f\ \x1b\x48\x3c\x40\x6b\xd1\x05\xa8\x2a\xdf\x62\x40\x44\x77\x7b\xec\ \x05\x04\x13\x40\x6f\x01\xfc\x1b\x65\x69\x69\x40\x61\x21\xf2\x32\ \xa1\xd8\xd9\x40\x71\x41\x25\x0f\x44\xd0\xa8\x40\x4c\x88\xe7\x4e\ \xbb\xeb\xb8\x40\x6c\x7b\xe4\x15\x28\x7a\x0a\x40\x62\x87\x8c\xab\ \xb5\x95\xf1\x40\x70\xd4\x4b\x4c\x03\x9d\x83\ \x00\x00\x19\x6c\ \xff\ \xff\xff\xff\x00\x00\x00\x19\x00\x00\x00\x10\x40\x38\x4c\xca\x3f\ \x4a\x24\xde\xc0\x62\x97\x1b\x32\x01\x5d\xf3\x40\x3a\x05\x25\x01\ \xce\x14\x45\xc0\x58\xb0\x20\xdd\x20\x86\x54\xc0\x40\xc3\x31\xca\ \x2d\xe7\xe8\xc0\x4e\x4e\xc6\x85\x2f\x62\xd8\x40\x50\x0a\x03\xb2\ \x01\xc4\x5d\xc0\x43\x9a\x8e\xca\x3e\xac\x2f\xc0\x3e\x83\x6a\xb1\ \x60\x3b\xb1\x40\x45\x35\x2f\x6e\x30\x18\x5c\x40\x32\x53\x99\xcb\ \xc5\x8d\xfc\x40\x4a\x8f\xc7\x9e\xd3\xec\x98\xc0\x44\x7e\x7d\xc3\ \xb1\x2d\x7e\xc0\x60\x5d\xcb\xb7\xd6\xde\xd5\x40\x22\xa2\xe4\x37\ \x5a\x12\x12\xc0\x63\x69\xe1\x79\x61\x98\x47\x40\x50\x78\x0c\x5a\ \xfa\x18\xc4\xc0\x5b\x79\x6e\x7b\xba\xd3\x77\x40\x3c\x78\x0c\xfd\ \x1b\x24\x7a\xc0\x62\xee\x0e\xa0\x41\x5e\x50\xc0\x46\xd1\x51\x1c\ \xc7\x57\xf6\x40\x50\x2c\x59\x00\x05\x07\x96\x40\x36\xbd\x5a\xba\ \x55\x33\x3c\x40\x53\xeb\xd5\xdc\x95\x84\x02\xc0\x64\x7c\xe6\xa7\ \x82\xd4\x73\x40\x5a\x98\x3a\x9d\x99\xd2\x25\xc0\x67\x9f\x24\xfc\ \xa8\x8b\x88\x40\x69\x6a\x0c\xdc\x04\x07\xad\x40\x61\x88\x18\xa6\ \x50\x33\xdf\x40\x5e\xdc\xf7\xac\x43\x1d\x93\x40\x60\xa1\xe2\xfa\ \x78\x8e\x27\x40\x6b\xea\x33\x3e\x3c\x8e\x55\x00\x00\x00\x10\x40\ \x38\x4c\xcb\x75\x7c\x04\xe4\xc0\x62\x97\x16\xcb\x46\x05\x9e\x40\ \x3a\x04\xf9\x90\xa0\xa1\x90\xc0\x58\xb0\x1c\x43\xe6\x16\xc6\xc0\ \x40\xc3\x37\x29\xb0\xad\x71\xc0\x4e\x4e\xa0\x29\xf8\xaf\x63\x40\ \x50\x0a\x04\xf7\x7a\x75\xf9\xc0\x43\x9a\xa3\xc7\xff\x8e\xe7\xc0\ \x3e\x83\x24\xc7\x88\x06\x31\x40\x45\x35\x0f\x82\x42\x98\x23\x40\ \x32\x53\xbe\x35\xfa\x10\xf1\x40\x4a\x8f\xeb\x86\x7e\xa9\xe7\xc0\ \x44\x7e\x73\x44\xb1\xe1\x51\xc0\x60\x5d\xc2\x5a\x55\xc7\x63\x40\ \x22\xa2\xcb\x69\x59\x50\x4d\xc0\x63\x69\xe0\xb9\x0f\x32\xde\x40\ \x50\x78\x10\xb9\x1c\xd7\xaa\xc0\x5b\x79\x7a\x66\xb3\x79\x6b\x40\ \x3c\x77\xfd\x1b\x3d\x06\x10\xc0\x62\xee\x10\xd4\xaa\xf0\xf0\xc0\ \x46\xd1\x4e\xde\x36\xe2\x04\x40\x50\x2c\x31\x73\xb4\xd5\x4d\x40\ \x36\xbd\x01\xb5\xb5\x00\xbf\x40\x53\xeb\xec\x32\x09\x0f\xf3\xc0\ \x64\x7c\xde\xd4\xf9\xea\x5a\x40\x5a\x98\x39\x7f\xc7\xf1\x43\xc0\ \x67\x9f\x24\x5c\x76\xd5\xf3\x40\x69\x6a\x0a\x70\x9e\x4e\xa4\x40\ \x61\x88\x12\x1f\x05\xdd\x03\x40\x5e\xdc\xf4\xca\xc1\xac\x79\x40\ \x60\xa1\xe3\x0c\x44\xff\x6e\x40\x6b\xea\x32\x47\x27\x58\xb5\x00\ \x00\x00\x10\x40\x38\x4c\xcb\x75\x7c\x04\xe4\xc0\x62\x97\x16\xcb\ \x46\x05\x9e\x40\x3a\x04\xf9\x90\xa0\xa1\x90\xc0\x58\xb0\x1c\x43\ \xe6\x16\xc6\xc0\x40\xc3\x37\x29\xb0\xad\x71\xc0\x4e\x4e\xa0\x29\ \xf8\xaf\x63\x40\x50\x0a\x04\xf7\x7a\x75\xf9\xc0\x43\x9a\xa3\xc7\ \xff\x8e\xe7\xc0\x3e\x83\x24\xc7\x88\x06\x31\x40\x45\x35\x0f\x82\ \x42\x98\x23\x40\x32\x53\xbe\x35\xfa\x10\xf1\x40\x4a\x8f\xeb\x86\ \x7e\xa9\xe7\xc0\x44\x7e\x73\x44\xb1\xe1\x51\xc0\x60\x5d\xc2\x5a\ \x55\xc7\x63\x40\x22\xa2\xcb\x69\x59\x50\x4d\xc0\x63\x69\xe0\xb9\ \x0f\x32\xde\x40\x50\x78\x10\xb9\x1c\xd7\xaa\xc0\x5b\x79\x7a\x66\ \xb3\x79\x6b\x40\x3c\x77\xfd\x1b\x3d\x06\x10\xc0\x62\xee\x10\xd4\ \xaa\xf0\xf0\xc0\x46\xd1\x4e\xde\x36\xe2\x04\x40\x50\x2c\x31\x73\ \xb4\xd5\x4d\x40\x36\xbd\x01\xb5\xb5\x00\xbf\x40\x53\xeb\xec\x32\ \x09\x0f\xf3\xc0\x64\x7c\xde\xd4\xf9\xea\x5a\x40\x5a\x98\x39\x7f\ \xc7\xf1\x43\xc0\x67\x9f\x24\x5c\x76\xd5\xf3\x40\x69\x6a\x0a\x70\ \x9e\x4e\xa4\x40\x61\x88\x12\x1f\x05\xdd\x03\x40\x5e\xdc\xf4\xca\ \xc1\xac\x79\x40\x60\xa1\xe3\x0c\x44\xff\x6e\x40\x6b\xea\x32\x47\ \x27\x58\xb5\x00\x00\x00\x10\x40\x38\x4c\xc9\x02\x38\xef\xcd\xc0\ \x62\x97\x1f\xb1\x2b\xf9\x2a\x40\x3a\x05\x52\xd2\x95\xd7\xab\xc0\ \x58\xb0\x25\xaa\x53\xdb\xfb\xc0\x40\xc3\x2b\xf2\x52\x75\x9c\xc0\ \x4e\x4e\xee\xcf\x9b\x90\x20\x40\x50\x0a\x02\x68\x2b\x0a\x79\xc0\ \x43\x9a\x79\x01\x1a\xe6\xb9\xc0\x3e\x83\xb4\x36\x4e\x91\x1d\x40\ \x45\x35\x51\x17\x06\xbb\x13\x40\x32\x53\x73\x48\x82\xb8\xb3\x40\ \x4a\x8f\xa1\xde\xcc\x91\x1f\xc0\x44\x7e\x88\xc8\x99\xcc\xe3\xc0\ \x60\x5d\xd5\x8c\xe2\xd4\xd6\x40\x22\xa2\xfe\x41\x73\x93\xb3\xc0\ \x63\x69\xe2\x43\x44\x69\xd7\x40\x50\x78\x07\xd5\xb0\x97\xb1\xc0\ \x5b\x79\x62\x25\xed\x42\x8d\x40\x3c\x78\x1d\x6d\x64\xc2\xa2\xc0\ \x62\xee\x0c\x58\x0f\x63\xac\xc0\x46\xd1\x53\xa5\xee\xcf\x4a\x40\ \x50\x2c\x82\x94\x9a\xd5\x79\x40\x36\xbd\xb8\x76\x84\x73\x91\x40\ \x53\xeb\xbe\x59\x7d\x1d\xee\xc0\x64\x7c\xee\xed\xf6\x5d\x09\x40\ \x5a\x98\x3b\xcb\xed\xe6\x6c\xc0\x67\x9f\x25\xa6\x1c\x6e\xe9\x40\ \x69\x6a\x0f\x6b\x3b\xad\xe5\x40\x61\x88\x1f\x86\x72\xb7\xce\x40\ \x5e\xdc\xfa\xb5\x02\x69\xbf\x40\x60\xa1\xe2\xe7\xb9\x5c\x6a\x40\ \x6b\xea\x34\x42\x75\x16\xa6\x00\x00\x00\x10\x40\x38\x4c\xc8\xf1\ \x73\x46\x04\xc0\x62\x97\x1f\xee\x0c\xf5\x37\x40\x3a\x05\x55\x49\ \x9a\x94\xdf\xc0\x58\xb0\x25\xec\x1f\xd6\x66\xc0\x40\xc3\x2b\xa0\ \x8b\xcc\x68\xc0\x4e\x4e\xf0\xf9\x4c\x7d\xc5\x40\x50\x0a\x02\x56\ \xcf\x1b\x74\xc0\x43\x9a\x77\xd7\x9d\x67\xb9\xc0\x3e\x83\xb8\x29\ \x68\x18\xac\x40\x45\x35\x52\xe6\x88\x0c\x08\x40\x32\x53\x71\x35\ \x56\x27\xbe\x40\x4a\x8f\x9f\xd7\xb3\x3a\x64\xc0\x44\x7e\x89\x5f\ \xfb\xd6\xa6\xc0\x60\x5d\xd6\x13\xf6\xcd\x94\x40\x22\xa2\xff\xa7\ \x2c\xa7\x01\xc0\x63\x69\xe2\x4e\x19\xcc\x87\x40\x50\x78\x07\x98\ \x0d\x09\xcb\xc0\x5b\x79\x61\x7d\xbc\xc0\x33\x40\x3c\x78\x1e\x4d\ \x88\xf4\x35\xc0\x62\xee\x0c\x38\xf1\xc4\xe8\xc0\x46\xd1\x53\xca\ \x0b\x08\xfb\x40\x50\x2c\x84\xd0\x5d\x55\x8c\x40\x36\xbd\xbd\x80\ \x5a\xad\x4a\x40\x53\xeb\xbd\x15\xf5\x07\xab\xc0\x64\x7c\xef\x60\ \x1c\x2f\x98\x40\x5a\x98\x3b\xdc\x37\xef\xe9\xc0\x67\x9f\x25\xaf\ \x3d\xbf\xd4\x40\x69\x6a\x0f\x8e\x89\x77\x9f\x40\x61\x88\x1f\xe5\ \x0f\x7e\xd1\x40\x5e\xdc\xfa\xde\xc3\x4f\x44\x40\x60\xa1\xe2\xe6\ \xb7\x5f\xeb\x40\x6b\xea\x34\x50\x71\xf2\x5e\x00\x00\x00\x10\x40\ \x38\x4c\xc8\xe4\xe9\x4a\xe6\xc0\x62\x97\x20\x1b\x90\x2c\x4f\x40\ \x3a\x05\x57\x22\x0c\x24\x7d\xc0\x58\xb0\x26\x1d\x5d\x86\x5d\xc0\ \x40\xc3\x2b\x63\x3b\xcf\x8c\xc0\x4e\x4e\xf2\x97\xc3\x66\xc7\x40\ \x50\x0a\x02\x49\xd6\x8c\x4d\xc0\x43\x9a\x76\xf9\x0d\x28\xdf\xc0\ \x3e\x83\xbb\x1e\x53\x10\x07\x40\x45\x35\x54\x41\x8c\xf4\x10\x40\ \x32\x53\x6f\xa7\x9a\x5e\xd5\x40\x4a\x8f\x9e\x53\x1a\xe6\x20\xc0\ \x44\x7e\x89\xd1\x4c\x49\xec\xc0\x60\x5d\xd6\x79\x12\xe1\x41\x40\ \x22\xa3\x00\xb2\xf0\x65\xf7\xc0\x63\x69\xe2\x56\x35\xbe\x3d\x40\ \x50\x78\x07\x69\xf1\x50\x4e\xc0\x5b\x79\x60\xff\xec\xcb\x67\x40\ \x3c\x78\x1e\xf5\x33\x9c\xb3\xc0\x62\xee\x0c\x21\xab\x29\xe4\xc0\ \x46\xd1\x53\xe5\x27\x99\x97\x40\x50\x2c\x86\x7c\x61\xad\xa6\x40\ \x36\xbd\xc1\x45\xf8\xa0\x3f\x40\x53\xeb\xbc\x23\xbf\xbf\x32\xc0\ \x64\x7c\xef\xb5\x95\x62\x2d\x40\x5a\x98\x3b\xe8\x6a\x6d\xa5\xc0\ \x67\x9f\x25\xb6\x13\xea\x8f\x40\x69\x6a\x0f\xa8\xf8\xea\x0c\x40\ \x61\x88\x20\x2b\xe3\xfb\xb4\x40\x5e\xdc\xfa\xfe\x05\x65\x16\x40\ \x60\xa1\xe2\xe5\xf6\x3c\x86\x40\x6b\xea\x34\x5a\xea\xb2\xfe\x00\ \x00\x00\x10\x40\x38\x4c\xc8\xd4\x84\xf3\x4d\xc0\x62\x97\x20\x57\ \x0f\x3b\xd7\x40\x3a\x05\x59\x8c\x8a\x5e\xce\xc0\x58\xb0\x26\x5d\ \xcd\x2f\x15\xc0\x40\xc3\x2b\x12\xda\xcc\x87\xc0\x4e\x4e\xf4\xb6\ \x3e\xa1\x52\x40\x50\x0a\x02\x38\xe4\x10\x8c\xc0\x43\x9a\x75\xd5\ \xe6\xa1\x5c\xc0\x3e\x83\xbe\xfd\x1d\x6c\x0f\x40\x45\x35\x56\x07\ \xd6\x3e\xb6\x40\x32\x53\x6d\x9e\xdc\x7b\x7c\x40\x4a\x8f\x9c\x56\ \x73\x8e\x7b\xc0\x44\x7e\x8a\x65\x9b\x9a\xc2\xc0\x60\x5d\xd6\xfd\ \x68\xf0\x6a\x40\x22\xa3\x02\x11\x65\xf2\x80\xc0\x63\x69\xe2\x60\ \xd2\xcd\x1f\x40\x50\x78\x07\x2d\xa2\x09\x53\xc0\x5b\x79\x60\x5b\ \x5c\xc5\x6c\x40\x3c\x78\x1f\xd0\x82\x80\xbc\xc0\x62\xee\x0c\x03\ \x39\x4a\xd4\xc0\x46\xd1\x54\x08\xbe\xbb\x9e\x40\x50\x2c\x88\xac\ \xa3\x4c\x7c\x40\x36\xbd\xc6\x35\xfc\x61\x64\x40\x53\xeb\xba\xe6\ \xb1\x05\x48\xc0\x64\x7c\xf0\x25\x7e\x80\x23\x40\x5a\x98\x3b\xf8\ \x62\xb1\x2e\xc0\x67\x9f\x25\xbf\x07\x67\xde\x40\x69\x6a\x0f\xcb\ \x95\x87\xec\x40\x61\x88\x20\x88\x9b\xc5\x2f\x40\x5e\xdc\xfb\x26\ \xf0\x4e\x91\x40\x60\xa1\xe2\xe4\xf9\x69\xcb\x40\x6b\xea\x34\x68\ \x9f\xdc\x0a\x00\x00\x00\x10\x40\x38\x4c\xc8\xcf\x45\x6d\x70\xc0\ \x62\x97\x20\x6a\x1b\x9c\x23\x40\x3a\x05\x5a\x52\xc4\x7b\x1c\xc0\ \x58\xb0\x26\x72\x72\x66\xea\xc0\x40\xc3\x2a\xf9\x10\xed\xb9\xc0\ \x4e\x4e\xf5\x64\x15\x69\xb0\x40\x50\x0a\x02\x33\x77\xa5\x56\xc0\ \x43\x9a\x75\x78\xa3\x77\x6b\xc0\x3e\x83\xc0\x3a\xa2\x9b\x18\x40\ \x45\x35\x56\x99\x6e\xfb\xd2\x40\x32\x53\x6c\xf7\xf3\x6f\x59\x40\ \x4a\x8f\x9b\xb3\x71\xd9\x7e\xc0\x44\x7e\x8a\x95\x22\x08\xc3\xc0\ \x60\x5d\xd7\x27\xd0\xff\x24\x40\x22\xa3\x02\x81\xb3\x6a\x1c\xc0\ \x63\x69\xe2\x64\x39\x77\x1e\x40\x50\x78\x07\x1a\x50\xf1\xd4\xc0\ \x5b\x79\x60\x26\xa7\x76\x2b\x40\x3c\x78\x20\x16\xc0\xae\xfd\xc0\ \x62\xee\x0b\xf9\x78\xf7\x9a\xc0\x46\xd1\x54\x14\x2c\xd4\x30\x40\ \x50\x2c\x89\x60\x2e\x92\x45\x40\x36\xbd\xc7\xcb\x13\x78\x86\x40\ \x53\xeb\xba\x81\x14\xb0\x4f\xc0\x64\x7c\xf0\x49\x5d\x6b\x81\x40\ \x5a\x98\x3b\xfd\x81\x19\xae\xc0\x67\x9f\x25\xc1\xe5\xe5\x65\x40\ \x69\x6a\x0f\xd6\xad\x9f\xef\x40\x61\x88\x20\xa6\x52\x94\x24\x40\ \x5e\xdc\xfb\x34\x0d\x4b\xd1\x40\x60\xa1\xe2\xe4\xa8\x63\x78\x40\ \x6b\xea\x34\x6d\x04\x78\x67\x00\x00\x00\x10\x40\x38\x4c\xc8\xc3\ \x53\xf0\xd7\xc0\x62\x97\x20\x95\x74\xbf\xc7\x40\x3a\x05\x5c\x16\ \x3e\x0f\x2d\xc0\x58\xb0\x26\xa1\x74\xe5\x62\xc0\x40\xc3\x2a\xbe\ \x48\x1a\xc9\xc0\x4e\x4e\xf6\xef\xf7\x35\xd6\x40\x50\x0a\x02\x27\ \x21\x30\x73\xc0\x43\x9a\x74\xa4\x51\xd1\x0d\xc0\x3e\x83\xc3\x0d\ \xc2\x0e\xf4\x40\x45\x35\x57\xe5\x09\x34\x5f\x40\x32\x53\x6b\x7b\ \xc7\x91\x61\x40\x4a\x8f\x9a\x40\x37\x7d\xc1\xc0\x44\x7e\x8b\x01\ \x5c\x12\x71\xc0\x60\x5d\xd7\x88\x63\x00\x6f\x40\x22\xa3\x03\x81\ \x71\x1e\xdd\xc0\x63\x69\xe2\x6b\xf8\x2e\x8c\x40\x50\x78\x06\xee\ \x57\xe8\x39\xc0\x5b\x79\x5f\xae\xab\x35\x22\x40\x3c\x78\x20\xb6\ \xa7\x72\x0b\xc0\x62\xee\x0b\xe3\x46\x4f\xd6\xc0\x46\xd1\x54\x2e\ \x40\x0a\x1b\x40\x50\x2c\x8a\xf9\x12\xa8\xf6\x40\x36\xbd\xcb\x65\ \xa5\xcc\xd1\x40\x53\xeb\xb9\x99\xaa\xcf\x03\xc0\x64\x7c\xf0\x9b\ \x11\xbc\x05\x40\x5a\x98\x3c\x09\x29\xdc\x73\xc0\x67\x9f\x25\xc8\ \x6e\xde\xfd\x40\x69\x6a\x0f\xef\xf2\x9d\x38\x40\x61\x88\x20\xe9\ \xfe\xa9\x62\x40\x5e\xdc\xfb\x51\xea\xa9\x9f\x40\x60\xa1\xe2\xe3\ \xef\xdb\xd6\x40\x6b\xea\x34\x77\x05\xb5\xb1\x00\x00\x00\x10\x40\ \x38\x4c\xc8\xc2\x67\xdd\x57\xc0\x62\x97\x20\x98\xcd\x94\x1a\x40\ \x3a\x05\x5c\x39\x1f\x5d\xdb\xc0\x58\xb0\x26\xa5\x16\x7d\x84\xc0\ \x40\xc3\x2a\xb9\xbc\xba\x60\xc0\x4e\x4e\xf7\x0e\x8c\x4a\xb1\x40\ \x50\x0a\x02\x26\x2d\x64\x0a\xc0\x43\x9a\x74\x93\xeb\xe8\x2d\xc0\ \x3e\x83\xc3\x45\x9f\x4d\x2f\x40\x45\x35\x57\xfe\xa7\x9e\xb3\x40\ \x32\x53\x6b\x5e\x68\x2f\x32\x40\x4a\x8f\x9a\x23\x89\xc3\x22\xc0\ \x44\x7e\x8b\x09\xb8\x5e\x6c\xc0\x60\x5d\xd7\x8f\xd8\xc8\x46\x40\ \x22\xa3\x03\x95\x32\xa9\x80\xc0\x63\x69\xe2\x6c\x91\x58\xc3\x40\ \x50\x78\x06\xea\xf2\x89\xaa\xc0\x5b\x79\x5f\xa5\x67\x05\xe0\x40\ \x3c\x78\x20\xc3\x00\xcb\xb0\xc0\x62\xee\x0b\xe1\x8f\x72\x2a\xc0\ \x46\xd1\x54\x30\x44\x61\xe5\x40\x50\x2c\x8b\x18\xa9\x44\x23\x40\ \x36\xbd\xcb\xac\xeb\xcc\x19\x40\x53\xeb\xb9\x87\xca\x0f\x26\xc0\ \x64\x7c\xf0\xa1\x61\xc8\xea\x40\x5a\x98\x3c\x0a\x10\x78\x9d\xc0\ \x67\x9f\x25\xc8\xf0\x21\x1c\x40\x69\x6a\x0f\xf1\xe6\x6c\xcd\x40\ \x61\x88\x20\xef\x39\x09\x1b\x40\x5e\xdc\xfb\x54\x39\x4e\x8a\x40\ \x60\xa1\xe2\xe3\xe1\x9a\x53\x40\x6b\xea\x34\x77\xcb\x94\x20\x00\ \x00\x00\x10\x40\x38\x4c\xc8\xc1\x32\xe4\xf9\xc0\x62\x97\x20\x9d\ \x2e\xf8\xde\x40\x3a\x05\x5c\x66\xc6\xea\x0b\xc0\x58\xb0\x26\xa9\ \xd7\x32\x7d\xc0\x40\xc3\x2a\xb3\xc9\xdf\x14\xc0\x4e\x4e\xf7\x36\ \x93\x96\x7f\x40\x50\x0a\x02\x24\xee\x51\x65\xc0\x43\x9a\x74\x7e\ \x75\x91\x91\xc0\x3e\x83\xc3\x8e\xbe\x00\x43\x40\x45\x35\x58\x20\ \x2f\xea\x4a\x40\x32\x53\x6b\x37\xf6\x02\x6f\x40\x4a\x8f\x99\xfe\ \x00\x4b\x9f\xc0\x44\x7e\x8b\x14\xa9\xbf\x4b\xc0\x60\x5d\xd7\x99\ \x9c\x71\xc0\x40\x22\xa3\x03\xaf\x0e\x58\x32\xc0\x63\x69\xe2\x6d\ \x59\xd1\xf7\x40\x50\x78\x06\xe6\x80\xb1\x85\xc0\x5b\x79\x5f\x99\ \x46\x45\x3d\x40\x3c\x78\x20\xd3\x2a\x6b\xb5\xc0\x62\xee\x0b\xdf\ \x51\x0d\x21\xc0\x46\xd1\x54\x32\xe8\x5b\x66\x40\x50\x2c\x8b\x42\ \x01\xb4\x84\x40\x36\xbd\xcc\x0a\x35\xc8\xee\x40\x53\xeb\xb9\x70\ \x63\x9a\x1b\xc0\x64\x7c\xf0\xa9\xa5\x0c\xbe\x40\x5a\x98\x3c\x0b\ \x3e\x51\xa0\xc0\x67\x9f\x25\xc9\x99\x51\x18\x40\x69\x6a\x0f\xf4\ \x74\xa1\xea\x40\x61\x88\x20\xf6\x10\xd1\x9d\x40\x5e\xdc\xfb\x57\ \x3e\x65\x10\x40\x60\xa1\xe2\xe3\xce\xf1\x84\x40\x6b\xea\x34\x78\ \xce\x91\x2c\x00\x00\x00\x10\x40\x38\x4c\xc8\xc1\x32\xe4\xf9\xc0\ \x62\x97\x20\x9d\x2e\xf8\xde\x40\x3a\x05\x5c\x66\xc6\xea\x0b\xc0\ \x58\xb0\x26\xa9\xd7\x32\x7d\xc0\x40\xc3\x2a\xb3\xc9\xdf\x14\xc0\ \x4e\x4e\xf7\x36\x93\x96\x7f\x40\x50\x0a\x02\x24\xee\x51\x65\xc0\ \x43\x9a\x74\x7e\x75\x91\x91\xc0\x3e\x83\xc3\x8e\xbe\x00\x43\x40\ \x45\x35\x58\x20\x2f\xea\x4a\x40\x32\x53\x6b\x37\xf6\x02\x6f\x40\ \x4a\x8f\x99\xfe\x00\x4b\x9f\xc0\x44\x7e\x8b\x14\xa9\xbf\x4b\xc0\ \x60\x5d\xd7\x99\x9c\x71\xc0\x40\x22\xa3\x03\xaf\x0e\x58\x32\xc0\ \x63\x69\xe2\x6d\x59\xd1\xf7\x40\x50\x78\x06\xe6\x80\xb1\x85\xc0\ \x5b\x79\x5f\x99\x46\x45\x3d\x40\x3c\x78\x20\xd3\x2a\x6b\xb5\xc0\ \x62\xee\x0b\xdf\x51\x0d\x21\xc0\x46\xd1\x54\x32\xe8\x5b\x66\x40\ \x50\x2c\x8b\x42\x01\xb4\x84\x40\x36\xbd\xcc\x0a\x35\xc8\xee\x40\ \x53\xeb\xb9\x70\x63\x9a\x1b\xc0\x64\x7c\xf0\xa9\xa5\x0c\xbe\x40\ \x5a\x98\x3c\x0b\x3e\x51\xa0\xc0\x67\x9f\x25\xc9\x99\x51\x18\x40\ \x69\x6a\x0f\xf4\x74\xa1\xea\x40\x61\x88\x20\xf6\x10\xd1\x9d\x40\ \x5e\xdc\xfb\x57\x3e\x65\x10\x40\x60\xa1\xe2\xe3\xce\xf1\x84\x40\ \x6b\xea\x34\x78\xce\x91\x2c\x00\x00\x00\x10\x40\x38\x4c\xc8\xbf\ \xcf\xfc\x3c\xc0\x62\x97\x20\xa2\x37\x18\xbc\x40\x3a\x05\x5c\x9b\ \x39\x94\x7a\xc0\x58\xb0\x26\xaf\x4c\xea\x97\xc0\x40\xc3\x2a\xac\ \xf4\x31\x63\xc0\x4e\x4e\xf7\x64\x8f\x9a\x25\x40\x50\x0a\x02\x23\ \x7f\xd0\x06\xc0\x43\x9a\x74\x65\xcd\xff\xd0\xc0\x3e\x83\xc3\xe2\ \xbe\x25\x12\x40\x45\x35\x58\x46\xb5\xb3\x85\x40\x32\x53\x6b\x0b\ \xcb\x0d\x92\x40\x4a\x8f\x99\xd2\xe0\xed\x42\xc0\x44\x7e\x8b\x21\ \x3b\xf0\xf6\xc0\x60\x5d\xd7\xa4\xd4\x07\xaf\x40\x22\xa3\x03\xcc\ \xc2\xf6\xcf\xc0\x63\x69\xe2\x6e\x40\x1f\x33\x40\x50\x78\x06\xe1\ \x65\x9e\x9c\xc0\x5b\x79\x5f\x8b\x57\xc0\xf2\x40\x3c\x78\x20\xe5\ \xbb\x6d\x77\xc0\x62\xee\x0b\xdc\xbd\x3a\x54\xc0\x46\xd1\x54\x35\ \xf1\x1f\xf9\x40\x50\x2c\x8b\x71\x81\x27\x09\x40\x36\xbd\xcc\x75\ \x61\x96\xaf\x40\x53\xeb\xb9\x55\x81\xb9\x30\xc0\x64\x7c\xf0\xb3\ \x23\x22\x31\x40\x5a\x98\x3c\x0c\x99\x17\x47\xc0\x67\x9f\x25\xca\ \x5b\xaf\x44\x40\x69\x6a\x0f\xf7\x64\x34\xea\x40\x61\x88\x20\xfd\ \xed\x47\xed\x40\x5e\xdc\xfb\x5a\xb6\x86\x41\x40\x60\xa1\xe2\xe3\ \xb9\x81\xe1\x40\x6b\xea\x34\x79\xf8\x18\x55\x00\x00\x00\x10\x40\ \x38\x4c\xc8\xc0\x4e\x4f\x3d\xc0\x62\x97\x20\xa0\x6c\x9c\x10\x40\ \x3a\x05\x5c\x88\x8e\x66\x1c\xc0\x58\xb0\x26\xad\x5b\x68\x24\xc0\ \x40\xc3\x2a\xaf\x63\x02\x46\xc0\x4e\x4e\xf7\x54\x31\x68\xc3\x40\ \x50\x0a\x02\x24\x02\x43\xaf\xc0\x43\x9a\x74\x6e\x94\x89\x25\xc0\ \x3e\x83\xc3\xc4\xd7\xce\x09\x40\x45\x35\x58\x38\xff\x69\xa6\x40\ \x32\x53\x6b\x1b\x83\xc1\xd0\x40\x4a\x8f\x99\xe2\x3a\x5a\x44\xc0\ \x44\x7e\x8b\x1c\xc2\x70\xf4\xc0\x60\x5d\xd7\xa0\xd5\xe7\x48\x40\ \x22\xa3\x03\xc2\x30\x23\x5c\xc0\x63\x69\xe2\x6d\xee\x25\xab\x40\ \x50\x78\x06\xe3\x36\xdb\x68\xc0\x5b\x79\x5f\x90\x4d\x36\x90\x40\ \x3c\x78\x20\xdf\x1f\xa6\xa9\xc0\x62\xee\x0b\xdd\xa8\x15\x8e\xc0\ \x46\xd1\x54\x34\xdc\x9c\x16\x40\x50\x2c\x8b\x60\x99\x08\x6c\x40\ \x36\xbd\xcc\x4f\x3b\xe3\xde\x40\x53\xeb\xb9\x5f\x13\x4e\xf5\xc0\ \x64\x7c\xf0\xaf\xc2\x25\x0e\x40\x5a\x98\x3c\x0c\x1d\xa8\x48\xc0\ \x67\x9f\x25\xca\x16\x7f\xd6\x40\x69\x6a\x0f\xf6\x58\xaf\x08\x40\ \x61\x88\x20\xfb\x20\xf3\x53\x40\x5e\xdc\xfb\x59\x7a\x65\xa7\x40\ \x60\xa1\xe2\xe3\xc1\x23\x31\x40\x6b\xea\x34\x79\x8e\x30\xd7\x00\ \x00\x00\x10\x40\x38\x4c\xc8\xc0\x24\xc9\x42\xc0\x62\x97\x20\xa1\ \x03\x51\x04\x40\x3a\x05\x5c\x8e\xb1\x4a\x18\xc0\x58\xb0\x26\xad\ \xfe\xf0\x2a\xc0\x40\xc3\x2a\xae\x96\x4c\x84\xc0\x4e\x4e\xf7\x59\ \x92\xb9\xe9\x40\x50\x0a\x02\x23\xd7\x61\x93\xc0\x43\x9a\x74\x6b\ \xb2\x17\xa4\xc0\x3e\x83\xc3\xce\xab\xca\x54\x40\x45\x35\x58\x3d\ \x81\x3f\x26\x40\x32\x53\x6b\x16\x58\xd6\x2c\x40\x4a\x8f\x99\xdd\ \x2e\xc0\x07\xc0\x44\x7e\x8b\x1e\x3a\xf7\xb4\xc0\x60\x5d\xd7\xa2\ \x25\xe0\x7c\x40\x22\xa3\x03\xc5\xa9\xdf\x80\xc0\x63\x69\xe2\x6e\ \x09\x17\x9f\x40\x50\x78\x06\xe2\x9d\xee\x8d\xc0\x5b\x79\x5f\x8e\ \xab\xef\xf2\x40\x3c\x78\x20\xe1\x4b\xbe\x79\xc0\x62\xee\x0b\xdd\ \x5a\xe2\xd6\xc0\x46\xd1\x54\x35\x37\x7f\x10\x40\x50\x2c\x8b\x66\ \x27\xb0\x54\x40\x36\xbd\xcc\x5b\xc5\xe0\xc4\x40\x53\xeb\xb9\x5b\ \xee\x21\x36\xc0\x64\x7c\xf0\xb0\xde\x77\x49\x40\x5a\x98\x3c\x0c\ \x46\x3a\xd9\xc0\x67\x9f\x25\xca\x2d\x3d\x92\x40\x69\x6a\x0f\xf6\ \xb0\x9e\x4b\x40\x61\x88\x20\xfc\x0c\x68\x9b\x40\x5e\xdc\xfb\x59\ \xe2\x4e\xeb\x40\x60\xa1\xe2\xe3\xbe\xa1\x23\x40\x6b\xea\x34\x79\ \xb1\x00\x66\x00\x00\x00\x10\x40\x38\x4c\xc8\xbf\xee\x70\x14\xc0\ \x62\x97\x20\xa1\xc8\x92\x26\x40\x3a\x05\x5c\x96\xb9\x6c\xbd\xc0\ \x58\xb0\x26\xae\xd4\xfb\x26\xc0\x40\xc3\x2a\xad\x8a\x57\xfb\xc0\ \x4e\x4e\xf7\x60\x9d\x78\x70\x40\x50\x0a\x02\x23\x9f\x41\xd1\xc0\ \x43\x9a\x74\x67\xeb\x91\x0b\xc0\x3e\x83\xc3\xdb\x88\xea\x29\x40\ \x45\x35\x58\x43\x67\x7a\x47\x40\x32\x53\x6b\x0f\x95\x49\xb5\x40\ \x4a\x8f\x99\xd6\x94\x32\x19\xc0\x44\x7e\x8b\x20\x27\xcb\x9d\xc0\ \x60\x5d\xd7\xa3\xdd\xa0\x33\x40\x22\xa3\x03\xca\x36\x6d\xdb\xc0\ \x63\x69\xe2\x6e\x2c\x5c\x37\x40\x50\x78\x06\xe1\xd5\xc5\xef\xc0\ \x5b\x79\x5f\x8c\x89\xc7\x6e\x40\x3c\x78\x20\xe4\x23\x98\x6b\xc0\ \x62\xee\x0b\xdc\xf5\xd8\x14\xc0\x46\xd1\x54\x35\xae\x76\x39\x40\ \x50\x2c\x8b\x6d\x6d\xc6\x31\x40\x36\xbd\xcc\x6c\x2f\x5e\xd3\x40\ \x53\xeb\xb9\x57\xd0\x3e\xef\xc0\x64\x7c\xf0\xb2\x52\x9c\x24\x40\ \x5a\x98\x3c\x0c\x7b\x55\xad\xc0\x67\x9f\x25\xca\x4b\x01\x8e\x40\ \x69\x6a\x0f\xf7\x23\xb6\xf6\x40\x61\x88\x20\xfd\x40\x98\x5e\x40\ \x5e\xdc\xfb\x5a\x6a\x50\xcc\x40\x60\xa1\xe2\xe3\xbb\x58\xc4\x40\ \x6b\xea\x34\x79\xde\x90\x91\x00\x00\x00\x10\x40\x38\x4c\xc8\xbf\ \xdd\x05\x9e\xc0\x62\x97\x20\xa2\x07\xc7\xe2\x40\x3a\x05\x5c\x99\ \x4c\x59\xcf\xc0\x58\xb0\x26\xaf\x19\x92\x90\xc0\x40\xc3\x2a\xad\ \x34\x79\x79\xc0\x4e\x4e\xf7\x62\xdf\x2a\xa1\x40\x50\x0a\x02\x23\ \x8d\x45\xef\xc0\x43\x9a\x74\x66\xb5\xd7\xe9\xc0\x3e\x83\xc3\xdf\ \xa8\x34\xb2\x40\x45\x35\x58\x45\x4b\x6f\x42\x40\x32\x53\x6b\x0d\ \x6a\x68\xe4\x40\x4a\x8f\x99\xd4\x76\x73\x36\xc0\x44\x7e\x8b\x20\ \xc5\xb9\x45\xc0\x60\x5d\xd7\xa4\x6a\x8b\x7a\x40\x22\xa3\x03\xcb\ \xab\x9d\x74\xc0\x63\x69\xe2\x6e\x37\xa9\x75\x40\x50\x78\x06\xe1\ \x95\xa1\xdb\xc0\x5b\x79\x5f\x8b\xda\xc3\x2a\x40\x3c\x78\x20\xe5\ \x0c\xd5\xed\xc0\x62\xee\x0b\xdc\xd5\x77\x11\xc0\x46\xd1\x54\x35\ \xd4\x96\x1e\x40\x50\x2c\x8b\x6f\xc2\x7c\x13\x40\x36\xbd\xcc\x71\ \x71\xc0\xb2\x40\x53\xeb\xb9\x56\x7e\x86\x5a\xc0\x64\x7c\xf0\xb2\ \xc9\xdd\x72\x40\x5a\x98\x3c\x0c\x8c\x5a\x33\xc0\x67\x9f\x25\xca\ \x54\x8b\x69\x40\x69\x6a\x0f\xf7\x48\x99\x09\x40\x61\x88\x20\xfd\ \xa3\x5a\xc4\x40\x5e\xdc\xfb\x5a\x95\xe6\x4c\x40\x60\xa1\xe2\xe3\ \xba\x4b\x77\x40\x6b\xea\x34\x79\xed\x2a\x63\x00\x00\x00\x10\x40\ \x38\x4c\xc8\xbf\xa9\x3c\xf7\xc0\x62\x97\x20\xa2\xc3\xba\x2f\x40\ \x3a\x05\x5c\xa0\xf4\xb7\xf1\xc0\x58\xb0\x26\xaf\xe5\x96\xe4\xc0\ \x40\xc3\x2a\xac\x34\xe6\xf4\xc0\x4e\x4e\xf7\x69\x95\xca\xcd\x40\ \x50\x0a\x02\x23\x57\xdb\x46\xc0\x43\x9a\x74\x63\x1c\x4c\x49\xc0\ \x3e\x83\xc3\xeb\xeb\x58\x7a\x40\x45\x35\x58\x4a\xeb\x0b\xde\x40\ \x32\x53\x6b\x06\xf7\xe1\xda\x40\x4a\x8f\x99\xce\x2a\xed\x2d\xc0\ \x44\x7e\x8b\x22\x9b\x7b\xcb\xc0\x60\x5d\xd7\xa6\x0d\xc7\x6c\x40\ \x22\xa3\x03\xd0\x01\xd2\x5f\xc0\x63\x69\xe2\x6e\x59\x48\xae\x40\ \x50\x78\x06\xe0\xd6\xe9\xc6\xc0\x5b\x79\x5f\x89\xd1\xfd\x18\x40\ \x3c\x78\x20\xe7\xc2\xd5\xed\xc0\x62\xee\x0b\xdc\x75\x1f\x54\xc0\ \x46\xd1\x54\x36\x45\xdf\xf2\x40\x50\x2c\x8b\x76\xb1\x88\xd7\x40\ \x36\xbd\xcc\x81\x16\xe5\x42\x40\x53\xeb\xb9\x52\x91\xe6\x77\xc0\ \x64\x7c\xf0\xb4\x2c\x9e\xd1\x40\x5a\x98\x3c\x0c\xbe\x99\x62\xc0\ \x67\x9f\x25\xca\x70\xda\x68\x40\x69\x6a\x0f\xf7\xb6\x0f\x69\x40\ \x61\x88\x20\xfe\xc9\x33\xea\x40\x5e\xdc\xfb\x5b\x17\x3b\x26\x40\ \x60\xa1\xe2\xe3\xb7\x2f\x1f\x40\x6b\xea\x34\x7a\x18\x57\x7f\x00\ \x00\x00\x10\x40\x39\x3a\xfb\x80\x37\xf3\x20\xc0\x61\xfc\xcb\xa3\ \xcd\x26\xb3\x40\x36\xe1\xc0\x3b\x54\x6a\xc7\xc0\x57\x7d\x1f\x83\ \x86\xf3\x1c\xc0\x42\x8a\xc6\x53\xae\xe3\x90\xc0\x4c\x3d\xf4\x90\ \xee\x6c\x3f\x40\x4e\x2d\x2a\x66\xb7\xf4\x4a\xc0\x40\xfe\x98\xb5\ \x59\x0c\x29\xc0\x41\x9c\x26\x3c\x27\x7a\x60\x40\x47\x49\xd1\x47\ \xd2\xac\x49\x40\x2a\xff\x46\x2d\x2a\xf5\xdd\x40\x4c\xe9\x81\x90\ \xd0\x9c\x7c\xc0\x43\xec\x12\xf4\xe3\xc3\x79\xc0\x5f\xc9\x03\x0f\ \xff\x7b\x76\x40\x21\x4c\x2e\x53\x8d\xf5\xb6\xc0\x63\x5e\x70\x2e\ \xf1\x12\x4a\x40\x60\x35\xaf\x9d\x23\xb9\xb3\xc0\x47\xf5\xbd\xee\ \x88\x2b\x80\x40\x5f\x27\xde\x05\x0a\xe0\xcd\xc0\x59\xe5\xec\x76\ \x6e\x20\x9e\xc0\x49\x4b\x2f\xeb\x9c\x1a\x49\x40\x51\x2b\xee\x40\ \x71\xae\x98\x40\x31\x9e\x54\x8b\xa5\x0f\x9e\x40\x55\x1b\xb6\xcb\ \xa1\xcb\x36\xc0\x65\x42\x19\x74\x05\x9a\xf9\x40\x5a\xb0\xf1\x49\ \x6b\xdf\x29\xc0\x67\xab\x60\x4e\xa0\x19\x85\x40\x69\xa0\x71\xdc\ \x2e\x28\xe1\x40\x61\x1f\xc5\xf2\x50\xd7\x8a\x40\x5e\xb5\x77\xa5\ \x7e\x2d\xd8\x40\x60\xa2\xa4\x00\xc9\xca\x1b\x40\x6b\xdc\x49\x66\ \x6f\x08\x2d\x00\x00\x00\x10\x40\x39\x6d\xdd\x13\x57\xa1\xd5\xc0\ \x61\x88\xae\xf7\xb1\x07\xb9\x40\x3d\xcf\xf4\x8d\x6a\x17\x82\xc0\ \x56\x9d\xa9\x7a\xdd\x4a\xee\xc0\x3f\xd1\x0f\xe0\xc8\xca\x1b\xc0\ \x4b\xe5\xb8\x99\x8a\x88\x81\x40\x50\x1e\xc0\x45\x2f\x34\x10\xc0\ \x3c\xd5\xaf\x28\x25\x54\xfa\xc0\x41\x59\xfd\x10\xd6\x49\xbe\x40\ \x47\x9e\x2c\x2b\x96\x3e\x8e\x40\x2a\xe2\xd5\x8c\x54\xd6\x15\x40\ \x4e\x5c\xbb\xef\xb1\x92\x66\xc0\x43\xbf\xfb\xa6\x99\x4b\x21\xc0\ \x5f\x85\x8a\xa8\x9e\x7f\x25\x40\x20\xe3\xcd\x5f\xf2\x68\xe2\xc0\ \x63\x5a\x9f\x77\xe2\x62\x79\x40\x60\xd6\xe3\xac\xcc\x5f\x90\xc0\ \x34\xa5\x13\xa5\x48\xae\xc2\x40\x64\xe3\x80\x6b\x21\x27\x96\xc0\ \x50\x8d\x0b\x23\xa9\xc3\xe4\xc0\x49\x89\xcb\x5b\xbe\x67\xd3\x40\ \x51\x26\xf3\x40\xd2\x0d\xc1\x40\x30\x53\x3d\xec\x2b\xcb\xe3\x40\ \x55\xdf\xb6\x87\x83\x72\xc9\xc0\x65\x50\x90\x7a\x79\xec\x90\x40\ \x5a\xb3\x5d\xfd\x75\x1b\xbb\xc0\x67\xac\x23\x85\x4c\x3e\xc1\x40\ \x69\xa4\x50\xfd\xc1\x1a\xbe\x40\x61\x15\x08\x2c\x04\x80\x35\x40\ \x5e\xb2\x16\xd8\x69\xeb\x99\x40\x60\xa2\xb0\x72\x32\x30\x48\x40\ \x6b\xdb\x00\x4c\xb4\x72\x34\x00\x00\x00\x10\x40\x39\x79\xe6\xd8\ \x96\x75\x3a\xc0\x61\xc0\x16\x90\x87\x0e\xed\x40\x38\x8f\xec\xd9\ \xc7\x51\xb7\xc0\x57\x00\xb8\x99\x9b\x0c\x77\xc0\x42\x03\xf3\x87\ \x9c\x0b\x95\xc0\x4b\xc8\x06\x2f\x17\xcb\x6f\x40\x4e\x81\x5b\x7b\ \x07\x5f\xac\xc0\x3f\x6b\x1b\x49\x9f\xef\xa8\xc0\x41\xf5\x1a\xbf\ \x81\x76\xdc\x40\x47\xc1\xb0\x33\x3e\x15\x87\x40\x29\x35\xe9\x42\ \xe0\x6f\x26\x40\x4d\xcb\x37\x6d\xa6\xc4\xbd\xc0\x43\xc2\xd2\x31\ \x5b\xf1\xae\xc0\x5f\x8b\xf9\x65\x4b\xb3\xb9\x40\x20\xf2\x38\xea\ \x61\xb5\x68\xc0\x63\x5b\x25\xb1\x29\x73\x44\x40\x60\x74\xb0\xf1\ \xaf\x14\x87\xc0\x3c\x2b\x5b\x9f\xd5\xcc\x3a\x40\x5f\xd1\xff\x1a\ \xb3\xb4\x69\xc0\x54\xf9\x9f\x72\x33\xf9\x81\xc0\x49\xd3\xfa\x57\ \xad\xf2\x84\x40\x51\x56\xe6\x30\xad\x36\xf7\x40\x30\x45\x7a\x8e\ \xd7\x55\xf9\x40\x55\x90\xcf\xcc\x04\x2a\x2d\xc0\x65\x6a\x17\x30\ \x58\x3c\xd3\x40\x5a\xb7\x3e\x31\xfb\xc0\xbc\xc0\x67\xad\x5a\x2e\ \xcc\x97\xbb\x40\x69\xaa\xd2\x12\x76\xcf\xc6\x40\x61\x08\x27\xfd\ \xad\x8d\xa9\x40\x5e\xad\xed\x6b\x24\xb9\x5c\x40\x60\xa2\xbe\x9a\ \x9d\xff\x01\x40\x6b\xd9\x5b\x1b\x78\x99\x99\x00\x00\x00\x10\x40\ \x3a\x1c\xba\xdc\xfa\x1a\x5d\xc0\x60\xf5\xc8\x41\xf4\x13\xe6\x40\ \x41\xfa\x03\xbb\xf4\x1d\x4a\xc0\x55\xaa\x26\xe9\xec\x4c\xf0\xc0\ \x3b\x21\x4c\xc6\x54\x3f\x5c\xc0\x4b\x5b\x50\x0c\x7c\x8f\x98\x40\ \x50\xf9\x7f\xcb\x19\x0b\xae\xc0\x37\x93\x4b\x4f\x3b\xf3\x58\xc0\ \x41\x41\x68\xf8\x0c\x13\x54\x40\x48\x0c\x99\x85\x2c\x7f\x15\x40\ \x2a\x01\x64\x6f\x7e\xaa\x70\x40\x4f\xd5\xa4\x26\x6b\xe0\x61\xc0\ \x43\x74\x8b\x1b\xb1\x98\xf2\xc0\x5f\x1b\xe4\x8e\x02\x7c\x6d\x40\ \x20\x42\xe5\x35\xba\xbe\x4c\xc0\x63\x54\x64\xe8\xa8\x03\x5e\x40\ \x61\x53\x48\x12\x1c\xc4\xf0\xc0\x38\x89\xd7\xe7\xcb\xc4\x43\x40\ \x65\x76\x6e\x3f\xaf\x20\x22\xc0\x51\x65\xa7\xda\xaa\x26\x75\xc0\ \x49\xe6\x46\x82\xd0\x24\xb9\x40\x51\x2f\x67\xdc\xf2\x10\xf5\x40\ \x2d\x70\x6e\xe1\xf3\xcb\xfa\x40\x56\xa2\x91\x0e\xe0\x3f\x9d\xc0\ \x65\x68\x72\x72\x08\xfb\x25\x40\x5a\xb7\x12\xd7\xa9\xc0\x26\xc0\ \x67\xad\x49\xf8\x95\x22\x31\x40\x69\xaa\x71\xed\xc5\x2f\x89\x40\ \x60\xfd\xd6\x05\x90\x17\x3d\x40\x5e\xab\x02\x86\x36\xeb\xc5\x40\ \x60\xa2\xc7\x56\x35\x46\xe9\x40\x6b\xd8\x35\x4f\xe4\xc4\x52\x00\ \x00\x00\x10\x40\x3a\x22\xa0\xc0\xc8\x8c\x68\xc0\x61\x7a\xe1\x71\ \x57\xe2\xd0\x40\x37\x88\x57\x2b\xb4\x27\x65\xc0\x56\x7a\x19\x92\ \x2d\x24\x6c\xc0\x42\xaa\x2f\xed\x9b\x21\x34\xc0\x4a\xf4\xa5\x85\ \xef\xfb\x8d\x40\x4d\xc3\xc6\xac\x45\x1a\x79\xc0\x3d\x0b\xa3\xc1\ \xb3\x70\xbf\xc0\x42\xfd\x76\x03\x11\x38\x1a\x40\x48\x95\x81\x53\ \xec\x54\xe6\x40\x24\xe6\xbc\x4c\xf9\xb4\xf7\x40\x4e\xcc\x4f\xe2\ \x80\x6a\x4e\xc0\x43\x7b\x0d\x6e\x7d\x0a\xc0\xc0\x5f\x26\x9b\xe0\ \x90\x2d\x70\x40\x20\x57\xdc\x86\xe0\xd3\xec\xc0\x63\x55\x29\x47\ \x39\xb3\x08\x40\x60\x47\xa0\x6e\xe2\x7b\xe5\xc0\x3d\x8e\x03\x79\ \xb3\xc5\xd8\x40\x59\xf4\xd9\x6e\xa3\x7d\xca\xc0\x53\xb4\xae\x8b\ \xb8\xe6\x2d\xc0\x4a\xf0\xb2\x63\x73\x25\x8f\x40\x51\xb9\x89\xae\ \x4e\xeb\xcd\x40\x2b\xd9\x2c\xa9\xd0\xb1\x70\x40\x56\x13\x03\x84\ \xe7\x17\x50\xc0\x65\xbe\x60\xdc\xb9\x87\x4b\x40\x5a\xc4\x9a\x9e\ \x26\x0d\xb2\xc0\x67\xb0\xd3\x88\x9b\xee\x09\x40\x69\xbf\x4a\x43\ \x04\x51\xc2\x40\x60\xd2\x70\x29\x96\x40\xc4\x40\x5e\x9e\x5d\xed\ \x9c\x03\x41\x40\x60\xa2\xe4\x5f\xbf\xef\x51\x40\x6b\xd2\xd4\x01\ \xf5\xda\x8f\x00\x00\x00\x10\x40\x39\x93\x07\x18\x7c\x00\x57\xc0\ \x61\xed\x38\x48\x04\xf6\x05\x40\x39\xce\xd4\x3d\x16\x4f\xe1\xc0\ \x57\x5a\x79\x80\xd1\xee\x90\xc0\x41\x5a\xb0\x5b\xd9\x84\xa7\xc0\ \x4c\x6b\x4b\xa6\xc5\x05\x67\x40\x4f\x31\x11\x79\x69\xca\xc4\xc0\ \x40\x72\xd8\x87\x3f\x4a\xdb\xc0\x41\x30\x33\x06\x0e\xbd\x6d\x40\ \x47\x1e\x92\xf6\x5f\x87\x9d\x40\x2c\x56\xb7\x92\x4c\x0f\x54\x40\ \x4d\x1a\xcc\x86\x22\xf3\x62\xc0\x43\xed\x68\x86\x6d\xf1\xf7\xc0\ \x5f\xd7\x21\x49\x55\x4f\x8d\x40\x21\x78\xc7\xca\xdd\xae\x33\xc0\ \x63\x60\x08\x68\x37\x94\x7d\x40\x55\x61\x16\x46\xec\xb7\xbc\xc0\ \x58\xed\xdd\x9f\xdd\x31\xf6\x40\x4d\x34\xd5\x5d\xce\x73\x18\xc0\ \x62\x93\x74\x7f\x87\x8c\xe0\xc0\x49\x09\x16\x63\x43\xbe\xc4\x40\ \x51\x07\x88\xc1\x11\x6b\x6e\x40\x31\xe4\xaf\x64\x08\xd2\xab\x40\ \x55\x38\x17\x72\x80\xb5\xac\xc0\x65\x2c\x52\x57\x7f\x38\xd6\x40\ \x5a\xad\x44\x85\x31\xfe\xd5\xc0\x67\xaa\x28\xdf\x87\x91\xd0\x40\ \x69\x9a\x80\x20\x4d\x49\x84\x40\x61\x2c\x4a\x92\x0c\x64\x0a\x40\ \x5e\xba\x92\xb8\xd5\x32\x10\x40\x60\xa2\x8e\x79\x47\xf5\xf0\x40\ \x6b\xde\x52\x7b\xcd\xff\x76\x00\x00\x00\x10\x40\x39\xa0\x87\x98\ \xb8\xe0\xec\xc0\x62\x2e\x9b\xf4\x0c\x9a\x1f\x40\x38\x3b\x99\x1e\ \x7f\x21\x57\xc0\x57\xde\x76\x78\x0a\x75\x02\xc0\x41\xdb\xc9\xce\ \x7f\xdb\x4c\xc0\x4c\xfd\x56\x17\x6b\xc4\x02\x40\x4e\xdd\x63\x67\ \xe8\x83\x36\xc0\x41\xc3\x56\x92\x55\x6f\xcc\xc0\x40\xe7\x7e\x05\ \xfc\x43\x82\x40\x46\x8a\x57\x00\x41\xd6\xd1\x40\x2d\xd4\x62\x54\ \xe0\x04\x59\x40\x4c\x27\x56\xc2\xcd\x8b\x08\xc0\x42\x5a\xf0\x4d\ \x5a\xcb\xe6\xc0\x60\x15\xda\x3c\x46\xaf\x80\x40\x2e\xe6\x21\xc4\ \x8c\x1a\x04\xc0\x62\x99\x50\xe9\xf4\x73\xa0\x40\x50\x8a\xee\x4b\ \xfe\x05\x2c\xc0\x5a\x86\x37\xad\x7c\x15\x19\x40\x3e\x0c\x8f\x47\ \x89\x42\x31\xc0\x62\x98\x5b\xa9\x88\xc3\x3a\xc0\x48\x95\x4f\x39\ \x7f\x7d\xf0\x40\x50\xcc\x9d\xf9\xdf\xe9\xd6\x40\x33\x0b\xd4\x0c\ \x5e\xaf\x8e\x40\x54\xba\x84\x35\x41\xd8\x1e\xc0\x65\x06\xae\x6d\ \x56\x5a\x3b\x40\x5a\xa7\x7d\x7e\x97\xc5\xb4\xc0\x67\xa7\xfe\xa3\ \xda\x60\x69\x40\x69\x90\x32\x32\xe0\xf7\x43\x40\x61\x3b\xaa\x06\ \x78\xb7\xc1\x40\x5e\xc0\x47\x72\x5e\x23\xb6\x40\x60\xa2\x75\x46\ \x84\x56\xc3\x40\x6b\xe0\x78\xd5\xcc\x8c\x07\ \x00\x00\x09\x2c\ \xff\ \xff\xff\xff\x00\x00\x00\x09\x00\x00\x00\x10\xc0\x36\xc1\x31\xf7\ \x71\x07\xcd\xc0\x62\xc4\x31\x65\x15\x96\x34\xc0\x22\x59\x75\x1b\ \x5e\x3f\xf0\xc0\x59\x80\x9a\x15\x13\xe9\x09\xc0\x47\x52\xc9\x1c\ \x2f\x1a\x7a\xc0\x45\x06\x29\x2a\x67\x31\x79\x40\x49\x64\xe4\x36\ \x8c\xfe\x06\xc0\x50\x22\x71\x64\xe5\x3f\xcb\x3f\xc9\x7e\x46\xc2\ \x82\x74\x41\x40\x48\xe2\x7c\x67\xa7\x02\xf2\x40\x48\x75\xb8\xda\ \x6c\xe4\xac\x40\x43\x43\x8c\xb1\x63\x97\xf6\xc0\x59\x94\x32\xd7\ \x73\x76\xf3\x3f\xf8\xd1\x11\x6b\x2c\x82\x25\xc0\x5f\x82\xbf\x09\ \xb5\x16\xad\x40\x4a\x15\x6d\x1b\x87\x1c\x19\x40\x55\x32\x73\xaa\ \x94\xec\x77\xc0\x04\x4e\x49\x68\xe6\x95\xd3\x40\x60\xe5\xde\x62\ \x15\x6c\x95\xc0\x3a\xbb\x5f\xa9\x86\x06\x7e\xc0\x0f\x68\xca\xdb\ \xdc\xdd\x36\x40\x53\x18\x3a\x74\x13\x56\x51\x40\x50\x12\x0e\xb5\ \x6f\x61\x5c\x40\x4e\x52\x58\x0d\xd3\x0c\x6d\xc0\x38\xbe\x69\x34\ \x34\x0d\xd7\x40\x69\x01\x3e\xaa\x3a\x4e\xf3\xc0\x3d\xff\xa9\xa5\ \x4e\x81\xa7\x40\x72\xc0\x69\xcc\x0a\xb2\x0e\x40\x3f\xa2\xaf\xee\ \xb2\x7a\xa3\x40\x66\xb7\x06\x0c\x87\xf6\x2d\x40\x3d\xae\x9a\x40\ \x3c\x67\x56\x40\x71\x9d\x34\xa4\xbb\x47\x7d\x00\x00\x00\x10\xc0\ \x30\xaf\xc1\x69\x97\x5a\x95\xc0\x63\x49\x63\x4e\x8e\x9f\xdc\xc0\ \x1e\xaf\xb7\x04\x39\xf0\x0c\xc0\x5a\x46\x95\xdc\xfb\x24\x8e\xc0\ \x49\x9c\xd2\x5c\x93\x47\x4c\xc0\x48\xb5\xcf\xe8\x99\x9c\xdd\x40\ \x48\x02\x8f\xa5\xd6\xdc\x31\xc0\x4e\xc7\x1a\x4e\x1b\x4a\x1c\xc0\ \x2c\x94\xbf\x13\x77\x29\x41\x40\x47\x68\xf0\xdd\xb4\xba\x6a\x40\ \x41\xac\x5d\x06\x4f\x13\x18\x40\x44\x62\x29\x5f\x79\x2c\x69\xc0\ \x58\x78\xf9\x10\x42\x39\x8c\x40\x0d\x9e\x34\x27\x91\xbd\x70\xc0\ \x63\x03\xb5\x2e\x0b\xf6\xb5\x40\x31\x49\xc5\x70\x34\x57\xdc\x40\ \x55\x55\x0b\xb2\x96\x65\xb2\xbf\xf7\xd0\xc3\xa3\x37\x60\x82\x40\ \x60\xe6\x74\x90\x7c\xd3\xd5\xc0\x3a\xbd\xb7\xf4\x49\xd6\x6d\xc0\ \x35\x33\x14\x59\x01\x4b\xa9\x40\x52\x36\xaa\xf8\xcd\xd9\x51\x40\ \x48\x24\x95\xbf\x77\x92\xaf\x40\x50\x19\x5d\x72\x39\xa4\xee\xc0\ \x38\x3c\x43\x48\x09\x4c\x70\x40\x68\xc7\x21\x6e\x01\xfb\xd3\xc0\ \x3d\xe6\x09\x44\x84\xd2\x4f\x40\x72\xa2\xff\xdd\x04\x92\x32\x40\ \x3d\x30\xda\x3a\xb4\x2e\xfe\x40\x67\x8a\xdf\x98\x83\xb8\xf6\x40\ \x3d\xa4\x89\x7f\x23\xcd\xd5\x40\x72\x07\x6b\x4d\x22\x90\x7e\x00\ \x00\x00\x10\x3f\xe8\xdc\xd8\x6c\x4e\xe2\x7a\xc0\x63\x6c\xe1\x17\ \xf2\xa0\xbf\xc0\x1c\xa0\x1f\x76\xa3\x67\x0e\xc0\x5a\x82\x4b\xa2\ \xc3\x07\x44\xc0\x4e\x6a\xa4\x92\xae\xdd\x89\xc0\x4e\x00\xb1\x06\ \xb8\xfd\xe4\x40\x43\x6f\xe2\x4f\x4e\xd0\x7e\xc0\x4a\x2d\xf6\xac\ \x0f\xbe\x52\xc0\x45\xc6\xbd\x2e\xcf\xf5\x06\x40\x44\xce\x84\x52\ \x4a\x5a\x37\x40\x19\x34\x31\x96\xfb\x44\x7f\x40\x46\xb7\xe1\xb0\ \xec\xbd\xa9\xc0\x58\xfd\xf7\xfd\x56\xdc\x11\xbf\xf1\xca\x67\x3c\ \x06\x01\x31\xc0\x63\x1e\x02\x33\x3c\x22\x49\xc0\x32\xfa\x9d\x13\ \x66\xaf\x41\x40\x54\x9e\xa9\xbe\x7c\x61\xe3\x40\x0a\x72\xb1\x55\ \x98\x28\x33\x40\x61\x32\xb3\x01\xb0\xbc\x2d\xc0\x18\x63\x1b\xa0\ \x7e\x49\xee\xc0\x4b\xb7\xac\x9e\xf7\xef\xea\x40\x50\x71\xa3\x37\ \xe4\x2e\xa7\x40\x2c\xb8\x60\xb8\xfe\xc6\xc2\x40\x51\xc8\x31\x75\ \xbd\x97\x6c\xc0\x3b\x25\x5d\xe3\x55\xb6\xc3\x40\x67\x7e\x28\x3a\ \x2f\xcf\x04\xc0\x3d\x79\xfb\x74\x2a\xf4\x86\x40\x72\x00\xa4\xae\ \xf2\x81\x95\x40\x3c\xfa\x8b\x66\xc9\x22\x30\x40\x68\x75\x84\x1e\ \x7d\x6d\xd4\x40\x3d\xb5\xf8\x8b\xe7\x75\x6d\x40\x72\x7c\xb6\xc6\ \x9a\xe9\x9a\x00\x00\x00\x10\x3f\xe4\x9d\xa9\x42\x5e\xe7\x43\xc0\ \x63\x56\x3a\x89\xf9\xf5\x03\xc0\x1b\xb9\xb9\x7a\xc0\xda\x37\xc0\ \x5a\x51\x6d\x68\xd6\x38\x91\xc0\x4f\xf0\xb8\xf8\x76\x60\x54\xc0\ \x4f\xad\xc6\x15\x51\x43\xe4\x40\x41\x7d\xdd\x1f\xa6\x7e\x97\xc0\ \x48\x29\x8c\x8c\x88\xc5\xd5\xc0\x4b\x19\x1c\xf8\xef\x04\xe9\x40\ \x43\xa1\x52\x38\x86\xcc\xe1\xc0\x13\x11\x86\xaf\xfa\x18\xd1\x40\ \x47\x64\x45\xcd\x84\x52\xf0\xc0\x5d\x6b\xc7\x4d\xed\xcd\x82\xc0\ \x31\x79\xa5\x95\x16\x3c\x6c\xc0\x64\x78\xba\xa8\x85\x58\x74\xc0\ \x48\x8e\x36\x95\x37\x4b\xa5\x40\x54\xcc\x34\x76\x69\xe8\x4e\x40\ \x0b\x3e\xdf\x5f\x9e\x8d\xa3\x40\x60\x65\x54\x53\xc4\x38\x71\x40\ \x40\x0c\xb3\x84\x9f\xd2\x9c\xc0\x50\xf6\x2c\x1c\x95\xbd\x9f\x40\ \x4f\x3b\xb0\x51\x91\x96\x07\x3f\xf5\xb6\xbb\x4c\x89\xfb\xa7\x40\ \x52\x40\x4d\xcb\x0f\x40\xae\xc0\x3e\x45\x9a\x76\x56\xfb\xac\x40\ \x66\xc3\x4b\x9c\xe2\xcb\x0b\xc0\x3d\x73\xb5\x3b\x21\x32\xb6\x40\ \x71\xa3\x97\xbc\x79\xdf\x84\x40\x3c\xd5\xf8\x27\x62\x64\x9d\x40\ \x68\x6b\x6d\x0c\x69\x1b\x7e\x40\x3d\xb5\x37\x81\x76\xb1\xee\x40\ \x72\x77\xa6\xa6\x21\xce\x5f\x00\x00\x00\x10\xbf\xe3\x54\xf9\xd1\ \xc3\xbb\x96\xc0\x62\x39\x5d\x48\x40\x62\x61\xc0\x13\xa4\x40\xfe\ \x23\x41\x66\xc0\x57\xfe\x9e\x7a\x5a\x8c\x65\xc0\x51\x53\x87\x2f\ \x98\x9f\x2f\xc0\x50\xb1\x13\x00\xa7\xbf\x57\x40\x38\x4d\x1d\xa7\ \x39\x9a\x03\xc0\x3f\x95\x6d\x6a\x72\xf6\x4d\xc0\x54\x45\x8b\x2f\ \x57\x8e\x27\x40\x41\xd1\x53\x04\xab\x6e\xf7\xc0\x41\x24\x47\xc5\ \x1a\x30\x9b\x40\x4a\x9d\x0a\xaa\x84\xfc\x0d\xc0\x61\x26\xda\xae\ \x5a\xbe\x0d\xc0\x47\x87\xad\x31\xe6\x56\x49\xc0\x65\xf1\xab\xa2\ \x9d\x71\x7a\xc0\x55\xef\x9f\x23\x26\xbf\xfd\x40\x44\x02\xa4\x34\ \x49\x99\xb4\x40\x42\xad\xc5\x39\xfc\xc3\xc9\x40\x54\x77\x1a\x63\ \x55\xdd\x55\x3f\xd2\x3b\x7b\x22\x6a\xd6\x1f\xc0\x58\xcf\x8d\xc1\ \xb5\x07\x54\x40\x4b\xc2\x62\x63\xab\x19\x62\xc0\x40\xdb\xfa\x46\ \x22\x87\x89\x40\x54\x09\x64\xf2\x9a\x80\x2a\xc0\x44\xeb\x29\x9a\ \x2f\x94\x49\x40\x64\xe0\x36\x35\x4c\x3c\x43\xc0\x3e\x7e\x4a\x3b\ \x7b\x99\xfd\x40\x70\xa7\xca\x20\xaa\x48\xd9\x40\x39\x90\x46\xa5\ \x32\x46\xfc\x40\x67\xd4\xc0\x6c\x37\x15\xaa\x40\x3d\x93\xe0\x30\ \xd5\xa0\xe6\x40\x72\x2b\x16\x2e\xda\x91\xd2\x00\x00\x00\x10\xbf\ \xd7\x9d\xe7\xa1\x97\x39\xc0\xc0\x62\xbc\xd5\xa4\x38\x2b\x33\xc0\ \x2b\x24\x07\xa2\xf7\xbc\x3a\xc0\x59\x6b\x39\x1d\x48\x8d\x2d\xc0\ \x50\xfc\x22\x5d\x98\xd8\xe0\xc0\x4c\x3b\x80\x46\xaf\xdc\x40\x40\ \x3f\xa3\xe1\x10\x37\xbc\x7c\xc0\x47\xa7\x33\xb0\x1d\xd6\x38\xc0\ \x4a\x1a\x00\x9f\xcb\xe1\x48\x40\x46\xb3\xbc\xc6\xce\x1c\xfe\xc0\ \x03\x4e\xc7\x08\x76\xc7\x1c\x40\x48\xfd\xf5\x33\x7e\x4b\x81\xc0\ \x60\x62\xd0\x37\xd0\x3e\x25\xc0\x38\xa5\xfa\x53\xfc\x7a\x7d\xc0\ \x64\x52\x8c\x8e\xde\xf0\x6d\xc0\x51\xb5\x7b\xf0\xe3\x85\x21\x40\ \x52\x61\x8e\x3b\xeb\xd1\xde\x40\x23\x54\x72\x4d\x7e\x66\xb6\x40\ \x5a\xc6\x30\x18\x78\x65\x5e\xc0\x41\x84\x35\xad\x81\xc8\x84\xc0\ \x50\x1c\xe1\x3c\xef\x41\x96\x40\x51\x58\x7f\x41\x27\xa7\x22\x40\ \x15\x04\xa4\x11\x8b\xa5\x4c\x40\x52\xf2\xe2\x10\x1d\xbe\x94\xc0\ \x3a\xad\xdb\xf6\xe0\xcd\x29\x40\x67\x9e\xa8\x6e\xa4\x7f\x43\xc0\ \x3d\xa4\xca\x4b\x1f\x0f\x46\x40\x72\x10\xa0\x16\xce\x0d\xd1\x40\ \x3d\xed\xb9\x7b\x1d\xf5\x8a\x40\x68\xd7\xc6\xd6\xaf\x31\x50\x40\ \x3d\xb4\xa6\x32\xb3\x72\x09\x40\x72\xad\xe2\x15\x3d\xe8\xd8\x00\ \x00\x00\x10\xc0\x34\xf7\x01\x4a\xe8\x31\x37\xc0\x63\x08\xe7\x3c\ \xd7\x52\x6e\xc0\x32\x87\x01\x16\xce\x22\x54\xc0\x59\x95\x8a\xc3\ \xc9\x1c\xb8\xc0\x51\x35\xc9\xdc\xb0\xdf\xb7\xc0\x4a\x53\xba\xaa\ \x59\xe9\x6d\x40\x3f\x27\xe3\x21\x77\x13\xbc\xc0\x4a\x03\x47\xa6\ \x3c\x27\xd1\xc0\x46\x3c\x28\x27\x7d\x72\x7b\x40\x47\xbf\xcc\xb2\ \x9b\x75\xf7\x40\x16\x1c\xbe\x7d\x45\x21\x89\x40\x47\xe9\x2b\xf5\ \x69\xa9\x7a\xc0\x5e\xfa\xe4\x52\xe2\xee\x3d\xc0\x20\x9f\xc3\x12\ \xc5\x03\x2a\xc0\x63\x2d\x67\xd4\x68\xd9\xd5\xc0\x4b\xe6\x04\xf7\ \xc6\xd3\xb2\x40\x56\x9a\x17\x7f\xf0\x8a\x61\xc0\x2a\xde\xdc\xce\ \x99\x86\xc2\x40\x5d\x35\xe2\x20\x89\xba\x10\xc0\x4f\x58\x95\x85\ \x01\x84\xd4\xc0\x4b\x51\x42\xfa\x2b\xa5\xef\x40\x52\x1b\x84\x34\ \xad\x36\xdf\x40\x2e\xba\x76\xa5\xb1\xb8\x45\x40\x52\x39\x02\x49\ \xaa\x30\x3e\xc0\x37\xb9\x6f\x87\xfd\xd0\x77\x40\x68\x3e\xb5\xb9\ \xe8\xcd\x8a\xc0\x3d\xdf\x2f\x40\x7a\xc8\xd0\x40\x72\x5e\x54\xd0\ \xa5\x34\x44\x40\x3d\x8f\xfd\xe1\x90\x52\x8a\x40\x68\xaf\x88\xff\ \xd8\xfc\x30\x40\x3d\xb4\x96\xe1\xc9\x47\x14\x40\x72\x99\xc3\xc3\ \x16\xad\x07\x00\x00\x00\x10\xc0\x44\x1f\xc5\xb0\x8d\xff\xf8\xc0\ \x62\xd7\xcc\xdb\x51\x37\xe9\xc0\x38\x70\x1f\x26\x3f\xdd\xd1\xc0\ \x59\xd3\xca\x12\xd1\x6d\x66\xc0\x50\x9b\x5f\xdf\x54\x98\x82\xc0\ \x47\x35\x38\xde\x3e\x59\xd1\x40\x40\x3a\x4b\xde\xb1\x11\x5e\xc0\ \x4e\xa8\xe3\x73\xc2\x1e\x04\xc0\x3a\xcd\xa4\x3c\x9c\xa3\x4a\x40\ \x48\x5e\xe9\xc8\x41\x4a\x06\x40\x36\xa3\x67\x5c\xdf\x00\x72\x40\ \x44\xa5\x11\xd4\x30\xbb\xbe\xc0\x58\xc8\x06\xa1\x52\x29\xa4\x40\ \x30\x47\xe1\xaa\x31\x64\x3e\xc0\x63\x5d\xb2\xe9\xcc\x7a\xe2\x40\ \x29\xe9\x00\x97\x5b\x70\xaa\x40\x58\x50\x0c\x6f\xef\x08\x06\xc0\ \x40\x80\xf5\x5f\x55\x35\x51\x40\x60\xea\x26\xcc\x19\xc3\x62\xc0\ \x52\x7c\x87\x94\x54\x11\xcd\xc0\x40\x7b\x99\x9a\x58\x7d\x4e\x40\ \x52\xbc\xf9\x47\x74\x9c\xd3\x40\x42\x20\x54\x4b\xe3\x87\xa0\x40\ \x50\x21\x47\x81\x50\x58\x25\xc0\x35\xd8\x1b\x0b\x45\x8c\xdd\x40\ \x68\xfb\x74\x42\x1b\x4c\x50\xc0\x3e\x4d\x9f\x09\xae\x3a\xcb\x40\ \x72\xb9\xff\x8f\xad\x92\x5a\x40\x3d\x6b\xf8\x3a\xfe\x5b\xcc\x40\ \x67\xb7\x76\x0a\x83\x1d\x2b\x40\x3d\xaf\x2e\x02\x24\x00\xa5\x40\ \x72\x1d\xb9\x4a\x83\x5a\x36\x00\x00\x00\x10\xc0\x56\x21\x7b\x1a\ \x2d\x27\x74\xc0\x5d\x7f\x81\xf7\x72\x97\xeb\xc0\x45\x6a\xce\x4b\ \x4a\x59\x0e\xc0\x58\x6b\x98\xca\x1a\xce\x5b\xc0\x50\x79\x21\x8d\ \x02\xed\x0a\xc0\x3e\xd5\xf2\x5c\x01\x40\xa0\x40\x38\x02\xd4\x2c\ \x79\x7b\xb7\xc0\x52\xa7\xde\x66\xb0\xaa\x42\x3f\xd7\xb5\xe2\x7b\ \x89\xa4\xca\x40\x48\x0f\x83\x05\x1a\x5b\x33\x40\x46\xa9\x42\x70\ \x82\xf2\xfc\x40\x3a\x3a\x42\xb9\x85\x37\x29\xc0\x54\xe2\xc5\x27\ \x1d\x51\x6a\x40\x42\xd1\x7b\x2a\xa1\x08\x15\xc0\x61\x0b\x0a\x8b\ \x23\x7a\xc0\x40\x33\x47\x9a\x49\x82\xe6\x81\x40\x57\xac\xeb\x9b\ \x79\x30\xfa\xc0\x53\x13\x15\xe5\x3e\x1d\x05\x40\x60\x43\xab\x51\ \xbf\x87\xef\xc0\x5d\xe3\x5c\x69\xf3\x2d\x89\x40\x02\x9d\x80\x74\ \x60\xb9\xea\x40\x52\xbe\x74\x1e\x0d\x17\x2d\x40\x50\x50\x9b\xe2\ \xa5\xba\x4e\x40\x46\x29\x92\xd8\xeb\x51\xb2\xc0\x32\x67\x07\xb9\ \x5f\xcb\x99\x40\x68\xd4\xcc\x9f\x63\x2f\x21\xc0\x3e\x08\x79\x67\ \x07\x43\x5b\x40\x72\xa1\x8d\xaf\x2d\x86\xe8\x40\x43\x38\x54\x39\ \x89\x5f\xf6\x40\x64\xda\x52\xe8\xbe\xbd\x10\x40\x3e\xaa\x65\xda\ \xb3\xd9\xcf\x40\x70\xaa\x52\xf4\x99\xff\x0c\ " qt_resource_name = b"\ \x00\x0a\ \x03\x88\x10\x53\ \x00\x61\ \x00\x6e\x00\x69\x00\x6d\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\ \x00\x07\ \x01\xc4\x70\xa7\ \x00\x6a\ \x00\x75\x00\x6d\x00\x70\x00\x69\x00\x6e\x00\x67\ \x00\x04\ \x00\x06\xab\x74\ \x00\x64\ \x00\x65\x00\x61\x00\x64\ \x00\x08\ \x0f\x03\x25\x67\ \x00\x63\ \x00\x68\x00\x69\x00\x6c\x00\x6c\x00\x69\x00\x6e\x00\x67\ \x00\x07\ \x0a\x84\xa0\x87\ \x00\x64\ \x00\x61\x00\x6e\x00\x63\x00\x69\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\ \x00\x00\x00\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x05\x20\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x52\x00\x00\x00\x00\x00\x01\x00\x00\x1f\xa0\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x06\x30\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/dbus/0000755000076500000240000000000012536324426016526 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dbus/chat/0000755000076500000240000000000012536324426017445 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dbus/chat/chat.py0000755000076500000240000001536312536324426020751 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui, QtDBus from ui_chatmainwindow import Ui_ChatMainWindow from ui_chatsetnickname import Ui_NicknameDialog class ChatAdaptor(QtDBus.QDBusAbstractAdaptor): QtCore.Q_CLASSINFO("D-Bus Interface", 'com.trolltech.chat') QtCore.Q_CLASSINFO("D-Bus Introspection", '' ' \n' ' \n' ' \n' ' \n' ' \n' ' \n' ' \n' ' \n' ' \n' ' \n' '') action = QtCore.pyqtSignal(str, str) message = QtCore.pyqtSignal(str, str) def __init__(self, parent): super(ChatAdaptor, self).__init__(parent) self.setAutoRelaySignals(True) class ChatInterface(QtDBus.QDBusAbstractInterface): action = QtCore.pyqtSignal(str, str) message = QtCore.pyqtSignal(str, str) def __init__(self, service, path, connection, parent=None): super(ChatInterface, self).__init__(service, path, 'com.trolltech.chat', connection, parent) class ChatMainWindow(QtGui.QMainWindow, Ui_ChatMainWindow): action = QtCore.pyqtSignal(str, str) message = QtCore.pyqtSignal(str, str) def __init__(self): super(ChatMainWindow, self).__init__() self.m_nickname = "nickname" self.m_messages = [] self.setupUi(self) self.sendButton.setEnabled(False) self.messageLineEdit.textChanged.connect(self.textChangedSlot) self.sendButton.clicked.connect(self.sendClickedSlot) self.actionChangeNickname.triggered.connect(self.changeNickname) self.actionAboutQt.triggered.connect(self.aboutQt) QtGui.qApp.lastWindowClosed.connect(self.exiting) # Add our D-Bus interface and connect to D-Bus. ChatAdaptor(self) QtDBus.QDBusConnection.sessionBus().registerObject('/', self) iface = ChatInterface('', '', QtDBus.QDBusConnection.sessionBus(), self) QtDBus.QDBusConnection.sessionBus().connect('', '', 'com.trolltech.chat', 'message', self.messageSlot) iface.action.connect(self.actionSlot) dialog = NicknameDialog() dialog.cancelButton.setVisible(False) dialog.exec_() self.m_nickname = dialog.nickname.text().strip() self.action.emit(self.m_nickname, "joins the chat") def rebuildHistory(self): history = '\n'.join(self.m_messages) self.chatHistory.setPlainText(history) @QtCore.pyqtSlot(str, str) def messageSlot(self, nickname, text): self.m_messages.append("<%s> %s" % (nickname, text)) if len(self.m_messages) > 100: self.m_messages.pop(0) self.rebuildHistory() @QtCore.pyqtSlot(str, str) def actionSlot(self, nickname, text): self.m_messages.append("* %s %s" % (nickname, text)) if len(self.m_messages) > 100: self.m_messages.pop(0) self.rebuildHistory() @QtCore.pyqtSlot(str) def textChangedSlot(self, newText): self.sendButton.setEnabled(newText != '') @QtCore.pyqtSlot() def sendClickedSlot(self): msg = QtDBus.QDBusMessage.createSignal('/', 'com.trolltech.chat', 'message') msg << self.m_nickname << self.messageLineEdit.text() QtDBus.QDBusConnection.sessionBus().send(msg) self.messageLineEdit.setText('') @QtCore.pyqtSlot() def changeNickname(self): dialog = NicknameDialog(self) if dialog.exec_() == QtGui.QDialog.Accepted: old = self.m_nickname self.m_nickname = dialog.nickname.text().strip() self.action.emit(old, "is now known as %s" % self.m_nickname) @QtCore.pyqtSlot() def aboutQt(self): QtGui.QMessageBox.aboutQt(self) @QtCore.pyqtSlot() def exiting(self): self.action.emit(self.m_nickname, "leaves the chat") class NicknameDialog(QtGui.QDialog, Ui_NicknameDialog): def __init__(self, parent=None): super(NicknameDialog, self).__init__(parent) self.setupUi(self) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) if not QtDBus.QDBusConnection.sessionBus().isConnected(): sys.stderr.write("Cannot connect to the D-Bus session bus.\n" "Please check your system settings and try again.\n") sys.exit(1) chat = ChatMainWindow() chat.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/dbus/chat/chatmainwindow.ui0000644000076500000240000001114312536324426023020 0ustar philstaff00000000000000 ChatMainWindow 0 0 800 600 QtDBus Chat 9 6 0 6 false Messages sent and received from other users true 0 6 Message: messageLineEdit 1 0 0 0 Sends a message to other people Send 0 0 800 31 Help File Quit Ctrl+Q About Qt... Change nickname... Ctrl+N chatHistory messageLineEdit sendButton messageLineEdit returnPressed() sendButton animateClick() 299 554 744 551 actionQuit triggered(bool) ChatMainWindow close() -1 -1 399 299 PyQt-x11-gpl-4.11.4/examples/dbus/chat/chatsetnickname.ui0000644000076500000240000000646612536324426023161 0ustar philstaff00000000000000 NicknameDialog 0 0 396 105 1 1 0 0 Set nickname 9 6 0 6 1 1 0 0 New nickname: 0 6 Qt::Horizontal 131 31 OK Cancel Qt::Horizontal 40 20 okButton clicked() NicknameDialog accept() 278 253 96 254 cancelButton clicked() NicknameDialog reject() 369 253 179 282 PyQt-x11-gpl-4.11.4/examples/dbus/chat/ui_chatmainwindow.py0000644000076500000240000001405412536324426023534 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'chatmainwindow.ui' # # Created: Tue Nov 8 18:43:59 2011 # by: PyQt4 UI code generator snapshot-4.9-7e4361f52744 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_ChatMainWindow(object): def setupUi(self, ChatMainWindow): ChatMainWindow.setObjectName(_fromUtf8("ChatMainWindow")) ChatMainWindow.resize(800, 600) ChatMainWindow.setWindowTitle(QtGui.QApplication.translate("ChatMainWindow", "QtDBus Chat", None, QtGui.QApplication.UnicodeUTF8)) self.centralwidget = QtGui.QWidget(ChatMainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.hboxlayout = QtGui.QHBoxLayout(self.centralwidget) self.hboxlayout.setMargin(9) self.hboxlayout.setSpacing(6) self.hboxlayout.setObjectName(_fromUtf8("hboxlayout")) self.vboxlayout = QtGui.QVBoxLayout() self.vboxlayout.setMargin(0) self.vboxlayout.setSpacing(6) self.vboxlayout.setObjectName(_fromUtf8("vboxlayout")) self.chatHistory = QtGui.QTextBrowser(self.centralwidget) self.chatHistory.setAcceptDrops(False) self.chatHistory.setToolTip(QtGui.QApplication.translate("ChatMainWindow", "Messages sent and received from other users", None, QtGui.QApplication.UnicodeUTF8)) self.chatHistory.setAcceptRichText(True) self.chatHistory.setObjectName(_fromUtf8("chatHistory")) self.vboxlayout.addWidget(self.chatHistory) self.hboxlayout1 = QtGui.QHBoxLayout() self.hboxlayout1.setMargin(0) self.hboxlayout1.setSpacing(6) self.hboxlayout1.setObjectName(_fromUtf8("hboxlayout1")) self.label = QtGui.QLabel(self.centralwidget) self.label.setText(QtGui.QApplication.translate("ChatMainWindow", "Message:", None, QtGui.QApplication.UnicodeUTF8)) self.label.setObjectName(_fromUtf8("label")) self.hboxlayout1.addWidget(self.label) self.messageLineEdit = QtGui.QLineEdit(self.centralwidget) self.messageLineEdit.setObjectName(_fromUtf8("messageLineEdit")) self.hboxlayout1.addWidget(self.messageLineEdit) self.sendButton = QtGui.QPushButton(self.centralwidget) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1), QtGui.QSizePolicy.Policy(0)) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.sendButton.sizePolicy().hasHeightForWidth()) self.sendButton.setSizePolicy(sizePolicy) self.sendButton.setToolTip(QtGui.QApplication.translate("ChatMainWindow", "Sends a message to other people", None, QtGui.QApplication.UnicodeUTF8)) self.sendButton.setWhatsThis(_fromUtf8("")) self.sendButton.setText(QtGui.QApplication.translate("ChatMainWindow", "Send", None, QtGui.QApplication.UnicodeUTF8)) self.sendButton.setObjectName(_fromUtf8("sendButton")) self.hboxlayout1.addWidget(self.sendButton) self.vboxlayout.addLayout(self.hboxlayout1) self.hboxlayout.addLayout(self.vboxlayout) ChatMainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(ChatMainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 31)) self.menubar.setObjectName(_fromUtf8("menubar")) self.menuQuit = QtGui.QMenu(self.menubar) self.menuQuit.setTitle(QtGui.QApplication.translate("ChatMainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.menuQuit.setObjectName(_fromUtf8("menuQuit")) self.menuFile = QtGui.QMenu(self.menubar) self.menuFile.setTitle(QtGui.QApplication.translate("ChatMainWindow", "File", None, QtGui.QApplication.UnicodeUTF8)) self.menuFile.setObjectName(_fromUtf8("menuFile")) ChatMainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(ChatMainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) ChatMainWindow.setStatusBar(self.statusbar) self.actionQuit = QtGui.QAction(ChatMainWindow) self.actionQuit.setText(QtGui.QApplication.translate("ChatMainWindow", "Quit", None, QtGui.QApplication.UnicodeUTF8)) self.actionQuit.setShortcut(QtGui.QApplication.translate("ChatMainWindow", "Ctrl+Q", None, QtGui.QApplication.UnicodeUTF8)) self.actionQuit.setObjectName(_fromUtf8("actionQuit")) self.actionAboutQt = QtGui.QAction(ChatMainWindow) self.actionAboutQt.setText(QtGui.QApplication.translate("ChatMainWindow", "About Qt...", None, QtGui.QApplication.UnicodeUTF8)) self.actionAboutQt.setObjectName(_fromUtf8("actionAboutQt")) self.actionChangeNickname = QtGui.QAction(ChatMainWindow) self.actionChangeNickname.setText(QtGui.QApplication.translate("ChatMainWindow", "Change nickname...", None, QtGui.QApplication.UnicodeUTF8)) self.actionChangeNickname.setShortcut(QtGui.QApplication.translate("ChatMainWindow", "Ctrl+N", None, QtGui.QApplication.UnicodeUTF8)) self.actionChangeNickname.setObjectName(_fromUtf8("actionChangeNickname")) self.menuQuit.addAction(self.actionAboutQt) self.menuFile.addAction(self.actionChangeNickname) self.menuFile.addSeparator() self.menuFile.addAction(self.actionQuit) self.menubar.addAction(self.menuFile.menuAction()) self.menubar.addAction(self.menuQuit.menuAction()) self.label.setBuddy(self.messageLineEdit) self.retranslateUi(ChatMainWindow) QtCore.QObject.connect(self.messageLineEdit, QtCore.SIGNAL(_fromUtf8("returnPressed()")), self.sendButton.animateClick) QtCore.QObject.connect(self.actionQuit, QtCore.SIGNAL(_fromUtf8("triggered(bool)")), ChatMainWindow.close) QtCore.QMetaObject.connectSlotsByName(ChatMainWindow) ChatMainWindow.setTabOrder(self.chatHistory, self.messageLineEdit) ChatMainWindow.setTabOrder(self.messageLineEdit, self.sendButton) def retranslateUi(self, ChatMainWindow): pass PyQt-x11-gpl-4.11.4/examples/dbus/chat/ui_chatsetnickname.py0000644000076500000240000000722212536324426023660 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'chatsetnickname.ui' # # Created: Tue Nov 8 18:44:43 2011 # by: PyQt4 UI code generator snapshot-4.9-7e4361f52744 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_NicknameDialog(object): def setupUi(self, NicknameDialog): NicknameDialog.setObjectName(_fromUtf8("NicknameDialog")) NicknameDialog.resize(396, 105) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1), QtGui.QSizePolicy.Policy(1)) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(NicknameDialog.sizePolicy().hasHeightForWidth()) NicknameDialog.setSizePolicy(sizePolicy) NicknameDialog.setWindowTitle(QtGui.QApplication.translate("NicknameDialog", "Set nickname", None, QtGui.QApplication.UnicodeUTF8)) self.vboxlayout = QtGui.QVBoxLayout(NicknameDialog) self.vboxlayout.setMargin(9) self.vboxlayout.setSpacing(6) self.vboxlayout.setObjectName(_fromUtf8("vboxlayout")) self.vboxlayout1 = QtGui.QVBoxLayout() self.vboxlayout1.setMargin(0) self.vboxlayout1.setSpacing(6) self.vboxlayout1.setObjectName(_fromUtf8("vboxlayout1")) self.label = QtGui.QLabel(NicknameDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1), QtGui.QSizePolicy.Policy(1)) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) self.label.setSizePolicy(sizePolicy) self.label.setText(QtGui.QApplication.translate("NicknameDialog", "New nickname:", None, QtGui.QApplication.UnicodeUTF8)) self.label.setObjectName(_fromUtf8("label")) self.vboxlayout1.addWidget(self.label) self.nickname = QtGui.QLineEdit(NicknameDialog) self.nickname.setObjectName(_fromUtf8("nickname")) self.vboxlayout1.addWidget(self.nickname) self.vboxlayout.addLayout(self.vboxlayout1) self.hboxlayout = QtGui.QHBoxLayout() self.hboxlayout.setMargin(0) self.hboxlayout.setSpacing(6) self.hboxlayout.setObjectName(_fromUtf8("hboxlayout")) spacerItem = QtGui.QSpacerItem(131, 31, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.hboxlayout.addItem(spacerItem) self.okButton = QtGui.QPushButton(NicknameDialog) self.okButton.setText(QtGui.QApplication.translate("NicknameDialog", "OK", None, QtGui.QApplication.UnicodeUTF8)) self.okButton.setObjectName(_fromUtf8("okButton")) self.hboxlayout.addWidget(self.okButton) self.cancelButton = QtGui.QPushButton(NicknameDialog) self.cancelButton.setText(QtGui.QApplication.translate("NicknameDialog", "Cancel", None, QtGui.QApplication.UnicodeUTF8)) self.cancelButton.setObjectName(_fromUtf8("cancelButton")) self.hboxlayout.addWidget(self.cancelButton) spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.hboxlayout.addItem(spacerItem1) self.vboxlayout.addLayout(self.hboxlayout) self.retranslateUi(NicknameDialog) QtCore.QObject.connect(self.okButton, QtCore.SIGNAL(_fromUtf8("clicked()")), NicknameDialog.accept) QtCore.QObject.connect(self.cancelButton, QtCore.SIGNAL(_fromUtf8("clicked()")), NicknameDialog.reject) QtCore.QMetaObject.connectSlotsByName(NicknameDialog) def retranslateUi(self, NicknameDialog): pass PyQt-x11-gpl-4.11.4/examples/dbus/listnames.py0000755000076500000240000000707012536324426021106 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) import sys from PyQt4 import QtCore, QtDBus def method1(): sys.stdout.write("Method 1:\n") reply = QtDBus.QDBusConnection.sessionBus().interface().registeredServiceNames() if not reply.isValid(): sys.stdout.write("Error: %s\n" % reply.error().message()) sys.exit(1) # Mimic the output from the C++ version. for name in reply.value(): sys.stdout.write('"%s"\n' % name) def method2(): sys.stdout.write("Method 2:\n") bus = QtDBus.QDBusConnection.sessionBus() dbus_iface = QtDBus.QDBusInterface('org.freedesktop.DBus', '/org/freedesktop/DBus', 'org.freedesktop.DBus', bus) names = dbus_iface.call('ListNames').arguments()[0] # Mimic the output from the C++ version. sys.stdout.write('QVariant(QStringList, ("%s") )\n' % '", "'.join(names)) def method3(): sys.stdout.write("Method 3:\n") names = QtDBus.QDBusConnection.sessionBus().interface().registeredServiceNames().value() # Mimic the output from the C++ version. sys.stdout.write('("%s")\n' % '", "'.join(names)) if __name__ == '__main__': app = QtCore.QCoreApplication(sys.argv) if not QtDBus.QDBusConnection.sessionBus().isConnected(): sys.stderr.write("Cannot connect to the D-Bus session bus.\n" "To start it, run:\n" "\teval `dbus-launch --auto-syntax`\n"); sys.exit(1) method1() method2() method3() sys.exit() PyQt-x11-gpl-4.11.4/examples/dbus/pingpong/0000755000076500000240000000000012536324426020347 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dbus/pingpong/ping.py0000644000076500000240000000610012536324426021653 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) import sys from PyQt4 import QtCore, QtDBus if __name__ == '__main__': app = QtCore.QCoreApplication(sys.argv) if not QtDBus.QDBusConnection.sessionBus().isConnected(): sys.stderr.write("Cannot connect to the D-Bus session bus.\n" "To start it, run:\n" "\teval `dbus-launch --auto-syntax`\n"); sys.exit(1) iface = QtDBus.QDBusInterface('com.trolltech.QtDBus.PingExample', '/', '', QtDBus.QDBusConnection.sessionBus()) if iface.isValid(): msg = iface.call('ping', sys.argv[1] if len(sys.argv) > 1 else "") reply = QtDBus.QDBusReply(msg) if reply.isValid(): sys.stdout.write("Reply was: %s\n" % reply.value()) sys.exit() sys.stderr.write("Call failed: %s\n" % reply.error().message()) sys.exit(1) sys.stderr.write("%s\n" % QtDBus.QDBusConnection.sessionBus().lastError().message()) sys.exit(1) PyQt-x11-gpl-4.11.4/examples/dbus/pingpong/pong.py0000644000076500000240000000611212536324426021664 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) import sys from PyQt4 import QtCore, QtDBus class Pong(QtCore.QObject): @QtCore.pyqtSlot(str, result=str) def ping(self, arg): QtCore.QMetaObject.invokeMethod(QtCore.QCoreApplication.instance(), 'quit') return "ping(\"%s\") got called" % arg if __name__ == '__main__': app = QtCore.QCoreApplication(sys.argv) if not QtDBus.QDBusConnection.sessionBus().isConnected(): sys.stderr.write("Cannot connect to the D-Bus session bus.\n" "To start it, run:\n" "\teval `dbus-launch --auto-syntax`\n"); sys.exit(1) if not QtDBus.QDBusConnection.sessionBus().registerService('com.trolltech.QtDBus.PingExample'): sys.stderr.write("%s\n" % QtDBus.QDBusConnection.sessionBus().lastError().message()) sys.exit(1) pong = Pong() QtDBus.QDBusConnection.sessionBus().registerObject('/', pong, QtDBus.QDBusConnection.ExportAllSlots) sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/dbus/remotecontrolledcar/0000755000076500000240000000000012536324426022575 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dbus/remotecontrolledcar/car/0000755000076500000240000000000012536324426023342 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dbus/remotecontrolledcar/car/car.py0000755000076500000240000001433212536324426024467 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import math from PyQt4 import QtCore, QtDBus, QtGui class Car(QtGui.QGraphicsObject): def __init__(self): super(Car, self).__init__() self.color = QtGui.QBrush(QtCore.Qt.green) self.wheelsAngle = 0.0 self.speed = 0.0 self.startTimer(1000 // 33) self.setFlag(QtGui.QGraphicsItem.ItemIsMovable, True) self.setFlag(QtGui.QGraphicsItem.ItemIsFocusable, True) def accelerate(self): if self.speed < 10: self.speed += 1 def decelerate(self): if self.speed > -10: self.speed -= 1 def turnLeft(self): if self.wheelsAngle > -30: self.wheelsAngle -= 5 def turnRight(self): if self.wheelsAngle < 30: self.wheelsAngle += 5 def boundingRect(self): return QtCore.QRectF(-35, -81, 70, 115) def timerEvent(self, event): axelDistance = 54.0 wheelsAngleRads = (self.wheelsAngle * math.pi) / 180 turnDistance = math.cos(wheelsAngleRads) * axelDistance * 2 turnRateRads = wheelsAngleRads / turnDistance turnRate = (turnRateRads * 180) / math.pi rotation = self.speed * turnRate self.rotate(rotation) self.translate(0, -self.speed) self.update() def paint(self, painter, option, widget): painter.setBrush(QtCore.Qt.gray) painter.drawRect(-20, -58, 40, 2) # Front axel painter.drawRect(-20, 7, 40, 2) # Rear axel painter.setBrush(self.color) painter.drawRect(-25, -79, 50, 10) # Front wing painter.drawEllipse(-25, -48, 50, 20) # Side pods painter.drawRect(-25, -38, 50, 35) # Side pods painter.drawRect(-5, 9, 10, 10) # Back pod painter.drawEllipse(-10, -81, 20, 100) # Main body painter.drawRect(-17, 19, 34, 15) # Rear wing painter.setBrush(QtCore.Qt.black) painter.drawPie(-5, -51, 10, 15, 0, 180 * 16) painter.drawRect(-5, -44, 10, 10) # Cockpit painter.save() painter.translate(-20, -58) painter.rotate(self.wheelsAngle) painter.drawRect(-10, -7, 10, 15) # Front left painter.restore() painter.save() painter.translate(20, -58) painter.rotate(self.wheelsAngle) painter.drawRect(0, -7, 10, 15) # Front right painter.restore() painter.drawRect(-30, 0, 12, 17) # Rear left painter.drawRect(19, 0, 12, 17) # Rear right class CarInterfaceAdaptor(QtDBus.QDBusAbstractAdaptor): QtCore.Q_CLASSINFO("D-Bus Interface", 'com.trolltech.Examples.CarInterface') QtCore.Q_CLASSINFO("D-Bus Introspection", '' ' \n' ' \n' ' \n' ' \n' ' \n' ' \n' '') def __init__(self, parent): super(CarInterfaceAdaptor, self).__init__(parent) self.setAutoRelaySignals(True) @QtCore.pyqtSlot() def accelerate(self): self.parent().accelerate() @QtCore.pyqtSlot() def decelerate(self): self.parent().decelerate() @QtCore.pyqtSlot() def turnLeft(self): self.parent().turnLeft() @QtCore.pyqtSlot() def turnRight(self): self.parent().turnRight() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) scene = QtGui.QGraphicsScene() scene.setSceneRect(-500, -500, 1000, 1000) scene.setItemIndexMethod(QtGui.QGraphicsScene.NoIndex) car = Car() scene.addItem(car) view = QtGui.QGraphicsView(scene) view.setRenderHint(QtGui.QPainter.Antialiasing) view.setBackgroundBrush(QtCore.Qt.darkGray) view.setWindowTitle("Qt DBus Controlled Car") view.resize(400, 300) view.show() a = CarInterfaceAdaptor(car) connection = QtDBus.QDBusConnection.sessionBus() connection.registerObject('/Car', car) connection.registerService('com.trolltech.CarExample') rc = app.exec_() # Make sure things get destroyed in the right order. del view sys.exit(rc) PyQt-x11-gpl-4.11.4/examples/dbus/remotecontrolledcar/controller/0000755000076500000240000000000012536324426024760 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dbus/remotecontrolledcar/controller/controller.py0000755000076500000240000000677112536324426027533 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtDBus, QtGui from ui_controller import Ui_Controller class CarInterface(QtDBus.QDBusAbstractInterface): def __init__(self, service, path, connection, parent=None): super(CarInterface, self).__init__(service, path, 'com.trolltech.Examples.CarInterface', connection, parent) def accelerate(self): self.asyncCall('accelerate') def decelerate(self): self.asyncCall('decelerate') def turnLeft(self): self.asyncCall('turnLeft') def turnRight(self): self.asyncCall('turnRight') class Controller(QtGui.QWidget): def __init__(self, parent=None): super(Controller, self).__init__(parent) self.ui = Ui_Controller() self.ui.setupUi(self) self.car = CarInterface('com.trolltech.CarExample', '/Car', QtDBus.QDBusConnection.sessionBus(), self) self.startTimer(1000) def timerEvent(self, event): if self.car.isValid(): self.ui.label.setText("connected") else: self.ui.label.setText("disconnected") def on_accelerate_clicked(self): self.car.accelerate() def on_decelerate_clicked(self): self.car.decelerate() def on_left_clicked(self): self.car.turnLeft() def on_right_clicked(self): self.car.turnRight() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) controller = Controller() controller.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/dbus/remotecontrolledcar/controller/controller.ui0000644000076500000240000000276212536324426027511 0ustar philstaff00000000000000 Controller 0 0 255 111 Controller 9 6 Controller Qt::AlignCenter Decelerate Accelerate Right Left PyQt-x11-gpl-4.11.4/examples/dbus/remotecontrolledcar/controller/ui_controller.py0000644000076500000240000000473612536324426030224 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'controller.ui' # # Created: Fri Nov 18 14:20:56 2011 # by: PyQt4 UI code generator snapshot-4.9-4af996c32961 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Controller(object): def setupUi(self, Controller): Controller.setObjectName(_fromUtf8("Controller")) Controller.resize(255, 111) Controller.setWindowTitle(QtGui.QApplication.translate("Controller", "Controller", None, QtGui.QApplication.UnicodeUTF8)) self.gridlayout = QtGui.QGridLayout(Controller) self.gridlayout.setMargin(9) self.gridlayout.setSpacing(6) self.gridlayout.setObjectName(_fromUtf8("gridlayout")) self.label = QtGui.QLabel(Controller) self.label.setText(QtGui.QApplication.translate("Controller", "Controller", None, QtGui.QApplication.UnicodeUTF8)) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName(_fromUtf8("label")) self.gridlayout.addWidget(self.label, 1, 1, 1, 1) self.decelerate = QtGui.QPushButton(Controller) self.decelerate.setText(QtGui.QApplication.translate("Controller", "Decelerate", None, QtGui.QApplication.UnicodeUTF8)) self.decelerate.setObjectName(_fromUtf8("decelerate")) self.gridlayout.addWidget(self.decelerate, 2, 1, 1, 1) self.accelerate = QtGui.QPushButton(Controller) self.accelerate.setText(QtGui.QApplication.translate("Controller", "Accelerate", None, QtGui.QApplication.UnicodeUTF8)) self.accelerate.setObjectName(_fromUtf8("accelerate")) self.gridlayout.addWidget(self.accelerate, 0, 1, 1, 1) self.right = QtGui.QPushButton(Controller) self.right.setText(QtGui.QApplication.translate("Controller", "Right", None, QtGui.QApplication.UnicodeUTF8)) self.right.setObjectName(_fromUtf8("right")) self.gridlayout.addWidget(self.right, 1, 2, 1, 1) self.left = QtGui.QPushButton(Controller) self.left.setText(QtGui.QApplication.translate("Controller", "Left", None, QtGui.QApplication.UnicodeUTF8)) self.left.setObjectName(_fromUtf8("left")) self.gridlayout.addWidget(self.left, 1, 0, 1, 1) self.retranslateUi(Controller) QtCore.QMetaObject.connectSlotsByName(Controller) def retranslateUi(self, Controller): pass PyQt-x11-gpl-4.11.4/examples/declarative/0000755000076500000240000000000012536324427020055 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/modelviews/0000755000076500000240000000000012536324426022232 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/modelviews/objectlistmodel/0000755000076500000240000000000012536324426025415 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/modelviews/objectlistmodel/objectlistmodel.py0000755000076500000240000000653112536324426031162 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtDeclarative try: import objectlistmodel_rc3 except ImportError: import objectlistmodel_rc2 class DataObject(QtCore.QObject): nameChanged = QtCore.pyqtSignal() colorChanged = QtCore.pyqtSignal() def __init__(self, name, color): super(DataObject, self).__init__() self._name = name self._color = color @QtCore.pyqtProperty(str, notify=nameChanged) def name(self): return self._name @name.setter def name(self, name): if self._name != name: self._name = name self.nameChanged.emit() @QtCore.pyqtProperty(str, notify=colorChanged) def color(self): return self._color @color.setter def color(self, color): if self._color != color: self._color = color self.colorChanged.emit() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) dataList = [DataObject("Item 1", 'red'), DataObject("Item 2", 'green'), DataObject("Item 3", 'blue'), DataObject("Item 4", 'yellow')] view = QtDeclarative.QDeclarativeView() ctxt = view.rootContext() ctxt.setContextProperty('myModel', dataList) view.setSource(QtCore.QUrl('qrc:view.qml')) view.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/declarative/modelviews/objectlistmodel/objectlistmodel.qrc0000644000076500000240000000013412536324426031305 0ustar philstaff00000000000000 view.qml PyQt-x11-gpl-4.11.4/examples/declarative/modelviews/objectlistmodel/objectlistmodel_rc2.py0000644000076500000240000002411512536324426031723 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:20:57 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x09\x05\ \x2f\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x0a\x2a\x2a\x0a\ \x2a\x2a\x20\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x43\x29\ \x20\x32\x30\x31\x30\x20\x4e\x6f\x6b\x69\x61\x20\x43\x6f\x72\x70\ \x6f\x72\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x2f\x6f\x72\x20\x69\ \x74\x73\x20\x73\x75\x62\x73\x69\x64\x69\x61\x72\x79\x28\x2d\x69\ \x65\x73\x29\x2e\x0a\x2a\x2a\x20\x41\x6c\x6c\x20\x72\x69\x67\x68\ \x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2e\x0a\x2a\x2a\x20\ \x43\x6f\x6e\x74\x61\x63\x74\x3a\x20\x4e\x6f\x6b\x69\x61\x20\x43\ \x6f\x72\x70\x6f\x72\x61\x74\x69\x6f\x6e\x20\x28\x71\x74\x2d\x69\ \x6e\x66\x6f\x40\x6e\x6f\x6b\x69\x61\x2e\x63\x6f\x6d\x29\x0a\x2a\ \x2a\x0a\x2a\x2a\x20\x54\x68\x69\x73\x20\x66\x69\x6c\x65\x20\x69\ \x73\x20\x70\x61\x72\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x51\x74\ \x44\x65\x63\x6c\x61\x72\x61\x74\x69\x76\x65\x20\x6d\x6f\x64\x75\ \x6c\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x51\x74\x20\x54\x6f\x6f\ \x6c\x6b\x69\x74\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x24\x51\x54\x5f\ \x42\x45\x47\x49\x4e\x5f\x4c\x49\x43\x45\x4e\x53\x45\x3a\x42\x53\ \x44\x24\x0a\x2a\x2a\x20\x59\x6f\x75\x20\x6d\x61\x79\x20\x75\x73\ \x65\x20\x74\x68\x69\x73\x20\x66\x69\x6c\x65\x20\x75\x6e\x64\x65\ \x72\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\x20\x6f\x66\x20\x74\ \x68\x65\x20\x42\x53\x44\x20\x6c\x69\x63\x65\x6e\x73\x65\x20\x61\ \x73\x20\x66\x6f\x6c\x6c\x6f\x77\x73\x3a\x0a\x2a\x2a\x0a\x2a\x2a\ \x20\x22\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\ \x20\x61\x6e\x64\x20\x75\x73\x65\x20\x69\x6e\x20\x73\x6f\x75\x72\ \x63\x65\x20\x61\x6e\x64\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\ \x72\x6d\x73\x2c\x20\x77\x69\x74\x68\x20\x6f\x72\x20\x77\x69\x74\ \x68\x6f\x75\x74\x0a\x2a\x2a\x20\x6d\x6f\x64\x69\x66\x69\x63\x61\ \x74\x69\x6f\x6e\x2c\x20\x61\x72\x65\x20\x70\x65\x72\x6d\x69\x74\ \x74\x65\x64\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x74\x68\x61\ \x74\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\ \x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x0a\x2a\ \x2a\x20\x6d\x65\x74\x3a\x0a\x2a\x2a\x20\x20\x20\x2a\x20\x52\x65\ \x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x6f\x66\ \x20\x73\x6f\x75\x72\x63\x65\x20\x63\x6f\x64\x65\x20\x6d\x75\x73\ \x74\x20\x72\x65\x74\x61\x69\x6e\x20\x74\x68\x65\x20\x61\x62\x6f\ \x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x0a\x2a\x2a\x20\ \x20\x20\x20\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\ \x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\ \x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\ \x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\ \x2e\x0a\x2a\x2a\x20\x20\x20\x2a\x20\x52\x65\x64\x69\x73\x74\x72\ \x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x69\x6e\x20\x62\x69\x6e\x61\ \x72\x79\x20\x66\x6f\x72\x6d\x20\x6d\x75\x73\x74\x20\x72\x65\x70\ \x72\x6f\x64\x75\x63\x65\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\ \x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x0a\x2a\x2a\x20\x20\x20\ \x20\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x6c\ \x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\ \x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\ \x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x20\x69\ \x6e\x0a\x2a\x2a\x20\x20\x20\x20\x20\x74\x68\x65\x20\x64\x6f\x63\ \x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x2f\x6f\ \x72\x20\x6f\x74\x68\x65\x72\x20\x6d\x61\x74\x65\x72\x69\x61\x6c\ \x73\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\ \x74\x68\x65\x0a\x2a\x2a\x20\x20\x20\x20\x20\x64\x69\x73\x74\x72\ \x69\x62\x75\x74\x69\x6f\x6e\x2e\x0a\x2a\x2a\x20\x20\x20\x2a\x20\ \x4e\x65\x69\x74\x68\x65\x72\x20\x74\x68\x65\x20\x6e\x61\x6d\x65\ \x20\x6f\x66\x20\x4e\x6f\x6b\x69\x61\x20\x43\x6f\x72\x70\x6f\x72\ \x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x20\x69\x74\x73\x20\x53\x75\ \x62\x73\x69\x64\x69\x61\x72\x79\x28\x2d\x69\x65\x73\x29\x20\x6e\ \x6f\x72\x0a\x2a\x2a\x20\x20\x20\x20\x20\x74\x68\x65\x20\x6e\x61\ \x6d\x65\x73\x20\x6f\x66\x20\x69\x74\x73\x20\x63\x6f\x6e\x74\x72\ \x69\x62\x75\x74\x6f\x72\x73\x20\x6d\x61\x79\x20\x62\x65\x20\x75\ \x73\x65\x64\x20\x74\x6f\x20\x65\x6e\x64\x6f\x72\x73\x65\x20\x6f\ \x72\x20\x70\x72\x6f\x6d\x6f\x74\x65\x0a\x2a\x2a\x20\x20\x20\x20\ \x20\x70\x72\x6f\x64\x75\x63\x74\x73\x20\x64\x65\x72\x69\x76\x65\ \x64\x20\x66\x72\x6f\x6d\x20\x74\x68\x69\x73\x20\x73\x6f\x66\x74\ \x77\x61\x72\x65\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x73\x70\x65\ \x63\x69\x66\x69\x63\x20\x70\x72\x69\x6f\x72\x20\x77\x72\x69\x74\ \x74\x65\x6e\x0a\x2a\x2a\x20\x20\x20\x20\x20\x70\x65\x72\x6d\x69\ \x73\x73\x69\x6f\x6e\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x54\x48\x49\ \x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x20\x49\x53\x20\x50\x52\ \x4f\x56\x49\x44\x45\x44\x20\x42\x59\x20\x54\x48\x45\x20\x43\x4f\ \x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x53\x20\ \x41\x4e\x44\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\ \x0a\x2a\x2a\x20\x22\x41\x53\x20\x49\x53\x22\x20\x41\x4e\x44\x20\ \x41\x4e\x59\x20\x45\x58\x50\x52\x45\x53\x53\x20\x4f\x52\x20\x49\ \x4d\x50\x4c\x49\x45\x44\x20\x57\x41\x52\x52\x41\x4e\x54\x49\x45\ \x53\x2c\x20\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\ \x54\x20\x4e\x4f\x54\x0a\x2a\x2a\x20\x4c\x49\x4d\x49\x54\x45\x44\ \x20\x54\x4f\x2c\x20\x54\x48\x45\x20\x49\x4d\x50\x4c\x49\x45\x44\ \x20\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x20\x4f\x46\x20\x4d\ \x45\x52\x43\x48\x41\x4e\x54\x41\x42\x49\x4c\x49\x54\x59\x20\x41\ \x4e\x44\x20\x46\x49\x54\x4e\x45\x53\x53\x20\x46\x4f\x52\x0a\x2a\ \x2a\x20\x41\x20\x50\x41\x52\x54\x49\x43\x55\x4c\x41\x52\x20\x50\ \x55\x52\x50\x4f\x53\x45\x20\x41\x52\x45\x20\x44\x49\x53\x43\x4c\ \x41\x49\x4d\x45\x44\x2e\x20\x49\x4e\x20\x4e\x4f\x20\x45\x56\x45\ \x4e\x54\x20\x53\x48\x41\x4c\x4c\x20\x54\x48\x45\x20\x43\x4f\x50\ \x59\x52\x49\x47\x48\x54\x0a\x2a\x2a\x20\x4f\x57\x4e\x45\x52\x20\ \x4f\x52\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\ \x42\x45\x20\x4c\x49\x41\x42\x4c\x45\x20\x46\x4f\x52\x20\x41\x4e\ \x59\x20\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x44\x49\x52\x45\ \x43\x54\x2c\x20\x49\x4e\x43\x49\x44\x45\x4e\x54\x41\x4c\x2c\x0a\ \x2a\x2a\x20\x53\x50\x45\x43\x49\x41\x4c\x2c\x20\x45\x58\x45\x4d\ \x50\x4c\x41\x52\x59\x2c\x20\x4f\x52\x20\x43\x4f\x4e\x53\x45\x51\ \x55\x45\x4e\x54\x49\x41\x4c\x20\x44\x41\x4d\x41\x47\x45\x53\x20\ \x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\ \x4e\x4f\x54\x0a\x2a\x2a\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\ \x4f\x2c\x20\x50\x52\x4f\x43\x55\x52\x45\x4d\x45\x4e\x54\x20\x4f\ \x46\x20\x53\x55\x42\x53\x54\x49\x54\x55\x54\x45\x20\x47\x4f\x4f\ \x44\x53\x20\x4f\x52\x20\x53\x45\x52\x56\x49\x43\x45\x53\x3b\x20\ \x4c\x4f\x53\x53\x20\x4f\x46\x20\x55\x53\x45\x2c\x0a\x2a\x2a\x20\ \x44\x41\x54\x41\x2c\x20\x4f\x52\x20\x50\x52\x4f\x46\x49\x54\x53\ \x3b\x20\x4f\x52\x20\x42\x55\x53\x49\x4e\x45\x53\x53\x20\x49\x4e\ \x54\x45\x52\x52\x55\x50\x54\x49\x4f\x4e\x29\x20\x48\x4f\x57\x45\ \x56\x45\x52\x20\x43\x41\x55\x53\x45\x44\x20\x41\x4e\x44\x20\x4f\ \x4e\x20\x41\x4e\x59\x0a\x2a\x2a\x20\x54\x48\x45\x4f\x52\x59\x20\ \x4f\x46\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x57\x48\ \x45\x54\x48\x45\x52\x20\x49\x4e\x20\x43\x4f\x4e\x54\x52\x41\x43\ \x54\x2c\x20\x53\x54\x52\x49\x43\x54\x20\x4c\x49\x41\x42\x49\x4c\ \x49\x54\x59\x2c\x20\x4f\x52\x20\x54\x4f\x52\x54\x0a\x2a\x2a\x20\ \x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x20\x4e\x45\x47\x4c\x49\ \x47\x45\x4e\x43\x45\x20\x4f\x52\x20\x4f\x54\x48\x45\x52\x57\x49\ \x53\x45\x29\x20\x41\x52\x49\x53\x49\x4e\x47\x20\x49\x4e\x20\x41\ \x4e\x59\x20\x57\x41\x59\x20\x4f\x55\x54\x20\x4f\x46\x20\x54\x48\ \x45\x20\x55\x53\x45\x0a\x2a\x2a\x20\x4f\x46\x20\x54\x48\x49\x53\ \x20\x53\x4f\x46\x54\x57\x41\x52\x45\x2c\x20\x45\x56\x45\x4e\x20\ \x49\x46\x20\x41\x44\x56\x49\x53\x45\x44\x20\x4f\x46\x20\x54\x48\ \x45\x20\x50\x4f\x53\x53\x49\x42\x49\x4c\x49\x54\x59\x20\x4f\x46\ \x20\x53\x55\x43\x48\x20\x44\x41\x4d\x41\x47\x45\x2e\x22\x0a\x2a\ \x2a\x20\x24\x51\x54\x5f\x45\x4e\x44\x5f\x4c\x49\x43\x45\x4e\x53\ \x45\x24\x0a\x2a\x2a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2f\x0a\x0a\x69\x6d\x70\x6f\x72\x74\x20\x51\x74\x51\x75\ \x69\x63\x6b\x20\x31\x2e\x30\x0a\x0a\x2f\x2f\x21\x5b\x30\x5d\x0a\ \x4c\x69\x73\x74\x56\x69\x65\x77\x20\x7b\x0a\x20\x20\x20\x20\x77\ \x69\x64\x74\x68\x3a\x20\x31\x30\x30\x3b\x20\x68\x65\x69\x67\x68\ \x74\x3a\x20\x31\x30\x30\x0a\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\ \x72\x73\x2e\x66\x69\x6c\x6c\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\ \x0a\x20\x20\x20\x20\x6d\x6f\x64\x65\x6c\x3a\x20\x6d\x79\x4d\x6f\ \x64\x65\x6c\x0a\x20\x20\x20\x20\x64\x65\x6c\x65\x67\x61\x74\x65\ \x3a\x20\x52\x65\x63\x74\x61\x6e\x67\x6c\x65\x20\x7b\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x32\x35\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\ \x31\x30\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6f\ \x72\x3a\x20\x6d\x6f\x64\x65\x6c\x2e\x6d\x6f\x64\x65\x6c\x44\x61\ \x74\x61\x2e\x63\x6f\x6c\x6f\x72\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x54\x65\x78\x74\x20\x7b\x20\x74\x65\x78\x74\x3a\x20\x6e\x61\ \x6d\x65\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x7d\x0a\x2f\x2f\x21\ \x5b\x30\x5d\x0a\ " qt_resource_name = "\ \x00\x08\ \x0f\xca\x5b\xbc\ \x00\x76\ \x00\x69\x00\x65\x00\x77\x00\x2e\x00\x71\x00\x6d\x00\x6c\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/declarative/modelviews/objectlistmodel/objectlistmodel_rc3.py0000644000076500000240000002412012536324426031720 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:20:56 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x09\x05\ \x2f\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x0a\x2a\x2a\x0a\ \x2a\x2a\x20\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x43\x29\ \x20\x32\x30\x31\x30\x20\x4e\x6f\x6b\x69\x61\x20\x43\x6f\x72\x70\ \x6f\x72\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x2f\x6f\x72\x20\x69\ \x74\x73\x20\x73\x75\x62\x73\x69\x64\x69\x61\x72\x79\x28\x2d\x69\ \x65\x73\x29\x2e\x0a\x2a\x2a\x20\x41\x6c\x6c\x20\x72\x69\x67\x68\ \x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\x2e\x0a\x2a\x2a\x20\ \x43\x6f\x6e\x74\x61\x63\x74\x3a\x20\x4e\x6f\x6b\x69\x61\x20\x43\ \x6f\x72\x70\x6f\x72\x61\x74\x69\x6f\x6e\x20\x28\x71\x74\x2d\x69\ \x6e\x66\x6f\x40\x6e\x6f\x6b\x69\x61\x2e\x63\x6f\x6d\x29\x0a\x2a\ \x2a\x0a\x2a\x2a\x20\x54\x68\x69\x73\x20\x66\x69\x6c\x65\x20\x69\ \x73\x20\x70\x61\x72\x74\x20\x6f\x66\x20\x74\x68\x65\x20\x51\x74\ \x44\x65\x63\x6c\x61\x72\x61\x74\x69\x76\x65\x20\x6d\x6f\x64\x75\ \x6c\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x51\x74\x20\x54\x6f\x6f\ \x6c\x6b\x69\x74\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x24\x51\x54\x5f\ \x42\x45\x47\x49\x4e\x5f\x4c\x49\x43\x45\x4e\x53\x45\x3a\x42\x53\ \x44\x24\x0a\x2a\x2a\x20\x59\x6f\x75\x20\x6d\x61\x79\x20\x75\x73\ \x65\x20\x74\x68\x69\x73\x20\x66\x69\x6c\x65\x20\x75\x6e\x64\x65\ \x72\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\x20\x6f\x66\x20\x74\ \x68\x65\x20\x42\x53\x44\x20\x6c\x69\x63\x65\x6e\x73\x65\x20\x61\ \x73\x20\x66\x6f\x6c\x6c\x6f\x77\x73\x3a\x0a\x2a\x2a\x0a\x2a\x2a\ \x20\x22\x52\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\ \x20\x61\x6e\x64\x20\x75\x73\x65\x20\x69\x6e\x20\x73\x6f\x75\x72\ \x63\x65\x20\x61\x6e\x64\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x6f\ \x72\x6d\x73\x2c\x20\x77\x69\x74\x68\x20\x6f\x72\x20\x77\x69\x74\ \x68\x6f\x75\x74\x0a\x2a\x2a\x20\x6d\x6f\x64\x69\x66\x69\x63\x61\ \x74\x69\x6f\x6e\x2c\x20\x61\x72\x65\x20\x70\x65\x72\x6d\x69\x74\ \x74\x65\x64\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x74\x68\x61\ \x74\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\ \x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x0a\x2a\ \x2a\x20\x6d\x65\x74\x3a\x0a\x2a\x2a\x20\x20\x20\x2a\x20\x52\x65\ \x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x6f\x66\ \x20\x73\x6f\x75\x72\x63\x65\x20\x63\x6f\x64\x65\x20\x6d\x75\x73\ \x74\x20\x72\x65\x74\x61\x69\x6e\x20\x74\x68\x65\x20\x61\x62\x6f\ \x76\x65\x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x0a\x2a\x2a\x20\ \x20\x20\x20\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\ \x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\ \x6f\x6e\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\ \x6f\x77\x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\ \x2e\x0a\x2a\x2a\x20\x20\x20\x2a\x20\x52\x65\x64\x69\x73\x74\x72\ \x69\x62\x75\x74\x69\x6f\x6e\x73\x20\x69\x6e\x20\x62\x69\x6e\x61\ \x72\x79\x20\x66\x6f\x72\x6d\x20\x6d\x75\x73\x74\x20\x72\x65\x70\ \x72\x6f\x64\x75\x63\x65\x20\x74\x68\x65\x20\x61\x62\x6f\x76\x65\ \x20\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x0a\x2a\x2a\x20\x20\x20\ \x20\x20\x6e\x6f\x74\x69\x63\x65\x2c\x20\x74\x68\x69\x73\x20\x6c\ \x69\x73\x74\x20\x6f\x66\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\ \x73\x20\x61\x6e\x64\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\ \x69\x6e\x67\x20\x64\x69\x73\x63\x6c\x61\x69\x6d\x65\x72\x20\x69\ \x6e\x0a\x2a\x2a\x20\x20\x20\x20\x20\x74\x68\x65\x20\x64\x6f\x63\ \x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x2f\x6f\ \x72\x20\x6f\x74\x68\x65\x72\x20\x6d\x61\x74\x65\x72\x69\x61\x6c\ \x73\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\ \x74\x68\x65\x0a\x2a\x2a\x20\x20\x20\x20\x20\x64\x69\x73\x74\x72\ \x69\x62\x75\x74\x69\x6f\x6e\x2e\x0a\x2a\x2a\x20\x20\x20\x2a\x20\ \x4e\x65\x69\x74\x68\x65\x72\x20\x74\x68\x65\x20\x6e\x61\x6d\x65\ \x20\x6f\x66\x20\x4e\x6f\x6b\x69\x61\x20\x43\x6f\x72\x70\x6f\x72\ \x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x20\x69\x74\x73\x20\x53\x75\ \x62\x73\x69\x64\x69\x61\x72\x79\x28\x2d\x69\x65\x73\x29\x20\x6e\ \x6f\x72\x0a\x2a\x2a\x20\x20\x20\x20\x20\x74\x68\x65\x20\x6e\x61\ \x6d\x65\x73\x20\x6f\x66\x20\x69\x74\x73\x20\x63\x6f\x6e\x74\x72\ \x69\x62\x75\x74\x6f\x72\x73\x20\x6d\x61\x79\x20\x62\x65\x20\x75\ \x73\x65\x64\x20\x74\x6f\x20\x65\x6e\x64\x6f\x72\x73\x65\x20\x6f\ \x72\x20\x70\x72\x6f\x6d\x6f\x74\x65\x0a\x2a\x2a\x20\x20\x20\x20\ \x20\x70\x72\x6f\x64\x75\x63\x74\x73\x20\x64\x65\x72\x69\x76\x65\ \x64\x20\x66\x72\x6f\x6d\x20\x74\x68\x69\x73\x20\x73\x6f\x66\x74\ \x77\x61\x72\x65\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x73\x70\x65\ \x63\x69\x66\x69\x63\x20\x70\x72\x69\x6f\x72\x20\x77\x72\x69\x74\ \x74\x65\x6e\x0a\x2a\x2a\x20\x20\x20\x20\x20\x70\x65\x72\x6d\x69\ \x73\x73\x69\x6f\x6e\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x54\x48\x49\ \x53\x20\x53\x4f\x46\x54\x57\x41\x52\x45\x20\x49\x53\x20\x50\x52\ \x4f\x56\x49\x44\x45\x44\x20\x42\x59\x20\x54\x48\x45\x20\x43\x4f\ \x50\x59\x52\x49\x47\x48\x54\x20\x48\x4f\x4c\x44\x45\x52\x53\x20\ \x41\x4e\x44\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\ \x0a\x2a\x2a\x20\x22\x41\x53\x20\x49\x53\x22\x20\x41\x4e\x44\x20\ \x41\x4e\x59\x20\x45\x58\x50\x52\x45\x53\x53\x20\x4f\x52\x20\x49\ \x4d\x50\x4c\x49\x45\x44\x20\x57\x41\x52\x52\x41\x4e\x54\x49\x45\ \x53\x2c\x20\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\ \x54\x20\x4e\x4f\x54\x0a\x2a\x2a\x20\x4c\x49\x4d\x49\x54\x45\x44\ \x20\x54\x4f\x2c\x20\x54\x48\x45\x20\x49\x4d\x50\x4c\x49\x45\x44\ \x20\x57\x41\x52\x52\x41\x4e\x54\x49\x45\x53\x20\x4f\x46\x20\x4d\ \x45\x52\x43\x48\x41\x4e\x54\x41\x42\x49\x4c\x49\x54\x59\x20\x41\ \x4e\x44\x20\x46\x49\x54\x4e\x45\x53\x53\x20\x46\x4f\x52\x0a\x2a\ \x2a\x20\x41\x20\x50\x41\x52\x54\x49\x43\x55\x4c\x41\x52\x20\x50\ \x55\x52\x50\x4f\x53\x45\x20\x41\x52\x45\x20\x44\x49\x53\x43\x4c\ \x41\x49\x4d\x45\x44\x2e\x20\x49\x4e\x20\x4e\x4f\x20\x45\x56\x45\ \x4e\x54\x20\x53\x48\x41\x4c\x4c\x20\x54\x48\x45\x20\x43\x4f\x50\ \x59\x52\x49\x47\x48\x54\x0a\x2a\x2a\x20\x4f\x57\x4e\x45\x52\x20\ \x4f\x52\x20\x43\x4f\x4e\x54\x52\x49\x42\x55\x54\x4f\x52\x53\x20\ \x42\x45\x20\x4c\x49\x41\x42\x4c\x45\x20\x46\x4f\x52\x20\x41\x4e\ \x59\x20\x44\x49\x52\x45\x43\x54\x2c\x20\x49\x4e\x44\x49\x52\x45\ \x43\x54\x2c\x20\x49\x4e\x43\x49\x44\x45\x4e\x54\x41\x4c\x2c\x0a\ \x2a\x2a\x20\x53\x50\x45\x43\x49\x41\x4c\x2c\x20\x45\x58\x45\x4d\ \x50\x4c\x41\x52\x59\x2c\x20\x4f\x52\x20\x43\x4f\x4e\x53\x45\x51\ \x55\x45\x4e\x54\x49\x41\x4c\x20\x44\x41\x4d\x41\x47\x45\x53\x20\ \x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x2c\x20\x42\x55\x54\x20\ \x4e\x4f\x54\x0a\x2a\x2a\x20\x4c\x49\x4d\x49\x54\x45\x44\x20\x54\ \x4f\x2c\x20\x50\x52\x4f\x43\x55\x52\x45\x4d\x45\x4e\x54\x20\x4f\ \x46\x20\x53\x55\x42\x53\x54\x49\x54\x55\x54\x45\x20\x47\x4f\x4f\ \x44\x53\x20\x4f\x52\x20\x53\x45\x52\x56\x49\x43\x45\x53\x3b\x20\ \x4c\x4f\x53\x53\x20\x4f\x46\x20\x55\x53\x45\x2c\x0a\x2a\x2a\x20\ \x44\x41\x54\x41\x2c\x20\x4f\x52\x20\x50\x52\x4f\x46\x49\x54\x53\ \x3b\x20\x4f\x52\x20\x42\x55\x53\x49\x4e\x45\x53\x53\x20\x49\x4e\ \x54\x45\x52\x52\x55\x50\x54\x49\x4f\x4e\x29\x20\x48\x4f\x57\x45\ \x56\x45\x52\x20\x43\x41\x55\x53\x45\x44\x20\x41\x4e\x44\x20\x4f\ \x4e\x20\x41\x4e\x59\x0a\x2a\x2a\x20\x54\x48\x45\x4f\x52\x59\x20\ \x4f\x46\x20\x4c\x49\x41\x42\x49\x4c\x49\x54\x59\x2c\x20\x57\x48\ \x45\x54\x48\x45\x52\x20\x49\x4e\x20\x43\x4f\x4e\x54\x52\x41\x43\ \x54\x2c\x20\x53\x54\x52\x49\x43\x54\x20\x4c\x49\x41\x42\x49\x4c\ \x49\x54\x59\x2c\x20\x4f\x52\x20\x54\x4f\x52\x54\x0a\x2a\x2a\x20\ \x28\x49\x4e\x43\x4c\x55\x44\x49\x4e\x47\x20\x4e\x45\x47\x4c\x49\ \x47\x45\x4e\x43\x45\x20\x4f\x52\x20\x4f\x54\x48\x45\x52\x57\x49\ \x53\x45\x29\x20\x41\x52\x49\x53\x49\x4e\x47\x20\x49\x4e\x20\x41\ \x4e\x59\x20\x57\x41\x59\x20\x4f\x55\x54\x20\x4f\x46\x20\x54\x48\ \x45\x20\x55\x53\x45\x0a\x2a\x2a\x20\x4f\x46\x20\x54\x48\x49\x53\ \x20\x53\x4f\x46\x54\x57\x41\x52\x45\x2c\x20\x45\x56\x45\x4e\x20\ \x49\x46\x20\x41\x44\x56\x49\x53\x45\x44\x20\x4f\x46\x20\x54\x48\ \x45\x20\x50\x4f\x53\x53\x49\x42\x49\x4c\x49\x54\x59\x20\x4f\x46\ \x20\x53\x55\x43\x48\x20\x44\x41\x4d\x41\x47\x45\x2e\x22\x0a\x2a\ \x2a\x20\x24\x51\x54\x5f\x45\x4e\x44\x5f\x4c\x49\x43\x45\x4e\x53\ \x45\x24\x0a\x2a\x2a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2f\x0a\x0a\x69\x6d\x70\x6f\x72\x74\x20\x51\x74\x51\x75\ \x69\x63\x6b\x20\x31\x2e\x30\x0a\x0a\x2f\x2f\x21\x5b\x30\x5d\x0a\ \x4c\x69\x73\x74\x56\x69\x65\x77\x20\x7b\x0a\x20\x20\x20\x20\x77\ \x69\x64\x74\x68\x3a\x20\x31\x30\x30\x3b\x20\x68\x65\x69\x67\x68\ \x74\x3a\x20\x31\x30\x30\x0a\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\ \x72\x73\x2e\x66\x69\x6c\x6c\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\ \x0a\x20\x20\x20\x20\x6d\x6f\x64\x65\x6c\x3a\x20\x6d\x79\x4d\x6f\ \x64\x65\x6c\x0a\x20\x20\x20\x20\x64\x65\x6c\x65\x67\x61\x74\x65\ \x3a\x20\x52\x65\x63\x74\x61\x6e\x67\x6c\x65\x20\x7b\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x32\x35\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\ \x31\x30\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6f\ \x72\x3a\x20\x6d\x6f\x64\x65\x6c\x2e\x6d\x6f\x64\x65\x6c\x44\x61\ \x74\x61\x2e\x63\x6f\x6c\x6f\x72\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x54\x65\x78\x74\x20\x7b\x20\x74\x65\x78\x74\x3a\x20\x6e\x61\ \x6d\x65\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x7d\x0a\x2f\x2f\x21\ \x5b\x30\x5d\x0a\ " qt_resource_name = b"\ \x00\x08\ \x0f\xca\x5b\xbc\ \x00\x76\ \x00\x69\x00\x65\x00\x77\x00\x2e\x00\x71\x00\x6d\x00\x6c\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/declarative/modelviews/objectlistmodel/view.qml0000644000076500000240000000440512536324426027105 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ** the names of its contributors may be used to endorse or promote ** products derived from this software without specific prior written ** permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 //![0] ListView { width: 100; height: 100 anchors.fill: parent model: myModel delegate: Rectangle { height: 25 width: 100 color: model.modelData.color Text { text: name } } } //![0] PyQt-x11-gpl-4.11.4/examples/declarative/toys/0000755000076500000240000000000012536324427021053 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/0000755000076500000240000000000012536324426022330 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/clocks.qml0000644000076500000240000000447312536324426024331 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import "content" Rectangle { width: 640; height: 240 color: "#646464" Row { anchors.centerIn: parent Clock { city: "New York"; shift: -4 } Clock { city: "Mumbai"; shift: 5.5 } Clock { city: "Tokyo"; shift: 9 } } QuitButton { anchors.right: parent.right anchors.top: parent.top anchors.margins: 10 } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/0000755000076500000240000000000012536324426024002 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/background.png0000644000076500000240000013345712536324426026644 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®žgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<¶ÁIDATxÚì½Ðd×uxî}þ柜#a @" "µ¢—"-K´V+YT \ëڪݒÖÒÊv‘’jKU”v%¯l­e•µZÊ”l‰6!™” ‘ `à 0LÝýÞÝ{Î=çÞó^÷?AD^§¿ûõ{ç»'}ç㜃·noÝÞºõ¿Ù·NÁ[··n«ßj/÷cÌ[géµÝÆý6å·5~›äÇc~õ۰߆ü6à·–ß|-dÁ*üÖõ[ÛoË~[òÛ‚ßæý6ë·¿Mûí¼ßÎùí,?~ëö:ßÞ’þoþ†Â¾…·M~ÛÈ÷7¼ÁÇqÒoÇüvÂoÇùþ1Õ[··ò†ÝPðwùm§ß®c0¼™o’ûývÄo‡HoÝÞ(€|·;ùÞÄDSè¿íõÛ{ÙTºè­Ñh mÚ´i|Íš5S—\rɈ?G­z½Þ:uêø­~îܹ¬äZ /¼ðB|¼}ûv(Š¢ô™k×®Íýgvׯ_Ûþ¸–Ÿþù…¥¥¥ 'Nœ¸pøðáó¯ð'¡)ö%¿=ã·§ü±-|‡_Ÿo¯ò½åò'}‡Ëüö!¿m]í}Y–Õ/¿üòë=(†½P=zt/ ø™3gHØkµäyÏ<ó í/=©¼A5??Ÿ âæÿœ‘§Ÿ~z­¿¿ŸØ¶mìÛ·o¥Ùl®ø¿]ðÇvö¾ûî;öÒK/-ôñ>¢~ë‹~÷Ÿüö¸¿Ög¿×ð¦wÒß,ô¿çJ¿}ÜoëVÓ {öìÙ222²a÷îÝ£Ýn·‰Ï?ñÄpòäI:W^0K³¼¼ £££ñ·V__x}Ÿ÷ß_›™™éyß³Ï>‹ÇÓôß7z饗n¼ùæ› uý±-xМ}ñÅ=üðÃg*‹ À/ò98íwÿŸßñÇú¦pú¿Õòñrò]ûNÿ¯Ã ºÊï~á~¯oÞ¼yÛ[\\\;77W÷{ÀmxxÍ:Á0ôœœl}Ò½ “““tß›Y¯èõ{_`ív»ç}r®ÇÆÆâû<(jÏ=÷FÏÆü뻯»îº|ëÖ­3+++§|ðÁgˆ?™ûüî§Ån×7¯$¶y'x7£&ÑžÇ+¿w€{.ÞGý >FÜú],Ô,"¬²ª¿ÜE½˜&Ÿ…Ÿ[}Ÿ\+|74ÉÄÓ×Qî#Ð0³ÝkÃíÞ|\ðàzé®»îzâÔ©SÈùi>îçýîüß?ý–ò]äƒøßp/ò”~Þ;´C¸Â›A›:N6==Mï• "šQZð« 9þ<`T ßWVýÞ……2Ã.¦Að3P+Èw^ ¨.öôyäøä¸ú ïcààܹspúôé!ÿxŸ×Œ{o¹å– þxžºýöÛ_R Ë¿òŸ}–òà[>Èw° æüõ~÷32ØñvÍ5×ìô‚¸× Ä( ž$ïÙ³gÁk½Êö=©.\ ÷‰I£…VŸxôxâ3ô»(bé÷­¦]¼ÿ°ªÿ¡5j9¦êu@ âqà†ù;|Ÿ?^óØc¡ãôŽüÁ\ö‹ÀñÏþóxuùÏq¡ù_ýߢIöû¿¹÷-d¹ø6©ÈëJë7ÞxãÞ;wîõ¦Q}‹~Ú÷8hrÑãè€Wßëµ™1"Ô«ýVtÔñ».f:IÞ÷«™N¢Aðó.ö| µ‚’¼.{  ÐÇÒàÖïõ HË/»>úÑîðæçñ/ùËOxðˆ¯‚ Ïÿì÷ „„ä›*ÊõjåµG~ßì>È«üAW°)µIÃ;£—û»;ýJ˜‰f@ÍñôÓO÷€C¶;vÀÔÔ套^êkb±ïëÖ­ƒo|ãñ5~>®àh^¡A ½nv±¤V" ‡¦A®ÕÁƒé¸;Ösýä17Fáдzþùçãk¸]zé¥&¼üøqðf¨ó¾ÊîÝÿý*‡†—?ðÛ£oV äuÈ›í€/ò;~Bb¯ ¿2îDÿBr—_~9úô½=ô­ØUí€ àW\Aæ&øVî?þ8å<â*>VÓ°P_۠ë­kÐAÚ†¿?ÑH'þb?ߥ]÷Bж ÷O·éÙΙ6¸vùLj<ÿ»éø«ZC_ý{÷°:DÇßOË V¹úê«é1j#¯9ü¬(þ¹Güy¬æL0ñø'é|ç.Àßr€¼&Öû9\oþâïñ6ö†ü‰‰ ð–î#½ÙÕ„µF²P;HvÍŒl¡va©yÔ=jãuȆ½¹5éÍ-ügù{iï7gèŒËW½’S#§;îñŸ¿ï Yåþs¾ùBש î™ ô¨YPË`H5Žü6|ôµŽ=ÚHxÍš5ÄÀû‡&ŸK4‹lÎk™cÞôzÈÖJåð1<ü×ßN|³&VíM¢^ËíJ6§"kvÆ ûýjx¹7g Úà¨1´Ž7ÔèSàê‰`ÁÈÕjfš)B3 „|‘º×k›P¿|†ÖCcM¿#ÁÒßúϱ¼Þ 0è.}ßË+¾È†PÁ[‹ƒæÆ |½@?&oû\Ú§V`úôœ}â,¸Ž#s ‰\‰i¦Í+\ð>žÉåÌÎÎö8üâÐßyç[ý¹ÙúÁ~ðØ_þå_Þ­~.\ÿ€Í®G¾#£\ovøùûzñ#×Ã?ô»‘Ç­VkȯöïzòÉ'±¶‚Ì ´%±Wu®ÑÄBS M ÜÐ_ÀÕWWÊc eÐØÔ‚æV¿mhÊ ‚@àÈ6íéy“4¾—€ÁgÝÈ©ç'ô:ã‚ôG8,¡;áM¼ïä>Cí‹<|‚%l+'—aåÅeh_†b!'° †@-‰çªªIðá"ƒ¦šÕ×%Düè£F3íúë¯GBåýõWu¬rÙþßÿx/üù«½þ?ô¶ïq¤V»y`\ÉÑ©õòœ¿ˆWzÓa·7}2v¹íܹ“œÐÕ´:ëhv9r„VG :Ö¨)(Ï€ ØÜ‚ƒÐ˜jx@d ºü\Y‹À±A̽Ef%§¶¤^¬‚†p¬9 „Ôlé­¢M´ö çEÐ0ø8—×r¿òŸmÃÒ‘Eh¿À‚šr×®]´GM{411Œ[U»È†ZÏ™ÜÐtsþüŸùêW¿z¯mY]ÂSíò@yä[€ï8äÕàeÀªúòØ_Àñ¼Ã¯lC"ôèO<÷Üs ZäÊ+¯ŒáW1³ä„àŠ¹oß>²ÃÑÇÀ°oÇu=(š0°kЛ,-¿z2(pŸ%H2†z>ÜíÁ 0EpH¸Q¸8(@À±þo2ÿÞZˆ…°ðÇâòð~ƧÁß_âÀçÆ&|:$WZCîçÀÁÏçüîWN,ÃÒaË Ôý± V¹æšk(Ї‘>‰ÀU5ú`<ð@Ôhº¡ß"¯{“·ã}ÁÇÿäOþä™Êåü#¿}á;Á1oô¾†Û6ö5öËW]uÕ•^ð÷U5ª{d֢π7Ô­Ñï‘Feº„ƒ—ÀÀ¶¨f$肬fIà ²`NC™YYx5áõàc­á¼ {Igïú}ë?ƒ£æÿÎ;öµF<6GéBî…²ðïwENâ‡xp@ù¿µu@¤:°d²!‚y@!€Èó°ò 0¸G Ó-<ø\w1‡¥£K°øØÀ’£P0ÒnkVuÎñ†à¡óçoÀ ϼGr;~!;ó•¯|åžgŸ}Vk“'Ñ7ñÚäè7#¯V½éò ߌñZãm Jøy“iäû¾ïûnõ'z j2‰†@sé‘G’?øö·¿.°¼mi4 °x©6U‡¡+G …ÚƒAQCPPèmF­L´HÒ$¸¨gV™O¸òƒî¼í…°ã÷+~¿7ì¿l½ÖŽîð‚Þ€ÿ㋟Z½éAV BîÁ4èï_¶iL OÀ–É=0Ð&àœ; §gOÀ½Ï<è÷óþX½?”yóÏJ9»%a¦V MHÞ•ûEDÀâ÷Ë^«,<2ݳÔ¤0„,ÂѼ»îº«jZ•r(ÜÚó;öÞæ`Ô"…—ê_z×ÿ;§nXõÜ,µÏÂ_<ð[pÇ“B½‹y’FP8HÀ@Ð(mᕃ¤ }×ï Ú»ø|×ï—Ž/ÁÂ!”3(h–â‚ƒŽ¹$P7oÞ û÷ïïÑ0rƒÈoóf­ó {ñÓŸþô½9úüãÿúfôAjð&¼ypü˜Nú½ímo{‡¿›%̈62F—D…kó ßsÉ%—o62_C`Ø5Œ½{ n£F `pÔL|Ž€á­—Ñ(ýý†5ÊÏŠÐõ¯ý“wþ3Ø5õö‹\¡Žÿ I;:ö±¦ëLÃ3§¾ GÎ>ì…z.Ùx=\¶ñC2°1?úŽß€ÇO|f–WÈL³äÆXvà@’&ÿ#˜aÑÄò€éæ†Á÷¹%RÛ>äÏ×,zgþì¡spúÎ; (ôñ«jŒ‚¡©Æ&°ñÿ¶ŸüÉŸ÷~ß×ü&$·Ÿô¯Oø¿ù¯·€¿©ó ¯Å<óàøy¿»íÚ¡k¯½öb‡Qk ?joÈ¢E¡Phm‚ ³É?j}N/ž‘Û&µºM ¨¨×DKX2¯P”YU3ì‡XˆÑÀð­á¼†…ŽEaÄ?Dïà¥é½ ß ‡O}~â¦?¨üb/Ö‘€Û,¼ÿsü[89ý™fÝNÛoËð—|~á}àÚíÿ8þåmûo‚ÿüÈßø¿+Ð\Œ’…È—å|ˆI¹qØQ[ÿa“¹Õµ 2³ºA«tºÆwx­¶cÎåÔ§ã1 ÛÃæU­!Å]I”\ še˜œõNÿ¨¿–ïÙµk×7>ÿùÏ‹ò!¬êôïû?ßLyoºäõ:@ŒýìoPeŸ·gǯ¹æšwypd²:¡ï€¶0Æï‘ÿ„áXÔÚÁ&ÿ_d<F®…á}à B½Î@i(MR·Éߨ³*Â}fè˜cJª…µ€-2 ïþî]ÿ ÚíEh/ÍC{eÁ¤òíwÚ½öîþ† .¬\€z³ÁQ4\…rèúÏ»ãÉ¿(dë$RÌn÷ßS°Ï‘Î…¬}g,°Z4Kn@0lV‘ÒA`Ò*ݶƒºF§V0püsYÊüÓó0÷À,…É…V5¯¸ ÁR8_øøÌ™3uoª½í“ŸüäàïýÞï=)˜÷çuû%O¾¬™W]ò­@¬Ç՜ߠÄŶmÛvøÛu² écÀh÷îݤIпÐDB 7zž¢S=-Xwõh Õ5ÖõF0§jü\Ý&«‹sÑI·™2¥²–E¡GGÜà3äKƒ“Æõ‚˜ã*ަ†—ÑŽ_©=ÈÛ¦o¶œâS˜2ŸA]…2ŸÒ`½×ÆÑ±Ññ±OÄñc/ý@Ú(äJŠ Iè~_ µI½ =ÄŸ›¢ A‹ÔQƒø÷xРAðtêE .—ÂÀöA˜}h¾þõ¯S´ M[á€á†¦‚Ía¼n¢ÝÅüÂ,ü“O>yÅ/þâ/ŽýÎïüÎ=*jù)ÿ^¤Ñ?ôíû~ÛtŽXsPä~à®ñõn Ùj³Iç1ð$ãÅÀ=pÌ`¢p)[†Ñ·Áà–q2GÐõ…A5k ò5j:|k¢¼á4E‚#„äe!Ù ¶õaïœA+€–mz¥“AÍ›<ÞÕ€OÜôÏ™~BÔEøëÇþš­!hÔ¼_Dv–åP¯×ÞÉow–`¹½Ë˳pÕÖ°sí­,€ÜõÜ¿…»^¸ÏÊ'¬¸èø¿¡œ '1–f9Éè…¤f åM\w kÔ.kv0¿Úí‚^ëòkN‹Ç–`ö¾,(Ô‹ùtä1ñˆ×у€r)U £}È·¿ýíç½&ùûÓ§OK%ã k’{¾g}ŽYs`ï)øÑýÑ›½é´lÌÞŠS^TáçŠ&A÷K_ú©ïÖ¥ƒ°þàB€4Dƒ¥ž4ˆ8ç6ú†ý qüÃ}¨ð¨„2Òª·`¨>Ê€ð¦‡Å`}„ÀQóÂnMÝk!¨…×õ–T½D+©Û†`KyÊ‘PN1PMüzÀ5ý1f°{óvØ·þû€Xô¯S Âo$Ô:of­ä+°Ø™…¥î",w`¡3‹íy‘áø\ÆÆXýæàÔ‡Ð6‚%óÂ_¯ž'DAƒ LîAaâ§Õv QDpæÁ¸÷Þ{ ï~÷»ãuªjŽrâÓQlaaaòç~îçÞû§ú§_ñ€Zâó“þ=™Ï×¾ç|Ž›YsP£§üã7{{u‚U3j©öë—ïÀ p 7ž¸p&Þ?ƒë›u5†lÁ¼b'œA"~F9 Ñ·` 0Ö³4²4kM¿€ÑæŒ4ÆaÀƒa€@&©ÄŠ-0Ïàmã·b¥‡ÁKš2C[DŽƼ!˜Ä¿“„áæ±)¸lÓ{£ÒÇÏžþš?Ž1@_ň€‡–•Ë K”E¿ŸoÏÂÌÊYh£Fê.Óë¹ÿlg#³…|KÁsá"PЉ§ó…f– -*Ýjó– ùmo‡…KðÌ]ÏÀÒYÂ!™\ríð¼T‰XÙˆ{ ýÈüÈ»¾ð…/üý}÷Ý7Ç ç?ñkýëw~Ïø ¬9þÖo¹å–w_¸paOÆÌñ;1”‹ù YiªZ3¸H¢Ë×°þƒ¯Ñ@-áAÐ@­Á÷P’ÏA9 ŽR‰Ý.š‚@A>Þ·aóßÛª{'´µÆ›k`Ìoã­)EflbÕBXõQà×ù`Â0uÄ?Ÿ£à;í}6ZÂ/ˆ“£ßÒ…]k¶À¾ ï}Ú_ºð 8|æÿ›á›Ñá¶Ýè· x ÖF܆¤@rÎoçazù L/ñ Z ÏÍÿ.â©ò±‚Vñæ™J†ñûÜoµ.ÐÂÒí„ F­V„­‡DkV€õ~IcMNþý)8÷•s)R«jôOï%¥\ñ ÞàþýûßíM´¿÷·ó¼€þ´Oq1Mò­òAÞð<û?#àxç;ßùn/„#"ôxÃO‚«âôÁ‰ ?ô=ZaòÒÑ Ö$&ø ‰NÕT’ÏB)Flw CÍQ˜Ü“ëaMk= 7Ç= j¥cÉÙ\ˆ_`ᜢª`äèWDNVº!(rнú ¯£)Öõ9°ùrØ:y°ô7½ôßàè…S^0Âî ÌŸ°ïQb/3ï M?Ά¡íþXº^«ÌÀ¹¥“~;çOÁ¬ŽóàÈœyJAÔÁGÉr\dаµ(hÁñ>Jæ¬3òçý}ëaæ‰YxðÁÉÀ½”ø HдÓ ¿hVãcïOÖwîÜy‹—‹;ï¸ãŽs ’Ÿñ“W}’ï*„£U¨9†šÍfýÖ[o}·?!#:ɇõѸ ãÉÃÐ!RC¤¨ Í.$ž>&Þ·†6´JÀh4”æ`ÿ£ÖÍ‘’}†3áÀN7×1yÄŽz@¬õÛ :Ý,T »¶(8ª&C¨µâ ó¾`` ºhÖT³ ¨q¼`Q$ËXÖ6Œõ°ÅƒC¿ÿЋ_„£çOûßR§çs4Yt&ø.lÆpõÒ°2Sý?ô{P#ùß»ax;™aç ,§á‚ßÚsôQ¨ˆŒ{Çô2¹"ã@ÀÁ÷1ò·¢h9WŒÁÂTžüoOÑ5¼öÚk#¯ IBMÁ…"B9ðÚ¤îµËÍþ|ˆ&bM²¢£[ß5>ç9b‡Ô1¡Ä)Çj=ô10tˆqt$"pÐç¸Ð†uÿp=´FêÐhŠæÈ ‰àhj³Ê’í\gs #Rh/*ä6P š^ø½¶˜hNÁº¡­0¾EÃ6xuÎ3‰~‘L)Y¹µÆˆÔtu^PC é°ƒ&±b]ÅépB±ˆ>KË Ê¥n*½÷¡þž?Àa˜O‚EŒ_+X&h‰æ r£Kah >`¸æ#ð÷â‚°¡= ³íóprî(Ì.Ÿó÷gýq¿ ¿’—<ä[(©I@Q€!³ÕkÒ,A›Xï¼×ýõ:ýÅSp÷Ýwg +¸á9¼4Á“s&&˜—ƒº×<·øEòoÙ'cMòÙ7*OòFú ?-yŽû±»Ù¯#ºáZ•O…‰%,XBWTÕË“mØtë&h´2nME GªêJkÔ$áÆsÿùèt·j-Ø0²Ön‚ÉÖ¯1†£Ô%áçÚ ÑRŸ.%šWŠN¯nΡ¬8‚¡2|1Hನ+6]áµÞ`|ï¡c·ÃÓÇúçêdŠ¡Äâ±dNÑS¬MpªßÉj’"Þ;VŸ!£ãW“Á„×*­uÞ Ûg½F9»ð¼4wV¼c¾ãл#ó4ù&YLÛíQp’3MÞg¿zŽèñøÀbɳt|©fá$^³Ô?üáßâÍ´¿ãèÖZ–¥ö]ãƒ0}„2ä?þã?~Ó–-[6 zEÕÚ¯˜I£Iõ•¯|…œõÎÆ.¬{Ç”‚GÓ“ªB~GS;㼚]Ý15„WYìñÃ[½y±Ö{aÈ(òÁ‰Å%b0±&CL§Šß¡L¬”à˜@ ÜW×—®ŸBºý-š—€L/>½ðt(&ô¶N†‚“Ó CÄÆÆ J`3J4råÉƦ—a&ŸwJÁ[ŠÒmÞéÏÑX7¸N,…“óG`~e–Î')€AÜ´"TXFŽen™ðÕ$þó×Ý6ç¾~n¿ývâo¡ó^P†€“Á‹‹‹ƒŸøÄ'nûíßþí/qžd›íç‘–òïƒ0ñ¸U~å¸Ê›MÔУUø:ò©ªàÏE»…Ø5˜Ú? ÍV-‚£Ù i4«Îx²)ÃlSÆ£Q¨-¶Žì† ïg4²&™)dŬ(UóÅûJ“$máRã–hÒ3ä§ä¡6£è«@é1±”(¨.ø!“CC^» Å÷ó¹n|$øK˜3:Õ‘ ŽëAx~i†ÀálÆEZFÕÁ›H~­B~‰5i•ñYü{%OËÒ{3úεÃ[`|ÍÏÍp|þ0œZ8Kíù ‘ ©kÁÅȱÉU1r¥IBÎeêÆI˜yrž’ºx Hdìg•àñ y-râA2ôK¿ôK·üò/ÿòß*ZÊôk!8¾®t÷oÆ ò?à~Gä¡}ûöí8pàÀu¸"`3¹I‡ 6†qkWÖaôÒá )ZIc4[hVÕœ¯‡ Êa›T¨úkaËÈ¿"nöd”’pŽ+üb]7ƒËWñµ(4`´¿‘^×b*tòû[÷¼Ö o{Eçë‘o‡³³§áÝ—ÿÄ+zÿùù£pdz_ €ñÌUΕDMbR£rÔãÞ’žIÍ&ŒõôxßRR(0T|né¼8ó4\X>+åp¾%Œ™xârA ¥´ß h¯ä°²ÌûvmÅߟ}bòC]";"^gÖñ>hPÈüI”kûöí/þÖoý–Ždý;ÿžÿòz±ß0ÄÿÝÛSSSã—_~9q«è”áʾF«0j…ޏ|ò«PsÔ®ªÃ‚ÃkFSÒ >G]û¸b1M$,~ÁöiLøÕo‹×{a¬5ÅÀpTáW $¼ÊfU¢D1•´¨×˜h"þ HFÎ&V¡ØV¯p½ŠÙúW`OcIV ³Ð…A?i  „Ò’Ê| ›^ & /›‚L¯û •‹ŽÀj[LþÃÞ<oNÁ‹sÏx³ë(Ì­\ c°Äý²¬)€M[ˆfV¨À ¦ÃeÃ0càÑG¥cyàVB$’HES áðväÈ‘­ŸúÔ§f>ûÙÏŠ“þq®É+-ºzSp±ü—Rë|¿MŒŽŽ½ç=ïù>ÊÞâ*†'Wl€Â„’ Qs`v5ÇØeÃdJpàÞr¡’PS¬ìstêÞ|¤ގ±ýÞ–Þî·’£Ö€2í¡P¯9 ª½Nõq‘|’Ø\!ù%%‹àwü8×å³¼Ò[W|0)û.&[ºJì7oӆɲE Ì n)F¢4D2ÃÅ>DöX{@™¹`p \í|Nzóïùé'(ñ¸ÒY ‹ —û"e¾ƒÙ÷vàoµWü¶ŒíP½¡}Nû™Çç¡ûH‡ЍI0 Œ{”.–í÷ù÷8ïŸ~ýsŸûÜq>CX™ø/ývôõöA¾U5éÿ¸†üƒüàûÆèj] ÑÆDê:~îwÜAàÈddVµ¨=¼æh)Ÿ÷5Å«²âo0Mz›GwÁöÑýÞçØ¬œmL`‚û…«Üï ˆ`vQ¤â‹hä3 i¸Pðwå)ºÕç”ΣK™ø²6±!Éœ µ’8@Dk€Ò"É´"˜°9Uˆ<¶Ñ´åû–AC~NÐr–rvé8õ&×ÑÙg Ûm3SXJx]d@<(p¿¼Ì®•å.ÝæVN òñ°oW•Ø(òçå¦sÏ=÷|Y]=é_ûßÞpë54þï7ß|óuŽ*@dCÿC}BeG³jtÿ £…šcÀF Bf‚¤n#ŸÊHò?Cµ[¼9µ}ìŠVQðsÜdF®ìƒb6ŸCL,ѱOÙaÓ•‰…aq§p«-aù^”{e¥I¸{‰pÄðkÈÊ©qC0´’²é­Ê ™SÑ3†©ûA“á+#ÓJ€(òôÂó¨Á õ0ã͵Мô׫6à}“g(Cï8S—ž`¬ù$pÀ?%” ›`nÍÚExþðóT_Báo®óÑò¢ÃÀ˜m×»ÞuãC=ô7,ƒûQöüý¿zCôW€Ø·ŠP|Ë-·ìyÛÛÞv5ÚÒÿ¶ y³¬Øh¡³¡c7Ÿ5FÐ 6€ƒs”¬iÊH<Œï#d×øå°ixE¨›+…s (iO&½‡£X¼Â;©¡ GpJZ”yfúÑM4½’æ ä’”›>E"yà@9àM)ÉoPBP¤¢k´y%õ,r JŽy–^7I“­a£F ~‹U}¿lÔZbNÌÃÓÁôÊ9®^”Ò^ ¾ÝaÇ}9˜W¨EPƒÒ…™{ q²NÉD ä¬ÖU²íè§ ýÕ_ýU=~á_ø×_qÇ7Ôñ_ö»~·Þû#?õS?õ^oGfHÁ„Ÿn­Á‚Úƒø:Ãs0~ó¨wÐjˆÔ ì{°ÏAa\!Zkú“µ¦µvzp¬ÜJTŠ‚Í!¡zˆ¿Q6§Ôs…ø€Þè–…NB̦«/$Ÿ¤¬!Ü«9ŸýÍ1ýºRݨæ¿ÊQ+ècZY#f;Ð «ò%U³‹ü’Hæ$¨ÑëÝ¢ §Á‘éÇáÌâqŽä ›[ì“/²€²Ì€YZêÂô³0º0 ×]w]©Ý>W蟠Ÿ‚¥¾þXÜáÇüÃ?üCé–‚uØ¿ðf̃üpÇÃøÃ7!8ð5ŒH`6)º@Fˆ‡Êus0áÁÑRàh18B20£Æ™q áâEBg|×ørÆñ…<Úþ¼‰àEìœõ.§'÷QÄFÑÉçd"¨¬»æeA¯ ¦òJ"‚Ú4MЈ¹ Ð>›qÆ¥îØ¡avÊuŽ–¦•³!“NšÇ¸àcÐb„_žCÓ ÈQ·Ü(ˆZHw!kËQÁצáT ƒýÀ.,Ÿ…®ÿGÚ'šU6iÀÊ Ÿ†‹ä…/ÎRžA¢éñ€ñòuÕž={Npß-”ÁòÏþM“áI±µÂ$—íÚµë2Œcc]‡ôÇEM‚ ‘JAÜЬ:vòŒ}`FѬòÛ`–4ˆ$›Bá& –ÍyÿoÜkŽÝWxpìâ¾RJš£Ð&•8ÛªxG"K¹*=ÖQ+áaż‡Ò>&W* JÃ|Óy¥è„C §ûÆ–^€Qxäc©¨–åì»eS©ô˜ «|–¤=Ò}Ãeb†áï>1ÿ‚7·Á¹Å±Þ$ôåJy‰j‰Y^DmÒ…¥Ù.Ìþ×yغq+6 ,™UFÍ!!`L4£ëAsæ3ŸùÌêtýË~z¿-}±ü—þŽßmX¿~ýøm·Ýö^Ý]£T¸gÈ †qÅìÂ.ˆ·5ahckѬj±cü,pJà°2XÉKÇ`m.Ys-Q"°Û`Á¥ª"üAk(3+RFB¨”5/Jù¢”MOáÜ¢b^Å oQ”… 8PrÞWËe¬~qÌËhmqÄ“V‰s³°Lj¨­Í,¨šRÚì ÀȬˆIæU€ƒ¢\á>EN-¼Ož»æV¦¹6&T,FŸ$‚Äc©ˆæÖÒbæO¬@û«jBŽe ™‰DVô[qÓ!`ÿž‡½©%mNOúçñ›õA^ëûGÜxã×ëI®(¤®Ãx6²7‘… ]¤¬c´¢~u74< R®c` dÌ¥®M+4©ÈªÂ£uAí#md·7«6ìæ¾´9Ñ¿Ò9íóè¨GpDÁ/BX²ä“=ÎxÁ‰Á 0¦àhDÇ<…qâl•,LÀ‘jvP-©µå…žß—´Xf–£JÀ­~ ÎU0@bÒÐ&m¡*ˆÚ 眨'6D±RŠ`:¹"$ Ÿ{gµ… ´l`øÈ”Ó‹ÂÏ-\XŒõ义RtƒÍÂpol\ÂÑ劺“ÛЄüÊŽ<}„('XO‚à@m2…93¡ËÈÍ;ìh½¼È ³7 lú÷ÜþmóALèTöSxÿ†n¸Ìû£ÕQ‚x¤ `Å‚“?µ»d³ä)j%y)‚ 9GlŒãÆ ¢ Y%§<úyhg#Â^ˆö(ƒ':ÙœŸˆô’I±LwI.*Ü9]$•r:»žÜô¸¨:ë=šº¬IÒŸK‹ý9g¸a\(Î2y*’’0.EÀ ˜D¹”„.†q• ­QpÍ > b éõhÓ¢ `âbȶgEhH•)õXo²Ô÷Žûc°’/‡ÖF“&«¡ îºZŒ\Ò‚ÙSÕZZà}Ùùû‘|äúßüÍßü*ìOùs€aàâÛâƒø/§ˆÞßúÀ>€j«…såyô;NÍž†¡w7``¬L+¯5bÄ*€ùUŽŒEù\¬ŠÛ3~5 7B/&Ñ@`9+5Kè—9wyÒ ûȲö0®”,\JTÑ*š+þ•*¹šÃôšY¥óéú\×ç±zOi¦ˆSÝ%Ô åsÍ-ÅÁö3bò0¾¦"Y%~VÈ{Õ²6…|3NZvà-¿?‹þ‰ÅîÉÒ„Æ7Œ‹åŸ?ÜÔÛ†·ÎÏÏ×pjÓjÀÀ=ò°P=6oö  N9™V ©í¨QÛÏP;¨DŽÖ-ѱÆJ7ÆRйOÑ瀂mÓ"™]-"æVÁ>D®²"¥poYQ|’âMÚ"%ËRžšÞUóbªÄ¨ç˜PdˆŽ<›×Q››Ì*Pl^⬓A¨£Zø—y ìk'JFZ&.—˜_âù8àöGÁ좦ëfa¨’·”óK'è;¨Ï1þoêæ„S \°[u¯Îá̽gH~ìZ¥ÆëÇ^¾Œ×48åX‚ñï;ôF׃Ð\@oóí?tèІ宿þzrªúil†­yÜ.ëê‰cÕLþG«‰>ZDE{˜V‡l6yÓj²µ14f.t¤JE9å ‰ližUÐ,E‰ÖN¡h1Ã^ ç:à°JüŪC`­áJQ«èˆ;å’«Y9«†zÅû.™Zi›á>\F€}žM¢zcÉlÄà_°9œŽP›L–ýŒ@ew’|D1—cyÕ¶áu:%øYTÀ^08Býгá¨Ç›ë¼¿¸–òyXêÌs8Ú¶g*-$pÒ[xsfw.“ߊ Di?«…\š“ßs}kûØÇÞþ¹Ï}în%«¿ô†ù ÌÔ¥V^s\&ÏcO$,nòÎ:…x¥R ŠfüÙE¾²2ã¤5ªT6tØm$ÕY8˜h®‡µ›£½-Q+‰H¥¤ D²’ãî´a§<ç媀rHâýpØWóûÊÅR®Ää­Æ¦t¤¤5^.Ü«ÿ¬ÏEg;ZeÜ9‘šD»¤QLê]¹ MäºäG[Ò*9gÝšÐË7fÙÑ°Ò ÏÏ{diŠÂ1ðÀ« Q{\ŠCÅÁþýk¶ÀùåðRû99Y& ŽSíŠv$7 _^ IØœN›X¨Yî¼óÎX67ÿx˶mÛšÿÔ-“0¾s8æ:мjIg’¦UÍ£YÈtäË/[S°mt¿?ØZGÕOæ–+iÆnŸ„Kvn„µk†I{Ñçå9i ìQ•ÓÆšIÀètâQQWª{"çécË#à°¿.jªMë' âcÝD¯¿¤ß_Y:—Û]8{~6½æt¤Ô»è[hL§&áq«6³+ga¡3S¦ÇHrÔ•ý0qÙÓy:&‡ùà Øüáû¿ÿûc3ójiE·ÛôVÎÉcÇŽ¡iƒêGòžø–ø þ‹ }Ü릾ZΓXø‚ûgO= 뮞 sJG­jÀ³ +gfÈæuщ Ÿ·Æ;æ‘¡+Ú@r…ö-\Ð\"W ¦T;·­…Ñ¡½Ž«xÿ¾èÑšk•ÒzeíѺu=Õ³‘ºÁ妸ìÜ:Öúù$œ>7Sò?ÄdK2˜ ()Ç5Q†ùµ’’âYΩü‡DÙ<׌©Œ¿¦ÔóˆiE„ŒÇÆ`·‚™aó BÒ/˜XYpâ©b ‚ÿ‚ZÁ&º~ `[˜òþ$6«ËCËNXš0+…='jZĽƒe2r¹ÖzyZy¦{7ì%Bc5Ô«Ãõ~¡6^Ü}÷Ý_U­¾>È%¨ P{xÓjouìY5çŽ;Ú‡Þ9Å~‡4YÈHX±(×1K'õR‰«£Né˜ûÀ‹—Çn®Âº·M+¾8ç‘šš‚­›Ö­ÝÅ­„› ¦œéÚað†ðÖ5|4órµÚ‡ÚÔßóoÚ¬ªú^×zßdìá‡Fk eÙ¿ï©WâƒØWa^QäÊûÛׯ__—Á6zCRb{hšÙ)gp¤æn–§‘fÜû¿DÝhÙ!ªq¾B´Fž4eÄóŠH&ÎÎ-k`Ç–)ºÞŽN·œ¶a·C|޶n7taLjآ§è²&’Ïw±¿nQœqï]ÚS{Ÿ<|ŽúìŽÞ:]hcŸ,ÿþ­'à†«wÓy æ ´©`Kß/òøžÁÉUg6%]z¿¾ïx5jr§ “>Ã1vå\t¨O-"œh•cߌfh¡Î½>ï¹6-‹<òàœÜç¼¾g¨6B×5Ñ ]YL,7£“.™²À’‚ò´ÑÂò` ¡T;ÿëÇhvŽŽš}ìc—jY®šbßl»Ùmç2Úý8 é옗™äú ±Y1nÙ•À&U¹óa]Æ¨Ž‡²ðÒ à‚ Í9ÚœdÆl^ñ=r©*Ê5 ,4ŒI†AÁ¥I®¹˜V¬y@QÞ•v0j-@zH…c+Ûü)‘Xª$Œq%þywu¤Nì6h’Zp`‡‡píípÿ¡#aÐL)ƒ^áaÚWOšBÂ¥ŽM éÏK|Y3¯™Œµ-a°§Îß$6¯¥ftØÛ* q2šÚÛ¡~\9uuÌ8’z[>˜>ÌùzR·/ÿ^ºOßÃãºügbÏÉÅ#Ô!R\Ézw!I•¬,ºâyŠMKF›Ý :{»0{h–d ›hŽÞpZöFxç}“¿_ó~q—eeúÌË ¾}…>:çpÛm·mjáA` »’ YÏ€À׈Ò>°D(aÜ,vB¬QÏ\i ÊùŽ,•Š á ¿¶f0èW™P硳æy*‚Òµåj¥ÛîÁ±†ÀVó¯’x¿Kͤ»ì  `Ògi¡"2‚0v%©èzr.z Ú„÷ÝnÒbyÐ$Z±slÁµWì F .鎞%JŒ~k8çŠt¼aígÆ@XH¦&‡Yt{¶NÔ&Ýx¬¸…ÏÚÑ©‚øŠ• Ë „—WÂñÔÀÂÿÃþd ;@×»ˆUȆ0Dsç™n”qò°È&yBùZXìÑ"BGùÙô¿Ç~ò“Ÿ¼²pz]|<ôÿïoذa'F¦­xøj“;wRc/dë¢ïÉÂÚÕPêaÕ`³ªÎ=\pqL9Zï¸H§À1f:2é¢à0oÎ*¯E ZƒBhÙH=»ø#è £\z° ûãA>S(Ó /Ó„ì•„yqdÁ­“““C¼J¾ Á€« ÆžqÒ)KhϹ³0p¹¡úòÒ圇dÌ $™)é0Ý ‚Ç·ŒîãhF^²s‰ÖŽÞ›K&¾6>:àòI#g-‘§½Tq(¡US(žT¡fr£e€Äè”S1#]¢}]Þ›ÄNQ[¢¡ÄQ¦V«A«ãŒnMQdJ†q%Þ¨°¯1÷žÿP~ãú©Q¿pŒ8(ŠGÓ¯8lÎÍ)Š M_èõ˜Ç9yö<ÏR1¥œO"»ÔkBŽÏèªGÕŒåÆÖáÔÂQX)–Â9Vìb°e²fè„>c‚⚬œÈ¡Þ­Ã5×\Crˆ×‰¸PKÅ!&°½;Póšeæ‰'ž˜ã#y «¾ ‚B}0ý—ïÑ^\D­tDÄ£z/€ÍK“:•HóÈý &Ùò@©vÌt´{êi8ôø“Ñ“EkcWGÑ~”¹ï†œL²»…`ß® tlRI)Á`Ñ'Yžwê¹Rx–ÏÛØè ý.17Cà Ã@é&+8äÝ{Úâ5(”ƒ®ÂËê»Ó5’ðrž A–<‘#{®2ÏPNP^hš®„}½zì8<òØ“¡š.ú,ò=Iƒ•@¢ó1íEò»i=2ê©LX΃+wytÙ²ˆ„ÎI¯=ètÓ9é*PR@ƒ7ÉåBÁ)zûŠª¬¹(qÞ,EŠú%*Nõz²PT®¿èG—´‘±iè*izeŒ@Û¼ŸÔ]&ê»N;ô“Õ©©©ÍJÎ?v1NâÅ‚ǵccc Ö }«0hbu&–¡1dSBPúçf¬=8reÅù´ Wjl Ll’\(mVÇ<^\‹&ƇéDG\ù²R²9&I´9ã¦<}zfžxæYvzÙÄ“œñâà}ö Œ¿Ï'°xñø ï?œeŸk4€Ê«,š{]à0ÃP8aÝTؽm]I;Día\9]Ñ&¥NŽ|Žxí¢Ì%Ž v9¿”Ä_`x:–$¡(m¢=htuI‹È#yOùú¥€K^Z¤´õ ù{9‡"7d^eA®êuN ¢¼y¹ëN®ÿQµt$©-MÓýñ ]}õÕc*Ç7õZrþïïxÇ6l.”vLºè/t"‹—Fim)HåÅpn]Í®a±ºÈ(Z ¨RÕð\;_QŽ¡²åå¹"˜Z›½SKQ«H8L+`4§<ØÐ,Öðó /áñø=ñTä‡8hRƒXªo´8Ôˆ:’fsééUppàêÞí2y²~ËFÿÛtæ[gD€?CêS%"%Ú×ÀÕÖ/±ˆÙAïÄÈ^jÁ¹ ¢¨VsC1™œ«€“TBñ Uœ…«Dï„`Ú¥k <Ê”6tÊ£JÆ×Èò(ïÏ ¬±©e6ç­’¾¾z!ǧ'cCÜðƒÜW•õWã¤ã'X—\²IÀ€Á QŠa^™ ŽæÕŠ]†ŒœóZ¸ ~™bšÛQšGno'¶Á‚™a³*œ˜0m•W£"%¼$‰‡æÒØÈ€_AjtRd¹l]±s¾t1ZåbÈÑ‘9tâäiïs¬$p›4„ê;%@µT»ÚkRl?×ößýüÑc°kÇVŠÀäRþj€WÛ”ο6)1aŠBeòºÿ®DL|YËÃ,ÎðÞHjníbÕÅ(mjQzäùc°w×6®`ªå!„íTчC…ÅL@*0TŠ!j<Á7Bjú“Ï£¡JŸË®ü†›pÉ®M=æB“¶Â_»zÐyÒ Ž<Ê­‰n9 gŠÐò'çly_hÏÎ0×CÜ5¤¢d5îj¢G*Ä*öØ¥ñÙ#§@X/æBçbæ²3§êù%¯dT5¤ÔŽÐçà,vAÂr‡Zde¢Mòˆ¹9L ‘Q—èâbÚív[$ ¦6Ë:Êüü+È¥\R» 3ç2§søÅÜ01ˆ©|¬äʶä¡áB¢)5©¦Àà ɤQ{™>_S>sÚÉv½D—ǰ-ù0‘ Gb—ŽQµUŠ7iõÚù&§¢nؼ¡tÝ]²&tU©‘M¨ð6DD3|\ÊHòÐo ƒ›Õ/Ä«Ÿó–ÇXUæ_I ]c^E yÇfèb_€ý³®ò5• ´¡h?zσQ¶f©•§êü±Ò]„e¿AŒ¢° 3éyC“€ 0qö¹˜ .ñ†¸Ä mÚÙù…pœ™e¿Q˜£ º(Dº™µa³Ç²&5ÚKKAã ñ.ZлЙ+ÁRN^¨-§cÁ€hþ˜,yG¾,¸Ñ׈`¤'±Œ¡+3¢(R~#Í_T!öBû‚)b¥÷ Ò”t_jKŠTúÜÍÛ0»|!ÒóUôlãRÂUdŠa“$b£ò#(xÞõ$UØÙ­·Þº–?vLZY½@váÿöìÙ³¶š÷¨"ëAÝ™­ÍƒSC¼™$ÏÑ«¸*ö®s%Ele“bNpÁ›Y…¦n»œSaõæ×—Lµä=XÀ¥_ìH<ôÿ–W–)÷ªc¹ã^Àh2¥ Eê›ëBýƒdàm¬«¶i ¦ÿ ôkŒUü.©‹{õ¯Htþ •­(ˆKy[,ÄêN¦‰Z¤<™”΋´9Ràqªy€F Ëöäq /%#u&ݹBMß*TZú¼Ù•ó^µK¶b§/—ØÅ®DzTš˜¦è†úhèe¬A²)ÔY8sæÌE†øÜµ×^»¥*û~ýNR#›6MõÓÚÌ"Çgx…jr…` 벓«&®Æj˜R{ASþzã*Ì#ç}œ3Ðî.ó‰ Î:¶Ù‘\H šeŠØA€‘îâ¼#·¢fö…hK(£NµÜ:yeÓÅÚqŒZœù—IÅÀÌü|…I"£™)ÔÑ"À¾V®*E¨.’†€¦ÞðäªY·‹tûTÈUõºÂªy™&éØ×€<Ž¥Ž<.^ÒtK3N´y“’ìûÈ9‰ç!îu‰pj˜úgu"8ð½Øztae:™å–“ŸÔ•Z¯š-(ÈY-nAQÝx§dbUýg”k”o¿ ]¬ˆªÅEå188X_»víˆä<„BŒ†TåËèÖt½ö4ö0’™©Ú1¡<ío$:v8©©Õr)q@ 8»x‚j˜EÈG¼=®[þP”* Uý]© *„#Å¿yO©‘k +*¾(ålÊ—+qµ v¿IAðCÚê|E@Y) m=S+9'ÊÜï;u6ô¿±V¯Á°ÉÂr'ÑØEƒ”¦ð¦õ†[«–‰ Ð'ì­’P6gÄos¥zŽÞ…N/Ö0¥[’RGJ2†+ƒ×ûE4±ÐË1Ý]âÌ’<¾ž¶–KT§ ¸†Ý±ãýIó ¡(­NÀÀM¿þ˜k»wïzî¹çØåþY}5ÙcW]uÕ”ôÕ¥ª*¬D§2FÜ0›NÜ+LéæTü„ñprÎy–‡¬ÄR0ã”Ê,W~+ÂvO¡Mº¨˜UŸY>ËuÇ!Š ¤;I^®<,TÝÙû¦Ò#Š) 3ÞAå,$¬¦(ן›¤È°NUD*ó‰ù˜!|<+ΕšÍ—އgªJÕi'˜ëJ­¯âEÉô+µˆ• L4Pž«èL^²nC%‡Âe©JRVn+þ–åû–›æ«@òFÂã‚M\6ÓÛ³þ:ž‹Z41º] wåV}&’tnFƪ:dg= Ij $”Sœp†ƒ›p*..ø"Ûb ½ÿýïßRÅÀjd+gÏ'1¿É@á^a2P_‚ýv³µ&ùõLÊX{¤ìsj^P詯 ZRó¦ÒÛ™õð™ùã006ƒƒÍ*T·D‰Ä@t>u‘SãŠÔó6Ž<–4·Ý7E¹ ›)WÒgr²ÏêuÔª¾U¬Ec̨•–C™FWð9éÅ›êÒ­3ñwáý!¯AÎOÏQäÃ ÐØ¼4ÊL1ºA|Tê)Iµ±ï‚ôùM7!…±3ÕHˆœÆr"O¢pó]·ÜÌÔéx"xÆií¡Š“èüdL¹ à·Ô©f{üÉH%1•ážÒÀ4³qâm½†™÷†7mZt8síi˜[9Vîʈêò?–'¬o( ’¶®EÁÕlH¨†p¯e-ba.»Ç×q{6¼ŒŒ UÒF¥Ûn—2Ô/4V õÚÑ"V Ö2ɤfÈÒ,-6QsÉ$м«rõ¨¼Çõí‚9½x º°œÚŒVq‚²éb?"ý!|8V –˜$â+ÃÇ@:~+N¶¼O"dŠ^~À"T…h¤.ˆF÷s*yòŸ@1 P"°ã¼DãÒ–†nŠªJl”ÔÙQªÅH©·7ªÃHÆXöC„Ô茮§q* ªÝ„c MÎ.+¥€R=¾S cíáAY^âÊ)‘Õ$g™$3ì[2ÿûE_«Éo¯ešU ôóAð>’¬_¿~­žíÑ/ÔK%9™TµLO›’ÿ‘:ö¸se¡Þá@:jý*ÑA§hC·6GìT§¨ÕNeÎS¾¨|§ŒjÎcÑIMˆ2K•€d§’\`{Û)á˜Ïî ÍP”œ‡Í™2)¢;ÛtÑ+ËE QKñá8Â9$¡ÙsÇBS“ë$+½+qȬ©$nÙïˆÇ]ê©+ÄÅމá#á©ñìt² c­ï£cÞî,«þW.ùÂ(6åa¦´„V'¥>R·c9ôkÿÂ@‹¬VË„ûééi Í ØÍx†½Vë–(£Y£]&$†Nß™µ‰w¤lTWu8‹´%J•ÔñbE½ôîXèž§N:zPOP bÊ´–•޲R–Žçg¸rW’mù}aEµÆU0ϵ þ H¡/ÔœuS c'à(°b¦‘‡c¦RRÔb¦H2i%çd‰ùœe6塌îB©¨u*¨`cPD‡Qƒ.]]Ld8ÇŽídJe¡FƆZ™LŽCSÀå3dZ•XÑÚœçÒt`’©SÉU=J¡+@Óbä òØÜ‡‘êEÚIU‹hp¿éI>íë =>È;èƒ/7ˆ“„­eŽ^yÄZÃ'†ÕaÚ4pŸ õÍElÒæ"!1ùªß¿ŠòEa Árw:;ü¥p¯Vù±!¬QäÂ8ƒYօ¯sÑœ“2ãFÙç.~¯ Vgš ‘\ûD-·—Kf‡S‘ºÄÔÓ7%ݰ¦"£M!| q…¦UÞRÑvô‰œÐO$\](¡—Ñm.Õ‘Dqå´>–5°#ŒbaÌ”ÿÌJìF!Ô¼i–‘ß8·rŽ©ïªe’mü­Ò\Ëä¡z]:¿Ð0J 2¬l­Ñ«@Xp•*Y4¶`¿Ø@§|itÔWëÝ‹Ÿ³ÿþ‰|ð¼ÂÂپٴiÓøÅÀ!1e— ˆQÓǼ Ä^è÷Ú¦ž¯h‹cÕ\}È,0?édg%UªóFÉ¡ÂÉñQâ(-v.@ƒzj4JYa§r àT2Ì›,´%Çd’$æbS8è?BÀU’ÿ¥A:Ð;<€Í4Z1 S*`ŠíþõÏs š½AŬ¾Ó(³ktxW¸Æ"¬þ´(¹Àœ -„ò8oÑh³ŠT’‚:LMÕ&N¢/㔆‘±c{€"š ÍabìJÈ‘+×}‰U0ÇŽLà" HËtû.¶­áü:·¡F,j (dªn=ÐâCùÐ:Ê”LWér"Ïoܸq¤Š |©˜Ý»wb5ÆqŠ» 1hG—¹ÖÃÆæÓ†ù1![e¯mètV¼í¹¿Š¶¹ê/{Æ«@ï4uZ‚ÝlSäJÇéÁ•¬-áfÍyS«éFH\%ëŠ*´Ö$i”È™)ÊÚIBSšâÀö·S†¯„9ãJž'-„<6+uQ&ŒJÏYSž;Uˆ#}§|”Н¡–ÁkÌj±“wÃñQ²Î”Ï«á?EbP.„Ìäàw$V›V\‹à0<T€§SI$ C¹3í³äC™ÌªqÓªœEiZifÑñ8é„òh@ Nx ò:†øÍê-Ê»áBd°ˆ,†Œ›„tF–:½]Ü1²…i ãýÅÅEÍì…_«ôÀÂÇ`¨«Q[Ñ’Yå\B¿Ô’™»2ËÜZ‘4‘Hc,ÁÊò<¬´`ïØ¥°}âŒl&8>óÝdÖë0Xò¥±œÈ­HC}ÕXUƒà²ÁNŸ> …|5g›4¸MEˆØ VãI¢hú‹Ð^šƒŸ¸îw`| a©sî=ü¯¡U…v}Šž»iÏ/À‹ÓOÃã§Ÿe3«íUmr8ié_Bɘ©]Ì$C^6šÑàÔvÕlAÙnÒ‘ã¡—‰•äTàÀD `¡Ò0Á…ÚPYöœmyËÙåDú+Ep Æ˜A¢æÅØ,µðá Œâ¸V…RI+sº¸Ã´’&7S0%šKÓrKÆ&ù,: :É×ÉW¼C>M×"ø&ª//—2€é‰_)½m9A pôü×àÙ3wy9\òZd \±åc0PB~Õ–OÀÌòIxèì½4õØ åÁœ.Ëš,ãÈž3d}`i¸NFB%.Ì^« ;DÝFDH4@¨íC½^¸8„¤ˆNºÕ““µøå¡cjkFpàíöCÿ¾vøNÑ|7ì yߥ¿¼ô³þG5¼j¬s&75fÖÉ%£HƒNÓ£y•[Ìç¡n;Ô×7FÃ"ùPx$ak¤˜KòX+­QÕÂEYÚŠãkµ&á÷KÛ»U‹B™m©så©¥¬¾ø»µ/†Ç£g±e't›þ[Šf9å8å¼'KÀ)­ œ/r嬄$Iý£¥|‘:”8^,\%É«9ޱçU)¼|¨Ì ë§¿üQ2Óò[ø ÿ:½ø%øé[ÿ"ž}kßœ¾3„úý1dÆ)‚,Ë#®×µ¼´Øk']‹aÅÆÖ Ã .­Üuýb‘,RQCË•Fƒ.öbB«ÛY†KÖÞZR‘»?Þêô½É#Ú»×l#`… À¢—‹¥6WJ«é EÁìèÐÅš¥RÏj„Jlj‰>ÝÑè1.zE ^ÁõÕR†kÙÔ±I;— ¿Dë¤vüÉ|у-C»¢‡KU*^‚Ô¥Q÷66jˆŽãd¦É$Y)EP¦iÊšK»”δe¡såq¡Á-”‚æ;3°Ø™+qÎŒ©Ô,˜Êµ„J#ɳ 5âAB› ¾þ§½…Q¢|Œ]Ï}Î\$¦ˆ[’Ëbp¹¯,W“…ËËËY U€´´Mv±0/ª«LÚÆü‡å–õÁ'À`ÃXÙïXê.‡FkØ©]ã»yl+ÿàŠ !΢Q´•Rý‚‰ ·(R¨å¼™·ä/ZׯBÎ@¢z(¢§O–hc"ÓÔ°†q•ÖoÊÄÖªVÙÚTÎc¤¦«±Qs,Í-Õ8¨‹5øù @Ç,¨v®< “#INqW¤Œw0šKí"S97"ÉTFD@Ò&4ɪëÁ1 b¥gÌtìJMÆÕ —ll³d¹ÍR–Îe¿@(GO§kÎ!hÉꉸÙ@žEšûÅäY3D4ª&V³êœ¯FT ÀHõV…I…%Š¡UŸê7ú’‘ªäòQb6öm'¡™À¦42Z'ÒÊ]ÀJ¾à…©CmöctÊé1Ó‰ë”)A6*§aœ+k.¦¡ªJ0½’ ‚¹‰\’ŒU¥^iËŒšÒ„Ü8Ô53Ùõ…¢€”²FÉ?Ó¾MyjI Ò,ÎéšOÍ|QÀJÅVþú¬Àbè|Y ]-O5«¼V½¬FÙ`ÂJ,º´p¾gÿWú“#gïH]-¥¹†KaóRƒf¤WåP|Qç[³ŸÒx%àÐCSôª*÷¤ÇrçlH°×kázçpï[w#üý‘»+c Lê>¨µ‰±K‰ºjW‘^lEºâæýý–wêšt±3Zɳ@)1гWavÈÅ?SÅcC mJ)¾pժѤL‰{¦ÈˆP‹ñ¬CÍ *ê¬IãëtðMjMtc‰ä¾'²¦‰=©L<÷©h­ànŠ6€¡¢ù Kœ[Rϯ^±"¹Ð)m !E¥gÀîñ=Þ÷˜…áFË["ÛᆟŠgíøô×àoÿ)4FIÛY&ù3)Ç­‰ §Ý,Žªhªúz£ má®s2^mupˆdb…—¦ðYhÖ[ð®KþiÿZ}ÅEªÌ‹©”y–Yª•ܳZNËö† Éfö'%³õµ$­ÆÉ¬ê±¬wrè¤l´ÓQ5=#$‚£œÁ±¡Ac4N~Eö,„ÒãØßC&ËÆêFù[ËAi"W0å'¶lP¦˜tjIþœ…” ¤)Qaèy÷Œœ*ô90ÒXIó§ë ÃWŠøéŒ ™ƒ);𥢶‹fÆ0ïu;~–|ËûŽß™šs๵&\MÉT5ð¹Ï}.üa…!™}™›í§A.z«~¨áU竆f É Â£gŸ÷€DÉ+6ÿ8mýnKíÕY$õxf›†zfs"Îôág§Z2¥ÓNš£ËMçVØé. >mÏm³GY0QÈD»d*wS°àÇ„§ƒr>#.በ½ëo…fRÒO•öu 8©ª4l§Ôç¶üiPÉe.eÓñ<`[“+óK¾“= ¤-MÉÜ-Ÿ{Õ1fÏMj•”ªgø¼b;ÓüÆß}Úí®×`ûøobý#Øß÷qõšŠOe¹"±îYoFÍw–áÁc¿¹óŸz¹9ü]û~Íc›º8©Ø$+À¨cÁzt”Ý}ûö‘쾂[Ñì×~í×Hõú©€ µÉq¸/­\&­!³^'BYÞèÀâÒ|î±ß‚!óY¬@Þ]§N> oßy3Øò)l·tž|\AŒ1«‡=ÐQìv«Q‡Ä€ëg—çÚ!Ý »Ðö^sgÁM´ë5àtVÀ¨yE)ú•Ît©°ËU(%*ê¥D¢©Ðéyî²×]ï':á`écr®48ÚÅNô%J´Ê੎–BîĨ Òªé5NçZœ„Ÿm¥-O¥\ºøW c•ò-l5pyëýÙÅ•ïœß »×þƒøWÛGwÁùb¶Ôþ£Ñ _øÃ?üôÀW3éšv‚>ȯüʯh,ô{É4^å8w9$iã{£zäZºõÌ.Ï鹓ÞY¤÷o™¼T™Wg౓Oxgœ2©–9^%bžI&ÅüÂ"M˜áÁè 1oHÕ\'áK¡Ôù`xp(™ÃTöÜÙÜ UÄ”xY†Ûj²Ä/b ÇšjÑVåýÑ×%Sêä(ÉGù$ìY#´ Wgû¥$gä4óXõâu)³o„ÕYâƒ%ÿ¨§î³SqW*ÎyÒ®2 (ç!Gy -•´×êÀ3T´’65¦'Š¥£Vr_êÖz‚œö¡WŽ~vr™O|ˆÌ0ó“´B ·ãEØ<±®Wa»;Ÿù¿ Þ€Z½IÅþlj亡~\±Ó”#žL«Ö~¡wSʨ.‘~ÈzÆZE[ìbm7Ä•‚IÝMLåâabT7fÖ~@Ñ/V‰hiEÀ©…4Uå¥äilä)ƒ¥Ó¤Øv46W¡XSÒÑ_.œuåF ÎU¡¸råH¤¾eЉÔ×P¼,ïRîÍ…7} fW Ö[%í·çÀÈȺR߃Þ+• ¬Z8UÁB@–«Ö/«ÎEîɉ1ºEyÕ@¡Ù6¼Ì`s‹'aypÖ m„›÷ýOñï/,<¿Ï¤E]0d´YŒ,!#Vqžðú­¬´axh¨Ô8Zw@qý¢^ÆôT¿;Wn©¯K(&’é¡fBhí•ËDX´AY#ó PáV=\L7P€Šc®-.éÚŠ…gÔEü>U失‚͹âhé‹+¦ h-S X ɾ3qK(!Êù'iôgMzS²ÕJb{Ìb&›âQypÜp#Œ6ÆàüâQ83wºÅŒ7Gáæ½?W’àG^úwРz-Â1 ³ð’I¯‚â" YîÅ—KÊë2“UÊ©.²î;.¸ñÿ­ØW‰\M/< þð¿ð4ƒfcjB …^m¢9Pò,þÿ+ívZUX¯¬ÎËå¤)¯àJ|2Ë2Ð#k#Q1j'ˆ 0:mIQhæâ,3ø Å*õ±Õ qåN FgÕ¹4Vа¨S£µ1c,$GýYÄè- Ü§XÑE¤Â*-–J阊ó±«!SrR|t# JÛ­3ÒÊÉQ¬Tk#µ4­l®Ýöcõ OÍ<_;öWÐl C£–¬ŽÂ)Ú‘Ò¤â6ôK ®’Å*@ð㈵àoØ'¨g%†r± «3‚¢Ê2Tgv“¨ÓxÐ| æ—Áp+5¬{áÜßÂóçî÷šãëÐõßÜjA†«á‰;±õ¨ê“ÅQ'lb%t¥~Ç¥„®”j;Õq8æ5 4›°Üé*”)”ëÐM•|ÇÕxZX aºb¦ùïÊJíˆúMD©ÄÚ\¯ÉÕñfEÉ ç)„3¦ ›PDâdtF]90ѧOHÉ.tzrªfÒ´0Sµ%ù}Ö$ãØ˜^_Dÿ]ð5ãäÜ ðÜé/ÁHk¬½Rq¯žS³‡àèôÃðøù`°5 æ0õܪáTO&¿Y[Á21Ð! "ÉîÕ@Òl6sõkä„h 2¤Â»K~EÒÒ—à•g¥3œX±)d¨%} ž\¸~òhcEb·MSVéuD½?ðXIÈõÅ*Ï¡Áaÿxii¹dÏÇFcªÃºŽPU~¤V€*b2 ˜Ì¤nšò¢Í1‰Òm´yNͲpÑôj4ê=½®4Hz°î’”¥1†W%êB/´@ÂMOÌêíµ3%/i•”Jrº6eüUPÂTxdýxXB½Ñg*‹Yja©èùùgáðSS}àÐ4æ˜0€S÷~êàÎòÛ¥°ccˆ°¸ŠÙŠóEÓøò~ιǤSÅBUƒÐ“SSSö0íG\ŒôôÉIxiéÿ%KÐèAJ (Hð뙊:þ}j4žY®~ 3æfÆäóº˜È1úĈÃÚö¤AÊ';õu=+—sÉæU•Jä#¬´»œß0꽦DŒpºè&™-.Lv5寴™ è*­TÚ¬B¹£ÄæCC§S ÝI_®ðýŠu *›G¤”bhªiœ®yHËÊ×$ŽTÞº3ªÐ³òÃSð :ꢗûn9AçÖ߯¹zÔÀatæ}TŽŒz4êP¦ A†\Qùln„]÷ïÃÜÎ×Ôá]îŠU ® êh===½è2QuÔ‘^‚ù™‰Þ‚XrRS7EמñW£Õ¦EK¢@]Øc¸1¨Ä@ÉNÙæ0T²{·™‹EVø7í•.è¶;1^«ìÊ×S÷Œ2ÐD¯ÑUqU‹¶´q¥À]G¬´¦QÝ9œ)&βè åöÔ ˆ=FN©ß¯ØPø¸ƒ%Ìñj…0­,(ŸÇ$ªºÓ|,­eTY£éQRVÄ^ÁS`ašÊÒã”Am¹Ô•XYÔ­p zæÆæÒFù®ž¢d8ÝÍŸ‚[·Ä1å°qÑ“µ0%PÊk`)(g¤ ¥î=ìûZY¦”ûXi¯ÄQ6Y¤ä+Î2O(°2©!„ê8iŠÄÚ†­îÙ•€dzÎNZª<ˆ°]o»š‘¨ô2aTÚÛª&¡Ë3WZ‹rÿ=2ø4ëEµ¡ó;šÿÿì} ”¥Uuî>ç¿·¦®êªnz¦™mh‘AQ5A†øŒ"f`‰bŒ1+ÀÃð\yyYÉJâ[Ñ—÷V^PÐDt5Ƭe”ɇ 2hØ(ÝMBÓ2õDÕU]ã½ÿ9ïìsöÞgÿÝênf^ÖÏ­{ëÖí{ÿÿì³§oßBhô6$„âïÇ”V¼v~úÓŸî®Û‚Æbá_í Pâðþ§ðƒGVN_IƒkXVãdTrfÕIµPŸ¨ BY‰1즃†fCÜMw{«Äk^‰`âÏÍ®&TÕoUí_Iy‚âûÌö–á GkÓã’¼©6baÈòP ¸fþÕŸ1ÿhOÓ”]£Õ„z^SÉï|&Þ|E}«úoèï&eGs­é”Mø Ì¿Ò#3¹xŠ­f¬­ó˜_“ÉëªkÈ ÖôE<¥ ÁGìsšõë×+ÙÑ)ÁìØºuë>K¼|›kæWèC#@Ωm󗵦s&ï åDJI@²/|²« „NÕ¡fûätî/@}fBw̳ÌB…8AÍ?ஊ7 ßd@ÏT‘ærVç F5‘šµ‘9Û•.ˆSÍÙñI¹à"Èsº‚îsª¸ oI¡ŸªæMAuñMîA€¯~jzâkQ¨ªar©1ât)WàDÝXP,@}“ê™Hkì(6ß‹çSÍSd¬ØŠîŒðÙŒ4Å=Öi½×©òÐC +ãîd x ¶nÙ²e~“ú¼.éKÇûîé¹È’›.¾Ë3ËB §ðI±©lTÍëâ¡Ï|I@¨:fT „6ìM…ƒ PãŒ*РƒîA­K’¹‹ŽOÄ:¯7F5A‚ & 5TE4ÉjNdŽ:¯=K5Ù„ZI)Æ30]¶$„u*½Ô{1¹¿^æA¼ötªgB@”#T+¶•Z~«NƒÉ!ã´$é­õç«EÏC/²é¾©·¨òÃ5 ÙûH×Ü&þ1Oó2Žôhº[sãúJhÊ»úñ¦M›˜$akFÒÍ„»o‹ÐóM›¶Ï¦l«ˆ¶ «ì%†v•U„Y²›k*ì2)«¶µ*¢Q :½kñäâÈÈÞ\ÈÛå z6žHVWe¥¿íéiæ%á¼<!6üÄI(´%L! +Âò|‹#9ä,cc;‰ºTZh“åt¬zêÎs¥&~Ϋ¼æ=Éì}&­Ëî«Ê´B´OŸ \•5*èg­'Y­ ²×}•ÎÞ±BÓ«½U¥ «“2•‰¯}’óðù»Ý™ŽÝ|ª(Šqõá¶é}ËÖFôÐz«{Np“>?O`ÕöùKZ øËY59X‘úSEfª¶kFfŠKÜéÇqǯ(IùJň/x¾È$ç|EŠ!jÿu¥œªtNqï¼0ƒ:U ò>çâeüL‚„f³¡Tx½ìær•ÆËÂítDgŸîǧ&¢‡àù@Ç«Š€º„5HYS ™Ú ‰Ï5 ¹‘ F[™SßgNXŸC,B_޵¦)ô£<qÙsðœ·÷P™î“ ŸË»³¤B"Æ–•šYçæ¹Sícˆ8kuƒýœî–kCPz!9Ï`žƒJUK1Í[‡èÞ#“:²+=>´– .–d6E®h!d «Y7nÜ«g÷f˜òl ›7oÞ¥õÕ묊8׋‡ÙÛnÅptœ¯fUùÕ2# AR ËÍAãÕ—Vã¡2m402Üï…ysç*WK´pÒ€Š|ó cáBØ{‚áOMµR¬]‡¦¨@ «¦f„¸Gwð;tEª~_ÙÕ¤Çaª†f: L ‰L"xÞ± Õ1êØšT²ŠÇ}Ö_Ï GµC‰ÿ®’àë=CÊ%ž¯8¨®bq’Õ}­Ä«›•+Z ˜_W°"Q·È›<Ú™£*Í{jØ=½°«Ü%›:WëäÕ7ß|ó³5ñ³È‚%W­ZÕÔÆÁÊ xhI+ü{ZCaçÝQKà©J‹4,©füAlb(hfBê#$ca¶ gL\¬Š%=ö=»÷ÀGÑ;&(P¢¯ËÁÉZá€*|—îf8„ÙÑ*{ªXÀ“8!O»¯#ßÇioQé–.ë(jZj„ÎG]%-äßïç¾rêüûÄ·UÄ Uéœ0:æËyÈy׌Ùt£è—fRÇ3‘CFÔ¨¾J¦’±iΛ*û‹MÛÕ“—”?eâï¯Á Í‘ªgdó¼ ÔÊË>å\½í¡ø÷H´NQ‘tÑ‘é]¯ïÛn»m …É:ˆ£QÃu!Y¼}ûöÑpãd§:2þcå"ØëŸ  C LµÇ“¼…M|’=&æpÏ8 KÄìÖ°ÄÁWL$….®ð÷HWŠ!doO7@ 'ëtÅJ*"¿N¥˜¾¾ž(NãŒÚmÕ3~ªnå­ßyfIïÙÛÕ“ò™Jަ|’=¨ ô¸JÉ6¬[ÓYf€ÊȉÙ0‡Wjõæ9ò•øSAÌÁÔ€`‚Có™À‚†®4\Ä@÷Æ ÕÚðgÙô¼ ØSÈc«r«rN¾ÎÔáÐKòPP2â’òÅ·$z îžsõC*4L"ChQL…õÎ@¬udC,6’§ð‡Õ«Wï<þøãf› Aï9ÊÜ©Å0RnÈn¸ÚoKñªÏY›÷¦ þsFd‰D„C,I 4¨$ƒâ-Hü†ÃAûwCÏ’%YÙÖ)CðU¹ï}ÉÐp?.–¾ÞnŸ˜Š1læÖa™jÈi š~szRå¤$]F§sŠj•¯k˜V!ôáñ&ç¤¬Ë v¤IS K£Iê4+!{§$ 46ÍC¥Å\]V oy¾fÜo6t¨²g„ªþ¢ž6¤}(«@tõÊø¬ñ(0U£CJÄ×+v¥ƒA¿8z †¸ë YžALjhÏž=#ê 6lذc¶)-ò9ß,£0ÂÇ\¹úȧ¢ñ1³ñ³Ú ¥¾¾÷j`Ü3Ä€U\mÒ…˜ yBOê,…ºÚä9yV‰¼#p$ƒ$…[CƒÀƒ¶œp—²Þ¨¤ ÂÏ—Ô”DTjowOü»¶óQÄß»T÷\™â’pY?è<âßNM&×®ñó¶þLtO;h™…Òcò`NýìÉÓ8ò;®Z9ÏÿŽ“ ^¬òšZ4 ×LæiÉ\¬Fýž^“]ƒ(ÅI µõïµî¼•^‹6¿Xʦuˆäû ŠåçÑë9õÃ?¼Uýê Ý©{üƒÑµk×nïTêÕÏ¡öuõC{Iu(Aòù"z™B3UÔ¦­R é+–J³]Äa„T:¬(žÒ æ 4Øáá‘ê@­«Žyµ‹ò"UÚ”m„é‡÷ìï•ä¯ôÙØÒE JO ¡K‰0~‡ÁßbB-Þ¹·ŒÉ› ÂþÑðb–z±‹Á%ã()¿pjáKù— 4”*8 Cµà½ª¨$²Îéro&ªæÐ’û\x‡ekãU?]{<%±Váì² @F¡Lõ¹Ä_!ý˜AVΈh[£ž5•Ê¥“b„‰ëp ¬ÇžFß m'øÔ­·ÞºQAÜ·î˃ðjÂëpvC‚3¶¯\¼øèÆæ—‡¤ÝÑ¹Ê ¯ž,#üYVS0Õ+± x'«wS0Ø‘Ÿ&¡<ñgÈÝ;V©PñNÉHa Å•YGØ‹ Át…ðq`NoŠÁÅË8Á%U$⹊ÌEð¤K½”6ŠŎ-©ÂÝ^^äòœ:ÚÁEŒ ÷PÕ(G;~éòëKéoý[†€ Äs%†ÏF™Ðg#pª×S*’)H‡U¾.ñÀ"9 †•«ÃRj›®gQ“—®PÛª‡•±ç\±¬¯¡œœgJWGëï hB0xg§(ˆŽÖƹƒ~­}¿/áDýgøà‘GÙ<[ÃÆ<äàî£ãŽè½QîÜí±´Ð¢§—]¡ò˜¨ëk F¹ErÄ$5!Ðîqîb÷î‘ð9ÞÖëo È^Žà´øÒêaÅàÜþCÙ¥œ*£¦yþÞ^ˆ´¬f^ð½JC$^ÌÉcäÐ(yŽl:ô °{rœ ØÄ±dǼîäJ2O(1•°rRù¦ÛenFÒßhoåUØæÔŠÕü¾N_Hn»ü'ë;8=EÄ<Î<8w)ÃY%óPíuG,£!ˆÞô˜%Àj ¸ÜòÔßÁó¼¼ç™ùÐkUs©‘RÚvµöVOÐ;%éLšõþðØcm?å”SVð›cU  QZüŒ©ïóáÄÎ n4ª÷ò®§Ý°ñui9aW3µÎûLl,˜&š?€Ì’Â$é("‹w²ÄwX ;vì„…ØÃ©K(x oºô+ÝöX-J<Öèëþpà4_¤ä _2šºC©Rr˜\ÖõÜñVò ^ãžL…aX ybz &?Ä;(6¾»ZõÝÈßRa#*JE‰Þê¹ì›0YÉ\ã°ž´°Ip#³$r³8ÛNpWÝ 2h×ð<ÆZ›ŠJòÉ%ì ¡•4WMÊ'¢¡à¿As3iñR¹bu<;.Ãdp<¹¬(áÎý)¡»Ž×ª4^Æ ¼î9j}ZG½ «‹‚…¹À¥Á§†¶jô£u²ð ¬¤KܶFËl¤"x­\Œ–†uˆMì±±1ž­ë¢Á„üÄÝtÓMO×úû ±ØHp]ÞAÀÅmÚ8ðËc;wîŒõdŽóÂáÁJ ç2¾ÍAÖÁ®$Z6ÿl¬©ŠÉ(*«zª— /†Y…%øtšo‹½=âe:;ÿ=t 4'édãŽã(—ðßr®…¡T»Lšä)œ*éo\,—ôw1ÿ)}|Î9Î\Üíœ÷’£`˜Ô ñ×®±ñä…%æ|>ñ½c 3¿—Sp\½)ÓûNLµÒs%¨Bý-ý,6Iê³ÇÐU®JBôos>ÄÓ1öLyeÚxMXÍ„oeMuÈ(`^^;ºÈ’CÃxnÃú[dqlâ:Õ}< ž¬°†5¼äZó~„ó|ñ#øàþûïß¼råÊEQ 3X&G½t†nk {U³vÈBâî+cnxú¬‚ÌdÕ$*0œÜÑx¦ŒS2A³ãŽ.÷OlQ±^Ø<ð‚í ùÈPx܇%WãrE†Ý2‡4 _A ÉH±U'¤  Å+ ­“×D)ç+i™×e.#õVö„óÛfo¡Ùª,†^é¨(в0Ïû PÂdÃ!$<°w§±d—´ñýKbF!¬#pâyu<“’Àñè©cØ^±‰Ç‚ÉHü…cém ýuŸ%âŒjÅZiA•xõ,(¾dÚ„9à g \ ý!1.$áFŽzî¢ÿèG?Ò”ïКŸ1}`aö‘h„ýîþÎw¾ó4¾ùöíÛ£hãàŽ. s“E~E¼ âE”òq.JñX¥Š1y÷…Ò*ã¡©í8ÔßË`ÁGŒñÀÐöGT`õá2JWfåYú‹*Ze"_+KªL•é9_&õÔô¸Ìµ§a¯Á&.írO$>—<ÍðÞqhaÒ帚“qô@±âØ{o“}pù÷©Øâÿ‰©”'1²Æsµ.Wør‰Øe©£‘ÑeFAÇóSÒ½ .k§÷(ésêÞ‹Ì´DÔ"›•i+kÅV«W2U!–´ÖpÝ-†£c~ŒùF}F6¸°~wìØ=ËW¾ò• jþ|Ûl£9³…XŽ|o .júØ xNëU­ÅÅQá“6£«‹‹Èñ3ä9fâÝÕSb–K¶õÖå9#Q¨¨ \Þ3Ö²lægµT|íȞшú•ˆ ©<{#—qK\îõ.•1tò‰¬®B*¥âó!aÅïÛ¦¿‰!…Y²xËfIh§B¥Vxíνc±ÚÄŸƒ×V|\¦êL¼/}åùøºÒWKüNe‚¾¤ï>[HÔ§§JzžJÃzÝ–y#“ÐEB'ƒ6éë$Cq‚–Ig’^S–dH䪓dz¯¯%Ý£Qù9ÈõzòÔ5Çóí.XÒxÕŒjk½rñì[·îÂuMOßBkÝu ±fó %¹œu±@|ß}OÎ9á“¢æ˜Wcój<œÁ6Þk9ê°Û\Ù²ô;¨ÐÁøŠ‰Ä¥61É'ø3©£b¸…ÌçEÊGðÛ;ûGã.ÃÑGe`HçrÓ¯äÚºä¤%ÒÎåàè=xÇ&ïÀ±~)륹ÈMAG%ß±éì ïÉà„G‹½ 9øý 6Á­½ˆWá>@é4X1½ÇH8mö’N•vÁU<‘.û:Ÿ£rŽÆÿN=§#£‰ /³!© G ± Ée[Ý·Rù ÖÊRÙ_ˆû„;ÍJ?(–ÎÃÿæ»ÃâúÃ`¶Î9ß¾ûÝïjMéu´ÖËõ ÚHp>÷Ù;ï¼ssÈ3Zûê¬G8vXØG5N ;–£Ý.¹ì¬IŸïseBý,!¨V-@y =€¦V ±£•®·W5O“qŒ}MÆïPÞxãºzµc6ãØ—è0ë&|"„YOÎÆt‚7ÖW8ø Ã`ÐCŽÔù5•™ Ã÷¢Msï–ªXjZÑÂ÷àÕz•¿ÄݦHäb¤N%² Q€ÅŠj~€‰ñ)ؽgO¬îH¼í³è%Wd¸L-M6ª³;¯½B6Gâ};wÈKÉ[ öFC>026‘Ø!iQZ8†ÛT®ò¶q,-ü츣/jkN‡I\qJ‹‹%ßëŒLÄÏ!›ƒ3•a./=)Y_>k†¥óQ£m‘ak«U*¦ö1r€èÃ’W°zyÜ—7\gCa½-›¨ Ìgklãíé§ŸÖéÂMû ¯”šç,Fb‰áá¼·í=묳Vè®$WâÏ<;Òh÷³þÑ0!Ñ—‘d„µ¢öYZîkz ò­fòŒ†Q³×¹,¤ˆÞr³ÒÓkâ} ±_29ÙŠ 8V̼­0¥*—‘dÄ«(Êð.í;t§‘‘}lr*e»$¦BÖAd®)þ™˜B<äüHóù%$‹%˜s e^}ÃØ “™›žyæ™woÞ¼yÇÑG½ 6tuU¬+X^÷°÷0èo- è6èÂ]²‘gŒš6´š*]tÿ íh7qyW‹eH%Oˤ•Á]f¥mJ<-3)² BÆ(Å~yxƒ©`$ÓÑ a¬§¯[1y81\'ã».ã¨Ûì*€›Æ0ª«Rm§Ahì¸bÈ*7‹´žl%UJUcÓV|†Æ¼hÃq47%¯]yRSXEÂãV9‡§Ú±ãÝS³YDz’B¦bð–4“nDßš{"@JG†É‹öÊ=;­¹ík{ÚáJ¢±´h)DŒÌ#hu^Åж}Ì#&'4ÂbÁ $‰*$ƒ`n`åJdmLû“Šó¬—;Ÿæ‰2Âç+½ü,Ž&YµÖ%Ž-M/íTÃÑ÷­Žùæ*¡g5jå!RÂl¥?~nµÂB›ž’µÑU¤qa„‰pøCS(…%#ñ‰""ÇüYAÂàŠHêµ¶Nê¦nu$)ä ”ØcØZ‚x•!çå.O¾¢1 ºƒexC¿îºëÖ«õ½váÕþB, ÎDK{ÃêÕ«§/¸à‚#‚•6ñÄ`=y¶ÞÈ`÷ØÑzÚÅÞàʸÎÂTõ¬u(ejDØ3H,=ÌHÏÜMjøÇÑ®¢)t©WÃEõ©iÎc¸ŒL¨-„ƒš B“jƒÄüq²ªIÆ+1saZ’ !_«È°gqêu2¥erHäj‰¯Wdmô—åfž‘¡% zÄUI13:s§VKÄè],gSŸ§ÌlV•ê‘f6^_[q¥~TQ4©7ÕˆŠ´É$ÜŒYãÙo_HÓ8' ’èT>/ÒÂ`>\«K®™'·àÐȦ\Ójq7Šh 6²áPîA~¿'çEfQ,ô¿§z^H ƜɩVÚ³aN1„4U£œˆ·Ûo¿ýÑ{ѻ_$r†éýqËXØr³EZøë¯¿þ©˵ö7©…¼°+ä"!Flµ½š:Ì¸É  Zý€¬K®8|­ÉCþVQÍð<\Äøo£¦ž p€oš3ŸT…•\/\nô9Æu1#'Õ&†JRMƒTÈÐ]’{pÊ”Tv塳¡Fй!m2RW~gr³Zë€Ðcã”w®†•óìÍÔ Æ*Þ)+!0°qH+-à‚„l”»(¢JXA)!oPR®<‚)ò5çYs«×‚͆ôdr©¼H¿ ¹G×á3pVõµˆWHÊ/|á ë•´Á£^ˆhð"šâõÃÃí»ï¾{ýle4¾a,^ ›ïJ±"7É„¦²+.hçàCªÌæÍs$ñBòXú#Ljmlu$ز OA1pº8XAiP%%ýEåßp-'j¹‚¤Ø9,ØF„ÜVJ¶ø·ÝX©)Y` §ˆ îè¼xåSüsééçÄœ§$ÜÈk@ÓØ€¹š_K†g(Vv+ážýîÔH-tÙÕˆ¥D^ÐyÂsV$e0.¡7šéù&y 4 |. ÛŒ¡U#†Wá0Í*µyæG__ÜL*žÅ¦õ!Z ¼Ù áÕ–»vïÞ-ØÀÙš‚Ô¢x×-=¼žÖr{ÿÌdn ŽÜÑH²ñµ¯}mý4ÖIgŸ nëÓŸþ4üþïÿ>õ©OÁ¶mÛöE¶^~æ3ŸyˆÎü­áéûýHìÆ_äP¹!XãEwÝu×ú³Ï>ûXý°šuíµ×ÂwÜ!øêW¿Ì‡AyÒÞ°c5 ©g•ÇÂL•Wé?gò!tã]O²4BÒÂpB L%ãÒÉ[Bã}б‹$\:‚̘؎ã°m&9¦¶˜É»¾Q4ožºž°2.L³]Q‹‘&ûœ×ôð™bGscù3á F攪J9I©ÁeÚÏÌ,RíQpŽbe£ðâ¤Ä”j‘õ;dWçîwÁžš“hÒÓH8eÒü `¡t?T ·P%]« sp%OãÓáÓ=±4„V–-[âqÛm·ÁÛßþvøð‡?s_½îï¿ÿ~í=n 5ÜN\ßf¿ ¿€çvÃwÜŽ7?þøããçœsÎQaÇ(°’uÓM7ÁßýÝßÁ£>*/Æô…^¿ýÞß ¬;ÝTÑ2y'1Š…±îº|=ƒºÔdÞ%£ô!|ªÜçê•7PŠa:KX§æœ£j–3nKá>|`jÊ ¨ËTpM[äÎi²3Óñ?«ó4-§¬x¬«<È5Πñ¡×65{š÷8BY*¬iV0ž¢ÚÐ+¬¦pÌ6TUŠÈ‚ ¤(t3“}2ª¸qZiœ2R·M‰ù‘öLøµ×¿32¬Zµ*ÞÇyÙŸý n¹å–˜˜~øáI›Þ¹ò/þâ/~8‰õ{œÿø $‰çÖ~ˆõgT©f¯²ú¾ûø¨†ø¦p¼ÿ‚ .8¼··÷ 7Þx£0Øñí¬³Î‚|ä#ÑHæÍ›kÑÿ1þ¯0Õ½º{PÝwœv"yÍ| °Ì ¹XÉ Çep²5„Ä3Ú¥OÐŒ’0F%U–b‚ J‚‡¤òeIó ‚ŽÍ3¾áYðØð žá|UÄF2¿ÜLSEB•¡mçf„« ¤ß¬É%icªÜS¶"H”ñj¶Âo«ñm½ïä -ç]¾ Ò0U—"Ñt‘ò‡tT™„ž)Ï•¨‚ž“á6ÕLI¼!ãKÞ¬`mœs'¯1rŽ©Éz¦—©sÞ+S˜ßb%õšk®‰DßpÍþùX\"&¢qÜMaÖôäd B2l5†ã/ÃqÐGñž'žxBr™%K–ÀG?úQ8á„*ñàÂ… Ã'Ûÿ1ýe˜ÓÛ ±¹…®¦‰%`cs™¨tj2 ÄËäS‹5¿Æ+FfáY Ÿ:¯ LLøªL{#\çdÎ?GWwƒ /kO$´¯K;\mò.Ï+xaZÔNGr%Xƒð“vÙyC«0ßkV|¨Iˆ±0¥N& oتÜWö Ëú&†E…„=ʘ Õé¶(D¥‘‚ ÄPEÆUä0G 9ßH£A¡C„ºp4¡Ås !™1gjù˜”M´àÔîB¿Ys\M5»víZ¸òÊ+Æ.çí¨£Žò6l¸ŽbÔó?©‚5þ¦]‡À¿$½ ~’â9”„~˜yÑEŤéøãŸQQ@kj.…#gD"4š™Ç˜ÆU-vÿE£ ¸–bÚªZ|ºÉãÂæÙhR J;@aY5WëÞ©$2å%ÿ ^$£¤Äò—E²ZUuU¤ B® ä’„¹‘ªRžxépp¯ÃócÕ†,]geÒ*ª4•ÑV›‡Ž*`AÅAe5ŸC›Å4ãÛŒ ¶¹R1«ú#’|Óµ‹Å4´†®`ñH†æ7„”/¬\/G†u3¯kYŒTê•SÜŒC"øÀd¡†uùZ·:÷(gÛx1ríuÄ8’¤ÞsÏ=÷°Ë/¿¼ëMozÓ¬‚%øE1.\Ú·¶O? S0J‹¹ªAWÁ"Hã‹Gb«Š«Èh*‰™Ù17¹ •;êZÏ€YÏiUQ3¯ŒDrz&!#J¥s®)=K³U……ް–Œó¨ªsU¾°Š(*›S­D)’g[#çcyÁåñÊpZÎâ_i/Lm“W‘&/%Û…ÎR\Vi“»ãüwE­tÏô8·¹D/yG™ì˜÷»åpRÿ»chÅ¡|}qãÚ:î¸ãàôÓOG<ÖäwÜqýêš9N¹Ç{ºây‘µé¿IüY?¡Uk¶z4ß# vÙOì{¸VSÍ)SÊð>¨ª‰”$)^µU† nã©4Ñ’ S€âè’²1… ÇÓE*@ þibÍkY®Y ²~XÞC,²ÓÇò­‹½+¦:ñYœú?Z62Q°—ðj^Æ{å9òçÂîFÖìÈœ¶<óÍ @ÞÛªðÌ&oe­æ±‚Ji–C¸ÂdDnü¬µëShž+}=mu¾Gˆ·]â·Šë#¬“×ãÀuƒ}N$púçC=´üÉO~ò=µ¿©»åsõû5zG›jÇ%%:hÎßzê©§Æþýßÿ}ýln‹ŸÃ9‚ç÷-†cºÎ »CóVr>/™‚hî UlŽÂ¯Âþ‡¿Àëöà ¤¯fàs¢Ú(rÅ¥0¹Ë‹¡xF-H&a.ÈhÓÀ§“ZaÈvk²ª’•ª¨ù|Yxl$ùw¶BøìÓ7žz:´kCF+ô{0ˆ“ÞŸÏŸ7P•­<#žÈ² ®@rC×HþÞê„¿^ÂM¹P©ËIy®Z A¡àú8¡ç7a^ïâ¸n’>üÌu¥Çjï½÷Þ O>ù$#v¿Ekt:ɦÄ[}ÃQsÝa/‚Öºû³ŸýìÃ!Iîä=ð ºr.éxàNph÷ka±9>&` Š¢ˆ®y_åº:qðV:½ f^$mv3[^N Y*?››…†:î±´É3 ´¸€àd›µÃ£&8±ÆHÞ( ÃYλ•ðÊÎð&\h–M"ªHœÄ š„ëâõsß ŒÇ&4縞pæ£>Vû7ó7÷֦Ǵ÷x>kýùä uŒÖ$µï¿¿víÚá[o½õá¨÷ bhhHDñ‹îÙ³GæF~äô‚›nÆÓ.¹Ì›tNÜõb—°HDzFW¿2·’U;³)ÔßrÌmUu§°Ry¬†…ZE‚`0$Ü+«J©¼+J•:°µ¨„¶P0ïBc”T)Uç& ~#ãºòDðÔ¢-R×Û~­Rn®¦pÕçþ…pâÇE®b‰§´9ÔÍe] ²2YjRÀCòÎq àFòŽ3?× {ü™äø^h ƒƒƒ2b{×]w=¶fÍÖ:ÿ>­ÉÉÅ\½X}j;7{Ã1/Ž•­n¸áìeË–ÍÕ,ÝHÔc»‹-Šý‘{Ç¿¾tšÍT·…WÝõvLòfš…Ü'‰¥À’ÈÒÏÜhäáš8ôÔVý“ÒW(~ÊÚŒ9“MûÈΑš®ÌsNÑb{ÏE1«•N‰WJÅR™K+WÕb«$üÆæfáŒÞˆÍ%j[ABg¯ÁCa²²/rËX´"r4 & W^…{"q“(²‘6Cá¾FÒ Ò;;â…bž‡cdžÏu3ˆÃ[“ 8yÎÅ0Ä~Ÿc½As˜ÅƒMœsÎ9ßRhÝOPˆ…áÕô¾¼Ç‹ÝÙ×Xî÷FþüÏÿüÞi¤Q–¯:ò•øó‘¹Åb8.$cSÓeZÐ 79i¼Û¦¬%ȇBAkí¥Ô?Q1³-²¶ˆ†Ot‹Þ7¨ÔÉ =\ØÜÄÏÓ,ƒw}&*ÈX•Äòl‡Ìxà",Lõ ÏÕ ïÑàR*?ü, z¡L Éwb\”š·( öREJ® Š 3¥½ŸW«þ6y4:Ïr=Ðhù:ñ9e°b‘ŒCh̳´^w¼þÇôœvQ ÃE…·vÃp‹=IˆBÜW\ñƒZÏcl¶qÚ—%©å"ŒôEk]³)?üðèW¿úÕuBÕ!(õV'ð5‡ö¼^Ýs^$8‹ÜSmBO¨DÕ`wn%¨Äãòsf:áE\¨ÆTƒÒÂæÊ ÿŽ*Ÿ­4ôlå½L„ÀgL–©\ÉuäºqXE.!ìí Åë~lïypXXh¸.f“ÞÀe‡k_óÿø?ÆõF/»ÖàÄsAì¾ 4ïþÞ?€I´ìE¾‹ ÞÏ}îspðÁrÊ)‡ÏFÄ7;¢Ûë›CuŒÒÃL–¼T NkL¥#Î %5hf¥lœ ¹|kÕŽUy›ÌmH‡ª%`ªYsŸI£¬&:XÅŽb¼:NÆrnÛÃõ?3‡æf/R ícèµjÕªM_þò—Ÿ¢§7ÑÚ{±Œãç µ\ÄR>ÒŽa¸¾ÀY!šm(ŸÕF9±ï É×êÑëa;¬ Ï7ИÈ©X`8W(…1½0±—5QNÜ ndáù•hΚ¾Ì*PœÄÒ] D«©¤••`"G 6`vB'9ˆ+ w•ɪS~¯Ø^ ’›³Üô³Yú’s†ÅhÀ"0DZJÐ eîío ¼(¼T–¼Š.ÿæbˆQÞÅèQZU KCqL˜D€˜ «—­V-2'Âëæ^“D¸€çï©[/ñÏ!Û{þùçߢæ<®%ê½ÏÅ@^ŽD‡ZÜYOCñðñü^fe¬»Ì8·N„sL,Œ'é¤Á÷Æe*ì,\þ%‚ÆtÒ=ïry ­P£r !+TÅÅšœŸ0΋C±¢z5 …OTÉiØÔðJyˆ„káIÇ=ý å,EÂák›t4lNpIDÏÞ#‘ÜT<\¼Ÿß³ÃhôJ±Q'9D7Ì“ 1–BÂü}¸›ò .…‘Vy#ùœ¡ùr9ªòømž Ìç×0ƒÑ7Îñ ]/"æcãÀëŠÀÅöµñzO’¤“€0ç7õÚ ¡{ù±}ì.µo¦5§{~¶¦õsÉA^°©ý#ø IU-ì žŽ·Ÿxâ‰Cÿ÷(sç/ÏI¿ßüƒŠ!z’m.x’î‚J­©üh€ç‘ʬ_½B©8kìþ¢…ብб¶;áÍÕè_¯E1]Fü¦yu'dr‰£‰x²¡ó¥¢óÔ …¹ª•ªníb ÃãtøþÓ‘SŠUuR9ÇT» ÙèNŠV¦¡†A ^¤Bá»Í#9m¥kªÏYUNôA@žÿ©à²øý ÕØÉaMÁÈL|V˜sà&øºÁ âõß½k—œ/ÜX¦€fÊc¾Ákïÿøoฤ‹X÷ï@À‰òBªVÏ{ä€ß0µG›472Ž ÂqòûÞ÷¾Ã?üá¿wö,ÆÃìwYwà 2’FÐHÖd#¡ŠÐ™’ü™_™ I¡W™/¹ÄK¿¯q2üÝûšq0Û»ÓÉYo„5µÄ›ªþh=Dž‰äÞhSÐnM…PczL,é_ƒ=˃wèy<ÈÖ½ÞòÙà-PÚ¬K`}ÐÌÊ\>ï2 ç#ÖVqV Ŭ{If•ç-…q '¡U!3‚Rî‰d•–‚`ãXŒã¤`è1°’éU9—aI¸Vø9$gÀ°ëšk®¹ÿ_þå_ž¤åö£p\GÀÙ12÷BBªçœ¤×ßð †»ìØ¤¥ŽæÀW¿úU8öØcßñŽw¬à÷eý¸lñá1Óð$®1°uj5 ^œÒÓ¬¹§N»‹»“ ÷8¿…xp·mÜE£”˜‹ ¾¯·Tlô”øûèJÊ ôBó&’‹sÄ~bSnc‰rÈSyÚ_ýàZ€¨4Eþðí)([cpÔÐ °réû:žû©öNØ;þ,U²ªptÖrÌ0u¥ÖdÕ|…J®Ád.ä„Ù•WÐ@”©7^i˜©SÞ!¯¥P’÷N2bcÄ…cIãµ1ç`ãàœK—uqÓÄDç§?øÁ6(ãx„ÖÖ(­µò@‚û‰€^š$}–¤½ áª„ç‡ãrt ÿôOÿtÚë_ÿúƒÑ0Ð{X…ÿ¯Ä›ôÁ,X¡ï½ ™ø64Q²TO™ÈÒc^ùʤ!y_• `Édñ>6•jbЛ8SÏ8¢Dw„Îõ¤L뉟Æ×9´$+æUS!¿‡©É8lîñpìÁïϽÉgàÉß ®zšó¡å&`ëôOÃ÷í †ÝÈÄÞ´¨ruO 1X¾02‰˜C Ȉ›ƒ+`âdÆÜTÈÄ‹—•±5˜¼Œ,XY+í˜s@LÈ_ÝûX1ðæÈeµ‹Â*ÞEœšªädœ‹8ëÖ­Ûzá…Þ­ ®"®¶Qb)éh ÏÕ ^ê¤þÞè¡zÈH^Ž÷b•ëóŸÿü©+W®\®‘˜fH1cQæZݼÈÚ‰ëRu«€4Ýf½ e9‘÷´Kç ðR×µÌg„S¬¹çù÷µ÷Jîvg- e@¢?žµÙˆŒðʆœ£’c015ƒv.œvÔŸÉ Û°õ°ê™¡«ÙÍæœð=û »Ù6…Þ¨yÒDÝS(¦Züj×*â°Âe ½$«;ëÔS‚Š1pIÄ;Appžñg¢PÏWœ ŒÓ’é‚×ô½–w¿.zÜу8šÕk«^µzúé§µq`•ê%aïÑ>Ð’î+žƒÌ’°‘œŽwÏ›7oî?üÃ?¼eùòåCõ™6LÔ0ñıŨ›1Ø÷ lc*$¯yB-­ WÑOP›Y÷ÚÃ85ÛîµÈé 7®¾4&í]]sÒŒ¤Œ¤«Ù¼fwò HÌfMî…p¿€Áº”¬[²Ã3\º…Œ­1P4@PŸÉk¬šcסy²H ®à:XÊuín8}è`À.Žx<&9Ò½Ô´¡u#Ù¾}ûè»Þõ®[™n-7RîÁƱ߼ã…Èsžy®‡Ên“dù?Ç-!î»ä’Kþ}Ë–-Ãþ ¤þDãÀŸq·ÁÅ‹'rçŽ!ó_gôß¡Û/ŠzmÆM¹ÄÁ›¦í8$È d„;42,%v É0™–ß&¨{ì\7¨šÔ ƒ /‰Š XÂmX*¹¦çùõ hKa¤Þ×襽I ,?Û~C0ÈéT¥C  -Ã};|›6{»Tž¥Ï$ïÛHGü=~1¼}ÁŸB¿Y»v.|¼®x}ñ:kM}Û±cÇè?øÁ;é!ö6n¡5´—㹟ë<ÈK’ƒÌÒDDOÒGå_dE9/x’9×\sÍ[°ã^o2Ž w¯=K¸P…¼“¶F¾[Z„¶OR ¦riI9W¹Ø«8-_LìîÎå’±‡ìa˜Þ‡«WNDv8wŠñB-0ÕònxÿVÈ=&§‚÷ßKº×þ19O«Ÿ¼2~ÞƒúW@WcƧwÀ–‘‡`w¹ º»úÃlå}‘­0bŸ ýdOvîW벯UÂ5Ù«X’nI‚:JZ‘5&££r#PºþžG3¯—°´ù:8ið·£1àæ¦½)ž¼†X­êÔDã¸øâ‹ïܹsg‹Œã;ÄJ2RŸõ/fRþræ º*ÁI; ²¢¼9ç#é 9I4Ì7˜²žû#:iç Þ‡¡¿¶…võÞ ×lZv×8¹g³ óÞ)6ö¬ÅÝkç84Rz}Ô™÷~ÓüpJg\8³<]5/—ŽC¸Vk<ÈŒí݇ô¯„×úQ–´Z»ÃwŸW»8žÜ~¬Ûuôõ AWwØ zS„¿ ÷=ˆ>ÒTÐÒ “Z†Ÿ‘ƒ5ÙÊ€(B UÂͤôýHÓ$êÅG ]¼vàw`q×Êp ÷ÂÈž9œ”óÚÐý,Üà†øì³ÏFÏAƆXwR—£üÆÀ_ðÆç¼aÿüä µÄFÂðøAò$çàs×^{í©á¶\×½16­èi׌¤/¸gì—Œ—»á=_ƒáòÉÈeÅ E«ùÒŠÎzæÚ{°ÁxPùˆ§×«Æ AJ’O¢ÿÌ"•©ùX”¨@[Óã019 {ǶÃ)K/‚ÅóÞR!pX¿õ«0Õ…£—þN0„l,÷løëSŒ@oϼ`$!$)z„ý#çnT;*òº@Np˰Už,®Reø{®BiX‰4Á(üWfÃwªˆ^c¨8Núè+æÅ*Õévˆ<åfü3†wÜÃÇkÖ¬Ùú»¿û»w«°êVò{ñy@ý¼å ú#ŒüÅmå‡ä:'?ô¡Ýwÿý÷oŠg%¸ÚŠqÔ-YMâE°­^8mÞGàÈž_ ;t;ûcSºôYì©ôc|­bqÖªhEžqgrkK¹K‘ãñ¡{Çsa)Íô>,=Ç•‚á%Œ)#ØHC mØö¯pßÓ_…¶|Öl¼šÀ6GÌ?JBnÓJ³ç–þž¹ öRÄ??_ÕŽåß[ý½SþQÉ„. §Ëk Æ&“=¤ ·‰çÏ7ž÷#{~NŸÿ(Ú}®ÎÅmÌõ„×9©S…0sõê-Ê8&imüPuÉ_q<ŸäEÁb=O#§]áÂÒŒ}à¸÷[ßúÖz]Õ¨ X)Cí ®96Ò‚§Ù¹sŒŽŒÀÑs~Þºà €Ã#—R»ÍÒÊ¥›„DtñÔ""ìPƒ³Í‹½Qä9Œ<§‘ˆ›ë¿KI.=×H‹6b±¢N†É‰±z<¶ï]x<³guzZ¤ ŽX-ãgDcP‰¸¥‚þûòðóÑû°!$#g¬X2†U§)áS“ à€%X·1œÏSçyn8ßo[øßà˜þ_0ôÝ»wÅœ"6øh¢´S¸Â× äæ›o^á…þPo¦µÁaÕ4÷:f¾î5þ|6üÆ ]ñûËAöc$üx5{~ãOþäOÖ„øsÏ%—\ò†ŽM'/ CTðBb• OôÜÁùð¦Æî†ÇöÞ-×JC*«DσaVAº†_¬°gBf•w˜DÙƒÐwÃR˜å"¶£69>_ĩȡƒ2²‚$9€fXÀ-7&ᾤUŽ ÁB«œ”ßÅ|kÎQñóDÏ!U§Bò ÑR’eœ¢ÄïkÛ=Câ9ü2zt–“|[á(cN`'ñ!W®)›ðêþ߀Wõ¿9zýááÝT²5©”^–qcÀ 72·Öv¼¿úê«ïÿâ¿ø¤"[ø6$‰´JX…9G}=<×䕘y¡žD 9áx¿ó—¾ô%xðÁ‡?õ©O½åÞ´1âÉæqËH\¬*)‘;)„\½½}pøÀi0òx7<Ûó05´1ä&tÑ Î[c,XÒà󩷬ȚãøÈñÂ'½Ìqð1 ‰Æ÷/s,³,jWˆ­ †ÚŸ½ÍÈÔiV‚ ¿ î[“ààúw¬þÔÏ•<][LÝ¿ÜL”™~;1´QØš ¦Qª¶¼ˆ¹’WÐsÆðrX}ÕUo8ûío?\‡‰²6^ª–à ü9gŸñ>K—.…»î¾æÍŸ»¦Œ~†K’ax™ÒNð<íË%b†œ8É?Ý#áY@Ñ Œäåj¢w±21±&Ƈá¿óEyåºg>«6ÿ[üùˆ¡×Á[ù´üní¦«aãÔ:˜³8–{› Ú(L¾„ Pä"s ç0Iʾ*Ü–:g‰ :L^Á áÆðêsà ®#£—~ÓgDmÄÉÝ~Çí000·²6¼Bjê*†]·Ý~û“—]z©¦ˆÂÄüN ¯¸ Ø>PâKÙy%rÙ<‰Ö¯u„óÇÝå×?zùå÷_qÅèQŽ '»Á ¥zU„«%ÿçÿov<õÔSã.6¼{7 Î=4ä'$†²»ü4X×9¤¨±gL–ZÎÒkŽh{j—C«¤ÇîECÜÓœ-ë‹c¡ íÐ]á5=áq_Ø‘Çaý¶†c–|0~ΕË.‚±Ö˜r{áø¥”>öGvL= ctÏÓŒ2g”ƒ$¤U&Ÿc¶Èx2 ÕñÒÁ8’¡!\gíxòK< ¹qç¡aÌ=ê>*êŸïŽ‹ü´ÓNƒë¯¿>žç¿ý_ Ÿøä'+£±–ÆØ‹`ó7Ü—W^yåO®¹æš§täÊA².7rŽ—;y9û òYxàŠuH°ë~4 ^-:á„>ýéOŸ6þü¹õð=Éý«VÁÅ_,ozÇwÂòå ù4z¡¹ƒs£¸ýÎé ÁPnƒÝíŸ]Mæ½e$ä ¢2Å h“YÒ5=)ãâk‡äEíÑ‹ì‚é©qxã¢Ë`Þœã:žV{¬Ùú™°r6AoÏè鞌¨ÿ'»îæÞ‡*©’øMŠ^^¼Áä™yNÀ£"q“Ík<ÆÙ° ûÈÄL32J xÚžyf#üÚÛÞ&Ÿõ+_ù ¼ñä“+žC‡28"{饗þpÍš5L°°Ê¸QHųä>bÿË©‰úÿÝûâ.ø—»“þ" Sk(öȯðjDÕø¿ú«¿:ö=ïyϱõühtï^xïÀÆ㛡ˆÊÿúÛ¿Í“w€Þ«` ìlMkï‚GöÜ ÏN?òdN€5K$@2l\àÓKÅ TÝ«0+…_e„»£÷˜žÞ S{ œž„e]¯…¥sÏC›z 6 ÿ6N®W´ƒa ï17‚qpª‘¦Ø> “f‰Ê”Ákb¸a˜OØ5VÈJ%!K€Å]¯cÏ…¾Æ¼°ã·al/F)ß3uÎÓýÿøÓ?…ë®KË—/¡ÖyÎ^È׿þõ‡ÿú¯ÿúauQ¯ü{ä5FëeÜ—3!EæAôíºUÏ=±ïÉ#é÷c<íþhƒ£Q,ë=æ4ç 0´EèiKʵ±ÓÝn‘ê“›¡ùÌÕWGEc¾ÝxÓpäG¶o¸ñÆÇþê/ÿR{ŸP">¬ªT< XH¾ñbä ?wX¬èþ8äj( W?á¸N °«ÿ裞ò“3¿ñoÌaïJ»s;êIp?%öRZÓ¹ò£€|Ý=½1üÂE2ÖÚ›ƒ±l\;§Ï#§ŠÊ“‘µb™÷vEc¼Ì¦cÈRáèUÀÁ‹º¡s;Û a³{…Éà-ö ^¤…MœÉ"ÀgjÕƒº_KzŽ Fq<ôwDc­­X¦uΩɾta(Fó¤¦Q˜*<ÁðVåE~ë·~k,ä?xì±ÇÆ”×øžjüíUý¶Î7:ÝþÓç û»ﱯ¯¯©çÛñg¼è7·¹zí<lŒáU°°g…äCl1¬£Qcüne»‘T ÿà¿#¾ŽQ ¥eãaYëꫯ^ó¹Ï}îIõÑQ} ®Pi¯±ß9Ž_å Ï?/Ñ,ŽºÒ…†òšpœ‰,Xмü£]ñîw½k ÷IÐ#p5¶ëy ÿ ‰›[¹šªQ …cL†gà1<µZn<ÎãñïvLmˆvŠ$ {¦7f/u@ßSv-‡¦í?/ìyU|~Qô ½0Ô½\]OÉõ4}îú®Ÿî¹éÊîN †úD1Mì?Q‚†qÝõׯÿÔ•W®ß±cËï¡—@"é‡È0t…jZ†© à—*™-£‹½ISUºR~bB~âá | 寸bÅo¾ó+›q ‹vJ^uY#ú¶ a*×u”W)hwÕÏYQBÊ©Ôìè™gžŽ€K :äC÷Û[åë’$«Ë,= ^>76—rõõäqü÷UÃà„œÃ, "ä­€¯ÿûÿûµaLR7üA•gp…ªÅ^c_¹Æ¯rƒì#/SÑaʉa½`ï¤ åþà{ÿûß̼yózcxåÜ ©„W´€ô¢ª'ûlŽÄt´ÕsÍûT/üƹç!ïœyæ™pËwo ÛèèYfbŠ¼ËŸÇêïÅŸƒ IçuaªÓÝ»wOþó?ÿóO?ÿùÏ?¥ cŠrŒµ5ÃÐáT´ÒÙŒã—>yB0Ý\lÖ e |€zùסDª¾Ë.»ì°w¾óG¬\¹r|>eì=HbÆwÑ@Œ,æÕÑ@ˆNGk¤ÔïÏ=û1ïÞ~[G*œÊ5ð³Óäðgë´ðõûà÷d©_k”<òÈ#;¾ùÍo>òŒ§Ô9Ÿ/º/|†uFÖ £UøÐ+v{ÙsŸ×L…]ºÚ¥C/4 ÞO§21sÌ1s.û¯ÿõUo?ë¬Ãûûû›l(¬§ÈÃÐKòïc>¦ï[n½õÉ«¯ºêñ` cêt£—À¡¦ d:”šR†á^®nøK½ÿBæ XæÐ«[5Ù«, ßìè°·½–ÿ.„^ËÎÏù‡Ÿ~ÚéË8îv*Aï¤Ü+¯£]¸ÓÂ?PéVÔ7- å¯-êºtò¬‚Ou*Ïò??=‡¯»çÞ{6ßpý O~ùË_Þ\[%«Ã¹z4ü´Uy‹qeJ•Ï'ÏØÏõ|eC0x…oᄾ$ïÛÁP¶Âá× ¿V„‹UÁPô§ë÷~ï÷}ÛÛÞ¶ì„NXäTž¢Ã0‘ãüÃûŽžF@ž£Ì¶ëçRlÝ@ æA€¤ÍJù|º<Ë„ kÖ¬Ùvçwn¾öÚkŸÞ´i“` «ã'áÜ<¦Œ‚èÉZŽñ¼ ã?]ò‹‚)^.m(u¯‚Ʋ0|ڣ‚x ç*x»øâ‹—vúé ßræ™ËB¢?G „«1òÚ—à@”,Wκë×{ „›ŒžeT¡aÛ¶mc?¸ë®Í÷üð‡Û¿ô¥/m®.Ì- çàqHƒKc¼…6ŒýV¦~Þ à—&9@bkåaö*ìYúÈX…ovXX(+)‰·c=vÎÙgŸ½ðÔÓN]pâ '¼ÍÇú:ѯ&òÕòê„ì/ÄšÍ@@UÜðù7Ž>¸îÁ÷üðž·Þzëö‡~x¬vjö†UðÓð]Ÿ ?oWÁžbR%ÞÜäs/ýW9ÈËTÞ¡Ôzm,Ú»ô†+0/œ…CÂZF¯‹·E‹5Ï=÷Üoxãç/]º¤wé’¥ˆ [X¯tˆh¼}qÕê÷aÏÅǺuë¶oÚ¼ilóæ-÷¯Zµë;ßùÎŽà1ZµS€‹ý©pž ßéiHàÁ‰š—ÐF!‰7ì7õ…Ê¿ÊA^‰›ê£h¯¢=KwÍÃôÁCñKÂâ:(<^B!ZåvÜqÇÍY±bEßI¯ýÐa‡Ö·léҾŋ÷MNN–á¾7Ö½ó!¡3êÅó ¥è†††*Æñì³ÏŽ…Å>ÑÓÓS„ûñ›6Ž?õÔÓã?ùñ‡{ì±ñ`c³|Õ±˜\Ø>óHƒJÚ;°1LÕ<…x‹}õ1^èí—>ùE0ÀZÓQç+Ú»t)ÃÑ&÷ Â3 ö2Gç1/Óm‚Œa”¼ÂNÈSµcZ-eì)ÊË(^ið ïA~Þ@n1rÑàQ¡PxU¯×ƒaZ­V€9à¡D²Ypz؆䇩•••‚ïû Óx<>wppðZj0fó­‹g«Æ÷÷÷_^juvv6+QÆ$ÎÔnÍÌÌ,zžÇMoll,J±#‚c4°#©ˆÄãñ'Úù:ÖÉdò™ò7—ºBÉH£Ñh†ÃáÑ>g}¥V«5陉+´K¥Ò盤Á2ÎårŸÛj=À>К{{{_nÜét¨T*¥jµzJ·‡m8 ;An±X<:>>þv]n=Ïc{{û=p´„X Šñ9p’N§×Êåò×Ayu]÷lkkkmggçH|êâï-僋]±»jìâ‰Ò]2SÀƒ\.—šŸŸONOO?žœœ¼_.—¿·Ûí?ËËË€ÀOa\Cƺ.¦/J·é'ÄÚpTTgbkb-hw? Øn!ºÃ2&€Qu¤úÉi]´©AuŽì2 ı!¬N$Ü_bODOQ[Mƒ^a¬Er®_½Éí â1ày¬.€«ï^ "ì+ÿÝcÛ^>•6IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/clock-night.png0000644000076500000240000005547712536324426026734 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®žsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< IDATxœì½y¸Å?üíêõìwá‚€a‘}‘EЀ" BDŒú“$$dÔÄqŒ¯Æl“Œãüb¶I&Éd1qæÑ¨ï .1†w4*jPQQQvPå²Ý³ŸÓk½Ü®sëô©^Ï5áû<õTuuuuuU}êóýVUws‹ïÀpJNÉ)a z¿ pJNÉYN䔜9SrJ¿íÍ7ß|æúë¯ßôÎ;ïèÐ ‹v8ýS@ù;ˆ‡ú佚ôßÿýßY¼xñ‰ÄXA¡$B(ÆqœUÛYTþ´„Õb510ƺeYeË²Š†aŽ?þÊw¾óßÝsÏ=yè‰ õÀ ˜¿[°ü]Ä…-X @Çÿßÿû»®¿þúÏwttœ%Šb?Žã2¡*”©[D™É +^³VؾO c ¦if Ã8tàÀÕ7Þxã£ùË_JИ@`ù{Êß@<€>o‡ù¡C‡Š«V­ZÚ¯_¿ Eé‡jCP„¾Îã5såvìç&Q¦{éÎ eY6MóxµZí~ûí·;묳VBPh°°S—ÿßXþæâÃuì@»5kÖÌš6mÚç$IúÏóä©lƒNï9Ž*A€áÆÐûœiË²Šªª¾ýàƒÞyÍ5×ì†^ÐW°ü-åo Ù‚…ð‹_übè¿øÅëâñøhžçÓ…zûÁ)Z½HHK3 B‡Yq<dLÓ<\(Þ¸þúëï}ðÁ³ÀŠÓà¯åó·”¿9€0 o[pgžy¦òÄO\×ÕÕu¶$I]Ç@ÿŽf€Ñ,‹°-¨ªåGüÆXÐ4íÐ;ï¼óÔØ±c…^ ¸åo(Sq°†§5wîÜÔþð‡/···OE ×¦ ×zù~qAâvÞ¯¼€A‡ @Æ0ŒÒž:tèï¡(°ò7’¿ €¸¨S,ÛB¸âŠ+ÒwÝu×—ÛÚÚ& ‚`@ ‚³E«T«÷‹AÜÂ~~Æ4ÍòáÇWMš4é÷GUÍ* ³_v |¨âcgÔ@Â5×\Óù“Ÿüä¦öööq<Ï« B4@D‰[\+$(ƒ¸…ƒª_R¦ijGŽyñüóÏ¿ÿí·ß.C=PœŒRËãà ”-@|Ô)ñŠ+®ÈÜyç_moo'B zW«Éua|¿8gØ+Î+ÞO¢ëÎã06 Ë›¦i>|ø¥‘#GÞ[.—uèŠs1òCÍ&J€ØàðR§7oÞ¼dÔ¨QE± á&Î-ÛùVɉVµ¼Îaˆ«ªª­]»ö÷]tÑ‹Ð[Ç´ÚeBßôpíÚP>Tña lÖX¶lÙØE‹ÝL&ÓÇå Qß/.hØ+Î+ÞK¼«Uª–W,ã¶B¡°ç¦›nºãþûï? }{ÊhFùP²É‡ pÔM×€pÞyç%zè¡ÿ§ÿþAè¡.«N5 ŒV«Un–AœÇ­T»iš‰}ûöýuܸqU«U úÔ.zÆëC’<@ú厎ŽAÇ :[´jƪ)öÀsÇm˜(Fû‰bÚÏ>|ø•!C†,SUU…FûäCÁ&X€¸€ƒáH÷ÜsÏØ¥K—^-˲½•ï6í댗¸ff¬8ÜØÆuŸUrœoj‹k|ž¶èón`p;×J6‰išÖsÝu×ýæ·¿ýíèeç´pM>ˆ ùÀÄC¥ªÙ oÚ´écÆŒ™#BNP6»œ6Ù³gφ1cÆ<ªë:±K>ðü ì éöÛo?ãóŸÿüçÛÛÛ1ôŽ@9‘lÂišÆß}÷ÝÝxãoC}k'(¼ïñ‡68þú׿Î9sæy²,—©tЄïG±¨uNDY–ÅY–Å©ªÊ¯]»¶ëÅ_<íÍ7ßì¿{÷î†að<ÏÏó5@ð<ÇÕ„ ÓèâLÓ¬ù²,k£F:4uêÔîóÏ?¿{úôé=!!„9ŽÃ¶oÙ÷§m þ*XKØÄ0 ñ±Ç[±xñâ­Ð >€ y_ÂyÕU´ôꫯ~|Ò¤IS$IR©´­ðëâXÀ°, Uɲ,dYgúË_þ2ðÿ÷G¼öÚkÃ4M œŽ ‹ÔƒÄ N`¸„vñx¼>zôè±<Ï»Má†ñ™q”M€ÁQ à,ËâMÓä6lØÐöÐCzá…Fær¹¤ Àó<?,HÜÔ,ZHc¸±‡8LÓÃ0já®®®csæÌyûÓŸþô®¡C‡–yž·l°Xv¹0e¯Ð@i%›Ðaá­·ÞúëäÉ“7@™¤¶3øýÉûpÈmmmÊË/¿¼`ôèÑCÁû•צYÃH%0LÓD¥RIüŸÿùŸÑO>ù䘽{÷àyDQ'8¼ÀâHÕÊ)N6q Nß²,käÈ‘ï]vÙe[/^ü.ÏóÏó¦Í*5f±Ëè4ðiŸÖG\;hÐ '“8O:HN:@|À! 80þâ‹/~bذaÁ6ê µ¬ÁQôNɦ0Mår9ùÎ;ïœðøãŸ™ÏçS‚ Ô€átnL аqú4`‚€ƒåºººŽ^yå•>ÿùÏ¿-˲Éó¼Éó<±Wê€rÙ„Û¸qãÖ³Î:k­aœT€ø©Uíí퉷Þzë§Ÿ~zœ€™*Z"ìaš&Ol‹îîîøwÞ9ñé§Ÿž\©Tâ4(Üâ 1ȽfªÜlŽ‹/¾0ưsçNصkWÝ9:Lœó˜8'Hüb躙L¦ç“Ÿüäë_øÂv$ ¨_<ÏÓ@q΂Ñ>+.Œ¶nݺuüøñ/Aï÷èEÅ÷EÝ:iq™­ª­q(Š¢¼þúëóÇw•"øÌs´:Ef¡LÓä Ã@ÙlVþñ|ösÏ=7Y×u™€AE`Ä nö…@æÌ™ .¬ùË_I’jÇn€`ÅÑ6‹¦i‚®ëL€?.»ì²Wo¼ñÆM‚ ˜¶³8޳ì0Zíj›Ôäå—_~sÆŒo@¯ºEf¸Þ›ä¤Äc*W !$¿ôÒK³Ï>ûìávÅŸÖ À°, éºÎ†þð‡?Œº÷Þ{/ÈårÎ0í»Ýa@Ðk„ï{ß««³çž{Ö¬YãªVqNãž@ˆ?`À€_ùÊWž¿ð  ‚`‚`QF=æØF|+Øžxâ‰W.\¸ArRg·ø çDæ[žø. z7Ê+W®<û¼óÎi±Hè¹u§owlÏJaÛÆà4MCo½õVû׿þõ+V¬˜iš¦"Ë28¢( (JC˜°†Óø¦í¯Y-g!ªªÂ AƒjvÙ²e Šb-ï0ŽTrÎYvÖsW,S+W®œ¸qãFyÊ”)‡b±˜ÛÇj`¡\ïÿ²œxÔ¨Q† VøóŸÿL¾6ãlk8Ñý÷„3õz,qµ­ê ,[¶lÊ•W^9Q’$²÷¨¬Q›²%¬a¯ë:_,¥Ÿþô§ç<ùä“3-ËEQI’ÀÉ,&q[ìóê”AÕ¬R©gŸ}6èºÝÝÝÍf!ÔÀtØ1XSôïd g˜>–$©ø™Ï|æ¯_üâ·Š¢hH’dò<ÉÌ—ý,4Pê;s61ò“Ÿ¬ùÖ·¾Õ 6I T'’EN(@ª•s…\ùå/9îÚk¯–H$th­AT*Î4MdY2 išÆ¯_¿¾ßm·ÝvÙáÇO#ß’$5€ÁmÑ/¨ÊÀžÍ"¡úŸ»Ù4ÂÃé³át$þŒ3ÎØþÃþðÉ!C†%I"j½àè\™â;ãjaÓ4µ¯~õ«kýë_ƒzÔ½ï~¢@r2Bƒƒ¼Ë!ûÛßúõ¯ýÜt:ݲE@z‘Ï4Mdš&§ë:¯išð›ßüfâï~÷»‹MÓ”Àp‚„;·ˆ¸ÄËgÀÝX'â6s†=‚ø$LŒw/§(Jöæ›o^ñ‰O|b¯,ˆ(Š&±OÈ 1â¡lR.—ÕË.»líÊ•+{ $*œ¤é߇jE3‡›5„žžù–[nùøúõë§»ÃG p/Ö/à¾Ä0 ¿8?pgš¦9oÞ¼¿~ë[ßzIQC’$CEË^p¬­—D`¦ìرžÁƒ¯SUµ ½ ¡ß)9aFû ù›ôŒ•,‚òÛßþvZGGašžÎµg¨LŒ1Òu3MTUEëÖ­ë÷ýïñÑ£GʲÌ „\vÙe lݺöìÙã ?•ËÏq‚„%A¦qBµcŽã\}{ç¯kœ¦ipÉ%—Ïó°qãFزe‹çD€®ëüÓO?}Ñ–-[†þà?øÓÈ‘# `áÞB“½^ä^N6¡ÃüÎÎÎÌŽ;† :t7#é8n™´œA(»ƒþ׆ (+V¬˜¸hÑ¢Ðeðñ]Ïᾕp l AÓ4þÁõ_ÿõ_KLÓTœ€`CE¸úê«aÆŒµ›Þpà Ç}ÁÑ,›4.Ÿ;mްŒá6M>ûÙÏÂ9çœS+í·Þ ÝÝÝLöÐ4­îX–åžÛn»mÙŒ3ÚlbRSÂÄ€· O"OÿÞÿý¯^uÕUG¡OÕjØÜJiù4/5¥ë´;”o|ヿô¥/D½»F£TR-lãØV 8]×9UUQ¥Rîºë®Éwß}÷dYI’€å“°ýñj¸æškV¡8Ð0mËšÆu›æ¥§Pý¦~ƒLÛQÛÜì· Œ1,]º´îÙËå2ìÙ³'Pþº®Çžþù ï6,GÚŠëÝšR·á§}릀'L˜ÐÕªUÇ÷îÝ«»¤-O|—kU¿n)@\T+ ä‰'fî½÷Þ)‰D"X¾=ªb2úÙÌ*• ÿ“Ÿü伇~ø žçyÂ~à ¯T*Á°aÃjzø}÷ݲ,7t^/pxû„Îß (a€AŽYa:m>Ÿ‡¡C‡ÖÖaî¸ãŽºº¡Ó:ïÃq˜¦)½øâ‹gJ’´ôèÑ=ǙԬ–éIúGP! .LÿêW¿:bš& hкõ‘–©X ÕªöÂB(¾~ýúN:UØö®[°g©„jµÊ—ËeéÖ[o]ð /|ÌM•rÆ9;¢iš0`À5j¬Zµ 2™Œggõñƒ¨_^vHUÊKò;VUºººàŒ3΀•+WB"‘¨»?=ËÅR³È±išæW\ñà?ýÓ?mˆÇãº,˺$I– ¦ýì^ +Žå£çž{îàÇ>ö±mлEžþ¬PKU­–1CµªÍZýþ÷¿=þüvˆÀδVïë­˜¬ˆW«U¾X,Š7ß|óÿY¿~ýl§#ŒA«ã‹¢š¦Á¡C‡ ‹yª=n£T6¡ãÃ0/Ö`;ãxž‡jµ û÷ïEQîA€í¼ƒµÐ¦M›&×pÛ·oŸ€1Þ7vìØ£!ú¦-Žã0ÆØi¸{±Iƒ‹Åb0yòdá ÿ_ןš5Ø[µÂT¯¾úÕ¯~äì³Ï– wJ®)›ÃfN×uT­V¡\.ó¿øÅ/f®^½z!káµ…$(0¢€#*¨hGt~Î^£ ‚ª´eYuê+.HšfâA`®ö;ÊŒ–/_~u&“ùõ¢E‹vcŒMžçÀÞÃЧ„·Eàâ‹/î˜7o^÷Ê•+?ñÁÐÛš²CšR±\VËÒétüæ›o˜ÉdÊŒ2™kY¶,Ë´, W«U®R©@±Xäï¾ûîIO<ñħEQä¼öR¹ä4h Q®u³'êõ}Ö´®[u]8Þ~ýØëÝ{ƒ§t÷Ýw_ÿì³Ï*‹|¹\æTUÅäµ_JÕòê ^j—ùÀœ´ª%@‹T­–Ø Ð¸b.Ý~ûíÆJ/âøù D Öu«ª år=òÈ#£zè¡/ð<Ïû½¿Aï©:Y`bd;ÁáYS©¬2°Ê%M”8„kÓÇãÄwÜñ¥×^{­_±Xä«Õ*g¦Û7L¿púýúõKÿìg?K@@È×qš¶A"„±æQÈ…^ØvñÅg ŸŠÅ"W©T8]×±išnªV`cöìÙ“'O–¡OÍ",QÝj–Al%K–tÆb±*Dè4–eYªªB©T‚b±ˆ–/_>þ7ÞXä¶^àtaT§¨Lи`Fâœa:΋-‚Å+ÿ0Àˆêܘ„V¹\޹Çü /¿ür?{TU˲°Ù‹§ÑÈP·}íÎ;ïlƒF[$²= .¶‡âç>÷¹þçœsý‰–ДI3™±zë­·Úyä‘ëB<‹¾YâdŒ¨ g˜·ï¶s—Žó²Mœ¾_\† Z´ºE/ˆ:Á‚1NÝu×]_ìîî–óù<_©T8UU1Xd!Ñ£¿xªí3fÌHŒ=š¨û´šÁi†AÖ=¾ð…/´ÇãñŠËƒù‚ŦYK×u\­V¡R©pù|Ý~ûíWkšÖÁúP«¢°Eu‰5JÓÇ~âgs8A”E& HZÅ´sƒ^¥Û*ŸÏýÕ¯~µ P(ð¥R‰«V«\µZåzµk3¨ÁÎrú}÷Ý—†^¡õH, ^ìqùå—÷›9s&ÍQT,Ë4MKÓ4\.—¡P(ð÷Ýwß´C‡ÍÚ‚Áò£6:@cçqÆÑÇD‚„·¢X@‰Â&N?h8HÝx9(œ»A€íÛ·rݺuým£ÓuÝ2M›¦éžƒíÌ™3“§Ÿ~:ùzS,•Aö\]{íµí±XŒž¹ b 7¨Vš¦ÕìŽ}ûö)ýë_—:+–åÓÛ5N8‚ÃÏÆ8Q,B «¬Í& @¼€Âqœ´|ùò¥===b.—ãJ¥W©T° 7ƒ=ÈÀ«Ý~ûíý ~Ê—ô×Pø/”HóçÏï¼è¢‹È‹ôauH2j`MÓ°Í(›Í¢_ÿú×—«ªzšÛ(äl€VŽ£á0Œá¿x7 e·ø0 q ‡ k@ëéé™öûßÿ~Z>ŸÈÚˆÝ,†ª”MÌ ˆíííqhTµB­‹„EK½n¸á†Œ$In[JS¤¦iP,¡P( çŸ~ðÛo¿½È«rÃ0«Qqôqí]XÃO¼Œr7ÃÜË`§ã›™åòbÀ0`ðKCý^ày^yå•عsg2—Ëñ¶º… ÃðXqµsñx¼úãÿ8}ÛŸ"±HT€päÆgœqFâÜsÏ:ó`†a†UUµÊå2”J%ÔÓÓƒþøÇ?^’ß(D*< ‚ªP^€`svÚ v+Ûµ^ 8‘=ë|ÁÈ NgšfײeË.ÍårB±X„r¹Ì™¦i† êj9^óâ‹/&_ïl`È"BçäššŠuíµ×vvuue l˜†aÚ«å8›Í¢åË—Oíé陿¶=ÜYéQ×*üT(:”Eü˜ÃnÓ½¬|ZÍ&AX…„E¼BöíÛwé+¯¼Ò?—ËñÅbJ¥Ç`‘Pl2xðàêÒ¥KSÀÞ~HÂ2ý¥ÄY³f!h|*ÐÃö0 —J%œËåøãÇóëׯ¿Ü­r9ŽƒÅ‹Ã%—\†aÔâˆDQ¡üÂa%ÌB`Щß0@hÖ°÷+Î-ŒPo[¼x1|êSŸ‚3Ï<³Ž]¨AOxúé§/îééáóù<*—ËP­V±‹ø ÈÕ%K–•u‹øŠïû ^?Ùœ={væüóÏ/Ú…!iX¾[²7" ö^+nÅŠóùüòþ†S‡ýácÇŽ…J¥Ç‡{ï½·a·ní†>ö„WðŒq--vKUXl☰lBÊÄw»Æ/Œ‚K/½.¿ürèÊ-·Üo½õVÃoä>¼`Ó¦M’eù`,# ·A°ÀñQ*ìùÉüùóD"!•J%ê×D0ôªYž› Ê ´íQÈüùóû@"P ®ëX×uK×u\,q6›E===‚“=è0ÀäÉ“k…;v,¨ªÚ2ÖpÆ…a‘ £¾[g’—[z?viœAUM¯AãÞ>T«Õš7nsƒ(ÈÏ<óÌüãÇó¹\ \©T0é+Á`¡üío[†>c½µ Bê§wÅiÓ¦ÕŠ¤¡}V\{èºÎ•Ëe®X,rù|V®\9:ŸÏÏ ßþ£„€„Èž={j—öƒW£Òá°j•s4N¡Gå ×y±HØ{{ ‹5XñaY¥R©@µZ­å·yófæÌ–išpèСOîÝ»÷OÉd²ÇQ,Y–MAè×m‚³‰zÞyç;„ÞÀhø¿qè ‡qN„_²dI×È‘#A@¼Qg.U*Èf³`³Çÿaè¦5'|ûÛ߆ &@¹\†;v€,Ë}7ÀÍÚNP°:-N5Œu>ÈèïÆ"aì·ûx•+,8œçB°zõjغu+Œ9vîÜ »wïf‚ƒçy°,+ñôÓO|РAË“É$—J¥°ý½d –(Š¡U­óÎ;¯:bĈخ]»ªÀžÍrU³Â0HÝìÕĉÓ#GŽ—Ëqd—4ö%Vœ³ÏY\pö }b6Ë Nõ ¿`Á‚ö‰'v„3ÌÀRUÕÒ4 «ªJŒs.›Í¢ãÇÏõ…ÛËN¤‚ªSQÙÃkv…Wçö2䃉Žw+KPýUìHÎ6tkß\xüøqtìØ1®T*aUU-èÝmAOù^s7nœÞÞÞ.C½ÂÒrêÄ Œ½W´zÕ6tèÐ,„d W­V-MÓ ŸÏs¹\­ZµjŠaƒYG«PaÔ)¯¸ „X×øÙ¬¼ÂÌ™>H¹ÜžÉK¼ê.(«Ðy°ØÃ-\.—gïÝ»·-›ÍòÇG¥R‰SUãÞ÷EBõ7Ûn¸áÒ‡å8÷×qèX5}âĉôçCDUU¬i?~œËf³|.—ã÷îÝÛÀ~4ì§N5kgñ…Ãt~·kš‰w†½ÊÕ*E­Wzps¶/+Ìqœ¸yóæÚ*V äÅ*ß÷*guVèéÞ *V@$IO;í43`¡êâªÕ*`Œ-ûó=Ï繃ƋŢ«zåÇ t¸Å Ëf ý:Nu)ˆ 4­ß¹ 4}3¶‰SÅrÂMŽ;¶ P(¶ …BÃ[ö”qhíeÁ‚e`¿D^Å8€_¸paçìÙ³@#…ùNÌjµ ¹\zzz¸žžþÅ_¼À²¬¤üX# {Y'ÈÈU5 ÊHQXÄëÂÖAPñk'·¶¦Ãš¦MÞºuë B¡Àçóy”ÏçÉz Í éxÆÏçQ.—CÙlöì0ÌÑ uÊKm ’Žu]XU'ŠcÝ‹uÏ åsKD‚°‰›ÐLÁP«âöïß?½X,ò¹\Ž+‹œý*6®T*¡5ÈÝtÓM,;Ľ¼¬H—ýWø1cÆT¦.\©T,À¹\ŽËçóÏçQ©Tâ«Õê4/æp«¸VIÕéD²‡×=Y׺åË*Gç ’.ªx©\~,R,§åóyÞî/œaíê°aÃbÀf¦x-rÇg2QQZ}"“0+cŒ9{íÛ:%Úºuëp˲ú“­%^¬á6B™= #¤#½žî8ä¯ÎÄqÛ8Ü®qc4? „a² Ïå%Îç¡ãÜÎùƒ>Ö4mZ.—“{zzÐñãǹ\.Ç%“I,Ë2ɘ¾Wž3gNúâìã ÄH¯±ÇŒ32'N<á‘‹‰ØŸòÁårô³ø%*+œ(6ainLbFgµZEÙlŽ9‚ ÃÀ===N Ôeçæ&L˜ C£ýÁì\A§yѨQ£”Q£FåÝ2òòiÉB¡À©ªŠt]çMÓdôb »©I^ê9ï—·3-r ¹ËgIµË ØaØÊ™G …a“¨(º®¤R© UU‘¦i\¥RáBžkÂÚjœî 2‹…sÎ9™ &sÉÐÓ!„8žç9Œ1²,‹Ç ¦ižÄ@ +^ çÖàaUŽV°GØûz±ƒÓ÷c¯z ÒñÝê°aµ9}Œ1>Œ11Fš¦!„—ËåÜ:¹—3‡ ƜŨŸÉbÄ9‹Å7`À€8¨a “ÏçÇqœ®ëcŒ0Ƽý ÃÞÕŠÄ…iРÖÏ Ž `ó:ÏzÞ áU¬s­P,˼iš¼®ë¼a¨\.#ŽãBõGÛ•.\HOªS±sÀu*–‹äa¹J¥‚t]Gš¦ñ–e¡\.×cœ OûÎpÁ8ØLUІuæEÇ;óðS­š™Írvrg8*‹„eP·2yÅE(¦iŽÄ À†Á†Á!„8.ZgÑÆGkH‘l .ä2™Œæ–‰_!Î0 R¾T* htÇ÷i´°õéçq@¸*è½q,µˆÅjÎxú¸°¶>D—ªªŽãò€LÓDÕj•|ß*¬˜ñx\‚Fp4 ˆ‘N uV~ÂÙBlŽãišíAŒïV3 ‰cÝÇ­aÝ@æ•OP–ˆb¤;オvtú âïªVÆ«_躞ÛÀ6M5Á –$I"4ª^#Ý 6H2™Ä ªª"Ó4‘a<Ƙ·,+ÁH¨3{ ‹%ÜÔ+çuniÜT*?fðKVÕòS¯è0‹E¼:¿ßý–/jDœ6$Œ0ÆÈ4M$‡âÊå2J&“VØ{Ø›àh@XtÃñ<Éè›Å÷êuö‡Ÿ°×MµbÅUkÜ:9}Î$^v‰ÛqaúÎpT jo°ÊFÕj0¡Ú6u Q§zûõëg{%½NÛ Ç‘¡¤R© „G¡€Ü¬úDK8ϱċÁša ñA$,H‚%ˆÊTÍb•Ó­¬aÅ4Í$ÇqeYHÓ´Ú7vÃæep0ƒ©CÏó‘~‚Hl˲¶mŒqÌ‘&l¶L–ðëà~ù1Ê^w.({DSò°âƒ°ñ½Ô«( Â*[ÐëYöÃ0’¶áxž¯Íb•ËeÇCÜ6h‰<‹Õ›P"Oó꺎l*dÄ)gžy&|ò“Ÿ„<ùä“°cÇב.èL•_#´’=ü®sKÃ’0£qpÐׄe·4nå÷õèÑ£á3Ÿù ¼ùæ›pÿý÷{Ö…eYqŽã8„gYVÍH2ÀÚ€jŠAhá W÷k‰`ŒãŽãšoYüû¿ÿ{íÜôéÓ᳟ýlÇ«ékÝ:wØ)cZZÁ^âÌ?LÙœqͰGP Zf?àŸqÆpÛm·À˜1c`äÈ‘ðoÿöo®×†‘°,«iý<‹4#° â\0ÛvhJÅ‚^©›F#B*Å0Œº/˜¦ÙÐxA˜#ŒºàfÔŸö8QF: 7P„ ë:¯säüøñãëÚzüøñ¾uJÔ+žç9]×£Nó‚(еlY·»†ùÔ“’9Bd&Ëv·›ð<¯½öZí_o¼ñFí;¼AF¥(:´[gðëT$ìôƒ¨#a3·2̓U_^€SN·:vú<òHÝCî¿ÿ~OfE±LlJ½ Ý'€+—Ë4¢ *P™‡•ÚQWuKŒ‚ï}ï{på•WBüqˆÇã®#h{£¡€'=X÷‰bVùœÇ^ %~P‰Â¬²º±€$IpÕUWÁ¥—^ ›6m‚;v0¯'"ŠbÙîG@OñF!‘–„ã8 ¡„ œçyNEExžo]™¢(Âã?<σ(Šž£”P‚ˆ3¿VÚaí¿²¹Å;ÀŠ Ë"Îü£²ž[ÙIÅb1øË_þRû?ˆa^€ª-!Äɲ P­V›v†mÃ(ƒpÇI’TC=BHó«L·Æ&.Œ½áÕQO&{ø‘%A@ÒJ¡ói‹°Êí5ع• ‹•Aû3Q´zZTU%æEC_§ã‚2æyž~=°!*–Í šë<Ž Ã,@Ñ稲ÖÅ…e0  k¨»ªÎãfYį󆌻xųòáyÞ´°ÄÙ¿Þ‹<ÍÛÓÓ#c²È)~©eP.—ˆÈ ²,s’$Õ/Šb‘Ϊx¿Jt¦«»a[IH\öð»žu>Œx={3,B_çÆ"¬²q^×-+„¶ûOÓ bY…'Ž)^¡éçr99JaÂ9ŽãDQI’p,ËøÓzЊo(¸Ëy/µ¬•ìáS‘ÀÁ*³ó8(H¼âèc¯¶i¦ì~ÌáV¾x<^•$ Ûý¨Æ ÔÆÃ "†¡;‹ÇLè÷LÄ‹E)d!jBDèß¿ÿ{o¿ývý\*çl$?ŠõÌÉb ¶W™Y粇ÓgÕ3_3 d  žç§R© mƒ8öS…©R©h‘A ÀªªFÚ¬hƒ£Y–ñi§–E0Æ)¿ÊaU$ùdÐiS¿©àÁAÁá÷ AâO$‹8£2ˆ× çU&âK’´GELÄ^è#öGØ~™x÷Ýwél¸Åo«†°÷Þ{/)(†,LmÁ0ˆ(ŠXÅ}†aŒˆ>…VvÆ·’=ü⃂ۭüθV³«¾Ã¶β¬Pì (Ê;‚ `Y–±(Š¥™„U¯Ú—/_žƒ â·’^Ëà…^8–Ïç» âjº$I ( °,Ëï¡Ö¨àñjv éä^×ú]¤ìAòö*³ÓZ¬c¯ºuKd£ÓPå­tuuõȲlÅb±Ú4/é[aÝ®]»bÐøŸC¦V±Àzï½÷âQ DFQkĈûxž?î×p~•HÔ¬ Ï (~aÖõAËì–†U® ç›¹¯×3¸…ÝŽÝê7L{úÝ#¯Çã:\éY¬ Iuww þ—u ¡5)¿…Â:twwHà\dñNENEP+Šbɲl%“É …Ba.ÝÙBžÀ°ÂdK|Ý8±Ù™+¿u ¯k½Ò·évÌ {ù~a¯c·ç ªUXõØ™w[[ÛY–ÍX,fʲŒEÂ"~«ã‰'ž(C#8ümJœX`nÙ²åh±XŒd¨ƒ­fɲL@bvvv¾åU1A+Ö-]ÝyŒÌ~aÖõA:™Û(ÊŠ ÛiüîöAëï.›yF77|øð ²,[öÀJ$ªž~衇èŸ@1A$È4oŠüñÃ{öì¥`„EÁ±XÌ’e4è(€ Ó;uÖºÂû4¤WGpkð0 ¤ a;±×3-»›¦N¼êÚ&,“¼9Ž+Œ9ò¢(¦¢(8‘HàX,†©}X¡œaP.—鿟ы… âgƒßëðáÃj¥R°…E±¶ËVÅ<ãŒ3ˆ¢ØíÕ¸Nšv£mVå{5bÐÁ*SØÎÕjÇz¦ éüÊ´^XÇÎ|Ýf­‚…¤I&“¯U*•˜¢(XpÃöÅ7Æ€ &‹4Ä6PÀA2ݵkÙ´ÚÙªÄb1ò°V*•zÓ«“ûÀE‚%hÇ&qN?LÇ rÞ)QA¤|^ÏDÇyÕ“_=;µ(@iooß&˲‹ÅL2ƒ‹ÅpÄ>˜Ù³gO4þ·02ƒ4Ø!¯¾úê1m‡‚ÇqŠ¢àx<ޓɤ‹ÅÌlòXXNâ‚4 _Øy}PPø]çEÔ4AïãÇzN·8·ºò†W˜Õެ)ÞñãÇ¿‹ÅÌx~Ï×Ìà { \^mÄjOâF޹.‹6ƒXñxܲ$’zuäÈéÝwß­€;ƒ`§â} T¬J¥¢íß¿_ô¼ÒEAÀ<ÏcI’,[·4EÑ'L˜ðjo]û«O, x÷j\¯Nna?p„é°Qòas>§›ôYÝÚ#“¸µ¯ GFŒñ^,Ób±˜‹ÅLI’,A0éC!»´}ûvbœ€4½Y‘‹Eôµk×. ¡jV*•ÒGŒÑíg¬³ÂÎÆqKprU¯ô¬ø°  ›ÆëZ¯çòª« õ$N  2äωDBK&“z*•2’ɤ)Ër3êÕÈ[n¹eô„l5ñ€@†z‘Æ/ùËï¾ûîè°…%HvfÆãqË^1¦L™ò îfåùѸŸójì“ÑQÃÞ'j¾~ÏFâÜ®cw†½#,Hèc„P~Þ¼y«ãñ¸žH$ŒT*eúËYXõ*¶víÚ24²GmŠ—¥^ûª  T«Um÷îÝhâĉ¡ÿ4*˜¦ ö‚¡™J¥ŒT*¥=úÀ믿þR6›=—ìÔ¥+ã80 ®ºê*à86mÚ›6mªíÒ%;{aZÈna’ÆŽúa¿Ý¹Í~î‡%Îüèc¿°[\ x B¬ÁÌ4MXºt)˜¦ o¼ñ¼ñÆ®àСC3 Cêìì̧R)3‘HXñx¼ö&!Å A%½~ýú<ôî@×!àú‘ _V¤íƒ€þÐCíºôÒK‡À;! `«Ydº—°H"‘ÐÎ:ë¬'Ÿ}öÙsÀà8LÓ„Ûo¿¦NZËèŸøDݶwwpqI ‚Gø‚I˜Ïý8Å«l¬sQ@ÄwÝÑÝܧ?ýiX²d ,]ºn¾ùæHh0qW¹ðÂ ×Æb1=™Lê‰D¤¦wÀ¢&–e ¿æškv@/8œ6HtË!NÑ@àÞÛ¶mÛ hBÍŠÅbV*•2í)_}ìØ±2™Ìkn 0~üxPUµæÈÇŽÃ4˜›ºåçQ—œñnéüÎÑi‚ÞËO-òSµüž×Ïg3Mt]¯k³ &4°ŒeY0xðàÇAà’ɤžL&‰zeÙ?OвöÁmÞ¼YéîîÖ AœñO€¸l\¬M÷bŒÍ›7[z#ÏóÀó<'I$ +NétZO$Ú™gžù‹‚1ưnÝ:¨T*5 nÈê~5L'tËŸH”{‡ë|Ð{ÓÏëWŸn Ð4­®Í^{íµ†k8ŽÓfÍšµ:™Lj©TJK¥RF<7%IAÈÆÂÚƒþô§?wp`öô.‘À¯†z€ä¦ÿùŸÿ¹}îܹÚÛÛ7Ì«÷ƽvG>åb/•JE›6mÚŽ­[·®=~üø,R‰ÇBþå_þ¥F×ëׯA©VD s Q·¢Ø Q¤ù°®wÆ9è {Å…k £ãyäÈårÇaÓ¦M°yóæ9ãŒ3Ìd2Z2™ÔÒé´‘L&ëŒs{j7”šÕÓÓ3ø?øÁp·?| ‹ïÀøá9¬[·®gÏž=™öööÐ:"¡ÌX,†u]·2™ŒQ­VõJ¥¢Íš5ëÉ+VL³,+F¿b‹‚‡~B`éüÁA®w ƸáuÝ(¯Ö±;Zi¨·$~jVX›ƒÁðôÓO×Ôa§j&IÒ¹sç®K¥Rª #‘HX±X àùÍ7ßĺ®õ*Ôô.‘°¿`c²Èo~ó›wu] Ô,òu¼X,fc=•Ji#FŒ8x±‰Sóc?æ %Êù ÷$aRnâÂÔ™[ú0õOÒ;öÁƒWÓétµ­­Mmkk#¶‡‹ÅpDµŠe×®]ò£>šƒ^pÐÆy$öà'\ü i`Ëß%¢ÙŽ7M€ùÑ~tt"‘8æ!íº–7õ^À4ô>¿¿¤IDATM4`À€÷¶lÙ2Á0Œ¤Û긟„uƒŒâlp+[”2û•Ç홂876ñò£¤­­íK/½ôÙL&Séèè(···«öhÄb1Ë~™Ž‹ŒñYçŸþÆ#GŽ b;ú# ¦Ï‡6Òƒ°ÈwÞ¹{Ë–-iPÂ>(µG K’ÉdÒJ§ÓF&“Ñ2™LõôÓOÏ.\¸ð„P©Yös==²:Ge?æp‹oÆöpƳÊ´nZµþá‘,Ëû¯¼òÊå©TªšN§Õ¶¶6­­­MO$&¥VEœöÔSOÛ²eKúÔ«¦Ù º B„L÷"èˆêu×]÷ªU«f 8pu„|9„ˆ¢ˆE±R©”aš&Òu]3MS;vì‘R©t÷Ê•+o°,KòË !–Uo³8ôá Ó聆´#y±ì€àŒDh`ßD¤œ¬áÆ,ÆÊ"äœ(ŠÇ>õ©OÝÙÖÖFìÕ¶AÌx|øðb&“©´··W:::TÛî0‰„¥(ŠÕspº®Ÿ=}úô7²Ùlê szz72{´†Aê×Etàí¼…ûï¿ÿk¯½vtWWWòò®Ù#–eab`Œ5˲x@—\rÉ+¦i [·n½”™Ãæ v Íä¼sµ=Ül·²¹‰˜½€G‡£€Ð à0æÍ›÷ëÑ£GçÒét¥­­­ÚÞÞ®ÚÛ‡ŒX,f‰¢…1höðÃzçwòàÎMëÎÜâ;šËãáë¶#óÐk¤KÐ;ƒ€D:îX¿~ýe£FZ !—ú,ËâìÙNUUT©TøB¡ öôôÈÙlVééé‰ …Ø3Ï<3ùÕW_ý BˆCÕ:8 ÓÇ,ß QT,ú/5ËïÆh~,Õ,H‚Ø!^êÇq•Ë/¿üçÆ +§R©r[[[¹£££’Éd´T*¥§R)]–e !„yž„P”˜xë­·¦N™2å)ŒqJ¶#@©ITöh-ƒpиËW!ŸÏ¿ò•¯¬ýÝï~w^GGÇÚ°™Óë#öT,Žã p¨_óçÏ3W׬Y³Ô²,‘\ËšÁrëÌ4£8g¬è•túXX÷ð –zè§Ê…Š8X€`EÅÜÒ¥KÖ¯_?3•J•íõŽj[[›–N§uEQLY–1Bxžçlp„e®§§çœyóæ=‹1&€ Coi÷’È6Û¡’£|2³…vîÜ©2$3mÚ´„P„Ô7íŽÇôðäØÒ‘¹R©Ô®Ý»wO°,K Ú™ˆÕUWÁ”)S »» …Bݳ²:¨×q+:¯Ÿýà¦U•HØ4MX°`Ìœ9LÓ„ƒº‡•—,ˇ?ÿùÏßѯ_?ƒ¨U¶A®f2ƒü_çylƒƒô‘PÎ4Íi×_ýÆ—^zé0°g­è™+×ï]•¦U,"”ª… Ï!ªVR\»víÂóÎ;ïM(¸åå%´º¥i*•JB±X …‚˜Íf•l6+‹±;vt=úè£×hšÖT½ºêª«à‹_übí^sçÎûkâ‘U,–ï ‡7 ¢ny¹Ï~ö³pÍ5×Ôòœ5kVæ²D"ñîç>÷¹û;;;«©Tª’ÉdÊmmmj:VS©”n|ÁÁjB­òÔSOé ,ØEhT­@0XÍ‚  B„búT.G¶¢p>úèþ%K–\ÔÖÖ¶"P Í$6UcÊVÀvœL&õqãÆ½¾{÷îÎr¹ÜßO§·, ~ö³ŸaunÓ¦Mué¼XÄObuXçqTÛÀë:¿4¦iÂüÇÔ=7À† V.—å#GŽ$|ðÁKŽ=z&kú–ž"Àœæ%éXÇÎ09f…YÇ´4ËVaT9»^™çFŒ±rÉ’%«€O$U*ym6‘H²,ÓàhF­˜øÓŸþtß7¿ùͽÐkwi]æ”.´=N@ÖFÈö z¿ÀX ÇqÉgŸ}ö¢9s怃QïG@ iÒ4 •Ëe¡\. ÅbQ²¢ ¥R©È«W¯½nݺ‹u]Ïø­qàpÆÑñÎpñ³sˆß*{‡'‰ý ,øãèÑ£³Š¢hÉd²bCM&“ä@CQÓÞ[Õ pŒY¾|ù±%K–ì†>£œlg' R÷¿ÁV‚à€¹€Hƒ$6HDQL®Y³fáG?úÑ­p<êý,Ëâl Ã@Õj©ªÊW*2Ë% ¥T*ÉårYÎårÊŠ+fìÚµëBzª8êê¹(‚°‡išpõÕWÔ)Sà¾ûîƒë5Ï ÌáôÝ@ÁŠs³SBêÔ©SW,Z´hƒab<W‰†šL&uû‚ùÉM‹À1üõ×_/L›6m7ôÍV• ×þ ¯Ó’5·šjõ¡sê—“$‰ÔêÕ«O™2eB¨ØÌ= ›i`$|¹\ …‚T*•¤r¹,‹E¹R©ÈÛ¶mëzê©§är¹áNu«pxÙ!ÎcŒ1üèG?‚éÓ§×â¾üå/ömÛžÏ (^Îã nàÀ¯^vÙeÏuvvjŠ¢h‰D¢Ç5›1´D"¡Çb1C–e‹ÌTQ‹©Ít¬A«W¯î¼à‚ Ö@=0hû£a+{«Áp‚àº>Bl’˜í]]]™5kÖ|j̘1« ·" Ã08MÓPµZlµK,•Jb±X”K¥’T©TäR©¤¬^½zÄk¯½6·Z­ös³KüÀB§sÆa…-Ë‚'žx¢î–-[øÃêâ°H3 Éd2{æÌ™óä¸q㲊¢h±XLM$Äé‰DB³YÃEÑ’$ÉjkôÛ°að³Ï>ûYÃ0ˆZEƒƒ¹ßêD€àä„8\@2jÔ¨®gžyæÒ!C†<½Yh»Ä0 d§ª*_­Vùr¹,”J%±\.K6“H•JE*‹Ê+¯¼ò‘W^yåÂR©4(ªŠåå;ÃD®¼òJøÜçúví/Z´DQô4ÒéãV¨XÛ.¸à‚¿Ž7.+I’nƒCK$ªýÇ'-‘HŠ¢ö§y,I’,€£}çÎã§L™ò—r¹LŒq8hµªåv-' L£Ýi“Ä¡$ÉI“&õÿóŸÿ|ɰaÃ^€Þʉ,´]BØD×uT©T„jµÊW«ÕPJ¥’T­V¥J¥"™¦É¿òÊ+ƒ_|ñÅ r¹Ü°V¨Xΰóز,;v,Lš4 xà¤Æ%Àƒø^lBÓN;í͹sç®™8qâQMÓDEQÔX,¦ÅãqÍþ™ ù™fÝ U U*€Ó¶mÛ6âÜsÏýKOO Ž2Ô¯w4ýT9)p ÙùK ÷$?ò‘´­\¹òÒ1cƼÙfïíd]ב®ëÈ _.—År¹,V«U‘EUUQÓ4qË–-m/¿üòôýû÷OÆ ­T±XÇnT½"a?ð<_>|ø+sæÌymàÀ*Ïó–,Ëš¢(º =ë±XLWÅTÅe™¬ˆ·Ê'2ôÀâÈ‘#×W*§ZEoF<¡3V,9Ùhœþu2Immm©U«V-š½cÌK’¤Ë²¬+Š¢+Š¢)ŠbÄãq-²,›6cÐ븅¬0z×®]ÅÑ£Go¶,Ë~¼ÙJ9i`‚„Ìl‰¶#öHâ±X,ùì³Ï~bÆŒ‡8ŽÛÛŠ28Õ.]בišœªª¼=ë%P`UUªÕª¤iš iš¨išÐÝÝ-¯[·nÔÎ;§•ËåþÁÁÑ qûظ­­í݉'¾2{öì·yž—$IÒEQ4m;C—e™0…A9S–eÓV¥0Ïó­´5ˆLZ³f͡ٳgoƒ^P o×isœtpœd€ø‚„ìþ­î<Ï'ž|òÉ9³gÏÖ%Ijœ÷Œ(´Úeš&2 ƒ#@ÑuÙ½`û¢ªª‚íD]×MÓÃ0„l6Ëoܸqð;ï¼3dÿþýcUUmg"*HœÀpƱÀ‘L&ž~úéÛFŒñÞYgµ—ã8IS’$CEC–eÝv¦,ËF,«…%I²È'0l¿Uæìßýîw{þáþa;ôÙÎE@æ—IN8Þ€ø‚D†úu’8Ä–/_~ÁÅ_ÜžJ¥Öµª4›`Œ9bÈ›¦É麎4M«±Šªª<‰®ë¼m£ð†aº®ó†a!ëØ±cü믿~Æþýûf³Ù~ù|~ ®ëI€æÕ,‹(ŠÒ“N§vtt2dÈÁ™3g¾-I’`† ‚)‚!Š¢a3†!I’!˲A¢¦BÑÀ@aŽãZ­N–eû³ŸýìU{ûGzÕ+8NÊŒKÞ€bb¸×Ô®þçžø¯ÿú¯SÛÚÚ^€^ n‰°€bYõKÓ4Þ6ìy[#NÐu½æÛÓÉ‚ÍH¼eY(‹© nß¾½ÿÞ½{»Ž=ÚV(’š¦)ªªÆt]Wt]W È麳,Käy^E±*BEŪ$IÛUÛÚÚr]]]¹¡C‡7nÜa˲Äl6›´_D2yž7m`X¢(6k˜6@hPX‚ X’$™¢(’Y© €~ÅbqÜÒ¥KŸûóŸÿ| zAAÀA½ñ}ÀûW è³Iœ*WlÒ¤I]<ðÀe&LØû[]&ZõÂFA¦iÖ˜Å0 Dƒ†°a<ŠišÄG¦iòv¾ˆøcŽ8û^µ{rWk›eèŽk‘0ÏóBÈâyÞÁ$¾Í†Íd1ϤÂ" °¯Áäž'ãÖ¯_Ÿ˜7oÞÊl6KoYwîÎÕ¡ïÕí¶…$¨¼¯pÝ¢WÜ Hj@‘e9ùØc]0{öìT<õD”‹°Š½G©Æ*6P 2uL…y; ¢†,ËBöY8˲8Ú'÷"BÙ.u ±Áyž·xž'ÞEÑÁ"ŽbKEr ¦f¤0­ê`årùÜeË–m¹îºë6C#0è]¹ÌwÊß/p|à §ÊE€’€ø×¾öµñÿú¯ÿ:½³³³¥*-4PȱݩkÓÅNÐÐÓÈ6(H˜£˜œ¡ïã BÀA:<9EѲY†f ×Ò÷8  Ò/—Ë^¼xñÚ•+W„zUŠþàùÈÇ ÿ{çÓDÇño¡Z[¦P,è®à©Éº²Ù̓lLHÖ'^L ‰‰1^ðÄуÑM¼yÐCgܸ„Ä• A$›®Ò´´@¡uÛ2{h_ùõùf¦(Öþû&/ofÚ™´ô}øþ~ï½™” €*$üX ¹4ôöö:?~üûñãÇ߯O¾¯¤éÁ¢( R©T¢(È:Òé´£(J®Î–ÜyÙëæ@a!kÔ@¦!³ü ²Ân;ÎÁÂÎSƒ‚]ï þ¹¼óóóéþþþ?¹»Q×àW€*)8€BB“wr5`‹Édj¼wïÞ¯###GdYžF¦»ð‹J «YÃg¯“pŠºFî=ô:T|c&^ÉÎ6V ûØÎ¼÷°}z/ ÓÁÍÍMÏÄÄÄËñññ·ÈOÄ)üSHJ ÄaLp¤y‰»á«X<ìóù†¼^ïŽÙlžÁ>ß~©%µÆ®¿ÍŸÇwÓÆ­åEt^’¢(ßONN¾ž‹F£ì®?]õ‰®:ûÕ{ª´T’€ºy‰D 7i`íÿ¥­­mÀ?ÅþìÀÇ»„Úyz[4†Rd ¨ºƒÁ`ãùóçÿxöìÙ:vÃ(6èǺoµBª’ƒ(a@€‚òšÀSP,V«µÑçóý400pÔjµúñ™3ƒ÷S"x ÕW„@¤æ­­­žÌ\¹rå’yÒ!Í1ø'R×(ÉŠWI¨æ% :‹w3€ÆS§N5?|øðLWW—I’¤9”(e¬fEQ<~¿?<<<< …X8E ¹½w‚Øu>7aSUèH¼€ùôéÓïß¿ÿ³Ûív655ùñ‰Ov¬r¹·¶¶Ž---½9wîÜ«åååÔÁ ‹hÒD<·PÚpe“†›¨9 s’\éëëk¹sçΙîîn‡,Ë3"Åýe©Ã›››ßMOO¯\¸pa&°µù.[Vؘ£¬\ƒª¬a"½\@>$¢.aæ&4“zzzšîÞ½ûÛÉ“'›].×,€`q¿EYèèÚÚZÇóçÏ—FGG_ƒA:™¹–Îç Œ²r ª²Ðuþ> Fêìì<0111Ð××çv¹\1£Ñ8êÎSœÉd²' Ÿ>}ºxýúõÙH$²](¨SðݶÔ1òz¨€òƒ©l„¹‰¨K˜æ'tD>˜úúzóÈÈÈá±±±:::dY–ƒù±+] zb±˜åõë׫W¯þ599B> |ÅV5æ»mùuË ÌaR…wæ*4±—˜ìv»åòåË=/^ìmiiit8KVPÄÇ"È k{{»%DoܸñêÑ£Gÿ¦R)Ö%KÝÖlÞCäe SE¤vñ°0Ga€˜D¥³³óÀØØØƒƒƒ‡eY–œNç62ƒï‹öÅöGu¾Ð‡ÍÑh4æóùoß¾½‰DÈwQB>|ÏT@ùÃT @$€:(¢îaê,&Á1£Ùl–úûû]×®]ëðz½GdY–l6[w ãûíAíÚ>|ø`x÷î]Òï÷ÿ}óæÍÕÙÙÙˆ¢(¬±'IÍC’ÂÇ`ˆB©Š§Dª8@˜tò>O¡°ÐbR©ŒV«Õ444tðÒ¥KǼ^¯K’$³,ËiI’RÈL¯"Ξ.݃L\Z˜R©”!×'‰øÜÜÜò­[·SSS‘t:͇F"@DïAQñ`0U, L h…_ ·Oß[ ÞápH'Nœp ÚΞ=Ûìv»¿1›Í6›ÍVoµZ“ì!Y)Èï.eñ?ñd÷sÚÙÙ1Äãñºõõõx<¾Þ}&E°­ÖÈÕA „¼¾…X5@ö @ÜÐ 9VHhÅKÔ° iüÂí…©ÈgH Cm_ï8 >ÿ‹?®¹_âÓTdŸ¥ Ó^£ ¼ û§ E–@«Aqô?…C Vº“ÉIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/clock.png0000644000076500000240000005025512536324426025612 0ustar philstaff00000000000000‰PNG  IHDRÈÈ­X®žsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< IDATxœí½y”Õ}.úí]ã™û´Ô­M€! #  28Žî»$Ä×Ä‹çωc;—p×òÊ[ɳüâ$ÄvžmlÀ¹ŽM`“ÌŒ³@hBHB-uŸÓg¬y¿?ºöé:ÕUçTÕ9=ô[«VíÚ5íÚµ¿ú~ßoïª"W›á¸·ãlt¶ pÜŽÛ\¶ã9nÇ­ƒÈq;nLœí¼×ìgŸ&¤ǹúÛì¸xœ#ÇEz­ úÞ¼ãàéŸH’Zî–„€ ¿ãòqÐ$³ã‰a€ ¾yÔ¼ mºó̓ò:mÓ–>˜hv ]ÌŠN ÝŸË Úß|nÝÀàO³ü°ý[v0Áv\¤û,<Ý |¢!é¶ý¿ò•¯ nܸqhÑ¢ECÅbq0ŸÏŸJ¥‰¢˜7 c´Ùl,—Ëï”J¥£û÷ï?úÈ#ùÞ÷¾WE0'â:¤ñ³OO^êq°LÚqqÍŒ0vèêM_rÉ%é¯ýë›N>ùäKÓéô I’ ”Ò4•"B „ðãl¦;—1ùðr0Æ&-cÌfŒYŒ±ºa¥J¥²ã…^xà†nxyïÞ½&&Aá¤ÃÀÿü8PÞãéà>uÅDƒ&è?ýÓ?-½úê«ÿ8“Éœ"Šb†R𥔦!"ÍÏñ½7ªt³)"cÌt§á8NͲ¬êØØØÓ7ß|ó¾÷½ïU0 íÀ‰˜÷,XÞ“ a‹ PPß$üÏÿù?‡n¸á†?Ü(IÒ|BHRªhxN‘$’×:E­˜{žc ¶m—-ËzçàÁƒ~úÓŸþù}÷ÝWÇTÀDË{ (ï)€tõÍ7-,_¾\zøá‡¯?þ…ªªÎ§”PJ-5L6žN‘«°å°¼0Kîõ6n ç8³m{LÓ´Ão¾ùæ/6nÜx?&âK`ÚŽÿ^Ë» ]Ø¢¼Óc=öþM›6ý¡,ËKAT<‡Þ²œÔ¢#,Í0qyÇqjº®¿yçwÞzÝu×íÆH,LL(XÞÍ@y×$"[xA!þýßÿýòO|â×§ÓéÕ‚ ä”Ñ®º1E¿; ½Ö ƒxÓAy€‚mÛ#Õjõùn¸á_ï¼óÎ2‚âü­ã¼ò®H€ðb ñôÓOWï½÷Þ뇆†Î–eyˆR` {ç^/Àè•E‚nZTW+,Ï3Œ1Ñ0ŒwöîÝûëSN9åç˜JXÞÕ@yWÄÇݨ‹/¾8÷ÓŸþô3Åbñ,I’€ MÁ÷í4ï–uÙoaë»Ý NÀð.Ç ,˪•Ífó„qLuÁÐaÞ-/jºS^§üNÖéfõËÕê”ÆØ@µZÝsã7~û‡?üáQLŽ)ó2Ê1É&Ç @ÀÑ® žþù™»îºëO‡‡‡×‰¢Xòì×êýv«Â,.ƒø—ûévQÛ¶3û÷ïhíÚµwišf`ÒíòF¼Ž)Ìy€t`cžz꩞yæ™[dYv0U€'a™ŠXEMÜpoP^?#[aó¬išã¿úÕ¯~üáx&ú” Lu»Ž  Ìi€t` Ѥ͛7ç~þóŸfppp1!¤ŠälѯˆUOìÁ#@‰zc’ˆöébï¼022òô²eËn×u]ÇT}rL°ÉœH8¸—ÈßûÞ÷N¹öÚk?®(Šƒ‰Ê ûúó’×KÄŠ°©÷¸í³J¾õ=E±ÈÔ×á½Á»> aëúÉ&)Ã0J×_ýwn»í¶#˜`X¸Å&s$s \ª–Ö ¼üòËW¬Y³æ"Qk˜~Öe þÄ÷në‚w½'Ÿ¸ëÕü Þ»ìeßvÞü8 âM÷ bš¦úØcÝõÛ¿ýÛÏc$~6™³.לH8ÚB·6lÈÜsÏ=²hѢŘx£SãÑÜ)_#÷6tž&à8q·oÛ†1¾È!!Äv·aA` „´ò=é¶õÞ9<6»L ›ìÙ³gûš5k~nš&×%s^ÀÏ€DÐò·¾õ­“þèþèŠÅ"ÃÄ“'ŠïYsx4P/H<@cŒø'Çq¨eYy˲r¶mcÆXÚƒ@rÓ¢ïüŒbB,&OSJ넚 UQÇEQ¬¹ šøq@q€ô¢g¹u^ß÷ÜsÏW¥áÙ=ÌCó< Ð Æu‡¸“ ëúeY Ƕ,kÁ„°¹×zHÛœ1Bˆ!Šâ;‚ á° ›RÊ!Ì;.³x5 Cw¬/lbY–ô‹_üâ¾ú5L€ÄÄɬ$üUWÉägžyæƒgœqÆ™²,ëžmû1oË †ã8Ôë*9ŽClÛ¦º®/²,ëd˲V0Æ$oÃK{çþtÐ2/CXž(~xÓ„†$I»EQÜ#ËòQJ)s†yX”Rï  ôS“0ƘøÀÜÙe—½„ pïï}Ÿ5Ì@BÀÑêøEQyñÅ?¸zõêSA áÆ™æyD4†W?ÇqÛ¶‰a†a¬²,k%c,†ÙH‹„-BF%IzS’¤]¢(6Ap¸;F)åŒÂõŠ(ýdoZ|ñÅZ¿~ýËš˜Ê$­‘Á³’YHp(êSO=uùêÕ«—£ó+¯=³† Kp`ضM-Ë’4M[mYÖÇqSÁQÅÂÜ«Né ewrAx[„×TUÝ'‚#‚í²J‹Yܲú¾w”wN:´uñâÅ~&ñw*Î8Hf ]À!/Z´(ýøã_±bÅŠEpEúËÄÓh(0’åLáCi6›§Ù¶}:c,× ALâ]îdQ€Ò­¿$(ó !GAØ®ªê›¢(Ú‚ Ø‚ p½Ò”idòÒK/½¶qãÆ­–eÍÌ(@º¹UÅb1óâ‹/^±dÉ’!LC¤ÊëNqö°m[p‡X–EMÓL†±Î²¬õŒ±t`„ÅkQ@`š&dY†mÛ`ŒÁuwºîæ†EKPJ¢(n“eù QMî~ ‚àŠ? æåÅ™Ó×^{íµSO=õ L|pÏÛ©8+îÖŒ$$ZÕêãPUUݶmÛek×®]èÙ æë¼îBÙ¶-¸ÀP4M;ÛqœõŒ1ÅÛØyCа†–ï8 …B+oll¬mÙoô‰?/î *Šâ3Š¢¼,‚-Š¢-Š¢Cqܘ×íê›´ä©§žzáœsÎyîpÍŠ&™€tåJdJ©òÄOl>ûì³Ot+~ZXÞ¥¦i –eQMÓVÙ¶}!c¬Ð 0¢2GPž®ëSòmÛF*•š²m˜»Õ 0I€B9H)}DUÕwDQ´DQt<¢ž‡‡§ƒMpï½÷>ó¡}èuLÉŒF·fòëî~p´ú9þó?ÿó¬³Î:k9!ÄD2ö\çF£˜ëR9¶mSÛ¶‰išDÓ´˲.rg¥aàr{â.å‹¢ˆ´1F½^G:n-{¢PSŽå6æÐmùzï2ŸÇé’Ŷmÿ÷f³ù¼(ŠË²Ü”$É®ÛåIäÆße[¶l9óûßÿ~óºë®Û°¯ãÛoÚL8mËÍÓzÏë±|j U Þ~ûíg^qŧТh¡÷hÀ\Ö`¼8ŽÓ4©a‚®ër³Ù<Dz¬«cC”Rx'AàÏãù~Æè&΃–ƒ˜‡R Ó4Q.—166Æ-ZA¦œ/ìq‚QÊçYOc‹lÛ>ÕqœšmÛ£Œ1ï˜/‡Â\PòüNßù ûpö”mÏ<óÌEétzôÐŽxõÞÿ…élÃÓêbù\+?s¨·ÜrËÚO~ò“›2™ gĘ®ó¸TĶmꎅâà˜oYÖGc ÃØ"hÙkanUR&áÆÁlÛ6DQœrÞ í“.û×…±HP>!äuJé¯E©É²ÌÝ.o‡c6 c•VÚ¶mãóŸÿüÖø‡E»po{ß}º\­™ˆü]妛nZþÅ/~ñ¼|>ß·N@æéäó¸S‚a¢¦iëc[(Ü)ÿrëà1ÓAËayq,Š8uQÀÁó0ñIÖ»eY~KQK’$›ë ->h“F£¡ä#Ùzÿý÷—03þ6€ø\+/s(çœsNñž{î¹xppžmaºŽ‡n=|Ô0 Q×uŲ¬2ÆÎ B˜æzF?AÒ/ÖÛ®“`ŒMyˆRú„,Ë–,Ë–«O8P€xÚ¤ã|tt´t '<©ëz ñ¾S2m¢}ZDºÞˆ•"Š¢zÛm·mäO˜žÃ¹n„ÊfŒQÓ4‰mÛÐujš6ßqœ«,ê žÖ4 ’$Á¶mB (Ê䉺&κ åN$Ѓ„¹W„{·÷¯ Ú®Ñh@’$X–Æ$I¥´žæËÆØ%¶m/o4ÿΫp\1ÂÇzñó‰êX™7o^á7ÞX±|ùòÝÛØ¾å¾YgG7u éþüç??uõêÕLýZxØd‡Ì7BÅDZÇa¦i2Ã0H³Ù¤õzýdÇq®°ˆ m† 4o8ªª"“É N£T*Ef“ AÜM<ûó¢ˆðnÂ;l]§í¼„L&ƒl6‹f³Ùöñ?Pø`!äOšÍæ‚z½Nu]'¦i¶m8H²]Ðxû1Âîi§¹½lÙ²•·Ýv[nº„‰¼÷÷w¤Ëêc[ßâš×µjãK_úÒâ-[¶œ€vÿ±Û<,¼ÒÇq,Ë‚aÐ44 Úh4Î „ü!Dí ž6M’$A×õÖĤ¢¤ƒ–Ã@” ÝÊÄ—¹ñÀ€÷Ú9ƒ„ÃǾEBÈuš¦-k4TÓ4b,Ëb.H8³t»¿]–ð°þ‚ .(`*HZÔOô !]>t]^·n]î+_ù ™›˜50YÙ¶ã8ŽmÛ ¤ÙlRÃ0Î¥”þdâg™m.TH€‰¾ˆÃ‡£Ùl¢Ùl¢Ñh´ž¢Üº¥ã6Ü Æßi}'éÆÒ¢(bdd¤uíÍfår¹µM0|Ú-#ÂÇ-ËZÕh4]×aš&,Ë‚ã8¶{ßâÜëÀ¹(Šø·û·SdYV0ù³Sþš„WÏöÅúqV"‘R*ÿð‡?<ÝÕqY#ˆ=·ÓµZM0 ピÒ“ ›?`¼K’$ àðáèV«(—˘?~ëú¢0…ÛnÛG™‚Ž÷ÝÒ¢(b``GE¥RÁÑ£G±`Á‚)Ç÷×]@½*”Òÿá8Îõz]Ô4†Á8H<‰sß§LÃÃÃÙûî»oÚY¤ $ýb‘~‹t¿k%ô£­Ü°aƒ‚à¡ëÈ æîtÛ¶mjuÝ*‘1öQAÎ ¹q7hoh¹\ÙlŒµŒ‚(ëýé e¯uâÞ4?VÒt.—C&“éÚ+ M¼óež PJ¯qG­Õj3Æ8{@’$ÇqæîÓÚñ#[öÅ_<|óÍ7Ý|ó͇0õ£}ë}a×J ]xá…øÀ–cê—¿£<5Ú¶u‡1ÆÓ4¡ë:\1.¸ŠRÚ8¼y¼×<*CDYïß¶›xó£·×´ßmò—Á_Æ¡rB)ý]«ÕªÐl6‰aÄ4M沈í¥6±n¼ñÆ“òù| “LÒwÁÞ3@~yÖ6Îê/ÿò/O[¼x±÷·Ãq5‡Ãs,Ëb.@H­V£Žã\Bù@?ÀáMGmä½nÛ IÎ5Ýé8 Eñ¿BÖÖj5AÓ4èºN,Ëâ q¸€G—€LÀ:€388ˆŸþô§Kîjõ,Øû¥A¼ÌÑÈç?ÿù¥gŸ}¶ŒÞ4‡ã8΄èpÇ4Mhš†z½.ض}®(ŠŠp³úÎÝÖ'OØr’òMGÚ_Æ ÉWïT’¤XÎAâîÿF}ˆÚ[¶l¼ôÒK3˜üŽA_{O=ézËÕ|>Ÿ}ñÅ×/_¾œûš]õEÐ:wx:Ç¡º® 𦠵ZM6MsC*•úBˆÐ‰1‚\†ÖÉúи{YïOûÍÛÃíÏ›Ét”á)þžvï²ã8õZ­v‹,Ëûs¹œ¡ªª¥( :Ï(¥IÇl;zôhehhè-LüN/h¼VâÏšö“AÚ:¿õ­o­X¾|¹÷E—Øýc¦i2]×Ñh4¨a«R©Ô#lšRà`‘¨çêf³ÁQÏe¢”f²ÙìÿÙl6ç»LBx ¿¿ˆÙæÏŸ??ÿÍo~3ƒIW«ÍÍêÅ$`8I øÀ¶lÙR@LŽ`ºµ-Ëbš¦‘z½Nêõú@:þ9Â™ÑÆ¤ñ'±~ ×cGœþGµZ•jµšÐh4`88| ‰ÚFød~îsŸ[P(úöíƒx?*¾öµ¯­n a/9<ºÃí!G£Ñ ÕjUÊd2×(†ù½qFãö£ñO'ÂÎ߯ãô3e°*ŸÏ¸Z­R·S–eq±e(Jh{¡” wß}÷ ‡¡$ì‰2Q ]ýõ‹Ï?ÿü¤¬ÑŠnضÍ;Ñh4hµZ¥²,_I)]ã†è;gۨǺe]¯å˜MH’ôAUUO¯T*b­V#Íf“˜¦ÉlÛsµ"{›7o\¿~½‚I7‹³ÐÝê•A¦hk®¹f^*•Òà)àÝÆqG×uÔëuÔj5jÛö©©Tꪔ>µ°s1¢¼ßd3Å\QÍ_ï–I&“ùãf³9ßí#®ëp‡Ù(áý#‘ýžuÆ­·Þ:€©Z$±‰ í!þðÿpø}ï{_ÐX«È`ñ2G³Ù„ë¯ \÷»·A@ð§¹MWãï'hüï^ôÓæ"‹È-Z´èãããJ¥RšÍ&Ñu­ñZ‘´iÐüœsÎɬ^½š»û^7 H Eza/{ˆ¤?þã?.¦ÓéfÈ…u‹K³ŽišLÓ44›MR©TèàààÇ ΆkÓõdOêrõÓÂŽëÏÂ&NY°`ÁåÕjU¨×ëDÓ4¢i™ð®í¨‚=h2ðƒä1u c"‰Nìñ»¿û»óÏ=÷\/{$q±Û¶Ã0X£Ñ@µZ$IÚ$ÂÙaŵòÚtºKQ¬ß ×zaˆ°ãøó£Þ+EQ~GÅaW´Ó4Û¶™mÛ£ëÃöÜsÏÍ.Y²„$ï‰E’2ˆ$"铟üd1•Jy#WQú×Ê0Œ–î¨T*j±X¼®ho>O· Øg×i6}þ¤:…[¯eO ª0V÷äÉÃÃÃ×–J%i||œÔëuÒl6™ ’0ÁåÁk|ë[ßšö/o¯±,ò¾P"_vÙeó.¹äþ"}\’?5˜aÌeZ.—i±Xü]BÈÂ00¥ýÖ/×)ì˜I,NãžnÆ™®B7&ñämÞT©TDÞ7â¶'ÀÕŠÊ&öå—_.‹Å4BÞ‰Ê"qä^‰ŸúÔ§ ²,7 ‹" Ã@­VCµZ¥ŽãœËå"E­xe· 9‹O{¿…5ðn‚|:;·™b”¨L200ð±jµš\w‹Y–ÕõÁ×Z—N§µ¿ù›¿)`ò;l‰X$)@?ñI'”9ï¼ó’F˲˲˜®ëN£Ñ@½^§¥R‰.^¼ø:L ¿+sÄÏÓÁ*I-ì+"Ýö™ ëG}tì® ­^½úÃãããb­VC£Ñ ̲¬¨®–ÿÁkoÙ²EDø[‡‘X$@<âœïÓr±>ùÉOÎ*0²0·,Ëv{ËY¹\¦¹\nƒ$I›úéFõbqŽÓ«^˜mKRgQX$(Ï Y–?L)jµêõ: `‘Xlr 'h×^{m!Cá£X\áoõœ¿ÿý律ú2T¤‹áìaY«×ël||\†‡‡—ŸÐ_¡n§RÛ{ÓÇ‚õ $Ó¶¨ Húð±,«õ¢išp'ˆYÄO>NÖ ‚pfГƶmd³Y¤R)Ȳ Ã0Ðh4Ze«nT¿¬“ž™.ë•Q€ €È²ŒL&ƒB¡Ë²™F–åËA˜W.—…J¥]×ác‘Ø‚ý²Ë.³2™LXŸHW7+*ƒøû?âe—]6  Ú©€ay¦i2Ó4Ó4Y­Vcår™–J%qÉ’%¡ìaFÛÏ3™ FGG#^B— ì#X’ ó$Çœ+V¶m£T*AÓ´ÖÄß pÁ”SO=õ²±±1a||œV«UÖl6o+H ØEQlÜtÓM &Åz„_?¦†w¥M›6uzϼ+ÂMÓt«Õj¤R©````µ(Šç„iQlÿÆDµZE.—‹x sÇâ†yû5¨1ª%q¹ÂŒR QÛbFÛǹ}ZäwdYΔËeZ©Th³Ù„išq£YÞI?ÿüóULÀ $âç^€×\sÍÐÊ•+G#rÊ:Î\K”J%ñ¤“Nú=¥y—eYF¹\Æ‘#G022ÒúT_ïÝ6(=]–D˜wŠZõ:.k.¸\|;J)r¹öïßÇ£T*!›Í¶¶ ¸Ï™õë×Ðu³H£Ñ`F>‰˜óÏ?_;ùä“SHÍŠÃ mÑ«uëÖåW®\9Žˆ€ðæ†ÁcN½^gÕj¥RIH§ÓKdY¾ ,^ÎÓ’$¡P(`Ñ¢Eêú›€¶‹˜aÍ‘„)æR'b\ «ßL&ƒÕ«WcéÒ¥X´h$I Ü—O©Tê£õz]#Õjî'eýã°IùK_ú’ ‘£YQZ—W˜øœ´~ýzþÃw0ïšW¯×Y£Ñ ¥R‰–J%qÅŠ—zËÓ (‚ @Åž|/ûÎ…F<“àèTWQëÑÏ:õaB7nܸ¡\.KãããÂøø8á£,0µ-åùÛœsá…ZHða‡nñ»W€pùå—×­[w1Xƒçéºî†Át]ç✔Ëe:00p±·â<•Õ1–ΗƒÒ3i3©âžk¶˜¦Û}óç{×-Z´ècccttt”Ôëu¦ëºÀqA;šµvíZ³X,*fø.VÀØ+¯{5°|ùò2b²ÏÓ4Í1 •J…ŒÓ5kÖœI)=!.0ºY¿ÀÒ6ý sÍå ³.ìBAØœËåÊå²066Fëõ:ÑuS+V{s§ê§>õ)Þ†)Úý¡¯ãÆq±Z}ݺu͘låéºÎ ÃÀØØ)—ËÂøø¸pÒI']쯠 J›KÖ‹0Oz¾¹ÜÙÈ-î}êióæÍ¿åºX-€ð«¿í57nÜ;ÜÅÅjˆ,ËÒÂ… 툅jËÓ4 Œ1Çý|*• q'N§/ŽŒ¹¯Ei|qÆ\EÆLv"&­ÿn:ÿú˫ժèêTT«UÂs4Mx/—_~y!†aeê ÎAáCúм͛7ÄT ë&œ[Ó4Œ£T*‘R©$œyæ™B²Q*2 D³eýh”aƒçB `º¬“‹å]`ýºuëW«U¡R©ÐJ¥^‰üN§ÓöâÅ‹ƒ"Y¡áÞ¨.VKƒ¬]»6­(J#bÁÚÖ7›Mð1T*:>>N—,Yr¶¿r:TجYÜF8S¶šd6]®n÷vݺugÕj5a||œÔj5⾊͚ÍflÀø7Þ¤CB-peÈø+ @X³fM3baÚÒÍfÓÀÆÇÇI¥RA¥R¡õz]PeS§Šš QÇfS4'9÷\r¹üÇjétzS¥RÜöB|Àˆ«C´+V¤£G½ÓÿAˆo …‚¤ªª×}âæé <`Œ1âö}0×§¤k×®=‘R:<Yƒê–å8ÀÌŒõ:VŽßͼu%Šâ&Û¶•R©DÇÆÆÈøø8Éf³LQ^Hoa;å»è¢‹j˜ˆ¿O¹ð("½ÈüIž IDATÅçœsNaݺuü‡%q˸¹ŸòaFƒ®^½zCPåô£c*®õÒ(zÑqÏÓoÁ>Ó`HªÏþÞïýÞBþ¹Òr¹ÜúEx2 ,°%IâQ,/H€&‰%ÒO<ñÄü©§žZŠP )yî‡Øøø8qGî .<Ã_y*jN<…{q]’ޱгÏt4øérË¢ÞÓy󿽝^¯ år™¸¯FðoúƇ;o^tÑE@Àr©ý!S2@‘ ƒƒƒ6&_Ž ê±ô÷l¶ÒŽã8ÕjGeår™4›M*IÒÙÞÊêT™³aÓ)Ì;E¯¦#šÕÏFÞoÀxÁt¯óùü¦r¹LFGGé‘#GX¥RqªÕ*«V«ÝFpõ°W.½ôÒÀÎÂ ëÆ |NÐåË—ó?EuBé”0o¥RÁøø8«V«LÓ4V.—Éyç·’R:%Ê1×l.öf÷K°Ï¶þ¦² ¥ô,Q÷Ó@­×qÙDa;¶½€´6<<,#x¸Iì0oƒ¨ªtnTÇcÌqV¯×166&ÔëuºtéÒ•Q*©Û6ý´8 ¦[ƒœÉ†6ÛzºÃÄ„uýúõKÝÏA FµZ €t‹ly H6mÚÔD âW÷€ÏçYÀ:ÿÄ­U8ÇqœJ¥‚Z­†r¹ŒJ¥BN8á„°ÙŽ^õÓf"Ú¥7>Nþ\µ 6ÌÓ4ºï1˲X©TòÁk¡mô´ÓN31U6º¨a^ºjÕ*uÕªU•°u2þiÉjµJt]§¦i ©TjÙ”ÎÂûQζ]”ýg3ÌÛ 5W€488¸´ÙlR]שa¤ÙlJi×±T!4Ô$0Ü%ŠEÐ÷½ï}…ÓN;m4ä€'J)0ƨã8cLEñ¤Ö‰ækL—0OÁJºÿ\ÔI½X¡PX@dŒ Œ1j¥”’ñññ°FÞi²W¬XÅÚ#YAñG±²`Á‚4=na*• %„Ó4)cŒ2Æ¢(Š+zÆLÿègƒë©ê%’•´¬saXJ'“eyÁ¶mÁ4MÁ²,Úh4(!$.8€ú‡>ô!þðïÈBm.VÀ?Ï[,"л!„4›Mjš&5 Cp‡nܸq˜’‰{¬næwy¢º@Q{Ì;¯WWª_ o.‡s{1ÆØJƘ@°,K°,‹PJ IVáÆÚµk½R" ÏŽ¤P(aév J)±,«%öW®\¹"Áqæ„u]’á(ý°~÷°Ï¦ñúóÕåÐÒ¥K *¨mÛTÓ4Š©â<ŠÙétZÆTpL¹q‘5Èàà ‰èÖš¸q B¡Ùl¶˜à¢úb3áÃÏÅ0ït•g:: ƒÒpâ‰'æá lÛ¶©‡AâNŽ,ËR@>ò1–5›MJ)%ÔÓL&£Ä=N?­_Â<Êzÿ¶^‹®$ÖKH¹Ÿåè—©ªš%„PÔqj× ±Û¥¢(@BáÖ†,Ab}6¾u×Ç¡\ƒÈ²œê¶_Ò§n/Œ1 ñï76S‚½ågŒÁqœHÛJ’”u…¡Åj44NÇ*Œ+¼x£~ ¢(&C„÷¸TH !T’¤P€ð ”Rض='\¹&Ì;•£ÛôË:ËqhšI’`Û6FÇíEQLB¥”8ŽÓéI„º ¨žÄk¾__LÅtØ:]×1oÞ¼¶¼J¥‚T*SIû:’lÛïsõÓ¦3:7]ˆº®·¾­,IA€eY„à¦&ŠbÇ鹂Ýöä?Nd Büi:ñÜž\,L0A‡Øu£Ñ@&Ó®áëõ:R©TßÇ5%íœñWÝÎÕë¶35*ÁË´”Rþ•’Ö²mÛ¡ß[vëž ‚@A ¦i&í(ô~8hÿVÊ @B1ÄG²A ¶m7öO§Óký¤Ñh ›ÍöÌý|²Ç^ýËL6èé²ñññÖ—Þ \.cpp0t{Û¶\{øÜ«ØÖh4"yDqÒS˜—„RJLÓÔÂ6VîÏ<[y²,'8m4›)aÞ+X¦3š×µŠåêÆXóçÏÇ[o½UUÑl61oÞ<‚ªç,Ëj¸íÞo’úì;@!½0H’I’`F(@!m„RÚ·ñTIu7ð2DZ™ÉsM°û‚eË–µE±¼åñ—Ͳ¬&÷B(¥DQ”dè iZOaþ´+Œ1!„ȲÜB}³Ù4"î\¸> ácU˜w²™ìaïÕø>»±eYuQ!I|ÃLb›®ë\èLiëÞ¼¨ ÂAp’†3w±$IB'€t{*÷Úß ÂÌ(¥¤ bYï…çS uˆ—nØøø¸’¤0á„"IdYfõz}¼íDÕlD¡zÙo&€’¤Á&ìý,C’c1ÆðöÛok©Tйí¨Å ž‡QM´,ËôŸ"hÃn=é-„Õj5 zÒù…pEo¿ýöÛÞ ïX€i¹š(åé¶}¿zÚ“+Ê>ýr»¢Ü¯õ?2>>Þôj€ñTQ'Ùuó1È¡€éºžh°¢ Ž@Eaûöí+¨2ÆrIX#ih6ªM§0Ÿ¨Ñ\ìA ‰úð#„ì‘$‰É²Ìx4“!Þ¸7"³oß>ï?6 „1ˆ'ööÛoWä ±„»Xî€Y–µ¿ÓÄyÝ,É ŽÚ¨f3LÚÍ¢–oº{’ãl·WE¦( “$©Í3AüöX¼ãŽ;"1Hdë7¿ùÍh¥RJP˜V˜WUUþ`¦i¾p¾°Êé¹sjº@g»™´é.{/.Wwk|||DQ&Ë2SU•ëDkòK/½ô¾£ÀÙ¾}{}÷îÝ󓈻W®‹EQÓ4ß ª¨þëLŠÃ¨Ç˜ @‰SޤOû~\Eû/Ú@âõ¤¢¤’Ç@¢þI’ˆ$IPU•©ªê(Šâ躾}ÊI@§åN f® ó †ß/0'ÊvIå¼IA2>>þª¢(v*•²Eaªª‚³â·ÅÁ{ï½·©àè®A¼åÃT€Ø¯¾úêÑZ­–H¨Ãu³Eá ±Ëåò‹*©[ÅuªðnÖ $ÓÉ&3e3!ØãZŒŽŽnWÅq¬œA’ ôü]wÝåý T 0¸E ó¶¨èž{îÙ³gωI ÆiQUU–J¥EQØóÏ?¿7¬r:UX§t·cD]e½w»¹”$.\ÒõQØ#ê} Y®>õÔS飯j«ªÊ2™ K¥RÌ3+ÖdY†÷ïgÞÎÂ)ÖÍÅâs€322¢7›MÄ-”$I­±X.@˜ªªö¡C‡:Žs8¨’:¹Qq2 áÛÎ&X’j›nÛÄ]×ËÃ.`ù¹J¥’RUÕáVx¸ˆÙ_z饂ÁÈ"Sâ ”)ààݵk´{r]+¤R)~±Ž®ë/D­Hÿr/.V§sÄ]¶ÏL€%éy¦[°±G”J¥Š¢X©TÊæ¬T*Ŭ öìÙSÂÔÿ&f):ä™gž[‡ˆ¢BQU•¥Ói–Íf­T*eïÛ·ïå(è_î'‹D]ß‹ˆí`ú!àgR°GI§s2ư{÷îm©TÊN§Óü¡ÚôŠøYòWõW $mÄ×YƒðZÿú¯ÿºoÇŽ«âŽBDQ$¢(ÂD°t:mmÛ¶í•~‚cº@·é•‚z”©W‹£©’¬ïˆ¨4ï2¥ôùíÛ·k étš©ªÊà¶'Ä×ôå—_v0ñ§f?Hà™O–¡S=ø&€]©TÌr¹»pñ¢("“É8™LÆN§Ó¶ Z£Ñx4¬’:Uhp„;îú¸ÛÍ‹°~Õ_7Ec6E±Òé´N§mÁJú×_~™ë>ùÛø ˆ‡f¼îgë7ÞPþ·ŽbÓc*•b.H¬íÛ·?§âÂÒI©<îzùæ*X⣗zéï±cÜ#cëÖ­¯d2+N[©TŠ)ŠÂ¸«žÀÅš·}ûö1³G" Ò*+Úb?ñÄFGG—Ä, g¢( ²Ù¬“ÍfíL&cíÙ³g'cì­$‚.*­O¹¨>k޹”$eïe}wA”‡¥ôá·ß~›¤R)+›ÍÚÙlÖQU|°"â·½n¾ùæ ÚÁÁ§P‹Ó“ÞÒ!·ÝvÛÛû÷ï?1n!ù…©ªÊ\â¤Ói;•JYGŽy"¨¢¢ThW«ŸÛø·Ÿ °$=o¿ë©WÂÓx2•JY.ƒ8étÚq$‘{uäÈyß¾}M„3ó t Æû ð¸XÍfÓ8pà€ÔqÏE‘ ‚ÀdYv\ßÒRUÕ|þùçŸàô½º Þm’4ø~‹ì~;ê~qê¯_ päþûï;•J©TÊJ¥R¶,ËŽ(Š ˜hC] Þnò믿ÎÅ9Hσ[eÇT1·nÝ:R­V¡nV.—3«ÕêaMÓBÅz/Ì1W„¹¿Qwjäq¶MR†¨ÛFYßMDÉó¦ëõú/%I2²Ù¬™Ëå¬l6k+ŠÒ‹{µò+_ùÊ~L„5é @|B½M¤°n¹å–7öíÛ·:naùò‘™étÚqûD¬çž{î^àn•ô5¾¨O³ ‹Óh¦Ë}šn÷¬Ÿº$¬~£2z‡û[Ù¶mÛ£étÚÌd2V.—³¹@÷üå,®{•ÚºukSÙ£â r¯€h.Ÿ·DÓ4c÷îÝþ±G‰(Šp; í\.går9ãÀu]"¬’cÐ4­õ9RÆ&¾Qnú\J?-.è⸥QAbšfë—–eu¼g¦iþbÿþýr.—3s¹œÉdœt:Ýz“0ƒž}öÙ Ó"õp‹ãb1x€y×]wí°"f[n÷rÉd2ÆŽ;~å¯4>·m™LétÙlÙlvÊOWâܼРŽù¤‹`IR¦8uw®ª*r¹ŠÅ",Ë Sóé§ŸÞšJ¥Ìl6kf2ÛÞMÄŽãœxÝu×Â8ü$¹‹å¯´3ˆ ÀüÉO~òöŽ;Ç-´×ÍJ¥RN.—³Ý¯¹sç΃¦i>Tš¦AèºÞ𯯯¼kÞñ‚4øÙJR°FÝ' 8lÛÆèèhÛ=ónãM[–uÏ[o½E²Ù¬™Íf¹{å¸ì“¤ïƒ¼òÊ+êáÇ L2ˆ ­#@B.¶Â½Œ1ë•W^qÄÀ(A ²,#“É8ù|ÞÊçóf&“1^zé¥ÿ ªDI’pôèQ4›ÍÖÄÿ<•ôÉÖÉ’6xoCnÀôzž8®W’9!‚ ´Ý³Z­Ör‘=Ç7ž{î¹G³Ù¬‘ËåŒ\.g¥Ói[–eˆ¢È]´¸ ²øßÿýß" ïr‹Ã ^€Xü¤ßøÆ7^/•J§Å-¼—EdYfng•Ïç·Þzë Ó4·z* Š"4MÃÑ£GqèÐ!ŒŽŽ¢X,&¾y3¥7ü€éå)ß/ðÅÕ%æ¶£”BQŒŒŒààÁƒiýÉ·ío½õ–‘Íf|>oe³Ù6qž„=J¥Ò _ÿú×ßF¸þèA€6 É“O>YÚ³gO!náá‚Dâ;q …‚•ËåÌl6k<òÈ#¿Ðôß„yóæapp ,ÀÐÐPë놽€d¦€v¼(S¿ÏwÛNàèt<ƲÙ,†‡‡±páB s¡íÝïà}÷Ý÷d.—Ó …‚áêQ'•J1Î ˆß¾Ô^x™¦ÉÝ«Xá]nQó;ßùÎ>Ó4WƽAø×ñX*•r¸XÏårF³ÙùoEs¡UÉÞu½€#N#œm­‘Äâ–¹S£»PJáÞï)ûW*•ïêºîð~|>oe2G–åÄo†qê'?ùÉ7ì^µ@Òɽâž·: ÿò/ÿ²gçÎ'$¹·±Y–‘Ëålw2³Ù¬ñøãÿ†yÆhŹ1qÜ«$ áÛÏu $uç¼ó¨yIêšRúè½÷Þ;–Ífõ|>oäóy3N;^í‘@È/½ôݵkW€—Ab¹W@D€øÄº¿ÓÐ`üà?8`yÌ ábœE¸X/ z:nìܹó®n•Ö’0H¯ú`.X¯:‡§½ùÝò‚D{å•Wþw.—Ó …‚‘ÏçM7šé¸Ñ«DìàÔ/~ñ‹Ï`±£WÜâ2ˆW‹p€˜ë;wíÚµ,áµþ>•Édœ\.gçóy3—Ë;vìØ«iÚÁ— ¢î× P¼ûÍ4Xz9oØuw{€ôÐuý§;vì`nÔÊ( V6›udY†û/Â$ì!9rÄxä‘GD¸o$ˆ^q‹ `ª±Œ1ãŽ;îÛÕò²ˆªª,›ÍÚf¡PÐóù¼öðÃÿŒ±w’úÂq5HX:vE±éÛýùäí”R;—Ëé¹\Îàß(e™ña) L8xð ½ûî»ÚAâ}÷#{ɘÊ"ݶmíÞ{ï­×ë}a‘B¡`ºÂMß»wïÁÑÑÑ»ZH@ëId:€2[ÖézfˆAœf³ùwGŽ1yX—÷{¨ªêH’Äzao¼qÝüîU,ýÄH‹´„:ýk_ûÚs»víZŸàâZ“,ËŒk‘b±hº•¨ÿæ7¿yÖ¶í'’Üœ^$lݱy£\[PºS^Ð<¤,?¹ï¾û´|>¯ è\{Ø©TŠ% îÚµKùùÏ>Ž pxÅy"ö’30•EL†®ëÚ?ÿó?¿päÈ‘q/’?¡”B’$d³Y;ŸÏ›F±XÔòù¼öàƒÞÃ;õ&Åa¸@ ZžK·ìQAëýë¶ðüÝwßý¢ ÍÇÌí+!I@Â[ÿáøLºU=³ QXäÖ[oÝýꫯæ¨q/Ô3F‹É²Œl6ëäóy«P(…BAE±üÚk¯}@½WDq¯¼é å V™-À„•!Îrœz‰ œO?ýôétZËçóúÀÀ€100`f2ÛãV%€…¿þõ¯G_}õÕ&Ý«žÙèALí4t'ýúë¯ÿÍ¡C‡Îéra¡“û?l¦ªªÃ{WŒ|>¯8pàÈ›o¾ù]LDÏ& ’ÀÍê´>*ƒtË›NÀt:G\ $IûçÀ1úâ‹/Þ:::Êu‡^(Ì\.g§ÓiGUÕ^\+Z¯×O¼êª«vcB˜síöîG,K€ñY^èô7Þx£üÿñã¶mÇ~-—W– àCâ9@µB¡ íÞ½û­}ûöÝÏ{ìÓÁ A ´ìÏë˜~LŽ”t]Ý®¿S: ƒ¨íÝ»÷8ÐÈçóÚàà V, wä¶ÍÁA)MÊënºé¦—-Ëâàð²í ØèA€©nV $ŸúÔ§ž~å•WÎD‚·½•Æ£Zž^v-ŸÏk¯½öÚ‡þ)0} g9 (úaqÀ%/iÚ;ÊcŒéµZíÿ~õÕWë¹\NàÂÜäßÙ•$‰õŽôž={„¿û»¿+#˜=knÂi[nN´ãi[nÆ«÷þ/oVí Œ1Úh4´÷¿ÿý§g2™ƒˆY”Rð9!„/ƒBÇ!ûöí®)в–¯ šwË‹šZËë”ßO ^P~˜Â–£2HPcÌ6Móïzè¡Z¡Ph‹Åæàà îê+“É8ªª:=€ƒ˜¦yöYgõ|¹\®hº“?¼Ë=€þ0€¶ˆVK¬Ð~øÃîݱchH<œ¿âŠ+žÆkh˜±ëíì‹kÅ­g‹[€«Å­ÍÔ4 {÷î­^vÙeç¤R©·€f½î×™RÊÓŒƒ¨Ñh8¯¿þú›K—.- ‚°†ïÛ*˜¯¡8pªªÂ²,X–…#GŽLa ýÂò¢¬ë‡uMqgʵÿR’sñÊ&„@–eÀv}hÆße–$É‘$Éyì±Çž?餓FN:é¤ÿÆ+1÷¿:]בJ¥044Ô‘1ÂØÂˆN 8 x¢°F·m;Å­+¼óÎ;h6›PÃÃá¬A)Ý»gÏžÛwîÜÉ¿Ÿ«ñŸÜ/"òoZ9î‹x˜?¶1Æ6|ö³Ÿ}öwÞ©c’=‚†³÷•=€þ»Xܼ®0n"᳟ýì“K–,ùÀUW]u²$I»“œÄóD‚,ËŒRj»Lbr°H’ä‚€ýû÷ï½uÓ¦MW8˜t¹xzÞ¼y-ÊYÉï’ñm½ËÞ<~Ðz¯Åiüq÷*Ô´®Ý¶mˆ¢Ø PøÁ!ÂýO=õÔÃÕjU( š »T™LÆR¥õâS¯à°îßøÆžï|ç;%L†s½®U›(zæ^ë›H÷šG°sÑλ‚ Ñž!„d|ðÁK.ºè¢ƒ%=Ÿã8„Ù0 jm4b£Ñkµš\­VåjµªV«UµÙl*ëׯ_=44´…1Vèšét2åQ¹$ûG]gÙeGýßÛ¶m+«ªjd³Ù¦ =›Íò7-UUmQ¥”¹«^Øš;î¸côšk®ÙIQ^C»{Õ¦=ú `šL‰7ª¥HÁ‰$IÙÇ{ìC¿õ[¿õ€±°ãu3Çqˆ;‡eYTÓ4ªëºÐl6y”K®V«j½^W†’NÚ¤ùIDAT§Õ 6œ#ÂàÓ&@g ÄÉ‹ºM£Ñ€¢(PUÕj²,·…™ý–„=‚ò#,댱»Ÿþùí•JEJ§Óz&“áÀг٬éþCÐâ?¹é8Nܶm[uÓ¦M»1­ªcBpá}n-×ê˜úÀ$™L&÷è£^}æ™g>I)­õrNÎ&< ì‚Dh4bµZ•ëõºÜh4”Z­¦4›MeÉ’%C«V­ºœ1v"Ð5¦ƒE¸[“ÉdZyG…ªª‘özêAË‚ <óÊ+¯üסC‡ UUL&£¥ÓiÃe #“ɘ©TÊRÅá‘*êÁ±øÑGwá…>†v`xõÇ”¡ìý0ÍBûG$L$åN™¡¡¡Âc=ößÖ¬Yó0&* ±yAbY1 ƒjš&ºn—T¯×¥Z­¦Ôëu¹Ùl*š¦©guÖÉ…BábÆØ| 90¢‚»aH§Ómëu]oýSÃký óå¹îÔžJ¥ò«'Ÿ|²¬ªª‘J¥ôL&Ã'3“É.kØ’$9²,;}b ˜¿}ûögŸ}öƒ–eq·Ê ŽÀñVÓ`fÂ'! YµjÕÐ<ðáeË–=‚‰ŠHl^]bYµ,‹èº.hš&4 ±^¯KFCv™Dn6›²išêÆ— …0ÆÑ€Ò)¿Û:`‚AJ¥ŠÅb+ottÃÃÃ]¯³Ÿ=ê‚ ì(•J=ûì³eY–MF&“ÑÝ?>™LÆRUÕr?Íã¸}Qè8Š;wî<õÌ3ϼ¯ÑhT¯[ÕwÝáµi(Úýš$ dÏ8ãŒá_þò—W®X±â7˜¨œÄæÕ%œMLÓ¤ÍfSÔ4MÐ4­”z½.kš&7›M€púé§ŸP,/tg0ý½Ñh`ll étõzK–,™1¡. GŽylçÎG ÃTUÕS©”‘N§ ÷g6ügš}øðáç^yå]GQCUUÓ‡™N§ÍT*eªªj«ªj)ŠÂ{Äû%Ĺ-?xð ´råÊg›Í¦ß­òFœÖˆUMW?H˜ñ âCLü­€ û÷ïÇ9çœóï?üðUëׯÀá^NÊ{ÙÇ!n”ÅqûH˜,ËŽªªN*•²5M³Òé´Ùh4L]×Åf³)¿þú놮ë÷g2™GO;í´%étzƒã8+[èñæ·]|„ûv¼(=A^Ò4íÙ—_~ùp¥RdY6s¹œ©ªª©ªª¡ªª•N§t:m)Šb»ŒáíôcžÙzéßà¶z×®]µÕ«W¿à8N7pLKg`'›1Z,´‡9“H˜Ô#iéT*•}ðÁ¯8çœsÞ!„¼Õ2øÝ.Ó4©mÛD×uÁz‰® &6›MI×uQÓ4Ù0 Ñ0 É0 qÙ²eÊŠ+V ‚°‰1Ö ý`‘(S¨3Jé>ÆØÓ{öìysÏž=²,˦$I¶«3LEQ8SXžÉVÅv])&B?µ·3{ì±w6oÞ¼ ¨b2ŒÔ8í¢Üo3  +Høèß–p!ó«_ýê¢Í›7›²,ïèW9¼n—mÛÔ²,Âbš&u½èÎ%]×Ew’LÓ Ã-ËO8áaÁ‚'äóùeNaŒ½ç™©½^ÐPJØQ*•Þ}ë­·Þ’EQ´eY¶$I²E1ÝÉVÅJ¥R­´,Ë¢ã†;ïWƒ9ûG?úÑž}ìc¯cRkø;¿L2Sàf @W(hï'IHÝqÇnÙ²¥˜ËåžìW9¼lÂ#\ÈÛ¶MLÓ¤†a´XE×uƒÄ4MÁÕ(‚eY¢iš‚eY"¥Ô9ùä“…l6{R:^$IÒ|Çq1ƲAç ž!,%Jé!Û¶G*•Ê¡f³ùæîÝ»E˲DQmQ-I’,—1,Y–-EQ, Z.””RFaÓ Ñqœó¾ùÍo>óçþçoaML¸WAà˜‘ˆUÍ @€HLÂ…{Ëíú³?û³u_ýêW7 üÜ Šã8àî—a‚+ì×ã“hšfkE—‘Çqh*•Ò—.]ªË²<,IÒP*•P%KQc)Ƙ €§S˜xÉK Bš|ÎÓ†aŒ×jµqÓ4†1222"•Ëå¬û"’-‚íÑ$ÉrYÃvâ…#Š¢#˲íŽWcÓ ˜_«ÕÖ^{íµÿõË_þrî+Ù˜cÅ_›ågÀ, Ť&ñ»\©3Î8cè'?ùÉGN;í´Wèw™¼®cŒ3 µm»Å,–eQ/h8ÛX–%p Ø¶ÍçÔ¶mÁ=.åsÆá“{®Ö9 !­›â²Œ·á:<-‚C)uApDQ´ùÜeËeÞ™g{Âá p÷aüœÓ Xûì³Ïf.½ôÒûËå²wȺt®‰ÉW·§mIT›U€ ñ÷¸s´€¢(Jö¿øÅ…›7oÎ¥Óég¦£\œUc4Äq¸@¡^°ðб'-¸ÛPÀ¨ã8Ô¶mÊYÊ;ççâæy=˜£ $.8˜ Ž ¼Á;’$Ù¢(:|ò°ƒ#I߇y"RÌëêM0ÄF£qÞí·ßþêõ×_ÿ ¦ƒƒ#ôòÙ0t‰ßåâ@ÉHá _8õ«_ýêYóæÍë«Ëå5/Pø²Û¨ùë¿ÄžoYO“ÀïyBÎ ¼Ás@ðeI’—e¼,¾¯÷Ó nóÇÇÇW_}õÕ[ï¿ÿþChw¥¼\àù˜Sàæ@€Pð¡ò¼×Ýër¥¤N;í´Á;ï¼ówÖ¬Y³WÅDï•Dµn`aŒÁ²,Ê&ÞoçsÂÃkÍÝ©µŸ{ÜP¸ËÃ50ѹ>p—A˜Û¹Ø ß/ üxÓX]ë^~ùeû‚ .øïÃn^ÖðÿjN˜CAâï^—+…I ¨’$¥ÿñÿñý¿ÿû¿¿¼X,>ƒ‰pá´ZXøœ7|¾ÞãNyY£µ÷8^ó7fO£gî×&0ñ¾¾ì=Î4‚Û‚jµºò–[nyö¦›nÚ‹v!î†ÿ+$sÀ·€Ž^]"bÒÝâóuåÊ•Å;î¸ãÒuëÖ9Š¢<‡ìq kìa@ò§ýûùCÀÞÆÝ‰ f!ü&3ÆÎ|üñÇß¹òÊ+Ÿ/—Ëük# Þ¿>y?.=둪N6'tÕ%²gòö›¤¨7Üpê›nºé¼E‹í°¦ËLmü@´p¾_·ÆÔ‡2ÀðÚ)###é?øƒ?xôÁǤÅ;ýxø¶“K5çÀÌa€‘t‰WÀ{¢f2™ôwÜñ[]tÑI™Læiô82¸Ÿž¨6‹ ²yõz}í÷¿ÿýç>ó™Ïìf_:ôjŒ°_ÌI½ds @¨.á ñŽãò³‰ ½aÆy?úÑ.^µj•$Ëòó˜C@9†mclåÓO?=zå•W>yôèQîNyáÕÞwÇÛ\*`î‚8L 0É$~m‡ªx{âUÊ…^¸àÖ[o=wáÂ…ƒO#á—ßã¶°^¯¯Þµk×î|ä#/îÙ³§†p`x¢éâ­ß¡sÀ1nØ$ŒQ8“´¦³Ï>{þ·¾õ­‹O9å”B±X|@if¯â˜´%ÕjõägžyfßÇ>ö±ç8ÀÿèÙò‰÷ip`S¬áµc ܾ3cÖ£–UÊåríŽ;îØùÍo~sg©TÒÐÎ As í ðG¦Ú€ûàÞeÚ@„%(<ìe) OTE¾à‚ †¾ð…/¬X·nÝòb±(g³Ù&&ØåèL\_ #X¤ë:9tèùôÓO¿þ·û·‡·mÛVbŒñÆnzæ~X˜ Œ Wê]áNÙ» ܺè¿Nñ‚Å;I!s€˜Éd¤K/½tÁõ×_¿zݺuC²,+ÅbÑ–eÙÂÄðŠL'ö‚b˜`À0ɲ,2::*hšÖ|þùç÷|ãß8ðä“O–lÛö»FA Ú&ïz`p{ׄ[ tr¿8`üÀ‘|ËÞm)¡P(ȧžzjá’K.É^qÅó.\¸TQ”l6›2™ŒÉ?‚àC{¸”ûÿÞ>Õ]n™ã8¤ÙlÒññq§ÙlV8°ûg?ûYyëÖ­ÚŽ;ªš¦ùC­Þ?‡MvÀÜ †÷0¸½ëÂ-ÄõâiÎ*‚gÄ0Þ¹?퟼À£„²xñb5ŸÏKù|^Êf³âàà [¹r¥t '¤‡‡‡Sƒƒƒ©L&#ÕjµæèèhóðáÃÍ}ûö5÷ìÙc•J%¡V«™•JÅ3=j ý‰nÌýñÅ¿ÞçÞ{ ÜÞ3ñZVñ»aX†vIû÷÷›§½å2o£ô>Žs/ ‚Ó a,ñž…×Þ“áÀ*|èØ«ch@º8‚â- ˜û°·aé„NyA` ðÞ·÷4@¼Â*|Þ 0^àtJ$~óÄ;ùY¤SžXñžd‹ ;Ÿ…° OûuÐÔ Aûw3#î–n낎ç†Çޤ‹upÃüó0àøó‚ö÷Ÿ H‡5ò0FBÛ?Š`;æ ÜУäEq­üÔ°£4þÀôq@D³ãéÁ#l¹[>>þËŸßqù8 ’Ùq€ôÙB@Ã-cD±À›w ý³ã™aë Èv3cÿ??8H#oú$+IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/Clock.qml0000644000076500000240000001015012536324426025545 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Item { id: clock width: 200; height: 230 property alias city: cityLabel.text property int hours property int minutes property int seconds property real shift property bool night: false function timeChanged() { var date = new Date; hours = shift ? date.getUTCHours() + Math.floor(clock.shift) : date.getHours() night = ( hours < 7 || hours > 19 ) minutes = shift ? date.getUTCMinutes() + ((clock.shift % 1) * 60) : date.getMinutes() seconds = date.getUTCSeconds(); } Timer { interval: 100; running: true; repeat: true; onTriggered: clock.timeChanged() } Image { id: background; source: "clock.png"; visible: clock.night == false } Image { source: "clock-night.png"; visible: clock.night == true } Image { x: 92.5; y: 27 source: "hour.png" smooth: true transform: Rotation { id: hourRotation origin.x: 7.5; origin.y: 73; angle: (clock.hours * 30) + (clock.minutes * 0.5) Behavior on angle { SpringAnimation { spring: 2; damping: 0.2; modulus: 360 } } } } Image { x: 93.5; y: 17 source: "minute.png" smooth: true transform: Rotation { id: minuteRotation origin.x: 6.5; origin.y: 83; angle: clock.minutes * 6 Behavior on angle { SpringAnimation { spring: 2; damping: 0.2; modulus: 360 } } } } Image { x: 97.5; y: 20 source: "second.png" smooth: true transform: Rotation { id: secondRotation origin.x: 2.5; origin.y: 80; angle: clock.seconds * 6 Behavior on angle { SpringAnimation { spring: 2; damping: 0.2; modulus: 360 } } } } Image { anchors.centerIn: background; source: "center.png" } Text { id: cityLabel y: 200; anchors.horizontalCenter: parent.horizontalCenter color: "white" font.bold: true; font.pixelSize: 14 style: Text.Raised; styleColor: "black" } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/hour.png0000644000076500000240000000116112536324426025464 0ustar philstaff00000000000000‰PNG  IHDRNÿÒLƒsRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÙ 2 —?3ŸñIDATXÃ혻ŽÓ@†¿ãõ@.–›(¶Û!¥£ â%RDôTÛ!*:z$ŠT4ÐP­RòI(R ž€XZq± f²³ «´Ð¬|¤‘íÑüçÿÎŒlKGzÅÇþžˆ» ¯‡ @{]?GÇ„lh-7.1 Áoq Œè2p=ÛA’-Ÿ ðb  \r‹ÛnN%ðø,€åþžTÞ1rŽW+Àµn·{£ßïïcd8~šL&ŸoÀW—  ]·]àÞx<~UEžeY•eYU–¥Íf¯1]à6Ðô% pÁÕvg4½Èó\çó¹M’D“$Ñù|nó<×étúØq%EÛ¸MºµX,Þ¦izSU[Á!"i§Ó9hµZ€/@s4¤Ùlî¤i*rx">ÚFãHˆ?C89ä4ñÆÿ5½ÈFâ39ר5v}~°ÿmÍ"RU]cŸ“÷¹>ªûLØÇçëÝ®±õ×ócWhÔw0â`¢òâS°+/Žq ä8[`¹¦I@ºxéÝCìHUu)"Æ5[Â(UÕÓ­ÖØÎ},Uõà øVUß;í T×»íñ­µE$v ëÆw‰­µOÂþ„%ow1Ï€ûÿ]QO¾4Ãu¿ªºÁ ²ŒIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/minute.png0000644000076500000240000000116112536324426026010 0ustar philstaff00000000000000‰PNG  IHDR X.¨}8sRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÙ 2cë†ÎñIDATXÃ嘽ŽÓ@€¿Ù8 ?á¨PŠCQ^KÇc¤¥£;)ÅI¼CRå- ¤£á5"Ñ:èUø‰î|ìÐÌkqðÅádGŒ´ŠãÝoþv½Z™,” oNE±¿áW­1Y¨¸h€`ܶ6ú€˜) €cੵcà¸e:’”LI€¡)ŒìYõx wò÷ {I’ÜŸN§'ÃápdÜ1+’àk ÜžÌf³—«ÕêÓr¹üœeÙù|>?žLÇIiÐx˜eÙÛõz}4>ŽÇãÀ9ðøžI𦥰úýþ8Öqü)Bµ Mªzˤ’ø¿‘j%©¢l!±ioó¤*U¦ºk„ºÅ@Ô&7¢ú›#ÝœOqôêòÔˆÔk×§F¤hm’'ý_*BšÜ¿ôÉ7ñI÷žv(O­í{•¤^ëUþ³ý}¯Ã+Wv!u3¾ÉÒðí/Ž–‘þÒhT;‘´C±«O½¨ò:š®wtSÕCþHUEÔùäš|é–•¾áåÕ–ÉsûX{¢{†K`³e7úaýPg÷&¸¾ŠˆFáW`]TÔLð"â£<]߬_' UWº¥ >½7€ª¾3+|¸Í)¢g/4Ï/^¥iz)"ÏUõCžç¯!èþœß;è‰IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/quit.png0000644000076500000240000000110712536324426025471 0ustar philstaff00000000000000‰PNG  IHDR‰ sBIT|dˆ pHYsrçntEXtSoftwarewww.inkscape.org›î<ÄIDAT8•ÕËjAÆñÿT&*Â]‰¯ãBt'ê$‰q¡fvîô1qï%â5n%Y„ºñ]”ï¨1x)]=tfª;ãÞœªó«¢Š:MŒ‘#’‚¤û’zen¯OÒeIw«¹*öHR”ôGÒâج¤_©f©ÌwÀ Gxèî7¨ w¿¬픺íîK-I÷€[™º¿@ÏÌV°‹À3`¼ögŠw(.!‡>u÷ù]`ÂÖj°m  œÔ€ÎAñ–;À›ì¼™m¤…OïËÌý \ ÀÍì'p¡ÄÌìСx†ƒÑf°VÍaëƒUfö±} \+›åIïR³Ü–tv„{R’§š’ÚýŽ]A×$û_À)IË%cäðc…ÿ|gežIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/QuitButton.qml0000644000076500000240000000424712536324426026642 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Image { source: "quit.png" scale: quitMouse.pressed ? 0.8 : 1.0 smooth: quitMouse.pressed MouseArea { id: quitMouse anchors.fill: parent anchors.margins: -10 onClicked: Qt.quit() } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/clocks/content/second.png0000644000076500000240000000045712536324426025771 0ustar philstaff00000000000000‰PNG  IHDRUá.sRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÙ 2*5XBí¯IDAT8ËåÔAjÃ0„á/rä¶âuÖU½T—=Lβ!öË"òÊ¢¸œ† „ÄÿFĴª̾)à.©ÀüÍ'ÞJAÂvŸóïxIÊÈm;ný Ûœg*ë°v¼­ü…g ¦¦™Â!b £ïUÃ]ž,ÔçC³ÿÅæ»âgQÖbÎ÷\¬yùOÞæºò/õ]±FŒ0¶¥8*çî¶qI_è7ìpB\ïÞÓÙ;‡ë IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/corkboards/0000755000076500000240000000000012536324426023203 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/corkboards/cork.jpg0000644000076500000240000044353112536324426024655 0ustar philstaff00000000000000ÿØÿàJFIFHHÿáœExifMM* † Œ˜ (1 ¨2´‡iȈ%AppleiPhone 3GSHHGIMP 2.6.72010:04:08 14:47:03‚š¾‚ƈ"ˆ'S0221Îâ’ ö’þ’’  ’  0100    à¢¤¤¤ 2010:04:08 14:06:012010:04:08 14:06:01 Ûƒ¹¡MS\EtTŒ ‚d™Edz#—ÿÛC     ÿÛC  ÿÀà "ÿÄÿÄD !1AQ"aq#2‘BR¡±$3ÁÑðbáCñr%4‚²&SÂÒÿÄÿÄ/!1"A2Qaq#B‘¡R±ÁÑáÿÚ ?Ùà±2iê[ËwNå·ˆ#nÄ[S§G}èpióâA«SÜ Ê)»©c±6؃Øý¹Á<àW'â Zå?ñU&" \A&×+Pä<㽋 65*¥PÔ•¨¤! ’“a¸%B×ÿ¿\|+ñ±Õäû9¯$’j;?F Ãa)ùå¨ÔÊAU¶Õb-{lFÛaØE‹±ÊØ[m„¡ A%A#pÆ7W FËUÈn2ûQVù(l›ªÊ¿“À=ñ£0‰Hn‰¢;o¶BHÜ[¸ÚøÓ‘ú*]Ea¹ -¬°’,BÔ6#Æë4<„¼”u©€ ïìp×F•ÊB]I JÒ¥‚<;á;2TX‚Ÿzl6¦_ü³o.ÅÅvw8 †ø!h z¡( -öì–´êK‰äƒ}¸ã ”x5Š6{ªS¥UgÌÉËB›‰ ¥§¾• v÷Ç¥f'§f beD¨3QJ”B„b¦W½¶)½¾üaòƒ6­FÌJjrTb;ùìÉJ4¤\Ø£÷ýñuI&’%I¸%L@œLgµ2Rµ7b®6¿8ãJËt6)1T ‡¯Ô§ßP¾öú`×ÄŒ»_¨Aj¿‘LHS› T”i IÁWbU@µOŒm2Бø”†›J‡6Þþx×ÀÆçõÞÑö‘Â¨Š´Ú$v„Å¿L.(:‡ ûÝBÇlov4Wòüh”¶#ÓK%=U$òSÜÛ 5Øù¦©ä:}Ô„¡O[Q*¹üŽ˜ôв²ì§dÓ©²ÚK´þ¡êW§óMÍÆÛ€=ñD±Ø¬€4Ñ*…­.C2å!Æb\·d Ï›ùÇ FŸÿí<زj/H®MÛjºJtùµþØ&ëíÃ…¦ÛuÒ§) õ({`ý:|Êoĕ͖ì1¾0‰\©Gb†§Ñ¿@8P½€ßnÿlDóDµª¨5yl&Ý5!(O¤“au¹ðq® -(ÍÅ2]Mû쎪›&ç<~/€¨«]Š ôÌÍhU—KìKvPØZv]ÆÄÇÐà«‘jO8—ªŸJ(j>£ßnÔ6hU'ÐË/*;èÒA>”ùÛÇßkSPþ{U¹,8¹Q¨zŽ#e,Ü÷ÞØR»±©¡U“íA³Å©‘¡ÕâÃJã¡Ð°µ2²,½)¶ö;o‚tJB Ò_UPEÞE”¤V‘kÚ÷ÛÞØÃ”„æjò¤M§-þ¥ã«PCº-¸¶Ãýðf­-¦b¡Â—RÒØ} ¹k}Ô|~ØÓ¶  ªXÙ1®ÈÏü>!\¨¬µf\I%Úü‹mû`$z´°²c“Õ…‹h<ï«‹m†w5CÉKZ’”¨:•¥7mÁoH#¾û ~ÄËõÉyf2™§¶PãFå¢.9ïÛcű…Á6fìLUÄ ÅUf"Ÿuׄö‰SjdÚÇœ0e:Ì©Ñ4É¡Íiä!Æ×-m$#¬•Z×›ý?ß IVn$¹°U0#Zb¥wqV¶öäóͰÛPz¡&ŧ&2švêJÒ”Ý;z¬8;߃ýðýÒªdËüÁAUr§M®µ­D[S}XjÖ‡RJ”,,p=F¯Y®Ñ*lÒU —ñ×/FoXIVÜxß“ÕÊã“ã<ÑžÑK,¡{¡ÁµÂ‡=ö;b‘FV¦[Šå=¸S˜H.¶”Ü}ù·õÆ…u ±’`L^ŸO‚Ì„¨º‡ÕX§ó4‘ã¼Ã™”ˆ(¤Ê„¸T„”9©N€7HOa±ß,ýTaqŠbÃk•(”)#PE·Žý±ó“9.žÔä¦:§AS·u¸à¡m÷äp7ß0Jv3`ü|™‘Â×OªËE>£(˜( Jp„¬rþ`=°ßB®Sœ­&DÅ-·_HWMäý{Xá&©@€Št—)ñš¿.jýw"×¹Þäwılg(¢ ¬9•s\”È$©²nú¶mxÕ2’A¯÷!› c–Ý}psDˆÔ‘PBËŽAMÉÜã¿öÂÄšòÑT%˜SËMm¡*xžt›Û÷ËœÔ +Ikq-ÌçVÛyLJ¾iLÇi´©²‹+Ók ÅB»k¦j³ìü¥G«¦:O@\±¿lU…9ÊL¥¶ë:½N¶­VI<?¶(Ó HÏí%ü¢n¥›kX’>ÀöÃDñ0ç4G¥M,Gh]Ö“¥HìAçrîjpQV#—ânO§ÃhR‹Ô²®£]KtŸÕ¥]ß?ˆO‡%©¹N± ŠÐ:Ó£ó#ƒ¦ÿ¦øg™š”–њ˲>UZ¤¡A*¸$ ™Œ×&$ê¬(*.´A%qÂux¾öó‰© lÊ~¢|žò¤†Ú¤t+æb8ÊW]R­BÜaõ¶3ÔhüÕ8Ó¦ º]J½@ƒ°Ž<4Ò¢¼´¡mÆé’’›l¤íaõ±Çw~ ?ñx:œt ¬4…n/a¿sl6,„µ¯%_ ÙE¡Ò¢A£F§RITD/óV€ ; Ôvñ‡gTÓqÅÀ)”¤Q÷ãºĪ Öiñ*(~]y9Æn´Æ¤7ûàôºä†*b[‹¨BIZßQH@öóõ¶#—`ß/¹™hù„eJPS…/ ÉÚÈÛ€NøJ̵xp2ºâFbLšƒ«,ô›±Bw>µ{oÛ 9ƒ5æÅBqúk‘àÂ}*ie„©×ˆý@ß 1¨õª§Á—åFyµUc;Ô«èqÝ;“«¹·cЧã’nÄ“QÔ©R[¦»­2âÔ]z>êBm¹ ïôÇJ5 T ;T‹X}„|ÂÂ’w'í¶øjÊõ0C/-bC¿¡Æ¯Y6ñÿ¼«–_Ì,'ó ¦R)X+Þû}ûcS¿ÄÎÀ¶AœŸmöÞ—JgÏUÝRYy´Ý¤ ŸHR'Øo킌·ÿîÆé²£µ%´zÚZãMù"ãíŠU=4¸Œ1#´ÌvÉGE $$[þñ„i•çáµ_£°„Ôå6²m³e¦ãÓe-ýñ5ɳ3‹µÒ¦¨±¢ÅfªÓ P]éçKžÖ* pZ+òCŽSŠ&½QBBR•¨¤¸þ§¨ŒU 5ø™Yu¤´¡p8âÛqÞ£.< Ô¤6f0êDE’Aî,~1Ï—D—Òœ%/±5—ÎÅq6 ¸¸Ý^ü`ÝN³5*;Ô¶¤Êx%¶ÝIB­qscÇ8H¬æ¨Õšó ëeb+¥+u¤+Sj&÷¿¶7¦Cók´Øòæ!HmÀqiýj$îMís|s­{802­š²ãž˜Ûk’ªl„­6àlÜ‘úÀUù=¶ÄÒ}:CS¤ªCÓHQ É-éJ[¶û\ÜlUaDL”ì‰FDž”—@HwXáZ n<|á"ŸUŒ¨KO˾Óx‘ú/í‰._¨®„IÌxíE› T©Êjëü×¾»yppÀíbTúÜ•X.¹=ÿñëN … mÆ3fœ½ZqÉ+¥˜"—²BJW¥FÇ|Ëw2Srã«H€æ´4…  ØßqˆAPÄÌ燑½Ô‰Ãôê¤Ùìôßbdø[ ’iPéÿ567Ê·ÓÔ}”­GÖ{ßr±Ç¹U…D¨;@¦„ùo ¸Á)m'õ_ÆØ+QÈ‚Kp‘R«¸[J®Ð(ö'{ã++z*\DÀÎ\~­ S‘9Èì•´”žê¾Ý­uæ&Pæ®J e3.?ùYÍ2ŠŽÚˆ8s©¢v[˲ž¦ÌmØn[®Ò”5õ ÛÆ›—X©Òê,U>P¶¤•Ô•ͽÿ¦-õö!KnOì¾§æÅ*SOIm)Ò¶Úh¨«É¶æØßIƒ%?2å)¨Ôøî8°°[)uÏq¶øß—3cT´òUü눒„‚«X ÷1 ÇæÏiRTä) õºu“ß~w·‘ÞÈ©"€üÖóEI‡CXP›8¥rNö·k Œò˜®<—y(jmn¢Í‘õãýðÛXÉ^¨b)jvB‹’5:­"Æ÷·ŸŒ)ç*0’Ôx2¤ 1¥ÆÐ”¤•8$ÿ÷‹2V&"UaØTÄ7Gy†ãi\—.ëª6*¿6ö\ªD5(ŠŒùë|‹šZпX sþؤe #1äßÄmÈ-¸Ò…ˆ ï{퉬™|¿Y©²Ì¹Û¥N¤¶®tÞ÷›â+²Øº÷i‚òt?˜K‘´´,Û€š»Ü ï|Nk‘vrŠíÒjA§ÍŽ T+ ½ ?žo¦¦Æ¨Éý~5 w8R—T„í5¹E¹ ƒd%bê¿Û|÷;+(– DØ5œ­O‘’µ˜½7Óµÿ|hªÕhô–š9+bj’TÚZOQJ#À›Â«Lb -* Û“%í-–™½‰íÛnøhËôЦ“T§¾jHuIù‡Åܰ6 qo¥°¹1Ñ;FGR°lüÉ5º[n¦›9¸Ž¾”¼â“¥HJŠÏŽNÔQ–§G¬3%uˆN¶¦Ãn¨)i6ÛAÿc|Ì«j6[“ ’Ûo †H°R­¶ã¿¶"ó'ÊFPDS3\†“¡ OðŸ"ßÅ…Y. „ß#Ý:¬íS9C©NKLR%)C Ȱ'Á¿o郲%Ç£æ¿òÔüÆJG¤[›öÛ¶LP~ÅŽ¢Ùe³u·-”µwXî|¦¼ÜçbôäÒPµ)D´}Áß(Jy–¬Laºk ÈŽóòå=r–î ­È>œœähÇqMÊ”° ňómöÁ¢Ü†3fµÈKÎl†zCô_›ƒßªô˜¯¼$õZÔÞéZ‡¥DZÿýß]XË¢±X“R•¨‡à¥.ãW ;oõ¶ õ*ƒ,¢2¥Æè)¶HZïßõ:dŠra”Çp…-IN—Éç¿6ĸPK2Ü–ÔÖ„–[±NÖº€çÜŒ\@¨*ý„šY¤Ò]u´5ÆPl¶Ý rS{‘ýqÒtº˜™ÕCK1uÙ Éó½°ÎífTÉPK2* ¥ ͈±ej$]iþd ï¾ ¥ ʧRP¶®öóŒí’‘)U„VqÍ56W©³°7ýxüy—鯳Qb+‹@#ª´]øQÜmoÛ Ušy b¤õ Èη"(IY(>£kú|rZµE›¨‡- *RìV I·õ½ðÅ (ØÉm±&u†¨p²ÄYÃ1zž¾«dö#~öí”J¬$­ÂYYù•G &çr}ÍðRŸ‘êuŠhR›¦GM”ävÜ%Ä( ú{cÕFŸ'-P Ê¬»ªÊÓ¤€‡…öI°;óˆ•.c#€'ÌHi‘®t%›¼­z”Ñ6¾Ã‘¿°F:HDöJ_iÒ{”mÏÃTÊ—[Ž R™— õPAÚö8 CôÒ®¢ŠYímÇ<àÄʤڃi[“Ü{HôØ„Àm‚46)‰Œã3[vK©OP‘ù~v¸±÷ÀIì'‹–%Ë’˜+ÿ6ÒR’”¯©eÚ‰’@ìpQTÚ•–UH\0¢¾ŠÇê¬~›Û Y¢!›C4é ¤JžŽ5jÛÔ®=ícb'Ã4@©Ô›œ‚âZiæ˜ÔúAµÜÛƒý°Š/"`;]‘?j•C™Ýqø”9³] •¶Á!nN¡°¿œ ¦ëŸJ'Çy·ÚxGÒ|‘{îpÕâX§ü,nLjK1ã²RõЮ¢É;¬©]Ï‹á•1ª*òHbMÑÒmK%(E¬O¿ôó‹’““viªUbU7☔„S¥¥H%)J{l=ù66Ç:µ ÍóÒŒy’èvÇRGÞvƺý5ÁP§TØRiµV[º›W‚»mã2¬¹ÈUµTâÁ•ð•E}jRœiV± ;ÜkamBØ>KÂè\ º#”êcfº¦„…èeõ«kßnÿ·Àú½]ºfSbk²™–Â](t8«)76 oŸÁ¨ ÕªMIåM}µY²¥4¾” ‘÷;àfk‡CEMVšt>[£’¥_±7ØŒ67Ø‹ìW'_;!¿.L¥O1BT¤:W¤¡$÷ö¶"m×øzŸ`Èy“u%Ǥ(vP$pqô…«nRˆÌ–Úza.z¶$‹^ý¾$ù’‹RŒòâÓŸaúc†Í·­Ô¬ªàÅ€ÀÀŠÙ?Ün­DjƒX®Îj\bóéh*-Ðn…ï¨r;vÃÍQ”£,F—SLŠŒæSŸ[Œ¨lx;Ÿ®ûã¨MÀD7—)Pë+IV¦ø_m&À_~þ„³„¼ÏKó\fŒ„hzÌ 2¹°¹ ·¸>øÞ£Õu3»7°îQ©ûDÌcÓ ÊM†àD‰,~®á:OnçljÍù=‰MKnuFcÏÏ@ehP%’õ&Ö#µï~1¢‰J›HÌ,ͧ1O‰MSa¢¥Å ·¤r’µû÷Æúd‰õšÃí8R’… ByýÎ&ÙBÞ£"±nÊ¥$üÞXn;«Rç%°RWUû‘~0¡ZERéñùÙ1œ+i HÚÜ Üwä[¾Èn[u$°ÎfvÖ40¤´’ ®nAçþ°F±™êåÆ)Ê`T*¥! ÚRG’ýDwó㩯k)‘Á&¹1·œ«­»:„a»ð§‚¿„Þûínpn´ùFo(@B¡­;(Œc*f†rÔÕĨ·¬‚¾‹m¥CWbT@¾!3ÞªÕ2Õeõ.ª‰.—ƒ6Gé6^•nomí߯1‘ìH®UN}ËŽ^®FFžÃqÙS¡Ñ¥~¡·?l..[ |B¨ÔBÛ’üt²ÚA+loªÊææûŒɲ쩺©5"= m.»u„‘²ˆ<$ /Ϊɕñ)ôgLd;ÔÝfÑýö!@ÜŸ¦¬D£uc-5ˆNSÜe±¡ ¨¸Ê@ZÖ®/܃…ŠÄ:ŒŠraÀ\:dG)CAnº›ð ¿Oì1Ò¢ü׳š•.Z¨µHÒÑÓÑÙW6@·?lùºtÌÃOê¶6Z€ÐjãuM€úý±ß°Ø T¢ÁFCd6(éi×U`º•n7Å>k‘7$Š,;N©´Ð¼Ý!E)#„ŽêäÆ7òm ŸCÿ$·¤Õ_7½V¹ÜF8Ð)B‰]y¹Nõ¾dÉZt¥&Û _Þçï€\(©Ì»EÙT•ÑŸblÔ7%÷¤¼Ê†×*¹'·rpùøÔJ½BÒP?5jW¡@>÷·ŒiÍh´ žíR¨®²“·MZnI$býv=r–—é2ýrÒ@þSªÖ|I~‰"{ê5¸;›tøŠŽðÙ:½)^¡bx7ÛŒ~ª¹š$g!˜c¹KƒOüöÔêµ¹Ò”‹Xýo|.TM‘NhU¾°ZZˆÙ&äÜv¾7Éz*Y.‡T"²5jý±u¥öq;N¢ªþ`™&S’œ¶ÖAR›6M¶Þ1úáhBÒÚV•XlõÃ:sh´U0Å:èSaZ‘¥wßÕkXß¾%ÔŠÝ^±&S³(íÆn3«L(%¯Õt£`M¹7ÄñÉúžž?ËÑ@1Ì4§GM×Z”?3Yíãœt}‚ª‘bGJãèÐVÁVç"S©µ  ¹ðØDw’í¤´ã¦ÊñcrFjYº:+âºòWM]ÞÊUÁß`vO'äþQb\‰ Ël6¶\mæ[Ðà[f™M[u…2ôÕ!ðæ ãŠ?¬¨÷Ok ½°ÇQªQhªT€5Æéê!*¾£m»Üý°Žý>¹]­Sd´¦i´S³}n¼á$­ú ¬npÅV£Ç™—‘-·Mª6u·°7Üïýð®À“Ä­F³ y]æ¨Du-¢§›Òþ"«ðG|o¤ôäe¶a(uQÀB®ìß 4–òÍ ±J›TŒ'MŒV†–þ§¾ÊH¹6Üm‡:<úC¹eˆl‰ Ìpl\*ã`7}ñ<¸Âðe%ÎŽ¹™ê )Ä«UʆÊU¶Ûž6žfiŸÃ˜\¥#¢HJÖR”“Á#€.m~Ø; š^uÏ(.1),ÇŽ„>Rõ€QQ±ejû`.i¤H“ê1"Ì27JK„)WBÅöñ‚V)ûC) ¦VáÍnŒ&*.¤„‹G>ø(Þk«»Vmkƒ.T­;"å £m¹þ˜_£fWi} (}7âmup¡†JxdÊÿ1)ÇP…]@ƒí‡Ì¢ú.Gìxf¸²ë±¾tº†Ýyâ—ÒBR<Ø[œ4»]bÃç"1‹€6ûªM”·/c`9É8Ë®#Ñ–ó%€W¨Ü“ã •ºD™oг Kù5Gq*ª3@@ãc±ßsÎ"'~F+©ÒMüsÎʈì%(].„êƒsµübL¦Òªô±4>™Íbâ( í÷ã ÊjDöW¨„0³r•[ïø­Q›WF¦¸˜´£ò»ôν ‚MÁ¿kávf¸ËŒcÝ9QOÅùTúT¨IÔØXõXóÏ8k©TDZ[’ õ뎅tÐ’§4ŽJFÿµ°V\a&•¥éKíz”}®7Kà>56=TM&\u M¾¥âøÌ:Â;=ˆªÖtb·[!æÞé²€R€Ê‚›H„.Ç·l.ext†ãW³|ª’Ý—6Ì0Ôƒu¶/{ÿÆ(.å }O7ª@‰óHS'J$*ÅIßÔ@úâU BUÓ©Õ8T§ÔRc¸:«QBI^àíköƼa,ë3»\kSa¶l<”B›qµØ?Óã©Ù“Äù.µ-Θ@S(-¦ÄÜ’?šÝÿ¦& ViŸàÖØYJh—B À<ßo8ÈÆy­ÓÊ(2žd%In[ ÀI< *ã'‚Y MD¹¨ù¦––’ƒ"ÉRÖ ’’pol`Ì4Z+TF¤ÖªKJ:Áþ]ñ³+åzµJâu§‚`8¾£a¥ÛX?QÀí† ÇC£Sa¨)´:—qÔsZÎÜ{éŒÿÅö?ú‰û,TOø“àT¨s+u$¶ó5K°q ºO~÷öÇ9´èÔŠŒèSC ÕÀE¹B0>,¹lÑ¥µ¥¤Æ²þY@…Žàÿ[c­S•Zð)qNɱK…Fö¸ÛïŽÊÌI&SC|Êàj}÷qhßVÇë·ž=cuh­>f–[QRTêº1~Ê;[êÌV)y=£.TvsòúKp]Dño?la‚¨°èÍ"¨Û.7ù`¨­¸¿Ÿ¾(GÊnNÍUJsBe¸‚´•EÆײ‰6>qTFu…™( ¦S_ MLkYMÂ|óÆ"¹Ù·Ý§&,¸’ë›-Ä],$n>÷ߟdEc/|ÃIm×Ud©(±&×ãî1£.£ÕÙÛ$á)9ƒ-×^®üÛ5:’âvßm­ôÀîƒÆ®ºU@4ܘO­¤’oçmÿ{ûb`…ðD·°_Í2©QÖ†e¹s®~êÉê”÷=¬qÖ&W̹ƒ0ÊYSÎD}Ò §¤¥'{ãëŠ(¤ÑæÐPÜ´ÇÔ§R muÚõŠ 5è”Øí¥ÂT„[Çßùûu*˜ÏÜ@ ü'•r]­¸†Úo ®ÅÃâm…TÓMj©LG.DCÖ( (Ô/Ç<âû*¶—¨òzÚô’ŸmñóýW4T©UIrCn>ë„¡KÕe$ÿ0ç23O”ÕГHŒÄÆP”͆æ»é [ŸÓnÖ¾ ?šåæÜ·KM6,˜H’u©ô7vÂ-e…àáUÚãnº'NP1´£æ¢ j‰Or>¿¾-¹YÚT« ØÐšS%N­bÇOm»áØêqÆÜ‘lâ÷ÎP‘Ò©)÷#¯v%ñ«Û 4ì·0)™‘d‰-!Ä©lÊl$jïb9źk9^]Qq —R·Ê‹ˆZn…ƒØ~Ç ÑŠ)’l hÂe¤®1<é'qîƒb0Øó8%À¹åÍ&œúª¬F2ÝU›R'Okx8ËE¢M›–jR 6§[„$©7"ÃUŽØÅN‘?0×å@Š˜‚Þ ¿Q Eö¹ðÖÝ\e,¾`Ë‚µ8êˆC…J(Q=…‡'ßÎ@¡~F.ŧL¡Åmµ6ôé"æÄ“£~B¼® R É5*óä…Ò—t$àdZ¤ºÅZBŸˆü(%-ÙwI±ßoa¬È6€Í=C¥-LÜqÑqž؋—R@‚kYAꔕŠk½VúeiN°RåÇéHì}Æ'5 s•(Òå´c¥’’ ¥ ïïÈç{bA@dªêŠE> 7iZÑNÛZÖúpp¡™r¬ÌûY\Š3N;2)u­)%ÊŽÝübêÀš<ÿrnô.*‘"d(ì‡øä"Ú’ ÞÜñŠM,Lb›,ÕÇnzQfÖ…_ªÅÇb;ñÒ–+ò»rœ†Ûkm—äŽxÇìü„ÝaˆUùõY1å¡?”˜dþMÇ¿>çׯ2êåEÔ^®Ô‹RaÒ¥©M8“À þ,bjˆÔhîInk.¤•²X%@q¾f¨â`Så¼ûÊҒçe”ñÉç è£ÓYø}„~Y5-k~ÇÕua ×u×EfséœÜŶñ}ZŠGö8kËÔÉ’]nl¢Ö†,ÊC€†…¿•;‘õ¾7¡¶üg%JmÄÓ[¶'u(÷¿Œf%R5YµÓeô)®(%M8Ö¤)#›w ÷× ­jü‡RÖ›"ÙR›ŠêUV)0Ð%lUÇ?¾CË”I•Ÿ7!NÔØm+u¶RiJm½îÕN•£2²ñ”ˆø5)cSk¶ã¶ÇÎU)®´ÝJ‘­™,2z@+ªúØ@8̹—40X'8¥ŠZ ¦“fe9¨(¥Ÿ$®9³W¬73*\‰:ÚÕf›µŸ?×u:J¥PqJ“,.9àòM»‹^ÿ_rʳâµYr Ér,×»OuƒØãn‡K^Ìûv …ÂzS†c®9¢]Ö¾¢@R½ˆñŠvZš[ËqÆËåyn¸/«¹ÂeÝb’¥…€ 㟮:MšÕ;,HyÔ-ÏɸÐA$[°8“nÄ NT¤§6?8¢?É™Mº'ôµüas<&[8Ä”ËÉe,ª;n€®üñˆÜ_ñ"2—×"`@:KD÷ð>øt¤Ó…•¥<2å-J[ª$©°{’{}ñq‰îd]Éòi«Ñ§×¢Ô©ïCa]!ó D‘©!=¬ þøãY~<Œ¶¥2ÊšŒ mÔ¥ƒ¹8ĸµ¦²õJ4%Åi™­„>ú.°Σ}'ÉÛb79ÈR)…&S‰m(/)ý@ŽøVþïÈøÚˆ„iÍ;"¢˜±X}èm´Tô›¦oÀ$oƒÄ6cȈ̴4ãÚë66în;œlb|¿L’§%!öÜ` ¶’=û‘ï€ðU󱦼ÂT²Â®TSú€íÞØfÀCpKÂ33-!柊ңÙ¶ÂÓÇ'Ï× ôŸÌÏóRÍ9Ç †’ägJ’<)ZÛ?ß®™°fSè´FŸœ ’·Ð•$ü«z¿Qƒoëâø ´ãÔô<Ý9Å5Ç‹º Óq¸÷ÆM ÿ¹»È2·–k±KÏÒÛB”e¢É]ø Á·b¡y}Å©¸î2†öq ô€;‚Oûa^u:îKuöœyN‹¼%AGèp5˜”ee‘L 7:X:ß qJУÉIUísØa×aìàä#17j)Õ7c­ õkŸk°V³.‹J­2ëb´Ô¦I u.¹þþ0¹ lS›Ua”I’”X8‘ºˆï·|©Q訴úi–)Ó&Ýqë!æ·ôɶØvüufÏý¡?Wê>OªˆyÙÑZfd¥°TÃi]ПüŽ&ÑúÂ$:Œ¹6ü‚ ‹ô«Q oÂwµ‡Ó2æ^©A‘\¤̹qÛ`„Jp%j ±çoë¾3¿—¡Å„!úз%%VJlEÔÂxàmí‚5ÆÚ©¹¼ƒh©sng‰›hùyŒ°¨ñe¸‚ªx-+@W¨a÷7þ˜»ÅKoÒ¢LŠÛK–„èB’?Q"×ïõã*ôJl̈ÜUEBâ/Õ¨KA#ujìq'rNbÊM·-ÖÖM’óW°ÒO÷úcBþ@u ‡ê ìL#W\xÓÒc¼êÖî•¶N…ØÿLv©UL ÍmØéX)l²«­D‡¦û“çj¶W§)¸ÏË%3òÝC„XìSÁâS ˆ´üßTz¹sªhi1ÚZF¦ÐÑ7:AÜyØìí¾}C5Ë šù+ÕóèÓ^}$«¢éo¦oëû ŽýñK¡Çl–ܹã¥*B® ÿ“øo~6ÄétçÎôé1a=QmN¯PIJcž¡½®yÞøu©ÔªÓFe.c­ $zŠR ‡{ ílTÐZ¹È~]Ÿµ¸´©UIœÓ3[.[U¿ROŸ¾3åÊ ªxõ¥b4÷e¸e€A,§µ®I ÷Æ Ô—Ó *œKðú éÒÑÑkw6ç²"Y«¡™=U•)ÇÜצâÁ)ìlp-¥BQI»ŸQ¹S§È¤Gq•²­CÒ­«¿µ±®åÉ|]xR`4ô‘”ì´•€zœjvóŽjKƒ[ü6=EùÉike/RÊEî7)µø!›^“_SôH’×)M˜R” Fú}g}¼`¡t{3; ‰ÉË £Äv ôsL¨­¸èt ö;ÿLT²Vq¤Wþšå! 4’žŒ†EîR@R¯8Wš ŠlèÒµ¥.¨¥!Ä¥.Þ¡¶¾Ñ… ,·ˆÏFSr\ÔÄ¥­I]ÖH]·ls¸ýdŸc¨³þ&üç•[v³[r—J…"Bêu6”Ü])%ÆãÇkcNƒH¡Õ$B˜ŠŒÈ«Å.'ZžÀ[ßúbôˆŒÛiÖž,2zÇN”î)íÛ|H3rT Û4xÔÕÊTrê\õtÚ#tÞ×*ñÍý± üvÛ¼ Vâ”° FÆäß~÷ÆÔÏIaNIš·Ý[¨ß’;Ÿ¦!åªjÚU§©×K$¾’“m” {ýpŸ™2Ôz¦n¤¢¶†$¡çe +Eý@ž-mûaN…½%,þ¨Òëœb¯¦âÃQqVÞ•,¤þ»Þ㩊ٖ¤Å, <û÷þ¸%*KÌ<˜”Ù¦DDX€ðÔ–÷ÛO®8')ÌžûÓcfÐ[Í»"J’Ѱ¶”ØÞÇ»ãrU2„ìc¤¹ %É.3tßeXä|©Âb¡›Ü޳U…ÇÔ§Í8î/¹öÆlÏ5* &Jd¾T‹­nÛH$Û@î¢Ooë€U ­X«Ì`Á¯Í Ö®âV³¥ )ݵ¯·~}ñˉGXÎÉù¼”QJJâ"BkQMKw¥a:Ò9>®?® e‘,WÜŒÓ/Ån—P›•÷&Üx8“e߆e1§×aª©ÿÈ žâÄb‘–j´Ì·Vn€©m†ˆ!–¤+ó‘Ù¾Ø`O ™6l„tGj”žgçØ–`©´)­%ht)ì~˜S¯×ées'žƒ¡ ëI!JQìSÈ8Ù˜óZ#Q”¨m-ÃÕIô›yÿñÄÞ»*uj¨‡\f *bЇKŠ p¨o°ß5ôGQÉ‹,|H¢ã+L»)¾”VÊÊ–¢9ÜðÅ@¤É7JJδ ìI¿6ßýñvª ä‰3¯3±Ó& XòÂÔÓЊ…öþ$¬«oÇÛkjŽûZ)ë‰"s‰ i…P$À\_ª_ iɈ‰éªHUJB“ JyØÅ‡kc½,WágÖêZt)PƒJS) 7ä ½í‰6…­ º³¢'å=yÒ6@D†¦¶À@TE#¦â/½õA8üQª"²·ŸB °÷HEu†Ð{XpîóÑ%Gv Št÷ed„(¡J7°Ø·ï€Ó!Ug0†äÄ!-õêYR¯Ø‚>øLŒO‚ŒUP z—é¹!*«Ç‹"@Ùæ“e8‹^Ê­ä`¡åٴǦ²óÄ¡«Ñ]ô+±ñ¢žL—Q|¹= €ë—AÓôì<ïƒõ5ô²:\TÕ”¯P$$ÍùV8’iXÃÀy1Ôƒ˜Tc× µ52êJcØ¥hø’.;wêÕ¥¶¦Ë±â+Ti Wå0;mÍðZªÈT¨SdÈ’ÐlMIÿQ$ ®ÜÛldŸ 2P…E0jðÅ5 ’ÓRØRÒ§IXUÇ<ï€_²LÿÜŸÖ"Ö­éˆòd!¥H¸¸qÿ³1«jFÒ€)²5­*ô•sûî{a¦$ت‹¨ÛÂJ&Úä jiêO±[ U”¹'2",h‘”Ów[…ä›ü¶® !SfR2Õ±U¢8ôyEí.JywJÅö²¿Û —ñúcDº³-O¢²°QòÎêJ.lu Ø›,=ÇΓrÓÑ™[+ƒA ‹i ±ÿäH<8Õ˜^fÌ ÄŠä¦#‡Ê^¹’«~ö¾&+YŸo"j*ÔJćª Èè%n„†ŠCDóé¶Øhq¸ß2–ß+SjM‚лý0°#F‰\“èÌ1)ÊJÒ6ÙI<+Eò†Ý1µ$5ß¹>?¶+w’˜š‡c¥>3R©ï3$„¼Ýí¤ ô`äVØ4Ûiråñ¨8›lll¬&+±Êí¶°ý·8ÎÝFuS5·O‚¶"¶Tzä¥$Úö·cŒäpܾÂT¾Ò)¬Óë T’úÒÛªiì Gø\ÎyJUU‡êt÷‡Èº^`„­³ôþ!ßÛÎ ÑÖõlh’œièò›Ò_A±Õ{‚F+0*C&Èrš¦Ü|'XPÁÇ™UsæÊ¶ãÌzQš*Â3)üäz^K„od¸÷Á„Uf8Â[k¬¥Rz¢Å?þXÅ)1jUƒŽ4Óixºƒ¥I$ …s¶ü[$˜“'¶êš[ ésS/Ô <(mõÁΤїÆÖ³T)jƒYqu‚Ô]€4éEÇ÷=ÇõÀ*ó*œ—*› ½m^‹ ~¯ßƒ|f*Ýtù7Çl”%nëwrHú_œ•PU>m=Úd™,¡°¡!´…%[‹Üv;añ§ù¹³2T$ªJ¢0iývd¡äÆ!D~€ííö¾*1úê§53¶ZE›pœN‘SmL;9ªst÷ C!ÖÛ IbwÜ_Û:õ |¦¦&S±œ*+.lóä}p™š˜PfmvTª'ÄÖ Û%kQiâ„”…“ú{óûáò=-´Uß—8G–\F ‚Ú}Çýð¿›M¨%5©AµI-;a«Í¶ß2æE~‘Ö–²* P*Û¶Ø–_ȺEÒ¹;eh”¶WRŽÁ…b_Rþ]´„”§“ïkav¿=V¦ÓÒV‘;·KiHóÍ÷¹ñk`Dè8è 5Ý פ¬So§lh~ øôd;.LGrE–«¬.u†|e†ÀÁû 3Jqˆ3PìvB£ŸK;lv'ýðR\w–æJŽ­hBR¦€l•€ •ý0)ÿ•œ€Ë=&Ò¶ÊRìeúU¶Ç ±]Ì9{ᓱcÉmõ—Ö\6õ¤Â/ŽE$‹1ݹÈITÖݤ8ã.Oar¥×¢iR”/¶Ê½Û¨Ê•'+Ô¦T§+ª›«æØJñͰ;/¾¤È‹Q’‘©¨Úž!@)i¾þŸæ× •¬ÆÞªtJs­½¦^ÉA'Û“ãìEö¡¬»šü²¶j®(?k-¶‚‰lG~p6wjžÓô¸™’ÊÔžœ„ ^üøÀÉï´ÔŠDL½¥©HZOæ+V°©[îFjPeÒj¦kjuD>׎R®ß¶&¡ ¦–Ñ«nc ¬Õœ©MˆS,&èu =4ïÀ[¥ÔŸ©T!Ф·¯+ýYQ‹¥oI;oôï‚ïË£¹L\re6-¨FþüœxÊ”èñ\šôC®…„º,·6ØØ}qe:¯‘ÏÔuZ˜½,ôÛn•é’ØGm7çøƒ–‚šk‘$ËsPBSn€‹ë€’Ÿ…PÊÐä=5}GSq¶º–èØþØL¤Æ~]N¯T¦&'I‹ÖUœA”€mý0‡ÿÈTDÈTÂÓGÌæ6Ù\‡b5²› ±Z¬vöÜV¿9+t'ôíº¼œM—óÒ€q©ä«Ò¦Å¾á]þÇrôÇjh¨Òên¾Ã¨G¡JIB–ƒµÏ›oÇ©³öP*\“êÒ—Ô)õ<«(¥@ùïO *™˜F4C”“Ðp¶°°-öèš5B‹™šJŒüFŠënzT´¨*NÞýí‡î‘¨e ¥&CN0 *q©ÖlS#”)»’PXÙÊfDT&Éë0„tI±¿s¾2·•j2”Ì e‰0QaR’FÀŽ0×G”â2“l!æe$¡.¶“e[‹ócެËM>C*¨:˜÷E®TÜýq?ØãâL±PDDÌ9±&Bn‹ØL%‚‚ßL©)Üi8äÌÊ«(Øv4GIAeô…)ÒãMìF³~C6Üx®¸¦Ü'AÛP#ߘ§Ðåç59u&‹›u¸`‘ü½ö¾4#~\™ÈÕ¹O:DsJj Nµ§E›;ößlw„ËmÑ Ébc+¬0ñCv¸A;}ñAÌP©1a ˆ„Ó‘Ò* €m·8‘³žÝ9b NBBœRžm#‚{Û¾%½¨À;]F£Jaú˜†º˜,Ë_¤¨ Õk€¢ŸøÆ‰°ÎXqp\r$¸ŸÎ náÆÔ8W¸ó޹/(-œ¶îjq÷]ŠÓªéu Nþ£ÛÛ õÜɹñK®§H0Ò„¥ãë~/Š¢»µ/Ô“å>T¶Òi±¿\š{1‘)n$Ë-ÔX”@ÜÃŽ³bºÓ賊Rùôð}¶ï„ªlú‹:؈Ó0ú€ Q³zG&ß¶Ó%T&0ê§ÆÖuud¨²¡~nFÇLdØ=ŒEv~E—Ô¦Þ "áÄ®Äay¨’[bGË4d®@RB‚´ØÛcïŽÃ5Âw4½Bm/¹%”»a~/¾ø$ºÔiÛ£5-†ÝÕ} ’=ü~ø¡V_õ$YOÜUÊÕº±¨Fšü$¿Nr—:Z‰RMŠr,v8°Q¤Q3…\Kw¦ƒe±!¤éÕÅÞý¯qï…™b*ã®E,u•ÙW$€ ¹èqšƒ_bNvˆŽE’§Ü²Ò´€±«Ò¡¹¾ÞmõÃm²yZˆ¹‰Éù~µ2›#ò)Ú ‚ÅÏHžÄßjyº»Ši馡ÇÊR¤É’éCm WÜa±÷“/:Ôf·!rÐâRÙJ’mp9±¾?YCS)2¨6ÁŠÚµ(ÎÚ}ïŽ@ábléNÎ4È9 ™rßmÖÂ:Ôn8½Ç¸Û+59 ͪÓb7:t ¡¤öE¿Vÿªþ6ÄW3Å›H¤NÌYq¤Îq)CMÓ’”© î?|ƒœæT2$T¿Ö*Ážœ­méKtê7ÔE·¶Ø©ÁðÙÜS“^4ú]¼É—óE²&8øX´2 à¶ß¦Þõ|L3¬G"Ö[˜äý00“ÖxÁØ››Ü`ÇÂ:¼Wb•r$ù.¢ì¼  º÷?sßìÃ’þ]’ýU–zm¥En…n Þæ×ÆF%2Q*‚,OŸ²³±Z¨»V‡NB“%Þ[¡}D(ïtmÓ‹b£&¢Û ém:º©²‰.1òÒ§®“žê4úpàµ.½)ŭ¢® Oðã¶>‰ÊufQÙR^üâÝÖ–Ô¶×ãë‡ü¼% Ãøùß!ººg#Ô!ªšjÑÞŽ ¶B\wn¼ûãæô–Ù–éÄAå¥.ç›}ìqöd6c©½d­ÁoÓcØwÄB¥–cµÿêMú»º™£7á‚M”æÚ¶Ÿ¾ñ²U«C±VòFØT nfMZ Љ ih+!c`R{KŒ4Ò³Ìøö”ÔùÛmAIPî-ÀÆÏ •Y­NU&2éщëtJl\¾ê]®,N Ñ#7.–ÂbS"°ë:\ 8Ö‡Zñcs¶= ¿ægk,c]O'½œ³œ\Ñ\‚ƒ.,„)â›”¯nø1V,Òhqc>Ë(’¥× ô‘¿¨ï{c|*¤ÈTy¾ÒÂ% u>­¹‰Âˆíô`ë²HYý ví¾2±ØèÅD@Í”iïÈŒš‚Œ6-ïÕôy7ØóŒî=¡›’[Jß\pBÖ›¾ã~»C™”e²¥ÓX˜êõ4Ëm8Bܹ¹7Ó¹>ø ©M1™™[Ñd0²Áê&ÁV<Øïoë€Bú cg³Žcm¤ÓyæÈF‘© é¹úßÙ—òth­Q#=ÇN‚·J®Ñ#•_·Óœo˜!É̱„d&LwTÈ:/±#Å·Ûg¿ÇäÃQsælÒU‚Gkl62TQŒ1l9uc«8ËŒå]–ÖÀ)“#¦K¼\%6½÷ãô\×2QNRÓ!’Rž\Pá@Œ)À€!eæ#@€ßç¼RüØÖ¥Zú•äö¾:ÒQ™¢¤FHT•ôž‘¾¶;…Çž~øc‘[ãS´Õg*ÎT«Qò¥b¹$M++w䣯ImÂ9ß2=G3Õj‘fͧ¹8Ú™e—Z²O)UùÕç ¹Ã0×¢g˜ ËŒºdÂ"ôK r×$«‚=¶Ãµ“*?NzzMB AEWç~qRÚ%ð“3"1ñ2•ÁSÓ(³Ðt-±e%ÒFÄq失HuÚÓr£JKNÙ-Ÿâ¸ÜyûvĺL “êÑSDY}n¹}7.<ØY[=­ƒyŽlº5-ĸû[eï˜q>¦Ö­¯`-n|‹Â Ù|¨çPuÚŒ)Õ'PiäÙ»] µ€#ëß ¹N 6™T+lÆäb[Ž–ÀÄ_õQÇXÆtìŽÜ7ã<ŸHßJT}Í»wÆ|¶ãÔü•u5LªÍQkOVä›ó…[¢#dF9̉–kqåT¡T„WÛh(¢#Á =Ô?¯|LòÄŠä(¨˜ÅreD á*jõl~ãM¹Á›Õ§´ã qAµ8Øô¤›ÚýÇß ð`8ᨭˆŒ[ŽÌFÀJ‚‰8|%PÙ’È ô´i‘ÞŽÌ…ÈC¸Ž¥ÇªÆÛïí‰7Äz­V6]eÊ $¡ýn©õ„ƒaÛ{oõªÔ¨´úVJ¢1péŠÊYäEbÀ›}ñ,ÎnDC‡¹0–ß+yÃÿÊ>›Þ؉`ÏqP&\©«“˜zÌßCà[Å·¸î1BC4ê„ĺ•’u¥…p-íoï‰fE…I×Úº[©j)vÍ´âTI°†Ó™qÆŒ–ã¨(/Ôw[~ööÀ V]R¥3^~*Jì“¡ÅZÆË#‘·a¾Òݘâ:$)6q>9¶löErHª9i¬½˜ú‘å8ð}W)qeH@ÖMïo¾æÉ~.gb|o˜uHIGE²t<“Øö*ñƒµ&ê ¬8™JRÒ]WIegHíoÃRn\ZÒiÌ´e©·W§æ*±…xÅv³Ó8'Æ„7V£É¯d«ÔÞ ¾…˜ ôéÛQ7ã› °-Ò)høp®»dÔJT е$ãéÃo@o0SëyF4 K’Ó˜ælé_P0”ŸPUÍ´Û¾)´L».Dœìõ³&{¨ C;¥7 òM·ÂfŠ0 ¾Ds_r›šcF©ÀZ PÒãþbûG ©²ê_2ÅA§¾V˜Ó+*Mì¢ ±#}¾.r鱩ðÿËAmÅÍY…‘}‡lMj ?œ™©Ï†¶C`$¾ѤvPúï¾)‡ SbˆXvx•¸ËÜ-!Ê+*?¹Üœ~ ŒX‘S®u5‚›°ÜÏ=øÁO“‹6´ÓN¶ÜÆJŠÔMÎŰ1µñ iÑê‹$‹¦~×·µ¼ùÇæv”í?'­ºZõHy®¡p"é*·ý¶8±‡dý”–¦7SÈTÉ(^ÊJRl-¥Và® TªðræLf³-m´†€ Q±+U¶HûEËóçÒ›PªH¥u¢´vQ±º•~ ÏoF®åŠÜפB‹™êÏ:Ô’ðCuЋ“ÊUÇ­‰Ç@s<•º.e„%¡÷£CÚœp$% u_k_ÆØ}—jáQVÊâºu!hUÒA÷¿|G2:·Y‚†”Ü8å…–ã^´(Žö&鿽ñVUB•N«Æ§Tn( !€ù Ûù çí¿¶!• šš†¢Îtºdïþaµj.ô—Ó¸Jö6 ÒlA·ppjZËQXêi,Fd•léJOØxÀš”ØóªoRS!•>€\aÀ«%+"ý»ùÇ ]qúd·[Z#8—’[q§–=@ŽÆØ†MÈìå£ Ê¿‘O‹L”µ¤1"25¦÷NÞ@çcå\ÕQ­T•%¨ôÙE+U1ä‡ð0µ“£7ÄJ¬ù/´Í1ä©1}Ïôx'I¿é$âѦ‡b:âK¯) $¤ß ‘ÛS>¡®š‡šˆí?£¨×õ¶’’Gûâ#7¢Îošb)·iË-»ŸBmôØ}qt²¦Íq=fƒún–‘k¨âFb%K=WV¢üU ê&BƲ@±€{ 9šÏ’à'H£V3¬>¸oÌi#¦ò Á#·×öÆ*#éË,6ëÎ|ÒVø»2ÔÕö Iß¶«y.$¼Ù¦ñ-ÕÙh¥§X·©Øyúà–"Çz‘%”ʨÊenÆKËP[€ln{,}±é|Z…ÉÛ¨åK¦Ñ«Bª…!ä“e mm·çaÐâQi’"S]üRé Nw¨R¯eM½ð•É t˜ÔÛhm!'RŒ5CxºÙùrâRb6>ÿLG20wÝ?×:.s¢É£“ø’(ÙI$\,G×ÓëYo5´âòÜö—Ym °Ãd)f÷Ô’ ¾Ä}±2§ü¼,Ï0ÎëF©ôºÃ„€~úøÄÀ±b:êÄwÁtB¥¥ïŸ”´¡×\±+Rk_aõÇh Æ•›*-Kl|³õ¡ößþaúOká÷%@3Jj¹žfE£Õéì|ÓìË’Êõ¶ó‰Ò¤¨Û‚>ñ¶ž¹,9"šñ=2àAY±*ç 4©ñ¿Åâ.K«°#ªâ4#¹íûÛªÇäí=r´Çä(~ÖØâmªå”)òfœ…ÓèïÖZ=–:Å÷Ÿ¶2³ Y]Ú¤ø±£I(õÆSÛöÿÛ 4i,ÕèÍ:¤ j$#~¸[ÎF˜éjK:Zªéôy8dmÚ¢=¯np“R¦Íɱ›p¹ç•büT ã~äÊscCÌb™*kî:”êaO#HUûýpÃLrŽ>Å~A0’׫©b°Içëß m.ÜÈ˺‚œl’Á)Ù@x8° Z·ò¹BÿBŽúCao2Ó·QIR¼ïÎ<Ã¥5ªMMMEH§¢A Pv?Ì Ž²ØLòàh›«RJ…ÖO¶)q¸Ó¤„¾Ú€êkÜþ؃6¢M¢Ô¬‡”Ú§R×%%’†à -pöÀñ¦ÆË‘Й,­É”%!mÍû`Ž|¯f62䇨qYrB ˆK¤%Ä…n-·÷Àº\J>eÊq³1(Sï ‡£/ÎeÕelÎÜÆyÚZ‘}IBMµ“ìokl~„¡!EE~­…ˆÿóãdF̨uY˜‡Ðz;þ°´’.6þ+{à¸×ÈX'é“M…š*.¸–ÓNéÏG(Þâûw0Ú“[­0ê‰ù6›ô„nýWý¯ŒZRi²’ävâ± hZT=J7¶ÿoÛè5 vS‹„Sf¶êRPû‹jÍHße$ÞÜm½±$eþâËõ1ÚõÙ0ú4ÇUÒØA 0à ›332Š‚g.ìÛ%° MŽ×ö'ÈÂcD‘˜ê-DPó:‹I7ôžlAÜb™’YŸIȰ›¨2˜òT’¡ìñ‡Ïðî&›ö(Uh9±Ç’c½M¤Ù.—‚“aq¾ßNØ%X”¹9qöQ¦5G¦**²\üŽy¤I¬Ó£Ê“%`tÛ%Z ÉÿœDfLƒ#4Lž,H}„†ÛVí¥ ½²®|áqÓÏ%¨1y5,õ—èÑY‰D…YeKìÆö<¸ß¶:ÁÍ• É9&å¹4‰í¨!¸«¸¤VIäb©A™Nj¯¶êqJTá;í…Ç&DªçõVáKAz2KQT„ )'s«½Ž,s+)]É…e íÈ2«² ×iÒ‰pÞ·àáJ”X s¬ò#°õ§7½ïç¿ñ\öb>ÍJ8êA KGBÒ¯?o¶Í¥QdÑSþYÉ )*adô®9'þ/‰¦JO©cŒ°‹²¯U£·§RäÔ5¾µY6Ûb.~·Àz‰iÈ®²Ü„ÄËÈJÑ}-¬}÷µðzŸD¨Ò²ƒ‹›-+¬Ó{§Oc~Mñæ%5ªŒw%¶­ˆX {}p…‡£±ñcøöx£U*Q²ÜøN¾¥²ê‹iDwn‡¶ mo®5S¢GHuJa·æ;éCN#R­}¯qq‚”¦¢F¦|ÛŠh4ËšuÜZØv‹Q£Nˆ oÓœX±Xàw#ëŽv* ØøÑ/Ø8Gˆ¤™‘Ø ©¶Ý8ÒÆÅ*ç{ýñ‚§šùHôæ–ìÊ—‘«UÔ7¹Û¿×µW&¤¸4š„—aõØ›Gq{qÛ ä*%w(×#„ÊZJ’R‹-•[H î9ÆOÇ˩ٸ$s?„ùz,J䯊í×ä|¤§)EÁÖ‘r:v5F–srØDVê/¸„% OM­]®{v;œPbü<˜™©‡P”×˰ 9ájI½ØùǺŒV2•RYB›Rm†œ}ZV¢HÕÏqkãÐoÊG:ƒþ&@ÏÔd<èjÊ1LDD/>Z”l-Ô ía°¶ã&ŇM•Bp:£¥'N±Ç¶)5LÌÕ’d: ÑJש!)yÅÆ/«•.öbÌ’'Ñè‰1 kð…[ŠWØ¥eL¢XÉ1¤¼ØŸ×I]’°«^ä¦Çë±ç 3¡9OøŠš]m´Ê†ò•¸¦ÏMeIÔ’6*Ã4¬ÍNÊq"D!éRd--Fau*ÛÿøØnqPHM³8PÍ´Uø!ðâ…þ2Ï™¹…Uiï.¬ü8m0àJl¨Û…nx; mŠsLº m7:ŠÔ9Ž¢+R#$¹ÐRµº Úßôá×ál„¿•%G[1"ÉL·y„€ŠÖMþ¦ûœ5fiò2´øÒYKæËJEØyŽl×é“EÓ‚G²¥P+P§· ˆŽÅ,ªyµô¥V»ƒ}¬|x¤Ì‡EøÐõÓpÙ~#ª]‹©$’”ß’/l6Á¦"…—bÓƒf<Д4³s§kX“Øù8Z¯Ó!£â$ ’ ³:¢†#, @(«°=íß&UnTC|”º]j#²ÜE>Sn/k¶«êöÄg7Õ'JøÏWa”Ii˜ñ%Jq(EÉ7H¶äïy†TÊfxDTÕNnë—eÒmkXo}üamܸÃUéõvU*krÓÔûÅJZ‡ÿ"·Ûm†;1öac~M1¥8ìµÇpKl¥7Ó}Bû{ÛÌ6E œ¦UfÒwp'r>ÞI¦ÓŒ·‚Ðú55B»‹ãSÙz ­Ûl·(Y=GVw¾ûG×û³B‰Ì2s –¡ÇÓ}Îà}¼c 5ŠÖQ1¨É5+BXz®GqôßÛ RË”ÌÅL|Ô>Uô½Ó )´©u\ZäoÎêO™Bv j[t(%Š=`{ÛpwâD†²j9 üÕ¤V"¥˜î„–,.åWã넚 Eo2?&VKÑÔÑ+a.Q'±Ø/茆ËèT>MŠvlÛtÛŒc(R!MyØòŽûê¹é©HHÞûØñö¡ԓD Q Ü·6Y¦É²âÁu—n½®n·¶ø+–ª5)5ÉpªmÃŽ’×ä8è)H#Ï{Ÿrª¾˜“™Œò¬µ"Ép«WRÇ›ÿï 2Ò‡";ó ièÄ\¼}ïÛúaÙ¿dä´‡e;R„„Ë2ØZì´!%CØóëŒOL£Ë¬ÆÔ~ÐÙql¼•^Ü’˜«EÖ“kÙ]…{Ûôª=Ú§ãÚIm‡uhyµ5nI±8P¨µ ™3Zô©k mw#QPõqþöÇ!Ôd陜šÉî0Úî©¢ÍIãQß§WàeÈ•š ôÄ~-žëIAÒꀺ€I§·l Ä(ÑÓL¶ã— Zÿl4¿Êühô¸õ’£2ä‡=Mîó}&EôKd@¢e›ñ’¥2„çãtø±—a2Ö¥‚Eî;q°ÝjBç©Öd6Sd% ¶ö¢·sÆ9Yn˜ÓÑâ¾–$Êq²Bñ\ úGl5L¥¹A¬É‡Mlª+ ×þ¡6M¸’®ãU‘|‡ŸËÔ™ÓÙ–§¥FwN…-•é I¿¤íѩОn—s‘[ JßB” ®.|ŸhõáT¨7K¦¥×âOT(”ôÓü_Ux§V hÉŒJ§ÃpÄŠÊz¶Aê.ýîn;_r|1WâlFÔ(™nŒÜ½ >†lUéKÛprGˆÐ+P&»¢ÂPá@iÔéq[{÷Â$Ê22ôqª`U"¸§YKN)I)^ÃPà;cÕF+áTxíCžˆÀôÜ¶â€ªÖæÜà”Pµ}„>æRž—ZÒ•¤RJw1‰úKODqM•ú6*ço¦?¨•)Ó²³^‚ìG”tºÒít);(_¸¿'L¶Ü`8¦‘½Î­' ¢¦¡ |6Ê1%VëîºÚm*v(IuA'RYN  æÇ|3­YzFsªS$¹V[­! ’âúqÐM½ ?|És$šì–™¨Í(CatÒûÜ“þØÝ[¥5þ›P ’‰j=7ô(Ý#øö¿<á‹)ôÌ­ˆ¯¬¬ÅE™v¥Å¡D†¿Óknm{󾿧švœÒc¼…—éJŽÊ÷ãþ15€å=Šùv¢‡ªU ’‚zd¶‚lR¥[Ź=°ÁIš•@”åK×,9e8¯â@þ_¥Päd&ûäý]º"€ÒëÌ(@ôA‡Ü½þÌÙGæÓÓœ*B›uz\Iµ·J¸úŒ'ÔäÀ[Å’:ÒjéB«#2 R.X§È¤ÊË­:ëÒÞ|IqZÝUǤw·¶95*Xû)<‰´Š²âÁ_Bª„˜úèZ‚®HæÀp{`£íM¥Ì”ÍE_0ò ”½:vöYz ¿"¢•FD‰w²ÈÿM›¦ç~GõÂ=V­"»˜&*yÂm)Bd8ÙB\ nF«=À#òÛEĦ§|½Ugüü6Üg:µ%¥µúB>ƒa€TÈu<±V/¦™3J˜é!Ù(Æ—¹M¶¶œDç×6,§a""ÃZJv*>MÆÜ™$h\+²Tש[Ž;ÿkáNJìcseQŠ'ŠÄx0Ýt‡P†,܃nT1Û5"%R çDu¼ãº’§v Ø_]û| æ)²ô¹Í®—¤ (Z¬£¿${ãƒfLø~‰‘ÍJ(Z¢TÙµ†üóÎÙäb  ,8Ÿ 2•Ë|¸ljD‘þ¢•Àß±ýðù™ÓLiPh±©±fLŒu6õ·#m6;®èô¸Ë¦† É—ÆJÕÊ·“ÚÛ`-%Órm)qðæï+ŸOð“ÿæJ7 ŒÐr™›P¹”ø‰en¥·]¡Ä¨-é;¶6I¬¾3½Nr ¿¢îÄCAMpE‹ÞÛ[ªuWàÂê*;Ó]ô¶Û—Ô-Ȱí…J?â’³+µTš›-Ýž¨$›Yc{^ÖÀÅyo eT&Ji4¥Ë•#¤ðN¤ÜÚÞÞAÂÓN»¸`K…,§r#­»tHÚä…ÕÞÇ„P)9¯.Gœ™Ë@A miоün öÀÞ^nSÔvÖÚ:±Ü!€íÈÔ”›Fã‹s‰AäâçØNŸR…Pƒռª1OCI]ȶãaÆÛa;ÓPåZŸP‡IjUe·IÒ„«¤›óªÄÛÏÁúLDER}øŠD€“°Î×rF ÑìrìªÌ“d>£ „þ~7ÞþØe} ˆÛèl%oë©2•CeeWµüÛ›aˆW©4vÂViNåsà zEGæÓ$¶ã­ –§4¬’H¸÷ c1ÓYr@j3†&ÂTÜkà›÷ßÎ(ˆÏØ®áy?`Ò)5)õ\Ç)¶ã‘&Í>[ •~¥xÿl7 r*®Š’jÎ=¨ë|0hÛ‚-µ±,£¹]¨ÊfKM.™Kq=7\nÄpT/r~Ûc謴벲º#8TÒØ»jê/Rˆ¿¾ö>øÉb\ž»ŠPåå ¸ô‰E ÖÜ=M¬ûöÜàLºôZÛïþuI$:¡e¨¿>ؤ3N¦Óª.KS[R•êXÊûœcË´ºZóuJªÜãHé¼ô¿„cfP(Ë…¦¹3–êÓ\§N„ïÏ6—Ï_óR“Óî;‚GÛ9vu+5tt\C…+iöέC±\}H¶çÀ¢Ó]/Ci¨®;ÏKÓ¬÷:FÇ 9¢Äg[¥NjeæÃn4¤kLÙJHþoßajy vj9…Š¥U-#/6ÒBúgål…(÷ÙIj”ÝytJ9ñ@ZñÔžÀ¦ !ÊZ\xIuú‰ºÖâÔ}*<ï†Æúr)lÕ ˆLä£Y-¨[orM·L;Ðà®Qž¥ÑmÆàIbŽÒ™7yK APfe3S£ÁD'U)A𠂦Ô-Æ®Øä¼ÈWó‘›e×X•ü/zKW¥sêú ½±Ó+T¢uL n¤ùI)q„’‘ÁÒxWÛÅŒãRÄë|I©áTÊL,°óèa,º”ž£ QÒkwãúáDµTÐÓ±a1Þ˜RR\>´ÛbGaƒõù•šémM¡TÕN—-!‰š€…Xwµ°Û˜©”øÒ T¢%érZjÈ ô'‘c±¶,.®*•ð©ú\VªrZ.-"éfÄ6kœE·úñrý©3£9o»¡-£õ«~EöÇš[oU©¢”ëÑ#ÉŒè RAÖR7½È·7ÁƲ ÎzLùŠ”…ªá=04Øm¹' Fš;tp@4ú¦S‡N”š¬˜Mºë¦ÂJmÏWkßÛ~f’¶&-Èmd„¬*I¾ÄÛkÙV;éU>#+¨DiÍo›úo} ë€Õ:+§0°šSfŸLq+Jx+Ø 8Ø?Yfæff ä1•έ>÷Yä1ÒÐAtŸQæÞ>Øç]Cçß ¸L–c„­J ý#°öÁZ|¦Nf4@ËHmžàl©¶Ç¹ß÷ÃRitÆkŸˆC“yšÐJÔ… @ØÚü~Ø‚’ äÖ2.‚«J}Ib*Ž›*ÚÂpÌH9qé PtÞÃ{o„©ÒeƬ¹ö–H$%M vvão6ÇySØ‘”]ŽÉ}×F‚ ¢Cc‚}°2ãàQ {Z™2ÓP3$Ú¢ƒåèO.ÎÅ'Ò“sÀƒ¶*™.Ôä*;B’R‡W¸bü‚y;ù¾2ËìR&ÈD4Ïæ5§QX±Ü÷à꥿PyEd¸¥”Ž×ûã©®¯’˜PŸNBU-…5R‰ó+lT§Æ«ù·Œ5F†‡u‚-ép“·#Ûe }Zem·ªõ¤¾Û±JÒËP´Þ˹ØmÛ¾>‡\I9gáTZƒÌ6ìxè/¸„%R%Χej#Ǩ!ê—Qù.-(1‚A³£P ¨°l£üWøPË‘%Ò+1d¡ô€†ì¦Õ¨íeb×+3œ«@i™Nƒªen÷¿oÛp¶< ÙņAÉ¥] }ÎzgËŸBæ=Õ*#ø€"×ûmÚØS‡”c¦]b[ bBŸ”§RîŸJM€ÓÀî8Áìǘ²Ý3 y©ò%+ÕÒŒI±·ãh™¦ž¨³é7òžYyˆ¯<5,å¨ß›_; ’R Íê¬v!<‡’¤)^àr1)¨Î¨×>0Óå@Óé°£•¸‡3•éJ@ƒíŠœ*=FtYˆKKÖ˜î%…zT¯Ó· {Ûú.R®eÉ•6ó ­ ¨9(–ÝIqè±ï’‰1]¬.²¥Ô2üyîDZ‚Ò•5%*NÂ×½¬6Ä÷4eê[ÕÈõ惿8ÃE, ¨èA?¨Û¾Û}1Š.rŸHȦkƒ<´£ºB†››÷Øÿ¿lb—>¯Y/Än¤—刺‹E[%\X…ýñÔêÀÜÒ¹­Aã2M¤ÓT£J1ª+J‘©¤‹$üWýï¾<|>øœåV‘W›š¦I¨<§Ë“6†‘mFÀjÕc|J'AÌ4\î-ÙJ£†‹Ž†É![Ù:»'}ˆ|Ui4øSäGl¦2Dp”7°:Æ÷þn8ÚÈ¡{ÙšËÃ'3J«åšKÒ'©1– ¶’ÑÖຽ ¤ïû°I¹k§×Uš1¤ ¤®Êe?Ì/±Ç8J$§jtçg8ÃE-´èm*-_’/{€µ,­2 ,M”%Ól‰»ÛºAÜãÎuZè–Ä{?“Y¡Vsdæ+S]Šód|‰K%EißôžE·óÎ;u%¹–Ú,’m¥`é‰×øqÚœ¨ïÓÜe C‰KQÖIê‹ÚåC€1C‡”'¶ëM_¯WMI'÷;bà…Qk-M®TQ ŒxÊHU‹wuÓ}Í‚P?›¿Œ;!ªT8³l¡:uéÞãÛ‹}0!¶cÇøQv«.,‰ªp&3Œ‚`4[íýp~tói[LÈéÝ.¸²P<_ÉÇ7äׄ¦Ý¸’#;/8Š‚Ð‡ÝŒ†Tï¨$_„Ûÿ¿|1Å—4½)÷Z†õ0ÄfÿUïɽð=è™q?/ Je#Jour4Q%¿O­7"l—]iÐu¹¯ôžA>Øu@ôGÔ›šYS¦Ì¤¹“¦®e),>ál”6}EÀ-±;ìyÄÉɲáVŒgÛ€©Jœ:›ÛWkcú]yK—1´ÌJ’S½IOumÎ÷ßáÓæ(*mIƇ!*@) JS¾ÄsqÿÖ*¨ÜÆ¥‹pBu&Z–Ɖ‹êDQ Ò…n²{8Lg‹D¥–݆ˆÏå;%ÇTA¿µÍÀƳ)‘K C±j,ìZ޵éB†Ýì7Æ9uJm6¨ÇÌKi×ÔÚ–ˆ,KQ6)€AäÙñ#°5?áÎV¤æÊuYšjãÎCË ÇxúÔAç~ÀÜ`¥2ŸV›Z’ЬÅÎj3Ê,¸ê¬·…®8ÚýŽ|ÖhÍùÊEANåjsÍđۼì¢=#ÜoõÆ©´ÄÓ3…2çIh-ÆÈHÖ¢’u¨’nHÛ C‘Ö3TØýö‘ÆUB8j7t¸âRåÇ)a¿¿íÉÔhlü>rºÛJK¨^¤ÇJ‡­»[~ÊóŽ4XŒ:ɘôü¡HKL«× '½ø?ÓjSif#,ª0¾´8 ŠF aÛŸéˆÙK¡êHª®ŠÍF,R†V½)P \_°Æš<ʋ՚u=ªcÕÇçˆòžRRÛVõºy¿½°J§;çóÌL¢ê˜m}imE!)eWÒ,xçÛq“[]QÁ¨‰$)‡@º·½­ß|QÛõ€DfÚr‰M/Ö‹5Y0Ö]ˆ¤©–PKdóê;*ÆÜ‹ïÆEe¹U§£­£Ñ¨w í{󌕘+§f¦mNuJZ}AMúB{”{í~ûc6P–§³\ô6ãÇZ‚š l‚oq§a±Û¾$‹XØÀ°~mËÊ~Cs^\–cÄÔ²7Wé÷ÛlMiÖ³GyõÒe5"V’ƒE@›ùÚûãèÉŒ~#F”•jPé­*H7QÛûkãçåRMŠr‹l¥‚Ó© êz‰¹°Ôï‡Á” ÙlŠYz"h´µ|¼Ó«©F”•%k7*ãb~øbxÈ\²ûHp°·ÜXõÛmÿúÀó ç[–••<}NXúˆàc”:Ù¨©è–àCnX+A»— ·ß ù v¢ªkÈt*…"»-ˆ²P‡‹ô•žÃÏÛ UJ¼æ»JCÊS¶PãM ;žAúa^‰‘!*MNªfNQ¥X%%*¹RO×ßó©ØÉ1`H}Ф-Í sa§~.oÉ# úµIo¡:Ov’2¤l¸ÒÌÇ=-¸…X¬Úû1ƒDƲ{¯¢B[³8úÔ«ò ÷þøPg+I¦SUV®ÐçŦ>íãÈ*"êµ’±¸Û ݓؗðšS-Oüøå·•ÕV²P, ¬4ðoÅöÅ?Pçb&JôD„U$¤D×MNzƧPØß›•¸ÿ¶ Èjh[+è ÐKm6°u›l7ÛŒ"  óT#É©<«8âÜH!; q™Y¥«8B‰O¨Æ[ᵇ’V V¢6 =Í®l8Ÿ©_Úo;UÈ´:” 5,‰*?—¯¡dóÏê¾ÖÄìËt²×E×”ÉYx¤$/Náû…À8SL`œÁ!¶6(¡@ùßq¶ø)KÑå²úÞJ¬•ôŠÐ»vFÄmï„È兑ȶê¥BË­U¤”@zRÀ!µÜ¥l;ŸöÂûR©Ó¿È²¹O)= “lZ%[¥`Ž[¥¥Ú´š|ç¤>ØP}€µ-¶v7ì ûoŽi¤Ç‹Fšç^ì­²ÚR¶îê;¤… Á۶ظ!EÉ•'î7Ó¨©¢BR§JùÉKÒý2-~ÀÿÞØ9oÓj2¥6¦CIܺžA±Ž±2][/RÑI¨:&²níÒ¤%vä(ólB3$ÜíL*Dd¨©*EpÛH;… Lwägú“ó5IeúD—å6§V@ m¥6k ‹î ®ejO’ô¤¼VÃZÔ¶u&Û` ãhTtS)òˆ–C =E!Z¿˜ÛŸ¾fWêÔ÷*pàRY—\”«8¥‚=@möçk#Jt áªœŠªDÇ[eN3©¾ƒ$-d§…ÛöÅ+á¶\f™”[ŽóˆzBT –²£ªÝÓ~>Ø›QãS'ω\B: %»u%âoÁ±ßöÅV™-Å©©,:¥%µhõÝ)H&Öïã÷IJ½šjH›>$eh3²3‹‹OnL—–”>uhZEïpn?¾9™©Fü1Ã¥ij&Ú ‹ðFßLuΕʓ-»ç£ÒY,­Ñ«¬»ínv¶çÎ=ehôúæH‰Yª<€ˆŠPét‡MËÛ¾=“¦‹bŠÒÙuö¤)‚ú@)J¹ã ©fÉ‘,©ØÚ”É;k÷¿|mœìG+óaÓ$Oa––ó ½¿ß€ŠÍâµt±-èî+¤ö€¥¦HQãOk öœ>0Iìw&¼•ÊTŠ, ¹M¨¢R“)J$©zÔËV)Oümƒª÷êðRòŠEÊ QA;›p¹6•åt×+ÈÒä‡*p‹êÿ›a~UcæªA™LàØºT›v'?¶'A‹O÷é™Î@r­–”ü—ž*è‹§Q#{lmróÕ&Vzräj©h²Ó2€J[*þ-[‹ï…=C.DÌáóŒºVÚTÝÒß*yr%KáÌÙÕ´õjN¶E‚Bà¤'î/|µÉ=ÕGXñée˜1‘%2&ÉJH¿«u'¸ãžÃ ¢†¨U „'&¶áoHTU”¨²¶{â^*Uè9Ê‘S‘ å&ÚT¶’t¬v$q°Å­˜\­|Gu¸îšav JÝq£¸µÁÛ~ûáÛ°.5fÚe&#ÐêO®3jKVx¡J..I}ñ(s(©+D‰ŽUÊ%8ºAJ¾âÖ"ÖÛ|}U•2Í Te¹Paù5V‡©TB/Ý$þpbµN\|­))ÒÉ‚†\"à}¼à¯åàœqþÃr `Šˆ©jM@KQÔÛÚQÒHÙ*;m}ðÛ&±ªj êŨ!±®Ëº­o<öÂÝ,éÒ¥5WuøÕeH!Z€±ô”mˆÞØ$3&«F›!÷]RR–T¶ìN“êUSXµ%Èqãó*hê %Áe¶á䂞ßlÈî5FiógLwØ*K¦÷çƒâÜãŒ×©Sj1ZZP¶ µŽµö;‹"TÔ’)-Å…#†×?¤o}J7çÜoƒªºQšÁ—ÜÅW’3rêk1ÑapIØ8‰®“Z¥f)ë­TŠáÈl;Ö+*[+¾è6Ø'ï±Ãž[¢—è)¨FžÊιDÑKCF*Ú(u·•ºM¶±çrsÍJøsNu2L·Ølº±c¨zT-Ø_ ß6àaHJ±$ñŒ™rêhDnL޶[i‰ 6\Šå‹+ÝH7ì|5Si´§$76+Ò)2•pµGUЉæãßyÆ.dg0;X…1·ŽœŒ”úœl ÅüýðýJz§A”ÂŒç$¶’ÒPlMÇılªúr":ÍŸ:r:ioÉn¡ ’ôúÓ¿EÏ¿lNZ…!ª”\˜´o¥Õê)ñcƒU‰µQS™ø9êp0@·§ÍÇs…ú%n-YrŠê––WÓ]¼ƒ‚»…qÚ๮´ÜtH| ¡$ ¿NƒÏÞØ=—s-.2W žÊ‹`ކŸHã|+fç"2˨u#¦ùÐ*õjí""L7^Éü¤ÙHZ}hæÊã¹ÅN48lʳ“+1gŸZƒÖŸ=†€W¢àå*Õ&,dAm Ž„zoâA#íû`U›—ŠcÇ™r^!n6•ê•î ßöÃbPbC±p>¦ÏL!ZHU¶çyRZ§Per·N£Ëóë°S­i¿ý”V+Žæ,Âô¶BÑJŒÀ ¥jЕÜú”0‹™¯®k1ª¥G”êì™Èô¨À`³Ée˜±êÍ6¸ŒÈ= oqm'ï©øÚÕ@¦æºdj›yÊÉçSÞ¢¶5”’m©'þqdŒ³ð¿0ª–"Ç-¤¡.§w\;ßß{ŸøÄæ’ì‡ØŒÝ>˜¶gAVžŒ„]³qp³nÞø?1º­F)j®ÔG™[‰Z[A²Zwƒ¸‹yï¾9ˆ fňú¤/„S67ue—]²T´(Ü<ßi­fZûù³jЋŠ¶ÐEÀлî÷ÃîaÑ%ª3íGù… %@*Öð-ΠÔg²–c´¶¤7ÃI_¦ÄóõßÅ~#±Æ ìhU:<\¤WDz®ÚVêÏm…þöÆ<¿!¦„Ó=È‚Z¤–ÐÛÄ^éÀ^×bmZENe)èóê°ûr:‘ÞiÞ˜d^ûXÿ¾ ÇC/Æmƒ*-Iå þs‡JšpŸÕ~~ß×?IdÎ×Uæµ6b[m6–Ñ% \ÙcÚä¶2ÑkœðšPdé>‡Q6UÅÒ»`Flˆ±„JÂT—ÐMËB¬…ôß|kʹ†<ºÒ¦¿Me$#§)öøRMô¨¶£mø¶'úi [(ØÃ.@¥üLù˜rä7"Dޤ€¤$¤ n~Á<áU«6Û PË üÏó.8.4ø·78öªø‚¥UªTi/).£•);‹þ²ûl~P*Tšök–óÊ +@[H"ÖWÛœ6vo¨Á€àòåvœÒjß+Zfõn¡Ä%gÇÔoÞœYU….ª¦’„¤+¦UMöýýÆæJ$vŠÃ[­ÿšC›¶áO›ƒm®›%™rX1CM¨­Hë\¨[”ž÷ìyö5,Œ´EFTȧŠô±Lë8¶JÚkt¬½…¹ñ·1S›¥ÊƒZ1Ün+¤ %’n›¯íöÁœ—rÓõ6[y*(õ) #ƒ¿1V~žæ]xHu”!mþVµnµßÛçÉT{'¦P\j®äJ5¤ÂÉ+zÛ?L%ÓþyuZv žRÌ7¤è¿7Ã*U6Ÿ-ª»°ØS &͵®äøóÉßQük5Fžérù iÇMïÞÖÛS`(‰<” %LTA&D.ƒßh›¥Ä j؃Ü~Ø#Tˆš&J\ÉüÓ·º[iµ\ð÷*â0ôš¼¦äKÕº”lØ s‚Rd1R¦4ÛÉMÖVÅ;yâø‘6ÞrTðÊ´ª•••ÌÚ\XÑJtôÅ’wÿoÛ³³êY2–ú꺦ujKz‡LÓ§ƒ÷óí„y9uu„hRf,Òˆ ÇsBI'}ù?¾(4 ³ÐäáâFA •§Qôìm¿Ž÷Ɔ5S·G×ÔBo‘K+ü#™R—?4fj»tÙO ) EoÒ¤ßÐ\I ²|FY¯e²è†ê*±Y´·} m7Ù$n-ô#Êi­!fkéÒÝ–Mµ€8·ñy·o|$OøBŠ%F‰Weú³èSŒ²‡T¯JFþã}±¤f|¦ª@bÒc…«,éñ¤Î—,)IúU~׿ÜX_LÁ,Çr‰_,´§)®”™ O© PµîlFþqˆüÄ}b°Ügª¬„¼Üt¶’ZW ý$ÿ\QÚ–ÕR³R•TuK„ú’‡I ¸äØì7Ät öç'Ì›õ9Å©™yÓNJ_Р´,¨ €¨Üó‰_ÄŒÓKÎSbÆ…Pjš{!u4¡À ¡é$‹Ž;ïôÃŽT‡õ 4…ÛZukO7FsA‹2—6¥IŽS¡6è¡¢n€,Çìo‡Äɵ“"µpIvYŽŠÃ³æ;*k‹ŽP¸%N~¦’«…(rn¦-W ì¤ôÒÈd:âÐ9o¿kâ}D C£Ö6*[L‰`5#¦»\¤maíÁÃÅ6Qf—"#Ñ̈î6YÝ…Û· Óo|7ä˜y ]B5ˆôêÎQ뇙h8M<°"ÿcÆãþÂmêÄ—*Q*1“­)jD´%¶ßؤr”ÜÚçœrË´–hTxt·f¿=aJÒûîkP*QQWáâ" 2lEþ"Õ1 ’Ê¡ÈR RV•XkÞÛöúâhFÕõ;(>ÇJ|ê[ù®M6 W~1Ó-ÖSt0|poìqƒ3?.½©:›Ó¶à÷ñ„ªk}—Ÿ¤"š¨…E.BJ¼ØÞÇëÓ&æ8LK–™)sJìâd'qqJ¸¶ ùTìuW1PÙ¤¹œc¦bP‡’çM‚R îy${a¶»“d͘õB$ˆ$é)FR/úõoêLJrü‰õ<ö*ÚØ¦*3½fÓÔM¤(¢âÄÜ‚qmg8Sêñj±×æ*1›$´±ºIŠ>2"gý–Æäýü2e©ÌÔ¦%²§ j…[¹œg¥Mš*P©SXMœAPy¤ªÄ”~-Û²VgÌP3²æ°ZmÅ­ZÐÒÓBý+òHæÇ UT0Þmüzj”™.¨­¦P-¤‘oJG“ÜáßN! k’ežó¼<·ñF<6aª[kŽ”-æ^ Ô}*NÖ㜘”Ô*ðœb$ˆéACŵØõ ›‘¶æŠõüá ®Q–áKÊm_ÿ*½·äÛÌ©–úèD4ºd¿ 8 ¥\Å·äŸ;âå‘1}Š6³±ä]¥eøÕ ºãÊ Å'WL£wIµÒ•{/¸û`ÔˆÕ*5nDhCŠ[$²H( µö8 µE¥e˜“jR6*qÅ/Òö é›5åvçÓ§,5ÖRu²ê·¶¯ÿ|gg'¦(èI¥F¼ÄL›÷¢>…¦AqoGšI‚ Øs¾?2Ä =eƒ˜†ËU(©/­½`$p/½‡¶)ü»‹ð=ú|'Xdôô!.¤Yj>E·¹ÂÕ ?‚åÌN È.—i#íü¶ÅË.¼œA°¤ŠRŸ£VªFB©²¡D*@mCEŠyW„û÷Æš”*=?à­8*£5Q@rEÍRÁ!J76ûØ£U¡;˜!¥ôFäjc¨ÉôÛÅøcÌ‘›§|7yÈ FÑn£hM´í·kvÛËQòå#TœÈê’S‘Þh²Re{!fÀ}ÏŒzÕR‘1éè€^ŽTWaPSŠm¼_{œ9åÆè³2%ÀCÞ}KA(²Žà÷îEðtfdç¨ïº•Cy´tÁi jOÄ`íŒ7%I`ú\–bTXÌåä~$B›˜b³¡JJ®uÕ±ç&+çe¨ÏÑÛ\T†´„¾@( mÿÞ¼Ì(ô£JBÕh$·r6òž0Ÿ–⧨ý5À´(ÙÖŠ‰B¾©¾ßQŒÙ3îÔ?¨Ô™Ñh’å@®»]l¿™SJmâk¤…ZéAŒtDÉ¢º¤¸ÜuTÒæ·ž•››ó}»÷Ãîc‘*ˆêŒw¨Î õÔÂR…8ç°ó|JŸŸHš]©8c­¥€u¯×sõ;Û‹¯õ hÎSó•YœÉ\CšÜD’fÚQúxï¾_¦6§~ Dn¡·YŽmº‹¡Ó¶ÇÏð™ìÑ ¥àÛ”” ­+Xq.ryÞÜøÆ´fI¯ç M*\–JU5%!Ž¥*Ä›®öàa2|ж=ŸAæ9*wáEV#”ÿŸŠì?ÿ‡ ê$ÛbG>øùo-!Q³3éµÊ»2ÒðLêl¥þRÐEŠtH6þ.qö UæR4³u'HF‹‘·üÉ•ã=<öÙi‰-(¸´¥›)Û ‡?|gÁ“Oå(è­'Žå2©îKmMRÊ]›êón>ØÁ]£ÒœËÔÙ,EtI u—CRI$_Èç¾3U&CbÒí „ iÛ½ð>µN›DËiœZ“Z§µ ÀS«Y ï‡gkᎈ«5ÆèQ\RS2l—,¥%¶‹Ž8o{‘ãŒ4ÃZvœÈn—,Btj!ÐÜ/?Ó2fhj,öªj€! h ] Íûï`O>Ø£Õ³Uì¦)¬:Ó}=is§a~@±ílvNTPú´„Ôb­2l,FZn k]ü{àS-Ï—š¦·&DxíDSŠ}©**$ƒ`Eÿ|0ÍŒÆdÌRÜ­%,ˆéC‹ÒÙò¢ íôÈ´ºfgH•.Ÿ [ -@ã«‘s{AûáÕ€¯°>ÇØ™–Ý{/¥ÇåŸÌB‚ã¤héb›ÞøW¦Öi°óBY‰4D•KtØ’õ…øÕc{öçjÃòðJ&8Ý=ÉLp•ëÔ«n÷ĉ¦ SÛš§#&Tªƒ¥K[í•”ŸI±M“… 'hÍUÉVâE-4塬¾ëWmE÷Tú4´ßóy?ÓjÅ=–Lw#ª˜úB›R }i'žã()Ç3.—RŒ†©rÙZ&>ëå°ÚnNßÃØ價§&Pr½2‰L}ú\x¨Z_y°§^·r¢“õÅÊ"ˆ‹”ÜD¨Eg,B Çè!K»ÊJ°;¤Ür eYæ·§È©Ir“¿1*d}‡Ü[lN©9’+UP¦ûÁ0â¼.|$Ó†eR¦Å9ôK%s¥8—]v@³-¬¶›ÚÛ_Щ$}ÿq¿e‰bÍôxÕ¤H~¨‰SøRR ¯J‡é±ãIy7<©2ÃÙˆSh<,ë.¨ lµ[Mü àõ!H¥nÌŸòiyÖä­?’ãƒr‡Ïa‚uêËÕ,¸Ÿ›u¤@J,ã…ä½ÿ„“Î;ã5RСŭòs)Uhl<—&¨ ”Ú C·ã~Æø1R¦8¸‘ž\VU6SÁ ¡zŽƒk\§¿ÖØÁJ‡Zf€Ä”:éfýP‡6sHý)*7&ÇßçWQP C›Ra1BY ['v¼]&æÄvÜaÈŪ˜ëi“If˜·äʆÙõJd#U—Ý%BáG۪ԸѪ”(1Ý-G(SIl2—}I°Ò Á¿qÎŽX¬fF‘Pšäô¥”<…Y.w$rN(A+n›L‚´„%)B ABxíãÎ$Ï£ „­‹ˆ æHQ²Mr RIé––ÚBÈý7"Äãó3×]‘©QfTçc„6â"àÞÀö>üa±œ‹%¸+b«T5XE²©HJI½ÂIM‚€ÈÀIY.\À‰²šyQ—ë[‹^¨âÂû‹ú~˜ulbûì‘ 2*#ÑéÙu¸JnÞÿ¾3£ºá¨B `3¤ÓÈU‚GòXoÍüôz*ü¿q¥…0 , gqo7*›ó9>jÞžâå­µ© CVé¨þ›Žçèq%}[±þMÌUC5®«n*$§cÌC¦Ýv€AÙ^6ý±Rjµ¥t†n˜¬)Iy§-ùjÛÇ×/‡yÅY%ÎËõÖåI¯2òƒO†’DÁs¤‚‘ßï|d®¦¥Q¥Jr<˜ôfròØõ¬öÃfÄ_/”"ã$-˜:¯òR³Z¥Áù”,¶KªH%2,vHO›b™k°#¬@¶‚»). ¨•[d€7¾ën=—jÑ©ÍÎTvTÚJHcPUÎ÷Poka¦F_Ëìe8µCj£=×Tô²‹‹ìÂþ9=ñ (Qp¡¾D$Оð}ÙS(–•—Ô…$ Ƥí¿×iu<— Ji?–J‡’Àõ$w·úcuZ«ä×MI’›hN´X¤[›Œ`~dfò›pXeNH tÒ§EÒAþàxÄQ‰3Sc!ØÏÆ¢F,PâIÛ­^3®8¥)'º€ì.xÆ–)󿥩ØBÞQ'ó€’{‘ÜànZœã9¢”Ä×c®2S$2ŬUk,n,F¦MM‡*KïÚI¸@õ`q—>G ‘@4šlì¹\y(Ž#H{«H²,¡ô<ãÕ0Ë”ýr º;Í)†Ò¸ò® 7 §ê-ýq´Ö¡ÔbDhÃ’ã‹Hq(¡I6î“ký°¾åJ]*›9×”ž’ÔJ@oÔ½?ýã±ûòy<¡;|•Hv£QZ\p ¤&ê MûZüáë,Sè,åzZèL0–H¾¶‰ ’w½÷½ÁÄiyb]]—&¹SœÔ·®zô¡BöúûÛrj[Ê”ÙTôLyåuŠÜ|æçcî6dZY ìËÜú\jÍ)qg6Û­׫b›pmˆÛ´H™^l¨-†L-]V-¥Üî Òvߺ&i…5¤üĆK…>¥µÂ·±¿¾#ß3³-UŠa„¼Ã ]ö¶öãÈ?\gÂÅF6 ô>ãóZu%ÐÏSI¶ÇŽð:‹lÒ…‰:c­äu› '{)Åߎ1ýJK••ÇCÏ:ÒžB‘ÒhƒªãnßߨÙ^kU Ó5BÜÈzâ]kJÝAý°»Ê(»m¤Ý ¤öù°´‰Þ­´!ÝM~`Øh¤Ðè¥V^)÷¥< 4²µÝ'ɥƦÀ§SÔÒ"6ÚÀ¥êúó†9ySŽRœŸ0SF\Ùʪ4Ò“×QР)'k`í7/BTç›èV=L©*("ÇkoÛ Ù’šÍdÉIy”Ä‘ë@p„–­¹ ÎÜqÔùNT©ñd¥%§R= #Ô±í|rE}K©R?ÌQ•«WÍÑé2^qõ,ô†‘² ö'kì7õ{%DÊ?!»/¹Z}a·›i ÷þ¸þT¨ôéÊ©Èqbiõ6¤‹•ó„:®h—^Îl©Ùår÷.hs²Bmkb¡—QäÌq¨k”ˆS%ÕÛ±¡Æ[üàºHî|ªÁùYLÔéÒ—O¨Cº­¤)?«pG|~ ‘Ø€ä¡)öΛž™=EsÖ)ìÖÚRa>a˜÷-(«X¾× òq››¿êhÈÊË+«f…Èp„Ǧ·¬”$ë|€Hö<ÞØR‰ù53ÐÊb²ÿ­E.'Þü¥ðóGár ¶Ê x´„*ä¥#oW;÷8˜Ø§Ó*f‹‚R\»ö)R\Iïs¶(а3Õ §¤=S±ÀsHf×K‚ÝÁÍ׎ì˜Í¿!r–ê‚Ê‚ z½q…ʽUU91Œ¥ê.²»”ûÛ t&_¬ÅŽÓí—D7-Å~‘qµíïÞøàŒifʤÒÍuÐâ‹qc~{Jƒ­‹„Ž×#ƒí¥„¢ eNŽÆ­%Wl{mÆÛÛqç ðëÙbm6¯JEL‘¡Ö™õ¨ kZÖî0,¸’m©E×$1v’Ò•ëR­±ý±E&ˆ6?Ü‹7b¹bzÜuÊzÓ-(Xp¢B·¾ûy1¾¡=Ô!jÖØ¦)Iº,5éì/¸ý°>m>¨´5!¾º n)¤¶RTŸqßÛizdæ7©uF‡É%z¢—¶ GqíŠe*gb½»-TéK{/ÏuÖæA_¥§e! _Œ¦f.„´ÉSíÆÀ?ü¬,}ûá“M¯ÅÎÓêR'³*–‚SåÀ[j¾ç]ÍööÄs;üQVWø¤Õ:K0†^JtÉOL—ú„Æý¯ý1—ñ¿~FMTß?÷/å.!oÉõejˆÞgSmÒj&#ˆ|,<Ù ÚÞ À¶æL‹–(T8Ê€™2¤Iº–^-ÈQU‚”’¹‹`EKc/Óêôµ¸´%Æ›’ƒßstöÛ·8p~–kÅX”™òÔâCM ¡¾ÿ½ñÛú¸gh¯L":hÔó]T¶)iŽéºP´$©Ä$‹X,›ýñŠt)mÄE6 ”Ìd­E±!d7Ür1Uaè0«Š¦Éz#O”úY½ÏýúÛ 9²‚œÃ^HDÙÒVó­Ø/ÛIÞÃV¬b²ÿS^F&EL‡É[}&”ó—XO†TÝÐÑßP½ÏŒ,åè Ñ'¢Šü‡]1ZmAjؔۓal1æ9‘é”gj0„4Ýî­7ûœO( Tb{#U™Œ7ª2)††¿- èÜ‘ÚÝ¹Æ ’*ùŒ,¢SKaµ¸å“³ˆÓ±;s{¶1É­7SnM}çã¢"F¡uÿ¯ûáÛ(W2Ý'?ó’™\‰*æ”AI $m{<Yv U {½$ÉTJlf ’ß­]4ß]®Oo¡Â¾¦fš„ª+5šr™IL­#Y[„p²Eî{ZßL^èùV‘"3õ3PíAÆ”¦d½rÒxÙ8XÏÙŒS.TXêÉp¶&u9gl E­çœRgçq!7`Q ðûOÝé'É“ý}°aÙšcÔ½hž¥¡)C© -&ö¿{{cdÒ~@ÂÌ.–uEäI@´ñÇŸsïŒñòÃsÜËj‡ÑXyN` †üóoß‘m‹EV¡Q†^DŠ2ã] Qßq°=D,ƒ±7'ÜqǶTÔZeUlº…0ôû´Ü¢À(qvþp£o™ïÒ]§· Cá/ n¦Íô·}Ôwà}p 87N©äcÄC– ­+ŽâÂMˆ:u'è?|E à‰ ~'/²‰‘URœ¦ÏQhnÊaW¹+7¹ÿlyQ‡i¿ ügÝaÀ_m(¸¶µÛá¹OK¦æ%ºÂ®ÃÌ).¥ %)·{ !å¹/®]NS9~E-Ç*ÆžS‰ñÖE÷Æ”mÉ'Ù:×ýCLºõR¬ºdêTQ,6ûrH¸7ß”íÆ©i™—³\eDgæbCÔØ %6JHµ…¹xÇ$¹˜]ШU¤2 úÆ¥5±°ïÈ5*-?…U[h8ÒÊ>… r;€x±HÛ¶"Æš‡Üê$v2爳ªÿ“PŽâW1ãÑ $\µÕ«m o¾hYle̸ˆÑœ2º^jÊéŽû'ß‹aj£³$üÌæ\Ë‘õFê•¿ó¾ ÂÀìä;_ fÕE‡šd4Ô¦ÙM‡9 ZÔt¦çÅ» UÑõIXq~«KͲjò%M¥ÉæT’ÑS¡iZ{~yÛ¢P¯çÓ¢9&#lÄ­.2B4“`­¯ô¾4GÌM==QãÊ-:ð%räØï§ÛÛ)ùî¢3<èMC n;/œM‚ÓÛô«€<ýñR¼µ‰$Q0òõN—š"¡¦iìÁŽ•(¥‡7ZBß¾ M‘]ª92 £Æ JžK©×Ö°Ý"ÆÃë¾aÈvciz2¾e·S«Tu›¨ûaêá‰@JÞ§·H°·]É$Ÿü·6ãéŒÿ¹{r‡Z&#Ó"Ô(ÿ¦JvDF²üˆ€&3J !iê­{íôÚÙfmV6ÀrARTUq`Ÿw?L/f]Ö¹0ô´¤VEÀmÀãl"QfÍ¡EK°âÔeè¤)ÍjPI’{°ßlQ@`L%«‚}8¹E*-,¸¤…möçj³X¦Cf{ê,)GKIÝV¿ílJ¥|JÍZàG–Pܤ|³¡k ;pl›w¸ßê\ÇSesPëRSÓ"4tñµÈólLþ=@3Ø©Ë=f ŽºdÍ2¥"=×,9¡6>;Ÿ¶¨íQ]ŒÂ`ÔPóϤz‚‡ÒØþ¬©É9S¡\Iž‘k6¢¥'ö;[)YPµV`©È’u”´ÛdiJO­lmÄ܃ìÍÁ܈Óõ$½>DˆªŽðX1(PÛȱûa~ºÌËžhôÙrä4R¨ixiJÆÇ«{o·¿Û S«þ;™*CÑåOp6¾¢ ´n Åø‹_~qH¢Á¥À¨¦¡Vš…®(Cpc.ÁQÔAÈì9É s±¨ŽI‡˜ähM ~·S¹t÷*'f3&SïVä¬]J@ä{㻪 iÉAIqÇ7KwãÛVk)Hu&B›ÔØ+²Bûj6;c– =N5‚ê™@ù–õ¹<€ê'ܶ³A$8š½Û¨4K‘ä7ïríísþmì Ü––‡å©:Ö-èIûm,Lns,-JPZ³„›„âØ ›1³eJf,7£Áæ˜Xº’»­Ýgø…Ïý±HÌJ|œ©÷ê“úˆuÔ4î’’ íqlF)¹ÅÜ¡ñr’Ó‘"3M’Ɖ/Ȱ%[%>÷ãÛj¶`då“mJm“³Z;Xô8¡†¦2Ôj|÷˜Y®¹"P‚¶ÚÜ!j½–@ç·>ø;–3¤©?¥eúê[•\ŒØ sA—½‰¶×Xcv…<0©´ç̶AJÑbG›|!ÃEFžº•ZKÅú{ õ!ºÙôh&ënüo|5좋ɦ¼Äú“óR!º© %© JÝQGQçNÖç*¥r–S^N§Æè†Be,)GcêJuZê÷}p“CÌ W3ûÔˆL¶ô&™.L”â% Øè‰7ã¶—5J³óN4†c·fØeI°Uê#‹_ŒIœ©ùËœ[ô@Y…UZûðÝÉGÐâK“ójAjܦǸñlf¤Ò£¶äjÍi±:{aAo8fÄZÞö¹·× ³bO5¦ÌŠÛ[‘º’M”66·½°!pfN5*e=Jù€„«ó‘tÙ^/Î8;}r޽ši‰Ššº„Šœ1與W©- ŽÃþ02d'ª©ôaÔGê­"ÖP|ÿÆ Ñ(êË”)u–¥j.¡õ®éÜîŸocL8+=6ó/¼–’×­qÒ:–<ØœvÔÆŒ`¿ rÉÙG.Š:ÝRGÌ6Jn´ØOmöú ~ff&H¨«ì³ŸI ýV†4D•A"Âê»ðΤ>5#ÕåIÚçí€3¥¹T©<¥Ë†ØŒ‚\qµl»w¾Ûã.ÌZäÕ(Ä*µ"‹²+‚ '¡$2àhjßoÜáFZ¤B¦Äé„êS¬õð7H¾ÊÛûauÚ.d©N‹ Â¾M= (éÔ®I·{žücÖK§~?Un$—:2b¥Å¡äR ´ÛkbÁrU˜öµ<ÀʯȥK¢®“ ºSL^õN+MŽ€-ýw÷ÀI™fö•¥(uÖJ[Zɺ@6ÞçDÓ!³âÓZÔ©{“¶þ3´ÃÙ.sz’Ò¯”KšuX\¨ö`#–4bFÄRwåc1:ãKböÔúÞø‹×ŠÕf¨äe=ó6KmD^׿ck\q~1@ŒôYZ3 *:ØŽ ¥·uè¿#qçµðg.Ñ©UêcÔZJ\ ›–Å”ò÷߯ÁZÈŽÖëÈ»]YúõlÚ{±Ü- -ÄF²£k…kñö8kÌ•èÑèòáDa/:Á=&VÚº«XßB|Ÿ"ø ™)ÕL‘&5G/ºk(T«®,$ `°Üƒckp0MÌÏP«eøò%Ra=Vù‡ZŽB^7Úè¾ÞöÁȪi¢®RQê9»7TÊlP´6°æº&âöçm¹¶+´÷å¿[3HÐU¡´¨µ·¸úáká4gs_ÄÄì¸nÓ[Ž€Ùp\)[òmÛœW*СR£ÈuKia´8«‹·?¿ß “â@*är,º}-¼ÐÖeXt–è€ä¥%¤ 좞/qÉÃðüAšz%­Iz+¤tRRZ@¯¿œK˜¡~+O“`.±&þ…£e¢A7¿½ðá—›KÊ‘2µEÆ_z2´ÅpÝ!H¹Ò-s¸bné1¡Ìi0ëOJŽÃ²ŸuÀ”–Aä›ï„ï‰*«Jø]&=CUr¡¥ ¼”êP=‰Áˆ5 ½"µB‹Nކ^™$…<»”„¤\¦ö¶£ÛïtújæÄvl׊Ÿ¾á`ÝÅÑ´¦’ëZɾX¯W¥e*e+8$?U¾qç JIØ]=Àß{âO¢MS LŠk»:ZwS( 7 ·oöƺ©--æ\lLm›«b-a|bJ‡TÊJLó6R:IHë+H;Ø‚AVÌ21'’ªš¬ÝPËœºeS¥µR§^¤›•7½­„”ÔY—K„€Ô†Á-)fÇè=ðÓ•äD˲eÁdTÔ‚]-,êI÷Ømç&ÆjN§ „é ’›8 ïàá)çeFC]“¸yv«VÉéq5UA”••ƒI+Oþ&ÄvÁvdƒOj"KîËj*Õ×M‡QI¶¿m±ù-Èó2¢Pæ­+}Õ²¡è¹$s±7 ð6˜ší/*UÍFŽÒy:TV¢IØå¶*ÀúbäÝ–ã½:–‰ÒæÈrWT¥µ‡ ›°ßmÁ\«"—P‚å:Z^óX­µhÞûA°Â܈•ú6Q3j:R¢Êd„èú¼\Ûܪ3‘Ôä·Pä÷TK)R„Ÿ¦'í4`'yŠu)ذk,ª\×VP—Û¦§Q°€Øùŧá³49­¬ÄDU‹ŠTBoØÑ„¦i¨U2#2„y R0¶/b}Ž3 &mªÝF“ÉÍ%_šÊ¥)%Ôžwò;áè9ò+‚¢T(ˆyÄhK”·Y1R[Ôocí|A3TeQL¨òžø~êy6³ƒ¾þqc£VުƋ £D¤-ä¥(Ò”ž~Øa£Pœ‘IÄx1ãCx¨!ç БÀ±î|áp“‹%˜¹e© Ês¦°ô)‘®ÒãÈHm׳'bG¸ØÛ©Õšu]ù’ÑÈÙ‚>íhiI<ߎØ[~‚Õy¦•6ókÐP‘nÇéèL VLÉ%ö÷u[X·a…ÎW#X–Ä¿QYšŸD~4d¨L¨©FJ³,ršS ž«r㼦Ýt$Ž2L¬0ä´‰-˳ñÜS~¦Èå'¹SŽ(ö8r×9Õrƒ%¥I~2Bú‰}µ°A½½Æ=WòûjËlºd–œl„²æ°ü§~õöÁZviƒ:h\wc< %&ÛwöÀlÛ•aËŠùY%.8’´‡JP?¬mÇŸ>Ø(o‘¨¤ÐòGbSU¨¨jz›m´jK #RE¸$sïã铪Õ|Ìô5tÛm¡b².“ÅðV’€üªƒëL’û-¡I*R‹}Üï~ø`Nj‘Ì‚¤Ê6¦¥¨6ÓÛúb,øü”]äM¯N—D¨8ÔvnK O!^”Êó« øŸLs &@‡.tæì‡ZC­`ò Ûó+1*LÈe0‰’ø }jX²G½Í•¶ø×˜—9½/6­Ö¢›s½öà⬠É$Åf†cÏÙäΩFv šD}ZAßÚÄžçqvTE:chx84°ÙÓn-ƒ9Qø°j3©­O%Ä'Ò[{l®.Eö82Ĉñ󊜜P>]«5­6*ß±ÀÍ”]UFE ÌMeö>i+— m­æÔ ®ðã•=â#rRÃo6÷ӱAþ!άWó\IÉ2 %†ß %66ûûcçWÍáJz4rLí–µºTÚZ¯ý±Æ¿•BîoøË]eŠ[¹>$¨mÃ"I Ž'QìO|'Ä©W)ð¥ÊŽIG­]z&ûƒ…eÂÌ©j˜Ó5&‡¢ÊŠ@Õtq§Wßl4¶å>^Q—=ŸšS©xµ- zJ›Èì04\;òl>Ty(¨KÒäràܶ„©;sçêR"Ì!) õ>VÈÖ5$‹mûajYµê2Ócr\K…§ «Aá>‹Œ>´ÄZ\D¥š|„!!×±Q#k`eÆ(±)†ê¢ü:j? •L„ÛL…„­îŠnQk*ݯï‚tê\Š\wcǨIùwWúN°¼Ûj+u¹0)HLw]PS‹Õb,w·¿¶Ú}™ ̾‡œAÒ4¨mÎÿÓœeÊï_âhÆ«p3ùbŸ3Õ\[¨!Þ¢ÜiD(û[‹a·-C‰S¥ËqÖ™a@)$¤§…mÆÞøãÁQÒzšÒB’8WïTz\ºj)Œ€»¤‡RNW:€'ƒû`«3)-ìGPŽ*f›Q0§H”Å.Dê‡L)¦JÛ ±v¤Ó“Œ¨²V»t×È ¼bÑpåÆm-,0«­Ou*hW¶'Õ™ºT·‘ó!ðR´b/Àò?lI32‚5즶Ѷ•K2Æ©®º6>@Q6ó·ŒNs7Âü±UÏi«×šêhPYi'@YÏØŒR¨0+Tn¨a¸ú_‡"ßJSÂäû ‰–¢ÔÞMB²¶œp*åI ÚÇwÄÖÿ‰¨¹˜DZ.d™<êx§>Ìfä–zCJZ ÅôëïæçèÙª¦îf}uF¤<ˆÏ)›d¥§oÁöÞæø~i4†k²èÌIå%®ƒ:U§oÔ„žçÚø@«¿€¸)é-o¾‚·ÝS_œÈ¿ê X~çðº3d™HP?©¥&«TbK ©ÄAJÙRÔT÷Þׯ |¼Òò‘˜ÈGËÜ„Fm¤©Rl.R7Úö˜n Ž¿SLGV/ÔmµjxžæØ{ W*?…Î¥S¦ †TT‰l’¦H }AÿÖ•‚L“P½#3”Ùõɬ-¥²”%VHHµ…¾ž0ÇL?ŽÂX™™O0ØXBƶîxn$¿ç²ó1©ŠgæP*l¶ÕÕ}ˆàsÎ>æÎb¨À¨–ãüÃ…z Jï‰"ó`!rʨÆ[fFdÓcÐBb])¿7 ll"Ò¨¬¯8T!=O rê)’„%<€o·ì-ƒó$8ñØn’ñ!)Vû¨(§¯¾ãæ<Á"’„Gœ™?4ÒPý™ –ÆÕ·öÁôÅH‘ìÓY‘Ö‹Kf-k-FB*qVبž9ÀVi¦×áÍ­KK *eÉiBV6§¹Ç†b®3 ò¶Ñ±ÑÏ7þø-1tÉt3r>e MÕ¯’p¶eŽ*^I•z*g|Y¦¹Xrôús…Ôi!Ä,аGÛž×ÅrŸ"y¦J©|¨PÒ„pé²PWãø»[ŰBËÐj9Éæ¢ÆŠÉB›ˆ‘¥´ìl;‹wÅ8֡庠D‚™•0zi %VÛRŽÉÓ°LÄ5F§FUuPe ¼êÁÀG¸>0´wüQMrˆú O)+Œâ T…”í§ÿþØÐÆcn^IaçÛKmè- ”›nG‘ã ²s>,p!¹() —ºAisî 'ʇ"{³h˹I5qóŽÌ§›B ªm$~­rŸ~Øùß9æz×3.ÒÝ9}Ç1–Ò›%͸½ñM‹F‹?5+1uÝ—>sé[(š”¸bØn¤ŸÊžØé™Ý‚ÌeCK,U]Óùî­²²Ž=?Ql>3òã:±ûˆÙv»"«Uxª2•.:²®6;z~øoqôÎü)¯’u¨Å˱ҭVÜ_{ùÜ`FCŸ=4w Ä¢B1•)×ÜSëSjZ8¶›n¯¡Å" Ô2KeM:)(m„éB6ãµ¼qƒ.À+`A‹³êŒS«0˜ü9r¤õ_u €O鎹’•*Nލ”µ·QœðT—ÔmÛù…¼ q¥B…#3&»"rÓº‡¤þ¤ýqÆ·™ ÓâÃëö.¶J”£µ‰6¾Öïˆ]81A÷&ù’…^SÀ” U™AKNÈRA6Û{Xƒç ùB|¹é\Y¨L™/´ ÖÒ@´Ü‰ Am/üÇÉF>ëªX ïewO|wz‡yÉtøMGmô‡] '‘mÁßé|k\À! ÃómJ…!¸„GbÀ%¤”¤xÅ»$ImN´™Ða®b˜%·4@ïb9Û·8…TkqPÛ)eÆ‘ €½Ôoߊ$Æ©Y\Uas×a©¦·sb~ýûãcä¾\œ¨ÙWËNUyHŒRÁzÃb¡ˆ\9¿á¼Àý}A·c4ÿÌGqðABvNü€{âÏ_¯ÕF€í5²ÔÇåMµ«Y/c¸öÂVIÊëÔiŒMªºÚ.k*Ýðq±SS0öÌíB{!ÊiLÝ ²•w$‹}q0‰M¬»ñŽXn*â:ûÎ8«ôÒ„›^ä§÷ÀÉ? ½˜åfC«mJm˜í(,ªÜÙ#¾*Xü­UÞ›5QCit4iÜ’–ø¾@@¸P¹9›–êÑæT×.m" µ«[o¤Y$F“mÅ»_ ëSrã‘ ½ÙKP„)¶ì•’RU¨í|Y¢×hÒ3ª’!†” Ê›N«nA$yß‘R? ›^•Vj,¥ @Mµöã2ì #«)°b_ÄL®Þn‡I4§"¢}>X‘o¯IB ºÚ$ ó¤÷‹9^‹6¬ã2.\Æ2¤)[s²†üXŒZ)s)•Š“ZѶƒÕKé ^Ü$ÚøOªåÙŒÔêŠÄC/QÒó¨4Žu-s~9Ã&jýG ó<Ó²­[+:ƒWª½V¦-¡jJe?Ê þ¾÷¾ÜaµS£´Ügc–®É ¿£Ø÷úá~mH™´è°¤Éùæ€ó¨]ì{©@úOß(3Y¦f©QªAFZ$£º· mû«pØ(m·¾&ßó;*´‡‘Æ-(>õ?ñ®<6ÈId~5[ø}±Îu%¶+å¦e¨%¢¦Ó ¨vÛí†è*UR;³â8•±}*õS°¸öç ™é:âÃeé‚ ÝÙO¸JWéá)P"Äâ+íBÏ÷%eXui¦Ÿ)‘0­À· Š)RPé'Àí† j‚nYuÔ$–›ZÕ®ÈI"ä›› ø¾V'Á¤&-B#äÅšÐIuWR—aaµÏðón­QƒKœä“ø9r šÈ”[¾ÇÛl[F"®H‘÷Er, Öš$)ðÄùˆü¶ŸYJ?·8Á™aVé”ÅBª&4ZÃÍ(¶ãw[VYØ€@ý±¶ZŸDÏ×bG¡2À!þ™ê‹ò~¸eÎ9šŸ›©pæÃŒôT¶‹>Ö—1ȪÒ%ÈduÖà-²m?¤¦ÿÊw;žN+K¹fOÈ¡Q¢¬ð?ÝiÄMh mµ+Z[¶×n±£æy%¤¤Àäw'½‡œ~A–‰tåU%ª4…- mr^o¦âSºT,7¸;âSD§|C©|{¬0ë°[ÈzTCÎ î›nP@*$ùã?pI5_ßÿIJþ@JwýFÅR‘â jôc2<÷”—bH[}@l}v;»í†êÚê©jªÈœ¾­ÁJ7I Ü&Þ[ÍÆ¨RžS⺴G²Ÿ*Hq 7@µÇ×dÔ*5h±×5™IJÔ–›jéZ“}ïõbL ¨Ô#Ý:·M~BðK3ÛP²âHÓ¨mb|öÇõb†ôìÀ•L¤ÂSjmE$_ÜíÙ~kR©ud­QDô€¤DœÝ’âSá^}¿¶9Ñ^™\e2úIˆ¸£SB]N®R.m÷ÂupîEB¹Š‚—jôvª¨G *–îìÔn}÷ï…ÚtæáfBÓrRüªÍu &×±ó†¬í_ü"vZ¦”Òè¨ZÀöþ؇J©Ñž€ÅpÝ\Ô¸§ `*?‚ïm°U/ØJ zsmÌ-t‹…Ôì¶ý% v¿cõÀ·”2ÔaÓ$¾•&KkWMz{ÿúc•7+K©:b½˜ ©¯$1¢Îmü$›Ûú`° ª.dJ™šd4–ºI`úƒ`x7þø­rU ©šœâ ‹.Lg\¥»ê)I<_¿¹Æ¼õ]›JTh°éBBVPåýI÷Øà™¢QÌ—ÚC²tqdÚþ<}°£^©Åƒ6;imÙ3 %[mì«lGõïÈð\WjâÇ\Úoâ Š¸R@w ”\Ü@·ð>¡™#Ô³ªb¥S›è”¯F 8·"ßסVÝÌHÐ(l¶‡(uÙ(U’«X^Üoß)™'0§8;t†K̼§e°”z7<+°ÛkŽ,´™ú0œŠBªRcNŽãó,æ—ë:@äq~{Œ~Ô¢ººÁZÔØK Ñoô$ûá«0O§å•²ÌFLˆï¶”ª9Vµ6áW óa€ó_ƒ¡& ³[q!ןHÔcn-ûb`RÓò™PŒXB:ÉRSº®wøÃ7NF0mô„XPý•}“plpñ“ç?;2˦<ãmíûÛÈÇåHÅT©±¥ô¤4 Òó„óã|6ÀµÆE1&.w%÷éî|ØŒÚAB–Øj$wïÆœ›¨å·¨N@'[KPæ¡¶üƒöÛªÙzg+DC=k‡$¼Ðà#tÞøœ¹[ùÕ44ÁZ êWEÿÔ²8߯8`\Œ\`ú¯Î;G¥A«Rã1:•ˆmDlAõ'±âøçCTnŠée)måiuÏÔ”\‘s}öß Y¹˜3_šŽLd¡Ò«,X¨€v÷ø3Vª×©Q¥=PRä´J˜-„$Þ÷ß¾ç& žÆÆÊFÂsvTY_‘VŠà`B ²ùA&÷ _bœ1W/[,M‰Rb<å9g V JH;‘¾ÛvÂc¦V@*8xëÞLbÁWcqÇ¿#–²„‰µ§jRYùTÆd)µ¸°¥ “ÅŽ÷¾,ʪ»4Ä7ܤ°Ô–œðKƒH.€VÑ¿aÆßL>t©Oåä´ïD! ‚‘¯HFÝ·ÿlNSJ[PšQïYÂëa[è’Ÿ Ø;ß´ÜÇ%§¤´ÚªQV’Zq$-'Úãt(i{.Œ:þÔiZËñ£½¿¡D Û±ìŒ'ÉœÛ0äG$Mp­*qHZu,ßkŰ×>qNZD·™z$¾¢u¶éö¸½¾øF’ãµ) „%IqZ”ÈH¾˜dfÔ³@ëGÄ|•"¡P•RªÊÙ»-4µkI#^|ùÂÆWatÖ‰:’¸‚ó­”)I7°P۱ş6¦Õ)˜å—J-¥F÷Û¿¾êŒT¥ÔTfœÔâ\A¶î7° wÂbÎX`lZ‹ú¹V˜ÚTg¤¸nݶäÚö8m£üJV=R”à”J’émAiÖ‘¹Û·¶—!†`Çn¢¥ƒÓ) &˸ÚÀqõ¶)íÉRz\ ÊêHt¸›nMŠ…¶½±PŠR ClnR+äÁýI—Üy¹h!aµ­·l ‹ò¿&8R[. (­{¤ß¹Ç‡+-Œ¶ÛN°^HN”Ü‹Øÿ¶7Ðé‘êqó:VZnTn鸾)b„¨!e‰f9T\5ÁxÊI³¯òƒÓcßÜvÃÜ\®¿-N­{(Ý\b)MªT(5TÚ’õJœûŸœÔ¥êRnRE­ô8ú2öêyb#Ž:Þ§›K…²´¨¤_±çþ°+áŠì¥Qc>Û6,©Ásk&÷ØXbgšhÍæ<Íò±çèmàe¡…Dƒp‚|_¶s®n¤ÑòäÚS,8õAÛksFÈ~F÷ûí„:Dæ"RZx0ïEïÌJ”©dó¿ŸëŒ)„ÊYo¦R¬¢‘”Û¦˜ l6ØK!´\&ݽ±85äfJ -uVêR!Gm_Q$ö¾ß\+8J«µ!¢ÚئFp‡Ö¶ÈZÏò ¿¯5•ÜJ³„ÙKe‘¤Ø 6í¿;“~Ûá™uéŒ)€©•èñê±'+¢ú¯¡.!MéýÎøOÿ±OªÈ™®Ìí=FßY ÓbvØ­üý2 ê hmÀ•ì4Ü.ÇÈçëÆ0VòûH®©øqË RBý.nG>ØÎ¹H5*2iò¨zžY.!n¨„¤{Üù8Ù>L|¦…OvîRÂn¥ ]I}þƒlf‘ê‡Å8Xšºh»’βT ¸ñÈÅ«1³Sƒ0Ãêˆè(R’þ¾4ž&rÑ¡'lÈ..Óßéõ®sõúœ:m‰2ŒâÝK!*åkQ° ó1ÓË/ÓzÐ[ ÿEü}ÀÜx¶jUI5ŒÈ•¸û[R ¡,žšž"À¬ß‘À¶;Z7õ(r Í4ʼ̣ñz¤û5ô7c¹ñ«ÝD\~žØ+31B¯È\ÖŸ‰"J†¥5Ô_‚6þØKËÒ«Pk5É ¶ØCŠnBY B’¯~Ö7¿ÇWø{&ðѬÃ.d(r_JŠøgS¨*W§¸ílk€/³Ëuek¨áMCÍÖ"&>ˆNÍu6§6+¿#ÿ£ïŧÒßëW¤²Ô Þ;-ú”®ÂàñöÀʵf©D“Rmj~<]Ë–ÂŽÅ.lç)IœÄJš*dÃe÷•ò†A!N6Ü’OÖã²êÒ›"Ké¡7:“ò±#®"’¹‹)½á)ÚÖúc™@¦ÂamO"ZÊÝz[…JZÎüpŸ¶&³ª¯Œ¼Ä&e¹­V³Mí¥#“…PíZ©“fT¡Bˆ™Œ?ÓÊŠ‚ …ïü_lÕkC“²•ÿˆ+Ÿ—¿qBJ”—ËH¹±ð£°6úa©Ÿ$P2”÷FvSÉÔ%%ÕlOoë†÷XŸ'áËPjUBìÖ™OL% •Û¿>/Œ”\®UÑ®†çI“ë $<¹Û „¢‹a2»©ì‘eœíñOÅ:ãeÀºeI i,®í€OYÇÆ>}”Ǧ!Å¥LHPõµplOêØ0ÓDÎqju•QPa¼¥)‚¿J<® >¸©¹¦ä¥R]S1×Jê²l ½¯½ðß–Ø™… ‡<€Äš„ÊfX¨HŸÒeÇ$n¦T唣mô óíïñ<0ZM6d‡mÐV×D‡šÕÛ­÷í€U´I‹ðð:ý:L’•„õJƒ ÿ:{Ÿ¾<åyq&å†êC d,µ­„„õåC›ïõª|n£†m„¨Ñ²Õ>dy&§°^°x)R‘ïÿ¼ƒ— 'æ8ÅN|:c¨"; ,Y+/{m…Z=j¶Þ¦ªq¤Û¦â VDZ¿Œ;±X§ª{ :ámÛ(pÙ%Dv=þœâ/·Ôµ)邚å>ò7þUñ©Jœµª›q²··ÛœJóz碣N9~¨ä–\ÖÓd¥ea[ŸműNª?µ™'Bv2$ÄŒÀS·P#Q&É ïÚø“4üGç<ˆQÖ—éB¿Ë­* _p#m­‡ÇÂL‹‹ äÊrcTcÖ+(X˜¦ÊFãRÒ®o~}ñI§W)îæGh”§"@qm©µ-ÆôõAñÅïï‰=VmNU@³Oikmm†‰C~¦8%DØ;a†§KKøeø´*ŒoÆ!®»Ú– ƒi„ùÃI¸• »4o™ˆÊ#-ž9ô¨$þ¥\íÏÓ$º)Ô¶t‚_• 4•¤ n£ûaj*$8´Éì‡ßV÷EÍù|vãP«Îø›4‡M5SQƒzJV/b£r.o·㈵D,TÒUhHJ€7XúcœˆËVg”â\š$èü¥0 Iò;ãÊžKUx+tôÓÔ(ÜúoŒµ9ÎBÍmHiÇ¥@-6Ø$÷>ØÏúÈ=3BD^r’‰Ô-AqI©—‰^§“úˆ8Á.0:Ą̒P·–ÛÅ”B¬}`ªüXp7ÃtNª3›-)´†Öâ-{Nö>øß+Pã:‡’‡5¬jHÜ\›ý±tzä“r/eê´ª$øðu”¹9ò©•tÐâÀRäÛ}ðW=Öb£#=[ÅEÁt!M…›ƒ½…·8ŸÉŽšvk©%éì£üË–;6°­’‘ný÷Æš…N5VŒ©wž§ã7zÀ¥#fÒ½g¹ãÀ7'½Î4ʃYƒ D£E—%M!IYຒãH²}*±ÁÓ4S%嬼†ê <ÌumþcC¹ þûûc#ŽU#Wi² ˆéZº¤&È! OéXºÏ;aúö©ÔI °Ä—Ñ©×T“­`Ò-ÛɱעWK‰°¶›@‘†Ý-èjDwu%zFÊ#øO‘È÷Á: zFFi±ªA%ƒ΋ã¬j…6E^¡:¢¼ì–ƒÎ6»)H#bAçöýð«1ªŒmp#IO ÛŽ«æ7+ùÊ-: iŠ_q´½© J¶ô©[s¶àï‹*1<èÓæÈo¨ ò«IÛ®Ç œÒ‰Lf‰“J€¦Ð¤u™0M–’ÒÛêƒ{÷û{áz;jŒÓÑ©Ï[w>–€;‚n®Àfø¨ç ~_¤*$XÍue%@ ¬jq ±ºsÆ&téŸ[§Â.’貞Xü´ooÔv¿€?¦ 9Ö[P~PÖY¢ÓfSíNYyðE‹Z”âxä~Ÿm…°-oUr­B5.7ç4êTÒQ!e (\(ò }űq‡–i¨Î§óá@B×®ÊVÞ~»â[]æ3Š›¦"RäBiÝy×Ô „+…OÚâÖñŽÅ”±7"ét"³´ê†dªD£Í™%r¢´ó­=pá6<íßœdÎ9~PKz4‰q#TZé¼ó¨Ö•¹Ø“ü*÷Å®ÉRòÌd)½-­vT†À+BŽ÷Wr1ë5Ä¥UrÄF×=m(ÞÀi÷ß¾ þ@CúMÈû¬B‰!¥JqÑ äE”½®oÚ÷ã£ÕãS¤Gq=D:â‚\uD«sçm·÷ÀvèTè™Ò:à±:c¨˜†‚¾šE·)àmñT›O¦Tè2ÃhFi».ÀH߸ßÎ!šPò ÇPÓåIYº•ce`g¡FNT…¥¦êiGøOשêjYŒÊœ/'¨ jP&ÃÅðÔhȬPˬ‡ÛQS(t]´¨vúbXœ†ä–EE,"M/%"3°Ýü»8‰ är°#ö8iÍyçSjËnÃΉjåÍí`Ÿm¯ç#ʨF±QdF}'dZâÝþ¢þ0^OÃÏǾÇSµJ¤IEEÆ‚Ud$Þãµíí|3/ÊÌPª%ièÎTÚC¯ÇmġǞ±q²¡slm̱:DyŒ<WÍÜ+MíâßöÞØ]“N©åzôºJÚùˆrQ­÷U¸wkj?¨wÇDæV"ÓÿÃÕf”ôw“hÒ]$ÅÉãëŽÐ±h2UVU D£òS&“!‡Ы2G øáŽ¡2…óí-!E7i 7 ¬FØ™æ,¯^¬Æj$fâËnåÔ€›n?ˆ7ÅfƒLHørÄ 1Tì§S¥à`FÀ)°ÙÕQD˜–04T"}$Jx¼ë,9yGI»f×Üï3hÔæéJžêÉq:ƒ«H$÷M¾øËUT§ÒjMÄš¦e†,7ÔžÚ…÷ý±Ê•&|¿‡Í[wC}5<Ùý&Ü`kÀD°á$ÎïIeܔ앸¤º¦Jz!^»l$±RŒîaeçS.Jt¼$ԑ͉ß©0×›àD“=_4椇ôßíßÛ+tTÍT™1eHYt¦C*!#ckƒc¶+µ?!É3òò}æéÙhÔ…e-9º„q}/Žv¶ÄÛÛéu?“v=B4oÎ’¤, Ø·6¿Û UFWI¡¢ F…RœTXRÉ[*>à_÷ÆZl·ª-ϧɞÒ`@Ñ} ¤„ƒr’<~ø¡Ä¬¶¦r;_Dmb±RVdùªq„*Å*@Ñ£b7úo8ÕLꃓ5Èå}Bã:y¿þXüDXUS:*ƒˆ[WiæUèsoê{ýpJƒ=km:VI AÚÿ÷Û#µ4(J.£4ÆcTÝh8ŸÔ°>l ùJ N¡*R¡±PŽé¶TBÒ±?sl.·RPeO¶”)¤¢ÊBµÀÜí¸8'•X—& YnB—×(ZÈ@q¶Û‹Ûø¨Zš„0<1º£5•O¨CŒÔxÍ«¦´¤é:T9ãd¡2ª ­×:múH¸¹ãÛœ­Ñ³ ~Ž‹*=**F¢ÊW¯Q¿“ÀöÂmB•S¥Òô.£©HÒ†õ¢ö#¹7ßp;ØØòhO'óT‹fŠ…1—£­‡[ qįI ƒé#‹íÛl;3YL†ÜË) hR´­¶™ËÕé”*œ˜ÍÄ~ ¦ÒäI©Û$ÝÚÖ7ñ¶#¹K‘'­%S¡¯£þe‰ *öÂ{}ÊcÉFê5ÒêTôçD­Å´Öµ\¨§kx'ŒgF£ ŸZ©ALiO–S©²ânÄx8*›-q)• Hh@eAë Ô‘îãÎ6H‘7å”W!!&Å’ÚtØíÁÇ+M8Ó\ß—ž¢ÆøWIS ´‰²U)dÕȾ€ðûcU–Å.3¡­ %Ev)Ÿ§ÓmÓÛ†ËÊ6¶ë òÐ}‡ðãE[7ª™Fe×ä¶…”„¸¤›¦ý·#œ&D|ƒã*…R6W–šS/”¸ÌRTl=ñ?¢²ñ̪ùWä)¶N‘ê w'Æêz…* ¾ä“¿ôýOˆìùQ£4ÒÝ%Oi6ÔFÃo8Öªu žj‡ ™C‘Påã¢|«d‹ŠªP)¨­ÉÍ ¾êj5O—="ÙQ ŠFÀñƒ 3¼†ËÊ5ˆ5Z5-æ“ÔÓ¹¨\[‚wÛŒo?ˆ¥VìÈr1j®JåØu˜Øl’d5HqAD¥;i>wMÏ,=ŒeË%r£!a-¥ßÿVã q$Ó£ÓÙÿ GK-ËqN©à‹¬ ¨›ý.m‡y q¢H.!2¥¿‡^|•“qoû|eM“ß%„ùÃ,Éfµ©Â\y © C­£kl7·Øb¥ )¿K£©Ä¨¡o¯ª[@ý_'2¹W.Ã~€Õ*;R~jpŽJÍ•}C€Om­Š„ùÇðç¤5÷¢žÊuj¿qçí_$5ÙÎUi2»tá% Ê–àaFÊHWñ xÅ¢›Il|<Ëhrdy•(ÐPÛî%{,¾Äâ \‘¯"EF§&T¥ÄC¢êloeX\…\wa§çîC£%ÚMe„=!r›ŽV†ÜpJvö8VM’”NÄ(–?r‰šŠ?à ¶ÁS­jÏÛ÷Â’%?‡R£¨zBOl©fªcîǦ ÂC…ý2C©Q €nyÔ{`á›Kùpí=ÔÕPv ½ÂmØÛ[(mGBŸË {'ÂŒ«¹%Ù7$$‹{qÆ&`*›kjKB§“åFÛÿе-öa&<*s‰¹BÖÉ“î}ùÃ,º”Ý<ß^—,(­)#„Xì=½±Ùº]ÌÔ·äGý*/+¨R›s©7:µ_.Hä΀/`7iá …KJ$„õ–½VM­Üíaû`ÕŠd€ìäJJe© õ¼íÛ ¿¹'nÖÎfˆÈ™Êä6ň+XÖʈ#Ó½ÉØßœN(ë¬3œÌ)(‡Nú=M¤$¡"ÖHìŸ{c—+ÙPöe±6ŒÎÜz$®šBËK–Â(ì@<ÛÞø1L¥A‚Ò‘R‚­Ju“~nMðµ1DÍPTÝ9 Âi ©j ²M÷㓊K ¢£ © *Êé7ê;㜀´'c·bü&‘— HS¥Ï¦kRÐÐ:–ÅÍÈܧVà.m”:3•df “}ZŒ©Jy”:Ýѱ²MìÏ«úá¾±25™×yc¢æÉ ýJW€<L$Ç®ÔØ†•džú§u%© •„§›…ví{a1¹aqòâ lFÜΉòÌ)”)IŒâÝHš:Ei½Ž“pB€ÚæøZË óšálIJßéÊiÿJÖ’kíÏŒfͨ2h+z¡M}èkl¨¡‡ ›#{€,¯Û q+ÍÔÕu%Ýeí,Æj[ihÇ]½Dó¨øªâ`’ÆÕ6üTfœ(r–¥ôL”¾ÓMðO€çïÎäüý«ðÊ\)i‰9¶X» ”Tλ›+~±=ï…©1‘#æ`Öi‘¦ )зÑZ¶þ"Gûá^C§ÒdÓeÃnb[½7ºk 8…*Ä(_öߪ‡V$©6\ì –W«Í9GŒ_ŽÄ.šÊ‘êZn./n7Çe­ü¶çÏL¤ôÊÝE[ql QÄXÐÛKZJÖÎÜ‚yÆJ"žrÑKî=© K­¸’@J‡ole]˰5SU+1&…–Oªkiöß–R“cÁ"ßcŒ,¹ÈlØ)èk¼ë–J &ú‰"×'Œu§Ö¢×¾º¦×ÐRšQ>AäŸùŇU§;ð¥Q”X’‘¨)­@ž.›ã×fòJsŠ}.0ÊKë”TXi($m}V6µ÷À»Ko3e¤æ)h”ì‡CŒÅ '¢بܶ(u_žÓ.Ái& a¥Åº€ FÛ~¼`wiÿåÅJBã%JmàÕôkAÛeQP”'Ã),äË+f=?K©²].¹¡-Òw#Ûé²Þ‡’‹&$Ö&ÔHu¸ŒYHlöØ}ÈÄ6wÄlªÝm˜kª0·[p‚ZQ$ßq`/l}M–0d%Õ¨ÉêHBu´Î½:­ÀÜ}ư²hÌÏ‘Aàè¿`½&}=ø 1@,¯N£¦÷þAÞÝŽ8¿R§PëÑk2™ql&í¼¤é×d’8î;Ûôº¼¡EŠåB:âI-•<… ‹ÿå°?\C¾-\ŠÕ*\9m¶ÚYKͺ„¨6#¾ÖÄÜÓùþ! qn«š¦wjsf°ÒÛ)KަéNç`³äàœVhôÚáDZá¸4¼„èW:¶ï翾ZÌrËŸ(º³òÒ‡ô»6ÖËaÖ …Ô>†ØüøpÔùíV›¨&pœؤ]õpw½üík„¨ööc|Cj…ÐEJ{òlx ƒo#ú>^â©Ë¨¬;Õ rAR”/Áß·½ðGâ*sÐ–Ú T!üºÜ ¶ÔHÃS ì;Õ½÷íyv†ºoÆ…²§R% uÛ8åDøÛ¦©b06ÒÝW¥9R;e>ÖS%[ w¿¹Â”šØj’êŠäW4#J.9öç*¬dઋ1‚áJŒñpÝJ¸ã ÿ‡7:CÊHqA¿õŸÿÚۨƀ)q’Ì\¢f8yz¶$<§d´´(:±Øö¿ß§£77:t—åDDÇ–àC.©¥£cê$¾ØüVUvuNXƒLpBR¬CÎ( ›\Ÿ<ã ÉuŠa‡–اõ[o0J‹Z®-cʱ]Cìßf{unÑéžÓóä)Iÿ,d ݰ¹Òáäœ6Ò3{©ñzRSÅ¡Öh¶R´*Û…µðã3&ÍWÂH0j°‹+KM¸H+B¯~EÅý¯ˆMJ§*ˆÜ±62\S ²H6 …Åï…T X R@b½ñ"‡_«Ô$´‰Z‚Û¾‚G}¯}ûm i¶!%†Yj8JÀ>ÞØùú‘_ü.דÈ̦_AÄÙH¿$_kíŠ#?òÍb”êÚ¨¢ä nÅ}%µ¤ÛVÇí| ¡ˆòe¥»¹+ø¤ó g_B ¶æ2’·mˉ=¼ã f kÎ.Sì<âßM¸ÊnÇQ"ÇûöÆ×dK­×êòœˆK®•t$ÅA¾‹Y7¾ÀÛøÂ3TZ„îüµKgY Ô‘­*&Æþq§R²©&]];4R¦3 ô…(ݘ©º-k¡k›œäN}¦Q” R•¬H;qÀÂõ-Ö™€ÄE¥µ:K…D ”Ÿ>ó# ¤0ÌÖEдØÚæÛ{ÿÆ#›’Њá\žÐŸ£IT÷[r)h¨¬}‡žø&ëEú XÐ$Èw¨ó,¯ÖÂmü[mÿ8Ly™ºçFq˜ó€·.­I=…ûØcÄ8‚%BTˆÕ õEÕ„¸ž ;X/ïÎ+‰Vî&SýM \ÊpâëÔ¨mF«:ÜšÛJ}$px;{áü@ª!ö¡ÆJÚR4’â´»¶²îY˜r\س%1-ÖÚ=å_¨Zàþöýñ0Œxæ¥r84.;½5¥¥/¢¤Ý.6­ÊHóû~øH¨—êôÉq„d™îS§¦\Ò7à}†é«Í¨¿<§žn<Lu´îê)àþŸ[é3äWk’c1 • —C‹é¯ý@âçýñà F¨&â:Q³4Zn]ŒÛòÔ†‹<ÛéaÆ#eÈ3~"N­J«5$•)a—“êÕÏ^Ø÷U§¹.Tx1–‘¥M«m7àf–ä´¾ËÏÌE5†î‚ÿ¨Î9RjX&‰Õ¤eÌÂñuÇ“—å'¤d©¥tÛ'Λ“ôÀ*õQ¸ ZØqßY‹¥Zº  ¾¶8×uH2ä•&*•e4µ-ãq†º5J‡#Ôê*+«”¤ü´…´è­;Xƒ°àâÅÚ¢•#ÉËáÝvl\’*uøMuÝR“ÒÑúÒ¢l4ý½ð»SjJ°™R©Í.–d„Úý+ø'¿ŒmÌ,TãW›v=B¡è&4Þáfàxßlk…F®"–ÌãJˆûzÜ-›8‚MÏ=þØ“­Ã‘±Ùö5È©äÚSaÄ1Ml€Â]@:O¾ õMŽ©n½o8ñ6AÔ” VÈÛse"Ræ´Ý=ȱ !-*ü⿟¶Qè•33ðy[ˆ—ЩÉP=R;sô²*è 1[`üŽ?1ógeºÓˆa2¥^ֹ펪5ˆlà© `«S¥ËëP#Ó²º€¬üo2ÔÝ®4SHp¥)¾¡qÉ7 mÈÅ&uR´hß# 4pÛìû®(¨¿Oßj3sþDÂz\5¶’RÒâGknv>pí»2M5tg$Ç[„OðŽøÑ“ñô¢dó 2ÅD¢R¨­F ,(mºJƒQ[JÕ}ÈHµÏÛkóhô¬ï·3óc¨tú€(ÛŸIïˆÒ¦üD¦Sò+è¬4—V›.2PâZ;'JÒ«¹Û|;Ð#"­®§Q!ºªKi U–²ê;ÞøFU½É¹}Ll›> jmN»!jq·œA>®u\pžÃ:ÕGCe @a°B€ÒÐHñn®áÍrjg:™]X®¨‚ É‚®oÿwð£%‘#’¢ÃËYUʉŒºNzºª ¨½Cr£ÿm‚™s=U(’ÔÅM˜’éhl„0êIu$‹*ãoq…8õ7“Lj›|¡µþS–ÔQnÜñɰšrCræDp?k¡.%A*À¸áløcœv=…êo«IJc.šä¦®´‹lÚn| DÞûã„9ztW"},zX}2 `mëA÷÷ǵOˆ°$8%ªÚ–â$¡±¦ÖäÛ³M1¨“–õÚâ"…- °Ø»›lD±¤¦Â¦b‡†%ɧ³T©¿ø½4";vê)kÕüéÓý ©¬«J‹GâŸRœeÆu„žÊ·| Ë•:}k+*ªÐCaÔêª7”,ØßcÆ)tÖè¨É£ºô&VÐÔ•€âäïŒÙK¨êyrb‰mÖ³Tɘ—O‚ÛZW°Õ~ßY¢Q3¬2tŒ)A!Õ© ZÀÜo|'ÖdA«ç spo¨8²’xíìHí¶ø^ˆ©N-¹Ô»¥Ë€¿bGköã@5±¨}C(lÍA9ÍI¥MuBVÛÍ;pI7)NüþØjƒGŸR¨j-?w?Òk•,[øûbOC–Åcè•M§±0G¸†î• ~’\Tòþ|j\´EªºÌ6„|²”4õE·’½ðˆìu“‰ª½ ¦¯NÍqШµšiÓh¯X<Ù7RT8½þ˜ÑQÌÑ*¿êMÂuUq1 À—P¥,oÁï€yû;Pœ¥Qž)eD& ‹‚GéOþ^øŒQÒãuVáÒåÌ.­Ðó%U<»J!@ú·¹8¦5¢þ e ÇšDâüQGSÌ*Jt•8ÖàØ\sol\åW"åz§>•Ly *qZuÎÃ|H/R)NÔUê‡UD!ÅÇ%JsµÕm­ŒôêjLQ2¨âSk³1íêGas}ñ¸Ïò2â°ø­m{KpÕN’P§$$ø$ 'èpŸQ{7ËÎ;Xôå­JuÛ¤Üw¸ÛÔ|vÅ4êÛhn:YuI 8'ÎæJÌÄÅ!]D‚·ºdi)óÏ7Ã+"›A PƒDÅw”âL[-¥Æˆ·X²›ç}‰ׯ:ÕIÔe×`Ã.¨–´¡j@ºUqºŠ@:ÓsIRé1Ayöf) 6‚AÛpm·¾ø#I¡HƒLŽÒ¥:ä„6 ÒwZˆÞÿ\RÁ]¢ªjâ̓!Çâ·:{N<¦ ±•}!¤á"Âçë"å/>·S§Ëø«ˆ ‡"bn…->£k àŽ1Av‰=®SòÑpT#Ÿc°œKl¥©Mu}w¥${“„\„¨ÙRÅFµTÕš(̼œ¹…Te¥"C¥zyBä¨7{b]B× ®˜u : .%Fý”«m€ùút£&#l)S¤¼ j먬{omÜ~öÂ¥!‡)5hjd9QŠW[ZBŠOò¤ƒ}>ÖÆ„@RĂڕ\Ú—•¥K d—Rã-²zÀPÖâöµÆÞøL©PÜ‘:ªÈv+ju7$9pIßèpÎæfKnrƒSžøeE”4ßñ‘qk‘kVËù¦«œji¦M¥JŠìt‘5åµd$@FÿÆm{Ø%XeW( PE£>`z… &\Å1ZlT ôßßé†ó¾Peˆ•C›CKo„”€J¿Šö7­Îaå(ÔÉ/V¢§«U@º5IÛm† IŸ.} 4IP”š«vM+S6‹’n6ím¼â{Š„‚LAg/®¸º£õynüÚfƒWJ›Ç8#F€º)QßmÒXGMNº€C¢öMˆý*”ñú¸YŠ“8ʘ´L/…uWz;]$ßolaê¥&CÕ |çB—wã$‚Ÿ€Ø—Z slÚ{U SÑäq£mŠ®¤€n¢‘¿nG0¹M‹ ITןºQo•JÒ€›@îûâ·MÈ•ÇMY\˜ôâàÖ„´á dO$ÍøØa.bâåOˆÒ(ó"³6¨†ÂbÅ”òI€¯6lpË`€d×QUܹšÐ?eQªo—Üu-!ðØuô¡>›m÷ _Î3¥Ê£ÒhÔÜÁäÜ~Iq´ë \z€ÜûT©Õ˜µgÔyAAI"Ñb6Ù; î|oã]¨å§ K\È52ºí—AÈ¿|ÌÚѶû4WdÂz‘—Xm·#í¬Rp•VLrtª¢æ-ØÍ0VB* ·k÷ƺ½M‰ðœRŸiµÉPè¬êÛkûazm cî1ˆÒ§FL]ráGMÛuWØ®÷>æÇ~øLj¿õŽÌ@ò:e=¥ðÆ™øp£9"[!Å¡´¬“¹ºÅŽ¦Ò R²`”í<Ó -)ØC·qõÛr{?| ¡|?yyUA*žÃÎ6YBÊWȲFûìqƒ2dgeÑi´¸Y±Ös w®úf¸zkE¿JOðøâ¡¹˜æ¡U¸ôjgÂÙêC²U5õuz ®ÉöHæÿöØVËQëõ*qqÖWÐq ¦\ Øiw¹¾éôúµ5æéÕzLwSeêR«õéJö°¸ÜïÛêð+”¸Ž•¢—¿JPÖ½$žwØôƒ¡"hRIŒo† W+NÔšlÁÍÉ”Téu@6„éߨŸæçÛœ…ñ6ä|½>T˱j?$µ,®4hð¾äqǽ±Ÿ,eF©‘Û—V¨ÈªÎ_­Ù¼¦õØ ,=€#¹Îš¦\5z4…Dš¦úm%[6ꇛ±óŠ·å3.ŒvÀ=ÖjÏósÆ^ÕH‹6„–ÝØò›Òã §QMölF%©S4)…ñNC¥Õ©k%çô…^÷¿n0Ý ©Pà;6e@Ëš¸éKá¿ôµÞçJ~»`EfžõLÀÓkJ€ëªq  $ð …ìoÚø‰ Üäº W±4ÌE­ u¢a‡ ºz`¶êëI¸²vî0Íó˜ä¢D)JC*n×Aîyã¿öÓYu"_›n4‰ ¦Àh!µˆÛÏ{b_¯ðŽnªV£T H-APMÚ"Û)*µÓeoïß UÄQMs»>}#EMòÍ=ô¹!À}O”Ø„} >Øv¡åVÝÏ1k"$xŽ\­×R½"Ú@>ÊçÆ Ö¨Q£ÁT€—U¾´¡W&÷'oýãè¥eŠŸáðYjDwuFJŠÊu/ockã;åmuŽq(ìóPÑ ?5Æ % „‹a77ª< ¬‰ÌN\6ÃÈIùrSêïä}FsiTå´ÝAA‡Rt8IQðGûá*Ja²Ñ*`¾íÊn”¤}15O.(6MLQ>%Ð(™Us«¾ ¥IJ7l)?©Iñî0×ðö§CÍùŸ‰4¨o¬¦  ”:Þ“vΛ¤«ÛŒIã³5æÊïÅR©Ñ¢ˆÑ´ ¨:BŽöì<`¾PÌÔÌ—ð ѤҔ¹§¦~]id•'k’,?ÛÙNÃNOO'Òµ¬Õ—j¹jCOOLD¸:¡ã¡L«ÞçŸl|¨ýê—Ä€‘2,Ê[êSiW@âÔàö¸ÞØ~­R©®QTm„:¶›Sˆz‚Éç{ÿ|K›­s¢2ÂL%GçRË}P·;âÃÆ#„€¶§°hCGz¼H”œ¸(¼¹’ÒÞ’V ¢€Gép0ƒ6„Ü„ T˜2:i Rˆñqý8Ã#$HJ[d6 œqÄ÷Øö†Ôñ[º@I$ûlKö°û›— 0è‚þQó Ÿ¤ÓæO‘ž„j[Þ«R{(ŸÒ£ßl5ç<–ÆV«Ï• ôK‹)Cåa4 ­}½)ó}þñÃ,™Ô|É*·R–4½ÙW[M­Û¿]K7Mü¡…ÈuFå$›é#Åñ§þ%®«ÙœáÖâZ#éÍTÃ9×aVÝô†›IUÀ7!BÝÓ‹s4˜Õ&[AŠS;iPôªãߌ|㊻_&9Øt['\u-(Ÿº’¤cäDå)èšBtd1Øsk©6˜ì©áÙ¬«KI:´¨>–ÃÝ/üK7,=Er;3ê•O[}üùFšj(b TSÊ©/Jõ úÁóccŠ¥!QaCˆ–S¤‹°òGlS/åxBÉ* ’*6Z .Ît¥+ (é¥gSi¶ÇöÛÚ•'-T“!ÙO® ‰ +¦¯XB¹·¿¶*9²d(ô7ª )(|+L„›_ì?ûÄA—Þ™¡ô®D$: O©‘ùI>G‘õ g{J¨ÞÍd¹—¥Sà8ò¢<î¡!Ѻï½ôóÆÒ*RcfÂl0ä•(’£e(½Á¶øô¨Õ½" ø‹|>›5%)ºvì”ÛÈÇ Þ‹ŸˆˆAÉmÈë%N§d›ì¶!ÓB‰ñ:ÇiMÉŸYr{”é þM–vB‡ Ç*SЬSë Í €Û«W­> OqŒnW'Îmª8ŽävÔŸóHi¬&ãj1Ú§·tä†ÑpÚ›°±úsã-\ ìC• -¸òÓ¨>°éþƒß qš¢ÅÈj+[ TÔŽ­”à%jÞÀ·Û+H(%èáô:êÒiBÚH6ã›áN}6$YŠ‘&C޲Û: JÂ/o~ø ÿ™ñ3¬ªØ˜Ê*:ª–ÃB¤ûo¡iCŽ”t…ÿH¶Ê·¾/~Ÿ˜]–óµ(Â#kH-8N ±ßï‰Ä јd¡‡jn~[Û;•ÒƒîpýJ¬Ö!A}‰¯© ÓºÒFÛÞø”M a6y4×)0œŽãnÌa™kIÛPWÛßì&lȲi®Áaë (-à¯Åüãuo¥àí9OLCÃQqD€ƒí}¹ÂUø~âê5ÊíJ¥2µN’P·)*¸e:o½…ɵý¯ßò«³"µK¯ÕåU–ƒÇ›H(F‹hô‹{î|áÞ™UM5J ªHaM&ÂĨŽ9ÿl[+”4>ä±ãVùNS[<„-6Hm¤7L£M¤C†Ø™SÏRBÕ:KŽ6‹Ø$p=Ž2Æ{v3•*Gà2HHS¬É’zm'~.MÈ#q`pŸQˆåk0)«;CêHS¬ì½Ê’{Û8@…3;•šû’¾“ˆvÉRZU} ¶æâûŸF¦Èb¢¥-¶”í0l޲ u¸þ¸åI…P˜j96­Uy›|-™)QmÅ5Îöäö8k©S"Ñh¥Äéy¨í%#rØ]BóûŒ]‰‰ÒhdMT¶Ü}6°‚«À?óõ,·uv8™fBt­¤€”ÍÕüG tyH®Æ”¥°¨Ì IZ‚µŸc„ö…Ü.[`X”!@î<¦©Å4Ѷ‹–à=’ ˜ˆÊ™ÕœK¾¥/êßÿX\ÌTY™ªŒËXÒ Í/¥#S€q~ãØ+ÁfCyú‚\[’^)[ÍÉ’KJEís¿Ž@Å€æl—LÊßÿmMj\„î ^•¨nßH¿lUßíEÉ1eöBãÃHe¦d4ìt´­.2ñÒ •C¹öÁZ”—ŒtFŒPÓ©"ɵ½»ûãÍB¨eTe˘¤­÷TJƒkØ_°öÆw$°ŠsN]M6O¥Jß¶g$Tª…"ÌK€º]NjØŽ¹>Ú’ôb6QPˆ6ØØ ˜ì©9V›$Àvž4°Ö’BÐ×somn¥ð·9¬È¨-µš7ñu(Û‡ ø´*dXì½”ÞB†¤iÛQ±øe­g¨Ÿ¤Ei0ݧ®*Ôà¨O6Ç ‚™LÊòî%a¾¢ •q¿o파ÌO㨠µÌÉ­¢tºí„FhŸ•HüǬ-ÍöÂÍK7e•üiˆäHìÌyøáéŠy$­¿QãIñ‚µ%S² yqa²ÔùÉXHQ{‚{l/…Š8ß)Q}gN„ê+tì .NÿRq©4$Év¸Þ!Q¢¾º’eÆ]Q*@_7ð>žØÑ— HB¢Q-ÿó/~S2\ íb›ì†òý—6«*¡-‡ O˜Žj¸IÀð|á’ X©¾ôe2‰ ‚¢<^ãcÜm‰¯%.£R§)ÒÜC*%Ê)O±ý±º—D¥LÊ‘ª É%ã©* *ÚH&ü߯eLy–טRÁKh²ä_caÆøß mf o確րî‚Ò·7W¹¾øƒ‚DBÆàJµ&ƒM¥T Ûï®ëu=÷$öÛé„¿’‰N¥ºäud•¸ -Ó¿‹aλO‚m¥+\ǧ‚77Þûí÷ƒ¯?K~lFEAÉì%½.„°JI±±ÜXŒhOâbMÔ°"5-O6["úÓ¾£í¶2„EÔª••4•t%¾ j›Ü1¡ÄŸ.“ŠýÚ1iKÆZ—Ö@º•{‹f[©ÁË ¢Ul4R¶–» ¤ö!\+é¹ÀȬ¶¢Ue³ Õ =C¦õ¦õ¾Q£rëh'ÓÅ”û‰|ÜÒŠva‘R”㊧²“©µÆWئ־ÛbqGÌy—ñÇ\4iöÖF°¢I=üâøZ¯‡t%a[þÄb*ÇÆZ~9+s{¹†•ZÈÀÂ.¹&BZJ¾²‘èúïÜa/d,Ã&Pa¨+pG’•¥ÆÔ[qÄwAJ·¿ƒÁóŽ2%99RÁó…O§¥,•!*iÏøûW*T!Ö©F{-6½m¥O4:mÒn9¢-0~Kœm>ÊÙ„×i²©T²í:u4–%ƞʙtZûwPÛœ+çL¡P«ò›—¢ƒÓPŽu¦ã€IóÛlkø³*¯òb͈†e9LAiæ–ZS wRlN‘Æÿ|*eŒËX©®MlÉHH!IºÅ¹BÇŽüûá©Pì!V,¢~|+¦š\åÃOËž%§œ¸IØÀŪ·J¢×P–ÓAç)R.­ÇÓ ´˜Í˜ª!¢’Ú.•ØØÛÿ.pfBV©Ì¾ã+ )Øí¶#‘ÉŒ ­ä&èÆy‡‘NK…ÁÖsR›#aÞÖ¶(y]æQ‘=¦†¥¾”¶à;”$v¶g ­É…&$§Êg¢€AJ’ÉÜþø—Ñ«1BrRÔþ˜î% ,x'kc•vÄ­Ud¦—T‚Ý:ZîúV©-¸ñW}€Ooß…"«ŸÛ«Né-–YK €ŸX7Üïß ÒÓ‘šâÌ—6 4µg£Èµ «&øª*3¨¤Dyn¬6êBú …»8~¨ˆÈcü©´Ö2|¸im…©QÒ•¥Í#R­¶ãu[ßúcç,á9èÐ oÓ_õéR½:I<íÛͯ‹;ðeHË ÌKšaÒÓ‰ºÕ«`I¾"¹ÝôTkè¦iR›ˆ€€R²ŸQÞãÇöÀƹÁHàŒ™ve-9©¢g0ÑЂꂔÕÅÂþ8¾«É{8ÕHu©o4ˆ®:¦Ú:HÒ6 Uûwõ*ìäOÂi2„âÛ³òPu<›ùúã쳘äL¨UTfÙPV¤Zë[Øœ8” üì—2ª„z{.;ó3Ë! e¢ ÿð¾àÛ ’³ MKe„Sœ§Ây¥  ¹µ’®ÀÜìO|yÌrã*«q£ÈDbçç,8•\n@çÔXæ¹QŸI‘É0´;Pm© ^Ö½÷ßYJù«B(/ÔiPÐÕJD3tõ,t­à7 $qqÉŸV˜€Ô‰ <û.6[t]+¡ÎÇql} ™~I¼†”É…Æm)iJÙI#k¶!5ד”&)1_}ò5tÑʈÝDwãÆ äCíAЕ±Ó †Ê)Mú…áüýqôÃ:µj·—§R©õd)Êz”^oóBT7ôˆ{{âA¦×¦7öŠ)R.…¤êÐûqoÛh+«e?Œi̭΃ m$ër>þ‚}!ÄÛ`<l3ãš"àl–u”,Á‘ÑG®¦LüâÌIÒDyL…™>­Àº‡ôp:±Q§Gƒ<¸ü`âºHV•qm¿úÇZÔ¸µ¥.d™íÕÃÀ¨(: ÞÄÿësâe0ëªNŽi¡u!ë8î/{xûàa[ë<gÂ)yÿ$5!ètXi»H»ë!D ÇnHÅ:ȧ˦&™PSIvC‚í‘~÷ßïÆ#Y`̦Ô';SŒRÂ˱×)*¸ÿÄïjL)Rê9‚¬•6µ"Ñ]~À‘nS89Ô±*•­î@TŽÂZŽÛ=E]:O%)ä|/f$iÊá¤6ʧv¹=ÈïmÄwæ“.dÙPXJÁd!z FáGÁíÈnÊi¶K1E(7JM¯¿œG[{¸:¡×‡ETvY %˃¤Øï‡4¦3rԦĹÂå\Á”Ýü½Õ¨¸S¨#½À;cú}Z½Q¡­¡Æ•ÓbB½$’8ö¾"eÓ0(Õ*©…˜Ñ.”¹!Nòšh¬ ƒm&ÝðĘÕjå^œå˜ð¤,)t»àmú÷ÁÇèïP§.…QK-­¥•)Õe_p¤ÛŸ®½1útÛ„ê BÐ-¿‘Š!Es±ŠSêÍç7¢LC q“Ô%À57¤Ü«‚ Å'-:ô˜-OHé¶TAJ•q`m|N¥Sê5ÜÀÅJRX–¸Ò,HТ…éVûŠayŠIL( 6äI#UÛWéU·ûàçnÞÏ9‘ã6DX¯ºÚY\„‚¥(Þý†ª4ØÊ®>ÒÚB¢ÆZCL^ÚUmÈãª9Twð‡™ùt¸°°¥ƒ¥&öãƒ|r«Ð *l‡@™%Æ[HÒQº·µî9Âba­\£ÿ™ûEŠÄŠÚc¥’‚\N“£M‰›Œ0¼¡/3³EƒTøúƒË*7RÏsôÁ:5ºoÃÖdW¥-†Úõ°¦Aê ‘r ¶øldARâ©çR”¢·O$ª÷½¯…$Ôìl?©®¡G£D̬ Ë mNðU‚“qpñÜÉN‡DPË®ËWN›X’Û U¥ÔÿêMõ¡8IZÙN¥ q¶9ÇLÚ…]ÄÉyÃ"B’H B»ñͰÚXÚù85Y‚¦¹=90ó,°â58¥$lNÄÜ}ðÛC«<ÆSU<±÷Q ¸êì¸q¨ÉŠñ†ÛE$Úãï…Z[-F«Ei*\~£…j76·õÃ.mgðÔ1"Cå^eÆžÓk¥vUˆý±Ÿ-†M˜‚)ñœ5‰+’rÞ–b(›"ýÏuaªa)µÕii)Ók“sß–³ G#G{£!d…>lKv=»_ä­tÙqcJxºÐ°žmïm±™•ÉØ™°2ø'ëTùTÙ²×%ZR§J®VŽ×÷Gv¥T•9Ö ´¹­±u$¶Þ£p8Üó†¼Ñ˜"Õç1IŒd’¼® À‡N¤· 7‹óÜžÿ\hýß®‰7øƒ!‚±TUq‡§üÌF›l,|Ã! ]ÿ†äoô½C©\øŠÄWÚè à ¯ýCãÛ¬ÃNjVYæ4¼†ÈRu‹Y@ö8HË‘#Ëø‹ZÜéêBS¸Ô;ÛÎ(¹ÃÕQ††»LÎe¸bBÑj²W•:6ô$ „¡ )»© Smö¾øóí¶¥¤RblüH¾4@œ…¾n’ÚBŒ‰JIPz€ßclbW…SÌ9)blÇV¡ä‘¥$žà[6,É ŠÎPõO0&-MõI†Ê.ÈJ:d¬ò/±6Á]pá×ÒŠâ«%µÜ$AÜm¶¢ü:‹O†ÉrjÝZT·ô•jl“Èð0‘˜!°Õ"{ëHj2.¦n•›Ü‹ ¹÷¡×yHŸ}æå)O:Ãý4¡*áVïößã0Äj,xÁöЗRJì¡¢àúAíÆá·5u'ƒ0¦¸Ó‹³ÏJ”éZ{»óíƒ-¡_1hpÌÐTËr N°O>wÅ™HûŒ®5ÿ0þ^ª.„üÈñÒÂD¹@’…IÓ±µþ‚ø¬ÏiºÏó÷)¦#m]õ}q's-A¨Îa™ÑRH@:JˆæÃ¾ þWj*œíAåAJ´!×.§T“À*µì>¸íC`,t£Þ«Q'Ër˜•C˜üp›ÄHõ¡Ø©<ÛöÇ(9_,Š˜”àS²Âµ6Û oaÅðW¦T« G¤•VBu%Ö5%÷JÄéÜ‘ýq¤¢OY‡TÔóQmÝ))O¬àÞÛûc8S°*`RŒhÎYž¡F†Ä˜nC“ò’RYBRWé…¼»•i3ioIžóÊt¯ò›Ø„¢ÜçÞøëPJÅjLª‘êÊÛJ]¤øßÆ[£®‹ðŠvhüZ A.Guádƒ²l"÷ÚÛcRPCÞ™<¤FCËÌS_›3-/”6u¥ÁüŠ”‘ŠO00¯‡Ó žŽP)ÁÚÛ#eêÔÆéérKeæ Aiu(²OcµþöÇ–ÌÙõ¤:Û"ß,´ÙrÀ¨ªöÛc~/nq,€³Sv¡r¥lr~åZŽlœ‰4™å†â#[r–ò\BÐ,s«P$v#©X¬f×£Ô"*+  XyM©ÕaÛß\§Î÷Z-Âz0жZI¸<é6<àBR)3©uY޾¶ú½Ýhié’.Wí‡Ø1 $õ*´cÃY.-*BV§åÉ ü»n¼Bö;îq8‰Xƒ6 i ënºÐ.€«ÿ8f¬UçUÚj{Ì–`6 gK¤€Úçé…ò¼ˆÒ›Ì丒JRl…[k„Ø=Æ9Tv2 EJ K/¢wÃÇäÆ Èo§sÒçM­coú1+†%Ån-ÈÝémL©I}ñI£Iží.lŠoåœRzˆl¬÷µ°n³K\H‘éÐÐ5ÖÒ¥- óÍÆ6#‘Ü DJ¤¼ûLŸd¸Xªo¼wPHÖ•#mþجÔsl¹¤ó ËèêK*°µùß Ö¯M‹›(,´Ù†¦ì%8Ö½€!^Ûr0Ÿñ/ä]§Ä©G ZÜh4Óè ’n4Ǿآ‡j¿&| Q»%V¡N§®)ÎE–ä—÷M ì«øÁüÖY•Ö¦S©iüÅúEÀß Y07M”ßÌ.ò (., ©C¿ÿ‘þ¸Ó™çkJ› u×)û½Æ"ٸعÛšÄÕ-o9ÕÖ›ô™½ÎÛ _lM¨ *4lÝ>³ùˆù‡µÆ »KÔv¿¶+Ùvƒ&¤ëPW!Ùê*åAp@ílEW¬MlÉr5=Û´¦P½aHÛ}VØïÚØ®,ºÜÔ=_Ô…Ós$Ùy‚ti±DDXB–N¤®æÃIö¸<áÖcð«h°bÔb Ñ+HNä§û¦)2éÔÈyxÁ§S™1ã$ ¸@ös}ð‡ÿݵ¥tÛˆ· ½) Óq¸ ¾ørØØÚòMU…OÜ›H›–©ª‘ÖÒ ñGæ›ÙGǶ-±ø4G䩱 ¶ËÜz•n>¸DÍ1èµ¶¶¥8ãîï©»•(ÿä6>öaW¤UóŒ)‰æZZÖáºJÀžàây›2»kÁR%ˆpV‰sBj:d8•,_ÃàÛQM¡¹RSuÙiª<¡¬©å…ì0‰RË.»X©¬:‚…ÈG}.½¬?õ†ü«L©U£Hj©*­BÍù^°Äš%LɤºÒ–§u°êY ùkaÚd£µXi§&ƒ!Ò’ …ÁµïÇ`®Õ)b¦Í(ô%J|¡!|“ùÃ&B=2ƒ^­Óæ1 &^„º½]÷þ]–5im êRÕ¸JSmÏ{‹cD¶«Ù’‘:bë!* nÊFžÛ^øÁ’©0òôš“tšHvº©«.¾úÔ[Cd’BoÞÆÂþÊ•$UßD¶]Ðú‰RŠ,¾Ý­‰f š¡þâ_ÉÕ1¥ÒÞKÔ÷.—–æËiG•_¿Ó¶âRÜmEÙm4ü¸Ä¼ÃͰV‡;‘kûl}±Å«Â”´FmÖâ¨ÝMÛVÞ;b§ðï0ÀªPªPÜ ­¶J[t £ÊT-Û¶°'OÛ÷þ!ÐêJt¢"Ý€îÈ¿Ðýpט£H“!ø¬Od, ¡DÙ@ñÇ?QûâW1àj3¡<âd<ÌdžXaW($”’¡± 6N«SZÊÑ!!Ù@¥2•¥¤`H*ØÛ‘ý0z€Z ‰NM§&T†’²¤´o¤(ò.{{`„J„dëe×[Ž»é)Z¬n8?|ŒÓ²+“R¹Ž¬¦ì[ªãbyÇ$Ó ®‚ ÞbùiÅjP?\ÄnÉš_ó8¹Šz˜Šâ‚Û߬ѱl÷Žÿ\VaÍ ê³äÐkjOÿóL™ßMÊ•¸#ÿÈãÖU©·L~¥O DyrÖ„éÿ¼_¤8ÚœRæ>܆YS®ßÓͯûc‘Ÿ‰&Q”Y%v©TÌ”ô|FªIPŠûhi Æim¡Äj6±7;“¹ñ¶:eª›Ñ–މå›a¿P'lv©7åP©©n%:$P}¯ZP7EöÜc3t÷ãѵ´Ónüº)6Ô<\b¯d÷‘qcFŠvj ”óm¨;wßµ<ù&Jƒb^’´ë:¶L$ÑeÄF\aXOx¬¯RÉ:¯{\ñôLJ!Ôäf$¶!ÇTÈy`+¨Aõ^Ûÿl&Ù¾ks¥K*Óqd¶†uëH%WÇ ­ª•0˜-K`½g–“£I;ì;ÿLb“O“P¦S*£„‡ $￾Øn©>üúµUòÒ”˜©)a·GPé>msÎéU|ãDËlçT•)‰N+æ˜eðµDUïÞÅ'Ø{bØê‰2`ü`_†Ss âK1[qÍ2–W)¤·p… _XæûóŠ7ÄèuZ¼èL²ÒUCëË}'{l v yV QåBz¥*¯.;-T_&B[ *ÉÕãñ¯1U™^TÓJŽÛ%£Ôq%?—oâúÿ›dÙ„˜ìÉ•yˆñiÑä¸òšŒ”„…¸“oµíïífsK«’ÒÜèGhm÷ß“ôãèSk“ 1Ty™°]S…—mr´msÜlõ‚•ÚLJîj‡ ŠžZlµMWéAý…÷èjf¢ÿµs^ª|½nª¤&Í„ÇC+õ<¢?Œ¶1æs óyZš˜QæÊi.¡ ]e<§qcØ~øbªdZŽZ£S×+•f’æ¸é$%|ðxöÀ¼£S¥»œ'ç'“Ïj9Š·Ö‚Ý¶ÒIµð©H¸ÇN§3N¢±Jq]g£BLU:Ú}`n Âç|1eÜE¬!fs%UiBÖ•ÚÝÏ¿× Ñët¸ÌʪUd˜¹XÒ=K¶ÀaÓ/ÖᵦtP¯—}!aV#Xí~ÀŒ)Ú®¢óˆyç*ES¶Ó+.ÅsQRy(`-Æ2ÍM(}Öã6ÓöL„h³© UÀQçþœUs¼™YÔÅÁäD)2Áê §­øñ‰ƒÔ÷¯&z‡Em¥ZÖØ@ÆýðᎱÄÑ› U¸4Ø3â0²ïù–½#‚öÇZ£­æ:üvš”:[I]þ†œ·ªÁ?×k`\°ãpjS(È’ÝìQt¬ƒüW&ÁX'@P©åW™¦¸›e%”ÉH^Ûë=Õç¶(BôÎÖáö™†¸2Š]y²z:TBSýmõ¾«?‡Ê§ÈÐÚžzå YDð6·|Ë9V}•Ð}×¥¼—Oæ8¢”¨«‘¹àcJ••ñÙZ »¤*;‡R ¿˜lÆ`L_øv+‘s ÀŠdçc6Í®­…Áàw÷ßo|ù7ŸÎU)’Y›Âæ²”#P'°úa…ÙÈñÞ[k1æÈô°cxã·Ü[r¿^›HžšŠ¤IóŠ)T£ê+Ü}¯|s¸'úŠˆAìxò¹’€)µgÛj» &,©Ö¸I ‚\ãnà÷j³Œ„>ìYT’PÝÂT»ó,U™¾Q“*!5êsë³òt­‚•ßû ¡¹¤·Q¦B]An8ŠrÓ¡æÙq][ûýðj™˜ZZؤRX©0Èy²«¶ÉØß‹ûa’T†U NH§¸ðà)Qò’F'•†—|TÆ{¦áQjýe«ïcaÇ‘Š.¯ü¹1W²üÔÈüù_/ : 6HÜíõÀ<Úízâš[ì–Ð6BÔQ¸°Øð0½rÓJ}.¸Mµ~¶”¤ëó¶Ѥ»óÕ&Öûr$¸”©²µz¶äˆŒZµÍì"·YÌQj¥)׆¥&=Ô=)·$Mñº•ó- >_ë4n€oeyL1Ò¨›šçLŽËp£é.¸©!Ï'b]EÝWêòxm õÁinæÖä›vÆ C5tÓ^+­2¶Amihú@ìI;Üq€Ñ¦ÉE*3‘‹Ž9þ›½EõÛÆPs´©uúýkM´)Á+Ž…‹ušµˆãöÀUmN±š¼œO§Ëˆ\/0Î’})Hór;ùÁª°YŠJ̰4éãŽq‚¾Ý)ï…ªÔˆ‘ãÏqÍ7“cn÷ß 4¢åc&¿--%—ÙF«»¬0ÊIìJ0üÉ™ñ`Ænb¥¸ØC­–?Byýí½†*9®8©2¶Ë qÀÂP…„é7îqÊ1ç™P”ëÆrKF΋ [ÚýÇ|P_Ì•f²Û«›·ÝeÑ¡ÖÖ@µ‰ïôÄÿ$ŸØ•ÅŒÁ£Í£4㳟IN¢ê¤[µÀï~øñY®Ã‰AqÉI[(Êm¿ßŸ¯Vëʆ¦ -º:®dº«è'°¿}ü`‹Ñ“-Øà¥"Ú鼕£qàû`„7fQŸ”&l¥=™Ì‰†h§B;ssÜâòÊt¡N)µMýû}0›M‰*æd™!.±-qC6H·!DpèèRovôÝBÿ§ßÿ'¹._ ‹ùŠSAà¹7åS,”†Çê xå…Ä«ÅvçÙqƒvR{½ìÁÇ á%Y“5ÃE9"zé2–Òzˆ]÷ßl«SâS²0o1È"`He*ÔAM¯úmýñ¯ UEû²zÐÿøž^ŽÝD‚ćK…Jñ|-S'HVq ´‰ j-»Á{ok¦ü+ Ùb„ÚómÊ’¦Ú^¥Æq ¹_µí±·c‡èùy0ªËLuOú‹'sÁ÷Äò*¡£/ƒgjnÇ~¯&5>"Ð.¥¾½?PØ\¥ÆIÍ«®<Õ™x•»u.;vÃ…J‡ª“’úY*RGLÙaI;ýoÚãzÔº¬¸¬ÒªTÙ4ÇŠmJWå¯Nàmíß°c,*C3%?4|A¯¢UÄaH‚êÂr3N!'‚IØ[Æ×e¨“ Ÿ}öBƒˆQïnøÏ•a³HË¡÷ã"so(k(:ŠJd÷ÛlÈ–ÖêCm¥V=7öÓ¿ƒ‰9 @#âB㦠Ë5ê}^ (ÐÒcNa‚§KÖ ÞÄûÛ‚Œº·âL? Ú³oÝcR’À ƒo`p=Új~ üË-u–­/ÇX¥þ¤øWÓl?. S“®"E—ÛIò-ÇÛ ”ªÝØ1£Y¹†=M23k(}ôEuHô¶•~ç|‡'üºÀKÊ­IH²“~Ø>,'SŒ¡ 6„’²£¨çéí€ÐžÌsáTˆü9@¤<Ú‚@?ËöÄ(Ÿñ+¸YwøKšÜ…N."Ðí@¬”YIUÿIÛLÍ—Ñ™¨2³,!ŠãœäbÚ×&ã¿¿||SIs0eoˆŒ»5”.Œè¾¦Ï¯P;]'o½ñi™ñ“&§ÕZœÓ d,úT”+oÒm¹7í¸Å\_ñ݉"̹‚TÜÒ‘T§“S¡¨ÏÆeKZTM”’EöÁÿ“™Oƒ-µ—…)òmÚÚˆîm†¬¶í&¯F”`AùháeÄ4¶Š ¼”ÛkûàÐJ%%Nt]-´ è¸.M‡í¿uªYÎÝ1Úl)TæŒEŒl.›¶ÚöÛ ôztȶ©/8ÔrÔµ1µ‰&Éûƒ¿× î:Á¤ ¢ƒ´§téFHIìT6íÿÂâàO³2uzQX*^½@‚/߉®I'MÏ¡¨QÜ‘|×[ZZ}ÂXê«Ô ;ØbOR©ÄQü2KqÑ—Õór †Ä+d}oû{àå+:µFÊ ¤ÍJœªIŠà&Ä5mqõ¶'5 zÃr* ATøÒÕy…†ì6X±7âØ¾ÆÈÄrQÌ4Å“¦Æ§ËBE6Bëˆ y÷ßlv¢Ý&–ÚúèM1+m¬'{Ò<âÝ.m2…åÙ1_@V¥%m„.nC–Üœ;³Y”Êš{3SØ‘ 5»q’V¤¨op’Mñ£:'ªngÄæ»Ÿ§³¬Íz$¨Ðe8’— þ´v°œ“›iòWòìFše°VVÆÿÈì¡ô8ŸÉ¨µ¡åÊy˜R€Ð&ƒ¿îïÆ Ezj:¤É™¨´»4¢Ö<_‚1™C<•*=¸2/#׃]5éÖ:ú¤²ÓÚ• ro¾3r'ȇDf!Ð €˜À J/üJ Û½°6F_¢V3º«Ù~­>ìÌ*}¦¦ã•¤ÿ⣾¿XSnKy×YyÀ›„ÜX›nq«`ª ÄÆ›Y3XÑÓ*S’%*Ž+6E¼ Úã .ÄOø…1°]RBÀQýbÇk}°}in?óQj#ÕZQV¤ ~|*J ÔâK¦En©$ÔPÀD©.$›ßsûínp˜ò£7L,õ*0§CÊÌÔ ´ÓH)Z–›ï¸ÜbKNœ·³}qtǧ.,©Ñ©:P‘`EöíŒYžúeE^D™/8ÚT¢ ­¹6âÖÁú$wŸËôø¬)¦â@ë<›¨ŽûwÁБp5)cW©¯Vا%Ó Å¨¥k‘¶£ÞþøA©È¥ÃÎMRà³>L§ÝPuØ©*jâÇÔIß›`ãy|µÖÌàï\¤ˆî®Ä8½€ãä­ªU~"êH%Å,5l4Mõ¶‘¾­¾ø¨"ïKA¢Ôeך\ªz!4Ë…ISª Y ïnßs‡tÇK”÷’ÍØŽÛeA .ÇïõǹS*2h¯«,Ò›ÒRš’©›!@ú“c½ÇŒ+3S¬­•;DRYXB’ê¶ÓaêM¹Ã=‘B¤ö¾Ï2ÚyÅë_ϺÓíÙmÅsÖ߸$sŠL9f&Tqº‹Ï…2æ‹ÍEÜZv±Q"Çžp·¡SÉo%Jn!ÈúÒü€d¨ìnG=öÀ§¾V—#±U¨FœXh8”“s`û;Û. `=<—XÈp(‰¨<üBΰPû Ôü?L(Us-­”*LÑ›\˜iqh’ãÈ-ØwHñ±¶'5Y)ùu¸•Fš\T¥";id•)Âv¹IãÅ2Üg\Öè”A'Ž9Æã4z$ó-Ê]Gâi¦H©‡©q«†öK¤›[Ü'Û¹)j–”7)Òä7@JUr âÞßÛj²Ù‡Eüb•*êŒ}6ì•*ß«>øo¬ÖdÖ>Bq„)KJt…X¸6ÛaÇûãsŠú˜XޏrõIzj%I&#ï~¦î£²‡ñ~yÀŠ‚¦Ë¬-²ú)oZõ#M‡Fç÷Ã4Z-rM eN£)>ÑRc­èàiH±ýkï€Â{psÃÙz[†MMĤõÖÏL”‚›mmøÑddCÑœ¨Õ‡ruj—gÄ]x)u×RúN­¾ýͶ",ªže‘dÈÑÌn©l$•¨’,A¾ÂÆøù¢¥’ó+Õ'aDŠšÝ!šŠŸuw¦R¥ÞéÛ ±xr± „ŠCÓTý&CíZ-¯HjNݰ2ã 2g.ÇÈùÓóåB‚û¡øèh»j”[fSél+RŒ}i°Zkí#뎕鴚üö&Ó¦þUŠ…)l’‚‰ ¤ïûÆ¥U×R¢оz’ê­Õ}Ô!dŽéTlN'úØšš1…)/Æ…SRZ.¸òÜPvV²[&çÓì­ðÄìêU^‚£´¨‹`uu/ÓqØŽ-ß½üb`êdR#ÃJäSРe¶¶HÕ¾êÕï‹1©²£Aõ¸ì'Q+ ÝÄÀ¿`Øl‹¢ðÅK$Üé2—#P T¥É( Ê%%)R­ú¯r>ØÈ¨3Û”§$Ë@ÐІï¹Úø-?0Ã¥ÒãµF`L}Õ[¥º;s{ö6ÀÃkuHm¸ÜäSV°*P¾«î>ßl@+™A¨3£´$>¤¾Ú#ÈÀÖÚÔn/nþ1‰6TfØSM³©y>›•x@®k´ùiÈ.Kuõ€\Z·o\)B,œ² ‰r¢T·S!íN2¤ìR›ð àñ‚e@y=Ò¦B‡\¯HªQêí ¥¨³)mëJ¶Ø/q¤“·¶Áª-øN¼ÊÓ"¶ózÀu¿¨Ü‚T:Œ¾¸ÌÑ*OP©LúˆƒÍÎûàtÇb©³Î¾ñRî=ˆmŠ™,ws"̪eZáõ wµ¿Jì»Øù{󂨪" =˜Ò‚Äk…(uÒ¸)ÕoØv÷ÇÈ3$YIe?)6:Ä™aÛ¤ÛH>qÚŸªä7ãªK0 B›@ÒI¸†ãlJ)›DùÝC´õ¹epE’¯±ïïb¦ÜøÖ”Æ’{ÜÜ`\òÚ[m¶ÒÓpÛvõïo¦=Ò‡¡)çœJ‰¿*îNßL *H=v ŒY ´ûÈ6¥ c±·ÓœqRZˬ­ér\šZ;¬´=e"ê6;_Ûkõ6 4™N•´JBIRǶ å©óçR— Këu} ¶¦CBû‘îFßL vAØÈý“éT¬ï”Ë‘NÌD>l;mnUÇÛŠ–WŸCøU¥ÍŒÔI/- i䬔’9>w ÿL;MÍ.F¯S:D×ä¤#ý%^ʰ÷ÂåA2§<ܧ©T\¶§d©Å&ýµ(›ù;{c‚ž™0I0ëjºCGH N¾M·;ÆW©lV2â NB¿4uQF»ØØî-…äÄ­D­>„ï·%»!*QôãVæþØæ†óÃU0ån*ÚcBÂDH´ Üb«ˆµˆ¿°m©›èôÊM>¼Ä:P~Yc¦#¥ ö=÷<O|«9f;ùŽ2¨Tb#Zœ*Ù´ Á·€ï*ê¨Ê§ú‹wõIu7h7·íáêÝ//À¥F§³.œòRu7]ôØûó„°XY—#”%æ_§Ö²4y޶Ÿ`:”¬@Rv½ñó^‘Ls:Õ˜zñÄàVÊVØÐìTï‚K3T¢e¹0ê°K²A§˜)&ä,­ÀÀ™ÙèL¸oFp †Ô¯cÛï‰ãB®H‹¨ª†æBf•’"Sëa=$I]È*VÃÏ}ð''f)¹FœW&¢d8¢\J 8@)ï¾<Ây÷a2ćK¾¢´¡kÔ†¾€qöÁÚt$S"…8§ÐõÕÓ±Ômb/s½ìO7Åþ4b¦¹¦¹P©IÏYV#æ¸a›–èUx;뮲¦Üiž”ûmçr*±”Ö;–ÙŸ’†…2„©°lúvú 'C‰ª{‘¥tÖQ}6_µð1î¾_ Æ¦0_u÷ĉ”÷¹ó„ÄN«ÂÏR!IiÔ¥ê v@Òàö3¯±Yµ2‘*˜ÝC/Ôâ¡ÍSÔÏùVíúT;ŒDaÍ­ÊŽäW§Ée} Ë—½Òà]”,< SÍ)¦×ƒíÄvL·š-²¤“¥³äßÔºÔïˆr«ÎÎ’™•­ÆRõÛZ•Ü"ÖbØÈíõšˆÔZ,¤Êj³’óÕWF–^kRõƒÀÑkïƒÙ¸G›—/P‚âúBBlumß ùfžÄêt¥L%É ±ho#Î;æé”ÉbZ[Jd©•)(J·¶2?³c,\ÕT†¿Nw)&”éJJºÿ¡jÕ`Go~Ýï‡6%¼dé}l¯ª€t¥$©vÀÇ”Åb{8T¤ÇYHQM’Mù¿×Œd~$Ë啤Ý*N×øl™U°š1«¥Š•©®8üÄ!ÓRí×­6ëÊy_L³˜iõm·lH$)ƒ`>Ü[ 9¬¿8Éb0Ì‚Vò]jèe\\_϶éëCR›—Km©…„¬24€O)ãúã› dìB#ÍN|©s‘%)j2ÖÂÂ6àw¿}ðmÖ*Sh].¤w›Ù*ôX‘m†ûcò~HŽ[m-¸ãªuWl´«t–vOsnÛáz%;8ÆÏ.7 n®“ òž†¥&ê ~¢H¸ú1®7àû|] °cäƒp :je­ÔɉK“Þ—R-¨\ü$o|3ÈšÚ†j±ŒµäGyE*7¾Ç±¿l ~ ª&s§Ê‘VC´ô2[qW²›¾ÂûØŒ}¢¹+*pT¢¡nmþÿÓüŒŠÝ°)QF;eÌÓó-®1enBd, N¯¶8æÚu>´ó.hLY‰=N¢. T8;aIê„ uj ”ǘD!/$”„ŽxÇú¤È’eFŸK·:Ø(GOÀ½ïõ¾<ñ…Ën¼”fÂ32ËóòÊZUP ÍZ5•ƒ±ØŽØå–i±×5Ú›«!¦Ëmzl ‘µÿéÆDg ÑjM« ™‘žP HW¥ü‹c­\1%F­NÓ”Úõ8–v O„“Áï(X 2š3 H¦Ö€CŽLS˜ó®(ö>ØËP«ÐªT×»sŸCW*m:ˆ=¸à"ØE2mMUJ´‡¥>°@*ð¡ßï¶4²ÔfÝ[j3j&èJ.U¿í( žÉmõ|5­VE~­“*[1eº%Så©ò·YA>¦Ý'r¢w÷ísŠýZŠÒ¨ÏÁ€Tâ*ÕmGÍð¾ ¶*ʨ=Á˜H¤]`Ûa¿༺ë4´üêŠ]S)MÁM•ô¶ò3+dµtZ“êUz]ešEn‹CJ 1´ìàà/mWþ›í‚•È,<ë zCrÐ}%­!6Wó0๠L§¶ä–Õ\ª}'A¿ëlM)tÜÁ+âŒêuUäS—¤²…•ï8‘a ï¢ãŸí€ìðDsËtêµJ+”ï™ ”ʃ±Þsk$ÓmÁøfc#H‘L*Q×RJH@ѽ¸$ý0" Õâ ’N„±^¿Ó¤-B(D–”c”º” ¨›øúán z%W3·—™¥Ô¡)’‚ç¸ßÛúb`³ß$òÒ™²‡KœÜ×DeTa©×¥¼[C¸ôþŸÚØŸ]©|ú(*WÉ*KnÔP„ØX÷8ú¡È9=ÙfÉŽàR¬qÜ*Ö FÌNT9”_žy›–JÓcýÀöÜb´~Ή%Ÿ3ÑMB•Y¦À”ësYa´‚á<sê÷ÅV =s3U1÷Ö®ºZtú@¾çè0—JÉYªrŒ¶zñ”€äu¥KLtߎFçÎ(ÙXI¢üMveYó%“B+ˆM’ÒGb;øÕ‘E{9˜‘Á¦Â÷ª]RÀ‚¨ãùÁ&ßù1,—5‰aq¥B,O@Sn<ò€ºS`ý½°ç™>"G1QNv˜Ä–K–`飼¾‹a³¾‡ãÈv;4·dŸ@qv;n;ïm·Ä1|X ?ú{;ÓcD—ä¸*]â˃¬ÒÊP’S`o°8ÉY¡Ï«åh/Õd="Y -#JIl_rEÇÒøôå9ˆN"Ct¶RÀIKþ¦œX; ]¿ßk™Ê35º49,-}OKú7 Ú×ûœhQÙª$3’c®¡R›F.B¨)× “©<(/sß·¶…ÆPþJXÿT¤ ßʇ¨ÅúµU¼Äĺe9é‘B  ô)`ÿ)·o|mDì¼îiCô·mMHRV¡oP<§ÛífSj{e̱S©53Skj#ÌèT”AI;ŸÛ[Ì•Œ§I•GÌ2 ‰)%0ª ¤‹m®ÆÉÛL³—%µ’ØC‹q¹*ô¥WN›ìl8!™¬SØøPeSyô 6ôwŸMÖ¡½¬v{ã.6%ª[!Èç“[Ë2)îJ¯'ñYmrëÈTw '`oaÛœm™RE5G„ëK©Ñ:YU¬ó$ ’FÚÇ`GÎåj•œÝ>xFh2Þ–¯JŽ›¦ÖÕÆã}¹ÀŠÔÎv3ÓšJf4ûŒÂ.á½…·¸·œ>Çjä–«±®«š›s6Çl8ÜZ/D€…‚ê íoólqͶsl˜Ñ[©ÈJƒŒIAОQ=ð©A…J¬f + Jo¤ BÃê-“}µn7ýñG¦]˜â !M5 µ¨)犔wþPyÇ3!U¾É:cW)O:\¥†^q΃6ðPgùT ¶'Æ 3KÌofxí¾ô71Ή®$%Wþ «ëŠäÔÓàe7"¾ßÏ´ § 7õ•â텀̸ôÓ%–q¡öµí¿8%þ6=€®­þ"Ft˜Y~&_ªEI©üÊŸaÖõëkkú¹½Åˆ¶¨¦´7&=fž–R­µ8””¤\{‹\)—Ù?)•Z‘‘òï¶¶WH:­77'‚‘¾½A¦ÉŠ$Äe—[±[aË%W½®<ßœsP\å=0ÕaŠ\ö#®£Õ”—õ%I$ØE»aj&_‡*Wáýoœ`¾KÅjJÅ…ô-ýðn¦*,_• ¥6:ÈÕÚ÷8É.¢ä«¯ÉÛŠW¥°€›¦Ú“°¾þ0ü¨¯þcLÊ)¸ †ÒmIºµ¯øÂómD¥T ®˜ÓhKÀ·'ÔHIÃßÎÊÌèfNº~`,¶ ж¾ÞöúàÇHüE¶g9%®£¥¶Ð¦o¾Ê&ÖêF*êH©~ö8‡3”SXTJµ=mȵÇ;ZׯêX›EÈóÛ}7!ÉJp­JSˆPØÙD‘Á¸½±å†Ü‰-´¶U¡'Ru›¾ÚI翾ê•WRÃOT~}1ÐÑ !¢AÔ7FçŒeØ šÅ\˜Ï¦NÌ‘€Ì¥Ó^mÝH”€6ò“í‚zµY©rEA×$C€”¬Lèuç ¯k l ¼àlÉUÊ~`vl&Ø“Kè¤U.©\ƒÅÇï†ü£EJ¨ñjM…ÃyË-M¸‹Ü‚}ïÍñ|¦*‘ >K„ç0Í* }HÓk¬y·8í}.dxQú®z‰KaÅÙE@nOÓé†<Ã"::[yæãߥ+ qíÏÓßêŽYSi‡Ô‰b*Gç­µ)%N×ôóã|aÆ¥›³S8Yåêdù¯ ËBÜR†á°[ÚãaçQçbåÖ¤få±[/´´©=7úT•(÷>× 5ª”Ê>^`PdG”Ùp!¤Ô)ôÛ‹{ãmȰ2úª…×’ó@-I”(ŽOkcz_©ª8åê]2<¹)qø¿2ÕšŒBìJoÏ‚|DFc×y×L…ÇMʵ€·;bsIŒÜ¬¸Ô™Îkqöòè"Ûì}‰ñL¥ P¥u[r”å”x­¹µÍ¾Ø†QfWØŸµ‰óêõÖ›a¥5N(WQ,n°ìoöã 0\3sÌj}Ã'ÄêUÚ­¢d€Á`´¸…–…§Ç8=©M»¥äÜ·6˜:T6ŸM×Òx þ¼{q„†¨ÌRëÆ˜ÔvC*WCNåi?oƒ)©Aÿ Æ[Ò$Ș•cZBp1ÄÊ~¤ü›–Qº/qØÿš»ý™U WæzÜ·=RE ºâã< qÅí}ü}±E£|B…œ2h‘'.½Fé,¥Ö¤-,Ȇ'ñéG1;P‰=b#¤éMÖæÛÞû¶•)”ÊcÈqµ0×NG®áë§rAǠvOB^þ¦ˆºd>ˆd¹p„€æßúÆlÞÕIyx¬:AWYAõ„¾±â\ˆÔ ,jûQMˆˆ)XQØ_Ûéƒuê³®eˆÎ 4ÈXºïc±§ë‰k¸T—ó”jÞDn/MáRC-!à8UÏppåK¥D¤Ð–˜åÒo&BÓ«ZÎæ×ñ‰L7i²"JŠ4ÁYõ´ö›~¸£Sª¬NÊp—"\@¦Q¢ÑÖ4¬§b¯b}ðHö:žˆ"}VS ÄDtÛQÒVF¥»øÀåUNL)R]qõ£BN¢ »ß‘ŽÐ(ŠfɵsDb/!k¸U¸)¶90äVØC º„6²J®Mö÷çé‰6Uºš”&ÈBÓ-mê^¦Ò<sýðÓN‹v~¦Ò&2¹-ÉQmÉ'±·qŒ•²œÍÎÆ‰×[~„úvý±¼µV§W›\VÙ]Q»«BFÊ*?LhÇØƱó;=óL€êb´Ê´^ÁbÀq¿l'|>FdƒD©±" ßI^—¬i'øv× îÉ«¼‘6¦ÓÝWV¥ 6‹kÿÆ6S§KTI SÚTŠ€l©M¸­! ö?®PP©™€¦¹ÞHg.æy’àS@¥Ô¦úRnJHö'leÿ ¹ HŽ·ƒvE‚¼óm°UMçó›ÏWÙH BY"ÃÇoùÇZ„†dÕéPDlˆÔOé‚ ½ð¬€Ë+\'BzaŽê&HWe¢›–ÒMí|9±14Š/K€º.«MùÔãë„d7L½Ùe;%<|á–‰˜©qQ&%A…º‰CK—A6Wn;b.ªÞÊ‹C ¯ÑÄ ¥=G¦‚ƤîMÀ¿Ó³-6“Lhl§æ§!emÜ-M÷·F¤eê1ø„ãµ'šDP’¡¡\îmß &™¥ÖçÊyBLBî–.]Å$›Ið0ŒÄ$ßgw(Ë›”iòãèùÀÂŒ„(ÛJu]*{mÛ Êe ,È J“È % X_Lžl;Žõ̧̾¾j:œbCÍ…8¢ ‘È ì¾%4Ê“´ZûÏ2˜ÅV)q>´,mï‡üze&&[5Ró™ø7ÃY_/ÔSÁ½`¤rOp;œA2üyb·B§Rnuv~Ø¡«âæ¼½K0¨CX!Àòµ_‚>Ÿ·¾'•É‹jÍE¦È‹L\)X]Ò…caØw¿eÆÞÎOz hJÔj¤WÝJM´tÝdýcæ˜aèL:—Y …n÷·í„I”‰b€ÚRÓª»!ƵöÜc–W~¥Çq/>ÊÁë)CfV6±à Gòqñ›1^36ç¦Xb‹Y@¥í XO†&ˆaº¼„´å+ töö¯Õ©ÈÌ0=>HKLH cÒ-}®o„Êm1H]!–ÐÐQH¿;ò/¾øÓøïõÿ.ÄÌ×\›©èù¸ª†ôUš†•êÙ>9þ¸o¤S^†‡„Ò_˜”êR¯Õ·íŸ+R~†ô1XôÔÛ€(ù½¹Æ†£ RŸT¤Hu¹ë=7ÂÕÔ‹÷ã+ãÛ¤òiÆÜà›^ÊÓ$ÂD£QŒÊ佩WQYhÛƒ°ã Õ­X¤…½;UŒYn®.ÅiµÉo†g:Ão¾Ó”êSn©å…jeZ‰½¯±Øý1‘yÞ­Ÿ*$™ ²ºÃm\„‘¸ß 7B‰2}"«>_⬹Z YW­ ¯çhtج<\“So­Ðá)t(° ï÷ÁLˆãrÀã ÙÔ¨âUõì>¸ñ—\¤©ÆCN)ZÂÀ¸ò“ØãYf<œVÓ–aªg¹uŒ¥.tjäIÔ«iU¥VUŽŽ*ñ#æJ U<Ç6MB½)”.¦Zm -e>¥‹¾ÖÁZsÉœ„Õ‚‡\i$º½+·‹÷ûãµÜÄÛ+¨š[“!KÙP° Àî|c(ü–ÉŒc™Ñ£—&N+T Ùœ$·6 ˆôÜ¿Oq/¡ž¥Ü¤’m²G±8 åj¶s¯Ö˜þSTXÖê_(Q!#H:§Uøöb¹.DŽõ9Çíqúm"}:cotØ–ÝÔUúµ²|}±5f¨ªäú†ª+e¶ )m¡EM¿¤ªç}û[ßå?KjsLÇz7ϸfÖõÍ€ñõÁXfFaªH——$)Öz*ÿ,…À>¡îoqöÀhyF-NKõÊzÍbšç©…jQiH7)P'õ_kãb„õI³µÅRøWHw-B©DiÏeRØZ½z´îü½ñ«e÷(µ.X¨Rf¤¦c*sóÎÊ"ö>øv›[ü]–êVfT%ÒRÞ‘À‰üGêõÉj/:–)‰ij•ÔÙz’}+Ü_næö8Ué¿©MO ²¢37ÄŠ‹5(’¢åèHRB’èIS—ý#Oðÿ\]ÛËÔȹÆCè(b˜ˆé.)WUVÛro·||oðÏ:*³ÿêO5F¦ÔU-AQy×ÐJnt¤j½È*í¾>š™›êR\MŸÍMÒ§ó\?ø“ÿ¼_ÿ‘ÂêÁ|àä‡â0{"mi‰_‹/P™é¦’Ä.¤×– JuP„Ž8ÞÄa™\*ºÊœd@dSëW€qÊ’óe"‡#üCE%Ù•ë¸èue»\¥Ò/Éâü ±u¦Và*JPûéMÆ÷Øo®3¶(J‡òK~**¥HËÏȃ ÍR(qÐзßo¶=@¥g…OTßÄbÕ’Â_B˜|ú“¶ãk{[~!˜õJ„zCî*CRCM¶»ï~O¶7±G‡N§Án–ü¹«f8©hÔAIq·6¶)…Š¥Ÿg ï’u'±KÉÐbÔÄ1’zÓR­J('ÒEϾ?¡ËÎpje¹õNÑîC K'¨-Ø}WÞÃ+5¹ÕYÍT!Á‡5Ƚwª!@$‘qã|45@T̸˜ÊvC…j*ý;noÜa÷¥³8×Ô`¦VÚ*:ë®¶ðBµ •qÞÇŒJ*ðž—Z˜ú¤ÊS‰qµ¥M(v HÞØÇS«Sr¦fnDƤš¹{¥uhV/¸¿œYiô´g…ª½1lUi’ÿ5.ÅP R“ؤn öó‚¨T$5¾Vèµl‚Å%êÒgU›*D–'KJ¤…‘ů{ÆØ`‚äXË’‡ CHp¥DÈ>;ãä%3RÉßWD§e—ª“+ÔóÒ[WMÆí²J®,8ÜŒ}+“bþ7•kŒÖcÈü=ùwÜ/èVΠo|Kò?R‹–ÇDI3)Ð3>`©ë@jJÁiæÁR,9¹aO3g$Ó©fDX?Š8£¦8nÎ¥`Ö4ÞàxÛTÛ”J…U qeÉR´ÁiZÔã6ýFçJŽæø ý¢5>l'Ø[”õ™ eGKN…r.7Üý0øÂÿw¬‰ŠY_øÂ‹&§I ;„©–ÂÃ7• ‘`7æØ;šjÕk,ÅL1*: ։𽠸qΡ/üBºuITÉtÚ„T¨!p½@Ô-pïl-åj”Æó Z‹2›2BšÆå¸}Û¶ßKà¡CÁ) ÓçIGr<„‰0ܹSn §ëõÇ/ÿv¶Âœ,9*L £¸nAÂÇ•Pߊó Hi/³k¾·ÂÌ 4¦è3«¢¯óSlG„ë{¸vº±¾äñcŽzØÔ8¬ 3\ƒ^aMJCHŠÚEÂÔM¼ŽÀ£T«ÙŸª˜HvC®®I*m¶,|Zë_¶ü¹AÊC ¼•:BSßIïô8íRüJŠbǤ²Ù*d¥Õ¢úЀàX÷¿¶ÍЖ!JÝÇGk™ž]¨“é2Ì`—"¨-&Ö'_õ â?™i¹N~c†·b®4Ù/þl¦[ZÔ·4ÞÊÒ ‰÷¶ uÕF¥Ôj$¦„7ÓR^÷'sªæú¶ïß2Š®I(‹LE0’ì‚âl¾4î7o¶8+ &!o*6äY-=–Ü”`¥)V¡bàœGeT©s~"H¢-å!e÷ÃZOè¿©`ö~ÌÔw P%Ík¯FyÉ)BÌI+mµ‚¡ú€=ïnq!”Â!æ—ª‘àÄZ‘© XºVÍÎÊIó¶øåEöáÖãÔV!Ò³m°§’Ê”­GZNߪÞÞpðÄæPßM*JÜH°)ý;sû{á:šätMù‰'æR¨ó¾÷ßrþMw2göžLçaÅu²T¶_ü½=‰M·±íqŒì>æ‚à šš©SçÑåLj̉“ Ký-eaA7Ú×°¶:R³y ªÄÔ®’Kj.² TE÷çnعeÌ·GÊF_˸‡¦¾²·ä% „¸-kXq¶'ë°jq—ÜŠßJ9SŠSnÉÉ÷Å18nTljòNà´ÍYŠšb/¦–ÐDbéqÂ?Qö8ÒÚ§)¸qê”Ö)SÙoGM—u!~à›[Ï·¾)s+TÜ䤯ˆÄ&#¶C@êCÂü{’{°|9[››¨)©nkPL—4µ#}‚¼ …°ùØ.®SiTU'KõGo ÒúT{œkÌù6›+$9дáuÍÔ=$›w¶Š)t×éʦ¦œPgØyÀÜÅ›dU2³MSZ’Y\€‡Ò&÷°=÷ú툇az&'åÕ°Š+ŽÕ ¨.¸@:‚Ûá. î.;[rê)Ó«¾n˜™\ºt¦Æã¹ì0ÕE¡S™–ÝM¸Š›1ÔÜ­ä}Èf-ŠwÅI,AœÚ–rk¸N³¶Ö° à«&+Øò?ÉËÑdÓ:­¥ÀÓWBÒ£úG ïÆø›Qžª.¹&-Z[²"4èCEÅ;øÃ̪Õ>u Úti ™5g¤‚s¸²”výb6ô ë–óL—å%–v¢Ðƒ¾©ûÙCt‚qLh#ïü .nÂQ…$Ìiøî6¶Ã·t®ÇpO|­PªR걟¢T§Çl~j5XǤŽÛo‡¹’E)–ä!Hp©*(Õ}Ü9ÂÅ~r—8t_ùhº4¹Ò6._ÉíŒûYúŒˆI“ÔÊjk•[5rÇ¥M9!Ev6*Ä_”ÞãÁƶ«P\®©Ô<´†u4¨ÍJ.-D +JO7óÆ4KŠ—rŠã°’Û(p”-µî7>øWvŸñ ȳe×U.)ÅKÓq{ÛÏÛQ¹&Q‡ë®¾òN[B`%ö$·, õ$þ­Î*™GŸ—ÄtÒýaÇ»jÔ¥¤þ¡kúGÓÐrüêm™FVCÝ}¶ýuè9,Ñ'-çY’S!’@ñcàñekZ~㤪Ô|¥LaùPdT™dé-$…¨[•nx†?F™Xi©QÃ͉i#RlRßÚøèë4êÌ)JJA'ƒéJû…ä?lN_4Ì·K“+åXˆèÒÚR«wCˆ3|x;4¯LX¥CfoÄä1-ˆÒQ«’”/Ûé¡N¦G‰)„«£þ“ˆN…#Ø{{b{K¥IVy‹ÊbœDT¤îµí¨‘Í…÷Å=µI‹×^\G”•n›&V<™èLŽÔÜ@Í‹!s–ò£«å´m¬ñb¢-öUŠgV¤®t7˜¥2¤\#› }¸çÎ)Ò)îgZl:Ú¶õÓN+vÂUn/ßß)´ÉJ§Kd<‡¦Á‘¤ÒxþÞø¶çO#"ö(T²Sp&.¤eÌjl•ìt¹­µ t¥º(¤]p«c{vpuèŽHq¹s$%ÉÈ= þ”É>øÁ%QÐØd-,<°¢i¸JGüã9fj¹e¹z"f[e¦ßqÔ(^Úw$ek6L©æJÎ_‘OZ ¥qÕµ”;Øß¾D¦¼ºD©°Ô¥:³{¦Û»á™¨,RŒÀRmØà¬*Þ¢}_×ÜkFpá‹_‚9QKpÝ’ó”˜Ñ ^m$¬ ›«ùß–Ü*Tôåô!ç)Êm;­À·/m–.vÁ•’ªÍÄ£¯ü¤…“!’¢„ØØ+­ûm9‡,±1MKˆ£{*ºJ@ÚçtŸ â‰UDd%®sL3ø‚g_)üµ¥7wÔ;}I¤¸Æz“5´!ØÍ-¤¤éJH‹o…sZÌ.Öª0(hmkŽ™O,›G'ÿêúaΙY}sþBpRÌ–·u( 7îMø¿ŒU‘‡þ$ƒ)”ìו)ÔUÎD¯–x€—£î«ìŸ÷kµÚu?-&D5%j+ê´ã{©@Ž?ßÕ+¬4ÛÍ>[CÁnÍ•¤À8ÁR¨Me1Ú¥µÓ‚ÒBСè=¶<ŒKô«QÛ! ;›ª=5êtiìžš][m£rob?ñÅJ4fÆŸ sS(d8¤¥ "Æã{œ n§YOâ`1;»’T›ÿ=û}-‚´Š‚a>òž*Jä¼BïØ.ã ‡¦s§9R€¹.õ„èî8¢Ãjp«O; ½ðo*KjEn£.ZÑÔuA ¹ÿH ÊO¿{ÿLn¤Òf¥}”ó—+)Ok`%i'«ŽIbZK)¦·qjþkw6Æc«[¯±ß…-ûý'3]ª3Zvs2›™§’Êc«b¿*¿k#dƒq?Ÿ!,#¨·ë„u™Wµ†ÀØ÷ÃÅ"§eˆo!RÔÖ»¸o­@Z÷yƆ“ÛnEÔ¿l¤ÅU ©'UˆØÈ¿ŒšûbœÃHmµ¨8Iy»ØŽÃ µ¸3éµë­l!+Ô¢V’¥8<¦0ÐW.£V¦4ãPºÛXAZ÷ï·8Cˆ0Úù-5¤v\2ÔFšÊ±æTzE&嵕§µÈí…,õWmÚCѩ쥙 ô‚ÚF£c±ÆªÄµÑþG’‰ fN¤¶Ðµú†ÿ¤>ØÉ‘ÙÌUÎìÜÇL,ÐÞPKN†ÀZ=ÓÉÄqƒEŸïÿÈ33-'6æV(L®[¿;¡»$:×L€ŽøN˜åFB§)-¢I“¤$îÛC›ªßÜsí¦sü–>Ë”ûB²5¡qÞ±&Ûly¿×?Òb Ô—*4Uʃ5iKO!ÔƒáWàžþø¡pV„\'±¹–V¹1P©8 -ºË{€¤Ü¨ß°CÍî‰I‚‡VðIÙÖ¡É_w~¦¦T¦2ÜvC¨£QUÅ­cí‰Vg2ŽX}ÈÊ)’Óý@Õ‚…î@ß ƒäÀMDx™ñ ˜6LÆ{¦!FèY ROƒ~ø:™l3–ÃÇKM¾ÉZÓ±ßÏß YtÜÅœ¡Å­2—`8Ò†‡ ÚšÒé3!å×Îû^×ø&lú…FD(ò^rP ”"×l{m‚Tj:©Ž|Ä”¸ì‚㌺»&ÇrFØ{Ëh¤ÔèU™ŽØfSʺÐ%@9û`»…<ì@²y–‘?ñ Ь±1Aµ)!Óëù¿sïY†™941ˆEÂúÝšR’ îSç ©Á\÷ièq [*!I"ÄŽÇ*2fÝKˆ*Q Kký\îö0‹”ïä}SØ¥•!ÑSï´Âí2šyAV$v¶9&$7 £m½zR°‚l-Ô–úꪞƒ*á [¹ö8ÕNe2¡"U:SÉ_¥e“©VðAƇw$‚Ö¥> t¬¿ó®?ÒDÄ©²Ò¥r°'7e åc2À”ÝZ±I1—#»B‹qê$ííl ʵ‰-dÖ—øƒE§‹kyÐ-mÏÔ[Ú•Ndºxm²ãÖgPq“c÷‘r™-d—ìaJ–v#-ÃfzÌéÍ2–œëa· ­k, þ¸™æÜÜÍ9†a3U€Ü²L©`6QÏŒ8Âf‡2œô@ÒÖÞ«8§ZmE7Ø›X_¿8œ¹ð&‘\ÏˬÕ+³Ú[)ÔÓI:Ô»nI*&ÃØ 6„äùòv|yU~"åJMo&ÓæÊRæEuwoBŽ£ÝW'ýðÌŠ’ò›‘b¡n*‡-Ý’æ’X]ì³âýñ¢œ–2žWPaNÔ)£Ö‚P“n/„z¥Aúãn°äŠ+®†Ÿ!J°7Õµ€ßÉ©bë ©`Üq«Æn¨_b[ÍÉ[—³aI!hâÛ~ø MÊ´r¢òò Æ0ÂT Úš½®­[v>8Æ DêLZ·Aé!ù §SzRI”?ÞØ1·w´²!⤕«‘~ØCwÉdzž^¤Å”“ ÈcÓÙYsSiN·-{ƒ~FÜ`,œ¾Åâ{óL‘2Ú?"…)A Qþ;'so­ðÝC=žÝº[é ÊÞÛ[~7ÁlåA§Ö2k+š€¨¨ ©Üh>çØÚÛž0û07s1êFªaØù®5}55º¢¢·Zm¿H;\(ß¶Ã,œÛ˜W64 6]‘%Z5Jw~šGq}ÏÛÓØ©¨QÍ%=RtÚÞ/ÿ¼.åŠív‘cÑŸë¸òCn²¡p€6jÜ‚ÝX) ÏfJ4,ï> M§UnÉJÕÑlþZ8'bmÇŸÊÿÂ¥+*Rété­Jm‰Ĺ((í~þøÉ”§ÊªVJ Ffú¡·é'ÜÏÓACfð4=×›DíŠ>@(äó˜ìM¬3•1nÖR¯ò¶„¤W‹ß{ì#¿óæ^¨×sô°ÓªÕ ‘£) Ѧå@x<øÅ£âœIhÁ¡4ð –bågkØ[Î>u_Ãö$fHõlÙ4„ (/¢åÔ½Iõm{ç øÅ0i_ùëS’eOàémàV‰:l(ž/Åñâ?ͧ3Ô¨Õ(éùy‘Ip¤iµ¬wÜcÜYlÒ²e6ŠÛu G*P–¨ÇK›\ÞÃ}»ñƒ“—+ƒW§ÈmêŠÛèzûÛ„›\oõÀTecÈîã’o +åªkqiÔZL(¬8Ô•Çl!oi7D~£}ûáú½N”íxòãÒ\R[s}z­Ûßߎ[—MË4Â̯–”§yÔ D›ócÿ)RUZd¸PŸjZP[+hivöý°3dw6Z65P( æŸ'4Iøl¨æÂVÈG­N-);.påAøvÜÙÑJªN)»°ò ‰¸Õ¦Ýˆø•¤-šÄ¥ÕP¤†•¥–I6¶«ýq’…-yC;J‘;æWE2L P‚¾‰QÓdqnÖÃŒ€Š|zÇ:—ôR%ÅŸ%6ÓnÔ§ßPÒ‚{[’0Ñ*=7.e1¦’)ÝJv×"ÖâýÆ8fªà¨ÑÙTF“J@»jZ‚UªÛ’cÛ)y»ää6jó ¹GSf e%>Nüý° 1‘?âr¨åéð3’TY‰*ž.â„()Z‰$íàžmÑkñ–Û¸‡‚v!;ÿ¿c…Ê~`~¥›Ìw‹­Dv0DW@Ö‚.Aâþ1Þ—Bªî>]’ä ’RéuI Rw¶›îÚÖÅYF´Òˆ ÚÝ1š®w~ 6cª@ªCë@X½¶OÖûÿ¶ÓóÉ_¿ … Š}!‰…¶â ©+pßRAØ‹ár5^u ¥S].›E(¼—%)I).›ÛPß‘çÆÖÃmw,~1”(•:ŒØÒšf_ÌEŽ#›r8ÃJÔ™NÂYv³OÍo;˜c©Z•ª!S­”©%'Ô‹÷ç Ù–erŸ8SiugáÓwT¨Ed¶´ùð}ŰëNЍ™UƒNiKD—[HÒ…\ßqõÂŒœ¹]ªÏzaj8 _!Ï@Ýñ›öö&…Æ>æZYÑM1QUBÖIqç“ý1(ç\¶öy«1=ÆÚ\DéC—%Û¡à þ˜mËô¡*JÝ[o<¬ê)Hl'樱"»:ˆ¨¨J¤¤JiÕ´ õFæ×ÞÛ{ãF¤•#²Á"Ä«‰¯!öÉ-­_–”p~ÜôÆy©¤Æmךù—j 8Û`ZÃø‰Øƒì6œ Òi"ŸQvN99 hp”=µ½>÷í‡ ,V›Š‰U¯dܸ'žßI*ݯñ‘ÚÝYɹŠL8*CqŠÒÜ‹úJTln¢v#~0߸Ãáût×&¸ÔF/—Wa¨‚-¤ý¯Îs¾T­MÌŠJu¦róĽ!,0ˆÒAѹÙ&Þ/ïÊ=¯C„Šjžj˜§ÊV±¶÷R@¹ßuP ©ˆ¤“še]Èõ·ó/·dþ‘Ù?úpéJ¥ ææmåér"šÒ†»qm ¾ÜZÖÂ䈆Žú&Ò×z’–ßCé+Iˆ±ä~ÞAÇ,³R©Ôs]}©tÏ‘ùVPcÏmàZx•n‚ƒ¸Pó¾9l`)ædØYÑM;4úrŸK®¡Õ)e;¯G$¶0Ë@Îq\‘%èôé…¦²µ´,‚Ór,<^Øl”ËOKni u`áYý?Kð0—]]"WEYLªC q µÕÒG$i¹ñ…n‰Ë왨fjñ\ye t(6ÚÉm½$r-sq¿|.I¢EEg/<_Dt.bDÖpM‰ X“Èã¾S^üR3#¹2,U(Ÿ—— lúA±* H&݈Â݆ܜëï!×ÖÒÕÑ[ËÖ︿|p¾Ü²­ûW¤S*“7Ò]®–ɰPØ>˜þ Ïw$Åü>DD§ Èt4Tu_Ö“«`žÖç©’º‹R§k[͹t¡ º‡ü}¨´*Žd¬36j-JiD†ÝMœzã°Ádã&4'>X8ó£H:w&ü âk”ºˆyOudPVëêh¥)÷½…·ã3eÚ‹­)é$Æ•ù1RñÀì7ÛMû°·RËY¶v^UAúŒfª,©Ê{i³jHW¤)V¹PNÝ’-Œ(è™ÿY¨z„ÌŠµv¦ÛÆuÆÓÖKå«õ{‹ÓöÁˆÙµ•ЪTé±L ².˜®´¤‘ÀwÂïÃÚ,ªS5©UiNÇ[o†›h«R[H$Ûï}‡·dœ¼Ì™Í6ÌVÔT’„Ù±mî/ûar°ý²ø…D–2ífDG'. ‡‡¿1 ôí«r|[Ͱô2ÚÑ.W2[jQSí¡Ò¶ä+I6¹oõÁ쥔ª5ü®·23Té.-°´ ¬\þÇéŒ/|7—‘3¿â”Ú¼ƒåŠ$ÓÖ¥â?J“b4ªü›â§"êA531ÈEY²Ãs#»­âƒ©›PFÞ­¸¾&ŽP'ËÍ-W ¢$fä…8•kßO¾™‡¾T˵ÛJ®·’• ¨“úNÇo=ñÚK‹‡:IAj2´¡(Q±µÿãy,ÞÀŠ£S)Q£µ5æ—P[ ”!^·ÅÏôÞößjäG§|ÛN9°ÿP¶Ù7W{n-ÏaŽ U“›)ÒjЛŽËª)Œ«Ýmìtê7ö¾þpÝÖf8¶$¥‡ã)ÒB‚@)€Þ×Â!æ $ 2Nr•5´!°ƒ!I'7ïûã̸óP~eåDtëQÒ BÉÝ?Oúan«“"ch(¿9Õa`¤¤î;Û$fÙ¢³2ÞCŸ(R§–)+°ò-Ï}±¨áSÑ1ãÊA‡)¶Dg\Ac¨ ´Ø\p0-ez–cÍYƸ˜)ˆ´êj %*K£H:ˆ>¡r8ãª5TÍ´ÑèÌ"J’ô¸Ò½»éܰ&Ø®d¹©¤ÅªÔL¶:Z Xm—7%;GŸß§Qñìì–çØO¡C0bIqéâAPSÑÜX Möñ·Û µU©ÜÏP‘ ¸Ê³(dþeÇ ÿ±Åi\êóU—‘,ˆ©PCÉN‚Úàî7àY‰/Ëœ©Q#¹~£k³«’ ­ŽJ¹À›RßU–ª0bN  ÁH½¸6ýVÃÍBƒN«Õéóå¥èðथ¨è^–H#’;{o‰z$Õ`ILˆðŸ(¿é@º’¢’RFÞøzÊ•s rÅIÉaYIÒ’±ÊnÇÒøL¤ƒÁ ž•[}]§BˆºÅ%§Þ+‘é‚@Ò‘¸¸Ò9ðµX¬SŒ\¸iL©LÎë%W*"Á(ãÁ¹Å±VËf؎ña…)æ•°JüGÇoߨTú,çž–‡œuO’¤©Y&çb-ßa¾8²'¨™35eZt(©•JT²¦b¸I¶ãïÔ©Lµ™+Vg8Áž´)¦Ò…ØúIæÛ`5f‡P‘O[o)çÚΉmACÂ!XN T…Lv« PŽèOËÈJµ¥+p¤)›vÅ =„5x Ý´jè¶³pÊm­VîOl)M—C‰zS)˜¤zP¹HãnqøH…CŒÜgÒ¬–¬¢Toà­Œ3(DCDÅ%—ž'ISƒwä_œeÆ.l\[™M­§,­Qê«jU¬±½É&ú®ôÁJ}M¬ËIšš´Ÿ–v0Cm4”VX‚~¸+&;´¼½øb€t¹²ô&ý0£~ø_¥Ô"Ær|Y }n’Í÷¹[í¶/`‰%˜ý·é,¥¾Y²¹A¤/BG«ÒÍ»à C4Ó_©Dv;ˆu§Ñ{'ui<\vƪ~Xuì¹óô©)£ÕÝ‘a­°´8‚=i)ïq‚ùn‰–"¢$&ÓÙt¸âÐ$â—é„Õjá%® ž^ʔ܎íi |•b ð!a{º«í¨°Äí¹.Õ>&ј“ E9‚ûJêú@6_œ=üTÄZ„(±%°ùé¡QÔߨafY!D¦*[UÁn¥E ¸åÍÅŠ·ÛW©gÙÜ•C”ªïMŒƒ¥6¾I}F)? i%*]JZ&—HS‘´ O6ÁªZ¥/&Á•W[8¤Ùõ6-c~ƒ†Æ)áQ\uò· “ú¹ó]ÝM ¦…v#T²VZ-M‰¡qTõÁ :‰½À?|DäÂN̨ÒЖ`GI(mgýE޾)9¯8Òh“ @§ä¼Ù²ƒDø&ø†æx‡2|F[ŒúÐÚ’P†RÝÜF‘Ç<œhĬGL‡Ë¥2ƒm5—-IØ Ø:šÌ|ÞÔX¥ –ê¶*YV>à R3´ÇòÚTJÈ=7OªÃk‹q¿cl¡ÔfDy©.-ùI êµôÚê·ì1=pÍ8ÃkÌÉ-1XªËªÉJâÚQÈÕ}­sϾ3Óä­ÊJcC(i1’PÛƒ{ØvÃVt’Ü\¸qKqç Jw <ßé… µhSD-$Üx튫½Bîl¦Óß̲êª<Ó!–Êkؽíôï‚Ùv—œ™@ÉnBõ¤&û ½¹ÛéILú²iñÂP¹*XöàƒÛ|=Óé(¤¬¡¦É ²ŠFäã3ä eq…LˆU!ÐáçJ5Jd•ÈéIRÚ„â® øÞF+W“„6˜‘V’v$ì/míß]Ê™V]iºÝBšÚªM§J¹°B|ûÛ ÓHU#;K&°ãÔ©Î ´_p#AãÔ6¸nØdÿŸBü›Sr½GeÊ{+©)TÑØ•’›_m¯m±·;?G§|6p%¶–´´´‘²u+H>l9Äó,|ÜW%ÒÜy Wç°±úS؃µÆêÐÚÍÕ¾ËÚWR9Qô,wJ­öÄì#Ôà2Q:4‡â! ËaCWèl:`Ø[~{㋊£Ì»svzÒ:zté ll1¹F=CÈZ‘ÓBàÛ‘ûà'ÎÌ[éuq–ʤ¸¶…Ô,v*¾;òlmjh`Š]Eׄ±Ð(=6š57ï}ÆØßC§ Ý ¶â*¤4ÏlIM•çn1ùBjž™dUåuc¥%(HoRB‡'½ïŒ¹Ò)ÿéíÒ˜ST¥> ‡HIH']“Üï‹ï²•ÌõòP\"–Ü.™iPsµ¹Æ!5ø›„žMî>˜Û> ìÚôÔ|“®©›lØkÛc¶¥Ô\›-¨´ƒRÛ#æR↤ùrwïŒh„ØiÊì+U­F§C @IvW£¢7µÆçÿÇ Ô1£|7DFBU*5Ô–õ D¿~ØE‘F…2úŽTÝ*q t‹ñúAñŽÔ´Ú¤äÇZAn’~ûïŽlkwqW!ª’eL§H•¥–¢!:[eH)r÷ßÕÎØ-E«¿H¢·Ö#”(’‡“­)·pmsî/‡ŸðÛ3òÓ•ÊK¨JÊ‹kQ:¶íq…4ÃSYš, p’¶:dò ’Ó¤Ž6’ÀÖZÞ_‰G¥ôj²Ýy*Z“r ¬?l\bWVÛ±\Š€ÚȽ­ÈíluÊ9•´RÄ©ÞeM'AwA!cÞßûÁÊæ`¥ÖÐÇEÄÇ•e‚–à+¿¶0.Boû^›±9¤5L“RuÈÊ}™-¤Ø´¯qãæ15÷!Ì8¶ë7 ߨ‹pq¡×Jb—”Ø$¨‘¾‘ïïýp½&©51™lU#Ǧ-䤩ÇMÉØÛÆ0?]–fû*UÂ2œ÷å3ó-|©Ršrùÿœ&Pg7QøS¢c¹n$ëiÀ.E¶Û¶ªA¿%œ`¯AAK©$qβliè)R’¢áR´¸”€’7±Æý±\z7 ¥¶4ˆËÃÒ!¹ÒW×½ð³|¶ÜJ/#K ’ ®à↸¨§HS‹B”Ø?˜ßnøÅV¥F~3¢(% W怛ŽÿC†SýÍ:†™)ŽÎ—ñ24øSRÄe°¦ŒWÖ@*6}·Å%ªuv¡Gr—6®_„áÔ´ÇtÛpB·8È¥‰×µ3×f2‚Ô”m§É¿|=ÀnJN]&V—&ÀÝpGŒÛ,Á‘@bDbžÜ¸²›ˆÒ[0ÝHF¥¬“ªÝùá6³–˜¢u6oáZ7”â^>¤ßrlÓ Wš~|ˆúz©!¤¹¦çÍ­¾jèrhŠí”øRT®àxã ½œ›äBÉóÕHÏŒÕi®¦¯OJCa oK¯æ-Â~¸®×þ#QéÙòžüÖß…[(IYUËNjî-¸÷K‡Lf—9×ÔÚÞIE‘¥?¾Ã’p˜ì7ó?ÄHÚ‰ì240ݵy7¿|P›²mŽÅ™`Î4Š6b}„.£.›! ©ÈèJ’ŸšI¤+õ[Û¼Ó“jeŧW :Jqq¤¬wÔ{lT3{ó)ù{/üŒxòÿtjh·ù¶;zÛßqŒjêÿˆ Ë©-ƒëÔÃ*±é¤÷ÕüØ¢9Ab&5'TaòÒ)¬ËiS5 )+6~ÃuíŒ9Ýt ^^€Í jzc³¿Ê7ºTÉPÜãÞØvÍ S¨Õ•Èäº$uòô´õ$vÄr™™'ÕóÈ®SŸQ3Û+[e¶\@>•%G›¾,…µØBjã"s;™ŠŽ¶£Eu‰Ò–Zs}@‚9ÛcŽôúóëÌÐ(†$™EÖ—Pʬ÷°ÆJ³O®Ô˜ê€ µ6ѸFä~÷¾5;¦`5µ­‡Ò½EI¸*ö÷‹ãV"X­ˆÅZ§Tcf(—KÎNIDB‰(`Ì„û‚éyQR…O†ÚR†Bœl9¬l.£ï¿liUYŠ´ˆÒÒ²_Bl–劀æÀöûŒ/f:¼v2œâó ÞO ͶØ~øCîGs÷ ·)šœuJL§„t«QnÀ·¿aÞÿÛÆs39rMy磴ÛÒÝ`2€èeDó¾×Å$Ë¡½•§F–¸­L”âRÚTF›XrEýùó|•*ˆª4šaªk­.¥m©fãM’wÅSä‘È*3&%f Õš“ÕZ„u6ÜV©( 䥓÷ÃL{ ~4B§$¸¤ð)*âã±÷¹8¡;«ðò–ôT¤¶¨¨*z®S½ðIʵ¸Ì·VDÇæÓ× ¥‡ 5€ØƒÜvã· M‡±36<`æ¸Ô¹‰LhÅSùº”m½‚Oé}Ë/J–`8òúM´ ZÅý7±²¾ŠÃªÍ£I¨·èaä„ Z ^ö½† Q*ôƪ­®gY ›„þ^ÁvÚæØBãê]6+Ùåè3à9ó0í&hjh* 䑱Þ×ý±ô ¥Gc'1!3¤ïêTÙ…ì,~¸ŒÇÌÔåg7aNqõê\mÖJäñ¤ØÜZþ9Äæ§Z§Í®I£ÕÚS¥«åÙJ”Ê\h›$j…[ùMþø|IýÈe¶†¾%¹K«fh³)/©—5 yÆ”RA¹QÜ¿Œ=Ei§×O§°úÜS¤6ÛŠV«ù&ã‹ï‰ìÊJëk§Le¹qRAdnxJÿK`OøK1å¨/Ë¡Ôês‚:-N}EM%=›]ûûƒ|MB‹3FŽÀ±)¹ýÚ[0)B#ë–ë©êÈoÒTüDŽG×Tì–£!E’Øwtë6÷çí|CýªT3Vh¦Ójñ ÖZŸ8µ6onÀúO›mŠë(Ó)•§C±Ò‹!I:¯Û2þ+c­„σ Éte·àô˜õO†Òæ´¤4Ê* hµa©¥7é7àØÿL0æÖäT”ß˲¥¸Òˆ)±ç ~o…ð÷*@§Ê~4˜ÕY ÃIQ*Žâ¿QÒ7µùßlQdלQ.تZlú6·sç+ò¸šÑ‹Q#Çb*ÙTD!ä-_Ãn|‘‰—Äe©©°)®FLŸšJ¤¥(*³d·é¹ßåLΊÿT)ͺô© Ô¤‰zº©?ÂI<&ø9K¤(e©j#ª ëŠrYBl*Ú÷î?ãqèm¥Pß‘ R§5ASIYI¶¢n$¶ØsËíÔBrË‚Ê ,m ÛÈÕ¿ØW•óm´å=¦üùmJ)¾”}G¶Ød§Q!S)”é =9ŠH/º¥\¼w½“}†ü`°Ê1Qt5\•›$=÷Þm·z ˜’»X"ÖIî ¸Áï™…B}‚ü…”­ •9©D{«œf©¢ ÷ݦ)Ö^:ûeëÜ‚¬{Ûkc]u9¹ÒØ‘)Ô$©Î¦•müÄpÇ!"ĈJöNœªF‡!ºÌh²¡Å»oÈ()é…lA¿í|\(ùg.®dƒ´ˆôx«kò¢4î–Õÿ™×$ó·ï„riÂ[õšƒt÷ú¬«T ÙJ¸=îOó`„)”ŒóHS„©‘*il©=-&ÛoÅ»ÿLs’TWªÙ˜ó;´æ³¼OunSý:£0½AM”ÿŒn·øOà ƒÐÚ.3¤~J•ÂG}¼ß ,Sâd¼Í9ºÊÜ­Qj &<ÒÞ§â;§ý7H倠6<àüH°ðø7!ÿS¨:µ*Ĥð=ì-çœq]jáQì tzœIPJJK—Ò<ã )jŒå Úkò™†ØkgwB‡½ÇžøM¦Åaªz °„— DnwÛêp·UŒôꌆ[eÀÛ.i‘ 8¤†Ây Æ"˳@¶²¯R§ÑÛÊ5*  iêõ¥\X$ùkïÛê><:\WÐ]Û-¨)VB}[ü8;AÍôq—¥"TæÜ‡)W Òá Ïpq…S*š¢ÚúE *J´[I½øÃ© TQ‹°M.³:)è‰z ‰Êh•I*º "Ûﵿ÷†•´üiý Œ݈±Zޤ¤‚n-¶÷·8ךh4ZÏÁš5F1™‰r[qÝ*Ô %D^Û¨óã"×ãWéœe.¥âÅä!j¾’“c¿÷þ˜çMè˜P' ¥ú3MÂi/$-ZX=4ê¸ÂU_3Öi›È«LAS®4Pu!]Ž«L­V&Qó[PÞ‹Q©@}a!P–ÔÉYÒ«òy¶ɦÀT–$JyÉ 4 p……‹n ¶Çúáñ(D³äØj'á›*³¢£] ZÅW²{_oøÆj„g£gº\a”H*[ï½;ð/Úø#F§*ª¶åPt) ÿñ­²€¾Û ÛêZ¢æwc©N~9É:癩@¾Û`?ÝEÇBrÍTüÙ'5S“izžÎÅ„($›{_rG|vF[Ìp~¢ÔâÓU¢5667½¼á•W§Ô! ³ˆh%‚ᶭヿ8©´Ùä9 ä-¦š*Z†èPïͱ•ÈÔ‰vTö䜩‰•&B[(m:‚‰ŽøëDr$¹Æs1[í­m ¹Ë`°°íN¬Óì8˜´÷ ú‘œHºOo¯·œQò܈ÌÒ§ˆQÛ’”4I;º°n@=þ¸Õúõ_”š¸-sÛù‚E-Ù§&@iIZÖ‡ Ž Çñl2Q³ÕN¡—Ü‚¶š/&é"à„œI¢9U©æ‰dE~pV’’@$ì/ã†:áÇCðÂÐ6qjÛ|gд£|šjñb++Ê!4ûí«R”ZÔ§ ;óÉ>p@„¬¨`.3ˆWU. éUÉÇêê®Ô²Ô•:ŸôEÂ’ n>Ç*1ë.åvŸ§#¸•‚¦ÞïÇ8`ÌdÂè º]O©3üÀ|jÖ¾mÇØc´)'g°a¶ˆ‘Ù%j[†åÛ‚6;[œr[9’cQ#¿L}¿I)YPUÿàcJÔí*^©2ãi`jM’u_Æ%¹ˆšì©ï0Q”óZŸ-©õpì¯þñ;uÙJÌæÜy¢ÒJ€lzU½·ìpÛX©T\¦¡Ô­§þaJŽ¥nË}ж>Øó•™v,E­K±QS½Ï;ž,¢ÌúÛTëB‹^N}åJeçõž‘(±Ó~6Þþøk>±É?‰ºìèn'SJK‡X>ÚøQžö`ùU6Äx˜è·Ì€V6ài¾ØíN›_‰AaùJbOÌ+¢’‘s~åWÂÄ\mš…%f'‰²“:e=M¶BYqmCÚØ˜×]]n|¬ˆ/TéÉGæ-ÀN…ã°Å;å&>aë+Ô Ü6J\>àoƒ±é(¥eN«c­˜ò$06 m[žyö8DÊ1ô¸Ç <ƒ²|˜oå5¸Ëà,\I²’-¾¡ü¾6"…ó¨”&WÞj—Õ%-Ç! ZHÜÿ/°·×5P›~nª¹©o,¡Öʬ°/}!_í|7ÓêÆ˜Ô*ËâCh*,,$6vþøÕ«l¦ r~¦‰Ô¼½BŠ ‘‹EFJÔ P®Àóûá2§˜!EbRZr2ÜAРÔIvÜ_ 5jÅ!In˜Ó ¼‘ê ÓtßÛÎäÇ„ôÖnÍ:ÓÅì{}ðYuù÷`,ÑOiI¡*"ÊTÑ:ܽñæFrCeÂt§BT«mÁ·p~˜'vaÓÅäo¨a~ ‰q«4Ù%*g¨ÉÒT oÞÜû|Ý®hµQf;HL”¾¸TùijÌ¥Å,«ôx p¯Z…¼á¦ûŽ1!×…Ý@²o½ÈÜøïQ’Û2)U*-H¹P}Vu2üµ a¿|7Ór›òäª-r§(ê³¶‚…ÈØ_=°P~¾±ˆï°4"*.­)lüî¸ÔÙ… rÅzÁ;ë=ð]Ö¤Szš§¶à¶½KR{ÜyÇdSg@•Y‚¨ŒGC‹»&ÝBÄŒm§TY“1æ•eI r9MȰ¹¸ÀÊ-î£bZZ‹Ôôª¥š«4ù/®;cål•A:¸ð1†9¥©-Í.»¡cOQ㤨âølªDinDyÀÊP„êHéúÒnl¿6¶­´8ãrcËJ˜OªÖÕ¹¹ñÆ ¾ÀÐä² 1š–§ËÊe¾ÔtÊ·ãgB‘ ¶j¯ÊÕÒê÷Ô?J­í‚lŠ@-Èe§Tεu•¥>MŽ÷ÇGâŠÎFl:’¦Òé?Ë·œM1îvWä´Ó!U @Ss)“>])Ô(!)mõß¾³œ`ŠÝ&\J¸§FCÿœ¶Þ)I Ž9äï†<ññ£”© *;MΛ!%§PCn·>Øž;Y=ü*y¬÷Så; ôÙÔ‹ií`Æýñ XØ?ìÜÌör4åKTé2Õ=ôÔ]2VŸ×fÔ°°[ûà=N—K‘QLE²b#Ë}˜­¯Ò“±7ØááÒ¤ÓàÓJ©AIü™ So[ùµw¿Œ=ewdÖkª‹5˜Ì)§@ZZŠ“k’I7Üã[ã ˆ¢Ï ß!Uz¶aC–ËTðü]Kè7'¿ÓÜŠr„FßzS²¢²4:ä•P;ql5×iËWBPçON퓲‘ÿâyB~WàYÁSyÚŒg[uO+YI#’N ËŽ¨ná·ÝEFš©l)· -&ú‡œ+T$6ŠsThËêÊ|]¤'`ž7W°¾š†Ë™nô‰l¶úÑté±x¶ @‹GS•JŠU:®YPÕ{FÀ°çÆUîYò<„ª5O Ç¢:ÄGŸm‹­@X[¿õÅ+’rªj݆›²ÂA7¼âdÔ ma(5&ºo¸ýÐ¥\›X£n~˜ôºô*MlL®Ã°TÛ dFV Û†Út”“Á=öºLß"|™sUj¿Uf=K,¡¿d²\ êäy8v…XJ)qؘãNNZT„¨aÜø8”Sê?%—`Ÿ’T¥+`]w½» ŠÛó:½7˜ðêw öÀ_ Ä8ë³]v¹˜'ü`§Ðéúœ¥) °ìs¥w½Ž£q{x°Âb—”šiN%JqÄ&jõ(ÿä“Ûé„ܨˆLÔšzªÃðåµ­¤­Æ†Oñÿ¬bÏ 2¼ó­5-‚ßT'¬ý Ûo®9Š‚‘ÕˆÝ*|z‚U§M2 Ô¤Ý ¿«ßÿ¬"Rç1VÎÎÓê„D‰'IS—tÜ^ü}q<ø{\b•©q‘ ùJT–[[¡Wñâ㊠§ªç”L7ÜXÛwß|˜Î<†û ©Ö+æúÝ%Øóh¼ü‡Þs¦—£€B¶²»8F\ÈaCˆe°ª¤ɻɲÏNüÛ›Ø8¢»L£·QeôBCíµ¶ðС~wTJd_‰I–¶g¢#Š €¡Ðõw8ººýÜOÔh¦—=ø4çœI@jA †œ+÷ ¸'ku B#J!þ»ºZ,HäíîàÛÚø"ú©f¨ ê/:vqCP÷6íŒ!©ÜÕó5E9º|Àã½ÚoIà ÎûZ÷©ùJ›QQŠŸV¦Ålÿ˜CrC`JH%'¸#þ ÃcfT‡eØÎ7¡-€A*·¬6çʺ©ë§-M¶ãŽu‚Dƒ`)'}BÀp<íܺ{SãÉQ˜Â1ÛuЮÃkon=ð¹1š±&EÍuå´•;"Ûc¦I½7ÞÄo|S²Õ:<ú+S]}ïŸR44¥¨¨(„ò¯?S¾"³ª?$ç#SÒ—.d4]Q,¨“nÿÓÙuzŽkuæÝf#JJ‚Vsü>›í·ïŽ¡I&G(b<šª™®SŒ#%èò´ú›%°Gb|àm*­W®WބÉeF‡_ÞéO{cÏÄQ™Z¨ÏŽ$V¦MRL¶˜:Joé:¶µ­†jF^‡FË,=Ni¨õ'Û CÍnžÀ¦& ö&x4V§UR„;Ñn-ÂÒÔ­ßÏÓW•é‡.¶Â:g¦@Jºbã¹HØbs\{4Ò¦i¤¦]8ÈÓ)Q¤âµ”Í…ýð-õˆEó)/Ê—¤èqÅž¢‰sýNØ)†èÜ'¦¦“[ͨLZ« ˆÑRžQõ¯P;ÜØwñ¶Z†äLRê1d±eF›Ò”­;‚•#o=ïlzÊn°Ö[?‡´ÌŠWYøÏÔâ‚nu ¯°ãëäUëñ "*Û,…8¥€.m{ùçò±?Ü ‡°uN–·ªm= jŽÁ -¹uÈú{ãLZÛ¯QK?‡HùT ZÜ>›_ûã Gæ Ò(qÈR ­ü/_ûcµM:±”ºêbÑœU”Êa±ßRnyÂVß*—8ê{âdõˆ4D¨ÊmÇ=]#©Vt…qqöÃêÍk> ”ˆy. Ÿ˜}ÏKM¨p ¸¾̤åDM¥Î9zš™ [.%±t‹pOqìpÕ–« Œ©_…±4pº1Ðtzɶð>دíNPìÊø˜v^QjKz©%"«\d©ä  ä¡¬µ÷áÑãRäI™-ù%Æ,}^”XÛÒm¶Ø]F^ÕP¨U$-…=Ôa¦Ý°·’ Îßû¾Uk+y^ %ø)i3Ü:^i┩ ÅùßÁÁ˜YRWøy˜ÿ9ùQÛÒ‚Ê4¶m¿îøRÚ“|Œ ê5BS­ê†ëCI!ÆœQQáD›œ#üOø‘SF÷W2ž(i %þ›6¾ Fþ5eL¸¼Ï^Ìm¯ è¦TÔ¤2éQ|¤^ê`~†ÞØtÍjବ¹‡LšÛ©(2ÉÔÊ»¬wÔ;}ðø‘(..O>Fýd!©ò‡Ã‰PææºüªåN*e-†æ"ÝgU¶Ä“û}“ríb••Ë’œZéëUå :,ÙOtyœ|í2…Z¤²ô:=bTµ Ä“:Ö’y%jòíçŒ}5”Ý’>ÇiÁ®–t¼¥º?]®MÅö'ÈǧÿÊæßÖyügã²åؘV­W¥S2Šì0ó.%JŽ·Ô¢yÞü}Èûc+°4Ó5)z¥4SEZP„‘}ÓÁûƒª§UäSPФÒã%zÔÑvÁÄ~ ÀL6GŸ寕þU1\eA)VÎG_ðì­­mã@*{MHüº|ŸY¬ÆmÅÔ[Á$!Ëï¦Ûoߌ6R+™‡3Qç£/µÖ,‡¥¡KA]À°H±±¾8¶ßÌUÛ_Ï´¤†ÎµiÔ¢²m`{ qÎ:ä*¼*>g©Rþei˜'¥õ)ÕÜé b}Æ*|ÿ"g'ìCÕ&S—ÃÌÍëË–K¨a'òÏuâý‰\¦W¦Íb3ÒÊæ´\aa+H½ÅÁRw¶Ø£fyôÚźc+•2,”ôç6Î¥inBG;ï|&fJ(Wà?J‰%t§TDÇÕ ²¸6 sç{aU­|ì^–ö~C‡x /2‡³¹ Ïýí0ééK®!hJ™7v7·Ó¥:ÛA Š..5ÿú8Æí~¬ÞYœûä!¸®È}ôØ$‚­Ü{â`1”?Ó,Ò³3ë©©ÈðÙi†ÖGIjI±$ó¸âæÞØ-I}ˆ5º³)¤9I¤1eÆt2¤%åwÓ}‰ú ‹W*Êî7!‡þ_¦:®¶›·sÝ$‹ì;ó¯ Ó~0ëmO}, ¸Ø-òï¿#Û¡íÇV‚ S§¦¿˜™ },»bÌ[éZMÅÉ ÚÆüc†d¢Ã‡EM1ÉŽ>…­·Ô¹oA¸6ìÖól,?YPÍŒU¤1%K ¡­kQtƒµˆ±ÃŒØµJz¨¯¾ˆoSÞp‡› jQß}FÄãq¸c—Rn©3V¤äÈŽ3)²ø/¸U`†ïú¯É'Øm‡Êrh‘²º¦:„Å ¿Qå9sªÜ÷ÂÕJ %@•k 锟— V€RNÄ[ýñ‚m.,œª£¹-²ÊR?Ë£UÖå_L! Š>Ê$ت}:f!6ƨ‹Ô«†ÂÿRµÿ®8®3ãŧ©ÖT7Y°¿°ÊÕ{¨âXm–—( „…/{bHÀéñªßäcÈqÖ’»&!q'ª;$›[@Ã’Œ@\η™Å%S\n†ÊKpë*ö½îR<Øb†Õ-%Ç„†ãE%A ñoß!äVÚ1Tù!Û-ž³m¥Ò`H]÷À,Ù0;Ñ¡ÇL§ZuÀ¤ËŽRlwA½íûcMí2‡Ôº `òVäŸÐâtulUìF4f2ÿEI)mÅ!!#mÉ#œ~)Ê­:X“FyrÕ–­A)óÏlk—T¨Ê¦Æ€äG\[ˆHmà›8«ÛÆ×çú#·#›¬Ç¢dææFŽ’jĤpæþØP«ÒLLÄ©M95 »iXiZ£²®vÛ¾ø´T)ò&ddS–élƲ‘úÅ·ë…/’ˆ–¢RcÓ䲠ΩnÉFç{ðFØìO@ÜjäÑAÊ4˜ô†äõœ²·J•fÔvàxÛê´øò”§âÆTU¾Ú›é)>›Ÿ0BˆÓ´Ö\=%9Õ…\tù߸ö8^Ï3UV–ätXSŠ:²J€àŽ݈ZÊ™%«QÍ*„ܪ‘Yu´'¨¦öN‘ßíƒ4º¼Gh-9Nu.°+PZãrq•”9›3T§j€ÔBÙ,Æd„¥"ÂäîwÂíqi d¹²é­––ë^‘½®7ÆÔPß¹Ÿr£hùJÌÕþ!u-=. Þ”¼¤ hJ{'®3"…WOX3æÄn÷ÄÿÓ¦t1çìÒÂéÊn)cS‰ÐHQàÜò’=¯¡iÕøt êå2ãÒu*3}" ¤Øw/ŽüŒ-øùtoaÅù ›uòMàJ’ÔåÓ&¶¸në–{ïŸÃ}n¢ã3pá·&2RGM^ ž‘Ü÷톷“Î¥°ìÔ¬o cÀú (ÅL¹Ÿd©T÷$Eé$þHPñÛïŒß°亖ÙH¢6ú`4û¤!çP4¥[„$ñ‚õHHŸIz!CJ,F¡}Ç\a2£¼Øj"iä‹“c† [ñ£SW&Sí• z’³²|œeaö#þäMªlz†cr‡-ÒÔÙAJ| ì݆À{ax4r|…Àª<ì¶–ùùp²…¸öúa‡5W¡ÂøÂÍb›/ãèWGÔ°B·Qlçu®ºÝ5½:Ip(KC’ÿ\[’ÀÀйýRÍ >:ŠÜŽ—T´Ü öÜ_¹RP•›jšä:¸ÅAQRáIÇoù¶)õO‚LU> F§51”Ö‹Iêœm6+U·slO)y&…—iCŠë²ªÎ6²¹Î.ëZí¾ü}…°Í“ Åñ&àÑÎKäjy,*šê$8°'©}ÀúáfËqÈñ¶~VöÝ´¸€¯Ó¸ñ¿Ó©ò$ÎËò#ü£<”éZe·|˜õVŸKŸ!åÔå' Ú[JQ¤’³¾Û b¨ùvlÌÌÇ‘f¥óÑò”©4Øo.’ì”ô$›¤q‡y™Z4L¥D•R'!­ô¨¥..R¡Üûùߤ†"eH”Š… ¶€,à¿Q)7;\}°¡/<Á™VŽÒ”Ò= ;u¨xÓÜvß9 ò¤u z`ú¥5NÃqm4ã/¸’´¨‚y=øÀÌ…e[â8“ÌÈÚT묡:Ê@$XþÝðßL–äਠGT}eHqBê}I<ÿlE€r»¥J’¦«*]€,è$‚•[ØÞã\Ä©C âèië9å<ÍB\7•ÆÉ)BN”/kì{`E,TWðÊ‘-é+\6ƒÄ:­AZÅ”O6½…­¶*Õ©Õ˜"‚ô›’óeÙ cÖ›ö¶éß Òdej->aàÃP_A« ídƒâÛñ¾øSùbÖˆ³ÜE‡CŽ)JÄ/¦”©§W¸¶ÿo®cO×ñD°ñh v#Nßq€õÄ£OëB}f"÷S$ßka稨‘RD¦^ˆ–P”jiJ7ÒØÛµ÷ÆVëf‘ñ‰u¼ÕuE∓иä!ÇÌutֻ씛\-H«0Îaz©KhZIÔ õ­±D‘Mü2¯":1“rë{Æà÷žN4§³êèÈyIiµ#Q ÞÊ'‘²±±YèDf*aèUªùtºÓJCÅjeÅ1¢dhneje cššòÏÊKl”(•,÷½ûáÎ^®C¢¨T÷cÇl(¸•€ÞŽøR¨ü’).È}Öט¾l.:Hä'Mø6Ä­¼öQµ"¦¨qT¶Y€˜²ã¨§Cˆ’”ÀÝI?Ëï £/4ô„–¬ó%W >@¾Ä{aC0»=ØåÏ[q–ž‘Q(øurSõÁ´?·DBÜ–e©…Iq'Ò•Žÿ|;’~CÉ×Ê>ÂU…ªffqn8‰¬°«²’æ Î“°¹ÚþØ-nË} RÔ:{€ µ½±­1j”ªßVseQA_H¤–ü›ï¾=²Ò¨ÉJ~¶ÖTm¤öð‚µäê{Ž´Êt6–™y²n²ê;žöúá®+Tì¾ê$ÓÚ1&8GX¶½Ô{Øav5&{ :ó @ˆ‘±p-7ÞØÛRvòŽû︂ Rÿ7kwÂÙ$ÿQÙ”}JÄgŸ‘þiÀ“7ùnMûâC_Ó+2KoæÑyE*ײT›íô=°Ï22fRP¸•U,ºAÏAW±Û Ñ)1z\¦C’\|)dÜðn9<ÎQjâYò§Z›˜Xa•1^m’«$ýÁÃ4j}Mèmþ2Ëa@haöTGP[bF<Ι2\ °—*WA © |ïsc¹4;P "©Qªô‡~^LyˆÔ—¬7[}ÂHÞûbɵÚK#‚h@ùº«V¡Òƒ§´jÔf´ Iìu±û`uÙ ±£RSõû–òˆ+t›nV8÷ á®´Û¨u&¶ÕÜV–…ÖNÀko‰†WË•ºtbD‡—Vò\!@_'‘Ûa‹b+‘ ò¤˜º·%¡Úbå„¶Û!N/`€’•_Àó‚Yuêd8o-ÖÐét¶´-Eàö¿8NvrÚ‰%n;q©·TB[>ã¹÷ÀuQbÉÌo*CËrnGq:]ÿPð~¸À€I2ÎÍÎJ«ñ©”…ÝÔ)múTW°ð9¶%U©ÒÛK×9}hrÍ’b/Û|<å9q))ѦK§[i]µ6G·aÚ[.?T%éÐÞ’§º…BS{ØXw?¾½‘؆ò§dÚ RÒúž\‚¶Ô.Z.w ÐâA¢Ñ$·&:~IiÔI#Ò/mö²>›::ÃõW$ÒÙ½˜P ×bx \ñФÌ×—)¿§SëY]·`H -4èK¿ò›ó‚XÞ·qr½B|ì}ú|¥0ù[÷S‰B›(Л\86ÆË™QÊý8ë4íÊÜ$VØ‹q·ql«=Ô •±NŽÓŠÁ_­ ž×äýo…˜´:sNBR]u„$­a(U†üŸ¾4c`ÆŒ©°¢{¥¿L¦N Ã9kЗßIò® ΦOeäT¤À}˜ûž³ÈÝfÛ›xð0¸¥G—P¨›yøŠê‰ZÊVýH÷>1ôl7Ù­³ khm …¨0·mÇ|v{N"2±=©óTÌÇK—h¿Ä# ¥7êBwç϶ÿ°ÆŠc«0J¨ˆÈh!j.¨ÚåBÜ>çì¥B…Bzt¦4”!J=4ÝÜîHìoÜ~Çê+õ ¹T¸…é(=u–ÔAØ*㑇ŔdH¡ŽÓVe¬;O§ªCT÷ç6Ø.8Û(²Zn×.8xØðö]J·ñ›Rnz¡P”ÈupÕ{²PUk^üÿKaÂ4©” ¾Rº{uªeUâÍP­ ;Ôá:EÿM±HÈùn5 /JLxì2ˤ’ÒPäxý±M•ÎÈeb~ù©”J[ët%×;¦×së¶øÅZaÚmB˜ãTVQ¡I¹*ÓÍÿ|4ÀlG„ë–i¦ ´È# šR…!Õ ÉANÇ“9Ü}JâRgŠßBsmHCËR‹`Hh&Úík¹ãŒKJrfa©óV¨HlhM‹>×öðxÃðK °ÓIKRÑ%Õp¸68N”–Ø ­ú”iÕ‚”¥ÔFN¤©Gr\PìF(ŽÀT&‰‰ÒêÎÍ’å.‡$µSmÞ“³ÑJc ‹• &Û ð¹œóÍW+|RÊð·'¸©Ô©Dmp[jpI·¾$ΉN¨5´¶ªœ‚”&êÔ‘Í»‘ÛœjVIX”‰ÕhÒcIbIÑ(ZÏþñéáeB ™²!7G³MwÞØH*Ū¶†gÒŠ6zÛ ù6âÝîvÅ*•ç³Bã¯cÎ^Èpb±råȬÉd‡ ‰Ôç†Ä{[³Ó•h‘X§Ò£4”áÔT CHòþØ—³UJzçR©³,µ¥Ù-Yvîo{ÞØâë9ª¡ñ2SeDzœˆÀ2ëËRJ”IºF‘kb¾Ög3s+te++*:zÍKu­%A~¥(ÔoÞØWªS #á”zS2&)ÖXXAueÅ{'HÅœ¿˜š–ëM¿ Q]rÌ2¥¨8„¸*Ü`³¨tÊkf(‘ã¼ó„:’nR„ÚÖ¶ÝñQ¨ØÈ^¡:œ L_‚¹2<‰cªÜy QV’àyX&×ßÀàà }šŸà®=I­¿OŠðRœ |Hð<>—Ǭâôš­52)ŠôGm–€õ›ZÛì@ï€LÅŸV¦À¦>”¼úI!A}$² ¶£qý®q"žW EGO‡ŒÐŽBÿ÷$¦eÇ*%×ãŸÔé'YWpn;à…V—× âH)õ¨€Tƒäe¥Ñ)ÿ"½E[m¡‡×ÔeÐ,…«Hs`A>yÁ¤J§*.™Ñ!A!À.8ç \HŠGj'ÐãÃJŸu2Ôþ—•uQ ,±ÿ^Ø^®P`6ñ]1Æ#IVÉç‚’ ÇÒØ`"˜=]ŒÖi%GÕ¨‡¾ýÍüLW\žƒ“møÌ}( Žâý%$‰6Ø ‚+¬¥ûC¥½ðª=48QÒËa2IkùNÀ lxñÆ5Á«F€Czt[@,~˜ùóðy•š“õ u%B/ ¸!‚B»ßœ2å—åS\—G¬?`ÿà騗Ùà›Ûî{araÙv¹I_D©äyñªró% ܲ)ÍG7D¾†„:“{z¿‰[\âyŸ'"ve¥Q›”[m’§žu´‚ØÜøãö¹˜2Y¢eú„µIm ËÒ­*JlHH$ìvÛš‡M4˜¨Ò’¤ì§æ›w°ïˆ„îMGYµÚtjÎKÔ·‘%„i)”ؤ_|yr©M£!ºK$:ãó§Ò›ÿ5»Ÿla4p©/Gf°ôZ[¬“Òi{¤[ëƒ_š¦ª´ä¬ÃMeÖHèM¥)°¸Ü{á[R#ìÃê¤Î¢Õj•1-¨ñÐÛ z`kc·<÷Çz†R•X«ÑdÁª-˜á@õ&DZ߶×Ç|ï•'f&ꙎMµ…tQ©L—ô‚ 6ãrFþ0g%É™;á†_ŸòáÇŠ•¨ O<ýÿlQµEÜ0ÎæŒ¤ÁÀˆ„*^¥ÚÍõ ¾Ö¿í„ÙóŒÎûµ¨è‹M ‚‰šÀ Y?ÐÛÎÜù©$F0Þ"É$m~Ø›r­IYhmþ´¤¡%Àà lŸP ó¶ø’7Mf ÐaÊ¢³"9Ôú€ ï`¡àýp:©JL:EÉ ”¡²–Rº l`Éôùr镞«k¦6¾œ6tëI×*óãk¯Ö"Ö¿ r ó±T4¶‡­dE•~o·|Rˆøˆ×}ޱª-3“#[­Æ¹m µ$öÀó|G© ˜–W¦:Ç¡HÒ£±ºFÞü‰º'æ2åR(ÁêÜ–Ÿ®æ‘cå[ °÷2‘SFEqÒb ‚¾ƒ)ÔVÜw'q…=”l¨ÖÒÖFùÊI3˜˜ôd°C¨Þä(w·¶þØýR˜ò³ÁöW*d‡óJHAP;‚v¾Ø)F^e…“Tò¨ô¹j‘¥m°X#›ž,§¾¦f*RòÊãÕ¨â–âš:’ã)Z/¸ä}|bmïâÆDr­©Õ”ÄqÇ^K-­ZÛ6Õc±'ǸÃôŠT´†¡¿ •2QÁ@&ã‘…|ŠjÝ­»W”âÝZÛj0 ¥´jØÛ¾)´ö©8°ÄI¦Ë°J}bü; .wbÜ…@®Äh´L§3Å99j"þ,µ8óm“d)#sôöÇôÉÂGĦȆÒC–cŸâI·cïlÌTÊ™¥Ã©=N1ÓÐUÈÒ}øç_ õG4|¬JȨGm)[¬ƒj¹½ÿ~1d¶ù7LE5XáNªÅ•LV–¶bFSfÅÕ q{óŠ_L@Ï] •Epkqi “Îýÿ®&•p‰¹j4²ËNBMÜm(ï«õ{ßS˜gQêè1ËŸ)(*9ôÝ Ûo >q3‹k\·;sdÆuª…,.W˸RçI[Øyòq=Yªf|ÀëêqTØ.Êê‚U·qß÷ÆôLÃ6}>K1›[*+Aá>UÎøé‘j5z†S¥¢¬‡iµîïNß•Æÿ|Q0Çw?-a¹ÏËéDˆÌ“PZBT´§K@[r-ÛÅï…Ê|ЦWÎgA’¤Ë z;À-*Gòö¶jHÿ•CÒa„­FÚ7àa:¯L’+QÞD¥ôÖÕßJ»+ÈöÀ@«DÊ8ÙH–7¾+N—%*E1–Ò£ÒêFpún¯káGñYqgÅKÈm÷$<h¡±¥°FÄïçé… T¨¹I ÕÜ/©ÇõEôèJSÍ•~=|¦7.£—ê•…>˜ŽCZ R’¥náCdÇg_ ÅÁ7?ú}^rfFŠT±ÔBš ܃íØxÆ ¸j{´§¢¶Ö×vžH±G ýmù”G€‡ä'¦¢È$¨j±QÜáX¼Wž–]VôuŸÒÙ“n>˜FaW5©v©ÑäJ”õJ¤ðØ@IÒ|x¿Œr¦ešUF`¨E§%¶T¤X Ž÷úà„µŠ¥qøñç3Ò$¢..Âü4RØN§º´ª*›]ÏBÞ·,<â®Í§ ]w‚¨±%"¿µFK‚"TãÊ`_ZOsÜœx©Ë–˜Éu–›K+téhržßôà­>² P$JŠÚ…MÛõ5¶tµ¹?qa€\ut÷¨¨–äÝM¾´~”“µ÷Û®m¯i‘鋦>·¢,˜¢ÊlJ»Úçµûc3ùÊ$*4×j+%õ,% im~±~yööÀ8(Le»$É}Ê¢ÓД ÁVÆÃlT©Ðiù~*Ëh î¹·ŽOŒ!N›G¨ç鉈¶TE½\›ùÅpä?× ËŒ Øöh¬×s…j!¢¦ý>;®„J1ˆ Kc§ß åêMbPDŸ™ Ò§–J]:n Õ÷Àù0tN¥½rÕf“¾´ÛÍ·¬En1£¤-¢Ho}?ôc#æ]ô<Å..’a&þ|S!L‰>%×$0¶K!M8RÕôð{ãÔÚl”Ñg1-j Ë@BRÁ¿#±8–2ôšM"3‚¤©µ…¦þ”_a|_)j¤q·bª©(6ò©Õ:“kJ›C^”¢üß‘ä2È¡E®8—åS>VaPé>¦†Á<(nF*l°„ÀC¯05¨úT»Ç{ßT½*YmÖV7{xà„9EpE TÕÈÄú5Z*—! °Â²Ãj7yC·8a¦ViõÌ£MžßV …0Vä5:VQ¸ýÇ#¶hŒÔ)jé+'Z”l›øq–âÐÿÌÕ˜ôôJ“0ÕN Q&Àyäañ…eìaƒRÑM¨Æq‰,6°ó:ˆRMÐ{~Rp%a£œjM%´¡–™J†ÊÒJ›/æã'A‘®Ëô¸ñ[–ãzd"*´#ž/ÜŒWiLS©Ùz4xQã4µ#óÒ±e•Þæêî/À½°q 0†f5ò-jŸãܨÔåDôÛ+sPiDì àõçÌ×* %‡EA¶œ="Ci`AäqÛúáµ–(ä“&–TÒÒ­“¤êöŸùÂÄeIžÅ9–*¨i…—}+p¢Ü_›‹s{oÎÝrU䉯ÊlÆŒµŸòËyèTæ\æÔ⚣Ôêì=·ç)Õú¦f­%ŠÄ§ Œ;tGqVB7·¤ÉÇJ5,¹1—_L èSÄÛNö°ñqÛáe©µé.æ6PÊqE.$$¥CùoÈ'{ãN5ÆŒZG&j¿á@~‰ìK×%•+¦Òî¤ú†Â÷ÀŠu¸’—$–!ÿEH¨X­öÁZNe*cTšÃË —:z $o¿ƒ5'ú½4¸Å®¥±óŒÏ—±7aÄ@ì˜O¤B¥×"ÉCeN 8Ú͈¾â×ÅO,æYê¥È‰òåM·2ÁIkNÄ#ž;â™+r ÕÛ¨½.#ž–²Û'…¸>ØfËÙŽ®í8Ò[b2)rÈ’•”©Kì;}ñs‰™;&î„Ðç7æX®VSG[…2¡¬65ŽH8]\ØOFbÓH„ć‰V“¤ºy$ßþp¿XbŸ ³’˜ãJÒ¹Ž©ZEî7I>ÆÛ~øiµ9&RÒ¨¬4–Å­½Æ ŠýDà5óuFv\ø.e*+u'ÔàDv¸ UÿP#Ÿ§õÃ8fUeį1Ҡǃ I‚òµ§mý*¸"þ>Ø\b•WyqšS®ÓÚBT õ%WìG8 U¬®\i3q˜¡­ „·²…¶ ã¾øÖ¯iDH6 ZîP‘ñc/K˹†?JTéIC’Œ’M¬.NøNŸkÄšü*U2˜nÁN>âHþ%¶ø‹ü1 Œ>(Ï8'äiQ”¾ K§„ ƒp¡ÉíÆ.µyŒ—bUYoñj"T”ʦ„‚µ¤ÿþ3Ôo늾¶ÒN•!DZÖäa).JmN¦¢¢ìW%¥jr0( _¹Øy¾2VþiRìGPC…! ^å*'Ç88¨5™`H~Crt)-¼´ìMÎÖka5ÿë( aÿ‰ù§.7ðZ›\å¼úZˆòuº¶Š…ŠÂ…Èñ¶&ÔÚv“JŒ¸‹•Vš¤0ì…•(ã‹ýñK‰6S)°"¦Y`~bŸ HÀH°­åÊ‘i Óñ(Š•(¤­nG_ †ü¹Ù ôIóù?/¹ñ:™’ä¡a'¢HJ͹U÷ý°FZ§T¿ `6_zá•$ý¼¿¾MˆE5ùæsÕ(ª)D2á ‚T9ýŽ>Ôz‹±\— ÃJ\J”€¢KKÛÓp=ñV$š¹5j70¶ÑfD†d<ÔGÊ}.“cÛlGfc*ο&,öPPmýô“}ýͯÛ§Óž“ž· ˜¥i=U$ìô‚@ã½°Js©PRòÜl6§ƒ}0èô“À¿oqƒ—aüL*êÀ؃i®Q²ý~oÌ¥2×#R:Σ[’.R-ïÿÞ=ÃÌnUóJJa—˜a‚Û‚W¡I ÚÅ#’{yÁ8РÅ\G¢*4ꬥ¨¼¤(:´$ i7&ØLÌpcÓjnTYV—KX”i$ÛRmÎûûâzس:ÇÔ%_Œìi S,!é é´–M­ìG‹o|6P*Ê‹+rd•Sƒ}4ù®97ó‰}Zn|Úd‰RcHe«î-DÖŸùsz5ŠjÖüfÝqÁ¥=Y"âüŸ ‘@P5r¼·×K£‘ó”Ç ”‚-`o¿¾ÆÜàH©B¡Ó*Yy÷Pú§ào{0æú}ôªãî8ÂÕ0Ôו¢I¨°áP¥8?R­ºJŽß¾>†èª…–ÓwÍ¡)ë«ÐU½•ãÿXÏTuŠWa-mæNº´·t)"ÚJ?ß³`\¨É‚ÂP¹ëdÿ–Ö­<_ÿ¼Oómé”ð\‰­Ð€²’îa"$)Ò¾Mù©´$:µ­AWÝ€ú`ãÃÃqBaJeAÊÎ.QÇÁ!ÆÔåÁ7þ¾Ç³"»XTùÏ%¨ä„´­Wó·âZPœä™ÔÖ,P³k [kxÆšVèòÜL‡c8%)ÐÒ”]oQâÀ¾ØÕŽ€ìfŽ4 ¾ªDošaIqN¤«¨å‚Ôà<ÊÌÊæa9~+S:©¤…¬wÜmoë†*uJ¢rêh舟ž‘©,ºµ€{›ì¶dF•‘%Ia¹­Ô+rJyK²R‹puúpºmf û.¡ˆ¹]†E ÒCfÅCHú{퉦q}ƒ“Þ* ¡]œw·›à-'7UÊÑR©‘ÞŽR\õ@“r=†TêÕ<ÜÒ›ù&–—°mÁ¥Õ'‹c6¥rMñš©•I`¡Á)ÇÑrúÒ«_{ñõãŸ2-ms#É“*€Ks«îyݰ´Ö\RÓ5Nµ)M¥î£ŽÝ*±¶”øûàÕF«¬¸ˆ}7—ëJP¤¤” _csа‰!~GŠ«2j”qgÖv:T—Âí¬[…vÛ±ÄÔÌ¥åÉŸ‡E}wºÔ€IY'k’wÅZ"O¡S“SN4›)Ôp@mÆ/+P¡Ïb¤)âCÅwÒ“Þão댫˜øebõB¡%—Û‰–~«`$Æ–íÉBºnõJɺl¥»cl©¯7žÞ§¡¶â(8#6«•jào߯5"%f™|©×~YÅ) … œM¹úÿ|hBÜäDZyÊv»:\ŠÌ7­N ëV×(Ö¶)qM-–´žˆmät‘íã y]Ø&ƒ.¢Ón:Ûh}•7êlŽéÛqm°Z‹™™˜ÚŸ}¦È.Zʱµö8Ÿån|•ítÉŽw™T¡×Yˆ%˜4»~[¡¢¢»Á¾×î_™IùÈ’¤-z^MÏÌYC~?\ ΩÓså6,çÛËà©1Cw±›ö8avˆÊ²Ò•´ÈJ,Ó ‚Û9~ ­ìí $ÆlÌÜoðª‚ÛN¢R[J“{oû[ -F²æg1&%¡E/NDÖNØØÃÕUR]‹\”õÙ€Á?·ÁJ{-jS‹²e@“Ôw áAÕc*#•1¥Ê3aaè©ôúÑo¥ï‰ÕjP£Vªp§¡(uÔ% ,„Iäýí†iOS“%§ŠVþéº{l æÚ%;äéBáÝ#qýŽ7Æ¡d¾Î™n™)F%Ì °ÛŒþQmX°ôƒnØl©Eš) –×Rkú‡å6€ c| Ë/¥^7ML½JÏMÐN¦ÁÂþ6äaªf` Ñòû­7)™2”ê¤/…\_éÎ/Ð|Œ ûˆSjmÁ¨l8üt€_EÊvÜöçs‚íÈ9©56[)m,Ü;‹þøN¨Õ¡ÉÌŽ2„‚¥(¶òskñ}¸Á¼§FŸb£Ó§(egvÿñðÊ”,‰fpgŠ"gÔéÊ˜Ü •+¥Ó<_Íí¾dL}ÕªB’€.B î;[ aq£FR m  RÖÚ×Ûa2®¿‰ó£FYz’âB[ˆê@P#}HQïí‰"þÂI€=P†Šá« ­¸ðDDºÚ‰»fÞ‰Ã\Z ѲTCcäÜ:Ú­e«WêÂ…/MüT¹DˆÎ6ý¤¡ásέ‡qž*u'ß¶µiŽ–õÝ@6íí€Ç´ cJ.&ÔM?+È~`JR”énâä¨ð=ñ<‹JyšÄÜCEn —§N°±Üß‘†¹óêµ8®";m\u/Ô¾G/Õæ0¶PaUYXê2³©…$r vØøç]ª¢úlÃéT”T>RCï¶Ò“¬¶WúmÙ6ß팦¸å34?I…%SYZý)q*»@'}$‹æÜ`ʾ¹ª·_aâO¯}#ÿX÷*—-Ú_Bt¶TÛ†Å(G­Iö<ïçœO­eØ2¬ N‘H¨üN¨KœÄÄËiÈ.6z.ÛeoâïÛ©¹ž ·q¥¸‡™YBš}$9§$[ƒƒÙU1¡Ñ*?*´´•¹éNÅ@¤` ˆ¬‡äI5¬:làHÔ-ÅûqYÊÔLÿޤ5˜ï•jNÕÝ*ž ¥ÇYH Ûo# 5z|(‘U&n5%nY,0Fýôöúá/.SÜ‹*á7ÖžáêÉm×HHO‹q«í†j†fL)ñ˜™JA6KŠUŠTFÀøûcT*Ô%Søö7PæÆ—¬â ‡.6'{÷¬(¿ÆFå)ÅFS÷mKæÇßzn^FfšÕF®˜$†Âb¥ !Õ€9 ’/„œÃ" +!è•èéQ[…ÚVGaµ‰Ç#¼‘u±3Õ$%UHø¡ÇºSÔX×Ü_ÏŒ3&€¼9¬5bVjÜßµ®?ãªl¶º2$¥§"$$†Ö”þbÔOê7ÁÇ>,fSÓ¥!Q"Ìh…-ôÙjq®“Áólj4x&b„üÍ%Õ8áDgÛKV+\¯@<[¿Ó Š­|åeqD&ˆ ·UÇ fÀîBF0Hø¿š‘š P§åÖS¤Ê‘*´da¶~oY¶;°åÄ1ã*J%3¡‡l’yý|Œ#£«Ï#a7{CÑ+…ªsÍ2Ðt¶²S¦Ýd÷¶çúá4¸™‡?T%9N‘Oy…„'®ÙAsoÖ=½ðE¯œM<¶ôgŒ”¥« «èx8ÜüGY¥ºìÈf,ÐÞ¤ªâúm}"ßµñŸsFiýj1_5ÅœªÚ)ã½!RÛT—°BAå&üøÛ š’K`¾§c¨!Ò¤/؃Ü`-707'1¶fDÔqêÓ!6NÞAäâ’ªŠkUj,ê"Ô^v*(PZ»“àv±Æ‚̸‘Ù/Ø?g&(•ÑÒ¶˜Je¡\“I<á3º ®ž¢Bl TMïÞàù¾5±iÆ„ífUdSéq€rYLemÑ@zé°þ.l@^Ì Œo‡Rë°dSkO”ki 4-Ûðœ/æ ¡”$¹LróšmVÖ’¢í‡é±æãÛòáÕ¬—MŒ¦Ü¤ÕÒØ.3 eG‚lg@@-+œu‹Ÿå;K¤Õ:ŽýCï¥o:»èxp/µˆÞãßœ;W[ªf:zQMrRC$,6ãqc¶1K5JmDĘ©5@·Ëm= )´Ãkl=ðýL &,8õ”ÔÕØR Hŵ>ý'ßoÕiU*r+RcIq¯þDhØ´$Q”ǰiP˜ÄLЕ4¦¾qWF#uŽ¢o`«Ž97À†µÑC͹èPÔ/¹ý°žÆZi¯ˆÓç-ô§«,8’Uú@ýBÞ<=JÌÔAI€X¦ÂJÛe:”ŸsØ ;…¯b‡¿y£å×ñ%ÉÅ·DÙ Ž‘¾äظ8üËùf¥E•=/UœSeòÐu–.þ•([õ[íŒ3;òó4“*,ÚK%+no Yµú¨lGÔáš‘—sUW->üyzßM‹®È-ÏzNÄùÅ-Âêy& söE>3·Ö—"C¬¹­ Pºî{Œ6Db™VËʼnމˆ%I"ÁWðvÄšM^\q2‹-÷Øs ·Ð… l@¸Üß¿‡‘ÅB®ü𬢍°u¤+‘ÇqçšPëì’Î~nQ«µ?‰5¸[vJuºÒQ{ ~ÞØi‡PªCd;Teø.o–Æ¥?˜ ìF3”Šh­˜ÑåÅTvÕ©JQÒ¯~p±I—ÑfLÊc ¸ó-."ÅÕ ìæø?ö­ýÆ %UÝ_Q ¥a䀫íÁ6ãÛ “«Ô'cLs©&?I.d¤¥i'kX6Áü·Xr½F/¬*—Ra*BÇ…lú`uw+5Pm qN4T¶ÂvIQÜŽ×Â/º˜XP¹Ú!uI­ËJØ“IŒÐùw[nÞ»qä÷Ã¥k§ &tÐ…8W“ß|/eX)ðþ™q—œp©Ô(w×6óYÖG^Vn=z¬|a¾|ò¸‰D‰UÍq -ÌŽ®¤gZ$]Ó¨ ˆ"ÿ¾èuxñ¨•Xىȑ3ΨÈh*ái¾ÊM÷#ûaBã‘Þzt„¶Ú @jà8Çs†çEÌ0‡˜CÊiRÖl ;¤÷·¶ù{"ÊÁ®0þ)"$6¥Óã0¨èl©‚¥›)DrOŒ)£4N¯æA@}µS¥KZÒR—Soá$ á{0*¤¤Ç‰ KéiV–Øi•¹§õn íÿåƒἺ q‘"OQFÁed,ïÜßúãŸr‹3÷0Prý0©¶d”)h*m—,¢£q¸÷ý5ÐÚz—MENL™’ßu²–úªþvò;â?'TžÎI¨OÌuiršÓÛJÒÚF‘©*H]Àäïm½ñ™™µªAz47Ÿ®«QÕK‹Ò‚£úB€:}­ŽdW  ¢ Žõ9‘œŽúfÃiZ½>¤ÛŸ|$~uˆŸ‡DvJ%.§ @Éßúâ•—¨.V2k5*µ54ÉÎ¥Ã/R„‚v'mì/†v„Ûm2†RÒõئØP4$ÌÛ-EÅAÃGIe—c%ýÖE±ú8ôÃ.ÙTw:Ja@÷HR{¤ÛÛöÁœÿEz>GRŠÊœÃÁKqµ†Éõ^ÛÛ°ªrœa*±°K—HÛ¹î=ðÄP¸˜ØPñfš³\LÔ²º\C‰:´Ø\ï~pµZL ׋s[Tt¾^ad)Gk‘Ȱ¿œ•F”Îq–ôÉiÊ‹=9¿&GVMî=ÈÆFbŠôš¤8`8ûzšS… xöø¢ª/nM¶º¨ë–j²rö\–ÀKÓ&É_U}PH Iý»ÛœÓS U&¹ ¦%™E2c¡½)'²ÒEˆÃ]ˆÓÔ4M“1j«©6_æÓÊ‘Øa>¯K¨H1ÈRCXJ—ÔÚMý\c‚’n"Xo#it£–ʩαN~:.âÁÓ«ÍÎ×ûáj….—U–´ÏŽºã…¢Bƒ?¢ÿÍØK&Êq ÏbÉo¢#»¸;lwï…†˜Š,4óÏC}æJ„¦Í¾|êI8€Ç(IUYk&°¸qÁa»”–•{nÖÇ!:CÉ[/!§Ò@ûs÷À•£RzTtÌqˆ:’ûÊZïbñ~øX’¬ß2>šK+§H€ê%ÖÁµÉ¶ß[(E 5Ç GÔoJX§æi(hÉu÷u±¥¬;Ÿ®ø!Q«Ò× -fÿ.ž•ðO¥[sÍÁÂì&*¬©MJié3Znî½¢ÿÖÛ팺Y©eæ¤:‡ºeÐ X:– ñ‰©PÝ”5¬c ¿W‘-²d²n–Ùíõ$w¹½¾ø"ønYCn¶Ël4 ÝÖ¾äð4,ÂÔV…>M)q*!I½ÛZ{é¶ÿ¾VÓEe*”·X.ŸR‚nR¯#þpËWÑŠ´fêmn ªëñb±ÖQ6JH·sý°æÜJ„z\‡\h:…ÝÀ”Ø&ÖØ[Î$/G[ØîÓÖòi•ƒ)Iõ…[›Î+g«³²t5HzLØŠnÁýijqéêpì ™m¤éùsÖ ãJ*Ô›Ó½­~xÇÒâSžz®œV‹üËÀ©[p/Û*t)Êj\¦ä>Ãl“ÔnJ0XîÆø_¨5_–Ý)¦cK‘GyA*’„•ȵ”«Xo‡E?Ü@W—6FƒJvž¢¶›-( ¦ö(óöÆèu/ÃÝËqÐÛ)gS^›..|[|)Öã»Gm —™mµ”Ó¿ó{aVµ˜Lè0Ì”8àqÜA%+õ(aà[Æ;õ_³CåhK+f|jœm_0¢Äu`ߟ§û㫥ɫµN’´ªwÒ²Ö• ‰ö8”~^–Š|y2“*1yN'«ÜÞÂ×ä6³º¦¦SdheD§RVmØm{bO‘qüD˜³ìMk*?J¨õÐ]ÁPXKJ±ÿ]ñúêU2YS² ä:¥´ÂÛ7Ó`u vÛÌñºŸ+CRj)ØFmÀ\ů…+9¹ê«p„î¢éAßÓ}•þ패 6e 4ü7ÉÒªUi™’«ŸÄµ„Æt\Ù"÷)ß½þ»sŠÅjnȈ†C:Xõ8°½¸ÿîø›|>Îõl¿©5t§RWkgßdªßß_‰93ÆÖ“mCU®yÅ™Êù2¸7ÙCbªG[ILyBô’ TçÛ×O›6¯U¥ÓàÀa 9þ\ÛAµ®@ö¾ üDz56*êê !-„¥Ä ßIkýq4ËùÌ»_zIÚ&î°´6¥ ¥[”’¤Û¹ÛßC¶2ã³F']€ž\ËáaT'–´6RQbXæÊ¾÷þ¸më&Lç#YAdlÇšV#f%ÒƒÓzëJíéIO'ÛßçT#£*Ô+šT¥:E¦ÈEv¶$C½1Q!y0Wêôšé‘¥­LAB‚òo`IÛP8÷_w5UKEˆôm Eê­D«mÔŒÊ0¢¹œ!ͨ”>Ô„_*û[´èÜ{ÛÙ8G̦¬ëM<Â"KTu¡Ák”ò[•€øÄÆÿ.ÀÎÑg¿ qj3$6c¨–ÔÝ‚OoÛ uxée¤¦Gʸ:k.ë$[γ…šrÜikWHuRyÓØŸ|KêëŸTaùlÁRb8S‰yv*×µ‡ÓÁŒ³Ü£¸ S2’šu¡Ì?,Z%–†Þ­ö÷ãôÓÄÓgµæ ß(´®Æå'sûà%)ÀËf#–)aÍ)¸±ë†ÄÃsÛŒ[/ERÁRHàŽ;ãNCQ_cWMÚbqC*Ô}+ Òê|7ÆÊUz¶ÕYq©°:ÐA‡S¡;ÿVçl¨åæfe˜ö’â•’£pòý1¼ÂÜÇ—­p…%$¤‘{ÛëlbLÃÅAÄÜ-Ùâš–m_é2M€6Þç¸À²ÄytÚUEqd)Å©}JT H)±¿p{`fpšÝ_-³N¦Ln5VBµ¡öÔJÎö;Çð=Œ[“"4ít7#¬x jU€ l@·ŒTã]m\–Å[Ur½ItØÒaO~K(.:f¸TUko¨ÞâÖ?lÎYµ˜šEžˆÌ•ü·)(#t[k_±ßêˆz&@r‡>£ÓqÅ#S¨UŽ“`MùÕa‹‚•R™vŠLqdYÕJ'ÔO~9ÄpÕÙ}7ŠÔ9sh…%ªbzzÊ=)¿`æØ'K©ÔcÔdêhHmäkK6,’/`Goû| –RÍB=žSeKé!ÒF¡½¿l=Ä9q¸í*Î8 RôÚûß|1p%c“­.9M D¹²Pö† ›¤~Žÿqý1“,Óé²jr¤Ê[e§TC%Â=#NÚF"[›OœÏ̯ðä6BÛ<*ã¦8­2šjJŒë/Ê|éH¶äZÂäwJ³µÉ®R`j½èÓ”å2OI/‹…:*O›[ly©Nq㇖LEèJH!D‹nG8ìô:œÍrz,ÄÔ—ƒ‹ÙiíÛ#¦—+,Çz4ÙT„4¨mÛ·qû[ƒŽØÄG,¶”¾€¨o¹HÝ–S°ò=°B¤ôêÛß"ÄT•¥^¥:,”(Sç ÙZ—™ÌY²¦%ȯüÒºEµ€„´î{Üœ3>åZ-•‚´,-$‹ëÜ_±8›b%ËòKRªÑŸ˜ã³$«Ò[y‘p9ä`=O6¹VùŠq£¡.2èSr_õ!~7ã-S:ÀÍR ty0ëÖÒ‹€¥j“É?ltM¬9*•L×™\åi*tjè‹]EDø°áBì“0#†-Óå̬Qœ,:Ä5”:’z†é6ØÜX{s†x¨®:̹ªŽì´´Pe-!ƒØ{`í{ Ó(4Ç_€ûå.’© ž§óöÛ Ôé¯Ñkp—Q=zj€e´z÷<Ü` ד”Rö7ÇÊð+™’2l„» %å˜îé $ƒ±ïnÇD¥¼°¹lDv—N-¢–Ö[FÜ6ÒDøùÆ{Y„Ü%Ü­¹ $§Àûb€ß⦒j S1zdp °¿×ó­Ø¥lÉíf­R¢TjQb4©æ) ¹d%Mê¸Ô ØõÆ,Á˜*¢k ÍB:+m0Íõ(ÿå{[3““™rT©Œ5*;§Rd!T‚6}9À)µ6gexòåÙØý [MŠHW×cc(¼Àr}GfçRž¢%•´Ëjm¿ÌC€é‚Ró¤ÐD3)ÐÂC.¡>ÞwÛlN©²†c¦~"å=„½ ¾šYÔ.«mªþþ1Ò…D5e¢¦õMê|ÆœZM¥ÈêO"×;ï{ã³cSaGÇC¢iÉ5Ir!É”û”­jÁn‘üÇý°n˜ûÔéΘâ¥DšB@УÜ\ö½b:#e)u–å$uSfè?ñŒT™ÒçĆŠÓãÇ{W©Æì° l4ß{_/@ |§UZäÜç.Šiè‡Mˆ­kš\$ÉðmÇðeTôHÌVÖ¹RP¤„iEô_í°÷ç B‰C™Bqê«Ö º‚Að|ãžO¦F…¦ü'Ý— üŽ«ÚÊ‹óûßì¡ “ÿ¸¿]•˜£ÔàËzD¸‘Aq–RGRÁ7°PÁ µœåæï…°U³9MIkåç$]ÁVÝ*¸¹P;[‘ö©Òd©¢ã¯’¢²7PðGübk–#̓›¥BÊôwà@2–ìÇh„-V¹"ÿ§~<øÂâ)vK*êE@´ÙRþ!GWÊÕ‚PX‘­ Е¤’¿×3<÷ó4ÔEer„~†ºÀâï‡øÙ’’æcv4¨R%¸\(s¢ÑZZW•Xñl›"£(ÓS[ÙhR/¤(llp劶ÄB´G Äfc×#dT7rœÛÆS€,µµ­{_Nhµšµoãc”·ò©eøpÀ2Éj:®5)<]*±Ú÷ßÈô÷\†äeKiÉŒÛÿˆ‚I^×ß TªÙƒñ6e£dwÃ-éuMžƒ·U´Ü{wߨÑåÈfEçÔ=QŒ¶ÃˆZA ))mĬo¾0&—Œ§Q$%2@:×kž8ÛþŒÌ’——êæ´°‡!¶€€§A=%pçl'ÇTüÑRjq}äÅÔ¢Hê Úé>øF›¨ÊW²”cÒjS¢1MHTq­ä©W7±æül7ª›9º’œa”¡HJ¦ôéûa2“Ú\””¶ÐÙu õ(Üì“ÍÅñÆ<ŒõDŠí]ØeVZTT´ ‘o¾$È[¢#¼œ«©i­%‰…÷›Z44•nŽÛav¯–á–¡¹Kc’‰!µzóp6¿¾)ñ¦äæs)z[ò$Yµ°â4tñ$§±¿8\üN—Ë4Ö¦j`m½­ŽÃeª1¢²ršD neDõ>êHi oÔç£Ô§ÔyÚ[m¸â,”¥ÑmCÊnw×Û zJÅ%ÃNOUCQSFá`ÛnØŸ+äÛ‘LЏê‡1¹ C¶t¥ NünF5äD˜5ãTœŠ¦ß™!n9fÖÊ®Aý6;ƒãZkñìD!Ä)Õ¨ß}ímíæØB“Nw¤ÿA*Cj³£º@û{Œ?|<§DªPꎸ/hÖ ’{ƒˆ=¶JŠu,¿?üLäç§oQé%AJ†Á{›à”*¯ñ ·¦âÒ¦Ãm)êAq"÷;\lÍ•©p¾ £ðâÔÈÎ ¨ é8ñeEÚÕ-iB–k’¤Žâý»þø¥€»@¨XrqUYòÚ£³ Y{KeÔ ‹ÛZÈúbÔ™Ô¼—•ãR¢> é*6Ô¡©JúvúbW:ÇË9±¤Ôiï:ÚÒM‚²U{X‡ÌÅEʵ1ÓéȘZqFHY>””’’ûêF®î#ääõ=˜Ê[ÖÔ‡î^¹Ù$î¯ß SÙiŠ›iP“•+BmÝÛ†Þørªæ ï‡KE~x‡UâP–ã¼Bª×°íïŒyƒ)R#ähË‚édÆ *«PÜØöŰ‚=ŠH<ƒ¡|/¨ÍªÔçUŠY…1½-³Õ*ZO…{cv_¡;ª\ˆ³¡«-(¼ z‚ß­*î’8Å3/WãÔ²”7ŸPd¥¡­. ûvÿo8õRfRé*Ÿ üÚúg¨Ð ¥ÁÈÓï|C.RXƒ+ugò¨ñ—!I ßHRJ7¾ØP«ÌyfS+E‚ÖŸMÈÚ×?^öÛœ¢G¥æ*Ó/Sè½#_ä,YÄ©7Ô ôAäà¾iÉm»JlªJ£è:±BÏ¿{óí¾F®Ê9E¬½]‡é.K¬!¡p`¯{äïl*ÀÎTº·ÄÇ!T_}¶£ÝKg¤N›XûžØ=Ie Â.”ÃMº‹¶çQ:® wûƒãÕ“ª2s€{ò#È{Ôû¡ jH7·Ô1¤cÇ÷$ŽBs*tº†e@צÆÒR¢â= ÆÀœbzX‹%§Ð^ ¥~–ÛI*X¿{n1ŸUÚgÄ—¨â+S©Ó+Œó›%*Ãp>æØÑ—Ý‘K”ìÚ¼Va1"aŠË-/¨”üG؆ØC‡AÃf #«‘é-ÐÛ©MCQ’½ ð¹>üœho¥ÌT”· —²R;ßþ0½©°+T­)jé2°ú`µakØM¨S³V—–éé¨0ÜfÊz쥲´%W V’=]¼{c“‘Óä*|Ÿ™“9Í^ˆQÜ‹¡2#<©V࿨é¶)ŒÅL©Çuê\šx6êJ4$¨vQàrètBòL „ML¥47ÚÜzwöÆÿ‡9“H͆«5y޹5n":ÖA#’x6Àÿ–ÉC“ŽVLÛA®”ÒQO© C¨up}WI&ÇVýýß ¦3M>ÜÄÝÔ7½ûâs^ʹƒ+ü\§Òj TÏ-IDçvœkM´Ý&è_íßO>šX1Ýq×ZhlëË׿6ÕÉÀ +·2|G«È] ¨”>šŸ’ÖéuD!cºI“3HÍTê"ç—£F}vB#¡%6ÞÛ›þØú…–h•ÿ†LW&•ÌR”h9Ê~‘÷Ä­pÞŸñ6|WœtÓZh9©ÝA­ì~¸W¿ä!L]\JŒ¬´Ü…)¯Ä×ðñsµ½Íñ«/Tg7—Y…˜Â"¶ §íµïp ßÓÚ]Ry—!lÆp¥1ÝqûÛÝI>ž{‹lb®®(œa4´H’‡žB)=Ïûa“ÎÎ`I†Û©Ãå"Ÿ,(¯e­(½’yûà\¿ñ]šZ|vB²ËO+Ò—ƒöÀÞ0Ähñë–•$X‘¤û÷æGÊó㩌̅üœÐñô.Pm½ù¿|St qN2¦Ï4äB›N\fQòë%.€”ØXlâ1[5xÕ%•|í¬R…Z=[€N+™âtψ܉lHe÷V¥2Úl¶•m­am7Þäâa:HD'[y‡B‡#Ž}°¨ãÙd[}'0Á~kÏU¥¢5;H +]ûBÀãqoÕߨQÝÿ ÌdY-¼«)*l ˆ¶$Õj|zŒèm± Gë+¦ó‰Ü„øµÅÏ|3ÐòS9*\‡iµ Î1-¼ÒŸº¤–ßV)®6æAöýš×!zdÌ”œåRr®¦fGn8ÖËI‘smIŹçÿþܑOR>¤Øok× Ò#R¿ÄP§L)u' NÄ[…oÆØ™ŠÌ&æ)¶â%:uk°Ò?§8–`ûŽ ¯"¦e çSC¦T2ê¡OŸÐ_nJt›¶àÆ6ÔÓSaªD‰× .¸ðJKºI =½ñJ›S#Í)q‚¥zP o¨žÖÆŠ\Gæä¨¡· n—:`„›óc|K.^-'*ÿFI«H©œ×G¥G…"L¤º‡\K]’/]öÜr7Ãõ21;Õ)2]™y‹Ý)¢»ïÅ4#âLΔ¦œi¨ÉK•Qk®žäý±ž§@~1ÆÝÖ~SI.+`<_CH'ØÄ*Ì¡ÊÓR›–Ê騡µ~¡äƒ±8f^lá#Yy†ÑÉN­ck» MŸKMCu/!m^¢‚zN4ØÒðPx7ó…dK6:¾Nj$ÁH•zа7ò=÷Æ8ÕW^©Jæ‘T(%-H#‚{†£ýEp'õº?ãHŸ-æÌöÜê³lúIM¬WÝG°Á|ëP3× ÎU"ÒR¥iõ8”‘é¿`oγ/E„ÌÙiËx9%Øí“kyÇ£*|8`7d¸Ê’OÌ­w)*X÷Ò¿l9@Ä5SqØ¢™J 7O@K+e­HZ•¹mÿ§ï€Ñ]q¸Ë”óÈŽê}Hq†ÖÙV_jtLx ÒÞ\Ð)ihqksÛmøÃ«Yn%^¦Ü×S'¦¶ÂE×näűÌX³Ø‘KiÌ·PŸ˜œv úÁZJÜ*=¹<Û yr4Ÿ”yÖõ6ßT¤…¹eɽ€?ûÇĸuzNVCQzóGHèZmrl< ¯ŽYeù•œ!¨ÌfFgC–h,VIÛ]ô$Jã8Á™³%ÔI§%-EE…AŤ¤éý ÷ÆqLv%4Ä’¶ÜÝ ¯ý6Ò8#ÞÜãù5†^ÈЗ.³ù…¹.•¬q•Æšz’’¹.-@- péB;ÛŽF+â…1½6#†[ËÉn–õ^Dµ½«©…°u€{¶·°ÇR˜Q«2ÂcÅu~²‚Iþ"=ðÑëÈ9l3AuÈÁ¹…Ë¡JJµ‹Ø’Glgvtiÿ$̧6•ÈŠCo%ÎÖØ…~F:@¤""êË~ð˜P»mI+AçqÚøãòpœ§Km‰¬C¨H°ZéPHô… ï‡ ¬ [“d 3i³Ÿ¡E$­jR…Ò<Û“!®MT½!À凧¦v¸û`Õj‡’ʧJsñ7œHëFsÑ΢’‘Û¨íÊ}ç"Ò¡¾ûéF¢†Ñ©ZIçÛï.F»\lf¹ff73+[|ƒq{€8·œjbY‚9vŸ-zHùÂê€S$;ó eè©J—1/9T@ÙjÜ0mý>¸õLf=ê“%©ä1£tþ­&âþO¾1_£4Q¯&9™œßÄj UT¸¬¥]z†×W¬8C«·2éó$‹´XUÂÿÿŸ¾2ÓÙ§Ó#¿5©m¼·Ð”®!U•kÿƒ|zÊÒU?:ÒšRzŽâÙVïqý°2nÿ&úˆƒ_"`«Tksjh“?U‚z¦ä+NÄß¶5R"Lªäæž©Lr†Á K)°¾ÖÃvh¡&…œ¥Ïmà ÖïÓP@¶ûƒã t©tùUUªD ô(,© W}±pKQQ¯³ˆ©ŒE}m¿.ˆRQºt%Å~’A{ã¶P¯8îjf=e ¤3Ì©N!E}lm‹«2°˜•‹‚´¶&áWão¦»I†¦YY$¨{o¿ÛýðŒ@:·°&=¼0½B®ª¿OŒäAÐt- )s·8B„ÛΡØà<¶Šµ¼•¢›ÛqØ÷Û·lc¬® 3+0Ê 0Íœ‚”¥ÃcÁÛœyË ÑipÜKSjǪ’}†ñ) ºíÍ®}^0©F;ìV 4huê+tçjH׺½5uï¡`ã$Ýñqþà ™.ˆÄYÛž¦ç!«zlvä‘ßë‰b}vk¹B¦…£•©5vk¥*+(Y¸N¢J;[±ý±^¤<è…U«Í©öC)G;Çß0@K*BV=V;›ý±1εZíu-tåÆv ÅÙÄ)eIý÷ï€åq”cI‚¦íR¯I·V ½ÁW{éçŒ-æŠz±—%Ä€äiCh-¨4ÒHý#ûá– Úe:UÒJ޵¤zR=ÈÛjF 47.¬Vuµ[k¤Å¸úcRŒÕH·"†^Í «)°åRiîÅh‰ m§²†çï‚ÙOâOø²š¶ØiÔÀJŠP¤4Alêá@{ù¶5.Onž¦Ze%·:ÑÁ¶ÿ¾2"¨Ä1;ˆÌ$¤´sÞ×çéŒùr#*Xck> ÔŸ­Vèæ °Ü›I ¼R¢‹[R¾˜ìí>®ÿÃ…&žÊe/Ù-ºBøî5qöÀ&jMµ˜«2¦Ã‘-¢ ˆä½¥:m{$_o|1±›cË£Pô[7¤(‘ÿãžç[T¤ÝAbg*VTm¨Š«²uÍoD.i@z¬÷à  @ËqWÉ<êÍ”­ÂB·ÿï¹~KÈÊf=I‰)YZԕܨثbHcމŒÐ$H¢¶ýIøÆå…8z¤_€’w>12KÝ™Ê5Æ^[— •>§b!V(*ßr06 #°eHÑù6Y:{ÛkpZ<äæ\ƒ¡øÙ/¶óEGPêI#ÜaC9Æ~ðþ[1œy©lè?ˆ¾ø–%7­Æl¡EϪè™M‘LM>JhÞBê*ì;ÿ|wn™"ˆÓ“šì•*LGX7 PîÙX‡dïŒQê¹Ù¨³ã¥h‡aE.!iVÛ¯ôÅ꿞²unµN‡ D) †äLq]R8$^öǤ*q„Â1« |<Í5£Cq§>Ëá1_SZt Ž7ßßSÑN:úÛmµ‚¥ l;ý-l%7.‡—%(Ó]üA¥tN¥)$lÛî1Ë55YÎkTÙJ¤¶¶KhBÒ4‘üFþ¼oŒL„½ƒ.·Qu†âr] ôÛq´-#b/a¿qlhŒõ=êªb¡õ¦CŽt–µ/ÒTFÛ±»áŽ_aÓG æ¶X¥†ß ¡”È.«ùl{G8°æl·•©ÙBir#J‹eÎŒt]CNãÎ*ìªuä¿oÕI$Š¥.—’%Ò“!NT”u2V•_bOŒ.R(߈Ãr¥Wqñ!‚— RGb<ºdtÄŠØmÉa Xµ’tÚß]ð½4*,ÕHu­–€ü‘!V ï¹÷Ãí#<å)TdÀœ\…-ä%¹M] x ÜmýVá±ÎÄ*D0äúŒê9¨!æµuo9d.Û*ãúã}W0±=LÑꪖã«))+”Ûù’m¹Û|t…RËTêkt‡gÆj–ü—pµ}ňàc g.å‰J|Ú]A2˜yj»¡Ô¼„6½·çý„sSŸa•:<ĺzRÔ jmÆ•r5ï¥W½¹·ïˆŽz %Y24Çêj-z:‹ˆ“ ßÊY;„,[|Rª*¢òÕVó‘Ûˆ e¥²£±ظÀ)qž¨Ð¤0’ä‡ô%H(QZ€#pAÚØ¾'䦷Èõ®˜Ôã;$%½/­ µ$ÒO;î0È#æ!70-Ùl´êºŒ)iH*ÒBT|Žuh/ÏË*KF§ÑÒRî‚’’x=­±ÁyÑ*rÑM“Q‰%¿›ÛˆVçø‡Òÿ|òþç2}O2kôêvD¤T¨¶·…¶¥z‚oºR/½»Œ8åʬLº£¶bLˆ¦ÜeåJílNWJ‡.­5Y³H„ÛeÖÀÔ—À‚6ßk`Ý4ÓbK¥R˜i0Öc-ÄÅuµ$èä*çÛÊ5ðÄU¶ì)Tj…;òšKO2¾›ñî®xýÆÿ¶;¶Èaв:l…\¯¾¦UåS~+QþY§_)ï–šËhÕp¯Ò¯±ïàÛj“Í4í¶Ä¤¸Òn½mÝ yÚäþØŸf¿à"õR'[;åÍPWR†©iêèPó®ÇbŒ}LÜFi4ÖYMê R ÛJ: H6í¹ÇËQ\yY®[æXri0@)Bx*M¹Ožøú(Ä’Šjbºë\»)Åìåø ¿oø\Ëð¦v{&|ÿ(ëªæé³ßÈÎaЩ» ‹žsÆ9=´Ó”Âë¨ìKªJ@· Û¶)õñBŸññt£;åßj(K…YdµmÈ®%ïSçÆÏ2h¬¼ÌåŠRêO¡KþÁب_êPMÌÐjÆÔ·RacIewp9nuy¹äâû’¥E•’ãhPJÉ%’JB@ó‰ÆTʦe~ äµIƒQˆßèJÍŠ¸¸'‘ý0ÙM«6Åkðè­-²PCúSt)Iîþ°™A"S`gXÔ¸°sV§ò}äºV§AÝ6½ˆ?Rp›*¹²e2"™|ºømç]u)-£{¨§‚E»bŽíMáД¡Ô`7;ùÄþºCô9¸Ò¡´¢… I$Çï…Bר ÅÓΨ»WÍ´JÝDk%n›p”ŸøØa²D¦ e#K¥*cÓÜHHR§]íu¯¯7D“—$T2L"Ì+Ô•¢jš»„wÜÿãûàJåb‡žÛb®jd­µ%™-´té$€¤ìÜcJ¡z“oˆì¥V©µö!Ó™f«N¾tõBoòæÜÛ“ý±í*3®ËÕh¾”¶¦ÂOSÁ·‹÷68ZY˜—å®*’â'm¯§~ÿ\‘ñ(¿#ðØÒ’Êl¸ñA$8ç{by¿éì\búfJŒùÆzÝ…MZ"2k*IÐA;zOûa¾4G§®k‰ ¾úÜê6µ…øóõÄö6d3~.toæiæ/Q°”\0oºH¾) ï½­ ´±b½ÓâøWâˆÞ™å÷ ÔéNĘÊlî¤ì ïp{o€ìÕçÑæ4„FdS›°C­Àò¯÷Á‡Úo®âÛI¹Þã<ý<à+õB"˜î>ó䤶HOÿ‘à_Î$¤]̵-üÕ¹ðæ™Q‘";³º¡ÚÃkýqóÆe”å3È£©é )¤…¶#¨éÜm{sïãkqG-™q«:•bÇl ¤Bëe7jn-huÇ ÔuißûbèŸõH¯Ç’ËIÎôª&GG¨7>*â²ÕJzˆ]€v;q„˜©2sURLWÖiï>ßQ&×#éßë³i®|%yà–›–”^:œõ±ÜH 9YËÍ¢¤–ØyÄþsQWd“{í†Ôzc6…åÖ¤Ôë ¦ÃJ¦8â’_t•„öÿ¾øžW)±²Îo’ZÖÒ‚%7{—…€"ݹŦ 1iåm¶F†Šw¶ºå6®Üj4WZ0½$!>¾•»›_L¿.y,h†Ä…T#°íAÕ4òF¶H¶›ÿ6÷?L_)YZ öBjSÕvU!Ö‚‚n„(ŽA¾øùR½”ëЪ†J*“£üÐR€7ºo{_éûaû%TꨣÕ"2¹˜ýƒl:})P©<ÛíM‰Y6± Ùž d¨ü=yøÍºåU™SØd/¨ÚBPvâ÷ãÙ6 º#Õå!3¢Û,[fÇ‘¶ãßffúÍ'á¼H mןAJxð¤ódŸâñƒ±3#좒Ìxº›ô¸î¢„§›XŽ#«ò¨‰/,C¦Jr,ÈN•-/¨BIR» v¾7Í‹ü0Ô(il¥”•6u}Ï|ÎÕs9ÈÕ¿]8 nŸ@ùx¶r¥rqO³ÿÞ)eðSI(JRy:¸þ¸![^À¹ F¡²b)n„¸€l_ñl7ï†÷T̼¼ 2Û„[v—n>˜ý§P#e*M]u¾z••”ºµÿ†ÇÏÓ nÏ—£Mji¦5M˜TÓE’u•p à‘Ç×à7”±ìõ,Ö*§æ¥ñ¡C¨Ã)/I±ß‹÷¾@{1ѨõVžÙYùP—SWàóõÙLœÃ³Æå|ÂÖP¦l@õ'ÚçÎjOÖ©„®4—ÓOt†î'ÈNüýo‚6aäE´Šöf—ÉqEÏZŠ”«…+~½°°Îm{5f—cLC‚sé´6Ò{vß±+ÏT'¢F"QNï!–´w7=ý°atدT'¢†¦!Ĩ<»ƒµüýðºŒGä&…ùtOR™žÃm¥æç0•¬$)ÄzEø÷Òä¥çÓg_ê4ÛÌ$¯]÷çsqãZ‘R[ò¨É“=§WÖyÑ~,|bÆ&Ó^Ë 8Ö¤´7 H¸æ×Àr“"´¹34ÄBƒ%é–‡ëG}I7öí†úf^ur€Ô×PË 6K@vð¿]Šª]H®›AÚŠÀ!½:½”H›ùÁ=7/± •.D·æêš»¥W¸çI:a BÜæºL$K–º™¶ÖR  (¶«ÎºÛÒJK†S –,*ïÿ¬€Êç»-×´x÷B¥sÜý±û'3E¤¥pÚJž›¤%¡sìp¬À'™ å´×aU7fE ÈÔèP·ZÇ…{aÖTJeZ·”Êq¦\Iu §¾:í7&E©LŠãQ\H QMýDÛ~ÿÓ ”ØÔåÓ2ž´™.+¨’$(}G8™vS”v+Ör¬e½%©¦SFì)Çu!²kàN]z·†ÅY.‰h[¥ N‚´‹Bý¶ÁÌ˘(°2ór'IŽì‡Ö[KjP:͸Îgf7Ž#Ä?&Ó.%³e§€,;‹ Sw^ˆ€yÕ*hÌJb,‡ Û€¶ P±÷7ï¶ =.å52º›ÕyS¥´¥µgIHï·ŽýðBŸWÄË’Ü—†ÀC‰ý*I7±ÅAuèõe!b¶Y:–È:Sãû~ØM´áªßb¤Ê:·$|¯ ÚK}bì´¿e]g{ö'Î 7—©í31é‹N‚Քʶ㓫ûoƒuœÉƒFéSá°õBEÒR”ìÉÄï0Ñ*’òÃuYõ™ñmÔ¹¢9N•&ߤ§¤¿òäqñàœY‡­FT) »ò‘œêGR.¥¤$íkóŒSßÿ©S¤4ÛJ@Kj|Ø´¡ÛÆãͱ§/Opç –šqoX[«)׿aß釼È~ ÆmÇVv$z‚=þ¶ÃºÔÇbu]‰1R"8é•)ßË&è"Ûí§|0³KËü/¡Ky¶Üu¡éF‡B€ú_ tQóˆ¯;¥æ¢‚,G©'ôƒ†Á†¼ÏRœm+ )‹$Üíí8`ìšö侯2aÔʼnՌâ_CŸ&¶‚ÊÈþ £À8~—Wqºä…e¥Ò©Ò*L!‡êR›%vJx²M¹ïŽ™¡Ê2ë¯7 1ÒóHK/¸”¨ž×P«ºÝ;(J’ÉüÖR°ÚH¾£kýXÔ”Ç^‰/;á=E5©KRª/¤„:Êî‡Töâׯ7Ü™óòÒ^‡IpkJm{€=±-¢S3cè•im²ý5…uú/©«îú¶ÅbuMn創éblÙNiJÖÒO¨l.<[¹Æ|¸•2j ¶7b¶gì*… /æjrÊiÝ%—Fö;›¿¶ó8óªŒÔ!”³)è kw·|&&,ú¦^‡Df„ÒQ!¶m¥³môžo÷¦]Ìñða0õF‡K‘Öé6,¨’¯Ô›`º†KSä|uµAÌ?-VÊM51 ¥ÄÓÞ¤«NÄ ø·ÓiøtéPÜ€¤³fA ¸ßVØÕ2±Rªçj“ S]"RÙ./OQv¹ \{Œb¬Åœ)ÑÔãh)N %Ã}@qk. Ãï’¤¦¤M^–¥Ä–—[PhúÚ;u¯ä÷Ø&îeùuÙ l$$ýð1~°öZnS49i.ÞÇÏí…ʼj‹Q£± d8òR’¿ôÓÿä{b¤#0¿aJ g\ÖëíɦÕ_Œ·\õ6VÛ{îF01þ"jR’Ì»Yƒ}‘tØn‡ü·\jÊ!fñd)† aöwCȱñ©<ùÆÏOvèò)í">àH@Uº¾Øræõ:scs\SO”Ä—Ä¥[TU¯R^O~Ûaš÷&Šf–ØIŠ›´´ªÊFüóÍÑQQxK—!¥ˆÊ $ …»Œ… ¦óŒ¦’úÙKjÒ›i “mÆâö8`ã¡ìጩ¿¨é—ÚM>;‰L·jJ`éÒT°;Ø_œ›*”ŠK²¥¹Ò}oYl©`¾ÛxÄi£`i¦¯—p¤¼6"ça~ãƒNj=j!ЦÁë"éW<¶÷Û~W¯D{¯#T¶é}Ÿuqã„ ¨(+I·¿|Cꨆî}J$>ã±Ôu0ÓnêJÒ{„ðlYg@Ë3ß©A«õXKõF(Yh!`Ü[IßèyÂ¼× G¡µÁaÏ—ACN!€ …Îøl/§@³Õ›ŸP L#äTÔIîÇ‹oS(Ù'ê1ŽM=‡Tö§MˆPMŽÛã4âTS‹’äY6üƺ‚ãël¨O•µJS՚Ф°ØB þ%ì1©Pž“P«&Hµ¶&æ9ÐZ~c}úSD(óû¹ÇW–6°¸7õ/c|.»³GªP¤O¨5!·›èKCÈJVA7I÷CËJ²Wàò/Áú`æEje”üv™šm<â]F¤¤ jßqãÎ9*+¦¯ÓCèBWèIö>×óƒéÈD›–Ô­{+k¦ø;I¤FVg2p1:J¯Øïit`z n~ºò)Î%'CØTˆÈYSi¸Üƒm±Ö“&ž÷Ä(²žH‹M™p­vIW!C·°Çõ*eJ§ñ–O˜j}(ÔB[J’–í·¨¤ï퇊÷Ã#(©ê$ÆúH-&ZIMÁÕ±ãlIÑA˜W1>ˆÍò4Öjj”ˈXubÊAØâOœYr±G¨Ga—e¾}Qð8`§åÜôîc É‹Dùšº²š˜²´,¬‚|-Íj©D¯?lî«a%Ä!Ú¯‰„(÷wY[†|Ç.>JT¨´ÝFç¡O$Ó” UˆI·«Î BF[O¹¢ÃªK … ÷ïç'êIy¸ËJ‚›éþ›ð¯6ó„Zý9ê´ˆj)RÙ‹!2º½)JîþqèŸÈfLOøESbs¦ÔW 7ºd·ÖN¶ôvà“±ßú4Þ¯Q‚öˆêMíü:€ñ¿üáB$xnWvF ¤êI {ïkŒ®;N£È§ºËèeç—`‚}Göçˆ&«ØÛH3|ÖQRž€›õØ)S.Béã2+ײß^l’Ì„“÷QÔvÛÍî0£ã£$¨©!@ÜC±ZÌ2ÛÓ!æS"+.–tj+P;ñõ7Äôfj<‹)ì>ªMD—à–V×Q:º€ï·üó€uØÚz]j*œœ— )Ukm½ÀƧâ ܈2C±Ù Hi¸ÁI‹K¢¥z@RO䫵òœ6"‹—fÕd*>Š|¥›Vß·ûìpºÐŒ’ZTÄ,—ÛËÐ ½$íaâÞ1/Ø‚qDS©P§óM$J…9.JA$)I‚›¾)µœÂ¹12%!,DCeM©méè r~ÿß Ô¹Qd½"<*Š:Þ³ÈHìx>@ú`}nkMÓÕé …Ù.íîmï€QË8t\Q^e©K˜éIe¥”° ôéçQ¿s†ê« }i÷CVAun©¡©*` ¶ñŒt·iíÄ—òÛ J‰Sh HÛ}½½ñú›Ž–j/¡Ji7KɰºM︌hf`jE؃hÔÁºü•ÉfbZ¥†öQW±'Î?ÍÕ“œ\†ý+åa´(È–ÚïmÊn’“çÞ§¢c;…+^à§b?éÃôze6ŸD…P–Á\Åž˜E¯·{Ül|:± Ñ9¤±B‡Z¦ÆªT#ÍU× *í8woI þئÐó5r›@ˆÌvåM„¼·ßJPFÉMûÛà}^&Nlë­V˜—54ʉ)qÜ”¹ß LJª ûS‹PÕ.›Ñÿ*°žTOémo¨Ã3ØìK6'y2%¹œê2v#‘{æ@C ©€:ŸÄ<ŽqÕÈê‘Ygð‚Ê_.¡i:¬’ /äoŠî_É™}̶ÜçÓó(íÈV’OôÂ%B/,çd½KŽ%Ò”µzZ © &äãúûáUÃެTÓ]œM5ª5iI'¢§H+qJØ vò0¡Bj¬Ë0Úbb$ÈwÉ&ÿ«õÇ õ8Qž§¶ô”¸V4Gu‚vKan{aÊ´G´ºÚ†Ù@ƒµûc†U½Lú–£G•–š˜¶¢R´¥V¼_¾øV¬ÒÙ›K•oºèy’…YD8Ûï…ÚxÂ/QÚ¨¸#L!Ķÿ­}oâÓâçœrl(&’âäÌ’è²â¡Ë©>ävï„(.9r¿Qu#>QäÒåQú;Š ›Ô‚[H6Q¾¡m¸Ã^]§*µ™^vi•]ÓôeÓkù¿¶Ø^Ìâºs¤Z4ZcÑYu¢R±ëB’6)ãc}ûíÛÌæŠÓ´v)°èå) $)<”¨ +é±Åò¯ÀTιẖ̂ñ™¦¡-phʈ·¶×­=­àŒI¦ªš˜ü8Á1Zo£d—•Ï'Ÿß‡9Lɵªc5V$)Ñ¥® ?¤‹Ü[ê1hó~¬Ìn(È[Ëeˆë-´NÀv Å­~Ø–$7ØÌO‘b3tdzTZåIršCÉBÚy’dÚÊoç8Ùv2¢7!—ŠÃè n{plCâËK±j)Œ–Z,ê’Z@) E·n<`¶P¯Ö(4Æß‘%i2ÊÔÊ«Si`¿nÛbÙq1W.§¢4fê4šºš0HŠO ¸Èê%wÜ-qïÈòp®jUeT#«¬ØUÞ §Øƒ|QfD•Q‰\æº⭮㟶ëYf»'Ô%À\)S‚…2!#õ[‚q}ùK¶ARVîbœê”’ìF…šJÍ–¢?¾1ÍËUVªO¥‚‡"ôÜQB’O6ÚÄ}ñ¿+ͦÆmeC>¥§É÷Á:¦bNa×LˆÏÍEJB_‘r‘öÇ7Á®(y$é”ÌêsTq(ÁqS©@©ÞÖ#ŽÜàî\qº-BdeÌSŒ&ÉBý:¯m½­ìeZ\*š$¦8ÚÝEuí½¿®0.m1TGã0êž©"SŒI¥%-Ô“÷ñGmÇ' ZLlüb±¥Ç5,%@ÛÉØá[.Õ"Âϵ¤§Åƒr]°íbq<Ÿ—æ;›©Sæ˜jkg4 )CÁ±µ¾Ø{¤Ó¢1)ù cL™-‚î×I<÷þø_ÖŠ£±Â1&æLÛ˜ëñ[Ri­S…1ò[êJœ^Û·|Ë* Q%(Ò„¥ ZÞØ]«Té¡×bË”–W½¶Ûn×½¯yf ôÌÇšì$¶ÉARä!bÀ¿7À["ª6Š nÌ̳"­ESÉSôèïk’Ûh« ¬v'~×ÇÞp¦Uu·Ðë1= °«·ï¿o39 K&0m F¤‹\Ÿ{ák.e6^MS2;%½ :Bãé(Ó¿RÝÎÿÓ„×d™§©tk¹z2jŒhmRKŠB”OrûííŽôåU2–[D|²Å%1 ÙQÞ»©½—¸±¸ì¦=7TXëIšLFZ7eçmëO/¸ÀáZTŒä†e>Ò¢¤—6ÿ¾1ß2ÒgZ‹™­z§ÄzUDÌKYBœj$wI=@?ˆÞ8Àg ½Q˜¥;-Æ’…“òê^”·¿ð’ýïç4ÖR¸aÐT½/ ›\6\/O¤Ã¬ÓjK©£Rw$¸ïŠ~Ú4e†ÂÉ…%J‰SvBÊ]WI) Ò…¹c·8ñžêó,÷ê3Óv mQІ•9¿?|¥¡.ü?£´ÓZ˜HR¥%;,{žøÏ[Ì2ÝKÁæÃ–ØÞܦüÿLs؉dù1¦ T5%2ЯË(µïõÁ¦+,ÄuB©´I³n©'K€scŒÕt0Ì2ôf‹n%¢¤¥J¿¦?¢<Šî@j+ÏFD„¯¤Êïuö ÷ÆV[é—gþ¡âü/¸¦›Š€¥›o¿ñƒuJtyERZéÜ ûl}ð>}*<¯‡Õ*+Ít冀iÆM¯·8æê4xÁçCm2–B‰ÜÙ6¹óŒì?£ùEˆ”ìÍ&½©2X“).V› ½ý±¾uʼ'cÎëQËÁ` úãÇñ:¾ô Gg2Úu¡ôFê¾Ø`¸¨È.$-Õ$è7 ‘|h$¨¸¡G‘uTiÑ`kŠãoÅ :’ —ûß©òè´šŒ’ü®¶ë`­$èEì6ì=°Ý6p‡»ÑY¸µ’w;ýíûc>zÊèƒðíŠà!™ï!+)µÜ^÷#ͽ† =’Íñ5Ô˜T¼–"#CŠyz¸°ïý°­D‡'(4`¢AP[ÚÔ^T4žFçoé…˜5ºÔöKŠiÖ†«¦æÁûØñÙ©@”ÕJJQZ˜ÐâH'‘î>˜©P9 . ÍŸ~½&vZ.Ke¥%nÇ6J¹)Ïœn±Bq¨Ž;5–],Ýmº“©$Å­Û ñÝg/|+©É~‰=Ã#æêKJ‘ó76ä¦þØ^¥©TWÜuÕ?§{«`oÇ8Ÿä(5r˜PŽÁR£»Hª æšù”¸Ú!­¢l´“½½Ç¾/ŒÁeYq©×q.¤-I*¿<÷ÂËÇ©WX•5)/F@;/¹±þãª9‚t,ÂìjMJ<>“ee*HPZO:~˜G9%«1NeèŸÝ—f4t%?0Ù"ÅW½´ñ™Ú¥¦à§‰k¦•ÙíeÀ“ªÖ·qÖ*²ÿ¬Û-»¥O84ë¿ }q™Ê}.²ºŒÇØèÏ‚ÎÚ…’òȰã¾ i@Û,’©0¡æiI‘-éªy¤—yzº‹ ý~7úâ¯P¥ÒjÌi¬¢Ù !$mk[Ï|I(ÈCõO³.<*ƒ?–ïVáD[°Œ3šî`Vkn1ÜdîóZl vÜ‘c…Ë»>Â60DãE‘>5)¨OÊ:šRÑÓR6 Õé\vØœxƒRÓ6ju™Ê}À„ë FÜm¾ IËu¨¦¹ æI»û8µ‚n7?×!²˜9R#S]z<¶¥8ó- ;¨ÚþßןŒÑrç$³—rÔÄ;[K/8Å–êýZwÞþãÎäØk¤ä×JÒô—$¥D]JÔnIó€Õ™4ù9¨,$ÏŽ§‚&-¤è)Aóï‹ -Eo ‡%|Ì@GEí÷Ãçf\aZ&\ˆF+6gªô¨ÈŒ°’Pl wy¹þ˜o]%Ö ¢"å­a’ }oV”ŽÀö'úÞ_§9–d· rØEÒã+{Ü{ß`Gb]- ·@B†£qÜù¾"ÙËQJc¡ìTfz6Re·2d¬’•ØcÀÛcaí‰Ôú6lSÍ&:"¡ßÌtíî98¸‡ÜT”5¥J±ü¶Ó±·¿¾?¥¸‡5õ¸Üq»€SÉï|Xf+ßdÁ±%G©Â©Ç–·dÆÓ:VÕÏLê7NÖ«o»Oé¬ul¡é ÙJ í|U)ôÉÕÜ€ës$³6XZä4T­N¢äú/Üq±Û|,Ñ(mÉ¥¹!ö .)vºPà&àŽÇnqE`ÜBMw‘z˜¥MË ÏºÐ’ÕœeƒoX<Øâm>’Ý6¶jOÖß‹%ÇR‘k(\6ï{žØ¤©ú~W~K•WÔâÒðHe°t‚£º¬?ÜŒxÌ4Œ·\‰kJwç5¤6´$Ü~›·ÞøÐ¬Êz(r0Ö¢&y ×¿Ãè‰I—%•¬‚Òìá#~qcø}?2P~Ò#UŸ]–ËSÒÔEÏdÞÖÚÇjyk5ešõ:u]†çÒÜi(z\D[qCÀàcK"7K“5§>i¶Á.[RÏЧ‹ý±ÌXODEÆ—û#º«Õäé 2—l •])±ÚØþªÏ”õ Ù‰@}]"”¡fá$ÕàŸ¾²=:±Ušõ}ù)§;vãºà:ny !:¨i57a)/™*ÙE×>x{âCùT®ö³¦]‹M[íê•"C®ÿ®ò’”«cÅ­¶ L¤½OÎSeG\v)ºÂœ%JW’0" Txk…*|ÁL±ël«IúÛÎÓø-nX‘rä×kêÿL#Î+òD—Më¬Òs-IšSš¥8ÓÉX)¸ €wßøp ¼œÄBŠF`mº24«D¦Ê÷þ$êâš·¥O•VZY‚Âÿ,4«; §€7ãßrËÌš³®¹ÓˆÉP+lò“Ûßÿ‰(>0.Ob¦ŒÕB¬!š?¨É·BKV!bÝü`|ï›™J}‰ q†\Zµ¶ƒ¤þø¯æÉ-*,d8¦´)”…n±n|íâØ‰æ$­™‰”ÓŠŒ/b€l ýï‰áÊ (ÇÎ àœn-MÙ,:çB:RÑS‡Ôu#Øyú–#„!ÝJQÄsŠò•}¼¥ñN0•[¤¾ÚK¬Ð…}`ÜŽÖÇÜT)pëtø’ãkùG‘­½BʱþØ?I©ÔƒOcå!ɬº–ýLòÿ¿||•ñ;Ê_ÄÚDxôÇÞ#w$Ü È)ãÛsUb³ø§I¸K'N‚U¶>@­± …Ça];8°¶S{”nIûá0Ò’OcªnEµ²¶å¨¡ Ò«‘mÂq± -QK¸ãKRTn;ßã„—, ’›§ž1¢’Un+2#²²TT.ïo¯8ªü¿í6;B.¥™™)®8“! ­J i° Ÿò$êþ_aì¶ô¨•†”.¤º ÞùOn;bþ˜îw‰-‰R¤ÌqÕ`ôZe)VöÓÉ·œ5T)ïÓ‚äH©DvN•¸ð(q&çbnAç0Å”2ŸýLYTdd‹á¤lÉá<*êŒÊ£­¼¾³ò‘©H$Ü I°í¾gÂmÊ\—™é1PL”ÇŠñ*=ýs†ÔÉ€Å*(‹F¦õ)÷[:Ð/Ü«þÛ µš•3ð\¦Úe•YÓ§XrÉÃ>Fɘ±œ.=b•˜¶¾/þìÇ[¨† -%ÂP£ÝZO"ر4Úil*]þª§NtØ#`kùÄr¤ÕV†ì§›e’ô¥%(Sïl€UÉÛíŠV[Чj²&¸WÓ(0&å ‹©¾ßLͪK•Æ"²‰ I²ÐlwÛÜ\o|.&*ßâ6LV‘‹*ÔsM6 ·ªNÁÓ2eM6úË`‹9¤‹ïb/íyb…VÊÙžLš…\W•=åºâú¾š•¸H77+–Ñ%¬“G‡\Ôª¢Aë8ƒ±F²RØÛŒ7Ì¥°”5>X]Â^é¿ü{`äv?¹Ô[Í’*¡µ q‰R:kÔ.µ¿Û¬Âò]‚ÜinÓê,H2ãmž¢ˆ&ûûß}ðNµ&l<Õ©5ê/4RÓX•íÆþ}íƒ5ØBʪ3~}MÖÉC 'R®FÖóˆU(ÆÇ`hŠn©ZCo;µÂÉ*Üo|,æ¼¼uÌ2Ôö¯[ÅDêàs¸ý±«#ÐsüÁЬÈbÖ,¶š ‚*ùñVÿCp8ºÊÅQõ(ð„¶.À)鈌H™²¥"‘")kz/̸Ѻ\X&ûq{Øây˜3àaG¦!=0Ç}jI%  ùÆœÁ@c.Õ!;¥*ž‚[üÕ© ïmDÞÖã ³-&Oʼnù0%Õ`ƄӡQš.©K*± ¶ä÷Þø|gf°.IЈøŒÌÂtSPë q$ˆ®X´mÅŽ?Žneœ®ä\ÖµCè*h¢úÛOåÑ ¦¡töˆKoXZÁI@·{­„<Ê˺”öJ4õP 9÷‚ù4þ»ž s’—2:S.JY%Õ¬oÓP¸<ïlx–Óp2‹µbP©ÒNÀÞßo;cSãW:ä+¦¶,ÉR¯úMô‹^ÖÆjꦊ«1%kyž°r@Ž,BO{^ÆØVW䋎+ËùTJngËF%lؾÖëB­Î÷þØ/O¨KL:EAR”€CD!Òm±¿>vű×&a‡³Øª.«Pzúl ·oÒ7äãøŠ‚¡</¸ÁUˆä‹\sí{cC/Õ(õJd'¤<Ë¿4:êÒ›øâ’ÇáÊ«;M}èÍ­øâÂÀ|ŒA…žKŒ”"T¢Í¨¶d¦žÔ5B_qz–ÚÛl}ð{ðØt¹j Å·P¸µ‚I÷ÕÎé‘ÿ ”ˆÚu'øA7ÛÎgjä|y/6¦Ð–+tªÖ;v÷öÃ$Š2nd—œÝ5€·bZ¿23„J>öÂÄ¥ÕåæˆX@ƒJŠÊ”ëÖº]öHHíäœR¡N¥ÓªÅ-!×J4¸âïê=’{o†©b8ËONl¥¦ŠÂÂ×ý^øRJLªã±ÝTU>ùmo9ºT¥n-àöÀö)U °Ü™´¶hêja¼ˆËB®»¨ÛpvVþÃe6jÕÐêãÆ–¿B…€{¾?+5&)-±"[RUd’áJu’mûqÁÍPŒ@‰Óhóê1Q%¸QÙ˜’KiavôžA$s‚Ô¨ˆ,Ñ+0›ŽÃm~D—t”¹cÁ¶Àä ᶇ2%TÃu´ªÃõ[¹Â4üŘd0–C0ii2õ)ÃØøä'Æä™ùòm2§ËŠÚYS8¢VJˆ<ÏL¨—™Ë³‘´I’†Ô×Ïkû'e(¿&Í> [7tÜm·ä® glÉL¢0™¾?Í8Ó`îIúv¶ÎÜ¥HZdÕc¸–*m&2ÀºIJ’³n­ªþØz ‰,e€·ãÈ[¤œ¨vñ¾:Ë¥5%Æ*2ú–Íl«ÓÓÞüàqÍ2#¾©Å–Ž…zµ•XìG¾*Jä”U*±›0»*J‹+¢§áSiÓc½°™H¨BbL¶ÖÒã¸û…KL€.¿#3=Óëh1“ öâªMª ’Ò’¨ûl@áBû\mJ :ìôª–@`­hÒ—ãIÜÿLL’¿v³'U@©(|Q†¹¦ÉCLïuxÒ0]3[¥˜Ñê2)H ,¬ú‚ˆ±>û 4DJŠÚÛ(v Öºõ O ±‹á?6!…WUrÖû’Ô%ÀZ®››í‡A± coÞNñh”ÒÌ—êtc)2 ”—56çœq…0éÊŸ-ÎæÝ$›¤‡ÒÛá…SÚ£Ð_T×uY'HïâØ\ÌnÔª“ +BqZMõíb;Û »]T Q(ŽHlÃal¸“) •Î&U¨oñ“5&jU=ô Å 'ø· šÛou^?ä[)() :H?¤œ®T›Mn)Іt8¨ë#­ÿâ­­†Çƒ!— ÃÙ4j²¢Âr@iÅ6’´°JM&Û{àLü¯N¥.43&s2Y!÷ZV‘¨Ô;öç. .«Q÷]ÁÓyZÉP°î8Û8µi-AЇÔhbáFE‰Õm€ö¾%›m…NÆ‚»ºÔz_R#¾­á§+¿Ÿ®—¤Î§|¼&ì÷Õ¥¦Â€±"÷;øÁytGk¹‰Ã)· NX7H0_+@¥CÎ-Hé% e+)X?ªÆßÛMµÇgøÐˆ–ó n½tFàI R4)GJ÷±Ã£t´¿ECI}Ö&%‹lžoƒYÆ*Ùé‰í< -—Òmï¯™Ì HA(ž?ÐýŽ*ùlT–4¡ÓöÚIª£=Íl$¡AÂm÷ß̽–)Ñò»lUXe´¼5¡ºO }0±P§N ŠL’†zŽF[½58ý~×Áy™â:³4 9ˆ¦ºðKë/Aµ®/¾ã­¹ šž)s0¦›óRÛMÚx•$r À¬Å5êtx¯|““ã©Ý/)»~Y<8S¥Ô¥;ž^›%”|“KR:í/Vã`8ÁÊÝ].Ñ_S.6ÓŠ>•©? _sc‰V¦ªWä<´å^£]ù¬7§þ˜ºHÜߟßè†uTþ.Ë®´„$·!’åÐmÁËõ )Pãd)Î4óθò›jèP¹$óa¶Á̆ÄHùjœäÖdJg¨ú–‚RÞÛ6žÇnçÑ !ƒs°”gg|µr [i—\JëiÕP}팕|Æöuš©“b±@hµ1ÖUq{ß}¯l(æTË2fÆ–d<ì‚ÊÑt©7Ø·ã2»&NM1ÇÉ%Å%Å(ïnn|m¶ CSýÎÊÃ{3z+ÔŠF|0Ü’ÓëyÒ£ú&ÛÅöÃ;eu¹1\("3oêmöG·ß Ùóá]V²äyTz”X,¸—Ò¤”[õ ŽÿlP?ÃÐé9H¤TåÅùXî)2 ¿ñjµñ£> =™°~C3S„øFmMˆ®¼V•©fû,øÂ´©O+7Š{±Vc,P(PìI?÷ß2ënT+’¥?Wn§LÝ,·b6Q¿}ðµY¦Î…ñ! ÌÑ)ÔÛjý*=ÐoÛµ¦"zÑ’®Tü3DT(¤ƒ¬zÇGËÂÄ®F}í%²Ü±`‘§›þû`«.1YËï~$´5TIô†Õd$_a¾2Óç.Œ‚SD‰*,¨!(Çï}ð²Ø™A7jé£B½ÒnC !· 㕾ûbR§Ó>¦[Ѝêh<§lË—;ã~YÌÎòáÉmq”øÔ§Þ®ˆµ¶UY¨ùe ýœiKF×IÞÞ¯㪣RM™2Ì:HuIlivߪöý±¥fYrÛ3*ïGm¤¸Oƒnç­ß “«òªvÍ%m**Òãè²¹ñ¾<×üv'üFF!ôçm„ÅžòÖVæ“ÀNøE•P§TkÊuPZ)l”¿Ñs½»~øï^¤ÀáÖb-‡Ò-u_m¼`%=€‹uD°ÚÕ»ˆNçïÉû≈*“÷.µI§@«Jué1¡õZÿE´ßRG¹½Ž0R\L*‹ñ]lBt¬F¢:àÿs÷Æ×cº%¸Yq™§U‚R«*Þàó¿Œ/VRá™jõ¡q­ _oÓ‰¶Z2mŽˆÌÕ=Ùy‘ǤÁan¥~†–»¡Ä÷<+ß«t¨‡*™tN¬eµu<ÒÉ%>GqŒjÄÚì%ÈèS¦ÅpÝ1I*}C… Ù#)ƤÌÊjç¹ +{e¡•uWa°ÒccÈ…€71Aeú³1ëu•!¶ÿˬ«ôv&ýÁ–`’òkHù²ÛÔæÈ ¥(ºµž °Ã•',*'Ã)Ÿ‚U]›&1üøï8}z¿"Û{‹ãòN_f£Jm÷¯N©²H½Ö’,v;Xañ•1:z Ò1©lÉbaf;z‘¥¢z€ ÜZüxÛ¬§ñ&CJxjˆû¬­´µK€XqräÈ•(ˆ®¥*´ÛNÛï'IJmb6ØŒ5Š!ÒÒ”N•$7;€7¸ÇfÖ¨Ik±ì¶f‰(§eš’&jr*ã¨--¶BìG'úcæ\¹-UjœAgž¢…´¹k³éQ<wó´Ö¦ÈRÖë­•±`AB«Å£eªÊg†š§·-$)J!$ö<í¾3áÎ,¡^Ê!)˜s §2û¼€™l(Ž’u”•_~Føaø],Èr&֢ȇT/©Í.’Rãjý$mÇ8˜æŒÃ\–þh¾ˆ+8¯<)+Hý>omÁàáò‹šéÔ8漓.¢]΂wµ½öÛÛθí}3;0rlËïY¦i–§)j#Ò<ƒ„üÇJË•¦5S’ËZu2¢ý½CrFöýð`¡ÚÞZmÉS¢F£Jd)·N¥¡Bà‹q…ÉQU&5.$T­èû"[º‚‚HÞçßßZ6­Ó1J¤ª.OÈÊ…-n*›$¨  'éÆ ü9‘A©|6jKñ¡K[N–ô:Ø^ý7½ùðp·šŸŠW/©ÔFXS;¥Å6÷ó€Ôˆ•je§\äw*xÆ@±@¿¤ÞÞØØŠ ¾Ê·Ô)*4×>'ÎRÓ Hq:S ¥ ¿ãÓöÁit¹ 2kO”.Šà»j÷ïnØÍqrë¥o2˺ÓùÄ¡C¾ÞAÃ"›«ÌŸN…PbœV•„Ü€9ìpÑ„ðTVÿ™ôwê”æ›§LÒìWT¡È·À ²ýb£TìÊô‰ ! JÓ¼ŒR§S¡™JD˜ì6åî_B,—<(‘Çß]ŠÓ)yµ6ˆÎ%i.!Í(MÁºêß 2/€DÐý™º††ßÌ E$›#CZ÷"ÛØžø£¦Z#Hv¶”É8¢,M»Ñœòz*’¾$NhU˜Ì+¡„6ÐÅ[õpqPªWëêZé“!2ÜÆ“e8¢T• ¯mï‘=“ ±‚³4ú4WŸ–‰q]˜™ B5’7›cÎ+”JdÎTjAy.ikZT¹>|ÌTjËʬ­·ŸmÔ¨É_ #MÇ|PrŽa§Rc¿œ§¾EC\e®êJo¹N®ûî1<°¾ßþ È¥MNù‚* ÕÙ•N’ áWMÕi´Ÿ>1ÒMjÐÙŠËÄ>M” /«no9qê-†ZtÈ$2Ó†êYñˆÌè],̨0SµF¹§Ž„[“««³QŒ#wª9Bc‹CRZJ5) 6 sÞ÷=¯€™1Šp 3+䨢»!=rðUÝZ­æÜ`ý-ˆ¹Š‰V[jeð„¤- €,Å•Æ8ÁŠìš”Š}=•©Èˆ*B 7(ÿÄxñ‹«D›Ûš¡š¤.ª–Ÿ ½i)BŸ´¸¤Ü„Ü‹Û÷ÀIˆ¨Í„*-ˆðžtÛv* ßÉãúãVqÉõ‡©päÃbL´ Y#[g}*¸¾Ñ`9'+ÅfzšUAò-§PØ8ó¶(ä*±ðI¸"ˆÃâ*Z|-%¥)$›zw·×Ýqç ¯çžyª¾‹%”¤„­Ø 9> ±ý2[ôÚâÓ¶¥FBlµ…n…_öãß 4ªd:äG¤6ò¾u„…-ž QæÀ›â `m)‚Õqf6]1€•E’m©·¶+atŸ;⦺vlDLÚWÈGp il ­fã’|ŒG> CÍR`ÉË0ü—Rë…Õi'IôŸÕÇc£hµVêßisÆ2â¥N!6>¢,­¯ç Ÿ!(©j€™ËP*V¦V}ŒÀ¶À’ Jš+óo÷Â-o"T[¨µTaù)˜ÊÂÙ–ÛÄ ‹p| WÛ}:VJšx(i¹÷ûãj&G§Ðd©Ö”òj»G¹·ùíŒÉ•ÃGe&MTäÄyM©Ù5©hlåˆ×¹Õ)Žç ô9ÔçT‰o›×*N’w±#ÓŠ~TxJ¯U¸k§TS!}Hs&ãø|¦fŠ\™3`¿–¾d:B]À ·kíAV芪5öO1Ù2—G¤²¨è†ø³n¢èQý÷ÅB)ª´—ùél¸¶ým8B›'›‹^v‡PE!ÉÑeÚ7 ýAÃ}Åüá®kKvŽýZž"º·T’ ’M´ªÃÓqÜíï‰æqrUF°tÚDY0êIK®$èŒPØÔ«éµÀßž06¯BŸ_ø™K«›òa¾ŸA—¡)¶á@Úøg­Ò$¹•§µOqmMŽåP£t‚= ”Œ Ê’_¦ALÚÔ°µ¤”»©6HPÛaîq3käR Ü"E"œ~L±" n%›S%j?À«_ÔŸ8þMU,SúRäüÃÒ”Vtõ;mßjpcV3$YóÙeÔ%j°m Ù²ŸI½÷7ÀWdУÌv-9ÉMD–õ”Ä^öÁ#còä’|˜'Wbåzú Ì›!ç–ê[e)mzòì&Æö¿|fªå<É&¼Ûÿ6ÂÜŽò_Œþ¢UoâN“ÎÞØý—O©T%¿6#/¹!Å +‘¸ Øj=ÀÛ lÔ³*soÔÌy rÈ !CJ~°QÏe4³Ø6T%FKf„âI!C¶øR™òæ£u¥jP^ÛZûaƒ2Ï“X¨¢CHi!âJŽÃÙD ,Ó(s˜«TäÆ3H"4v”›þ¢}ð1¯.Sö…á»±š“*IZ•Ù¥éÙ]¾¼yÅ>Ÿ—sM-B¬½ j§tHºÈ¹îÁÛo8–©§1ĨJLw!P¹Iþo¦,ɪÉs)×òü[©R)Î=(ú ¨$“¶Ý†Ư²YÞ‡ù¿1¡ÊþqeP•£CH@núÇdê\d¬Âb= ê”·¥Ê RöæØi§5 M¹2C‘¸QH;› ìp© ró •T€üfÞ-%^•[<â¨ÇÃÃÒ²ÓR¤™ q/H}íhJ´Üsb~ؘ¹¹Qeµ´ìô¨€èPÆßýašcòÙ§ @ž¸ ¡ÝzJ}*M½HUû{`v]M6¯>e4ÔɉYq©~SˆßQö$ÆØ9~KB6V¸”´*‘ ÖÐQ !ÚûÃ#ÑÊ$¸âÔ4'NêýÆ;þô\îR¹ÑªE‘`ói½ÁÛ›xà òBÝm ‹éñlenK–¸>F£HbC«i(}ÇiÅ8nѾä}qÏ0{™–.¨2¨­„Ù'JT¡ä†èí½%:ʵ“êp{}p#2Ñ¢Ô¨éJÚ ’ºVn:CÛíF (N­9%Šd[Û}ó©‚ EÏíß,ü ÌÉêeJSÍ©²àÙ6_&Þq¦“ èyf#RW¶nÆÚ–’ ïo|i™cÈ2iÛe‘d/bTm±Å7ÈŸî$ÀüI]6®–[ŽˆåÆ\}Ë\ƒkx8jŸOl®šZв˚Ö.  žÛaAÄ5Rv[56‹sâˆC„n/d{m¾5Ƥ®)~TVUÔ[(ðžØcWbpä}‘P§<´ü»Á O6¥\$žÃÛ uØï7 sI,Ô¦œ°V«ƒÍ¸æÀ`î*ŸZÖÚ€K–‚úp¬ÍPp=ß–k,õSŠFúí{^û c”yŸ`Jeb¿Mr\ÇiÊU!ÖˆŽ¦›%`‘ºŠl¿·ï”rÍR».­U¬Ï[4©Pœ,°„AVôsǾ(ÿ‰®]o¶ËŽCJ.VÚwãé×>O©CRÛ.”‘vÓr,{‹ÛlŅا ¸©“X.9›%˜êDV¿RR-pl ÎçöÆlÛEˆ¢Ýz.Y­Åx6‚ ‚ìAHØ‹a['²õºÛ’¤¹gäkŽ’ùRÀ<€nn ÿëØÌ¡úí!2ÉbÜ-j!z”8#þq6wØv”Ëe‰RêN©¡½BĶHßNÏß!Óêó¨ü›æ-„……¢Ú¬lö¾)9–™+bE’úÙ|YÖWb¡}Òm…šÞvŸ™[L S ÒP†ËEJý@$ßm…®pؘzbeSt%Q¹qååø±šo€QÈl!¯)Ωç7Y_Ì3-úÖ…Úé< ûøT¤ÖªT—[.¼X¹sPÜÛ*àÿLW)µi³àšÓ,¡¨Š^„ê7ZÀïíô8²ülIbÀQþQqp)™aöiËRb€ m)ß¹ãßUç?¬²‚¹ ¶ •ÞÛÞüáï7Vi3êTçc-²¤,¡ð³{¦ÛnøX¨&,šƒ]7j¸Y;<KÜc÷7#‘V/Qì줹¦5%M}P’n;“ŠLJ0”ÈŒë 4¤nFÜoßü½ª”ª¼£P0ÓëBZBnmç~FãŒQœ¦ÕhTXÏSŸK}TƒÐq7l’;wgQdDÆö'ê¦Ã¢gHñ.øK¨)(¸PO›è¿â¼¿Õ¼ˆÏ2»²¶ˆ½­¸ç%8ìºó žçù¶e2½®£µ¯·Û Ôù„§\–·¦! 餴ŸNŸæ#Î'ü"h hÄZvQ­·Gei˜ô¾˜P”©gÕ¦ç7Æü½D-Jtº„,‹ZÝT‚@WßÛ“*-µÑZ[ZÚ!;^ÆÆßmùÆ,¹“e·§‘-€Sqê Iº¿k’GŒÌ];ìåÇúØTâÝ<=! 'òR@6¹Ol*Õ'@‰Z§‰nDiÇž)t¤‡÷8¦¹IqS–1Å0lOß“!S+±ÌÆÒ£.6­.­d©7:wÛĨæer1®b-dÁX¥TdÇPº‚u ·b®m‡|K‘%¸÷VL‡ÔëÏ)D—IóöÄ1y–ŸL˯ǪÒÝvkNM®”•q¸Å$J®Ó‚åNpE§LHsåצç”ÞÖÛ|dèÊ”·˜zœô„fªPˆÝ§6Iä}1Œh” ËZ…DžìzBÓÕù5¸Kl8PO€G?Û µšÜšiªm9i]Ç” :¨&À¶øIŸB‚¢„Ô®¢VÔç郀J0¹;X†+Õ B Yf|f¢­M¥ÕV\ßÛêNT&Ar5QÕ  —4…ØXŽ °¿NËl¿N=‰ y/¤•¶¥§n/ãÎ Rœ†ÎcrÒà @ :ÔͻA°X%¦Íš¡¯2ÑÅ=/·O}™-L’4éì}¿|r€©—ŸùÄtÛüõÜ®Ûmqß“†ÓÛFd G~akS*d£@éŽÇ{wÇ6o˜X¨H• §þQG¥ÕÝI?®Ã¸Â`Õ8¨aä|AùÄ„ÅrJº¥’AN¢Gðð7ñ<ÏWä¨ÙvPCë*W]IAM±¿õ®u‚_ÍÔêsaMº§Pòb£u/ßnؽÄbs‘ÜF¦ô„¤¤‹ƒúw¿ÓëÕ®™‘M¹ÉÌáÈTš‚%9T‘²[t’ö'€< ‚™¡¤­•6‡D…4°âùHú{ïY– [-FJ:—4%À{ù¾:ÒbT,¾¦]@IZÚäù8ÎÀÙµi¼™*O‡eÃsZ ¶”P€¤,žÊò1ž3ŽÒê«qÖ:ˆqD+¤@ ^ûoîyÇG‹ T]+Ë’[N®Š Ï×iïÑä:´I(T×`•[“Ø_¾"ÌÁn§2ƒÁ8Ó‘Xrlç_[Ž®íGRõ=Ç~£/岫-± 1[d­(:R‘ß™4ªÝf¡&2*qÚ)'¢R4‘؃¾ D—2 „Ó*.3†HN¤Ôž×ÿÞ[QQ1ûä/*¬áC1Ão*:•éÙ[m¨àTj«‚JÚmqI€…G¾W¦Ff‚ô<±1Û·¥J'H?íïŒôJ °”Á[϶՛#aqÁÜöÃáAGnJ³7«¡I+ô¾.é¹ä{øÇ ¨ ¤-·t¿ÅM¸,­GÜoPiR*SÓ!ÙýT›tТ•¬_’§|l¨À—M”!ÈB€¸s¢Ô\oÉ¿¾;õSpÀs ìõ—… ¶øù†"Eè:„.-dù7ûã;°^£* 7‹N0Ù»šw·›s±#GÌ."᪋ ³ixn 87o¾ ·¥§IJŠHÝW$xÃ326ò$Ð)TÆÜuÇ&Ë$Üéæäó¾D¶*šá¿!ÈÁ*³¨¶—-ßè1ü¾ûU'§Òe9kÝQº·mfü‹þœ/Sêý,èôiñuÌcÔàoI$8å¦Î]”yèÓZ¤ÔçÓ™bp2PDVJT[J|ê;\ûãMتËó”øv4æÒRÒT7 #aÎûãŽfÍçüCCC`ô}¶ß”ß­L¤ŸUÓÍí¸Ã½c/ªdZmNœ¨!·CŽƒmV¶Ä7í¾Ë) C`É}*°å.C~»X–A»ë˜Þ€›€Òx÷à }Êm]ªzãé}@)u¯BÁÜM¾¸ã>4GÐYu¦VIu.óÏöƹÏÇ–ËQáÅm-Fh¼PSm­§¶Ø6å]•½D_ÍYR…^¡Ó¢9!×_h †’ ùñÛéŒY§&FÍÔ˜Ô¸Ž½KùgwBÊR¡¦Å$>×øð«Ç")NCt”‡W}I$l¦?ùFMd­àd!w8°ÞöîF+339@LDËôZþFv;‘êm9´ØŠø+KfûzlP_ÌÙ’™ž¨q­8Ò®Ì$‡‚´Ô›ïkn-…•ÜÉ6|JCmJbrJúÖS®ƒ²@"Ö÷Ã[‡"§œé¡ëÁ©Ah>Žá JÎÖÞ/㌠Ûmy"„J:Źñ)yzO¨Õªo>·¤:‰ HIH¿!6ý@ƒÅþ˜ø­F}Z{4ù=6I §·*>µ{‚FÃï‹Äü¸šÝ*R¬¥¢,›¶ò¤¥dX[c¿sߌ×P¨ÑDyqãõR‚C  –¯Ž1\NP‘U$Q…ªt ÍB¯ÓÃm¦¥6j ëoACm¤Z÷Wn|á‚–š½:Ž<ìI”JšB¤ ?§WqެæÉuÊu6$¯Éy ~¥轊‘~{c‡Ï"EA1¡„½ N,úT²8¹Â¯%QkÙøsDôÒP¦Rʜջ:µ/P6µíÀ÷Æ)3áÔë³iUæ%1 M—éª +vÜ(p@ïÆøÚª32¥Ii½dëÒ¢7Ûlj MµˆêÒ, Ön~øPà¨Å,{ü=«eì=榭*ù•ÛË$-77±¯85›ë,U*ÌȈûŒèu¤¬ÞãÆÖi4I”Ýsj:Xººªþ·7í÷Äç)HUn»=Q§G©Ð’Y‹ (Ý+M®’/{ï¶å‘I?QhcjͳR–¿—œÂ*uôXØî;à“µI¨…æb­áh­ Û[Ç< ›òtÚC’#OQZe­jÔ/n/Ø~ØNrLjnW‰V‹T‘|µ”Ìpàб²‘Ûm¿| ׳³BÐÌÄ|M%–Ñ1¨ ©EkQ Ø8¸8onE9" FXV¥¸Ú@ê%Fà_¾"ÐÞ¨·.<ØÕ‰)™éPÑéx«{©$ïÜ[<œ§j?6_«®¡ÆSùo&ÊmÏâx¾;.!íö"“ÎMí»I¦Rô5 #Ô[ ÒI·p{ûâ_±RË_&çy‘K”#†”†.§@ Ø¥=ïàâšhÎÊ›JCn6ˆí=ù¨ZÁ:p;ý0ËU¡eÈ¿ª7-RœK%JfA J•~-†ÆBÿ›ƒ íEZ†x¤×(N¢‘­È¯$uTãe:5v ‹ßÛ 5pË +HAPéÛ¿¶EËÔøÏ[˜ÙpëRK¥;ûƒ®ª<*p’ôgܵ‰õk'ÚÃs‡ž ô Nj­&ЏÕ6‘”¨Ùl³miì}¶Û NœüÊÓ®Pë(aZdÈ^ăÈ#Î?%Or¢•%Ém2µ ¡„'J4øö#íŒlË’ÓÓ)ÌÈ’Ó² XV•[ÿ¼Mڨʨ°e*r)ÒÞi©ÉbCfÎ3rãWúnSûàe36·-?LGf*T±òë :yµ»á^ŸIƒMÈs H‰!‚BÖ¥_Q<)W;íÜáyºËg¦¦ÙZ¤¼*}‡‚‰Øý®o¶aSäbOyªÙâKÈje=¤1HJPâJ”à=ö;}1¦UFµ\¢Å‡0¢:d·tx{“æØSi¨³jŒÄ[jÐÑüÄØêíÎæU¶Í&Œ~ l/½»víl rU@ûˆU¸ÔÖ³{•™q¹ªk¤ãÊÕü ç^ྠå*•fV^LÇ_r¥ekЧÕ`@$‹ãn÷ÀÇä4ºB¢­ qk7WåÜýàÄ9OÒòÜVYB„&Ñ 5 ¿¾5 Ÿ L›þ=¾Â>Pœ Í+]@7YtÒ»Ø Á>M»Šó²#L ?Dq¥æwÒV#ô›w2UfB«Í§9_FrtêSNiq¹ö·n0î̹ 6R*Ž|êZ\õ¸ío¶$ʰ&~V3i‰5T¨n?øó-)ÆÑùdÓ¨žç$¶Ýj%,TTw„­òÛÇÒï{xãuZ&­"ží2kO¨¯[èu@¬‹ocÍÆ;Êe¶ã' ¦Ë©M–/Áÿ|Iª¹ ŽöC9rBjº…% Yw!.ûs¸Ä·é4¨rjO6ó̶ú›[®\,Ù[\ŠlIœ³1™ÂðTÉK£UŽþ/ßꊚCÒâ)rß[à!EKÓü7¹ßëŠbÈ%§iG‘’Ÿ™‘/."\X®•Ö…$´mðæÍ&˜é= öj(2â€*mÄö;ìAÛ÷Äæ¥1˜óÃM¨ºl ÖW®Séì1¡Ä¢!h)ÛB¹¸?Ðý ÞðJ°$DFœ•N™:›>"~q‡V’ @ ðpRc±™iÑe;Öœô‚–IBP“úIÆ)ÿ!°*ñ3CiS¨u(°'°ŸM£%¬óO¬ÎŽì8ÿÂðF¤¨ræØª¾Éºß’óNkHJCcHi úlo‰Þg\…œÙ~ŽQ‚T´!‚?R†“p­¬FÛ®DM/Ç’ÒÒ—4)WßuOÄdÓf-§Ì8¡~·€Tá¾à{ fS«Ø„‚DU¦¾_må·\WuÝm¼R ûø+©‰1öd6ä¦ä·sq©±äŽo‚4\½]5‰SÔóóýuÒ>Ø-R¢Ã;òÏ­ÖŠW~GþñpýŠD> 9÷bKuøËI[ÑTn’ ¾  ÍñžžÛ•¬ï;Q›wAmVÚÄ­Ç7ã *ƒ=BâMˆ^à yǬ–Vx—%€ìDKkB”JnxU®peXŒW“úif“7ç’’ÀUÜYÉ÷$vÁ‡d2ôÒÓI.¾¶õ¶„ Ƕ1ÕÍ'â#9^¹-†ÙmލQFÏj $´¿~ûaèì)luSÔ².Ì–Oéý¸ÄÜ[ªIŠ´ÜÅ6a\WÐën¼ Z·!% $øÝS¬Dü Þ¢È.)Ò_A¶‘ Ps MNÈ*Ö÷Q¥è¶  5}î/ƒÍÌ‚‰Ì:óì–-` UoÛ|!iMìEÆêBT pÄh!­›iZ·¶âýŽ2el·Dž³-ú¬÷*Su—Ttïµ\K‘sja³øè«¡³n›é<{78.¸lF¢†Ñ ÖBì’ÙÓ¹;é#ll*HOcB)Ñ[¶—$´¡ÔRÈQ·]ÏöÆjœÉ¬¸PY_Ní€RÀÒ×¶0R*:Ú¤ÿ™ù×ÒT— >±½¯àý°4Ò‚Aç^yƯÔ)Ùvä\qˆ^Jã£&òæC‰M’Úœw\{-¢å@ÞÛ[~1Þƒ4Îøu%åRÖÔF/°¡äùÇhm+çÖ†’•%mŸ˜z¬ïk}pÒž›PD c6иy$í~;ö èìwR# )5ðÕÙnÇ[¬¬)BßýbI ®š]~] §eÅTت֋ݵòù\àN}rs,QäMj<YI,\[ø>øõ+.€Áu:e¥[ëlƒ{‚wç Vé‘ b)N‚º~ZƒTŽØ•RŒ.ó`¨”›é ûò0ÍQ[Ì3aφ£˜¶Ûy  A¶Âþqü&ÄŽ#5©‡\R¦T½ PÛQóÎ .Dˆ¹j54°Í5-‘Àj"Üy?°ƒäfP :Újb$æúqØu]Vn¥ÈPî}ñÒ¥-ÐÚ¤)io@¾­ [É''RdµRj º“ÒÙ!(umkp­†;Si“—UqÙrˆªRÊb©¯Õaéõ­‚P]Üä}NùpKÌê–P¦#B`Jn·OÓ¶9Ö[Ìѧ*›½Ñ¤òB‡‘·oß釿ª­EÊÅDÓ^t]Ä¥°U¿qonÇëô8¬Râ?;%·Oæ8T€#’9µðMO%^þÄŠ]*c^KòÕ¦OUJ×½Ï6>0n§D*:Ó² bK¤MýCí|`mÉñjM!ä)ÈÅZÛcƒÒ%G^_[è˜É% )ÙÛ“ÆØ!°alb¢ŒHNEÖ£RÔ˜Î;Ôp´íÓ¨«¹=·8©æJõ5ÿ†”Ä¡´»TSa%„ܧc¿›á*Vu3U4,¾Ý-½\Ü+¨µ¬¶<~Ê’äÕS©ËŽi¡JC¥H±JìxÜã²–ái (¬Ä €E¨¿Š-Ïj:"R¤6”:‡Ut¤ÇßßIz+Q¥ÅqÆÙZT Ò‘bF6=U “I[M)Õ .iPW¾¬a«å¸ÒèÎȧ:± ²ãW*ã÷Ä#7*kÔ$MÊ’ÿÃSg¸ëŽ–¥4oÂØb«Ä·—á4Rùa ¡fÄ p|œ]jt J{Ô"ä`*-.Ý+'b¯\›_j%9¹Šq/nJ@õ ¹>>¸â ÀÃuè2—ùfÕéRЬ8ÂÜšV`ü6:Óòm()Ç’¢­FçÓì6ÀÕæ*ÅaöÛ ±:1Q¢Å*JMÁ=ø¶9G£%_î„-¨kfÊ|§Ð ‡?¶ú£¼ÅXƒ"«[ˆÃìÄBKfÝJ¥mk“¾Øe§RãšK¨—$G[Ke¢ëªHäckÎ:íwðˆÏ¶Òb ¸©*N « „‚8>Ø ,Ÿðr§¼¹M ®¥…©Gú‘‹ïʹŸO”ØÐ3äXðä¸ó l¥Î¨Ô9Y^ÀÛ“aùË!ÔÛ×½ÈïµZå¡Ã‚â‹-iZ@½÷µ¯¿Ì™1ßaÇPêVú}+±óØëŠ*X¹Ù¹¦¦iµŸÃHi§–§p]@€wO¶©T¥?Rq)såW©Òn£~@ð0²ósdÉšÏÍÍFÈl j;‹›‘aÎ G̵ZH-;GZ*„¶ù ÷ßɈ› Nv3T(¦kxÆ–ëHGY}@¥)ÛÆøÝM£ÒåQ•9‡•Õu:Ùté77Mìwó…¿Ç››3ê_-Í,!´¤ \¤›m÷¶4µJªG¨K¥Äém´%æS±Ð/o±Æp¹,)¥€5YE¨›rB Œ`ªÏ'PP þ’=®-lSÛ”Ì%†^[iÖ“{ýq/UV»AÎÏ5^K²•hÖ«'JŽ×÷¹8bURÓ‰K©uD¤•#~{ãK3ГM,“©blϘnB[BUÔ@X 1=Išªx*mV»¥C`Ÿ Œ=MÌ,!„ÆRR](Ô›ìaƯ'œË³®KLFÞd§BÒMÈÏ7¶RË€?Â(ezòj9¥·iì7=J% R½(û’0ë6€•ºêäÅÌå,¥¹ ÛJ="É>Ûß ñò]2”£3 ;(I@K¥¦À¹÷°ÀJœéLߤ»2Ÿ%¢¦]Ô ’« ƒæÞvÄ ÈÇY@¥(™žæ{Œˆˆ˜QqÄ ÙÄ ±#{Œ2ÔeTº(z)²Eé{/éàân5(€Ó6Ém†`ÉJe²Å¬t÷¸÷¶'|ÍK­%ùnJ%φœm ¨®öP±çû{àõ&+?=…4P‡l«¾|_¢ÓcÑ¥?S]>ìï™’•?dº7#a{ßlW3>o•2‚ëp#ü¼·T¥ ¤¹ã鉃ù­Ì¿2J£2áR[1¦êÝ"×µþäñŽ2` Í”®àŸcÔ†Þ–âi.ÂB`3§^•kJ”F÷ ÜßœmÌ6‘J—1—ý=—© Úà‹ìSÇí€T™¯fÁ4x²Õ5½ÝwN uØÞàÙC~1y‹Cª*Ÿ2ÆÚ`'JY±VÖ6=±ädjþ¥ý‘ì§”äWŸë?þRŸÌRR Óï†:½…CצU¤’éF¾RyúýqJB§AŒ¸ì£¦£­77R¼œD3¥!ø¶Ò£Çé¸BPâ’NãͯÈà Ã$M{4Qéå9•‰òjµ H”´²¯šp¬ “p;¦ªðaÓ¡OE[ª¸ª:œB}hþm¹Û)ôv©Ôó󎾄èºVê€Ð{<þø›ü@“Ps)&pâÈ Kà¨:°£m&çôÛÇD€L\«ýBÙBµK­Ôjí¬Ï‹KLÅ5Nx˜ÚçŽpjuZª3ÃRØÿIKQÒè#öÀÌ¿ „O¦S™§Èb:’¤Ù{ߟ|4fJªá×b­èŠq*A y¤ÜƒúNüâyÉ uã${ ¹º“WƒDUYúú©c¯XŽ˜áM‡¬^ß÷œ1Pç„e–j.:‰èô¬:•~»ÿS¿þðé:lZ…DAi¦Õ"BB×BoªÛÜm¸9Àƒ—i°&Nmê‚c¸âº¦(i'º|*ûí·‘‹ „¥0ƒP'‡ëT˜õ1óhdœÒì2’®žû^ýñÉŒ§N¬Ö%N¦ÖÝ4T›²R6WñH=ð™›2̪†_tSÝD°¤lòT¤ØÍÇqà_iã9Ñ230Ó%Š„4¬$ µgÍù ƒêúñE@ÉÃFMƒ¨QçY¡¼ôGTeMê)l©7ÔRNÚ·?ûÇ9y¡§ÐôTS¤ÔÐu‚”ƒÜ$÷?LFRÌÉ¥ÏùØZãIyo+u¸.‡ö8”fÑ IER[z]'Ö·‰((U…ìxÜøÇ)žYŠrÁ3ÂË™¨e¤:šjßZ†®ˆtjÅŽ8½&{-¹È.³èõ!Óë±ú}ñ|¨0Q\øN¾ˆiõ‚ Mû ûaFU0WjÏÊLÄ2•¤¤‘÷·1‘3’|š2йË/âÈ“Þ)}˜÷OM>“s°'¿ÓI#F˰™,‚ãŽi µöa‰^g ?<„ÒJ[©!Ô–œ;kU÷nE±’ŒœÓN¤Èv§5rç•þc:΄5yƼ¿­”5ÄÆÏg‘öÑòÓòº‰Z#t”¢²=-›ßžßL€cK§ É[E•úõ’x#Ÿû|G«æ9zd!*;¢J›ÉZÂÞøiÊ•„ÁøkK‹U¢ªÙ--å,+ªAÙWíõÛuSØI!ª£Mô+.Jm€²šW ç¶Ø+”Ä »MÔš©kBl”„ÿÇûãEE™ X6âá’®‹jö·6ÆMr_z2ËtÅѱ·°Ä€*R‡°Mn¡@ªÔà9"In6´€‚ µ¨Ø ß|6‡”f˜ÒCA–ÐÊJ®Ty>ÖöÂÕ=t_ÅŒ)¸Œ©zâ8´í¨›é¹âǾaÔ¥¯0½/þ"¤ ¸Ú÷FÛ`:•¢%1ÓpÅ™Ñ&Ô+¢¦d©Ç®€[q_–€<ÚûbQu¾šVÊšA°J8Øp1-9†nQ©ÕCž§d$º­ª{êîkaÎS®ð—,—$ .È:Îü{_튲±[‘.¡ŒöìX¯Ã  Ü]•t!J¿r,qît™Pè=FØ•1—Ý n ‡ _ƒõÆÒª5'dŠ”×`†EÛÐPXãŒz¦=UGÍ¢UJ9C>¢\k¦T<‘ÂN3”úÈÖ!ª}yP”äq! E¬…&Û6¿[ªÔ*oÖÚq¥§¨M€óõÁiKoä ô‡XuSFÂý‡öÂÄ©ÏRT·¤6‡G ;ð=ðúµUE*&©ÝGÕò3Ÿpu™!Çýi¿kÿ¾6|=}Tšú$N©¢,R[hIvåÒ8Øá2xºž–ôB–Ÿ (îâ ={Œ†ZšôV$ÅL†^?9Amv¸=¼âÃÆŒ‘beS7Ô)õªé},…–ù” "Ý·í·ýãÆ3B’Ér/VzÜVÑÜÿL’{ÆÛáË-Ò›‰_©¡H.6t%˨’,O8[SiMu÷nÊë,4 йæÀxÀEåÀxaJ|çÔƒµ'YZT¾«L6²ãN I¤E—$ÊL«ñ’VÔ~¡ArÃp-µð Qã÷ ÔÚlv;o|5KD„¶Š‚¥´ Û `$YMyQîp™qѹØÈ<€Ürf‰ã¡58¤ªRl«¾¯ çdeÚƒÙeù0¶ÙykD~“‡K„-¹' J1YÚŸ$JDx¨Qù…~¨<Úø­½˜Úo&?"Ñ2¢Ú4Äh$0w^Ýýð7TûŽà°©#‰IÌHN—_\˜’"…6µúR-ú|ß ³*Ó£¡œ.ÕkIÖ‘ëAW6^ó:´ªZ*Ψi×ÒŠR¢.¢‘m€¹ÁÚšP ­#´„†Ð—É Xø× Ž×"L‰U†âºˆîê*Fê);¤‹íŒÌTêMÑ$=R+u¤¾Ú´Ø/J•ºˆ¶ãî0?PòU_°¥J"•EŸ2™]Bmå´—÷ *þ÷ÆJ³²Øq‡Ðò˜#BÐ5‚9$øÛ¾3Vݧ¸ú_Œäq*IJôÜ”ƒ}ÀíõÁ–¨ˆ©Du¯™|'PßSmçÚøc¢(&*†f?ÔÇR§»L ËÌ1á¹&—ó’˧mmï{`åB§L{/Q£K1Ý1²ëo² Ùt¨žÂûØá²&b§ÏPËÓ™Œ‡Ð(Ž`ðÒ8íao¶$ôèÐd|C{/.œå-kY(d!JH ;‘·›  ­‘8O²­K¦D©ÔÚˆÝ=,¬5pè6Röóç-Úl)é²%-ôÊ(,ÉVÚE¯cão£Ô^¦Ròä&ŠãRúz[S(H¨Ÿ®ØŸÆS2#É”üŸêV¢”ƒpGso÷ÆA`o+é€Z̵Gs¯]ä´æ¸á©l/Ò{·÷¾_j¤œÁW‹/Å]ß»m’”#’”Ÿ8`m.TëÕa²•ˆn–]iFÚÈ"üø¿~pu¥7TúÒýÖ78ª¸P%ö%P%H9ƒ!’´©×ÜI¾“pS¿“Ωˆ•´C”B:© Ócǃ¶ÇÞŠ˜UØ’U%1éÍÈêX_Ô­Èxckè.Ãr§.;KÖ ÊE÷OkaJ©Rc+=‚ç.†)î:$hqn†Ò¦ÈN¯)÷ûáŽÈ*¡­€ò#¥“¥-¬qÚÞq<®å•T ·øt£Ku%dW$'TÒ©•(§ª @wœ'Mˆ;\ù8P«­¯ÿì[£±6#3ÎzdGb !JjáÞw¶*±"Æš©ÔU;óK†šoÒ òžÄmŠ‹È§ÓSA³2+€“¤k$Ü›\ b­F{â6<¦›§ImKé¡Ô¥ÅÏ@pøó›$,aìÝ”)%2$Ö*1ŒŽ-…¨‚Ž/qöÂÕFt,ÁZ.±-­,%Aµ#e ÎÆÿL[eȈçR!)ÑsÓÞàŽ ñlOŸ¡Æ‰, ²ˆŽ© ¤Àúþ¼ GFÓ†;3†Y¥.¹›dR_ˆëTèñ[u·VÔNéŠ칞¤;Nq_4*:†Ü N Nª3 oRg·3M§¬‚ÐWQVàß·Ó$fyOºáSõ›PIr:öEÎÊ·$.@ùßþM@^Älã0ÏÌÂ/Q]eᩦ÷½»«èqÝT™•8qþ] ŠÊ R\ÒI÷¶öÀÚó®Óë ­¨Râµ’X>m0gÖjÒUªR£‚»)¶ÐSmˆ¹ïŠä½’R öw~Ÿ зÞ2} o¤_“}ðB‘›QDÏ/Ç}Ô7 ö†‡:·‚;oŒ±h”øU'!ùN0^.=ÂÊ‹ÇöǼÏší ¹4õâ( éõi°Økvªíñnî5ýË\ºãkqø¥µ¢éKge§±æÄ{âuœÖôyѧ4òVÓ^“q¸Ô8þ¯„ \i4ä1:-JPùt0§.•öƒ°·¶fBÌY£(3"˜Ê¤O޲¥¡[¦à‡kØßÇW¥29ò ;?ÿÙPyQt-x11-gpl-4.11.4/examples/declarative/toys/corkboards/corkboards.qml0000644000076500000240000000735712536324426026063 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Rectangle { width: 800; height: 480 color: "#464646" ListModel { id: list ListElement { name: "Sunday" notes: [ ListElement { noteText: "Lunch" }, ListElement { noteText: "Birthday Party" } ] } ListElement { name: "Monday" notes: [ ListElement { noteText: "Pickup kids from\nschool\n4.30pm" }, ListElement { noteText: "Checkout Qt" }, ListElement { noteText: "Read email" } ] } ListElement { name: "Tuesday" notes: [ ListElement { noteText: "Walk dog" }, ListElement { noteText: "Buy newspaper" } ] } ListElement { name: "Wednesday" notes: [ ListElement { noteText: "Cook dinner" } ] } ListElement { name: "Thursday" notes: [ ListElement { noteText: "Meeting\n5.30pm" }, ListElement { noteText: "Weed garden" } ] } ListElement { name: "Friday" notes: [ ListElement { noteText: "More work" }, ListElement { noteText: "Grocery shopping" } ] } ListElement { name: "Saturday" notes: [ ListElement { noteText: "Drink" }, ListElement { noteText: "Download Qt\nPlay with QML" } ] } } ListView { id: flickable anchors.fill: parent focus: true highlightRangeMode: ListView.StrictlyEnforceRange orientation: ListView.Horizontal snapMode: ListView.SnapOneItem model: list delegate: Day { } } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/corkboards/Day.qml0000644000076500000240000001243112536324426024434 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Component { Item { property variant stickies id: page width: ListView.view.width+40; height: ListView.view.height Image { source: "cork.jpg" width: page.ListView.view.width height: page.ListView.view.height fillMode: Image.PreserveAspectCrop clip: true } MouseArea { anchors.fill: parent onClicked: page.focus = false; } Text { text: name; x: 15; y: 8; height: 40; width: 370 font.pixelSize: 18; font.bold: true; color: "white" style: Text.Outline; styleColor: "black" } Repeater { model: notes Item { id: stickyPage property int randomX: Math.random() * (page.ListView.view.width-0.5*stickyImage.width) +100 property int randomY: Math.random() * (page.ListView.view.height-0.5*stickyImage.height) +50 x: randomX; y: randomY rotation: -flickable.horizontalVelocity / 100; Behavior on rotation { SpringAnimation { spring: 2.0; damping: 0.15 } } Item { id: sticky scale: 0.7 Image { id: stickyImage x: 8 + -width * 0.6 / 2; y: -20 source: "note-yellow.png" scale: 0.6; transformOrigin: Item.TopLeft smooth: true } TextEdit { id: myText x: -104; y: 36; width: 215; height: 200 smooth: true font.pixelSize: 24 readOnly: false rotation: -8 text: noteText } Item { x: stickyImage.x; y: -20 width: stickyImage.width * stickyImage.scale height: stickyImage.height * stickyImage.scale MouseArea { id: mouse anchors.fill: parent drag.target: stickyPage drag.axis: Drag.XandYAxis drag.minimumY: 0 drag.maximumY: page.height - 80 drag.minimumX: 100 drag.maximumX: page.width - 140 onClicked: { myText.focus = true; myText.openSoftwareInputPanel(); } } } } Image { x: -width / 2; y: -height * 0.5 / 2 source: "tack.png" scale: 0.7; transformOrigin: Item.TopLeft } states: State { name: "pressed" when: mouse.pressed PropertyChanges { target: sticky; rotation: 8; scale: 1 } PropertyChanges { target: page; z: 8 } } transitions: Transition { NumberAnimation { properties: "rotation,scale"; duration: 200 } } } } } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/corkboards/note-yellow.png0000644000076500000240000015243712536324426026203 0ustar philstaff00000000000000‰PNG  IHDR÷úëùsRGB®ÎébKGDÿÿÿ ½§“ pHYs ) )€ÒfªtIMEÚ5aÚÒw IDATxÚì½w¼ìØUçû[{Kª\'WÕíàÎíÐÝv;GlãºÝv»Û3f€øØ`ÆcžyðÞ›c‚ŸÏ‡†àÁ‡ïAÏöA_!îAÐk¸k¸ë¡‡zèë}Dö“ÃýI°ï{Žp!|ï/6¼Ï9 p‰ˆÏ1ûA®(pˆ¢×€w÷·z衇à¡ïQÖjÀ…pøÝÿ~íç©îÏöcô+ïz®uöÈ.ÿêŸ|ͱÛ[…ÂÅkEyúä®#¶=¨7ÇvßCaxˆ~š¤<­ÜõÐC=ôX,€‡)o„€; à¢;E ÃÓ~öÙÖ|ä[|ÇC§• 8Àm¸¿K¤ÉžÅ+¶Ö¬Ûž´·LI¤ØQ޲½×ª]Àiz¿û–Ag}衇zè±è £Ïpñ·<ÛüÝ¿ú&ßqô¬BàNàð~Ïùâ+žÿ„Ê¿û™—Ô7jkkk…­RÉlKÆ…†©ò·ýàÈß>ù™ïüÜ Q©Z¶Ô©3M°-ìön÷½5àC‡åõÐC=àjB€{ÄnÏ‹•{gùÅ·üˆùáÿñ ¾ûÄnÀþÃ_õ#TKú¥7T¯¸öÂúFmese5W+•Íz>'¦EuÃÄ–”ΦX%â ‘-ɋ̯­;wøúæüº ön,ZM eû¶×K¼óW±[z;œ†»zè¡ÇÜè…ùØÿ•w¾À:8µ‡ßþ‹oð½§÷ý·¨w~ø‹Ò÷:@¡ŒZé?ýÚëW.¾êµ­­ÒæÊj®V,\NÖ-uÃR5!°!%¯ªLd °ÁpV`nÿTm23Äî€ 8ÞöÊKÀkC\õfÍ+„—©]*èk¸ë¡‡zÌÞ³<:&°!ä¿üó/´šgvñ›öu~p·Ùm;ìŸûÏ7ï ›û^l.*}ðÿ¸iõ¢GŸ_ÛÜ*oU«V­X2]®¶¤ä "^!rJD-"4ûN ¬3|0ö +ˆÜ[)(g™ó rý=çœ"Èö6.Üï{?½Ìy€8-+àõœ»zè¡G²ê»à p¿êÆ€w–¼íÖÁésø?ýš:ÚrúØ”ï³LùË7¯,¿÷_½zчê[…ÍJ5W/F.OuÓ¤º4xKJgƒˆ«D\"jyºÙË]gÕ9 ÀN²íð©mBàØ±Ý/ÿ¯ýŇú¿|çèo½æ<ãyð¬`ì àÀö›ÀÞ>p ºöíí[z¼Vîz衇1\Mð Y;Ýð_zÛ ­½“gø¿ü÷¯ðÃÜQß-ÎÏÿæÍMßêà•k.º¦üþÞ¸µuhkcc½°U©æê…¢¬çr²a\—’7…PÂPUb§@bß{Ÿ‡/„Îíȸ¤‚ˆDá䋌·oÉÝh+gl®_X®8÷ë75AÁ¶·[`«®mNùö ñý-4à5ÜõÐC ðÙ>Ðî]hIL ð÷ÿÜ ¬?úÛoò½÷à³½óßö;~óS>Hµ^}ÚcžXù…÷Þ°µYßÜØØ(ÕÊ£V(ʆe‰†a f˜ØÂ^BU‰œ<‘íªïÀn}ÀÛë*¢ü²˜ ¦IÕõCùMGì¦2¤ §¥Øñæà-´To¶ü¨ÐüR w=ôÐC|0À£,â2àïû¹çYô‘oò]>¬šm™ì)ð_ø­›ý—mþ£O~Vå­o¿¾Vo¬m¬®çk•²YÏEÝ4ɸÚkB¨ QË"j…\)(8íOHà#%EÑ,ll(¶šŽRØŽÍ-tÃð¦Ç1Û[·°É s } w=ôÐC¼à¡E]Æð€÷$³—÷þÌó­ÿö·_ç;ŽœV ½!ôwýÖg‚·€|õå?òŒêO¾ååµzcecu5_+UrõB¦E Ó šΦjÈ©lD ° æ–›¸Æ®Ðg¥\Î4à’0'€‡Ëv€Ù””7KkëŠû-¨JžòšhÂ] HÕ öAóøƒŽ…¼†»zè±ÌŸ´ˆËPÙ»úùÖ~ä«|×±³A ™óîßû´à† ðõ•_ôä•7ÿÔKkµÆêæÊJ®V.õ|A4L“ê†à†Z%Á¾$rzxÀPì:ƺÛì*p‘€â;„ ÃÈ­® ßZ$É`*W±›ÞD§D}ä—Úë®á®‡zh€û²ÑG\¼ë§žgþþ_…ï}x·>ïryïïz".Î[Í«ž¸ò¯þÍKj[›¥­•õÂV±h4ò–k!3 §&%ot¼".û p¶=¸»“à p)²ðáâ!HP¡«n™T<Úâ³BÂroŠ`x‹)úOðîzè¡Gz‹ùptÿæïÿù—Yg÷ðá?ÿ2?xvß (põ¾?üL» ›×ì ù yY醛¿úÚ7¼ ¶¹YÜZYËÕ‹EÃÍ@ÏQݪ&¥³!„Zq‹¸ì¢ pæ–qî(p×®úîZÈ: \.ðqÃ`£T6+ïãå…ŸýãÛ÷@0A0À0”{#½ïÀv^›ßR&Öi¸ë¡‡sUßQÜ2Ëþ‹ÿá¥ÖÿøûÁ÷WÛû-ýà~ãÏz×F?À‹®>¦|Ý [½ñµÏ«ol•:E\r5L“ëÒ¤-IΆö ‘Sœm(n'°õœˆÈƒ¸¹èzœxûÅ’U­\R)8¥¸ãÉï„ä½v±BuÁ®•»†»zè‘ÀGqQ1qyßÛ_fýùGÿ7î»÷¸:n;=èïü¯k¢¿ˆKéQç?±ü²ë¯Y{ù+¤¾±Ur=àyÙÈå¨aZ\“’·¤p6„°«D­Ѿû¶~€³ã…Ï;÷Øzî&°-5ÀGJw@!ŸÅê¡r€°mE,HÂaÙN¤á!yÿqVŠVÃ]=ôПàC=à³qyÏϾÌú³~ï¹ç(ŸîÍ@·ßõ¡ õ€?áŠg–ßõ‹¯®5Î_ߨØ,m•+V½P\Žê†©ê†À‰–çßÏ9®†œàÎg"-•€g‚eùêÆj 96CÇÀð¹v ?$?ð ©ð5ÜõÐC|Z€ë÷'±M ð÷¾õ¥ÖŸüÝ×øð}Çy·>opÞóÛ}·¬<ëÚçUÞöŽjõóÖ6Ö7‹µrÉªç ¢aåDÃ4¹&¥³%È^RU˜î[6!t¬lŸ…Lv€nÕ1¯ˆK±òÂg<·úÓ?w}­ÞXÙX[+ÔÊ£‘Ï +‡ºa¨º!Õ¦ö §BØ3Ü:è]î†Ím(åV/õUaS>N‘áqÑOz(HA†Utá¾8I=Ö7ávŠ“¶÷»Ýk‹c,é¼»†»zh€*â‘üÅÖýÍWøöS}ð÷|øãA€[Àzõ†ç?gåßþôKjµFusu­ØénåÐ0L¸ \Ø«§BØn½x3ÄBxǦGĻà )P(•JëÌ6ZR’‚T ·Sœ4ìíãWyÇ¢Zâæhú ÖCåx”pz×ϼÈúÿú2>~¦àïýýO=àpÁÚë®æÊ›~ü…µZ½º¹ºZ¬KF=—'¯º]RmJá¬9¢³Ø€hŽpv>Àu[VàÎnÆ|¥l–ùM—åÞöÇwž€ÿ„ãªu˜{WK¾ï4ÜõÐc nôÂ|Àƒïø©›ðWÿÄ÷:ç÷€;œ÷ýÞ'ûЏ”qåú«_óԕ׿ñyõZ£ºU­æÝ>àfNÖ SÕ¤hmpV5ËÀ.‚sàn!—¦¯‰‰ê¸›‚®¾HCx„*UÍJõâjÁ;®%C´•»èMªáÓG£zº/Ü\¼†»z¤Þ³|š".ï{û+¬¿üÇoà¡«Ïî÷)ð_úÃO=à…zñ±åW¾úÉ+7¾þ¹õZ­¼U©æê¥’ÙÈå¨aX¨›†³%„ÚpCè­"p€ ÂA't®XA)ס6 àD²=ÿ­¾èÊÝãm>gÖ¥°b"A‚KÅ $8´¶¼Ë롇™øÄð÷¾ýë/ÿ¿¯ã¾ûŽª£-å‡÷»>ôÑfª Yé²­§—_~ÃãWo¸éGê›[.À YÏå©ašÜ0 µ%Ek„³Bh€³€»ö±X9PpCé3ûš˜h€Ïu8ÞO9ä±$‡t?—%Ã2D¾²µR»¥Èg‡‚:óíbØ1¿lê]Ã]=ø<Џ¼çg_aýù?| ÷ß½£N(Õã÷‡þî  ÕÀ+×\üÜòK®üÚË_ñôúƆWÄ¥$Ý*l×¥É[B4×Ù+»9° psR€“»Ô¡ë ô¤>ës\W¶ Ò"Ë*n–ˆV“•U±¹[n–@àP¯;ÞV+w=ôПà±qy÷[o°þìï¿Ìwß³Ãg{Ãçö{~û£~€·û€WŸvÕK+oÏ«¶Î;}s}½¸U.[BÉlXê–¥êRò¦öº ftÖ¢vëlÚ+/û\9`5à®ú†àm†+}´ÍàŠ¤”Â*®— ÷ªÇ' @¢›%ß9WDo4LW¨ÓC ð±>‰Óqy×[^aýéß}‰ïºÿïЏ¼÷wþÎo!óЏXåç>ù¥Õ·þü µC‡Ö6V׋µv6ËBÃ4¹.„½%ÖÁ©5\ÿw$ÕVà-_G2ÕÞì€|€k¨k€O>˜DŒB©R^•0O;h‘«Ò•—1È”÷ÙàK:ï®á®‡xtŸºˆË;æzëOþ×—øÎ‡Ž‹¸ØïûðGC=à/{Î «?õ–—Õ‡V7W×\€çó¢aYh†ò<àjÕUàg„›}îœÑr+±9¶WBÕn[ȸà¸ñnþ²¸xRpwípå’Qþå»ÌzÛŸÞyNˆ@ÿvê©L·ÔP×p×CÑxÀC ñG_}‰utû$ßqôá¾ ô_ü½¿÷[È$€pÁÊ«_ò¼ê›ÿÝ‹ëõÆÊæêZ±V,Bž¦EÀ[›BªU¢V´G¤Z`>è¸bpl?Àpáó€‹".JÃ[|~';¹ÑôrÙªT/«<¬T§®|g>¯{»Kœšþš¡á®‡Ëð1‹¸ˆG=æbsûÈq>|âL;½ãÿò-‡û<à®\Ý+Ÿ»ò†7?¯¶U_ÙZY-ÔJeÙðª°Õ CÕ„°7…´W ûe¤4jv®@µNìî¾9Æ€É@×ðÖXy òNºÙ¦¼óy£°Ò(]5ÏÑ˃¼…ž›íë~îzè±ÈŸ¶ˆË{ÞvSî~òë8òà±`€ó•ïßmž_O(½êuÏ\yížÝت¯lV«ùz±l4ò9Ñ0 nHÃÙ’ÒÙ$ÙZ´_5Aªå|ß§À[€íÕA3nxC,dJ\ƒ}$ˆ»'|lÖ÷÷^’ƒ™aæ(·RïÚá¤$é8잯ƒíp£®' k‡Óp×#ÕðžàÁÐù8²wÿÜk¬|ü+xàþ£êÈno—÷üæGÎy翈Kñ‚ê3ʯxõÓWo|Ý3ë›[Õ­j5_/F.ß¶9^¶Ö ÑnÔDg¾ºjyÉk6èB&H"%ˆ ÜÂ=.2åÛ àà@6‚çÆ b‡ `Âo‡c+'„ã°Þ]„² ½>,ƒ‚×p×#mê{€Oì×ÏÞd}äc_Á½÷QÇšv;„Þ`¿÷·þ:Ì^zäy/(¿ü†'¯]÷ª§·‹¸4 E7„n˜ª. Þ’â`]{…è\pÎ|ð¶§®…Œ;[@ÃxOzàÁ+§ºy„PNÞc}Ròà.› vÁ ‰¦Ïç›k‡NªÓp×cþWCî°gñ€¿ã­¯±þúþ÷Ýý:évéf ÿöG|«Ó)âò„+¯«Üøºk·žý£OÛÜØ¨l•*¹z¡(V Ëp.¨¹.¤½BtÖàܵu.ì‘0€«9^]5ЗÞ³bbÀëÅøïË6Cä …R©²N0O3Z«ä]Úv¸nÆ<ùºmqzÎ] ð>´ˆ‹b%à×<þ‘ÖÉã§øî{ø‹¸´8¿ô;í¸WÄETŸõ¸WW¯õÕµg<û)›¥Z¹l5 Ù0s^]:›R´ÖI¶*„SF8ÀÜ$6¶Ûõ¯}“Ùmõ-ÜF&þ tšðª©¾´ OàãbÓÖœ±!³»/*e³ô7]j½ýOîÚõÙáÜëi+œ†»xTO¤ˆËÕ×^i8ú0ßñÀŽj<à_ü—[ƒ·€jåEO¿¡ú’W<ºö´g=is}½X+–¬z¡ ¹}ÀUÍö–ö‰V…hO´ì»ØàqQÜjÜg!ë¸ o1¤ø VÓ>(b’_ì ðå¡çZ8‰J%³R~„k‡óÎw€ †¡ºehÜ0ý´×? w=– à¡5›g-ârÕc¯°vvNðGŽ+È@ÿ§oÝô€[ÀyÕW¼àeÕ½ôÊú“žö„͵µR­T6ù¼hX94 CÕ¥lm a¯’hVç¨à^?p»Û…Œ•bP`þ»p1xÿª„/„bò7£×ð_<•á¦+ÝóE£¸va¥€›Ý¹v…nµ:î· ´~]:;œ†»ø0€GZÄåQW_nílã»BЏüówn)ârùÚë®{Qõy/º¢þ„§\»µº–¯‹–à5)6©Uˆ½2á4B®Z`xg;PÄ¥ÓÈ„ƒàµ"›l«„/Žb‚o|ÀsyIU|‚`_8¨Ïùaf˜–̯nU];œ­H r3æ„p@SØá=™¿Ðp׸ˆË¥æ‘#Çøî§ýmD]ø-w=๮]Ík~tåÙ?zYãñOºfseµP/.À¥Ú²é*pÚ/§Aäqa>8³Ó¸¯é w +â25ì’ûŒGβA=!˜/ ÈSzx°C`I0 ˜V¾Ö¶ÃÁÊ Ù±ÃQG¹Ob‡[X%¯áž€ÇâG`>Ý¿…â O¹Ú:súzp›ï?½RÄå® À µÜ3˯zÝsVŸþ#¨?îñW¹ð’ÑÈåå!Óâº!íš”­ ·èÙ<¡ påu!˜Eà€\H‘5~ð©`ÑP%x$± Qò ú¡žyÇñµË|¨ Ób–€U^oÛᜂA­Þ:ó>; Çè‘VõÀ}!ó±<àòUÖéÓgqÿ½GÔöÞ_;ŸùÚ-gRÄå’–¯¿ñkOyÆ…õk®}t­ZÍ× EÙÈåÜ:èR:[BlH²« 39·¨>oCM/‰Í¸;ÿÍL ž:è £ ðéS~Ò Ô£˜;bxØ6a¨·!+ú­ÎgÿŠ*bÂ×F|Ú´»Ã‹ÅÊ*`žìU¢®Z§NX¾alÏ»/£NÃ=ŸG—Ç?é*ëá“§qï=ªã¶Ó“þÙ¯/Ì^¾ú¢ë+/½þ©kO|êõ«û¨ZÅõ€ÊåÈ+ââl ao¸]ÈN™áw{‚+ny'¬£(_øJlDÑæìÆ¤ÖÅàç³ÈS^ý8ÊíÈpczï©>j—Š˜öÁ´_¥˜â}ÇUß1^^Ó#*W­ò_w‘õ¶¿¼g7Ð.¸ø;Å-]u ÷ù|¨|–".}âc¬“'Nñ=‡àÓøgÿwÀ-Õ§<æõ•W½öÚ­+yÁ棯º¢pË ÃRuCØ›BØë$ª„=£'|Ž&˜÷<>àÞÜw»xÏq(⼯æ¨$Í$J9®õI1ÐeLj}žáöy@<€«tBƒáN€”KVµtÙZ¸çaø;ù>w)¬R"4Ü5À§ø¸pÛE\m<~’ïº÷ïöÜþÂ7¾RÄ¥¸ú£Ozmõ寺fëò+Îß¼ò1—×*e³‘/ ËÂ!Óäš«À›kDU®è|þypÅŽÛœ·ë ÷%° xòW†Y¶"Ùõ †ì9åWdgJ ‚µœ“Bw—¥È>•ÂÎà‚ R —“Åõ Ë®Îñu‡ Qî¢ß¾Û¾ŽêÚòà‘|&øÕ×>Ê:¶s‚ïxpGÙ}E\~°ï;P=x­òÒgßX}ñu©?õÛ\[w«°åòòe¡aZ\3Ds“„³Fb¿B8ED-û¸ÝNd.À½$¶^€³W´ÅË@íðy:ïŠÇ#ù®ŒI]IÄpS’2¨h™œJgÐt»hZ G,RéVØ±Æ °Ã°,#¿²µR@ŽÍ®Nq§­o3ib]æoîIq‰Äþ˜Ç^iÝ>ηoïó€ÿÓ·~è¸áüÒ•_r]õù/~dýâKÏÛºüÊ‹k¥ŠÙÈçÄ¡¶\ȃM)Ô*Ñ~™p þùï0€3;L`Å À…à2ûGÇŽ* ë1 ØÇyþŒON ;F•ÎÓÞoŠvý4Ÿ¥‹ N †i´Šµ j6,KG± Üû®áŸ k‡Ë*ܳè§G_s…µýÐQ¾ëØÃí ôÄ¿ôÛü2 'ðص{Õ‹Wžóü+ê]\ߺìÊ‹êÅ¢Ñ(ä!ÃDÝ0ìɦðsEÂAà»2ª®¼àèZÈ:èrá&¥Æi’j=v¨‹)_7!ا² ¼>-PÑî. ðE.Üa×+dÓ*$ÑòÕ—çÐóKg‡K3Üçp£æÃ„¸xäU—™GÜá{Nžéó€ù»·÷q©â7ýØóWžõœK¸¨¶uÉåz}ÀeÃ2U£Ý\{•p&O¢ pÕAÇBÖö€÷+p«=ÿ-I_'ÒvŽ+ý9¨Ïô(ß7˜ë9ðô*wf@Šåb¥ »ÀÏ'Úv¸ö\»ÏGr´zÎ=ÍðžàÓqyâS®±NŸ9‹îÛVžÝí ¡õ{wún(œ_~Aù†×·{®<åí}^À…xÆ¡N"âlú ÂöN„´“)zܾ¿†zÄp'×W±Ê[›¹ÜÇö¥t{({KÐ 7¨JVî ðÉ=àO¾Æ:ýðiÜwïCjç ÙSFõÓ_ûnÐBf(]Ѹ®|Ý+Ÿµúäg\ظúšGÖª+ùz¡àzÀM“ëÒt¶„ðN§L7}ßÍ6Çn· ·Àv í".h÷ï)âb¥#}áÀ>iöRTgIÜõßÇ ÛGtŸBïúœ¾®¹ör+w†CT,¥wýÄ£òÿþ?~ûwçÛÛv8áU©ëü²Ùáf…Eñšyq¹öÉW['OœÂ}w? N8*PÄå»aE\*×^þÚÊK¯êÚãŸ|Aã1W_±U©æ…‚lä,:dª.MgKŠÖº[Äå¤ÑxïO¥< Y/À¹+¶]€C<¦\®Ö‘{ßÇØV'PŸÙ{ÇnÔŠ|nCHbѨl\P)`V,@K¨f‡ÓpŸì4LŸ$ZÄå ^—»û‹¸|îë·„q1ªÏxÜ*7Ütmíò+/Ø|ôc.«•«ùF¡ –…†aªº!í-!mà8çyÀw=X»g¯ ›ç ¸]È:÷ª° ðy€}Y >Æp"Üæia.©´9‚]¤ëÐÐÜ)X–‘_­WËÐê·ÃÈùÐþ÷¨y÷LÏÍO•q`Nƒ¸è/ä2q—ãÇNò]÷áý`—oöq±€ÕòóŸþºêË_yuí²ËÏß¼òQ—ÔËà¦Å Óäº[RØkDÍ Ñr³Ð÷{ª°17½ìóV'=ðŽ… !pÁúMا,1›5¨O~Ñmÿ¤@Wi<^ô˜Ë©¬C aU\;œÝR¦Pìïå>¬õëRØáÆ…; ø[Pe•¸_“Èš²ˆËÑíã|ûCG• $°…qɨ^÷¼WV_üòG×/¹ì¼Í+uI­X²ù‚8d™h˜¦S²¹å¶=¨†àíð9¸ÙéD6 à¾&&:‡-³j}”d[$°«¶ÊõM£:×#£ÂݵÃå rßWò$ì‚­_Ãë–f3½àa€nÜ(?¤ˆËö‘ã|çÎÐ".Ôø£V_sÝu+Ïñ#ë]ÜØ¼üʋ륒ÙÈÄ!Óä†4UMŠæ¦­UÐn‰è${åí·=à½ïõ€ëSkÙÁ5ÔE2s¦¹‰pÛCBö3—€Õc)‡k‡“(¾•‡A IDAT–‹•"`î«‚¤—i)@®r÷[àü,Z;œ1&Øû`­ºWò 䳓QHU6ºêê+¬cíðáã§z2Ð8".€œ…'­¿þ¦—¬<ûy—Ö/º¤¾uÉeÕKeÓk#ÊÝ*ld¯’8[`ìCøCèž…Ì_Äl{ðÖ×PŸÃó¬€ ¨óÞ™èzÌwÏWÍW~í¦ó­ÿð‘Úv¸°npv×:[~8Ø\‹ytúç ôÞwüxîï>þEzàþmõЩ3}ÿú-·¾÷4Ög—^ýúç­>ó¹—Ö/¼pkë’Ë.l´‹¸˜&7¤áÔ¤<Ø Ñ\t*ï¯Âæܭ¦œ0;PPm€+v[üÊ¨ÎØ\%{”POˆjNÒÛ<<14ë]ƒ]IÏ&T*š¥Â¥yà‡Ñ¶Â¹v8‰~;œÀ’ÙáŒ1ÁÞÙAÿù×ßøØ üÁïþŽž:ÃèZÈœ_úõ?>ë{϶…¬xÁÚ‹+¯¼é¹«O{Æ#W?î‘[++…z¡(åó¢aN]š\¢Ù¸ÕŸ÷(p>ðæ¿{-dý·Ú7ôxR#%e¸TJߤ™çöN~O¬•ºÓ]O%p±€T(QÙº¸T¥”Ð.L¹/Å0ÆTì­ößùŽÿ¸øòJW]ü¯ª×¿ê©RãÐU×\Q«T\¸•‡ Ë©ÒÙÂÞ¢Y%œ0{û€ï8ÚÇz=ààI<…ò+1¨OèÊ Ôg¸èæzŒõiÿnwþÍìL®µl¦áäk‡Œ28­v¸°Ju“ØáF¹÷€þWõ]âð}ßÿíÿý„ @þØ+n^»é ÎyµF±qá…õC…¢<Ï4ù|Óäó¤Á )[[B47ˆZUÂ9ZÄ…÷»}ÀÇ,⢞€§ ìjÞû! ¨GÜ¥mNÛ­Ãî‹5ü."øX8ˆG; úŒV÷߬À` äýì€Ý·.ʤ”«®¹Ýá„)¤g‡kçù•û ;œòa°Ïì À0¸ÓûßÿŸûø‰Ûnª”‹?AØ«6AÍèÄ QK€÷]åÝ)¥ºßð2€ áB\qÉÀã¹r“w!`ÊÒù3d›95?ا_'­Ô³ð(žþÜn9?Òþò~¾ß¹rw©ë³ˆRÈy¤`˜€‘߬ûPÎAx÷.WÆë·°êÝpãßh¶ÌÂU†Üy óí® 6Xµ ¸åþ®=à ðÙ D4|Þu*°ÏÓ@}Üïc‚ ræ½ÝV…I=³Ÿýø˜ àÝÐ÷`D›fÅnWÓZ©ä];\sERO ZŸNK’/ƒÎð]š‚€§_ýRëoþçÇövÏ©{ŠùspÔ`ÞÛ#ŒÎóÉà‹ ðñ@4à#^>1ØU ÷ûÌ…hÒ¨Ôû·¹ t öå‚÷˜÷«mâ!ç†ï"1åv3 R%W©­Ö½Û$|v8êK'1:[~¡@/m¨èŠG=€{î~h›Q8#D„‚*š ËY†Wvéªÿ$÷õ Z’Dì-Ô·Lx}OöT4ëýPŸ ìcl”î2)ØeÈ2 D)uÝD%€Z¢‡·ë\vûbì{¥¶}‹:ð.Àû xK Ä-œÎÒïàÉ>af0ŠE£üi€Ô±¾uŽzR¥N-©Ï½g¬UJnûáý'®}•K2+ ¤ÏæQàýðŽýB•™ü°ˆZ©‹áOôyã{Åßu}êgX«žŸÌ ‚ã%°¡û»w¼ñ, ¼ýüAŸä5aŸ,„ ŠEQݼ´X°í8,…¿;\ LHw¸…†üЄº÷¼ç7lôWÿý_ŽÝôº«J3¡VèÙ…÷x¡VææÖãûÇ„ÿ#Ä”Ÿ%Ð5Ø3ñÉŽv›wl÷­Ïx. {Î ÇÆ<Ç,Sä6·ò®Îf"A‚½Œy¡V¸…·Ã!_%ù®@€õÑOø\«õ¯w « 7AC>›S^,{A’T“—±> xPÔ`×PO؇ÜMïø ìó cM)À0r+[®®¥ % ÇÐø1ípƒÄnæö”1Òí±€‡›Íl—J&‰vÅ%ƒû"<^Á4ṑZµžD“5áw Øuø=[f /*À‡Ã]Á2ŒÂf€hÚ@Ù"á´Ø–§€zÛáJÅšs÷ÿÛÐ:w®µ½º^‘+›A‹hM×äêÞ“ O“½Wš Âó8.¦ðÃGôÎÛŠ)‹ôÉ,dA€c >üžÛÝhÃ\­®®å³Ãu Ù,kw8'¶°P ÀT@ëô™ýóØ‘ Æ>'ÖªR|~’{äú¨j}0¤N­§yUJ=Äà¢Òþ¥dæSxÀ5ÀÇÈ6äƒÄøåaÕçÝ¢ÁHø”v0úQ­À£ù¦Ü¤9JTY¿ \°ÍÌÂkù*=õ.w[¿.“nÐU—•WzöC¿õ'MÎÍ¿eDZÍãD9­À3£À{ûºFûˆíWi{ •k»˜Í°‚ í¢:ƒ=¸½£Žå,V¯CKW•³«¼•¥l_—€w'+â2s#=Æ:-°,‘ÛläK€g‡#ò— ¥å O°[lå|Þç¾ú‰3Íæûæ‹ùönQ<àKqM¨Ö§Pÿ™Pë"ùíP#Ž»é»Šâ¸Î°ÄõV`vºët!]Ä…†}ΰb-zÄwú*víp«®În)’¤Óò²å€_&;Ü0Ÿ;û Û=8àm ®ô4ÙÅ0íúlzA!`çÉÞ'aøˆ½Dx?5ØÇ‡zFoÈB¿#NRžJìë BpŠºô°Q G1,0­r?Ü7¬§{Þ “=o ¸CAð&€æî®}„8ïÙáwx ðÅb€b ì"Y€ÌÔ–5P§íªšá8Q3gj €÷σ·{Oð #%zŒyHEx v¿_ #·Z)fhÊ^;\Ç·lv¸A]á‚CØ?sjoG±åÙᚨK–PÇAåþæ7ßHø{·Ü¶Ãl¸v¸ø|À¶`ÇßKQŽ ì1wãî‚@B]Ï÷ižÛ¤Ûéÿðq^Ûß…Œù¬ö|˹Îïà]ûš¾Å¾ÁÓv"[¦»¼°àðÅ;‘=>ícC?/°>utˆ…BA–?ð3ç½ VØl+ý6ƸòZ±@èð]SÎcOF®¦øòÝÁG_>íj}ÒãPÍ´ÇÞŠ»þ»ˆà5ªïßí¹;ÿ­¨ô„Ç"@|D ¤“0¢˜V)µÛD²QìàçµÿM ”ŠTY¿ X¥z·íp2`‡ó«ö…Tïbä>ø÷~÷Ïšœ/ÜüýÛ6N¸v¸ñO ­À5س§Ö§‘>ñ¾Œ‰û¤¤ÀÛË^¯úîSà¶Ok°O}~ŽPÙƒž³—(0ó2¿uA¡¶­‚v¸AÝáðbÜc€øÄ?}æt«)z^÷vw8 ðEŽûÍOlu›ì1‰A=¥ÞuÏûžA|'?ÀÛð>ð|ßxâsôÆûkd5ì®àõ{óý·@žþ«u`HÀ,¹v8§Å$DïÅd@w¸0°»Øeê`”ÏÑ-h#ûÏð òŠØµípÔ v´³°£.#sVz"`ŸdÛÔԛěãiw͸åzÕ˜¼yÍYè ‡ –C¡XÍe‡øÀݦÃ0­ ¼îpÅIÇqûºûìpƒÔ»Þ c‡kÎÝ[ {»­#@ŠÙuìì ]áæ õnP¦»ïú3´©Ë¸ëx{<à3F'4Ì'>¼5¼§Ü¥ F~µZu»Ã5K‚ú’é|Ýá€%°Ã‰—ƶr‡p“ì3g¶çá¶|Uúh\4¨;þæ"ìÓ]õªõ‰æÕ©¿”¯´aèvwM0¸KOz{|ßFo‡Îç<>-̳nWÃ3Åõ˜òëï4±Ê¿úÆ rM€…€DxXÞš÷+ö…bÜcò¢ú† ~pËm;¬Ìæ¤Iuzdê^ÃM®>¨Äö1æß9…û-tÏ)Ímí­>àeÏ]ì=ÀٜݼýÏú•]¥÷ô ±–-œ!†>æLøžCàÎ  ¢\½¬˜ó®Ë[ õk°ÖüÂŽ¡ayák ³¾¾ŠÃÛÇéîÃsœ«O›fn8¥9¸`'ihŸïÐ XÔÕ)§vÒx½Tbâmîó«ûïD „îÌöß › UM2C7êizçâLžûÜøì$°ãñI/"F± *[çÊv˜Yz|s-qºÃ©eÍ–W¾„ºïýàÎ&€Ö?î‡;¶Ó¶Ãé±(`ïëó=•ÊNàÊÙsû™B¨« æ¿ÙÍWä¶íx¿<k¥>-Ìûª¥e à 8˜¦I0е2jµ¾ywKh‡3F€½÷¶nwœ;Øçm¬áÝ),øÜ…»wuKô›¨+€”/Ñ"'Oq:a![•ð8#*=e7l©€xÒ –#>WYÇI {wÒϑ㿇R ‚aV+ëÆiNYôÏO‰yv_œ…²Ã‰1´ûN9  uöls›UγÃé°ür€}ÔÜm”‡d`Iì‚ßÎDoúæÀ÷ú`×:oúBèÁéî¾v÷··=¡áRã6¥ìóœOO[¸=®Pº²,ÀPfI(–­Ê¯½©n5&A~;Ãòb¸‚_8¸=/Ú\#êÖïß±ãÀ²Ý¤:z$ñ5EP’uR°Å…˜/È‘_ð»¥TüÀxX tGù >úûéÛ×Î ²,™ZŸw‚Ü€Îg‰<Êùq¹øz8¹…‚,•/­ §;…v†[h;ÜȰ¼ð†k›ktϱ“¸û²óèÓdäÖ3棡7¹R®Ô“yßMW‚Ê<*%®g?_ „hÛáªk”Jà•ŸíÞâ¤g‡#øBôj ³åýç+€oûá]MöW¾xë¶íXíîp:™nbõ=Mƒ”)Þ4V·™ÀUC QûÉB?ðTxWywCèÚ˜L¨´Æünæö‡àç¥ÔtMKTG¥À³6",T3ÖWÍ€U0òkµ\ Øé±Ã[‼1ê”ô/íŒùO}ì‹§ZÍ·+ä­ËÝ¡:c>F®¦?¹0mâ\\Û:"ŒCú€ O};A€Å\Ý™|gõìëDçÕµB´;b‡ù¬°J3¸˜ÞÙr?9ƒ÷3CJ"³¸U Z-fipœn ZÑ[kš–\—‰Ä»QaùÈ·á~RÝr¶ÙÄSDRb©’ê’n’3J%«”‚]L 0»Kz2ÑÛ9*yMöùªu u¿BOì|ó€¹Õñ·»#xMmðu uúá.,‚a­W @Ø Ž!HìpAåŽ?3o‡W¹û7ìïí9ÛÄff"Z å.²½>Ó€=6èø½EvÏß J«¦X€=t'v­Öû ž&8fàó<îÔŸ¾Ž0`ä«•µ™gØ)öÛáÈg‡ë~ípb„bïù›ê¾Æ>wæàs®Ç]qöÚ¾Î:ž°>Ñ&Vìj–“Ñ×ÈÄßi¬ç§?ûÜýIhõ¾vÞsÆQÌ­;‘ìÔ¸¾¬ø€žä|zˆum~ÇDÂ`Ÿ:Ó^ Yc´»Ãò¹òÿù“ç[^w¸ Ø—Æ7‘_°VœÛxçŽbËòHïNVÑݶ¯ek´7âA€7ðö¼‰Þĵæ@x3“†OÁw’‰0|J¡žäGÆYÇ}R`&•ø¦>6ÜŒbÑ(—ëå|GŒ¶mp4²Æ<}f`LœP·±µA÷Ÿ<{îy訣®ð5|'.ÔS. õéÁžðá›BŸ6¹k.Ǥ¶;* „B^V6ÎË•r·^];Ü îp [¡nØ“X|ûm‡[ì¯}éŽe› ÙáYÏz¡÷:‘‘ 9Þë•í.} Ü÷³Ç:æªo‚3@ Löô‚}ŽÊ"õ`O™êJ*ü> jÜ\Ôp\ê|hx}¹øÔ”ŠË…µZ¡ ŽÃDnb¼Äxv¸… Í‹qOiŸzWÄg>ñ凛-qÜë7c‚Пz_µoY) ¤ƒ!ônè¼§YOØ<>Ÿåbþú~°ÏiL˜4×gqKdn=ePOèÞ5Oú4•àd Çœƒ!U 5Àg>T™a‚Œâf€pl&ˆÞÚò>;œƒýíÃ@Ÿ‰€qÂòþß;v¸Î~íL«IžŽD×¢ f è1pŸ…ØÁ”WMxßLO)à0ºrÿG±/£ žf°§A­§éj™ÀúÄݬe˜Ë¤?SC<žÃ•!$Á,¬Uò€h*¨A8þ2´ƒ»Ãùö<“¡zcœý…^;\ûTØßÛuŽxv8b&EÒŸ5XÒ_˜…Ùé¿Ëo?«*šËM–šññ,@} ÀžDè=. Ï+»ÝIéw¹DÃQ™cFµ¼^Ɖ³Ê–‚¤î©R7·Фf‡cïth;w°íÚáLdÓçn5ÅЛî–L=ð53PBµÝŒm€&(£ªF=Åa®ØûU{ÚÀŽ Õz\ÍlRõ„Àù\ú¸!÷¨æÏ†ú5Øç7ÈaʹÊÿõù¹¦«r„/S~”nidd¨Š?T- êö[ï(¶ØwWKÖúu\€+Àý༉ðèüß‘•¤¯{62â}’¡sëq¬ÿB=êÌ÷iã"ƒ¹NzKÚ»ó¥êEż'F…—T×y„Ûá–¦¶|èð͹oÕ¶è¡Óçøþ{¶*uÅ)rUàì‚Á}:zöw! ;á‡Ub]Rv¢U›í SH6çæÕìe‰æÕã( ;IØ]ÆõYâiUœ,®*”+ nßÚ Ï'Uòª¿üìr(wÑ=Š•"ØßøêámÇ1OzayÊææ“¡ ¡Sà½UØú³ÏÕˆÏG4`Ÿ#`Rö±ªÍ-1Ø“°µ©˜Bïã*t9ã±£ÕùdÇ«Éçu“^Ñ… ŸåÕ­b 9w•{‡8X~é”{gW{?Õ·þåûMâ³7é¤ÝúÉcù\î¢ôî”i¸òØ8uc¸økÅ‹Zïû²dÂ' Ô;j=I¥.£~ÿ%‚xTÇĨ÷ôø$'Ñûw=Ïg6`Him”@¶ ’ØUîbp…ºI–zu?nXÞÿ{ÇwçÑ/žm`‡+EoŸ)%Rd à‹ö¬A=Y°§YÊ~Ÿ[Ø}ÁaÎj1·#ðoV„0ó+•" m†2„£ºv8Á}^÷Asða\(åî߸öü»°··ïl¯³""föìpiø Þßi9à#{"I©Õ-’løUëIÍ©'5dÇÉ‚‚o ‡b@‚!Í•ÊúªaîÏùï9«ÐÔ€=¥‰s©-!»Ø`O$In™ã4Øgß…Ì`È娸~È*€£<+œ€„ê¨÷…¶Ã‹>¹T)}ó‡·Û|Øí¼ãUÄeoJ Ù"ŒmʈÝ-5öqÖuèüºŠ÷ûL q€¡Ý™ RzŸì²­é°z¶õžÓ…;î|Tj=¶c …‘¾%Î^gßà >>êu3Ê  £Zþn\7¼Œy¨-?H½cTü8ýÜÉ÷{ORwÿÝËüºVë“=¶ï “ϧ‡vãKInCÆÕ9ù/‹7!ƒ¶E1¸Ó®‘ÏÛȃºwOàWïƒBóKwöæ‡Î«~à¾ã;¬¬s@^Ã=*•3æ½A4ÀõiKvœÇüú÷AÌ!øØŽãi“äÒôŒ©sñßÒ vƒÈ¹œ,®5r¸d"ßQ)HâyW˘-ï½ s„”«e ;n=|ÜqäÃDd³;\r ê\À"šgOÂî6‡Ÿ1<ËÉͯ/Zb^}”¥mZ¥ž¦¬÷«s ïу "F>'Ê+k…2\;\êéí¨N—yõ.¦9äáÙá¾ó6ØŸúÇïµ[ÖqîÐp…i’çæŠŸ«ÝmÚùõXüë ¤Ö£J–‹J©‡Þ Ìy§æàò H×W²Úv8_•:1¼ZÝò)÷À¿€üú­;ÝlŠn!Å)JÿNbŸdÏ!ŸŠ9öIÁÛú.PÒܬֶaJ}šÞé Î,Ht$°ëÅWË‚!ókíîpntìp$z•û q: ø©½˜%¡Î×@fw×µÃåj·~Õ`\Iƒg«[{ÆÁ5h¢ ÁSêÓÜ$¤áæ)P×Ê<~å.„€aVË««†a»ÄdºauæƒPÏ”¢cƒýj½Ï·{ÎÞnÛá°Ôv¸¸ÁÄcw›ûû7 ?¿ž6¨GöئMR™æzļ¿ÙÝÇf¡PþÀÏ3ÝŒy v‡kϵ‹ .ëCÌt¬\$8w¾[q~Éípi{ÊBñc&Î û̯ǠÖcƒúÔ!x5ÿý;'¥®a>O¸@1/J•ó y…;œðLòÁ¤:`AæÞÅŒ§ λ AøÁûe6w—×—°§n#ÖuxF¼Vëa` ꓾—3‡cjŽ0×!ö´Ñ]±R ù¼(®Ö­‚rÉäÉûmq=!zµ¤>wöÙḺRºó¶{9ŽyÊMªÓv¸,€½«ÚÓVœfÄ>\±g_­Ï v ûTßëœöë¼8¢AžºA‚„@΢òj-_@ž΀Ï'Ô'¦<…:v¸ï~÷Ö&ûæß²ã´Ì%µÃÍXVv™æØ§©¿H‰siš[J­ÏsN}*]+ô ]™`Â0 ëe !v¸`h>óPŸî}J€üçoêL³eõÁ}IìpXÞb…OÊæØÇ{¼0žc¸8âÕ\­ÏlkËhôc ë‘-¸KI0¬õr;\;‘.¬m_ ³ÃM[~¶ó{7cþع^;Ü2t‡›Ñò¶L%eScu˾Zo+õ‰Á>Ne¹©T¿ÊîþÔ@_ì+´×Næ*å•UéÚáÈWŽFÚà2k‡›¶åkOy„ÚáýŒˆ .Éëa*C$9Ý IDATñI[ݲ¯Öc›W—c¾Ç­j}*¥ž±(ǰëh¥IÎ;'ìâè|ÀcÎTX×1ŽqG1LCAæV*+Ui=í´:v8öým‡cÈSÍÒò5Ìw°·çl+ä¨;\œ^öè×m.ŠS(ö¬ƒ=ªPrj}ê,øöWL`×*}Šã&l陊™dp`‡>>è±1>Çi/ðý{@dÀéÒŠˆ`˜åòþÍy–>;\O1_ ÚLÛáÄDçÏ`ȳ得sÏᎀ ‹k‡‹lž=ú: ölªõ©Á>«ZOìèxEWð=ðW6P(D©Rϵíp²£È©gÞ½ðX²„º¾Ý|á¡-@yèä+ó”ÇÂ…ã'ûÈÌx­Ø£+¯›]°G¦ÖÇ{ÒEhb»ø¢<¢k+f›ËÉâÚ¡\è±Ãú“é–8¡®Ï·º¾ tøŽû9Žy:ûv¸æÙžc_n°'õ4€}Ôå$¯ÏnüÒ)u ð™ d0ò9Q^[Ï•G±ðÂËÜb6RtÛ¿v’êT¯‚_宺 uê{ß»½ ÀþÂgoݱmë„—1¿8ŠÝAjËÊj°gG­OöÈÕzn€0_Êð»3é<·O=%`°ÌêZÙHÙ=•éz|îX;œ˜é¼ëÿ)>þùÏžjµ²l‡Ë–å-qØMcw‹\1.Ñüz–Ôz *}yÕ¹†w´"È´†Ùc‡“@¸ß=`‡·Ç{ªnf ËûïdÌ+Üv®Ù„¯;œÊPëW ö(Ö/þr²»VëS«õ¥ºVåñ_Z®)[æWÊÕªÔnT!›Lu‡›U¹sàw à`÷œíÂF†ìp*Æ—Ç]/>Á Ò2(ömn «Ö#†ú‡ÞûTù✙ÁÌS=ÿºˆR–Ê|ó!3`‡ë„èØá2š7&>û7”}GhÞï‘íG<¢A7yºZ9)8g½ý‰ñ@Ûþ˜ ìRìiNš›èµ*½û&õ……ù¼nÂ#€tØ ¢±@<ì9“>ì3‰È»Þ0Hw-T¬T,ˆr¥žË©îÕ=–÷·|%Õ«Ô3u°F†.ð%µ  ¶:±£Øj¬ŒÔi ǧ¨¬ìT`ê»Y°ÏZ&nµ®Á>™:Oy˜½­¤Ã–i äFg=Œ½î`¸v¸¼,V¶r…Nw¸Þ°|_ûW,©Ï½ß·±JèîÃSÊ8MTÏãˆX@°Ï x©(P“°Ï2¿>‹Z{n]Ï©Oôl<ëcàöQÈÉòÚf¡@°bé»}nÛá‚õæÛv¸å²ÂµEŠwúó~pg@ëKŸ¿}Ûqr'ˆ âjÆÇY}nYæØ3¦Øã˜_OƒZa^}a`>g ƒ÷"|ê¯N¤A¹\©R6²^;Fw‡ËàÅÌç«OÅ{‹üÄ'>ªÙٳå¦fü °§a_$1Çž½ŒøÈæ×§ çêm°gŸóËj×ðŽâ°v M‚̯•ó€°U§;œl+õ@_÷LÛá¢ð¹wàÞ¶ÃÅwζš´ãfÌ ážiËL›1˜RâeŸ ì1FSÒ °¨æ×'º³Zê™{J|çä]Yl!#_-UË;œìÌ·S¨z{ê@—r·ÃíÚÛ€°JÙäk\óì `y›»Ý-;j=Òùõ‰^›nµžy[[Âv5^Oî&‰ˆ Jùo<ÏTpíp¢èA;œ_ÅgjLÛÏ}¤îì™æ6sD&˜[):BÓX3>%õâ—!?Oµ6Ìâ–I ÏѶ¦áä==3 (Ÿ7Ê•ó:ÝჄ›ÞM¢ÃØá¢Ž•ó#ÜŒyuÛîÚfÎÙ‚ pôeÊÚ<ï0³4Çã —{¼‘‘Ôz¶ÔyØþ©‹Ðª<Ê™ ùœ(®mšyPÀL°Ë´.’°¼ð͹¯o®Üsxû˜ã˜g@ÅU©›±…kª½_±'¾¹ÚÝ4؇Â'åsë™ ¿'èC÷{²õ˜ï A‚ˆÏ‹òj-_@;œ„ôºÄɰ¤º,ÚáDÄ— ¾íÖ»šì¯üsÛ— R°SÒö¹@Oƒ}¼ÕŒ ìã$ÎeÄ·ž]¥žœ:×#]C)Ó |±R.õÙáÄÐB6™"¢KEÇ çý.nþø—¶[â˜ëu§9ÏUdqž=…`4¢­ªs}Xµ¹±_S~Æý‘©d¹ýèZgc03¤E…R޽$:êiÿÚ7Þ úTÛá¢ò¹#wy´ù•s)µÃ¥~ž]¥bô)öÈö[ÛÅ|ò4Š}–ùõÈnœ´Rèzî<ÃÊÝ, J¥Z†rQVÈ&óv¸H”;úíp€½½]§Ýú•æ7ïžÅyöyF8Ô`eD±GõDÀéSÄ78Y{¡w òl+wå¸Ýár¥ò/¿¡nzóݲ³ÔWÀ&³v8cês=Ü_·ûÜÙƒ#Ì9ÏçÌá¬ÐóìãCH…«ö%Mž‹l~}ì×iµ>û±Cs óÅ‚»‡­\.W*Ÿ—·Ú­_mX à{¶ÃEn…Àç¯Vuû­wï(Î+AIÃ]ϳO¤.}P<Ïžr°GŠ_ˆùõ ž °Gz×áöEVù¼Q¬Öó];\  †×˜ÏĈ2,ß™sßp[¿ò½÷9ª”u”Ÿ¿NϳL ëƒº“àºÍhÓfÄcJ°û?4E77™zL¡w ô%<3 9*ol˜%¸v¸v}ù¶.Xµ.“v8ñ±øŽÛîn°¿öåÃÛʶN&o‡K[8¾ÿ"ž6°Ç§*ðêG†ŸY±ÏËæÑÜzª¡šù­J×`_üÑöº¦È«;Ü å,C›©!¢¼¼øÔ» >÷ɯ<ܲ¥ß·¤`ã}£{¦CñIÞ{L†Oq$$õj=Æð»詆 jw‡S~;œ€ØáHL×vî7Q…åý¿wìp÷œúüÙæüv8Ž×—Æyvô)öDçÙçV/>`Ÿªû¤`k~=¢0|êÕºžO×#JJ(¸óæZ¹\ÒîR¢ÓþýsïA`ãw_ åŽ^;\û’çÙአØáFY¸ærõ=qNö,Ü~'œ8LŸ87Uˆ ÞíO­Z!ü®®Gî‚™+•?ø&ÏçWë4¸¶¼X’9wô7ÕmýÚ:w®µÝ¶Ã¹Ê=aÅš’pü\ÀîL«Øãl]›A°§i~="°§V©G~×@×#üøw¯{–e•+çwºÃI·;œëuÖ¯büpüÂ)÷>_+uÇí÷n+Î3‘£.Kóìól£çØ#«87öët~¼ý}’œ1kþRÆÁeÔ㓼.¾mS B!/‹+¹œêO¢f…[ºlù>;\½±Eø¾{UÊ:CÈÇ—yöDÕÏ^öIžŸª ÎŒ…™Á>J±Ç1¿¾¨·N^C}®ÛAωã {Ý87S|fû8±,QXiäÂìpíÞî¶Ã‰ÞŒàº= ìo|õžmÛ1O’( z;\ÖæÙÕÜ×+³Þ’®:—–ùõE´¸E8§®çÓ#ø"DFÝœø )ˆ¹œ,•ËÅ0;\ЗI;\ä-_½Ÿê¿þîŸ5ˆÏßüµ‡¦8îzÝcÞ9©žgO¡—}YÀ®’{:¶;uj=†D9=àQ€?¸¼cG =v8@úípoû:ègؘëÍ@”ayÿï;ÜmG>y¦Ù;@Ñû¼¨ìpY›gŸ?Ø39Ïž–P|Áž:µ®•zún|—tŸ)åÆÝ ³Z.I¶3æÑÛîuXë× àS§êã¨-ß¼wYÜ;Økw‡3"²Ãéyö™Àž•Ö­3‚=’®n{ºÕúìP×ê\+óh®Ï A€ÈUË¿ò¦ZÐ×îªÞ³b‡3fÝG¾;–Ÿ{¿®" žîzž}ÒuÊd‘š$/\³´jr_,’Zpß,Ô5´ã¿:z»Ø²ò¥Ò¡‚Õ.dãÚá¸P' T•º¶ZOõW¹8ÀùœàÜuû½Û¬rðjÌs,=Ï®ÁÞ^µIBñ3=‰s©Rë1$Ë-:O1¸î€Šaö™‘ïf0ò9QZÝ´r¾VåmåÞ§ÚEÆìp±´|m¦ój€ï¿ïèQë,`£´ÃéyöñÁÙz¥ì@¼ådãèH6#ØÓ¥Ö5Ôdžx*Bì£`;è¹q­Ë ÏĈuœl½˜™™ –% «[V®®mtõÛáu‡[*¸sð +ÕÐm?¼û¸c›'…È<‹NM· =óì{¼ì³†¥'™cŸ¦ê\ ç×Ó§Ögøî–A©Ïâ“'Êår¹lÂv†³ÉZ•:áËp§4Ô·¾õÃ&çÿ/;vKw»ÃMK@5Ü?gS6ϾŸR¬Ú#ÅGuc”È>˜Q­¥ ì3‚‚™³Õ×`…ž8¼—yþ~øþ`&HÉÂ(TK@Jypï·Ãù•;²øÈ•{àß @|ëð?œi¶ÄQ·;\„v8=Ïú¹Ñ‡ãc¾H$ŠŸ©êœž_zŸ,¤RO,̾ìðžm¿9C™_)W dØn{³ž®p#Z¿£KÓÎí ΄ºvƼ¨½ý=5ƒ.Dµ‹(¾à¨_·ˆ t dwKƒÕM«õÅôªÏEëÅ¥4*å_y]Ía‡~XgÁgD±Ðk‡ëIªó.ŸÍÝsö‘éìp3„ãUü`Olž}ŒíÎlûÖyí? öÀ¾äJ“L*Ó#.¸1d®P.ÊYíŒù;eÑ'âÜwxÕ0çð]÷m3&mýªR}Ž,þ<{Ì¡øi/QØÝ’{Öç×ûz¬k°k°/܉™ …¼,UòîpÔ£Ü;õå‘1;œˆùàCç× ?pßÑ£JYçÜy÷)½îNkÁyöI*Ðeì3®V¦Bñ3Ý!§ì3„‚"yRœN|K‰rg°,Q\¯€» u.Ü%)B2ç³ðmÅâs¾PEuµ tÇ­÷W¶qJˆ—šñ);bžcº]ë 0˜{âܲ+õØæÐ5ÄS?áÒ$gQ©¼ZlÛáÚ­_‡Ùáõ.â:-àÙá¾ýí[›ìO~ì»;-Û<äǰåìéŸg_РȬv79î‡Dö…PëÓA=ó`ì€Õê<åê†!¤QX-‡Øáh€.~÷¸Çô(yòkßÿø™fKìt[¿ Íëyö©64 ¥e31Ç>_8hµ>g•)ØŒƒ¦]‚ùçu‰]I »Ýáònw¸ Ðv8`¸.lÌå î„:_™³»û¼ bìyw=Ï>púçÙÐË®’ ÅÏW±§" ?Ã1”Yµ›JÏ& GxXŨüŠI^7èó¢>Θ iTÊ¿öú Ã)Ú¡ùÁÊiyØ0â8^Ðo‡3àÚᶙ݌yVŠAÆða®áø9Þ•O5Ïžâ ÏV–t¦ý&ü>gû\Ç j=³áwNy…ˆ¾ßkþéJ4Ñ{1„U,s 8@0‘¸ÓËݳÃõôuÝ:ó©< ¢Rî< ôe÷sìÓ§v];$uÂÌ ìÃT{ŠÀI89Ý™ññ*öˆ¶1³`Ÿmn=“P_°/]W½ªرÚn SÈËbåPεÃqOw¸¾¾îÐ|j‡HàTÂy6þÞw~¸£k”©àÞŽ£)LT˼çÙÕ -¦å-ÖP|gÛçw¡NÇüú@#’ùôt‡ÜÇ ›/ë†ô{¡O V°,Q\Y5 ÞóúìpI¨Kû-^,ÙòèµÃñ/.зÝwÜQæ)¢\ ;ܨB,)é\ÂñBäóì){ÜÉs)²ºÍìSîƒLB}A€>Éü·ãíO" |N”ÖëFYBuípKœÈ NÄyZÁ³Ã}è÷ÿ¢ ÀþÌ'¿¿ãØæq¢ÆškГ½n¾áø`Ÿk!EÃIú؈&*17°Ï<˜)ˆ,Xè]<îýëÀ0`s½dÂ^;œHbßy‹üÂ7o>ÝlŠ£D@Ș_Æb5s©ŸñÌøI»»E=ÇžE°/²ZŸ9ôžŽlw­Ê“J ùÕr9éu‡f‡öTÙáâ Ë÷üÞµÃíìì;^w¸!v¸”dÇ'¦Ú'ÙŽÇO”ö±À¶dsìË Ö9ÅÐ ®Ç|ö?d¥üÿØšÛ=Ýá:-`1^k×T(ù8[¾²ÿžÚ»üìîvíp}­_ ÎǘašXÝ¢Ì³ÏØf¢9vgZ°Ïgçæa_†¹uNq;ã1Õ¹óVî DiTJÖ¡²ÛŽÚv¸nóÑUñ4@ŧjD wyÎ{v¸3§¶Y…ØáRT¬&± @âó쟣Ÿ§=“V·é›½¤è‘„àçu=Ò(Þù¼(•7ó9åb¨G¹ûÂòÂÃÔÒ[á:§ÒçÕ<;Ü­;Š­}RÜ» ©«¿hóì)SO“fÆO v'¢ï0k`Ÿ2¿ õð™èÉϧë¹ó,‘˜™‘³dquÓ( žîpÝÅßP¦m‡[¾lytípn_÷õ*Ðá»î?¦ã4Q¡{¢:Ðóìö#íáøVgjËÛØ%e—ì3ί§^­§é¸Ïò¾ŒèF‘ˆ»äpg {,ø·y "D„\‘JuYnÆ|×çιK1¸¯ûÒeË÷Øán¹åŽ&ûs7ÿp§å˜ÇÝ2\„~ž}€j_D°cÆzñ:?$J± aø©Õzò*=³Yì.NÿÛ÷xp  {,ø·Îøwß @”ÎßwhH˜ÒÚp»Ã9¾ÊtBPwî}ÐSx‘ä) @|êKŸ;e·Úv88àÙV#cMa¯ŸÂyvÅþŠèù öS™SÏ«'õ…xÈ’†Ñwøwì§®ºH’ rÕrÑríp øCó4¦rO.ΰ¼ÿw_Æü½»ûØ,@P<“j®ä‰aÇ-Á<{ê«Ïeì dsˈRÏÄÓðÈà!ŠØÑÓΘ7WÊÿ×k× Û…c·ììxÝáRe‡3â<|oÿn8ØÛuŽ0@$Á¬xdœ5æ$ºùγØŽgìó Åk›[À?ÐS9G'í¡v-á6weï÷K`Y.åÎ/Y6NA Á`¿b*Ð<&­Ýᢆ;‡Ü±t”»hž=µ¿Í*H¬šÃá®â>içÝ£=Îþì);ì©»)Ì" R ôTî7 ¡¶Ó}Ò˘Q>g”*[¹œrÉ% œp;œê©‰Í¹+Ö7õƒïß¾£Øjr€£¼®zIÜjn'åX`d=3<Ï>u(~>`O\µOéX°'~OU‚\ ¼žøW$©³ {,¸ z|ØßÛ% zrl333,KtípÌb‡ «V·|ÙòØáÖ7W€ßõÀ1åX§‰L°p¦ÂbÕŽ_èyö8½ìsœcŸKÕ¹E²¹M,·@wП=óüøpHwk°doé,¸°ä!GÈßýðïýœ ü£¾AÄÈçPÚØôìpN§[ÅÿÏÞ›ÆÜÒeåaÏZ»êœówú†îf0üO¢ ùGˆ9R¤D68°%?¢ ÅÂᇓÈCvb9"މÁ`b3ŠxfhºÓ443x37ÐM÷÷Ý{ßù=ó©½V~TÕ9uæª:5ìªsö§óÝw>U»öÞÏzÖZÏZ±nQØ&‘T'Ž|éÌ]nyùõ_ÿ½)€à§?ô;¯ë]ƒÎA²å¬´XM}Tv3°·Ä_¶–½F`wÃóÓ``wˆ­»èe³ó´ž®èÏ¡ÏDvüMÙøµðW]^€Ló¼.:Þù€D@L æ¨ü,eJ¨k=¸ë†ùG?øS÷ÁŒ¯ˆº€ªßY.ÕŽo%°ã@`¯â~›cÏÁØÌèv”­×äe°ób<›Q²Užæ{¹Ï»m^ƒì`¯ª0Æ„r8?’Ãq”1ÏÛ™;•Õí–O~<—ÃÍðÛƒÉD_=5ŒÕ,ÃÂ÷³›Mag/;3~ÛæÞÛºµ¦¦U²öšïµ¾uTn©ØZÝïq…¶ÖÑ67xª¹´9_Yöô®ïey›u ¥{•ÐÐ2Þ³Ëoøò7ü‰¾îËŒ½r8¯ì-u9œ`<ÊK 5P« /Å‚/z³Ÿâìµ;2€zaÞ 4Çßt™›cYðmóí,TR_K#Ç>€7‰¯›Ï,x-Ù0¶/¤ðˆÀÞååÙûÎ: 01T9.j³’%Ÿ”Ã95Ê÷]r¸ø1Lûã—ª]0{ tÿ-ZÓ^Ç£hPœ½-{ee›àŠoC|ýì…éΗ]J_G›æL‘ ˆŠêøÞÅÓ÷öºAˆ\̶Ëm_çnù @ïÌ&䪷üg¿ý‚ÈoýÆï½RñgD 9\Éa*K ËgwÌûàbŒÝÖw_•»â›_w$a®r÷ûJ,ý0ß+Ow …»ÙòÚõ½¼¯L†>²ÏÇÆ¹‘x½(tÏÍù³7L¡n!£D½ùu×üÑeË/ÉáÐ7Þ|Nè?ö©×" eÕrP©œ!d³畨}”®e¯ö~+—»5=¾ž9a®\P¯ê™­&Å è;cåybà‡¸Ùó;E}†Ã¦ŸËËîWæ‹9”Ãu;tùâ½þ%»Ôά°wŽ’êâ§tTÙòÉ#YÐßúÍߟ˜}ô#{ØÎ-ÑH,mß *1{гçßÐe{Ž,íz4ìƒX)l½Á {`žšzfäpׯ679AÅ8R%ø>u:O/:v¥y mdìÇ©sG¢ˆ ó?ñ/æn6£°;@"OÓšŠÕìx¿íÀîkw-Î^°»>rÜgsÝðå±õJžÓ SÏ ê{3Ùó²ò6ø!À¿ ôS/e à öž/äpæ0.Mw¸¥D»-oS‰!P•Ϋà~3˜ÆÝáÀf{Qƒ"6¾CFUÛ€ŽkÙs-Z÷cìÍö²õÐq /ƒú™—‘ŸF:ƒgÛ U€•a¼'ïÿЧ&ˆÿ‚ˆ‚KzwÚÖNÈá¼*¶?vÈáÞÄyÔN•–ŠÌ—ì«qØuLpÎù1%2öœ‹ë1öfºá‹]³Mq½‡À®Øš@×Í^ˆïÚ¿‡ÜǶÌv[ò½šÍ÷¦J€°yzÙù´§ÁÀ"h˜T§›ê\“ÕîÛäpHÊáýÉKU!{Ÿ ` ð$ˆsÀ¾9‰Î¡áRœ½&`¯¯Nü Ø›ƒcé©îݰW*9ÇRüüêz Þ¾V’ß dùk6Å5íÕ³v‰ˆ†ü^÷âÉÛ~W »ÂÅõåe»K>fêNlT¯êc€~æ‹§ôG·rw7|©ÒµÌž±vÌ¢âY­kÅjNqöRïÓõ8{SÝ|Ùû8+¨¯•‘b€Ó”w¥ï›]gÓ÷Ò¾/ñv={QsfC'rÏÃù³7MoÞú5jù*´¤w'YfìG—-¿–P÷æ?#øåŸûÕ+ïÔƒê¡\:Ð˨qöš•±ö&·k­™­— ìyâé `O‘—Ì‹ˆï“ÉÅÊ‘M/×Ǿk/@¨J !t»æòÍ·ý ØZåäÓáð_–õîpN#¢i^4ð#à³VVø]ívºO/¼P·ˆ³Ó¢˜`o—¸£÷8K~ÞþÿÄ¿üù»`ÆW¤g Òb54†©´)LÝLlù6œŒ³·,yîÄÖµ¼ç#û}¯„- S4ÅÜÃÆ÷<0Ïkœ®þ–µg Áôž]žw"9ÀÌs O°Ù¥yßö¥U¹å“Ïåp/G¿ØŸLèЋ®E ¾¤š:‡Z¬¦qöT줥Zö®øcöRÙúAî÷=¶}`~(KOy“]ë.€üV/ Ø{zùM_úÌHÅaœ–æÑ§ IDATÊÏÆnùM`Fï^ê¨*¡nU¿÷x4²/ˆ|RµB”5µ¼†Æ0•ÖŽwh¤mázð\–½ÝvÅ3°—¹g³ºß·Þc™î¶†lÅ~N )Èg°¹¼è½ÝóÜc Ð)²70u—äpe‚û.9œF5¦ï*΢K±Úøõ²g?äth#çuª8VîäŠ/ÒRT~L¹L½@ÏêEú ÄëYû—Jïìâìín'*d¶~%ÝÄÜWAÝ 9×1ôÓž^0¹»¾Rõ…<¡C¤Ö^öåkA¬]r²öc.-Ûj`/.q®”ûΙ(·7ë}˜çq»ïŠ›ŸF}[!Âén‡Î/_tºc¥Ì]óÉîpÎÖ˜¯,¡+r¸·ßû&Ð_ù…ýZÄ{$íf”ù’D·µF•[ ìEÜ£« tMŒ±× _Vlý°D¹à[K?ÅÍ]Dw¨*z]¾|þ¶w€TÖäpK½Ýá Žkx3 ¿û;Ÿ~ñþð¥µÝ¹ÎIPÜ ì»Ã4_Ó~г—ûüšçŠw—­g顾µÖ{V[†nO ÝåA¤LDð{Ô{rÙ½@blæ`¾)©îøtîHÈá$!‡ûðOüò],ÉádíUކ«©ÚN:Ö8{“{MúõÂï9£ ~g—´Yïy ÙCoÌ<€¼³§À »Á1z÷í]áœÃUé–O~<—Ã}ìú#“‰&åpšÿ²ªÜ0-×´ŸâìíööTánøœZõ­ žØ3k²µÓhÌPÕPØÞ{zÑ8nýš¬1ŸqÞ ÔµÊá*eîX—ÃãñHB9 éÞÀ•$º ÀÞMû)Î~bì­ÇRbë9˜úƸz‘î÷Sb\»˜{¤u7ޓ˧OØ›`kÌGÌ=Ù×á`R]•ýÜ—¾3wÓÁÀ¾Ttê`wÆ| Yé¶àŸsØq@º2ç'‡+¾:`ÏvÍðàìeÌw>¦.ÙA=Ï81õv0÷†È\\þõ¯|¯„`É‘¾=ÉÜ—äp P­๮¹ o_œ1¹¿¼Tí‚Èhúã‚‚5®.ÜZ^Ö~¨;Þù»¤\¯Möbâ륰u»ß¿“©ï3ÆòJÙN€Þ>pW@Ðñ;O?Ýë  J–Ýìš?:æ¾èHÄÜßû¾P÷¯ùß¾í<ûД§Â©1L ¬=oÝx‡€½²Ñ4W|…l½.7ü^¦nõ#ÏxטµÈ~X¼²|ÏÕÑëòù³÷u{HU t¾Z‘$ŽÊá¸Î7üâÏû@¿ü‹Ÿxiÿ–èlǤTÜ«½ÉaÊv›Ø§›Áœ€½tã)%[_ö’˜ú‘¸Þ7q€w}oÛßJó½4ïWå °z]¾|ñ†¹±ëÙòI`wMÇ55ŠPi óÛ~` À~øƒ¿r|MÔÝ"‡sEú¶Ø]‹µ—gw¸?{µîxǽɉs6>%Óú°ïbêy5ê-ô}~ÐzÛ4?9çnõz ¿ækÚó`.Ÿ_€µJD´èGóîpŒuù[ír8¯Ò5µüñ\÷ôÁÇé¯.Î;‘Á!‰ºô§$ºJH(|¿mŒ³[ÇžÜX…KÜR3õ ÷PD59[ŒÁì˜çÚwÄùæa×Ï¥ýñ{GÍ\²ÜA¡Qw—ƒv‡„Èmü—8 ¾»•¹obíqyÚ€ƒ¥¯–µ–øhËFc}ùç‘Î ‘¡Í‰Ck:$ö¼£¬þì.¦9î©VÖ^ÅÛÔê¥{‹dl{=ÍýÕ9›z°¯‚ÿàOºôÓz€6 xÌ0½gO:€rÁ`¶ ×<‡…è·%×Õ:¼JÖÙºÕ²*‡›³HçE§;ÄÚ[kGYšöã³»cw+>mÙØ­]ÛìL=ù7ê¹]ÒmÈHöfßÄø÷ÌS*ï({——ÏÏٻʌˆPf¯‚:/µÔÜŽk]›€¾Ñí0ûp?~©êGr¸Xë^q¬=Kc˜ƒ\ò /VSÔϲˆÜ*Rã~ŒÝ1™[Šõ²^2V¿{(°74ó=3ßöjóHy¯ibö¢áB3æìòÿâ[]” ̼—û†îp.%ÕÕÖò5~ ïûô·€þ«_ùµW">QšîpÕ—™-¶1ŒŒ=÷áëˆ;ÞÅêsn÷{ÝúÆk/Âo³Fõ€øÎ$²cð‚Á~È«*¡×ã‹§ŸÖéa‘”LË\íÇpDWy¶üê›~Éü'@¿û[¿¶âßoîWOÁš7†)ZÓÞÚ8»ã1ö&2ö”ÜvvmÛ¶6³ÄÖÂBâæ§‘ìW (&"ÅYÏ.ºÃѼ;\{ Ö4hƒsœÝ6Ø+:ð‹º·,5á3±õ¬ îHfbè§Q+Ø[Q0Æñ€™1ÅÌ…ÖX{-@^'¸ë¶¾TÈÀt8ÞUœ…r¸5–_3koCÝ)Î^¨!ÖfW|‘À¾÷½òÄÖê'0o*Æ+@ Ó}ò¤øc@=³.U§›3øU9ŽÈ-¿ ôõ©aÀ><$åp:ÃÚÛD—÷öJX{Åàç°—QF6°§dë&å{:ÆÔ›eÜžFâÙ) `syùÞg¦ Ž\𴈹'@Ü™¤ºÚÁ]|úg¼‡èÍÕÃk‘Î0”Ã%O˜êY{qItްv”k¯t“UìébÔîÆØ1$3Ç×K`ë.2õKo&uWÀëôοé«ß>â(a½;\üõXwtà®”Õê¾ô ÃîpþàG¯D¼{P€PÙPÑl®’Ãö³ã«v‡¹ änE-¹ãë-`ë; £h›j%ùÚôwÝDÄ à¬K—oü±^(‡“DÛ×s]òàeP?:·ürw¸ÿ󇧂Ÿü±ß|=›ùWË­_k.XsÐÁéFǷ˜CÀPl-ê²–½I®øLnøÊÇ:ÄÖwºÞìiÀ¸è÷ªëýÓíß§îïé\ +J u96gÈ×ðìÀJšËá~öß~èa6£×@/š©×ÿÙ†.`¥$ÑI…‹Ã¸›îøÃ½ª2â3eÃ7­¯¹ó î€~Ý%¾£Æÿìî%šM•r¸¥2´¼»;\¥Yôu¹å—>^dÌ? Çcy ôBwÈF­{Y,µèX»Itå¸ã[ìM¼¹>RT›ÛÈÖw{Úõê"¨7¼Ûï/ïþB­;ÏÞ¸`¦3(sä†O¸å±îŽ'Þ Ú•0ùÚÜòØ"‡ f/Aù+Iuå»Ó¬=Ov¹kÅj2ÜÃ)Î^nŒ½(W|椹xîmN¶^#°ï”³9tÇ>ŠzU‘ÂtŸ\zaëW5‘Ö=xJHâvU««tp¥{cП‡×<M»Ëqö ’犬8— ØíbÍnø­Irµ¯ëc`åõ²úX’͸¼xû‚:Óð“Õ8û{_‘ÃoÌ]|æg¾‡èÍUÿ•hgDdv³öo®cêöV!»u‰™|?ö€øú¶5gÜgëk€^+¨Ÿ€¼J°W„›†;½ó÷ÿ¥·zsì”è¹çK…m²’ÜÖ€ûšîÏ~QØî§?ü³×Öš¢. R™Å³ÎÚ¬]Y²·Ì ãˆÝñM`ìy ]µádën¹ßO̼º9Þ’btº½Ë§ŸÞ;›¯^JHâúv$bíu¶~­µ¶|R÷·þîÿ;üø­W6ð¯az‹®¸µ°öæ®ÓBcíGgwSòV/°çbìy²ákdën¹ßO@îŠGD”ÑíP÷ù[3d­'“éhkmùÚäpìÐÌ*ó¡_üÈý,0¯IÏ"G'þ`oU¬½À>®8û Ø×ç.sF|Þøz±õúÝï'†î*›WUC7Þë] ÙL‰–»Ã-eÍóþX{éYôuºå“'2æ_ 'cv‡+S· Ø]е;Óæøâì'`_ö<ñÈÉØ+6 ·–‰=±ôÓˆžKœ{ãøÝÞ“ ÌÏÌãë« uK¯º*ÖÕÝòU“vr´õ'ƒ¡} ê`Ê‘ÃÂfÝ34 Õ´Û*‘ÆÙ›àŠ/ª>|–øzL½r`?±ô& U3Œ9{vÁ€7UD ¸ài¹—ûæ^yÖ|Õà®;@^;áõØþãô¥jQùÃN¨´±öƒÓ•™­â¾Nqöv0ö†›|mú^¾óµÖ01llÎ//?£w€DR¸D…ºy庘¹×%‡c–XœP'óïþ“)€à§>ô{¯là߀z Ò)4¿9LÞ$:€½T—üÆÙ.º³'ynÁØôòØêÀµž„9Ýï ·¬€t˜·}opoúÞ®ßOoT_3_•ÐñùìŧùgHeM·©¾üê¿G‘P³÷ÕùG?ò3÷Ó¿&êF×XTw¸ò\üÕü9€=Sc˜«9Bw|ÙYñ P?€±R~öP¦^ [w‘¥o¿¦ÃÀµäg—ûÚÊúð½wž¿ðB­{ *º–tîYbî¥Êá<€=þ8‘1ÿñÁd¢¯ð¤"ÃÑ“*ì¦[k/ÒƒQáõŸ€½^Ãjí4±9›¿ ƒÑX±¾ú¸zÝåhÓƒTÓǦ{Øìá•y¬@•áyðŸ<ïžàiêvÁ,`ÁºÖÛãî„ ÊÐzu?§Ö®Ñ5MFCûn,‡U%ʰ(+©F×P7~It§8{­àp¨+¾ŸwØ«-+ί›6€yÀ_ûÀ>fîLðÿìÜL ÎxÙ-ÏQ¼=™ûÒ;JÅq÷:À]7°ð˜¹ƒ#À´ßŸ¾„vò*Ð-d3ÍY»Káu×?$Ö~г0G qÅ; ìÕjÖëZc' ÏöE=3 w/{O¦/ˆ ­é¦Êts×¼¬—£­„Y¸T~èg¿çÅB§Þ4”ÃÊ,×µ—ìÖ­{:¹ãÝö4r·T±KÇ2âçïw$ÀîRœÜe ß>G©côöu'fïéù·ü×O;ÓˆŒk5æèéîBBݲîO‡r¸Ÿûè/]YÛ}8X·“µ·¸`cšöò½"¶ë°—=_©bìiç*`ìÕÄ׫N–Ûž~ôÃ>Ç3&"3ˆ:½Ï<ï`ѹüÍ`Yî·*‡;*pŸÑØÞþßþÞ?›˜ýÌG>ö2°Þ Q7½nk/®9Œ“µµcc˜TòžvèÙË–»mjgØóØË¿*A}?˜Ÿ½x6¿>§»Ÿ¹1ݳçïõºá²Sâå$ºµJuØœPwྚP§ÌÿøÏÝ3¾õ¢ë,H×ôX{žqJ¢«þ¹ºèŽÏ#wCNÆ^ú¡Q[¯×8=yŒ~È« ÓáÞ“÷ø=4%å°Æ (vËÇΛۿbÐòÐ]ѹÏÁ=–Ãð»ƒÉX_½X§Å²öÇÚ3ûñÄÚÝ1Ø\ö=•ç(%[­¾*–.'–Þ‹D::Ï^„àˆ Ù$ú¦¶¯•÷ww…¹¯²w`2…­_†ª-©¯{M›½ª‚5eÜÓIÓÞ6˜¤šþºlF`¯À›³ꥼ_•ÎäÄÒ òª µ6ðÏÎÎz`˜×«Ômv>)\ â[åpÑQ2í÷§/Uº 2P 4Ý “æm©KÙüs.3ö ϱ2`/ܸ‡]Ej®xÍ·6êȈ/-¶^½awt÷A~¾Hc­»ÇÞeïð€˜Öú¹/Iãr8$À¾ôC‰]œÏÏ~ó»Ûá+%? òw:iĸì9§\õãË(3ëJ¬Ý¦Ýœ.{Åîx›Ø÷0Õ}1ö ÖD¹nø*æ¶»ÞO£Q@¯ÊiÝÏ»Ož«Y®NG›5ïrdµåçŒ1÷¯øâ?Ið ý¥×b½PÇ[N©¦u~ËY°&3ص9‰îHâì5‚Icϱ†*öòãëU¸ßåÄÔ[4B9wØ\ž}ÃW¾á‘.–Ä1…¥hÀá¿T×IåT?÷Üÿöwü‹)€àç>ú/Û‰åp”{Ó6¹Ì¬4æ®Ì%1æSœ½œ9µYŸAùÀ¾ê…¾W™l}óßnS·¬'Ûè;§ð êœu{ïõ<±t]°÷`™©oJ¢;Š„º9{ÇJÆü~ô—îg3Šåp)ã틵gÖµ×ÌÚõƒjÓãìÕdÆï5ºâ›ÍÖ×½± n·¼ÀÊŽïGŽ•õŸƒlÿ›y ͚΢nïâ¹ï p²õ+ÓºK5Èá<ækäcp¿ ~­?›è+\ö°Y÷L±vî´„ ù* Ö4Ìßô8{YÀž©mk À^n6|u’¹F¹=dÎ$çmjâÅËß³¼¾-²åT—Ɋ׽|êùÈŠ21T“’8æõ>î«õåKM¬s¹'?6ÆÃ±¼: ¢r8‡kÈ;Q°¦ášöÆj}_½ø½À^còÜ Øë`å«Zûí%o«Ù+²áóû_eý51w…Â÷¨{ùÔëx‹¬hÝižd—–¹—2êîç¾I?b 'ï†àî/Ëá*I¤«Š/Xã°QÒ:ÖîVhÍo] qÃKsݺ¿>ÓÏ÷êætg`aà†YŒÑîÅ3Óé„àgÈozÅR¸U`/]礀~æóK`ooG¯D;6’Ãi¾EÝÀjt¹7m}÷Sw]ÓkÇ—«e?ÀoËeìZ ™)ƒ}n®(ç&+Çz ¼6V^ã—ª˜½€g¸ãûgÝŽ ¢˜»&ªÓÑÆ˜ûjºÔálBÝ_øÒÿ”àúõý•ÞãN9\áàÕjt±¨£rÇ—ÀÚö{9ñe׿d9'½µ@žìËz… <gl.{ggd‚dw8·æâpÄcV/&ì÷÷d øÁïýÐK+þ-¨³˜»}ã9Y´¦ Ö^sK×rï³Ýîø²€}íz²{^Ã4/°;‚úV@?žIÌ쑹è}ß¹d‰è(êçNËí^yèŒ#«-¿d»'Ø»àþįÞÍsMtjÝ›k¯óà:$,áko\±©éùîbí9½ÄýS°—å†_fë΀yÍ€Nó€J¶×¦ßMþÍÊ€þÀõK¤ svæ?ï2’wš'ÔÑÖžmš.Há€r¸O>üÊãd¬¯./:±1¢{oºÉ±v)P×^Áý•¦Ý¥k?T˾ØÅØËuÃ;ÁÔk0tËÛMsÀ—–aó'â)Y00÷κ/|#)”™Âø;b¯K’¸]™ó¥Èâ\÷9¨¯€½0žLl$‡3¤j…(IIvCUk7\w‡ÙQºãÕ²×c/OêÖb¶nË7ÒÉñ\™­ëü`Ð_­bÊ©ÏR‘Ûïž=õ½ÈLXhÝCööxß\©®’Q7¸ï’ÃÅZ÷Ù`0{©ðAb -OïТ yÛûicw-Î~¨–½nÃÎI`wD³^ S “]“÷ƒía€/› çlÜ»ýˆ~ñÄø kcI—ø1ȯÈâŽN 7gñï¹è1y|½RõÓÁò„8œHWFç·c)3ë’aÒ 8ûRŒ=ë:hTŒ½è8³#ÛJˆ£Ó¨XVcù‡¯«}qyQU…×Eïò :ÑoRdc04tÍ36ºå#Ì–_’Ã)‘¾ùÖ3€››þµZ¿Ïê]Åv­©ýž€ÝmÃ^w|Šö­»€½`Ö^~W·â½@·Å¬ûm lÇ6йÙš]¯Jª t˜{—çÜc€ ‘ôMa `H$ÃrûW9ÒlùäéŸýs_ú§þ#|àÇ>úÚŠ6ÚÏ>Ž Ôl[¥oedͬ½\`?ÀËSöšuޱ×XŒ¦„Œ÷²€\WþÛõ½¥ÿT‘忲þ 5b—™<1à÷è¼syyÎ Vè¢R.ÉáxÐ+x—êâ#@è÷}ïÏ€)þµ_ýØÝlF×óîg`OH‹Ø]) b8RÞãÑ{ÖÃÛ}¯ùX{±»¼øz=IsRÍZÈæ+_Øüý4ã —©¤[g³£ÏÇäIw¢3˜Íåy‡@€Ä 3æîøU9e¾ôœ±yײå“Ç/þùŸþWƒÙŒ®€`À(ÀHA±ö …"½éºöÆm®ÅÙe÷ÏíbíUdÆ;3ß5‚z‰re²óÌZ ¿ˆÊ@??Ð/’î”Æ¸{~Ñ='š D"ÝB ·TÐÊá\­-Ÿxs£ŸO§ò4—é³Ì¶N—|“½åõã+sǧY+%Ö‹/'y® Àžßý~hüx¯KÜå-¥›_E¹ó³Ïmø 5P€2O.¾ñO_ˆy½q /gÏWê"bGß&`/ŽLF£Ùk ƒ8©Î¹ží§X{áÌ´ ϱ`ÏÒ¾µ¤µÚ`¯,~W? ÐeësðÞõj¤µ¼¿Ï:Ï¢aég6½ ÿ­®Ê ³Òn‰©Çeh9ù¶%ÏåÇgˆª,€ “+/ºä©n‡#vÉ7™µ§¼ö¦ÆÚa…G%RÅ{y2·j™zù ³wC¼.Mà|²ºî3¹ë5,Næì¼÷¢ãO£òüEKÌ}—[¾ÕÌ}«#æ/Á€·Ÿ\€Üß ®Uü1y>ÊrÕ9ì§Ñx`?„µï°z±3Î^ƒä­L@þ½}dÀÞV^z T&¯ªP%ø]:ò†ébÜ·ôuDzî¨À=éŽÇ”ÏõâÉèë—ƒ×VÍQK‰t±ö*¡€¾h—üI×î¦!xHœ½ñÀ^üß(ØЪçu¿7*n^3ÐçuÛïz.ÄÄDŠ3.Ÿ?÷.¢÷K¶yå-.ú„áøÜò±N¾ãŸÿ|,‡ÓWï¼{Ì>ë®Ãþ{ÂI9µ6tʸ)ØÝ`íy³Wxnºâ+fë9Ó<,} ˜N`ž‘2&>%Í䲟ժ«^0yO_x—T%ÀS]fë ðJñšU/åi²Ã!é\¢þáíß(wSÄ„ÔX´¦ð1íïüÖ4Öž× iJœ½X¹[ý€ªrû±ºÛ F™¼L~éÏ̦CðÏ/. BF?ï·Þ×}WÜ}—>×bf÷Cx¿õï~g0›Ú+H3¬h£Yk–¹ßÃÚ¥žg¾‹µ×g_cìNÄÙ+öŒk#û=Yííê% KŽØ|òІÜ{~ €§õLÂ-¿%k¾(ðn ¸ocìó›ÿƒ«wÇãipö@d ¬šÿòÛV´¦<`o=ko¢;¾F`/vîŠ*'[°¯•Œ-ž©¯ÅÑO€^údeñ¢,ƒÍåeðÇ€ÓZw¸„ÖUÊáœgîͯs6ήD; 2 ‰OÐ&Ò•ÄÜòJ´³`MÑîøµNoi½¤õY\YÙâkÍ—ì®;/S_¢7§Q9“uó)Ï~… È\œ¿ç)÷¦aé•E8Z+?{ôR¸$“×nÇ×(ëÏûãk3:n¸k¯FwbíåÎE¶ç›ØíýÙ÷‚Q ÀîĨ(#>[Ï›ù¾tòF­è“æìSÄ0ØôÎÞÿÞê%0u^™.þw¥Þ|%r8gËÏrôïW~ñÇÓ³ÈÃýðVÔëùÑ䟊֜X»À^Ê%îëÏ^gœ½VÖ^QŹ]ðÝï'`wàwÅã™@l¾ïŸ¿ø,s€¬¨%$qºåyìËËeùß}d·Ì=–Ãý½ïÿy¹g&WWW"|ꤙæSçڮ朗ß_aº,¬½&`ÏfUì.¡IPÏìó#ûèNü¾x¼(àûä?Ñ9ÀbN6‰˜º·¿qÌñ0÷MS|õÎÃlJw„X'ÍÙ…'Ò•[jÖ…³>Ö^‘A’6;>ËÚ(áþЉ³‘" 3¼'¦ÓLºå×Üð›ú¹—)‡kB¶<<@Ï£ øžïûÐx6µ7 ?ìGùtëÒ¶WÐý­Õ±vÆn°¨¿XM1îx‡ËÊ_w«ë±³t7@^‚öÑ}Ú='˜ °ªü[Ÿ»å¹å«&/Ž}zÖ“ÿ£¿;™Œf7JF‰Œ.ײ€ýû8±v7 Öì-1›° –¾¹ì…²ö‚çÜ`ë'@w 䤡Ö] ›Ëîå›`™s²õ+cžhËáJI¨{ÒõïÎ0&·b½ȃš vZŽXûQ­ik¯æplŒ¦½6c°ì"5‡»;lýè®G%fÀêp÷üìo|ùO0O¦3X–Ãm*f³s? p¥pr{;°åpLJ镈7 ã·{Ñ·8Ùî¤oÛž_îV®ßWýqö½ Æ^?[?1õ&KD 2gݳ7|OB9oê‡Ý28Ýòq®á5µË7kïG÷"xuÞŽ&G×­ž¶¸ä›ÄÂŽoSï—Ô±ö ½úÝñ%ºâ bìųÍg雌["Êeø&/þ¸Þ³€ž"€¸Û=ÓóªÎ; @B Ö½ËnÆN;VeYpË˲CLﮂ€ïI HˆœÚ…»äÛ™H×v/Cjਵ;°§Éˆ¯Wæ&άûøµëûyÿîê{Ô¦;Ì3_7‘ßí]x¾°HTcžÀˆÉHÔ×ÝÛž%_¨‹ÞEæ®›ŒIl³áÝ«þt&wÊ>&U¢ädqk×°öz]ò.¬‘lÀn똧*ÖAõ1öÔ‰sGê.(Wvy\eñ±±Lìw..Éã0沑¨--ìxƒD®Œ'ïª[^.ÙûS€z|ùz4›Ù[µ~ôàUáX=ìÔãåoõ{5#uýø,F^¬½’r€½ µW°W»f›&?]½ÞrÁ>À‡‡)¦Nï‚=€(Ø`½õkô1À'Yz&—{šá¼[žÌýÙyð~ðÃãé8¸ûåpEV—üÆÚ›”!_´ômçÏ™;¾`O•<§U¯G©ôýÚPW¢|~¶ç¢«)C³žéxqä'™Oë™ò\²®)R8 œ‡Zw|â^N&{+Ô™^d8q-Vp)¿ë÷á*kw`ä–¾¼^šìÅÇÙ‹‰±WìÕaø¢Víµòcõ©K“À÷éÌ÷ýX …aÀ@a˜–:Å1WÐ<Æyp¦W@®¯-€Ù«ƒÁ`v¥@gÀ0s“˜Ú¬%­m3–ûîÆÚëfí¥ý½Ìk€Ê›Çœ{¡MÀîF‚Z›Ø¼¤\GÃêq·×õ¼¥G-É7¹æ‰ÌXÿ÷¨˜ûª.x|ÝY1ýEw¸*¢ÄýÚÄDºkwfѱv§Â,ŽÅÙSvwK¥ZÐ*ç°\`/ÿÚ‹z5‰Íï¿æÈ-ⳞñˆdÑ.Ù@†‚0kž÷û.&Ÿz5¦+\4½q¢<< ¬Õ вê…­kíZ÷J©¹ ñ΂59êÇúÌUÇâì¸â«gìåZ¹@^•±à²±#;Þˆ‰~ó3ã @DÄLK1÷¥b6¼Ø3y“À]wß@G·ÖÒ}Ô®Þ¾î *7[Û-“UÔ]ΦdˆewÜì•{ʪ@w[¯¶ê\I5ÍKs½×í-*ð‹Ÿ§Í×#Ê`Øôοþ {a}yŽÀ|ðÉøz2î^ 7¡+ܼ€z}mxûªÌäNa¨rT.û«Ü*¹æc4BÒxoʪ_[S÷âìÕ»‹k´zw¹ R™¯¢J¤`Ó;ó/}?)gÈÐu™µË2ƒO²ô£‹¹Ç©àùy‡ÐÍË«Ñt*·PaSØ™{–ƒ0koK^*ÚTn2‘TòuJßj1þÊŒ³ÈÚ ìÅ0Ð&çÆnˆ”ðaw8ñÙY÷‰ñ@‰)n ÃÀR­ù]ÍcŽ Ü‘(dsqjÝÿïôáñdjo& ¢æÇ’O‰t%Ü¿¸ûÜJþ[õ«‘âçøHýp·r˜y`_µ‘´üœUÄÏï]ž¿áõ2w#QܘwŠc^ÖºŸ.1…zý:”Ãýæ]õGC{-êA ³~ZÚt¥µò·š¯5—®½Ò·ÃÏ•8{uÉsÅh1€~,C*œß [š‰Uþ“7ýsd­'z¹c™¹sDéKÓ»7‰¹#Xn 3í¦·"<¨­Š®äж×ä’o§ÅRó|Ù”ÏÒú·ªfíÅÙcw%Óû˜Ï|,¾¨÷Côü…×À3«Š¸'ãîœÈ–Ã5FçåšÃÙÇÇѽµÔ'òA¤õfÌWph;nÎkÛËßä»Yû–çßê‚5ÇÙSôXH#yk°çwŸz¾ç‹¢Üô¢ fàésîà ™DÜiž1?_¾¼™µ"‡s=[^7Ws­ûð¡/ 9\“œ8¹äK¹Îºöúž}¬]JÚ’Ù¸j2°ç±¨ò‡¼—ªA ݧ]L`f°Ð<¦'ÕA6$Õ\ÜÀÇ¥½Èš<Ü>wæ'‡nå&eÉë‘oèšévK}òõ¬êãìõ{q š9ž½ŒguÀ‹†pÊÞeç)àMC„{Äô%Êášî*Þ:ëܽºΦöðB­{¯‰:ñ.ù&­)–µ;Ò¦Z¬;^˜‡6'qž˜zÙë;çÙ5ÿ%â3ÿéSö‚De:Ѱìl²¯;J”Á5 Ü•“…lžö€®>u5šNå^ÕhTc>ÿ®.0LM=íé‚7r®jtγvGã@É[ùÕçŠ+¨’mí@½j€Ïò|Tçä’¸Óë~㟻ôƒp©2#ê ·’XÇ%Ëáç–½zù`Ìþ—oû'ã‘\«š¸õ+Uµ>Š-7Û MÛ²DºZ=-e°öKÌV1õ{]lý4\3ЖÖ%)1Çú¶žß{³ç Ñ%¶2ù¨­,@¸×<7èqÄ}Ý“‰v³Ápv«j†‘Ö½šÁI%o?Ôç’¯¯­kf]{ef]H¢+.Öž?Îî:°ŸØzóˆ@fö€Ø÷.Þ$€ULHVª›»åƒày;¨ï“ʵÜ·u‡› ³[+4ˆâîùäp9Ú»Ò»½iYòÇÞÚµè1§$ºÂöBõ=ÙË4xO ÞX€ȘËl ± ¸3/gÌo*C‹-ÿæÚ`Ò¹¯üKäñqt/Â¥õu/â :®iÅÈU®ôÍÑ‚$ºeoå{1ɪôœFñÏ8Í3œïEòün×÷<€D¢Ö¯É*u´”5¿ª{/l4.[ãî^¬uïß=3<(|"‡«Ë(˜µRÛ®5jŠó¶k5ųT—X{³^`¯š±Ÿ†³à³ïYª@UáöÏ/ÙëDà>¹ë2cG"kþØZ¾nÂ)€g>ÀãÍu?˜É=”óÉáÊvɛӦh.à¤X>5Öoôí8»£¦|¶øúÉ ß”3d×3U%…†Õ?ë’™ƒû¢–ö'wb/ö“)®MC$p­MsÉWñ̵ÆÖ!ItU¡s6ÆžÔ‹bç™z›¯üìêçD´›éïY3I£W.X|Pºm–Ç©D&:çç=À›ú„#];DçÉt„°î|Üþuθ%'[o:sO²v}æ w÷÷ÖÒcøD]mýzrÉÝ5ÖÈÒÈuêRrhS€}[<=;O2ðl¼ ½¹é§5—\öµ°ømë—ÀzÞ{qN~{˜Uê’‰u `OÃâ[îóíôæ€î_¿îϺZ÷.ŲÛ"“ªô¤‡¯‡inbChÛ+6vÉ*}kŒa]/°o“³¥óy]ñÈo¹¶4ë¨:€—ÝÆ ßë¼ÿ«žv¦¡­šÔ·0x àçádÈ ¸+/ªÔéW}þôîǯ³™Þª†rÂÊäpeºÛ)ÝãQ´LgÞ—|ƒéŠö|óìR¬}?ÐU ìÁ:°ïb³ûžOÙìüPFŸe=­²øºë=}Ûë&6²‰^Ì+õæ±½åëñHábPŽ;ù–ïþé@ð×þöÝO&z¥ð§1(éáoT„./³«‹¹§H¦;¹äËgí‡%Ò‰;5ó=7IöV°oa¨©@}… 7e¯±ù”Fc5¿½ÿüE§b#fNQ¬]— ×pBW˜k¾©ýܱò/ãIØú•&aµ¿RŒM ì¾m£ÎPDQ}Û›H'Žþ­#ö l}ØSú6VÜ„caäø-àÎÆò‚:ÈŠ‚— Øpœ1ÏÙ²åiÏ÷›ÍܱÞŽÌC{+ÂÄ;[ެ‡ÃUéê;â’¯}­z0Õã’/~-K#×aZ¶¾wÍnõB†·ãµígV¿~(Èï‰ÇoøJÀI¡ ‘¹8£®°X€ˆh%©.YS~_w¸Ö¶|ÝÖ. îöñar'örÏ‹ž¯¨Â,ÜóÄÕºMcí-ñ2”b€TX‘®z—|5û¢ õãaµANPŠs½{û Ž4FÉüo­ÊԂÞÑ\Ng6¯µdѲT’LnYÇÌìuÎ=¿°Ô_0÷PïžÐº'êVýè¤pÉiÕgaE:}¸ïß[k­sKfî6ËÃoϨ»`•FM®Zò ®#_v†ü.¶Ó `¯èyÔ ìIð]}á…V€>'£ßwÕ¹èeÍDe†×»ôü¢Ò³ †,¯IÊãV+Ö­NÌo¾ý„àáúêÁZ{ò yV™’éŠL¬rÜ¥[³q=Kþ4v×¥o®ûÞ¤¹C“å’ [e†yÒpÈôs7}V€/ñ|T%&æÓéuáIÔóâY{;}ßúÌ•,çmaéuU Ï ð)bðå±÷轈ˆIàt‰Ï:~‡Œ,:o÷j€e·<Ö¥pËá î²àzòÍßõ‘Àì¯}Ó?»OùZá[ äaÃEIàJ.^SN=ùšX»‹FB#³ä%÷ÏWG¾NÖÞ`ã4°Û°çbêuƒù¾ùÈÀâ÷eÓÏËÖ–æž—%˜Ôó¾þOõQ¸Á ® ·|„òIwüñµ|Ï]B'Õ ñj<7ªfJd"+êänmþhK¾IŠŒ¥ƒñxcíN°ö`Ꙁ=«Á]—ëýP&ŸäÓÊåªÏ7—~JóÂ5 ƾȘ_eñØÁÞSÉášÞ. ô`:Ú'n-ûÑQ謜JȺŠGYò-*=ìr>ƒKÀžzÞòÆÖ“L=hØ"Êàªßðå³÷xû†>xP§+ÖKðÒ‹€¾¹c¨·Ž¹/1ø„.è÷§·ªf3÷Jð¸ ÉtÇZ•®È,ù¢€½i‘CÚ«ƒ÷S°g‰±§Ž­¯ÆÔ›>Êø‚׌BCU‘ßëê…Q`BPJfÇ'ãîÛbï¹G“À]wL§^†÷¢÷·£[±Ü<ˆÚÚ|¥Žzòm”Àµ§pùnà>Ï ìY{ · Ô7¼w¸¡?Ÿ÷‚çH$–Ãy=öAS@Ø[©H§ ‰\óØ ãœŒ½ Ì})îþö{ž„­_ooïÁƒ.ètæäÔ¿½bæ^—.Ï32<ë¦iÛsOîÇÚK~y€=+co¢û=Ëü¥`ñÛdråfÏËwøüŒ;ž™Iè  ÀZÈà’ÝáeïvËs‚¹Õþq ÛO½~´3º¼XRFÙŸKMl¢Ö’³'ãcqØVï’o,Ó·p`®¤¶µr(°§1„2Å×›”,W$‹ÏaÈ—éž'"&Rã÷.ßòºس,\ðÌ€AÈBlH¨“åpMïç>ï÷­ßùá€Ù×ÿ~;™ÒµÂ¯æ"Šdr)õíTCOœ6JàN.ùYû!Ekj\Nµ&ÑíéÃ~0°·™­ú¼+ô¦……l˜™Ÿ?ç lX´†b×$Zbé\ (·Æ-'Õ½3þƒÑx"7ª4¼ÈýWàfM³@LÙ7^†¾ÝE¦*%Ï#9´˜Û—%_Íúmæ|¥*)›Øu¤¨¿mר{†‘(À$úäup”AŸôd¶|2ÑXO®[í¯²7›¾é]áVžLÆ#¹V5“D˜vN” Üz„²¹ïyÓºÓ%oÚ2ér8k/Â+âðÜ”ÍÚ“óT°;ÄØn+[!{ˆHÏ.ÀÔ„ ´È”ç%Ý;ïÃeŽÁ·B —dî‚á ¸Qõ‡™o ZK¦;B£Â¶åYKÃ6¬:쒯ΟÆÊì5øêkЗ úA>öžÆ˻Έ½{½¨í+ó¢¶<' Ù`”]J¨ã#J¨Ó]ü¯Þ<<ŒoD¸Ÿ¹LQegó§dºí’™åÞ‡jÃÇ›HW“ÜÑáí ƒ±`Oàyæ¿4O“`g7ŸE¶QU)QïŒz€YëÇP0H0o»ÊÜ G(…K2w ï}+”ÃÝÝ<ÜÙÀTè’¯Ç#âê¨?Ö^5°;[\¦Ìkö²¯á"\ós­;›žo4ì —Ð¹¯¼Vû¼S¶Þ6æždïøô7/€Þ\oÅòa}ÝË`…§Q! @U,Ÿ ½‡ÇÛå´vSûÞb5že€:Á¦z9ñL¼-àkKÝknïîyç\̰3ái.ëÚðGîÊ €ÿó_ò¹€»«›;±¼¬u¯¸O‡_ãPÖ.p oñZ¥ñz¬.ùB’èìî–´‹ûÒžgI¯Ñw/zç^W™gÆ чXþ¶T†6yÉ)‡ksåp ÿû·ÿä ÀìÛ¿ý'®ëݦ÷BãíM:جYLQådMÓæèä’¯kíçN¢+ØÅ¢Yø!«h€ßô÷ŠZËÌáIáyì]¼ðÏPT¥Ž×:ƒ™×:ÄDJÛä–·«àŸþÕßèÏft“¹mša œR‡Ë\Ï”/êúÈj6à¶E,Ø:Úö–×ÞÕ¹¡Ö¤dí{®ø2ÝêyA>×=¥íû^äý…á˜õÉ3sÀX«`Z.C+Ïÿ[ Â¦B6»ʬ}Þ&{RÇÀÕh2¡kU¿x µ2‚SMùƒ6O!‹(™LWuÿvu…ov»Æ´K˜ÃŒÒ7—›ªãåÔâd%AõìÂt  DÄ °·;4Œ·¿ÿ?_4AAr¸¶%ÔÅG¥0å ÔQ"‚¢@Sþ”)¼ììÔñ/ˆëšt„µ7 h³¾o%:õëÌ«jXȆçO`z€ l$}Ǽl A–«ÓEÀœtËk nK?÷ÕïÁ ?»Rk&¥ÉáN‡~³˜~Öâ5­0â¸ÆMZèW^´&k¯ªxJ^¶^ïþ´Î°ø%I\r8Óõ¹Q Q‘n.‹ûºÌëËÏÛ¿ö°(v“–­·‘¹/±÷Ïxqv‡»_‹xC"s˜µm™òÇ(ÙÛÙ,&ã¼c‹×“!zÓ«(;>/°»e„ÛrîµbIœ*égùœ{~"ó=¬MK¼,‰£$À{ÊáZã–çD•º¿üeÿ1ÀÕë‡[?†ZwÙñËngÊ΀Œ«þȼ Miñº#™îTK>Ü죰—ðY¯ÃÒë_óî IDATÁ{œˆ ±oº=JÊÚ bé[(‰ãoù/`âJu+­_Vç¾z\ê7ÿ_¡îÿù‡xXïÔÛnùH‹‚™^ jÊg½¾BŠ×k=ùÝsåyEÅÇ«ÎävÈÞÈç•fŽI‰™a u@½N·–žY®RÇžÇÝiY ç°ó[ÃÜe!‡Óh.ø'?ðïf¹:Ñù.Ùw~š:ã6çt¦ÌÞ?eÊ—´hv•œµ)¿ÀxªJWÒ}l¨F—z-­{…¬½) Þã#î ÇÆóþ×Ï;¶¯˜gÆÓÜMƒû¼­,‚VЂöNÚÓ8&ùñ¼;ÜLÇrò@Eé¦vúåÈàN£˜M¶¶¬fcî%]‡Ó£öªtM05qªêÆù+ӣдZñE¼Ë÷w†u|í™$øÆ.z‡Àýu?Š ÙÈ‚¹ïj÷º3ßÊ„º„n<ÛW€…É'‡3MgoGʪÖ ÝÂÜk*;ÛÃ.G~P‡ SKk×=klïuÈÚ³‡§lásž|ƒÁ‘•8LëšNè*L4! ;/5a,ü €§ÞYméç¾é{¡n0{ õ‚'yÜòmuÆÛëZŠE•­”k*vSk2ÃPм­_°oûUàwéºsyer>o‰Î ò»=ã« ö"/µ}ņŠtS€ÆX´|•#–Â-1ø÷=;7ôþ~òZa¦Qw8Í\¥®H`hÊ!@u¸ŽO!Šb·*Ÿ¦¬ÊÿŽ÷®!Ξ°‹úRç²D9q·ŸM蜹K(‰c>¶` r¹ÜIrîæV¼€ ýo¿òs@¯®®$ðúDþF)Nמ²³GŸ)_’wX¼½ã§aõä뜻\¥fìú¶œ]=_Ü5"p'ÿÌïRg/FA¢Îp b †‹ÀHÄây]ù$¡m½y?ϘÿæoûÐ @ðCß÷ÁWò=¨³¾É³îùâíÔ´¬6ú¦ã¤Ú2­EeÊgÝ€õ$Óí>Ü >æ‚¢®Ë}Ö^Û®;W óÈ)Udf<Ïë^^òâ6 fM$Õas·¸„K~°såpÉ#˜>øß¼µ3º™;¨ð˜éIçöØY™Ž7ÿŒ=왕ÃÜÝå*Ž7ŠA}ò·*½>ƒ¬D€¯¸¦€(`<ƒ‹¾€ÄÌ I– ]nÃÁr÷m…lèp„ic_eï¼O=üö`:ÃUîÌ8„WØê£fÐEŒ-,|g›×²=4' d«FîŠt¥_—»ÀîÊ•þ ˆ¶yyòÌxȪ±K6¡c_K¨“õ u›Üó[+ص6¡Nó³ÉÈ^©ÔΤÓïöýf–ÁÕz5dÊ·&Þ~¥zHw¾Î–ŸU¥Øc§g—d<€ %¦Ø.ŒkÊï*5»úõTÕ†~î[>º¿`4ž])ü¸˜ßñú¹ë”Áít5D׸Cú€ƒÉ´áx(Á@ bãÐ}—|™?-x§ù9Ø;í&jAþõ§ª "˜ÞæÚ÷9L/•œååžîó“óØõ2óB6DïO‡Ãé ÙµîG >€—LÜ6Ørù¶éAÌ©Væîx=ù¬¯<.ù4ó˜—‘;Åâƒ-÷¾aÊæF\þ8}˜cªJl:8§yÈX9^<²¾ˆxc—åÏuQm­ÖóX߸ì ú“±<Ú&‡«Þ©³\ ¶Æ{®ý /©aL2¸cÉ”¯—MPeë45«.ØcÇn%è•s ¤ ùˆˆð=êQ÷ÌtÏH%„s™´F– Û¬Ö’?Ú–¯±%ƒ¸õëWÑ¿¿ô_}Ìîn‡×VÍc(‡KüB]w—'ñÊF抷Ÿ<­¼—Z梉Õí æƒ ]¥S˜®Í 2†È3 cžÇð<€JäÛn—€ªèœ½3…nz^²&]ñ¼çVüf‚Û¶s;:²õïüð¿x|¸}´öÓî}ß3Ÿ”¬eŠÌ &NÅdÃ~B¤ÇBÈV±Øœ= ¿œFÃÁÂ5û ú¢w˜ÖLk×PYeÌ Ï`[Ì}5¡Ž¬Â) ˆ ¢n/áY«ÖZÌÆMl0ŠÄއ:¹¿{õûƒI ³C`¡Ñ¿€••„‘Dˆ™×=õm¶Ž˜a9Aëwý÷î"­{,‡+p%1N™Åz=¶€2Y…šè™­þLÙnù6«$ÚNèÓ€rIF`™.ùC€}—ç"k(ªR€ßw*)Ðбî+ SÈÌ»"–Q† ìt:åq0Ä2~ØéõÃìî~p{3\]£»OÉxüñáøú§£€ëy˜Š` `EB áê XN€º¬ãYr·ÑÊÇÚVpßÔúèöêqr«jòH¡BLDBé]óv{oOéY§p¡!ƒ¦€l3dp Ýp¼´ÓpÜWO~ç:mk?ØãïWY¸)µa¬aˆ#÷ºa¨…ŸQ °ÀxLƒqÿAƒûG ú2¼éß\w¯ƒáÍ»2êb<ûºèOûAxÒ[âÒ,û˜ 0a`*!ÀÏ„€`¡ˆÁ+/BÍ›h$mÀ¼¥GÛp_µ`ÖÜ÷üÀÏL¾ì¿û/oŽ]B¡]ÆÇž.Zz¯eøÕé4Ójã>Xg³y£ !Õbðe“¬÷Û ZòEÝ{üs« ¿É5Ÿœ5{|tŽD‘¨œãÕJDž‚,(ì袪˜L¬Lf:Ât8– ?”ñÝ@‡¯W¯§ƒë—³þÝ;Óá×~ÇãøæN¦}À 0îè„`®ê1,BD– ³@10a"ñÇÀŒ Ýò6Ýô6ú|Û ®û–[ë^|Ó>f¢ôê›ÙtÜ…@âåóú¸ŸF#FQ!¢S˜©ðQ2°é’ßÅÚ]O¨Œ¯ ebBè1ê…†Å, ‰íS•ÉHìx$ÁÃ@‚»þ¬;xùI;¸y9Ýþîdü5ß5˜\I¼1¶xzžÈóÏ@ Ó¼¿›D¢ªV¢ÀLSf Œ#ö>ÂY1“͸K(«¾…¼MB]òˆÓ§ç\÷'xw<žM&³[‘§"ûѺmw[äÁ_7¡©™üuÔ”ßČʽG×z¸—S¼¦U,(Ç~ªØCϵY½!"" ¿…ñqò;T5š¨Œ†jv6èøº?>®^£›W2~øx0ùÚï~ ûj§¡{\c:ø–êø ßPج5”³©ÄŠ : Tˆ(‘±G'oüšA1ÅŒ9rÍ+Æb1æ@?“Eì]$wYóT¡uÙòqzÑ5zݰÃQp¯Ú{OBOÈ‘#ÌøÎ|•”L窱”Çhu‰µUjìáRÏù7ª6jë*8³+¡N¹ÔÉÎܰ†ñqŸ X«˜‚I0T;hpÿ`G÷};»íß]O‡·/g£›wdÜÿ£éôë~h8ŒÔNu˜ža&@•TD «e¸‡@ý›xYÑ0 ^ÀÎÅÔ)3Ñè B÷üÀ,zYoè’ðw¶¼,Çàêz(‘œúÁ­ã?A¡™òM©O^ç)Ü\oAFQÕ‰EáAyì­‚ öRÕ˜)ßcYsŸk¨ªRTüeÁÀÃÊ¢â¹á¡q‚ÛDg j:¹”éÕããíèñú];¸ùÔtt÷û2þ+?4˜ö'°ãÐÕ=gãQlçÊaÛ–¤ MÄÂJæ!ˆ‡`ç ²w»î!«< ‚e†…bB€Üg Ì@˜Š†à¹äÃ<–þ¶fxm%¸'à$ž ÃÑøQäÙ#Àï@ÊZ°.íázÀ®Îºòu-‚(Íkék&.ö$›çè”[Ѱɚ`YÄš2nÖI¯¿¸‹¬|Ì»€'¬›Îó*n‹7,Ø»ª@„a­X‘éHe4V;‰í÷1ºéî_}Jú/ß±ý¯ù;÷ÃWw2.»°cGÀs†z!+ D¬\ s—»…"ð™³ò¨²œ+ ¾ø=E".ÁæElî‘ì3Áü5ÅâãÙsyœ]vÝôzÌ}À3Œûvö¾t8Ì®Øg¥fl'»«‡ù&¦jÜ3Øtµ—žuܳqº‡t£E™ò{æz3i"C!Š(ÁÍ$2é#_¶ ÆÐé:‹5xÊøa(£‡Áͽôïn‚Ñí;vüð±éäøÞñô!@0]dªS 7ò|À7²qŽ´„Inªj…@#@O0ñ@'cåšô%÷{äI÷yüó„¬=tÉk˜±ü N˜c àèóè5ãÐWãîÈ‘ÑÒp߸ z@õï3ч¹Ei¡DD[åp¶î:iÜ+gEÆéCó4\24ÛŸ S/{+¡«PÒÍ„K”•ÀŠ Œ&ª³1d8ÖñãP‚þPfwýÛ;¼­£»×ÁøñÖNÿêwgý¾Øñl.9›kžžÀó@&r ²ªŠ•YI°ß„íß Þš`ÍI÷ûüsYfìvãÇË•ç1øˆÝá×ãk´²ÂúeýšÒ`ak™»&ÆDt«ŠþÍÝØú 0!4ZÐÙyй·žÕõÌJöEýýfx£\ #mõ.å²÷*]Ã…L¡:`æ¹{àP&PQ™ÁN§ª“Ð>`oú2{ݽ’áíï^“Á•~í÷Œ¦} "×8):rí0¤g&ÓøD!h Iæ㢴«$‹Ã¬ü\¬%—„û]–˜¸ÀB–Ýð² îv•Á'ضD;_d³;ßJödœ`üŒ]’¸Ö2÷%ω˜ûÓg=ÜÞpóN2Ƚª‰/{¢ÆÇÈþseÔ ÙSˆ¨”±©Eè†|W Ž\†Q¨¦(„5F1`¨2ÇRKU‚µªÓ dÔŽCÖ—Y À(4JpS$€|¤­h°c¦LK®òؽ.Bk oÉWÀ1s—“—EÜ]’_‡¬Ià•íŸÇÀ­IF. †/XJÚÛg?ª"6´Âc´{æw#|Ç÷ÿÌøK¾úóïLI¨>³”~ØS’Uó†‹u êJ¦¬Ô_æ‚ç¡àÑÞx¹Dg&ÅÉm!ˆTC?û"¹Ma­ «2êÃöû:y|ÔàöqòðØ¿º’þÕ»2¼w6þ¿s<¾½× ¯‹êm±éىʢöÂä60CØD@•_AÄF®o™m€…K< –Ià× ,Z¢úí¡n]nùˆÙ‹®mòó¥¸úêç«`.Ë?·úùêÏ'|nDðúû¤J C‹k˯*€~ê‡~ûSWƒÑHoExbŒ×»VÈ'å¼ÉX(«œžK‘¥âB=exÊg褀„ÅÓ±ÈPgÒyýtPØÕLU!ʘά¨ TF#Èp ö¾¯£Û‡‡ÇñãË—¶óÉ`põ›2úš<šÞ-âËKþ£€K€<êy‰ õÈ ­QB›Df î­sÆ=gî‘Ë$ Ä 9­%ÇY±ë®p`žÕ.;Àzx'ß_eó÷öe¸ËêǼpßoû¤øVƒû’…“Hª›Æö^´3ôˆž@˜¶ÊZÊd}mfoM«P“ðÈ8­M®K2¹Í-¦[6\Q®èªLÆóĶñp„àfпF÷};º~©“ÁëÙdðI;ûÚÃì45$3ÓŸ(‡Im–ˆ¹Ñ2™é&éØj¬;ð Ils™Á®¼¬ÈËdâÇÓu=>Í€+à½ÒIðßÈÈSxpÞ÷ï¶L÷,,i~Ækûn@ŸüÈøñî1˜¾ñH¾‰—ãn­{òÀ;œŒ®ÎŠ|üL§üàXô)ë¾:§d-wŠ Y¢O±VXLEì v:Ål*õý¥TUedefdFÜ_œóóÿSóB€  dY|Ïž³7¶‚ä%{S€u.>Õ\,ò,¯ŠéDÊtìËÅØUésoßý™ËÂ~8·L^ Â¹¸ y@`ÕTâ*@ˆ</ÛÛ²f±Ê=oœÒ„¶Uk³:æ—Õº´&ÙÑ ðvÕÜöJ_~=µj±oVå[çá­7n®ñõ ðÅ~ÈŸ» z€¾0Ø»ªÝûP¹7É !½oxŒrÀo|ýÓO~õŸý‰¯—ÿÔÙPœg$ ¾޽sõng×r±¼Éà˜Þû|}YîÔãQÎÜyû÷¼/îõG KÀý9.þñnËïyœt·ÜP–ûþÇÄ¥^<® Û.Oƒ@”&ì„êøQ‚Ô8b8‚ˆçË–«pžàÕâ¦Ù|b³Ù”‹ñS_ä/Œyû{©™§âôêõå;ÿvf¦‹ð 05âŒj€'Š–^éM]ï‡3DØ®··»ªà-€c=lsY¦uµÐצÍw¼`à=Nm‡ü˜IôÎ*œwWᇀû˜¶ùe -×ò”»dóò>Áœzt2”\º¨æÌ²:úõâKÏ^e£#ßÒ]êH­ºNŒàND ‚ÉK0zaA8BȉóžCi/ÄÏj€ëÔ—s].´žŒ]6ø|úÔo87³”]¾‚csÍ ºN¯4H@ƒ’$Ä e„'3×0[Ù<»^A\µ¦××ÞTëŽ)•-KÕÆ|¦ïŒ»kò½ ð®=ðö@vüRëe|ØØeϽ¯ë¶[õW¡r_{P}ãkéñ8ƒž/âßHÁƒîW„þutBîœçú!×øZÈI½®jȃ™á™`=ÙÊø\|‘²Éµ·!äÄ™Y:9wúü¹ËgO]þÖwgfœŠ-W°[€'ƒ.Ih¡ héÐÆ`°ñl„Yz*aÚðHo¯‹­Å”b}0n«Òænpo¶Ë»`Þk­Êû-Qul.6þ*üÚ¿æ½nË·×áþÑßø |çÃÐôl¼ðþ›‹ÛýŠäŠ×Tc·}Ïýèiù«øú«ø]F3™ƒ.`)"E ¥qóØTªåÎ,0VÄXäÖVi=Ä–r¹X°¤çg.¼pùä±Éþƒyu®Ù¬…œ,·j€$ƒ„’àá¬Ú7'Þ‹wNÒcsÚg«º¾7Þ=¸Ö¿š&ÜÝ>ߌíªÂ÷Y«‚·‡âpd5ì_;‹¿ïã¾%£m®Ã%’zî$ì7äÏüØþÏ÷¾óæëÓ¿)4…jÐ΋zïšÔÕ¯Á] Üü~¯î;ïs\…»úîÆøËïx¬ì 9àWÄ&" ƒlà¡® "K·6©Rœ¬ñEelh¡W:e7›³9_LÇ6?·Ùég.뻓êL‹qëW ÀGu>€’É ä…7ÿ*è¤ó¬+'6AŸ v´Ð7Úú¾«ò–Ž6z_ }×Û1Õ8p±ðë<ÿ¾+¿±ïçUhË£5ô¡>;ý$7SQ‰ÜV‡‘+_…»É÷Û¬[¿ w÷¾®1<¨™Do·ÑTŵ°Ž`-eåRñYªðÙ‚‹Éb61úô™K'ÏÊì­_Ÿ”_¤b¸àêu`8€† þè´œ÷ìĽ¶}F.ÔºLâ[ÃlkÐîmÍ£3o|³µ¾+¥¬Ü|\¸É¡Á%}°~Y¿Kð¾ußÓ½u¨ëx°Öù¨Ê‚§à«Q§K]û¢ŸìÑmÓ8\öò õVz;¯—óØ ís Y¢hà\ÚˆH‰Pšgáp^ÄZ)ËŠµøL³×™Tó»Yš¦Y:~îõÙ6Ë>˪ú©YìÆZüHFÐpHP ¤vacXfxv`ë$ä„Ë6L7†×¸tÜc÷°š ûLÜcwÛ|+;|Çú!?¤ ß¼VbÄ_Ào#8ïLtïƒc6¸ €+2;¡J‘Œdu;u^ôý-Û¨ *®ÂÝ:5‰c,LaSL)HÔ VÕ8³5]f­D¬åàEÆ>ÏØ/4³ÔT =>÷zú¬ÊçÏ«ò­gfªÅ–ë“è¨N¯ƒÑH„AØçÀÙ9ø%À!ë •­6zûvÀ¸ÔÎlýç~Àû&ѹ«úÆÕÆŒ^Ö]öK× ðÛÓ{ÑÆ¼opïZ‡“VM£Ø4óS–a¡hðex#uüë-º÷¨E»·÷É"ÂDB€"E¼¸+Rª½`,†µÂÆp^Ÿ³/óÚÐ%7Ï|1ÕÓ±Ï&§.›?¯ÊìóÊüüo§N;xÓO“>ä«* ±% OtÀÕª¾bcë–_¨lœì:ßn¡ „»Í[º²À;sÂw´ÏÇO ·Û/É ?æÇ~ì>èE€G¸ßÌuŒùÓaNf³|Êü¦ÆHýÈå:™Z—Süù]w'D@L°›M R ªnT1 HØ÷¡÷¥çÌ.Ø”{±ÓšËYæí<›Ž}>=³yvf+ýÔ˜w{î³JÖ¶]BüAT$ A©ºÞ¼v`c'̯6ÉzÎÕxïКlµÚ{!Î{*oô·ÏÇŸÛþë‡ °E€GxG¸cåW øÇë'é—>øšOÆsᅳ Oàöfº_ÕKŒ›Ð=X…‹°Þ]‡_!‘Ðj… ¤–Ñà’@Dê|pqeΙ1.g.n®}9×Ežf³‰Ë&§\êsS•Ÿ•öß]øÜ† ¼^Y¼N&Ã#BM(¡µP/ˆgaÏõTݘWIDATˆâú÷fËÜ£…¬Ù—ßWð‹´Ïi©»WÇ"À#À/×4½Ç÷i3nT¯ÃUñ'þÂÿçÿúsÿòÑ£ÓŸ?… é?soษ¸ w÷û­Âíú=_Á‹²Ë&ñ€€‡És†JÔÒ°¦Y!ƒ ø¡{‚µÞ–te|.& Õ·[h.g:ÕE>;uÙôÜ–ùyiÞûxf)»຅ŽÞM`Þø¡µ#?¹~ÑTÛ«sëõ3ðUÒ˜ï¨È}ìªµŽÆ]ƒqƒjÜÓbï³Rݬº±íÒ†+„x_%+÷‹ªµ—üÿõ‰¶–&/ýîxþ|©p/ì·¿">ö÷¶ì‡Tàª!¥öÀW¬]~F‚s kÅ•¤¦r9­Å§ÚÙ™æb’MÇ6›M]>;3EñEa¾õ›s—VâM+¤C­Î¿©©¾[^èízð:\ÚSäÂ붪®£šnàì°éΆΖºpνº ðËœ_ÚNõšÏ¿£^Y¸÷M‚*`VT†ÆÝý«\…‹zy¿üžU8òRW︑€ pU\ ”B¢|},U;©RÛ¨ZuR…צt™øT{—j.gÚe=™»lö…Ëf/L™š›_ø §CpÈòq¯Va&tУ¨ÓÈXµªï6Àý*‰l³ç |Þ¾]ï8zâBù€¶:wWâ]?Æ}í2¿J˜ß7€G G¸_Ûƒ¨y˜²àó›¤už»ß‡U¸{°vµ3×÷‚¬nSã–(ªØÂ:YpQ­ï‹<•!±Ö—y‰ÔÚ"c¯5—3íí4­tªÇç6›žVÙ⇦zï{çvž‹Ë7ÒÈš “@ª'СšP’oYË÷Âk“ãëgÙëïlŸc/Ú>ßœ@ïZ!ãûT¿Y±:¸ÆÛÃi‡€¸Úu²ðó÷k~u­ÃµwÝM–Ûs¡a‰D€½@’øh¸*ïji¿üÎG¨Ú/waQž D$ŠTp^kZè"’…pT€Àx”VØ_¥O-3ïRÍÕ,õvªõLëé©ÏÆ«<ÿàmøò÷eÌ\Ž…}xT„ûu‹ùÑ7¨gÓ\&ãrÂþ¤H@'ášáÕz¬Ø ¥ Âù7… ˆP¢ˆ5Àư¯Œ/²BRo3í]šr9Iéùi¡Ç/l6Zäï|VgÞêuR àôÀ(J‚JÀJdëª;„™ˆ0{øåÐY{}LÖ@Ý]ï>—Þı>€ožbÂgà}¿J€éðð÷Û(ÕJAú'û§ðKü¦ãé„ùÇÒÁhø&œ¹eÏž—ÿüyWá˜Á!E´ö@O€°J&)Eæ*„ÁBðžQqyÁº(|Æœkv³Ôå³…Ë'züÂfãU¶x–çï||nÆ…X·U'‘½ÚçÉpÚ礈°ÂRÔ&.Ȫ…-­nÙr_ëk¡sÏNxW½wÚë-ô¾p¾À[ßùxß¿#À#À£º®é÷ü~êŽ)¯Öá^Ëò¯þå¿ôgëûÿà_?xðüÏy;ö$¯%Ë3÷¸ wÅ—Š—Ÿ G,+€ À›6:QÈ "O@~æÂçc¹* ¯Ëœ3oSÍ~¡}1^Tz®Çç•?­²Ù—Å·¾wffÁÝo<ö¨øÀhlTEK;TFp_c /sÀý¼·Î¿Î)ôuxo¼¯…¾×Ä¥ÖÜ‘FvÙ)ôC+ïcvÂ/2q+÷;¢µ‹O“÷û¿ÿÎa?¨‹©Î³úzeB÷Ë‚ö» 5À…H–Óç!ÈD…2' @f'Ù¦b6žË"]V.ó.ÕÞÎS.':ËæéôE•?¯²Å'yùÏgbòкÞøP5"$5ÀƒzX!s}*sðA¯Â«ßS}wM ož¯»³íbÛgÖ"8ÌÄ…/iârq¢àÞQî[p긠$žeÖÊ9Q°"IzÊÂGñ1îr:ªjÀ@)^ƈ²€Â˜œZ¦Yëœ)Qæ¹K5;y;M}9Õú|¡'c£'?,ó÷?zQ¾˜yS®*à6ÀU=}®N’á jtÏ|нï=ØXaˆt˜ô¼×Ä¥g…¬/ȤÔè7q¹ŽðclTï"Àcõá~‹a/5²«²à3y3’Áú }9ß›uA5/ŽÔà¡'4&.7ËéÂ`8±Ž1\æ§¶Èrv íÝ\Û|ªçg…ž•ÙôI‘¿ÿÑ‹ê|Á¶\ µ_ô5)dj”ÔOHÔ nŸË*Ü1¸2Üéjo÷Uà×½.‡º°]3À/ íˬ˜Ý×ê;<*Â}Gžöþö®{–ÙS`†ÉØ Iòr<æ_1­ÚçÌþQWà¥4«c,´üy/pŽÙZ©ÊŠ‹\sê8ϸšiggÚ“lú¢Ê&_˜|þ¬Èßÿè‹j\ˆ5+x®½Š8Ô뀅6Ir½ \œ…- WNÕΉñƒM\Ðd"|W~ì8Ð?À\îü:`á~¸?õ•z2/y¾¨N¯9bȽ‚]ÿqAV§#ª”ê!¶Dq},!B`ãØ:ªÊ’ó,÷©«òŒÝLûrª}>Öã±ÍÆO«|þYQ¼÷›Ï«©Ùš@GýBŽê t5@%u‚G#Z¯Y_•Ò4"½-ô>¿õ"@¶'ÉqñpÁq&.@ÿúe=Ð#À#À£"Üo—Ôêê)?÷wþ<½ûÁ0/Æ,ßЃÁð TF êþû!íöWÔ¡.5ÀC䨲}®"¤¨f×wNØX®ªÊç:ãÔW™vn¡Ùžk£'zòÂdÓ/ª|þ¤(Þýø…™8ØVåÚÀ{¹BöË6$Ik]àE„[/\YYŸ@ßdÛ‚öÆ´ùzÞaâÂWkâ²µ:Æ+0ð+dÀÕZ¨â‘á~£O¸åEí_|ð À}þGÏOýÏþè| ÞÀý] <Þ?Ä…p"!&ËÑDXX5­öÕ›°±®,K.tîí<õÅXWzªÇçU6~\åÙçiùο;¯&¼œ@_ÛÔ?Ô`L\j€‡ t|Ï—èvgÞuæ½ÞJ—½-ô. Õ½&.}çßèØßsìß?f…ì¨G€G€GE¸ß À7Í ®^‡ûµïþ·ôïþýŸšœŒ’o" ½„çí-š˜nBL˜h@a}L…Jœ‡PT‡˜°ì ®ά/ó‚u^¸ÌY­}9×ÞŽÓj>דó2›<)‹ô³âíf€ÝÒàÑÚzsn™á›ðàMž·Ôi›ßt][o¥Kgõ½ LÁîýï¾$2ß³BvY—ËTÞ—ÉŠp¿“•;Pƒ½†{ò>ýaaœƒ &%ɱ»î€ôK»°¯çÚÔHÕç߀UhÙ+ˆ¼÷0l —yÎi ðÌ•‹ÔÙ‰.S=~Qeó'Y¦?ÕÕ[¿51ºàM€ F„d8ª'м´wÀÙZ^µÁ7بpÚª¨W­sÙ[}ïµRåý»á™¸ðÕì}Çðð¨¨÷žÈnmÎTUåÏáë­p±¦­5·®u¸[ùºVA% Í0›­rÀà £*…­•2Ë}šœ¹b¡¥®Ÿœšlü¬È¾ó¯žV§SgòîpÕ;à#ÕÞ'E,"~ p¶–=LÏzÀi«¥î€0Yƒ¹@–gå}Id› Þùþk0qÙU…G€GxGEE¸ù䦞'|“çªÊŸ‹"„EÐbá­º3m€«J‰’Æ^…»^lxϨ¬xkL™kN³Üg¦Ìµ·cí‹qš/fzü¼Ê¦Ÿeù·?|Vž-|{8 ‡C’$©mTU^c{@nÍZ¾×ý÷ËÛ¸~ ­¶yÝZg9ÊÄ¥ýþ—±D—ð¨¨÷¹H8TfÀEn'âˆÜ\ê®N,àÚÄ…’zÿ»É!E¡….(+°1¶ÈrŸf©×Îjíì$uù$Í&s}ö¼ÊæŸgù·?|RkîÚ'¬L\’¶‰K’0à²4q gà¼iwº~>M½_­Žµ€ÍÒªäe¹zvHûü¶C~Èž÷mxlŸGEE½òp_^ jHò'”Y/Yn§Ì_*JNƒÆ-íZàíÙƒ@DDŠ‚‘ËÊ â—Clž ìeÅ\U¾È5§:sÚYºr’ºê\ëÉ"=^fÓϲâ?|ZžçÜ쀷WÈÖ>\‘àD„Ù=‹w5À·‚Lº\Ø6«oZ¾Ïƒ;¾ªÈ»Ûè뱟;ÁÎÝ ß—~ÈxÜŠŠp¿-’¿þ÷~Z~\2üÊÇÿ»šÏ²1ÓÃ4:¹:€+Zæ€×gßàƒºØËúÌe%\U¾ÈR¿Ð™Ëœ]¤®˜-¬ëÅù"?-òÙã<ÿÃÇÕY%=¯wÀ£QØIàïÿì—ø—ÿ{î……­®ŒlŸ]w¹°m¶Î©Uó†:×´¬µåwAú˜ðc~ˆq<<**ÂýnVî Èï~ô‡  @E6]xûùðK£¯ÃfMÊ3³‡o\6¥*Q¤€$dw±$ð^P•ÞW•„zfµ-ÓÔ™ÉÂc=›ètú8˧Ÿfù·ÿÍ“êÜ.cD¥ à'5ÀC¦ÐŠë yUžº-¿¼oXí =áÖŸØöH¿Èþ·lÜ7 î€G€GEEE¸¿b€_RÈzXl·ì“ºbOêLU@-(·«ø5@Z´jݦ1õÛ%!~•gáààQQQîwôhUÚ¨¡íòúýƒð•Ô TïÍ q«Zo¾©Ä1Z]תÈÝvuŽð﨨¨¨«½¢÷µù»j½5{îI s…•ª[oÉ7Õ;º¬¶ÏË÷Uáû~Õ¹ß×ðX}GEEEE¸ß Ào¾©Ž·ö훟c ÈjõÍÕú8î†ö!è©ÐïcõáÞ[½£ö%È›3vÞ»tü} ´j}ànŒåU¶ì[xTTTT„{|O%ôM;þX ëC}LuáþÊßgêø“xAp(¨. ù𨨨¨¨÷+ü¡ß1ê€ZxTTTTT„û ÝwÚQÕKÏÿClQQQQQ·BI|qsÔíàQQQQQî÷òmè]´ÛM\¢¢¢¢¢nÔâÏã°ÿá.àQQQQQî¯ÚÏ(<*****Âýþœ"À£¢¢¢¢"Üoègu_ꢢ¢¢¢"Ü£üF€GEEEEݸþ?%Ô÷j']IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/corkboards/tack.png0000644000076500000240000001616212536324426024641 0ustar philstaff00000000000000‰PNG  IHDRdL›sBIT|dˆ pHYs ‚ ‚~Ê®tEXtSoftwarewww.inkscape.org›î<ïIDATxœí}]Œ%ÇuÞwªª»ïÏÌÎήv.)k-­DZcÊD˜„q$SÄ-‡«ÐV2‘ R¤èÁmä%v™p"qœÀÄ AHbÈŽ`YôJ±*æ"ÒƒlÙ–­h Ø0´ÉÝ w‡Ü™{owW“‡®ÓS·§ïÌ,õcQT…êîéŸêóõwþªê‰¾S— D«þ6€w8•Ôã6\Iêÿðßωl¾ÒçÑwÙ[.ð>Àà Šµ¯H¬ Ô\ðIÿùœÈöí<û;€$åÑÀOøŽZ)¶À^PT‚Œ­×øÿéœH}˜>|X.=à_ðz‹FøÚ¦ì0=×J§* a·ý?üãs"OÔ×< ˆ,€ à'-´*( ¡_mõÁÄZø­Oø¹sûý5 È¢¿AÀÀÃ< )C^ ÙéÓ˜^¾ŒºªààIþÞ"Ûòš$‚ñy¾Ï¡CÑv‘ÚšC%"ѧ®) ,?ôn}éKع|€¾$Àƒ} ¼&‰jêÓ<œaŒ. õÑ$-ŠDl…wí‡`OÂêcaëË_Æõ§žBÝÿ¤?ÖU_}6êµPþ §@hÍ’j @€¼§±¦ûq›²ÆOÖûÈ•+˜~á xݻޅ;ß÷>ÄàQj<°¹òšaÈE¢ÁpŠ÷øg©ð]Ò*;ævúŒIZöX£~òØZ¬~ðƒXzðA¼øñãê'>¡Ly÷9‘ z«ok@>ItÚïFS ù¦LH±”î`¯AéZö^k¨W©èÎ;ñºŸþi ï»öĸö»¿‹¸€·jœâ¾¡ù (¿Ct‚ŸàQ¼­ûwÂ^Oª%ƒ‚ÑgXz­;æI ‡‰m|¨­ù2¶Ÿz îØ1¼ñ‰'pó¡‡À[[gø‡þðmdC>E4úÑÏÅ ìÃèCÙÑ¢US]ÊhU;‘a/8ºŸ%çäØKA×4“‹1ûÊWP]¾Œ“ï~·^þá DËÀ· '²Ÿ&ú €Kþ9€åEçö±CëBË®Mó'Úv-҅ɾ-Kl=ù$Ê?ýS¬<ð€b{‚ÛöêäI¢×ßà?¸c¿sóvyÎ,ÌÛŒ˜Ônô¹¿}ÇR`:þ4 ~öYL¾øE ,1úžïѾ< ¼Šmȧ‰þ†>à»{Mè×a}¬Ç!ú7µ' ²î»ØZÀÖ‚éç?sì²ÑHûõà¢Õ¿0@ˆˆDDˆhQF{ayx¿~¶nË"±ïcn?êÔ¤À,JbõõVдÂï‚ PÂÆ¦ôGÉDûâø‘o „Oq¿ï5ÓýTÎòÛÀ/ð³Ý?ô¬7RcÞ§iöè1­]ö¥¯#zŽEã}u¾Ã@¹¾9z4íÓ~Ãé~Jü®2Øïûbbâ¿ï'àgçÚ§MÇ/º@´ë¥Mra÷}qH·v¿„nB,ÞŸ ®nÜHqêë H„¤v»Ôý‰B_x ~9x·¦Ç Šúð…2M‘êŽBõÕn¤žÚôXú·¯¬}¾÷éé_@:@¤N ]YY±›››­É,ŠÂ‰HVUU7ÛÝýxÛ¸î| ðÄH;Åú¶%¹É ÀѾ>‹…Ýxß¹]†¤ûÔ9Þ§ Ùs»¯ .gΜ1—.]²ìÒÒR¶½½Íf³,Ïó\DrÉ˲̬µ€ÜZë¸ÂÂ8ø8ý8ðËíf)º =¦ÏTŽõË£Ÿ}ÇúþÖåp Bz~°.{æËñW H†9sæŒÙÚڲׯ_ÏÆãqBȉ(F…ˆ ˜¹0 ¢ÜZ›‡2yaQb¢íú‡€‡ à»[á5Y 0QÓb7k¡¥P¢I%…Wú’_k¹ý4áÆm’±¶¶FnccÃeY–(ˆhçù€™†Ì< !´ cLÀ2ó"uEp0ºxD° D›»S`ˆšäªÈÜdƒ)P4¿7@ÍéóÒí>oªûewﱨ,ò>æË•ÛDÁ¸ÿþûí‹/¾h˲´h„<ðÞs#fŠÈ0„00‘Ü“3sÀ-b¦ýðÃŽh87a€¨Éj‹ì&UE Dà˜¹V04·W-’OŸg!`/}]äYèv×ÀuF“ÓHÜ9sÆÌf3'"ÙË/¿\ÑÐ97‘€±ˆ EdÈÌ ²‚™³Dêv°ú¸7³ò6‘æX€vˆa"HdHÀ®ªÒX¬ÞOî]¯@/ê U‹ºn)`û¹|Úv ß‚Ó/H¢¢ì]wÝe™Ù]»v­‡Åh42ó˜™ÇÞû3"…ˆ"’3s&"‹&rtYÑÄjƘ¿+ò\ † U¤rÉKuí†ØI^<•‹ ¾%íí"cαý@Ié<¼Kšø§‹û’ª¨«W¯ÚÕÕÕüÆÅÒÒÒÐ{?‘±ˆŒCc„†!„"Ú‹Œ™ˆ¸„Ýðk Æc:Ct÷œdzMk¬­­™º®Ý‘#GòÉd2 C4ªi)„0ެxï‡!„<²Âv˜¡¬èSUúêmüöW‰N D–¸k¸p´­§•È£û1êÖd=²(™8Õ.)—SdSUÕCö#A €È^Œxú‘[½€(3ÖÖÖÌÆÆ†[]]Í­µ"3ó¸®ë1€±1f¤nmŒ3ÔN8ìõ¢ºjª@Û††þºÈ›…L´0Ö˜ûâû¡ÇÚw‰û·I@KSL® †GG‰&å O+£KçX{À¿ô¤ßSfXkÝÊÊJADkíÀ8„0 Ì(¼÷Ed†cfÙaE¤«žöS[í7)"ô½À›Úަ Ä؃#)*½®ûA¿ à$véª`XD–(ÝÔH;œ¸Œ>PŒºŠ˜ç‰?+ ü—=€$6ð;;;ùòòrQ×õÈ3òÞ¬µcfPV¸‚efÃÌ­P™yîëïc7nŒ`ˆÈ¾Þ˜¥cÌÇ$‚1W;€¨Ñ˜ Ûw®mùÞ€‘’!KYÑtªÿdÁ9Ú”m=€¤`$ |ø‘É@"6Ïsk­Ís€a ìÆ†u]!„LD¬ˆØÈ“´úõÅ ™¡Ûw‰•€£_ŠÊ£ë…ö•—аdQ‚×)(é“qŒþäæ©Ùç}$ÓzYÀGõ‘­†Ô8cyyÙTUåˆ(wε73ç"’‘S0B6„°Ç[갣ϛêN0Dd1î°Ü ¾Ûö[DZtµÊ)Ý¿ÜÈœš4_u&šÔÚÝ?L­çk½€ðSˆ´Ù§`œ?žžyæªëÚE‘eYVL§ÓAŒ¾sueCVDŒˆfÃÌP:¶£/ÎècH ÎëˆÆ½ÂOTÓÜáäÜô!iœ—ÞoÀU4K úòˆ"€K#ÉÔ Ø“ÜÁ¼>íNŠˆ÷Eÿô3?"òÙô}Z•õì³Ïk­ Žˆ€<ìÌZkCѲ ‚a°—ú®}nn[›°c×5> Œ@D È‚î)ž'"-ÕÓá tÑcWÑä¶Ž÷¢2¶>Æ(}¹…¾ º€„yÞÊ}—È/vî§ì¸~ýºqÎYkmæ½ÏäÆ˜LDœˆXï½ !˜ÈQ¦`ÌÉ«³ß§ÂLM4ì`ÔídZö ºNR7%OÉöŸ£‰KŽtdššËM¥.·÷cïÆ‹T£>çô½ŸyüñÇÀäyn¼÷Žˆ2"ʉ(³Ö:"²DDÆŠ-D¤vT[­|"0]ùí[“ûŠùÜ D»”"‚!j˜Y”Ê)Ÿ  h’˜—ã³hVmª êžZ¡Y4 ©-)cûR7çÔÒkBR‡ë£xè‘Y îâÅ‹æôéÓ€½uë–sÎ9±Dä¼÷–ˆ”sD׈ì`f2ƠǨw™ÓeŠÊ›À¬ï¤nl¡jzШ5AóÕk:% "]rvD¼åz ýSo´cÊÒëz4WËøâ‰üƒ> Z@Þò–·ÐÕ«WÉ9gƒEa»º®µ–ʲœ»@®`è1-†¤¥Oû‚™É£šÄ܈€@¤e@¢Û@" KDZï+MtŽZ±+KÒÔ@Ú©—Ѐr}ÙÍ÷i+-}ê.ÅXiúõôÙ´Å<ÿüótâÄ B°Î9-ÈZK"BÖÚ½íÐöE¥à,(­z@Ƙ¹÷¼!2ísËLǪúJ÷£úR¡˜W]Ê’{Y¦×Lü_4nñ¯ÌÓíVAc£Ž£ƒÍZö}‹[ZZÒÛ æ“ "k-¼÷@ˆHb0ƒä¹oE€™ÅeiImcHDÀÌ´A4kÙ¡ÞUbC4Þ°ñÙœxXÐÈ^ƒx(U_÷åHt$æÚAÖ%4îÞý³Vº/ž¤íP)æU™9 ƒÁ€˜ÙŒF#BPV÷  £}~Jôo»ò Ui=W¯ÛónW€‰ G…/qDÐFW[‰ÏTû¢#†*t nšt h¾Þ,ž·hê®~á%æ—i0?)¾ Bê倞?H(nyy™®_¿n²,#1!4A#) Z0â±VEc8ê°D†t뢢¬‚ÞçÏDvn;+ÀØDa+8)¶éP ‚D&Ѷ(K( ·3`7Çœt*o_f$`<‡ !u4ì¿;ð”Ô›øÃƒ1³ÙŒƒAkŒ³,k…¯ ´Ûú.)q[mIˆ>»7wŒ™!MÒŠŸ!ºL"h+£Æ< &µ%–¨=¦6E·GDE!ê—œ º›ì¦ðMAgh¨::Úc© >}ÿ!~ÍÁ”e‰ñxŒÁ ÑºQU±µVBPõd­•îv€1s}ê3ú= uÏiïñ‘+I‚|ee”ÈÀu€°)@‰ÝFPØ]›Ù7P£­2!]Ë9@ã-¡™ç•c/ëújòâ¿u`Æã1yïÕ}m5IžçÌÌ,MHÎDÄDÄQèiå”M¾,fOâß®ÍD*ŠÆý ï}oF"Ä90PQ\ž6LA„%"Œ‰0$jõ}*ô"S –ÐxKG±;xHUf9ð™ÃÒæ²ªªk­äybš„E„³,!„`£êk-‡X÷""];¢*Xê‹ót? /â¿ \¹8m˜±|÷ÝX¹ûnl~õ«Ð$#µÛé¸Iоn“^hgR'@ã— DUžv<}F—Þ Àyêm";‡Ä€sNŠ¢çœD/Iâò±Ö²1FœsœeGuÅQ­…De±²HÁéÈEß%í{· ÌìðoŠ<m ^øµ_Û>ô¡Æ‹‹LIÕW;p¯6&aM£ÌQU4p„LjphëÉXO QMK˜_w³ŸzZ¤ÂøW‡ì=÷Ü“°ÖZB0Þû4Ùgêº6Þ{“Œ RÁ‘ef#"mÊ]÷fxE·±78îK©´­ˆàº1³{D–ïVgW®€Ën4Buýzㄯ¡Ø'NPÌô"eI2ûÐèWDýÄ8ÃÄcFg£$iúÔ¶$ª.>‘äÜôݺ­ §< \:˜ÓÀ]‹\¶]¸Ç»ž{x§ö¨¯ÿ€¿¶ù0_qqkkk@Ö××y4"¢Édbêº&"2ÌLÞû8¿ÁˆPô¦ÈZë­µ "³Ä:¾ž¾+3Ã{¯©vÈRgI¯•žHÆ’À/Ÿ{¸þãÀÛ$ý“ª½8Mß#i»._¸À^ Ó{ÄÖø©Eþ}Ï©·]ìÅ‹éìÙ³ròäIzî¹çèĉ´µµEEQPjtÖ ‘÷¾ÝOúLƘT…PL4*S„’i¡évç=u{ßô+Àõççþ2ð¦¬ó]¶ìWú,ÚAìHXqC€Gß)ò<æÐÅ ³gÏb}}u]£( €yïÛ‰qÆ„ÔX«n’ˆQ: @Ôm«¬\$:4k¼Üc_fx¸õ9àËwæ/w˜ù‰%{Êa܉è,<¿€÷þ-‘?9Äm]TH¤ó³^zé%sóæM;mQY]×nggG'ÌeUU9ï½óÞgeY:fμ÷n6›¹‚Ó¿×uí¼÷YUU6„àêºvu]·Ë˜ÙzïÛ¥ ‘…édí´=裗7G>œý^àûœ³ûÒ *zÚt;‚ô›ø§S䫇”ñmJT?žVWWMUUf4YqãñØÞ¼y3‹k?²²,]UU™÷ÞUUåBND\]×Y]×®ªª¬ª*ËÌÎ{ïʲ´UUe![×µ.]°Þ{ë½×iGm¢»±N Ê"Y¥EÈ_N>¼ã4pOÞ$u¿<ú‘îyÐ6€ßà—ùýCIö–¹åkkk²¾¾Î«««(Š‚², u]c<S]×4›Í]Ú¶¯:ß×{O:ü @ªª‚1Î9=¯ØÒñÝffާåFï™ø7`>ˆÞÏ,ùàò+€ððÝ?¬î+€×õ^ÐsãØ¾à·©ù}Ýÿñ.‘²{ý7¢ìùUR"¢³gÏš³gÏÒææ¦½víš=zô¨ç½w“É$£fI‚«ëZUUV–e{NY–6ª¯Œ™m]×6a”l±Ìl“´~»è§'EÓ‚½´Ô^é„Fë±7Æ”Ì{°ò]ÀÊp¼h–wDá_p…š•LWxþÿõóMï›Zö,؉6…˜{ï½—1T×µŽúÑh4BÊ–Á`€‚º´’e™‘Ôu R×µÚ9]G#­1Æ…Ø{ß&,{IÕ’ |Ð |ê $iÿÚS˜Zk·Ü !l~ xîc 8íï È>äë%áÛ,}‹>çÕv¶( xïi2™è!ÒIUUADP˜YªªBöm'ÖEO«·ÖJlÙZkêºffqÖä(Ì'ØÏÓísüu ñƘRšåa;Ì|+„°…fÍçvFg}Ë•ÞU¸1f ÇœË²$¡( ååe„°µµ"Bžç`fβ !ñÞCD$Ïóv*‘÷ÞçœN°Ó4pÎYç\ˆWfé…t²Í(@f®¥ÑóS4`lc¶œs[eYNÑ€¡³}Dººú[¤øK7nÜàÕÕU³µµÅ£ÑˆB!f†aŒ‘,ËPUˆÓéT†Ã!B¬Æ:ÎDˆˆNœÐ±÷˜ïbk­‰'L!Xku¨ØMâRçÅL²Fú,"ž™kcÌŒˆ¦Æ˜‰ˆìˆÈvag6›MÑL@Œ?‹òÍ· ·S¢,yÏ{Þë««°ÖŠsNVVVÕ€fúPUU’ç9¼÷jC¤( áfî.cÔv´»ëº¶Î9ŽÉÌÇî!Í:F]¥Õ†qFˆŒª"3&"2•fvÇ$„0Ífª¢thø[¾ê·ßÓ¥( *ŠÂÞºuË.//»étj§Ó©£æ_@¸‚L&êM9Q/ËЕXêi™øw]³ØN´@q4Rim‘÷>ˆH-"µ÷¾´ÖN½÷S™2ó,„0Íó¼zùå—ÛɈߪ*ª[ýk@kkkòÖ·¾•?ûÙÏa:¢( )Š‚«ªD1›Í$Ïs‰^Ïf37y:23«!窪š¸#c,3iê !Í•‘ˆ e–e³º®g!„™÷¾Ì²¬ÚÞÞÖߟѴӫ¦ U_äüùó¼¶¶F—.]Âp8”ápˆ,Ëàœ“Î󜫪²ñçûx003Ûápè¢@m]×–ˆLUU†ˆlUUšIÖh½ukëº3«á"â‹¢¨Tu]—eYV!„jyy¹zá…tušºÀxµ0CË¡¢/FDX[[“étŠS§NÉúú:ƒ‡C‡\–%;v,TU¶··-3;çœef[ýÙ ›ç¹af*ŠÂ¤#ŒÌ,! !H–eÌÌ¡®ëçy À—eY¨¬µuQ~2™çœÒþ¾ÚÊmÿÿt*µ+Î9S–¥™L&v<›B›¤ôÞ[1eY¦ª*KDf:êºDªªŠˆH¼÷ðÞ#„ÀeYrôÌB‘ô!„ "uUUagg' ‡C~î¹çÒéP¯Z0€WH{aF³ÄW®\¡˜¸èÇîìì¨*²"bªª"]¿¸½½mŠ¢Àt:% ñÖ꺖ªª„™¹®k‰‘|!„¥¥¥°½½-;;;a<óúúúîhâ«„´ü>üª›ìÂKIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/0000755000076500000240000000000012536324426023514 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/Button.qml0000644000076500000240000000535112536324426025506 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Rectangle { id: container property variant text signal clicked height: text.height + 10; width: text.width + 20 border.width: 1 radius: 4 smooth: true gradient: Gradient { GradientStop { position: 0.0 color: !mouseArea.pressed ? activePalette.light : activePalette.button } GradientStop { position: 1.0 color: !mouseArea.pressed ? activePalette.button : activePalette.dark } } SystemPalette { id: activePalette } MouseArea { id: mouseArea anchors.fill: parent onClicked: container.clicked() } Text { id: text anchors.centerIn:parent font.pointSize: 10 text: parent.text color: activePalette.buttonText } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/dynamicscene.qml0000644000076500000240000001711612536324426026677 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import Qt.labs.particles 1.0 Item { id: window property int activeSuns: 0 //This is a desktop-sized example width: 800; height: 480 MouseArea { anchors.fill: parent onClicked: window.focus = false; } //This is the message box that pops up when there's an error Rectangle { id: dialog opacity: 0 anchors.centerIn: parent width: dialogText.width + 6; height: dialogText.height + 6 border.color: 'black' color: 'lightsteelblue' z: 65535 //Arbitrary number chosen to be above all the items, including the scaled perspective ones. function show(str){ dialogText.text = str; dialogAnim.start(); } Text { id: dialogText x: 3; y: 3 font.pixelSize: 14 } SequentialAnimation { id: dialogAnim NumberAnimation { target: dialog; property:"opacity"; to: 1; duration: 1000 } PauseAnimation { duration: 5000 } NumberAnimation { target: dialog; property:"opacity"; to: 0; duration: 1000 } } } // sky Rectangle { id: sky anchors { left: parent.left; top: parent.top; right: toolbox.right; bottom: parent.verticalCenter } gradient: Gradient { GradientStop { id: gradientStopA; position: 0.0; color: "#0E1533" } GradientStop { id: gradientStopB; position: 1.0; color: "#437284" } } } // stars (when there's no sun) Particles { id: stars x: 0; y: 0; width: parent.width; height: parent.height / 2 source: "images/star.png" angleDeviation: 360 velocity: 0; velocityDeviation: 0 count: parent.width / 10 fadeInDuration: 2800 opacity: 1 } // ground Rectangle { id: ground z: 2 // just above the sun so that the sun can set behind it anchors { left: parent.left; top: parent.verticalCenter; right: toolbox.left; bottom: parent.bottom } gradient: Gradient { GradientStop { position: 0.0; color: "ForestGreen" } GradientStop { position: 1.0; color: "DarkGreen" } } } SystemPalette { id: activePalette } // right-hand panel Rectangle { id: toolbox width: 380 color: activePalette.window anchors { right: parent.right; top: parent.top; bottom: parent.bottom } Column { anchors.centerIn: parent spacing: 8 Text { text: "Drag an item into the scene." } Rectangle { width: palette.width + 10; height: palette.height + 10 border.color: "black" Row { id: palette anchors.centerIn: parent spacing: 8 PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "Sun.qml" image: "images/sun.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "GenericSceneItem.qml" image: "images/moon.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "PerspectiveItem.qml" image: "images/tree_s.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "PerspectiveItem.qml" image: "images/rabbit_brown.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "PerspectiveItem.qml" image: "images/rabbit_bw.png" } } } Text { text: "Active Suns: " + activeSuns } Rectangle { width: parent.width; height: 1; color: "black" } Text { text: "Arbitrary QML:" } Rectangle { width: 360; height: 240 TextEdit { id: qmlText anchors.fill: parent; anchors.margins: 5 readOnly: false font.pixelSize: 14 wrapMode: TextEdit.WordWrap text: "import QtQuick 1.0\nImage {\n id: smile\n x: 360 * Math.random()\n y: 180 * Math.random() \n source: 'images/face-smile.png'\n NumberAnimation on opacity { \n to: 0; duration: 1500\n }\n Component.onCompleted: smile.destroy(1500);\n}" } } Button { text: "Create" onClicked: { try { Qt.createQmlObject(qmlText.text, window, 'CustomObject'); } catch(err) { dialog.show('Error on line ' + err.qmlErrors[0].lineNumber + '\n' + err.qmlErrors[0].message); } } } } } //Day state, for when a sun is added to the scene states: State { name: "Day" when: window.activeSuns > 0 PropertyChanges { target: gradientStopA; color: "DeepSkyBlue" } PropertyChanges { target: gradientStopB; color: "SkyBlue" } PropertyChanges { target: stars; opacity: 0 } } transitions: Transition { PropertyAnimation { duration: 3000 } ColorAnimation { duration: 3000 } } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/GenericSceneItem.qml0000644000076500000240000000402612536324426027402 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Image { property bool created: false property string image source: image } PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/images/0000755000076500000240000000000012536324427024762 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/images/face-smile.png0000644000076500000240000003606012536324427027502 0ustar philstaff00000000000000‰PNG  IHDR@@úù­ pHYs Ö Öoyœ vpAg@@êóø`bKGDÿÿÿÿÿÿ X÷Ü;IDATxÚì|wTU×¶þ>…sè;EAcÁŠ0ö cW4»€šØ4šh,5ÆÆ ¦¨‰ 5KT41vÀ†‘"NÛåÍ9÷Zã7rÿùåæÝûÞïÞdp¿¬]V™ßlk®}®VøÏ?ÿÖÿüŸSEÉVbe[6à.E¹–X©(_%šeŠr¡àSEÉW`ùZŽü:Ž¿ÇûáýþGþ× VˆE9DiåøEXÆlE¹tUô›Aê%Æa‚Ð$Aœû BM– ¸Ï¿õ‚à ïØ& ‚÷-Ax’ øG~?Çßãýð~ù8|\>>¯ÿ(À?ŒèT„ E9[ ðœ¢\M†é~'g¦ ‚a(µC\àÏñAðë–÷¡þIAÐiÁÐÖ´„ð'¯^€daµ ´Ÿ$œÔÜ„ŽVa¯b„Î6Žü:Ž¿Çûáýòqø¸||^|ž|Þ|ÿQ€?Mø÷§Aè^@J)XÚsX !ÕVö›p¯DÊÀ"w1õ…ºŠ¿×ÑúÚ§t´ã‘‘'Š_==/,PôàÑŽZþiE9oÖïŸ~¨8áÑ­ÀGû K²óN6’¾¾_2-/?äü¡°’5yž„>yñÁáp½Aî’ Öû ‹Ï=J¯ÿÞ+ÉÝRkGZFɳ'û½ÞX<àõ°ÒLÇ_GžàãòyðyñyòyóuðuñuþÛ+€¢xBì­¼)>+Û$®‹ÁéŠ 8 ‚o< â+4…7Þjo(o\ïlyÇ»pÞ#¿¢ G 3® ª³o¨èl¹²øÃ—¹Þ³›}:bªç̆ֈmû{Ÿ {§CŸà!Þ®m¢—{yyÍŠŒèqÅi¡÷¡Ni½ëêtÞk;­ïÝ pL¤K÷Ïœz%´ ÏYÃÚuÐñݹ¿Ë,ǦËGL•¦Ø^„Ôÿ°¦x_îÆ†íö -îœw¸Ö± GÊí%%.CÞñæóäóæëàëâëäëærø·QHª¶Ä ÂaøÖ‚`ît J–Ӟ؂"}m_£¹ÙùDIì“r ï› ¾{ðÈ?k÷-ù²=ªÑÞ <êêÜa«wëi]¾w^ãžÕaß;ØÜ‰¶+G‚-Ž· ˜à½:469£vÈŠ)8ʆš)u ½)0yÊ=˜)@߆ßL¸"øÙÔûð\õw¦ô†¨ß$lñÄF@­ÍÓ‘ýÝFîPf:²uMçÏ`ܵþãB?ï°U"_i4rÁ‚¢^ wßz™ÿ´­gèû&¾¾.¾N¾n..—ÿ³  (§<„Æàu{@¤SÁ*[ „¥Â8ÁEˆl½ì¥æim÷øD©(ûQ»¹é; †6’FçúHoLo%ù´ñÛîhŸK ºZ-ÙÄy´q­qA@Üõ[Œú£¯ßĸr@­—g÷ß ÷Ynr‡}€—«i•¦5¿ øãª7æ2œD×§6»JÏŒw+‹Ä÷^{ Ý« ¿å¾Ïã}n:]¹È˜8`1—— ——Û?;Dhÿ)Û4šðé>(&øÛôõ‚; ß=ÂQe¡ 4ïôò—ç_¹ý0ùçÊÓ%óêÆ®ªã1¡ö®Æs‚÷¸ k•"ø¹Å×ñŸ€`»×ß›mä>¶ÃVL£Œ÷ŽÇ¹n³g6uÞ0Œ†^¦ý†Í!Ž Cv'<+Ÿ¦«r:aŠ4–0\>CèH× oJëé½Çò Â#r[\ ýo²æ©:®q.ÎC¿Çó,ÎËñrÐ,˜§·{TGX©®ªîüØ¥‚¶ÆÇÃ>aq˜[ׂ౪N¿Sðžê½¥Cê_XUçÕì‚"÷9“ærárârãrärý—U€ÿ§©_y¨ÄËàŸÁC¬ók¬ SëÖõÅÑÜ—Þ‘‹\äKV]¯Iw½£‚޵fìí4%Ôµ§ óå Š`qº7=nv°ÀÛo#ý_ΌŒ$Áï2UbÅu*ö„ŠíªJ¬ía„½¹zßFï áö„v•XÖ¾i/!Œf×ñ?êw;ë¯3a­žú¾Í™ÝHxD‚•¢oÐTà<µ_8ï@Û56õ@Åõ¸Ñq†Ž;ŒÆÜ¤Åöž+@Ú7:×쪱·2ÚÞ¨^‡Iw‹ôù>‰‹\¸œ¸Ü¸¹\¹œÿ=À©½0Á†‚P«,ÓK®DM–®I»4Bx~÷ù¾ –·rh¥_]gs¯IcƒD ‚ 5M{÷ôƒ§uµÍÑ©0¡ñNÓ‚?À˜¬oãúˆ–ÚMÎP ¶LE”ÍQ{lÍ—„‰5„5û³,ó[ö«Z›޳ž Ì´u" ´ÿ¢É0Õ>pƒ)޵áëeÂæ¯hü ³™ÚI5sÙø‘„KÍ÷€[ë~šw„rs ]°ËAXW¼S³Û°Î¾+£À3TÇ7­@”òª‚þ¦Î¯ª-ú9Çl$ÿÿî2\¬õ3¬ûµçã6@b¦† c’Az'íF»w¼ä¨«=2ÒR2/…oâ’ƒ\Ž\®\Î\îÿK @Û¹/ÕmK`L¶5è0=„vŠd´_lÊ ÷Z=GgX ëÛ/òž[—€%-ñ›ƒÆw¶ÃÀçÜË›OEâõ¾n;A§=•8Ût5r¿&ÁÍ,§’‰<³¢ 4½ò¦ß&Ö¬T‰µL&ÌK%´u$,c¡ û%Ë> ®Ÿb½ÍFxÖJm!Õ¶ƒ0É~€½·ˆ…g/Û:‚³0߼Юªù”Ú&_UA_F„y§¦WŒÃQa]­a1Jªm*„n…ëLÃ7nRómHi`bç‡@ïý€„æ?‚­o7<÷ ¼Wì’ê½qŽŽË•Ë™Ëóð—à¯Çzÿ0xý)LÄà\OøT†Ü9 eÉ´g­ÝêŒrÑl”7{OìõÂu]}çÆpG¿7 ­Ýï €åîî!+Ðt³0ËÄMSNô¨t1@²4¨<–Ú‡_ÏF”ê²ç/fX:2B¦1¢®ª«Ä l£Tâí3‹_¨†[=–”*LQbÙõ"H¢ú© DØ_õ6+á k_Ât ­CÎ2o!t7½G¨z„©kE`ŒôêÕ+T7¹+*…ªa(í&ÇÕÝ]ÄÆÊt+ü¥v€.#ëOÙ ¦ùŒéõ¢´qÁi·W£\¸œ¹Ü9œ—ÿðûd´[°åPÐÓZ°P°›Z/^?, 4[†®e@|2$Í,;D×¥ÊVTN°:Áõý[NN('÷²nwwsÃB–ç®ÆZô=êNmÏå¦û߯È×%/=ßœ¾†ËóÀyá<ý<ÀÓ›X$Ó*a.R@üuV•Ì|ö‹›ÇÛíô›õ3ÜLÁ>ŽS}Ÿ\‡©üæ7$Xol0Ööz ¸K»[BÉP¥n6NQS©EŒÓ$ T'®<‹Î\ìTÂX$„ˆžNΈñ`í@žÕs ·ª„z!D”UU”|ëjv_}^±:3ìÈ®×eIàBÖßT¦ÛY›õÇCˆ}»ßÍK'ŽÍ'‹r‡æDt9Zº¥„‹£‰¢e=ÉÁKû-à8F÷Èéœö–†ÊLà ¯ñ@оo…lŠ£ß ì}”¾™ûgÁºÒöÜóßnÇyà¼pžþa  ()L£ú­@©hr»a±}«ù¦ÉPË{Uv×[CBœmî>pWÿ›ïž€AXRu>à ®hnD…šqÚ]†•4ä`Çýèò´ÞN?zjZécJ*4 ±d±ÑJ ÅèLÁƒY˜'¼bkÎЙeùÜ‚G0û–©„Ê9V+µó¬W˜"ü@×Ó,€äa¶2γýXû>Sf„Ù¬ÿrÖ uÛçAHmRduÞ àéšãÓ  ý™„’ Ê'Nó­±7ÉåÇ"€(0ý ×AŽôÊÑi¤ï{XùôégNÍ<2¼7 ‚-Ö”êºHçóÂyâ¼ý<@·™áÑy0H{¡»tbÏÞW–‚·\ƒâcŒãŒ³œgº5<’jm Ïv[ç‡üDo"â—iÇëõ4T#ÇŽ„ÁÎHä,Írc!}BÑM¯ÖÙÐ2xŒV΂ ¿L`.ÒC)' ŽUÊÉ23™å>–ó­<;ïË,V #¤Ý#r¾zݲšÝÿ‘µ÷3\¥¾¯Þ—ó-êýÃÖ{ìýbfÑ8nS„#0^'ÊòËm‚=ˆaûW2qÞ,””&ˆkÑð=¢¶•a(ÉåWg’n°“y„ås©P­C»Ö~âææ÷6x€žµjÀ#d»lq[.ººÕŠá¼pž8oÿpø#Öä ´¿w o”Ùrª8¯í3Åñ¸s'·k0íoÝúlB5Þ5NFׯIVÊ‘ ÍíkÒøn~„‚~m\rä–ŒˆmªEš/fY ÿeç£%*Ю‹¤äX¬¤ ^·Î·N©n rŒßrì¤@7O›¶ào›~»ýàk$ìЂ3åh‹…ê ‰–:ˆÊ‹#C ázkÊI¢ ï%Yšb?·oßßýî™Ö?-Æ¿eKV Œ;ŲÀÔ½ ƒˆÎGQ+9,”0Ï#ç³pØRD˜Aux΂Ï)©Ò5TðÝI>^MHnum0h6xÕpÔØð[·D¬ßpé Ûg{íšgï>S8/œ'ÎÛ_TÚç'šÛpìß #”/Á ÓÊnkœ:u½®ÿD»ÏxÎ{ŽÃ$çzî7pX§ºN«qÂÚ]â té°pÔü|%B,eÉÙ"Ì‚åpª UHë+¢¥KRY: êðk-«¨u`ŠÁ-îß3W>[ò¬nzokߣ°;¸xñJ_Ü6FåÅÃWaú©%›  Sðþ‹‹/æ’”›ï¡e‚àW!ÊY ³!PÛŒíXE6¾WP¶ôÎîÉ?n‘v ‹ÉóºÔûê¨òAØ\°µÃQ?šÇRË|¶­Î꫘_á¡„%µ[ ÏT=£mo×ò$RÈ1˜»Gȇª{²RdœŠ›Qð€Í)wzS„usœâ< “C—EîctÃ{{Ï©ð*¹éœÕõ:ç‰óÆyü àÙxr¶½\Ji¸ •w_“åök½ãè˜d‡;`éÃàîSÇùÎ%H¼þm%œ’¹Ú¶…Ë]_ ”Ü*ÉÅK3Ê–xŠkŠÐ%ÇŠ-žShšé~ƒŠdD9Á\›¹dG†#˜g¨C˜–Yy¤b>ÿÕå¯F\€³š­Lóë‰_íÙ§—•N‘>ÇJß±vÇç_íG–-[ŒjéÖ<™eçoF±ÒîRËdz® Ç?úÞqÇ+uñpÇvÅŽÕøö¶«Øohhâ–pô?µ¡yŒ+OPKÆ0?²p+!(V¦M™b¿@”VvCÅâbÚC¬-p@ƒ°¯-¤ùˆ¡¥ ²%·ò À©åë§€)  H¥ÃJ%mÛq¾S_`f¥áC ¥Ö^¦Nub’9Oœ7Îã_Ps¥ÂB¾Å3kkC{©0¸îÙEŒ2 [ëà`¨1Þ…'Þ1ÜÑODW¦.[‰וAWhŸñò$`²ýÄ \xŠuäcª¿YûåŽ&\»DZ/*T]úëF꩜9’ Бm§,l}öjÝ«Wåp:WâRxìdÇç—ßz8øóúòçÏý¡<½¨è),ûwÃíyë‘y]ͼ?†óquVÚM©¹„£H3k@l¿=ÿuv~ô³¡xös$þË;Øï¹[?ôÁqJ®z• ó8ôÊUü’`^ˆëÍ—™B±y×aIç|Âtµ¤m?UT=­8?C›muîi4ëÈüh:™h^ð6zHû¨’$×%X(Ó,ÓÜ´ÖU<¨ #ÜnsVkÿ²»ù#Â(D²üB†wÿp½%^·-´•`2g_(žÆ~îì»Wû-ìS2DZ ·Õ…q1ϨŠÊ‰Ì*á±hù´žÞÜóP;QuõÒõWƒHNŸt#¹Ü°=uëýÕèI-ûsÝ7Ø;lL»”µ¤\(Ç´™JÉUÊX°óå+õ&À«Új½ät¢:²ükã¡PÎçñÏ*/øÄ€æTãvB‡¤¢¿å{“Ñ  K×ùèÚh'`ÅJ÷“ö<ŦV”¥gËiTÀ‰T¡lhñÇ€ ÖŸþJØ17=ƒÍùI<ÅþÐ’æ$uUU„±d‘$HFø †f&ÀKì¶I>½4ºgX2uËu]SK$52}`§^ÍóÄ%ˆî~s1GQ’™ËOªªŽWc Œ®©Q=O >÷Ž’Š ˜Uë(Ò}ÉŸú½­VjzÚg :öu)Åq}zxÞÒ}Çæ‰p¬ùgÕSÕ¼`×L‘ïªógžg§é-:Ô_Ö'¹ôê ˜fmžWFU…O°R˜ew)ÞŠr]Ëc(gˆ5=§íc¥õ*àr]°v0 8滿ÚnÜ–Îyãå,(ÄJ”§¼„ä- ¬þäêЉr^Ró•“È£D7ÅSxª¨iˆ¼(ïJku™µœ7Î#çõO(À]}u#`®©k#F‹ ð[[åì¯)ðŠ×6„cœõÇWöú¨¡òu³™Ð&ôX^bq¤m`y†›°@3]—h»õXnII]»Ÿ-»3—_Ä15[AsY[ÅÖvgž@6A=Áó¬>伟á±sjôÅ•EðÜàø>Ž.-h×qê…AµH(y€£ o3tàבÕì=o=í3Åuô{íâÞ"8ÿO›‘·åg¸¡o{i2›Ç{l^ï3|›ÍŸ{˜žL!¾dã|H®\fß/(fUN--E$'w ÷?d‚üêàu)‘îW¨ï)ˆFœ'ì#ZPñ7†œü9X«óŠç¼q9¯BZ¿Ç4å0VïìÝEÐãG‚’¨)4…OÀIzÀÝVJ†ôˆ\y¹ý€º§‚¬–N÷Ó~¿ÌºZuõ–+ª,SHyd™G@öÑ¢«UÁåq¬éÉæÇ,¿1l;&è&(ѵh`øËíKÓ•MÞÙ˜Yýûéªb™Ôþr!eH0õËñw~=÷=kaý¼¢~{Mh‹ã”H §qÅ¢¦Ì²'¶„÷‰pR$ÃÖsƒÍ;€%C0ҺݬÈ`òè‹§%€ÆÜ­?ÑxäZ¬ög³©ò¶÷#Lgb.&Da޶kîœ7Î#òúç<i&n)€¤O/¨*µÓÌVi2z P‡¸AI!Í=#íͲ^ZG•0E\¬îß雽l%Ã>ƒÎÁ`âdù¤ Y éÃq°p'È+æØnÀ“Ç,3Ý´‚Y\†ÙýÍ„9U!ˆPwRnò¥ö™jv>o á«"CÈû[É&D}Ç¡~ÚºUtSÛU>l\z^*ÃyÐûïRû0"ÝçŠt‘0œÖuÖÕ˜äq,œê`:¬l> ÊäX{©J´4€BF>+•’­—€x*qÅûà+¢)4ÏÒzqÞ8œ×¿»,yHè#Ï øN¾ð˜ˆÏ‘Ýä|"p©’O¥Ö tA˜ÿ+q¤±ÊRÂ|öUnºìOµó¥â@*?'…ˆ¢+SeÒð ǘ8ü™ Ï09 “Å2¢®W·ýѯLÕvÕB™=Út[í‰%Âð9S=뇷MˆRëÿºÉÝçï…¨ÄWïùƒâ–±y°ùKäú“dY­Àº¿¦Ü(ÁNË bòIÒ5’o9E{$ø¦¦(ä!ò•@4,{Ž:yä,ø7–~QP)(‚'çí/”‚kz¡CÇÀ•%-%ÂÓ$7•h |-(•PPÆi>¡4ßÐaNœ @?M¸ºH—¶ÊòÙdLŸ.{ÞVnIþÃC9L.0Èngt,"\Ï>ýJd‡,‰Ö„Q¬ëΦÌ\‹RÈè †F–lcí kTW^ÉÛ ›°íÜ%Öï]µ_fÁ–¦l>}T´ÐNž0Ç>’߃> I€<¾è«âíøÀ›7X ß3Q?ßC±àƒò!Âc„]è ÀÏn ËNÑ  ©(9]‡r”—’Bl%4<%K¹!$¾n(¬'8oœGÎëŸP€f6Œ+ê§ÇÒuøÈR³Q¾-¼-·¬¬”S”,(M*S¾ä¦i…šGçÔ¯y5™dùI€(€$–>ê„ëðÜ›Ë:ZªñÇQõ¶££ZŸ”™l)Bšå<Í›èø@’(„„ƒ€è0Ij@(öW‘)ˆ‡}šŠ6v˜òP-ñÚN°sü+ d8‚2õeØ‘]ïû7Ïï'<þô)G¤q8vV‘Í#B¬O¨V+Ѳ£Á²13‘>G‰®Z°ÝއBõ>®Ý×9pñ›ï>¤Ü)ŽÉ)I£ÒK ‘ ´‹úKSà¨í Üu-Ê=O:,ÄàfBp4`+5¨¬ä¼q9¯B®Kª¦ˆ üít˜«‡\Ö¤—ý4¿JýJȲ¥„£À„˜ìsM0CŽF(Áò»‘+# WÀЂ7(šJºˆ#öÙ×e $Oó;Lï×<È­ñw÷ÙàÔ«»ï©bà§Çöè‘ ›3|´¯†y cE‘¹˜µ†át†ýÿH(³ôrñ$ÃSüù¿U†¸Bñþ™HU<¥SmmW˜çÖ©û†¡‚ô¸0ffå-XÇ7wãL‹:ÍÐÚ=zt´ê«0D‚4ªâR…p@´üp4%SˆÖÆ«»)’c´ø‹æ[Âú:”sx‚FÀ¿|FÉ&ƒ$´OÐ9Ù>º3óÆyä¼þÛÀoÌx ɸ—¬.мtt´¼ý…xL~ g-OKƒä4L/ä1Dl¦8SwA=ßÖ*1âZ­NM^´OQƒÁx!alá)(-P!@A]ü´Ž#Šô°”;ý@X¨å¸õ>ƶ‡~6Ì !¡“}h{Üw~j¿Í6 ª dúIF"H€*¡‚#+'–˜ooÀ’5—¿ynWæQÖ0EÃû¡ŸêÍ5w¤t¬@l€¿CˆNqßô„´6_À$²f®å²Û²yŸÍÓ}&ï6 S’`¤¸¸nJƒ)w`íhmC5„’ÜRäÃÚÖxäúŽ/ŽÑëqo!=ÒvCÛ–º"ö‰ògÒÇÖb‡q‰5èöœ7Îã_8v©žî®䨿HÙ±‡pðiwë"¥¿}eî)é´”+CjŠà&§ …K‡ô›Ð¢¥04Nø¡~-`)- B Ôî&ED ,9ˆ)†"|Cçà§*ÀoŒ: Á´7z¯š ý;÷sÚf,‚,ºCñ×HøòMâ°€ÒFß·þtlÂ[³6¢à¿ª“•‚ÉÝ“˜'çÑB¥Ñ¢«Ô…'ûK1ù|öæ³="xŒ¬ò£{±¢™”½h-nïÚEö…®=5y]®vÕ/æÉ‡ažÍ:á asÛ§Å‚G˜:Â"6 Ë}TùDU(rí €^ã58?æ ΂|v“­¦hß!õë¬ß£ž‚\ñTp€M#’30ºK§å\0”<ù²-,÷ç‰óÆyü p6+¨ÃÒ p¼ÜœáÙÂH³»Æf™sÙ"ŽàϬEQì*uÅ$]#‚ˆ3 ÒÔGÇ(b^Ó?W+UÚÙäÚ<è41“\?U1v–V(BŽlí‹’ÄE~ þ±èPîtLZÇ>ç@Ð_KKˆ™º‰–y $£W^¸ÙøG“?¼ƒ§ˆqšÁ?á§WÖvþ¼DðöïCöT Ml9ãVþfy%ºcahö·IYXØI*ŸÑëo·ò}ÕnxoMç.øÃA)qG°ŸÔŠ”T3¬ëLÚ‰möNøTu5º\§0H­¢¢"{…AnrÒåðáIA¯Ë»,~ê¥þš¡¾cººñù´î#lÝ7QdžšjE‡@’^!žrxŸÎÆzc¶/…jƒQîÒüDLê < ;ï¯él©wÙÂyâ¼qÿnÐh&÷U³FÃ:n «3$erÇrËóó­/¤dñ¶é{ñšx -Í^*Δ£0¢J¯ X±ËG; §ZBDKcô=aIºïÔ:5³Y@A’ëãŠðÄŽÉ¥µîs~wážwÿůÛODA!e[Ç ÷¥0³vß·žDô•— Î6iŒ’ x@ ÃM¡–µæ*%£­ÃÊÚoÝ/øbåñfåùøËŸœ¸sOð'c¿ž¿°`ò²ß£1XÒ6ÜžƒŸWJþJ,`gy Æxç©R"ŽÓîh«Yá ÚÏî|^ÁeAØã»ããNà)Ü\Å;‘P?õ‚ÊIOëR2q½,àzcg‘GLÒ}KÉ_޾`²½>Éí¦8Àr @†ßñÝ~ ·•öS w˜¯e¾è#®7}/O1¾iYr~#ç‰óÆyüo|lƒ› Ã@=F¾=>÷Ý¿öß½÷º¥ô¾Ùvù²8ÊnØ+´°Ù°@+Îø¯ö®4,Ê#ùϣ܇ … ‚›¨Q¢F£‰xǨY£IÔ(¨\õJ4^ 90*ë"âñ÷@@ñDˆ€È=Ã1ÌÍ 3ÃlU ýa¿íóü“'»çË÷í·úWÕÕÝÕÕï𶢚;Žv ¢ÓóÑv@hðYú%ÁöNC(&…[(`YH„X {J(fÍÖåÔPÊÔ!y&`vkB4oäÈ}yÐcOOiŸžâŒmæÞ¤Ÿa(P¯¾²¤öí£Êš!S~ׄÚï2´$®7 B‚MÉ–Qø»)Ñá”Ú=ÃÙŒŠïH@WT´.âŸ\æý´ëdnÆíŸ¯ƒ M‘ÌÈñ}Ã6?ˆÇ0âø5Í…†·R64¸]j_5¶‹Ù©ø0k»y (6·’ÿ+©è²Í·tàl™° u ´—eh÷)n’›d84~d|‚I£¦eí\(W˜3ÚN<|ÈôÂôÄôö¤…g— ýrã,à¸Ûo{lvƒE•èK]/Á^Ý+[õ~F¡Q£o”Ê1 Ö¸Û˜ùñä (Nå0‚Ñöéd݆.)Ôes,>p§!\±ŽÁ@¥Žê¨&âæƒGH§9†£Á€å:]IÆç$^‡ '÷Ṇà\`I›àÌÆoD, .?¯-Lï «ˆkycÎz‚+/<ÿËOCar6óèò}0‡Y»öpÊë7™Ïîø<ÓÑÙ!§`HÝXc¹ 9<)3xlV-Ù¹* O1÷ýÉãú¹s8­’Ì9bF¯‹(¥íYó ÊæÝ 0.p È I–ˆ{"èáHñé´¾ŸÏ÷§ò›ûtH}D—2âé#{/ê@{¢in•ŒçLŽÆõ˜ÚfÐþÏ1è+¹Æ ýxm~Žvè•­L/LOLoÿoàr·C†£É2\N8œ|vWÔm¹K’åÊc‰ô^{¼vtn¸ñU{ N¾Œ»ô³1&n 6Î5L±êûõÖM—Þ”ù²Á¡€Žp>íú!B¢m)p¥>°²{JKHÚhôDßì‚@‹`ˆ¬`SÜv×­ø8ôìÁWfA¿n|/ä™<ÉÓÈÅà‰†Âûä@ý}~èxR„/¡RºnÆËÞ†—ÛO†È÷]<‚CWÛËWvØs&eü‡\Mr=§Íß©ÇSîÊO=Õê xn¤øDÁZÚ+qµ¥Í!³¼ë:ЍF;dÒ¦ÚJçÑÔq.áë'ÍwŒ1k<¤Ÿ ýðvûcŒdJÒÚiÒsÃAñ¨¦¦'¦·ßðl Ï ‰xwãÈãï®ú uñ‚d]ÂùCªPƒ»~’̾Ý[ÿP;”>§ÙމL°õq—,½Õ±ŠÐ×½Ű:ûRàÈÛ~8*”3_HRÆ‘r¡@ì~À»€ :=Ã4úý9kñE¤=³N Xe–áarÐÐp ç<CuÊ¿ Mã«ùŸf+k³|)cîô¤òm÷ÏàuÚ€âmtY_ëGY¹Ñª©´™“L!Þù°æ‰±")|~G6h (~uîr¢<Õ(·% ÛrC»f«WIñÁöËHñrgg«‡pëCõ pJgÆÉ)Þ¿Ù©èã¨`2Ä,êá5(Å!²èg(ÊI{!›¢îs[[ZÖ)ìnÓæÙH§Ú=}æ¶~OôFy5®.Xƒe¾"£­Tµ ¹îŒTªOÓOÓ«Ì{ê•úÕÝ)ãéé…ééw|?ÀÌ`¤‡›ÍñÛ%>×{@¿õ³OwÌ2¶¥&×NÕĪ–ç,4,Õ/Ñzr†w4?J7`zµn–’‹™f'[ÜÆuá*ݧÓéØioÅ“aŒòÜAù¸…“‡prÜDÄM¡¡Vv¶BZFÌ ƒðåûáÙ|$2•K I#ᬊZHc5@ô Ùè9#±ÞÎrv] Üà @õÒòžS Á›††rŒL°$ †àó@NO:Úu™ä†È§ã>Û?s›FÏqöü„º”Û[ߺváÏb.°Eï óÄ÷%&ª­†¿n[ $Šš1šïTÕ9 í>uœm¬HMe¼3=0½üÎ/ˆ`ž€úŠ g™]oCáhûÎñ…EÝ‹<ÝüýmCÜ»ª£4»Ëººjc•…`Á·”SÏ‚¨‡µ-UÉê%èK"ìïÖ sUx'{Çš¹‘Þ4i´Xz A@žû=@ØqÞD¿ßµß HÏÉCplbWZæ 4¤QüµÖÌWS~ŠBÏ’Åæ¼bÂl~x'¾OXÍ«#|F×EÁ÷éVOž ”¿–¯+é9àÊmcIŽU ¢ÒÎ*×ç¿“ÜÇÜùÔŽÖIV漃ñWþžËè{$¶Û’fŠ|E¼”`Þ¿¡Yµy2<Ô-ÂÀ‘è{u²z`Y­”×®«>r'p¢ïàùãééåw5€5„HOkluæL|<“ôÊvåó†Šò ªî?ÎhŠVßTÿµ~«!^ó¥¨×·:ש Á·4îÍï€èaëæ8,Šq[ ¸@pª×Gô ß)V¢|ŽÒdŠóÖ!"6Áã+rr ·\krj!œê°›0½ëAìÁÜÏ…ãɳ¸¿£ž^h{‘“mÓÏŠ‚û Y9]WC×]¶(„qh` àY¬^<ÎÎ[à°Œpµ“QžCrZFyþDrZÞºmõp$÷þ=ßÑ€1‚m½æQy¶Óâ[P.Àûj¾äSàåmà¥0^ý…>äVyÛÓ÷ã=’Dµ6èQ¸ÿp_MMÌuú¹£ynÎÎÖrƒémE- ©ü ”ãu|~˜_þÎ+öÿ ¿¶¯ˆ¬ ø^Q˜Ô)—0ÇfÞÏqáíÇcÜùxçÆ'ê“ÍåÔÎèr<±×$Ý]qðœzŒ ¸ZÚâ¤(¯L-óW(Z÷¤2ÞŒWÆóÜ‹"i¢1h¶OÈ g ÷á&éÀØÞ°# Ò„Ló æˆ.ûV·i=Ô;oßh¶o¹ó¸]³DuK~¦#Y7^ýzò]S|‘8ÉŽ”¶¾^3D怫“%˜Xxu®JÀ6Þ€9ÂþW‹„KQáì _PÂÒþï’á ë?€t½¿¢Í¸ ó€[lföÿ”p!•Óõ/á:D[@|aÕÃí²8'mµÂˆ·#°\ø ÌõóHï(—e…É„r_kfÊ =†GÒee2¦+mºYT¸C¶¡ ^óµê°ü\Gr‘cÓgò¯·Wk>V•ï¼Éxb¼1¯Œç?ÌþýI☛de6Ýñ¨eÈ Húncص±êÛܰ¶ßÎ|ð¥x‚Œ{ñãfUËy¦:\÷MKU-,£´± q…‰@X’ØæÉ  ¾ùö [¡Ši˜…oá34ëq¬·t¬.¢ž:Íu5y„û^s‹lgùú*»,ö/¬íRGøv`)Ê ˜ÄË»B9ý~®Ãûvú×ãw¡µžý‚o½–âÃïÏ¡e¥ðg\# ˜ôilW.h€ûô¿Hv½€!Ϲ+ ù7Šràû–ª:0Ôæä–Ø–êðüÍ¢¥I?Vá´Múv&ã…ñÄxc<2^ÿkÞÎ,•Ë ê€ UéchГ ¾àèeóFæ†BãrsÝ'›>Û‘¿¦)©åÓ]ÞÏëîɆÖ(ÃZ'JL¦¹ºŸ¥»_]"mÄ3žØÆÕªòN¡Äy fƒA²´D *cp×дQw½sã2ÛÖQ}&oªõEyËæ\¶óBä¦;ÈZŽC9®÷áupÚaÞ×Q`xŒ¹æ#ºÓx¦Ñ4WSû¤ôo%:C'¾ÿ C—_ç~ÿ>ȧz ߤÐÅ+ºµ7ËMsŸ}(+k+,Ì?ÕX.ì²w9ûšÆíÎ`<0^OŒ7Æãýÿp¹+øòó*cÆ|`   =,TËš~C¦ð8âã½[z›=Ûºo¾u²:K²(içs£ø„T^&”Ï•wošh\ª‹•_?z_|º ß^“{phõ¨ìç@¼m-/G Šy[´ýAwœ]7<¹ˆË«fCñ4À¿I3JÄ@q»tniá²R!+,oîŠ×éÿÒñTõÌ]ËoÃÓǵn9®ôœ•Ùxþ·5'r…ï×Å%fÀ3Rû 0¤–ò®MÞÆ¥Ïvм$Ê„·ª«¼%‚¤-çÌ×tF þ @ íÄÚÍx`¼0žþGÿ1„¶™[·''ôÆ-çŸÜ…@·pèY ¢qö¸9C"a`ì¯÷säðW5®×龈»ñk^ß“nH Ë9[}A²9ÿeehãf[ùÅjÙÑËŽ½Z‰Ý«vPÄWbÁójP¦6=?0¯úóœ"ÀúªªLG@Qåò;w»UõÊðìh(€rbUGf/@qõÊ»'ðúºôü$À¯ÄÏ[¡~O©×+ ÄÞÈ÷âs_6.i.“È\õ‰dHþËëÙ¯IßM k Ñ'é‚ân°v°v±v²v3/Šÿ ú×!b„-–-Ãü^|»Ïæû£r@¿®x‚9Ô‘U.Hçp3×Ù1¨cKž*›ú+§¯KI;Zv¦ùlÒŽ Û sÓȬK¾µ{š=*ƒËƒº4ž“gŠDMï‹·-’­“Õ9›ç)J jª-“Õ³¥Çªë8ÇÔã¥iˆÊéÒÌš4Ëdy¼Ä«Î×0öí÷áähò“wÀ!,×a›”]aùý¢9…ßÿM¸Í~™ñÌZQÝMm¸öÖŠ¨§ª¦¯•5qž‘ÕcåÆmWÓž•“ìKH‘”|ßô(i™ÜâˆÆ±ÉË»#ž/·–_:Zê!IÝ—á\í/—n»úôRÓ0eVœgÝ­ë.‡ç$®±ç29˜\LN&7kkkçŸþ_Ãþ}ƒ-ÅåKĽE÷è)0ÒÞ ±q€±óÀ„«!7`,ŽÚ9æÈ÷™1mÖð¯ çùLŠŠ€©Ø…¹ïÏ|ò‡–¾#;û|ÂOöí)¦‹Cû†Af¡?CVήc÷±zX½ì9ì¹L&““ÉÍÚñæÛef!—;Hżº‡ã{x\ãÖ@Oóî¹¹Ç[Ï 3BÀD½ö/‡ÁÔlåØñ>3a¶nRü{ è¡ QŽs´°Î~Á•³ëØ}¬V/{{.“ƒÉõæŸCÿp‰¤üw˜TQ—;$ 2ogÍÆ@3Œ½ù€>\®7Q²rv»ÕÃê}óßÁo>o àÍççóOÚÙGᮑ"zTXtSoftwarexÚ+//×ËÌË.NN,HÕË/J6ØXSÊ\IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/images/moon.png0000644000076500000240000000333512536324427026444 0ustar philstaff00000000000000‰PNG  IHDR=UúÅìÞsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î<ZIDATxœíœYluÇ?ß?G)½iAZ±BR¤rEcƒš´D<^Ä@Db<^|2iLTÔxB"ÞQ’ôYaá´“#*½kמ}&3™…Þ=–.]ôðt²[5,ÞY î* °×a¶WÊÁ­tB®ïïïOs)Ýà0Û+)À—ÒÍÀ)‡ù^Éw&=wîì~àkWù>p'¡Éq¾œKÿæ8ß Î¥Ûç{áiü/ò\K·;Î÷ÂﮥSç{á¨ké!¯)Î¥³ç{áW×ÒÖGûYà?Yé×Ò¹Žó½à¼Òsç{ÁùgºØq~²tGœI>|d2ï*ß#U’¼ 3Lù³½ò!¸=1´]F@z‰Ãl/4c~GÒMMßN–¹ÈöÁGÑ W•.brE>ŒN¸’¾ÙQ®WŽõÑÖ¥úfPb;×'[ÇŒÓ}á¢Ò«Ó ¿r«Òžøº¿Â›ÆŽû·38¶+½˜l9Ó¿/žiMº±±iá›Ç‚ÄSãÆ;;x¦ÍJ¯ò,æùåàÍXoX‘>pàPp¿,‹lHIó6J[•~„`0¨Þ‹÷¦oéýû¯VûͱÈ/Àê”””¸7œù’nhhÌ6ùɰL'p{jê„C5ò[é§½ ÷Mœ˜Ú8\#ÏÒûö¸ƒÒÀæ´´‰q?Çñ$½wïþëÖhþ„;Ó„HZº¾¾¡x‰ðÝ­Aà0°6==­oØ–’’… 7€‰In˜+v¥éI]NXº®noð6ÁùÕõpkffFÒöÚEkkëçKz`ôÔ}@EvvÖË^†•®© Ý i3ÁØ¥;€u99ÙŸø r÷®®®[OøÐ,×Väææø†8•Þ½»f²1Ú éFÿ,È)Âg>^ÉËËí²xtUUõ-’fô¯-w>4Ü8eJžÕAxç¥wíÚ“/é IËýê~ l˜:õ¢fá+-`á‹n³\¬lz€j`SAA~­ËÅ{¢Í,cT.©\Ra¼GoXxäÇè>,55¡bI+%•Iæ¢å“ç†"j(¸LÒlÉÌ–t‰Dº1&CR†¤4ýž1ø'å—x7ZKIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/images/rabbit_brown.png0000644000076500000240000000233512536324427030145 0ustar philstaff00000000000000‰PNG  IHDRÃÐUUsBIT|dˆ pHYs è è/2,7tEXtSoftwarewww.inkscape.org›î<ZIDATH‰¥Ö_lEðïofwïßÞÊ•¶€¥HR[j Ö?!P ‘bÄ„‡š+XMH4'£‰`HL*<F‚„)bM0˜ŠF‚m…šBö¤½»½½Ý H¹½“êïi3¿ù}2;;3;¤”Â¿Åæ§ÃµÕÚ«œc)€:F(M¦ÔM­ñë¯Ã65‡››æj‡–ÌÕªÒ¶\€3@ãläú°x£PéöuÑ=53xÛ¤Gãmf!1&Ïîþ:³Z)% ¡Ì¯qç–ØûõÕÚ[¶# 4N(‰ðt×便[оhM¥®—•°×CAH€ˆÇxú§·þp§u¢6ysÚÒh<_eÕJfˆaªÉÐ3(v}Ùiõ? è;ÒŒ­¬p€`9 åS8£ä¹ßrœ0R"¢ö ææ†j}ëµaaO0#U^_B´ŸïvF&íØlîY:ßh£û’BBOg•5¸ûúÛ×›¯-« µ•Îj´ÙËï%9͜ƚÿ:§œ¿Íg¼€„ZˆðÔª  ÖìÜû‚ˆ|—Ÿ_ÐS ùÛÖÇ.ïYD ­DËc†º¿Íëøs¯ûùùng×óŒñ[©sĉ euáò€w䳎Ì÷÷ÐÖ•áUë–OMoØŠxåôtî…›½‡*[åÌ Ìå\e_èu·}t4µhq^Þ¾Áto%ØŽRi[!cô P(O‰3µû¾IŸdzœ¡1KõÞº#ž †F¼~¶ö1~ö«bŒÐL+m0)‡O_Ì[2O¯ êTôó‹’0« èôÖ\kz²Öxq<±¤F¯›,vÌžÎ_fÁF„ü?Ô? S3//áñ‹;žjȹ`‘ ÿTÓQ¶`׺U³T–é´†Þ=8ÚúËU÷+§Nމ2eËaDÊ'tŽL_=X ³¢ †YQå ‘¼“ÿÑuUÑöÇŸm]nš1-=Ô)˜ePJ@ ¹Ô’W:|Ñþ„Hü|²cíêU«_é"éÙ†tmH‘…ôrH\: )켺k·Äõ‚(üzú€âŒCŠ,„kC Ò³!„Û}g‘½ýg^Í`R抵1 `:×A\¿óÌtÑ™¾5®§F‹¢®cI±; Ñ]œé â¾5[þQt× ^í1§Ìª%¦)ŠK¤Dv´Nú¦oÍõayÜÝÔª˜9/ÓÍGvW×,ÞÏðÝ)È¥‘Mvû‚7’2uª+·7}®1lY8S>…Õn¢ëܧ˜»  F¤F¤Ft2ÿû¢½7½ý½7\7ï뿹Æ<°¢Þh |vqDâuÈŽ\‚”ïý·D_ÛþÑ¥”È©”êX_BDc!Z¡q I[*•–”^Æèʸ))‘Ôþò„Ê$Få‰ñ›Ëß™vÜ_顸ŽIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/images/rabbit_bw.png0000644000076500000240000000333712536324427027431 0ustar philstaff00000000000000‰PNG  IHDRký?sBIT|dˆ pHYs è è/2,7tEXtSoftwarewww.inkscape.org›î<\IDATH‰­–kl\GÇÿ3sç>Öû¸w_öÚñ:ñÚ©Úº­[CÍòˆR+XMÒ¸D TÀÍC(¦FP)D(„ $hɇÄ—HH R¢%ŽÒOH€Bê&HU°`aÇ.YÛØÞìzïc†›»¬í5 #tïÌœó›ÿ™3H)ñ¿V­Œ±ÝŠ¢4¶­µýÐG¶í8³¶âCBÈ댱·TUýs°.ؿѸX,ž‡Â?0 ã“kû>€¥ë:LÓìàœÿÒŒ˜/Ö5­AÎyšÚöÿcèëëÃC?MÓNY¦õ‰UP+5ŒÀW@Ji¯u |!‹×Ç¢±§ ÝØ¬pîI)g !…B¡Óu]lݺÁ`P¿6ríl$ùØâÒâ<˜¦uŒsÞp¼rßàD<ñh8ùjcªé` °T®BUUhš†–ôæ÷fߟÁ ë:Ò-é¶ééé“-Ó²R G}_ÒYë]¨uÝÐRõg,ÓºjÆaEQ, „ Ý’žøâ—¾0ºoßÓ€;55U±‹D"à .‹ï C/*ŠÒè÷Àû¯ŠƒÁP{$9«ëz!¤ÒNÁ–Ìæ‰“ßùvFUUödÏ“¸ð« c“““MMMPU ¥4dšÖ0£l•B ¸*uŸÑTí÷Š¢ôT „€s¾t|ðxŒ1Æ\×…ëº8qâ„%„°¯½s ¶mcyiù?N)åk8Œ²*ºTUëS奴a-}þýx<ó<¶mÃqìÚµ«>›ÍÞ´m#o`æÖÌZQ€ÇôfÀ¤ÜùàÙj8¥”†)¥¯BÌZ†]?ö—žžžÇqP*•`Û6lÛ†ëºèêê ûBÔç—óî÷¾úN2Qÿ¹G~äÕ*Åä!¤¥–‘®kw=Ò(„€ëº« RJ\¹r¥X“VUÆþ:ÞQ(K_ÿÆàHØ<ü@{ÇÇ€BöÔ2 „`ÿ3ƣѨ%„€ã8pžçA)%r¹\Í(1FAhy™¤”¾xÑéììÌtl{à¦eZOÝSŒÖfÛÝýÄ&)%<σŸT®ëVÀŽã°uP…aÅ^AkfK%G¦§oEcØóÙ=Š®iOåí$kAMËœËd2I_¥_}g„ƒÁu ËŽ\î6fggÁH`a~>(„@ǶŽt]0hmiÙ nÕ·µµÝñ¿…•{ž)%„hmm%kíŠÅ"‰$fnMBŠòöõ\ÁK¥B¡ßÔÜ´ÔÐÚK9\ ¬éšàß¿• T×l6kT4~$ª j¥àºe[ƘC)…™Lf¹.P×G¥”¯r]vÞÍße¾£j§¾Z!zzz;?º³Ö¼A)­Ø¶w´Ï0Æ ¥Dÿçû·§[ÒmT1-„¼¸Öpnn.P½žÕŽü°sÎqðàA¡iZM8„ÃáÛCC/ÄüUUÙ§w}*@ï…ð)W«ÎÝÎ%òù¼C)c¬RýÃÂq¸®‹îînºoÿ>`ÝjÉdrúG?þ¡’L&ãÕíRÊQpûmÏó~VÝéyž166ö7Ì9ç”RTo±ºº:ìÝ»½½½« ©¦†éWμlúÐé‘ücb…BÁžŸŸ¹rv:®}ÚÞͪYá'¯þ4°´´”¯WÃÇÍÍÍè¶ž9M+'åömÛ-Ë ûþ­­Kó++¿9wî\ïÐÐЛ¤:kC¡ð¡p(ü‹ò¥Ï¡ª657Ížúî)žH$’¶m£X,¶Ë/EQ ª* À”“““Èår¸ú§«¸qãÆÝööö¿ï~j÷fggß¹téÒo‡‡‡ç}Ö*0¤êSohšÞ§i*å¼üâ0ÍÈâà ƒ‹;vìH—J¥ŠÒ{W&Tµü:B`jj ù|Ñh£££Ï ü|ýê×xú|󸡝™uõ„Œ• 6-¸+(œâK§_ºs䨑…l6Û©( <¯ü¨ðs2•Jñã£Ë###ï Ôâ®W¼A!çÏŸ§‰D‚?ßÕÕu2 &ªÁ…Bï]ÿãL,¤çæÿ¹†.÷îÿò·6txŸ` ¼aÈõë×Ù[—/=ÛœŒœÒu=ä8•R8R8Ko\þ]ÿ…_¿ù®¼§ÿ˜Ûñ-ì&¤þIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/images/star.png0000644000076500000240000000053512536324427026444 0ustar philstaff00000000000000‰PNG  IHDR'€Õ†sRGB®ÎébKGDÿ‡Ì¿ pHYs  šœtIMEÙ $8 q©¯áIDAT(ϵ’ÍJÃ@…¿›NÓ–:Ö¶ŠÐÒ[_Äwå ô Š‹,Œm5 ÇE- éY ÃÌǽ—s.œ\yp†ŠþÂJêS_ñ·Þjý(ÄüþÒÃËøÊØŠrËbYˆºò$>&!áŠ1°æóøã³xÔb@ÂŒRæˆ¾ØØ6= 6m-.I¹Ã˜0"è´v^xeAÄ’Œ‚w>*­m ožèrÍ3¬­8zaekd8î1Vd¦À´j|š*Õ¸6Òý³Î5R¯AòêÊA^åM×Ìÿ¡Œ|H·FX$IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/images/sun.png0000644000076500000240000001773112536324427026306 0ustar philstaff00000000000000‰PNG  IHDRDD8“²sRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEØ'&V˜ŽYIDATxÚì™Ù“%ÇuÞ¿“KUݺ{ß{»§»gEc ‚LR2‹¢°A+¨ÊŽðÃŽð›ìгé?Á?ùÉ/v„e‡EÓrP¤ÄEÖBû2 0 fÁLOïË]êÖ’Ëqõ]f† hR „§û‹“]5QYù›ÌsNfáÿÛ§Ä~ï÷&úˆñŸø9vñ"hw„¿MÆ :ÒG®ÿÕ?ˆ˜A¯¿þ³¼½ =Aâ¯ÁÄß<ˆ€… ¶\T6߇XjÝ@t:ªUðß 8ßÓ|ý²¿Ë~ñ÷:„™ñ^ ÚXZ^ø_—z£-˜g÷ÿô·Dáe@Ÿb ÌÌŸ´ÇN€tE­ü6à5 æVFÙjÅC#ðµ' ö´ÆkŸ¾çJ¡¥VudðDŸb X/Õ‡æ?~.˜± ±Ý ŒT¨æÖè*f„ ÑP•®iä!ø E–5REÀò{ÿC¾ñ)²  sð_žåÔÿˆñ¿)õ?ÏŽ™Æ5|ó)DÔ‹Ú› 9$„a3ÂgßñÉ[Oj_U-ÁÉ 3ãôwwE|*€0OE„#+Ðu<4ŒÀ ̌ӌ‚üŒÂR,D‘iÕF˜„4ŒBÏ5܄ó-b[ÇKðYdü¤£ªÐ TÛ¬hÍ ÕÁ˜Û5£q!ýtÁK+ÀOž˜Nÿ,¬w8±ßÀÚR•ÿìñ„·!ð&¦„…µªûä9o¹F½É‡aÃRÚÆ*ÍP¶Uº rÒ~¯A  Ÿ*Q-׌(B—ªŒÿ3ˆÿÀoý¶DŠ€Å}Œ_y×^]c@ès·€=aÝ_hçÿáYB#_;ÐPû]ˆ•ÆÆ:D±[ÕAN"@v7„³‹áªpÔVà®Ï› lôÃv MYÜ"j-±¥e4B#h»hÐCV#ù§ ð 72mdÎÒ¹ÿvÂ7fºô >Š–÷á¯s©Í&ôâ›Î ï‚Ç»]\8í fÈÝ[±×tjqûtS ÀWë%$ÁN¬±Ç"©q›Ezœ)_‚w«DtÒ‡Jz@Ú“¹8aËki”´Ø¨5ÃEµ¯37¶!”7ÏÖ¸ôGÿ'àw~—ðµ“_ÿa×· B„ÿ§~º´?ÙX~ë€hf"€/ ¢Ãøï2Äo½ÐÁÖQ¾?äÕª»'¨è5Áƒ+l£6©÷r¼@ÒKòiÙö@Ö²·="QL”Õ äŒ< ¦rh@ÅêÑ5r$asKT‰ Ÿ<Ø#µKøg <±J¼¢×ÍùV{‰„4hŠŒßÁCá¸_) €ý¶‡8Ô`VÌÈð½UêÉ ~G¥È÷v|Ñ:'O®»øj&ë;ýêC>¯ )LÌšœÐ‡U@ž»$Ðd˜컥ˆC/Ô*¼ße6%<î“wuhß#Ë@Þ’•,NÔœu=_»‰ÞXôŸª¢‘fþÚò¢Wˆ”v;ivQé•z¬Ä0¥3ð¿2 üÚÓ„~“Íùë”O£þÜå¨(’ =6Êê{F >]E|+Ĉ©ñ1XÙäÖÍ‚kÛm‘Ä_`í˘URaŸ-ò,4cq"Orï¼k‰?Ë^„R¬+2ÊEae,u,öU "W'_l1x•|hØFÉ`ë VƒÀç1ËüXa^`Ü¡'8¿€JëfÒ”íãÕg ¿›’4öô_ È<•ޱݮ·ëj÷Š…Øz\ü¬¤Õ+ ÑÚÎ’~fëh´‘¶Z¢²ÁtB¤ñß56¨Þ'.ä“ÄöºÉq¬¿géaú¤= ÄÝfØyˆd¼@•FB„ð\À»ùpmxã’…Ü-3¨õÜNT7‹* †¯·A©áðˆ¸-ø˜bÁD©Màé4j£—\vdwkZÉ-ñ_ŸIøtP^Wx)}ã=0ß3óï1ú@€ ‚»}í¥Ñ€¸¾¥°T=㗮׬?ÉÑ2dªº¬’*a¢gAnñÖŽóòsýuZ<¼œŸÐÁ¹…êñ_áêã•@€ˆïê|ëYÂg#äï Yÿ‘³þë gèíz£ˆpô ²ËdªŠvà9ì‹´wÌU·ÿDˆ•z×|gë¢üƒÕsjµ‰j µU{ôüÿr3jÖ“ûD@€ÛQ9B‹* "€ü•^œÙ]ÐÀóÑÊìì=[(ÍÖvH'šDÑö6|v°Ÿt÷®Ž ÄKs_#Õ^¨(e&"áfPøC p)òªôðlƒ‹è¿wsaÍ|§ÖÐëäš{½EESA^êú…­ÕÝ·äµÓ{Þ[rÎçº:¸…ÏýÄ!AQ  ‰â~û!ÂÇç T­F¤ú$aø;_Fky!ƒ†ÞÕÏR4þuBê½¥ˆD^wœÖ÷nOŽ®Ÿi¬ýNX9ý m© $f Ĭw¢{ß„qgCäö8Uúl4²õó<¼ñ­ýÖis¾µ]&ç ó:Ð$®ˆUþŽÜ?uÈY­FR¬{·¹Ï¼]ÞCÓf‡õc(Hã¾FŸ¤þ€GÀ]ïQÈKöz!‹Å5fÛñ]¶ÁSðóS5iï\I-6k4ÏýÓ@/­‚äPyé=Hp$"º÷-øNÇìùŽw€·0!Ìî&—¿™VŽ%º'ÃWU9&¢KtØ[‡¯98ó¶;þö6-ªN N!†©C/„;C¿D–™ïS’›‘B‹ÏœB¨=v´ƒ [œuΡ²¾V»–ýé«ãGó«e™úä Rw›€Ø”IšÁ÷B¡nƒ bÀ—ƒá!Áój¡†Ú©¿W¼÷Gg‰rt×è1]çQ«ÅÞç"ZÿKwüjáëþ¤ yl+…´¡Á¿²:$Žá1Àú‚ºÛ§fÇÄfW¢Û\´žb½7Ú»š×Ó÷³åÚÉÏK½ØäHyAN`LÛO÷]2$ÌSL ‚ŸBa?y8EÐm#>v.^}ù¬®Ã7ÚCAyÄÍÜM{Ðz‰¢Íb7Ú ýV†¿¾ßìOs@£îcü/câ7§{¶ñÿ„_‡“ëÕM²Å>/n´¸¾Íi0ØÏßËžtE«'@j¯Ô$ @@šiüPP¥—3‰¹Ÿ·ç²·Û˜·Å‘ ÌAÁáò  ÃýwÒ³$©q}+ãzþšÐÍã,¶[iö üá£DQ (aT‚‘÷P?C¾Ü&ôÃKŸ'þqÅâýÂâÜ›W{¡6y W„HÞðarÂò¸¶wÉžP¹«ê“UȪ© ¢”IžÎUJŠùr™ÇûÆ¢Ùì ”òð΃ØìáÀÒAÔº[ƒ»¹Uß¹6|äD7R¿µ G/ ±»#‚Ü µó d„ MFJ\D.HšF“·Z»–èã€|mÝã|;G¶ÃPÇuˆþç¨n1Ûz‡2>Ã*irx@”»ñþ5×ÂnÑQu@¶$HçS~*uÔ&€Ä¸AbcêyîçÅ‚Á˜¶y¤”w“L%´ƒj)¨CPºé×’-uµ¶0x•BÛ÷ÌiŠlŠ;Ð ‘SVl< D¶êQT0’cúÒ·ìÏ!ÿ¶Ôsç™^ð5ŽjiëR±JÓHáÄ-\9Ü¢ñ¿ý'ª'Ah¯Hþñ) GŒööØWÓë"×#dú!vµ iÕ`|°™õdßudu€T ø> š ©&0 x6p1óÓl3¯Cx6CøÃ3d–óçÁu˜…-½cPú¢ÈR~ß=œòU –举Ë;½ y},.‚ìyèõ!dHøR¡Š~‘¨²*¶,®¿íé«÷Âü,m¾Ô¾é”é³ }*¡C™¦>ÖFWHºT’’Êv®§ŽwÝšL¢ˆ ¤ÛuE 1…Aä¦0•šû)˜;Fñ=ˇç@À .=Á˜.A¶ù¤”md• Yn…ÄrÙ)Ñø- ÓËžÕÉvr±ÇÀ>Œª¦}ðþ×× oüŒBô ó÷¿ê]LqÖ6"©šÞç¶v™¡W`Ò.©QÅÚ¡.¶‹fTd P@“À Àn •Yi.f3b’~ï¤[ú˜Úp7Dé™' à§Pˆ à7'ý“ø$b 2Æ»EÍí(­o‘¯Uœ©žb_í’«$`“ Ϭ= Ê/6 ó:ñ×áé«^}¤*Å7Ybb2þé÷¨o*B¤ &q@ì<àªÌêL6Ôg1öuj"ÂÆäi Å3ˆ;Uf0älVÌbÇÇað &0æÙ.»=#@Ñ,X;PˆðÓ(Rôd°Ž…Ǻ÷ΰ5¶²!´ á‘@øÈS&í,•0~ìïChv¬(<{Mþ\¨eHì‘!Sßõ¹}W@$°2O³ ™!@·‹.’G"Øo¸   ¢ YŠ&âyÚÃáÉ/À|×DŒð#€Ç H`ÖM¥K… }…­~€X1¼0 pQ>’,¶ 9ÉØ@9/þô/ÿÓÇÕé¢u`o¡, M)yZ©*WY ÁÉeïxäuu¢ EÀ Ƽ<§ù~…2Ì ` "5íšäí@‹yÁ:{†ÈÙlA°`šˆ;}‘¸«?ͶEžlÅ ömx}Ixy|¼É*ècÔðªr?Ë,-¿RÂøØ,C49±f¼ø»  hÐd0S1ÎwÀí¾˜§0Ø–bòRóÙ nD*²2a÷÷ЬŽqåÀÒ#‚Þ½ÌOÀ×?´dhz.Ïów·v"Á yo"# —ž$,tÔõã‘çb²ŒÏq)°/%¦œ£P: @,ïªÝÝ4­–bÒ³Wœ¦p0îàY?Þßn³ ¥ÕA|>ÂÖ¹0#Œ‰P «FöÌj®F6‡¿až~–΂?CxzI)M(…ˆ ïN’(ŽkJã kýÍ¢Á)€Ú7{ÁRŠÙ #€bM— 04Àâ®Xa6ÓëS–<»Žðfc*;óÃd„êJ0åÈÅ»Äê2ùÊ&¼JPecÅþXFöQ"žàXÁ¥c˜ÈÀ(ÜÙpº‰æý¿û  ŠoD:n¸Ð9Zb§V[ÍÈ ´P˜™Úªèï_'V “l2(ððÖJ±“³Š5sâ4B¨g…šœÍ"f;ÝÖCoCr`C—~\ꄛʹ —…—f±÷IŠˆ)xŒmÜ+á\„ц·òË+>]¦ôÐâð†Áonz¢Ÿ“v~Øh‘BVÕ6¬i5M<@0H¹±s”†œU*¢­FãÝz¾ìFyQ"t`SJÍE`/A¬'P€pƒOM—Žœ% {&0Ĭ@³ð¬žÆv4àÏ•yØ! ;ÁÍ0¬Ž1Žby€JòwBå4²ÆbuÜ>W9SÛÔŠ‡ø‹§ ów˜èç‡ìuú¢(R¡ xñR¢èa÷è`aÄ9¿Fúð~T«ðáÖƒá›Ã·Ìóªï•ˆ=H9øRBÐ3(¥ÀA©) žÑÑ,~@ÄÃÎ>TÉR<›Ã¾°à#[¶ìH*V ·iaãU7.P²ZÁàø¤F}ô2ž|yÛ2ª"« ê/w‘u+¤][gÌÇ-Ñó}ÎC¾¼H/ÆÚ­þ¤¦¬ìqÖèÒîrBIý¢CòªPI@B®ÂU“:¸‘çŸ:hæ·Ìa~‚b&Ò˜}vðÊ€ô$Kš Œ„sXú4¢ЬöÈf™Ä€½*E¥vÓ¸á‹>7 >wð#Ó'ºÑ•HU/!i¬ šå¾ýîwåP]ÁøAå“¥eúó¯œV ‡~éúžxàmkýÅÀyTrÛxåà^ Ì€1?ä9ŽÈèºØ?ÆØ:¶.’ÆU¸(Ù÷X¬ûˆl 'Ò ©ìÈÛÚ9!)¢ƒ×»…ÑîÛ¾-öL]$,¼ Òg ÍNÏÝôpÇcº)c ˆÊT €óR~æÌ3–µðÖÀg9|šs;âÇÅ>8êæñäèã8嬞PµùëÜì×èÄ[/Y¥^•/IÒíœìù½“,âl€Õ …^ú€üÂý}í6œºëã¶Jæzc‘ÔFòÆ*ãÖ韼|Ý 2¨GH¢Û†)n\f20õÏ6;f#_3ß]t_¦]_%éf¹+ä5Hƒ© Ì7xäÀ yñv–Al)S*› \¤ði7N¡ä¦l;˜=Fnƒ´÷på¥J —ÁÙ;<^Œ9¯Œ¼©W)oüµöß”Ï}û&500âï}U`TUâÆ3¤.œs8÷m×îîž!\Ê”„fvPêǸÇ~ô‚à°hxVM采nìÂwVÈ#fÝÿ€Ô`£w2ø<|8½6|äTÀÌ9€ÃÛ±‚YC²J1æ™›ƒÝl4„7¥Ïpã>\rPªŸðG0vi¢FÍ3­šf E&Hס1 xûÐ¥m+ãQܧ}QkóÁþ%T†cоé¸×ø®JküÆ%2Se©¬ݺ)…Qàåˆ TÿŠ})MãQa›'{§²«{B£ƒز²h&`¿ 8žd Š °ƒÔf¸ñ Æ!|^*Û+/íÀJþy7š,d…:¨Ÿª¾Þ^Æ›°ªÃùÒs0Ùu F·®90ª½5–ßZ÷ôÚ†íi*»ÖÖÍÑÖp¿ºhÑ/ò±{ž‚;'pö˜€p–Îýü O´52£Œ*å“%¿5${ÐÃÆÞÆ¡î¿k>À¶‚ld-‚Œ *¥¢DЩ$ÃÙžÞ•¿Ø&ðÅ>+¤û%ƒ²màŒâ¼Á^g­þV½£ßô™ù2ÌÒ)2ñ2È~Ëúü §ÞïG ‹îž§Ù® óÉ€ºÃEEc#jeÔhCô ¿¸ñ¿¡ µ–ôÙÙÓpñWH÷o@û'9:l ÜÙ8ªSF;îÑÝ+éãÜ7kQÅkÙd]@ÆDT‡k UÉbºÓu¼ƒó!|©ÉIfd™ÊdS¾Õ{0|5Ž:Ubµà} 2Lî§”v`«WIòË8O×ÞîÓ?ßa|Èøf-€´í,GKôËayZÂ=¼Æ…|ÎëÁyRâi®îõP¹uAŽ5³U'¾ã‘Ã]ùâîåÑ2m/ ½Tñ,¹DÒP³ÃgïÁ~Vl€O3²\:ÕU›‹§»Ã¸‘ýO’æ}Ø:8ë®ñ;zÇ$ÇïqÞ\†•Mn a¯àK?HégÓêüËyý)þêH¬8Þ{‡…~R´özï¾Ï}Ú£¼þdV!5¼>íŸðYqs\Œ>¸&—Ì;á’¢.‰•T !@D M˜8WzFÄj·²´Vi3Š£-Qá´n²>ü6`6)_]à¬~œDþÂÚˆ5œµWÅMöhSh7AÃüÚK}‘*ü‚¶ùrÛâ¤B¡è¿$ëÑ)Ô·aãÃ×ä~¾a‡§é`|“!c²•´nO¿/U«µh\SÝÖÚk¶p‘É};Mÿo5×Ö"Çq…¿S]Õ—™žÙÙ›´«E Ž‘{lA®ä!ÆÁà@ˆñcòOò˜7ç7Ä/“„ƒ%à€C0 ±"k£Ëj¥ÕÌŽvgvgzúZÝUu¼ ÈfaM`ýÁâœîê>NŸ¯Ë¤©\d–ÊGEŠƒP ¿K$•Ý‘¶Ã¶`¡ºàÃß:I/Rµª8œLLwPÅ#¶~L:»Ka/B-¢ÑCŠdë/˜j±+ïààaõ5„ÿüÁKĵ:Þ²}(³ì:k‚ª)&ù.ÌùÈ6™$Ïú,J!T÷¬òåöz³g©-òŧá°å6“è’L·–™…°.ìÀ© +ðõ=‘Å9; 2m ü=·pÎu Åog£f6ª^û<}€­ïãëßéÂ5­¦*KßS Á–øîÙœè­G8Ú½ý3‚ b‘WEhëI€¥~äâþ.,v ï[…(gdòDˆÅEøÆcw­éLm¬Ç.[ƒ®Â¶àÔu˜p‡9ØûÛ©›ìä-¸` Ö߆óGà`ò6aÂ]¸ ½zFÀþ{3ÍMo9kµj5Ts+<û´‡o±?ä÷E `¢>\´)†ŽÃ=á7ò&ŽXFNl”\æ^±·.0¼}UøûÈ»\ºLôÜåÖæ-ÊIþòŠÁâf…²~´£ÝÐSCßþ3ˆo Ù —ê†^=>Ëý¡—o ,x_Üðò6»/m+ºþLÁ‚nÚ5Àwa[d“ Š ëê‚jÉÂwGˆ-˜§ÄˆàÛ”UT1Ó.™`êB»Êy7TKƒM'üžãõ ñ\ºIðúŸ5ÿå›PüV§¦‹ï6üö „ïôå}ûî‘r¼ç:¡73Ÿªyë™.·‹¢Ùuï½Ié~á|7[k±›lŠ ÷$(Ý"ŽŸbð‰­W¸Ì)dJ’òáD‘E‚[$hv´,0‹œ[Ø¿EÕÒyô£ÎM>€m=÷_ºƒ‹ï”@ßÿ{Ãü‚‡7@˜^þ?vøÓÈpÿüšpa²¢ezÏ;;ÉèçÎBA·ȼ…^ÅÖKÁa ¨ Ùµ ä:#7CêçÄaå%‡#öÄ®\h4´ÌáµùÛ×dËÅ0”·’dˆ“-¬ì=Áû)€^¼méRʧB¦Ú´Ç±óËh!a«±,o|•‘»[°,)Ä .ÖP4!- a¤Æ+›‹®‚¡éš&`‡Æk&ðm#{K• ôÔ5&±6ØÖèãS§Ûe†ðÏäÒ“ÙÔ@šB+t7GD9‚Qy!=@¥èÙ>ÍÞ‡C~µ†(+,Èç’$Mg¿c’W?Çu0îÛÀ-0¢Â¡5½íVú˧QÈìa!Ii½ø¸*Œ|HÕ5L“¡V nÄ:·Ê £šX»R?ø¦Œ—ƒ×h †Q•\£TÖzó®ÌKÌ3»ìȯ¯{ó‡ŠÃÊɤÞy2:MBfpÎ+‘-"9\É‘M3úÑ;@'ÑH< ð¤Ð–¹Ø3Ǧ¦Ï×¥ci8ôò*ëU_ß×xÆ’±qIÒöã9!Ô„+S¯³G8-`žÛq_² :üáéc߯0_Û+?éò•×<~sY0Ÿ¼¿÷â»ç–]æ÷>‰-ͯOö‚€«@»ï‚yn§<ƒàþ‰±ÿ¼1ÿü?H¶ã¸Ue"þÄwìÏÞ dÒ©%Dëù Ó‰É^û±|È=ä½{ðO ë±%/× N®WæIÜ­,EE0'ÔBê¡Ï˜çö™ÄG‚Ì]HnÃrIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/images/tree_s.png0000644000076500000240000000651612536324427026761 0ustar philstaff00000000000000‰PNG  IHDRFJì"ÿsBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î< ËIDATxœíœyŒ$ÕyÀïÕÕÇLÏ}îÁ,Ë.³3€wCˆÖ6H²É rB:‰%„£Ä†ÄR)q QdÅrX9´Rl9•(±@É&¦8–­8Äa0vÀ,^ö`×»s}V½÷òG÷,³°ËîìTOQ>©ÔªêîªïûÕWßû¾w”0ưY$ýÇ€ÏòÅ“íÖE¶[ B¼»«ûÀ¿¡Ÿm·>›ŒmÛß°ïFyÕŽ]û€/¡ßVÝ6˜ ô~dxä^×u™Ø=É–á­wµS'Ñî„þÎT*õâþ›öw¦Ü4–°AÃ7¿ý fçg~«/êÖ«­„þ!Darr²Óqœ³Ç-iqÓõ7Ñß7ð ðDúéÖ­m`‚Ðß'„øÖÕ{®ÞÕÓÓó®ïÛáÆ»‘íÛ®¸øZú©_[À¡›”òë“×N Œ _ðwB&Æ'¿IñŸAèOn”Žc‚Ðÿ¨mÛ_š¸nÜíîîÁ–°±…µ²a¡QÄ&F…213sÓ¼úêkõr©üiàs…|QµRÏ „~xÄKyŸ¿v—èèèl‚¸40ÊÄD*âØ±c?z¢¨•þåB¾øýVé»!`‚п]qppëÀØ–±Q\ËyÂÀ¬ì—+%Þ<|4š›™Ãc…|±”´Î-„~?ðh¦+}ßÖ«FÉf³MÖºÀ¬ì—J%Μš.ÏO-üy\ÿ¬/žIJ÷–€iùd:—z¨wKwgw_nˆäÀ4Ž)êQ㯞¨—æ+¿WÈ×m”½~ çJú}Àó¶gMöõéÌ$}‰sd~j3ǧª¥Úç€Ï'Zç1ià€Ou åÜá±<×KÎctÌÔÔ'žš­”ªŸþ¢/.'iC«cÌ8ðiiÉ{z»RýÃ}tær—¦U™š™fnnnnanþ¹J¹úOÀ¡B¾Xn…îÕ*u÷·¦3ÞlÇDJ ­ ®ãà9)7@G1µzj½JGLÏMÏ./-ý‰Öú™V6Ñ«eC¼ ô]à¹+®Üvs_÷ºBÒš8Љâ[6½Qº&|/"Ý?ÜwóÈöá³ J «S6nÆÅÖþm2VÑ“AèßPÈ_ÙE72óýÃl.ûðøÞÝ8Ò>oŒ‘ØH#Z¢TD¤cŒ4©Ñ"楗_>=;={]’ùÊ…dCŠÈ ôÌæ2ï¼f !Ä'HKb;NÊÁM;Ø®…´BöLŽåºsÏ7ó¤–J«[%øËŽžìÇÆ&¶áXëj½Êw_|åH¥T¹¥/k•î-ó˜ ôG€çsÛ>1Š”É\ÊqƯݽÃõœZÙ ‘¸Ç¡ß <$mù›;zs݃]ïðdJ‚R¹Äáïÿp©²\ùx!_üûD A0+@€‡ÒÝ^×ÀÎ\Ï;ˆäj¥HÕ9úú æNÏ?üZ!_œNijˆ›³»r[3dré÷‘|9sz†™šR‘ú]ào ùbÔV0ÍŒöàę̂KçÖÌ» leb¢¸Îô[³ÌŸ\:¡•þ ðÅB¾X½\ÛÖ ùâp3p¨|²Îâ‘2ª¶á#@£™ïê¤k´cl[Ïù’Œ1ןîö:œLošLgšLg×vZæ1ËËeægæYš]žª,U&kZÑ* `/p;ðSBða)¥ã¥]¼L KZضmÙØ–Óø´\ËÁ±ËÑ®S#"Ç‘ªS©V)—JÔê5„¦V­½¬bUž¾™DlY‘V'x{€¯¦;Ò£ÃC`$ ´¥b”ÒÄqÜ0>ŠQ*F ‘²‘í"R \×EHÁÌô Úè7¶îxæW^øA«toY„þ>àÙt.=0vÍVll„–e!´@¨FMD ÒXg«ó‘Ê(t3Ц½ ÇNRÝ´ L«zð~x:Õéuo›½hŒ‘ØÈ&(¡%RËsbŠF¥Ñ–F ïæÌ©©:°¿/7€ÖĘ[C^‡›Ý29„c»‰7ױ޸áŽ0ujú8pG!_üŸD áZ)ý»€¯¸Y';¼§iµ¦B0¶{;ÃÛ·ÿ„þ-I_#̓ЗAèx*3à¥'zvë{4Fdžٲs¤[Hñlú¿”乓( ö¥-nÌíÈíMmxæ[)—9ùÆiJóåCÀoòÅ×Ú&ýNàaº=–Õ±=…ã:m+ ”‰Y˜ZdêÍÙ8®«¿)ä‹3&ý€û…Í/Øýd½Adz±8?„Ó¨™b¦–(MW–ëKÑ—€'o¬uvÄ% B?ÜÜcöZ£ »W`Ƀ¬MF™æÿˆ©Wë”§kTg¢YUÑO4!}­/ƳùR#¤Æ€I"^˜Ä’ïÖ‰t%–'6½À.À.ÉsÖô(¡¿ xø(‚Q«Ü^ ¯§Qïl©Vj,žY¦|¦Z×±ùàÑB¾øÒZ ^VðmÎÁ½ø0p=àKW [ž…“²qÓ™®4鎶|w@n˜ÒR‰åù¥¹²©,Öþ øà …|ñGk6ðrÁ\Ö¨f¿0â ÒÙÞ hP±Á(1àØ6Žëพëáº.žãá¹)Rn¢lr„A …A£F …¢1å£Z¯R¯×˜>=ÍÒB‰¨Çsx x6‰n‡$‹ÈiaÄ}Ò‘ƒãÝ8¶ ‘„X"b@ L,@ŒUÖ”K–t ­5Zib¥B …€³ÃOg„®ã`¹6ŽÓð´¨(ä‹…mIÆcšcÒÿ(,q``"G*›z×£#´‘€X"•Õ¨°%òÜ‚ò"Õµ6 ÏQ&FÅBi©SÓsÀ …|ñuÓ”$2ß)ôŒgIwzk ¾g+j%AI„‘XF6‹Å¥cbÕˆ/Z¨Æ­¥Aj´TËpòè)fÞš{ø`³»µ½`ÎB±ÅÜU)R9¯m­Òñ×ÞbqjùEÕöÔzÁ\v¥„þV `uˆ¹I§ÓZ¯.ë’‘]ƒtôgö_BËzÏwY`‚ÐÏßu†¹5{µt/^C•õSÀïòÅÃë„þ~à£~".AO¼Jù÷˜•ýêLÚI¥u•'?-ä‹ÿ½&0Aèø}íÄ·×û–Q½¤õNåß`”iäDõM| L]ü{пŒÝ„‘~øÈ«]Wé›#êªbK K´·NTX}zbâ9s›ž±n Bÿ;À/¯ÎÄOÿÍõ>t+;f~ô$*[;×ÎñŽ÷±Ç¬úÿÊ1]30ë`Íy±ˆ¬ç€¿þÙÒÑ{ÀŠí{úŽmwêÙ2•¡yH·t­Ô¦ãhL&‚ª´íȺ¸çĘfžò«ÀýÀÎ(W&ZF¤ø¿ç1ež•ˆ9bihL xŒF·…9o«Ôœ±ð“ÀÄ=ÇôEXÞ×`¢RL´¨Q³`* „Àãïͼ”k›¾|xº/¾|1[×Ûíp oº]H®· toolbox.x) { //Don't drop it in the toolbox draggedItem.destroy(); draggedItem = null; } else { draggedItem.created = true; draggedItem = null; } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/PaletteItem.qml0000644000076500000240000000441212536324426026445 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import "itemCreation.js" as Code Image { id: paletteItem property string componentFile property string image source: image MouseArea { anchors.fill: parent onPressed: Code.startDrag(mouse); onPositionChanged: Code.continueDrag(mouse); onReleased: Code.endDrag(mouse); } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/PerspectiveItem.qml0000644000076500000240000000467012536324426027346 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Image { id: rootItem property bool created: false property string image property double scaledBottom: y + (height + height*scale) / 2 property bool onLand: scaledBottom > window.height / 2 source: image opacity: onLand ? 1 : 0.25 scale: Math.max((y + height - 250) * 0.01, 0.3) smooth: true onCreatedChanged: { if (created && !onLand) rootItem.destroy(); else z = scaledBottom; } onYChanged: z = scaledBottom; } PyQt-x11-gpl-4.11.4/examples/declarative/toys/dynamicscene/Sun.qml0000644000076500000240000000534112536324426024777 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Image { id: sun property bool created: false property string image: "../images/sun.png" source: image // once item is created, start moving offscreen NumberAnimation on y { to: window.height / 2 running: created onRunningChanged: { if (running) duration = (window.height - sun.y) * 10; else state = "OffScreen" } } states: State { name: "OffScreen" StateChangeScript { script: { sun.created = false; sun.destroy() } } } onCreatedChanged: { if (created) { sun.z = 1; // above the sky but below the ground layer window.activeSuns++; } else { window.activeSuns--; } } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/README0000644000076500000240000000142312536324426021732 0ustar philstaff00000000000000These pure QML examples demonstrate some of what can be easily done using just a few QML files. The example launcher provided with PyQt can be used to explore each of the examples in this directory. They can also be viewed directly with the QML viewer utility, without requiring compilation. Documentation for these examples can be found via the Tutorial and Examples link in the main PyQt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/declarative/toys/tic-tac-toe/0000755000076500000240000000000012536324427023164 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/tic-tac-toe/content/0000755000076500000240000000000012536324427024636 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/tic-tac-toe/content/Button.qml0000644000076500000240000000527112536324427026631 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Rectangle { id: container property string text property bool pressed: false signal clicked width: buttonLabel.width + 20; height: buttonLabel.height + 6 border { width: 1; color: Qt.darker(container.color) } radius: 8 color: "lightgray" smooth: true gradient: Gradient { GradientStop { position: 0.0 color: container.pressed ? "darkgray" : "white" } GradientStop { position: 1.0 color: container.color } } MouseArea { anchors.fill: parent onClicked: container.clicked() } Text { id: buttonLabel anchors.centerIn: container text: container.text font.pixelSize: 14 } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/tic-tac-toe/content/pics/0000755000076500000240000000000012536324427025574 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/tic-tac-toe/content/pics/board.png0000644000076500000240000002774212536324427027405 0ustar philstaff00000000000000‰PNG  IHDR¤¤~LQ5sRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÚ#(tŸäñ"tEXtCommentCreated with GIMP on a Mac‡¨wC IDATxœíÝml[×}ÇñE‰¤(R¦lE²%1¶,Ûí(QœG7 Úb)ÚΖbX÷µ l@‹aØönC_ X_+†{èº °­h‡Äš¡k$Í#‰˲]YvìÐR,E²dS¢žH‰Ò^dÒìXϱxÅË{¿Ÿ7k׿¤`Å?ÞsÏùŸÀÒÒÒ’(±ŠR7€D \‚@¸p à À$€+HW ®@ \@¸p à À$€+HW ®@ \@¸p à À$€+HW ®@ \@¸p à •¥n€w¤Ói¥R)õôôèÊ•+’¤öövuuu)™Lª¾¾¾ÄÂÍ$E‘N§õòË/ëèÑ£êééQ*•’$%“IuuuéÈ‘#zúé§ %¬‰@°aËaô½ï}O§OŸ¾åK¥RJ¥Rúàƒ$‰Pšx‡`ÃR©”^zé¥ÛÂèf§OŸÖK/½´òä|OHeеz¸É‰'ôî»ï¬{÷ÝwuâÄ uuumBW(7Rb­nÓÛÛ«ááá‚uÃÃÃêííÝ„ŽPޤ2ÃZ=Üh||Ü‘Zø ïÊ kõp£±±1Gjá/R™±]«6C$q¤þB •ÖêáF,Ù¡¤2ÿøp£††Gjá/R™a­ntãÆ Gjá/R™a­n”H$©…¿He†%;¸ÑÔÔ”#µð©Ì°V7 ‡ÃŽÔÂ_¤2ÃZ=Ü(›Í:R !Ê kõ¼Š@*3¬ÕÃX²C1He†ñáF,Ù¡¤2ÿøp£X,æH-ü…@°aG@1He†%;¸ÇP R™aÉnÄqTfX«‡qÅ@ •™‰‰ ãZ“k*€bà8Š@*3---Ƶ¡PÈÁN€ÿÇ»MTf‚Á qm__Ÿƒÿw›(©Ì<þøãƵ@ÀÁN ¸¤2ÓÜÜl\{ãÆ ¥Ói»>Æ’Š@*3ÝÝÝÆµ‹‹‹J¥RÎ5ü–ìP R™‰ÇãVõ¯½öš37á8Š@*3±XL0®çwìø£ƒP RJ&“ƵçÏŸw®àÿ0:Å@ •!›'¤«W¯:Ø ð1F¡¤2´ÿ~ãÚ¹¹9;>Æè T†:;;k'''ÙiÇ1:Å@ •!›wH’$8ŽsH(© ÅãqE£QãúÿüÏÿt°€sH(© …B!:tȸ~``ÀÁn 8¤2ÕØØh\ûÎ;ïhzzÚÁnàw,Ù¡¤2õä“O×ÎÎÎò"ŽbÉÅ@ •)›!«™LF/^t°ø£ƒP R™êêêRMMQíââ¢>øà‡;‚Ÿ1:Å@ •©ÚÚZ«a_ýuår9;‚Ÿ1:Å@ •©x<®}ûöן={V™LÆÁŽàgŒB1He*XMlèïïg®Ãè TÆ~øaUVVÕ¦Ói½ýöÛw¿btŠ@*c=ôª««ëßxã ---9ØüŠsH(©Œ%“I«e»_üâ¼G‚#8‡„b ÊX}}½žyæãúL&£ÉÉI;€;G •¹C‡©¢ÂìqzzZ¯¿þºÃÁªªª©…¿HeîÀª¯¯7®?}ú´ƒÝÀ¯X²C1He.‹iëÖ­ÆõÿöoÿÆ UÍæ›Zø TæjjjôÛ¿ýÛÆõ333l»EÑMLL8R !< ««Ë¸6Nëøñãv?²Y6¶©…¿HðÈ#¨®®Î¨viiI'Nœp¸#øÍµk׌kÙ鉵HÇ­Öåô£)N;Øü&×¶µµ9Ø Êä±XLO=õ”qýÈȈR©”s Áw._¾l\kzLþÃo†G<ôÐCƵ333zíµ×œk¾“Ïçk»»»ìåŒ@òˆÇÜøÙ|>¯ÿùŸÿq¸#ø‰ÍQ›å=ø äwÝu—vîÜi\òäIÞ#¡h€qmkk«ƒ œHÇ­–íFGGy„¢XZZ²š¾‹ÅìåŒ@òˆ@  xÀ¸>›Ír?Š"“ÉhvvÖ¸¾©©ÉÁnPÎ$éìì4>”Ïç $…í¹"nŒÅZ$±½éüùóv¿°YúD"ŠÇãÎ5ƒ²F yH<×ÁƒëÏœ9Ã{$lØÌÌŒqm4U(r°”3ÉCB¡>ó™Ï×ÏÏÏHذK—.×rõÖC yÌÝwß­p8lT›Ífõ /8ܼ.—Ë×ÖÖÖ:Ø Êä1»wï¶Z¶ëïïw°øÁ¹sçŒkm&:À$‰ÅbJ&“ÆõÇ×ÐÐs ÁóæææŒk÷îÝë`'(w’ÇÔÔÔè¹çž³úÞ#a#FGGkìåŽ@ò ÛO¡?ûÙÏê~`3½›-ßXäAÉdR?ü°qýéÓ§ì^g³sŽ]vXäQ6OIo¿ý6ƒV”äQÏ<óŒqíØØï‘pÇLØÖÂ$²!$‰ ûpÇ2™Œq-›°É£’ɤÕTåwÞyÇÁnàe6›˜ôõH …´ÿ~ãú³gÏjiiÉÁŽàU}}}Ƶ555v‚rG yØŒk?üðC«¥àN:t¨Ô-ÀÅ${ðÁks¹œõ½6€$]¿~ݸ¶¥¥ÅÁNPî$ëììTUU•Qíôô´zzzî^d3ŸÎfÎ"ü‡@ò°d2iu2ž­ß°e3é[bRÖG yX<W45®ÿéOªééi;‚ר¾wŒÅbu/ <, é0®ÑÔÔ”ƒÁkÆÇÇKÝ<„@ò¸;v×öõõéÌ™3v¯1®­®®v°xäqÏ<óŒ"‘ˆQíüü¼î^bóDÍØ B y\2™´:Iÿæ›o:Ø ¼Ææ ¯QäqÉdR÷Þ{¯q=;í`Ãf SPä6WQôôôpŒ½÷Þ{Ƶ•••v/ |à‹_ü¢qíøø8OI0f3½ûî»ïv°xä¶§ãß~ûm‡:×\½zÕ¸vnnÎÁNà’$“IÝu×]ÆõLÕÕÕ×rõ !|  YMþ¾té’ƒÝÀK&&&Œkgffì^@ ùÄ=÷Üc\{îÜ9&6 èlž¦àO’OØ\E1??ÏÝH02::j\k3WþD ùDkk«‚Á Qíää¤Nž<épG𛻚››ì^@ ùÄîÝ»¹ŠEg³í»­­ÍÁNà’OÄb1ãú£Gr Êf³Æµõõõv/ |¢¦¦F?ü°qýØØPÍœD®/G!’´¶¶×öõõéâÅ‹vƒr7==m5fŠÛbQÃ¥|ä«_ýª~øÃ˜Ïf³\EuÙ>AÛ| òš\.§L&£T*¥ .¨¯¯O©TJ333š˜˜P4Õøø¸tãÆ % MMM)¯,‹†Ãae2UTTèüùó ƒÊd2ª®®V6›U0T>Ÿ×ÒÒ’€&''×ì§¶¶v¥®²²R ‡Ãš™™QuuµfggF5??¯êêjÅãq=öØcúÍßüMuww;ö´K ùH2™´pùÎ;ïè«_ýªƒ¡œÙ>A—ûõåÓÓÓšššÒàà 2™Œ†††”N§500 ááaÍÌÌèÚµk’´“““ŠD"šžžvltÒ,­¯VËÿo:Öðð°tìØ1ýîïþ®¾õ­o9J’$“I8p@Ç7ª?wîœÃ¡œÙ ¬¼‰D"š˜˜P>ŸwâÞzë-?~\>úhQ¿/ä3=ôU}oo/I·?œ9sÆøkOž“L&•H$Œ×Ã_yå}å+_q¸+8i#ïN566¶ál&:À¿$Ÿ©¯¯WWW—Ž;fTÏU›ky9ëòåËšÕG}¤H$¢ÉÉIÍÎÎÞ²£ë“Û…ÇÇÇFuõêU¥ÓiÍÎÎ*ŸÏkaaËñPTÝÝÝêîî.ú÷%|èæõüBz{{555Uö[vMl$ >yvdµ÷ ËgF–ÏzÌÌÌð’e©³³Ó‘¥|ɇ>¬ý×5ª]\\T&“qe -Ÿ ¹xñ¢ÕÛÛ««W¯jlllewà'.¿/U,oæ}ÊÕ—¿üe}ë[ßR2™,ú÷&|¨µµUFëú“““êííuüê›Wœ 6ßô[¿õ[zòÉ'ÕÝÝíÈqɇ8 x-..*¯ìL$Ú¶m›:::‡ÕÚÚªh4ª;w*‹q¿’He`­íÍW¯^Õ7444¤‘‘‘R· Y~In¢¦¦F/¾ø¢öìÙsËKvà“x‡ä7ï€éïï×ÀÀ€Ž?®±±1:uJ‹‹‹šœœd 6¤XïNž}öY½øâ‹F?sß¾}úõ¯íä?<‚'¤M°ÞVè+W®Húø²³ÑÑÑw ·ƒª­­U6›UMMr¹œªªªnÙÑõÉí“““jiiQUU•öîÝ«úúzmÛ¶M‰Dâ¶-Àe³£rëÖ­þyð©ˆÒé´R©”Þzë-9sF©TJétZcccÓüü<‡2Ë€MÜ<:èæ³#7?i,¿‘¤-[¶hnnNÍÍꨯ |§–oF5‡ì^B ZkIíÆêééÑâ⢮_¿Î’Z‰$ ƒAµ··+ ) )‰(ŸÏßrÐMçBüÂé)ðé>9ÂæÍ7ß\ÙHðÑG•º=Ï[mççBܧ¯¯Ï¸–?˜òu }òÝN*•ÒO~òŽŽZý ‡ÕE£Ñ•w;wîÔüü¼ÚÚÚ6åÜãСC¥neÂW´üŽçµ×^Ó;ï¼£³gÏêÃ?T.—ãÝŽ@  ]»v©½½}åðaee¥>ýéO«¹¹Y]]],ùÄõë×k[ZZì^âØ¶ïå¿ü{zzVv’µ··«««KÉdRõõõNüXI·/»ýò—¿Ô•+WtâÄ e³YÇ~®×ÕÖÖêÂ… jjj*u+(1›ëȇ††x#EBJ§Ó:sæŒ^xá½ùæ›ú裔N§%ImmmºÿþûuäÈ=ýôÓ ¥µFâ «¿¿_ šœœ,Ö?–'ÔÔÔ( ©¥¥EêèèPee¥¾óï}}&“ÑñãÇõôÓO;Ü)ÜÌvâ`ª¨”N§õÃþP?øÁÔ××§ùùù[þ÷ (•JI’Q(-?íœ÷¹5—Ô†‡‡õOÿôO+Ö³´´¤³gÏH>g{Uˆ/w„;-Òé´~ò“Ÿè»ßýnÁûszzzôãÿX;wîÔž={n‰síÚ5MMMivvV|ðO;7©««S0T2™T4U}}½¶oß®ƒêÑGµ^ÇãŠD"Æõ/¿ü²þò/ÿòNZ‡G0¦ N)Z ]¼xQ/¾ø¢ñen¯¼òŠ^yå•býxO©®®V,ÓÖ­[ÕÙÙ©­[·ê‘GQKK‹Ÿßð÷]~ÚYZZÒý÷߯-[¶èÉ'ŸdÊt‘<ÿüózî¹çŒj·nÝÊuë>5>>®ÆÆFãúÁÁAíØ±ÃÁŽà%E_àmiiÑïüÎïè _øÂ-W=ôõõihhH¹\nÕ¹iª¨¨P{{»Âá°b±˜¹Œm“Ø\ÀáXÿZžCiª¶¶Ö™FàI޽q¬¯¯WWW—ºººœú(¢ƒ׿óyÇúÔ… Œk«««Ëê<Jõ-H²¿"Àö“2¼Áæ&åh4juo@ AÒÇ3ÇêêêŒëm>)Ã;l>ˆlٲŹFàIVؼ²ù¤ ï°9ÒÁ;Ø"°Âf÷KvþtíÚ5ãÚp8ì`'ð" +lÎ"¹åð3Ü‹'$Ø"°Âæ­Í'exÇùóçk9[Vð‰…ƒAãÚýû÷;Ø ¼ˆ@ ›Çljð§ÉÉIãZž`‹@ŠC‡•º¸\$1®Ýµk—ƒÀ‹$¬¸“ñAð\.§ééiãúh4ê`7ð" +îd|ü#“ÉhnnθÞë[¢ø$¬`|Ö322bUÏ`UØ"°‚ñAXO¿q-ƒUq'$ÜÂæ,R¹\Wâ0®Çã V…5 ·hjj2®µ9$‰òwêÔ)ãÚúúz;WH¸ÅÎ;k¹5Ö_²Ù¬qmkk«ƒÀ«$Ü¢££Ã¸–wHþb³dg^À2 ·èîî6®Íçóv·©ªª2®mkks°x„[Ø,µŒ[”Dy»|ù²qmEµÀ¿5¸ÅîÝ»­ê§¦¦êncóDló¤ ,#p‹X,fUæÌ‡:ÛØ< 3Xw‚@Â-jjj”H$Œëìnb³ gó;,#°!'Nœ(u Ø$6Kv‹‹‹v¯"p›³H Xõ¥¥%ãZ›k*€enc³þ?44ä`'p›Q@LjÀ p›­[·×ÎÏÏ;Ø ÜÄæ¶X›TÀ2 ·±™ÒüÑGY-åÀ$Ü  ·±¹XíÚµk¼GòÛÐ\=;A á6ûöí3®ÍårVK9(O¶ 9‡„;A á6Æs˦§§ÕÓÓãpG(5Λa3H¸M2™´Zrv°¸Í²lCCƒƒÀË$Ü&[ÝûÆo8Ø Ü`||ܸvaaÁÁNàen …¬†¬r …÷ÙüWVV:Ø ¼Œ@ªl>åÚ\܆ò”ËåŒk„;E aUíííÆµ6Ë{(O6;)m&:7#°*›a–÷MLL×VWW;Ø ¼Œ@ªºººŒkÓé´ƒÀ úûûkëêêì^F aUmmmƵSSSŒò8›wHÛ·ow°x„UíٳǸvff†ñAg3Õ}ffÆÁNàeVe;“ñAÞV[[k\Ëm±¸SVÇ­^N3>ÈÛnܸáH-p3 « …BŒ ›§žp§$¬‰ñAXf3íÛv28°Œ@švîÜi\Ëø o³ùpÂAiÜ) kš››3®½zõªƒ Ôl~¸ÖwŠ@šlvÚqÒÛlÎ!q9î„5Ùœ'±-ƒòcHljÀ"°&žz°Ìf¢ûÖ­[ì^F aMÑhÔ¸vttÔÁNPj6¼;::ì^F aMÍÍÍÆµ×¯_w°”šÍ$vÙáNHX“Í€U.eó¶H$b\kó{ÜŒ@šêëëk³Ù¬ƒ Ô¸ ›@šZZZŒkƒÁ ƒ Ôl>Û¨nF aM6³ì¨é]6[¾%»ßàfÖÔÚÚZêà¶w]Åb1‡:×HX“í_,¶Ÿ¤QÆÇÇKÝ|‚@šjjj¬ê¹5Ö›FFFŒkÙЀ P4©TªÔ-À6×Ip A a]6[¿/\¸à`'(›-ßœGÃFHXWUU•qm__Ÿƒ T*++kyBÂFHXWcc£q-KvÞds=ýì쬃Àë$¬Ëfr³Íu(6ËpœAÂFHX—Í”gîDò¦sçÎ×r•=6‚@ºlîD²¹®åÃæúò½{÷:Ø ¼Ž@ºlEr€Ò›lîºb—6‚@º©Eù¨¨0ÿk‚wHØ ë²¹˜'$o²¹Z„kH°Öµ}ûvãZÞ!Ø ë²9{õêU;A©Øvå`,6‚@ºöìÙc\›N§ì¥Â’6 „uÙ̲³ÙŒòas w!a#$¬kÛ¶mƵŠô&›mߎÆFHXW"‘(u (1›÷B6›`€O"°®¦¦&ãÚL&cuwÊÃåË—kmÎ,ŸÄoÖeH·Æz‘ÍRlww·ƒÀë$¬++ ×Û|šFy˜žž6®å,6‚@ºB¡jkkë¹Ç{l&¾·¶¶:Ø ¼Ž@BA6gKì¥ËåŒkÙö PÍ#½ÇæâEÛwŽÀÍ$´´´d\ûþûï;Ø ÜŽcØ µµµ×^»vÍÁN°Ùl·ñsý6‚@BA¡PȸvllÌÁN°Ùl·ñÛü®ŸD ¡ ›¿dl^€Ãýl¶ñÛVC ¡ H$b\Ë'do±ÙÆo³ùX „‚¸~À¿l¶ñóg"P×ø—MÈð„„"PÍ•6WÀýl¶ñÛVC ¡ ›+¸ÂÚ[l¶ñÛVC ¡ ÊÊJãÚK—.9Ø 6›Í6~6´`£$tøðaãÚùùy;Áf³ÙÆO a£$ÔÜÜl\Ë}HÞb26Ç€ÕH(¨««Ë¸Öf'ÜÏæÆâ⢃À$Äv^ÿ²¹’œIߨ( 10ӿΟ?o\Ë;$l”ùö)‡¤Ói¥R)8qB½½½×ØØ˜"‘ˆÆÇÇÕÐР7n(‘HhjjJápxå°ÞòŽÅbÔ:\kãðáÃE롪ªJÙlVÕÕÕš™™QKK‹"‘ˆî½÷^…B!íÚµKÑhTÉdRµµµŠÇãV7œb}6óéöïßï`'ðƒ’R:ÖË/¿¬—^zIï¾û®†‡‡KÙŠäÍ7ß,ÙÏ®®®V<W}}½Z[[•ÍfÕÖÖ¦ÊÊJ>|XÍÍÍêêê"¼ MNN×ò„„ ,•èxõr}ï{ßÓéÓ§KÑ IŠF£ŠÇã …BÚ¹s§æççÕÞÞ®p8¬®®.µµµiÏž=jjjZ©ó‹ÆÆFÕþüç?×oüÆo8ܼ¬dOH©TJG%ŒPr333+²Î¹Á(IDAT»%Io½õÖº_SYY©††IÒ¾}û´¸¸¨x<®ùùy…B!% mß¾]Tkk«vïÞ­X,¦ššgÿaŠÌf×d4u°øAÉ©§§G===¥úñÀ†,,,¬ŒÕ±¯ÓÐР|>¯P(¤`0¨D"¡ÆÆF…Ãa577«¦¦F‡RKK‹<¨x<^Òµ6×O$“Iç/”,®\¹¢T*Uª”Ä7nùï###·ÕüÃ?üÃ-ÿ}ïÞ½ª¯¯Wcc£vìØ¡èÑGU2™T}}½c½Ú®æs<Uò]vÖ·ÖÖëp8¬ºº:UWWkÿþýŠÇãúìg?[´¶S78€*Y µ··+™Lò”Ü¡l6»rÝÇ•+W$IÿñÿqKÍò®ÃÆÆFuvvjëÖ­zä‘GŒ–mvØIbÇ"6¬dÔÕÕ¥®®. pÐìì¬fgg5::ª_ÿú×’¤ïÿû’>^b«¨¨Ð¾}ûÔÒÒ¢|P»wï^ÙQxñâEãŸS]]íHÿð¶}¸E8VMM"‘ˆ†††Œ¾fË–-ÆÛõ”,$Æ^ …ôöÛo;¾ÑÞVÒ@’T.µ?ýéOÿL{ì1GF) éÂ… ª¬¬Ôää¤"‘ˆ¦§§577wç¿„(š`0¸H÷ß¿jkkõä“O2!FJH(6lö¯T.—S&“ÑÈȈúûû500 S§N)›Íj``@UUUºté’æçç•Éd¸"£Djjj …´uëVÝu×] ª««ÓÄÄ„¶oß®ŠŠ uww+ªµµU±XLMMMJ$¾›áWŒ¸9îÄâ⢦¦¦499©žž ë7ÞЂ‡588¨t:­©©)BÌ%ÖšqóÓ÷â⢚šš\wÈ…H0âµ@ºS™LFSSSêííÕÐÐNœ8±òt 577§\.§\.§+W®(ŸÏó²ß…¢Ñ¨b±ØÊÞ™™% MNNjûöíÌ1, F¤;7==­L&£?üP™LFCCCJ§ÓÐÐÐfggWÆõõõiiiIׯ_çV—Y>Ó‡Âë F¤Íµ¼Ùç­·ÞRoo¯._¾¬ññq]½zuÕqCp—H$¢p8¬ùùyÕÖÖª²²R»víÒÜÜœšššVÝè³¼Ô …´ÿ~£û¾¦§§555¥ÁÁAe2+ŸÏ+ŸÏkiiIUUUª¨¨Xy·ünέC~ $!Üaµw_¯¾úª&''uöìYÍÍÍ)“ÉX E…?444èþàôØcéK_ú’+C‰@‚©|¬¶ëðøñãÓ©S§”Ïç•ÉdXô©d2©ï|ç;® % F$oX~ŸuöìY êøñãúè£tþüykzzze ÞÕÑÑ¡üàzüñÇKÝÊ-$!¼mµ§ª¿þë¿¶ºë åcÛ¶múæ7¿©¿ú«¿*u+· `„@òŸ¦¦¦•iâðžûï¿_'Ož,u·à>$« ƒÆµó7£gŸ}V'OžÔðð°Ž;¦‰‰ õööjnnNSSSÊårv / ¬Êæ>¤ÚÚZ577ë©§ž’$}ãßôÿK©TJ.\P__ŸR©”fff”N§FuíÚ5…Ãa]¾|Yù|^ÓÓÓ ÊårLÈpH0Ô¶mÛJÝÆm$«Z\kb×®]«þÿC¡‰„‰„º»»ï¸—õ&dTTT(›Í*(+“ɨ¢¢B}}}’¤ëׯ+ŸÏßñÏö¢¦¦&ýÞïý^©Û¸ `U6O'ÑhÔÁN>¾=«¹¹Y’ôõ¯Ýú{¬7„whhHµµµW4õôÃÊÊJ88¨;v8ØMixio жmÛtß}÷éoÿöoµwïÞR·t F$YZZREE…qýÄÄ„jkkìÈý–Ã+NëÊ•+šššÒû￯l6«÷Þ{O’VžÄnôÉ¥ÆóçÏ+ ®Ü÷533c4y£¡¡A ª¬¬\Y¢¬¬¬\ùßÚÚÚôÜsÏépeI Hþ299©ºº:ãúÅÅE.ÝÆ™à6;ì$»,ÀZ$·I¥RƵÕÕÕÎ5_!ÜÆæå<„b!ÜæÒ¥KƵ cE±Hnc3æÇï»ëP<€Ûœ;wθ–)( ÀmæææŒkÝz¦å‡@BA¦óÌà6×Npó,Š…@BASSS¥n›ÌfJC<w°ø „‚KÝ6™ÍÎ9vÙ¡X$”ÉdŒk쀗H(h||ܸvaaÁÁN°YÂá°#µÀz$d³­wyº0ÊKv( ÙgR¼!‹9R ¬‡@BA\'á?6Ë´6µÀz$TUUe\Ë’7ØlNa# Š…@BA6sÍØÔà 7nÜp¤X„‚"‘ˆq-;®¼!‘H8R ¬‡@BAƵ6÷èÀ½l¦s0ÉÅB ¡ ›ë¸¬Í8‡„R PÐØØ˜qíì쬃`³ØLûžŸŸw°ø „¢bЦ7Øld …Bv?!PÐûï¿o\Ë™%o° $65 X$tíÚ5ãÚ¶¶6;Áf0®Ýºu«ƒÀO$dó‰åoƵv?!PïüÇæÊ X$d26‡há^6Û÷ì~B ¡ ®"ð›íû“““v?!PWøO45®­««s°ø „‚¸ŠÀlžtmÑë!PWøO04®µ¹žX„‚¸ŠÀ¸%¥@ ¡ ®"Àz˜Îb!PWøÍÍ¿,Ù¡X$ÄUþcsó¯ÍÁi`= â*ÿ±ù`Áah „‚ä?6c‡‡‡ì~B ¡ ®"ð›{­ì~B ¡ ®"ð›­ÜçÎs°ø „‚¸ŠÀöîÝk\ˤ „‚¸ŠÀl–áFGGì~B ¡ ®"ð›wHü5‚âà7 ÍÌÌ8R ÷âÊ”„‚lžš››ì€—H(Èæ©Çæ¸Ó9P  ²9$™L&k›†%;”„¢ª­­-u (n F)H(*›ÝYp/n F)HX—í]76‡há^ÜŒR °.Åú·£$¬krr²Ô- ¸%¥@ a]===ƵÁ`ÐÁN°™¸%¥@ a]6wÝð.Á;8‡„R °®ŸÿüçÆµ6ànœCB)HX×µk׌k:ä`'¼Ž@šr¹œÞ}÷]ãú––»ÁfbÉ¥@ aM™LÆjlÐ3Ï<ã`7ØL,Ù¡$¬)•JYÕ3ÇÎ;„R °¦ .×ÖÖÖHÂè ”„5={Ö¸6‰8Ø 6£ƒP ÖtþüyãÚ¦¦&;ÁfctJ@šlÅîܹÓÁN°Ù„R °ª©©)õ÷÷×wtt8Ø 6£ƒP V•Éd´°°`\ßÝÝí`7ØlœCB)HXUoo¯ñ¤ï`0¨ÖÖV‡;ÂfâJ@ª†††Œkãñ¸vïÞí`7ü€@ª^ýuãÚ@ ÀáHaÉ¥@ aU6OH÷ÝwŸjjjì›%;”„Û¤Ói«‹ù8é=ŒB)H¸ÍÅ‹­¶ò~úÓŸv°”£ƒP n‘ËåtôèQ«e˜¶¶6;B)0:¥@ á™LFÇŽÓââ¢Q}{{»ºººî ›ÑA( ·8sæŒNŸ>m\¿gÏFÇx£ƒP nqôèQãKù‚Á ¾ð…/(;Ü6£ƒP V¤R)½ð Æõ555zâ‰'ì ¥À9$”„/¿ü²Õû€ûî»Owß}·ƒ¡T8‡„R éヰßýîw­¾æþèT__ïPGü†@‚$éW¿ú•>üðCãú;vèñÇw°#”Kv( J§Óúû¿ÿ{«¯ù³?û3µ´´8ÔJ%;”9sF§N2®ß²e‹ž~úi;B©1:¥@ ù\:Ö÷¿ÿ}ã­Þ’ôì³Ï*™L:×JŽmß(ÉçΜ9£_þò—ZZZ2ª¯®®Ö‘#Gî ¥f³{’–(ÉÇÒé´žþyŽŽͽ÷Þ«8ØÜÀf÷$;-Q,’]¼xQ¯¾úªòù¼Q}ee¥>÷¹Ï1™Ážzê)=òÈ#ëyä=õÔS›Ðü€@ò©\.§ýèGºzõªñ×lß¾]GŽQ(r°3¸A2™Ôž={ ÖíÙ³‡÷‰(ɧ>üðCýìg?Ó‚Q}0Ôg?ûYíÞ½ÛáÎàÉdRßþö·õµ¯}mÍš¯}íkúö·¿M ¡h*KÝ6_:Öüc]ºtÉøk¶mÛ¦¯ýë¼/ð‘åPúÌg>£^xA¯½öš$é‰'žÐþáê‰'ž ŒPT%ÓíUðŒžžýéŸþéÊ_0…ýþïÿ¾þîïþŽ@à–ì|¨§§G.\0®¯®®Ö7¾ñ €£$ºr劆††Œj€î»ï>¶zp„uUWWë›ßü&OGG ùP{{»ÚÛÛ ÖUTTèðáÃLõ°)$êêêÒ}÷ÝW°®££CþçÎTo›‚@ò¡d2©#Gލ««k͚ݻwëÿøuèСMì €ŸqɇêëëW®8zô¨zzz”J¥$}V]]]:r䈞~úiÞØ4œCò±t:­T*µj %“IÂÀ¦"®À;$€+HW ®@ \@¸p à À$€+HW ®@ \@¸p à À$€+HW ®@ \@¸p à À$€+HW ®@ \@¸p…ÿiS Å}¦Ô‹IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/tic-tac-toe/content/pics/o.png0000644000076500000240000000267612536324427026553 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞsRGB®Îé pHYs  šœtIMEÙ 4U¤…·tEXtCommentCreated with GIMPW+IDATxÚí›]hUÇSuK“T'(1Æj¶öIc‘ * ж}(iûP?À[ðÁO¨/Ѝ ‚/‚V°"¢¨m+bµ(ú b•’`iÑbãGÚh°jb4i>š6ׇù×¥Ù™3;³;!{``Ivï½çÏ=÷>Æsαe \jÔ¨P`AËÙiOàyžä 8¸˜Ôç¿€¥ÀÏÀð)pèwÎL}}Ió€…¯•ÒW-R²Þ0ÔKÀ[ιOæRür` Ð ,êz°Ó97˜I<Ï«®în–^ÂëüØ WÍÀ80ztlFL#;çb=2çuÀn`˜\JÏŒ="ßQüÿAà=`+à›ôˆ©| ðˆœVšŠ[ŸŸ€û- ÄU~‡ÌÏeðùØ R~;0–QågK/Ж(:ófxç ŸSÀs@K"Hù[DZÜ@ž?ÎÄýÀ‹À5QîeÐ< .ò7¿j¨ÖµŒ‹RçŠç ¥ÂžçmvÌnx_¨Ï9w"f0µ hÕŸ „p+°IÇÇ"Ç€ÍιžÈG@ ÙoDûÙ(×O¼x4™ó#àzà7# KMù"NA:-¼jœ ;må‹|ÓÛ"=‚ôZ¡„9¥^Ãà]•@kì³m¥ˆP¸Òàd®VRÏÈñF•&`Ë,9*ÀJãb^ÐnTL”3|øF»EÎRÆ*ÀÆõ|\‰$æ@8 #Ái¶yž×X…ó߬¶PwmpIú/”„Œ´` °V©RÊ×”æó†Ÿ (¥šê”/°$Ž·a,S—Q¢{¹î®¨)1_)$K |¶–¿C›\Šl$(Ñ[”ŸÖXêÄ+Vœ–™½¢ÜB}Âʯ÷·®kp¡_yþ8‰ÙDä¨2F›P ,„è®k:LÐtoá°îå>íа¸ Y¬£Ôª°ûÒ˜óŒ÷»ÿW­2˜]AšZ:¬µ¾ œîXîððuŒâëìÐ Jþ¾^®kc _VYP¶Ú"W6¤þ‡py±½@)-FLcß+•òg‘ÓØ=þÄIÍŒ“O+ ì> Bá?‰ ó6ôþLpƒ¯ jðØ­”j©Ùë°RJ-ÀÛŽK\’Šñ€ÿJ©BMÜ ”°<ôø£ô§Gè|ËÇ;øèþ>)m%-‘Ÿ–kÍð« ´¸€¶Ëë4…Ÿâ`Ø„™¦Ë«šÆÊÚÛ<=J'°( Æ)¹àK¹U¶c޼ zçÏKµ×fLŠõÞ¡~w øF ±Íh0zSk•½òäËnAQÂï i÷ ÷JKìtc è’–ÔXc8$ÏpÓëBÞ ç-æöÇìÖÿYÄcÀ)‹éýVgùÚ³ø±ŠÅ=žV«¬Q…ª–=ö—·ÂT"eóÕ˜RªA‚’wuò{I=~’f‰Þ´š¥Ë¸óÒ0<Ξ–nÕ.›Û¨l?›^æÉO¤ßç.ð †âS`ݯ²ïë|dddddÔóx …—7gîgIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/toys/tic-tac-toe/content/tic-tac-toe.js0000644000076500000240000000676512536324427027323 0ustar philstaff00000000000000function winner(board) { for (var i=0; i<3; ++i) { if (board.children[i].state != "" && board.children[i].state == board.children[i+3].state && board.children[i].state == board.children[i+6].state) return true if (board.children[i*3].state != "" && board.children[i*3].state == board.children[i*3+1].state && board.children[i*3].state == board.children[i*3+2].state) return true } if (board.children[0].state != "" && board.children[0].state == board.children[4].state != "" && board.children[0].state == board.children[8].state != "") return true if (board.children[2].state != "" && board.children[2].state == board.children[4].state != "" && board.children[2].state == board.children[6].state != "") return true return false } function restartGame() { game.running = true for (var i=0; i<9; ++i) board.children[i].state = "" } function makeMove(pos, player) { board.children[pos].state = player if (winner(board)) { gameFinished(player + " wins") return true } else { return false } } function canPlayAtPos(pos) { return board.children[pos].state == "" } function computerTurn() { var r = Math.random(); if (r < game.difficulty) smartAI(); else randomAI(); } function smartAI() { function boardCopy(a) { var ret = new Object; ret.children = new Array(9); for (var i = 0; i<9; i++) { ret.children[i] = new Object; ret.children[i].state = a.children[i].state; } return ret; } for (var i=0; i<9; i++) { var simpleBoard = boardCopy(board); if (canPlayAtPos(i)) { simpleBoard.children[i].state = "O"; if (winner(simpleBoard)) { makeMove(i, "O") return } } } for (var i=0; i<9; i++) { var simpleBoard = boardCopy(board); if (canPlayAtPos(i)) { simpleBoard.children[i].state = "X"; if (winner(simpleBoard)) { makeMove(i, "O") return } } } function thwart(a,b,c) { //If they are at a, try b or c if (board.children[a].state == "X") { if (canPlayAtPos(b)) { makeMove(b, "O") return true } else if (canPlayAtPos(c)) { makeMove(c, "O") return true } } return false; } if (thwart(4,0,2)) return; if (thwart(0,4,3)) return; if (thwart(2,4,1)) return; if (thwart(6,4,7)) return; if (thwart(8,4,5)) return; if (thwart(1,4,2)) return; if (thwart(3,4,0)) return; if (thwart(5,4,8)) return; if (thwart(7,4,6)) return; for (var i =0; i<9; i++) { if (canPlayAtPos(i)) { makeMove(i, "O") return } } restartGame(); } function randomAI() { var unfilledPosns = new Array(); for (var i=0; i<9; ++i) { if (canPlayAtPos(i)) unfilledPosns.push(i); } if (unfilledPosns.length == 0) { restartGame(); } else { var choice = unfilledPosns[Math.floor(Math.random() * unfilledPosns.length)]; makeMove(choice, "O"); } } function gameFinished(message) { messageDisplay.text = message messageDisplay.visible = true game.running = false } PyQt-x11-gpl-4.11.4/examples/declarative/toys/tic-tac-toe/content/TicTac.qml0000644000076500000240000000446712536324427026533 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Item { signal clicked states: [ State { name: "X"; PropertyChanges { target: image; source: "pics/x.png" } }, State { name: "O"; PropertyChanges { target: image; source: "pics/o.png" } } ] Image { id: image anchors.centerIn: parent } MouseArea { anchors.fill: parent onClicked: parent.clicked() } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml0000644000076500000240000000757512536324427026026 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import "content" import "content/tic-tac-toe.js" as Logic Rectangle { id: game property bool running: true property real difficulty: 1.0 //chance it will actually think width: display.width; height: display.height + 10 Image { id: boardImage source: "content/pics/board.png" } Column { id: display Grid { id: board width: boardImage.width; height: boardImage.height columns: 3 Repeater { model: 9 TicTac { width: board.width/3 height: board.height/3 onClicked: { if (game.running && Logic.canPlayAtPos(index)) { if (!Logic.makeMove(index, "X")) Logic.computerTurn(); } } } } } Row { spacing: 4 anchors.horizontalCenter: parent.horizontalCenter Button { text: "Hard" pressed: game.difficulty == 1.0 onClicked: { game.difficulty = 1.0 } } Button { text: "Moderate" pressed: game.difficulty == 0.8 onClicked: { game.difficulty = 0.8 } } Button { text: "Easy" pressed: game.difficulty == 0.2 onClicked: { game.difficulty = 0.2 } } } } Text { id: messageDisplay anchors.centerIn: parent color: "blue" style: Text.Outline; styleColor: "white" font.pixelSize: 50; font.bold: true visible: false Timer { running: messageDisplay.visible onTriggered: { messageDisplay.visible = false; Logic.restartGame(); } } } } PyQt-x11-gpl-4.11.4/examples/declarative/toys/tvtennis/0000755000076500000240000000000012536324427022725 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/toys/tvtennis/tvtennis.qml0000644000076500000240000001032512536324427025313 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Rectangle { id: page width: 640; height: 480 color: "Black" // Make a ball to bounce Rectangle { id: ball // Add a property for the target y coordinate property variant direction : "right" x: 20; width: 20; height: 20; z: 1 color: "Lime" // Move the ball to the right and back to the left repeatedly SequentialAnimation on x { loops: Animation.Infinite NumberAnimation { to: page.width - 40; duration: 2000 } PropertyAction { target: ball; property: "direction"; value: "left" } NumberAnimation { to: 20; duration: 2000 } PropertyAction { target: ball; property: "direction"; value: "right" } } // Make y move with a velocity of 200 Behavior on y { SpringAnimation{ velocity: 200; } } Component.onCompleted: y = page.height-10; // start the ball motion // Detect the ball hitting the top or bottom of the view and bounce it onYChanged: { if (y <= 0) { y = page.height - 20; } else if (y >= page.height - 20) { y = 0; } } } // Place bats to the left and right of the view, following the y // coordinates of the ball. Rectangle { id: leftBat color: "Lime" x: 2; width: 20; height: 90 y: ball.direction == 'left' ? ball.y - 45 : page.height/2 -45; Behavior on y { SpringAnimation{ velocity: 300 } } } Rectangle { id: rightBat color: "Lime" x: page.width - 22; width: 20; height: 90 y: ball.direction == 'right' ? ball.y - 45 : page.height/2 -45; Behavior on y { SpringAnimation{ velocity: 300 } } } // The rest, to make it look realistic, if neither ever scores... Rectangle { color: "Lime"; x: page.width/2-80; y: 0; width: 40; height: 60 } Rectangle { color: "Black"; x: page.width/2-70; y: 10; width: 20; height: 40 } Rectangle { color: "Lime"; x: page.width/2+40; y: 0; width: 40; height: 60 } Rectangle { color: "Black"; x: page.width/2+50; y: 10; width: 20; height: 40 } Repeater { model: page.height / 20 Rectangle { color: "Lime"; x: page.width/2-5; y: index * 20; width: 10; height: 10 } } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/0000755000076500000240000000000012536324427022655 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/0000755000076500000240000000000012536324427025167 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/content/0000755000076500000240000000000012536324427026641 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/content/background.png0000644000076500000240000010604412536324427031473 0ustar philstaff00000000000000‰PNG  IHDRÒÒ?™žBsBIT|dˆ pHYs Ñ ÑÂ+ßãtEXtSoftwarewww.inkscape.org›î< IDATxœì]w|eúÿÎÌöìnú¦WB !1” Mš‘"-‚‚(ˆŠ?ËYî”õŽ=õÎó8åPÏ‚€Òm b€P„Jh! é½m6›íu~„fggC¢€åx?Ÿ÷3eggæ-ßù>ïó>Ïó4MãFº‘n¤Ÿ–ÈŸûn¤é·D?÷ ü/&‚ ˆ«y?ú†Xñ³'âF\ýtµòSÓ  ]ûtH?1õ4„ý«‘hû¾ÿp£á¯jº¤>¦+‡àmùûBÇW+ñR\>û°~Zº¤^¤ÀCÀ4Ç¿ÿý ê/—Ë“)ŠêODAJ‚ ”T—öUØc iÚÀÀHÓ´9¦iÚDÓ´ÁívkNçE£ÑXVPPPþÁá žžÀÄÿýò…7:EŸÓ ùH>ÀÊÇvåÊ•QaaaÅbq EQÉ$I&ÑßívGšL&¢«« ƒ‹‡‡v»v»‡.— 4MÃår¢(H$H¥RH$H$ˆÅb­D"B¡€L&ƒT*¥ ‚ht»Ý].×E§ÓyÑjµ–544œ[ºti7¼Ô+`ÝUïÒ qR/ÁC ^}õÕÄÄÄqb±xÿœ\.g%“É ‘H “É Üét0›Íù§OŸÎÿ׿þÕv©, ¸ø¸ª>§ÿy õ<Ë–-óOMM#•JÇ“$9ަétƒÁ@tvvB§Ó¡««‹ 8=‰ (>Pz (_Ç$IB¡P@¡P@.—C"‘ЊG¾ÑhÌ?tèÐÁ>úHnи/•— 0à¨z•þg$ /ð<ûì³Êììì\‰D2ÀX³ÙLFtuuÁh4Âétz€‡ ˜Þ€‰(‚ ú_ìÔÓµ—DAH¥RˆD"—Ëå:h2™6}ýõ×;?ûì3fœÕkPÝTwúŸÒ؇@dddP/¼ðÂx¹\>Ÿ$É™‹Å_¹7bŽ…Ä;†•~,H®t,´ÏˆE™Ç—:nã²eËö7559qTB"à @qÒÿ|ˆ1"|ðAz``à|‘Ht·ËåŠ2›Í0›Í¬" /™Ï<ŒbÀÏÏr¹EA$yd±XÌnÀét²ÏæØívÃf³Áb±Àf³Án·÷¦ÞŠy6EQ iºÑf³m®««Û´dÉ’btƒ‰Ÿ¥Üà¥ÿEPý¦Ô€XÚ´iÓ4¹\¾„ ˆ›N'l6Ûy…Ä7~f®‘Éd쀟—( Úétj;;;Ûššš µµµnN'7™L¤Á`F‘Éd™L&‰Éd’šÍf)ù¥ÿÚüüül …®T*~~~.¥RéR©Tqtt´D£Ñ(e2™Êf³V«•VoÖ“˜HQÀétvttüëá‡Þ…Ë€ráKy¤ß,@Ä(##ƒZºtél©TúEQ H¸àá‰/¾1jj…B¥R •J—ËÕÒÔÔÔP]]í¨¨¨ ÊËËUUU‹% €øZ•U&“!**ʧOHH°ÆÅÅÑ j…B¡6™L°Z­°Z­p»Ý}I’MÓp:çu:Ý/¼ðÂζ¶6'ºÁ$ÄR€ú_ÓoH=hüøñ’G}tžT*]"‰ú‹D"vî†! ©T ™L¹\·Û­mhh¨(,,´äçç«êëëûP]ÿR 'Fƒ¬¬,kvv¶qÀ€ ™L¦°Z­ìü€^¹‚€Ûí†Ýn/×étÿ~íµ×>+//·á2KqÅ¿ÿ9@ýf€ÔƒŽ|àd“'O¾_*•.–J¥qr¹Á""±X ™L‘Hdinn>WXXhÊÏÏ÷«¬¬Lx‹ú£STT²²²,ÙÙÙ¦ôôtš¦ÅV«N§Ó H=êÒdr^¯óÝwßý¤  À ߀òCýVõ›D\-¹qãÆÛ ÅJ??¿x•J‚ zã˜}Ì œîèè8óÝwß5íܹ3Újµ¦ãÚÙË]·$•J1|øpzÒ¤I¦ÔÔT?‡ÃA8N¯ù,_û`³Ù`µZkŸòÉ'w㲸×# ~‹`úU©'1î?ÿùO|ddä¿ Å4F±X|Eð8N¸ÝÝím±XjŽ;V²qãFUKKË`²Ÿò®$I²Ö A°sFÌ>s¯Ä´“êœ1/bÞ½¯)((ãÇwNœ8Ѫ`Æ‚½±¶p»Ý0™L0™Lß=zôOÿþ÷¿«Ð (>¨~ÓâÞ¯H>Xˆœ:uªtáÂ…O+ŠçÃÂÂWd ÆîÍápX/^¼xhÆ 8}út€¾¾ˆ+1_r.€˜ýKeòy_¦¸€ñ&¡y­Þ¦ÄÄDÜvÛmÖ[o½ULQå‹¡ø¢ŸÕj…Á`°tvvþë•W^ùÏÅ‹­¸ (®bâ7ÉN¿: õÀBäºuëÆ«Õê·BCC“cbb@’¤X¸ r¹\°Z­¸¤Õ2>}:ÿ­·ÞRëtº¨Þ¾Ó‘D"H’„H$òÐxq÷™Ìg#†‰¸ìÄO ¸¸½_Mψ®=%•J…éÓ§ÓÓ§OwI¥R—| c_X^]]½äü㌆_uΔë×ÕyéW$_,´|ùòàŒŒŒ7ÕjõœþýûC­V³ Ê&“ z½&“IìØ±C«W¯5ÙèÅØ‡ vò”$. øs2 `¸ïOÛ>|+!PqAÃ_|å~`zê …S¦L¡sssJ¥RÌ-«/v²Ûíèìì„Á`رeË–çvìØÑ†ß8;ýj€ÄËBkÖ¬¹9((蓤¤¤Ø„„fÎC‰L&ZZZ ×ëÛ;qý™zé„>0v».—‹=ÇøK õ ‘H„iÓ¦aÞ¼yn…BAÊd²•6› ­­­ÎÖÖÖ¿ýßÿýßjüÙé $‘ˆåË—gff~25## …"Qw@$þ—¶µµUUU¨­­-xùå—;êëë'¢‡1EQ,€ø™$Æ6M,ƒ$IPñÇGB☴Z-k^ÄMf³™îI¬ãÇòÙ¹'&â:ò0‚cª,Z´ˆ1bÁX”ûš{¢i­­­èèèØ³iÓ¦'¾üòK-.³“Þ¶|~]`úÅÉ—(÷ÑGÝôI\\\lBB‚‡XEQÛY JJJÐØØØ´~ýú_ýõ¡¾ž'‰×/oTæDÜó=)z£¹#]]]عs'k‹èèhŒ74Mc÷îݨ¬¬„H$Bÿþý1~üxÍ?÷dÈ—•˜c!ï]‡Ã›Í§ÓéUoƒ Â#<⊌Œ¤”J%ûQTGGZZZŠ‹‹Y¾|ù1³“‡Qì¯L¿8 õ$Ê}úé§P©T/%''‹ƒ‚‚<:-wP_VV†ÒÒRûÉ“'¿ýûßÿe³Ùûzã¶ÍC*•z‰ÏHÌy†‰¸c#!ñÎñµu[·nELL †  $I¢´´ûöíý÷Þ Ø°a&OžŒ˜˜AåL\åL|ÑŽËBÌ9H ˆCXƼˆIb±³fÍÂìÙ³ÝjµšT*•>-Ð- MMM¯<úè£o£›‘¸ÌP¿JQï ÒˆRRRD/¿üò[%%%A&“±†Ì– Øívœ>}•••%+V¬(.//Ÿ @*ô,&7‚X,fÄ=ÏÐ8‰«|R*ø“ÊËË1mÚ4ÔÕÕ!22*U·É^EE €°°0Ð4˜˜466"%%¥G ±”˜Çí|±‘Ýn‡X,ö8g³Ù‡Ÿ}öòóóÉßÿþ÷ôÀ‰€€$éÑ>A@¡P _¿~"‰Dòâš5kú=õÔSÏ æcé„§¨G^Ú‚ â— ¦_ |‡æÍ›'Ÿ={öº   ™ñññìl:ÿË®ÕjqöìYº¨¨è›¥K—F¹\®YBÏá2—}¸ÀòÅJ ˆš››¡R©'8·Ò 1Él6C$aË–-ˆŠŠÂW_}…!C†`òäÉhmmEVV¤Òîï¿¿?Ün7är¹ ò;Ÿ$$ê1ìd4!—Ë=€Ä+1îR©”ÝgÜL˜:á2Tss3–.]JÜ{x9s&‚‚‚ P(Ûë’X~ïêÕ«ƒW¬Xñ»òòr#§í¹âÞ¯L¿ ù=ùä“ãÆÛ|Kdd$x5 A¨¨¨@EE…aÆ _lß¾}*€þ3D"ë Ê€„$3àáŒ?Vb²N§ÃÎ;‡¦¦&¤¥¥aâĉ>t©|>­˜q“ËåÂý÷ßF‹Å‚åË—câĉp8P«ÕH$lY˜wåZ;p‰©'î-wÛÚÚŠO?ýQQQHKKCTT«µãf§Ó ®µ8Sg6›Í HŒñ«Ëåºuëpþüy<õÔStxx8èáNÏ”=66EM^¶lÙ¦wß}÷þÇëÐ-æq#ÞÑè_*˜~v ùÑK/½™žžþypppfhh¨WC§Ó‰òòrÔÖÖ–,]º´¼®®îð&U)Ê3´¯€{Ì_Ü£iÕÕÕÈÊÊEQ8pà†Š &Àf³áßÿþ7²²²Ð¯_?wcÆk—ÊØ£º;,, n·›ŒD"Ahh(š››!•Ja2™X UWWc„ >$¤çƒ*::O?ý4Ο?¢¢"ìÝ»7Ýt† ÂŽV’H$^Ìļã%£UX c¹\.œ8q‹/&ž~úiddd@£Ñ@"‘x´!EQˆ‰‰X,¾ùw¿ûÝöÐÐÐ;wîl¸Ô†>õKÓÏ $ ¢þýï'ÅÅÅ}À¼¹`2™L¨¬¬¤‹ŠŠ¾}ñÅc].×4þý¹ a@"—Ë=èRtð0§¨¨%%%HNN†H$bE¡ÀÀ@Èår¨T*Œ;DZZšóøÿÐ-n¦¤¤   ·ß~;, ´Z-RRRЯ_?TWWcäÈ‘0hjjBzz:ë’Î÷œ¯ +n·‰ÙÙÙHMMŇ~±X …B§Ó ‰Dâ¡p`ÀÀËjµz||, ;†‹Å,¸ÚÛÛñâ‹/âž{îAnn.ÂÂÂàçççõQŒŒŒ„X,N›3gÎÿüqÓExMú‹ÓÏ$_ zûí·³"""¾ õóócAÄ­x½^ÊÊJû§Ÿ~ºõ³Ï>›@ͽ7WŒc@Ĉq\‘Ž 0nÖëõزe † †G}jµšU*DDD µµR©EaüøñXºt);n2ýᇿóæÍÃ믿Ž3gΠ±±&L€T*Åĉñ·¿ý ÍÍͨªªÂm·Ý†n[Z¾ù³íÉ”ˆ;–ÒétX³f Œ1cÆÀét"//ÅÅÅ Å-·Ü•Jå(0L]Y­V<üØŒ¸·~ýz”••áø¢££Á¸³pÛô’…~ EQÛÔjõ‚U«VÁ3ª£{ÿE‚ég’/½ñÆý#""¾ô÷÷•J¥‚š9½^ºº:ÓþóŸûöí» €„{o>H˜c~àD!1éÀСCì1/”ššŠmÛ¶±×J¥R¨ÕjÔÔÔ ##Ãc\Äßö¤~ýúá7Þ@MM ÀŒ cccñÆo ´´HLLdÿ#d‡Ç=Ïl…\/t:Þ~ûmŒ?#GŽ„ËåÂçŸކ†Lœ8µµµØ¾};|ðA–ÁÏÞÜ135Àh17÷‚‚¬X±Ï?ÿ<âããàÕ¶AAAHKK v»ÝŸtvvÎZ¿~ýEx†IûÅ‚éºÉˆ–-[™ð¥ŸŸ_¨H$òˆóÆìwvv¢¡¡¡ã•W^Ùsúôé»Á±P (ŠÓ¸îàB€â‘„&^GC‡A©T¢¢¢]]]˜4iƇíÛ·£  cÇŽI’ˆŒŒ„Ãá`­+„XÈ×–S/P«ÕÈÈð¶\ò÷÷ǰaüLv|‡ÏNŒXÌäúúz¼ù曘9s&† ·ÛÒÒRœ>}‹/F`` ÒÓÓQPPš¦!—Ëát:=ê‡+Êñ§$ L&“ÇÔ€ÅbÁ… ð—¿üþóŸÑ¿„„„€ QO­V#%%%Èív¯×jµwíÚµ«žW¿H0]W ùÑ£>™™¹S&“Å33û\q„ èt:4777¼ð …555sÀ‘ŸÅb1är¹HqÅe$. qç˜IÞáÇãèÑ£ÈÌÌÄc=—Ë…U«VÁßß³gÏÆ¦M› ©TŠŠŠ Üÿý¬ÕBo€ÔÓ>Øívèt:„……±ç„D9î¾/ q÷+++ñÖ[oaÁ‚¸é¦›Ø1Ó7ß|ƒ™3g"22.— ---ºþÜn7û¡`ÀÄ7[,P³Ùì1Ym±XP[[‹¥K—âOúˆððp¶¾˜¶FÿþýcæÍ›·¶¥¥eî‰'´¼®ô‹Óu’/M™2E‘““³E,g Íq@tñ™gž©Òjµ¹œ{z‰n\бWÎUs ÙÉýå/aY‘¢(Ü|óÍhiiÁ¬Y³ ×ë±víZ(•J<òÈ#ˆˆˆq÷/^¼ˆþýûsëÄg}™ÍfTUU!<<\ðz~ŸaÆ’ÌoBc¦ÎÎN¼óÎ;xä‘G––ƲUkk+ÊËËñÈ#°upþüyddd@&“Áåry0ŽÓédÒ“Q/×úƒksÈ(!žþy 2ÑÑѬév»qÉ9õ‰'žøàÅ_¼¯®®ÎÀ«¢_˜~Ž1k±/zðÁ׈D¢[„fÁ ‚€Á`@}}ý™§žzÊ`6›'27aD9.qÁ#*¡IWn'`ØÈ×|P}}=RSSAQ¦NŠiÓ¦ùÔÌyøÒ1£äžó•`øºŽ‰˜tæÌ„„„ ::Ú pLÆÊ•+½Î×××#11‘eN‡àÑGe5xL}0@‰D°Ûí‚vˆÜ1ßLˆÉf³+V¬ÀÿøGÜrË-ˆõ`%·ÛØØX8ŽìeË–½õä“OþÎb±°Å‚g =7ïøº§ë²3‡X»9Ôßÿþ÷7)ŠšéË´å’ÿÐŧžzÊh6›G1÷‰D¬…´\.‡R©„ŸŸüüü T*½Žýüü<®g2\ü­H$BQQvìØüã ÄÔ©S 2ùvuBÚ;f¿½½°X,Ø·o‚À'Ÿ|سgjjj@Ó4k9½qãF¼¼<Øl6466¢­­ 4MÃjµ‚ 477#""BðùBvoÜ,“ÉÐÑÑ—Ë’$±víZ 8iiiæQ\•7óqb2·®™­J¥‚J¥bÛD©T²Aý \.þùÏâøñãhllôÒ2Ò4~ýú!..î¶7Þxãet›{IÐ#PŒî12ÉÉ|É纥k$ˆ˜Lmذá÷"‘hcTÉÏ6›  Ï<óLµÙlÉÜO*•²À`‚3r÷™ß¸`â6³ü _å͵·ãÄd2$IäææbÑ¢E¿uuuÁb±x±(Ã]]] {öìaµR:(++ƒD"AUU‚` J¹"ŽH$‚Ãá`Ù©²²R©eeeèììDcc#8’$áp8XÕý¥zÌB.ð™™™ˆ‰‰ÁŠ+°téRX,Üwß}^.%üºú8qÁÄ„iæ¶…J¥b÷ýüüÿûßqúôi´´´xM @jj*âããç¾þúëÃL"\ó‘þYÀtME;^X6Z½zõÍr¹|…Õje“?o2™:^xá…ãZ­v&sîË*|–aöùªm.PøÛŒ%ŸErrr|N¦Úl6côèÑì9­V‹¶¶6$&&bÛ¶mx衇ÐÙÙ‰ÎÎNh4´µµ!88ç΃D"aÁè—r»Ý¬Û¶L&cÁ)‰ Óé‘‘ÚÚZh4k¶mÛ†  ¢¢ááá ô ¢ÛH¶¶¶ º]:žþy\¼xV«ÉÉÉïÁÔ $“i3þ1_4ÊBö‡‹¯¾ú*V¬X‘H„ÐÐPI’HOO‡ÉdZüØczçwŽÁ[¼c¬Å ü ã¥ë"ÚC¿O>ùdHxxø:³Ù,2°t»Ý0›Í¦¿ýíoß×ÔÔÌ`nÀWTã3—…øã&®ª›«±ã7¾Ð¾ØÆLÎÀÙ³gqêÔ)H¥R?~Œç¨ÅbAtt4¡ÑhÐÚÚŠÀÀ@èõz1cÃÆ(\ÑÎn·ƒ™ScÀ®×ë„ÖÖV„……¡©© QQQ°Z­¬¨vìØ1Èd2œ:u gÏžeYž ”””€¦iEQHMMEff&;Ù̯þ„+“ùcT&ö9·-¸lÄe*¦ F#^}õU”––¢³³ÓË…^$aàÀ¢‘#G®:th(<™‰‚§˜wÝéšI@¤#PcÆŒyÏjµÆØívA‘În·;Þ~ûí/Μ93ûÒÿØÊæo™†âK¥R466¢££ÃÃ0•o„z¥˜ÌVHûlÛþýûgãÒd+_çŽwø ???$‰7âûï¿ÇÖ­[ññÇÃétzÍu±Ï•Djjj@ŠŠŠpñâEdddàüùó†Ãá€ÙlFbb"*++‘€êêjDFF¢±±‘ 1å²Z­P*•0™LJ¥ŒÄí¤R)ŒF#üüü`µZY ³Ù ¹\Žööv„††¢ººñññ(//Grr2L&\.‚‚‚PTT„¬¬,444 ** A ²²²Ç±TOõÃUmó56› eee¬ý·­„$î8¶¦¦o½õ.^¼»ÝîÕGâãã;öÕW_}Ý@’â0^ºê@ÈU«VÝ,—Ë—ët:A'4’$qöìÙ=[¶l¹—Ì~øâ²P–Ëå8{ö,‚‚‚°dÉ<ûì³J¥Xµjl6k½p¥¯®Ãáð  3gΠººÙÙÙ8~ü8üüüX„´´4#99eeeˆEmm-är9fü™BBBÐÕÕ…øøx„„¨ÕjÄÇÇ#,,Œe$µZÄÄDP…¸¸8tuu!$$z½ju·‰!3Ž©­­Ell,;_U\\Œ@¯×Ãáp 44”Tyy9JJJ@ª««û(î9®¸'‘HPZZŠ·Þz åååøïÿ‹ÎÎNV´æ‚JhËäsçÎáóÏ?GEE…—MÓ8p ÿðÐCe_ê+|å…ëÌL×rŒÄŽ‹žxâ‰àˆˆˆÛÛÛÅ|-#ÿvuu•­X±"— Pù â3_4`dt€X,†R©Äc=†øøx¬[·N°cð¿4MãË/¿dÇííí,UVVbÔ¨Qøá‡š¦ÑÖÖ†ôôtœ? @qq1¢¢¢ÐÔÔÄ~¡F#²²²`6›¡ÑhÐÑÑéÓ§C£Ñ`È! Err24 bbb Ñh‡„„h4$$$ ,, C† F£ÁôéÓ¡P(0yòdtuuA­VÃh42+ï±c§ââb¤§§ãôéÓÈÊÊ‚Á``Yâ‡~À¨Q£PYY‰Ó§O³³¾˜˜[OBõÇ€éüùó˜6m,X€;ï¼û÷ï÷§^ DLþâ‹/pâÄ Ô××{Y±‹ÅbdffŠFýÏAƒ…BX‹w]ÇKWH¾ÆE£G^©×ëcÌf³ˆ.5œñÅ_,w¹\i€·8ÇU2p+ž1‹|Éd2 4………hoog;ò½÷Þ‹ÚÚZœ8qB°3p; EQ:t(Ž;‚ ðý÷ߣ®®cÇŽE~~> ‹ÑØØˆaÃ†áØ±cHJJByy9ÙÀ+™™™0™L˜3güüü0|øp(•JŒ9ÒÃìÇWbƾã³$‰0hÐ øùùaΜ90:t(ºººtGLeuâÄ 2555P©TÆ0nÜ8TWWãàÁƒ¬ièßí IDAT6’Ô÷ßð¥€Ù±cV¬X²²2ö#Âø&ñm…Äs>d2>øà\¼xz½ÞK-ˆäääˆ|ðEô¬¿.¬tÕÔß>TÝÔêÕ«ÇÓ4}—V«õšœ¹\N¯_¿þ놆†9¼ÔÛ|Vb¶ ˆd2Þ{ï= :·Ývâââ0~üxlܸK–,EQP©T˜5kŽ=ŠQ£Fùtq`öqáÂèõzLš4 _|ñ-Z„\¸p£F¡C‡p×]waß¾}°Ûí „V«ÅŒ3 “ÉpË-·ø¬+©D‡I=:EZØDzXEzXEÝû”Hˆi(—"fë–AêR#À‡k<v lÇÀ*#n¾ùfØívL:MMMˆŒŒdMs4 6n܈ñãÇãÂ… Ðh4 ÂŽ;pÇw ®®GŽÁœ9spúôi„……±ªp&1ÓL9sçÎÃc=ƒÁ€ÿþ÷¿8sæ ¬V+xàH$A–cê](1cÀ?üjµYYY±:hšFBBššš&?öØcÛßyç|ø^£éš«Ä¯Å<K«C† ‘†††®llldÙ ˆÜn7üüüP\\¼ç‹/¾˜€à™rÅŸLU(©ááá8pàìv;î¼óNÌž=|ðþö·¿áé§ŸFXXôz={ëêÀoÔï¾û™™™˜0a¾ýö[Ìž=‘‘‘8}ú4ÆŽ‹Í›7ãá‡fï²³³ÑÒÒ‚Aƒ¡³³ýúõó¬ ÒŽU%Õ¥T—!п ri+–7¤ LZú£+Yä–wƒÊk<ÂYPÚ#ØßÆ€3fàìÙ³HOOGss3kËöÕW_aîܹ8uêbcc€­[·böìÙ0¨ªªBn.kÚè1ÅÀñãÇ1iÒ$ÄÄÄÀívãÖ[o…T*ň#@’$:::pòäI¸\.dffz0-H|ß©òòr|ýõ×P(8p ûŒ2fÀ€èììüs``àqNçkIà›QË—/ÿÉ7ÐÒQD¯½öÚ3V«u–V«õê°—ÆÊž}öYMÓ±Œ7Ÿø¢œÐÜPWW’““Q\\Œºº: 2‘‘‘0›Íøä“O°ÿ~TWWãñÇgÊø¬Äh™ÂÂÂðå—_";;6› ÈÊÊ—_~‰áÇ£­­ 6› ©©©p80`üýý¡P(ˆ»±éI!3ù¿ˆ‹üš SPùÕB,2.#PKµþè:wN˜ÅíèP”£Q}e!_¡Þÿ(¬b=¤.dÎËa+‚€ÕjEbb"ÚÚÚЯ_?ÔÔÔ@$!)) _~ù%rssQPP€¤¥¥á«¯¾Âm·Ý“É„ššv’”{Ofëv»qúôidggòòò —Ë1`À9ro½õH’DCC 0lØ0¯ßš9GÓ4Š‹‹‡   ¨ÕjvS(°X,qqqν{÷ž„ïUØ€þë_ÿJ\>ÏO?9®O¤cAôç?ÿ9!33³°¬¬LÎ|=˜,•JæøÓŸþ´»²²rEQ,Hðp5u\ M°2ãŸ»îº «W¯†Óé„ÙlÆ+¯¼ƒÁ€ÖÖV¤¦¦B*•z±3g£Õj±gÏÜÿý8|ø0l6n½õVlݺ3fÌ@QQL&²³³Q__´´4z H+"B!*,š S ˆžW|ø¼5 Ÿ‘~RÝ÷”TöHDëG ]?"K¬×ï%%%ˆ‰‰ÁÑ£G¡V«‘””„-[¶`Ñ¢E(**‚X,Fzz:Ö®]‹É“'#00wã[–»Ýn¬\¹’u½ i‹/Æž={pèÐ!,X°iiip8xã70jÔ(¤¥¥±N6› f³&“‰Ýr÷5ÿ_þò 6 …£?Ùíväçç[×®];;//¯€€€Â1ópµE¼«)Úq5%dzzúëMMMrfn„ÛQTT”WYY9™$I/Q+ÒqÅèãZo'&&bÇŽP©T˜0aÞÿ}¤¦¦‚ „……±.€·8W[[‹‚‚ÜsÏ=HIIA^^rrr°fÍ444à–[nA~~>rrrPTT•Jå"¥¢ýã¶ RsiíueÅJMá=¸T9ýá†.Ò i“´‚&ú¾€˜AÒˆÒÐx8á{æ~¸Xs´ØßSSSÁÁÁÈÌÌħŸ~ŠI“&Á`0 ®®¹¹¹øî»ï––†ÈÈHlܸ#GŽD\\œ×³H’ÄâÅ‹ÑÒÒÂ~´¾ýö[ìÛ·Ë—/³FÓw³-~â¬rÕÞF£ß|ó ‚ƒƒ1pà@O©TŠäädÙÌ™3ŸËËË{¾W ®‘ˆ÷“€äCKG®^½úv§Ó9¥¹¹ÙK„R©T iºeåÊ•$\g;¾­33Îx¾rÄ7U‰D8uê>ûì3¼ôÒKصköîÝ‹éÓ§³Ï¾xñ" † “É„#GŽ`âĉ¨««ÃÞ½{që­·â“O>AEEf̘­[·bÑ¢E¬%ÃàÁ—¶*dÍHIøÑaù zÙÑiš€Ñ]W2œú4Œ7h w@êô‡Ô¥A +Q]„Ò“´²jè¤Õè”UC/«2 þ¬ýRÈNBtú4\¬¹ -Ú!ì5YYYp:HNNFll,¶mÛ†)S¦ ¬¬ mmm¸í¶Û——‡èèh$$$àÛo¿Åˆ# T*½žF“É„;và©§ž‚F£amò¶mÛ«ÕÊ:zÖMÏËÕ¸Ýnäçç#;;›}×0>>õõõcüñ «W¯Þï0È$®¡âáj1 ¤‘#GúÿãÂ…  Fu‚?þø°Íf›Å7Åç²—‘¸¿s™ˆ ¢ääd|øá‡xá…€'žx‹}’““‘ŸŸÏ:­9N}:6oÞ ‹Å‚yóæa÷îÝhnnÆŒ3ðÍ7ß@­V³ªaäq  Aþ%‚ol½yïá|ùC°Ù½âõ{¥«šŸ .š&ÐØ: N¼‰Òê{áv{ë™(ÊŽ›RÞ€~ëÀÜ*(((,,Äœ9s`³Ù°oß>Ìœ9:›7oÆôéÓ!‹¡Õj{,¯P»q£ ¹´ MÀ3 §ƒ¢ººÚKÀ¨¨¨˜E‹Ýa@ëð«‘ú$6b}‚‚‚ž.//÷ò3º$Âu­_¿>ŠÈžÏJBÁ¹Nd\G¼Þ€ˆ 466â“O>¿¿?î¼óNlß¾z½óæÍî]» ×ëqûí·³¢I,™‡a¢W n¬‚¥ÓÓ¸ÔáTâdñq¢øYXmAWª«Ÿ= %·›BYõ\8ñ&t])‚×$ÅnÃÐô@$º¬Y»ãŽ;@Ó4òòò0sæL´´´`ûöí¸óÎ;áïïõë×£©©éŠïÔ3q¹[n?á­9wîêêê ×ë½DÈääd¤¦¦ÞOcVŸ¬ôSÓ½ ÷E¨•+WÞn0Ò;::¼æ¢¢¢PPPpÌétä¯Á?Çe!þx¨7 bæ&˜1QAA2331fÌlذA°lÔÖÖ†{î¹ÁÁÁP«ÕËåH¦¶ Kô¸ ‚îbN{÷Z®mº,ì/\…†Ö1>+¥·üJà¿÷á'ƒ)‡OýçËÁåö^‹-"ô0FÜô'Ȥ]ì¹ââbäææ¢®®»wïÆ¼yó@6lØ€1cÆ ##p:? LÜXŒ »PÄ"H$IâÈ‘#¨ªªòšs BTTT¿E‹ƒ§Ï’ +B•Ô‡ôcäá&òtEEû#S(¹\óÚµkƒ¸ñ¶ù˨p7rIh5<~CpH«ÕbëÖ­Ðëõ ( F£6l@TTrss±mÛ6èt:ÌŸ?¥¥¥P©TÝ–É ‘)ú/R©O< éG7¡«(ç.>‚£§ÿ «-X¸2®"‹ôElý©,EÓ*ëgâà‰7`±y/¯¨.ÃèÁ‹¡Tt{÷Ž3†uÞ›?>t:¶mÛ†ÜÜ\DEEaÆ ¬V­§ºá—Mˆ•ø"®‘é'gΜA}}½‡k:óONNFzzú\ãbÁe%à*ˆx½±´øÂ / p8CÛÛÛÙk™¯BLL ŠŠŠŽ:ŽABàá‡9€~ø;wîdíÞ¸ àëk†É“'cÏž=(++CNN „µkׂ¦iÜ{ï½Ø·ojjj0uêÔîÿÁ¡¢ žÜåUfüpÁ²U S!T×Bôjvú« žže0Åâà‰¢ÓäUF…¬#²–A&í`ÿ;uêTÔÔÔ°kÛÒ4µk×bРAÈÉÉAAAë} \^‘&~›òÁÄÄ`@Å0‘“ ½ÆJn·¡¡¡rrrúãr,<>+±€ú)¬ôS‰@%&&ÞÝØè­V•J¥¶­Y³ÆO*•\qÍ×r+ÌvëÖ­8yò$Ôj5>ŒÅ‹cÛ¶mp:ªV¯—"øûûã®»îBKK ¾ù椤¤`Ö¬Yرcª««1þ|v¥È½ò¯{Yé`v¾†:]ð9×"÷äz-A6{ ~8õ*šÛoö*¯\ÚŠ›3–C,2³ÿ‰ŒŒÄüùóQ]];v`Ö¬YHLLħŸ~ж¶6$%%Án·c×®](-vá¹ÌÄñø`âö›¢¢"Ô××Ãd2y)&&7ß|ó\×K ×^´ã •ûP200P,—Ëïd€Äm˜èèh”••šÍæl>MóÕÝÜsV«ÅÅÅX²d f̘¿þõ¯X¾|9Ο?¥K—Â`0ôØ1¾úê+œ={cÇŽEZZ6oÞ ’$±páBœ;wF£Ýš¶~Ô—‚Ld¤cpÈõ: ´·æõÑõ“Ë-ÅñóBeý ¯r«•ÕÈø2H²;žE@@ŒF#Î;‡… ÂjµbíÚµÈÈÈÀôéÓQ[[‹;wâæ›oÆ!Cz,וÄ<þ¸šŸÝn7ŠŠŠÐÐÐà5w°°°±XÌIáGi½*c¥¾2«`@.Y²d¬Á`ˆàÄdÆ¥—Axx8vîÜ ©TJ 1ó¥á2•H$‚J¥bD™ މ‰Á_ÿúWddd`ÕªU=vˆœœTTT`óæÍ Ann.òóóQZZŠ»ï¾›UqGP…@}èU@‚CÎ×`¡C¼ÊÄ}NOÇ×}U8\阦 œ/•õ¹à§à€sœö¢Û_(((sçÎEaa!¾ÿþ{Ì›7ýû÷ÇîÝ»Q__»îº ÁÁÁ½*I’p:øàƒ°lÙ2<÷Üsøá‡<˜‰?<à‚©¤¤MMMÁRhº{Iš°°°Ù³ggÓ‘˜-3Ö¿nÊ®‚@…††ÞÍ„™b/"&vACEEÅnA.h¸VÜÜóR©wÝuþùÏ¢  €­h‘H„ÜÜ\{˜Ð3ÙívãÃ?DEEî¸ãdffbݺu¨©©Á¬Y³`µZQTT +1˜ú'žÝ¢‰ŽBsðœ\ímǼÖ`¸Z ¼R™à|ù¨oçÕ Âƒ"I¹•½Ðâþûï‡^¯ÇöíÛ‘••…±cÇâÌ™3øè£Û‹_.š¦ñæ›ož|òI,Y²{÷îE[[›`@Jþp@¯×£¾¾Z­ÖË6&&iii“á-Þq¤ü$Uø­¿‰Ëµë!Ö=Z%‘Hngœ¹â²—cdd$Nœ8Q.‘HÆrmãø_î9®\N—þq4A'v‹–ÓaHu}‚N"môM IøþûïAQî¼óNtuuaݺuÀüùóÙpkBéܹsHOO‡Ãá@SSž}öY‰üÊÊJh4Vr:¬9÷Ïn·£¤¤ééé^,‰QaaaÊ––ºÁdGwÿçº[èîó}5ú1¢ €š={öŒŽŽ…Óéô¸€¢(„††Ò»víRð£›òÇIüù¢'Nà»ï¾CUU†Š×_ÇÇþýûñÜsÏ¡¸¸ØË=‚ º—~yï½÷P^^Ž3f`ôèÑØ²e Nž<‰Y³faÔ¨QL!ƒz2¢ÃãÝ¡ÐùLôe%ÄÕdœ_[fÊívS8~îyt’al‚û¤þ® 4²¨7!† Õj‘––†qãÆá‡~ÀÖ­[1vìXLŸ>eeexï½÷Øøùå—_f# 96²TKK ªªªï!Þù è/‘HPYY‰ÖÖVðC¾‰D"DFFÊf̘1—‰êø')z $6@úûûÏinnöúÚj4hµÚ ]]]™\6âj^„bp¢°°.— +W®„ÅbÁñãÇ¡ÑhðÚk¯aݺuxå•WæÕè*• .D]]Ö¬Y‘H„E‹Áåraÿþýlœ†ò° †îŒë héåø1bÑõÈ×b^©§ß]n N/yÑ.[‘ˈv ¤Þ„‡‡#66û÷ïMÓxðÁAQÖ¬Yƒºº:,\¸J¥Ò#ò““’’pöìYˆD"Ì;¯½ö¶mÛ†—^z 999HJJòÒâ }VªªªBss³—¥CLL âããoÃeq­¼”}M=ŠvÄe”x)'''€¢¨‘Ýs \Œˆˆ@^^^«X,àë ">øûï¿Ç‹/¾•J­V‹¥K—"&&---¨¨¨À¼yó„Þ---رcn¹åÜ~ûíhmmÅwß}Ǻ3Á2Ä0 ƒú¯×=*ÝÓQçžàqO~ÚïéwÛÓ¾ÐñõJ|QŽŽ»owªp†xÃEË=®&÷£™Ž&w·ƒ`NNôz=¾úê+ L:gÏžÅáÇqçw²AT˜>óÀ`ùòåÈÉÉaVfDWWüq¤§§ÃåryX=0‘j¹Ãn¾xñ"233=üžÜn7BCCpSdd¤cc£ ž †P/ZDßÄ»¾xȲl”““3ª««‹ºô@¶b¤R)”J¥õСC\ó!ÑŽÉEÁét²AO˜H¡“'OÆ´iÓ`6›±dÉLœ8‘m„êêjœ;wÙÙÙˆŒŒÄ¼yópàÀ9rãÆÃ‚ PRR‚ÊÊJ 40úRtzÈDG Äµðr{ ¢ÞŠÿ;ÿœ¯ã«•„€âë¼/q÷ÛèÁ¨qOA¹Ûã¿™ÔÛèp€ ÝS UUUHMMEjj*JJJ°sçNÄÆÆbÁ‚ðóóó`% ÛkùÍ7ßÄÑ£GŒ©S§ÂétâÀøøãÑÕÕ…¨¨(ÌŸ?,˜˜±ŸêëëÑÒÒ‹ÅÂZ¯3LBŽ;vЦM›òà9NbD<ÆÌŸ@=h{$¾XGùûûß„òåVvPPšššJÝnw&_¦å[çšÏ»Ýnäää°bËÿøGøûûƒ$I¨T*61S)‰‰‰ˆŒŒDaa!Ž9‚!C†`úôéèèè@~~>>Œ[o½• ð¡!Ž#šÜçU¬Ó®'áê3îSÔñõ³ß—-_èøj'nh«ó,îÿλ@Q?¢‰ý]‚.¤PpÆõ8€î555øè£Œ¹sçB­Vãܹs8räf̘áŒBCC1mÚ4´µµaÕªU¨®®Æ„ p÷Ýw#::{÷îÅúõëñôÓO ²³X,I’¨««C{{;gi³ÄÄÄ pž«Xpç”Ø5–úRO>äK¬@Êd²ÑÜÁ#Sá8yò¤Y,\".qÅеB¡ÀèÑ£Y ùûû³‘‡ÊËËa0 Ryª¤år9ÆŒ»ÝŽ“'O¢°°™™™ÈÍÍE{{ûå‰[¸‘A½çU¾j÷v\ôcAôkRO©7LÄ=vCŽ"×Ó)zÄe%bÈïQîž 3Ý…ÂívcÆŒ@QQ ‘˜˜ˆ{î¹*• :ÇG¿~ý {©š¥K—bèСxæ™gØÅ \.¦L™‚={öx· } ™tSS:::ØU7˜±Rpp0o‚§%8×€ø‘â]_” $ræÌ™!R…ì§.…ÙRð ù`âûùòríììÄo¼x"‘ÈãYZ­}ôJKK‘Y³fÁd2aóæÍhjjBÂ¥Õè"ÉPÍ…±Ð\pÝK•uEý/f_õ¡CªÝSyÈ…dòSö8!! xï½÷`0°páBLš4 mmmرc 0xð`$&&²÷/..Ax衇XåAp:ؽ{7’’’-ÄùúR©Z­Z­Ö+Þƒ¿¿?Ôju\BBB ¼ÄdnŸïuº’hçÅFÇ¿Å`0üN¨P(àv»;ÛÚÚ♈2|@qM?ø®è\q™iñâÅHI¹ì7ÃŒŒÄ¸qã°dÉÐ4Í®7µpáB <˜ñÀï„ÜÔ™þÕÒÒ‚ŽŽ(•J¶mhšFHH¢¢¢²äAxœüñ®·Êf FÉd²QF£Ñ£ã0´yôèQ Ÿ‰„Âgõvu<¯¹tN"‘ ''§NB~~>‘••…‡~˜]Õ’È-^÷(wßéq?þ³®%3õ´/tÌ=w•#ìþ(&âž«pÏF¹ "\¶³Œ"á¢{ t, Œàà`444à믿Fuu5RSS1uêTDÌ}išÆÝwßI“&Áh4"88‰„ ”¼૟µ¶¶¢££ÃKጀ€€Lx³7÷Y{×ÑŽ˜3gN€«ÕêÕqÔj5Ξ=«ä}˜‚rˆ|‘Ž/Öq+X¨³8p·Þz+rrrPVV†ýû÷Ãd2á„gHxšï›èH4¹G]@¿fòh ¸¬t%†ºZLÄ}žjT¹g ?ù÷ Ä“ßà¬ë„‡‡Ãétâý÷߇R©Ä Aƒ0eʸ\.”••¡¨¨&xÎß@`` <ÖÏâªÌùŒÄÿp3[­V‹ŽŽDÌV¥RA¥RE¦¤¤hJKKë lwG¢â]O@âÖ" €LNNN·X,…£i~~~p8íz½>A¥Rù,`½EǯhHJJ¹sç°oß>DDD`àÀ˜;w.ìv;ëIÂ=ÝþÄeÏÝr÷,€ ½î{µ™©§sü²ôDü÷ý)ú©LÄ=_é¾ ä—]2€Hò λ‚Ým=þ|ˆÅb”••aûöíhooGrr2èqO~Y„Ú‚éw¾|—¸ýÍb±@§Ó¡«« F¬jµ)))‰¥¥¥ðvòóX ìÒó¯(Þy‰¸\®’@ªTª$»ÝîQ(‚èaÕÒÒÒLQÔ@nd~Ð~,:np}LüÊåwðššØívL˜0'NDmm-Ο?={ö`êÔ©l÷Vz0ZƒáO”#žüAÄ9Ô»'„°6Nè™×›™„Î]m‘ŽŸúÊDÜä„îQˆ%÷°ç$èB(q-t÷/MMMøæ›o””„‘#G"22N§UUU°X,Aù}•›ßߘ1‚/ý0}N«Õ²KƒrYÉÏÏ!!!ÑèD`ºRêˉ”ÉdI‹Åë !“ÉP]]íàŠmB ⸺#1I,£¸¸{öìAPP’““1zôhL™2Å+0;èé$œv% AÞ+õqëj3Ó•€ÔfòÅ}ØÕd"îo¸±Øãq]4¹-®n ÅÇÇãw¿ûºººpñâE8pHHHÀM7Ýäó}{ú¸1ý†¯ç÷;&°$wŒÄHP*•Š$> ØÇ£âÝ•€äá«!‹»ºº<¾$IB*•¢©©‰à«´ù_na}ˆ_™ѽŠDii)»@ñ”)S---(++ÃÖ­[Æjë|4÷™^<»¯ ê+¨øû=%.€˜}þ¶§Ô01ç|½#ó›–N‡¡£ý-Œ,€Èe† $‰¯¿þ---HJJÂøñ㚦YG<Æ-¦'Fê LŒ¤ÃWj™ÍfFv.‰ùŸR©„ŸŸ_8J4ø'õ*ù—Ö˜›RE%:/ª•J¥hii‘ùb#!ÅÍ$‡óÎ%''#..5558r人ºØÞƒƘ1cÙHèž}Ðo}9Úçnùû×3ùb" wlÔH4ÐãD\ÖR°#‚üuîÀ”)S@ë±oß>hµZDDD`Ò¤IìÚ·ÜÄ<÷“¹¢Aæ2a¹ëÎ2‘e2Y„AÄ_ ý'3WN$ÓÓÓ•$I†1º|®FE"‘Ðíííj™L&(Î )„¾.¾:0ÐL%11ÉÉɫՊêK+q3êR®¨·©'põ漯넎{ÚòËËMüÎÔó\é÷¾ŠqWzhpO@å9ÕN¢Ý@2 X¿~=4 âãã‘““ƒnW~»ÝŽšš444`Ĉ^ïÏ<Ÿ¯½cÀÄwk±X`6›Ùõ™˜|ÉÃ6000P®Óé,¸ÌL|±Že%‚èYáà$âr­ñÄèÑ£ÁÑ%ƒÁNš¦5|ÑŽ/æ ºSüóÄ… ЍÿoïË£ã*®¼¯7uK-ÉÚ¬]–e-ÞÙÆ‘ &6ˆ“–ñ81 Ép&aæLB2 „@Hò}ß!!!†Æ$Øïû& Û±dm¶dí»Ôjõ¾½ï©žêU×ë~-µßsê¼½¶W¿º·nݺ•œœ¬]»z½G©ŒŠÜH‰D,¥8Ãq(:NÞ9›ŸP³áÀÃR8m{Ÿ—.MväaDœ&›üžBM=$&&âá‡GZûúúÐÖÖ†“'OÂívÃ`0 ++ ã;x𸹯ÔÓ5éÌÀn·Ãét"..NÀØØX¡¸¸8çĉ¯I"×~¨T8¨™GÒÒÒÒ +¥Á4¶ò€N§K¢5rJb+ñ*‹G«W¯ÆªU«Ð××‡ŽŽœ;w»víB~~>Ö­[§¦¼ÁT0µÀŠHj@D?ŸŒ²%Çá5ÜPßÒ4„ÄcHFaF¡.1­­­¨¨¨€ ŒZ`çää ´´Tf*Ä# XñÝîˆÂ!66V6V2›ÍÈÈÈÈpÁc#VcV¼S=d6›§Ó2)%Ö¡¿¿ß®TžHGŽ‹Eê•222BŠ9‡o¼ñ¦NŠ©S§"==ÅÅÅR…úá‚ÚïÔÆÉ¾C_³çl9CQ´ÁD&Â)½#»d÷’„t‰£ÀÉËÝÃjµ¢§§UUUèííEOOþå_þEÚ„¤ÁïØúcÛÝÖHGN©©©²ÉÙ¸¸8$%%e!X¬£Å;Õƒ×pÊ ©&µ£eU½^¾¾¾@¼ÞBÉ2¸³³SÚi< ´´_øÂPRRôÃbccqÿý÷£¯¯½½½¸pá<‡Ã;¹¹jË\X•SÊp@ Å•x×@è1R´¥”Þ{4YÄ¢ f—$4  Ë¡ÑhÐÒÒ‚íÛ·#11Qê -Z„´´4.gRâFçÏŸÇ™3gpß}÷É@DÎÙ6èr¹àp8d Q‰m^øJ^˜0G’ò@#B0av:1¡Ø++ÚmÛ¶ K–,Á¦M›$Uxkk+Ο?§Ÿ~O<ñ åîs[ZZÐÜÜ,m{xà 7Hk””~n¤\(’ïCÅ\äœ>²çl|jÀÂ{O-@”¾ —!;òàCt°K÷èqR^^¾õ­ol6188ˆ‹/búôéÜÝÒé4HžfÏž×_ÝÝÝHKK jklû#›™±.ÁÆž›  žˆ|Ýñ€ÄʆF$&Ç£á‰gG'£jÐòòrÙ³éÓ§£  ƒƒƒ¨¬¬ Rbb"RSS188ˆææf Áf³Áh4â«_ýªÚòŽl‚"ßDã£ß!ç¼c¨ø£5. Gœ‹8©ÂY ƒCÌ€KßúFüîw¿ƒËå‚ÙlFRR’’’šš*mêL“ÇãAww7úûûÑ×ׇ¾¾>ô÷÷K×O=õž{î¹ :eÛ_ €Ïç šK{nKNIõ ú\”5wjÆHŒq$š} ‚Ç£Q+Ö ‚€ââblÛ¶ wÝu—l_·ÛÚÚZ¬[·.èg:$&&";;ñññÒž¥¬;°hR$i"@R#Þñĸh‰sJ4Ѹ«Å‡hàÓàDAh£ÿÍjµÂf³ÁápHn¤ UUUIËÕSSS‘’’‚‚‚,Z´H2lÆëŠ×‰“‰^š#@=Å‘X…CH 7F’ÔàHDí‚ Àívë(”K“­JsG[·nÅ;#§žz z½S§N…Ãá€ÕjEQQV®\”¡žž´µµÁf³Áf³ÁëõB£Ñ`ÆŒ\]4¾MH‘ˆw¡@s¥¹T¤\Ù‰lˆc‡ ƒâÞ·o.]º„@ ½^³Ù ³ÙŒÜÜ\ÙÆ°|ùr,[¶Ljø´Ñ)Y‚Næ‡h¥ (¿ß/ù¹£ëì#øâœ¬í«)»$a¼ÖØ…±çqL&$Àx½^F£!ñ(Α‡/ùËøÊW¾‚îîn # ;;[Z) @&>.X°@òDÒ !ç&CjA6)I©áªŒÒ\ï=:n5ïEƒÊËËqË-·HKeHüᤠ¶ü¼:&q²C ¯×+‰v´x7ÖÁ›Æ¢d5uƒIÍ<ÒXÞÇE;zB¼^¯P¨Âº\.TTTÀç󡬬 ¹¹¹Òwüã±yóf¢VÇÉ“'Í´Z-bbbpã7"%…¿ X4)RÎî;¨BÅ¡F¬S«”˜Èw“¥ºº:TWWÃårI (Ž. ½ÿþûƒÞ8uê***088ǃ¸¸8̘1+W®””Ml§M·AQƒÆH”¢Œp$Bq!šÔŒ‘$ŽDhÑÎçóé‰+$–ÅÒ#ôøãcÚ´i0 øûßÿŽÿ÷ÇܹsÀæÍ›ŒºiºãŽ;‚36W €Ëå’­¶ä½­͸éïé2±çWª«|FÜ„ŠŠŠPXXbJê]øå/‰††Ì›7Ë–-ƒÉdBww7±oß><ùä“0²oX© €L´ãp$ºñŽG!Uàj9ÄÑ ¢E;¿ßc0‚z‡jllDVV¾õ­oA«Õ¢¯¯?ýéO±yóf,^¼Xf LÙ–µ«*))ÁÌ™3¹•ÍÆ.îh‰7Z¤$ÒE¬¼¸­V+N:%-'>hiCÌŸ?Ó¦MƒÍféS§ðË_þIIIAc¤ÿøÇ¨©©áî½Är$VýMÚ° …JŠ…I+¸¤Õje^\HÁIE°À¡iLUŽÄÄDéyzz:üq<õÔSÒc6nÜ(û äG$$$DR„ ¯<¡¸ÕD€¤6‘’‹î«Áãââ°téÒ ùÅpeâ‰õ~¿ƒƒƒ0™LÜúdAÅŽh@! ;@=„@ `×h4ShñŽì0­ÔÓÒ×3gÎÄk¯½&‹<99>ú(~þóŸ+އjjj¸½Yaa!Ìf3÷µ4‘.Táâ§ïM4¿@ø5Dl^yÏ"ñ& 4­V‹466‰þZ­VÚ1„ÙlƪU«ðƒüEEEÈÈÈ€^¯GKK .]º„¬¬,Ìš5¾-)olN§Ãª¿ÇÚ‹Éæ„Ù¿jŽì‚ L¡¹‘A ƒGE](K~ÑhÄ=÷ÜôC222ðÈ#àOú7ýØØXYÅ“ôÙù‡p¤(á¾åÅ*pñL„h0ñî 'Î)Å.]¥4BQRRfΜ)u‚D…­Ôy~ík_C]]Μ9ƒ‘‘ø|>dggKî¨É÷$_¼z'm…åH>Ÿ’TLLTýŽ€ƒV1ñnlÿßï ×HɽE‹qÈ´iÓð£ýˆ›~ff&\.Ün7<œN'<´Z-’’’¸ßL4¼xØ{Ji…J? RÊMáÄ6–E ¨pùàÅÓßßîînÙÞX&“ &“)è]oBBÒÓÓ‘œœ ƒÁ€ÌÌÌ ?¡¤%Žäõzá÷û‰/±IÿÕ@òûýv èq èõz»xŠ× B]‡£ªª*ÉÚœìhMv° éj4Vµ â}­|±i+q¦H ^y÷&“/:ñññ°Ûíðx<Ûí†Û=ê­5333(ŽçŸ˜:u*ár¹pñâE˜ÍflݺUæóA©Ñ&m4Gòù|JiB?(b tÓÁ`0x].>—ŒVùí¶Û Š"‡do³Ù0<<Œôôô¨¤ÁÒDAÄ^_ …ÊW$๒`bÉbÝV')) f³±±±ˆ‹‹“†4µ´´ ²²Ï>û¬Lkçõzqúôi<÷Üsxá…‚,Çy€¢99z<ÞI‰&=!+ÑØ)ˆ#íQã'™”Ó¨¥íÛ·£³³SªüøøxÄÅÅ!###ji '.Dë:Z)XÔ‚ ˆ®O§ÓÁf³¡§§v»###°ÛíÈÈÈÀ]wÉwQ'îX±]«Õ¢¬¬ o¾ù&úúú““”N( ‘²ŽY<8ƒ>æÏMÚ‹D~¿ßA Âíüìûj‘ÚÆE*š¼0<< ‹Å‚¶¶¶I­G"ñ†â×*ˆèø£ &rŸÐdAåt:‘)S¦HS JñÂãñàÙgŸÅ¼yóPTTN‡ááaTVVbxxÙÙÙÜ|’k:°¢×ë…×ëu³éN”TÉçóÙEQ ’ 0 RM¨éÉCûn{{;144„ááaÉ.K«ÕbÊ”)HJJâÊ×W“>jÑéL,W‹œN'ÚÛÛ%¨d¥ê¢E‹PRR"{7&&O?ý4Þ}÷]¼÷Þ{x饗¤ÕÔ¥¥¥xì±Ç Óé$­À¯gZ)F‹vc@"‰­‘s/$©’Çã±Ð“±HZ­ñññz%;°Ékhh±±±ÈÊÊ’vî#d±XÐ××´ Ù•¦«Œ+MWX555ÈÎÎÆ¼yód&]6›Mñ›ÄÄDlÞ¼<ð€Ì²•ˆhbÿF3êïŽþ^E¢Q‘uU¤HV«õ2Q7³{Ô$$$èÃÇ01š3g€QCתª*i‘—ËåBbb"ÒÓÓ‘žž®¨B½N×ÅÆÆ¢µµ~ø!¼^/ !!iiiÒrsbMÒhFôÐb] €Ýn‡ÅbéÆ8PD&DDjs.vww_v»ÝA¢^¯GܘšîÝÈ9¯Ç›h/¨×ë±`Á©âEQD?œNçU1"¤v¹ÂµNWSÌ‹‰‰A~~>–,Y"ié¬V+z{{ÑÜÜŒŠŠ ‰x¡(T{#G$vŒd³ÙÐÛÛK6Ãåèʈv•••——/_.jµZQ}#&&ÆLìã(û»`R"¥Fj41cÆ tvv¢®®°ÛíHMMÅìÙ³¯˜ \ ±yw}%óÉõÕ¤‘‘TWW£··111ÈÌÌ”|Θ1Cñ»HÛû>íè1ØívñòåË4¸QªM;¤ˆÚÚÚœn·»Ïï÷Oe¹’F£âââ|>ŸOLj•Mƒˆ ‘={¢("77eee0›Íðù|hooŸtc eÜÉËçd¯£M‘‚H-ÈBý»Hò¦Õjqûí·#&&N§]]]èèèÀðð0nºé¦ˆâ •O6σ!ÈXÕétÂétÙl67ä¢}ŒˆB)(b·ÛÝâñx¦Ží+ïbcc­ÃÃÃÉá€3*//‡ÏçC[[***ÐÒÒ§Ó)-Uµ.)â™×û×"˜®ˆ¢ùÿ¼^/.^¼ˆýû÷C£Ñ`Ú´i’˜­¦DƒA¦¤ bËåêæ¼j|²2Ôr$œNg«ÇãYœ$³Ùì–õ ìZûÉROO¶oߎœœLŸ>‹/†ÙlÆÀÀúûûƒÖýO–x "à!t¥9¯ž' ¢hR?/^ŒÛn» N§S²à>pà6nÜU±œnw‚ ˆ¢Án·‡ë&®lEQFÿ´R$›ÍÖBvì£Å»˜˜˜Íf®ê]x5,===ôü~¿ä@¿¹¹ñññX´h²²²T©ß#¡‰‚‰—¶ÒýÉæO-G¹š ¢ÿ9™DÁôéÓ1sæL¬]»:.â1?}N«Ãy¢¹7fUAkìc§ÁTK‰#±ª@/;i›v²šÕd2!!!!žåBäœWx–.]º„êêj\¾|YrvR^^ôÞáÇqþüyäç磰°kÖ¬Á`@__NŸ>%K–È `ñ †ó„j$ÑÛIñ¸R$œj¢ •¾Óé„^¯Çý÷ߟχ¦¦&ÔÕÕa×®]˜;w.×cÔDÓ¦¯IÛ3Ac$»ÝŽ¡¡¡.†TÔ´vA謯¯¿¸páBÙ Ç@ €ØØXÄÆÆÆ6J„Å8' P× ž“4+@õ„,IÄjµ~844”›““#[ò)S¦Ø†‡‡4À”~x ÀáDZjÕ*¬_¿>¨G?}ú´lõëÀÀöíÛ'Í­Zµ @/^Ä0<<,y"Š6©Û&kÜ©Pl]Òçj~¤âßd©¤¤.\ÀöíÛ‡yóæaãÆèêêâš(•––¢´´¢(¢¥¥gΜÁþýûñ«_ý ¢(bß¾}ظqcP[¢ËBV%°[¹Âè(‹¥ã ‚傆3jI͉Fk §§§r``àÎüü|øý~i¼”˜˜ˆÄÄÄXÖ9 »v‰®¸ÔÔT´··ÃçóA¯×Ãáp ªª o¿ý6~øÃJï&''ã‹_ü"€Q÷Å|ð.^¼ˆ‚‚¬\¹YYYèèèÀ… d"^´5ejŹÉR¼R$b^´ˆÄ[__äädlÚ´ V«ÿüç?qäÈäææ†íôA@~~>òòò°qãFx<\¸pAqŽmw~¿qqqA€³X,èíí½@>Åx÷#xŒ Þ IáÆHlTTTTÍž=[Ôjµ±â%ZDä‡ÑbÞºuëðä“OâßøÜn7œN'¦m¶¼fÍÙ¢-ºA@nn.Ö®] QQ]];w"66Ë–- ªähQ8‘-Z¤ïd¤Vœl d2™pèÐ!8,Z´eeeÐéthooÇ¡C‡àv»±téREë}:.½^9sæH€`¹>qgͳh°X,bCCC-ÐÜ),©íd\éÒ¥Kƒ###ÍV«µ ..N2e³G||¼Ãn·Ç²½Oá‹gžyp»ÝÈÉÉ‘mQ¨D&“ ¹¹¹8pàêêêPTT„M›6!11çÏŸÇ… df¢E¼‰H¦ôŒˆ8¡â¢Ã#å.j€5Yª©©ÇãÁ=÷ܫՊÊÊJüæ7¿Aqq1–.]Šõë×ÃëõJKÍÕäYé ,Ǔɤ­Ý>88H¬¾i±ÜˆÕ„$Ù_q<·´:ñüÃÃà Èv’Öét˜2e 4GRïèI³œœÊ,¸***ð“ŸüçΠʸÃá@JJ ¾þõ¯cÕªUhhhÀo~ótuuÉ|M”&:îPzŸ1xïEz?\:“Íÿd(//ýýýøío‹ÚÚZ”——ãë_ÿ:RRRàp8Œ®˜%>7Ž9‚ïÿûØ·o_6oûöíTÌ3;” @bŸSã#`¼mû©@‹x,B’ZÑNÆ»ººªz{{??sæLÙœRrr2‰í½kí:‰ëθ§§û÷ïÇÞ½{‘˜˜ˆ[o½5È“*0:9›€£G¢¦¦sæÌÁ—¿üe;v ÙÙÙ˜={¶š:à’îp%ˆåL¼†OŽ¡Î#Ôò2‘P]]ööv¬X±+W®Dee%~ÿûߣ¨¨eeeAk`éҥطo~÷»ß¡¬¬ «W¯Æ¬Y³P]]-Ùã)u4~¿¢8êçÛëõiìÑÕ===µPh×€²X'†©¬PÊú\–èéÓ§?\°`A@£Ñhh ÅÅÅ!99Y/z½^ö[Ær"š|>*++±wï^444`ÅŠøÞ÷¾‡n¸A1ã¢(¢££qqqx衇àóùpüøqÔÕÕbÿ IDAT¡¬¬ %%%èëëÃÔ©SC•?$]IÀøybRº4XØãDmn$Š"JJJàr¹°mÛ6cùòå(++ÃùóçÑÓÓƒ‚‚‚ 4 ÊËËQ^^޾¾>ìß¿/¾ø"ñöƒ®®® †<0‘Íçˆ#S&°Z­ÆÆÆz+ØcÄ“²j8X?WW×ÈÐÐÐÙžžž…ééé2í]FFZZZìÝÝÝfH¤°ä]R »ví¶mÛp÷Ýwã;ßùbccU=ȺþãÇ£ºº‹/ÆC=»ÝŽ÷Þ{F£·Ür wÁ˜šÆ‰Æo² cÁ*þ‰)ÒüLlµµµ¨ªªÂ-·Ü‚‡z~ø!þøÇ?böìÙ(++Se¤š––†/~ñ‹øÂ¾€ .`ß¾}èîîFII‰ 8´ØŒJ:‡Cò:D›¹*¨³Ùl·i%EMÙ@•$ ð···ï¾téÒ¬¬,™x—™™‰)S¦ÄõôôHâœÏç“møÄVƆ 0cÆ ¼üòËAÞdÂQss3´Z-¾öµ¯AE=zƒƒƒ(//GBBÈbD–&«$OS›ž’z—wÍïšþ.š‰~ßëõâܹs˜?>Ìf3þñ ==«W¯Æ‚ pêÔ)477£¨¨H‡×ëÅ[o½…‹/"99+V¬Àüùó¥çÅÅÅ(**âæOÇ­|>Ÿä<”ëÈq``ǬòöAD€J 9£dA:A™²€ïàÁƒ›››]„ô´4Ál6ûØñ«| ÁTRR"ixÔþLQQTT„åË—£¦¦o¿ý6òóóq÷Ýwc``¿ÿýïÑÑÑ6µIM §eõA÷°¬rFí÷ j˪D:F£ýë_¡Õjñ•¯|ùùùxå•WpòäI,]ºTÏË/¿Œ3gÎ`ÅŠÐh4xá…ððÃKkÏxy‚5u@###’4C×ÏçÃÀÀ€ûüùóUƒÈ¯puÑŽI;00`‰ÜÜ\¬Y³¢(bÇŽxúé§±yóf|ö³Ÿ Ê+Ö‘veµZ‘’’Ä, †††ªœN'YÈGkê|Ìu'•*ƒ"5¢;0ó‘Ä›šš>hll\STT$©À¦NŠ„„„¸ÞÞ^™HG‹zôd.-z‘<«iX—.]B{{;>ÿùÏC«Õâĉ8wîÖ®]‹ÂÂBTUU¡²²’kÓŦǒ#Tµ"P¨´Õ‚‰"ú±â¬ÒóHïG*ÞEZÆpõóþûïCF7Ùîêꫯ¾ŠØØX|éK_‚ÓéÄ[o½%ͱq>üðÃxçwð³ŸýLrÍ%Š"²³³‘ššŠ¾¾¾ tYŽ$·m¬Èçv»a±X†êêêˆÚ›òqRDJB\Ž$вE~<}»€Ïçóyûûû466~aÁ‚2LŸ> z‡Ã!mˆK͕ȜzÝ%$$`õêÕ¨¬¬DEE>ûÙÏ"??‡BSS>÷¹ÏÁår¹íâ5–p†©ôýp¢œN‰Íž7"ÇH9—šûlþ–.]Š·ß~ذašššð—¿üK—.ÅâÅ‹QRR‚½{÷¢¼¼Ÿ¯¾ú*._¾Œ-[¶ÀçóaÛ¶mHKKÃÖ­[áp8 Š"Ìf3îºë.ެ’““ñíoÿó?ÿƒÜÜ\TUUA|ÿûßûÙq‘ßïG¿´ÙË‘†††péÒ%Z¬£¹rnÄZ5@TÙÕ.£`t4˜||gΜ¹TVVV×ÖÖVœ••%ã4EEEhnnö÷÷÷ëˆxçõz%cBžf ¿pN‰AÀÊ•+QWW‡}ûöá¶ÛnÃôéÓ±gÏ `óæÍèééAUUî¼óNEŽÃ¦Mž)q"5 ÂyØ#ý,…ãFìq2œ*°ˆŸŒ-[¶àwÞA{{;n»í6\¾|¯¾ú*Ö¬Yñê×ÌÌLÜwß}ŠÀç)Ün7úûû‘’’ÄÆœ@^looïD°XG‹t´¢aB¢"G¢È²DV¶ô566¾qòäIèõzgJNNFNNŽÎh4ЬxG¼‰µH9ù†N§Ã–-[‘‘W_}111¸÷Þ{ÑÔÔ„“'OJ[İßóQ¸|2\Š§Â ¥ç}7\JuBüwF9rUUUøâ¿ˆ)S¦à•W^AZZ¶lÙ4 >‘ÿ©TgD>Ÿ½½½Ò®|l[êëëCkkëN%øJ†póHª(eÀQ8ðíÝ»÷èÅ‹›;::$0-Þ¬Y³`2™|´Âó”zÕHBaa!œN'¶mÛ†²²2¬Zµ ÇGgg'îºë.Éé†ÚÆ®çžLàB T‘Z€)•®½^S§N¡½½›7oFgg'vìØeË–aÕªUøË_þ‡ÃˆþY¨ÿ-Š¢l@·¡ÞÞ^i]?‡‹¥­¦¦æ,‚ÇE^‹u¬ˆ4<5@"DOÌú˜àojjúë±cÇdI§Ó!-- YYYzN'òt%Êc+3ÑïL™2÷Þ{/fΜ‰;v 66kÖ¬á~P¡®•âˆ<Ñ¡P¨¯.4 î¾ûn444 ººwß}7âããñúë¯#++ ÷ßОF‘þ;¥úc'ø»ºF=jÑ­È»ýýýhooD‡ñΟHÖ~1 n„…HžöŽÎ˜wß¾}ëëë;º»»%nD8Óœ9sã¡DŠ<*Ud$¤Óé`2™ðöÛo£´´ , Ë²±¨í©' žXîÛPßO&_jËKÓúõë100€“'Oâ3Ÿù æÏŸ·ß~ r†¯”Ëéé”îîniÞˆ®‹1nÔ]SSSI¢_ɱPÏ‘èèLIòûýÞ–––·Ž=*H£Ñ@§Ó!33YYYAÝrͶé±RP&"èÙ†††ð¿ÿû¿¸ùæ›­Â*Ô5û,!Ô)Úi…*‹ÚºY½z5AÀþýû1kÖ,ÜsÏ=Ü:öx<ªþ™Ò¿!õ@ƒ¨££CZPÊ‚mhh]]];ÆTÞ,ˆhñŽUOH¬"í€`¥pïöÕÔÔôö÷÷Ë8’F£ÁÒ¥Ka2™>ŸO&Z¼£ZpªLŠ"º»»q×]w!%%EñrŒ´gžH¯œP€Št‚6ùTS~ºþ–.]Š´´4ìܹ3h/XòÎÿ÷ã¯ý«âÿ • úÜáp ­­MÆH}¹\. ÷×ÔÔœ‹žÛVÁÑ„¸ H2y\I6póx<®¶¶¶w>¤tHNNFII‰F«ÕŠD N¸=Ç$ŠãK…ü]Ÿ8qÏ=÷^~ùeØív£lÂ홪·UÓ{³ï}\‚Úòð®yÿ`Μ9¸á†°}ûvÙz„¾ûÝ²?úÑ`µZ¥ût§ÉþºÃR§KüˆkµZiîX, º»»wúý~zLOKPì‰ç¯!bŠ„#)“è z:´ëìÙ³½´„… "!!A D‹w4W"@Rê}QñíñÇÇoû[`xx?þ¸ô3T*‚žøÓBÕ ±råJ‰+‰¢ˆ={öÀëõ"55Ï<ó ²³³ñÈ# ®ntµ÷ßþö7|øá‡ŠiÓcg¦ÞÞ^7,×ãF}µµµÇƲ¥"r¤Û±"Qmã¡h"¢Ñ€°sJ^§Ó騯¯éÝwß•ìîg2X²d Að³c%š+ÑT*KýýýøÎw¾ƒôôtüú׿ÆwÜo~ó›hjj’–NDL¡Þû¸µåcŸ)QjjªÄ%Þxã ¼ð hmm0ªYûêW¿Š­[·âÉ'ŸÄöíÛQUU%s#@§I·2.òx‰e7ùvdd‹åË/žDÈAν'E‘r$B¿=Ä•<ÌžŠÕâ%$$àÉ'ŸDbb"’““ñÜsÏáóŸÿ|X DÊ™ÈñÓ"©+¯×‹ï~÷»øÙÏ~†'Ÿ|?øÁ044`TùP[[+½[WW2aÏK—5"¯---HII‘yM¥¹Qkkë«cên®&™´Gkë&¥ò¦i2c$–+ÉäxöìÙ3ÇöïßÄyâââpóÍ7Ãår‰.—K$ž¯ú'§¥¥aóæÍ¸ï¾û}Gs3!˜ÔŠJ÷À+¯Ú½{7 ¶mÛ†_|ñññøîw¿‹þþ~,[¶ ‡ÆÑ£GQWW‡_|<ð7ÞZ5«ÕŠ3gÎ`êÔ©’‚uAlµZO´¶¶ï©„ÑrC"žmÄH Í¡‰ às%¶ðð>|øw|ðASSSÐDm^^æÍ›'X­V‰+ëž/\cP•ñëìJ7bµãžh™ …*S¤õâr¹$'œF£>ú(n¼ñF<óÌ3HHHÀ·¿ým>|Û¶mÃ>Èu­ÅŠsD£{úôiÄÇÇK â•W²„¼ÿÂ… ¯a\ÁÀ‚ˆ'ÖE…ÜP\IÖX,–¡³gÏ>ûÚk¯ù‰:,Y²iii–‰x¬¯¯ßùœÛî”,øÆœ¤‰ª¿!Š’§¡F ΉlêKG@{äÈ‘_ÆgòóóSsssep999X»v­°gÏ™†T"íeHÉ1Q‹³¾"QwOdg?¶\)Õx¨8•©Òùdò§ô­ øÿø¼úê«xôÑG1eÊØl6<öØc²oI§È• DlïííÅ‘#GPPP€øøx©!ÿÛáp «««¿¡¡áÝyó€Äµdˆ7a2ñã­OƒÑ‚i1>d &±âÆŽ¦™3gξ馛~øŸÿùŸZƒÁ ‰qn·ÕÕÕ8|ø0rrr`6›a2™`4a0`0d bÌFéI»Ë4™ú{>Ù4XŠHÑH#õöö¢½½7Üpƒl 8 ":x<X,ìÚµ yyyHMM 2r¹\¨­­õ755=ÝÓÓCD:2ñêàà ‚s,¸0>Kƒ)j &9F¢2B³KÖÚô.rÞØØX[__ÿÆ+¯¼‚@ ¤|(--Å¢E‹ÐÑѧÓ)™B-ä‰@cyŒ´L“©I‰pÑ£!ÂM´>ÒÒÒ°`ÁE±*nŸÏ»ÝŽÝ»w#++ ™™™A¢(ŠhjjBooï_Ç@¤|â•éèÀZ2DÅŠGí8DÆKdAŠ£Ñ`´Pš±ô´´Çÿ‡ÑhÌ4™L7ß{ï½²ÿ,X»Ýކ†äååI‡]}:ü~¿ô¯I\èîîÞéÒ¥½w §V¤ãYyG•Q5V¢F ¡Áh4’£`ÒøË–-Caa!×v²³³UUUÖÖÖÖ_8ÆADkèxh±ŽIqõë•âF }â‰'¢á~ô#ºeNÄ^ÓŠÌAiìv»ÝétÖuvv.JKK‹!ÛtÐ!99‰‰‰¨ªª’œ@²™ÃÂ9«>€ŠF;RÑ÷y ó°gϬ[·3fÌàÆ}ùòe=zÔÚÞÞþ «ÕÚƒQ±– @dŽˆ±Þ®¨HG(êc$ŽˆGÆJD“Ç‘¸ööö&·Ûý¯×ûí7¦-^¼8È›L~~>n½õVìÛ·###˜9sfÐ&Gbý@<òD=òÎ$Ê•x¢MÑj?,xèsÚI ͉ˆÿ±cÇP__M›6!==ˉª««qâÄ‰ÞŽŽŽ_Øl¶Œ‚«¹YNDs#V¹pUD:B“²l±Üê=FÁ3L !&111eþüùÿuë­·æ–——ÙÝy½^ ãàÁƒp8˜={6âãã#Y>èõzÙ2wzLÅš±çQ®‹¨Ç©DWâòÀCÎi± ƒƒƒxÿý÷a4q÷ÝwÃh4Ê|rÎñøñ㨬¬liooÿ¿N§“ˆs€\œ#\ˆ LJóFWœWHL´ 1#¢ƒ@ŒÉdŠ_¸pá#7ÝtSÑúõëe¾Hðx<¨ªªB]]Š‹‹‘-™Ñ@¢ÁDÛåÑç“1-š@ÝL:Ž+Ý>Bq!v\Ä‚¨±±{öìÁòåËñ™Ï|¢(Ê–Ãó={öàܹsÚÚÚž÷z½ƒÈ‹qîÚþðÆG´/†«"àʨ¿yDkòhQ̹lLåt:qúôéÿãóù¾122²ðî»ïòõLO¦¥¥áèÑ£BII‰Ô[êõú I>@YÔS_E›®Åy$BJ"G– ‘#å>Œ††lÞ¼Ò3b½BâøÇ?þÚÚÚÓmmm¿Sq+ˆ'Α XÞ:£« "à s$@ѰU‹Që 7p•‰xbA0,X°`óìÙ³W}îsŸCLLŒŒ+‘022‚#GŽÀåraÞ¼yHJJ’q&šCÑVåcùT÷èã'™x á÷=G‡ðþûï#!![¶lÉd’='ÜÈb±à­·ÞÂÅ‹÷¶··ÿYE"­|±â­öæí*AòüÉLDÌ£ÁÄŠˆ€ºÒÒÒÏæççþÎ;ïÔfgg˼´Ò¢^uu5.\¸€iÓ¦¡¤¤DrãÄ®"=$;ÅŒwü$@äÈ›'âq¡ãÇãìٳذaÖ­['Ñ.êëëñæ›oú{zz^ïîîÞƒñ¶D"Ö¢{Òn‡'CWH€¢ò€É0Ø1 ®ºÌÌ̙ӧOÿzyyyJYY™Ì¹:, ªªª0<<Œyóæ!''‡«€ »eð–`|Ò)€xhNÔØØˆ½{÷¢  ÿú¯ÿŠäädîXÈçóáý÷ßÇîÝ»û^°Z­-oìº"ˆh±NÉ–î#ðÑ ƒ‰ˆxP4˜è£qì¹Þd2Å?X\\rWH€ Lì\’˜Xî3ö\@{à 7Ü–››»iÆ Úììl®ûcŸÏ'-lnnƲe˰|ùr‚ -*#„p'(@J€Rºw­ Þ½p"cLFƒ£GbÏž=¸ãŽ;pï½÷J=YQÎçóáŸÿü'^zé%ooïë½½½»!·haÝÐóDá@¤¡Ë÷'H@Ä`"sM4g¢Á¤KOO/ÌÍÍ}hùòå)Äà•uÊO~òàà Ξ= §Ó‰²²2²ù™ä—Yµ8 (òŒ>†:¿ZÄ }ÎÞcDxêõzi*ÁãñààÁƒØµk ñÍo~999A;Õ“:w¹\xë­·ðî»ïöY,–_ŽŒŒ´`DßvÎÅzLtÍ‚ø€LL,$1€Îh4š ÈÌÌ\ºzõjdee‰x´ö¨§§ Á’%KpÓM7!..N&â®Ä:ç &/þ1çþ755õþ3f¤Î;S¦Lár&v¦¾¿¿èëëC^^–.]ŠùóçÃd2ÉüíÑb ¬±ò]5¥ÍqèkÖBÛåráôéÓ8rä.]º„U«VáöÛoGYY™4fbƒHÙË;w¿þõ¯±gÏž^‡Ãñ'›ÍvòÉU"Ö•0íQÊÍœ³¾º:^K ® aÁÄãN1L ÁDÆMZ­V«ÏÈÈX™pÛ´iÓRçÌ™#›8d—iМÊëõ¢§§°Ûí(,,DII JJJ‘‘Ä¡x"«õ£Ê<áúRR4ð´p„­>~CNNNƬY³––&Tt/Þ×ׇ¡¡! !&&3fÌ@ii)Š‹‹1uêTw¢NôS#ò±Ü†wŸ>ïîîFMMAÀܹs1þ|,Y²™™™\ÎÛ¨>yò$žþy>|¸Óãñl·Ùl'™qo,D,€Búè+ßµÓ`)º¦€„-êñÆN¡À$hAÒÒÒ%$$¬ÏÈÈÈ---Ezzº"˜””v»ƒƒƒ°X,‚ÙlF~~>²²²‘‘ÌÌLdddÀd2‘²…œ‹Š„hà8Ntvv¢«« èèèÀÅ‹át:1kÖ,Ì™3óæÍ“yBDGŽÁ /¼€ÊÊÊËn·{»Ýn¯¤þ €\#G;´gý+Ð×ô,´Bác"à!FÔ Å «ÊYPÑ`"ŠΊ©©©sããã7L™2eÆ´iÓ——“É*VEÌÓ²Ùl6ŒŒŒÀápÀápÀn·ÃårÁl6KÀš:u*bcc%7Ì&“Ivn4.— N§3èèt:a·ÛÑÛÛ‹ÎÎNtvvbdd©©©HOOGFF²²²ŸŸüüü -EÕ„®®.¼÷Þ{x÷ÝwÑÒÒRïñxÞu8çÀøÙ@°2¨µÃˆvTÂ*®YÍ\(ºfpÇM<îDÔä4‡2 ˜;0ÉD³Ùœ™°,&&¦,---9//ÙÙÙÒ>¶¡TØ<Ór.Š£›q9 ôä0­I$‹HVƒAZõ#.99S§NEFFÒÒÒd–íì¸F ç±ÛíØ¿?vìØ3gÎ øýþ#n·ûˆÇãéFh)m7@ô~®¬Û¬ˆ€kH€*Q ¨h0é¬e‚ HLL,Ž]³(+++&77WòXŽ+‘wxç‚ ¨ðžÑ.ÕŽk4MÈ÷ ¢¢»wïÆÑ£G].—ë”Çã9ìr¹j,¾Ñÿ4vâĞݭ‘ÿð< ƒÓ¥(ÇÒ5$B*D=%e $LÒØ ãò>@«ÕÆF£±$99Y“’’‚””ÄÇÇÞìŒÒ9ÝÈ#†ÚqR—/_Fuu5Î;‡óçÏìv{µßï?är¹*q3M[#ÐDˆpަǼ¾xë‡h}ì¸M Š¢^(îDŽ4‡¢AFƒIr¥Œà:.&..®È`0”ètº’˜˜˜Ü¤¤$+..N–×H¹R¤\Šß”Þ×h4hooGmm-jjjpáÂÑf³µj¿ß_ãñxêmG‹n4ÑjhZŒ£µrDœãíßÊÎ }"¸M+ A¢;Ñöz<‘åJ,wâ*¨aéõz³Éd*Öëõ%:®Ô`0d&$$ ..qqq0›Í’Rصâ`"ãš³ £¯¯½½½èééAww7ÚÚÚ`³Ù:Ày¿ß_ãõz/øý~;‚Ed%ðÐc v9z{<ì_a¹ðñð1!•܉UH° b¤(-“MÐëõ‰ƒ![§Óej4š F“)B¦F£IŽ‹‹Ìf3Ìf³lyQ$`4N䥔L‡Ãþþ~ôõõa``@ôx<ƒ¢(vˆ¢Ø:ý~—ßïoóûýÄd‡îtB•…U"Ðêl%±à¡9Ð'j,¤D[ a¹+î±æF,x`¢¿ã‰?lC¤ˆ@Ôh4z½^Ÿ©ÓéÒÇÀQ‡.ì*`“ FQMcß;EQtŠ¢è"ç\¢(ºÆÎGü~W èôù|Ý¢(zƾãE)¿<ôˆ+®±“©,¢ÕÙŸ(.DÓÇH„¸+îÑ€"ÖåJÀ¢çœX ‰,¨#Mbˆ£¬Wž Ñàw¤óD<ôœ='Dƒˆù˜ÀrŸO,¢é$€Ëh0ñæŸh@ñ¸+Òb"+ò±¢ lB¢Â9ï:dqC\Ó¦:ì‘å 4÷a¹ ?øbë;g÷‰åB4}b€D(„¸Ç›ÐeE?–±bOÜÓ2GVÄ$ù眦ɉýžœ¨#­ºf¬ÇãF~æ¹’¯íO€}â€DHa"—(VÛÇr€X…CÑiÒ€R¹&C¬¨H7dbÄŠr<`±œ‡ÿÐúD‹q<úÄ  Ÿ¢E>vr—'ò¦åÖ"€G©áNj‰åB<ñØÁ±ó@¬(êŠó(øt€ø„‰P<¥­<à©ÑÕö{µªçɽ^GIŒSâH<ÀðÞ§AÉçS BŸ ÑB)ÁŠ}€<À°ã-ú«.¿Ò@‚¹+Ò…û<÷¡ÓMüÓÖ˜(úÔ‰‚ØkhP±*u–óÐ׬å@( E ªH <špcžëÜG>µ@"Fì#ס@Å yæ7¼qR4ÇHlç¯yáM”*¸ ô©M‚Š ï™â©Å'Jlƒç'š±ì:x&Aפ@*AÅ‚ƒwNŒw R€š€ç£7®7’°tH*(¨À9² á‡¢©h‚­¹&ÉäTÿ¼ë ¹²tHW‰"Ø„é:`>º¤ët¢@ÑVÃ^§ëô©¤ë@ºN×) tH×é:E®é:]§(Ðu ]§ëúÿ}/‹x-GsRIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/content/Dial.qml0000644000076500000240000000561612536324427030235 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Item { id: root property real value : 0 width: 210; height: 210 Image { source: "background.png" } //! [needle_shadow] Image { x: 96 y: 35 source: "needle_shadow.png" transform: Rotation { origin.x: 9; origin.y: 67 angle: needleRotation.angle } } //! [needle_shadow] //! [needle] Image { id: needle x: 98; y: 33 smooth: true source: "needle.png" transform: Rotation { id: needleRotation origin.x: 5; origin.y: 65 //! [needle angle] angle: Math.min(Math.max(-130, root.value*2.6 - 130), 133) Behavior on angle { SpringAnimation { spring: 1.4 damping: .15 } } //! [needle angle] } } //! [needle] //! [overlay] Image { x: 21; y: 18; source: "overlay.png" } //! [overlay] } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/content/needle.png0000644000076500000240000000052612536324427030606 0ustar philstaff00000000000000‰PNG  IHDR?Ýp‰žbKGDÿÿÿ ½§“ pHYs Ñ ÑÂ+ßãtIMEÙ.4]—mtEXtCommentCreated with The GIMPïd%nºIDATHÇcøÿÿ?Ãÿÿÿ.HÈ _õ ÚórÛŽ=[Œ,„aâL àÅÀÀà Å^0AdØØÈ ¸±±IRÀ…M]+ƒ ¼yGJ‰IóqYvdu£˜B=\XpÑÙ £Þ¤@!o_<—Qad``àÄ¢€ó®´#À½Ê„Ãx¸5CFÁððæhdQË›{ñ(ØËÂÀÀàÇÀÀÄÀÀàÄÀÀ`•8ÆÀÀ°awé#aÈ™bØIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/content/needle_shadow.png0000644000076500000240000000117012536324427032147 0ustar philstaff00000000000000‰PNG  IHDRHÎøbKGDÿÿÿ ½§“ pHYs Ñ ÑÂ+ßãtIMEÙ29|œtEXtCommentCreated with The GIMPïd%nÜIDATXÃí˜ÑŽ„ E{‘ÿÿâÑîÊ{­¥-ÉÌÃ&cB0:n ¥L¡ªÂ€ëÖô|”¿ïâ_0ÍýŽ ØU ið8AzÞO•Y·KÍ 9Æ C]w|%Û8&»>³ª:)k"²•WŸ™¹‘:ô|6”*€›28ÐFP%™ž™éA¦6oýU×Ysž‹Uל™Œ Ür(¹•ð†‰ßP¶‚¢l ù+R†¶Š˜šµ6ÙšE]ýv`íEe­°î.eH@Q\"›M,LÄÒÒÈrÂ_89q‰`R$€¦ë¬©™Ù¥Ø\½°C•úe_Øö)XšêPL¼Ó •%”0O®îHvÞÛ }!Í¥'ñì°‡dû¾½«d'NÈ& 9©.=d³…¢Ù¥³FäÏåì„Êyvvr\MqXM¼;Ðß’7QýÍw§ýÂþ W… ×.4‚õ$ÕôÑýÍL«€ë=Ýsö‰†ì´ýì–o2@ì×]D^ôŽ¡ÚMM‡M{‘êU>ÌmwþnìúvKŽI¬t7í¡®«*W\³~ó|z°Ïìz±e-88o¹FñÑ©7Î2º:MDDÁ¥Qf~|ôª*?]f¥_©][IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/content/overlay.png0000644000076500000240000000675412536324427031044 0ustar philstaff00000000000000‰PNG  IHDR”iÜ0 bKGDÿÿÿ ½§“ pHYs Ñ ÑÂ+ßãtIMEÙàêtEXtCommentCreated with The GIMPïd%n PIDATxÚíkUÇÝ3³³›Í‹Ý< !!õA‰Ýy¨€(±ÁGôUhIYe©”U¢¤«ü*_”²T|Q *XT@ Š@•WCx$$Ëîf!³³3·÷ú¡o½ž}Lv7Ó=÷_ukz&3»³Ý¿œsî¹çž¶”R%ÊŽ:€"ÐyŒû@UJì1<ö[å¤å 7tËô莥¡š yÀм©G?PÊÚÉ´ZÐB-ŽÖé±ø~—r°p0@5·–Dà9^?of•íÀKÀn@ šÃ½8X•â¿£ lÓpíI\Y*¼CCôÎYŒšEc®7 Ps§•@/p’¶L­ ð °UÏ$ P³ UÀGwµð Uh¨žÆ Pi­i½ÉxÔäÿžÔ®Ñ5  A:ÎðSWðoà à *YË€zÊo4=ùÀsÀߘçäi3UÐé4=ƒ3š¹ªÀ_€ÿ´:Pï>Aó'!Ó¢×€û˜‡,|³up>A>Éhö÷Gô¬PµPï×0̵ŸSí Tø$A†Ûhþ‚öÇ2K@­>«grFGÆZÝI°f˜z Œ‹k½üL+P9àãâšJð{àå´U.Åd»›Q xx:-@-¾ ã&£æÕ3À–Fƒõùj™†É$*Ó¡W»i 4f>€:¸ŒÖ©UÊŠ†€_2Ãê…¹ªøœ™É¥VƒÀÏgb©æ²Lv-°ÉÀ”j­.ŸÉ5´çð‹\ŠÙ÷—« ƒ}¤€Z¢ðvs-2£õÀ%€5ß@uh˜™k9½‡`ÍuÞ€Êk7gÖ岫^àœùêÓÀsÎ3¯§Î5P§TYµ†Î«gCö¶}Mo6AR }8úf}n¾% v ;z„Ç6AiP>2¢Ï Ó™ö70ó{…È®šÃêt‚¦FK£À00¢E ”8`W ±dV©Tz®X,žqàÀZyJèî¢P%-«L¨è(•JT«UÊåòK1«‡*•Ay´ªòR^5ШöíÛ÷ÀêÕ«¿ây‹/N*ZE0S+uŒÍâ”9´P[iÍýr P÷ÜsÏ3ÕjuhllŒááá ™ñˆ‹š°PÏœÇG&×u¥T*Q©T†·mÛöß„ï’tœ:—· ©WËj||Üúiggç5{öìaýúõ …º1Ôdn¯ž¥B°gÏÇ¡\.ÿŠ·KSŸ?(¥zú ´L/¦È²Kx×ðP\¾|ù’7>¦”ZµhÑ"Ö­[¾J ’b©8T»víbddÏóúwîÜy‘ëº%‚uѪ=AûGiMlîj5k¤”Šnkªýû÷WöíÛ÷½®®®[ííítuuCM””òL¹çy Òßß”R•J¥¸®[Õ*ºq´[*«E7¸†V*\ö(¬ösÏ=÷íííWY–ÅÚµkéîîž4u0••`×®]8ŽCµZ½µ¯¯ïjˆ˜ur´uòIéV«VÊŽ¸½¨"Ð~æ™gÞ”Ïç/R²téÒZL•4Ó ×öâ@U«UvîÜZ&<ÏÛÒßß¿YƒÊ!H({¡Õ2@¥7ŽÊi &@ÕÛÛûÕb±ø%)¥•Ëåèéé¡»»{Ò8*„ª¿¿ŸíÛ·S­V‘R*×uoùY³LNÚã§–JCeǬT!TPìééùxggçÕJ©£¥”´··ÓÝÝMWWmmm5«U©T(—Ë Ó××ÇØØXØ€âær¹ü¨†Åå$X'TÊÝž­ÊÇ,UÐV(¬^½ú²B¡ðE)e×$ÛÏ£ÏG\×ý]¥R¹K»5/”S&?ÍîÎÙ>ª ÒþVX²dɆb±x¦RêD¥Ô2¥Ô2 ÐïûC¾ïïð<ïq×u_àíÂ9?”ɉÁ$Ó¼=½¥J€*—U!2&l{"y .šŠ1 ÜÜÈ{RßH#O‹K礈Høoñ]*I•2ö/?¹‘×üÈûSß•¥åŠ#'yÝŸ(+òÞègâ@Ňy_&Zü &Z)bPÅÁðc.ÏžÄåÅ?çÇ@ÊL¨©¡ŠÂ‘‹eMTÔ²ÅÁ’Y„É5y<…ÃŽ@1UÉ®Jˆ£’F&;Ùµü,o³¿è,ЪSR …Jqh©J&Û" ¦†Š@õJv“‚ùx­Sí8ë=6¦V$«LI™o/m€j. Rõb³V9?ÿ~6¼òTú IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/content/quit.png0000644000076500000240000000110712536324427030330 0ustar philstaff00000000000000‰PNG  IHDR‰ sBIT|dˆ pHYsrçntEXtSoftwarewww.inkscape.org›î<ÄIDAT8•ÕËjAÆñÿT&*Â]‰¯ãBt'ê$‰q¡fvîô1qï%â5n%Y„ºñ]”ï¨1x)]=tfª;ãÞœªó«¢Š:MŒ‘#’‚¤û’zen¯OÒeIw«¹*öHR”ôGÒâج¤_©f©ÌwÀ Gxèî7¨ w¿¬픺íîK-I÷€[™º¿@ÏÌV°‹À3`¼ögŠw(.!‡>u÷ù]`ÂÖj°m  œÔ€ÎAñ–;À›ì¼™m¤…OïËÌý \ ÀÍì'p¡ÄÌìСx†ƒÑf°VÍaëƒUfö±} \+›åIïR³Ü–tv„{R’§š’ÚýŽ]A×$û_À)IË%cäðc…ÿ|gežIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml0000644000076500000240000000424712536324427031501 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Image { source: "quit.png" scale: quitMouse.pressed ? 0.8 : 1.0 smooth: quitMouse.pressed MouseArea { id: quitMouse anchors.fill: parent anchors.margins: -10 onClicked: Qt.quit() } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/dialcontrol/dialcontrol.qml0000644000076500000240000000656212536324427030225 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ //! [imports] import QtQuick 1.0 import "content" //! [imports] //! [0] Rectangle { color: "#545454" width: 300; height: 300 // Dial with a slider to adjust it Dial { id: dial anchors.centerIn: parent value: slider.x * 100 / (container.width - 34) } Rectangle { id: container anchors { bottom: parent.bottom; left: parent.left right: parent.right; leftMargin: 20; rightMargin: 20 bottomMargin: 10 } height: 16 radius: 8 opacity: 0.7 smooth: true gradient: Gradient { GradientStop { position: 0.0; color: "gray" } GradientStop { position: 1.0; color: "white" } } Rectangle { id: slider x: 1; y: 1; width: 30; height: 14 radius: 6 smooth: true gradient: Gradient { GradientStop { position: 0.0; color: "#424242" } GradientStop { position: 1.0; color: "black" } } MouseArea { anchors.fill: parent anchors.margins: -16 // Increase mouse area a lot outside the slider drag.target: parent; drag.axis: Drag.XAxis drag.minimumX: 2; drag.maximumX: container.width - 32 } } } QuitButton { anchors.right: parent.right anchors.top: parent.top anchors.margins: 10 } } //! [0] PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/flipable/0000755000076500000240000000000012536324427024433 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/flipable/content/0000755000076500000240000000000012536324427026105 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/flipable/content/5_heart.png0000644000076500000240000000744012536324427030147 0ustar philstaff00000000000000‰PNG  IHDRŽÀÒ¯[sBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î<IDATxœí_H×Ç¿ëM6¨i«ÉÆ‘bªX¬± QW …$þF Ò—(—\âS5¢!…Üö’´yhBS 6/ñE”R$1 õ¡ÅÜhÈÿ’@‚&XÌz£›F-‰ºç>ü2ÝUwggÎîÎßß;ΜßïœßðõÌ9sÎÌx„Pðx<Ù>àP`+7óÀu×|#„˜ýûˆ¯ÄSà Á‰S”ô@Ýßz‰ €èïïÁ`P0î& Šþþ~"T'^]¥²_©I;vL,//›]_Æb,//‹cÇŽE¶<ÙÿðŸ@ €¡¡!¤¥¥aV …ðÞ{ïáêÕ«ði¨#Œãdzh˜˜¤¥¥áøñãÊŸ~€ÿØ ±mÛ6ójÆXžÉÉIäææÀS躥t’FÇX§!§~ï,BÇÃF #EüKU$| b^Á-# ‡‘‚…ÃHÁÂa¤`á0RèŽÇ³2mØ”—GÓÓ)ª"cEâO9h½sìó==@MM’ªÆXeÊ!y—ª™ ¹Y®å …€înàÐ! ?Ø´ ðûƒøö”×ï'Ûü|òÕÝM¾ÆiñÄ@[á3:*D{»-&„hmÕçcaAˆÆÆ°}´TY)ÄÈÈZÛ‘:¦fÛØHe…ÓâY…¢—Ä„£ÐÞ¬¬L»Ý‚€ú‰RRv¶ããaÛñqÚ§Å60æd;-ž($W8££á ¼^ívgÎh;QJªªbq‘RU•>Û3g‹ÑñDAÑKòÖãDv¢µøš›¶o§¾‘z{é·©IŸÏ<~ lܨÏN+N‹'Ú;Ç‘ÃïdÒÕ¥ÿ$ÀÍ›”ô23Ce¦ §Å}³ãÉäÖ-9»;wŒ/3•¾­Oâ Çë^¾¤í±1  `mž±±•ùµðà¶|«¹{WÎ.‘2SéÛªñÄ!þ¥ª´4¼ÝÙ=OäþÈüj<|¨-ßjž>¥$ƒl™©ômÕxâ_8UUáí¯¾::¨…‚~;:h´üj(­˜‘¤²L§Å£õáøÔ”>Ÿ¶!¢ÏGùµP\¬oø™ŒT\œ”!©+≢—ø-Ζ-4åó©çS檶lÑ&×¼’ÉÉ“aÿ'O&×·Ø0E/êSÃÃÀÞ½À‚>)fdƒƒ@EE¢¢^É‹@I mß»G¯Y±36ŒGÛ ²+*€ï¿––´y^·Žl’-€Nì¹sám»cãx´Mröô‡Ç_UïõÒÓ…ÍÍI¬"c%”Gûìøð0ÐØLNF?¾muîRÑÒ0–Aÿ ÀŠ àÆèÂP;Æ8ýëqž=£'”Ç~ H4o¼‘¢*2VBÿ¥*’Û·@€¶¯^¥µ8Œ+HL8@ø‡'³^ŒÅI\8Œ+1ÿñÆÖ°p)X8Œ,F # ‡‘‚…ÃHÁÂa¤`á0R°p)X8Œ,F # ‡‘‚…ÃHÁÂa¤`á0R°p)X8Œ,F # ‡‘‚…ÃHÁÂa¤p—pB! »8tˆÞO¸ià÷ñí(¯ßO¶ùùä«»›|»Œè¯rs B46ª¿~®²Rˆ‘‘µ¶##tLͶ±‘Êp8Ðô*7§ð×_ôJº«WãçÍΦ—*¼ù&ýýÛoôR…ÙÙø¶½Â.==±úZw=ÜÙ©M4 ¤©‰^]·´DÛZDPòõ´Îoqææ€íÛ™}v½½ôÛÔ¤ÏÎç?6nÔggÜÓâtué @»yS¿ÝÌLø0Fûç£íÊ­[rvwî_¦p¾p<³»{×ø2m„óû8>ðûïÆ–¹y³ÜåѸ§ïÝÌN)Ó`œ/œ¼ŽÂü<°{7ððajüѤh´¯û:÷ôq23¾>š‚H6>ùv¸h"qp&ÿò ››<Ÿ¹¹äÓCðHÜ%(.††èÒ’(EE䫸8q_6Ã}ÂhEàÈP[+–|lßž¼zÙw ²²€K—€¶6ý¶mmd›••üzÙ÷ŒªÔèê>úHÛ籿ýÖÕ_ä/ä­æÊ`ÿ~à?¢ÏÊ¢òªªŒ­—Å`áDã¿ÿjjèžO$™™ÀåË@e¥9õ²…ÊJàâEº$)x½´E³Îjjj€'Ÿ8Aû˜ð¥*/^%%´}ï°aƒ¹õ±Ê¥ÊùÇȰapî\x›Y·8Œ.¸sÌ$ ‡‘‚…ÃHÁÂa¤`á0R°p)X8Œ,F # ‡‘‚…ÃHÁÂa¤`á0R°p)X8Œ,F # ‡‘‚…ÃHÁÂa¤`á0R°p)X8Œ,·ÒՕЗüø<7rû6}± ÐîÚ¥Ù”_sâVž=ÊÊ€±1ú» ¸qxã Mæü$§™œêê¢h»®ŽŽé€…ㆇ©¥Öw,,7ÐÓ¼ÿ¾z«29Iyzz4¹´_g`€~÷ï7·É"Õñ\º8,-iË¿nðÃÀD=lÏαÓ^x”êx†‡½{…}vÀà PQ±æ=;Ç_~I¹±1Ú¶;©Œgn¨¯×/€lêëɇ €°ùvkÎÔ—,.SÞúõÀÄ““ÿN‹'æ÷qzzŒ;É•¥qu›N‹'æ ç×_U¦♞¦Žuy9-óxè·¼œöOOkveÞò&&œU¦Õã¹|hnffVîù’¹qèí¥VLÃ7HÍkq¬~¢­ä;Ñ2§§£‹f533”OCËñƒïDËÛ³gÝOäùÑÑ„BTôb®p„´¨ìl!ÆÇöãã´O‹m @e¹5-£*XC8BÐ hlT?Q••BŒŒ¬µ¡cj¶ÆˆÆÊñ´¶†í=dË£èÅü€Ýˆêé~ú øùgàÏ?ÂBêé77Ç“ÃÀÙÑ ­×_§WvìÛGöi¬Ïô4ðÎ;ñïGCö|[#O¬¹ªX°p˜¿™ž¦é„+Wè&ŸÚý£ Ãvór1¶†…ÃHÁÂa¤`á0R°p)Ì[sÌGäh)Ip‹ÃHÁÂa¤àK•HÁÍÝ4O`Rç×C÷¡‘§i®Àõë×M«c"4r= À58}ú4B¡i•b¬M(ÂéÓ§•?¯ýÀ]ÿœ˜˜xíÅ‹سgÏŠu¥  …ðÉ'Ÿà»ï¾€ €)³âuxµ²+ˆþþ~ ¥Vˆ1Î! Šþþ~"—ŒÖ ZK("Åó$"'N‘é ^‰Fˆªy<žlð( ùˆ!ãž‚O×|#„˜UüŒí)(p,ÆÐIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/flipable/content/9_club.png0000644000076500000240000001376712536324427030006 0ustar philstaff00000000000000‰PNG  IHDRŽÀÒ¯[sBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î<tIDATxœí}P÷ýÇßËÁá(¨Xbm3ƒ ÔZG”¤æ¡b2¿4MÓŽiê8MÚA£3жM JSc¬õ ƒIi Á‡ HLMm&Jä1jO4rŸßz›Cnïvïöéöö5³3ÇÞ~¿ßÏ{ïÍ>|¿ßý,CDpÂ0ŒÀJ™fˆ‡N0Ó   @+€ "²±ßîš'@'Ò}q³tÈgýâb@V«•jkk©««‹t‚›®®.ª­­%«Õêj |º{–2ßuÑÈȈÒñꨌ‘‘***r=ò˜¥ÖY­Vœ8q!!!Ðѹ‡Ãœœœäݼy“¦OŸîóa:$$DÐöiiitëÖ-ŽÒA¥‡ —ø_㤧§s ÉÈÈDss3¯±›øøxjhh ºº:v]cc#:uŠWßIxx8}ðÁ‚ã v=îðÉ8UUUœG›íÛ·ûÈ{ï½G3fÌðøŸåH½|ù2»Þ¹®··—æÎËY~Ö¬YtöìYŸbÓõŒ…ýÍY÷¸ät8xíµ×ÐÐЛ͆Y³fÁd2aýúõ쬿ÐÐP””” ³³gΜAll,-Z„•+WºM‰âŽÁÁAüñDkk+NŸ>°°0äåå!77˜8q"`ÿþýì Ã;wâ©§ž áèÑ£ø×¿þ…ãÇcxxÈÌÌÄO<Á;±ÐšW¼r ѼyóÆ8~„ £Æc†¡ððð1ÛY­VQÏÁ‡ƒfÏžÍÖŸžžЯT=.¿±{ãlذAÐÅš»å¥—^-àŠŠŠ1õÿþ÷¿­~¹ T=^ãéB˜ï’––&J°[·nu{×B[·n¥ 9 d=^c2™ü6ŽÉdò;в²2¯í”••ùÝŽ\ºö…uÏ=ǹ¹¹8qâü!//ÇŽó«uá5•ÛªU«8 ÇÄÄ 44F£ññÜo_|á…üQGí¸=U•””ŒéÐZ¸p!Ùl6Z²d Ýn§¥K—ŽÚÆh4ÒÆå=†êȼªœœ={MMMèïïGvv6rssa·Û‘””àN^Àèèh´´´ ¹¹f³ ,íÁ<uá×dõÒÒRÖy¥¥¥ÒX[G•àË3‹0㸻+Pó]€Ž¸€ï©JGÇŸdëè8Ñ£ãºqt|B7ŽŽOèÆÑñ‰€0ÎÕ«WQYY‰œœŒ7IIIxä‘Gðë_ÿJ‡'­èÜ('ž‰ü^]|í”-d"wE zTo=³zdV—=³zdV—­e"ךÕGk™Èµ¦GµÆÑZ&r­éQ­q´–‰\kzTkœ‚‚ÁeÔœ‰\kzT;çÚµkHNNæÝ“j6›qñâEDEEI™ohEêçãÄÆÆ¢ººƒÁë¶F£o½õ¢¢¢0<<Œááa"†Öô¨Â8v»ëׯG~~>&MšÄNx?uêþô§?yÌ$n±Xðç?ÿ‡ƒ>ˆˆˆDFFbîܹxá…83˜K‰Öôp¡hϱÖ2‘kMϽ¸Ä¢œq´–‰\kzÜ¡¸q´–‰\kz¸p¶¯gVwÁŸy2jÔ#5Šq~øaÙþ;ËÒ¥K9ãñwžŒÚôH…KûÊGM™ÈŘ'£&=Râl[±S•yì&L˜0fÝÍ›7ñüóÏóê+!"üøÇ?v{ÚR‹¹PÌ8jÉD.Ö<µè‘ ÅŒ£–LäbÍ“Q‹9QäG-™È·˜˜¨Z=Rãƒ2Æ!RG&òèèhÁ?rLLŒjõH*ŒC¤|&r×\Ã|—ÌÌLÕê‘gÊ¥è¾KVV>øà^™Èß}÷]¶ÜÑ£GñÔSO!..ÇŽó9yAAÚÚÚÅìižŒÒzäDÑ#_¤ÊD~õêUŠˆˆà}´1›ÍtýúuÕê‘—}Æ‘2y]]¯k£ÑHGŽ!¢;¯,R¥) (㈕‰¼¯¯Ö­[G‹/¦ØØXŠŽŽ¦ùóçÓÚµki×®]‡, UWWÓªU«hæÌ™d4)<<œ²²²è¿øõööÊ®G Æ8be"WË<ÍgV×MMMøÎw¾#‹ÆÃ‡㡇’¼¥pÎ9Ö¼qúûû‘––&Û”‡„„œ={111²´'7ªŸ¬.Á8OF4oœ“'OÊÞfKK‹ìmÊæOU èé鑵ÍÉ“'«êi1 šSU°Í“‘ Í'ØæÉÈ…:=<Ð××çõ4Ê0 磲ÙÙÙ8xð ¡q¢ô<¹Pu`UU•ǹ*!!!TUUÅY^mód6mÚD‹Åã²iÓ&)v¥(¸hU·qˆˆöìÙC¡¡¡c~¤ÐÐPÚ³g×òj›'STTÄYGQQ‘»L2Ê8DD;v쳓ßxã ÞåÕ6O¦¸¸xLÅÅÅÂvŠœqˆˆrrrØÀ³²²Èáp*ÿÅ_Pyy9=ùä“ôõ¯¾ùÍoÒÏþsÚ¿ÿ¨Œ¥ÕÕÕl;;wîd×ߺu‹þñPII ååå‘Õj¥çŸžvîÜIÃÃÂb¹uëÝÿýl;Ó¦MSd*¨Pœñª¢Çn·ãÕW_u;ñéûßÿ>Ìf3à/ù ¾÷½ïöîÝ‹åË—nܸ·ß~ÛíħŸþô§7nïXˆ™™™ìä®ôôtœ>}!!üo@‰‡v«gÖ¬Ylª“;và™gžTUUaÅŠl.\p«'//wRà׫ÅÄÛ¨ujj*}ôÑGDDÔÕÕÅ®ïèè "¢öövJKKã,?cÆ zï½÷xÇãï<™‹/Òüùó9ãY´hÙl6""úä“OØõçÏŸ'¢;ù{ì1ÎòË–-£žžÞñˆK,ʇov‡èèhª©©¡Ý»w³ëAG»ví¢µk×Òüùó)::šbcciñâÅ´nÝ:êëë“]O{{;ýèG?¢¯}íkìJrr2ýð‡?¤ššúÆ7¾Á©'33“jjjhÙ²ed6›Ùõñññôè£Ò¹sçd×㊪ŒÃEuu5¯±,ƒÁ@uuuJ‡ë–ëׯ³ƒš---4a¯zL&}øá‡DDtéÒ%E®e¸`Oÿ¬{TöxLOORRRx¿%.""—.]Bll¬Ä‘ùÆÀÀRSSÑÛÛËkû©S§âã?Æøñã%ŽLª<¦¼¼\ЫPQQ!aDþ±mÛ6Þ¦€Ï>û ;vì0"ÿP­qþùÏ .óöÛoK‰8ÔÔÔ.³oß> "Õç“O>‘¥Œ\ü÷¿ÿ\æÂ… D"ª5Ž/¯ŒŒŒ” åp8J‡À‰j3sæLÁeÔü¥/z”ÿâ‹j³`ÁÁerrr$ˆDæÎ+¸LVV–‘ˆ‡*ûqé«_ý*ï.ø3fÐ_|¡tØœ\»vMÐXV\\]¹rEé°Çà£:CDÔØØ8j^.×b0èäÉ“J‡ë•íÛ·ó6Î[o½¥t¸n ã½ÿþû4uêTÎüÀPkk«ÒaòfïÞ½{Íf3íÞ½[é09qƩڞcWpèÐ!TWW£­­ ±±±˜3g²³³ñôÓOÃh4*¢ >þøc¼þúëxóÍ7qùòe„††â@vv6JJJ˜˜¨tˆœMòH5CDèííETT”ꆸУ㪫ÒQ7ºqt|B7ŽŽOèÆÑñ Ý8AƦM›À0̨eÓ¦M>Õ¥ê@ñ)--e;òJKK•E uêøÎÙ³gÑÔÔ„þþ~dgg#77v»III€ÎÎNDGG£¥¥ÍÍÍ0›ÍX°`RRRÜÖ§šŒ\:ÒQRR2æ¹µ… ’Íf£%K–PAAÙívZºté¨mŒF#mܸÑm.ÛéÆÑ"555œãa111JF£Ñã3i‡S/ôS•¶ÉÍÍʼn'üª#//ÇŽµ.`†6oÞŒªª*Û<÷Üs(**’)"ÿKOTTìv»_u˜L¦1é[ê'3‘»C=ééé¼çþp-iiicêuù^ýÆ! ÜLä\H­gÆ ~祗^SoÀ'P3‘s!µž¡¡!š7oÞ3L˜0aÔcÕ ÃPxxø˜í¬V«Ûxœß«âµCÄ#¹ÑhDqq1›‰üW¿úÕ¨ \jÊD®=aaahjjÂk¯½†††Øl6Ìš5 &“ ëׯÇÈÈÀ`0 ¸¸8sæ bcc±hÑ"¬\¹Òkº=E8ZËD®f=UUUnëd†¶oßΫ—rÊGk™ÈÕ®ÇÓóƒ>ȫţµLäj×ÓÝÝí5>G2Å£µLäj×ó¿ÿýÏ«q®_¿îµçöŠM«ÐZ&rµë1›Í³”Ι3GðóúŠq¦M›&ûèôéÓƒZÏéӧݦś8q"9s†W.å”1Žœ©]‹Ùlz=çÏŸ§ÂÂBŠˆˆ ¤¤$Z¾|¹  mųxñbÙwôÂ… u=~âl[±k­e"ך>(rÄÑZ&r­éáÂ%eŒC¤½LäZÓãU‡H{™Èµ¦ç^Tc"íe"ךWTeW´–‰\z>ÿüsÚ²e =óÌ3”žžNÑÑÑÅ.žP­qœô÷÷óz5´s™:uªÇ·ü*ZôìÞ½ÛëE¼'ToœW^yEÐÅ"^ïW _ôlÙ²EÔžxâ ^ízBõƱZ­‚wtNNŽÒas¢´ž7ÞxcLýYYY´mÛ6:~ü8uww“ÍfcO«\¨Þ8“&M¼£ãââ”›%õ\¾|yÔUTTç’ššJO>ù$577 ©K½Æ! üLä÷¢„¾f5 TVVÆ·.u‡ˆè£>¢_|‘¦L™rçV04”ÒÓÓé¹çž£ÎÎN¥ÃŒÜzø…„„лï¾ëµ.Õg«p…0¹'äÒãšaÂf³±ŸºººP__uëÖáÆ€ï~÷»øë_ÿê±®€2ŽŽoŒJMÂñ;¿üòËøå/ HJJBGG‡Çºtã|ŒsñâEL›6Íëvºq‚>Æ•ôÀ›qTÛ¨#/aaa‚¶×d8Ó›ð]Ï…nœ £««KÐz.tã111ìçúúz·Û¸®wÝž Ý8A@FFûyÍš5سg›‘Ôn·cÏž=X³fÛí=¡úžcÿ8pà€Û^âqãÆ¹]àÀκœÛèGœ àñÇÇŠ+Ƭ³nÅŠxüñÇyÕ«q‚„}ûöQVVÖ˜w¹?ž²²²hß¾}^ëp–Ñ;ƒ‘‘ô÷÷³GFFÂ`0ð*ëì Ð ¾»» „©£6 ¢££—ëîîv~ì ÐmmmâE¦£I\<Ò ÊÊÊ4÷”€Žx8”••9ÿl5øÀÿuttDÞºu ßþö·G Šéè8¬Y³ÕÕÕÐàiçEq>î^-[­Vª­­¥®®.ɯòuÔMWWÕÖÖÞûj>ݹ›¢/ÍÓ 7Bú¢/¸ã|§_r¹ gÆ `%€L³ÄC'˜éÅ›§VDÄÎ;ý¤2èÕå IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/flipable/content/back.png0000644000076500000240000000261212536324427027514 0ustar philstaff00000000000000‰PNG  IHDRŽÀÒ¯[sBIT|dˆ pHYs¯¯^‘tEXtSoftwarewww.inkscape.org›î<IDATxœíš1kg€Ÿ“M2L)ƆL… ™ƒáÀ“—x÷\èÈlä¡i&ÿ€ü g½ß`0O]BVcŸ*h1Áâéë ËQT+ª?§H×÷yàëÑpæ^îûî9)%FE±¼6€çÀ*™poRJ·&¥ÄÍðlç@òð¸ã8¶oçelhʲLUU¥º®“Ħ®ëTUU*Ër|€¶ÓÍ*µr3Miww7õûýyŸ¯,ý~?íîîŽßyV àgàuY–Òjµ™d0°¹¹ÉÑÑÀ«Ã0NÇ¡‘©´Z-:ÎèÏø X­ëšµµµù™,<Ýn—õõu€^ÁpÝm’E¾HQ,ÏþâëÿüddñHéÕ½›ÉÂÁ‘,Ébæg’YkŸ4“ûîe½ãH÷¾ãŒðiëÿAî âG²IÀÔ\ðËgÇ´ÏwvÞ¦ëëO/H¯¯ûigç­~Aý¬ë9ѼxÇ‘,f¾r˜ÜËŒÖÄÑçíö#./ÿ¢Ý~ÄÚZ€n÷òö3ýbù¢€÷ïÿ¸ózN^çIþõ+‡YŒN†' —wþ#úÅñKK_g¡yÐgQÖlýý¼{™ Þã<}ú°Økºþs¿¼Üâââã×sò:OòÕö8Ýîü×lýý|Qp;8ÁŽлǑ¹`Ç èí8z;ŽÞŽ#°ãôv}–·ãèí8Ò,ì8½GoÇÑÛq$vœ€ÞŽ£Ïòv½Gš…' ·ãèí8z;ŽÀŽÐÛqôYÞŽ£·ãH³°ãôv½GoÇ‘Øqz;Ž>ËÛqôvivœ€ÞŽ£·ãèí8;N@oÇÑgy;ŽÞŽ#ÍÂŽÐÛqôv½G`Ç èí8ú,oÇÑÛq¤YØqz;ŽÞŽ£·ãHì8½GŸåí8z;Ž4 ;N@oÇÑÛqôv €' ·ãè³¼GoÇ‘faÇ èí8z;ŽÞŽ#°ãôv}–·ãèí8Ò,ì8½GoÇÑÛq$vœ€ÞŽ£Ïòv½Gš…' ·ãèí8z;ŽÀŽÐÛqôYÞŽ£·ãH³°ãôv½GoÇ‘Øqz;Ž>ËÛqôvivœ€ÞŽ£·ãèí8;N@oÇÑgy;ŽÞŽ#ÍÂŽÐÛqôv½G`Ç èí8ú,oÇÑÛq¤YØqz;ŽÞŽ£·ãHì8½GŸåí8z;Ž4 ;N@oÇÑÛqôv €' ·ãè³¼GoÇ‘faÇ èí8z;ŽÞŽ#°ãôv}–·ãèí8Ò,ì8½GoÇÑÛq$vœ€ÞŽ£Ïòv½Gš…' ·ãèí8z;ŽàÁ{œ/~àÝ»ß9=ýÀêê7@A¯÷'Ož|˳gßëÌ?~¼Ìéé‡;¯çäuþç< ÷8i6¹ƒãR%Y88’Eöãø´[™ÄÀ;Ždqï;Ž›bï8’‰ƒ#Y88’ÅÌ(2Îxìt»Ýyž4€±éµ€€“““¹4ƒ±9iÇûûû ƒ¹”,6ƒÁ€ýýýÑŸÇKÀ¯Àgggí««+¶¶¶n×1ÍÞÞ5ðÓhS¼ÍÍtʲLUU¥º®§þ˜GbP×uªª*•eyû.`;¥4|šJŸ†ç|ì ãÇ97C“R¢HcáEQ¬/ à9°ŠD¦Çðáéx“Rº‰¿¢^S$â)IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/flipable/content/Card.qml0000644000076500000240000000612612536324427027476 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Flipable { id: container property alias image: frontImage.source property bool flipped: true property int xAxis: 0 property int yAxis: 0 property int angle: 0 width: front.width; height: front.height front: Image { id: frontImage; smooth: true } back: Image { source: "back.png"; smooth: true } state: "back" MouseArea { anchors.fill: parent; onClicked: container.flipped = !container.flipped } transform: Rotation { id: rotation; origin.x: container.width / 2; origin.y: container.height / 2 axis.x: container.xAxis; axis.y: container.yAxis; axis.z: 0 } states: State { name: "back"; when: container.flipped PropertyChanges { target: rotation; angle: container.angle } } transitions: Transition { ParallelAnimation { NumberAnimation { target: rotation; properties: "angle"; duration: 600 } SequentialAnimation { NumberAnimation { target: container; property: "scale"; to: 0.75; duration: 300 } NumberAnimation { target: container; property: "scale"; to: 1.0; duration: 300 } } } } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/flipable/flipable.qml0000644000076500000240000000435112536324427026727 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import "content" Rectangle { id: window width: 480; height: 320 color: "darkgreen" Row { anchors.centerIn: parent; spacing: 30 Card { image: "content/9_club.png"; angle: 180; yAxis: 1 } Card { image: "content/5_heart.png"; angle: 540; xAxis: 1 } } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/progressbar/0000755000076500000240000000000012536324427025206 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/progressbar/content/0000755000076500000240000000000012536324427026660 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/progressbar/content/background.png0000644000076500000240000000065212536324427031510 0ustar philstaff00000000000000‰PNG  IHDR+'@1sRGB®Îé pHYs::—9ÛÂtIMEÙ  sðÎP¿°X,•€GÁùéq«ù8Õ›Þ³qv¢”¢ˆÇÜqó 7Ë+EÎ#:»¹RJÃñ¾¥èüË¿H© ¤‚T þ€1¦­!~G)Å›uFê8nÌ#Í‚·××Í#"5-k·R©ßÞt;íYeа}·Ó¾¾º<8<’RA’ñ…a£áõã¾c,çäª{µÍ­ñˆ  ±mÛ0Mm] ')…€/á0ù;‹GÀ´IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/progressbar/content/ProgressBar.qml0000644000076500000240000000611312536324427031625 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Item { id: progressbar property int minimum: 0 property int maximum: 100 property int value: 0 property alias color: gradient1.color property alias secondColor: gradient2.color width: 250; height: 23 clip: true BorderImage { source: "background.png" width: parent.width; height: parent.height border { left: 4; top: 4; right: 4; bottom: 4 } } Rectangle { id: highlight property int widthDest: ((progressbar.width * (value - minimum)) / (maximum - minimum) - 6) width: highlight.widthDest Behavior on width { SmoothedAnimation { velocity: 1200 } } anchors { left: parent.left; top: parent.top; bottom: parent.bottom; margins: 3 } radius: 1 gradient: Gradient { GradientStop { id: gradient1; position: 0.0 } GradientStop { id: gradient2; position: 1.0 } } } Text { anchors { right: highlight.right; rightMargin: 6; verticalCenter: parent.verticalCenter } color: "white" font.bold: true text: Math.floor((value - minimum) / (maximum - minimum) * 100) + '%' } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/progressbar/main.qml0000644000076500000240000000545512536324427026656 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import "content" Rectangle { id: main width: 600; height: 405 color: "#edecec" Flickable { anchors.fill: parent contentHeight: column.height + 20 Column { id: column x: 10; y: 10 spacing: 10 Repeater { model: 25 ProgressBar { property int r: Math.floor(Math.random() * 5000 + 1000) width: main.width - 20 NumberAnimation on value { duration: r; from: 0; to: 100; loops: Animation.Infinite } ColorAnimation on color { duration: r; from: "lightsteelblue"; to: "thistle"; loops: Animation.Infinite } ColorAnimation on secondColor { duration: r; from: "steelblue"; to: "#CD96CD"; loops: Animation.Infinite } } } } } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/README0000644000076500000240000000167712536324427023550 0ustar philstaff00000000000000With Qt Declarative, it is easy to implement the UI components that you need in exactly the way that you want. These examples demonstrate this by creating a selection of user interface components where the look and feel has been completely defined in a QML file. The example launcher provided with PyQt can be used to explore each of the examples in this directory. But most can also be viewed directly with the QML viewer utility, without requiring compilation. Documentation for these examples can be found via the Tutorials and Examples link in the main PyQt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/scrollbar/0000755000076500000240000000000012536324427024640 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/scrollbar/main.qml0000644000076500000240000000651612536324427026307 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Rectangle { width: 640 height: 480 // Create a flickable to view a large image. Flickable { id: view anchors.fill: parent contentWidth: picture.width contentHeight: picture.height Image { id: picture source: "niagara_falls.jpg" asynchronous: true } // Only show the scrollbars when the view is moving. states: State { name: "ShowBars" when: view.movingVertically || view.movingHorizontally PropertyChanges { target: verticalScrollBar; opacity: 1 } PropertyChanges { target: horizontalScrollBar; opacity: 1 } } transitions: Transition { NumberAnimation { properties: "opacity"; duration: 400 } } } // Attach scrollbars to the right and bottom edges of the view. ScrollBar { id: verticalScrollBar width: 12; height: view.height-12 anchors.right: view.right opacity: 0 orientation: Qt.Vertical position: view.visibleArea.yPosition pageSize: view.visibleArea.heightRatio } ScrollBar { id: horizontalScrollBar width: view.width-12; height: 12 anchors.bottom: view.bottom opacity: 0 orientation: Qt.Horizontal position: view.visibleArea.xPosition pageSize: view.visibleArea.widthRatio } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/scrollbar/niagara_falls.jpg0000644000076500000240000030350112536324427030127 0ustar philstaff00000000000000ÿØÿàJFIFHHÿáÐExifII*  †¦ ¬¶¾(2Æi‡Ú  SONYCYBERSHOTHH2011:05:13 17:55:23š‚ô‚ü"ˆ'ˆd0210‘‘,’ 4’<’’ ’ ’D|’6L 0100   À ‚££ ˆG 2004:04:18 13:16:072004:04:18 13:16:07  Ò SONY DSC fPrintIM0100R980100  "*(2–SONYCYBERSHOTHHÿØÿàJFIFÿÛC   (1#%(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egcÿÛC//cB8BccccccccccccccccccccccccccccccccccccccccccccccccccÿÀ“Ä"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ìé(¢¨AIJi(ÓHiOZC@9jV¤^´’w  sœæ¨Ly«³µFQÖ¦¢5_o«G”"ªd© ö h‰¨XüßJ²ã#" n<út¤3ÉÛ>•ÄDx€Z{¨Ø>niǘ=A94 €8ò¶Xv÷¤ƒ–SÓ•ÍWF*AÚ@¥]‹k9RØ‘HF§·¦G=i»8Èaǵ:92íŽTõöíJr‡i'§Ö€+´C•$⟠(rƒC“œç¸¤uÄHÚ7t  -!9Á#~4øT—ëÆOzhpȦ$ŒÌÄu=p:R3 ÙAàôUK‰ÌùÇ4P3Ô¨¢Š²DïE3½”ô¤=(‹Ò£”àT½ ›¥S”õÍR–­ÊsTåÍAžH¨$9©˜TOÈ 66†¤’5å}Ìö÷§ÜÙ_ÆÊRÆQðþ¼S\$ŒsœýE[|Î;õªJ§Ë<žx  þSÛqŽàR–Ú­´sŠj·G8<ûÔ±´m ‚œ`ûRÊXïç¨ëSïÜ€’:tôªû6‚¡pG8>õfKÅÂzŸZ]Ã;ÏNy'­LϺ ã5Ük ž‡ËØiÊ­° g¥JùÇðâš0‘î'òiÇø½°¨ÜŸ{§8©QØ3’Anzõ¢šW pHÉéE1žºE%?nhÙëTHÊLT»G¥!ˆˆ¦ž´ò)½è7J¯/Jª¼¦˜ŠRU$«rç9ªršê5,*»P'­4ðAŠF'qúÒÔP0yv‘‘œ÷¨˜ƒ`úb•éˆÂB@^£­ +²„ŒõKw);zgÒƒš‚<íõ4§ y`ò¤24”¼aÎrx9þu+y®§¨`V¥U „Ž€çH¸o3ª·èh'2E3ëOMÈ@äŒÿFU§·-ïÁ§Ä­åÆÍq‚z”®HêiUZiV8гŸ ¼—¿qIÉ8ïZè†Ê(€nä³u4†E‹l±âuf“¾ À¢¢]FLq3¢€=4RRU¹¤4R@†°¦SɦšFõ^SS½A/CLE9OJN¼ÕÇ'ÒªLy  ’žj ¬É˜†YV÷ž÷‡ÌO€¨¦Á'¿ja“=ê6r dÒr ãÿ¯QÆvˆÈ{ÓËÅ5dÃ’sHľH'8ÏJ‹v©#'¥?úÔŒH%Ý!p@¢b<å<0 éQ°?|ëî)Ãnäàô ÄÁ!%FTǵM¥ØK~Í8D?{ŽÕ-­™ld„ô­HÍ Qòñ´"œ) ³l±[¨Š$ ­Ž§Þ¤)ÃnPùƒÞ¡k¦O›‡qži‘Ü4ÌG*}O8 ÊÙ(Û0ã J*Ò£cïþcPSIE&j€ZCFi¤Ð! ¤&šPâ€"j†A‘S\0MŠ£æs€}8ÿëUY#,ˆ²9.¤6WŒ‘EÅb FÑɪÈ#P\œâ®NÔã‘Æj…â*ÂØm¤Œb€*Ë'šq¸ä{Õ  V-ÇtÅJò`"»´ÒÂÊ“0lÃ9ÍW–u ¿# zŠˆÜ¯˜[iÆ1S]0-„æªìOéL1!lp{SYØpAíR±>^3Á#µFÃs9íH 3)‘9ÁäpjPwN9Ó¡`… î ûw§˜øÏ=qÚÈßÓ f¬[Ù™!ÄK÷€ªÌ0ê·çV_X’Õ"vžHjÖŠê0bˆŒq’iæs$ªºŽ`6µ.ðÑĉìMý²vcjï=À¥aš“ðÛ£NG]ÚišõÛ•Npj„zÔ†L¤ûTÃ[;ñ,hþ£Ò€&}iá;%·e`;þµ¬D0FHôS¹¢ŒŠ© 'i¬ØéCb³u+ƇÆpÄdš.îï–"R2Nþ‚–Þþ™’OŸ¿Ö4(g™cS[1ØÛÇÜ<ÆÇÞRsùTÜ ×—í"ƒ §*ãÿ¯T£”ÂÃÄ?†ëMfÆ3×µ4¶AÅ4òÙ<œUˆVnÙ# û¹ãœÒ™ÇCß½4ªGnø¤Ý£Ž$$e·qØU€AŒò1éY³ œMZI€gǸ¤0•÷N2zÕYÐî½X €Iäu¤¹PÁFÜ1=¨šŽI8=©vjarCôÔ$†lã>ÔÀØéïRÀäŒdsMOïmã¦@F×-þཱҊO8ŽÂŠõ¼IÖ‘™QK;sYwš©ÉKqöKc,Þ^ÇlÎç좰..iK¹É4ŽÅ˜–9'©5£JûPdúT½@|S´-‘œð­› —•‚,lœgîaRÓ´ÙLË,Ê1Ù»ÕíVìÛÁ…Ê“ÀÇ­ ]Rg{©¹;N9þ•Ÿ#íTŽFK1ËMQšBÇ­ \4„­G“ÔЊ]½©ÒÕ`FO4ÒQNÇëJ£×>šB-Å#`q¸~¬Ù>‚šÀø÷¦v’3ɦò¯ZRFÒõõ¦1Ú™4€@U•¾o˜‹woÔTEˆ'”ªHã$»dMÇ=Ni“ïbóǧ[s=³À¥›>Q‡ =)SnG@pivÛBò)`pzûѸ£qœŠ`"ŒòÜsMݹò{T²l’0IéDQ«ð¿10PxU#ØÑHä£VŠî.ïwù›>Þ•´2Üɵ©ô«iáäA,Ÿ;rPuZÙŠq.Ð*,3+û$’A| õ«–ÖQŠY‘üXæ­IåÀ†I¼’k ÷\im¯Ê½sFÀjÝÝÇl™bǹ«ëçºrO{ÕÈâW+&§pTtžJ¡©ÏnÒÿ£ U脎z b@î»ö àššÒYšÅS¹«÷‚5·‹ÉˆÇIÚÇ–÷§p3ðp8¨óïS¹Ž>•YÎ0O8ïši\®pxãÒ˜ÏÁçò¥mÞ£'·­ 3Þ¨ ò޽)‡mûRǧRa@àR0AÐw¨%nµ+}ãž=ª¬‡v@íL™¹â¤ˆoqíQž}*X>òКЈÉ Ôr¿Ì@úÓƒ|ê¹ÏSQÝ‘ç± ÏåH îIbsŸZEÆAn9¦²ÇœóÔPÌX`õéç‘\ýÞ:f˜¯Œþm“·Öž±‚=4 ²±Ç°É#ÖŠ¬ICŒFh G«ZZ%¬AAÜ{±êME¨jQX§#sžŠ+—“P¹“ïÏ/ýõUe¸v¹ÝîjoØ«jzœ÷¬w¹ ?„tE%q‚9Å42çëNT}ûÐWiˆBÏ’eÜ3Ó"¬Ál÷yJ‡Uôô CÌÓN¢V#©ãÚ¥•ÆÙ<½±îÆâ‹Ž(µÀ/mžÒ(í%T—½@òËps##·&– „rüvSB*®2:úд§%0PûŸJ®{óŸ©éSÎÀ|£}ê¶3ÀÅP‡€r}¨ØÉÉühÍ1ß4âý©¬qßëLÏ4Ö4ÀŠW9ã¥@ÞÕ;€Æ˜" •I9Ç^ M.0qÀç#šÒ´³’é#>cE°íúú‡åSÝ¢ÅfT@=j[è;QÌ ÁR ãJc!’w ’£Mqypdx\egcÿÛC//cB8BccccccccccccccccccccccccccccccccccccccccccccccccccÿÀÀ!ÿÄÿÄ=!1AQ"a2q‘#B¡±RÁÑ3bá$r4Cðñc‚s¢ÿÄÿÄ !1AQqa"2ÿÚ ?û8M „ €B!P@#€¡„b€â0 9&˜BˆÂ§¼p†%Bœ 3$À“Љ2@ÌÉ0 È0 É0 É"“ï&Iø »N~¡5!Ê¢"Þ²`[Ú@‹Ú =ä™Bb¢†A™‚$Â’Ý‹„fä•ß´9Q^ =;öª¨*[ñÚ} £sw(š 7Ì̈âIrê6ÛUÙûJl!Ð9máH+c¦e¥=æLû’E*D XØä‘CãæsuxU2iBH>NòÊ †%UXé­‡ÌÏIÖ¶ãxàn´þåæÆÑ¹GÈŬæ¤éÆêÃXºìf˜Ê¨rOÓÚ7DS¯ÄË«²šþ¡qËúvb™Êùí=&ŽAŽˆ]ÍÉèŒ K.4÷þ&‰äêuH­÷º=áâÈ39v'†B£ÌÈcôhµÖŸq=Œªç͈§Yju ÄÔ>… ˜ê%¨ŽÐ2éÐ/Túƒd¨>'Q}xÔ– éÈÃÕ­õ%Å}!Œêé™ðe,4¨¯ÿrQÙ›*ܦÁÿiç#X‘d1—Ät»ûÅpäåu|K[‘½À“ˆ`Ém°ä¼ß¢§Îll"ŠÆUú®,$Ž¡‹>@6^çý¡X&"ˆ§°˜/¸­vó%Ê j½Ôš‡KvÜÈ­Š¥~›ºñ!Jú ¨ï@W2ÀeS¤®M‰îfU«-žÄ ª†ˆW“îñæ/SÕ$@|Ì«fÈ£¾šyÈHÒTn/™P“ÚIø©¢^•7`|@ëÀƒw$YàT¼Ž&l®€ê÷©•ZXi؉Ѫ÷1Úü@ßѲ«|Ð|ûIä@L‹…4 â&ÊS¦ê_Êé[pãº0Iø¸—^ #Š]îQ=` Š»Ì„4WÉ£õÿ·FïÄç骆“¤wb}HÀÌÅÈ×ð$ði„€ x› Ψ¡Av± Ïø³-±bbOpDé^³@sdÇNõýàÖYzßÓÀ¡”ÿÀÔ×tç"ŒjOÙö“•×èX€B„@!!„p €Œ  Š€€@!;I0p-FÑʧ€2Lflad˜dD™ “ Àƒ&ˆ˜w…@bKiÃÞ¢`v­FÀWy¿QßqJÝy'‰D•ò?h¨DŠžÀsoM w#7·uï*°>7EX‡qÛûÈ·¢þf«±¶§ ’Ü€š TÕ¶þ CPºDÀâ§õP”HPkàNþ‹ Ë™5ä#.u1æùzœ]2²âEs_S>Ây£çêE›$ȯ_ñK±ùƒu ±±©¶û ½…ÆIq©¼òfi©«Q¾ð§’Ø6ó‹©6†ŽÐ1LztEæ÷ž€mð•#H]̇\åŽÜTj-”lNaK®±Üv™t¡t ìb±ï¨ï3'z‘ÔúG´}U:ã##a(¯A=pJƒðEÎ~­³xPÚX#£TŨœXݯbÂê{eÍ™qŒ…\Ö€‚&mXûxNŒˆ@!B „€E„ @P€@À˜(Æ BB‰0€G ±ðR€É2D`AaddD$È$È0$É0Ú(@@s<–Z»@ä#ÞDFµH«íÙ5ÐÖGs +¾d "À$UæfAã}¥ûˆŠ‚hšûÈ[S¼ÌhA1pŸyBAl‰‰Ôw¨Ø^b yÓ´‚±q‹ß1d$Ž(B¬ XÈcu1¥(]í¼ :’Í@““*“©GàöŒí–'ûGˆL„¯;}¥ãA¥”¿0ueU Ü‘‡tg ” #só5j º¨ûv‘^z¡G:£5l@}-¼j­ ï{šueIÛ‹…o‡Pˆr¥2íS_Pãnò 7´‚ÙShÔo8ºœjùé¬ÊÃqÁie•¡6TŸ¦—o´Ç¨éŽL@!Ô¬v³ÄA—O‡ÐÃlÚX50< z´0­Ákö‹Ú(Û Ç“§È«í\ªJÙî&cn™±e:A\u:¯OU…b/Ìéÿí©"«ƒqèj)ƒQª¢<ÃV Á”…€?ÄTgÓ«¿M›«'qù›…#mÇÜH¬\€3€EVÓ©VŒìN>ÑÂÎØ“R÷j¯‰® …Ç$U€J6ô/iΊªÊÏDŽa]ÃÓ/\ „àþffÜl?´±§NYÔšG2—§õ2ØÞ»Ë‚i}MJ»1é Mòy…XĨäñ'¨!kñàÄF½KØœ¬UR‰©Õ›«-Ó”ÛYjv5^gVMŠù3>šÏΰòe£²ì‡°Þqg` ‰Ðs`ÆÅAt6mö ÙïÍôÒ·$j¹Ï¤Ó­^Æ"¹•½ÎòêÝ*­ÕKê9r*KÌÓiB{±üÌ´ÕÎ¥"§>$¦2øž¶­*OÉ&W2ŒDœu½JL`‚ZΓ·Þ¸`^ó:³~7”,4¡Ïn`>°ÂÁ¡DA_¦Âm €¡„B@"€B„ É0@q@P€ÀÀ]à#шU Å(FIfCB32L 2 2L 36<@ƒÌ¡€€È;HÈ qä>ÒXY…h,#MÈÈL¾aYFÑ&Ä¢7üLw£( Ö/ÄL¥“æh¨º„ {PæK¨ãƒÓnvV§àY®"vá„»)Pbsbª¤ Z†š»î{@€)€½åÀd@Øù'¼Ç"¥yÌvøâiÓ·Ò5ªëÌ e*ÃQû™·QxÙPý+ôȦ1b #V¯´Ï%WpXÓV÷'>;>ÍÅÅ z¢èß?i› B_Óó#Ð9yàÊXÀsB ™Nu`ŸÍ@éWÐÊë¤ »¹‡V«ê'P¬(6ò<Ë(¬}ufôÖ4#Póò&åN€Á¸bÿy?ê «Z£2v9=Ä]÷¶-D•k3tÿÈˬ`•Û™ÎTáÑé’À­e¾%þK–£VAä‰ÍӆȣQ"üÉFÈTà-õ26ëÜóGeuÒ=ÜÈ#¦FÔr³YqûN=äƒf¸Î¨¦ñ`E×ÿæƒ1L(AeøßÄ™ eØ1#É“[ªûEUì³Û´Y:}xì¾$„\x´½·$ÉÆžšÝ(Ûú¦‘*Ô<“ÍMŒXˆà¼ƒ+{Y;‚NØU¢ikºî$6àî &â„Æ\_ ËoW9º‡Æ+kkÚ»ƒ­ê)Ô( §Eü°XlUw0޽òµ² ©…剥¦ACHêS³-mÚj¶“¿˜ª†F€Ê«=ÿ1ú…عŒâþh.ŸBïùc|‚‡ÆÒ£ ø´PllfXEãp¼š’´èËí@y©ÍŽï#_¤ÁÐAôÇÜ̘mð uà%BŽüÊ t²×~b#_y_¤&b@bÊxË45w4&©³ó~"Òá6‚ €BB @!„$Æ  ! 8R„ Š&(åSˆˆÀFL% fdD™&™$À†`DP$ÅpeÏ3Ÿ*Ó_iž›"¨EþdTP,ƒbßP" ¹ù„&Ç"i¯´ Ò(Ô—Ø‚65± 1>eãV˜ =ÌOL²¶ô;@¦¯q$6—ÁâÞäù˜¸ß¼A¢°õñ‘uÚ  |÷š*ì½»ñ»Ýøñ2Øä±wU Œª‰`ÖÂcÓ°PÆÍ%“þ’×v³)‘óçemؽ ø•[Óì½´š3Ÿ*Œ6¿R°îw”N£gæfá‘ 0±|Êp8'ÿÛõäo¡÷ÞEŽ%rÑ£¤¼Ì‡¸°º<žíéB_UüœHÉL¸Øö>eˆåê!Lع­Äô>< ëÔ4‚·Éþ$W&\¯Ô6†@{<Í¿‰Eëºlžžô>üŽ%ät¶¬}qRu*’§nÓŸ§:1²Ù[ý ^æ¶4C[st¹NLž‹-kÕHX¶1GIB<ƒÌÏ62FÅ^Òª«Þ;ذ~ž¹@å€þûÏG¬ÆÀ(´ßmä 28ßM§ÿ3,…r*­|﹕õ9V±{§ï1ļê#qs--?éaÏykJ4·Ò8ß¼ =ûŠïÈ‘ãÆÚ]Á®ji *äÈ ã°™u%Bx¸Ñ‘ÖÄ ûÄŠn¿·˜V¤…¢ÝøeŒ{šÉ¥þò#c“ù"›oí8h9$í½Â™:¯ÄëÈœ_ˈGJ€¸éoiÂ6$½O~ð®œ8ÀêK2ŠÓí©˜/xò¸¦f+_1à×™òEîd2&@W’hÒEd•ÓôަܙØå“0¿R¨:¼ Þ=™—øDc½ÉU+ˆil\ŠYôæi·Ô¤`mµúƒØH#ù„ö B7pjÆÒ±îÊ{pÒ+±IÚ|N!¨£í¹4ÔG&ì$Š¿¼Ú«IŠGé›A BBˆ@!!ŠÂ(p“„BÚ#F”¼B¨F Éï™m  É0$É0$È&4ƒD`I“” _i›@Ç/i‹«‘L±ªŒÐ~L ­¸€;@uhg3­â¦CûVÉû :Ö¦ãŠo1w¥Ò 3#ôüʤ"öï3#xE†¥$ˆ 'xÐV‡Rky@Úðn§ŸÔë•®Ð\- ÆóµpKµÚEszšs’#™¾tÇÔtá•«" _?hÜHdV#w^f9zqm°Ü\A† w™œš¡¸‘•œ«ã[Ó÷”Rôàô£‹­ä6g\xSU°+¸0:ñ¢&d.§K‘¸þâGTÊ‹EÚëƒ é.‰D`w‹>eþ#!BÁmk›¾ %É×À¬¤ ˜ìÙ§7T ŒØh>ª$Mžµ N ƒægÔ;cÈʶÊNâf®Â¸º|J,`owš3^‘•4ô‰2ÑÓ— \¥&SéÊÌ8"¶ 2ÞEPv£ÌŒO`)âô™1[32¦€ ÕµÁÒ5'Ž7ˆm,䦎âsäG9µU‚Û’n^Ô–ˆR œ¹÷t[¡ñ(¥Ô¹WrAd¹*Ú€ÞL!ÔèkŽj2¤37;˜qV @ý„å ;B«KRŠ¢Ó»C‹JÔXîd¨¬HO‡ÖÄCBº•òcr\ÎÖyÔ€º[‹¸FªHsDé+ ,Á8©Í“[…ÄÕZ‡§B=>[7éhÇHÃ3°ÀŠÕU7_WF2G´X#lj–+Òl7^›"dEß0•–¢zÌŠ3OL $Ê:|4‰îy‰ ÔûÈk~˜€\VÀØ’…_VŸ$Df;¨a²¿\‡Ú¤i }彑úD&ÐE„@!!„( ( 8É€B´b„>Ñ )2‹ˆŒ¢LB@4ƒˆŒ2L "AL¢d™™0” WiY¬Ã´*£¼fEØÛB<,‘ÜÀ v©–AaOx6 #°?cI¤-µ„D©pš¸Ô:©­W\HÇ1ÜUйêåh)«•¬“O5íù”tôà'NæùSFr¹R,˜/ù†`}+ˆWž¬*O¹¥8 ÖÆ»ˆU¯¯…}§oí)zÖfÑm\ˆÄm…°®dªÔäÛÚy§f! ÍL:ŒLØ›éÛqñZ8 çyºÚ‘Òmlr;ÀèéÐ3¡§Iç‰Á›ð¹Ÿ&2I l’3jᳪn‡YòÏ#.a™ÐvUqF¸1*bÔ— Ö¤ø“œPd¦îÔ7­ÓÈìxéÔŒL” 0¡ · „#äßU~fYU­Ê Öœ@Y®±×a!¶ )B›udäææ2gÈX{Pr XBJûIù©€  éQ`ðLªê ®6çd½ù&r  â±Ú)oPÑÅ1 D²Ê=Ô,_yyÁ î.›?xù²I¾fY*ö¾cQ áo`3£ Ò->$Eç ‡âq#¨0 ¹[PÊèlµ6kôÕÍ[o(²Ê¸µn C§T|•ºêï$VN4ev×[JFžcÀ  ®eÎQ†¢¸µ¸ºm§wM”dWûHâf«,øØ P 'xú\$+ÚtÙÞQ’3§Z]΢ãÄÙ™²LOi(ê'z» I,w°}2ÖìDhF…Wx‡«ÌØ‹ûÈl£WóBï-#ôÈM „ €BE„„P„ ŠŠ€„pˆs˜Œˆ*PªáˆÀ“€Œƒ†`IŠ™Q&AA’`I’`IŠ€}¤70!§9 h§–;Ê;¼€½¡ª„*¬1÷‚ý$`}ä8µù»Œ ÖÝÅB3'ÚÀoBWRì©{ù€Ñ¶?yaµ/ú@'I»3 ˜÷Û‰FfÀ¨5n?xQ?™ õÆÛ@D­4Äd!· ›à ’{2"ÁÜJ#:wÚ4PÇì8WBŸå|Ì¥V:Øý „y׋ôêDŽ~ü™Â[‘}÷€‰m'!'W óŠåBM}怗Þ>JV ZÈ‹Œ_ÌB ÜA§NŲ©QKw5w¶f]àPpÙÉR(¨ÚâÍ’ºwR> gÓäþXc±§«Ä2b9q9B€àˆbÉédÇGgíö‹=e뺥E%]loÃW.•Ž Z20'Éÿ²M÷×ÿ2ƒp¹U_f;ƒñ7Í™PB`eæH1bQDû(á¦j¤‘v¤ƒÚ«ó(×,™[°8i)]¦9ðä\ÙF7Pµ©ûF@°f „㌞r=¨FÿiC¶¬)§ÜI_aRpÞ,L–,‰"™lŠÔkI4<˜ý]ENሿ0‰ÉÔ«g @ݼ…!\ÅY”N$Ö>;juj:Cd²v̳d•MŽÐ¬è>$7¹£`,¥¯roñÑqÎÊ;MaˆvnäXÚ1±úwžv6,í£Ç2篓ÒdÚÏq4E 5‹­„š-hêÛúaÓ¨az·€dT1„_ûjF,n8ä2í¼Ú)°ÑãvÛή‘Qu¨]$ªª(¥€ØnLɘå-¨;îx‚s­BÞÙN[!îdõå%I 65s˜+at?i¡ú¼&ÐEÅ„B@!B(ˆsŠ„!»Ç@@"0Å"”%UB1I„AâA1dD™$H Ä`IˆÀ“$ÀPcˆšfC Ío…h7ÜG~Ò ;@9'ŒwB90ÆI]ÆâFò]{³qµÇ[n JôžDwG¿Úv¾$:ê¸#Iâ÷í7AN Fr¡‡šœÙ[VÊ$ìhœváyàsæ´ w™”½€³[ÀOCš6;Èqj h´ø½»&½”Ð2Ÿ©¶5Ü@ï9f û¨°œ³SäÄý ñ œùŽ&QDƒã›‘ë*$÷‘\½RéΊ›rQý4ö©'âTV>¤äv$ñ y$±ÅØ$ÒÎX ¹/ªAÈ1h/z=¬ó(7ó”*kƒ"²êŠãΛՃ4ÑLoÿT=ÌW¼ß£SƒfÒêË}®õšrzdÚV¸âsúgBè×cƒÁW\OñGÄèÅÔKî9Uëaeud, ïs“>ŠÔÃé${\Dt©ñ([mÈÎ~©ˆÊ¤k‘œ³)};·´o4óbv+DP°{@ÈdA““]¾gNEþ[15[È2P0âÇjv>Ò>LÓ2–ÆÀª¾òÁʨ0½“õx7´nêÀèlÐ:lw?H€hI° … š;¶ÓRYNäÞ1Z’Å©MâɱU0CoŒ«›í:•‹Ô*®Õ%ŠË©kR@xñ8Q|Ÿé©F½;V®ûâiŒh Dq#¬›ƒÛƒ÷ˆ¬èÌ Y›ãe(÷°ÓÚTdÞÖS«oeØ(IÚ¬ldiÁ™Bæ>âŽàö\}ÍÓê]sfTNƒ­@å|´¼jq¾ç%VÉœ:KQâ`oH<œQmÌß—©y 󮜊 4Fõ0,ûEw“-¨ÂtdB@!„ „BPG„ŠŠ0€B `(H‚I…#E BU8 #d˜{LÌ"Lƒ$d˜d™D˜Œ &L€Š Xâ&™ˆÀçÈ»Üϼ S¼ÔnÊ4g´£7ã¢/Ss%±{0¡ úxµ}æŒo Èvï°•˰¯Ÿ5BBê› '¦{4MÌ[f` o åÈÃ×Moþ&^à(%‘Q=2»XÜ3WPE õ%¨Ì™AŒèBGRX$àuúÁ³àTÐ6¿‰eÄ ©k ZŸ=õûÀÛ¦Qí=·»£Òý9ÆüãÈ'æu¸“BA4ÞÄá]kŸÜ B<ñÌëAClù”\à€l\ÙÚö•]=7Q‘\Ô·ª¼Í³dðä'Ùêy±$áXËÒìãZïc¿™ÍÖ|xWû•Ëâ”K[“¼¥$áˉ¼‚„+—ø`™,[Lèê ¹Å€5ˆò#c*ù‚iNÞm™iu6àxÇŒ“:ä«U$iÔU0¦<@/k&À‚-M¯o‰™à·2 êÖZ€Ø\C*úžòáY–.ä®Ê9&,Ž¥F®QÑ‹Þ ¬_g‘Ð߸T# «ý s°œÃ Q©ÞFXèbÆË©¹“…FM{…)vi˜¶@¦¶‹KS¸…"Oªï,ã([Y¹¨Œ‘›6k°¨?Ìé «€NûÌ«ËÏlIòx±\ÿ ¡HQÄQ’¸õB«j5Gi®@ !]¨þò+7[MK¹}æˆ@Õç´Ò1ÛõM°¾5ÀȦ˜vªŠEÖ}Ê( ÚräȺÈZi0×êPY€¡„8 ‚@P€á„(ň@"Q É€Œ%E¬¨QÉ0Ñd4" “ “nI&#NÒL 2L1Bb]¤˜DP3q1#x AØÈ¤Zì ;ÖðšMK¹ï d×ûØjèl ±fdž +3eAz™£{·Ý€àB/ Øm¸ >ÕP!¨¸ßi¡b«u´£'²W^&UjRŽæ,æ€#j;ˆ€w»³°‘™ô¢ŽçiD:èp¼ˆð12›ÚþÒ ÐÚÁ48-“æ–ÿ£¥)‹oºò$dOI€»$]B¢íÁã¿Þ"Ê2²vÚ ûº…7TL›÷}¥dmAÁ&oœ·¡¥xäáA6çM øÉ.‚õ 0 &ïNÄÍØªŸy y ÁV1ä HÚö˜âÈ=FRÄ?@›œÃhštÙœdÔîÚ[keì{=HzvcE‚©¿ÍÉîŽb‘ç~¥‚ô戜ù½øR…ºS¬߃7À(º©ÔºlHflYYp¥â mâùþó·pä þñEäÅ‹?JýF0C+щ^©El;ÇcCbÉ3  ãwÌÇU¦›= ú¥* cj /ˆ"åËÔ ŽB¥PÀ¬¸Ïñ³ªŠ Mó¼y#!uàÞÛñ.‘_:ë}ù,ü¹ÛV°¤l–^Ä“ˆ{\¨€P«54rt Al6ì× ¼HqÈ/ÞÛ¹®Ó¥²ðÄn¤DkVeâêre{`Aö6æXÈ!Š€h݉ӡ¤M:ìé'xˆ„¢ˆŽEÈLl˜-VØB¶Â—Ÿq}æa‹¶Qf¶ß̨ŒËWyÐë¨YÚ¤õ^vp òÕŠ€¬E2ÜQxÀFÖ³Ï̼ªXꢊ!Vq…«<üÅ™iEîknd2¥ ’ăS/I†RX÷0#9dJ ±í9=ZVQDžò×!6È„ ÀP„€BŒ@!„ÅBDÊ ÅÄ`(HˆÀQÊ)e@!&0$ÈhD™&Œ$í(’d™0$Ä`#a T˜Œn&-;Êo«ik¨lb$•³ø—Œj0þ`¯êŽß5Ù±N¦4Þ h‘ÜšÿõJkc¥2“8ò·©'¹FrÀ í¼"´ÙÔÀm%±”]Nwñ çL«RŽ%`÷+;½Ê3\¾¦FQÁ‡QaÖÌ ƒŸwÌëéòóâJ¦àcRW°Ü™©6>’6¡À‹lœÓ¿ÅËÊ»®Ô%d>Ú3 RTp{Àå[r[aàDͪÇõ¼ Øuç~&Õ‰H% ¨Â½@›H[ã¼çlg<‘°øù”_HBàÉ{Yš£Åìnd ±(6/âew uòM@°ïV<žá\êWO•t·Õ{xØù ‡I=¯c1õùL‹Dc }fÝ#§úTøžV5gÄkz;¡ÑÒ6®¥tÓN¦ÀqæÄØÍ+¨Èœ€Ù ½ÆÇÄ×XgÐúG=äWWLƒÒq{0ÒTq}ŒËªêG²¥H©Q’à,š‡ÓW¿‰ÉÖ±þ]QRj¾eq²tú¢Fàw3³ôäÊ£VVUO¶¹ÚA9"éB‡Óã·6fŽªU‚`r6KÌ+uÍR…Î:ß´P\ø¹›ì}ê (1än(zPžâh-˜ªµblU(^ýÅ£ EôÉØ“µyœL¥[N×V$ 7§±©Ü‹µÜa‰CåRË4q‘P(æ÷…cÒ;—·íU·‰¶m8T¨âXŒºt¦,Hß´éÛÒ{^f}WF½Ížñb@Ïu`íRѦEÕ–·Û‰²>¦Òƈ¢-¹,n£ÏÕÆ1¡Üwây€¤d‘¼aG¦Îí·zŠ83°ÈÛjæb¨Âñ4?_„Ó" €GBA ŽPBP@P€¡ R¥ÂŠ„b€BŽ#€B2L€Œƒ͹`KI&#Àƒ$Àžñb& a F#Lņð"¥… (Èa¸í ÓŽC±…'5¸äo'5hr` [7ÚH°Â¹ÀL}ÎÕZ¦@1Hóéý7ó%ÔdÙ‡äH¬2%‰<0 w”F  ÇÔMŒ‘N<“ð&ˆ¥Ç´Š*609p€:“BÛí/­ŠGc[Ê0cl@´íé½½?ÉÜIU‹ ‡6Iš?³£ÙFçž`i¥õ`Q'Ô²yí|§Õ¦ ¤Á‡P} ’*·œÁIÈ›Ÿ“r‰…nä&4tõ/žÒèÉÅ®£Cz©ÕÓ’Ø”w Ñ@ÝXíW2VÔ¦·³ÉŽ&+±àÁkOC‚;À dtVfcc§q{ü@ßYÖšÅï:2t.l^¢{«ââQũМN¤¡ÚÇ3Uá ^¦1±ò!T:€©§ %H¡ä}çJË´¼ éÁN¥ïÍ™êôÀåÒP0ð.VES„yÛx}œnø²iàÉq¨{÷jèšñ‘d‡ý¿þçU‡J®BP×Ïi`År&w À/™Ð¹½>‰Ø°lŒÚ@ä›:„Lz­Ôn/rg*æp2;ÁÒ9ƒ ›‘c½E›ÝºÐ^oæQ¶,Ú‚†Pn ï-봯 ohh£Þ»2µQI­ÌÅG´¸x¸Se'Ib,vñ9³© ¤9±Ä#•Ù´íÌéŠé-cµˆ ,N翘²j» xU­È°~H˜õ®§¨®Ê´ÔFX#oo€juáõ:r5–œϸ“Þ6v@¡Q.‹ˆŠ_ Ê2Ä4ä$¨5݆ÀÅÓ7ó蛳µq%1¾LŠò ÏFÿ#3Ÿ]lTÑ7ÍÍÕ2#Ò jYˆÔ<÷ÈU'+ñUp4@q°mˆ"¶A¢/Ü ‚NfÂë¨rh5:±étÇìmÍs(LV, äN>¦ñ墴NDÑÖ®Aïs´u&P(Ö–™z‹‘¨n¤O˜ò)(€qbå ¶–Øó8+±º€ËuAÆÆ¸ó:z™4¶“¨ F™=ÅS»Wi¦4Ï“•UCŠ—GˆÅ—2ä’ä›3µIÒ¨ŠÄòÌbƒ*5 P ×3<§ôæºû@ç@rAÂùï7OvfZöƒÌƒw_åñ¸;Mqr( ÝqZä¿¥ŽÂ2ЏÅóâAéVfÜÕÌ—ÄŠcØÀçéÿ˜Îv¾'Kbß{ÚX:{ÇÓª°­ø´YM&Ýüù™Š1d*v(í8r[e%F­Ï>%ˆÝAL9s á`mbEsõºQ”Ù#˜ú}Ÿé6Ƹ…fZð¨<³]‘ÚtôžÌ%ɲ,A¨lОÀí]Ìœ7cÀæêw$i‰Ê£Aï/h~âÔò!-±;mõ¸M „@P€B BPBRC„ªQˆˆÈ… Bí(ŒP&’`I2 „A’`A’`(Ó3“$ÀU0©2L…ÂŽŠŒ‚ AmIì#V£Æò+JwÚF;ÿx¢È0ɽ}Ä‚R˜_mÌÍïP¯7(éBNÿ¼ÏM¹5ÞÍŒ3€x”ãÄ*‡3>Ų6 ²ƒ§S2}£oÚQ2¹aæd™“÷âjÙÒAÞþóRË•UP¸²Äñ[\БC÷¿2jƒûˆ“3aÄÜ7(îéÜ&Ì6A˜æ%ر¾ó*ãÏŒ ¢¤ƒ¤{Àz÷n枥cûàC: dýªsá_ç«{À¼µ¯Ccàví2Á–…ñ¿6 íÔžÒwø3 ph‹6G\`‘¨Ž@‘­F¢,_©2 `@2Ê(p7ï“ªÈ jM‰Ö¹™×c¹ñÁ}ßWb'>lg.Kô´khƒ•)¿ÆóuG|ZZ‚À”/ŽÀHí:pgWJqÚl¨nfyqéÌŽ¤u{À28ÆúˆµJÎêêž›w±I™ÿ‡f)å…÷øƒ¾OáÈÇVÃqþу”cv鱩U ¬[æF|™1iì;(¬ls_¿e$; 9§bÿ@<Ɉ‹°Lºˆ7p[=Sªñªäf€”´ªÙ‰Ñû@œY›*Kf¦ÝS”ǵj­¤ ÈqŸPýBÏÚFWª‹ Ú±Êøñ5s­tö4Ð\ æLÌ\¾Ñ œlTQjb7˜ +„«l9üÍ#`—¡×¸\xÐh ß3-9òšÄ6͆lÁ¾ ¤³ «Ì¼xHÕ¤£bf9WÓ9‘NÚ¿ÚBÙF(ëÝ#háS¦ VIœƒVòÁJÇWÌ‚ }_í"?Z„è‚ €á„!BPB$PàIŠBU8@Qˆ@b€¡"‘ˆÀ¡(¨@ PŠ2L" †I&L#6`LF™PI2" P¢8(É0 ÅohŽÕæáAj;ø”Ó[H+…Þ2"üȬÚñá 5_¼Ë²‰G^*8èù’Y#±£Y6pf-dŠ;Ü (”±K ÍN¢R·˜lK-mþ  l_y†E¬Ål"QÐÈQ—NÁ—{Ç)Á6h“X»ªƒ-ó'7‘lMÄ]XÆ„_i<Ž%GRz|j(/~âJ²€*š¤W>`÷÷œÀ‹Xí¼ B û~óÖåtìýäU o/§Ä}tkEB+©ÄÚß"“C‘æ`œ•°óMM§b~Þei/¤k íÈñÖÆÜüx†\`¸û@ii«ìví3Âι ÙÒW¾õ—¬$æ£9Ëé£Òé´´lŽÍŠÃ^ ï/§vÖI|™u8e¶'‰ÎåÐÀÐà™EôÙݲÑ=¹3L‡Aú4ð'CÔaÊŒ}Ü}ç~S}Z@?´”.«|%FÆg "{÷”i[a`mµq#¢%ñ¾´!‚>DˆÇ†k®ÇÆó„ç\Î1X¸m®PÐŒ}F(™ÏÕfgoLŠ$tL1êÖÞÚ \×¥%ú†r»Ej[²¨YaÒ•^ ‚~eaö¢ÖíBOQüüöZ´v3(Ý@ôΣ¹™Àv@8SrÅ%kr£·ilÆv¢`tâÿ£¥…‘S&!£]êA€±@8#˜P@\(m¶ßæi¸÷êˆÓ Hæ¦Ze .¬X¸cÓŽœ%m]qÆø†D­˜¹¤dÈÍ_ ±àPä37o¼Kˆ0 *‰ÞûÀ}[(*ƒúnÏrg#A„@öŒ’ôa_¬BtdB8 (áP¢ „ „¤ # „!(QˆPb0$AªBX€á‡hb&I„A`I“LGˆL’`A“$˜T™$@RL1\&Lv€˜@ ¨Mmoƒ"™¶+àGÿÜ9‘Qž‚'ÄÁ†%Fý1$›<ñ6‰ûÀœÂþó™Þ/ƒbøX"¸ÚP£±` ­\“R™Vì •X²1b*„åêqirÔIsñŠX_vÀm#P®øÎôL wQ‘I½ùš4ûI„±QXö˜ç øCÚÍ®BØ8 ªݤdÊIŽÃrw…f¥™ŽÖ;Lú€Ø´ ÜWa ØNµ`æ§9PÖÅùY”*hþªš`ÆW*EŽÒŠlÃ#.õ±¿¼ç8ôe`.ǸB¢™7Ün.iÿ“gꟉh¦ ¬vkø3T·Dß5ǹ"ìÑöÜ„u9kÜ¢àsfOS¨Àú…Ì2&‚TìVQӇݎ5éÃ+UU!I§ŽDE&o½ãFJc2l| ®7 †Üj¡T b¨«›LFÅïñ;ž±d¤lkæJ,¶ÿÈÖGcó Ë)°h•ø2ñe ¥©€ñv!¦s‘tåÒ­Œ•5þg‘Ô!èÕAš‚°ôKŸ©†Ó™Bdͤ ÞîEnq!@$X4FRPo´dɧ© Û5ѺŒÌØÀQÞAÔ(io yŠ—Y¾H‘1*þ¦(+;Ê¥‰ †sJ.¾ó¡T6oàn)1“Ç3™5’H O7$šÀ 7õ¡ð Eö°7·Ó¼ÔFkŒ*[>ÛL².“¤³2ÒÓòˆ>à ƒ ¶ÄÝo(Û UÇ$’¾¹TªÖÇ´‚YS'NÌüÕ`ËŒ0íuDÉ£—¨&C¸¹3› ɤ=£™¾Æ9¿¦ê>BÛ “û&ÐB 8 €E !!(!„)ÅQÀbP£É•D$A(„¡Âb&A„KH0$É0D 2 Š #탅I’dD2©J@F‘$À“&èÀ‚/¼hìOÁ‘Z­ø]¤fpúWÌŒœ]üJ5鬆Õ:Ws,ì(ó9r‡í¼Œ[k³%‰ÍÙï ›Óšùç¼Ýˆ**ŽuoOZŸ¤‹ûL3rj鸹F-©‰Ï— ]v½þÑðª»Ù;ÍKToîdó/Ò:Ø2›âƒîXóIWßkµˆf£2Q,(‹'yX´g1½©Éðeª¨rPí|xÎì[©bMÞævbB1ßiŸD¶1‘¬¤q+8v8Ø÷šêºÉTÙŠ5}îJ©ÓµUope-„i;.ß´Í {JlšÞËZÃdŽj'*÷@6&%-õ#\ŒŒáÃdPAؘP¹‘^ÐÐ3c²œˆ¶½ádÊ1ãtF êßi}3kÒkÉïÀQ¶@ ùãÓ¢¯qll®C¡÷^µÿöy7ÜÕ~ð1\á‚+´Üd×m¬Lª@Õ`Ôʆ7 ËW²µó,+>fÅÕŒ€{—cc˜.f¬–´ é¹QÛŒ*ãÑ[9ºµ@eZbb ¿•¨ì{ÜœG[œÙ {I°8툶¾§]ís«H$Pï¾ý¡[u½º€RE€e†¶­ø0\”å@Þ@±L†ˆÕ:*‡ù™mˆäˆÂö?Än¤Š…óÄãe®{¥ JHA°`÷ª˜¹Ô…8¾e©¥L‚ÃULFf:ƒ®’Ð jÈAŸ"—­öo´Š¬9JFšm\g:¸ï%£4Q‰«qö›ôª¾‰ºõ °§¸’ Ôê›3¯‰±$¿¨¢•…‰G>BÉÓQtÔ6˜àoO%Ñ»¹G±›!É‹&*ßH#üÎlì¥ÀмÀCZ³ƒ¸]¾$¾UP[pµD@Íú|™5¨mÓèßy—Q‡+dÅXÿŒ£™ñú]B€|o= $4GÈÞ 4Æ1BÔoûNs—¡ÈcWD™ÝN—+÷ø2ºwÕKŠ op!éËúcèÞÇyÎä6AT/ÏiFnºñMl¿â%íú¿=ÞÀUÇú~wWôùSÍö–‡×“‰×&/n A+§›¶Um]Ȳ òáÒ£Vª%…eâM+¤Ÿ¤ÉU¾ Õ[RÕKƤp~ò !}c“¿5 Wj ÀibiWoó Ûûy‘œ‚h_±š†lItêmåä>¦}=†çÄ ÒBkP½ä"ŽG0¬Ý4+Æ^6 „ªlk¼Š×fÆt$…«¹Žp¹ßsDoÏ2A$nI(QÙ¨ì ï(Ï"±ÂÇûÎ3uUù”-D,×P(à~» ¶D €B  A „8 ‚#E*  5T˜PŠ R‚¢I€¢0$È0ˆ2L 2L!™æŒ“H0ˆ1É&Äd ¡*”P…Q&™&0³r· B­î}¤P[j4b(IЧMt~óf[ 9ԜǙE …Ħò¸<Ðß̃CAuw!#{.Ú#pF׿Re¼jXsW™†|wî€jX9ÄßHÌ 9‰ÑGtlxˆŸ'¨¾ãl¶?â[.¬~áÎÄý¤W%\ÚóÚ“b O˜ U€¿S\ÌZ¡†­&¶›¡]Xèl™b1êSYb¦—Wêt 8Æ–Ý8Všæ ˜ö?QÜÅ…Iê1¥ºÛ´¾[:žŸpÀ“¶®na§ÿn–wVÿðH:™Cb$ªsu+:Ä»ƒ½žÑ¦Z;Zƒ'1UOæÙùÅ™dqºÿq;p¹Üš¯˜èGÖƒs±¿Ÿ¨éN]y¾äx¾¥?‡NF•Òoã¼Ï!¢¹ƒ´ к*£Oä2Q‰í½@3…8u)¦c¸œxš™àó(êý9éÛ“`ÎÜdœ¦ï~&GmvÜO3¡:ºœÄŽæ›&–Þ’w^‘èu!±3å‘W!@Ð_V MXð ]е¨z®M‹™(Ñ×p6†ÜéóPBSÛz‰ša6áO˜ªéE¬‡9:ŒªŒÏW Ðˆ'¥\‡Vl‡oÿ8šIÀ5¹­åG6F'V€æ1An÷™ªN-Ûi—N@ I¨ðhØë+•cWæ-–<¹É'-v¡ufŽÑFªW²iÛÍÎ, † *YAH;Ê­Á”~Å ¦DPà€BTH¢ Ž„@"2 PB&(@ P #Uá!D“D`IЈ2L 2 d˜v“™„IˆÂ¤É0…QQB2L)B0 ’`I“LžÒZšSìní;ðLBÁæáZ#4»MT’lÀ‚7ûÌ™ÚãÁmþÑcc©vÞ錃B- ÊovDmÔ(»£cI mFàNfö ÚG¨•¥¿«¼Ë‹onÄs0*AŠBÜJw‘VH0éTŒ¹‡}Œê ê+žëÄŠäÌ ¦¢(¯yŽ3ê${WrjJ¡í³â„bÁ &(A,žjkˆ.¶ûÍA–`h·Ì×R€w^×4ŒÎQ¬«ÿIÚd´½Eò ˜³ãôñäF€ƒ§Éò&‡æÀÚ‚« ìrˆÝ‚ ÕG™#8Êî‹Ês }h :fß§G÷œ½eVßyG; XÙ%hŠí5ÔUÐÑ…‘Ü|À·Ò®Z¯Åì D镎¡ÀÊãÐzÛp Üל˜‰Åìê[‘LÙbÆöÄœbÛó ëØa³±½Ìæph™>™bXyÜÀ®“¶çωC6FüÎgZ&ÎóX$c³¿=¥Šq¼ƒõÈM²! QÊ‚¢ „ª"„8¥ €B@I0‚J&@Är‚(Š@£ª„! #$ˆdD™2L 0”C&A1@“ È%A “$Â!DPF2 2{À+y`íR 4¼ñ&ίƒ ¢Hçi¶Ô¤Y±ìZÌÏ)°+žð3Åk‘’ÍêFBQÃßh¢¢¾©i¹+\ÈÞößæNÔ¥ˆãcD*vÚæ/ˆÐ¥ˆ³2.¡î;™›(&ÞL š<ËÆ7 Q[»ù€±¯§›1uM°’A¯ÂÇ6{dÚù­ÄË#ïö’±ž.OжNýæ=V>±UcûNŽ˜œÇiE“78@øÊâÊOƒ!•@Q]ÇÌ£4{ꛊãqrp­õžNâQë6Q ÉÜÑ‘Ñ8|êÚˆ ¨P=™õ—UÕK7·aó3Ã7VåH }¥9µdÆ•ý3—¨BqPó XN” ì “2ê m¶Ø¨üï(®‹ùØ›]­cï:òƒ“‹VøçæÂY‰$ýæ½0Ô£'ƒt²j6¢Ø ç™Ôko©LAÎE¹2ޝÓÉÍOEr¦LÅA°ó6+¨1\£¸ÓÄ€ ¡näÜ":ÅŸi$ÜŒí]N%P808ÿT ¢QÜçkbÖX“4¯C ºaƒWq/¥¬¡òå]NÝø‘f-üAÔ¿¯ÿ0(U“%VÖÓ¹œl‡¨µîˆ£eĨñS«¥Ç© Š#ö‚)q_^äÔäu/Ö©n.„C1þLÌÛJûŒžua\€–Ûr`sdkÉl~Ѻ  ‹“‡ A6O&EjÀz,IúMÆÉí:«}ä£ m:@ Í(…¢÷C`D£“VEb >bIÜûÍtŠÓÁæC+½B ~· ¤€£„…‘%Qˆ 8@QÀ"€JR „¡ÂA&*PŒRÅ(R„E8áF˜Œ(ˆÀ“  È0$È„)&Œ“´1B&(Ò`(@’aL˜Š¢€Ha Žð5473Mb=:G7P¬Ï>GÞ4IÍý5Þ9úXDú¸[@¤].›­’, ¦‡FJÕ(6xÞ<.qäÄè)Z'ûÈŽœÏ‘1¡ )ˆnÓªÄU|K[^ѯMÔ³d\yopfõ«3àaz[W›cü)l§Üjö˜eÀÄ”jAù£42è›IÈ.¶¹èÙPìX\ƒ2ª‚ x=æ+‹Sz„о|@êJTÔ¾í¹ç+e$WaØ@âÉŽñ—½õQ-&Ø)ñÞmê =(ÚÏör0“Ûôß3^FÜH¬ÂW^Ù³â÷+Í@J¡ @!Æ»}¤Ýf,¤èjØ ¯Ì°r ’%)£ÁÞTNCy~ÂHQ|Àýrh!G„€„‚(%@P€B@ŒP‚‡É2#”(PÄ „…( (dD&ÀÀ‚b戒`AŠàI’`(Œ „b•HÅEí%¥™5 uêÓÚR½š<S+¾ÒqUr\a¬KCwÔŠ2©ÞfÜoÚ@)Ò‹d±;IêW¨ñÚ,øÎL6*Æð0&±¡UÝùš¶ÔŸÒxjK7ØÌz”,¿p03RÖüÀ¸×}‹op5êBÒñD\Álº¥JDK’ùP™ôâÔï°¹º–(™,_3‰[XÖ{oBH-Ô®A‘·cÂø§¤'&‘ɸZÓ©f)@šæs!À6'n%FLú]ª>DxëIzÿÌYˆÕÁâ³eNÔ @ìË•[ÒØÐŸÚ<*§!mÖÆýä0Ø\¨€1Þkzr#2Ó¸ÒÿŽ V<ŠUü†¡ûL:æut¾H«æX9—§8úœ€‹ÒýçCª¥Á±ý 5Ð*8#™<«+'þ`bK¡PݦÙq²£4Íä@àpE§$Ì}:‘—Aäˆ:•Ê/ÍNæYHÚûÀë\š±Ó€oc õl)ÜDõ¹~”R|™çœ¾ŸTŒ8 ù”t~ª tˆGw¹äâMo_™|ƒšèq­Q;ÍzgL‚d:Xt¬ƒW71 ¥ÛQöÕ‰ ­V¤÷› Ê *AQ`‘´£“7 T£U‚eçc‰C ïû@’Ää©êBu%I:&ø€± $x¸²coXç‰GKÖA»wô®r*³^ÍÌ—Øç9!´¹Ü ú„Ãÿ[”ØúnYƒÙzØöñ9ñAyñž£¤ÚÉRHžwN=ì+ràèë޸ׅPÏ­`͈¨£ \Þ |6ã‘#&»¤œ*Üi$¨R±8m¼¼"²Š ;ø’劔ø–E÷(#hl1€H°8”% ¡[±o™KŒ‡'kzý¤UdÛr ‡Ìƒif÷àH/ °o:M}äâÆÉÓ«8Ì7Õ=›+“3Àzllyk?xVCS¹PM’*o“†n(qFämTÚARM¹• ˜í°&˜Ð¿xúÔ&С„‚¢)PB„ (¡r‚)0€Ä%P¤P%J‡ # Q@P0$É0ˆ2L2 2 1b0‰1ɨ ¡DaRaEB›Lט þ™ ì P6`ÃI2{`LBÑ€½¤ =¶˜Å.ݼB§b£QŽÁß¼¶lUŬ)Øì{H4ÄÀÇåÙäw0KRIžm‘‹ñ´ÏMµØæ&¦«z…ctEq€r¥ñªTS!$ÅÃ"én9*s â7œ¾¥dß¶ð9À$³04Ù 5Ì+3(«ö‚¥j+§cºEV¢á‰æêgêb§u"Taë²Ð”µ´ºô³"·w¨‡=Ccrm/a4pNt<`j€Š‰Ï´‚0õ¸Â‚tü‹œ©“_Pu= 5÷ŒWaÏë¢#*¯¦Bí2ê1äÆžãk0ˆéKh«"î™×ê¶~‘ÅS¼}á\ì¥×ïî⥌¡¿–ÜüˆBÆÁr…nÞ{Ï;1Q•´î/i`èÅg¥\‡sdN• X†èo äꨃ¸&þÑtlÚ´#¼QÞµ¨!áÃwlu¿Ä |‹“ hüÎ\Œ[¶hb+U}Ëa:Ð þ'L?÷ÖÛñ/ˆÓ9Ö˽íR³—k¡ :78ú€¼•“.OQñ ÜZ 1]~ #€H¹Íе³»ûGˆêwV•A ¥·ïÌ€2¹<¾'(}Yܯ¤_‰GR YSÑfièuѽdªÈ’Ì ÜqN¢`ttêµ’Ø ++3^Œ`l¢„ŠÌ¸8X¾û™V˜²Ä€EÈz9n™½Ú›p£7pE߈(ƚɵãìeôà”ÐõàÀ¥}Yý6Ý@­_—©Æ¿ÄigÒþÒÁÍÓæTc¤}窞üjŠ+ ÕŒ;ýM¿™‡Jäu–ƒŠ"T<öŽ}Ö´×i¦F>õÍÔ¤ûµ{€ÏÌ›RHûq`¦˜±SsÔÈ­¶tqDuCãEu{ø™c…Y¨¯ˆ¦ÜìÌø†%tQêÎýI¢4U Œã8_0Ô†Ç{– Æ©ô1 ß"ný5é u^ÛÀèÀ¥¿´)œŒ;-NÂTP?7_yÞì@Ì©[­„’EH«VÔ(ÅÝ|†-…öÞbMâA9P73×È}Á”:Óô› zØ0`Õ\ŽÐ:z~©}B»LØÙ`7¾.A Œ«Sk+‘5D@ǨüÑ$™Baz«·˜Vx-zª³»Õù¹³©=C+6¡CIŠˆ ÎZâg…Ùr*³â¯QêU"¯›‘†¨¤îxùJíCæ™ïÐ]¨ƒˆ£VªØÏ[£Ê§§òl@ÞâŽ~µ4D žiƒŸCp.´r¤os¯§bØŠ3î8bsŒEÑ…ƒ4é:Œi¯o‰9VÝ[.¬büí)26¡¢ÆÿMÊŽßâ½U ´mÆâ*÷³+]óñŒìg´çé åO¸x³…n2z˜Î¡¹hwœ8r°êvf€n2 Y…ìaÔd'{Ó Ç©]#Xk+DNÁÕêµieÔa-.…Vç;Ísi@þ$TcD2¹!ôæò¨5FgƒýåM†ñÚ,–P(ÜÖð!P&šuä'É…{Ÿ¦~š¹qëÌE ècô± Q¯×ôÎ&2>»˜W ¤@!B PB@E(!ÂBD€BˆÀ"€B˜Ä!ÅEBå!J#D`)&2L" “O`# ™BæILP‰2 …LFŒ“ “¡\ ( nd `‚`÷(‘¶F'h…[|Â¥›Á‰_I²`tÅbb ðaÖÆK(*§ÒöÃÛs^7Y×{o íw2Û…ìyœÌwТÓÄA=×ßï6yâ5b øºS'"׿€†`ƒ›ªÿ¨´x»ˆF»x–RÇ>=5`ƒ7ÌJéu#“¨W 863æ;.¥ {i7÷œ¥ß[6ê~%ægz;ØÞ¼M—!|"ù¾$f,Ù< “Ïö›tŒL¶íÚCãló›­]!^‰³¼Š—prWMÜàëqèêMpw¹bUýCÀÚuà`qè"Ô1¦?b³¡².Ç™*!ÔVµi9q€Py;ή„ûò/aRÔZ<‚g×)Gò,Dé~™è°­y _ÚfÓÇ…Xžâþg^!•ƒ}c¹7p92!Î ðàû€‚¹]Õ¨ù€LΡ®Á7¸˜ÒúG2ÅmÓ~©VjŒéôðu ±"*´µEós<©‘2++P0GC yp•kÔ#¼æé•Šd*ˆ€ð†)‘l†‰ú=9Ë_âã Õ¦…ü±˜°f̬ÀßÞÖèÂòIºÐÖ)Y, *Ú6L~Ž|hÛ.Çrck<ì~$T“ZUOÞ2Á»q ¬&œ±úT~.dı(20ÈÁ#4˜aÄÏ–—¿iô§þ’l>oÚ(ôÇHGµI 2ÉÓúl0)eº’´Ô>`}\SH!B „€„ „ È¢„QT#ŠBŒB¡JL¨#€ÄpB”P˜F&I&I&I `LF2`I’`)0“"…IŠÅE¹0@‡LÌNòÆÐ!˜j1Xæ@Ž*dy…m®†ÛLØ““Ì ƒ´EIçö-\wæ%mª P Õþc,*æEdê¤ûNÞ&Y1ŠÕ¡;o´Òï,l×%”ï`È%A³´Ùkõ›žÑUŸP-Åv‘†Ê²ï¹03Êt2‚w +Ö 1†a\m¼#¥q®D@¡D™Ç•‹32í]¡[â-èër>žóˆä±îºº¾Ð1Í”z„c6çÌÛ(]ͼ£E]X÷4Æ¢'b¹K ¦‡ï%}Ô ‘s›39l˜œtðj䊖2+›­%LæÊUÝIÕJŒ”’´ÿIçÌëèì¿EfÔžñAO"RÑéìUˆW&LšönkÑä§b6±»+Ä'ê ¢ ™Xô ûjõ|ÊÌ4àÊCâ3luâuãθñ{ì ]H†r1ɉÁ´~óÇéceÈXíÚQ§IìÂ¥«|n'/QÓrT‘g¼AÊubËu¸3£_¥cDn9`w±M´Ûóá‚‹t®—J=»‰†,º:Œ„®¸ò„2ã9’w;ËÄÚ´©°A;@¬¹2ƒ½šÚZôÁÕTò/Iñ® ˜œ²€càÏc¦Çk‰Sû‘%G'ZÅúå#}¤²’À CÓdWyjE`mFþóÛsÞcPX·âu`ý?6~jíþŸúztÃÔu§{fÜ'êÕHNn£¬ÆZ‡2¢0ç:°®<ŸW™ôp›B„ (BBB  €ê:€TU¨@!ŠŠEŽPE F(A¡ÂRŠ2`(ŒˆFI”Aˆ@ ÉŒ ÌF2L 1dÀFI€‰’`(@FA€¤˜ $À!\í10Ü›"áSȸÓsF°Ûiƒs²7³Š…®¥&àjƽF`QûÆTT ù*“¹ìc%YH;ò ±nIkÊÃ2ûs¼ŽjK™U,5/¹ M:Q«N+z‘eïÞd†„ŠÇ©ÆGPÌÜho´Ë¥  Bù»âZ:Ù]1dU»&¾Ò2¸ØÜ÷ó(ç\® «n¾&:êÁß0`†±æz¸BädÀÇjßÍÅ “ÒÉD]všœ…W[/…*µ>¦TaÅìf/‘6`w>¡"¼BvÔªU«XÚeéÈTEZþjX9 â¶Þªt–ôõQÜá䀩=®çLľž(÷¦$U`Ð"tôØ ¶v0 êÄÃm°'?Rü£Èz¡ONCc"¤õ [¤Çc}fÿ::uUé˜oÉ¿ÚÞcÑQ:‰ÑÚ_Jm(È/üÍ28$1Ó@Õ.×ó³2QD!&{NˆåËê6CK“ÝþÛEeP:°nvh§ù•QUNjÏjâ–E o2:±û°ÖÄ þÆut§.rNC·‰zƒÕÁ‹M²´·Ì_´!;°KJg¡¹³"¹ºŽ †¹·O”dÅ` ;–C ‚³‘õ1M „*P¨ U„(„€„¡B¡„ #B£€EE¡(! !“)Œ‘d™D$À“$ ɅIŠˆóL“L“EB™&2L#BDnb0 ïxc˜SÿbVˆüÉÜ ²‘u`üÈʶv€…ð`Û@ 5u$ p+c Ìã#Pkóf~Þ`5` #¿2ÀIæS·¶¶ß¼ƒ'zàï[HÆá²éÞQÝœiŧU€´ã@‘çiÏ–×.G&êÅ\:`§e4ñÞá#¬¨E¹ª˜ä ªÔ€Wæ:á“)ê$r±uj"¶ø•HôìƒMoVg_Jªq0º"«y(Ðã e/Yïæsä hàL‰¤“­MˆÿR­  @ש­.«Á«˜•'ôöìÊà÷—"â;½÷©Ð¤z>áîȬØëpלM²a ŒƒÛ‰FNn˜øæ_M›fº®>ad7C4ËV''£üIÉP 7P¥‡bÊ };›œÙ²jE°æè8gÅ»(QÏi]j€Ã'6 Iç¦Së6V_Ä}SŒÙCê&‘]YÍWalй úf¯ÁdË û@(wÒêg+âSˆæRw<G3]ïbh£ÜéÇòÆËuÚGWlo·&Ds0! $óuñ+ u $ªÇÚº:—¾”z›i}1 iö­ßa®< ê¿TÛüT×¢È cºl"Œú¼B¹­@í/ ŽòPò‹Ûƒ6Áƒ&UB‹Õéú1 ~üø›#„Ù )ÇüG·€$£˜õï¤qê[7(âÍ™õïÄéN¥S7ÿV¡@™¦?ÔшÕÄ+îá6‚@!P …@p…8¤% @"„@!“BB„(¥ G„(„ 1 (É0„ddd˜d˜y…@FA€ŒƒLP„dˆ #$ÀFI€¡&„ q2;H@+Ÿ0ÓfUI…ï”Ñy€ˆÀ´äŽÁFçæAL´ó"ù”T›ßi'â'…˜%ÝL™˜X¾Ð!rµÑ?™¢»®õ}åÁ›[î ŽÀ]yÞÍ~H°'61yìp=´{Ì« ÊÅò #sPÀ=:°³¬¹AÒ}Ó0€-Ø*µÍˆôî5J›ù6êu; b}£Ä ÌÇ" ÆÄw“† X ŽÐ4Å™4š¢É¡ñŠÜüÉ8Ã)Õ äp¿‰êF’EìÛÙ˜à%°f]ö`ÒªQ‚þ£Œö$o7ohf'fbt¾5|Xsl" ûAéœ2˜¹ \ºI;ð+‰–-xÜ{Ÿï*=tOŒ¬ˆ¬€þõ ãêSÓéË!µÉµ™Â¨ÚVÇ´Kâºre™RjÅmÚm•ƒtXï[;I™•€ÔÚê°føÌ¥BÑ ‘5C輄_\èeÐá¯u¢dœK—=5×ÄÑ•}2´@¶íä~•Ÿ pV×°ÞÄãàÊ;ú>»O³)öÖÄOA1Œ˜ê _¥daêÇ*x˜ã+‰™[t'˜¬úº~J1¤#?JãÖFŸÞ/Hý>"2 71èTŸS&ÚuPŠYˆžœ8àJè—^sÞ*½ §ú”rq=Œ ‡1°ÛâdgŸ2>ÀÌC*·”e“+' ħÔ0!AÇ’Ì3;¦=™-¹œù•æà ¡_®BPEp… €G P€BPB ¡P@P€ŒP‚ (¥EBˆ@"€ŒF1H’eD™&™&Œ "II€ŒƒL“LP$Â&#LP&#D`L 'úf$n.H¸Ï¥»Ž *£¿™TQÄ CA÷Û‰¢Š«ísr*BnMv€Ï;ˆ…€n®°½â+£¶×3n%¶ÍÄ`jâQ«n ,Mˆ€H ÌŽ¾–´ãÉ~õHÿV‚¢ÄŸ´ŠÃ)Ѥ‚)ŒåV#©Üo¡H“ɳ „5/ÕZÚûx®Ì@‘êä­DPïv pýM°ÚîTjqP Ôs]Ìåë67DÚÌXÉ"?]XeOcÌÈÕZÀÕÏžÆ,˜ìZofPˆ%i·#i–qåbw µ÷ËÔ-e×vE´êà(Îö"«q—&0Y*Vˆ#‰¨¥T{dG/PN…º>úK'¾Ë¾%u5Œãu'ù‚Å¿G—Sin7æJ¬ºìc;ú\_æiÒà& ï'ƒ§V~v¾q²Ñ…RtåÍ‹Þuaéw0)ðc&ˆ/O6Õ3ªÄÏ)C‡1 ×›'¿a*%01opÚvÿŒ(m®-WèЕp¢ ”€B (B (@P€EP€EBT1!J( Š2L"L“L’ Ib"&™™&1DÂ&(T™&0$À@—6*A ùÉR5(6îb<˜`9Õg} #´–ؼΕ^.å÷8X4ê€Ý}š¾jfM à…¨ÖÝà¼Qæ@²¤2h1Z Y@ ·;M‡Ò*AJˆ7'ÌéÈêâ¤]c jÀŠ_³œm@¦æÈ…Pn ¾ÓD]-ê¬í*Œ™õhÄœštcMË«)xÆÜ‘̈¡êšõÔhôˆg[Ù‰öŠQæUpu)í6 г9•@C‘ƒ§W±÷š^† 7ÜÀ¶_mÏÌæ`vÒ߈aú­ÆÄÖó¨¡NÛBµÔ4°Ú¦D µ ÏF¥Eù¾&‘›©Ò§m>eäFñêZ"u¨8ò{s%õl/JÄÚÙ4ëéµ€¼‚eVg8ÝñòÇñ7è´”!öóy¿ú‚ªê;rÞ.Z=?Óð®%9c½Î§û€ßy‘ÍJæ.{ˆÎ?QuÚ—Gê —ñ[M¿LÆ£rE–"¢Ž®¥”\-•ÝAâæhŽ£Ô(ƒœ´rñí<ƒÁ3—ÖË‰Ž¯§ã´½«¬0Ì£)ÙÜ0êBb>žGá¨É’3cÍ“"hl°ærôŒ¹5b+Á»ìôÈÞ–Ÿc ¾k"‡@±`WúæÞš¦ÂQ9:{9\ºmV f¨ê&o¸JÉ£›/HÙ”ƒ<®§¤É‚Àâjr<ìéyx:vbŃ«/C™@53\uld¦G„8 @P€B„ ”(@P„*Š(A Pá"ˆJFŠ1HFTI’`# ÀQd˜È0 È0 É0P È0$™$ÀP&ˆÀ’jfL·Þ Ô ˆVfõ\Ôûм ÊÑ‰Ä 5ûEWÞ›‰žBA¨"ÒÆ¦2 €@º=¤œˆ)}ÌT—w‹¨R¤Y¨í'é}ûJÎò|éR ™[š*Û÷”n’÷”j£ a‚ OéÔ…`wÓ¿ÞJ¬²­bj¿wŽóÊá¶±gauaq¹?ÓC‰Lö­ÜéPdê»(¹Ôõµ±ïÜÀ]E’ͨs°™j³g¸Š!‚ä8‰m·nx¨µ¨-ý .œ†ÏõY“•µ‘Ø ¹‘Rcø”­é XçhE2³ªµí)ÜŒ`)£rŒ²Ÿ~C`²€DצKÛµP³ ‘{ÝAl0Þö€0Žó‹ª\ƒk0­/U‰ Á£§Û€âe¢=Ë$G•VÕÞçÐôX•1(>7Š®OÔ0€T.ᛃ83dn­Ç¸ÕþÒŽî‰W'L—D…"ïænú—"kª @È‰È r€ìRÿ¼ÖïÍ  NTÕ‰ÍÒ€Wÿ‘ž_@ »œGÞkÁ>§ðýYSôƒ=?PdÆBÕs'£™À/Dûy}:… Ž»Þÿ?09sŸO©%lÎüΠB”*¢ü(õºNŒæÒt^vØÃÒ¦%Ò L©6fßÓR„«îÜÍMÌßÛÌÇêæDsåÂæôš™cLÊw³*º”ä±µG›¨ #¡Æß§c;•aèÕÀ‹ÈéÌ-(9“ °Û¼ƒì¡4@#€¡„@!Š%P‚(PP¡PJH‚©0ŒEŒ¨“$À“&ˆÀ“$À’dddÀP€¢€ŒƒNÒ ˆ@"02s¼ŽðzÚ;Ñ›m9A°jáþ¿Þ&K0#A@ ¤Á„" Úge›~Юš±¿lkK5šì (Ê5ÂÃQS_y®v7AÈEøí ÿæP˜‹ù€çÄŠ–k1 ÚÈÞTh-ö– `,w›¾ÑщìDƒS•‚1y¢› _í ×—P ݾÓLTÝŒUOé ³·ÈÈͱê;D :œ‡Rè5î{ž˜oµˆ g¦ [¹œy­ßÒ_¢Àû@êć eÆh(»«©Ï@[¿ÎЬœé°Äîw¡s£©Ç¾ÕŸâF6 (‚fÙYÊ]5rÀ’+Ty1â!: NêTÐð`u=p® >dû•£Ï‰ÇúŠƒn «Ñø1uÙ‹¢Ã/=Icn{ý6Bø”ñbJ¨ëlúXî‹LòÿRÀ˜J•±«y¨Ž¯ÓC.cô´ìzÉÕ¶5"¸±å¬¾âNÚwí;:“§¦b»ñþd:†·²×Ìó1iþ,¡T1üKâ9òÈrì7:¸0pIæ¾ñFî¡Hr·{;JM,.‰#¼£—Ó~¡˜¥I°ÀÙž§é¿§dÐ(´»£æJ>…ãÆs@ÃNõs*5YÞS˜Àr Ã7¨ßI"P&<†‰3bH !`ó)Măz y …æ>°Ä‰$-ʤˆ•t~`},% €B €¡„J B@Q@P„(@!„ B2LBŒFQ&I&I1L“Lƒ “L˜ IŠ&AIˆÊ©Šà%@ÉÂèol^×p» ˜~ .~Ñß·„Ió{ñ¿x¶Þf@ë*ÌŸ‹ ö&^0¼·iºŸï ZϼJTɤÂÈÌ ñ(l+Ü90R4u hJš¹Z®Ô‘ýTHÚFzT¡ây õ”7ï ê`=¬§Ü YI /ˆRèÜâu{®DÓK§Wê^ÝÌ À¯gâø‰²wV5éŸÄÁqhõÍ|À×§È1àsÍüö‚¥ã†›ÞÁŽ@ 4/·Ú% ‚½ qâPrjì ï::¬ºB0Xs*¯¤bá·ánR«kH 2#³>@©¿dc˜€,@° Xî»Åוþ ÷%…~ñ?Kˆ®3×¹¦=rlYO}á\ »Tõ:›.6p ”mÔzƒ*3Öš!iÉú«.NŸ–½#L°iúY¾Ià4ìPZ"¶#…U[>{½¸©-™½?OSiÿO‰U݉›'¤ä~óÌÇmÕ¾Û–h#%Ib¶™}²åV<11G¬‹©hðǼÃÓ#/´Iä@ôÿIý#FS”Ø ½Oa“ÓØ ;Uµœù {h®x3@o™€¼¼º Oª8Œ`gªòTѽ¼o(äÍÔ8jÊL¬Ë¼­G™{  KxA °B @P€E(!#…€¡"€EŠ„!B (JF˜¤ (A$Ê%¤ÀFA0’`"d˜ÒL2L 1@P;@ƒd˜b&L8ÉmÌ Ï2L ^Ð;Ü)àÄÀ5â#GsÌÁâˆÔ#EÈJQÞšÚEHPÛÜ>.P¿í™I°È36=¥×y› mCüÆG¼Å@fàˆ Ì‚õ(S¾ý£ ºB߸À¨¿§ŒÞÇí<Ô[+}ˆ7 Ý=Ê *3?¢žê……ï1gЧ_&’1Z`›•Ÿ"¿L¿ê·ÚPúK/w·nˆí°FH-Ó#êW`Vì ª53ŸõQm¶7ÌæëIdUÛê¿ÚP#H Þæ}PQ€±ï´+ÎE¶Úv`Š ýW´Qߟ*žˆê4꤭÷3Îé˜2!î†ómúq¦p7·øj}Û‹%v‘%&`[mWÌYpú™ P7É‹¬l9?˜ °£¡º ÄÐ`h}ù—¡ÅÙv¯âæf —ZC¤);þÞ"g'È¡WžóÕý;ôЀ6A¼ÍWªP"ûg>\Ê êŒðå.Œž¡Ê‚ÞH8×#ëÞu+’9¦*n[õÑ£µ&lt\{¤é]$n`c‘RÍ ‰eP{J<(þÙiÖA|ÅFÉÕÐÜ̲u§XÒdWÛBl€B€„(% ‚@!Š¡B„ Š (JFÅ QB &Q&(Ò #&2L2`)&Ä`LF˜Œ 2L 2`#&¨ Rcg²8“0c¼ «2wï "¨€8ˆÝl6ï71oæPµI&…H+:£7Dž ,FàNÝ j”†ÄH¢ßa6æfÇÛ_0EŏS{;í´÷DÔ<ñ 5Cír@W)t–ç{WLmMØ£1ªq@iâÃR‘¿Ú^FºQ@dKG-D•‡ÝÒªL,LŃœe‰{q&…íã7tw3¥[U“Ïx)¤¢¥½Ü×> @Ø‘Ä<]36Rù %Gì|N~¥”8VÓæU" ïÌË6ÏcƒèèNâøˆßÌa¸ ÉCMܸ¢Ìé‹©Òjb Té£Í™IÄáEØnǼLN[#¿ JÎ ÀT›!¶Í…@Ë¥Žæt³úy*¶rUWVõô“ÌåÀÌs€»ÄxWGDÚ3åB>¡gï:±ãÐS"’@æ‡R‡&l@}:ë÷›œzþŠñ(ò2±õ‰aDç­ÒèÊŽqò‹`ˆ£ÇêoÕ:¹ñât~›òfVǘúW×~Ÿ‡ÓPÞz ]„ÀwKFrõ8K¡Új7¾"hÍ2+¶ìcÑ ¤ýãÑ–¨\x2.䙫°~`Bd·›6_nÐ2ÆÞélÌ7È7bM øÃŠºÃ›ôðÆî^.„é–ÑUÒäQ휘1¸p­å£BPB$ €E(!„@!BEB„(APJFÄdÅQD˜ É0 Å$É0F™&˜ )A&I”#3*ëLA·Þp¨C¨"—`«ÉÔø×§Á¥˜{¹¿ØO;k…0ÀI­à"ÜÌñ¹Þ¼jÿ1±É€ª÷â*øˆ„dʦ¬T7óæ@®ŽÆ]j äÂJ#O0É¥/mäSBƒ[×3R餋Àİn™·ÄØí:ˆm+{ù‘{_xH<ÄE ¼Àå÷«ûÄøŠ? ÀÃ($(ŒÏNŽGi’Æ6#’&¸Ô0ÞÊ"«WÒ¸Ž¢(òfXggÿ¾· 1JXH @üÌÎAÅm ¸#‰}HÖîÀˆ4ÀT°[Þ·›±¡C°ÛyÏ—"ØV`!š¹5ÄÙëÓ¸;ñ*9sa–Õíñ8º ¥W `}?ý"¤ÕÎŽ™›ø† IAÞJ;N5.*ÿ±œý`$ã;L2jÇ¥ý´oy¡Ö\„ß·™9qhéˆSõrdÐ|:“RŽTb™÷¹×ÔBÍέ÷£¬û4Úˆ?í9zwþb{J…ÿÔ”©äÚ@V°ŒøÈšw²LÝ,6½äWêxñâla™fùÞOé½KãÈȧꚨìÅúN^§1fS¤ð|Ï£ý/ôäéqÓ3j»‚®½„êC¤o Œ¹ä±™ºpMÁ°ÚÔ \! ‘6€„Ì Ú!€$«FéîÅ©á¦Hlotàé½Jwú{3¨z=0,À/â™Ôõ-»… ‡ƒÌ!…¾vIßk2©^›ó'Sa˜¨éº…Ó{Iz»˜@MîE|IØ0 ÕÔ ´Idk]Ô‡mFàIcwÞC1's#ik¹·<@÷¾ðÑ?0Ø|É"¨w€ïöŽø òLfÙu–Üð c“é&üL25× 28\%¨ª4È̸Í6ºñ 2±l%ÔûuT>‡}®û@°º‹ƒ°çîg>Z4@ ¼J7e­‰Rvt‹o¨o"5ƚȿqÚ"Öõ|H©È¨Õª¾&}KéÅJM …F†ØÚG‰SÖ·® *Ê…]mM•ñânê;J‹ÅÔMÚÌ3e² –2r ƒ7$Õxšä*1‹=¶€‰ ÓÐ<·ï'ÕŽ¸«Í”èÊÀ¨¦Ü|NÜ€6|€N`:…T^BY3 %;o(Ð2¦Er(Žhv`ú—[ˆª…Ò2(,;›¹ `´nüÈ<ßÔÁ~¡î»NÏÒ?Lc]ÿimà}Z x1ì&:ð»™?V¯;Pµ½@ÉÙXó(d ²Œ[=\iÕ!ï ÛZºÌÎÜtføÜS|lËÌ”,ý@ *J"î4f+TµR£(2eUTa̪)ž`„‚( €BBBE„( (@P€E!„É0P IˆÊ‰ˆÀ“ À“ À‚b€Œ *ˆÀƒ À˜Œ 2L&ý9 ¤ü‰Ñ…ÁÆäÿ™š±y)†Šž’Œk‘´EjPŠ+ûL³õY3›È×\ ªšÄd27ÞR½k~ &ræ®@f ± 6x’KVÄ@59chΡõñš5ÈüCÝur©Q;Ü–66¸wÉ?i[ÉW¼æ‹´eÐßæÔ|Éç{$o4ÄûT*²7Å †S­ÛyL“¼ÞZ„‚©·•{(³Cû@Œ¬ç¼æ5ª˜s½À2ÐéÈ#ƒ/®ˆ •]þ7’«§F¬Bç!Y “ó ó)Éa ØïF¤D $À VïÛ¸š;SGcRäé3+§bbw!È¿ö‹6‘DÄ ShÎæ€æsáKJÑb3r ·`jUˆïÄ£›U¸U¡\–1£´”FLBhÝé;ö”„ºº0;p`N4 ¬.´ï7½4Ô¤“w“©7™@£´ìF¾¤Ž[b%Y…)–Çz™ôõè…#úˆü Ó.%ôWÕ”(÷y“Ò;*œOz†ÿ‰F}j v]ˆ•úV<¹—M ØŠ¯d~–šC0&¸Ùpl*Nгõ€Š¹çgÌjå?§f‹žÒheeLãé’Žð)•(ÕÎ?áB¶«”l2"йxº‹5& ™¯xz‚¸”rg`Ʀ r'Ó±gÉýbt®—[2,ªjg“2ÖÆQÌùC@Æî£3Q®G°da °B8 @!!„)BBP €¡"€B(Äe )&PŒFŒF™f €ª" A™´ ˆÀ“$ÀSš‡ÈF:Ûq›áêJ ’µŽÕÌ7=§Ÿ×&œ¶8ar-­‹š.È5zžïH¡Ó+R×Ú/áyžŸ,†_LÑØþð"ûBèóRƒS_0-°Øö€`*„’(|À8&šÄOÎÆA*š»Ôd€=£ŽòˆžÑ[iÚ ·6yæ LÞáTxŒl7€!ê{H0-XÌ éÐ0Ô{m÷”V‡raRvˆ±ª€…Ýó÷ŒàfÌçaÚc—QÔª¬TɹT&ª¨wV5Á«¯&Uþ.‘ºüÏ9ÉÖt~ò¬d†UïW¼Ó!Ù¶ædÔ£ñ'%P4M±Ž¹™4žü@É ³¥Ô/Ì ÝÙϧÛüM°Ò­v1ʃD[o÷‹8(*Ð=àfv=ç^«ÑèýÆàWJ£A$mÌj¶ùE‘Ì P3°¾*j„ ØͰýIÒ6 µxž‰Fþ'!¯è_Þ(®µ´á]:„˘g ø±±^ ²e`7d§ÿ_oïKƒAÓŒÌnÅÏW£Æ2 „•]z¥ ´ñ:ž¬–4f¢1LÌæl1³îÃh1Õ…Aât¯W^Û™WV.«nnSu`0¹d“+°µ™®f;çyxs ;àu®QÍËÔ¤\ƒ7Ñ19G$åM$VðL›m(LuL›¦.nÇÓ•;Êd``"Œ*ø˜‘Yƒéá6@!„@!! "€BB  @!P€B„#EEB˜¥B1dd1™€€GP3&™$À’dÀ""àa™Úd(ƒ¸ºïÞe¥bÊWbfCkÁ¨ÔÀàÔL¥»°Þ Ò/Ö}[>ûÆ3äóù©ë=Y Ì™µZŒ¢uüD4’jÌÏ(ln¿q«?1d{`/ê½¾Ñ5Ÿ íWýàYh€*Sýàvî Mï´ç°€6†¯˜}ªMÀ[˜îÖ oÓÐf® âAŽÌh$‘î;m(Ò ¾`"6¸îVÓÞ€’‘–l, °;n˜a:Zø"½ˆ¿Ã3%Y‘æq°Õ”4. êZ,ÄV¡ÜÉkÓÅï µ^,Мç+dÈ ýåÿ,}æl¤ßÌ îÃÁÚ=‚Iª'¿OrbjܘVc0V4@'o™«c\˜—{aÞ5î=3U¼¨_»žw”tt¹ ’Fý·*¬¸ôÙ ÆÚ¤¶Ù °þñ€é°vÚàfúqõh‹B—ÜgcAï‰(2.¬,HÜÝIÓÿ·Æ6ö&ãMÀ5Oºþ9šdÆUŒ¯ÕTG‘°R ©†N¥˜éQû@¼}.lËdš‰¿O#‘.ª±táMTèl6» 9ÆéÚ`Êå¥]8aÍΚ³ó ëÆ£FâHÄ :yË—ƒ´hÇø‡M®j½k®ñƒ[“{ÊÃÔjú¢¶&Ä×]H6É¥Væ.PE¡´s#B±ÚP²b±%1a÷ôðš €B „€¡„ €¡Š „  )BŠ@¢„#¡Œ2VñÔP&f`I`IÆÀ@ano¤ÈüŠÉízÌk‹¦m!M $ó<Õ °7‘PøØs[H.B'˜}¶ŠØ][|ÂÛæ0"O“Ê&Ž.¿Ì^ãÞ8ño‡0õÌóLP†~ñ<Ô)ÒßÔ!J;ÜC Ç™;y¶wš’ÆÇh ÝX“§j2sgæ@戔3¸1©Eî'‰(KV·@ŠœE”)öïr+§£Ëê#cj±Üø–ê7¾Ð)\iày†Bá[ÀœšÊ…¿é™âúG6Æ0°;l|Ê@}ëFY+ ?´œ‹¥¿â@³'»µ’,ì%W…Plw™àUWÓd ê‚ $æ.‹¤U‚à œ%±æJÜjz‚d;ê ý]¡e êÓlæ+Q”h ÐÍÔ1^©ï¸©ÔÎnŠ:²»êÛc°Í¥Wp¶Dƒ?K.N£©ÙI¹ë¯N+Yù‹U‡P/a/£éVìþa¦ƇNÒz…V6»É81!< Òp¨ seE9²"øT””[x¶J k`Y;ÀA˵\Yð1 âl@‚*`+Q”_¡¯‰ …±ð ‘ïs«§`Æî,[‰81¥\ƒ,ùBœÉýA\J=Ê ‚fŠèHûÈ=èM‚@!„ „(ŠBBB  €¡BB¥ # Q@Q@P•b032 2 Rªˆ˜d˜‰È0%ãÄÎiD¬XW¹¨·kàHÊìëDÒüm&«›ªd8sh#PDâÁ²Xó¾Êŵ=§.D(Õ(‚ÒI2ld’b $Ås@Þȃxó Vc£Qðc*Þ ÒÞ Do4±àzmàÊIüGé?‰%Jìd˜ ‰Eþ&u ߣÆó[Üü@Wm`ïîA›íÏ&0=¶eÔɽ¹»rd¤N<•²î,€¬ý2+œ p*wõšâ‰Â¡IV7s£3+bE'2+=&ƒÍÐ™ä ¶íæXñ@«‹±µöžâËP0È Ô…·™¯kxü@ÕÖô7iž`ç`" /TªLTFõ÷Š9z¢Í—mÄ3k(…WÛUp0"è:ðå*oŽ ò¨Ñcpwœ§g[">rKj¢MÕ™Ù†\º«H Å¡|ŽÀÑ)Ú¥úlÝZØU£Òà@½çNGMB¹tÖxXÖ—m ?I‹N•Z_tT5‰yr&£!Ê !§>L‚ö)Ǽ¥pir ÙŒgUÊ e(ö ·êcÞ qê·5´= v`-ñr#õÕ†â0šäAp”;@è]Æóe:09ÚŸ(ÕÁ3Ô~ Gndôr.ŒÕUEoÞQôš €B!!JB@!B„( (B@P€BˆÀQJ$ (B”I’`A`I“„L“ ƒ †0&æH]êþǙҌ@SâE6«ÌÍ›x«ày‘Xu I”½ ýç&/£ó*5VœÝj‘” åAñ†fžŠø”?E|Eè¯& :œa¡S<(2£¤c~šøLx3 ɨˆ-çZ¨¨S #Ò!¨©ÂÀküºq®Â^˜A¤B¡\NÏ011ˆ óxãe±¡p Ê3F2 œ+\C(;’LÁŸX]µÏÞ*l¨—›Kqó2kR\P7›&P¸†0¶o“Ä£Lju&öí5Û`,ÜÈnßJ×k“íeS[‹”R5/³’;Ì÷L„VÏâl¿ÍÕ½Wºä³è‘ôÙÕψÅuáöŠ5u9º¥OÌŠe5)$Ð<™¨¤82ŽT&F {Mþ¦€t­“¿xá︒n,h¢Nüv¤`3%q®6>ãý¡c ¬OôšVV\xY{‘¨Bººb^ˆ&籉Ô.¤õ¥„'˜]Mñâ\#\`\§Px0©‡P7Å™µˆaÀ;ˆ£VEiƒã¤p³/3Æèvæhfç%n7’Œçc ´V»Þw`;‹GKâF‰éPñ&†3/igr%m)ÆÛ@•Çfv ÈSN£^ ÃÇén,÷E  B €EÅÅ„ „ (@"€E„ Š ( ( (@QBŒ¢LƒL˜b€D`I’`A`A‘D˜Céš5Åó!qdÌ5ð²+§ƒUvïVbX€GbŠM¦éOÉr›–09zœººgÞÎÃûÎlgPšù•(sF¯xº¯­?ÿZÀ1}7HàÊ3‡}!OæmP®^·úf}<°#¨B©ŸQÿH¸±ýbv¨Ú¼! ó›ëüÀëÆ=¢iP@áê¿êÌ!A€ây”ªæ½¤¹5P+XàÍÊw·®Õ 6¤2 4kÄ6R32 ‡2«&r”wã³Zšªd+!YŠš?OÞ%˰ -DÜ% Ùjð%ë[* é‘MˆÐ÷VFÓ”– €(y&TkŽ‚ö“œµ£¨ÛU×"Lî7Ÿ2í ƒô﫳"ôê_jQ¼Ç"‡5|o 1®I£giY›Ùø•X#ÀÄwbOS-’t®ÂùÔJàÄtþœì²À-“äÈ!¨Ñº‘Œ†Êïd“¹ÚTZå+‘Z,H#üM(Ê#+›‘Ñè:gÔ¸©ØU®„ŠéÁÍm5Ɉ¦æ:ÉàK\®T`jìMΜM«ä”…YÁ“!f­P%†Ö"õ¨V÷(-ØmÜ`l^†Âæ ¸$«MqôÊÂÄúaZˆ”S(еŠ4CÍܤuÓSδDƒ’ÍŬÝJ:ñ¦æÃ SRAM–æ-’Ø{Ê>’@„@!„ „(@!Š(! (@!b€EBŠ¢2„d˜dD (Œ 2 2 1Zk-BfºÜ‘‰ù‘Zcé¨êÉYÉàK=¯sØ ¤Q±ú…_ l@Ôhp ß [¿ÀœùÜlÔ"å\h‚‹€ œÇcb¤qç´¨,•Ðxæû‰^Ù@»¤]á!ãÿ¦~Ó‹Ü6*µéo×_÷ý¡½oôÌúhWPâT!Lº“XL+‹ýIÚ£hEC¼)6ÊgœO¼ýá1×éš;ÄI¼¦c€Üí ê(¸‘TV²-‰›14(P‘SÛæ6s§µñPŽwr;ÍqdÔ ž@”=f¬oY¯2 }(âî†ÄWy [’?ª·09ú„EbŸÞ@](5¼H­ÁÀ¯i™æU@¤Vñbʪi…ƒç´Ý\j:nAYRØ{I¡s0­èdw&‰¶h!„(„ „(Q ‘R¨„ „(P „(@!ˆÀQ@"€¢€EŒ¨Qd‘jI$Ä`A’w€,hM ·t߉-îÜvBÆâ@/ÿ©ò7ÜB§ÉS1k×e¶žMAlíöï9œÙÞX7F÷â'ÌêËr®Û5sóßc&ÔíÈÿ‰ÏÕÕÿH¦/¦h¥nÂ;ˆ8úÓºý¤tæ uƒ´rj ‡T•ù”qâ>ùÚ§hUjGﵿ¨~ò ò¸8؉Ã{ÄI‘@‰~ªÿ¨~ðÌ—õèÕ1 ‘30´¼CÞ Ü àhìXßy$È©&)Q–T½ä Æ9ÞQhJû®îXÌò½l£·ÌoQ™ËÉš|”¦€æ iÕ#7¢Ãú½¤ü̳ÄÅqæeO%Ál„6•m„Ç'Q•©Bùˆ!‹QÜø™™QYéý§GOœì¹9ì|ÀêÈ‹— ÇÄñz¥oTšÛ‹ˆF#+§£=FOõJ®ÿê1ù+ê0!ܵj7$9cýVÿQýäëjúï ^£ÿ¨þòK1ä“(›ß˜Ã|À,ÅgÌ›2LhPÑY€ëÌÑÉC=̃÷‘j]ÂòeâÒF²§L©iP¸×`&b·$Yª”jö¡±1¸X?0ÅJmî¾d…eab‰àGk¥ôCE’žíω¶LI×*=N£e^[Èveí%O¸ûˆv”EDwš¡ 5Y½ëï;1âBE¿iØ;2ÃØæV5]¬×x6Ã~.BdnÌ&;jƒ BÀ cÓò1µñ·Îò—ùz¬Ý˜â_Iú‚ßâ`q¶LêTÕoñb8ñ³9ݹ&_OŒdÔ7+TEó"º í¥âtaèÖï´Ê–êsË“s´fˆêú×l~Ó8qu/®Œ¾#´çrœÌ•Yßs"´a¤Mº^˜fÜ“]¤·GWÓ6¤™Îž±nòö®ÄÖ£ÝrYu ?HMqR,ÀÛ#;m9¨u=È’ N§VÆ¥¸´ÚQÌõq´Œ„¡Þ“ )ó0Ç”†£´ u lN\Ø˜Ý `ÇG“+TÝ¿IÈå”sž‘±îod©(ÈôÞøÐw„'p²qu'±õHJ¢(C„¥ €B„!Â@EŠPEŠ „@P€¢€¢€EBT#€Œ˜ÈMU~dP&ŠíæàUA$¨¸‘Ѳù2=E?MæLáO;}ä6pkNà´È¦Ù QæÀQ&ê­€±R.Efg ªv ÉûÂ82äS´›°aRl™™ÞR´$Þ0AöwæÑ7 ÜŽ/¼ÉŠœn²`y™k‰”qY”8'úoþ“ûI ÷¸pæ0æq ÒLâ0…{CyTÀ¹Z@Èý5 j4jâÕ#¡ÜA‰TV(i¸’ _O­–ù›úƒÐU6hoR£žn¹œïŒ+äUJ ÞQ“âVÄjßÅ×DÇ{“fQÑêÀ ÕvŒqï ‚7¯;™x¿äqB3¨?MûÍíÈö€ÿÒÑœ­Åó¼u>ìeNëa¶‰­•Û}šŒ .Nld»ÞûT¾ƒ!~.J6Q¨ÿLtŒ@«;ŸˆŠßj47žŸOŠñø„F] g›Ô¢ò%¥ÜÁ°ª›¢”+P¹·§ \š¬ò!zÞmÓd|?K)f¯.gÈmÉ3~‘±êÜIÇ£iÂ2*ÍKàË/R·íiŸ¬K 0=Ÿ dK&åœ!IQ‚¨™r¨®DŒyÖ½ÛIÈ(½¤ìšDɱ÷Q¦$ÄÜâP7]>…È6ž¸Ý*„ƒ‹©èTî*s/FДsgéÊDãÉ…È$,¨óó«6 Äbåªý~( €B €¡!„€„¡B„ ‚ €EBŠ!B’&VŸ0¬¨Â†Ž@O¼­Íñ%G;ɰx¿È‘H‚x½¦_̱¨<—êYœúù©§M˜3 *»‰¯³Ó53 Ê+Ô÷™U‚Jn×( SFQ6V¯Ÿ22åƒ{W’Õ ó²Rf` ÞXhEâß ̼˜X¶FQôUÄ nÓ™Žv#"hÔ£PåÐ1楟¤ý seQ{pDä;mRã-À¹¾.•˜‚Û iŽÕÉ@WöÞPMêâ¦U lñS'!»^™QƒcRw6ÅŒý3lUÞfTƒÄ~ÒI2‚â„y…BœP([ މ;Â(¨½Îÿ?Aò¸·p®œ} ¯¨pkúGn¯!r}«²€8‘YèÔåA$Ò¶Ä„) [™.qœ·j~jæYT¶Pª±5¨„!rЮgk1.ÃPU÷¾ 2/+m êÄc!^œ¥ï{ÅVjuB{ߦ&Ž™lïw¼”.¡OñXÙ¶ä N6fÕþ¯08A ©ä$„ì.ÆÿˆR—!<÷Y”€¬" ¨dR c‹ù™I&Ú„š9:ïÒÑÔ•ÁÏú{¦M‡y¹x§BAQ @q@!!"ˆJ‚(P @!P€BP (ªQŠ (àÅ¿ˆ)ö¯´Ã®s¥wÆÔÀäW޽Y¶õ7$ÝÔõú@[¥ÆÅ…0°;Ô׈Ôñ V6±÷ Ij±ûE“nð<ί¤õ{ŸûfXÿO|Nµý„‘[dðÜi=ª6Æ iÓǘ­iï∕¨kÄ£5Ém{íÎüÍC'¢Af?7¼#ÇÎPu 1ÞŸžð ´ úb=t¿3µ…¦šçÿñŒ½j.3—úÆÿ‰ÃÔ}Címþ˜ûK¿ažAj‰ÊRò@èDZØ~'^!ª¬@l¾â*¿Ú"¥6ÑãMxlö&¬}¡9Al­L£Ÿé” ÐI¿¼ÕWWM½ÝYƒ¨\JI«s³ R‹>ÚØ˜h²vâüÎ`k®kî aÔ0=bm¸"ç~ªš@Ø£¯6L`;ºi…½Ô$½+Ñþ+Êp“0e—~ÓPnÄ£7郙¢­ê]Bô˜¾ `oÓdQÌéfFo2­ñtèøûLŸ(*A†©·"¼Oc Q—§PM ±JjErõ:aë‰Uµûo~&¥‘*žäÑñ°µôâüÖdk¶ÀŽÐ9kNu[Þhd)ÜHŸn«íx®Âàd•“×Ñm¾ÓR ôÅh«RŒ]Côø?ÒeáÔ¨uñ[@C*$üLiŸ.<—W±ù›)~¹äg­Ñàl©­æJ=4 7LñŸ[-B·ÍÓè]C÷1bëU™ mü^6Ĺï ´Ìš¹ve+ȹGByÈœ s¾TS±'T}P:G]£ú¢oÔ`m‚³njlØUDš*63,øÐµˆYQy™¯TC@×øÖQ9ß3»j¸õŒìÅ•O}àj^ÆÓî½Kø²#t¶t=äù S'PÁ€"åŽ$åä”cÔãÖÀ˜tù6âQÝxÊÌ2ªyÑÂm!D! @!„H J@P€¡BB!V@íÚE-ÿÒcæ„ÔU( üÌ2•FÒ[s›'R©Â1®IÚx½k‡ê²° ]B4èz¿áõ:µ×3ÖÄÇ*ûÏ"Ä£@FßÞ3ãˆiï%žŒ"u÷½¤ú¢ø€>Kªó2² ™“)ÓcÜ|]\€Ò•`Qù7UìHû@“²“ù‡ðÞX~ `øŠV÷ó2j¢¬`p>0X×3)¤\ |Y½Œ„ýC˜×2³á àÜâÍ³Ô ÓéhÉ¥0"÷™årªìDîÂêÛ©âNÏ[{m'&=9hÿhê,¨?“#e۷ă­íÓõÏ£{ýå¾VàŠ¦Wî¾ð¤ŠÉàÊ›àEDeh®¡ø–¤‡ "Žç{¯¼ƒAˆz~¾bÁw™Œ–¥¨€w00|Åòmž]>"AÉ—Úâ WW˜`MªüÊ:±£IMÏqÌ ½fÈBªó7þÈ ÃBsB7'>\c‘á|Ì… d£ã¼íŒ ÿ©øš?½Ã¸#ÜA©P‡L 3–=‡a0lFèäNä, (A“N•ºP½¡ŸÉÓúÊÅÈ!Ôʱɩ¥€köߤ; xɺ!€€ºÆ_ãY@÷#Ì1îÍõ(†3S«S®ÁFâZPà÷ª¸:dÍœæP”•r í1Ôkȸôµ^æªSŸHÒó]üHH„¶WøÓ¸ï/1!@환¢á#ý$ °:q±äÊ!½ØÜµm k††â¶¨Ñ =y4@Ϩé›fØW&IëZuùó&+qœéÕ{Îlý[‘Ì`ã=NBÜ™²õeFâ,zõ­Ä¤ë–0Õ;n`½[!ºŒiú€+ñèvhÁÍ“¬¦ö¦cõ&måÿ‘—q5éú±VNòÄýYqìLÐþ²¤ÁQúŸª´7˜týu;Kƒ¬õDŽja“ªÈoxq ¤…€¡"JBˆB¤%$ ‚( (@P„AÔÜ{G“ÌŠ¥FÜü˹…;†­êÀPÞ@oɕउó¸3dËÔã½ÌjåaŠì ×g“¤Á‘µ>$cäÂ3OÓzeɬcû [ Õ@ ñ(AÀçh¤]Â3/ý"„Ƀ,Š‘Gc¶ÿ1…ÚT¤˜~"¸hÝÈ&¸ÿ*·àÄ+É„3¦»NN£Mó(à©,.EIBNКT¨…Ô~ž&9A/¸Ó5’>9‰RQ¹óæU%¸‚9[ÚæoÒ—õC`sRT)Ö¤E¥µGÝ ‡c£M¿æe€{-ˆj ª‰žH˜fe¢w³œ’w$˜‡2Šª;’ÍWФ¢ro¹B»°$ž /“2¨ËŸûÌ zŽ¡30%˜ÔJ ¥³Òp´.Q8ñ36¡Œšøçó6ÈÝB¨¥LK÷³ æ8×ë{'ûÀäRÀKU£iEéu)­Â_ÇŽF B± 8b9“üN¢ª,9˜…Xœ>ß’7”R!ÈYÙÍvcÞ^&uM>Úí^`&gÊ7:ù™çS‚§s~£§cã PM™“0^›6;ìI½ÄÅQ˜é±}ÚnGG‘W)fØi6eÎÙ“7T2ãV٬ͱw!† .ñb-Ó¸f k“+Ó¢ý"ˆþðvÐ…wžebÌ=VUØ©—xúz3Þ‰9T„÷ i“ÓZT±`þbÊAk;5÷”<НhQ^&ØN…wš•²Y­ŽæbùƒcE]A–¥½2¹5ïyÓÔf+µÈ8ƒ–yª1 07͘.9äfÉ©Ì ˜èÂ"-c˜E£P…ƒ¹,@‚àjf§@mrÏ4ÅíäÊ79ÀNg#æ L`„ݬMN"Ë´ƒ&ÄGy5¤ÀÛ ÛͲ2* x€­ääP2(@¨ô€axÂhÞr¶DF""°.]¶›"ÞQÝÒãR7–øUZÅHp6©,@¨ Âi Bˆ@!P€B HJ @!Bàâ¿™Ô<Ë·Ú0 m'~AþÛÈ»wSRÊߟ™Eäµö€n7;ü ŽEl†Ë²¯a¦J9sôúñ51f­¶©â¢dÆèÕO`®ýâc§LŒÞ®l$d"·ØN‚;q4† Ãh2Ù»’ ªÌˆªCý ‡ô¨‰B;I'm +uTgø\ƒ"žŸÄa{@ ZEòaÚGý§VÃM޶ж…"7G`ñ*!ø™9 ˆVý&tL–æ–¨ÊfÀù^œ VÕ.3ë tÝæL+ «¸3£¥`„ã'Ý}ŽÆv¢vÕ%2M©49ír+/s5“Bø³*˱ìH„s>f=…÷>g+¹cdF ”ÛŽ (qýåcôù…YÐë^À ¹‘pí°ãP‹É”h[á1Ìu¸Ôßõ(„¶agsA“<`ÔGp 1ÖJ XÅüNG½«C“¹û@Ï"æv¼¶ýÐ ë>ÑûH©r¡4HÜ|˜c%Ô¾F·'¹„"]IÔUù “«mY¹=€¡(´³ƒûvæö‰¡ñÌ 52iÕ`WÞböæÍ,Ôƒ^£&DEDPÎÀn{ ˜`G¼I%››™ªž­€“|}¤ô¸Æ_«‚”.¼°5ftbÛ¨ÒÃz ´¬µ‡BÏñ9€.ÀÝíu¹‚ÿj½Ä2\kêmv;܃,˜Ž<…¯P½Ï2^‰Öyìe ‡Qà2å½Äîdc%TÒöœŒŒ”/ØOˆ—dW}¤®~Òèõ1(Eœ^KjŽ&Þhù(³˔²Ôäd$Ê)SÌЀ¹9v˜Ì£P¤‰ ¤@+h €¼Ñr@ÜåP“\˜À›!"dZQ¦'C6‘ †ÉfH ååT|ÌÑí¨˜óGZì»LÝhbÌŒ¬É:m Í‘‰{–A¦ ÀÎÆÊ¡v©‹9:ÑìY2+ÙÑLÅóƒT{Ë ý. Ž¡! "„€BP@!G QJ@‹&ïaà|H˜]†ðwÞX Yí ’ub@ñþÒ ]øâZ€Nä}„¢‹jC5ð—ù^ÌÛx©™qˆ*“K† ƒ`Œù†m=H» ÃoÌNÇÔ–F[CjxÞdDÒ¯½@ʼn³mp»Þd»éìOÚ•à Á fÆ„V‘H\+¹7[Ü¢5~Ñ3ä(ùs7W‰I¬—ñ9²õ#1MÁ"‘4~!À=Ä¢I¸œí”T IŠP‰® €åXàÜs 8úž‘‘è±bX}皦ÇäÂ' µ"b¤©Øï ëéú›°üW1úëÆ£ c©P6~æbù˜›±l”º5ædÛð!VªõPÈPWÔ{ø„I* ?&㱤úE€‰E51?Žñ·´„¹X‰ ×înƤ3e •ž+ûÀ†FkÕ@w© ‰AÔÇÚNÞL /@ ×̼'MšºßÝæEXÔ¶V àHÊÁ€A’—íþ `êIÜ“¤m´´ ["[ÛH¶c¬ë5cÇ[nÌ-¦K£Ü›<±æQ¶ºWùI¸Ü’/o3•ØŸvß2`Ó¼«¤å\x‡Ô×6lj 5º±ú«´Q—ê—Ó£e¶˜•R€±´¾yš3ë[Sîí²À¥]9bÄrkšV˜]1k ÜÚ‰¯í%4å9M–e ð`u;ŒC2’ ˜&69 ³äÈ)óéʨh„ŸÚ_O˜åptҕڱʨ…‘w$vƒ!tR¼äV9òéÄ7÷xï6ö=l%ŒQHâîcV4ž™”h 4&N=Ëäï(×Õ¤;Î<¨Íx–[ &gFN*f™°=¨™Yn`6B*Aª¸K82»” “ Ê,n$¤€3VoÄfîdk>a@$å(%£GHv¦ø—PÞ@d`œNlÏ® ÉN“¼¡üÆlšb.`m„Šš¿Q¥`qeÊY®F³Ì+õèJ‚@! P„”€¡„H% Aæ÷h_“H¾L³UpªãŸÀãæ‰ ,ð0\ŠÍ±ñ ÔPµlHü@ÓH"˜“÷ˆª©$qÔ¡ÇÄE18Ôq¸êœ_ËÁàs<¼=~©Ù°éØïmU{8ñæÁˆkl)_Vó>¯©N˜¦ª`àTí(âéÿS_ÓÎÊq•»¼ôš¾ò²Á–÷”µâ¤R'ÄDŸ2£6 ¬ûx®cc\ÀÉ»@7r*ì@Y²ZþA·7ó5:=£Š€¢.è{®û2*¹§àÎvP§ÛÌbk™˜YHØl·2l” ’ ª%4óB³QæŒAtídÇ´‹Þ¸Åó5aCi§2è@T7Úg“˜šXªÌ RÖ»ÄFYL”ŒªÑÖ¡ŒÑo«yk›NÒ‰v/¼ÀšÚ›`æîAÌ`“¬–vnð%A2ÛeŽÊýz@!Š@BU‘ (J@! !„I5 ³y½»˜FÃcÞ6^ð¥[Þçã´£°Å÷6îü“9³õª‹XéÏŸ6Œåê‰öšæ”P?™ß‹¢]·¾DA²bUZQCIJ4 ‡àJ±<ƒMWb fÚˆÜýåcÆx?Ò»‹æç‘×*ôïüFPÍ ì`,}z2hÈ Ø«'iÁÕ Ç¦ˆ ÝQéõÿ¨áÔEÞøŸFTŽ6še$>dpw°7€ÞPˆÛ‹ˆØ™¡ÅL2£mN@ð²*éþ¢~æXm¶]à=@íØç÷€Ô®>ñ²èÿÌ Xû¨ Ÿ/DX“o‚`qäèú«"”‚&-Ðuqj1Éä íÞeB¹ý£Bo‰ ùæ4ƒÚMÚU:ø’“uãö§¹hç“3wÒŠñR‰Uê'ñ(Þª 6ǽ,Ê t‘ßzÚg¢šîÇa¶RèoäFˆ]´ì<š(w:{pÒ›.+#ÜçmàO»P³¨ûIÉ<’çö”@Ù­oçi¦$/”Õ[Ü”eÄ U÷qw9\¨Qé’¾ò Ñ[: ‹–ùñé+t(8”B ;Yc\KphX¢NÊæA5I ãÌÝ@&·,Gö‹ ùP³°5µÈmò2Ñk;o_¼‚u*‚¼äl>г¤ `ÄòOiEQÊ"ûù,ݧ^<‰ƒ"öù’4n¤Ø®¦ö­¸^{Ì©ºâĈªì½ÎÛ\ëö ¤|üÊ8ÿPPåu°¦‡äÎN„(Ȥõ®ß޶ê0ÔÃbÛý¯þ'F+l¬||H0Á˜?Q™HåˆN‹4$hÙ?”´¶÷s,‰hîku¯µÈ0é¯& =ºO¸ï:1«:ö6D ›ùš *(‹ñ5ÈW+©Ž!ÿ´ê"ÿ¡Ìiñþ¡d/Q±7žTþgApÂÁ|”pþ¥‘ñáRVÝ3Ï^¿2k‘öz<Í“¤Å‘ͳ &lXÌ _q´š®ÜüȨ¡[ÉÐÝè@@­ÐÉŒŸ†”Üý¡DΠ-9³~£Ó¨5“[ÀJ9›õLÓ‰‰ù3?ýUÁ$c_É3:2Ôó“cBûVe“¯Ï‘@gã¸9˜–Ü’OÞ-AyÞ–'‚ûIýÏÞU9¿Ä'N±º|eTfìˆÞGwI›.mݼè ~æt–Vö?íæh:i®öabEŸ05Ϩ'·’'›™ñ¡÷f¾”`e‹¨\@°éò¢Û#íû ƒõx†vgG ÀûIþð:pŸ8 ‹*‚ÝÌݺދ 6\¸¯¶2ÞïíÉê\æríZ4*sn ±üJÖ|ÀÐuYUxÎlOõáÿ©“,Þ^6sðÆæÜ#¿¦Ï0*ãaC±¡z¼Ÿ×ŽþÐ5j5È–¹ÕÅê¡ò".¢à¼æÏ×ãD#jcÁ­„'#bÄY;Æ26É¡?¼Ùkÿ2® ÄDèý¥³†þ¿i7PÕÇÚÑ#´WF¹û@ (¶ÿxëŸ÷&ÇyHÏub>ÒŽ²Y‰'æE~  Ý\¦À#nÀ@]ÝKF.ª¼Ê rÂÿÒ ­EÍÐø„= éú™¶üv3%Ê P@|³Ä ÈK:‘KCa&­Ã>ãÅ@½A¾ à)ñd §#ÕïP¥êëc¬ßÉ™n£.œ` Ú„j4ô,Š¡=F®5LœêÈäQóÚAdºôè,µÍU›˜'ÜMÑ”khcWÉ«=»d£Wð$†,þÀ@¾k‘-YNM…¿Á”V\¾ \ah'k»““ª+l€*è‘æi$iÄ«@Ñ3Í©´é"¶ºÜÀÝ0.<Ø”Søþóaˆ‚ÛûöÛ´ÍXÕ”d|ŠÂ·ûÃiƹ*Ë„Šô?OVÎ\€5ˆ¿Žó©²ú}1ÊÁ@6@„+6L@ÊÁmÀó9‰þÚcýØp< ´z½l˜Ëê#aâräoU3Sl6©¯Ó‰Yn<ÉOPàÌ^Ë3/ă§ QÞýÇÌæ _¨ô¨€ïÜÈ4ê=ŽNÔ{Î,Ö+SôÀêé–°VÛH|®™MQy<@‡}xõãW™Å•‰k– °’Edíâz4a•æG;›+¡4¬Ï2–T©É¿tÔ 1½K`ˆ«F_«Ch Ž©#Be#y6{ÀQ ³4@H…^ üÄ㤠1°Ò#As:ЍKs“),ËD»$¬ RI–Ò F¡¼’¶e×yaÅB?X„(„¢@"„€BD¢2wØ~`c;B,|ÄMs Ï#VgjyOê TŒ^Õ;_s3GœÃÏ2Õ;÷“Qj­àÎî—©SKcöß o]ú–äÿþS|r–¬žäM 4¸’̨,å'à Ï›)ɉˆÀÔE}TÕ'§è±a6ª‘έÿxõOúb¶œÔÌ;Lñ39Am¶®jAØ?QÍ‹N™1âA¶ßQùœŽù2äוõ1îe´' L€q×`|IŽ4ajfg_ËûLAV^D’eD“qeF«•׆"h:§­È?q"©z’NëûEÉñ1õqbM†NfeV$’~![M²OæI -5Þ¡¦·|Èæ¯ˆ¸Ê¨‰¿ˆB~d²±;o,Æ×õV­Ä¢¬v¿Ìh·µýæTò›ck=Ìi­š¹D”õœ±çÌh4§Ž` às@VÞd%ÔûÀM#B¡Î—fe`6†?cÐê¸ÒÎÅO¸Ï" …wõ'ŸˆUª.“¤ZŽKñ9òˤÞÜx±ää† ‹ªÚQv[“žÊ71ÛºÉ;Ô4¨ãüì?6éòm õ¤ìf í¬±ôó%ýÈ9ßa[DuaJ x3 õ¾Çâh5\+{Fä>TÓ¥h·ÏÌ®£EôÕèMÙû˜Õ'ÉéL`€¢€æOjþï«á®Ttt¹X8,n…{¥çÏüÐâÕÅÌцe|ùQ½aî;­×ö›0@À=¦UÔ¹àPX€}ª“[”™”ÕAï,G–á±æB»¨^ó—ªÈre¸5µúVulH¬k‘ö˜¨þ›ÔO?3*ß@c½ðgNDV.ìÈí ‡K±<GÞr~œŽÝCgqBßæõzŸ30?NóTÊ¢ôØ?05ÂͦàncÍR9ìD ‘ÓÐЦôìgP=M¸– po´Ü/7Úa™Œƒ0v˜±ßi`[ÍQu E£¼Œƒm d¢j¦ ]jˆ'ºØiŒ=@—`f4.\@‹$!¹¥2k&%5Õ÷âhͨF)("[1#˜D¨³Ô§P¹F 0ÞX w°dF¦¾—¶à~± A …HJH@!"ÍÀ=Â(š“ò!EÐ’7ñ 61À Ø\æÏÔcé횎B8˜OQÔ¶f-‘Øp'6¢çi”h‹F¨“7]¶+PÒ‹8&”ˆõ ØûJ6ôò«• §úoi®oÔ›P µÆ¥•êN¡ïfÌ3uÝ^q¥œc_ûE\lÙsä_~GÌ[w½» ¥Ä ƒÏ¡¬­ýö…iìmæl¦µýŒƒìc¾æU4#¾Ü¬Öâµ¼Ã"©âX•™_*GÍj–&h˜õ›õ„€Ul&g àsñ9[­$ä«Þ`îO_”¨9æ0ó¦!ê³ [ÌâAˆ˜Ä\_4 ‘öˆ[‹¡i#n!§ne P†ªø™îb*J¥¹>Õâ6ÔB†Ûì&‘_Jý?’7ˆ›¾7îdVyèÒ,ó%N‘t.j#\5”édÆ–#xR­²P€e +>2¢Øù]¿Ìké¦?~+o’L*RÊÇMâf °¥È0ŽŸEq` ‘бíÉÿÄ…*¬-WWîOÞ$ÅòûÛÚ?¦öŸ ?MšÚøü Tš,^BÄõe…î{@Ù2äôŠàÆ1žI™e\hH™ÆìO˜42Ä8Ð6£ÍÌÓJ€ Í@²ØÓv÷_â¿N˜Î’Î{(ØD ¥(åvžͳ»fl­ß`<@›3Tm/anÀm·&i¼Z›f€’èÊ»[ï%L¿û@£Ç¯Ób¬È‘牑Ž"[. ¿ôñ¾¡«½w‹®`•÷ ^f‡ ³9{÷ '14lB½Ò²ŒM¨›ßiЬ¯×36ãmäEõÅW 2}¦ Œ½ãmžˆÕÚ¡RøÔbÐÏKûÍúb!|üw¦Fò(Gßà™Š€4Š¢9ˆ{ÛþÙmŸV0Sܬj#R.Ó1¼Ðèéþ©Ôãi”rj÷Ô³‡XZAÀ@œÍÝU5ý-®m„œ€63œ=ó ufZñM”\‚ûó(–mQUÔ2Z€Õ;Ê(€\¶­?09Šï 2€-ªUÀÑ´´Ìndã@c|İMiâ³pDÓ%„"ÕoxÝv…b :5ûj1+õhCB‚¢(A!D ]´ˆs5E¡fF¢&¿¼u¹“ªÏă«ý@cÕ»‹ñò ¢A7«Ø÷Ž¢4ÞT5-`?1œom÷ »b"÷#¼jͺ—çŸ2޾Ÿ8’ªyâN¬aÿ’ÚRè1“ Ë&2í°&·g'™–\˜ñØæªûJ9ñ09­§GªWòÍ´]O“Q³ÞæÄc ê=‡ÿWŸÄ Y݈(J©íÌn®>±í=ûÀ‡ú5jÀAV•'îL,<¸™Ô¬„Ð2T_ŸóK‘_Hwpii§Se¡xr|@aœ!Q6IBV1™ÝT1&øH:ŽÀÞàwœ½N@B(Üó 0£R–‘:0å+“&/ds"¸²¹œ®Çu7ÊîöÕH 4eôÙšêÅï3l¾ž:€žü˜¥k¹Õn ŽÄHúµÖ¸ÓU²~Âo‰ÑTÇUžCv­ÛinÁ_"EqáÉ©‰ÍºžhMpäAÓæïÌTPäQµ°ÜTæÆtôäWõ\ Ë4¡ÆóClTëcìpÑ9'§‰¦ ‘\ýF@6åg ²P¡2W74¤ä™5¼ÃQšµ R-‰ª€9KvH Ävm'h‹(‘+Q0aR îÌ®7”hžá¼­÷i‹ÚÔg^ÚeG3¥›”», s6Óy…vâQ¢ær5$!¦š5qýZ(„ª! !(P‘!D €L²Yj„4@7<ʸT“qnLU Ò OpIüN>»¬ô½˜ÛÝÜÉGŽÍ¨“Þ ±™ ¿x‰2wí&‰¨6DTÌ£bÅo•‚é@Ø@nGŸ‰@½n²\*šÙDÓMn^ªeF´ÿ_ì r¤Í 5n#m·iW>`bI˜6W<àF¢y?¼ üÊ0÷šp9î h¨Úw /Á™d6íýæmÁ‰mΓ&˜›s´Ça6EJä–ÕÌ`’or~­–á¶'ñ&‡5 °#ÒJß3PAMîG¥Ôq$±üÆ ·Êmš€ñVÌē䙵XBr{Ȥû޼@µoåÄqšj¿u3,ʶUHì• QÓ^y¨€ãíÀl1jÞþŸ´t 9bGÀ¨¿"XÒÕGäï ·ù•Z˜i6aëjWb|Ô¢}G-ŽƒØ(5³ß¦Šˆ;÷€0V±Éø<ÎŒyÕ1®,8«±'sz¬žš‰‚‰ÜŽ{˜âÂ9fUûÊÒ«{'½m ¿er6ÿU¤iÔu7áa²YSbî9ÎÌÖO·í6`Ø“5öQhšy0fÛQ²Uv&N7¶âPô3*´%3*€/S þ!Oz¤O$–Úvô‹îB âä¨2Æçp+uÌ¡ä÷göTǹû™_§ä9,·bŒ >çmC†&lqƒŽü äiç;úzÁ_iî"lƒéQù™ì/·2€ÿÄ¡7ÄtA5ù†¯m`YÅ…•ÉU×ÓþŸ›5ô×ýDOD~›Òª€ÈÌ|ê"$ýƒÿNéµWÿ•ÌßôÌMÆGp ~#«è§MjÚÖû.âq®·îA’ º97ó4=+5ÿ7¾)ÄÖ#&è3‹°tùÌFV÷÷…h:|D÷?ÇJƀǒ»R˜ÑÑÓôϹ’'Ct}.G&BÚSrn y=_Z™FœF4ÿQ;™ÆImë3äð<Ébϲñ @Û÷’Xp9ŽÐôwcøŽ˜ …B±mŽûÉÜÍFL\G¦ø&kU$7‹ÜNüHbˆcÇ•TnÛÊÁýD cî4>Ð#¿øŠêµq|I'z¸ÖÈÖ¤Póóñ(PÑ=¡° á‰ñ´2!FÒ×u÷©U–Ãä@d!ÔVÒÈ+šRks¾ñ² å¨ÒÁ˜Sz¨Ô—2“¥NÜ™P×­{è÷¹®=µ^–Pz…alEù”ºˆ4hyžƒ¨¶›ø&'Z¯mTzØñX½Gä ÕGwRHàŽÓ:žjDí®“VÿÞi‹=³¸$!YY´ÞhøX(b v„N‚Ào`vÝù•MòhŧY,v¯<`ò_žð:=`£t¢Ul X 6ÄqÌ‚:‚¬åƒ0¥¨÷˜°,Ã@$VFæA Rˆr-Òý:‡ø’H*—Üx¾òŒØ(ßxšñãM_‰DâjF<5xäh#¼‚0šq=N•µgÉF©veú¬jÝø}"ŒJ›m[ÅvÖÞZ&bìÕŽÒ ºº=&šÚ¾&®À€×/‹œDõz–òëžó,Ä8¿H8ÙHšGgN—5|D™(’YNÒÕuîÒ*Û§G‹?JWušˆåÈ¥D…À½ÆÕ&È,l@( ¡¯jX÷šh"#2í´å ˜hÂ÷=²ˆj&kŒm²{Ë *%â`§xZƒ,åÉíh² W¬ÀUÁP¶ñ¨dm1+fUÅãÆLè qä rÜÂ?TÇ#B@!Ep˜¬Ü U@*’n„^bn`.b'°².Lí¸§‘ÔuO›’ð;H9I$Ѐۉ/Mv@J^&b–\íö½_í.†Ä\v76D_ê5;º,;ØÁ‘Á;¡U2*ö nªn£Ë5+j&†ªƒã³aŠŸÞÈÝ 3–=I³ÈU©MÐôÀW¦~úŒƒƒ®èú|J¡}]G€=Âsôøñäz}*ú¹2üyQv ˆ*QÈ7 þ!®qC/Û™§ñªvÔnUNN³&¢ßŠÞxÝgU“©É¹¥ì¢gêŽF EŸÄ76Xéð D âC?aÄÈËÜÇ“)F‘csäÍ"™J¨c߉“’Oû™ ‚ ¬óS@â"hËc{ÊR+yTõ‚NòK@Z®!dÚ1µ3,ÙOËŠä`ÜÍm˜í´´Pnw†šÜï3CÆÊ­enVFP;ïlû’Ä-ñ´’Hm«ï,A¿¤ÄÐã!T>Aó5¢ÆGUСTw£»HÊŨ1 Ò8~£WÏiШA oÉsf€`vPþó…«P¨J‰Píɯn‹F‰{@–÷©±§~nI@M¶ÿx +#nÀï4]$û€$o>} Òƒgi–¼®*Ûst8§¦ØÔ†°ç½ð&hªV‰È$§næPa ì ‘¾&†¨Ê¢ŽÓ ù¯a É݉Ðó"?WŽ€®¢¸ ` Œ Õ‰ ¶Ü\À9,KdePQ€#µïMM³H䱕F1êÝx$@Áß^å®ùš¨62USÉ;@ä*€¡÷Œ9ǽ’EryClw´½‹aì (H+¾ßŠ2qß»yÓ× Š7lB9×+6’h‘ÜîTå²ýE†–ä‰UÓ™NE.;rDÅvÂÅlÞÕÚAÌêCQÚæ„"-•$ð >Ѱšàb¹‘fˆøª·§•ñÕûÃ,ö6FºØîd£ƒ5znçÎÕ#¤Ô¹äà .‡!/R±´é'W~ÒQÌEë5±šf˜Ô°c¤†²VóHߥÜG”•s3UšM4ptm"¹Ô•ÌŸ© Е»?2tÛÑšúAhÍQF×2œÛq!rRÕEЬk­¶š8"Erå7˜j–€Ý@ ¤“Š€ÔA:™²·¶4dÜÊEÔb£ m2f²w–*Co4V±Äˆ/IŒå¡ZcÊ;Í"éÁ—/¸Ììâ‹SRµëð¸QqB`R­J€¡ íPwâFg¥€ã“âAáu}L…»™Šš»æDMŸÞ&¨'¿Ú-\È$¨#Ý+€=¦M ýlwâ{?§¶GÂÌÄ„–käz àÕǦ‚4 É(Ùõ~æE0u6¯¼ƒŸ¶ŸqnÀ(áýCÖ.ŸÃ¾Pìh¨oö™ ¨©þcå*ôdцgêX€Ìïþγ(³ŒæªM0µÕ$úw°Ùœìy“6Ä™‹Èɲ ;s'Qî%ÃExûÌÞÿybSÆ„ iG~&o4FB*¶™¡Þ\áMŸÀ:³do/ÌÄ:Úæ”öâ»;›€S`Øû ƒGn%ƒ\I¥=Æÿà™ô-fèwæfh´Òß;ÉÕG¼€6G¼Äš0À 7¼kž"÷ë¼ Õ\WæØÛûD¡²>Ý¥ëUµÓg‹›Ìxwì¦ãÇí°Õî,ñ Ⱥ(]ßĤ8ÓÜoYؼ¨Z›+Y ·*±„-V~`JfdFôõ æJ•O{Ù'°Y3)])Ž’dâVc@Ù;“â¶*½ÇýG˜²ælqP'ÓÛV¯§’$€5,XÜkúNãxŽ,™bÀ(ù(c`Pñ)½ÇY Jä¬dq\o5Um%™F“¹±w Éò³Y`€Ü.£Sl.Àª³"¬1ÜsÄT>uyñ"3ljx5_´Y'¦c€a£ul^ÕÞc‰³iy¨«VǾ«ÜLšÇŠ6Þb P kà›Úg“ܦ BÁíÔ×S\tÎ[°™øSÔë ŠÎþ·7¤qx,5}¤G3åZÅû‰©ÏŒ1ÈI¼èÀÀ¾ç`$£Årn‡2@>` q¿ÌPËPäÃ^ÞÛ3#&ó7B»ó÷”+Ûx]¥Tê#ííF }Ñ­Ûx¢™¬l&jhîb·ï3ÞøÚ1óгÞN× g®;÷ŽÑ •{¾#^ ”*JßR›îM°ì~#®¤éÿ”eµV÷öôuXÛã™'!ÔYEß Ué°þk7ï¼h¥šØíûJ‹ ï 8ººÈ$s©ÆÜÞ{LЖkqb¶•I²¡oj^c|®N€ãOÄ"°è$³;-q@+O—f$çr` åoÇ2ŵX¹n”;%rÃm*~lÀ‡( Ûí#Ô÷ [ó¾Ð¡ˆ/ahv´Ý2;«;ÒcSD¨¸ÕÔăO`ÛÆùYÁÕUñ ÖÀ6½¨"$ã–bvßOú¦FÎmDP0­ŽlD[‰ž8ìã*NÖ`$±4^àȧ:©¥c±„[áDß.’8¿‰Î_m ¸&Ì ÓKAwƒ ˆc{-¹Ûƒ"¶ÂõœF×ftõn˜m¸7~$!ñ[rGiÄ™4ºÑá··[õbaµX¹Ôäú{QU¾ð2ÌêÝ-¼äÞ·`Š:…J;úp-ç.Qnjdi€[gvL_ɸ Õbq¶ä›ÑÓ°ydƒÞX9ò>’f.Ä¥<Ì»M“.£î¦•»'#Òór¾K™êAΚ’ûÁŠJ]ä[H:eCRÓX" %[6&Š+˜T䩚âÖ./ÐW˜Žð2e7&ˆ€Á3@6Þƒi3tÍ´"[,Áˆ&Qû™S„̱Åp$“Ql`*ñÄ ÙDò?TËï»TÍpùüŧÁ™´G}¢,w#ݰ5öŒ/¢t¹3b3W$q&ŽîŸ¢Ä[¨S±¡ŒmûÏOåQéŽpcQµ›?Š›ƒ«êפËCQf÷j>êûOH‘ÆsD‘¼ÏVmG¹Š:º€\9Ú‰›¨ÁliÞ@bÍê.“±ð'sdñ“WB¨wÍË!'´œ®N·N†¬Íœ¨´ªçÈ}»LØÜƒ· VólŠ4m â O  ”b­¤ïGm(Àï&J,c$\ztò%¸'qY¶’9 RDDoR´‘¼‚Æàm‹¡qä¤I9ê¹av”I]ãÑ´ eÚV= j˜1 ˜Ì™®Q"tãÅk¼¸m毄*@çÎ¨Š•2Ñúę̀„ʪ€\›€¡„ ™²hHO?ÚWÄ¢ ‚jÿ—©ê cîì·Ì”x¹ó³’]‰ðª«ø’Ÿ©h cÆqb^ËDŸÞ4n¿«¦±xý¤}ÌëÇ•3©.…Pð_k—Šþ>Ÿ¤¾M‰Ì:¼8ú‚¸ßë?^£pȃO•1>[úÔq¦ù…[e\k½ý«yåõ_«;ZâM#±äÉhóÙòNä“!Þ†üøœû¨ÉŸâE÷&tIk&·2Ó)füÉõpê-v8#ï1‚K×{¹$ÍȬËQ‡"ÄÖë¼’ý¥ßâc±€"ïûI4ûü@PoµD[{\D1®2P½ñ¡r©k¾Gÿ´ øŒ m½Aq³@Ør`ÅñÞëx ð&4I$ˈa ÜoE ïsâR‚{~¤"¤îl æXFú¾>b¶…D2+€&:µ[;ð;Jš„'€(÷3PNªA«í%U£âV>¹:¾Ò2ºÙlhÊ;“°”d2j$·i«º¬w¨Fa‹XQ¤÷Q– T.äÞ#Säð$«a–Éï ¢¨(!àY$NvÝ­w†a¬€ïS\D@ {3 ‡gjmg{š&<~–¢ÔGiy¶m€!äþ+hÉoP2– rH…Ft8èìm¦ôÇ¢yì;@È®4Æ {É$Èé—[j5@ÝðŽŒ® Š{ÕLÉSšEsêÒö 8ò6EóFQxT©rv$…¶tÒ»Iß2¡º{jd‹ üIUAé¶–ùT ›‘¬™F.Þè‘ñ€DN ™¦#b'` •DTÒ 4Ò÷@ÖèIV¬Ê6:HœÙšàiÈ’bp3ÍC ”#¼5vX¥ãNõ N@ØLÍ@†73«2 ÍÃi ÆÛܼ¹(T³”F¥ŒYÀÕÄÕ¡#GQÅpP@"€â€Bþ`IoX÷½¤_V¸†•>ïŽÓÇÍ‘²5–$ù34g^w‰˜q‰Üòˆßn$ ä 2 ;%B9w¥äÆ`ÕË !OUì H æQhxÐ/ÄôÆ«:ªçdÅŽ»ÕþÒÍô](eSÔ¶£Ú3dý;¦@ kv¿Çö–J:OK…I¥ù¨ñôø±‹ÆkòL±MÑ/QQ|Ì6:8‹[m¥8“ àëº0€åL,›–fv­ü 忸žó9Ê3byj©¾…Ò§x¬±ßaäÎa+Û$†<ï"†®M:J¨&¶’O̰NþaˆÛ¼ù߼̈vïVò »­PŠø•Wñ"¤mæ¼ 6ÛDOzü@_‚XWö”t™Xþö"U2Š»ü˜±äUºü‘4„Hà MÏÄJ©¹c¨üI‹¬ÙT¶Ë^#R4ÄvÚ\Bf,Fûx‹QgÔÛ‘Ä ÐÎ¥Ù‰#æ ÃælÁ»<#>Ë7À¤Ä ˜ÕƒdíÍÈ%\Û)Ò?h€ FÊ(JÀ•Q°²HäJ,¢¶ ×nðƒ—:oIæÎòt®½ýý®A¿¥‡69YþžòðbL8ï1P}d2;ÊrÚ&%;Ê€€[2*ˆ"j¬|Å™Ú-P¼¥È74ÓÉÚQ¯Nlï/2Ä.Ðf³Ì×*:‘D @W ÔÅHq{H%q¥± <™çu_¨+ˆÐó%£Íf,w6d}æ@NÑ]H>+ó&á õqp>ÞLªhüð#ÒBö¹¨…¤Öðª–ÕPb6=B½Ä}¤ð ›A›±–ýK>Ï™šÏ¶“l@¹Ÿ{ZÉÿQž†OÖš´®0“7>”±þ¯”ÔDañ±ž§Ní›§L…4³ «–r6ÂŽ —Å‹+2-¢ê?z”|×_ÔåÉ™•ßPSÅØüN"ÝÏí2%E‹eÛÌÌ·‰¹¶ß™ö”I;ÊJ…wÚ2"³'í$j»•‰ñ$¡Àj(\`Ѿb¡‚;ÆH«;H¤k€ _Ó¹Rˆ¸ï 71ñ ³¼µdÓg´°©oæ6(ÁB‚(nOy¬DlÀ›ûK%T£QîÐ2f»æà˜Éx ÚŒª|žò\^òš²9 ií¦í¿Ò>&¸ò®$Ö(©; s¾bìÎܞݪm‡®×a@­”l%£sÒ"#äÍ—J+™Æs+ *Ï]™¹1*ëÈj#Šš²¶#ý9ÀP®wbIçs^*†"õW" i“ \jЦÏÔÇÇA•‹Rªµòd.h,ñð.t¦Ît Ò£êcÌê°¦'Óî*7µÿ™Š[c!¸'˜Ñ}â»MÛ€ãÚ×lj·î;ÕÊUoM—úIßæ]V`ú±‹ªÜžj1ŒdÍ•x±w ÀéI7À‰Ð ‹Ú½z+“[.õÞvtáXïkk”b 5W9q:‡ ¦ï±”g•WU¡ªˆ°Ó¦ÍÖæ´ªV¼yq7pª\‚ʯ·i*§Õßr OTt€'zœì%Ý)'¦®ð¶Ó#©Ði™ãÆ,Ô£eÇF<˜À#œ-¶ÓfÆÞœp¾ §NÓBËŠœçv€˜íPSP5ÆšÌèô´‹„bÚc â£ú¥3%F LK%V€ÐЉ€À¨ G;AV¥FëUÌLv‘X<@X”0j j­bIKhFرš±6+bŒ‘Y: œåMí(ý†(ŠÀ!ŒP çYÖ. Ugð8Qåfêrd$³9É'æ`+‹äÅÉ5HÚÉ¡¸ºÚ5¤ö¨¨Ð?™#‡Õ_­[ÞÐ$û~ÒBê&ÀCˆ‚,Ë¡e›Ûgì$D…Qdìšœ½H X.¢+ûH h‰0v~ŸÓ¯U“K¶¼ngÑàA‰€*jp­Ã^ÞgêÁOO¡—QþžOÄQóY´«ºì ÍA&êfô,éÖÿ3;¶Üí0!²4£h‚mÍt/‘µIÓc}¥„fö8Úf¼ÔT12yæi ãà2C¶äIVp­ˆwßæAôâJõ‹aŠØx˜À’@#rI=?R omuþÒ¡u@w,;Ž!Zb Žv’‰Ð©‰› ÷ €ùœìÛ <Ê%ÎãNâRXk2)6-íLÛtkuçƒ Ï:“&'ÇVx¥t~ì/ƒ5Ài÷uša#ƒ´¨ àE› Ñ"¹ÐžgV,šÖŒƒŸ5g0PÍ4`=¤ÿ Ò 8´å>1§h£”i¿¯©e1+¹ÞSRöA|Ρ‰[ðŽ¨œ Qs©i’Œ›&g‘tˆV*w›H`i.\Dê÷üMr+Ÿ'0B*(–¨–߈Ë@ßjæjùAâAƒ92…e´~µŠ.( €ê\ Év\h]ÍÉy]g\Ù=ªt§÷3Ïw½„ÍÞÌDÈ&Ç05PÈ™“½ $ ·»ˆÛ˜Ñ-{(„ÒŸy.ú¶Z̈%~LÐUs XIÔi©ÛÒô‘L]N5aý6lNì¦`é@Ë“+;öÐj¾Ó\«¨àÇÔâmx˜-{\7¸ÅôìZ4®4Ñv}@I1ƒ³L¸Ç¶«Â­5 YŠÈd,À…:Os´Çõ?Gøbù˜_sð"Í5—ªÀÃN<:7噑̣‚ ó3~QÎÙ¬ÉÖr?ijçš‚&b53P“æ „[k2[~.]TÖû˜3-]~ÒŒ›~âAXˆ–8¹B,;DOÈ'badì6J!FAMn!¤Ò(#÷“°ûÊi;LY[a'r7‘ PÆ @ŽòÁ™¶7\JlÎWHÛ¶ÓH”75-HQJ7ó màuÀ/™BƒÒ’To¸ˆéouo ´V$(RlΖuOcS1î Ì »´¤²¦ÏØ‘IÓ¹=¼L‰:½Ëø…^F Œ(ÛÌAxb+±”A£VáGÈ .ÀsÍÈãPu–S!ÌÁ1 ÿxTѨW·þd䨥 PÕÚP‘ÀÈ쬬ÀsV$&?W ÷Oi‡§EÈMЦŸÊPXS?žHŒ¿¨hœÁôýGVÿiάF²½Îðp‹ Äì éöÙÓý倰 & ("hPßãÌšóµÈ±“0éñ3$^ÜAI“¹<ͺr05ÆÐÑ£ßæXÈÊZîìsç[Z1;î*B€»˜ €‚"6TWæ’›çíåþV‘dŸ0 nIH™f%˜‘µö¿Bt±Rv"æø€&äY`TbSËËôȬւñ/'‰9‘•‰3œ¶–šX²‚7+DHŒ3…œ¤Ù¡ Ï&"ÈCÚQª%³ ØÀTgF<Ö*T±Ïžïï'˜Uµ/LY6„j…]¨Iê0íbN•Å¢ŒÙH E¬Ôƒ´´Ky‚äÆp&hâf³#`&DÞÒy?†~ÒlÞû@¾ñPIß̤ƒÎÑ¢êA:‡5SÀŒkæIb6´`¯¤YÝ¢ÜòaÆÌ=ªOØOS§ý)F%wGÊíý*hÌÜW£§p«ü¬JkNÆÈ¯‰mÈg'rGö«c§º¯í µ˜ènqçë}å0XrOh™úÃß•²dSÀ>Ó‡õAŸ&,y²d°xÆ£ehñõ ƒ1"Z„¸µnMMQ+o3©”Ô` ä b{ó3l“R4Éžf^¼Í%¨f¹:·ï*,1…Ÿ^ÛH&7iQ@ÍPòU2>bû 1“{J‰0°$y€Þ@Vôejkañ(®JŠ?¤R¨'‹Œ=¨(ø‰Ê“! ¶¾ƒ !‚w]Dðy [äÍv­+ùa¨“t>%1¼š ê#Ä諌°]ÎÕ3S‰TêV'Ïh ƒQôƒ_{2Ù´-¸ ÇÁÿ0ŒÎZ¦j-Ù@âfÎY¬‹¹Eƒ©Æå/ºïQ¾ìÜ©5·&ÝP-P'½í*‰Øõ;ý¤ù+ÓW [_"`q35 ²XÑ– ÉÔc¨*f(Ö .äóÞ3ý6&§fž5" BmE’ÁyA,,no0M®ê4cµñÍÉàïD™Q¡`;QŠí¨5üù…-P#¿"SQ 4]Šï ã`/ݵ † -ô©ðuÑ”£‘`v¬.¯iE ^ûM >yÞ̃' €ÞNàÕÊ4eÌH…¸2Ô!US¨™˜£¹0:†5eR; ØB“¶à@ËÒŸ±W;p­ 2QD‹ˆµŠ„%ÍH´…b£TÛw’ º·ÕÀœE  ÷MçV,ÃNæA—S“ÁœªäåzƒãœÅ}Ñ2»LÁ7¼ 'h×màY!ÄÈژѢ.¸ôicµ7/&RV„£˜©ÜÔÌØ0)E™N’d$\Ȉè(¥ÀŠK* 0+MÍ“Ú%Eš¶™ªêÌ×!2Шà€áFÎn£¬Å…~°Ç›ãõ=[f}N~ÃÄå'TÀCš¼GÉ2õÌ6UÀE€âG{æ$CïÞ-B¨qŒØ’yŒ’”â°PU"â²wâNÂß¼aIíqÐß h¿{‹ì¦§½Óê Šù-‚ý34t&¯RÙ@Á†óJ†7(išsu]v(i•²v_3ÍéSÕrÇÉ$ (Ž·ªÇÓ TT}cÍÔòúž»6qîÈÇj®ƒ•1»\½* üEº*Пi¶ý„Ì÷#ìé9šj0wâfͼ±“¼›"iÜ–³÷€Õª2ed±BÆ·d^&€oS5LŠ0c´ Éx¹Q™cy€Wį ÓbÉ£´,yB,TüÉ-Û¹•ŽÂªkq¾ð“¯Sr{JÔKÐÿõ·TÏ&i Ð$QÚ®½K)*{€?ÌŘ®úޝ™kkrI¾çý¦š ƒ•P8ïu*`:IÛ¼34ógyDŠ«Ó[?ÕrF<¥n¨y;HŠlŒ¨Ø g‰Š‡Õ¯.¢£’[.ª›ÜÉÉ“Yµâàd®Yõ³^eèÖ¤¾÷ýG¼:q¨ê=»Êŵ}-J~Ñ£¡ó*¦”Ú†ä ÞfªHWw¡M̃<¹V-EEp7 •òeˆÒéEò$â$µÿ™E›.v¹j´w^<À‚B€xæC=ƒb¼B¹r ÉBm#bCi¾õrv,rÆÉ䘇Ô7ûÀ褠wÛ’–È4ûwQŽÚFÛ÷1ß»{©‚ØRi`;@¬æÔm°œàoFn4 ‚š…oërjêH0:Uôòæw ©hƒ´•´‚ÉÓ5R*ªÞAbZ W¢^3€(™Ç»a1½ï"4Mm„eö©sF½&™s(RFÿUO¤Ã‰ÂÑuºßH›ƒ¬E¸ï$–nx…%’7˜ux†\{µEXz%f ‘ £ôžón§ ËjUQ²ªíùó ùž«'©•ˆ7fïÌÍASrTiîÓÚ%SwÁ>&b¬xïäÈ#oüÍEÃÕBC¶ˆ¬I©¼Í#6¨ÁÇæTK7ÚG& pãï'üÊ€-MU;‘%£U£°™\s"•Éb%DØI0&·Ž¾`ÿ9ˆ€,“¿ˆ‚wcàGÇ Er#8=Å~ÆP2ÿ,5û¾óÜÝB5%i$ó´1º lÈ­Jnvøó6†Õ¨@M—X4ÛrnG¨Z¶¢;Ê€H²8ñu#&—ZÔç/pFФµ}Ì~üœ„ ÿ¤q×LXÀoDä7°‰Î\Œöý#ˆÀÊÇf¹ØÜ£×V1&í|ÄVG ÕyXè䃴KŒº@Óÿl&<_QoÅEüÜ”¸ÑŠ*Æ+}gY ¶>¤" Ž–Ý‡™%Fl€æ}7¹®Òr6ÆN3¥NÀw?sb 8Á$žÑãPrƒ|ò‹ÊáI ý¢BJ€µ A4<ÊfmÀØÞÕMd’~d³);l!X0¢Os$­\‚™ j™Y–†ã¼ƒdmÞQ_2†êwâA®u^þ!î/«´ ÈÚ°øœÇÌœd¨Sb»KÇ”j`MüÈ9²Ô=÷¸\éÊv&5 Òâê^) jà© ¬ü`i3•Ó ós0œ……Í)êÚ܃m>ÙÎüıïmàA&æ„„*SQ€2mbf ^òŠÔÜíÅtÈ'¨ê}´ ã[só4‘Ù‰J¦óª‰9CrÂmIqï4Ð R( ¼éôÔ¬ƒ— ÛKÇî—¡ Þ¦[x‚øb;Àýv)G¨à)9r¦Õ‘¨@ózŸÔ\C@ÿWs<æÈnüòLÍ£'Éf„C~?ys÷“uÄj+#hCí¸‹¾ò†E1…¹™¢€Û´Š³f C~Ö!· J7ñ slÞÆ=ï› ÞÈ›·Eœ"±Æ)Í ˜{='MéªÅZ)Wùž†0›R$“qj÷_0(+©Ú„ãÏÕ¶,‡Ó8Ûí½@Èuc#i å?U}(?æsþ£ÕtøPbec”€HS±û™(òÃ’UÂÌȯŸÌç@¦Ûy`h;2Ȳ&‰÷6ÒH³T~óK„t½\ŒŽYÎÄŸ'ó4‰¨´ƒÿ‰Pš»I»>¡ëÿHNäóZÄðQ{™_W*½462[ÅÀj·ížægTw•M€-Ä`iûÁOÞà2Ä-(ßÌ‘ˆ±¼¡ªÁksó/E_¹Iº¨E>LkaknäL[+;_#°‡£Ô>Ú  {A?0­p0Õ¥‡?ÜÊ}A÷!kă=Z¹‰cæV\!2NmÈ7(͘ +ï/"*¦­zI崈Ɏ—{<Ä_@f* ¶öÇyT•]È±ÈØNŽ—§gÙGõHCµÌBbÆB)³“1vÆù®­éõ;þÐ%”’ZìwÜk«ê J9Úà#•ÞÔc±˜ÛJ{2‚ý#–ûü@0cWÈ !*7jš¿XTq[ûÀÄt§(9ÁQ¾ÂîIÎ}”Ä ¾$ìdŽÁJ,ÌyçyY°>=EP[qî³ubÄ6]ûÄ›+>Ûʈ –Þh¶*»2«J¥±ùÚK·~ÐŒÕþw‘‘¶nO0!ŽÂö’¦ù…,§j™©ìD P‰âK¯°Ôƒ!v*RÕ½X”V!dÅÎJÚAžJÝÙeô‰˜»{˜}>Ìõ9F,¢Ž§n~'7¤]õås¤n`6mt˜±”½‰æBãÐäb…@w0ç|%EñW:¶Í”UØ «ûH1ê3 úB E^öŒŒ1‘ÚÁ;JTyßmîfêE "XF«ñl‘Ä Ø“¹«A&L˜ß%¸ÞŽìLÕÂöd]«hV>¢¡ÒT9<µJ(£w͈ÃHf$iþÓ"ɪÀ²%FM©ŽÂ¯æ=L)$÷a üïSW¬ÙU2¨ô÷2*[)<@U@Fˆ¸ƒäj½;&8ÊBí±<í¼èéð¾o{±\KÉ01ÊÞ¦S£ß|Yšªâô\³Y]†«þ`@Â1éÉ…læ¦:÷³Và#‘‹1Èä‰ï/§VXaK¼j4Åë1.ìÄ^ô۪Éô¡k¡íüÇú¬41Õ ª©+Œ üŒ@ÀÕ‘T ª†üÆè=]ª€­¥ª¶˜ê¶ ˜D1Ò<“ý O´Žõ¼+=‡Õ÷ªŠÏ}·â8D¹±&®w’E·;@M´5 ú`1¹¨Øvh2;è f¿Ì€L€.š£(»¤l%æZ!*4$Â:ºU:›rnAŽW Y¶¸£   9.Üï"ƪ‚Cš1›ÈÉ”l°dëbëx°’S夜eÃ4`‡Y—°>Ù™æA.AL‚Ðj5-±PÌFólG±”S®ñ…ÒFÒ‚m$ª 09²/»hÕv”fãzˆ$‚†Â1Ä  FX O*æÛTƒ&ó5FfŠý/«êŠ}Ýωç³Y²w˜V/´›Ûænúx nf@ÆšØÀVn«x·€Àب¿hÑ&@Š=ÄÇhתé¥owÓçɜƹï"¯¦é2uy]€ú˜ö‡UqeôÓUY»Ítˆî Õ´ŽÏÒñc~£ù£VÖâ{^¯aàñ7ظw}€ þñãUŶ«¿#xVÊ Wà ^š Âï®ÜÉ-ÚQ›y‹IÕ±üH)T`ˆð su]v< ª¶¬¾"kñp¬üïÄ[›n h|À‚w’7€Ç2Ô.‰–I ¼¹O¨XñG‚f½8 •âäGv!§†°L¢µÎ”öŸ´Êžl„,åªài¬ªï!ÈÛñL´§©-Z–¤ã 6ò Êàí1­î’x™“†íæ+P‰›T zu7r³½l$ƒšihwÚû‘¼uÚÒ‹ì˜;•±¾ò «Tèy™¹" …m÷šÚPõm(¤ès¼£@@ŽóEBÃa× &ªo‹¦Ü´ÇØ—$Ùþó&k4&U,hY3=V`M‹ÞŒ”x‹É³ZÜVtó(j›ï+ã˜F¸0>}^šØAfz}O zVÜê"¢+Ìê²äêr±,Z¸¿O蛨ÈÔú]Èï”z}Vl]O¦<Úyغ<ýg»ú/’dõ[àý0³‚Xz}Ì2ô ýQÅJ"-Ùï. è:Vœ¹(Ø+N§|¥ô¡ äsýæ§Cêi¦ GzÚ=,£ëÔ?¦ãF˜²dp~f×B¹2ˆ-äïâCnyö–öKwÚyÝoê ǃv;1é:Feõs‹-«‰†Ô0ôÏ]†UåÜ^£æJ<Üýn~ êw&¶P‰‹¾² µ,MbŽÄ…òDIzTî|´ö2îj»ÌIG÷™ŠŠ¯ˆûs(ƒÄža¤ÜF»”jÞ1´¡"]Í“´ˆ»)E›iê(>Õ—­[•üÌâ–|JÙEû@‚6ÞI Ší÷š@;Ì鮪 zGõøŒ±;“@|MD/h½6Hä‘ ç«¿í* ›Ò öš®#røŽCÈçMÔ¦&„¹²bǯLÌÖ*ÀãæqhkÓ°ÿº:Fꋤ*‡;s-˜w§º 0ĸ ÀÇ3ö‹ ¤e#DæÇ›A;@Œ™‰âÛÌϼÈšâ;®÷ `ùæoƒ§ÉœûÇžÐ_¤_OÆ1…lƒw5ÎKãl`û˜P£Ún«œ~ŸŒ19åt’&Ïzn—ONt^÷'PyxzýCêÈ}5'vnOâzØ‘zlc5wùó Ť |%ñâÌm…‘ÈàËÆŽ4¨_ûDÐdVö¨6> K*ƒgs)1ݬ@ÓeI³{$°D6;ï~`2k‘ø™»…Þ€`sçl™“ÓÆŸú•HL²âÁúnmîc¶üŸ3GÕuŸ BJc»ôÇ“Þy¹ÈlDœéPZÎÆ¿Äy¨ˆ³¸›D„~¯Þ5Æ6EI«‰°Ô¦Âƒ P.¹ó Ì’NÜDI„KWæO¥ ÍDÀžL S¼  0Š ;À¬*‘*hà€æfö -.h ó(Z«BP`9I!;‚¯›–ð%H4­î$xˆŸi{.@ó4µ(B62ÕIµ-wó%@]Úõ H ±Õ·7pÄj%G­AM"ö«²dŒ¦ýª¡|žð‚Ükµ¤q6ÂNŠP ¹ÞL ê¿R“Ó­•ÛS§Õu/•õebÍâø“uXj-ZÆÒ]Z 7Ü÷–# ÔÀ æJ3Ïí*,xŽªZ5PO(xïx1©U%¬Q‹NЂ¢a{Êš”¢ª—[ÏKÿHfè‡QalXIGŠ4#Ò>~ó6‚¨Ý@°̉5œsÞjaB¼ÈjUÞMD É|9‚êlùšFl}¢e ± ÚåB-`í¿iJ}ÏÇ``4e/§]oøº)ÉJþ©ø@„ƪÖíGÀ† é—jË6’t§ö—•š»@/q¤ZÜ.œvUê¬̨ÐbÌYQ·õÇÚe“%( m¤Õe¨‘Ü\Ó yæ¥D9a–¶næù’j,üö1[êqhÆ„´yQñi9Y)6‚k>Lƒr,Wâm“¦.FUQm„ \8†2ÌYqJÄnßa2Îù³°Btc{æ@œ¢L*UFŇ$øä–˜¬l%Ù½ž˜>Òw só$26`JX^£\ýO¬á€Utí'†Ù@ß–;#pÀc@GsRÊZ»šEÙàH=u3k$ÎŒj[‘¼ªÕTjãiDmBëü´ òy<„ª›_Ÿ‰"˜êâd[^Õ¤ 9¤Øn|LÕwçx ¹®òM“PŒ²ØEÌ(6$“P ý㽪w À¥nÇ´Ñ Õµ ÚTƒµn7æg“ÀXçæAX“BküÊóuó™ieáÆ ³ TP:ÜŠAç1Ò×6Äö"ƒ'ÌU•ZÍÔ(M§+[T¢½r6šØ+DÆ÷EIP€U8Úž®M©E "i{ȉsrÒ€”Ý ˜cw ,˜  :ÕZ0('x‰¨É&¢ ”¤ÜQlæ·ˆ4 ±«yØ *Â÷Ü(}9>&Y =䊀,s5A¨v‚·ÄÎ ØÀ"Siæäµmå‹3p‰¹r“pVm2ê…½[ÆëBÄ Mܤh}àäT»í-1orÀ¡\ nÌ MB²`nP„ aKn!Z ®däa5 .n”Á Hšª÷€œm%Fð–n\À×Ö]5sbMÀûEL›y˜©>ÑU¿ysAÖÛKP*Jß6éz|F@¸ÀIí'höðtØz@6÷÷sÌß lYŒª¦È` 'Àˆj'ßUØ^Ðà™-±‰°ó‹ Îÿ3#­‰Ôm~¡ Ρ+'N2W¿Hð¢¤&$Çô­Üîe}È?†s I;LÉð2 u{WæX¿·Ìl¨§ÜÊ>K †N«¦ÆàåÌŸ¹ŒWê]sçÈS Ö/Fyç!TÒZ·âguRIcí;IÐK{ŽÞ !òXP=³l§æt9€Ò7%ÏÀšBËúgV˜ËäÃ颋,Ì'0Rªê&fÝT³é4êAñ̽ öÞ-€– c½ÌÎüÊOx<Âý¡c½Í•wó"Ç»Ñuº^• ¦§"‹<Ï/¯ê¨ê#ÎÀöG(6e†‚LÅä£ØÆ„Um.p(¦Ï32Á~ ÷É¡Þ<¹µl€„ì.nL¶]ì "Ÿ&f¶ñ° ¦K"Qd9¸Ò‰V²;"“œj¤“©þÛcC“aíI”m£:ê=þe>:Æw nò1PÔĪüKTP(–_ó(× Á‰Jj,ðŒ"”Hµs& s3£6û˜‘õlÃñ,2YÒ‹di’‡Êä¶õÀàGA0:Íö挵œ ºUcµHq& jHÊOÂŽd>L™=ˆ„Ç}£úªÁÒ;©´ÍÓ…±ß§! ¢Í9ýGTù\cÁ©·¡àLON¸œY.OÔA  ¾œbëV=º€àL:® ®B˜K»­¿ÚTNLùïIÆ‘ÚbØÆÄ›&E ŠÈÔ  ¼jÈX„´½c(->ìŠ)·ó4ÞÅ ì Â'?Ò›-ØLñàÙÞ­ÜŠ}F7¶ÿ˜E"оO߈²ý|ï @…ZMöâfIË0ƒ´b>£÷‰FNÆïæév…NF¡C™‘ßxâ06Ú1ÓVñ¯0*®T ÒG0ÞA²·¶®ë‰ cPŠÛMPdxXVó,®JA¤¿‰ÄïüØ#¤ hÔ@™/¾9æõèܰsž6ˆä T P›cU­Äƒ< bI>Û”`Î ¨'2 Èf…i„ÜÙ˜¯ ‹ÞV‚VM2щe j‘WVó§];ÅDä4v˜–ÞX1mZÕ5`ÚŒfXä&ãÇ[;B$çJ­‰*¾°‘ÚIz ‚`™¤Pª¡5[Óõ=2ëQ˜ªìé¿Nl‹¯-¢ö^æuôx1‡" ²ßyd£´ Ú͘¼¡Pò€qûÀe¨q kvÔ¤PíP#(ÈÿFÌ;ö–;^繨è$q_™‹‘„lwù®"Åi{ž6”ûHbxÚ A;oAfmÔaKÕ 'ýg¸PŽGvÚy½_êMÔв‹ßCs/]ðÑ«:p5ó3ùoj´2d §Q22…P?‰x ¨Mx”}B¥—Q¦ÿ£Ñý/ôá”zÝI+Œý)Áo™ìaM¦CUZUh*9:¾zæ+—>LXÐñ§ŸÞy¨~”ý190°É†ö$ï2®¥rCÜ6ûIb§½À‚·½í!ŽóPI;É­å@ ³`^Ó\h £‰éô¿¢õYÆ 1ÞÌæzߦþ˜:2Í›FF;Vï"´ËÒ¶llº“†½Æß´ùüøq†#Ô$ÍnLˆæO"4V}^šY q –À1Œ{Y;K± /™*CýUÄÔˆËÔ«‹vî?3X-dFýANݸ©`Í›Qî; ™ ]((|@Èb/);÷ۈͻN4k…;l«B¥ å‰ éì95dÍ“ÑájøÉ™f§mJb$Aô)Å÷­ääl‰°°;Y¸ÕñäÎÖOä™* 675Ä A°Á$òe¦`UÞP  ãM^Xð%hÌÀ/ÍÉ£\Xq Èù ‚ê÷˜ëµö‘îàwˆ)†”Uê2¯èA'V…U@pD£^‘B§¨W@M\ާ*d4"Ž>dÁÎrM´5˜b»9ÈXó횩؉¯2ƒjB(}ÌȲJÐçÛÀâ ·v~k´¨Ñ޽%”{E;H}€~dR¢ ÔDéZr£,ŸVçægueª¡I2êjØ –˵ÑÛˆ Ä…ã¹ï3ÍBvþÐ ÓªŽÀLY‹ íæPÍ{@í3w$ÕñÄ‚X{L€6³í€Œ–7PÛïäjöžò‘@7|È ìN™¨RqfjÞæŠ…Fðºs#Õ”\¬ÞÔÚq­¶Xðw+ŽF#ïÞAØ\hÞyÝ[rAȦ-6e…¥ˆ±Qâ ÍžùXˆé<Æ H ›”¨H€Q¦ë¹€õŽÒ— ©y$Îv4eÜF6€‰³,¼@ '™5p$ PX$@­[@´ ›s)vCxÈÕ…¬IGÔ“¤°* =ü@ ¼Àc2ê kÍKDwßÍIj6Ää'B…’xuàèQ…_Ô5Ûjý¤›Ú½,8N4Ø6Õ÷”¤j-}¦Æ XØÔ ŠÚA“RsøNUb(1^ÿx .=Î,HíI™Ç¸éî l4ãb$êÔGà@Jí•X-¡ ˜*‹l;ÀÒ·¶ãÀŒ¥“ó¼BöïÞAãçê×3ä\Žq¨oa'7WÔbtáfg<Ÿ˜Ûî×¼£§HR$µMt÷ˆXÔÌ„)½ÏØÕG«VõcíqyŸé¿¦6W\¹.¸bÓÛ“HÆ1(@v´²ŠÞû´ÏQ­•ÊïÅîkWÓ»8ÏŒ«2ìØÛ¸žên¡•qc!—“{ăÎbwZí&)?;IPº½Ço‰¨‰ÊšM#@"Qký\J§%£Eèì?ó=ßÓ?JL`fë1Ñ?JýÌ“‘í{€:Äâê:¼=3iÈîùH±¤J<>·¯Í—#Y;iº©Ã¬žÿ™›È ½\ß]Ÿ¦Æé‰‚‡Ô£xœ A¾ß¼J5wàv–jÖÞ¸<§Yö¯Ú1ôìY”©|Ò0­í‘Üí1f|­¥I¯“JÙí±"h[ŠþeööЕRÚ'N¡3'N-kan¾ª¹0R*ºú™TÎåŒÍòk:q¨ÄŸÜÊål i@ɱä95dÌÄ9&½°¶6HãÄÊÑ;}äüK"•ÆÄœk¨’ÇÝòv—Ì Xfš›ÒÕo§‡0/Lc:‘ËUþÒ[ªzb{(L÷Ôe¾@nGiÓœ˜òÿ,jo•º—FÎ=L…Ȫ4v«™ìù)J»™õ/•ŠŒ€&1¾{L˜œ–B>L b¦¼ÍN5AläXØ ®ľ£}»}=€‰Fô Pæ¡*ñ.0™c¹­îI MWÚP "«~ÑEïY,+zï«5ø1sF»w‰”iŞġV ß{w„NJ­F­Ûñ;z•zŒáH:FæEz=OH]=4Ò¨7 !ü1rQ—ÒÀ£…<ü™)éðtEÏNt1  Ýç_O ô¨¤lâX4¬mï4Uw4%m¯´É³Újoþ` …[VB øí/fr˜n‰»ÌÔ(&£“PÞ>6„~òY€ó ãêz¡‹8 W™âu_«>JUÛÍM“[jÞÏx·7Gy•A,Ôoâü‰; šÁ¥þò‘½íâjNÙÒô½GU¾D¨ä€ž÷Iúf.ŸK2r\ð>ÂLWrc gQ牠`A&êi¹Ô~6to*6üÎMYrµ¾ yt銘Ñ=oêKÒb¡­™…iÈ(¯ç¼ù­W‘°1UUkgaæg¤°!yÌ•“$ÜÚJîÿ•‰6`iVf¨¢èLQìþ™Ó`Å”;°Ë~œi¸æzfA‡Ë•á·©©0yGëŽtøÂíZ›y‡CÔtÿÄ&^¤d˘Ÿ©ŽËóQÓú†>­\B16fªxZ,‘ÚbðUd/˜–…ªü´k¬›”(lÔ¯U[ÐÖâižÚlj<Ì—fr,ÐÌ ×VOmÇQ N˜ë6Uj®5.äD¿kê5Bfò®Î³®ÁÓÞ.…4ì;ý§“ªÉ›|¹×™-ãZ;L×À_?GѯO‡'é£ElÆöFûw3ç3°W+ŽŠö'“vm¸5šA£Þk” î víQ†‹S„K1p@òDE©q/ã™@¸‚’r8s} ¹±«/uîj0,­#Þ d ÜÉÅA-Ñàè<˜°—°ÄWi̹=&,†¯¼±{Òhy†”ïnæ5L,.€;˜zšòzx‰`{Ô ‹.6K?mæ#ÕlkN„‘ÞN‘ыҊ'›;ù’<Ìêswx‡³‘¿Úà!lÛñPÍŒüçxÅm·Ùe‚­Œ‘bPñ m-ûF» óy-”3Þg¨Ô{²;“1afÁ¸Õ››)N¡Âäm.8~Çï%«bÔ®"snI”(#óp5`;MÇÚewP!¹w¢lÂhµ¡¶cõ•Œ÷FQètí\ËÊà¦D-,ñ(èL]0È7ÈÞkÒF¤VùÀFÌò:éæXŽ\™@]æ yšˆœŽ™ã;»Qƒ%Ls ©ä+¼Û;Y(Ï"Q·Ä Ñv™ä]øˆ&â )‘q 7(y G‡!\åk3+ÚÏh.ƪk‰~¡âvn:ÒDSV9ÎT™QH»ï6±FAÏ‘·¨.6ЬÛS´Ó±ô(¤*9ÓÍw3°º"±%F‘t#Áæu«–Z ÜÜÏ9³>ClÄýÍÌö=®ƒ 'LAW½N±·†[°ÜÀ¾Ãx´» “óU@¾/Ì{ý¥˜âä‘ûÀWÿìÌòdT]N@_&Aâuߨ¶kLgN>ÿ3ÇÏÕ0jB+¹ó3ÝV'3>ÅÍœ )ð Ò4z8÷f, o€ó£¾l‰ÔÆ„–wèɇêõ2wgÑö ²áe\¹H-°lŒ,ý‡hƒQ“ÖÆú¦‹ÌóúŸÓIVÈùÑ Ô{|Eàxú†d´Å’“»À~§Ô)Ô ÕMèÔþ§ÔeÆq¾f(y¼çg aGÌÍ p1dÈBíÌÈÆË}FAS|Í@¶àÀ($o/C@¾7ŒX>ÑgæMr56ÃàNŽ“9Ä÷d #i‘(Þžö.¨ÚB¢·&üLê¶D9Snv £™ôD½졳MÝ| g#ÎýOõC›VôïsÜ™ÁÔ.3ZE(þòá®rNQí:ñ‡·v#sF3z²Ù'…^L×&à!+ê7ý¤1ÌØÕYt5½ÜÑú³í 50îeþ„ìÚtåŽäTkŒ²–ôϦ¼j䢕–È)üAÝ-U$›'´¡äÊ >$cëU}¥O£n–¤¨ÒXìí(% oP4d  owÍrfŒÉ¥BãÐ;’l˜Í Ϙßý;ƒä@Ð@j¯¼@Ù«üÊ$•dPÛ•ïæëÛù€…wÄOj„N¡Q‘`×Žæ  4ö Vkn<“c,ï3CIÛÄ;åÕSD Ú¨~`’U32ÞòÄPAìLËµÔ þ˜U00:ALÀcÈh¥¿ØÎlˆq±VÒ ãr‡É1XÓÒ¸¶êãIyƒƒŒ•<ƒR**ã(}@MA(¼¨Š$;I²®.nµY&AX¿iY„AÇ“!fæV÷TÍ¦Ý ̇ú†@3Î9Þjt2gc"˜Ëª"mŒ ?2j)r…Úàù5 ¥ãvÞtã:VB²zc Òµ]ÖbÏF¤B˜ÎС[̵ap'-&j+x»˜ÞjdüÀ×Ó0)2y‰ßx´ÕH&Ùw±3$ƒP¬Ùuºb!nog´ç$ƒ(ýõ<ç×ôñûQGcÉœLä› Î[GN‰ó'«“د“;º™0“‘ÂV‘u7 ô@½ÉÛÄDo ¥ZŒ¥ž.ak´dÊFj«ÂÄ’`a›ªÅ„ì6ùÞx]wê¹÷ª¼$”yú–}”ÒøœÖ[a Š&ÄÕ·ÄZ4.ĨíæIÈ{ˆgTÔ*ƒæw~?÷~°MC¿/Íå}WëYÙˆÁ§±“<Ž£¨ÉŸ#1bîÛ±3Z/¤ëº®—bG›nT‹ÞOYÕõBÛ9"ø¸¿ZHá,nhµUíÑrmU÷”[o5F0XY;_˜˜|I£&näTüm,Mne€4ó jvÛ˜ÉkûB¬¢%¿§yŸè‚®XØžÓ|ݲ j cÀæ‡Õô=6>›èÆ£&šv;o8ÇëS­ØhcTäýæ¤Mrþ«ƒNÍ›"3fÌ=ˆ6 ò|ÏÉ}€ÜÙÜÄ7R iÚþÛLÑ{•'âæ‘»)ƯÕÅL²Mx@[“|H3Å…ò^y«"hÃ&¡ËbQrj*2·ô™92ØÐä“w2|‡Šð'F9‰JëÒÄy&•§6FÜT÷6¦”mDîI|x‚¶˜mñ  sÚ¤†kßk€ëp†¢<×ö€ žÑ A=‰?é©:‚êò7…Eÿ:–¶”ï©A ¸Øâ }¦“ ‚à³I6o¼f,7“TûÀU´Fôï³ÚjµÔ'¦ßõÒ|üIG3 }ãØJÒT@Ð ¢&ÝXɘnA¿Üs „(¬oÄÕÜ¢ëRƒÅv™ä@ˆ8Œ@ž%™˜ûó(Ð`qªj3L)¥Áw‘is•]—&Ð'ªvyŽ5ï²(€ŒäbIbÐ3Ü™¨4%XƒwrÔ’!*´b8î AFsä6ј±“5l{q"±lu&Ìp¾Ò£\ci·¤H¹!&¦9qw–*€²NðDÀ˜M%54 y…oÉcu¸ðgJdhÂT;¥vœY7kàû”“;?LÅëuk¯é×i‰óʽ±#7¿"•‚ÍWQahUP”P Q¼cö”€|È™$Ô\}§•ú·ZpˆôÜ;IGÔuLÇSê³ÜÎL™ Ü"ÖJlîeŒ÷¼Õ¨¢¤îÎM@d*4Ž&mÕ0uÚä¶Ü‰×Qâtb/+\o¾Òî.1ÌÌ«@Õ÷ó9µ‘°&jN¡\Þä×y ÌÀÞL]C ©›0¡¤n$©5en:'rŠ)r*ìaÅÙI†¤œei%l!J)0—  ’x¼c’UÁ 6©4i‹Îã3î<goSúN.¦92õKê/2r¯6½ßPVÀln3Q¶=J5$y&k®8=¸N–'w·ÚnŒŸ¨õGGü9Sdû²3ng*D‡P ±ñ(Ç©ê²u[+“òÓÊÇâThÓOPÛÌͲkÈ]$Ž 92ZâÒ¾£:)ÿ¸]ÆS¦ÍAFR¿-Wø‡SƒÆžÝ6mö?2+QBR–>hDÁÛúaA­Ì"T0kÔ¦¿¨‹þÓ™Ÿm;Öòƒé{w74gÆbM÷Ê ÚUS«ÎÕÒ¸ÕÀ]öÒ902É©² w¿ö”Åûu1&…÷,ª˜À.×î@í!¿nÛÀÔ–Â}–o‚âßÓ$1Ó|±ðãgBC•$ìfmÒ“—Ü@îÐUðÚãÈ¥Gm7s<§6F Ä﹬ 6"v8 2ù–ŠÌdÈŒÉÞmŽ1GB­o"°ÈÆäœ„ ¡ž£ Z¶„}z <Ïô¾…°¯«“–,š¯F££"¨1ÕÊ€šù0ÉÛâ¸]ÀW9 ÀL³fÇIÊáDƒÃëÿR.Ázv*ú»™åÇQ ’ç–;Üž+ÎÌšXêðg-ù—å-I,LÒ Gï,d¡À’ša‡ ï$Þ£2¦Ž€ Ôåùª‹3µDŸø™–ÛŠ›ˆ j#|ȱ$wš2‘Ê›‘TªÕ°¹Igr&n(|jÆÅ 'Ø rJ„±°>Ó£Aƒ ?Òx1ŠØun3ú¨U[áv‰Ïúٜ۱²eþgôeL})8ñ&÷ÈgÕ»eÍ‘²½¶£gþ"ð3B§cÚ?`"™lø2MËü¢ÚÇ4˜`UOqÜžóq§lI#íSúL4ƒ_&æ±̬ƅ“ý¥äUƒR†& Ìä Íö§OtÅ‚¥}\ÀYF2G¤ QýOÿQ…e$îvâA¦鉑rU<­ÈÏYò6D”jô^>ž™ÛHðüLº’¨ãÓZP*¯“䯫 ¬TQ _`nb¸òf!q«7‹2¡llQ…0;ƒÌZ˜1 Æñµ¡,x²â,µ«Û¸5µÀÍØ¾§L¤¿zP`ÎÆÇ2¨6EdÍ1°&ÈOw€Ñ[6Wg¶ü̲ãPÀ®ç¼ P©¢¥‚鸟$pV<\ ÈšNËTv¨Ð2Læþò ºÕF¬oSL6ñâ t¬ÇêØ#.ÃÀ€Ë.Ô.Mø€¹"KmÞ¡ ìÄ6ÏÞQ%¯ïÒY$wUd²ý>`fwàºÌhwLÚjq±Ñ—çéoø‘cêŒ^¨C=öÞV'Ñ•ZQ.ºr2×yoÔÄÕmZÇí ̤MLò`lû{oa+’#F¹ S¾¨ãK+ÖQ ïʟʱ0Àº¯¹Œº¤Ó8 ƒ4kY*`j»Í‚ a‘ üLJﶦl™Hâ6RÛLžÄhxŸI›6PË$§2½×(°1&ÏÌh–ÊJL»Dµr ‘ªNf$DW5JQR†l‹\"TYÔÜ•]Cé‹ÔÕ :Œ!EÎ"lÔ ­ª5Çp?Pè?ON”œ„ÛUâw÷â@0_ø€Û“(¸ªû×Ìíw€{ÀÀW·‰Ž\é‰53¾LƒÉÍúÆ#¿­·&y}WY“1¼¯¨þÓ6ïMIŽVpÃn$}BÀ¯˜ñ; ~&ZlÍ|¥&î$¡~e…ÎÒPˆPyÚ]‚vâ ‰Ú&ÈsÞ" 6ÛÉ'ÄÒ  ¼ŒUÓ Þï2 •5ßyi«E£×·ylCÔXÑ3l[>UÃm˜Ð¹‹ÓÔþŸ£Ô3å("ÿÌòõi'}®X€nnÿ¼ïè?NË× …€8Å’Ý壜±äßÞ É¡°Ò=¢þðÃ#!p€w#‰¨,¤üç|äšSCâX•˜Þh‰½(Û*űØ? eˆº%bÄ£Ë4bÌWÔ¢÷.êM(7¨4IäÁ«d´±ßhÇ·"û¬Är`*¶ÔÆërlÚ·à@[màxˆïö„A4A®>e5½±ö”@:lˆÁõˆ Šîn1eÄ=Ê÷¼tŽ»{@I{<ÕÁ½ÆìïÌr @ ¼Ãj7ø03-B‡>|ÌŸéãk…C²ú–À•|Dµ»~À ¶ÒÛy©Z´«46"j£ ¨Ú®6©!o™s¼¡Ø@š-¿Óßyq`8ó"ˆhO¶ªAó(ß9Ö¸òŽëGnâböd›s)ˆªâ@öšb4I YSLcLöœ®þ"0õô™ØJÐ"dtz·†¦}7Ôj:Õg‘RŒ_š’ò±,¦r T@1 ¿2}-8¨ð‹;ÌÑ¡PÒXX•T¥æ¡[-6toɨ©âr°£(æZw2 Ê=±a]R [ ‰“q¼±Y÷šâPЇ›ÎnûÀÓ:‘6±%U3P™®]}¥çêu-NUmåðhÕ´aôÈ×hŸ*¡FÐ$@Wân`ã0 !Ü ÔÐ8z¯Ô±a©»*ŸóB¨ñ$ƒPqÌÛIŠø‹y1‰ÜƧMÖóq†ww&¥ ö~ð¨®o~%*«“î#Å ¹=5™IšE6Æ¥A+WàÅjÍí ÷’2’}ÛÉÒq«~ Ñ1÷`A$Õz=éÝOêUQýOÿæó¤ ý'¨ÙqäÌ€…TŸ&æb¼Î§1Ë‘Ÿ!·cdùœDv—å*ñc%‡ÎÕ>»ô^ˆôÝ+z¸Jå«Qäv–ˆoÓ0ôPŽÀäÌ6*š´ÖûOuVÈ}0Á{j6f3*Ÿ¦áG´F‡Ì—lÁ46´KàísR£˜ŒÎŠ7²fѦjÛM·æc—(ŸÄäÛ šÅé'í´ ý3qšÏ'PÁ¼H$óGypÑ÷ˆƒÚiÖ6±$› RG¹7í,c'z"([©Üm§ï¦AŠŠ¦DðҬѰGÌ <ß0x…wQ¤‘ó4_‚;ÞóΗXzî«=ò64ߊÞdßÌrY˜·&âÝVøLê:°Œ˜˜)5­öYÛ—ôl_§á²ÕµÐÆ»þæA§Lýh̃CÒô¡¸,–GÎóß^gkvS€à®¯å¿UÁÓtž$7£ûÄJ€ î!pzÕm/^7eQIÕ«¼ T,t©½Ûrd2•Hçꨌ$›cCæ:!+°; æc\©›Ú;GXͨQ÷«2„˜•\ü ¸ýwþveAÙFæM¢F á¿þâhAñc dÔ¾—6B€†¯ÄçPr1¢Þ_‡ Tìcf Óú~ᩉàž$Ф¥Oöˆä‡¡†=M@7ÜÀr/a0 ’.å ~Ñš'ÍÈ)C]Œ¡¸$-Ö×QJŠ»¾ðíó'Ä“wdØí(D_È s"ÚÁþd¡Dʦ´ª°7ÚˆÌô«rÙÎÓŒ‚üÿLšŒÔ*ùÕ)Èm„¡[ÿ¿nŒ»îy¹:üŽõ+6ƒºqÚU`Hß¹’U˜ÑŠ!½­¤‹sd*‰ÐïÌ› Àï.¬ó´’ßÚ]ÚX[`;\‚_ê'˜Üø€ âžð,7š¹9Ë/ø‘XÑ=¢¾óHèé]бî.æèpç«DÆþ.ƒ}iœTž;‰™rqäØŸ±àÌ×F±¤­lKlhÐ x‘ˆÈÛYóñ2V|¹-_˜èhˆìÝÂ0êr¼ªÐKÞAЗ§™ÕŠÂÀ˨c§yÅÉ–!‰¶$í.ŽÏBÆò2àзR]{ÔèÂv”Ag.4³u ј Œ~ e—c%^ S[µi ­[Énjî„ލGBŸl‚H1™fØ[HŠˆÎÀ™š FUS­LI³", ¥£•…låzw¸0-F™Èib9N62‚i«‘_°óÄPˆ‹oJ,ÀVG$w<@E«eâAîIÛăõ½zL7¤6GúýÌð2dgmy[S&cêµ#Ÿ+,šø˜«!&ÅÔÌS9µ-(™3ž&äf !bilI² ¾%ˆlüD7š•vÔ;L®"‚ÜK Gݰ+ã^ãöƒfR6mÇÄHºÊ@³gævôߣõV!“/kn»r^HýÓåª÷"¨HÿÒú|Jùr»è]¸ÞItr6DèòäÆe»RiÍÔdUP3XŒ ð6”·[í(Ùr•8ƒ»ˆ žÓž*=F渲@“s\#ëúfêzŽ 1 €<íöš.,”7RÞ£&À(ÛîeµZ>a®4GØó¦ø³'7WÒôxíÙq±þlěЂ½/]„eȤë[æª|Çꈩֺ¡g›“,£éɧs¤vgS)Æ îa¶VÉk„¶äí9œé½gyV'_Ì@+Nðk§¦B°åÍ m‘|ó‰ô´¾¼‡ nâoL’¸ßƒÍ]ÆUhúTÆC÷3rf#¼º¯æº1YõQ‡úkýâÆøñrcÔo±è¡‘3fR1èZØãÍ“$öª–íqƒÍ¼uMÏs|ËÉ™q¨ï.#&\Žà°¡Øxh@³ñÄ 5~ãù’ùAæv#e%¶Bxq¥ô’~xkâØâ¢'z&"—h·£B̬…õ€Íþ™²”BÀ¡$ý?*œENRra_¼Ó>PÅT.”^ó(Ì‘~$do³Ú*öê'hÍK±üD ?2„þÖC6/zÞ b‡zÁ l‹~ð†…ó%ƒé¯2 Нo˜ŠeZÍ›ó:·aþ`+¡È®ñY,.È06•w=æO‘¿™C[<âcDvhŠä³ ™¦`Û’dÌþdü˜äH:lÀØ©JÔO0&o™;‰×Ó~›Õõ}\8K!4 gâä·YNëpQËÑçQçÓ51Rq¸o¤ƒßh–S—麷ÚdxâXúT6ÌÓ¤ƒ¾üx˜ÖüÒüÀï@ù0èʼn³(Ö#·þdæPÙ«>uµì7?ø™kbéÓ©¦¿–¼³½ø§¨ÑÓôí$Ƈ‘^ãòOo´z<À·¼ni%GRI™ŒQªË@êÀ>Ó¤°TÚDsf`Ë9J™T¨ƒ¼êé²…;Ա˙HØÅ“ e©qvT÷’&¸ˆ»È¤Þæ©hDv0Ê;F‡O1FY‰f•,oRÍ[H+ªAJkh³”Ú ´aƒBC4¢5TïRÛˆQ…hÖfE 0µ×i×€‚(È…œW•¯UʭЂ“,ž%ˆýhäP¢¢¼š™eê°â^U˜ÅsåýW¥PiËWÄÉZéÈ%ƒ¸«¸ãö9òþ¶ý,5·õ&õÌ÷ºc?¼Ÿ”‹„ÿ­õ-A=0~’Vê­]²]«i?9ú1Ï›¨ÍÕåõr›5Cj}¦ ulæs­HÍñ’Æÿ{™¶/m¿ÄJ28Øl­¤‰›c}Z™†Þ'Ma:C=ꯈˆ¡nMM@ÚÁ”&"ª®Bã^I©›ÀªAô´N¶,£hšy´oŒÕTå…ÏsôÕ¥Äqæ-”vÒxüKµ‡.?Ô:bqQuîƒ<×±fÂI´æÔÿ™‹ÿ7á¤{ʆ¢æ§%BØÉ#Öý? èÎE933déágaý(õ'R×›»™³æuß§›(\Ž ¶àsÑý+ôN±/QÔå ¤( ÷‰´}Ê€ÕPã™9rcJÕ“MüKƒºüXòe3†OéA¹?|ÆfgÌÛ5tyô5ÁÔåé­‡ÿôv™›ËŸ&P5E®î7GC°N“Ù”–K|ÄØY“K5ŽM M™„Ä£n㱘dÂìE‘ÛyzUM—þ —M*(ûˈѲjB’{‘ÄK‘PÚ®£å‡*µ-› ÿSm4EÀÊAößõ c*ãm}Žæm…ÁßPD¾<ËŠ ~¢e]$íf¢Ë¤SšµpªÖœŒÝ›+ׯÿ¼Ï«ÂSÙ$ÆŽEÂÎw&£Žw—´PPÚ?§``g¨‘`sýâIÚÏÚP Q»ø–äbKj,v«ÿhÛ 5ø ©¢?"j¢¬þÐ+{©²MWŒÃªåÒû‰z5«³É0)†#I$x2I¿Ä °~ý¤ð˜Ü“dW˜mÚá°”;ÞäéßäÀv; ã7B¨˜B(ì4¶C]ÔEah_xUï ¹Ü(ßψ†öLi›&2h)û‰x‰÷X|E¦ÍŠV•™,w¥¢Çn61È¥rhp"bh'¼rÐ'më˜_³x ŒšûH)Ex’¸À9ýãÓ½\ ¯3Ýý?õ.ƒ¨ý$ÑÈG­Ó“Ù‡#ò 7UÕôÍXºŒØÈ5AÎÓ§ÿ]ëê²dL£ÿìÆ§ý¥Ùõÿ¨$þ¬rXÍÑtlÿ×§üEü_@Ûdý0)œY˜™?Ÿ8]húkm:¬nv§*ÃûoÅÓ’¥ÏÒƒÿöãk?½‰??ÕwcÇŸ§é×Òêú†o{&@=5ð“9ñ~›Ÿ6lŽèQ~¦ÈâÉ¾Ãæfð®ŸGXÒ¥1"íoÛñÜüÎ/ÔÒ]ÚGþbR¸VEö4ÃΪ0!Z"í±¨8ƒVÂmDá·ÕR×£¸‘O7N°'+¡MJŠGaɃf"g%îcVÞPõbgc ï¼oUbA%¶_iD•½Ì5T( I¹uR#DÜñU ÜAž©<™A¢ãÑR)Ñ"*£Õ…ï%ÚŒA¢¹hÐ0"h¹4Lâͪ@!„«¤X¯»@ú¬™[#ÛnG˜fäÌ_«$‘vMþd±vÉ æ.ᬛ›.KÜÍT‹ø |CYw³0ª@*Ýwù’Ì ûwŠºÌîÆ® _P¡·Ì|ö”ò¶ÄòLåwsÊ'FX3ñ5 T÷þқŔÏ-‘·PE7ˆË—6FÞ%â  neÄö¦Ï‘(ÊÍÜèÜ­ Ÿ5¼ìþ—ú²ôXÝ3ƒÂüλ¯ÏÖå¼ÎJ€ª®6ÆY¬ìÃÒàĤæ§nÂgÄttÿ¤u=N@æôñ7šÚwº~Óàn™ÔÎE¦üLÞZ/ÓLÌ™õvˆwù'ïS³'ëLÇ\º—úJéšùšŒý766ð¦5cªôÙ'ñ/Ôú<ã |§cJ(Ÿ‘5ø~R~©„c\=lÍÉžgRϕٳlMÑjt9?˜ŒiUàØ‘—9(}ÁÌÅÕ¶#Øýàù¹dkfìç¨IÔäõ1kfa`a6ë=e £?BrhCH[&QUô©ÞbFA‘½QNÜÇôBúL{ÙüÄ¿Hcܲ{®%d.áBñj$„×iŒ0^nýDÉ©ÁqU«&ï£ÜÁùÚF£#J‡­êêâÍŒäQ“¸Q/Hç8²¹ÒöÌÐ""©P ÍÆŠm( dc¨ñFdì 3Uö“nb«mĨ¤®»2ùÝñÚ0½ÍÐ&ȺÛàLñ”×lÉ® u¥èØŸÄ‚Ûóó EÉj#p?h3œijw„QU+lwß´¦«ª¾ã}£ÔÊM57Ä’{í(Žvù…n ýàÒ?IãmÄ&¿;ºæ @Ý×Pñu=·±ßâl޼¤Û]ãf¡¿xBßêÄXA$mâ«·hmÉ&×Ä¢¨kacÄÌ‚ñ"¤ð|Ê „s T‘¹®äÀ¢+˜ŽÐ'I3\aFÎ,ð4|zTðDÓ£êrtV>£§ÆÁ–¥ÿòL(:Ì}gNÁÖc…vcõÞx¦åŠE×RÒžò‹kº¡æDtàÆr67]ÈÙ€í´Û=lyTäjBã·‘3jµézês6~°é –c»| è²a.¯éµF<{?ãüÉ~µ¡üÄ#åÉŒ^ÈÔÁ~gŸú‹6B ~õW'ÍÚW¯xdaé‘:0óßsâjÂÛ\˜Žî˜©MêVgQ`H91YwÁ‚(M8©Ìä FL.dÜo@ ½ HjA÷Kr¤@ĶüÆûÊ :L ÜížæAHw”EàZ»Å“(a~L8•T¦Q ÈP 3 „jˆ£æáo´#3·1 0¦,$ïE¢! Ž " ‚5áO¹RIÛÄ{ìHœÛRµÛ˜¹1¨ ­YhNt™%›nÐZôÙˆfv5̘ºè¨ _y MíU&â²rÆý¶>&E˜Øó7¤14EÁ]M •+æ"²6úø-–‰hv± S€lĆ“(MßÞ:ûÓHA49š"°x’’5Ð@Õªþ–¶óцÐA“÷š+1`IÞkqÆÔz€±W àOC§ÏÓzyzŒBò…²4€Iño#ÂoÕz܇!ÆÚ5fãñ8Ž¥}Y)É7¹¹­™—ԦˡO…AÈ?†ôÙ<4—²älJí¥ô®Ó‡.wÊô'±¹b(ôÙoØÔwIÂÚ° «ýgy4&éŠ>’7í½ÜgÆ %Iðð(uŒˆ~}¶`*¶øiÈñ¼p¬hYÖcÉñ4*tßv€ñâHÖ·ò._¥Œûƒ’ß9ƒ&%$6!“Æ¢vû בq+‘UPv;Eƒ#¤2¯(LŸ[)6Oa«9@(ò”xÐŵ¨çÈ” Ù,`Q ›×Ú"E@‚yñ%[JÚöâpG ÚüH#‘à@[¨UÓ{m90°1¨Àw„"h›R’Ö¹©$P"ëïÍˢʟnýª%RO»“ý¤:RM·3 A» VðMV>j Œ»ÚäP Ç™=…o E7³ qÌE›=ã+[óUv•[ÝÊ+FÇÁØÅs,bld_úO2k£õÿuÿÄtdæÅ|•þ¡>yƒ@Øw&K…òZ­mÜžcô=Wk,Ý«oÞM#Ñézfu'! T’;ƒØTôqtÇ©/Ôþ¥‘F$ì+¶À}æ7ư›!ýC*ˆ.jB…Ü ÿŸ˜fÎP 8ÖÛ <™Ÿ«Î5"Ó£ ”ÿ—Sã]Yôáêcây}fV͘· ÚoçöÇÓ²Î<­[MÆX]ÀäS€²D£³6£È‡Le„×4ÊæåEc]Ìró,B B¦laB|J`fD•<È7, ¬Ë ´‚‘hÆæió¼Ô¨#i•@D[´ªMôÜĵ˜Ô5–Eý¤ - zˆ6e ‰¢ Gy¤ãl*AÞÔÑš3.V±3c¼+êÿ«‰"94C*“W,o}ÌX‡°ªÞâlš‘Ïsâ'!„³s6+ŽÂ ù3JZÙãÄG@eR]®¸‡»M¥ä,›h÷H+¼Üé…Ò_qÅÌÉçüÀ!SL“Ä¢kæQ!ˆæVä|H%É-wg‰)‘ÑÁ fY><ŒÅŠ˜Æ2ym‡™4Á¡Fú¬ˆiܒѾ-!MÙ?y$oÌX%ƒ j {˨ ËÁ­ý_M”©ÒjȽ¤fêöªwó4„\W_j¹ÎÚ‹‘ŒÙJ·@×Í‹²’t©`+b%¶ Ù2±;Á5b(%¸1¿±¿L¹30ÙÑx%%õ)…ÙKç®À¹üHªR¾•"–i9:|™iÁííK3l‚éò†;:î$Ed){û<ËX”+XýC•ŠýMWiE{ lVÖ;ÆîwZ¾/sã=2À(¯<Ì‘QØœŒ~ñÊ:pª¶¯[0Ð+Hº¹¦Oá…úkî#ê^ÒYV1LeÈïÀ¸Ü@ï ÷æaŸ!Z2Œ}MgN0oÉâZ[âT+,I<üÄWÁ€l>æ6Ò£gÀ@ â6§‘¿Z½¾÷,û|TohØy‰½l~ð*´Ÿ‰{*p~I€lEÝ %€°”GÔ6"iûnɈ±g²Iû˜dÉûJÄL/ý I‹ôÒq§Ô5ìTÑ3nLiÖÿ§±CŸ j¬Q܈¯ù‘“+gǕңe]Àó33…N¶£‡¥Ru m"¿üºa¤ú} ¿VÛ>éÆ;éÿ™$Z¼˜}pM¶÷31÷d=ØÏ3­eõ´¢éUØ '5ŠâÊLäÈnVb(Æ«pªe ISM*=Œ üI pfFB±ÚdíîšÀÒ$“¨Â!”ȨV¸ëi³ eÚA‚ÔÁ—}„ ÜjÞQ x™(d5¼^gvv[6Õ -™E…ŒăB=·2Ô…fíf57”PeFd&REÃo(×*m´æe"¸Œ½Š…HjŒ FÒ²݉“¥nç&ÆŒ-Iĵ¥ZËw õØq'-“SKò)šÍ®ò·s¼»0¤í2÷jà‰¬Cf®ÄŸ˜)/eˆ¬K!X;¶G*I©XǷݱM0Ú Ç¼*µ >í傌63<¨?×'zí,¡ª×´9 Ë9Fã#e4I`<À¡.5c5|Ì”,¸–íXoÈî" ª¶kó, X•³ý£ÇÙMù—§Rq¹¥w`¿ÔÒêÒ˜×Xòv ÙðR[{MLƒD$æËÚý»Ôr! 9"^3í*ŠýÆ?¢/ Z—'•<ͦL«håœò~tiè8@Ô ¯6y’ùÉjLzQ6Çþ#±Xñ©Òž¶w+}§zeèºa¤>û &\µt²þ§Ó*Š,Ä¥9²~°Ûúxô,lËøÉÚkâñ3ÐY7\ÊÔWÆíæfȬrq°?~ ä]_´2\ ÷Æó\6M£XCÉÚcv¬IöÕ–ÿi†„ÈÄú’q„`¤~òƒ–¾Ãâ!eºÚ»@’Ù<Î\÷‘ûÊ'Ú ²Ý÷ˆXäßÚTï´  (@5ûMQõ„€­éñ£dÓ¶2bÝ¡‘2¦sØ0ôÑwÊ…ÎÁFò4-wÞ2‹BØØxîd»PÜý I7Á&HR;Yø•b7¸—͘R#{íݤfâ2‚ÈØnb$÷€¯Äbÿ0ܼ°Ä¿0&",î{wÚ8Š?i#Sö ¡€¶*£)Œ zinA;Æ»åº 79ÍÀ¤R{ÍF:æEN@;JÆxCÈ@šï¼ 5SR!HG~ RÝËÒo‰J(e£Æ‰b2$ê©9€ 4 &¥‚ô䙕IÆTÑ•B {ôõfÈûÇB½Ærh¼4{¶1E{]¨ž" Ÿj ï7œ"ã;¶ßæPΫ ;ÀgMÑ$}„zÂ&«¶ÛÆh#'}„‡uAT>"B°`¼ÝýK¡ªæ±‘üÈ1˳GŒ7 ïâX:ƒ öŽÏȪ¹àD1!ÇÄÈl}2#¼íŦÔå̺y!E×ÄÞlEåÅÉȹєíCcùžRê™  òIgb!}¶ùŒ8&”Uóó5ˆ½ ZŽê<ôÖu€v“¡C3¹Ó@©ÿQâNLª‚v<ØÊ1 ¦ýW ö˜6GÈ5ohàUxè1m*Aùjr²côÁ;Æ1ÐÅnm‰ ³''E™Mˆ?êÚMÅ™‡N¸_ ‡ª3ŸShÐXâ·1A1ªjrIð’V&‘öއF“!`”k܉ۋôõW#">U?Ô¦€?ægµGWÓ`Dö¾Gc°`NAxÜ OÁª¹`éÂP{™ì÷ ÄÁ¿–ÔôI>aYe,äE{Q‰B­šÜ÷••U.âÀí+úù…úí&z)ý\f4ø‰²³}\WX1vº¦¯“1'Á&Ä °Âÿ´cÛ½‹•›ú¬À÷…NÇ…—ê„Ä-,üˆÄd¡Üê ж„ i¯hýC”òd Sd–³âÆ€)%u1<øŒêm çý 2{ÞIØ‹”ÿÒí%Ø/ˆèMéÞ  ÿ´½ö„Nû˜`š‹“´ˆØÉ”((5mý„U¹¢b7[À@Õy†«690Aç÷”ª Þ¹D“àˆ[¼@îj¼žÒt'j°˜‰<iz)xÚtNä}„`Q€Æý£ ¯#xØ]ù®ÜÔE¼Žß¼ S¿m ªäë$P<·ªÙ1¦ A gšÿi•‘ц±@n,ßäüÎ&Su7/,Öy–ržf™„6–©¬ÀNšLj %ά—#c$ä˨ï…+rÑÍ™@;JÆEo‘E…5 ͈--¯Ä”dª ]ä”i•ˆj@Õ+"P±"Ö*N1m-q)=ƤRê1é[˜) m,D³;Ë,”Z;Êu@À­Âï Ø(¶ʧBS‰QžUU3'§Ú^ŒQ©ÐQp0ËDÜÃVõ¯¥¥WS:ÔIQù3„ljÙ¬ý¢gЖ¼ÍHšæ×¨ïÌݲìh «ÄNÙ²5̽¼ñÛ(?´¥Æhê`OÚT<¬1ÕQœù=üí6Çk¿3»Ë(ÝxÜÊP£¿ÌQ91XÛ‘3BPìw‰KÌAbà6& ¬Hº&»È­z€£.6^,(È]L§qDo*6é†À/8'VÖ¼Êê°tÔ¦ÊÌô·",½Œã]´êo˜€a¶‘½|ŒšC¿Z…ôϵ–c* ÈEÑ+KÔ>øØ?ÔjMÅtqã¾£0$ñ¶ÂeŒ,ª˜³ºªû 2Œ²âlK¥M/r Áؽ®Tn½Z㢈AÌŽ£ª9[Pv'w1ŠŸL½3æ;ö»2}5CîV7ÇhÓàê§W ¤†Ø‚7ˆmÁwælÑÔ¹ptøk ‘†â‰£âq£åN¡³ £5Òï¿âjl§XêšZ½K°;G‹£OúýVB×Úù‹þ ýMmxÑ(ö‹â%ÖÍvD‚´óMãqP9zÖÂÂæÝ a\m¯)\¬}´.¦²3çw#[j#`BÔÄêðfU}¥bhv’ka‚Æèí×h>8Æ1¶J'eùí d¿H>l˜”†cbÄ¢«Y  –ê‚X¸ e%M ØÜ–ooiB¨þTd“ÈçÄ^‘¸û ™ÙJ‹æùˆ»\ ;ÁWP'€<Àš³¨ñ(J;ž%dR}Œ¨´7à@7;+ÍFÀ ·=Žÿˆ•X]äðq{CM¯Þp*÷ÿ;$Q•AófIýï¼€xà» ø†ä‹‚, Á¾ñ3Ô ?"µ_´PÞ-ûÀÐ>Kí]Åÿ3/Qò½±Øy€õ¹¿L±®õÄééÀ.¥µdr>voƒ3ô²>péL “ùaW¦;N|¸Ÿ¬vÌI~šþßiÏ[wÇÕþš¹òW©Ñÿ/ 'ú;y—EЫ6<½S¡׋ Þ»Ÿ,´?Pé²çs‘÷Qj“¢é†\Ù ‚:|n”rlX¡òdº®Ž©ÊgÊùW!ÓawôSzUÿº§ ë3ŒØÀN}¸Ð¶ãä&]Ȱôk‹«ÔqÙËŸøËÈ e5ÅËñÖ§Óû­N"&Ø%6fèÁ ÙÛi°Æ-L#ÒJgfa\Yø”¹ T¢2`€™JÐ¥ ÎÀêÚ@lͶÞ&+ÓÄ‚I.f¨4 ã°Ãa”š‘XnNѪ•Þ¢RÐñª3æÖ˜©¼¾ Q©§B¥Š’€b íÄŒ–¼À›Ô%cÀÓ.Ë3ÆžcÄV]¦½;™å]BÌÁ(=Mx:}0w]MT|£Hœýá_HäêÄ ³ƒHÖ7îfD–;‰ÒLf¯-&ëyd•Õ^–µ8—ž>¢Q}Æz¨ÀÑ£âFG žáø–#&BM±û ¦,˜ÏÔÄ7šËlˆ6 GâræGW÷Ì̹yRF$‰¶ä 2ÐÉÚC¨Ô¥¸ïR*–”ÐIà™CŸˆ¨+z½ÌÒ‰ŠÝxLÕ,Žt‚xƒ1Rdž¯‰~jWjc*,Òšî9†.¥é ý<Íd½ªÂÈØ“ +ž.€¹‡¦¬57‘q˜5Á:…a‰†¡°ZæAÈØ”zŸ"Lýñ`ÈØÁm*|s9óf~Ê‘©ûí,£—ÊÖÖ~I›ãþPçöÜÆ£<Û%ä°¦ÄìÂÚq•ê°¯ipbò®GÇ‘ß{1¡lme 7!–ä˜)O¡+ïBàTãjdeo5¼q¡1-g¼CE‰|š"'h( 3•7Üó:ºAƒ: XÆ»äîe¼†ØñbrT1í·üÎ~¡”°°íC[@¬ZŸÑŒªŽL JIÌø:w‘›#.&ãWhƒ‰q¾F½÷ñè~e#\aA:Е®Æ·’ û¹:¶Þ»LEÛ›¹E­µÖÑ€â,ó!œ"“g¼ Ë@Òð?¼‡Êú üT —ÜB®Àrx›ãÅDU›íoè*)l®]ûí÷‘êR·øŽÆ|}ᣑ(5¿Ó}üH#ŸÄ4ºÄWâ&…·=ª"/ŸÚ@|~`V¶»‚IÄzŽâP…@…Ϩ¶” ÚV†ä¬Y;ø¹À£f Ä×cö…Pì$7ÉÚ:êI;T¡´`ï mgꈞ` 9=‡hQ,;ï›qdmäC! ì jà5l լ䭀 •X$Ê¡qê¾üARÖÂ6üÚfŽÞ€&-LÿÕíÓSµ0cLÊáBªnì4Åkå¶L‡ÈÙ(‡ÔYk<}£Ê[0b­ïn²ù¡2Ó¿§ôJËŒäW|™WK¥ìˆy,<üIdÓsu]NW9s8°±þ¢GÕö¨äqtÝ u.øs=.B4„݉øÅÿôüyº,*ÌÊäk+°â÷=„›·’²ê:\½>œ™‡Ê 8v:G’|Ï;¦eø˜*伬 l†€x¼«ÒýC§lÙ+› V]cs¼ÔˆÄ“ÑšˆÛr»cæn¹U¹]¼\–jÇ6Q¡¶°#L´wDæ#rlmÄtkû™•ä 7oQÓÙ¯ÜIhlq­lO‘æ'Üúa•9 ZMÅtbŠS¹~D^¦"tâÁ©¿ÖMIó=5yóãôñŒ‡['ÌÀçÍ”iqcð‚§Ni½¦ÿ¼Ô U T­÷3:y4ŒxN¥;¾¢.FCéå´P̦õr Ô£s×eɵ c¹™†lž«›ú1sÁˆÔ}ª&Ê™qDŠE¹gÆ€#¹0\ÊœjxäÅg‰œØÐ̉Õ9Á‰Ð bûV­GÿÀ0‹Øvì>æ>£:%˜·øŒxC->ãÅAóÄÑ-Üà%Fq­÷=¬ñø]ñjÐEÑiŸ3 ô…ùìí¨ Qãh¸€ì£ù¢ÏaÚPzQ§så¤PI;–¿™¥¨ÛÌ¡¨ 8‡6H nÊ©¨š>&)Ÿôùƒ+œ„w¹© Ì8*(+x.{¹„ƒDŠ>"JD(vz¯¤&¥rö×0…ù¿™kdŠó ØâDßÞTýGqÉ2"’‰!ɵLÎçzÚPÕ;UIf5¿ínßaâ„hUGcT ª»I°6™C ¥h-¹åo´9íûÈ ÞY¨m's( ½‡2Ž2°™÷¯¸^#o™BTIþÒtÞöû@g›2Iø€žÖM|Dlu vcgÄ…,)æBÙsÇjæ;AÐÀ7)9øù€ ÐFÿ´­:1ìAûÀ’à­j ý¤±0 $›¡ 7T~ÐÆÄD››dË—¦TˆcÊö¥Ì§ -ŒŸ4g 3 ¹ éQVæsútùvõ©“&Njݪ•š¾’8ó;À¡•¨­ ¶?Ÿ“ñ1;içåfRç6]Y›ïñ=Ô16Nƒ§*쇧E\ŒGf·ØíjUt¿Ãô=(ÏœºõU†2wöê®×ó0ý7'ñsfËc¥Ä}^vÕÛóY ]nEÍÒ»³kËŸ0PAþ‘ÌæÉ‡>TþèÈ䀽…_€"ð6N«7ðʨ·±Lºê™‡?´ñ3y;sÚo埧#š2]lM#èäÔ¡Ë©G¯Yy$ÎÈeãÔÝ·2 @FݳÎÜ3#øÛ+‚ÜÛ—=qí ¥,jIÑf ›8 ë®Ôª{óJZ›-8´­vé¥Þßû‡€Ã7-t ŒÇ;@褒Ô „0 ‘*×ú“$Ô”&ˆÓ|ºQŸÁ„©Žß|<€t¿ˆb:JgËpf0™ãÇ^OB.ê5·`K›R¥`×Ü¢žýeB.4¥òÐI•Ý·_ñŸô!4^—Æ™±«IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/searchbox/images/lineedit-bg-focus.png0000644000076500000240000000101612536324427032104 0ustar philstaff00000000000000‰PNG  IHDR+¨ï×fsRGB®ÎébKGDÿÿÿ ½§“ pHYs::—9ÛÂtIMEÙ (EƒîRtEXtCommentCreated with GIMPWiIDATXÃíØM+DQÇñïýßsï°ÂF!5+”’ÂBV IÞ…¼ ¯À; %¥¬,Ô,lÔ ‘Lž Cg,ÄB¬u¯àS·s:ßëýOsE(…‡ÞNáo·C„°6ÂFØa#ì¿Æ*W-j¯ïÅ \ùl2¡5QCîæÞJlîæž¶¦8Æ”çûLt³´qHX i±¬Á6÷Ó,Ì ¡u€ó”Ï—ƒàL½#.®ó_/ó¿®Û–D53c½ô§šy-¼à|ü7pˆÅb(ÏC,Êc Å¢Fï)„ˆêßùÖIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/searchbox/images/lineedit-bg.png0000644000076500000240000000065212536324427030774 0ustar philstaff00000000000000‰PNG  IHDR+'@1sRGB®Îé pHYs::—9ÛÂtIMEÙ  sðÎP¿°X,•€GÁùéq«ù8Õ›Þ³qv¢”¢ˆÇÜqó 7Ë+EÎ#:»¹RJÃñ¾¥èüË¿H© ¤‚T þ€1¦­!~G)Å›uFê8nÌ#Í‚·××Í#"5-k·R©ßÞt;íYeа}·Ó¾¾º<8<’RA’ñ…a£áõã¾c,çäª{µÍ­ñˆ  ±mÛ0Mm] ')…€/á0ù;‹GÀ´IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/searchbox/main.qml0000644000076500000240000000503012536324427026270 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Rectangle { id: page width: 500; height: 250 color: "#edecec" MouseArea { anchors.fill: parent onClicked: page.focus = false; } Column { anchors { horizontalCenter: parent.horizontalCenter; verticalCenter: parent.verticalCenter } spacing: 10 SearchBox { id: search1; KeyNavigation.tab: search2; KeyNavigation.backtab: search3; focus: true } SearchBox { id: search2; KeyNavigation.tab: search3; KeyNavigation.backtab: search1 } SearchBox { id: search3; KeyNavigation.tab: search1; KeyNavigation.backtab: search2 } } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/searchbox/SearchBox.qml0000644000076500000240000000744212536324427027233 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 FocusScope { id: focusScope width: 250; height: 28 BorderImage { source: "images/lineedit-bg.png" width: parent.width; height: parent.height border { left: 4; top: 4; right: 4; bottom: 4 } } BorderImage { source: "images/lineedit-bg-focus.png" width: parent.width; height: parent.height border { left: 4; top: 4; right: 4; bottom: 4 } visible: parent.activeFocus ? true : false } Text { id: typeSomething anchors.fill: parent; anchors.leftMargin: 8 verticalAlignment: Text.AlignVCenter text: "Type something..." color: "gray" font.italic: true } MouseArea { anchors.fill: parent onClicked: { focusScope.focus = true; textInput.openSoftwareInputPanel(); } } TextInput { id: textInput anchors { left: parent.left; leftMargin: 8; right: clear.left; rightMargin: 8; verticalCenter: parent.verticalCenter } focus: true selectByMouse: true } Image { id: clear anchors { right: parent.right; rightMargin: 8; verticalCenter: parent.verticalCenter } source: "images/clear.png" opacity: 0 MouseArea { anchors.fill: parent onClicked: { textInput.text = ''; focusScope.focus = true; textInput.openSoftwareInputPanel(); } } } states: State { name: "hasText"; when: textInput.text != '' PropertyChanges { target: typeSomething; opacity: 0 } PropertyChanges { target: clear; opacity: 1 } } transitions: [ Transition { from: ""; to: "hasText" NumberAnimation { exclude: typeSomething; properties: "opacity" } }, Transition { from: "hasText"; to: "" NumberAnimation { properties: "opacity" } } ] } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/slideswitch/0000755000076500000240000000000012536324427025177 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/slideswitch/content/0000755000076500000240000000000012536324427026651 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/slideswitch/content/background.svg0000644000076500000240000000276612536324427031524 0ustar philstaff00000000000000 ]> PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/slideswitch/content/knob.svg0000644000076500000240000004255312536324427030334 0ustar philstaff00000000000000 image/svg+xml PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/slideswitch/content/Switch.qml0000644000076500000240000000671412536324427030635 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ //![0] import QtQuick 1.0 Item { id: toggleswitch width: background.width; height: background.height //![1] property bool on: false //![1] //![2] function toggle() { if (toggleswitch.state == "on") toggleswitch.state = "off"; else toggleswitch.state = "on"; } //![2] //![3] function releaseSwitch() { if (knob.x == 1) { if (toggleswitch.state == "off") return; } if (knob.x == 78) { if (toggleswitch.state == "on") return; } toggle(); } //![3] //![4] Image { id: background source: "background.svg" MouseArea { anchors.fill: parent; onClicked: toggle() } } //![4] //![5] Image { id: knob x: 1; y: 2 source: "knob.svg" MouseArea { anchors.fill: parent drag.target: knob; drag.axis: Drag.XAxis; drag.minimumX: 1; drag.maximumX: 78 onClicked: toggle() onReleased: releaseSwitch() } } //![5] //![6] states: [ State { name: "on" PropertyChanges { target: knob; x: 78 } PropertyChanges { target: toggleswitch; on: true } }, State { name: "off" PropertyChanges { target: knob; x: 1 } PropertyChanges { target: toggleswitch; on: false } } ] //![6] //![7] transitions: Transition { NumberAnimation { properties: "x"; easing.type: Easing.InOutQuad; duration: 200 } } //![7] } //![0] PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/slideswitch/slideswitch.qml0000644000076500000240000000411512536324427030235 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import "content" Rectangle { color: "white" width: 400; height: 250 //![0] Switch { anchors.centerIn: parent; on: false } //![0] } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/spinner/0000755000076500000240000000000012536324427024333 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/spinner/content/0000755000076500000240000000000012536324427026005 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/spinner/content/spinner-bg.png0000644000076500000240000000053112536324427030556 0ustar philstaff00000000000000‰PNG  IHDRŲÂÃsRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÚ 4&.š ÙIDAThÞíØÑ ƒ0 EQÒ8d&h÷ÿ¦ëb:CeSYæf€£ôùÉʺ¾ŽÉx¤ÖºçB>fDÄå&’)“|=Ù=z’+XaD.™°cÿÖV;ö~O@vìE= Rûrž§Õ˜“Ãùõ”eyšim¶#½; óÜ=~Î%7 “ uAnˆÈ¶½«QÕfFÆâ¹I²LT5Ît<õñ3b SûT™¨ÆYJf¤ÊÄ«±Œ˜¥t¿LhläÿlŒ8ýˆ•—¦ nòÍ–âñÇ«NžIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/spinner/content/spinner-select.png0000644000076500000240000000050012536324427031441 0ustar philstaff00000000000000‰PNG  IHDR[, ÄàsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<½IDAThíÔ± !QŸµ¡Eµ¸+ªqê ȈààäÄ5 ó$òÕè‹ã<ÏïCˆ£”blHÔZ_«ØEÜ÷=V±‹csNcCŒ ò¹l˹lËdlP\×elˆË¹l±A~# è½â726(rΟÕGì"Zksõ»x®>`'Ædl±AÆdl±AÆdl±AÆdl±AÆÅÿ )¥÷ê#vñÈ[…ó|ð?IEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/spinner/content/Spinner.qml0000644000076500000240000000535312536324427030144 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Image { property alias model: view.model property alias delegate: view.delegate property alias currentIndex: view.currentIndex property real itemHeight: 30 source: "spinner-bg.png" clip: true PathView { id: view anchors.fill: parent pathItemCount: height/itemHeight preferredHighlightBegin: 0.5 preferredHighlightEnd: 0.5 highlight: Image { source: "spinner-select.png"; width: view.width; height: itemHeight+4 } dragMargin: view.width/2 path: Path { startX: view.width/2; startY: -itemHeight/2 PathLine { x: view.width/2; y: view.pathItemCount*itemHeight + itemHeight } } } Keys.onDownPressed: view.incrementCurrentIndex() Keys.onUpPressed: view.decrementCurrentIndex() } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/spinner/main.qml0000644000076500000240000000454112536324427025776 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import "content" Rectangle { width: 240; height: 320 Column { y: 20; x: 20; spacing: 20 Spinner { id: spinner width: 200; height: 240 focus: true model: 20 itemHeight: 30 delegate: Text { font.pixelSize: 25; text: index; height: 30 } } Text { text: "Current item index: " + spinner.currentIndex } } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/tabwidget/0000755000076500000240000000000012536324427024627 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/tabwidget/main.qml0000644000076500000240000000670612536324427026277 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 TabWidget { id: tabs width: 640; height: 480 Rectangle { property string title: "Red" anchors.fill: parent color: "#e3e3e3" Rectangle { anchors.fill: parent; anchors.margins: 20 color: "#ff7f7f" Text { width: parent.width - 20 anchors.centerIn: parent; horizontalAlignment: Qt.AlignHCenter text: "Roses are red" font.pixelSize: 20 wrapMode: Text.WordWrap } } } Rectangle { property string title: "Green" anchors.fill: parent color: "#e3e3e3" Rectangle { anchors.fill: parent; anchors.margins: 20 color: "#7fff7f" Text { width: parent.width - 20 anchors.centerIn: parent; horizontalAlignment: Qt.AlignHCenter text: "Flower stems are green" font.pixelSize: 20 wrapMode: Text.WordWrap } } } Rectangle { property string title: "Blue" anchors.fill: parent; color: "#e3e3e3" Rectangle { anchors.fill: parent; anchors.margins: 20 color: "#7f7fff" Text { width: parent.width - 20 anchors.centerIn: parent; horizontalAlignment: Qt.AlignHCenter text: "Violets are blue" font.pixelSize: 20 wrapMode: Text.WordWrap } } } } PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/tabwidget/tab.png0000644000076500000240000000077312536324427026112 0ustar philstaff00000000000000‰PNG  IHDRD¬…?sRGB®ÎébKGDÿ‡Ì¿ pHYs  šœtIMEÚ/}‘ŸÑ"tEXtCommentCreated with GIMP on a Mac‡¨wCQIDAT(Ïu’±NÃ@Dß®ÏA! ‚ŸàËi©)A )” %Øç]Š;ÛçÄliÏÌÎÌžDWÖ¼ðÍ–šˆà®8çGóWÞ¸ãŒGHóÉ îäËŸx ²ÅgIÅ3'\£ïÜYÜ4‘ 7¬0ô‡#”é8 ;†cv(6YÑ!(-¿hCÀ'? "FP@¡HŠ`(ªtè‚à™¢žÇriÙõ¾Ša$ò!ž‚]xÆú°Ç@Y^€t „²»ÄNâUþÈ‚”í½‚ä˜’“÷«*lTèa^˜TtÝ ÔZº¤à¹yßK¡teLfÞƒ•ösÈ §ÿ+$»:{Èž›Îíà Ÿ/ªôà…‹Y…±ì97êT“ëõ "Uz•¿8í˜9OM‹³ Ê£Ái‡P†¹ài¼aÅÁŠ[DœRSóÂ2¢©t¡gIEND®B`‚PyQt-x11-gpl-4.11.4/examples/declarative/ui-components/tabwidget/TabWidget.qml0000644000076500000240000000750112536324427027217 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** You may use this file under the terms of the BSD license as follows: ** ** "Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of Digia nor the names of its contributors ** may be used to endorse or promote products derived from this ** software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Item { id: tabWidget // Setting the default property to stack.children means any child items // of the TabWidget are actually added to the 'stack' item's children. // See the "Property Binding" // documentation for details on default properties. default property alias content: stack.children property int current: 0 onCurrentChanged: setOpacities() Component.onCompleted: setOpacities() function setOpacities() { for (var i = 0; i < stack.children.length; ++i) { stack.children[i].opacity = (i == current ? 1 : 0) } } Row { id: header Repeater { model: stack.children.length delegate: Rectangle { width: tabWidget.width / stack.children.length; height: 36 Rectangle { width: parent.width; height: 1 anchors { bottom: parent.bottom; bottomMargin: 1 } color: "#acb2c2" } BorderImage { anchors { fill: parent; leftMargin: 2; topMargin: 5; rightMargin: 1 } border { left: 7; right: 7 } source: "tab.png" visible: tabWidget.current == index } Text { horizontalAlignment: Qt.AlignHCenter; verticalAlignment: Qt.AlignVCenter anchors.fill: parent text: stack.children[index].title elide: Text.ElideRight font.bold: tabWidget.current == index } MouseArea { anchors.fill: parent onClicked: tabWidget.current = index } } } } Item { id: stack width: tabWidget.width anchors.top: header.bottom; anchors.bottom: tabWidget.bottom } } PyQt-x11-gpl-4.11.4/examples/demos/0000755000076500000240000000000012536324427016701 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/declarative/0000755000076500000240000000000012536324427021164 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/0000755000076500000240000000000012536324427023013 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/minehunt.py0000755000076500000240000002174212536324427025225 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# import random from PyQt4 import QtCore, QtGui, QtDeclarative class TileData(QtCore.QObject): hasFlagChanged = QtCore.pyqtSignal() hasMineChanged = QtCore.pyqtSignal() hintChanged = QtCore.pyqtSignal() flippedChanged = QtCore.pyqtSignal() def __init__(self): super(TileData, self).__init__() self._hasFlag = False self._hasMine = False self._hint = -1 self._flipped = False @QtCore.pyqtProperty(bool, notify=hasFlagChanged) def hasFlag(self): return self._hasFlag @hasFlag.setter def hasFlag(self, flag): if self._hasFlag != flag: self._hasFlag = flag self.hasFlagChanged.emit() @QtCore.pyqtProperty(bool, notify=hasMineChanged) def hasMine(self): return self._hasMine def setHasMine(self, mine): if self._hasMine != mine: self._hasMine = mine self.hasMineChanged.emit() @QtCore.pyqtProperty(int, notify=hintChanged) def hint(self): return self._hint def setHint(self, hint): if self._hint != hint: self._hint = hint self.hintChanged.emit() @QtCore.pyqtProperty(bool, notify=flippedChanged) def flipped(self): return self._flipped def flip(self): if not self._flipped: self._flipped = True self.flippedChanged.emit() def unflip(self): if self._flipped: self._flipped = False self.flippedChanged.emit() class MinehuntGame(QtCore.QObject): isPlayingChanged = QtCore.pyqtSignal() hasWonChanged = QtCore.pyqtSignal() numMinesChanged = QtCore.pyqtSignal() numFlagsChanged = QtCore.pyqtSignal() def __init__(self): super(MinehuntGame, self).__init__() self._numCols = 9 self._numRows = 9 self._playing = True self._won = False self._remaining = 0 self._nMines = 0 self._nFlags = 0 self.setObjectName('mainObject') random.seed() self._tiles = [] for ii in range(self._numRows * self._numCols): self._tiles.append(TileData()) self.reset() @QtCore.pyqtProperty(QtDeclarative.QPyDeclarativeListProperty, constant=True) def tiles(self): return QtDeclarative.QPyDeclarativeListProperty(self, self._tiles) @QtCore.pyqtProperty(bool, notify=isPlayingChanged) def isPlaying(self): return self._playing @QtCore.pyqtProperty(bool, notify=hasWonChanged) def hasWon(self): return self._won @QtCore.pyqtProperty(int, notify=numMinesChanged) def numMines(self): return self._nMines @QtCore.pyqtProperty(int, notify=numFlagsChanged) def numFlags(self): return self._nFlags @QtCore.pyqtSlot(int, int) def flip(self, row, col): if not self._playing: return False t = self._tile(row, col) if t is None or t.hasFlag: return False if t.flipped: flags = 0 for c in (col - 1, col, col + 1): for r in (row - 1, row, row + 1): nearT = self._tile(r, c) if nearT is None or nearT is t: continue if nearT.hasFlag: flags += 1 if t.hint == 0 or t.hint != flags: return False for c in (col - 1, col, col + 1): for r in (row - 1, row, row + 1): nearT = self._tile(r, c) if nearT is not None and not nearT.flipped and not nearT.hasFlag: self.flip(r, c) return True t.flip() if t.hint == 0: for c in (col - 1, col, col + 1): for r in (row - 1, row, row + 1): nearT = self._tile(r, c) if nearT is not None and not nearT.flipped: self.flip(r, c) if t.hasMine: # Flip all other mines. for r in range(self._numRows): for c in range(self._numCols): t = self._tile(r, c) if t is not None and t.hasMine: self.flip(r, c) self._won = False self.hasWonChanged.emit() self._setPlaying(False) self._remaining -= 1 if self._remaining == 0: self._won = True self.hasWonChanged.emit() self._setPlaying(False) return True @QtCore.pyqtSlot(int, int) def flag(self, row, col): t = self._tile(row, col) if t is None: return False t.hasFlag = not t.hasFlag if t.hasFlag: self._nFlags += 1 else: self._nFlags -= 1 self.numFlagsChanged.emit() return True @QtCore.pyqtSlot() def setBoard(self): for t in self._tiles: t.setHasMine(False) t.setHint(-1) # Place the mines. mines = self._nMines; self._remaining = self._numRows * self._numCols - mines while mines > 0: col = random.randint(0, self._numCols - 1) row = random.randint(0, self._numRows - 1) t = self._tile(row, col) if t is not None and not t.hasMine: t.setHasMine(True) mines -= 1 # Set the hints. for row in range(self._numRows): for col in range(self._numCols): t = self._tile(row, col) if t is not None and not t.hasMine: t.setHint(self._getHint(row, col)) self._setPlaying(True) @QtCore.pyqtSlot() def reset(self): for t in self._tiles: t.unflip() t.hasFlag = False self._nMines = 12 self._nFlags = 0 self.numMinesChanged.emit() self.numFlagsChanged.emit() self._setPlaying(False) QtCore.QTimer.singleShot(600, self.setBoard) def _onBoard(self, row, col): return (row >= 0 and row < self._numRows and col >= 0 and col < self._numCols) def _tile(self, row, col): if self._onBoard(row, col): return self._tiles[col + self._numRows * row] return None def _getHint(self, row, col): hint = 0 for c in (col - 1, col, col + 1): for r in (row - 1, row, row + 1): t = self._tile(r, c) if t is not None and t.hasMine: hint += 1 return hint def _setPlaying(self, playing): if self._playing != playing: self._playing = playing self.isPlayingChanged.emit() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) canvas = QtDeclarative.QDeclarativeView() engine = canvas.engine() game = MinehuntGame() engine.rootContext().setContextObject(game) canvas.setSource(QtCore.QUrl.fromLocalFile('minehunt.qml')) engine.quit.connect(app.quit) canvas.setGeometry(QtCore.QRect(100, 100, 450, 450)) canvas.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/minehunt.qml0000644000076500000240000000775012536324427025366 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import "MinehuntCore" 1.0 Item { id: field property int clickx: 0 property int clicky: 0 width: 450; height: 450 Image { source: "MinehuntCore/pics/No-Ones-Laughing-3.jpg"; anchors.fill: parent; fillMode: Image.Tile } Grid { anchors.horizontalCenter: parent.horizontalCenter columns: 9; spacing: 1 Repeater { id: repeater model: tiles delegate: Tile {} } } Row { id: gamedata x: 20; spacing: 20 anchors.bottom: field.bottom; anchors.bottomMargin: 15 Image { source: "MinehuntCore/pics/quit.png" scale: quitMouse.pressed ? 0.8 : 1.0 smooth: quitMouse.pressed y: 10 MouseArea { id: quitMouse anchors.fill: parent anchors.margins: -20 onClicked: Qt.quit() } } Column { spacing: 2 Image { source: "MinehuntCore/pics/bomb-color.png" } Text { anchors.horizontalCenter: parent.horizontalCenter; color: "white"; text: numMines } } Column { spacing: 2 Image { source: "MinehuntCore/pics/flag-color.png" } Text { anchors.horizontalCenter: parent.horizontalCenter; color: "white"; text: numFlags } } } Image { anchors.bottom: field.bottom; anchors.bottomMargin: 15 anchors.right: field.right; anchors.rightMargin: 20 source: isPlaying ? 'MinehuntCore/pics/face-smile.png' : hasWon ? 'MinehuntCore/pics/face-smile-big.png': 'MinehuntCore/pics/face-sad.png' MouseArea { anchors.fill: parent; onPressed: reset() } } Text { anchors.centerIn: parent; width: parent.width - 20 horizontalAlignment: Text.AlignHCenter wrapMode: Text.WordWrap text: "Minehunt will not run properly if the C++ plugin is not compiled.\n\nPlease see README." color: "white"; font.bold: true; font.pixelSize: 14 visible: tiles == undefined } } PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/0000755000076500000240000000000012536324427025413 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/Explosion.qml0000644000076500000240000000463312536324427030114 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import Qt.labs.particles 1.0 Item { property bool explode : false Particles { id: particles width: 40 height: 40 lifeSpan: 1000 lifeSpanDeviation: 0 source: "pics/star.png" count: 0 angle: 270 angleDeviation: 360 velocity: 100 velocityDeviation: 20 z: 100 } states: State { name: "exploding"; when: explode StateChangeScript {script: particles.burst(200); } } } PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/0000755000076500000240000000000012536324427026351 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/back.png0000644000076500000240000000105612536324427027761 0ustar philstaff00000000000000‰PNG  IHDR((Œþ¸msBIT|dˆ pHYs Ñ ÑÂ+ßãtEXtSoftwarewww.inkscape.org›î<«IDATX…í™ONÂ@‡ïM­…]˜RT ;=²À< kà)¸‚DÊ\º4ÿĘȟ"ÔH:υȂĸhBǤ_2û/ï›Ù¼!ÔêM_k}  ÊDe«D Z¤ ËÌ­«‹ó A­ÞlˆÖíá ?áGE+•›³nÛvÞÛt ›[1Ÿ\]œwèè¸á‹Ö·÷wOÑt2ICl{Ãqv÷+%b>T{û•³aÿ-ößi‹ý0›}ΔeYkëv…TÃá L[j™¹SÕb¢r4ܤ-´L4DLt`aþP …8mƒ¿°Àà š/˜%NŠ%0WP%NŽñ‚Yâ¤/˜%NJ6Á¤/˜%NŠñ‚Yâ¤/˜%NŠñ‚ÿ"±æM‘ˆ@,­ãÞ†“³ßÇa*[Õßpry[ë¸Çu·ý¢›¶Ð2ßNÔe¥T«”<×+8"ŽëœbPò”R-7¢uûùéqôúò¾ÇѪï$!—ÏÛÛ~क़O®/;Åò²VoúqŸB¤ÊJ•C¢ã¸¢®Rjñ ñ•ë1š5B&/IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/bomb-color.png0000644000076500000240000000043412536324427031113 0ustar philstaff00000000000000‰PNG  IHDRÃÐUU pHYs††¦3àtEXtSoftwarewww.inkscape.org›î<©IDATH‰Õ–á Ã0„ÏÐ÷^ûä×[aM5j’ rPQ¿ª D÷·ƒÚ~A·„¶…¦Íã³|ÉDè;ÖrÈ–Ê ·§f–Y¨[ö¥­™Ž¨'L 9­§!™P#Ë]…z@ÏïvO£0Mß=þmOG²¬ãË ` þï•‘ 8$2Z§ü… ­Ö#’²Pù@{ŠgtqJ½1 ¼AGÀuÜ£§Y°æï¾P´±èýøf_„h§DÈIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/bomb.png0000644000076500000240000000102712536324427027776 0ustar philstaff00000000000000‰PNG  IHDRÃÐUUsBIT|dˆ pHYs††¦3àtEXtSoftwarewww.inkscape.org›î<”IDATH‰­•»JQ†¿=ˆA± ‚ˆ……ElÅXZˆà+è(¨Ø –V¾@ÞÀÆ7°ðÒŠöЦ²2Œä·È¯{Énö‡-–ùçcvvΜ@5 ì§ÀùÏ€Ë\€íP†¤´Ï¤wIMISaž´À=Iõ´åK,Jjð8Λ¦§@x6c)*­Z•«IÞ a¤jVÀð<#Àp–4”ðÉÀä÷aƒ×ˆǨ@ØÆ#âE`Ç|ÿÒ“²õÏÿé(½™¯œ4R‡’ê °¿ª[^(tK½S’EMËÿ–TËôªç z)©; ´k°ÌAÌhõ£À8‹ZèUôÐe¯Ò+–PÊ èUrDŠì*8 ‘3´á€ëœ¡×8:9;À‰.€—œ /À…î# = °mœ{L‡õ}]dUÕ8¿¶Ô¼Ò¯=¯ºå‡îÓ9Iw’Z}ÂZæŸSÌ’FRAREÒ£zÛ=Lo¯˜¿ïÛtXV€20¼WôÆð ¸ Kü‘눱tåIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/face-sad.png0000644000076500000240000003477412536324427030541 0ustar philstaff00000000000000‰PNG  IHDR@@úù­ pHYs Ö Öoyœ vpAg@@êóø`bKGDÿÿÿÿÿÿ X÷Ü9YIDATxÚì| X•ÕÚöÚ{3Ï8¡€€¦‚Aš‚Yš#Zލ Y΂ÃIsFÓÒPÓ¬LÀÒ`­¢ìý+!ªeŠr®+àE)Q`új¢^¼'¾íˆvÿ­ÿÝÃ@´¢ ¢TŠrì'˜ÆlE9‰ífB¤Þ„èGÒ:…×¾„˜rñœAHÀzB¼áÛDB|¯r?ð†@Q/Þ߉vD»¢ѯ‡׿àO#:Bˆ¢œixVQ.Í„á!$w*!ºá@Ö6BÜàçü>!~Poy—À“„h€´0(«"‰€Ÿ¼ x’ÉjB^œHNª yÉJv)VBºÙŠzñžøN´#Úýˆ~Å8ĸÄ8ŸÅ<þ­ÏMø·§Aè>@JXÚ#¬€Ž"¤Á Â~žUT ¹ˆ $M•dðKÖ:¿ª1ΓN”?+uxŸ[4àé{ÛµÈÈzš· °æþò”{׃ïí~R‘W|2TÚ{»bjqIøûÛW¬)öFô+õÍ‹‡tÜý¤üì½ÌÀRø®¢è“FÛ2²*Þßãó¢u#ª²I:!úããããóóóü—WEAð†Øk, ¤ëV°² q_DˆËEBœÊ ñ/ƒ7ÁâÂýIøâÍu5­Ê‡¸ZÞò}2ïž_ÀÓ ŸdÝ]Òd÷p‡«¥0|Ñ&·¹¾³Ûn5Å{FKkôgÝúûžlÿVÜëaC}Ý;§Ä/÷ññ™ýêE—¾û»fôiªÑø®íº¾O[À±±n½¶º,ðIéüvHxÏÚ¾Kœ6l¨—z&zL·þn³üœÛ,5Ešl{ø©|wѦ–]v/ïV| ÑwÖØ+*܆¾å+Æ)Æ-æ!æ%æ)æ-äð/£T}0˜ã¥Ð}GB¬ï; ‚Ò€åô‚7vƒà†J{íkTÝNT$Þ¯ñšð®±ìÈ{-r¾¼._°÷Ý5¾WPà‡‘®qŸúùvœúò·®kA<äôVÖlF¬Õ°òF§·YY÷âxggÞNsÞnöãœGŸº÷ö†§|—½3Ò¼¸`ÌÔ) Íî‘@¡k×èè>:˜iVë„/xæi7« *›póIû»ï7=²å‘ñtíB}ê€EBB.BNBnBŽÿß(€lÀ§_§b‚ß ¯7<±øï$G•„´ëZyùÑ_=ŽOú¹ötż¦‰«šxMh¼£Õœ°¹í›÷(ü±wÈFl¯ÀÏ3a ¡žÉqŸÒ4J_ØZ% šÍÞyHÔºØõ2õ!>†ÁY²'âù4ÖäLÄ¥R2b”œ‹èÈêS ¤õø]©| ñ Ä'·ÿ9Sõ€õ«ŸKÇ¡Ýé}†ŽËùBÈ,§¯g—`¦šú¦ï%.Áôé!„¸-jïÑ}:!^«šô 7†ílØU54ðܪ&Ïf—=õœ3ég!!'!7!G!×Zø_šúW/F¼ Y¿þb]@+…:µ¸öÝ-ªô]è&§XršúL¼åÛ#仈ú>.“#Ý_3Ò|9Ä0,NóŠWAœ¾~EÛâ~Ã- ¿ƒd3bëö}ˆŠí#Öv1ÚÞŽ=·áw$Ê~1Øîƈåå{b<¯‚öX»Ÿóöº!†Øš±ïm®üù]ăÒX¿Qe ãTåºÚ®¾M‹ ª¸^×^ZECGóíÆÐÜ$âó×V€"¼z¶í%}eŒ=´YÜÄ[Oµ%e~© Ý„œ„Ü„…\…œÿ =À©]0À–„4ê ÓÔÁ”k©&KW¤*URæ{w®óå1N1ÚÕM6÷žè•v0z Ñ™Úôy-ÞÖ46ǧÀƻL {ŸÆdm'÷{8Õžr#Ø2…¢œjþËɦ¯SMeˆY¦Ýˆ9–yˆ,{V¦ã¬'³m]ƒí—‘ÓíS7ظâX›!æZ/ ^3ÿûÏ2›±œfšËûE\b.n­{pÜÑÊ5ÀCš0·o`^C\چ߄ynò_ŸžáQ«W{½—ÇtØGBôï8ÍiZÝ{âÓ[E_ô_#ä&ä(ä*äüO£Š²ýÀuˆz4·þ–RY®¯ò–ò€Äµë÷ä\Ñ‹~=£·è>h¬µxtoé•I³ìð7²iþë3»S=”îq£]€ãU×Õ=Ñqç™CG,×ÿ‚‚¯®ÿ±¸¾1ÈŽßÀˆÈ4ïÆr‰ù)óÖO!¶ÕŒ@;#4žNí§S^_‰X€ÄÛ.b™XÖXÛ0Å2ßÂ~’M°þ+(JÅõao°ñÕw(óÍzôð¸C÷S£ŸaÞuÞ¥BAbÆ–-f‚ôN†~IíÞù¼³¦qR¬¥b^É ÿÔÅß9 ¹ 9 ¹ÿ7).ç¾fË–àh,k¨ÃôJ!]?Èh[=þ¸(Êgõn¾6Ù¿_l¡ÇËA‹#îñ›CÆw³CÇg=kÚM¡Äký=¶ƒN{+ƒmÓXä® CÁͨÁ-y†¡' 4³v#W„oSM+±–Iˆù`©ˆ¶—«y(†v™eïc„3ׯØlˆg˜g é¶mˆiö}ü»…<¸byÖQ¼ŸÏKÌ«°~i –ƒŒþLAëÞ ãNgã6Œ£½Â¼:Â<”tÛTªšî3@‡<¤vŸQJƒS»Ýzo¥´ûlýsÝ£€ÈØÂr·’HßMs4B®BÎB?¬<Ö·hŸ?€A€\›‘-2äÎA*¦>ìèÑd´›j“¼Ù÷íÞÝ׺¶‚'Ú]A]~,÷ô _A-A3Ûy>·ÜXš¢Ick¢Ð‚îU-˜) ªIÄòºÙ(Èö Gùûç³,/qB¦r¢.1‚qdƒm4#Þþ·ø,ØšñÜ QኒÈëS Dõc a›Æ±?ó6+S ƒ±žŸaÙÊ]1#>žÇò™€ŒØ“ŒH;·|{oWþœøŠD(L¼í¯wE ±÷ãÉà6.!¶Ÿàx’õgýÚ¸"îå !HNlx—φ®e@üL :DšQ½ë¥ÚÜN±º@}´öM*'Ïêp#]î6¿ÛV#î :7¯ !¶2}\R¼ê×VïÓGÆ+Bî‚ÁË™(ð‡Ã%u0lMh ¤nž¹r#ù)‰ ïløòÉYïˆi ÝšzvðÛ£Õ o:ªÍ{ÐA/ß94ù!ƒµÝÀDgª¢eJ°0‹;(盎Aý89µ¾º|¹!”f¸Ôǵ~ijûnˆ ¶$NÐIN8{žÀ]x<'¼Å︥+¶ï9^äx‰ã ÞPˆ®ü»Ñ\ÖpÜÆè$÷,¥€;Ô_jÃ1ªÕ̦CTÕª)VÍ$)¸+>αð Z8s±SFô4&hNŒ/‹¬^X¸•ê „ QV¦(%ÖÕü9{_±ºr|‰×7åIàÞÞ®Ÿ³²hO„ûhþ¼ëg0O¢íÏÚ!Ñ5ÔÒIŽåƒE+ëQ>êÀãT*Íû §³êëN4TfëûŒ‚Þ÷3ücºã°³…ö>ZÛÖsk˜¦êŲ ž%ú/‚§?Me)ר»þ@+Pªš<®Yl‡U‡Z·ü¥Þî~}h¸«Í3Èžjoøï D·T]÷ùƒëšCq£fœz‡n%vù†óêòÔ¾.ßz«b´­hJ*Ei&‰h±ñJÆèlâÅ-Ì› ^±µãèʳ|aÁ£8}«¡r¾•ÅìbëE®DZ>ÈæSîÂE¶œ—osi‹˜ÇÛ¯áí[?ûý8±ŒŠÌÆž®}¤àA’-A@ÉPù VÖ÷A¹¼åü 6˜~†úPÈ‘>T¹$ùÿ…î|ú½JÏ]Úzeùn"Ä–hLwß34\ð x< ÞþÐ3‚Ffxutò"é%BìÙõÌRö¦{Èý8ý,מÉ:WZ£O`À³=ÖP ¾¯5"ñËÔãµZì*Ôù%Ä0WJä,Õrý¼BÑS5„í³¡eð­œAîLá.ÒK©A NTjÐ2³¹å–Ê%ËÎûrËaˆ¸:àD¾Çê-«ùóïyyÇUì{ö\.±°ç¬…üûrfÑØ¯+ÂAè¯+fù56‚‚aÜ ¨"+„¶¯dã¸Y(©@Lq¬¥À~d£:F7åò‹+ÊGó†‹ z„åNsq£ZCíZ½ÑÃ#`x€ÞYLà²õÇÜ>ñL®q¾s >®9ݯ žo‚Ç?à^˜ tÁÐ4‹À¥´–FÊëñ7ZnÖiÇ$Ìtú ,}<}àüžk%^;L‰Âd.—mQr÷º¯è%ZtñÒôê%ÞŽ5O/&:"ahpÜ{bÆçÍ 3Q@)æÆÜ%;sÅ=CÄ,KB~k]xü~(!?øÃ›7ü }¥ñdî„„kšöñ€•ñÕu?ý”Eß»W,³ K,Ûº5OâÙù ˆ=øÖî ÖË=Ì}ð»6ÅÅØþáü`Þ~{Þ~wlø¯pŸÞ¯e[Æl|J–ëu®m¸b?Æy¬í‰óv”—ãbm™ Á¾öÉ XYÕ Oò¨1¦Hê.q¢T:­TJ¨m;¿çÒ˜Y©û€†Rkoã(—& 3O‚7ÁãPs=J…‰¦gÖÖ–ö*òFÓù²›£‡î»ökœt&ý-xã-ÝoÚ·©+S§.[ìXWs°Ô>½ò$àLû‰Çé¬I¥¸ÿfíW4q~ÑvÚ}áæú3ëBÙ©œ9– Й/§,|}]ˆ–‘l†˜XØäöÉÇ&ªxŽþÔSì»Ãg+Äøo¤uÉ{ u>!·­·û>øŠ)’9î÷¡Æ|Œõ÷v—šÎ³å”iû·~LÛÇvþ³öûƒeCûwÚ=þšY8³|y½ùWˆ§|ÜMxÒù›'ÛÒ¶Ÿz õŠÁV^²ð muÑij0Ö¤’x<™hW6 ðŒ}tÅ”ëâš(zü­*°6<¨k¤í6þ®Î¤ƒq+—í?éüÛ¯< Þ@\«ñÆÎ:†íšdìYíªŸé¦ùZµX{Âå„öM­–.ëTéšå4WTç0•k^SMÑ~-»ÔZ^’xßòúíÛ€ÁÖO §Â*½ô ZÄöª+(˜ e\€#¹¥2-AKEÏÀˆ²ÚûÛæÓõ¶”«xÑÚâ’û×Bv\T\:˜¢c; ¶WÚ>·²v}„çÁr*sõÒÕgƒPNwï÷D¹Ü¾ó9àAë§·WXöyn°w-û0ÃñruÌ…ò›q+¹^I;_î´Rk¼¤nÐJ.'bköê÷Gº ÞÏ«bÃ'4§.'ä—• ©èoù֨שÛgjü4Ô莕æGõ›b0KÏ“3p'Z`8ˆ°‘å¦X?zð âKE™€¥6×ûC0öGV´C¬«¯gC‹DArÂs4sžÇ¤i‰égpÉ×C ¾`I¶;ì¿áW»±3Û²L‘NSly?8Ïÿ'x"?ÅÎú3éãM&æy07 CžYûþ7ž«ýH~±=îY’Í?S„q>æõz®È·°>™{žíÆ7ñPÛQˆréÿÀ0ÃÚ®¸wæß¡ûv·òO©\î5 ˜3$áò±Öz p¹&L½ ˜ goÝÓ`×Ö>Sð&x¼>‡øœ¦.ãá£Ið*åÈñÜOÉñŽIšKÁÉšMš êtÓQ½i!¹²"1AF´”\ÿ*â¢Út€RÇÉÊi4Ér¬­Š€ršcßãO5("¡@„`¢Ìß±2·Ô@ÖqŒ0ˆl]Ç„@Çwz ‚ë|$3N~1>£Ó:Ö†.‡÷†uÒ˜Ç|kWnà{ö »øÝQVošÈûÓÑö;žmòoùÿ¦}_Ú~Ì¡€.,Ç Åw0½Ì±¼_fù)b~Óðý逑~Ÿ%­­ ôr¬©´cNp¥r4EÇ:ƒ7¾?ÐØ 1—ŽWI'‰44ªÆ©ÆËè>&ŒS>âÈÕø' Þ‚×çP€N–5jUð›`O•â@“º)’¤YÝX¯úA5„>…E^¾ã npd˜Í€^Ò0”eÙL ‹’’hYZb¤./CÎ5¾Ë¬k&sùæ6¨ƒ¸å'›zócV'¢5–…‚ôàD=€^¯~XnÝØõÕéàq,ÇÕ?„\}_¥ÚHqÍåõÅ+ÞÇ÷Þ¨ìÆ‰~—·³…‡±Eû"«oXÉj˜È¿ ¤íg\[qî?k]‹e!ø^]ÅG\¡~ãí¢B˜8ñؾÄ瑊ó,…ùG—ÞÃ2“åb:?å (ÄJ¼§´å/ løåêiz弸Ž?QNCM §è©¢ª%åEyGZ«Én¬¼ ¯Ï¡·txë†Ð\SÓÉï˜OïÚ*ûåª2Ÿ!ê–Ä[I`ÿñ•=Ð _5›=q@¥òb‹3.ƒÐ3ÀÍX/ár«Tî€I?Ï“=¹Ë¯b‘Ó'œ ¹¼Ì0ˆ—=™'Æ „Dn t <Å‘¿w¹Ô0ô{ëå=Pß-ØëîZæzkC½@ Ìåx“£“¨çD6ðïzÒöƒîîÃöûB»´ýÛ—ûÒöƒzܲðqðq½Ëq¿ð0¯q…øš÷óºr™ß_PÌLN,OQNžá)ŽdƒüšÐz)ŸØw E=žÿ%Ú#pó7ü>9L­ñ"x< ^ŸC:þ…kʺ{gïåíÑHü”TÕ½žl$ƒ1-ŠQ²¤{(€å¸á³­SÀ=¸Þ¯¶®f®Þr‘ À2Pl‰Áa€‹LpÅM¯qpËoÅÛ… º®&ÊýÐëIŸi )>}:ÃëÛÞz¿ÿ ±ˆRÍ –ÿ†¿ŠzþÞ·â;ÖNal×’šƒýLšæŽõÖ_rËŽØ}¯ á¨HºßÍçw*J$›OpÞÖ84˜b¼ñ”¯ñ1Oëq$Ú ê™\ËY{6“·½âRÇ €$ sù\õ›^/x<"¯ÏåPkT!ðH •¶(󜺨æ‘Uª,§ÞÄ@² ÄpÀ ÊRÔÜ\i;-+ë¥u¸¦8±eÞÙËS²ìÓñ<Èfc– ’š>'XlqA<ã ˆ¯<91ÅÜ23+eã«ßæÏ7#®¯ÝÄÖÙuˆò5c8–søù<”Ùw¬,1 E{+«Åw¼ŸkÖæýläýâûR5‡l|Ëñ9W¤j®€Q8¯˜W+”G.ZøA¹ C‡ÕBË€wpg2Ù^ň–`È(á[åÑ€ÖK@â  å툲‘]õâí_5ðçâ»pF|ÃÎß)n5g¿„®?M–ÙþÌ{/æF)v$XNq4GO&]AùÖPÃÂhO . Š‚¢D ̹ç³~Ð#ç4Ìû¤–(Ä[ðö¶‚M½©CÃ*Àbez&IŠbÿËŽþŠ¢D‘txBOõƒQ‹”ÔhO_QŠUãØ€ œ~e‘hôéJ;eŠ"×È©TJ†<)UzF×ÅJ2;þÅ\‰ã±“Bð\n¹Y;t!A`ÙŒ°-܇r"°^D!ѨF¡ëùóV¼w8áC…çà®|'ï%oŸ‹3ÈTÆqŸ³ô(«¹R3PnÒ (ƒU‚P.ÁhHä–§ éh¯¥ï¡òIŽÇïrˆ¢´_Á #ðQ€5J´2·*1ÀçMð(x}¸¶–~oP!ªw«!™°¶U\‰]¹h=¡äAW3qÏ•¡Í¦Üe[¼¶üÿ"Çï9Žâ‡L}9¾ÄëûþÝû{sùMŸŽ^Ãn ù8¢ˆQ:N``ƒß7NÙt©ÞOÖªF˾e»ä\ >Ÿ®~åjôƒ¥"•ãŠj^wˆTÏ¢×5 † 1.`eœË7 å x‚€PPxáÛ5¶äŠ   ‚a:Lð_p"®p¾áõ xþ{â¦sà ÄFðr¤P ¿Ão8nC qü]¿ˆPæÄ+ƒ8ñ÷±ž?‘Ï‹pO¢„0EÂÑ¢A´L=#Ê)$¬&uWo¢õ çåˆc¨|äL9—dn—eÊ‹|Ze‘~,Û%x< ^ÿ  ‚?´KââF“§Z-Ø•ñœC§Ýi­úmž4C¾&çÑ;¼òUš´(K¤öê³xl9F†ö¹ ˜%Ç«ÕèÚU=‘Pfùg¸åoP‚‘ðR.˜´ $BÊ.|ü"äc¨I„^ Xˆ2Kr88‘‹8Qk°½%ÔÜ:v÷½M¼·ÙáPzæ°êø–5à*$­š\ Š´pô*çjX¥¬uÛk€y:ûýžz8=|X_6̲‡·;@(”hŸ+À>¼8â-¢Žr£D$>Ç-ˆd­Ëxù ÅßóbŠO˜!”‚Ÿ¥’Ä«‡°ÕÊ1ÞqYu1PCåžä$µs•<4HDû‹íÃßæ Þ‚×`hò¥¯n&]K6”©*mI7¿r|'ß‘X˧¥ArM/ä±Ì¥;fhαóm- ’àX«Ö°äEý]]4‰®Ž¹z%,p ,EX ”;¢"”Â÷L1hÔSÅàû%h!;Ó¤±¼¼ò²_¿dëyº·Þ#o`nU!C¼ó \ñ²–Ë–ÕBLݵrûR#l«ÝÛŒ.ÓŽ¼ºw*ÝgØ1gÛ>ª çŸ0½çН»IÌNºR íì4î›f‚U¹µéûì·F¢GHaÏbIŒ“)l ÏÖÀËÙ<´¥Òy@½ðˆ B¼¯nÉB¨šÝ8 îHŸ‚\ß§ ä«ÕÒµ…tOݓڶÔò`[Þ*}d-Wyé[Cn~%x<þã`—ñ4ÕÓÜrjÓŽu“_%ß<èe]¨ô·¯,:%–ŠdH-@<ä¥t‚Ò~íÇÔ¢¥Ð5ð]íœÀœ€A V‰DbÌGÁ°d/„)Z< "‘Ñ€Ê@êI¢”ŒyR5ìî;µôfß)o¾mœÃ(Ø^dù7¯?8{3lÐÕ>íÏë³À:­Xú©-¯¦Ãªck£/7}4ÐH϶m–žïé¶›æ ß=´~gK2xûÁkö­ºM7ªú^ÚÙx|Êé«wvµ ƃwU€J *·x$>ÇŸ‚óBÏÁ燨¢§ãž€æ _¢­.U¿…­›v';5¹ÒSÁÚ#@éXÇ~9‹Fwé´ j)–/ØÚ< Þ@n¯§tl=õ r…wŸÄš=U6Ëœ ÇÇ)™Þkqt—ºÓ$]A‚:fèt¨©÷œ¾ÃˆyEûˆíT©g£kóÂÓÄl´tÜ9äÉ^ ¢põÙPFÂ9–*ÅÔ2”(9‘>Ÿ×øƒOè:{OÅ¡eúÉá>˜×býwGÏ’ÅÛ çŸ½[²+VÅ5‚prõÈ‹wÁöéÝ}úIX%t»Ü!wÏEÀ½Pìݺû"ZŸ¼~d!}oEçÕïÑïŽ=þùÕw@ðG7ÿ0~1,ãF]3¦¼·ÞsëH§a 8Û·N¶Ä¡Gº†Š`PJÐâÑsqâ_aëyPxFLƒhÛGÑÂ!¤Õ¦;N9½‹gcu}h¶/EªÃ¨Ü¥±ôŠ˜ÔxvÞ_ÕÍÒì‚Eð$x<þà  RMê˲FÝ:èn »Ÿ+$ÕÁòëÎ5–G?l²>–f:n¿u\qœ¢±Ð^å˜!÷ \z†ÿƒ…<Ç—‘xá!"^«Bè”4G¸`f£XŒD×'¡ʬ¾FƒŠ€à×Çw¦Jàò_Ý¥•óS ºð€Ôv!“æ&u}!!0Ây~f>ÕùÊSŸwŒª={t%íÏÔêòjaæó¿ §hý¾(ñbQ*ÖßÂú4SÀå“”Ãuü.‹µèæ¼*3mKÒGbŒÈiOï¶êú ½ƒ[¸êÞ@©ÇY¬îÉ8B„¶šßy8QŸ8 =Fšæ0&ùÚWgÚQnŽÎS0ãX¤û•²Û¯(©ô>ÈÆiyÏáçXoüVž¬Ųø‡M‚'Á›àñÿâV°},]dèj§CLÙéwÛóÙs«°®ƒô®Ùvá‚c´ÝF#ߨ÷ÙltƒÖ1]½œÒ,gº´¥š.Mw­„ éÏ£¦ЮàŠð O’Æ‹¤‰+‚°ü\>]ÃzƒŒ ÐîDø9'ÄÀg½¾ÒmE=kùþîx¥jAYkú½$Ynf(ɘ¤&Bj4=ÇRlG}Š!•\õ2XŸõÁð^G¼<šƒß-URä|vyÕò„÷„«®[oÓÓÆk{ýH¯o¿0¯åx§]èÑÐ`h å–œxæ!DŽ ¨iû¥$Ms):èDnœ}šÞ h1žå%Jí]GÑCrXf«öËôÒ¨cš­‚®NjS¥“æ.^O‚·?áZxˆÖòspܶé¾0íGo›Zh×™Ž^nii×Û–>öJëmz Ö¾Æ~Òö÷­qŸà?Ú»Ò¨¨®l]s¡‚ ‚PD§6š8aœ§GÄ´CGŠQTI;%΂¶L‡NÏPTŠ¡ ¨ j¦Šª÷ÙUg­ç¿^ë%+ÝùÁ·î¹çÞ»Ï÷í³Ïxoe9ŽÅ‰‹Át|³n«Ã1œêŒàÞ@Ï_Äfw„k¶}ö6Áí³ ÏÀ¶ÕÞDL@¢¡3ˆ‘$;ƒBk —ÈñD\›HgÆ¢YØ›f@z(A<«ho£õ Õöš›Ï½Š5ÒšŽçE l$Ú•mŸ¿£ÐôºmàH³Ñ[оb»#C>_»ð8¾_ÄöÃôZîC|I}¬Còô±À+ÐAÇì[¥ðæƒàN–-–BàwP{˜ª-¹–*Óƒ;Ç0âÚª Õ‰êöÿv&s;dvJ2œp<ËY ~WÒsK²õZ\‘מ`Ÿfy {ã¦ûLQdN¼#ØÝù ŽëC[l‹.ýpçËVÇ"|…ói·ièI¼x<‘³¤ƒ®8¼jµO(‰xÜw‹€ÈH$Áš¶#D6äÇ|xŒŽ(AvZᾇQ˜lœ§‡¿àú3€BhÓ{Ès0¢ˆÉyt¼%v‰Ä¾L":F ±ÝÑС#m‘€åŠÂ'q6âZI.uªºmÂÕÇLtܵÂñXq®Žã÷,d"×ò£iªá{À;íd&SžÞ~JŸ‘:$¨.T'ªÛ¯øn ÏPB +Õi?iy<Üôpÿbc'ŘxñGí³›i†RÐîezl_Ðï"‹¨ƒqô m¹S ¢Èí=œÃ,áÄ‘—` ”±ˆÔr‘H+û ö…»O…†È0ÏÛC6AlKÓAHª¡‰t¶šßõ…,ÆóPs±f¿±˜ÿ™=2$bÄ¡B_µŸ_Ô…‘‚:"4ÄÑ0ô¿õ܈.±Í°`7”k.†z5?…¬FáUB¡-B¸¾‡÷yî\M†y'HyÚSÛtšLd£‰ö‰iŸi R`8É®4޼ø#ÕêBuúÕ_ʼnô¨«óC—1NVð¸3>ÃÝ1“¸›gê>¿¤0Uš¿1µvhßg˜§î†o1žÓÍ!K)ÕœÎã.]»ÃáõDH»Ð0¬³;bqD›pkè°`'®…lã葺Å<ëÔÝïàâÙÎ!¸zúÌu)žOr‰û&j{¸‰5æ‘Ï@Üm+×î$ÁÜxN’šÒM³MÚÎ S¬öþ%åê@u¡:ý†ß˜LèafºÚå>7zCÀ—ø 2œ²,mi)u‘ú8íšœ¥æU¦/  µy´þ¨b+h³q¾†Ivþu:óÈ2.LüºÍÁ·cg÷I@Çç± òq Ãáìô 7 › ØÍÂãã0ò4g.:„ˆíg éì¥$?D‚\$„‚Ù„Z ˆcsÄ¿bͶ!öÚíé4_-\K #Aºmø Ï)‡`‘H$;&a‘Ĩ;=ðÕ®«`7®}8¶ý3W[%ôÀÕH¦kŸ½ˆ=z’¦ÏÚYÄ#!ÞÑè¡3O×ýM¹^Ù¶6¨k'é¿ÓŠs–vÿÔ)ÊR•–Fy§:P]~ëDÐH@ê°’ô2»Ýé‚Q¨Á?pu/²·8qOÚC¡ß_á`îfˆÓƒßÖD6SÜ[jp&Ë›ÓM8ܳ'Ù«Âú©ïrgæ/ì4Z­½wãꢳ[ ,Š¿Áó÷ûñÅsŒ nΰ-âèQqì¶ÌÖa~B‘È’Eû¬RÄlv˜'"ŠYõˆÏ0_ϱ;XF‚!ì]Ø·X‹ÏP΋C;Ö5ÝmvÍþí>寯r´öN¶1çLβô]ÇH¹­é1œeÈKÙ÷o–iwžÌË5u ñ^]Šnp…ƒAÁj7ŠOÜ œ.:<ÿBy§:P]~SxÛ&xØæ–É ®3Ó=ßöû´&½Áªüƒ’æ.m¯£s›ct·tnØaNЮM¦Va½ |[ï& ¦ K7§ñÍ¢X×õ€K8?{ŒŸñͲåsÛ`FŸ‘ØD÷eäÔ®¹¶äÜ‚éh £Û1Rƒ™‹ùS0²¸ð¿Ãš^Ì;G‘Íõ·!ç!EšŽùj1ßU«šX ϧ÷…ÿ.¬%Ž«×;;#å9h,ïzüí´ö¹c‹ph÷vvžh<`,g§÷BL%å´úÀ” ðð¾Ž-ÿx¼4&èþ¢‚ˆÑ4F©4ìh8n¢={t.å•òLy§:ün_ c2?ʈ`íg?†¾ÿØ÷´½@ùÅ JŸhFÃ-Ó­ž¥yuäºôf†V/ 7™t;0¼iKPfVï®^W·„\iÚ„»]¡ö8^Æ/Šè=e€ë¸þ¾¾9ûÊÎó]Äo÷ñÁȰÎK€Ç§{C‹êܹ$¢0ÿá¶‹˜ë²ŽÇ³\…B[:iƒñkE-1ý¤“|,¡f¹lÇ·vKÝ6àùHw.†ø~½BSãå…ôó A»Öû.Å/|ø÷w#ûõ¹\´{(GâiÆuþûd—>Ì&˜È.hóJu)·i·JU=ާêò”0¡&ÕjJµ'¥áU¥º^ê¨#×)”WÊ3åýßè;£A.¯,åDÒ&ô*âpwù fÌJO¬ì¦ëÒ,8V»½e…zPuš©B¦¨GhTD¿ÞD4+QЦj¯ÉV’E¦Ž7¸ß –•ëÊ"õ7ÏûkÀ3¼€þ €I<Àó€ë¸=¾"Bqþæ¯Ç"iüò0ôðͰ9„È™Dæa^ç†é%}ûÚÎ’t ¤“|g¼SˆÐLÈŸê›CγJý^G`oì/A Â'j“ívés¸“Éõ Öaò7ì|¼Lú–BÝO²J,gL%yc¯Y±¿ê8àÝ$8°XÑ⬮¬N«ðÓ¨[¤QÞ(”WÊó¿Ý‡"±Â6(JC&Uøóø‡È–¤Áqý`E@¢™íÌ\‰Û îºQ{n•Þ” Zî´ë¿ÐÞVëJ1NQƼY„|לP¢!¯8)OTN_ߢ®t$£ˆGÜ`beÕ÷Оáº{ÝÌá?ò»XÂÿ"0ØÁ úÁ/ø>:ÎȃP = r']ÜÎ7ðSÄɈ˜Žù_A>‚<‚Œ ^2Þ‡é°"ˆtÚêø£Œ"éü¯ˆC@_ÿÚ¡fýƒØ;þ:ˆ–7úyJ(ù‰bul3–7ß*)Ü­ÜZ¯_©=®ºÐ•RâÔü™jeA{M°þmåž[”'Êå‘òJyþÝà_ï$Nº…ŽPÁíž»9䥬¥5ò‡ ô†ÅØpÝfhÛžoç=ú\:Uɼü‰LÛ’ªÊÔ…¿j©©ƒa”!®1¾8 K–r ‚Ù—z ¶JÛ8Ÿ|…Ï,3Ã)ܵüåXSg÷Xá¡çÀÞ|‘Pã°Â¯°Î¡" q@`9±0™"Iïéxþ&ä#×íñk Ç|Û}s¾õ\Ešö{ðÒ¹ü3ÿ{2F0›É¦OK»fI#\gúA¾ï%y>Ø]åÈoºY’Ç7[jêÁQe)-q-GtaùÛ$GÉ—?ÑMbµÍøvå…òDy£ø}$}ðîl6ËW•@…&¶á:DŒ¯7ZÉÞ¸Ìöó&ÜEŸI§nqæ-›qµ»'Af†£òÿ¢õ4¤“ñþ)’Þv8@®ë*2½'Œg[#àþÑêØ†/Î)l¨©Ét”T¯¹w°g÷]/@@ Ò•kº2½¥âµ÷ÏüõùɀˤîÏ[áþ Ï×ÐÓQ$Ï}Øô…¬B56wXÍÿȇ翺‘ýf¨âý¤Ð¦S²1(þ&---'-7åòò‡øÍ ·›ˆ±Ýq°äôd5Ú…Þìî‹æ‡ãrÁû7õ¥S;GY5aœ€ FÑ×Îzî ³.®ì©¦y fΦKé'+ÎÉÎ'ï¾Ë«êlþ ëJ‘¨î€Ì½:¸2¨Ñ¡é‚*S"iž(]Ѷ\¹IT/ì\¨^ª(ª[gꢧÄõŒSº)Št‚š9ŠÌÚtëLU‚ܳ^Ô¹PRÖR^t(ñ’¼loó“ä©çrKG5…§¬ìEðb¥-ýÊÉrwyÚ¡Ä»B±ŸJ±óúÓ+Í#5YñõÛ r_þxNÒF }.µƒÚEí¤vÓrÐrÑrþá5ì_wˆñrÀqLæÈ$²¶è3 ZzsŸnŒiL½rÆÉÒˆ=“`G⋹³çY5ÏgFÄ(芥FOŒ{|X5Z1Vù„ýÔÖܾ[’ÔÖwøQ¤é4½ŽÞ‡Þ—>‡>—ÚAí¢vR»i9Þýnà¯;Ì,f2g©d_Ý´1ä]õä PÓ¼únëýÚÖ ƒB-0a¢Ûø§é#‚ k¶6|Š,¦Ê6ÍHøP 5´1ÂiÆÙ/)Òtš^GïCïKŸCŸKí v½ûåÐßÝA&àþwèTá>"&sx( ì¼E&š¡íÍôa2}™d…"M§ùèuô>ô¾ï~;øÝß;x÷÷ßó÷O•‡ÿp, 'Ï"zTXtSoftwarexÚ+//×ËÌË.NN,HÕË/J6ØXSÊ\IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/face-smile-big.png0000644000076500000240000003276212536324427031635 0ustar philstaff00000000000000‰PNG  IHDR@@úù­ pHYs Ö Öoyœ vpAg@@êóø`bKGDÿÿÿÿÿÿ X÷Ü5OIDATxÚì{wX×ÖþÅ‚½SQÄjìÆ»±ÆÞ¢Q±—¨ jì© "((‚ô"½ŠéÒëápàÐAp¾µÖ°Ÿ<7ÿünîÍ÷»ß½7üó>g˜™½Öû®½öÚe¸¿þþúûúãù``.Ï[Úó|\" Œç]^p\§Ë<>°çóྯ¾bÈ®³ûØsì=ì½Ü_ÿjyb"Ï¿Q¡:ñ¼wx’ç£b9îkSžXÄq]ƒ`Ê×]Ìó¡9®×øý-Çõ!ƒì8®¿Ï¿·å¸²ëì>ö{{/k‡µËì`vqýýYBÿŠ   áùØã@8xãºÜü9®§5´„ãª~ÇqÃW¾å8ÍeðÜRŽ›2° ÇÍùס'ß•÷ >Çq+^ñÁæ·:‘!»Îîcϱ÷°÷²vX»Ìf³“ÙÍüàþúû{÷ „Õ—çý%ÐÓ¾"WC„Á §®ã¸‘§á÷6Ž›êÍ ÚÇý°JYÖ凌ܽnå[·>áÏÍÊ2­‹)…{–%X¥),ÏyY¾ÃêÁð©´BÏfÒˆöÆë½lÎŽ mk«˜`ó‚0Þ&Fm\W°ž¥¢#•–¿·vPȇç*lòY…{VÚmí«ñÜL¶ñež\²^7Ö.³ƒÙÅìdv3?˜_Ç'èco#àž÷{Ìq±çLâ²?rÜ 4œãÆç5‚pë–}–ŽtrèÞ|ãFé«cË£ö—z[Ô¨h8]¥øì”–Ï×íqW™¾™ç›~ZìÅó-·£§­{È󭺉Õ;vŠSú9’ç?û§w9”Møí¡J@ÍÔT¼ÞªÿÁïkñÉ\W ï) ¶]ÜÄóõë<~šîÌóÒ Ç­*ž/¶jR½Þpº|†M÷A^Qû¥­/f÷X㳓ÙÍü`~1?™ßŒ‡ÿ"á-,~àyŸ|H•ó!uå8¹i@˜%¤ÔFÀ|$®ÍÙW§ëžU¬²óèýÓ³ÅYæ •¾’ÄI$O µlx¾ÁÔ«q^-#Ú²Me;§ÁóíŠ%޶W~vŽáù/†5F~±€_êNE‚Àüœ†½ ¹€«Ϥxt`]¿ž¨L÷]š èVóÚ, ¼DÁe(¼oe颇§x¾­GÎás]!P†ÆWa»‘~ºó×ò|µòó.ãÜx¾ìˆåqå’8q®}s­g#˜Ì/æ'ó›ñÀxùÞä@¤Êlèõ<²Š,eø}RçH~g°#7õû³bξ©×ë±Å?Rr•Í­žó¼T;zbzðëU<½,ýñé½ ÈŠ²³Vš ÐÅšã³àG¥„&¶v+Ò©$Öˆí÷kO ~™Ý¸0¡ùá—Ö1¸”PÚ\Þqß zΦ6™Þ£PÕ“Þ;¦è*µs=uÜõ¤&?àܵ­¬Éê.Øe•ƒv5›‡Z ‚ÌØ%V'â–å®á‹es+ï<ÓéÝÍz,ó“ùÍx`¼0žþƒR|Àsû´!òÇrÜ7 €*0F®tâ8ùušnV]ÕÛ]zl=Ä2g«d¦ý<-üÛ€m+•€XÝŒz·Q±¥ÓT”©¾l,·lÊÿµCèC$˜Am( 8®qanst‡Àúˆ|¯Ï•„—Ú Û «éú ÂñmË;žË"”¶Œ&\Ùø\¨º~ÔîXIÙq.ÿÙµ@ÔþëZ9ÌÉ3RV«^&„Æ{»•G0C8~=NÊó¥÷,Gçl­ x-×õèq;Æã…ñÄxû·"AøÀ%àÀ @(†ºbÄ?両¼g%T׆âØg«å},äŠËÌû©œnö©-t›=[RzKÂvÝ-@o[Y—'n@¬kÝüh $º¹9/‘ÇPY9–Ô|G‚ăðˆíõ§„hxGx¡10¨yª hËm~>ÿ·Øê×q_&anG¦xÒ´¸#Ô;Ú©'¬ªÓ!T¬y båùŽÀŽ­ÖŒþþ«U>íI –É}ѯ†oOÎÎ…b·Õ¶:Í>’F½NYÈ1^OŒ7Æ#ãõß Ç;õ ö/†1NŠâ8Eë/ùàØ´Åi%­®÷›êkQ>Æê˨>¯QÝ'z¹S{ÖÒ+€°OÒ•^gpLnLKÃWݪW2€„‰ÇÑ÷*E„¯$q„9UGÛ¤³ImÕF„®2®#@Œ…À¨_@¨ÔpЭq aBGƘÝÑqßµç ÏË.é8Eé—Žöä 㪴­…Lôù³Øì¶,ùpUS—ôÅ6R7//ôâSÏ+{ Ã=TZÞÆó•ñ¶î£_òye>6—úõµ`<1ÞŒ×ÿ³R–#¥¬ßzüGpàU›Èÿ@'nùù¢Z‹nÖGw[ÚöÒ7ƒÜ6Â6¿÷ƒ|ì_²¹!—Qø&ïÌ$²µ[áB¿"ÂØBÂÖµDt÷“„ËŠ„ßVÅÅBO,ëB¸µÂYªÒ_HÝUí„ÕÁÂr„Ÿd…ë5”º ÏI¶Þ/%œYVFíø—4*¾J8£è'ÂaE »à7Ù[¼€pLa-BzÖðs»Ì8$Þv¾p·±*Õ _mܳ ¥§µZÐ^©·Õ„W£»2ÞŒWÆóÿ!ám¼’x>2Æ®Èo …Ýþ²;Ð"¹±ÈÈüÉ€9Ñb±­ÑØ­X̽¾ù `PØÉÌ‹„¿–‚‰·iTú( ʶùVö JùÑ™›óš}Ò¨Ç6û|Ü@˜ñq!bËè43ÂÛÑDôô컄â\) q·pž% ·–„ßz²$€pö` ”a„Öå‚à¥êÂ{Šújæ÷¦÷̉£vc²º꥗‘]Íi?–§}+`úY€ÄææÌò#ìC?7¦ßj÷Ø‹vDÅŠÕï°ïᆨ& €F³˜ÍäWi| aZ’ŒüŽøðy©¼ß‰Pô•éiô&Äx#¶$Ç%Ì"[õ‹õma¼2žïL‡ÁXï•óW(ƒÞƒiÌxÞ4XªÙ“Oìä‡Xø–Ü0×WSçóywY¹’æéVw{àÈ*5ô)Ç«nO´9Q?)Ê ±.åý{$¨î¤/auW½S|¦!Ö_õ·BlØLO _OÄŠ± A¦&(‘@C’Ÿ CHÚAÀ¬éBªþ4‹Ð?oág˜ð=¡¨£ÈÔýTEÏee‰ Ǥߤ÷nJñ vÎ&ÒóMgb³ÈŽ} dWDH²35 p’ß0Á~_9€‹u)~.äoÿ„§£»ÑåÄËßÍÐzv®áÝó8 òŸ¹ V *îX¯T×àó*7?ûU¾Ê—ñÌxg:ü« xþã~aÛš”[cTw˜ÏsÙ¥øÄ‰ÂΦžJCš£kOºnÿé»2ßà0M¬^Ol—ÉBûâ´©6T ¢V”qnn˜*k>¼ ž&›ëLP«íZEDöóÐ!b×ù4ᧃ I3B°¬ŠÎ öC¤!"iaKjªºAHÄØÌÛBfÈÒ%œ‘¥/ž™Ix'c*a·×éùÉk„ŸpDèñ±C©Ý´ˆ‚ðÁÕd—©ŸÙyÒ³˜ì¾òÚˆüy)"ìã‚¡,ûõµ2ù}Âw~¿ RíšÐ=XH ^CkÒÀÛ¿v¿<ø*É7WVn^U\£ºj8Áxg:0]þ·§w*°f.,eà¸A]ÚÔrS—,)èkÚ6¨wޤJñiáÄ +:ÒkÿY¬‘KÞÙÍEá«ýÏÓØ§úÞ#¿¶¯ÿ]Zq«y=zGõQûlEš`s±úµÝDÄš7ÏÕ…@x dID¸§O9 ð±#¼Âö@NÑB ˆ^–'*“I» cRæ =;uáôT¡¦ÈLyHèœ$#’Lϛǽ¢÷¦ COcc¸'á7Á‰Ôþ?]²+ÌÓ”ì¼ìöDÜ©‰ìïý´/ù3Þ{„muâÓdô_Öçõ%âAÛ¿ðIí•cä©fW€Îmʼí×€KbÅû3ˆ…:à_ñœÇoÍic¼3˜.L§ÿ…(Hüm“¦‡¯t–6 Ë®ØÊ/¶¹Pâh~@­3ÐqÝ+r•!ÖäÙÝïèã¤L箂ÊNÛ Öð«ÀvDÙ®×(Ðx{XpU ™Â "Ž·Í#B;iÁo]„{¬£@¨÷‰!ÐU„ v6B(GŸ#<+&̈ëÈñ³ §Å_„F¼%:D85f´Y" ‡&ª%t¯Ií÷÷ô$»jݤdgÒ‹ ~§}ˆÐV3ò¤JæKWI¿<O~Ïu“'æÚ^ T«²—µªlÞ¾Å)wöÝC¸·á¯¹j… «lõo—Ûoè5ÈæÓéÂtú…¿ÔÑóŠ:нs¸¹Ñìç£ÒÉ}}q^£‰ÏÐÁ2ûjÛç7¾í‚#e¬îᬥKÞ=™U¾Tê}V>b$bÃ^‘? Þ0 …îUk챯KŸX÷D¬êiÌa-Pøð*õ˜^–[ˆÐ_íçÁîN‰ðP×í$@ç·&„©Þ]H˜Gþ3„±9è aiÈ rc˜¡wÄäl0r`Çï_φ«v í$ 1ÁÇè½ïÆ Âû Æx0ahr "{:½h&;?<-Ä@®>j= 3›TéÑ>òk…‰‰à§U6b­ö›õõáÅÄKI\ñT=˜–š{ûMÇ Zö;@‹oÂÑ#+Ñký©à‘å£Ã‚eöL¦ Ó‰éö'À{MaÌÚ»YËøùA?`Ä•¼µ9%Ÿä8²t£Åµk@‹ã»†Ö8¦7]v‡¾Páì`ŠË,5«ýÏ“ƒ“ã·#6Ýüø……jß…®Mö4ÅëÐC JîŽ% ¸?Ž®3]R}Ì2 «±³«d\a_K‹}¦:ÝüpÂt¼¼Ì6‚•¹î—ïC;ñÁsî,„"©*Ï äÖA×Û xEÏ•à˜ÿ)Xù”ßôWco‚0ï|-Zá·®‹®¾&È_8Ïj+ ]Sóô  ru¢õ6²ûè£!  ¥äÁ=úÝþx?v€Zmwð—Âbg/ÞiS%© ÊŒƒ_cMKàßãjGöù+O1ø ]yŸçÅ3¬ï©Ã´¸ÌËV«W”ãH¦ Ó‰éö'@D¼Ù_†ëgysô¦ƒá=K§½Æ êˆ‹‹0Ýó?D©o8 X­lWC„è^ E,;sžÐéÄn"Lîì~úÿ‹0ï–ŒÍ8wvÛg¹)_õ@bªwØ&â:]å]“Z\ ®=rÄ…XI€ÅAÜ«“æÚsH”d9Véo í Ž]ìp'ÔvÜ÷;„s;O÷KÄÉÄÀ/‹Þ#µ7ÆIcUOË-ÔÎg3/\&ªôˆvTU?±ƒ±<`…ëý«udg´Á !“AsèÇA½1ˆåƒO þ4¡ÿO¿|3ÔÐ:p•¬À³˜ì¸`xAšëö×)ËÎ>¼Jkøù™8­N=} ç:¾™KÌ¡½­O¤]¡&¸d®Ð_1Æ—éÄtc:þà-z|SJC’·?·vM§Ülã)ƒíUUÙ‡h­ÀÒÉ_´â0¶9¹ï®‰(H¶è@Fl½¾.Žaå C•ç­Q¾kÚŸy|á>bIÉÁÛ„~ C,uÀœˆŠ:vŒrÆöÚyŸ>éa&É­Za„™!A²üFš°¾@³ž•Ÿ åWHâŒ/Sñiøè:>_³Ú²<¯Zì`G¿ßX‰ó­ k X£ëÖ=è>Oëú}Ìw¶ÔÍl ÍfÚLÖb;’±†_¨]ÑÝ»dǽ[]É®ûŽ£¹òú–d÷­³eäg×óȯçº[ÈÏEû66~—Ÿa‘]c{À Êl+œVÈ=\‡ë”…ɶcæÉ±ÖÕÅÿ¸pw'rƒ«WÄcÉéP<.†‚eó‡Nl\Ätbº1ÿñ‚jÒ¿T ‡ wVôsŒè|¡gÁe“· [q™Æ1bâqœ,.sÁíΤ]ëëÑÀô²Ó1bs¶îÞûø}Žáؾ£(ìôB@¥bµÃHlaáö•èxá• DHÑüM/‹=wÖaS~&ËÌŽ\ ¢|NÕ±zÓÅâ‹ã‰¸ì+O%q7¼«ŽÜFøéÞ+!ÕM |b¬M(5é‡X­ü°3áø‡ý;®¯% !WÙ EÛýí„÷ï¸P;mÚ)ÅC&¢±†*êÑúw„ÌõË>²;ýXoòãÑ[B€ï!?=¶X’ߡӱc­Ýf@¼,8„p´øòÔ_à~|.ê¹§‹ÀŒŒMæ˜Rûox„“ÖÐÂåPÔÖ­u>¨ ´dÀ£JP‰åžïëÊ_èÉtc:þÑŸ¹P_¿„Ý'§öè@8'¯éRi'ââRlú¨D)ñâ–Ž.ø/tÀ X½´®«¥Núþ&àçô›Ë*1‚³,1ÛsÚÖbdçŽ[˜×ë{šæ÷^²±Àæ¹IøbÓíñBOÙ{š¥»Œáûc‰Dô¦ÓžñzC[ $$ÈË_“@3¯N"´¾þ aÎÍIÈí·¹ÝíoñVt‡Àg _ÝèB¸üj˜hP£àª¨=}ý¡dÇí_"È®['TÉΟù“ðö5Å;È/…ï»f ù½s™&v„¼Uß?&^ W®Düd³VyËÖ\c 83cðr\ª÷$»ÒökŽ{ú‘Ý{·i‘ð:É/ÙêÕ$üÜ%rˆ¹ s'Êç´ÍŒ>¬³‡!Oí=3GχChZã, àØT‡™VÉÚ30>¨Ì{£a#fA 6Lv­Ò†ZBìb5V°`ïcå¾.1rL7¦#Óõï€8‘ðELpü0¢¡ÄG‰ãæÙç~e²¦ÿ€üÞååiõ œ3µlèôíìI§ "o‰ü']¥L`¤Ý ‹¦¤ÝÅ@HI™èŽ»êi‹ÑÐvÅŒ:ý0µ¥7éìA‡Ò¾™Ž¥xL?ˆEeÒÄ9áýj óßâºZœÖâQ0k4бXkõU"Ÿã#¹ñ{Levxñê @@kxÿì7‡X©¶âv¨êÚ=€CBTÖAÑx?±,=¸zýBø=8Ä}Ó¼N(\_O÷}·Nž›·®? E¨öÚPzk©µ5ªÔnýê²ããÊOdWÚò—dgæÒX²{Û÷SÑÄ ¿&¿N|W~BÇè©<íÆ”o‡Œ[:&Xcd4ë¬Å…Ÿ´4í·ÔNºI2j[->|§KÃ1ñ6“Âà=]CŒ‘·†½®8ý•lµ^¡ üæÇ˜º X–ß›éÆtdºþð, ªF0)¨–ãúËFzšqÜò­Ÿ^?8: E¶KÜÍÂY9÷æ^dhøÐ®UwM]0ì\LŒ&VÉÓã{Žé†&^½ ×’ûކ±=Úüúu%˜‡Ÿ~"=ÕuìÐ7ïïCÏizš>¬ó¶úhX@ñ˜p4 ‡-Dxòî°~ÎPô¥ÝˆÍò‚½€,qrr¸“{4ó .épŸlpºTt2ÿMÊ)‹æãSé™bÏŒÁ è™Ò¸ÞP~ ì[Üô©Ð+?—Õ ØRÞœ=„Ô¯ÐË3d×Ù}¿=WvßÃÞËÚ¡vóS®‚?Ńh—^lëov¦yÅŠÑnæG‚¡àWœà§¨»ç5ô›ñ@¼ÄOJ_0’ŸŽöìþaÂè[˜aã]ÇLÇA‘òÝÔl¤)Â-1מÈsÕ ë{*(ù§Mâ­”íbº1™®Ïnß"üFŽ}*%Ùÿ¦…ãÖ~ 5ʘ߼_liÑ‚BÖ{:iŠàÓ¢> Š~·Í¡ƒïªÚ ÷Òâcjz_£ï¢¨„hÇølÞ$Ö+5ƒž4VìRRxH,.ÙŽ(JrJâ@upY®°×êTTàz^}}åKœu4}+‘à1Œææ*WrZõ¥n¸›ÿù³TŠ+mÕ¯qlm¿@ø¶¡ªq¾ý%¯àu¡ìcÈ®³ûØsì=콬j×ÚAZ¦¡Ì.fgÝ$ÁnæGÕ6Á¯Ê—‚Ÿb±X·Äñ7’;ÅĬ`<á–T¼¢ênä1aŽŠ 3«({Äú^Aoä^ €ÀÙÀ;ÀË»##àýŸ¬†¿ˆ7Ù?X­y?ÓéÈtýûX’}3WÑö¶œ;Ýhï Kí®â;J³!œºªõÇsoïoQèÈoPè––ØéÊnhxÜa%C\P(Q’‡w¸p‹Ç´E)óã!â%¯$cË5,ûYÀÒçàHU•ki)î~Õ+›«µoÅá= “++Ññ¦3UZÄWáØBHA˜€¶™Õã±Ølk#á.´þó@ïaïeíP»­R)úÛrí`v1;ë<»™Òq‚_ ú x¨²²lÔo<¤}“².jˆÉå•{ái‡È3ŠUÄ£ø†Ìë§|ýŽÖPq¦ß#®`¸ˆÕÔ€·@ëmÊ`_ÁlãŒÁ!í®L7¦#Óõ@iWZ·é\î£õâƒzЧ¨ÖâÙ»)ªÆx'ÜAE ‰‰ÁÖ+òWì‰cTx…6H}q×&€·¦G¥¥¥è‡Ê÷ÿŒ‡ô›iiÉÀgü‘kž#æãBT¸©‚ÀLÂn±K•.`­Õeø<Žâ»Tu À‹ ̸U‡­{(ÏP6Žü¾=éöûøÃC@Éæ—·á—OêF{ú·ÈU0¡8 |öì™j_Ü|õè§’„ÓÁз*€žò\-S<ŒÄDE)1©ýo·¨G‚£‹SMÀñÉÌò©ã!½ ðb<9ÜY6ª mbk(äàÁ‘¿‚„xmQÊ\ñnø{z½Uàf¸ÓT*$[­f*¹ÌŒ_ ’µÈ1Ý~?üá"°Œs…iĪ'9Œv¸VZ®ñø±Â+›ŸvR ÁM×7Tµie*Xe"žœ‹‚EbëÒØXJaz¢»8¦eo}0w4Äcšz¢Qø$ +—•-Æ5u±…Ó+bŠ'Ó˜èWT°]ÒV²ÆÐÄjåÒH<";Ž©²~RÝÓŠ%˜"Þ‰õñ€V“Se6¦È ‰5žÕmõ«º§n?ûWµcuÝvHºXÚïÓiß9°¶—+- bÈ®³ûpºŠÏ±÷°÷²v¨ÝtºñLC ÚAvmbvÒØ?¡4í7?*gˆc‹;cÑ ~.´O/ÙËxy/!/Ù•ìF;#oq=^ÞÍP4` O3„­S郛ܞ§±6¨¿æ8Yu¼§»e7js½Œõ¾« eºý¾üÃÓÀ2w×e·È1«³‘g¿·E¥ÏÍ+À4FvÙ¶Z%#ÞÕfžsO艵8G¥¿$ÔJH˜XT‰£ø´µÖè¨~³}[l_ƒ¡†¹JYC¡hÙ•ßO¸¨dŸ‡êº®èaNNËÊ6æåq~…kðX…t\q=°’õ)mĤ®¨<wùoˆoC{››_TŠpèi©ÄáÑÎÏÃð{v­¶™ s+¤†¸öþE‰ýÅMšÀ]g÷±çØ{Ø{Y;xj Ñ Û­¯ï_žÓ>Ùh³³ò¼8«ð$ùñ3úQ<©èÙ§žàgRÁ\ô3B^^ö0àáIî8äA$^Œà¾bë{Â,*n¹Bà˜XK%%ìXÑÍʼÐÑçÆ_ÜçaQX·çi¡êe˜½„Ì EdÎ>c—þIEL·ßOÿðBDÃv’¦;g yp£w[âŽbÓkÃfà|÷ÉQ•$*B\ÔLQŸæ§p…*â:\LjµP^Õ1¸BO˜å«ëQ]}ÞCÅz-%  ȋߖ{‡q=ᥕF4¥þ—г¨# ¥Ôoµ_åW<‘pÇü†·È»Lf—¯š ¶ß,M+3פwqâ¦Ûï‚þðR°,ÊÖ‘µÒ ä{yv.Ücb2´:b½ S~}¸ÓÍ‘ŽxÚ3\­"ôqˆ;14 ·Åia¬>Í®ù[á†Ü•î}ö©C¤×ŸÎðW0rƒÞ¾ÝçˆÓëÀžêûpÚ+VŒ§ŽtpøwB‘=¢.¼ùLSóÄâÚÅxÇŽø€J¾6M¶ j «‡]å]=;3Ý~¿ü‡7ƒ}|àø±Ê¯É#]ïÒzG?/ñÁ®Á¡â¡–c†÷Gç;xŽÕÝU4c„®P §jõGU{aV€Ó€«*ݵ¿ƒ%Ô¬-ÍÉÉ@„µD¡lãal­Ì.„’ÛÃ1 2È®Tîþõ>ÜG‡¢‡¦ëá ”­²º:à2cüQZ©ˆ„i ¦¨&BM@©lI¬¥¦&>:ÜaÌ[óväæfm2A©ÙAä~æÏuÃâ¯âvdÚŽ ãE[5‡ Ó=å§Ž>„¨h¦£_Γ°Æzóaš9¹õ †*‹²è6ü5¥†ïž«ó`º0˜nÚ±ð/·×ÂtbKÎUØgîÛùÎõýÏp&}‡mÁ…'Ê£—€ã \Ä3ºÓ¬ÀtÎ*, ý5qWºùVˆ»– îDOU¿N™@W- Ø’²‹ÂB“¤<ènè{.§±=f‚ŠM6íš3 UüO{×Õ±ÅïS±ÀCŒ(‚ˆ±'†€ óDĨĂ”¨Hˆ®Á ¤H@šJ¯ŠÈJKQ”"]Ú.â"u¥Hi¢¢, 9gȼ¾¯)æ…ýòÿ1Ì9ç̹ÓN¹±usp&H–Ò’Ãtké['á¦&{™r'à³¼VÅ8¢Ö¸Éš=|¸z3”ŸaxtmqERœ6(”x÷Ouñâãõ¢çµ¿P:{´Fé®>Ä _‚Ý_!Ÿü©«gâÀóÖ.©\SP¥x÷J¹ó•y€“2¯nyƒ1Ï)-ôù‹SÝäŠôE¨=*LóNY˜à3Ï늶§ZÑq ãBÇéíId3̬ä4CwFŽ5½ÌË-iúõç¢-'ó?=S•m¤3è+ÉÛjZõÄ|i«û§¶,mÍZå~¢Zø6ÿ䊳hßç^FÅÆ”:¬ Á7¢ÆJŸôTmŽÙk(§««u<µ»| @é¢t6̺×bbÛ¾ù„¯„u‡qªçüB¾=¤ð¸|_•CÖ|F£ _”Œ#º HºI'µB{#×ff%D÷Òéy°%¯˜í^/iò\”ÊŽÃú¡"Ä”¼x·!3Â’õ>aùè|x÷šÓ8‘)¯k5½Ôf »·‰\~Œ7Z=^Ñ–£~Šž^I¼ø³á0*@N“Îx"€]j¯PPù•_YŽ*'…Á¥>ë{е¬NÞ47@ÎTîtþô,bÐqç¨Íàn*&8|¿âÔwßZá‰õ£óœ}¦N¬~ÓXê׿Ìg‚Ð÷CØ×˜¾cúdõ´Á/Xmî€S~a²é@éÂKú<ò÷éí6D¢HèÙàugH`„ÉwèL)Ûo+†æâ†õ¡Yðæ-nLÈCs+¯c°žƒæÒÅh-Žú¥;ã·Uüm€bOEZNëÑçh;´]Úé×­šH‡SDU^×}Š [b·Îìm¸„îmEEÀb”~"w2ð‰1~ÌÍѪ˜]zðZ9o9îȆ~ Âw¢3hóü€oä´`­vùqªUõ*W*g*w:a® 4U€Ä‘“yßbò¢Z±È #÷$ê;/FîFÑ:—‰šæ³M;ü÷Ë=DEKÀx‚¾c·ÇéÜÆ)/§É|¾ùÜÏmbpÀ‹U,¥ÈZlÆ#KÂã=b•µäH¹¾Ú+r~~‚þôCÛ«ŒŽ’4ï3_â±³™uÑ×âÆ0ú j,ÍÞø}Ëýò€[ÛNUÝ´jß-8x‘–“zåX>GÚa“v_ü úÑhÈ:3Cê¿72"oº7Ò)k.¤oéotÆÝXîn†Ÿú@žð¥ÇSF>ßHåú¡â¿H¼]®;ÞøŽpß•×`àË’æ‚Y˜kè8M¯ù,•#•+•3•ûG”-¬pì>çŒÜ{Ö§sä®t0ÌBµHEëX&á¤RÁç8‰ÜVµÆRÿUhChoÍZÞ„SiâÎgѺ•nAnÀŠUsIÂH/§Û€ßÁÀ–pÌ—>~àÁz9*ØÝ…‹µ³ÈÅ’‘öÏ€iå»ôRqLS‡ê3¬LÑýºišó"ÀØ–én<Àô–—^ë)’òPŽõæ9Ï«ï†ç ÇÒØŽW~_/Š(Þ;èèypú,"t –¬cµzµÍ§áÍ?žÐ=È?FøÐ+~îX†îá¹+0²ÏþÖ‚ÀÇš°ì1ê9@m…y.®ÓZÿ+7*G*W*ç>QäÛ˜»i˜»¦øÖ¥ÇÀÀýÐöÓ±Ìó¾ìgƒÅ¹u± Y¾/dÓaJý.$V~ÝšccÕ£ÑÕ,£û<^ò:ÝÇ.ÍöRÄMaù8O MÙ-×*@ýGáv $(õÛã/eøsÍdˆâíÍ&¨½Gƒ”OÕW'õ–é[“ç,ö¨`;š 5 ¾Är_(Çz; >gDž›ò0ÚÁö2¡],7›¨^Úx<—гÒNŽÐÇ"tÅ”û:em@Åz»µXÖyÆdzŸU{»(ÚïÙ¼!mlôŽ9sYS?«‹¥r¢r£rü0Qäß&UìÛÏ’½As“K”ƒp:‘ÝfÏ0ÆÆ‰–6ÃS¬¸ƒ5^&Ò#!-þAÒ˜ú¤séuŒês¸;ÑJ¿É{e³7ü©^x:°®¸TH+î=C¬– ¼ØYåê³ ÿ® ¼ÀL«ˆtÒ!Rn÷Ž ÐJk.bY™åÀ¨"r¡HÊû¡럀zˆ/íºI;yÐö'r!•`Ûh?Õß’¿‚€n•€.Ì,ät¾~hŒ™‚‚u olÁ=LkÞe¼ ­-õÞ&³h$$±Ûvï”;ÜA**'*·SÅþm“E‰ß» Æ ©rg6LeÒQ‘ËmÀgM;|þ ΄kÑ\\ïOÏí_Ñæ¯&‡V®3_†`NôàfÌ’RÄbáù¸@ÄNoÌø¡>øfVº„ˆá-„‡c$MÁµ…€î5ˆã$WÑÚ°R@ÛZÑЯk„l6Áš:Šäÿ³I¹{íPŸ³…çgC;Øž´‹9Æ&c?BåÊ;!òx³ÉïÅèç×Î&vª¸¦§Ê° ~—FLðæS¿ÏVUG—·€Esa&+ÙwÎKrVÿŠð'ê&Ü‹î r r¡rú0YôÿMºøa•ôEø¦þ˜›À×´%Ç!†QŠô{{Ô€‘=£ïh=qJ¿¡j‰{TÐA“E€3<´‰°ç(ÁÝøÍ7xÃØ«˜´_¿S³z-¼zæª;ëâ=C©„ wÛyWžãT]ý&b>`Úcîõ|’.æf2b­{TERž†å¬¨/˜„Ï šV´†Èâ9½t™ßq4Êp­Ñ/{ƒöÆ%%é AQ·GYmtÞ`g(<Á5=p3:oVuz˜I ‡ â…Ö¦¢‹ù|‘£€Ïu”o***§Ì#ú&öÂÇ-Ð0„œ¸‡Ù–s ¤IÌ›{ЙyçלpØz±(»zbù^·U3“…f_ûõËy¢óèåÉho· Û»ê6FÚDW[ˆæäÄOtt` 1OÙÆ‚é·È”;R‚{‹Ü\ î|•”or&ƒ* Úì³ØóIù),y;· ëõûf®?:ÚÉN bMǵ;q£Ž ´AÔ3µý¸‰ +]õ ¦ôý—/,ykyŸ¿FLUÌp+˜9(4KHµþQ´ºz"åƒòEù¤|øÁˆì'c†ú“á\›×<ó82h¦æ¸û2Ì‚]—Ú-àÿZÊ`V¹‡·Y°'‰çWf/p–àt©T?óžuaģὟzÏ6ïº8&[/¢zÛj¶"ž:\Ôáñ.¢lì¾·EŽ_[¨)‰ø,%¢ÍØíÉa¥JJ Èæ(ÆC;‘Áêè¦Ýqq÷‚ã0Ðæþãð|.°öüaoÄ#ÛÍá…¿K%b¡Eͤù•”NJ7åƒòEùüŸOÆüÓ~4ê­ÓÝ0%.jh’#Ç•{Õ71köÕ"Ke†Yã!išÇ0&O]]#˜å’Á"G¼E 28ñ§ÃŶÖÉgxÚÿKb^W:OÆ%KRdÀ¤ü½WjÕðÐ3Tú?ï´ê¼#dÒß_ÌE|,6Z^±Ì­SJgxOÃ¥Qræ€IÆ#{%‰M]éñQ§Øn°,ôcžÁ¡ýR:(]”NJ7åcì£Q¿Ógãºüã—ÃîxÖ#a(œ%Ž%k^€ã‘œgøy+!ìðõ]zîÄ·Û\°?paXe.ÆãÆZÚ±d¼knŽ­¬Ï&0БµŽY!bi9­GŸ£íÐvi?´_J¥kì³qч#û¦Ýó„7íi‹ýÍ5°¶U<¼ZÅ0â …w.Á8Ýñ^Їì²''s…€ Ùá„~žœ«H‘–Ózô9Úm—ö3öáȱOÇŽýÆ~c¿±ßØoì÷wþý ŸŠê¥ö±»2"zTXtSoftwarexÚ+//×ËÌË.NN,HÕË/J6ØXSÊ\IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/face-smile.png0000644000076500000240000003606012536324427031071 0ustar philstaff00000000000000‰PNG  IHDR@@úù­ pHYs Ö Öoyœ vpAg@@êóø`bKGDÿÿÿÿÿÿ X÷Ü;IDATxÚì|wTU×¶þ>…sè;EAcÁŠ0ö cW4»€šØ4šh,5ÆÆ ¦¨‰ 5KT41vÀ†‘"NÛåÍ9÷Zã7rÿùåæÝûÞïÞdp¿¬]V™ßlk®}®VøÏ?ÿÖÿüŸSEÉVbe[6à.E¹–X©(_%šeŠr¡àSEÉW`ùZŽü:Ž¿ÇûáýþGþ× VˆE9DiåøEXÆlE¹tUô›Aê%Æa‚Ð$Aœû BM– ¸Ï¿õ‚à ïØ& ‚÷-Ax’ øG~?Çßãýð~ù8|\>>¯ÿ(À?ŒèT„ E9[ ðœ¢\M†é~'g¦ ‚a(µC\àÏñAðë–÷¡þIAÐiÁÐÖ´„ð'¯^€daµ ´Ÿ$œÔÜ„ŽVa¯b„Î6Žü:Ž¿Çûáýòqø¸||^|ž|Þ|ÿQ€?Mø÷§Aè^@J)XÚsX !ÕVö›p¯DÊÀ"w1õ…ºŠ¿×ÑúÚ§t´ã‘‘'Š_==/,PôàÑŽZþiE9oÖïŸ~¨8áÑ­ÀGû K²óN6’¾¾_2-/?äü¡°’5yž„>yñÁáp½Aî’ Öû ‹Ï=J¯ÿÞ+ÉÝRkGZFɳ'û½ÞX<àõ°ÒLÇ_GžàãòyðyñyòyóuðuñuþÛ+€¢xBì­¼)>+Û$®‹ÁéŠ 8 ‚o< â+4…7Þjo(o\ïlyÇ»pÞ#¿¢ G 3® ª³o¨èl¹²øÃ—¹Þ³›}:bªç̆ֈmû{Ÿ {§CŸà!Þ®m¢—{yyÍŠŒèqÅi¡÷¡Ni½ëêtÞk;­ïÝ pL¤K÷Ïœz%´ ÏYÃÚuÐñݹ¿Ë,ǦËGL•¦Ø^„Ôÿ°¦x_îÆ†íö -îœw¸Ö± GÊí%%.CÞñæóäóæëàëâëäëærø·QHª¶Ä ÂaøÖ‚`ît J–Ӟ؂"}m_£¹ÙùDIì“r ï› ¾{ðÈ?k÷-ù²=ªÑÞ <êêÜa«wëi]¾w^ãžÕaß;ØÜ‰¶+G‚-Ž· ˜à½:469£vÈŠ)8ʆš)u ½)0yÊ=˜)@߆ßL¸"øÙÔûð\õw¦ô†¨ß$lñÄF@­ÍÓ‘ýÝFîPf:²uMçÏ`ܵþãB?ï°U"_i4rÁ‚¢^ wßz™ÿ´­gèû&¾¾.¾N¾n..—ÿ³  (§<„Æàu{@¤SÁ*[ „¥Â8ÁEˆl½ì¥æim÷øD©(ûQ»¹é; †6’FçúHoLo%ù´ñÛîhŸK ºZ-ÙÄy´q­qA@Üõ[Œú£¯ßĸr@­—g÷ß ÷Ynr‡}€—«i•¦5¿ øãª7æ2œD×§6»JÏŒw+‹Ä÷^{ Ý« ¿å¾Ïã}n:]¹È˜8`1—— ——Û?;Dhÿ)Û4šðé>(&øÛôõ‚; ß=ÂQe¡ 4ïôò—ç_¹ý0ùçÊÓ%óêÆ®ªã1¡ö®Æs‚÷¸ k•"ø¹Å×ñŸ€`»×ß›mä>¶ÃVL£Œ÷ŽÇ¹n³g6uÞ0Œ†^¦ý†Í!Ž Cv'<+Ÿ¦«r:aŠ4–0\>CèH× oJëé½Çò Â#r[\ ýo²æ©:®q.ÎC¿Çó,ÎËñrÐ,˜§·{TGX©®ªîüØ¥‚¶ÆÇÃ>aq˜[ׂ౪N¿Sðžê½¥Cê_XUçÕì‚"÷9“ærárârãrärý—U€ÿ§©_y¨ÄËàŸÁC¬ók¬ SëÖõÅÑÜ—Þ‘‹\äKV]¯Iw½£‚޵fìí4%Ôµ§ óå Š`qº7=nv°ÀÛo#ý_ΌŒ$Áï2UbÅu*ö„ŠíªJ¬ía„½¹zßFï áö„v•XÖ¾i/!Œf×ñ?êw;ë¯3a­žú¾Í™ÝHxD‚•¢oÐTà<µ_8ï@Û56õ@Åõ¸Ñq†Ž;ŒÆÜ¤Åöž+@Ú7:×쪱·2ÚÞ¨^‡Iw‹ôù>‰‹\¸œ¸Ü¸¹\¹œÿ=À©½0Á†‚P«,ÓK®DM–®I»4Bx~÷ù¾ –·rh¥_]gs¯IcƒD ‚ 5M{÷ôƒ§uµÍÑ©0¡ñNÓ‚?À˜¬oãúˆ–ÚMÎP ¶LE”ÍQ{lÍ—„‰5„5û³,ó[ö«Z›޳ž Ì´u" ´ÿ¢É0Õ>pƒ)޵áëeÂæ¯hü ³™ÚI5sÙø‘„KÍ÷€[ë~šw„rs ]°ËAXW¼S³Û°Î¾+£À3TÇ7­@”òª‚þ¦Î¯ª-ú9Çl$ÿÿî2\¬õ3¬ûµçã6@b¦† c’Az'íF»w¼ä¨«=2ÒR2/…oâ’ƒ\Ž\®\Î\îÿK @Û¹/ÕmK`L¶5è0=„vŠd´_lÊ ÷Z=GgX ëÛ/òž[—€%-ñ›ƒÆw¶ÃÀçÜË›OEâõ¾n;A§=•8Ût5r¿&ÁÍ,§’‰<³¢ 4½ò¦ß&Ö¬T‰µL&ÌK%´u$,c¡ û%Ë> ®Ÿb½ÍFxÖJm!Õ¶ƒ0É~€½·ˆ…g/Û:‚³0߼Юªù”Ú&_UA_F„y§¦WŒÃQa]­a1Jªm*„n…ëLÃ7nRómHi`bç‡@ïý€„æ?‚­o7<÷ ¼Wì’ê½qŽŽË•Ë™Ëóð—à¯Çzÿ0xý)LÄà\OøT†Ü9 eÉ´g­ÝêŒrÑl”7{OìõÂu]}çÆpG¿7 ­Ýï €åîî!+Ðt³0ËÄMSNô¨t1@²4¨<–Ú‡_ÏF”ê²ç/fX:2B¦1¢®ª«Ä l£Tâí3‹_¨†[=–”*LQbÙõ"H¢ú© DØ_õ6+á k_Ât ­CÎ2o!t7½G¨z„©kE`ŒôêÕ+T7¹+*…ªa(í&ÇÕÝ]ÄÆÊt+ü¥v€.#ëOÙ ¦ùŒéõ¢´qÁi·W£\¸œ¹Ü9œ—ÿðûd´[°åPÐÓZ°P°›Z/^?, 4[†®e@|2$Í,;D×¥ÊVTN°:Áõý[NN('÷²nwwsÃB–ç®ÆZô=êNmÏå¦û߯È×%/=ßœ¾†ËóÀyá<ý<ÀÓ›X$Ó*a.R@üuV•Ì|ö‹›ÇÛíô›õ3ÜLÁ>ŽS}Ÿ\‡©üæ7$Xol0Ööz ¸K»[BÉP¥n6NQS©EŒÓ$ T'®<‹Î\ìTÂX$„ˆžNΈñ`í@žÕs ·ª„z!D”UU”|ëjv_}^±:3ìÈ®×eIàBÖßT¦ÛY›õÇCˆ}»ßÍK'ŽÍ'‹r‡æDt9Zº¥„‹£‰¢e=ÉÁKû-à8F÷Èéœö–†ÊLà ¯ñ@оo…lŠ£ß ì}”¾™ûgÁºÒöÜóßnÇyà¼pžþa  ()L£ú­@©hr»a±}«ù¦ÉPË{Uv×[CBœmî>pWÿ›ïž€AXRu>à ®hnD…šqÚ]†•4ä`Çýèò´ÞN?zjZécJ*4 ±d±ÑJ ÅèLÁƒY˜'¼bkÎЙeùÜ‚G0û–©„Ê9V+µó¬W˜"ü@×Ó,€äa¶2γýXû>Sf„Ù¬ÿrÖ uÛçAHmRduÞ àéšãÓ  ý™„’ Ê'Nó­±7ÉåÇ"€(0ý ×AŽôÊÑi¤ï{XùôégNÍ<2¼7 ‚-Ö”êºHçóÂyâ¼ý<@·™áÑy0H{¡»tbÏÞW–‚·\ƒâcŒãŒ³œgº5<’jm Ïv[ç‡üDo"â—iÇëõ4T#ÇŽ„ÁÎHä,Írc!}BÑM¯ÖÙÐ2xŒV΂ ¿L`.ÒC)' ŽUÊÉ23™å>–ó­<;ïË,V #¤Ý#r¾zݲšÝÿ‘µ÷3\¥¾¯Þ—ó-êýÃÖ{ìýbfÑ8nS„#0^'ÊòËm‚=ˆaûW2qÞ,””&ˆkÑð=¢¶•a(ÉåWg’n°“y„ås©P­C»Ö~âææ÷6x€žµjÀ#d»lq[.ººÕŠá¼pž8oÿpø#Öä ´¿w o”Ùrª8¯í3Åñ¸s'·k0íoÝúlB5Þ5NFׯIVÊ‘ ÍíkÒøn~„‚~m\rä–ŒˆmªEš/fY ÿeç£%*Ю‹¤äX¬¤ ^·Î·N©n rŒßrì¤@7O›¶ào›~»ýàk$ìЂ3åh‹…ê ‰–:ˆÊ‹#C ázkÊI¢ ï%Yšb?·oßßýî™Ö?-Æ¿eKV Œ;ŲÀÔ½ ƒˆÎGQ+9,”0Ï#ç³pØRD˜Aux΂Ï)©Ò5TðÝI>^MHnum0h6xÕpÔØð[·D¬ßpé Ûg{íšgï>S8/œ'ÎÛ_TÚç'šÛpìß #”/Á ÓÊnkœ:u½®ÿD»ÏxÎ{ŽÃ$çzî7pX§ºN«qÂÚ]â té°pÔü|%B,eÉÙ"Ì‚åpª UHë+¢¥KRY: êðk-«¨u`ŠÁ-îß3W>[ò¬nzokߣ°;¸xñJ_Ü6FåÅÃWaú©%›  Sðþ‹‹/æ’”›ï¡e‚àW!ÊY ³!PÛŒíXE6¾WP¶ôÎîÉ?n‘v ‹ÉóºÔûê¨òAØ\°µÃQ?šÇRË|¶­Î꫘_á¡„%µ[ ÏT=£mo×ò$RÈ1˜»Gȇª{²RdœŠ›Qð€Í)wzS„usœâ< “C—EîctÃ{{Ï©ð*¹éœÕõ:ç‰óÆyü àÙxr¶½\Ji¸ •w_“åök½ãè˜d‡;`éÃàîSÇùÎ%H¼þm%œ’¹Ú¶…Ë]_ ”Ü*ÉÅK3Ê–xŠkŠÐ%ÇŠ-žShšé~ƒŠdD9Á\›¹dG†#˜g¨C˜–Yy¤b>ÿÕå¯F\€³š­Lóë‰_íÙ§—•N‘>ÇJß±vÇç_íG–-[ŒjéÖ<™eçoF±ÒîRËdz® Ç?úÞqÇ+uñpÇvÅŽÕøö¶«Øohhâ–pô?µ¡yŒ+OPKÆ0?²p+!(V¦M™b¿@”VvCÅâbÚC¬-p@ƒ°¯-¤ùˆ¡¥ ²%·ò À©åë§€)  H¥ÃJ%mÛq¾S_`f¥áC ¥Ö^¦Nub’9Oœ7Îã_Ps¥ÂB¾Å3kkC{©0¸îÙEŒ2 [ëà`¨1Þ…'Þ1ÜÑODW¦.[‰וAWhŸñò$`²ýÄ \xŠuäcª¿YûåŽ&\»DZ/*T]úëF꩜9’ Бm§,l}öjÝ«Wåp:WâRxìdÇç—ßz8øóúòçÏý¡<½¨è),ûwÃíyë‘y]ͼ?†óquVÚM©¹„£H3k@l¿=ÿuv~ô³¡xös$þË;Øï¹[?ôÁqJ®z• ó8ôÊUü’`^ˆëÍ—™B±y×aIç|Âtµ¤m?UT=­8?C›muîi4ëÈüh:™h^ð6zHû¨’$×%X(Ó,ÓÜ´ÖU<¨ #ÜnsVkÿ²»ù#Â(D²üB†wÿp½%^·-´•`2g_(žÆ~îì»Wû-ìS2DZ ·Õ…q1ϨŠÊ‰Ì*á±hù´žÞÜóP;QuõÒõWƒHNŸt#¹Ü°=uëýÕèI-ûsÝ7Ø;lL»”µ¤\(Ç´™JÉUÊX°óå+õ&À«Új½ät¢:²ükã¡PÎçñÏ*/øÄ€æTãvB‡¤¢¿å{“Ñ  K×ùèÚh'`ÅJ÷“ö<ŦV”¥gËiTÀ‰T¡lhñÇ€ ÖŸþJØ17=ƒÍùI<ÅþÐ’æ$uUU„±d‘$HFø †f&ÀKì¶I>½4ºgX2uËu]SK$52}`§^ÍóÄ%ˆî~s1GQ’™ËOªªŽWc Œ®©Q=O >÷Ž’Š ˜Uë(Ò}ÉŸú½­VjzÚg :öu)Åq}zxÞÒ}Çæ‰p¬ùgÕSÕ¼`×L‘ïªógžg§é-:Ô_Ö'¹ôê ˜fmžWFU…O°R˜ew)ÞŠr]Ëc(gˆ5=§íc¥õ*àr]°v0 8滿ÚnÜ–Îyãå,(ÄJ”§¼„ä- ¬þäêЉr^Ró•“È£D7ÅSxª¨iˆ¼(ïJku™µœ7Î#çõO(À]}u#`®©k#F‹ ð[[åì¯)ðŠ×6„cœõÇWöú¨¡òu³™Ð&ôX^bq¤m`y†›°@3]—h»õXnII]»Ÿ-»3—_Ä15[AsY[ÅÖvgž@6A=Áó¬>伟á±sjôÅ•EðÜàø>Ž.-h×qê…AµH(y€£ o3tàבÕì=o=í3Åuô{íâÞ"8ÿO›‘·åg¸¡o{i2›Ç{l^ï3|›ÍŸ{˜žL!¾dã|H®\fß/(fUN--E$'w ÷?d‚üêàu)‘îW¨ï)ˆFœ'ì#ZPñ7†œü9X«óŠç¼q9¯BZ¿Ç4å0VïìÝEÐãG‚’¨)4…OÀIzÀÝVJ†ôˆ\y¹ý€º§‚¬–N÷Ó~¿ÌºZuõ–+ª,SHyd™G@öÑ¢«UÁåq¬éÉæÇ,¿1l;&è&(ѵh`øËíKÓ•MÞÙ˜Yýûéªb™Ôþr!eH0õËñw~=÷=kaý¼¢~{Mh‹ã”H §qÅ¢¦Ì²'¶„÷‰pR$ÃÖsƒÍ;€%C0ҺݬÈ`òè‹§%€ÆÜ­?ÑxäZ¬ög³©ò¶÷#Lgb.&Da޶kîœ7Î#òúç<i&n)€¤O/¨*µÓÌVi2z P‡¸AI!Í=#íͲ^ZG•0E\¬îß雽l%Ã>ƒÎÁ`âdù¤ Y éÃq°p'È+æØnÀ“Ç,3Ý´‚Y\†ÙýÍ„9U!ˆPwRnò¥ö™jv>o á«"CÈû[É&D}Ç¡~ÚºUtSÛU>l\z^*ÃyÐûïRû0"ÝçŠt‘0œÖuÖÕ˜äq,œê`:¬l> ÊäX{©J´4€BF>+•’­—€x*qÅûà+¢)4ÏÒzqÞ8œ×¿»,yHè#Ï øN¾ð˜ˆÏ‘Ýä|"p©’O¥Ö tA˜ÿ+q¤±ÊRÂ|öUnºìOµó¥â@*?'…ˆ¢+SeÒð ǘ8ü™ Ï09 “Å2¢®W·ýѯLÕvÕB™=Út[í‰%Âð9S=뇷MˆRëÿºÉÝçï…¨ÄWïùƒâ–±y°ùKäú“dY­Àº¿¦Ü(ÁNË bòIÒ5’o9E{$ø¦¦(ä!ò•@4,{Ž:yä,ø7–~QP)(‚'çí/”‚kz¡CÇÀ•%-%ÂÓ$7•h |-(•PPÆi>¡4ßÐaNœ @?M¸ºH—¶ÊòÙdLŸ.{ÞVnIþÃC9L.0Èngt,"\Ï>ýJd‡,‰Ö„Q¬ëΦÌ\‹RÈè †F–lcí kTW^ÉÛ ›°íÜ%Öï]µ_fÁ–¦l>}T´ÐNž0Ç>’߃> I€<¾è«âíøÀ›7X ß3Q?ßC±àƒò!Âc„]è ÀÏn ËNÑ  ©(9]‡r”—’Bl%4<%K¹!$¾n(¬'8oœGÎëŸP€f6Œ+ê§ÇÒuøÈR³Q¾-¼-·¬¬”S”,(M*S¾ä¦i…šGçÔ¯y5™dùI€(€$–>ê„ëðÜ›Ë:ZªñÇQõ¶££ZŸ”™l)Bšå<Í›èø@’(„„ƒ€è0Ij@(öW‘)ˆ‡}šŠ6v˜òP-ñÚN°sü+ d8‚2õeØ‘]ïû7Ïï'<þô)G¤q8vV‘Í#B¬O¨V+Ѳ£Á²13‘>G‰®Z°ÝއBõ>®Ý×9pñ›ï>¤Ü)ŽÉ)I£ÒK ‘ ´‹úKSà¨í Üu-Ê=O:,ÄàfBp4`+5¨¬ä¼q9¯B®Kª¦ˆ üít˜«‡\Ö¤—ý4¿JýJȲ¥„£À„˜ìsM0CŽF(Áò»‘+# WÀЂ7(šJºˆ#öÙ×e $Oó;Lï×<È­ñw÷ÙàÔ«»ï©bà§Çöè‘ ›3|´¯†y cE‘¹˜µ†át†ýÿH(³ôrñ$ÃSüù¿U†¸Bñþ™HU<¥SmmW˜çÖ©û†¡‚ô¸0ffå-XÇ7wãL‹:ÍÐÚ=zt´ê«0D‚4ªâR…p@´üp4%SˆÖÆ«»)’c´ø‹æ[Âú:”sx‚FÀ¿|FÉ&ƒ$´OÐ9Ù>º3óÆyä¼þÛÀoÌx ɸ—¬.мtt´¼ý…xL~ g-OKƒä4L/ä1Dl¦8SwA=ßÖ*1âZ­NM^´OQƒÁx!alá)(-P!@A]ü´Ž#Šô°”;ý@X¨å¸õ>ƶ‡~6Ì !¡“}h{Üw~j¿Í6 ª dúIF"H€*¡‚#+'–˜ooÀ’5—¿ynWæQÖ0EÃû¡ŸêÍ5w¤t¬@l€¿CˆNqßô„´6_À$²f®å²Û²yŸÍÓ}&ï6 S’`¤¸¸nJƒ)w`íhmC5„’ÜRäÃÚÖxäúŽ/ŽÑëqo!=ÒvCÛ–º"ö‰ògÒÇÖb‡q‰5èöœ7Îã_8v©žî®䨿HÙ±‡pðiwë"¥¿}eî)é´”+CjŠà&§ …K‡ô›Ð¢¥04Nø¡~-`)- B Ôî&ED ,9ˆ)†"|Cçà§*ÀoŒ: Á´7z¯š ý;÷sÚf,‚,ºCñ×HøòMâ°€ÒFß·þtlÂ[³6¢à¿ª“•‚ÉÝ“˜'çÑB¥Ñ¢«Ô…'ûK1ù|öæ³="xŒ¬ò£{±¢™”½h-nïÚEö…®=5y]®vÕ/æÉ‡ažÍ:á asÛ§Å‚G˜:Â"6 Ë}TùDU(rí €^ã58?æ ΂|v“­¦hß!õë¬ß£ž‚\ñTp€M#’30ºK§å\0”<ù²-,÷ç‰óÆyü p6+¨ÃÒ p¼ÜœáÙÂH³»Æf™sÙ"ŽàϬEQì*uÅ$]#‚ˆ3 ÒÔGÇ(b^Ó?W+UÚÙäÚ<è41“\?U1v–V(BŽlí‹’ÄE~ þ±èPîtLZÇ>ç@Ð_KKˆ™º‰–y $£W^¸ÙøG“?¼ƒ§ˆqšÁ?á§WÖvþ¼DðöïCöT Ml9ãVþfy%ºcahö·IYXØI*ŸÑëo·ò}ÕnxoMç.øÃA)qG°ŸÔŠ”T3¬ëLÚ‰möNøTu5º\§0H­¢¢"{…AnrÒåðáIA¯Ë»,~ê¥þš¡¾cººñù´î#lÝ7QdžšjE‡@’^!žrxŸÎÆzc¶/…jƒQîÒüDLê < ;ï¯él©wÙÂyâ¼qÿnÐh&÷U³FÃ:n «3$erÇrËóó­/¤dñ¶é{ñšx -Í^*Δ£0¢J¯ X±ËG; §ZBDKcô=aIºïÔ:5³Y@A’ëãŠðÄŽÉ¥µîs~wážwÿůÛODA!e[Ç ÷¥0³vß·žDô•— Î6iŒ’ x@ ÃM¡–µæ*%£­ÃÊÚoÝ/øbåñfåùøËŸœ¸sOð'c¿ž¿°`ò²ß£1XÒ6ÜžƒŸWJþJ,`gy Æxç©R"ŽÓîh«Yá ÚÏî|^ÁeAØã»ããNà)Ü\Å;‘P?õ‚ÊIOëR2q½,àzcg‘GLÒ}KÉ_޾`²½>Éí¦8Àr @†ßñÝ~ ·•öS w˜¯e¾è#®7}/O1¾iYr~#ç‰óÆyüo|lƒ› Ã@=F¾=>÷Ý¿öß½÷º¥ô¾Ùvù²8ÊnØ+´°Ù°@+Îø¯ö®4,Ê#ùϣ܇ … ‚›¨Q¢F£‰xǨY£IÔ(¨\õJ4^ 90*ë"âñ÷@@ñDˆ€È=Ã1ÌÍ 3ÃlU ýa¿íóü“'»çË÷í·úWÕÕÝÕÕï𶢚;Žv ¢ÓóÑv@hðYú%ÁöNC(&…[(`YH„X {J(fÍÖåÔPÊÔ!y&`vkB4oäÈ}yÐcOOiŸžâŒmæÞ¤Ÿa(P¯¾²¤öí£Êš!S~ׄÚï2´$®7 B‚MÉ–Qø»)Ñá”Ú=ÃÙŒŠïH@WT´.âŸ\æý´ëdnÆíŸ¯ƒ M‘ÌÈñ}Ã6?ˆÇ0âø5Í…†·R64¸]j_5¶‹Ù©ø0k»y (6·’ÿ+©è²Í·tàl™° u ´—eh÷)n’›d84~d|‚I£¦eí\(W˜3ÚN<|ÈôÂôÄôö¤…g— ýrã,à¸Ûo{lvƒE•èK]/Á^Ý+[õ~F¡Q£o”Ê1 Ö¸Û˜ùñä (Nå0‚Ñöéd݆.)Ôes,>p§!\±ŽÁ@¥Žê¨&âæƒGH§9†£Á€å:]IÆç$^‡ '÷Ṇà\`I›àÌÆoD, .?¯-Lï «ˆkycÎz‚+/<ÿËOCar6óèò}0‡Y»öpÊë7™Ïîø<ÓÑÙ!§`HÝXc¹ 9<)3xlV-Ù¹* O1÷ýÉãú¹s8­’Ì9bF¯‹(¥íYó ÊæÝ 0.p È I–ˆ{"èáHñé´¾ŸÏ÷§ò›ûtH}D—2âé#{/ê@{¢in•ŒçLŽÆõ˜ÚfÐþÏ1è+¹Æ ýxm~Žvè•­L/LOLoÿoàr·C†£É2\N8œ|vWÔm¹K’åÊc‰ô^{¼vtn¸ñU{ N¾Œ»ô³1&n 6Î5L±êûõÖM—Þ”ù²Á¡€Žp>íú!B¢m)p¥>°²{JKHÚhôDßì‚@‹`ˆ¬`SÜv×­ø8ôìÁWfA¿n|/ä™<ÉÓÈÅà‰†Âûä@ý}~èxR„/¡RºnÆËÞ†—ÛO†È÷]<‚CWÛËWvØs&eü‡\Mr=§Íß©ÇSîÊO=Õê xn¤øDÁZÚ+qµ¥Í!³¼ë:ЍF;dÒ¦ÚJçÑÔq.áë'ÍwŒ1k<¤Ÿ ýðvûcŒdJÒÚiÒsÃAñ¨¦¦'¦·ßðl Ï ‰xwãÈãï®ú uñ‚d]ÂùCªPƒ»~’̾Ý[ÿP;”>§ÙމL°õq—,½Õ±ŠÐ×½Ű:ûRàÈÛ~8*”3_HRÆ‘r¡@ì~À»€ :=Ã4úý9kñE¤=³N Xe–áarÐÐp ç<CuÊ¿ Mã«ùŸf+k³|)cîô¤òm÷ÏàuÚ€âmtY_ëGY¹Ñª©´™“L!Þù°æ‰±")|~G6h (~uîr¢<Õ(·% ÛrC»f«WIñÁöËHñrgg«‡pëCõ pJgÆÉ)Þ¿Ù©èã¨`2Ä,êá5(Å!²èg(ÊI{!›¢îs[[ZÖ)ìnÓæÙH§Ú=}æ¶~OôFy5®.Xƒe¾"£­Tµ ¹îŒTªOÓOÓ«Ì{ê•úÕÝ)ãéé…ééw|?ÀÌ`¤‡›ÍñÛ%>×{@¿õ³OwÌ2¶¥&×NÕĪ–ç,4,Õ/Ñzr†w4?J7`zµn–’‹™f'[ÜÆuá*ݧÓéØioÅ“aŒòÜAù¸…“‡prÜDÄM¡¡Vv¶BZFÌ ƒðåûáÙ|$2•K I#ᬊZHc5@ô Ùè9#±ÞÎrv] Üà @õÒòžS Á›††rŒL°$ †àó@NO:Úu™ä†È§ã>Û?s›FÏqöü„º”Û[ߺváÏb.°Eï óÄ÷%&ª­†¿n[ $Šš1šïTÕ9 í>uœm¬HMe¼3=0½üÎ/ˆ`ž€úŠ g™]oCáhûÎñ…EÝ‹<ÝüýmCÜ»ª£4»Ëººjc•…`Á·”SÏ‚¨‡µ-UÉê%èK"ìïÖ sUx'{Çš¹‘Þ4i´Xz A@žû=@ØqÞD¿ßµß HÏÉCplbWZæ 4¤QüµÖÌWS~ŠBÏ’Åæ¼bÂl~x'¾OXÍ«#|F×EÁ÷éVOž ”¿–¯+é9àÊmcIŽU ¢ÒÎ*×ç¿“ÜÇÜùÔŽÖIV漃ñWþžËè{$¶Û’fŠ|E¼”`Þ¿¡Yµy2<Ô-ÂÀ‘è{u²z`Y­”×®«>r'p¢ïàùãééåw5€5„HOkluæL|<“ôÊvåó†Šò ªî?ÎhŠVßTÿµ~«!^ó¥¨×·:ש Á·4îÍï€èaëæ8,Šq[ ¸@pª×Gô ß)V¢|ŽÒdŠóÖ!"6Áã+rr ·\krj!œê°›0½ëAìÁÜÏ…ãɳ¸¿£ž^h{‘“mÓÏŠ‚û Y9]WC×]¶(„qh` àY¬^<ÎÎ[à°Œpµ“QžCrZFyþDrZÞºmõp$÷þ=ßÑ€1‚m½æQy¶Óâ[P.Àûj¾äSàåmà¥0^ý…>äVyÛÓ÷ã=’Dµ6èQ¸ÿp_MMÌuú¹£ynÎÎÖrƒémE- ©ü ”ãu|~˜_þÎ+öÿ ¿¶¯ˆ¬ ø^Q˜Ô)—0ÇfÞÏqáíÇcÜùxçÆ'ê“ÍåÔÎèr<±×$Ý]qðœzŒ ¸ZÚâ¤(¯L-óW(Z÷¤2ÞŒWÆóÜ‹"i¢1h¶OÈ g ÷á&éÀØÞ°# Ò„Ló æˆ.ûV·i=Ô;oßh¶o¹ó¸]³DuK~¦#Y7^ýzò]S|‘8ÉŽ”¶¾^3D怫“%˜Xxu®JÀ6Þ€9ÂþW‹„KQáì _PÂÒþï’á ë?€t½¿¢Í¸ ó€[lföÿ”p!•Óõ/á:D[@|aÕÃí²8'mµÂˆ·#°\ø ÌõóHï(—e…É„r_kfÊ =†GÒee2¦+mºYT¸C¶¡ ^óµê°ü\Gr‘cÓgò¯·Wk>V•ï¼Éxb¼1¯Œç?ÌþýI☛de6Ýñ¨eÈ Húncص±êÛܰ¶ßÎ|ð¥x‚Œ{ñãfUËy¦:\÷MKU-,£´± q…‰@X’ØæÉ  ¾ùö [¡Ši˜…oá34ëq¬·t¬.¢ž:Íu5y„û^s‹lgùú*»,ö/¬íRGøv`)Ê ˜ÄË»B9ý~®Ãûvú×ãw¡µžý‚o½–âÃïÏ¡e¥ðg\# ˜ôilW.h€ûô¿Hv½€!Ϲ+ ù7Šràû–ª:0Ôæä–Ø–êðüÍ¢¥I?Vá´Múv&ã…ñÄxc<2^ÿkÞÎ,•Ë ê€ UéchГ ¾àèeóFæ†BãrsÝ'›>Û‘¿¦)©åÓ]ÞÏëîɆÖ(ÃZ'JL¦¹ºŸ¥»_]"mÄ3žØÆÕªòN¡Äy fƒA²´D *cp×дQw½sã2ÛÖQ}&oªõEyËæ\¶óBä¦;ÈZŽC9®÷áupÚaÞ×Q`xŒ¹æ#ºÓx¦Ñ4WSû¤ôo%:C'¾ÿ C—_ç~ÿ>ȧz ߤÐÅ+ºµ7ËMsŸ}(+k+,Ì?ÕX.ì²w9ûšÆíÎ`<0^OŒ7Æãýÿp¹+øòó*cÆ|`   =,TËš~C¦ð8âã½[z›=Ûºo¾u²:K²(içs£ø„T^&”Ï•wošh\ª‹•_?z_|º ß^“{phõ¨ìç@¼m-/G Šy[´ýAwœ]7<¹ˆË«fCñ4À¿I3JÄ@q»tniá²R!+,oîŠ×éÿÒñTõÌ]ËoÃÓǵn9®ôœ•Ùxþ·5'r…ï×Å%fÀ3Rû 0¤–ò®MÞÆ¥Ïvм$Ê„·ª«¼%‚¤-çÌ×tF þ @ íÄÚÍx`¼0žþGÿ1„¶™[·''ôÆ-çŸÜ…@·pèY ¢qö¸9C"a`ì¯÷säðW5®×龈»ñk^ß“nH Ë9[}A²9ÿeehãf[ùÅjÙÑËŽ½Z‰Ý«vPÄWbÁójP¦6=?0¯úóœ"ÀúªªLG@Qåò;w»UõÊðìh(€rbUGf/@qõÊ»'ðúºôü$À¯ÄÏ[¡~O©×+ ÄÞÈ÷âs_6.i.“È\õ‰dHþËëÙ¯IßM k Ñ'é‚ân°v°v±v²v3/Šÿ ú×!b„-–-Ãü^|»Ïæû£r@¿®x‚9Ô‘U.Hçp3×Ù1¨cKž*›ú+§¯KI;Zv¦ùlÒŽ Û sÓȬK¾µ{š=*ƒËƒº4ž“gŠDMï‹·-’­“Õ9›ç)J jª-“Õ³¥Çªë8ÇÔã¥iˆÊéÒÌš4Ëdy¼Ä«Î×0öí÷áähò“wÀ!,×a›”]aùý¢9…ßÿM¸Í~™ñÌZQÝMm¸öÖŠ¨§ª¦¯•5qž‘ÕcåÆmWÓž•“ìKH‘”|ßô(i™ÜâˆÆ±ÉË»#ž/·–_:Zê!IÝ—á\í/—n»úôRÓ0eVœgÝ­ë.‡ç$®±ç29˜\LN&7kkkçŸþ_Ãþ}ƒ-ÅåKĽE÷è)0ÒÞ ±q€±óÀ„«!7`,ŽÚ9æÈ÷™1mÖð¯ çùLŠŠ€©Ø…¹ïÏ|ò‡–¾#;û|ÂOöí)¦‹Cû†Af¡?CVήc÷±zX½ì9ì¹L&““ÉÍÚñæÛef!—;Hżº‡ã{x\ãÖ@Oóî¹¹Ç[Ï 3BÀD½ö/‡ÁÔlåØñ>3a¶nRü{ è¡ QŽs´°Î~Á•³ëØ}¬V/{{.“ƒÉõæŸCÿp‰¤üw˜TQ—;$ 2ogÍÆ@3Œ½ù€>\®7Q²rv»ÕÃê}óßÁo>o àÍççóOÚÙGᮑ"zTXtSoftwarexÚ+//×ËÌË.NN,HÕË/J6ØXSÊ\IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/flag-color.png0000644000076500000240000000033312536324427031103 0ustar philstaff00000000000000‰PNG  IHDR2ÛØ¢IDATH‰íÖÁ € Pj\ÌÉŒ“9Ú÷ ¤@‘Úƒ¡'Ê£ ÀIƒˆ’—ôÛõ-⟶ºH!ÁLà¸ÉøgÔ†ˆ²Ô˨„zø[(m g•‘þ®Ë€ðø Ä^ý¥+T½Œ%hÖ±¥ë¨Þ?;GšÐ„T¢Y뎭|…Šûö³^Žˆ»©Ö—‡&Ð(Pï¤äcšm† °8…ªÁ–IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/flag.png0000644000076500000240000000030412536324427027765 0ustar philstaff00000000000000‰PNG  IHDR2ÛØ‹IDATH‰íÖÁ €0àŒÞÿ•í´A¦òÛÔCÌÓˆ/e‰™@ÈÍ„¼ùÍEÏ„üˆYžHFpÄÌ23# åh‚]P[FmUܺ0UÐëñV”N홹-(‚ëjéàîý»w´¡ m(!^çM˜ð\gA¡ñA%ôðPu®ËB4°ï2܈öGPŸe4IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/front.png0000644000076500000240000000110412536324427030203 0ustar philstaff00000000000000‰PNG  IHDR((Œþ¸msBIT|dˆ pHYs Ñ ÑÂ+ßãtEXtSoftwarewww.inkscape.org›î<ÁIDATX…í™?NQ‡óÞ#û—ÝEv€ˆÂM)Â!b8gqí³pþIù)]Di\DI[²¯×&Ú*,§Hµ’ý"íw‚OßhšÀÑéÙ¾Öº ÉÌ „õ"J©>€nQ퇻ëŸ@"‚ŸÎ[Dtùfïõd·^KßωÖë'"Èf3o0E?~ýŽEäâþöê†>œ´ö•R½Ãwo¿GÛa¶V«>NƒÞ×oÌ|h´RÝzm~ÆÌ›v„ŸíÕk“ÁpÔ1š;IœE±i¯¿ØIât05 ‹4\×ùbK½\×ÉYä½±eõ–ˆ¶÷`À¶ñ®b{ UÁòTËR,Ëÿ!X¸UÁ²TËA¶Ô–Ô– ’¶|I4,_’¥ ­Ë UÁòTËbˆÅ‚b„¹¯Í–÷çi‘oÚf•­WŽ'Ì} ëúÁñ<ŸY%¸í€Ï†”j‡QÜ˦ét‘çVœ€Ï Â(މ¨M"‚£Ó³–_¦ãñdšŽÓÅ|¾‘šŽëza”DQ’ÄDêâáîú†VßÌÜÐTŠÀšÏüa–>€®Rjù†x•ýúP„*IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/No-Ones-Laughing-3.jpg0000644000076500000240000007401212536324427032231 0ustar philstaff00000000000000ÿØÿàJFIFÿÛC  !"$"$ÿÛCÿþNo One's LaughingÿÀ"ÿÄÿÄ>!1AQ"aq2#BR‘¡±ÁÑ$3bðCrá%‚ñ4Sc’ÿÄÿÄ !1AQa2BÿÚ ?°U]¢½zŒ÷ùC·þ >³Q¸šuÝ}¬';SU«U-ÀP€*æÜϤü¼}u»Rh«Ž.Æ,ëµÿü‡¿[™Ô¸Áµ»Ì5–E®‚ku$åÃ[ºƒ=WXÀR‘÷A ¹ÙÐL-qÎe‘j¯´¡7m5;õ±"ó¡ð}U uÀé÷\N ÍûÆÒªUƒ)ÊñØ¥u~#AiêYK…$ß"Òf£QFâ.;®eš¦߇%qþ­,?´ç ̶(ÄÎaÇp×¢Ùö7880Ído›ÊOQ'®ÉÈ=DÓ,Z†ClƒûˆeU¾òŸGi8;–ÝGèT*n1J+ä¨üª:ÂWȰ±æÓ5+w@¸í‘͸‚_©èn'€dtË[›^UO:jˆyY*`‰"ç1Ék\ˆ–ËhÛ~“4ÆÙg˜)@½ŒÝÂ×"¡ À‚b*m,pzˆu›$Þòu'uøfã.ʰáj·<Ô‚H¹õmCÿðm`Õp='¹Ü;ËŒõr -Þ0\Òk÷ŠÌeþìÛ¼Ó!¶&3Дô’`¼`$už„‚ ¡Ø  J±³.{ƒ0'¶\È›Mãqâ=)-ïâ LÓÐ}§•¿SˆõEÜû½Í­Hõ5§»$ŸÚtkܺØXI%0·Àýeàx´ÔòÀZÓj”Ë5îOkΦš’é© Õî~Eþ¦+IHQ_¯ò¯xuj5f,yë1nµ:&¶úŽ]Û&yTâì-5²á&@H ·<ˆB@Qrx´¨S»\çÒ1k‚qlØKV%4[1úÝ> ©"Gê"J™“~LezÃOHÔ¨nã…’gÅÖ£Rð) üÍ{\N0ѲÜ=J@ù¦×ªõw³1»_¯y%g ¨s{Nœeñ›uv‡KN…Rÿl@¤vç®'gJt U¯§ ÕNIa€ÖçõŸ(µ 6e¶ Ä®½qB’W½®n=G?Irãj— ×^ª;±»0õë+DÄ…}È8þmWiûÅùA·º·þw‘=Å ‰ÃR}ãÛƒý&ã5ŒÞ q³(|À_™Æœý¸¸áé©·Ó´æ×/ˆTlr/ò·[{Ë>%SÆø~X«…_ ½â_`ž%R©>mnÆ&¦‰Õˆt6îålªÓª£ÌpVöý&-WV"R-Èn‘Ú’étÍSUIßsÎgSüLõ?ê•7.Ç -è‰ÓêÚ†¦J©M¬Àܨ<óµñG¦>!Q,¨ž <ƒ3mÓ'O˜¯Yk[í`ؾäÁŠ¥J‚ÔGPRÇŠŠGñ;ªÚz”•ÛEH‚mcqÐÉ?ÄTtT<%Ó§‡X‹Ô@Ä…íõŒ½à³éޏ´k%E?-ªŒþ¦ BV©¦Ô«#m¾Óá f«k 9 'J®ÚŸ£ÝIšÀ¬)T5pÆÊ-n²ÊZäZai"Ó7¾à.ß©‘jÑ|•q‘oÒnŽš½O1ÜÇÒFIQƒ÷óC$s3¯3L¼Üñ5X±dƒ2ùâIJ°¶ ð`O‰VéúO3q$a`&£g D–¿Y´Î ¿ ’uþ ªJz‘J¡ûªžVÌWÄh6—VôO+ê$ pݽgf¡:ÿ… ¼×Óa»•™³.µìr\㼨Tw¡šolý"ÛåöšdEA7N{Lü[€÷‹ÏXÔ`Z̓$«}Š¿uÍç˜U”§ö‚Ëþ\ø[>Æ.‘ówSÌ í;y…ÿ´H¸6=á¨(Ê., ÏVòÖq릋¢ñ›‡y ¾Þ°Ö¯xaÕ$Þ.«qÖ‰éIfÇ&R {nöÏ&OY®Ö\(âQX<1õ=䮤& ®Ž¬ÿðÚeñäÎI¹¸:¨_áTnxoï!*%MĸªD%-L‚Ö”![@ðI<ÖÓ8"äG 6Ð}øŽ¥R¥C³p Ø BÓ‰×Nç“oxú:6¨v« Ç„¦/´[ÔÂZ΄ì;p&4áÇá•/«€;döTÅ0ª;òešµp@'osÄURªÄ-˜Ž§ûCoÒRMÙ¯´Íø‚ŽÇ¿éM˜µ²dŒ§L’,'KG@;‚y홪XŒzKª¶CÀé9Þ_‘3·Š|ÂÀp'–‹q(Ç7°ï £÷™Ó‰"y„†ŠÇÞk0o)àÀðÀ7’;Ä$á@ö˜àm&öéÍÞÐöó™"ÍB¦Ê,zNn¸šµ ÛŽe¬ä«7n'7PÎ}æø³S±µ…ý$õ¼ÔÇ¡6úÆ9,l7ÄkhëÀž“¤é„Vûµ9ÇXUª „S|(㼦Ôͪ-½&;RW Ü·I »GLÔ )0*PŸN‡é!#ïƒ1çÊÿÁŽÒj›OUZš€;w‰Õ7Þ9U°cqé ;LT£IZG9ò¸µï؉WÃé§…[áÍw7Ò'‚GiE5©uÁ·^Æ’¿Ùê'ˆru· ÆÅcR£m8 ŽÁa°¸ÚŒ€µûÊþ5Bõ½+x5üâÝúȆÚbÃ/ÒÑ—Eéඦ\oîg_âo¿I Ô^÷M¬=§£n!˜ÜœÚuôŽ•õ /àT/Öø·´Ï/”Â5£§ \¼qä—Ös¯bÕêù¿-ú˜§¬Õ¼Cvc{žðØ‚. ÞjLCÌX“º÷¼6"ï0ù„À,p#Èw…y­ _Êoü@'fˆ†¨mŽÂ?G°nQsN¨°·ánÆ#_÷kFÕ/ú˜%¨1o„Ö¦êäÄ‹šfÝ=bÈIÎ!ƒqn±KºðÔ‹D1Äõî=`óˆ@ÓMPO1ëM@ˆñ,qXuIÜ.zI-ŽD»áZäÓjC:ݕǡœ”+|±‡¹ Á0³L¸¿â”©iõlŠ<‡*GPdŽˆ[WuÕü39}?î¦D `”UHƒƒqÒûÒi}¬lo k’¶ Z Ú.5pøý ­6f0`o‚ sïtxY`F•7ÝOÿYíA¹Fî¿ú“°d h÷;è+~V Én‘$Zx^òF_¬Êu¨ ™€nH¶O2&jÁñH‹x·^‘Ú YR¯q¬»ˆ@¡Éÿ¤Ùí Cµ‰PÓ®ƒ#|ÊfüXÓ¯Y+SS+aÜZ?¹¢ÕçaeÖnŸmZl—ò=á÷WøF¢‘w,I>ÂNi”?#‰fš•ÍO5콊̩NàÓsg·‘º4u"ký_XÖÙo¤ÚŒèÛONbË›üÄDqù¿h¶;¿óT!Aš+\eý @¼ôª¹“)šnr–ö1µ|?ÊÄ{‰"‘H9Œ[œÚhnFG¤0@åyˆ7A¨ðk† á‡pfjÓìÚ‚/p}:D‚¤âS¨µ] *QŠäH£¨ì^xÅ¡X牨€ðd,Tž £(9ÄÅ"›xå¢Ù÷‘:“ ¶WúKhiÕ´ì?Ü/ oqÖt4Û—M‘Éæf˜KéÝNDK©!Sr+c1’›ôý@8™iKé®pbÞ™Q‘úG@騫§eê8*ŠAí+Ó6Ú–è`ëiÚ¡#ƒ/ª·FßqPzbCTgzü§‘Ú[¤_#I5ºÚãƒ(O‘hÓNÕät‹jy ¼JÍLÈÅâ‹4È–h¬E5n¸¼œƒköôsDÊÖ…0u‹ Dë®P~PSsØ“–XHÝT“ÔÂ)ƒ~¿Im'.lDM@>as(¦–ÈUEÉ‘»úFã-ß Š]Ö°㩊@ÏqÔL4¢ûÓ†"+Å Ø FÖ©@ t»[™?ÚT›*{™˜”%Fn±éP(ÈÏA!¥½‰b;u‘¹ÚÇ´¬'š—7'éy¾ ¯»ú“ăÒÐÅ­zªÖúĵ@OÍ¿ÌlÂ$¶Zór  î;Àç´K9áøé2 Á‹bA³sí¦P^܆iÏ­OiÜÆÂXõ2yæ·c=˜X7™HÌÔ*ÔFRœñwaä=ûF­®Yš¤¤×L‚E¦J¶U…Œ˜%HÈ8´('=¡-ÞÂà°ýÄ‘d±<ÃNEŒ]EÚçÌ Q¼×¼Rж©vê˜~iš=FÆ Œ0³Ö(6n87šÔüQ½lä^—Ô]¨VÁ•Á²ÿƒ¸MWƒPY*­Û0u:rŽôŸ•6\W¸’•6 ´²8"ò£¦ð\«“|„RŠä0›AÙAVc´úñ…[O¼îñïž"EMÃ-eº›àG3"áXÄ×§L©eÝê9´¢jCÂÌMØFêôž/-_@ŬPúA¢„êU—vÒ×½ÿ˜æ¬Žå”€Y³qÒ]§"º‡°¨Eÿ ÷÷‘ÕM¤ƒpGyÔÖRØÅ‘CRnEä̈ɶ m¶ò¿cØÄ"±´ÌÆU¢ÈûO1{Zü¤“å@,[ERÁ½¯)}ŒˆÖÚxŠ)M€³À=↣h¿Xê"âç¼H ?¼¨(R t¤Ê¶p6âÜóÔ\©¿Ò"ù9†-Èàña}ÌwZ÷Áš—\ƒÌIäæãp ‘ÞEwd €•apDk.ÜÞêx˜·ïqØËQô*äNŽŸP‘ÖrhÈ6‡J±J™Åÿy›ÇL¯¢Jõ”¶å>³åµÔ^Ž¥Ñ ggáš½µÆÓžÒi©ê©øÊ3ß±˜ã5«6>M¹Ü1hên®kÜuíµ6¥P£‹0Dìæm}Ê6r‹uŠkî±½‡OXô,ªZÁ€È¬–¥BõYȓ̦nÅ€·´Ãc×õ™È¸éI8¾$±ÎØäó#-õªØæI»ðc‘‰ë%õ”iÇšÄæIe.zM¹éˆtÇÝñ0‹NmÜÌ<Ü|Ó3ûB\‹ÚDJG-“Úz¡-浺bx)lõ„­{£u‚)¿Ó#™[nÇ2ݾVd•Ræó\E/y˜tÇ׈¦F# dM©’ á°º–^"a·¼Ë›‚¦ä&KÞ'„pGÉý¤¥Hrã™H®F‹¬Þ!Ü¿2ò;úÍ@Ÿ'& aòðõJŒyÖOÌÙµ¢ Zjäf&ì§’#w\úM!Nèd€Õ*xmÞù€*ãÍMOÒ5RÇM;·ce¦ÔÈ+Ç@côãJĨ­ô2z g*zˆh6¹B§]V‰`éU®F|²Š'–£-šöÛÄã¨eS´œƒé(Ó×k€ù¼çxµ+¯Z†•jn.û\n š£h”ØS¬äsæ´³bÕЫ'ÃÅÁé9Ž)n?xËî&cTÑ©ÒØÿ•W1ZUbãC@÷\À4™šÊèoÒöŒ­HØApæk¨6®µ¶Ô àtu½§…Ma¶½ž™þ†!ë1ù€uƒl`@;} Þ3¦¶‚ŽÝÚ}R0cÅA´ûDjhU¢J½/'áq «#+u8#¡„¨¡Y‚1jm{)Íiv×§¹C[1Tî ÔA¸÷t}U26Š5HÿêOôœí]'ÓÖó)2Œ´o"¸ÈìÝd¤ Z•jU)ÿö_ë%8<ÉEö®Æ8'ô„K#« 0ë'âÙ”‚®/0LAÕUu”EV_˜w5±;[‘(¤]:üÃ÷ôÕP×í4Aÿxìaá°Xã•ö‚›v€AÔÓ%©‡ò,QBäEžÓX ]AÌ}rf[‹ô‰ðö¶ æØõýà˜Iè#tìI±âðïhÚ)›þ²PUÌmÄĬ¨/”b÷˜Pv´4¶›^ŽGMen§Tmy¤ì9‚'ušóÛíÀ¸í=UA»-ýGh¥"äÅ( ×`ôɺœ‰ÖÓêÍTdݵŽlxkN RµÖòÚL B.7 ûÌò†Uê ©BW8¿ðg‘±gUê²Z¨È\0î&|B‚Ô£öŠ68Ï´¥Åf¹ˆ×}¬@ìoÓÝr-yæ^o<ÜŽfÙR?´ó'Ö oQƒÓ±š Å"H†CÍ1•ðÔ“Ä{¨4—‰$´É½¥t0A‹Z77SF‘½Î%j‘Zÿ¦'‡¤b) Í¡šaF9œ›%€Qs̽îL'æ=¢”)\O8#"›5ãA¼™|¥ú'tê%ê·¡ckœÉH8Ì¥H*¡cÄÃI€Æe¦˜a‘c1i„Ë\öšý HÀ«Zöгƒ»#ÖRîªI¹“Õv{\ã´Ô¬ÊcÌà°±³wo8‹Ýæ´@ª€Í¹G¸€ (´j¹sÀA¨¡ÆêcÔŽÒ@QxwïÄ÷8†-{H<âSM ÚEÓ[dJ(`ãƒÈ…jUK0oÖejL*\cÞ˜$\cÒ!4ÁÓ‰©«nÚAÒ5eÁ¹÷žóŠƒi÷F&à‹_ƒ+S©ðfÜMâ¢}‘Ö§´°{ Í+Ô¢E@~R nkºâüYÏë_j”Æsù¤ìµA-N¡'›c ¢à"K5°1ÞnFIv]ß(yE6ºppqÁ L«OC‰‚É#i­`ç±ü'‰ŠÌ¤²GQÚY¤ðªPtjW{ÝMó#¬¦›’‡Ì8=䞈bÂÙ=£Vކޢ˜¨Ÿ¸öˆ°­Hí¨9g6~mÖ8TD£V›l MƒÈ‘Öƒ•ÚÂÒ=EóPªnÇ¡ï'ÖSdÕ2›²A F×%‡¼ðZ|ø¹¿Q½” d@-~‘ ©ªºæªÜbò-6£Sz‚ÈØay˦ùµ…Œ·IUZ WŸ=áL]ñ-0O «8l ’£¶ÝŽxà‘*MI§¶…Vm¤uèo­@¶§YŽhM4YH \u"aÙØ€}c¨Š7êìn#~Êí°u=%«•¦O$}#èÑ<«ƒ¥'¦Ö(@¤Ê£‘\ ¬ÖPFFf®åY¥ØðsØÌ4™ù‹¨Ä®ïÖTÙtH¢T©¸¼e‰#å˜P|×úJ’û–Óii…üµPƒÌÖŒLÒ7vÚˆßIWØ0omíÚ]" 5+ß­„?Pá*àœæø>°þþfÒ¾Q²·†jèQFÚlÖüDÆ×Õi¼$­N‚ñס™.GÄ´­B¹å9ÒHêÀŽgӚ¯ÃþÓE¸~³’ßÔ‘îó5ÆÚ,ˆiäí¹±„‰È8ž‹Åe”þ'¤p¦®Š™¿i[‚Hâ„elfÒ’€iÃë‘:éOàÚ¡`ZƒÃ©ðŠžùz«Yy™¼ã_—˜¬D²˜àé¥z-j”Ù-ÜM¤–=ånŒ8©\zÍi±ÜLrYïq˜4–°¹â+iãJí|Lm9a‰hÄâ0w ÊZ•4½‰cÁGÇQ⢆MíÒmAcŽ$¢ên £}éƒÔ`À‚Û¸‰¬Ä^ýc* X\™%F<œÆFiuGQ'bÒ¬Ú&ª‹œƒ7Wóh%@71ª†ÄÛˆ#‹˜†ÅÈÄ[rÁsë ?ÒKʬ7-‡ é!ê#€Úw`yvØn\¬Ž1VàGÓ¦G p.=#°È™´ÃT‡M½DĽˆ1kP_´r÷3$—A»pé (O0!øŒ¤/pdF_©66´ÝU¼DcÉQ˜ª– ©«óTUì A'®¤®õÇÒ!‰#n1È´¯ð”_¡õ“¸ …œ]¯å´`¥2ØîÄàM©^ªÓ »$fñ•T0ñÄp•w^ØÌÔí<—ÛNäÚâÝ ¼ih¾˜j«3 ઎²U鞙IJ¯›D…ZÆ“]âÇþ UÍU3¦ÕYN9Vî$ú”Þ|Eò=gJ½#Zˆ±©ä ô‘0jv,¦ÜMJÍF׸=miMkWÒ+ÿܦ3ê"j&NI‰´*xv' éÆ8‹èm*¯OêEî§*{ˆ—PbœC¦yÍ¢ÎsHalÜñfT¬”Ò£€Û¿hô£¾¤î¥Ç¬çÖºÖ®,¢WJ¡knÏf…@µ:”[eD6ïI™û¤ Q-{0â$Ûv×K¶†é6†°7’ªîŒ R¦þjCòA@6i°b?XÊ ôÞùR:_ñ*¦´€³±|:'‡±†N²X‹7y5Td6V˜ÌWŽàY}„À¥° µ² šÀò×v$6÷Œ7ðÍ̘› J7 æI”麓í¦`ÚfKõ“¡>!…¤¸w^1*–|–]F˜œÁ9n6¹±Ó§ðpWâΣñ©þò?ˆ!]ueµ¼ÆÕ|Nr<ÇQpÄ^êßÌPÚQ¦\T\åo{õê%ú-EZTÔ¥FýäX„ÛÖ9@ðÖÇ6‡.ڎ݉x€&¦šT_lÆ}‹O\—Ò¸¿å3OqµÈ¼²AIw©ÍûÎV—úaÓ=:…] ø¼4¢üÃÚU§ø‚Uµ:êï ®=Þ‹‚½Œ6ýkO Eö’}b5I^#Tù•€ˆ¨ à‹FbsÀ‹qs~#°à™qs4½Æ!QÈokÃZ&£Ø\Ç¢ˆ@{|Þò™ª÷Ì[¨"ã7›Y’/18š^Ø´[çœfÅlŒ=JG¥ã(ÂC•O¶¿x,â8´Õ¹ñi¤ÐHj—&Ó‚mŠy‚ V±½¬* ›yšÖ<Ì€m™&ºY±ŽÖ„ðžÐQ·­ÏIª¶0?Ì ÑÚSæ+Þ-maR²¾HU1ó}hÝ:àôï'©r€“‰Fš¯†.O"À’¦¥{ãеzì«ÀÄ-1VÕÆÜÛ¤M@|BÍp ¼“Pް54¼û‡Êsy£ ‹Ã'îAl(’swT"áWþ^T·£N°ªêtW%´Y#;^ÂM©ÔšÌ<«MYQx}ÐHB\Ra’y3tÕˆÖ8pM7ò‘Ø&•‚Ü“åQüÊtt•6½Á(·!¸'¤h+[§«§¨¸0aci=vuV›^òud®ÖöVÛÿ¸‡¨*¨,EÀ³_¬¢©üBËmªÅ{Ž‘ÔîÀ¥®1c Ók±â&¨7‹Í2zøu´ÖCÓâã‘ÈÅqŸlÀ¤Æ@{U†ÊžND6óD”!†`x„üà4£NŠHÚyèd•³ »V§%E›´b«Ó!M­û­†Èmk`ŽÒô Pùmqé ÓQê5^ÍÒRÔÃ¥Ô]ºÉÖ†wô<õ¨müÌ_ðÂËÞâ6•pFÚƒxõ›Vžñ¼ ÉvÙóRõZms§'wcÌÅ©¹M:ƒë&V¶ob;Fø©WpÝC•¨FBAúIw~¼é0b›$eOy¡}®=i©E&åOi•väõ*Þøý"Én³LèÍÔÜäzFQ{‚:4Ÿq\ïA67âJ<ÞÇÐ|ÇœsèVµ³ƒ*¦6±õÃþåø½M®¤gØÅüaùÄbÆÃ<ßÓwÏõƒñsˆVÏXèüF‚ÆÑúO5P;‚?i9a‹s¢oóH/ËFTbú[ö¢ù`Õ6îfT`ÐZIM7*s) å[Hh°k/S)vkt™°ÅÿHôÔT¦À«õ‘c7q´É×]>#‹:ƒ=ãéª50=Dä –æj¹± ÃòN£®‘”ŸLÀNœ‚}ç4U7°0‹ÛÌrz bÕzŠè‹eÁ=¤-VæÃ˜5 ç3) ¶LÔƒGTTöƒ›âQXãØAî/ E¨¶g˜n¹‚NÐm$‰•KµÍŒ¬qÄ~¡0YmoH„r9È#-#ÏŒ©š\ B]l¦ÑNŒ§2CÞþ“Çp4AÁ†w&H~nA¬hó-ïž¶‰Ç÷ôæUÓ N-§©Pòp&R¬ÃÊÃzö1Œ¦ˆz‹˜­œÚHÝ”ªµé±¦ç£qúÅê(ÔEep}ÏmäR:ÆiëÕ¢ ’ò¶D’ ©çkÚPj–A‹žOIuoIò–$âñlZÄ dZjQ‚QM4U˜³& ui.¥‚èUIó;ÿôåê­¾e¿íñj4‹üÜ{ÆNÕ2SEB0Ù6žØ¹RoÔuŠÔysÊþ’5MÉᩨ¸õL¹õ®ŽT©ÚhÝv“ǧ©Dª ›fsÈ Pî ÛÒ2ªœ•80ЫÓÚEÊä{B¨)ƒ=E©«‚óÞ@¶PlV:’’-h×D"ê§iâ2‚¼dN Û©•o5¿Q:Zm9j‡˜ N}[p'[áΩP¨8"säÔ&åÂ. ÏW%©U&?]M Bè|§ù‘ØîàLÂk;Ó±7ö0+ ¨»ÐÙº‰MCeª7!ýD]j¥æO^D¥HX›“cØÏ ýDf¢ÄdCÚNAcìDé;ev†¨6¥W*O”öˆø¥&£Wc~±4Ûa p:†Ó­øÓæö™òŸcŽÙ[õG8äÏn°.N&œ™¶Ke¹Ïí †&ïîVþ‘ˆ Û¤ÚÎH'"Ö1¬ ¿'+SQP쨤v S×Qxþ ›¾%DžV›7üýd«âk+0üæÓ¥ð@)øõØ»¤=3‡UɨO|ÂwMñækzt›¥?æ©ÿä"XÜó¢?攞†óLPÌ_ëˆ5 Üß'”Þªƒî`;äÞHúÕ7v¥RÄ^ÙæD¯µ¿ÌcéÚý%Š-¤Ý 6&JXŒ¯éÔ¸±˜Æ´W7„_j 7ûrfT¸ùreˆE‚ùºÏo6õƒM ¼ÆQA.“ 6Œ¥rÂØ¢sÄnœ“P/Kʨ­ˆßì!-{Ô'¡1»¬¹™iŽ9ˆXòØŠqqp8æA3 ©È&OQvœdF«å“Ó|ía囌±I´gˆ ín;Ìt\¾â›V™µÁ¸ï. ¦›mbkÓR7§XJ_“ IïhÂúÅ -|Ÿ/X{CƒÀ‘µ8êeûá›çé —Õ>…|Ç14T;€nIÉ>ë•©_Ë£4ÔÂÓ¨Äg9´mÏ“lÆ0ï´ï¹L© Ç2$8Îî½ ¡(L:ÌP[¸ ýdqzjÍÐI[PôîSo—¸¨²±!ÉÄçÔ*)×ö›STN¤ÕsmÆÄ¯cñ%Μ+R ûŒÈT ¤03¦Í†­ua¾šìýezÆ­½†óù¬L£áÉæ {t&SLRzU±Ú×1=§ ´ª`³#âãˆêÁ²#)¹·KÉ«i·S¹±ìeEè†$£?0&uF;Ô_÷„Ni¥¶øÜ:Ì4íf^'cm:™4ú‚g—Nœµ%¡±ÒÇ2åcŽý¥ºz@n }cΟN? c¦¥¦ÞÖe X^JD¾ÛÚüÛ a¨PNe[lªŒhªhÔ«#>ácÍ¡»ÊmzIj§P©¿¥åûUܧRp`ÖE*€,&u¬F…±‡˜­¬ ÎԽŤ®‹Qp<ßÌç€u°<ÒQN¹ÜX!Ï´ Ê+.àEùS¡S²Ù¶·"t4oº‰¦Ü8"BúD=?ÜJt'ïi ßs,w2ž†Af÷Œª£íU@üÆ*¯—nA$M2|ÝûÆ©µK.sSjù†LÐÞb¿7í$z” Õ\n7°/õ™È‹H¨µÒÄq‘(¢ŒÔƒgóÞRËOà•œYMg°=úC8F±³ñ¶4ºm+e‘C0ÿŸYÊJÀ˜ðaÇÍ\ˆØánT€x'¬=(³»È|A¬®–r{L¡åÓÕkóeþ¿Òl  Æ÷°‚3m¶bÓ Ø“0\Øí {5ßX`FÑc{ZÒdž²ŠBäžÐ¥Nûb&\ß$°µ¸3Ù'¹ë"jÔ$ØhC>±t°ð•À;mu?n!à¬y™qÄÅ p/ˆt0Ìý˜Eðc*.Ê*O˜ÿI)ë Þö¼JÞÙ†®-~ÒCÿhäÌs´ÚóÀà±ç¤K›˜ ê@àHÉ¿:¶æ` 3m‰Ò3LGµ•¸šËapn"w‹òOÒ6‹ nAŠyO´m6ÚÖä%i¨¸$ŽÂ7S…['ªP`nž ”ʼn,ǧiE6J›õíôÎþMá)-ƒ»uÖY¤_ Aê`é©kv#ÌÄp¢ÐµHU7!™‡S:*>åë’'4üá@Ååáö¶ß ™¦4&ÛÛžþ‘eÀ`zt”BœûÉ+SjfíÄ!eQ’"O”ÔÊtÊ+‚I²Ócé#©Skî¶OŒs`æñ: ÛCù½J¦ü°*;AD,Û²˜[‰ÒVQÓ_͉ע­KL4ö ¹w÷éûA£ CmC+ J.zßÒ 5C\ÖFÚÀà[ªL9hSsuº±[æ.™j(Y È'•j ­N¢ ¨7iBS5Fë…-ó-°fu¬$*T]Ô©¯›DY¡[I¦ËÐŽD´PJ 7ÝÍÆc˜!³¤u7†œAJR3{{Ã}¹.W¾e"‘at/íÓÞð|1Lݶû“â°´Uô=cJµ2 ؉…i3 Ö n­¥Ò¶Ö5t"ÂZ…ö@úr¯NÄuõxU(T:\‰×ÓýÚ‘O}eµþlþº5Ȳ·f2Ó‰¨Ù¶».y¸=¹zTê©dbOc<|è[ÃPW7Cý&S÷‘Î9’AªFBýl`Ö àR6±7¹Z ªÔÈór¤uœÍR•JTØÌÔº*{}ë­îLR²©Ùlž±””R÷Z"¥ÕÉqp §HÈìMPê|à ;ˆô£³âÔ ­Á(ŠÕ@=§›áèÇÑM¸~e±eMâU ¹]‡b#>ÐîmXï¿âàþ°F’°b^ÝŒ]MÈÛj!×µ¬eÒSKP´ª­ˆ= oŒêÅlRA¸B@Ý›u•TÿR›_mýD¬Fxž- çë&ÖÒ%Râåz÷øy«Ñ¨@¸ëÐÅêY†Õ8„õ PË]-¸^.º^£‚ Žo.¥X|¥†;DjÜÓÕÔüGù# §LÉÁƒ£Ê*9Mæ½ï:š_'ÃuB„õ—/s¾)AhêˆÈÃr‘ÔH _åoÖv•F³Bi7úÔ²¶ê;NO†Ä•·y®4XYSNÛ“Ä@K“wn„ÚÍn ÐUðz^.¤c¨Žæt>=X]5?’±÷1¿ÓýBú× ¥—Üÿëùœw¬ÕJ‡$µÌçï-kȉkàLwóÂóÕX¾yуtŠ USó[øýâ‰bÏ,aahú±…k|ÂáEϼˆ,£ÜÍÝa´ä@ wܹï§ÒÒ Ø¸‡M7)üJ¨›ã´©z»Ji)˜ª€"ÇÒP´ºŒÌÚdb®1ƒ Ç‘yáFÃĬJ¡àuoi8R£=È (ù˜ð! ·,'~¤Ì©SxÚT(Š@ ޲Ji°\}!’Š.y“ø‹ÓžóU›ä˜bµˆWâòj•yÜ Ïy•µ½z­å½æ¤Ÿâ.vŽ;ĽMÂâÑk×Ú` šÂÅoëÛ­{Æí,n{$î.?¬PHÚ<Ç=„ðrFzq œMä…†oL’y˜”XÖÄu+Sés O ×&ÂXµ€"þ½d‰`Lr0#fÆ£¢T–§øÑ¿hŸˆÒÛ¨kez*Ñ#>×S•“µPÕÄ\1=hÒ=âª=”)L•È'‘$ª§q¸Ä`©˜–7–ü3u0ÕˆÂá}L^—IV±yTrOHÍv¢•5}>UsÞjÝê ýj¶¸c¹O3Ÿ¬)m§‚:ÌJ¬Íy†r·V Lò¤JLTTá©é5êµEU-×ÈÎàÑ¡î×a5ŒëIKØ©Cê/ 7^꽌jVZ–é‚G⊠7Ze‡B µ<®Á~B¿ùBZ·>[“Óf Šï{ cÿ¶a}¡ím áˆ×QSýJBÝØÚ7À¤ͨ¸òU±š£+Í™„žVSêM¦pªFÒÒü ò8ûfÒŠ?Ú³ŸqË’ØéÄÕ7>E"ô¿+VÔÕjšÌ[µ¡Q¨µ ³7 ƒ¢ø}ZÀ×®M:=ZÙ>Ñ]©“OIA©¥²æûŒ.|+Sm5gv¿›ôµ½=e áïÓŽC‹–Fv„¦«S±ä{LþNº•ˆ]˧¦@æh4uZw§LOLî3“w$)÷–&U¨ìjºe@Àb¤¨æ@]lÄ[ëÚ¬ˆ¬EŠƒüJ>;Jô©7.½;ñíâü'r›T¤À“×"Rý.zYÜ#w•ß^ª™]­ê/‡s¥e°ÈÜ;^¬¨¨ã¬Gï7:¬¡)ÕLé)|%Iâ¥_Ø ÎA›¡É7±—üQÕ4zJdd©coSÝ‚%BÔ5Bxº‘)ÕiiêhF–Ûÿî'Q%ÓÔ¾ò‘ÃHª:Šº=Nå¸ ÚǬ²¤Ít'qÏhZM9Ôj)ÑQ–9öMU _¢u:K Ãç¦9÷Œÿ éí^®ª ·‡åï+Ë¥ñúßdÑ&‰±v|ýƒP&Ýe¿ÔF¡ê‚M½ºHÉ7&ò‘ý¦UN§ÃÑoz×ôfÛH7±ØÞzÕ,¬ë/ÿªh©Ü&ŒÕíâÚŸ‹V§M< tè–ò¬6ÿB)ü/[\—ðÈÚçŸôÊûf¶ŠÐ5Ïí$«_W^æ¥j‡¯™±'4Ôµ‹'´rÿWN¨oƒQÚ©Tõ!m-:&—N+¶—a#îé±¹>¶œÚZjz CS¨Mõˆ½*G§©×­Z»µJÏs~ó?;Žèøó”±ÓÒn‚2—Å*Ô¿†4ÆÂæâ|¹¾à7-£:Ÿ)ú‰Çê¾²žª«&÷ÓRpx!­ý& N˜>ÚºT^¾V’|?YF¶‰R¨ÙTbüë µêפëP Û­§<í­XNˆ‘þX7bðu?ÚÏN ®/æ#´ž“2§ˆ«b0zZCñ]oˆ¡å³úÆqÚ­Å•õ%Å:îw­A±¿ÚØÍ5Þµ[x´ˆàâsþN§M¨ÒC!ÿt¯á•ÙjR©´‡¦áXw¿ÿ‘³:¹e6[õó(×.Í[¸ ‚oãÈ(ëkmZ¬úÃÕUV¨ÍÕn=Çÿ³_èLô€u¨–Øi¿âWWNí²’Ú3N@qk2‘Ÿâ*µŽà‹XÚRö¾8ôê[p<Ú1j%a¶¹³~‰(˺â*§”ë:c¥MF‡PX«à‰õ¾wøFäZtëVK‘ÀÜÀ~öŸ!¥®»’…a½ ôŸCþ#j‡O¥²ä/+~½­9óƸ܎¶›R©±Ô« `…fkç"[_â+U…=màcpà Ÿe£U ÓV |­ƒ7¿ÑŸÇ2×ãé+¦-§-þÛÖ1~«¹±¼#§«KKUj'peªD¤tU”س^þ‚ VªÃnìm‹ÆVxcý£1(Ø]F}zH%Zcwš R[ oÙjÔJdÌø¼éQø2é´ëªÕÞ±quÔ•æW”‡+•£ÒµTñ\Štÿ;uöï/¥M•ÊÒe^µ_ûvŒ:•J…—F\a¾âß§H“©Ô³\Nÿ—û™žéê(¡¤F$½f·]ˆOîl%(šjCäÕêàNvúÕ3U™Ï«^5µ¦l1oÚh-ö±áßÚ FµO-êK#/›Öu~ MHbrW0½C;sµ¯N† Óû50GRÄŸæ#í4Žìöо ÍSRìÂÙ´…—i¸›“YµVâÄŠuz^ÒZµ«¡ »¯¡‚/|sj¥¶ Ü£¢9‰;W¨Æ×F÷Q7x¸-JŸéiê´6®ä;õl{â!B¶S&¦Ï+RßÈFøq·ÜêAéçÚKSý:a†ch…<bO°€q_êÃûE(пú7â«í&â!‘(–!øpüÔMsðî”먒ÌúK©54ƒ+AÏþM u*¹§§¦{^KhKqƒÄ±júzʤ_aÕ¨ÈÈŸ˜Åê«>¥Ú£œŸÚ¾ˆõU*W¬Õj½Øœ˜†·V…XÞÀñÙÄÜŒÖÚç #´Ô껪Ó$â.2["þ‚ttHR²¹!v‚l=¡jß•vÔ*Hü¦[ Õ”µD•âã‘ë9ʠȤ›ògCÅû5«Qmµ3nñ_Ój$;k‰ÎM(³Ô¤Ž D³½]ìÌn×ÍûÁ$§{ÞÜûFL˜­t4:Zt*ûZ ·=q;zC¥­}8 Tä’0 ¹ýgÌSº `œK+Ui¥kØ“p/Ôsô™å4ˉµ÷ªŽìnÌýzÅ©hø”¯Ô6”ÕU¾õùA·ÿVâGQHÓÔA†¤û‡·úM@õ7ðµ&Q¼Àwö‰ŸóeÇŠnÓ‡R¦Ð*›‹ü­ÖÓ§®Ôxš .­FømcŸ•©Ijê¶›pg;S¢ur »yÓsNª%E8"öý$ïUÑN©ÉSh±ÎÓ隦ª’)¾æu¿ÄMSþ§UÓrìp¢Ý¬MSÐÔÓ©Q)µ˜•¿³¹ñ#Lkª%¾ 6¸?òÐå{2tùÖª•­ö0k‹îL´hÐÑÔ”±â¢‘üNº6ž¥5vÑÓ ›["ñ¥£ ) )áÖµÝ\/hÎ]àÏ¥ŠåÅ©QOÊAýL]BÖ©§Ô©BVûg‘ü4³í5mt {É’«¶§Ä¨ä·ReÚ8¥¬¸8Q`#Ž®šÓÛIR™½÷výâµÈ§e[Œ‹~‘ZjAêyÈÀÜO¤²b1Â5ê;ßå rßú“F »uÝ}¬-«¨kU'€0 pZ›cŸ¬ÔƒUÓÕj…—í5qÅØÆ.§Rr5Oc%¤ÆâÄ w•Sβ4u:“˶2žÖd¦}ÐIÑÜ~’„Q¶÷˜¦4ÔS–Ó¡ïk‰WÂëQJ e¿û®${~³WÊC-¯ 4‹âZuJì7s|‰ Ñu­qÜfv5ª5Z%¬ÞSÃ[´ä—e7BAë5TŒ—8ÄmoöœC:±ó §¸Š¬…sÈ=DܬwR|dÜO=5#Ħ<½Giª7¥ºŽ Ór†ã¬SÚ…”~Uf—Ȱ±æÑš”»Q‚Çh¥Ü ͺJ#µ T¥¸ž‘¥ík™RçOQÉbQ¬zæ5T¹X¥Ì¡moIT /¶d˜NÀEn&I‚ÊÀ©0ðNôÆr"ïëxT¸c…ë$í#þ«sÍAý'˜\úôçÿ‚ «p='&ÄÖ™ã=4Bá¼c%è1=H0 F3‹uš Š@·¤oY¥b0 .c@6ž ˜õA·<ȺU~áSñ*¸°æDÛý=ª;òcÅJÕÁ;xÜx’WuF* 9Oö˜›ôÖn;®Ïº-‘¯p.=&xÎpn=…¦‡{âæhÀ’1-ÑR7ñ*yõ…¥Ò½f§´~§rL’@é3oÃ"zÕŽ¡üë´”v˜´jp  97¸UîaŠ”“êe«¾˜³’p:úA¶š‘ò¨¨ÝIâPõUü€dæˆSuóc?Ð:u›P;,¡B3·¤Ÿk\Xíô†žSf¹·ï N¤ÅHÚ6‘ÄF¤5ZžfÀæUFûÈöˆ¨ m÷õ„õÂþÙAAèM -ɶÜßß²U(,$qTNƒîÇ[u¬Â¥‘°Š ÈvºØŽ™é+rÝ Uii3Ñ<ÃiB}:¤ˆÛÄÈÏ•ÿƒ§Õ5 ªÔÀôï'Õ=Ýö­ƒ‰OU/e ;¨Ô~|®-{ö"Wðõ§áVøyóïé“Á#´çWSZ–á—Scn½Œö‹Qöz‰â£]mÈš³¡½·Ä©Q¶ÞÁqØ,6ó ¨ÁØ-¯Þ7ãT~ñkR?s_Î-ÅúÈÕÖòåå;ƒÃE?»®›ç©{‡Òh«Þ÷M¬=§ ªî³1¹æÓ³¢t«ð Pðjoë~žÐåò˜ú“§ X¼qä—ÖAr j*ù¿-ú˜£×f ÙÍÁ= s€TRà¨Ç¼¤Ä’åßy'uùq⧈¸aóüÌÚCÞ6˜ØwÓúMP§5t#Ÿ.b*Y4fÖÝPÛè%zmƒr‹”¨,-øL—^6ŠTìnÿ¼Ì÷ œASƒ6×­kGei»vÓµù›M0ož%´mæ"RzÜJ€é3TSNÝ1Œ6ÞÝdÉS§éT±˜hâsŒOIÎb÷ß©¼ò¸ÚMý$ugÃëªWðÜýÛàÞGñ 'M¨zG dzˆ§9Ä®¹ûgÃENjÐçÔC2êõʬFÞñKU—ÔAë ‚Až‘l<¾¢u`ä MЛöždƒïLÛ#™R0f³sÖ¤3å`ÖÁ\À¬€X­¶žñõ¨ ý¤¬ÙÊ·0†Š˜'æ’ðH”Ôò²‹‹ b+b³Y¨^‘íˆ1©É´“–éh¨„9šªY­Ôâ)”©—làa9 ÁTYGEÚ5úžæ !Ý‘èê€ÿ¤iÔwþ¦rˆ9v*SßðÊ76ÿyS¦âgÃb6¹5P”·¬hPZЬXZÓZ‰6¸¿¼g€ýÄn¸Œ§QêyCY{!m$&‰6•RÒµCµX_Ú„ü"Þ¦Žé}‡`îÍ´•B¡¨õ<2ª¢@C–ÈÌÝ=O °"㼦¸ñCéÖkÊäu- \à{Å;:›sê –c’xéh…˪ÛþÀë®{íþdtÖÖ,ÏNùžz÷«·ðLáÕoP?Ú*£'z»|£'¼Åª×ç銢›‹˜oP%‚‹“Éê'¼¹7ós{«ž·ˆ;Ä/ówž\¸žl=d×'¤f•¬¦ø¾o,KªVØ‚0@½Ï¬EWÝ’Oë2««3*›mïwn=á!Wð÷ïU³á¡aïÒzw{³¹êLN˜í§\Ž©Ç±w®X€N; `Õµ+½E³5Ê‹f%ªnósÖ%œ—ô"m¹Ž%nªU|;îÚ »ÌU 6¹¹' Qeá|§Û¤&à-4‡G '‹0zÚr]…úÖ=ê’O¯0Cx£ÂÆñò˜¥: ­V‹h+.úDþiJ-M‰Î Šõ¼c¹PÀ_Ôý`ûEª¦nÜT½ååNbïzG$Ú}Ãj¨­ÿK6ÚôJÜõn󕤥gÞËb‚üFShê)Wä© qï]©Ó( Z»\TçéXT aÍ¥_¢©¬5Ðy*®ñoY&Îßù–ïfô7PÃp½úÌB@±B½Áòž='¶žWƒÏ¤‘ÿªR¸­ó,/‰­Y+ ! Øwƒ@x4š£|ì,£úÆéÂÔFLÈ÷™¾éø‘¸1UEXÚ×PG&$\Ñb:zÍ@XÁ¸ý£ÐÜ[‚;ÉîoÖ6‹ØÚŒó<á TŽ˜˜"µ¦¢×˜ÏnÃÖ/S}ÀÜ JBcºmÆmðýjiõ°º0ô‘®ÓbI?H ;ÚíˆþF«ø…:t5òœ©î$•›6 ¯),ºŸ†H/§ýJ™ÏP.xÅNÈ6 qÒ0!'ƒ&J»XØÞUOUu³+ ÄmÁ¨±Ãà{ÉUÚÀ€%ÈÈzXÀ¬ {¬!%ªob¿¤ çÌÝõ2¢:qhuüúuÊÄ *7µúuŽZF¯Ò9¡2±™´È" ¹½í—ÝÌ*3SLï6÷âe1pæUYw"Tî"E¯ê!¥P'þ˜èñ `Møê%7ü>¥°U¯i 6'30²ªxuokˆ¦¹ã¢CÒ?™x“•=f¥*í+Ó"ìþdª:q+Ó›íÖUFÕ ¸Û 8BÅö7È2ÑÅs~‚ñ‹&˜\ÙœçÚ¹å|׌Þσüs@É™¢ ½d’í}Œ7[ö‚l§c× Œtk€ë<‚ŠŸ=LuHoå€=äu‚@Ä·QWLT:]ˆoIê”áë(¨K1ë _`¹ç ‹Pïv ØvëfåÜîubj–9˜„îÁµâÈ# ¶õ3À09’0UPmo¬öàZ÷Šp7¸OŠ.ZòGÖ7" ¶{wžñ‰~:EÒ¨†êNí<ÎA±7>ÒJ4–56Þᔯí#u îca* eYrFc5f™|‹”Éee)Ö1¶À3ÔÄ%=®"1Øu6d†•™*Ù ,mÉiµÁÅ¢ÎÛ\›ÓT°Ä‹³užVȳXò 2&ì æbº÷’STø—ûƒæš{E_c‘l6±TòpÀÁ¼q¥âÉ`Ñx'@.Ô# ¬pOƒ«Ù¹<5bµûA§ÿñiÑ©ø‰±¿«*AVÖ3-.TZÿ »Ñ6'ÐÎy¤/ó(2ÿ…°Zþ‹%Aµ»Ej(¨ôŸ•62åÃS"0}¥©ä^R(x *×âüEÓ§µž@Äu ]X§öЇ½-Í»ÄSõâbÒÁ–¨º›â,>Çà÷™Yiì,·õ·I&Ö¥½‹O´œÓ*Óq¤ZB‹—ó\€¦ö+Ëu4Ûo+_ À†©?sõ…A†ël°öQjmnœÍZ–·˜ƒúÍ| Õ‡æý 3?4ªB†ï1k†ù‘ ö™½žâm`ÅÈô††›Zécègµ˜©eb=Ä‘* r2"ÛÍ8¹[›Üt´Âà|ËÏh€èëø5à œ0î ki}ŸRWðÞàŽÝ&9B|±º¢*è)?T%ò#õ!u!°L ì™`Wž!*0b OCiê$ÅRC¸{Æ5·xéÔZ™ìc…m;€¼…½óMœiÈ äóí /E‘¬g¶˜õªJ«Ÿc(UFé-Áˆ¶‘LɼyÓƒ7·"_£ŠhZ¦œ¯Q$íHí'•Àé3Z›j ¤Zgû§˜’Tüëòÿúu;zIÔØ÷Äm&#ô„ëg#¤Ï^![u;žF/ÖÇ-†§ÅâX1>ÑÔÖô¯ùLhe{£T‘a®¾àƒð¨“OsXß,:Iµ^jÌ{›Þ1V% 2ÜGT`ª`&0¸]¶ƒxz‘Õfc“&bTúJ[$ɵågHÍ-˜Ü2§¼¬Ã aÜD;6á™·ÜyȈR5õŸ†ÆÂÿ„Zª·¸ŸS%lœ`Þj>án²*^«ƒå6wîäØÅ£”Í·n{HPØ=D^ògœ “ÇI‚Ä`m2BRÜþ‘ÛEòá‡î$Ö!£PÛ<ÖHHp¾#؇Ó,ZŸðçïPî—Äõ+cÏiÓªè¯›ŽÆ2‹#óå¤Õ~íÈèx=Ä0ÊÄ“u4ÙZâ{NÞØ€Lv\lza•™~¢I„ÛÌþ¦ƒ›tÕw]\c¼'Ó¿Ìpô̵rn#i9 Îz޶`Až@úH/g E†zÚW¥ÿ1H‹ùÀòú‰¿€ ‹g™F‘ÔŒf,鸢•WF¨=Dék‚UJz¤nb;‰&ÑPÌ>eþ²ý «iêP8¸ºû‰ÎÿZ‰)¨©u^ÝdHÞÅ~¢]á”VÛ’qYo|oØÅTªEöžAé1‘”ÝMסžgum¼ÞjU4ÁÞ¯Ò!•)ù &äJ5:cB—–©¨…¬TÅéÖú…eÝ´žoüÊMEv,¶»Üt…©Ë©f²Õµÿ ô>ñ¡ àŽ†]«¡µË"†¤Ü‹Äxhɶ m¶ò?oC7(¤)Àéë4n½ÿq=R‹Òp½z@ó)ài p6»c5%Xß©“-R­{_éQ‘ÑåéXb"ânðÂÌ,{ÂtßL ÉÚö ÞòMqcn±”[v–º€0ú‹’,O±ÐçQáœoOÔJ„à†’´[ŒW¬4{Zࣘç¨ÃÌ/nÑh)›|×í ¼ÌoÅäGN¥:ŠC¶ÛñC*.UG>¦DŠËSqàJ(ÕoÃd˜X¡Ô¶=À<ûÆSQí"F³Þö"\·°aÁ™½¦’€c…!×2Zní)¥ZÜØÌV£Æˆ±¿IêÉâQ=HâV­M–ß±…áW ô†œrt×b!©ù‰ éÔ¡¶¦îU¸T;[¼Ô¬Ø*M¶÷àò#=Ñ…¯–an e2ÈÛX]z‰"ÙJµÆ ¿@´Ý "žw¿´F¢˜*S!”ÿÌÌ£¨TÔÍÂÂögGjšŽ˜ºîÝTà q9¬Æä˜òK’ÍrO$̦§Böæ×ªàÍ-nƒÐÅê›ÆzÕî ž¦A«‘$¨H¸¾fã59¶â{@ôŒl©‹"T áºØÏZæã Ú,ã1Š×"DkabÜôšìOšÖéˆÍž°•Á×1_ËÍç±`0<ÁËQøÄZ™¡é$0JµáXm,¸‘0X®s=´Ü9í$ò“QE3È>_í<9 ôžT$’0Fa5Ý®>aÈïë$s“ ™í‚Xž~‚3N.zZHútÀ\ŒÌ»¡Á"hk¶x 7ÐÀ½¾£R¸mÞâðúµ5?HÚHAòÿ3Æ‘-ØÈ›F¥6¦ALv¼¦Ó0xŠ{XH¨(ZŒ§¨¥å6`;LØc­LQ.*%V¹òÊôþ 0ª®Ëc{mâq•^™š¢¦Ïg;•×­KN¯rífCèÁ¶Ê®Gû­,;jh•È$SÅÁé9M-çï}ÄÏDÚ.Êræ j© òè¨ýnbM2Ïet7é{^ThàL€3}3ÛF¿Á¢ ÒéÕ›€§¬6ÖÔ!M:tvŸÿÌbsëSg«vcºðƒšuBô‰d:¬k«°`|<öA"¯ñe™ÈÿÀlQp=¢ë «Oiù‡RAmQK㘠«§P§ñv>Ðu_ÓÒ©²®”¼yǨ­LÃÞ9ê(xÝÔ^‘î?,׿ÕX5_­†¢´ri4Z„)N«!ä^|éd¦¯R›â7ð~¿®£è+RS´‡Äù”«á»ÊéêZ¥66nëS§¬RRÉX ‘ÞߥÉte9‡¥mºŠLy ?HÆR `IS”@<#hßÂüª9¼hz—±øö‹u$‹ Jõ ŸAVâ2¢©­³½Æg±©‰Z“ `» ŒD*nq£‚ÂÄC¤§a« Ûç dF*ÒWN€uÀÍ@ŽD4âbØ?´À¤bñތݗ2ÔNÖ¾ýc -ê[¯XÔ§›冔Må½àÆ9®Ÿˆq@Ã[‰ kS%,9¿15íuP}åÚp 0OIjŸÄÙö„ª”ŠOQúœ -:ÎÖÒü’ªâÔÕ;äÈöä€&£4ÃN•g½7ðß‹7¬#¦¨ŠÊàÿäxŠmÖY¤­VŠ”$8#ål‰SÓ¾ðƒ %¡Tè]º;=mõ:LîÒžv¹]OŠ@²¢åQÀ‡¨‡p¤F{˜4*¶:°&›ùHì hWpv݉ò*ÒPUÚø%VçwSÒ:±.£MV…Tk‚±ƒT²«skßÚU©t¬»ÖöVÛÿ¸¶ûÑv·>°ÕˆUË‹mW+Üt‹aH—V§bGC(j\8½¿¤ ´È ‘q7 ":ú{+ôøÜ9<Û‹7¶aÒ_ ¨7>ѵ)ì/"[€ªHlc©}Ùvž  P\m<ô0´Ž½APª¿U=¢v½6ÚÓÕÕÆÖ±ÇHÕ`RÍòÛMJ¯féÈn¢ì9ˆ ·ÍÓ¡Œ?¬0¦ù¼jW 6Õǯ" EÞ7™#µŽq5x¿e6ÎŽïÊy…A÷ƒJ¨ÏyàÞǼ¨UJ˜©†èâ&Ô¦iµÒ,‹àʬå6¶HÊžñU*ÛX{,KP‰©c“YF¡oÄ™Á·PRˆÛϘwšbH#¡€—VÛ|J)*ôÁ¿¢.+(¢ŠO¤S!Zpe åcë3Z‡|5­ñ*W<©±‰øµŽº¯KÍ¿Ä4æýÿ¬ŸâzÂÙ|BøòÌÓyªÛ¸#öžfƒõ™§Æ¡û§OŒ‘©7|w“êÞ#²Õy5[š„Þj”€×홈sŸ¬õ¬¢çæ3@ãHDØæSL\úIÛ‰E´)ŠT‚æ9i‘L¬M#‘l“,½†2fmj'˜ŒÍY wšŸ5e ˜b÷f-ñ‹wÖµl= ‹[_5÷3måã2%ïIÅÄÅ‘ôVàØqÌ–6šYJœ‚cRˆbQaÆcèö#œzš¶âlj¶°š8™i;Ðê8‚´ìskJïaéRÖ¸ˆ$€£rc*=¹‹sxÀY¯bÙCƒ¥ÊÙxêfiGß¿ÄÐ?PE-ªüÇ2ÜIÉ>’­[+ײäZÆ"ÛN£ž¢©uU79¹°‚xdõ™P}á&bŸ)h4s»ôé0@êb½O l\q C!R ·KÄÖ¤3žÆa©M[vÂAù®a#€ÞT¸ê/2Rø$_„ÃJÄât”#äÑ·­áxI{šcÜþ–!¥å]­Çñ -¯së(©NˆíšP,¨WÔˆjÇ:ªóͦiý :: ËULRjUÕ›v6š—Fµ @'=';P•B¦þ—¶ôöΠâO©¢vº‚ÂQˆÆPs%Wé|ÇP ÇOI‹ ÔUwo?*äÌf.åS1Ü0ƒÈ?s šÜäÖdµI½¥}Vݽ‰c±m|™qqÔ âÁA&) ò &Í…¾°M 6íOv9EM£@;m a´ÞÆÒ€ØÁ+G#\_*Í…­}ÆßX— ü˜·0êT&ê"*`X\{F«½˜X¨·Ì Ö]ö7³Z "CŽàÍZb™'˜5ŽÚ¹0µ;R’²ðzIõÕ]Äbö„ì‚S^÷Übê·šü’H4ë(aoX–©™¬eG‰uÁó êâ'›ë!µÅãè¸vEï‹G®Ò¯ vçÄ`>‘˜æã¤£UUimA”E±÷ëKVž*aÐÌ”ÎÖµ¹¼cü úæ e]ÿ0+é§Va‹²ŽE¸ˆ žø2ú{©ÐpÄ®ã~ý SÑ¡ûö )¨¿¿¤œ»øÆª±V¾1O‡ÓTvº’¬VÛNf£µP²x™¨d¨ˆ,@7iU%jƒuìO̶Á„u½4C~AE*–NÆæ:KE¼×[õæSuäX‰$Ó§RÙ½½æš`–#ëEÇ—wô‹ )»m·©`àúwš(«ä(¿b&¯†ÜÔ·¢ˆdÓàï#¼“ϧ D†N'9é½&ºïQØñ:ÔŽÅ!Ô_ü³úD½dk‘enÄq)j±= k2盈U(Sª»’a‘½ l\ÝLòÛ‘s$äêi20kžmxUU~ÏI­bos:´T¡ù¹S9õÅ’’1·<Íˬا޺Þàƒh¤*Ëg¼zcR†ÿŠÒj§k’Ã72Þpêr0GxbžÍu5[‹E€·©¾ÞD~Žõj¡ü­¤rµ}²§mçùž%O5ȧªÕœŽK>#í sí:2m}Fû•§·±&b2 ı92l³Xœžñ¨1 ãúK¨ß°(P'´î|‰p¬Ã ç7ÿžÓçè^¥eÜϨ[iþQï´Õò©ôÿ—œùô×+[¨ñõµø8Ñ% ªà‚3Æ÷ âX‡o䈺´ÂiU@ù˜·ôþð‘ˆq³“‰F¥¯³òÓ˜êOTZÀ{˜’llr# ËožðnÝ­ÈoRÏb,:\Ɠۤòðhê%…øŠ#´¬…‹{Eš@’A¼e¥n:Í·c¤j-ˆ¥§ µÉT<­í %Ó \U1<Í௃O û“=R¦õت "éŒ÷õ‚Ù0yŽR¨/Ö$²ß÷ŒA¹K”u:ƒY¼B08¼ÐÊZì:÷’UÔ8 ¡ü·¼±k Ž™°°ÍRÿ,’›`ûBF, ¨0êé9›Hª3}3Sp²cúÁ ˆBwö˜Õn9½¸‰, žQq{‰b5YŽ`Tn“i©ùŒó™äÉSu²l"Τ.¿¯Yêí|™ F䉩4ZéøŒÏO;‘°mÒMñO.¥³u¶‡¢Ü̬¼¬–­pÕÄ\ô”ªò=éòW©“˜öR´‰_2“ƒÚJêwÞn3@X™ÐøS TŒ.w2]6’­bò¯V=#µzŠH£O¦Uü]Ïy^úSú©ªXÇržb5Ùià‰5 ¬§9™j0+å ¡åH‡‡ÒÑ€û‰v–³Q$¡Jt¬~ò™G@r& èoc •:]ëg~GHH°ñz“‰0>nÆRÚš…-șƵjÖ¤já»)9·Hõª‰s‘îg%YÄ«!î%4jVQäÔò9™°Ê½u ¿(Þ¿îæ¨r§iô‘¦¡Á¸DSØâ6–°“bŠ>˜†o Š„ûÃHg[ÌmB[!= ‡¦ ïÙo5­Oqºg¸žz×ù¤*t•òÇÒØ•Ž*ªú4º]“º  «‘Ø1«3Uóßñpa}žª’ö1UC+YÖÝ{EJ°¤âÌÄóZ³"Ö*H2J¬—¶mÖVûÊm|T[_ÔK¿Å¥¸ð9÷“êéùVù+×¼f€‹Ö¤ä ޽ C°*§òž„ëYš"°&£‚ ”=—P¤|¥†;HõÅ©êê _Ì™Ò3Z%0 ÉÁ—ülªK|Š„Î+17ç™×Ñ¿Ô=ò(úË”éDºí:ÒÔ‘o# Êè’5;‹£cר–Õh2~ö•ÊÛ¨í9`3/Ç7šãE-ÓK·ÌN'”…Ku3Ìì\v +?c4ƒQñ+ƒcÈŽætþ3X]:|”ż߂Ñ]jŸ*«qîõüÎcVñó %ÅùÌbN/xõUïzã„[  ‡–6¼/@ÌñÉ·"x‚Æ×ö’ ³po6…*•j)1˧DÍv*yØ9?Úa¬Ì6(Ÿ•¯xj59&âµNåÞ.¦ê·v7næyœ(2¤¢ánûœ@¤4ö‹¶ó÷a`,©Õoz•û(¼jk”¥»ÿ#ý£*FÍÑoy}5ñ´ê´þeä-Z•ºª{(ÄCUrNæ'LÖhñSÑqó*‹u&Ç5°Rd«T©Ãk©«ù¯ô–T±˜ã6üÐÔ–&ì·Bš‡7'oéKPÅ€°ý!ùZ¸(Û†´$¤ÖÉ´×b úEŒycúúMME·U[ŽÐZ¢¡°ROs!BǬ0Æö&µGŒÌsi¥Ä•”Íú0Ž-mF¿i Cæ9Á•¶×áZñ)B°íq"­ø!,ÕÁQR² Ž¢kT,;ƒ3¤´,å#ÞÖÏ–äôÛ‰ž;ðöÌÑYÏ@?ñÄ‘è•ê©H[»õ£H ­\A™:¨*œ†=æXÛÊÀú“h7ÒÓü ò8‹}^ÒŠ=(ñæ»{A)|¢‘‰b+Sû½5E¶Xƒ¸ÂçÃ)ZYªà×Ïé=©ÕѨ lܧ*®õ¹(ÎÐUª½;AÈöíÊÕµÖ–Ý‚0ä˜ÁÕPzh '¦w ™¬'¤éit”é:«»޹P:^—©™Í7¢íb-^еƒÄ@Ö±ÿþ:‡Â¤yué߈§©âü#r›T¤À“×"Súœÿž V¿"#R»ëUFù•ͽ¯uD¬¶‡kÂÕY«ÔplêÄ~ó¤é—6¢X†S:eÅ/„©n*Vý@ž£;ä›Û¼¯ã4zJVÎÒÆÞ¦7¼‚Mž…{«.¤Ju”U@ê4¶ßÿu:‰–°tð[ÊG ý"éj*èõ;Öàƒlõ–-O¸¡!£ttQ¨§E/v9ô¡ªÓÑø•´é—ýJ`þñ¿áM9ZÕuU…?(¿xÞ]h“µÔ}Fš4ÁµØNªƒƒx_Ö N¦¥By&ÞÝ'²ºtßá÷Â×>¸†[AÑ+r'=,Ì?¤,Z¬ÕÒŠ,GûšcjEÒ…0;Úòu[òa_n/ˆak*‘`Bû }ERlj5‰èc*-ÆäźIÝÇñ5$g]O‡ÿ¥jêß"Ó“©-âaŽGyÙÒŸáÝ[œË8•ã`x´¸ûUñ©V¢Ó°súÍñj2‹MûEãÁ”ik­]rAÌÐŒ`Bù”_´Í«ÉKF U'z0-˜&µ ۥĈԦ<¦iÚÙ=¢‘”˜B`lO6’SJ©ÌA·xÅ){²õ%¹[Þ: XßÄÍ…ÐSI€ ùýæmtk¨½ºˆšZ+¼¤Aô2ª5´ /zÄú1HT»°7Ž¡@µO”ØÖPŸÑÓ])©Ûy´eo‰Ô¦‰àÓJE…ü«3´ôø~ª­Ûe8&ý:•;ý§WMHéºñ&¾¦°>%Wú˜¶¤ e‹Ú]ž—S ¦T)z‡©Ó …"¡Ó…'åBnd:m2iiŠõWuCò!éêg·=V/Q®}æ/mx¥¾"ö±£L3Òxk*5ü1@/‘#ª—"ÄZMT:ü¿¨Œã×WǪÃsЦ㡽¢¾ÑA_m]2¯[†™¤ÔS­¥ Pm¨ ¯Þ¦…e7¦ÁÀèD3á8¶“ìá‡p?˜_Äö³¥\æ#´]ÙSÄU±='/âÚãVÆ”ZÏë5ÇŽÑn(ÕjKÔ1ÞµÆÿka|4šõ+Pe·‹H€qćá`ê´Ú)°Èd?îéðÊìµiTÚCÓ¨‡{ÿù5f3¨¡¦ÊCdr;æQ®òkÁsñäðµõÂŒ-gõ…ª¬–ªæê»‡¸ÿöm’Ýu¨‡È{tƒþ$b5”ÒöÙEWöž¢û\ZÍMº^øš‘:çp@(ý„g«ã—J¡¯ÌrÖJÃmcfü-ýä‚뺛ëÞoT•u:-H¨ŒU‡pDúæ.ÿ,‹NzÉ‘À,À_ëiòJÀ”£Xo¦Hç¤úñCT:}(¢ ¾! Êߌ{Zsç6È×+ç> ­IÍ:ŠU†,bTýÃ_9¼»WñXŠzÚB  0Â,iiTSöZვ°f÷úÊD$Ëè´KtÛcOáú¼ ëxÑJ­-5U¨¹pe¨ÄcJŠ•6,׿ Œš®6îÁæØ¼’£)öÊtª: ÿ1ÿÙPyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/quit.png0000644000076500000240000000110712536324427030040 0ustar philstaff00000000000000‰PNG  IHDR‰ sBIT|dˆ pHYsrçntEXtSoftwarewww.inkscape.org›î<ÄIDAT8•ÕËjAÆñÿT&*Â]‰¯ãBt'ê$‰q¡fvîô1qï%â5n%Y„ºñ]”ï¨1x)]=tfª;ãÞœªó«¢Š:MŒ‘#’‚¤û’zen¯OÒeIw«¹*öHR”ôGÒâج¤_©f©ÌwÀ Gxèî7¨ w¿¬픺íîK-I÷€[™º¿@ÏÌV°‹À3`¼ögŠw(.!‡>u÷ù]`ÂÖj°m  œÔ€ÎAñ–;À›ì¼™m¤…OïËÌý \ ÀÍì'p¡ÄÌìСx†ƒÑf°VÍaëƒUfö±} \+›åIïR³Ü–tv„{R’§š’ÚýŽ]A×$û_À)IË%cäðc…ÿ|gežIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/pics/star.png0000644000076500000240000000516512536324427030037 0ustar philstaff00000000000000‰PNG  IHDRóÿasRGB7ÇMS uiCCPiccxÚí™WPÙÇOwO Ì C†!A¢„$ç$A²¨À F’&dqVIŠ ¢€ ®.AVQÅ€((`@wE@YW•;胷êÞºO÷åÖÿé_}ýU}§»OUÿªÙñDNR*l@/ïçbÏ  eb èUœÔd;O ÌJ/ø—¼v sO÷ß_ÿ!r“x\ œã¹Q©!§ 9–›Ä]©¯pfZ²°; ™ÎnPÈÁ+ùW8æïüÚãïç ä2p¤˜¯L8ºÂ‘_™zj…9±ü$d»„ýjßæ~¸æÊM0ãxiQ|^D¢øoçŸf‰¥®<ðÈô¸Ä4Ý8Þÿ蜕óòÞX}=£â{m³ð°_€”|¯©€²€ŽžïµÈãt– ý”“ÎÏøVC­,h@@2@¨M  Œ€°¶À ¸oàBÀFÀ± ðA&È»@>(%à ¨µ 4Vpt‚óà2¸n»`<0^‚yð,A„…È ’” uH2‚Ø5äyB~PÅ@<(ÊvC…P)TÕAMÐ/Ð9è2t‚BÐ,ô7ôF`L‡` XfÃv°ìo€cà8 ΃÷Áp=| î€/÷àX¿„€¢Œè"lÄñFB‘h„lG r¤iEº‘~ä"@æ( Іb¢tQ–(WTŠƒJAmG¡ªP'Q¨>Ô=ÔjõMFË£uÐh7t0:‰ÎG—£Ñíè«èôúƒa`X3Œ+&ÉÆacÚ0—0C˜IÌ‹•Áê`­°ÞØl6[‰=…½ˆÆNaßãˆ8%œÎŠãárqå¸f\n7[‹ãÕñxo<¿_ŒoÀwãïà§ðK ‹`Eð'Äv*­„«„qÂ"‘¨B4'úãˆ;‰ÄÓÄëÄ â•¤Mr …‘ÒIûH'H—HIoÈd²Ù–JN#ï#7‘¯Ÿ’ß‹ÑÄôÄÜĸb;ĪÅ:ĆÅ^QðuŠe#%‹RN9K¹C™Ç‹kˆ;ˆGˆo¯?'>&¾ A“0”ð–H’(’h–¸!1CÅR5¨NT.5zŒz…:IChª4‡¶›Ö@»J›¢cè,º=ž^Hÿ™>HŸ—¤JKJn‘¬–¼ )` †#‘QÌ8Ãe|”R²“Š’Ú+Õ*5,µ(-'m+%] Ý&="ýQ†)ã$“ ³_¦Sæ‰,JV[ÖW6SöˆìUÙ99ºœ¥G®@îŒÜ#yX^[ÞO>[þ˜ü€ü‚‚¢‚‹B²B¥Â…9E†¢­b¼b™bâ¬MÉZ)N©Lé¢Ò ¦$ÓŽ™È¬`ö1ç•å•]•ӕ딕—TX**¹*m*OT ªlÕhÕ2Õ^Õy5%5/µµµGêxu¶z¬ú!õ~õE –FÆN–4Ë•Åjak’5m4S4ë5ïka´ØZ Z‡µîjÃÚ&Ú±ÚÕÚwt`S8Ã:C«Ð«ÌWñVÕ¯Ó%éÚéfè¶èNè1ô<õrõ:õ^é«é‡êï×ï×ÿb`bhÐ`ðØjèn˜kØmø·‘¶ǨÚèþjòjçÕ;Vw­~m¬ce|Äø ÍÄËdI¯ÉgS3S¾i«é¬™šY¸YÙ›Îöa±¯›£ÍíÍw˜Ÿ7ÿ`aj‘fqÆâ/K]ËËfË™5¬5QkÖLZ©XEXÕY ¬™ÖáÖG­6Ê66õ6ÏlUm¹¶¶ÓvZvñv§ì^ÙØóíÛí,¶9\rD] ¨NNUNOUœcœ[œç]L\²].¹¢]=\÷»Ž¹)¸qÜšÜæÝÍÜ·¹÷y<ÖyTy<óÔöä{v{Á^î^¼Æ×ª¯å­íôÞnÞ¼Ÿø°|R|~óÅøúøVû>÷3ôËñë_G[·i]óºwþöþÅþ4Òz)aM‹AŽA¥A‚`ýàmÁ·BdCâBºB±¡¡¡ ëÖ\?f–6ºµaˆe7&n¼°‰²)bÓÙptxPxsø§ïˆúˆ…H·ÈšÈyŽçç%×–[ƲŠ*šŽ¶Š.ž‰±Š93k[;çW÷:Þ5¾6~1Á;áDÂrbPb[.)<éÊKàõmVܼeóP²Nr~² Å"å`Ê<߃ߘ ¥nHíJ£ ?Ìéšé?¤OdXgTg¼Ï Ì<»Eb oËÀVí­{·Ng9gÏFes²{s”svåLl³ÛV·Ú¹½w‡ê޼S;]vžÜEØ•°ëv®AniîÛÝA»»óòvæMþàòCK¾X>?låžÚQ?Æý8¸wõÞʽ_ ¸7 Ë ?qŠnþdøSÅOËû¢÷ ›)Á”ðJF÷Ûì?Y*QšU:yÀë@G³¬ ìíÁMo”—×"J?$¨ð¬èªT«,©üT[5Rm_ÝV#_³·fñ0÷ððÛ#­µ µ…µÆ}PçR×Q¯Q_~ s,ãØó†À†þãìãM²…ŸOðNNúìk2kjj–o.n[Ò[fO…ºû³ãÏ]­º­umŒ¶ÂÓàtúé¿„ÿ2zÆãLïYöÙÖ_Õ­i§µt@[;æ;c;]!]CçÜÏõv[v·ÿ¦÷Û‰óÊç«/H^(î!ôäõ,_̺¸p)ùÒÜå˜Ë“½›z_ ¾r¿Ï·oðªÇÕëל¯]é·ë¿xÝêúù7ÎÝdßì¼ez«cÀd ý¶ÉíöAÓÁŽ;fwºîšßíZ3Ô3l3|ùžã½k÷ÝîßY;240ú`,lLð€û`æaâÃ×2-=Þ9Ž/x"þ¤ü©üÓúßµ~o˜ .L8N <[÷ìñ$gòå©|šÊ{N~^>­4Ý4c4s~Öyöî‹õ/¦^&¿\šËÿSâÏšWš¯~ýËö¯ùàù©×ü×˽‘ysâ­ñÛÞŸ…§ï’Þ--¼—yòûCÿÇ ÓK™Ÿ°Ÿ*>k}îþâñe|9iyYä"¹€ÈD. r‘ ˆ\@ä"¹€ÈD. r‘ ü»À×7 +˱1ü³ð¼ @eÑPÂþÞÃK|ozTXtauthorxÚsÌIÌSpÌ)H-*°JP¦‡IDAT8Ëc`Þàÿ‹8iBj˜Èó2€íl@Ê ˆ_ñ]F‰E¿ˆvT³k±=ˆ Ã,X4ó)u 6âl$©@¹@—<Åé¨fxf.óñg¢ÂÉ .P¡=@| [8ˆwAIR ‚M†h¸ Äÿpi&&!ñ1 !Á.ŠßúIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/qmldir0000644000076500000240000000005612536324427026627 0ustar philstaff00000000000000Explosion 1.0 Explosion.qml Tile 1.0 Tile.qml PyQt-x11-gpl-4.11.4/examples/demos/declarative/minehunt/MinehuntCore/Tile.qml0000644000076500000240000001056012536324427027025 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Flipable { id: flipable property int angle: 0 width: 40; height: 40 transform: Rotation { origin.x: 20; origin.y: 20; axis.x: 1; axis.z: 0; angle: flipable.angle } front: Image { source: "pics/front.png"; width: 40; height: 40 Image { anchors.centerIn: parent source: "pics/flag.png"; opacity: modelData.hasFlag Behavior on opacity { NumberAnimation {} } } } back: Image { source: "pics/back.png" width: 40; height: 40 Text { anchors.centerIn: parent text: modelData.hint; color: "white"; font.bold: true opacity: !modelData.hasMine && modelData.hint > 0 } Image { anchors.centerIn: parent source: "pics/bomb.png"; opacity: modelData.hasMine } Explosion { id: expl } } states: State { name: "back"; when: modelData.flipped PropertyChanges { target: flipable; angle: 180 } } property real pauseDur: 250 transitions: Transition { SequentialAnimation { ScriptAction { script: { var ret = Math.abs(flipable.x - field.clickx) + Math.abs(flipable.y - field.clicky); if (modelData.hasMine && modelData.flipped) pauseDur = ret * 3 else pauseDur = ret } } PauseAnimation { duration: pauseDur } RotationAnimation { easing.type: Easing.InOutQuad } ScriptAction { script: if (modelData.hasMine && modelData.flipped) { expl.explode = true } } } } MouseArea { anchors.fill: parent acceptedButtons: Qt.LeftButton | Qt.RightButton onClicked: { field.clickx = flipable.x field.clicky = flipable.y var row = Math.floor(index / 9) var col = index - (Math.floor(index / 9) * 9) if (mouse.button == undefined || mouse.button == Qt.RightButton) { flag(row, col) } else { flip(row, col) } } onPressAndHold: { field.clickx = flipable.x field.clicky = flipable.y var row = Math.floor(index / 9) var col = index - (Math.floor(index / 9) * 9) flag(row, col) } } } PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/0000755000076500000240000000000012536324427022743 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/highscores/0000755000076500000240000000000012536324427025101 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/highscores/README0000644000076500000240000000061212536324427025760 0ustar philstaff00000000000000The SameGame example can interface with a simple PHP script to store XML high score data on a remote server. We do not have a publically accessible server available for this use, but if you have access to a PHP capable webserver you can copy the files (score_data.xml, score.php, score_style.xsl) to it and alter the highscore_server variable at the top of the samegame.js file to point to it. PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/highscores/score_data.xml0000644000076500000240000000032512536324427027727 0ustar philstaff000000000000001000000Alan the Tester0x00 6213Alan12x1751 PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/highscores/score_style.xsl0000644000076500000240000000151212536324427030163 0ustar philstaff00000000000000 SameGame High Scores

    SameGame High Scores

    Name Score Grid Size Time, s
    PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/highscores/scores.php0000644000076500000240000000304712536324427027114 0ustar philstaff00000000000000"; echo "SameGame High Scores"; if($score > 0){#Sending in a new high score $name = $_POST["name"]; $grid = $_POST["gridSize"]; $time = $_POST["time"]; if($name == "") $name = "Anonymous"; //if($grid != "10x10"){ //Need a standard, so as to reject others? //} $file = fopen("score_data.xml", "a"); #It's XML. Happy? $ret = fwrite($file, "". $score . "" . $name . "" . $grid . "" . $time . "\n"); echo "Your score has been recorded. Thanks for playing!"; if($ret == False) echo "
    There was an error though, so don't expect to see that score again."; }else{#Read high score list #Now uses XSLT to display. So just print the file. With XML cruft added. #Note that firefox at least won't apply the XSLT on a php file. So redirecting $file = fopen("scores.xml", "w"); $ret = fwrite($file, '' . "\n" . '' . "\n" . "\n" . file_get_contents("score_data.xml") . "\n"); if($ret == False) echo "There was an internal error. Sorry."; else echo ''; } echo ""; ?> PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/samegame.qml0000644000076500000240000001261012536324427025235 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import "SamegameCore" import "SamegameCore/samegame.js" as Logic Rectangle { id: screen width: 490; height: 720 property bool inAnotherDemo: false //Samegame often is just plonked straight into other demos SystemPalette { id: activePalette } Item { width: parent.width anchors { top: parent.top; bottom: toolBar.top } Image { id: background anchors.fill: parent source: "SamegameCore/pics/background.png" fillMode: Image.PreserveAspectCrop } Item { id: gameCanvas property int score: 0 property int blockSize: 40 z: 20; anchors.centerIn: parent width: parent.width - (parent.width % blockSize); height: parent.height - (parent.height % blockSize); MouseArea { anchors.fill: parent; onClicked: Logic.handleClick(mouse.x,mouse.y); } } } Dialog { id: dialog; anchors.centerIn: parent; z: 21 } Dialog { id: nameInputDialog property int initialWidth: 0 anchors.centerIn: parent z: 22; Behavior on width { NumberAnimation {} enabled: nameInputDialog.initialWidth != 0 } onOpened: nameInputText.focus = true; onClosed: { nameInputText.focus = false; if (nameInputText.text != "") Logic.saveHighScore(nameInputText.text); } Text { id: dialogText anchors { left: nameInputDialog.left; leftMargin: 20; verticalCenter: parent.verticalCenter } text: "You won! Please enter your name: " } MouseArea { anchors.fill: parent onClicked: { if (nameInputText.text == "") nameInputText.openSoftwareInputPanel(); else nameInputDialog.forceClose(); } } TextInput { id: nameInputText anchors { verticalCenter: parent.verticalCenter; left: dialogText.right } focus: false autoScroll: false maximumLength: 24 onTextChanged: { var newWidth = nameInputText.width + dialogText.width + 40; if ( (newWidth > nameInputDialog.width && newWidth < screen.width) || (nameInputDialog.width > nameInputDialog.initialWidth) ) nameInputDialog.width = newWidth; } onAccepted: { nameInputDialog.forceClose(); } } } Rectangle { id: toolBar width: parent.width; height: 32 color: activePalette.window anchors.bottom: screen.bottom Button { id: newGameButton anchors { left: parent.left; leftMargin: 3; verticalCenter: parent.verticalCenter } text: "New Game" onClicked: Logic.startNewGame() } Button { visible: !inAnotherDemo text: "Quit" anchors { left: newGameButton.right; leftMargin: 3; verticalCenter: parent.verticalCenter } onClicked: Qt.quit(); } Text { id: score anchors { right: parent.right; rightMargin: 3; verticalCenter: parent.verticalCenter } text: "Score: " + gameCanvas.score font.bold: true color: activePalette.windowText } } } PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/0000755000076500000240000000000012536324427025273 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/BoomBlock.qml0000644000076500000240000000704112536324427027657 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 import Qt.labs.particles 1.0 Item { id: block property bool dying: false property bool spawned: false property int type: 0 Behavior on x { enabled: spawned; SpringAnimation{ spring: 2; damping: 0.2 } } Behavior on y { SpringAnimation{ spring: 2; damping: 0.2 } } Image { id: img source: { if(type == 0){ "pics/redStone.png"; } else if(type == 1) { "pics/blueStone.png"; } else { "pics/greenStone.png"; } } opacity: 0 Behavior on opacity { NumberAnimation { duration: 200 } } anchors.fill: parent } Particles { id: particles width: 1; height: 1 anchors.centerIn: parent emissionRate: 0 lifeSpan: 700; lifeSpanDeviation: 600 angle: 0; angleDeviation: 360; velocity: 100; velocityDeviation: 30 source: { if(type == 0){ "pics/redStar.png"; } else if (type == 1) { "pics/blueStar.png"; } else { "pics/greenStar.png"; } } } states: [ State { name: "AliveState"; when: spawned == true && dying == false PropertyChanges { target: img; opacity: 1 } }, State { name: "DeathState"; when: dying == true StateChangeScript { script: particles.burst(50); } PropertyChanges { target: img; opacity: 0 } StateChangeScript { script: block.destroy(1000); } } ] } PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/Button.qml0000644000076500000240000000537512536324427027273 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Rectangle { id: container property string text: "Button" signal clicked width: buttonLabel.width + 20; height: buttonLabel.height + 6 smooth: true border { width: 1; color: Qt.darker(activePalette.button) } radius: 8 color: activePalette.button gradient: Gradient { GradientStop { position: 0.0 color: { if (mouseArea.pressed) return activePalette.dark else return activePalette.light } } GradientStop { position: 1.0; color: activePalette.button } } MouseArea { id: mouseArea; anchors.fill: parent; onClicked: container.clicked() } Text { id: buttonLabel; text: container.text; anchors.centerIn: container; color: activePalette.buttonText } } PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/Dialog.qml0000644000076500000240000000521112536324427027204 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the QtDeclarative module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Rectangle { id: page property Item text: dialogText signal closed signal opened function forceClose() { if(page.opacity == 0) return; //already closed page.closed(); page.opacity = 0; } function show(txt) { page.opened(); dialogText.text = txt; page.opacity = 1; } width: dialogText.width + 20; height: dialogText.height + 20 color: "white" border.width: 1 opacity: 0 visible: opacity > 0 Behavior on opacity { NumberAnimation { duration: 1000 } } Text { id: dialogText; anchors.centerIn: parent; text: "Hello World!" } MouseArea { anchors.fill: parent; onClicked: forceClose(); } } PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/0000755000076500000240000000000012536324427026231 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/background.png0000644000076500000240000114511212536324427031063 0ustar philstaff00000000000000‰PNG  IHDRXI²”FtEXtSoftwareAdobe ImageReadyqÉe<ÉìIDATxÚ´½k—G’,æY…~wãÑ8Cœ+’»Ü«{$éÿÿªå@Wš>DF„»‡GfV5Ä­Å4ÝõÈG„¹¹¹ÙôŸþÏç»Ïî~x¾ûü|÷ùÃíçwŸÞß}úp÷éýÝÇ÷·ŸÞÝ.¾»}~wóñííó»»ç·7Ïoo?¼½}~Ê_Ü|x{óþéæÃÓÍûÇ›÷OùqýîñæýãÍûÇ›w7ïnÞ=Þ¼}¼y÷xýîá&?Þ>\¿½¿~û°<žÊoﯟôãîúéþúñþÊ|çîú±>nÕ×w×õ‹ÛëÇÛëÇÛë‡Û«‡Û«‡Û뇛«‡»ë‡›«ûå;öq³<îo®îÕíq}u{uÝ}ß>îÔ3ÜÝ\Ýß\ß_ç?ó£<Õõõ…+ó×;õ…ûzûqu}wuswuuwU¿¾Þ|Ü^]ß]]ßç/Þ\ß__ß¾¹Þó‹ÝãÆ~qs÷¦<ô×çýöǧßÿøô[ÿøÏ¿ýññ÷?žûãÓïÿõñ·ÿüøûÏÿñÇÇßÿøøû~üýçßÿøðëïo¿ürÿ釛Ï·>ܾÿxûü|ûüñöùùæùcþâvù"óùæãó͇ç›Ï·ÏËãæùùF}qóü|ýñãÍÇçú¸Í_|z¾^¾þx­þõæÓÇåñùãͧ·Ÿ>^úxóùÓíŸn>¼þø|ýþÝñíÓñááøpw¸»;Þßîo÷w‡û»Ãý}þâøÐ‡‡»ããýñáþøx|x8>ÞŽ÷ǧûãcy<=´ÇÛúõãñéþøöñøö¡=Þ•ŸyW~òÝòO÷x×ýµ=îï»ï,_OïŽêÏö3ïoËŸõ;ê¦öÅýôîAý=ÞßOïîÓ»ûûûéý}z¿|gÊ_¼¿+_ÜOïºï”ŸW_ä¯Ó‡ûôþ>½+_¿+ß îÓ‡{äßýpòÿxöß™žð|ŸžïÒLJô|—><¤÷éù>}TO÷éãCú´<ðùŸðé1}ºÇç‡ôù1ýð€Ïéó>?à‡üðˆ<â‡Çå‹<âŸOøÇþñ”þù˜þùˆüøñ?>É?ŸÒ?Ÿðã#~|”Ÿžðã~|J?>ÉOOøé ?=¥Ÿžäç'üø„/Oøù ?½ÅÏøù)x|y‹ŸŸðó#~._|yÂÏoñå ??Ê—§üÀ—Gùò(_žP¾#_žä—'ùò$?w_|i¿(ùó÷É_äï<Ê/ù‹ùåÉþ™ÿõÁÿdýëÏòË£|yX?—/¾Ü/ÕŸîåçòøé^~º“ŸîåÇ{ùù^~¼—ïäÇ{ùçüx'?Þ.ßùç­üónyüãN}}»<~¸•Ü´¯ëãóüãF~¸‘Ï7òÃàñùF>_Ëç›àñÉ}ç:~|²ºÇçkùt|Ïãc}Î+ù˜ŸíJ>^ɧÁã£~¼‘Wò|%Ÿ®ä¹|óùJžß´??”û|%ÿ¸–^ËO7òsyü”×òãMy\Ë×òÓµü|#_nä_·ò¯ù×­ü[ùåVþu+¿ÜÈ¿nä—ùåF¾\Ë/7òË­ür-¿Ü.ßùr+?_Ë—ùåfyõÀ—kõ¸Â—ëôå_®Ó/×éç«ôåjúå*}¹šêã—«ã—7‡/W‡_®Ž¿,¾ùåÍñ_oÞ|yóæ—7Wÿzóæ¼¹þ߯®½ºûãúî]?ü_·Oÿïíãÿsýôß<ýŸ7ÿóúñ«Çßß<þvõøë›Ç_O¿]=þv|úõÍ»_ß¼ýõÍ»_ß¼ûõøî×ã‡ßŽï;>ÿ~|þíøüÛñãoÇ¿?ývüôÛáóoo>ÿ~üá·Ã¿ÿñûñ¿¦ç»("B¡0ÿÔÿÉÿ )ÿBáò·üÿä’úóå?’"ûMÁòW´WÔß.ÿÃö›ÑoȽÊê÷¸ü2Õ‹ ¯üåMaíGD‚üzõ,ÿxæ;©ƒë/ªŽÚžç”ð³`Ï1 >®ÛGeßS.Ï‚ÑÇÜ~"û‹@9 RJ ÀrRʹi/].mÚ¯ á>™Ï"ó?-O%-§{yC_^¾ýõ÷·?ÿüö÷¿ùõçY~˜ãNýv ~‚ê(×FwÐz)@ôÛnåI9BŠœÉùÄy–yÎo°'ˆ¾;!õ¤\í"ö½çïëË‚î£ëË@]脽°‚OÛ_øý]€ð6ߢ¾¨ûç@w÷aí^¤9V ú Í›â/wð%|߬ïr¸àtÇÓÜÑ@ðŠþü–ó†|Çéu¾^”[F/ ½ò3P„”ÿ[®c¸fÖ"”£ƒ•3R~†îPåA–+®Ô} ”ýМý T·Ÿ¹pPž›þFí/JôçU?ÃÊ…­èíý¨÷é¶Ws Ë£_ÚíBÕ_R´ë@¸Ècø÷øÂîw\¸Ñ¸]kÏÏŸAâ….“„òI0‡ŽåP׳Šò»cN±›ˆ l=z¡Qï–¢¯_ôWD©¬®ö„ÀíFu @;á@ IÔ“PdÎ f.³ ÑB~޽aúpûY]ÝT'´_û‡òw”ŸaýxTifF¯Ú¢?¼ !ÓÞŒ)¶áÄ‚ð$μte}]¬—ʲŠÙ…úœ[Ì]­j„œóÜõá蕸±™2ÞÏüT!ÂçåkÔ•_±‘gBJ@B`õxB]¤óÌÓ,ó,"˜&€ $±­3ù¹©?Gª÷ÄrÝB0 çoß^þýß_ÿüïÓ¿ÿ}úúUæYß^ê^ƒ:-íu ‡[!ï&åÔ%­@ÊK³ìÿ(KgÊ|*Ÿ ë걋`¸‹ >œwøOÅssåÖ‹K¤|3pëW7Â>{¤ÞÂÐÊ›ý•¯GÑý{ë×ÈÅÓ!¶Z!¸QËžZT”«¢G•îRVöZ˜j/˜»Õ\’µ"ó…êࢀEe´%wÅq 5\;IZp†µJŠŽfÁ˜ŸA«mCJMþtµ¢Á¯tå¤9_Ô+ Jñ9¸´½rE÷”fÝ¿sˆ†7y ¿qÞ&µ¾AdI©< ݱ²yÂnà æ˜ËxAÓUoÁñz·Ö ÀünÁД„ØR´ Ø…I"” “´­E…½ÁrÖ{•岄¾åÔ:Vù£VêNÏw?g–{ƒùÒ&Õ&J}gæ{Zh®Æ|dW"ŒÀëÍe¡\cOÃ'+€xJ1þ.†Kþy·…­‰º¥ü‚ÿ8 QÖ¾½{g…å&Ìó !#Êgƒ\þ±: ƒVóà’£MȶâmªHŠ((èjìy&çùt’ù$œAÈ$I2¸- ¢ÝÙJJI©îž^^NÿõõÏÿþößžþúkþö<¹ãÄàƒF{–bøÍÙ£•ð€~²%€™L•ÓÌÓ‰/•O¥0/6`À£#ìŒî– ¨É­MÐg+\Àƒr€÷V·&ôàÏ—×8ÿꆾPêÉ£æÛ¸æláËè-%?€çq'·n*«?i»UuÃj@Ó_TôçR*æ¿\–R9€’°ì⩲>\î–m¯­×?„¹{>Ÿ¾¾~ýúçýóÏ—ÿûôõ¯ùtÊíè´¹‹¹5eVppÛºÙxüBŠB3R(«•pž9Ï<)Z[xh­¦ƒú'âFrÐõŽž²Ç^X¹¶°ÂKbü«ÀÊÅêñŸnââ¬ÍÍ|M‚p!ù7é]†¤RˆP1¼Eæ4`TÕ»ƒ‘}^êp˜N½;~­‘È‚>K¸tKÓò5 )1I˜å:¥£Z:"EØ“D¤ü tµ:F¬g"ãQÕñR%5……ü*Ÿ®‡V®œJÐŒ®`öì8ÕÂO¸“!ß`/®.úTë:$ÇhB¯êó®n&¦AŠa…€ÍB”— Õ|w)·û#ªµ‹´ŸãBáZîdœà”#˜Ó­n7ƒccá6–‡^Wdé~BòÿWZ£uèA*DJÓ;qkMûçv%Mî>“D{ÂÌ`RDƒKéu¤4+ ËjÛù¬o¦ËO§¿hßkŒšû1Îat6ùó`SPÍ!Ïí:·¨3϶o\Fnò­Ü߈wLQ/?[íþÓ*°^A¦º•»z2ëR*–§¨©þºÂ¢_]Ipžç™§ÓËË×ÓË·ùå_NœO3ç̹rΊÎÓi™g9ͧ——Óßû믗?ÿüúçŸ/ýùò÷ßó·oœç¥O•ja•3¨4)úª¾»TAª> ê×)ùƒœN<Ír:eœ^î+ˆØþàq*º­ÙôÃnCÑÀøàènÜ.‘°ÒnŒ{ûƒ: £`ÀÍž"N¤µ ×îÂQM:^Ô$D_µƒÀÐl« zöÔôj-k·£Ð0D’iÁ¦˜ S’îO$È”lJ2S’´ü™ NÔ=¾ rÏVšo(„Ú†%¤k1 „/¾½Î¨ ±.•nÁ÷¶š ´M|³ã  Eë«¢¿©;Á|Ød× L0¸TÚÝëž• ïÞáÁ*Õ{Þ6Y/êêLIÊukYíöÑt¾±ªðl1ú·-¾49e¬;wgE j–:ØUž‘¶–pù“eþz9©b‘F…Í@%ÍX@ÓûÛ¢¹Ò¬!…x=*D ïh•Þ¼ý»)& RÍeéûûÐíÊ?:5ñR#…&·Zá QQq}ßÛ!U¢ô8¨^мd`ˆk­êþÝωŽõ±+òÆ‘€Ÿ xM‘j„7g®BtÊ£†ä–5aéþKJ¨2U¿×ù*ÎóÌù4¿¼Ìß¾^¾¾}=}ývúöõôíÛéÛß§o_O_ÿ>}ýûåï¿¿ýõïoÿþóå¯?_þú÷Ë_Ÿ¾ý=¿¼pž¥€¾ë!ì’\«y©ÕöÅ'ìJ’|9ñt’̧R3IŒ2ŒJ½…w½_}˜×«Ȩ)ˆÍ‹®Œbwk"h3Xå­.û+M¸®£¾¡ZÿnM<Ó7?ƒÍ’±PÇ [÷ÖïP“#ƒó›˜¹VQª"Z¸€œ˜’L@¦„ ˜I¦$S’CÂa˜&'LÀ!aJ8LËdÀšÊ×)- kVô4©Ÿx6ÐÉÔk¢on@v/¢xÅ꫘óbd¾#dNàЪ}ž}ïûòúÎè7Qßé/´ŠN@xç NÙ^]Ðk;æ2ÎnÛ ™Î R!‡Âú#ºÚß?©š4XZí¢?* Æ”*ºË³“œcÀ= äÆÍhlíàçMµð?ÄÒú§ôØùÅžRU@e=™>Ü~ Àe“¦.˜µ›¶7*UŠÿÂô/Z'1úÃRÕ®^¬® Ð«ÓÌið¬æ:шMÖr¥®“-.GÍ2 G“÷ïyÿÎq•¿ú;£n¬H–}ÙGª ì>Á‡m¤2`æ—$©Î+6q=ᯀŠVIΧy>}›O§ùÛ×—o_O_¿žþþûåëß/ÿ}úúï—¿þ>ýýWþþüòm>½Èú=W›nÖ›U÷ -€õf´­'®+†×β`ž² `"“R8c·SÆ™”¬N)\õY·d:þ©Ð¢c©ÜœZÍhóò›ˆCH§¤S"dƃë¬ïý"wã, ¤†«’ÒÍ fy;eº Ý «ÆËÀôþöSÕ§Ò@Ë:úGÓà¯p–5§ÖpˆAÙѦƒ €ÑÕCáʬ«Äí¹=Wô.ðȾ8Xmª‡§þºŽ!8NˆþÜ‹¼®Ë+©)ø3Uüœ/(›$µÓNk@d}jùÛR£¹Û±£ªÐž3¤ã‰<½œæ_^æÓËürâéeÑwr®ü©Fwäöâ w¾0Æ\ê“ù`-‹¹ÚºÊn=g/ª—™êÜsÜ3#ؽì[ ÜM øÛõ°§ÂöÙÑ×QÁAu°Ù+‹°¡YWqÎÖjì€`„ÂìÛkF oÒõ}¶~Á«§£“µv7T£_–bpéÚ£0¦“&&dTz8È!I¥K'Hšä^jªÚ`䦄”Xå)-??-U¨$°JÒ̇üŽjåp%÷VýR€lÝ8ëÐxF‡¢ôÆ®¹¡Oœ}Ýt‹Ñjtm4‚†ñ]Íð’Ço||\°Ýœñ¯ýø—–¥NðDÀ:ºÐÊ`K!‘ƒu?­É•¼éê!ˆ»ooXêBÍ*—ÆIZ®“ŒP‰ž~7——³©2¦„œÞß~TCútŠRRµIGûWE«¢ ciÉÎü‚Ü©ÑÓAV¾E]{qÏQvîÕ§ ôà„˜»+†K""tïÝ˾„qSÕ3*d×|ÕE,|™÷m rò=‘Pž2U1+Í C'@lub¦J—?ÛC¹›UÓ¸¦ÍÙLJ£ÍPaè³Saê ñf7†³YæÅdžyzáË̹#SWšþÒ jŠ[·Ôü5`Þ“¦ º­E,Žº¼ÙKú›aéŠ=½Äc%Æ8áì¡Ê~aDŒâO‰ðœÙpÙV©z-ÃÊÃÖ3jù@éÈ+l*‡$ÇåÏt˜pH²Ð¢ K_€Ô<0&¥rž ÝRÁYÛš©”d™¦üºyK– MáÛM‡l6 ½{ZKâ” ƒµPWQ@¼¹òbÄl“j+2Ñ•²N,Þ³ªp<(VÍÁ¦ú[IÌU¿#` C¸”#"]èËv×ÖǸ#ÙëZ[o¡U·¥gŸÔ)É!s¢©I>ãi6ÄŒJ ÷]«ÄuçôPž[­•AÓ b½—Ò×[  ªrXžI’²Lf©rBv@‘Ùp+dªbzóÑÌò7û}kD° ì†ÿç^¸ºI#æ aØu7,\vR}g(;wCJåT·Ysô ÇÛC}"»-ûµtì‘·Õ¸°Jay•Z+jY¾Æü_·1+6ÍSÆõŸ˜uuì?€bÑÚµ‡SRæ5ŒÒ‹»±LÃww êZQ¨à¥Ë¸¢pR*ö*L•ÌŸNršÉ¹¢m¿…ô¼©Ñ&À©aÍ.ßPzk è$ ”#¾'à§P±N\ ÌÞeˤ>m-ôËä¹NUZ—±$b X›{˜ÒõܱʻuŸ…Xõ= ¹qŒg±a%Ir_ SÆ£ <Å8N˜’2Ä”¬ÏíÂ…‰Iò+2ò†3“.?Q´q…|D’ %I`ñXÐj2ܨÿ³˜˜I‡Wäûj0¹QfŽƒÐÁ¸’ϰá=¬R±À¼Æ Iq#/Ô†ºàà×Çc€ô°WdáõÝî_j›KÏØàmDDkú§,N­ÛÖzÉZä=+DÓ‰kÜj}WšSž^@(ˆ ?fàiÔê®Eˆn†NçrR}·1m,«' œÞÝ>GDg§: ¤¨Á4Uçô@=1Lr½0VV‹‹© ùR_ËãqD®óí\7 ½Œ²•ÃmE{Þ»ÝQîEðZü5¡ÞEìerBŀ͒³mÔ¶êeclPuÝ5lle7°M›+·›• 컾ÊZв/@#>Ôg\2¨¸hŠg*Éø…ÜÆc;6ôˆÞ®Qù;[0¸í‘±¨ ëÕÊÊ„¾Dî¿ìÛ¼[Ö=ä¥á¸c­ÉøzæÒÊtÚ¿LY›œÞÔ °ï”nzDc|_ôž]Õ[jJK7iîO8&Ê\?ªçb!TX?•Í¢o+}lÀn¸Xi—+”«L©:­*"—sÝ0ŽVSÁhüŸÝA7sýáÕ‡°i•"2²ÇŒ–Á©¦5Àp½#©¢À`߀:WZYï¹[•Aê!ó©…ÕÝëá¥çFºP³ÒO¯bM°!ð=ÖûºúsëZCÕHÈGŒ—3_âšæjv¨™£Ö…­;Tc†È|ªñŸŠ\¢|¨©ùTfoìyÐH®ªº\æƒ ˆ®Ôa%‹Êœ“ Ü?ÏfGvuÖ=blmq¡½Ó˜èdä~Æ„ò™Un$/˜Ô¡”Ç%a0{§¢T[ã¿x†ÛÝ.ψZcz†Ô:˪Rgƒ8ÏM"]™~z Bç}gZê•9jp ‘©ÙŸ[‹6K¦¾›ÛVÄ!iV)êglzœdš°°§‰SªJ—qal­BÐÝúF,Üèñ|B–¸ 0ÃÓ”òpU­JËøðÝU(k8 J?elù#H7øËW¹S)1kµ±Z}Ãðö¨!WêZbaè ¨>ÐMäa Bpà¸wÚïë-ê÷o8"ÔØhBö&Ng´þë;_pªŸŒd#Œ«úh#Øê|åÃέVùãÄv¹¡ TϧbÔzq¬jòd«kVÓ/÷Y@í¹X^NO˜G"þéÝͳÛU»£ì¢ŽepŽ|£ÐðkÇ“Ry³èße‡„Ø\\E ö¸•ÏòºŸL=óÕ†îQÔí‰A¹Ê8ÉæFß±¬{Þ ;›W`@<.gËI“-¬qL÷_ª¯½_~)®íc°åo”Y'çÐt_W/÷£^´z¬6Ño² ¾Å<>5ótšÏÔyѪ®]Öˆbà dô´‘‰ðƒÄ!>Ú€²b×OõÉÇ×®¬Uûb Xã½Pµ÷ŸÜ·V”ôZ°7âá¦SU¿Ž ¶'[[Šâah©€ëªøZ$+ó€€Б0â=儱¡‡ª@ž!¦Õ¢Ö„—, ›ÔJ_™‚ÿ¿§²!v2æ;뺠£::+€ö“¨áùÐð2ñƒÌÔ†@dÍIýÿ|¡Â}ÀÒë× ,]¸DO°žÙµáü/Ö — ÎòÒ ÚBÎp–5ÿ-+¤¸¤-wg?C¿XëÚÊÓv$öo¢š(hó©Îí&+v¶LÒŠó,§OK•uõpŽVÐìr×j4”U»Œ¦ŒùÔ¶6ät$\Т$Ÿ a‡.ô.ðâ:»¢ÕõÑŠ‰ÑJ×!o©ë,0ßô»£ƒMüa±—:àÍ´ ï<Õ®6‹Ãj¹KˆÒgæ0'i]LÛU’êBu¾I»] \]¥ö1XS¼è´|7³VÒö|u½yBº‰%K `5©¢3ü„ ”Cا“kÇèy0JµÑîIöy’zg€±_‰N]¯ËÖ*?·}[r¬1õ{25E|ðŠ‰˜Ö Aj±×”›·%ì!å`§F'[K:·´{Ò[™£Í:AdÆïfBæ*tÊËPw<5¤YÕéÝͲ÷Ü4ÃN”nU† ÕÈäFU=†`T;2ÌQÀå*XÜ5EÄøâ:ƒ=c†¨[.rã®I'ìÇá±(qïgÓùÀ\·Üî±v^F:ƒ*±ëÒ¢ª–šP ?FN‹&žXgMØnÀò¢èš*”~ð=¬{j¤kn}»äºúN%Tú)л։/¤žrJ*É`Þ®‹ €ƒø¡!v/riEÖo^iwaJn®ò©Ú]d¤Ô:Uíê*O8¸Bü@ÄýM<ÃÀ‡}wZ)ö7N„D¯³ª]׸„KM H•Ä7FEš$ňÔûaÙH[õUYêÖÁ{côi’ÖZ.6§j&ÀÅDÙÚïhC'ô¹ªdZT+*†¸ây>ãê:±w«íU3Ž79†#“.tn©+âH»Ø;ÔëBª’˜Iâ¡íâcªÍLanù[i5Ò~§ÚQ-šl[G3BÛOÄ”9vp9@¼è­ üÀù?N4• Àšàø<›R-ÁTœÕLVH\ZOy sÑšÞ¶¾?»þ»²§*9°˜v¸Ó75Pm u€îà ¨=ÉñqLƒr‹(ݼVWÝ€ööß÷bKxfÆ<Ãù6UÑ3šÞ…Ú×(U{¬e¶]‚”Ü*É3Ÿ‘}¤¢4cQeªj1¶-”Ö/ìµ¹ÔŽ -óGדJÀhÝjA‘üyë$cE™—Ù©yQ¦RuücEŠÞN S0¥§- #TßÚqÔï‡ïî"®SªèÁBÀNȺ•ÄR1Ѭç\•Í:‚Ú4XöØÊw·ÙÊ`߸ñ‚—›.ç¾Î*%°´øßL(æSH©4ÖÙ«v¡ ¬¦YCm‹«¬ÐÑó,\èTaMqƒ. ¾@?¬‰Ê]`iþ^Óöx·â`¥C+N%œ£ŽdY~|b’{è%ƒ5¸›uJ!±ßwÿ¡ì–:nU¢Ù}ôÕ˜4ªZFC!lÈ=yOG•åNÚŠý*Æ85ûZ$baHô€¬ÜHTÇ»²›ˆ ¢¸2sŠ,4…B3Ãw€ l½!¡ã $dɯܳ]CñÞ‰.ÍúçôöúYõúÛx¾õÞg=×f¬:K-ÛiÿÓÏV-2£‚Š\`Ý@\æ 7ÓW´ªw؇2”ia:÷R²kÄjG+õÏÝÍIDeê¶sl-c_oÃ`^—ž'Ú`&_6Ã*Ãj½4ª0¨¬ VÙš©²5VwÆæÇ aqe&yšO/ÍÕ¦qOî¦`¡.;@@-+zÓ ZÓƒùåÚûߊ´7$.{aÝð^up›q­Õ{)Í>»Ç{­í¶"­’Ökõ°CçVS$3ÑÏc”²dAÕù÷rDz܂N=˜…_t~ÒF¿ªÃtUµ¼}޶ç¥I¡CÐ(,µãÒ@ÑD×F ÃBe°0cMlº§…ŽëšŽ?S7‘M:“™"0‡òJÖÎ÷Tó¦ÆŸ–?v— †s‰´HjíÐÅ*»³ÛŒ@ª¶÷wif@^luDŒBHwÍn`Ó—Jµ;€`/}ïfj5%öËBï-Õ#)³ðD9‰Ìä °(óš“Aã×éíÍCRÖùd ={cª àHG[xÿ'JÄUë߆¼&æJÈ»q1òâöò.Jq¨ÒJ¶ÍÝxî¿8 —PEì!EígG8–¾GnG“1„Ñl†‘¹×Ÿ0%9&9&8N<$¤D$ ÁÆâô‹F’ÍŬچs¼Øm‰bkÎ6´AÀõªµÔð7SeR«€ÑÛˆ3й ¸ iÔ:4'~ò-,Ÿ°±ØËH»¹%ßÒ/ÉÁï"àùb«“„aFƒÐÚ¨ÿºë@T(!mÌAôÀÎû2ŒÂsø[7ý¡u)]žÂ^„¢In•Ë/@ƒ ƒ‘T ã–v׿j‡ÃÖwN̤ѹ{ƒ9:u&O"'‘Ydf‰ª2èݵŸÑêôtó^ù{¸Ïã [™KGsºQ\zs¯ »ûCø8¼‚¸±Gm€ªÑf{\=¿ÿ§ EG*¼Ú}úÒշ®oµíÇúê75i/½ÂíájÒV“…*Jü8=º~GÓª­š§kXì\±} èpt-3g“Aj±J=qžyš‹ØOB "3•Ý™½Ã]´1c„áÛÏ„æƒ[ƒºzÝ6VÿÉbЀ¬d¸aëâ2»ôùPãQ·r;*ËØç¸SÆÃf®hRs|Ôa’ãÒëgN4E80 ª´ m:áÇqüçÔ„2mÚ°•™Ð-¸Ö—ÎÅ•ÎðšTc›J«ª³¨WŠØòþgúÄÙG€ø£1,'Wê-\ ª&T¡Ê½‘E”$ :žºôšpÜ!ÜA kÄjt¯ Ùéû§h±‰Û'7øÔ6é_$<à©)bˆßöبØÇY ã™qÞ¾:ÐZ©˜^v ¸a~1= :ê¼m ɾ+Î"3ä$œE^È9‹¶A ÄÒê„Oo¯?h𨠸Ф¯‚gW1´§B3²BýŸíØ*îB=]0¼üè[ŠÄÄê“ «°÷òq¼^‰4Çd)ÇR;ÙÜà<¿ªóÑ*å:Ïz+t¥/EU§»x˜:4³©3òŠêky6:f‹Þ^k"O/.Ô{/h¦œ²u>ñtš3H}9‘³p¶½åÓ&7È>XNxz#ÌèE‘XŸ#ÃDvS¬Ž’5.dX=ì_qu²,íÚ$vDÄHÀ̪2iÈœÉ*-¬ÚoÄžvcbÕx;€)á8É!ÕÑ~ä”TKvÀ"øü\ã4å°Z}&×—Ï|kÝVi*8hÛñbz#I¤¾mO¤äZU•jË Ò³ÕF ©ú^.A¾ÅÑ;g÷%†ÐV¯„°~FNŸÔW†ULïú?pž£A ›F»B×ÁGtWÁuÿ£Ï%=“Šèvƒu@sø¾· z4hÝôwÃOÚCÜtL:hêân-˜ÉÄ®P=Õ‚ªæNQ œIfÿ©9ó©Y–J¶ŒdCPÚ”QGýXCpû!¨õ‚ÑÄ{¼F© ƒŽÊX^‚ýW¬ózY¤O„¿ók[±íÛÆÿ_¢èÈ:޽»Ý–1ÝšRA (Å*_¦„ÃÄ RJ)IBoxR\˜X·-aû i £ÔÒÚ[¦ TÖ>¤¨C†ÈnÁ–ú”‰,A ÓIúªfûv³V/Fô÷GŽK㑚¦±+ˆ Q‡¨Š£Y"t.½×iþ:9È«/¢nm‚˜dGßj¼eˆ,¾1 JS×›Âä”uÚ’•ŽímÀýÒ¼!@H)É$KúZÀ,  Û¡j®r]žGXbÅ6ÃìÀu”̼`§«ÑÎvÓ4uÐénûõв-¥C´â‰*ûÂ}Y¥™Ñ~L‰lLyñO+WZï,äð!Ju.åÄééú=»h¹Ò’ž¨€Q «”á)ºd€þÞgÔôë‹WÍüð_›é…<&îÝNEâ#ʰfH.ÿÇÚ¡^5x‹ô@2€áùÕídÄ*¡58<ÌAå&ðeØK[¡0ú)ŽAƒhãÂwSÂÖ»v6GC*8gj´n}ª%k'e*Ç)&9äé~P_+¶Ú·'\±•¦ïnR ¬è¥Üo4Ûd‰QMäã–r¸ôîZV‘ WT@¬º…aúþ‹•mÍØ´J4~‰¦º[iKòÓn–HiÙ 6J£jY=•ÎPëŽ|+ì²R¡2*¼@wú8ÖHªÛܯ'#ÌF|gŽ–,wyŽÅšVŒáøT)âTÛô6EÝM_T8˜75Ýÿ®ì¡òÙ,]ÑM5b5ÎÀStÐFùæ¢Ýœ£± h Ðå¨ëIš©ÿú¯E 2ƒ'™kß¿w’5h¡nï`#ñQÚÆeE À ¼ð]Ý c©5±R\·-´ÁÙô%\V3“íx1ˆíCç§ãôýæ®½Ä luoéÏÔøç@oͦãèÜ*Ó²:ZK}²Ñ“´e¥ò}¬TÍ9lhI:¼•="ýÖø„_7ƒx9’sõŸZRO'’,šTs÷èƒÜÈ ÕuôŸ‘0Á*Þ±škS5]‘‹Œd_dÅ ·¬‡ƒoÝ»a[­óâã ¾eW6dËÖ.h]’Ôx«žj3•¬© ‡„ âʤpº¸†öœrl~oÀ[³áÚn‘ Z#ªÝ3EP„ʆµÛ>”W-©Õ7v Qêà?X§¹¼¨Ý§Ë+ƒ[‰|t¹MVjQÂ$M^Ú¾;º9žX0 ÁX}r¡ð4–UºO£•‡vô‘¨&^Ù·ß¶zéAW}¥Ï‚=aÜý“, µâT¬/6\×=› d €g”ÛÜ®xGà›#!‚…\ï‡@O‘W)óÀGÚãKzªp^*`¥¦ÍØg™ž®ßQiÕ¹l´é*Ú ñçŠ=6ÃãôÁ€%%TÐú° ´¡ó°‘AsÚƒîuâÊU9 ޲…ý(»ÁïêTŸ‘»cõ{g¨ävtJÇx~w\,"O‹Þ”ò;wq)*±‰B°+y(œÊ.Ò{!pFKú8¾AGØ]œÚ½hf1Ÿ’ªFÍ–^¿Í4†¶Pz=«výˆÊ>h½ö=·!ІI…]»3èLìe»y[(sÜsá¦ù€}éL²÷_Û[60(kƒ› Q2ÒY”ªšö†L@*¨Ç Hšrë³¶ì”j+±´>¥·q â”:€JDWiõ6ž´Ð¹`X²ånAP@€.ù¬Yè,µ>:É­#«¦JîVÎHôdtõ~âHA-^è%ãÉTwq&ÛUï Í3‰Ÿ¦BÄéÖ<óšÐYÃD²÷ŽTÒ½„ó0r‚PÕ3´©á-ŠW܆R÷eC†æÎ(H%1UãÔ#rÜE†}g‡S¹ËAçû¬âæ6Ûðïålý¤„ÇÛp`•¥ª© a·CÅ⎢æ¨ÄzùÛ: še§}઩CêâRíúT‡ôšæê`:sG‡5eüa“¼.œ.—]Ã Ò @žN¯F«49žXÍOˆß4äânû:¦Ä6•5òÚàÎQ¹To ¸\§9T‡-¢¼OÀÝ‹ŒÜªåE»]BT¹^–—Ž$gέÑÏSvò§Ž› jgÔ,ášeC(\QHºxBÉ3ƒ–^{j?ø”ÁQ¥{•ð4±ÎŒiÍu‚¿“IT®Ÿ–Þ¼:¢®@˜$Þgí JÕ…J ‡$o&òt¿ésë¸k]ºUȵ|Gô˜:òUG]lŒð#ÐGh­,­ ¦qÔ †î¶Û]Ÿ®ù¡YÏYfH t`*°—„ùÈô†g ÊJ°ýAò¥™¼IÝú­á)´ ¥"ózѪ¬ÖÞM>µAÜó(}'0ìÂëzàÆ…Î´µ ‰E¯´hLv’ÅŽ*Q%Yã^F7œ^E«&˜|vÅ–Å='n.°Ì¨t^µÒrøFibŠ’ªûnüíã.÷éôxõv• Aª‘ýHcHâ—¥èb4¸cI¬ñkä6"‚ìu‚u^ðp³ÿ«ØDØS¼™W©Î/ðúwòºØjédUݯ$vwÿ:e…Ú+8>¯Æ 8¬é-CHÅÖ‰&ˆaTšÅG·|·ÅÕ3 FòÕz'PÂØEoNγäÔÓKµGÍØUOƒyæeØÎé8/מc `­®­ô»vÉ•û}Ýf\eúh¢U¸&+}²š¿ŒÎ‰RÔuŽíÙeåvá2((6jÅøÏÔÛ\íøLuÏ–þÓÇI¦„…Iu¬`ßlzˆ ²+ØÍИ²¤,ª;ƒáþViìbOžïÑŽ|,˜#™ÔWª¯*M›uÖ3U±[ºéþÃ^Á¶üô.Ði ÍÍÔ¢²<ú<'°óçuüiøÑ¾ä:ïI"tËÀUÀÿSœpßÝ i¼¤Ã!‡zŠ4žÅ£Ž6ÖÇMëkÝ 9ä÷³hµïÞûÊ*è¼@pîB.Ø5O&b,xý5Š%ôÖmÜ¢,ÛRÚsô7Á¦z«YT¯ÊhÜàÔ¨©Ï}£›Ô‡‡´á)²º^ÛZ·™Ú{s vZÚÑl»§×ªzhÁx6e·¥ðëµ&}¯î¿í©ŽÛˆ‹W¿4÷ÅΣR°†»­ñ9E„Óª09'ަäÑD•ÚF6P˜)¶x¨º¨•qZ"é eå[b± ]8Ô——y.i¨§™œ¥öú;þ¼›ê´¾—a×9Î>E/ &ŒÇ—ölg¹ClÙC+Ñ‚u· ¬f“¿íî¿YIØÇí2Gvö”°–7;”ò^zñ$ãª:kR§ ‡ Ç)R‰ÇT‡C †Õ̧8ín`±à­ÆªŠØ¦™˜ó ^Ú´]« ù|S]¤ý- ËJ/÷þR"ôŃºÏ\øµ›U2Ÿƒùýݤ2ª*ØÔ3”ˆáZÐ ²¬ª(6°JÇöž.Þ´/|oé ërÕ¹ÝþÅ"#iýEjåVIªzx28Ùþb òõêda™/ knÙØôõ¶Ø£ö^g.ÔÑ㙎ky{gE–â¦ÖV~AôóÆ<Žíâž—¶Dký÷¡1~Ï2Ne„ú¸³VúùšŠ­¦Ô›øö"»ñcê‡zpuGÄ‚0j&b•;9¿åÍm(+ÆÕ²TßÅy kÄ›O_„¼âxì •ym55èXó3Ï ýý­ô9E/SHÕ™™Ñä¼Ähda@ÝP‹C¹ç+ ÓP¡!_ôGgyÝyž%H©|)æor®?·l›êìæmF6¨Q}­UˆáõÉfèôÓÎ*úˆ×X%üVЭ G©bÀ¶MzÖ³å;–Ú†xýôv3îð¯ß®mkO˜ŽIŽ SZdyµŒ!D{w¸!¦‚½@ªŠÿÚ!3sq(B‘Ùd¡DAvYä¤ëÝF¸´F’¨ìŒrÕByÛæ]–ÛØ‡ÓF²e ®\ß°L¡ž~€wpCW ¢ÙH‚ÓŒøþŽ 5cæÈÑzO£ó6éq§+w©‰Û±E€£éñƒÙ¯$ ¤Ö‡HJPª¿ ÂJƒ­"æ Lhj*·º8VÊ@q+~¬M¶œoÌœ‰~jÞa«ò½‘ÝOçKÃÑ;6— ôÍ –U•@×SSgJϤú¤®±&³Óç.ºžxhº¢ìq&u&ªX›ÓM°»s‘åþÕ|O[ £Þ=Ãô*èÖ[Œ°sþ}W£|‡9FB±ñJfy‡˜Ãl);~ÖLB]fÐ*£ùO8'çJ¢þ’ÅžT*d-ó~¶ÏøøØÜ ºz±8¢É JfOççÜå/‚Ôyæé$œóÚ^{Å~¤wjíR][évoÿcýjŒ#j 3êä†çÚZÖø€É®OÙQlÝâÌÑ:¬ûŸ8k7±"ݸ%¸Þ*ð­ìYTêþ†+XÙò1%9N˜&¦%Fêâ¤Þ䬯fì0ÔÝ|!5}µ? h,'2X9«_iÑSBº¬{ê=ƒlD,eùa9°1WÆ@IeøÂŽX•ˆsfžìA3ØT¢è!çxÙqÑîŒ$ÝO¯.¡(œ:ŒV2YR=yå°1´Ò#¤ —iÛÌU`./üecFÕÜýTø“¥<-Ûj¾£°uÒR(•JWP¯˜“Îá+¼¬ÙÁw«s‰³RèOɵÚ=ÉôýÂÖQ}…àúÓkKçS§/ÜÒúÇLZÇ‹ÁêÕ÷Q/y·DDB WÚ ºŸ{ãnzÁì9dIí0¢6TávdöN”Æ!{BßU±` Þ:ðõ‚QlÔÄn¼sfÊdÖT«‰<Ïâ­TnM!©lÍ—!zVIá,ób•‰VÕ‚'çú[‹à®NâK&f³œs18^̤8ÏeL*ûöÏói–Ó‰óIæYEL‰’"è™Ñª‡5ˆÚÁ/:ÆU–>ËÆÈÓZú¥mat:1ºP(Ö%£@zmí’îjtmZ¡ìÌ4†]Ó}¯yz·Ÿ‚ìˆ#´TýyÃ6FT“LÖ3‰6÷Hg"™20¯ðïŽÆZ¸'…m¶ s~ô¹!IÏÕ7Lxã7ïDʪÚR3`ªÔåo³7}dßÕ›¿}[4D¥mÓ½Û”–]ù,h2¨!*„Îÿv¢Ûõšûª&i2ÏýºH‚ÎÚô£KÒRifM_(‰Qs_ªQÚ7§‚M'5ƒŸrÒ45´ª)Uýóš²M|^! ïNnŽŠÃ½«oÔôCºðQÇâ—·íbc«oÌã3–Í‘$yȬõþÈΉž·¡Ù¼ïͰŒ.Ô]ž£zóT©mþb¢Ç6ù9@ŒÜ€ÜÊSá~%$¥Wrn¯û<£ÍÆt¿¦Õ½í­ªn\NÅÃg>âuo*⯔ÆÈ®Üºcü]ÞÈ’*Øà6ß=ìHϪú½3lx+ºe9!çåo‹@áË R—o’í ýß,ó<Ï'ræi§óÜšû³îïgZP‡¡ˆùµØE%0™òúU­ê|GìÍè,ý1 †íO3†kºØXD†Ó´'{÷RþAÆOO?n1õk íFÅ+vË D%@A°§”AjJrL8L8L˜Rk„ÛH5 ë™oÆ+*@‘1Ønâäq%·õö@øIê¡«rïªü–¤á”*¾³®JÑ-í’,”¹x½=Otcè2B=ECºæ¾8¥¦JÒ·[r’J·¢'=ºÙØÄL[R̰¿&>©r°¼PU¼B}Ú3âéAˆo[;ðÝp¡jëO–@]Ъ(7SK ¢‚Ô|a[ÅjC«â¥®>V§vÙת–íqJ¸é²†cL3åpònD÷Ä9¢ê™õ¶cQsÛ´L¾‘ø¤)vå^*…1fXËM×oI‡¬- E>#0ÈÌ-úÜæFwMÆ3/»x½óÝà1h‰næóàò dõfJ_Ð…_Kî Ú”îsÛ—¼Ÿà£F·PÀ}§Ì«±m®‚iT6«3ë$SÌ…øä[¹hIYQ+9Íðt®Ssù1¾vÔåIíÑ}a¡Rš.IëŽÎYNmëOglÚ¿3†V ¶þõš‡Àßf˼ikeÓŠÔ§Þmm†¶ZkÆÛšbs¡èc½5ÓV¡:äQýÇÏvT ‡T˜Ô„*KmïöèÃ6·¡äô„’Œ0´ÞU%[qÔÐ¥a¸ëœ»ÚiŠ˜’©LÞj<u ›µád3ÃAé¢Ö¨Ct@j,ôÖŠS4È)àlO_SŒ]âh.寒îáCÛ”Õ³:¤ØOÙ»ÀÉUÝ,?¥S»º¡HØ-Åh:x:© (Ýî÷óR½9k}ɋڈ•’µ¢R£d€~iûÐ ¡•4v»:]BÛÒLWku2ýýÍpÅöõ Ö— ká'¹Ô?2n—-âTÊ tZõ¤"^MoÞn9®‚<®ø%„‹7ÏÀ*g´Ãö+Y/kO7Šw_#úlâf›¦¬`º·ôüU÷á7Tdä|M¾ã é‹]·4Œ3 ¶åWò¼XãõXYÿ/ÃLÙ"j‰-eë㳂Ôò8Ìz’yæi®?Y$scqD7†zb «Ÿ¿wÝóŠ „eJ”HdЏ‰Ù³óÑuketz7æÊÂÑ –«7’T±.WïÚÞ*ñ¹° UT¡òv&b}™RŠ‚‘€íåÍû¨ùÏ0Ó$‡ Ç ¤¦¤6áê› ÐOUB¸÷£ò`¡D­ŠA;“Ú¨Á.± ‹8el¯ÛÚÿT9Sƒ5M¹–‰Šz#ÔW-Z™ÙU‘*ÕXË 2­Ð¥tÚ¨®`t©‡­Ò9k& õdä<ϦHê&H®À¡Ø1…a0«óŸï]A¨¦Òô¾ª./ U-ijödJ­›ßàijhR3”ÍÆA±¼©ã}ªBÆfP3Ô?MjZË¿®ê:ÒÙVØÕ`$S+`öJS‡b9ž­XÃ^¶1.ò-E¯ „Bšñ(šÊLmõïüÀŒƒU)§‡«§uRvr¨èlL Rvõ¦«¹Ü~ÁèóRA)Gyç¸ ¼¯u—æ>üïÓ÷@A3`%0è5¯ì.v/ƒ=OñŠ1ÐØB³Z³Ö4¬ xÕÑPœ«6@¬ `³Ë×l*Øõû ؇«#µ`È_K7éãGáÚØZô‚³ƒÍêÔîÝ„‡{›7ÁZŒjèBìѹЮ縀Ð)w»[@²f^°w Šg¯lK L äX:þmÆ…nC¢núÜ’ªÖ”Þ:@QMpÀ¤”õ7-¼u\ƒ¯Õ†ᬿ2U}AtÙ±Zfé2=º\´$æ:V•“°„Æ$ú°Tºb»ù"ÖjÞRŒž[u¤²ø`ñ0PUèIãô„Ax½iëÓHz¹œŸFš-×Ê/¨´ö*†$È’’Ô|}r¦÷¦5MÛˆ}êçTŒk•¤¢SQúT}69X·`·z̾»m‘?M×ë;‡-󆌃qLã+Ä`×u¢ikìr;ƒ3ådÞÐ5p¾ æâ @ÐãÔ3éÍ ›tÏï­J±têe濦ËFÔc²ûR4´¯5 ºaõ7_©R]kú—øÑØWDªx»öÙfîΔ!Ú / G0›#÷{ ÌX¼¢2ÍCT°à5 [ËBÕØ?§ ±Q¸DÜ'M\*sY M¯ƒÃ.›Q×kº¤Å•_QËâÈ4—+Ÿ |ÄèÞÆàcÚ*››’öÕlž(×cÕçEªÒ+Ê8˜ ]Ûi vpŸš[J™OÅa’CBn¹ÚZÝd9Ô;QÍOAû:–«åV•'µµ Ú c«g½§$l2"R£'~¿«;E±åN€5\ºÿK¹¨9L/õWh¹R-Wh³Uëœü)žm…¾×ÐM¥f~Êëk#…‘A•#G[¨µÐÈ8ÑÍé32Õ‚Uýµ¹?%IÅT?I0ß{I°+È¡Ú~® Î -ˆèæ«’Ò§j-2;|,¡•Šnˆ:`k…7̲2áà,ÖÁÅX˜=âµ+L êÜ0¨íûsYÉÊÖWøTŠ>µ£¸Õ. çÀy;ú ¾sOÍéÿR¶£WæÉM‘ï•hŠ5EïÀ±I¿ª³ÉMF1=ÃV¦l¸§G¨Jؾ³¶ë•û]\Õ:=ÓÔûê–uó\îÑzoðÏñÒþ™†¾¥ uŠzä¦×*!&tË©ë¾3J{Œ%•h³ÿ¢tĈI X¡}”­ì¨GéoòUo‰LÍtËydj̪¢—lx±Ÿ£Pd*R’)á8É!-8Uï;¬'z„µVzßpj5‚҃ʖµÜáŠ÷$ºi"‹¿,åÚo†¬”·)ޏÐp*§ Ü¬s3ÈÌšúf¢Ê7çt”d¤Oufø¾‡fýGûq{럦Cªlk[t’ª½Ý Wr¹"K”í?5åbÀÅNJxZAê´0ú©ós•È÷¢]|l3F} äcMD0ôüÒΩµï_xVöYÑ"äîEvš1ï¶V·±®/ßü\5?^†-tØÓöí'Pti¦ÚR“«íK Ë¼¿.Wiøœ¦ NE=eÞCØd«© ˜Ë];÷™x‚£µwŠƒàà¸Ï[—dç"Tnû‚"˜“p#î pÛ±‡É¦)ƒõú5#¿ `¥³O2×Ö§ÛsV½x“sr³AŠÐµŽ7;Ñ›çfWWcF°—™ø-DEœJ…qâZ&*6ÉTß·¼6û4š–×»ãAi…Qñ<,;]IJÚæ ‡­ù¯ƒþXì«Wo–Ê_t•»à3IÀ!É!Éa’ HèÃjá t5„«b¹äzâÞ3ZáµHÔB›>j9qõ¡hX¶‘~Çã골2‹¡¼¶–ƒµ¡ÎýÚbƒCìMžûÁù†5d¤Z“ËR²VJ©Éwa‡:V*é?µa­# ia«tÞþl'­w—#%íSh§§)-RÔI}Š$q†™#ÄÙ¤‡…œ±Mp¶¾gÚÚÀòÍ-_ *ÚÙ©U†˜ÂÞ”.ÃlÔÇoz†°‹2¶û·Ú´E¸µûÅA³Q¾—jÕÇ:DU²©¤é‰%rENS¢4("ÓýÕã ŸÆbé1$[ÆŸÂÀS‰RI­ó /œG‚ÉduÉ£Õ~÷kEáTe†C”nò¢ ¤müQYS"(ClúÆ­kÓõtg4H6 ´PÖÛpltaë߬!ölsµá©š$àδÊð£;0»% f¬„Q†gˆM‹U’]C W J›A°þøçt—6(ÔL†È²ˆé(AðØùe—…h“ „BܯcÆ€»]·,³ÛÜÝŠ€í%#âÛ5&ÌIGJ’’LŽ )™@ú7׺WÕ£‡–3(Z,¿KÕ´…uUíÕÃBN5 hu¬Å©•†^Aìfšã´L «õàò ¢o!çŸAÚK9áT,0 ¹DÊ+Jó–Z±ÊÀØ®­ÿ«¸f7,O`TÝD‚t·µFÓÆû ™šMj²pV7MÌì^˜N£Óní FÑŽ»x Aª“Õ[Yé¼5®'ƒÃMëùÞ°£×5»~¸1k`ˆÙVjiïi8ÚÚ a{†,Áf•ÑBS‰ŠÙ,¨Ôå)ÓÛ§€?€ò±c4Þ»Dáì®DÉjf?¢bFTvµ>cwÃ×ïûÝó9Jî´Ëä%:Èhm­=0i÷ëç·×î®=Ÿ ƒ>‚¡E_©X~ÒÙò­ˆ‚¦ðù¯»Kë>Àg"s-säÒK¶Ëò^ˆâ“ /m½b×ñ¾³Ž%íc¢ÎAã >f[Ö'âIŸÅØ_†oWÓ€£kÙÜ\(qƒçž©ÿõÎ9> ÆQUaÉ[ôl–~H˜&Ò2O½X£ú£WølœH¸’·'ªÝ °–¸%l»1sP¦¨6w²ßAGÁ<¦]@(›,+‰…³´„«þ쬥†ÀÕ*¿ê¸Ûšü)})‚)0x*±Á¹ÎÜ*Ù§­P8!@Ÿ}„Gòiÿ9Œc5j;Sågm”Z öú9$ã6UM¦8®“{—+·ìÐôàDáÆ~!Ž„¿ i7€Þ/]osò]*Œš¥{¶„ÐÖJö6|Ñ÷A¹¢—uY-ÎkÞ‰«hØsiw’¦êΟ¸bÓY©TÅjîû¿yê}µðÊša :qû8aÉ´‰iuåçƒí@*@} HååjRQ&ò¾æÀùn¢ØÁ(cŒOÕ!9€ ¯AE\Q ú«|Ì~]'^!ˆÍtTÄÜÖ”wG½÷b kãALí8•†Ë $â=ˆì¤0jê(â¤_F•¼~èŽ!&,µÉ‡182ìrwÿ¹îâR„¿üìúD.&ÿg˜˜Ô#—L™ïë¶cAr!€âÂOµ·ì‡Ìãîêy‡Ø¯y°¥Ç…¬3t7L©Fƒžè\¿Ê>l<*¾‰&µ{ †ÂIlK®BU¬7ý{Ö>N<0¢Œ\ýmД­­Ñûš+h¡r€iÕ]G±ÔX" ßP£ìën{[ëU/îÀ¦b´À˜Ý3ŠçÝÖ@Œ²v3Ý_†×)v ÇPeœ:-|*P7!öÙc в².<µ;^Ú½&Cº6Öæf®±„Û, 7 ¸zz: ùûN+ˆ†JH"Áßå´Í«2T¤Î/Ž$ó©-_‡Ù†ÓÌ•¾' ׃>7Õ BãÕ*$À€ O£8+$‹e­ÆË€"69pÓ¹SI?fÅ&$58Uœ§œ¹Ua2ý÷Ùµl¤Íitî~´£‡¼a5ÙëDifú`‹ÃÕËD6d­e½$€ñªææy›ÓÈ· 1ˆ) cõA[¶ÖdCÉœ(§E¥ =Ú/E–Ú••OÝ1‹¶œvÚJš†]ü6vw¢y8=‡¶Û€UÐ/­®.ÇC+£gr´ñœ@32~êàVÁÞ½tôéÚ‹ò|°êQt̉æ¸zžÖì–*jÇ ¡1šEßO§ìÖ ^Ç1¹Á~ñ#›ÃûÔQZÓÎ4w(¤s·²” V$­ÖÅrW-IÒ·æEÛ6çè“ÝšaÔvœ(WíöÃbû¯Mj•¯¶@¢q;ª¯<ø“ SÂ!å *I ÎlÔš^´Uû²A¢a„•Ûœ™Å…õÍ_þJ¨Œ+vnS´^±(E…ÅVÇ*ÊwÓ]lûë˜T-^v_ÒN]Šã,©ï2ôÅo?Ô¯ËBSRõ“:"Sà JùJU(†µ±Û1œÝRŬhD‚á­Ä6ÿä¤FæY{ýI}4Y¢%F”xòBcD4VÙ„þæg©¢½ÆÔ†&˜˜F±R³~„Õ aV²G·ÊfÃÚâÚM¾kEúN%×Ùh“Â"W(2ãÑ‘“È©©TË\¿1·7¦‡7áìÙæ>½( NP‰H=X‘ d4Ú¹·_¶Ê8Ž!Ùžéš‚R¶ÀÏ‚f´- }0 =¥€h˜eX;†ýC¼­ºû wã;øÁýÇÇæ?K7$ ¬´UFÃt;%¥£—_À"œ»âæg`ujÊY©äpÀ4IJH ®Cì_ͪ\•-ÝÞ ¬Þ$zÔª›ÌJU4Áj¥9Û¬|?v-üÇPùøh{ª4È|/M¨—eˆfr.^ªF{ÞNª™3‡C£œ¤öqMD²ÅÁDTÀ—¬¡)U€*SÁzLÓI‡¥fe,E¨!•›¸jREz¬L*ŠÕ+Uÿ˹Ÿvó£³ÜÛìIkšÑ‘nØt‰Ð"L]΂ ‘‹=øFÛ#LŒŽœÙ!¡¾3!½ {´¿!Pq8ð›üQDÜ0—<È9qyÌBrù~tôÙÎ|êYaN¯›NFoç²IÁ®¬ßäY\Ô伸¬®/ï}%Hó/¿3 Þ"{äúªcÕ†ZaæàÏûl,¬ñüësk °~-c0vT­2¬D¬o¿i¬ó©Ês.‚ÝhÃÑU‡cÌZ~%,qšH )¥)l¶Ç2fX,yLáé¬ö+ý|=ιv”á]ÇÒeOvqEÀ½F¯zï™ßRÆ…XCê ÌÐι‹,u:º™¿Ùk¹1Ù9U&È”ª¹}ê¬z—2ˆŠŸô²ºŽº³OéÃ:›Ý)ŒˆÖ-Q°Ó`Ä|rcò¹‰¯'ÚÙ ØBBݯù)SY`ZîÒÊdtˆRA᪾S¯³c$DvKì<í;ΈT§6³4¿·$Ý¿¾ý5d!M}¶‹[ѵ¿©´+…×…¤Övÿ!Yw''JAÀ}oã/èˆÞ8ï¡ãë줚Œ,ÅŒjŠøU Ï&ýDƒõn[]îCÁÊô <5ø¨ &^©Æ=m¢'\%~u=r °PÍÍýå… Ÿ:›XTlúM÷o÷½´?Øü5?$Å‹!b4ûºá˜ïRÅöÏ#§·ßV¹BˆÀ¶òõ0Ø…xœCÑ~ Mvïûetf‰Ú+µÒٟƘBž—{Ù !í÷¶ïà«Þ{ø/½ÆSÓ]n°×™v¤$`šÒ”0Ò4¥Ã!&L Ód ’&$`aXµ=IÔ“¤P­¯L\}(«’•)Q üÖB[DψÆS A}`Ê DÐíQØ·4kL?ºMy(‚’¥ŽÚ÷G*súáŽdõ‚Å Ÿh—hd­pÐ~Õ嬈U ; ;:©–Ú®ýëëV¼„ éèDv®ˆ*²kŠH‚²œUyåyüߣLTÅ`Bõµ’tŽ€¶½®ó¢!&§J¢WÄ"j Â"Ú>ŒJ”Q+ÜÛtT̤êè›ätÈÿÒýwl½ñŽƒ]í\j’Ö—6ëà S’³‹!ãè§pà‡Û‰j¹<™ÌEj¬ž7©»·á‚e ¾ÞÔb€ÕíÇ¿"|ï;Û¦Â6Å$E&/"/ ™Ê“€¬qSbÍ^Бûþ»SÛ*Îè=¯ûÿ¯‘©q—/Ћñû‚¨si¶ Dô{©ì¨ö):ß0Âg; ÄDì’µ·{Ží2¸Ê´8Âθ‡ 6£Xœ¡xÇeÂï{ml®#ý½ä…Ø–#LÔd‡c8µBŸ”Ò4¥)Óò•CEBJ)¥L²JšRJ˜¦Úª×§ÿGg¬nS\·ýïÐêGïÕÛÁLûŠ‚+òóë5U1èí»×XÓ¡ëqoTd(ó4¨×”4†~yUsDpìVµÅ'µ£D«á»>êâè¸ú)P›¡`ó¯Vnƒ«—Ã;.äʰ˾{kxÍlp)˜óÔÞw¬pùF,ü4ZYIÅ– U?5o‡“ô÷S®0B×—§cŸÔdA§ l®ÑYÈ415’<0ÜPÒÕ §bš;þiÉsr0Ôù¡;C~V%ãÎß hܾ í §qÂwô-›Ö6¶+áà©MÙt±=ÌÙ½ÎжA(»€˜—ÈÒ ü®Ø¶Ib±J=‘'E¦6&U§Ð©i4ÛäšîwáTv~¯Ôü".ZÄ=y$hc}Œ¥l—6¤ÏþÍ¡{ç9†PØL¤ê%\Ø´âÙIòaK>9â­ûT½®«‹õó†í EAo[-Ûq¸äŠÔ"ù}­ ¾sÁGpt)4Sl„)ö‘?‚U~š¦i:Li:¤B—Àò6(²æ iÊŽñI<ûažMGÙ{‰­Úž¿``T¼ÇoixoŽæ‰á×~M6V#ÂõB1žUÕi¦Ì§N N ;¡†IíÌÊ]µˆø¸«mÏ.Eš¤yÂgŒ˜ +h›%ÁNBtb!ÐmƒªÐ9b  S¥\’Õ꿎-‹9uYŠ&ÀaµS­ãÐ(XÆÔßömiéA'ÓŽòØšž HŠ¥*·ÙÅ·x³FÙNZPÞIŠv””Ñ æ‘lv ”™ž”K]”qr†ÿ:wÇÞÑÉ©ÑÔÖ{xM¢*ú>ôQ”Û¢FáëãM+®¨;€û¥Pi69¨7bpåL™…R–¨”˜…'ÁINeç?UšUŸº‰Syi›ƒNÚžô¦`»àÚíõ¬ê%P#¸K‘6šŠ `¼æa®{ËÆ #ÚïxÙ§†¿é°nî¸íëQXÑk÷¢„M²kʶDõušfFÍg:o¤?~ïjŒD¼~)›=Ñ?ê~( ¬B 0¥t˜Òá¦C¡JB!rX4„®·}Óœ ¥æ=)>‘q•’®LÎ^RA;$úÑ­ÓØ¦´cç¼à3`…É]¥i¹»Ã?=Ôî±Y9-ëyò:-hÉ{¢z®Žî^Ð:•¼t¼>S¼~Šº©P¹ßdÝó„%kQ˜&HÊÓ{ENÚ·}Æ–:½°‚™!U–RËo×ø(¥¹$©Ì)Ï"s1ü÷ëjôשÔøP€ŠÂç)8ÃÞ4º¿*Ø” BI©¤¡BOÚ ê]U»‚Ú.¾{ÞzÜŒ²fº»³*ˆ—v¿"S'Õ(OnW)Ή#VݸÌ 'Ø7mÔ0 ƒ€‡ ýM‰@ªÊ,ÈÄ6$PÍJ—nªÝUתóp•ÆF¦b·Q<<%K­BkaÚ&:¹–¯…öC%—¿æ?ëìÔ‰˜)$Ù` ·àT&AÏ·º´«õF>×ȈÿЪ£ÎO—§t¾öG)?J¸yíž‚3…6/µŠs·;¤ÕvsµÚÏ^«@xþaè@%K×((B6™á &¬WI¹O¶‡£âˆTŸ·bÔ© ªWøßr4Ñ1¦4M2¥Â(U/"i,›Ïï#ùì>S§«po× ÓØÏžAM3cÅÌ"nÔqýzwÓSè=X½$éŒ&Žxa๧ì4ÁNì岞2Ÿ ’Lª¥W†¼‹‰ã¢Ê¯ÀÎÌØØæ9j[ä³CV:LKâÀ›IŽ“,_$9&©ÿtXF¾ ùϸ14¯#`‹  hjÍ(zÝ$±ÚÆÎ3L€ªØ¾°–À.’ÊÜ3¯ª{è¹%‘æú¤“q¼%jØÁOš06,orwæŠ`±€‰Í“³·Wr Îò+5;•R± *l3òìйF¢z´'Ù >tøÄ+ØÑ]TógÖ —ƒnI0t"ñË9Hê v1 ½Ã@[qáÔ x…AŸùmÏæ²!× gkÎE¶šÊ™¨¥¿¹Ä¥.…eèÖŽ°û?Ý¿yì+ŒÑ^†I¢Xb¹ø?„H; /CØÄ³Û B´E«YöÁ¾®ÉmFrœÍSÌ=ï†ï†þ±þ° X;Ã7 Ï=eðxýXš’Yyéa×uctØúÄ»0Ð7ýcçXÝï_@‹ åY~LSJ©A^£.˜´éÅÁ>ãÊw_-ëÒY^ ÈÝ™ ]•¡D…þÜØ3Í0I5&(׌í+J4®¶·»¼&œY;uUœùxÀHï¿”¹é_A*$è°Â¹Þ©´R@5nµ^„„šQÐåe0ú&áÍ‘WŽ˜sÍ %¿’²J5YV &Là”Šn@ ýHÄoé+´LƨFT»7GR=•_Ñž†˜‹f´s0Xƒú•°>D“ŽTŽW©¬–¯HÕ‚J–Ù©üôÅ•\wB7 Ëe«f¦t®õšìºóŒ\mŸþµ¢RõÕÎ-k¨Æƒ)íd©d+÷€˜3‘n{H@%ÑòjÅ* <õ<«¥K«»£QÛŸÂB=ò­1[š6o³¯•FÖ§Ò$G¹ìÜ<¿—Î-vQgˆ‡Í¬ïbSCó½f¢#¶•ðKŒš-Ý€\ªÊÖå!Âõ#(£µ»;|$Õß*VÕ•VR%â1ò^ØÔ^ðácâwDÃnç víVjêì1šImG6ˆEWíµX™í̆SÓ”Rîo¢ãgá¥\eŸ­ÍWÓƒ&¯²¦`Í-qyû|næölHoýÎ~R¡x$¤“†Û˜hŽG7týO;÷lgÆP¦ºK ¹â°PÐR™ôÏ&ÿew§`¨yd&5± ãà3²Íûa›I®&¼9âMÂ4e0×ÐËE];ômüHDv:$&‘:²7sÅÌ8ˆžHXšï†j ÔdÏÒ¿‡Ìĉ Ÿz¢íGÛÙ|Q©Ðæ„ÅHåÆM¶à0Sðh|/*=©óœhƒaTDjý/9ÆÃ‚*à•z{j&¡}”àf‰ž™’DjýãÃWዟ.Ý Ú¦1GèY½‚±ˆÆiUÃv;âO,1`HîÎ%˜ÒE¶†ÂÑ· >†: Ëäög̸¿z2Uµþ˂ڶVX©Vœ„3AoKÍ‹ù6 Ÿj1w¥ï„›g@x×⥞Ælª^3ûÏuD³fװݤÓ§S¿¯ªØðëð½èÍÆ½~;X+ ö걄 ··;^`æÈOË9§™dî&Â8@3%Š!ð8câox2«×䪩*VÑÉx iJ¾º{öÁð€ÓŸt4K¤Ö–œRš’éh9X#wâ-jLƒéöÃH-’çÙu±ß‹Ö~´ó=YmŸ`eµ«á– Y§˜“&*NlMV©(´ÖÏZР‰ýæ—Ë ñ^éÃIù§¦Nd@­xnpöhj‘z/V‡„ëƒ\M8N2¥ ÂT1·dgʲ“Ó ¦T\{ Ò |tÉÀnðK¼Á%¬ë|¹Ò‚‘—lƒyn:<Óu>ðR`¶?Cp­ “—ñ›¾y²ÓwÍ$Û%/óR ÝÝõŒ½µÏõY¯6®¶ÍÅTiDZ:þSuK­k´J£­Ú'ím9[z‘aÜOG3ëaŸÛ0:–2ÈÔénvF=csú-' p!†zxó&©¯^¶þ»o­…àõ²¼HÑCËÚÝHVEÄJ¬{_:þU$p*ù¨kp(N`Í}ÿ‡à”ïµ~NÑ|/Fk}v¾ûf¯ª1vgãyÚv¾Ä}ÇËš!«ãjà}‰6ûòÈJZûˆ`“k´½p1Jù>žydoí¿i¬PÝg{Âgî:søÁ H£”!“Ò77%Й·äÓÚ”_œ¤ÒtHÓA¦ €_ý¼´¢^:ƒ!ŸYâüÖ:-—äÿž×Ýû oý¯±ìF­ÏÐRJÕ{‹}ì˜Rª1¹¾dtå²1ÏaZ’ï@à"Þ_ "¥iÏ*Š—ó¾ ûg)áÐXWÙÓ0tÞ+rL.<¹º;£M@HÇ WG9pœ–?ç¦k.—6—q«Ô†Ã¸¨D;™ÀüTº©Ü 5»I ¾“;H¿VëoçY²7$û9*ÛÀ]t/h΢ºÿËÞR*âýõ¸RøºšŒDg¨´Òg[>[R6¶Êù_ï!NÚj6@ŽÕÏ¿,–)”atŠaм##¤s¹V¥_¶`äEêS²K1D¤WÚñb?0@Sl>žV°ƒ¡!ÀB@}ŒÖ¼5$=]ªñ à\(‚3Q;þ¶Î]eUÍ[/|jDBÈY_ ù"^mµñ»mÉ£ ^a(.jWo¢A¼ª¢ïíb{ZìÌ#D|š- —rÏçIît,ÀòˆzF€G¨‡ƒ4Ze4)Ô_æ Ï×¹Õ ŽŒ›³*_­šBÏÜѶycå]ÄH]À*Ô TÞ'Rš‡”¥DŒÃW‹·º„ ¼Jè22uöe{Uu48Ëù½[ǾîÚ³Ã-—Ä` *?F’¯ß¤).§t<âxHÇŽrœ“ºŽLS #Õ”*/&Ò6îY;šF_”ÐÉbÅ#•ë-|j3dpfh½ƒ>èo;Ð º š©@Yý× é0ÉÕa‘¢.%é¬MÔ›h:7»¥!_i¹Ù 6’2µ$OÔ%è81ѹËS×Ñ%6çô$‹h§y¡TÅNð¶—]€WB}j†ÀêXe½*, …MŸr×:¬©†¿zHuM2­,àF=Bh#zúeM»¥¦bDÕL Âå¬-aù-]&g"lÉT„Á2º±G>°a·[ñ‡ˆ¦bOjË[S—m+.ªÞ`L#úU@0¢¶(} CKþ³7¸ ‘{ý@îõÏjÐJÓȯQýSÔ¸3æÅVfÐçí]ªØrœŒ·¼yÄ[Fyáñ9óÃö¾¹¡0ýU(;Èþµ Vi?íÃa0qÇnÁŽ¥íg¿¡TŒË ôå/-¥úeëÿRuƒL¢á*ê.µ~V;[©‘L±g1±â-jC/ûzž5N);ùKJÐ`Jw0üD—xŸ¸Þg@\¤¥¥žW÷s!‰3¯n›»Ë hô©Ø”ä„o9‰ËÈQ:Ò›Þ„zXhTLÅéó0Iöû<äp„lM ?“6ºeÔžÊh·Ü¹ŠäÈâ¨ïHK*•=Qã•&ª”öµaŸÆ)á˜Aê%«‰YÓ2$Î)ÏxA¦LúB¦ŸËú|ùÚÈ +ÀTÇ-•húîŠRS¡ÎqB•>*3ÿ?ÖÞuÍ[YÍH Š-ŸÙ3ïÿ¢c©ÉBœ¸eâRdËã¥ÏË–[Ýd± DÆEH\‰WÎ¥Âx2tƒ{٫ɾ´ÙS‰Süè_}™*¦R¿¡^Fñ†‹Çf59ÏšÝJĤ«úƒ‹ÕvµO$«QCõøcøYCKêj¶'boÂ~–pqÙ:aˆ1s « Û´}ÖÚ“Ì»‰Ü Ç*WÃmóÚIÔ¥_w:ž7»ÔMšù8€㉅«wÝZìSì§Wb³·ÝýsõûËÖÛÏÝžNOmý¿ÿ…Ï1=‘øCÕ‡í$ê0=ÝkÒø?(í‡äÊu¨Çü%ul4ÚºïñÓ{Û×ÔLÍÐðÓ,#¨ð~´™ðgü7ârÈ0Cá[+ÒíëÁ§$ú{«”äh‡ !¨„4ÿCÐZ1ZÖSŠÓö„…U>êâȶO}ÀZ`à"4dœªX(j\ßêL`l!âêóîÝËõ™f×¼åøÌ`¸??Jaå–KÂPÙ`ˆ†‚P'GÖH¨}:ûÐ@êÉEZ)Õ ÍS‚ù@¶:²ïí”Õ|q¹ ØÓ›ìuyœÏg*UͯͰ€œ'<ãfLƒœ¸´fa®ÈWUŽ€GÀy0 µŠB‚ „\:ÀÍYTù ¥ªe©çÍX–“ϼ·Ð%½ ȪڰXG¡‰EÂ8ãÎÄØEI©ÆîÐÜg,Âͱšýíq(¶¨Ú¶å(O¸8Õå–ÖÀ¥âƒÀÃaT@g»ã­ «âú&TïT¨‰T@GØ6·Ë Äé‚W9ZQ2Ö\”õcqÒ¨,ÁÑðîH÷5¸{aÜ:¦¸…gü³ø1hàÆ¯Â=35ÓÀÿqÀÍ›C½%SYhÔD$a>(zÄ‹M–ü}ÞÌ”Y÷ÊnÿþÚž`é÷&äžñ?ühܸè¸9?ý-ôó+ƒ 4Ö‹Mkü‡ê³wmÝoVô[ ”aaAcùÊß+Z-¿2Y§µ@N‚o픿<;¼Ï= ‡/¶/¶…“||æðvhy‡;?˜`ëƒ\W]áãùTbQsuSŒE¹ÍÿÙmù«A*h¸‹ƒ ÇqØE¶·éØw[sZˆà §ºøÈBl´c,kãVž£1«I ¥J¦ÖY®2ƒ•ô |éÅîþ…Ê2ÚðôÖ¯wŠ—B7"œ‡žÎQ{¾:G·›LáY–)*ˆ¨î*KØŒ!£tPlðs €ën¤Mà…ûdòÁI[c¦Ý{/§±ÿ¡ ×ÐI ä)ä8ä 8Bq˜å³y ¢Š*,ª«£^‰ H(ŠQUÖÕ¬°{@ù)©BI²¤> ƒnc`gä=ÛY•gI—¼¤÷QQÑE «©v£%€5d¬ÆrgÐX{ÌÔì1õíÕoÎÑÒ{õÍ_j>D5èžö0!Ù ˆ1Œ¹J6 ™Zçþ¨•°3<é~ÿÚ¡0`MÇDúì½V—IWÉà_LD†‰J¶p®jNü z Ûr$%FoMôƒJ•ûÃö@‹®'+KÝõþ†Éý¬î}·+7MjqPÿ¶`Õ,³dUûOr8õS„º‡þükLô‘JbÉéN0ÞVÛü?%p5Ä_Ô"`ÔR£ÂQ¶e„L«úÑÿ•¹ÕŠV­t_àiºÍ¡eyÓ-dÉøÌΰÕü”›°€  ÙL¹°x?6Aïfâsxþߺ¢Îb !"D ¡°C•Ù[òF[dõCžv}®­[0‚H±Ž.m§úîs9jV#XœJSZdh%OžödÈ ^”qp YíT%½õŒzá<ôq†Ç‰óçóÐãÄ3¤FÎuWF†ïçW0­Ðoª¤F}8Qż¢’²`U› ìV.×ò§_¡^jëž,šäQþ(dÁªgׂ›‘ë´¼Á)›c/¡¹‰µ5EXuŽðˆzF)ó}ä®)†2ÍÏÁO>gÕ™ÛhÜ_…g¨”D^øØ4 góôßpnÈlâ}[!°í4m$õ‹r‰\I®Týþ˜Âá½+_»ñ¿3¡.:cP„£§Eéàk44€úÉP?ÎÜ„FÀ•‹Ê²Kq¤Äg“n?ùAK˜¿eªnþ” çEšÄÉÝ2ôpÚŒ?ÉÔäˆZ4‚¬zÔö[´‡ÂˈΓf2F®èÔ1xpñ:é-hK†Õý«=©ó3NŽë}z“÷ÜÿD²dj- â\Ǿ¸³vGâõÜ?k¶+¾(Åå¿ ÂæûåLÂx:øOPµŸ|àrW~ÒFT g1jŒ!FA z.>™j–Ïø¶ÀC¬NŸ#'Hаb°Â 9O‡™>î!îB¤ú‘ wº˜ûFT¼M®ýìvìÊ{Vµœb¦Q£†ìòè*~Èä_V…  ´Íÿ¸YøÞ‘f‹«3&ùÃîÇ Š…Z@åÜ]š‚®ÌúêïÁ\+ïÎñ&±¨ÜÈŠ\}c8Ïðõˆ__á×—>¾Âã¡Gxúxèy„Ç¡ç©ç¡ç¡ÙS¯šsÝ éõ.î‹£Ëgƒº€ AÏ#œ§ÆX± }q¨O@öŽ6v†v_o£ò\eÙCïÞ\gð»Ýq?sš÷>ø‚°LüKP5³Z·ŠÌu~]„w~¯ÎW[)!àˆrÆZ+€’™šÍg&R‚œziü D’9þ¨ŠZÅä­YBÂ$-v^E÷ *L:Ve;û÷îƒú¤_”D^t‘öÉi¶!q5»ýe—ì«oZZÙ‹wSÉ’”àœwW@sîlŪOUdª0õßYë{Éîþ’œºÏÆa½Ë¹ï]œ§åÆê|'J?@7ŽmË48EL¯‡ëeÖOpû¦„wCšŽJÙôÛ-Ñ6"“›L¼Ç[¼Ýkn"Ç“Z¡ê¸Qp¼ºØ¾¸üÑ.pêû™ýÎN_Üñæþü ©§+èÆòZÿ?qwí¶×çº9`Τo³V=êˆ?À%¤Ïì×vól40½eÈ$b'Áö`è¶ ò^QºÆÍÛÁ‚ÿù¿ÿþöÙÿg;$Û:òçTc ñÐU—§lJ÷ÒÈ&.ªÝB(þ*]CÞ *p“w0¤@ÂýÓ£@1¤÷ºpþU¼Öc瑪TÕóŠÕúSŠuj³Àã Gøz„Ç#~=ô<õˆ!Æj£ ùh€bÖWèyèõ84´ˆzyUçÐIÍ…Ä ç¡ÇN¨1¶*=¼µœÌˆWês«MÜÌbÃSûÕTûAÀ‰iÔlh:¨>ù_†Ò ½„Eø<°ŽZhŰ’Ë›l/L”Õé¯-ÓªÑÀt¤2+°n×.JôÝZôs›ãú,¢ËÐkQE|ÅL,<ÂxâÄ>ÊUÌ  ‚ñPGÞ©ÛÆÄE?ÕùÄ[Xå¨{·*Òô¦©£¥Õrß°àÌúõL"W*ÙVRU›[;žUÞ€,ÒˆhÚYUVûÔ+Ù$ó‘:m°²GS¤˜_¨ú¢8æœT ­°a¥FI¨7E s­uÝ´v:ƒÛ» è>*Ø´2ö#üŒ‰GoSµF±njT?[·|j?¾ D)}³,úùV’÷ªx‹ ±ž:úäY£…1¿†›|™…Ø€,ó¸ÛòñÁxwJø“ÚÓR+™ÊeÕÖKð¥:âÔÙ!ôÔvAé¥Ï£?óŸ© ~0¾aþœp”¬âïR‡ÞΔ'e:Ö#õ–ߤyÜÃQ÷k¼XÏÝñöÕwTÍWýn]k7á‡?«tÔµò € |ÜK`ÖÃ7¥—+º?äV?ª¿•q¶Ô5u&hQUUãBÔ Ê÷A­öµ»—o\–匀ÃrûFœ:Yj±jÌŸ_õƒ…`:줟KC{½#cøé Æ^-¨†#Æ_øëŸðëÎ3ÏøøJLIH´c$¢çƒÙ®.4Gë·–24¼ ®X=VP ë Î(‰´ÝÈÝñ㉘E*þ@Ý÷t9…‰’Ò¸jòM•̇ëä˜ÙÔhNˆh » e_œ-˜ÑÑzüÑ“ØWƒR…ŠÇÇ3¢øl Dõ×óœéyÅ0v<$ S ”¤‘¡+U6þ£É¤ËâJïah(ÀêÓ¯ŸSåR¥ƒÔ”$Ùi“ŒQ>‡¶e`º T•,:]„. •µvó¶1ÛDýɼºuB“c5'§¬ßÈ¢‘cÃÇFƒ1{u\ôM"¥€¹(4ŽÁxôQÜ*u"W+c¬B—V µ&Ë¥„¦fv“ÆjáèÎôð^[Ä·E,Ê甓›ØpÈ;´c&ûùÀV~U5ÎöˆÃœg÷æ¶úÔŸÑVë&qà¯êDgÈð)zäp²—e*ÛÇ<•Üj4¶Ÿ%¶Œ0š¶1j áÐf¾­—¨@]$ÍLö](´2 wÒçïE¹Ï²ûkºtqÞßÝê«.ÑÅðé-·º®à3=ùL´C…jL½7ÆÄÑ®ÈY½Ua=ÎSÑßzÔйqNÌcìªGøúŠÿü_zùÛ¤”$%2µBúù™³ûø4L@4F ”«—¶‹¥-¡ta/@PQÏC³,Õìøœs `øÍ†Q¬«xšO.{*!1¼÷©¤ÚJá~üxzÐRå%G¤èe-׈9×eV!VŒ«€OUœ(QUUž‘JEÆðúŒ~cG‚Ôœb%D$ Uk•% _,,¬ÔdÖÜÑ]µ«±á½=­ rzÀE¹ˆd“w¤Ç£Š™é&*—`ZSsÒD†œACƒ(|ûë’c˜ÆÐœ´§-Lên3µ¼Ñªbd©µÏL);¯ÊÀ þä‚lj,©Ú,§™àÐé¥ûêäÅô„Þƒo¢4Pne8 é=lçtÇKxêÔœ\œG¹‚!äí¶‰»Ôª÷d!Þs%i#K½…Ü»ÿðÿÚïÿzWS•;Ýüåôÿ=§;Þ®ƒ>K;Ò2Äw®sŒñ+›†–=]@ƒ!AC5Wc”B…“.ø¼Æ±¶Û%å×^’ÃÂí"ð.ÈñÍÌìêÏ/Üåzp@q›·sMáZ`ý§÷œ=ŠEŽ Ò³3ÿÃk|ã­8|k¨rð§z³ Nžo]â奣±öàT{ J Õœªƒõª;²Æ`¯A±j€Q©G×#f„·É$™^ §Š=‘9þ¯\ÀOm¤Z UU4”ÈÌf¢Ÿ×DÈÒJÔÅ>%P "˜d2 .gE6ýipå¤ Ê\©PªÛÀ8iÀOFU³ø ºUr…HèQÌÖ&~7øàQ4ÍaTqF|rFɺ‚\U#YÛ1É‚Ëj2FMÒ§Ø,7èð(jqBeTÿâ<ôWHT‰*g”3â 8Où zFœQŽ GI$Èi ¶¯ ß\Ì¡TLÖ67¨RíVUÞb@9ˆuÜ >ŸtU+³Ø4Gí°E—*ÃxÝ.;tFþ]{Õ¢½~s7ökjÔ|ÛÄÁ_ömÀD„â]jûlU73G¬ÈPkí·Cÿ¶Ä‘¢š´opê»ʪ¥Ñ ‡þ Ûýªèª/檣ÅAqäú¹~WXñãs?ûm…SÑ}ÅŽ ÁU«7+<¥×ïZö‰vÃ$ §ƒ–â™Ë~¦¤²Œ¤£‰w#¿O¤!‹dp¾É¾Ö¯^ù;-òâOóÍ©ˆ5Âq„p4ùî†ÆQî7–=@u.;FpÃŽÍJL¨Eæ@'l²`9às,fI0c,¬XÜ¡@» pc _óÿû'<¾BM§IJ‰×%§b¤µûÚlfÁùÞPU!y‘LØ—hO©5@P=bÈ«w°aöNûÍE‚€ñ2NšòEû8{™’ —må/ÆTžOÿtmD•,T)_Õ>_}œ>70•)’¨øŠúuÈD IX3 À©hÃ;CÐWxPT©-*£Ž0ØUG–Wå+àŸþ9ñ8ðωGÀ×!C¾‚gÔ„Y]O‹ÜsÅè‡Î›˜ ¹ø‡Ží'`ÊãÜI+1Ž^öšýG GŽêçŸÞ2¦+&zÈ éVn%/èÂqoC¼“(¼å…mh(B‡†¨ÓÖˆÕ)ë¾Õül½¢( c&r7“e`iÃâ@NõÁ¿Ì£X¿\hh–ù·A zñ×Wüõ…œxJ§ %“¤I°ÿ6·âbödN©,ÓYUy‘é’”¶éTwª"g¦†(˜+±ŽÎÏ 9…ø8—Ær½ºáZøNJ%£jSå®°?[`¤^¢ª½ñôTÿâU`}¾c¿Ÿƒâ ø:pƬ¤°Ä‚¨€lK ×µR YT9½¨Ië.$¢ŠC%9ƒ<‚Ä Dåÿ MZ¾£ª0«·£2BÎ(Ȫ\"åyå}9“Õ R-ý)˜¬T%¶I‘%,EÅ¥b¬`öl«ÕAH3þ®«‘ZÊC­.½Ü„ê-¾Ë‘0޼9ò§ 㡊HöNI©¨¯K«{ír}c2å H÷Qa5%o¸E})×à³£KnvZŽãá%å1Ä·/©hì›ÂwcïT` EwRÛo‹O†õ¤^ìsÿ–d<¬p8° Y•OæþK´úEµðñ‡x&ÖÏx­I\?R«ñ˜@Vñ©³çm,@ݘY¾«ºÙ½ hȲÔ|,&Œge'?ÿ(óõ=ƒzw;Â%h’– I&Á=óèqKÝÝ.VºÁŠ)ÔÀS}£tjRÙÜ–µàé½hóÉ; 4FÕ€ýƒÌ÷ÈÍS ˜E~Æ\´ê·ùÅ”4•‘ dª5p—Ï"écnކ ˜µ§¶›äIo—<ÅŸwOhˆáëŒÿüÒó à0YdbbÖ§zÛ”ý¦þzv;‘`Zåj…ùº˜æÓ¸DGÔã@л‚;û“8›á¹ÐK˜ñ~«¢—Ú6ÃVÅùŽ6°øœPrÖNÍU”zµnïš{h¸šs »÷Î+_g8‚óêQI¹ÆC­l eö/uPjTS-U\:¬Š“æŽb0ïCåü´±?Ú”­î>I£R ¡r®9ÁM^ ß§¦ÚRE3¥Úw„Q‹×5S[b™3ÿç?E[àÚâšœ8ƒÓ5ˆ4K &r«ËšÓ¥Îcuh b†þ&š4­f2åuJµãI7ߟ‰£¿œK-95,Í\a$ruõ€¯T.!ìŠÐ/1sZÂÍèzÒ,Þ¿…>O¾ ðƒ_ihÔI“*¤RÖc黟€ÿ„S Rå–ˆæ²UÚì©®£­ú>rIJíµw9ö(¡ø¥ŒÜi|†nÏÍ'´ËÎĪáKÊÝÉGêsXJ´©QeµÚTèÓHüboLVºÃ‰4v€”’êö‘c¶ÂSpêb[ds`!²6ܨ,r­ðîa™,0·0Š«IǦLÞÿÇûœâµ<Á¼*UÕÐ"ýïòžßê 8H׌`pØÈ'VûÀjàý–ÉGýkQßzëÓmß3ïÛ1h¸e'±w}žñŸŽÇ4Ö¹-­NH®‹éb¢ôÐÙ.Sãù‰t¦v´}I¯‹×ErÙ[mÎ €–¡¿ö`I8éO'èm\³Y‹Q¦¡z†Dƒ¾ÔtwΆOmSõâ(*Ѐ?:IŸ( š»©Jm.\ 1ý»'o{£ÀôŒø:hg”TP6j‘UbT{Q‰ÙžÉ)ª²}MÞ,"Dó>¢j††ìÕM¤é–`ö£TáNÔuôŸ«ÒùÉq™s<v›¡¨8NœQNÍ‚Êv¾­I§y ÞãG\í,ö,wЀ?wB” QEµÜlFU ’ZÞ2ë\‘HMÕd_J<ÍÆB×…WâE¤‰XÈû-y"caA¾ÉTÆxb­Ã€ [-çê cí:h[L8Né°²£­é@;›ëZÈF­ªW`gáDTJXúúé½úË–Y!sûpÿšä3›ÀõÙÑ>‰cìÿ 0m*êø@OpsH ^±bÊRÆæ@†HOS¼`Oß¼ZYýh*Þ„ŽIõšÔNI.R¿>q8­ >ðQÝIùÞRÇË œÞ:bRã 5gu· Š4WzçÈ•Ž1ÿ§òw„ ° [³•³DˆFêƒwìù–ðƒ ¯ÁÏ.›H»šP„¢Bqáog"|]4 \-Ž›3‰ DÒVݼáWl|‹0Âj`Q¡ñæqàtFÞ ’d¶MŽÃDƒY(7šá;qÅ2ÓÇ‚¨j1ª†Í‰{«Ú>%p]Ž«IÒôíI¦DIpm^óâé¦õn2<ÎÅÝÿå"‚ú7»*Q°)¹¥òÀ4 ì,rÐpá×W<’íSeA¨, )ébºRJYŸjX¯™…s2T-Å*â îñ*Jz½¶*Õv)T%=ŽšÒ%ë@Œ£ÅÅj SžÉùj-‰xs¢¸Èëâ•n$à M—ùYC•+’léT¬W®Ie†´‚×Ñ.Ö0ÞUŠÇ!G” ’)KT)ZZ¥L­;ÄVåö lÊ !èøÅ ¡‚%´ï2aˆªìX¸Ýx€f’ *5Þd¯‡H*ïû%r]¦†­Ž}eU U©Õ-ÿ dÔ­šˆ€Þºël©÷»ÖçȵÏeKiš ÃÙUŽ˜lJP›¢j5jòSÕ8úËÍ›*Ql@ätâö¸ þ.†äñ¤ ç˜8®öXÃ] &‰°N‹Ô*®¤3ŸaAÚê,8lgÛ›B|bºÎ޹·áÓÑ?égý-É©KàûYŒþ2Åò8?`÷ú<P8Q(´ÂÍ4 Ac¬¿BˆQ G 1èÑ~?çX毬 6ãWUml+2Vm@ › ŸO0–Ÿ_еz“¬Êï+ ø§–˜*-^¾®rcz‚óŒ!JNî5 GS°Îûw>4«ß©>0½l˜ø]ðÂÝõÞöe@¼FÍ|ºvRcƈøèm[VjBÈÖo¬¦¹ãºþö܇A¤¶DÈ®H>Gà_&UC˜¦‰pX•tc–mûÞ©U» ÃÃR{q–?|X \¾·ÕÇyüúÂy@Ñ'lÝîLWJ×%)9 IUp·ýwÂF z‹z}µL‰Ï‹)ÝìfÏœ!+~^VW×T»]äη8ÕVúÛ4%^IRÚê Åç׌æ?‘ÑcÔËdùË©ßU`"Ø!¾ÊqnZ,è_ä’;¨‚jÁ~to¹ö›±ÞEq È2o¥hp Å´‡ ¢j³œlÿvó¯˜XûQ\Í`Áuªšò÷¨=æ)×I”éçEȰO˜úUó¿U 6ÉY[UlÚŸmºÂ¹vÎP?1ß%jr5éÚ¹;à»ÊüozÜ¢O•^ÜE‹#WéæöÖÑͱËyÆÍûm¼¯Õ³rعªðó¬E‹¬{¦¦i«ìrqËcêrê"Œvx R)«øË9 w£âœ×ªž±ÎžüeÑ4*kºEÛŽ¦Òé…Ý’o45âLJ8UÖZÅ-‚ÑÌÄgÈ<¨Õ4dzzäBÑލg GÔãÐÃ5šakÆ©GÔ#hˆ¹Õ[£j ¢æìÄJ²f¦¶ ñ¦Iúøk&%cÙw©û‰Qcî¬Ý#¾A¹Œ.[䤛C9ÃR‡7nrÆ®Eß—Ri¤t±wÜt)ÔÁê`>ÁÐÛvʵdS°SªàVºNÝ÷»Í)e\[Gæâx 𼘖ühÄ‘©z5Þˆ$­t3zIÜúJo!Z’©kÒ«[¸>,ærD%,;K×¼îMT½Ü4Æðxè×W!Ó­íPP´3IÒõBΡlŸ¦Ñ@f¯uÚFZ:i,Ù.¼.¾^¼.ð†ÊbÐ#–(Ùòii ¯‘64Ó¨ØÆ46Å\Âíߌ4ƒC !ˆçS§79ÒŠø@ÿ .Ô›Ó4ßr™\°èè…€Îzæ5ø»E©\žs»‰MÇq0óõ©ï­4¹üU Æøõ¿NiMGm I¾^r])Q$ùõÎLõÑ(£whö½aÇrø½4&¤ç‹¯K˜64™O£†Ð#Âd[^7¸°““d¼ p3[Ф$×Å‹ ·÷éôœ¢;Þg/@=K¨-Ø¹Š vžÊÅɇôIæ–S‘ ˆ*!æJR©ìŸÚ3I¢T{S‘ŒÙMm+­šîìDS禊 åö)YU9±H—å@Q~¨-ÜÎÍŸ”¤ý%j&’’HJò¤\W‘¦ÉÆÓðU¯Ì]ØU%!ÕÇþ·CADøa¸iØíÂ.5 €.˜¡Ãw·úÎGÊ4ªž å\§“¦*I_œ¦s”bš_ÌI½-QU s¹šçÍÎ[…`‰[/qל‚N6ˆh‘QE3R·ÞùU§mdx%3É{³Cû±y³#B¥k™šgýoâ­ìVÐÿýÇ8ouxf‹å¸¤hO3³xèÃyèyèy„ãg …=!ÃÐ óš+·[5Bë`F©Ò)¸þÙˆ‚†EY`Rtš¯ÿð*à³Ù5ëèXÎÉáþÛbtK.£´œ®°›mÄÖ0w•™/ºS'{Ðw—V Ö{ì —ÒL¸ nQ úù3l X1”Í<'ÒJ×>¤;ä‰uøÔÍÜ #½MÅ‚UOÕxc2¥’¿üXјOÝÎ93DK@3•8¿+•ó½sY &쮪Ç=Ξíf)ñz¥+¡G¹ñ!SýT#t–²ÎQMÄôzñõbÚ¨´ÑʨB°¹öÑÓ§Å÷äÝÍîp²—oÕ0«äºÈy4µZ÷§›.ÌðÓm\ «Ú‹V>1™ë‡.NŸ ­ŠpU0@U ŒÜŠä³(kÈሚº8Yu4QÏ}TàP5+?GË£¸•-èL¼PíëΉ®(lk=0‰’^””ƒ~Ym"Ï$dÏê"¬âsê?ÂNxЗqŠ cÍë¨ì׿¬’±Ö{h³—q–áê<´ xB‹Ü’P©‡PÙ–êo»zÐO²³ ­ÈWw.µ *À"Œ—Ò3A§+䵮螟Èš¢Åx 3 ¼d©s·FMfíeÄÕ¼2pã¸P ìÔ¨r RWzûÇOŽî+~†Sßµy”R%Ö9˜±OÃqèqèÃyêy„óyÖƒ†(¡¨UK•˜?õï´•¶Ð¿¢IÕf]n, ]À mÙ2%ð|¤áú¤ö'K3Ÿª59uñM.¬Œù—0°Æ]_ÕRe(öÁ.ÁÁæÛ1ñJ¶7ÜTùaÏ’â6Ü‚o!œ!냛“®gùEÀ»3ÄæP‹a2¼v4a¥û¿ç§û»gq´ ¹7Ù Bœ*{œÊ•‰jæVW ¯ýK–Ì Š[uæNMhÁ—îòJ5SåÄ„ãˆ_pгqòù"_‰éÅÚ…þ†X ÕÄÛ„‡B*šÍ»qÒÏWz=DÓƒˆ,Ò 5Q¾¾s±õCÞ¸G»™ù!Kµx\)Ïý… åÛö–¯xÊ+ ?¸qÝçÛ±‚öU…ÁFóN.eŸ%T%D•Ì6H‹ØD™ºðÙˉˆåirá|taÃy‰[„‰}L©) Ro…CW¥ö°Ø6I ÍE¯$®$/‚\Eî0#‰ÄœzÛô¥ÀP\Ö§¼ˆ«/ó l-ªÖ³õg—g’¨z¬Õ*RjQÕGX.:HøÎ>`v¢žj#|d™íšLFÅM¡èØ1 *0â¡…“Ywé©Úb_}l·zßÝì;EyKáÁ©?‡Ì|Ò X Xô…û3(ÄNo<°/’ƒ‘߃æöw‘;_ÿºË ,~ìsþãÏp*ÖÒ•ÕzWLîªZÌO‡Á¦ç©Gç‘-üe:ZõŒª }Å+3MÏV´†©qUÓŠ T^µ´¼m ï@êrºòÖò츘¨ìha´ÒLn‘*D/X`l¿0›ñj*Y¿¢®à9šêê¥/x³ÉzVäú¼ð$úu£ç4Þ×m,¦>G«\†§Âëx€m¾”a0TUC¬²ÍñnNÓÀ}å×~; †Øx!™.+Õökn÷~©á4Z”P8gI;Äýä² m“V ñ|„Ç—Æ0áÓõäuICºWeš3ìkU<º¶’•ûÿõJÏ'S’$«0Z)9¯! h;¿¡Ù‡­ÓZEÎȤZ²—NäaÀ0ùJ|¾äJ¸ïœs²Œý½Vò³À{€+ntÍ2íjÇ®TÒãâì]RwòâÐ2ï*(‹ Sˆ¦H‚i§MÝõÌy‚ÑždŸ~q@²š®¨Bê¿ç£ J›* ¢Ih½T%›;eLž´„d)ŠÄ•Š$£és6S¢<)‰¤%Wl©½ ¼I®u­ÆƼ1RYI£§BYÆ ®ò‰nRZ¸^Læl’–0–›¨ÔhU‡ž7Ë”cÂÐAÌñ~V™¦æp¨«z1eØÑ’5Nq»À˪FÇ LðGáh6ÿÓæ’˜L'×÷I{‹” AÍ“t($ˆf+á (¤ªâ$jf‚–¨MK]ñë TDKµ)Jdë€:;£¤©ò! Tt°¬mGþT»ª8I¦K+õ%””KÐùQ ž—äæ3‡SÛô¿h¡7ªåÒöÆÔrx.³»ñÚ=G )+ç"u™®/ð\«¬†Ñ#Y‡SM•V’’VA!‹†ŸÄ©h´Ç‘ùb¼ê „n4‘>p «“ãÐeÕ$ÎCÖM>ÿöá‚Üj8‘+QXOPŒ&O¸Š—lÏI5cÉÀzNzÓò#Ä€TVT:•K55ªÌ ýïŸIM{ß"·ôFŽ„¿Ç©2Ÿò{¨I™¶G1OöÃãÌ T=¢FEþŸ›˜Ñ¬¨svŸÝW‡vc2%3}ÂÍâ×_Õuë PÏCeYDäÓùQ‚â+N]dÑŒ)@®ÕœÃ\È=h¶:Ö™ÅÕ(”•‚”®”®¼û™ï]§ 6wÚæå‚£éRVÇ,ºòU{Ò*¯ú=W‹}|*Þ‡»ÂØ·Gsbýì4˜¤¨Ý¸}91z?æXçõÂR‡¹¥áu;÷_ÆbÏYt ÖefãY‚¼K7± FoŸ÷.íß !G||!ÝK®.x]W66‘M²‚•­µ E³ÃDœ4°½H>Ÿéû™ w»ºYe+‚#v´€UEÚü´cµ‚ Ï×.Û>úN)½^òÌi¯wûÝn݇Ký4½Ð=y‡E©*BŸ½?î–aÑûróX<[²Š4Ô´r9´ÙªRõ•õ³M¢æÿ¾½úÅùaS­°8ö[¤=$²­÷Cd _Õ½Š@U\¬Ø‹¼ˆ‹HDj}›åò¦¼“’’¼® ,0¬Ä*Þ¬SˆZ×´Ú±úRœ’fÕ_ºÛ,܇Ìí«ä)×–²QõavaÌu*sÿš¢jßì›H@Ž[V›Ô|9œL›V!˜ å æ2]^ÿºôï]\ö-¸?}·®¬µüeEœ™!n¿“¼r´CXöh$y$š,uÚ R305ðT8æ!,Xv¾Q?bÃ^o‚JîUª‰S¹ð±uÚ2@KÈT8Ïpžá<ÂõÌY§õ@]$l,Іð.Ž65ά%Û(Ê÷âø|¢Å¨æb‚RM¢÷T/ —7Zg¸Âsµ{ËÕ’„ŽS§Š¦±š›³tp¡ó™§WÑ3í…“)å*Fq¶·X7r8,¾±Þ@± §°^ L5u âý÷kÞÍí¾º‰±–'Û ]qêꉼI0툷f½înÈ”Òu‘×Z´^Çèƒù$æøÖ>‹¤QV5}3&žßgßÃTÏ3'bì9[)±ºš:©Ê:§›µp²ÚÍîÂq4n(Aº-!=ŸéûÉ«ÙÑÆ“Eas¯HÛ ]µGRFÖ1Xü˜®Ø4HId‰& •/cÉýc 2ˆÞ)ñ DÅ-æwTy½ÍuÉ;ó=Uò²`ޤ@@ê¡ Ã¡½/e5À“pbnúü?f´©P„ ‚$T¡ˆ&•/E&‹Mi¥+ê¢jï|–ŸòJ(ÉÒ ÕÐÂ!T®„ïÔ…Åž10Bo@»§0'9í,Ò„ÚPo}ó°I¦˜‡ãÝX6A‡’˜E€ƒY§ xœZjŒ¶êåw./)‰'öІuh„‰»G¿9éu( ØMüÙ$ŽñE¦Mêꦰ^Ó¸Êûz/ñþT}UYÓÒ†ï²è*RZ¸ÙGëßqó}M9å È`–ò¯ƒøÜ õæ,ýqÄ)þ NÅj7G©ÙÎá(5ž1ëPói 0„òôØÛ†ðp,æÜm¥d=}:eX‡ Ð⻲rUí“` —ÐÃQ(b³¥ç*šì±1íµªF¼ôÞ^º‚Ò¬Ry?eÁ¢sâhgy&DÓ•®Äk"AúËi:6ÌêdÍ\¾°»rTy/SëŒæ2(r=Ó½öiaI¬Ž… i÷I›*Tc¨†CÞgmŠÜÑï?N_/LÆ©)íŸlÎð Ì.ü †·£möy"áãÉñ9ióI.ãüã牤˜¦Sz½˜^éJÙï=4¿J:ÀUk‰å· oÇÚ0€Léûº¾¿åu »´pàŠJ YS$9•ÎèÄ’Ø“Á)}`N,ˆ…á®'ùºø|áºÚpwn«›¯?P˜Jª?ÛR`¹õ°¨F¢5ª¦¬QÐ’£ò%m—J!E|Õ,_½¿¨iDM+ê…~n9ÒRC´VÕ Úè rc)S¾“Tú¤‚𜨚WütåJr‰\·J –jÁ³¨$â3ɫއ%ý­Ë`ûQÁ× zbR뱩žYõü”)cXáÏ|›bÜÇ=1äË&\¬D>.—Jª'ûf¦upàÊü4³nmÏvA:7,«¸¥¥–“»èŒ] ÊF® ƒánBÀoT“c鯋3ëS„7¯O3“j¹ØI{J£¸Öã&ñ å㬩¢d&>WÉÿ4÷ï·sm] ˆGˆ1<Îpáq„³„L•%¿ÜLì1u\ÄÍÅU,^²Ñ±¡ŒžÏÊÀ|º)t,<™R­-9ÿÐCQìøÅ.5Þë’Ÿ1±±àÓ™ü=²£¥c8…I ƦºA¦„Ž6,ËC&.&ĪœÄû|d¸/1P‘oQp¿¶Z¶as„Åœ`ìÂXîF²oiM¶:OË©kŽBS£( á³;9/ü)`ZL7uónG!%¥+•¶÷åÕ]> 6bÑß"Ë~Ź{”tà — Y¾œn7Â(z–œ.©c8O„("éºx½Òë*¼æ<Ë#§ ~ª!³­p²4¡ëZ™À÷7¿¿™ÁñâCƒ9s«ÔÑã¥zy<­yHˆaþÓ_±Úé÷3vœÚŽ%”ÝkÝm\ºò~­Âaj£0*„A9£6PHT„>A‚¢PÔJ²dn"팋éV¬º3­; Mª‘Š ¡ÞN]og :´žcœ·‚Ôüñ_DJ¼RI¤"I?OBeGrûü•äyI¢ B°O·ËB£›˜èõoö9´÷LýV%\ó©ú’D™;nŒÏ»!ÿÌAºÖ5& ͆ÖàæFCVnSåR¶“y„iþSp[[/ÕÕŠ©Goƒù ÆÍÚËjœ=첪k¹“Û˜2­ä‰Òíkã‚^µ UÄ5$o–ÄýúpY}uË*5¡07CVÙLç*ôrºRÿ§–} ЈxÔYÿG8JS¨Ùú{· íô«ç°ßÊüæPÜ®³˜é&Â%Ý/çY×\UCÞnQáŠV^¥ Ÿ±0Õa†quy“Áš#]»Þ0»·ýUe×cG.^WºÈ÷[•‰s€ƒw&ùÏš€; NåŠý½ [GèÕB²0`Nœ÷ÍòákX M£Z¢n&ÖqDš §s` &ˆ›3%ñºýì6~^3¿•‰VƘŒB[«2)}Sîê™qcôÓ^;hÁሊR’׋¯‹’*'åÝDõºÐų±‡7Ùšù¶¢¢ÓgÔô\×õý¾ŸLWE×ÛÖªfª…ÿCg4[€Á¸_ÛQž=w5f±I`Â+:œÂëâ÷‹YãxSˆå³7’V>õöq>\jÍ,t}/è‚ujªbQ Õ0¦A+2¸,sØ;–!|%èÈŠaá_jV˜ˆ”àÁ gSSÓþüE±p”5'µ˜ýËa1Ó%—È‹H—\‚Ä,nf+`°Å ÈóÂó%ûl†h·‰ÔȈkÎæ°,¿?Zî¥ÙΉŰ o4FƒƒË˜RÊv‚(ÕD%"ZÅÅ*í2ÉÁa#·Ð/­ÎÆ»c!Åõ£.DÓû X6­×aÙÇZm~l¶{ýü4_Æxì¤.$UÙ/s •£<ÅÌqû¹Ç36Þè×îNG“Ju¿,á?ò©yÅÊ,j,~)=ÏðˆzDmcn™‚eEÆrTzÁÅU÷*›ü « "0¸Ÿó9;çû©dVµx\×ÜÞ °ÖŠ~šÆ`3p;8À ‘ŸHÍaØh¾²›¨˜Læþ. Úp“RãýNˆEåì@Íà]ÔæÓ>ðfÄ~³V·œ¯fg¬H5hîš0]î+·cöañ¤oÞN$T"üz¥]1ýŸêŸ Y÷)Áó©cªØÅÎL"z¬ïb{ëBí’> h ª\WjA°$\[†B`® `Á¡cüÜ3ßæéºÒï?éùä•ì…^™È‹…¡NXBŒ™‹ƒÀb9˜ruÁµq=G}¾^ò|IÑÞTÙ¬îò•AFÇÇÏçt0ûtzF ‡jŠMÏd¡ a¨ƒ~v/“* )Öª ÖPAªç‰Rµ'V^µ×ÜúR¨Ê~û§få¿Rux™É j U‡Š}ï@"庄”W"‰‹Ýº@·vW †òJòL’o3F¶b"¥äU-mQ*D_ZŸðâ›±¢w,Ç[ÈOýñs*Kªœãþ’?Ž6úï™ÖpšIv׫¯Jµ/€0ƒéVÇŠåhzª•èÁãZß­ÖëéMéBÛz 9ÚŸ"×'ÁFô9Ìý± ɺU1,éÞ¦‹XÃЙýý||¾nDw M>"·þ§V½R! Rõqf_¿¡ÏIÙ«GŸë u>LV.í.\õØ6M69íaÔÒ0‡Ö§ÚêUë­EySu¼Üo—Vû *ÔY£MðËâ±Æðý–Ìíj·­£^×õJé§oßÇËuU›é °Žj.q)öŸ›ÛÞ4…õ¿,ï ì"ì•¡ÃìvU7rÕøÔܕ܀LQVøA9|¼(Û©Pú§<(¯Œ÷ІQå‚› ‡õ0é,´Í˜©xKiøM#âL$AIdº¤T¢#ûýY¿‰3*˜}Ó”5.õé.b—’”w³¾ç±›‚ø|¾~óÙ¯¤ï«ñÊüÃ3¥ª0©ôðåªð˜bWµ›fŒü"¯K¾_©Æ¹q\1‹ÁÍ&`'-?ŒÛ†¿(m ó°ü`„Ú¹ª^5H@’f²^ê`Õ”ýÞH-ð>•"Óšuß)èšuœa*Jø}¸ PƒNSG$pš(¤:}bMŠ‚ˆ$¦”äJ’(ÏKrŒ‹ÿ¤ˆ¶ú¨–A¨EŸúýªñUXˆSÛ<­ ©{ÕTyQœ3äÛC­  Øä‘æ~ f~K¢}Ã;®õ‚”1ßÃ'RÖ¨ÿ:‹Ÿ—)ús jƒm§”´³ª§þ\ì-þ*Ñ´¯ëhVDÙ5%kCÕ}°>LÌgžx鬄ӒR>F-eã|šÆTþ;[eÒ‡¬6@¬œj{6ožr×.û_qj É× RC‹µ?"†"ôœµcòGZƒ˜ÄÏ—L±ê ë§D%s~šÇ!­1¹ mÑ$N°ïú¡Ÿ§Ý|mÐ@‘9b˜Û †ÈyÛ<¡zî2E·¾{ ¯t¥Tvh:ÍÜ4ÊŽ¥¦{Ñ(ž6k÷Zq PÁªµP7ä.†\ýÐÊõ¾»œ)7¸«´ÈÜÇãïçèåD–ªàC iÛ§!3Õ†½¸àv^B›Êtýlè¿È€¬F`ƒ AwˆÕ£Âœsάpιù÷Ê_ŦÜ,ÅWFØ)'¿ÐPÚæLÜZï˜ë{íèþ°ãIMu—sÓF¦TÉ”þ|_þ°fY½–׳XCU=اȘU9lÄÃô_†48}¤Y ‘Rz¾øýâ+Mƒ6,o 7*U#þ3eOŸR'mÄL³\°–¤¬à-?¾Ò ðS`–ƒEÙZk„Xëφ¡b0éhK\Î PIÿ”Õù°Dš„.o͹ª­¶VK¦_50ÕLfSžìMS’òª2N}ÑídžOu•³¢£ë¯é|ÂvˆaåÇÐdtÜ`‘C nÙ/lÊ1æY˜TÉ?Í?]ïî=Þ`Ue‘¦Cw9A@˜Ût²ÔAÍéë­d¿e)¼ËŸ6ÚNk,±. ¤ä˜6dÎO"wäÆÌÛ§Ë]æ3ViEµ Ùý›ufõ›‹SõWÇýzžú8â#ƒÔº—÷àG#×¶2>±éЮ·ÉŸïÊCJȢȰ¼¾þia‘XdþMV°šûÍÕ"½÷Ø8J¥C¢P9æäe*1 Äņ‘Û(dÚr|¾¾ …Îäu]וŒ8K°¸! ˺™e>»áØ£^…›ëÁ‚ÆÎÏã8cS> ¼ÿ0àX ºÖ =ê¿o€iZÛ|w'$:È«1Èá$M«gQ£¦õë:Ù«°¼57†GOy.Ší:0hàl5tµ°}güâ§HÚ×À|MÅÿäçbó#7÷Û2”j¶ùLì§8ÕÔ ñÔã #r ýÝ|D:ÄðN¡ë(íüâ=Õ>(Pï›Þ§~ã³b7Ëgœ˜^/6÷7i¶ ç¡WŒb¤Ôï„éûÜ-vË}‰ýËP•ÌÂÓ$^M®!„ã@l ¿ùGÂRhirðõ¬Ò~Ç^ÔÁ„`‹éûyýû'=Ÿ²ÈL mTëÍvU7 ÐZÏeOŸ-ÇqlÕÁ'ÖjxNŸ¤Ö„oðȪp+£;߸øît(F¹Ú-ösØw‡\*Tbé?«GM̹¤´Z¶Ÿ$)«»ÙJ«£;¾K½qφ¨&çTRÐíýä“Z†#€”—0Q^ÄUçþdñöA’ƒ(’&+Oòó’?¯òB5MTNacƒ«dlÃHט¨Qûˆ·C›ÈÁxÚ›Ê7¯¶[mË«#r{yÚêRÛ&f?]‘-3bY@,ÌUóP;ÛßÔ†é:}Ȥ*~’Ž[m ×Ú¿Å!“«s-ºù‰|¹ƒ‰ØôVÌÅÝ:À>0Âüòp§=’iŒ>eçÑÿ_ó©(­‚JÕqêã CcÐ#HhǼ‚\SG¹\I—³QºnhÙ£r˜¼b'\ýôEŸ†? Ó²»ª«…ÈLwnt‡5éöÚÃY¨Á) Cz©åfW§`úD ;«.T)¥WJ¹"mÒl†ÊUì¯ÝƒÑÛTs1Ñyþ:¯óxÄãQ`¨†*ºj- ¹JUcaXcTP× j“`‡¥Úd)¢†ˆí¬ªU¾ŠióZ6ŒjÏìwžÔêÑ~²5}棹;8ÑqøäõJ׋ÙAµÖÿ`޶ª!ûtZÁ‰µŸM¨ÔòNí R²ælÀ*L®¦Tg ¨æý6Çà(ÛÊ;ì# ÷na¥æ4tÃÓuýû'ýùž¯Uï,LÜg_èúࢠ*º¦ÐæŠr´Ÿ‹LYŠ}nѣȕø|¥ï'¯ËL•Ö“¾!ï­ƒo²UC›ø‰á©ŒÛem³Í©‚ù…7»ŠíÆhí2±A&m.fP´¤é’’(%A„¥eªVc˜r|ª†!…é"Kký˜µŽ¦éL߉r‘W’ëªL*%PÛÅÐvýêÎR"”ïK~_òºj(€8áüºÛ|»ðåZŽ‘XÔõzP;AÙ$VeöwìêòÜêå“^0·™GL4ï®]XµS#¿KOý®´ô­Üi²àe ƒÎrÀ„¼É: ÑqîÀMó²žj?úŸõˆÔÅ$žÚFSáèmBëmR¢»h› öÍ»Ã>òû™Î¯yG¸6>õ>©}V‘#œrÝTvM¥hJûä¾Dò4æŽ^µ¼N> ÆBšŠµÚnjX‹ô`U4¹«ÎÙZt±EŸçÙ³aPz‡ðëÿe¨j~“‹(©É”œÍ$œ•«.JÊ€¡¬L½®Wâõ¡R„ø ‰#¥ +ÝÐ1žçñëñøu_1¯.¯¬®¬ÇFßk1jÌbhÐ ’2®• l ÞÍš×bÎ(Ãüob›r;bmlܔ͟·Ø†1¡.Ž#öUÒàisžø?SJVá cy”Õ†´¶  †ž„ÕT=±"5TCÔ"'Žzfí©jÈ5î]îÚBƒòöTcDµ:NqСº%™a¡èößr“Ì6†±B„üóºþý÷ú~Ê&3!;ïv×åúv.VZ3Ïu,›Û‘ÐK‹þpˆ¹#åuñûÉçS®„t¿5 ÍâØ2©û&nT½ïæ"´Bu[Z{èèiï»ÒQ’ÿmÆu^'!s Jš‘«ÌSO.‚dÁh’DII®”®Tb‚vö1‹T®¤©¤rÚ$6¿ó%’È”¤Eú'2QóºŸ d9¤³ŽéÙ¼ª¨4¿_òç•ë$úÝ«þ|á¢ïÐYÉÉÈoމåç”@+Îêà™ÍàR¢¿‹UæC³@ÊO÷|–júbU¶’LÈØ>ÚnTµÓ‚ÔŸ"xûÿ ŎõË8ÞðcãD²`lèDx07úßdp;ØEÙqØõ©—)£zè\ èd·ª}&Qåç+ÀòšËú©pw„Þ}qø_ÇÿþИÚÍS@jfRÃyh„„ªƒ”Z—,V+}æêYÕÍAîäÏÃK˜6ÕÛãìžuµÙG4 ÄŠCCëä Cˆ‡1äʹ5Æ"BÔ˜?‚YKéGÉ 2gÆÂªQÜ(}EcÄs:“¼‰é¶¨ï=¶t2½^׿¿¯ß¶E óa¨¨„hUõí SÅ@mYZ‘'žË-®‰¯‹ß¯ëù”×Å&¥ÀÎj½ƒ›‘#7X¡J[€„þI˜á„Ìihã¿2‡¥Ž®Äü<%ˆ)‡Eˆ\IrÀþE¹ˆD\—\ÂÜ}]r‰\ ™’(4¨Õ¢F-£ˆTžU2/çù´aÎÙs}ñ^I."%äWU–:^^M ÖÐU¶¹ÿ•øç%^E-ÐÕCp‡®~<–BIj/k¬”qNW芻þ±s=k?ÐHYH;“ãÏíA'\ƒ#‡¦’ÕmÝÎw%”Š¢Ë%t9Û±¬ ÍÜ!u:V¦ˆ¥%/ȩϴY¬°Cá´ËÈøÚhÉvº\´,´5I&‹)ˆ…°l Uö…¥·ŠÏ¾l³Íûõu½þ¶\¥4ß›öÇæùÔ´2`‡ÿuþŸÏ&¼Å±z˜5N!T‘KlËà8ƒ¯Û\0ޮȖ›šjh&¦³p|×ò[Àõ±÷Ó¯ö{™¾nÌWR/ÜÊŽ:­s­õWƲc¦' ¡$0Èz^ÇJŠ I)]éy]¯dŠ…6ãú‘ƒZ5¤Êõ cc8Îã×ùøã#ônkƒÃø1hI\Ô Ï Cˆ1ÇùˆÇ#„Xо “Bý»†ÇÌY[ái(‰ýÚЪæ]±šÖÑ„åpÝ´‰ºô$Js<Ï%¬ä>fK€M¿Ò+Oüùn½êæùQͲBÃG¼`ždÀ¼EÕõˆZ*2m„u­€/Ð?dÍF(½hQùfµÏÆÿ Ú£óáz´ÄY*`œ²Œ¹ˆQÚ—ã)¥?߯§ç·\ém˜µïºiPÕdrõ’Ìa70®DNèã"%¾®ôýâë%/c•»ë©À'þWaýõ®ÿá'§RŒ1"; tZážËáèë0J><²§Š9ªöP3%äJrQ˜øJÌjJ¸®BG¥r$77¼éØüUžÿŽO-áPHÓxhˆ•"uÎvºëÜZZÞjôº#áT5V©±*´P9\LëÔ5“ó 4 lU”x}¿þï¿éÏ›ÿ–Ý^´Ú#j6‡%«Ø…óxq±*fN”ÄôÊTO>s UrÛÒb¾7m®=s¼Ùž0$[ …òù \þfš)ÝÑÓºœ0dIÀÜ„¥!ªêÕSåK® ©hÈT+)yÌXù(‹ÒWR21U£wï­1E$ È‚ÔìÓOÌÜ-„©‡%Ö¡´ö)X ´¯\zuߥï—üûäók“æ ›~ îQ©6¸×b“J§UÀõC±˜D Û´aql2ÓꎜºëüŇñ4ejŸ÷i)GïЀ5þ[Nw~IœÆÜÄ%½ìUÄ_ŸqrË ãŸs5?<×åñŠ2HµÕ¦+¹ãzËàFû©šõ9ƒõ­ÎA&sÜíUúÄ™æ¿AøŸ7|jŸ€kÍó?Ãy„3†#"šÚä^Ä;ñ‰~ÕçV¹;qkKר}âFŸ;ÄNGÄÕGJ_£±Ðn#Æöo4ªh²ÁiVȪÜcé­ÈÛiÄö}Z À¸8 ŠÔix[¿û•^yjœ²U]29„›ûgñ³BŢǼ@E1>Ž_çùOŒGÞØyö¤?NâCC Q‹&5„òQõÈÐ3„#Æ fЛ]>m¬_GüªTš‰Ú`4¡ÖlÙ¨l©.f䶙ɱkµ¦GLÞq%Ó¸¢AT¦ëJ×+]9ÔiReÈQ¯7§bcJ’Yȼ:ËJár°âˆzœ!+P]‘WzÖúÔ-CSµV¨Zr­r^:BDÐrdãTácjÝôc3"Ûå§´ˆsJz>¯ÿM¿ÿ¤×Kùö0f³b­åÒ2T9Ä .&êi1„`-V+fJé"_Wz>å™óüëi„{ja‘ ´>çïªpV¬LIä³íwaÝ쉷°šô¼q<%¶ú€")•èRøJ³ÜÏDP¦®úÜ3&U­!“í·t÷Ç!‘W6õ3GPå¨T&ö*Ò¢¬ë'«{ÍwndH”ßOùýÂ+Ѫ«í8Oªõ³‡<×w©:ަÛidèÐù¡n°îQ2É€Ä`i‚ëËìë ·À¾r»óyƒ¡jÔ8 iÓGÐÌl½ª¶ãi3Ù_×/M¨€¾ä³/ô_°‚†Ö¬Æ%&[ Ö±‚w«@!J(UYLîNÏ^Ž„5uºt‰}ìú¤=r.o¦­ø.ãýu­|*—rX˜äÈ`&þçÎPR¨¤hªzú©ŒØLȲ.ü`œÕ• ‚x0‰ó%b>IÚ÷ÉFUšª%Ó†˜´óΪÊÑ¥ºS(.Ä<ñ&A‘öc6t˦€511]Wz¾RžÉÀCƒ²’´ÎEãØ¿­©N“¶Ü!€†Ïã×yþŠÇ`zvÌZ‹šuVøÏ !Ï÷£†#†˜…b¨_ÓÍR!D‰d6üбH¡_[ó/Å,[WA-º5ã<¿(°ºk+ÉY߯TÜn=Š/÷ò›Iæô° R™æTL-Q]Ù‹•Þd…¿ìl‘C™VƒA5=ÎÕV,gáïØ¬áßm¾]ðº–ñn½]Èüó…Ï}ñRBž·£QJ„e‡ŸØ6æ¸"2=¿¯_¿§g±O}bQ°¬úsVŃ$SÊ£g¡dÞ-w2Œéy4N¬\yðzñûÅç“Ï‹WiàÒªŒM`ä‚vpÒî赯ŽòÓ„î†Õ¤ü|”ȢťT"õùp³Ñâq®K­š‘µÊJ K}³cç,iM’jä>«TDÍ>ß®ÎE¤$Ix]¼(‰È¶§ìâjd1÷@ÊÔï(¡R ˆ<)ÿ÷É?/\ÉÞÈNÈ¿«qLޝl…íÄhõ]R €ÁEÅÁ¾¶ÏyÆq[ÝŒÑy9L39” ¥›º™Òütû_e"Õ7GIµ&3[8«¼–’^KFÙ²âv͵|Ë ÷œÂÔ*׎»WË¥¢‹ÐZW£âs‡9VóÜêÞŽþ×h˜?ZEnÏä#h ÿsüP:âÔL‰„âQÒRϨ¥ûnw]GÃÃ@­ÞøÜâ3Âb™9¿Ê×U¬Cïý"ÃÜõº¸Fc¯#ëŠÎi§k£<SÛ^îf‡ï*& &.g /ù÷ÌÇñz]¯‹•I•E§+†2ÇxˬSÆš¬N•!Ç×ãüu¨ Aº<‚|&h`%²HUC 5Æ GÐCDŠò@?÷ƒgº$ÿ¨Z”cçS9ˆ?ç·qeÑÂI/J@fTÆUZSê°ßtQ†‘B<Ç9Fò`.ܦäÊ©ëz¥×³D¥îo“S“Fzº1>QýBøqмGc ñÔxÐŽ Þ•Á"…ÉSn2¦P3Ùê•cJ¼RÍs¨øršÇdL¦·n-^Ó6ý^)=Ÿ¯ÿûïë÷Ÿôý̱Á·aî…G-Œ«§ RšÚÄ!ÚeRœà’ßEJr]’˜Í=9G6<äJòºø|ñùâóâóâ+ɦñî©”íD" Á.n7#¿]öO†+Âò©ª¹§:¹Ìþ¯œƒØücY Y*ÎK5T3È×¶0ŽQâ{7ó¤žÏˉA¡ù„”—+!W |]x2çO‘EQWÚÄöX52U>"—¤ß/üû-ßWIï‘¢å5ÛŽûÅþƒuù¶H¿¿uUû˜:ºP ¦cÊÔ¡‹{‘ÍëÙ“Ⱦ$ÖIÍ7ìöðõ§&ó_7ÚRØ O5mOf+É¢Iµ½Ã6ÇÅrôƒ~ûq9Wõ†Oƒ8u12Þœ;2Þÿ(gòBÅNù; áß0½‹ß{—Gþ×ù?¡¿É!¾¼<ÄCãgxD=‚-Ç^Ê ó²;°é3‰,7 ¦bJ¼X¼:¹‹\¬Ñ#Q'Ìi}Þyqj6ßbNrGU;XLçJ6"ÍŠSLëÀœbÅ€6ÿ É+½®ôºÒ3¥Wš»àñîóñøÑñ<j’ÌÇçùë8¿Á, –Ï5U©ªÿx‘Ÿ†ìÚÑL—6}>aéP’¤t]‹3wËÛ‚¡þ}𶢤äÚþ¡:Þ†8°Æ`çj& Sú¡ÃÖi9!›˜®t½®×•.£$^Ì6dîë^'¢™†µS ;½†ÉBEíZJŠYʉ ÌÁ|. 3ïogÁœn¡»*6ÇĆUUš’µë; åä·sc–,7”ëz}¿þý73©¼Òæ«}ÐYج%¬ ߘRÉ{ÑZСÚEÌeHL_‰¯K®‹éÅ×Åëâó’×+½.¾žéuñõÊ,S.ðäêÍ&È…vZ†nê+ú2h5£ž[ýp=pqÕUÓDV †9®x_*T¥ ‰õwzÅ{3Gw½ t¸Sò•]ò¼x]È4\ˆLk²·\DN~x]¼W•‰X£¾`×/䟟DÕä£eøÊÖ„4àªe 7“ûþmWê%ë¡ÿ›G÷ÝW»’ØÏR=î±»¨‡5Ÿ¸›å0¥Ù@Øð?çÿ|Fp½‹%ùòÐõ|„Ç¡G™L5t€«Ïà›7ü†IÞ̱H!7œ ‘B³6É<ä2¸¬\EL#w[%Þø¨¬`b#V︯uÁ)èßM\©ÓI,Ç´”LLeúJÏ”.—ó*Ë»e¡~àÏЪÏÞ0ÒH„pç×ãøR=´§^ö_Åm“ÙËÿ:Bˆ!œ§æH)U(r "–׳…ˆ)•&Ϲo¨%|êýª] Õ#ìV|3Ro½gÆ_Íž-…­JªÎ»Ùv]W*µ¨W1†È›ó½NYd×Њ¹¡Ì¨È0J{DD³µ?÷)¨`nr…,©³‹ÉŒõnu½éÈ«PÈ\â$;½õ‰Î±TùÀx½®ß¿_ÿþN~óeú°*ÉÈè3üÿԽ隷‘5ÈjRÞæyïÿ:ÇbW%p¾Ø"@V–d{üq4²HvW×’ ÎCÕœ TÃrW…´ØKCþ‡0²T+´^ã<™‹3=³ý#9UÉ#‰LEó_V—a líoé…#òÖÃb1ûÞ/©rÀ{p‰~'2}èy…ýÈWÉÐr`Ë™vbÿ%:6•gÆ+Ë™™R-8­ÊA8 1Œ§™( ÿfÎr¦2°–ÃRyª€ž*€Òy•]po=б¤u&~Ÿò¿Oy¦qÔáÿÕ.Õfj§ Øjû¡A žcª‚BlJSjñ†˜~D×C-g½UF,jªL­­Æd1Ú •â¯;j¶q4Ù\?«ºc®B«âê½P5ª^ó:µbðlyvä;"ÛNeTmv@%T?až{ —›ÐÊYŸz`õ~8À •À¥–w©ÎW>ªØ>_SÙúQã?J¤|DH ÔÙóIdsPÃ^D7WRknǤá/r‹K¦ý²f„È™|EsE=£V¸_7”NŸÒ6¥Ì¡Ï¥CjæE¨5Þ:۸F¡Þ¤2åÒ3ÅŠ¡¦Ú8E ñÎ\f߸£oò~:«‹GBˆÇñõãë·ãø œëÊÜ ‹ü4ÆÇq1<Âq…´“P{{ ¡“ƒH€™)ç“#Ó[+OºÜØ)ÂEE2µIZ`Z—tU#"XÈmö*N››%§œsÊåLQt¨õKJ$¯¤€Žñ‡oX©Q§P,|L=béýªI麞Óc±ÞøDW½ÁJ¼ 6¸:ÎÉ2ɱ¡Œmãj§­íZ}vä8]†š7Ÿ³¤3}¿Îß¿¾óóɳGzùÃXýlkêC …hãéþbŸÊÙ›6'Œk­€ÔÿqÍ5½“ÁMðá®j~Xœ¹HæºüvÀj»O‰­ž¤LÑ™~´’G])Tu{-Ã?g$JJ8)Ëy"QÎW离 düµüO ¿*›Ÿˆ³ä­6¿T‡JçέŸt¡6[—€Èu5 ½ö£ê¾Oùç“¿¿äÌmºS%U:#»Ý¨‚h±t¾ û¡‡ºñÕE0ºJâÙ@I©ŽõÁ:uïèWåÎ+r=ra¼ä9HU§·êkØÜ)u¦kÕ)Ǧî)1»MÊ)ñÊ%Â3'¾^ùù}þú•~ýJ¿¾ùz €Võ &¥0øF-¢ù©Åbе”Ãê$u)ðòÐ%q&½Õ$Øœ±ÕÆû-¿š|«ÝJ—î,òƽáUÿ½·óâ_ãö™/sdF‡`m„úo‹w*>âq¨\GêkžS?—c-æê‡Ùöô6Œ´(*aa]Û”R>OžgNgN¹*"R*^¥rFcÊù|åóÌßÏüý<}§_¿Ò÷w~¾Xi\™åq•–„½XS6MWð•|b$”µ ­Átúy“Ò‘WßåÍOoîÇM‡k“æãÅ}F‰ÇYUÄ40T"— (éÁ^Ð@3dÈ4¨ê3D=þ-r¦ýy¦Œ”Q”e0ÎR(~Il2+Ê”÷ñAsJc AQý "0òëÅ>åWBj=ºe˨%Pk¤´àUC¹õÀîí¯š¯àÌŠLëy°ÚÀaØÛòLÞ„XRd– L‘qµ=µM«vŲ4z{Ú•ÛÇžOö¿‚*£Ò_†‰M •þNÇåÄEƒ:“^Þ°4ì—/(ti*wÁ>—ôÞ_®xÿ»êéåŸÊÚv'îé SðÔ1[*WdSq<âãñ( 3ChÞ.u%é#È ÷33Ÿq p~¡¶þó*K$-ðŸþìMcX˜˜'‚ZSBÿ[NSQ6™‰è@E\u ¿ÅaÆÊœÇâZeYpâw:—Ò¥¿¿rñ¹£B!ÄÇׯã·5¾T+@-"Bˆ¥þ4>âqÄp„pÝaj>½2¶KÏT¸Kð²'ÎÒ8Êœ)4“ÚØ{† Ù‰§v&ÏNà…£àŒtŽ+ØœÆ9 êýØÁ+s&CÕš§¶sªÌÒ =¬—ΩG<-‚ÊuÕw÷íJ#¶6nÀÖ00êYoPæ¤äF¼^éùÊÏW~>Óó™Ÿßéû;½žéû;}§_¿ò÷¯ôýÌÏg~eB•Eœ¹ÉB¨~)qaI“ŽnpƒíÿlóGè< äÊ|!À6å]¬*F MÉîêÚÂ<ÒS¥æLˆë®j¹³eZmªî’ +ªN´šž Ì™8ìÐö¡­¹©N3‘3Ëxzgâ3ñÌr&ôsbQiå2pŽræX*ªb1 ¦ç©¶Q¡%Ég–ï“ÿû”_gy!ã*KÖÇiL»¿hKLÈâI  ÂEzÀÐ)P§g{“Ò”«ëjÁ¶cD®.…¯úƒz:ÁR.tמ;诂,³lr©0:¥=½®r=:b‚3]æ‘>*Í7è¶x;5v%bGaÐû_ÜéuÞ¬0äŸS?p®pu°ÀgSι þýñ¿ W9f³ùÇÇWøú ?ŽpT’Ìr­TE4Žj÷ò#æcÞIô³uí9 V]  ~½õü ViÑ#ûîA õ+Ãc£[ Ú…\¨Ü&1äPxa.Ûú5W@N(?§l‚uÇN¤ -lŒFé*€Ÿ^ÍJú?~~?F½S³9„>uÇñuÄ#GÄ⪕6ˆ +y‡‹—n5›€é´W:®Ê(æ”^9÷þ!SÆ3NÑ…3Z,ÞÛ BPµPùZ‹Sˆ=uYù«OÃ'«d¯~Y†¨B¿VÒU„ðx„k$¦Èž¨B…·‹é¦^ ©¡Ë$Ʊ+WM SbJ9,èéëUþI¯3¿^<Ï*¥èÍAâÂ6»3—Òèþ€ Íj:\ïîŒÊe®†¼ðÈËýˆ”x›¾áù0,.$»Ã(¥E4Ÿà76Ül¾‚+;O=Þ|ü“ëèY×zð§äúÅh¼štY$g)ÊÔTþ)`ÅÇ–$e¦$5©*Þ†¢ òPèz(;à! ŽS)”å÷WRQKÅ`ºèŠªuœé@|c.ÇYXç5K˜†ÖžéF"›+¶ÌÇúsøJ&¶Étò6§=›ö>ï°Oh 'VÖ=½sAׯϛF`TjM”8UÚ2¢°çŦÈ"]Ý$œj«ôÀM[§à×=ìÕíS©¹þ/x0PðGã¨î ©¸YñÓÂ[AÉ-ýB›S鶺ª D<Âñ_øõˆ£ µ‰¥s Ê×"HÀÉ–™$n*äc±ñÄö0ýcÃ'OÑë5GÕ0Z‘öw]DW'†7U i„ŸÎeÖne6\ã NqïºÂ&# )^‡+~ݰáô0ù•à/T_ߎã«ÏoUáU[Pµû41@,ßz¡TëC³C†+#–4óO€”ÊœzÎu+¶=R¬ÄvÖÚÕSµ1&ŒãXŸÂ¸ò‚»®µ¼l/ ÙX̩Ӡ¹¸«òö8b<‚]ü·¯ïƒ)L9Âöi°‹fZ$eñÍälqöÐ6s—Kt‹4 ««ñ˜h!Ab/qÕ« ÷ïøúÝ„‰ß¢®©m „ðZåÉ ‡)vÞë^¶%Bî$q.R^¾ or¡Â¦À úÛrUKf*K,@–ná—¯"UÝSíS(BÕÔþ»LSCSj˜‘Xÿªg/œMÆZ£!*SV¯Å^ãdœôc¥d§ €ŒÆª‘òjCêï§¼’±tŽ8´ÊØpéa9¢ªGÆtJuø¥[‰éoj•ëÏ…ˆƒâ TµÔµµ¿^`3…8©óhºKÌJ("Äeð@æUY.IЦðZÃÙô¦rq:j€"öŒ¿º%éäŒï†ªiVG[6ëØTú&Ø7CMùÓ=F]½ü›ì%Hú¤:'ª~øS1ã©ÎÞ³ýC<Âã+~}áG ‚ôª5w £Œ‹É 5™%rs»œ9ñé+`ÜKßü(0Tè-Œ¶­FgæÞ\íœ$ýûŽÁ05KV")ój?ݦMÎë¼}hSˆðùe¶8Þ©vÏé!±&ž;åD;÷¨Ù!ñëëñãÖ!ª»PŠ¥ÆG8…ÛJÞ +•ø¯ë±ÊGZ¾}SÛš„æ|ž)Ÿ’³2hL2ÕQÝ`çwì,#@Å]Y|“]\âh¢Yïñ+bKi×_²ÁS—çûòW!Æxå̪Ó$K±k]ÕѶÞ0¡_/fyÑ©Ru±é úZk³/TNèðFptÉ ¥ÀO«.Ïß±Zb æõÄHWË|óç"´]ÙA »m// ……<±:òqEŒc\lú›äïŒûf¬çv•á5¥A‹³6×T§v“6(ãœüLÉ7Í÷eTm½0±çnð^ë¦~Û|TêbE+ø>B) úzÄG G«¡×%Gpò·yn_@-}¢iù™Çp`3Ë›Ð5URØ3{jŠÈÈêT?ٓ©Æaeð(´Z¦"aª*Õ©*cävž†Ñ$ì ìðR_Ãy›ËƒV^wo6ò3Ûz“D„x<Ÿ1Äò†…jíGGŒñˆ_1<ŽjmI·ÇÖKKõ— .„Áì ˜Œ&2—n§ÔG܈ѽž é3jΜÐk½e\vZÝhPÄëWVÓÅý%›³Ä O…×¹Ø €r„ˆ1GQ‡àhè|çÃgÄÛÛE¥fù¥×"¥eXZoéBÀ<š©×_BRã(nTÖ鳨Ãc•bÿ¸ˆ‹A0)É:®î/ºôíÞs'›¸hx©´.s Öî¶*€$¼=ÍõÁVñiîa«¢xéUU$SiFm’Ö\ôÓT*¦•ÞŠUEÀ®~GMŠN n&ÿ–Ó«t‚ÌòÌøõâÿžòÏ>¤ZR/ˆF?Øx8bPƒªƒòŠÃC·„@Í™ªÐsÀ7V¤”ÔÀxlí(.Ì KáÑÜ>5-;˜}J@%á¼!µçTO½#VÜC¨ÚÌI±_ãîXgQrP+UuÚŠd'”²órý¡ÝT¹²OBÆ%]Z:˜‡;›Ã,V-÷o[þè*ûÊÙ»¨ªÜ-©ÚÓˆ…÷7muPÕ9õ«ü[IĦZнí¸*UÉ¥9gO=ÒÒi€³~Àm"Ë´~}£Q×ì̤»ù|M÷k7¥CFÒ]@Åä°‡«1?§–I-ÚÆ+³üLJ pß#»M¡•‹îl,Š0A ŸÀÿ&?ºCÔô­#„ø8¾¾ŽŸ¡Wµ½=Ä#ÆãWˆÇŽ’ñ4@x@„Ù"€t±ñ„H``U•ójÙ®¹ò„S>ÏôbN<\káÆ½Ž÷SL’Ò’mD…†K  êß Š !>.C6‡É©Õp1ÿbn²ôÖzÔ`e,›jfô9ô7!dÚ®þæð×@ôn¡KÔªÉ*±áÍGõC I…m]æÆ·Du|’舓êx•Øðx[d‚Å~ÄÍÒ>Ýì¶0ÞêS}[˜c9cL@ƒ¾$xo±è f„ß\×mfÉèÈ&N-ÿÑ“Y] «ªŸô`» ¬ÊYæÝþñ‡î›ê¼ÚC•w¤ÌWÆ÷É>åŸ/üþä+Kʆ¼€ÏK`ާñãÆZªæZV¼qŽÄTã›âÈ ƒT•r¦ä«á[™j œhí|uœÖ 7×"V' “ô¤3]ÓŒ›„¢I:¨@ >Jš£#'»6U6jV¹ªúµi 6¯§3¬Udz9ZÒ8‚ý›ƒÊ{§Þ† ÚÛbî¼"H¢¶Z‹°½OÝsSP÷ûL‘oy„Ç#|}ů#AÚ‰S«0=n“ E¬|ðŸÍÃ7|8ÌÅ ˜|;¬¬ ßOªšO0ïÚÕ»YÙ’ª°juK‚jRc :]AÍè̪ˆàªèUÞ ã¶ï|OˆÂg`í>›Í¼Ü—:<Ô–â#~_?b` áˆG)šŠ!–Š˜ÐDáêZÍ Œ‹’º)Œ¯¬È¹¹Dã˜õMùU$ªmË0æv´ˆ ’eÚ`äòM­ W3… \Æ)ñÙB³d #ç¨ÿI;j””‚âq„xè¨-ˆ3ø@*- §ÂX§Xœ¦õ`Öí¶fÍ&fºulêʸµÄš¥ 5´Ìv8™¿#•÷0õà±=JúײFÆb9'Rì–D˜En'ÛYà\õšþõÏÃÿ!&ì7϶>-tqžÞGuÊìeÐ}Õà“ nÅORÜ<™6–q!Õ»U®ckyÑÆbd2eœI¾Ïüë”_ßüçK~½ø@Â,ex§ÕÒÝãV€½jbz*Nf¨'Ù2%µ8èb¥Êdª½P™sôºÒ\Þdw/«\Õ¦eÝ—pçžÆ ½ÇrÞ7ûªUS1ÄP•ã(ESx¥ÊPWèeÕí—ߪ'ëé¹+ÊMòLÏt>sÊ=%ÀçDéX5ªÚ©×SLm,Mk"ÙÚ°;TЫx«‚_çÉÄ -G¿ Ú¶B!Ä1Œ»CÝŸ„˯h(‡ºjjÒ9½x­Óí~ÇRY’µuÝAx¢ Øs®Ïï¡þÓDÍ3òCqÃêcÝ àÒ‰u²s§­Ý›±+„¹XÄåœ_:¯ƒRa9Ûñ…åKYrîts «µÌM/ƒ`ÊM‚ny|O<,úŒôi²DªžYÎ,¯$gÂwâ3Éó”ç)ß§ü:å×)ß§TmCP}gbG™VPPSTÏÎþq„÷+:yçÃŽ/|Ûª»X¹©88uïÔd, ø0ªl»º*„pÇñã%…êˆG|ÄøˆáQšG{òûtsé)oOnç8ºTÌúØTƒCí©Ï<™9ç×+=s:Uf,'‡74‹h _ŒˆÔâfptUr¢ŸÐ¬’žJ82Í ïbˆ€,[í-µÀévãÄ1^«!Ѹ4Ulã)™!•šk»âý§UäÖH‰ÛcçvûWN£[‘Æzéy“»éæÔz‹á8Âãð8ð-»š"+ã„T›ûx•»ÇrÖÝ&ªBZYH#ÈsãðN†Qªrû(¨uVçY¡“2Á¶µä:–JÇZݨHåÕ®…(f‘VâñzzÑ ;K[hľïÎ3¼:CY£†˜Bˆññ8~<Ž#†G8âGx„p-¡¤4Su½Ð¬žÅ BÒÔR%Z5fuœùz=Óë™sÒ@Àň¡ ’ddYÄÄ»•a ¯I FDGn©Œ.Sëlßõ‡bì¼›»HÁè-©±$×"ÄbˆE‰ ŽŠãñ(fŒF¥ .Cý½ru/Z×ô²Ð[pII‰9{—€cpOck0@ -5ó®¶·‰kf–…tDh¯0€jÚ¸¦1Äxcvû׆BçŠhÃî¯sÞêa½æÿâ#0ùýÌø½ðöp='QCɨP¼äõôU»:U¡ï9-$]v¿‹ŒœW›.#L7`ª•“bº|‚N jöTŸ`Ã2êâ1²{QŠy ºÐ¤…ÜLcDóÀ¾è\nNž©n(½ÒÐcQ½nŽ=>(Q_0¸æBàÒ–}t†­Áïëá• zSvJzYõ×ÏK1‹³o+W?‹RÀ“Ô¸4Zâ^,zu1òÝJ÷Ñ|¹à]Eâäýß²!WnxÿrS„£$üǯ#|…aH7™ºlÉÆªS1ëÔÝØrܲOÏ}:9KŒañZWÙs§--Ñ/…£1dHÓ)Å’RV—$/ڼȒ¦'Ó‰E E–g»åuÛ«®©M¼R/+]ýrØßýÂ_Çñ3ÆÇQRýÃb ¡Çy‘ÊÅè_…¦ì£ R|+: …#ªµâÊû'¸ý`r…Y²W()Pƒý64˜«ŠX„´Y·«—9q±[v¨.öê¹û²ôåy€›{Åò‹y©ÿl‡¢ÝÖ>ñ;»– *.Ýw‚DH€Ä ˆí¥^Ô•?€Éc³kÉ: ï_óˆØÒ]øAðLw0«zo¨½©€šÙ0e}³¢º÷  †0“²;ÅzýT&þÆNÌvÒöJæO§Å2ú)ñòøÚ³Ü²F:öÑS÷ŸH¥&›þÐ Š>uÊ•Œ±Zïén»ËËyÎyKèÚ§½y+gÉ"©qýYÔ¨ ¯:X3õ÷ÒÒñ!·rƒ|HÓüëH,Í5+Þ¿Rƒ! „PÄ©?½+U×Á!{°—èÈÚ×D6§ÌJMš©Þ`ÚŠ >eäL˨ëaÿƒê˜Ê˜þÕAß@c,¥ŠÙ›Z;$Ô£zÛˆrÊ9ñdí^¤¢¹ê;½è]Õ<;%¼…¸ôë+±=°ÿ5Ó˜lY ñ 1ÇϯÇÏ#Gü 1Æ¥éFê‹l¾ ø^ÔŠû’«ö0Ã¼óØ©´u‘ERJçù+/޶=˜jÏ&„óh#ºèÁ`±²`Ìú:Ccä´®oøÎ»Œ6ÕJhjŒ1ˆ1 "4®¡Jê(cmiê ”Ip4zÒÕ œ ަa‹jšU˜‹ß?o=ˆ ø‚a yUª]jzk4&¦ãát%O·Ð¢wûä¨Ó§Ò3»@¬+¬1UÛ3%7DþB¸þ”¡‘ÇúT¹½ VÃôýi¶”ƒb”ä@©o¨=ƒHùšÒ”B—‚Šø¦ßé#†µ#©Ö±\[€,šæàÌUãì´Õ®×6ŽšGV"~ÕëÛ©EXÀÝ0…©ôz!%^+v€æòW'ÕxÁKgóÞCl{¶•ÐUÝ`é;¥ ä·m¾\ k;léÍbõáD*øô.&cqþ§éàÖ‚Õ**_ËQ©ìS;|”«™•·tœœO™ò¾ o±€ðß3˜^üÔŽj±ŒL¼?Gx<ŽG GD”¹5  ¢´“ª¾TppÖÆŒ4S.°é¹µ Ööd6ûì(b‚:ÆÏ ÆQ3 aNE[½ƒ¯ö—SÎg ¨²Q르,/4©9¦>®5×!Ø)ÄF´N7§ÝNÇöjsœwÅޝÇϯ¯ŸÇñ#†Ã!ÛYé÷$xð Îp¯ºT´ÑÆO € Óùz½~¥T³–Z±›ƒ,–1Ã_´[bÌm8õ}¯sÉ.Èè×Þ…×a»§7Ãn¥õcŒ%Ùœ(Æ|reB-]T5ò¶.s¤Ôª3?‰iΚ0`W*Ò0ð¼Ô§.õ‰À†b´?'40uYo{¹ ÐÍŠ\IàgT5Ý…tY|ZôÏR.;·®4ÍS$—3+6ìÂ-ÆØú(yê¼x=§Ò]ZAb@¬ÿ®“èHìo\y’ŽKÕ…øÚ©8víÇØßàRjl4Õ`ïÐz•©Õ„ad†hlRºVÕçÂÕæh ŽƒBHÛ0á‚öm>?–ZêO¶ö/v&”~ÛYV™èNÖ%{nNâ¡Ê!Ö×QWaeÅKlF½ìð×^àe“§È»h 8ƒM{œ·;¹^„Ê„šZª¿R¹¡dvcý΃Ì;9ÐÛûï3½ÿø»,¸ûÌÌœÚOkññ¾øŠ1 ýƒž…§îÝÑ“­)vohÝ€[A©\´æÀ« ¹ý/ÇTŠ3ªæÙ v*bדª;å®r‘¯#º GdÎ)3¥œjqµš Tq"–[Át#UWs±.Ÿ¸„”D…ßÏà ¥v-çcuï^(Õãǯ¿>ޝ@¦Ã²ã‰<Œó‚ÊYïŸ4'_žv”w:3ç÷ëõÒ)­ŠÓ -¹xU¾õ^?;1š¶xÊ&b‰)êî1YbÙÿÁ-‘w´o»Fд§ñ1 [ëUe\ú45Ž1v¯ªTëÔ*ð˜)sw¤„OÆ‚×Á@(dJLuNÅö˜­pQh8ÞÄ€{$ŸX‚Móv4†ixïOºdÔÏ[!®·M¦`á’…Åq³Èn]0w5¤ª?R/60?ÈÛ¾1”Aó(jD@ ƒšÂ5áÅ bÖ…ïmÑÁB§Ò–)B¬  ÌŠÁš¢9ß…¡Záo44Ù]íØ­½NE1v3a9[ºø/DÜLÞT'j˜¼û~¦ ÷¡QíÎ+#²ç¯ÌÅI“Q™ Ô3j>÷’mmOº?ˆÇi†Ô9@+ì>°(D%W÷*Œä '{˜!UÅÄ.o®e´½í–í2o$EîÓ¹\þ•fÿ™ðÁ-<C×bÇ#|ñq„CÝ4]zú­æ\Ã1¶{#_Ý×Is6g­<®3ÛÑU¬ƒlO¢§Ë!*ÖUÙ*j•ê¨K':ÐOf.CjµRµ+we¤ÃŽ«Ùh¯ºüZìæ˜‰|S½õ¸yì¯R8ç\]JCˆ!~Å_?~ûzüáÀx£†¦³÷e¶£L¸"S½·ÁàÐÐéJ†ÉÉgz¾~ç33Q‚UG½ßóWÕ<í$eEÒð­ëp’WŒÎœžù¾Æ¨uï®õ“APZýi< 1 /–±u¶8õ€R?§ÒªF*1BG¡a¯Dhí¡˜8$`è"'i«›„åˆÇœñƨڇTªëjƒí!Äò¿ò&ÀzÅ Úœœq«Ó7‰,nâ¾Î cçYðD3Ì÷'JÌëãrÁ¥ú÷2å\(þ¸¢#»1ÙY°/_RACå(j°¨cay´(”ù–õl܇Âäôäl,m…fpZU¥CÐÔ1ÅÆ0cÏØ¤tøÂÄR&û©Û$¨©hÏ~æ®æoÆIÒjëø ,†9›Üc‹³Z vn¢ˆþq [ö¡:0Õyg°·O®NóªäªŽÝwqœ‘cohèß– чÔ^–&Ê–w“$—ÛDüD轿·eë²i³üؽËûë%†oÇᆧ¶šœÂû?ðx Â8ÃioÝD›x —žÎw§Å$%P±qÚmŠœ¤ø¦iLÕýåì¨Qþ»®8¤ 4ö€êèv sΉ¯”ÏVA=Éb®CLÙ¶ g®¿—$Øn)sýúßôšµ^wT]d Çq|}=~~=~Æpõ¯Žðwöa-€RÄr?ì뺿±™@Õ9öß„êÿõ|þ:Ï'™áInÓ-hàt›r¨eòý×ÛS†… Å˜²ÄbðzÆ L…Ë9u ©!†xÔ±l|&2CA*Ük|n52L+çDPàê50a°¡áÿ-Ó8<’&!¥|&a~?æ`‰L`­ ßWÇ-,¢U»DÜmÄnñsu¨0íGìwi–£¤=q$w °„b×ï#w`ærY¡Ì]Ïw‚lýE åa6z.lÏ׃èa¹Å*]‚ÓU ®¦Õ>|Ê&^cãÓÍ„å%dÛŒZïz¯^ùs¼“/ë¬pgø}—iÅ7#ÚŸåý—L.\æòvNEW}¡+j.U@lí”{ú׬Bè0‚S‹bÙí'âçà[0°ÈF•CÊ«¬0 ‹œ½]þÁ:?æ|TñÆÏ±¢h\'÷RbJùÌ9·N=y“%tó#¦yîsê­+¿Zè¹Ð­¿7‰¼ÁrʰbŠ.£`|:AÍÑ®j¡¤­X:¨H–§8íYÕÁæTLĤ´Ub2íÌ„’„ªx1swä¶îfó5B©§ÞÊKåAÇCQ™j+NX)ä¤é ¶ePÉ(ÄÀPS¡þeÕ;uiŠÒÚY¾+DtÿÛ–·÷cä}àëÏüºiöÇžZR=Žâ÷"›FA¸Ë&ñ²¸~¯4Žf9ÌÀ°½¼^þ:´òu;7LÈ‘ãü©JßÏ¢ ½ÆÍYÓ¼S>SN‰gb*ƒ D6ICŸí6%ç‚ô{«0÷!›òlË5“yvLúJÈÜx¸K׆™ÉæQÚ¼C½h¨?ò|ï¤"2g['è1ŠË¶á±ß£°®Î°æœ…'ÏÄ3å.Q½2òýù+–ŸpoÔxšK|ZM6owš1Ôˆ££€©15)†Xöi69u|-{üö8ª%á3¥©ºdo=Lçù|ýz>˜ª\(f"ˆ…8›‘JFÐû{è¶þj‹0±$é¡âA…Bæ©~D¹´VUwqMÕ^й­× ÞîŠ1 „f¡*î2°µ»×ñœÃûj‘¸´¹Æ£¨_…dÎ)ñ<™3ïê Ø…ÊõiÍjümN½œ»¦wzºÂ=õÿNΤ4“•\çm½ëM¼Ó7ÄÕZÀûTÿ¾ßC|\àýµcæ°‰.)Hê%`¸+w•«ÐGNåi»76Ù”U’.WĶhµÄŸ.ùpj-ñ†Ü–Q%½wf¸qÒÕÕ›¶Tå>b‘Q§Ê#±Ï„³ê½ñúE'¬Q§ï.OÌÜ%h_Žñ×ÚÓ~YÀ7æÇÏrª¾~÷´ÔÙŸDŒ‘t9ð]0ì°5lÓm¶šÔ¬>FªJ>v§BìOãKSÃ"ÉïFÜ#ô¯ £ÿ ëõòÅû·95"Æp<Â〺NÐÙÉ ¤Ðb\®~6´µ– >Iê€Cö»T÷’ØHŽ„–—´"èŸk¬·'[¾6ã§þ,’‹È.¥ÌÔ=3¼9y\ëûÈ¢7ÍTkZY²ª=£Aðg «ùãJRùSÄØ)E;´Èa¤]ãôyœjFàpáw:‹Ìdίׯçó×™žd&Ýcê°(£Ü„¦â–:UͬÔ˜´ì¡qè•Ö¡ïNâwÉA¢„€½FFæ ÍæibüªÆÿ[ Åi0\ ô¶Ò8‹LÌŽùÿ.ëNù<»Ó‹§ß ûÓä’ ®x.ÑoêÖïÿ$1[v¼EïÑѹ°ÓÈ‹&kä6ÿƒ›)x¿a¹_á £÷¨¤iB¬™¶Cqá¤X<2 8‚Äès‹pµ*±å¸èU“«\G îU‹6ÇQóØ5£0Õk2‡­V™khZ¸R`G°¤lж˜¨1Ôv'ª¿ÌN$ X¤uqåš§±Ì—wâ”9ðw*S¼¼æ_5¨ÙÍõ\%IÁ( èÚ¤ÜgéÚ©Ö8œ¦ªÑ}êö6 wêRUþWwcˆ¼I†ËÅq9ö­ïïýñQ «íkÿÀ›¥)þýñ~u‡Z5xá8ð8Â#"ÚØ;ЩÁù²T¡Â´iv ˜‡} âˆuÒF$+LñE] ;Í”4ð¬[9 QŒÜ)ê±:©­n2`(Ÿg>“8<õÍÀy•øn+¹oÙwË»齡añ¸ö±p Ž0¡·Ãêâ˜ñQ‡€cHÅÅľÀ÷ho½©(m±é´ ÖgçÁqÜÍ^GZ.`´^fO¬3ñïî Å*JMCžÚÑj±*•@À0Ñ"æ»;ûGƒè Bâ6 'W2®¾­º&„¿O :¢ß,æåmU´Jqu„f,…á©[iü:bµ=Ð@5yO¨€zÀ¬ ÓDIyX¦Ñð±:qyܼXz®§>®£µüXˆSã›Sø¿O}ÏãUIRŽG8ñqà¡ü€`]õLCåÌ—±5ê»~u&´:eüÖá+ÏŠ®0*¡®} ñ†t=,('±HTÄ(JJf’”òYTªÕï?騗×ç•êÃÎÞ÷€ÆhóéùCº ô à%˜ZƒSŽAÔ_”«µ¯ªdÞ© <ï¥x=•YZ®~¥ïçó×ëõ+¥³H@±8âOécºŒEwÄ´z°™'Ä'¢ ð?°)Të¯ÅšuÿSFScgü7\¿…GzìƒÕÓtEÚ]0—€> ÖÛ¤jXüZ\ã:ÒûcäœòùbJFsv9½(®GÇÑü  6ÛSêRà‡BèÃÓ”dƒÍ°˜3™%o¨u—¥h†W—càJNxEá϶ý­³é$=5×ñŽ[Ü}†E.JÉðaò\z‚'“–êØRÿc[2yì0Èů%\û?8¨u,Bî {l ªè;¨ün0Q0—Ÿ93`:`]@Ž“¡.6`FNçœÑ·øâ¢¦ ÉÑ—*G*,qÒ=O-!u¹}~¦Îã÷EÊô£*Nä l.i^2)u†nO «BÔÔz§h#¨¶‡ÆkYÓêÏñÖſٜu{dd]ˆÿõ¿Ì:YTU)<µQ1"áqàˆñ'»lò¨ ŽE¶Í˜ô<‘M¦•GûäF‹Yסa”ð»”x´ÕÃJPý] ­3òÇ_*ʇèiÔ\ªTðÔ,¥’Š2§-^O~>ýê³+ô&™‡‘à‚ÅÖ|ÿúªÝ(aà©áBD@9üwóHé¯,%Ö希ùÈZèZÅÍÙº3ë7fòuÖ!5§³¥vvè ÓV.}H«ŒÀ¨cŒƒÔ–…º¶/îuÙÐÄ:R†Vì£4 ‡ÞÅÇyÃ[ZÚç¯êœóùÊé¬þ‰UŒý+Þž#ég`vå‹À¢u‰ß-ÝXë^¬z’œ•jmÃÔa(¹ÞO&‘ôÅ®‡ÙÏëC£?³OŸ²e4÷ £ïuZ :ŠV(F…JÀÛ=qu4ç•&u¡„1çbr>æa†/t…°™b¸Ÿ­óþä§^TPl#KãZz#Ã;n·¥á°^I\hŸf‰6Qï´øð|"òjôÆ¢Á‡œêU„³f'Ø Ê,#Êûè)YsušªæÅø9åd‰‘^—} Êåi$‘”%I5õ—'æž÷«oƒ£ëpºÛÖv _ݘ\þ~ç`ù÷AªØ°ÿŠ÷宅4}êŽ#~=‹dMíÇl._ŠÓÄM´Å*„‰y\,cå'T#‡ÈЬÕk ì v”cÀµÖF4¶°á`î)ƒØÛ¸Šý7ʼ2‚¤3ŸÍï_o¯%‡5G¥ÁùS×ÇTUhùj| Yëo&ýCx¡åÇ4ø;“$!lý†ÁN‘Z'åzL;ÄÔ^†ÒÂzžÏ×ó÷çó×™^dZR«6[JÅ¿Àæñ‹nˆ˜DéV: ß^dûÀ',³!ª R-3<äãñ œ ºÇ¶¤Œ¾[UEã¨b›¹}F€`½NbB…á˜,,ÊÛáÓe&ŽŠÌç™ÓÉœ¸—am3>ýlE²Ëh‘#HUÞæeÑ›¥ôË~Z¦p@±“™’3ß²áoªÖâ-]u'ïeF“­Þר»ñoÓaEÕÌÌ7úôSP´1”Æ© É o{Ãþ‹vÿaÁl[É©HØr90éÃtß/hÖ ˆŽÙVǰ‚Ž˜:EÇy¯½b£dU³ožŠ—ôp-I¬ÇoËdØúdlŒ M‡{ï1 h°úÀù`uÓŸæiÃù‡ õ&JªŠÖ2EP¥ßMŸõÁXþ=)¯Rä:¡_ÆÓ.HD?'Ö«p·ðM#É%ÚHyã5Ý)î:#´ÿæ9•«Y|å£úÇÖGuÄpaŠÚ·ïcÞLØ­ÜC˜.Ë£ê(nÁDÝkÒyWÍü„†3Ú6‡Àk’!vKCxeñWñPm«ÁœÏ3½Rîsê¼­.wë=k÷ÞÍËûîÜÓßtb‘Á7;ACßjRŒG LmÃ`_J˜J‘ìøéK¯a§¥«·¥À c™™^ç¯ç÷?_¯ßÏôdÎUe»Tf­ uÿÌ\:#BýRŽ“µ»#±&…Ë”š;õÿG"DŠ25Ä[J:Aª0…‰_õf󜲗MEç#Ÿž*¸ÅÇXÂc†E˜R:_L‰y=tP.±~ø µõSåï4|ËmQsê®b½šÄ½†Læ$™¸hycÊtûãcxéÂäõÔiÈÞdîáÞù#r¶yí)©þÁº'ghi »¸wt¯Í}唆¡äœÆˆ%õ¯ò¤0ª®Å”+¢EµVÕÁµ¿…AP±r ·Ñ5\¸i`T=-ÁNLªÚ Wj*ô²YƒXD¦fU+ÅÍé‘4ó™9‘Ð"—zhÐÃ%GGF)\ÿNLî~.ÌþYG pä°Æ%Mrše`¥‰ƒâO­U³üÚŒåØs®ðBˆ.\˜ËŸ·¢óEg˜¿ÛN–.?úST÷!5Ú¨™þÆG5r© ¤Á¯è¤(Æv¡ ¢trŒ›Ø6(Ë"{®vg³`Zà;‰nâÇ ¾Âõ´«TIП…;xH¸w-Õ›êÌ)å3ñÕô©k̲íÅù„¿ß\_÷¿›&ï k~;ã6ô#„Ž#±¶H¦bÇgÎÌU„À*ƒyYBIR=†€ -a¤‰é|=Ÿ¿¾Ÿ¿¿Îïœ^™– 7çîñl‹ÅC¦ƒÓx5zAU[¬Ê«§tkvèuËû`\ÿŸÈ;zíWˆ@˜ö "²sé”䯷i-ìÔ³U6ãì,d/U`¹~êTY0Ÿg~•!5+T ² JöêíéÐGL›CçþC7Õ{öÿvê0|j¨^Ô–S/Éœ%gÞI‡±‡Y¼qýÏÂÐ)øwnd.9¿7Û<ËNß¶‡;¤Ž† KiíŠAÄOSN¶³€T5¨iÒÔÌg„õ~¯4TÕðZª&1=t–bÿ‘í"ƒ6û«z€ Pm¬½1Àe!ÀËõ›ô@ÚŠzÍ€tñícX'|#MiÚpè¢ö õêŽ<œÎ"\ðØ:öß j׿þzÊÈÒ×Ì{n3h¦IÆ9FRú • Ôî”’êè'=|»ºpÍe]ïD_ŒžüœN½?¤þ',TïžžŸÖãßÿP‹ciûŽG8b8T}ª}ñâ°\H§6ußWØ#áÔ‡½Ä?`¾N\¯}šÔT0§E•iIGTª ÅÕdÛÿ*“‰ç™_g~åšó¯{N îùÊ,uüñkåV¨êPiY’éˆ{£rE-ìDˆáˆ1Æp@u‘Âí×$K³,sc¡„u®örx﹊GôœS:_é×óùëyþ~¾ž)Y(Ì 6’9hÂÞàILàQdbÉTŠ`«ÕÜM˜øt<µÞ½› Ÿ¬#å ÂL,(–àZ£Ì®z½¨?,ª”þò!„ x¬®¾d3M̰®j™…I})ém¯ìϱ \Zc.ÀCsh‹ZëoÂóÐxoVÛ$«ùH­FÈ¢ïȵ –}ö_¯’Z3A€ØPï¾â}^Õv'‹žÞ7ë ͉‹â¼7Ðèå² 2éj rOLov :ÃÖZžaóèÈUnüØûÜyÅxïuË¢^»-Mš˜^5×+=ñ¢j=äi\3¡õNa Ò «˜™ 5?ãzŸÿ3C*/%XÔxª´^š´œoÔB½Îo°ÌÉ \Ð#mz2&4Ãë³”‹ +0¦`Üͺð)¾c@/=ì`¯+ÝÁ¨Zª®óÄôJ¯3Ÿ9§ÜÕàî1vü™*Cqëêg-ÚŸ|¥M¤±6ÜH˜Á ýc!ýK:„­O·&Û¨šrÊ9e¦6©QcðªÙ¬ËL9§ô|ßÏ×ïÏç¯×ùòk”£BËõ ®è×6±ÊÂl6'Ùðôû6Ð*†lœÇàvWk7¨#{íR•!ôž­€u0‘-ª (îuÑÓ#ˆEf`J7ÌE,io,<¤‘œªÕ0ÀÔifZ¼܆EYÛFk&lÔl Së³T"†‚ÈåŽqÏ·C_ÙJ‹’ UrÓ†Á‡vzGç‹rSí'Ò¥¾Í§KgÕõTãôB#•¾£BRy‚•ý.á G˜‚Q¶ OÁÕã¯_´,#EJOg暌…JµÌ€êf”3:Óî‰ñ:üâap_êŽrÔ~š‰š´+-{DaÓV†K0©:ºl1pCØ×AÛ5—ÑÒæqbľø„T¡ª–œ–ˆrª •jÄìšÑ¢aMyÄš¦6¶fšd~æÁã§6¤Ö¯Ïö‘•dV`óV}гœæÍu)v¡rß *ÿmêqpgò? ¦ÊDúû'ÜzS‡è%„P¬TñÀñ$Ý×'fp¦ÌÆâU.–¬¡T=o0}T‹ã¬úd€‡ÁàOa~úqTN—ÓჀrn­¢¸,¹€©EŸªn/=*Ë^L £‘%a—N¢)ÅÌšÈõk Ù+]©G(–» {ÄxP¡9¥t¦œr~å|æ”Ë š™™ Qšsh_)çù|¿^¯_¯×ïÏó;¥WfÑ5r¾;æ‘I)Ù{s-ð`2_¯n]‰„Š´)¾ö¾ã%ê¿Ìt×ã-Î¥ â˜S=˜2Ìm4°OM =0ŽHì³òúëA½vlMsê>W"cs m;s§û{\—¹É)±b“Ù©õ¹z×óÐ3̵šXfs:ún€N1ÉåMÜÇ%* pK¤L™9]¸)WÚ]ÌŠ"®0¹šÏsó­ðóAµ8½ëØÚÁš!Hk™ûà!&ÀQ²¸XËíàlP û]Y¥xN‚NÂÐÃåyë¦= Ƹi9Öf¸>-˜³k š+BýhÝ©cLnÐ$#,¡…9§T k–ÖW¸#ÓEµª.IöcêAýöç›=“bDªq×Òý¹éª’UW˜Ú~-3ÕCjÖCj œ¢­ ·# ?æ2W–ü v~T^&ðï@S.ÔÛÇà Lݬ YVçTmE€Äˆxà8«å™Û@Èå;KV¨‹,Y·uQàÌù^,}¸ ¶w 6…UTnê`e“áZNA3Æp϶W¦BDÇœš™‡bÒ ñÍE¬ž@mËÃ,ûÿ@ßüJu 8îjÞZƒQ1QµöN™Sæ_¹L«L9ç3Ÿ)?Ÿçw:Ÿ¯ô:Ë¿_ßçëû™¾_ç÷ëõëyþ:Ïï×ùÌù¬úÎŽÅÙ2U{Ó/ /C¹c=1N)îŒêTÿöžÕÑÎ-CµtÙsV´ÿx€šG»Êõ™O_˜/ŸT®me½ÍÍ¢‹:sµÛÞÁ)òfä u@OlK/¦T±d}^è+ãúšÅݺ4 ¹ Ú¹0‰Iq¥8û3±]ÃŒÄLv‰‹òåÀÛ6ƒ+'àûêž^·¬×ηÀ\·K~qu…Úòa˜‘êÆ:Ô—í$x‡@…nx’¹X~“ÏmFUÿƹƒ‚ª¾T‡¦Ä*øÍñpÊZ÷AšBW¿Ñž]Ð’“ÛáA•òl|{w_…êi€¦¤ëAŽ­Q ŠØ02¦ªvÀþüfTU—&4Š/ÃhS]ÁŠ68Äd¢Zç˜L#jå›]% 7*ÃÝûà)“Æë/d¡O÷&YõXÍTfÔZJfæsõç\q¦Ätæ”rûräpoÑz‚ûl°óTmV×Ńé#ÓË\7›×{±ôc=‘A>VeµdÞ4J­_ŠJ4â‡^KÙSá­ÓJ¶õ#×'„éa©Èƒ[†á>9 À¤*¯Î.tÀ₎3-Þ2³´©ÊÚŽ[îŠÉÉ´lu³êųX ÌÌZ\ jþ³ eû©/_áþzÞ¤—¹ùl†ÎÓw³à¿Ž÷Òö&SË,`÷ôæ¿j$ý"UÝ®N°ë6'¶³Fý]!ŸŠºkº •Ç¡ssh”2Ís®h›-ôH™Âª”AjÍUL†yüYÜ—–B^€ˆ7+ï¹UÊâBœ0áƒøC ìLå›9µ… †XF9"¢î#ÅÕ1ÈC›‘j]¤†Ù¤Ú,/¾ð¡7#¾¼»SY»eãëhW ì9b~}Æ™1.œ•ß×OÁÿYÝØÚ¤šsÎEù0Ç ìF4…§çæµ’7»Õ°Éž;Ý A•‚X}`9¥ÔçÔ”˜SΉ)×±5§œY£¹7Ý|²ÖîÀ"ïd\¼(©rE޳äV·qba½ƒÜ™çÔi¹„8‹M”Ã1Æ ©úøX8Òâ/Áí€ù~EÀžö¾…zVµ×V ó6b¯ j1®Ôš6ú³+·ÒsLS®xe {%÷t'±sÇ\1æÒKÃÍþäãì|ªù]ÿÒà`Oã½çðÌ9 = N¼àùU-Øð>»·Ã枎tX[j5›TUƒ›O™˜ Öéh¯õ©]·Ú¿8÷[ÛŽ³øœýXpõõªX\èÔ¼í’ôwõ‡´9=wô¬â·X%y%¸áì%•ý_}TŒÎÿ‹quQÅ»ÂSï_‹©P*1C»²Ý{FÌ” •^pÃUm²†5¹übg ŠhQã¬Ùçg=Œç3Ê|*€ÛÈ­`\„Ý‹QßdÊgª&ªWb ¥º«õØ£\Ôìòêâ¿xü·W”‡Æ¦jÊÔ†Xç¥ÞDb ¡€!š8Z—Š>UT;e­@³Ár)û9tI¡Ë%VR;èzÏ‚Né_¬EI›:„aÑ«Üö B’g25j˜êåî ‡ÆuÔ ÌòXD,:ôP°H¶Ðçlm×u›"0 2,èiºá\æ×bœZ€7[—»»WxþO]iÊ -%ݱ£É]°îýÄNÒØÈÃA•ø®"UKb|ßÉæµjÌ—Wh(gäDv3>æAwô¨Wì4ÎY)Ë5†ÓñÔ —{½ì1Xž9Ükp˜ÎçDÙ¹™¾5(;ˆ è=L'³Œh2î$ð®еPØ„´ÎPÒœ2×i½Íð+ºø‘œº†½oJV ›uǯÝÒ[ŸLé¯ïj^ÐM‹Qª²¨qRäÄã[à“¢Tlê­sÐcz4ýÑëV- Óê¤Y:–¦]w6Û Â¡syaº4^ßR/Ùü=û†©Î‹‹›SǾ"BÄQÂBZ7›ìü ¦RAŸñ?åÅŠÂ'èô½¹¹|èT+©Äaä]¡KòóÆdëíí¢*·j(û˜3Ó3¿Îü:óII=ãÿú*ƒìõª3|É‚…¿Úû^Ó"Ïk#-Ù×DB8Bìf» J°×>ê =ì’qYýÔ"b èÚÔS³2›Ð"—\8r†ÍjäǨÌ|te¤L-ídÜðÆéSØŒ/hc*¢:ÂhœÄÆra§È*W¸(æ¬6z~ YrN,ùµ\—4_€hX®³k¤»+àŠ‘0ñjPŸª$gÆjäl'j”à öäŒöP`i)T7¤8Zß Hd­†â8Yohn}S€óÀ±|«ß+…á Übú¼ÅÏÜÙñPy‘èÐ}u~ÕïÆùÜù•UÂÞ*yJC7C¸FkÅ´œPz/`Q»,Œrà ÅÎUt—b[/US5-»ŠÔAâÃ.º§YQÞÚ25"WYÃÿÍ—õèÓ ˜äìsê'“i&655XÓ7Ä¥iéí0-[±ÄíŸò¾Qî^…Õ»ðÌÿ¼`1§öP¦©†ðˆèãÑ긩òó–‚%;2ÚU¦=8ç8ªE]¹ ,êq4fªë‚´r:^µßŽzA©ûY(NÿœóÉ癞'ÏœÏf¢ÂŽ>\œÌ×§3 hž¸Ú”߬e.^„ÆûG@Dˆºþzùl–…2Sr.©¡\s¦òñYF<ïžFšUj&ö¶‹¸åÎæR¸ä ç½§æRåÌ^ úž[U›y@­RÁJ¦a=O…LñT˜âþ'UA$ê¢PrÎ%®ßOŸ”Uçrbņ¯_Ò×I÷[wƇqÒu56<·ÑSLtù|W°1Õ/•º¯ŸŸÜ\m\”mÂa˜ºÐo‘>eÍþ»ÃÂÀ–]•À›Û«“¨BœaÂö.§ãró† @à"×t‘`ô^Ò†ƒ cN²òRöB#wˆ€ `@  Ògk²‹2¦.Ò@ôÅtBWºl.)M. Ʊ¦e1ZÄ«Zr+Q›ç‹Î©žM î“¥âgAáB$J ŽßÚA³«êúê;àŽ&1–‘•j%·“·’îÍu}‡¾79S;Áª„d Ê~´ý÷ÿ¢Éù÷xjD"bÍRøÚª•Ú*8²(Y$³{ªÁd4 bÃÖ‡f©Ô6µÔ¢çòXî¶ZA …¬ñåPÝI{ÐÀ$À$2¶cÎ'Ï3=_ùU2xFñ> ·¹·a·jN Ü{nž”Ôi–DƒT žb8‚Ìå¤tCÝ‚6íH°Ò Lƒ£¥¸Û°P‰5·«$ƒ<š"n{åÌeþì1]û:®Æ4—;udP›~Ó´î$ zÞ,ô¿¤béB¦Ôé #sQÄÚOq4½ŠÚ•–«Yª¡©ÀFøâ±ÒÁô™\Ù„€·tÕêa¹èÊä «±­Œ­•q·ÍÈ_€dæ,,p2߳豟‘O\¼]Ø‚šSë˜Ú=â2šÙ_ú\y[æßü^%A¨y ›‹²¨”™^è<“Æ¡°˜Ç—G/YÁ³ñ Ë—%ª¸†6†Æ€åxDG19Ž 1ÈQÇVîÈá‹é:?aÄ¢li46j1U,>E—»Â*iš›žV¿>h‹¿zëŬ‡” QîüâtXߊþÐe&T:Xª‹&·¿ÊSõišìÀQ2eD¯ù::@Ö¢÷:…`q¾KÚÇ»ñP˜X3ø oýUoÇ¿ÿüÚòþc¿Rnª#†$hdêr‚mÏiìsÊ)•aÕ"°œ;ß¡ óÑÂöpÁ<_áÑ*¿v¿pSªµ4‹Yr–6’¶¿íØÑб«’Þ-½Êdm„=¸ ¬+^µ“‘¾+ ²W›n9¼£}ö„Ñ"^s[Û·0Îe =íd4µoØže°R´ !+½Ä(×·,‰GG”G i ˆ±V”e/”ßAB` DÊrhmµްŒœÁ]äŠù/+M°‡ó€¦Vk%`µ#6Äêj2ÉÒþ ¦çWi¡9Ÿ"i1Q*ß}­âê%Ÿ¼ /LËVÍá:«4/¿ôW‰J“CªNìŸÎ‘æñƒ}Zf#ü¦H“›à(îöj,cåÞú,ïθ7püwͯƒ[ñþ]£*¨jýGm[û 0¥oçÌÜ`96­LBþœˆ%Pr†”Çj,Ñ…‚ªµëà:Š÷ÛhrxJ´‡.¶dMJN9½òó•‡8U—–Ï´Ú¹ m<ê÷‹È‚[óêÝìÕ¦2[j—®Ž95†ƒR8 ¶²^\Ö™78*˜fR{ˆe/»5È3´LO—%€ºemðV†>5PtÏÒlÀÒ¦@ŸZeåÜPxj. ]OÈ_Ô•`Åû÷§‚§ÔX›se¢j°aôâ Ë-†R*osÝY¹ ¢×Ðæt@V•ÊîâY¨Tïð¬db† ‹›²Å1’bʾ»E¡Ëïõk–[]c> —/eó—sͽÚñý™õÍòg[¾•uЋ&ãÿ¬bÊw‰êò\­­l˜~Ø26mUMì°"˜žœ àˆxDQ † ¼:Ó õ·íß8 ¶ª3ÏòSæ¿W Ó0j+‹M(òQl´¸ªÀRÏúfar ‘e%¬[¨?fth„hÈs´ˆR¼º–hÚQW;–8¥föÕ‹dæ*OþñÝŒ«’¸E4ý6txû^%®HM,‡Å•g‹ïÓ™™¹“áÊÝyõÿL­ÿ^ਗ਼ù,v™!@Í"†·0ß6½©Î£qyx1U:öÛ”êZŸÅ·¤Š‰£ÀÃpQmáÂ(}šœ`Ô0íâ„r¹¦œŸ¯ôz¥gÊçSÉ;Ë-LtEÉ•§z‡fˆ¡l¥Oª4z±Çà.ûßò”«¡±ÏÒksjbŒ¬² ø¹˜T€ž«çÚ´Ž71,]8-ÆÔñöc—Ú¡0Càd©9,—Ç®£hÕH_usnQÿ-Bõê8ìÌ-ä*EÕ^ /˜ŽºØÍ©§h@îÔÇCf&vq*áÇÜ»AÁ«¿Ÿ¿Ÿ¸î™çò|†Ž„Õ?Ù#a?bÆ<:5bH¨ãN>ZÚ ÂO™Wù;tÅFÀ¸1?9%/s8JÜ.ømø—¶KB¹òBÙv7WmT>q ûЬ­YÐâÔRƒZ˜ý#â‚„ ‚-STp&ÎP›OF枦n ’Q€é¤n²C`ö?ŒœÄÖ@{>v²+ùNß;šÛÒ'­PV¥AA¡õ5„–#®¥Ïª5ÿq0[PÓªQeNñæÐ¸á®y0þ/VlæÔÖ(e?,xjˆÉ ¸dóïn%`8åÀ´JYG>,Ðêƒvª»Ê…H@›ª`û–#賎•ÍBi:Ld2ñ¬NÿüJ9å–¹ç²gþ€©vÅÜ–Ó{™ŽG|ñëqüx__ñç#~}ÅÇG8B8êìÈš ¾…Eµ¼æšd$Çœz4ÞÃá=/±Ú}ý£`9¼^¢jÛ(Ý$8Þi&ƒ…¡¿¿cP†ZVUÈš&м LñìêeV±cf 3zwÂ]¾ %GU‡ÏÎW±>öq¼:( ϯ”¡ðá>™™é¬‰TÚ½I»Ã…¯mê\ž°d7s/gÍ.ìÃø~³ñeÐ>Æw>g˜ÝÆ T+&Wµ›CëÅÛéf?ü:ïV7óeyÚòÜûnŸ¬ÖÃM°yTxê¿£v^¨:IüöÑÒ_Ø‚GäˆRD¨!X Eí¾«~2.ZÛ¨,VöDŠE–‹Lå¾+j‘ ´ñ€^¤‘¡‹ RµפùÐJ};RÍÈ&²”ê\ßÄPPJ¤ïº2ó¥3ãs¯²Ãl.þ)`®¿êÆCJ÷`¯púv+¹|d¿Þ\îŸËc.÷Í¥|·OÞB@±Â€ï þðÓ?0§6–¼ŠÛcCìÜ¿ô-pØSåeüêŠ)‡)NŸóøGµ÷I›Uõ9,°4²–õùz j«A)$™Î|¾òë•¿S>s®Qj0õjcý@XRàËŽ#>ÇÇo¿}ýåç×ßþòãoùúÛo_ûí믿}ýõç×_>þò8~û:~<Ž1]­IžuêÕ³;Udº™S1ðÔÅyeµéò͸¬µOÖ¯Ï.ƒ!çF8%Á²=47²vg,Ô¤Ã<Ê„t,¶ŽúÍ]ÈmŸ.®eÄÙ>qÇ”-´\ÇÙ?1þW™a_v 7²øÆÅ\Œþ©>k´ +Ã=Þp. ¼Ò6¹=;-T;hh9{„h‘òXYµ/w$“M—ßþé@8Fzä¿,Åò$p©ðqÀˆzS/ûÝ)w„Þ)ú**ìîqu«ÖÄÁ` Y,S½÷[P5©1¸ïJ1,ê¢ÓeFÒTŠ<Ñcñ†Ø{ ¾î|A•=Gô¼nÈ^ým0DQ?ƒca}‡n¡ò²{g2Ж&8ÊÞòòRåÁÒjR¼ºbíu‹•iºèŸbïôŠ®ÇG®7‹x‰Ê~ bø !†ã¿~<~ûíñ—¿þøÇ_þý¯_ÿ󗯿ýöøë×ñóÇãç×ñ£þóøñãøùóñÛ×ñÛ×ãÇ#Öiu³¿ÇSµÚØ} ˨M&%ß:ÙL¯6¦¬p!øZÝìlû°…§Gg­ØÃh/¤ÿT©ÝéÚV¼)E×dÖB)cj±Rñºjp LY–€_˰‘Ä-+ÓÕèÝ>`bìÄ­!sJ‰L£ª[Ͷ.Ý×X¾Ã0ß8Ü ›Õtä“Õôçb , µ:ô µÒ²µ6 ›Í«ÓBª¹0îÀU%¼º7±L[’ÿj@ëßšf¯)_sMH|º ÉÛì‰O\3žæR ½ÓjN6F•V)c¼ø7Â_è˘¿Å%¸Ä–Û&År¶)¥%ðk jMR±Î™2”ÞøÎØ?ÖA”ÃLÔ3߯Áá B 47;EƒÛŽõ»ÌJs h‰R#¦Ad:ãXÍsk‘ÔÝ~mùeûÌaæÑ^ B•a¥gÊúÅðëüï5§ÏÅz̲e?á͵:žÍ»=ðé„G~¢¢lh înÅU~úçÿ¥xªÈÄ*ã\Öu„ME÷’ŒëÄ6*bWGl ¸)@cŠQÑÉÔÆþ;5Ýʺø[ bUò´UÚªÜÁÔBú3‡°š¶—>*ÜÄ—ú”ññãñÛo?þö·¯üíçÿüöøÛÇoãˆÅh_*4ºVe£ñx|ůGüñuü|„¯byWø9°oó÷õœBe€)œWP'+› ¿—ŒXßvXPì@]%<µãˆ3ùé2, W&¾ÍJ`§%á<œÕGÞüþÌb=®Ÿd ˆ¥nÃ9‚éíÚ¦Ü@×ÒÖr‚œ“¤D>ºçùÖ–#ïÀ´+¶û†¦]‘¨Ö¾XÓŸ‹Ô‘þ¡æî!VQ7jÒ:UƒÛíÇÙõ8ñáý5÷÷]¦nŒÂšLâÜbò!ª:òßÇùÞwŸc¥ŠÉ¦‡èä©uT°„%ó­EÐ&£9HUÇzšA±µ¶B*ÊN«D3çÁšž°à]/\Ë·ƒÇh턊ƲVR¨8‰ñs•&¿JJ•‡j ÒTGŽ“x”a(˜j½é.ôFè­A½è ¨¥-©ª>£N¾[5íéÔ¥³}JìJ-£GéµóH:c¥äB<àÙû·ËmÀÑöŽÇôE× +7ÔÇ+‘\ÞÆÿexªhéZ÷ÍÔÃfÀð&ñzïVs[C¦eDM(µ;ÒBJ“€Ídâr¸¹°íÌTjˆ°ûÆ:ÞTþª(S_éùJßg>S£Ò-íÎSªg5ÜÜJŠþ×ñã·Ç_ÿöóþþã~ûñ·¯ø#„þþ³¬¹I mh}Qz…#>ñëëøŠáBS}0¯ª¼}2¯àC !""Œ¸\4Ù‡"é‹’v%2\ü ŒòfÙ€4N'ÓüJX¦ëaŒ2³Ù û@5øÐ]éR{¯Ô¢Qt©9 [Å.?À¹&„¨óÿSèªM­è>Ys*„Ž<6¤s¯YŠRÏÄ–haêéѽ›©ú¦êŠý‡& #b }¡B(i àÈúPy[]›XdøQz*-æ!˜^ΣR>è4–UIÛùžIÅÚ±8ÁŽS¼ç‡L¥$Æšˆ[¤ŒèbÚ-5øî©½I–Щ ¹¨JûÀ¼…8%€’ÊTÃSh3„:n¸tþ@ÒoLìoîºÔz©«nl|ièË×üù°Éo ç$ ÷øBXÙˆ•l{SE˜\Œ¼ýfµ–wW–Éé(“q/Y5VzN‰WDää¾65“BNrªÎ$FØj-ÿ®™Û‘mßÞÿ[¸{÷–¦àÝ:ÀMIÁ»ïý@œôßÒLu5§Ž]«Yê Á„ÖXÃÁôn˜Sl„49ÆX+ÙTrÛÌ5c…Òf-DÕ‡mÇjŒ¦ê'"¸Í‚>ÊŽ˜ ˜š¾_éù*Cj™SVEG1A´çÝ.1?Ÿýñ¿ÿüýúû×ñ#"vé}Íâ"—{i…ŒB<áëq¸¤LâûÁSD0˜J¹{÷õöôØ®*)•I‚0Ç%•äÔ‡¥àXˆÂ[57 ‡úæÂmû ¸SɃùÈ%•óÍÓº?õÔ'"E5Mžš´~ã|…KPêE·Ë’óžƒeð “y|`ÝøÔ¹¤8GânµŒò’ê!zKÛ–¶­J>*wH¬b5ŸÓë€ÇTºrôS¾³>œDà›}Åîv¹¢»ôŠKÙ]ÎjEá2:^Tõ.b¿âF5´4•i1¦*£j°ÏÒšÊá‚ `û¸µ»sÒH•Š]­×1S1b³Èó½;rµ\žt[UÀf.-;ÕÙýÞVãžee…n^l ú„§ÂviÂ哬 àÄpÝ4‰êØÑºrXŠSiJ£K¤F ù²E–\û¡õÃPª5áß©ŠJ ‡”…=€ónQŽ³Ëˆ—á\P3ƒmLð#ˆK?ëd†ÿ,‚ê‡ ƒÿÇV/pª±$6¨ `K[8Å0–Ð×ΚmÐq¶G\emrœîU?g‹ÐÐç!Óx¡+enC6m†©>z™ùÈÏçñxæÏýxfî™G'SiDj=“§JØCÜÒíëý§_¾þ×ï_ÿöñó–îã$hü1nž×§K7a)á¾}lécK`fyÙzŠç•oÜU7œŠÂòÂä˜Z‹d¬ï1”³jiÜ–@µ‹B£@TñÐø(ôÔk=~”Ýó.× áÎÅ")}ÐÙeÅÚÜ©¬ºÿ1Ì=5. ƒ3ªÚœÅ̲J¶\˜®ª¼j0çƒÇ^ ¨â°Å)€7V{¸³M×ÁSJiC­“u½.8—ïì·GG« ‰pagŠt’1\Ü£#£ÒÉH´×°ÚLÜpå…±2ެhàÄ,¤IQìž¹¦gon㘋©ì<¦ÄlÌ!Mü“ïx™¤¹±{Ã6\‹ƒª‘¥¨G¢j©‚ôã†>àæèì¤UT•ɽjÎ#’訮¼#1)í]¨îÏ‘&⊮D ©])ªŸD÷Íüɶ§ª¢5ÚCiz'íŠÊM¥"Fl ½AÊ„L‰🠬CèIFÆ€X z§á¿ó°žóà}ž)gtlÈÂN†‡ÕzºW~œ ýgØô޾ŠSE— ·˜ªB©¢ø¹è]3³µ‹€ŸMiu=¶cÙíjÇÕÿSœS®;£9u ªgòžz255[}›RØϾ?óã™?ŸÇs¯ 5sίFÔR £p♆Rï_nß~ùúûo_~ÿrÿÖì$ÅG‹tó„YÃèCšL ¶m»áŽ”2sÎGÿ¦¼‘†æUÌ [BWA -©¨U>,.<‹\•à‹ˆ•ªDk¤è Àù;ËwŒ§Õn¢ËêN*’—Ê ó‘óQ²òÿÉZ ¢gñœô´8t Ä4PbÉšq a$.dæãÈÇÁv«HÔìsFË´1½’ˆÙ»ªªÆ"o[ÚnÄ:xÅKÕü:f®É—A:|ÀËÐ@G/˜8ÂòBæâÉ–óšÉñOdéwõðZ|8æûÒÒìEå+/ù–%Éð÷oÇ€°j§aS):s%n–³¥œ*I]‰/Ƹã(Fì¨' ¼àò¾«GTY«%úraHí‰3ÊPª?ã!è¹™±N!k}|nëÁ0VsSÕHÂ.é9kh+žÕ7•«“.¯ãTýT”ËfVFÜ*ƒ~D/ìO†¨c(C·ÃRZB䋇^X¡a®ý<_.NÌò×%¢÷s9ÿNUóú Ô…|D‡{–•ý‚TgP·Õ(Lj}T‚ŠLª†uR-ž6P¹Í‘Â#èÈêÿlÉε†'3ïùùÈGÍLÝ•3uêKW´Û¨÷'SLá°aûrÿöë×ß~ýúÿ}¹KÍ’IÆGˆ"t“ªÑ jµª†þ´mi$ç|ðhóoàÔ¶)×yé­ ¤4ÍÞúråI §ˆŽfF‰ ˜!,EK‘>ø<šëÝq¬¿¼AËâµÉgÊû×Q©=š»îoÕœz0µMÞ Bo}ÝVnBºðDµkq*WF„>JeNo%àõÈù`Í%°«ƒO.brau?;Ê4ö¨Nñ•XgûISÃJï<.žÖhw%Ë®â çïÌ[RtZƒ×°ìð›žÍ<3–ë0‘Ëx$œu4[Šª çà þã§êVê‡+Ìm!zQÇ}g·1o s2¶»öõ‰©·‘Y¨¶“sõ=‘E$2Ç+2™ ʦ‰Lj.†îBbtH‡ÏƒžÚu¶,Y'áéô"5¬ã<ço^à˜å·”9›Mudje ½Í£T¢ô}4ãÿrš  s >^óŽÄÒœ€—ðn]oã5¼kl&¢Ådå¸Ëú¿¯ø;úψ՗8U\òŽ©–!µ¢QM<W˜µž¬!Ál7­Ü#håHVísôáÌÅ1w´Fë>iۛáƥfBÊÌ{~<óãq|îù¹s/ÁþäBLjm‰. Ë E ÛÇöõçß~ûö__ïß@É€2@™&¼nâ¯;707XJïÃC5*déõK›ˆì¹ù®Ÿ|ÆÐ[ ¢L[J &š{ •‹IÀ·7ҀĢ¿ùý4ÚÌ¿™5v÷ÝPP þ>Šb_=þ6 Ô¢Ag^7 K YáSkU˜ú|}q™’WT?¨Ö$æ<¥û·³`xJC¨¹÷N¹•¦µgø@F,—:àZ[ït†àƒòæ’£441Z¼–ÇÒÀRç!Ã)—WÞNx¦TƼë—Å5°¡¹àÀyÖ&œ}/·­­ÓûߥÀ—ðõcL5¦f·h+I÷ × ì¤–¬ «pƒ0溷ó—P$çÚ³•ÿàîñð,œß«Ô!ŽUÕܪNCí# óPÿ}h,ˆ°­YŸV•<)Ælý¨jý,<ƒOƱ ëê4g0¥9iBƒºò6‹ºG `ýì¿v©^©ŽX¥põÜðžé¸€Û‚Žä ôÇ)°pEv¾ÅtþCqÿÊ×ü³9ªÇ~p§ÚstŸ],‹Š-g}jã¶yG û &ºNÕ_j]Íʳ˜¹ôÒTB z—ŠŽJ%N þ¦b•êß+š;²pÏÏýx<ŽÏg~TxGã¡A´ªwËBk'j¿Eo>HH÷íã§/¿üöõ¿¾ÝNH¹úÐGÇá騔f‚q%K½Ð©1ãé¶9ç#ïsi~};yj=õîVmuÐ>cÎÉï "r°¨š³µ-v±Yå¼OýP•Ôö#¼ä«2 š2ˆ…ÜZñ4zQõU®p‰ø'5IùÏ¥ÿ~mš;L¢Ã“b†íiZBíZ¿âyLU{˜E¯óâbE™ÂIM`® æ¡mh¥k±;eð2y:#K‰DH¶ÑÈŒòñG>³€@M°x-ðÔ®k¶L%g€Ä}6—?¨~ a¡% ›-FoK²mé¶aÛpßpkÿ¼m²mrÛêÒÒzF¨ˆ„\±t²¡5ªQ³,’Ë1LDˆ”dKóc>]Û£¡8Z]èõÛ™&(”LÉ1à_˜ù´ý=¤K¡¶¾ “Óçòë篲͇Êf¸ž"Hï7¡]žÙœ§ló…Õé ."ñ  þç¨ ˜`EO]…˜~>FJ Oé3 é|™w¤O§3®‘—/ãSy‘@=E޼`E³Â¼PÉüwtÿßî¿á↨ù;Z¢*F,rówžÝ¶C˜ÆT]5ß“ÕJãTå(š©Œƒ³-ؽnNOÄ7èû—JÉœŸ¥zê‘{~f>ÌIÁ&8”è©ôÁðöhK·o÷Ÿ~ýú_ß¾üzK‹‡Éo‰ˆ¸Û0UtvóÖˆ¡Îw§´²ç½.È¡N +,Ç–z4ž80“ fUyöxZVN¯½pɸ &ßU%»N[#s{j¡YåÜÜà>`}í)öVT2 ™™si/ËY$ËË âë¸Ç¨š¬õ¥™PÐ… °½®œ™–¹þÚ•%––‘¨âøò¡ùšô/aíª²O–ª´Ý†³0ú¬Û*”€u>‰}©è]vuÙÞÎw?2ŒFL:løšXµF„aþ‰):›hžhÂù3f­5/^ŠíLš£ÃN®@Áˆ•Þo¸oé~“[E¨¸ßpK(àõ¶Ém«á¦­ŠVô°®vÿ}…™™räÒZ 2‚Á¯‘$*v¨ÁÑ®#Ø­;8•`Ó"(5÷4 ²JÕì æå[Ö6U[''ºÃÙ=K:Cž.lu|/MŽ¢•9… Ey(›u¸ú–;Þã˜NÓ+}V`´¿Ü@ǧÁš™iº¬$°oÂaSŤ Ó6Ï×éˆf;]ç.WÊ‹ˆcÓ±ðCax ¼r˜Ú[¼aO›EŽÿeÝ…|ú¨©r>­è€–ÀGîxÓŸ=µ‹8»©Wª~­­È0}( 5•DtëF·dùAYxÇÎÇãx<Ç3?Ž’(d0¢¸{¬;ö-¯pCú¸}ùùã×_¿þþ±}1cÕбÐ>ëË3ôA<½¢˜éòÞ„-óØóãÈ]{èK´Ñãþ±¥´nd!ÅijŸý4€SM~ü{q§ÈÜ:™fðhÚ)iÝôáS\XÆ€Cæ“À6Ù`±c¢Ê­âßÐo¢Ç³ü0VÀÊR–V~f23Kà/ãtUân„9C Áyç çäÍáÚ*Xél)m·´%©m½\9"L¿È ®÷› ôùeÈ2-Ï­UšÇwì¥AôQΉºT£dªyš¬ÖX‰WI®Ëƒ†J‡¿x[ZÞ`ý½QXLÜoéãŽ[º7TšošÚA1$©-b¥Ó¤ G”(3ŽLo!Ñ(aI%“%çú%lÛ†-uvÇq¶èœ23¹¤ñé´G{öG5WïØDX~b®õt­zfdcäÅ™Ù/½mô—;…ÓïÏ ЩœÜ•ïbª¤xì^ p5N› ¿ÜÔkÄcŒõšdN¬ÓÓ6£ò‚:CØøQú·2ûÏÉTûãÀ7ü¦¸ Xý¯àÔ)ž§'@ È+k(Øé„h[Ü +:ÐúË;`7Pí±Þö•:#µ!¤¿¨wQÏœ3÷ÏÇþxæRBV1xúçw ‹¥Í-Üã[º}½ÿôë—ß¿~ü¼!u±d¤f`P?—H¶W§FÙ6} ë<°Ï=?s>º»à ­j´Û Rag1Àô iÌÚpáªV{(ƒ»‚ŒøÐ™º³N•76v }– S±Œå t²›:ˆ ìâT€ñY3W=½…§ò¢TDsÜê#&B®µÈ™YýêØtøXj'88q¦Këïï ‹ù X?Ž”Ò–¶M9á£kÂè„r­²;xCÕ(©»<ŒŸWWcõ3SIÌUN¨sPÏÔ}¦,Qô#c xóï‹_D£ý5rdKrßÒÇ-ÝoUßoy·œî3Ì=sPñk$ؤ|Rr {bq 2“D.µ ¦BÖ&II‚*Íü« Ö²Ò?”~&2Å£‰."Q3ï™:;.Aó"?€Yåt<¿Êa€aÌ£3ÆB´¥K?ÇA}¬™Œ"ˆÊßl‹íP!tæ—ØT©B²""Sµ%aˆA¤ÒØU±&.ÇRøÆ¹~f¬ „ LÙ5Þ3òuâƒå‘ô„åÔÎÄxàòÕ~o×#sîÿ¥©ÿí·S¯Y¤¼LÕª‰jA‘©_]jChWÇËìê[G§5yZ–,ºñNhIŠ˜²¾}NV š+­Ò½i‹’ûñ|äÏÒÚ§Ž÷9-ÆsýѰٟ écûøéã—_¾þ~¿}˜[\ ÌFaž'û›»Võ"L§hÒ±ÿç8öçñÈy'¯ÉЦ0% DW¨ ™k@;ýJÛÝr5VA0Ïr{]wZYÊTüTdhUõ40¬Ýšäš,$KUÎ{)M=]c~€I#zxUs¯RÊ>ž+vmÔÓU ã;<™ÿ¾ŒSñ†£3–Œ€ƒ–Šþ{wZBj´b|ÆQ.tð8xÙÞií8ˆá¥ªtš´v Ÿ&Õ$d]­< J±>m#iiÌǾ8)ÁCüßA*pßðqWU?Î î•–MØAF`„¹4ZéÒú+wüj(…ò]pÛ¤X•à¶xOÅéæÚdEQ¾5MÓqÉ–ÁA» ¬òѲ4&S‰ƒ º ¤;K¤†¸‰G2Ë]ƒƒT#ÕÝ1÷œO6T6Lͨ•á¢jÖÕ–äOY$†N ÿZÌÔ±VPl ‘c[y¶øú|~‰’6â13uá%e<B¯!é YhAü@¨©2 èöñó$µûQ»êEê¼ñ™cŽÊÅN€æ9‡Ê>ekrÒaFŽwh,jÑáò豩T0zŒWù­Hu™#a$¬ 3ù(êóx<òãÈÏ£ÚR3c)eÍÌÛ©Ü~Ø,VÞ-m_nß~ùòÛO¿$¤’´L7ì À,~Ñì4Zµ<¢[aÛ_>92—ÛŠ¹¾©FDl%¸F§®£ÕéO˜Ö§(º" â™iNdΙ£ ÒáAiéGkðg¶† …ÓÄCsÃÖyñðß’žÊjM¾<è\t\›¢‚¼Ó³˜u‰é^2­ oð©.k󺿷~bÛÒ¶µN ž/­ú£³Å‹+ÑQ÷qÆSÒžÝ>3vôX€ h¥+©¡±Q›_úø'¤ULTˆz‡òâE¨0hˆWê ' eY™©³·„û ÷tßJK­„˜Ý¡yƒê\@Smu+Hµ€¤dkì-ÖØ”×gÁ¨ëÏs:Õê4ì ñ„vÙ ¦ŠÌŽÒ)JCÞËÌ¡3<šãõñ~ƒñùÚv¼öȨ-)4[¨`/íW«‹1û“!»Ú<»§¢lͰ?F˜ìì"ñô­Lhøkfñj‰í•^m‰øãù¹æólŸQ±qÆ·}Y÷ÿAÅÐð©ïv=ÊœÖ`BWT¶ªö÷!i¢Š‡† â¥2ñeíÁTGϤ‚P¡wS ôÆÚ8‘¤Ãðêâ–|ìùùÌÇñýy<üÜó^Ží‹»a> Mž×´êϼ§û·ûÏ¿~ùý~ûp® '¹DêÙL«ÿOyš#c"xçþ™óAád ^KÒbT%!Õh‘„Š‚ ¤YˆÌã õ¯å^?‡V£ÝF5pÛ㣩£ÅWôÚâý•H…“O=‘ðÄÙ…7‹8‹C{“\Àâ)FÎȳ=­… © ­—?®ÃŒCÏôoPÆÍ³DÕ{e7£.íìJøéú¾ÌÕ-ÌÚ.ˆ0løò¥·þbŒÕpzÁ;Éá‚}:´,¡Rñq/,fÓCµ.ø}BµïM³L)Õ–Á¦#ósÓæ?‘À PØIRŽ4öÀ?T:Ê‹N)›îÚtÿìïº'Uýó8Eò½–s¨!NM‘h$®¸ýÓAPyñ]®S^hâ4ô'ì€ýÓQ¶ªÊT1)7\¦¬ªYuÓï\: –Fùlž9߇@FÇ¥å†Å^q+Q.œôí ø`¹Â©”W¡³×tÿ7-6n;Š—dˆÿS-®e0уQ‹-ÝÂ]í€O{ž4ü®ž™VÿrÄ–(²µd\òý™Ÿmpê¹ççQz§˜és_BœŠ“n÷» é¶}üüåן?~ÝÒ&.F³ ³kŸ.¸µ¾ÏAtùŸ@ª?nÏûcÿ~4é×Γƒ-ª.Õl]WH‚ÝýË)ëiµ:@.>S„™=f ºÄªBâú¹~ÜÇƂÌöé•«¤’ÌG>òqä’ðx¯V0ê”ƒÄØp/FŒˆ9—îbbžÍ#;‹Ò/§þ-&>÷óêDBêÎÔ*Ÿ¸h‡9ÑT1IX-YEµÏ89É*¨—~ƒ)OÔi¥ùŒ¢Ëj…]K޾xd©WCSäwrبN%Ä+Úß•+‹H‚lî÷ôq“ûÿ¼Ã]ð—=b¡zÔ|+ªƒÌÓ$ ¸¥ÖaGIÌŽOÀ­!šê×½7âã“” ²ql,ö¬\ã9T¨.ákY3ϦW5%ޏnú~:8FêŽJ%‚:9ÓÊÒ­Iu0RšÓ"¡ Ã9}Òÿ8³YÚüTϤN«ý•SËç3Ðöüû•ËiÑ+¸yA[ýåðÛs’Þx}ñu³Â²h™CŒÕ±æ¹.ãÔßÈ3€1C^ÂîÑ "ØT(•îB¸C íØ'™z6¨­ó€B6¨Ž7Ž˜8}Œò×Þ¢IèåEÆs‘¼?gUüóã™÷œ÷\U%±­Z|V-DBúؾüòñÛן É«š^Ñ¢Ú‚Çg«gE‡l28€º#ÿb•@æþùüÜó“ÕÇ~ñÀª­ú¡›”Õùv"åì™;222ÎáK:IÚ´²ˆm°r'ôø1¬åro®³x†¦õ7Àböä[¢óHm¢ÿÉMñ#ã„„fÔ¬)m†jN0æ8jããhÉWCp‘í¸E\¹Ù0úQ1QŠúÇl _-°ƒ‡OÉè)3ÏC©à¦F¦ë@~i©Óõ±íÑ>ëÚB.ÛM望‘•”Ž 7ÄD_1Š6 #OŠŸ¸1©c‰Ð–«éS±ug×Í¥2rÆÞR¢«@Öksy [ë‰ð³bâÆTý´ºJmÀ0%IÙ’l5i+¥TI:ÄÑŽm<Žæ ¥Ý _TµŠjl?+QÒZV7]À³ E†G˜P!=¶–A#`mŠ=  t*¢a)M* ×£îœÚ¤úÕ²2ôŒ®Ô+ă'ýí¿êÁ8£#¹–Í…Ÿèø<¯\æ` q]ÅS ‘›e¹cúYËêæSœúëý7§ç½ UûÝQ¬(}⧸‡Z5óFýmåÅ0FKŠ$¢¨^@_:ôÖÛn«TSHêÑÏÝ8¦´…ñ:žÅ“Ú"¨öcÏrä.÷{„ÀKÙ;CRCJÛÇíËO¿~½ëÇÁ¥M­X›°¨ÂÑ)`‡ˆ1ùšóñyüý<>³šïáKŽlìè …îJiTÇ´t/¸vSXJCŠèÅC‡'ŽÀÑn¼õ~dE+:Š'ãÜcòÝ& d4’¤ÖIÿÈ/3?2ø27âýËÀ„HçÄ9ý=pjæ yb¾wúÒ¥Ñfz(Õÿ’vt :ç®OŠ+mTp'%MŒ¡Ô]ÞŽ+®ñ¡‡/•þ‘5¾“ü?ºÁ”'ÝY&¾C-4ÖŒô¾™8q¹<û %*Ýuˆ˜-—wªŸ9;þøR5Pm‡þR{•™/ÔW@6à6ªž sISÝß)ª†l©`Sl ÷-Ý“Ün¸m¸'¹—PØòO”<>®ê_ƒ4>uÏ#VÉt-ªÌæ%1¿J6M+ð¢7liy‰éÙÑ+m++‰Iô0Pi+òfñ=©Z1²´ô—Áù­¸vêì†èa‚`_\‡ ´é*»t…ñ*…ŠÓãzοR]×/ÔDÇtSÃñ›º?~hsÔo¡MÁw{{! ­G*¤ Ö1^ÀÞ²…õóh’ºõ88¢i”¬ÜDZ왽3h#è¿@ÔœEv{ÞŸùóq|>òç3?¼×Á©ÊS»-ApªJoCT_þòÛ}ûÆ0…­ t(×»/èjSqâ­®¨áÒ>ÃÎs²>þ~fS£ŠsìaÃ× T•2Œ À®‹³F®Cmý1wNôLœËxóG:¿\Ð]0;^FM¢‘MáŠÓFl` Ñ?òqÔh¨Ó‹J¹à;|qkaõIÉœZŒÉ»à¬1"ÁˆÉÓs¡\ óqxÑ& m7¤äªBÝ{4ƒëIvâ•ÎÛPBo$(ø´÷4»óU¾@šn¢_gJ˜_ÃùwörE§°ÑÍ”-CÃSdÙXŸ âÓàì*Ünø¸á¾IJáõŒ8¬Böø*zÄ tï ¶¦²TðüЕWpjÉß…m¸Z“g—€ ¸mé~“{Âý.µ:«´j¥”Ú¿ßj=ÁIŽ­i—!‹ì¹M}ÙÓ‚e'Ä9Þ9½Ä9gX¬ N?ej× ãxžk˦‡~%žU À!;C§Ô‚îM5˜à€_ä$pOü(¹Æ‚SÖVÌf¾îNÈÕGøI WTØ"‹ˆ×dÞ“ÅJGu ‹a}ˆ=(2‚Goêþ¿Q䂊½|ùJ4hAØM"GÓ2 ¢¢ iïß±®ž .¾â€(ÜÇ!µgºLJ%@(ueJýædf>¸ïÇã™G-êÁ=3×*J`Fœ]øÔKÊ@º}½}ûéã—ûöËÐRŒ…P0c©p#Yú)žþÈùxìßû÷œw¾â}¦KуTY±u¦¶é˜î†.ã- èÔ™H£• _Ñ· ¦:ÙµÓ}œq5ÉWär}±Mª¤Çý»dG)çÓÕï°ªóYÜ7º­&ˆ±r„º?âeÁ§2¤«—bn±Ò#mÞš‹M²ºÊXŽÈ(éå’êÔIw^¸{6•†¤Å©eÛÏF·È‹$8 V|=C“ê¡ gMÃé6Í ~"Ç‚ˆ0VFIß ûÚÙ—l ·î7I›/sÏñ¸E;Lµ}ÖĨ]T{5 Nå”i<þbéíVêT©‡úÆRæ®î7|„zK·MZ+A¿ôhæWÈ–[†âW©sL" )²g9(–¡ÅTAß4}V¼ Í„5ß)Žîj…}Ó!švžß䘚ˆè–»p‚jx6Sú\‘`U‘>n5ygoWmá/HA\V¼p‚8µ.U0‡ƒÉËÉè*­è™Þé?­1…½æ®ÎÀŽ‘3ë¼mQÝ~»ÿîº~ýׯôÞdšè*§.0 |Üi’¦Î+•jüŠ= €U†FªýÂC)SÇÁç3?ùñ<{~ì|–ÑÊ7ǼŽÎ‰ ý¼U!ØÒöåþí§ûÏ÷ôQób[¬9É€µ!2?‹–ª·qx,dÉŸûßýû‘ÚIÎ3Q×QpUê+•2 &©ñ)NãœE™ª\5ÿÂg¸8®vÁzËÃW€ÂúéßîО¤kÞ©r:òžóÎ|ÔÈý`X5¤ÅÞÉf÷Q'%®˜è£!v"6˜ ÅE_ çé2úÞY¨N/ÕEXZj¡DÉ>³ÛÊ)ó<µ†öÀåaÑtmY‚Ð×g’Ìã®UåR¶ÆÄK{Áé`¯„6;íå'Œ.Rc: ÙçÒe®:B±OŒk“=Ÿ‘ÒýŽ+{wª¼#À">zTífC›³|©Gé§i.õ£Ëè?)™cÕ™9 [ÅŽ°€äð‰4À-÷ÚïÊÛ†[ESr!± G2 Zñ°¶–qvbµð¾ÅYÖÝb4aÓ Æë¹XjVj²q=àŒ#自˜}'‘°[ù¬ôÏ1CÀy܈ÁPæ\„29 ‚ÿÉÕ¢- R±!¼c¼]ÄÏ+岞‚¸%ê äχ¨N¬-W©aŽgSWµ“m*g?ö‡‚Tk.—vo‹½Ÿ±z>‘ÇÆ\ŒDØË.ï€"ã+EÞ_tïZ­pJrP&üh­ÙhâþR›Ð?zµeB·® ^ç5‡?:†-Žr.ëÚ†û-}ܤœW±b¬BÃ2LÑÓ¸8ôÓ–tæ÷6Kaíy’!ÿSSË5—ªÙÒZ®Ã¥Ò;¡å¾á~“ Û†›®Ã²7i‹V%¼uj)*`E§<²ì;sŸé8ƒªÓa»»âT,ƒ î ô¨È}ý´ÐäE8 víÂ+»äL+j[ûd•W|—Ä\ TºâX Ù-;Dmÿœy ¿ ''Ê ÷*ÞÁœ9ö30Ê÷ÀŠ9ë1eà,üXVE$AÆÀ©3á÷þ÷Ö[¸äLfä ]A™6D=i¥J…UbŸ(GL¿šB[(ô&[ÿ¯Ï\A7S²GÞŸyæÇóø|æ†P󞙳T`ÍpŸiÿú<¾yg¤âž©úŠw@%tRtz›2æ¬ÆÉ,š¼¶.Õ—×¶u{R4•ˆõx‹ÄóÕb±ët´”ÉQU2Sc/ÿd&_6”ø£ñ{f(DëÔ\òêØÕh”jÀ9•þMLú‡“ŸõQdÊ⠳ǽ\Ú$zY"Í9¼1qžj•·Y〽)̹òã„ÕhÍöQ2jäåà‘å |œ¨~Ñ’±);ËI½˜À@ ¢ÍºJ¾meæ}‘{ˆ  Zy u¢›{–=ãÈñÀ©DTÚj2®­¤TÚ­%Pí$©“•Œ[ÕŸù|æçÁ2Ô_µþÑ63ä*ÚöóaIâ”ÖsU7(,ÑmûøéöÓ}ûÒã’Ú°„Øì>—†EEC†å$c)餄}b“@EŽãñýùççñ=«yÿ·4„j& !ÙPw“™¯OŠÇ߯oòYí˜FeÆ7\÷c¡Apg®¹Ï蘆ñïQ9˜å¼¤2·Û¯ ¦Ñ=ß[6¡ô>K3&H”§mÊLp ÷SàýLqN'u]éâ§äôDûò$BõÀ•Ü34R*º2ApÙˆHŸç³ü©M%=¬PØ7C°$8Dr lÁÙ°žâka[ gãƒzj ÿz`lµ#bd”Ø¡es£.C>«·òeÄîx$Ù¶t¿¥û­Lé¹$À4»°2ˆ9@ж™v³8ÇyœYŽ\5<Šv“ŽÞâOEïyEŸhƶá#á~ÃmS£-Ö‘eyã~ú²}í9ÿc)†q„9Sõ)]*Fbï§Ø¨eèq<þ~üù8>¯ƒtÎ)Àò‰•  ^닞  ¥#ºúŒò'Œ >\—n†½ú÷aÇ£$L½+:ýݘ›•ÐEVÎ-•O-§ rö⪾mG¬¯â½«XFVNÆ$L½@jB®‡Gç_±¹iƒ9¨Çq$Ÿué? ²ÀLwѯÎGt=Ð;kFùrñgæ,äü7ÂxEØ™ª Áy±7Ç•G5N©³{_‰y%²åÑ5‚zÀJ=õœz*Ôlðg ØR*¢¿HXÛCÏã0ª¤­£[$ü‚¦ËP"ôɈúí¡†[ª ±µëB ·$÷>:HE¨¯uÿ—Šè°~KelkcV\.#Ç9£eH,#dVa¹¶¦!8ŒÑjrh?T¿ÎD¾éÏ nLŤö+´9Ñ™´q¹4à˜xjªœÆyÀ²ÑbÅJžMÐÿ°\SØñN_(cH'ïìÆ¸°aS^ÊL¯E|Ðî{~î|ôr©‚V÷ŒzHÍFe¯ =mW§~·áÇ3·¼‚V6ܾ޾}Ü¿¦ž2؇+ÌÍ®ÿ÷X~R)-Cæ¸ ïf§rgð,|ìÿõøã±–Aæ×w©„Íð:„²ÂÕÔKÆzH•+(„x.Ä/²ñìd±ø,ÃRµ¼8,99—AN7iȤæ R6á¡ò\<Ëò#!A°YH«zøëÀ|ž–oöð‚>5aô˜»ž¢85Æ[‹Æ½©Ööz¡¦êFksTNAã” Xa‘–m$°±ÝÜÝ ŽP䫆i…µ–}–[þt›§xе¨?‡t ")á–p¿Ë–ŒWJ9~àM3xu îý¡–xDh]i(gÉ„ZÐÌXÏѨ¯³¿ñ”pKéã†Û†¤Àk˜AQEk}QŸ[ëØ0*tFÚQC^Ë^‡LÑãÔ¢¦ìü±Œæy!ú)Š:€†!e‚%òìæ3Ñ=÷최tÚÑï“Ñù)ÓY¹·è'mš°yÂÄ1+ºì4¼\ßl{rÖß“³që¨TKA¿hÕ‚™½XÑÃ+™ò¤~×9F©;  žUàÿùycS)¦€TxñžƒðJCõtÕ¢ÊzÀÚþ%gÖžÒ^³0ó(4ÆQÖžBÊæœ%ï¾Þ¾ÝÒ¦†žØ3´0mòÓ+:®Í+hØö¬RÅ7 Èü÷ç?ÿØó³dßâU¾Pÿ•T[G©`›ç3ÄçËÖÜ6CUÝÀû'‹£XW(=–…G!Dˆ,+_p¦$v/ †P+æå¨Ãu°Áyˆ¡Dgƒ¿zæLÂëÈ@0gɇzÀ+‡”ß7XçË`‹Š¸¾ëÇíó¦.sü_W àF¾õÿÒ}íŠþâxÜ…8…?`zAwQÈÖ~…2MdÍÇÒÞfmæ Õ~Z®ß-ÉÇ ÛVf­ˆ5S£rÎØO ( Jó2×ó]B¥erÀ±‹,òI0ªíµÓòYCÔë5ôôÞZP–ÆB…UÉb&á¢\¿6ÔÀŽðÑj Kµ5 Æ€ÀŒ3)‰8k)YÞ64¦$1š… B9XÝdÊ7Ó&Û!S’rkÝ6”*Ô->t|`BÀ+ÇýPæâ¥(’Êœ•|:ŽòÂÌ“™Ë«5‡èé@¢Õqú ÊkòŸN³»Œ~hÊú„æ*…nbEØM%¡ÖÔnÚ¤º mÿÄ ²·­ôÐŽ_·‚_“l›†­©œ1áZÊÀf3×*Oôzô9/œ¨eê\ ÷'žGÁņ€d½´ œK/gàpqêõ'~m¯|´&Ð5N æ.­ ú_¢VÕA­¿*?QK9Z8@uâ~Èqä#Wü:~íùè$k®Ð6Ü+fhmÜÊM3öÎx8gÄÐȺ¼C}æÑ ê‹ì–n÷íË=Ý;íŒ!ä’¬=R;¡´«~xî PHk¨‚È‘÷?üýøã™­ðöªî¿2÷ûã!´ÏOõ©ªžrzE3 rÁ2bZ*Û«®.·q=˜7X.V(4Xé:¥’¾–ã(3þYÚ§òéÚ`w;ýñ‚¯5— Ò?½E%T£fR*:±NA6Àìøð|œž'Rß,ú¾8ŸÐ†ÇSA𒺞 O-ȳ«Ã »õ4˜¾Ñ!:Âäâ9©&ÉÌÚ´ÎS˜ˆ –ü7«ÂÇõÇá4T·1ÂTÀy4,_ÈB@L—™ °Žö¶­d(›2Põ,c… ŒU—6NØô0¬¢å‘¢/Ë(ÕïÑÛÌA^Ø€mÃí&÷M6cTjS3¾Z¥v´@’, Uå„‘3º) Ù®¼ÙjIs¯PÂŽðáu1%šéOÄÝ&Á,<^°® H}¯ßýܘگŠ27à–xnInI¶„mã-$Š-¡üѹ%Ù6¹5Jµ€Wó/øŽ4–ÎF‘éîÃ+Åp¼·¢ $¶®¾\ûMO; ç—_êÃÖ± ‚½Ò- kvãlÌ7YÛÓ"ô§ú[ø…$óc.1ÎROÁæaÍlZH£ZësÜü¶idGe9rËjì)O%-¬RÜe:’ºÃe¥òLàÁ†WEs»o÷ÛöeC"ÌU³®Í+è0ˆO%¤^+l¶:KM E¾?ÿþóó¿?÷ïGÞå¤8æm“‡=«&Œþkôb¤ùZõäâ¢cOOŒ ¡­›6s€n$Ǹ€ûVæÆõ¾^*-”âŸsK:ky+ñêÁõÙuh×|Ã͸(G+ýËÔ1ågúçQ~‰½ƒøâ$¹æºë‹ÉU÷¸Ô{y15àg-Wm/U÷·H*ÃW5%­À\ÝžÖÓ˜RÄS¶°;•„ñÊ»osý!«!zË€r¸Wñ¹D [Á°õú0œhñåTs¶¢ ž‘S)bkÁ²!ú”°m¸oš7gg•GŒ9•*‘€!ÝÕr_Fr‚ÙRêÓJ²áTá´ÀÛ1ðzÝ>6¹o5iÆMÒ+“ˆ{禅ÉF©ž™3…äÈ>íÆ‡L9X–uŒ¼~,õ£à)î T&*Ndq ç*¨âÔ{—ª¿šÌùšž¦¶ È& MÒ‘è}“[Âm+¿‰[A®À–°°mL(Ü* Šy¬l©ú ·š’l¯5+â<íŒÀ˨ë´k ^!9Æ[(ÎÉ*^-5íQµ|Ë–w]hÃÒÎzøSpzY^ñ©õFbnóù—ÈT¬˜¡Ö"Ò0kÿ5þSÒ¬j,÷Ø ¸Î0pQô¸l8w5ME¬¹âÒ'~Å –>¶[º`2‡¬-“Ä3†H„ØE…ö%IDžÇã¯Ïÿüõù?Ïã3“³çŠ2 C»*ÍCž4TUÝ“Óm|²hê¼"0 PY4Aû¬Ew:©ˆ®x×'ìv¬:Žœ÷|ì9ïìÕS>l&úì‰õY¯µók’þƒ ˜i>·ùMÔÿËŒS|aÂ[Ít—_΢§éSŽt©¹ÈÀ£©€S©ÿÝK&RKcn$5ÛWR‡«©´R˜vî¸m’’•3¥*pQ.Ri²Œv9+åB]‚LÙK4/§b‡ÅÓŽY éXÖ¤ôÐ-ð Ow5Øå—â~BS•=mêMÿÚäÞ~³:PATº ¬CTj|jëUèÊœšP±iw¯–wfÖfÕv#¢+Èo>}ÀS €e%Ctˆ3²*®uµ#xIïôxje2Μoì¼Ì®!ìD½2£‡Ÿ#îÙS8õöû+ï²¾…Ç]Œâ‹Ë\ØV{=9ý‚ÄáŠa·T¬ûûöÚ™Z]>¿ç°äµÝcÃvß>nÛ6[·”ò&f¨Ç›û)Öß•¯Ê åœÿzþùççîùè3éýÓg¡M.ï ǘ7°PµïG˜c a¯\kƒ ©ßg§¼§>D8{ø~ˆžÃp”jà:¿’A:•ÏuÔ‘n˜ŸÃí1…¹9_0NÇ 1†˜[ÚYBJ©ÅT!uXš$¥Z‘6ô\´ŽJëŸUäšÊUÎ5¢KìõëK¿ÑQró WÚr‹à‡® úü!¬õU9·]g‘Æ›"P á¸ôGS)Z µ Ýâv³€³Òúôkh¥©›IUt(ÓQ¸A6œõˆê:xmKì™{¶În—feÝÜ7|ôØWõš’áP xÁ´×Ža¢»\ÉÆïfæŒôÝí|}©ÏÄQBnìE¢{tf¯dÔ´dš"=t=ÏüE'5Ñ×m*Ó?TÐÈΊD“êô^(ÕM¶„”*ZªŠÇO Û9añq†ƒv•¿ÀÖM{ Ú©*ÁN)ï0L^„ž±‰#X°Àd.  +Øÿ ;þSÐõJb7¬k×ÙŠCF|ƒw«n¿}ü.ËO‰ÿ²'õÌìÏÌ+á…ÖSìáK½—ÌâWT $6Ó®‰Gîy²-ÿÖü>Ëó¸¥Û}ûÒ4J!¨Âø°òÿºušº›Äœ Ú¼?ÉÏçŸ~þ÷ßÏ?÷ãIÉoyTVOôŒi^e `€}i²k!>]Ëg«„¸`ß‹eÆÉ±jÑ žNí« Gžÿ~ä½§¥ sŸºÍGQœ¨â¯èV?QASk“S‚½Ýü;Àu²¨ª6ŠÀíã Ž(¤Àô*·´ÿ-mÒV¨Ó‚2SÏj0t4øæ´Ÿ”RgaÑ¡jMÔìßaø8™ÉG5õnAËqðL¥!=U톜¢¤tÞNórëBh,‡Î0í ¶DvnyŒJhÞ"ÆkÆÉ4FÉÝÒVsI[VE“wte”§Yƒ0&ø¾, 1ƒ;Uq“GÕýůÑINõ·T&¨Q§V»Ï€4~u¥K-á¢NFP(;ëø>BB„;åÈ(îUÌR&¢s¶žó_Ynt†ð+36&ÁÖ¡NiåþIŠF­jþ†[BáP·b<X*’š\ ÝšáhÑàª>Aˆ–¿ýôŽM+ꀬ_ÐÖE¦°ÞŽ‹rù\yÊ5±*¯_ÒëbÏ£,L_Êòò ×]­0Ÿ7„ŵÌÅ&¬ñsãSyvÂÈGöñ«Ã«'Í«.³A䤽s’¸ª'R*"\³ºQ/ΧY0e°Œ ¥ížn@"$ Éi@ٗɈ}¤à}æcÀÏç÷?]ñÏ6‹ì9E¶ûU›­ŒtGHø¸/¸8XضW.ËØÎÎÃý:8½ dóEpò"tÝÿ2K3êqìÝ–ÚRà9õéÎË£ ˜å½ÄW¤q¤åcn «3sÜ™ÚÁOG©,sŠ)/ ¶æ¨WuzÜp®Ù³†¦ï#¥¶-U˜Y±g¬ÒþÛ:M«¬Ÿ*Mü¦ffÅä%$ɵºA´ÜÔ“íBM’%ƒÒ )6!Ú™¦ÀšÎ.‡7Žïü˜,Êþ [/‹Þ´F?™ÖŒ`}Í¢ªÕsý™–po¸fœË?lÕŠ2ž#`²Ir?äÈcX·Jú Ûu)ðÇ]n›¦¼}ÇZ“ãiÖ¨@ …™rÔQ‹Î¥´_ª„”#Ë~T?(' n‡ &¤eè)óÔbÒT_Ay 8ÚDÔÆ‹ŽÑü£÷$ŦÜf¤d«ºG»ª©¯£%°œšÚ`emIÝ“õZïER¯'µ¦å„ñG˜ÈŒFÉ•wAØð-yæ:}µÅž0WíªÜŸ÷ã8޼ç|UÎcjjÌî_8×)†øá•B¬ò«Nvº:ÜžÙìsqUmdÃ9óÄš)ìÙž4Ç©¦ÎŒ¦ EkoãOSµŸv:§õ2©éý.…× ñQð®¼jÐOy‰ÌÅ,ôcc`A˜^ãд½)éE(êûL+1 _.î@Ï…ÉO5ãu©±½{š¹´Ù/uë„§éFŽæˆPMMÊ¥ØRÖ‰äÇtÌq²:¦c V³ÊíïYž‡ìy¸£là„Æ<@’Û† ·­ ³CUKzµ÷Ûƒ¶Â­}1­õȨE»úü¦®ƒÊKå‘‹E´ItŽ&#^¹Fó9"G Nh4¬J-ÝY¯èlå}ù'l›Ü7Üê\uÎdGþÕT½§@} ³/pÔZ-€ã@¥ÍÃ:›\ÏÕOªºíå¬4NÓI&£Jéânbñåx…*äì’—týTë„ÈÙ¼ö†½%Q!åœóó"zzÿ°¢jqpÂsVœTr "¿fÂÎ-hÁÄ9 ~“ êìEhQá%Á€$Ò–Ò¶!QIúj¿‡‘½ýt±"YøÜ?ÿøüÏßÿçs/ÁþYÁ'Cú¿kû@8™Þ_ôRD§KSܘæ‹M†åå›o`ư8ÂE=¢ƒíÌÜkQãÈy?x´Ù©`qÂùqõjJ|ò\ŸŽ°¼aÉ~¬$ô ÏWÐÂOg:œL3Òk·Ã¶ éz}j…©IÚ¨¾ µÌð«L§±‹Áƪ¶[±ö p—Ú‹JµjÃhýÀ¥—+W.ã ‡·3ÓŒcÁvØÚhIA` ¼{/mðýM*VÐ¥q± ࣟ.frU LU>$ÛÖ®mPÛ»žìnƒHxŠCvm¸»C´”ýàó`Î^uMoá¶¥›lIŠä£*äF•’ZÊÐYFÀ´ó–¯mƒ¾È :%¯§6WAáNÙ3J:•ºyÈSýHVÀ©w醒¥Jé÷Ñ Œ×‹Zu¨„tÍ–º'Ü6¹o¨3øõ4£ÙÔ<¢âª³ž]Fog…Ñz³´å±æ‡‘¬é0w” ÝŠÃÇä¬8œ——ñeÃÓ*T K)î±òŠöùï©âK ½ò@ÂòF;Dø§š=~Òó_©žX8Á©3J …8m€5Ne°ØcÞpù”ñ"ØòÚq”R›Ì#ɶ;Oa)ª½ ôªÆ“;.#›•¿­«ÌŸû÷ÿùüï?ÿùÜÿÞó3k[ªI˜l$/ÿÃSå8+÷Ž,e÷Ã4²ƒ™Ô2$¯BUˆ«Ñ„*ÛŽ!_Pß·= -ïÇQiÔâImÓý¤Æ –'Á+G™õuÖŽ>£L,Oƒ„©`’±E5²ßˆÄ“éáqz2¤6›Ÿ T­vRŒ±üqÛ4(GkæÑ©û á‘p”§)¨Ño™œ‰R&Ü!²FÔ–•…›0ƒª‚0zÿp¾ÚqûX•£»9ÇJlÇõaCTF?≅›ÜàçH„a% ¡ºT“ñ3˜ëàœ§æ­n¢Ón{¯k&Ÿ»ìeØ?ær¨{(°mòq«l}Ye‹ k #V„–E)3d® 5µY $"dñiÿŽi!Yl¼5yPž¹|ŸI©çy$F¸a*mðr)¡ÆSõi+EJ¤Vƒï=ɶÕ9*tP8œTTÿ¶²—« ´MÅ/Úžó+M°ýYèuÝs\7©0Œ™£º‰+µ}þV pÍ‹M€¯×Sšïqm/€õ’’ß1×ʧò%31?”¥—ÿGß"_âT,L$´ÁÉ6mE^úî­YhÂ5@Ä‹ŸñRVéÏ)É\Zÿ¸³«¢Æl4û=ÚÓ çFk_ïÇ)gI9Žç_Ï?ÿøþß~þÏçóï#ï ¤r ¢!×L¼0%¦-Ú¶G‰ÑÕÀh;FOƒq"ÛJ“Údt8ØÓ2áFJÍöO‘Ri–ƒG®Iþ*'•½ÕñŠñm k‡Xö0½éA’õ "fg/Öø“G5šúWåAZC|K!| ZŠoÁRÀ–R#犵ڒè0Κ²Ô¡,#Ž”&­¢•¼JËhff%P1ÿRõ‡J„![p³ùK£„¡ 5à ˜þ ØCÜè0*ýLJ)ªÌ88Ô[²¶‘‰Æ<×:ƒ´I°X„¡¦¨4×NÏ}˜*'@ÏÞÔ†¯Ÿ{3§.tqmñJÀmÃý–¶ÔK¥ZÀE ?ÚpR¦ˆ ¹ ô5é» Jaß³æO&$¤fnBÝ\Ä …22!"8òóûóûŸÿüñý?=ÿxßëXº¦U(«CäËê×PQ8¿P#ä–Ôu j9êy,hò(~T bÊ…¼©6u¼4„ýÚ5,D_À´c…½Sˆ,ZX£TGî=0¯„žPÐÍ@p) ™*úlD.“µ¬0çˆIÒU·ÃŒÛ–î· ° 4kK`·æMsů˜–Z]™ºeÁšWQlµG.‘w¶ÏnùØãC;qR zNñ޾c»òù¹ÿ¾É}«S›Ô¢”[q¨í·Tj Lk›óÓÚ¾„£!s¢–Žl)ÅIõ¬ê™‡“†<,'bùZY¿x†@y UqÍ©óå]°W÷•‘÷”[]}EåS?~¿üÉ©véí¤­ÓÐÑxŽj:‡®þ X€[¬p*ÄÄ!]@áµ0©~E;_£·çs©ú¢ŒŠG>žù¹Ï#﹈Lu4.›4D“:fš÷¼>ÿþëù?|þç¯Ïÿ|ßÿ~ÏÒ繌Á€>¡Æ¹íïØv^'vô}iì,¹q’UE˜þŠaÉ+wrŽc[Wo?á‚<Û¼Ô‘ã8öƒm®Ÿƒi›Îvv58×džՅÃÿ`Éðn<:¼ã¤Le‘³¦Ã+ú 7÷cá£RâÚÌ3¡¸\êнAÖnné>…'º›ý£€y•&i8A*»“»éæ\)ËiZ?A7›Š5PÕ-°&©JâØ!ÂØ¬åªå[Ù–+]¶jg®Úퟌ6D˜eýÊ1Ôh†‡à›<í> }–è—tK’’^ƒ— [A®ÄÍAÀäŠp/dªo¢š×§Ñ‡ à¶I©'P}ÍJ°W#ÄÝÝÃÁ’-ªi„‘å§Ù¦…EŽÌ2þ¥<6›Õž­%ëŒpCXÀÁ;¸ÌúëTjª •·$÷„{’[±yÔð ½Pò(ì"±Ú ©ºÑÈS¢¤<Ø-¬ÊDU¬P‚’cXábµc…À~ÐE$ÖUã©&e`kìÆ…ÆÏǧzéÍüÐäWa8”?5æSì¹å?¶‘ú—öB̃ï?ÿüëó?ÿùóñÇçó¯çñØóÞ9 ÉÁÅ– æƒ ¼æÏm:5»Mµ;U#=‰ðsr1Ÿ>“ªÁ[Ñ€c ÃÛ|x$EJo> N­ñ¨ÇÞݨ¤’ Ï}vž%+ sR¡{Ì~ dáäp€XSˆ¸»\ÉÿÎßLú €s“Kħ1Uxª’OU/T`M§Ç¨5ÐVôGcáDÂO Úð\¸–¤±Cr£É á«hüÊJ)+¬V-ª‡«&sXÀ ¸ÏHw¯½‰’ñÀ'ˆ¶l)¨,Ö:÷Ss”]ä°py`²ÍÍ09ŽØ†ª¤cr¼FeëæÜhR”'+\Lvû“ÂG– ª³5új[ÂmÖô%PÀ?Öi8J`Ý …ÈRÉÓ«HˆpÏòØeäÐùw`Ö ÷Ú&Y Mnlà‰ñLOÕŠBinƒ$ðžä¶á¶ÉmÃ-±dØ“û8å”{¯;¹†•æ|OCÊcù¼¿¤M£ N]ݺ:†>—©<о±ò}Ð쾜ËyþˤªŒnãe—ˆü#õmt¾J9gŒo§Kjû¨VÙB‹oÆëÀì5ô^ÎÇàlÓë‹#9÷ê–60S2çŒû–BÅ…zη(Çé_á^3KéÑó¹>ŽÇcÿþ8>?÷¿ûççþù8¾îßÿþþüû¯ÇŸ?ÿøëñÇ_Ÿ|þù}ÿ{ß%;‰¡‹:%N›u|> ß¼1/bØ>"ÏÆ_i†•fÛ2¯‚Aõ<ç`^Í“«ŒsÃÅÖoUòcXÏm¢ßËt?æœ%÷ßè«Æ×`±¡âkãÓ>Í!ru^=$Ð!V—ªšYŸÈC£I`1}ˆE×­2SJè’êTOžêI™Šlë<Ñ<‚# ¨e ¸&ÌpB™ƒa9•ð8Š Y0vUú(iyo¢‡ó‘5HS…S¥œ0þ¾(Ê¡Ú ù©¦Lú¬öâªehÙ©Äcü³C©ý«Î*$í7í5•V°‚æí¶jˆUˆÏqÓý-Ìäžù|²8Sq¢"˜eðë¾á¶éºZz#…jiøÏ9Œƒëmݼ •¥zö£Æ¾†¤ Ç*Á@OÀiÁ ÌéºæMÑ}Œ¤Ù©F†ÿ†;… Üš?KWºfÕÓ#ž5…¯Ê€Ïd¦Þº¡‹Ò€õê‚Ãäµjáê„ f:Á€LE”ÒÏ7¸`´$+;¼ý?p¨^œÇFä¡n÷¸ê£â9¿Ç9[~2Qý+lpüÛçÙªð̾LPX~CÖĺþÅÏåû˜âC¥ÖwgÎ’{Þ÷ü|Ÿýûcÿ»"ÔýïïÏ¿¾ï}î}ßÿþÜ¿?ÇžŸ,Y¹QW™`M«x瓾>ñ¥þXIË/ ¢«ëBçôœl…à`7ÑmN½¬õ Òçfªè›ãØ|yg©c^j`h1ªÍ·ñôóz}¸z(Â¥Ë ÇTq‘ scÖOŒ3Ä`ÑgüÕòï©–’&ß%‚“áGm;…Èå÷šÏX†á˜9Sú¤ÔQ|Ƭ¿ò{›”SªR¨!ókbnÂGÞd¥¨TÏPB ~•:¿EUT5L UÒiÿ*X¶*ЦpzxÌT|¸s{à…o@VœyeàZƒ­ZÑ€9”,€[nZ¯˜=в!ñ¹óYœiúâ—Ç6Õæ¤zÁͤ°I½‚þ Fó_´ÁâÜ“£ž’rKLAyý‚H=”¸üê…Z-*>v8–Ó4X𿤖©©âIÝn*ÀXùIíè%O¨ Ÿ²?°0¸÷  1;.ŸßáLP C†žpFÏQ¹™*¬Á¢»G/ì”õ¿Oy²î¯ñ=vQÖÿ«Y_sVfÿ'·Ç4Gu…(Vˆ\ˆˆï쪸ð'¤­kÇž‚ybRŒ¦ªT{Öû‘¦© ã2OÛOMÉåÌ#óØó±ç瑟{ó°îyÏÜËz3žÄe'"bեÿw†¼”'ntB,7Ò2—÷Û9Ì,A;ѬcôRH«ÊÔ™‡PrÎEßϵb*ï-sªüÊ­cŠËxTœòbùMJñú¾öˆNtót"æd†©$jýÔ1©6¡žá÷le§c‚Jqµ@C#˜=;¬V’~ea.7Q‹'Î’r2‘Ìê ÑÍ ©ìºÔsO\Ò¥ú«FÅœBí±ÐíU¢Ë­ô%‚ëІԩþ ®aÏWŸJ3üN Ìxÿ qi¤.`âQs¹kHóͦáª%ñ\m´ÁPÜH (HUqPëehø êyü–pÛ¤êRƒª#þKË;Æêãnp¸G‘ãç!mlIøiÝ5-€˜ì{…védê-ÕÔ R«bNK-ÃZöGíLÊn™­-+Îvž7õB #8Ñó0øTÉWaR&á¡tÓ›â8¯á>ÂÚgyí[“/ÜßÐ4yQõ¯’©s,j”<3è`û¨.Iø¦›AGöãw‰Õóª×n àÄŸï£Êu4奄ß*w8•]qGàma]Åv‰¼°Dmî4®‹Ç‹Ò4=±¡î-`e®Á¥—yªv¤PH­,µ ˆ}²¾´äxËí˲‘Í{V»>4âuç³:ç II…I0ÕflÎ@âªt;/÷Τf©ùòj_ÓP—ȶáv“ ˆˆ—>¡7U2ÐoËŸú̦°Z7 GPÌ©%0ð­Hº‘«½¸ û/ÀbÁ {Ê:ÚŸ*÷¬"aÕD=`À R5[ª˜îÜÓí³]ˆ þƒ•дŠyÞÂn&Kv’4úêÎ̽„wgÛäÌS0h X×~¯yS¾±7‹üuá‡÷$œÞÐXVš·?oþÔ“b°×´ìXœøâ áêo"üïµ=uM/» ˜ ª:iö QK«Ãsf«Ïó2“¦&4ÛfxA¬ñ%®$2ÏYÂ>U×­¯ñ·Áj=P»â‹ÜÁªùg&™sÉÔÎYØœ…Ý9@a‰Ž*ãù¤ä£¤ ð¨9SùÈù88ûÛ¯–Š*݈ÚCR"¹…K­oµ:/?“K².Må KuÒ%bó5˜¬E¸•hu‘ç RG-ª†Gœ¾Ym mMž(špÊÖ¦i6Å‘’Ü~‹Ú± ϶”W“1ø¡6VQü$¤JþïZ|ë´{Ë^MÚ *oŽLª–±Uix¦ySűÂ6Zé[CNBì×ø6€ ÛÎ ¯·èý­ª‰ÂØe‰S%¦£^C4ýXäþÇÎ6ã?¢Y¹¢,vZhJi뇌àPåõ =ŽDmô0x°¦.(·R“ò<ø8lìëµÍæŽÅ»tí-g ´õ¡+þ›”®©[BJÒcJþJ 2·’ºr.¹A—zë[ÍD…´¶¹©ÐÇj'sçw½h=¥ë›PœƒnkÓž.÷Q^ ÚwŒw2Fq¼Œ2ÍŠwMÍw,ú_ó`ɯñ½ò§Êõžz.ÐÍEdýʦSYÕ6ŽÍœkÊAιj÷G®ŽˆÜþåÈÅu*eF¦çóG.:þ%gf¬vÞF×¶UéuÐò¥mN?ò²æù»nñ—àN0ŒÝ”ª­ƒt%E¨Ò¡IŸJ,Lª­1DTI®ª.á8”ïš’÷½’M`%ÜÀ:HÄNΪ2öŠi¨ü ©ªþ–2—3¬ÎUU=ªÓéÏòÕ=XQÍlŠÇ™Ðßņ¤'kro»ÅûÜè#Ü”•g u@-ü'•ÒOf6„ª®õ¸Š \1‘ ~©U ¤î-ˆÊÞ½¶^z:ä»@JR²´,wŒö˜ŸÑø¾~*Á¢óâ$ àÈ|ìò<˜ù"óg[+&¾oª2ö£œXj2M+Ø€R7UgüÑ].ÃÍÉÆá{ñEYNëÉ­õ`'§BíC÷ý'Ð4Œà2Û…¢—®è¦õe:WÏýp”Éíõj+Ó?ž“Ô~¾Ô3²1pªÜñï»ùR¼ÒùoƒÔbb thþT™Â•ðr¯4YgºOol¡K/-N0lÀ§.Ç,… @V8k5ÿŸ ‰[ѯ´wì"˜“²û²®Ç{AßêØB³©,’Û/«ÿ—™W¬eþ­þ…Ìrtù¾LèSŽœs¦fFk­×qã÷~1¨5gJMÚ”ÿ†¬—¾ºg¦1¾à¸ñò¾ ï=,p²Ø²Îί9pG06f6v:öaÐh­URê U™Mà 3uB•ÎQì:µ.7…Cæ 0Pà=¤I=¥Ó¤l‚eûIÉL §"$š5Ü3D4ŸÚ¯ïWuƨN*ØÊT §R©@èmF§iM~t µ¤ˆ³ŠÛu‹5& Õ¶"t ê9Œêµ„‚IqÕ³€rdîŸO>wÙÇ3ëJ¸ƒ³5Ü6‰q@pK%Š£ÆA¿ÛÑCkÒØçs´;yÞÏhI¾vy2å±Ëç.{ÆÜ˜úæið–@ ´Çw¡.Y=I"[qD$¹mlGs)KD@¤f/}²èÇ@´‰bAëöó zÞ*7³y&W'ù3ÇÈÂ76uoI‹®(î9£kzã%÷I9K]}—>âKuõCý—ÈóùÊ€2ï¯óSñRš -ÌÄpí’¿’òC—Ýêx‰Hú‡¯­tнƒfº“«ÈGŠ ×òòD< ëÿà0îžKÓY\Qo¦ÚƒìXD†áòsqñô¢ýò4ЮNqK7§ÖX¶@~æ:Âí±¦JuhÛ,Òƒæðî+oÂ;S¸¤¾Ï¹‹K?.ÊäàòÑzä´l*mPlÅ$lbʘ•uJ©/ZJc—QSSJÿ•) ޥɑv‚ñP·Œ°2 5šÉ1Ta¶¤~œ·²fG)3DÒz¸kæu8%8LÙY 7UŽR1ä$\Àœ… -[ñç„qê­¢èü*Q~hÍ`âd°¸q»è‹Ú!¾Õ}üµPT”ïVÃlµz™lDÆLÙ>ܧŽèç¬9§rcÎþö8•>ÜêJT_QKKzÌÍø1d1»ëÛEœ)ñþŸGõ×¾ð,_ÚßLJ!òöùêû×!Û°¥¢ÖMÁn©Úô§ih¸c‘bÊçè|ÂU"¡êÀZ´BhA²=ÉÎ{+2uM-DÛ©QÆëï~&9\°y*i-t³K`‘áóãÚ=þE L*²Ú‰ü9×âÔÙ±|̽îlÛ¯ÒÀ^Oã§fľ® ˜øÿxF 8%ƒæR.~йqoÜ,‹V³˜5¦ÚD†þ ÓY 0ôXò¹¸ð„]y_TéT#\: cïk³M•L©é§}®¬M_±Ó¥}¼÷µ¶-sDLÓY'®ëíÞüB§-Äœ­9Œ-m Øë€†®ÎÑE ¯[<õ]wÆœ}Ô9öÔæ¦Ô¶m‚Å\ ì; 8Lg5h Âİ¡­Ò[A¥ZI„Þâ&ªŸWÿµiÒ(Y  ˆÎanL½Ì³'û‹ŸGJ“E© Ò8šÆw#àj¨{Y‡zßOšÄ”¼ u¡8„[u¹lz†5º–i›Ž®Œ °¥­›S=]‚YFÞœ~ƒy!j÷/ÇIÊ~pßùܹ²·Ò)3ë­`ýÉågÕý¶mrÛÈÖÎT)µ2ŠÔ*)’´ßžêr»EÖ&q9Ѷ¿ÁœåqÈçSöÜBHN»VT.؆<¡3Xb ,.ˆ[ÂÇ†ÛÆ°Á‹ÎTùùhºž0¬0'¨Øì]1Q2ÉLaw=UÞ[[à»VyrU7UkÌJ«þÇ^‚5s!NŸ>¼X¢›ýåü!Zÿgá©§&‡—å6íM«ÞÔY9;´1ʧ×fhĹ^úÕû‚œœBr–ã¬Fk¨‹\´Õ“S¯©DÂE”ˆË€èä RBÐ}„Ïõï]ýºn¼q¬ðkŸ_ÁöÚÕчsÄ®èþô³-…³ŸˆºÖPçS±G£Ð}Ò›`ÄKcu6d¼F׊á]õ6™™p§’BéßDžFSÿzÎÅ•:c3;–š²ÇWªÊEö¥é˜Y·&&{‘G燡ӷ4#¨³<ÓˆÔOÚ-”³´¢lÍÖ‰ª¤«RE»R›Tä/t/‚B¸ªÍg ?²‹³Ëó\§1­Š+G…+i€/iPiAfþ ¶l€H=džùÌﲄª‘ eëÉ‘™«¤!UÛ¨§ITÉ„rÔiîYöƒÏÏ,5º!]Þ‡{±%k7Fýë–RɨÚRA«Åpl®mj ë6ưÆS£|ÄS4µ=bdÊžù¹s·C`Ó–y R©ë=ßÙ×£ûÏ›Ðцú ‡*[1¤n¸orKÒʺ$©WC]øu ¸êÒ&Ÿˆ~´WÓtî0NãöY©”¶xÒBUº,gT·ót|†®§*œØÀ?å8ϾœW5Ë+‰Tÿoþ3Ÿ!.ñrmÞ ûšô¯ÿ‰×Lê‚õ Ê(fÊè`Œ¹NaìÆŸ(Õs>•SŒÇéS`ËËø ¬„\ÿèI·KºÒë·qêøžú1†à%|zq’ºX ªdË>Kïºì‹ÛvfüÙUÑeYËÕØ5ÿRè¢ó väšxFp_ƒÊœP"´“PÌû)N  I›ŒÍ(êˆ1 ^J´s±X)ã+­l«æü µ«#éAh±Xd³Zg Ì W3ˆØ*®ÑÎ4Ö–š‚žTTˆÏò=ꤒŽx™°±J°®ŠæÚd£T©‡¥¤:&lni%¾”µs«BÁíOúkì !ʘk ê‚)—2ªŠÝ¤–qœbQ3Ø=Gne`9YöCŽCŽÌ#Ë~pÏÜw>Ùw>îŽ\kE]ùØû˜?¢ I¼\.EŽÑ¦+™‡ˆ:wc«Œ©Ü7ùØðåž¾ÜäÛGúé.ß>ðÓ‡ü|Ç·|½ãc“ ØT/§%ìÌl[¸Tˆ 7ý_1$‡‚Ñë* "§Ìç Ó÷ì¸e,€<ØMžÉ’¡Ð*×ó¯Xî|Á.È(Tï!¼¶¿´Xþ·Ñª\²ÕÖ9ªûïKvïEÞæì6è+‡ëdÀé©!ÿ œðòhwvŒi$ýSÌÆÊ3U^—&+½%û¤Ë-à.ßýà1j%#½öŒ×År,ž[õKßPõÊÓ÷yrT¥±%šW-ô3ÄÄzŠ!ÒWCJ„2MØû'Þäx™Ç¥÷Sý?ƒª3?¿ªÈŸº2¯œ/jU“uy(Œßd-yG|*×`y1¦yïdmQ…‰E ¾dç1áŒAHâDGÔÙðÎ gNâ"ƒÄç+˜kúsL”³¤÷ž¯àÅ;Dà¸â÷=Áİüf»«cÅØ×9ðMZ¦“Ëi:ž]Eî.&#k c_-ôH .™Öǧ‹NÅ´p)o-ž©ÄýèÙ)]ªd;áæñ*oghT•øo½ªT}¢fF š¨UÑ” ¬rbcC·™úYªÏ€ b/b â ‚cj'¶¡=6#"ª›]5 =~ÏÔ^u…Hw©êˆUo=@€Õ 䂾 Ú]kŽ„j5¶'5ã½5Y7–´ãÖg+qŒê™Åp8\”}Ò*Bm u¤Ð'l §™ýµË6jÕK*K±#óqÈg+Je—éy²ØÑ®Ø¦ŸEÝ:[’Û&_oøù¿}M¿}ÃïßÒï_ñËùù‹ütÇ·»|ûŸ?ä§/øé?Ýñó_>äÛ†;îIn`7‹ß43/­œ‘Ã|(‡õô,|ŠpU´.Ujޝt?™‹+ª:BòtïäzO“¸zНHYMÖœoMç‰üîQêÿìÓý ¶YÔže¡%)_åªÄTL¨¦£Ôp¹Ò(@Õ0ÐA ²ÊÀ¶°¨JÄGŸÒ)úl´åibÒ³üzÔCL @¼VÙïURº:@YÕ²Iš$I„+©Õ ôep(ð0×AÄeYЮŽÁPmd¦I4È—\úå ûÐ} š1bä²™;TÕrMYZÆ¡I$5­?AÝd½×mæ¬ßRÔ Zœ'GBZ¯°'ý•×»üÜå±Ë~ÐÔõ]f¬ðÿS÷¦kŽÜH ›#‚Lf–úØ}ÿ—œV·ª’$làrÇŒ,I­^}š©”Œ æv¼8®·þJ“Ä1½œMåºãã‚¿¿áïúË WÜv¹d/?4 @¶¤|PÙ Û&)Û ¼nzÝä’å=t7F0”)ÊôÓë€èäá“…!VàGOcÍÖ@”N×`;½•“ð̃ý'¶»U>À27€®ãK˜ïTEÏäIüùqÆ}N«@™qê 7ÿ©7Bösä2–[é\“÷àfèS ‡Ñ'Ž$ªu®²Ì¢è‚ôxèÂJPp¶Þl%o'LœD¨˜€2syg5ÊøŠ\õ4œíε6Ïå,æfï"‘™®êèÑ?Kœä,ìœ.‹C7Ò™OExd'=˜‚À—gO’ }„y;¹a`e ùÙõ¨® 0½Siî/.¤©nøp!qî‰n¡E>WÀ% ãµ`ˆ”œ-e¦¯¦w±¬v²_Ñ!-´†SÿhýƒJP?,—’÷wÅ'¾v»!Ö0¸Î cc­¤±§ M --ÛIñü¨PMcéðaO@[ìë80^yתþõj KEI8À,HVfgçÅÚ5†•­\»gÁqF—?*¡ë%£¸¼ógzUÌ£×J/T\CR‘Ÿ÷šê¿©]IAB3{Ýjýrù¯PÈä¶ã—7ýÇ;þqÃû— ›fd™€pš*(4@BBä UÙ€pÙ°)“1ÞnàáÔýkµô‘&´fW¸S…É$ò±ˆ¹ t+ž—ãaÆQˆ úeë+[¸ÄÓ¿ÚCë8_áH¼ ŽLà‹¡¿œlüÄ*ó¿N¦ÊZ–á¾&ó©8fú¾œ_ÙKòx#ïNMݱy®äÃt@ ¬ÓUeR8>­‘pÈי؛s=Š4ò­õD€¸¢œ·Ã¾àæ•N8€æt;xo‘ÆäŒö%½Ây¡)`Ÿ\ŒÖ~ËO<…<®®úhГŽ¦œz­9°…GgßK"+B~˜_°»çç*ÕÞC5³[uqèÿ<£CmŘ×Ùù}_‡‘N@ªÙÒú¢¤š¯ínAYŒJzyÓušÆ(—‹”¾Q+¶S«c-I›á¦øvÓö¦êœ^Z¼W›Z53¦ 1³“;ÜéóOÀ§¾Œ yØÝöTaË*aàÔµÅjb°dPNÏŠv: Î)mÚûÃä®)¹±eÏ@)zÚvì ëžÛkZà’¢éS;¨Ÿy ÎòÜ”éõ÷TÞnÛ£š[ÎÅV*Öˆ/È‘¥ÒE³š1¯fµ¦øœ‡oÌSm&®>­Ô™•íJÕ°¬P½_m­W øêªÙ¡#[¦ sÜY‰Ðj,MÂ?ö•âÕ¬®B¶Ùä%lÛ†}Ó} — .›^6Ý6ì¶ ! Ñ¿ÓÔEðvÌ2&V)ÚPˆWOVáîÇ/僪k¥› •7?Yš¡µîÓ™ÿÕ…ßÚ%Ypb”ûS~<øy—ûS‘‘_¨¯¬‘ìZ‚ ´ôpÙðËUÿù¡ÿ|Çug"ùIÐPÍ„(EÁ ÀPmdV UÚQ•Pe P€õõ™õF¥ìÆåfí°(m²ÏúÑ´bÚ/×J®Áæ qð ?µs¨÷Y¥x}jdGŽòeQŽ:-©z5Ä—YÕ‰¸ÇEëå_lþ?¤x NÅW Ïás5 R=vªžšw.›'*:ôª) …óÊ‹ŽÛ÷´?õ-‰3|ªŒœ¶bžÂ¬¶*ŒxÅðãè¶…çüF§ÛBµNgTUQj)"Z£´¼ÀÅ8q…V § ­[г‰‹ÑØ‘FMõj±q>žx­ÛN1Œ0Á¢³cÚD¢ê˜C÷ªL‚EL S ¢*HèžAK·Xàc%Ýp\ º÷ÒÐ`u)Á‰.Í®§-˵]¨ºÍ¬#¬ufºb"TÀ„ˆÂ`= %TÀ$ǺÈTTCDP;äG¯bš{ ß^ _«`³´+Å æíhÜ:‰é¨T—&ÖØÓtßô²…Ë®×Kx»„ë— öM¯—°ï ­â²cßuß±o¡Ä‘º2Ã.LKÚ%GhF*s]&‰2mâ/AKþÄhÆ6üC5r=#H2Ö#‡YQé@3Y΀†÷ïOIùS÷È'…q¹ÉrÂ5}KŒ'&£P>aÒ±Œý¿¢ßùêÏ+ìè^ß `)C _›!³`ÿîÙWØ7Ý/árÑ·‹^/zÝô²IØ4E"P€€mÃBØ·üÏ[š,k½ã@Ÿ´P®§ SÀlÕæb;Lv„||PÅrÄ0ȸjAŒòˆ|Rb®µ“HÄP )9 ‘H5(÷'?ü|HR£>¢D‚‡4êbäF{“«¢û¶ìA>®úþ~“Ë!I{Uî’TT”ª¢ØRü«œ¯¾€0¨lA¥ Ä#ý2uŠ*öT}Sw–bÚ±Ù¶ö·grfN®=«Ö½ì§UÂKÓLÑKMu¢tV}ÎØÓq\°º%–6‡WÅNœžþGFÿ« Ôü'áï+}ª¬Ø½ì> ?0y\6F…`HQ=uv”eEÝ8Ä&øÒ3$ªyÅ#7–VNˆÂ¬º¯NÛÚ¯3Mr˜ë×ðCú:ÿËSĘá$ŒgV³×8‡´1×êg¬`;z#Ör˜ÎÑËí°Oïxõl†mÏR #Ã¥Ÿ…9Ì„Oðew³%«LñO…ħö¯ËºvºXI—n×û›ÄЩ¥ÍXÜá¡c1?v9õ­ƒ”Ö'U|>â¼<®cÇ ÷isƒò>¦p²M;ËúK_c«lǬÍ“z¡‰q +hz·s)siæ_åà4l°ªx>k – vT¨n—Ëv½èÛEß®ºo wÚþX›ª%¥yT‚j²݃n™¨IS2™ °³ÌÜá£tÇ*=¤)ÍÕ× 3’Ó^#SÈëý)'sÁSîOÞrÆûƒŸOÜïüL%‰C-y[›âõ":>ËÄ,§ß§¶ ïWýç {—·ÑðµÉƒ¦ª‚”«Ê Ð èœùD$ª DbŒEB JBOy6¨:cïäˆU•>½(>YZ6²ØÖ¸!ýLét_poY‹JÕ”Tñ$„ZÊäòÖí0ÇÝ`±›šžþwô'AÕåk ÛÿÎ/Á¼$¬f×8N0†­b²Ëº@7£HTéþs=Wy6p˜ÅNÓŽ=¹ºãÍN—‹…é36^:ùwP5Ê¢4åmã Í÷Še?5ô?Ö_©¤qÁ™Cóû+Jõ€õ<Î qžbžýácÆy9âOiQ‡Öy*ìd˜ÂÖ‡ 8Þò€!x}ýï:HÇO-æÈ‹b @)ATnNføìÑÛÀ16*@ú²ªÒzÚ|^›þµº±Œ¤ÒÚ›\f*\‹ŒÊꫦÐ ´Âd”(,tƒaÓÛ”CãLe]-±´Nö‚i_¬ˆ“T“IÄ W()j~øŒ+7ÊïÎ"jâ¶²æXÓLÿvÕˎ˦!aœE]òk¢Õs'T7ª¢EÏr''¬„űå»ÂéU&¹okº ý•mìZN›X„Ùý nTE!3i*(ϧ<žrr憂G”G”gf^…[,'YóY×l–û°ƒtîøúôÕ·»áŸzÛ AA xˆ0™ÉÒ™A ˆÄò³é”=*çD}-b_Á3]ØŸº_€ xEYû±qL‚£ØyL,0A4"ëJsr´ºR,ä1[Wp†9éô_lC«X £òÕƒ ø¿\ ƒˆ’yî—8uÌã8ƒÙ•öATœ•-Lÿè••jXv&åhSZ#qüH™ÑãLzèÝÄJe‹!ï{ú~­¦‘ÚÉîÑ%‘jáïПõâpt<—õ’8±¨ý¥ÇO>ËWF9Þó°˜ÌœßûF Y>¯Çc!úVÌUª8üŒû\ýù°µK¤²íSPmTSï­íLCwØtOZE¹ž´w›D#á°W«ÂÊT¨š\U­óCµv¢–UT¨®Zª^P5V1®ccÙÊ_¯hÂfÚzCã ¨• qü.£ MØm§ úøX¨Ý½‹V4åÇãå-Ké„…j@Ò¡ÞÞôºkPhÈÕðµò>Çh¡Š†,’PÉj¦ÝCÀ¦Ø‚äP‡$ˆ9JX©†tÔû¤lmªŠ–ç?WÏ,!MÆØ:*dþ·Ÿ÷QrœG«Xšw^-˜æ“æ ¤Ø7üò†~èÇ…¢Òú©ÜÜ¥‹‚*;dËŸŽäƒY1¨Yð£ˆæöÚ€5G°ññxJq‰Í+å0¦ÏwqùËy úòD?(ª©;Udí9÷˜Œ‘ó¬úÔ:ý?ôõwo3ö´K˜:Ÿò%(>¿¥OÇ™¹€³³šáS_ AŽI¶¯7Æ<ú‡X‘2ßpnŽxœ@¿|Œá `÷ò©î/ǧž}©8ûPÍ$ÆCü¾ÏA;ñJV#fôx‡3ÉžtqèGÿ\3ƒ§õ ÎÖý!çœ,äpo‰swSŸrLÛ-¼øØpvåØªÎ O‡þã/MÔIé *ÎÌ=ÎDã/ulõ‡ 'ßS7NxÓã FWè;s«5ÀŸj@˱a1£à"µÍþ+¦ó/3‡Õªšpÿ„|/j—`….×ß$5@§(õùþ½Ò²”Úš¶¸ÓR(•ëyJtD|ØTÍ@'*ªcs#ˆ²@ÌÂo¥Q¨@„Ëv^t“W—bœÜ~åëÒ³.>ÃJÙt0'ˆ£… Tƒ†}×Û[¸^±oª!MAPMéðö.@%»¥V‘©f½CûÚôU…jÊKÛ¤‹–½à>døPýþ.æ$MQ*'Ʊ ùød14rr‰3›DY{Y©F§k•{_ºWµUMšª\6üò¦ÿ|×ë$(…õÚ5×&Ö?¨¨H€l ’ }ÞÇöf2TŒ5G²ðþÏT;->çÑš o†š,ˆù±uxì.Y€¸ü``Ýqɉü !eÂËô?kŽgwYñAغ¤KqHrÞKó…Yé_.N]½¼üwÎO=%QRa/ð š^ pTV¶týOüû­Ù«NËe*Fœ:nø²”d£g5æ q$ŽNçòå)·!dÑ fGàðœ#Þë]ëcŒ/¿Bœý¨Ó $–Éw§FhŽ˜hTÙ,8܉„i š§mËhr“øÞ;€û½Jæ1Ö ÙËl¸:OŸó©è}ÿEÀ¨šCm\fID´î}BœÓ¨ôÍðÎæUÇœêèO¥Š`xºÊè¢8žsO3eÕ L¥ ·eŸ…Öô‰v- À¼h˜÷èî’:µ­hE¨^‹J'°’€•Ï+r‹Ö=^m±½zL]¯Ö¦ºïz»êÛû†6¸ 5Þ?Ù¡J m‘=h×Ôì6ú*_~P”¹ÿˆžåE=n¸^{ϳÛKzœŠ’0°Þ­1 ÊÐMYäå”ta‹EU¼'7Õ1€9JÁ„…ðwZPÜ.øû {£* î7"™Ü§Å¢ˆÑ”Ò ÊÇW?"ÖÀ|™™µÎEÞ ‘€Æ’ML<¢|>åÑòR+L/í%Øû»:xýFÊ•‘n^RÎeÂ7½1‹¶€Ê„ðe4r ä!qÁW;'ÎLLå Ρ:©ë£Â,>ö÷á L5)> åäÍ«ÓæR™[C,ñá=8´À×èe‡FA·¬ÑONÏ%ÿÏskqÞÏוµ“<Œþ’^5°Ð `šÞô7yÛÕ:o*_Ì&„/Õ\šiÔ-äfÝóµõ×瘪ªóN½VTb”ϧܣ1þ³Ÿ³¯±ÊÀJ †ˆ!Ž÷Q}#úL¢[GÜ ~‹RµA¬eªg@ç@ÙÊKþuÚúc&ó˜!´ÿAV5¿ÈÖGõbš 9ëò$[0Ža+8ƒV‡e¤ëLËÞ„Þ8CœŽOQµ8r’Ã?ýŠ8†1†Ç `& ¦Ú)û甯È21Ÿ€rþªÏ}òm&ŽiäÖ—nüÓ Öõ¨æ¡ÌÂ…ã'»ÚÍ÷Âù—/“ãѯß*ޤ øÊEb¿f»Œä‹ J¼Â¶15!¬Rœ˜Òå}Àd°š+ÑV Ó$hc çwI—‡eôŒÉ¬Ó ‰ÍÞÉY›øÚ}è¹~Ë7ŽVår•Š~“^ž:¯@C@úv ooz½¨îÕÏÄÓE&Ò•%Í@“¿4ÎöÂÑöÿÕ×HÓ&›e 1JŒŒ}ÐkþEM%ƒÍ"¼Å šR6<ÁãÂy•6-g#äf,iµ5­&e‡ó…,ñMeÊo»þí†+¹VC#mÍâc@!›"(³,ƒm‚î»%l A„¨(£võþć<¢ŸWÑ¥ Ò0Wç`ËlÅ£3Ù<,Œ:‚’à:û<®Á*^kÅ«ýÄhFÿ±nÃäid9!Vy˜EuDW| º¼úÿ…äÿ~ ÐãT9)À]͆ñ~ÀÇGÌ­C‡Sfa§ÍÎÓ<Öc!ä3bÄ@AÂÍóª”8|•ýS–{‡ x}.ÀôñC<¦„‰ d¸‰3ò ö•¡NçO?¦1ãSÈD©µ°‡H–ø9‚QäI+×Ï&‘$å«OÞ>pñ"RcHFùí8QëCþaO7¨!ò%›ÉvP5ݦËÈ7U/Ö%©Ö Ѧg…y?Íž#¦¸ž&_¾òr6ºª‚ÔâË·V.ÒSÓþ¥}­Ê¶*Þ5d)´Ì¾}6z3¦£nvA's zH蚘¶|ù’Óšgà*Ìë*A®i¶©ûÝê§åûÑõM–B®4Öß·ízÑ·7ݘKŠ‹JÖ¡rÓRæMS—¹m^+ؽcϾ"‘)£ÔÌñõôÌÏ©y ÓóÏÎ|°ÔaqÎy°ùÆË¼©&qjú× ÊŠÌ ¥˜ØRÿbQ®Ð:íM×çÛAŠZ@…Þ£|àþ”HÓ]µ—SŸ\ÐÂÏuZ.Z㶃™ÀÁÃf?&KÕÿBÂð©%žlÂ’²§}…¯ÈÔÁ·Ê—[_Rѯ9Ôëò—V£O=†…¯÷JÏ''Á¼+Æ«‹O&%S=Ú“¾«O`¢RbÇatÍÎ*f0\9öcæäl‹rËÀNuìHË×½Xu/ûžÇÇÙ9•çì¯Ýë*Ñ­ç"`¿â?¬3cqÙVKª¹ÕL؈R÷Êæ:T¬¥Fýº²âA±ÚcApù8ñàÈ€!@¸s·b‚ÛgVpP•cS†¡/L¾¥•¨VD G4šSÓ…Q‘ ±péåvÞoí^”d›Šg¨UekEÈ,éG% UÛ(Û¤8±Ú˜Ô‡DùŠŸ+ƒ¯ï÷ Z˜Åzæ…áZCHÃÍZó;`%T“=n«ñXænb#£Õö´f÷ýRTj¸ì´¤á6Gšcª@æËH[`P Û: *Ø dm)LHžd¤<Ÿvhª×^—Š®ú«,˜mþUˆÌ3´ù#Bú¤Rç`;¥ÂÊG tcÁ£MqÍ“_R9:mAÞ¯ú·7\ö2\g}›Q¡JKUTS¾­ª0TV j#øâØFÚ-Z*ˆQ…QäIþö™\ÿl:7:5tgZ9±Cðh×hÀÀ6%×ì6Z™ÃàÉJêFP2ãAHyÖ~2öƒ¸8r=±îÊ&^Í?LµÉ@ÇZüÏ@UÌqꚟáþøᲟ@¯ùïÙ¼Qd¶½J猴¾|Óc3òkècML?&ÌZM)vGácXò÷«´LÃá}³UGwGArª ÿVš9*ψ¬« Cäs+'NšóšüýÊYËM Wo¥\æã)LLÌ‹wtÇsM/LIú4/ùQ,ÞêWŸpØùîHƒ•£xZÏ6 ,VÈ®…6]¦Õ[—­»ßù«¬­Þ&OÁó:µ Þ!Ÿ´)ü¸_‹{ª<Ôjúù{òÜÙ ë†?àlŸ cú‡2 ªéÊÔj'ÔeIH5ñB3©ä¸e³9•-CüΔ´-8ÛOR LÚ¤[æª_N¡™ µ`ßÂÛE/»„ÍYÇHüE5±Ny\ÜGAYà˜×eá‘U3g…VYÝPnŒ|ÆœTÕóR€Ï{µM âors’R1Ed/9˜!Ò÷ŽŸëÕºpŠ›J:#‹µt¨êúm÷ ï|»bß&?²N㬔"!ûý©AÍoKµ[Ûç†ÌÏ  ÊÇßS:Uœ•L³­‚_YÛПÉ;6|XéD†ö×aÊhÕ4zq*ôe²R=}Ú?»y:Nì*œZó˜þûãì8¦xþú¿&83 Ïæø4Ê@‡4O3'†­Uú?fç!™­Kއ)«zžáµòÇÚaM›°J®ÛÑ<â¬ÉæªM‚§šdâ\²iŒ‹Ë7°ªó‰;Îß”ÝȨ &q”÷kÖziøÝÖ‘³é±ô÷ɱúÉŠ®ÀsYy’G86ʩмÉTÌg3«Û{ÊÅ }u§ó4€‰õÑ ž0ªÝ0N+zœÚPõ?­ñU6Š}§:[W1ò¸3Är¡-Û?ó›Î„D«À­‡Ê:PïEJxUMñ—ÄŸŠ-—BUE$MÎTGäj`¥u "Ùô¯nìQ\bC;B’E4BHo‡7uX-å˜Ìò’è Z Ûe+ÀºmïGS?”ß” EŠ ºïáíª—Õo_**žnY̆(בæfƒŸ¥#^üô µn 8ù|òSWiwl±– °ãXÁ²æð,­Ä…#rîé…ôuÜ áÄÏÌ ·FÒ¹n rëQ €=àý¢WÙRW+;¥T=ûIºÎZŠBHg̈ŠPóoÕ¤ˆ0:Ÿ‡Õeò$Nü·;<2ŒwäÒ2³i~Eà‘§Ї¶êÙéÔ}23ë iÄ·§6+_{œ’©œ[ðr¬ÏŸÇ¯£uÿ“(uªO]’V/6aðKZs̸pU°#Ž ñ”‚šæ¾ÇD”­hµBjþç©Cfʃ® Åj+8—Šqócˆ öBpÄ'.uõ_‹Sµ€“ßùøCM¸MZZLâñ_ í· Úù0Þâ}¾'ØÜ×¥}É„ç•{zj¾Â¤öÖMrTžã+èó‹MËuf¶—õæüñ‹—¨-Ë©Ë*r”ªÃ©&á¿7ÙpGBÿ/ž…•h;í¡÷÷Í«jëàë3^1t©"Í“_Œ>UŠ¥Pã!EKbÕdH„:-/»nõÜ33“þ¦ÏÉgÄlh¯Œ“нvõúÓ%©Áñc&$Á2kUÁíW:–H¢³—izBß‚^vÝ/ºm¢ ×Qµ4Q›>Ü]vÂNÝÚ[‹*k«y;F@YC Ê&ñŒŸ¹¤t055E¢öíÙ袎sU4ÂÑÑaP`|æ©÷¢¬Äê­h# À€;³^$Ú—+°oú~‘÷ ¶m1‚n}`¾ ª iGG4¶°×$¥£ ›×¡@îÏøÛßò|Jß¿Å6£÷gé/ ‡!e†q±³•}%V>× GxþÁ¨ZÓ©úúS“Ïg òÌÿÝl›?ëÄúÓGÿ/æþ§þÓˆO¾ž|`åv<3Ìœ)Z&Pu¢Zu”N¢*¨"¨j@P A$ ACmªA2fMÕB¸²­´&IŠ‘ 4G<…YŸ­‹cõ*Õz!ÉØg+ý²Ýá­¸°ƹÜ0¤÷*‚/ܳ–)›f´íÊ=èb%¶áÙÅk&(åì Gn`fjš0+«ù’sýˆQz‹Á)d{0” Ìc¤ZqLmh¯.pªØÜÔz›·ÀTºö)tŠ TkC¬õ¸Ä^—jY*"¢šù¼œ‚¤þ'¡MÌ[ð(Ê—U!B™ªˆkä¾ ñ/¦úÔCU¯ƒZPfÈáÇ7Ҧϕi¯"fÈòìØÿŸ¿©…Y56F-MlÆêb«œÐ’2ÓY;”-¸N½î¢Á G˜Nආ?]ÕZHÍv0^¡À'/T-­®H^…1Êã)ÏØæÅ‰fä@Sdf-v*…¢,n/œÈ¤6Ôç|3YÌê¿§:Òøbv²šr.Cy T`S|\ñqEYžgés "É쯮/‚-Q|¢>â@®XOÇ#â·»|ÏÑT4÷^ n3 È! £§X^Œy͑Ȱ “–·™^%`ëð KljŒnô?G:‹Ìì‘Îåá‚ÿ'zñ}wÆŸ'3øçþôÂO0±_áS+¶’IdUmƳ©€¨J¦ ¡–žéB—Ò´`µjÓWGÿU'PÀ®¤Å>¡ÕоR|â`§®éÏ•ë*¬ŸÏqo €´b«gÐN“®Lº…°mõußuÛ4ýsþß [º’™~Ö¬w+tue¹ÄgÛâç„$ð1æSš‘ÓteÌò뇔¾õÛû^rÆuŸÿÀœÊe§Z3!T“'ó|]{úa— §æÜTTñvßlj+¦Œ,ÀÕM5¥L~`UÄ>-ÐDšQÈŽ –Ú%Øïƒ1œÃÆC²Ò¡jVQ(U1•”&V€0§9¯cbë©ßdê˜~‰’õŠÎ3×s´œ‹FuÁAöA¢%Ѻ²TˆÕ…-  …OÝQ3ô2˜Ö2_IoLY‘kv•\_HæT«Jpw±JM²aŸÏïOaL‘üy^ø~§W*lµÖb®æYëfgÀªP´!°GÉ)‘ãÉÓŠã!å6ÐKöMo;Þ/º>³‚P–1´ò©*ˆN¾É6§˜ÉA÷‚cvý§'ÿIùí“ßòˆ’Eì…I5&¥ÊæØÇB¨Ž3/¦­A1ùŠ@†x¬džKPõs„ªÿ@…8M8X3äW™Òî }q×Í d5qû߯©\JbÖð©û§’SU¯¡*&ö#_]Ù±F4-‰C­`44µ 3-pS2ATMò¬vÈ­¥D\ŒRSkùIÚÄêÌ”nÌq¢Ëh”}‘™v|š%}«˜!„ݾ‡} —}»ìẇ˾]/ázÙ®—pÝ·ë¾½íÛå²]÷p¹„ë¦û.[¸lºl6Õ®jB«vNYÁñëÓôú>E' í(ÕÃìýôi~…-™&ˆtx*2u‘æÏ~[cÏ A>„j™o#“hg³™X­í©åé×&*8$Œ®` >9µ³RU^¦Óê7³à´ $B“ž²x¦PÁŠBQŠËm‘"*À•>Lµ€(µ HEVŽRs5‰È̶ªÎÇAÃGç$i/K°)]8”?Õz?ˆ¶·ÝµÐ7Qì¦ÞåCK½ ’²‰¥´A·M÷a“’;Öhé*[hK«4*·yû}oÅ'£¿S•«½éÚt‡dŒò|&¸ãç¾]·Ò~èv ØÚ*ôóçYçÌ|…põ›ÔÀ¥àUæ$#‘—CšÐÂ9KfÚTßv}öù"2ö-6M" h&m²P!Œéø!¢éÍ\(¸”Ö»ª„Š<žòë]¾ß3€óŽ]öH¼ÎkÑ x:ˆ’ÀÕš8§ªA£ÂަÁæ''}곦ý;=˜ŒÑ'Ò×ãïÆ’ðBÿñQu7Äg›b=^ŽS¿žZ¿h ˜ãÔ\X‹óÒÌ:+MƒzlZ¼ü½ ʸŽóCØ\Ø Œk­l³@^d.Ö†Žû ,0ZúËú"òýuŒLêV§‰1ÍØT/—pÝ÷ëu{»looûíºßÞ¶÷·íö¶Ý®—÷ëövÝo×íö¶¿]¶Ûu»¥¯¼no†˾]÷°‡°o‰EÐijª:ÈÛwzà|¦•«è>õ¸s±9†…bœ§Ì¦8”å´~[ÖáSÇÔ8'¿™öi7™ÇÏÚœÙï34Lï›%+§j2ÖÕÎd{Íxš‹ÉÁdVV‰øþÕ‹•kß%‡˜Â}¯V6MÕ¢m‚^ÓjJS(Ý›euøWkUÕ¨ãÈê§ÑΡ&‰©îŨ ¬iR)‚L©ú{¸‘>£Z¥¦_zS#Ðâ¶¼ÓêÄ×fd T‚æ5I¥éÊ· ûž%QyTKBZÂ(¾eAììžB¨3ˆÔ Ÿž¥75)•—ŠäãÁø”Èa¤_BžZB§PõimµFËðé2×Fr6¹š:˜àY).1i4·ÝôSå“a(‹Ð«Ìp}n™êµó/Ñ]n¿Ì&*‹SmT·Ð³K¯[O)ɬi¼¾L/°ƒ§k¸×þ¥8õo_ ò«÷޼ìB…|ÕòOqÊßùîÞ–°¬C•€4è—lÒšÉQŠJzcsçšñ3n,Ú‹°gÚYS0iS|Ôåùyï=_ß}˜ZpVDvIÖAqŒ…M÷O/árÝo×ýý¶¿ßöÛíòqÛëßï×íö¶_/áv —}{Ûõ²m——m»laÛ¾…}×} —=\¶íºëu߯{¸ìámß.»^/ÛuK€5¡ÕèÕ,Þ› P©ùú8Íãä …\"N_øs?ÏÛ 2†Gs%1ž@Þ¡¯”‹%ˆ¶ýIH¬yúaS…sÛpª¶ÜŸ2%¬'¦M¡v•h%Rp–~—æ®-a µ4ªz°èäÏ}lN˜Pd©Y§™bë##T³úR\‰R™Ô-±_µô%­«sÅŸ2ÂÜáÄF;­u|­‚ÚL–Àîòë´½Ž%›õùÅî­PQj]÷òÜ?l²©U“7) 1¿Ý˜xløž¡ìO^³šòn§ã5…^“¦ÃTÀÖ6yðùxÈãAÇ6·f·Ü»å=¡O ê°(À4ÆtÄpµ2<œŠhk6_k³ /G¨âý‚ëÎBèhD„H¤—ƒi Pn! ý E,=¨l¹½¶”7ŸÙo å?Ÿòë§ÜŸBbV8BKãuù§ÄùŒ*ÌVlô3¡öÑÁ·Uš½ÓÜO÷,¨~ÿgiO=Ž˜Í¿Ž@³à³»ùZ€1á¯2ÿò¹ÿ©F¢S¼«ÌFÿ/ê’~öj¸Ž`?wjAý(>ýD nyП]ùަ@só€Q\Úf¢ð¶GµÜfàÐŒ×Y¥%TY)‘üЙùêGûEM·µä®Ï}H+iÊ£$Ò(c}x™2ò å²‰VBµÊi •¬i½ÊãeÖ®¯¬ÂÐÌ'±E†²jšøXY Q±kå Éû“(Ù#?$ó œÜâ”§} ^:QY2ÍÜó±>û^Úö,p5qÄtHZäÈ/mq¯åv݃¼).;n²ý ÔZKUÒ%PSßT™x©¾ÄÔ)ì"¢5# ÂØ¶ßüx¨à3òߟòŸOÞSímM~`mQ›íÿ.O`27_#ú]c šãÐÇ•‰Ã(åžgbM»¯§7)B¬rMt,èó>0† neJ»g9g™6ZÊ á+Ü_2÷ÿ›•Sþ3”êï„ëp2xk'–ÚçœÍR!yƒ${ù ¡9óˆx¡<§•‘fT`Òl»1»`Nxv¶i[3åâÑmx"Ís†¯,hèÅ'i«Ìf©¬@½„ë5ÜÞ¶Ûíòñ¾Ü.·Ë/·ËÇÛ~»†·Ë¶oaº…ìs2{í¹¦k?÷·8 %y%cÖ%„mß.["_ußt ESùnˆ»Nä± àúㄲœë€iKþʙԣN‹§GIÓÊÃ=ѯÂhœd!>]D‡ð(ÎØuKqÞ¡:Te óÒzŽ×§J§œ‘®RÊåÎûh¸’µItdª#9jÞeù5­’ÈtjؘÔ2T †3R²¥Yhî‹ú-µ‹€0Å%ÿӭЄոDªð®®3¶§ø¨ë€›d,¾ìسW—4—øYLÚ8i½Öãj"õ ONâÜ‚-ì¦V+m·-!”XdÉlLX…”à¤vJ֔Œ… P”|AŒ¼?øxJŒ½Åc<Ê,Tš=¡f¯7ç“ÿqDhBÄhèŠà9;…8çkòÝ€éÐrö­é³Ãí‚-´›V ±Ù²l§TUBñ§dÜX•"RΤ£5Ä(ý òÇ#þú)¿Ýåù4‰l´CõŽn»‰U¼úkèêr0´ß³™n> ãŒìÒ&«ù°$x›åŸžx~ž].ÕQø6»Šï~—ã9ã×Ðóå<üBjÐÜÿ 7Ä œŠE-й÷ùåÀ_vÓeÛ$Ã~ñç°Ï¤ÇÑæ/qpN,XýîfLsކ‡5€Ñ< pE•7*Ê?·²â#R°‡nîÀU$…Ý·°íázÝÞÞ¶÷÷ËÇûåÛÇåÛûþñ¶{ÛÞö°oº…¡•FR Â˜åI)¢)-¹‘©‡»ÎB*)T—jÖöDº†bØÚK’@Øö\VìøRhi¹ #¥/¦Ë5ßG¢´ Àô„éNÌ®oàU^ªXÕWÎE6ècS†¥S{ ÿÑv•..ˆ>Ò‰†r)9c¯ðveì¹>ö‡Ø„T7³w#|ׄ‰f¸7EFÛÊ\–FËH(-—\µ¼ózÐÒìSb=Û‘&‚Å"¦ }šîeÅómö< ˜ ÿ9úžF\›bN§ëõaÿm9cÎjýh2Íâð—S=Jgl‰3©*ºmóÜ)Gɦ6«Ì6Oö“RÑ÷-Ô+ö}¸4 Ön[å…Æ+/>Ÿ§².Àµ¶}°*Ï×H $|g>`Ì‹ÁÊä©3§‘’!G”‰¦™ØòÔn¸ÊÒYi\lŠÛÎë¦IêóÙ„S2m•P¥J&SH¤(EZ€½R¨¶æ˜K-ÜÄäã>å×òý^3 *D¼ÑÏÆaØ<=Žùèëi‹·íúÑ1ÉíÇÒ±¹ ެ…å)C~*$ÊS„¡%Opž¯`èƒt}çá:¨Cå¥úãKé§ýö‡Ù3Vµ Žñ¨Ò:PÑÓäœ*ºŽ+‹ÂPýR†Ç¥Aì,€~Ü{Ú·:–Œ޽,Iöù²ÌG É.Ù”ÆVQd»±‚qÈËž£Q@^5î7šÆü+¶ÈÿOQ¹b†,M¥ºD°ª.Ì¿! A·-KQ•6MÎ_š¡‘Ù­)Ÿ@Õ®XLi”{Œ÷»<ŸB\gÀ1Å{F¿ÕÍÛv÷CIÖ;GOBÛ\Ú^ùÎé1ä´ åQÈpÝ%çªHŒq—ÎD-ÿÊrc¹P”~P% !ÐDÓ¶NÞòë'þý£ýí„»‹Ëöì´—àÛÐÅ€u(a± z®–•*ʈ6ÄáT`曦85Ê3fD.«¹ó¤ze½SU{%æÍ¾_úkšÅ$ Ô"‹Ú`þõ|êß¿:Žß¿ ˜ÀêSù—ÁؘÒN—@jH«l •–‚4I“ÅÑ@/—ÇØ9ùAt³TtljͤQ<±)×Jæ8ˆÎì9—«Y¨aZPè¦ûöËöö¶½½íïûG©·ýýÞ¶°oº%)%q¤ÑçàG”(Jnq‚±07Dµq”'/ ª»$sÞ!„ÄãnÛ¦[ƒªRüÒöêöÕàOªJfi§à@=Ì¥ïæô{¦‚jý5³¥«g³èiaeÑ1†ûí,$ %§µøý~îo €:FËNöašM T„3'¹¤aCÖÂHz|IWž* !wñ­Ò)Kºz,KÅ<…þ‚b² Ð­5*ÝGÀ|0")ŒÕ$ ¯òmi­MCï•=BΙmÖÇ&!@JÀ‰}F¤ß¬šô8­ŠR\ì5JÙU]@À˜ê4®ú'æ—·>¥ÿ‹©þËŽµòÍHòxÄw>#k ¶ý-˜4,uÇš\A¸O7cGKÐ?G\ˆ/úmHæ__!12Û^ ïåeÕøŸ;’2(.›^¶zÆ—>[Ç¡)¶í*ætˆÜ…̹Ty:&éßcÝ! ‰Qþs—ýïw>Øí·hEÁ³´ž>?XúŽíW‹9½«U”ÝìLÆhWôœø 7f)£z¤ÕØ‚;æ«þ¥úºõ̶vè4ÆLмÂÈSså+Á§~Íßu ¤Ž˜<Èø)J3è“T_âQK0 ØPû)Øf* ë?ÎïÀDß«c8˜%ãÛ–‡»ªG¯e~z}i ²§àýëöö¶¿¿oß>®¿|\¾Ýöëö¾‡=`S„LGR(ˆtÏ&Âz˜cÙàÈì<¡XRJˆbV=^L$+&Ф’ 6Õ-„-SÀèëB}ÔMVÖÍïñþ`ŒÆ†Ú4Ø% ©õs¨©ÿœ|L]&@-ÃÖØ¯@cVˆ&lÀl Ÿ–ÓH‰.¹ëÌ8v²vL™ y;Á°¨æÔ:²7œtÊøÍ”NH´¨Š”Fªü¢óÌ¿PjC‘@‹Ê#ʯ?â¿~È÷O<›ô~V%°#D3‰3²˜“¦ö2–¤/(aw´#º¥›+ÎC¦‹°Ñ ý³>õœ¬k<*Íÿ#Nÿ¨W7͸ãk4÷?P5Í¥ÂË ü5ÑÎ4LüÄeh|NíAUh ª¹§”¾üÙÜ–†`íº¢aQGG¥N;N™N»þ[¯ð`Ë$y+Väç“°\´Ü" ¼ðZ)º?\®Ûõº½¿ïû·÷Ë·÷ËÇEo!ì Ç“y“Œ$„¥Æ»Mé<Mc`@ßv ÖÈÖ]Ã&´Šd¸4Ds†N#( t A!!)¬ÊÖƒI^%&wÿ‘ƒÿ`¸Ù[Ü-gÂÓr‚ŽÑ´q$S;Jø¸þù`5çxº©Î «Žg!Ld/Ö‡’E™&³Â¥?Õ¯ñ­TCO•‰©‚W¡æ¨˜œŸÚ@*Ø¢ÜËN•É8MAPÆk®µjTLZ •W¸&aTÍOåF›:švYŽ}U0âˆhJ'lµ&œZâŠhâƒ;­ 422¢‘p³]å/9c ¹ûÙšœêÔ¬z€ † …edÎÏŒí±‹9»„MÐÚçªÒ«ŸK#ƒ”cÏ©âOózÄÏÏx#&ÖV)&}+$ é]õ¤d_0'¦«Áõ?àH>3R]¤·')ŒQHÆ´ºÚd@I3Ÿ%|jn¿>La«ûŠ=àÄD~ÛÝ,·`¨(˜¸öô”h½Ù´fwÑÚëïÔœô¤òŒüíŽ}—ÿ{”$ñ˜Œ"QEÝÀdþÝËB^‡ ’M.îÎD5ù¿þ-Ù×C4ƒ=»?I¿{dvP¹>ªEÈ9#SåÌïÕ`Ž¿î[¨¾…y9ð_D®)—êKõ=KÑéc,g0¿úÖ[Hª«*H9 Ë„AˆÒ› D&ÎÔ% %è-oPd€tSÁ®q°K÷¥­Ë¥­l©_*ìº_µѨ—_nûm— ¡nÃ%'o°±Œ\XƒD\Wv)5ÍEÚª±Pˆýˆ¸X/¤¤çåÂÙž4„ƪîO}ŽAƒ¢@ÕôZýþ¬Î#‹C+‡‰¶‚âÑšÑhèvýˆñá—.üàY~ö¸ˆ7AIcLçdw8öÄ.Û¦¶Š³!Ælnœ±åûP~T3~—ä}C]0£.uõíEuV¯ò¾›#ñkƒwåδl¶žm3úp’Ìbo &zOÆ ›äWO9íõa·ÁM ÑßéhçhL´ŒcýÀU!Hî)ÖŒ–fPŽÌåXéD£á«9?ÁØ"ôJF«éuŠü„nHÕ¶êFqs$à~ÄÏ;ã³ Ý´FC›zžR…ÁwþÌ´1{žœ«Çl˜Þ«aa)»”ƒBJ©Ö̃Sl6ñ#lÚ”˜£k±lATIQ-,t}°QhêÀIrÕ´ GŸØPЖŠR™æf1Fð)¿Ýå_¿ñ_?âç1Êä•7b›ÚÁôåCºâ,…’”®ÀÑ„´°[ÑÚ’{ †2v­¦ô4ÝÏCÿhøÔ5“@.Ñ:®eSÀ!ŠY€è|×8=EøoÓ«‰Oýl|$®™ý¹0'þì[÷ùSZÚPs¹ ó@=—{aÄz}=d¿ 3ÀÎ=LÉcq.Ë4ÑåŽ:¢JŒ`Õ2Ký9Ÿãx¶4(tÓm×Ëu»Ýö÷ý—o—_Þ·o·ím W•¡RhWbñdïD”RÏ4l‰È}4Ó£˜¿]ÔŒ³6× ™1¹ SžJ)åNU !ˆl!'ýÔõž^+„žôŽˆÕfÇøÎgá°ž²Æƒô•«œ¯èÔKm:N´/–¸cX=A^=øÔ ꣧f¦»7Û”X'OÉ­rTk1ø;Mkí-µÜ©õ•¬yµíd Ëjçìhû° ×jº(hýy`¯ÃAÑH¶.ª»XŸM={e*Ñ”±]‚ë§meN˜7ƒ6¡9JJ¤ *¨úàÐÆë¶gR‹X4 P…)G×|¢5OIŽEE–§³o„ÙÁKRj¢µí³.bûµ2Ääó?ï¼?Ú³% VlAjÇ­ú¸Q;]N4£éAtÕ¥všÑu­M:€X¦å–ø†‰›îS§åe 4×q–›ê¯ìA¡ ©6áÉc¬"Aó”LcÂÖ09O1‰Ó?PcþU"åûƒÿúÎýà÷‡<“&K°ÔzýúãT¯Èï4cSÔU÷Øš8$ÂL"ìѬ“ì6,³÷¦„ÿG-£ª™¦ë)Ê‹a<×é5/ÉÔ –k(×¹"0Á©˜Ïü—qêÏ Žv§ŠaŒñ»\þu(¨*šY·R÷¸ÚÑw¶9¨:õ·RBÛ|Ò!Òþ™/.Ùn0j¨þéížØJؼ¢nüíª ‚n½\··ÛöñqùåÛåÛÛþqÝß4lEà–j"=Ø,ëeˆÖfq´ûP£YÑÏ¥©,éâh ^ëi8 X¡ Åø™nI®ª€!(T·ŠD˜5_éïQ^Ã%¹X5d68×{±˜™ÏB _‡O¹º)OKÂO‘®ÇRøŽŠ_DÁaô~ZËÜä,×\TÒʀ˟ÐëP1õ;äjâý[ªªÿ–Šâ2þT¯‡)(‰ -\Pé„ËN¥ñÚKó'‹VÀðÉ5NÒ:Ì茕UÉþ­tP¨JYšJt®Æ@nM¢ƒ—ì™Ðƒ!  Ê9$N}°p ~ߺrf@Ãvu‘¾‹Óš¥bwD3ÌË¢J\§š)ŸXY¤MÜ!&¹”@‡Y=Ãj~š¦†i´l÷uè¡PQV[Å j¦m»îê‹s¾m˜lË<䤭¹eÀõÇæ3YL€Æ·멊©ß:sL&˜Ø°Ö²LÚÖ,ô.ëô\¶è©ô£ rSU„R7P$ –ßÒ$8­ í(C¡廟v'±+ª·§H>büüÁÏ§ÄØ‡5¸ú`Õ2Sò8!2ØF2éô §›7â¦%¹YR¦TJvH¥ÀÈnðä³>Éuä"ž=Ý](‘ºABHEn_K?¡Ü!ZõÛi`¦9!»’ ¦A”ï R»óùLjeiÑS®†þƒ(ÀnbF¾Õ ó»ÛƒgI*v™ö]MŠZIÚkˆ²B»¤¤>J®ì)”'(ºód*ú¡=~Ïþ±Öý1¿âÁ©8™ñ5JuÊ.ãàÛ^‚Ö:L²Ô`Çý®“FЉ׀ýTz½ª—çôJ)…u0±©Ç1¿ %‚ ºÆ3¡„ùoºmº¿…Ûmÿ¸üíýòËm¿„‹"d²® -Ц„Øàæ^·"ËO%¶Ì©HG2§aªÿE¥ÊT¹ÈÞŸäl¶Í•m–¨òU$¡š\Ü$ sŠ_¶'dñ'“ýþX‹A‚vнä´yrãN%í³£3ÎîHüÅÜ9…é4vÐ΢[`†Ãù Æ#]oª @¥Q¥4¯¾ÚNTm ƒ4ÀÇ©&p“®ºœÅšà•æõˆ©VßÙŽÒ¨*®ÎqHÔ1ÜêiUA0çi´yº)yEÙ>œa!ÞV‚°Æö¹‰ž Dv6eÅoj‚ µê-]¥lÕªN ZŸDáekγj(-yzQ-ë†ÔWÉ6‡€‘Ð$u,eª"”g|ÞïüqçãY¿Ò)!6)À\lš¹ozÝ´U À_–ë>‡ÿÕÖæƒé¤TóeÃIM²“}ØÙ-}…—”™L“W±ó¤—÷ŒòŒ|"¢¡Xû%COQUjâé \/åÞ³B#³´CîOüç3þßoÌi©5àVÄ2£µó…Á?mÞ*F›R>á.Ë©Ë'‡c‹–ÁÒm¿k´…á[t¡E—U#‰SÓÜ?£(/h‡®hàL¸öëq~ßÄ º0 –>!῟ÿþžqê‹®Ù—dóÜ%56©ÊËðØ—ƒ#K-yþµ¦ºî¢L™ô&Agú“|ꈦæµ>èT4û¿Ì£.;ú”3âÖ W«›³özöèéRìár ×Û^ÆýÛÇ®ŠD¦©³Ï¼ëJH÷hØWSKL_D­q’õÃEAËK×"sˆ]B‹ÕEV343p`ÎEPAB*è, £Dုý±„î4|º£ÿù‡ýR£” /xH]ÃÒq¹îs´0{4ìÜeZ±7šu8­ ÎmeIÑ–èVFmÈ¿uêÛ¬«V×*êŠQ¥ä…*à2 ¬ªR¤vÔlnæ®4ï¡‘æG6/ í‡fÚ±IsjØöº/ÖƒXÚ÷ØòÖ–õŸ]9A:ºx®NQB¥5¥HC¥ÕìÁ}˜éݤC Z=S:|&Ø«[¨£ùôþmFCß ¶Vªòhî-¢HÑ"3Ù){³ríŒÏûƒ?>åñd|6«Km¸í§ÿm¨=&bE°–~­NvØV0Òe4OȲүÅ"¤² ©|ñ´ÛTKüûÊÐ>qôÅd¶ø~xÊý)Oæ³a¾Q«‹Qs­xÞT$XV ŸO|¿Ç_ÄÿûŽÿà»< 4GËl…~5NŒ5÷F˜iS±0oja:öBÑuÀÝ"ÞEeÑe¡ý“J$‡RåıÉkãñF±²ðBå*æw€TÌeF8&ÿP5ü}ÿ;Ü Åât†/îŒ ÀŠ@>“–w»ÒŒZÉÔ”VÜa`è¸L‚û»#ß4-‰qM˜÷ˈ£K;žÔÎRýíÁîàOÛ¨Ên ©aþ×ízÛ¿}\~ù¶ÿrÛ>öí¢Ø2m6}\N܇ݲ@´N–4ÊGêXò\+rV [§4éÿ)Í4 ÙýŒ¹þv[äRÚ½ÝrS&’™ÔQ @ ŒQ¢¡T½… ´8k¶ôĀŵ·sù½´•K‰Ò©óïÏ Æyà¦ò¾ý½›±pߊNŸÚ€"PâðT,`U­oj;§Ê¿¨Ñ¤ªØüôpWÄIX¨U5•lÒ*ó¿²ITk–…as¢Rív²ÇÒV‡¡T9¿Ú^øü_¤c–Ò-ŒB­:Çø!ZA—î6óÆä–‘nD`Ì9¢õeH2¸5©U1£š'¦Ed¬™SRü–ÔmÉ®<Š5_Õ4ð¹?ùã“÷ŸOäkdâýó?[u†G§â‰ìÒnTb´¡¹#ª YÈ´”„’'øÌ€Ԅ’–ÀB ’C³r÷b¢ÝèÜæ_â†^O6ǯ#åI>žrÊçƒ÷˜AyÞ?A©Mgβזï|Dùñÿ}ʯ?ðÛ'?ŸòŒ ×Áy²º¶CØQL7l©9Mü4LáõUéœPÚK§5s±´=í¤™(ó»iL+JaðTqÆ•ðç6´h‹ß+Kå2¡ “ÿU%€õQqÁyžÝJ'ÜñËó¢:n‚SKUêD !mÁb¸ §ö¤À( ð'ÁIÄܤ°ÆÔ¹sʼnxèó5üKdW@.¦]°åªÛÇþícÿ[÷oXµWÌë¬É„L8×Ö0YJ_ÛÔ&%R@‰Z‚éçY6¿ÙÝÆ‘nŠciÌÎmõ`µwi:#÷ÓûE‘DÆü¿ÂÜëÛ=‚¤/{£ÙÅœ*±X’&â¶#N?½ò K÷Ry4Ÿƒ¸MÅŶ5BÏÉ<ÕÒQlŠ8ü¦1§5@l ¤¢ž3ÕÙMÄnÃF5ÕêGi«i2ªÅ$Æjìtghy¬RûˇlÈeVN·¼ÚÈ(òx>?ÄÏ; ýIžžtÅðk´™ûs–¶ “3Ägh¡ iJulFñÿÚWp.°9xÆ«3Wí`È2¤øJ"Ò«”gÌPõÇ]îQî<ž‰5o3(—ùùÀýÉÿÜå×ïüõÿõ)ÿùÁy0õÂÀ]T˜|§¢?‘R N?§bØÂ3›èäÜ‹ kHÑ’ö Êh3|-‡M;“Ph†_úÆê"ðxPžÉDÅJ%cûÔÌ΋ã6úrõ'Úxø}`ñàŽq+ß_ϧ¢àù%`Uëuü~0Ž®e>ú-Þ©R½7ÝX¼Œ²†ŠÓò\x^dè¦ûC÷ó:¿¿–b’ž>nü¾›jyêÅÍ«[Ø.áú¶ÝÞ÷o—¿½ï×ð¦a£$€GcÙØTWo©¦©»Þ¦Ç! 5óO G´Ãg¬-?ÍÎoDêËú» e°¢j¡Ù§¢Æ2‚jŒL#cZM«ä_º–I,×ÌV Gƒb>Ä›ÞéÉÔCsՋ牿s˜«ˆûñfÒÔ†Ìßf¯÷¤ªqì7€gqªû>_i¯&Ùt3æsYÛ˜UªÙCÕ¼- –Öɸ¨…¥ TWIJš$Üé?(øc¨¹06ŸM\8í_õ>æƒk~*;…1zµÀlY¨nåaiKÙ–é$ ÍÙù´x~¶¨UwIU”–H“Ù(Í4ªŸRŸdqtÒ lŽÝÂâ!öL“:ÚtÐõkfWé𽜨Lªö%ÆV¼ìe?«HÄâü›m@Où|òÇßñû]¾?ùy—{äýûƒŸOùñà÷{üþ‰ßå×ñ?ßùŸ»üöÉl!"ûë*´ÞÇœDöggk›¢˜¢CZ|º>•ñå¦Ã¡ò'ðÝæ×ÙüÉ]´d˜".É@¿˜¨¢Q6¯ÆW\ŒÑ~2šóÏЄrf«yΪ&}*à\ÉüiÀŒ3J€Aœ&+]SfýÙ>5å;³–Éêu<ýçœX…L‚¥zêÊx9¸’«vQbX³w{ÒH/h¸„ëe{{ß>>.¿Üöëþ–æüQ¢Dçî&µœô2çU…ŠÄºÄR÷¬6µ<ïCH3Õ/gV ýç5ÿNzmYš“ÇwÉ)'#Ÿ‘‘£ÄBÑËè9½ûèS©·¾:š°µÕd©7(±ò?¿v`pÞýNÀÊñõr,¨ð%§šfNqsÿnÖReBSNmÁTMi£&¹»AÞOŒfèAÕüAÜ‚êñ D(ê¹ÿübcn”Ä„‘¡Í)MõöɈÒü1©£ÉS•­Wa"ljÉ*¾:¼wáåý©}&ªyRo®0s1P÷[[DŠŸÛTlÈÚò* ŠTÈèÎNjálö¯zEæ¤èïCÆg|<âç'?ï|Da´,!Í e(ÐêmÙW–c…:éúŒY—$À¥àÂ-œZs0§ÀŽÆ…„-ˆ«K+ϾÔäG]–\<²€Ÿùþ÷„Påû]~û”ßüíÿsç÷OùñLSþœPáG€u{åxáÐgŸÂ¢tŒj,/¦ÕL`ÚwC¿¥·Ôƺ²¥nc¶H–_E«aG¾cl8õùjˆÏõÂ:fõÌÄÿº¿ÒyýéékUN¥xî¯ã¡~`ž'ª®ð$A<ªÇ?d´Ég^0ذ< '_h W&HwèSK¢æHLJ*±b¼0¿褂D1Glûv¹†·÷ýýýòí}ÿv ·R™­9•ãmíü˜0ñÚŽÈ%¬¿¼ºhÍ%ã'ó7‚ØÒ‚Ø[oÚ›ŒÅì§+Ù ’kQB¶ÿj ÔŽŒ‘O’dNWƒÑ›?Š6è3®0zõçÇc_ ±\>=t)_| ‡e .n>ôw{K+úþT´:)“Ÿ*u4ßT*å«Ìýg:¬¸ê¡¥ä@öÅ„©jê£o&¨7]NïL÷¶C$l#šuVÇ(A›o7—–»Å#_µF¦¸#S=5.“©bt²{¿ö´º¥b8Õ)]Z–˜m=NÈ2ötcËAväE6UeŒ#"@`±ÞXøžµI·“ ÿfÚmâÄI>ññˆ?>åþäý‰È)© ñññå=xç*ÈhRe d¶ c3ýyÉR:‡ÖX‚q–âiÞZLõº¹q8§¬þèÅ«È1¹±üŒAi¢ýxÊã)÷‡Ü#ŸÏ<éN⇪¡.G¯‹b{J·Y2Θ+umXcõ²¦…UK‚t¡Ì(t¦Y¼ýQ77roÐŒõ ûD¿VfV—ÖÈÔGÌç@jÿ’¾.£«ä8…/ÿ¿à«»G­æŸþŸæþ£NIF ÌÉ 1úûWtø‘kkA¦*T%Tû”,vkÛ„2gcU¬<qý@/7Çvç!ê×#pOºÈÆzÝùLC«w*\.áö¾ÝÞ÷o¹qJ/é©ÍÚ@QާYÉÎÈR—ž{ ¥<³>•æ8H,„“g£bWÃ’‹ ‘ØúfeŽ6sܸFý°BC6£¾¥c|F¦qa'Uö G‡Ù²Ó¿ðX—G¥ëµˆâͤë) †½ï RîÃG+ötLûè©U´ã¢UHì,Éø–á´Fª®pͺþá Yö4H˜¥¢ 9¬³ù‡½´”™ @*zOKuñ‰u’O9IR4qúåá.hÕ†ì˜Ojüxˆ5”*O·éæ0‹sÄücDÓ‰²X¹MþÕÜæox••¨¿¤Ù²ÝïE÷—wë(ŒIuž¦%M™ÉMTzÐU òUÖ ùxÆÏÏøy”ÛgåF¸°ÝYæþ›À4skg»®OyÖ¥ÒŒþ± x3 Xð:§Æ%-ͺËì”3j‚y4Õôçä‰aNˆæ®W…$b•t£u©iý® ÄZnáæK<¥ÓÍØrà,ûÉ´z|?hòÚVµt_RÁìgRœl¿ÀÁj]p6DDžÄƒ’{qú“3$zèÜÇ×°Ž^¤ýA2?z”~5ÒZÍ|*¤:[‹¡¾`#ùïÊ#2µÆfTYªæÅ8è8ã„úíâ¦Z=T…+GZ4ótuSŽV²µ' ¨*]¡Ül‘zÌÄ ´ÒC°ݯázÛnï—o·ýãmßž¦c±*ÿËÒó{Rt¿$QHÕ QÖ¤2EU(ÅÆ![ÈÂØk¸b5JÕ æ=#²FòtV—Ì1źK¢Á´unyCWBsµ(#ŸIÉúåIh¿”¬å—>Ë\îDÓç¥:(^*€ê Ï/?UG3 ¼B­ø¡Þüß›‹ ÊÔʪj«ø´8Õ"E­¨Ôtf*[šÚjTEjyjÁOZÕ«97 jŒõgQÕšó&Ó~çtÉøÈ^9ÑT³%aŒ¶QS5Îú½9H*&Mfª^¯nKŽÍ’LXîÈH0‚Z_šÑØ$ÁwÙúŒÁ${‘X=pµ½$¤—ŸdFT,[°]½|lþë$ %Fy<ãç=þ¸Çûƒ÷'ŸÑžkÿTµ`7FÞ<­%zþÌì›î¬ÿ½ÓÅ믹* òO0¾€0¥ˆVsë–RvGø‹cjú[³ô$ç?¨J€hú[ë?¤Ó Kê2¿Ok‚ÅpDwÞóm£®æÐjÇ#Jâ¡æ›‚G‘ƒ™Ó™KË Nu¯*Rj´Òt.B=Íàü .ÙH”ÌA¬î:´*¹D¦&>5ÅQ‘£Šn’üÐ&¸Ðq/²µ1¥3þu–xïëÍ1;ý9”jÎOZÊG´~öåp®=’=O9êœAªjH“ÍÎ[ÿ&øC§qý>Â{Ž™œÊø°®ŽT8‹õ5vºl›UEÀv —ëöö¶¿¿ï·í}׫ª QÌï=ä€U_&ß’ëË‘²ÍV-ó7úÈh¾˜ãΓ ±„X€RÊôÈ9IúZ‚èYˆuh*šÈøäóÉgØXØÑIYúNõ3×ïåzªöbâ÷ú\‹?äˆÚ«œy„V Ë0©ör®YÛäyº:s†Ó–ÚjS±j†| û6¢¶ÀÍR—Ó¨»zdmšUv¢q™àÖëí»1Õ´O•!½•(ÔÕ0d3ã´ùü$; ”H£2ë`J¶ô·ú³ŽÌÐt·§ÀŒ(Š|=´L(¤;$ü Ù:âǤ´àLZã¦Ô¤.RøLQRñ)12F’\œ'J,9rÏg¼?âûó~çýï>Ÿµ3yéACpK«;¹™¯›0*Ç:®çâõ¡-û}¡¹pù×myqò<œôv¢ p²7RªN×þ·@ɳeÝ\ù4ý ²I¨Ú#ç®Û£O±éwcø«ÓLËöL$xZs[ÖŒ.AE‘!uP±ð:(óûÊP-üµœ'óÿªýÙИ@£ÕŒ½ –p¯ 5ýoãCø"zž‡¾nŸq„åϲ‡?U'æêK˜Îýá`Ñøèñüû“s/Þ/³“§ÔH³þPò =°úUèƒy*H¥tž}ŸÂ³Ìþ¤ëB* àŽÐª²KXìòe’°ma¿„ëm{ÿعí—pU ‰Œ1'ȰؘÒv›'je_dZ[ÙlQ‰É–Çü-±!öj•táÚ,í”– ¤o•¨›¼ì³î³±ì+±5på9o,u)%<¶>c™þç`Ã^áî¢0›­ØÍ0á”y;¨o~õÀð•Ú…> øéójOw¯Äò³ñ?Æ’ªÎ]Uµ4¦2­hr ýZjñ*« ¹¨*–zE§-ðÜ¡Šnz­âZ=·C;}ay-£•s‰tñµ[m ‘…-PYÒê5ÀhR9Lc°7}Q“žH?q[]™i­o*`•¨aı5C¹˜æj‹”fÔ†K¢ 3ÙŸ|2Æ(Ÿ Œ>£<#cŒ§<"wy>ãý3þ¸óþˆ'>Ÿ¦º -ß§}Èþ€U&ú´©©TçÛm>%‰Ýplúıž/g!tõÐ| ö¥‡˜éœÎ)_PoY½™©lŠ=ÁЀÙT4Á>­Îd ŠM±e´Z¡*Íñº¶}ÕK^úùÍD #ïr^­§TIe‰zJÑØªÀ  !T$šS(U+`…‚Y(JÂXrÐvÜcÓÖv·M߬-Ø;"ñ¤<ª8U–C»£‰?¯ ‚ÅQæD7Õ3ñç,Wa¦áúË_ò©#‰Œ£—sÊÍÏ〫©W&ñ(d*ª} 50µ®»8Ô€ÐJ4Qa&›8çLç˜+ÕI J<>FªÓšŸ^ê7”6¹1qs¹+tÛuÛnïûÇûþím{ÛuS æšðX_'AmU!‰0ж¡§]Çn~´Ê8{AšÝÎ:’° <³è{…wúÿ˜{×5¹q$IÔÍAFD¦ª»úÌÙÝ÷È’2ƒ„íÜÜÁ”Jµ«©¯F­JeF0HÀ`n—ò‰¨ÀPxM‰–페µÉv“DŠÖž*ŠBS¬kŒûÎ-ƽÅTõÓ{ÂzjÏa#Ê,Ë–Ó’sFc@.AN'7թßLÇÃiYñ¡`ȆN1ëÌFBj²L[9ïÆøÁªˆ‰üt-©ð(±þL­×FÑX“U¥~bH?S±Ôí0@»ó4øØP²%´Â›ª¦ç" Ê~˜¤©Œ¬Ó>ŽJ¡–’cf§9›l‡·úYdÓ˜ºe¹¬ŸÉÄg9) jÈùܧ a: “û.q¹oL`tÛã¾ñ¹ó¹ñ¹KÜÉ=)\eòÞøÃ‰„ú¼;/‚^ÿ`†bœÇеŸÕ]-ðŸC‡g÷\âèúZ6Ǹ颛û¿ÇÁÞš³‚ʰYB²uä?úr¥c€¨jù[X%ñÍ•œ²{`ãÉÑ]:•ª®,oâJCù·)>CÞó«šôª¢J# `ȺÂ5G³eÁCò][ízŸ÷ß¶9+I[X$+™ckÇ•.9õ(v VZp°ðŒ3牘äSšø{gýsœz||ã°ãý}ĪE˜³î®R®Z3S“2u+x¹æÏ¨6v{&$íþò¤Td–òßÖ{^Ø ªØ³ &è k3†WÅfŠ-©þïïëoë·UoA—(9ô¾ g(L”Oy £éº²iœÊEIgëã(®¹£4äß©é”Ìf{ãÄX~;ÜØPÍjéñ£Ôˆ×B­Š‰ó.ÙÑÉ.÷¸íqÛãθ·~¸¥h>¿—ùPß%üñ‚àÒdŸþ¶8Ÿêá\pyÜ?®ž'ç©.½=ÛcOzvŽZ‡ÿ6_á”aÅðßÊ¢`ùÒôiµ]Y=M]…t•«ÙÃ…zŠÛD x9HÔúz[EÓ•Œ³!ZŽ+Av@)Zc½´ÇXëP@JD¼µO¹âß!«Ù'ãdeátS‹†R[(JŸå;IaÏEâÌøšÜÈ·­\,> ³1<æ’'Ç‘)‡«F¸;HÛ%+¢øH*‹â¥ôoZ>z×b†SíqÍL©á§ZjµOÙ¼ÿLŠ6Üj£\Tj%a­\±tÙ¨ÓÍægOûùpp¦Ê“NŠR]ÉY-VÇ^Ö#-+˹›§L@.'ðÀ~Öîh ¸ ØÍîÄušsSm}¼ý@cÍ*ÉrRÃO™šÔ€Ò¥ŒÍè… ç*cÃ9%Ï LíÌpkÜ-²Bv2ØGS¾_ÓáqþØ,žHÏŸPy™8 8$“¾:±i]¦ó£ä `)g»Dˆ® òpßv·)Öl•@†³IêUXÌt;±R -Å–âêƒ5*QGü91 E+Ù ¢¤y§jˆ±½‘ÓSªmRR3wêy••!VI5ÛE«6uØq)N4Ÿ–ˆ"[”gdâSë°îª¯át /§dê?2X?Ý„äP?2‘ø-–‡SyVt1ÍÆ•}öÅ‹R:Ö2“©E™Šl 0Xî¤ø±W/øož@5¯§F.áec6Úðû&*üɲêõ?.ÃØÆ©@]nËã-¼}»ýñ¶¼ß–{ÐÀ$<%£éº¥TÇ_/=IîhS§,Í–ë˜Gî%Ì_hªkÌbª¹¤§ åXVdXyOe¡ªð´¥ÖÅ.ÐÄÔf†rÛ·ÏÈ=Yÿé¶¾+ËÊ€1Á™rx@æñ‚¯üÁCö“Êó°Þƒ…fÈîÕr°ÆÄ¡ú¦Á´¬\T‘ML­ÓüÊ‘´4#¸2U+-(U¥˜0¤«ÆÊæ+[îÚ°V㌵k7uòðR/Ñ~iMó&sµ*^JÕ’Qi£­ÖžÎ(SÞ+¸s|6&©š8O'³+šÖ€U¸ê°º8ØRð’U-MmÂËVùçFæàôAÔèDìB”ÑxîR¡l%â?ÜŠz`¢X AÀ˜j«Ù)¶f 8ì…ñù³VT`ã{º@~½™bRëÀ7{6Ë7jžò¯A‚Ú¨_›Òwôú`:;óˆ¼ú–B~¦Hú6ïf,%Å+Uå{Š%õU d³U+Ý Ó«-’;>ÎZR›ç±²&²²j.—Õ£rÑ¥dÙ*Ô˜Sý3H2§vÇÇqd7îüÊêýGþ¦_ÝÆ€ã9øjàwàTÌ&ýÇú˜K²ÞÃÚóÀ/Óç™8Ôúº%c©„qòö?ٮب½€„ÈX÷^FâYÕ¹$ ÞSq`Àš&Òôî…šÌ4¬ËíïË··õÇú¶èª€¤îEîÙh›|ð”›y5Ø W‰˜¿¤•ø}IIî‰&uϼ“x*Õj™ìÒªe¼^!{ÄTÉ ‡Óx9îܶ¸í1 U˸~›n1. ŽçhöòŸLpü=|ùÍIÐò—»#+q!|;p?˜Æ´™ÊLÒ*øË!U”N§j…¤C˜jT;•)¬» ÍÅW_*¡ÊÂÄèÒìNéS+`¬¾° íuAŽ{CCL¹Âõ&VôFÝXÚá)Lö­5‰’ÓÃ&Åšý˜eYÆß"‹'êˆÂý–ÖWŽ<ÈkG°â¦2~ÃæPÅTJRåK]¢mQU_¹`ª_›üÆä’©ÐiT­ÂVÄ?·}ªøW(âƒV¯tq>D;x»èMòõ̃Ú䄸’Ê€T› ?r6c¡2líhòâ™éy>F²ûèCúj ³BT’삤ß$¢W‹ä´¦ŸŽü}ò®0þ(“·£fÈ¥@;Kpb"Ú¡£e6’^%û“ß?çÃHl~ÿ—[ÂO Ð¯yÜ–L9šñ%MüÝøy2÷_+úûgrU_äÚÎ M£VûÔÑþŠÖgºyTÕfâÄØÚeÛ„£3Ë\6°K÷GŸ¢†ƒŒf¯P ‹.·p,oï·?Ë·ÇrW]cè$ù¨h…3ÍÉb…¹Ù=5òÎ~XÓ²×Ù»¤™üN¹&JœÈ¦$`¶" Õ¹»a ó©ô{5 ¨O Ž3cïÜ÷}Ûâ¹ïyú}Ù §_¤Ãðkk­i8øÞ4«³×ýàï%áÀš| ‘Ñ:M, hÜS-FÕ娑©)ó„ùmf;àXXXÞÕèˆv£È™öHúä¢Vf ¿ê «^‚L";\ŠgïÌÉ4 ’éÎfÑÇ2… E2Ÿ+3‚2¸ÆÖÚqT`ÙéÀ¬—­Ì+ÍjË”t ql­h. ˜5»ôÊ4[‚ÜΫŸÒØm´kxcëÑôw6чV2×, 6lÚ$®+i&¯ªBöífh͆¿¯Ö§±Y‘˜ëk~ò!…»Šý ;ƒ¹g X(ŽÔgÎfó†Êsªh-|Re>|Ñ=´ûE3=’èRM©äÊÒ<ë©4ªš8 ÿÂarË9ÔÃU³›¶øŒÒóoJÑÊíç*z¤£%gbÉLݪƒªHY8¦g·”á×»Áõ‰ÿÿµ_G Jü­‡ÕÃüðÞs(˜w[ £Ý}×éˆAÁLÖîÔ<ÝœÚ"ø!ÎBU#¤êµÒYˆ"cEokXµWÔä9µh2S‰J Ñ Þ¦¸Æ`H4TÔ–_ fÏÀ‡1u§1O=`Q•7 "Û·\ žù@:øhHìÌ_k+D¨)Éæ=6¦-7Zs“ 3aÊ$1õôä˜UМSóÿÇ2¡ŸyÅ<1Yq‡±WgX6ŸâÕ³Mm>È™ËÑØ´›åßX{bÒÍâñÂÿÁ…¶!8çÑÔÏ€e‘E`‡aæNû)3ýØfl™òÏž¼–B,Άa…*Ùh’!…œÉªÌYWÙ,Ûr<¤c|ãDpq &J©Žqü+zµ€Ö :MMêYDl-²Ï˜×ÌÈaÖ‘Ê#?Â'þ_©ÿži)ñJ ð7¡Õ3>íÚŸ„H]UàÈ«l9tòì¹€ªúϵ5—’ëf:G³`J$õ –ólÔ±\ÒíñW<[8ƺ~žGõ¶~{_¿ÝÂ#h$¥(KaZÑ#­éƒ¦ûÔ°1˜E¯ØøØ*e¸Vé_¤î±ìfÑ^êºçÄÔr1´ ´2ß“FžÇº°ûŒÒ1C5 `·¸ïûsÛŸ©Iµ”ÇŠ±Ð›VX›øê lκڇzJÓŠ÷ݡˑžp0æ¼ýÁŸß®§C‡y&›§NµÔ¤ï&\b¢ÔћӤVã¾ø.oÉH˺ú]€XXH-áK­Z‰{ßönØÊ|H­‰i0Þ*bÓ¦6¸ÙÖVÐ`¿z]rßs•Ù·˜­DÍC-FB¿DùóüŒØÜ/¹,‹ƒ‹È×QÀ”ÞînŒ[må¢;=Y­d—4ŸXá2íPãgéXxXƒ~CžÍ3ÈNT¸/Æî;Æêw˜–È¡{×& îD“JæSÿBµRÁ³]ñêWוåžÊÑ ˜°àªa€ .Ï“Ù-dÊ=ç'8a—GAEËÌ,2=Ô¨§|}Ô¤œ.ž"(³Í¿òšæÓ¤Ñ˜4HjïùšÏ«‡з §ûaÜP9.£°O1³nµ(y£ä~Ô-2PUïT—HŹzE.6KÍHâÿ‡@*ÎטíL?c¤ø)œ:Äpò_~ršñú1®ò´t" ™йsé §×GÚ`S#(]¥ù””ùatüMôSr÷›ƒèr4`¦Æô°èr_noËûûúí-¼ßÂ-hb˜*´ ¥¡UVˆèŸX-‘ÿ˜ÅÀ“HŽhm±×ÚV‰˜Ý#š–™L"% Ž@̘"w=@bŒQ4¤D…Ü·ýsÛŸ{ÜbŒ$t'¦ÖB9­b¾vf?$é®{ @y]÷|,[ÿ2b¹8µo»ð½>ΉhÄ¡&åßäÜ4ýÏÒ&î- À3¬Òñ¬Ò¤®2ªÙlϪ)1A6ÙˆZF_D× VfœÝŠѧHæ;4³>9‘ªþòqуµa6ßÌ&nSælb[³{ªcº%ø›i¦º5ÑØ« ! ãdïwDº3GÅ[ˆMg.ˆƒý嫌Y{è7VâÝ050nCó|‚Òkiˆ6÷7pUI2­¯”ƒ*LwÅ{äyº¹Œ8¡o´ñ?TRµ¾>G\žÍ ý"Q[M ¥jžÎt{Ç’\›øñä¦ÈVKªšûEjpœf‡,YK3؇­À]6¤ŽÒU¸§¢"9'íi6B†ë '¢E+“ÒR·]ª}ŠrR§®Lüÿ‘ÒßB¬šç 3 ë%ýuœÊ³øƒÞÎU7_¨À•+Q¶­€P ª¼Ž ãKnuþoöÓú²×Þ¿ý¦Z5â6øÞ²”mܪDi%™b:§´lÉZì>´Vre;¶ÞÚ܃Æwui$íöЦµVU¥ÿªõ5!1É4ý]=îqaVŽjâàVZ)5ƒpÑáLTlQýŸÝ=m Á¬Ï6'Þ¼Š) 3Ó#š\*Òš|–¢MÌ÷›c“Ë%[ÍÀ¢ì±¥u]4`Y°hmý„˳Ã4žîP·×¯Ìa·‡Êü$U?Š×*W[YrÚ ´õÑ¡æ(T¶ŸÓnΙ#œ ê_(9ÕSjñFÏBZU«ÕÛ°)ãæäy«¾‘Ÿ6Å*» KÈÖ?W¸ìªÒ¢ ç´‚­&—Áí-5³¾Ÿ¼üh–ó£/‰7@,ó‰hAI*]¬€1æ¡9'qbQõ*‚:véJò izP &¯ê@SG{2 £Ø~Ú(þ¹Ó¥›Ê›( Ë[¥`ùüMÎÒ|J–•g8í1_;?K¦z½Z¡Ãг‹˜WÏ^-“˜c?áµÚ ý .IÌ j7êSÈ¢X‚¤ ÿT`­0NôAu£ªwZ:\äç·$$—Ur;çFÖR%%ZªX Hx¯žt@XcX4[Si¡ho½æÌ«×2v™¹vfÓ¬E¤ŠÔ=Ê3J’¥îŸûs{R©ŠÕ¤Jo:æ1åxMóz‡]Gëá]?Oóž…ÔV|ýñ?MÌz­Àp2÷w‘¨íÐÓ:²m‡ªÑž¢ © çªbR ø¬º±¢“SG56O0œÌÒѧL¦"5áSpUäðøÈ}Cô†BÌ´ÅR dѤæö©V%0“ Õ³œé/!?fZ>Sp´÷žÈT­­˜,•ÉÆ…ñÓeÕ”B$–1­¤*Æ[S;½æ¢UXÁk^ØùâQ.N¼A/Â5Ù]±U¹¨æÓ6žÁj„5¼õU ËÌr æVúîÉÄÉèQ®dƒ\W Î÷;øUFÖ%¢ÚÛrÞŠ‡ ßhΣ¸T¸tÛ—õ d©]U3ñϹT`Vì‘]:l­€CÛ]9Ž­QDŠï–ÃÞÏf5Ê4xX(ö0DqmÁõ¿E2ТШó{úŽ…b—&þÒ ¦ÿ2•ÿ¤Žà¸,m4Îÿ .¾ÐªM^ѨºùÃúò?£iÕTE‹ª’ò/¾Ž’ª¦}»ÓœUô£úÞß6’L~|Ø£Ú!‰ò°ÝOL{3!èr··åímýã¾<]€Pl©m(‹q,#Æ’½M$j´H÷øŒ¥CUFÎN¶Ý¡•ùlµ_99žBGüOãÁ/<§8µ7‘{óugÀ¥òÚFC¨Š8¼*625»~š ]@®s‚¢ _­¹'׬Ð^ýÊÒVO ²i ïšYåVRÞ‹ž cöiA"1Qz”uz“’Ïú|J¨«p(Ø+k…ÝÙ ÌBÄîÐP°©–>g]ª‡'ÑS[*®egpt¬ÙÙ­AÊAØS%<ö±i)QNkäŸm {x;U—&óXC2Žwè€uau1³æà|Èá=MÀ×ñH¶;RX«}J‡Ákn>è #p0U<š¡ÅÎùO¢™È +ËRƒ,*!r¹T ×7ŽUL4FíÆ¤SS×n´GDò¤[ü­ŠbfÿuálçŠSžÕO…”Hì[Å©Qr`Œ7è±—^'=b“$+ª_Ÿpÿ <Åœ‘ÇœÝüÅ×f|TÇ{GþçâØ¯™å =¹–."w¥¢ñ r®S˜=óä¯ÙﱿmOëR ;ê,›¸ï¶@-EŸ`ã.j¿âÚÔA¥Š°„åÞëûÛú~kdJtgÎPEIxKáT,Ši‰ežÜk〘Ð*ì㘫¦ÐÏ}'2|C^”JîÔ7Ç$ ëopg¨"Û€&&EQ£¼hŒTÃ/IeáQQB$£ìÛö|n[Üv¦Õ¹ ^Žª<ÂðåÀ˜ÀËO:çCé nm1N3Og“YLÆúTí˧ÄLëÝ€]C•ca¬¡6ô°rš-êÎeÝýCϪ-Ò´“ up Æ€a,éí•RŒŽÓ`såT/¬æ`fC²£± Ôl /"éaÔç•Gö¥±Ñƒ]@1FÚ-¶6wÿ@S¥m°o?ÿ˜hÛg‹}¦‚ÿö±£²¤Nc¯·ç†¿ˆEóŽElïˆøØ¾œÕR­¼FÖᥛ=¯¬$­m®*j(9;Tîï|Ÿ|=H¼ÈžÁ}:†ýf.tH†úYNiíÂÌÿîŠÛEN*Í.¥bÎ h]QÈ=¨ª¢"AóὪ³vÔº’_¿ÑØúvx˜ÆÀƒTæ‚î’Ÿ ä½ÍKbŵTÇNnIº1OüY§w4œìWÀ(O küj:¼G8ðqÿ«:Ã~Ó{³š_æSå0>ÊëÙÿÁvâçˆÕº;i«U© ÿÒ_œ—•œ)Nñ¸€º7ôWÁCÝn¾æêÁût8ðæÝ<‰SïËýmýö¾|[Ã=hRb¦•˜ÑTe'†”`$[®vG‰#Çå¨Ùo TÚÓgº]¦·jLÝX5­]¬/­‹÷E5óÓž£-Ó• ]xfUeþ”ÈyxÂÈøŒÏçöùŒŸ{Råp"ž‚Íñæ˜qžç–BœGœ«¦i»ŽŸÌœCcÌëáÃÂê’ÜL¡¨H§訮êç×úÿ‰Aƒ/™‚óŸ«$¶_a áÊ^mZ"uü(áN˦s¹§¦Ì˪󑾄úïñD 7S,MµèBû«ßÔš;¿&Uò|ƒ/±Ý ì²ÐÈÉØ«7ø×q10…èmì?t¶äÔš$2íJîn•r®„ôr<|5—§Û²9²C+ŸZw¾JϽ”Þ`6Ρ9˜AU£%c%'æþYÌS¿ÃÌþ¡­UåšþËÛûòí¾}¿I÷µª˜`ÝÉo6Œp/ Mï‚.kXáým},ïkXRšlfñ¦i5LCÿ²ÜFç«]Tî-ÖÈØžõ”Œg°4ZJ¦qŸ¨ hšûDaÅ$t IæXt  °UVGÈ}•õlŠBþQÄmßžûǶ}lñ¹ÇH‰•‹<œ‰ûûú°] 5ïC? 00L: ’¡‹B“¯IT1V¦,ùœ±°ê@º’T«hT-±¿5—v©«v’o?u÷ýK{ª}M4ÊfÒ1­­edNŒ¼µBŒ#z´‹—Ù SÞI02ÆDÅèË Ä†·‰˜wl«tR Ø4*`àÛ @Õ×B=Ò+Äî¤úÎWÉÆ"£*€‚Áÿ„³Ÿ¹Àòfó œìn2ˉNjP'@µX™îm•±ŒÉ ](m¼›øï:ÈéEâUa*ïzµå8×˧¶ã„l÷Vªz Åé/wé–’™]‡ãÑ)—ÜÔå9¥J#7õzdr4J|Ú#È:lËkk>o½›SúX©Û.å¹ó¹K¤ì1ïœùÛ¤ÈÉ'tø'‡iX>]dóß°™uÜ8ÞÓä˯pðû¿òTŒÉåªâ§öì,G…Å©ukÁ ßkÚ‡sùú¹¶³ÕÙ•™÷w¢Ò168‚ªåœO¬!©ùPECXnáþXÞÞÂûcy[t-Öè:£ª]-DDDQÅ¥Ò=h#%b"±Ä‹Ù˜‘oFKØÓÅ–ê˜ ,ƲRÄÌ3ùz—b{6=$ÅiB|>wF®ÍýÁDôP|«N½F>?·ÏÏísÛŸ1î´²fÖi*0fâT7¤äèù=òêZà}°èÛÑ0Èv 1(Rf#¾¡iB&iNðÑó¦-˜™®lè)ŒÇ¿~µÚïUeíjceÕTÑôhCÄÚ|çUÐíd» û±³­fâÔÐEºÁGuå’˜í±6ïŠ ½p~ÏJÄÚø SyOsâçt`úª+ð³YQ%Û˜IJy-:ØGèaîï~…;geF(œïàéaíð~â\›|ôŒ—«”«Ï¤ WÆä! }ËŒWß»ö#YeÔù•`[d¬.Uj §‹ ¨¹¸mnm¨*c§ðÒÒV_cã–Ô¼šBú«Ë(1¾^Xe_F^*:.±ÊÕ„lòCHŠ”¡ažf׸ èÊú§ õþÎHŠ`sH†Ï¿±—ÙªVtJÃQ›qwý`Ø%%õDPswr9$Ù~¤VÀ0fÿÛ’X¹¥»›J L&ˆ)3H·9¾úw8GYÝÌN >¢-fÉLÇâ+öÏq z½O!WÍÿ¤=©` 9@ÿhÁ±:L0”ø°yŸ±7)AB!WOeZÜñõ[i›r4µK×b ÜŠá‰Fž6{=¥tÊ&‘Á^ÀÖÓÒl׉,Àegöõ'µºû[éÔ0·…¿‰Ó­2ª¼´í”cå—aá«ëÁY‚Ãïú—8à[¿>ý÷sÿ ™‡*Œ.¾]ÛÓŽâ÷¥þ¯eP¼v8QS9^kŽE¶]agÙ?&vq0Þç8V­ƒLEXÂz÷{x_ßW½+B¥(ŠßQEkɲ0F"ÆœÆQƒa꫌f¦fá2»QëK}Ь$-õ®ëÙP-ŽÎéœ*p0]Bã›ÊK`EŠf5¨QîÑ •EbŒÛŸŸÏÉò¿sçÔæÏq9¦à5åä±ûyî”—ÖJ×Ä3ƒüpôI¿H` ‹q¬'©“½ÊÉXœÁ¿׬ =,®@^Ëš 5¤¨SM®Ê«$¼çÒºª-+Öñ¥¾ €†%«x%?ÐÖÝ:ÙÜX·VõS…q‹”sË¥ø–Ýþ ˆË;|§x]¸èæ‰OUõÞ^NF›Žf´ðm éO°viÐÜŠE3TMOî¹í‰4ÇÔ_U‰wÀ±8tïÖJ€¶³Ú£$¡%6uäÌ#”>Õ=JŒØ"“q*¹¦“jæm2Áá€ÔžÀ—wˆ±l¤_ÕÑEõþSn*?¼îÄ;rª,¹ð"sþ9gÇÞGÚ>¾üv9ð©!ëSÑgËŸAjÎÃß®¶¡ã»úyÕà²Â0’ênö¨?%T­%­Fºb¹…ûûúv[ÞîzÏsÆ›4S«< !eO 9ÄØÂ,rT²›  /ÉkDÑÚЩ±| 7égþg0úžÒâsBýœf€¹[J¢õÝz•ìŒ%½¨ ‡>·Ïíã¹nñÙ*©FŠKrv|>?ëà¢VûB¤ÔäiDw÷9 éԪϬÍMî‰>ujëpj×Ce +ÿ_;^Åf˜¶àTPÇØùʬ9isëíûmT PbÜð ðãz·\a3õåÄTsÛ§É#cN¢J&ªÚ^a:?'Gdø<°bìkµ— o3'2#8Bmù%‘]š#à¤CµK ÎøÙ‹ŸJ˜Æ:Š(lm‡…FèT°0ñ¤µb9Î’MÀ"݇¹[·}°† @ ËŠVu/&ÃHLòè0ìÅ—Û´ÌÉS±žÑøGøòy72«ŸÙ.™$Ȫ¢ê­f8\ŒHàgéþ½kÜîéðSð1‚æ\ø'À—¦éX’ó¼­Ú ]>¿q©µ–`HŸmÎᦛ­“ÈÙ¥Ü4F”Ià)ˆs:Õ{¼@W¿ùú€9Ê_ú\ŸùýùâûâìCùùPö|ªñû»Rñ—Ùs‡1°Óô±“¥@†s,ÙucXl0#gá Ö¹ºiê4hX°Þ—û#¼½…·EoªêϾ%Ô< :#)»ˆ¤Zâ¼kFÂv¾´”˜ˆÞÞMcx¥Ä´õÀôŽIUÐ4>` -Šól2ˆc*.ˆV€Tmtú¦˜`¦¤ÿúz4ÆíŸŸÛÇçþ±ï[¤-iæ‰n†‡3úa2ûꬃkr¤ ¡§œ8oe~6BéÈ8)‰ŸÓÇt…ù‰®7ö‚TñÃ=óÕ§Úù=܃Ï6`4ãÿ–§uZëÇØ~üÃóûÝNœ?Øâ߉f+= ,ZŒKÖLøÔÚeùû3ÅT«E ݸèÛƒjN¹ï´O-R7'…hBÒègÊpÆ`Ž2ç‘–*vQúÈV£ùÞDÂ×3)$Ñ;fàfïÃ=¨ÖN¡³ý×´ùI-Áfÿòþ®^ê’›b^Q|E+"èf1PGûh÷ hìr_¨õ §%ZÓV›q×;R:…ãS¾7[%™Š Ê š|ü;e‹ÜcéMv´|íÓJÞ]4ôÞ„öàws¢")·7Í%k&þuyO{K,~©”6õŒÙ8µQö4t̯ÖjQ<ôlr8ƒ[´D÷@ÿFʲ'r» É ³†¿!fÿ2ëÛ@Q~vÛ;À©rè>Á”3‹Ù˽.¿9À©VŸ:ò¤È³ŸŒ: ¾È:Ym,ì!ÕÉ2ì9úI~¢Øržò¿ÜõþXß᱄‡ ´å'&æUÜ•ŠÞvD‰²3} JQª¯3„Áþ˜W†|´LL+¡sC¤º«U-l†|I~¾bUÑoªS­×oÒW—ŠW§ÂfÖOïhL‡É¿Ã©Crj¯O…”Tk¿Ë°´€ŒÖ$ÐJÌ)Ú{%ªè<^yÛò^L+Ü3UŒ˜%ѵ×KÀcÌð´üŠ5© ™-l8¿R¿p'ªî³à 43Ùç5ÅÝœöµûÏãÔYÇK<1³4âð’ò¥FpŽÚAsÊŠ?}Zúp€Gè#ý Ðëm¹?ÂÛ#¼]³Ø.ÒCc© €)’ªöGÿ&K3-Ry ‰ö*j8t¡Å6ÆÔ£ådup¶F&çiUÕQµú³ßPyº ÖÈʲÖe_r8§êÔýósûñQøÔt‚>Ř/³û¯ƒT¹4û8Ÿœ®R˜ÄõavΗ3°üð÷ÃôHëŠùTñQúž¢wīɖ2Ò$¨ŽZ„QÞßz>ÞÔ(+­5iÅoUG†6sÀ„è³c\QEýäu˜\e5JA§ ÈDEjÙicé-ÂfûW}°tar˜àCÛÌî¥Àl( 6ŸÁÊbÚbΡV-ƒO­ ,.ÆÀê¨;½#J,ó¤GºE}ÒQÅÆSV“†Þhå2|[$sëólwj+pÏ´¸{ñj?d€v:çW{: å‹‹ëKfaVƵøƒ\Ï!cÑO¹€ac¬´‡() ¤J²7k’¢R¶]öÝi‹ ŒÅæÈÁ(­ÞŒ=Fï­Òu¡ Úfz1·ÂÄœ6%‘²y²¿ËViÔ({D¤ÇÓž†FAN×t·?Ñh úùÆñ¶ ƒbºôŸ­ú^{'Ç–IËæ?\§±þÇs÷WðËàÔÉÊuð›ƒ/w*?òï}Tbrþ!CüÈ…ƒË„öÅ雺D¬âècñö ’à0d „wcô¯@BÈù©ïp_õrHmDŠuJ%Š€ØÉ˜<Ž9 ÓOÑRXn5M±OÊÔ’? “ÄÔð㩚2¿àÈ[’M\´†+©¢˜9Äòe†O–Ä÷”Í’ ÕT®þ¹|lß?·…O§GV¾º (—7’_|¾_Ém0áKúyýè_ndÄ`¸±ÏuÕ—G|ªŠÅ‚oQªX´jÐQ Ò¡›´duI'Wa*cÌTÚù1»"`paƒW“=K éžª®úfšÊÿGIM¨¥òÍ0p&ËæèsœÇÚ! {£®Ôˆ¿ lgkã_è‰ëö$—¹p¾ä&ç~Tvпƒ8é³,C g+içXýð¼Yf†!“¼>²¥¡Ål˜ÛÆU»W˜Ý’!Ì"j>é6¨Gkçc:’šÃÎц}Ùñ"ìŠó®²”~úºPT¾h@Jíœí³§gJ£¦¬1>í‰Ê!]5UÑ4ñO¿7 À–Ìþ%¬åË)BDJ’²3²ÜK°?KÛp3ýÖ¡¼ý†©D*™0¢ì@ÄÚÈHlä¹El;7"Ûù#ö¢RR}ºÍrÞ/e;²Ø`2ð==áÔ{…§µ«æo¾#sóû?ç¦ò88“»½ªpêtºÿ:ݱ;~ ý/Rªy ÉÉ©P58•œinÎ4ë³ÿ`B'¾r ÜØøêÄ`7;ÌBm¤v䉢KXná~ûò¾.kÞìK¾— Ê.2Fîµ± hc—r!áIOH—ÛÃQ¬Ôfp¨…§†7‰ÿØa3:­µÙ¬2íÖwDX/W_‘³ `º=[Š|œjŸ7·‚55}YC½ÖH £PÔSqkYjÓÑ•žfä 6# ލGÃÏìÁ\q#Ò Þ2c±Hà4¥6[7áñÖ¼•N¿E“?T–£ÆFØ€ÝÒYÖô±x2mÉüœåê™n´~e°å‰v‡ˆóJÕÞ˜,sm»>ºÉÙ^TîNKvÛ,Ã4ë*§j¦ñ#eß±Ç\zXao¾A™}‰<”A2ß™jˆF&ß}¤0"ñ¯åoµ/«Sû½X£væT¬½q¨Hó-毌t¨W\N?<[cÎøMdsxÀh´+AÏ¿Ø^0¡K_о°WŒ¯/€º¿¤žäûϴܧ/)üÇêS1ã™qõEäõà£=~OµS ­sÿiBñOÛgçÖ©³Šc³NÁü´Âåv…õ¾h2ÿ-MsÿUïåñXÞVÜUƒ©5±ì«%§8͸ó”%v$̘ÜQº 莅c%*bóÚúOÓÄa¼œzzÌ¨ÐØ_àëÄÆ»4Í‘y—Œm6ÜI÷JQŸ(Hì|nÛÇíûç^øÔZ¶~6‹9Z+¾Z`Á_|Ö/´M‰ÊpQ¸v»?àÿE¦Ýé^{ªCnæ»7£êçþ–2Ód›)›¬ïÇ!íhi ?Þ«ÞÞ½³ý£®E° ÷qjõ«—À~©c}iÃý’*eîÏöd˜ò"ËŽ:3\‡„}ª«/cËöZ3WtJ;=·*äѾpAaVÎaÜUôQ³½Ý½–K°ˆ|PæþåËZ…q¹!H¸ZWùê˜ãr)‡ÒjÖ,Oö룵ÕArѶÖÞL$§€O5ÿn‘™ucýì#9fnÌ¢wpYMæçôøÚj“.ƒŠÚCŸü¼²]—Ͻ渱ߴK¯„llÎM„éL³K q>iªè-Mÿ šfôQ¢H̰•12aÐL‘¦ßì)7 {”HV`ºGlQ62ø“?r£ì»Ää”ò• Ýhteð®ÓêLwÛLçÚ…ô½v6¡ß;q@ÿ’pìPÇõûóÿ)‡ž)“mwÐÉwOÅ*Â_Þ ê¹£†««!0•¡I¥ê‚›‡ß\S¬ÎŸSòx›>Ã8•.±ŸÂFÃMØì^T#âÊ¡€JºÞÂz_w}»-«•Ȭḛ̂œ™©žkbµõZJª5DÖ•’£ÎÅ:—]äM'Ùx£tÆ”ÅXr“«TS4Æý¶‹!ÂeÑ»Šõ,0[½@ÁõB§+“r¦cÜ>÷ÏïŸÛǾo1î|%P繎Lxá™rdz~é 'U8Љ»0¿»½ÕeÂñL®Âü«­#µ6/й7£àÌzeÖW9ÇF‰X­ «4…˜Æ¯÷ª…–lj¾Ù™œŸ&?„±ôçaQáh^'¬!Ì€ON^j«*{u¨X®§½öck¾Xm$5@¸ö§Z²ú Kv©¹»­‘¢5ûC)(v\C@(S JMÊc§ÛwÍÈR*¡ššµe3Ù_RõšJg„”lCH—’ý¤™ìÃßP LçÜptH´R/tˆØØGq¾Á¸-(Qª¨XÓ :<Ý©ÔÙB˜»Ž'±dkŠ2•ª¢*Õ¿Gyî²·æiL—¦d«b ÉĘFÙ)ŒÈdj¦Lcúĉf´š&ø[ä¾c‹²EìÂ}O°{ŽëGÌÿdó­Ÿý}ŒªR.š ²õ±V:ÛŽ:ø@P“ÎâE¼Êcøñ‡€‡ÛÏ—·¿ìO+œ~#«z²qñìÑ9eEÿǹÿ8Fçù–7Þ˜ü9"Ê?b(œªóQ±câÑM¼®D‚x¢éÕ2rx\‰´‡§NÜ#íEøl#.(‚eÑÛ=<îËÛªkÐ`Þ/鿤1JŒ’N¯dRš·5¿cʲ, ÒiFFغ£èC ¤ï—ŒÝò\Ýš„Ëžc’jγ ‡¬`Û¬/¨Ô jsbßí"2û 2!öüØ~üx~/~ÿ8ô!rãR½–ë >þâ €¯}¡¿u0±*s*WÀñÿÀpÛ‰0ð~ð3ØRT§/:NÕºúMz’e¥Kd‘ÚnV›€£T›JˆÝ¸¶š1Êh²ØöÓé)f25göG¡)˜’ÖcžSÍÐôätÍ÷Õêåpê­ïenB\kZçÑhq‡Ao;È'ЦÕ<é.Ï|0‘!†oòMcã­—^Hæd‹Y€Ç¥þ|ÃÊv7# ­ô( Y Í}…€d\Zn'­|j)…0廥@&½y…v½M`^§«Ť°í€¶Dß7õj :\É×Çá<ýÏ)ª¶O‚àYt¤t‚Ex‘d‹PË—z ¢*Ð '‘HÙ"7"ÆJÀ“]díÐFÂÛâ2X’i"³Û©8¢2óºE‰’ÝúÙKÓi,WÌÿFÐuÞ J-™%&VT²*7É)u\í7°[)®Rª–Ä8ÒüêÖqТKüåßʪθ|mó .âåWw›ó%A'ÀãÅJ¨M%)¬Z+Å3WÂ˽3¾}6`Ìÿ‹Nÿ_^ñAyá»ê̸#¸­U%iº¬áv·Gx[õ¦º@Êߢ½Biš’7XG v†“¤ï>s-Æ„ØZx+ÙâZí¢\>›˜~L,V졌§DSÕH&ˆFb%P枭ܘâ°¥ûvhþL”ä3~~l?>žßŸÛç^r©¾>\“©bãXÙìdƒãƒ~úU01ì“ “×7i÷…c:‘ô>ªz ;>ÕAY7÷¯DpFGõ5]¥I³‚˜ºi©¼åsoÓ½XÑh†µ,ü"Nžäd‡bšŠ% µž›í¶´Ì<cØB``9ºÚ ïÑ›§¯‰¹Ö ˜º‘ýHá i,è(APèŽ6È%§}EØæ5! ´gNc·2Sa÷ðÚìØš·UŽ*E™}<‰Õì4G¨–<PUNI9„ÏTGþ¬`÷4¥kµ½ §&|,YW žÌα³Á0çvÅÉÌvßóP 0Ÿ‡Óc÷}ôâ¦c¬Ðšö(ftQ‡þA“8µqÕIbK{lújÒŸÎ8j½Qµ¯ÍY¦ØÜl4Y¶{†°lÔB[é€)-1MÏ×MRfU&·vHåé+Ù[µœ6ý•TÁUñk¯³R¥&˜F9i¬ h©¹½Éó‘¾$‰-HM T”ä©|+˜Ý2PÚTd—)çÆÀnpI?7*‹ÞTN]èÉ)î¤Ù“J“éçŠD ì[¦–f>”’ß²³ [J„(½ Pìø¼Ÿ"µj¾>©K«Íë³j!ˆ4œEšCË—ÈŸuKV2\¨¢-(ô/2[f¼p- ºž5/áÃysH÷óœHÌÒËfwGÁC.¼¡¬£æ€’µªÅU ½©9=R¢HŠ|Šî„^bî&)óv'ªÆ~¸Þo¦Ô, hÅâZm&¦(¶1˜b™­Z©%аT•%Ô€ ²@‚²@óü5²˜ß'¨²C1µìH§Ñ‘ƒMWd†¿Ûm;ÉU§(Á¹bå÷`åC&_5ØÿÃÆ\ª«Fo(Æ9•j¥7Gù`çäoUˆd׿™8@pÐâðŠD™›s– (^!}§Ç5`˜1¯fó†jXt½‡Grý«Ë¿‡=51c$%îyúûºD˜p¸ã¾³ØjÙ€€¶4 e= j>¶ÂœØXL[Ÿ4»ÂoZ:œã­›Æ©ÑÌLA{Gµ¦Á>2²T¿§?Q‰Âgüüx~ÿØþúÜ?ö¸åâõémá›F_¬ª_z~V¥ŠKº•¹Óß“™¡>“sF53pÌŽqªúl}â/5*XÁÜVB3¿MÚ÷:uóGp´ “2­;±àÁhw‚4ûG5÷cVB CZ—|-½„…æÌ“žƒZû½VÍdáÒ ßÁp«Å"¡ÚþÐ'Nx«Û±‚UÇÙ[-¬=O)Õ2£ïÛp 8ŽVïŽ<íØb‡þ*šP™G‘mgÒŒVÁÌ$¢×DËØÀ1³yZ Ô…˜²`—«O§åéöÕJ WU+îLäh©*KªÚJ¿ÉŰ…EÎíÐôç™O…ŬÄ7Ò®t3üN\8]ög1UÿDFgA©€í` ÿ^þœ–-œýþUŽ€I|ªÉ_ãšk#JèˆÚÑ•‡(è$ª/ìÿgIê8U¤ŸöE¨:œ ÐÝDpý~0ñ"’WP„E—[¸ÝÂãî‹.ª K!J-‡)‘1×T£ydÙµ–éCy=e~ÎÜÄZØ­~4ÂÇó…‹Æ<1 u• Šó#ÊR{'Ñ£‘29Ô4   ª!)¤ ÉúÕJf3R!"÷çöãÇó¯íÇsÿܹ#Ìl39{b'ýÄK>Õ±ü…õæÕ$ÃotžÝ<{âN|ÝÞw0÷§Ö¤ãó§ÄU§š¯ƒ)‚·Õд.ZÕtãŠë/,œ$å h‚ø³µf>$§E¾éXy †Ì·Ýè”n*Á™Ø‡]ëp½}ˆ˜“”¾,pXµ)}¹’μÃÊ%);æ±#ÍÀÇq’pDócËG“"84¯ 9­´Š’Ê»?8R¡9Ž4õš$)dR{©B 5‹ÚƒÊºú„ôs»fÔ¤5Za©D4§ß’_•‹!š‡FâìdK#ö¨¹œx%”s» y¹Ÿ¹ÝBªRÛÙØIt°,ƒn§R9!G_-EœšN[16±9eL]cófLÇ«…ô@3¢ÙDÕ® ÁTï!šZ^ƒ,A±hã‹f Z°)BÎȸ5/VòoªH “²õË#/î0=ò1ÿ<ôJ0_þè³G~+B•«bØÓ¯ÊúÔyÚ÷È_ôf¿y+^µ´R¹êTO² ÷|{øÓmD…ÃË1«:—9œ|h@»ë¥‚ô´LbŸ²8 ²êíî÷pº¨”U£e—IÕ”¢ZªLÄìÄy¨Ôì|'šsQ8vmËGjd5ÑâŸÌGñCË ; Ó¤BAâ‹êB‚ª.ªI»Ûš"UÈD)pÏýããù×ÇöcÛŸ‘[Ö'kœ{Uý)fRå$æ£?2â+²ì—8ôÚÚ4¢:¾+1™LŒŠ+»ãõ|ª¥EE&%ë®Éŧ¶3©¼:!$´Æª%£–mßD ˜™ý°<çž&–û5磺u²ëïèÇuƒ–WÛ^÷WŸ,¾­ÚúÊ J|Ôeß8jÉøå´-ŠÄÔöM£÷Ma6ݨ*´„ª„4ÛM ¦L>üˆÞŽróÌ> TÌySL.«’UE¢RB:)•Í.(Ãozç—EŸlS×vFžòsb=ö®© SÿÎXdb=€SŠ¢‹]?A&=‡cYûÞxV3S«@±±ÃÙ}gc¼þ”^óò# @WÑȶsÛQ££<åßÔX­“ËvâúŸ6¶ûÁ}’pƒ}»h³‚­®ü5ÿØA¦H¹(Ò¿—üû Oµ ô¡L×-ßoê†<öp‚f·ÊúgÕü8©‘wÃô‡Ø⃓ÿï¡0GÞøŸ”M¤¨NùÔÿ}*O7¾“à•=Sf„>^i3€ÉVª1*ÇSç3’¹JáðzYz^‹þø{ÃÕRùÚ.üЎ]òh’¨†ÛMo·p[õ–èC˜¤‰<ãîçÙÛÚ|ý¾ØãÊReò^ÓÒâ|àê`PÊ+ÓËb†.G²{6ER]CÛyO X–°®º„„P±„ A—$¬!, ]ò8äT>¹?Ÿ}æ2ª=‡R ¨O±àä é-sì¢ÐG']@†ÉÂϯ7¯Î¡†’'.-CÕÛCâŠtS_7å¯Ju©s>Õüñ\e'þ… ×Üê[ü0ð(Öºú<¬ôfçâÞ¯ÔWp ž2)B¢º‹Á{…!Ä&0SÜHÖòì”ÀŽÓ¬°Û&Ó iúû¥c63ƒªŠô謋ޖ°Þt]Ó?a X hŽè‚ Z©\¹&±¾À=óþÆ*é§IT”'6É•ñhnt Å,UÈ ÷Žjµ»;'IvùÁ(X‡'Üæ…lMpšd€é½5r<_°E]ÇO¸)Ýã¡üîå´×$ˆ-È’3…«¹‹ÜIRU–t€¨ŠD‰äsÇ–ºíkc¯e£ir‚«b56÷Ê›­© ü¢SbÃ:‚ᜠ2$·SP Ê,!T Š(©Æ˜šg¤É¯ŸîÒËòúDs<ðc@ñ©½èÑ*.{b~r'ǵ¥øÅ@ÏŸÚÁØ“À\ˆ2ü>û¨x"ãß/'Hí|ºØÛç)ªªX7f«™ä‘æ ¯åC"í®ðòÀÓõo]¶ÿËtjç/¡—?7+ Òèÿ~ ·€¥¤5åYL ʉBÆLÇÔcʼ±QEYBöm~Q×ÞÆƒúP= 7t$LzÚ¦”¾s¤Š…-"¯Ë=“(Mƒ†n°„uÑ" Š2ïOÌ•BTETUóäFsËnD|nŸÛ_߷社*¥H;*ýÀËà8Uñè>8jštÀŸýŸVL¾—Ï‘CÇxt¥V XÕuZ¸És)òãغob¬âÍío'yæ±ú`±Àl9qïÛqtáWx½t¹teüÁ)LbM¥…¯²‰¯¨wÌNË-~ÙßW”ZE F¤šCF—%„E×Ûr¿/·»Þoëýîp»/·{¸­¸ßú„ÛÖËŠ†N–.úùMDCá']0ºMâC18©–xè’y¬ÉÍì9K|0©AÖÚh¢ß«¬m¤6Ó9Àë÷sçf£ë±@¸LÁlFwV›†wö¼bÌÌÊJe¯J‡ZÚG‚P1¬.7Ë7Ôå¦+dqj2±íäs—mg"SÍñ˜s2gX·ºÇ†êÒ÷Ð^lEûÁ¸yR$™šÞ¬Ee A*"T5Û+»ÎÚœ‹ÑÂmXô ­I쟟I`3’N§µbõº ·”av¦æìqatY–Ûm}¼-oõím½=t]5,ªŠ d¶"j’ÕôР@ZoÕaÑPQѲbÛÊp%B„Ð^´^äDYq,™„>ÅœØÌ`YAÜ`»w€»&¾JDÚ9t%›iô’âÎËl™F<ØUÑÝ$5ÞµË蜸I€3ó÷”ô¡íƒðmÒ/¡I …´Di˯«ül"I¹´dî’˜Ô}.„”ã*M^&Æ =`(`¥¿ Ò§k• ;•°YT–€5x ³ÕÞ<Âî¶J¤kㆠ÷“Kž;?¤Ô:Ó?ÏŠXÈzüs&`3Þèã€;`=Žž8ÝR[oêû{ÌǾ$9&Ž«šˆúC´¨×.OLç¯GÛµS¥ø³£¯Œ§É *U7(ÇxÆ¡ ìÎŒCXt]ÃíÖUo¡…XçV$cÜ#c>‚Œ%S ¦B‡¾}ƒ¸q‹Ò½!dªµ³¥…1Å!!¦[Ñ(î[Ad«ŽQ¨êºè²,kÎñ.ô³•C柋s%mŽAr¼kܶïÛ_ÏïÏícg Oí¢Sú ]$¢à„&=$ï{Nûk Á«ó dÎÎ<&è‡ £U,xì¸U;üï"þ½ØÍyüg!ÿÒåˆtUŸ½M¼9¾%VUsÆÝ ß;9³ 0H̰¾q°-#­•6µ‰>º£¯é§ä´¦~z4¬4p„òüþ¡ù¼ ”\…!„u ÷ûúþm}{÷{Xo¢ª-ÌÂ,<4¯¥ôzhÒŒ† KP]dÑœ\Ðò,m®<Œá0¦ž5“>Wb׿AXå!úbÊH*˜Ï­Òëðq”RÞ7ZÍ1>d E&£Dhò¼Kž£Q&Û¿ z•ϵvΤÑ( R®0…dË3c—U7u £ÖPd¹GòåVw <«„«¢‰L?ïéâU*bˆq£îBYJ(«³¥™…H%!ÔÄ¡r XT–P$`Ö`ªeŠ˜Ü¹œËEëeËu5þ•K'b`;5¶2-ÒKЧXùÍöÿNz ûÂ?PRu¤dÂ\.gþ§Ã©øÒ“K=¥x鿇+>mjvô -Ã5˜Ú¿¾âq³ª|ü§ñŠŒÓÿct§:$Euªç´(tÑeÁz ÷UoAW@s#ÉÈ=‚1%î”QsîߎR¬ŒZ«T³½eHœöàQUI“úêÊ×”Uõ[4‡…D%´'AM(––U—Eײæ5ý[ˆjl-&ÎK_F5"E! î|~>|lß?¶[|Fî §òŇnlך0âÀ†7ʵ»N^[tÿϬJW#àzHÁRé#fFvÉ3™Nº6ª¤¸sÔýݺÅÁlüNÒÚ+Uüc»©›fQiòó~´ö$uÍ$ßÀO‘ПPºÒ¡Â¨Úž>u¶HPñª˜f ÏÍÙÙ½ÉpŸ‰ [5«Š TC¸Ý–·÷õÛ·õñ¦ë¢A[äZ·f- ÑúriaSsº¬HÍÙ´›\ó›ÐƒÁdtLöjE*ŽGÀh^`©Qh™Ù2Tò£Uè«lÙd8˜ÏLGëßã’?(‘¥¡tšA‡~¨ÔhÛbÄÒPWÊ_Y· ·Eî‹Þ¹-².rS]CÈÉMö<Ë1AeøKÂXŸèÍ#åU *é§ WÅZe”å³jw{"i£~kÅ9E€¾iªmMna4„yk‚em†ì£ŸÕ$MäU¿ÕVeÂß)çÊÄßÿ ‡”êÀ-:}ê™Önº uà÷ ¡ä€?‚pé Ùz®Üë´ø5¤<œãFøyfž< TOÈU¿4t#ù$fXúâv[n‹¦ŽÐìÃddŒq#iZOí>Ý¡:Þ)Àì|‘QrÊ8^‚*‚¤AûM8UªB9eK­Ý ›×!–·³ ˲& Q²L°ÁVHRcUÓ&s°¸y°U5F]"÷ÏíãÇóûÇö}Û?·¸íqOí{'v„¡Šòô3ÄJJ7¸í(²õº¡°|[åÕlæ¯ÎýgFw JÍ¡IÕAëóéŨ.§:¶ï¦j?0­9nÉTZ&P óšDˆ–®WSÑE8z$õ˜„ùx%|Tjžb «¦4P¶ÿ\] 8‘÷·ƒ\Ÿ$žR!èí¶¾½¯ßÞ×û]ÃRÓÙM@J3Ë2’o¯KK‹–éÇM²„%±NHÝ•³è•Ö^Ù˜o#Þ@–“ ÔˆeªNÖB;6÷¸á±ý-ë RpZƒ2똭¬Êâ²a ºAt?¡m0Õ•büÆ)Þ9¿æ>†û¬p›aÚlšŒh OUDizžòœ:·²å´©=1²”D¸/ë¢ï7|»ëýã¡ÿzÈ¿øã¾Ýð~Çc•·ÖE– ¡Q†x© ¤ôÿòÇdöZBû±YU–j–ª¹§%„‚~ßs ~|ï> ì‰ñuØ¿ÏB¶Òð©<€&6aíÈØô»ñáªå©œ`KVŸ:…³8ŸÌËDRs)ålR9ÇÉð¹7yÊ|¡ˆ®Uò«Ú çý'.Ì¿fÊÇSÚhU„£&Á;¢+X Xnº®á¾è$DdßcŒL㙘Wš1][ÄTõDÍID¶Ð»í Éó™ÐhP,ªÉïT¡iýkî†TI>á,VWØ ¤¼éäÓOò·R¥¼Æ¢K@v‚¥í‰=(( ±d¨‹ªŠ(É=>?¶?žÿý±}îÏ4ôg+-ÂeLøâ¿ÊËúHÁæÈ^&Q\Z^ðsëÑñYI^ô³3>Õ*¼§ÊßÓlÿŽb6esÒQªf³óÍ«–¯+Ú?ZC„LÒ0ZX¯¬™Lù1"¡òó}öï4íÔ­i¦?£¹Ì«×‰þšqÔøÆÚzi}ÍÙ áv¿½»½½/÷{f@§²D°*´t0'çù'rÉ\£ Y‚N’gÕ¯icÅë!‚mà©%Æ?…^±úU;»OÕD¨TýZ,\ÕA°53”£BÿȺ++¨— a÷õ„Luå ׆?¤`ô·ÇFšr¼~ra­®JºájÅO†b'#Kka1ßîQ¶È=¢dNAUn køöÀ¿áÏoúŸwýÏ7ý÷»þûMÿýÐ÷þõÀ·;þxÿîøöþxà±Êý†EEµÅ9Ѧ}·b*q†Ó¡Nw¢@JݹÀ,„SC ÚV¶ ±âðCÒúV3ýr²›Â½;"øJÚ.¿ êS;œJhŒhn6ÌþÎ*N`N-ÿ\U•¼LžÌý_HT;àZWlßÀ~ÍŠoUnš}<(7¾N•Ç<ŸÚ¾81pRÑ3C·:CôEÇ.¯F5y8LØ€ H“ý¨ª]ÖŒÿkÐúR){J´‹ˆ¥®"UFi*™¢ŠÒ4–Øê¢ãÉí…‹ÕE±¤Dpäîíü玖ÂNEfmZ–> €e ·5¹Áš«(þbfÇüŒlÈßGéëNoL ÜžûóÇó¯ïÏÿNMT±ð|=÷5’è΀Ó9g.hš¨_W¬¿&V/ãÔY&rw½¡–NâI½N´:ä£6ð$)ŠÞ¸F£µÑÁ4Æ­RµÏš¼ˆW{-MÉo*®ú)ª™à&MUvù ïΡ“ª•ç6\xÊu×Ë6–M› K¸Ý×··õÛ7]oÚ:åòÛa‚TiâÑðdª±*Œõ£Êjðò„kúËÜsžøªÎ&Ç-]]µ]0ÉaÝr´ g±€À†;Óv®·!Ø?&\Ð?ì4ô€ÓGNš:Rœ–€kúq ÜóMñE?óXk‰¦ÒôÅÛ—&+Æ3K!¹§:á(1b§ìQö”SˆÀ˜#Td úXõ_oáÿ{Ç}[þëýó]ÿxÃû ·€5ý£PÅd XƒÞV>¼?ô}ÅÛ·UÛ§ÀŽ62³¨°lǤ(¥*ë’ý!•EµŒ:˜I{(5ñ‹5|Væâ?ŠÖfë…ª=hÊ6ÂÄEú]!~ Ø&NIˆÁßÌ_NÛDë5ÿYxŠsV¦çS¿Pžƒ1ÎüêE^îI¿–qS¹êeÓx¶[ÜÈ=­J¥×óC‡¯/¿<â¹TÇzA}„™>u6°8u®O¥KPU{äq8µ©²ºLT˜ŒFV\²“Û}AA¦ð©{Ë"Î56iÙbVøÒIs{š%?Shû¦¥Es¨–÷Jƒ‚†|QXgDýº˜¼Tú®ÇíÛ{¸=꙾´€Hu#c*ÏI5§é•j®BªÄ*sx~éÏKO‰±èLEƒŒiùé{CòóZ‘E”ÓW$ÁN‰=®¾ÄÏž·‹£¥_ lA<GRHÿ“å[õ_O×MW³Se Âmö¹J’±š»KãKªp¾uئ è¿Âª:‰vùƒhP;MD@‘#˺跻þ×ú?þþëßáÏoúX°.Pa.1WĬ%K- kÇ‚·Ë’ bœŸç9‰Y@©\P©X4Ùù4ç¼–¹dqbY”Ç9ìÐ]ÖƒÏQÏÇâZðÀTA]ï¸×tev0ÂåIšûoÎ4õ=Íÿ‡*‡‰ö%ѤsrÀ©ã‚+Øó²ÞîÔŒãßÞ·oqJß®P¾"±ÚnébS”} è’ëF¦YŸ•bÕRl­PM- Y¾•GìÕF¥ÕΠë¢ëm¹-X¡*Â-F2îY…™4«%&Ù˜üA5ìQÇ£æç& e`-‹ÔÅ.ûMâ]†l~tä÷ˆj#]°„°.Xݰ"Ì]5çdŸW’JZq–ZÌQøÜŸ?žß|þïÛ÷çþ¹Å‰OM«2ÉTðxÌú_Ç?w„œxB¾N¬¾´^®åC‡þ¦§,W+=“Ød#FJbÛ¡\‰”Qf‰ãS…¿ÿz䃋ôQ«ÝwêrRásRÝ`=Õ uiŽ“ü;Ó(Ð T90ÏMIcóŠèÃh¤Î&_Ê“\^1MéqöGBu ëýqûömy<2K›²Ê£P!Ñ€åª.Í-Íc äîe©J"*4iPš#Ke$÷ÝÄOJƒ%„eÁK“’%!,/ªŽeM!3Z^ÒTå }„«Hš-ý°¥©¥³¨LûÑØ;Qúž tF˜ŒÇhÓåÒØlÌÖ—p+'œ Çz<]ú.únO§[{—Èm ÿz„ÿÿßáþþë}¿!äd*Kl­š°íwÌ鸂 r[ùXqén&G¼]÷8£8™™9‹Ji@•U \”VB—o"vš ä y¨1„ÌRÊ®Vw²®£ö| ;¨ØIT‡pý$Õäˆ×óþF¨J³ûÛ–\uÿ½¬ê´U‘“¹ÿ—÷MâÓÑÿö^BÈÆ“¸²eàè1µaÉðÝô¯ jß?첺”ÍyÊ|ãyó(ŒD«–×CU•Ô\¯ACEµ(nr-LP@%ÕE—ë-Üîz[t ©ï¾?ÿ÷_Ï¿>÷güŒqÏ‹b낎üü›§ÄømC\û¶ƒs~>ôo\© eÂ@*º{Þ¥R¹›¡)]›¹ßN÷m^•´jøIž?„»_:¨jéGk§2RÂ,i·_†0“lYˆþ:Yek²Ò„ç‰:}ìECÌRÈX¨®·ûúþíöö]jΩ@ÓìNœ‘¢Ÿ2gÚrlSèj¶ÚgÞD6^•—›AÓ¨$ÆHîQ\rJ3ª2¶S[ê¹×ñh`©žÊ`ÈE†š!u¹@C¡CÀ`š9§dgYù-‚´dø+–·GñRˆXD"4«,pÌ!™íEèÞF}ô9•E3e=öµx•Q2K&®Uþ  _7Ùÿ>Z—ëé·!Ì|T2ãI¯‚Ô㌪Wã *'¤Ûß|ºƒ;üâåê¯|m0ŒØ aø­¿ÚÐ ÕQØÐÔ™]Ò¿,A—5¬+ÖE×KëªËR†ãùk’;^—Uo‹®·p»…ÇMÿsïÚ9’ ºy™¬niFÚ]éþÿß;íîHÓ]dfávâå@&Yý˜“ÔjU³X,2@˜›ÛcUMR3 Y­°j#HIòÊ6øåBáe×_]ûå 4÷è ¾Zq 1ލÿrù´«Â¡}­¦âÌŒfs ·P« ´–NÃ)fugXŒÃ ÙÎÇmÿØ~½oýžm3f2„›ñÔøÏ?¾žB|QaóÉóæUúòÛ9§³aP‡sîe ,óàpúWlƉͧ§a«C s,ý}+¦B8g‘Ç”{ˆ‘6vGÿn!ʹò ~Žè*qASþEÒ E«ñ9‡Àõ²ê#Õ¯¬Ð´,éíÛúí[Z¯•Á-MFª”M?mTÏÕK ð¢ 4-Ëq.±êί%”ª,B³IÞIzÕ^{¢”jÔ–±é¡_§{¨ÏîCƒH _î+Î~ùÀ° œÝ„ô wÃÊ*ñɹÕë™–«Å»ö¹` „0Ù“û8/<|ði·!èI…FèÇ/ŠIõº¦¿~Kÿö—åßÿ*ÿü†’3ÕË­GQ¯š *<Ć‚¶×BËKª‚ë‚5 f’sY‹WiI—uAj·l”BÔE¹$YR­rE“W…è8'Üû3] «QpZ2ýOr¨-cø&;J÷~ÿWÕ-<¬Óòþx bÐîŸGjzDˆŽþäýÂß<óûõþTþ‡û3Q-Î(Õ¾øW~nmšSæ¬lü8 Á³ÕÿGØ••¹&ÕÀ4€æZ÷kº¬õß—‹^V-ÿÙ>®ëªKB©/lD/KZ/ézM—‹^“^R*~y†­~Э@Ïäq VYýV5Õ¸«v³´Ø„qy&©‚ùCÜYÕŠ4m‘. K㬣5¢4ýhÞü®±³ìzúÎý±ß>ß«Óß6³ÝƆi”‹SŒ â™t*jÿƒT?Ï>tèí}çzhyšCr¢#Ÿ*}??“›>_Õ‰Z¡1Ũ'ªF5ÁÈÓDT¬†+ÜÄ¢×`^Ã…#CÛ³kºfÖa/xèó¾pcœçiƒDÅ׈ÏDý¾ûõz*º´×R5¥ëuùöóúö¦ªh1ïSÒDUL(h¸Á%i·<õ冈O `«GÁAÈœ÷"T gŽÖl:gœÒÃ6}zn´ŒÍ³nMr†¼iÙ%‚°ãÕ²J)AÍéE2úÉÇ;U‡›ý¾›Ã„ƒûÓƒHõ,?{AT(ÿDÏTøüm>•óáIvíó»ÙÃâù+ãþuÑ¿ü¤ÿö—åßÿ"?_K´ƒS[¹·L´ñ©æ‰ÝÒXå%Q‘ K’uˆìäžK¶«„7ä,|I(ES5Ò_µÖ‘úBsº’ªËx¨`mnù_`ô~9¤ÇQN<_m²Æ%ÏÈw^~Gü™Éî Éq†>‰ÔøGŠVŸXð§â+g(çnŽÓJÓ²Íׄ%é²¢T×—5].ézÑÒ)u½¤ëªë%]V½,˺êuIë‚˪…^½¬@m8u©ù©å#iMº(µæ¢T!™cÜŠ‡=S­—J.ôª™€u”Ê`bÙëu$lE´ê§ØHÖ–s×NDL Ò‚¤ªm†æXY¥HE)Œ”¯µl¯¶:7‹íùññxÿؽí·G¾ïy7fñÍ9mýã«Ï(üúþEzªó5^ôÇ9ržærþW!(“f F=êK}jðW…•vH> K‘Ø5„¬î~ïáû:;ú} êØ£Å@ÕUÝóã›æTw%qåŒi¸ëØ“Ñ:†ºŸO£³k 2œNˆÈWƉbT×e}ûvyû–Ö¥ñ^`I¾4–›Èlã%…ª¡”Ì “Íz/Ž=±„TÎ.iš™IÎÕ®%¢µµ I4µŠóIÁÁ?Cl^¹Ôk=9Ĭí=jš{·Ø›¨åÁ-Ѫ÷ü‰¬W(k:?Þâ`aPt&Õ“L;ÄàϧOL_ ‡/mWæ¸ÖEÿéÛòÿüuù÷¿ÈOo*}î¢hêÈ#(×U-y2í•0BIú¢•7YëÂLyd)ù4<¾€‹ˆ"ƒNIZÑ”¤Z,3N¶ïeˆ+J`l7ùN u¾ä˜ ÅãÕ‡¹uàäÙÚÄ©%€Ö&·ßsD™:,œïkgÑïd3x‚ØŽ ˆÿ¨úÔ<(ÄSœÊgAª¯‰Û/½8Ùœf_Étg;_bGøYÐ>#}¿ìþœ^µhZS¶—¤Ëе°§½\ ¿›I­õO“¤CØN¿€âýOpjhE UpÜÔ‚:°)f6öðA‘Éõ/¾<8FhŸšÂ0î$XÄÃ΋ÐÇy.!õC ƒ\#x} s¶.™…4îYÅ’PŠêPYÌÛ? Š´^.ß¾-—7MÉJµŽ6+·h±û n%I÷cj"e0Ž$QЩ¬j$s%Ÿ-gæÝŠ÷¿Ý¡E‹/½¾r¼g¬¬¾D-‚! …_tQý]Êš€(úh¸•2ñ¯˜ró9zVÝÏÄ#Ùèø6º•º!ˆÑU-Õ®s&…£Daˆ|%rÞÿ°qކ`IúÓ%ý¯^þý¯øéÚ‚‡ËxXª Ú „u"‚’Ö#L¤¤i—µ•öz…êT\U•œå‘e?¬¶&£=j–$k‰ B‘’;KÈ %Uw/`G52GÙ)pèì•>ޛ岳棲go*¢T Љ‡ª?ÿáhñV„?ðTú­,ï ¡û§âëó >ôɉ—'BUïÞp)>:rÒëòä|ž8¿€Vçϧ²–àM T±,ºtÕõZ±éõ‚kÙï¯z)Ÿ°”¦$)Õ¦äT´[iJ%BªH¥ F[ö~qÜVp\öõšJœª"ÏV3÷b—¶lÍK ËW_TSõ;C¶k ß$ÛIUKÄ˜êº œ‚´„pm hÙÙ þ-B¢Q·Ò WÛl^ âæÇ‘Ì” ÃQäOF{ìÛöýýñK·ù[‹u >M H“xpSñËR¯ßä€ÂÓûè¨Bá}]œ¯ ßȓ㤇ŠÏ¢ï40Š1>†qêpà9dÔ4„ª}RæÙƒËHÃÔùØÚÏb—k¤•æN¨ã]![·Ó·ƒ“«ý–GÔÄÉ ë,TQ;ÛÖjHü§?ÝM•;)-×ëòí§tYŠ­µ¿I«’ÐZPK(]ߦkóÄØ¡‚¡Ýæv° H¿-ëo‚0Éû.9÷ð”þLhÉ÷÷ïZUñõ%j• Õ¦žr7¾û…¹+…fèò¤iIè#Äü¢˜óÇhBÌmW1 hÔRñ ¤¡Ÿ«B¢DuSë¼ñ¥êÂS5\POó·á”âÊÇõ’þúSú÷¿ê?ÿÜò„$´¢Mb€V¦¨EWåÉ-uBhV(ð…_õ TÞ³lY²<áËÑ¥*I+´m u¬$_N±te²9&˜âËtqʈ?iâô»Af‚Ž’µÍkD}=½}ƒ‘ó€?ÚÃÿ!kwg ûÂbüO@Ì|&þüDŸŠÃöÿU‚Æ3’¯öúœ»ŽÁQÌ ï>è1ò¾RœÏðÀ«EéÌðýX-=ªZ£Ê:~M׋^®éíš.}+ªÓE/KóQi·ü×ôÐò(|žùP¬´ ÂæO`[¹Eê"‹¦%!©&¥–]^S B ¼ \ I¡ Ríwj-b’WSФ4¾-sÒc­¢PMIU‡ºªÅ‚ p«b­z\\“PÏK¾¬öfËûþñ±ýòQ3S7djóuº·Øh¤½àS¿´Èÿ¨=G¿Ã#îwû;q’:-Ï ¹ÙNô4†3Š:ô…F¹ªßí{­Îiòÿ, pÛy'KuÔ9^  S jßÀk3ðt'h<(U‡rû¬á¨]ˆÃZ¸‚š‰¿k‡?7-w|þQ¦éŸÖ  -Ërý¶^ßtYúUW"• R+a¥¤©ç…:Ç%€v|ì¾7ÕãËòƾµÌ–e\ÌÆ}c ÈD3ø7G&¦­.Ø5}”ôæðn7’«e(¯–[ÎQÈ6LSb² ¯ £ûÅh :½Yçëø$û-¾U4ÇY÷vüËxªRóptúÖ2üHº*;¾,úOoéßþšþÇÏHKu (T’&A;`BµÔŤð¨:¨PVÝD #¹J{¬H šÝ7l¹†=šÅ#iÙø£âTmìV/èÇΰOм¨_š“A[º …ã«ä¯½ã²^â€NœJ¾äAq,<¯ ¢|¨ô{1â“PUü™ó«¥cxq>÷Q_¡Ï‰ÕÓ[ûÌ&ÏWÕ)%;žxšb„ŠÇp*ÖslrþftrÂÇAµ¿#%53£}õa.N8-_]@Z×õú¶~{S$6Ù)üœWR¥¬òd0LŽ-ÔŠåV0'ÝÕX¢ìºx¶A#m–“æË[Þwš‰+'Q…{ýg3c»/æ§ _…À)jpöP¬Èü–tl†j³ð&®ò‰3†3¸Ÿbz¦(R>[¢Ì2ïšùºÛñi­x`À0}êg[Í&ŠQ}»è¿þSú·¿èÛµ~ÍÊþHâã“k»Yy‘ÌiS(gì"*¹@5Zç+J˜‚¹m¼ï’³tCUÿBªÝ;%KKh ·o©ýZbÛˆty—ð š—È™¯ð$l”ÿðÅŽƒ$¬-íøå'xp¦‚ràöùBÈøÇÒ™ñáˆ'Q»–àD%÷%œŠ×§2ž+i^°¹gëôç³àiZ«B„PÆgøô‡éRþÏÞÎ&6P…&I‹.‹®kZ/z½¦ëµx¤–·E×E×r{¡uˆ†¾WùMDMaðPHK¡1ïÌ™9ÓJUyh'($­º¨$Õ&5oe"FIÊi߈ÒÈTÕûÉùY‹Qôñ%ý“X-/Ñ©+*’°””š¶ÅmÏ2v[ݼiÌté°¶wY«Æ|Ûo·íûûöý¶}<öÛ^à»´/=m-EÕÌŽ©!?47~9ZŠçª°gC#Z=—’?mÁ àÄù{îQ¸Ö©U¦"Ów†[7zéû²‚žKE´-!º©./‘ˆ™„ìí;˜©Vœm}‚¹{ÞõÇûIµjOhÅiñ"Ež¹UU ]×ËÛ7].H*Q«œW]ÎÃF_g@Ú‰řӫ³,åËbµ Ц<*­nI„ ŒÙlÏ•èªå¨Õ”M×%X1iÁ-áäƒ/L¯ c²¾Æ*I þ²†Úv¾Ã(cÝÎà'3bôª_ïòìv8Ì9Ÿß¤^ýìÊ\c°Ñ—H«'áü˜ê'ž¨ëž-ýeMúó[ú_Ñ¿þŒÔ’"ê»U¢ŸRý/×S_ê+[éÐDXkh` ¯6 -Ûí!Ûã4`*Å㟒,Îw]Ÿî8¡»Øí}^Œ w¦¹…úáï:«¾SƘˆÖ|¯€*ŸGŠfÇ÷Fþ9Ðp¢ëú”ß|Fþö½à¼ÿNý|žl%?Y‹âÉï4RAa†X‡ÃÓ%&Ž_ìŒç~²`ŒnMЄe­ õ:@jº®zY–J&z.\‰=¿®'åc¢t»©W¤xjÙ2eÏbÕ²D“JR¤¥°«…d) ’Ô¢Ðò]$U0%M€v±eþI^ÉrWkJ$|^Ôµ}ÝË ŠýTšâÖIñD´}N/ °ºîêù´EÚÔ’+1æ{¾Ý·÷÷ǯ·íû-ß¶¼»2•~ëú>`4J)˜}¶úǯ÷/HÞnâøÌ˜ÿ›¶ÿ'!?à¡íÈ,âD˜À##N…‚¨\ÿÙÞF¥õR&‚õð×ü7Æ4Î9‡jšüTÖ Éxë¥çþ‡(aî1ÁÝ â‹–³¥ÁA¢´ÌÕæa¼NqÐeô^#ôèŽ'c7 º¬×õíÛ²®TH5(v¶“cm¨ªOOí{cçÅÐ4ÝT¢&¦ð ζ·í¢)>ÉlÜ71kŪ¶÷‰-!jìÄigr5Ý <)5¨K;éÝsR˃¬.Oº‚ÝY0OW›ø|Y»¶'9™î¦ºž‘0+ŒÅ¹»‚ïjÁ#F¾[ÎSY^—K‰üP‘Q.«þõçåþU¿]jY”6€ÖxñÈ&ÓèÍS C4­ôþOHkƒ·‘¤Bò¶ñžeÏþA*E#S»hMzWC˜m"Íp§ ‡ÕõW‘GjŒB›Ðžúk8þ/5Tù4?õ0˜Íód ƒHžòÕ´úÇ¡·Ã²n†ü}ß¿ 4ÿŸzÄÔ§–Î,öÐùÃäÈa©Lʈà)~/À§ÂTJõ&#Õ(« RµÙgD îÌ»m÷ýãýñëÇöëmÿØó#s3N­Ê®žn„ìјK1ùsn_yÜãK7Þ“ÝU:?>ŠÊ HsB+œit §ëÿª±›áˆcJÅT(ÕÞe‰ª3!Ö¤F¢ÖçOÅ$T?Œâ ¯Ðy×Eûõÿü¨ xþƒÞŠC/Ž2úàãÆ‹бŒ±ß4½‚)ŠÕú˧šÖëúvÕu—gå¯þŠ?ë8È2ðÁ¤5”*a`òlTàÝõI¬)s(»vU©ÐzålygÎÈíSôyòhí–O’©»½9Ïå¦çé‘üæÀ¢‡8¡óà ÜåXœÌ~{ÒÑÆƒž´ÕoâèΘ‡@Š/š§ÛþËKcÇó›ü$‚¦ãâP1îs÷çs"šô§KúŸÿœþõç‚»S¯¯0êˆtªoÕy,'o”§±Y ¬õ± ¾?6©L|«žR•”°¨¤ÔÒRGGéõÜ®rl| ì“hQjêrF*)˜SÂTÁ“¦¬ÃR|=쳑G‹÷xvøh£vpI˜¥ÿ”í¿?1û“þA™ÿ3<ÿa>ŸvŸŸÿEŸTªú^[ Oÿ´¶ ™7% %Ì:þf=)¢ÃÔÑéÛjr*6|M‹® Ö‹^ÞÒõ’Þ®éí¢—E/µ%ÃiÔdÔ;‡1d^ƒÂu®íR%…R@ªeæl»qÏ4«>!Î £w_Õp¢,ëCXkZU Ýg²pn•ðŒÊ²©©˜-ûcߢîëA‚R-[HIµó*èÛ0ñöƒ•®<-ñ¬Iu˜Ïy»=Þ?ö_?¿ÞöG~ì¶YAò~ôXb,ë^áTwêÂ÷^^ìøüþ?¡.Ož9¿Ûk‰³=æ$y^ŒIʃkq ÔÀ N„橈8C€ô?–T¹4`ñ¡À˜¢²§Ú€ˆ¥‰ùþk)à=<ªfâ‡w¤™5¼Í©#fbí¬i<¼˜1Åh\ä¤ö5÷pMÂ[ú3r½,—7]VmAë}­ïd¯†ê¬jß¶ö2q¾GÏiMÐÀZ’2Û‚¢¦ßUÓÌ×D$‰sCMЦkõÙÆÓ ¼Ñ1ÚÚà…ëŠ|cdÇSînæ¼Û¡íœQЏÑ:6n?½Í0ï)E)á–{N³}!´ÖôøÚ!£¶×ø >A±ÒŒKJÿôMÿç?§Ÿßú@)Ú-$À¾ TŒ|¦J÷õ€¹$¸Ê»BÈjžª¾]‚ LD븣SÙ7¾?øÈ°º?@4ɪXYÊ©;wb€M¤îNiY=™#¸%ØÆ„ ž€_Æ;O>¥Õ§2³ gŒb6zŸ©f±W‘x®¤GŸïðþVõ‰@íO7T9ÊÇ©_ÅÓx[ñ#ÇøM%/ ]S—âÓÙøø×!p¹8!n«s5!•¦¨káPÓõª×U×µHBEј‰¾iR˜û'!þ¥nöÙÐafË•B&4) 5-³TÎ &yC}5Eµ ÕÂ_(Jw¡( ’ )«ö'TKüë,Š´=& ‡Eü=Î^4àLŽH ÀJ£^ŒdT:º]¯V” LS¸åí¾Ý>ò¯ïïÛû#Yêƒs¡ê“ºøN=lïðÅîÏ&;<+êå‹Õÿoš_Oÿy2ùŒx¦žZLaOœê¨&bЀj1eKuNÞ³¸!Çc¨¶p J§*WoL $)}5ø wL#NÙ½ñBív+BC3N–úpeBÒc€:Mg%÷†ºœÖØ¥š.—årÑeÔbç$TÍpkÊeý•·U9S6kù2¥'ÿ£ôíÔJX¶Ûªõgl;-—‡€çÎë[k£åNNöß3…ÙÀR­‘ëdª5´‡IïôEÀãðF;~-ÇŽ%_©FU}ÓýœÓ>„Ö²¬Ò6¾ÊÓŽ£(VÌÓDG¢Ú«QM¾Ò’kG£K’Wತ¿þœþÇ_ôºP*w_’b¤´çä¶ ÏYÍ'¾4pÍ™0_Gh€CI•@d7þú[QŒÔ83YK* µ’Nޝ¹d}¾«Ê P‡ŽÈâãÌfPhap—ÞÖ"Ö³„\^’ûKxª2ä¬s~êÕA‹œÊ°è"+øçÆC”)Ž¡6¥:#½ß§ʙ-ÿœý䓨Ãúägç“Ã>2{S(ø‘—9VÖÊè ”¹Ý÷ mHÐ˪ë—«^¯éí¢×‹^]µæ¼ÍÍ~>Ô§I÷ç–cGÚ^[ƒ6”"B5) 53Å8j–Ú°þ¤ŽS¡Ã}Ûå% ÔÅ-‹LÀ³d¥ßÜ:,-¡ª",ó¶²k~ˆ ×£ôìS_•­P&¨Æ_4HP¹—éÜTjc«ÉÚnÛc¿½ïßßï¿Þöû~Ûó¶ÛNz…÷øö«¾ÜÕƯ¸1?|¡ ãGÄ8Lg¿g:ƉCàÕ#ç)N=¬ú Õ(?EHE…§B1 ­Â->öÖ«ã>ï8†ÈSÌeH¨:•ÅÝ¿]á ÙOzÎP¿!Æ:9!(m_Ú¥1ìcVMqbÜß;çå²\¯šÖòE¨¦}ûïÉcïkäˆêotUµ}Óú;µä³V²KQt ålûμ,Bôq"0@tyÿ4O"Ùp`»&0©Wm¶¥[÷Â<+-™Öâ:»AÓ󨱀DtÓt®Ž#6‘p—½ã]›˜¡Ä+Ž >{–-úž‡ ! ð± ­;ªSÕPƒˆ*ÞÁkkÜj£-[lê¿þŒ5õbXôŒ”¢KQÛ[Pþt³•ø·L§Á«.çÈÚ`V²ë›·ßïüØ$[k×VYk? {ùküT÷=’!ÎËfgËÝÔx½±qd£âPâ¿`VéœÕZîòO¸Dø©¦kæö Ä”èûçRªb~Bdü#sœøïòQáÇögòé|`RO,rðÅJnÂô!/sÜÂ#ÜOw=„¦ëCT ¤ÖTÔ·kº®ZÔ¨Z<ô”vÇN`xê×é¼~ &ôüNQÖÑ,¿1}*‡P¥9h&ýJS½%¨FÊö¿Õ@YŸkIUÙÖþNç$ýä70 Õ²7„hM¹ñ{a6%œ ÇÆìïTñbÚ‚˹ÂÞµŠê^ˆì[e»m÷üñ±}|ÿØßïÛmË÷l»‘ÖSr‰®—z>T#¿|yãÓ[ê ·-¿$>{q×ü¶Óǵá™:ç©z•M¬†:nÿãÆ?äpàˆ;'ÕfÖ˜:4éNœ xM+}.ì8’dj‚r wÒɲé>QŒŽb™—ùtÉ›®¿•.ƒç ´q÷:ãínªîÙ6×·¯¤šÖu]¯šÖ^Mjl:@úׇSx—Å(#mÖìaNÁ˜†ÇôáŒQÒ2êÌÈœí±qïÕq=¸™½>™}”ãÑâ9‡=…] 4ÜÝ&UôdžìZj£ÕêÚ×ÅMôµ¶ëe33¢ @¢SàØÒîÿOp¥§åz/† ¤š€,<(SéJ1`¨¦ ÅÐЧ*‰>XPW„6Ä_")é·Kú×Nù‰‹ª8ïi_è×q+¡o¤ŠOÝ ÖGÚ± Gk´•*±lX)€d‘÷ß²gH(d*ˆ¦zžÈ ÎC‚1 zñ8yØ]ûM5…p.ªÌIÞAy–ÁQyýº>µy†B¿Úð‰ð°âRÅŸE|ìÏñ8ùÇi~“>UžÅènüða΃­*NÏ€ÅQ“6°‘Ää›°ô‹)G¼y£fQU.X]W½\õíM “º&]TR³ú '™KA|ë&c™7¦õê °¸¦$›å¢F5V‹:£¿óQÃÛ¬µ(«þV\¥ –òÒúèJZºU[ÌbezFý 6ʳ̹= ]¿vR´T)×â*Ö©ëc6•’“pYP¬$»Nðžªz€Ì›m÷½€Ô_?¶ï÷ý¶Ù#s71ÒÖûhÍ63³Ñì EÞƒðµ;ûÅÍû*'Sb~ïêÿé·E9Ï'Ç3Úß^Ý•·iÜNK@«§fÿˆúÓÿÁ®¦Nô;8mˆh’=¢ðwî8Ñ.·¡} ¶)\‹³fÌåÍŒëø Í›Ý ðÈåÖ†rÔ ©YÓ½Ñ˲¬kZW]&>Z;)&ßÇ(…‡ór€×5òrve¶}ÖœÂöÛFæBUziû°ÉŽªaÞ®ýš80Ä –83ýb¿Ë0+ˆo#»cóú²¿¬s©:gyû‹ÄÖ¬ê]†ÝŠÕï]¤Ïƒ%±›œÆÁžõé[ pŒÏœ°¦ö;¬>‹!èPÕÝjÎŒãÊÛ×\TzKÿòO韮Ðde{1:q«#íºÆYРM>l=í¥¼sª°£ˆ +¥ÞVcÍXÂÏ,óý.ßïÜ2JÎ÷’j¤Òhú¤x7%*ÈÄZ8 úmKwP‡ü¸)]µÔl¹©Ž¾aˆ£eו5U!—`¤rÞ ¿b?xöQÇýL”óÈŠ?vé¬H8‘aþ#pêoÕ§žjMç>9)_bðƒ¥ìô\ö ¹ 4‹9\ùát+ Ò¾\D~íÿÂ5þê2Ʊ9øÏxàÕ÷8'/çܑץpZQi)•[È¢>‘’ó ^@W>äo‡.c dglÂñ<ªßc3ÚóÏò_yÈðH…®ûÀG{Þ2ÞÉMºo¥1‚S":! ¨”¦‡çJQp,fOEð“tÉ)MiY¯¸.€²×³w!ð†ˆ¡ˆNøÀ0 W°UŽ€³&1$µ9oyÛ$Û˜=F©¥¨¬™B~ÝíTtšþ2ÀÏV-­sú¼áN=UÎÖ9ÆOÎé©}R '[-‰õ@Ø {a(ïèŒh°ÇŠ—¾¯(êIü€ÖÓ¢h¶Øf7€¶½έýÇ-¢ ýU4%ýémù—ŸñÓ[msP-‰…íF-Ð4\EÕ4çeA t±ÛŠ)—T»ºf“V©«‘ï~¿×hª¤Õæ¿èÀ¤Œ",¶Ú pìüG‚® ×ú;Ü‹{B)tÍ=Ožfg´ÈIµ>IzJxd8M^oO*ˆ—I¯‰”ꟸùÇÏaןŽVÿ„½?¾L²~¦|õÕË_ —0m\rñù{ÇoG=Dóê‚u)ë~}»¦ëU/ Ö÷a;Ap–Ú‚þA(TUz:´Tõ:²u¸â*yœå‰SÉ£$í ¤Ãmø]´ÀT»êIaÎâݦAgÑj{ZÏ[%¢Þ‹³D—S”«ÛJºXÑ”ÒzIËZ'^¶n¬¼X[´%ÉIsRËì'%úëë:7œŽT}ÔYnÎKT+¡Íx„·g<Ý3{¸fèWöíävz>@b&îxyTÌc]›k€¢ -êt“tâA‰ãÞYàõHí—fgªÉÁ›Ö„j—i¢©Q‹úÙ‰ažœ­5#äЄŸ®é/ßðÓÕÝGõʵ~K©TGT}e­„¡ªz;™õVÕêpÿÓòzÙ™«±â4ãǃ¿ÞeËR¾—„¥ñÄìTFSCÓ1œY:U§Pвdî÷|»ïïÛ÷÷Ç/÷ýã¾lù±Û–K÷é™zlbå=Rh[´ðy1å¼Lú=Wú§©¨¼Ð |í»á©öæ\¢êÐÞHÁìä耛­–ºµúëúñB™û÷ß•Þ>¡Î–Œ ßÿFGaê+=$`ÍŠ1·<ÌñÞU#Ç#6AÕ^b#Aa= À±kþk ¢Q'_Ã,X…ŽCrÄ00•(vHË¢—«ê‚¢âT):›9nmÛSí½oÊFÃ)Gu°b¥eµ‹AËÏcÙòöà¶W¸„4¶Düq‰n„!]m-Çí6ø®nëîÍH£’¨>tÆþ§¾ÑS£§”ÓÈ-÷Ðñ_1›*pȧ°¢<½—AB唈&U[ H…ÎáSO'­gä³;Þ®é/?áÛÚðfS”|5þ—Ð-™.¬ªÕÖ²0,D6&2jsJ{K 3#¨ ÿ›ÙûÆï§*’¤Þøç¢ûaÑ[±ýå’ÂSH”¡³˜ßq†!Üe;>üg²ÎrÈÖô©“{Ÿc&¼Ð3BŽr“OJþHàŠç™òÿ˜Ìÿ?§Nþ&¼ Qù8±x¼Hn={h IG€ª“êη.J¦:­+–5]¯zí µ%¹•/О„õ˜Òê8æŽ×=ÈxÕû‹£x¸¸¦2s]ô7M*{œ»Y0ôR1¸!öØH¡ÕÉ®y’@EŠ^´÷`h e…{ˆ6èÈTÂ&¸ã¡¸¥ X¢©:BÉTúXKßHåk+Á£*,î¯2mÓŒ»mý~Ûßß·_?¶ï·ýýž?y˶Õ•~œÌzšBXÅ©GÕWæ,àG`á×ãÉo@ÎD÷¿ç‰p\-=—¨öl‘ª-9¸’¦‹"Õ_7ØÚþW›‰¯ýo]ò·/UÊÏŠæ¤Î,IÛŸ¨$’ãpç”§]å¬REðïž4Œ`|‘ÇGÛ¼ôº„¿í|.|íšœƒýÙ ç€g@«„Ï‚/g•Ch‰ƒW,y)-kZÓˆô/ýE5c3¶Š ‡Ñ^K@:Õ9€Cág0µUΊó–›d¥ÂC\òDœÑÐkñë3  o¤ì ›Ë‹bÒÙ´9Z;ÓÍyŠ ¬:ç 9veÆ®'Qc%ÔF/Ô™¡J¨õ&£ÐXý çĦ:†·ˆ…S@*ó‚öyåy)†y[Ó?ÿ„oWUawøV @Û#¿5>&ÎQP.Œ1AͧkÐë¼ +תìø~+{ÿ²ä⥑¦ RéJƒ²fz|víëLrM‰OÃ0ÇhB`ÀŽuÂó‰ør|ª‰‰X¹?¾Ð‚û"?¿KÚtÖÃÑzÅ?•Òä\a:¿Ë–ܹû{qê„ñ)³4‘Þg’øâéíw¼Ã×òõ¿=Ci ¨i¸·BKNjÂRÝýúvM—µ‚TÄÊö¡¯éÔJ„R`XÔ9Žšb©É© $ìj…§´\òt±Ä=·Ô[Pü°ÜÆÍêËR9 X]k¤¤&ªýÔ»ÇéM’í «¡í¼@}®içW´¤mkMWD¥`‰–]0+K[*jÝü£ˆÑi²oö¸í·ûþý½R÷÷G¾oö(!²µõtã”Xó×)V3hóT5¯޸³híõí…Ï5r,w;žoü½öuœùYj£ESÿ¯Xëý‚®@¤ü?èð€8Mjù]óƒ@ËQ¬HáóûL‡¼ÆØðb‚°slfQ™œuœâ —ñ:½PØèâ¼Yïs°èsI4.qk|äñ™”¸vשê²ê²Bµndë¦`V‰!£2r! Ú}T,&¸ÁÂv©HÏóžð áhöØlÛYTg›ïL¶J…€ú|Öe„(ÖlÕa¥q -ô"ÆæËŠŠÜp§Y 7ƒƒ»«¦8î(ã>eÊ” ׃rE†8µýNŦª¶ôÀ9«ãŽã©y™ç²ÔÌ(.+~¾¦ŸÞ iDzJQ€²ŒN™PˆQŠÔšU’-2ÀKRŠF¤¤ÄÔ›‰¨ÁXÛf$“¿Üùý&» T•E½íKúæ‘cËpxƒ=‡·á¦£™C+Ѥ!ïž7´Œœ¾þ£†Š}ÑâÜÃóJ¥ïñè:U£PÑ:ü!Tçœe1§\üƒªª~w.Õñ­Å§ÌÎŽb<%ÅùŠ7}ä½i™qî–3=´·ˆ”ZÔõ’ H½¾¥Ëªk¥Ñ߯ õ±Ü~Ûˆ $…Ÿï£ˆ‰OO–œiŇNË;ã0Å£7Å:މÒâ÷=Nº’²f°B±¶UAAJ¥í»B Q3GHç;aois¬6^Wm„ÑRë^:-ÆÇW`l‘,6éL(²‡-ow»ß¶÷ýû÷í×ýý¾ßù¾sk¨P;H73Ÿ519Yf6+…9?¤ž©ÈOo‡¯«O?ñU»7~ÿÓǪ茊¤iûϞȫ³“ÊK@·õhÖñö‹vô!jUuKý«—B¤ùHšŒÿÓ¦Ñã,gj„»f† -ΘmœD S>pPã‹f%Šp¢º‰âC]w”€x÷†€¦¤ëŠ”0r“0ií ÂÁ?èTtÑ|Ó‡1iLô ×uT@,çüxØþhMTÀPŒ ÇËÈÚ°²ém˜:•€¯ŸªÍ'öùp…ŽN§€¦6µlT·#p ”Tž¼ ÓŠ°tðE œù”‘±àPjWרۙºÎÑj3›:„2ã8ÚÌ9s: ,I~ÓŸÞ°ÈÈ÷r²›R5õlXº¬ö [R´ïâÜ#†t»wkRñŠZ­ 8Þwþzãû]²‰©¹?ÆìAv¥êˆ=§ûARû‰)Øyì!NŒ<6ë|!„ª9›Ý4*v3S¬ý›XŸ­ó|b7ŸŸÓN=­£)2¼ût"L’ðåïXÊa–Háó øˬü8UÎì#xVùÕŸ'©ç|¾Ëx*#ç(c»çkHP*‹(T%­º¬º^õò–Þ®éºèU‘ʨ˩þº^>Òÿê²{DE{Ì8BéV+‘Ÿ£hÊ̤¨Q­ßmRÏÔdÇQßÝr÷ÊÒQ‰!™²ôÔ¯ŸÛ^k+ Lªw¿>`¾’&TƒŠ3@*0—%íMkê¥C}0ײý/†²" Ûmßì~ÏÛûûöýcû~ÛÞûm³.Hí®)z„%±7ºOzs.ÅŽr.íyU=õuÀ¥G¯Ñ¬/NÀa‹€ß³† g:Uý?Î5÷åjÄTM?—uÊxšÙÕYƉKÑÒw¤‰VžátúÙ™'=-`ž3ÜüçE¤pöl·ÁÄyzfÔIöMýYñøóŠÍ–3W}’Ÿ;/ž”–ôfb·ÛF“å˜ÏQ >n4z‘ÀŒˆUàô©½!*bÌG~<˜sƒ?0‚³dàÓpÈÄäkmð¸iˆE¼,|˜`8/Ì‚òÆnOÉöÍ Ü$]ÉäãNjkêրΡ2¬ápÂη}Ù|Äažœ*^ß½0uPÍõ6™ª>û‹Ð~V¼š=ÿ ¤¤ß.ø§«®©‡tN•èá}…¦2Åjêg‡Ïã”w™Ø Ð]bU9M¥&Â(’Zã^[㇕ÛX*AZòžBXõVÚ6Y-IU‹Sxçf–v¿ïûûÇãûGþþ±½ßóû}¿oöعͪ u¬-ƒº§RßÉXæž-Sì…_¸k?½¿0O4¤OF¾ß«H ߨ8°©&ÕT O-]*„÷£oÁˆP™‚Úxˆñg[,Usr³­çC·P@‘hÒ‡k˜¢¥P±çÿ·µR/óòÌ$óMÃ@ £ÆÜ<ëg ø™»D¦ÔËzt¦ùå˜ß0+˜ç Úé,ž®ˆñÄÀ'PH˜€Ë%ýüM®kë–"DK,*Ú)¢Ý$ÌvÔ‚`Ö®ÔŽ:ŽDÐÊíbèÚ:’ijߪÂLäûÍþ~ãmš$`IEˆæeØMyÐöîmµÞ¯¦©]×ÊùqÊx×õºÝ¿Šéx:_Ö æÍÄL²Hn"çZS1Ýk€—’¹þ[QTÈžZ‰C±—¥ë¯>…¨Œ?ØíÁ« …ŸÊù¾P:€ØìWsŸçmý7À©8Óð‡R«ð%_½¯2|¾/¾£Õ-×CS¡‹.½\–·Kº^pIXa±tH®€ášl~kÞUŠe’R´•9ÓrŸ’bu2Z eÎþnñ­Æ5 >f£_•1ðO¤@d#¬²v޹51+aU_†^½Ø MR›Êjsj鱂ª°¹ù+§\ò ò(qð©4Ô$‡iI³Ì}Ë÷ûþqÛ>Þ÷ïÛ÷íý¶}<òÇcdÛŠf—½ið¤R(ôS¯º“³™íÙvka«/÷_Ê®Àîï/‡<Õœ€T~í[|ñùÒ‹F[V“¾–Ejž§ÈLššøß5²óžsê0逈Òq-:R5Þ¢ÂvÁ(ˆñð„Lr׃öjr\ÓëL:’}äÀ•N½û¼œ6Ö™À«¢¬}ã»7¢‡EgÈÒ’T…ÚÒôGòi$ |ŒªÆPÓ9¯ß%4``|ø'ŠàTR ^Hpî?¥8Ê+ÝT¾µ]—E¿]p½°¡ªMJ„.w(Znÿ¹´ú¬~ YÍ¿°2°3Öaå§­4õ¿>øË;»G¥j ž*Íâ†'ÝmOƈSߨ‘5î4ÐŒkÜêbÎÝ#ÅJ¦>3ô®ÔÜþƒîgTó¡¶©OeÔá6T* $iýgQ)”³—„Ë2;þÓ5Š & àõÅ)uðùø%àÕü¿ŸzÜÑ•?Âçüp;N‰ª_ ú >!·ƒTv¡8Ò‚eÕËU¯+. i$6Uæ•tM'þ;´ú…ó3«)Yj¥ò4×-YÁK6ë†Àè‚Ø¦ÔpøR½¦ÒÝÀ+xC<ÑÛKŠiçÞ„F‚Õ“_òÂKÙLñ8ÕÐ}Qu]%c§ÛÃþXkf¡ÍPZg[äj‘Y¶¼s{äÇ=ßÞ÷Ûö½€ÔÛþ~ßo[¾oykm±E_ë&gêìÄ£ÙVG U-]]˜¹.ð`ÃÁ(uoÿóݾߑ3 ,ôoCe¯Ù.`Fè/c7?žÎô'‘apÚéƒ&‘g24ìti™è µcàd9æjGêài‚, •¦Uë¯Q?Aã“ÙCÒvшÕþ»^÷rý®Ÿ"6àË«Áÿf8?À =Ññáó½ÿóWâ+®•bÃøä+b²êzÁeÕ%éR›¤̺k¾¥Ed%ô¥•JTùäZ(%ÖÜQÕ¥n’If´Ì©ëGwªGÖ arm5t‹ „Í+æ;«»S¸öï"™AœŽ:í W vCÐèd&´*âÊU›_-%Õ¤iÕeIëªiÕ%¥´¦eMiÑ´ )4é’Ê&£›š5-’e>ä+I\í*’ õÏ}]ÚHý– 5³¼=öÛG¾ßijëÐ Ñõ±&60–G‚UädeõÃ4J—“űâÜM+ÈÙÚ7Öš0­Wªù¬«Äwúóù¹„Ó:7t: Ž0ÖÁ&Ø›H)Ž*ák å(§ŒŽÔaÎNä)Ähʰ&ývÑu±¤-A[ ”:#€ XÉR+³¥*Ê·Ëá1>u9Á!Fpz»K¼5©,ФX HÊIÝ¿­Òx!¯/¯ÿV:hGñ%‚áÔcâ(P/©´ì Gb(Ï ¾+ýí8õÀ_b’ŽúÓ—?ØY浡tÌßþ‘tY±¬º.º&$¹$%õ@Óbx"YìùVzM‹Ø´&§YÆÞ·üÆ‚n+´mçdOÈÀ©;$õh ÂhîâöÒK ºö›m«˜Éª– ìæ¾“™ÛžófG~l|dÛŠ`´t–fæLf1“\VùÙöÝöÝònÛnÛf-?ù~ßoùýcÿ¸mû÷[~|ß~ý¾ÿòñx¿Û­ØùÍJ»çP)×ÃG8ÙË#k×H« •» &s€Ñ ‡ñ¬êmÿ`’3=[7¼‚¨Í¿)I¥E‹šj-0e޽Ù!±t.%u-ŽNDèÌJFðÚÖüíÂÚDÓ˜ÂcWŽ0—áóäö÷ì¹Noí\-t:L>4Çsã@ïÂíôúiÎ%ôc·F.«ºt¹\–õšÖ5­‹B‘Zʬ@¡RÊÊÁ¥ ©¯E࿳TÆ‘¦ í;aaSá„ã•b]ˆQÞÐhÇþqÛnï¶oRzŠÊÈS‡ Ç2Îréºç°U‘@µA½¿ZhPô°Ô¿¡cÂzIõú³k¸&ØÖYçÓö· 4Û胧)…úK½+Ë«TJPkÐyôZÏ‚ŸDŧYI§Jø9ž0–i9®§)ˆû$¥šðmÕu5À‰?û9ÕúËû Uí۲ʗÜA­f&¥pTª: ûÆÁ,ÿýfÿ÷W¾ß%³v‰¤º2 Brd}õÞÎ @• £·R8ýjÕ·]D”)FçKÓ;Cƶ9÷”0J.ëHsÊT yQp t¨ËI-a±IÅ”]¿ª(Øx÷jÄÍ-a™'l'|pfÄ‘Þ_¥cù鮨Œ#cêq×ñ佨àçSŸŸCǯmÿù‰X_ãÈB³MµùcYõ²êº`Õ¡Ö.Di­B+T¨1[5øÑÄ!ÔºÖ2Œ$‹` §‘‚^“ÅYôÖ\èBÆ9%³V/I3¡×øaÚx žÖ´‘r"ØJDŘKŒk–œe϶o¶ß÷Ûm¿ÝìvÛ>îùö°ûÃî[¾?ì±åûÃî›mýñ°ûÝîï÷|äÛ}ÿ¸çÛmÿ¸íï·íý}¿me³ÿ~³Û}û¸åòŸ÷Íî;›É©}'xònÁñQn÷Šz„R¤·%…ŠÌ3ôŒzOz‹E&(üíç§îß°_ˆÌG…Ö𵢯8ÛàTiû:«Q“uˆÏâH'™õ)2ŒTÚ!VLÙIxÜê yÐÁ!£±ˆý¥àô"ßY‚‰#A4×Ïè<¶·ú£! ˆ"qbóï§F°„×moS ¦õ²¬—´^–u•´teMIààO£Z€*’¦ƒ¬ß€º‚öÑp>_òͯª#¥¼½|Û©3rj5ñH ßV]Òx4†øŽz½i•g4 8DÛCâY¦J#z~Y­1cíw¡}<ø¿µÿ|ç¶K1ã.Ú2ÊÛ$p8í]€w€mé0¼–ÇØ™5 «‘$1„χRäÖ’Ut’MìØÅžµ6v£å¹•”©!ÔBš¦Ô|ý:R°z¶¦ÔŒZ&gÏÓ÷çd48Û–·R©s…?µ~ÊŒMòÃÊÿÏ|*Ÿz'_þ$Ÿñ©g²Â…îSL-ÔYtYu]õrÁ%! eÇ c’Ö«:7Õåý¸<9ê̬>÷j11Ýê(r§Ž‹‰1)s ½Ô n'¶ú¬gHôEE^¯ì4E6-ïÌüØòýn÷íýfývË÷CívÏ·{¾?ö÷{þ¸åÛÝ>îûÇ=ÜÚ¿oûûmû¸å{þ¸çûc¿?òã‘ï{<ò½D÷×éÙ¨!*Ï»†—ŒXëÈÔúÕlÏÜs‘iðÅ5è&à÷ÈU¿ÎªþTÅɆNezò•ôÀy¦€Âçh¥TGÚS4+ÓU„N2Pß´éSTÃ$„`lh/|ŠH'Oúå‰^ ‘⯣aŽ~Át¾ãŒú>U1`ꪋWGôIŒ » o<<Þ) P]RZ¯ËåR´§Òº ÅX…‡„Ó|ô¾3©î[U‡ ¡‚މ )òεI1R¥5 iµ·Á( Ø¾åÇ}{ÿ¾Ül{sm{¯N¼2óŒqQ&Í…‹×oÕsÄ ª²hl«aFEÊ–‡Šž’5´þÑæîšÐ›ÇLÃpÌvj¥¸!ÿ#cbnŽ™Ç“"´õÃýéÅjj#z=vìRŒµ•ÓyÊW¾xda* (ª@d]õmER÷µ­UD”/[ܨÍe´v!ñZRB„,ýSíO—XÞJ—ó±ÛßÞíÿT2UÐØDhÏU½…Á]G‘õ «1?GBÁÔ㎓ãÁIVN˜NlNJ˜Võ½àmíÎÒ ›T–Tu•CQxÀˆÃªwnÏJÕZ—_:npRà’V”<9úðt›ˆç¹°¿§þËŸ$ð,æô„<—çÞÿÏ0ëðûúÜBýÞ’ºêºêzÑë¢eÆ ‚{¶„Œ¶AòéU“Âû75„ÓqBÓ‚Ño}7ÞÄù}¥F|ÕU‰À3Í+oeS¥µçºÁHÉÌÙ»Øí¾ß+ŸZ€fäÛ­|$ßïùöØïw»=òý¾εЮ-?vÛv{4aÀVP%×íW•½–BÔÂé|¦à9 UÑZdî»m}×ÏÑ™‚“&L!=|©4ý:TÅ÷_¸™Ÿµ&Â?VŸ» ‰K-+ÚÒPZ}îñ/›ñ'¹'ª‡1o¹ëNN%ÂU‘°þ¢ëfC»/ªó<,šÅ1¤ãoiÅ8PMÓ[MæœJéá ©zÅc\¢^æèF¬òT=Ö%€&]–¥€Ô´ª&Ï Öy“ÚýÚu.ÝsdUQªÇ·ÂØñ|ÆPÆêp2³¿2&-XºršeUʺŸÚ¾Ýöûmûþ¾ßoyÛ¬ÂÈ"I•˜ç¾òBÅ7sú ?¤yº5€µö­Bʧ¹ö¬ÙÄ€ö\þ(ê$lm¶EM‹ §ˆ^ÇÛaÀ§§¾J…—0”šÁ]ص0»ð©6R¼ÝÊxH†’¾ç‰›¼ç@v®³ªA$MÁeÅe‰Ý£"¬šPU ëbìÚ9H‘úÅZn•^$D‰=ç¿}Øü¿¼Ë–E¤Æ¦¦zS3˜1Ý[]2•ƒú~J9ðÂâúeÚ–<ž’åñî-Vj£d“,ÌŒdjÊ— ÆêßW,¤¦ºú¯›wmbßö:³³ö!ôN|Y›kj„+8FgçÖ„Vç'Ú¡‚ §«ªs?Ç—½ÿQ¿ÏÒþÏŽ{¾"V¿û?ß*¥%5­º®ézÑË¢)AÇ_ò×FBµ{BAæÕk?Mœ(qMqÒ1« =ûžš¦‚戡â(<Æ`¶ê4°mˆjÑ}…¶+ƒ+ž3É»í›=öØì¾Ù¶Û¶sÛmÏ|lyÛ¹g{l¶m¶íµä{ßlËÜ6Û³m™{“´öìØše-(ªŸ M,›‡í/D=YÛû‰™Y#P÷Z¬:ª|Â’†ê4?̳|ޝ*Ìÿ„‚[ÝEjšçdµÛj–j ZïÎ÷¦åP§iö!¦¶¦KÍ|¦©O“R'cG§ª/`u?«ºÓ®£­;þÁ¼6éh8Ý/ß½ø,öíD/¦à }áì‘×óóõÔ*Ý ´Óe]ÖkZ/H‹6ÍÏaR©*míʃ°Ð†&‡3ÐòF2óf9[É E¥ñaÞ+sB{V•¬Ë9çmßïûÇÇããÃwÛ÷jýå·ªª’´W$Ê[ÖŸœc‡ÑÖûQ+Ø 4½}ߥæ;i*­¤Ì cw©Dk¿«¹Åi±šÁ‡ªÉêÈ.Šî :»Ól Ƙé4mî~m‘(ÚÙ¿`Xô©¡!qÜÎcÂâP›„ïð0$#Tgjr÷èí{dŠ\¬‹›`CWjmςֺÔ"dk@ »*}}kI`Ý·ÿø»ýç;ï;Í ")fÚ<DèÈ=¨pgjë µaÇ›½"1µƒA1dÈcPî4º§F+UUå¡{Õ>}`¢´DJ-Z[ ÒÈ@m¸¡«‡N™19(z-‡[ýwˆ ÆD-$^ù¢ý_Ñ óc¶§â°Ëú‘È›×|êŸrÄòŒ'ýª¦õ‰äg†+œÓÑxž†åf]AÒ´èºê媗â õÔœT!ðn¿t‚Ðé=Òv]¹ÀÉÇèv˜ { ùg:ËìHÿ¡_†w±¼KXí3m?Šœ%Û· ûB%…¥’ :ñ›-©$°(Y›“,3›eãž«%«³jZB‰’-8ÕŠ¨wÆÓå)ŸÙ}]VgÉšù_“r_ñ3›5ñ@ ¼e¶Îœ¥mN§ ^Ý[ø|Oÿ5 À²ª2ÂHþr2äg ¡þt$åpl™—è9³\©»Pé¯LAÔ9µ Ÿ(à8þ±çÇÈ ‘P´ÚOJDÐþ»0Úq*˜¢ôb†YMè­z³àPs5ÍúXÛÃöò @ Ë²,ë%­×â„jѲϓ“ês d@Ée¯²,ŸeBæl9çmËûΜa–Í bFkÚXî®Ýöœ|¿í÷÷íö‘ï·üØh{ùSu4HДTiÑ%©&QÕ¢±SSꈄ¢èFÒ‘ÔBkÕ o·3M—ëØ1ÖÚ–A°:9âjQ=¾D„VöèštY°.zYõRÂ`V,‹¦„¥…Ò£=U㺀¦­QWîª/8µåÈ“eþ”ÕZÁ#'͆ƒöOÎaNì ¦\曳Ákºˆ¶‡!Û9¤*Ö8~“òEmu¶¨iï·®Ú’÷ü÷[þ¿Ûß¾óãÁL@¤("Ê| ãÍàèô"£TÒŸô <ïÔA’MbÊ¥öë¤áá›yí‹™ÀLê:°Š7N@j±­öˆþ%Õä©VTAsD|ë\sŠêna)±nUoÝŠw.iŒYáŒu¯Ñ*N£_§÷ ãW–‹¿§þÁd*¿ 6ý³ŠœJy1]ƒO‹]茴ԢÔkYýk#SáËúâêy+=šû½žW³ùÓüðpB(3Ñ?C£×”^è “—·º3•Ç „w5hQ|23ZW^ íÿŠA›à¡ìëë?4aµíVÛÙœ Yj¬–—gï©£š˜£¡°° ¡æÜŠÊ§M¸œ%ö#âéõAµÔÇSmÎçAT&«Ú‚Œ <ƒÛ­~!„OI4ô‡ ®T~~´#ò¶Ñ;ËgSƒª«z‡6{?ŃÙÝ?þsGËHc9}Ã&+/Ηû3Éú‚XÚ·ƒ<6̆óô0êI5¥´¬oérIi)HÇy.¼(…”ÎÒ^é&ߥZ y"’KïÛãž·G.;ýaûž÷lûμ[ÎÜ·¼my»çÇ#?nûý¶}|ì÷í~³ÇÆœÙ59€ ©ª.KZ–t¹,×kQø§eÕu.iIÐEŠÃJBK|¿·^Øp ³ª…#m Uè¾xŸòèñ爯Ã4ú ~v¹>Då¸;—jÉ_–´,z½,o«¾½¥o×tyÓ·Kº^ôzÑËe¹¬(»·ËŠe)€•a%ÐÀŠÁßQ½­¨LÍ ëðùç}7§ZUàŒ@åÙ!ÊÎÙÑ£8%×g<’ª–]¼„b²þðéÜ;¼Ø­Å+²0ÇÚ î»ýíÿïÙß¾óý!»IkOmA¡%2¢Ò–MÅÆ¡Xiÿ^ —Ûìˆ(ypdÆkÃ$áûT¦i[ ¬ï+§r2]´âStº¦ö3 tÝ8qV‡‡*\qCß÷UN7W>µWŒMOš¾þmÚ``¢ß¼nÂû¨àêÏ«$·ár0”œ¿oï?ÃJ%s"úKyü©ä`]{xö''ÍXô**š´P­½¬º&IÀY*§œ4Á'ãÐ#Þ+ÿü2™ˆÕÞõ2 #Ù1dÄÇPŠ·¬LM½î£:%4ÕJÁLNW-Í)´ƒÒ#çD‹ÌÞÆ²¾YÇ\6aÔ M:™šeRN™Îë–ì¹Ñ˜[-k“+P6º´/™TTÎ$Á%žLO˜ Û‹Ò'|•ü”?ÔYu²Jñb7¼Oò¯ 5ô—YV òy>@ÏIga±0ùâ‘©âƹnø÷yê¿"ˆî¦rÿEÆ}AÓªƒ';YÊã•Rí¦{ú,>NÑS«§SÁÖµ8gZº„u”º^—õ’–…5ؼ^oŒî 8E,¬ó¬;–ÆöQÁPÔçêg Ë9ýöþÈÛfÛ#ï›Ý¶ß÷Ç}¿ß÷Ç-ßoûý¾ßoûý¶ß¶Ýó¾1›ÔÐ Mš’.Kº^–ËÛúömyû–.—åò–®%1eMë¢iÁªº®šRK?Ó©w‘½ °›ˆZ|-J°¡g´œøfÿ'v%$d4T ˜ñGÍC!Z¥1A/—ô¶¦oßôíªo×tYõzÑ5é’’¦„%aQ]]\’^VM‹.©àö!ªšÔ¦A°s˜2›Á¿±Îµ"Õ²Ô‘÷„¢F-‚Tq5¢ Ò“¹1DdØYûtÝéU¢ÔgXOêÇ,^JÑè VŸN&y96¬Æ¯ÃSV5~ýiÃýGìýùçAUykŠ—§0ŸâñÃÒã\Ÿú¬`c-“V]V½^ô²`-ÏoñôtÒtÍ»Lrxq ,¯> ©ôƒ¶²ÂE¯U8©2W±ù*„ÅBŒñE‚šÀfˆÐÿTΫÝZ»»-p(°›‘m›$µ¦Õ˜Û*ˆ“#jªâÂYKí§ÅZ<›(¦-ÿù¥}*8ÜŽuü<þyþX^Õ—AíW#+ÜÁùBé:Z,´_¿ö.W¤y"Ú9OO•hê?bO‰‰¨^Ñ…ÈóÁË ânÁ‡þ!ΆïUÜ.75æ P|0©ËÔ«§‘xÛâÙëÞ‰#ëʸA9h$ $Ò´¬ËzÕuÕè‘ 2Å rPýœÐi/à<­"Aí = É-7i¬aÇÙò–·Í¶Íö‡m[Þ·úïœ-ï¤9<¤¢HiY–5½]/ooËõÛòö¦×˲^—uM—"H-±ÿIU4¨º ¡ü°è½A…뺒–_€ñW`¥…uå(/šuUk=³'S]Ú”’-EÏš’^Öôö–¾½é··t½¤¥É9UQ¢bÙ°’Ð5¡ÀÖ%•8 téaˆŘ® ‹wÔFÏ„è8í:í$Ïè^xWV!g¼–o8xþ¢ 4½<6n;w¤…ŽE¤+ÂvCW1‚63Z ¦*ïñží—wûß¿Øü¿¿ó¶Iv  Ï•k£˜ŠJ{Ø`΄ã™H(C¤®bÈŒ`V'öewoW×_ L -¢ö¯£F÷/‰ËH쯆úeÇÃÊA,‹^.¸\ô’4)ÒÄ&!(M%TCö€pwˆv#"$´EʨK§ËªD°¥ÈHGEÑï‘)úß©éi)z¹«=‹‡¬ó æB“ z Aí2|ª÷Çá‹W¢£l¶r'A{’g<;™ByR‘1ýV}*ŸÄ üÁhõ\˜zú{8ãcÏXU|A;!ª²ôW¤¤ëÕA¥H±G1êë¦3 ‘ýÆŒb3îò¸ÕÍ$´Òû£[8ê0FKç’ÐÌÙaÙê’0128!ˆØ39)§ ž2ödjF«âT+åt¥Éƒ.ë²¾°°]Ïzð–KöôIê® ˆi‘³†¡XöÄxàÄrWZ¯Óh'‡pÜÿˆ\õGøò5·Ô· *ÔÀ Öñ‚Ónò‰ˆtWI\»yÉóH§òuhpÍNÃ]t¦=\~_/©7œ6€ÒE˜U3þzèA…žý=,ë‚'K1™8’Ê"©‹ŠÓÌê´rᇨ¦´\ÒzÑ´S/ÛB¾gîj U%ƒŠtj‰©r³)Ö9Ÿ&õfd7€®JfýMïAYÒz]ßÞ–oßÒõªkÑñkõ•Ú«Bà²)¬×n²¬€K„•¤ÒðªDË}ìÔ*jì¿K¯’W¬CÍF1]—J•Z aA½ÙÊ>ý‘¬)麦··ôÓ[z»èzÏ¢ÔÚe‰ž-M«Po“bY±&´v?ã¸õz“Sufn0­òåVŃ¾Í«Údò”-âÉV@æcËo›<öš"(:ŠßšŽƒ%r—"9ó±ñýnÿnÿ÷WûÛ¯öËßÜöŠíºõ¾Vv´•OJU×ßveËñE!N°8Eùù@Ö8u_'–\­jÌV.MÕ¤šd2G›'_“ ã¯!¡¹UÀOÄg£ÃTx60è¨îänž÷þÿoo¶ØHŽ$‹º9‚̬>§þÿ+oOÏIQdv°¹;”²º«kªkr‘Ä-0˜Û‚M81¹0M¯¾É‰Â0kr7[ö…¡[€÷WùÔýðoýïÕw²/>x#TµŸD`×d9ô´óêô¿ÝkWªhÓjΚµM6#]ä°EsÒÜ}Ç üi¨€‘_õ—€­#´ç¢ðcÓ+GùpO›Ö{Ç&žrfM†!³”“gU·õ†ÕQB»ÔÕ·}”5" ›"aµ-îÄBNÏo´_2cv ü˜›qÿ; @[Â^UŽþwU¯sÙöƒ'¾wQ©Ôdnlö%ØqÙ.¬v%’ÝÄ~7ðw¡©ãwœAb+ÔÄE·¹óþ<ÐqÜ@3µTá)ÿ­Ål뻉‰ðK©‚iï±ÍTæsžål&8Rºÿ8n·Ú5-#'U¥p<%ß”?!cG[í©rñ’uäËN6*„Rò)%Û]ªç‹…ñiþR=ŽÛ·ŸÿH?~¦û šjÚ»¸ZÐÔƒAź¸ µ†HZ)TíB“¤ŠFÍf¨êSºÁ·pvöV ÛžfK¯šàúûVK`çî>‡ ƒGn·ãçÏã?õÇ}šö'ØëŸÜÒ>'ÀH¿ÆÇ1ÌU2|ýôKI3 öNCšº•­¨íMÈ¿ ¦Yçú^7´Ž¼@¨F.Ü|°g–×Édz|<ùëQ~}ò×£||òãÉÇ‹ÏW~<ùxáã™?žüü×gùçGùÿþ7ÿóWù׃Ÿ|žÌYFï!ýðjLÉkñˆç‡ “0ó'šÀT [6‘a2„@2ŠWž»·z”?e‘Â.a¶s(’HJrÓÆ§jpmN¶Š"àX—á<ÎDí|4TVÀ©MŸã íÅ›a Yê7#¦M_¿;S)¿ýÿ>«šþïñ'6U[#óy–çÉ³Ô }–§ßg!•C­0–t÷:¢ûÇÁG ù€îl4™\ «-pò™‰G±èÜHÂj¶w@v‡û©°ßhgÿMòô¯~íZmÚ™TŒôu“”*»ÚÀ ÌYm@\kœ0¿.ößIO½üUB7üwa!J‚Ûf_Î ÛÿJK1ÚX×Ë<\À)ÿ‘s*#¦€‹Ý_Ä i9-¥t·Û]õ† EzN2‡ˆØ*,š#³Ž³µI§›í¼;¾ª¼[&Ñ\UhMz¥T-Á7“O‚Î:®¿Ýn?~üqüø™nI$ r·ãpm¹«UY;LÅ]@í¨Á ô8R{««@³±f¥Ýô“QåœÝôUCûÉL®îô/›•i$uÐ÷ãçéŸz¿‰öÖ%“CB6ænáeŒÕ®ošÖU]EDRJÕÜÎÃÑSÛU [¦G´óï›ÄPÚk .:”ý1Ûƒ Ò³8¼žûÃ|Go¦­´C•üú,ÿûÁ=Êÿ|”ÿùÈÿüüç/þëWùç/þÏ/þó£üëWùß=ùxñu"—áw÷ ôÌššG›´û¨Ú–#æ¥ù•¥9‘äã-ƒNœwÊÜ豉7Má­@0s$×A1ÄÊ’’M– E<êÅ mD©›ÆsçPá›8ŸžˆÐ’Ιó¿Oδ>‚|ñJ…Õj±,·D‹l Ì•µsy«ÿÀʯd}ïýþÛ3£o•!öïkc›’¦æôÇ-u£<‚ªÂlÆôV ï½wjKŒöi0Eç:.zž&’sl]¦/•î8ÓH>‡¬ ?¼Jð,UæÈLzŽ&`‡¥0 –U¦Ež¹ä“¯Õ¥U­JŠœØ”~M\Š±í»€WyËÒfŒ¹j@–ÎøY¥÷‰y5¸„‘ŽW^`§c^ùVœxܘù=­ª¼q"V&}ùþn–©dÒR%ˆë±SiEÔ­Í»g$bââü-×OwB‹V¡XÕ…·ÙSÄ#]Û?`ÃJt$A×1ÊÎA…Í–m©/¯mpÔ2Çáe5:<ß2¤ªã¸ýÐã^xÚ†{2Ý!ÖáŒêfC ýh"Ϫr¯r„šwÜ,ü A€q%iºÇŸ·?~¦?4iÀ£Ì>§:î®|j=þw,9Bµ cÂz%zUûJ@dRŠ”A"—YÏR`m=ìu*\‹y_`Äš4‘™ªšn·ãçÏô?ôv¯µ&Åi„ÏÖþ+rÒô¥·î‚ÑÆ€( èðI¥N›T¦®±ùµKmÚ¦A>ËÜfÞÏ1XÔéæ„îɶZÍ…¼H›“…¯,Ï“Ÿ/>žüxòñ,¿^|<ËÇ‹Ï?³¼²œ¥òŽ£œ"^«fDj‡Btk­Î3Ò¬¿6Šj€ Õõ^.4՜΋åùWbdé·hÄÞSêŽûUœ]R!•GOp1jnäØÑH§fãvVÖËW_Ö\wÝ\/¡7a+’£¥ecr?w† ˆkõ[8çÍa}èyͼ|›Xsÿ¿­™õâÆâû~¹§ïŸ«?ví7ý.NÕšHuýv¥bÜ “‡X H]T²K®°¹ê왡‘°|)f¶ C*ë°£*Œðasl™âö!JÐ×µË}Ú¡°U„pOˆ° Ï“¥´*©).Ãî.±I[&) Á fF‚ÈÅ  × oÃdmìÔ’¢Yè[™?›‹®xs¤õ!oo.A|¥-ûý“¾šû»Ä¦>î¯J@`õÞ1N¾mBÅnpí¢áÌïù>Í_\ˆp˜ñë®NG\ŠÆ” ÈL YE¶ãše„Ì ›—h¡ .P~<øÂ· ë^Üà8)—%V=ŽãvKéfoø¨©Ñ6énZ@úš£} %ÔÎ!Ã׉‘E‰êž*ù”Ì‘ŸNNK(D Rÿ8î?U•Ú Jm¸»¨ õ)´ö1h!´Ç¨ \`5? š®-‚©ù˜{2» a6 öÑ;MSê´£4uªiAÀü û<C¡ÐtèÏŸé?ôv«qKÃ5Ÿ _%Ùoq\¬-bmˆÁ4¥öJAcU‡$b ýÙIcÚb$ú8Êw â6˜ž%pbNÈ„ëûÍ™¿›HÃw½¦ä,Ý]4{ÄéJÞLÝkd ¡©záÍzGAN:eÐi,¯2EtœÃ“fÂáºÒ°BôãPî^77a7ŸJ½†*“Ú àLaPg—OlÒ÷agèèÒ+o«]3Ë’µ.­# c™±ÝwÛBØÄ•$…;ÉæÎ´ü;¾ýôgãS¿œûÿg+‹ä-{ú=>uÃ.§wˆ$M7=½ßÓýÐCc ­›©ÇÜE¸¿«•¢·é™/cÈ%UAÌ\h5Ù&Ô_šÖDžašSÚMèÃI†]‰®˜á3¬/ÍÙƒúYNž¹”VyŠðö/Á®»)³ïz_YR'2 eÃS­cK <³i¾Ø÷(± Ç,šž˜ b…øU“Â~ƒVñízÕßh«švƒDå&þWgWw¿Œwd“ áÁh4Ù›ÐB,Õ¨/Œ'Œ€bÍif^ѰêL‡¬ë?æ¸j8œU ÂÐêM‡¬q œ–Í©­ÛeâÀuŠUê†,]šõÞÔ¤)·;ªx› iÜXý­#\©÷”Iz•ϼbGšÄ07$KÉ…yθ›~©ý0ÒñãÇíçÇý§¦4‰K §u"©õT1¨?€¢ôt¬– _•%M`:;·Ríÿ«õvôGßöz:~6þ.]í‚XŠKÊçxùUæøÜIÓÏûñ?RÓ¤’¦»ÎÚ)CäA™:ã†÷Ŧۣõ£²ýÛ«…&:% †Cˆ2ÎûdYÛìŒ|bÁ‚\³D€pÁ #êkHW ¹F³£Ñ”F"0Ìa²¬£­}bêÏÜPPkì˜ÔRAþ‰Ò2H‘t`nš- H£û4a*$L6Hª“ÍgÑôµ³»mº€rh•¥Ê`RU,S»ø‘ü&AÑ áŒŒ½«\ê±®BÕ]ÝÀFíùþ˜¾ñæc¬™‹VuI<·êÈÞœå²eŒÿ2Ÿú÷²ªï» %¿xj×þl@„tèíŽûÛÝ•ÇUrì¹!çF¤¡M儦 z2‹Ôn¿Â‡Mç£í¾²A–Ö©ÜËO¬í½oˆS9 jœWt'-¹Ô~´2NÕt·»"õÐúx§ú²õ f€;Áƒ®Ïë±!‹v–’åÌÅ“=ÂM¨Þ~Üþøyüø™ŽTj$ëÜx]LCµ°ië}H PLʇñ'©°úï)¢H½}®fcõˆ¯ÖÐYÆa"£ ÜêÄâ—ŠºÈ" ÿUÿ A‚ÞnÇÏ?ôçhê­¥=å2Y…a d\ûð'YË!­j+Mªµö:òÒÛ…®ÊVù\zƒÑHNmàÕÂrw§Ò䓸Ÿƒ+Yî\Û¹¹9¯rg.g<·mŠJ/ð«­r‹ÀÅÌ4Ä 7[iYÏór°U-A\“ƒÁ ³¼|œo&HŠ`éümÿ°íu¶˜Ì¥ž‚PÚmŠ|ªÐ£šÀjÝ”BR#Ô/Ê.×z[| ++vÈo˜7Èžzš¼~Éâ¹úFÁÝN¶¨¦º „ª’%öÿ÷ UéÏãÿ.1|XröñwSüåïÁÃÒ·ôS§¨MT÷›ÞÚÐßQ@¶ŸÇGþJĨ¶P³dJdéàŽâ¼µè|ªúBQºØœ¦9xŠ®`“2j†•ÚÍרvNÃV‚&Í”BHa©5‹Oõ/h¢ †.¨%¼ Ö}T6Õ%Å›ÍÅ€eIÖ]}`øæ;Éíø×e÷ø–¥å -ßÓ¥øZ*€m èn&3ÉÔ¤­Ußßpã´ÐÞµ|ÓòÖ„qµ7P!”Dù„S—L"Õj–.«:*tƒ¦µbêfG ¡÷gÑ|œú›ìÂÌ-‚cL`µã¡(Ê~äHÇý®z %ÄÚ3x«CR»°×ê*Ðs¯°ž“N?÷9¬:M2·Àìè\½Ýî?~Þþø#éMM ê1œ9]¢§ýħm'/-¾y.C ¡)2{š{‰u…g²pˆR ' d*UȤî†`ð§æ„BZ1¯*Ò‘~ÜõÇáx5Z;a0Ò䎌‹Qƒ@DJ‹­|rù¯ Dõªiïeo‚©VÏŠYë¬< SO½09×:8ddÑ‹¿…CIli ® ßCZÇZn]é•BÚ²ž›ß†ñ¸܉ •º¤U„…‘ÒbBˆJ«²a)p¥Sìü}Ozì²TÚ²¨Ò(] â`^r ˆ¤·ï^¡Ôp»85ÛW~%Nu‡˜ èúq¹e±©§ší’Em¬ÐÊö7øÔôç.N˜ÿM2õ‹¨tìøBÿú§B¡G3QÝ’ÞÌZá•·ðY§XÌD'(± ¤wóiØ~TØÜ]qSFâÏ)áb­„ù¢ÈnÙ?³oj3è,wŒ‘ìÌR Ï\r–lKT¦x¡Ï;Qêú×<Åêø"8"š9ÏÖò#Þ}²`múaÑËøAF” Âk†¾’Ä8Àwy•Š´= ¿SÅL¸7ÉTÅNÆÂM×&{C&;y ‘G&h4šY¯” Rõñ©öôeï&žjª3&->Ê4u¾N;&<ႃmŸiiKÿ|uîØÅà4 6£`hᦳrî;IUÓ‘Ž»BiZ¢ÎÇ ì­?bé=ºŒk°˜1º†KÉ%ŸRŠ Rí€Qõ¸Ýoÿøã¸Ý©­ “¾8§EdMDÒÂC»_›!Y¿…œƒ¬ÿjåt¥´õC…¥”Rrn´ÿMO˜¢Ó #o f²<>jŒ©ve6ïGúùÇñã>Õ˦ĹmóeÜiEŒˆÀÞÃnTÓ¬X)´ ÖkB(a w$Ï,ÕƒÚjéi¼ìŠrÈ Â:Àä7 #}JîÄw[!«\®{´"Îî&ÜBÍØ Õ0N·ÄÍÔ™:ZQ•Qåë—¢lN•øû-†ˆ£l8BS£Öazýh2Q›fv0(ZkQ“vƒ¿YO¸MÔßA-ƽ›ÄÖtílni†^—÷[‰sç[Ï!v»w4ø3w£:òÝ þ7ûTÓŸÇŸ±¢:^ÁWXÕ?w%y¿Ç§~e;iAgÒÛMï7Šã"íÝöB¹TQX•Šëç )¶³IÆbâS¹tLšdp—ƒÕNÐÙÛö°„íaÃØ-1ÍÐ~Ö˜ûO蘞*©úÔ6÷/Õ/l³ÞqÕÁis=g‚”¹ïí ×û5˜ÍfM0OÇÜ.1>ô×G[zÔoÀÌô-šgL~¶CËçkI€ÅÛu¹Sßeļ¶eveS;™ê/mÚD‹?±ŽÞ(Qà VlÆ –c§ØÀÔYA\'ÆM©b¨ØIÒ£KBG÷t²«êe™6àm&­šu“oÁžC¸ÒÆKxøh631£p‚x,4Ûb )¥ã–Žd^„a•i¿±…Na€l³£Z~i¬ !0m¤ˆTƒ…l×Eaɹœ'Ç-<è =n·?oü¡)õïg§k‹'µw9dhô—RF©)(”R´œÔ,(•rfž¹Â¸2êUeä5ô‹yjJ9Ý&l.!óVÒÆTª¦t¿§?þ¨ Ù5µ`¼œz}¶$Û5Á ¦r¸`Ž©“tµ MOvû{A…û ”œùÊ̵Ú/{úv$,K·÷$®Ø;ÚXˆ êN,³RÞáUçÇ„Y–F˜GÜ´Â,C›¥–™IÂ웵F/ÌbÎÑ å=AEuŒÓÉ;ê¦Ì?øô¬*›Y×6øÀ× ~ ;þ6ÑáÒЛ]L±¥×LOaõàd=µš=p3˜±ÎýÏ6¾ª´‡ÑzÜ ¬ ´tØeÂ@Q+€+Ÿí¾1† .Ö"›¥âmWÏÓÖ§wrÕõh´¨Åqyn"6­É_lÖ£G?|©j-?Ñj7ö~œ°2¾4: ìÕe,3SŒ£·ŠÌ¡Ä20p\6<6õŽ5Ì«³ [½eX»bÕ¯ƒR5ù+õsúUÂ6‚{®½4»É•Z€"éqéÖówF_±QCºŸ¿Þ@V«_@÷ãÏc#}È0ç0çRNfÒ'X éq¿ß~þŸã~´¡l²¨k<©6÷LӦޮ½1áƒ%æ¶]WÑÖÕóIÛH+æ“gÌh]‹Q©ÖT*Šuí }©PÜŽôógúñC[¿ôçE Ëªó?Îi[^ú ©ÑÀT­q¶¬ÃÀ©<1a!%ó<ù:[SJδ®Jx‰<®°¦ÍÉÀ’´ºDUѲ_Q0éúV±OwÝ+‘:ß= è£85£µë’Ô(5ˆöñUQ‹w+„ÍÜÍ,Ú²P+¦2;ì³~ÿ Œý´IQ«Á?!xmþȸ-]×‘Û J‘F¦fëîú=ès:Á–â…?Ÿ¬{Á²й©h‚šå÷ÊTÓŸ·?]‚C|R—_þzKìþÛ˜¹.¥IÓ¡Ç ·›Þ$Õ4{ÙÖ€H/3õ…9nëÁ-‡{t*Åd¸ðɹ•X1šÆÑ¤—föé¼Ì8Vi¤éäÇ» œ}~8¸\bø¾Ôß…:UŒð š%W s.g®9ÿ‹*3^¿ÖA‹Hm9,Œz°¼ŒÙªý€ßy¨àÑêœ3è½ A °RMo+d+WݡՀy.lUøžLesË`¹žwdê(~;ã”0 »“Êöƒ}4ª7À«”ŒòÚ RÙüN®9Ú[ß`‹Y{ŽŸS©N•€ºæV]³·~ß²‚ì‚çÎóz¶&Øò|H”êqÜR:F£ˆ6æ¤ÝgŒþÌÞò˜¼HÎG©ì‚yèe3Å7º&ÕŠUßÉRÎ’3K¶Ò2ŽãþóøùCÔ /¹‚:4b[LÆç[ZP‹±7˜±%¥Ú5­™çI–\JÉ•h¬o@i˜-UË2uÞ_èæÐ=À "Òý~üø‘î÷³ßEAczž 1ç¥%RF9/0DEuW5{¥¥"v)”ϳžô»2•4|ùÀ¦_e(/°’þ\¿º7É2œ¡ì’U!·+C¤fx^.„¿~8£DlWÕœÿAÚ¦ÿ}1æNX4uØ#ù{W©§²ñ€9“§˜›¯_ºÁ¿„poય¿•£vä³w“¯Íç†þˆ¾Ù`nn µÚòê¿®Qç÷ ÇÖEgJœÅáê ² 3î°õ•)ßŘéÏãOo ë²±¿E±ê“w*q¼•ÿŠF_IU´âÔ»Þ+8 ψ¶6åÁé˜í⺎a©V{(ñª<†ÄJ¸@óµ›j‘3K³÷¾ä܄ר=¤Yk˯„S¯Î^?:(ÙÃYùÔ³œd)³Kf6ïA+ÃmƤiÿ0ެ¾ #©O}÷,Ÿ}¥$Öì Wã7†0e§NÞ¦cUyyºÂÕw·6î@g½ÎZ•!S…Õ/ÑÕÃMØ=/È ô”xƒm@ÈaïåÈãß´UM¿¿ç ½³î|alx4Í6¾Úð󰙈sV×N㢺xÎÇqŒbäKÊŠGëiBÓ¡Ç1+:ç#ÁzË‘qû¹åÅËeeRè¹:bã ale$Ï:÷/ÃSS9ÑtÜŽŸ?ûO Õ¹56‘Þ¥ˆÔ:÷Z› †8)O׆UDXú ‚¥Ûù癓¥äò|‘5Sd¨X Háh«oVªAɶU®4~Ö¿Yu·úã‡þ¼ãHè˜Ð"Z7%D¤´_®ËIA±khùC?¯ÃžîIˆ°¼^ü|ò<ÛÜŸ½aŒÒR25çkÇ¥²ô‚u­¹°ÜØÏ÷?¨¬x»i¿U,Áò»œʦ¾é1ãÎoUTmš™›ÌU§:°CWÄm(“MëR«4àÈõ4*¯»Z攢•N¥„TUûÍI¦)sÂ%HÝý!˜\Ì™Iéìoæô)~¤r§£¤[?à,o&ÝÅúdüe&ˆßkAM‚›è€ÍˆñwÉåßT©ò¤B–‚¿Tò:€"8=nz?tpˆ«$mBôI Œ¡ná’Êa’ä1·«§3ÓY3å$] <ô cídTC „z‚Oƒy¦> Ê°YŠwÄt–uàVm?GëÏf.Ìržù,ræÆ§2%9¥j°°Ó–ûq&¢À3âÅѧcƒ„ <W½£§¿ ¾†iW,程‘.ajìG³¯)YÎ¥!çöý½ˆj[¥KçSûÇŠ ú½PðïXVl5Bä… SŸ¿tfK-BŠê Gí_ÍûÏ^b*&î³’ƒneá,Ê5:šÖÞ.¡CÉñ lбÍ€1¸¿Í65·”ŽôdV="^Z4–œ‚XO%Ž…6ÖDª¡ÈÂ|ž§:a¯¦ã~?~Ôôûönõ€©Œ>ã–¢]ªYÁM"Z£U»ptøŸZkˆ“ÕOw2Ëy–óœT0Ù…ª°*ÿuõåï¢ÉÀW %½ÿH?~&(3šU‡Ħuô3IC±uñŸãÀ2Â6ÚWªÀÙõËÿg–׫<^|½˜[ç´ÛZM»â®ûÆ"³uì,Í]âÐR,ð³x‰PiøÒøc¯à³©)¤Ë¬ÓJ¿šit㸠$[þmNŸ² ÃR´ í¢)R›œPˆàßAª};ß*IÀ‘ •LmÆãIe3‚}C+r—ç¾÷±°± ŒZ‡&NíOþ/é-W5‘,q,®š;‰ªEp\@ê²tºW^[/6úT\áEîDÿù2U¼ßRqñ¥òÛ”êÀOªéÖçþ GP—bP¡“¦0óœö‡êñ†®„‰KAÕR_9s*/¿SÓíìpQ“ãE­0½y%DC‰q+lc{ME¤)¹ä“çÉ\«ŽéóDU*Úé÷åÅf¥¯ˆ‘ ³áKN¦b&àQYU˜°£lÙ”¥ÂîI",cy,ÇH\ ï9áû×—²åáûû­ ÕaËénäµ×…p{]Ãl'µnÒŒ.wÂ~­ð—]°R°óü©]:µßB ŸÌTˆí13Ÿ[Û„Èbä®âŸŸ,M¹»DF[§ùÃ$Ê:ªT“¦CUÍ–;}Pì…\Îg-ŒJûÕÅ0¬;{a™Ö7¡”|¾˜Oæ2·…jÒûÛ»¦ÛPð”ÅyTŸ"ÚvÊfÓBª“Ã/SM À0La¸ÿ+7[„¢Õ—Dä’Ëë,å,5k];mþ›bcX^›f´ê4èíH?è½¶¤6”,š\`"IG7@U#€à’|o’}"­Ì½p1 µÎ§ ÁÂòz•ÏO>ë Z¦…oŠ@ösíjLkjZ·Ú8:;®;ÈãÏ Aìr¢õ Øë’ ¡¥V$LJ8îTîZ~†ìX“ êCËȼÊl½g)RÃ&ŠH)È ¡rÒ¨"… ¯!¼šº¾¦žöZ“Su:ó­›b"›/ÍëÑÿ–}㨠“eæ.N=­‰J–Zoͱ ´¸p>]ÍÑS„±;–„1¬˜4òo¬GéÏô§_Ðø†Tyo(û÷kÊÀžâ…<ßÀ©µ¦ ztš: eÕ>5@B‚d'½;Jf!< Åi>%ˆ·aù–›W,{~®#&šËP[)*#ÅÀÍ“1}´˜^ÆP£R#å¬6‡rÖœpJ°OÌpSD3×TªÂæªMÒ7Ž~gÁ·ÜªôlŒÖS³j:âaÄ!]^2pA¬^®fØNõ~vcƒ¯ï€pê­‚Ô¤Z3Ö£¿}f>‰€ûÞ+³gì°p@ K6•Su·ö¤Ñ2r,!â>ù1gh3pqÞ)ÒEC ²Y=æÈ'$6Ù¢£M8 iü¶x¹ C¬²Æ€3|·®³ŒÖܰ”nÝo3³­ìBgèòƒwê±&Á c/w‘ö°¥x_J9ŸÌýþí簾tÜ~¤ûOM£+¤F„Š‹ñ‚@J«£’bô*Ú"ª¨bÛ½§ ¶ŸÂîMÒ!+(¯g3õÔi™ª~Ø\ªéþŸ<ª¬‚B#ý¸ëqC2Ke1‰›d8C €*.½P~¶®¤CùP»t€&µÉÒBRžÏüø,ÏטûoÝþs?ombþ"äF&³a3¬âÕÁÈý–nkn·£}ÏWn¤ù\JþJ–Úgë`º‰sñé­ýs8Ý”'PC¦ÐJkErAaã 9³Q¥—s´±=:G3¬"©$Å‘šÇß—o䨰ÿÅ·šÍøÔ Iµ‰0w>µ„¦½ï²ˆk_êÎY{1ßßcÙy·o’š.©ã]ˆÍr¯¥?or[Ø5äÿíV*|Í&íZbñ‡h)á8n¸ÝÒq áòCFOhÀLÕlo½ÁœÝߤÍÊÒm Ñø/¦ÞSÓ…!3€ÅŠfŸŸ «»oÕ50ù'S9Ī)“„–dÎUVÁ]gVT)MŸúª. 1# (Ǥ0ö{x‹WTñÀô˜OÌ–l†fW;懧B­Ñjù°|ùѼí…ë+úÄžh¸fUãÓå‰8¹¾SÚÌ­}J“úÚ¤ ©·³[^Ó fuÀAaU¨Ø94b¢ª™ËÃFŽìD‡Æ@ï9tÝ»•ÃjžÃqIUÂN]¥+‡2­3:Ö[lj?mX!{‹àÆÜæÊǧ\I›jjýPCÄ+í® †ìû)Í$ îÜ0 [’,ù̯W.ƒW¦ÐãH÷ûqû¡)lC–H5toN†²»Áª$U´÷KÄDׂ-—¾Èü»NR³<Ÿùõª U0ðÖ@S›Äàº3Š#ï =né~O÷£ñ¹$):¹ÒÂ?ÝŽ3¶-lL"¶ðzJLª>B:c;^9˜óóU>>ùy–œgÎë‚Q›q±ÍkœY¸d+¿ÐÏ•qe6Ñž„¦€½öo–Ô"]]ÂŽvL¤áV§“¡2Ôñ7-]_`XØñ ÷!·qE Ú¿ê-š5j𦥆OÁØù'Gî¤æ®Vð@‹ô¯Uë ¦Ï›Ë>„‘óøç3!vì³ðÃõ“Rqj•OX¿§‡än„{S6Äj`U툑+¥ê%h¸ËcßÕøT8™Ôyá݈þo¬ïNoü]|Ÿ®Ú¢ÏZ.nGõQ¾ rÙoÉIãMu%zE\¼gÐ}bC¦6i?Œêܸ‹.NOB8Û:{DÿÔ¿ªA?.'‹jP‹tïÍb™¯Dtxg‹”Âòʯ,g¯¤¢øÅ8Gp”2à¼ö[‘ùêŲƒgù6„"a8טMK°j ïv0ø2¥•U…—N.Rÿ·P×¹þò‰ê@J]™Ú„]— Ê6oî<,_¶t¨®”ªÓ· |!¬ii5G…ƒëJxaë0×ÁÕUUê¿i¬aɦ)©öðBgr(^ÐaI…ÙܶM³>¶ 3pª‡¦lF¼ð:öÈoÀ&½LÕä"Üb“­ÛœáKO–|¾J~qÔ¦bÔô¥ÛÇíèp#AUFû¼ _¯±R€)mßàl.aw˜±G(£&¢K„›)¨ôg}*%Ÿ¯“ç‹çi$“OLG5,TóA±Z£Üt¿ëíh Ç@ßðˆ€>¢¡qü±IÌ©Î0TRmT§¥ȵiúùÌŸåùbñNm†{•bë²ÖIE¸æ‚:rç¨rU™qËDwп1¡œäéšB7Áü®œÉâT1C3R$æ×”2§ólZR²ÁM’•Ö7¶ÉéHɉ"ómç8 ÐCÙ4Úp_ZÛ§’jœ´x› ·uF˜ˆ‚Ý"à[Ð}²)Y\r*# .åê\ ù&¸…6Ï™®§êjRge3°^ÙÑp1ßA¾ôçíÏ0ïƒÁ“¿Åxþ›£ycüÙ¿¶oqõ »&hª>* ©†ÐLúíyˆkãÍÔYÆÍË8ÍÜ£ÛéS-ÝÒïv5º¢ž!-†×µ¤ÓÔ­A1³AL\ÝÄ2o(;øVÌxT\Ziï ËYγ¼Îæ(\“„DÝŒ¿§+š2*›EeKˆ$RÏ3² f­ŽwIÍÇÀ*ñѳ!?ϳàÎbåÒ鱡­ûjÖn~Úqñ•Ôz±Þ\†šÓßükÇç› Nø&ŽuÅ`w»ÃþW_YÔaÓ9¾ÂÎm°±ÑeŽŸUNlÂà2 ¤K¼œ§«Ðh{ÓµÝØ)Ue§ÇåéQ_Yo{$TRL*œcG„,Wó<­² àUíÆ1°UEY¼[J>_å<;Xg×0©é¸ÝÓýTe´ÑHF“ èn­–R?vÁ­Ë,® #”R´¢H•Fx¶Ó:œ¡¥¼žåù¶xQ3ÖGóÂÐN¼9•©N¯XSû)A’.ä¿#´ŽÈ{‹C}h4T´jÅZ8Õ£”Pa¤ª3ÛÕ’syžåñÉç³µR‰ç,GþØ»reÃlàÔ†¶ñ¶?nà+ßì¢Ü»úÆâ»CMƾéo–S7 ¦<  ±¡õ·”ð/Še¿.ö X6]h1]ÇÅçr=4€$´¢T`z>|!¸5l ô'ç0"6&@X rd@2œY²¸äT޲V|è/»â«0 “uÈ·îr®Ñª?HÙÛ1vÄ.¶Ä OµÒ]ó_„\ý]Éÿ{V• éƒß³JWâ ‰&=n8½%$µÉ‘´ xœÊ¤…0krì—Á„œ÷ÆI#ÑÞ“¤pÔÓê+†“'õKÑàtç¯Ð] £»ýFÂ`²NJ¸žÛ I²Uçõ/v*;Œ<Ýu㔚âTéJ‚öåÍiÕC´ Å ¡ÅÙ›<6†•œzެŸŠ?ºøªùur5‹ ¿ ÆÑÎjzuJ^žu]Co -0ý±LUÅۉǾ•ÐZ¶?l–Ùº3¿¾¿ ,é8 ¸ò*«…J&õ³UüpéEÌtŽSQ…`>Éëä\Ìê \ž&LF/×Ô–Ùl¦‘ÁDˆ+ò±€‚6æS¥®$ŽXºÖúÂÁœÏòz–|²'"l¹¤GºßÓý6+-–iD·Öf)W/Ã[* 7Rÿ>Ú­ÌY£ Ÿ Î9‹”׳¼žå,6-¦œ\ÍØÁ}ަ•+B zKz¿éq4u~…À³-»¸;qÙé;÷Ü|£%•:4º¬Â[{/Ô¤Bɹ|¾ÊÇGy¾¤” Z;f–Î-X…4¬çsÜÜ*-”0¾yn†8”ïŒ\íkm"›OÉ8~D/MbÕü·tzµÿ¥ßeS[lŒsNàD W@C’¤V=Õ0+$xTéÔüíZ5°²}èßNí¤×Òmý\ŽyEÅÈFÓOëýÇþ …¥ðíuÓú¨œ*ˆ‚‰àþåWÃÈ¿Wºú×ÊT½’¦ÔzSÔ{0ÄMŒ½ŸÌKQ9”#±8Xl #¿$;Täú›V§%‹lòÓÅÇüWß´uT[C‚Œ+ØÅNm+fkqÁ¾ùZ6ÕòÆ,åV½]©2vTâÜT°$©˜”S©‡S] \ÕšÔf>ÆÅ(‘¢5!íE‘kq€ÿ!„¼Íø¯Ì#^$ÿÀ^ó`d\f1 ú޲Óå…bRúÓìµ_ˆg#i±V*ÞÔ¨”ªØWcÇËb™ ›Zm^͵üB=f°É]œšÂr´òÛ]H» 'ØðÿÍ)slx_ì8*óKi§ Àz§Þì8Õ2#&EöM:ï•ÿI`ú-OÕ·>‡Sšä8ô8ôHr(Òî ‚Ý+m2¢þHhHóûk̓ê9§¤šÐ|#MBõǼ$“ê_ö6ŸÇ €™!1â `ÀE­¦¶m÷h:YÔªåäYÊY‹ÿº˜´u‰tZO+_¤2Ê<Ç× ´Û!GÅä-§Êê¯}Œ•ïGutÚ áôðÜqÛVÍ*ÎmåP¾v¸:-Êæ‹«–¦ðõò,¶eôg¯æ 'NÝ’ÎYu!([ú? .qHVÕô¼êéó*¢Õæ¥.ßgJwÀqÚµ1:k}L5S §…­Ž@2Ècël#&6³*v¸´ª×é8TUÓ¸)viQ¡=sqè¯ÐòÃ2s™¹B3Ÿg>Ÿ¹&ü{¢X+N=îévGš.…ù¸2ö(£YÊ.Íö¯#,²Ýzª)Uö4Ö~Ö€@˜KÉŸ¯üz2WZ’¥Ð×üXjŒsnnª:¶¬h½ÛÄîG:Ö3Ý0u±1nZ#XK÷h´Q΀†—ø¾ŸE¤½¶J´Ž§´ò|U+YÎ\Ÿùñày ËU+êL‹Xóíd³P–JS…ºà,Ô-%†Ÿ·9,xK1=÷'åN¶\‰@ŠÁ´‰Ç€ANB° ")—=H¸z1s0gâs  I%¥šKE o ƒÞ”ÛP}¹çûøažq…r¶*dJá²âÓÒÉW±Ê7Ö1›]m³¥Ll nýG„jt|g08uG÷cΔ‰Ëæ+ü­IUrÅU}¼nBw`$ª©âÔ‡vàÖ=¸sÓâÄ3!¿³ûògí¨Šõ¿ÍÍÄÎþú^CMï„ý-sóÆYôX9WSIˆ+óim9þ׋»,Ú‚ÕÐHUÖÒemgÚRr–œ™¥wh£†RBJšޤ)Iýí¡¢õÏÇ—)T{X ’lá6dËg Õ`J jC‡-ꟑEV1çp,ÀŸ`Õ b«uï<_*›rä# ¶¹bÅ'\Wr(ïb –5×®°mÛך;2§‡2­vöúe.¦*´àÁÂØ¸›{rίg>_ÌYè5×m6žŽã–n7¤$Ò´çóBakF„P¨X3ÑÙ^ÅÔøÎj¦*­Ñ„Âf—™Ÿ*_9>Êy2çštkFÀÍóÂRi”®¯—£G`êS{%Š&ÜÜnuF5SjÙ³¬®¶_…Cz¿Öp½Ú´™u6»BXªï§äržåã3?>yžä»s¿³Ò| ýR'ò ‹µÁ.ŽäWáI+?D+OYžn|>6æu)*2NI ¶Þ]ñÀ\ä¸s]Ãw„š«àе<¢‚Tਠդ™ y$ŒFˆ3õt'_4Pu«RuâS¿ÍL9 FgyÐ7®¼Ö_ÍýmßÅtËþ@èÛ+ËjÓ.]2UàC¸Æ©Ëõ8Ì—œl7ž‹kæ?¨Uŗ̱\¸¬¸¥³ý¦ é@:P{S!P?»—ÐÝðÿìm¢msY¥6qªÒãªÖ¨ªf¾·È¬»¹b#{×@Gi†*dUZI•ºù}ÿºÊ{(ÀÆÃÎþغ«Ôøxm¤¥0)5!A“ éH·›ÞŽtz?ôvÓÚõu$=néH•·ÆqàPM©‘¬I5© aVÔÔ…)#éoÏñª«NÛÜ«žuhÖ!.Èž … ²ýu_+· «¿t°­¼8v ßh¹ö¿­È˜ÓcìÒ°?klAHA ‚H¢_ôöæ@,º²N*g¹eD s£"†“í?¦T©µP¶IèñHÄ\cÆœGòB©â£(‚”ê#vΦëا@FIS£ºh®M¿ŠÏâ<¥”|ž¯WU¦îbË·[ºßSJ4˜ÏÍ4‘ÒÇ=}X*ô e=Á«}5UÁš?øÉŠ';ùWåvå|žÏÏòzŽÓÄàM§x®–¨bÀˆT=lŸ§yÅ‘ÒQQxD°Ð TÄå°^³Çõ•Wµ4úX A’„Q0PméEJ‘\ÊëU>>Ëç's¾~´YH0`¼¯Ç¼t_ÁH„÷q›oƲ—lÐò0¼¢”6çpìž/ÌzŒÁµØ%7^“ÌI·_±ÁûÜ—V3†u·O*)A“$«C7·RÄþìøèÓõ¿ëPðó.‘\ä$rÖòá²!ñª£õ[ªÍÍÕ„o—a…›F#Ìa<\ó®´³½/ÒŸ·?7^ Qæ´ç yû÷üÃ÷•çr¡AÞSû®ŸF•*Q=­´ŸYÔÄ×Ip›ÏÉã`} vs/VµßB„&â(YЏà™9£n²f…8–‰0 £XUèú˜šï©VOU@ÚçˆÆœ@ZݲJ=KÖ¡}ÛaT$%M‡·t¿éí¦·›Þoéîþ›î7ܽ5ËZºzk4ve^+êš0X`;— 'PxèâÄ46êÈel"öƒ9©ë&Ú߉ù#ô­``ÑVl*Rß´Ä#îÖ^?ÍpœópúëRœŒ/$®ÑgŠÍ ^/„O©®®ÿ±\Û @X_”¨j’q!æsò'85Z5©m‚ëáµb„0dSHvÌd‰ÊĪÞÇÕ!€^)´H-|´m{ê:GÞ{ŒÑ¥(mXÊ´t|ÙF 3ó™Ïç“ç«ÆÉíévÕ”R:nzÜF”]ð2\P ù˜dPøTgJ¡¨HÑÖNÚ§µ ËJLÿSa¥”ó<òªÉM"=êßls½N…­uÓ®òДp;4¥¾szÀÄàcdë¶U•óvh!€Ú]óq¿†ÌE„¥)…¹ðó•?åóÕ²“ ÷#jÙÔmÅnÍé‚gø³X¼Ì·ß%ú³ø&€±î9„h­^ ™;¨vÅÓ·à‹ï.ªŸé°ª¾@ »ŸŒÚ6,ª¢ZÅ©¢ Ùkµ,ÎPº2 .ï{#ΚÏ¥ÈIœE΂fã5,î M|;]~3ÕçT¹²Úý!ÆþÓ©„wOtaå·{Š ø¨pñ½•ÿc ø^Pá°b|ëD€KÉvW­iÿz¸U…Ÿ)¾ÁnË šÓ bT1v'‹VGÌißú Å©–ŸÑfdh›ì|-Ùªe'4Ó®ÓcMHU/.˜U2Ïá:zÄ«VgHR@T+ˆG:*”Á:’’¦¤·›Þï•âÇ-Ýïz»¥Û ·#ÝÜ=nzOé8ô~K·›Ž›6Àšô–ôКJ§ÓKÙ™ oér=拨ԴÝbIóïרŠð¯CĤ®,]dÁãq(FÄ_ ÑÂét™Ò˜ŠÚTÅqá4¿úÏ‚–>¹ºK`]aé@h˜·é^Qñ½Xàíü3 à….Œ*#î²qCø˜Õž30ć-©iÔQˆ$1ð !qå· «_é‹*HªÚ!!çËZ¹ïÚ oOäî‰ãóì €…ÌùˆçùaÅ^;ŠxoôN6øUûeî[&Ý!³Ž)U6ámé-0¾Ì"2ÆòGÐ}ñÉbƒI]E®Dr&î­2N»Y|H9Ù§mVêp¹8vXBÂù þ¯°4údÉdvJR4©PU¤é†4#­zÝ}™gf¶iz ˆª©ßjöö©œåa©Y°ËÉâóþ¦¾ë‰ª[̓½2jS†&UmzkC¯\ Qi™¹¤PÕ”$5½KJ©&([ƒc%¤Û×HªÑ)•š©_šR¤&ÑÔ`hJšTµ¢Õ¤GÒt¤[Ub¨V¯Õhj¨Ø¢¢XÃÙ­.þã€Õ'®éžKLÝ,Üb‰:/ê  …²øÚwÙónoú®÷qû¹?VEÚjJúzËÀz8^ ^› ¶~MÄf/„+šóø:béZäÝ' ƒÕ93¸ ¦ùè9;6fP&Ð}TµÇÆ„ü“;äÝ%Ža5§=ÅÓ~ŽZ6¢aö,óö¦2›0÷y}sЇ¿!ýÊ7#Ñ´U¤~æ×3ŸY˜MÍeÿ.šp×To÷”Ž*ׄ ð×kiXý‹b¤ªÃè®0ºN’=qzˆEz›@}Ì%?Ÿççã|>Yf\T­»5W['i0ð|oƒK90Ñ®Ž[ë“÷1 Z ÀÔÀ ã…kóèzJ”áúŸ­]µéìÉó9—Gm¢z62Õ8õ/68®cqמK~âWªÒš;¨|U¿sñ‡¸ž³õˆµ¨s‰_žé/X¦So$ªÀû\¬í3äfLRƒã¢¤8ªYv ¹šÌ1éWa# ªÚ6¡õ}bfcRÏÚ_ ½c²ëˆ10† ­ùb«¡›Qÿ)}¡],õóúúT›KŽD˜ë®õ$o˜¿•U•÷Lê¹À®GlÎ'ÔÃãÐêåÛK…mÜ»q›ÓÈ('½A«4þ)9îýý/4Ä*÷ú8‘¼Ó]Dç™f¶;!²ïâ­®Ê`5mÁSUŠÚ[|Óã@j”g:jÖ¬ªbø@¶`UíQSí™ëŒ;ÅHrU“Ä_e¯-rH©ÛR}Ü”*w«IkQ]{¦‘[¥=R(5ä.…u ±ról‚iá¯`‰©§, Ve:ñhf+X@*¶Áíþø4äÚ3¾°DÒÑU‹Éæq`ëvléòÄûÉ ûè 5^!÷Å–ÑZ©E÷UÿáêØd•.ruùpЯÑ^¨Ú‰÷µØ3TMŠ£‹) ½j*Æìf-ø­†Ø¸ÝK»röÈZvÚ>bퟬYŠé@µ·Áœì^Ï)^íÿè!! mŠVÃkg™AÓa°Ï÷½è—â3>Ú…ªu„å¨$¥4wVcRks_9ÏüñÈ_dÐF„qi \—o(Rº9þŠÕh&7Þ"~AH¾Ýø7çv¸7âq7󔿙°Gï-øèÃþeáÅwüîp&ë}¨úÔ:÷w–}¶Qn:¶Ã§ Ø _Ô0V²…ò*mî_æÑ&xê¶;êã×MªWJÖ @ÌYÚö˜yEkg(!”àícb•Ùœ*»8TØF—0lFì×Ü·s^¼ÖÔ> ¹ïšD“T7Ï¡3Ù'r$0`†ÎÚ"ž9³-¦—2v…ç®]IbL¹¥í¤ 7k4a»»Ø´°úÇ¥“ºêŠÖýÚ\È è$¨ŠÖ1ýÑAjÒÆ§*ŽAÌf²ÌÞºÚ3]ù°2%zDÒž=¦‡«ÁgSíéIÐ4ÿ›RO_R„Á$f—4Qk‘yòÕ× EAƤÀCǼ}tbYÙŒý¿h7 wž)~íòponÆFæ)¦ËmZ9vWrÁÎf¯3hÖem]E»!N¼}þk¤TwUmâÆóSó'±†ÊýäÀÑãË*W§"¦Ø¬~Š¥FSÍ0#Á¢¶©?H€i[k ŒÌ€²x££d@‰`^JÁˆîðª-Kô‡Ð4}vÀJ–RJ9_ùõ<ŸÏ–î$â_Rëjéu­ r™vB¾mio5m ïF?‡ýõ¤ò=÷¶cøN™ûKw²#»Z{•ÖšN:I¤÷}ó=T]×ÅÉÊV¯DÕ§J%sz´¤ØnÈÁ0ùÜŽÖ¢‹m r¦©-Òÿ,RYÕÂqÄ{g1«¾Ó¯ý·ß•D{Ao#!(#æý ±|AÞÏÄ-enî¿Õ§úup2!¸iÅŠŠm«CC°³fÆ®Õv â,á€-ƒ[v\£R°/‰<»2XŸ¶oVŸÏW~·ÔÿrÄ»“3;Ñ }Ë=m+—’_ù|æ×3Ÿ'KîhœVÊÆ9 ß·€šzSÕ&¡Í@oœ&Ÿ2, N<¿3PD ««¥œg~|äçƒçÉ2ZØm;g •‹»lU+«fµUôM _… ó£pôr×å01MvR_#‹´‰\ãûj„PÉŸgùøÈ_çL„ÝÓ¤XCy¶;á¾Õƒ“H¡x”ñÞ0³ßrpûQf°;óÔîjª¸k„Ù€ºl§Þ ü'­ømJ5’Iuè_ÛT´¦<`J®à☮ŠlégÅÉŠõÉ"¹t2µ4Ì×U„¼Ò9ÂÆq#‰ü69xÑàcq×U ¦§—]Dùâ3À>h¼¾3‹ß_6‡#6 ¡¨‡kóÃ…å?̪îAù:ïÜÉs#³ÑæÓšj =ޤi/ —”r†!`ì…„½rá“NwnG¿NÙ먛½á`FÎb÷/Ó“´S·Ç7,©µ kˆöT4©&4á¸á–phjUt5ŠVŠ V,³öUס¾6* ½yjO•:üùi±gFÒÕD¬2‚Z=T[£ÕÑ„šFpÕn"áP¡•Ãét%(Œ ‰`Õók˜Á‰!ªÌó¥ané‘¥#ã0,°ÛIû3ìyT)èS¹½‹{ b\W«¬v ÒÜ 73ÓL‹X4ø<«¿jKkÁ­„rÑlÆy ¸¢H½ õ«ø Áe'ÐWE?ïö_ifé­|‹óÙE·ÀÆCz6@ÂÌÜÞä­gC©šÀŒª8«ƒ«¤rô@Úp=OXÊ”íÔe»ÆjˆOE€ˆ —þ/å uˆ²ñ&AÞïX²\¾õ^„³ô˜ÄCBÁ»í…ð+¥_ðüÎg°¬‹ór‹½©[Ñsì™ø…bôo ¨z÷6<0l$¾fËSW@G¦êï‘f3wK·E9b{#½ƒÞƵ•Þï| \F•Ïоè~gè¨lQ—Óá²QÛ˧!çû¤ŠÊY6Çý-éq¤TõŠ! mÆ]¢T;@f),¬Qÿ¢®Ÿ¾F$ŽîÍj¢ ¡ª2­[‹‰Ð÷„Êô"©TK–ÖåÞˆ·IMQãðYb—{$Ö`µxÊ;'­"'@Yn6{,É+ü¹’þKŒFÄe`¼qQu}ªú›ßQÊÌ7®ih¯´¬çpé["ÛÀ³Õ0ô&XpêËǶ¤Ø®š¡]€KÀÂÐj?ÒÈKZFÎ=hž4u+òOòοwKM»ÀI¯Æðç ÿJaõæ×_%K°”^mDV¥@aÉ,g>Ïó|–׳֢–R„E6&lù’Ý@õ­é@j- õ¹!![£ã˜wÀ}XxI7Œ†Q"¶ß‚,åõz=~å磜'od³¦l窘‹µÓ…ªÑÔÒÜʵ§4¦A“EÄ rª"J‘*¥*—´øª‹ ³°–œ«<ªä³|<óÇGù|rDLÀëG×Ù ¶ä#%ÌZøF ºÙ%±o—#;$Æ:ÞòkFpð­iª[ÀN"€åøkôu³}èªwÊ*ä7dõ—ˆc¶wC•Õì_§z¶-¥]¡M4ÃÌŸüÀ_–œ.3j­q^ô ),™%—’s>Ëyæ|–ræ|2¿Ê™óù*çyæWi#þWÎ/æ:V.]ëÈujm³fè˱Z xšˆŽ³/Ö2ðö.„±85Ò€Äh ÷ú–×ë|ü:òš~/“AÕmR¤{ë_F–êx|„wzJZçªéÚ3Y_«·Ç¸u¯_ÍïÏ*$a=cTºþ<óã3ÿú(ŸŸóyæü*ù,93Ÿ%Ÿ¥£Òd®±`s“†ò|i»‡ÀšÌÑÌñÞüŠ ­w©üíYÁ {$‚Ï©©–’Ïüù8ùù*9÷_Î5R†îw³_÷ÚTnÃ2uœSíWÕ is¥]—EÄáŸhŒÙâÉB)YJa!r)¯œŸŸù×G~|¶`r½%wÉRWÂÐ÷j¸¯*‡ïñ…`X»æ¸J,Wã=ßœtwHYeQHÂꪬYÖºƒ°×ß…¾Ô$PkÈÿœÌre9`äÌ9x¢H›¸º\éJ?*Á‚ªç-Uò·çiõé)-M~ F|pÑ0ä T³î÷‘lGéÆ$Q½ùLÙÍM 8ƒ%9ÿÂç>æÃ¥¼^çãñüøÈϧ©´¥šœóËyö–Tl™S¹*—ÚcP"®*¸Â¤â¹fÏÂû>8¹q9Ø3“0RŸG¼_–ìÞ¶£…£\?VaIÅD Ò…õ|ÕliE}^¥IRËg|*VWl~„tÖí?ÃHË*š³œEÎnðÿ*×iMs5®Üdë]uv^½#\j™g‚B¿‹W6Ðó©¿7ýŸ×øµßåbèžõ85“¶nô¿ÑS… ± ®àݵi¦„š€Î§&ÝÌ|eø†%ÖlÎ Xéâ§t)hc\ fk+%‘.0ƦõESùXrZ¤?ºm)& ±ƒÔtH‡Ú"¨RÝÆµ!Þ¾Ój-¢ årE«fúæÌ.Ú^½ínu»&Dªxæ-¨hJUPmþª Íà_=^Ú´¶~,M Ö#É¡)%9Z®] ELÕz…e…‰Ym˜|X†Ý” a™PøÚ.*T7¥©”í€K–XL2>µ½¥Mêo—V´ 6ãX!Á¨HÙåŠùÀ§·&¡é¢\ÕòO ¡AX-Lm¯š=ÃnàâP…ªvա羇N`ÜhpU Ò9Ç;{'Ä„µa ‹T×dB¸8è,áxlï–Æs­¤ËšêiöôDX¦±#¼ŠK–Ò¦ßÃu4aKs˃V?‰:üÎ_òxVúu@Mœ­#:Œ¦¾·ƒ‰46ÇÅqÚ¹»•ùmÉT+þÜ:þƒÄoöºÑÅbì$•íl5®´0ÀZfõX·w¸ø–õþY¿Žæeô×f  £15}n:j7÷mèö½-ì±ÈYä,<‹”2]wüZ­qÝÊEÉ ó¦øÞ{] .wü¥{'š>õMuêw8Qñ§Ê>ÍèçÒoÇø»Óþ·©­–ËÚeI.aßÀšyIU“(L°Y ²’è‘Oc#’èõ}&wÓÎ>Å0/&švÚ®Z”ÅD•þÉ9­Cm ¥šÚ_£5oÍ:S½Ò¡Fª©KšSÃWP¹HÉm=nkŠŽ*X±Í®“WRјìf­p©i©Ð$+ím#«v®Bk Cý¯õWzIgëíÐ#¥ÛªUµ¶õë´Z¹/é,=´ÖG®ÎÊ«Ç2ðk—¦˜ÏýÖ ×pCÓøZ•¢NŸºar¹ƒªñ&7 y±–w¡TmLè†DµžU¿ÆšHİÔzuПË8°)1ÃE¹Z:vM°Ú„‰”2ÜHNüG«[ ½†cQÎÀbÄÚËÊŽ’Ë4X¹0ûAÚŠEr;"Fdbå7D ™m‡…d)9×,üPì¶|ÿZTuý÷¥ãÖ–ï*çëüü|ýúu~|ä×g9Ïš¢ŠØP_ñ ¨U™àf¾ó1NÕP·£zk¢l¥^c¤J®Íè¹#½3&økJaƒÒÕÀ¹ðÎ_ò|2ŸR<Æ5Ú{[§ v¸±¯Õ”çáêÃ\)¶þÑá+<2ñþÛÎ8j™ Ä‚ÓâÓc` çÆ>n4 û±´á…ÝŒfßÁ-¾Rd„Í´¬”Pí¡Ý`ÕšEX 2qÉ™gF¦qÊÏÛáÊÚŠ¥£v‘ÙÒ†ÂUð=VugívíÍI©ú.Gu꿃 ùU~ªÄ6¬®¨´U\ ÿv¨*»X9³|!žÔVXŸRK+f)±èuŒ ÀMHæÈsw0$»¸çó ‰ÕÞp2GgÜåh?uãí0­ß¤@’t4šn5æIÔ íB*Rê,¬ŽáÊ)¥0“™sÙ‹bëüB•fmBgdÑ|—R*€£ž ´†¤GRà8Д²uÐ_ã±4ÕöÔA²B¥ÆiiJšn8ŽCoŽC”Ž›ÞRºÕš1MÇøÆÎ°ŽÈ.3=|SÆ”ðj,½&àJ(—&—ÿüA¨Š0_ôµítúÔ–®6B— ›þ,lÍVdõð 3-¶rRB52׈qáGj^¹S·Ý¾FíB]ø7loÖ7Þ!ãÆç•ž0¿Á¹/V„v.xBÚ(d×-o¡ÏÜ8ÐñÝF€á°1¼rs‰ `ÌÀçøI£  óõ–{ÅšUok`õ5F­úP惵ÔÖRJɯÏ×ÇÇëñëü|”ç³ä<-RC'`ÒÎÇG&21‘2½¡&‡ƒÓÄ¿UÑA2–³0çRrí0iIy:ˆˆ¦WmÏ–¥”"¹”ú]Ï3~æüñ(Õ–[˜jL¨Åº÷3ŽBð½Ö·p9F8þïU­ˆ'Û/”|‰æ(,؈ø›D„Ä~ÆœdÇ0ô±ÇVCÄutµ<4_#ïÝ^£UNE:µÒîTÎ@ãÝL׉çÜ{Ishe£øYŠä‚³ðÌœã~Ϥ‚ï¯ \pòQ»B@øÝl†]ú¾q}¬tþxþ§þvZi{~_ñ©"{Ú3]ÇL½¦}=&òµg1´‡¦øw 3Nx”1ÊË×$±ñ›f˜L)©Xõªwf!ÑðõÉFïãî›8›lóÀÑ`ô†CqT?U›Ô«Gˆ’¹±”6÷/uÑv=5}ƒD4~&•Zç­ÑzU…V9¬6íAK®=pK)z¨ô/èÁÊÚ°Xr’LMJ òߪ‡ÞŽtTbõÐ#ávèíhò€[JI«r@So:T̄Υ„HÄ[|ŒÕÅṲ̀«úÔá7¤, ò&­*ÜcVéèô©hÅTb啨ÍpA¬únXkãüb9åß@Õ}m…Ÿ~¾ßÇ‘F¦ì¸©Ë7¾T[u¹8Lk®“,#æY<±…HŒÂ×õ*6k`;EÈ{F Dwhºv$ç«X5°ÛKËâ1Žÿ×H§ñÀÙ3—rf–³° CËiV¡ÓŠÎÔ öÝg~½ÎÏÇëããü|äÏgÉÌuYªXG¿EÊt•©ˆ;ª¬¯&ÝÆó~žã+"%3gÉ¥œ'Ï\ƒúk›km0C),YòYΜϓÏW~>ùxæÏüxäÇ£<>óóÅ|V1(âÌMö)wáßoÑç—-µŽïpH±Ai¯¼–9h˘%Ñ WúB->“«· Xµ0ÚZ¢¾™º³¯“Mùª¤ªRžU &µ“Qu ;9ƒú­ÒÞ·–„oUë~l™rRÎÂLLƒ¿õïñËî×í@e£Tqbˆ~ú-ìVGLºxá3`r©øWóôñŸ*oÝwÞÒ ˆ÷ùßÜ)s”¬ðÿH¨zO¦mÛ¨§J½¥S­º]tc«ZùTãÔ¦*X©«pñBφ«°l[¨Œ:Vç@T`’°ð´nç5º_ë¸?ÝþÓŽÕ‚¢jŒ”ìÙ…¬‹wa.(5:Q1•KÓbßæ•bmÂ\ Š$MS¤RÕhÕÈB“I”R+Ûjt/¤iß*¹5±s:O”¤š’ªzt@Áé8䦩WŽicUu–&DE=»„jŒÅVEŸY_u/›m~7Æ7 Œ«„ÆýÕqûTh"Чp1¼xÄ%¾Wþ†H5 ž çFphÕ=}é°í?­ÐAGÌCóŠ)´6èNéj¿I§¸Ä*n|¯›ŽéH5©öHL„î®àe™èõ%fç,°ÝÇ7̪áºâ÷\Äú<ã*KØtÑUÌa!ÛÎÿn†¥”u.Ú¸ ™™[NV9ϒϪȔF[^¥—…ÖX­ò<Ëóóõù8¯Ïüü,¯WɹÎú¥sŽÒÁªpÒ/áÅ”„—Å­pÞb –iŒ”(@É̹¾@¾Îò:óëU^'ŸÏò|åÏÏüùy>>óÇ£ýûxäçg~>ù.çh˜RO±‹NåÎH­–¥úBŽ„ã¦‡¶Î­„æî§P›_VV‹’3™%7#kËe-é ¾ì“ÍÁ¯Ò\d))¨&=ª46ic=’Öúd(@‘4²¸tžâ2Ýò‹Á&ƦÚeu´žzŽÕ‘4)u¾¼´ˆu Fd„…?¼¸Ù¯Q÷!‚µ@3†ð† Uán&Œ¡Ip’‘öoj·úÈk¡Ñ^ cAWŽw-[r£›èt+ýóÒF{娑ÚǤŠCµ]'õ¿šRÂQåËZU!-‚ÝpA±Æ^ŒC‘Z¨Vh'Ò"þÎñ7èH¯ÂEX8ÍÂï8ï=Œo+|Ôû¾ƒråRe-}¸¨½^CnS-zš„*,‘QÌØ hfÎËëužŸåù<ü|¼óù™ŸÏr¾ª”SÜ Ó}ßšd¬ÂÞ%ŽéÞ¥ˆ1šÑH6}êzˆÄ²ƒQëÔµ’µã‹-«ÿ<ËëUžÏòù™??ó£þûÈG~|æçgy¾x¾øÊµµ?~Uñ½¹õ°©ìÙã þÆÿ]öéŠå]ˆ³ßzh3Œç(äðúT^ “®åÞ‘UC¿B8èÎiD xG¨ ‡ºªV§¦¶Iúñ°@„é«kK*"uÖŸ ÏR7Xtw¿Ëµ ÊàKl…K˜¶úµMý&_H¡w3ø™Úˆ~+=êÿ/²“‘ßÄ©AØ0¼hì$*¿;px3¼@3ßhÒTCéÛHWÚDû¨n}i›#b _DPDq'÷âkxŒqÓ3¼°Eöç‡~ Å#»_jîlßçZñ*Y±3ÔN)QšTSêïUÂ-!%©úNjèJÍÛ¯-¥=N©ƒ’­å„J][³Xi &H—üIRJG“Ò2 µs@H=×µSÍCÍKÅEÏ ø°—{ ù£ÁÐ5Ü*ARwkÕd ‡øÁ¹Hx}¾IbÅÃòÿ(Ùt顲°­¸âûaFæ°4Ã\L4•wÙ¿ªÜ¼=êŠ"ëÿŸ·7]#G–݈H²ºzΙ÷Ñ[Å Øüp,î"™”t§º>µJ"“™±Á`nË&°bC©˜ô˜éi-ã¬üwÖCSN)çt¤úoÎùÌéÈéÈ)§\ÿ<§œRÖ”RjàµJÊUÍ(Ø{dÛ=ãö€êºY,;•-ç‰aÊ>é…àX7lB |ÀË0éú!œÓŒ~ìt°(Bê)$Ö‡…û…ÐßFœœIè¹0Œf³ÉY:­v‰åâó뺞åùu}ýûüú÷úúçúúçùï¿××?×?ÿ>ÿý÷ú÷Ÿëë«\_åù¤Y1)“Ä`bL›$£žtö”Áðîœ:‹“˜·‹%1 Æ9ĆÜc þºø¼Êõ䳫ÿ~•¯/~=y]¼Z=ßDe!ˆ4îEA%ñòË쨴^á7‘"oïü·AÎfÿŒ¬Úƒb„ÏÍÔÿÛ÷´—IìµrŠÎPA·Ñ7íÄ›ÏÐ'5²Rý=óbè"¼eŠãêsPP(W‘«ÈE>/y²*LŠ€œ)g·={ߊ4 ¼0%UM;hùn5x…äý~„#¨É¯?Èù¿ýçç8UbJçˆ:ŒÃÐiaûE¨ZÍø ÉÜ܇™fôÈÈÂj›RûOû½Ñ®ª®*âFj3Õ5¾Ö.Lm=G,$ö8©ÐäÓ]Nãv‰jSG¨0ìlW}TгÃ…WPZù*ÕnËÕduS¦TiZ­?½uwW‰RBRlª÷,R.¹¬ì-}ª¿ÕFC• áPhNv¦ #ü®uŸ¢§}ôÅsg‘þ¦=9ç-´U7ªŠZV•˜ø8ÕKÅD­Uˆ\¥~j­e“-<ŽÝ¤ç\é5Ó.*£­÷KlÀr¡öÌ Ì%7â5î3å&i5F}¯Oõš ²œj€Ó”ÕdÄ)'£ù8Ò™ÓyäãÈöëyä3gNç™ÏœûJì†hÍ3—Ò‘ÌS×N¥@S‹wèyêla!+Ÿ*£‡žØTÀ—Ã-;†¬gYÂ}òÉØì`QÈV‡w­çÀ¤‹õ¾ìÛ͆4#:šÏ)91iŒ™Dî—ÚdφùK)¼ž¼®ò¼®çULp]åzZ«I ¦4b) co[u|*=ÏêÀm±è2éîÆý¦Á½_±JJ±ÜþbD)¯"W©S%Ó9”Š¡gDe“ªíºÇY§Ào‡Kw"ñ¦;›Î߀÷(Xî*6±U?šìÃønøÁ¼7q®xKã$ÐÆ”‰Ñ*\B îB­ Qã¼QÎ2‘L°½1žò¢C¨—\”«  5äOŒí>»ÙÁPï,Ã[ò“[ѧ8Ø0$ù]œúksÿªÑ¶€.AÄü¥wgQï)ã8653ÐHòË‘q®Õ¼Ÿ’4£·¨,å:ËH×ïkŒžº6y_tÇÞ4ÞC ^Ú«V‹“í»Tféb¨äl€CGŠdŒ³„'­PR´A¼ª²œ5’lœªne­@´$ JZ`èËð,…äUB ¸iò-®ß9ŠìFÎД5%͇ùî5©$ó1)µYÎl¡Q‘âM\ðVÜ‘’ Š`j.¬ »?  jœp‘‚‚Þß®õ¡Ôì\©æ´"ÙÎ…MZó$~k?AŠÃ1,»m(Ê=W¨Ây»GOæÖMKS#Gaf„À/bînV®Ù[>@d¤ÕIRBÒ”’‡¥ãÐ#W0ú8ò™óã8GzÇãÈ#ÇñqäãHgJ瑹þæÌzæüÈé8Ò‘ó™:Õš¤M'RjûÓê¼kÊTm¶ˆ3w7³ÿ0ºûö·_Ùçàå20Ã^$¶ ñÚw9{/V˜3 n“±,»xpšcŠв†HÔž™\Ý H+;VÉéʃ–b@ÏÕQq2fÍYYÃŽèVéµî¥êMír³ú*¸O´Xði´…Âþjé^íAuX™ X;P-´h³’oÚØoC3ô%Gôa —y1pwÔ.ßœðï"îäoBÕаÉÈ€òêêe[댫ZåPOÛËé“8äÇuÈ%ü±ÒT è}Nï!ø§œ}§Îñ­hê*ò,¼ ž•Rµ¿ -ŒYéýƒÀM±ñ=F[Ó³GèWx\ñGTùŽíÆ2‹lï ´Ñ¿üTåÛ~ÿï壮ýkʸyµAº£QU¡ùгƒTƒ¡3ö÷ }"*‹cPdj‰ /°æH)퇞™¶³ÇñІ°’Ê2˜TG9MbHZ+¼¼Ñ~Wq6¥V ˆ³ÌôëYBI€ñ†IRJ)ãP›“VYA¿ÀUã[gæ:Ò2Ø™„ÊÔÛh<†Z¼…sTe¬ª"#'4Gjñ¨æŽB mâØöÐÂà‡T”˜|„] ­íºÒf6k=±¢l™ÖëÊP£7U[÷•iŽL!/„"ˆÁ©²Éþ^WuBž”¸Y¼äsÍäwR“`Eßcê¥0%+qÊ|54yñ\’™uôö&‹ÂM)¥œõ8òy¤Ç‘ùx<Žãø0¨zÃHÓtùHùÈéHzh·šL¢z$µ=WJ)k:’æ¤9§œRJz±ªM šMeP÷¹½ç°¯ú¥X p+‡¸‚­¨RŠܶºNwmÄu.Q ·r°þ¸²â˜8r?áwv>äžNi€È„PGq®+zŸP-é$Q3bz2ÀNý•:ƒžVìX¡p÷lÕŸ_ 2®Ò<¯³¸Ö ÐiÁ¦L4ji'äà‡&Òɦ$Yb¾ãÍøÓšæ U•Û|9bªš oF½x ñk¾“8SrùŽörîשXídbÞÖqÑœ®äñè_”¹Õ²6Ž[È¿$ËÈ_Ë ?mTküZóp^Ö/Uø,xRºuxŒé­w~fÃÞEm7!-~ÝPäã$æFàâøÔ_ÿ‡?çS_\8½ükM/›¥6¯¬ŠæªIÐÇ#[Øg»4¸_潞÷êƒæ¾w ÓÏÂW?¹Ä÷ñ»å»å¨3ƨøúòÍq;¤*¬>‡d1„É÷‰¿ »Õs÷Cm šMš,˜éœ+¯ìRîíG*G£¨*J럢–Hûµ>Ä»¬\(-mJ )Ö”VMšTrÒth>ôPÍ $•Déðn¯OԔŖ)«µVTZª8“ b U›Þ®µóAkÍ+<¯oa‡ÂE?ª6ë•Ö$,hÒ°Ã^¯pLy½K!Ûú²|…ÊÂÒÉMœjHkfÀ¬-Æ©O‚¤ ·Ú.¿ÝAãvŠ“ ÅÙ¹¬HÌàiÎù<Òyóø°_ù<òGÎÇqWj³ûœrRJ©í“ôšRÝ1f¤ú«&“˜\Õ°¬AÕZ¬ šl¶€Z†ÌJuU…ªtƒ?¬£ùX6è!$Ö§`m Ÿ^¼Ñ`ÙšøË2¥¹×Œãž‡Å‘‘ï1S™8ÿGUUîèVœ3ôÁ™ =£ƒÄšçèËà݃ÜÍà= Òð¥cU Eb‘챥Ñ¢e‘µ¹¤R¤¥60Ú@ª”AâŽwµ¾ÝÉ+#rbá-çaúÍö”wÈ•JÃývÚÚÈ6Áâ®b;qœ„ à_ñM­UKéo±ƒ›Ÿ8ŠÊ<…9òGwÝQ2ksÂÁŸX÷¼j._oÔÅyÝ;%`kóeÍœ²°3>/\EžD§Q[È…HtzE=È&ïö'v6ì»ì9òˆ˜zñCévÞS°žúÿªNø®7õfj8_Æi "-¾mÚƒT)ã8ô¬®ðCvwm jó¶2y©€ÛŠUE¨(jö'¢0»ÍÛ‡¸½¯45G=Nؼ»pNme!ê’ {!ª£¢¶½›åDUÞWV4•q$µ‘¨êèø©/Þêm·¨âbCŠ\,×…˜Úv|£í¹g*«„¡‚Ôª!NOHE[½E+…Û­M«Oñ) °Š#ŠÕô,;é†úBªŠÑ3\Â:–Ûtb‹=c³+eSbY/¢¼©X Ëǃ6LÝö›¾‰¥»ƒAïô*&FÉÏAª>-tÕØ.uFoßõ3!4¼üvíI›òWõÈé<ŽóÌóø8³¨G>s>S:TM¨jå †Cu4^Wí‡]Ú~ž*«„gÈÄT1O•IM`ñd9¥º_KÚ^ÜŽ@©ôRP¦´‚p†\ŽÿB›3¶(÷.]ß=÷'Y^‡U<J”-36…¬elr:'DíCÿ Ýꃅ\M9F"Ò´2÷».Fš)«3ÂõõEN P1+Ã?"¥aÔ2I]Íù$•š- ­’¡¶ßÄ7;ë+}ˆ],jxQè¹N,€¸õÄÿR¦³eUá»*ðþîmÔù“£é;p\ ëï g?Cþ.Úà)‡ë³ž˜ËìjIAi‰æ•ãJÝé ®p€~giºuÙ¼ª¬ÙþÅ“V=ÞøÅgáS@¸€½ˆ6ãåòÃÖÓ¸1™Í¿~)'mш×èNÿAÕ›;æ—|T7$ ›ç N݆·¡*ª '&HEN3¬\°6ï› ‰©Uœ*\–A¾_“ëèßâ“0,±àДN]˜S6?bQŽIU»6Ô?ÖàXÚæ”îT$ êpg'o¬É)!%=rµ.©0uÖ‘:ªÞ»ÕÈ\ÊEá%¯ë"½ššŽ´,ˆ¥ ‰&hÍ–<%Y5«õKIÕiø¯ ´v¾Ô£PXô.æÚ+.¬FªBh(Ö¬æ$5ÍloÉ£!a3T_<¤d+έÙX!\O$vSsP Ñüϵ@véMËPY$FeHÌŸÆšQ5éNá²° ï5at›­*¥K"3¢¿ålÔ¼zRXèŠo!Ë#*'ƒ£m“‡‰®‰À9øK†²¹'«°jCü°å:0â3˜8iRÇ~mmhŠzÔ¶lU·‘afüWŒŸdâcyŸ)/”¼sQAé'’ý7Žg½*þOØéRz&•I Tî¨haÐDûè×1øb¨]÷úmQJU©bФížF“/çnåÔTö½?ÛšVÊÛ âmî­ÛÍ8ÞçÍÞ“voÿPøI:=D–^1PYOW¯; ÚúZÎJYDïQf‹ 4«~±Üþb™S¤Juà5ÚG¦º .£šhpéV4N}.üê‹ÆvnN=f¥’î0ׄS_|?&!­Ûªµ¤–ßÀ©˜ÙÒ¾‡¬úTYØ2YÍ%Ró¡gFÖ7O‚,Ô|_€‘0Kò,×v !þ“>WÕù%ë0œèŒ1þ.õ¦‡U…Ì DÖMƒ:¹ùýÅÕ›{JµÕŸš])kJæÂ¡HUùJQ{aŽ «²ÒªJÙZ®y=QL®UïF€5<¡Ï4íù*Õ¤Uý)iNbQí¢­ç•hÉ\‚‚"¬m«jóL ui›C(j¨L'KMìRÁI¥>kp/ÚÆTAZ.@ÝE]‡¶õwº¯æ‘Qošü¡[ç2ÆõÕÁn šÀøB©"0jp\oÛsØ¡4Ÿ!êH¸ê‡¼¿[Á°•py]Œn0U«þÊç‘Ï3<Žóøë4ƒT:sΪ¹&öK«$æn[{µQ¢8zµi7êVD[ \¿*ëâž’SR•¤IÕšzÅ"þ+Z©þ†ýµðÙÀΤ4~Ôªö¨4¶ãNƒ|_•7Q*œ(÷ $VFR»ý1Ì¥F$—åuâÐ%=†TœM«¹"Ú¤èÜV±Ê°Ra¡Q·ÝR2¨T8yÌh#ÿ•jmð´Ù¼ê$ úO 6qDQx>éõÎïÔ– T¥5g=äC¬6D<í‚©yƒçÃ×Ë>ïæ¿ro®Œ#Û_£½^aÔ! ^çþ/C‘~–˜4}¼v=Ô§x—ÆùhƉ’ô´h«˜ÀØMš&­=ŸÈæ´«a¨fÞ7ëRŠÅN™|å®>tQ˜mL7U¸äƒ…ÞW©nÎW&ˆÓÁ0i{㸻ÎdqÐ.6uˤ­S€¤µ]ñáÔ-Rd…â²g|§Ò­ý Y_£úÛÜŒµ~“N=VqX% †Š1ZÕÆAŽüÞ连F½3ã6òÕúϘô&ôlE¨]Ï98›ük›û×XÇXVš“f­n’Š{Ù´­‘Å¯Ò «Áæx^¶œ£¸9b ®ªÊXZý¨¥èçMzdÑZOZDzjwº6ž“͆–ýDñձ오%|sZX6rï†3»>@ a“aˆú@ƒ~ßP,¡g™ÛãFÛYÖš¼Ûƒ Ø= }–‰µ~—:4R-ô*CîóÂmž¸s0‚.²í£V·Kä¶ÐåÕ m*mn3¬)!éÌù<Ç™?Ïãã°Y:r:í’€é¼gMƒ$FT0õèMg¦ëkÖ/8†üPÛР¢È†ZUZ]bwâ¸éý]5”Ï!~¿—ÓIŸ¸Z Ú –ší¡9Ÿ V¹žËZð°t2î ±ìÚ+±ëçþÚŽ¸ÐØt@@™>Íi§ÛäüV=9-ZÜ{»üNV ÂýšépªÄɯ¯fíD°ãÇyC#bþüww Âàhñ…5„jÏÇ¡Gúx¤Ç#=éãÐóÔóÐÇ©gÖó°-TPr²¹Þɉ=lxµPóá+ƒ%e»/ ¨ÒKS¹á€±”Ó¿„ªoˆüBÑî«Ò4Ê%V%ùß7›¥˜±¡´¢×.Ž«NŠiO/š;Êj¥¤¹.vn•rSĵÙG`™«xªÕ¥%G鼇&wä)BÅ\ñöÆVâ3bÚÏ+K(B½ú€¤Ú𨭠Iý×ú'¿=÷ßΟßÉá feäÇ¡‡.G|ûã^9É{"z-šš+׋N¹5°7„Izrs9ƒ¯o öv=¨‡¼n±ì‚‚NGŠƒ Ú÷.T´D©kþhɼ'&–eM(mV{»Òk¬¤u–KÊUÊe;D4¬+ ¨àºR±†Js†fäŒ#!'»¦ÆÔ¦˜ ´­¾7½þM\G¨uØ×•¾Â7ŠVJ—‡(E bàÖb*(•…ñ?‚ãp³Ç7¥ª[W{æx„>¾aëÆÄT2ê{"æ·ËÅÚ$ˆ±›’‰R9|œf:÷r·Ö¶¢C]Wï3Õ”ô<ŽóHçãø<Çùyd£Q³¦C{\¯(û‘(­ÎÊ?µ™†Íb¼v MX4vðŽ‹n|‡jUyÔ ‹¤P¥B›ì1æs„kí†wöú)J¾`DaC\ì;Û_Îì7®ìXºÙºéãrZ§!;ñ)1Üq®äЄtT‚) €13#Òsñœ´[Ž9rQÅ J¹¯X¥³«z3^Åìkš‘î=4ˆå÷K;°Ê'äÙ ËNzéq¦Gúx¤3‡)õ’šRc‰ÃÖ0}$ÍYs–”|i§7Tá'†j¼†1À¬©[&/Øï™^’©µPwgôn´¿®1Ø|'ýÕí\wEPSÔˆb‚‘B”R‡1¥Ö¬þé_[Kë‡ùÞu´ ¬Üƒ`q3ÀÏáÞ?;s__CéÄgø©QÎ;·»!þ‘Rí\Á5Ba¦*æTKý÷í?ó/ãTÜnÖ\¡Ä2P¸Ã¯j=:²ERa|۪ÛA¦¡A“Xs£ò#×õÞp Â,h¤ûv&¦ÿ<šhU;)ãâ—õ¹gUê“mµ¡ :‘yhNõÉhj:r}ëTµZ´Tÿ«ðIsC‹ˆBé{™Z€µž4š,ñÉñØ£ Ý+ÔÆ*fÛWS4?³Ñ© ¡¢_IlZÕ1Ün×Z¸öQÖ0VÔh+iŸÍ[1,`#ĽK"{ä¦û&jt‹÷H» •«kNrŒêÃvN3 ¯³·¥êäÞSU¦“(40{tt7Õiõi!,4$a!%M9ÇqùñÈŸÇùyGzùH)·ü5õ¨ i½¼Ú¡u±q”á2dwþ€R•'4*¾²„áÆj¹¼ÆÛkÔ„j ($‚=1$j÷Q 0é#&‡Lן²×7LC;[¸àª­…&{Ý ÄiÛ‡ä«}œ\H͸²ºó7%s<ÿÌ~ú÷€¥î&îåmjž#Ì‘ZîˆñwÎY˜´·âŸ|‹yâ¯,ˆúô6!T5g}œùñHx)ç'3XìO¶skòok°qDͧîóVÎïY¾!ývÉvå v±Uõ‘>>ÒãÔœk(àíÇnüZÿ@SK|N^‚Ÿ µˆÅ1ãz`wõݾå (C Û=DmÑ7ŠTþ2(Û%j‹W"TØZ¢ ÿë«Jû‡h{V/óÝ—®¼¥¤ô£‡ ;fÁ ß(lÞICcR‰ÌÁÉðûêÅ{GNÄ©¤×NŽQ~j5«cO+uZ£jíËì[ éÿý#sÿõÁàvV¼¾> ÈHGMòÇÝ.ßrºŒSÊH¶1q烵H’Idz…¥ .×Ò²í½^ÍeZyîLn9òn€çÁðè‚S+i­7®lgØüM{Ÿ+“^ý@FY¶Ñ¿»– R¯Ë «#ÑJˆ©]4[‰É}¤V=z4k¿¶ª‘WŽ´Ï^U§T·×ewÛu¢´¡„ówÁ_C:Ð7dpÒƒ>»æTõű˜¡jDq´èü–06Ží£ R ŸŽ®rÎ(¬àaÚÇEÈ:Ý‘=»®¢=œJàÓt€¡ŒÌ­oœÞ›kHóЏÞ|‘R>ÒyæÇq~<Ž¿ù3ç3§#I‚¦úMì@½gªLUßUB£mST+-Ô.!»ìk´ŽžU‡:\ke[Óm>A…» À)a)c" ^hÞŸhY†;ßÁ´9é4Û®;¸GØ€è—ZÂis»уJĹù¸µÚœaSêÍMxÉSN¢ ¼±ñï¨kœZùá >¥È–ÂŒÛÇ;yÀÄ'å®ÖÈ«bf&ä} ÄYˆ>Ôªª9éyæGúxèq:&xä4|éR'ÿÉÐEÈ]¡*Fjìü zŒ!Ò/Âr`ƒÀ&SG7D¹O°ÇÑö†ÌðVÿŠ¬ãš¡[íD0æûz³ìòp1 ÎñÖÛdË&u³?¤°cߪrzÔ,Æ›%»ÿN¶é°kÓ¡>ÖW•ÜjçS·šœwJûU¡¤ÿÉÿûëÊ;¬¾C# §5[¡Ç¡G’´ÆwagšÚŒ!o›no¢‹—ŸÛƒÐŠ#ÓlFÝ ïeR$›PµÆ‡÷Ä)güØf†Gû0BÒ|⢣i]qtkÂæP¥9¨RÖ”õHÈôRí4Œ6ëºè“…,RBåÕà Õs¾UQ(5Ak»º¤¬Ù”-Ù©”êNÒ6à·‡oQKÓbí[†?=Ò®¹‚‘<[º4BxÆ—(”ÊÛbÑ2 TÜT¤ÀRvB Í%´á¶²µôsXè²U8rB¸³b-n[ˆã…½Ô¯ßÑq1w䩯º w=/‡á«”5¬­!§ãHçy|<ŽÏGþ|#Ÿ9ehjSn6]w‰î~2§SÜ ÒÌO5ô &Qô£Õr6\ µ¨™æê•Êqš¶@YÛRËè¡Rl–I­áuÀ 6zÄÜ|½ FV‡¨Ú6DÆû.6¿L¬yåÁ}1R©÷ù‰˜˜MÈTêiV ¢S­G0*šêÎÍÕQöíÂ1Úßñó4–3}¼$g¹c1ÕTà{T¶ë±Ý4cŽC0"~Û‰4Ó MIÏGú|èLJæ¬:b½Ûóf#6w¶7H> ô,sÞrjpÁæàØï½~8Nƒïh<öÊ…ítˆqrüýÇ2¡ûõ™÷w”màn)Ñq?#†b{F@Z®—ïÕK؇ªmŸÒ/;ÿåw‡{”ŽY¾†µØì¾¹NB|‰JãPUŽŠSÑ9TmØT<•Ž©|*~›~sôfZ¸i4²¥¥øVXóê-,ác¡FnM õ.´èçÍÁ Û‚Lq``RŸB3ãÔªêÛà]±"¢¢Ñ×vv¢Õ@E“MüqXŠú Pl°^Œ[®SbLêÅ‹,‹?,©ýØ:áA-J ©zP­ï§Žkµ÷fµÓ-¥Rx57 X„M-,sF@í«Yéïºtƒ|'ªrµ‡Úô˜-Ÿ7Œ:tîð.«Œ¬)§áPü°gµ«Ûcv½RéÞaÐcH¬^Šð_xc.ÀqªCB n…7t—£Tã¿kK]†DRzĨ¦nœJI#g~œùóq|œçGÖ©"Ô ÅÂ0PÅ_Ë£¦Aýƒ±Š»Ñ¢ÐXJ¶tŸÊFªXÁÓÛ÷.ÅM—]L)¤²¾›ó–4•sÝ¥Kª±¹ýúëz²FoÖ]E}ÊÞ<Íá;{ãÍ;ÄéPÖ){(?¡•t¦ÿ?sý ¹Õwö/ êΑæOǦÌÑ\dïveX—V™é×Å=õ=B}…A mˆkÇ»h¨KR³¦óLŸŸéã¡)þ¸s©D^³á´ªS c·ÒšÖRFžÛâ“|‹Æ€¹ùêýÚŒ¸÷¢3øs.5¡Ÿ,›÷@ècÙv-š›M=j±‰Äõ¹“BžŠ c«ß¬–54l‹˜á'5ã‡áG ó.-‰Ã(*?™+xYÿÔÄgü줨µ~Ãæ)¬a ˆåüóœãíîª ½w´ó©£¬8k>` GßÙÜ9?æNV_!Õ N± X!•¸qLˆŸ¾°E±q4°¶ísO•¤—­*=ÌÛw`šq$"9¼Ò³þ[/Öˆ?D³¦¬)!§¸çè)@´ùJlàÍ‹—°0çÅ©ó?d`f 6uÎÞÂ'KÝâ~Ìæ)U])Ub褦ðV7é¹-§ÂRò‘Ï#œç_üyæGÎG2­NÃÅÜØ,«A Z»]jd†ô6`Ð ûTÕ8k“Gûìÿv9µ M¸ÑBÐXïMð­(µtº¼ü"©zgT½«ûöƒ¥ûü¨Gî†?ìÒb‹äU«zýëk`§®\,8¤¥ÃŽßþÏîüf¾ß KÃÛ˜çûœ©Ïµü•ËX7&x ÁfÉ,7àtOD‘o#Tò^£·®Ž4‰E¨¼çNüÂUÕãHŸŸùãahR¦Bc¾+Ão{Ð0&\Qõ+êÛ 6ËÖ[¤Ú–ûNEá^k“ÔjkÍS?¢õ÷±K¼©³ÿHÅïcÛG1›{.õGlgûP‚²ö¹Gù; ð´GÄB©".Ä|ÇÍ¥õ®‚bôÍ&ns—ý©uìÊ®›³ˆÇ$•¬ÈÍÝß©^Q’¡Ÿ/ø¨ð§ö¢¶û¶>ôχv›ÿ-Ýôí=4’f9-!Äà©¶–K®˜Õ w§…¤n»°hõ<µç¤7Áé¬ãý5á¨Q‹˜é9»RuÄRÕ®*kp3Q`–”³šÔ¡vë(F^) ¹ä"ËSH>/¹<@÷׉‹š¹**"f‘1×TFÎHP©ãRi)°à4q\¯˜Y†¤VR5¬seRZ¿™÷c”G+®rk¬„æ¨ü`cSi²Ç†)]†þ¡ØŒäõ~-$áXÕ‰ÔŸÖšuÖT¨ùV™¾W^ ÇV¨ŸÐ(UŒ°ùi—Ž…ã£³€Š„”ü¸ÿøxäGJ‡"·¡¹öÞUEÖ-º‰N‚£6kwm`Øàt$z¿Ow'a¤]G C?n3Uô´RÙùb©k—•ÂwÛ ­ö§uYµ4cyå8jÑa¬$ã„x¦#S™åÖóSwÎÏAïäþÃý´™îÓ3•ôa¦í—®ÅÍûÚIûèX|úÞ¹SŠ«k~¦€ýzÁò6G餯é'ùz‰¾mº`¸qnî¸Ýš U=rz|¤)·§#|o£ëbÀ?â¢ÆÅÖ°1ýeÀïN!7[Þï)Õõ™†ÎÌñ„=€#,{k„ ÙõcÀó{ÐoXß6c m ~¯ÿwÅ>qªæ/,DÐ[ZÏÝgŠKš÷Ú-Χð£½()G âs¯}6~Ôê\ Ê·0T¦ê p³º› ¼2hü°Ùïß<Í+cÑN×õ׫sø¡?Ö†³ õNÅwÝͼÀ d ¹¤×”’±Ð¯c}éi¥¶:XÜBNÔ©\¢—¸”K ²T†”§NÓƒþв…¶"T=’h‚Jªxg0 .–Âgáu¡Ôj“. ìÙUh3M(R¨æSrÒœ˜*ÃÚïåÆ%6-)–˜ëN°u”‚R¨æÙ2Y@©Pb£Ó¨×FA…–2([ @ãðØ­œÚvRJ±B7”±WnkÔÄÇÐÿJpÍê‰R¬ÒfÎÞq•!«{dÜœ‘R½É–Ó­ìÍLÈí©1l`›ÙVËG·nˆŸ¹¦ä§tzžÇã<>ÇÇ™)–ž?œGRY“Ú18ˆÖ.¦mÇ@¡ŠÚî¤"Wja[Qíf)tùJ Ýbˉm.µ¸¢ )zJòÛÅtmñ(œ³àÛk[>–54ç p Šæ¦{µÛü‚t1Ðí î˜EkœFaU› ±™És™ÄsžËÓ}ľëJÖhŸê‰èó8êµlFY _ Tì Ö7’×Þ«…„å +¥´¡¢[hÛy¦ÇCsö{°þ$¡çËîƒ1u.Û¨EÅ Õ~. ë{û\|¿ súAør ô*:§¼È‹˜Iw?óþîÛñNü·'Þ™m}i`„ªNÅΩb{V‹t#ÄwŠ^Îý¦/Ràe•ÛüFµ½LÓbPvVIP0L°¶NÀPmRÉ@j}›ÏcO{¿Ë-W¾„üAB~sS²Eé «0x«*NMGuÿÜÊ£ñ þÏÕ^©íšdjWõnÑî™rÉE†”yÌ(q«íËøz=Ÿ6€­ÿåvÄ:,ÿaæV¨‹^Bd­jmþë$9C³žjý¥Õ35ÈíqI¹x]åº`ͨ¥¦ÀË­ÁI(µ!`L9Š#KÒ”“•§7âM‡È‰Ïѵ,·-‹¤å Q”ZTÂ/3<|•t~°cìÒÈ]ßmŠ> ìZMãÚlµã6j­ ÐYTym±òÈ#é½Ñoœ†Ã#R}¢TWžmÌ×6«â+c'b/Ãô_¢0|ÓÑêÒÜúô2kÎé¨ 5ž•I­³bA ìÔ›6÷4ú¬Í8'ZYX‹jdù,Œ^[‚”V†Æº3•=´]ÛR‹‘M¸g}f,ôž¡¦£n+‡jSÕ´§Tõ}”ØÅLÉnèªf,õ¸(û Ã9Wšª¥ÓšŒ#÷9ït.dSt©Pt 9Am“LëÍä~Qá+¤+ûìªm ºå=ó…@à¾âÛ1÷¯äáax½k’jÎùñÐóº{´Û+3À¹Xb.wº?HT™ùÉQªB^ÅÊ–°ËYø ‰{òt9|›‰?ƒMž1VáÝÙPÈ‹T? XÑO>Lj@O©ŠŸ¿ãÄit=½ò{®ÿYH°?^~þÎw.ðµ7kþ0KƒDki§Q}¶T掤QN>ͱÝ}ìßkú_ç÷Çd¸ï]&˜ÇöAæ!Ÿ’¼Wlþcâ;€Ðg“aÃÑТÍý-•)ʰ@mÏò61š¼µL7N'¨ÄÇ7ë˜ÖëY=Ô€ºæØ! ÓÞ¾'P$ˆaÆ\þ‘+2 )×ÅB>í3^åI¡òáoÝTQ])-îG%%MYµÅܶ“;ø1§5šJUZS¥ëÇ*õ0hKÒŒF¨DgMŽ çbRXºI)|Îz#Vk©¬iÝN”0z´$¤ Sq‘¶´"W;õ…‹­Ì|0IÜo€ç\áo¿kÓêËExšžÂ Sê%¦pCåÔYMšs>Îüñ8þú8>Îü‘H Ó]¡ÏÃj`±–„á>: ú”QôÁ;ØÑ*jÔ}£‰)­PW,õš«÷#/iÀhtk“hľKºt·g=©±P )®ÐÅ´M"i£ê2 âeµ.aJAC›¦Òµœql7ýLSû)wÌh@˜fÇb &—áúš?DY5ý+1È t¹Q{Dº/.\.ò2ß8y€”ÓãL牤 ©ÏCBú3fÌž¶¡ 3wú|Åêûð[8)…O“‚ò3‘â?wçÓ˜Î:#Zå¸Xßi®ÚnÃñàl¾£šçøö‰RqmsÔØ²_oÂkŸ½ÙÆ!‰»"¼Wõ;;Ým½×Š‘µc°…7/”JRÉÃ$‡×ã$ƒàv¾á[ÿ©¹TøöŽÿ%Ç\†æÆb6®Kš2²B÷Q…ÛÕ­• ôÙ†C‡±.Ķ~µi}¡±¸s¾R£PÍVš–lÅÒÓXH–Àª©³(©@[摎¾Ûªìè_7ú¬ÿÙnŽ–¸nî{MI2ª¡ÉÖëV…*¥ðºX.^—âjJô'bÚk\· lRhÖ¤HGÊД†c¬ IêU¬f€•Æ^×Q •G™· ”›Úîâ®_íÒÔ¨}µ×£ùÒ¶mÍ€µòu“äEÖX€žgn#ç^ÁY CÏ陀åâEÖ^úF}ý®æE° nC8ýKr ®_ïñ#ö~K½dš‘S:Îô°ªãø8RV$øÆIË©›ŽNüØ"«T»5Í4÷ã¢î¨š¡Öö j'v×I'šJµmöªÂ›$A;/¦Úc»Þ뎢W»™.¤êSDˆ¨³_QZ§JàS‚ôz,&#¸£Ì­å0Cuúó Ê^¿éå¨`äÅ¢_ǘpþ¦È}"RbÍnÂÚ&(ÌR’¼™â…Î*¿YÛHTßì Ä»ˆ…Óbû£ ~?2mwŽÙ§>Näì-£æ7låÂÞ±ÇHOáýNþBÀ `*ŠÚ'h›²IY„wà¡Är÷Û!ý6ª¨ºŽì¦)>0u_{?ˆŽÏ²7BðËÛKJ¿«§ÄìAÌ”ª÷3E‰ªçxpø¢õñí,‡©?fÂý^ ûBE)aú?šƒˆA!I$'9Tr’î„/2ª“Ú][œßSž=—Jî¼Dê!«<ºn¬xÓáT¼ØouÕ¯É`Oƒ:#Á%%Õ?lïóŠø× ,DÛ9ÚÚ8Òò¯Ê­†“A׺ä§µ„IÙ"ý-¿Æ;ª6tˆA²hÒ¤5aÇê¥Jið´ý[.¹ZëpÐ2ötônîîpÞd!ªHÈ )ë©¢Y’š¯Oç 8û®Rõç”ÎcNãÿ¶q(â…Fo•a³ cVNzõ ÏéyšC§‡kŬQÆäìñÍU“¤F̓½°µ Ó'­¶¦¥ê½“B[¤ _3ü ˆC©!ÔMÛt}Ôü~Ô/bÛ¸Oݬ2AŸTñ›Z-jNóü|ŸãÌz¨f»XæÚvgî“Úá­‹è)³-ÌÄ£y ÐíwgÈÐ ‚vgê©·«¸ÚŒ¯RFE gСç«åÛV‚Ñ»·jžªØõ–Ånkê¹–‚9/wÄCÝœ¢¾cf‹ˆÛM{Jÿls×êüU˜üûŒñNì£Yz‚MŸC é¼üSôéDƒNôN@ÏK¼›£;ªãµÄ»5Ü?½Ç„óûvmmÝÖB7êvôê0žBSJç¡ÇC“Ï· ¬hµ#ðš‘€Gç58Æ;»Ý0Á¯K®K ©:Í^qèwZ :ô Qß©ò:I!rx÷”ã­Î²¯«¹¨Týf}~cÏÏBæ+÷-Ó¾¦€¿ŒÝðjt€`” ’’d+Bs„‹B쥗nãõÖ‡¿õûÿy‘2B—¶}ôŒœ4kwïlÈ;~–÷g±½:‚š³¸Â¿RO¼öíÀ–„ðþ8ŠkتT'¸ðb)r¹Š³Õ—‘xnƒxƒîNo•ŒÞ¾-£)É4zª€¦„¬ª ÈR”E®'¯b-SF¦¢Å0¤›ê©št$#x®[ž€¦”Ì>¥I[ÍQ§D¥"T°ZfD( ÷Õ©¾ërmÄiiv!Þð–ªE7Ye©®?ÉS˜è`*š)½‘Õå¥T9£Y§oUV·ÉtsPý^d±Í‰“ Ž5ëÓr0s$Ó£'æý3>÷à”UõÔw6Œïfa ÖªSÎù|äãqæÏCOM©§|…ô²ª—o§*×^ÃçzŸºªÚ¾›Ÿº>¦µÁgÁŠH•}#ÕØVchë°¾ð2ÕxWâ¸ÆyuŽwÝp‡^BV*:+^ÌÓ'v+À‡cqCßq”ËÖ›q{4n{ëäºÆTŽFͬßÕó™Æ2Õ º½ÂÄ–¢+m#Ê /ô ¹³ã\æòb¾¿¿3Ôù‘¼Ó‘©)éùÐ#÷&Þ±"°AÆô¥ÐO'Xæ-³‰Ø¹¯¹¬RW)ÏË6ÎßÕÜ}Ø»Æfì¯x߯¡†‹=»?E 7®”û·‹å¼þ©HxŠ\x]× 9ñÙ½>bÌŒÀ…ñ¼M: ¾Þ d 7|ã¼ã ÛÏæµ»k*«ŠC%·ô"rU?–ŽÜ¨¨ôq¯”]³ô§þ_y,Ak$&}jBò¦û¡ä&Hu]:‹žÌCØY ÓqêRYìÐÍ<ó÷Jk’©=O$i»J‹¥”«_•R“<×óÖ_O½z’McP{…ËðÕ­fÔfýOJ¹Êó’"{‡!{–ŽÔ×AV鈊«:¾$ëJ])mW™ æ¤6ãQ¡æhj©ëÅzØu«G¾O#M«ÊÑSÚñœ½Å"£kÖç» &~º²ÏJ¶6bµƒ2j˜­GÓ FûR Žþp4iÏÇ•–sZ•B‘­}&¦‘JwÕÝ=æ‚_ÈÝ%çÆìþ.ˆkWØêØk|Ü–H¡š4é<ÓùÈŸçñùÈÕâЦxÏžæ¬~»à´Ÿí¢j4¦¸µ°¯å\I1ܹ³«¦¦í*ÀŠh-•=ú¿oû?¥×w Å[']´2Gê\ÅYÛÁ6ýg½aÛfkRÙâéåF~“1ÐÚšd1¡68” üHгˆœ²­:ÕöIAqZcÜàžôÎæðÈy*75[Eåêڻʗ6)y‘%» nùÕŸJ¹™Ìñ98ÞÄxFÆG:͹3©€KãÅéí[+µkÖÀVéGºMÞ†þx(…Ï‹—%ªx·Mu7–¼§/ µíƒÚqÄQýþ!n–pºÿö»qC·×p <6Eì]<ûws°{„¸ÓdÍyK==Ñ{§ž°æŽ»¯·5&ÕºOZÓnêI¹ê Yzš3#ß?Õ‹¿=ÅŸýþòM\ÅOÙÓe› 9šÅô©ßl.^ÓÔîÊÁŽŽà¦œ"|ê \R.>=Ÿº4ô0ø ‰;ä«bµUà”^ûtÙT†¥´ìÒ:5æUPê· °ÿ¡›âTZ”ÏêÙ/W‘g)…m©5>’4gÏóiȉ¥8è[3M… EßÕ{ÔÈÐÉTãÕ I”‘j—•jÎúí.¢°ª¼ÍÛ+±4HcšÝ"¥Ìb§/¡ñÐàüÇðê7¿µ ¡rò2oMVuÍ®¨ÖèÊ–«Ju/^µß™¯²ªÕæ::®Öª¡X›:mq¯B¼ÝüñìÎx.Ÿ¡ž„œí6ñGÊ)ùñ8>ãÓ¢Rqä xCtŸ¢a0F´Ô¶(›ÚÔ*#¬} ¬§£5©öPÓ¾Y‹]†±ªó‰uCÝwµ½AËRjdœËSêFimD,*_."Úßkghë•ÒE®})¾d‡8 æf&¬œÑÔ#ÍuåàFÉ5gô_6§fRrF”púR¿Aæ6‹ˆ;˜Ù†c¼ÁŸ ÆäMÒÿ¬¸‹Žâ·cùïg÷|å~‚lûz­n5šÍýU-Íí²‹n¦ª÷„o*na«ód„2Ðõ ù|šÛÂ(xM¬â›ƒÆ¾ÒïoÚþlbR&~'r «âm’Ö S÷]vdáÂTìb©ü¨dœ÷YqõóM‰¡21¢Õ¥Ipâ.ßÝ«¬Q‡á•»»?'ÉŠ#É©¬cã«Hq8K~gaÅvFŽWsÿU°ó¸•À@DrêÚÍ[|7g,òÝⲈà .ñò”«ðÚÇ&8ª3ŒÅª¢‘–xNÖª‹‚º¤ŽãŸåºäù,דOCŸO>/^_|^åù”çÅç“Ïþ5O>Ÿüúâó«|=iÿ>­ï”ÍHd†CN‚R¤{(è¶B"ªÁ†ŒQ¬Û\Ú*¬ªÈÈYs’œ öWF@‡Ü‰;Õ4Ã.¶ zW•ñ®ÅtµAT»Ë )ºK0ȸإ¦¹ž£’²M-h½¯¢Ð"Q ³ÚŒXb÷g©G•`Ä6;¾”zf›JÕ[–EÄO<è„Ó%ׂ̰ÜQ¹D±Ã+T ï©òYmK­RuæY¤¶HÿGΧE¥ú!qõWVÿâÕ¤_Ÿðâc¨¦v’oh­ÄÑð#ƒþxЖü¤.‚¬ °Vêžl©ÿ´}PK}p%m !¼Øb~ÆÉa¹*T ä+;à§+\;kãDßú)áYý¥ÌtŽ$öö&2 ¬cžþHc¯9YNç),8ÈÎüÇ]xÏ)²kihExønûSúu{3«Ë^9t2ÏíXÉû[% Î~K¾òT¶˜¼šŒÉÌÇç“_Y:<î÷Ø×ò©…œ«Œã~ñÁ¿Òߺ!w]”ÿ¿•©:¾e—Î4bNjƒ¸,ö«I±1Hùãúv•oˆð°Ï å®o8`½Ë“*•FÍ*G–\ëÙi~œJ¦ö²ÜÚPØ_¼ÉõÆÜ_öa¿­ð¸Éïo'4%¤ä{Ô7O(¼ðÂÉ}!Ö*L3Õª“ºäùäU†±W°Â ÌáT¾Wf]=ZmÌ•@-[5œúů§aÐRñè³|}•ç“Ï/~}•¿Êó«xúõÅ«Èe‡JU“Ù? ”«q>lOAm@ôl öÀtÿ‘¡‡^i¦V¦š)iJµ¯€µ£4/­,uÖ’×Iòˆ ò{ Ò_Nª¼Åe]U,"0ˆÑƒ"Êyå”q?™8\ùàµ5²¬ÔL±A)Áe0×8N’OrˆÂ7äU®K.Kþ÷¯¸ôL»¥Íu=IoóStË~þl[jl.øUG­ë$OšsÊgþxäÏÇñq¤‡"‹µ*`ˆsý€i´ì67U„õ-¨IJ8ùÈ<mÉψ„©‰eM0 Úò#}üpÏO5rþêŠT›=Õi~­Wk7…¢Çfq”ǵhgv‘xaò¢TKVt“CÚõø… è¤s QGؾÏ)St“öÎñSã”S qøõ£Üqœãí„N)ß°º±R4~‘MZÕ$¦Ý*Õð*SõhÚíøNòw ÞÁE ÍIÏS\)Òø>á5Ën¼ÇΞ(¼;wSæ(»W]ê ø¼ø|š•jö ÿL#1%ˆ¯[å1cpÆ©ù€ÿ†'Û |§á9¾¡Tÿ¸ˆ‘M´gÂÎZ25›ŽÂîþønýÍÅŠÒ6/>® þðcºCîùã$Uú—¬0;keR åYêoºÌJšœ ®ÓsÒœ%”w¾Ã§ò÷çþ/a«“vT‰*€0D T)áQ2w¥Â…E®EÊS®‹o¦XˆÜ¡„ÅᇾÏd쓪J¹X.>¯ªŽ½ .;Jõë’N¦~uòµ1©¤={ÈUҋン†£Î”ÍŸÝm[ͧmf¦i©aš’e3Øì¼jªlW”AÌr0}µÑI{Ž qíߌ( ¸¿§³Gµ5‘>a`S-§Ÿ2¦hŽzÚþÁlU $0„¾µö° †¥R¾WU¨©dô¦n_aÄíh'»åx\ùØÀœÞ{¹O.3‡ ¨g\sÖ|¤ó‘ãóÌ)e…ªíAŒ ïªnwœµ@}†Ö†gA}ºë¦ÖHeèSÝà ÌA íŒ6BL/¨HŠ¥\Mõ}ÑBS‡•¥;¬Õ‚zÛ‡idže±ý!_ŸªÕ*géÿ6QÅí9î3ˆÛÓ,uÓ$^Ę~ÛžŠ=õ}`Q„>&øK.‰WŒ²úÉÐf~åÉ€ElÊ©¿z’4„žÈ±ãE]§;*ØëNï–þlJÈ%þûÅ—ŠœÒyhJðnxÌÄ0‘øèrÏÀ&3ZufAVÂ({³]ÕÓ†m¶S c”·¦âØÀ.\öè=_¿Òê?•òzGSÅ«àOÆTy{§LŠàƪ &ãb„ ßí­pψÞ<æ{KýK0]ë?'l¨ßƒÙŒS‰‡"µÀ§1©Ö{ÓVyá,/Ž9×.D¼Á“¿òûÿ1JõNU¤!-üø'ó–ôv³Ûµ<ƒÁce&ªK.n‹ðd’³cY˜"‰7¥Ù»ðU·&4õœÔ¸øjº²!²\MÕZŠ\W©‚ÒÆúuÜ BÑ”5'dÕ4vÛÅÚk±ldêÂÓ.ž½ù[*š€&hª4ª…³&­…`)¢ZSÓ{|ABºƒ›Žl¦4ç$Ü¡Ér#'Š1@S§~pÞ!¬+N ‚’UCØeÁ…]Ãè~¦“ój“Nx'[Ìz?dÊ”¡l áŠL‰ukÃXš%K’âráÌ> üN@¦šŠpõÛ•(T‘²žg~<ŽÇñq¤S5#R†­ðÖI GÍŽj©_ [(YÕ"â‚y ¤RjÓj%^-‰j„]ô§p3^u—ŠHk›1©¼¤KÌGR†¶‹Á µ«Â™û´6µé¿ñ®¶Y)R[2jÄrWÔ,–(Â7³Å»žS1ãD‹wRîúîŸcªzXg“1`”Ÿ2R¨2GVÅ¡üB~nÞ½ÍÊ+¦ò3ÜW!ñ›AôZ±Ê­2 E¡q7ßûNˆE›ù7Мô°X ½Î½AÅÓ¥tãQ§Å\4Î2gæ½O½pù¼øõäuUMáå>?ŸŠo`$ë±Øo¸%Î'/Ú#À˜„-ñkä‹ßÑy¼‡YJp±!Øÿ᪑áVÂe¹:Å7xgÒ:º¸öØ‘ýë|wÍÇ 53âR‘ ˆÁ“Xš}Š ÈvN=þü}¶ï@˜ùT|£Wø=Ì Y¦µ4 Ú4(ãµ­ Û¢Õ0®tÌÁÆñÏòuÅP*™M—n 9× qvjc¯Ýì+‰ÅvrobT°–.«¢ï— K'%MÈ9§3KÖZeïHG½;j(ºÂéô;0sÙþ„iWkÓU–”4'Í ÓJ£gó(ÀRƒ­Àqi)6¢áª†-2~i¡û˜¨hˆOï0{þ`j gö„éžÉí7ÝÔ]PÐê¨Jñ¾i¬¼<ãòóê+U&¯<É«qœzz(‡½UíOG@Ú=زm¹Hª9ãxàÌéq6QÂz|û8TU  Pµ)ðÍS8îOS U©t7‚aÛGPÕ¸6ÃNèºÅ(Î5ù1¨°¸+ßÒ,ô´ÈÞYÒÚ”°gíÕæËUjjXÍ#ÃBŠ2b½^ðv&¬në> S=k³®ªh™©Çç#äüÈz¸Ì»° Vxn;›ªS¨Ô«Tá#T[*Xëç ¢Öܪ¥J´ˆz-Dó£FŠ‘Wm+þˆ·4lŒƒ:ÒÖ{D0WÏÑ}©­C¬ÐD"åª{›Éý ð²ÄA™ sÓ¾Ô $ý|Ѧ£w€ÜrQ¬“‘º D 8E mZ¢› ò'℞ž {5p¼°Ã0b·µlY(NÜiI–u¿¸pm×tÍIsFJ½1m;Ê•tÞÔ“|<À aßÐÌB)_ÏòïS®Ë:—ÿ ñ½h¯Õt2!Tq¥S»¶Ûw†©¿÷tàxŽïJ<~vÞÇu‰P{ÖZGP¼çÊAÉ· ÕßÝXÇ ½Z2”+MÑf/ÄÜ-Ö0°œT+G5 a)r>KU¦R"zÂ.×M 8¿NšÏE1ÇÛ¹ÿ‹mçï6=¬´ ¢5íŸe¼õ ØPMSX€>â4F¦>§D*¹QD"Kn2©Ö¬y1I×L68/>Ч+Fš$e=ÎtúÈzh­Ÿlž~súkowSŸ R£€ì˜[¦¬–þ÷øÐÏô×GþøHŸgzé8õÈzd䬪š!)ÙlwèAZ¬·]!.©²f¶ö*)=½ßƒÓ“É}‹ˆGCB•± 9œ1%àÎÚ™y‘RLW‹âõžF07¦‘_SIšªÙl,0uäUŠÕ€U5é8n®ÖYÞ8ÅhïHÕšÓ¯%¸Ÿùhš1 ö¨jNÇ‘Ïóø<óç™O ¥J ¡“4ï\Õ}ÚäTQ*ÇÌKà}U}ÛÔ'þ„‘ö.Ø©ªèß\\tQ 3-´\£Åƒ¤¡e¤:gµ1µÎŽ…I®×‚°´Åá—覻R®ÞZW›Üq“ ã{œìí»…‹wëûŠšÅ~ÃÂr0]¯j³9Êå%:© ™gûžßá&É'¾2òà|‹P‡ôŽ/¦›‘¢JcÇfül¼Ÿ“jÒ#kNkxáúçF¿s€k9d—´bG :®´¾~]åëK®2ošLæÁ0ŠÙŠÇç³µ@•)ü–h~y>x°ï‚˿υýƒMªaÜ.޹¹ú'Ò>±òöAf8«çVBy¿°ˆ8Þ  ––Š”zž¿HJå³8ï_¿š?^a¬Hz2SâëlæþëE¾ë,ýº‡/§ÿ½˜Š«ð oË_¾‹µj/Y¤Nmd*e¹ì°ýCnÄÁ]ÿ§6é üÅ ÷b¹z”¤1ÐéМõ<ôÌšÔœ0ídk7ÉP«:©BXÕ1 IÒ¡çÏô×gúüÏñß¿ŽÏÏãóŸü‘õ8ôÈš³fE>ô̦1@Î’ªI…¥Ô:H­ü¨ˆP•-˲+kt%¹ïTh·^ñc~±'íúÅÔÛGwŠxí¬é€A\,"z±´*;—[®•"ÒñÄ®)^} ]I;–«|]|–Rï]GØa¯g[7kãFfØáåžmÓ•¶Ž¨¢ß7Œá,s#§”üñ8>é4Q2šiŒã!& öHôšYwøÑc‹€’-±wØë­ÂW0äÎ&H©£3)M|W¨WÍž²Œ…B·££Ÿ†VäÛ¯ l´Žô€ æl1«#°° EJéÓ:vbâÝØÜ¹ò1«\8«ÀÀÅ‘!'*tä ¿]šNéèÑ®$ì… £ <»gRá€ÐlÝŸ ©v¹0×[ n€êݰ·+Û~v€kÀð·Àó „:á&¨Ú“®z}Л Ö…ÂÜ =ö¯ è6éœupÃc–¿øõ%¥,k.Cñd´` bè´Ó¨#m‚{îõíøCb•÷²M¼yÿ Åv³ ‘ì1pÏûg¨‹•8(C¾Áßqâ‡i‚à“ÿꈱY·&÷~ÇXš6$«œ Y%é©fœAT7gt¾J]‚Â<³’Sy‹S_ìH~|²·U§˜tñè*Õ¦sûoU.œª¨nTH­Ñ@êW‘‹[6kËžb4òįY”ó(wŠœ ^bÒ4u‡èÍèªV9«ùl82AAˆÂ™cÐyzHKK;>ÒÇ_Ççßéï¿ò_å¿?ôãÌrN2ªV £í% 8²&T-A]aÃøÌ¨F¥“ã­=U1³îñ7ùÒ[ 7C˜ÚäJ‰wî@ý¥_W¥¶ J!je½ºÕø×¦ssËVZ_¶jYóÊUžÏø_è ÄUÃË®®úû¹e#· á‚7Ü¿³bÅ5·@UÓaâÔü‘Ó™4×´ƒŠMÖST© 8 ¬I«m ØN’×¾^FYSµª{^·ù6;ŸÃ‹B;UMêÂ:˜£SöF¥LÅXv¸+Yï é©v]5F^Wy–RŒ5wê2"*X^¦_AŽ ‰™SÜ4£Ï&›ÞŽñ?´W LãÂi;5¯å¤3Ü‚T×TÀéV¥:ö©«`­W+ð¼sÏšñ›ÈÅ% @ö8ugpÝÃN â$´>wœ$·n)ÿýâ×sNY¬uŒ\qnªÂ‚UŽ®ÕŒÜé2(·)üo·Úÿ£ ®9{ÃzÀ %õçªÂc”ô05Z„†qv¶É$™GT ÈÆiôz@Œkœ“o(µÝ. 5ц $E6šêÐÇýe2ßí@]OÄrOL­jqC;àÐ+œú'cÿ_«jÆhW[~'·¨ñMÉ=_ß2Ÿ¼¾øuñÉp>¹›òoÀ¬4ÄN£²+mŸR%èIƒ„Ô¥ŒÈ&ŒD*N=-å¡Ö×(Ôº4+aÿ¡-Õ2#Ÿú0lúŸüßü×CÏœŽºW`µ®øìý1&¶#IЬ¢Š¤¦³áÒ—18ó:_¹¤9öüÏV®'˜›ÊQj 9‘¡„ÐcBT ›Ö\0[´]njOó°Jè4~ï‚‚ª>¤Ôâ†ò¼x> éWVÇMqSŸ†ý•„0 ¹yPM ›À &#š}ÕSJšr>Ïü8óãÐC{ ëH½_x#\º¥åW¹1[,¡nî®C…ª"&Eià·çHË´óçdÍ0ñÍÞ_jPÃE¯¶¹’>i%€«4î–8 [jZ-Io-æ·)S-£¿MóûÛôßÒTÑ£¥fÊ-‘æÑ:y_–´•Ê2v8^tíAÝŒ#eÏIý]AkÎ}!–,ºÑ ‰Þ,/„¸¦¦›:¶—üÅîG¬~ÿ7ØZnÐO—ZC­µÆ˜§uéñ¡‘Ó<ÖQ­îÁV·@-GÕðÙål9`0Ráó*ÿ|•¯§,ñ5;üDÏ’Ò£Öm˃üŽæ“¿ÌqnVæ%lý;>öOc˜)b–$®ìððóF—=‹w'Ö58>ì°¦;˜BL–šT²2+*HéTÅ¥¥þH0pà\¾J$8‚¥~ˆW8/=UøåS+›6W6ñ¡ÚÎtDÀbÀu“-¶D«aËRh]PO>Í‚hyÊ-4õÏÙï·uMÉFºz+Qgð)¾ÞO])Õ¤é@ʰ ”äü€·}ã˜óÛk$hÒã#ýõŸã?çÿþçøë¡¤Y‘D¢IÔLØD‚ßµwóµ.HSJTÕTªp×›;&¥—\bô¯ §‚‡g c(p=qÅYµ‰X¡-¥†!PС¹1ffŸ²Uzå œ$´S‚#ØÝ 5éžK¤ðºž6ú¿ØÓ£ Vb&¸ä ?å}µ“¦ïÉ»¿v÷Ä„ö¢ ͇žG~ätªÅ™ša¨±g˜{Ð)Û‘þ7ÿ¿oRŸò+–½ïˆü 1mÓ¿¨Ê×™z7ûlÜïÜXúÄ¿NG„Ƙ_óÖMu˧"v¼ù#b|žøîuÌ©–¾øc5F3%±‡âqè™p¤ªOmÞî6&¹¤ÈHYÿ¤Ïÿÿÿû™>2,+@DDmÝT@¢½ €«´A*7 ¡BU+Ã&R:²ÍKž1¾ÊhÍÊw) 7|ª¸Û—ήÃbh©ö½úz¯#o‡¦4Ò€R¬Þ‚ÖPU]cô?`%ñ&½€B >õY¾¬ØŒ,ì:>Bî£áæ=؈Š~ô·Ó‹ƒÂÍÝ€ÙøŠ‘Y € ý#g~X•Å#4yš " þ.àT›+žvý©ÛSuþU›¥:ªF{‹ÖQ$·‡VtCKñ/ Kµ€€uûmßívåýFŠvÌQP!OÊÚå©v^‹W‰kkce)ÏR®R.#yGí± ™…K-]Sœ‰P}SÌ2`SǬrs®}h¹å'ÿ‹Sà†ƒ¤ƒÿ7±n¦¦©ð,‚ôî/€K 4~‰ã‹pˆ\-êÓ ê Kr¡>u¡Ð”PKÜÖÉR‰M=n¡ŽGȹÁ{ät„Ú1¹®ëÿü[þù’ëâC„1.;”iò?‹b¼n9§·Õ÷|Ògs“¿•ƒ‹?ÛS5ÖoÒªæíË•£•ú7L‰µñÛÀ—[j»Û<ÿÊÿùOþïòé#i2èÖN±jó<ר~“¹²š¡§k£QdÅ(Mª’‹€…J´ ×ñ¾BYºõ´aSŽgo*k[‡*ˆÒÒPµ&Ñ•n‡‰VëÞçé–×R` °ÒrþI¯é¶c½Ç•ÒB[{«„E¤ðzò«þ¯b& âƒËwv,[ÿ5'[ik”d@î†ÿó­P/$ÕÜ’S|&=ÔgyW²¥ù™¤±¦tóŽÖûd{`§Ê¡Um!ª-€Aw§˜p¼j|Í×ßåú…!ÞÄ«{îwúZe6tv]—cP hÌØú_»•å*¥\׳”'YÆ.7DDN aZyèãî1m]Fq]»ë–:1‹>Æb!SýEÃ&µžØÔ} êÊ•âUÕvµ—ïé¿^ÏÉ~‚VùÖ ôîCpÿ#ãDÌ;Ê*P³˜÷œ-Ä»Y&Õå"Ô‰ ÂÙV\DEPxýû,ÿçÿÐDò®CF–JÈcïó}n©çí&5¿_¹æJñ¸³û”ï^Iëgú-¢-¾«ÑwÿFfÿd²NE¡Ò Ûöê}ô©Ÿ·qºô¹Î3¯™j|ªØvË ƤVW€ìjêÞÜ¡DžwâÃÓbh¾÷QáÍ»ÿÏñB.ô!{‘†yZ&ïÕ;qÓ&ƒ…å‹_O~]|–À¤ÞùÌ–T©•âNNµJY=Nõ•n8ìˆöÿº‡osë£Òó#kvs÷Ðt¯¨š=þJÿùûøïÓßg:s]»§ - Rè(›´ä'”´¢t`‚PU­a*nÔp¶³Ç¶Cµ“9ñ"Åüxìcþêï“Þþ!J´»ú$KZtT¡Ç¨‚ªÇtÙþc›@E3‘´ÆÌöä¿.¹®òõU¾ÊÕ£‹(æ(P*X×pÈ Ö\â>_ xÉRÕ ª*RM¤ÊG>“fûX:X¶sZ83¥‡UÃD¼ä߸ÙQ´¯¤oÃôVnSH¹¬(¡° r0´Á±Ú¹¬Ç6ÃGzTö\¬³L ¼Šðùu]…W)¥—ØyBŇÇî:'ƒ×ÞùÅû¹Gx…Hd.».ª€T°eö 5Ö l’×7yÓ‘õ÷»8Œ›î[ 'T…÷ Õ¢UcÈ ÃM)Žþeí`Nª©k&Ù6«0Ûßcø?(‹UÓ)l¾¨bSþb ØþºfèÓ‰µ!ƒ~d´–#×µ1ˆ•}«Ò¶^Á¬ØÊ[{Z [Æ™—44× ¯R®Rž,Ϫi ËötB…2„œŒ *7‘ûz©5(5p KØêB¿»M n^‘û‹kÍ/Ý,ïcýgñ#ý­¿Æ~þw+Gü1õ·Aì¯Àû'£ {§ƒSÏOé—à®0hr‘/Ì ËUþiÊÔÂÛnê*ßøÈÓh>Ü+¥ŠßÁ?!ÍâÊÿVíÙŸî׌š†úAúÉ C!ò$ñÄ´…á;GÄ/9ì\§À›õÇW … 1MVoyw¢};èÀœ) ì÷ÜöQ½6•ýÑëìÕËõî‹â§VÞ[4OK°¤À°î3åzë<¾Ì–ñJÖ rW¼-ñÀÌ“a_šÁÚ?ÔMWRHýè¿¶ëïTE“V‰jFNÈ©gùèg@‘8ÿ>ÿþ;ÿ?é‘P‰ÌÖ`*€šztàT­(õèXßÝǨùRÅ£ÃêŠ(¤ÈU+Ȱ/Urf¸b‘œEϾv½%fG?÷~R£E•µß›= ßŒçRÀ:×.½³…JT3^j=|½m§R¼Õ5n±*X(¼žåëâ×ózZ4Ußh­Ï„¸us#ëR³ZIWR™´a”{z¹Ë´º>²Õ¥æÇ™Î”riª4.F 0Rȶi¨³þZª;­’§-ªÖŠ£ê?åb<±'¢ˆÐ5K§ ©|y_ϫ۲õ hç(½¸£>h¨ Úž…ÍÑU:æÔÚ;Pk©-'«×õuÙô¿K#B¥š—s¶ô-ú -Êô´ç1Œc–ÔÍ !Ó²Gžõ ld¦œ]ÿS³gˆ'Â_o¸á©øªüŽùzîúbîÏ×ߎŸ¢*§;ë @²á„~»¦îÑzm‡qÃ’¥|}•þåóI–•Ï–E°ðË«3}Cî+šüWXÕß29½÷Ãù3¥ÁÏg•4 Ý1) ÛÖ Ò\òÞ!tƒªû: ®QyõéK)"¥½74 q¨ øáQÄþw”œ#ÚÒ&>õ­ëé}}è[Ù”’õAa|Il弬[~MC¨Ï'ŸO¹ Ë$¨ÂÝcèf„ÝÎdµ)¦Ú@Xç Ž©ŽA "®ï]¢j”ªäJ©ÂzãyÒìSš5¦Ïÿæÿù+ýÇäöŒ1´")­ðÒ/U¨5Ÿ¨’ûKÿh."=ÕZÇ\APû-E4n)P)üÿh{³Çq$YÔÍAJ±euŸÿÿÎ;• ·û€Í‚ )2»¦g&»2‰"ƒ¹-ÔöOdì“ß³IJ/$+:)döë䟨ÈZUfx›SoÔ…±‘H©‰ƒ%ò}UÜB¢"$5 vѱB^©ÏôFç` #ãÎ}‹UXâ¢þ§ÐùNZ,ÿÃÄ×–i7Tj‘û]O CaY–l¢ZtUU˜ZÉ5–טÓH…eS~‚´ Ljä„[Óù=[Õ dDŒvTO9Ó)Wëêªh­ížÚ«èJ€jV‘°µö›=±êBòƒ` J&—XFÜ1î1F‹»1ÕD˜¹n–¸ì1¾®ÊmÐòç…©O‰œˆC†f9UÊŠ“µÌ† œ545ßTW¤9E”]çL'ž£9ø‡[ß™Ààï!’¨–ÎRÃ,§ rdŒ^Ÿ™ðÁ«’àq’[´Û÷-/i'W?~³q&ú÷^sÎL'OÓ •ô8ÀéÏñúßÞòI»ömh”’„;Ñöp–ªýJö;3jIGǧ$›)F‰9"¿‰ªoï«-}ÓÑë÷Õ!άÖ!”ÿ 0VY-ðð°Ñ-Jl™)%–C¬ ?§y«5ÑOËØÍùã&·š¾»+üA²+BÑìNqßí¾s7‹Õ Ι(m„ózW›¬¬‹Šàѵ(‰_®k¸,á¢X´Wï>6޾tªüj„ªùÙt©Œ…C€‘’hý4·'j¬+œX…¶ÏÝ W5ØØt펼šÎ¦…—FϦ›¸o„ã8ɱ\Ãj\„8¤™íÕJE‰å­á úe]€~ë8c½¹ 2š[8Fï?9 õÃsG?ñv"'£á”Ãtâ§ål'à¼çšG_ÇwCÚï¥h2‹³IÎr}ä”j÷ó€>†°¯BÅlOÇ<Ý'­ƒ¢<•Ü÷x¿Ù}cŒ.iõTóùg‰ÃÂÁ¹à8Ÿ½¢˜=-¯Ô bl"æ ï÷4ü_ƒ1èþ”.æ«UÔú'ŠmÍîùg‰6øò«[q1¶ˆ»D˜ä“¬²à)K‘þC´*›>1s #JzEvechòç%…$œúÿ¾-g}’eÿ#¡*Nô#ž[-JŒ)®²þ{ä¾3ÆLî ªFF+@áÌ…©ð¸Ãù x@²âø·JuÜýü铞`S¥ÔÌ&®t‘eÑ5HÙòŸÕ{éç.²¾…÷¯õŸð4”Y­f´’aAY[•¦¿ ý䚆½Y\àošB³ZܪÈQkfbb5 ô“‰F!4äXÌbE9Ü‘¾ Ì¡¥”‡:6aµžªÙÉÌÚÀ 2Ì„bÆ®5Åí^Ô†íB»]Ü@1cŒÜv»oq‹ÜәʟcqY}YÞan„£©#ãÎ\àÃIl¤ããKrêªk@8VL7 Ÿ»W)^¨ï"n颕àÆÅnj\„.Ý‚TÚÏyôâ':xš»H-Stñˆ ª¢BÕö2ú²Ëä÷øµ|¯U€K£Äáæ/Nù©xé`É+Ó_ˆ¬âìôÖP Z•L¯œSh¥‰¥‘k%På ·éx àaŠpø+û”*¦®¬!Hµ“£O-G/.„äÑí‚%© sèlIí "@¸„Ë×òù¹üº.f¥P=Û¶RÜ®¯¨”­RHѬ-|6‰»tÙX¯ß&”f‹«g#õ£±(]ó#ª¤Ÿ|«´"u_¸&ÖÒÎàh7"Y×S@¢ZMhf%ÊÞiÄ6ŸlÛ¨lž:'Lâ÷Ͷ{´<÷Ÿm–8_˜é7£ã:Œo—uLƒÙg•>cUÕ%¬—pY—·%¬‚SU š$+9¤„7¥òSqŒk*FEއÈQèÈi-®{4QÚüšúR T@©=‡LÍ>}iôjÊCÕIò`e}Ó'Û7 k©7·æw˜œ$ê8\]$o Œ ÅHËU_Pé3R«Ýð |ï1ª6Û–%Uj3ˆ§ÒòÞÙ³13ö–+Ì·‹’(6Ôn?Üé9çJO@l%rÚŸö'³9ü¯¾a|%åø“J0F)®‘yg ZÞYhûH£˜0îñv÷;c•¥N§ð]K~ Ì…Ów ?žþÿÁgqðgÓ©þ¾ uØ9_•+pè>ätƒÔÔ”*F« ›o~âñD†ùG_ :R­žª íu„(TBЦšáã¢èggúÙ‘ï †qÜ€¿+*Ÿú‚D?¾_¥W[ºê#ÁÉÊþƒ}x6Ÿ¯Ó8ËîÅt9Ãô<<‡¯OSª2Sa±Û UÕÜJ…%Y©43¡ùKá-¼}-¿>–  Å@Q‚ÊBÌf•`Î/µÌ´!ã À¹ªµ2‰¥"*:dQS,µ4«£5"ZN5˜³di©aTùV€5 ªd 5Á  ûG#!+WKZ]àÌZlg—Úa"HÓ6ÖT_zZ6¶f ã&Ûï©=ÕáT<Þ çöíg%˜ë³0»ûq\E¡ªaÑu]²8µDß¶ËXAªFë8´Ñ¹ˆªë¢*K]‰/ÕjÕ+¼|Í7•"çõ¹žÔÔxÅ¢#I¿KgÓ&M®>ª4ýj{•ænÈê…¾*¦ÍDRŠ2†¤Å=nÑ633‹E[â,Ÿ(¥V.B“=ÙÍÚ)~+Wß§õO˜Ð®ó"SÇÚM¹ÒÑ®ÏA:wB?Ü8NÓ« >?óT|`Å Èçs¼aágè¡j~«€¶›r £¼"‡øÌa¯1ZÜív·ûƸ§¼s$6ýñO¶æâà4ýÙŒýG@‚g¥~ã¿æ£&iù_ _¬Ôµ¯@fÚ>¹8Ö¢Ÿê:ú÷vÔö”ÚiñGW>—_oáM©B$º ¦’V úZÑqúc iO¿œéü”kªÒÑìqP²ð§âÍ<;ˆÉ=š+A•ä¬Îô/Å´îÁšé%Öàõ‡Ùªƒœ±²’Õ‰¬bÙŠ6¥ûÜ(bI7.FR}YçìÙupæ÷_¿2qü»m{¼ïñîøTcÚ§S’c:ü‘îÂS¸ #ïpˆÕ«èLÐ]ôr ×5\—eB;¡™%*yª P¡ÙW“ˆR-¦½œÚM¨ÂG/6Iv&Z‹c/ý+uψŠökòVɬL¹ÒòÊ^ãЮ¶jöoI¶·T³ülKk‹BkÉ$˜Æ8q³¸GÛ­DýÏRçl×zÚµŽýiÒ·/úøçû|_OÓR8J<ñÔ¿üï"£ ýã¿å#€!3cj÷ÂÙß¼O"K¼ÝßPÊP•çVJÅõ­r–p‰GÈs„z×.Á |ªQ,¤ÅÈû=f;&•Œj-ÏËSÚÉ¥†J<þ,è§ÒAœÞt8)MÈéý]*ô *ñxÙî= ÇL>Q¥“ˆCº$© C­Æ ’5U\ì@ ¢BPYT$ 91]aKñ=tWüÉyã ±r¢Ä§ÊI¥ÄSªü,‹îÁO<žáƒ_Ð÷$O?þA×ש¼§Çö“ Î@3 Î멦:7o=²_è÷ï®\UúJ*é*U“7?h«¬K¢Ä‰Ó‹®ïáókùZõ"êzGÕ*)›&î™íÊüXk3WÊ]}/ ¤Ap’xö7´%´™`+A‰ÑŒˆ5M´!ÕfŠQKMI™`µ2›>†]EgtaK~O¸3¥K©”¸–RÓäÃ,Ñw¥‘ )0kèÃê¶J9™ú ¢ìû~Ï~ÿaîïú¨0kÈM|8Ùîq̇ÄÉ3äÕ¯ã•E#PÕe ˺\Öp aÍ`“‡5-) y¨®"È2ËT¥®´›hû—È£tß•ù-‹õ æ!?ÓoT–½äY~nœàØ]–o‡Ó•)1h'Ë)kÐÄXY\’S_-n[ÜÍ¢1–.9ªÔ†×~Ú)ªÌ:é¥ý§Xg®š¬K'Hœ‰Gº0ÖéK)?ØÎ8KM;ßûÙ«ÊOf}G µ U]Ã-2/R´|30üYHÙW”â3·Í–6ËqÃpfÙîä–ÿa›Y UͶÍî[¼ß¹ïŒ6ôóθóSFº]m`„qþAàåëúÚyä´Fë·œ¿þåBxÂ= ñÍÚL|nÀDœ‹°<“Ó–‘Ú»´m…H‚ª^œ:aêØ¬O‡SäÏ{ªÚ!jôúÔüÔ—Ñ&þÖ'§žŠÞÙFLübÀ|p`ãមۣÊ)è¬`ú€/–D•å€4°²ëi>/=C–Ö¨±œ“Üxnd~ʾ?êØ“cn½F„˜Å(.’uø¼R/”&ë·YÁF–/¦§vt¦ûöh›@ó^ߊ•ÒËOie¡E«•HìdÃéCS;û’‘}Z‹?¶o¶ovß,çR&³ól4ËGÙàs2çìÑÁtŸ¨á©AâëšB©4(Ä—„6ÛÛI)ÑéyOUÖItŒjö7)Úá;gòµ¢MZš^[Í€¥´‚©£Áå¶¥m:å§µ¹Ñø¸RSDu~[vðù»pZ ÿðk€¦ 7MK‚qq·}Ü-Fö>ëi¸}w²®ÿ§'Ypà }ÙéÎé­Ù”ýi\fÕà‡íœj¤÷Úöýõ2¼ÔogúÒ•òœ¹3›x–hÂprĵ'¶x0Œj!ç8Ð3ð=˜8r`R œI©ï²j€Ó'»Þ4“=Ú¾Ûýn·»m÷]Ìxšz÷à ü%|v€}ç^š©ãäÉ­Ö`m }.”ÇMÒÿ#ù"݉}èlž[½´¦–âÚ¨}£á'ýoô;šÏChë—·® §Yú¡ÿ©Zgó~äJìqü$!üû>ªg;èþΉ3ãÿ;œè ùß“«D&8ËüÇÙyt’Cƒqú?®<Þ©óÈMÕ;¨€h#ùR@Õ¢ºÈë„´µ‡k¸|¬Ÿïá=ÇP¦wB»-=—¢ÒR*µ:´ÒÒ!ʰ²Âo€¢nµmSiFwͺð±ç¥$;ðn%S «ÛAZô]2#|ÒO•”×WXÕ–ã“(ä;a&&̽GÜíªê?Z3ZšˆÖwjûn÷·Ý\~jiqšÍ@q.ÙÈç’ОQ³œL?Šº#]–°^–Ë®!¬m:_†:@v7©t|h­+Q¨LÊXô[ÍóMP¾£„›'ë¾vÏ›¢ÈOëæOE“{x©Ž¦³Œç[_¡4í›"ü=a^å=¬wÌuÊPQM;Í,Æh[Ü7³ÝØì²ctÀA.ïNÅäŒÜìnÀöpœ*ceD„çdSŸ'0[¹ÁytÔ€ÿ/¯”©²úÀiMÁæ”#äP§þÒþ÷­Xf.«ôf¥9G°ƒï]c莟$)ÑÌ"÷È”b³\y‘ÿ`ż۶Ù}·m‹·»Ý÷ô]’¼ýS±Âé3Á¥ø+ÃÏnº=%+_ó)ý0àêž»8n›Ã΂SèëT# t»¾¢ýßì—Nû| }èÇì.šîßež9ZV]Äe©*‹ÊÊÐç“êHåäŽ3õ“×Óá¢nÚ"~ì£z sÇ*ø»Rà Ã^Ç#'¤Ñk Úé{îÛ+‡ËÜ•ušQÕ×Wù’űCµíÐpª ÙUÉJ4 KҀѠáª×/ýz o!%سMÑ]”¾fשÐâx‘àÆíôm¯IJ昪̮ªWÀ¥Ò)¤Ð(…PvFcl:Çð¬•Í¢YQkýðT‡<0J/š¾·äA¬ ÀÒ2…©ã”–_ ’¥¬m«HL1ZR¾óŒä¹­i­ü«‰Dn[Ü7»oq3îiÈוÓUàÝth¸ã&“áyÙ{ï¸x,Îñ(7…š kX×p]jýÈóJíÜRVP)OZ—Å’vV>+­ášÿ^kbTÞ«øœôìXk„:Îù~…÷6v½]4-cã²³tǪôH]2ú•ž•t( ò¿i4ê¤a°å˜ºöw´„ºÚiéDEt•TÿR“>UÝÁlš(Àæ|<ðݤïñUó)jå‚¡Ìý9û _»{¢o}i¸€F „lw20;ÇžàTÊé`uøï}´Ìéò|Ì£z˜Q…¡Úc`ÑšeêøŸv¾R5©T[–*‚"(T áÞÞ—¯7}ÓŽfÑ^DQF ¹’P dÁy+e¥r-íº$È1R@Õ¬d’T-ÿFÆh;sü¾”Á| ¥¬‚Ü%lê\qÄäÚ~icÑPbZèOšÕ iLpYRU\!lÝj ZÅ;t±ŸÙhÛYN2 ¥€b;cÒŽí¶EËؾ “'óý¹»^Íg6ëã¬ö‰£W^úT5,ár —Ër XÊY$Ýd„Ÿ å,À$3­³¤ž 'J—´Z>ÝbÑË”¹d_=˜ifÞ5-œ%9ŠÕJ\ò§Ê­”QŸÜa½VA é *åã=™±¸› å¼Ò…J"XŒû¶ÇÍl7‹‰—ÏXøüØO™r*¡xó?y6/G|N×¹á»8›ÉŽþªÓX´ âš1hhÛ§ÒSév¥—x>‹eŽGÅ“þFÍØT5è’J© KX AC@úC¬ QzrùVQ>ÝäälìiÊÜcŽVU­íüÁ‡ÈîEÃÒ_œw¯ÁO8£?ˆ¶å1Qò€z˜òG^¬‚²Nø,•ŠD¡5Ö? €TÅAtänyèp ‹QëÐ NÕJ¦b TùˆñóE;ÈÖì'xëç_%ýr˜úÀ§þZ¿Üôàô>^òéZœcqþLÖÒî:ãðårÂñ|ìUé]Tzf%½V­,ZëQòy?„UE .áý3|,ºº8ôrôÒŠN«FÅ $ ÙA‰åЗ¢‚•¥ ’y|k4@ÌcˆÊI!UP§Å¸¦k¸ `iä'“Î1Ù•ŹTĈE(à8·ý4iO‰èìvRR,‚V§f”¶é?W@Ez¥Ë»¬]B•µ3‹;·-n›ÝvÛÚ,¸óÃ6k„'ûØ\&=Û Ð/†Ä“_žÕ¤¹Xº†Ëª—E…Ãiå䂌G³Š£=åè“ U% ­¿OÓÈ¿ð¤ Å‘9®J¥Ž¦=M:’ÄY7ÝRqL/œU}‡qÍÄ-ùYtWʆƒ&[Bˆ?“eQ ;0Bî¶Ç¸ÇxqŒ4“Nb Î`»Ž‡6:ä•P¼Y)Ç£âÑ —ãöp´ ¡Åð6Ò`Ç 'f ÿØG@Žm‘'P}¥AËÄCg„?ç𞓜=hUª7U:µ%ÁöÖ5¬‹.kHMaѰ`YBXt  ¢!@r)Ê£ùõù+,—½õ7»ˆÅ¦·’oV‹³øû«Ñ™ þTÀãv8MZ—çÅ„¯K Ý·VŽéX€‚GcÓÿEœªpÈ;©íÐ)¦É{¦iòîA*¾“x4*Ýà„e¸_3SÅ%d¿bXätÀl_JyÙ¬ÜÙ{k^»Jì#Ù:4èSåg) œI=þ‚üåæã@T`&e:—ö<€ ì•ËóGgÓýA¥Ê®¡ÑÙ. ÊǦvX¶#\[LUŠ>Ë|ª„Ä \ôò>Ÿ:":/ çG­òøš^¿Âí'ÙV­(V&Š’8XA\ ª€fÛÎÝÔ Õ5a\Ü6šþšb¤Ó¢&˜\ó5 ÿGpòÓœ-õo°@Õµé?Ee[«Xsó›5kÈòi‘q·ín÷=&•QrÙv[àÏ®òèäËúÁë!W‘xjèYCþPpj¸¨–ðÝ Î %·Xá^`!÷µ¨N Õ/W+ZÀª:¥O.g0û¬´W «Ã PŘ“ï•?ê©S9DU«”‰’qæÀ>¸¯?òŒ©ÈÈG©Ô›÷¸í1ITS©KÍÕb•¼×®³ |üìGânh9Oyr*PNd%îtÇÆ”‚Sz3Â|œÝhŸsþ„(€÷.·ª@¤—Öñ4,ÿi<Õú6B Ëš…uŲhX šƒþê? ¦ÒA/¤ñÕØãrPXòÑG9¯9"“ñÙ?óóA¨úÃdIÌ¿OÁK|û¯çðc>âíŒí§÷ÿqª}pË"“&¨š&£UŸú|íÒñ.ŽéÈGÈS”\2™*‹&3vñŒý˜Ç·VTñÝÐâ ‰çÓja§OÅLx>fx°Fðï CÕpo@|`¨ÙO‡çùÑú+g¾IvÍò‡w=3TuÝ”RE/¥9¨êªõœhÕå¾ UX‚ oáú¦Ÿ×p­¼–™Z2'‚ID¦hDW %–!c-êËë7Œ)6ˆ#\°HÛÍv+ñøÈˆ‡õÔ,?`–“P+ÖH{®‰ª5Ý‘èV"æYœ()ì85™•Þ¦ªe5†æ÷šK²»cèÈUÒÌ¢íwû½Å-²ñ©äwn¾›òð¤©n ÓºÈù3[ó¦ÓJ¨¡lÎ×%„\×T‹MÛ:¥å~iJªÖ&•)õÔ4 ͵T¾dµ¹÷¡µÝ*Ý’h,i£´† ¤:}{uÙmJà®Ûh[÷Dýò¬^H¯®Îc0ºJNˆ•nEϯžÆ}‹{Ü·˜æþVF|Ê g7Á#‘Ô¹¥3ä£A-NNâ 2r¸9Ð/ ŽÓ$Oq”Œ`o¾â“ñCÕh Õ¤ ASx‰Ml¥çÇ›®ß¯q`¹ºÈOµ6_®árѰ$–ôL8Ö¶¨ê™–^…ÓàÛ×öà sÈ:êl"òX¨Ú0N^_x2±U¤Ïò¤?•9rrU_qfý…6ÝÃÝDŠ(!žŠ*BÞHÏÍ/Ïh9è@…sùŸðú &‚kQYCz1NZǽ÷±üRE\dëÔþäÚµÞÉŠsXõ©87P2|é™û;¬êŒóÌEÇÌŸQ<œhàŒA$¶ž8Mÿ1á¶?“: gXûÌÿ.Hµ‰Ò¾Ÿ¡ªJ>é_ðö±~¬º* VM2Ú©´ÕQ(*’­†nÎ]µªìv£œHXÒ´X ÃÌK!d›Á„´6J-Ä]ë}9*D©uŸ&DK—ö‘ÃvX92£b£©h7G]бövè¨ÎkO8>¹m3TLÚ“e]ÖËr¹¬—·år].×õúÖKX/a]ò¨.Põ¼ë«¬Š"ªAuYÃzY¯×õí}yÿX.]V„š˜r¼¦ÇÚ²‹gakÈlÀ¡7OA«×PŽÒ‚b';ÙáTáþÉ6Ýo¿'PôDþs¯Œ5šTÝ4/7˜½Žã Mõ¤ÙÎßtéS¤ú,pîBTù€olì® DT±•*]¶;áa€×%©‚øóØ„á ‘nîºù½z–Ál&ðC•“Wî&èe%®¥I'ÖFXxH÷ÕÄsú‡=›þ÷éZåg5ªÒ©TÝ_õ¤0…jžþ„Ëry×·kxSk\«9ÅDœ"L$û±‘2H)At±nÕ¶>î,kai2jªb9™ÊòÔÝ6Ûw‹æêŘE¤cEZú¤L¤ ‹–’ƸÉdÕá`.XoŠd¹7’&f²SV>º]é…‰ý‡h’óýÁüç^Òj¶sßìv÷ÍJs-ÝOë½i¸±»{žkš~Ó—|YÖi棊Ѳ¦9±IzYô²„E3c V×~NÞ×îdÝsÿtjŽWMí¥U_ê«UšXÕ¨œ*9u Ð¬ä~R,Äo†/ÕŸ•ýâÿ“ïö´öæЬ!á$¤þúº&Ÿ Ìbܶýããf)D]£ Öæƒ½%[”ô÷bËÍl¿¶ÊG(dŠq}¯8ž¿à‹'¤ìä_S¾%3OZ( ùÖ»¬—·ËÛÇåãëíã×åóëòñuùøº~|^Þ?.oŸ—÷÷õíãòö¾\Þº²³/ìâ#ØQª"ÕEâK:š]Âõº~|¬ŸËÇûr¹èºê’_J³©¿W“Œ31˜¨ Í*)ʲþýÈë[þq§.»N¿îµ´ÿ?E<ç•¥/Éþ¡:æR’„Í!oZ½ôq0#Aü ¤çpLÀTìÛ¿0”ÆT,A‚f"«ü5%à¨g>ÄòNC0ð‡—mîÏ¿UƒŠ?™dç¡?[o­ä«–¨Â´Vý¥Ö$ëêÇ’õ+’Ýjd`²`!uûd-qvìå[¶\kžžÜùkÉ–x„Î^ï6´BnµÖ ¶ÛNM½©©p¨?l?»Q‹z0TÍ¢ɉâãÔüß½›ac/˜ÂPÕ8|Oô'ýî!Ò:'´JáP—°^Ö·ëǯ·_ÿ¼}þóöùuyÿXÞÞÖË5,kX—°¬º®Ëz ‰d½¾¯oïëå-¬+‚ƒ›•SebÑžfƒT¶í/º®Ëõº¾½¯oËõ¢þB4±­ÐEU ‰ëÉ‘hu™ÁI¶_g|u<Áþ8q ã„úÞ-Ï/^£–N-Ì›±~2Nÿcãÿ £øðçòœ…üé4Ø›KXD:•W·j÷HúÑλ皆‡Åch…&= –¹²aNÂ"ÇùŠ>w%Û¹„Õ‚3É){þJ²Få§ÿ>ÌýeuRþ$cÿ—ùóþϬ¤Ü˜5ö<Å`¾ªžžPcn Þÿyìÿ€M¡T~`p*hž*¤å6è¢ë%¼½…EÖ\ŠYC?K~»g;UêO[$˜Ç©ª³¬'“ M”ÉY”äœ H-¥)KÀDm¿ÛžxLH£ž¤éuæKF©Z"Y ¤Ö*k¼î¤F1µn 1E0š0‘©"–_S,r•¡HñE¹ =!RûnŠg=i{6ûßïvÛ¸EÛmØ£úrJLÈ*žˆk&Â`2ß:bC¿{øtT(²dÑkÐUUá  )-6©Óñ£ôCjÉU(€Jd¦'Në‹M’²YIkÎHC~G0g–EËú8@ZßeÎK2Æä×O“ òx¿|*v®®TE›R(]Z´h÷}¿oñn1åRQæ”](‰Ç€à©iV«} Í=ä=iaVm6û¶§7’o€Çøš¡P]–õr}¿~|½ÿúïû×?—„5 ·fH n3(ˆ"Y.ËÛuY/º¬ž©ŠéªD5ä`©DĦ¼¾ÂzY.oËåª!´g"óš.BÄh…G§Z÷æj½ßËPE^°yá{jñ€±&ß2Ë6°•ö•6?¡½0+jå1ã\~'ä'Íœ=–~ó0Ÿæ£hÞ?ñµ'º‹GÕ¶õŠóþRœö¯Kô.*x‡³ÇÃnT«‚J(8µsÐÔˆW•Ñü}x«¾28žžðµ« ‡¹ÿã?¼/6|5ÿ …~$Ú 0›VÃr ‡'ù·?¾ $Ãq"‹{#°ôÌPå8Svú0D»‹žR…Ç©UôÅ4RP ,Ћ^ßôºê%`ÖðŸb8i¢Yk%`€0I ¡ £)‡v{ …ô'…$0jJPŒ5‰»í»m„¥Î{-±Ð¥6¾?Ft\5™Bú™ôŠ9Õ”¦£µ_rlV½€´<Ù-/F#˟̺\úùuÜ’£›mXÙÌ]³ŠÊA‰Ñâ=¦NÃ["ØŒ±[3Ð…Cò;lPsÝ!s~õW Î×Xx ‰?Ϥùë岬«^BaàCSSX?“M?ÊiöáS.±¿%T(÷§jnÚ#G®EiPÏù(Ω¤ù¨ëcÎÉ*¦¹ZþÇÄòÖéb~ÓÚƒ6:4."%P­:úOH™+)d÷Ž¡×\ð,Þäœ=õ†CU1¾ÈȤ¢“Öœ)íÊ¥8££kK}`â·I x ð˜UÁ¥YB©…Oå0åDÓëQy&÷_¶À}ìæ/fÞq‡¹ÿl²>–V`2Ë:?þ½ÐìûŒüev­¶÷¾5Á´‚W$'ÑV8ÿÿx@©â(+ÊøbHŒÒR{Ū·ñõäj},RLp@X°¾…÷«®ªA0s&'ŒbèÏ·§L í)S ›ÞD…‚L¢éGj“ÐÜSºÙ¹­†çsôO¡áñ=>V!2=#ã´ØÑRê–ˆ1ÌÄh–º ò»0œD‘æÚ©ùÊü.«ëa¨ÎÜTµH´Î5K'UÞŒ4„¥à/±SZcÄPÆG5ê*¸V”göY ¬\ؾø@÷¤Ž.F}X1h—ZèΙj9¡WÙ›Ô{¶@³ÿ›B22îû}§MhD§ûB§µ>I9D7ßòÁQnƒh…¨ s0G mð²ãWNÏæLCœ ~ ê¡Q¸|ÿøõþõßëǯ°®é^© ÎÔÆ(ÙÖó^A[+øB¸„ëEC`z(KrúmyÊ¿,‰Û¬Lò^ÞÂå¢ËÒoéíkè¤yn ’ƒÐáÁÚÌΡS•3ZO²| 1>ÃNF›?UÙq°úÒŒ‚³¾9߈½Àþ±’®äã"¶Ÿ‰šÍN˜û¥41—®¿‹ÇI›ŽAßyã¿^œp!§*‹å¿åÈè¶àêæ¨òÏ(Yéá¬á¢::r—VœzàëO½ÿ¯'—å/«¾L5§$d?ÌåäWügæ.8ÎØp°¬ 5=2T¡‹cätúï¤qž­=«NÐu¬ÂéœQæ^H)ªë5¼¯z“ªa¦´`»Ä[í¢QB£&iÈÐ+aÏš8…Ö?®š—1Eþ« (qg̪ͺ è·zäÛrß,ÇÃ'È“¶6˲Òl?QM\Šåƒg*¶2¥0EPIšÌR„0õÛlV+Ttlž(®TVN]/ H~Dl,É©ñv·[z›I°ØXÓf²¦ýÐ}Dh¿çóà‚£¸¬F8sÈuö¿UÍBX]—å¢e*Ź—ó¨2•Íbþ©1êéÒâ=q/%ÃL©™EÌ̲« í„>PB-œ°“éyw"^­ˆªÙ>JtTa#q-ŸÎÚÂGšsÛÅÄ÷-Þ÷ýÓпæ³S™"‡ë 7DsNžLƒz-¦+UoÞ›RZîñ¤Ÿoò'žŸÈOðV&R¯ooŸ¿Þýw}ÿаÔÅpàÈGŽÜXFêÒ¸(*ŠÖ‹† Bš%êRUu º¬‰Fõ¶49×kX×öW‡SŸ'¹*÷®¹)­¢Oƒ¾7¦Æb°Jýˆ¯™)ñä)öÒ¯Lq8ØŽÿ¤O]?Ê0aÀŸŒÓ_Á"<-¤z¢Çë)dxzœÈY„æÔ¼¤:dÂYëÄôù;~*|¦#w¤Í;RW”Ìõ )‚ ®Õ?5o…åQ¢îܽ© ?ÖN4¿ÿu|öX½íõDâñËŠ£ì&­ ¬› 㨿Á¹GëÑIÄoÿf_ëp§êáhûï•JµÓ:X[(%”PÕ°èú®ï«^Tƒ’ÂüAaÒ¶¦K)â¨(SÛ{¨©V5à°8j®¤’Ö¦ $nÒ#·»m,m¦æ¶Q…d@µ´PºÂšâY ÀLUIMæ›7*çIRb£IÌŒKζ~ž„H W˜D! b<‚ÈÍl7’Eîï7»Ýã½6QÕÐxÿþÈîÑ|Öè­TÎVú¼­Ðl¢¢k%Á0˜ÉŸµ ‰wº,aYdQUŸÌϘZpgšç‘GéSÍJ­`µä ²„ÿ{áU–´j;–±¨Qê0['õ°š÷‘-…SmG<’ —ÒUi88çZJZLœ®]\9i{ÜöxÛ¶{Œ›¥Š5øùAµÛ1bȤ꣜}Ÿ)äDLT¿q˜ç׬ôö<Ó ¯ªÌµ{w‚¤87PNb<Êsw+áðfév=é^¤ò]<(Ó’¬¹Ð!Ƹ广íd9ÂgW zÈšÒ›®ëƒ=®ä|×dö™¥†÷ªÈyq›/ñYˆÒÓ„~ŽžžIãœ[=™‹qª”ŠŽC·4q‡XÚpØõ$ÿ …ÖYi½Ì0™¨’Ók ¨¨ºï|…‹Æ-VNo‘I‰ý#äG?˨šò©x(ìxMÐÌ“ïÿûý¹‡Òbæ%ðæ’É €éá ßôœ«G"ކ*÷ÀøŒ*O©vB]µ9F`[¤È‘–Ëuy[uU„Ý_š¬ïù±RIþé+J|»$W5UúBñ¶ù${ȸIÜlÛ¹Ù,”çP¼&’ô#wï'TK’šÅ‚¹Þ(9¹¬ fÅ(MŒ’(RÖwÒ[ßK1eò—ºÌšK•ê]»½2ßeQ¸Û¾ÅÛ-þÞìmO¿TzßD ÞìÆ‚2ê,­–ŽÖÖgCŪÙÙpÄA'§NÔµ–5èº` …Ôî˜ÆB¸×wå°Þ5J‹&½H*°NCZÕ³%Ú•©eù4ÝpHa½L•ªµO·Ì®?¢Ö¦¦xµ"…žTs„¿ð¤AÚù§®Z²vÛ·xß·[´-ÚN1Vó Âçá[o„ç¼rnÍç×ÚÅ$s¼©8G<Øø§Ÿó2XyP€•†8a½¾}~üúïåýšN—,U¶EÓÞiÖ+…3ÂeY¯o.f;÷´ŽLÕd/º„®ºŽÎp<àÆ"H@5©™x¨ácaÈB©ž\³¡—Ï"Íf[9f½’„ŠÙèšò';5NÏUçÖ•—c[èú÷GÁû§®Î9!—ÃG²kJkTþƒ¼$œ¿³I¦§Y¹§#qñy÷Þ&¶ÈNA„/£S¡{ãc Ö² wÖ—žÂ~þÓ>Ó§>8Eð%´‰?º±¾û‰CÇ RAñ×eËH*u.ÿAîÈÓÃR9©¿/ØžŒüÎäqxn¨N(ÕC{ª8æÉ© 5æÀUÂ%¼åÆ %E”l)•àQM9ª)Ã)ÏLÅT5gTiß _œ¥È6‹wÞïqK¹3¬¦÷–11-îø"¬ušt¤“±m•1c±†'7í4Ò"£¤˜‚¤²zðµ@Oú"· .JIˆÌÜnîÈbÑZ‚d´}³Ûïwû½Å-2E¾›Œ#Ò-ØE=È™$뎈•˜3sƒ0ìV1 Ïò\hX,‹®! ”ˆÓö?lSS1jÊÓ|œo-SͪT –Dª(!ü…­|Yä\DQÌT-aRiÊkéØdE×LjÜšá…5OÔ¿ôL+ÂÇC5þ`þú°:9ü/×·Ï_ïŸÿhXjüEJ$ó‚;ôõEµ¤€§pf‚©1©ër¹†°-nw‹±µÁ© z½„õxï fEÅö‹y}O(ÿ–øý=‘ÝT4û‰õ)¾2—aLa eö­²¹bÜN_ù1œÆ“gƒ¯Jž èJ¶,( |”sTvbfÚÆýÀ’ŸÃÊ“SN”cxVÂWƒÔ À ›‘TA«?å›ãn<¦wÙ>§ÈÃŽ;K!2]FÆÓŸÜÙÜ_Fòþ\¢Ê¿Ë¤òtù„ „U×ëE¯W½^õíªooz½èõ.\V],šÅÃÚjü6RdUGY†ÿ7‘ Ÿ“L2ªëÓÝ8¸9÷SŒÑE×0wø²È½{Os'ºT(T “ŠåpË4¬ë¶âfÛfÛf7ƒ±º—Øî¯tjå®V·Seþ,ÑÀÞPâÚ•dÎHAÈdMfRi–õ¨,è3m!š¦uÈZTEÎ~+ù‹ ݰ$6ÖÙ_†·™Ý’(1Ú¾Åûïøûo÷hÑÄÒwÍdÊãØçÄ[íO³†»xjü3A­}:Uª•\–e]tU š8N8›>ª¿‰y£Î\¦ªŒ¥¾Ì=UšYIja4ßZNÁNéItvªI›4šlY4P†N¥ÔªähÑ9_RHV=ù «*ƒŠÐ Ú|X¯•îÆ¤†‹¶ïñ¾m÷}¿GÛ±NÖñxB'má g‰ñmã*>Î}B¯=J%ß0Fž1G|<;ÆæµÞ^–åúöõþõŸåú&¢B;ÜT÷¶)‡Æ×®qÝ̸7“†°ê²&BDâ¶YÜh1Ýc Ų,—kX–ÚÖ€C¥Î!ÀË?^CPPˆR§RSÙÛÒoF‹dùü?&î|/F”ûõ§ÿT7æUS¢oܜǵág?û‡ß?ýîo¸ƒ‡Ÿ*HE÷÷LÇÿD±ŽË^³RM6ïõ§ŸÎªÊ¢P•9ÄšO&ââSx||ü3\ ÈðÁ«/ó©ržÿG é_ƒª38 AeÕõ¢—w}ÿ Ÿ_áë+|}†¯Ïðñµ|~„Ïðñ>ßÃû»¾¿éÛU¯ Ö€ …>9© :gUBUÎ,_<›þˆùÃôžu2é­|#™Å,óë²Êªe{7)8Ô­âÍc¥Ahµ MÅ2:P‡·Ia”ýÎm‹¹AtpÐi/ÒùÓDk1@qx±0m<4FjŠþGúú$H#81cŒbfÆÄ­ A+‚Å6úf Ï–2¿ûòÀ45   Rq‹Ûïø{‹·Ýî»m&)‹ƒýüÎï)N°¿Œþþ£<Ò`άú-ƒÄ¥Þ!9j7¨]‚®‹®ACš¾wÑnÕóÍ“-måQ–f½B‡§ÿª}¢~»)s̹oK貟­HN¤†¹ÙZ^ÊF0ˆ!Ð$Ÿ©/¸»0”Jìå0 ©ù5¢#…qÛöû¶ß·¸™íô\;vó¸3x„‡²AtçÎ öãÊF—uo÷QLyy°ùV`ˆÓÙWiëåííë×õ㟤€Gï(Ë!‡0²qãsqHK¼I,fDt¹¤¨TMq¼qß÷D©’õiYÃå¢añÃ(ɺÀšì1œý‹2Ð7ÿ9b˜©¥OÉÌbã3×Ý"ù€#቎•i‡F÷_جû.Çùâ,?aÎŽ3 ¼DÒŽ2ÒzªOQ©ÇÔPôë0¿yC.2ñ;ŽÓå€%pÚÛ´™JYÒÐIÔ5L¨ùw+IÉW*­0å‘HïÌ~ì§"?åSpÈÓhÕ?@û£›~L§B°b} oïúñkùõkùú ¿>ÃÇ[x»êÛE×ëŠËŠD²®¼]õš êE/+E¨Ñog‡¶ÉŽre{tXùÎ!×êŒRí›T%?ðX½WÆI ,0Å’— ì´Z%'Fô‘¾µ#IÿJÚ8+BEªUüA’ãï[¼GÙ &ÉÝ”3‚jûe{i©JUó”™ùÇ2ÇáàíH¥•Ÿ”êh 1æ *[ˆiálófåäK·&F˜ÖöŸO\4hÙÏÅh¶Çýn·[ü}·Ýî‘VÒ¯ÅFžUÖ·Ê<²¿¡ÞK^‰=bQv‘1šª¾ˆê¦ ‰R K@IGwìú€Ò¢0T$Iˆ¨úûVkqµïçÿE™ËkåúÚ ûr–ÀÉÚãN÷Øëýë8V៵"®ÁÁÅŠ¼VÊϤj(Ãè®HKhû·}¿mû-Ú–ëR½‰¾µ”ÕÆÕãö|’û4V{s x˜ÔUæîY~'gq>#Ñ{À¼J&8—ËÛçû×ÖË%I8¨Vªf 'h»r:àxC×›^UÖU²… ·{Ü6Òҗ躆Ë%h¨3ÖO—.³ p¨ºwük…Õš=Rd×À9–dŒ¬Éx¾ðà uäô¿‹Að,óøTW^ù3Ú³ ‡0²Y×ꦪxá= ù ³¿ÔOÏë¸?É Eg-º=”6t´CYk¾×yðlzDz֖ì• !ƒìƒ-¯ß‡o=‡NsÂÃ;],ñÚáçœzXñGEä´ O#ÒQÇ Ò½Ù~2¾„$˜úöùÏõú ©5cxq&R³=Z¢Ó—•b*Ð׫àÙWOYNXÜ÷ûoÛw¡ha¹`YŠ`ÚÍpÜJkÁˆkµ––êÊ\5¿3æ(¼ãÛ©4˜NÓïjŒÂŸqâçØZ„ÿìçœU üˆí„‹*"xYþòôÿf²cëÇcžöHûçÔ‘€Ú;5}¼Ð[™øÔ[†¢uJGCPf)‘¥ˆc¢ju.çñ@2ûtÕ©#]m0†¤£ÎùHvÏ7S<Æ©µ½äqœò²Œ;ªË–57šVͲ€÷ß7Ûï$4,kXÖ¬£î_4瘚FºWçuÈ:lhþèÔôJãi‘=Ó@º¿¶]ò¨Nÿ3©]pùÉ,Ö|fŠ&¼š)ÄoÊç²2#1O…ßMp‡æŸCK:q1»÷7t7ãÕk'½šü–uŸÚІøŠÚë’‹ HPWÇ>Îø%SÏüù¾g‰Fß–7‚[ ³áNm7>k8ö¾­ò·µsX“œ®È—a¾fJUBkHã«”{™Ú¨zWU©,É (XNå9„ªÁX¤ «4M—<؇d×R…¨Òê¢z¥ä#TrïyM_±Ú¡êT§ tµ/­òp‚IŒ2µ¢WÍç%’ã¾í÷û~ñf¶›Y5vNÖpéùôÇ“DÎy¬3Ú#Ðåc#-/í±ø1gÅ©¥ˆS?®ï¿–°úÔÑFNòØýšÓ¨êtsð·‡-×P !, BhOkŠ”ˆq»ßöí&4hËÖ“âÆrë±Ïãp!ÁpÚ„^ ^ÙJZÜÅlœmKx-¤ÅÈh-rÖ 7 Í]ø7^žQâÏNµ¿g­^Ç„Ç #Ÿ—Þ>'^§L±“†˪«BKn¼M08^¡É9‘çfí¯P•}Í´âTáWDø×_Û Ñ9Á‰dLŠRÙ7Þïñ¾q‹¶G3Q‹)qEHaŠXrÏšD3RöÍî[ܶxÛä¶sÛifÑç·˜_åó.ÎIíë¥.Ý”O%¡’Ö1”¨0ˆäqÚ,ŠcÝ&ƒÉ>a¨8Äè„m¬¡?,iÝNÉê6þu%„ÑânÛ=Þnv»Åß·ÈÝ$²%÷1Ã|eJ唪cý&Æ‚ÝáTÜ,&èìT½¹J:'³sS¡Œ×‘s…—!„UTUõ[:J)jžº„¦¬Y@•YºêÏYÌÿµÒYš¢ Zßu9©kÎÔoöQÂÀ¸Œ Å?î<ÕdW àGæðL3ÆSòÜ RÈZÜïû}Ûïñc̰AL2>fA~I*qüî^ÔGª™µ’žX0 ŠA<0Oàü\IŠÅÕªÂzyÿ|ûøÒ\@ßüXGÝöÕ<›(oè¨Óõ‚ýLtY‚.PEÑú¤ßBZ¼ÝöÛÍ,jòû/ šXÛÃàC÷ :¶°Ò¸XnÌœ`'é°,½À¡ÊBH‹;ã^SF^oÏug?byžøýÏþPN½OfevÿQ=ûŸ…]öŽp<ŽWñ˜¡ÊR‹Ç?áÔy5¦S‘ǘr¢ ŒØå‰Ïm©lkåé%ªŠZéÌÆðœü² íÄÙ ûx;ÁcÛÏ|TrR]úÚҳϿ½`ý Ÿÿ,ÿ|éW€ÂG–}ÎõÓVƒléCš)_»`À£D#kãè³Å!u"Tí“kÆÙæÞ ”êãé?qî“Fî„À’`û&Ûf·ßvÛåöÛî›m÷¸GÞïÜw»ßlÛì¾ÇûfÛÝîwÞ7î©kj3KÉ%UÑ WÅ*V,(m0ô K“¢“ê¥ c®bMÀ iIêe’²³scxn»ÄjÇ&IhÆÀ†–ÎQ2JïlöP•§-»ÊògÜwÞï¶Ýìßû~Ûx¶Å$‹íƒñœuЇ5Êsè~›ýЧCtÐtLÝ´C#’mÁé~oèZÍ’Ã_C"©4,(9Õ5sÊßl‰fM½.âÔS RÍöZéÑúÜÔÔ¦õ!9Côœoa­)®Üµ¤ûæ_àGÿ¬P‹ZWû>( ª¹ÒkVhZÜã¾í·m¿íû“25ùg¦íE˜“ÖÜÓ¦ûaíÁìÄÓåTu¥84®ðùÉîl»ÄlLдFÖõííórý µå·†÷s^·Äq¾„¡ÙÀ+û™ù|…†aEkˆp¿ÿ»ß3F’×Jº8ri™þ9t›8{RÔSÍ&‹¤i’Š]Nk4ÆÑê)ùEæoP–4£_Ë9z%†ÉÍC‡æyôŒb“ð  #‹ô'×iõÕ‹Wx„Êó¸¹|Àwö)xnfÖÜ.Õ,‰¾ä#)ìÃs|Ê37ÒÏÁPiž&‹æ`ëR»qÒÓé3kޤëë?-ú G4Y‹›èBúÄûËÅ“^Ó¬E¥Z†Ã‚TK°”N|ª$4k–kXUYÀ™C¯ëoÓÒVÕºø˜ yÃIjïB­Ø«¾}¨æ2ª†ÙD@•nsåÔR#áóßi—O\šü$K´Òí¨(FÚf÷}»Õn™Ó2…s—SST¹%¼™®Et±™Ýç£E—K"OM÷Žyþœ«c“ºª#™Ê'v(–Ëåýc½¼e¡Åe&¶Qûb×´Gbúæ®lqN` ]M!ÐC¹ßï·mßS@XÊ·¢ÔcA“0wXp[ÀU—•=ÇhV³Qj ­tТí™O…@~ž?Öd9 ê<“FqÎ+\žïÍŽ9ÃÃì° ˆŸÖø£ˆ/¬ùYêùÚúÊ5íFúyMÇ9.dj›ø7?ÿt$½ò[xÿ{ö¬Ã¡`âÉËÓ² êL¢V¤€-…°ÓêœLVÒ]^¬X«qsrô"f£­ÉZóÒÜÿÀ—€Ô)Z}&2 E¥~†¯Â?oáM›ª©fB³“ü¹O‘MÏ…>åìtúZ·pì²ïÜMìtÏYN9öTáYJÕý{:T‘ÎsâãTáÉ.Y5LÚÒ-ZØ!1KöùìLJ©€{LvV¡Ū{4²Åº‘]¥Ô_šó@4Æ«ßBÓ`‹ -‰ƒ“4Ö,Æer¸iF l®†TšK®fÿŽ.ÍOfÖžRL@ËišÎEe¤Ø÷÷›Ýîñß›Ý6Û"7#™øèü öÿvÁùh„zˆ"ÂD³Õ|èIý1eôLho`v”|?ÊÏ“~…ªjH•Â(‘æH´æ8ý¾@kCIFªY¸Ød¢””*á £³¦Ä³*3N7X'i¢´ç¢4§jÒFK ‡]º®â4ЍÎ9"fû¾mûïmÿ½í·-îÆ˜e&½wþÄh;8Zh»IZL<Ý˲^Þ>ÖË»–ã‚6ÇÔaWÌ•DóGUÇ>–SžjU°4i´î·û¿ÿã.”ìVÜÑÌ+Ùš@jR––¥iœóž¡¨E<¤0î]†¿£‚+ÂfŒ¶ïÅŽKÿàöþ@gÐêòÿ1"+é“é{oX§n™\Ÿ"+O„`8…M™Vé§$€ÝÚˆ!ü,òÄÁóS”Ë1y¥M?:ê1{§´~ŽÓ‡Ï)¡³2žÆzÌá,¹l˜Êð™$ôLx딪­Z´ŒÊP °Ã дlPÕG€²‰Gy#¦âûãTù.6â囄/2ö„7}ÿÏòÏgø u¨Üµ,tÊ 6–kiä<Ãuʪª¨Bqã9í,8¾Uk“ÛòÜû/]îtÇÍ”Dç¹óX•ÞnÓ~PéPJ™–âú–â–RàŠ ¥°ÈÙN_â£H·œ[׿dËT™–ÿ›Y5c=p±¹MRâ•E É%›:Ÿ$½#Ý‚`ÈG7æó_­ŒLbÕR¹U† 0¡šÜX/ì‚ñ)ŒŒ›Ýïñv‹¿oñ÷=Þ£íQb™ÿ\¥%Ìý#t”£/BNô'Ã3Œ‡'¾®‚ £ÖƒÔöuU[  Aƒ" ¹/*-ÊèË“ŠnUs–ó)'OqxTÜ®,E&`ÒÇ(B¥¤&°(PSü?ºzÑzÛ¥¨+÷î¡åYÐnƒfžd‘eÎ 9_yøäÙ÷ý~ßï[ÎLÝsL&ªOÓíX]WˤÎq¶ÉC,;¦Ó‘€LÊý¡æÑú`0øâ Ër¹~¬×7ä|ÖâG=<¸ÝéÞQ>Â6Na˜=e‡µ†AQ)å,#Æí÷ÿí·mÛE˜¾RÃ2<èõý˦^ªÿ€~ÒÏæ¤¥UÓìHÚ” ž¶ï§z}¬›Ú»9<û¹ ¿Dž}|æòéOpFm'&šûe‚¸d¨…é“f¿Ñ:d+x`^ÇÏ0Êë\/oð.ù¡òø—!¬¯2»øãõ _?S&p¾È8/)…ѳeMÓÒP¥ÚÐ+†'³K«fË ¥'S3²ª•+Y4u+½ŠSg×xN¬âù3ÐóÏ`òn\°~éׯå×E/ƒO‰={G¿ÃsxüNüc=GÇeßx߸³{>"Vçí4YuF­B4+AÉ¿÷7.Üâ+CŒU7þÒU3TI3HddQÄšÛßb“œ°ÎQ‹—?å´ëN,ªæÞ!’b4}8–Õ¦’àòN‰‘F2Z4‰&FKzМŒ«Íe_oDâGSª<Š^;«];zÙ ÕIáXr9¹oq+ý¨¿ï¶íÜ"c¾I™šÑ)Å^^êèÖi­sfƒõl {uS­²iôê¡·ã±ÃSá]‚,@²)ª¶HT¸¯O:´i":ÕÉê«C–îî¬ú'º²N^áßâ3µs T»* ÀE‘ª ´ŠPó'¢`ŸS³¹’ @)-îñ¾í·mÿ½Å-î[š3Ô`$ôä, c'íX 4è€ ùÁÉ ÔYùyrú9ü>P›¶ÃïÀ.ÏÌhX.—÷õú®u‡sI%Ug˜4¹Ö ŸPå¸"Œu)¨j8´öÑâöûßíßcÜh§j¨)ДAÖ­¥Þ‰ç´Sô`®Eù´h{”RŸ:Ø EDÌlß’Ùÿ›Y.é/žð?LFÅG=ýþÌI“¸¦z†gGøräcΫOŽÕµŸ$r°‹ƒÿ–ìPë^‚TU»J Ž:Ïá g¸v™¢«+áíÇMe¸‰Cתþ˜OÑã“+Èî“ó'éð_ÞÂõŸå×gøÔ!™:@ ¢>¯}«ëIšœ±´sßxO²ùïõµ]käùôÿQÅ‘^C¯"ñ€¶÷þ»û¥ABfr_sÜ ­(V%¦™{2™Xd$Szän©J1V€Ø®þ2X©&JžjR¨&±DRÅäf² RÍ$Ó¯(ÚÒ,U…¸2•½Xá@j•¶ `nÖ*"ÒjN›Ýå!1±hûžŒSÛï›ý¾ÇmO²Ôä«ífÒOf«üî  œRÖßÜ^Ò+TÏTa8ydŠì§Ï©ª·— £—ô  €"riun-UtÙi¥o#¯P™]mNÄâe«iTÉÚ¤ R³ýª.ÛÅRU”,ÉP—ÕO-§LJ ÿH0¢Ts[í&h/Y3Ú·ª–¾`’4‹vß÷Û}»íñ¾Ç¶[bë½Ðtm;ñbV‚-‡²ï.ëé`³ñƒ3JoªÂQ70˯óÅkdrù”£Õe½\/×Õ¥JpìO×5525).'Mà8J@Æ©aI”*§§€Åýþÿ·ýþÿlß³U9„°,åœ%}q÷Ñ·¤:LÁØ•T£Å-£ξj¤³%q·}OÅyº­›oÉ)˜[|ÎSÝq*ÁüŽ òþܳŸÅ¡œAº³×ajøD倱~®8é`_ÔµNi½¡ÚÙ§TËç¯Ú¬Â´E裖 ÀTB"åóBÉàšÆe“:kuCªBUÁ­ø¡@acË«ë?I­t`J¶#zLÆP{[š=ªíwì S„@£-獵< ’.šæ@ff+H¦™ÛÓõµ«¢%w}BŸD£Ô#ʾ•L}îy+e¯…gt†#.4êZ¿È¥?DÅY…bá©àsRáJàÕ©^>שòýÄO@ƒ„Ûíþåë׿ÒýCó½VryÒµ¥†ð£z'ïOH·›ÜîÝ Õ‡ˆ¼ïÛÏïûãQÊÑöš·v»¥˜7 ‚ÑW­<mŒ‚9£`¨nK>rÉ£GwNÚ›^ö½ì{úóuíÔî«CÆyªÿ[;2/F‹:4#74U ‡\¥´ri™Å ýÿI,—oÓ·@9\3TU­·™QÂ?)Sœj(Oß}{®5ï¥:-½-à´VÇ!½­‰ª“&C?³ÑL­£2ç¶L!Od»ãS¿üC8uÝ5¹üáç(Õ—˜¯3éã¿oÿý?·ÿ¹Ë8« Ĭ*„‰±ä< bŒ“ÀõŽ}feë×!¹sÛÊ^˜Ï¨ùè`{1õG8ý·ÀÅtßh‰•†S[¤"¹Äòfz]† 5±4 ûÞœ³4„Z˜,ÇQcXYÆœ™ëȽe”¦^(  ”ܳóY+®ÉZ^u°PJ.)Y {¹TwÓ} Q:ø&× ™}¡-=»QZ]L›ÜH©¦. +9’óQ¶­<ùñÌÏ­<²Ü«~w’»Î=s±¦|p`}‰óôò^&.ˆ1.×Ö}d°>++XR¦PçXØ f´CYxªÉl·[¤”ˆtk²Î–õSÇì©;©úcïP™Æí‹K©2A¥Ä¦ZLö¢¿”Z®zÿs”ÎJZuN#-C«FúBL¥•±å#G~nǶïÏ=o¹Ô2¼4Tª;ü.˜gÀ­@=Цô [ÚÔ.#}£upÆb˜sÝBÛâ„‘ä\Ñ`8¥ÛýãË·¿nnH¶C˜É–‰îÖÕ®¥ç‡ï/ÝÒ½õÜ6<ŠBîÛãùãïc{2—ñ€)Ýê„ s`)vPú-©Q‚Ê멼­Så8êªuÅ s.ûQŽn´ k ÎiQÄ܆e„OD'Üæ‹}ù„ŒÇ¥”µbV}7#^ø …Á¢Ü˜Åï!•Ï$D€¦Íbš¨’`¤9;•+Œ$oNß©CßLêDT bÞø¥Û訪 …– Öî îb… ÞŸÓÕk}çR½UtP•3²Š|ˆ¥HàŸâTFù©goß»Ô;N¢ÌÌP éKúòÿÜþç¯ô_¾ÖD}ò*;V3M3‘H8Óël_s€ì«¶ ²•ýÉGîÖ¢«ÐÍ$–Tq ú×—UàŽ€£T{‹Õ„¥t±ñ¶fòÜÔ˳J2çš]*å(G.ÇÁ£†Ue?š…YX–6–-E(ÂʹfRP²¬ãþ*÷dÎu¥G)¥¶H‡¹3&œc<^b]Û‚©èhwI$3U”ª¶-ͺ› *"5ì`ßʶ•íWþµnð? k­À wæ}Êño(±8¿k.ØÔ!}CÑæ§5 ëEÏÝfäïc÷´z^/US,(C¨ZÙÜ0œP¬õ§ÉX…€ÆÁöEŠÍÿß…¨•me¯N‘”Rý„§³nŽçûè•P¦.ºÈ£@‚µÛ·gH(¢‘ÚMÁ\SÈ"¥ù(Õ;õØG.GžATs¢Ö<ú ÍÈll!p~ûÏ}Ä,îËeˆÊ[‹è˜aÚ /~=±Wì®jBDC‡o­À-Ýî_¾Ü?¾Þhc[¼Ø ë"TLÎ,51ØT‰Uú¢N)Ýn-¨¹j=˜Ëöø±ýü‘÷,ÓË”îé–nõZÔ°Ag1(ŶŽìWùÌ'®òº’sÉ™µAn®Ü¥”cÏÇÁ’ÁÕê¼(lIêôÁ*C9!Np8½ÑRÉàEžb#‹4KLºßP+Ô½Äós´×™BñóãÅ=‡þ©_Ê×[I',âQÞ\G¡*ÁÖ¢Œ†¯‚ž³©jU`Qš49`º5טn“&D”ÿ@ªpvj4¯Ú1jèþ„Úé·Ô:Ùú›ºµxeÇ©!Ñ ’ww±t•6V…I>îÛñ8öçvö¦úéOP'µ€@ìÖA“¤ocˆ´ÆãT$õ„½3,¤>„ôSaɹì[9Ž`°š—¬6„ÓœHqFQþë3ž‚Ú_‰«i6%p½MòçÒ_ABÞLýmàòÆ×28êJ”ÔGFÀ%Ðå)‡g”ßxU¨`T¶+×ªÈ d„žáT£˜ÎªÖÚ9æ q=’EbPâ;ª–›yîÝ‹ÎÏxô Þê©V*&UÑF”CŽG~ìÜÝ ¨ Æ‚¡ÂÓÿéý·ŠF=ý‡ÞNါ=-öTè^SU’°²éGÉ"9Kf\J•™æI£6~éÑW,ÕÖÚ€oõÎ×Ç­¨èQj–Ñ7lÎ$¶öZjÇѰ޶ "ÕIBÑ*B5…R!©õG(yã¾åÇVüÜòsçs/G­uh •Ô:9uD™³Xªå<Dp)X´K¢Õr†,ªÒ*³)씾zu¾Z2Â~TêlîE•’RõV%¤¡ì„yØfš¯Ømš®8âidIAx^ª¤hUô&)²¦ HýC¤Q*Çnࢆh!dšõCê½›]BÀÌã8ò–kZêvä-Wj‰GOkW€Žá ¦ìtž¶ fÔø..‡12¦5W£¿É®:'¯ÜîbÝZÄ^ëãë©PºÝ>¾|M_|E6F¬S Òí"ËN®Ú”‘ë-"!¥[¯ ’ÇãçãÇßÇãÁ’R®~ð·”jÕªïÄÜÚÀØO+Üy$–\ö£ä¬Las4Çœó¾·x'é0)ý)›z|¡lZ¿{+ÌN†3x{ú§§‡” JSÖ­VE¼2þ9¬D#8gu®ü=´ŠOùж[•¤.àÑvŠ·ü^ãQEo,£ üµ:5_’É8;Š ·¹±! HÔ Õkz²Ý&^”Y˼€6ûÔøVÒÿ§†R&ž(à wpœÖÏ;îßÒ_ÿ}û¯;îFFŒ"·dxÂHfVß»WkÁL[^òØÊ®ÿOË+᛬ªU¸­¬ºÎ%\Ú1#¡ª¢OÇÑE\Ò»`F‚Wº´„|z€’Yêd¼HÉÒtœ¥šù«Ù¯Œ ö@ÖJ¤õDT¤Ñ|ýiÈIGˆÇœªB2…Izâ€~æz+c³êâ=Ô®Ì|”c/Û–R]SÏ£l{Ùs”UÁSœ’XOnº, Xw¤;pY$`‘K¥ô¢S¦ÕtaÑÙh ªÝñ`?XÚŒ@M†’p«áÿ¸ÕDþ¤’ûžz&ˆ¤9ßÕG­ùñv)9DJ+SJóu•vœ/i\<’¤¤^)¥jÍÿI 1±iþ•—æx•‚",<ò~ìÇcÏÛ¾?¼•’ëÄ|†Ã¦»©†ñ#•0暈$zËbâcÇ9Í_b‹{>ºB%º¹]î/?ߘ¤s&Ün÷¯H·p­kÚ`— =éŸY­ª%n_?Ç”RJ·”’H’r<~~ß¾ÿ}[=eØ­•õë‘Rªa¾ë&ÐJC8Åý„æËSË,Â\…§YíUíRaaÞ²ïÌÙË!?F0¯ÀÞˆæ£!ƒ¡ÐÏ¡©—ïXæ×¤zƒÌݧîWºÍ“G<¡þ´QûsãÝø;ÑzëêÐ?áB1`Ï«Œ1Ö‡Òì?ÐØÌ Rœ0añKÖ‰ªY¨ÞÏI»@û|íÞíŽÙÞQ^[© %ªX.'?O;ü‡8õì.úG½g±b’wÜþJßþëöß÷t?}›…Ö7GN›5àe JâJV?~Ýmæ_å±ñY Ÿ D ³‹tÀëPVÔ u2ýײ€ï¿‹¬ši"¢¹®¶hé"á’@©2˜úq©vV•ª ­ ¬3™µ˜jê[éiØ·ÉQa(µ‰ˆ~ú¥Z§f+ÀC6é¶š‰·Tv·EÝ€ 3YrÉ{Ù¶²måñÌÏ-?¶²íÜ÷rÔìØQæÞØä >µYêÝc»Õæ,e”p³e½ô¨:F%ÐWfÊRÌq⪢2ýùdÚ•}QT#VnU‡šRͨºõ,ÝÖ YÕƒCË—”úÄž•^·jv€Á/èmS4½=½V°„HóÏ:úØÂ´Æyäù—m?¶íxìû¶çÚZÖ•Ž’1‡Ç¹|pm±÷ð±3JpÕˆ5”>g.’™8ˆ"ÔЕÑ9™rR˜Š÷T[5¡ê~ÿŠ”Ì¶)úؤëFnWÒ‰ªb¥;áK«‚⊷çÏçßÿÙ¿J>b|ÅjQ3w”ñ¤^õ„Éè0£‚EXJ)ûVr¯ü¨·EjçéæñÏÇ”w˜(G¥õ‹ÐT- 1ÙIçÄwic¡QìÇŽ˜G]ZõY:` U®=i çÉ*¯ýÿëðÿÄœTNó„êÆ¶¨û¼¾a0ó§ZÕа¾ºýlÙ˜\ÿðÀ®Ø€6ý—öo¿:¬ú‚A.Õ(ÊjQYöK ÞYÁžw6w€?ŽSÅž%ð{ì;VÜqÿvûö_é¯îQ“U •yÓ-_Aw`¬&„«›E8€ Ëñ+?žÜŠä¢àc¯áÆétÁOOQ&€ ]]„ªó«Ì·À”*lj†˜±.?¢©#$”RJ!jÞjK%KgaµL€h=·/—+a<…oÑhRÿ>–ñêS§‹HfÎåØË¾sÛòóQš¯+Ï{.G–BæÒ§¬ÃF3ÌþMd N?´²¿w6 ÿiR©†1Þ-jΈS(±óvtæz"4›éÔ&CóTW:Z—ÛØ&Ù<Ô‚4Va"¡™Ø"ú“’µ©ZàÔ‹xIÂ@½dk.k9j…>¥ë`{Å‘Ìl²a³êÈcêUëa†ÌåØmߟÛñ<ú¸¿”Lö)¯×¯äu‘`“jµ²»€Þ\÷*%*ñ‹að+‚©û²xÙNE/EˆrÊ}¹”-Sk€t»ß?¾Ünwý`¥Ç(‹ hÙÃ2./ª 0Œ¿nUCº¥„[ÉÇóÇÿ>¿ÿk%ª­. QŽfvQ&”H/é|a)$­¹”c¤À6ãYö½{9Ž&Ÿ=J„IÿÕÖÔDÁW}û\›•ÚdÑ<ß`dà…”6€%þ†â[šx?rlîÐ@=ü.¢øèYTµ‰J®ìN¸¢qa©-Å}òºx'èk1Mº'£ýNYÇ¢4T´܇ˆp%[ƒ)DC¨#‚:|ÏêèÑôã~ü³8Q^Õorõ^C@pÇý¯ô×_é¿nr³¤%Ån¶4‹ÛbDX¶íÓ;I™ò׳Üy!ÁæµÐÔ:â¯^+)¥‚Ô\fÔT; ÈH¡€HŠå°|KÑÈžˆ>ÖijÙQ&USÓ"’Jñ¥Ù¶ê ßʱ•Çóx>ós+­<÷²RÒŒ÷–!f¾š¯°Ùt¦ìÐåˆÀ𜠠ÖCµçOiä¥^=×8tG·¤:ÓmI¢à¬jøÖ0g+sGô€N5¦!wK “ÖZ$ýéG”ªmªã‡šA‘ó±eßj˜ÿ±yoã~õi¾Ó¯Ðôíå¡Úòùéc Mò©¡œNϼƒ«7¹í¤Q˜ÌsäÒ7ñ֌׋<ƒ¢WèC ävû¸ß?¿>q7 ª!<2ï¦g:ÿ@–ýùãñýïýñ£;ë ö#7‡#3¡²ªP3UzûŒôV–RŽ£Æ¦NÒWXræ~ûVŽ£ƒTëÍÒÿ¥°¼#<…¡:Å©ƒj XQyn\†ÑÙxb\Â5‰µ~rULz‚ìpºE~‚OýG×›¨ÒkâË,Q€j4»†ÐDœðŠÓófb+Þ¢T)ª¤Z€®l±ç& ©'T[¦*› jÌJ#³üã|êJ{óü$„wÂ*/pÃíKúòWúëŽÛâap£¥Ž t‹¬×ŸÚwGM$‰E‘Sÿpÿ‘nÜ Ï¯S,š¯U‡ÇÚõšSÍ©«PÕ²«gBU¡÷zÍE¶¸@UQäZè“pç÷9bi0±ÎÓ›9©”®¯.äˆYSàÒ†¬NÓ)­û†/ŸdÉR óÎ}/ûQ¶gy>ù|V¿ÔQÕ¨Gæ>hÔŽPIÍ]i—£‚Vï5i¦¶]iK¡\”ä†G’õº î"ø”h+½ŠUx¬uj:Ìl(1@Ó  쥾¿5µyt@J„Ü ¬¶ªJ“öWšlÁœ=ÔŠ½R‘™èæ§Þ mÉ*¬é§³ÜJ[úS³R+yäc?ʶÏíxyÛ­ð¨’åÙ«2èA#–F5Y0üåx£ÆŸ\'¶–¬æZv%fÐ_è\Ökõª R;ò©žt(¾Z£±ª¬^fMõJ÷Ûýž.¦Šú¸Ü³6YsÔš9m­ª…eüøõŸÿ}þü^ö£*ÚD•:¾UD7gÝŒ3Ÿ¬˜Ö¾=“Ì¥ä£ìK™UÉd©§à}k©} ’êQ]¼Dm‘§#KƂѥÖk,Š8U´ˆ=f$u‹à¸"œbìÃɵÌâšœá¬j&ü{£û—|§ö‚.N==¼T:žFÀãYKpE{½ÊÚí|^2öõR;q¡ˆ%D3²3Ç1¾tj*êæ±ud˜ÜþáÔ?0ýD8@Bú‚/¥¿l.ÕR¿ æд,ÄqŠ'eÏu3^[CjP"ž|ü,?¶²)¼<ÖøwÄI›qSu*T•¨¤j²ëÚïïÒ¦‚:¯AtÂF³˜ÍrR¨‹AåtZS- ê9ÌYÊÁ#Ké‘Où`iI«m#(5,Œèæ‹Ù¯“Ê 0{{-cŠÔtV¢ÉGɇ»µ<ùù,Ï-?¶üÜÊs/ûÁ#—£ÂhÎH#cÕª‰¿ˆõ œ%Ùwˆ>àõ$à|Eú9y„ºÒõ¶Šlæ•kyjÇ^–‘‡þ{õs7T×+ËH’êµì­¸e.p*âì<¢ãµæÔ;%¶Ya)R–(˜¦¿ÔÄŒÓNÖQT! 3·ý8¶ã±ågmœ:ò^Ê‘™Ùš~ÇÐz†¿¹&eEúQ$œ~K² ÛEe䢀{¨6­úÔ@oÒû.œ£VY*p".ðÀƒ/È—‘‚©ÎZ¶`ºÝRº÷ -ÓﵕºÇ­BŠ&¬ãþ²?~þúû?þslÏšE5Š&ôÃ˵ëË£°”Fp4õóÆCzÂy¯]&…yÏ5jª¯YrC¨å8JÎ=²u6”QYˆÌF2*RtínF•žWy‘;¯F¶ýW §þŒþW3Ï)þ×,}Ã)Àݾ}I_„ðŸ›~*ÐÆÕÊ‘å•Ø¸P×Ë£¾€Dá3?~–Ÿ;÷Úú¦’Ëä~f0R.ÄeTvÇ´ÓYR¤`6‚ÑS%6:e–t‡:M7ó¿I½6ÈÖQì]V½+µ™%—£Ô.Ö½Ö®²v ²H)%)ÕS[ZŒk)SŒÝZ²J›®åR‡<2j9Ö¾±ù+0}<ËsÀÓ!EÍU€–<ÅI”ŽkaLÿë1ƒ¿º”XY«þ{Fâ¡ýgr‘0¾&º™5 мݺQâÂÊ4ñ[T•ê%‹M‹+d!J­æÔuôîIEé¤Î’¹ K¥8ÿ’fJH’b<-âd{µáH¤ö&"UJ¡ÔdßrlÇ~-?<¬ýGmFíö-êZaÓ/k„@TýJj=§‘ÒÀÅÏXc“·gˆ;ä³7–^V–c ) ©œòÕ=ì›Æhœíyªí‚UgÁÂtKév¿¥Ta5ûä,žš“gxü6ëª*e!¥ÏÇÇßÿïãç÷¼?K™Ý¤ÉÚ‘DtE¡’'Ôr)¥äQŠ<ÉálsŸÌ|Û^޽Ô)ÑqäcÏÇ‘šö_ H•“3æÉüZ°Üî¶óÃU(FÛ&Ⓢ»œè´Ž ñÂõf/§%Z0é‚‹'â}#â©nàcüOó©-‘ª5½¯8x·²VÏÌ•£è’ÆrÏ-&”´Ÿ˜g‡“Ì[Då LC#8‚וŠÞQa~Ë!½’Û¿•>õ¢Õ7õҟ¼ÍJõ-}ýН Xg[ö˜¸ìázŠé2o–¿c´Ê@PX~ðÇÏüsçA“9_Ÿb2fÏB¹P¸ªaq àYR„b€I•‰A 4¢êž„?[1>™»ÙڌőF¬¢±ª5¸t4¯f‡äƒÇQŽ"{)9׎+ÉYrŵ™9³Ìs‘ª(­­ÇÁm/Û–·û³lÏòÜÊsËÏgy>˶sÛ˶—#—ý¨=¨R“³¨¨_³‡ÓȪ¤öfaÊmØl^ ½Ai&ϸŠîø·§S¿E¤fJNý›Û —ù~úú2QéT¸¶Œ.¦rVŠU=qöd¶bÔ$‰Mˆ™Z=ª¹?R]«5Lµ6§V‹Ñl¼ý(›Ì@)s.ùÈû–·=?¶¼U5ç½ÍúYÂc!d!ùÌÛ£=û Œnd¯N ÞõfKÒéÖ2ܧOæï×)æ5z‚3¸>È¥`+$9ëÁÙÞ;‰ ’¥”œKÉ•\¿¥Ô¶yÓK²t˜^¥12Oõ#Îûöüõýñ÷ÿ>ýÈûVJÖªÓ™#¥¬Zv¬Ø~w.,å¨ÕɹŽ#v)d.ùØòó¹oϼ=ËqTG>ö¼å8Xr­‘nPæh\í§†ÎXìo>Þœó:ö!b€kRS‚)¼gÏHSˆ)o ùåIê‡Ù8W9œv:½Õíu-ø œéC¢Ô½w)á \÷Jl@9Óu-½ê¯"sƒaµùáGίŽâS1mçe i™» ‹ ¦í§*«ó¼ð „ ’¶âTþ“£Æ»?í?:Ûè]÷†ÛGúò¾&-QÅYç€oCiÊY¡´02\Ÿ}DŸ–²sÿ‘þ*¿rí¦—«Jl™!QÒ€ØT9³YÆBÕ…5qðÂÍúÝ ØØª|{ªÙ„\uñŽ’=§ z+a{ìbº¬Jþ,·£ö¯–ý}/ÇÆý(yç¾s¯üè^Úÿî;·=o{Ù÷ò<Êþ¬¨ù¹åmãö,½âÔü¬ðô(ûQŽ\é[©Q=ß ìIåЧžmOÌ wfmu¦„=üɳðuÍôÛÓ´6B{VÅ~) Ñ`1ªÕ¹8‘G÷ a‚1kBïx¼;‘&¦”¡ ôò»Y»'ÓýŸê÷&&mLp’±7)Uy£7·4úS®/7¥ª­©°¹0ç|ä¼ÇsËcß¶c;ò3{=ùTÅjŸúÎZÝj@ƒâ di ÕPè^Zx)FØëÌŸ4Ð÷AYg?ãI*†iq¥îé—µ9ý++«z”¼3—_zë^zCÖ[aVÓ 'LVžÂãØ¿ž?þóüþ÷öøYö­ÔìænæTîÌz`߈ao»öOaö”|Ôiþ±y{ìÏ_û¯Ÿûã×ñxæý™÷=G9ŽRòŒè08ÓãÀ„-Oç䎳ûã¤/ÕФLUáXžÉ’\d{}ØãÃi›Ñ™ E­?Ôe`r\®æþÿ7†*Mû¤!dJîàéè¨þछÊ$¸³ßÛ"Øc™›$à7Þ!•}«³ÂÒÈÑæ}•QDJå…8)À«k™ÊênùÔ?:ôÇÉq‰Â»ojÚÿ×Û×|œÿ´!2Îa§Ç(aý´áÚ„3PäQßóßÏòÌRøú“æ U±îDÀÉBjÿ—3¡ª80i‰2­d‚û"À;«Œ`ZÓ=V»“z4yÔЪ´’Õ:ýÏ•^-ûÎ#óعíùØÊvpßJýß¶•­'óï{ÙžeÛòó(Û3o·=?·²y«ßUÙÙÌ£´i5­•š9þ8žPS¤"sú¯þ€†:Å:7ÕjãäSF¸ÌøýMESÁ @ÜIEïb# ÀHÖŒ>P—SÎKeÖ©v«2¼4uG¥¡ÈR@Jf! #HG@ƒ—£ä'©Ÿ… ©|S°Ñ“PL´A…R*¼ˆ¥$3;‡zäm¯¦þ¼oyËÜr>šª¤”Ž\!Ý&Õ» DG)À×¢dó¦uÇtÑAkвUôŒ’Šã7·<‘¥ó["µô:ÿˆÕ¥ôþãu€Ù;ýš˜j¼UsÞ+É– •æ0 0— Ò¡,5Æ_JÉÇöxüüþëÇÿ>ýØŸ’w–¢_T˜ 67ìž õ5’ qr)¹{ÞžÇö<ž¼myßK>ØDízW‡Åsa*llDÓùðÄr¢Ôç$ºðÐÊã]¿~XæÓÊ×ÜêyiÎ x$è ?†c1-§ð‘á'ø³Ï}ƒô9wMÞEKÕ‹Õ/|M{.㌥Wñ-y~ÒAP2 à/‚CÇ;ùÿ!<¦öå;J~,ïÚ .5B}©â…£G]¢^ŸŠ?C©®O~Ú‡úþyh“¤¯éÛ|M¡ÎÂëÈͳ\¹œ´¿ &’u°,‡äùûòcçÞkÎØÎz𱦠ŸäMjU,øÕ];JÛ´zmQÕò<Õg)ų’Hý’÷Þ)g—«ônÒZ ¥éV²’²gæ=ï{åPË~”}«¬jÙ·²eßeßò~p?JS¦¶¼o9Ut1WÊ…Þ`G)%ûöüùüù÷¯ÿyþü¾?~å}+åpõ6ªJÏühÑÐ ÚÐGüܶ^¶¨åœó±çc/ûQáiûîGœ`ó¹²ÚDÑ•I\ÉÚ¥EEwš9Ñ3`Š•O3ÿÕ¨„«Ëü\|Á¾Á¼Þ7Äoñ•õN®µZ§¿5§›#/Wcý«•Tæ}æk Ãx6ÞP…¤ú¸Œ÷å— ’ã°—kM‚¯ÝÙWEÑÙ}#¹gö 8òTŠ¿ƒ¼F™ÅàöïÛ¿\GÙŸƒªñè>¾_q³f$é†Û×ôå†û»i?ÜáfdSi×’¿Ë—hî_Ž,ïþJžùñ=”ÇÁìöˆ‹µúB,@Õì#¦ßlÞüiˆEð«Ú¶¬€8¢† æ…ÆÈëî¨2fœ>…­­TZ nÿ>2\re^*TíH4—\Øþ*Kî…cWaK¼ÒÔ©cK Q±›'_©¢ªT–èJjXñÎY\óõVeiSv¦'—`ílš 7]e}޳ìߺTÓÝ®ûTçTUA*’h¢ŽJ–ç’›å›e¬R2bôÁ¦R­¸µŒq6ºò"H”’$5çUçʪ FаåžårÜã¨2åýxnǶç-7šs}a,#}L©øFx½Ú tÒiW5±·N£;%ˆŽ°Ü‚Nô|RŒ×Xò^VÓ8K)&¤M(¼>l*œKó[Ññ{㵋Šc²Á±„Oñ]``"SëÁ¥ä’ãØý¹oc{û3ïÛ±oDZÇ–ý8žy{Û¯ýñóùëûóÇߟÿyþü±?~ûVãZɵòPÒÆùìîþñÌói…Ð=Ÿ ”’™sÎGÉYJ.,˜ô6ÎÇÆËgŒ¥^É5LY-ñæÒ(êÜT ¨§‹—/(‹xcÉü Ú“ýä|À7ð#/‘°ç˜5̇‰†Ç¢÷ê„^kÌ‚‹–,[„ x úuׇ<Ï8ò"æ‡î>¢¾Þx«"êÕn¢0ªk?ßkGÇ:Ë,TÁé/¯”6QóúTù=Yò§•§Ó„7®ìrÇýKú€¤¹’ÂV=yݧpÌkkiܘAuI#óø‘üÈ?–ÆT¼Z«»EÕƒu1¼‚ªKº$UG,ÓTh«RïØiÇ šb ΗL{U~棯¸nÉ5¢kÛHãßê¦ÑÕÚK‹À̹²°,DfS–†q[l#MLBŸ2ÙÓU§ç¾X”!JCV,ä–‚¼Ô>eòõ1÷-­ÕÅi?ŸÈ_™ºá^Ù¢Œ%¨#2;úŸò‚qG U š`›ÇBÎCõ¯Ož=‚ÀŒ£46]fDxÅ‹t¼ZÇ}ê?HJHÒ;ébÿŠTãõž¡(¡™ ixåÈ ­þÚž?÷ÇÏçãçöøñüõcûõãùëÇó×÷ç¯Û¯ŸÛóç±?s7ÚŸWΊ¯wî%ÇÍUç7Í)Õ—“y5U+UnÏÒŽ4§ŒcblC–¡šËÛòå¨öî² Õ@“†h%Á"3BÊ¥Ñê J n"<óóÕÆw½¡#Œ+. ¿’ÄÿÎñ¸Ÿ Ó /^‚š!J5 œêkèKTÏÎÛB*#ýÛ¥ÜKÖ‚m¨\K«pvçLfe?©mxºÑX?X!*Nmí|Œû2iòSÿ´P5<«PÛ' ®«ø¸ãžTKµ†ÒïþÝ3ªç›æü,noþ*¿ó߿ʯƒÇ‰žá\íµ.\Ý© aA‡µ<‹©’•¦1QÇryJÇM¦'xå ‡ ‡‚5€ Œš×Fj0EVrLæ;L,T<ë´èEQsü2T§saÔF.—È£*çW_ù™¡.w5T3Vh&—‹Õ§k q1:2Qï¼ZW4k°í >as.4Ū%˜vLê–j5£_9wiݹÕÛRJiú㚥_˜ÒØñRr–LÖŽÝú·Mgƒ¤…(Ì¥F•ea.ëùàžË¾ç†P÷ãyäê™Ûò±%çñ˜-p°Eõ«ƒ‘då(Rº¥„¤ºA¥ÞHÓ`ëØµn7ܤ}ÒO’‘>A¢˜ä-Í0]Åo¬‡ÝË7ü ¤ºÞÝ xül )%$¤Û€ÚOýߦc‘dî]¨biƒWWr?nìùØò¾ç}«¨4[É{ÎKîma|‹ÎpƒïšzÿR7ëæéüs›§–RxÔÞÉœ\Ž\Zim.9óÈå(Uב\¶’óÁ£”ý89º—m?ö½lû±y;ò¶{Î[æ‘ó~ä#—œYŠŒhÀ ×A_hQj+&Jº¥Ôÿ]YÕtK’ú¨?%@RïRìдƒÁÔÿ#*8 0¶–‚ÉèS©Ë 8«ÅÖë+ÕŸ«#Ô”¤‡+(yàh#fÐíef À·¶¯¨÷±[˜²¹îI²&š+ •7l+ŒÐ]]Tªus(ŽxÝGì´3Ƈ¨µæc¶pXû±À=DÕòg3x§üAK¬‰ÊŒ¶ Ë?´NÙ²,ŒxY—p§_;/ô΋àÕe­¯øØw‘ _œyúâ7ýþãÄBCþ‰-zC(û"ÝÚÒ@Ÿ4zy­Kh[÷)¥¯ê‰.úL¿JÖú™û\Šbª€•öµà‚ÐÜþ}ÿ—Q*à%Tÿ‡Ç•µõwà1û%qO·|$Üft°ÿÄýý¯—T¸«{L†G‚Ppðø‘¿/ßå‘­2UÞºDEëý¾|g}ªÑŸ À´º-1áê *‚e~vMH©P‘æ†ÆÕé6¿ŒÍ‚Tc¥Ÿb€ðJZíMý×½›’þoÅmäƒv…%EûæÏ ŒÊ-ó£?⮸Ÿ½¾M«ŒVsé\› Ý0´&[?P–‚*»kž´o®i˜‹”ã.¹*©u‡–±&õ±k¬%W„šKW ºçãÈ<ö¼ç²×4±æˆ:¶ƒûÞ¦öRöšÒÛQö\ö½UP˜‹Ì½³w½Z5KšQîµ– A*ɘ€[B’”nu~k£ÿ”n­`³ÊO;å¨lT½X±­0©éUÓhHw;NG)îF³rB_Ã.Æö“Ý*LU‚CF;> *ÐØˆæß¿Á[èE…kæÐ‹aèk@sçãf>PÇYôeÊ÷­`Íh›æGÔ¡í)”¥|atã8±:½Á’T¥¾šVAº*Ìüp¢ $¤myçi¢y9¯šwãTžô©ÒÿFâ·Â‰Ï¤¾À’£öΤÖ[œÓtç?Ϊ.rjpn¼ý§2K86ó ž:"8wtÝŠ‹z®*!•>u¬c„Çñóßþ}û—«òûG¡dŸ€n8a¼ßÕǶS6äŽûi(ŸAÄå:j¤PåV‚nõ:M¡”ŸùÇòêÄ_e¦†ò÷³Ï5¾}¯$œöT-‘ÿ‘VÕ@Òu¡ü¢ëšŒ (Vñ40˜vÁX)–‚?1þúÅ ²šŸ ¸®DuݨkßZ0LsTÁWk›¥–²cI·AXëj1ñ[Ã{Ïr1´g½tZ˜‹ÖL¦Á í,ÿ©œBµ~d¦¨*‘¼§ä㵃â5Ÿ*K¥Î ¢ãÖ¦êzÄÆ˜½É6š[ÃX5k?ª ¯‡o$f¡¤*Fyãóºý»ëS×y<ÿág¯QNõü›%ýÂdml¼!ÝqOM±(¯%ƒêèírî8šž³äŸåçŽÿŒ¢ÔŠ}^ÞC‚Ó›Œqø¿_AtãbÁ2&À(TÕcO/Bµ‰›vçÔ`UIPG}ªßk4¸Rù:v97:w³F9&:i†FÞJ¬Pµ¥ŸöZÎ9S4BTgâþpˆ¬ªÀ„¢Òý8ùÔ[qÔ|‘.¬ÒäU’[à4¦ÛóGfÜ/bÂk †¶Sˆ'¦d‹V0¼VÉïñ[ís ¥F­&¹žäû/J)å8j˜%«Þô¨Aùߦí~ª*C¨.éXŠ õ1¶¤H¥å–Zòü½UeìOhSJèq]Õµ”Å ¹ŒHR3aNÍp‡¹Ð–&Häuðd=‚rQÑ]ª4pº¥žüånVçÕ¶¡Èæ?%@ÞÈÔÕ~]¼²dŸÙà—^(7¯×qœçÅõ¼,}¤˜Yç ›bÓ’@Ð5ƈÑk½IudBlk¾Al¶°ö]Âa¹žÓA"Q¸!.¡ðÚØ÷ò,rˆ«Ö#÷j*þ)êÆ]$Ðe(რJwM“U%©rA…ª9^¬¡|k´ë ‰5¼à;*EˆšIÎë ïéS$ˆnŸs\Å縒[œqÐ5àDXÛ†Dä†ÛmdFhF ŽÔ^~Ö*’PÊÆíGþñwùûgþ¹•­H™I0=€ìᯠ&_›¾ã³#ܱ7N¥@(qƒgUWk¿Øvw}ðGI~ Ó²ŽÉ°N(šB@‘3ùm»“²b)xéôDíÆÿîÅWëd€¤Û°¸¢^Lo) ¯‹¤õ"£•wm"¯2ݺ«rY¡!eyêá¥!q~YµqÎÉyï—‚ÁÚÒ&號ÎÐÅD®eœÄEk[{öeå4‡[ÎEˆõ' h+VýêÖ¿¥[W¤Ö%C‡ì•‹ù"Ç,˱o¬ÏP‚j, ‰£â€N\ìÑ;¢G¤Äƒ8ª¸G¤4šÎJdDT²ZÊÆžÍ éŽYMý™6F®‹ÈéÒv²u0z½ôEzîë¼}Kµ®yÑ]ˆâ‡`°ý¢KIt©1ÆùW Ô{Qj ÊÍ›C{µ½PŠMÅ0|QAÎÆôÊvðš ,µ’7T]øÃßB*\&{ÃV(ZÈì vÎÈ"¯Ëk^)F›Òúô/ÈAÈÙÀù££“4D!»…µFJJ¦ä‚\y‰±®møÜp*ìñÿ’REð~¿E½Ÿ~ºuoË<ÉEJm€¤äFÙròvL ©ž’$3?ʯïùï¿ó÷_ù×.{©œG9¸b‡³sßÛagþÚ@¬Æ«€çœ¬ì* pÎU±ö+ºÑت"€ão¡ªw¸» Ö jƒýY"£}oldûÕmêÌúcS66`[5rŠ`©Ö¼³žòlÉ{ãüE³›âT€…GÅÊUÊX‚eˆ;Ó<áX&ÑÙ8\©`ˆY`mØ]LZ.¿,©¯çzU+Ó1EêÔý„p ‰¨·ojQÓ À­ùô›£¨eˆ&´ÿÕ2*³ lgp]Z³×üôm¾ÜYš\«]7ºŒAµ¤J ·§A|4s¼Ô’ nKO»Ù`\´4_MÌm [òÁßÙ x6}w<ìG?¡Ýgb²¢Çl# ×()˜ÑÜR#iRþýFÛûzZ\Ô®eKªtš‘ÖF›—­Ï>†+U«<.§Ä¸-º(UœŠ:× ÿ7p/óÖñR?ðû”ê:Íb—šwæ×µ“<=ø½¼ñe¼yÂ7QpEä2ÇÀ„´Eª ¸ÀšÉƦ‘*‡ÀY9lFÜ[j~šnbý\†³!¦SoöÁ¥å’§î;€-ˆµA@ À ·z«9¨4³üE‡µÿ°›U´ _ ¤2P€nTO~¦Oã„>Ðñ½ N›Ñq´s¥¡cU¹fLôP½*ièÖ~s§Ø$=ô—5¸[‚MísþkÁ÷0‰~W º´“„p'OÔŠ’.‹7,*G!o¬‹2J{ªÒ´U£Dœ€éÉ¿ÒG]*€ÛD¡¾v%AŽAÞZÿŠÕuFªzÍvOÂíï²Rôb>Å«B«K.%\Yî_ |ýˆ*0-qŽÃ’Ç@!h•<‡P‘…ÝMX;D£áVåVz1Äöþ.?Qg-¼ÿ>‰î¹1Qˆ¦au”E g+•Œ˜*=UÑj´Z(EZ~êp0†ºø?„PÏæþYÖ>-WmÀ½j$ïeò¹qÛÊ~È~Ô.øZœ%gÛ³<–Ÿ?òïùïïåǯòëÉG…¹ÔŒ¢¦;•4F^@ÒðúŒº']vœ .©jýØÓ²YŒÔÀú†˜ÒÄ&­Xø?[Ÿ?ÍkB=àŠÜ7щ„Ã>…æŠãœØú*. ª„6³Áû©ÙÎ`úúY#<ùÏ—ëŧäDK „#OtàJ¯¸WÆ€?UJXññc:©Ÿ`èç“zLÚ‹gž%ŒÊ[Óè§$Ð| éVÍR¸ßªM*¥Ž¡áÆSÔß隤Ùùî9Çc2eÏ"æè:Í\&ŒÂ¦×ê<5Õ ÜÞ’â³l,7˜šELMÈ(Ñì_Nã½~o¿êVHòì—3ÚNt¶Æ.‰™§ £i)uŽùù”pT¿6½x €“)˜ïã¡Òÿˆ¾Zxä%uN;$6 ˜*?73uh¡œKcÕéSœ  7Ià ;~B¨*ÑŒýEÔ§)UøªÉ*Nž ¿[âßöW¯p9>+§´ûðVÉgM4©ÅËÄcàÓ“*ÝËQFÍŽJ3Ù£©Ø­T$¥8`«Lµˆ²P oÿ¾ÿ+¬áŸúËrà8‹x/šay¸¾À’,YJ…¡·Gy>øx”ǃGùõ(Gùõ+ÿúÉ_?òùǯòógùõ(­l¡,³ 2V⬺.\Ö_/!¾¾6Ä}n¨Wø› 7»Ó‰mmÑ‚OCD ]“3±Â#–aò[ø+=®]rL{³[,®).Ÿ*y¶œN[§½÷½^xÕû¿8Qc­[!HµãEÕ°îfútf<ø ÝeJ ¬a‘Ó†ID,·º¢RM sÕ d ü¼Ñ6÷^œ~÷úùSašgW£fÆgÖC 3pÕðù^OU“蛀>G"âœaíÀK-*^Æ×hUv6¤ çuU×é*·Ú9×e)¥%­vòuæü>jZÇÛá7W —×!"A'ÏA*ß¼¬«  tÑêÁ}㾕íYž>|>ÊãYžŸ·½ìÜxgú+)’˜œˆ_.ŒÝ”êbp¡ý# À5±êU­ˆgðiR£…ɶ²,îšêM—SÀ€µârU 8 /Êyb”Ïñ-áÍsFþ³"²³Ääö¥|?쬑餘TNF 0{+†UÎ(ÒE@ `"QµøŽÞ‡1éXUY¤pª¬eðÓ[,dÙ“¨r{ÌE•4~]BÕ Þ´©ÙßþÕê¢(HPý˜*®Ú˜ë[î)¥ê0b=Ðu89 ×”"aV-TWÖÔqõ ÿ‹q‹›ÔK@¦Þjû¸z¥¾H?ûàg}ÃEóßéM‰¸žÿëˆá÷u.ˆÇjžˆÚ¡q¡®t·=Õ9a  ¾e "ÑbVQ©ÊÇ_^ŒÅÒ`˜U«5€æbƒ *i ^–ÁX‹¡ƒ9d©§ Â,€Üv·eLH§úz…'B±ìUþ¿¹—¯IY|¬¬—ÏH§2ª_,h,#¡÷ŒâxÍ·†¯ïÈÊÖ`êÚ€ÙÏvþ  £¦©:Ÿªå§Š_ÜÑ(_mL•W ÙæþóÅAYG`꟫§Š8Á«|êÉÝ]P}eEJaÎR²ä\ãÄ¥Nÿ›²·¨røÓW©`ÈîâÐí××¢òÓ¡„§`"ª9·UEmU²X›?áX×A(3îÐs¹)N,ÔÅõJu¢)blŸçÐÀXK5£ëaòRã¸õtõ‘±ÉþյܡæÚœ~»œ·3j§±øprkpêaÄi^ÕÊ1A‚[̪{··¨<Ñ£3{h2¬Œ›ª?`RV´F« ¨1Iã½¹ªY ´£€¥Ôê£Rõõ£•Ku©àˆ¦¦>!Ñ Ò˜3·4.³ù &ØÞ,À""5ª MåK`¨QfRö§œúBO­Çõ†ÁS¨I#Aàö¿Xÿ@'áø:ƒÂÅüÜÀKÞb=WE§Ý¨+V3ŸÄI뫺‚°s i€6¬Î*@¡?ø:§©UÕ)+Ðó3Yµ¬ ªÏÜc"9¥B…õâÄ]Ê©àÞvØnfñ1hÑ(ðU Ò›™gWã%æü@YRe¥§ý×V“ÛqÆâÇXêR®¼ràÉsͱ ê š²6X•ýå;ϵÀôSô©ÎÈú¥RÙýõoû¦ÍýWĆÝÏ–Xåɧ÷;ð4T–hŒÂ6ùeKà•¢êgªk†ô‹¼w’³ ~L®¸‘8›$DaUú4õ&9+fÃùF ªv‡C1)ÓE…o-KUC2çYÓY'l§(< 7á'/bñc®i unTÃwšõ‚!kÞ}稹®»Zóª\¸:–iþ j/påDÔž§¨)jÛÖ+ì×ǽ€±ÁÔ² …Õg%=¶c1|¤žšÐLýR»O+—Ú¡&Hw(iÿ¢êšâòNwtÙ ` bDm9/|µÕ‚fÞ¯ˆsaâÝúXñT2UEn3œ8ºk”gD‰•Éð0(*?®&P‹6ùØ›w«E´®>œÏ¨ct2”â4§1ÉÂÓ5=®^ðÉ Ä%¦"´«ûظc€5î¦ÐGÿÑ‹2gxµÐ*±d!V] dÉðÃ^ ú×=Õ¯o²ª—Cs¨Œ:^Æ9¾‡(bó‘j¢2¿–°UÑe½¾KïZ|Œ)«ÞË»¾‹ö° ƒÃt‰8àk^5Gi[ýãÒËTl®l‰ëxGBdð©gŽ&®UóRuÿ”pU½P–ü×y"¦í‰;úp*K½\^jsÉîFžÆcœÞ·QHFXÁ*Á¡ÎÇ,4D‹;Ni¬ê£éCg$A¦ÿ$Ä•©ÎÙêëxÚ¯A=Í5ëÌ2f€üy>^0§C[Á¨¨Y§eXBüÊdŸ—ÑÙXº@à†¦ëlnf¬òYD5N‰m€e]Ó ÐŸXÛÅÑ3I^»] J®¤×üâ:ÛO7¤›$Ô`^( èŽ.„5(PÕ¿Rµ«\Âü§òÁ³ð€j;ë•îÜänôÎv‚à·†G(ÛÖK¶`7"[ã}:”W¼8©aV5|"wü­áŒÂetš×ÒR¬;º-¸Î概Ô"5g·ZurÚQu#´Ú„RÁ´VM2C9` ¹+g#ÿçÒ¬>võÀ’°eòª–ø;}çó߉\õ•‡É·ÀòÅ¥ðά¸)Â>oXŒ.¹4ÛêUß¶Ô½ öšñ·†Ì|g H>Ò—/øú%}ù‚¯_Ó—/ýéË>>Òýžî7ÜnIns±¡`E ÈÓ5^ÒÏn)‹ÛýñhÁ©“‚ŠSéŸ>ø`½úÍ^¼|+ý}Åw÷ëÓ;×?ÆIч)EÒ![ŽhÝr¦Ûèdë64ÈÕ1ðÓÍk®Ý¶ºÛá·"FiĦ*0UUaM¶²öÔ‘GE«×Ó~÷†µP‚£¥ÞÔ_ÊpµÁwm™ªsÈ£6gMk=&2t4ÅTU 9ít¡߇h­d›;Ç„@¹š‰ê¦«ûr±4Õ“¶pÝ®­ͽÍe£æ{0àâKF6ß²s¼.{Õ£ºDÆÍÐËÌç;Âà/긶™èa'Í–Áƒz¶ª˜MWÊ@S¬ê µÔ£VDD a#Fâ” Ÿšh3,ˆ ˜bŒó|@–LƒU|õ`­?¿à\jüI~%C¢Ù÷'\÷¡éhô UíuFÈ\ªvG¼sT çý'/ÛÏ1ßJ p°­‰Bà®ïdªu`X£ìÐßľòúˆbqêÅ»¦âJ#ÿ¸@äE¿Ø[ÃüµEìu.B^“É?O'npÃíŽû|ùš¾~K_¿¦o_Ò—¯øò‘>>p¿ã~Ãí–îw¹Ýp¿ããŽûGú¨¿¸á–Äk®#4ߊV=qÍJØ áˆßõª$L‰.Ÿ…½ýM}<”Š—|¥'ÿ4×eä­ôQNt{¤ Úð\´1Â5Ž!l!–Œ'YŠôÓî“O]G¥Ž¨QÚT$F6íVÜÔ#Gk–Àè¨PÓ3µº«i]Lö"k”i$Üné–ä†TíSIIÿg‚J´ÕA̵ÃÌ%8!Ø_—ž™ìÒQªÈbBüX̘·(L0Ü ŽlYº0 êÅKêiLMŠN+Žo44 *Z…ï£Ì±Ÿ„VWy8EµkuÏ:ï €R Tt6*éÅQr¬ºàÛOD» áô0ap¨Îù­pËÙ›õ^æP@Eª<k•Þð!a¾ý}À³Â*Z`¦ PÒz-‚†ã2ᬶÅb4,"WUS¥“uÄMù² O`iåRÅÆî`Qs Ï|zù¹èˆ"[ç¡'üZÜãÐÎ7¨ø½%oÈCðzGW}׸ÚÚßbIÎ)UÕ…ðBÔ‰€Þå)OzâÏœÀÊI¼‘n€çy_ƒ• Nô´¹¿Ûâ#vû²UdæRÅŽåèB¹ýæ?u\Þ¤÷¦S'êßG«Œ®4{èý8¸!}¤¯éë·Û·oéë—ôqý­.7q–Y¥R’Û=ÝnuŽ9æ£.[¬['ÞS¼u±Ù! w RÕí ‹z.ÚŸ–{碙ÝÕ´}tÁGÂèÊý »žAöÝ[­m(é™#aÔp~^´‰/X¤ªÊaZº­f–0Ös¬—‹ásØrBÅ”MYë4œ³X÷ïÂ*]Ú‹å[ÅUÉžc…Äé’’1î\ó±8ÂÏ€$€¤AUO€é6Ø`@ŠmÙü Ïl[Ó?¼ç„ÄltÌ [‰ÇC®†wú¢ì‹â¨†Í€öÞT2 ñmÚÜ™—e—O®«éJNñzÞ`M4÷-_Sy&å¼´1¶µèY9´#Cý…l¢/Íðj Ž@ÐjÿÚë„™'¬ÿ ÛØ¦C‰ÅGù¬™/S ¼¶Z£Xù6ìÈßhpÜÝh¬_.ÇNg߆óܯ,ý:?‰ü_>¶KkÑyÂ?|¢örU™ÌcLêßת68-Àq±ºË V„ïZ ¯),ÇX¨Ùè•h§º)‹Ì„=}.ŸÕ(öô¾E*>U"Sÿì4ºUþI¨z&Ù`Xœð{1Uü'¯ŽÑñÃA õö_¾¥¯ßnß¾¤/7Üõ:i]#>TBMÇÛÊ”nr¿XÄÕ§ '=ÎD.§TÑÀC{GžŒê—™¾ÀÅ®cõ >"š¤öwIY.?JÚvTª«ôUG+¸²5úÝ`D#ûÛ5F蘜jb‘H[ëaÜOÆ×ÁîÐõe –}[Wfú®gº+ûòD÷VÞ:èã©‘{îïèòN('ówÿ©YRFùkãÓ6UPzœnšMõ¸\‰` ´ ¸j™ÌÜ0 U–)ø¡"£síµçZÏ U>}6(®+`ÕSØÓ×"€H6÷ñpV‚ļ7rU? EE¼Võ7æþî˜5¹°‚¥¶«Èý%ÿ¶VAIËÿíy2BÙ+—Œ™+ ÝÒSúK˜©ì’µ_¼ÄÛ¿ïÿº>³8ñûËï`C¼bH?wÿ1¡ê‚\Ç-XAê_鯯éÛ·–n®Rè\'Eê•“ÚÇRƒnIg øŠÚžQå¢z9"8C}”ÕÈ„ N¥ñ¾C!>ùyÄ“â|q¨¹<[iªoÕz¨ñ&\«H m™·)Š?[¸ÌyákO¾LmšõsÀ’;桪¬-8Cr˜(ÅPÊ:ÀsRq;œWŸ|ÔmÓþ>¡.ÐÒRSJ©þéÀpÐáÕÁ5Ô85ªÊ”͵ b£(.i…=¼¢ú\;¿¨®ÓÙ™Ú¿€**Îüåˆ&ÕÇ!Ž„Óu’Ù(ÛãªÚ-[d¢J1 vÏ`¼î먟£+X=½…Í}èäk‡Kç©ß¾—F{Dµgj— U<ûHîˆg{Ö"=•yƒÓ¤†°€ŽÌt‡n¤°A-› ø’­ñàô3z5„1…VZ·ÖŸš„¥+]õó8ˆ…T2;ÇåôéSèCƒ}¾!·z{/R‹¡vË>މΖWЄÁ&6zèdðì9­ÚàY”õj2ÕïÓ-@G·#gVd˧^™¨&Ú”%¸âÿsF…ãÅöýê¤FÜþÀªNPIýö5}½ã#¹h¤Ð¥âFVê®Æ[õ’x¨ªI»“XM„4{RA8øR[W¬,ËЙþ5V&P$Š3J wgò|}qPŒ*-Ÿb‚nIƒõÌL§3GW6Ê“0¼H !ÆKû¦ÙŽûó÷qn)ò#XEË@¼Ó«"¦¬, %†Ð“Å1 PÕyuÕƒ–Æ1Þ¶Ó)ïìö,“´ß%àh 5ᆄ®ÎDRVU˜D©å³TéLã>ê|¦1ñÓÇ=ÂGîRÃJ•tÀèx¥ê¨” @ýI±óx]ÕÒÞQRçi6¨:ñ„¡ xÚ=»b×hª8ÊrÕj É2øT\oó@R´õ£zTHt5k'{TxbPýIJ¼`äøÃùâÕŒ*ö]wÉu Ý€¤º:‡ÑQ‹éâÓÊUmlG*5É__¼q‘æ$ç%Ä=å0»\ÂýЩ¡ÀàA”û8XjùÇoïøŸÄN/áªN7üsªí’ì]êÙB3+Wx8ýcý¼a+Pä"ÿŸ–6î_•¦`½¯V¸x«\*ÄÇbeÎþi¨z©×5¡¿õèø=Ó÷ÅÜXp“Û—Ô@ê ÷˜}’`Ä%Y«žÛD#J),ÝhbÅ„x Áh8]±Á²î X‹LàÎ) âyÝ¡NàK=¼M†ãË)âÅçCq§hÿU„ãÙŒõa,šÛcz@Öôàãåìï6!ìíy*Z•*<Íêò«’²Ô©¹¿ ‡›ÇB}dIh_±†zHB‚Ü*<½õÒ©:üž´a hµÞÊÒë ²¦‘œ–-çì"Ffcˆ‚~.ôA¿^:wÏ^[u=UÜà pPÿÊ€Œ¶YZQê‰ð-+ì{ô”î@B¡"nUQZcˆ±lsÁ”çs}9ËBœÂŠãE¬ÿ~5° “¨Û#,ðµ]¦°„-ŒÇ^h׺À”0¯GY³LQ´›Êi lAtÅ`5?_‡Ì6óÀ¥ªj“äœ6x¹ÃŸêCª"Á|sK—E/¼5oîÐçýLÿ ­ÂRà32ÀKð¹àz¼Z"ò-ÚÕ hõIÉ©Œ0qŸëðð”Le;*;>•ø†6 OgÝ Ÿ*'‚S}S/ÔÁ{Ràßà'ß9ýSïþ)ÜpûHßÒ·¯éÛ7@¯.;é™ËkVàÔ7$6êÂmú—üïrd»Z,g¾v ®‹s½#ñÆØý ‚oÌícnõ¤øôA‰»BU:ºfúf:ŒRØ$Ýbq NEê‹À78õæ«wГÝl^b?ÀÓÑ¿¦ëÖ,öÍ‚ë£ÒÁX¨­9Z…ÍÇw¥Ù´Ð"t«™©·z;†æ$7ã‡êÓà¯bø+ÀR:¬Ù…§ UR=PY÷ëð[Щ gÙÌY ñdûvv%*§:€.h¡½+TN­3&Ý@LiÀé…€ åÉýÈJ¥˜¿QÞ=[·Gæ  2,¿\á*åVŒàÒ¨ÁN¨…UMÆÊ¨Ó¨D4ƒiC¥Nðúo¬{1µ Þj£}•0)­ðçà•L5‚ÐìÖÀWïî²¢çyª§~{Wug»¸ÍÍêgõpqÞ ¯+ÞNþy3ÒʴΪ†«ýe‘“â:½Øå G‘{©«÷œ@ñsxL§ Ú@"ÁÙ©ÅxCׄM3`…é÷¢9c¶0e¯+Œÿ?H”ÿÏÏ¢Íõð›Þ¯ó"êAUÝý¸wù_<Ì…m”¢0àÚ̇,RŠ”™×¸Ž Ρ× Sžõa‹·<ÀÍì¹—y‘‘8ØX…±ùz˜£‰ÕWr›3î“~p{â{ÒHtÙåDºhâ Á¤0&8_ÛaÍïØ9­û'E«&XŒÞ˨Ta -á3§PƒæÞ±Œ[GSê8J ÑRRÎ*ÓÛë~jÕ­¢TÒŒ«¢ÝZi…†kºÐ³YP›S±6 ŽW&#» c”IÚ½Ç^^(²Ìn5›«ça5kÍÅ éMÛâ#`ÊP•05 =x1\Óqˆ/Æ2¡–6÷_Ö‰`[u‰ªù.Z-ýÛb@ŸbFúÛ;W’ð'¨AÇO®frEõØ6+¸.«ÐÎ0cך1§²ôhßåÌ,P§BP¡ZQ¹f;®a@Pª,ÖAÑjFyé¸3u«¢4ÕËð3j:´‰“^¾øïÛø)µÄÕî¢7>®OÈfŸAQ^j Õ=:Ã2KÎÿx²Ê>þÿ@RÆŸÛ§¡¦+uøÃ™ÿ"@›øÿuûë#}$IÝoæfè+IÛL™ŽÄ'I"R$g)ú2ýfE üZ]gçr:¹?™ù+Íé}Áó=±'ù€"áËy‡ËãÉŧ0êÞ/‰R¢°FûúÒÜ[S ¢J5-©vl§1I …SëëY3ö×}¨i=À&û¶’náŸ#ë~cÐEôs€Ô…yã¨F倣êã÷v •h¹r~IË+À´ûôl(†Á¼?¸¶‚2‡ð‰vM˜Æ²Â,K•B¢dž˜/kAÀøkÈàP±-PÈ–ã¢]@ªÛKm ¾] €µEiP µæ:†Ó"¢ê ‰¤&¢” wá; :ýŠÆ&†'…З¶æ,øïÅ<&kÖ‰,ó2dZ‹^A¼ì÷ü“@ÅÄè(ó!JeˆÕ|í¬â)`_4²òso¢¥å t’K±ðBìYT¥'Rñ¼Tı[fCà<Âö¯¶|j8ƒYèU=îàŸýÈ_@{œ3s'‚b9=ŽüNkp‰â†Û—ôõ[úöèJºWX˜NCÈ`v˜R ñŒŠ”,¥h ƒh˜‚wT°*SY¹¦ß€ZrÏXV÷óX¤”ÒÄ#uèyîÓÛ¹uwŽTuÐgéŠhúj£ »N±2ÜŠ=õ|6ÝQ‰Û–z,ÿ±c óWYO+Æ‚ @G¼zޤEõÇۑΫĔkãeÅÁ÷myDYb ] ’Ò-U­v?ïÀfåöçäl$« ÔãPM™‡¡°~½€sV¡ú4Lä8 ñUš\ Pá¤b;yËþaÑôWA4@Nî·c«¤!£S©RÅZàT#s~Ø_f V&YŸ³Øò5Œõ – {4†5÷³’_õìÝ«Ž+6íIf•¸xT§·Tj‹ ß…aUžâ¾ÌTÌÒ{8ªøYC:÷µ`ÉhM¨Xž°ÈtL5rÑmÁ+,X‡ýíÂ4¶´C#šb.õÊ\J0¡Ugco„„ŧ‚QkëI©ªþ80*Št9zrî"Æéþ,) >ÎÐèUŸ(Nð¤éä jvë_”^”JʉèÑ|Ü.›c, qªœÓ¤X"NäN ðvî÷þÙëªÊÔêñOHá‡{u>\ª!žË‚8®Ù*%Ì’ ˯QÍæ¸ ^ÌŒ ±Œõ¯íùÊ\E!Â[G^Ëpþ9?‰gzhàÍ FW•ªh¬h 5VœÊ³vY»… Xf%[ês£:%áûEŒÙת‹qþI30_ÇÔjŠÎNu9G N/‚"õ»HP,ç”°™4ª•ñ¼}”Ïñ}*uÄÿGŠe5WñtM[vŸ¿ë—5²ÊçlÌ¡÷8ùyò„½ä¥’ÕÄ÷*?C¢}e™®zÞ*_‘ª%¨>smNîÿσT5[÷ü˜¸¼Týj\Š+ ²œ\lê%lº¹ëÐÕ hªuÑIUnû‡À<ÍirZý[ ß5·ê˜—°ÈúG°†Z™õ”—²¦€÷{ÿÀ§Gÿá·®²˜D‰5NÕzYy68xφ³$Û,­UN`Ná{´¶nôe;%1#ý)-ˆªÐÔˆ\1zŠi Ðþ}`ѧ¾ü¬O øóœê:ßÿ§h˜¨…ðp7¹}¹}ù–¾ÝqlŽ=c.”üÙÏ©Y›­91–7y‚ÂÌ#í¶ž 3°ŸùYuîüµ¹þê˜ù¢ÊÕÝu°ÃíÐ+Jý£ðý.Ýñz©A.0Ó4®0 bX]fW:¡A£ á”zg‰‰Ä"!é^uè.FÜÜêDLQ¡C{dÎ+Ñ)9H 8Xª<ýæZ¡ÎÖ‡N£(µÚ§ ·ÖÓRøè¯ÌÛŠP¸ö‡ƒý¡É¶æüÓö®êI|üÓË5})dÒ³Q­{§Œšc‚Z_M:žséŸà•#‚€z:—TÒ°²jé:å9-‹xïp«¸Šú/‰ öÔ|2™ EÛ ”Ð̸ô O†U+ƒàq›,ñþP¦ãô¡b˜”á’APL©-‰R…Öø'³wØ–E‰—§V‹6Ôk"D:ãÿ’@W€©<[¡ŠƒMœþ?æÞm±‘$K<æy«êžiéE#íþÿj·2 „éÁoçæ“¬VNI•Å$@„»¹»D¨JO1‚ í˜ÆÜ¸×#€Ó\òá‰cºê4|XçÙãÀ< 0f¡ms %ÎÇyj!Ó:KùlÇ:EÕ‰y¯Sì¸?Ÿø¯È0z ’Á¶ço¡OuOEÚcªóÊñ@ ò{PuušÁû˜7¬ÁïS/ ‚ .¯x}-¯6¡‹¬ÏÄ#Ç?¯ÿíÎû]î­’Îâ"ð@ì¹Fc 1¨xæc<ա̇Þ|\èΣ£Œ3ByîÆÒ’@þ6sJU/º¥ÉWøVƒÎÂRávê^r#ŸÌ=Ê~ƒÙwhecÈú‚Â~£eÊ}LI£iaO£½~Šyêµ9ïµ¼¨%Ù—"¥þš;ÒP˪€tX¤¹9¤­Ž›¢u­ ÑîíuöÌÿÊ:†ó»mbV¯«N³eœ hr§&ïÚÿ¦(ÉÈ)p%·Ò;'ØšQ°¤×Êç ‚ŽYy›¿ùƒ¹gäq…SÝý¹4b$$ñÍSa  „51S]^ªAª.nw­U†4…vM…B7ت6·HŒ¤ÿƒÞ%¨Ãœ–k61ßä4Þgò@ʨ) b~—bg¶¬ l5sÍàÂ/¦“áÊ¡G@~Tñôébg<‡4˜ö˼«/uqu¶è ÉvÂ9¾³;¿Jg ‚ûÆQTª…ªA±Š#}DÔ¸õeÙhR…»à Šn=ßÎ7Û©À?æS±0î’>úWhÊJ[nÝüýW)R6\¾”×ky)Jš®¾;Î<ã‰&lXêï OÆ.÷o»ì;™~‚ºFÂEŸáV%ÚƒO]Vz•g£UC†Zv~Df%^ôfM¾-<åLMeë.V¾åáDb¯å{¬ˆÇ•«Î•‡Á*zÆ5@Mò< —¹8£Ï]®ÁU™…é{~@DZ6Œ #äRBéAS"­%µ’­ö]H©³Rµ.OŠVËØ*}ŠK¥s—vÓUE/•Fþù-¸ 2}ýýQ¥ ¸Žþ-•’ªxZ(}Áðë)}Ť¨6ŠË†~”FOkúƒUZ­i¨ï §‚Ó‡g(ï˜$ª%R8Ñ$>›D'i&HZR-6„8z¹#çÈP…EKPmRH ^bFa8lFƒé2›™ª<(õÌ ã-×%"nPßÄ4ö(™PU§ =AÚ£ª=ZR$ÍRvaÊ0ãú}óš±ÇaùHCÛõ$Ù®„çàÇ‚ˆô°ÕÜ,«ø,Õɦzz%$*pLJ‹œËô¯ct¬º ú‹Ò|c9)Ä̶êg`*P¤\Ëõµ¼^å:ÛfŒbùOâò2âÉ8qÞe¿ñvçÝ4ï‰OÀµò稥~Þ”œvŸôLR•¬²°RuL9Ÿ Û³ ZùÍ{„)H_dåi^¿ÄXöß3L‡<#L'òÀ6)>’Á KOup&_¡&Maåæ˜Ù \IÄ‚V·™WNî1Ó'ƒk‹’fVuÊúè¬Gú´–Ô"µ3µy¸8²'„bиˆ”± êÎÓ¥\Â]Ùêgi,{¡*DvîhOߨïÒ%Ýj|Õ¬óöù)0®éKNoqZzfæëJ+¨©¬_'˜ÍÍg²,&ÃæO.é«ê,Ix‘«e™I¸ðŸAÛ;¥œú€[»Q'tßš?½Úc›ÂÉIótGBk |`—‹5GrPlSê$WE}`æþöA¿þmŽïkÂ` #¬'Õã²$|w2Yޱ߶aÛlp–äx/,Yua e(nõú±5Áì}jTj"ÓÊ!ÿ9X tY?“ÎÝÏw‚Ô¨”·)] >‹19ZŠõžc5Ÿ¾Eö{,âàß),x§âòZ^·²Y쨢_No¸’Z„ðñ:‹ºÁñ&·;ïÔN۠ņ$ý7΃µTˆì±~-d4P§9LÄãÓ+$G^I.ƒPEs”Ä妟9+‹œ£u8Ù{Qpá©#Cô‰M'œËøŸàsÔ_ 3Ý…Qçš1RÂ5Ö¸S$ɸ²þm€WÑó&([Al¬Ï§O©ÊKMQï ¶–I½Ñ½sšlæhÑ<(d6^WZvŸiE¶3‚J|sj¬Ž)çJ¯RT­÷ÉD©ºíŠŽ©´M÷Å Q¤¡·’æ™<¢G­ùx¦!÷zɪë|Ž;é¸#§pàU¦ôR¶U¡[h„¡FÙpÓm-h‰íUÊ:kQU"¶Ý$!ú  ÷ßLÕÕüBãëÌöe̳´ÓÞTξVR å-ü†uî‹óÿ:Ý@„ªp Ü2•CUx·G~~'Ï8«òr¾÷B$¼xO"ëG2ùvM»'_rQ|ssŽ‘Óœöj ?ºûºæß{0°gÁ§âÄ…¡-V]§¯~è¯ØÆæéüíö,°®‰T×r}ÁË&›gë\ Ê õeÔJC-p·½P”T>õÆÛ¾J™`²ÙëˆEÈÚñµ›n«LžÝ‚4ã-]q:"EÖV‹3/ "†>LÇÖ™ØTw“X3â°B-úá…[C?HÅÞ;0\þ†÷Ò­°IÏ%'|ƒ½WÜØt±6ú,/¯£0ÚU㇋1˜šXå”ÖÐÔRJA(;mé„ryx/-4†Òˆ ôqŽßö–Ð>°)¥EUi©ét/rvø{—}ˆ¯šW©øSíªm²›©b^ùR¥™<ÍUsRoÝý¬E½OšlÇÚ?UÿyFvuT˜çØ4 ¾‘´ó†îk¼söxÚ H˜)½ù».êMÍUÑòÍF¬”›«[·³_¢ZâTËt¢Z)Ö Ùà%ì^+!.0 =žêüÔH‡ÙÆáVÁ9û¨ÿ^æî¥Vœ@Žn >hé1âu·tʽP;L:Í•^(öŸd³à,Ó¦Þ2$æófW gh!•TRϦ¡¶8ª™ ›3Ù\Ž©k[›û½F«aúÇ«î r2°g”ÏëÚ‰ó‚ëKy)-‡\$¸ý”€‰†C‡}Ô$‚²ßøv“Ûîôa L*ëg’vŸ³#©¥šg㢈#?Òj %V‹œÕÁ#öce°’ϤüfçRmÃn™•ú*›*n“%];‡uû[Ç^P‘`€çiª›6¦¬Î•)k«fðS#¡ë¡œÓ”wû¼¾å*Ðå¾ë¨¬1,¥ûW2Õ¨åh»Ô±™~g&cv[ ½ÙÑÜTorЖ WtP´7¯Î—Áî¥Þ*’Ú&eÒUý9ˆ£+Þ^]K ßÃÐÆN"×K’}ÿáñ>>¹sßYóhÞ5“’OÝÒ´UÄÑ1BþT ô`SƒÄEß›¯„ØŽ~ôÜhSe½S&ÔŠzæ[q§nŠÔ¢ƒEßX꼦ԋª,ržÞLœœm‰: ­Åúmü–ÿÓYhoÕ™G)Ò9 Þ™óFü`Ú#“í¼•Ü[²‚÷üâ‚ÓŒt…2Ã'AùOg`dÌÊ9Ëß9VµIQ‘8 Ⱦžì‚ŽS¹B5^ú@SÒŒÊXä§Ê"?k5MÎ ÅÍþZ•³èïÄ7Z‘ø¿JåSq})W…Suc8-ãáôÛ>‹©¼iž Zd…oOÝýwOõ<£ƒ “¶3&'?þbš4fãÙ–BçG;ª ]:ÇÖæ·– ››§lüèBu×'ü…;ßä:U˜™¸Š?” ‡¤/Åô̼ %&±Hv…`¬ƒ:©Ê³«íVU»s?§ØNÊ‚R[§ê¨6آĕŒ W†w„ÊuRP„a?¢4%Ùó<8ì^-×Ó@Äi/´5t„kA…6_‰ ×¢Vˆª¡% P”°–áŒ^IŸRká¨ã–“ÖŒœÒªßöRU3¬4dh!†û¸PPŸðŸ*S1£Ï6 ê^G”­ÿõL¸*P-r–>©da)ŠC„í4uùSåæ]¾ýÌè ’\…9«ïL%u—|™X ­ h&-ŠhŸ=S« Û`¸@¨ã2±éV°m5ÞXÚ¿öß—Þo¬ U˜x¶ŒÞ„,+÷¿Yšˆ4y½åo«A…h¦E$ržIž1ÎÀT· §X¬@Í“:ؾ¼qG› Ô*LR>Å2¯5N•͸â™j}(<}t¸_^ð³">ó±Uëñ ^®OM’ÜGëùw/•– é¿6ªUš˜ßÞx£ì<óòßó,âpáÐûPùsç ,ŽÈi®1s—M–<ÿÕHê¦ôè+$…f8µQ1ªWÀñªð.TŒøûFÇÝ„e ù‡5Ôsv}‚SE¨,øP¦j.O$ÁºWO£V:˜ QÀˆØñQF!09›RP°©ÊÔÒÙXªÊ­¬¢¢osC(Z¬Ú.I±æ<Å£*oeon®^‹*Ã,Õ(Q6u†÷kÐI{ÂÒ™©ƒjuk&íŒ.žÓÔî@š‡¡¡Z’ÔMÛfÌïŸYð8'Ùœ¦kÕ©œ9¯'‡þ®ÝLâÆ±ˆƒ«ž7Ýšõsë©cÒ.Ãj5;&+ØPJ)[)¥tX†”MÊ´ih»utî•‹ÖêD¿S¥’ÕŒ_ö®DÚÀYÌ¢UÑš[ˆR èOÁç|MÎw.x([…§eÛBÅVj"ÇlŽC)µ”£´E)‰´BóЉøÞA¾•\•LÆAOl„O¢U.$¡N{MÑ%ŒQ1îds:æSSd–(áÛѻκXæàíÈŒ LUNêg‚Ôù›ÃÞÔcœÖÔýIN/€å‘låÌÏO*°Év)—Á§Be5ês—|²<äÆ:`AI[ÞøvãíÞhCŒ\±‰Sϱn3òœ&WySÏãÓ½K<½”'!¦0fö DítþlÕÛ$$•ê퉂ÿ(üÚmâ0‰54çChå‹&žžfrì‘»Hu»cçtõ;€Ä‹f¯o‹Ö|ƒâ• @‘RÊV·GÛnU Œ²_}–ÐvÕ&=˜f{XMÈœàO¶ÜûQBOÙû@Lgô·/ b7“¡åF–µ Ž&›¤Ìð”Ьl­0rÏ—šÄNÈà ¹[ÃHòÞU Ô¹dï`JÌNž·pžtqê¶ëÍ+S¡æ$¶L)€E8Eë n)‚Èʶ•íR.Û¶]˶mÛ¥â³mÛ°]ÊV€­"0E}bR÷"ϱ?MÕ±’À,ÁP•\MÊð‰…+]ë$½õ¹S‚[•µêªc¥áõŽM·­’¦e¼ñ~©©xW¡ tÄ^SÔ·UX q’—ÔUŸ0Ÿy½8Uýx­¦Ø(î0FÎ2G ­0<²=ŸQŒ“½m­ÍŽ;ÐN~QÒP8åz=qk„Úqª>+Ë'ýÂAoêÂKéêï„=ý“ÊìFy$§ãñÜ(W\¯j;TðÁ,?yy!ÜQ9ô/ÕÛ…oüuã[×§r)Š09|÷‡£‚.˜ð8 {ÿÁjQÎûp'I|‘UõÃødôSæ…UÞ3•§å#¦^!¹ ¿¡S‚Éž¬•Ö3\_}þ"Y1 i^ƒ © Å' +,˜ˆ2Qôödbô°(?6õÍHz*µ*p*­º{ˆ½‹ %¬úe„Ã6Í95ß+CÙâ˜Ì" 2S:ÑØ¶Ü_¢ç9¼´·© -/;Y{¬»‘8joݦù<\»ì£5·þßÎÚ8ŧÎ÷X<+2U|;jlê09êtìé,‘ðy©kx*ÆTJ)ض­lÛåº].Û¶mۥ᳒¶a+¥Y`+[e‹ Œù‹åI§=Š3…ÍÌœ|ÌÏÌh„ªºË͘º¤€ªÊØJg1tzª‰víJ4µ\B)UÐk“OP†L‹6x<:ƒ|sðç›G³S”¯’GŒJ¹šâ 쀤Ý)ûžt´Ê2Òç± •{Š!œÚç{ë‰Ó:ÍY?QW‘}±©–Iýœ©yÿ®çæþ+ =KÕ:í*Gß)E¨Ì)«g¾û£! J•¨^ds$:4ý†ÇÇXÙoé¡ëŸï¼¿ñímÛeôÎ´ÉÆï»è’=‹zHLûüDA<­àñv”U’0ÂÉD\¬þy3‚OÈå-e¤c´4q:ËuÙÙHޢܭü<‡n䘨\W¤Ä\¯hiãwJ¨[Õû”?9¨.b€C…¦OEŒ•U¯3OTbMŽŒRN¤Š¨ÿ¤_U†Ú£@ªþè}ÚòIÖ­왩U:~>9„©š¨eomóülqĦ‚âÙ_„ïÞPÝm­LËV äYêþï¶ŠæÄà œÚP3^]?‡ù)ŽBÖ㪒ěý=5JA…¬Ú¹hÛ¶ËuÛ.ÛõZÊÛ6t–ÉhÃ[UÏQ[AÍM+Õó—ĸ`&ºS•Æ/(Vµñ–J;º®Ê|;à4Ü+:6#¶þOéÇué ùÜ [)— Û†­ju!>ðù²If¶—IÌò³,4”eˆ5k!7ì‰<]”xÈY8í8Àd8qÌýû?žÛå˜>êa¹³š8r”j&u§PÏúEû­÷Ó~á§â”t ýsΫ?:WÕ“Oï(Vevâ9àcëýÁå¥\ .ÖæÉp¼[À¦}"lß0¼L]îÜí?o¼q(ëVÇ;߯öÄëôäÆjT <;²ÉE3æü}±_\]¶,pÜEÉÑ[|B®LΟjü^ÌýE\ßb¬Î ¥4~ƒƒ„ðˡذWÿ–÷¿íošÃjø[a;ÁR™ï’Z[•£iÆ¢uÐ^º…³Þ¯iJKN-èY7„ëÖV.B´˜—Mšž}ê>½"»fF©‚I!¨œê¬²ÚÙ°æ4hÁ˜ík¡±A’V˜Áƒ£ M`’&kÖ.5¨Uäl¯eí”êØgÔwƒ¦«2Ùáé^ß­¸­8§}¸mÀfn¶ª)y¸Œ Åÿ¡)ôƒ«ß€y.'TÒ(¶Ò¨ÛVBÝ.5ÔÔb_²ÇæÞÔÌ0¶QøVm}·E’50*ªønHUk¶Ò­UÙ³Â@È8†s„pJK-?Ê)0çxõW«TC¨ª©Uä‘åêñn®fÉÐ?5¿«£yø`‡×ð±hFD¨AqC©—ëv¹”í‚4©˜ÓÀ ¾§¾Ä—þ®z0“!°éb: d«Ú?sŸ&*žXްúCx²Á:>(שlp+ ¡«à.—²l—¢úW-›jŒs¢I]ÕB+ªXUÀ{~bûªßaÈUM9$¢èŽŽ8º•}Y©•#d—ú}™Ž+pÌ\#ÔttL Në$`¨™MÛìE)†d.턼ˆ”ÃÇó""«\ªã:-VäºÊ0œü 7Á¬èˆG<ß¹ŸÖ H¹àrÅM¢ 'œÜqkG 5Y¨íci>þâ¯_û¯»ÜW#ÃukW €–¬é2©Ü÷mwÉÍh”Qf[$’f"æš™ÓXãTX¨‹óI=•ÞÇÄ9Nï*¸¯c&ØmT)t.–¶Iu'—oPÄá´G+,–‹Ñ¢EŸJƒs;@­¨•Î)¿4FEâ*Ì&W—‡¯eî ¬‹>–ˆý6Ìêps§5°”RÊvÙ.ײ]J¹ #ñÑ5&H‰ÊõÄ:<§Z­Öøé¢±£þ@‹º…•s/݆kko£R-úB+'ª1pÕì*—«Ùáæè/Ø.Ó¦1»®V º`Cpd‚ Ø<¡êÄÙ‹ðŠ>Žþ5ÖËÅäî0]ü!½êJË L§qRÙ¡% ˆãé™ÕBI1ž!硵ULíÂ}G—¢ÎÑf¸È#àþ°õ¬>õ!~XÍ–†Ä“¥OŸ“,zÇV‚ml§êÁ©¡‰º6ž²†"¹`‚aìkûaî¼ÿä¯7¾Ý¹39ø' C>ŸV%&¿ó­_•-Òó<¥yšZÑ$ºßæŒÇ\~-€6[Æ6Öd± +ÎqäWÙÍæƒEò@P¯ßüĮ̀€W‚˜“UqM¥òЖ9÷‡¶RY[0ÆÝ°X:@$Ô 1óOà•Ul¤­*Yªf'M­tOxêó4“|ŠÁ‚RÅøw¬jªRÕ·12ØÊÇÒ¢t4îHÕˆ:I•±ocg M™Þ”4£<_§oBd•Þ¿ÊC^U9ÊÈ&8°C‰Á´Ó|s‡[âÕçpÀ3-j,l.ö‚í²m—r¹”²A«]u¢þÈd‡N}§tצ‚:øGÙ¦P"IKÖ.(@—’âW)Q=“ ,„0ôÅt°ZÆ:„Òÿs¶­\.c !Ö¿æšjÝ2¤L¦MtÕaH0èîI‚´ÄO¶ÒsÑ…â¥)}k…3óÙþfÍj°­Än"¯|ÝWMö˜Ù¾ÏÃ,í¬ßœpía'†°|Æš~ôëôÜÿ€‘„ŸóŠÞÔû ÿ´‡à}ˆÛ\×S¬jˆ»àrÁ†<8j,aÐ ¤[wñÒ¸`,êˆéÆ·Ÿû¯ß8MTXSË|pAp&ŸêOcÛI;9ˆòÒ!Óa}4÷w‹&$Š.v– È^ýùv ê·K,ÇÕ cP©(D¢TlŸ’ Øå’®ÁšN«`RYBÄìdSž@Õoƒ‚"Rj̺:”ÓJ™•6JJéè‡*v˜IìÓÜÑYª]áǬ¡æï»š÷Ó™±Që¦Ú¼“ ãS“E£iÐ,9ôýÎ>…ÅÉ6/`¬9#ä>€˜:´#}¼ù_Ò2œjü€æV#ÂÀˆÚÍ¡rNæÈÇJísâúk>v€>T×ÔËv¹tEé *}O©VlÏü6P¬àÕX1Û©§,ŽÃK%èêÓ? ZšÕøñ•T3ý!?Ušw“~%¦q`àz¶Å° e£nUÞßT1[Û´Úˆüà\m†®–ùÔ¨#¾Š8žêUéþ€0ÙY¡ Ìr¨ôHvÜ1ƒ Å‚½ 造:3 ý¹2 ÆË½Ú%P§˜%vm¡ê–©]&<Ý™¢XSu*ßUøÄ×¾§bm2B€Ö©›¹|ùãZ Xù§]íXÂÒ\[Ù.RGÿ¶Ö:%ODu„ää÷|‚f[øøþkÿõ‹?oGCÿ“A¡&K½ÿC{PÆŠó(xÙ8fïYZ=2Þ8êdÌþ0daÛ-9lÓù“ŠUNÅr5}À§ÊAðŠøÔýð FÛ_–‡F;‹‚ذ*Cw˜õ3ºH ÿã‚{vOMÄ)¥7ÎÀÅǺã>X)HmÆî¯÷™ÞÞÔ7oÚvÒÝ^aMV¶0Ž£ÙBü-îÒ %KÉ2_Íbú  FÖ©G§õ'HXöe$‹'×LÀç¤i§b8œ$1qU{Úg¿~ù´ö_[@½»˜f&¢úâõ¾ç~œSÿ¦Ðž(¹¡=ªjihѨ(ˆšèGuì¥é¸2u¿ˆê3蘕Ú53: E=R .—m+ÒÈTŸòlÏ "šáµá޾¡À ÖSeýt¦©…örµk>îN}D…B˜Þ³ÕÏu1<„«PH Tiý2Eø\oôja12_ôÑp0h,ü&mŠt öÔ(ý±ˆ,ÛàN0­çpêñh ™\þ”Mô\£û/¥l^¿ÚlnJà…ý65%qµëµ¬=ÖT_»M†HGØWëUÌ5ðÒéTÞSKE%Bö—ŽÅQ Z 72µlè*Uš¨0¾kÑŸŽªg†*—sv-ø5ô¬¼0u8ãX‚—7Ϥø;“šU侨LSõÂñÙ6ãGC)µùäG‡ ÉŸ«ö´ò¦Â¦CÕ4j[d@Z> €’‹r÷3[ÖJV‘ÎçŸÑ§žß6³Dz<µ¿“Oå¡ìiÌú8°ß[E¶ .›†M5¢¡×à?!¬ÕqÎî¼ÿ’Ÿ?wM¦òħߺQ˜Ö… ÈrÈUøÐÁ|ÚÞQëð.Yb`)X*DüÁâ=Ÿª«c¸¿>€–”¬&’„çnNœýÏ‹ú8·¸#y¬-ìCo4›»òª¹,{›ŒE]¿æ¨ï£Ç:ˆ­MT¦®áhʨ:ø ©"ӈ̠•bÔAOÈ‹OG4K ‰%‡UͲ ­ÌK¡Û¹LÌÁ‹Á¨^´!Éh€ßY5•e¤Þ·Ö1­ï¹åšYÒŠ ×[2íˆÉ@¹Ã~ìãfRL<ªÆ£u¤L6#{ø×r©¢›†àoÖ›€7ˆ:u]Äú`TEçt»*6¢BJ¬ÄÅw>6Š8l®ì¨Èš?*CµÉ&\ ­‚k›ú­¬“눫ÜU+él3ƤZ¡ô‘™úãøÆ5X¸ÓñÌÊkSÒŸ|Ü‹ŽS(Ã,ˆFJ帟 %Úä=Ä÷ž}©AýØ¥Çõ+2µ/†Qã©MfY£ÛÃØ§uïé»pjZÜ„E)h€Ÿ¤z X?޽Í5¨íȹoÀ(ø°HzD«ÒË7þúkÿëL}ÈÓ?s¢ÄÑ•U:»T&˜S²YÁ‘ ÒQÓg¦ÿ2ü‡ÅVˆfÓD‚»ŒþßüL#‘±M¦Ñཊ_?›9µØ£¼‘ˆ¹²\‡Â ·FÚ®;l¿&ZˆÃo\†J-Á|àKäj §`H‰v‘9ÍH‹"=„Ñ9]jqõIµÏl×35tiÁè˜iüˆ•ÌaÜŒx0M3Cü`ºrdGãO¨ò]>{2œÌ˜ÌBÕsÄc>ûDzÃø|Š*ÄÚè"ÑV÷²]¶ëuÛ.ÀּJ‡½”6šÅ-#(-[q.Ôs Ø«ª PtBܰK¹¡¤ŠÆ~4 U2™Ð}¼nM3ÊTÇc ز\6”­†›® zš…¾ûË|Þk–‰WÇÚLÒfŸî5Ll}z›-2Ï  ûm”í»g·´:ÿ(»ôäRÅ¢Rª SÊžüjN« ]EÆ‹HÒ¼Õµ¹Õd¤b&‚C ù)ÏãÔt¡áa‰©Ëÿiøwd’‰`WÇœsb•G'".hBž/i·h¬Î‡Éÿ]—Ç7ÞþÚþÚÝyç;GvO~êXž¢ÖLùAÚ²ùtÎÛÂÈ)ÏJ%*Þ€ål:Ø7̼ÇfÑ»‡Ò /VÅÛ'ÿw³;œpùQpˆÊŒ q>âbàÚ”ja&«¢FÓs5?X$Õ<’ à Ý70ŽfúKŽC_Òsj¾¹— ^Ácw?0›§7Löê­²)ýõÊu MU’TÊ®·RªKÍiíoR˜Ä‰y*´CÊù†tÇ@ØßÄFºžY+ðž ¹Ð+é;[Ys=Íbèïu6:q3OÈ ûlw0Zjêµl›”ÒXúN-j@ÛL}=´>Ï"¶jöMî@Ó¤êÔë:‘ʾÓm*ÎÌ?ñaù‚ª3…jhU¦*þl^JÁ¶ár)0š(ÌtpêxZ9ªX³U¬ûÓ*&VíÏ¡ˆaÈÁ ƒný 8‹=I¬2³Wj«'#ç¯ÀÊéÀ¬KM­‘ÐLO©ÚÑ¿F½š<åñÖŽƒ¸.*È.Ë–Xgœ=_Hù^>•k¼IÒuB ’³ÞDzª)¯rÄ?/ ÷Õª‡bÃVFº‡QyÀÜšEã#*Zý$ŠÜyÿkÿù“ÝäÆ`^þM>î€4Õy|ãs£é¸Œ´Pçà}®G‰&ý©ZžÕg€ÈÌþ‚Ì5¥&üɱ$oÌ:¸HøÍ‡€©4Šap»³±È_Uô„FÐG‚å!žˆ9(²}5¥™¨0Y$m'B[âˆ÷ä„·¨`NØëì¼»a¡å`˜0V¦5i¼Qc4ÛÖÈ©vI}xª8@\úŒÁ2‡©Fo/»É¥zì¸}î¦Kuw ¡µ©a¼¿ò"B«-]*¡¢J™« ™ª[UÑ`jÍóÇÐWöM¹`êOh¦ñ,¢:¡|‡s·RµÛ¥`œi§b„…Ö@Ñ BY­,†‰WÉdÓäPqâêyñ;"3IJ´¥”ËeP¿.cµ…º©Þ¦ði’ÀGÞ긆€±Uÿí>ƒ‰›`Ý0{”ÛN|ެ_µŸC«¢|JªXâ÷ø6&æ†ìLè ×Ó‘ü ·sQ…Â×j9#>bñN \×8õ\¹È*ƒÄùºgÔƒzW«€þ°UÉ£êÔ³î"¬%ÙöKˆl¥”>)É1 ” |üÕ!Ã{—ÛOþúkÿëöÄÄ_Þ½ñPŽ›£„ϧ!\¾Ù1Ùú¼L f©\(”òúÔË2e*‰þ¶I½ç‡£Ô¢óÃtÔ~X)(zêä@Z°€FÓcæ Ø%t)ü€ªL-EEÀæîUŸIñ§é“.°«»Éíhë%ûúSžéNGŒ$õ80bž°¿aRtfr¯«øÁ[°6_Ou6NnìÉÉð%ÒÕ" +’[áÚéÙ 00‚ßí£Âs“rÇ/ *ÁG~ÔXÃÖö'ÑjN%Ö˜‡îý(R\%éàÈg \JòlFÕ·ŸûÏ¿øóÆ·;w{ ñ¡OÊâlƒ÷ä1ƒõžŸŸEZ(K×16výÙ3boD2w¿öGPQ!“½Z»2lþŠÞ‰0ì3:ªeÁLæ7 W?_wXUŠ«>°/Ž÷¿ISE~ˆP‰T1€€ásbðÂôrñª¨)­|'t ÚäÔðèKõO÷ÜqZl¢‰­´7ÑR“õ¢ŠãwO%á`(Ú˜Îå9b”¨.qÞX€0MáéÙ ™³ëQŒw6OËè*,e–{ª˜ kíS5Á~ åËœ»”TEÝr¡Ì㚃?¾µ+ªçÒ@@zûAÿŒ9Ñc-t’²h)*"Pô.UmµyEóÇP¤ÇĥƦšžÕ‰°G¯¡š:Ô7/Éô³Ã&Léj[ Å‘N îãεÆt²ŸÝW\ž“Rb•t}°IâÁ û]›_–ˆµ:"òh^ áhÇÅ’Ý8âO俨wybø=¿?žùCf€¡²ÂbÓNð@£ûÄ÷âšDVãĶ%Ô Hr›;‘^N°¢ƒg†£Ü+HÝÿzãÛwëþÄëAkÓÿÇ‚$=&…,öb¡¦ßs>â«NC552sB2¸^¡%N![Ò¹bŸPkøA† êy:Ksí8gï¯À(Óÿò[¹ð7À–ÿ,#=¨Ó û°²çX6pÙ'Mó%¾Ùuʾ!Ã9BRsãªÊæN£?xð< £V3×ùÜŸG[¬ R}ð¸ó}V8Z¤ðXÕ‰>:J ~†í0m|5Ó®s=X›—J)›ªž“Nak¢]Çšy: ³›©F#XšÈN?ç;G¦º‚ÃÔ³–¦gÕ+t„ªL'a}oí5(©Œct1[c]×Fí~+¥l—ös§¦Ä5-4l9àÝÒh¬#X`jUU’¨jP³ÈìýÝýªÄ©‰¹J]©ÜYùEŒN[Zµ×c@g¾k ¸ÀéÝr¡«Iº_Â3„ ä8ûºg/ø¨\ªøš‘Ïõõà§ý§ïÿ¸“OÝEr˜ú9Û½¶e 4€Y#´§jŒ\ …#ºÙO¸ oûÛ_üKüÝÎú‰hõ¹<ùguZÄÃm9ÛF¢33Fï8õô‰mõƒD  ³CÒýT,^¼âŸ“b_“ÿ³9€ðÐÜATVž’Ï.òø¸#6'8˜RŒ°¾ôež;•ÈD'Œõš5Ø3ôbÜ9ç=áñÐe¾¿¢~ .µ¹FëÕúÅ(°8,zìûšÊ\Un2U©Ž40®O0*í3 ŒHdÌ-`RÊ6›ÕD ÆC)ª:¯2#»ìw¹ÿ⯟ûÏŸûÏ_|»óFÙųkŸˆVùT˜|Ô™|8–öþÐ8Çq¯ë„²4g?eû“ ËiÉR¸.³Ô‰î€‰îXba‡üY9=]ÉϱlÚxMõÚï ü™­w º«­¾râ«jIÛ¹ÄOFoª”A)ÜŽ÷È÷5Ååñ‡Z#FPì)F08@*Ý@¾ûùgC{À¥X˜; PÍtôÏD©íIÒUÅ©;ÄàA¼4—¦ÆsCºðH”á láFÒ ç:ŠMÍÂ†È²š¨¶­”+ß§ Ke³ŽAG­wéÙø êÍ*³ñƒÙß¾‰º£ˆì{ªŠó…*Ó4uÚ€Ô‚PÜÔµÙu¢+_U õOl?¥`kÞÑ ŒðTò¡›³¬qÝim‘•¹uOnKª7€“šSE‹XõE$í€å1Y)”`m2ãø_i›u,¶æáCJÝŸÁï ¿±ÉîÌ‘Cï€H¶§Óù]ósú¸>*œÀ1a9Ï}\Ÿê1ŠóàuU––~×]öúÏ]nwÙw¹ïœ ¼ºm—`ga¹Ëí·Pßøv“ÛÎ;M™Úoeµ= ð"^ì߬ ïÆØ)å‰9xŒè§A¡?z*ûÝvê…QppN’®@Б°¼z˜;¨,æÉg§nð<ÎÆí7%;>QHÌÉÔÌ(ÍU”))ÃpýÆzŽ–NU”ÄŠº;˜“Šp<ÝeÆpæÒR÷J:G‹ ©¥zº7u î+øÌ¦‹ìª›Î}xâõ©æÙæØàï}bæxWÊg3ÊSÝ’éów,ŸFÆk¥™v®‹7Â1:¥#>šæÿJ)¨u×ÃD5f÷sF•Ö$¶ Õ×§ª”'K cÒ†Eœ9 Ùy'{îzV«9¶€¶’ˆEk nI}ÔÒùøJQI|í?•RʶÉVŒ¢@l¢¾­ùhß "ušìY»~…ÎÕþ©bù)„åÎ*£ƒ]‹T¾YÐLáhÞòÓšt—ûS³Ìs%:ŽEÔÐi zat”,$•˜ã÷hÎPyêëÞˆe óàÎ`¢SŽiRf$ˆy¸Ÿa$!ÂOðûì€öãÓîgL­qœ$c5ÂZLëñÎýÎû÷»Ünr»ó~—û÷;o·öç÷Û~{ãÛ¯ýWE¨¿ø«"ÔÁÈRœ5g潿yíâ<ÿh:•àõÞcPæCJ ýQñ©&¹ÆÓ:+[•ýšh«ÉÃJ–ö? ³<–Ã>ˆ’úá£IÏQ;HÎvÃmi?6)§·Äj~–hzÅ¦æ¨Ø,ÝÂ$çK5õn*(~CããÚOÝ-W¡ÆÖѾbVû–°`ÿü4Š!«êA!— ¥p(¸ú,‘üpµ|º}§ú7,O¬ã3y|_Ó¦˜m±†êÌ©x>sàBkjY ¬qÜéÖ8Ú–Z.žÛ³v%߈LËvÎcŠY)â)ÝPZGìõv/cî×=Ð`GÎJ2ĈÂ"jÈZD”nÕ ÚiqêÐ=f5±Æ„H5Ã`ÈÑP*Ü«uGíÌ®R¬²é c; ›Ö6î²ïóü×/‹I¤5´ìÒS«cZr¤Šu”/¸ŽF‹ÇÃúó(c¨ÄIr4Î$ÿº2Ü„È"J"ÑÌZÎû˜Jã‘F"yݪO=¾(aö®pŠqû}Ü<;e¡W>ªÇ?“IwÁ_ߨš à&·oo|{ãÛ[ûý¯_|ûÅ_oû[ýóˆÔ¬ùS»‰»›©ªjÝ71q²Ô8ãÁŽ·æ„*x¬ZÃr)åbfàsšŽ¼ä”R|4Ý, ª×¬Œª(ûªÌ..R¤´½aß÷䈮Òc~•£ÕL[ý@45Ã_Ÿ 3v‡¡!ß1u®«¥ö¿aÛ*VmHôÖƒºQ³»8€ïä­»Íÿm‡˜>€úŠU£‡ñ§j »;`Qz¢ð€ƒ^r±R…æ;/ÎÀÏ£T'œ4‚dS4¸v¡­<@‹™(ÖÄórÇÏÛËçäñPýú8¿ÿ1J\¸È‚"è‘Q÷·p4³]ô9 …Œê>óRÙh›ª¡«b€F©Þ¹W`z—{}(Û£II^£,‹HÜOøôÞ“‘ñIÈÙçB'WdQT™ÊMóáÝR³K%rVÁa¡÷—ð³aùÔp ]‹¤.úA,éëì'`¡Áá§¥Ñ9ìÆAžèÙtT!@£Æ[$LùÆûPÖÞ/µ®#µßÃ65ë–üŸZõóvÑF2öÈÓQSÕmÉã¼MQ@L¡šŠI¥½:*ŽõBó:’œÄd–Yí1ÄàĬí]ÇLdCÒ8g²sŒÐÖd"cW‰?á˜Ü*t•‹ªÓÍRýþ-޾Ø )b-ÿ´s3Û•³ µÉ7MÊœ©lß¹W= ¹³¶§ö­3ü °=CÅshÙeͰ‚0Ôaþü›ºçµ_É¢UUc³)¨ÕSê:è0·|bΕŒLÉT/Ì;Ü‘ßZzQÿ¿:ôß9z߬æ¿O5â­gÆÚS1³™?ÜÿZAu0Gà™i6WÅçMI…+B…ä…á©ê£÷.ËêtM Eìx \>O=¸ðûÈcèwq²¸Ð|ú/6±ÿ'Ïó›•^$ô•NÆ×™½jUUûaÚØž±j`‚O:K0×tAjÍð +µe£OþéìÇ¡®J,à]$‘öjÃ0NÒ#m< 7ÈçþÎ*ýÎé‘ ¾:Œ?•Œàf²õ}›Å˜ûk¨Æ`¨c ýå·‰È^Me¢ü'·Ùý]$”z²‡Þ MD9Rþ¡m^&ùß Âm2ø©Yo zP‰°Ö±ýÈæôÏÒ£gÍyëÎfø1º©®@ªXMc¶aNPf`o|ýsNZDµ=õÛ¨†/m=`ÊžHcÕ¯ö ¥šö×ö¦Ø‹ÆG`i›Û÷ï°sßï-ö̯"‘ª€"L{xï¬&m5T.øÂôý4˜J[lz­U£Œ,Ô)ΕªÀ@¯¥õ:‹Sz 1`šæê‡.š|ª¤á~½Ö’ä”ûäj'Ußé`í8×u$<¼ûƒ€áä”2&­Btû!‚² r’¼N"ÔG8ŠÓ2N"ÃÕ¶Ö_×Gó©‘&`u<±ž> ®¶'Y7T=G²~0N´4W1ÿ¾_8ÿ1C®ï7T…û!sÈ(â¼ßº (6Œ3’¬Ã|oö‡ë³7ØÖs‰Ó3´oÃÿÍ\ć¾ÄÜÓG×kÝðFÙ±“B…íèÀª™°Ô!túÙá{'YmeúœO–ÞœQ”÷ŠŒ}X9"5Å.WÀ°˜™ZÚ&¥Uª“±=ÛÂXÌ?ìÉWà H%‹HVÅ«0X²C$-B™Y•Lå£}&ÙRØíá³ôbGÉúdâ5Í‹Bb«1µÏC$P5s×ÿL'¨ŠüGÁ¶•²5w|ðI*2¿Ž1JOnrçÒ±l”YÌ[oPÎ|jñjÌnŒRo¢;÷ÝP†p°R[²Öö²Û£ , Ĉ†APžÌƒöoeêKòRÊPª+Õ=!e¼±"ƒÒ”¯VÁiŸ=T…­ºêÂ]Þ[(•裆'"D²¶jqÝYf?ðK—uÏG[é#F_/±@ø½q»Íž^,Í6ú_$µK!ÿ;€ÿš®pvÉ„3–êÇ{ø¤ömZg:ª~„SñÛ æÀòœùÄçƒHBвBüŽü—†|tn„ ?wä ;‡8• ã·}¨Bô ¤Cœ*¢­æ’¢Âت"NµeSHe1²Ù.%UÙ°*ø)n–¤šE<áÔ@!7ekû-b‚‚e2wxà•q2x‚Š3„æQ¦µ ›Šjœ¥¦a½´ŠƒFÐ (”r_Ñ=^SnÊ™_¥þ¬ëM›á3®J%ò#“@ôo¤ £|¾¿Êp;FS9˜&ƒƒZ¬ÊÇt·’š<· Û+&©'å'BþVJrw¤rþvY<]yµjÛJ±j‰J¯š ª§OýJ¡žK÷AyclUóÕê+’ûÎ}§.¶r˜­û™ÀžLÚ¾Gÿ¢ój0çkqÝ\þD­´Bô'§òRJµR!ù+epËN¤3èÿŽåWâaòþgÖ?„ÜN m-ðs{³ ¨Ü{dr.ôç+äÑ@JQ}v6rÐ¥íb x·ìÁ¾nˆ:‘(jü¿6…`ž°u&wòµDõ¨ê7ä,ßÍP´Ÿ'˜gó=”K Éþ >uÅâ¬S¡˜™Ï! Ó,fö `Éê ÅâTÖ·<¨Î >ˆƒýxÀz …§¶ªVxƒ¯Ûîœ>5U—ŠíÔƒM—Ò¨4Å© IÐ 7x ´~Îbµ·Ãö)Aç©úÈ&?»Z_â暊_·S–GmNö.é?ù™£}‡6â:§ß ÓóQP)60uHdhXIèRƹïÒ+Ž…„üÊÞãè”8»vh˦8GöÎÇ$†4¥¥¡† &Þ Hô|Öƒ‹ ó">ýg½:ç–üÅ'©XÊNž>o.¨QḠÙbÐ¿í²ª4ä¶m°uXÄw\iÓ“ˆÊ»Etœ±ÖUÏ~…pb´Û"RJƒ©{Sa¶p` Jo+ìRIØ®Q†…V<`ð“)!u ª õ ®ŽÈÇ›/¥î1\—¡åZ¤)°sØa ÓF; ê@Û6f{Íu$ÅÅÎoÎpÚ·w£Ioà2±Om¸ŒòÄŽ¡².3õ&¨<£,TüAð¾¹ kÃ8Gç!kðÈ㻜kOpRýE{ÌN#¯?´7õä,;ìD.éL±à1ì}*Wj¹ûÉçFï'~Rþ¾_€Î 2r œµ_ž¨Iá7I„Œ$XÍë2víY„ìÅÛ•F·.L¿>“«¡Vb¥oH i ˜iétZHh·þÀŽ= êÍëÔ¡tÔ/æoòàÄžÐÜêZ³àÖÝõîáÐtô7é–ùø‘-‡!+œêÙ- 8f󵎩™ÂiRV;«Œj¹ ”Y$:x#†‰™ÑM÷JªÍ°I†¥!‹JáΪN½í{-¶Õ1E5‘û¨ú×+ã‡Â=‘èêá¡Èá`ü1— õ¦V&J°Gœª9L¿×1¤¨"(×Ì¢`ªdú•QI˜%m„™ð†Ã¬*“×Äž¬2—=ŒÅ"\Né9¿ŽñŒ€‡GUWÖíUñ“UÁ—ÕÝa6›o ªóUߟT”‰›avqu1©‰U÷‚9F½J":þ}j“—Ü-1'ÿ‡eF ¢MT8½'•†ÆußLÑlX¨Þ$4€V›zU/ áÍ_¢ü<ùâ5÷_ƒ½Õ†‰íñs¥Óظ¸åjÌÙV Ê0dz¦ç»G¿s–*/`€•ÜgñCçÆVïûýÎ}W‡+5©h¿]#¥I’áÓr‡ÖÙ\îÑr¨]áú Æ«=Å¥³@Jµþ+•™ËvùY9»ØjiZXbÎêñ­ö²ëk ó´-UZˆ?\ ƒoˆ“â'ôä1 Äfr”ùð)äÛ92؉‡K¯ˆËi›*Ì—§3eW/Ï^F-|}´Qk…î@h-ü»pªÆŒ#aß)&ÙæƒæÆ<ü`å7§Ôn4 -U3+²ñ06Ý}t´ù2{î!kynPùÃJF<‚Ù:¸®JˆÊ§ÖŸŠÆªÖçG-O¨ëáÏ Q…ždTUatuðªY]Õ^fÙøÉ‡?޾Z VM¦&\ nÞ¡¬;šÍ›NÍšÏ&á~œÎXÑ<Î0eL_GÂõ×ó´Ý^LU¯ÕÖ†ÛLÙ¨ï³ñœs‹ýà&¨Ç“¹Æò!2^s°8b"Œ3@÷å0Ø&k5ñÕ©pbSÑ!1:&&ÝäŸe««Ìbæ-݉Mà4–ÌÇŸ8ÍÆØ¢æs¡ÜNu&Ol9mé’–R ¶öÿ·ä¡Ò†»eÔÒÚ¬ø†O·­l—íåz}yyùòòúíõåû××ï_¾|}ùþúòíõåëõåËõúzÙ^¶íÒ¾UAry‰1´ ÉX#û«tÿ­*Ñê¤|Kw¶£ôR›ÆZD§ûO†¬v2 ê_s[5ù÷'fbÂÜßö}—úEó»óù—Sѵ¡èU©v€!÷()³gè2QûÞÑÔjàÔ¤©Xbœ¶¬«×¨å•†!XLœ[ ã¾ó~Ç®}ˆ–ç’Lb'lÖ3/Gd¦s9xr—Ë•Aºi°âÒæ$'M©¢ Û¨áªñWyg)bDrÜV¸\Àå>©âÈÁCÕmðÜ4Œ1 òÏÇ©«áo@«Æ<ÔÜ}þâ®@ê©ûßuýËám­Zô8lÌ„‰ ýÌ8ÕS©Ë~;* E]àT«Ä úÔØ>e2§’êTCë„æT5½ÓßÙ¯e<êD¡Y—^Y ˆÕü*»‡k)oÂw.µrºy½ Þ\°š#¸–È>ЄVŸ[™’À¢‘ m]–#Ø=«Ò£%˜ÐðYÝ3ê¥æ»³yúÔ•XnN?Á÷Ùõ*çE=V ˜¾…TMëX/­z©”‚ ((Û`R{méZЦÚT e+×ëååõåÛ×/?¾}ýÇ÷¯ÿüöíϯ_ÿüúåÇ—×ï_^¿¿¾~ýòíõõû——o¯_¾½^¾^®¯—í l*ó^?q\ySÂD79!ÚçÑò©C4nbª0sKa¤ƒd.¥ÈèãEÿZ[Ϊ§ÿjìod : ©ž©¤TK_©„§X=+ï·}¿ës 4¥Z1.zA›q–Sa p-Hnd±öÑô”«.Ó–šë~7üùÌq®Ú2Àž?E}´RCª¯Qc Õ:3ÿ¨%yïÝ“=Ö@.Ä—©>ƒ@êÕVóŸê9_XêãÔX=€Þ¼ºüºä+µ~ ¸‡ ‡ƒxè(a-#›gë|QwnŠŽ“èQ;„s¤"ðù}T\»÷Þ¢†âhúý!³ëV¶C¨¶ÿ¿8ñV™|µÎ\<<òñÍ ‡¤ôÑa,žÊø>I0øÔdØ N÷XAí8Q7ë8Uòd]:çýjF-ËdçÄ윧”š­'zÿ—ªYtÚ¯*Ìk@(Úp+¤ÇPIÕ0Ø-—ÐPžJ¡ÚÖׂBpÉ¥rJàë1ƒ÷1·Y[HÕwZ§ô§ò2M1+È–OÍ(û°¡aõ¥þ딼!*Þ/7öÜÞ!Ÿj½!Ú¶¡ÀM]_Š+<µ6àø’¨hŠ» ›‡ Ù,r}éчI—Xݨé3¨i>¤3y³ð=ix¥®ÍñdD© ‡ö h@ kmëþö·2Щò6ðð‰Gê2Så¶bj:!Úa,µdTbõƒ¨”¨¤ºÍÄ¥Ah}ÐF"£C¤ãä# ʶ]®×/_¿üøñíŸ?~üëoÿ|}ýq½¼”²õì®Þ¯EÐ`»^^^^¾\¯_®×תþ$÷£‡:o8v8U"}?ª óï½iíõK­Í$$H\PdØÚ{º©áµGq€±[aP ¹ßoûý.¼ÇU›ÚïË€sP*UF”NNð,œÆ†EÀáØ¤ÓàH?´ËY ›.I“.Z¨c“±šU.ÒÎÿuúâý^ÉT]Ñ8…·PšÚà”³w4ô¨êë— 8Øý¡ñ´E*!¨R¤jzp!î±ôíe¢³¥Ünþ¦ÉÜZqB'ãTšÊŒ¦^ò²ö$t…´=A-~MŽt"ý·û¨Ž6Ý$™\Ÿ…¸&ÍTÿȹû£.`R¢yõO@¨ g,Àï$Syzîï=ì×ÔZ¦ ¢çþi¨ª›ú›Q}`t$ûÁbDɳÁôêdz_ÚÀ“H‘«ƒz<¸›+g¬è-f†ñˆl)äèqR¦¬åÝlçúÝé£2"p`vŒË–Lødo¿Á V•«_¥[)_.èn@ÿ“‡~ »srð¯m\Œy·Âë½®”áÇ7bJŽÁå$¶ry¹~ýþõþñ¯?~üëë×?.ÛK­kî9\Ĭ0˜w4k3÷á”Ù¶ëõúz½¼–²U¨:K\™·9äŠ0®Èž]]CÈVq@#´( Š0lýʬïK±¦:àÌçïT¨ëÆRúví÷û¾ß¸ßi*yÁ²}lùT•õByVeÚÍøJ$Z0õ×íÕš2„Òî«2ÚÔ4å^ÿ½Ô@ sbc–ÉqW* ÕL–U`YY)÷½yüÉ>E™/‹^È[¦ÌˆY³öÌdHŽú®Å©ŸJfv ÄrqœÒd»J}oª§oVÀ‘šª€4(fB‡Ÿö£wí«ž¶ˆfk÷{“In뇜¢øh„®qÌõßë£Â‰ßOé¥é¾‘¯'¥s\[•ñÔûÂFü]>ë‘:ý½µþùE@9(ÍŽ\Þ©¸S[ÿ2Á§}ÍP2\ªy<™DÎSCrðw(©Ö;æW+d5Ñ,’9l[ÙÐ*©ñ±amòŒ+—íúååëïÿñÇ}ýòǶ]dçÞ‰%5¨(§˜3­Tòåòry)Û•²×žÐø¨‘²ÄGm¼HKÈ®šsh¦‹ªàƽ¬‰ª²•ÑD:±p1²uUÍ6W'/° ¾…°ÉRoû~ßÇM‚P¥ ú0”ªJ@)쫽CnƒÀ`ÙÂQØJ›Ÿ?=a•:*Ÿ:)EÈM@L€žW ÁN³öå”&x„"ûÎû]ö½æþ‚Î+e’©úT@HbÎŒ5ß±‘ùg)áEMeÝä5‡x+”]#ð‹þ ÿÍþgX‡”z›^CxŸ“¾‰”žZ§­sÜ7ÍÁ+†æFK´î^'—öG(Á *gÿïžû/È>²hDaO×›>RyÚ~tªÁöƒGÿX¡Bh‹fRù©llÇÈù\,>z>ÅYpªd¶áN•Dœ*Á%á]¾áøõH?ûð,d¡¡J7¸pVåD(ÿ"nþ “am”Nõެî¦Q…\,“P³set™[ 9Žn)VDŽÓ“¦>7pô8i©€úœa™Æ6AˆÝtŒlg!h‚eÀRÖ·ýI œÚª­¥ŸªÏ5—!X2v+—×—o?¾ýÇ?þÛ·×ï¥Ö’¤ÊùQJÏ÷";ž7CXã&T •¼\_·í²ï÷}¿s÷Pˆ"™PYlÿcË”Â,БþJÂ:µ¢¶dMfÕS‘b\I Š™ü©ž»e ¯¢`=†qœä¾ßî÷û^ß~Oy2Óêá1AÁÓÝMmæAN‰²ÀÇÚO¶Õk˜Ó(†Y)¡dáU‰¼S_âziXÍR&æB¥ü½ôbàgš‰Éû}¿ßxß¹OüI—Ý`BýáViº1w“Ô2 am¡I¤v×Ë5•ð«/=\ዚ™ýÒ æ íøQDÿ^ë4­¬”"‘˜¶YZÉ7¡Æìp ·ÓîÀŠÔÀß“KµBmQs _™k«-Ÿ¨qBh€“ºï­x4z76, |äËÿ0‹ÏPÝÈs@Ÿ¤TÃØùÌÜß墮ùT›@#díž‘U+¤þB¸¶$‡¯Gþ-ä×-[]ßöð íPë¦Ö±R³h§Hp1Áz  ÐÂJ—_.:bal¸4A´ ZÎåÊä‹ hŸþ˜§ÄìR*_£½6´¡ªŒ¼"ØâÍ]3_;hO }Ü_P“Zwû`ÅRû ½(@)ÛËõË÷oÿøóÇ~yýQJÙ¹£%Të¹H)mßàN“êέfý×”lÓ˜´mÛ¥ìû}¿ßvîýh@©S‰ÆGûôB,ê* \£`æ®h”ìJoߪÊÌ4.+ŒÊû-jˆ=ý›Ò î¼ß÷Ûû½bŠ;ç0]º«T#=Íw´TÍAÛýE§/Ñá ‘& =ÖO`=ãM?¬ƒ­ÚÎ(T%Ëž`Ÿã@£úZšT†äÎý¾ó~çÞ@ªX¹Ç0éƒ~~¥»à>Ý€+]²ç"¸ÄÝ<"t6'ùND¤gMS)ÚƒG&ÁxœÜUe5aE ‹nRÃi‹¿õöça0*+yŸV¤{#b&Mù=j§ŽZ™/èÿŽœÿtËr{ðÚIð9˜•'h¢Ç±`ïÄcÏrÁ¡vk•0¦ŸSõ˜MK/ÊÓÚ¬«äT>‰aMuÑTʧ"ÉUUó¦`ëUVÀ¯Žè[-þ?yÀ0ZY>AŒÈ.ýjº|8]˜l` ½³Ê„õgúø„t0uŸ¹É(̬ˆþˆa H.ç})¦§ïPž±U¥O‰½j]‡™àÓG¼®5åI©!§hžúf«çÁu»y)×ËË·/þùý_ß¾þYdk6õ>*jŘG7ØÑ8“Ô´Óo*†ªlÛ"÷ývßo=€.N‡†§úŠTÍ›*]‚+S®bxÔÛýqàSÈlO*ÀaíÌ)µ¨ÈƒÔÉ}¿ñv«ö©h¦Ž¸Ú‹.E|¾¯Q  ¶JÐóN¤~î‹ ž¥¸Œ>ºÙt=ª¨#Coä÷ùÔñS7R°–i©ò +VËfôï¡ÞyßɤµÂ‹ÒÙ—¨šV`U†Œä :;z ˜—ºî žWGa+Ë<Œ_¼÷U‰bV‰SM_/B€S&øL>¬—K ‘׺šï7ü(- ¨ýÞ³Tn‚׃ÉMDþ >*‚® BµE¨)¶:ùf•ݧèCMÏzm¯s)âUþ}Ÿð’D?`¤×yþÚG=…uZþ˜!e[nÄÆ šŒ½h2k/G".QjOÈùA‘Užæåýkµ/+Àªê ;ð%úÝwÖ<'" Ü9Õ¢%óÉÓëx¸r4epØS;Cs‡2\IBKõ€K™3Hb;[ÙÐAj³;w†‡çÊrÙ.¯/ßÿøöŸ?¾ýcÛ®”½Ó½5^ ²ÏkØ4IÊN/Ô°BéÖw%l:Ú}¿ßnoû~oƬÜï¿Â©ÞG5YSÎ(«^Uò»Ž è†Íâo£ M•Ùó¥æd_À7gÑå¾=³~'ï¼Ý«àAó¢õ•kÛš±TEÞw…–e„³AuPé1^@0önB‡þû@ãaùSáë­R!w!‡kNhnÖ™HÕ^ÛÞ}};÷ýÎý¾ßïÜï²Sb5UÄB´5Ry±ÑY"̾´‹C’Šyõw }¨H] ñ(Å_ò>˸À*A¯í+HÒ¯°Ip…§’¤$®“Wµ"`Ñ‚<§ùðA渢áÔÀ#N=€¡XÌ*SìÂ<þüsFÿrNh€3Àìã-÷ÉDº›ÜêÚäó’ÿÏ‚òƒKû¼B’¢âðßp*ä¡*áhÆ)œ€Û'CJÇ«D4,{}9ÝÈäOÐÑ}ø\JmÂ7†sÛº2£Jý߯wî±-Ég;Ýï`¤öTù¥˜†&&C3uýÓ¾P=‡ôÀ“¾.`f„ÏÍóL³§ÄwF†}ªle«AìgdÓÿ캩ƒªœ¯(>š¡ "Æ¿ t3Úâá|¶|‚^…N´¨ðEñPC‚ÁË{µh«zº#˜ö<^ómÙ‡þÓp4¥†$­¢@BNv.‚ƒ²a+¥°B*îÂÆY!$ˆ¸lׯ¯?~|ÿ×·¯?Š”Š,z Q'wÝÚ®{Ã&²›M~ØÆºC¦øZa‹x-Ü÷Ûí×}¿U•ªÅŧÍ܃púT8†ÕûûÝWÁt9Qõ¨Â„6ûQÌïT´Ó ¦¾ÇwíÕtß÷;Ûç2ˆû2­WÔ§è^pU¦:¡e¼R8îB¶ æuµà;‡·Ë„ššÉ·Ý°°Ø¿Ps¹Sö]¸Ë¾“;ëLçÞ†û}Äß¹ßå~¯+ÉÂ@èO™µ & vl‚EWg<ðê ;c6ós+´`w¡%üCÌîuÒT F¼±}à(Ï63köÇ€š³Ä"vGQ.„clãÈß½lóªlÎ"U¡÷õ0ˆ5á1ÿv}êy «H1³`–Þõ9µK«ÞÏwâÏßÊb:C¦ªWÚ2§ô7ØÏ2¾ïT=–y¬qj2ô‡Ÿºqªßã,NãÒÕK3²^'“ªG$‘ªßžzˆ"ÞOÙËÉðx:ýÈ…|úoùTºÐš8ŒFl­ÏfüNÓó—(æ’oE„ÒGøŠ8iß}¹¸n.ý8¼ûbÔƒ°dbõQÙ·ÜHbšJ>‰i6b¯™•ˆ˜)À$TÚ èZêTc*G•»·9ÊdÅ×${MRåïv{1¹ãEº¿Õ§Ñ#Ò¿ö<5ajžÊpµ,ª//_ÿøñŸ__ÿhÖjêš3·UvA¬â^hXççT$hPöûí×Û_û~£æœÍ8ÔU~mþ JáÒLÜ©e"•Bà†±ÃTFîwVr´B±ÎrïåRû}ç}¿ïÜo;Ùª™äPméKµºÑö?¦óUWUé»Ë °ÕU/!˜Ùƒ÷‰p§»1DDŠiTÒWK©ö—EƒV¥£ÍKGïÛýB Àz4At1#‡ ‡ÎËj‰UË'`Ñ݉0ŒV7Í~õJ:1&ç5u”Q0º2éT‰aúgÈ¢_J1&ñ+‚A¬'SJ«¶°ørÑ©nü‹1‘À&Åzו%ÿ}~Y3‚éŸ[kÝø¸/ÿQQ 𘠖¡÷¿º¸+÷%3Ü#BúÆö8dKæs£ÿô1wýr¾nªÁÅ;5²*Sé N‹„¡ ᬉ^6¶²rà3·F²¥Ê`ô§),fÚ¨3‚âGfÔ•ê6íV*¤S#`¤i½GxQ÷ˉûp  Â0Ó5dÍF@FˆÞÏì˜ðÖXã”7ªRh²ÂPÁ¶Y{Z„_ë‚sI¥áEÍÀr»ÀRŠ®³Ui鋤F!h|Í·ôE ئV¥ôpÕ(±Õ8»Ñ”yã˜ý”å°Uý0fEͳ÷-®*ã-d¬òIÊÿîÚ!>–¤9žZ°<ĘOýôvÇxì %b¦ª 6Ìíq”ÖÌqè`öÏ4¡'@2žs ½¿êCðÐÈùù:?õµtmf‚eIS¦3𦓯RÇÕ„£;‚6&·™ªÚ® V+J_5 “‘Ø_(WÅ6Äá6 šË¸ý—ÿ£ú;ëiRÖµ‹'Æ»âã&Ø+²ç|eó×Ï /Mj¯†‘ºwíï1T=!‰#=Ì<²|õHëíÜA:÷=Q§Î¥ƒÆ'œ…¤*ï$’Þ÷øJe/1?Ws&X9·Š3§©ìs…8Ãc†<_`˜–î®Z`G%“ÖÜbŽ }¼ìkQØÍ·Ã8Å[+YÅšãdèñtÆér•_…ì ~4£HË‹kún‰Z<Ðp_Ã_d¥ÚE©×¯?¾ýóõú…Ã,%"ÒÒ¨œ ÂÆ¸î %K– §|ø´'uRjC¨Ün¿~þúÿî÷·žù§d5[°/à8Õ°±n¢§ú†R?nþ¹Äô+]Í;bOm…õ{†ƒÉ:62Áfa+­‚­%mŸCPºÔ§¨ ¶–¦%&ý4Ò'½ôc•ŸÉ>IÐZ]PM÷à‰s»qD±¯² *1fóeIœ±qlÆqšXJUh'Ñ-œßo“¤Ì””ªÕº~ é¨2}Œ¿Ížr39L~tüåd]°¿8+Ç·p‘®8Ö@SÝÌŠ - nuÅ ØRW¥‹’4l+ÐG0©µîÖ‡Ãíÿ}ù_›l%–Ëþmôà?!'Þì,IB Ñg¼ºTýµà×à·.lªúõÑ”œ¯úûBä!¸4¦›$ˆ””û!Ÿª‰R»ÛùTq¤nÚ$wÖö ­ᣄp§j—~jÀ#qúǤ;ov«&zX;§|ÎoÌ6ôèŒ:PgÊë¨J},ãÚì-@v›·¨ù5㦠à/C\‹7±º*Z0ds˜úI1µ2dz¦^?…˜&ªoß¿üãrý‚æÎ*¦Ck›ºÜBÙ)~$¥Qª=¥Ku­ƒ Üå|Ö¨O§Þn¿N52cdçÐ ,µŽ.»L±ֳš0m¨· =ßTiMmªÒüT‘é¨üh¤‰ž“0î—þ/Åé‰t唂&ÅÖ"½y¼šH¨ÀŒ(ðØ…ÆpãÔ°Œi©ŸruôÌ‘ƒ)ˆìªŠª#f=-õ|ŸÇÓ}¹­M'$•lÇäÚA|G“µ«k'žõæŽÒc~;ះ¤õP©—áL"·Ý Ó(T²9Yˆ!V}1¸ºW_seÜúî\ø)!iú‡ú»5v} à¢rÛWlÿÏËÿ*R6lcAPþ¿ª5‘qÝ¡Xòƒ`×1éẍ=ªŠß¿V‡¯ NgçG-üìSÆT!G ò’D¨]²¿++}j¬0³!…;ÍCš‚ÌÏd–XÔ&¾n˜Î¯Úò¨‘þa¸\¨ YV†W9 •⑺ÀÔIòñi ùU™Îj5[S'ÚÀ€…€Bm€Ã&Èv^ÓVGZWzïyý²¥Šqd>rÓk P3Muª¡ÑÏ‹Ult˜nÛåËË÷o¯^//¢€Üǰ”Y­fýÉíe€û²ƒÔ‘­æ±ÅhèHnPZ·ûý×ÏÿÝÒ©dᣊԚøpúÐ"Ÿ§kq§SmõY65@™·5!Ú §íð/J´h¢ P¬~R¨Õ,RŠ.´R8©X+ûä·t/Zmy`ê]Óh=Ç-®LUßiPÐ$«*0 »ì¢æÉ1B•Ïd⮃íN÷H}-?8¬t ëÒ\°µþD€¸éWú2ñ×»b¨IÁÒŽþ bPIþ“Q´Ö&%ÐCYHæÓ ¤#áCü‘÷Öç®(âôQîhîÈTâõ®¾3Ä;¦ðà] à¡òúì>B˜ØÃ %eùøHL°D÷ &6ú'A¤÷_%JÀù®š»‰ÝR^ùÔÒh;ð‘xöóéwrÙÊåëË÷¯_ÿ¼l×Ö’ÄÙ`ImÝ‚]në迾͚”9¥hƒg»W1ó‹¶»ôVÖr¿¿ýõó¿½ýµï»V‘xW´¥FK>³Qqœû>Õ² â4>c[-*ØŸílЛQ}Rƒlã¯ÂN\ûü œ,ö8œt´¶Õ¶U°7¯*|iÓ4#•˜5Œ!z¡cZ;©ïÌ[ºÞ0óVÛí¨r™{µi‹ó<€ùäͨ F]Řð"-™•v ¯mMõ"«³‡ ‘Š"÷AÁ:¦â VŒI”-[”›g>‰uUµ&YE£æ£Hdswy×ڰXªªþ{6šØ~WóÉ%üñĶ>‘¡ÑdÛÿ|ù¯ñx)¥§þPÏÀ/.:œƒÜ«d˜­ò}?0ú¥ñ!/IÒÜ””whÅÏÀö‹—óÜw_D>©RR4ÃxÛGœ*v‡3k¢çSáË`Q­ž"ÏXÒ¸‘´b «{ÝQµÀ‚õ4€½m{QÜœúqRç™GO˜Ö‰ªq"«M›”g´‘‘~4 !3—H”+]\å˜ÈŸz>DòÔ£Gf·st!ùÁ£¸³s©¬…? ¤²Å¢Xp"–ÖOMLpÙ./×oß¾üqÙ®… ˜Èõ: ëDì{Ç©•Ñ÷¸"…*ߟêi) @î÷Û_ œÊD0$ϓѤƒ*øØKÁÌû‹dƾû”«ñ¸ ºæikÿ&ø+j€R/E »-JR©¾wi-TõWÑêØJšñ„µhM°'lS=b(m¥-TÞµü/ºNµ%i”æ»FLi8lFº‘#a"˜}A²äy)—Ž|Fh€FeTESº|TëŒÅξeU+å¿R…ÌzZ{sjÂD3ð#8Ò($ jÔQ_+†˜L‡õLs˜üÇðÿþʯO¸¨  Úî88땈¯Pä4üq&B E²ý×õ¿ô¨=k¸BUÊ¿XÅb«šë¥ÙdV˜ïCÁ×Nu<û¸€ªï|Áì$‰cp‡s¬õß{BA.â€K>u8h£Ñ^ìTF|¹^_¢­|ÉÐ7“G€m¸ÒmƧ¦™~#µÀÚ…«÷v¤gFà›<ÿhõ`ÿ§¹kÛŽG’I²Êݳû3ÿÿyÛ7Y’%±$€ÌD’U²%{úìž±ìR©Ä ˆŒ Lêî¨KÈÝŒ—k×—AI7¶mÿóúö­æR‰ 5Q2”[()1µ ‘ð/15îžpµ!ÿ°Ä«• [3©Ù#ï)[Cö»AZKÌv+{G«‚B°éxÑʦ@Ç=‰T×¾qÑÑì"¹ÚhßaÇ+µ¥ž´èv‹°º&»kqÐÆN†Üõ+ɪ„‘R32T+‡rj˜C3õ*=á©sUÄ(ú¤’4Ó³¶¿ÑfŸ Ã÷ %Aʉƒ‘bº&Å$Ãà^´þˆFûÛŽ\¸læUòùm,Ä×SÃùùFvÞöe@üú«Ð2¨ÇH„.¼Ã©bíÌ……åOÿå ½ÈïÂÈYÑüÇûG~ÇOŠ»Fÿ#7ö1‡ËyAÝ.Žq"$ÙÑúHn7Süº1|2ðLjfòÉÜ Vu\C¨¹qí6O¸NÁD‰†d#Ñ<¦7ÙÜ£ÊÀ}RóX{˜‰Oœ[ŒÑi¾.×/Ë¿&„)Öü´uvšIN–RÖÂUÆ&a:™¡OÞÚ x+oO?¿<¬åMý÷š¼­Q¦[GÅÄg±ª¼…{LŒÒ°A>Å©,?È`bt8C¿ âħ:É/Nõ©^‹efæÌžŸïŽx§=ßÝa­ \òP¬ãËò¥u„╤'ööÓ{ß³ÉLÒ¾nìþ\Ù!´ø'º¸þÚr’ÛöèbÁ‰üusþÑ&U‡ø›UZËT©Æ)FUö¦X¿Dï”$¢D÷líê´ó´\.¿Oó5i¥9î•öSZJ)¥¼m†𮩦;k¬—¸üËþ„{}}zxüóåå©”5æ 8uÐSÀù² à4ókg“’Á¼_ÿ¤cjgc+·J¡:, Ô!¤Z®ÆeGíßI ®EÄIÇÉP®wÃ_„ÆÄáx‰NÂñ¯8ìýè­íôo#]½jR ÚGhºÖDlÝÝïî—«s—B–gœÉýâ*H±àÔòžãìFK€íD.Å^®y@"d7æMæ ˬ— ® .‹.3– ³bRLNŠi’i¤˜'Lõóm™ÒF°fC¨ Ò¶Ájb_ êr.Ì‚¤YÐpˆ‹Kòu ‡õßœê HÙ¢œþô§|%r@FDå¹”Z°ÏØ÷„‡~ð büØæiïÆ}£¸ŸqVÏé;Ȉqn ý‡ä ³ á†&8#›‰aSâ³C\y½©Ô‹ÉX«e&SÆR$I¥Kbþ)‘NÉy{ÿWxLæÜódß–Açp÷† G÷­ÍV×_!êƒÝ¾ëöÿÛT=¬vc#ïk>4Ã/Î/½çûQÚˆ³¥MíySÜéÓ²CÕ:ÿ7‚ÔF¼ƒC9–Õõ/4çuÚ~Æ=jº._.óo€‹úƒ°˜ˆ!mQU G–µ¼•Â"%¦lÒ@‹Ž¬uE­‹:–ÇÇ¿Ÿžÿ~}µ&*1MnQ@îå8ß„x§G K¨Ôµ§ZVÌG ÉÌÂÐãþmuf‹Üª”e¯ïèV˜–M¸'yç¹0’Gí\[)iØs¬´ì8žlû¸®ë#„º‰cbÅÊgóA¥ 2[FÜ'ìêJ ˆéÛÃøœvõ>‘Ƭ÷6¤Ì¹õ=ªwѤi”©ÁÄ•Š¥ÆªRWBWÍ´×MÀ4c™ôºèå¢×Y—Yæ=OYT]qU0þ;Z&™j·n=§^0S+|×Qï.òè26÷%å=FB‡(­°Ñ®wBΧÚÝ+…«¬?Ïû{Q×øgO¡|êìúÕ ¼wŒVñÓ €öˆô^ƒãÍÁÇÖ»pG¿$xpÈ.EFrfÖaš NíÑ(‚hÇh ”ª©L¹J8‚#'ÿÈ?&.øª2~¶wæd ÕÙ@Æ ©[h#Ìôó÷…•·Ö Žg O”Üýõ5I:‰ƒ²cùú=èÀ·¡î_mþý6-R¤êPYóQ½TÀ3¸ˆà§ŽîúŠ7ÛÞó|¹^¾Ì˜v­¢t£‹Ö+ªônÖ«µ¬å­p­ÝätØ2JwC ”*åõõùëãŸÏßÖõÍ?\†¬¶Ä:å¤4Áôo }~ª‹Wúë×ÇðNéµqõ©p@›ic†¾ºØNYë¬àsàbÞ›H£OÍa‘¡¿Î¶¸˜ÀŠÑË´½O+É»q7ŒÊC«ÇÉï\Âg „ÂaËý" [‹»w;QJîíš`©äDÔ„€=8wÿw5$«{õ»$¡ß¸ØPÛ,GªŠyÖˬ_.zYô2ïf©Ýq¢bŸB ÁÃ&GU!󤛰UÛ`0ô»:S ýjÀÁbâ\‡ÙVÎÒcºˆÃsgôf ~N×-yäçÿ‡;М8ˉs¸°wácÇ-SI`Xq={ôØþ~•êþ´=ÈAIî8Ÿ"˜¨”URžx2÷._"‘E&lz ¨ŠE©ßah´P/#ÍÁðIa^FŠæÖ;Þ«'‘“®÷)UïÐw˜´âM…ã]ì{–‘á¹w¶“q|#m.TÕŽÒDAí¹PÛ—»^¿þS´.*%‰L¥¥tPµ:¥,H¥KòIÄ©=`Sxö¨¬áíePèe¾.óuo=ª› ¶ÂÙ–¿¼eûdY¹®ëÚ<‡)¶[ƒ}¼¸å2Rȧ§‡Ç§¿^l¼ݩò2 ëÓ|ªÿr°Ô#Äõw'sgJM®×Â5ji€ñßЫð ðE¥M ÐΟ¶Qqΰ@¾†©þø°ÌXÒ6˜T@Z•mÒ ásñýã‹ 78ä xâ3ýü8 ›™.' D¬Hˆ†ï›k& ¥ß!°{ƒ9}Ÿª‡Œ|GmÚ¿§u˜‹•’Ƹ¥ý=´eí¡N6iÔ`2k³Ä"U¨â2éuÑ/‹. ¦©`õç £›Í%eÛtèn$}ú­;ì.AÖRñM)î@»ÆV{‘µ¿Q‘< Ö œNøTs%¬\WYYæÿœfLHf™òÁO¹€§á©çÜŸ6ýOѪYÿ{ŸªË ùàRƒf< šïzò»pjä-%úôc cŒôlë˜ žçÿÇ7£7GR(?ÿ㠃ǽPæ  àïI§ÿð僸óÜå8Ò˜lðïÜðàäçY.æ1ô÷²§±š8ÐÁh'T T•õܱ¦°}I¡”ʆnØLQ5Wªò¦ÛHªû¥ÉTÍ”ÿ¼¬~×8Âa\èG矑Içe¾Îº°U½û&ùR[‰6»)SKYEDX*^R;´u²o¢ÁëëÓׯ<}{X××ìÉ2Ä*ŒTÎTÇ!ˆ¦Gϧú¹~Ò5¦þªp<¨tsÏüPû£}ϼ×rç©!~NÓ7½l<4\ Å€Ч«HM(-¿ %òšbGÛV÷XØûÀFJ‰ÔÌ DÚj/L>Àpg’[iôAOˆ#¤ ÓÆ0bw™™!Ž1³‘H “~šü{‡/%dò;õHñîqI•_€ÃOÜ©º,z½è—E§ªá:«”kOž„Ó¦¸Ìk”I•©Y÷]y»Ÿ)•u¡j*ŽBö³~D»Õ ¡µþÈÔ78Ä©Fr'EÊ/£TOÀ²Ç˜O{£%>mñŽ&)|7úCCwœbúÆ7c Ïñë_bøÄÇK|;޹§2±ÈäR ý¬'©UIOU·PÈ@¬b` ÌŽ·ä¸N¥jža~34ÌŽSî"‹ 0êå÷mKn…uÂ6êáÖ{¢ï±¥ 4JEâT&7¼Á=¡´;<¥Ù‘è†Èr-”MSi¾¬tO•’šØ/¥fO• ÷ÃÞ*¦nNœÔ”^Z7pª@Ÿ‡G2Ï˲|QUÒò#¬v›u}cXK)eå[Ù~ïjá—Ø@ë3l¹¨Àº¾|}úûñ鯗—'¶£ˆcœÜ- UîªI04A ã~Ÿ³jxSwPÙŽHŸÿ¾3‘µßTÞUÖÿ jAvhN³¥ øõ7Ü‚‚ŒmD ñݬáj&Eá:ùÚ´›ãb°‡øÇ§¤E«­ áQWçعöxޱ§FiÖ YZhtMBï2¿>Pe<¬q ðV>w)Áô€¹ºd^?Œvùu#zk½×Ê‘+}é®c½»OIaá¯5¦ÆaTq™õzÑëEç©¶£‰÷omht%0ÁOØ,SI“ÁÅUŤ°§ˆæ­0ÀÅN¸è ZÚ(‹ß¢£w0„!ôó?ýgù7NqªW)+×_ø®àÁâŽOš^ã”%¼ /ï0”|Ô>0/ŠŸvÛMÖ¨ÁgœOœo@pã0dJ%Ç‹b˜ûË >U¼nq玈SM ÑèÆ±„‡Á¢ÈôQhËìÈݸ+‘ ªÝèmR±{8ø±¬Ç ¹¹Æx÷ÅpÃÐK·›§ÜttPúü{¿¯mm«=€nîߨT±ÝQÜ jÕ,» êDíþ*ÿ`gÓ?•Ýn¥¿­¤(‰E^)î³Í•:O—eZTÕ~õ¡æèUַ·²®l»>ñ}ÆM³ýïÕ[fêó?|ûöu-oU Œ¤¡7 Ä:‰ñIò§ÜÚ?ªG¨îÅF˜Ú ¦Ï2yû¶„•PÙCO;Ù«¾ƒÖü ¡jUé-‚*n²%ˆ/¬Ý\Ñ·! ¿ŸfƒÂÈP¥À>D‡52p0^4F Ѓ2Êâmú´B‚A&Ã6ú/zË‚KOÇN•U‘ó–õíBµ¬ ±Áƒ&FÊ8ÓiëŸDhl5F{ªCªEÍhÕìV ,³^/zYtžd£öiÒfŒë0ÙÙVTÎÔéIíÄ”hÍI€íáÝ/\ݶˆÚF¡šxB¼ÅDÿ»¦ÐxZÍøCRí(þàN#7 ¹M$bt&ýd"H–ª3’ÿPHCOŽ0U*Û¬X#ÜTµ½H-ÏgXE kð ‰çú[¨]o¬s´ e½2§ —× –Yt‚Ò®R®9ZÌ3ì¹Þý1VúÀæ ¡ª[äC•Ü»‡\½º]pc~;«ê¥À´‚”NV …¢–Œiˆ²Åmœ*"«”U~®•êû¦ÿ.Û1Å8³ïàc> 2œùGŒkõCd*sªè, óaü”’ªChr{î? 1´Å<Iúˆk¼¸¢h„À©ÔPÇìÕ¦+¡/-1u¬’±E2ûuO>C’ñó–H &\Sqp ÚØ-‡‘²UL“.Ót¹L׋¨Ê*"j$Íû'¡Õ¼JhօDz´éÒÝ™€JÄ–æ)µyNKϬ_­^¼¶ ˜á7WKÒºhDÚðà;}T"²Êú&oë ŸŠÓqvdtÜxd0ü1´Ê÷D¥¾/ð?é‚üq:Ûwzù$k_èÇ4¹þоͧ‚2 Ò¸–%€ÒÓ°ÀØÆè aœAwìÆñÜGœ÷nn³ÝvAÓE_¿‘LƒÑBG&$×%pzmɉ µÇ·üíÑ¿Y¶éôãµÈ£ßaœAk7¶êŒš·ð~šxfOÕHÛlìi§ˆ¢A:Rþ]†¼ûl[€¤ïî%gmDì•*f zÃﶬ\K)"˜çeÒª ܘÔÂu-«ÉÏ4ò¡íó”~ UèÆÒÈËëÓÃÃÿ}}úóÛËÓZÞ|°俆m]TàÐí6ŧ¬½HLc¦x‚ÍLüë µÂö'h%[%”W¹,ªé *„†øªÙ™V¨ÝD›]Rí£iä}ë€öqÌŒû”ºêXig*²BR²¼ï½ý˜Á‹šádÖKe2øüØ7…çdq]êajt½”2Ž+}§>é<ÿ&‚][ ¤¤ÑªÕFLº9¸9ÕMb‹xÍݶg[¤ÿ¤×× &ͺ¶Ä_Dm·îjÁz'®)9eãª7‚:ÅÌV'+ÃpvÎ.V®½k.®K ™Œà×Ð|Ñö™4`ø®¹ÿúß6÷—ƒJ*ÚÆ‘ MùÁ€ §sWüHºÓíxôïþ°1ý‰ÀAïþÙõ°äöý|ª©´Ìp*Æ‚ ×ëZ·M7Nt #±ÕÐw Üèüó,F[€0§Ø•õ¶b¢-G䱨b°xWé2q™LÞoPhäÿ{LÝ1 f“õƒÃÊ([·x:»éõGVûxsÜp¢naBÎz¹._fwÂ6î/«éÞ´ÃÀvÒ€,Ô&‚yåË×§¿ÿüöòxRc‚ñP+é<•p½o¾“8 :œj)V X;Õe¸´öèTS6egÁ–¼m+€Š‹îßÿOìsÑ ì­¶ËBÍÚK ¨Q¡­Ç¨šèÉl÷Yq[Ý1Ô( a;OT ¼Jµ?EIǹ‡9?íeÅF¦2JlLNqƒŸ h6‹a‚S§+ð=FNö1à\ÚD}…µCš]û®ÆZLc³”gI~ŸUûÉÆ¬üžsµç·ÍÓæ/“:Å-¼÷ £+¸?Ú‘ÀÁÚ±³ŽçÁ­ðB »# ¦h;´¸Ç¡æ_:a$…Ò× Èÿ~úbkÌš†IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/blueStar.png0000644000076500000240000000042612536324427030522 0ustar philstaff00000000000000‰PNG  IHDRóÿasRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ™D y–IDAT8ËÝÒ!ÂPЂ  Àdà z‰ ΃è%êp¢RIWA0_ü‚ìÊÙÝ™ÉÒï*«z›FúÓØ‚Á—ë#¬pESäYÛYA §X`4`qeU'˜c‰m€wØã^äÙù£‚@†ËËÞ1&¸uÊàÉÂ&@ßåÐ%ÄןB„@8ßí¿”è=s7,Í“iÑIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/blueStone.png0000644000076500000240000000575612536324427030714 0ustar philstaff00000000000000‰PNG  IHDR((Œþ¸mtEXtSoftwareAdobe ImageReadyqÉe< IDATXØ[Œ]×Y€¿ÿ_kí}Æ3cÇŽ8„&ŽIœ› r h‹„Âå¨D%^âÚ—ªy„Hˆ¢H• ¼T´¼PD(¢"M¡PH‚B›&&—ææ4©‰gÆã±Ïu_ÖZ?{Ÿññt¥iéHçè¬ý­ï¿¬µŽhùKìÿ°ŒÙ ‘€XKjk~ä!žî lll¯¼øÝ×zùå·OþÙç¾tÆÒôˆ Ìj7úÝßûŇ>ýƃž>wÛm7o¿÷Þ%>ñÀ³ÿù.x ‹ ؾžñå½g2­xúëÏ|ì©~æW^}åüÇÍäÇî»çÎ㫫ˈÀp8á›ÿòßÛÿúç~pêÔmÏüÂcþãÉ;O>‚o@~¤çɇ7±Ün>¾ök7[ýÔææðáÓ§ïæì#gxàÌÜqÇ-¬­-cW¯Ž9~ƒ—ÿçmžþ¯¾ò!ØkMäó.Ž¿,êvÌøP?$`yü1gíkkÇÎÜ÷Àƒ|ìçÏòÐCwròäM»i•••‚fFÓ$F£šÍ­1çÏoqîÜyþã[ßæ¥^`gçâ[‘ð8îÀWÈ´ü@@'þ'n ˆÉÕgüõñ÷ÜüèÏ|”~üNßóŽ_cee@RÎÄ6Ó´™¦É4ÑÈ8ÊÁ2këG åaF£¼>nÿzÎÕ!ÿ ‘½aˆø»z˜½ +éê_©,}ö؉3òSgáþïæÈñuKŠ2àƒ²AJF3U˜V‰É,2ž&ÆÓLÌŽb°Œ†UÆce2ºú(ix·ô÷ˆkÿ_€–®ü¥°ú[‡ŽÞË]÷áöS?Îò¡|(ðÁá¼CT;¸ÜÁÕufZe&³Èh.ŒY&ÉŒ'B5œ²tå^qKÿ€¸x-r׆“p×>|iøYlðx¹z'n¿›[?r+K«Ë¸Pï§ JfgÔ1­“Yb4 '-Ãqäê¤e4ílNk#š£‰žÉb=:-69„;ðµý<퓃VŸ±”ÿFË;ÜêÑ;8zË \Æ q´‡3h413k2Ó*1š%F“ÈÕI9‰Œg‘Ñ42™&fµÑ$aV MÉ핳"íwÐâõ}úàÞ¾dÁbõn-üò­”b¡dßd\•‘È.Ò"TU&Å9ƒ˜Œ¦ÍÌêÈt™Ìã*3©IkÌ’Ü€bu?¹•œ¦XûîçÄå¯#R]({ìåú1tåQÜ‚;p€:+ÓÆÐÚ"c>“$ÑZX4™àÁú·1Ó4‰Y˜Î“*1©3ÓÆ˜E¨³`a =°Ž6·Ó•SäÙïàWžÀìÆ-§OK8–ëH±LOA[Cš U&»D+BmB¡hçÕn®”»vSÕ©¯êÌ´ÉLZcÚUZñP,#ƒu¤=N®ßþ”Xú¢Í‚Á@kï)VÊu¤\!û¢³” ‰a!“\&ŠÑ’)³"xÇn;ËÙvÃ\7™ª2fUfZ³Æ¨¢Q'hM0_ å*ÒAÚ;°ôÓ¨vnñÚ^,9=†?\JqÂæ<­ ’€ˆÝ»yÈÞHb´fød8—Ñ.ÉRÊ´1S7FÝva­¢1F¡ÎD0ç‘b )?$¤Í_…âÙy`ýµ-ƹ_ü*–ºJ!š &¸,hî#˜BÛá»Áèš6ÄM„:Bº¼k­ ÁD»Žà‹2ÄÒ¥Ÿ„¼Û‹Bl þ”øˆ/ççïÀ;Ì)©‡mMÐ $È P]4R2bê[P†6w¿M(8‡øŒdò÷HXÆjÿغˆ^Æ Íw[FÊ“ø¸ÐM.x|áÑЛ*!Y÷@²`Ê"`·õÅl=”EAõ— ̈fXÎââ a•<=bâ.wÓl^¾%a°,纉‚Ã<>8|Ñ}¦ÞA߬M„,]Û_ˆ0QÐŒ¨â<˜¹¾™u€]²fRLý|ï,ÎB·dð¨ëgDÔPA\¿Ò]HG(:“¡p„àðÞá¼à´k/ó`fˆ‚¨!*¨*ª •~FÚœ±”±èÈÚFÕ¿/áà|Ö)âvŽè0¸Î\pXá(zHïï¯Á©ÈnK5ë s6RRbÊ8TÒµ®ÛÛ3ŸÉ^Q'ä¾J±Z!0<æ³VÀ›"é”(Þ¢µ"8Š4‡wÝöæT]±õ…’”2. Nd7GÍ K™œ29&²S’’@l -7wC,óî*`–ÞZT3ª‚ë-ÍbÑÁw;ˆs‚ìèeRTZͨ¤þ lXVrtdŸÈÞ‘œ škAxÑñ|¹^|qm'ÉÍ XDT uÚç¡‚^g±ŽïuŠ HO8oLJrÝbw᳑“‘|&õ‹S1Ä"Ø qú¬¸r·;{qná‚R|<JžNÁ9Á;Å{Gð×B]î‹âô²»Õu€™åzð¤¤>2±ß¿Eä Ò4‰/þNÄu•Þ.Þô}rüªµ£Ob Bj×…ÒûÎä<Ìdo±/ð 1gbTZMˆHoÕ‘|ÞM §‚!7X;¬úŽ:ÿÆâÅ«{N3òDnv>iíì* ÚY ^wí-•ž²t¡û|^(»öÚ˜i\g¨³g´ó°ª"BwmÇäfuúGâÊ´xÃó®\Þs^µç-7_LÕåß´ö0Ø :uPŠ ”…cPv£,:@ït7Ϻã–ÒÄŒjºv‰ßöaÅÀ"¹fÛªsKkOî=þùúâ?]àqåÑÏÄB9VëG-® ¶„s|W(ePÊBŽA©}Nu¹fýÕpM·kXܶÝBœ b‰ÜÎH³Òtc’«÷>myfÝ™e°¾¶ß…x‹úþßnWoúÛxpÕ‘ 6À)x'xßAs£Á|W(Ößðœd˜W³·Þ²à”.ΈÓÚÉÕÆ¿?^oûÅ}¯ûÀ  Vo¾º²$CœøÅb0`i¹d0(X–JÏ`àôËB){Xï¤ß•­oØÝ}¹;aGêªf61ÞÙbréWßúêŸT›ÿõÇô眩€7£ÔæýçÖV|ÂÑŸ+ÊBƒÀ`à)KßÍûbo4ìæ¡ÑoµÄ”iÚD]7TÓŠÉpÈp{“+ßgç{Oþùä·~ e\d·=ן´u1»ðÒá¥úbòkg]±4( ·kk^Á¾oÚ?b^mŒÔuK5«˜NÆŒ®ìpyk“Kï¾:¾ôÒ—ÿpxá¹Ïe/%/ÞРöŸ`,Ϫæp=üß•|ñ ¹Åüòq‚xg85Tr_‘‰œ1¶4MK]7ÌfÓÉ„ÑpÈÎö›?x‡‹/?ýâÆ _úÓáæëß–vÿêν?ùA‹ò@Ý´«W/oµiçõ·ò•·GM5=”ð+8/`XN¤‰mKU×Ìf“ñ”ápÄ¥­K\8ÿz~ç»O½ûýç¾øäÆ+O}e6^ìe4ým§Ýòº¼[48‡[–Uà°&"ëű••åۗ׎߳züΓë·Ý{tíømƒ•ƒëê‹B,u]ÙèÊåtù⻳­wÎmì\øÞ›ãË^®›ôžÁݸ\FÀ¨zà¸)`°œVúq°=âwÊ =¡>õ«3²Yc3Šm³•3ïgxض{°a5¦=\½`Ñö\´¨}†…PÏaôV×€uàˆˆ[ ±îaãf{lnkÖCÍ­-š»aˆ÷¶šE›ó±¼´`v¥Ÿoìm1ÞÇÔ~y·7÷n¸7ܲǪ[ÈÓy®–ý{±Ptó«~½`¨]°”öزýZÌîý^ö×}À÷^ìAò> ?dlïëÿ>ÇL$)w°IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/greenStar.png0000644000076500000240000000042112536324427030666 0ustar philstaff00000000000000‰PNG  IHDRóÿasRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ "8`J‘IDAT8ËÝÒ!ÂPЂ  ¨/xÃaÚpÒ^ÇI •M¨ÆU4˜/~AvåìÎîÌdwUM™Æf¦‘þ2¶`òåú [´¨ó´è+ä kì,® jÊ+lpð'ôyZ42Ü^öαÀ}POö:ãò.‡!!Öh á|wÿ>RbüõY ,và£_IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/greenStone.png0000644000076500000240000000556412536324427031062 0ustar philstaff00000000000000‰PNG  IHDR((Œþ¸mtEXtSoftwareAdobe ImageReadyqÉe< IDATXÕ—[Œ]×Y€¿­µ/çÌÍãñ%v-â:&±ãÔ††TTP+*ñ¼Têxk^ªæ‘H ªH‘€x@P„D+J‹"T ”HÄÕU’&n°ÓÈq×c{Æ3ç²ok­Ÿ‡µÏÌ™ÉØ¤GZ霙Ùßùþë~yû¾"P+äB×òÄOòÒÿ™Ì:~ðÎÛ‹W~ðÆO¿úÖ•3Ïå¯.ê4¬ †Ú5£ßùÕϾúÑó¾úØé³¯ž?ýØÝ×~ø¿ù'ÏðÝ׿Æ^¡pz0‚ãÇ|9g¹7ÚâÅË—>ñ/ßþ÷O¿qýÍ_ŒFO;ýèñÅÁ"Œ§c^|ùÛwÿóò¥>ròáÿúÔGéë'NÿWç\ûã>OÞ·A¯àc¹¶rô×-ýÜúxãg}ä,O=þS\8ý§}€åá(lU#®ß~‡+ׯrùÊ+¼qí*™Úï{mŸ_Ÿ¬ #›ðþ ¾?ÀB`?A0Ï-[½xîÂc|üÉŸåCŸãôÚ)޳˜ÉŒCQÚÐ1n'¬O6¸¾ñ¯ß¸Ê¥W¾Ã÷^}­[obó äËtÿ? å‘áƒ{…Z?qsä܉‡>òsOñóþ?yê4G–WY,dÖ4ࣧ¶ttDɇ9ËkËd«9c­O7¦¿AV°|'#÷}üýˆ¶õ/YȾ°zñ¸\|êç9ËÚ¡Š"#ÏÖZD  hµ¥Ñ†i¬˜Æ)£0a¬:çÉ2̲eÛ5T[ÕÇØòO3ÄJwÀ³Ã3Lÿé½ø,»ß*/âÌãó8Áp±Äf‚uk ìÀyZ:š˜à&aÂ(ŒÙc¶ÃˆQQIEÌ•PFF¶¢›tgÙ SòOXüŽ˜¹s°AÆú ÷¬œpôÑ#œ8q„Á0Ãf ŒD‰ x:ƒ‹Fq̶±¶ÙöÛŒâ˜q˜0¥Â;O“uLhÐíxŽi\¡”Þ_ˆhõ"AþŽf¶83`íø Ã…“± VQ‰­6ÔšÂ:ŽcFaĶßf+l3 cÆaÌ8NÇ1•Ö´¦¥’lƧ z™\þ÷€>¨{ᔌš?ç¡,ç”%[³ÄÒ35,£b@c‡ µL)µ 3V,¨â ´±¥5ÓP3‰SÆ:e¢¦L©Ì”P¶¸5S&Ühÿ”R¿Pï”}ö>É‚ý' V3e:ƒÓ€ª'ĆVjêPk†‹#P‚Æ>ä-ul¨´b¢Ò©¨¨MMté lÙ³TÝï²(ÏÍ;Û ¨@à2pXˆt®¡E4 xT;¢6t±¤‘‚Br22œX ‚’ŠÆGŸ*:¶T±¦Òš©ÖL¨™ÒPKCçZXP8,pÌÀ[ò9¢þ"íÁ€^ÏSسf`QÁ:ñÔx„´#Ò´ÀÓÐQÐhF3¬I€Q#^=­¦~XÓPiMEC¥ µ´4Òá%€3°däºù >ÄNwW+ƒbfpÚÃÉ\n¹ÍÈ­#3'+##‚ômFU0¢‚ÁDÙù°]ßO5™ }*¥/­ØÝ}À±$³O±º º– *Ö Ö ®7WØœÂf䯑Ùl ÌU%‰š6/.Zzìþw’=5\µôõKÔØ`¶3âj”kD=‹(Æ€5‚3‚36™3¹Í)LFf22“­Ø½€h—¶œNÂΗ˜ÁE£Dˆ&AFQˆ ª·)Xß5htwÌ®áÓ0ÆÖ${ .£0…ÍÉ{ÈhÀN›Ñ{!:¬t»)ÐÃy F‰föûýrŒ¾Œe¼Û‹¹FÝêwi@<¬¬18“rn×`Nnó>Ýn˜w:–öö^<&öðš¦L0ßk hDøÒôÞ+“ÆÜÖ+‹,nÇ“ñSE‘1Ì ³’+Ø¥-{‹…I›u.{Cæ‰Ô§ûŽºi˜ŽkFw¦Lß­©¿>ý£ðßíöÃM(;µ .¢…»i/­˜•Æí~!Ï33p%¥+(]ÙWq o.³ËÞy±ý¯ÿ~œ2åuo&IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/redStar.png0000644000076500000240000000042212536324427030341 0ustar philstaff00000000000000‰PNG  IHDRóÿasRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ1Ï\w’IDAT8ËÝÒ!ÂPÐWA@/€/xÃmÐUÕUÕÇI •$Tã*(æ B€_]9»³;3Y†]]UÌc3£H[|¹>Æ ê$/ÛÞ 9Ãd‹+èª"Å+ì¼Ç÷$//2\_öN0Å­WO¶:âô.‡>!Öh~ á|·ÿ>RjøõÔg+ÛœŠôIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/redStone.png0000644000076500000240000000552612536324427030532 0ustar philstaff00000000000000‰PNG  IHDR((Œþ¸mtEXtSoftwareAdobe ImageReadyqÉe< øIDATXØ[Œ]×YÇßZkïsŸ±=ãËÄMˆm&nÜš¸éÅ¡ ä)@_!Uê B< µ/UóÈ ¤¢¢ "à¨@ ‚©´@¤B'Æu›ÆvLꦾŒí™9—}öe­õñ°ö™9>§[ÚgïsÖú­ÿwYÿuä…Sì^ ÈîǨPzÈ,4š>úô“|ñï^G\ξ½ïÚ•Kyç­ÿ>ùÕ¿úÂSc/«*†Ž¯F¿ôë¿}ñÔÙg/?~òôÅãO|èî+oð‡/~š7^¿ˆqi.¡cÁz¹û> ?ñrÖ1nqþ?_{î;ß|õ“ׯ}ïyKóèã§>|´×0Œøîù¾{á;ÿò££~ðß?ñì'_}tmíëιzGˆ÷yÉ} .\ó ú!Ò]9tðW^ùLµýîÇŸX?Å“gÎñSëgY=v’ÞÒA@™Ž7¹{óׯ^ä—¾Íå·Þ¤‘þ›u%_Þ¹óׯ°©ïSÁ÷˜[7< /8bžúÈéuÎ~üy]ÿÖÖéXÃuˆËA•è+üt›éÖM¶o^åÝ·/péÂ79ÿÝïóö­p•À‹}ÇËMøÉ€v}õá/•”{eäs6ãË?{"_{þgyú£Ïqì±'ì?BÞ`l–ò#4ÔhSBS!ME¦¥<ãðþeŽôçï­Üû_›ÔìÏ„od–häÿ ³íù‹}]>ÿì #?惜<~†ƒUºYçr¬qˆ Ä¡¦Bë)”c´!Å6Rl“ûŠ}yÆjîé…MnMâ3[%çz–¯X¡y(à«©6o¶þ|¹Çoœ[ƒgNâØÑãìë,‘aqâ°âÑÁCSA=EË :¡“-˜lÁxŠMl5¦£e ð›5ëÛêþÑ~/Ž=`äù|'ãůÀÏ­Y[9Ì’ë‘a°Á¨"1‚oº†z å-Z¸ñ:º‡Ž7a²…Û˜rL'Vôâ„©W¶ž,ö÷,_Û«ºíO¯<WGž ÂßœXÆž9§Žë’©Áª`¢`˜ß Mõ© (FP a¼ã{èhÆ›h1„É6R 1åç§ÔA)#lÖœóžó™á­EF·˜ŸªdeäÏÙGþXÖ2èû€›Œ1Þb¼`0u@ª Š ä}p9› iJ¨ ¤#åSÑéSŽÈÊ1Ý:pÔÁc]÷áúˆ/v•2BùP@ÊÈ KÏ<Ò…Õ ºB‘fŒifp©¤¬¬@²b30©_HàkhJLU@5j„–#l9Ä7%M€<Àª…c]Ö¬O+~kÉñ’êCvUðÙµ¬d°¨‡i„® tê¦ HÞ`ò “O‘¬‹d9˜ 1TÑv*šºÄÔ“rŒoJʨT Dè+ŽtáZÍg¢ò§ê QNw,Ï®f00àRþS NƒzŒuÓBŠë .G¬i;n h[Õ±)Ѻ€ª  5E„B¡R𚘭ێÁó1køÖž å…e=ÀÆ4HLL ÅÕS\呬ž ¯i—Û¶õ5¦.‰MI0U(j…(I¡žÀ²…åÙhø•œ9ÀY¼áÌ ƒ¾@4’`3×4äMÄØ\Ž» #=øšèš¨” M;NPˆ$Á­Isõ–ÜžŽó9hæ¶5'¬÷ tœ&‚UvÐÀ.¬ +c›¶‚MI#Ä@ˆ‘f¦ LÛo9iA5-¸+°”€F#+V¸§€kâζ¶ÔqœìÈHPŽ´ºŽB® VÚÅDI°A@bù5UM IEGÔô#ÓæT.i±ªma*dš sàð¬Zá€+Â`§—±4ƒË$AuxðÎÚÉdÞä*H»(³Ï)M,iѺ`DÚBÆÏ¾#àÀN#Ù,²nVÆ1I¯Ò®r¦^ÞBuIÉÜÑ”y;©k”IÌ ÌndÒ0WGíœAÁKz/iusßsËnGÁÂÂ&ʪÕ4y6”ØmÃÐm•u"ˆ1ˆ˜”ñ;³§íÇÖí¸£Šó‘<†'©ˆ¢B¡ð„\ø;ïfæ÷:+Üð‘¯=Ÿj\J%;«jc]Ê[ÀÈl7ÑÖþÏÔk÷hUˆ=™†N¦ÐŽ<”ó¹pyÞa¹|Þn¥–ðÒfͧÆ|{r€“òn×]‚N?©™åm˜ÛÒÛq3u« ióÒC¨±±Á‘v¯0p·§ü^Çîóƒ»`X ß®#y§áÓk¼mÏƦådÝÖé'È™Š; - ¯ÁUé™ìB‹/‘P!1€"ÂFeäµÇ+‹Ú½úîýögp¸Ãç²%~ùË¡ÃÑvìB§· š·a–¶g†ÕÚݪö 4³|5„l×7k&×Ç|vÐ,ÿ÷†{ž™6ž:hóXþþØC¹Ð‹56Màò¤ZÞ…N |Ÿåo žåcî,—¡ÆÒ`)6<Ühà·yñ¿6¹°ç±s8Ì­Ú~?öÃÇmõ‹:y—,ïbgù×Ýת×KÞMJÚÖꬶçeŸN}M]2ª+Þ­.7ð··øƒ»ÇïÏm4œ½L¦CcçG¡û28X}@‹_èclÞÇe\6 q –uv˜d§’ëÊ‚ª,Ø.KnÞ,_Þ?úú~§ÝUeÎCÈÃ…ÝÎÒ uµÿ}ç†û×n‰Å¹%èJÞøk]j;6KªÙ¹v|ªàz Ó a:¡˜l6FÛ¼>,ÇrÛþîkwõKm‹5­wÐÅÿ¾ »î¨ ,5åôà;¥Þººtô²ˆydY›£™µmŽŠM«RÒVà¨+(§ètBSŒ™N'Œ&c¶†[¼½¹ÉWî”þø–ýÂ¥mÿ¯ ½È·ÞáÈ÷R0o!û¡*·‡“æØ¿z‰ÞhRûý¹¯÷e¤¿e|T|ðø¦¡©¦TÓ‚²3¹·yllÄW~¼õ×~\¿òò†y{ZÝ5¤Ýn¶%/B>ð—¥0gzIç¦%`ìˆÈJÖëéíÿ@/;}ºïNž]î:>èwW{=“;'ª‘ª®õîd®m§ç·&·.Ë+ïõ%­êëhØ6-`c lý<¤¼‡‚3ŸÚöµ÷r º*ÖUçŽcŽå¡Ldš©*QµªƒŽš7ˆñn z¸Û‚ [¨1P´pÕœŠº༊†û=kw¶ßªzXV9Ø>ËÛ1*TÇ-ÌÝ9°™ZÓj¦Ú¼r ñb«™WsvÏ÷æ”Ýׂgíï›b¼‡R{åÝbî=p1ܲ ªËS7çÄf¾vVt¡¨æjæT jé^-æ½ßËàfpaáL4÷y@±Åëÿ­o‡F3MñöIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/star.png0000644000076500000240000000040612536324427027710 0ustar philstaff00000000000000‰PNG  IHDRóÿabKGDùC» pHYs  šœtIMEØ %[!G(“IDAT8ËÝ‘±AEÏe# «–ˆ½ð?û‹J_A”-QìÕ¼Bdgƶû’©ÞÜs'g`Øc{Yº3*ìë Ê´O€…mIï¿^Û8cÛ§.HÕž`4_«»íVÒ5é ·î˜Ïì $=ôŽ8ä<$%ÚÞÛ^…“~ßmg íÕœp2äùàç=¤õT&IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/pics/yellowStone.png0000644000076500000240000000576012536324427031273 0ustar philstaff00000000000000‰PNG  IHDR((Œþ¸mtEXtSoftwareAdobe ImageReadyqÉe< ’IDATXÕ˜YŒ%×YÇßwNUÝÞ{º{f쉗±3'±cʼnmì'F!"¼$‚Äkòl !ñÂ&!"E@!!á x!yHØc;Æf¼$!1cÇËØžLÏôzûÞ[Û9uîí;ícJ*•TU·êWÿïÿ-çÊ'~|žC7‹PV‘,ÚÖ¨ë’;#/}ù).]º8ÿâžýйsgn|èo~綺®WA°ú?÷ó¿þ÷Þôѳ§Oßþ'Þ³±½õ ¿ùŸáégžÆ¹€Ðy!x'˜í¿ÛÇðü?7ï=e9àñoýó}ÿùÔ?~òÒúS?±¼´}ͽ;r|qa€~À›¯ÿÕÆw_x䥕?qÇŸ|ìæÓ×}Óg¾þ?_`tz· †Úz++G?µ¶vä³¹ûï;>zÏQîøÈ휸æÇX\ºŸƒ¶¹@÷{œóiÎ<û,?±Î¥Í«~PVúÅíõ¯ªÓ-³+(8VñÝÆUÉsa0ˆ÷…ÀNݨ·ýìý‹|âw³zô>²Þ‡ñÙõ8·ŒH1–„°EÛ¼FS>ÇöÆ¿óøÏððc[¼x6¼¬Êƒ33úPÛy~àÔæN^—_ƒ6eiŸ‘¿¼û®™«~å3'¸çž3»p/ο§G):Åi1k°XaVb!£ÃùE®»¶à†“F£zåÍ·Ú_lÉ9ù§ÌkT½rÄÝÉëóæÀ.@Œh¿þlvÖ=ð±»gåS¿°ÆéÓ·¡îêQE4Q ‚µ\ã€öˆ¡O{„G–•÷\= ®ÖÛ{úýxW¯'ÿàTšÃp7\Ÿ¿ý|òÀn?|i~Îýê‡n›á§~rS§®Fô8"=DrD3dÎjÌJb$°]B»M;İKhkæf»}84¶w©ÝÝø^¡8¥EºwOïîäÉ·+(ƒ½ø@žëƒ§o*¸óŽYnùÀ,E±ˆz‡$˜C[vÊÅ=B»ÓÁµ[„°Ý†]̆yMŒÆhdìöÃûF#[êòõwåA¨»-þúºkrwóM§oê±rÄ£.Că("‚Kâ$´ý¤Ú6¡íà:À>1ôiÛŠ¶…ª2ª*²³îjgòLþç`™ñÓ) `FVUö§ÇŽúüÄÕÇŽzòL¨ë@–‘P â f³ÕArqéc&>ìÃ!”Tµá=¬­zN\1ooþ0ò QÊiÈË<¨"ÔµÝ_äúÀµ×d\uwì¨cyÉ3;£˜u¡ºz¨:ì~ds 1–¨æ ‚¦§ÄI¹é ‡XèS7%ÃadTFª:bÀÌŒ°¼ìX[ó¼~®þlŒö'¢Ôc½¤” míýy.÷./{ææç…Ðv>)3ÁgÕ–Yà½aPm0Ë;o’ šu¾Œe‡´Íˆá00eiÔ‚á0?§Yv\ÚÐBà#™“'íÅ!ØO/-ºbaAéõ§bвиLðÎp. 2BÕ€€X âSV“l±Ø•JÊ*0*­S¯Š4#8'ôzʼcaÞÉÆfû‹Ó€f€`*rëüœ2ÓS²LPíZPˆÐh[£iŒºê ó¬"bˆ´ˆ8,)h‹ Ñ*ê:R×Ð6Fh!„®Š€sgÂÌŒ°0¯lmq{Œ6ÉÝIˆÍçíÔÌŒNú£*x/87é,„`´¡uÚÒåLÄÄ¥[J ³–¶´M÷q!Ýs££à=¹2;«8/4cEU6ÁðMkãò2—çrc‘ Y‚ò^È2!Ï»£stõÏlÕÐIa6•$ˆ1ƒÓ$ ÚY$˺g˜u!€ÏèÞãeaTÆÕ lø²ŒÐ©S…›óÙ¸L(r¥(„¢è`'ªÊ~ñìbb—u¢Ý½™ïn3$½Ó”h‘:/f^pW––‰taöÎɤƒ¨b*ÝÍÓêå¹PäBQhwœ(êRËsi`W"*J–µ¨FT»[ºR,Fb„„à —®«ˆ?^¿0¯c‡Ne XÕ)ÇE¡ô ¡WYîPɺÚ'> :5ifImP¥éüªaì, !BBÛ ê&--ÌÏié\÷™ÞûÉ…ÒŒ—¢qJEð2ß…¸ìàòÜ#Z R ’uíM\òß aRÍ<*5™Ôif„… mçMù¯[Eî›U·háÓMÓ\ÕNIQŸ`rdRò}/NB§†Øš#J@¤AÔã|˸‚41DêÊÎd¹œ•©Ðg™\6¬6 _ØÚŸ "m;.?’²5Kp3ˆÎ¦c‘2ºëÅÝ—‡ý^,Dº–˜ú¶àÓ3»EÙ`ÙÚ 8Çïæ¹†éűŸ›Óƒ ¹§ëÚþbs«ýåcG=!t£}—£šü§3¨›E¥‡hžu*AZLª.9`’0"Ùd¹‚1E67UÿmyÉ=,rùí¿ù/ýËN,Î;VWÝç³Lî?~,¬­®8ârW\»pÉ‹½¤`M%§+ÖcÀ‹©ÆZìÆ²˜¦‘´&‰lmÖ/¶ƒ7ßj>WVfoùϾT¶"¾xë-ͯ?æÿvuŹÕÕ@¯×Ù\ÄwÙœja§`‘àujäwD±ˆhƒ¤™q¼ ,«ÀÆVàÂÅ–o=¹÷às/Œž?tÑtœzñRûý¹9Ý=ºæf~^Y\PÔÍ£:ê,êfR˜{)äEõû kbª¾¡óc¬°Ø§i¶9¾ä•WkýÚÎï?ý_Ãß;Њ_Ô4È›áÛG–]µ¸à>¾¸`:;ëQCÜì$¼Š9¢ãlÞû±Œ×,CbØ!´ë¬¯ïòâÙŠ¿tçþãñÁoÙÔÿZ6 êQÏ%ÀÞh—.¬·/ÌÌèæfõ®å¥¦Wº¿p— •,• Î[ÝœJŒUÄ0LËÎ Bû—6.ñÌ™ÑÞW¾ºõÛ{ðE H¢Ä)À+*¨é\ô€¹½½xä7› ƒa<«ÊÕG–«ã óAÓIqÞ/ÌÕÔên‡Ðnbñ-Úæ5^}í<¶ûüŸeó¾ûýò_™Ôá0ÈwR0O³Ãa\xíõ¦yù•úåsçê~Óì--Î÷çæ+ñ¾Ah€ ±!f»`[`눣­_æÜë?Œ}í­×ÿøË?òØÎC—6Â’5Фý äÁâ& Žáf€9`X–UYY˜wÇÖVÝÉë®ÍÞÿ¾›‹?xËÒÚµ×.÷–—4ó¹˜Eš¦´ÍÍÝðʫۣgÎô/<÷BùÒ_m¾7ÅsÀVÚ· ìen§!å,Æ ói_L «ÞËqçä„wv¢(XË2Y2‹¢UeI4²‹mà <3¥ì|ÏÒï›±wˆR‡ùî ÷®x0Ür@U7åÓ±W‹ţ’.$€jJ¡fJ¥p@-;¬Ä¼àÁër¸.S ‰‡€¼M±ƒÛÿµ¡`ÛGåNŸIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/qmldir0000644000076500000240000000007412536324427026507 0ustar philstaff00000000000000BoomBlock BoomBlock.qml Button Button.qml Dialog Dialog.qml PyQt-x11-gpl-4.11.4/examples/demos/declarative/samegame/SamegameCore/samegame.js0000644000076500000240000001772212536324427027421 0ustar philstaff00000000000000/* This script file handles the game logic */ var maxColumn = 10; var maxRow = 15; var maxIndex = maxColumn*maxRow; var board = new Array(maxIndex); var blockSrc = "SamegameCore/BoomBlock.qml"; var scoresURL = ""; var gameDuration; var component = Qt.createComponent(blockSrc); //Index function used instead of a 2D array function index(column,row) { return column + (row * maxColumn); } function timeStr(msecs) { var secs = Math.floor(msecs/1000); var m = Math.floor(secs/60); var ret = "" + m + "m " + (secs%60) + "s"; return ret; } function startNewGame() { //Delete blocks from previous game for(var i = 0; i= maxColumn || column < 0 || row >= maxRow || row < 0) return; if(board[index(column, row)] == null) return; //If it's a valid block, remove it and all connected (does nothing if it's not connected) floodFill(column,row, -1); if(fillFound <= 0) return; gameCanvas.score += (fillFound - 1) * (fillFound - 1); shuffleDown(); victoryCheck(); } function floodFill(column,row,type) { if(board[index(column, row)] == null) return; var first = false; if(type == -1){ first = true; type = board[index(column,row)].type; //Flood fill initialization fillFound = 0; floodBoard = new Array(maxIndex); } if(column >= maxColumn || column < 0 || row >= maxRow || row < 0) return; if(floodBoard[index(column, row)] == 1 || (!first && type != board[index(column,row)].type)) return; floodBoard[index(column, row)] = 1; floodFill(column+1,row,type); floodFill(column-1,row,type); floodFill(column,row+1,type); floodFill(column,row-1,type); if(first==true && fillFound == 0) return;//Can't remove single blocks board[index(column,row)].dying = true; board[index(column,row)] = null; fillFound += 1; } function shuffleDown() { //Fall down for(var column=0; column=0; row--){ if(board[index(column,row)] == null){ fallDist += 1; }else{ if(fallDist > 0){ var obj = board[index(column,row)]; obj.y = (row+fallDist) * gameCanvas.blockSize; board[index(column,row+fallDist)] = obj; board[index(column,row)] = null; } } } } //Fall to the left fallDist = 0; for(column=0; column 0){ for(row=0; row=0; column--) if(board[index(column, maxRow - 1)] != null) deservesBonus = false; if(deservesBonus) gameCanvas.score += 500; //Checks for game over if(deservesBonus || !(floodMoveCheck(0,maxRow-1, -1))){ gameDuration = new Date() - gameDuration; nameInputDialog.show("You won! Please enter your name: "); nameInputDialog.initialWidth = nameInputDialog.text.width + 20; nameInputDialog.width = nameInputDialog.initialWidth; nameInputDialog.text.opacity = 0;//Just a spacer } } //only floods up and right, to see if it can find adjacent same-typed blocks function floodMoveCheck(column, row, type) { if(column >= maxColumn || column < 0 || row >= maxRow || row < 0) return false; if(board[index(column, row)] == null) return false; var myType = board[index(column, row)].type; if(type == myType) return true; return floodMoveCheck(column + 1, row, myType) || floodMoveCheck(column, row - 1, board[index(column,row)].type); } function createBlock(column,row){ // Note that we don't wait for the component to become ready. This will // only work if the block QML is a local file. Otherwise the component will // not be ready immediately. There is a statusChanged signal on the // component you could use if you want to wait to load remote files. if(component.status == Component.Ready){ var dynamicObject = component.createObject(gameCanvas); if(dynamicObject == null){ console.log("error creating block"); console.log(component.errorString()); return false; } dynamicObject.type = Math.floor(Math.random() * 3); dynamicObject.x = column*gameCanvas.blockSize; dynamicObject.y = row*gameCanvas.blockSize; dynamicObject.width = gameCanvas.blockSize; dynamicObject.height = gameCanvas.blockSize; dynamicObject.spawned = true; board[index(column,row)] = dynamicObject; }else{ console.log("error loading block component"); console.log(component.errorString()); return false; } return true; } function saveHighScore(name) { if(scoresURL!="") sendHighScore(name); //OfflineStorage var db = openDatabaseSync("SameGameScores", "1.0", "Local SameGame High Scores",100); var dataStr = "INSERT INTO Scores VALUES(?, ?, ?, ?)"; var data = [name, gameCanvas.score, maxColumn+"x"+maxRow ,Math.floor(gameDuration/1000)]; db.transaction( function(tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(name TEXT, score NUMBER, gridSize TEXT, time NUMBER)'); tx.executeSql(dataStr, data); //Only show results for the current grid size var rs = tx.executeSql('SELECT * FROM Scores WHERE gridSize = "'+maxColumn+"x"+maxRow+'" ORDER BY score desc LIMIT 10'); var r = "\nHIGH SCORES for this grid size\n\n" for(var i = 0; i < rs.rows.length; i++){ r += (i+1)+". " + rs.rows.item(i).name +' got ' + rs.rows.item(i).score + ' points in ' + rs.rows.item(i).time + ' seconds.\n'; } dialog.show(r); } ); } function sendHighScore(name) { var postman = new XMLHttpRequest() var postData = "name="+name+"&score="+gameCanvas.score +"&gridSize="+maxColumn+"x"+maxRow +"&time="+Math.floor(gameDuration/1000); postman.open("POST", scoresURL, true); postman.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); postman.onreadystatechange = function() { if (postman.readyState == postman.DONE) { dialog.show("Your score has been uploaded."); } } postman.send(postData); } PyQt-x11-gpl-4.11.4/examples/demos/embedded/0000755000076500000240000000000012536324427020432 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/embedded/lightmaps.py0000644000076500000240000004276712536324427023014 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) import sys import math from PyQt4 import QtCore, QtGui, QtNetwork WINCE = sys.platform.startswith('wince') SYMBIAN = sys.platform.startswith('symbian') X11 = hasattr(QtGui.QApplication, 'x11EventFilter') # how long (milliseconds) the user need to hold (after a tap on the screen) # before triggering the magnifying glass feature # 701, a prime number, is the sum of 229, 233, 239 # (all three are also prime numbers, consecutive!) HOLD_TIME = 701 # maximum size of the magnifier # Hint: see above to find why I picked self one :) MAX_MAGNIFIER = 229 # tile size in pixels TDIM = 256 class Point(QtCore.QPoint): """QPoint, that is fully qualified as a dict key""" def __init__(self, *par): if par: super(Point, self).__init__(*par) else: super(Point, self).__init__() def __hash__(self): return self.x() * 17 ^ self.y() def __repr__(self): return "Point(%s, %s)" % (self.x(), self.y()) def tileForCoordinate(lat, lng, zoom): zn = float(1 << zoom) tx = float(lng + 180.0) / 360.0 ty = (1.0 - math.log(math.tan(lat * math.pi / 180.0) + 1.0 / math.cos(lat * math.pi / 180.0)) / math.pi) / 2.0 return QtCore.QPointF(tx * zn, ty * zn) def longitudeFromTile(tx, zoom): zn = float(1 << zoom) lat = tx / zn * 360.0 - 180.0 return lat def latitudeFromTile(ty, zoom): zn = float(1 << zoom) n = math.pi - 2 * math.pi * ty / zn lng = 180.0 / math.pi * math.atan(0.5 * (math.exp(n) - math.exp(-n))) return lng class SlippyMap(QtCore.QObject): updated = QtCore.pyqtSignal(QtCore.QRect) def __init__(self, parent=None): super(SlippyMap, self).__init__(parent) self._offset = QtCore.QPoint() self._tilesRect = QtCore.QRect() self._tilePixmaps = {} # Point(x, y) to QPixmap mapping self._manager = QtNetwork.QNetworkAccessManager() self._url = QtCore.QUrl() # public vars self.width = 400 self.height = 300 self.zoom = 15 self.latitude = 59.9138204 self.longitude = 10.7387413 self._emptyTile = QtGui.QPixmap(TDIM, TDIM) self._emptyTile.fill(QtCore.Qt.lightGray) cache = QtNetwork.QNetworkDiskCache() cache.setCacheDirectory( QtGui.QDesktopServices.storageLocation (QtGui.QDesktopServices.CacheLocation)) self._manager.setCache(cache) self._manager.finished.connect(self.handleNetworkData) def invalidate(self): if self.width <= 0 or self.height <= 0: return ct = tileForCoordinate(self.latitude, self.longitude, self.zoom) tx = ct.x() ty = ct.y() # top-left corner of the center tile xp = int(self.width / 2 - (tx - math.floor(tx)) * TDIM) yp = int(self.height / 2 - (ty - math.floor(ty)) * TDIM) # first tile vertical and horizontal xa = (xp + TDIM - 1) / TDIM ya = (yp + TDIM - 1) / TDIM xs = int(tx) - xa ys = int(ty) - ya # offset for top-left tile self._offset = QtCore.QPoint(xp - xa * TDIM, yp - ya * TDIM) # last tile vertical and horizontal xe = int(tx) + (self.width - xp - 1) / TDIM ye = int(ty) + (self.height - yp - 1) / TDIM # build a rect self._tilesRect = QtCore.QRect(xs, ys, xe - xs + 1, ye - ys + 1) if self._url.isEmpty(): self.download() self.updated.emit(QtCore.QRect(0, 0, self.width, self.height)) def render(self, p, rect): for x in range(self._tilesRect.width()): for y in range(self._tilesRect.height()): tp = Point(x + self._tilesRect.left(), y + self._tilesRect.top()) box = QtCore.QRect(self.tileRect(tp)) if rect.intersects(box): p.drawPixmap(box, self._tilePixmaps.get(tp, self._emptyTile)) def pan(self, delta): dx = QtCore.QPointF(delta) / float(TDIM) center = tileForCoordinate(self.latitude, self.longitude, self.zoom) - dx self.latitude = latitudeFromTile(center.y(), self.zoom) self.longitude = longitudeFromTile(center.x(), self.zoom) self.invalidate() # slots def handleNetworkData(self, reply): img = QtGui.QImage() tp = Point(reply.request().attribute(QtNetwork.QNetworkRequest.User)) url = reply.url() if not reply.error(): if img.load(reply, None): self._tilePixmaps[tp] = QtGui.QPixmap.fromImage(img) reply.deleteLater() self.updated.emit(self.tileRect(tp)) # purge unused tiles bound = self._tilesRect.adjusted(-2, -2, 2, 2) for tp in list(self._tilePixmaps.keys()): if not bound.contains(tp): del self._tilePixmaps[tp] self.download() def download(self): grab = None for x in range(self._tilesRect.width()): for y in range(self._tilesRect.height()): tp = Point(self._tilesRect.topLeft() + QtCore.QPoint(x, y)) if tp not in self._tilePixmaps: grab = QtCore.QPoint(tp) break if grab is None: self._url = QtCore.QUrl() return path = 'http://tile.openstreetmap.org/%d/%d/%d.png' % (self.zoom, grab.x(), grab.y()) self._url = QtCore.QUrl(path) request = QtNetwork.QNetworkRequest() request.setUrl(self._url) request.setRawHeader('User-Agent', 'Nokia (PyQt) Graphics Dojo 1.0') request.setAttribute(QtNetwork.QNetworkRequest.User, grab) self._manager.get(request) def tileRect(self, tp): t = tp - self._tilesRect.topLeft() x = t.x() * TDIM + self._offset.x() y = t.y() * TDIM + self._offset.y() return QtCore.QRect(x, y, TDIM, TDIM) class LightMaps(QtGui.QWidget): def __init__(self, parent = None): super(LightMaps, self).__init__(parent) self.pressed = False self.snapped = False self.zoomed = False self.invert = False self._normalMap = SlippyMap(self) self._largeMap = SlippyMap(self) self.pressPos = QtCore.QPoint() self.dragPos = QtCore.QPoint() self.tapTimer = QtCore.QBasicTimer() self.zoomPixmap = QtGui.QPixmap() self.maskPixmap = QtGui.QPixmap() self._normalMap.updated.connect(self.updateMap) self._largeMap.updated.connect(self.update) def setCenter(self, lat, lng): self._normalMap.latitude = lat self._normalMap.longitude = lng self._normalMap.invalidate() self._largeMap.invalidate() # slots def toggleNightMode(self): self.invert = not self.invert self.update() def updateMap(self, r): self.update(r) def activateZoom(self): self.zoomed = True self.tapTimer.stop() self._largeMap.zoom = self._normalMap.zoom + 1 self._largeMap.width = self._normalMap.width * 2 self._largeMap.height = self._normalMap.height * 2 self._largeMap.latitude = self._normalMap.latitude self._largeMap.longitude = self._normalMap.longitude self._largeMap.invalidate() self.update() def resizeEvent(self, event): self._normalMap.width = self.width() self._normalMap.height = self.height() self._normalMap.invalidate() self._largeMap.width = self._normalMap.width * 2 self._largeMap.height = self._normalMap.height * 2 self._largeMap.invalidate() def paintEvent(self, event): p = QtGui.QPainter() p.begin(self) self._normalMap.render(p, event.rect()) p.setPen(QtCore.Qt.black) if SYMBIAN: font = p.font() font.setPixelSize(13) p.setFont(font) p.drawText(self.rect(), QtCore.Qt.AlignBottom | QtCore.Qt.TextWordWrap, "Map data CCBYSA 2009 OpenStreetMap.org contributors") p.end() if self.zoomed: dim = min(self.width(), self.height()) magnifierSize = min(MAX_MAGNIFIER, dim * 2 / 3) radius = magnifierSize / 2 ring = radius - 15 box = QtCore.QSize(magnifierSize, magnifierSize) # reupdate our mask if self.maskPixmap.size() != box: self.maskPixmap = QtGui.QPixmap(box) self.maskPixmap.fill(QtCore.Qt.transparent) g = QtGui.QRadialGradient() g.setCenter(radius, radius) g.setFocalPoint(radius, radius) g.setRadius(radius) g.setColorAt(1.0, QtGui.QColor(255, 255, 255, 0)) g.setColorAt(0.5, QtGui.QColor(128, 128, 128, 255)) mask = QtGui.QPainter(self.maskPixmap) mask.setRenderHint(QtGui.QPainter.Antialiasing) mask.setCompositionMode(QtGui.QPainter.CompositionMode_Source) mask.setBrush(g) mask.setPen(QtCore.Qt.NoPen) mask.drawRect(self.maskPixmap.rect()) mask.setBrush(QtGui.QColor(QtCore.Qt.transparent)) mask.drawEllipse(g.center(), ring, ring) mask.end() center = self.dragPos - QtCore.QPoint(0, radius) center += QtCore.QPoint(0, radius / 2) corner = center - QtCore.QPoint(radius, radius) xy = center * 2 - QtCore.QPoint(radius, radius) # only set the dimension to the magnified portion if self.zoomPixmap.size() != box: self.zoomPixmap = QtGui.QPixmap(box) self.zoomPixmap.fill(QtCore.Qt.lightGray) if True: p = QtGui.QPainter(self.zoomPixmap) p.translate(-xy) self._largeMap.render(p, QtCore.QRect(xy, box)) p.end() clipPath = QtGui.QPainterPath() clipPath.addEllipse(QtCore.QPointF(center), ring, ring) p = QtGui.QPainter(self) p.setRenderHint(QtGui.QPainter.Antialiasing) p.setClipPath(clipPath) p.drawPixmap(corner, self.zoomPixmap) p.setClipping(False) p.drawPixmap(corner, self.maskPixmap) p.setPen(QtCore.Qt.gray) p.drawPath(clipPath) if self.invert: p = QtGui.QPainter(self) p.setCompositionMode(QtGui.QPainter.CompositionMode_Difference) p.fillRect(event.rect(), QtCore.Qt.white) p.end() def timerEvent(self, event): if not self.zoomed: self.activateZoom() self.update() def mousePressEvent(self, event): if event.buttons() != QtCore.Qt.LeftButton: return self.pressed = self.snapped = True self.pressPos = self.dragPos = event.pos() self.tapTimer.stop() self.tapTimer.start(HOLD_TIME, self) def mouseMoveEvent(self, event): if not event.buttons(): return if not self.zoomed: if not self.pressed or not self.snapped: delta = event.pos() - self.pressPos self.pressPos = event.pos() self._normalMap.pan(delta) return else: threshold = 10 delta = event.pos() - self.pressPos if self.snapped: self.snapped &= delta.x() < threshold self.snapped &= delta.y() < threshold self.snapped &= delta.x() > -threshold self.snapped &= delta.y() > -threshold if not self.snapped: self.tapTimer.stop() else: self.dragPos = event.pos() self.update() def mouseReleaseEvent(self, event): self.zoomed = False self.update() def keyPressEvent(self, event): if not self.zoomed: if event.key() == QtCore.Qt.Key_Left: self._normalMap.pan(QtCore.QPoint(20, 0)) if event.key() == QtCore.Qt.Key_Right: self._normalMap.pan(QtCore.QPoint(-20, 0)) if event.key() == QtCore.Qt.Key_Up: self._normalMap.pan(QtCore.QPoint(0, 20)) if event.key() == QtCore.Qt.Key_Down: self._normalMap.pan(QtCore.QPoint(0, -20)) if event.key() == QtCore.Qt.Key_Z or event.key() == QtCore.Qt.Key_Select: self.dragPos = QtCore.QPoint(self.width() / 2, self.height() / 2) self.activateZoom() else: if event.key() == QtCore.Qt.Key_Z or event.key() == QtCore.Qt.Key_Select: self.zoomed = False self.update() delta = QtCore.QPoint(0, 0) if event.key() == QtCore.Qt.Key_Left: delta = QtCore.QPoint(-15, 0) if event.key() == QtCore.Qt.Key_Right: delta = QtCore.QPoint(15, 0) if event.key() == QtCore.Qt.Key_Up: delta = QtCore.QPoint(0, -15) if event.key() == QtCore.Qt.Key_Down: delta = QtCore.QPoint(0, 15) if delta != QtCore.QPoint(0, 0): self.dragPos += delta self.update() class MapZoom(QtGui.QMainWindow): def __init__(self): super(MapZoom, self).__init__(None) self.map_ = LightMaps(self) self.setCentralWidget(self.map_) self.map_.setFocus() self.osloAction = QtGui.QAction("&Oslo", self) self.berlinAction = QtGui.QAction("&Berlin", self) self.jakartaAction = QtGui.QAction("&Jakarta", self) self.nightModeAction = QtGui.QAction("Night Mode", self) self.nightModeAction.setCheckable(True) self.nightModeAction.setChecked(False) self.osmAction = QtGui.QAction("About OpenStreetMap", self) self.osloAction.triggered.connect(self.chooseOslo) self.berlinAction.triggered.connect(self.chooseBerlin) self.jakartaAction.triggered.connect(self.chooseJakarta) self.nightModeAction.triggered.connect(self.map_.toggleNightMode) self.osmAction.triggered.connect(self.aboutOsm) if SYMBIAN or WINCE: self.menuBar().addAction(self.osloAction) self.menuBar().addAction(self.berlinAction) self.menuBar().addAction(self.jakartaAction) self.menuBar().addAction(self.nightModeAction) self.menuBar().addAction(self.osmAction) else: menu = self.menuBar().addMenu("&Options") menu.addAction(self.osloAction) menu.addAction(self.berlinAction) menu.addAction(self.jakartaAction) menu.addSeparator() menu.addAction(self.nightModeAction) menu.addAction(self.osmAction) QtCore.QTimer.singleShot(0, self.delayedInit) # slots def delayedInit(self): if SYMBIAN: qt_SetDefaultIap() def chooseOslo(self): self.map_.setCenter(59.9138204, 10.7387413) def chooseBerlin(self): self.map_.setCenter(52.52958999943302, 13.383053541183472) def chooseJakarta(self): self.map_.setCenter(-6.211544, 106.845172) def aboutOsm(self): QtGui.QDesktopServices.openUrl(QtCore.QUrl('http://www.openstreetmap.org')) if __name__ == '__main__': if X11: QtGui.QApplication.setGraphicsSystem('raster') app = QtGui.QApplication(sys.argv) app.setApplicationName('LightMaps') w = MapZoom() w.setWindowTitle("OpenStreetMap") if SYMBIAN or WINCE: w.showMaximized() else: w.resize(600, 450) w.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/demos/embeddeddialogs/0000755000076500000240000000000012536324427021775 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/embeddeddialogs/embeddeddialog.py0000644000076500000240000000644512536324427025271 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'embeddeddialog.ui' # # Created: Wed May 28 15:07:08 2008 # by: PyQt4 UI code generator 4.4.3-snapshot-20080526 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui class Ui_embeddedDialog(object): def setupUi(self, embeddedDialog): embeddedDialog.setObjectName("embeddedDialog") embeddedDialog.resize(407,134) self.formLayout = QtGui.QFormLayout(embeddedDialog) self.formLayout.setObjectName("formLayout") self.label = QtGui.QLabel(embeddedDialog) self.label.setObjectName("label") self.formLayout.setWidget(0,QtGui.QFormLayout.LabelRole,self.label) self.layoutDirection = QtGui.QComboBox(embeddedDialog) self.layoutDirection.setObjectName("layoutDirection") self.formLayout.setWidget(0,QtGui.QFormLayout.FieldRole,self.layoutDirection) self.label_2 = QtGui.QLabel(embeddedDialog) self.label_2.setObjectName("label_2") self.formLayout.setWidget(1,QtGui.QFormLayout.LabelRole,self.label_2) self.fontComboBox = QtGui.QFontComboBox(embeddedDialog) self.fontComboBox.setObjectName("fontComboBox") self.formLayout.setWidget(1,QtGui.QFormLayout.FieldRole,self.fontComboBox) self.label_3 = QtGui.QLabel(embeddedDialog) self.label_3.setObjectName("label_3") self.formLayout.setWidget(2,QtGui.QFormLayout.LabelRole,self.label_3) self.style = QtGui.QComboBox(embeddedDialog) self.style.setObjectName("style") self.formLayout.setWidget(2,QtGui.QFormLayout.FieldRole,self.style) self.label_4 = QtGui.QLabel(embeddedDialog) self.label_4.setObjectName("label_4") self.formLayout.setWidget(3,QtGui.QFormLayout.LabelRole,self.label_4) self.spacing = QtGui.QSlider(embeddedDialog) self.spacing.setOrientation(QtCore.Qt.Horizontal) self.spacing.setObjectName("spacing") self.formLayout.setWidget(3,QtGui.QFormLayout.FieldRole,self.spacing) self.label.setBuddy(self.layoutDirection) self.label_2.setBuddy(self.fontComboBox) self.label_3.setBuddy(self.style) self.label_4.setBuddy(self.spacing) self.retranslateUi(embeddedDialog) QtCore.QMetaObject.connectSlotsByName(embeddedDialog) def retranslateUi(self, embeddedDialog): embeddedDialog.setWindowTitle(QtGui.QApplication.translate("embeddedDialog", "Embedded Dialog", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("embeddedDialog", "Layout Direction:", None, QtGui.QApplication.UnicodeUTF8)) self.layoutDirection.addItem(QtGui.QApplication.translate("embeddedDialog", "Left to Right", None, QtGui.QApplication.UnicodeUTF8)) self.layoutDirection.addItem(QtGui.QApplication.translate("embeddedDialog", "Right to Left", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("embeddedDialog", "Select Font:", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("embeddedDialog", "Style:", None, QtGui.QApplication.UnicodeUTF8)) self.label_4.setText(QtGui.QApplication.translate("embeddedDialog", "Layout spacing:", None, QtGui.QApplication.UnicodeUTF8)) PyQt-x11-gpl-4.11.4/examples/demos/embeddeddialogs/embeddeddialog.ui0000644000076500000240000000421612536324427025250 0ustar philstaff00000000000000 embeddedDialog 0 0 407 134 Embedded Dialog Layout Direction: layoutDirection Left to Right Right to Left Select Font: fontComboBox Style: style Layout spacing: spacing Qt::Horizontal PyQt-x11-gpl-4.11.4/examples/demos/embeddeddialogs/embeddeddialogs.py0000644000076500000240000002175112536324427025451 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui try: import embeddeddialogs_rc3 except ImportError: import embeddeddialogs_rc2 from embeddeddialog import Ui_embeddedDialog class CustomProxy(QtGui.QGraphicsProxyWidget): def __init__(self, parent=None, wFlags=0): super(CustomProxy, self).__init__(parent, wFlags) self.popupShown = False self.timeLine = QtCore.QTimeLine(250, self) self.timeLine.valueChanged.connect(self.updateStep) self.timeLine.stateChanged.connect(self.stateChanged) def boundingRect(self): return QtGui.QGraphicsProxyWidget.boundingRect(self).adjusted(0, 0, 10, 10) def paintWindowFrame(self, painter, option, widget): color = QtGui.QColor(0, 0, 0, 64) r = self.windowFrameRect() right = QtCore.QRectF(r.right(), r.top()+10, 10, r.height()-10) bottom = QtCore.QRectF(r.left()+10, r.bottom(), r.width(), 10) intersectsRight = right.intersects(option.exposedRect) intersectsBottom = bottom.intersects(option.exposedRect) if intersectsRight and intersectsBottom: path=QtGui.QPainterPath() path.addRect(right) path.addRect(bottom) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(color) painter.drawPath(path) elif intersectsBottom: painter.fillRect(bottom, color) elif intersectsRight: painter.fillRect(right, color) super(CustomProxy, self).paintWindowFrame(painter, option, widget) def hoverEnterEvent(self, event): super(CustomProxy, self).hoverEnterEvent(event) self.scene().setActiveWindow(self) if self.timeLine.currentValue != 1: self.zoomIn() def hoverLeaveEvent(self, event): super(CustomProxy, self).hoverLeaveEvent(event) if not self.popupShown and (self.timeLine.direction() != QtCore.QTimeLine.Backward or self.timeLine.currentValue() != 0): self.zoomOut() def sceneEventFilter(self, watched, event): if watched.isWindow() and (event.type() == QtCore.QEvent.UngrabMouse or event.type() == QtCore.QEvent.GrabMouse): self.popupShown = watched.isVisible() if not self.popupShown and not self.isUnderMouse(): self.zoomOut() return super(CustomProxy, self).sceneEventFilter(watched, event) def itemChange(self, change, value): if change == self.ItemChildAddedChange or change == self.ItemChildRemovedChange : # how to translate this line to python? # QGraphicsItem *item = qVariantValue(value); item = value try: if change == self.ItemChildAddedChange: item.installSceneEventFilter(self) else: item.removeSceneEventFilter(self) except: pass return super(CustomProxy, self).itemChange(change, value) def updateStep(self, step): r=self.boundingRect() self.setTransform( QtGui.QTransform() \ .translate(r.width() / 2, r.height() / 2)\ .rotate(step * 30, QtCore.Qt.XAxis)\ .rotate(step * 10, QtCore.Qt.YAxis)\ .rotate(step * 5, QtCore.Qt.ZAxis)\ .scale(1 + 1.5 * step, 1 + 1.5 * step)\ .translate(-r.width() / 2, -r.height() / 2)) def stateChanged(self, state): if state == QtCore.QTimeLine.Running: if self.timeLine.direction() == QtCore.QTimeLine.Forward: self.setCacheMode(self.NoCache) elif state == QtCore.QTimeLine.NotRunning: if self.timeLine.direction() == QtCore.QTimeLine.Backward: self.setCacheMode(self.DeviceCoordinateCache) def zoomIn(self): if self.timeLine.direction() != QtCore.QTimeLine.Forward: self.timeLine.setDirection(QtCore.QTimeLine.Forward) if self.timeLine.state() == QtCore.QTimeLine.NotRunning: self.timeLine.start() def zoomOut(self): if self.timeLine.direction() != QtCore.QTimeLine.Backward: self.timeLine.setDirection(QtCore.QTimeLine.Backward) if self.timeLine.state() == QtCore.QTimeLine.NotRunning: self.timeLine.start() class EmbeddedDialog(QtGui.QDialog): def __init__(self, parent=None): super(EmbeddedDialog, self).__init__(parent) self.ui = Ui_embeddedDialog() self.ui.setupUi(self) self.ui.layoutDirection.setCurrentIndex(self.layoutDirection() != QtCore.Qt.LeftToRight) for styleName in QtGui.QStyleFactory.keys(): self.ui.style.addItem(styleName) if self.style().objectName().lower() == styleName.lower(): self.ui.style.setCurrentIndex(self.ui.style.count() -1) self.ui.layoutDirection.activated.connect(self.layoutDirectionChanged) self.ui.spacing.valueChanged.connect(self.spacingChanged) self.ui.fontComboBox.currentFontChanged.connect(self.fontChanged) self.ui.style.activated[str].connect(self.styleChanged) def layoutDirectionChanged(self, index): if index == 0: self.setLayoutDirection(QtCore.Qt.LeftToRight) else: self.setLayoutDirection(QtCore.Qt.RightToLeft) def spacingChanged(self, spacing): self.layout().setSpacing(spacing) self.adjustSize() def fontChanged(self, font): self.setFont(font) def setStyleHelper(self, widget, style): widget.setStyle(style) widget.setPalette(style.standardPalette()) for child in widget.children(): if isinstance(child, QtGui.QWidget): self.setStyleHelper(child, style) def styleChanged(self, styleName): style=QtGui.QStyleFactory.create(styleName) if style: self.setStyleHelper(self, style) # Keep a reference to the style. self._style = style if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) scene = QtGui.QGraphicsScene() for y in range(10): for x in range(10): proxy = CustomProxy(None, QtCore.Qt.Window) proxy.setWidget(EmbeddedDialog()) rect = proxy.boundingRect() proxy.setPos( x * rect.width()*1.05, y*rect.height()*1.05 ) proxy.setCacheMode(QtGui.QGraphicsItem.DeviceCoordinateCache) scene.addItem(proxy) scene.setSceneRect(scene.itemsBoundingRect()) view = QtGui.QGraphicsView(scene) view.scale(0.5, 0.5) view.setRenderHints(view.renderHints() | QtGui.QPainter.Antialiasing | QtGui.QPainter.SmoothPixmapTransform) view.setBackgroundBrush(QtGui.QBrush(QtGui.QPixmap(':/No-Ones-Laughing-3.jpg'))) view.setCacheMode(QtGui.QGraphicsView.CacheBackground) view.setViewportUpdateMode(QtGui.QGraphicsView.BoundingRectViewportUpdate) view.show() view.setWindowTitle("Embedded Dialogs Demo") sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/demos/embeddeddialogs/embeddeddialogs.qrc0000644000076500000240000000013212536324427025574 0ustar philstaff00000000000000 No-Ones-Laughing-3.jpg PyQt-x11-gpl-4.11.4/examples/demos/embeddeddialogs/embeddeddialogs_rc2.py0000644000076500000240000037126312536324427026225 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:23:20 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x78\x0a\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ \x01\x00\x00\xff\xdb\x00\x43\x00\x05\x03\x04\x04\x04\x03\x05\x04\ \x04\x04\x05\x05\x05\x06\x07\x0c\x08\x07\x07\x07\x07\x0f\x0b\x0b\ \x09\x0c\x11\x0f\x12\x12\x11\x0f\x11\x11\x13\x16\x1c\x17\x13\x14\ \x1a\x15\x11\x11\x18\x21\x18\x1a\x1d\x1d\x1f\x1f\x1f\x13\x17\x22\ \x24\x22\x1e\x24\x1c\x1e\x1f\x1e\xff\xdb\x00\x43\x01\x05\x05\x05\ \x07\x06\x07\x0e\x08\x08\x0e\x1e\x14\x11\x14\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\xff\xfe\x00\ \x13\x4e\x6f\x20\x4f\x6e\x65\x27\x73\x20\x4c\x61\x75\x67\x68\x69\ \x6e\x67\xff\xc0\x00\x11\x08\x02\x00\x02\x00\x03\x01\x22\x00\x02\ \x11\x01\x03\x11\x01\xff\xc4\x00\x1a\x00\x00\x03\x01\x01\x01\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x03\x04\x01\x05\x00\ \x06\xff\xc4\x00\x3e\x10\x00\x02\x01\x03\x03\x02\x04\x03\x07\x02\ \x05\x04\x03\x00\x03\x01\x01\x02\x00\x03\x11\x21\x04\x12\x31\x41\ \x51\x13\x22\x61\x71\x05\x32\x81\x14\x23\x42\x52\x91\xa1\xb1\xc1\ \xd1\x06\x24\x33\x62\xf0\x15\x43\x72\xe1\x25\x82\xf1\x34\x53\x63\ \x92\xff\xc4\x00\x19\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x01\x00\x02\x03\x05\x06\xff\xc4\x00\x20\ \x11\x01\x01\x01\x00\x03\x01\x01\x01\x01\x00\x03\x00\x00\x00\x00\ \x00\x00\x01\x11\x02\x21\x31\x41\x12\x51\x61\x13\x32\x42\xff\xda\ \x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xb0\x55\x5d\xa2\ \xbd\x7a\x8c\xf7\xf9\x43\x1c\xb7\xfe\xa0\x3e\xb3\x51\xb8\x9a\x75\ \xdd\x7d\x15\xac\x27\x3b\x53\x55\xab\x55\x2d\xc0\x18\x50\x0e\x00\ \x80\x2a\xe6\xdc\xcf\xa4\xfc\xbc\x7d\x75\x06\xbb\x52\x00\x1f\x68\ \xab\x8e\x2e\xc6\x2c\xeb\xb5\x04\xff\x00\xfc\x87\xbf\x5b\x99\x1a\ \xd4\xb8\xc1\xb5\xbb\xcc\x35\x0f\x18\x96\x45\xae\x82\x6b\x75\x24\ \xe5\xc3\x5b\xba\x83\x3d\x57\x58\xc0\x10\x52\x91\xf7\x41\x20\xb9\ \xd9\x8f\xd0\x4c\x2d\x71\xce\x65\x91\x6a\xaf\xb4\xa1\x37\x6d\x35\ \x3b\xf5\xb1\x22\xf3\xa1\xf0\x7d\x55\x0a\x75\xc0\x08\xe9\x7f\xf7\ \x5c\x4e\x0d\xcd\xfb\xc6\xd2\xaa\x55\x83\x29\x00\xca\xf1\xd8\xa5\ \x75\x7e\x23\x41\x69\xea\x59\x4b\x85\x24\xdf\x22\xd2\x66\xa3\x51\ \x46\xe2\x2e\x3b\xae\x65\x9a\xa6\x1a\xdf\x87\x25\x71\xfe\xad\x2c\ \x3f\xb4\xe7\x0a\xcc\xb6\x28\xc4\x11\xce\x61\xc7\x70\xd7\xa2\xd9\ \xf6\x37\x38\x38\x30\xcd\x64\x6f\x9b\xca\x4f\x51\x27\xae\x08\xc9\ \xc8\x3d\x44\xd3\x2c\x5a\x86\x9d\x43\x6c\x83\xfb\x88\x65\x55\xbe\ \xf2\x9f\x1d\x47\x69\x38\x3b\x96\xdd\x47\x10\xe8\x54\x2a\x6e\x0f\ \x31\x4a\x2b\xe4\xa8\xfc\xaa\x3a\xc2\x57\xc8\xb0\xb1\xe6\xd3\x35\ \x2b\x77\x0e\x9d\x40\xb8\xed\x06\x91\xcd\xb8\x82\x5f\xa9\x01\xe8\ \x6e\x27\x80\x64\x74\xcb\x5b\x9b\x5e\x55\x4f\x3a\x6a\x88\x79\x59\ \x2a\x60\xc2\x15\x14\x89\x22\xe7\x31\xc9\x6b\x5c\x88\x14\x96\xcb\ \x68\xdb\x7e\x93\x34\xc6\xd9\x67\x98\x29\x1c\x40\xbd\x8c\xdd\xc2\ \xd7\x81\x22\xa1\x0a\xc0\x82\x62\x2a\x6d\x2c\x19\x70\x7a\x88\x75\ \x9b\x24\xde\xf2\x75\x27\x75\xf8\x1d\x66\xe3\x2e\xca\xb0\x1f\xe1\ \x6a\xb7\x3c\xd4\x13\x82\x48\xb9\xf5\x9d\x6d\x43\xff\x00\xf0\x01\ \x6d\x60\xd5\x70\x3d\x27\x11\xb9\xdc\x3b\xcb\x8c\xf5\x72\x1f\x0a\ \x2d\xde\x30\x5c\xd2\x6b\xf7\x8a\xcc\x65\xfe\xec\xdb\xbc\xd3\x21\ \xb6\x26\x15\x33\xd0\x94\xf4\x92\x60\xbc\x60\x24\x75\x9e\x84\x82\ \x09\xa1\xd8\x0b\x03\x09\x4a\xb1\xb3\x2e\x7b\x83\x30\x00\x27\xb6\ \x5c\xc8\x9b\x4d\x14\xe3\x71\x1e\xe2\x3d\x29\x2d\xef\xe2\x0b\x4c\ \xd3\xd0\x7d\xa7\x95\xbf\x53\x88\xf5\x45\x16\xdc\xfb\xbd\x04\xcd\ \xad\x48\xf5\x35\xa7\xbb\x24\x9f\xda\x74\x6b\xdc\xba\xd8\x58\x05\ \x03\x8f\x49\x25\x30\xb7\xc0\xfd\x65\xe0\x78\xb4\xd4\xf2\xc0\x5a\ \xd3\x9d\x6a\x14\x94\xcb\x35\xee\x4f\x6b\xce\xa6\x9a\x92\xe9\xa9\ \x0a\xd5\x16\xee\x7e\x45\xfe\xa6\x2b\x49\x48\x51\x5f\x1e\xaf\x17\ \xf2\xaf\x78\x75\x6a\x35\x66\x2c\x79\xeb\x31\x6e\xb5\x3a\x26\xb6\ \xfa\x8e\x5d\xdb\x26\x79\x54\xe2\xec\x2d\x35\xb2\x05\xe1\x26\x40\ \x02\x48\x0c\xb7\x3c\x88\x02\x8d\x42\x40\x51\x72\x78\xb4\xa8\x53\ \xbb\x5c\xe7\xd2\x31\x17\x6b\x82\x71\x6c\xd8\x4b\x56\x25\x34\x08\ \x5b\x31\x04\xfa\x18\xdd\x3e\xa0\xa9\x14\x8d\x22\x47\x17\xea\x22\ \x4a\x8f\x99\x14\x93\x7e\x4c\x65\x7a\xc3\x4f\x48\xd4\xa8\x6e\xe3\ \x85\x92\x67\xc5\xd6\xa3\x52\xf0\x29\x10\x0d\xfc\xcd\x7b\x5c\x4e\ \x30\xd1\xb2\xdc\x3d\x4a\x40\x11\xf9\xa6\xd7\xaa\xf5\x77\xb3\x31\ \xbb\x5f\xaf\x79\x25\x67\x0a\xa8\x73\x7b\x4e\x9c\x65\xf1\x9b\x75\ \x76\x87\x4b\x4e\x85\x52\xff\x00\x6c\x40\xa4\x00\x76\xe7\xae\x27\ \x67\x4a\x74\xa0\x55\xaf\xa7\x0a\xd5\x4e\x49\x61\x80\xd6\xe7\xf5\ \x9f\x28\xb5\x0d\x36\x65\xb6\x09\xc4\xae\xbd\x71\x42\x92\x57\xbd\ \xae\x6e\x00\x3d\x47\x3f\x49\x72\xe3\x6a\x97\x09\xd7\x5e\xaa\x3b\ \xb1\xbb\x30\x0f\xf5\xeb\x12\x08\x2b\x44\x8f\xc4\x85\x7d\xc8\x38\ \xfe\x6d\x1f\x57\x69\xfb\xc5\xf9\x41\xb7\xba\xb7\x07\xfe\x77\x91\ \x3d\xc5\x0a\x89\xc3\x52\x7d\xe3\xdb\x83\xfd\x26\xe3\x35\x8c\xde\ \x0d\x71\xb3\x28\x7c\xc0\x5f\x99\x7f\xc6\x9c\xfd\xb8\xb8\xe1\xe9\ \xa9\xb7\xd3\xb4\xe6\xd7\x7f\x2f\x88\x54\x1a\x6c\x72\x2f\xf2\xb7\ \x5b\x7b\xcb\x3e\x25\x53\xc6\xf8\x7e\x8f\x58\xab\x85\x5f\x09\xbd\ \x08\xe2\x5f\x60\x9e\x25\x14\x52\xa9\x3e\x1b\x6d\x6e\xc6\x26\xa6\ \x89\xd5\x88\x74\x36\xee\x05\xe5\x6c\x12\xaa\xd3\xaa\xa3\xcc\x70\ \x56\xf6\xfd\x26\x2d\x57\x56\x22\x9d\x52\x2d\xc8\x6e\x91\xda\x92\ \xe9\x74\xcd\x53\x55\x49\x14\xdf\x73\x01\xce\x67\x53\xfc\x4c\xf5\ \x3f\xea\x95\x9d\x37\x2e\xc7\x0a\x2d\xe8\x00\x89\xd3\xea\xda\x86\ \xa6\x9d\x4a\xa9\x4d\xac\xc0\xdc\xa8\x3c\x1e\xf3\xb5\xf1\x47\xa6\ \x3e\x21\x51\x2c\x08\xa8\x9e\x20\x3c\x83\x33\x6d\xd3\x27\x4f\x98\ \xaf\x59\x6b\x5b\xed\x1a\x60\xd8\xbe\xe4\xc1\x8a\xa5\x4a\x82\xd4\ \x0f\x47\x50\x52\xc7\x8a\x8a\x47\xf1\x3b\xaa\xda\x7a\x94\x95\xdb\ \x45\x48\x82\x6d\x63\x71\x7f\xd0\xc9\x3f\xc4\x54\x74\x54\x3c\x25\ \xd3\xa7\x87\x58\x8b\xd4\x40\xc4\x85\xed\xf5\x8c\xbd\xe0\xb3\xe9\ \x02\x8e\xb8\x1d\xb4\x6b\x25\x45\x3f\x2d\xaa\x8c\xfe\xa6\x0a\x8d\ \x42\x56\xa9\xa6\xd4\xab\x23\x6d\xbe\xd3\x16\x8d\xe1\x20\x0f\x66\ \xab\x6b\xa0\x39\x0b\x27\x4a\xae\xda\x9f\x12\xa3\x12\xdd\x49\x9a\ \xc0\xac\x1a\x29\x54\x35\x70\xc6\xca\x2d\x6e\xb2\xca\x5a\xe4\x5a\ \x61\x69\x22\xd3\x37\xbe\xe0\x2e\xdf\xa9\x91\x6a\xd1\x7c\x95\x71\ \x91\x6f\xd2\x6e\x8e\x9a\xbd\x4f\x31\x01\x00\xdc\xc7\xd2\x16\x1d\ \x46\x49\x51\x83\x06\xf7\xf3\x1c\x43\x24\x00\x73\x33\x01\x07\xaf\ \x33\x4c\xbc\x1a\xdc\xf1\x35\x58\x1e\xb1\x64\x83\x32\xf9\xe2\x49\ \x4a\xb0\xb6\x0c\xf0\x60\x4f\x17\x89\x56\xe9\xfa\x4f\x33\x10\x71\ \x24\x61\x60\x0e\x26\xa3\x67\x20\x44\x96\xbf\x59\xb4\xce\x09\xbf\ \xa0\x92\x75\xfe\x0b\xaa\x4a\x7a\x91\x4a\xa1\xfb\xaa\x9e\x56\xcc\ \x57\xc4\x68\x36\x97\x56\xf4\x4f\x03\x2b\xea\x24\x09\x70\xdd\xbd\ \x67\x66\xa1\x3a\xff\x00\x85\x0a\xbc\xd7\xd3\x61\xbb\x95\x99\xb3\ \x2e\xb5\xec\x72\x5c\xe3\xbc\x15\xa8\x54\x77\x07\xa1\x9a\x6f\x6c\ \xfd\x22\xdb\xe5\xf6\x9a\x64\x45\x41\x37\x4e\x7b\x4c\xfc\x5b\x80\ \xf7\x8b\x18\xcf\x58\xd4\x60\x5a\xcd\x83\x24\xab\x7d\x8a\xbf\x75\ \xcd\xe7\x98\x00\x55\x94\x8d\xa7\xf6\x82\xcb\xfe\x5c\x13\xf8\x5b\ \x3e\xc6\x2e\x91\xf3\x77\x53\xcc\x0a\xed\x3b\x79\x85\xff\x00\x10\ \xb4\x48\xb8\x36\x3d\xe1\xa8\x28\xca\x2e\x2c\x00\x20\xcf\x56\xf2\ \xd6\x71\xeb\x02\xa6\x8b\x8d\xa2\xf1\x9b\x87\x79\x0a\xbe\xde\xb0\ \xd6\xaf\x78\x61\xd5\x24\xde\x2e\xab\x81\x71\xd6\x07\x89\xe9\x14\ \x49\x66\xc7\x26\x52\x0d\x7b\x6e\xf6\xcf\x03\x26\x4f\x59\xae\xd6\ \x5c\x28\xe2\x51\x58\x10\x3c\x31\xf5\x3d\xe4\xae\xa4\x1e\x26\xa0\ \xae\x8e\xac\xff\x00\xf0\xda\x65\x07\xf1\x1f\xe4\xce\x49\xb9\xb8\ \x9d\x3a\xa8\x5f\xe1\x54\x6e\x78\x6f\xef\x21\x2a\x00\x25\x4d\xc4\ \xb8\xaa\x11\x90\x00\x8d\x44\x25\x2d\x15\x4c\x82\xd6\x94\x21\x00\ \x5b\x16\x8d\x40\xf0\x49\x3c\x8f\xd6\x18\xd3\x38\x22\xe4\x47\x0b\ \x0f\x36\xd0\x7d\xf8\x8e\xa5\x52\xa5\x43\xb3\x70\x0b\xd8\x0c\x42\ \xd3\x89\xd7\x4e\xe7\x93\x6f\x78\xfa\x3a\x36\xa8\x76\xab\x0b\xc7\ \x84\xa6\x2f\xb4\x5b\xd4\xc2\x5a\xce\x84\xec\x3b\x07\x70\x26\x34\ \xe1\xc7\xe1\x06\x95\x2f\x12\xab\x80\x3b\x0e\x64\xf6\x54\xc5\x30\ \xaa\x3b\xf2\x65\x14\x9a\xb5\x70\x40\x27\x6f\x73\xc4\x55\x52\xaa\ \xc4\x2d\x98\x8e\xa7\xfb\x43\x6f\xd2\x04\x52\x4d\xd9\xaf\x1a\xb4\ \xcd\xf8\x82\x8e\xc7\xbf\xe9\x1b\x4d\x98\xb5\xb2\x64\x8c\xa7\x4c\ \x92\x2c\x27\x4b\x47\x40\x8f\x3b\x82\x15\x7f\x79\xed\x0e\x99\xaa\ \x58\x8c\x7a\x4b\xaa\x02\xb6\x43\xc0\xe9\x39\xde\x5f\x1b\x91\x33\ \xb7\x8a\x7c\xc2\xc0\x70\x27\x96\x8b\x03\x71\x28\x08\xc7\x37\xb0\ \xef\x0c\x10\xa3\x17\xf7\x99\xd3\x89\x8d\x22\x79\x84\x86\x8a\x1c\ \x00\xc7\xde\x6b\x30\x6f\x29\xe0\xc0\xf0\xc0\x37\x19\x92\x3b\xc4\ \x24\xe1\x40\xf6\x98\xe0\x6d\x26\xf6\xe9\x02\xcd\xde\xd0\x1d\xf6\ \xf3\x99\x22\xcd\x42\xa6\xca\x2c\x7a\x4e\x6e\xb8\x9a\xb5\x0d\xdb\ \x8e\x65\xac\xe4\xab\x37\x6e\x27\x37\x50\xce\x01\x05\x7d\xe6\xf8\ \xb3\x53\xb1\xb5\x85\xfd\x24\xf5\xbc\xd4\xc7\xa1\x36\xfa\xc6\x39\ \x2c\x6c\x17\x37\xc4\x6b\x68\xeb\x14\xc0\x00\x9e\x93\xa4\xe9\x84\ \x56\xfb\xb5\x39\xc7\x58\x55\xaa\x0a\x84\x53\x7c\x28\xe3\x1f\xbc\ \x16\xa6\xd4\xcd\xaa\x2d\xbd\x26\x3b\x52\x57\x20\xdc\xb7\x49\xa0\ \xbb\x47\x4c\xd4\xa0\x29\x8f\x30\x2a\x50\x9f\x4e\x87\xe9\x21\x23\ \xef\x83\x31\xe7\xca\xff\x00\xc1\x8e\xd2\x6a\x9b\x4f\x55\x5a\x9a\ \x80\x3b\x77\x89\xd5\x37\xde\x39\x55\xb0\x63\x71\xe9\x09\x3b\x4c\ \x54\xa3\x49\x5a\x8d\x47\x39\xf2\xb8\xb5\xef\xd8\x89\x57\xc3\xe9\ \xa7\x85\x5b\xe1\xcd\x77\x0e\x37\xd2\x27\x82\x47\x69\x15\x45\x35\ \xa9\x06\x19\x75\xc1\xb7\x5e\xc6\x16\x92\xbf\xd9\xea\x27\x88\x72\ \x8d\x75\xb7\x20\xc6\xc5\x08\x63\x52\xa3\x6d\x38\x0b\x8e\xc1\x61\ \xb0\xb8\xda\x8c\x19\x80\xb5\xfb\xca\xfe\x35\x42\xf5\x16\xbd\x2b\ \x78\x35\xfc\xe2\xdd\xfa\xc8\x86\xda\x62\xc3\x2f\xd2\xd1\x97\x45\ \xe9\xe0\xb6\xa6\x03\x5c\x00\x6f\xee\x67\x5f\xe2\x6f\xbf\x49\xa0\ \xd4\x5e\xf7\x4d\xac\x3d\xa7\x1a\xa3\x6e\x21\x98\xdc\x9c\xda\x75\ \xf4\x8e\x95\x7f\xc3\xb5\x1a\xa0\x2f\xe0\x54\x0e\x2f\xd6\xf8\xb7\ \xb4\xcf\x2f\x94\xc2\x35\x1a\xa3\xa7\x0b\x5c\x0f\xbc\x71\xe4\x1f\ \x97\xd6\x73\xaf\x62\xd5\xea\xf9\xbf\x2d\xfa\x98\xa7\xac\xd5\x9d\ \xbc\x43\x76\x63\x7b\x9e\xf0\xd8\x82\x05\x2e\x0a\x8f\xde\x6a\x4c\ \x1a\x43\x12\xcc\x58\x93\xba\xf7\xbc\x36\x1e\x22\xef\x1f\x30\xf9\ \x84\xc0\x2c\x70\x23\x13\xc8\x77\x08\x85\x79\xad\xa0\x04\x5f\xca\ \x6f\xfc\x40\x27\x66\x88\x81\x86\xa8\x6d\x8e\xc2\x3f\x47\xb0\x6e\ \x51\x73\x4e\xa8\xb0\xb7\xe1\x6e\xc6\x23\x5f\xf7\x6b\x46\x9d\x8d\ \xd5\x2f\xfa\x98\x7f\x8d\x25\xa8\x00\x18\x31\x6f\x84\x07\xd6\x16\ \xa6\xea\x08\xe4\xc4\x8b\x9a\x66\xdd\x3d\x62\xc8\x49\xce\x21\x83\ \x71\x6e\xb1\x4b\xba\xf0\xd4\x8b\x08\x44\x31\xc4\xf5\xee\x3d\x60\ \xf3\x88\x40\x11\xd3\x11\x4d\x50\x4f\x31\xeb\x4d\x40\x17\x88\xf1\ \x2c\x71\x8f\x58\x75\x49\xdc\x2e\x7a\x49\x1e\x19\x2d\x8e\x44\xbb\ \xe1\x5a\xe4\xd3\x6a\x43\x3a\xdd\x0f\x95\xc7\xa1\x9c\x94\x2b\x7c\ \xb1\x87\xb9\x09\xc1\x30\xb3\x4c\xb8\xbf\xe2\x94\xa9\x69\xf5\x6c\ \x8a\x3c\x87\x2a\x47\x50\x64\x8e\x88\x5b\x07\x06\x57\x75\xd5\xfc\ \x33\x39\x7d\x3f\xee\xa6\x44\xa0\x60\x06\x94\x55\x8d\x48\x83\x83\ \x71\xd2\x0e\xc3\xbb\xd2\x69\x7d\xac\x6c\x6f\x09\x6b\x92\xb6\x20\ \x5a\x20\xda\x2e\x18\x35\x12\x70\xf8\x1e\xfd\x20\xad\x36\x0f\x66\ \x04\x01\x30\x14\x60\x6f\x82\x0c\x73\xef\x74\x1f\x78\x59\x60\x46\ \x95\x37\xdd\x4f\xff\x00\x59\xed\x41\xb9\x46\xee\xbf\xfa\x93\xb0\ \x64\x20\x11\x68\xf7\x3b\xe8\x2b\x7e\x56\x20\xc9\x04\x03\x6e\xc2\ \x12\x91\x07\x24\x5a\x78\x5e\xf2\x46\x5f\xac\xca\x75\x00\xa8\x09\ \x03\x99\x80\x6e\x10\x48\xb6\x4f\x32\x26\x6a\xc1\xf1\x48\x8b\x03\ \x78\xb7\x5e\x91\xda\xa0\x59\x52\xaf\x71\x12\xac\x05\xbb\x88\x40\ \xa1\xc9\xff\x00\xa4\x81\xd9\xed\x20\x43\xb5\x89\x3c\x75\x13\xa9\ \x8a\xbf\x0c\xa9\xd0\xab\x5c\xff\x00\x79\xcb\x36\xb9\x8c\x54\x25\ \x7c\x3a\xb7\xb5\xc7\x78\xc4\x62\x48\xe9\x08\x59\xe8\x9b\x8f\x32\ \xf1\x16\x14\xdc\x45\x28\x04\x95\x00\x9f\x49\x7e\x91\x07\x85\xcf\ \x3c\xce\x6d\x2b\xf0\x71\x3a\x3a\x57\x1e\x5e\xd6\xcc\xcf\x23\x07\ \x54\xa9\x63\xd1\x47\x03\xd6\x65\x20\x19\xf6\x1f\x94\x65\xa7\x89\ \xbd\x43\xe9\x98\x0e\xdb\x34\xe2\xe6\xcd\x50\xdc\xfb\x4c\x95\x9a\ \x5a\xa6\xa3\xbf\x86\x46\xd5\x43\xb4\x76\x93\x2e\xe2\x73\xfc\x45\ \x69\x2a\x78\x75\x81\x5b\x8e\xf9\x96\x55\x1e\x27\x00\x21\xf4\xeb\ \x0b\x32\x90\x0b\xf6\x95\x69\xc7\x0c\x4d\xa2\x69\x96\x07\x6b\x08\ \xec\x91\xc8\xb0\xe9\x05\x1d\x2d\x36\xa4\x0c\x2d\xc0\xe2\x5a\xac\ \x0a\xee\x6b\xda\x72\xb4\xe2\xc4\x16\xe4\xf4\x95\x2d\x70\x5a\xd7\ \xf2\xce\x76\x37\x2a\xc2\xe0\xf1\xc7\x68\xb6\x6b\xc4\x35\x4d\xa6\ \xc3\x33\xc1\xcd\xa1\x87\x44\xc0\xdc\x66\x36\xe1\x46\x06\x7b\xc5\ \x03\x9b\xf5\x99\xbb\xc8\x49\x92\x30\xb8\xeb\xcf\x79\x3d\x7b\x35\ \xb3\xe9\x13\x52\xa3\x13\x32\x8b\x10\xe0\x93\x8b\xe6\xf1\xc1\xa0\ \xd5\xd5\xd8\x82\x9d\x3c\x66\xe7\xd6\x73\x35\x0e\x58\xdc\x93\x79\ \x6e\xb1\xd5\x99\x95\x70\x41\xb7\xbc\xe7\xd4\x06\xe7\xa4\xe9\xc5\ \x8a\xdd\x13\x05\x77\xaa\x72\x29\xa1\x61\xef\xd2\x25\x2b\x3b\x12\ \xcc\xcd\x7e\xf1\xd4\x17\x6d\x3a\xe4\x70\x53\xfa\x89\x15\x5a\x97\ \x20\x70\x07\x00\x4d\xc0\x65\x6a\xcf\x55\x7c\xcd\xb8\xae\x01\x32\ \x46\x3b\x8e\xee\xbd\x63\x1c\x92\xe1\xfe\x86\x61\xb2\x9f\x59\xa1\ \x4e\x74\x52\xab\xe1\xdf\x76\xd0\x48\xef\xed\x05\x54\x35\xd1\xcd\ \xd8\x9c\x4c\x2c\xc6\x88\x61\xf8\x4d\x8f\xb7\x48\x92\x08\x20\xde\ \xc6\x08\xda\x6c\xd4\xea\x10\x17\xc8\x45\x98\x09\x95\xb4\xf6\x6c\ \xb0\x27\xa1\x1d\x60\x1a\xad\xb8\x93\xd7\x98\xda\x6f\xe2\x8f\x0b\ \x1b\xc7\xca\x7f\xa4\x42\xbf\x87\xd4\x6a\xd4\x5b\x41\x59\x30\xdf\ \xe9\x13\xf9\xbf\xf7\x22\xab\x41\xa9\xb1\xec\x0f\xcb\xd4\x18\x5e\ \x21\x5b\x03\x80\xbf\xb4\xab\x59\xfe\x62\x88\xd5\x53\x37\x6c\x0a\ \x83\xd7\xbc\x3c\xa5\xc7\xa8\x19\xaa\x05\x1c\x93\x69\xdb\xf8\x75\ \x41\xe3\x9f\x85\x9f\x92\xa5\x16\x42\x4f\x56\xe6\xf3\x9f\x45\x00\ \x7f\x11\x96\xc5\x05\xf8\xeb\x05\x0d\x5a\x5a\x9a\x75\xc6\x4a\x9d\ \xc0\xfd\x65\x7b\x13\xa4\x9b\x36\xd6\x28\xe0\x82\x0e\x7e\x90\xef\ \xbf\xef\x3f\x10\xf9\xbf\xbc\xe9\x7c\x6f\x4c\xab\xad\x3a\x8a\x6b\ \xe4\xac\xbe\x20\xfa\xf3\x39\x8a\x76\x36\x17\x3f\xcc\xd4\xbb\x15\ \x98\x32\xa1\x97\x70\xe7\xac\xf2\xf1\x62\x38\x8c\x5b\x0b\x1b\xf9\ \x4f\x1e\x90\x99\x70\x4a\x0c\x75\xf4\x86\xa3\x3e\x1d\x50\xd3\xae\ \x05\x83\x23\x7c\xca\x66\xfc\x58\xd3\xaf\x59\x2b\x53\x04\x53\x2b\ \x61\xdc\x5a\x05\x3f\xb9\xa2\xd5\x1b\xe7\x61\x65\x1f\xd6\x6e\x9f\ \x6d\x5a\x6c\x97\x00\xf2\x3d\xe1\xf7\x57\xf8\x46\xa2\x91\x77\x2c\ \x49\x3e\xc2\x4e\x69\x94\x3f\x23\x89\x66\x9a\x95\x1f\x05\xcd\x4f\ \x35\xec\x01\xbd\x8a\xcc\xa9\x4e\xe0\xd3\x73\x67\xb7\x91\xba\x34\ \x75\x22\x6b\x7f\xfd\x5f\x58\x00\x8d\xd6\xd9\x6f\xa4\xda\x8c\xe8\ \xdb\x4f\x4e\x62\xcb\x9b\xfc\xc4\x44\x1b\x71\xf9\xbf\x68\xb6\x3b\ \xbf\x14\xf3\x54\x21\x41\x9a\x2b\x5c\x65\x10\xfd\x20\x40\xbc\xf4\ \x8d\xaa\x18\xb9\x1e\x93\x29\x9a\x6e\x72\x96\xf6\x31\xb5\x7c\x3f\ \x16\xca\xc4\x7b\x89\x22\x91\x48\x39\x8c\x5b\x9c\xda\x68\x05\x6e\ \x46\x47\xa4\x30\x40\xe5\x79\x88\x37\x41\xa8\xf0\x6b\x86\x20\x15\ \xe1\x87\x70\x66\x6a\xd3\xec\xda\x82\x9d\x2f\x70\x7d\x3a\x44\x82\ \xa4\xe2\x53\xa8\xb5\x5d\x0d\x2a\x9d\x51\x8a\x1f\xe4\x48\xa3\xa8\ \x0e\xec\x5e\x78\x13\xc5\xa1\x58\x15\xe7\x89\xa8\x80\xf0\x64\x1a\ \x2c\x54\x9e\x0d\xa3\x28\x39\x02\xc4\xc5\x22\x9b\x8f\x78\xe5\xa2\ \xd9\xf7\x91\x3a\x93\x0a\xb6\x57\xfa\x4b\x68\x69\xd5\xb4\xec\x3f\ \xdc\x2f\x20\x08\x6f\x71\xd6\x74\x34\xdb\x97\x4d\x91\xc9\xe6\x66\ \x98\x4b\xe9\xdd\x4e\x44\x4b\xa9\x18\x9d\x21\x53\x72\x2b\x1f\x63\ \x31\x92\x9b\xf4\x10\xfd\x1c\x40\x38\x99\x69\x4b\xe9\xae\x70\x62\ \xde\x99\x51\x91\xfa\x47\x40\xe9\xa8\xab\xa7\x65\xea\x38\x12\x2a\ \x8a\x41\xed\x2b\xd3\x36\xda\x96\xe8\x60\xeb\x69\xda\xa1\x23\x83\ \x2f\xaa\xb7\x46\xdf\x71\x50\x7a\x62\x43\x54\x67\x7a\xfc\xa7\x91\ \xda\x5b\xa4\x5f\x23\x8f\x49\x35\xba\xda\xe3\x83\x28\x03\x4f\x91\ \x68\xd3\x4e\xd5\x08\xe4\x74\x8b\x6a\x79\x0c\xbc\x4a\x12\xcd\x4c\ \x13\xc8\xc5\xe2\x8b\x34\xc8\x96\x68\xac\x45\x35\x6e\xb8\xbc\x9c\ \x83\x6b\xf6\x11\xf4\x73\x44\x1f\xca\xd6\x85\x30\x75\xee\x86\xa8\ \x1c\x8b\x0c\x44\xeb\xae\x1d\x50\x7e\x05\x02\x50\x53\x73\xd8\x93\ \x96\x58\x9d\x48\xdd\x54\x93\xd4\xc2\x12\x29\x83\x7e\xbf\x49\x6d\ \x27\x2e\x6c\x44\x4d\x15\x40\x3e\x61\x73\x28\xa6\x96\xc8\x06\x55\ \x45\x14\xc9\xc2\x91\xbb\xfa\x46\x12\x14\xe3\x2d\xdf\xa0\x8a\x5d\ \xd6\xb0\x16\x1d\xe3\xa9\x8a\x40\x8d\xcf\x71\xd4\x4c\x34\xa2\xfb\ \x06\xd3\x86\x22\x2b\xc5\x20\xd8\x0b\x46\xd6\xa9\x40\xa0\x74\xbb\ \x5b\x99\x3f\xda\x54\x9b\x2a\x00\x7b\x99\x98\x94\x25\x46\x6e\xb1\ \xe9\x50\x28\xc8\xcf\x41\x21\xa5\xbd\x89\x62\x0e\x3b\x75\x8f\x00\ \x91\xb9\xda\xc7\xb4\xac\x27\x9a\x97\x37\x27\xe9\x03\x79\xbe\x0d\ \xaf\x17\xbb\x04\x05\xfa\x93\x16\xc4\x83\xd2\xd0\xc5\xad\x7a\xaa\ \x1a\xd6\xfa\xc4\xb5\x40\x4f\xcd\x02\xbf\xcc\x6c\xc2\x24\x15\xb6\ \x5a\xf3\x72\x0d\x16\xa0\xee\x3b\xc0\xe7\xb4\x4b\x39\xe1\xf8\xe9\ \x18\x1d\x32\x09\xc1\x8b\x62\x41\xb3\x73\xed\x18\x05\xa6\x50\x5e\ \xdc\x86\x05\x7f\x69\xcf\xad\x4f\x69\xdc\xc6\xc2\x58\xf5\x05\x32\ \x19\x79\xe6\x06\xb7\x63\x3d\x98\x58\x37\x99\x48\xcc\xd4\x15\x2a\ \xd4\x46\x52\x9c\x1e\xf1\x77\x61\xe4\x03\x3d\xfb\x46\xad\x1d\xae\ \x1b\x8f\x59\x9a\x8d\xa4\x02\xa4\x81\xd7\x13\x4c\x82\x8d\x45\xa6\ \x4a\xb6\x55\x85\x8c\x1a\x98\x25\x48\xc8\x38\xb4\x1b\x28\x17\x27\ \x3d\xa1\x2d\xde\xc2\xe0\xb0\xfd\xc4\x91\x64\xb1\x3c\xc3\x4e\x45\ \x8d\x8c\x5d\x45\xda\xe7\xcc\x09\x13\x51\xbc\xd7\xbc\x52\x8a\xb6\ \xa9\x76\x1f\xea\x0f\x98\x7e\x69\x9a\x3d\x46\xc6\x20\x8c\x30\xb3\ \x03\xd6\x28\x36\x6e\x18\x02\x38\x37\x9a\xd4\xfc\x51\xbd\x6c\x08\ \xe4\x5e\x18\x97\xd4\x5d\xa8\x56\xc1\x95\x8d\xc1\x3c\x5a\x4d\xab\ \xd9\xbd\x3c\x20\xc5\x6d\x6b\xfa\xc7\xa5\x8e\x92\x9d\x1a\x9f\x88\ \x9b\x1b\xf0\x62\x4d\x26\x50\xca\x41\x57\x53\x62\x0c\x21\x74\x11\ \x57\x53\xf0\x80\x0b\x5d\xe8\x1c\x9f\x43\x39\x4d\x44\x13\xf3\x28\ \x3e\xb2\xff\x00\x83\xb8\x4d\x57\x83\x50\x59\x2a\x8d\xad\xdb\x30\ \x75\x3a\x72\x8e\xf4\x9f\x95\x36\x10\x9d\x5c\x57\xb8\x92\x95\x36\ \x0d\xb4\xb2\x15\x38\x22\xf2\xa3\xa6\xf0\x18\x5c\xab\x93\x81\x7c\ \x08\x84\x52\x8a\xe4\x8f\x30\x16\x17\x9b\x41\xd9\x41\x56\x63\xb4\ \xfa\xf1\x1a\x85\x5b\x4f\xbc\xee\xf1\x01\xef\x9e\x22\x45\x11\x4d\ \xc3\x2d\x65\xba\x9b\xe0\x47\x33\x14\x22\xe1\x58\x1e\x08\x1c\xc4\ \xd7\xa7\x4c\xa9\x65\xdd\xea\x39\xb4\xa2\x1d\x6a\x43\xc3\x08\x82\ \xcc\x4d\xd8\x46\xea\xf4\x9e\x05\x2f\x2d\x5f\x15\x40\x1b\xc5\xac\ \x50\xfa\x41\xa2\x84\xea\x55\x97\x76\xd2\xd7\xbd\xff\x00\x98\xe6\ \xac\x8e\xe5\x94\x80\x59\xb3\x71\xd2\x5d\xa7\x22\xba\x87\xb0\xa8\ \x45\xff\x00\x0b\xf7\xf7\x91\xd5\x4d\xa4\x83\x70\x47\x79\xd4\xd6\ \x52\xd8\xc5\x91\x43\x52\x6e\x45\xe4\xcc\x88\xc9\xb6\xa0\x6d\xb6\ \xf2\xbf\x63\xd8\xc4\x22\xb1\xb4\xcc\xc6\x55\xa2\xc8\xfb\x4f\x31\ \x7b\x5a\xfc\x1f\xa4\x90\x93\x19\x1d\xe5\x15\x40\x2c\x0f\x5b\x45\ \x52\xc1\xbd\xaf\x29\x7d\x8c\x88\xd6\xda\x78\x8a\x29\x4d\x80\x3c\ \x46\x87\x0c\x2c\xd8\x3d\xe0\x32\x5d\x01\x53\x00\x92\x05\x88\x90\ \x1b\x0b\x19\x46\x9d\xb7\xe9\x6b\xa1\xe8\x03\x0f\xa1\x92\xee\x24\ \x58\x9f\x68\xef\x87\xb5\xf5\x1e\x19\x36\xde\x0a\x9f\xa8\x95\x20\ \x00\x5b\x06\x66\x46\x44\xcc\xab\x11\xd6\x12\xbd\xb9\x12\x0d\x42\ \x71\x2a\x0c\x40\xdc\x3f\x48\x84\xd8\x7f\x37\xb4\x72\x9b\x93\x7e\ \x25\x4a\xad\x3b\x53\x71\x67\x6d\xb6\x37\xe2\x5a\x1d\x41\x54\x5c\ \x80\x3f\x79\xcc\xa4\x0a\x38\x63\xc0\x95\xd0\xf3\x54\xbd\xfc\xdc\ \x91\x31\x61\x8a\xa9\x94\x6b\x8b\x0c\xcf\x59\x6d\xda\x46\x1c\x06\ \x39\x20\x83\x1a\xee\x6c\x1c\x64\x1e\xd0\xc3\xaa\x00\x07\x83\x31\ \xe9\xf1\x71\x26\x5a\xc2\xfd\xa3\xa9\xd7\xfa\xc3\x2a\x05\x4a\x16\ \xc8\x16\x33\x6a\x53\x35\x28\x90\x79\x1c\x19\x7d\x11\x4d\xd6\xdf\ \xb1\x87\xf6\x70\x0d\xd7\x20\xf4\x87\xe8\xe3\x8b\xa3\x25\x58\x83\ \xf5\x89\x75\x04\x92\xbd\x0c\xe9\xea\x34\xfe\x1d\x52\xc3\xe5\x6e\ \x27\x32\xa5\xc3\xb1\x1d\xe6\xe5\xd6\x6b\xc8\x76\x13\x7c\xa9\xe4\ \x46\x22\xed\x38\xca\x30\xb5\xe2\xd1\x95\xc5\x8e\x0c\x2a\x4c\xd4\ \xdc\xab\x0b\xaf\x51\x14\xd3\x75\x6c\x12\x08\x9d\x0f\x86\xf8\x75\ \x29\x9a\x26\x9f\xde\x38\xbd\xfa\x62\x49\xab\x40\x05\x3a\x94\xc8\ \x75\x6f\xf9\x63\x02\x86\xa7\xc0\x56\xaa\xa2\xcf\xc2\x7a\x42\xf7\ \x0f\x8b\xf5\x35\x68\xe9\x19\xd0\xbe\xfa\xbc\x01\x6e\x27\x29\xaa\ \x33\x64\x92\x60\x82\xce\x4b\x35\xcb\x1e\x49\x99\x7b\x46\x4c\x16\ \xaa\xd3\x6d\x06\xec\x6c\x25\xc6\xa0\x0a\x36\x81\x60\x27\x29\x1a\ \x56\xd5\x00\x06\xf0\xb0\xca\x67\x88\xcc\x72\x61\xa3\x91\xcf\x12\ \x6a\x6f\x73\x19\xbb\x37\x10\xb1\x28\x05\xae\x19\x4e\xd3\xde\x1f\ \x88\x47\x9a\xc1\x98\x77\x12\x65\x2c\x48\x37\x8d\xbe\xe3\xcc\xc9\ \x52\x9a\xe7\x64\xd8\xd8\xff\x00\xc4\x5a\x68\xa8\xbc\x80\x49\xf5\ \x32\x42\x2f\x91\x82\x3f\x79\xaa\xfb\x85\xba\xcb\x16\xa8\xab\x55\ \xc1\xf2\x9b\x03\xd2\x29\x9f\x77\x26\xc6\x79\x4d\xfc\xad\x31\x87\ \x6e\x7b\x49\x32\xb1\xb0\x0c\x7a\x89\x36\xe2\x7a\xc6\x55\xb8\x5b\ \xb1\xe3\xa4\x58\x75\xe8\x36\x99\xa8\x1a\x2c\xa6\xed\xfa\x46\x16\ \xf1\x16\xcb\x86\x1f\xb8\x93\x30\x3b\xaf\xfc\xc3\xa6\xdd\x78\x22\ \x38\x98\x40\x36\xb8\xe2\x15\x50\x1f\x4e\x2c\x3c\xd4\xff\x00\x83\ \x0d\xbc\xe3\x72\xe3\xb8\x98\x83\x6d\x8d\xaf\xdf\xda\x1a\x93\x23\ \xba\x23\x92\x6e\x31\x83\x36\x99\xa7\x53\x27\xca\x09\xe3\xa4\xf6\ \xa1\x3c\x26\x20\x65\x0f\x1e\xa2\x28\x94\x08\x76\xe3\x13\x40\x1a\ \xaa\x25\x58\x91\x02\x8b\x0a\x37\x72\x01\x20\x43\x46\x64\xc0\x26\ \xc7\xa1\x99\x53\x6b\x72\xbf\x51\x10\x92\xad\xef\xb8\x09\xe5\x7b\ \x60\x75\x8d\x54\x1b\xee\xaf\xf4\x33\x2a\x50\x7b\xee\x0b\xb8\x7a\ \x45\x12\x49\xbe\x6e\x23\x29\xb9\x07\x9c\xf4\x33\x2a\x2d\x85\xc8\ \x20\xcf\x28\xf4\x90\x5f\xbc\x35\x1a\x65\x87\x17\xbd\xa5\x14\x3f\ \xcc\xd1\x65\xbf\xde\x28\xf2\xfa\x89\x0a\xb1\xf0\x85\xf1\x9e\x63\ \x74\xaf\xe7\x5d\xb8\x37\x99\xb1\xad\x36\x9d\x5a\x89\x50\x0c\xdc\ \x1e\xb3\xa7\xf1\x10\xb5\x52\x96\xa8\x2d\xb7\x8b\x31\x1f\x98\x49\ \x18\x0a\xa0\xb8\x1e\x61\xf3\xaf\xf5\x96\xe8\x08\xaf\xa7\xab\xa6\ \x3d\x46\xe5\xf7\x1f\xfa\x99\xbf\xd6\xa7\xf1\x0a\x27\x88\x4a\x82\ \x2f\x6c\x5e\x4e\x69\x9e\x0a\x5f\xd5\x65\x9b\x0a\x03\xb7\x93\x88\ \x15\x29\xdf\x80\x55\xbf\x63\x29\x46\x27\x5d\xaa\x36\xb0\x3b\x5b\ \x90\x47\x10\x1e\x9b\x21\x0c\xa7\x72\x1e\x0c\x70\xf1\x03\x6d\x37\ \x37\xfa\xcf\x17\x34\x81\xde\xaa\xd7\x3c\x4d\x05\x6d\xf1\x1f\x03\ \x4e\x1b\xec\x7a\x65\x66\xe0\x04\xe9\xeb\x26\xad\xf1\x2a\xb7\x0d\ \x4a\x96\x9f\x69\x3f\xff\x00\x50\xc4\x9b\x54\x8e\xd5\x09\x72\x6f\ \x27\x25\x92\xad\x87\x03\x90\x61\x38\xc5\x6d\x57\xff\x00\x56\xd4\ \x36\xe5\x22\x88\xbf\x6a\x62\x4b\x57\xe2\x7a\xda\x4f\x9f\x0c\x8e\ \xc2\x98\x1f\xd2\x29\x91\x73\x51\x70\x0e\x3d\xa1\x32\x2d\x4a\x7b\ \x4f\xcc\x38\x33\x59\x06\xd5\x34\xfe\x31\x49\xcd\x35\xad\xa5\x4d\ \xbf\x9b\xb7\xed\x3d\x5f\x5d\xa7\xa7\x57\x65\x4d\x1a\x8e\xbc\x03\ \x79\xc9\x65\x28\xd6\x23\x1d\x44\xae\x8a\xf8\xf4\x3c\x06\xcb\xa8\ \xdd\x49\xbb\xf7\x58\x61\xd5\x94\xf5\x1f\x0d\xaa\x2c\xd4\x02\xfb\ \x62\x39\x34\x5a\x0d\x42\x94\xa7\x59\xa9\xb7\x23\x77\x13\x80\xc0\ \x83\x6c\x83\x19\x46\xb5\x4a\x6c\x08\x63\x89\x60\xd5\xd5\xfe\x1d\ \x5e\x90\x25\x6c\xe3\xba\xc8\x89\xb8\xda\xdc\xf7\x97\x26\xa6\xa2\ \x9f\x12\x9b\x10\x18\xf1\xd2\x7a\xbd\x3a\x5a\xc0\x5a\x9d\x92\xb0\ \xc9\x1d\xe3\xdf\xd4\xe7\x30\x22\x33\x46\xf6\xd4\x52\x63\xc8\x61\ \x01\xf1\xe4\x6b\x82\x20\xad\xd5\xc1\xec\x64\x0f\xac\x2d\x59\x87\ \x66\x22\x09\x19\xf5\x87\xab\x16\xd5\x54\x3e\xb3\x00\xc0\x3d\xe2\ \x86\xa3\x68\xbf\x58\xea\x22\xe2\xe7\x03\xbc\x48\x0c\x3f\xbc\xa8\ \x28\x52\xa0\x74\x12\xa4\xca\xb6\x70\x36\xe2\xdc\x0e\xf3\xd4\x5c\ \xa9\xbf\xd2\x01\x22\xf9\x39\x86\x2d\xc8\xe0\xf1\x02\x61\x7d\xcc\ \x77\x5a\xf7\xc1\x9a\x97\x17\x5c\x83\xcc\x49\xe4\xc3\xa6\xe3\x70\ \x0d\x91\xde\x08\x45\x77\x64\x09\x80\x95\x61\x70\x44\x6b\x2e\xdc\ \xde\xea\x78\x98\xb7\xef\x71\xd8\xcb\x51\xf4\x2a\x90\x01\xe4\x4e\ \x8e\x9f\x50\x08\x07\x91\xd6\x72\x17\x68\xc8\x36\x87\x4a\xb1\x4a\ \x99\xc5\xff\x00\x79\x9b\xc7\x4c\xaf\xa2\x4a\x14\xf5\x94\xb6\x02\ \x03\x11\xe5\x3e\xb3\xe5\xb5\xd4\x5e\x8e\xa5\xd1\x81\x0c\x0e\x67\ \x67\xe1\x9a\xbd\xb5\xc6\xd3\x9e\xd2\x8f\x8d\x69\xa9\xea\xa9\xf8\ \xca\x33\xdf\xb1\x98\xe3\x7f\x35\xab\x36\x3e\x4d\xb9\xdc\x31\x68\ \xea\x6e\xae\x00\x6b\xdc\x75\xed\x02\xb5\x36\xa5\x50\xa3\x8b\x11\ \x05\x30\x44\xec\xe6\x6d\x7d\xca\x36\x72\x1b\x8b\x75\x8a\x6b\xee\ \xb1\xbd\x87\x4f\x58\xf4\x2c\xaa\x5a\xc1\x80\xc8\x07\xac\x96\xa5\ \x42\xf5\x59\xc8\x00\x93\xc4\xa2\xa6\x6e\xc5\x80\xb7\xb4\xc3\x63\ \xd7\xf5\x99\xc8\xb8\xe9\x16\x49\x38\xbe\x24\x8d\x04\x0e\xb1\xce\ \xd8\xe4\xf3\x23\x0f\x90\x2d\xf5\x8f\xaa\xd8\xe6\x49\xbb\x8d\xf0\ \x63\x91\x89\xeb\x25\xf5\x94\x69\xc7\x9a\xc4\xe6\x49\x65\x0e\x2e\ \x7a\x4d\xb9\xe9\x88\x74\xc7\xdd\xf1\x30\x8b\x4e\x6d\x08\x10\xc3\ \x9c\xcc\x3c\xdc\x7c\xd3\x0e\x33\xfb\x42\x5c\x8b\xda\x44\x4a\x47\ \x2d\x93\xda\x7a\xa1\x2d\xe6\xb5\xba\x62\x78\x29\x6c\xf5\x84\xad\ \x7b\xa3\x75\x82\x29\xbf\xd3\x23\x99\x1d\x5b\x6e\xc7\x32\xdd\xbe\ \x56\x1d\x64\x95\x52\xe6\xf3\x5c\x45\x2f\x79\x03\x98\x74\x8d\xc7\ \xd7\x88\xa6\x04\x1b\x46\x23\x0b\x64\x4d\x03\xa9\x92\x0d\xe1\xb0\ \xba\x96\x5e\x0f\x22\x00\x61\xb7\xbc\xcb\x9b\x82\xa6\xe4\x0e\x26\ \x4b\x0f\xde\x27\x84\x70\x47\xc9\xfd\xa4\xa5\x48\x72\x08\xe3\x99\ \x48\x1b\xae\x46\x08\x8b\xac\xde\x21\xdc\xbf\x32\xf2\x3b\xfa\xcd\ \x40\x9f\x27\x26\x09\x61\xf2\xf0\x04\xf5\x4a\x8c\x79\x1e\xd6\x81\ \x4f\xcc\xd9\xb5\xa2\x0c\x5a\x6a\x16\xe4\x66\x26\xec\xa7\x92\x23\ \x77\x5c\xfa\x4d\x21\x4e\x1b\xe8\x64\x80\xd5\x2a\x1a\x78\x6d\xde\ \xf9\x80\x2a\xe3\xcd\x4d\x4f\xd2\x35\x52\xc7\x10\x4d\x3b\xb7\x63\ \x14\x65\x17\xa6\xd4\xc8\x2b\xc7\x40\x63\xf4\xe3\x4a\xc4\x7f\xa8\ \xad\xf4\x32\x7a\x09\x67\x2a\x7a\x88\x68\x36\xb9\x04\x42\xa7\x5d\ \x56\x89\x60\xe9\x55\xae\x46\x7c\xb2\x8a\x1e\x05\x27\x15\x96\xa3\ \x2d\x9a\xf6\xdb\xc4\xe3\xa8\x65\x53\xb4\x9c\x1b\x83\xe9\x28\xd3\ \xd7\x6b\x80\xf9\x07\xbc\xe7\x78\xb5\x2b\xaf\x5a\x86\x95\x6a\x6e\ \x2e\xfb\x5c\x6e\x16\x1d\x0c\x9a\xa3\x68\x94\xd8\x53\xac\xe4\x73\ \xe6\xb4\xb3\x62\xd5\xd0\xab\x15\x27\xc3\xc5\xc1\xe9\x39\x8e\x29\ \x6e\x3f\x78\xcb\xee\x26\x63\x54\xd1\xa9\xd2\xd8\xff\x00\x95\x1f\ \x57\x31\x5a\x8d\x55\x1a\x62\xe3\x43\x40\x8f\xf7\x5c\xc0\x34\x99\ \x9a\xca\xe8\x6f\xd2\xf6\x8c\xad\x48\xd8\x17\x41\x70\x00\x00\x0f\ \xe6\x6b\xa8\x12\x36\xae\xb5\xb6\xd4\x0a\xe0\x74\x75\xbd\xa7\x85\ \x4d\x1d\x61\xb6\xbd\x02\x9d\x9e\x99\xfe\x86\x21\xeb\x31\xf9\x80\ \x75\x03\x83\x00\x6c\x60\x40\x3b\x7d\x0c\xde\x33\xa6\xb6\x82\x8e\ \xdd\xda\x7d\x52\x30\x63\xc5\x41\xb4\xfb\x44\x6a\x68\x55\xa2\x4a\ \xbd\x2f\x27\xe1\x71\x0c\xab\x23\x05\x2b\x75\x38\x23\xa1\x84\x8f\ \xa8\xa1\x59\x82\x31\x6a\x6d\x7b\x29\xcd\x8f\x69\x76\x90\xd7\xa7\ \xb9\x43\x5b\x31\x54\xee\x0d\xd4\x90\x41\xb8\xf7\x9d\x74\x1a\x7d\ \x55\x32\x36\x8a\x35\x48\xff\x00\xea\x4f\xf4\x9c\xed\x5d\x27\xd3\ \xd6\xf3\x29\x06\x32\x8c\x06\xb4\x6f\x22\xb8\x16\x0f\xc8\xec\xdd\ \x64\xa4\x09\x5a\x95\x6a\x55\x29\xff\x00\xf6\x5f\xeb\x25\x38\x3c\ \xc9\x1b\x45\xf6\xae\xc6\x38\x27\xf4\x84\x4b\x23\xab\x0c\x30\xeb\ \x27\xe2\xd9\x94\x82\xae\x81\x2f\x90\x30\x4c\x41\xd5\x55\x75\x94\ \x8d\x45\x00\x56\x5f\x98\x77\x12\x35\xb1\x3b\x5b\x91\x28\xa4\x5d\ \x18\x3a\xfc\xc3\xf7\xf4\x8d\xd5\x50\x15\xd7\xed\x34\x41\xff\x00\ \x78\xec\x61\xe1\x06\xb0\x01\x58\xe3\x95\x07\xf6\x82\x9b\x76\x80\ \x41\x8d\xd4\xd3\x25\xa9\x87\x16\xf2\x2c\x51\x42\x1a\xe4\x45\x0e\ \x9e\xd3\x58\x0b\x5d\x41\xcc\x7d\x72\x8d\x66\x5b\x8b\xf4\x89\xf0\ \xf6\xb6\x0d\xe6\xd8\xf5\xfd\xe0\x98\x49\xe8\x23\x74\xec\x49\xb1\ \xe2\xf0\x00\xef\x68\xda\x29\x9b\xfe\xb2\x50\x55\x17\xcc\x6d\xc4\ \xc4\x07\xac\xa8\x2f\x94\x62\xf7\x98\x50\x76\xb4\x34\xb6\x9b\x5e\ \x9d\x8e\x47\x04\x4d\x65\x01\x6e\xa7\x10\x54\x00\x6d\x79\xa4\xec\ \x39\x82\x27\x75\x9a\xf3\xdb\xed\xc0\xb8\xed\x3d\x55\x41\xbb\x2d\ \xfd\x47\x68\xa5\x22\xe4\x1b\xc5\x28\xa0\xd7\x60\xf4\xc9\xba\x9c\ \x89\xd6\xd3\xea\xcd\x54\x64\xdd\xb5\x8e\x6c\x78\x6b\x4e\x0d\x02\ \x52\xb5\xd6\xf2\xda\x4c\x0d\x42\x2e\x37\x0c\xfb\xcc\xf2\x86\x55\ \x1a\xea\x0b\xa9\x42\x57\x0e\x38\xbf\xf0\x67\x1d\x91\x81\xb1\x04\ \x10\x67\x55\xea\xb2\x5a\xa8\xc8\x5c\x30\xee\x26\x7c\x42\x82\xd4\ \xa3\xf6\x8a\x36\x38\xcf\xb4\xa5\xc5\x66\xb9\x88\xd7\x7d\xac\x40\ \xec\x6f\x00\xd3\xdd\x72\x2d\x79\xe6\x5e\x6f\x3c\x0e\xdc\x8e\x66\ \xd9\x08\x52\x3f\xb4\xf3\x27\xd6\x13\x0c\x6f\x51\x83\xd3\xb1\x9a\ \x0d\xc5\x8f\x22\x48\x86\x43\xcd\x8f\x31\x95\x01\xf0\xd4\xc2\x00\ \x93\xc4\x7b\xa8\x34\x97\x89\x24\xb4\xc9\xbd\xa5\x74\x30\x41\x8b\ \x5a\x37\x37\x06\x53\x46\x91\xbd\xce\x25\x6a\x91\x5a\xff\x00\xa6\ \x27\x87\xa4\x62\x29\x20\x01\xcd\xa1\x9a\x61\x46\x39\x9c\x9b\x25\ \x80\x51\x73\xcc\x05\xbd\xee\x4c\x27\xe6\x01\x3d\xa2\x94\x29\x04\ \x5c\x4f\x38\x07\x23\x06\x22\x9b\x35\xe3\x41\xbc\x10\x99\x7c\xa5\ \xfa\x11\x27\x74\xea\x25\xea\xb7\xa1\x63\x6b\x9c\xc9\x9d\x48\x38\ \xcc\xa5\x48\x2a\xa1\x63\xc4\xc3\x49\x80\xc6\x65\xa6\x98\x61\x91\ \x63\x31\x69\x84\xcb\x5c\xf6\x9a\xfd\x0c\x48\xc0\xab\x5a\xf6\x8a\ \xb3\x83\xbb\x23\xd6\x52\xee\xaa\x49\x16\xb9\x93\xd5\x76\x7b\x5c\ \xe3\xb4\xd4\x0f\x1a\xac\xca\x01\x63\xcc\x1d\xe0\xb0\xb1\xb3\x77\ \x81\x6f\x38\x8b\xdd\xe6\xb4\x40\xaa\x80\xcd\xb9\x47\xb8\x80\xa0\ \x28\xb4\x6a\xb9\x07\x73\x00\xc0\x41\xa8\xa1\xc6\xea\x63\xd4\x8e\ \xd2\x40\x51\x78\x77\xef\xc4\x04\x06\xf7\x38\x86\x2d\x7b\x48\x3c\ \x01\x06\xe2\x53\x4d\x09\x17\xda\x18\x45\xd3\x5b\x64\x4a\x28\x60\ \xe3\x83\xc8\x85\x6a\x05\x55\x4b\x02\x30\x6f\xd6\x65\x6a\x4c\x2a\ \x5c\x0e\x63\xde\x98\x24\x5c\x63\xd2\x1b\x21\x34\xc1\x10\xd3\x89\ \xa9\xab\x6e\xda\x41\x00\x8f\xd2\x1d\x35\x65\xc1\xb9\xf7\x9e\xf3\ \x8a\x83\x69\xf7\x8f\x46\x26\xe0\x8b\x5f\x83\x2b\x53\xa9\xf0\x66\ \xdc\x4d\x16\xe2\xa2\x10\x7d\x08\x91\xd6\xa7\xb4\xb0\x7b\x0b\x18\ \xcd\x2b\xd4\xa2\x45\x40\x7e\x52\x0c\x1d\x6e\x6b\xba\xe2\xfc\x8f\ \x59\xcf\xeb\x5f\x08\x6a\x94\xc6\x15\x73\xf9\xa4\xec\xb5\x41\x2d\ \x4e\xa1\x27\x9b\x03\x63\x0a\xa2\xe0\x1e\x22\x4b\x35\xb0\x31\xde\ \x6e\x46\x49\x76\x5d\xdf\x28\x06\x79\x45\x36\xba\x70\x70\x71\xc1\ \x8d\x14\x0d\x4c\xab\x02\x4f\x43\x89\x82\x81\x01\xc9\x16\x23\x81\ \x69\xad\x05\x06\x60\xe7\xb1\xfc\x27\x89\x8a\xcc\xa4\xb2\x12\x47\ \x51\xda\x59\xa4\xf0\xaa\x50\x74\x6a\x57\x7b\xdd\x4d\xf3\x23\xac\ \xa6\x9b\x92\x87\xcc\x38\x3d\xe4\x9e\x15\x88\x62\xc2\xd9\x3d\xa3\ \x13\x56\x8e\x86\x8e\xa2\x98\xa8\x9f\xb8\xf6\x88\xb0\xad\x48\xed\ \x16\xa8\x39\x12\x67\x36\x7e\x6d\xd6\x38\x14\x54\x44\xa3\x56\x9b\ \x6c\x0d\x4d\x8d\x83\x03\xc8\x91\xd6\x14\x83\x95\xda\xc2\xd2\x9d\ \x3d\x45\xf3\x50\xaa\x6e\x8d\xc7\xa1\xef\x27\xd6\x53\x64\xd5\x32\ \x9b\x1e\xb2\x41\x0b\x46\xd7\x25\x87\xbc\xf0\x5a\x7c\xf8\xb9\xbf\ \x51\x04\xbd\x94\x0b\x64\x40\x2d\x7e\x91\x0b\xa9\xaa\xba\xe6\xaa\ \xdc\x62\xf2\x9d\x2d\x36\xa3\x53\x7a\x82\xc8\xd8\x61\x79\xcb\xa6\ \xf9\xb5\x85\x8c\xb7\x49\x55\x5a\xa0\x57\xc5\xb8\x3d\xe1\x4c\x5d\ \xf1\x2d\x30\x4f\x0c\xab\x38\x1b\x6c\x09\x18\x92\xa3\xb6\xdd\x8e\ \x78\xe0\x91\x2a\x4d\x49\xa7\xb6\x85\x56\x6d\xa4\x75\xe8\x6f\x06\ \xad\x40\xb6\xa7\x59\x03\x8e\x8d\x68\x4d\x34\x01\x59\x48\x7f\x0d\ \x5c\x75\x22\x61\xd9\xd8\x80\x7d\x63\xa8\x8a\x37\xea\x01\xec\x6e\ \x23\x7e\xca\x7f\xed\xb0\x75\x3d\x25\xab\x11\x95\xa6\x4f\x24\x7d\ \x23\xe8\xd1\x3c\xab\x83\x06\xa5\x27\xa6\xd6\x28\x40\x8d\xa4\x01\ \x1c\xca\xa3\x91\x5c\x0c\xac\xd6\x50\x46\x46\x66\xae\xe5\x59\xa5\ \xd8\xf0\x73\xd8\xcc\x34\x99\xf9\x8b\xa8\xc4\xae\xef\xd6\x54\xd9\ \x1e\x74\x10\x48\xa2\x54\xa9\xb8\xbc\x65\x08\x89\x23\xe5\x98\x50\ \x7c\xd7\xfa\x4a\x1e\x92\x1f\xfb\x96\x1e\xd3\x69\x69\x85\xfc\xb5\ \x50\x83\xcc\xd6\x8c\x4c\x0f\xd2\x37\x76\xda\x88\xdf\x49\x57\xd8\ \x10\x30\x6f\x1d\x6d\xed\x1e\xda\x5d\x22\xa0\x35\x2b\xdf\xad\x84\ \x3f\x50\xe1\x2a\xe0\x9c\xe6\xf8\x3e\xb0\xfe\x1e\xfe\x15\x66\xd2\ \xbe\x51\xb2\xb7\x86\x6a\xe8\x51\x46\xda\x6c\xd6\xfc\x44\xc6\xd7\ \xd5\x69\xbc\x24\xad\x4e\x82\xf1\xd7\xa1\x99\x2e\x47\xc4\xb4\xad\ \x42\xb9\x03\xe5\x39\x07\xd2\x48\xea\xc0\x8e\x67\xd3\x9a\xc2\xaf\ \xc3\xfe\xd3\x45\x90\xb8\x19\x04\x7e\xb3\x92\xdf\x12\xd4\x03\x7f\ \x0e\x91\xee\x02\xf3\x35\xc6\xda\x2c\x88\x69\xe4\xed\xb9\xb1\x84\ \x89\xc8\x38\x3c\x4b\xa9\xfc\x62\xa0\x20\x3e\x9e\x8b\x0e\xc5\x65\ \x94\xfe\x27\xa4\x70\xa6\xae\x8a\x99\xbf\x69\x5b\x7f\x82\x48\xe2\ \x84\x65\x6c\x66\xd2\x92\x80\x69\xc3\x05\xeb\x91\x3a\xe9\x4f\xe0\ \xda\xa1\x60\x5a\x83\xc3\xa9\xf0\x8a\x9e\x17\xf9\x7a\xab\x59\x79\ \x99\xbc\xe3\x5f\x97\x0e\x98\x05\xac\x44\xb2\x98\xe0\x1c\xc3\xa9\ \xa5\x7a\x2d\x6a\x94\xd9\x2d\xdc\x4d\xa4\x96\x3d\xe5\x6e\x8c\x38\ \xa9\x5c\x0e\x7a\xcd\x10\x69\xb1\xdc\x4c\x72\x59\xef\x71\x98\x34\ \x96\xb0\xb9\xe2\x2b\x69\x12\xe3\x4a\xed\x7c\x4c\x6d\x39\x61\x81\ \x89\x68\xc4\x04\x1b\xe2\x15\x30\x77\x0c\xca\x5a\x95\x34\xbd\x89\ \x63\x12\xc1\x47\x04\xc7\x51\xe2\xa2\x86\x05\x4d\xed\xd2\x6d\x41\ \x63\x8e\x24\xa2\xea\x6e\x0c\xa3\x7d\xe9\x83\xd4\x60\xc0\x82\xdb\ \x8d\xb8\x89\xac\xc4\x5e\xfd\x63\x2a\x9d\xa0\x58\x5c\x99\x25\x46\ \x3c\x9c\xc6\x46\x69\x75\x47\x51\x27\x62\xd2\xac\x11\xda\x26\xaa\ \x8b\x9c\x83\x37\x01\x57\xf3\x1f\x68\x25\x40\x37\x31\xaa\x86\xc4\ \xdb\x88\x23\x1c\x8b\x98\x86\x05\xc5\xc8\xc4\x15\x05\x5b\x72\x18\ \xc1\x73\xeb\x0d\x13\x3f\xd2\x4b\x00\xca\xac\x37\x2d\x87\xa0\xe9\ \x04\x21\xea\x23\x80\xda\x77\x01\x60\x79\x13\x76\xd8\x6e\x5c\xac\ \x8e\x31\x56\xe0\x47\xd3\xa6\x47\x06\x0a\x10\x70\x2e\x3d\x23\x81\ \xb0\xc8\x99\xb4\xc3\x54\x87\x4d\xbd\x44\xc4\xbd\x88\x31\x6b\x50\ \x5f\xb4\x72\x90\xf7\x33\x24\x97\x41\xbb\x70\xe9\x0d\x00\x28\x08\ \x1c\x4f\x30\x21\x8d\xf8\x8c\xa4\x2f\x70\x64\x8d\x46\x5f\x08\xa9\ \x36\x36\xb4\xdd\x55\xbc\x44\x63\xc9\x51\x98\xaa\x96\x0c\xa9\x19\ \xab\xf3\x54\x55\xec\xa0\x41\x27\xae\xa4\xae\xf5\x02\xc7\xd2\x21\ \x89\x23\x6e\x31\xc8\xb4\xaf\xf0\x94\x5f\xa1\xf5\x93\xb8\x0a\x85\ \x9c\x5d\xaf\xe5\xb4\x60\xa5\x32\xd8\xee\x06\xc4\xe0\x4d\xa9\x5e\ \xaa\xd3\x0b\xbb\x24\x66\xf1\x95\x54\x30\xf1\x12\xc4\x70\x04\x95\ \x77\x12\x5e\xd8\x1f\xcc\xd4\xed\x3c\x03\x97\xdb\x4e\xe4\xda\xe2\ \xdd\x0c\xbc\x69\x68\xbe\x98\x6a\xab\x33\x0b\xe0\xaa\x8e\xb2\x13\ \x55\xe9\x9e\x99\xc4\xb2\xaf\x9b\x44\x85\x5a\xc6\x93\x5d\x81\xe2\ \xc7\xfe\x09\x55\x1c\xcd\x55\x33\xa6\xd5\x59\x4e\x39\x56\xee\x24\ \xfa\x94\xde\x7c\x45\x1c\xf2\x3d\x67\x4a\xbd\x23\x5a\x88\xb1\x05\ \xa9\xe4\x0b\xf4\x91\x30\x6a\x76\x2c\xa6\xdc\x1c\x4d\x4a\xcd\x46\ \xd7\xb8\x3d\x6d\x69\x4d\x6b\x57\xd2\x2b\xff\x00\xdc\xa6\x33\xea\ \x22\x6a\x26\x4e\x49\x1c\x89\xb4\x2a\x78\x76\x27\x20\x1b\x11\xe9\ \x14\x9d\xc6\x38\x8b\xe8\x6d\x2a\xaf\x4f\xc3\xaa\x45\xee\xa7\x2a\ \x7b\x88\x97\x50\x01\x90\x62\x9c\x43\xa6\x79\xcd\x8d\xa2\x01\xce\ \x73\x1d\x48\x16\x61\x6c\xdc\xf1\x08\x9d\x66\x54\xac\x94\xd2\xa3\ \x80\xdb\x05\x8d\xbf\x68\xf4\xa3\xbe\x90\xa4\xee\xa5\xc7\x07\xac\ \xe7\xd6\xba\xd6\x01\xae\x2c\xa2\x57\x4a\xa1\x6b\x6e\xcf\x66\x85\ \x8d\x40\xb5\x3a\x94\x5b\x65\x44\x36\xef\x1d\x49\x99\x16\xfb\x8f\ \xa4\xa0\x13\x51\x2d\x7b\x30\xe2\x24\xdb\x76\xd7\x4b\x1e\xb6\x86\ \xe9\x36\x86\xb0\x37\x92\xaa\xee\x1d\x8c\xa0\x52\xa6\xfe\x6a\x43\ \x1e\xf2\x41\x40\x36\x69\xb0\x62\x3f\x0f\x58\xca\x0c\xf4\xde\xf9\ \x52\x3a\x18\x5f\xf1\x2a\xa6\xb4\x80\xb3\x16\x07\xb1\x13\x7c\x3a\ \x27\x87\xb1\x86\x8f\x4e\xb2\x58\x8b\x37\x79\x35\x54\x64\x36\x3c\ \x74\x33\x24\x4d\x4d\x46\x2e\x59\x62\x2a\xf8\x34\xde\xd9\x33\x1d\ \x8d\xae\x0c\x45\x56\xbf\xcc\x2f\xeb\xd6\x6a\x41\x47\x52\xad\x3e\ \x56\x98\xcc\x57\x8e\xe0\x1b\x59\x7d\x84\xc0\xa5\xb0\x0e\x20\xb5\ \xb2\x09\x9a\xc0\xf2\xd7\x76\x24\x16\x36\xf7\x8c\x37\xf0\x8d\xcd\ \xcc\x98\x9b\x1c\x0c\x4a\x37\x1f\x00\x1e\xa0\xe6\x49\x94\x05\xe9\ \xba\x93\xed\x19\xa6\x60\xda\x66\x4b\xf5\x93\xa1\x3e\x21\x17\x85\ \xa4\xb8\x77\x5e\x31\x2a\x96\x7c\x08\x96\x5d\x46\x98\x9c\x7f\xc1\ \x39\x6e\x36\xb9\x17\xb1\x06\xd3\xa7\xf0\x70\x57\xe2\xce\xa3\xf1\ \xa9\xfe\xf2\x3f\x88\x21\x5d\x75\x65\xb5\xbc\xc6\x13\xd5\x7c\x4e\ \x72\x01\x3c\xc7\x51\x1f\x70\xc4\x5e\xea\xdf\xcc\x50\x16\x00\xda\ \x51\xa6\x5c\x54\x5c\xe5\x6f\x11\x1b\x7b\x05\xf5\xea\x25\xfa\x2d\ \x45\x5a\x54\xd4\xa5\x46\x06\xfd\xe4\x58\x08\x84\xdb\xd6\x39\x40\ \xf0\xd6\xc7\x36\x87\x2e\xda\x8e\xdd\x1f\x89\x78\x80\x26\xa6\x9a\ \x54\x5f\x6c\xc6\x7d\x8b\x4f\x5c\x97\xd2\xb8\xbf\xe5\x33\x8f\x4f\ \x71\xb5\xc8\xbc\xb2\x8d\x41\x49\x77\xa9\xcd\xfb\xce\x56\x7f\x1a\ \x97\xfa\x61\xd3\x3d\x3a\x85\x5d\x0d\xf8\xbc\x34\xa2\x05\xfc\xc3\ \xda\x55\xa7\xf8\x82\x55\xb5\x3a\xea\x08\xef\x0a\xae\x90\x3d\xde\ \x8b\x82\xbd\x8c\x36\xfd\x6b\x08\x4f\x0d\x45\xf6\x92\x7d\x62\x35\ \x15\x49\x16\x5e\x23\x1e\x9d\x54\xf9\x95\x80\x88\xa8\x09\xe0\x8b\ \x46\x02\x00\x62\x73\xc0\x8b\x71\x73\x7e\x23\x18\xb0\x16\xe0\x99\ \x81\x71\x73\x34\x13\xbd\xc6\x21\x51\xc8\x6f\x6b\xc3\x5a\x26\xa3\ \xd8\x5c\x08\xc7\xa2\x88\x40\x0f\x7b\x7c\xde\xf2\x18\x99\xaa\xf7\ \xcc\x5b\xa8\x22\xe3\x37\x9b\x59\x02\x92\x2f\x31\x03\x0e\x38\x9a\ \x05\x5e\xd8\xb4\x5b\xe7\x9c\x19\x66\xc5\x6c\x8c\x19\x3d\x4a\x47\ \xa5\xe3\x28\xc2\x43\x95\x04\x4f\x00\xb6\xbf\x78\x2c\x0e\xe2\x38\ \xb4\xd5\xb9\x04\xf1\x69\xa4\xd0\x07\x48\x6a\x97\x16\x26\xd3\x13\ \x04\x82\x6d\x18\x8a\x06\x79\x82\x09\x56\xb1\xbd\x8f\xac\x2a\x20\ \x01\x9b\x90\x79\x9a\xd6\x3c\xcc\x00\x80\x6d\x99\x26\xba\x59\xb1\ \x8e\xd6\x84\x1b\xf0\x9e\xd0\x51\xb7\x8d\xad\xcf\x49\xaa\xb6\x1f\ \x30\x3f\xcc\x0b\xd1\xda\x53\xe6\x2b\xde\x2d\x6d\x90\x61\x52\xb2\ \xbe\x0f\x48\x55\x14\x31\x16\xf3\x7d\x0f\x68\xdd\x3a\x1d\xe0\xf4\ \xef\x27\xa9\x72\x80\x93\x89\x46\x9a\xaf\x86\x2e\x4f\x22\xc0\x19\ \x92\x02\xa6\xa5\x7b\xe3\x06\xd0\xb5\x8d\x7a\xec\xab\xc0\xc4\x2d\ \x31\x56\xd5\x03\xc6\xdc\xdb\xa4\x4d\x40\x7c\x42\xcd\x70\x09\xbc\ \x93\x50\x8e\xb0\x35\x34\xbc\xfb\x87\xca\x73\x79\xa3\x20\x8b\xc3\ \x27\xee\x41\x6c\x28\x92\x73\x77\x13\x54\x22\xe1\x57\xfe\x5e\x54\ \x02\x1d\x03\xb7\x02\xa3\x05\x1f\x4e\xb0\xaa\xea\x74\x57\x25\xb4\ \x59\x23\x3b\x5e\xc2\x4d\xa9\xd4\x9a\xcc\x3c\xab\x4d\x14\x59\x51\ \x78\x13\x7d\xd0\x48\x42\x5c\x52\x61\x92\x79\x33\x74\xd5\x88\xd6\ \x38\x70\x4d\x37\xf2\x91\xd8\x1e\x26\x0f\x11\x95\x82\xdc\x93\xe5\ \x51\xfc\xca\x74\x74\x95\x36\xbd\xc1\x28\xb7\x21\xb8\x27\xa4\x68\ \x2b\x5b\xa7\xab\xa7\xa8\x8d\xb8\x30\x61\x63\x69\x3d\x76\x75\x56\ \x04\x9b\x5e\xf2\x8d\x75\x64\xae\x81\xd6\xf6\x56\xdb\xff\x00\xb8\ \x87\xa8\x2a\xa8\x2c\x45\xc0\xb3\x5f\xac\xa2\xa9\xfc\x42\xcb\x6d\ \xaa\xc5\x7b\x8e\x91\x0e\xd4\xee\xc0\xa5\xae\x31\x63\x09\xd3\x6b\ \x06\x17\xb1\xe2\x26\xa8\x37\x04\x8b\xcd\x32\x7a\xf8\x75\xb4\xd6\ \x0e\x43\xd3\xe2\xe3\x91\x10\xc8\xc5\x71\x9f\x6c\xc0\xa4\xc6\x9d\ \x40\x7b\x18\x55\x86\xca\x9e\x4e\x0e\x44\x10\x36\xf3\x19\x44\x94\ \x21\x86\x60\x78\x84\xfc\xe0\x34\xa3\x4e\x8a\x48\xda\x79\xe8\x64\ \x95\xb3\x0a\xbb\x56\xa7\x25\x45\x9b\xb4\x62\xab\xd3\x21\x4d\xad\ \xfb\x18\xad\x86\xc8\x6d\x6b\x60\x8e\xd2\xf4\x0a\x50\x06\xf9\x6d\ \x71\xe9\x0b\xd3\x51\xea\x35\x03\x1b\x5e\xcd\xd2\x52\xd4\xc3\xa5\ \xd4\x5d\xba\xc9\xd6\x8f\x86\x77\xf4\x3c\x18\xf5\xa8\x6d\xfc\xcc\ \x5f\xf0\xc2\x1a\xcb\xde\xe2\x36\x95\x70\x46\xda\x83\x78\xf5\x19\ \x9b\x56\x9e\xf1\xbc\x0c\xc9\x76\xd9\xf3\x1f\x52\xf5\x5a\x6d\x73\ \xa7\x27\x77\x63\xcc\xc5\xa9\xb9\x4d\x3a\x83\xeb\x26\x56\xb6\x6f\ \x62\x3b\x46\xf8\xa9\x57\x15\x70\xdd\x1c\x43\x0e\x95\xa8\x46\x42\ \x41\xfa\x49\x77\x7e\x16\xbc\xe9\x30\x62\x9b\x1f\x24\x65\x4f\x79\ \x16\xa1\x81\x7d\xae\x3d\x8f\x69\xa9\x45\x26\xe5\x4f\x69\x95\x1c\ \x13\x76\xe4\xf5\x10\x2a\xde\xf8\xfd\x22\xc9\x6e\xb3\x4c\xe8\xcd\ \xd4\xdc\xe4\x7a\x46\x51\x7b\x82\x3a\x34\x9f\x71\x5c\x03\xef\x19\ \x41\x81\x18\x36\x37\xe2\x4a\x3c\x0f\xde\xc7\xd0\x1f\x7c\xc7\x9c\ \x73\x10\xe8\x56\xb5\xb3\x83\x2a\xa6\x36\xb1\xf5\x02\x14\xc3\xfe\ \x13\xe5\xf8\xbd\x12\x4d\xae\xa4\x67\xd8\xc5\xfc\x61\x7f\xf9\x1a\ \xc4\x62\xc6\x1f\xc3\x3c\xdf\x13\xd3\x77\xcf\xf5\x83\xf1\x73\x7f\ \x88\x56\xcf\x58\x7f\xe8\xfc\x46\x82\xc6\xd1\xfa\x4f\x35\x50\x3b\ \x82\x3f\x69\x39\x61\x8b\x73\x19\xa2\x6f\xf3\x48\x2f\xcb\x46\x81\ \x54\x07\x62\xfa\x08\x5b\xf6\xa2\x01\xf9\x60\xd5\x36\x19\xee\x66\ \x54\x60\x18\x03\xd0\x5a\x49\x4d\x37\x2a\x73\x29\x0d\xe5\x5b\x48\ \x68\xb0\x6b\x2f\x53\x29\x0f\x76\x6b\x1c\x74\x99\xb0\xc5\x08\xff\ \x00\x48\xf4\xd4\x54\xa6\xc0\xab\x11\xf5\x91\x03\x63\x37\x71\xb4\ \xc9\xd7\x5d\x3e\x23\x8b\x3a\x83\x3d\xe3\xe9\xaa\x1b\x35\x30\x3d\ \x44\xe4\x0a\x96\x1c\xe6\x6a\xb9\xb1\x20\xc3\xf2\x7f\x4e\xa3\xae\ \x91\x8f\x94\x9f\x4c\xc0\x03\x4e\x9c\x82\x7d\xe7\x34\x55\x37\xb0\ \x30\x8b\xdb\xcc\x72\x7a\x09\x62\xd5\x7a\x8a\xe8\x8b\x65\xc1\x3d\ \xa4\x2d\x56\xe6\xc3\x00\x98\x35\x09\xe7\x33\x29\x0b\xb6\x4c\xd4\ \x83\x47\x54\x13\x54\xf6\x83\x9b\xe2\x51\x58\x02\xe3\xd8\x41\x14\ \xee\x2f\x0d\x45\xa8\xb6\x67\x98\x10\x6e\xb9\x11\x81\x00\x19\x82\ \x4e\xd0\x6d\x24\x89\x95\x4b\xb5\xcd\x8c\x02\xac\x8d\x71\xc4\x7e\ \xa1\x30\x59\x6d\x6f\x48\x84\x72\x39\xc8\x9d\x23\x2d\x23\xcf\x8c\ \xa9\x9a\x5c\x0c\x42\x01\x5d\x6c\xa6\xd1\x4e\x8c\xa7\x32\x43\xde\ \x0f\x04\xfe\x93\xc7\x70\x1f\x34\x41\xc1\x86\x1b\x77\x26\x48\x7e\ \x6e\x41\x1f\xac\x68\xf3\x2d\xef\x9e\xb6\x89\x06\xc7\x10\xf7\x11\ \xf4\xe6\x55\x3c\x6a\x6d\x1c\xde\x36\x85\x4b\xb0\x36\xe6\x4a\xe2\ \xc6\xe3\x88\xea\x2c\x2c\x0d\xb8\x85\x89\x7e\xd3\xb2\xc3\xbc\x5d\ \x76\xb3\x2a\xa9\xf7\x94\xe9\xc0\x34\xf7\x74\x61\x10\x02\xee\x24\ \xe5\x9b\x3e\xd3\x0d\x0f\x4e\x2d\xa7\xa9\x50\xf2\x70\x26\x52\xac\ \xc3\xca\xc3\x7a\xf6\x31\x8c\x00\xa6\x88\x7a\x8b\x98\xad\x9c\xda\ \x48\xdd\x94\xaa\xb5\xe9\xb1\xa6\xe7\xa3\x71\xfa\xc5\xea\x28\xd4\ \x45\x65\x70\x7d\xcf\x11\x6d\xe4\x52\x3a\xc6\x69\xeb\xd5\xa2\x0a\ \x92\x1c\x11\xf2\xb6\x44\x92\x0a\xa9\xe7\x6b\xda\x03\x50\x6a\x96\ \x41\x8b\x9e\x4f\x49\x75\x6f\x05\x49\xf2\x96\x24\xe2\xf1\x6c\x5a\ \xc4\x0b\x64\x5a\x6a\x51\x82\x51\x4d\x34\x55\x16\x98\xb3\x26\x0b\ \x75\x69\x2e\xa5\x82\xe8\x55\x49\xf3\x3b\xff\x00\x10\xf4\xe5\x9d\ \xea\xad\xbe\x65\xbf\xed\x11\xf1\x03\x6a\x34\x03\x8b\xfc\xdc\x7b\ \xc6\x4e\xd5\x03\x32\x53\x45\x42\x30\xd9\x36\x9e\xd8\x00\xb9\x52\ \x6f\xd4\x75\x8a\xd4\x79\x19\x73\xca\xfe\x92\x9d\x35\x4d\xc9\xe1\ \xa9\x04\xa8\xb8\xf5\x13\x4c\xb9\xf5\xae\x8e\x54\xa9\xda\x7f\x68\ \x04\xdd\x76\x93\xc7\x13\xa7\xa9\x44\xaa\xa0\x81\x9b\x66\x73\xc8\ \x09\x50\xee\x20\xdb\xd2\x32\xaa\x9c\x95\x38\x30\xd0\xab\xd3\xda\ \x45\xca\xe4\x7b\x42\xa8\x29\x1c\x81\x83\x3d\x45\xa9\xab\x82\x14\ \xf3\xde\x40\xb6\x50\x6c\x56\x3a\x92\x92\x06\x2d\x68\xd7\x44\x22\ \xea\xa7\x69\xe2\x32\x82\x8d\xbc\x1e\x64\x4e\xa0\xdb\xa9\x95\x6f\ \x35\xbf\x51\x3a\x5a\x6d\x39\x6a\x1b\x87\x98\x0c\x4e\x7d\x02\x05\ \x5b\x70\x27\x5b\xe1\xce\xa9\x50\xa8\x38\x22\x73\xe4\xd4\x26\xe5\ \x0e\xc2\x2e\x07\x20\xcf\x05\x57\x25\xa9\x90\x0f\x55\x26\x3f\x5d\ \x4d\x0d\x42\xe8\x7c\xa7\xf9\x91\xd8\xee\xe0\x4c\xc2\x6b\x3b\xd3\ \xb1\x37\xf6\x30\x2b\x20\xa8\xbb\xd0\xd9\xba\x89\x4d\x16\x43\x65\ \xaa\x37\x21\xfd\x44\x5d\x6a\x1e\x1b\x17\xa5\xe6\x4f\x5e\x44\xa5\ \x48\x19\x58\x9b\x93\x63\xd8\xcf\x17\x20\x0e\xfd\x44\x66\xa2\xc4\ \x64\x0f\x43\xda\x4e\x41\x18\x63\xec\x44\xe9\x3b\x65\x76\x86\xa8\ \x36\xa5\x57\x2a\x4f\x94\xf6\x88\xf8\xa5\x26\xa3\x57\x63\x7e\xb1\ \x34\xdb\x61\x9d\x0d\x70\x3a\x8f\x86\xd3\xad\xf8\xd3\xe6\xf6\x99\ \xf2\x9f\x63\x8e\xd9\x5b\xf5\x13\x47\x38\xe4\xcf\x6e\x1b\xb0\x2e\ \x4e\x26\x02\x17\x9c\x99\xb6\x4b\x65\xb9\xcf\xed\x09\x05\x86\x26\ \xef\x01\xee\x56\xfe\x91\x88\xa0\xdb\xa4\x90\xda\xce\x48\x27\x22\ \xd6\x31\xac\x0a\x05\xbf\x27\x10\x2b\x53\x51\x50\xec\xa8\x0f\xa4\ \x76\xa0\x1b\x53\x06\xd7\x51\x7f\x78\x13\xfe\x0a\x9b\xbe\x25\x44\ \x9e\x56\x9b\x37\xfc\xfd\x64\x7f\x11\xab\xe2\x6b\x2b\x30\xfc\xe6\ \xd3\xa5\xf0\x40\x29\xf8\xf5\xd8\x8f\xbb\xa4\x17\x3d\x0f\x33\x87\ \x55\xc9\xa8\x4f\x7c\xc2\x77\x4d\xf1\xe6\x6b\x7a\x74\x9b\xa5\x3f\ \xe6\xa9\xff\x00\xe4\x22\x58\xdc\xf3\x1b\xa2\x3f\xe6\x94\x9e\x86\ \xf3\x4c\x8f\x50\xcc\x5f\xeb\x88\x35\x0d\xdc\xdf\x1d\x27\x94\xde\ \xaa\x83\xee\x60\x3b\x1d\xe4\xde\x48\xfa\x06\xd5\x37\x76\x17\x8f\ \xa5\x52\xc4\x5e\xd9\xe6\x44\xaf\xb5\x01\xbf\xcc\x63\xe9\x1b\xda\ \xfd\x25\x8a\x2d\xa4\xdd\x0c\x36\x26\x4a\x58\x8c\xaf\x10\xe9\xd4\ \xb8\xb1\x98\xc6\xb4\x57\x37\x84\x5f\x6a\x00\x20\x37\xfb\x72\x66\ \x54\xb8\xf9\x72\x65\x88\x45\x82\xf9\xba\xcf\x6f\x36\xf5\x83\x4d\ \x0d\xbc\xc6\x10\x51\x7f\x41\x2e\x93\x09\x36\x19\x8c\xa5\x72\xc2\ \xc3\x98\xa2\x73\xc4\x6e\x9c\x93\x50\x2f\x4b\xca\xa8\xad\x88\xdf\ \xec\x21\x1e\x2d\x11\x7b\xd4\x27\xa1\x31\xbb\xac\xb9\x19\x99\x69\ \x8e\x39\x88\x7f\x58\xf2\xd8\x8a\x71\x71\x70\x38\xe6\x41\x33\x9d\ \xa0\xa9\xc8\x26\x4f\x51\x76\x9c\x64\x19\x46\xab\xe5\x07\x19\x93\ \xd3\x7c\xed\x61\xe5\x9b\x8c\xb1\x49\x07\xb4\x67\x88\x0a\xed\x6e\ \x3b\xcc\x74\x00\x5c\x18\xbe\x9d\xe2\x9b\x56\x99\xb5\xc1\xb8\xef\ \x12\x2e\x0c\xa6\x9b\x6d\x1c\x62\x6b\xd3\x52\x37\xa7\x12\x58\x4a\ \x5f\x93\x0d\x49\xef\x68\x04\xc2\x19\xfa\xc5\x0d\x2d\x7c\x9f\x2f\ \x58\x7b\x43\x10\x17\x83\x16\xc0\x91\xb5\x38\xea\x65\x1a\x04\xfb\ \xe1\x9b\xe7\xe9\x0a\x97\xd5\x3e\x16\x85\x14\x7c\xc7\x31\x34\x54\ \x3b\x80\x6e\x49\xc9\x3e\x90\xeb\x95\xa9\x5f\xcb\x90\x05\xa3\x34\ \xd4\xc2\xd3\xa8\xc4\x67\x81\x39\xb4\x07\x6d\xcf\x93\x6c\xc6\x30\ \x01\x01\x19\xef\x15\xb4\xef\xb9\x8d\x4c\xa9\x0d\xc7\x32\x24\x38\ \xce\xee\xbd\x20\xa1\x1e\x28\x1d\x4c\x3a\x9d\xcc\x50\x5b\xb8\x20\ \xfd\x64\x1e\x71\x7a\x6a\xcd\xd0\x49\x5b\x50\xf4\xee\x53\x6f\x97\ \xb8\x8f\x15\x11\xa8\xb2\xb1\x21\xc9\xc4\xe7\xd4\x2a\x29\x9d\xd7\ \x02\xf6\x9b\x90\x53\x13\x54\x4e\xa4\xd5\x73\x6d\xc6\xc4\xaf\x63\ \x1d\xf1\x1a\x25\xce\x9c\x2b\x06\x52\x0d\xfb\x8c\xc8\x54\x0b\x9d\ \xa4\x30\x33\xa6\xcd\x7f\x86\xad\x75\x61\xbe\x9a\xec\xfd\x65\x7a\ \x11\xc6\xad\xbd\x86\xf3\xf9\xac\x4c\xa3\xe1\xc9\xe6\x0d\x7b\x74\ \x26\x53\x4c\x52\x7a\x55\x12\xb1\xda\xd7\x04\x10\x31\x3d\xa7\xa0\ \xb4\xaa\x60\xb3\x23\xe2\xe3\x88\xea\xc1\xb2\x23\x29\xb9\xb7\x4b\ \xc9\xab\x69\xb7\x53\xb9\xb1\xec\x65\x45\xe8\x86\x24\xa3\x15\x3f\ \x30\x26\x08\x75\x46\x3b\x10\x11\xd4\x5f\xf7\x84\x4e\x69\xa5\xb6\ \xf8\xdc\x3a\xcc\x34\xed\x66\x5e\x27\x63\x6d\x3a\x99\x34\x02\xfa\ \x82\x67\x97\x4e\x9c\xb5\x25\x1e\xa1\xb1\x1f\xd2\xc7\x32\x8f\xe5\ \x63\x8e\xfd\xa5\xba\x7a\x40\x6e\x0c\x7d\x63\xce\x9f\x4e\x3f\x0b\ \x0f\x63\x19\xa6\xa5\xa6\xde\x14\xd6\x65\x1d\x09\x58\x5e\x4a\x44\ \xbe\x1e\xdb\xda\xfc\xdb\x12\x8d\x09\x61\xa8\x50\x4e\x65\x1a\x9d\ \x18\x5b\x6c\xaa\x8c\x0f\x68\xaa\x68\xd4\xab\x23\x3e\xe1\x63\xcd\ \xa1\xbb\x0e\x1e\xca\x03\x6d\x04\x90\x7a\x49\x6a\x07\xa7\x50\xa9\ \xbf\xa5\xe5\xfb\x55\xdc\xa7\x52\x70\x60\xd6\x45\x2a\x15\x80\x2c\ \x26\x75\xac\x46\x1c\x85\xb1\x8f\x15\x08\x01\x87\x07\x98\xad\xac\ \x0e\x14\x11\x09\xce\xd4\x18\xbd\xc5\xa4\x1e\xae\x8b\x51\x70\x3c\ \xdf\xcc\xe7\x80\x03\x14\x75\xb0\x3c\x13\xd2\x51\x4e\xb9\x00\xdc\ \x58\x21\xcf\xb4\x0a\xca\x2b\x2e\xe0\x45\xf9\x13\x53\xa1\x53\xb2\ \xd9\xb6\xb7\x22\x74\x34\x6f\xba\x89\xa6\xdc\x38\x22\x42\x06\xfa\ \x44\x1c\x3d\x3f\xdc\x4a\x74\x27\xef\x69\x0c\x08\xdf\x14\x73\x2c\ \x77\x32\x9e\x86\x15\x41\x66\xf7\x8c\xaa\xa3\xed\x55\x40\xfc\xc6\ \x2a\xaf\x97\x6e\x41\x24\x4d\x32\x00\x7c\xdd\xfb\xc6\xa9\xb5\x4b\ \x2e\x73\x05\x53\x6a\xf9\x86\x4c\xd0\xde\x18\x62\xbf\x37\x17\xed\ \x24\x7a\x94\x0a\xd5\x5c\x6e\x37\xb0\x1d\x2f\x1c\xf5\x99\xc8\x05\ \x17\x8b\x48\xa8\xb5\xd2\xc4\x71\x91\x28\xa2\x8c\xd4\x83\x1c\x67\ \x1f\xf3\xde\x16\x17\x52\xcb\x4f\xe0\x95\x9c\x59\x4d\x67\xb0\x3d\ \xfa\x7f\x43\x38\x15\x01\x46\xb1\x13\xb3\xf1\xb6\x14\x34\xba\x6d\ \x2b\x65\x91\x43\x30\xff\x00\x9f\x59\xca\x4a\xc0\x9d\x98\x00\xf0\ \x61\xc7\xcd\x5c\x88\xd8\xe1\x6e\x54\x80\x78\x27\xac\x3d\x28\xb3\ \xbb\x16\x02\xc8\x7f\x7c\x41\xac\xae\x18\x96\x72\x7b\x4c\xa1\xe5\ \xd3\xd5\x6b\xf3\x65\xfe\xbf\xd2\x6c\x09\x1c\x0d\xc6\xf7\xb0\x82\ \x1c\x33\x6d\xb6\x62\xd3\x09\xd8\x93\x30\x5c\x02\xd8\xed\x20\x7b\ \x35\xdf\x00\x58\x60\x46\xd1\x63\x7b\x5a\xd2\x64\x1c\x9e\xb2\x8a\ \x42\xe4\x9e\xd0\xa5\x4e\xfb\x01\x62\x26\x5c\xdf\x24\x01\x04\xb0\ \xb5\xb8\x33\xd9\x27\xb9\xeb\x22\x6a\xd4\x24\xd8\x03\x68\x43\x3e\ \xb1\x74\xb0\xf0\x95\xc0\x3b\x6d\x04\x75\x3f\x6e\x21\xe0\xac\x1a\ \x79\x1e\x90\x99\x71\xc4\xc5\x20\x70\x2f\x88\x74\x30\xcc\xfd\x00\ \x98\x45\xf0\x63\x2a\x2e\xca\x2a\x9d\x4f\x98\xff\x00\x49\x16\x29\ \xeb\x0c\xde\xf6\xbc\x4a\xde\xd9\x86\xae\x2d\x7e\xd2\x43\xff\x00\ \x68\xe4\xcc\x73\xb4\xda\xf3\xc0\xe0\xb1\xe7\xa4\x4b\x9b\x98\x20\ \xea\x19\x40\xe0\x1b\x48\xc9\xbf\x06\x3a\xb6\xe6\x04\x60\x09\x33\ \x6d\x07\x07\x89\xd2\x33\x4c\x47\xb5\x95\xb8\x9a\xcb\x61\x70\x6e\ \x22\x77\x8b\xf2\x4f\xd2\x36\x8b\x0b\x90\x6e\x41\x19\x8a\x79\x4f\ \xb4\x6d\x36\xda\xd6\xe4\x18\x25\x69\xa8\xb8\x24\x8e\xc2\x1d\x37\ \x53\x85\x5b\x18\x27\xaa\x50\x60\x6e\x05\x81\x9e\x0a\x94\xc5\x89\ \x2c\xc7\xa7\x69\x45\x36\x01\x4a\x9b\x1b\xf5\xed\x12\xf4\xce\xfe\ \x4d\xe1\x29\x2d\x83\xbb\x75\x03\xd6\x59\xa4\x5f\x0d\x41\xea\x60\ \xe9\xa9\x06\x6b\x76\x8f\x23\xcc\xc4\x70\xa2\xd0\xb5\x48\x55\x37\ \x21\x99\x87\x53\x3a\x2a\x3e\xe5\x08\xeb\x92\x27\x34\xfc\xe1\x40\ \xc5\xe5\xe1\xf6\xb6\xdf\xa0\x99\xa6\x34\x26\xdb\xdb\x9e\xfe\x91\ \x65\xc0\x60\x7a\x74\x94\x90\x1d\x42\x9c\x11\xfb\xc9\x2b\x53\x6a\ \x66\xed\xc4\x21\x65\x51\x92\x22\x4f\x94\x11\xd4\xca\x74\xca\x2b\ \x82\x49\xb2\xd3\x17\x63\xe9\x23\xa9\x53\x6b\xee\xb6\x4f\x17\x8c\ \x15\x15\x73\x60\x08\xe6\xf1\x3a\xa0\xdb\x43\x0e\xf9\x12\xbd\x4a\ \xa6\xfc\xb0\x2a\x3b\x41\x44\x2c\x06\xdb\xb2\x8f\x98\x5b\x89\xd2\ \x56\x51\xd3\x5f\xcd\x89\xd7\xa2\xad\x4b\x4c\x34\xf6\x0d\xb9\x77\ \x1b\xf7\xe9\xfb\x41\xa3\xa0\x43\x6d\x43\x2b\x0a\x4a\x2e\x7a\xdf\ \xd2\x20\x35\x43\x5c\xd6\x46\xda\xc0\xe0\x18\x5b\xaa\x4c\x39\x68\ \x53\x73\x75\xba\xb1\x5b\x15\xe6\x2e\x99\x6a\x07\x28\x59\x09\xc8\ \x27\x17\x95\x6a\x16\xa0\xad\x4e\xa2\x20\x00\xa8\x37\x1d\x0f\x69\ \x42\x53\x35\x46\xeb\x85\x2d\xf3\x2d\xb0\x66\x75\xac\x24\x2a\x54\ \x5d\xd4\xa9\xaf\x9b\x90\x44\x59\xa1\x5b\x05\x49\xa6\xcb\xd0\x8e\ \x44\xb4\x50\x4a\x0c\x37\xdd\x01\xcd\xc6\x63\x98\x21\xb3\x00\xa4\ \x75\x37\x86\x9c\x41\x4a\x8d\x52\x33\x7b\x7b\xc3\x1a\x7d\xb9\x2e\ \x57\xbe\x65\x22\x91\x61\x74\x2f\xed\xd3\xde\xf0\x7c\x31\x4c\xdd\ \xb6\xfb\x93\x7f\xe2\x1a\xb0\xb4\x55\x19\x15\x01\xf4\x3d\x63\x17\ \x4a\xb5\x32\xa0\x03\xd8\x89\x85\x69\x33\x0b\xd6\x0b\x6e\x02\xad\ \xa5\x00\xd2\xb6\xd6\x35\x18\x74\x22\xc2\x5a\x85\xf6\x40\xfa\x72\ \xaf\x4e\xc4\x75\xf5\x90\x78\x55\x28\x12\x54\x3a\x8f\x5c\x89\xd7\ \xd3\xfd\xda\x91\x4f\x7d\x65\xb5\xfe\x6c\xfe\x90\x1a\xba\x35\xc8\ \xb2\xb7\x66\x13\x32\xd3\x89\xa8\xd9\xb6\xbb\x2e\x79\xb8\x3d\xb9\ \x8d\x7a\x54\xea\xa9\x64\x62\x4f\x63\x3c\x7c\xe8\x5b\xc3\x50\x57\ \x37\x43\xfd\x26\x53\x02\xf7\x00\x91\xce\x39\x92\x41\xaa\x46\x42\ \x1a\xfd\x6c\x60\xd6\x0b\xe0\x52\x36\xb1\x37\xb9\x9d\x1d\x5a\x0a\ \xaa\xd4\xc8\xf3\x72\xa4\x75\x9c\xcd\x52\x95\x4a\x54\xd8\x81\xcc\ \xd4\xba\x2a\x7b\x7d\xeb\xad\xee\x19\x4c\x52\xb2\xa9\xd9\x6c\x9e\ \xb1\x94\x94\x8d\x52\x1f\xf7\x5a\x22\xa5\xd5\xc9\x71\x70\x0d\xa7\ \x48\xc8\xec\x4d\x50\xea\x7c\xc3\x0c\x3b\x88\xf4\xa3\xb3\xe2\x14\ \xd4\x0b\xad\xc1\x11\x28\x8a\xd5\x3c\x45\x6b\xed\xc9\x12\xdd\x10\ \x35\x2a\xa3\x7e\x56\xbf\xd2\x16\xa8\xe5\x6a\x2c\x35\x75\x3b\x6e\ \x31\x2e\x55\x6a\x79\xb8\x1d\xa1\xd7\xa8\x4d\x67\x23\xab\x1b\x44\ \xef\x6b\x4d\xc6\x4d\xad\x54\x3d\xca\xd3\xda\x7b\x93\x16\x36\x85\ \xb3\x1b\x93\x9c\x41\x50\x5b\x04\xe4\xcd\x16\x2c\x6d\xc4\x90\xcb\ \x6d\x50\x15\x6d\x79\xd9\xf8\x2d\x0d\xe5\x0b\x8c\x27\x9c\x93\xff\ \x00\x3d\xbf\x49\xc3\xa7\x7a\x95\x54\x0e\xa6\x7d\x21\xff\x00\x2b\ \xf0\x3a\xd5\x2f\xb1\xab\x59\x54\xf6\x1f\xf2\xf3\x1c\xff\x00\x8d\ \x71\x70\xbe\x29\xaa\xfb\x4e\xbe\xad\x4e\x84\xd9\x7d\x84\x87\x75\ \x8c\x67\x86\x77\x5c\x10\x73\xcc\x4b\x02\x1c\x83\x8c\xce\x93\xa6\ \x54\x8f\xbc\xa6\x47\x24\x40\xaa\x36\x69\x50\x5b\xe6\x62\xdf\x4e\ \x3f\xbc\x5a\x3b\x2b\x0d\x87\x27\x12\x8d\x5d\xbe\xd0\x29\xde\xfe\ \x18\x00\xdb\xd3\x99\x24\xaf\x86\x0b\xd8\x4f\x54\x20\x59\x07\x4c\ \x9f\x78\x60\x86\x6d\xc7\x27\xbc\x5b\x03\x92\x41\x90\x30\x11\x61\ \x1a\xac\x64\xe4\xd8\x88\xea\x44\x11\x91\xcc\x91\xe9\x72\x45\xf8\ \x9a\x1e\xc4\x88\x3b\xae\x2d\x60\x23\x02\x12\x2f\x61\x02\x2a\x27\ \xcd\x1c\xa9\x72\x18\x7e\xd3\x28\x2d\x8e\x6d\x1d\x40\xe4\x8f\xd0\ \xcc\xda\x47\x4e\xe0\x0c\x46\xba\x8b\x5e\x24\xb0\x07\x98\x74\x37\ \x3b\x63\x8e\xa4\xcc\xd6\x8e\xa1\x4d\x6f\xbc\xfc\xab\x93\x15\x55\ \xb7\x54\x2c\x7a\xc6\xd5\xa8\x19\x42\x53\x1e\x41\xfb\xc4\xec\xb9\ \xc9\x1f\xac\x10\x18\x80\x6d\x35\x32\x71\xc4\xc7\x52\xa2\xdc\x98\ \x35\x5b\x62\x58\x9c\x98\x83\x19\x85\xf1\x90\x22\x5e\xa6\xd1\x73\ \x00\xb1\x02\xf9\x20\xc5\x56\x6d\xd6\xb0\x9a\x91\x68\x2a\xb8\x20\ \xf7\x93\x66\xe2\xf7\x87\xe6\x20\x9b\x71\x16\xd7\xb5\xa6\xa3\x22\ \x0c\x06\x2f\x0d\x58\x58\xd8\xe6\x4f\x62\x0c\x65\x21\x7f\x31\xb8\ \x11\x06\x52\x2d\xbb\xd3\xac\xa9\x0a\xb0\xfb\xb3\x6b\x73\xde\x4b\ \xb8\x9f\x28\x18\x8d\xa6\x6d\x60\x2e\x3d\x60\x62\x92\xc4\x30\x16\ \xe9\x1e\x14\x54\x5b\xdf\xcc\x20\x00\x2a\x05\xe8\xd6\x8c\xa6\xa5\ \x58\x1e\xa2\x62\xd6\x8e\xd2\x80\x88\xcc\x79\xe9\x36\xa7\x96\x88\ \xb7\xe2\x39\x87\xaa\x40\x94\x95\x97\x86\xe9\x03\x50\xc9\xe4\x52\ \xc7\x8b\xda\x64\x87\x4d\x4d\x4d\x60\x4f\x9a\xd9\x9a\xed\x66\xee\ \x49\xcf\xa4\x2a\x0e\xaa\xaf\x61\x63\x6e\x62\xaa\x1c\xf1\xc4\x92\ \xa4\xab\x74\xb5\xec\xc2\x13\xb8\xa9\x4e\xed\xf5\x9c\xdf\x18\x29\ \xbd\xe5\x34\x6a\x07\x61\xb4\x5e\xf8\xb4\xb1\x6a\xaa\x4b\xe0\x68\ \x5d\xb9\xf1\x18\x0f\xa4\xe7\x6a\x52\xef\x83\xed\x3a\x3a\xea\x82\ \x96\xd5\x02\xe8\x8b\x63\xef\xd6\x46\x5b\x4b\x56\x9e\x2a\x04\x6e\ \xc6\x53\xfa\xab\x88\xd5\x2c\x00\x37\xcf\x51\x28\xd3\x6a\x5e\x89\ \x25\x08\x31\x55\x74\x8e\x41\xa9\x47\xcc\xa3\xa0\x39\x12\x7f\x32\ \x1b\xd8\xce\xbd\x56\x1d\x5f\xb4\xbe\xa0\x5f\x7e\x46\x40\xbc\x7d\ \x05\x56\x60\x2a\x22\x93\xdc\xe2\x71\xe8\xb6\x77\x0c\x58\xcb\xd7\ \x59\x54\xa5\xb0\xc3\xa8\x99\xb3\xf8\x65\x74\xbc\x7a\x26\xa1\x1e\ \x15\x46\x42\x73\x63\xc4\x60\xac\x94\xee\x78\x52\x3d\xc9\x9c\x90\ \xf4\xd8\x82\x55\x90\xf7\x8f\xa5\x5a\xba\x8f\x22\xf8\x8a\x7b\xe7\ \xf6\x99\xfc\xb5\xae\x82\x6a\xd1\x41\x08\x3c\x44\xec\xfc\xcd\xdf\ \x4d\xf2\x87\x63\x76\x53\x23\xa5\x5d\xc1\x0c\x11\x14\xf6\x38\x8e\ \x4d\x69\xbe\xd2\x89\xff\x00\xfc\xe2\x67\x0e\x8d\x51\xc3\x5c\x54\ \x27\xde\xf1\xc1\xec\x3c\xce\x97\xbf\x68\x03\x56\x84\x64\x20\x27\ \xa0\x9e\x0d\x4c\xfe\x1b\xfb\x2d\xe4\x82\xd5\x28\xee\x24\xd3\xcf\ \x75\xc4\x16\xac\x08\xf2\x38\x1e\x96\xcc\x7d\x3a\x0b\x53\x3e\x1d\ \x40\x3d\xa7\x9b\xe1\xe8\xc7\x15\xd1\x4d\xb8\x7e\x65\xb1\x65\x4d\ \xe2\x55\x0d\xb9\x5d\x87\x62\x23\x3e\xd0\xee\x6d\x58\xef\xbf\xe2\ \xe0\xfe\xb0\x46\x92\xb0\x62\x10\x5e\xdd\x8c\x5d\x4d\xc8\xdb\x6a\ \x21\x06\xd7\xb5\xac\x65\xd2\x53\x4b\x50\xb4\xaa\xad\x9d\x88\x3d\ \x0c\x6f\x8c\xea\xc5\x6c\x01\x52\x41\x90\xb8\x42\x40\xdd\x9b\x75\ \x95\x54\xff\x00\x52\x9b\x5f\x15\x17\x6d\xfd\x44\xac\x46\x78\x9e\ \x2d\x20\xe7\xeb\x26\xd6\xd2\x25\x52\xe2\xe5\x7a\xf7\x8f\xf8\x79\ \x1b\xab\xd1\xa8\x40\xb8\xeb\xd0\xc5\xea\x59\x86\xd5\x38\x84\xf5\ \x20\x50\xcb\x5d\x0e\x2d\xb8\x5e\x2e\xba\x5e\xa3\x82\x06\x09\x8e\ \x6f\x2e\xa5\x58\x7c\xa5\x86\x3b\x44\x6a\xdc\xd3\xd5\xd4\x16\xfc\ \x47\xf9\x9d\x23\x20\x16\xa7\x4c\x03\xc9\xc1\x9d\x1f\x83\x0f\x0e\ \xa3\x17\xca\x2a\x13\x39\x4d\xe6\x18\xbd\xef\x3a\x9a\x5f\x27\xc3\ \x75\x0e\x0e\x42\x84\x17\xf5\x97\x2f\x14\x73\xbe\x29\x41\x68\xea\ \x88\x03\xc8\xc3\x72\x91\xd4\x48\x0a\x5f\xe5\x6f\xd6\x76\x95\x46\ \xb3\x42\x69\x37\xfa\xd4\xb2\xb6\xea\x3b\x4e\x4f\x86\xc4\x95\x18\ \xb7\x79\xae\x34\x58\x59\x53\x4e\x9d\xdb\x93\xc4\x10\x40\x4b\x11\ \x93\x18\x77\x6e\x1d\x84\x16\xda\xcd\x6e\x0c\xd0\x55\xf0\x7a\x5e\ \x2e\xa4\x63\xa8\x00\x8e\xe6\x74\x3e\x3d\x58\x16\x5d\x35\x3f\x92\ \x90\xb1\xf7\x31\xbf\x06\xd3\xfd\x8f\x42\xfa\xd7\x17\x0a\xa5\x97\ \xdc\xff\x00\xeb\xf9\x9c\x77\xac\xd5\x05\x4a\x87\x24\xb5\xcc\xe7\ \xef\x2d\x6b\xc8\x8d\x89\x0f\x6b\xe0\x4c\x77\xf3\x90\xc2\xf3\xd5\ \x0f\x58\x15\xbe\x7f\x79\xd1\x83\x74\x8a\x06\xa0\x55\x1c\x53\xf3\ \x5b\xf8\xfd\xe2\x89\x62\x19\xcf\x2c\x61\x61\x68\xfa\xb1\x85\x6b\ \x7c\xc2\xe1\x45\xcf\xbc\x88\x0e\x2c\xa3\xdc\xcd\xdd\x61\xb4\xe4\ \x40\x0a\x77\xdc\x1e\xb9\xef\x08\xa7\xd2\xd2\x0d\xd8\x08\xb8\x87\ \x4d\x18\x37\x04\x08\x29\xfc\x4a\xa8\x01\x9b\xe3\xb4\xa9\x7a\x90\ \xbb\x4a\x69\x8f\x29\x98\xaa\x81\x80\x22\xc7\xd2\x50\xb4\xba\x8c\ \xcc\xda\x64\x62\xae\x31\x83\x07\x20\xc7\x81\x91\x79\xe1\x46\xc3\ \xc4\xac\x4a\xa1\xe0\x75\x6f\x69\x9d\x38\x52\xa3\x3d\xc8\x20\x28\ \xf9\x98\xf0\x21\x0a\xb7\x1e\x15\x2c\x27\x7e\xa4\xcc\xa9\x53\x78\ \xda\x00\x54\x1c\x28\x8a\x40\x01\x20\x03\x8e\xb2\x4a\x69\xb0\x5c\ \x1e\x7d\x21\x92\x8a\x2e\x79\x93\xf8\x8b\xd3\x9e\xf3\x55\x81\x05\ \x9b\xe4\x1c\x98\x62\x1a\xb5\x8f\x88\x57\x00\xe2\xf2\x6a\x95\x17\ \x79\xdc\x09\xcf\x79\x95\xb5\x05\xbd\x07\x12\x7a\xad\xe5\xbd\xe6\ \xa4\x16\x9f\xe2\x2e\x76\x8e\x3b\xc4\xbd\x4d\xc2\xe2\xd1\x6b\xd7\ \xda\x60\x05\x81\x0a\x09\x9a\x1a\xc2\xc5\x6f\xeb\x12\xdb\x8d\xad\ \x7b\xc6\xed\x03\x2c\x6e\x7b\x08\x24\xee\x04\x2e\x3f\xac\x50\x48\ \xda\x3c\xc7\x3d\x84\xf0\x72\x46\x7a\x71\x0d\x10\x11\x9c\x4d\x14\ \xe4\x18\x85\x86\x6f\x1b\x4c\x92\x79\x98\x94\x58\x8d\xd6\xc4\x75\ \x2b\x53\xe9\x73\x0a\x4f\xa0\x1a\xd7\x26\xc2\x58\xb5\x05\x80\x22\ \xfe\xbd\x64\x1b\x89\x60\x4c\x72\x30\x23\x06\x66\xc6\xa3\xa2\x54\ \x96\xa7\xf8\xd1\xbf\x68\x9f\x88\xd2\xdb\xa8\x6b\x65\x7a\x11\x2a\ \xd1\x23\x3e\xd7\x53\x95\x93\xb5\x50\xd5\x1b\xc4\x5c\x13\x31\x3d\ \x68\x14\x7f\xd2\x3d\xe2\xaa\x3d\x81\x94\x14\x29\x4c\x95\xc8\x27\ \x91\x24\xaa\xa7\x71\xb8\xc4\x60\xa9\x98\x96\x37\x96\xfc\x33\x75\ \x30\xd5\x88\xc2\xe1\x7d\x4c\x5e\x97\x49\x56\xb1\x00\x79\x54\x72\ \x4f\x48\xcd\x76\xa2\x95\x35\x1a\x7d\x3e\x55\x7f\x17\x73\xde\x6a\ \xdd\xea\x09\xfd\x1d\x6a\xb6\xb8\x63\xb9\x4f\x33\x9f\xac\x05\x08\ \x29\x6d\xa7\x82\x3a\xcc\x4a\xac\x1b\xcd\x90\x79\x86\x72\xb7\x56\ \x0d\x4c\xf2\xa4\x4a\x4c\x54\x81\x54\xe1\xa9\x9d\x8d\xe9\x35\xea\ \xb5\x45\x17\x55\x2d\xd7\x1c\xc8\xce\xe0\xd1\xa1\xee\xd7\x18\x61\ \x35\x8c\xeb\x49\x4b\xd8\xa9\x43\xea\x2f\x09\x37\x5e\xea\x15\xbd\ \x8c\x6a\x56\x5a\x96\x15\xe9\x82\x47\xe2\x10\x8a\xa0\x37\x5a\x65\ \x87\x42\x0c\xb5\x3c\xae\xc1\x7e\x42\xbf\xf9\x42\x5a\xb7\x3e\x5b\ \x93\xd3\x66\x20\x8a\xef\x7b\x0a\x63\xff\x00\xb6\x61\x7d\xa1\xed\ \x6d\xa0\x7f\xe1\x88\x15\x14\xd7\x51\x53\xfd\x4a\x42\xdd\xd8\xda\ \x37\xc0\xa4\x16\xcd\xa8\x07\xb8\x02\xf2\x55\xb1\x01\x9a\xa3\x2b\ \x1f\xcd\x99\x84\x9d\x9e\x56\x53\xea\x4d\xa6\x70\xaa\x46\xd2\xd2\ \xfc\x0c\x7f\xf2\x38\x8d\xfb\x66\xd2\x05\x1d\x8a\x3f\xda\xb3\x9f\ \x71\xcb\x92\xd8\xe9\xc4\xd5\x37\x3e\x45\x22\xc3\xb4\xbf\x2b\x56\ \xd4\xd5\x6a\x1b\x9a\xcc\x07\x5b\xb5\xa1\x51\xa8\xb5\x1c\x0b\xb3\ \x37\xa0\x83\xa2\xf8\x7d\x5a\xc0\xd7\xae\x4d\x3a\x3d\x5a\xd9\x3e\ \xd1\x8f\x5d\xa9\x93\x4f\x49\x41\xa9\xa5\xb2\xe6\xfb\x8c\x2e\x7c\ \x2b\x53\x6d\x1f\x35\x67\x00\x76\xbf\x9b\xf4\x10\xb5\x1a\xbd\x3d\ \x65\x0b\xe1\xef\x03\x8d\xd3\x8e\x43\x8b\x96\x46\x76\x84\xa6\xab\ \x53\xb1\x16\xe4\x7b\x4c\xfe\x4e\xba\x95\x16\x88\x5d\xcb\xa7\xa6\ \x40\x19\x04\xe6\x68\x34\x75\x5a\x77\xa7\x4c\x1a\x4f\x4c\xee\x17\ \x33\x93\x77\x24\x29\x04\xf7\x9d\x9d\x0e\x96\x9d\x26\x55\xa8\xec\ \x6a\xba\x65\x40\xc0\x06\x16\x62\x9d\xa4\xa8\xe6\x9d\x40\x5d\x6c\ \xc4\x5b\xeb\xda\x1e\xac\x1a\x88\xac\x45\x8a\x83\xfc\x4a\x3e\x3b\ \x4a\xf4\xa9\x37\x2e\xbd\x3b\xf1\x14\xed\xe2\xfc\x27\x72\x9b\x54\ \xa4\xc0\x93\xd7\x22\x52\xfd\x2e\x7a\x59\xdc\x23\x77\x11\x1a\x95\ \xdf\x5e\xaa\x1f\x99\x5d\xad\xea\x2f\x1c\x87\x73\xa5\x65\xb0\xc8\ \xdc\x3b\x5e\x16\xac\x03\xa8\xa8\xe3\x0e\xac\x47\xef\x37\x3a\xac\ \xa1\x29\xd5\x4c\xe9\x12\x29\x7c\x25\x49\xe2\xa5\x5f\xd8\x09\xce\ \x41\x9b\xa1\xc9\x37\xb1\x97\xfc\x51\xd5\x34\x7a\x4a\x64\x64\xa9\ \x63\x6f\x53\x1b\xdd\x82\x25\x42\xd4\x35\x17\x42\x78\xba\x91\x29\ \xd5\x69\x69\xea\x68\x1d\x46\x96\xdb\xff\x00\xee\x27\x51\x25\xd3\ \xd4\x0e\xbe\x11\xf2\x91\xc3\x7f\x48\xaa\x3a\x8a\xba\x3d\x4e\xe5\ \xb8\x20\xda\xc7\xac\xb2\xa4\xcd\x74\x27\x71\xcf\x68\x5a\x4d\x39\ \xd4\x6a\x29\xd1\x51\x96\x39\xf6\x9d\x4d\x55\x0a\x5f\x12\xa2\x75\ \x3a\x4b\x0a\xc3\xe7\xa6\x39\xf7\x8c\xff\x00\x0a\xe9\xed\x5e\xae\ \xaa\xa0\xb7\x87\xe5\x17\xef\x2b\xcb\xa5\x9d\x9d\xf1\xfa\xdf\x64\ \xd1\x26\x89\x05\xb1\x76\x02\x7c\xfd\x83\x50\x26\xdd\x65\xbf\x16\ \xd4\x8d\x46\xa1\xea\x13\x82\x4d\xbd\xba\x48\xc9\x02\x81\x17\x37\ \x26\x3c\x66\x45\xca\xed\x48\xc2\xf7\x16\x99\x51\x49\x7e\x3a\x46\ \x1c\xc7\x84\xbb\xa3\x74\xb5\xcf\xd2\x6d\x94\xac\xa3\xc5\x5a\x63\ \xa6\x0c\xda\xc2\xed\xb6\xfc\x1b\x9f\x78\xdd\x2d\x3d\xfa\x8d\xc7\ \xdc\xc0\x2a\xcc\xf6\xb1\x26\xfc\x49\x12\xaa\x2e\x33\x98\x48\x77\ \x1e\x23\x42\x2a\xb5\xaa\x13\xea\x04\xcb\x81\xe5\x45\xb0\xef\x20\ \x25\xa7\xf9\x88\x00\x7e\xb1\xa9\x82\x02\xad\x87\x73\x14\x39\xb6\ \x48\x8e\x54\x2c\x6c\x0f\xb0\x81\x36\x90\x3b\xb0\x6f\x2f\xd3\x25\ \x4a\x8c\x15\x14\x98\xba\x1a\x5a\x74\xc0\x3a\x82\x41\xe7\x60\xf9\ \xbf\xf5\x28\xf1\x8b\x0d\x8a\x02\x20\xfc\x2b\xfd\x7b\xcc\x5a\xd4\ \x38\x0a\x34\x2e\x6e\x2a\xd4\xe9\xf9\x47\xf7\x92\xd7\x66\xa8\x4b\ \xb1\xbb\x77\x30\xb2\xc4\x28\x5c\x99\xbe\x15\x40\x2f\xb0\xfb\x9c\ \x09\x92\x99\x94\x05\xbb\x60\x7e\xe6\x21\xdb\x7f\x95\x54\xda\x51\ \x50\x28\x6b\xd5\xaa\xb7\xec\xb9\x89\x2f\x4d\x72\x94\xaf\xff\x00\ \x91\xfe\x82\x6e\x02\x59\x80\x16\x5b\xde\x54\xb4\xcd\x7d\x3a\x2d\ \x21\xe6\x5e\x41\x89\x7a\xb5\x00\xdc\x81\x55\x7d\x14\x45\x33\xbb\ \x1f\x33\x13\xee\x63\xe8\x35\xa8\x54\x1f\x3a\xaa\xdb\xa9\x31\x2d\ \x4a\x91\x27\x75\x6f\xa0\x52\x60\xad\x42\xbf\x2b\x1b\xcd\x1a\x9a\ \xa3\xf1\x5f\xdc\x4b\xb4\x35\x5a\x42\xe4\x0b\x80\x3f\x14\x10\xa5\ \x89\xbb\x00\x2d\xc0\x9e\x5a\xee\x41\x27\x69\xff\x00\xeb\x09\x2a\ \xb5\xc5\x95\x7f\x49\x20\x9a\x20\x8c\x11\x7b\x4f\x53\xd2\x35\xb2\ \x40\xf7\x9e\x7a\x8f\x9c\xfe\x91\x7b\x98\xf2\xc7\xf5\x88\x53\xf6\ \x74\x18\x7a\xaa\x4f\x4b\x41\xa8\x15\x0d\x82\x12\x7b\x98\x80\x18\ \xf5\x85\xb8\xde\xc4\xc0\xb1\x99\xcf\x37\xb4\x3a\x67\x37\x81\x76\ \x53\x63\x98\xda\x6e\x30\x0a\x83\xf4\x88\x12\xf9\x88\x18\x10\xd0\ \x30\x36\xe8\x63\x29\x53\x46\x00\x85\x6b\xc7\x2d\x13\x83\xb5\x87\ \x6b\x89\x9b\x5a\xc7\x43\xe0\xcc\x5b\xc5\x07\xa2\x99\xcc\xa8\xd9\ \x6b\xf7\x9d\x4f\x85\x52\x74\x4a\xef\x6f\xc1\x61\x39\xba\x8d\x3d\ \x6d\xe6\xcb\xd6\x62\x7a\xd5\xf1\xea\x35\x5e\x9a\x9d\xac\x67\x9f\ \x58\xc1\x2e\x51\x6f\xde\xd2\x77\x15\x51\x72\xa7\x98\x8a\xb5\x2e\ \xa2\xf3\x78\xce\x9b\x57\x5d\x54\xdd\x2f\x65\xf4\x93\x3d\x53\xe8\ \x60\x54\x6c\xde\x2f\x71\x26\x6a\x46\x74\xd0\xec\xdc\x09\xe5\xac\ \xca\x79\x87\x44\x2f\x86\xc1\x8d\x98\xf1\x13\x50\x10\xd6\x92\x7a\ \x9d\x46\xe0\x90\x7d\xe3\x91\x50\xfc\xd4\xca\x9e\xe2\x0d\x3a\x24\ \xad\xe5\x14\x9f\xc2\xc0\x20\x8f\x59\x55\x04\xb4\xe8\xb7\x0f\xe6\ \xfd\x0c\x2f\x0a\xa2\x35\xd0\x5e\xdd\x44\x2a\x75\x34\x8c\x3e\xf2\ \x91\x07\xfd\xa6\x55\x4e\xa7\xc3\xd1\x6f\x7a\xd7\xf4\x02\x66\xdb\ \x1a\x48\x37\xb1\x00\xd8\xde\x7a\x8d\x12\xd5\x2c\x15\xac\x0f\xeb\ \x2f\xff\x00\xaa\x68\xa9\xdc\x26\x8c\xd5\xed\xe2\x1b\x7f\x13\xda\ \x9f\x8b\x56\xa7\x4d\x3c\x0a\x74\xe8\x96\x17\xf2\xac\x36\xff\x00\ \x16\x42\x29\xfc\x2f\x5b\x5c\x97\xf0\xc8\x04\xda\xe7\x11\x9f\xf4\ \xca\x14\x81\xfb\x66\xb6\x8a\x11\xd0\x35\xcf\xed\x24\xab\x5f\x57\ \x5e\xe6\xa5\x6a\x87\xaf\x99\xb1\x27\x34\xd4\xb5\x8b\x16\x27\xb4\ \x72\xff\x00\x57\x4e\xa8\x6f\x83\x51\xda\x01\xa9\x54\xf5\x21\x6d\ \x2d\x3a\x8d\x26\x97\x4e\x2b\xb6\x97\x61\x23\xee\xe9\xb1\xb9\x3e\ \xb6\x9c\xda\x5a\x6a\x7a\x0a\x43\x53\xa8\x4d\xf5\x88\xbd\x2a\x47\ \xa7\xa9\x90\xd7\xad\x5a\xbb\xb5\x4a\xcf\x73\x7e\xf3\x3f\x9d\x3b\ \x8e\xe8\xf8\xf3\x94\xb1\xd3\xd2\x1d\x01\x6e\x82\x32\x97\xc5\x2a\ \xd4\xbf\x86\x34\xc6\xc2\xe6\xe2\x7c\xb9\xbe\xe0\x37\x2d\xa3\x03\ \x3a\x9f\x29\xfa\x89\x7f\xc7\x17\xea\xbe\xb2\x9e\xaa\xab\x26\xf7\ \xd3\x52\x70\x78\x21\xad\xfd\x26\x0d\x4e\x98\x3e\xda\xba\x54\x5e\ \xbe\x56\x92\x7c\x3f\x59\x46\xb6\x89\x52\xa8\xd9\x54\x62\xfc\x03\ \xeb\x0a\xb5\x1a\xea\xd7\xa4\xeb\x50\x0c\xdb\xad\xa7\x3c\xed\xad\ \x58\x4e\x88\x91\xfe\x58\x37\x62\x07\x1e\xf0\x75\x3f\x12\xda\xcf\ \x4e\x8d\x0d\xae\x2f\xe6\x23\xb4\x9e\x93\x32\xa7\x88\xab\x62\x30\ \x7a\x5a\x43\xf1\x5d\x6f\x88\x01\xa1\xe5\x16\xb3\xfa\xc6\x71\xda\ \xad\xc5\x95\xf5\x25\xc5\x3a\xee\x77\xad\x41\xb1\xbf\xda\xc3\x98\ \xcd\x00\x35\xde\xb5\x16\x5b\x78\xb4\x88\x1e\xe0\xe2\x73\xfe\x10\ \x4e\xa7\x4d\xa8\xd2\x90\x06\x43\x21\xff\x00\x74\xaf\xe1\x95\xd9\ \x6a\x52\xa9\xb4\x87\xa6\xe1\x58\x77\xbf\xff\x00\x91\xb3\x3a\x12\ \xb9\x65\x8d\x36\x5b\x1c\xf5\x1d\xf3\x28\xd7\x2e\xcd\x5b\xb8\x20\ \x82\x6f\x03\xe3\xc8\x28\xeb\x6b\x6d\x18\x5a\xac\x00\xfa\xc3\xd5\ \x55\x0e\x56\xa8\xcd\xd5\x6e\x3d\xc7\xff\x00\xb3\x5f\xe8\x4c\xf4\ \x80\x75\xa8\x96\xd8\x7f\x69\xbf\xe2\x12\x57\x57\x4e\x9d\xed\xb2\ \x92\x8f\xda\x33\x4e\x40\x71\x6b\x32\x1e\x91\x9f\xe2\x2a\x05\xb5\ \x8e\xe0\x8b\x58\x0f\xda\x52\xf6\xbe\x38\xf4\xea\x5b\x70\x3c\xda\ \x31\x6a\x25\x61\xb6\xb9\xb3\x7e\x16\x89\x28\xcb\xba\xe2\x2a\xa7\ \x94\x0f\xeb\x3a\x63\x07\xa5\x4d\x46\x87\x50\x1d\x58\xab\x0e\x08\ \xe0\x89\xf5\xbe\x77\xf8\x46\xe4\x5a\x74\xeb\x56\x4b\x91\xc0\xdc\ \xc0\x7e\xf6\x9f\x21\xa5\xae\xbb\x92\x85\x61\xbd\x09\x1c\xf4\x9f\ \x43\xfe\x23\x6a\x87\x4f\xa5\x14\x01\xb2\x8d\xe4\x2f\x2b\x7e\x05\ \xbd\xad\x39\xf3\x9d\xc6\xb8\xdc\x8e\x16\xb6\x9b\x52\xa9\xb1\xd4\ \xab\x0c\x10\x60\x85\x1f\x66\x6b\xe7\x22\x5b\x5f\xe2\x2b\x55\x85\ \x3d\x6d\x10\xe0\x63\x70\xc3\x09\x9f\x65\xa3\x55\x09\xd3\x56\x0c\ \x18\x7c\xad\x83\x37\xbf\xd1\x9f\xc7\x32\xd7\xe3\xe9\x2b\xa6\x2d\ \xa7\x2d\xfe\xdb\x1f\xd6\x31\x7e\x1b\xab\xb9\x1e\x1f\xb1\xbc\x23\ \xa7\xab\x4b\x4b\x55\x6a\x27\x04\x70\x65\xaa\x44\xa4\x1a\x74\x55\ \x94\xd8\xb3\x5e\xfe\x82\x0b\x56\xaa\xc3\x6e\xec\x1e\x6d\x8b\xc6\ \x56\x04\x78\x63\xfd\xa3\x06\x31\x28\xd8\x5d\x46\x7d\x7a\x48\x25\ \x5a\x63\x77\x9a\x0d\x52\x00\x5b\x09\x6f\xd9\x6a\xd4\x1e\x4a\x64\ \x0f\xcc\xf8\x1f\xbc\xe9\x51\xf8\x32\xe9\xb4\xeb\xaa\xd5\xde\xb1\ \x71\x75\x14\xd4\x95\x1e\xe6\x57\x94\x87\x2b\x95\xa3\xd2\xb5\x54\ \xf1\x5c\x8a\x74\xff\x00\x3b\x75\xf6\xef\x2f\xa5\x4d\x95\x7f\xca\ \xd2\x65\x5e\xb5\x5f\x04\xfb\x76\x8c\x3a\x95\x4a\x85\x97\x46\x5c\ \x81\x61\xbe\xe2\xdf\xa7\x1f\x48\x93\xa9\xd4\xb3\x5c\x01\x4e\xff\ \x00\x97\xfb\x99\x9e\xe9\xea\x28\xa1\xa4\x46\x24\xbd\x66\xb7\x5d\ \x88\x4f\xee\x6c\x25\x28\x9a\x6a\x43\xe4\x07\xd5\xea\x0f\xe0\x4e\ \x76\xfa\xd5\x33\x55\x99\xcf\xab\x5e\x35\x0e\x00\xb5\xa6\x6c\x31\ \x6f\xda\x68\x2d\xf6\xb1\x18\xe1\x12\xdf\xda\x0d\x13\x46\xb5\x4f\ \x2d\x03\xea\x4b\x19\x23\x2f\x9b\xd6\x75\x7e\x09\x4d\x48\x62\x72\ \x57\x30\xbd\x43\x3b\x73\xb5\xaf\x4e\x86\xa0\xd3\xfb\x35\x30\x47\ \x52\xc4\x9f\xe6\x23\xed\x34\x8e\x02\xec\xf6\x02\xd0\xbe\x20\xcd\ \x53\x52\xec\xc2\xd9\xb4\x85\x97\x69\xb8\x17\x9b\x93\x59\xb5\x56\ \xe2\xc4\x8a\x75\x03\x7a\x5e\xd2\x5a\xb5\xab\xa1\x20\xbb\xaf\xa1\ \x82\x2f\x7c\x73\x1a\x6a\x06\xa5\xb6\xa0\xdc\xa3\x1e\xa2\x39\x89\ \x3b\x57\xa8\xc6\xd7\x46\xf7\x51\x37\x78\xb8\x2d\x4a\x9f\xe9\x69\ \xea\xb4\x36\xae\xe4\x3b\x90\xf5\x10\x6c\x7b\xe2\x21\x42\xb6\x90\ \x53\x26\xa6\x9d\x8d\xcf\x2b\x52\xdf\xc8\x8d\x46\xf8\x71\xb7\xdc\ \xea\x41\xe9\xe7\x1f\xda\x4b\x53\xfd\x3a\x61\x86\x0e\x63\x68\x85\ \x15\x17\x3c\x19\x62\x15\x4f\xb0\x80\x71\x5f\xea\xc3\xfb\x45\x28\ \xd0\x13\x7f\xbf\xfa\x01\x37\xe2\x08\x16\xab\xed\x18\x26\xe2\x21\ \x14\x81\x91\x28\x96\x21\xf8\x70\xfc\x1a\x8f\xd4\x4d\x73\xf0\xee\ \x94\xeb\x1f\xa8\x92\x10\x07\x1c\xcc\xfa\x4b\x16\xa9\x35\x34\x83\ \x2b\x41\xcf\xfe\x4d\x09\x75\x2a\xb9\xa7\xa7\xa6\x07\x7b\x5e\x4b\ \x68\x4b\x71\x83\xc4\xb1\x6a\xfa\x7a\xca\xa4\x00\x08\x5f\x61\x3c\ \x6b\xd5\x26\xc5\xda\xd7\xef\x24\x5b\x10\x19\x2f\x8e\x93\x69\xb8\ \x2e\x2e\x7e\x90\xfc\xc3\xae\xdf\xc3\xcb\x7f\xd3\x75\x35\x2f\xc5\ \xa7\x33\x56\xc7\x7e\x18\xe4\x4e\x96\x9a\xcb\xf0\x2d\x4b\xde\xc3\ \x70\x9c\x8a\xcd\xbc\xd8\x1e\x00\x98\xe3\xe9\xbe\x16\xd5\xaa\x04\ \xc3\x9f\xd6\x26\xa5\x5a\x8c\xa3\x86\x37\xed\x18\xc1\x48\x00\x70\ \x73\x0e\x8d\x55\xa1\x40\x8f\x0b\xf1\x58\x90\x73\x3a\x32\x99\xc1\ \x03\xce\xab\x7e\xd6\x99\xb0\x58\x12\x96\xfa\xc7\x1d\x45\x12\x4e\ \xf4\x60\x3a\x5b\x33\x05\x5a\x06\xe4\x60\xfa\x89\x02\x8e\xdf\xca\ \x62\x6a\x5a\xf8\x32\x8f\x2b\x0b\x5c\x40\xa9\x44\xd8\x91\x9b\x45\ \x1e\xac\x54\x58\x19\xa3\x63\x72\xb9\xee\x0c\x16\xc1\x83\x92\x64\ \x4d\x4a\x6a\xc7\x0c\x47\xb8\x85\xe1\xa5\xff\x00\xd4\x59\xb4\xa9\ \x54\xf0\xcf\xe1\x07\xa9\xc4\xf1\xd8\x08\xdd\x53\x75\xba\x08\x22\ \xfc\x3a\x5b\xf2\x4b\x7e\xd2\xbd\x53\x5d\xd4\x00\x00\x0a\x07\x1e\ \x92\x62\xe9\x7c\x0f\xd7\x31\xce\xde\x35\x30\xc0\xdd\x94\x5a\xc6\ \x15\x15\xe1\x96\x24\xdc\x9e\xd3\xa1\xa7\xa6\x9a\x1d\x3f\xda\x6b\ \x28\x6a\xa7\x34\xe9\xff\x00\x53\x17\xa3\x41\x41\x3e\xd5\xa8\xc8\ \x07\xc8\x9f\x98\xc5\xea\xab\x3e\xa5\xda\xa3\x9c\x9f\xda\x17\xbe\ \x8f\x88\xf5\x55\x2a\x57\xac\xd5\x6a\xbd\xd8\x9c\x98\x86\xb7\x56\ \x16\x85\x58\xde\xc0\xf1\x12\xd9\xc4\xdc\x8c\xd6\xda\xe7\x0c\x23\ \xb4\xd4\xea\xbb\xaa\xd3\x17\x24\xe2\x2e\x9d\x32\x5b\x22\xfe\x82\ \x74\x74\x48\x52\xb2\xb9\x21\x76\x82\x6c\x3d\xa1\x6a\x90\xdf\x01\ \x95\x76\xd4\x2a\x48\xfc\xa6\x5b\xa0\xd5\x94\xb5\x13\x44\x95\xe2\ \xe3\x91\xeb\x39\xca\xa0\x9d\xc8\xa4\x9b\xf2\x67\x43\xc5\xfb\x35\ \x1f\x16\xab\x03\x51\x6d\xb5\x07\x33\x9d\x6e\x1f\xf1\x5f\x14\xd3\ \x1a\x6a\x24\x03\x7f\x3b\x13\x6b\x89\xce\x4d\x13\x28\xb3\xd4\xa4\ \x14\x8e\x0b\x44\xb3\xbd\x5d\xec\xcc\x6e\xd7\xcd\xfb\xc1\x24\x05\ \xa7\x7b\xde\xdc\xfb\x46\x4c\x98\xad\x74\x34\x3a\x5a\x74\x2a\x17\ \xfb\x5a\x05\x20\x03\xb7\x3d\x71\x3b\x7a\x43\xa5\x02\xad\x7d\x38\ \x0d\x54\xe4\x92\x30\x0d\xb9\xfd\x67\xcc\x53\xba\x12\xa0\x60\x9c\ \x4b\x2b\x55\x14\x69\xa5\x6b\xd8\x93\x70\x2f\xd4\x73\xf4\x99\xe5\ \x34\xcb\x89\xb5\xf7\xaa\x8e\xec\x6e\xcc\x03\xfd\x7a\xc5\xa9\x05\ \x68\x11\xf8\x94\xaf\xd4\x1c\x7f\x36\x94\xd5\x55\xbe\xf5\xf9\x41\ \xb7\xff\x00\x56\xe2\x47\x51\x48\xd3\xd4\x41\x86\xa4\xfb\x87\xb7\ \x07\xfa\x4d\x40\xf5\x37\xf0\xb5\x00\x26\x51\xbc\xc0\x77\xf6\x9d\ \x7f\x89\x9f\xf3\x65\xc7\x0e\x8a\x7f\x6e\xd3\x87\x52\xa6\xd0\x2a\ \x15\x06\x9b\x1c\x8b\xfc\xad\xd6\xd3\xa7\xae\xd4\x78\x9a\x0d\x2e\ \xad\x46\x02\xf8\x6d\x63\xc5\xb8\x95\x9d\xa9\x49\x6a\x14\xea\x12\ \x11\xb6\x9b\x70\x67\x3b\x53\xa2\x75\x72\x1d\x0d\xbb\x81\x79\xd3\ \x73\x4e\xaa\x25\x45\x19\x38\x22\xf6\xfd\x24\xef\x55\xc3\x91\x4e\ \xa9\x16\xc9\x53\x19\x68\xb1\xce\xd3\xe9\x9a\xa6\xaa\x92\x29\xbe\ \xe6\x02\x75\xbf\xc4\x4d\x53\xfe\xa7\x55\xd3\x72\xec\x70\xa2\xdd\ \xac\x04\x4d\x1d\x53\xd0\xd4\xd3\xa9\x51\x29\xb5\x98\x1b\x95\xbf\ \x1e\xb3\xb9\xf1\x23\x4c\x6b\xaa\x25\x81\x0e\xbe\x20\x36\xb8\x3f\ \xf2\xd0\xe5\x7b\x32\x74\xf9\xd6\xaa\x95\xad\xf6\x8d\x30\x6b\x8b\ \xee\x4c\x19\xb4\x68\xd0\x15\x03\xd1\xd4\x94\xb1\xe2\xa2\x91\xfc\ \x4e\xba\x36\x9e\xa5\x35\x76\xd1\xd3\x20\x9b\x5b\x22\xf1\x1f\x1d\ \xa5\xa3\xa0\x29\x0a\x29\xe1\xd6\xb5\xdd\x03\x5c\x2f\x68\xce\x5d\ \xe0\xcf\xa5\x8a\x1a\xe5\xc5\x1a\xa9\x51\x4f\xca\x05\x41\xfd\x4c\ \x05\x5d\x42\xd6\xa9\xa7\xd4\xa9\x42\x56\xfb\x67\x91\xfc\x34\xb3\ \xed\x35\x6d\x74\x07\x20\x7b\xc9\x92\xab\xb6\xa7\xc4\xa8\xe4\xb7\ \x52\x65\xda\x38\xa5\x14\xac\x1e\xb8\x38\x51\x60\x23\x8e\xae\x9a\ \xd3\xdb\x49\x52\x99\xbd\xf7\x01\x76\xfd\xe2\xb5\xc8\xa7\x65\x5b\ \x8c\x8b\x7e\x91\x5a\x6a\x41\xea\x79\xc8\x14\xc0\xdc\x4f\xa4\xb2\ \x62\x31\xc2\x90\x35\x15\xea\x3b\xdf\xe5\x0c\x72\xdf\xfa\x93\x9d\ \x46\xa0\xbb\x1a\x75\xdd\x7d\x15\xac\x2d\x17\xab\xa8\x6b\x55\x27\ \x80\x30\xa0\x70\x04\x5a\x9b\x63\x9f\xac\xd4\x83\x55\xd3\xd5\x6a\ \x85\x97\xed\x35\x71\xc5\xd8\xc6\x2e\xa7\x52\x72\x35\x0e\x4f\x63\ \x25\xa4\xc6\xe2\xc4\x0b\x77\x95\x53\xce\x08\x10\xb2\x15\x34\x75\ \x3a\x93\xcb\x06\xb6\x32\x01\x8f\x15\x9e\xd6\x64\xa6\x7d\xd0\x49\ \xd1\x06\xdc\x7e\x92\x84\x51\xb6\xf7\x17\x98\xa6\x34\xd4\x53\x96\ \xd3\xa1\xef\x6b\x89\x57\xc2\xeb\x51\x4a\xa0\x04\x65\xbf\xfb\xae\ \x24\x7b\x7e\xb3\x57\xca\x43\x2d\xaf\x0b\x34\x8b\xe2\x5a\x75\x4a\ \xec\x37\x81\x73\x7c\x89\x0b\xd1\x75\x05\xad\x71\xdc\x66\x76\x35\ \xaa\x35\x5a\x25\xac\x07\xde\x53\xc3\x5b\xb4\xe4\x97\x65\x37\x42\ \x41\xeb\x1e\x35\x54\x8c\x97\x38\xc4\x1b\x6d\x6f\xf6\x9c\x19\x43\ \x3a\xb1\xf3\x0d\xa7\xb8\x8a\xac\x85\x73\xc8\x3d\x44\xdc\xac\x05\ \x77\x52\x7c\x64\x1f\xdc\x4f\x3d\x35\x23\xc4\xa6\x3c\xbd\x47\x69\ \xaa\x37\xa5\xba\x8e\x20\xd3\x72\x86\xe3\xac\x53\xda\x85\x1b\x94\ \x7e\x55\x1d\x66\x97\xc8\xb0\xb1\xe6\xd1\x9a\x94\xbb\x07\x51\x82\ \x05\xc7\x68\xa5\xdc\x09\xcd\xba\x4a\x23\xb5\x20\x54\xa5\xb8\x9e\ \x01\x91\xa5\xed\x6b\x99\x52\xe7\x4f\x51\x7f\x12\xc9\x10\x62\x51\ \x18\xac\x7a\xe6\x35\x54\x15\xb9\x58\xa5\x19\xcc\xa1\x6d\x6f\x49\ \x54\x1f\x0d\x2f\x05\xb6\x64\x01\x98\x4e\xc0\x45\x6e\x17\x26\x49\ \x82\xca\xc0\xa9\x30\xf0\x4e\xf4\xc6\x72\x22\xef\xeb\x78\x54\x81\ \xb8\x63\x85\xeb\x24\xed\x23\x01\xfe\x1a\xab\x73\xcd\x41\xfd\x27\ \x19\x98\x5c\xfa\xf4\x9d\x1a\xe7\xff\x00\x82\x00\x0b\x06\xab\x70\ \x3d\x27\x26\xc4\x9d\xd6\x99\xe3\x3d\x34\x42\xe1\x07\xbc\x63\x25\ \xe8\x31\x3d\x48\x30\x0f\x20\x46\x33\x0f\x08\x8b\x75\x9a\x09\x8a\ \x40\xb7\xa4\x6f\x59\xa5\x62\x30\xa0\x2e\x63\x40\x36\x9e\x0b\x98\ \xf5\x41\xb7\x3c\xc8\xba\x55\x7e\x15\xe1\x53\xf1\x2a\xb8\x03\xb0\ \xe6\x44\xdb\x17\xfd\x3d\xaa\x3b\xf2\x63\xc5\x4a\xd5\xc1\x17\x3b\ \x78\xdc\x78\x92\x57\x75\x46\x2a\xa0\x39\x1d\x4f\xf6\x98\x9b\xf4\ \xd6\x6e\x3b\xae\xcf\xba\x2d\x91\xaf\x70\x2e\x3d\x26\x78\xce\x70\ \x6e\x3d\x85\xa6\x87\x7b\xe2\xe6\x68\x16\xc0\x92\x31\x2d\xd1\x52\ \x37\xf1\x2a\x02\x11\x79\xf5\x85\xa5\xd2\xbd\x66\x04\x10\xa7\xb4\ \x7e\xa7\x72\x11\x4c\x92\x40\xe9\x33\x6f\xc3\x22\x7a\xd5\x8e\xa1\ \xfc\xeb\xb4\x0f\x94\x76\x98\xb4\x6a\x03\x70\x09\x11\xa0\x39\x37\ \xb8\x55\xee\x61\x8a\x81\x07\x94\x93\xea\x65\xab\x11\xbe\x98\xb3\ \x92\x70\x3a\xfa\x41\xb6\x9a\x91\xf2\xa8\xa8\xdd\x49\xe2\x50\xf5\ \x55\xfc\x8f\x80\x64\xe6\x88\x53\x75\xf3\x00\x63\x3f\xd0\x3a\x75\ \x18\x9b\x04\x50\x3b\x2c\xa1\x15\x42\x33\x13\xb7\xa4\x9f\x6b\x5c\ \x58\xed\xf4\x86\x9e\x53\x66\xb9\xb7\xef\x0a\x4e\xa4\xc5\x48\xda\ \x36\x91\xc4\x46\xa4\x35\x5a\x9e\x66\xc0\xe6\x55\x46\xfb\x19\xc8\ \xf6\x88\xa8\x1c\x0b\x6d\xf7\xf5\x84\xf5\x02\x90\x02\xc2\xfe\x90\ \xd9\x41\x41\xe8\x4d\xa0\x2d\xc9\xb6\xdc\xdf\x12\xdf\xb2\x55\x28\ \x2c\x00\x24\x71\x1b\x54\x4e\x83\xee\xc7\x5b\x75\x8d\xac\xc2\xa5\ \x91\xb0\x07\x18\x8a\x0a\xc8\x76\xba\xd8\x8e\x90\x99\xe9\x2b\x10\ \x72\xdd\x20\x55\x69\x69\x33\xd1\x08\x3c\xc3\x69\x42\x7d\x3a\x1f\ \xa4\x88\xdb\xc4\x05\xc8\xcf\x95\xff\x00\x83\x1d\xa7\xd5\x35\x0a\ \xaa\xd4\xc0\x00\xf4\xef\x27\xd5\x3d\xdd\xf6\xad\x83\x1b\x89\x4f\ \x55\x2f\x65\x0a\x3b\xa8\xd4\x7e\x7c\xae\x2d\x7b\xf6\x22\x57\xf0\ \xf5\xa7\xe1\x56\xf8\x79\xf3\xef\x1b\xe9\x93\xc1\x23\xb4\xe7\x57\ \x53\x5a\x96\xe1\x97\x53\x63\x6e\xbd\x8c\xf6\x8b\x51\xf6\x7a\x89\ \xe2\x1c\xa3\x5d\x6d\xc8\x9a\xb3\xa1\xbd\xb7\xc4\xa9\x51\xb6\xde\ \xc1\x71\xd8\x2c\x36\xf3\x0d\xa8\xc1\xd8\x2d\xaf\xde\x37\xe3\x54\ \x7e\xf1\x6b\x52\x3f\x73\x5f\xce\x2d\xc5\xfa\xc8\xd5\xd6\x90\xf2\ \xe5\xe5\x3b\x83\xc3\x45\x3f\xbb\x1b\xae\x02\x9b\xe7\xa9\x9d\x9d\ \x7b\x87\xd2\x68\xab\xde\xf7\x4d\xac\x3d\xa7\x09\xaa\xee\xb3\x31\ \xb9\xe6\xd3\xb3\xa2\x74\xab\xf0\x0a\x8d\x50\x16\xf0\x6a\x6f\x17\ \xeb\x7e\x9e\xd0\xe5\xf2\x98\x1a\xfa\x93\xa7\x0b\x58\x0f\xbc\x71\ \xe4\x1f\x97\xd6\x41\x72\x0b\x6a\x2a\xf9\xbf\x2d\xfa\x98\x02\xa3\ \xd7\x66\x15\x0d\xd9\xcd\xc1\x3d\x0c\x73\x80\x54\x52\xe0\xa8\xc7\ \xbc\xa4\xc4\x92\xe5\xdf\x79\x27\x75\xf9\x8d\x71\xe2\xa7\x88\xb8\ \x61\xf3\x01\xfc\xcc\xda\x43\x01\xde\x36\x98\xd8\x77\x0f\xd3\xfa\ \x4d\x50\xa7\x35\x74\x23\x9f\x2e\x62\x2a\x59\x34\x66\xd6\xdd\x50\ \xdb\xe8\x25\x7a\x6d\x83\x72\x8b\x94\xa8\x2c\x2d\xf8\x4c\x97\x5e\ \x36\x8a\x54\xec\x6e\x16\xff\x00\xbc\xcc\xf7\x0b\x9c\x41\x53\x83\ \x36\xd7\x1b\xad\x6b\x47\x81\x65\x69\xbb\x76\xd3\x18\xb5\xf9\x9b\ \x18\x4d\x30\x6f\x9e\x25\xb4\x14\x6d\xe6\x22\x90\x52\x7a\xdc\x4a\ \x11\x80\xe9\x33\x54\x53\x4e\xdd\x31\x1c\x8c\x0e\x36\xde\xdd\x64\ \xc9\x53\xa7\xe9\x08\x54\xb1\x98\x68\xe2\x73\x8c\x4f\x02\x49\xce\ \x62\xf7\xdf\xa9\xbc\xf2\xb8\xda\x4d\xfd\x24\x75\x67\xc3\xeb\xaa\ \x57\xf0\xdc\xfd\xdb\xe0\xde\x47\xf1\x0a\x27\x4d\xa8\x7a\x47\x20\ \x64\x7a\x88\xa7\x39\xc4\xae\xb9\xfb\x67\xc3\x45\x4e\x6a\xd0\xe7\ \xd4\x43\x32\xea\xf5\xca\xac\x46\xde\xf1\x4b\x55\x97\xd4\x1e\x41\ \xeb\x0c\x82\x41\x07\x9e\x91\x6c\x3c\xbe\xa2\x75\x60\xe4\x0a\x4d\ \xd0\x9b\xf6\x9e\x64\x05\x83\x01\xef\x13\x4c\xdb\x23\x99\x52\x30\ \x66\xb3\x73\xd6\x17\xa4\x33\xe5\x60\xd6\xc1\x5c\xc0\xac\x80\x58\ \xad\xb6\x9e\xf1\xf5\x05\xa8\x02\x7f\x09\xfd\xa4\x81\xac\xd9\xca\ \xb7\x30\x86\x8a\x98\x01\x81\x27\xe6\x16\x92\xf0\x48\x94\xd4\xf2\ \xb2\x8b\x8b\x0b\x10\x62\x2b\x62\xb3\x8f\x59\xa8\x1e\x5e\x91\x81\ \xed\x88\x08\x31\x08\xa9\xc9\xb4\x93\x1c\x96\xe9\x68\x07\xa8\x84\ \x39\x9a\xaa\x59\xad\xd4\xe2\x29\x94\xa9\x97\x6c\xe0\x0e\x61\x39\ \x0c\xc1\x54\x59\x47\x02\x1d\x45\xda\x05\x35\xfa\x9e\xe6\x0a\x21\ \xdd\x91\x04\xe8\xea\x80\xff\x00\xa4\x69\xd4\x77\xfe\xa6\x72\x88\ \x39\x02\x76\x2a\x53\xdf\xf0\xca\x37\x36\x00\xff\x00\x79\x1b\x53\ \x00\x12\xa6\xe2\x67\x8d\xc3\x62\x36\xb9\x00\x01\x35\x50\x94\xb7\ \xac\x68\x50\x5a\xd0\xac\x14\x58\x5a\xd3\x5a\x08\x14\x89\x36\xb8\ \xbf\xbc\x67\x80\xfd\xc4\x6e\x01\xb8\x17\x8c\xa7\x51\xea\x79\x43\ \x59\x7b\x0e\x21\x6d\x24\x26\x9d\x89\x17\x36\x95\x52\xd2\xb5\x43\ \xb5\x58\x5f\xda\x12\x84\xfc\x22\xde\xa6\x17\x8e\xe9\x7d\x87\x60\ \xee\x04\xcd\xb4\x95\x42\xa1\xa8\xf5\x3c\x32\x02\xaa\x1d\xa2\x40\ \x43\x96\xc8\xcc\xdd\x3d\x4f\x0a\xb0\x22\xe3\xbc\xa6\xb8\xf1\x06\ \x00\x43\xe9\xd6\x6b\xca\x11\xe4\x1e\x04\x75\x2d\xa0\x5c\xe0\x7b\ \xc5\x3b\x3a\x9b\x11\x73\xea\x20\x96\x63\x92\x78\xe9\x68\x85\xcb\ \xaa\xdb\xfe\x9d\xc0\xeb\x18\xae\x18\x07\x7b\xed\xfe\x64\x74\xd6\ \xd6\x2c\x05\xcf\x4e\xc3\xb9\x9e\x7a\xf7\xab\xb7\xf0\x4c\xe1\xd5\ \x6f\x50\x3f\x00\x01\xda\x2a\xa3\x13\x27\x7a\xbb\x7c\xa3\x27\xbc\ \xc5\xaa\xd7\xe7\xe9\x19\x16\x8a\xa2\x9b\x8b\x98\x6f\x50\x25\x82\ \x8b\x93\xc9\xea\x27\xbc\xb9\x37\xf3\x73\x13\x7b\xab\x13\x9e\xb7\ \x88\x3b\xc4\x07\x2f\xf3\x77\x9e\x5c\xb8\x04\x9e\x6c\x3d\x64\xd7\ \x27\xa4\x66\x90\x95\xac\xa6\xf8\xbe\x6f\x2c\x4b\xaa\x56\xd8\x82\ \x9d\x30\x40\xbd\xcf\xac\x45\x57\xdd\x92\x4f\xeb\x32\xab\xab\x33\ \x2a\x9b\x10\x6d\xef\x10\x77\x0e\x6e\x3d\xe1\x21\x57\xf0\xf7\x08\ \xef\x55\xb3\xe1\xa1\x61\xef\xd2\x7a\x9d\x77\x7b\xb3\x16\xb9\xea\ \x4c\x4e\x98\xed\xa7\x5c\x8e\xa9\xc7\xb1\x12\x77\xae\x58\x80\x4e\ \x3b\x09\x60\xd5\xb5\x2b\xbd\x45\xb3\x35\xca\x8b\x66\x25\xaa\x6e\ \xf3\x03\x73\xd6\x25\x9c\x97\x0f\xf4\x22\x10\x6d\xb9\x8e\x25\x6e\ \xaa\x55\x7c\x3b\xee\xda\x0d\xbb\xcc\x55\x0c\x36\xb9\xb9\x27\x11\ \x0d\x51\x8d\x15\x65\xe1\x7c\xa7\xdb\xa4\x05\x26\xe0\xee\xb1\x86\ \x2d\x34\x87\x47\x20\x27\x90\x8b\x30\x12\x7a\xda\x72\x1c\x5d\x85\ \xfa\x11\xd6\x3d\xea\x92\x4f\xaf\x30\x43\x78\xa3\xc2\xc6\xf1\xf2\ \x98\xa5\x3a\x0a\xad\x56\x8b\x68\x2b\x2e\x0f\xfa\x44\xfe\x69\x05\ \x4a\x2d\x4d\x89\xce\x0d\x8a\xf5\xbc\x63\xb9\x50\x01\xc0\x5f\xd4\ \x18\xfd\x60\xfb\x45\x11\xaa\xa6\x6e\xdc\x54\x1e\xbd\xe5\xe5\x4e\ \x62\xef\x7a\x81\x47\x24\xda\x7d\x17\xc3\x6a\xa8\xad\xff\x00\x4b\ \x36\xda\xf4\x4a\xdc\xf5\x6e\xf3\x95\xa4\xa5\x67\xde\xcb\x62\x82\ \xfc\x46\x53\x15\x68\xea\x29\x57\xe4\xa9\x0d\x71\xef\x0e\x5d\xa9\ \xd3\x28\xa0\x5a\xbb\x5c\x10\x54\xe7\xe9\x1a\x58\x54\x06\xa0\x17\ \x61\xcd\xa5\x5f\x16\xa2\xa9\xac\x35\xd0\x79\x2a\xae\xf1\x6f\x59\ \x15\x26\x14\xce\x14\xdf\xf9\x96\xef\x66\xf4\x37\x50\xc3\x70\xbd\ \xfa\xcc\x42\x40\xb1\x1c\x42\xbd\x8d\xc1\xf2\x9e\x3d\x27\xb6\x9e\ \x57\x83\xcf\xa4\x91\xff\x00\x0f\xaa\x52\xb8\x04\x02\xad\xf3\x2c\ \x2f\x89\x04\xad\x59\x2b\x20\x21\x0a\xd8\x77\x16\x83\x40\x78\x34\ \x9a\xa3\x7c\xec\x2c\xa3\xfa\xc6\xe9\xc2\xd4\x46\x4c\x03\xc8\xf7\ \x99\xbe\xe9\xf8\x91\x90\x05\xb8\x31\x55\x45\x90\x1f\x58\xda\xd7\ \x50\x47\x26\x24\x5c\xd1\x62\x3a\x7a\xcd\x40\x58\xc1\xb8\xfd\xa3\ \xd0\xdc\x5b\x82\x3b\xc9\xee\x6f\xd6\x36\x8b\x02\x00\x8d\x06\xd8\ \xda\x1a\x1b\x8c\xf3\x3c\x06\xe1\x09\x54\x8e\x98\x98\x22\x17\xb5\ \xa6\x90\xa2\xd7\x98\xcf\x6e\xc3\xd6\x2f\x53\x7d\xc0\xdc\x0c\x4a\ \x42\x63\xba\x6d\xc6\x6d\x19\xf0\xfd\x6a\x69\xf5\x00\xb0\xba\x1c\ \x30\xf4\x91\xae\xd3\x62\x49\x3f\x48\x15\x0d\x3b\xda\xed\x88\xfe\ \x46\xab\xf8\x85\x3a\x74\x35\x05\x00\xf2\x9c\xa9\xee\x24\x95\x16\ \x9b\x36\x0d\xaf\x29\x2c\xba\x9f\x86\x90\x48\x2f\xa7\xfd\x4a\x99\ \xcf\x50\x2e\x00\x78\xc5\x4e\x14\xc8\x36\x0d\x71\xd2\x30\x21\x27\ \x83\x26\x4a\xbb\x58\xd8\xde\x55\x4f\x55\x75\xb3\x01\x2b\xa0\xc4\ \x6d\xc1\xa8\xb1\xc3\xe0\x7b\xc9\x19\x18\x55\xda\xc0\x80\x25\x0e\ \xc8\xc8\x7a\x58\xc0\xac\x1e\xa0\x1e\x7b\xac\x21\x25\xaa\x6f\x62\ \xbf\xa4\x0a\xe7\xcc\x8d\xdd\x7f\xf5\x32\xa2\x3a\x11\x71\x68\x75\ \xfc\xfa\x75\x7f\xca\xc4\x19\xa0\x2a\x37\xb5\xfa\x75\x8e\x04\x5a\ \x46\xaf\xd2\x39\x1f\xa1\x32\xb1\x1b\x81\x99\xb4\xc8\x15\x06\x22\ \x09\xb9\xbd\xed\x1a\x97\x16\xdd\xcc\x2a\x33\x53\x4c\xef\x36\xf7\ \xe2\x65\x31\x70\x01\xe6\x55\x59\x77\x22\x54\xee\x22\x45\xaf\xea\ \x21\xa5\x50\x27\xfe\x98\x01\xe8\xf1\x09\x60\x4d\xf8\xea\x25\x08\ \x37\xfc\x3e\xa5\xb0\x55\xaf\x69\x20\x36\x27\x33\x30\xb2\xaa\x78\ \x75\x6f\x6b\x88\xa6\xb9\xe3\x12\xa2\x43\xd2\x3f\x99\x78\x93\x95\ \x3d\x66\xa5\x14\x19\x2a\x01\xed\x2b\xd3\x22\xec\xfe\x64\xaa\x3a\ \x71\x2b\xd3\x9b\x15\xed\xd6\x55\x46\xd5\x0b\xb8\xdb\x0a\x38\x11\ \x42\xc5\xf6\x37\xc8\x32\xd1\xc5\x81\x73\x7e\x82\xf1\x1a\x8b\x26\ \x98\x5c\xd9\x9c\xe7\xda\x10\xb9\xe5\x7c\xd7\x8c\xde\xcf\x83\xfc\ \x73\x18\x11\x40\xc9\x04\x99\xa2\x9d\x81\x20\x19\xbd\x64\x92\xed\ \x7d\x8c\x37\x5b\xf6\x82\x6c\xa7\x19\x63\xd7\xa0\x8c\x74\x6b\x10\ \x05\x80\xeb\x3c\x82\x8a\x9f\x3d\x4c\x75\x02\x48\x6f\xe5\x05\x0e\ \x1c\x80\x3d\xe4\x75\x18\x82\x40\xc4\xb7\x51\x57\x4c\x54\x3a\x5d\ \x88\x16\x6f\x49\x13\xea\x94\xe1\x10\x03\xeb\x28\xa8\x4b\x31\xeb\ \x09\x5f\x60\xb9\xe7\xa0\x8b\x50\xef\x76\x20\xd8\x76\xeb\x0f\x66\ \xe5\xdc\xee\x03\x75\x1d\x62\x06\x6a\x96\x39\x98\x84\xee\xc1\xb5\ \xe2\xc8\x23\x0a\xb6\xf5\x33\xc0\x30\x39\x92\x30\x55\x50\x6d\x6f\ \xac\xf6\xe0\x5a\xf7\x8a\x70\x37\x11\xb8\x4f\x12\x8a\x2e\x5a\xf2\ \x47\xd6\x37\x22\xa0\xb6\x7b\x77\x9e\xf1\x89\x16\x7e\x3a\x45\xd2\ \xa8\x86\xea\x4e\x0f\xed\x3c\xce\x41\xb1\x37\x3e\xd2\x4a\x34\x96\ \x35\x36\xde\xe1\x94\xaf\xed\x23\x75\x20\xee\x63\x61\x18\x2a\x0a\ \x65\x59\x72\x46\x63\x35\x66\x99\x7c\x8b\x06\x1b\x94\xc9\x02\x9d\ \x65\x65\x29\xd6\x12\x31\xb6\xc0\x33\xd4\xc4\x25\x3d\xae\x1b\x22\ \x31\xd8\x11\x75\x36\x1d\x64\x86\x95\x16\x99\x2a\xd9\x0c\x2c\x6d\ \x05\xc9\x07\x69\xb5\xc1\xc5\xa2\xce\xdb\x5c\x9b\x1e\xd3\x54\x17\ \xb0\x04\x16\x1f\xc4\x90\x8b\xb3\x75\x9e\x56\xc8\xb3\x58\xf2\x20\ \x32\x15\x26\xec\x09\x1c\xe6\x62\x13\xba\xf7\x92\x53\x54\xf8\x97\ \x7f\xfb\x83\xe6\x1f\x9a\x7b\x45\x5f\x63\x91\x6c\x36\x18\x1e\xb1\ \x54\xf2\x70\xc0\x11\xc1\xbc\x71\xa5\xe2\x8d\xc9\x60\xc3\x91\x78\ \x27\x40\x2e\xd4\x23\x0c\xac\x70\x4f\x16\x83\xab\xd9\xb9\x3c\x35\ \x62\x08\xb5\xfb\x41\xa7\xff\x00\xf1\x69\xd1\xa9\xf8\x89\xb1\xbf\ \x06\x12\xab\x05\x2a\x41\x56\x06\xd6\x33\x2d\x2e\x54\x5a\xff\x00\ \x0a\x19\xbb\xd1\x36\x27\xd0\xce\x79\xa4\x2f\xf3\x28\x32\xff\x00\ \x85\xb0\x5a\xfe\x1b\x8b\x25\x41\xb5\xbb\x45\x6a\x28\x14\xa8\xf4\ \x9f\x95\x36\x13\x32\xe5\xc3\x53\x22\x30\x7d\xa5\x90\xa9\xe4\x5e\ \x52\x28\x78\x0c\x09\x2a\xd7\xe2\xfc\x45\xd3\xa7\xb5\x18\x9e\x40\ \xc4\x1a\x75\x0a\x5d\x58\x9d\xa7\xf6\x8a\x87\xbd\x2d\xcd\xbb\xc4\ \x53\xf5\xe2\x62\xd2\x08\xc1\x96\xa8\xba\x9b\xe2\x2c\x3e\xc7\x17\ \x01\x81\xe0\xf7\x99\x59\x69\xec\x2c\xb7\xf5\xb7\x49\x26\xd6\xa5\ \xbd\x8b\x12\x4f\xb4\x9c\xd3\x2a\x7f\xd3\x71\x1b\xa4\x5a\x42\x8b\ \x97\xf3\x5c\x80\xa6\xf6\x2b\x18\xcb\x75\x34\xdb\x0f\x6f\x2b\x5f\ \x0d\x1d\xc0\x86\xa9\x17\x3f\x73\xf5\x85\x41\x86\xeb\x6c\xb0\xf6\ \x81\x51\x9d\x6a\x6d\x6e\x9c\xcd\x5a\x96\xb7\x98\x83\xfa\xcd\x7c\ \x0a\xd5\x87\xe6\xfd\xa0\x33\x16\x3f\x34\x16\xaa\x42\x86\xef\x31\ \x6b\x86\xf9\x91\x09\xf6\x99\x90\xbd\x9e\xe2\x6d\x60\xc5\xc8\xf4\ \x86\x86\x9b\x5a\xe9\x63\xe8\x67\xb5\x06\x98\xa9\x65\x62\x3d\xc4\ \x91\x2a\xa0\x72\x32\x22\xdb\xcd\x90\x38\x8d\xb9\x5b\x9b\xdc\x74\ \xb4\xc2\xe0\x7c\xcb\xcf\x68\x80\xe8\xeb\xf8\x35\xc3\x10\x0a\x9c\ \x30\xee\x20\x6b\x69\x7d\x9f\x52\x57\xf0\xde\xe0\x8e\xdd\x26\x39\ \x42\x7c\xb1\xba\xa2\x2a\xe8\x29\x3f\x54\x25\x0f\xf2\x23\xf5\x21\ \x75\x21\xb0\x4c\x20\xec\x00\x99\x60\x57\x9e\x21\x2a\x02\x30\x62\ \x0d\x0e\x19\x4f\x43\x69\xea\x15\x08\x16\x24\xc5\x52\x43\xb8\x7b\ \xc6\x35\x17\x17\xb7\x78\x13\xe9\xd4\x15\x00\x5a\x99\xec\x63\x85\ \x14\x6d\x3b\x80\x7f\x10\xbc\x85\x81\xbd\xf3\x1d\x4d\x9c\x69\xc8\ \x20\xe4\xf3\xed\x0b\x09\x2f\x45\x91\xac\x67\xb6\x98\xf5\xaa\x4a\ \xab\x9f\x63\x28\x55\x46\xe9\x2d\xc1\x88\xb6\x91\x1d\x4c\x11\xc9\ \xbc\x79\xd3\x83\x37\xc2\xb7\x22\x5f\xa3\x8a\x68\x5a\xa6\x9c\xaf\ \x51\x90\x24\xed\x8f\x48\xed\x27\x95\xc0\xe9\x33\x5a\x9b\x6a\x1b\ \x0c\x19\x8f\xa4\x5a\x67\xfb\xa7\x1e\x98\x92\x54\xfc\xeb\xf2\xff\ \x00\x11\xfa\x75\x3b\x18\x7a\x49\xd4\xd8\xf7\x1c\x18\xc4\x6d\x26\ \x18\x23\xf4\x84\xeb\x67\x23\xa4\xcf\x0f\x17\x5e\x21\x5b\x75\x3b\ \x9e\x46\x2f\x04\x9d\xd6\xc7\x12\x8d\x2d\x8f\x86\xa7\x17\xc5\xe2\ \x58\x31\x3e\xd1\xd4\xd6\xf4\xaf\xf9\x4c\x68\x65\x7b\xa3\x54\x03\ \x91\x61\x13\xae\xbe\xe0\x83\xf0\xa8\x12\x93\x4f\x73\x58\xdf\x2c\ \x3a\x49\xb5\x5e\x6a\xcc\x7b\x9b\xde\x31\x56\x25\x20\x32\xdc\x47\ \x54\x60\xaa\x02\x81\x60\x26\x30\xb8\x81\x5d\xb6\x83\x78\x7a\x91\ \xd5\x66\x63\x93\x26\x62\x54\xfa\x4a\x5b\x24\xc9\xb5\x16\xe5\x67\ \x48\xcd\x2d\x98\xdc\x32\x9d\xa7\xbc\x16\xac\xc3\x20\x06\x61\xdc\ \x44\x3b\x36\xe1\x99\xb7\xdc\x79\xc8\x88\x52\x35\xf5\x1e\x9f\x86\ \xc6\xc2\xff\x00\x84\x5a\x08\xaa\xb7\xb8\x04\x9f\x53\x25\x6c\x9c\ \x60\x8f\xde\x6a\x3e\xe1\x6e\xb2\x2a\x5e\xab\x83\xe5\x36\x10\x77\ \xee\xe4\xd8\xc5\xa3\x1f\x94\xcd\xb7\x6e\x7b\x48\x19\x50\xd8\x06\ \x3d\x44\x5e\xf2\x67\x9c\x90\xa0\x93\xc7\x49\x82\xc4\x60\x6d\x32\ \x42\x52\x14\xdc\xfe\x91\xdb\x8d\x45\xf2\xe1\x87\xee\x24\xd6\x21\ \xa3\x50\xdb\x3c\x11\xd6\x48\x48\x70\x01\xbe\x23\xd8\x87\xd3\x00\ \x2c\x5a\x9f\xf0\x7f\xe7\xef\x11\x50\xee\x1b\x97\x1d\xc4\xf5\x16\ \x2b\x63\xcf\x7f\x69\x11\xd3\xaa\xe8\xaf\x9b\x8e\xc6\x32\x8b\x23\ \xf3\xe5\x1d\xa4\xd5\x7e\xed\xc8\x06\xe8\x78\x3d\xc4\x30\xca\x13\ \x18\xc4\x93\x75\x34\xd9\x5a\xe2\x7b\x4e\xde\x15\xd8\x80\x4c\x04\ \x76\x5c\x02\x6c\x7a\x18\x61\x95\x8f\x99\x7e\xa2\x49\x84\xdb\xcc\ \x07\xfe\xa6\x83\x9b\x08\x74\xd5\x77\x5d\x5c\x63\xbc\x27\xd3\xbf\ \xcc\x17\x70\xf4\xcc\xb5\x11\x72\x0e\x6e\x23\x69\x39\x0d\xce\x7a\ \x19\x8e\xb6\x1e\x60\x41\x9e\x40\x0e\x00\xfa\x48\x2f\x67\x0d\x45\ \x19\x86\x7a\xda\x57\xa5\xff\x00\x31\x48\x8b\xf9\xc0\xf2\xfa\x89\ \x00\xbf\x80\xa0\x8b\x67\x99\x46\x91\x8d\xd4\x8c\x10\x66\x2c\xe9\ \xb8\xa2\x95\x57\x46\x03\xa8\x3d\x44\xe9\x6b\x82\x55\x4a\x7a\x90\ \xa4\x6e\x16\x62\x3b\x89\x26\xd1\x50\x17\x03\xcc\x3e\x65\xfe\xb2\ \xfd\x0d\xab\x69\xea\x50\x38\xb8\xba\xfb\x89\xce\xff\x00\x5a\x89\ \x29\xa8\xa9\x75\x04\x5e\xdd\x64\x8f\x48\xde\xc5\x7e\xa2\x5d\xe1\ \x94\x56\xdb\x92\x71\x13\x59\x6f\x7c\x15\x6f\xd8\xc5\x54\xaa\x15\ \x45\x8d\xf6\x9e\x41\xe9\x31\x91\x94\xdd\x4d\xd7\xa1\x9e\x67\x75\ \x6d\xbc\xde\x6a\x55\x34\xc1\xde\x15\xaf\xd2\x21\x95\x29\xf9\x02\ \xa0\x17\x26\xe4\x4a\x35\x3a\x63\x42\x97\x96\xa9\xa8\x00\x1b\x85\ \xac\x54\xc5\xe9\xd6\xfa\x85\x65\xdd\xb4\x9e\x6f\xfc\xca\x4d\x45\ \x76\x2c\xb6\xbb\x1c\xdc\x74\x85\xa9\xcb\xa9\x66\xb2\xd5\xb5\xff\ \x00\x0b\xf4\x3e\xf1\x0e\xa1\x09\x06\xe0\x8e\x86\x5d\xab\xa1\xb5\ \xcb\x22\x86\xa4\xdc\x8b\xc4\x78\x68\xc9\xb6\xa0\x6d\xb6\xf2\x3f\ \x6f\x43\x37\x28\xa4\x29\xc0\xe9\xeb\x34\x6e\xbd\xff\x00\x71\x3d\ \x52\x8b\xd2\x70\xbd\x7a\x40\xf3\x29\xe0\x8f\x69\xa0\x70\x36\xbb\ \x02\x0e\x63\x35\x25\x58\xdf\xa9\x17\x93\x2d\x52\xad\x7b\x5f\xe9\ \x1d\x51\x91\xd1\x1b\xe5\xe9\x04\x58\x62\x00\x22\xe2\x6e\xf0\xc2\ \xcc\x2c\x7b\xc2\x74\xdf\x4c\x14\x20\xc9\xda\xf6\x20\xde\xf2\x4d\ \x71\x63\x6e\xb1\x94\x5b\x76\x96\xba\x1e\x80\x30\xfa\x18\x8b\x92\ \x2c\x4f\xb1\x8d\xd0\xe7\x51\xe1\x9c\x6f\x05\x4f\xd4\x4a\x84\xe0\ \x0e\x86\x12\x92\x01\xb4\x5b\x02\x8c\x57\xac\x34\x7b\x5a\xe0\x18\ \xa3\x10\x98\xe7\xa8\xc3\xcc\x2f\x6e\xd1\x68\x29\x9b\x7c\xd7\xed\ \x0d\xbc\xcc\x6f\xc5\xe4\x47\x4e\xa5\x3a\x8a\x43\xb6\xdb\x1b\xf1\ \x1c\x19\x43\x2a\x2e\x55\x47\x3e\xa6\x44\x8a\xcb\x53\x71\xe0\x4a\ \x28\x8d\xd5\x6f\xc3\x64\x98\x58\xa1\xd4\xb6\x3d\xc0\x03\x3c\xfb\ \xc6\x53\x51\xed\x22\x46\xb3\xde\xf6\x22\x5c\xb7\xb0\x61\xc1\x99\ \xbd\x18\xa6\x92\x03\x80\x63\x85\x21\xd7\x32\x5a\x6e\x01\xed\x29\ \xa5\x5a\xdc\xd8\xcc\x56\xa3\xc6\x88\x19\xb1\xbf\x49\xea\xc9\xe2\ \x51\x3d\x48\xe2\x56\xad\x4d\x96\xdf\xb1\x85\xe1\x0e\x57\x20\xf4\ \x86\x9c\x72\x74\xd7\x17\x04\x62\x21\xa9\xf9\x89\x1d\x0c\xe9\xd4\ \xa1\xb6\xa6\xee\x55\xb8\x90\x54\x04\x3b\x5b\xbc\xd4\xac\xd8\x2a\ \x4d\xb6\xf7\xe0\xf2\x23\x15\x00\x3d\xd1\x85\xaf\x14\x96\x61\x6e\ \x0c\x65\x32\xc8\xdb\x58\x5d\x7a\x89\x22\xd9\x4a\xb5\xc6\x0c\xbf\ \x40\xb4\xdd\x0d\x22\x9e\x77\x17\xbf\xb4\x46\xa2\x98\x1b\x2a\x53\ \x21\x94\xff\x00\xcc\xcc\xa3\xa8\x14\x54\xd4\x03\xcd\xc2\xc2\xf6\ \x67\x47\x6a\x9a\x8e\x98\xba\xee\xdd\x54\xe0\x0b\x71\x39\x0e\xac\ \xc6\xe4\x98\xf2\x4b\x92\xcd\x72\x4f\x24\xcc\x16\x1d\xa6\xa7\x42\ \xf6\x1b\xe6\xd7\x81\xaa\xe0\xcd\x2d\x6e\x83\xd0\xc5\xea\x9b\x1c\ \xc6\x7a\x12\xd5\xee\x0c\x9e\xa6\x41\x8f\xab\x91\x24\xa8\x48\xb8\ \xbe\x66\xe3\x35\x39\xb6\xe2\x7b\x40\x04\xf4\x8c\x6c\xa9\x8b\x22\ \x54\x0a\xe1\xba\xd8\xcf\x5a\xe6\xe3\x0d\xda\x2c\xe3\x31\x8a\xd7\ \x17\x22\x44\x6b\x61\x62\xdc\xf4\x9a\xec\x4f\x9a\xd6\xe9\x88\x07\ \xcd\x9e\xb0\x95\xc1\x1b\x1a\xd7\x31\x0f\x5f\xcb\xcd\xe7\xb1\x00\ \x60\x30\x3c\xc1\x04\xcb\x51\xc3\x10\x81\xb8\xc4\x5a\x99\xa1\x81\ \xe9\x24\x30\x4a\xb5\xe1\x58\x6d\x2c\xb8\x07\x91\x30\x58\xae\x73\ \x3d\xb4\xdc\x15\x39\xed\x24\xf2\x93\x51\x45\x33\xc8\x3e\x5f\xed\ \x3c\x39\x20\xf4\x9e\x54\x24\x92\x30\x46\x61\x35\xdd\xae\x3e\x61\ \xc8\xef\xeb\x24\x01\x73\x93\x0a\x99\x04\xed\x82\x58\x9e\x7e\x82\ \x33\x4e\x2e\x7a\x5a\x48\xfa\x74\xc0\x5c\x8c\xcc\xbb\xa1\xc1\x22\ \x68\x6b\xb6\x78\x8d\x20\x1c\x37\xd0\xc0\xbd\xbe\xa3\x52\xb8\x6d\ \xde\xe2\xf0\x15\xfa\xb5\x35\x3f\x48\xda\x48\x41\xf2\xff\x00\x33\ \xc6\x91\x2d\xd8\xc8\x9b\x46\xa5\x36\xa6\x41\x4c\x76\xbc\xa6\x81\ \xd3\x30\x04\x78\x8a\x7b\x58\x48\xa8\x28\x5a\x8c\xa7\xa8\x8f\xa5\ \xe5\x36\x60\x3b\x4c\xd8\x63\xad\x4c\x51\x2e\x2a\x25\x56\xb9\x19\ \xf2\xca\xf4\xfe\x0a\x30\xaa\xae\xcb\x63\x7b\x6d\xe2\x71\x90\x95\ \x1e\x5e\x99\x12\x9a\x1a\xa2\xa6\xcf\x90\x67\x3b\x1a\x95\xd7\xad\ \x4b\x4e\xaf\x72\xed\x66\x17\x16\x12\x1d\x43\xe8\xc1\xb6\xca\xae\ \x47\xfb\xad\x2c\x3b\x6a\x68\x95\xc8\x24\x53\xc5\xc1\xe9\x39\x15\ \x4d\x2d\xe7\xef\x19\x7d\xc4\xcf\x13\x44\xda\x9d\x2e\x7f\xca\x0f\ \x72\xe6\x0b\x6a\xa9\x20\xf2\xe8\xa8\xfd\x6e\x62\x4d\x32\xcf\x65\ \x74\x37\xe9\x7b\x5e\x54\x68\xe0\x17\x4c\x80\x00\x00\x7f\x33\x7d\ \x33\xdb\x46\xbf\xc1\xa2\x09\xd2\xe9\xd5\x9b\x80\x17\xa7\xac\x36\ \xd6\xd4\x21\x4d\x3a\x74\x76\x9f\xff\x00\xcc\x62\x73\xeb\x53\x67\ \xab\x76\x63\xba\xf0\x83\x9a\x75\x42\xf4\x1c\x89\x64\x3a\xac\x6b\ \xab\xb0\x60\x7c\x3c\xf6\x41\x22\xaf\xf1\x1d\x65\x1a\x99\x14\xc8\ \xff\x00\xc0\x08\x6c\x14\x03\x51\x70\x0e\x3d\xa2\xeb\xa0\xab\x4f\ \x69\xf9\x87\x06\x52\x41\x6d\x51\x4b\xe3\x14\x98\xa0\xab\xa7\x50\ \xa7\xf1\x76\x3e\xd0\x75\x5f\x12\xd3\xd2\xa9\xb2\xae\x94\x0e\xbc\ \x03\x79\xc7\xa8\xad\x4c\x90\xc3\xde\x39\x14\xea\x28\x78\x04\xdd\ \xd4\x5e\x91\xee\x3f\x2c\xd7\xe6\x0f\xd5\x58\x35\x5f\x0e\xad\x86\ \xa2\x07\xb4\x72\x69\x34\x5a\x84\x29\x4e\xab\x21\xe4\x5e\x7c\xe9\ \x04\x1b\x64\x11\x1f\xa6\xaf\x52\x9b\x02\x18\xe2\x37\x8f\xf0\x7e\ \xbf\xae\xa3\xe8\x2b\x52\x53\xb4\x87\x1d\xc4\x90\xf9\x94\xab\xe1\ \xbb\xca\xe9\xea\x1c\x5a\xa5\x36\x36\x6e\x90\xeb\x53\xa7\xac\x52\ \x52\xc9\x58\x0b\x91\xde\x12\xdf\xa5\xc9\x74\x65\x39\x87\xa5\x6d\ \xba\x8a\x4c\x79\x0c\x3f\x48\xc6\x52\x3c\x8f\x70\x47\x78\x96\x5d\ \x95\x14\xf6\x33\x6c\x87\x54\x08\xae\xc0\x74\x63\x05\x54\x92\x3b\ \x88\xfd\x70\xb6\xa9\xcf\xac\xca\x78\x01\xba\xc9\x35\x57\x68\x17\ \xe6\x35\x00\x2b\x9c\x0e\xa6\x25\xb7\x0c\x8f\xd6\x52\x17\x0a\x3b\ \x08\x10\xea\x2c\xc0\x11\x8b\x70\x3b\xc0\xa6\xc5\x0e\xeb\xe7\x88\ \x4e\x06\xe3\xb9\xb3\xd2\x0b\xdb\xa0\xc1\xe2\x49\xbb\xf7\x1f\x35\ \xaf\x79\x5e\x9d\xac\xbb\x72\x0f\x32\x03\xf3\x47\xd0\x7b\x10\x0f\ \x1d\xe5\x62\x59\xc9\xc4\xdd\xcc\x3d\x22\xac\x54\xde\xf7\x07\x88\ \xc5\x7c\x5a\xf8\xec\x67\x36\x8c\xa7\x59\x94\xf7\x12\xfd\x36\xa4\ \x11\xdc\x75\x13\x90\xc4\x03\x70\x6d\x36\x95\x66\x4a\x97\x95\xe3\ \xab\x5f\x53\x42\x9d\x3d\x55\x2d\x97\xb1\x23\xca\x67\x0b\x57\x49\ \xa9\x57\x65\x61\x62\x0c\xb7\xe1\x3a\xbb\x54\x00\x1c\xf6\x97\x7c\ \x4b\x4e\x9a\x84\x15\x40\xcf\x7e\xc6\x73\x97\xf3\x5b\xbd\xc7\xce\ \x11\x63\x71\xd2\x3d\x19\x5c\x59\xba\x45\xd7\xa6\xd4\xdc\xab\x0b\ \x11\x05\x0e\x47\x79\xd1\x83\x2b\x6e\x51\xb2\xc4\x86\xe2\xd2\x7a\ \x86\xc6\xc7\x89\x52\x6e\x00\x9c\x30\x19\xb1\xeb\x23\xae\xc5\xaa\ \x33\x90\x01\x27\x89\x45\x58\x5c\xf1\x6b\x4d\x19\x17\xbc\x58\x17\ \xcd\xf2\x21\xaf\x16\xbe\x26\x80\x08\x3d\x44\x0d\x57\xc8\xa6\x35\ \x89\x81\xa8\xcd\x25\x8a\x42\xe4\x89\x25\x53\x99\x4d\x51\x7b\xd8\ \xc9\x6a\x0f\x35\xe6\xe3\x21\x71\xe4\x11\x67\x8b\x08\xe7\x06\xc0\ \x0e\x6d\x04\xa8\x1e\xf2\x05\x6d\x00\x5c\xfe\x91\x57\x3b\xaf\x1a\ \x62\x9c\x67\x10\x30\xc0\xf8\xc4\xc6\xce\x7a\xc0\x4b\xde\xf1\x81\ \x6e\x31\x24\xd3\x91\xbb\xa1\x13\xd4\xd6\xf1\xc9\x4e\xf4\x88\x3c\ \xf3\x31\x10\x83\x8c\xc4\x32\xdd\x21\x78\x66\x51\x4a\x9d\xc6\x45\ \x8c\x6a\x52\x09\x96\x04\xf6\x96\x94\xdb\x08\x36\xe2\x79\x69\xb0\ \x3b\x8d\xc7\xac\xa2\xe0\x12\x47\x24\xc1\x72\x5b\x93\x81\xd2\x5a\ \x80\x49\x65\xb1\x3d\x66\x00\x0b\x0b\x1b\x1e\xf3\x4a\xf9\xbb\x62\ \x0a\x7c\xd2\x0d\x7a\x77\xf3\x28\xf7\x13\x69\xa8\x45\xb4\x7d\x36\ \x20\xee\x60\x08\x1d\xa7\xaa\x20\x70\x5a\x9f\xb9\x1d\xa0\x43\x49\ \x6f\x1d\x8b\x64\x5c\x44\xd3\x06\xe0\xca\x14\x82\x6c\x64\xa0\xe9\ \x02\x0d\xc7\x12\x9d\xbb\x85\xed\x7c\x44\x53\x50\x0e\x0c\xaa\x8e\ \x06\x38\xeb\x31\x5a\x84\x78\x6a\x58\x1e\x0c\xd7\x46\x0d\x8e\xb1\ \xb5\x94\x1e\x9f\x51\x04\x83\xb0\x10\x65\xa8\x28\x18\x1b\x1b\xd8\ \xfe\xd0\x43\xb2\xb6\xd3\x73\xef\x08\xb3\x86\x1b\x4d\xfb\xcf\x06\ \x24\xd9\xb1\x7e\x24\x9d\x9f\x84\x55\xde\x4d\x06\xe2\xa2\x11\xec\ \x7a\x4e\x75\x75\xb3\x30\x72\x05\x8f\x26\x1e\x96\xad\x4a\x44\x54\ \x07\xe5\x20\xfe\x91\x5a\xfc\xd7\x75\xc5\xf9\x1e\xb3\x32\x76\x6f\ \x80\x35\xa9\x8b\x04\x19\xfc\xd3\x29\x9a\xa0\x92\x95\x09\xeb\x83\ \x99\x33\xa1\xc1\x18\xb4\x3a\x4c\x4f\xb7\x79\xbc\x1a\xe8\x53\xd5\ \x55\xb5\xaa\x59\xc0\xe8\xe2\xf6\x8d\x5a\x9a\x5a\xbe\x5a\xd4\x4a\ \x76\x74\x32\x54\xab\x71\x90\x1d\x7d\x66\xd9\x18\x1b\x1d\xbe\x86\ \x63\x0a\x9f\xb1\xd3\xd9\xba\x86\xa1\x58\x13\xc3\xe0\xc9\xf5\x74\ \xaa\x52\x62\xad\x4e\xc9\x6f\x2b\x08\x4b\xb9\x48\x52\x2e\xbc\x11\ \xd0\xcc\x67\xaf\x42\xb3\x05\x62\xc8\xd7\xc1\xcd\x8c\xa2\x41\xac\ \x40\xd4\xf7\x5b\x32\x45\x24\x1b\xa9\xb1\x06\xe3\xb8\x33\xae\x4d\ \x0d\x4d\x32\x2c\x29\x54\x23\xb6\x09\xfe\x93\x97\xaa\xa6\xf4\x2b\ \x79\xd7\x69\xfd\xa6\xf8\xd6\x68\x75\xa3\x79\x1a\x85\x16\x0f\xc8\ \xec\x7a\xc9\x81\xcd\xa5\x88\x55\xe8\xd4\xa5\xe9\xb9\x7f\xac\x90\ \x0b\x37\x33\x50\x2c\xd2\x38\x51\xb1\x8f\x94\x9f\xd0\xca\x09\x64\ \x65\x23\x0c\x3a\xc8\x13\x1b\x73\xd6\x5d\xe5\x7a\x61\x37\x79\x80\ \xf2\x9b\xc2\x98\x7d\x60\xba\xca\x25\xd4\x05\xac\xbc\x8e\xf3\x9e\ \xcc\x0f\x91\xb9\x11\xa2\xa3\xd3\x70\xeb\xf3\x2f\x23\xbf\xa4\x2d\ \x5d\x21\x5d\x7e\xd1\x44\x73\xf3\x0e\xd0\x9d\x20\x6b\xc0\xf1\x89\ \x3f\x88\x03\xfb\x40\xa6\x53\x60\x04\x1b\xf5\xcc\x76\xa9\x09\x34\ \xc3\xdc\x79\x06\x64\xe5\x19\x5a\xe4\x18\xcf\x11\x89\xb0\xd7\x02\ \xd7\x5b\xe6\x51\xa8\x64\xb0\x2b\x71\x79\x3f\x87\xb1\xb0\x6e\x66\ \x92\x6d\x66\x19\xf5\x92\x2c\x93\x7c\x09\xb4\xee\x58\x03\xde\x61\ \xb5\xf3\x68\x68\xb9\xbf\x48\xa0\xd4\x16\x6c\x71\x0e\x97\x33\x6a\ \x0b\x0e\x2f\x79\x94\xc8\xe0\x88\x25\x54\xde\xf4\xfb\x89\x8e\x42\ \x8b\x83\x89\x94\xc0\xe2\x63\x8d\xa6\x67\xe9\x27\xc4\x3b\x89\xb0\ \x84\x1c\xdc\x10\x30\x7a\x4f\x54\x41\xf3\x28\x3e\xd3\xd4\x40\xb9\ \x0d\xc4\xd0\x5f\xa0\x37\xb3\xa1\x37\x53\x91\xd6\x77\x34\xfa\x8f\ \x11\x0a\xee\xb3\x1c\xdb\xa1\x9f\x3d\xa5\xbd\x37\xba\xde\x74\x74\ \xf5\x47\x89\x6b\x8d\xc3\x36\xef\x39\x72\x8d\xf1\xaa\xb5\x94\x06\ \xa1\x09\x18\x71\xc7\xf6\x9c\xa2\x85\x4d\x88\x20\x83\x99\xd5\x35\ \x0a\x81\x53\x9d\xb8\x23\xd2\x2f\x5d\x44\x3a\x78\xf4\xec\x71\x9f\ \x58\x4a\x6c\x40\x86\xed\x66\x3e\xc6\x26\xa2\x6e\x26\xd6\xbc\x33\ \xd6\xf0\x78\xc8\x9a\x64\x9f\x0c\x83\x79\x85\x0e\x6c\x6f\x19\x57\ \x0b\xb8\x0c\x1f\xda\x0a\x3d\xc5\x8f\x22\x21\x29\x67\x43\x82\x31\ \xeb\x0a\xb3\x0f\xb3\x6e\x03\xae\x44\xea\xb2\xfc\x17\x54\x2c\x19\ \xa8\x39\x8b\xd4\x7c\x1e\xaf\x80\x7e\xcd\x55\x2b\x2f\x36\x8f\xea\ \x7d\x58\xf9\xda\xac\x2f\x13\x7b\x9b\x13\x79\x46\xbb\x4f\x56\x8d\ \x4d\xb5\x69\x3d\x32\x3b\x8b\x44\x22\xe7\xbc\xe9\x18\x15\x51\x6e\ \x39\xeb\x13\x78\xc5\x6b\xb1\xcc\xf6\x1a\xf8\xcc\x91\x0d\xed\x30\ \x21\xe6\x3c\xa1\xbd\xed\x0a\x9d\x07\x71\x85\xc4\x92\x65\x52\x7a\ \x46\xd3\x5f\x30\x12\x95\xa3\x4d\x30\x2e\x4c\xf1\xa6\xa1\x6e\x2f\ \x79\x20\xe3\x78\x2b\x9b\x62\xd1\xde\x19\x43\x8c\x0e\x62\xe9\x25\ \x8d\xc4\xb4\x28\x6a\x4a\xc3\xe6\x18\x30\xa6\x13\x49\x37\x1b\x5e\ \xdd\xef\x09\xee\x30\x47\x30\xdd\x76\x5a\xc0\x92\x60\xfb\xc8\x96\ \x54\x01\x88\x36\x8e\x36\xf6\x82\x45\xfa\xc8\x61\x6c\xbe\x63\x8e\ \x90\x76\x6d\x39\x95\x52\xa6\x58\x13\x6e\x20\x94\xb1\x37\x17\x32\ \x58\x52\x8b\x8b\x91\x88\x48\x19\x5b\x72\xe2\x18\x56\x3c\x8b\xc6\ \xd1\xa7\x6c\xdb\xe9\x25\x8d\x54\x56\x5d\xc3\x07\xd2\x67\x84\x7b\ \x46\xaa\xec\x37\x02\xc0\xf4\x30\xc0\xb0\xdc\x32\x3b\x4c\xeb\x45\ \xaa\x1e\xf1\xca\x08\x1c\xcf\x29\xbe\x01\x23\xd2\x1e\x7a\x89\x9b\ \x53\x77\x07\x4d\xbd\x44\x0a\x60\xd8\x83\x04\xb0\x0d\x1d\x4e\xce\ \x09\x3c\xc8\x92\xea\x2f\xb8\x74\x98\x08\x64\x04\x0e\x0c\xda\xb7\ \x0c\x7b\x40\xa7\x92\x41\xeb\xc4\x42\x84\x65\x34\x8a\x92\x41\xb5\ \xa7\xb5\x76\xf1\x11\x8f\x3b\x46\x62\x2a\xb0\x57\x54\xfa\xc7\x6a\ \xce\xf7\x55\xec\xa0\x7b\x40\x91\x5c\x12\xbb\xd0\x0b\x1f\x48\x28\ \xc5\x86\xdc\x02\x39\x10\xee\x02\xb5\x34\xfa\x1f\x58\x28\x55\x10\ \xbd\x41\x76\xbf\x96\xdc\xcd\x03\x11\xc7\x16\x00\xc7\x21\xa6\x7c\ \x87\x9c\x44\x52\x43\x53\x2a\xc0\x9e\xc7\x11\x8b\x4d\xac\xc4\x8b\ \x11\xd2\xd3\x34\x89\x5c\x87\x3f\xc4\x5b\x3b\x03\xb9\x49\x23\xa8\ \xea\x23\xf4\xcd\x4d\xe8\x32\xb5\x3b\xb5\xee\xa6\xf9\x90\xd7\xba\ \x31\x28\x4e\xe1\xc7\xac\xa0\x13\x56\xb1\xdc\x2d\x98\x49\xab\x47\ \x43\x46\xbd\x35\x74\xcd\xbb\x8f\x68\x85\x02\xbd\x22\x40\xb5\x41\ \xc8\xef\x11\x50\x6d\x7e\x6d\xd6\x6b\x20\xd3\xde\x9a\x51\xab\x49\ \xb6\x06\xa6\x4d\x83\x03\xc8\x31\x0e\xb4\x83\x15\xda\xc2\xc6\xd1\ \xba\x5a\x8b\x76\xa1\x54\xdd\x1b\x8f\x43\xde\x06\xad\x19\x35\x4c\ \x30\x7a\xfb\xc5\x35\x13\x4f\x6d\xc5\x98\x7b\x88\x5b\x69\x73\xe3\ \x66\xfd\x44\x41\xab\x64\x0b\x6c\x83\x00\xd5\x24\x47\x16\xad\xd8\ \x8e\x33\x55\x49\x18\xbc\x76\x9a\x93\x51\xa9\xbd\x41\x64\x6c\x11\ \x79\xce\x57\xcd\x88\x16\x32\xdd\x1d\x40\xf5\x36\xbe\x0a\xf1\x9e\ \x66\x6a\x8a\xbe\x23\xa6\xdb\xb0\xab\x38\x16\xb0\x36\xc4\x91\x5d\ \xb6\xec\x73\x6b\x70\x48\x9d\x04\xad\xb2\xd4\x6a\x96\x00\x8c\x5f\ \xbc\x4e\xa0\x85\x01\x2b\x20\x61\xd1\xad\x33\x2b\x55\x38\x66\x5b\ \x36\xc5\x7e\xe4\x41\x66\x4e\x40\x36\x27\x88\xd5\x4a\x40\xf5\x00\ \xf4\x07\x13\xc7\x4a\xdf\xf6\xd8\x3a\x9e\x86\x6b\x60\x4a\xcb\x4c\ \xb6\x09\x5f\xa4\x72\x50\x36\xf2\xb8\x27\xf4\x9e\xf0\x9d\x1b\xcd\ \x4e\xc3\xbc\x62\x2a\x91\xcc\xad\x41\x28\xfd\x56\x1a\x53\x07\xa1\ \x06\x11\xba\x88\xc4\x67\x23\x06\xc7\xb1\x99\xd4\x0b\x64\x5a\x05\ \x41\x71\x79\x4d\xee\x3c\xe8\x2f\xfa\x4c\xfb\x93\x75\x3b\x85\xe5\ \xa5\x1b\x06\xfc\x33\xca\xaa\x3c\xdd\xf9\x12\x96\xa6\x87\x87\xfd\ \xa7\xa9\xe9\x86\xef\x2d\x54\xcf\x31\xd1\x81\x47\xb8\xc6\x23\x03\ \x6d\xaa\x8f\x1c\xba\x05\x04\x37\x8c\xb6\xf6\x94\x7d\x9b\x4a\xaa\ \x0d\x4a\xc4\xf5\xb4\xce\xc3\x82\xa7\x58\x35\xaf\xec\x7d\x63\x34\ \x55\x3c\x3a\xad\xa7\x7c\xab\x65\x62\x7c\x6d\x15\x3b\x6d\x42\xd6\ \xfc\x44\xca\x2a\x6a\x74\xfe\x12\x56\xa7\x49\x78\xfd\x26\x5a\x43\ \xae\xd3\xb5\x2a\xc7\x6f\xca\x72\x0c\x9a\xa2\xb0\x23\x9c\x4e\xf2\ \xd6\x15\x34\x7e\x3d\x22\xa5\x80\xe0\x89\x0b\xeb\xeb\x0c\xec\xa6\ \x7d\x00\xe6\x52\xd5\x64\x73\x1a\xf9\x5c\xe6\x4e\x03\x64\x13\x63\ \xc4\xea\xb7\xc5\x5c\x61\xa8\x52\x6f\x42\x26\x0f\x89\x69\x5e\xc6\ \xae\x8e\x9b\x5f\xa8\x13\x72\xdf\xe3\x39\x1c\x2a\xb7\xb0\xbf\x5e\ \xb1\xb4\x35\x55\x68\x52\x1e\x1d\x46\x53\x7e\x86\x2e\xa5\xb6\x29\ \x36\xf5\x8a\xaa\x01\xa4\xb6\x39\x9d\x19\x74\x0f\xc6\x05\x40\x29\ \xeb\x68\x53\xac\x83\xa9\x19\x8b\x3f\x0f\xd2\xea\x89\xa9\xf0\xfa\ \xc2\xf9\x26\x9b\xf4\x9c\xb6\x46\x3c\x91\x78\x74\x9f\xc1\x3b\xd1\ \x88\x6b\xf7\x87\xe7\x3c\x5b\xfd\x7a\xa6\x92\xb5\x2a\xc5\x2a\x53\ \x60\x46\x26\xae\x9c\x0b\xf9\xad\xe9\x3a\xfa\x5f\x8a\xa5\x75\x14\ \x75\xb4\xd5\xc1\xe1\xbb\x4d\xad\xf0\xc1\x54\x1a\xba\x5a\x81\x93\ \xf2\x93\x99\x7e\xb3\xd5\x9f\xc7\x3a\x98\xa6\x83\x2a\x49\xea\x4c\ \x5d\x4a\x97\xc2\xf1\x1d\x53\x4f\x5e\x99\x21\xe9\xba\x88\xbd\x84\ \x9c\x5a\xd1\x01\xa6\x8c\xcd\x7e\x44\x22\x37\x1b\xf1\x1a\xaa\x42\ \x5b\x82\xdd\x7d\x21\x0a\x5c\x93\xc4\x96\x10\xaa\x44\xa3\x4e\x2e\ \xae\x2d\xc0\xbc\x3a\x1a\x56\xa8\xe0\x66\xde\x92\xa7\xd2\xa5\x32\ \x02\xb9\x3b\x47\x9b\xde\x66\xd8\x64\x44\x2a\x1e\x5b\x33\x1d\x7c\ \xb7\x5c\xc2\xab\x4c\x29\x22\xf9\xed\x3d\x48\x32\x9c\x1c\x70\x62\ \x93\x5c\x93\x68\x40\x77\x95\x9a\x48\xf9\x5c\x18\xa6\xa0\x47\x73\ \x2d\x58\x2a\x0d\x65\x37\xe2\x30\xaa\x11\x7c\x1b\xc5\x28\x20\x95\ \xe2\xc2\x32\x98\x62\x38\xb5\xa1\x53\x02\x80\x6c\xb7\x8d\x4a\x78\ \xcc\x24\x5b\x1c\xc6\x20\xfa\xcc\xda\x70\xbd\xa6\x6d\x35\xb7\x39\ \xbf\x31\xc5\x6f\xd2\x60\x4e\x6d\x0d\x25\xb2\x6d\x6e\xc2\x10\x6b\ \x8b\x18\xd4\x5d\xc3\x69\xfa\x41\x34\xec\x30\x47\xf5\x92\x4f\x50\ \x67\x88\x5a\x72\x43\x15\xef\x18\x13\xbc\xc5\x5d\xaf\x83\x1d\x40\ \xaa\x45\x88\x7e\xbc\x19\xea\x14\xce\xfb\xdb\x1d\xe1\x55\x42\x54\ \x12\x63\xa8\x1f\x09\x77\x1c\x5c\x58\x02\x25\xf1\x24\x28\x6a\x6a\ \x01\xc6\x0d\xa7\xbe\x20\xe7\xc6\x64\x41\x60\x05\xaf\x1f\xa6\x01\ \xb5\x60\x91\x6d\xa6\xe4\x1e\x24\xf5\xd7\xef\x0b\x35\xc0\x26\xf7\ \x8c\xf4\x12\x87\xcc\x0b\x62\x15\x64\x3e\x20\x60\x49\x53\x05\x94\ \x10\x40\x3c\x0e\x23\x68\xdf\xc2\x05\xfc\xaa\x39\xbc\x68\x7a\x97\ \x01\x81\xb1\x3c\x4a\x1e\xbd\x45\xa6\x00\x6e\x45\x8d\xe0\x04\x0c\ \xbe\x22\x5a\xdd\x04\xc5\x56\xcb\xf4\x13\x24\x24\x39\x36\xa7\x7b\ \xda\xe0\x8e\xf2\xc1\xa6\xa2\xfa\x61\xa9\xac\xcc\x2e\x6c\x42\x8e\ \xb2\x52\xee\x9f\x59\x55\x4c\xe8\xd6\xc6\xc6\x93\x5d\x87\xa1\xff\ \x00\x82\x54\xb9\xd5\xa9\x7d\x9f\x57\xe5\x38\xe4\x1e\xe2\x2f\x57\ \x4f\xc4\xb3\xa8\x19\xe4\x4b\x9e\x99\xab\x4b\x16\xdd\x4f\x23\x3d\ \x24\xed\xba\x9d\x99\x94\xdb\x83\x89\xa9\x46\x21\x2a\x41\x0d\xe9\ \x69\x5d\x6b\x57\xd1\xad\x4f\xfb\x88\x33\xea\x22\x9d\x45\xc8\xb9\ \x23\x91\x37\x4f\x50\x53\xb1\xe8\x0d\x8f\xb1\x8d\x09\x2a\x5b\x18\ \x98\xa0\x11\x8c\xc7\x6a\x69\x78\x75\x88\xe5\x4e\x57\xda\x62\xa0\ \x02\x3a\x03\x63\x6b\xc6\xd0\x04\x5c\xf5\xb4\xd0\xb7\xf5\xcc\x6d\ \x2a\x64\xb0\xdb\x9b\x98\x1c\x74\x59\x52\xad\x34\x57\x60\x1b\x68\ \xb1\xb4\x31\x47\xc4\xa4\x29\xbb\x29\x61\xc1\xeb\x26\xae\x0a\xd5\ \x01\xae\x2c\x04\x62\x54\x26\xc1\xb3\xd8\xce\x6d\x27\xaf\x45\xe9\ \x36\xc7\x42\x07\x79\x89\xb9\x45\xc1\x27\xb6\x65\xee\xde\x22\x58\ \x9b\x38\x92\xf9\x77\x6d\x74\xb1\xf4\x8e\xac\x32\x86\xab\x70\xdb\ \x55\x77\x2f\x63\x18\xd4\x69\xbf\x9a\x9a\xdc\x7b\xc0\x5a\x2a\xc3\ \xee\xd8\x37\xfb\x78\x30\x7c\xe8\xf8\x25\x48\xe9\x04\x30\xb4\x86\ \x0b\x30\x3d\x88\x8d\xa6\x94\x48\xf9\xf3\x31\x4a\x56\x4b\x11\x62\ \x3a\xc4\xbd\x36\x43\x9e\x3a\x19\x25\x26\x9a\xdb\x92\xcb\xe9\x25\ \xad\xe1\x53\xa8\x79\x36\x86\x97\x23\x98\x15\x85\xf9\x1f\x59\x44\ \x16\xac\x9c\xad\x30\x26\x78\xce\x06\x2c\xbf\x48\xa3\x4c\xf4\x83\ \xb8\x64\x13\xc4\xd6\x0d\x3d\x2b\xb1\x3b\x4b\x1f\xd6\x1b\x5f\xc3\ \xc9\x91\xb3\x5b\x20\x62\x52\xb5\x2f\x44\x1e\xa2\x56\x26\x51\x52\ \xc8\xc0\x99\x56\x88\x86\xa0\xd4\xc9\xeb\x26\xa4\xc3\xc4\x22\xf1\ \x9a\x5b\xad\x47\x1c\x62\x14\xc7\x47\xe0\xf9\x4a\xd4\x09\xc0\xff\ \x00\xf2\x73\xab\x1d\xa4\x8b\xd8\x83\x2d\xf8\x61\x23\xe2\x2c\x07\ \xe3\x53\xfd\xe4\x5f\x11\xf2\xea\xaa\xaf\x19\x33\x33\xd3\x7c\x49\ \x55\xef\x6b\x8e\x62\xc8\x06\x83\x10\x4f\x95\xa6\x38\xc0\x6b\x75\ \x9b\x48\xe2\xa2\x5f\xf0\xde\x75\x60\x8a\xa4\xf8\x6a\x3b\x08\xaa\ \x98\x44\xb7\xe5\x87\x52\xe3\x9e\xe6\x05\x67\x00\x80\x7a\x0b\x44\ \x10\xe4\xa9\xb1\x98\x46\x16\xd3\x4f\x98\x81\xde\x63\x35\xd9\xad\ \xc7\x48\x81\xa1\xc4\xa6\x86\xa6\xad\x16\x1b\x18\x8f\xac\x9e\x98\ \x8d\x45\xc4\x29\x75\x29\xfc\x4d\xb6\xed\xaa\x8a\xd1\x8b\x53\x49\ \x54\x8d\xf4\x54\x13\xd4\x62\x73\x55\x45\xbd\x63\x29\xa9\x00\x9f\ \xd2\x67\xf3\x1a\xd7\x4b\x6e\x89\xbe\x5d\xde\x99\x84\x94\xf4\xca\ \x46\x09\xf7\x9c\xca\x65\x83\x00\x25\x4a\x48\xb3\x1b\x93\xd0\x4c\ \xd9\x87\x56\xd4\xa8\x94\xd2\xc9\x60\x4f\x6e\x64\xa5\xae\x6d\x6b\ \x09\xe1\xcd\xcc\x24\x5c\xc1\x15\x5d\x3e\xf8\xf6\x8b\x75\x24\x8b\ \x0c\x4a\xf5\x20\x1a\x9f\x41\x14\x56\xe2\x32\xa2\xa9\xad\xb3\x1a\ \x01\xbd\xc6\x67\x90\x0e\xb1\xa9\x81\x89\x5a\x93\x0a\x60\xbb\x1e\ \x09\x8c\x44\x2a\x6e\x04\x71\xa3\x82\xc2\xc4\x43\xa4\xa7\x1d\x61\ \xab\x0a\xdb\xe7\x20\x64\x46\x2a\x81\xd2\x57\x4e\x80\x75\xc0\x13\ \xcd\x40\x8e\x44\x34\xe2\x62\x16\xd8\x3f\xb4\xc0\xa4\x62\xf1\xde\ \x1d\x8c\xdd\x97\x32\xd4\x4e\xd6\xbe\x08\xfd\x63\x0d\x2d\xea\x5b\ \xaf\x58\xd4\xa7\x9b\x81\x0f\xe5\x86\x94\x4d\xe5\x16\xbd\xe0\x06\ \x1b\xc6\x39\x8f\xae\x9f\x88\x71\x12\x40\xc3\x5b\x89\xa0\x6b\x53\ \x25\x2c\x39\xbf\x31\x35\xed\x75\x50\x7d\xe5\xda\x70\x0d\x30\x4f\ \x04\x49\x6a\x04\x04\x9f\xc4\xd9\xf6\x84\xaa\x94\x8a\x17\x4f\x51\ \xfa\x9c\x09\x2d\x3a\xce\x0e\xd6\x1b\xd2\xfc\x1e\x92\xaa\xe2\xd4\ \xd5\x3b\xe4\xc8\xf6\xe4\x80\x26\xa3\x34\xc3\x4e\x95\x67\xbd\x37\ \xf0\xdf\x8b\x37\x1f\xac\x23\xa6\xa8\x8a\xca\xe0\xff\x00\xe4\x78\ \x8a\x08\x15\x6d\xd6\x59\xa4\xad\x56\x8a\x94\x24\x38\x23\xe5\x6c\ \x89\x53\x13\xd3\xbe\xf0\x83\x0a\x25\xa1\x54\xe8\x5d\xba\x3b\x00\ \x3d\x6d\x01\xf5\x3a\x4c\xee\xd2\x1b\x9e\x76\xb9\x02\x05\x5d\x4f\ \x8a\x40\xb2\xa2\x01\xe5\x51\xc0\x87\xa8\x8d\x87\x70\xa4\x46\x7b\ \x98\x34\x2a\x1f\xb6\x3a\xb0\x26\x9b\xf9\x48\xec\x0c\x68\x57\x70\ \x76\xdd\x89\xf2\x81\x2a\xd2\x50\x55\xda\xf8\x25\x56\xe7\x77\x53\ \xd2\x3a\xb1\x2e\xa3\x4d\x56\x85\x54\x6b\x82\x08\xb1\x83\x54\xb2\ \xab\x73\x6b\xdf\xda\x55\xa9\x74\xac\xbb\xd6\xf6\x56\xdb\xff\x00\ \xb8\xb6\xfb\xd1\x76\xb7\x16\x3e\xb0\xd5\x88\x55\xcb\x8b\x6d\x57\ \x2b\xdc\x74\x8b\x61\x48\x97\x56\xa7\x62\x47\x43\x28\x6a\x1b\x5c\ \x38\xbd\xbf\xa4\x0a\xb4\xc8\x20\x91\x71\x37\xa0\x22\x9d\x3a\xfa\ \x7b\x2b\x90\xf4\xf8\xdc\x39\x10\x3c\x07\xdb\x8b\x37\xb6\x61\xd2\ \x5f\x0a\xa8\x37\x3e\xd1\xb5\x29\xec\x7f\x2f\x07\x22\x5b\x80\xaa\ \x48\x6c\x63\xa9\x7d\xd9\x04\x76\x9e\x0c\x7f\x18\x0d\x0d\x50\x5c\ \x6d\x3c\xf4\x30\xb4\x8e\xbd\x41\x50\xaa\xbf\x55\x16\x3d\xa2\x76\ \xbd\x36\x00\xda\xd3\xd5\xd5\xc6\xd6\xb1\xc7\x48\xd5\x60\x52\xcd\ \xf2\xdb\x1e\x90\x4d\x4a\x81\x8d\xaf\x66\xe9\x18\xc8\x19\x6e\xa2\ \xec\x39\x88\x09\xb7\xcd\xd3\xa1\x8c\x15\x0f\x3f\xac\x08\x30\xa6\ \xf9\xbc\x6a\x57\x0c\x36\xd5\x1b\xc7\xaf\x22\x0d\x45\xde\x37\x01\ \x99\x23\xb5\x8e\x71\x19\x35\x78\xbf\x65\x36\xce\x9d\x8e\xef\xca\ \x79\x85\x41\xf7\x83\x4a\xa8\xcf\x79\x1d\x17\xe0\xde\xc7\xbc\xa8\ \x55\x4a\x98\xa9\x86\xe8\xe2\x16\x26\xd4\xa6\x69\xb5\x8f\xd2\x2c\ \x8b\xe0\xca\xac\xe5\x36\xb6\x48\xca\x9e\xf1\x55\x2a\x02\xdb\x58\ \x7b\x19\x2c\x4b\x50\x15\x89\xa9\x63\x93\x8f\x59\x46\xa1\x6f\xc4\ \x99\xc1\xb7\x13\x50\x52\x88\xdb\xcf\x98\x77\x11\x9a\x62\x48\x23\ \xa1\x80\x97\x56\xdb\x7c\x4a\x29\x2a\xf4\xc1\xbf\x11\xa2\x05\x2e\ \x2b\x03\x28\xa2\x0f\x8a\x4f\xa4\x53\x21\x5a\x9d\x70\x65\x09\xe5\ \x63\xeb\x33\x5a\x87\x7c\x35\xad\xf1\x2a\x57\x3c\xa9\x1f\xb1\x89\ \xf8\xb5\x8e\xba\xaf\x4b\x18\xcd\x08\xbf\xc4\x34\xe6\xfd\xff\x00\ \xac\x9f\xe2\xee\x06\xba\xae\x7a\xc2\x7f\xd9\x7c\x42\xf8\xf2\xcc\ \xd3\x79\xaa\xdb\xb8\x23\xf6\x9e\x66\x04\x83\xf5\x99\xa7\xc6\xa1\ \x07\xfb\xa7\x4f\x8c\x91\xa9\x37\x7c\x77\x93\xea\x0f\xde\x1e\x9d\ \x23\xb2\xd5\x14\x1f\x79\x35\x5b\x9a\x84\xde\x6a\x07\x94\x80\xd7\ \xed\x99\x88\x73\x9f\xac\xf5\xac\xa2\xe7\xe6\x33\x40\xe3\x1c\x48\ \x1d\x44\xd8\xe6\x53\x4c\x5c\xfa\x49\x14\xdb\x89\x45\x16\xb4\x29\ \x8a\x54\x0e\x82\xe6\x39\x69\x91\x4c\x0f\xac\x4d\x23\x91\x6c\x93\ \x2c\xbd\x86\x32\x66\x6d\x6a\x16\x10\x27\x98\x8c\xcd\x59\xa0\x77\ \x9a\x9f\x35\x8f\x02\x65\x0c\x0b\x01\x98\x62\xf7\x00\x0e\x66\x2d\ \x8d\xf1\x18\x8b\x77\x03\xd6\x05\xb5\x6c\x1f\x3d\x05\xa0\x1c\x8b\ \x5b\x13\x5f\x35\x18\xf7\x33\x6d\xe5\xe3\x32\x25\x05\xef\x1d\x49\ \x05\xc5\xc4\xc5\x1e\x91\xf4\x56\xe0\xd8\x71\xcc\x96\x36\x9a\x59\ \x4a\x9c\x82\x63\x52\x8d\x88\x00\x62\x10\x51\x61\xc6\x63\xe8\xf6\ \x23\x13\x16\x9c\x7a\x9a\x01\x1b\xb6\xe2\xc7\x89\xb6\xb0\x9a\x38\ \x99\x69\x3b\xd0\xea\x38\x82\xb4\xec\x73\x6b\x4a\xef\x61\xe9\x17\ \x52\xd6\xb8\x88\x24\x80\xa3\x11\x0f\x72\x63\x2a\x3d\xb9\x8b\x73\ \x78\xc0\x59\x03\xaf\x1d\x62\xd9\x43\x10\x17\x83\x0e\xa5\xca\xd9\ \x78\xea\x66\x69\x47\xdf\x0e\xbf\xc4\xd0\x3f\x50\x45\x2d\x1a\xaa\ \xfc\xc7\x32\x15\x1b\xdc\x0e\x49\xc9\x3e\x92\xad\x5b\x2b\xd7\xb2\ \xe4\x5a\xc6\x22\x90\xdb\x4e\xa3\x11\x9e\x04\xa2\xa9\x75\x55\x37\ \x39\xb9\xb0\x82\x78\x04\x64\xf5\x99\x50\x7d\xe1\x26\x62\x9f\x29\ \x06\x68\x34\x73\xbb\xf4\x10\xe9\x30\x15\x40\xea\x62\xbd\x4f\x3c\ \x42\x44\xbb\x82\x0f\xac\x90\x5f\xe6\x37\xb4\x34\xa2\xd5\x08\x41\ \x8b\x9e\x4f\x48\xd6\x14\x41\x6f\x29\x66\x27\x17\x8e\xa6\x1a\xc4\ \x00\x32\x2d\x89\x6a\xc5\x34\x91\x17\x46\xe1\x01\x0c\x9c\xb7\x78\ \x9d\x45\x86\x8c\x29\x39\x67\xfe\x23\x34\xc4\x96\x75\xb7\xcc\xb7\ \x81\xab\xb0\xa5\x44\x30\xbf\x3c\x7b\xcc\x10\x20\x54\x55\x43\x90\ \xd9\x36\x8d\x5a\x20\x0e\x2f\x7e\xb1\x55\x86\xc7\x5c\xf2\xb2\xbd\ \x3b\x86\x5d\x80\x82\x40\xb8\xf6\x8d\x51\x05\x6a\x65\x18\xae\xdf\ \x29\x89\x23\x1b\x4f\x4e\x27\x66\xb2\x2d\x45\x06\xdd\x33\x21\x65\ \x55\xa8\x77\x10\x6d\xd2\xd2\x95\x58\x80\x95\x26\xc4\x47\x53\xda\ \xf4\xb6\x91\x72\xb9\x1e\xd0\xaa\xa5\x2d\xd7\x03\x06\x7a\x89\xa6\ \xac\x08\x53\x7f\x78\xe8\x01\x40\xc4\x6d\x10\xfc\x12\x56\xf6\xe2\ \x3d\xe9\xa9\x17\x55\x36\x39\x10\xa9\xff\x00\xa7\x6b\x1e\x6d\x2d\ \x38\x9d\xcd\xe9\x15\x61\x7f\x78\x29\x4a\xf4\xb7\x0c\xd8\xda\x32\ \xab\x2e\xf2\x00\xc4\xdd\x21\x09\x58\xa8\x38\x22\x41\x29\xa8\xc8\ \x76\x5a\xe0\x72\x0c\xf0\x2b\x50\xee\xa6\x40\x3d\x54\x98\xcd\x6d\ \x34\x35\x4b\xa1\xf2\x9f\xd8\xc8\x88\x21\xf0\xa2\x6a\x76\x2a\x97\ \xa8\xf4\xec\x73\x6e\xc6\x05\x65\x5a\xab\xbd\x0d\x9b\xb4\x6d\x17\ \x46\x01\x2a\x8d\xc8\x71\xea\x22\xea\x51\xf0\xaa\x6f\xa5\xe6\x43\ \xdf\x91\x08\x89\x45\x37\xb9\x36\x3d\xa3\x43\x11\x99\x8e\x01\x03\ \x03\xd0\xf6\x98\x6e\x05\x9b\xe8\x44\x7d\x4e\x86\x82\xb2\xdc\x52\ \xaa\x7c\xa7\x83\xda\x7b\x5c\x9e\x15\x5d\x87\xe8\x67\x3d\x2a\x6d\ \x39\xfa\x4e\x9e\xa1\x8e\xa3\x41\x4e\xaf\xe2\x4c\x1f\x69\x9b\x32\ \x9d\xd8\x91\xbc\xc9\x7e\xa2\x01\x00\x1e\x32\x61\x2d\x50\x78\xcd\ \xf1\x78\x37\x0b\x93\xcc\x51\x46\x9e\x73\x34\x82\xab\x88\x7b\xc0\ \x6f\x96\xfe\x90\x82\x86\xe7\x12\xd0\xf1\x6d\xf7\x07\x91\x6b\x18\ \x6c\x08\x22\xfd\x66\x56\xa4\xa1\xce\xd7\x06\x36\xa8\x36\xa6\x0d\ \xae\xa2\xfe\xf0\x26\xfc\x2d\x77\x6b\xa9\x9e\x36\xa3\x37\xbf\xfc\ \xbc\xe5\xfc\x4d\xfc\x4d\x6d\x66\x1f\x98\xda\x77\x3e\x14\xa1\x3c\ \x6a\xa4\x8f\xbb\xa6\x17\x3d\x3a\xcf\x9f\xd4\x5d\xaa\xde\x3c\x7d\ \x57\xc2\x1d\xad\x8c\xdc\x4f\x69\x89\x3a\x9a\x79\xfc\x42\x63\x8b\ \xe6\xfd\x66\xe9\xb1\xa9\x5b\xf4\x37\x9d\x18\x0a\x90\x37\x9e\x6c\ \x24\xe4\x02\xf6\x0b\x2a\xf0\xc0\x4c\x75\x30\x3c\x32\x03\x36\x31\ \x89\x24\xcd\xfe\xa6\x00\xb0\xc4\xf0\x37\x36\xb5\xa1\x14\xc9\x3d\ \x66\x2a\x92\x4f\x61\x10\xf0\x36\x8e\xa6\x48\x39\xc0\x8a\x20\x0e\ \x05\x8c\x35\xb9\xb7\xef\x24\xaa\x95\x43\x71\x6e\x2f\x28\x4a\x97\ \xeb\x99\x2d\x02\x03\x0b\xc2\xa6\x40\x60\x2d\x33\x63\x4b\x43\x5f\ \x30\x86\x56\xf0\x53\x2b\x34\xe0\x58\x4c\x13\x54\x8e\x23\xe8\x9c\ \xb3\xdf\x0a\x24\x61\x8d\xed\x28\x7b\xad\x15\x4e\xa7\xcc\x60\x5e\ \x02\xe6\xf1\xaa\xb7\x36\x27\xd6\x29\x32\xb9\x8e\xa4\x56\xdb\xbb\ \x19\x13\x42\x00\x36\x8e\x4c\xf0\xb2\xb6\xdb\xc2\x07\xca\x4f\x5e\ \x91\x5b\x6e\xd7\x22\x65\x29\x56\x51\xdb\x11\xf4\xcf\x97\x9b\xc8\ \x46\xec\xca\x68\x30\xbe\x4c\x2c\x2a\xd3\xd7\x89\xa6\xc2\x0a\xb0\ \xe2\xf0\x96\xd7\x3d\xa6\x5a\x65\xc5\xba\x40\xb8\x06\x6d\x42\xaa\ \x31\x98\x91\x58\x74\x12\x01\xd4\x53\xb6\x46\x04\x49\xda\x83\x9b\ \xb1\xfd\xa3\x5e\xa8\xc8\x36\x37\xef\x24\xab\x7d\xdc\xe6\x6a\x0a\ \xc7\x2c\xcd\xe9\x19\x49\x76\x2d\xfa\x99\x9a\x74\x0e\x7d\xa1\xb8\ \x24\xb1\x1f\x84\x58\x4d\x54\x8c\xd4\x21\x99\x87\x04\xc7\xd4\x1f\ \x70\x85\x47\x39\x22\x4b\x54\x5e\xa0\x51\xc5\xe3\xdd\xf6\xb5\xbe\ \x82\x41\x2d\x54\x22\xf6\xfd\x7d\x24\xfb\xf6\xb8\xed\xd0\x4e\x93\ \x85\xa8\xbb\x4e\x18\x7e\xf2\x2d\x46\x9f\x63\xee\x69\xa9\x45\x8c\ \xb5\xcd\x8d\xed\x1c\x8b\xb5\x48\xeb\x69\xba\x0a\x62\xbd\xc9\x36\ \x5a\x62\xec\x7d\x21\x6e\xd8\x77\x5b\x27\x8b\xc2\xa6\x85\xf2\x2b\ \x37\x41\x0e\x8d\x66\xa7\x95\xb6\x3d\x20\xa3\x23\x52\x65\x62\x43\ \x13\x81\xd2\x02\x15\x14\xce\xeb\xf3\x69\x15\x09\x5c\x9a\xfe\x23\ \x63\x71\xb1\x23\xb4\x76\xae\x89\x66\xa2\x14\xee\x5b\x1b\xfe\xb2\ \x64\xdb\x73\xb7\x6b\x02\x2f\x2d\x2f\x7d\x10\xaa\xa4\x6f\x41\xb6\ \x66\x98\xe7\xd5\xdc\xc3\x79\xe2\xf6\xbc\xa3\x42\x05\xc1\xbd\xba\ \x13\x0e\x9b\x52\x75\x74\xaa\x40\x37\x06\xe0\x4c\xa7\x4d\x69\x3e\ \x0b\x14\x6c\x5c\x71\x1d\x0a\x43\x21\x52\x09\xb7\x4b\xc4\xd6\xa4\ \x19\x33\x9e\xc6\x61\xa9\x4d\x5b\x76\xc2\x41\xf9\xae\x61\x23\x80\ \xde\x54\xb8\xea\x2f\x32\x52\xf8\x24\x5f\x1b\x84\xc3\x4a\xc4\x15\ \xe2\x74\x94\x23\xe4\xd1\xb7\xad\xe1\x78\x49\x7b\x9a\x63\xdc\x18\ \xfe\x96\x21\xa5\xe5\x5d\xad\xc7\xf1\x0c\x2d\xaf\x73\xeb\x28\xa9\ \x4e\x88\x1c\x11\xed\x06\x9a\x50\x2c\x01\xa8\x57\xd4\x88\x6a\xc7\ \x3a\xaa\x1c\xf3\xcd\xa6\x69\x14\xfd\xa0\x03\x3a\x3a\x9d\x20\x03\ \xcb\x55\x4c\x90\x52\x6a\x55\xd5\x9b\x76\x0f\x36\x9a\x97\x46\x02\ \xb5\x15\x0c\x40\x27\x3d\x27\x3b\x50\x1e\x95\x42\xa6\xfe\x97\x13\ \xb6\xf4\xc3\xb6\xce\x09\xe2\x4f\xa9\xa2\x19\x76\xba\x82\xc2\x3c\ \x6a\xb1\xc9\x0e\xd6\x17\x1c\xe7\x12\xa4\x62\x2c\xdd\x0f\x22\x67\ \x82\x43\x61\x41\x11\xbb\x36\xa0\xb8\xe4\x76\x8d\xac\xc3\x1a\x90\ \x7a\x78\x1e\x6b\x5f\xde\x46\xa0\x5c\xab\x8b\x03\xc1\xed\x28\xa7\ \x54\xa2\xe4\x58\x29\xfd\xa2\xab\x8f\x19\x77\x29\xcf\x22\x50\xd4\ \xf5\x6c\xad\xb5\xad\xb8\x71\x2e\xd0\x31\x6a\x5e\x1b\x7e\x30\x44\ \x89\x57\xc4\xa6\x77\x5c\x3d\x3f\xe2\x57\xa2\x3f\x79\x48\x62\x3c\ \xbc\x13\xd4\x68\xc7\x73\x29\xe8\x63\x2a\xb5\x8d\xbb\xc5\x31\x03\ \x57\x50\x0f\xcc\x67\x9c\x8b\x2d\xcd\xc9\x18\xb4\x50\xd1\xb3\xdf\ \xbc\x68\xf9\xf1\x9c\xc4\x28\xd8\xa3\x70\xb1\x30\xc5\x4f\x0d\x09\ \x1f\x35\xbf\x48\x54\xa0\x05\x0a\x6a\x30\xbe\x6c\x07\x4b\xc7\xf8\ \x85\xc8\xf2\x2f\x16\xe2\x45\xa7\x7d\xd4\xec\x47\x19\x12\xba\x08\ \xc6\x90\x63\xde\x66\x98\xe8\x15\x55\xf8\x55\x56\x16\x06\xab\x58\ \x5f\xf4\xfe\xf3\x85\x5a\x99\x46\x20\x89\xdc\xf8\x99\x14\xa8\x50\ \xd3\x9c\x95\x50\x48\xff\x00\x9f\x59\x00\x60\x7c\xb8\x03\xa1\x87\ \x1a\x6b\x98\xd4\x1c\x2d\xca\x10\x3a\x13\xd6\x2e\x8d\x32\x2a\x3b\ \x12\x06\xd4\x32\xdd\x4a\x30\x24\xb3\x7b\x66\x4f\x45\x2d\xa7\xaa\ \xe7\xad\x97\xfa\xff\x00\x49\xd3\x58\xc7\xab\x28\x0e\xa9\x6c\x01\ \x68\x35\xd5\x45\x90\x74\xc9\xf7\x95\xb2\x87\x6d\xd6\xb9\x1d\x62\ \x58\x77\x07\x37\x37\x94\xa5\x1b\xd3\x00\x5e\xdc\xc0\x64\xed\x89\ \x55\x54\x02\xd8\xc7\x78\x01\x05\xb2\x39\x3c\x4d\x0c\x4f\xe1\xde\ \xdd\xa0\x65\x49\x95\xb5\x88\xb5\x80\x8b\x65\xbf\x00\x48\x61\x74\ \x49\xdd\xd6\x3d\x01\xb8\x69\xea\x48\x37\x74\x85\x4a\xf7\xb7\xe8\ \x64\x56\x53\x3e\x51\x88\xc6\x50\x73\x25\x57\xe9\x7c\xc7\x50\x0c\ \xc7\x1c\x0e\x4f\x49\x8b\x09\xd4\x55\x77\x6f\x3f\x2a\xe4\xcc\x66\ \x2e\xe5\x8f\x53\x31\xdc\x30\x08\x83\xc8\x3f\x73\x0a\x9a\xdc\xe4\ \x8f\xd6\x64\xb5\x49\xbd\xa5\x14\x06\x7d\x04\x56\xdd\xbd\x89\x8d\ \x63\xb1\x6d\x7c\x99\x13\x71\x71\xd4\x09\xe2\xc1\x41\x26\x29\x0b\ \x0c\xf2\x0c\x26\xcd\x85\xbe\xb0\x4d\x0c\x08\x36\x19\xed\x19\x4f\ \x76\x39\x81\x45\x0e\x4d\xa3\x40\x3b\x6d\x0a\x61\xb4\xde\xc6\xd2\ \x80\xd8\xc1\x90\x8f\x2b\x47\x23\x5c\x5f\x2a\x04\xcd\x85\xad\x7d\ \xc6\xdf\x58\x97\x20\xfc\x98\xb7\x30\xea\x54\x26\xea\x06\x22\x2a\ \x60\x58\x5c\x7b\x46\x02\xab\xbd\x98\x08\x58\xa8\xb7\x07\xcc\x20\ \xd6\x5d\xf6\x37\xb3\x5a\x0d\x22\x43\x8e\xe0\xcd\x05\x5a\x62\x12\ \x99\x27\x98\x35\x8e\xda\x03\xb9\x30\xb5\x3b\x52\x92\xb2\xf0\x7a\ \x49\xf5\xd5\x10\x05\x5d\xc4\x62\xf6\x84\xec\x82\x90\x53\x5e\xf7\ \xdc\x62\xea\xb7\x9a\xfc\x92\x7f\x48\x34\xeb\x28\x0f\x61\x6f\x58\ \x96\xa9\x99\xac\x65\x47\x89\x75\xc1\xf3\x09\xea\x8f\xe2\x27\x9b\ \xeb\x21\x15\xc2\xb5\xc5\xe3\xe8\xb8\x76\x05\x45\xef\x8b\x47\x16\ \xae\xd2\xaf\x81\xa0\x76\xe7\xc4\x60\x3e\x91\x15\x07\x98\xe6\xe3\ \xa4\xa3\x55\x55\x69\x6d\x41\x94\x45\xb1\xf7\xeb\x14\x1f\x4b\x56\ \x9e\x2a\x05\x61\xd0\xcc\x94\xce\xd6\xb5\xb9\xbc\x63\xfc\xa0\xfa\ \xe6\x0d\x65\x5d\xff\x00\x30\x2b\xe9\x1b\xa7\x56\x61\x8b\xb2\x8e\ \x45\xb8\x88\x0a\x9e\xf8\x32\xfa\x7b\xa9\xd0\x14\x70\xc4\xae\xe3\ \x7e\xfd\x20\x53\xd1\xa1\xfb\xf6\x0c\x29\xa8\xbf\xbf\xa4\x9c\xbb\ \xf8\xc6\xaa\xb1\x56\xbe\x31\x0f\x4f\x87\xd3\x54\x76\xba\x92\xac\ \x56\xdb\x4e\x66\xa3\xb5\x1e\x50\xb2\x13\x90\x78\x99\xa8\x15\x05\ \x64\xa8\x88\x2c\x40\x37\x1d\x0f\x69\x55\x25\x6a\x83\x75\xec\x4f\ \xcc\xb6\xc1\x81\x12\x84\x75\xbd\x34\x43\x7e\x41\x13\x45\x2a\x96\ \x05\x4e\xc6\x1d\x08\xe6\x15\x3a\x4b\x45\xbc\xd7\x5b\xf5\xe6\x53\ \x75\xe4\x58\x89\x9d\x24\xd3\xa7\x52\xd9\xbd\xbd\xe6\x9a\x60\x1b\ \x96\x23\xeb\x1a\x45\xc7\x97\x77\xf4\x8b\x20\x29\xbb\x6d\xb7\xa9\ \x81\x60\x03\x90\xe0\xfa\x77\x9a\x28\xab\xe4\x28\xbf\x62\x26\xaf\ \x86\xdc\xd4\xb7\xa2\x88\x64\xd3\xe0\xef\x23\xbc\x93\xcf\xa7\x0d\ \x44\x86\x4e\x27\x39\xe9\xbd\x26\xba\xef\x51\xd8\xf1\x3a\xd4\x8e\ \xc5\x21\x03\xd4\x5f\xfc\xb3\xfa\x44\xbd\x64\x6b\x91\x65\x6e\xc4\ \x71\x29\x6a\xb1\x3d\x20\x1b\x6b\x32\xe7\x9b\x88\x55\x28\x53\xaa\ \xbb\x90\x92\x61\x91\xbd\x0b\x6c\x17\x5c\xdd\x4c\xf2\xdb\x91\x90\ \x73\x24\xe4\xea\x69\x32\x30\x6b\x9e\x6d\x78\x55\x55\x7e\xcf\x49\ \xad\x62\x6f\x73\x3a\x1a\xb4\x15\x54\xa1\xf9\xb9\x53\x39\xf5\xc5\ \x92\x92\x31\xb7\x3c\xcd\xcb\xac\xd8\x90\xa7\xde\xba\xde\xe0\x83\ \x68\xa4\x2a\x0e\xcb\x67\xbc\x7a\x63\x52\x86\xff\x00\x8a\xd2\x6a\ \xa7\x6b\x92\xc3\x83\x37\x19\x32\xde\x70\xea\x72\x30\x47\x78\x62\ \x9e\xcd\x75\x35\x19\x5b\x8b\x45\x80\x19\xb7\xa9\xbe\xde\x44\x7e\ \x8e\xf5\x6a\xa1\xfc\xad\x7f\xa4\x14\x72\xb5\x04\x7d\xb2\xa7\x6d\ \xe7\xf9\x9e\x04\x25\x4f\x35\xc8\x1d\xa7\xaa\x12\xd5\x9c\x8e\x4b\ \x18\x3e\x23\xed\x20\x73\xed\x3a\x32\x6d\x7d\x46\xfb\x95\xa7\xb7\ \xb1\x26\x62\x32\x04\x0a\xc4\xb1\x39\x32\x6c\xb3\x58\x9c\x9e\xf1\ \xa8\x03\x31\x20\xe3\xfa\x4b\x16\xa8\xdf\xb0\x28\x50\x01\x27\xb4\ \xee\x7c\x1e\x89\x70\xac\xc3\x0b\xe7\x37\xff\x00\x9e\xd3\xe7\xe8\ \x5e\xa5\x65\x1c\xdc\xcf\xa8\x5b\x69\xfe\x0f\x51\xef\xb4\xd5\xf2\ \xa9\xf4\xff\x00\x97\x9c\xf9\xf4\xd7\x17\x2b\x5b\xa8\xf1\xf5\xb5\ \x1a\xf8\x38\x1e\xd1\x25\x8d\xa0\xaa\x90\xe0\x82\x1b\x33\xc6\xf7\ \x20\xe2\x58\x87\x6f\x11\x08\xe4\x88\xba\xb4\xc2\x69\x55\x40\xf9\ \x98\xb7\xf4\xfe\xf0\x91\x88\x71\xb3\x93\x89\x46\xa5\x01\xaf\xb3\ \xf2\x00\x0f\xd3\x98\xea\x4f\x54\x5a\xc0\x7b\x98\x92\x6c\x6c\x72\ \x23\x0d\xcb\x12\x0e\x6f\x9e\xf0\x19\x6e\xdd\xad\x18\x18\xc8\x19\ \x6f\x14\x52\xcf\x62\x2c\x3a\x5c\xc6\x93\xdb\xa4\xf2\xf0\x7f\x68\ \xea\x25\x85\xf8\x16\x8a\x23\xb4\xac\x85\x07\x8b\x7b\x45\x9a\x40\ \x92\x41\xbc\x65\x00\xa5\x6e\x3a\xcd\x01\xb7\x63\xa4\x6a\x2d\x88\ \x8d\xa5\xa7\x00\x0a\xb5\xc9\x54\x3c\x0e\xad\xed\x0d\x25\xd3\xa0\ \x5c\x12\x08\x55\x1f\x31\x3c\x08\xcd\xe0\xaf\x83\x4f\x09\xfb\x93\ \x3d\x52\xa6\xf5\xd8\xaa\x15\x07\x0a\x22\xe9\x8c\xf7\xf5\x82\x1a\ \xd9\x30\x79\x8e\x52\xa8\x2f\xd6\x24\xb2\xdf\x1c\xf7\x8c\x41\xb9\ \x4b\x1f\x94\x75\x81\x3a\x83\x59\xbc\x42\x30\x38\xbc\xd0\xca\x5a\ \xec\x3a\xf7\x92\x55\xd4\x1e\x38\x1c\x09\xa1\xfc\xb7\xbc\xb1\x6b\ \xa0\x8e\x99\xb0\xb0\x13\xcd\x52\xff\x00\x2c\x92\x9b\x60\xfb\x42\ \x46\x2c\x0a\xa8\x30\xc3\xaa\xe9\x39\x00\xc2\x04\x9b\x01\x13\x48\ \xaa\x8f\x33\x7d\x04\x33\x53\x70\xb2\x63\xfa\xc1\x0d\x88\x42\x77\ \x1c\xf6\x98\xd5\x6e\x39\xbd\xb8\x89\x2c\x0d\x81\x9e\x51\x71\x7b\ \x89\x62\x35\x59\x8e\x60\x54\x6e\x93\x69\xa9\xf9\x8c\xf3\x90\x99\ \xe4\xc9\x13\x53\x75\xb2\x6c\x22\xce\xa4\x2e\x08\xbf\xaf\x59\xea\ \xed\x7c\x99\x0d\x46\x06\xe4\x1c\x89\xa9\x34\x5a\xe9\xf8\x8c\xcf\ \x4f\x3b\x91\xb0\x6d\xd2\x4d\xf1\x4f\x2e\xa5\xb3\x75\xb6\x08\x87\ \xa2\xdc\xcc\xac\xbc\xac\x96\xad\x70\xd5\x1f\xc4\x5c\x13\xf4\x94\ \x9d\xaa\xf2\x3d\xe9\x1e\xf2\x57\xa9\x93\x98\xf6\x52\xb4\x89\x5f\ \x32\x93\x83\xda\x4a\xea\x77\x1b\xde\x6e\x33\x40\x58\x99\xd0\xf8\ \x53\x14\x0d\x54\x8c\x2e\x14\x77\x32\x5d\x36\x92\xad\x62\x00\xf2\ \xaf\x56\x3d\x23\xb5\x7a\x8a\x48\xa3\x4f\xa6\x17\x55\xfc\x5d\xcf\ \x79\x5e\xfa\x53\xfa\xa9\xaa\x58\x90\xc7\x72\x9e\x62\x35\x14\xd9\ \x18\x14\x03\x69\xe0\x89\x35\x0a\xac\xa7\x39\x07\x99\x6a\x30\x2b\ \xe5\x20\xa1\xe5\x48\x87\x87\xd2\xd1\x80\x00\x1b\xfb\x89\x76\x96\ \xb3\x51\x24\xa1\x06\x4a\x74\xac\x7e\xf2\x8f\x99\x47\x40\x72\x26\ \x0d\xe8\x6f\x63\x0b\x95\x3a\x0f\x5d\xeb\x67\x7e\x47\x48\x48\x03\ \xb0\xf1\x10\x7a\x93\x89\x02\x30\x3e\x6e\xc6\x52\xda\x9a\x85\x2d\ \xc8\x99\xc6\xb5\x6a\xd6\xa4\x6a\x11\xe1\xbb\x29\x39\xb7\x48\xf5\ \xaa\x89\x73\xc2\x91\xee\x67\x25\x59\x1a\xc4\xab\x21\xee\x25\x34\ \x6a\x56\x51\xe4\x1b\xd4\xf2\x39\x99\xb0\xca\xbd\x75\x0a\xbf\x28\ \xde\xbf\xee\xe6\x10\xa8\x8d\x72\xa7\x69\xf4\x91\xa6\xa1\xc1\xb8\ \x44\x53\xd8\xe2\x36\x96\xb0\x93\x62\x8a\x3e\x98\x86\x1d\x13\x6f\ \x0d\x8a\x84\xfb\xc3\x15\x48\x16\x67\x5b\xcc\x6d\x42\x5b\x21\x01\ \x3d\xa0\x87\xa6\x7f\x0d\xef\xd9\x6f\x04\x35\xad\x4f\x71\xba\x67\ \xb8\x9e\x7a\xd7\xf9\x18\x0f\xa4\x2a\x74\x95\xf2\x11\xc7\xd2\x17\ \xd8\x95\x8e\x2a\xaa\xfa\x34\xba\x5d\x93\xba\xa0\x20\xab\x91\xd8\ \x81\x31\xab\x33\x1b\x55\xf3\xdf\xf1\x70\x61\x7d\x9e\xaa\x92\x13\ \xf6\x31\x55\x43\x2b\x59\xd6\xdd\x7b\x45\x1b\x4a\xb0\xa4\xe2\xcc\ \xc4\x1e\xf3\x5a\xb3\x07\x22\xd6\x2a\x48\x32\x4a\xac\x97\x00\xb6\ \x6d\xd6\x1d\x56\xfb\xca\x6d\x7c\x54\x5b\x5f\xd4\x4b\x16\x9d\xbf\ \xc5\xa5\xb8\xf0\x39\xf7\x93\xea\xe9\xf9\x56\xf9\x2b\xd7\xbc\x66\ \x80\x8b\xd6\xa4\xe4\x0b\x8e\xbd\x0c\x0d\x43\xb0\x2a\xa7\x1e\xf2\ \x9e\x84\x06\xeb\x59\x0e\x0f\x9a\x22\xb0\x26\xa3\x82\x06\x09\x94\ \x3d\x97\x50\xa4\x7c\xa5\x86\x3b\x48\xf5\xc5\xa9\xea\xea\x0b\x5f\ \xcc\x7f\x99\xd2\x33\x5a\x18\x25\x30\x09\xc9\xc1\x97\xfc\x1c\x6c\ \xaa\x4b\x7c\x8a\x84\xce\x2b\x31\x37\xe7\x99\xd7\xd1\x1d\xbf\x0e\ \xd4\x3d\xf2\x14\x28\xfa\xcb\x94\xe9\x44\xba\xed\x3a\xd2\xd4\x91\ \x6f\x23\x0d\xca\xc3\xa8\x92\x35\x3b\x8b\xa3\x63\xd7\x13\xa8\x96\ \xd5\x68\x8d\x32\x7e\xf6\x95\xca\xdb\xa8\xed\x39\x60\x33\x12\x2f\ \xc7\x37\x9a\xe3\x45\x2d\x90\xd3\x4b\xb7\xcc\x4e\x27\x94\x85\x4b\ \x75\x33\xcc\xec\x5c\x76\x13\x0b\x2b\x3f\x63\x34\x1d\x0f\x83\x51\ \xf1\x2b\x83\x63\xc8\x00\x8e\xe6\x74\xfe\x33\x58\x16\x5d\x3a\x7c\ \x94\xc5\x8f\xbc\xdf\x82\xd1\x1a\x5d\x03\x6a\x9f\x2a\xab\x71\xee\ \x7f\xf5\xfc\xce\x63\x56\xf1\x3c\x4a\x84\xf2\x67\x2f\x6b\x5e\x44\ \xfb\xc8\xa9\xce\x04\xa4\x54\xf3\x10\xc2\xf2\x2a\x8e\x08\xbe\x3d\ \x63\x0b\xfd\xe5\xbb\xda\x6e\xc6\x57\xe8\x95\x7e\xd0\x2a\x0e\x29\ \x8d\xd6\x9e\x62\x76\xb3\x9e\x58\xda\x26\x9b\x05\xa5\x8b\xdd\x8e\ \x23\xc7\x17\x6c\x85\x17\x3e\xf3\x0d\x25\xc5\xf9\xcc\x05\x62\x4e\ \x2f\x78\xf5\x55\x07\xef\x0e\x7a\x81\x06\xe3\x84\x5b\x09\xa0\x02\ \x87\x96\x36\x1f\xbc\x2f\x40\x00\x1d\xcc\xf1\xc9\xb7\x22\x78\x82\ \xc6\xd7\xf6\x16\x92\x0d\xb3\x70\x6f\x36\x85\x2a\x95\x1f\x6a\x29\ \x31\xcb\xa7\x44\xcd\x76\x2a\x79\xd8\x39\x3f\xda\x61\xac\xcc\x36\ \x28\x08\x9f\x95\x7f\xaf\x78\x6a\x35\x05\x1d\x39\x26\xe2\xb5\x4e\ \x07\xe5\x1f\xde\x2e\xa6\xea\xb7\x76\x37\x6e\xe6\x02\x79\x9c\x28\ \x19\x32\xa4\xa2\xe1\x6e\x14\xfb\x9c\x40\xa4\x34\xf6\x8b\xb6\x07\ \xf3\x16\xf7\x61\x60\x2c\x04\xa9\xd5\x6f\x7a\x95\x05\xfb\x28\xbc\ \x06\x6a\x6b\x94\xa5\xbb\xff\x00\x23\xfd\xa3\x2a\x46\xcd\xd1\x6f\ \x79\x7d\x35\xf1\xb4\xea\xb4\xfe\x65\xe4\x19\x2d\x5a\x95\x00\xba\ \x00\xaa\x7b\x28\xc4\x43\x55\x72\x4e\xe6\x27\x1d\x4c\xd6\x68\xf1\ \x53\xd1\x71\xf3\x2a\x8b\x75\x26\x08\x14\xc7\x35\x8f\xb0\x52\x64\ \xab\x54\xa9\xc3\x18\x6b\xa9\xab\xf9\xaf\xf4\x96\x54\xb1\x1a\x98\ \xe3\x36\xfc\xd0\xd4\x96\x26\xec\x00\xb7\x02\x42\x9a\x87\x37\x27\ \x6f\xe9\x1b\x4b\x50\xc5\x80\xb0\xfd\x21\xf9\x5a\xb8\x28\xdb\x86\ \x17\xb4\x24\xa4\xd6\xc9\xb4\x90\xd7\x62\x08\x0d\xfa\x45\x1a\x8c\ \x79\x63\xfa\xc3\x0e\xba\x4d\x4d\x45\xb7\x55\x5b\x8e\xd0\x5a\xa2\ \xa1\xb0\x52\x4f\x73\x21\x42\xc7\xac\x30\xc6\xf6\x26\x18\xb5\x47\ \x8c\xcc\x73\x7f\x69\xa5\xc4\x95\x9d\x94\xcd\x15\xfa\x30\x8e\x2d\ \x6d\x46\xbf\x69\x0d\x43\xe6\x39\xc1\x95\xb6\xd7\xe1\x5a\xf1\x15\ \x29\x1e\x42\xb0\xed\x71\x1e\x22\xad\xf8\x21\x2c\xd5\xc1\x3c\x21\ \x33\x91\x55\xf2\xd7\xee\x67\x5b\xe0\xd4\xdd\x17\x52\xe4\x5b\xc8\ \x40\xfd\xe7\x2a\xbe\x9e\xb7\x88\x6c\xb8\xbc\x67\xb5\x5f\x1b\xa6\ \xab\x52\x9a\x9d\xac\x6c\x4c\x67\xda\xdf\x6d\xca\x2d\xfb\xda\x4f\ \xb2\xa2\x26\x54\x8c\xc1\x67\xf2\x88\xe3\x3a\x2a\xfa\xca\xcc\x0a\ \x13\x65\xec\x22\x03\x91\xd2\x6d\x41\x73\x78\x2a\x0d\xed\x35\x22\ \x35\x19\x8f\x02\x3a\x95\x57\x43\x78\x5a\x6a\x6a\x50\x86\x36\x63\ \xc4\xd7\x42\xa6\xd0\x4a\xe8\x55\x2c\x03\x53\x3b\x18\x76\x94\xf8\ \xa6\xa2\x8b\x85\xdd\xfc\xce\x62\x2b\xa9\xb8\x06\x54\x95\x6e\xd8\ \xc3\x09\x8b\x1a\x94\xd6\x28\x4d\x88\x2a\x7d\x44\xc0\xad\xc8\x0a\ \xde\xc6\x3e\x9d\x51\x52\xc2\xb2\x0b\x8e\xa2\x6b\x04\x19\x54\x2c\ \x3b\x83\x33\xa4\xb4\x2c\x17\xe5\x23\xde\x12\xd6\xcf\x96\xe4\xf4\ \xdb\x89\x9e\x3b\xf0\x10\x7f\xf6\xcc\xd1\x59\xcf\x40\x3f\xf1\xc4\ \x91\xe8\x95\xea\x7f\xa9\x48\x5b\xbb\x1b\x18\xf5\xa3\x48\x0d\xad\ \x5c\x1f\x41\x99\x3a\xa8\x2a\x19\x9c\x86\x3d\xe6\x58\xdb\xca\xc0\ \xfa\x93\x68\x15\x37\xd2\xd3\xfc\x0c\x7f\xf2\x38\x8b\x7d\x5e\xd2\ \x05\x1d\x8a\x3d\x16\x28\xf1\xe6\xbb\x7b\x41\x29\x7c\xa2\x91\x89\ \x62\x3c\x6a\x6b\xb1\xcd\x52\x07\x5c\xda\x53\x46\xa2\xb9\x02\xec\ \xcd\xe8\x24\xfa\x3f\x87\x55\xaa\x0d\x5a\xc5\xa9\xd2\x1c\x92\x32\ \x7d\xa5\x3e\x2b\x53\xfb\xbd\x35\x16\x45\xb6\x58\x83\xb8\xc2\xe7\ \xc3\x15\x29\x5a\x59\xaa\xe0\x0e\xd7\xcf\xe9\x3d\xa9\xd5\xd1\xa8\ \xa0\x6c\xdc\x07\x1b\xa7\x2a\xae\xf5\xb9\x28\xce\xd0\x55\xaa\xbd\ \x3b\x10\x41\xc8\xf6\xed\x0f\xca\xd5\xb5\xd6\x96\xdd\xc2\x82\x30\ \x02\xe4\x13\x98\x03\xc1\xd5\x50\x7a\x68\x0d\x27\xa6\x77\x0b\x99\ \x1f\x9d\xac\x08\x27\xa4\xe9\x69\x74\x94\xe9\x3a\xab\xbb\x1a\x8e\ \xb9\x50\x3a\x19\x5e\x97\xa9\x99\xcd\x37\x06\xa2\xed\x62\x2d\x7f\ \x5e\xd0\xb5\x83\xc4\x40\xd6\xb1\x00\xff\x00\x10\xfe\x3a\x87\xc2\ \xa4\x79\x75\xe9\xdf\x88\xa7\xa9\xe2\xfc\x23\x72\x9b\x54\xa4\xc0\ \x93\xd7\x22\x53\xfa\x9c\xff\x00\x9e\xa0\x56\xbf\x22\x23\x52\xbb\ \xeb\x55\x46\xf9\x95\xcd\xbd\xaf\x1a\x1b\x75\x44\xac\xb6\x19\x1b\ \x87\x6b\xc2\xd5\x59\xab\xd4\x70\x6c\xea\xc4\x7e\xf3\xa4\xe9\x97\ \x36\xa2\x58\x86\x53\x3a\x65\xc5\x2f\x84\xa9\x6e\x2a\x56\xfd\x40\ \x13\x9e\xa3\x3b\x90\xe4\x9b\xdb\xbc\xaf\xe3\x15\x15\x34\x7a\x4a\ \x56\xce\xd2\xc6\xde\xa6\x37\xbc\x82\x15\x4d\x9e\x85\x7b\xab\x1e\ \x2e\xa4\x4a\x75\x94\x13\x55\x40\xea\x34\xb6\xdf\xff\x00\x75\x3a\ \x89\x16\x96\xb0\x74\xf0\x5b\xca\x47\x0d\xfd\x22\xe9\x6a\x2a\xe8\ \xf5\x3b\xd6\xe0\x83\x6c\xf5\x96\x2d\x4f\xb8\xa1\x21\xa3\x74\x74\ \x1b\x51\xa8\xa7\x45\x2f\x76\x39\xf4\x13\xa1\xaa\xd3\xd1\xf8\x95\ \x1f\xb4\xe9\x00\x15\x97\xfd\x4a\x60\xfe\xf1\xbf\xe1\x4d\x39\x5a\ \xd5\x75\x55\x05\x85\x3f\x28\xbf\x78\xde\x5d\x68\x93\xb5\x7f\x1d\ \xd4\x7d\x8f\x46\x9a\x34\xc1\xb5\xd8\x4e\x10\xaa\x1a\x83\x11\x83\ \x78\x5f\x19\xd6\x0d\x4e\xa6\xa5\x42\x79\x26\xde\xdd\x27\x3c\x54\ \x02\x91\x17\x39\x32\xe3\xc7\x22\xb7\xb3\x4b\xdf\x04\x73\x19\xb8\ \x9a\x9f\x41\x23\x0e\x4d\xaf\x2c\xa6\x6f\x51\x1b\xa5\xae\x7e\x93\ \x41\x72\x11\xe2\x2d\x30\x7e\x5c\x18\xfa\xcd\x73\xb6\xfc\x64\xc8\ \x74\x17\x7a\xfb\x89\x3d\xcf\xac\x70\x25\x9e\xd9\x26\xfc\x4c\x58\ \xd0\xa9\x00\x4e\x6d\x09\xc8\x01\x61\x52\xa1\x55\xc7\x95\x08\x1f\ \x99\xb0\x3f\x79\xd5\xa3\xf0\xc5\xd3\xd0\x5d\x4e\xa6\xf5\x8b\x0b\ \xa8\xa6\xa4\xa8\xf7\x99\xb6\x43\x23\x9f\xa6\xd3\x9a\x8b\xe2\x31\ \x09\x4f\xf3\xb7\xf4\xef\x1e\x11\x95\x7f\xcb\x53\x2a\x3a\xd5\x7c\ \x13\xed\xda\x36\xa6\xad\x51\xcb\x2e\x94\xb9\x02\xc3\x79\x22\xdf\ \xa7\x12\x2a\xba\xdd\x43\x35\xc5\x93\xdb\xfb\x98\x77\x4f\x50\xd5\ \xd2\xa3\x12\xd5\x2b\x35\xba\xec\x42\x7f\x7c\x09\xe2\xba\x6a\x43\ \xe4\x07\xd5\xea\x0c\xfd\x04\x8d\xeb\x55\xa9\x7f\x15\xd9\xcf\xab\ \x45\xb3\xf0\xa0\x5a\xf3\x59\x46\xaf\x1a\xba\x0a\x7c\xae\x46\x38\ \x44\xb7\xef\x71\x0f\x4b\x52\x8d\x77\x1b\x68\x1f\x52\x58\xce\x36\ \x4d\x4b\xdc\x03\x3b\x9f\xe1\xf5\x53\xba\xf7\x25\x73\x2e\x53\x22\ \x97\x68\x75\x55\xa9\x50\xae\x69\x9d\x32\x5c\x77\x63\xfd\xe2\x8e\ \xaa\x91\xe1\x76\x9f\x40\x2d\x24\xd6\xd6\x6a\x9a\x97\x66\xc6\x6d\ \x26\x2d\x66\xc5\xcf\xbc\xa7\x15\x6a\xd6\x72\xcc\x45\x3a\xa1\xbd\ \x2f\x63\x22\xab\x5e\xba\x12\x0b\xba\xfb\xc0\x24\xde\xf1\x86\xb0\ \x6a\x5b\x6a\x0b\xa8\xfd\x44\xd6\x60\xd2\x8e\xa5\xce\x2e\x8d\xee\ \xa2\x18\xaa\x30\x5a\x92\x5f\xd3\x12\x6a\xb4\xb6\x8d\xc8\x77\x27\ \x71\xd3\xde\x78\x31\x16\xce\x26\xb1\x9d\x5a\xaf\xa5\x14\xc9\xa9\ \x41\xcd\xcf\x2a\xf6\xfe\x44\x75\x27\xf8\x73\x11\x6a\x5a\x90\x7a\ \x79\xc7\xf6\x91\x54\x61\xe1\x53\x0d\xd7\x31\x9a\x62\xa2\xaa\xe7\ \x83\x33\x87\x55\xb9\xd1\x00\x71\x5f\xd6\xec\x20\xa3\x68\x2f\x73\ \xe3\x8f\xa0\x8b\xd7\x28\x0e\xf6\xe2\xf7\x12\x75\x04\x0e\x3e\xb2\ \x90\xba\x74\xdf\xe1\xf7\xc2\xd7\x3e\xb8\x86\x5b\x41\xd1\x2b\x1f\ \x72\x27\x3d\x2c\x05\x81\xcc\x3f\xa4\x2c\x5a\xac\xd5\xd2\x81\x8a\ \x2c\x47\xfb\x9a\x63\x6a\x15\x45\xd2\x85\x30\x3b\xda\xf2\x75\x5b\ \xf2\x61\x5f\x6e\x2f\x88\x61\x1b\x6b\x2a\x91\x60\x42\xfb\x09\x15\ \x7d\x45\x52\x6c\x6a\x35\x89\xe8\x63\x2a\x2d\xc6\xe4\xc5\xba\x49\ \x18\xdd\xc7\xf1\x35\x24\x67\x5d\x4f\x87\x16\xff\x00\xa5\x6a\xea\ \xdf\x22\xd3\x93\xa9\x2d\xe2\x61\x8e\x47\x79\xd9\xd2\x8d\x9f\xe1\ \xdd\x5b\x9c\x02\xcb\x38\x95\x0e\xe3\x60\x78\xb4\xb8\xfb\x55\xf1\ \xa9\x56\xa2\xd3\xb0\x73\xfa\xcd\xf1\x6a\x32\x8b\x00\x4d\xfb\x45\ \xe3\x81\xc1\x94\x69\x6b\xad\x1a\x04\x1a\x5d\x72\x41\xcc\xd0\x8c\ \x60\x42\xf9\x94\x5f\xb4\xcd\xab\xc9\x4b\x46\x0d\x55\x16\x27\x7a\ \x30\x1d\x2d\x98\x26\xb5\x0c\xdb\x07\xa5\xc4\x88\xd4\xa6\x3c\xa6\ \x69\xda\xd9\x07\x3d\xa2\x91\x94\x8f\x98\x42\x60\x6c\x4f\x36\x92\ \x53\x4a\xa9\x02\xcc\x41\xb7\x78\xc5\x29\x7b\xb2\x15\xf5\x12\x25\ \xb9\x5b\xde\x3a\x9d\x7f\x0c\x58\x10\xdf\xc4\xcd\x85\xd0\x53\x49\ \x80\x0a\xf9\xfd\xe6\x6d\x74\x6b\xa8\xbd\xba\x88\x9a\x5a\x8d\x2b\ \x8f\xbc\xa4\x41\xf4\x32\xaa\x35\xb4\x0a\x2f\x7a\xc4\xfa\x01\x31\ \x48\x54\xbb\xb0\x18\x37\x8e\xa1\x40\xb5\x4f\x94\xd8\x1f\xd6\x50\ \x9f\x11\xd1\xd3\x1e\x5d\x29\xa9\xdb\x79\xb4\x65\x6f\x89\xd4\xa6\ \x89\xe0\xd3\x4a\x45\x85\xfc\xab\x33\xb4\xf4\x14\xf8\x7e\xaa\xad\ \xdb\x65\x81\x38\x26\x17\xfd\x3a\x95\x3b\xfd\xa7\x57\x4d\x48\xe9\ \xba\xf1\x26\xbe\xa6\xb0\x3e\x25\x57\xfa\x98\xb6\xa4\x0b\x65\x8b\ \x13\xda\x5d\x9e\x97\x53\x1f\x0c\xa6\x54\x29\x7a\x87\xa9\x02\xd3\ \xa0\x1a\x85\x1a\x22\xa1\xd3\x85\x27\xe5\x42\x6e\x64\x3a\x6d\x32\ \x69\x69\x8a\xf5\x57\x75\x43\xf2\x21\xe9\xea\x67\xb7\x3d\x56\x2f\ \x51\xae\x7d\xe6\x2f\x6d\x78\xa5\xbe\x22\xf6\xb1\xa3\x4c\x0e\x33\ \xd2\x78\x6b\x2a\x35\xfc\x31\x40\x90\x2f\x91\x23\xaa\x97\x22\xc4\ \x5a\x4d\x54\x3a\xfc\xbf\xa8\x8c\xe3\x06\xd7\x57\xc7\xaa\xc3\x73\ \xd0\xa6\xe3\xa1\xbd\xa2\xbe\xd1\x41\x5f\x6d\x5d\x32\xaf\x5b\x86\ \x99\xa4\xd4\x53\xad\xa5\x09\x50\x6d\xa8\x0d\xaf\xde\x0e\xa6\x85\ \x65\x37\xa6\xc1\xc0\xe8\x44\x33\xe1\x38\xb6\x93\x07\xec\xe1\x87\ \x70\x3f\x98\x9d\x5f\xc4\xf6\xb3\xa5\x1a\x1b\x5c\x03\xe6\x23\xb4\ \x5d\xd9\x53\xc4\x55\xb1\x18\x3d\x27\x2f\xe2\xda\xe3\x56\xc6\x8f\ \x94\x5a\xcf\xeb\x35\xc7\x8e\xd1\x6e\x28\xd5\x6a\x4b\x04\xd4\x31\ \xde\xb5\x06\xc6\xff\x00\x6b\x0e\x61\x7c\x34\x9a\xf5\x2b\x50\x65\ \xb7\x8b\x48\x80\x07\x71\xc4\x87\xe1\x60\xea\xb4\xda\x8d\x29\xb0\ \xc8\x64\x3f\xee\xe9\x1b\xf0\xca\xec\xb5\x69\x54\xda\x43\xd3\xa8\ \x15\x87\x7b\xff\x00\xf9\x35\x66\x33\xa8\x1e\xa1\xa6\xca\x43\x64\ \x72\x3b\xe6\x51\xae\xf2\x6b\x1d\xc1\x04\x13\x73\x11\xf1\xe4\xf0\ \xb5\xf5\xc2\x8c\x2d\x67\x03\xf5\x85\xaa\xac\x1d\x96\xaa\xe6\xea\ \xbb\x87\xb8\xff\x00\xf6\x6d\x92\xdd\x00\x75\xa8\x87\xc8\x7b\x74\ \x83\xfe\x24\x62\x35\x94\xd2\xf6\xd9\x45\x57\xf6\x9e\xa2\xfb\x5c\ \x5a\xcd\x4d\xba\x5e\x1f\xf8\x9a\x91\x3a\xe7\x70\x40\x00\x28\xfd\ \x84\x67\xab\xe3\x97\x4a\xa1\x05\xaf\xcc\x72\xd6\x4a\xc3\x6d\x63\ \x66\xfc\x2d\xfd\xe4\x82\xeb\xba\x03\x9b\x01\xeb\xde\x6f\x19\x54\ \x95\x75\x3a\x2d\x48\xa8\x8c\x55\x87\x04\x70\x44\xfa\xe6\x2e\xff\ \x00\x06\x2c\x8b\x4e\x9d\x7a\xc9\x91\xc0\x2c\xc0\x5f\xeb\x69\xf2\ \x1a\x4a\xc0\x94\xa3\x58\x6f\xa6\x48\xe7\xa4\xfa\x0f\xf1\x43\x54\ \x3a\x7d\x28\xa2\x08\x0a\xbe\x21\x0b\xca\xdf\x8c\x7b\x5a\x73\xe7\ \x36\xc8\xd7\x1f\x2b\xe7\x3e\x20\xad\x49\xcd\x3a\x8a\x55\x86\x2c\ \x62\x54\xfd\xc3\x5f\x39\xbc\xbb\x57\xf1\x11\x58\x8a\x7a\xda\x42\ \xa0\x18\x0c\x30\xc2\x2c\x69\x69\x54\x53\xf6\x5a\xe1\x83\x0f\x95\ \xb0\x66\xf7\xfa\xca\x44\x24\xcb\xe8\x1d\xb4\x4b\x74\xdb\x63\x17\ \x4f\xe1\xfa\xbc\x8f\x0b\xeb\x78\xd1\x4a\xad\x2d\x35\x55\xa8\xb9\ \x04\x70\x65\xa8\xc4\x63\x4a\x8a\x95\x36\x2c\xd7\xbf\xa0\x8c\x1a\ \x9a\xae\x36\xee\xc1\xe6\xd8\xbc\x92\xa3\x10\x29\x8f\xf6\xca\x74\ \xaa\x3a\x0c\xff\x00\x10\x31\xff\xd9\ " qt_resource_name = "\ \x00\x16\ \x02\x65\x98\x67\ \x00\x4e\ \x00\x6f\x00\x2d\x00\x4f\x00\x6e\x00\x65\x00\x73\x00\x2d\x00\x4c\x00\x61\x00\x75\x00\x67\x00\x68\x00\x69\x00\x6e\x00\x67\x00\x2d\ \x00\x33\x00\x2e\x00\x6a\x00\x70\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/demos/embeddeddialogs/embeddeddialogs_rc3.py0000644000076500000240000037126612536324427026231 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:23:20 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x78\x0a\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\ \x01\x00\x00\xff\xdb\x00\x43\x00\x05\x03\x04\x04\x04\x03\x05\x04\ \x04\x04\x05\x05\x05\x06\x07\x0c\x08\x07\x07\x07\x07\x0f\x0b\x0b\ \x09\x0c\x11\x0f\x12\x12\x11\x0f\x11\x11\x13\x16\x1c\x17\x13\x14\ \x1a\x15\x11\x11\x18\x21\x18\x1a\x1d\x1d\x1f\x1f\x1f\x13\x17\x22\ \x24\x22\x1e\x24\x1c\x1e\x1f\x1e\xff\xdb\x00\x43\x01\x05\x05\x05\ \x07\x06\x07\x0e\x08\x08\x0e\x1e\x14\x11\x14\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\xff\xfe\x00\ \x13\x4e\x6f\x20\x4f\x6e\x65\x27\x73\x20\x4c\x61\x75\x67\x68\x69\ \x6e\x67\xff\xc0\x00\x11\x08\x02\x00\x02\x00\x03\x01\x22\x00\x02\ \x11\x01\x03\x11\x01\xff\xc4\x00\x1a\x00\x00\x03\x01\x01\x01\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x03\x04\x01\x05\x00\ \x06\xff\xc4\x00\x3e\x10\x00\x02\x01\x03\x03\x02\x04\x03\x07\x02\ \x05\x04\x03\x00\x03\x01\x01\x02\x00\x03\x11\x21\x04\x12\x31\x41\ \x51\x13\x22\x61\x71\x05\x32\x81\x14\x23\x42\x52\x91\xa1\xb1\xc1\ \xd1\x06\x24\x33\x62\xf0\x15\x43\x72\xe1\x25\x82\xf1\x34\x53\x63\ \x92\xff\xc4\x00\x19\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x01\x00\x02\x03\x05\x06\xff\xc4\x00\x20\ \x11\x01\x01\x01\x00\x03\x01\x01\x01\x01\x00\x03\x00\x00\x00\x00\ \x00\x00\x01\x11\x02\x21\x31\x41\x12\x51\x61\x13\x32\x42\xff\xda\ \x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xb0\x55\x5d\xa2\ \xbd\x7a\x8c\xf7\xf9\x43\x1c\xb7\xfe\xa0\x3e\xb3\x51\xb8\x9a\x75\ \xdd\x7d\x15\xac\x27\x3b\x53\x55\xab\x55\x2d\xc0\x18\x50\x0e\x00\ \x80\x2a\xe6\xdc\xcf\xa4\xfc\xbc\x7d\x75\x06\xbb\x52\x00\x1f\x68\ \xab\x8e\x2e\xc6\x2c\xeb\xb5\x04\xff\x00\xfc\x87\xbf\x5b\x99\x1a\ \xd4\xb8\xc1\xb5\xbb\xcc\x35\x0f\x18\x96\x45\xae\x82\x6b\x75\x24\ \xe5\xc3\x5b\xba\x83\x3d\x57\x58\xc0\x10\x52\x91\xf7\x41\x20\xb9\ \xd9\x8f\xd0\x4c\x2d\x71\xce\x65\x91\x6a\xaf\xb4\xa1\x37\x6d\x35\ \x3b\xf5\xb1\x22\xf3\xa1\xf0\x7d\x55\x0a\x75\xc0\x08\xe9\x7f\xf7\ \x5c\x4e\x0d\xcd\xfb\xc6\xd2\xaa\x55\x83\x29\x00\xca\xf1\xd8\xa5\ \x75\x7e\x23\x41\x69\xea\x59\x4b\x85\x24\xdf\x22\xd2\x66\xa3\x51\ \x46\xe2\x2e\x3b\xae\x65\x9a\xa6\x1a\xdf\x87\x25\x71\xfe\xad\x2c\ \x3f\xb4\xe7\x0a\xcc\xb6\x28\xc4\x11\xce\x61\xc7\x70\xd7\xa2\xd9\ \xf6\x37\x38\x38\x30\xcd\x64\x6f\x9b\xca\x4f\x51\x27\xae\x08\xc9\ \xc8\x3d\x44\xd3\x2c\x5a\x86\x9d\x43\x6c\x83\xfb\x88\x65\x55\xbe\ \xf2\x9f\x1d\x47\x69\x38\x3b\x96\xdd\x47\x10\xe8\x54\x2a\x6e\x0f\ \x31\x4a\x2b\xe4\xa8\xfc\xaa\x3a\xc2\x57\xc8\xb0\xb1\xe6\xd3\x35\ \x2b\x77\x0e\x9d\x40\xb8\xed\x06\x91\xcd\xb8\x82\x5f\xa9\x01\xe8\ \x6e\x27\x80\x64\x74\xcb\x5b\x9b\x5e\x55\x4f\x3a\x6a\x88\x79\x59\ \x2a\x60\xc2\x15\x14\x89\x22\xe7\x31\xc9\x6b\x5c\x88\x14\x96\xcb\ \x68\xdb\x7e\x93\x34\xc6\xd9\x67\x98\x29\x1c\x40\xbd\x8c\xdd\xc2\ \xd7\x81\x22\xa1\x0a\xc0\x82\x62\x2a\x6d\x2c\x19\x70\x7a\x88\x75\ \x9b\x24\xde\xf2\x75\x27\x75\xf8\x1d\x66\xe3\x2e\xca\xb0\x1f\xe1\ \x6a\xb7\x3c\xd4\x13\x82\x48\xb9\xf5\x9d\x6d\x43\xff\x00\xf0\x01\ \x6d\x60\xd5\x70\x3d\x27\x11\xb9\xdc\x3b\xcb\x8c\xf5\x72\x1f\x0a\ \x2d\xde\x30\x5c\xd2\x6b\xf7\x8a\xcc\x65\xfe\xec\xdb\xbc\xd3\x21\ \xb6\x26\x15\x33\xd0\x94\xf4\x92\x60\xbc\x60\x24\x75\x9e\x84\x82\ \x09\xa1\xd8\x0b\x03\x09\x4a\xb1\xb3\x2e\x7b\x83\x30\x00\x27\xb6\ \x5c\xc8\x9b\x4d\x14\xe3\x71\x1e\xe2\x3d\x29\x2d\xef\xe2\x0b\x4c\ \xd3\xd0\x7d\xa7\x95\xbf\x53\x88\xf5\x45\x16\xdc\xfb\xbd\x04\xcd\ \xad\x48\xf5\x35\xa7\xbb\x24\x9f\xda\x74\x6b\xdc\xba\xd8\x58\x05\ \x03\x8f\x49\x25\x30\xb7\xc0\xfd\x65\xe0\x78\xb4\xd4\xf2\xc0\x5a\ \xd3\x9d\x6a\x14\x94\xcb\x35\xee\x4f\x6b\xce\xa6\x9a\x92\xe9\xa9\ \x0a\xd5\x16\xee\x7e\x45\xfe\xa6\x2b\x49\x48\x51\x5f\x1e\xaf\x17\ \xf2\xaf\x78\x75\x6a\x35\x66\x2c\x79\xeb\x31\x6e\xb5\x3a\x26\xb6\ \xfa\x8e\x5d\xdb\x26\x79\x54\xe2\xec\x2d\x35\xb2\x05\xe1\x26\x40\ \x02\x48\x0c\xb7\x3c\x88\x02\x8d\x42\x40\x51\x72\x78\xb4\xa8\x53\ \xbb\x5c\xe7\xd2\x31\x17\x6b\x82\x71\x6c\xd8\x4b\x56\x25\x34\x08\ \x5b\x31\x04\xfa\x18\xdd\x3e\xa0\xa9\x14\x8d\x22\x47\x17\xea\x22\ \x4a\x8f\x99\x14\x93\x7e\x4c\x65\x7a\xc3\x4f\x48\xd4\xa8\x6e\xe3\ \x85\x92\x67\xc5\xd6\xa3\x52\xf0\x29\x10\x0d\xfc\xcd\x7b\x5c\x4e\ \x30\xd1\xb2\xdc\x3d\x4a\x40\x11\xf9\xa6\xd7\xaa\xf5\x77\xb3\x31\ \xbb\x5f\xaf\x79\x25\x67\x0a\xa8\x73\x7b\x4e\x9c\x65\xf1\x9b\x75\ \x76\x87\x4b\x4e\x85\x52\xff\x00\x6c\x40\xa4\x00\x76\xe7\xae\x27\ \x67\x4a\x74\xa0\x55\xaf\xa7\x0a\xd5\x4e\x49\x61\x80\xd6\xe7\xf5\ \x9f\x28\xb5\x0d\x36\x65\xb6\x09\xc4\xae\xbd\x71\x42\x92\x57\xbd\ \xae\x6e\x00\x3d\x47\x3f\x49\x72\xe3\x6a\x97\x09\xd7\x5e\xaa\x3b\ \xb1\xbb\x30\x0f\xf5\xeb\x12\x08\x2b\x44\x8f\xc4\x85\x7d\xc8\x38\ \xfe\x6d\x1f\x57\x69\xfb\xc5\xf9\x41\xb7\xba\xb7\x07\xfe\x77\x91\ \x3d\xc5\x0a\x89\xc3\x52\x7d\xe3\xdb\x83\xfd\x26\xe3\x35\x8c\xde\ \x0d\x71\xb3\x28\x7c\xc0\x5f\x99\x7f\xc6\x9c\xfd\xb8\xb8\xe1\xe9\ \xa9\xb7\xd3\xb4\xe6\xd7\x7f\x2f\x88\x54\x1a\x6c\x72\x2f\xf2\xb7\ \x5b\x7b\xcb\x3e\x25\x53\xc6\xf8\x7e\x8f\x58\xab\x85\x5f\x09\xbd\ \x08\xe2\x5f\x60\x9e\x25\x14\x52\xa9\x3e\x1b\x6d\x6e\xc6\x26\xa6\ \x89\xd5\x88\x74\x36\xee\x05\xe5\x6c\x12\xaa\xd3\xaa\xa3\xcc\x70\ \x56\xf6\xfd\x26\x2d\x57\x56\x22\x9d\x52\x2d\xc8\x6e\x91\xda\x92\ \xe9\x74\xcd\x53\x55\x49\x14\xdf\x73\x01\xce\x67\x53\xfc\x4c\xf5\ \x3f\xea\x95\x9d\x37\x2e\xc7\x0a\x2d\xe8\x00\x89\xd3\xea\xda\x86\ \xa6\x9d\x4a\xa9\x4d\xac\xc0\xdc\xa8\x3c\x1e\xf3\xb5\xf1\x47\xa6\ \x3e\x21\x51\x2c\x08\xa8\x9e\x20\x3c\x83\x33\x6d\xd3\x27\x4f\x98\ \xaf\x59\x6b\x5b\xed\x1a\x60\xd8\xbe\xe4\xc1\x8a\xa5\x4a\x82\xd4\ \x0f\x47\x50\x52\xc7\x8a\x8a\x47\xf1\x3b\xaa\xda\x7a\x94\x95\xdb\ \x45\x48\x82\x6d\x63\x71\x7f\xd0\xc9\x3f\xc4\x54\x74\x54\x3c\x25\ \xd3\xa7\x87\x58\x8b\xd4\x40\xc4\x85\xed\xf5\x8c\xbd\xe0\xb3\xe9\ \x02\x8e\xb8\x1d\xb4\x6b\x25\x45\x3f\x2d\xaa\x8c\xfe\xa6\x0a\x8d\ \x42\x56\xa9\xa6\xd4\xab\x23\x6d\xbe\xd3\x16\x8d\xe1\x20\x0f\x66\ \xab\x6b\xa0\x39\x0b\x27\x4a\xae\xda\x9f\x12\xa3\x12\xdd\x49\x9a\ \xc0\xac\x1a\x29\x54\x35\x70\xc6\xca\x2d\x6e\xb2\xca\x5a\xe4\x5a\ \x61\x69\x22\xd3\x37\xbe\xe0\x2e\xdf\xa9\x91\x6a\xd1\x7c\x95\x71\ \x91\x6f\xd2\x6e\x8e\x9a\xbd\x4f\x31\x01\x00\xdc\xc7\xd2\x16\x1d\ \x46\x49\x51\x83\x06\xf7\xf3\x1c\x43\x24\x00\x73\x33\x01\x07\xaf\ \x33\x4c\xbc\x1a\xdc\xf1\x35\x58\x1e\xb1\x64\x83\x32\xf9\xe2\x49\ \x4a\xb0\xb6\x0c\xf0\x60\x4f\x17\x89\x56\xe9\xfa\x4f\x33\x10\x71\ \x24\x61\x60\x0e\x26\xa3\x67\x20\x44\x96\xbf\x59\xb4\xce\x09\xbf\ \xa0\x92\x75\xfe\x0b\xaa\x4a\x7a\x91\x4a\xa1\xfb\xaa\x9e\x56\xcc\ \x57\xc4\x68\x36\x97\x56\xf4\x4f\x03\x2b\xea\x24\x09\x70\xdd\xbd\ \x67\x66\xa1\x3a\xff\x00\x85\x0a\xbc\xd7\xd3\x61\xbb\x95\x99\xb3\ \x2e\xb5\xec\x72\x5c\xe3\xbc\x15\xa8\x54\x77\x07\xa1\x9a\x6f\x6c\ \xfd\x22\xdb\xe5\xf6\x9a\x64\x45\x41\x37\x4e\x7b\x4c\xfc\x5b\x80\ \xf7\x8b\x18\xcf\x58\xd4\x60\x5a\xcd\x83\x24\xab\x7d\x8a\xbf\x75\ \xcd\xe7\x98\x00\x55\x94\x8d\xa7\xf6\x82\xcb\xfe\x5c\x13\xf8\x5b\ \x3e\xc6\x2e\x91\xf3\x77\x53\xcc\x0a\xed\x3b\x79\x85\xff\x00\x10\ \xb4\x48\xb8\x36\x3d\xe1\xa8\x28\xca\x2e\x2c\x00\x20\xcf\x56\xf2\ \xd6\x71\xeb\x02\xa6\x8b\x8d\xa2\xf1\x9b\x87\x79\x0a\xbe\xde\xb0\ \xd6\xaf\x78\x61\xd5\x24\xde\x2e\xab\x81\x71\xd6\x07\x89\xe9\x14\ \x49\x66\xc7\x26\x52\x0d\x7b\x6e\xf6\xcf\x03\x26\x4f\x59\xae\xd6\ \x5c\x28\xe2\x51\x58\x10\x3c\x31\xf5\x3d\xe4\xae\xa4\x1e\x26\xa0\ \xae\x8e\xac\xff\x00\xf0\xda\x65\x07\xf1\x1f\xe4\xce\x49\xb9\xb8\ \x9d\x3a\xa8\x5f\xe1\x54\x6e\x78\x6f\xef\x21\x2a\x00\x25\x4d\xc4\ \xb8\xaa\x11\x90\x00\x8d\x44\x25\x2d\x15\x4c\x82\xd6\x94\x21\x00\ \x5b\x16\x8d\x40\xf0\x49\x3c\x8f\xd6\x18\xd3\x38\x22\xe4\x47\x0b\ \x0f\x36\xd0\x7d\xf8\x8e\xa5\x52\xa5\x43\xb3\x70\x0b\xd8\x0c\x42\ \xd3\x89\xd7\x4e\xe7\x93\x6f\x78\xfa\x3a\x36\xa8\x76\xab\x0b\xc7\ \x84\xa6\x2f\xb4\x5b\xd4\xc2\x5a\xce\x84\xec\x3b\x07\x70\x26\x34\ \xe1\xc7\xe1\x06\x95\x2f\x12\xab\x80\x3b\x0e\x64\xf6\x54\xc5\x30\ \xaa\x3b\xf2\x65\x14\x9a\xb5\x70\x40\x27\x6f\x73\xc4\x55\x52\xaa\ \xc4\x2d\x98\x8e\xa7\xfb\x43\x6f\xd2\x04\x52\x4d\xd9\xaf\x1a\xb4\ \xcd\xf8\x82\x8e\xc7\xbf\xe9\x1b\x4d\x98\xb5\xb2\x64\x8c\xa7\x4c\ \x92\x2c\x27\x4b\x47\x40\x8f\x3b\x82\x15\x7f\x79\xed\x0e\x99\xaa\ \x58\x8c\x7a\x4b\xaa\x02\xb6\x43\xc0\xe9\x39\xde\x5f\x1b\x91\x33\ \xb7\x8a\x7c\xc2\xc0\x70\x27\x96\x8b\x03\x71\x28\x08\xc7\x37\xb0\ \xef\x0c\x10\xa3\x17\xf7\x99\xd3\x89\x8d\x22\x79\x84\x86\x8a\x1c\ \x00\xc7\xde\x6b\x30\x6f\x29\xe0\xc0\xf0\xc0\x37\x19\x92\x3b\xc4\ \x24\xe1\x40\xf6\x98\xe0\x6d\x26\xf6\xe9\x02\xcd\xde\xd0\x1d\xf6\ \xf3\x99\x22\xcd\x42\xa6\xca\x2c\x7a\x4e\x6e\xb8\x9a\xb5\x0d\xdb\ \x8e\x65\xac\xe4\xab\x37\x6e\x27\x37\x50\xce\x01\x05\x7d\xe6\xf8\ \xb3\x53\xb1\xb5\x85\xfd\x24\xf5\xbc\xd4\xc7\xa1\x36\xfa\xc6\x39\ \x2c\x6c\x17\x37\xc4\x6b\x68\xeb\x14\xc0\x00\x9e\x93\xa4\xe9\x84\ \x56\xfb\xb5\x39\xc7\x58\x55\xaa\x0a\x84\x53\x7c\x28\xe3\x1f\xbc\ \x16\xa6\xd4\xcd\xaa\x2d\xbd\x26\x3b\x52\x57\x20\xdc\xb7\x49\xa0\ \xbb\x47\x4c\xd4\xa0\x29\x8f\x30\x2a\x50\x9f\x4e\x87\xe9\x21\x23\ \xef\x83\x31\xe7\xca\xff\x00\xc1\x8e\xd2\x6a\x9b\x4f\x55\x5a\x9a\ \x80\x3b\x77\x89\xd5\x37\xde\x39\x55\xb0\x63\x71\xe9\x09\x3b\x4c\ \x54\xa3\x49\x5a\x8d\x47\x39\xf2\xb8\xb5\xef\xd8\x89\x57\xc3\xe9\ \xa7\x85\x5b\xe1\xcd\x77\x0e\x37\xd2\x27\x82\x47\x69\x15\x45\x35\ \xa9\x06\x19\x75\xc1\xb7\x5e\xc6\x16\x92\xbf\xd9\xea\x27\x88\x72\ \x8d\x75\xb7\x20\xc6\xc5\x08\x63\x52\xa3\x6d\x38\x0b\x8e\xc1\x61\ \xb0\xb8\xda\x8c\x19\x80\xb5\xfb\xca\xfe\x35\x42\xf5\x16\xbd\x2b\ \x78\x35\xfc\xe2\xdd\xfa\xc8\x86\xda\x62\xc3\x2f\xd2\xd1\x97\x45\ \xe9\xe0\xb6\xa6\x03\x5c\x00\x6f\xee\x67\x5f\xe2\x6f\xbf\x49\xa0\ \xd4\x5e\xf7\x4d\xac\x3d\xa7\x1a\xa3\x6e\x21\x98\xdc\x9c\xda\x75\ \xf4\x8e\x95\x7f\xc3\xb5\x1a\xa0\x2f\xe0\x54\x0e\x2f\xd6\xf8\xb7\ \xb4\xcf\x2f\x94\xc2\x35\x1a\xa3\xa7\x0b\x5c\x0f\xbc\x71\xe4\x1f\ \x97\xd6\x73\xaf\x62\xd5\xea\xf9\xbf\x2d\xfa\x98\xa7\xac\xd5\x9d\ \xbc\x43\x76\x63\x7b\x9e\xf0\xd8\x82\x05\x2e\x0a\x8f\xde\x6a\x4c\ \x1a\x43\x12\xcc\x58\x93\xba\xf7\xbc\x36\x1e\x22\xef\x1f\x30\xf9\ \x84\xc0\x2c\x70\x23\x13\xc8\x77\x08\x85\x79\xad\xa0\x04\x5f\xca\ \x6f\xfc\x40\x27\x66\x88\x81\x86\xa8\x6d\x8e\xc2\x3f\x47\xb0\x6e\ \x51\x73\x4e\xa8\xb0\xb7\xe1\x6e\xc6\x23\x5f\xf7\x6b\x46\x9d\x8d\ \xd5\x2f\xfa\x98\x7f\x8d\x25\xa8\x00\x18\x31\x6f\x84\x07\xd6\x16\ \xa6\xea\x08\xe4\xc4\x8b\x9a\x66\xdd\x3d\x62\xc8\x49\xce\x21\x83\ \x71\x6e\xb1\x4b\xba\xf0\xd4\x8b\x08\x44\x31\xc4\xf5\xee\x3d\x60\ \xf3\x88\x40\x11\xd3\x11\x4d\x50\x4f\x31\xeb\x4d\x40\x17\x88\xf1\ \x2c\x71\x8f\x58\x75\x49\xdc\x2e\x7a\x49\x1e\x19\x2d\x8e\x44\xbb\ \xe1\x5a\xe4\xd3\x6a\x43\x3a\xdd\x0f\x95\xc7\xa1\x9c\x94\x2b\x7c\ \xb1\x87\xb9\x09\xc1\x30\xb3\x4c\xb8\xbf\xe2\x94\xa9\x69\xf5\x6c\ \x8a\x3c\x87\x2a\x47\x50\x64\x8e\x88\x5b\x07\x06\x57\x75\xd5\xfc\ \x33\x39\x7d\x3f\xee\xa6\x44\xa0\x60\x06\x94\x55\x8d\x48\x83\x83\ \x71\xd2\x0e\xc3\xbb\xd2\x69\x7d\xac\x6c\x6f\x09\x6b\x92\xb6\x20\ \x5a\x20\xda\x2e\x18\x35\x12\x70\xf8\x1e\xfd\x20\xad\x36\x0f\x66\ \x04\x01\x30\x14\x60\x6f\x82\x0c\x73\xef\x74\x1f\x78\x59\x60\x46\ \x95\x37\xdd\x4f\xff\x00\x59\xed\x41\xb9\x46\xee\xbf\xfa\x93\xb0\ \x64\x20\x11\x68\xf7\x3b\xe8\x2b\x7e\x56\x20\xc9\x04\x03\x6e\xc2\ \x12\x91\x07\x24\x5a\x78\x5e\xf2\x46\x5f\xac\xca\x75\x00\xa8\x09\ \x03\x99\x80\x6e\x10\x48\xb6\x4f\x32\x26\x6a\xc1\xf1\x48\x8b\x03\ \x78\xb7\x5e\x91\xda\xa0\x59\x52\xaf\x71\x12\xac\x05\xbb\x88\x40\ \xa1\xc9\xff\x00\xa4\x81\xd9\xed\x20\x43\xb5\x89\x3c\x75\x13\xa9\ \x8a\xbf\x0c\xa9\xd0\xab\x5c\xff\x00\x79\xcb\x36\xb9\x8c\x54\x25\ \x7c\x3a\xb7\xb5\xc7\x78\xc4\x62\x48\xe9\x08\x59\xe8\x9b\x8f\x32\ \xf1\x16\x14\xdc\x45\x28\x04\x95\x00\x9f\x49\x7e\x91\x07\x85\xcf\ \x3c\xce\x6d\x2b\xf0\x71\x3a\x3a\x57\x1e\x5e\xd6\xcc\xcf\x23\x07\ \x54\xa9\x63\xd1\x47\x03\xd6\x65\x20\x19\xf6\x1f\x94\x65\xa7\x89\ \xbd\x43\xe9\x98\x0e\xdb\x34\xe2\xe6\xcd\x50\xdc\xfb\x4c\x95\x9a\ \x5a\xa6\xa3\xbf\x86\x46\xd5\x43\xb4\x76\x93\x2e\xe2\x73\xfc\x45\ \x69\x2a\x78\x75\x81\x5b\x8e\xf9\x96\x55\x1e\x27\x00\x21\xf4\xeb\ \x0b\x32\x90\x0b\xf6\x95\x69\xc7\x0c\x4d\xa2\x69\x96\x07\x6b\x08\ \xec\x91\xc8\xb0\xe9\x05\x1d\x2d\x36\xa4\x0c\x2d\xc0\xe2\x5a\xac\ \x0a\xee\x6b\xda\x72\xb4\xe2\xc4\x16\xe4\xf4\x95\x2d\x70\x5a\xd7\ \xf2\xce\x76\x37\x2a\xc2\xe0\xf1\xc7\x68\xb6\x6b\xc4\x35\x4d\xa6\ \xc3\x33\xc1\xcd\xa1\x87\x44\xc0\xdc\x66\x36\xe1\x46\x06\x7b\xc5\ \x03\x9b\xf5\x99\xbb\xc8\x49\x92\x30\xb8\xeb\xcf\x79\x3d\x7b\x35\ \xb3\xe9\x13\x52\xa3\x13\x32\x8b\x10\xe0\x93\x8b\xe6\xf1\xc1\xa0\ \xd5\xd5\xd8\x82\x9d\x3c\x66\xe7\xd6\x73\x35\x0e\x58\xdc\x93\x79\ \x6e\xb1\xd5\x99\x95\x70\x41\xb7\xbc\xe7\xd4\x06\xe7\xa4\xe9\xc5\ \x8a\xdd\x13\x05\x77\xaa\x72\x29\xa1\x61\xef\xd2\x25\x2b\x3b\x12\ \xcc\xcd\x7e\xf1\xd4\x17\x6d\x3a\xe4\x70\x53\xfa\x89\x15\x5a\x97\ \x20\x70\x07\x00\x4d\xc0\x65\x6a\xcf\x55\x7c\xcd\xb8\xae\x01\x32\ \x46\x3b\x8e\xee\xbd\x63\x1c\x92\xe1\xfe\x86\x61\xb2\x9f\x59\xa1\ \x4e\x74\x52\xab\xe1\xdf\x76\xd0\x48\xef\xed\x05\x54\x35\xd1\xcd\ \xd8\x9c\x4c\x2c\xc6\x88\x61\xf8\x4d\x8f\xb7\x48\x92\x08\x20\xde\ \xc6\x08\xda\x6c\xd4\xea\x10\x17\xc8\x45\x98\x09\x95\xb4\xf6\x6c\ \xb0\x27\xa1\x1d\x60\x1a\xad\xb8\x93\xd7\x98\xda\x6f\xe2\x8f\x0b\ \x1b\xc7\xca\x7f\xa4\x42\xbf\x87\xd4\x6a\xd4\x5b\x41\x59\x30\xdf\ \xe9\x13\xf9\xbf\xf7\x22\xab\x41\xa9\xb1\xec\x0f\xcb\xd4\x18\x5e\ \x21\x5b\x03\x80\xbf\xb4\xab\x59\xfe\x62\x88\xd5\x53\x37\x6c\x0a\ \x83\xd7\xbc\x3c\xa5\xc7\xa8\x19\xaa\x05\x1c\x93\x69\xdb\xf8\x75\ \x41\xe3\x9f\x85\x9f\x92\xa5\x16\x42\x4f\x56\xe6\xf3\x9f\x45\x00\ \x7f\x11\x96\xc5\x05\xf8\xeb\x05\x0d\x5a\x5a\x9a\x75\xc6\x4a\x9d\ \xc0\xfd\x65\x7b\x13\xa4\x9b\x36\xd6\x28\xe0\x82\x0e\x7e\x90\xef\ \xbf\xef\x3f\x10\xf9\xbf\xbc\xe9\x7c\x6f\x4c\xab\xad\x3a\x8a\x6b\ \xe4\xac\xbe\x20\xfa\xf3\x39\x8a\x76\x36\x17\x3f\xcc\xd4\xbb\x15\ \x98\x32\xa1\x97\x70\xe7\xac\xf2\xf1\x62\x38\x8c\x5b\x0b\x1b\xf9\ \x4f\x1e\x90\x99\x70\x4a\x0c\x75\xf4\x86\xa3\x3e\x1d\x50\xd3\xae\ \x05\x83\x23\x7c\xca\x66\xfc\x58\xd3\xaf\x59\x2b\x53\x04\x53\x2b\ \x61\xdc\x5a\x05\x3f\xb9\xa2\xd5\x1b\xe7\x61\x65\x1f\xd6\x6e\x9f\ \x6d\x5a\x6c\x97\x00\xf2\x3d\xe1\xf7\x57\xf8\x46\xa2\x91\x77\x2c\ \x49\x3e\xc2\x4e\x69\x94\x3f\x23\x89\x66\x9a\x95\x1f\x05\xcd\x4f\ \x35\xec\x01\xbd\x8a\xcc\xa9\x4e\xe0\xd3\x73\x67\xb7\x91\xba\x34\ \x75\x22\x6b\x7f\xfd\x5f\x58\x00\x8d\xd6\xd9\x6f\xa4\xda\x8c\xe8\ \xdb\x4f\x4e\x62\xcb\x9b\xfc\xc4\x44\x1b\x71\xf9\xbf\x68\xb6\x3b\ \xbf\x14\xf3\x54\x21\x41\x9a\x2b\x5c\x65\x10\xfd\x20\x40\xbc\xf4\ \x8d\xaa\x18\xb9\x1e\x93\x29\x9a\x6e\x72\x96\xf6\x31\xb5\x7c\x3f\ \x16\xca\xc4\x7b\x89\x22\x91\x48\x39\x8c\x5b\x9c\xda\x68\x05\x6e\ \x46\x47\xa4\x30\x40\xe5\x79\x88\x37\x41\xa8\xf0\x6b\x86\x20\x15\ \xe1\x87\x70\x66\x6a\xd3\xec\xda\x82\x9d\x2f\x70\x7d\x3a\x44\x82\ \xa4\xe2\x53\xa8\xb5\x5d\x0d\x2a\x9d\x51\x8a\x1f\xe4\x48\xa3\xa8\ \x0e\xec\x5e\x78\x13\xc5\xa1\x58\x15\xe7\x89\xa8\x80\xf0\x64\x1a\ \x2c\x54\x9e\x0d\xa3\x28\x39\x02\xc4\xc5\x22\x9b\x8f\x78\xe5\xa2\ \xd9\xf7\x91\x3a\x93\x0a\xb6\x57\xfa\x4b\x68\x69\xd5\xb4\xec\x3f\ \xdc\x2f\x20\x08\x6f\x71\xd6\x74\x34\xdb\x97\x4d\x91\xc9\xe6\x66\ \x98\x4b\xe9\xdd\x4e\x44\x4b\xa9\x18\x9d\x21\x53\x72\x2b\x1f\x63\ \x31\x92\x9b\xf4\x10\xfd\x1c\x40\x38\x99\x69\x4b\xe9\xae\x70\x62\ \xde\x99\x51\x91\xfa\x47\x40\xe9\xa8\xab\xa7\x65\xea\x38\x12\x2a\ \x8a\x41\xed\x2b\xd3\x36\xda\x96\xe8\x60\xeb\x69\xda\xa1\x23\x83\ \x2f\xaa\xb7\x46\xdf\x71\x50\x7a\x62\x43\x54\x67\x7a\xfc\xa7\x91\ \xda\x5b\xa4\x5f\x23\x8f\x49\x35\xba\xda\xe3\x83\x28\x03\x4f\x91\ \x68\xd3\x4e\xd5\x08\xe4\x74\x8b\x6a\x79\x0c\xbc\x4a\x12\xcd\x4c\ \x13\xc8\xc5\xe2\x8b\x34\xc8\x96\x68\xac\x45\x35\x6e\xb8\xbc\x9c\ \x83\x6b\xf6\x11\xf4\x73\x44\x1f\xca\xd6\x85\x30\x75\xee\x86\xa8\ \x1c\x8b\x0c\x44\xeb\xae\x1d\x50\x7e\x05\x02\x50\x53\x73\xd8\x93\ \x96\x58\x9d\x48\xdd\x54\x93\xd4\xc2\x12\x29\x83\x7e\xbf\x49\x6d\ \x27\x2e\x6c\x44\x4d\x15\x40\x3e\x61\x73\x28\xa6\x96\xc8\x06\x55\ \x45\x14\xc9\xc2\x91\xbb\xfa\x46\x12\x14\xe3\x2d\xdf\xa0\x8a\x5d\ \xd6\xb0\x16\x1d\xe3\xa9\x8a\x40\x8d\xcf\x71\xd4\x4c\x34\xa2\xfb\ \x06\xd3\x86\x22\x2b\xc5\x20\xd8\x0b\x46\xd6\xa9\x40\xa0\x74\xbb\ \x5b\x99\x3f\xda\x54\x9b\x2a\x00\x7b\x99\x98\x94\x25\x46\x6e\xb1\ \xe9\x50\x28\xc8\xcf\x41\x21\xa5\xbd\x89\x62\x0e\x3b\x75\x8f\x00\ \x91\xb9\xda\xc7\xb4\xac\x27\x9a\x97\x37\x27\xe9\x03\x79\xbe\x0d\ \xaf\x17\xbb\x04\x05\xfa\x93\x16\xc4\x83\xd2\xd0\xc5\xad\x7a\xaa\ \x1a\xd6\xfa\xc4\xb5\x40\x4f\xcd\x02\xbf\xcc\x6c\xc2\x24\x15\xb6\ \x5a\xf3\x72\x0d\x16\xa0\xee\x3b\xc0\xe7\xb4\x4b\x39\xe1\xf8\xe9\ \x18\x1d\x32\x09\xc1\x8b\x62\x41\xb3\x73\xed\x18\x05\xa6\x50\x5e\ \xdc\x86\x05\x7f\x69\xcf\xad\x4f\x69\xdc\xc6\xc2\x58\xf5\x05\x32\ \x19\x79\xe6\x06\xb7\x63\x3d\x98\x58\x37\x99\x48\xcc\xd4\x15\x2a\ \xd4\x46\x52\x9c\x1e\xf1\x77\x61\xe4\x03\x3d\xfb\x46\xad\x1d\xae\ \x1b\x8f\x59\x9a\x8d\xa4\x02\xa4\x81\xd7\x13\x4c\x82\x8d\x45\xa6\ \x4a\xb6\x55\x85\x8c\x1a\x98\x25\x48\xc8\x38\xb4\x1b\x28\x17\x27\ \x3d\xa1\x2d\xde\xc2\xe0\xb0\xfd\xc4\x91\x64\xb1\x3c\xc3\x4e\x45\ \x8d\x8c\x5d\x45\xda\xe7\xcc\x09\x13\x51\xbc\xd7\xbc\x52\x8a\xb6\ \xa9\x76\x1f\xea\x0f\x98\x7e\x69\x9a\x3d\x46\xc6\x20\x8c\x30\xb3\ \x03\xd6\x28\x36\x6e\x18\x02\x38\x37\x9a\xd4\xfc\x51\xbd\x6c\x08\ \xe4\x5e\x18\x97\xd4\x5d\xa8\x56\xc1\x95\x8d\xc1\x3c\x5a\x4d\xab\ \xd9\xbd\x3c\x20\xc5\x6d\x6b\xfa\xc7\xa5\x8e\x92\x9d\x1a\x9f\x88\ \x9b\x1b\xf0\x62\x4d\x26\x50\xca\x41\x57\x53\x62\x0c\x21\x74\x11\ \x57\x53\xf0\x80\x0b\x5d\xe8\x1c\x9f\x43\x39\x4d\x44\x13\xf3\x28\ \x3e\xb2\xff\x00\x83\xb8\x4d\x57\x83\x50\x59\x2a\x8d\xad\xdb\x30\ \x75\x3a\x72\x8e\xf4\x9f\x95\x36\x10\x9d\x5c\x57\xb8\x92\x95\x36\ \x0d\xb4\xb2\x15\x38\x22\xf2\xa3\xa6\xf0\x18\x5c\xab\x93\x81\x7c\ \x08\x84\x52\x8a\xe4\x8f\x30\x16\x17\x9b\x41\xd9\x41\x56\x63\xb4\ \xfa\xf1\x1a\x85\x5b\x4f\xbc\xee\xf1\x01\xef\x9e\x22\x45\x11\x4d\ \xc3\x2d\x65\xba\x9b\xe0\x47\x33\x14\x22\xe1\x58\x1e\x08\x1c\xc4\ \xd7\xa7\x4c\xa9\x65\xdd\xea\x39\xb4\xa2\x1d\x6a\x43\xc3\x08\x82\ \xcc\x4d\xd8\x46\xea\xf4\x9e\x05\x2f\x2d\x5f\x15\x40\x1b\xc5\xac\ \x50\xfa\x41\xa2\x84\xea\x55\x97\x76\xd2\xd7\xbd\xff\x00\x98\xe6\ \xac\x8e\xe5\x94\x80\x59\xb3\x71\xd2\x5d\xa7\x22\xba\x87\xb0\xa8\ \x45\xff\x00\x0b\xf7\xf7\x91\xd5\x4d\xa4\x83\x70\x47\x79\xd4\xd6\ \x52\xd8\xc5\x91\x43\x52\x6e\x45\xe4\xcc\x88\xc9\xb6\xa0\x6d\xb6\ \xf2\xbf\x63\xd8\xc4\x22\xb1\xb4\xcc\xc6\x55\xa2\xc8\xfb\x4f\x31\ \x7b\x5a\xfc\x1f\xa4\x90\x93\x19\x1d\xe5\x15\x40\x2c\x0f\x5b\x45\ \x52\xc1\xbd\xaf\x29\x7d\x8c\x88\xd6\xda\x78\x8a\x29\x4d\x80\x3c\ \x46\x87\x0c\x2c\xd8\x3d\xe0\x32\x5d\x01\x53\x00\x92\x05\x88\x90\ \x1b\x0b\x19\x46\x9d\xb7\xe9\x6b\xa1\xe8\x03\x0f\xa1\x92\xee\x24\ \x58\x9f\x68\xef\x87\xb5\xf5\x1e\x19\x36\xde\x0a\x9f\xa8\x95\x20\ \x00\x5b\x06\x66\x46\x44\xcc\xab\x11\xd6\x12\xbd\xb9\x12\x0d\x42\ \x71\x2a\x0c\x40\xdc\x3f\x48\x84\xd8\x7f\x37\xb4\x72\x9b\x93\x7e\ \x25\x4a\xad\x3b\x53\x71\x67\x6d\xb6\x37\xe2\x5a\x1d\x41\x54\x5c\ \x80\x3f\x79\xcc\xa4\x0a\x38\x63\xc0\x95\xd0\xf3\x54\xbd\xfc\xdc\ \x91\x31\x61\x8a\xa9\x94\x6b\x8b\x0c\xcf\x59\x6d\xda\x46\x1c\x06\ \x39\x20\x83\x1a\xee\x6c\x1c\x64\x1e\xd0\xc3\xaa\x00\x07\x83\x31\ \xe9\xf1\x71\x26\x5a\xc2\xfd\xa3\xa9\xd7\xfa\xc3\x2a\x05\x4a\x16\ \xc8\x16\x33\x6a\x53\x35\x28\x90\x79\x1c\x19\x7d\x11\x4d\xd6\xdf\ \xb1\x87\xf6\x70\x0d\xd7\x20\xf4\x87\xe8\xe3\x8b\xa3\x25\x58\x83\ \xf5\x89\x75\x04\x92\xbd\x0c\xe9\xea\x34\xfe\x1d\x52\xc3\xe5\x6e\ \x27\x32\xa5\xc3\xb1\x1d\xe6\xe5\xd6\x6b\xc8\x76\x13\x7c\xa9\xe4\ \x46\x22\xed\x38\xca\x30\xb5\xe2\xd1\x95\xc5\x8e\x0c\x2a\x4c\xd4\ \xdc\xab\x0b\xaf\x51\x14\xd3\x75\x6c\x12\x08\x9d\x0f\x86\xf8\x75\ \x29\x9a\x26\x9f\xde\x38\xbd\xfa\x62\x49\xab\x40\x05\x3a\x94\xc8\ \x75\x6f\xf9\x63\x02\x86\xa7\xc0\x56\xaa\xa2\xcf\xc2\x7a\x42\xf7\ \x0f\x8b\xf5\x35\x68\xe9\x19\xd0\xbe\xfa\xbc\x01\x6e\x27\x29\xaa\ \x33\x64\x92\x60\x82\xce\x4b\x35\xcb\x1e\x49\x99\x7b\x46\x4c\x16\ \xaa\xd3\x6d\x06\xec\x6c\x25\xc6\xa0\x0a\x36\x81\x60\x27\x29\x1a\ \x56\xd5\x00\x06\xf0\xb0\xca\x67\x88\xcc\x72\x61\xa3\x91\xcf\x12\ \x6a\x6f\x73\x19\xbb\x37\x10\xb1\x28\x05\xae\x19\x4e\xd3\xde\x1f\ \x88\x47\x9a\xc1\x98\x77\x12\x65\x2c\x48\x37\x8d\xbe\xe3\xcc\xc9\ \x52\x9a\xe7\x64\xd8\xd8\xff\x00\xc4\x5a\x68\xa8\xbc\x80\x49\xf5\ \x32\x42\x2f\x91\x82\x3f\x79\xaa\xfb\x85\xba\xcb\x16\xa8\xab\x55\ \xc1\xf2\x9b\x03\xd2\x29\x9f\x77\x26\xc6\x79\x4d\xfc\xad\x31\x87\ \x6e\x7b\x49\x32\xb1\xb0\x0c\x7a\x89\x36\xe2\x7a\xc6\x55\xb8\x5b\ \xb1\xe3\xa4\x58\x75\xe8\x36\x99\xa8\x1a\x2c\xa6\xed\xfa\x46\x16\ \xf1\x16\xcb\x86\x1f\xb8\x93\x30\x3b\xaf\xfc\xc3\xa6\xdd\x78\x22\ \x38\x98\x40\x36\xb8\xe2\x15\x50\x1f\x4e\x2c\x3c\xd4\xff\x00\x83\ \x0d\xbc\xe3\x72\xe3\xb8\x98\x83\x6d\x8d\xaf\xdf\xda\x1a\x93\x23\ \xba\x23\x92\x6e\x31\x83\x36\x99\xa7\x53\x27\xca\x09\xe3\xa4\xf6\ \xa1\x3c\x26\x20\x65\x0f\x1e\xa2\x28\x94\x08\x76\xe3\x13\x40\x1a\ \xaa\x25\x58\x91\x02\x8b\x0a\x37\x72\x01\x20\x43\x46\x64\xc0\x26\ \xc7\xa1\x99\x53\x6b\x72\xbf\x51\x10\x92\xad\xef\xb8\x09\xe5\x7b\ \x60\x75\x8d\x54\x1b\xee\xaf\xf4\x33\x2a\x50\x7b\xee\x0b\xb8\x7a\ \x45\x12\x49\xbe\x6e\x23\x29\xb9\x07\x9c\xf4\x33\x2a\x2d\x85\xc8\ \x20\xcf\x28\xf4\x90\x5f\xbc\x35\x1a\x65\x87\x17\xbd\xa5\x14\x3f\ \xcc\xd1\x65\xbf\xde\x28\xf2\xfa\x89\x0a\xb1\xf0\x85\xf1\x9e\x63\ \x74\xaf\xe7\x5d\xb8\x37\x99\xb1\xad\x36\x9d\x5a\x89\x50\x0c\xdc\ \x1e\xb3\xa7\xf1\x10\xb5\x52\x96\xa8\x2d\xb7\x8b\x31\x1f\x98\x49\ \x18\x0a\xa0\xb8\x1e\x61\xf3\xaf\xf5\x96\xe8\x08\xaf\xa7\xab\xa6\ \x3d\x46\xe5\xf7\x1f\xfa\x99\xbf\xd6\xa7\xf1\x0a\x27\x88\x4a\x82\ \x2f\x6c\x5e\x4e\x69\x9e\x0a\x5f\xd5\x65\x9b\x0a\x03\xb7\x93\x88\ \x15\x29\xdf\x80\x55\xbf\x63\x29\x46\x27\x5d\xaa\x36\xb0\x3b\x5b\ \x90\x47\x10\x1e\x9b\x21\x0c\xa7\x72\x1e\x0c\x70\xf1\x03\x6d\x37\ \x37\xfa\xcf\x17\x34\x81\xde\xaa\xd7\x3c\x4d\x05\x6d\xf1\x1f\x03\ \x4e\x1b\xec\x7a\x65\x66\xe0\x04\xe9\xeb\x26\xad\xf1\x2a\xb7\x0d\ \x4a\x96\x9f\x69\x3f\xff\x00\x50\xc4\x9b\x54\x8e\xd5\x09\x72\x6f\ \x27\x25\x92\xad\x87\x03\x90\x61\x38\xc5\x6d\x57\xff\x00\x56\xd4\ \x36\xe5\x22\x88\xbf\x6a\x62\x4b\x57\xe2\x7a\xda\x4f\x9f\x0c\x8e\ \xc2\x98\x1f\xd2\x29\x91\x73\x51\x70\x0e\x3d\xa1\x32\x2d\x4a\x7b\ \x4f\xcc\x38\x33\x59\x06\xd5\x34\xfe\x31\x49\xcd\x35\xad\xa5\x4d\ \xbf\x9b\xb7\xed\x3d\x5f\x5d\xa7\xa7\x57\x65\x4d\x1a\x8e\xbc\x03\ \x79\xc9\x65\x28\xd6\x23\x1d\x44\xae\x8a\xf8\xf4\x3c\x06\xcb\xa8\ \xdd\x49\xbb\xf7\x58\x61\xd5\x94\xf5\x1f\x0d\xaa\x2c\xd4\x02\xfb\ \x62\x39\x34\x5a\x0d\x42\x94\xa7\x59\xa9\xb7\x23\x77\x13\x80\xc0\ \x83\x6c\x83\x19\x46\xb5\x4a\x6c\x08\x63\x89\x60\xd5\xd5\xfe\x1d\ \x5e\x90\x25\x6c\xe3\xba\xc8\x89\xb8\xda\xdc\xf7\x97\x26\xa6\xa2\ \x9f\x12\x9b\x10\x18\xf1\xd2\x7a\xbd\x3a\x5a\xc0\x5a\x9d\x92\xb0\ \xc9\x1d\xe3\xdf\xd4\xe7\x30\x22\x33\x46\xf6\xd4\x52\x63\xc8\x61\ \x01\xf1\xe4\x6b\x82\x20\xad\xd5\xc1\xec\x64\x0f\xac\x2d\x59\x87\ \x66\x22\x09\x19\xf5\x87\xab\x16\xd5\x54\x3e\xb3\x00\xc0\x3d\xe2\ \x86\xa3\x68\xbf\x58\xea\x22\xe2\xe7\x03\xbc\x48\x0c\x3f\xbc\xa8\ \x28\x52\xa0\x74\x12\xa4\xca\xb6\x70\x36\xe2\xdc\x0e\xf3\xd4\x5c\ \xa9\xbf\xd2\x01\x22\xf9\x39\x86\x2d\xc8\xe0\xf1\x02\x61\x7d\xcc\ \x77\x5a\xf7\xc1\x9a\x97\x17\x5c\x83\xcc\x49\xe4\xc3\xa6\xe3\x70\ \x0d\x91\xde\x08\x45\x77\x64\x09\x80\x95\x61\x70\x44\x6b\x2e\xdc\ \xde\xea\x78\x98\xb7\xef\x71\xd8\xcb\x51\xf4\x2a\x90\x01\xe4\x4e\ \x8e\x9f\x50\x08\x07\x91\xd6\x72\x17\x68\xc8\x36\x87\x4a\xb1\x4a\ \x99\xc5\xff\x00\x79\x9b\xc7\x4c\xaf\xa2\x4a\x14\xf5\x94\xb6\x02\ \x03\x11\xe5\x3e\xb3\xe5\xb5\xd4\x5e\x8e\xa5\xd1\x81\x0c\x0e\x67\ \x67\xe1\x9a\xbd\xb5\xc6\xd3\x9e\xd2\x8f\x8d\x69\xa9\xea\xa9\xf8\ \xca\x33\xdf\xb1\x98\xe3\x7f\x35\xab\x36\x3e\x4d\xb9\xdc\x31\x68\ \xea\x6e\xae\x00\x6b\xdc\x75\xed\x02\xb5\x36\xa5\x50\xa3\x8b\x11\ \x05\x30\x44\xec\xe6\x6d\x7d\xca\x36\x72\x1b\x8b\x75\x8a\x6b\xee\ \xb1\xbd\x87\x4f\x58\xf4\x2c\xaa\x5a\xc1\x80\xc8\x07\xac\x96\xa5\ \x42\xf5\x59\xc8\x00\x93\xc4\xa2\xa6\x6e\xc5\x80\xb7\xb4\xc3\x63\ \xd7\xf5\x99\xc8\xb8\xe9\x16\x49\x38\xbe\x24\x8d\x04\x0e\xb1\xce\ \xd8\xe4\xf3\x23\x0f\x90\x2d\xf5\x8f\xaa\xd8\xe6\x49\xbb\x8d\xf0\ \x63\x91\x89\xeb\x25\xf5\x94\x69\xc7\x9a\xc4\xe6\x49\x65\x0e\x2e\ \x7a\x4d\xb9\xe9\x88\x74\xc7\xdd\xf1\x30\x8b\x4e\x6d\x08\x10\xc3\ \x9c\xcc\x3c\xdc\x7c\xd3\x0e\x33\xfb\x42\x5c\x8b\xda\x44\x4a\x47\ \x2d\x93\xda\x7a\xa1\x2d\xe6\xb5\xba\x62\x78\x29\x6c\xf5\x84\xad\ \x7b\xa3\x75\x82\x29\xbf\xd3\x23\x99\x1d\x5b\x6e\xc7\x32\xdd\xbe\ \x56\x1d\x64\x95\x52\xe6\xf3\x5c\x45\x2f\x79\x03\x98\x74\x8d\xc7\ \xd7\x88\xa6\x04\x1b\x46\x23\x0b\x64\x4d\x03\xa9\x92\x0d\xe1\xb0\ \xba\x96\x5e\x0f\x22\x00\x61\xb7\xbc\xcb\x9b\x82\xa6\xe4\x0e\x26\ \x4b\x0f\xde\x27\x84\x70\x47\xc9\xfd\xa4\xa5\x48\x72\x08\xe3\x99\ \x48\x1b\xae\x46\x08\x8b\xac\xde\x21\xdc\xbf\x32\xf2\x3b\xfa\xcd\ \x40\x9f\x27\x26\x09\x61\xf2\xf0\x04\xf5\x4a\x8c\x79\x1e\xd6\x81\ \x4f\xcc\xd9\xb5\xa2\x0c\x5a\x6a\x16\xe4\x66\x26\xec\xa7\x92\x23\ \x77\x5c\xfa\x4d\x21\x4e\x1b\xe8\x64\x80\xd5\x2a\x1a\x78\x6d\xde\ \xf9\x80\x2a\xe3\xcd\x4d\x4f\xd2\x35\x52\xc7\x10\x4d\x3b\xb7\x63\ \x14\x65\x17\xa6\xd4\xc8\x2b\xc7\x40\x63\xf4\xe3\x4a\xc4\x7f\xa8\ \xad\xf4\x32\x7a\x09\x67\x2a\x7a\x88\x68\x36\xb9\x04\x42\xa7\x5d\ \x56\x89\x60\xe9\x55\xae\x46\x7c\xb2\x8a\x1e\x05\x27\x15\x96\xa3\ \x2d\x9a\xf6\xdb\xc4\xe3\xa8\x65\x53\xb4\x9c\x1b\x83\xe9\x28\xd3\ \xd7\x6b\x80\xf9\x07\xbc\xe7\x78\xb5\x2b\xaf\x5a\x86\x95\x6a\x6e\ \x2e\xfb\x5c\x6e\x16\x1d\x0c\x9a\xa3\x68\x94\xd8\x53\xac\xe4\x73\ \xe6\xb4\xb3\x62\xd5\xd0\xab\x15\x27\xc3\xc5\xc1\xe9\x39\x8e\x29\ \x6e\x3f\x78\xcb\xee\x26\x63\x54\xd1\xa9\xd2\xd8\xff\x00\x95\x1f\ \x57\x31\x5a\x8d\x55\x1a\x62\xe3\x43\x40\x8f\xf7\x5c\xc0\x34\x99\ \x9a\xca\xe8\x6f\xd2\xf6\x8c\xad\x48\xd8\x17\x41\x70\x00\x00\x0f\ \xe6\x6b\xa8\x12\x36\xae\xb5\xb6\xd4\x0a\xe0\x74\x75\xbd\xa7\x85\ \x4d\x1d\x61\xb6\xbd\x02\x9d\x9e\x99\xfe\x86\x21\xeb\x31\xf9\x80\ \x75\x03\x83\x00\x6c\x60\x40\x3b\x7d\x0c\xde\x33\xa6\xb6\x82\x8e\ \xdd\xda\x7d\x52\x30\x63\xc5\x41\xb4\xfb\x44\x6a\x68\x55\xa2\x4a\ \xbd\x2f\x27\xe1\x71\x0c\xab\x23\x05\x2b\x75\x38\x23\xa1\x84\x8f\ \xa8\xa1\x59\x82\x31\x6a\x6d\x7b\x29\xcd\x8f\x69\x76\x90\xd7\xa7\ \xb9\x43\x5b\x31\x54\xee\x0d\xd4\x90\x41\xb8\xf7\x9d\x74\x1a\x7d\ \x55\x32\x36\x8a\x35\x48\xff\x00\xea\x4f\xf4\x9c\xed\x5d\x27\xd3\ \xd6\xf3\x29\x06\x32\x8c\x06\xb4\x6f\x22\xb8\x16\x0f\xc8\xec\xdd\ \x64\xa4\x09\x5a\x95\x6a\x55\x29\xff\x00\xf6\x5f\xeb\x25\x38\x3c\ \xc9\x1b\x45\xf6\xae\xc6\x38\x27\xf4\x84\x4b\x23\xab\x0c\x30\xeb\ \x27\xe2\xd9\x94\x82\xae\x81\x2f\x90\x30\x4c\x41\xd5\x55\x75\x94\ \x8d\x45\x00\x56\x5f\x98\x77\x12\x35\xb1\x3b\x5b\x91\x28\xa4\x5d\ \x18\x3a\xfc\xc3\xf7\xf4\x8d\xd5\x50\x15\xd7\xed\x34\x41\xff\x00\ \x78\xec\x61\xe1\x06\xb0\x01\x58\xe3\x95\x07\xf6\x82\x9b\x76\x80\ \x41\x8d\xd4\xd3\x25\xa9\x87\x16\xf2\x2c\x51\x42\x1a\xe4\x45\x0e\ \x9e\xd3\x58\x0b\x5d\x41\xcc\x7d\x72\x8d\x66\x5b\x8b\xf4\x89\xf0\ \xf6\xb6\x0d\xe6\xd8\xf5\xfd\xe0\x98\x49\xe8\x23\x74\xec\x49\xb1\ \xe2\xf0\x00\xef\x68\xda\x29\x9b\xfe\xb2\x50\x55\x17\xcc\x6d\xc4\ \xc4\x07\xac\xa8\x2f\x94\x62\xf7\x98\x50\x76\xb4\x34\xb6\x9b\x5e\ \x9d\x8e\x47\x04\x4d\x65\x01\x6e\xa7\x10\x54\x00\x6d\x79\xa4\xec\ \x39\x82\x27\x75\x9a\xf3\xdb\xed\xc0\xb8\xed\x3d\x55\x41\xbb\x2d\ \xfd\x47\x68\xa5\x22\xe4\x1b\xc5\x28\xa0\xd7\x60\xf4\xc9\xba\x9c\ \x89\xd6\xd3\xea\xcd\x54\x64\xdd\xb5\x8e\x6c\x78\x6b\x4e\x0d\x02\ \x52\xb5\xd6\xf2\xda\x4c\x0d\x42\x2e\x37\x0c\xfb\xcc\xf2\x86\x55\ \x1a\xea\x0b\xa9\x42\x57\x0e\x38\xbf\xf0\x67\x1d\x91\x81\xb1\x04\ \x10\x67\x55\xea\xb2\x5a\xa8\xc8\x5c\x30\xee\x26\x7c\x42\x82\xd4\ \xa3\xf6\x8a\x36\x38\xcf\xb4\xa5\xc5\x66\xb9\x88\xd7\x7d\xac\x40\ \xec\x6f\x00\xd3\xdd\x72\x2d\x79\xe6\x5e\x6f\x3c\x0e\xdc\x8e\x66\ \xd9\x08\x52\x3f\xb4\xf3\x27\xd6\x13\x0c\x6f\x51\x83\xd3\xb1\x9a\ \x0d\xc5\x8f\x22\x48\x86\x43\xcd\x8f\x31\x95\x01\xf0\xd4\xc2\x00\ \x93\xc4\x7b\xa8\x34\x97\x89\x24\xb4\xc9\xbd\xa5\x74\x30\x41\x8b\ \x5a\x37\x37\x06\x53\x46\x91\xbd\xce\x25\x6a\x91\x5a\xff\x00\xa6\ \x27\x87\xa4\x62\x29\x20\x01\xcd\xa1\x9a\x61\x46\x39\x9c\x9b\x25\ \x80\x51\x73\xcc\x05\xbd\xee\x4c\x27\xe6\x01\x3d\xa2\x94\x29\x04\ \x5c\x4f\x38\x07\x23\x06\x22\x9b\x35\xe3\x41\xbc\x10\x99\x7c\xa5\ \xfa\x11\x27\x74\xea\x25\xea\xb7\xa1\x63\x6b\x9c\xc9\x9d\x48\x38\ \xcc\xa5\x48\x2a\xa1\x63\xc4\xc3\x49\x80\xc6\x65\xa6\x98\x61\x91\ \x63\x31\x69\x84\xcb\x5c\xf6\x9a\xfd\x0c\x48\xc0\xab\x5a\xf6\x8a\ \xb3\x83\xbb\x23\xd6\x52\xee\xaa\x49\x16\xb9\x93\xd5\x76\x7b\x5c\ \xe3\xb4\xd4\x0f\x1a\xac\xca\x01\x63\xcc\x1d\xe0\xb0\xb1\xb3\x77\ \x81\x6f\x38\x8b\xdd\xe6\xb4\x40\xaa\x80\xcd\xb9\x47\xb8\x80\xa0\ \x28\xb4\x6a\xb9\x07\x73\x00\xc0\x41\xa8\xa1\xc6\xea\x63\xd4\x8e\ \xd2\x40\x51\x78\x77\xef\xc4\x04\x06\xf7\x38\x86\x2d\x7b\x48\x3c\ \x01\x06\xe2\x53\x4d\x09\x17\xda\x18\x45\xd3\x5b\x64\x4a\x28\x60\ \xe3\x83\xc8\x85\x6a\x05\x55\x4b\x02\x30\x6f\xd6\x65\x6a\x4c\x2a\ \x5c\x0e\x63\xde\x98\x24\x5c\x63\xd2\x1b\x21\x34\xc1\x10\xd3\x89\ \xa9\xab\x6e\xda\x41\x00\x8f\xd2\x1d\x35\x65\xc1\xb9\xf7\x9e\xf3\ \x8a\x83\x69\xf7\x8f\x46\x26\xe0\x8b\x5f\x83\x2b\x53\xa9\xf0\x66\ \xdc\x4d\x16\xe2\xa2\x10\x7d\x08\x91\xd6\xa7\xb4\xb0\x7b\x0b\x18\ \xcd\x2b\xd4\xa2\x45\x40\x7e\x52\x0c\x1d\x6e\x6b\xba\xe2\xfc\x8f\ \x59\xcf\xeb\x5f\x08\x6a\x94\xc6\x15\x73\xf9\xa4\xec\xb5\x41\x2d\ \x4e\xa1\x27\x9b\x03\x63\x0a\xa2\xe0\x1e\x22\x4b\x35\xb0\x31\xde\ \x6e\x46\x49\x76\x5d\xdf\x28\x06\x79\x45\x36\xba\x70\x70\x71\xc1\ \x8d\x14\x0d\x4c\xab\x02\x4f\x43\x89\x82\x81\x01\xc9\x16\x23\x81\ \x69\xad\x05\x06\x60\xe7\xb1\xfc\x27\x89\x8a\xcc\xa4\xb2\x12\x47\ \x51\xda\x59\xa4\xf0\xaa\x50\x74\x6a\x57\x7b\xdd\x4d\xf3\x23\xac\ \xa6\x9b\x92\x87\xcc\x38\x3d\xe4\x9e\x15\x88\x62\xc2\xd9\x3d\xa3\ \x13\x56\x8e\x86\x8e\xa2\x98\xa8\x9f\xb8\xf6\x88\xb0\xad\x48\xed\ \x16\xa8\x39\x12\x67\x36\x7e\x6d\xd6\x38\x14\x54\x44\xa3\x56\x9b\ \x6c\x0d\x4d\x8d\x83\x03\xc8\x91\xd6\x14\x83\x95\xda\xc2\xd2\x9d\ \x3d\x45\xf3\x50\xaa\x6e\x8d\xc7\xa1\xef\x27\xd6\x53\x64\xd5\x32\ \x9b\x1e\xb2\x41\x0b\x46\xd7\x25\x87\xbc\xf0\x5a\x7c\xf8\xb9\xbf\ \x51\x04\xbd\x94\x0b\x64\x40\x2d\x7e\x91\x0b\xa9\xaa\xba\xe6\xaa\ \xdc\x62\xf2\x9d\x2d\x36\xa3\x53\x7a\x82\xc8\xd8\x61\x79\xcb\xa6\ \xf9\xb5\x85\x8c\xb7\x49\x55\x5a\xa0\x57\xc5\xb8\x3d\xe1\x4c\x5d\ \xf1\x2d\x30\x4f\x0c\xab\x38\x1b\x6c\x09\x18\x92\xa3\xb6\xdd\x8e\ \x78\xe0\x91\x2a\x4d\x49\xa7\xb6\x85\x56\x6d\xa4\x75\xe8\x6f\x06\ \xad\x40\xb6\xa7\x59\x03\x8e\x8d\x68\x4d\x34\x01\x59\x48\x7f\x0d\ \x5c\x75\x22\x61\xd9\xd8\x80\x7d\x63\xa8\x8a\x37\xea\x01\xec\x6e\ \x23\x7e\xca\x7f\xed\xb0\x75\x3d\x25\xab\x11\x95\xa6\x4f\x24\x7d\ \x23\xe8\xd1\x3c\xab\x83\x06\xa5\x27\xa6\xd6\x28\x40\x8d\xa4\x01\ \x1c\xca\xa3\x91\x5c\x0c\xac\xd6\x50\x46\x46\x66\xae\xe5\x59\xa5\ \xd8\xf0\x73\xd8\xcc\x34\x99\xf9\x8b\xa8\xc4\xae\xef\xd6\x54\xd9\ \x1e\x74\x10\x48\xa2\x54\xa9\xb8\xbc\x65\x08\x89\x23\xe5\x98\x50\ \x7c\xd7\xfa\x4a\x1e\x92\x1f\xfb\x96\x1e\xd3\x69\x69\x85\xfc\xb5\ \x50\x83\xcc\xd6\x8c\x4c\x0f\xd2\x37\x76\xda\x88\xdf\x49\x57\xd8\ \x10\x30\x6f\x1d\x6d\xed\x1e\xda\x5d\x22\xa0\x35\x2b\xdf\xad\x84\ \x3f\x50\xe1\x2a\xe0\x9c\xe6\xf8\x3e\xb0\xfe\x1e\xfe\x15\x66\xd2\ \xbe\x51\xb2\xb7\x86\x6a\xe8\x51\x46\xda\x6c\xd6\xfc\x44\xc6\xd7\ \xd5\x69\xbc\x24\xad\x4e\x82\xf1\xd7\xa1\x99\x2e\x47\xc4\xb4\xad\ \x42\xb9\x03\xe5\x39\x07\xd2\x48\xea\xc0\x8e\x67\xd3\x9a\xc2\xaf\ \xc3\xfe\xd3\x45\x90\xb8\x19\x04\x7e\xb3\x92\xdf\x12\xd4\x03\x7f\ \x0e\x91\xee\x02\xf3\x35\xc6\xda\x2c\x88\x69\xe4\xed\xb9\xb1\x84\ \x89\xc8\x38\x3c\x4b\xa9\xfc\x62\xa0\x20\x3e\x9e\x8b\x0e\xc5\x65\ \x94\xfe\x27\xa4\x70\xa6\xae\x8a\x99\xbf\x69\x5b\x7f\x82\x48\xe2\ \x84\x65\x6c\x66\xd2\x92\x80\x69\xc3\x05\xeb\x91\x3a\xe9\x4f\xe0\ \xda\xa1\x60\x5a\x83\xc3\xa9\xf0\x8a\x9e\x17\xf9\x7a\xab\x59\x79\ \x99\xbc\xe3\x5f\x97\x0e\x98\x05\xac\x44\xb2\x98\xe0\x1c\xc3\xa9\ \xa5\x7a\x2d\x6a\x94\xd9\x2d\xdc\x4d\xa4\x96\x3d\xe5\x6e\x8c\x38\ \xa9\x5c\x0e\x7a\xcd\x10\x69\xb1\xdc\x4c\x72\x59\xef\x71\x98\x34\ \x96\xb0\xb9\xe2\x2b\x69\x12\xe3\x4a\xed\x7c\x4c\x6d\x39\x61\x81\ \x89\x68\xc4\x04\x1b\xe2\x15\x30\x77\x0c\xca\x5a\x95\x34\xbd\x89\ \x63\x12\xc1\x47\x04\xc7\x51\xe2\xa2\x86\x05\x4d\xed\xd2\x6d\x41\ \x63\x8e\x24\xa2\xea\x6e\x0c\xa3\x7d\xe9\x83\xd4\x60\xc0\x82\xdb\ \x8d\xb8\x89\xac\xc4\x5e\xfd\x63\x2a\x9d\xa0\x58\x5c\x99\x25\x46\ \x3c\x9c\xc6\x46\x69\x75\x47\x51\x27\x62\xd2\xac\x11\xda\x26\xaa\ \x8b\x9c\x83\x37\x01\x57\xf3\x1f\x68\x25\x40\x37\x31\xaa\x86\xc4\ \xdb\x88\x23\x1c\x8b\x98\x86\x05\xc5\xc8\xc4\x15\x05\x5b\x72\x18\ \xc1\x73\xeb\x0d\x13\x3f\xd2\x4b\x00\xca\xac\x37\x2d\x87\xa0\xe9\ \x04\x21\xea\x23\x80\xda\x77\x01\x60\x79\x13\x76\xd8\x6e\x5c\xac\ \x8e\x31\x56\xe0\x47\xd3\xa6\x47\x06\x0a\x10\x70\x2e\x3d\x23\x81\ \xb0\xc8\x99\xb4\xc3\x54\x87\x4d\xbd\x44\xc4\xbd\x88\x31\x6b\x50\ \x5f\xb4\x72\x90\xf7\x33\x24\x97\x41\xbb\x70\xe9\x0d\x00\x28\x08\ \x1c\x4f\x30\x21\x8d\xf8\x8c\xa4\x2f\x70\x64\x8d\x46\x5f\x08\xa9\ \x36\x36\xb4\xdd\x55\xbc\x44\x63\xc9\x51\x98\xaa\x96\x0c\xa9\x19\ \xab\xf3\x54\x55\xec\xa0\x41\x27\xae\xa4\xae\xf5\x02\xc7\xd2\x21\ \x89\x23\x6e\x31\xc8\xb4\xaf\xf0\x94\x5f\xa1\xf5\x93\xb8\x0a\x85\ \x9c\x5d\xaf\xe5\xb4\x60\xa5\x32\xd8\xee\x06\xc4\xe0\x4d\xa9\x5e\ \xaa\xd3\x0b\xbb\x24\x66\xf1\x95\x54\x30\xf1\x12\xc4\x70\x04\x95\ \x77\x12\x5e\xd8\x1f\xcc\xd4\xed\x3c\x03\x97\xdb\x4e\xe4\xda\xe2\ \xdd\x0c\xbc\x69\x68\xbe\x98\x6a\xab\x33\x0b\xe0\xaa\x8e\xb2\x13\ \x55\xe9\x9e\x99\xc4\xb2\xaf\x9b\x44\x85\x5a\xc6\x93\x5d\x81\xe2\ \xc7\xfe\x09\x55\x1c\xcd\x55\x33\xa6\xd5\x59\x4e\x39\x56\xee\x24\ \xfa\x94\xde\x7c\x45\x1c\xf2\x3d\x67\x4a\xbd\x23\x5a\x88\xb1\x05\ \xa9\xe4\x0b\xf4\x91\x30\x6a\x76\x2c\xa6\xdc\x1c\x4d\x4a\xcd\x46\ \xd7\xb8\x3d\x6d\x69\x4d\x6b\x57\xd2\x2b\xff\x00\xdc\xa6\x33\xea\ \x22\x6a\x26\x4e\x49\x1c\x89\xb4\x2a\x78\x76\x27\x20\x1b\x11\xe9\ \x14\x9d\xc6\x38\x8b\xe8\x6d\x2a\xaf\x4f\xc3\xaa\x45\xee\xa7\x2a\ \x7b\x88\x97\x50\x01\x90\x62\x9c\x43\xa6\x79\xcd\x8d\xa2\x01\xce\ \x73\x1d\x48\x16\x61\x6c\xdc\xf1\x08\x9d\x66\x54\xac\x94\xd2\xa3\ \x80\xdb\x05\x8d\xbf\x68\xf4\xa3\xbe\x90\xa4\xee\xa5\xc7\x07\xac\ \xe7\xd6\xba\xd6\x01\xae\x2c\xa2\x57\x4a\xa1\x6b\x6e\xcf\x66\x85\ \x8d\x40\xb5\x3a\x94\x5b\x65\x44\x36\xef\x1d\x49\x99\x16\xfb\x8f\ \xa4\xa0\x13\x51\x2d\x7b\x30\xe2\x24\xdb\x76\xd7\x4b\x1e\xb6\x86\ \xe9\x36\x86\xb0\x37\x92\xaa\xee\x1d\x8c\xa0\x52\xa6\xfe\x6a\x43\ \x1e\xf2\x41\x40\x36\x69\xb0\x62\x3f\x0f\x58\xca\x0c\xf4\xde\xf9\ \x52\x3a\x18\x5f\xf1\x2a\xa6\xb4\x80\xb3\x16\x07\xb1\x13\x7c\x3a\ \x27\x87\xb1\x86\x8f\x4e\xb2\x58\x8b\x37\x79\x35\x54\x64\x36\x3c\ \x74\x33\x24\x4d\x4d\x46\x2e\x59\x62\x2a\xf8\x34\xde\xd9\x33\x1d\ \x8d\xae\x0c\x45\x56\xbf\xcc\x2f\xeb\xd6\x6a\x41\x47\x52\xad\x3e\ \x56\x98\xcc\x57\x8e\xe0\x1b\x59\x7d\x84\xc0\xa5\xb0\x0e\x20\xb5\ \xb2\x09\x9a\xc0\xf2\xd7\x76\x24\x16\x36\xf7\x8c\x37\xf0\x8d\xcd\ \xcc\x98\x9b\x1c\x0c\x4a\x37\x1f\x00\x1e\xa0\xe6\x49\x94\x05\xe9\ \xba\x93\xed\x19\xa6\x60\xda\x66\x4b\xf5\x93\xa1\x3e\x21\x17\x85\ \xa4\xb8\x77\x5e\x31\x2a\x96\x7c\x08\x96\x5d\x46\x98\x9c\x7f\xc1\ \x39\x6e\x36\xb9\x17\xb1\x06\xd3\xa7\xf0\x70\x57\xe2\xce\xa3\xf1\ \xa9\xfe\xf2\x3f\x88\x21\x5d\x75\x65\xb5\xbc\xc6\x13\xd5\x7c\x4e\ \x72\x01\x3c\xc7\x51\x1f\x70\xc4\x5e\xea\xdf\xcc\x50\x16\x00\xda\ \x51\xa6\x5c\x54\x5c\xe5\x6f\x11\x1b\x7b\x05\xf5\xea\x25\xfa\x2d\ \x45\x5a\x54\xd4\xa5\x46\x06\xfd\xe4\x58\x08\x84\xdb\xd6\x39\x40\ \xf0\xd6\xc7\x36\x87\x2e\xda\x8e\xdd\x1f\x89\x78\x80\x26\xa6\x9a\ \x54\x5f\x6c\xc6\x7d\x8b\x4f\x5c\x97\xd2\xb8\xbf\xe5\x33\x8f\x4f\ \x71\xb5\xc8\xbc\xb2\x8d\x41\x49\x77\xa9\xcd\xfb\xce\x56\x7f\x1a\ \x97\xfa\x61\xd3\x3d\x3a\x85\x5d\x0d\xf8\xbc\x34\xa2\x05\xfc\xc3\ \xda\x55\xa7\xf8\x82\x55\xb5\x3a\xea\x08\xef\x0a\xae\x90\x3d\xde\ \x8b\x82\xbd\x8c\x36\xfd\x6b\x08\x4f\x0d\x45\xf6\x92\x7d\x62\x35\ \x15\x49\x16\x5e\x23\x1e\x9d\x54\xf9\x95\x80\x88\xa8\x09\xe0\x8b\ \x46\x02\x00\x62\x73\xc0\x8b\x71\x73\x7e\x23\x18\xb0\x16\xe0\x99\ \x81\x71\x73\x34\x13\xbd\xc6\x21\x51\xc8\x6f\x6b\xc3\x5a\x26\xa3\ \xd8\x5c\x08\xc7\xa2\x88\x40\x0f\x7b\x7c\xde\xf2\x18\x99\xaa\xf7\ \xcc\x5b\xa8\x22\xe3\x37\x9b\x59\x02\x92\x2f\x31\x03\x0e\x38\x9a\ \x05\x5e\xd8\xb4\x5b\xe7\x9c\x19\x66\xc5\x6c\x8c\x19\x3d\x4a\x47\ \xa5\xe3\x28\xc2\x43\x95\x04\x4f\x00\xb6\xbf\x78\x2c\x0e\xe2\x38\ \xb4\xd5\xb9\x04\xf1\x69\xa4\xd0\x07\x48\x6a\x97\x16\x26\xd3\x13\ \x04\x82\x6d\x18\x8a\x06\x79\x82\x09\x56\xb1\xbd\x8f\xac\x2a\x20\ \x01\x9b\x90\x79\x9a\xd6\x3c\xcc\x00\x80\x6d\x99\x26\xba\x59\xb1\ \x8e\xd6\x84\x1b\xf0\x9e\xd0\x51\xb7\x8d\xad\xcf\x49\xaa\xb6\x1f\ \x30\x3f\xcc\x0b\xd1\xda\x53\xe6\x2b\xde\x2d\x6d\x90\x61\x52\xb2\ \xbe\x0f\x48\x55\x14\x31\x16\xf3\x7d\x0f\x68\xdd\x3a\x1d\xe0\xf4\ \xef\x27\xa9\x72\x80\x93\x89\x46\x9a\xaf\x86\x2e\x4f\x22\xc0\x19\ \x92\x02\xa6\xa5\x7b\xe3\x06\xd0\xb5\x8d\x7a\xec\xab\xc0\xc4\x2d\ \x31\x56\xd5\x03\xc6\xdc\xdb\xa4\x4d\x40\x7c\x42\xcd\x70\x09\xbc\ \x93\x50\x8e\xb0\x35\x34\xbc\xfb\x87\xca\x73\x79\xa3\x20\x8b\xc3\ \x27\xee\x41\x6c\x28\x92\x73\x77\x13\x54\x22\xe1\x57\xfe\x5e\x54\ \x02\x1d\x03\xb7\x02\xa3\x05\x1f\x4e\xb0\xaa\xea\x74\x57\x25\xb4\ \x59\x23\x3b\x5e\xc2\x4d\xa9\xd4\x9a\xcc\x3c\xab\x4d\x14\x59\x51\ \x78\x13\x7d\xd0\x48\x42\x5c\x52\x61\x92\x79\x33\x74\xd5\x88\xd6\ \x38\x70\x4d\x37\xf2\x91\xd8\x1e\x26\x0f\x11\x95\x82\xdc\x93\xe5\ \x51\xfc\xca\x74\x74\x95\x36\xbd\xc1\x28\xb7\x21\xb8\x27\xa4\x68\ \x2b\x5b\xa7\xab\xa7\xa8\x8d\xb8\x30\x61\x63\x69\x3d\x76\x75\x56\ \x04\x9b\x5e\xf2\x8d\x75\x64\xae\x81\xd6\xf6\x56\xdb\xff\x00\xb8\ \x87\xa8\x2a\xa8\x2c\x45\xc0\xb3\x5f\xac\xa2\xa9\xfc\x42\xcb\x6d\ \xaa\xc5\x7b\x8e\x91\x0e\xd4\xee\xc0\xa5\xae\x31\x63\x09\xd3\x6b\ \x06\x17\xb1\xe2\x26\xa8\x37\x04\x8b\xcd\x32\x7a\xf8\x75\xb4\xd6\ \x0e\x43\xd3\xe2\xe3\x91\x10\xc8\xc5\x71\x9f\x6c\xc0\xa4\xc6\x9d\ \x40\x7b\x18\x55\x86\xca\x9e\x4e\x0e\x44\x10\x36\xf3\x19\x44\x94\ \x21\x86\x60\x78\x84\xfc\xe0\x34\xa3\x4e\x8a\x48\xda\x79\xe8\x64\ \x95\xb3\x0a\xbb\x56\xa7\x25\x45\x9b\xb4\x62\xab\xd3\x21\x4d\xad\ \xfb\x18\xad\x86\xc8\x6d\x6b\x60\x8e\xd2\xf4\x0a\x50\x06\xf9\x6d\ \x71\xe9\x0b\xd3\x51\xea\x35\x03\x1b\x5e\xcd\xd2\x52\xd4\xc3\xa5\ \xd4\x5d\xba\xc9\xd6\x8f\x86\x77\xf4\x3c\x18\xf5\xa8\x6d\xfc\xcc\ \x5f\xf0\xc2\x1a\xcb\xde\xe2\x36\x95\x70\x46\xda\x83\x78\xf5\x19\ \x9b\x56\x9e\xf1\xbc\x0c\xc9\x76\xd9\xf3\x1f\x52\xf5\x5a\x6d\x73\ \xa7\x27\x77\x63\xcc\xc5\xa9\xb9\x4d\x3a\x83\xeb\x26\x56\xb6\x6f\ \x62\x3b\x46\xf8\xa9\x57\x15\x70\xdd\x1c\x43\x0e\x95\xa8\x46\x42\ \x41\xfa\x49\x77\x7e\x16\xbc\xe9\x30\x62\x9b\x1f\x24\x65\x4f\x79\ \x16\xa1\x81\x7d\xae\x3d\x8f\x69\xa9\x45\x26\xe5\x4f\x69\x95\x1c\ \x13\x76\xe4\xf5\x10\x2a\xde\xf8\xfd\x22\xc9\x6e\xb3\x4c\xe8\xcd\ \xd4\xdc\xe4\x7a\x46\x51\x7b\x82\x3a\x34\x9f\x71\x5c\x03\xef\x19\ \x41\x81\x18\x36\x37\xe2\x4a\x3c\x0f\xde\xc7\xd0\x1f\x7c\xc7\x9c\ \x73\x10\xe8\x56\xb5\xb3\x83\x2a\xa6\x36\xb1\xf5\x02\x14\xc3\xfe\ \x13\xe5\xf8\xbd\x12\x4d\xae\xa4\x67\xd8\xc5\xfc\x61\x7f\xf9\x1a\ \xc4\x62\xc6\x1f\xc3\x3c\xdf\x13\xd3\x77\xcf\xf5\x83\xf1\x73\x7f\ \x88\x56\xcf\x58\x7f\xe8\xfc\x46\x82\xc6\xd1\xfa\x4f\x35\x50\x3b\ \x82\x3f\x69\x39\x61\x8b\x73\x19\xa2\x6f\xf3\x48\x2f\xcb\x46\x81\ \x54\x07\x62\xfa\x08\x5b\xf6\xa2\x01\xf9\x60\xd5\x36\x19\xee\x66\ \x54\x60\x18\x03\xd0\x5a\x49\x4d\x37\x2a\x73\x29\x0d\xe5\x5b\x48\ \x68\xb0\x6b\x2f\x53\x29\x0f\x76\x6b\x1c\x74\x99\xb0\xc5\x08\xff\ \x00\x48\xf4\xd4\x54\xa6\xc0\xab\x11\xf5\x91\x03\x63\x37\x71\xb4\ \xc9\xd7\x5d\x3e\x23\x8b\x3a\x83\x3d\xe3\xe9\xaa\x1b\x35\x30\x3d\ \x44\xe4\x0a\x96\x1c\xe6\x6a\xb9\xb1\x20\xc3\xf2\x7f\x4e\xa3\xae\ \x91\x8f\x94\x9f\x4c\xc0\x03\x4e\x9c\x82\x7d\xe7\x34\x55\x37\xb0\ \x30\x8b\xdb\xcc\x72\x7a\x09\x62\xd5\x7a\x8a\xe8\x8b\x65\xc1\x3d\ \xa4\x2d\x56\xe6\xc3\x00\x98\x35\x09\xe7\x33\x29\x0b\xb6\x4c\xd4\ \x83\x47\x54\x13\x54\xf6\x83\x9b\xe2\x51\x58\x02\xe3\xd8\x41\x14\ \xee\x2f\x0d\x45\xa8\xb6\x67\x98\x10\x6e\xb9\x11\x81\x00\x19\x82\ \x4e\xd0\x6d\x24\x89\x95\x4b\xb5\xcd\x8c\x02\xac\x8d\x71\xc4\x7e\ \xa1\x30\x59\x6d\x6f\x48\x84\x72\x39\xc8\x9d\x23\x2d\x23\xcf\x8c\ \xa9\x9a\x5c\x0c\x42\x01\x5d\x6c\xa6\xd1\x4e\x8c\xa7\x32\x43\xde\ \x0f\x04\xfe\x93\xc7\x70\x1f\x34\x41\xc1\x86\x1b\x77\x26\x48\x7e\ \x6e\x41\x1f\xac\x68\xf3\x2d\xef\x9e\xb6\x89\x06\xc7\x10\xf7\x11\ \xf4\xe6\x55\x3c\x6a\x6d\x1c\xde\x36\x85\x4b\xb0\x36\xe6\x4a\xe2\ \xc6\xe3\x88\xea\x2c\x2c\x0d\xb8\x85\x89\x7e\xd3\xb2\xc3\xbc\x5d\ \x76\xb3\x2a\xa9\xf7\x94\xe9\xc0\x34\xf7\x74\x61\x10\x02\xee\x24\ \xe5\x9b\x3e\xd3\x0d\x0f\x4e\x2d\xa7\xa9\x50\xf2\x70\x26\x52\xac\ \xc3\xca\xc3\x7a\xf6\x31\x8c\x00\xa6\x88\x7a\x8b\x98\xad\x9c\xda\ \x48\xdd\x94\xaa\xb5\xe9\xb1\xa6\xe7\xa3\x71\xfa\xc5\xea\x28\xd4\ \x45\x65\x70\x7d\xcf\x11\x6d\xe4\x52\x3a\xc6\x69\xeb\xd5\xa2\x0a\ \x92\x1c\x11\xf2\xb6\x44\x92\x0a\xa9\xe7\x6b\xda\x03\x50\x6a\x96\ \x41\x8b\x9e\x4f\x49\x75\x6f\x05\x49\xf2\x96\x24\xe2\xf1\x6c\x5a\ \xc4\x0b\x64\x5a\x6a\x51\x82\x51\x4d\x34\x55\x16\x98\xb3\x26\x0b\ \x75\x69\x2e\xa5\x82\xe8\x55\x49\xf3\x3b\xff\x00\x10\xf4\xe5\x9d\ \xea\xad\xbe\x65\xbf\xed\x11\xf1\x03\x6a\x34\x03\x8b\xfc\xdc\x7b\ \xc6\x4e\xd5\x03\x32\x53\x45\x42\x30\xd9\x36\x9e\xd8\x00\xb9\x52\ \x6f\xd4\x75\x8a\xd4\x79\x19\x73\xca\xfe\x92\x9d\x35\x4d\xc9\xe1\ \xa9\x04\xa8\xb8\xf5\x13\x4c\xb9\xf5\xae\x8e\x54\xa9\xda\x7f\x68\ \x04\xdd\x76\x93\xc7\x13\xa7\xa9\x44\xaa\xa0\x81\x9b\x66\x73\xc8\ \x09\x50\xee\x20\xdb\xd2\x32\xaa\x9c\x95\x38\x30\xd0\xab\xd3\xda\ \x45\xca\xe4\x7b\x42\xa8\x29\x1c\x81\x83\x3d\x45\xa9\xab\x82\x14\ \xf3\xde\x40\xb6\x50\x6c\x56\x3a\x92\x92\x06\x2d\x68\xd7\x44\x22\ \xea\xa7\x69\xe2\x32\x82\x8d\xbc\x1e\x64\x4e\xa0\xdb\xa9\x95\x6f\ \x35\xbf\x51\x3a\x5a\x6d\x39\x6a\x1b\x87\x98\x0c\x4e\x7d\x02\x05\ \x5b\x70\x27\x5b\xe1\xce\xa9\x50\xa8\x38\x22\x73\xe4\xd4\x26\xe5\ \x0e\xc2\x2e\x07\x20\xcf\x05\x57\x25\xa9\x90\x0f\x55\x26\x3f\x5d\ \x4d\x0d\x42\xe8\x7c\xa7\xf9\x91\xd8\xee\xe0\x4c\xc2\x6b\x3b\xd3\ \xb1\x37\xf6\x30\x2b\x20\xa8\xbb\xd0\xd9\xba\x89\x4d\x16\x43\x65\ \xaa\x37\x21\xfd\x44\x5d\x6a\x1e\x1b\x17\xa5\xe6\x4f\x5e\x44\xa5\ \x48\x19\x58\x9b\x93\x63\xd8\xcf\x17\x20\x0e\xfd\x44\x66\xa2\xc4\ \x64\x0f\x43\xda\x4e\x41\x18\x63\xec\x44\xe9\x3b\x65\x76\x86\xa8\ \x36\xa5\x57\x2a\x4f\x94\xf6\x88\xf8\xa5\x26\xa3\x57\x63\x7e\xb1\ \x34\xdb\x61\x9d\x0d\x70\x3a\x8f\x86\xd3\xad\xf8\xd3\xe6\xf6\x99\ \xf2\x9f\x63\x8e\xd9\x5b\xf5\x13\x47\x38\xe4\xcf\x6e\x1b\xb0\x2e\ \x4e\x26\x02\x17\x9c\x99\xb6\x4b\x65\xb9\xcf\xed\x09\x05\x86\x26\ \xef\x01\xee\x56\xfe\x91\x88\xa0\xdb\xa4\x90\xda\xce\x48\x27\x22\ \xd6\x31\xac\x0a\x05\xbf\x27\x10\x2b\x53\x51\x50\xec\xa8\x0f\xa4\ \x76\xa0\x1b\x53\x06\xd7\x51\x7f\x78\x13\xfe\x0a\x9b\xbe\x25\x44\ \x9e\x56\x9b\x37\xfc\xfd\x64\x7f\x11\xab\xe2\x6b\x2b\x30\xfc\xe6\ \xd3\xa5\xf0\x40\x29\xf8\xf5\xd8\x8f\xbb\xa4\x17\x3d\x0f\x33\x87\ \x55\xc9\xa8\x4f\x7c\xc2\x77\x4d\xf1\xe6\x6b\x7a\x74\x9b\xa5\x3f\ \xe6\xa9\xff\x00\xe4\x22\x58\xdc\xf3\x1b\xa2\x3f\xe6\x94\x9e\x86\ \xf3\x4c\x8f\x50\xcc\x5f\xeb\x88\x35\x0d\xdc\xdf\x1d\x27\x94\xde\ \xaa\x83\xee\x60\x3b\x1d\xe4\xde\x48\xfa\x06\xd5\x37\x76\x17\x8f\ \xa5\x52\xc4\x5e\xd9\xe6\x44\xaf\xb5\x01\xbf\xcc\x63\xe9\x1b\xda\ \xfd\x25\x8a\x2d\xa4\xdd\x0c\x36\x26\x4a\x58\x8c\xaf\x10\xe9\xd4\ \xb8\xb1\x98\xc6\xb4\x57\x37\x84\x5f\x6a\x00\x20\x37\xfb\x72\x66\ \x54\xb8\xf9\x72\x65\x88\x45\x82\xf9\xba\xcf\x6f\x36\xf5\x83\x4d\ \x0d\xbc\xc6\x10\x51\x7f\x41\x2e\x93\x09\x36\x19\x8c\xa5\x72\xc2\ \xc3\x98\xa2\x73\xc4\x6e\x9c\x93\x50\x2f\x4b\xca\xa8\xad\x88\xdf\ \xec\x21\x1e\x2d\x11\x7b\xd4\x27\xa1\x31\xbb\xac\xb9\x19\x99\x69\ \x8e\x39\x88\x7f\x58\xf2\xd8\x8a\x71\x71\x70\x38\xe6\x41\x33\x9d\ \xa0\xa9\xc8\x26\x4f\x51\x76\x9c\x64\x19\x46\xab\xe5\x07\x19\x93\ \xd3\x7c\xed\x61\xe5\x9b\x8c\xb1\x49\x07\xb4\x67\x88\x0a\xed\x6e\ \x3b\xcc\x74\x00\x5c\x18\xbe\x9d\xe2\x9b\x56\x99\xb5\xc1\xb8\xef\ \x12\x2e\x0c\xa6\x9b\x6d\x1c\x62\x6b\xd3\x52\x37\xa7\x12\x58\x4a\ \x5f\x93\x0d\x49\xef\x68\x04\xc2\x19\xfa\xc5\x0d\x2d\x7c\x9f\x2f\ \x58\x7b\x43\x10\x17\x83\x16\xc0\x91\xb5\x38\xea\x65\x1a\x04\xfb\ \xe1\x9b\xe7\xe9\x0a\x97\xd5\x3e\x16\x85\x14\x7c\xc7\x31\x34\x54\ \x3b\x80\x6e\x49\xc9\x3e\x90\xeb\x95\xa9\x5f\xcb\x90\x05\xa3\x34\ \xd4\xc2\xd3\xa8\xc4\x67\x81\x39\xb4\x07\x6d\xcf\x93\x6c\xc6\x30\ \x01\x01\x19\xef\x15\xb4\xef\xb9\x8d\x4c\xa9\x0d\xc7\x32\x24\x38\ \xce\xee\xbd\x20\xa1\x1e\x28\x1d\x4c\x3a\x9d\xcc\x50\x5b\xb8\x20\ \xfd\x64\x1e\x71\x7a\x6a\xcd\xd0\x49\x5b\x50\xf4\xee\x53\x6f\x97\ \xb8\x8f\x15\x11\xa8\xb2\xb1\x21\xc9\xc4\xe7\xd4\x2a\x29\x9d\xd7\ \x02\xf6\x9b\x90\x53\x13\x54\x4e\xa4\xd5\x73\x6d\xc6\xc4\xaf\x63\ \x1d\xf1\x1a\x25\xce\x9c\x2b\x06\x52\x0d\xfb\x8c\xc8\x54\x0b\x9d\ \xa4\x30\x33\xa6\xcd\x7f\x86\xad\x75\x61\xbe\x9a\xec\xfd\x65\x7a\ \x11\xc6\xad\xbd\x86\xf3\xf9\xac\x4c\xa3\xe1\xc9\xe6\x0d\x7b\x74\ \x26\x53\x4c\x52\x7a\x55\x12\xb1\xda\xd7\x04\x10\x31\x3d\xa7\xa0\ \xb4\xaa\x60\xb3\x23\xe2\xe3\x88\xea\xc1\xb2\x23\x29\xb9\xb7\x4b\ \xc9\xab\x69\xb7\x53\xb9\xb1\xec\x65\x45\xe8\x86\x24\xa3\x15\x3f\ \x30\x26\x08\x75\x46\x3b\x10\x11\xd4\x5f\xf7\x84\x4e\x69\xa5\xb6\ \xf8\xdc\x3a\xcc\x34\xed\x66\x5e\x27\x63\x6d\x3a\x99\x34\x02\xfa\ \x82\x67\x97\x4e\x9c\xb5\x25\x1e\xa1\xb1\x1f\xd2\xc7\x32\x8f\xe5\ \x63\x8e\xfd\xa5\xba\x7a\x40\x6e\x0c\x7d\x63\xce\x9f\x4e\x3f\x0b\ \x0f\x63\x19\xa6\xa5\xa6\xde\x14\xd6\x65\x1d\x09\x58\x5e\x4a\x44\ \xbe\x1e\xdb\xda\xfc\xdb\x12\x8d\x09\x61\xa8\x50\x4e\x65\x1a\x9d\ \x18\x5b\x6c\xaa\x8c\x0f\x68\xaa\x68\xd4\xab\x23\x3e\xe1\x63\xcd\ \xa1\xbb\x0e\x1e\xca\x03\x6d\x04\x90\x7a\x49\x6a\x07\xa7\x50\xa9\ \xbf\xa5\xe5\xfb\x55\xdc\xa7\x52\x70\x60\xd6\x45\x2a\x15\x80\x2c\ \x26\x75\xac\x46\x1c\x85\xb1\x8f\x15\x08\x01\x87\x07\x98\xad\xac\ \x0e\x14\x11\x09\xce\xd4\x18\xbd\xc5\xa4\x1e\xae\x8b\x51\x70\x3c\ \xdf\xcc\xe7\x80\x03\x14\x75\xb0\x3c\x13\xd2\x51\x4e\xb9\x00\xdc\ \x58\x21\xcf\xb4\x0a\xca\x2b\x2e\xe0\x45\xf9\x13\x53\xa1\x53\xb2\ \xd9\xb6\xb7\x22\x74\x34\x6f\xba\x89\xa6\xdc\x38\x22\x42\x06\xfa\ \x44\x1c\x3d\x3f\xdc\x4a\x74\x27\xef\x69\x0c\x08\xdf\x14\x73\x2c\ \x77\x32\x9e\x86\x15\x41\x66\xf7\x8c\xaa\xa3\xed\x55\x40\xfc\xc6\ \x2a\xaf\x97\x6e\x41\x24\x4d\x32\x00\x7c\xdd\xfb\xc6\xa9\xb5\x4b\ \x2e\x73\x05\x53\x6a\xf9\x86\x4c\xd0\xde\x18\x62\xbf\x37\x17\xed\ \x24\x7a\x94\x0a\xd5\x5c\x6e\x37\xb0\x1d\x2f\x1c\xf5\x99\xc8\x05\ \x17\x8b\x48\xa8\xb5\xd2\xc4\x71\x91\x28\xa2\x8c\xd4\x83\x1c\x67\ \x1f\xf3\xde\x16\x17\x52\xcb\x4f\xe0\x95\x9c\x59\x4d\x67\xb0\x3d\ \xfa\x7f\x43\x38\x15\x01\x46\xb1\x13\xb3\xf1\xb6\x14\x34\xba\x6d\ \x2b\x65\x91\x43\x30\xff\x00\x9f\x59\xca\x4a\xc0\x9d\x98\x00\xf0\ \x61\xc7\xcd\x5c\x88\xd8\xe1\x6e\x54\x80\x78\x27\xac\x3d\x28\xb3\ \xbb\x16\x02\xc8\x7f\x7c\x41\xac\xae\x18\x96\x72\x7b\x4c\xa1\xe5\ \xd3\xd5\x6b\xf3\x65\xfe\xbf\xd2\x6c\x09\x1c\x0d\xc6\xf7\xb0\x82\ \x1c\x33\x6d\xb6\x62\xd3\x09\xd8\x93\x30\x5c\x02\xd8\xed\x20\x7b\ \x35\xdf\x00\x58\x60\x46\xd1\x63\x7b\x5a\xd2\x64\x1c\x9e\xb2\x8a\ \x42\xe4\x9e\xd0\xa5\x4e\xfb\x01\x62\x26\x5c\xdf\x24\x01\x04\xb0\ \xb5\xb8\x33\xd9\x27\xb9\xeb\x22\x6a\xd4\x24\xd8\x03\x68\x43\x3e\ \xb1\x74\xb0\xf0\x95\xc0\x3b\x6d\x04\x75\x3f\x6e\x21\xe0\xac\x1a\ \x79\x1e\x90\x99\x71\xc4\xc5\x20\x70\x2f\x88\x74\x30\xcc\xfd\x00\ \x98\x45\xf0\x63\x2a\x2e\xca\x2a\x9d\x4f\x98\xff\x00\x49\x16\x29\ \xeb\x0c\xde\xf6\xbc\x4a\xde\xd9\x86\xae\x2d\x7e\xd2\x43\xff\x00\ \x68\xe4\xcc\x73\xb4\xda\xf3\xc0\xe0\xb1\xe7\xa4\x4b\x9b\x98\x20\ \xea\x19\x40\xe0\x1b\x48\xc9\xbf\x06\x3a\xb6\xe6\x04\x60\x09\x33\ \x6d\x07\x07\x89\xd2\x33\x4c\x47\xb5\x95\xb8\x9a\xcb\x61\x70\x6e\ \x22\x77\x8b\xf2\x4f\xd2\x36\x8b\x0b\x90\x6e\x41\x19\x8a\x79\x4f\ \xb4\x6d\x36\xda\xd6\xe4\x18\x25\x69\xa8\xb8\x24\x8e\xc2\x1d\x37\ \x53\x85\x5b\x18\x27\xaa\x50\x60\x6e\x05\x81\x9e\x0a\x94\xc5\x89\ \x2c\xc7\xa7\x69\x45\x36\x01\x4a\x9b\x1b\xf5\xed\x12\xf4\xce\xfe\ \x4d\xe1\x29\x2d\x83\xbb\x75\x03\xd6\x59\xa4\x5f\x0d\x41\xea\x60\ \xe9\xa9\x06\x6b\x76\x8f\x23\xcc\xc4\x70\xa2\xd0\xb5\x48\x55\x37\ \x21\x99\x87\x53\x3a\x2a\x3e\xe5\x08\xeb\x92\x27\x34\xfc\xe1\x40\ \xc5\xe5\xe1\xf6\xb6\xdf\xa0\x99\xa6\x34\x26\xdb\xdb\x9e\xfe\x91\ \x65\xc0\x60\x7a\x74\x94\x90\x1d\x42\x9c\x11\xfb\xc9\x2b\x53\x6a\ \x66\xed\xc4\x21\x65\x51\x92\x22\x4f\x94\x11\xd4\xca\x74\xca\x2b\ \x82\x49\xb2\xd3\x17\x63\xe9\x23\xa9\x53\x6b\xee\xb6\x4f\x17\x8c\ \x15\x15\x73\x60\x08\xe6\xf1\x3a\xa0\xdb\x43\x0e\xf9\x12\xbd\x4a\ \xa6\xfc\xb0\x2a\x3b\x41\x44\x2c\x06\xdb\xb2\x8f\x98\x5b\x89\xd2\ \x56\x51\xd3\x5f\xcd\x89\xd7\xa2\xad\x4b\x4c\x34\xf6\x0d\xb9\x77\ \x1b\xf7\xe9\xfb\x41\xa3\xa0\x43\x6d\x43\x2b\x0a\x4a\x2e\x7a\xdf\ \xd2\x20\x35\x43\x5c\xd6\x46\xda\xc0\xe0\x18\x5b\xaa\x4c\x39\x68\ \x53\x73\x75\xba\xb1\x5b\x15\xe6\x2e\x99\x6a\x07\x28\x59\x09\xc8\ \x27\x17\x95\x6a\x16\xa0\xad\x4e\xa2\x20\x00\xa8\x37\x1d\x0f\x69\ \x42\x53\x35\x46\xeb\x85\x2d\xf3\x2d\xb0\x66\x75\xac\x24\x2a\x54\ \x5d\xd4\xa9\xaf\x9b\x90\x44\x59\xa1\x5b\x05\x49\xa6\xcb\xd0\x8e\ \x44\xb4\x50\x4a\x0c\x37\xdd\x01\xcd\xc6\x63\x98\x21\xb3\x00\xa4\ \x75\x37\x86\x9c\x41\x4a\x8d\x52\x33\x7b\x7b\xc3\x1a\x7d\xb9\x2e\ \x57\xbe\x65\x22\x91\x61\x74\x2f\xed\xd3\xde\xf0\x7c\x31\x4c\xdd\ \xb6\xfb\x93\x7f\xe2\x1a\xb0\xb4\x55\x19\x15\x01\xf4\x3d\x63\x17\ \x4a\xb5\x32\xa0\x03\xd8\x89\x85\x69\x33\x0b\xd6\x0b\x6e\x02\xad\ \xa5\x00\xd2\xb6\xd6\x35\x18\x74\x22\xc2\x5a\x85\xf6\x40\xfa\x72\ \xaf\x4e\xc4\x75\xf5\x90\x78\x55\x28\x12\x54\x3a\x8f\x5c\x89\xd7\ \xd3\xfd\xda\x91\x4f\x7d\x65\xb5\xfe\x6c\xfe\x90\x1a\xba\x35\xc8\ \xb2\xb7\x66\x13\x32\xd3\x89\xa8\xd9\xb6\xbb\x2e\x79\xb8\x3d\xb9\ \x8d\x7a\x54\xea\xa9\x64\x62\x4f\x63\x3c\x7c\xe8\x5b\xc3\x50\x57\ \x37\x43\xfd\x26\x53\x02\xf7\x00\x91\xce\x39\x92\x41\xaa\x46\x42\ \x1a\xfd\x6c\x60\xd6\x0b\xe0\x52\x36\xb1\x37\xb9\x9d\x1d\x5a\x0a\ \xaa\xd4\xc8\xf3\x72\xa4\x75\x9c\xcd\x52\x95\x4a\x54\xd8\x81\xcc\ \xd4\xba\x2a\x7b\x7d\xeb\xad\xee\x19\x4c\x52\xb2\xa9\xd9\x6c\x9e\ \xb1\x94\x94\x8d\x52\x1f\xf7\x5a\x22\xa5\xd5\xc9\x71\x70\x0d\xa7\ \x48\xc8\xec\x4d\x50\xea\x7c\xc3\x0c\x3b\x88\xf4\xa3\xb3\xe2\x14\ \xd4\x0b\xad\xc1\x11\x28\x8a\xd5\x3c\x45\x6b\xed\xc9\x12\xdd\x10\ \x35\x2a\xa3\x7e\x56\xbf\xd2\x16\xa8\xe5\x6a\x2c\x35\x75\x3b\x6e\ \x31\x2e\x55\x6a\x79\xb8\x1d\xa1\xd7\xa8\x4d\x67\x23\xab\x1b\x44\ \xef\x6b\x4d\xc6\x4d\xad\x54\x3d\xca\xd3\xda\x7b\x93\x16\x36\x85\ \xb3\x1b\x93\x9c\x41\x50\x5b\x04\xe4\xcd\x16\x2c\x6d\xc4\x90\xcb\ \x6d\x50\x15\x6d\x79\xd9\xf8\x2d\x0d\xe5\x0b\x8c\x27\x9c\x93\xff\ \x00\x3d\xbf\x49\xc3\xa7\x7a\x95\x54\x0e\xa6\x7d\x21\xff\x00\x2b\ \xf0\x3a\xd5\x2f\xb1\xab\x59\x54\xf6\x1f\xf2\xf3\x1c\xff\x00\x8d\ \x71\x70\xbe\x29\xaa\xfb\x4e\xbe\xad\x4e\x84\xd9\x7d\x84\x87\x75\ \x8c\x67\x86\x77\x5c\x10\x73\xcc\x4b\x02\x1c\x83\x8c\xce\x93\xa6\ \x54\x8f\xbc\xa6\x47\x24\x40\xaa\x36\x69\x50\x5b\xe6\x62\xdf\x4e\ \x3f\xbc\x5a\x3b\x2b\x0d\x87\x27\x12\x8d\x5d\xbe\xd0\x29\xde\xfe\ \x18\x00\xdb\xd3\x99\x24\xaf\x86\x0b\xd8\x4f\x54\x20\x59\x07\x4c\ \x9f\x78\x60\x86\x6d\xc7\x27\xbc\x5b\x03\x92\x41\x90\x30\x11\x61\ \x1a\xac\x64\xe4\xd8\x88\xea\x44\x11\x91\xcc\x91\xe9\x72\x45\xf8\ \x9a\x1e\xc4\x88\x3b\xae\x2d\x60\x23\x02\x12\x2f\x61\x02\x2a\x27\ \xcd\x1c\xa9\x72\x18\x7e\xd3\x28\x2d\x8e\x6d\x1d\x40\xe4\x8f\xd0\ \xcc\xda\x47\x4e\xe0\x0c\x46\xba\x8b\x5e\x24\xb0\x07\x98\x74\x37\ \x3b\x63\x8e\xa4\xcc\xd6\x8e\xa1\x4d\x6f\xbc\xfc\xab\x93\x15\x55\ \xb7\x54\x2c\x7a\xc6\xd5\xa8\x19\x42\x53\x1e\x41\xfb\xc4\xec\xb9\ \xc9\x1f\xac\x10\x18\x80\x6d\x35\x32\x71\xc4\xc7\x52\xa2\xdc\x98\ \x35\x5b\x62\x58\x9c\x98\x83\x19\x85\xf1\x90\x22\x5e\xa6\xd1\x73\ \x00\xb1\x02\xf9\x20\xc5\x56\x6d\xd6\xb0\x9a\x91\x68\x2a\xb8\x20\ \xf7\x93\x66\xe2\xf7\x87\xe6\x20\x9b\x71\x16\xd7\xb5\xa6\xa3\x22\ \x0c\x06\x2f\x0d\x58\x58\xd8\xe6\x4f\x62\x0c\x65\x21\x7f\x31\xb8\ \x11\x06\x52\x2d\xbb\xd3\xac\xa9\x0a\xb0\xfb\xb3\x6b\x73\xde\x4b\ \xb8\x9f\x28\x18\x8d\xa6\x6d\x60\x2e\x3d\x60\x62\x92\xc4\x30\x16\ \xe9\x1e\x14\x54\x5b\xdf\xcc\x20\x00\x2a\x05\xe8\xd6\x8c\xa6\xa5\ \x58\x1e\xa2\x62\xd6\x8e\xd2\x80\x88\xcc\x79\xe9\x36\xa7\x96\x88\ \xb7\xe2\x39\x87\xaa\x40\x94\x95\x97\x86\xe9\x03\x50\xc9\xe4\x52\ \xc7\x8b\xda\x64\x87\x4d\x4d\x4d\x60\x4f\x9a\xd9\x9a\xed\x66\xee\ \x49\xcf\xa4\x2a\x0e\xaa\xaf\x61\x63\x6e\x62\xaa\x1c\xf1\xc4\x92\ \xa4\xab\x74\xb5\xec\xc2\x13\xb8\xa9\x4e\xed\xf5\x9c\xdf\x18\x29\ \xbd\xe5\x34\x6a\x07\x61\xb4\x5e\xf8\xb4\xb1\x6a\xaa\x4b\xe0\x68\ \x5d\xb9\xf1\x18\x0f\xa4\xe7\x6a\x52\xef\x83\xed\x3a\x3a\xea\x82\ \x96\xd5\x02\xe8\x8b\x63\xef\xd6\x46\x5b\x4b\x56\x9e\x2a\x04\x6e\ \xc6\x53\xfa\xab\x88\xd5\x2c\x00\x37\xcf\x51\x28\xd3\x6a\x5e\x89\ \x25\x08\x31\x55\x74\x8e\x41\xa9\x47\xcc\xa3\xa0\x39\x12\x7f\x32\ \x1b\xd8\xce\xbd\x56\x1d\x5f\xb4\xbe\xa0\x5f\x7e\x46\x40\xbc\x7d\ \x05\x56\x60\x2a\x22\x93\xdc\xe2\x71\xe8\xb6\x77\x0c\x58\xcb\xd7\ \x59\x54\xa5\xb0\xc3\xa8\x99\xb3\xf8\x65\x74\xbc\x7a\x26\xa1\x1e\ \x15\x46\x42\x73\x63\xc4\x60\xac\x94\xee\x78\x52\x3d\xc9\x9c\x90\ \xf4\xd8\x82\x55\x90\xf7\x8f\xa5\x5a\xba\x8f\x22\xf8\x8a\x7b\xe7\ \xf6\x99\xfc\xb5\xae\x82\x6a\xd1\x41\x08\x3c\x44\xec\xfc\xcd\xdf\ \x4d\xf2\x87\x63\x76\x53\x23\xa5\x5d\xc1\x0c\x11\x14\xf6\x38\x8e\ \x4d\x69\xbe\xd2\x89\xff\x00\xfc\xe2\x67\x0e\x8d\x51\xc3\x5c\x54\ \x27\xde\xf1\xc1\xec\x3c\xce\x97\xbf\x68\x03\x56\x84\x64\x20\x27\ \xa0\x9e\x0d\x4c\xfe\x1b\xfb\x2d\xe4\x82\xd5\x28\xee\x24\xd3\xcf\ \x75\xc4\x16\xac\x08\xf2\x38\x1e\x96\xcc\x7d\x3a\x0b\x53\x3e\x1d\ \x40\x3d\xa7\x9b\xe1\xe8\xc7\x15\xd1\x4d\xb8\x7e\x65\xb1\x65\x4d\ \xe2\x55\x0d\xb9\x5d\x87\x62\x23\x3e\xd0\xee\x6d\x58\xef\xbf\xe2\ \xe0\xfe\xb0\x46\x92\xb0\x62\x10\x5e\xdd\x8c\x5d\x4d\xc8\xdb\x6a\ \x21\x06\xd7\xb5\xac\x65\xd2\x53\x4b\x50\xb4\xaa\xad\x9d\x88\x3d\ \x0c\x6f\x8c\xea\xc5\x6c\x01\x52\x41\x90\xb8\x42\x40\xdd\x9b\x75\ \x95\x54\xff\x00\x52\x9b\x5f\x15\x17\x6d\xfd\x44\xac\x46\x78\x9e\ \x2d\x20\xe7\xeb\x26\xd6\xd2\x25\x52\xe2\xe5\x7a\xf7\x8f\xf8\x79\ \x1b\xab\xd1\xa8\x40\xb8\xeb\xd0\xc5\xea\x59\x86\xd5\x38\x84\xf5\ \x20\x50\xcb\x5d\x0e\x2d\xb8\x5e\x2e\xba\x5e\xa3\x82\x06\x09\x8e\ \x6f\x2e\xa5\x58\x7c\xa5\x86\x3b\x44\x6a\xdc\xd3\xd5\xd4\x16\xfc\ \x47\xf9\x9d\x23\x20\x16\xa7\x4c\x03\xc9\xc1\x9d\x1f\x83\x0f\x0e\ \xa3\x17\xca\x2a\x13\x39\x4d\xe6\x18\xbd\xef\x3a\x9a\x5f\x27\xc3\ \x75\x0e\x0e\x42\x84\x17\xf5\x97\x2f\x14\x73\xbe\x29\x41\x68\xea\ \x88\x03\xc8\xc3\x72\x91\xd4\x48\x0a\x5f\xe5\x6f\xd6\x76\x95\x46\ \xb3\x42\x69\x37\xfa\xd4\xb2\xb6\xea\x3b\x4e\x4f\x86\xc4\x95\x18\ \xb7\x79\xae\x34\x58\x59\x53\x4e\x9d\xdb\x93\xc4\x10\x40\x4b\x11\ \x93\x18\x77\x6e\x1d\x84\x16\xda\xcd\x6e\x0c\xd0\x55\xf0\x7a\x5e\ \x2e\xa4\x63\xa8\x00\x8e\xe6\x74\x3e\x3d\x58\x16\x5d\x35\x3f\x92\ \x90\xb1\xf7\x31\xbf\x06\xd3\xfd\x8f\x42\xfa\xd7\x17\x0a\xa5\x97\ \xdc\xff\x00\xeb\xf9\x9c\x77\xac\xd5\x05\x4a\x87\x24\xb5\xcc\xe7\ \xef\x2d\x6b\xc8\x8d\x89\x0f\x6b\xe0\x4c\x77\xf3\x90\xc2\xf3\xd5\ \x0f\x58\x15\xbe\x7f\x79\xd1\x83\x74\x8a\x06\xa0\x55\x1c\x53\xf3\ \x5b\xf8\xfd\xe2\x89\x62\x19\xcf\x2c\x61\x61\x68\xfa\xb1\x85\x6b\ \x7c\xc2\xe1\x45\xcf\xbc\x88\x0e\x2c\xa3\xdc\xcd\xdd\x61\xb4\xe4\ \x40\x0a\x77\xdc\x1e\xb9\xef\x08\xa7\xd2\xd2\x0d\xd8\x08\xb8\x87\ \x4d\x18\x37\x04\x08\x29\xfc\x4a\xa8\x01\x9b\xe3\xb4\xa9\x7a\x90\ \xbb\x4a\x69\x8f\x29\x98\xaa\x81\x80\x22\xc7\xd2\x50\xb4\xba\x8c\ \xcc\xda\x64\x62\xae\x31\x83\x07\x20\xc7\x81\x91\x79\xe1\x46\xc3\ \xc4\xac\x4a\xa1\xe0\x75\x6f\x69\x9d\x38\x52\xa3\x3d\xc8\x20\x28\ \xf9\x98\xf0\x21\x0a\xb7\x1e\x15\x2c\x27\x7e\xa4\xcc\xa9\x53\x78\ \xda\x00\x54\x1c\x28\x8a\x40\x01\x20\x03\x8e\xb2\x4a\x69\xb0\x5c\ \x1e\x7d\x21\x92\x8a\x2e\x79\x93\xf8\x8b\xd3\x9e\xf3\x55\x81\x05\ \x9b\xe4\x1c\x98\x62\x1a\xb5\x8f\x88\x57\x00\xe2\xf2\x6a\x95\x17\ \x79\xdc\x09\xcf\x79\x95\xb5\x05\xbd\x07\x12\x7a\xad\xe5\xbd\xe6\ \xa4\x16\x9f\xe2\x2e\x76\x8e\x3b\xc4\xbd\x4d\xc2\xe2\xd1\x6b\xd7\ \xda\x60\x05\x81\x0a\x09\x9a\x1a\xc2\xc5\x6f\xeb\x12\xdb\x8d\xad\ \x7b\xc6\xed\x03\x2c\x6e\x7b\x08\x24\xee\x04\x2e\x3f\xac\x50\x48\ \xda\x3c\xc7\x3d\x84\xf0\x72\x46\x7a\x71\x0d\x10\x11\x9c\x4d\x14\ \xe4\x18\x85\x86\x6f\x1b\x4c\x92\x79\x98\x94\x58\x8d\xd6\xc4\x75\ \x2b\x53\xe9\x73\x0a\x4f\xa0\x1a\xd7\x26\xc2\x58\xb5\x05\x80\x22\ \xfe\xbd\x64\x1b\x89\x60\x4c\x72\x30\x23\x06\x66\xc6\xa3\xa2\x54\ \x96\xa7\xf8\xd1\xbf\x68\x9f\x88\xd2\xdb\xa8\x6b\x65\x7a\x11\x2a\ \xd1\x23\x3e\xd7\x53\x95\x93\xb5\x50\xd5\x1b\xc4\x5c\x13\x31\x3d\ \x68\x14\x7f\xd2\x3d\xe2\xaa\x3d\x81\x94\x14\x29\x4c\x95\xc8\x27\ \x91\x24\xaa\xa7\x71\xb8\xc4\x60\xa9\x98\x96\x37\x96\xfc\x33\x75\ \x30\xd5\x88\xc2\xe1\x7d\x4c\x5e\x97\x49\x56\xb1\x00\x79\x54\x72\ \x4f\x48\xcd\x76\xa2\x95\x35\x1a\x7d\x3e\x55\x7f\x17\x73\xde\x6a\ \xdd\xea\x09\xfd\x1d\x6a\xb6\xb8\x63\xb9\x4f\x33\x9f\xac\x05\x08\ \x29\x6d\xa7\x82\x3a\xcc\x4a\xac\x1b\xcd\x90\x79\x86\x72\xb7\x56\ \x0d\x4c\xf2\xa4\x4a\x4c\x54\x81\x54\xe1\xa9\x9d\x8d\xe9\x35\xea\ \xb5\x45\x17\x55\x2d\xd7\x1c\xc8\xce\xe0\xd1\xa1\xee\xd7\x18\x61\ \x35\x8c\xeb\x49\x4b\xd8\xa9\x43\xea\x2f\x09\x37\x5e\xea\x15\xbd\ \x8c\x6a\x56\x5a\x96\x15\xe9\x82\x47\xe2\x10\x8a\xa0\x37\x5a\x65\ \x87\x42\x0c\xb5\x3c\xae\xc1\x7e\x42\xbf\xf9\x42\x5a\xb7\x3e\x5b\ \x93\xd3\x66\x20\x8a\xef\x7b\x0a\x63\xff\x00\xb6\x61\x7d\xa1\xed\ \x6d\xa0\x7f\xe1\x88\x15\x14\xd7\x51\x53\xfd\x4a\x42\xdd\xd8\xda\ \x37\xc0\xa4\x16\xcd\xa8\x07\xb8\x02\xf2\x55\xb1\x01\x9a\xa3\x2b\ \x1f\xcd\x99\x84\x9d\x9e\x56\x53\xea\x4d\xa6\x70\xaa\x46\xd2\xd2\ \xfc\x0c\x7f\xf2\x38\x8d\xfb\x66\xd2\x05\x1d\x8a\x3f\xda\xb3\x9f\ \x71\xcb\x92\xd8\xe9\xc4\xd5\x37\x3e\x45\x22\xc3\xb4\xbf\x2b\x56\ \xd4\xd5\x6a\x1b\x9a\xcc\x07\x5b\xb5\xa1\x51\xa8\xb5\x1c\x0b\xb3\ \x37\xa0\x83\xa2\xf8\x7d\x5a\xc0\xd7\xae\x4d\x3a\x3d\x5a\xd9\x3e\ \xd1\x8f\x5d\xa9\x93\x4f\x49\x41\xa9\xa5\xb2\xe6\xfb\x8c\x2e\x7c\ \x2b\x53\x6d\x1f\x35\x67\x00\x76\xbf\x9b\xf4\x10\xb5\x1a\xbd\x3d\ \x65\x0b\xe1\xef\x03\x8d\xd3\x8e\x43\x8b\x96\x46\x76\x84\xa6\xab\ \x53\xb1\x16\xe4\x7b\x4c\xfe\x4e\xba\x95\x16\x88\x5d\xcb\xa7\xa6\ \x40\x19\x04\xe6\x68\x34\x75\x5a\x77\xa7\x4c\x1a\x4f\x4c\xee\x17\ \x33\x93\x77\x24\x29\x04\xf7\x9d\x9d\x0e\x96\x9d\x26\x55\xa8\xec\ \x6a\xba\x65\x40\xc0\x06\x16\x62\x9d\xa4\xa8\xe6\x9d\x40\x5d\x6c\ \xc4\x5b\xeb\xda\x1e\xac\x1a\x88\xac\x45\x8a\x83\xfc\x4a\x3e\x3b\ \x4a\xf4\xa9\x37\x2e\xbd\x3b\xf1\x14\xed\xe2\xfc\x27\x72\x9b\x54\ \xa4\xc0\x93\xd7\x22\x52\xfd\x2e\x7a\x59\xdc\x23\x77\x11\x1a\x95\ \xdf\x5e\xaa\x1f\x99\x5d\xad\xea\x2f\x1c\x87\x73\xa5\x65\xb0\xc8\ \xdc\x3b\x5e\x16\xac\x03\xa8\xa8\xe3\x0e\xac\x47\xef\x37\x3a\xac\ \xa1\x29\xd5\x4c\xe9\x12\x29\x7c\x25\x49\xe2\xa5\x5f\xd8\x09\xce\ \x41\x9b\xa1\xc9\x37\xb1\x97\xfc\x51\xd5\x34\x7a\x4a\x64\x64\xa9\ \x63\x6f\x53\x1b\xdd\x82\x25\x42\xd4\x35\x17\x42\x78\xba\x91\x29\ \xd5\x69\x69\xea\x68\x1d\x46\x96\xdb\xff\x00\xee\x27\x51\x25\xd3\ \xd4\x0e\xbe\x11\xf2\x91\xc3\x7f\x48\xaa\x3a\x8a\xba\x3d\x4e\xe5\ \xb8\x20\xda\xc7\xac\xb2\xa4\xcd\x74\x27\x71\xcf\x68\x5a\x4d\x39\ \xd4\x6a\x29\xd1\x51\x96\x39\xf6\x9d\x4d\x55\x0a\x5f\x12\xa2\x75\ \x3a\x4b\x0a\xc3\xe7\xa6\x39\xf7\x8c\xff\x00\x0a\xe9\xed\x5e\xae\ \xaa\xa0\xb7\x87\xe5\x17\xef\x2b\xcb\xa5\x9d\x9d\xf1\xfa\xdf\x64\ \xd1\x26\x89\x05\xb1\x76\x02\x7c\xfd\x83\x50\x26\xdd\x65\xbf\x16\ \xd4\x8d\x46\xa1\xea\x13\x82\x4d\xbd\xba\x48\xc9\x02\x81\x17\x37\ \x26\x3c\x66\x45\xca\xed\x48\xc2\xf7\x16\x99\x51\x49\x7e\x3a\x46\ \x1c\xc7\x84\xbb\xa3\x74\xb5\xcf\xd2\x6d\x94\xac\xa3\xc5\x5a\x63\ \xa6\x0c\xda\xc2\xed\xb6\xfc\x1b\x9f\x78\xdd\x2d\x3d\xfa\x8d\xc7\ \xdc\xc0\x2a\xcc\xf6\xb1\x26\xfc\x49\x12\xaa\x2e\x33\x98\x48\x77\ \x1e\x23\x42\x2a\xb5\xaa\x13\xea\x04\xcb\x81\xe5\x45\xb0\xef\x20\ \x25\xa7\xf9\x88\x00\x7e\xb1\xa9\x82\x02\xad\x87\x73\x14\x39\xb6\ \x48\x8e\x54\x2c\x6c\x0f\xb0\x81\x36\x90\x3b\xb0\x6f\x2f\xd3\x25\ \x4a\x8c\x15\x14\x98\xba\x1a\x5a\x74\xc0\x3a\x82\x41\xe7\x60\xf9\ \xbf\xf5\x28\xf1\x8b\x0d\x8a\x02\x20\xfc\x2b\xfd\x7b\xcc\x5a\xd4\ \x38\x0a\x34\x2e\x6e\x2a\xd4\xe9\xf9\x47\xf7\x92\xd7\x66\xa8\x4b\ \xb1\xbb\x77\x30\xb2\xc4\x28\x5c\x99\xbe\x15\x40\x2f\xb0\xfb\x9c\ \x09\x92\x99\x94\x05\xbb\x60\x7e\xe6\x21\xdb\x7f\x95\x54\xda\x51\ \x50\x28\x6b\xd5\xaa\xb7\xec\xb9\x89\x2f\x4d\x72\x94\xaf\xff\x00\ \x91\xfe\x82\x6e\x02\x59\x80\x16\x5b\xde\x54\xb4\xcd\x7d\x3a\x2d\ \x21\xe6\x5e\x41\x89\x7a\xb5\x00\xdc\x81\x55\x7d\x14\x45\x33\xbb\ \x1f\x33\x13\xee\x63\xe8\x35\xa8\x54\x1f\x3a\xaa\xdb\xa9\x31\x2d\ \x4a\x91\x27\x75\x6f\xa0\x52\x60\xad\x42\xbf\x2b\x1b\xcd\x1a\x9a\ \xa3\xf1\x5f\xdc\x4b\xb4\x35\x5a\x42\xe4\x0b\x80\x3f\x14\x10\xa5\ \x89\xbb\x00\x2d\xc0\x9e\x5a\xee\x41\x27\x69\xff\x00\xeb\x09\x2a\ \xb5\xc5\x95\x7f\x49\x20\x9a\x20\x8c\x11\x7b\x4f\x53\xd2\x35\xb2\ \x40\xf7\x9e\x7a\x8f\x9c\xfe\x91\x7b\x98\xf2\xc7\xf5\x88\x53\xf6\ \x74\x18\x7a\xaa\x4f\x4b\x41\xa8\x15\x0d\x82\x12\x7b\x98\x80\x18\ \xf5\x85\xb8\xde\xc4\xc0\xb1\x99\xcf\x37\xb4\x3a\x67\x37\x81\x76\ \x53\x63\x98\xda\x6e\x30\x0a\x83\xf4\x88\x12\xf9\x88\x18\x10\xd0\ \x30\x36\xe8\x63\x29\x53\x46\x00\x85\x6b\xc7\x2d\x13\x83\xb5\x87\ \x6b\x89\x9b\x5a\xc7\x43\xe0\xcc\x5b\xc5\x07\xa2\x99\xcc\xa8\xd9\ \x6b\xf7\x9d\x4f\x85\x52\x74\x4a\xef\x6f\xc1\x61\x39\xba\x8d\x3d\ \x6d\xe6\xcb\xd6\x62\x7a\xd5\xf1\xea\x35\x5e\x9a\x9d\xac\x67\x9f\ \x58\xc1\x2e\x51\x6f\xde\xd2\x77\x15\x51\x72\xa7\x98\x8a\xb5\x2e\ \xa2\xf3\x78\xce\x9b\x57\x5d\x54\xdd\x2f\x65\xf4\x93\x3d\x53\xe8\ \x60\x54\x6c\xde\x2f\x71\x26\x6a\x46\x74\xd0\xec\xdc\x09\xe5\xac\ \xca\x79\x87\x44\x2f\x86\xc1\x8d\x98\xf1\x13\x50\x10\xd6\x92\x7a\ \x9d\x46\xe0\x90\x7d\xe3\x91\x50\xfc\xd4\xca\x9e\xe2\x0d\x3a\x24\ \xad\xe5\x14\x9f\xc2\xc0\x20\x8f\x59\x55\x04\xb4\xe8\xb7\x0f\xe6\ \xfd\x0c\x2f\x0a\xa2\x35\xd0\x5e\xdd\x44\x2a\x75\x34\x8c\x3e\xf2\ \x91\x07\xfd\xa6\x55\x4e\xa7\xc3\xd1\x6f\x7a\xd7\xf4\x02\x66\xdb\ \x1a\x48\x37\xb1\x00\xd8\xde\x7a\x8d\x12\xd5\x2c\x15\xac\x0f\xeb\ \x2f\xff\x00\xaa\x68\xa9\xdc\x26\x8c\xd5\xed\xe2\x1b\x7f\x13\xda\ \x9f\x8b\x56\xa7\x4d\x3c\x0a\x74\xe8\x96\x17\xf2\xac\x36\xff\x00\ \x16\x42\x29\xfc\x2f\x5b\x5c\x97\xf0\xc8\x04\xda\xe7\x11\x9f\xf4\ \xca\x14\x81\xfb\x66\xb6\x8a\x11\xd0\x35\xcf\xed\x24\xab\x5f\x57\ \x5e\xe6\xa5\x6a\x87\xaf\x99\xb1\x27\x34\xd4\xb5\x8b\x16\x27\xb4\ \x72\xff\x00\x57\x4e\xa8\x6f\x83\x51\xda\x01\xa9\x54\xf5\x21\x6d\ \x2d\x3a\x8d\x26\x97\x4e\x2b\xb6\x97\x61\x23\xee\xe9\xb1\xb9\x3e\ \xb6\x9c\xda\x5a\x6a\x7a\x0a\x43\x53\xa8\x4d\xf5\x88\xbd\x2a\x47\ \xa7\xa9\x90\xd7\xad\x5a\xbb\xb5\x4a\xcf\x73\x7e\xf3\x3f\x9d\x3b\ \x8e\xe8\xf8\xf3\x94\xb1\xd3\xd2\x1d\x01\x6e\x82\x32\x97\xc5\x2a\ \xd4\xbf\x86\x34\xc6\xc2\xe6\xe2\x7c\xb9\xbe\xe0\x37\x2d\xa3\x03\ \x3a\x9f\x29\xfa\x89\x7f\xc7\x17\xea\xbe\xb2\x9e\xaa\xab\x26\xf7\ \xd3\x52\x70\x78\x21\xad\xfd\x26\x0d\x4e\x98\x3e\xda\xba\x54\x5e\ \xbe\x56\x92\x7c\x3f\x59\x46\xb6\x89\x52\xa8\xd9\x54\x62\xfc\x03\ \xeb\x0a\xb5\x1a\xea\xd7\xa4\xeb\x50\x0c\xdb\xad\xa7\x3c\xed\xad\ \x58\x4e\x88\x91\xfe\x58\x37\x62\x07\x1e\xf0\x75\x3f\x12\xda\xcf\ \x4e\x8d\x0d\xae\x2f\xe6\x23\xb4\x9e\x93\x32\xa7\x88\xab\x62\x30\ \x7a\x5a\x43\xf1\x5d\x6f\x88\x01\xa1\xe5\x16\xb3\xfa\xc6\x71\xda\ \xad\xc5\x95\xf5\x25\xc5\x3a\xee\x77\xad\x41\xb1\xbf\xda\xc3\x98\ \xcd\x00\x35\xde\xb5\x16\x5b\x78\xb4\x88\x1e\xe0\xe2\x73\xfe\x10\ \x4e\xa7\x4d\xa8\xd2\x90\x06\x43\x21\xff\x00\x74\xaf\xe1\x95\xd9\ \x6a\x52\xa9\xb4\x87\xa6\xe1\x58\x77\xbf\xff\x00\x91\xb3\x3a\x12\ \xb9\x65\x8d\x36\x5b\x1c\xf5\x1d\xf3\x28\xd7\x2e\xcd\x5b\xb8\x20\ \x82\x6f\x03\xe3\xc8\x28\xeb\x6b\x6d\x18\x5a\xac\x00\xfa\xc3\xd5\ \x55\x0e\x56\xa8\xcd\xd5\x6e\x3d\xc7\xff\x00\xb3\x5f\xe8\x4c\xf4\ \x80\x75\xa8\x96\xd8\x7f\x69\xbf\xe2\x12\x57\x57\x4e\x9d\xed\xb2\ \x92\x8f\xda\x33\x4e\x40\x71\x6b\x32\x1e\x91\x9f\xe2\x2a\x05\xb5\ \x8e\xe0\x8b\x58\x0f\xda\x52\xf6\xbe\x38\xf4\xea\x5b\x70\x3c\xda\ \x31\x6a\x25\x61\xb6\xb9\xb3\x7e\x16\x89\x28\xcb\xba\xe2\x2a\xa7\ \x94\x0f\xeb\x3a\x63\x07\xa5\x4d\x46\x87\x50\x1d\x58\xab\x0e\x08\ \xe0\x89\xf5\xbe\x77\xf8\x46\xe4\x5a\x74\xeb\x56\x4b\x91\xc0\xdc\ \xc0\x7e\xf6\x9f\x21\xa5\xae\xbb\x92\x85\x61\xbd\x09\x1c\xf4\x9f\ \x43\xfe\x23\x6a\x87\x4f\xa5\x14\x01\xb2\x8d\xe4\x2f\x2b\x7e\x05\ \xbd\xad\x39\xf3\x9d\xc6\xb8\xdc\x8e\x16\xb6\x9b\x52\xa9\xb1\xd4\ \xab\x0c\x10\x60\x85\x1f\x66\x6b\xe7\x22\x5b\x5f\xe2\x2b\x55\x85\ \x3d\x6d\x10\xe0\x63\x70\xc3\x09\x9f\x65\xa3\x55\x09\xd3\x56\x0c\ \x18\x7c\xad\x83\x37\xbf\xd1\x9f\xc7\x32\xd7\xe3\xe9\x2b\xa6\x2d\ \xa7\x2d\xfe\xdb\x1f\xd6\x31\x7e\x1b\xab\xb9\x1e\x1f\xb1\xbc\x23\ \xa7\xab\x4b\x4b\x55\x6a\x27\x04\x70\x65\xaa\x44\xa4\x1a\x74\x55\ \x94\xd8\xb3\x5e\xfe\x82\x0b\x56\xaa\xc3\x6e\xec\x1e\x6d\x8b\xc6\ \x56\x04\x78\x63\xfd\xa3\x06\x31\x28\xd8\x5d\x46\x7d\x7a\x48\x25\ \x5a\x63\x77\x9a\x0d\x52\x00\x5b\x09\x6f\xd9\x6a\xd4\x1e\x4a\x64\ \x0f\xcc\xf8\x1f\xbc\xe9\x51\xf8\x32\xe9\xb4\xeb\xaa\xd5\xde\xb1\ \x71\x75\x14\xd4\x95\x1e\xe6\x57\x94\x87\x2b\x95\xa3\xd2\xb5\x54\ \xf1\x5c\x8a\x74\xff\x00\x3b\x75\xf6\xef\x2f\xa5\x4d\x95\x7f\xca\ \xd2\x65\x5e\xb5\x5f\x04\xfb\x76\x8c\x3a\x95\x4a\x85\x97\x46\x5c\ \x81\x61\xbe\xe2\xdf\xa7\x1f\x48\x93\xa9\xd4\xb3\x5c\x01\x4e\xff\ \x00\x97\xfb\x99\x9e\xe9\xea\x28\xa1\xa4\x46\x24\xbd\x66\xb7\x5d\ \x88\x4f\xee\x6c\x25\x28\x9a\x6a\x43\xe4\x07\xd5\xea\x0f\xe0\x4e\ \x76\xfa\xd5\x33\x55\x99\xcf\xab\x5e\x35\x0e\x00\xb5\xa6\x6c\x31\ \x6f\xda\x68\x2d\xf6\xb1\x18\xe1\x12\xdf\xda\x0d\x13\x46\xb5\x4f\ \x2d\x03\xea\x4b\x19\x23\x2f\x9b\xd6\x75\x7e\x09\x4d\x48\x62\x72\ \x57\x30\xbd\x43\x3b\x73\xb5\xaf\x4e\x86\xa0\xd3\xfb\x35\x30\x47\ \x52\xc4\x9f\xe6\x23\xed\x34\x8e\x02\xec\xf6\x02\xd0\xbe\x20\xcd\ \x53\x52\xec\xc2\xd9\xb4\x85\x97\x69\xb8\x17\x9b\x93\x59\xb5\x56\ \xe2\xc4\x8a\x75\x03\x7a\x5e\xd2\x5a\xb5\xab\xa1\x20\xbb\xaf\xa1\ \x82\x2f\x7c\x73\x1a\x6a\x06\xa5\xb6\xa0\xdc\xa3\x1e\xa2\x39\x89\ \x3b\x57\xa8\xc6\xd7\x46\xf7\x51\x37\x78\xb8\x2d\x4a\x9f\xe9\x69\ \xea\xb4\x36\xae\xe4\x3b\x90\xf5\x10\x6c\x7b\xe2\x21\x42\xb6\x90\ \x53\x26\xa6\x9d\x8d\xcf\x2b\x52\xdf\xc8\x8d\x46\xf8\x71\xb7\xdc\ \xea\x41\xe9\xe7\x1f\xda\x4b\x53\xfd\x3a\x61\x86\x0e\x63\x68\x85\ \x15\x17\x3c\x19\x62\x15\x4f\xb0\x80\x71\x5f\xea\xc3\xfb\x45\x28\ \xd0\x13\x7f\xbf\xfa\x01\x37\xe2\x08\x16\xab\xed\x18\x26\xe2\x21\ \x14\x81\x91\x28\x96\x21\xf8\x70\xfc\x1a\x8f\xd4\x4d\x73\xf0\xee\ \x94\xeb\x1f\xa8\x92\x10\x07\x1c\xcc\xfa\x4b\x16\xa9\x35\x34\x83\ \x2b\x41\xcf\xfe\x4d\x09\x75\x2a\xb9\xa7\xa7\xa6\x07\x7b\x5e\x4b\ \x68\x4b\x71\x83\xc4\xb1\x6a\xfa\x7a\xca\xa4\x00\x08\x5f\x61\x3c\ \x6b\xd5\x26\xc5\xda\xd7\xef\x24\x5b\x10\x19\x2f\x8e\x93\x69\xb8\ \x2e\x2e\x7e\x90\xfc\xc3\xae\xdf\xc3\xcb\x7f\xd3\x75\x35\x2f\xc5\ \xa7\x33\x56\xc7\x7e\x18\xe4\x4e\x96\x9a\xcb\xf0\x2d\x4b\xde\xc3\ \x70\x9c\x8a\xcd\xbc\xd8\x1e\x00\x98\xe3\xe9\xbe\x16\xd5\xaa\x04\ \xc3\x9f\xd6\x26\xa5\x5a\x8c\xa3\x86\x37\xed\x18\xc1\x48\x00\x70\ \x73\x0e\x8d\x55\xa1\x40\x8f\x0b\xf1\x58\x90\x73\x3a\x32\x99\xc1\ \x03\xce\xab\x7e\xd6\x99\xb0\x58\x12\x96\xfa\xc7\x1d\x45\x12\x4e\ \xf4\x60\x3a\x5b\x33\x05\x5a\x06\xe4\x60\xfa\x89\x02\x8e\xdf\xca\ \x62\x6a\x5a\xf8\x32\x8f\x2b\x0b\x5c\x40\xa9\x44\xd8\x91\x9b\x45\ \x1e\xac\x54\x58\x19\xa3\x63\x72\xb9\xee\x0c\x16\xc1\x83\x92\x64\ \x4d\x4a\x6a\xc7\x0c\x47\xb8\x85\xe1\xa5\xff\x00\xd4\x59\xb4\xa9\ \x54\xf0\xcf\xe1\x07\xa9\xc4\xf1\xd8\x08\xdd\x53\x75\xba\x08\x22\ \xfc\x3a\x5b\xf2\x4b\x7e\xd2\xbd\x53\x5d\xd4\x00\x00\x0a\x07\x1e\ \x92\x62\xe9\x7c\x0f\xd7\x31\xce\xde\x35\x30\xc0\xdd\x94\x5a\xc6\ \x15\x15\xe1\x96\x24\xdc\x9e\xd3\xa1\xa7\xa6\x9a\x1d\x3f\xda\x6b\ \x28\x6a\xa7\x34\xe9\xff\x00\x53\x17\xa3\x41\x41\x3e\xd5\xa8\xc8\ \x07\xc8\x9f\x98\xc5\xea\xab\x3e\xa5\xda\xa3\x9c\x9f\xda\x17\xbe\ \x8f\x88\xf5\x55\x2a\x57\xac\xd5\x6a\xbd\xd8\x9c\x98\x86\xb7\x56\ \x16\x85\x58\xde\xc0\xf1\x12\xd9\xc4\xdc\x8c\xd6\xda\xe7\x0c\x23\ \xb4\xd4\xea\xbb\xaa\xd3\x17\x24\xe2\x2e\x9d\x32\x5b\x22\xfe\x82\ \x74\x74\x48\x52\xb2\xb9\x21\x76\x82\x6c\x3d\xa1\x6a\x90\xdf\x01\ \x95\x76\xd4\x2a\x48\xfc\xa6\x5b\xa0\xd5\x94\xb5\x13\x44\x95\xe2\ \xe3\x91\xeb\x39\xca\xa0\x9d\xc8\xa4\x9b\xf2\x67\x43\xc5\xfb\x35\ \x1f\x16\xab\x03\x51\x6d\xb5\x07\x33\x9d\x6e\x1f\xf1\x5f\x14\xd3\ \x1a\x6a\x24\x03\x7f\x3b\x13\x6b\x89\xce\x4d\x13\x28\xb3\xd4\xa4\ \x14\x8e\x0b\x44\xb3\xbd\x5d\xec\xcc\x6e\xd7\xcd\xfb\xc1\x24\x05\ \xa7\x7b\xde\xdc\xfb\x46\x4c\x98\xad\x74\x34\x3a\x5a\x74\x2a\x17\ \xfb\x5a\x05\x20\x03\xb7\x3d\x71\x3b\x7a\x43\xa5\x02\xad\x7d\x38\ \x0d\x54\xe4\x92\x30\x0d\xb9\xfd\x67\xcc\x53\xba\x12\xa0\x60\x9c\ \x4b\x2b\x55\x14\x69\xa5\x6b\xd8\x93\x70\x2f\xd4\x73\xf4\x99\xe5\ \x34\xcb\x89\xb5\xf7\xaa\x8e\xec\x6e\xcc\x03\xfd\x7a\xc5\xa9\x05\ \x68\x11\xf8\x94\xaf\xd4\x1c\x7f\x36\x94\xd5\x55\xbe\xf5\xf9\x41\ \xb7\xff\x00\x56\xe2\x47\x51\x48\xd3\xd4\x41\x86\xa4\xfb\x87\xb7\ \x07\xfa\x4d\x40\xf5\x37\xf0\xb5\x00\x26\x51\xbc\xc0\x77\xf6\x9d\ \x7f\x89\x9f\xf3\x65\xc7\x0e\x8a\x7f\x6e\xd3\x87\x52\xa6\xd0\x2a\ \x15\x06\x9b\x1c\x8b\xfc\xad\xd6\xd3\xa7\xae\xd4\x78\x9a\x0d\x2e\ \xad\x46\x02\xf8\x6d\x63\xc5\xb8\x95\x9d\xa9\x49\x6a\x14\xea\x12\ \x11\xb6\x9b\x70\x67\x3b\x53\xa2\x75\x72\x1d\x0d\xbb\x81\x79\xd3\ \x73\x4e\xaa\x25\x45\x19\x38\x22\xf6\xfd\x24\xef\x55\xc3\x91\x4e\ \xa9\x16\xc9\x53\x19\x68\xb1\xce\xd3\xe9\x9a\xa6\xaa\x92\x29\xbe\ \xe6\x02\x75\xbf\xc4\x4d\x53\xfe\xa7\x55\xd3\x72\xec\x70\xa2\xdd\ \xac\x04\x4d\x1d\x53\xd0\xd4\xd3\xa9\x51\x29\xb5\x98\x1b\x95\xbf\ \x1e\xb3\xb9\xf1\x23\x4c\x6b\xaa\x25\x81\x0e\xbe\x20\x36\xb8\x3f\ \xf2\xd0\xe5\x7b\x32\x74\xf9\xd6\xaa\x95\xad\xf6\x8d\x30\x6b\x8b\ \xee\x4c\x19\xb4\x68\xd0\x15\x03\xd1\xd4\x94\xb1\xe2\xa2\x91\xfc\ \x4e\xba\x36\x9e\xa5\x35\x76\xd1\xd3\x20\x9b\x5b\x22\xf1\x1f\x1d\ \xa5\xa3\xa0\x29\x0a\x29\xe1\xd6\xb5\xdd\x03\x5c\x2f\x68\xce\x5d\ \xe0\xcf\xa5\x8a\x1a\xe5\xc5\x1a\xa9\x51\x4f\xca\x05\x41\xfd\x4c\ \x05\x5d\x42\xd6\xa9\xa7\xd4\xa9\x42\x56\xfb\x67\x91\xfc\x34\xb3\ \xed\x35\x6d\x74\x07\x20\x7b\xc9\x92\xab\xb6\xa7\xc4\xa8\xe4\xb7\ \x52\x65\xda\x38\xa5\x14\xac\x1e\xb8\x38\x51\x60\x23\x8e\xae\x9a\ \xd3\xdb\x49\x52\x99\xbd\xf7\x01\x76\xfd\xe2\xb5\xc8\xa7\x65\x5b\ \x8c\x8b\x7e\x91\x5a\x6a\x41\xea\x79\xc8\x14\xc0\xdc\x4f\xa4\xb2\ \x62\x31\xc2\x90\x35\x15\xea\x3b\xdf\xe5\x0c\x72\xdf\xfa\x93\x9d\ \x46\xa0\xbb\x1a\x75\xdd\x7d\x15\xac\x2d\x17\xab\xa8\x6b\x55\x27\ \x80\x30\xa0\x70\x04\x5a\x9b\x63\x9f\xac\xd4\x83\x55\xd3\xd5\x6a\ \x85\x97\xed\x35\x71\xc5\xd8\xc6\x2e\xa7\x52\x72\x35\x0e\x4f\x63\ \x25\xa4\xc6\xe2\xc4\x0b\x77\x95\x53\xce\x08\x10\xb2\x15\x34\x75\ \x3a\x93\xcb\x06\xb6\x32\x01\x8f\x15\x9e\xd6\x64\xa6\x7d\xd0\x49\ \xd1\x06\xdc\x7e\x92\x84\x51\xb6\xf7\x17\x98\xa6\x34\xd4\x53\x96\ \xd3\xa1\xef\x6b\x89\x57\xc2\xeb\x51\x4a\xa0\x04\x65\xbf\xfb\xae\ \x24\x7b\x7e\xb3\x57\xca\x43\x2d\xaf\x0b\x34\x8b\xe2\x5a\x75\x4a\ \xec\x37\x81\x73\x7c\x89\x0b\xd1\x75\x05\xad\x71\xdc\x66\x76\x35\ \xaa\x35\x5a\x25\xac\x07\xde\x53\xc3\x5b\xb4\xe4\x97\x65\x37\x42\ \x41\xeb\x1e\x35\x54\x8c\x97\x38\xc4\x1b\x6d\x6f\xf6\x9c\x19\x43\ \x3a\xb1\xf3\x0d\xa7\xb8\x8a\xac\x85\x73\xc8\x3d\x44\xdc\xac\x05\ \x77\x52\x7c\x64\x1f\xdc\x4f\x3d\x35\x23\xc4\xa6\x3c\xbd\x47\x69\ \xaa\x37\xa5\xba\x8e\x20\xd3\x72\x86\xe3\xac\x53\xda\x85\x1b\x94\ \x7e\x55\x1d\x66\x97\xc8\xb0\xb1\xe6\xd1\x9a\x94\xbb\x07\x51\x82\ \x05\xc7\x68\xa5\xdc\x09\xcd\xba\x4a\x23\xb5\x20\x54\xa5\xb8\x9e\ \x01\x91\xa5\xed\x6b\x99\x52\xe7\x4f\x51\x7f\x12\xc9\x10\x62\x51\ \x18\xac\x7a\xe6\x35\x54\x15\xb9\x58\xa5\x19\xcc\xa1\x6d\x6f\x49\ \x54\x1f\x0d\x2f\x05\xb6\x64\x01\x98\x4e\xc0\x45\x6e\x17\x26\x49\ \x82\xca\xc0\xa9\x30\xf0\x4e\xf4\xc6\x72\x22\xef\xeb\x78\x54\x81\ \xb8\x63\x85\xeb\x24\xed\x23\x01\xfe\x1a\xab\x73\xcd\x41\xfd\x27\ \x19\x98\x5c\xfa\xf4\x9d\x1a\xe7\xff\x00\x82\x00\x0b\x06\xab\x70\ \x3d\x27\x26\xc4\x9d\xd6\x99\xe3\x3d\x34\x42\xe1\x07\xbc\x63\x25\ \xe8\x31\x3d\x48\x30\x0f\x20\x46\x33\x0f\x08\x8b\x75\x9a\x09\x8a\ \x40\xb7\xa4\x6f\x59\xa5\x62\x30\xa0\x2e\x63\x40\x36\x9e\x0b\x98\ \xf5\x41\xb7\x3c\xc8\xba\x55\x7e\x15\xe1\x53\xf1\x2a\xb8\x03\xb0\ \xe6\x44\xdb\x17\xfd\x3d\xaa\x3b\xf2\x63\xc5\x4a\xd5\xc1\x17\x3b\ \x78\xdc\x78\x92\x57\x75\x46\x2a\xa0\x39\x1d\x4f\xf6\x98\x9b\xf4\ \xd6\x6e\x3b\xae\xcf\xba\x2d\x91\xaf\x70\x2e\x3d\x26\x78\xce\x70\ \x6e\x3d\x85\xa6\x87\x7b\xe2\xe6\x68\x16\xc0\x92\x31\x2d\xd1\x52\ \x37\xf1\x2a\x02\x11\x79\xf5\x85\xa5\xd2\xbd\x66\x04\x10\xa7\xb4\ \x7e\xa7\x72\x11\x4c\x92\x40\xe9\x33\x6f\xc3\x22\x7a\xd5\x8e\xa1\ \xfc\xeb\xb4\x0f\x94\x76\x98\xb4\x6a\x03\x70\x09\x11\xa0\x39\x37\ \xb8\x55\xee\x61\x8a\x81\x07\x94\x93\xea\x65\xab\x11\xbe\x98\xb3\ \x92\x70\x3a\xfa\x41\xb6\x9a\x91\xf2\xa8\xa8\xdd\x49\xe2\x50\xf5\ \x55\xfc\x8f\x80\x64\xe6\x88\x53\x75\xf3\x00\x63\x3f\xd0\x3a\x75\ \x18\x9b\x04\x50\x3b\x2c\xa1\x15\x42\x33\x13\xb7\xa4\x9f\x6b\x5c\ \x58\xed\xf4\x86\x9e\x53\x66\xb9\xb7\xef\x0a\x4e\xa4\xc5\x48\xda\ \x36\x91\xc4\x46\xa4\x35\x5a\x9e\x66\xc0\xe6\x55\x46\xfb\x19\xc8\ \xf6\x88\xa8\x1c\x0b\x6d\xf7\xf5\x84\xf5\x02\x90\x02\xc2\xfe\x90\ \xd9\x41\x41\xe8\x4d\xa0\x2d\xc9\xb6\xdc\xdf\x12\xdf\xb2\x55\x28\ \x2c\x00\x24\x71\x1b\x54\x4e\x83\xee\xc7\x5b\x75\x8d\xac\xc2\xa5\ \x91\xb0\x07\x18\x8a\x0a\xc8\x76\xba\xd8\x8e\x90\x99\xe9\x2b\x10\ \x72\xdd\x20\x55\x69\x69\x33\xd1\x08\x3c\xc3\x69\x42\x7d\x3a\x1f\ \xa4\x88\xdb\xc4\x05\xc8\xcf\x95\xff\x00\x83\x1d\xa7\xd5\x35\x0a\ \xaa\xd4\xc0\x00\xf4\xef\x27\xd5\x3d\xdd\xf6\xad\x83\x1b\x89\x4f\ \x55\x2f\x65\x0a\x3b\xa8\xd4\x7e\x7c\xae\x2d\x7b\xf6\x22\x57\xf0\ \xf5\xa7\xe1\x56\xf8\x79\xf3\xef\x1b\xe9\x93\xc1\x23\xb4\xe7\x57\ \x53\x5a\x96\xe1\x97\x53\x63\x6e\xbd\x8c\xf6\x8b\x51\xf6\x7a\x89\ \xe2\x1c\xa3\x5d\x6d\xc8\x9a\xb3\xa1\xbd\xb7\xc4\xa9\x51\xb6\xde\ \xc1\x71\xd8\x2c\x36\xf3\x0d\xa8\xc1\xd8\x2d\xaf\xde\x37\xe3\x54\ \x7e\xf1\x6b\x52\x3f\x73\x5f\xce\x2d\xc5\xfa\xc8\xd5\xd6\x90\xf2\ \xe5\xe5\x3b\x83\xc3\x45\x3f\xbb\x1b\xae\x02\x9b\xe7\xa9\x9d\x9d\ \x7b\x87\xd2\x68\xab\xde\xf7\x4d\xac\x3d\xa7\x09\xaa\xee\xb3\x31\ \xb9\xe6\xd3\xb3\xa2\x74\xab\xf0\x0a\x8d\x50\x16\xf0\x6a\x6f\x17\ \xeb\x7e\x9e\xd0\xe5\xf2\x98\x1a\xfa\x93\xa7\x0b\x58\x0f\xbc\x71\ \xe4\x1f\x97\xd6\x41\x72\x0b\x6a\x2a\xf9\xbf\x2d\xfa\x98\x02\xa3\ \xd7\x66\x15\x0d\xd9\xcd\xc1\x3d\x0c\x73\x80\x54\x52\xe0\xa8\xc7\ \xbc\xa4\xc4\x92\xe5\xdf\x79\x27\x75\xf9\x8d\x71\xe2\xa7\x88\xb8\ \x61\xf3\x01\xfc\xcc\xda\x43\x01\xde\x36\x98\xd8\x77\x0f\xd3\xfa\ \x4d\x50\xa7\x35\x74\x23\x9f\x2e\x62\x2a\x59\x34\x66\xd6\xdd\x50\ \xdb\xe8\x25\x7a\x6d\x83\x72\x8b\x94\xa8\x2c\x2d\xf8\x4c\x97\x5e\ \x36\x8a\x54\xec\x6e\x16\xff\x00\xbc\xcc\xf7\x0b\x9c\x41\x53\x83\ \x36\xd7\x1b\xad\x6b\x47\x81\x65\x69\xbb\x76\xd3\x18\xb5\xf9\x9b\ \x18\x4d\x30\x6f\x9e\x25\xb4\x14\x6d\xe6\x22\x90\x52\x7a\xdc\x4a\ \x11\x80\xe9\x33\x54\x53\x4e\xdd\x31\x1c\x8c\x0e\x36\xde\xdd\x64\ \xc9\x53\xa7\xe9\x08\x54\xb1\x98\x68\xe2\x73\x8c\x4f\x02\x49\xce\ \x62\xf7\xdf\xa9\xbc\xf2\xb8\xda\x4d\xfd\x24\x75\x67\xc3\xeb\xaa\ \x57\xf0\xdc\xfd\xdb\xe0\xde\x47\xf1\x0a\x27\x4d\xa8\x7a\x47\x20\ \x64\x7a\x88\xa7\x39\xc4\xae\xb9\xfb\x67\xc3\x45\x4e\x6a\xd0\xe7\ \xd4\x43\x32\xea\xf5\xca\xac\x46\xde\xf1\x4b\x55\x97\xd4\x1e\x41\ \xeb\x0c\x82\x41\x07\x9e\x91\x6c\x3c\xbe\xa2\x75\x60\xe4\x0a\x4d\ \xd0\x9b\xf6\x9e\x64\x05\x83\x01\xef\x13\x4c\xdb\x23\x99\x52\x30\ \x66\xb3\x73\xd6\x17\xa4\x33\xe5\x60\xd6\xc1\x5c\xc0\xac\x80\x58\ \xad\xb6\x9e\xf1\xf5\x05\xa8\x02\x7f\x09\xfd\xa4\x81\xac\xd9\xca\ \xb7\x30\x86\x8a\x98\x01\x81\x27\xe6\x16\x92\xf0\x48\x94\xd4\xf2\ \xb2\x8b\x8b\x0b\x10\x62\x2b\x62\xb3\x8f\x59\xa8\x1e\x5e\x91\x81\ \xed\x88\x08\x31\x08\xa9\xc9\xb4\x93\x1c\x96\xe9\x68\x07\xa8\x84\ \x39\x9a\xaa\x59\xad\xd4\xe2\x29\x94\xa9\x97\x6c\xe0\x0e\x61\x39\ \x0c\xc1\x54\x59\x47\x02\x1d\x45\xda\x05\x35\xfa\x9e\xe6\x0a\x21\ \xdd\x91\x04\xe8\xea\x80\xff\x00\xa4\x69\xd4\x77\xfe\xa6\x72\x88\ \x39\x02\x76\x2a\x53\xdf\xf0\xca\x37\x36\x00\xff\x00\x79\x1b\x53\ \x00\x12\xa6\xe2\x67\x8d\xc3\x62\x36\xb9\x00\x01\x35\x50\x94\xb7\ \xac\x68\x50\x5a\xd0\xac\x14\x58\x5a\xd3\x5a\x08\x14\x89\x36\xb8\ \xbf\xbc\x67\x80\xfd\xc4\x6e\x01\xb8\x17\x8c\xa7\x51\xea\x79\x43\ \x59\x7b\x0e\x21\x6d\x24\x26\x9d\x89\x17\x36\x95\x52\xd2\xb5\x43\ \xb5\x58\x5f\xda\x12\x84\xfc\x22\xde\xa6\x17\x8e\xe9\x7d\x87\x60\ \xee\x04\xcd\xb4\x95\x42\xa1\xa8\xf5\x3c\x32\x02\xaa\x1d\xa2\x40\ \x43\x96\xc8\xcc\xdd\x3d\x4f\x0a\xb0\x22\xe3\xbc\xa6\xb8\xf1\x06\ \x00\x43\xe9\xd6\x6b\xca\x11\xe4\x1e\x04\x75\x2d\xa0\x5c\xe0\x7b\ \xc5\x3b\x3a\x9b\x11\x73\xea\x20\x96\x63\x92\x78\xe9\x68\x85\xcb\ \xaa\xdb\xfe\x9d\xc0\xeb\x18\xae\x18\x07\x7b\xed\xfe\x64\x74\xd6\ \xd6\x2c\x05\xcf\x4e\xc3\xb9\x9e\x7a\xf7\xab\xb7\xf0\x4c\xe1\xd5\ \x6f\x50\x3f\x00\x01\xda\x2a\xa3\x13\x27\x7a\xbb\x7c\xa3\x27\xbc\ \xc5\xaa\xd7\xe7\xe9\x19\x16\x8a\xa2\x9b\x8b\x98\x6f\x50\x25\x82\ \x8b\x93\xc9\xea\x27\xbc\xb9\x37\xf3\x73\x13\x7b\xab\x13\x9e\xb7\ \x88\x3b\xc4\x07\x2f\xf3\x77\x9e\x5c\xb8\x04\x9e\x6c\x3d\x64\xd7\ \x27\xa4\x66\x90\x95\xac\xa6\xf8\xbe\x6f\x2c\x4b\xaa\x56\xd8\x82\ \x9d\x30\x40\xbd\xcf\xac\x45\x57\xdd\x92\x4f\xeb\x32\xab\xab\x33\ \x2a\x9b\x10\x6d\xef\x10\x77\x0e\x6e\x3d\xe1\x21\x57\xf0\xf7\x08\ \xef\x55\xb3\xe1\xa1\x61\xef\xd2\x7a\x9d\x77\x7b\xb3\x16\xb9\xea\ \x4c\x4e\x98\xed\xa7\x5c\x8e\xa9\xc7\xb1\x12\x77\xae\x58\x80\x4e\ \x3b\x09\x60\xd5\xb5\x2b\xbd\x45\xb3\x35\xca\x8b\x66\x25\xaa\x6e\ \xf3\x03\x73\xd6\x25\x9c\x97\x0f\xf4\x22\x10\x6d\xb9\x8e\x25\x6e\ \xaa\x55\x7c\x3b\xee\xda\x0d\xbb\xcc\x55\x0c\x36\xb9\xb9\x27\x11\ \x0d\x51\x8d\x15\x65\xe1\x7c\xa7\xdb\xa4\x05\x26\xe0\xee\xb1\x86\ \x2d\x34\x87\x47\x20\x27\x90\x8b\x30\x12\x7a\xda\x72\x1c\x5d\x85\ \xfa\x11\xd6\x3d\xea\x92\x4f\xaf\x30\x43\x78\xa3\xc2\xc6\xf1\xf2\ \x98\xa5\x3a\x0a\xad\x56\x8b\x68\x2b\x2e\x0f\xfa\x44\xfe\x69\x05\ \x4a\x2d\x4d\x89\xce\x0d\x8a\xf5\xbc\x63\xb9\x50\x01\xc0\x5f\xd4\ \x18\xfd\x60\xfb\x45\x11\xaa\xa6\x6e\xdc\x54\x1e\xbd\xe5\xe5\x4e\ \x62\xef\x7a\x81\x47\x24\xda\x7d\x17\xc3\x6a\xa8\xad\xff\x00\x4b\ \x36\xda\xf4\x4a\xdc\xf5\x6e\xf3\x95\xa4\xa5\x67\xde\xcb\x62\x82\ \xfc\x46\x53\x15\x68\xea\x29\x57\xe4\xa9\x0d\x71\xef\x0e\x5d\xa9\ \xd3\x28\xa0\x5a\xbb\x5c\x10\x54\xe7\xe9\x1a\x58\x54\x06\xa0\x17\ \x61\xcd\xa5\x5f\x16\xa2\xa9\xac\x35\xd0\x79\x2a\xae\xf1\x6f\x59\ \x15\x26\x14\xce\x14\xdf\xf9\x96\xef\x66\xf4\x37\x50\xc3\x70\xbd\ \xfa\xcc\x42\x40\xb1\x1c\x42\xbd\x8d\xc1\xf2\x9e\x3d\x27\xb6\x9e\ \x57\x83\xcf\xa4\x91\xff\x00\x0f\xaa\x52\xb8\x04\x02\xad\xf3\x2c\ \x2f\x89\x04\xad\x59\x2b\x20\x21\x0a\xd8\x77\x16\x83\x40\x78\x34\ \x9a\xa3\x7c\xec\x2c\xa3\xfa\xc6\xe9\xc2\xd4\x46\x4c\x03\xc8\xf7\ \x99\xbe\xe9\xf8\x91\x90\x05\xb8\x31\x55\x45\x90\x1f\x58\xda\xd7\ \x50\x47\x26\x24\x5c\xd1\x62\x3a\x7a\xcd\x40\x58\xc1\xb8\xfd\xa3\ \xd0\xdc\x5b\x82\x3b\xc9\xee\x6f\xd6\x36\x8b\x02\x00\x8d\x06\xd8\ \xda\x1a\x1b\x8c\xf3\x3c\x06\xe1\x09\x54\x8e\x98\x98\x22\x17\xb5\ \xa6\x90\xa2\xd7\x98\xcf\x6e\xc3\xd6\x2f\x53\x7d\xc0\xdc\x0c\x4a\ \x42\x63\xba\x6d\xc6\x6d\x19\xf0\xfd\x6a\x69\xf5\x00\xb0\xba\x1c\ \x30\xf4\x91\xae\xd3\x62\x49\x3f\x48\x15\x0d\x3b\xda\xed\x88\xfe\ \x46\xab\xf8\x85\x3a\x74\x35\x05\x00\xf2\x9c\xa9\xee\x24\x95\x16\ \x9b\x36\x0d\xaf\x29\x2c\xba\x9f\x86\x90\x48\x2f\xa7\xfd\x4a\x99\ \xcf\x50\x2e\x00\x78\xc5\x4e\x14\xc8\x36\x0d\x71\xd2\x30\x21\x27\ \x83\x26\x4a\xbb\x58\xd8\xde\x55\x4f\x55\x75\xb3\x01\x2b\xa0\xc4\ \x6d\xc1\xa8\xb1\xc3\xe0\x7b\xc9\x19\x18\x55\xda\xc0\x80\x25\x0e\ \xc8\xc8\x7a\x58\xc0\xac\x1e\xa0\x1e\x7b\xac\x21\x25\xaa\x6f\x62\ \xbf\xa4\x0a\xe7\xcc\x8d\xdd\x7f\xf5\x32\xa2\x3a\x11\x71\x68\x75\ \xfc\xfa\x75\x7f\xca\xc4\x19\xa0\x2a\x37\xb5\xfa\x75\x8e\x04\x5a\ \x46\xaf\xd2\x39\x1f\xa1\x32\xb1\x1b\x81\x99\xb4\xc8\x15\x06\x22\ \x09\xb9\xbd\xed\x1a\x97\x16\xdd\xcc\x2a\x33\x53\x4c\xef\x36\xf7\ \xe2\x65\x31\x70\x01\xe6\x55\x59\x77\x22\x54\xee\x22\x45\xaf\xea\ \x21\xa5\x50\x27\xfe\x98\x01\xe8\xf1\x09\x60\x4d\xf8\xea\x25\x08\ \x37\xfc\x3e\xa5\xb0\x55\xaf\x69\x20\x36\x27\x33\x30\xb2\xaa\x78\ \x75\x6f\x6b\x88\xa6\xb9\xe3\x12\xa2\x43\xd2\x3f\x99\x78\x93\x95\ \x3d\x66\xa5\x14\x19\x2a\x01\xed\x2b\xd3\x22\xec\xfe\x64\xaa\x3a\ \x71\x2b\xd3\x9b\x15\xed\xd6\x55\x46\xd5\x0b\xb8\xdb\x0a\x38\x11\ \x42\xc5\xf6\x37\xc8\x32\xd1\xc5\x81\x73\x7e\x82\xf1\x1a\x8b\x26\ \x98\x5c\xd9\x9c\xe7\xda\x10\xb9\xe5\x7c\xd7\x8c\xde\xcf\x83\xfc\ \x73\x18\x11\x40\xc9\x04\x99\xa2\x9d\x81\x20\x19\xbd\x64\x92\xed\ \x7d\x8c\x37\x5b\xf6\x82\x6c\xa7\x19\x63\xd7\xa0\x8c\x74\x6b\x10\ \x05\x80\xeb\x3c\x82\x8a\x9f\x3d\x4c\x75\x02\x48\x6f\xe5\x05\x0e\ \x1c\x80\x3d\xe4\x75\x18\x82\x40\xc4\xb7\x51\x57\x4c\x54\x3a\x5d\ \x88\x16\x6f\x49\x13\xea\x94\xe1\x10\x03\xeb\x28\xa8\x4b\x31\xeb\ \x09\x5f\x60\xb9\xe7\xa0\x8b\x50\xef\x76\x20\xd8\x76\xeb\x0f\x66\ \xe5\xdc\xee\x03\x75\x1d\x62\x06\x6a\x96\x39\x98\x84\xee\xc1\xb5\ \xe2\xc8\x23\x0a\xb6\xf5\x33\xc0\x30\x39\x92\x30\x55\x50\x6d\x6f\ \xac\xf6\xe0\x5a\xf7\x8a\x70\x37\x11\xb8\x4f\x12\x8a\x2e\x5a\xf2\ \x47\xd6\x37\x22\xa0\xb6\x7b\x77\x9e\xf1\x89\x16\x7e\x3a\x45\xd2\ \xa8\x86\xea\x4e\x0f\xed\x3c\xce\x41\xb1\x37\x3e\xd2\x4a\x34\x96\ \x35\x36\xde\xe1\x94\xaf\xed\x23\x75\x20\xee\x63\x61\x18\x2a\x0a\ \x65\x59\x72\x46\x63\x35\x66\x99\x7c\x8b\x06\x1b\x94\xc9\x02\x9d\ \x65\x65\x29\xd6\x12\x31\xb6\xc0\x33\xd4\xc4\x25\x3d\xae\x1b\x22\ \x31\xd8\x11\x75\x36\x1d\x64\x86\x95\x16\x99\x2a\xd9\x0c\x2c\x6d\ \x05\xc9\x07\x69\xb5\xc1\xc5\xa2\xce\xdb\x5c\x9b\x1e\xd3\x54\x17\ \xb0\x04\x16\x1f\xc4\x90\x8b\xb3\x75\x9e\x56\xc8\xb3\x58\xf2\x20\ \x32\x15\x26\xec\x09\x1c\xe6\x62\x13\xba\xf7\x92\x53\x54\xf8\x97\ \x7f\xfb\x83\xe6\x1f\x9a\x7b\x45\x5f\x63\x91\x6c\x36\x18\x1e\xb1\ \x54\xf2\x70\xc0\x11\xc1\xbc\x71\xa5\xe2\x8d\xc9\x60\xc3\x91\x78\ \x27\x40\x2e\xd4\x23\x0c\xac\x70\x4f\x16\x83\xab\xd9\xb9\x3c\x35\ \x62\x08\xb5\xfb\x41\xa7\xff\x00\xf1\x69\xd1\xa9\xf8\x89\xb1\xbf\ \x06\x12\xab\x05\x2a\x41\x56\x06\xd6\x33\x2d\x2e\x54\x5a\xff\x00\ \x0a\x19\xbb\xd1\x36\x27\xd0\xce\x79\xa4\x2f\xf3\x28\x32\xff\x00\ \x85\xb0\x5a\xfe\x1b\x8b\x25\x41\xb5\xbb\x45\x6a\x28\x14\xa8\xf4\ \x9f\x95\x36\x13\x32\xe5\xc3\x53\x22\x30\x7d\xa5\x90\xa9\xe4\x5e\ \x52\x28\x78\x0c\x09\x2a\xd7\xe2\xfc\x45\xd3\xa7\xb5\x18\x9e\x40\ \xc4\x1a\x75\x0a\x5d\x58\x9d\xa7\xf6\x8a\x87\xbd\x2d\xcd\xbb\xc4\ \x53\xf5\xe2\x62\xd2\x08\xc1\x96\xa8\xba\x9b\xe2\x2c\x3e\xc7\x17\ \x01\x81\xe0\xf7\x99\x59\x69\xec\x2c\xb7\xf5\xb7\x49\x26\xd6\xa5\ \xbd\x8b\x12\x4f\xb4\x9c\xd3\x2a\x7f\xd3\x71\x1b\xa4\x5a\x42\x8b\ \x97\xf3\x5c\x80\xa6\xf6\x2b\x18\xcb\x75\x34\xdb\x0f\x6f\x2b\x5f\ \x0d\x1d\xc0\x86\xa9\x17\x3f\x73\xf5\x85\x41\x86\xeb\x6c\xb0\xf6\ \x81\x51\x9d\x6a\x6d\x6e\x9c\xcd\x5a\x96\xb7\x98\x83\xfa\xcd\x7c\ \x0a\xd5\x87\xe6\xfd\xa0\x33\x16\x3f\x34\x16\xaa\x42\x86\xef\x31\ \x6b\x86\xf9\x91\x09\xf6\x99\x90\xbd\x9e\xe2\x6d\x60\xc5\xc8\xf4\ \x86\x86\x9b\x5a\xe9\x63\xe8\x67\xb5\x06\x98\xa9\x65\x62\x3d\xc4\ \x91\x2a\xa0\x72\x32\x22\xdb\xcd\x90\x38\x8d\xb9\x5b\x9b\xdc\x74\ \xb4\xc2\xe0\x7c\xcb\xcf\x68\x80\xe8\xeb\xf8\x35\xc3\x10\x0a\x9c\ \x30\xee\x20\x6b\x69\x7d\x9f\x52\x57\xf0\xde\xe0\x8e\xdd\x26\x39\ \x42\x7c\xb1\xba\xa2\x2a\xe8\x29\x3f\x54\x25\x0f\xf2\x23\xf5\x21\ \x75\x21\xb0\x4c\x20\xec\x00\x99\x60\x57\x9e\x21\x2a\x02\x30\x62\ \x0d\x0e\x19\x4f\x43\x69\xea\x15\x08\x16\x24\xc5\x52\x43\xb8\x7b\ \xc6\x35\x17\x17\xb7\x78\x13\xe9\xd4\x15\x00\x5a\x99\xec\x63\x85\ \x14\x6d\x3b\x80\x7f\x10\xbc\x85\x81\xbd\xf3\x1d\x4d\x9c\x69\xc8\ \x20\xe4\xf3\xed\x0b\x09\x2f\x45\x91\xac\x67\xb6\x98\xf5\xaa\x4a\ \xab\x9f\x63\x28\x55\x46\xe9\x2d\xc1\x88\xb6\x91\x1d\x4c\x11\xc9\ \xbc\x79\xd3\x83\x37\xc2\xb7\x22\x5f\xa3\x8a\x68\x5a\xa6\x9c\xaf\ \x51\x90\x24\xed\x8f\x48\xed\x27\x95\xc0\xe9\x33\x5a\x9b\x6a\x1b\ \x0c\x19\x8f\xa4\x5a\x67\xfb\xa7\x1e\x98\x92\x54\xfc\xeb\xf2\xff\ \x00\x11\xfa\x75\x3b\x18\x7a\x49\xd4\xd8\xf7\x1c\x18\xc4\x6d\x26\ \x18\x23\xf4\x84\xeb\x67\x23\xa4\xcf\x0f\x17\x5e\x21\x5b\x75\x3b\ \x9e\x46\x2f\x04\x9d\xd6\xc7\x12\x8d\x2d\x8f\x86\xa7\x17\xc5\xe2\ \x58\x31\x3e\xd1\xd4\xd6\xf4\xaf\xf9\x4c\x68\x65\x7b\xa3\x54\x03\ \x91\x61\x13\xae\xbe\xe0\x83\xf0\xa8\x12\x93\x4f\x73\x58\xdf\x2c\ \x3a\x49\xb5\x5e\x6a\xcc\x7b\x9b\xde\x31\x56\x25\x20\x32\xdc\x47\ \x54\x60\xaa\x02\x81\x60\x26\x30\xb8\x81\x5d\xb6\x83\x78\x7a\x91\ \xd5\x66\x63\x93\x26\x62\x54\xfa\x4a\x5b\x24\xc9\xb5\x16\xe5\x67\ \x48\xcd\x2d\x98\xdc\x32\x9d\xa7\xbc\x16\xac\xc3\x20\x06\x61\xdc\ \x44\x3b\x36\xe1\x99\xb7\xdc\x79\xc8\x88\x52\x35\xf5\x1e\x9f\x86\ \xc6\xc2\xff\x00\x84\x5a\x08\xaa\xb7\xb8\x04\x9f\x53\x25\x6c\x9c\ \x60\x8f\xde\x6a\x3e\xe1\x6e\xb2\x2a\x5e\xab\x83\xe5\x36\x10\x77\ \xee\xe4\xd8\xc5\xa3\x1f\x94\xcd\xb7\x6e\x7b\x48\x19\x50\xd8\x06\ \x3d\x44\x5e\xf2\x67\x9c\x90\xa0\x93\xc7\x49\x82\xc4\x60\x6d\x32\ \x42\x52\x14\xdc\xfe\x91\xdb\x8d\x45\xf2\xe1\x87\xee\x24\xd6\x21\ \xa3\x50\xdb\x3c\x11\xd6\x48\x48\x70\x01\xbe\x23\xd8\x87\xd3\x00\ \x2c\x5a\x9f\xf0\x7f\xe7\xef\x11\x50\xee\x1b\x97\x1d\xc4\xf5\x16\ \x2b\x63\xcf\x7f\x69\x11\xd3\xaa\xe8\xaf\x9b\x8e\xc6\x32\x8b\x23\ \xf3\xe5\x1d\xa4\xd5\x7e\xed\xc8\x06\xe8\x78\x3d\xc4\x30\xca\x13\ \x18\xc4\x93\x75\x34\xd9\x5a\xe2\x7b\x4e\xde\x15\xd8\x80\x4c\x04\ \x76\x5c\x02\x6c\x7a\x18\x61\x95\x8f\x99\x7e\xa2\x49\x84\xdb\xcc\ \x07\xfe\xa6\x83\x9b\x08\x74\xd5\x77\x5d\x5c\x63\xbc\x27\xd3\xbf\ \xcc\x17\x70\xf4\xcc\xb5\x11\x72\x0e\x6e\x23\x69\x39\x0d\xce\x7a\ \x19\x8e\xb6\x1e\x60\x41\x9e\x40\x0e\x00\xfa\x48\x2f\x67\x0d\x45\ \x19\x86\x7a\xda\x57\xa5\xff\x00\x31\x48\x8b\xf9\xc0\xf2\xfa\x89\ \x00\xbf\x80\xa0\x8b\x67\x99\x46\x91\x8d\xd4\x8c\x10\x66\x2c\xe9\ \xb8\xa2\x95\x57\x46\x03\xa8\x3d\x44\xe9\x6b\x82\x55\x4a\x7a\x90\ \xa4\x6e\x16\x62\x3b\x89\x26\xd1\x50\x17\x03\xcc\x3e\x65\xfe\xb2\ \xfd\x0d\xab\x69\xea\x50\x38\xb8\xba\xfb\x89\xce\xff\x00\x5a\x89\ \x29\xa8\xa9\x75\x04\x5e\xdd\x64\x8f\x48\xde\xc5\x7e\xa2\x5d\xe1\ \x94\x56\xdb\x92\x71\x13\x59\x6f\x7c\x15\x6f\xd8\xc5\x54\xaa\x15\ \x45\x8d\xf6\x9e\x41\xe9\x31\x91\x94\xdd\x4d\xd7\xa1\x9e\x67\x75\ \x6d\xbc\xde\x6a\x55\x34\xc1\xde\x15\xaf\xd2\x21\x95\x29\xf9\x02\ \xa0\x17\x26\xe4\x4a\x35\x3a\x63\x42\x97\x96\xa9\xa8\x00\x1b\x85\ \xac\x54\xc5\xe9\xd6\xfa\x85\x65\xdd\xb4\x9e\x6f\xfc\xca\x4d\x45\ \x76\x2c\xb6\xbb\x1c\xdc\x74\x85\xa9\xcb\xa9\x66\xb2\xd5\xb5\xff\ \x00\x0b\xf4\x3e\xf1\x0e\xa1\x09\x06\xe0\x8e\x86\x5d\xab\xa1\xb5\ \xcb\x22\x86\xa4\xdc\x8b\xc4\x78\x68\xc9\xb6\xa0\x6d\xb6\xf2\x3f\ \x6f\x43\x37\x28\xa4\x29\xc0\xe9\xeb\x34\x6e\xbd\xff\x00\x71\x3d\ \x52\x8b\xd2\x70\xbd\x7a\x40\xf3\x29\xe0\x8f\x69\xa0\x70\x36\xbb\ \x02\x0e\x63\x35\x25\x58\xdf\xa9\x17\x93\x2d\x52\xad\x7b\x5f\xe9\ \x1d\x51\x91\xd1\x1b\xe5\xe9\x04\x58\x62\x00\x22\xe2\x6e\xf0\xc2\ \xcc\x2c\x7b\xc2\x74\xdf\x4c\x14\x20\xc9\xda\xf6\x20\xde\xf2\x4d\ \x71\x63\x6e\xb1\x94\x5b\x76\x96\xba\x1e\x80\x30\xfa\x18\x8b\x92\ \x2c\x4f\xb1\x8d\xd0\xe7\x51\xe1\x9c\x6f\x05\x4f\xd4\x4a\x84\xe0\ \x0e\x86\x12\x92\x01\xb4\x5b\x02\x8c\x57\xac\x34\x7b\x5a\xe0\x18\ \xa3\x10\x98\xe7\xa8\xc3\xcc\x2f\x6e\xd1\x68\x29\x9b\x7c\xd7\xed\ \x0d\xbc\xcc\x6f\xc5\xe4\x47\x4e\xa5\x3a\x8a\x43\xb6\xdb\x1b\xf1\ \x1c\x19\x43\x2a\x2e\x55\x47\x3e\xa6\x44\x8a\xcb\x53\x71\xe0\x4a\ \x28\x8d\xd5\x6f\xc3\x64\x98\x58\xa1\xd4\xb6\x3d\xc0\x03\x3c\xfb\ \xc6\x53\x51\xed\x22\x46\xb3\xde\xf6\x22\x5c\xb7\xb0\x61\xc1\x99\ \xbd\x18\xa6\x92\x03\x80\x63\x85\x21\xd7\x32\x5a\x6e\x01\xed\x29\ \xa5\x5a\xdc\xd8\xcc\x56\xa3\xc6\x88\x19\xb1\xbf\x49\xea\xc9\xe2\ \x51\x3d\x48\xe2\x56\xad\x4d\x96\xdf\xb1\x85\xe1\x0e\x57\x20\xf4\ \x86\x9c\x72\x74\xd7\x17\x04\x62\x21\xa9\xf9\x89\x1d\x0c\xe9\xd4\ \xa1\xb6\xa6\xee\x55\xb8\x90\x54\x04\x3b\x5b\xbc\xd4\xac\xd8\x2a\ \x4d\xb6\xf7\xe0\xf2\x23\x15\x00\x3d\xd1\x85\xaf\x14\x96\x61\x6e\ \x0c\x65\x32\xc8\xdb\x58\x5d\x7a\x89\x22\xd9\x4a\xb5\xc6\x0c\xbf\ \x40\xb4\xdd\x0d\x22\x9e\x77\x17\xbf\xb4\x46\xa2\x98\x1b\x2a\x53\ \x21\x94\xff\x00\xcc\xcc\xa3\xa8\x14\x54\xd4\x03\xcd\xc2\xc2\xf6\ \x67\x47\x6a\x9a\x8e\x98\xba\xee\xdd\x54\xe0\x0b\x71\x39\x0e\xac\ \xc6\xe4\x98\xf2\x4b\x92\xcd\x72\x4f\x24\xcc\x16\x1d\xa6\xa7\x42\ \xf6\x1b\xe6\xd7\x81\xaa\xe0\xcd\x2d\x6e\x83\xd0\xc5\xea\x9b\x1c\ \xc6\x7a\x12\xd5\xee\x0c\x9e\xa6\x41\x8f\xab\x91\x24\xa8\x48\xb8\ \xbe\x66\xe3\x35\x39\xb6\xe2\x7b\x40\x04\xf4\x8c\x6c\xa9\x8b\x22\ \x54\x0a\xe1\xba\xd8\xcf\x5a\xe6\xe3\x0d\xda\x2c\xe3\x31\x8a\xd7\ \x17\x22\x44\x6b\x61\x62\xdc\xf4\x9a\xec\x4f\x9a\xd6\xe9\x88\x07\ \xcd\x9e\xb0\x95\xc1\x1b\x1a\xd7\x31\x0f\x5f\xcb\xcd\xe7\xb1\x00\ \x60\x30\x3c\xc1\x04\xcb\x51\xc3\x10\x81\xb8\xc4\x5a\x99\xa1\x81\ \xe9\x24\x30\x4a\xb5\xe1\x58\x6d\x2c\xb8\x07\x91\x30\x58\xae\x73\ \x3d\xb4\xdc\x15\x39\xed\x24\xf2\x93\x51\x45\x33\xc8\x3e\x5f\xed\ \x3c\x39\x20\xf4\x9e\x54\x24\x92\x30\x46\x61\x35\xdd\xae\x3e\x61\ \xc8\xef\xeb\x24\x01\x73\x93\x0a\x99\x04\xed\x82\x58\x9e\x7e\x82\ \x33\x4e\x2e\x7a\x5a\x48\xfa\x74\xc0\x5c\x8c\xcc\xbb\xa1\xc1\x22\ \x68\x6b\xb6\x78\x8d\x20\x1c\x37\xd0\xc0\xbd\xbe\xa3\x52\xb8\x6d\ \xde\xe2\xf0\x15\xfa\xb5\x35\x3f\x48\xda\x48\x41\xf2\xff\x00\x33\ \xc6\x91\x2d\xd8\xc8\x9b\x46\xa5\x36\xa6\x41\x4c\x76\xbc\xa6\x81\ \xd3\x30\x04\x78\x8a\x7b\x58\x48\xa8\x28\x5a\x8c\xa7\xa8\x8f\xa5\ \xe5\x36\x60\x3b\x4c\xd8\x63\xad\x4c\x51\x2e\x2a\x25\x56\xb9\x19\ \xf2\xca\xf4\xfe\x0a\x30\xaa\xae\xcb\x63\x7b\x6d\xe2\x71\x90\x95\ \x1e\x5e\x99\x12\x9a\x1a\xa2\xa6\xcf\x90\x67\x3b\x1a\x95\xd7\xad\ \x4b\x4e\xaf\x72\xed\x66\x17\x16\x12\x1d\x43\xe8\xc1\xb6\xca\xae\ \x47\xfb\xad\x2c\x3b\x6a\x68\x95\xc8\x24\x53\xc5\xc1\xe9\x39\x15\ \x4d\x2d\xe7\xef\x19\x7d\xc4\xcf\x13\x44\xda\x9d\x2e\x7f\xca\x0f\ \x72\xe6\x0b\x6a\xa9\x20\xf2\xe8\xa8\xfd\x6e\x62\x4d\x32\xcf\x65\ \x74\x37\xe9\x7b\x5e\x54\x68\xe0\x17\x4c\x80\x00\x00\x7f\x33\x7d\ \x33\xdb\x46\xbf\xc1\xa2\x09\xd2\xe9\xd5\x9b\x80\x17\xa7\xac\x36\ \xd6\xd4\x21\x4d\x3a\x74\x76\x9f\xff\x00\xcc\x62\x73\xeb\x53\x67\ \xab\x76\x63\xba\xf0\x83\x9a\x75\x42\xf4\x1c\x89\x64\x3a\xac\x6b\ \xab\xb0\x60\x7c\x3c\xf6\x41\x22\xaf\xf1\x1d\x65\x1a\x99\x14\xc8\ \xff\x00\xc0\x08\x6c\x14\x03\x51\x70\x0e\x3d\xa2\xeb\xa0\xab\x4f\ \x69\xf9\x87\x06\x52\x41\x6d\x51\x4b\xe3\x14\x98\xa0\xab\xa7\x50\ \xa7\xf1\x76\x3e\xd0\x75\x5f\x12\xd3\xd2\xa9\xb2\xae\x94\x0e\xbc\ \x03\x79\xc7\xa8\xad\x4c\x90\xc3\xde\x39\x14\xea\x28\x78\x04\xdd\ \xd4\x5e\x91\xee\x3f\x2c\xd7\xe6\x0f\xd5\x58\x35\x5f\x0e\xad\x86\ \xa2\x07\xb4\x72\x69\x34\x5a\x84\x29\x4e\xab\x21\xe4\x5e\x7c\xe9\ \x04\x1b\x64\x11\x1f\xa6\xaf\x52\x9b\x02\x18\xe2\x37\x8f\xf0\x7e\ \xbf\xae\xa3\xe8\x2b\x52\x53\xb4\x87\x1d\xc4\x90\xf9\x94\xab\xe1\ \xbb\xca\xe9\xea\x1c\x5a\xa5\x36\x36\x6e\x90\xeb\x53\xa7\xac\x52\ \x52\xc9\x58\x0b\x91\xde\x12\xdf\xa5\xc9\x74\x65\x39\x87\xa5\x6d\ \xba\x8a\x4c\x79\x0c\x3f\x48\xc6\x52\x3c\x8f\x70\x47\x78\x96\x5d\ \x95\x14\xf6\x33\x6c\x87\x54\x08\xae\xc0\x74\x63\x05\x54\x92\x3b\ \x88\xfd\x70\xb6\xa9\xcf\xac\xca\x78\x01\xba\xc9\x35\x57\x68\x17\ \xe6\x35\x00\x2b\x9c\x0e\xa6\x25\xb7\x0c\x8f\xd6\x52\x17\x0a\x3b\ \x08\x10\xea\x2c\xc0\x11\x8b\x70\x3b\xc0\xa6\xc5\x0e\xeb\xe7\x88\ \x4e\x06\xe3\xb9\xb3\xd2\x0b\xdb\xa0\xc1\xe2\x49\xbb\xf7\x1f\x35\ \xaf\x79\x5e\x9d\xac\xbb\x72\x0f\x32\x03\xf3\x47\xd0\x7b\x10\x0f\ \x1d\xe5\x62\x59\xc9\xc4\xdd\xcc\x3d\x22\xac\x54\xde\xf7\x07\x88\ \xc5\x7c\x5a\xf8\xec\x67\x36\x8c\xa7\x59\x94\xf7\x12\xfd\x36\xa4\ \x11\xdc\x75\x13\x90\xc4\x03\x70\x6d\x36\x95\x66\x4a\x97\x95\xe3\ \xab\x5f\x53\x42\x9d\x3d\x55\x2d\x97\xb1\x23\xca\x67\x0b\x57\x49\ \xa9\x57\x65\x61\x62\x0c\xb7\xe1\x3a\xbb\x54\x00\x1c\xf6\x97\x7c\ \x4b\x4e\x9a\x84\x15\x40\xcf\x7e\xc6\x73\x97\xf3\x5b\xbd\xc7\xce\ \x11\x63\x71\xd2\x3d\x19\x5c\x59\xba\x45\xd7\xa6\xd4\xdc\xab\x0b\ \x11\x05\x0e\x47\x79\xd1\x83\x2b\x6e\x51\xb2\xc4\x86\xe2\xd2\x7a\ \x86\xc6\xc7\x89\x52\x6e\x00\x9c\x30\x19\xb1\xeb\x23\xae\xc5\xaa\ \x33\x90\x01\x27\x89\x45\x58\x5c\xf1\x6b\x4d\x19\x17\xbc\x58\x17\ \xcd\xf2\x21\xaf\x16\xbe\x26\x80\x08\x3d\x44\x0d\x57\xc8\xa6\x35\ \x89\x81\xa8\xcd\x25\x8a\x42\xe4\x89\x25\x53\x99\x4d\x51\x7b\xd8\ \xc9\x6a\x0f\x35\xe6\xe3\x21\x71\xe4\x11\x67\x8b\x08\xe7\x06\xc0\ \x0e\x6d\x04\xa8\x1e\xf2\x05\x6d\x00\x5c\xfe\x91\x57\x3b\xaf\x1a\ \x62\x9c\x67\x10\x30\xc0\xf8\xc4\xc6\xce\x7a\xc0\x4b\xde\xf1\x81\ \x6e\x31\x24\xd3\x91\xbb\xa1\x13\xd4\xd6\xf1\xc9\x4e\xf4\x88\x3c\ \xf3\x31\x10\x83\x8c\xc4\x32\xdd\x21\x78\x66\x51\x4a\x9d\xc6\x45\ \x8c\x6a\x52\x09\x96\x04\xf6\x96\x94\xdb\x08\x36\xe2\x79\x69\xb0\ \x3b\x8d\xc7\xac\xa2\xe0\x12\x47\x24\xc1\x72\x5b\x93\x81\xd2\x5a\ \x80\x49\x65\xb1\x3d\x66\x00\x0b\x0b\x1b\x1e\xf3\x4a\xf9\xbb\x62\ \x0a\x7c\xd2\x0d\x7a\x77\xf3\x28\xf7\x13\x69\xa8\x45\xb4\x7d\x36\ \x20\xee\x60\x08\x1d\xa7\xaa\x20\x70\x5a\x9f\xb9\x1d\xa0\x43\x49\ \x6f\x1d\x8b\x64\x5c\x44\xd3\x06\xe0\xca\x14\x82\x6c\x64\xa0\xe9\ \x02\x0d\xc7\x12\x9d\xbb\x85\xed\x7c\x44\x53\x50\x0e\x0c\xaa\x8e\ \x06\x38\xeb\x31\x5a\x84\x78\x6a\x58\x1e\x0c\xd7\x46\x0d\x8e\xb1\ \xb5\x94\x1e\x9f\x51\x04\x83\xb0\x10\x65\xa8\x28\x18\x1b\x1b\xd8\ \xfe\xd0\x43\xb2\xb6\xd3\x73\xef\x08\xb3\x86\x1b\x4d\xfb\xcf\x06\ \x24\xd9\xb1\x7e\x24\x9d\x9f\x84\x55\xde\x4d\x06\xe2\xa2\x11\xec\ \x7a\x4e\x75\x75\xb3\x30\x72\x05\x8f\x26\x1e\x96\xad\x4a\x44\x54\ \x07\xe5\x20\xfe\x91\x5a\xfc\xd7\x75\xc5\xf9\x1e\xb3\x32\x76\x6f\ \x80\x35\xa9\x8b\x04\x19\xfc\xd3\x29\x9a\xa0\x92\x95\x09\xeb\x83\ \x99\x33\xa1\xc1\x18\xb4\x3a\x4c\x4f\xb7\x79\xbc\x1a\xe8\x53\xd5\ \x55\xb5\xaa\x59\xc0\xe8\xe2\xf6\x8d\x5a\x9a\x5a\xbe\x5a\xd4\x4a\ \x76\x74\x32\x54\xab\x71\x90\x1d\x7d\x66\xd9\x18\x1b\x1d\xbe\x86\ \x63\x0a\x9f\xb1\xd3\xd9\xba\x86\xa1\x58\x13\xc3\xe0\xc9\xf5\x74\ \xaa\x52\x62\xad\x4e\xc9\x6f\x2b\x08\x4b\xb9\x48\x52\x2e\xbc\x11\ \xd0\xcc\x67\xaf\x42\xb3\x05\x62\xc8\xd7\xc1\xcd\x8c\xa2\x41\xac\ \x40\xd4\xf7\x5b\x32\x45\x24\x1b\xa9\xb1\x06\xe3\xb8\x33\xae\x4d\ \x0d\x4d\x32\x2c\x29\x54\x23\xb6\x09\xfe\x93\x97\xaa\xa6\xf4\x2b\ \x79\xd7\x69\xfd\xa6\xf8\xd6\x68\x75\xa3\x79\x1a\x85\x16\x0f\xc8\ \xec\x7a\xc9\x81\xcd\xa5\x88\x55\xe8\xd4\xa5\xe9\xb9\x7f\xac\x90\ \x0b\x37\x33\x50\x2c\xd2\x38\x51\xb1\x8f\x94\x9f\xd0\xca\x09\x64\ \x65\x23\x0c\x3a\xc8\x13\x1b\x73\xd6\x5d\xe5\x7a\x61\x37\x79\x80\ \xf2\x9b\xc2\x98\x7d\x60\xba\xca\x25\xd4\x05\xac\xbc\x8e\xf3\x9e\ \xcc\x0f\x91\xb9\x11\xa2\xa3\xd3\x70\xeb\xf3\x2f\x23\xbf\xa4\x2d\ \x5d\x21\x5d\x7e\xd1\x44\x73\xf3\x0e\xd0\x9d\x20\x6b\xc0\xf1\x89\ \x3f\x88\x03\xfb\x40\xa6\x53\x60\x04\x1b\xf5\xcc\x76\xa9\x09\x34\ \xc3\xdc\x79\x06\x64\xe5\x19\x5a\xe4\x18\xcf\x11\x89\xb0\xd7\x02\ \xd7\x5b\xe6\x51\xa8\x64\xb0\x2b\x71\x79\x3f\x87\xb1\xb0\x6e\x66\ \x92\x6d\x66\x19\xf5\x92\x2c\x93\x7c\x09\xb4\xee\x58\x03\xde\x61\ \xb5\xf3\x68\x68\xb9\xbf\x48\xa0\xd4\x16\x6c\x71\x0e\x97\x33\x6a\ \x0b\x0e\x2f\x79\x94\xc8\xe0\x88\x25\x54\xde\xf4\xfb\x89\x8e\x42\ \x8b\x83\x89\x94\xc0\xe2\x63\x8d\xa6\x67\xe9\x27\xc4\x3b\x89\xb0\ \x84\x1c\xdc\x10\x30\x7a\x4f\x54\x41\xf3\x28\x3e\xd3\xd4\x40\xb9\ \x0d\xc4\xd0\x5f\xa0\x37\xb3\xa1\x37\x53\x91\xd6\x77\x34\xfa\x8f\ \x11\x0a\xee\xb3\x1c\xdb\xa1\x9f\x3d\xa5\xbd\x37\xba\xde\x74\x74\ \xf5\x47\x89\x6b\x8d\xc3\x36\xef\x39\x72\x8d\xf1\xaa\xb5\x94\x06\ \xa1\x09\x18\x71\xc7\xf6\x9c\xa2\x85\x4d\x88\x20\x83\x99\xd5\x35\ \x0a\x81\x53\x9d\xb8\x23\xd2\x2f\x5d\x44\x3a\x78\xf4\xec\x71\x9f\ \x58\x4a\x6c\x40\x86\xed\x66\x3e\xc6\x26\xa2\x6e\x26\xd6\xbc\x33\ \xd6\xf0\x78\xc8\x9a\x64\x9f\x0c\x83\x79\x85\x0e\x6c\x6f\x19\x57\ \x0b\xb8\x0c\x1f\xda\x0a\x3d\xc5\x8f\x22\x21\x29\x67\x43\x82\x31\ \xeb\x0a\xb3\x0f\xb3\x6e\x03\xae\x44\xea\xb2\xfc\x17\x54\x2c\x19\ \xa8\x39\x8b\xd4\x7c\x1e\xaf\x80\x7e\xcd\x55\x2b\x2f\x36\x8f\xea\ \x7d\x58\xf9\xda\xac\x2f\x13\x7b\x9b\x13\x79\x46\xbb\x4f\x56\x8d\ \x4d\xb5\x69\x3d\x32\x3b\x8b\x44\x22\xe7\xbc\xe9\x18\x15\x51\x6e\ \x39\xeb\x13\x78\xc5\x6b\xb1\xcc\xf6\x1a\xf8\xcc\x91\x0d\xed\x30\ \x21\xe6\x3c\xa1\xbd\xed\x0a\x9d\x07\x71\x85\xc4\x92\x65\x52\x7a\ \x46\xd3\x5f\x30\x12\x95\xa3\x4d\x30\x2e\x4c\xf1\xa6\xa1\x6e\x2f\ \x79\x20\xe3\x78\x2b\x9b\x62\xd1\xde\x19\x43\x8c\x0e\x62\xe9\x25\ \x8d\xc4\xb4\x28\x6a\x4a\xc3\xe6\x18\x30\xa6\x13\x49\x37\x1b\x5e\ \xdd\xef\x09\xee\x30\x47\x30\xdd\x76\x5a\xc0\x92\x60\xfb\xc8\x96\ \x54\x01\x88\x36\x8e\x36\xf6\x82\x45\xfa\xc8\x61\x6c\xbe\x63\x8e\ \x90\x76\x6d\x39\x95\x52\xa6\x58\x13\x6e\x20\x94\xb1\x37\x17\x32\ \x58\x52\x8b\x8b\x91\x88\x48\x19\x5b\x72\xe2\x18\x56\x3c\x8b\xc6\ \xd1\xa7\x6c\xdb\xe9\x25\x8d\x54\x56\x5d\xc3\x07\xd2\x67\x84\x7b\ \x46\xaa\xec\x37\x02\xc0\xf4\x30\xc0\xb0\xdc\x32\x3b\x4c\xeb\x45\ \xaa\x1e\xf1\xca\x08\x1c\xcf\x29\xbe\x01\x23\xd2\x1e\x7a\x89\x9b\ \x53\x77\x07\x4d\xbd\x44\x0a\x60\xd8\x83\x04\xb0\x0d\x1d\x4e\xce\ \x09\x3c\xc8\x92\xea\x2f\xb8\x74\x98\x08\x64\x04\x0e\x0c\xda\xb7\ \x0c\x7b\x40\xa7\x92\x41\xeb\xc4\x42\x84\x65\x34\x8a\x92\x41\xb5\ \xa7\xb5\x76\xf1\x11\x8f\x3b\x46\x62\x2a\xb0\x57\x54\xfa\xc7\x6a\ \xce\xf7\x55\xec\xa0\x7b\x40\x91\x5c\x12\xbb\xd0\x0b\x1f\x48\x28\ \xc5\x86\xdc\x02\x39\x10\xee\x02\xb5\x34\xfa\x1f\x58\x28\x55\x10\ \xbd\x41\x76\xbf\x96\xdc\xcd\x03\x11\xc7\x16\x00\xc7\x21\xa6\x7c\ \x87\x9c\x44\x52\x43\x53\x2a\xc0\x9e\xc7\x11\x8b\x4d\xac\xc4\x8b\ \x11\xd2\xd3\x34\x89\x5c\x87\x3f\xc4\x5b\x3b\x03\xb9\x49\x23\xa8\ \xea\x23\xf4\xcd\x4d\xe8\x32\xb5\x3b\xb5\xee\xa6\xf9\x90\xd7\xba\ \x31\x28\x4e\xe1\xc7\xac\xa0\x13\x56\xb1\xdc\x2d\x98\x49\xab\x47\ \x43\x46\xbd\x35\x74\xcd\xbb\x8f\x68\x85\x02\xbd\x22\x40\xb5\x41\ \xc8\xef\x11\x50\x6d\x7e\x6d\xd6\x6b\x20\xd3\xde\x9a\x51\xab\x49\ \xb6\x06\xa6\x4d\x83\x03\xc8\x31\x0e\xb4\x83\x15\xda\xc2\xc6\xd1\ \xba\x5a\x8b\x76\xa1\x54\xdd\x1b\x8f\x43\xde\x06\xad\x19\x35\x4c\ \x30\x7a\xfb\xc5\x35\x13\x4f\x6d\xc5\x98\x7b\x88\x5b\x69\x73\xe3\ \x66\xfd\x44\x41\xab\x64\x0b\x6c\x83\x00\xd5\x24\x47\x16\xad\xd8\ \x8e\x33\x55\x49\x18\xbc\x76\x9a\x93\x51\xa9\xbd\x41\x64\x6c\x11\ \x79\xce\x57\xcd\x88\x16\x32\xdd\x1d\x40\xf5\x36\xbe\x0a\xf1\x9e\ \x66\x6a\x8a\xbe\x23\xa6\xdb\xb0\xab\x38\x16\xb0\x36\xc4\x91\x5d\ \xb6\xec\x73\x6b\x70\x48\x9d\x04\xad\xb2\xd4\x6a\x96\x00\x8c\x5f\ \xbc\x4e\xa0\x85\x01\x2b\x20\x61\xd1\xad\x33\x2b\x55\x38\x66\x5b\ \x36\xc5\x7e\xe4\x41\x66\x4e\x40\x36\x27\x88\xd5\x4a\x40\xf5\x00\ \xf4\x07\x13\xc7\x4a\xdf\xf6\xd8\x3a\x9e\x86\x6b\x60\x4a\xcb\x4c\ \xb6\x09\x5f\xa4\x72\x50\x36\xf2\xb8\x27\xf4\x9e\xf0\x9d\x1b\xcd\ \x4e\xc3\xbc\x62\x2a\x91\xcc\xad\x41\x28\xfd\x56\x1a\x53\x07\xa1\ \x06\x11\xba\x88\xc4\x67\x23\x06\xc7\xb1\x99\xd4\x0b\x64\x5a\x05\ \x41\x71\x79\x4d\xee\x3c\xe8\x2f\xfa\x4c\xfb\x93\x75\x3b\x85\xe5\ \xa5\x1b\x06\xfc\x33\xca\xaa\x3c\xdd\xf9\x12\x96\xa6\x87\x87\xfd\ \xa7\xa9\xe9\x86\xef\x2d\x54\xcf\x31\xd1\x81\x47\xb8\xc6\x23\x03\ \x6d\xaa\x8f\x1c\xba\x05\x04\x37\x8c\xb6\xf6\x94\x7d\x9b\x4a\xaa\ \x0d\x4a\xc4\xf5\xb4\xce\xc3\x82\xa7\x58\x35\xaf\xec\x7d\x63\x34\ \x55\x3c\x3a\xad\xa7\x7c\xab\x65\x62\x7c\x6d\x15\x3b\x6d\x42\xd6\ \xfc\x44\xca\x2a\x6a\x74\xfe\x12\x56\xa7\x49\x78\xfd\x26\x5a\x43\ \xae\xd3\xb5\x2a\xc7\x6f\xca\x72\x0c\x9a\xa2\xb0\x23\x9c\x4e\xf2\ \xd6\x15\x34\x7e\x3d\x22\xa5\x80\xe0\x89\x0b\xeb\xeb\x0c\xec\xa6\ \x7d\x00\xe6\x52\xd5\x64\x73\x1a\xf9\x5c\xe6\x4e\x03\x64\x13\x63\ \xc4\xea\xb7\xc5\x5c\x61\xa8\x52\x6f\x42\x26\x0f\x89\x69\x5e\xc6\ \xae\x8e\x9b\x5f\xa8\x13\x72\xdf\xe3\x39\x1c\x2a\xb7\xb0\xbf\x5e\ \xb1\xb4\x35\x55\x68\x52\x1e\x1d\x46\x53\x7e\x86\x2e\xa5\xb6\x29\ \x36\xf5\x8a\xaa\x01\xa4\xb6\x39\x9d\x19\x74\x0f\xc6\x05\x40\x29\ \xeb\x68\x53\xac\x83\xa9\x19\x8b\x3f\x0f\xd2\xea\x89\xa9\xf0\xfa\ \xc2\xf9\x26\x9b\xf4\x9c\xb6\x46\x3c\x91\x78\x74\x9f\xc1\x3b\xd1\ \x88\x6b\xf7\x87\xe7\x3c\x5b\xfd\x7a\xa6\x92\xb5\x2a\xc5\x2a\x53\ \x60\x46\x26\xae\x9c\x0b\xf9\xad\xe9\x3a\xfa\x5f\x8a\xa5\x75\x14\ \x75\xb4\xd5\xc1\xe1\xbb\x4d\xad\xf0\xc1\x54\x1a\xba\x5a\x81\x93\ \xf2\x93\x99\x7e\xb3\xd5\x9f\xc7\x3a\x98\xa6\x83\x2a\x49\xea\x4c\ \x5d\x4a\x97\xc2\xf1\x1d\x53\x4f\x5e\x99\x21\xe9\xba\x88\xbd\x84\ \x9c\x5a\xd1\x01\xa6\x8c\xcd\x7e\x44\x22\x37\x1b\xf1\x1a\xaa\x42\ \x5b\x82\xdd\x7d\x21\x0a\x5c\x93\xc4\x96\x10\xaa\x44\xa3\x4e\x2e\ \xae\x2d\xc0\xbc\x3a\x1a\x56\xa8\xe0\x66\xde\x92\xa7\xd2\xa5\x32\ \x02\xb9\x3b\x47\x9b\xde\x66\xd8\x64\x44\x2a\x1e\x5b\x33\x1d\x7c\ \xb7\x5c\xc2\xab\x4c\x29\x22\xf9\xed\x3d\x48\x32\x9c\x1c\x70\x62\ \x93\x5c\x93\x68\x40\x77\x95\x9a\x48\xf9\x5c\x18\xa6\xa0\x47\x73\ \x2d\x58\x2a\x0d\x65\x37\xe2\x30\xaa\x11\x7c\x1b\xc5\x28\x20\x95\ \xe2\xc2\x32\x98\x62\x38\xb5\xa1\x53\x02\x80\x6c\xb7\x8d\x4a\x78\ \xcc\x24\x5b\x1c\xc6\x20\xfa\xcc\xda\x70\xbd\xa6\x6d\x35\xb7\x39\ \xbf\x31\xc5\x6f\xd2\x60\x4e\x6d\x0d\x25\xb2\x6d\x6e\xc2\x10\x6b\ \x8b\x18\xd4\x5d\xc3\x69\xfa\x41\x34\xec\x30\x47\xf5\x92\x4f\x50\ \x67\x88\x5a\x72\x43\x15\xef\x18\x13\xbc\xc5\x5d\xaf\x83\x1d\x40\ \xaa\x45\x88\x7e\xbc\x19\xea\x14\xce\xfb\xdb\x1d\xe1\x55\x42\x54\ \x12\x63\xa8\x1f\x09\x77\x1c\x5c\x58\x02\x25\xf1\x24\x28\x6a\x6a\ \x01\xc6\x0d\xa7\xbe\x20\xe7\xc6\x64\x41\x60\x05\xaf\x1f\xa6\x01\ \xb5\x60\x91\x6d\xa6\xe4\x1e\x24\xf5\xd7\xef\x0b\x35\xc0\x26\xf7\ \x8c\xf4\x12\x87\xcc\x0b\x62\x15\x64\x3e\x20\x60\x49\x53\x05\x94\ \x10\x40\x3c\x0e\x23\x68\xdf\xc2\x05\xfc\xaa\x39\xbc\x68\x7a\x97\ \x01\x81\xb1\x3c\x4a\x1e\xbd\x45\xa6\x00\x6e\x45\x8d\xe0\x04\x0c\ \xbe\x22\x5a\xdd\x04\xc5\x56\xcb\xf4\x13\x24\x24\x39\x36\xa7\x7b\ \xda\xe0\x8e\xf2\xc1\xa6\xa2\xfa\x61\xa9\xac\xcc\x2e\x6c\x42\x8e\ \xb2\x52\xee\x9f\x59\x55\x4c\xe8\xd6\xc6\xc6\x93\x5d\x87\xa1\xff\ \x00\x82\x54\xb9\xd5\xa9\x7d\x9f\x57\xe5\x38\xe4\x1e\xe2\x2f\x57\ \x4f\xc4\xb3\xa8\x19\xe4\x4b\x9e\x99\xab\x4b\x16\xdd\x4f\x23\x3d\ \x24\xed\xba\x9d\x99\x94\xdb\x83\x89\xa9\x46\x21\x2a\x41\x0d\xe9\ \x69\x5d\x6b\x57\xd1\xad\x4f\xfb\x88\x33\xea\x22\x9d\x45\xc8\xb9\ \x23\x91\x37\x4f\x50\x53\xb1\xe8\x0d\x8f\xb1\x8d\x09\x2a\x5b\x18\ \x98\xa0\x11\x8c\xc7\x6a\x69\x78\x75\x88\xe5\x4e\x57\xda\x62\xa0\ \x02\x3a\x03\x63\x6b\xc6\xd0\x04\x5c\xf5\xb4\xd0\xb7\xf5\xcc\x6d\ \x2a\x64\xb0\xdb\x9b\x98\x1c\x74\x59\x52\xad\x34\x57\x60\x1b\x68\ \xb1\xb4\x31\x47\xc4\xa4\x29\xbb\x29\x61\xc1\xeb\x26\xae\x0a\xd5\ \x01\xae\x2c\x04\x62\x54\x26\xc1\xb3\xd8\xce\x6d\x27\xaf\x45\xe9\ \x36\xc7\x42\x07\x79\x89\xb9\x45\xc1\x27\xb6\x65\xee\xde\x22\x58\ \x9b\x38\x92\xf9\x77\x6d\x74\xb1\xf4\x8e\xac\x32\x86\xab\x70\xdb\ \x55\x77\x2f\x63\x18\xd4\x69\xbf\x9a\x9a\xdc\x7b\xc0\x5a\x2a\xc3\ \xee\xd8\x37\xfb\x78\x30\x7c\xe8\xf8\x25\x48\xe9\x04\x30\xb4\x86\ \x0b\x30\x3d\x88\x8d\xa6\x94\x48\xf9\xf3\x31\x4a\x56\x4b\x11\x62\ \x3a\xc4\xbd\x36\x43\x9e\x3a\x19\x25\x26\x9a\xdb\x92\xcb\xe9\x25\ \xad\xe1\x53\xa8\x79\x36\x86\x97\x23\x98\x15\x85\xf9\x1f\x59\x44\ \x16\xac\x9c\xad\x30\x26\x78\xce\x06\x2c\xbf\x48\xa3\x4c\xf4\x83\ \xb8\x64\x13\xc4\xd6\x0d\x3d\x2b\xb1\x3b\x4b\x1f\xd6\x1b\x5f\xc3\ \xc9\x91\xb3\x5b\x20\x62\x52\xb5\x2f\x44\x1e\xa2\x56\x26\x51\x52\ \xc8\xc0\x99\x56\x88\x86\xa0\xd4\xc9\xeb\x26\xa4\xc3\xc4\x22\xf1\ \x9a\x5b\xad\x47\x1c\x62\x14\xc7\x47\xe0\xf9\x4a\xd4\x09\xc0\xff\ \x00\xf2\x73\xab\x1d\xa4\x8b\xd8\x83\x2d\xf8\x61\x23\xe2\x2c\x07\ \xe3\x53\xfd\xe4\x5f\x11\xf2\xea\xaa\xaf\x19\x33\x33\xd3\x7c\x49\ \x55\xef\x6b\x8e\x62\xc8\x06\x83\x10\x4f\x95\xa6\x38\xc0\x6b\x75\ \x9b\x48\xe2\xa2\x5f\xf0\xde\x75\x60\x8a\xa4\xf8\x6a\x3b\x08\xaa\ \x98\x44\xb7\xe5\x87\x52\xe3\x9e\xe6\x05\x67\x00\x80\x7a\x0b\x44\ \x10\xe4\xa9\xb1\x98\x46\x16\xd3\x4f\x98\x81\xde\x63\x35\xd9\xad\ \xc7\x48\x81\xa1\xc4\xa6\x86\xa6\xad\x16\x1b\x18\x8f\xac\x9e\x98\ \x8d\x45\xc4\x29\x75\x29\xfc\x4d\xb6\xed\xaa\x8a\xd1\x8b\x53\x49\ \x54\x8d\xf4\x54\x13\xd4\x62\x73\x55\x45\xbd\x63\x29\xa9\x00\x9f\ \xd2\x67\xf3\x1a\xd7\x4b\x6e\x89\xbe\x5d\xde\x99\x84\x94\xf4\xca\ \x46\x09\xf7\x9c\xca\x65\x83\x00\x25\x4a\x48\xb3\x1b\x93\xd0\x4c\ \xd9\x87\x56\xd4\xa8\x94\xd2\xc9\x60\x4f\x6e\x64\xa5\xae\x6d\x6b\ \x09\xe1\xcd\xcc\x24\x5c\xc1\x15\x5d\x3e\xf8\xf6\x8b\x75\x24\x8b\ \x0c\x4a\xf5\x20\x1a\x9f\x41\x14\x56\xe2\x32\xa2\xa9\xad\xb3\x1a\ \x01\xbd\xc6\x67\x90\x0e\xb1\xa9\x81\x89\x5a\x93\x0a\x60\xbb\x1e\ \x09\x8c\x44\x2a\x6e\x04\x71\xa3\x82\xc2\xc4\x43\xa4\xa7\x1d\x61\ \xab\x0a\xdb\xe7\x20\x64\x46\x2a\x81\xd2\x57\x4e\x80\x75\xc0\x13\ \xcd\x40\x8e\x44\x34\xe2\x62\x16\xd8\x3f\xb4\xc0\xa4\x62\xf1\xde\ \x1d\x8c\xdd\x97\x32\xd4\x4e\xd6\xbe\x08\xfd\x63\x0d\x2d\xea\x5b\ \xaf\x58\xd4\xa7\x9b\x81\x0f\xe5\x86\x94\x4d\xe5\x16\xbd\xe0\x06\ \x1b\xc6\x39\x8f\xae\x9f\x88\x71\x12\x40\xc3\x5b\x89\xa0\x6b\x53\ \x25\x2c\x39\xbf\x31\x35\xed\x75\x50\x7d\xe5\xda\x70\x0d\x30\x4f\ \x04\x49\x6a\x04\x04\x9f\xc4\xd9\xf6\x84\xaa\x94\x8a\x17\x4f\x51\ \xfa\x9c\x09\x2d\x3a\xce\x0e\xd6\x1b\xd2\xfc\x1e\x92\xaa\xe2\xd4\ \xd5\x3b\xe4\xc8\xf6\xe4\x80\x26\xa3\x34\xc3\x4e\x95\x67\xbd\x37\ \xf0\xdf\x8b\x37\x1f\xac\x23\xa6\xa8\x8a\xca\xe0\xff\x00\xe4\x78\ \x8a\x08\x15\x6d\xd6\x59\xa4\xad\x56\x8a\x94\x24\x38\x23\xe5\x6c\ \x89\x53\x13\xd3\xbe\xf0\x83\x0a\x25\xa1\x54\xe8\x5d\xba\x3b\x00\ \x3d\x6d\x01\xf5\x3a\x4c\xee\xd2\x1b\x9e\x76\xb9\x02\x05\x5d\x4f\ \x8a\x40\xb2\xa2\x01\xe5\x51\xc0\x87\xa8\x8d\x87\x70\xa4\x46\x7b\ \x98\x34\x2a\x1f\xb6\x3a\xb0\x26\x9b\xf9\x48\xec\x0c\x68\x57\x70\ \x76\xdd\x89\xf2\x81\x2a\xd2\x50\x55\xda\xf8\x25\x56\xe7\x77\x53\ \xd2\x3a\xb1\x2e\xa3\x4d\x56\x85\x54\x6b\x82\x08\xb1\x83\x54\xb2\ \xab\x73\x6b\xdf\xda\x55\xa9\x74\xac\xbb\xd6\xf6\x56\xdb\xff\x00\ \xb8\xb6\xfb\xd1\x76\xb7\x16\x3e\xb0\xd5\x88\x55\xcb\x8b\x6d\x57\ \x2b\xdc\x74\x8b\x61\x48\x97\x56\xa7\x62\x47\x43\x28\x6a\x1b\x5c\ \x38\xbd\xbf\xa4\x0a\xb4\xc8\x20\x91\x71\x37\xa0\x22\x9d\x3a\xfa\ \x7b\x2b\x90\xf4\xf8\xdc\x39\x10\x3c\x07\xdb\x8b\x37\xb6\x61\xd2\ \x5f\x0a\xa8\x37\x3e\xd1\xb5\x29\xec\x7f\x2f\x07\x22\x5b\x80\xaa\ \x48\x6c\x63\xa9\x7d\xd9\x04\x76\x9e\x0c\x7f\x18\x0d\x0d\x50\x5c\ \x6d\x3c\xf4\x30\xb4\x8e\xbd\x41\x50\xaa\xbf\x55\x16\x3d\xa2\x76\ \xbd\x36\x00\xda\xd3\xd5\xd5\xc6\xd6\xb1\xc7\x48\xd5\x60\x52\xcd\ \xf2\xdb\x1e\x90\x4d\x4a\x81\x8d\xaf\x66\xe9\x18\xc8\x19\x6e\xa2\ \xec\x39\x88\x09\xb7\xcd\xd3\xa1\x8c\x15\x0f\x3f\xac\x08\x30\xa6\ \xf9\xbc\x6a\x57\x0c\x36\xd5\x1b\xc7\xaf\x22\x0d\x45\xde\x37\x01\ \x99\x23\xb5\x8e\x71\x19\x35\x78\xbf\x65\x36\xce\x9d\x8e\xef\xca\ \x79\x85\x41\xf7\x83\x4a\xa8\xcf\x79\x1d\x17\xe0\xde\xc7\xbc\xa8\ \x55\x4a\x98\xa9\x86\xe8\xe2\x16\x26\xd4\xa6\x69\xb5\x8f\xd2\x2c\ \x8b\xe0\xca\xac\xe5\x36\xb6\x48\xca\x9e\xf1\x55\x2a\x02\xdb\x58\ \x7b\x19\x2c\x4b\x50\x15\x89\xa9\x63\x93\x8f\x59\x46\xa1\x6f\xc4\ \x99\xc1\xb7\x13\x50\x52\x88\xdb\xcf\x98\x77\x11\x9a\x62\x48\x23\ \xa1\x80\x97\x56\xdb\x7c\x4a\x29\x2a\xf4\xc1\xbf\x11\xa2\x05\x2e\ \x2b\x03\x28\xa2\x0f\x8a\x4f\xa4\x53\x21\x5a\x9d\x70\x65\x09\xe5\ \x63\xeb\x33\x5a\x87\x7c\x35\xad\xf1\x2a\x57\x3c\xa9\x1f\xb1\x89\ \xf8\xb5\x8e\xba\xaf\x4b\x18\xcd\x08\xbf\xc4\x34\xe6\xfd\xff\x00\ \xac\x9f\xe2\xee\x06\xba\xae\x7a\xc2\x7f\xd9\x7c\x42\xf8\xf2\xcc\ \xd3\x79\xaa\xdb\xb8\x23\xf6\x9e\x66\x04\x83\xf5\x99\xa7\xc6\xa1\ \x07\xfb\xa7\x4f\x8c\x91\xa9\x37\x7c\x77\x93\xea\x0f\xde\x1e\x9d\ \x23\xb2\xd5\x14\x1f\x79\x35\x5b\x9a\x84\xde\x6a\x07\x94\x80\xd7\ \xed\x99\x88\x73\x9f\xac\xf5\xac\xa2\xe7\xe6\x33\x40\xe3\x1c\x48\ \x1d\x44\xd8\xe6\x53\x4c\x5c\xfa\x49\x14\xdb\x89\x45\x16\xb4\x29\ \x8a\x54\x0e\x82\xe6\x39\x69\x91\x4c\x0f\xac\x4d\x23\x91\x6c\x93\ \x2c\xbd\x86\x32\x66\x6d\x6a\x16\x10\x27\x98\x8c\xcd\x59\xa0\x77\ \x9a\x9f\x35\x8f\x02\x65\x0c\x0b\x01\x98\x62\xf7\x00\x0e\x66\x2d\ \x8d\xf1\x18\x8b\x77\x03\xd6\x05\xb5\x6c\x1f\x3d\x05\xa0\x1c\x8b\ \x5b\x13\x5f\x35\x18\xf7\x33\x6d\xe5\xe3\x32\x25\x05\xef\x1d\x49\ \x05\xc5\xc4\xc5\x1e\x91\xf4\x56\xe0\xd8\x71\xcc\x96\x36\x9a\x59\ \x4a\x9c\x82\x63\x52\x8d\x88\x00\x62\x10\x51\x61\xc6\x63\xe8\xf6\ \x23\x13\x16\x9c\x7a\x9a\x01\x1b\xb6\xe2\xc7\x89\xb6\xb0\x9a\x38\ \x99\x69\x3b\xd0\xea\x38\x82\xb4\xec\x73\x6b\x4a\xef\x61\xe9\x17\ \x52\xd6\xb8\x88\x24\x80\xa3\x11\x0f\x72\x63\x2a\x3d\xb9\x8b\x73\ \x78\xc0\x59\x03\xaf\x1d\x62\xd9\x43\x10\x17\x83\x0e\xa5\xca\xd9\ \x78\xea\x66\x69\x47\xdf\x0e\xbf\xc4\xd0\x3f\x50\x45\x2d\x1a\xaa\ \xfc\xc7\x32\x15\x1b\xdc\x0e\x49\xc9\x3e\x92\xad\x5b\x2b\xd7\xb2\ \xe4\x5a\xc6\x22\x90\xdb\x4e\xa3\x11\x9e\x04\xa2\xa9\x75\x55\x37\ \x39\xb9\xb0\x82\x78\x04\x64\xf5\x99\x50\x7d\xe1\x26\x62\x9f\x29\ \x06\x68\x34\x73\xbb\xf4\x10\xe9\x30\x15\x40\xea\x62\xbd\x4f\x3c\ \x42\x44\xbb\x82\x0f\xac\x90\x5f\xe6\x37\xb4\x34\xa2\xd5\x08\x41\ \x8b\x9e\x4f\x48\xd6\x14\x41\x6f\x29\x66\x27\x17\x8e\xa6\x1a\xc4\ \x00\x32\x2d\x89\x6a\xc5\x34\x91\x17\x46\xe1\x01\x0c\x9c\xb7\x78\ \x9d\x45\x86\x8c\x29\x39\x67\xfe\x23\x34\xc4\x96\x75\xb7\xcc\xb7\ \x81\xab\xb0\xa5\x44\x30\xbf\x3c\x7b\xcc\x10\x20\x54\x55\x43\x90\ \xd9\x36\x8d\x5a\x20\x0e\x2f\x7e\xb1\x55\x86\xc7\x5c\xf2\xb2\xbd\ \x3b\x86\x5d\x80\x82\x40\xb8\xf6\x8d\x51\x05\x6a\x65\x18\xae\xdf\ \x29\x89\x23\x1b\x4f\x4e\x27\x66\xb2\x2d\x45\x06\xdd\x33\x21\x65\ \x55\xa8\x77\x10\x6d\xd2\xd2\x95\x58\x80\x95\x26\xc4\x47\x53\xda\ \xf4\xb6\x91\x72\xb9\x1e\xd0\xaa\xa5\x2d\xd7\x03\x06\x7a\x89\xa6\ \xac\x08\x53\x7f\x78\xe8\x01\x40\xc4\x6d\x10\xfc\x12\x56\xf6\xe2\ \x3d\xe9\xa9\x17\x55\x36\x39\x10\xa9\xff\x00\xa7\x6b\x1e\x6d\x2d\ \x38\x9d\xcd\xe9\x15\x61\x7f\x78\x29\x4a\xf4\xb7\x0c\xd8\xda\x32\ \xab\x2e\xf2\x00\xc4\xdd\x21\x09\x58\xa8\x38\x22\x41\x29\xa8\xc8\ \x76\x5a\xe0\x72\x0c\xf0\x2b\x50\xee\xa6\x40\x3d\x54\x98\xcd\x6d\ \x34\x35\x4b\xa1\xf2\x9f\xd8\xc8\x88\x21\xf0\xa2\x6a\x76\x2a\x97\ \xa8\xf4\xec\x73\x6e\xc6\x05\x65\x5a\xab\xbd\x0d\x9b\xb4\x6d\x17\ \x46\x01\x2a\x8d\xc8\x71\xea\x22\xea\x51\xf0\xaa\x6f\xa5\xe6\x43\ \xdf\x91\x08\x89\x45\x37\xb9\x36\x3d\xa3\x43\x11\x99\x8e\x01\x03\ \x03\xd0\xf6\x98\x6e\x05\x9b\xe8\x44\x7d\x4e\x86\x82\xb2\xdc\x52\ \xaa\x7c\xa7\x83\xda\x7b\x5c\x9e\x15\x5d\x87\xe8\x67\x3d\x2a\x6d\ \x39\xfa\x4e\x9e\xa1\x8e\xa3\x41\x4e\xaf\xe2\x4c\x1f\x69\x9b\x32\ \x9d\xd8\x91\xbc\xc9\x7e\xa2\x01\x00\x1e\x32\x61\x2d\x50\x78\xcd\ \xf1\x78\x37\x0b\x93\xcc\x51\x46\x9e\x73\x34\x82\xab\x88\x7b\xc0\ \x6f\x96\xfe\x90\x82\x86\xe7\x12\xd0\xf1\x6d\xf7\x07\x91\x6b\x18\ \x6c\x08\x22\xfd\x66\x56\xa4\xa1\xce\xd7\x06\x36\xa8\x36\xa6\x0d\ \xae\xa2\xfe\xf0\x26\xfc\x2d\x77\x6b\xa9\x9e\x36\xa3\x37\xbf\xfc\ \xbc\xe5\xfc\x4d\xfc\x4d\x6d\x66\x1f\x98\xda\x77\x3e\x14\xa1\x3c\ \x6a\xa4\x8f\xbb\xa6\x17\x3d\x3a\xcf\x9f\xd4\x5d\xaa\xde\x3c\x7d\ \x57\xc2\x1d\xad\x8c\xdc\x4f\x69\x89\x3a\x9a\x79\xfc\x42\x63\x8b\ \xe6\xfd\x66\xe9\xb1\xa9\x5b\xf4\x37\x9d\x18\x0a\x90\x37\x9e\x6c\ \x24\xe4\x02\xf6\x0b\x2a\xf0\xc0\x4c\x75\x30\x3c\x32\x03\x36\x31\ \x89\x24\xcd\xfe\xa6\x00\xb0\xc4\xf0\x37\x36\xb5\xa1\x14\xc9\x3d\ \x66\x2a\x92\x4f\x61\x10\xf0\x36\x8e\xa6\x48\x39\xc0\x8a\x20\x0e\ \x05\x8c\x35\xb9\xb7\xef\x24\xaa\x95\x43\x71\x6e\x2f\x28\x4a\x97\ \xeb\x99\x2d\x02\x03\x0b\xc2\xa6\x40\x60\x2d\x33\x63\x4b\x43\x5f\ \x30\x86\x56\xf0\x53\x2b\x34\xe0\x58\x4c\x13\x54\x8e\x23\xe8\x9c\ \xb3\xdf\x0a\x24\x61\x8d\xed\x28\x7b\xad\x15\x4e\xa7\xcc\x60\x5e\ \x02\xe6\xf1\xaa\xb7\x36\x27\xd6\x29\x32\xb9\x8e\xa4\x56\xdb\xbb\ \x19\x13\x42\x00\x36\x8e\x4c\xf0\xb2\xb6\xdb\xc2\x07\xca\x4f\x5e\ \x91\x5b\x6e\xd7\x22\x65\x29\x56\x51\xdb\x11\xf4\xcf\x97\x9b\xc8\ \x46\xec\xca\x68\x30\xbe\x4c\x2c\x2a\xd3\xd7\x89\xa6\xc2\x0a\xb0\ \xe2\xf0\x96\xd7\x3d\xa6\x5a\x65\xc5\xba\x40\xb8\x06\x6d\x42\xaa\ \x31\x98\x91\x58\x74\x12\x01\xd4\x53\xb6\x46\x04\x49\xda\x83\x9b\ \xb1\xfd\xa3\x5e\xa8\xc8\x36\x37\xef\x24\xab\x7d\xdc\xe6\x6a\x0a\ \xc7\x2c\xcd\xe9\x19\x49\x76\x2d\xfa\x99\x9a\x74\x0e\x7d\xa1\xb8\ \x24\xb1\x1f\x84\x58\x4d\x54\x8c\xd4\x21\x99\x87\x04\xc7\xd4\x1f\ \x70\x85\x47\x39\x22\x4b\x54\x5e\xa0\x51\xc5\xe3\xdd\xf6\xb5\xbe\ \x82\x41\x2d\x54\x22\xf6\xfd\x7d\x24\xfb\xf6\xb8\xed\xd0\x4e\x93\ \x85\xa8\xbb\x4e\x18\x7e\xf2\x2d\x46\x9f\x63\xee\x69\xa9\x45\x8c\ \xb5\xcd\x8d\xed\x1c\x8b\xb5\x48\xeb\x69\xba\x0a\x62\xbd\xc9\x36\ \x5a\x62\xec\x7d\x21\x6e\xd8\x77\x5b\x27\x8b\xc2\xa6\x85\xf2\x2b\ \x37\x41\x0e\x8d\x66\xa7\x95\xb6\x3d\x20\xa3\x23\x52\x65\x62\x43\ \x13\x81\xd2\x02\x15\x14\xce\xeb\xf3\x69\x15\x09\x5c\x9a\xfe\x23\ \x63\x71\xb1\x23\xb4\x76\xae\x89\x66\xa2\x14\xee\x5b\x1b\xfe\xb2\ \x64\xdb\x73\xb7\x6b\x02\x2f\x2d\x2f\x7d\x10\xaa\xa4\x6f\x41\xb6\ \x66\x98\xe7\xd5\xdc\xc3\x79\xe2\xf6\xbc\xa3\x42\x05\xc1\xbd\xba\ \x13\x0e\x9b\x52\x75\x74\xaa\x40\x37\x06\xe0\x4c\xa7\x4d\x69\x3e\ \x0b\x14\x6c\x5c\x71\x1d\x0a\x43\x21\x52\x09\xb7\x4b\xc4\xd6\xa4\ \x19\x33\x9e\xc6\x61\xa9\x4d\x5b\x76\xc2\x41\xf9\xae\x61\x23\x80\ \xde\x54\xb8\xea\x2f\x32\x52\xf8\x24\x5f\x1b\x84\xc3\x4a\xc4\x15\ \xe2\x74\x94\x23\xe4\xd1\xb7\xad\xe1\x78\x49\x7b\x9a\x63\xdc\x18\ \xfe\x96\x21\xa5\xe5\x5d\xad\xc7\xf1\x0c\x2d\xaf\x73\xeb\x28\xa9\ \x4e\x88\x1c\x11\xed\x06\x9a\x50\x2c\x01\xa8\x57\xd4\x88\x6a\xc7\ \x3a\xaa\x1c\xf3\xcd\xa6\x69\x14\xfd\xa0\x03\x3a\x3a\x9d\x20\x03\ \xcb\x55\x4c\x90\x52\x6a\x55\xd5\x9b\x76\x0f\x36\x9a\x97\x46\x02\ \xb5\x15\x0c\x40\x27\x3d\x27\x3b\x50\x1e\x95\x42\xa6\xfe\x97\x13\ \xb6\xf4\xc3\xb6\xce\x09\xe2\x4f\xa9\xa2\x19\x76\xba\x82\xc2\x3c\ \x6a\xb1\xc9\x0e\xd6\x17\x1c\xe7\x12\xa4\x62\x2c\xdd\x0f\x22\x67\ \x82\x43\x61\x41\x11\xbb\x36\xa0\xb8\xe4\x76\x8d\xac\xc3\x1a\x90\ \x7a\x78\x1e\x6b\x5f\xde\x46\xa0\x5c\xab\x8b\x03\xc1\xed\x28\xa7\ \x54\xa2\xe4\x58\x29\xfd\xa2\xab\x8f\x19\x77\x29\xcf\x22\x50\xd4\ \xf5\x6c\xad\xb5\xad\xb8\x71\x2e\xd0\x31\x6a\x5e\x1b\x7e\x30\x44\ \x89\x57\xc4\xa6\x77\x5c\x3d\x3f\xe2\x57\xa2\x3f\x79\x48\x62\x3c\ \xbc\x13\xd4\x68\xc7\x73\x29\xe8\x63\x2a\xb5\x8d\xbb\xc5\x31\x03\ \x57\x50\x0f\xcc\x67\x9c\x8b\x2d\xcd\xc9\x18\xb4\x50\xd1\xb3\xdf\ \xbc\x68\xf9\xf1\x9c\xc4\x28\xd8\xa3\x70\xb1\x30\xc5\x4f\x0d\x09\ \x1f\x35\xbf\x48\x54\xa0\x05\x0a\x6a\x30\xbe\x6c\x07\x4b\xc7\xf8\ \x85\xc8\xf2\x2f\x16\xe2\x45\xa7\x7d\xd4\xec\x47\x19\x12\xba\x08\ \xc6\x90\x63\xde\x66\x98\xe8\x15\x55\xf8\x55\x56\x16\x06\xab\x58\ \x5f\xf4\xfe\xf3\x85\x5a\x99\x46\x20\x89\xdc\xf8\x99\x14\xa8\x50\ \xd3\x9c\x95\x50\x48\xff\x00\x9f\x59\x00\x60\x7c\xb8\x03\xa1\x87\ \x1a\x6b\x98\xd4\x1c\x2d\xca\x10\x3a\x13\xd6\x2e\x8d\x32\x2a\x3b\ \x12\x06\xd4\x32\xdd\x4a\x30\x24\xb3\x7b\x66\x4f\x45\x2d\xa7\xaa\ \xe7\xad\x97\xfa\xff\x00\x49\xd3\x58\xc7\xab\x28\x0e\xa9\x6c\x01\ \x68\x35\xd5\x45\x90\x74\xc9\xf7\x95\xb2\x87\x6d\xd6\xb9\x1d\x62\ \x58\x77\x07\x37\x37\x94\xa5\x1b\xd3\x00\x5e\xdc\xc0\x64\xed\x89\ \x55\x54\x02\xd8\xc7\x78\x01\x05\xb2\x39\x3c\x4d\x0c\x4f\xe1\xde\ \xdd\xa0\x65\x49\x95\xb5\x88\xb5\x80\x8b\x65\xbf\x00\x48\x61\x74\ \x49\xdd\xd6\x3d\x01\xb8\x69\xea\x48\x37\x74\x85\x4a\xf7\xb7\xe8\ \x64\x56\x53\x3e\x51\x88\xc6\x50\x73\x25\x57\xe9\x7c\xc7\x50\x0c\ \xc7\x1c\x0e\x4f\x49\x8b\x09\xd4\x55\x77\x6f\x3f\x2a\xe4\xcc\x66\ \x2e\xe5\x8f\x53\x31\xdc\x30\x08\x83\xc8\x3f\x73\x0a\x9a\xdc\xe4\ \x8f\xd6\x64\xb5\x49\xbd\xa5\x14\x06\x7d\x04\x56\xdd\xbd\x89\x8d\ \x63\xb1\x6d\x7c\x99\x13\x71\x71\xd4\x09\xe2\xc1\x41\x26\x29\x0b\ \x0c\xf2\x0c\x26\xcd\x85\xbe\xb0\x4d\x0c\x08\x36\x19\xed\x19\x4f\ \x76\x39\x81\x45\x0e\x4d\xa3\x40\x3b\x6d\x0a\x61\xb4\xde\xc6\xd2\ \x80\xd8\xc1\x90\x8f\x2b\x47\x23\x5c\x5f\x2a\x04\xcd\x85\xad\x7d\ \xc6\xdf\x58\x97\x20\xfc\x98\xb7\x30\xea\x54\x26\xea\x06\x22\x2a\ \x60\x58\x5c\x7b\x46\x02\xab\xbd\x98\x08\x58\xa8\xb7\x07\xcc\x20\ \xd6\x5d\xf6\x37\xb3\x5a\x0d\x22\x43\x8e\xe0\xcd\x05\x5a\x62\x12\ \x99\x27\x98\x35\x8e\xda\x03\xb9\x30\xb5\x3b\x52\x92\xb2\xf0\x7a\ \x49\xf5\xd5\x10\x05\x5d\xc4\x62\xf6\x84\xec\x82\x90\x53\x5e\xf7\ \xdc\x62\xea\xb7\x9a\xfc\x92\x7f\x48\x34\xeb\x28\x0f\x61\x6f\x58\ \x96\xa9\x99\xac\x65\x47\x89\x75\xc1\xf3\x09\xea\x8f\xe2\x27\x9b\ \xeb\x21\x15\xc2\xb5\xc5\xe3\xe8\xb8\x76\x05\x45\xef\x8b\x47\x16\ \xae\xd2\xaf\x81\xa0\x76\xe7\xc4\x60\x3e\x91\x15\x07\x98\xe6\xe3\ \xa4\xa3\x55\x55\x69\x6d\x41\x94\x45\xb1\xf7\xeb\x14\x1f\x4b\x56\ \x9e\x2a\x05\x61\xd0\xcc\x94\xce\xd6\xb5\xb9\xbc\x63\xfc\xa0\xfa\ \xe6\x0d\x65\x5d\xff\x00\x30\x2b\xe9\x1b\xa7\x56\x61\x8b\xb2\x8e\ \x45\xb8\x88\x0a\x9e\xf8\x32\xfa\x7b\xa9\xd0\x14\x70\xc4\xae\xe3\ \x7e\xfd\x20\x53\xd1\xa1\xfb\xf6\x0c\x29\xa8\xbf\xbf\xa4\x9c\xbb\ \xf8\xc6\xaa\xb1\x56\xbe\x31\x0f\x4f\x87\xd3\x54\x76\xba\x92\xac\ \x56\xdb\x4e\x66\xa3\xb5\x1e\x50\xb2\x13\x90\x78\x99\xa8\x15\x05\ \x64\xa8\x88\x2c\x40\x37\x1d\x0f\x69\x55\x25\x6a\x83\x75\xec\x4f\ \xcc\xb6\xc1\x81\x12\x84\x75\xbd\x34\x43\x7e\x41\x13\x45\x2a\x96\ \x05\x4e\xc6\x1d\x08\xe6\x15\x3a\x4b\x45\xbc\xd7\x5b\xf5\xe6\x53\ \x75\xe4\x58\x89\x9d\x24\xd3\xa7\x52\xd9\xbd\xbd\xe6\x9a\x60\x1b\ \x96\x23\xeb\x1a\x45\xc7\x97\x77\xf4\x8b\x20\x29\xbb\x6d\xb7\xa9\ \x81\x60\x03\x90\xe0\xfa\x77\x9a\x28\xab\xe4\x28\xbf\x62\x26\xaf\ \x86\xdc\xd4\xb7\xa2\x88\x64\xd3\xe0\xef\x23\xbc\x93\xcf\xa7\x0d\ \x44\x86\x4e\x27\x39\xe9\xbd\x26\xba\xef\x51\xd8\xf1\x3a\xd4\x8e\ \xc5\x21\x03\xd4\x5f\xfc\xb3\xfa\x44\xbd\x64\x6b\x91\x65\x6e\xc4\ \x71\x29\x6a\xb1\x3d\x20\x1b\x6b\x32\xe7\x9b\x88\x55\x28\x53\xaa\ \xbb\x90\x92\x61\x91\xbd\x0b\x6c\x17\x5c\xdd\x4c\xf2\xdb\x91\x90\ \x73\x24\xe4\xea\x69\x32\x30\x6b\x9e\x6d\x78\x55\x55\x7e\xcf\x49\ \xad\x62\x6f\x73\x3a\x1a\xb4\x15\x54\xa1\xf9\xb9\x53\x39\xf5\xc5\ \x92\x92\x31\xb7\x3c\xcd\xcb\xac\xd8\x90\xa7\xde\xba\xde\xe0\x83\ \x68\xa4\x2a\x0e\xcb\x67\xbc\x7a\x63\x52\x86\xff\x00\x8a\xd2\x6a\ \xa7\x6b\x92\xc3\x83\x37\x19\x32\xde\x70\xea\x72\x30\x47\x78\x62\ \x9e\xcd\x75\x35\x19\x5b\x8b\x45\x80\x19\xb7\xa9\xbe\xde\x44\x7e\ \x8e\xf5\x6a\xa1\xfc\xad\x7f\xa4\x14\x72\xb5\x04\x7d\xb2\xa7\x6d\ \xe7\xf9\x9e\x04\x25\x4f\x35\xc8\x1d\xa7\xaa\x12\xd5\x9c\x8e\x4b\ \x18\x3e\x23\xed\x20\x73\xed\x3a\x32\x6d\x7d\x46\xfb\x95\xa7\xb7\ \xb1\x26\x62\x32\x04\x0a\xc4\xb1\x39\x32\x6c\xb3\x58\x9c\x9e\xf1\ \xa8\x03\x31\x20\xe3\xfa\x4b\x16\xa8\xdf\xb0\x28\x50\x01\x27\xb4\ \xee\x7c\x1e\x89\x70\xac\xc3\x0b\xe7\x37\xff\x00\x9e\xd3\xe7\xe8\ \x5e\xa5\x65\x1c\xdc\xcf\xa8\x5b\x69\xfe\x0f\x51\xef\xb4\xd5\xf2\ \xa9\xf4\xff\x00\x97\x9c\xf9\xf4\xd7\x17\x2b\x5b\xa8\xf1\xf5\xb5\ \x1a\xf8\x38\x1e\xd1\x25\x8d\xa0\xaa\x90\xe0\x82\x1b\x33\xc6\xf7\ \x20\xe2\x58\x87\x6f\x11\x08\xe4\x88\xba\xb4\xc2\x69\x55\x40\xf9\ \x98\xb7\xf4\xfe\xf0\x91\x88\x71\xb3\x93\x89\x46\xa5\x01\xaf\xb3\ \xf2\x00\x0f\xd3\x98\xea\x4f\x54\x5a\xc0\x7b\x98\x92\x6c\x6c\x72\ \x23\x0d\xcb\x12\x0e\x6f\x9e\xf0\x19\x6e\xdd\xad\x18\x18\xc8\x19\ \x6f\x14\x52\xcf\x62\x2c\x3a\x5c\xc6\x93\xdb\xa4\xf2\xf0\x7f\x68\ \xea\x25\x85\xf8\x16\x8a\x23\xb4\xac\x85\x07\x8b\x7b\x45\x9a\x40\ \x92\x41\xbc\x65\x00\xa5\x6e\x3a\xcd\x01\xb7\x63\xa4\x6a\x2d\x88\ \x8d\xa5\xa7\x00\x0a\xb5\xc9\x54\x3c\x0e\xad\xed\x0d\x25\xd3\xa0\ \x5c\x12\x08\x55\x1f\x31\x3c\x08\xcd\xe0\xaf\x83\x4f\x09\xfb\x93\ \x3d\x52\xa6\xf5\xd8\xaa\x15\x07\x0a\x22\xe9\x8c\xf7\xf5\x82\x1a\ \xd9\x30\x79\x8e\x52\xa8\x2f\xd6\x24\xb2\xdf\x1c\xf7\x8c\x41\xb9\ \x4b\x1f\x94\x75\x81\x3a\x83\x59\xbc\x42\x30\x38\xbc\xd0\xca\x5a\ \xec\x3a\xf7\x92\x55\xd4\x1e\x38\x1c\x09\xa1\xfc\xb7\xbc\xb1\x6b\ \xa0\x8e\x99\xb0\xb0\x13\xcd\x52\xff\x00\x2c\x92\x9b\x60\xfb\x42\ \x46\x2c\x0a\xa8\x30\xc3\xaa\xe9\x39\x00\xc2\x04\x9b\x01\x13\x48\ \xaa\x8f\x33\x7d\x04\x33\x53\x70\xb2\x63\xfa\xc1\x0d\x88\x42\x77\ \x1c\xf6\x98\xd5\x6e\x39\xbd\xb8\x89\x2c\x0d\x81\x9e\x51\x71\x7b\ \x89\x62\x35\x59\x8e\x60\x54\x6e\x93\x69\xa9\xf9\x8c\xf3\x90\x99\ \xe4\xc9\x13\x53\x75\xb2\x6c\x22\xce\xa4\x2e\x08\xbf\xaf\x59\xea\ \xed\x7c\x99\x0d\x46\x06\xe4\x1c\x89\xa9\x34\x5a\xe9\xf8\x8c\xcf\ \x4f\x3b\x91\xb0\x6d\xd2\x4d\xf1\x4f\x2e\xa5\xb3\x75\xb6\x08\x87\ \xa2\xdc\xcc\xac\xbc\xac\x96\xad\x70\xd5\x1f\xc4\x5c\x13\xf4\x94\ \x9d\xaa\xf2\x3d\xe9\x1e\xf2\x57\xa9\x93\x98\xf6\x52\xb4\x89\x5f\ \x32\x93\x83\xda\x4a\xea\x77\x1b\xde\x6e\x33\x40\x58\x99\xd0\xf8\ \x53\x14\x0d\x54\x8c\x2e\x14\x77\x32\x5d\x36\x92\xad\x62\x00\xf2\ \xaf\x56\x3d\x23\xb5\x7a\x8a\x48\xa3\x4f\xa6\x17\x55\xfc\x5d\xcf\ \x79\x5e\xfa\x53\xfa\xa9\xaa\x58\x90\xc7\x72\x9e\x62\x35\x14\xd9\ \x18\x14\x03\x69\xe0\x89\x35\x0a\xac\xa7\x39\x07\x99\x6a\x30\x2b\ \xe5\x20\xa1\xe5\x48\x87\x87\xd2\xd1\x80\x00\x1b\xfb\x89\x76\x96\ \xb3\x51\x24\xa1\x06\x4a\x74\xac\x7e\xf2\x8f\x99\x47\x40\x72\x26\ \x0d\xe8\x6f\x63\x0b\x95\x3a\x0f\x5d\xeb\x67\x7e\x47\x48\x48\x03\ \xb0\xf1\x10\x7a\x93\x89\x02\x30\x3e\x6e\xc6\x52\xda\x9a\x85\x2d\ \xc8\x99\xc6\xb5\x6a\xd6\xa4\x6a\x11\xe1\xbb\x29\x39\xb7\x48\xf5\ \xaa\x89\x73\xc2\x91\xee\x67\x25\x59\x1a\xc4\xab\x21\xee\x25\x34\ \x6a\x56\x51\xe4\x1b\xd4\xf2\x39\x99\xb0\xca\xbd\x75\x0a\xbf\x28\ \xde\xbf\xee\xe6\x10\xa8\x8d\x72\xa7\x69\xf4\x91\xa6\xa1\xc1\xb8\ \x44\x53\xd8\xe2\x36\x96\xb0\x93\x62\x8a\x3e\x98\x86\x1d\x13\x6f\ \x0d\x8a\x84\xfb\xc3\x15\x48\x16\x67\x5b\xcc\x6d\x42\x5b\x21\x01\ \x3d\xa0\x87\xa6\x7f\x0d\xef\xd9\x6f\x04\x35\xad\x4f\x71\xba\x67\ \xb8\x9e\x7a\xd7\xf9\x18\x0f\xa4\x2a\x74\x95\xf2\x11\xc7\xd2\x17\ \xd8\x95\x8e\x2a\xaa\xfa\x34\xba\x5d\x93\xba\xa0\x20\xab\x91\xd8\ \x81\x31\xab\x33\x1b\x55\xf3\xdf\xf1\x70\x61\x7d\x9e\xaa\x92\x13\ \xf6\x31\x55\x43\x2b\x59\xd6\xdd\x7b\x45\x1b\x4a\xb0\xa4\xe2\xcc\ \xc4\x1e\xf3\x5a\xb3\x07\x22\xd6\x2a\x48\x32\x4a\xac\x97\x00\xb6\ \x6d\xd6\x1d\x56\xfb\xca\x6d\x7c\x54\x5b\x5f\xd4\x4b\x16\x9d\xbf\ \xc5\xa5\xb8\xf0\x39\xf7\x93\xea\xe9\xf9\x56\xf9\x2b\xd7\xbc\x66\ \x80\x8b\xd6\xa4\xe4\x0b\x8e\xbd\x0c\x0d\x43\xb0\x2a\xa7\x1e\xf2\ \x9e\x84\x06\xeb\x59\x0e\x0f\x9a\x22\xb0\x26\xa3\x82\x06\x09\x94\ \x3d\x97\x50\xa4\x7c\xa5\x86\x3b\x48\xf5\xc5\xa9\xea\xea\x0b\x5f\ \xcc\x7f\x99\xd2\x33\x5a\x18\x25\x30\x09\xc9\xc1\x97\xfc\x1c\x6c\ \xaa\x4b\x7c\x8a\x84\xce\x2b\x31\x37\xe7\x99\xd7\xd1\x1d\xbf\x0e\ \xd4\x3d\xf2\x14\x28\xfa\xcb\x94\xe9\x44\xba\xed\x3a\xd2\xd4\x91\ \x6f\x23\x0d\xca\xc3\xa8\x92\x35\x3b\x8b\xa3\x63\xd7\x13\xa8\x96\ \xd5\x68\x8d\x32\x7e\xf6\x95\xca\xdb\xa8\xed\x39\x60\x33\x12\x2f\ \xc7\x37\x9a\xe3\x45\x2d\x90\xd3\x4b\xb7\xcc\x4e\x27\x94\x85\x4b\ \x75\x33\xcc\xec\x5c\x76\x13\x0b\x2b\x3f\x63\x34\x1d\x0f\x83\x51\ \xf1\x2b\x83\x63\xc8\x00\x8e\xe6\x74\xfe\x33\x58\x16\x5d\x3a\x7c\ \x94\xc5\x8f\xbc\xdf\x82\xd1\x1a\x5d\x03\x6a\x9f\x2a\xab\x71\xee\ \x7f\xf5\xfc\xce\x63\x56\xf1\x3c\x4a\x84\xf2\x67\x2f\x6b\x5e\x44\ \xfb\xc8\xa9\xce\x04\xa4\x54\xf3\x10\xc2\xf2\x2a\x8e\x08\xbe\x3d\ \x63\x0b\xfd\xe5\xbb\xda\x6e\xc6\x57\xe8\x95\x7e\xd0\x2a\x0e\x29\ \x8d\xd6\x9e\x62\x76\xb3\x9e\x58\xda\x26\x9b\x05\xa5\x8b\xdd\x8e\ \x23\xc7\x17\x6c\x85\x17\x3e\xf3\x0d\x25\xc5\xf9\xcc\x05\x62\x4e\ \x2f\x78\xf5\x55\x07\xef\x0e\x7a\x81\x06\xe3\x84\x5b\x09\xa0\x02\ \x87\x96\x36\x1f\xbc\x2f\x40\x00\x1d\xcc\xf1\xc9\xb7\x22\x78\x82\ \xc6\xd7\xf6\x16\x92\x0d\xb3\x70\x6f\x36\x85\x2a\x95\x1f\x6a\x29\ \x31\xcb\xa7\x44\xcd\x76\x2a\x79\xd8\x39\x3f\xda\x61\xac\xcc\x36\ \x28\x08\x9f\x95\x7f\xaf\x78\x6a\x35\x05\x1d\x39\x26\xe2\xb5\x4e\ \x07\xe5\x1f\xde\x2e\xa6\xea\xb7\x76\x37\x6e\xe6\x02\x79\x9c\x28\ \x19\x32\xa4\xa2\xe1\x6e\x14\xfb\x9c\x40\xa4\x34\xf6\x8b\xb6\x07\ \xf3\x16\xf7\x61\x60\x2c\x04\xa9\xd5\x6f\x7a\x95\x05\xfb\x28\xbc\ \x06\x6a\x6b\x94\xa5\xbb\xff\x00\x23\xfd\xa3\x2a\x46\xcd\xd1\x6f\ \x79\x7d\x35\xf1\xb4\xea\xb4\xfe\x65\xe4\x19\x2d\x5a\x95\x00\xba\ \x00\xaa\x7b\x28\xc4\x43\x55\x72\x4e\xe6\x27\x1d\x4c\xd6\x68\xf1\ \x53\xd1\x71\xf3\x2a\x8b\x75\x26\x08\x14\xc7\x35\x8f\xb0\x52\x64\ \xab\x54\xa9\xc3\x18\x6b\xa9\xab\xf9\xaf\xf4\x96\x54\xb1\x1a\x98\ \xe3\x36\xfc\xd0\xd4\x96\x26\xec\x00\xb7\x02\x42\x9a\x87\x37\x27\ \x6f\xe9\x1b\x4b\x50\xc5\x80\xb0\xfd\x21\xf9\x5a\xb8\x28\xdb\x86\ \x17\xb4\x24\xa4\xd6\xc9\xb4\x90\xd7\x62\x08\x0d\xfa\x45\x1a\x8c\ \x79\x63\xfa\xc3\x0e\xba\x4d\x4d\x45\xb7\x55\x5b\x8e\xd0\x5a\xa2\ \xa1\xb0\x52\x4f\x73\x21\x42\xc7\xac\x30\xc6\xf6\x26\x18\xb5\x47\ \x8c\xcc\x73\x7f\x69\xa5\xc4\x95\x9d\x94\xcd\x15\xfa\x30\x8e\x2d\ \x6d\x46\xbf\x69\x0d\x43\xe6\x39\xc1\x95\xb6\xd7\xe1\x5a\xf1\x15\ \x29\x1e\x42\xb0\xed\x71\x1e\x22\xad\xf8\x21\x2c\xd5\xc1\x3c\x21\ \x33\x91\x55\xf2\xd7\xee\x67\x5b\xe0\xd4\xdd\x17\x52\xe4\x5b\xc8\ \x40\xfd\xe7\x2a\xbe\x9e\xb7\x88\x6c\xb8\xbc\x67\xb5\x5f\x1b\xa6\ \xab\x52\x9a\x9d\xac\x6c\x4c\x67\xda\xdf\x6d\xca\x2d\xfb\xda\x4f\ \xb2\xa2\x26\x54\x8c\xc1\x67\xf2\x88\xe3\x3a\x2a\xfa\xca\xcc\x0a\ \x13\x65\xec\x22\x03\x91\xd2\x6d\x41\x73\x78\x2a\x0d\xed\x35\x22\ \x35\x19\x8f\x02\x3a\x95\x57\x43\x78\x5a\x6a\x6a\x50\x86\x36\x63\ \xc4\xd7\x42\xa6\xd0\x4a\xe8\x55\x2c\x03\x53\x3b\x18\x76\x94\xf8\ \xa6\xa2\x8b\x85\xdd\xfc\xce\x62\x2b\xa9\xb8\x06\x54\x95\x6e\xd8\ \xc3\x09\x8b\x1a\x94\xd6\x28\x4d\x88\x2a\x7d\x44\xc0\xad\xc8\x0a\ \xde\xc6\x3e\x9d\x51\x52\xc2\xb2\x0b\x8e\xa2\x6b\x04\x19\x54\x2c\ \x3b\x83\x33\xa4\xb4\x2c\x17\xe5\x23\xde\x12\xd6\xcf\x96\xe4\xf4\ \xdb\x89\x9e\x3b\xf0\x10\x7f\xf6\xcc\xd1\x59\xcf\x40\x3f\xf1\xc4\ \x91\xe8\x95\xea\x7f\xa9\x48\x5b\xbb\x1b\x18\xf5\xa3\x48\x0d\xad\ \x5c\x1f\x41\x99\x3a\xa8\x2a\x19\x9c\x86\x3d\xe6\x58\xdb\xca\xc0\ \xfa\x93\x68\x15\x37\xd2\xd3\xfc\x0c\x7f\xf2\x38\x8b\x7d\x5e\xd2\ \x05\x1d\x8a\x3d\x16\x28\xf1\xe6\xbb\x7b\x41\x29\x7c\xa2\x91\x89\ \x62\x3c\x6a\x6b\xb1\xcd\x52\x07\x5c\xda\x53\x46\xa2\xb9\x02\xec\ \xcd\xe8\x24\xfa\x3f\x87\x55\xaa\x0d\x5a\xc5\xa9\xd2\x1c\x92\x32\ \x7d\xa5\x3e\x2b\x53\xfb\xbd\x35\x16\x45\xb6\x58\x83\xb8\xc2\xe7\ \xc3\x15\x29\x5a\x59\xaa\xe0\x0e\xd7\xcf\xe9\x3d\xa9\xd5\xd1\xa8\ \xa0\x6c\xdc\x07\x1b\xa7\x2a\xae\xf5\xb9\x28\xce\xd0\x55\xaa\xbd\ \x3b\x10\x41\xc8\xf6\xed\x0f\xca\xd5\xb5\xd6\x96\xdd\xc2\x82\x30\ \x02\xe4\x13\x98\x03\xc1\xd5\x50\x7a\x68\x0d\x27\xa6\x77\x0b\x99\ \x1f\x9d\xac\x08\x27\xa4\xe9\x69\x74\x94\xe9\x3a\xab\xbb\x1a\x8e\ \xb9\x50\x3a\x19\x5e\x97\xa9\x99\xcd\x37\x06\xa2\xed\x62\x2d\x7f\ \x5e\xd0\xb5\x83\xc4\x40\xd6\xb1\x00\xff\x00\x10\xfe\x3a\x87\xc2\ \xa4\x79\x75\xe9\xdf\x88\xa7\xa9\xe2\xfc\x23\x72\x9b\x54\xa4\xc0\ \x93\xd7\x22\x53\xfa\x9c\xff\x00\x9e\xa0\x56\xbf\x22\x23\x52\xbb\ \xeb\x55\x46\xf9\x95\xcd\xbd\xaf\x1a\x1b\x75\x44\xac\xb6\x19\x1b\ \x87\x6b\xc2\xd5\x59\xab\xd4\x70\x6c\xea\xc4\x7e\xf3\xa4\xe9\x97\ \x36\xa2\x58\x86\x53\x3a\x65\xc5\x2f\x84\xa9\x6e\x2a\x56\xfd\x40\ \x13\x9e\xa3\x3b\x90\xe4\x9b\xdb\xbc\xaf\xe3\x15\x15\x34\x7a\x4a\ \x56\xce\xd2\xc6\xde\xa6\x37\xbc\x82\x15\x4d\x9e\x85\x7b\xab\x1e\ \x2e\xa4\x4a\x75\x94\x13\x55\x40\xea\x34\xb6\xdf\xff\x00\x75\x3a\ \x89\x16\x96\xb0\x74\xf0\x5b\xca\x47\x0d\xfd\x22\xe9\x6a\x2a\xe8\ \xf5\x3b\xd6\xe0\x83\x6c\xf5\x96\x2d\x4f\xb8\xa1\x21\xa3\x74\x74\ \x1b\x51\xa8\xa7\x45\x2f\x76\x39\xf4\x13\xa1\xaa\xd3\xd1\xf8\x95\ \x1f\xb4\xe9\x00\x15\x97\xfd\x4a\x60\xfe\xf1\xbf\xe1\x4d\x39\x5a\ \xd5\x75\x55\x05\x85\x3f\x28\xbf\x78\xde\x5d\x68\x93\xb5\x7f\x1d\ \xd4\x7d\x8f\x46\x9a\x34\xc1\xb5\xd8\x4e\x10\xaa\x1a\x83\x11\x83\ \x78\x5f\x19\xd6\x0d\x4e\xa6\xa5\x42\x79\x26\xde\xdd\x27\x3c\x54\ \x02\x91\x17\x39\x32\xe3\xc7\x22\xb7\xb3\x4b\xdf\x04\x73\x19\xb8\ \x9a\x9f\x41\x23\x0e\x4d\xaf\x2c\xa6\x6f\x51\x1b\xa5\xae\x7e\x93\ \x41\x72\x11\xe2\x2d\x30\x7e\x5c\x18\xfa\xcd\x73\xb6\xfc\x64\xc8\ \x74\x17\x7a\xfb\x89\x3d\xcf\xac\x70\x25\x9e\xd9\x26\xfc\x4c\x58\ \xd0\xa9\x00\x4e\x6d\x09\xc8\x01\x61\x52\xa1\x55\xc7\x95\x08\x1f\ \x99\xb0\x3f\x79\xd5\xa3\xf0\xc5\xd3\xd0\x5d\x4e\xa6\xf5\x8b\x0b\ \xa8\xa6\xa4\xa8\xf7\x99\xb6\x43\x23\x9f\xa6\xd3\x9a\x8b\xe2\x31\ \x09\x4f\xf3\xb7\xf4\xef\x1e\x11\x95\x7f\xcb\x53\x2a\x3a\xd5\x7c\ \x13\xed\xda\x36\xa6\xad\x51\xcb\x2e\x94\xb9\x02\xc3\x79\x22\xdf\ \xa7\x12\x2a\xba\xdd\x43\x35\xc5\x93\xdb\xfb\x98\x77\x4f\x50\xd5\ \xd2\xa3\x12\xd5\x2b\x35\xba\xec\x42\x7f\x7c\x09\xe2\xba\x6a\x43\ \xe4\x07\xd5\xea\x0c\xfd\x04\x8d\xeb\x55\xa9\x7f\x15\xd9\xcf\xab\ \x45\xb3\xf0\xa0\x5a\xf3\x59\x46\xaf\x1a\xba\x0a\x7c\xae\x46\x38\ \x44\xb7\xef\x71\x0f\x4b\x52\x8d\x77\x1b\x68\x1f\x52\x58\xce\x36\ \x4d\x4b\xdc\x03\x3b\x9f\xe1\xf5\x53\xba\xf7\x25\x73\x2e\x53\x22\ \x97\x68\x75\x55\xa9\x50\xae\x69\x9d\x32\x5c\x77\x63\xfd\xe2\x8e\ \xaa\x91\xe1\x76\x9f\x40\x2d\x24\xd6\xd6\x6a\x9a\x97\x66\xc6\x6d\ \x26\x2d\x66\xc5\xcf\xbc\xa7\x15\x6a\xd6\x72\xcc\x45\x3a\xa1\xbd\ \x2f\x63\x22\xab\x5e\xba\x12\x0b\xba\xfb\xc0\x24\xde\xf1\x86\xb0\ \x6a\x5b\x6a\x0b\xa8\xfd\x44\xd6\x60\xd2\x8e\xa5\xce\x2e\x8d\xee\ \xa2\x18\xaa\x30\x5a\x92\x5f\xd3\x12\x6a\xb4\xb6\x8d\xc8\x77\x27\ \x71\xd3\xde\x78\x31\x16\xce\x26\xb1\x9d\x5a\xaf\xa5\x14\xc9\xa9\ \x41\xcd\xcf\x2a\xf6\xfe\x44\x75\x27\xf8\x73\x11\x6a\x5a\x90\x7a\ \x79\xc7\xf6\x91\x54\x61\xe1\x53\x0d\xd7\x31\x9a\x62\xa2\xaa\xe7\ \x83\x33\x87\x55\xb9\xd1\x00\x71\x5f\xd6\xec\x20\xa3\x68\x2f\x73\ \xe3\x8f\xa0\x8b\xd7\x28\x0e\xf6\xe2\xf7\x12\x75\x04\x0e\x3e\xb2\ \x90\xba\x74\xdf\xe1\xf7\xc2\xd7\x3e\xb8\x86\x5b\x41\xd1\x2b\x1f\ \x72\x27\x3d\x2c\x05\x81\xcc\x3f\xa4\x2c\x5a\xac\xd5\xd2\x81\x8a\ \x2c\x47\xfb\x9a\x63\x6a\x15\x45\xd2\x85\x30\x3b\xda\xf2\x75\x5b\ \xf2\x61\x5f\x6e\x2f\x88\x61\x1b\x6b\x2a\x91\x60\x42\xfb\x09\x15\ \x7d\x45\x52\x6c\x6a\x35\x89\xe8\x63\x2a\x2d\xc6\xe4\xc5\xba\x49\ \x18\xdd\xc7\xf1\x35\x24\x67\x5d\x4f\x87\x16\xff\x00\xa5\x6a\xea\ \xdf\x22\xd3\x93\xa9\x2d\xe2\x61\x8e\x47\x79\xd9\xd2\x8d\x9f\xe1\ \xdd\x5b\x9c\x02\xcb\x38\x95\x0e\xe3\x60\x78\xb4\xb8\xfb\x55\xf1\ \xa9\x56\xa2\xd3\xb0\x73\xfa\xcd\xf1\x6a\x32\x8b\x00\x4d\xfb\x45\ \xe3\x81\xc1\x94\x69\x6b\xad\x1a\x04\x1a\x5d\x72\x41\xcc\xd0\x8c\ \x60\x42\xf9\x94\x5f\xb4\xcd\xab\xc9\x4b\x46\x0d\x55\x16\x27\x7a\ \x30\x1d\x2d\x98\x26\xb5\x0c\xdb\x07\xa5\xc4\x88\xd4\xa6\x3c\xa6\ \x69\xda\xd9\x07\x3d\xa2\x91\x94\x8f\x98\x42\x60\x6c\x4f\x36\x92\ \x53\x4a\xa9\x02\xcc\x41\xb7\x78\xc5\x29\x7b\xb2\x15\xf5\x12\x25\ \xb9\x5b\xde\x3a\x9d\x7f\x0c\x58\x10\xdf\xc4\xcd\x85\xd0\x53\x49\ \x80\x0a\xf9\xfd\xe6\x6d\x74\x6b\xa8\xbd\xba\x88\x9a\x5a\x8d\x2b\ \x8f\xbc\xa4\x41\xf4\x32\xaa\x35\xb4\x0a\x2f\x7a\xc4\xfa\x01\x31\ \x48\x54\xbb\xb0\x18\x37\x8e\xa1\x40\xb5\x4f\x94\xd8\x1f\xd6\x50\ \x9f\x11\xd1\xd3\x1e\x5d\x29\xa9\xdb\x79\xb4\x65\x6f\x89\xd4\xa6\ \x89\xe0\xd3\x4a\x45\x85\xfc\xab\x33\xb4\xf4\x14\xf8\x7e\xaa\xad\ \xdb\x65\x81\x38\x26\x17\xfd\x3a\x95\x3b\xfd\xa7\x57\x4d\x48\xe9\ \xba\xf1\x26\xbe\xa6\xb0\x3e\x25\x57\xfa\x98\xb6\xa4\x0b\x65\x8b\ \x13\xda\x5d\x9e\x97\x53\x1f\x0c\xa6\x54\x29\x7a\x87\xa9\x02\xd3\ \xa0\x1a\x85\x1a\x22\xa1\xd3\x85\x27\xe5\x42\x6e\x64\x3a\x6d\x32\ \x69\x69\x8a\xf5\x57\x75\x43\xf2\x21\xe9\xea\x67\xb7\x3d\x56\x2f\ \x51\xae\x7d\xe6\x2f\x6d\x78\xa5\xbe\x22\xf6\xb1\xa3\x4c\x0e\x33\ \xd2\x78\x6b\x2a\x35\xfc\x31\x40\x90\x2f\x91\x23\xaa\x97\x22\xc4\ \x5a\x4d\x54\x3a\xfc\xbf\xa8\x8c\xe3\x06\xd7\x57\xc7\xaa\xc3\x73\ \xd0\xa6\xe3\xa1\xbd\xa2\xbe\xd1\x41\x5f\x6d\x5d\x32\xaf\x5b\x86\ \x99\xa4\xd4\x53\xad\xa5\x09\x50\x6d\xa8\x0d\xaf\xde\x0e\xa6\x85\ \x65\x37\xa6\xc1\xc0\xe8\x44\x33\xe1\x38\xb6\x93\x07\xec\xe1\x87\ \x70\x3f\x98\x9d\x5f\xc4\xf6\xb3\xa5\x1a\x1b\x5c\x03\xe6\x23\xb4\ \x5d\xd9\x53\xc4\x55\xb1\x18\x3d\x27\x2f\xe2\xda\xe3\x56\xc6\x8f\ \x94\x5a\xcf\xeb\x35\xc7\x8e\xd1\x6e\x28\xd5\x6a\x4b\x04\xd4\x31\ \xde\xb5\x06\xc6\xff\x00\x6b\x0e\x61\x7c\x34\x9a\xf5\x2b\x50\x65\ \xb7\x8b\x48\x80\x07\x71\xc4\x87\xe1\x60\xea\xb4\xda\x8d\x29\xb0\ \xc8\x64\x3f\xee\xe9\x1b\xf0\xca\xec\xb5\x69\x54\xda\x43\xd3\xa8\ \x15\x87\x7b\xff\x00\xf9\x35\x66\x33\xa8\x1e\xa1\xa6\xca\x43\x64\ \x72\x3b\xe6\x51\xae\xf2\x6b\x1d\xc1\x04\x13\x73\x11\xf1\xe4\xf0\ \xb5\xf5\xc2\x8c\x2d\x67\x03\xf5\x85\xaa\xac\x1d\x96\xaa\xe6\xea\ \xbb\x87\xb8\xff\x00\xf6\x6d\x92\xdd\x00\x75\xa8\x87\xc8\x7b\x74\ \x83\xfe\x24\x62\x35\x94\xd2\xf6\xd9\x45\x57\xf6\x9e\xa2\xfb\x5c\ \x5a\xcd\x4d\xba\x5e\x1f\xf8\x9a\x91\x3a\xe7\x70\x40\x00\x28\xfd\ \x84\x67\xab\xe3\x97\x4a\xa1\x05\xaf\xcc\x72\xd6\x4a\xc3\x6d\x63\ \x66\xfc\x2d\xfd\xe4\x82\xeb\xba\x03\x9b\x01\xeb\xde\x6f\x19\x54\ \x95\x75\x3a\x2d\x48\xa8\x8c\x55\x87\x04\x70\x44\xfa\xe6\x2e\xff\ \x00\x06\x2c\x8b\x4e\x9d\x7a\xc9\x91\xc0\x2c\xc0\x5f\xeb\x69\xf2\ \x1a\x4a\xc0\x94\xa3\x58\x6f\xa6\x48\xe7\xa4\xfa\x0f\xf1\x43\x54\ \x3a\x7d\x28\xa2\x08\x0a\xbe\x21\x0b\xca\xdf\x8c\x7b\x5a\x73\xe7\ \x36\xc8\xd7\x1f\x2b\xe7\x3e\x20\xad\x49\xcd\x3a\x8a\x55\x86\x2c\ \x62\x54\xfd\xc3\x5f\x39\xbc\xbb\x57\xf1\x11\x58\x8a\x7a\xda\x42\ \xa0\x18\x0c\x30\xc2\x2c\x69\x69\x54\x53\xf6\x5a\xe1\x83\x0f\x95\ \xb0\x66\xf7\xfa\xca\x44\x24\xcb\xe8\x1d\xb4\x4b\x74\xdb\x63\x17\ \x4f\xe1\xfa\xbc\x8f\x0b\xeb\x78\xd1\x4a\xad\x2d\x35\x55\xa8\xb9\ \x04\x70\x65\xa8\xc4\x63\x4a\x8a\x95\x36\x2c\xd7\xbf\xa0\x8c\x1a\ \x9a\xae\x36\xee\xc1\xe6\xd8\xbc\x92\xa3\x10\x29\x8f\xf6\xca\x74\ \xaa\x3a\x0c\xff\x00\x10\x31\xff\xd9\ " qt_resource_name = b"\ \x00\x16\ \x02\x65\x98\x67\ \x00\x4e\ \x00\x6f\x00\x2d\x00\x4f\x00\x6e\x00\x65\x00\x73\x00\x2d\x00\x4c\x00\x61\x00\x75\x00\x67\x00\x68\x00\x69\x00\x6e\x00\x67\x00\x2d\ \x00\x33\x00\x2e\x00\x6a\x00\x70\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/demos/embeddeddialogs/No-Ones-Laughing-3.jpg0000644000076500000240000007401212536324427025655 0ustar philstaff00000000000000ÿØÿàJFIFÿÛC  !"$"$ÿÛCÿþNo One's LaughingÿÀ"ÿÄÿÄ>!1AQ"aq2#BR‘¡±ÁÑ$3bðCrá%‚ñ4Sc’ÿÄÿÄ !1AQa2BÿÚ ?°U]¢½zŒ÷ùC·þ >³Q¸šuÝ}¬';SU«U-ÀP€*æÜϤü¼}u»Rh«Ž.Æ,ëµÿü‡¿[™Ô¸Áµ»Ì5–E®‚ku$åÃ[ºƒ=WXÀR‘÷A ¹ÙÐL-qÎe‘j¯´¡7m5;õ±"ó¡ð}U uÀé÷\N ÍûÆÒªUƒ)ÊñØ¥u~#AiêYK…$ß"Òf£QFâ.;®eš¦߇%qþ­,?´ç ̶(ÄÎaÇp×¢Ùö7880Ído›ÊOQ'®ÉÈ=DÓ,Z†ClƒûˆeU¾òŸGi8;–ÝGèT*n1J+ä¨üª:ÂWȰ±æÓ5+w@¸í‘͸‚_©èn'€dtË[›^UO:jˆyY*`‰"ç1Ék\ˆ–ËhÛ~“4ÆÙg˜)@½ŒÝÂ×"¡ À‚b*m,pzˆu›$Þòu'uøfã.ʰáj·<Ô‚H¹õmCÿðm`Õp='¹Ü;ËŒõr -Þ0\Òk÷ŠÌeþìÛ¼Ó!¶&3Дô’`¼`$už„‚ ¡Ø  J±³.{ƒ0'¶\È›Mãqâ=)-ïâ LÓÐ}§•¿SˆõEÜû½Í­Hõ5§»$ŸÚtkܺØXI%0·Àýeàx´ÔòÀZÓj”Ë5îOkΦš’é© Õî~Eþ¦+IHQ_¯ò¯xuj5f,yë1nµ:&¶úŽ]Û&yTâì-5²á&@H ·<ˆB@Qrx´¨S»\çÒ1k‚qlØKV%4[1úÝ> ©"Gê"J™“~LezÃOHÔ¨nã…’gÅÖ£Rð) üÍ{\N0ѲÜ=J@ù¦×ªõw³1»_¯y%g ¨s{Nœeñ›uv‡KN…Rÿl@¤vç®'gJt U¯§ ÕNIa€ÖçõŸ(µ 6e¶ Ä®½qB’W½®n=G?Irãj— ×^ª;±»0õë+DÄ…}È8þmWiûÅùA·º·þw‘=Å ‰ÃR}ãÛƒý&ã5ŒÞ q³(|À_™Æœý¸¸áé©·Ó´æ×/ˆTlr/ò·[{Ë>%SÆø~X«…_ ½â_`ž%R©>mnÆ&¦‰Õˆt6îålªÓª£ÌpVöý&-WV"R-Èn‘Ú’étÍSUIßsÎgSüLõ?ê•7.Ç -è‰ÓêÚ†¦J©M¬Àܨ<óµñG¦>!Q,¨ž <ƒ3mÓ'O˜¯Yk[í`ؾäÁŠ¥J‚ÔGPRÇŠŠGñ;ªÚz”•ÛEH‚mcqÐÉ?ÄTtT<%Ó§‡X‹Ô@Ä…íõŒ½à³éޏ´k%E?-ªŒþ¦ BV©¦Ô«#m¾Óá f«k 9 'J®ÚŸ£ÝIšÀ¬)T5pÆÊ-n²ÊZäZai"Ó7¾à.ß©‘jÑ|•q‘oÒnŽš½O1ÜÇÒFIQƒ÷óC$s3¯3L¼Üñ5X±dƒ2ùâIJ°¶ ð`O‰VéúO3q$a`&£g D–¿Y´Î ¿ ’uþ ªJz‘J¡ûªžVÌWÄh6—VôO+ê$ pݽgf¡:ÿ… ¼×Óa»•™³.µìr\㼨Tw¡šolý"ÛåöšdEA7N{Lü[€÷‹ÏXÔ`Z̓$«}Š¿uÍç˜U”§ö‚Ëþ\ø[>Æ.‘ówSÌ í;y…ÿ´H¸6=á¨(Ê., ÏVòÖq릋¢ñ›‡y ¾Þ°Ö¯xaÕ$Þ.«qÖ‰éIfÇ&R {nöÏ&OY®Ö\(âQX<1õ=䮤& ®Ž¬ÿðÚeñäÎI¹¸:¨_áTnxoï!*%MĸªD%-L‚Ö”![@ðI<ÖÓ8"äG 6Ð}øŽ¥R¥C³p Ø BÓ‰×Nç“oxú:6¨v« Ç„¦/´[ÔÂZ΄ì;p&4áÇá•/«€;döTÅ0ª;òešµp@'osÄURªÄ-˜Ž§ûCoÒRMÙ¯´Íø‚ŽÇ¿éM˜µ²dŒ§L’,'KG@;‚y홪XŒzKª¶CÀé9Þ_‘3·Š|ÂÀp'–‹q(Ç7°ï £÷™Ó‰"y„†ŠÇÞk0o)àÀðÀ7’;Ä$á@ö˜àm&öéÍÞÐöó™"ÍB¦Ê,zNn¸šµ ÛŽe¬ä«7n'7PÎ}æø³S±µ…ý$õ¼ÔÇ¡6úÆ9,l7ÄkhëÀž“¤é„Vûµ9ÇXUª „S|(㼦Ôͪ-½&;RW Ü·I »GLÔ )0*PŸN‡é!#ïƒ1çÊÿÁŽÒj›OUZš€;w‰Õ7Þ9U°cqé ;LT£IZG9ò¸µï؉WÃé§…[áÍw7Ò'‚GiE5©uÁ·^Æ’¿Ùê'ˆru· ÆÅcR£m8 ŽÁa°¸ÚŒ€µûÊþ5Bõ½+x5üâÝúȆÚbÃ/ÒÑ—Eéඦ\oîg_âo¿I Ô^÷M¬=§£n!˜ÜœÚuôŽ•õ /àT/Öø·´Ï/”Â5£§ \¼qä—Ös¯bÕêù¿-ú˜§¬Õ¼Cvc{žðØ‚. ÞjLCÌX“º÷¼6"ï0ù„À,p#Èw…y­ _Êoü@'fˆ†¨mŽÂ?G°nQsN¨°·ánÆ#_÷kFÕ/ú˜%¨1o„Ö¦êäÄ‹šfÝ=bÈIÎ!ƒqn±KºðÔ‹D1Äõî=`óˆ@ÓMPO1ëM@ˆñ,qXuIÜ.zI-ŽD»áZäÓjC:ݕǡœ”+|±‡¹ Á0³L¸¿â”©iõlŠ<‡*GPdŽˆ[WuÕü39}?î¦D `”UHƒƒqÒûÒi}¬lo k’¶ Z Ú.5pøý ­6f0`o‚ sïtxY`F•7ÝOÿYíA¹Fî¿ú“°d h÷;è+~V Én‘$Zx^òF_¬Êu¨ ™€nH¶O2&jÁñH‹x·^‘Ú YR¯q¬»ˆ@¡Éÿ¤Ùí Cµ‰PÓ®ƒ#|ÊfüXÓ¯Y+SS+aÜZ?¹¢ÕçaeÖnŸmZl—ò=á÷WøF¢‘w,I>ÂNi”?#‰fš•ÍO5콊̩NàÓsg·‘º4u"ký_XÖÙo¤ÚŒèÛONbË›üÄDqù¿h¶;¿óT!Aš+\eý @¼ôª¹“)šnr–ö1µ|?ÊÄ{‰"‘H9Œ[œÚhnFG¤0@åyˆ7A¨ðk† á‡pfjÓìÚ‚/p}:D‚¤âS¨µ] *QŠäH£¨ì^xÅ¡X牨€ðd,Tž £(9ÄÅ"›xå¢Ù÷‘:“ ¶WúKhiÕ´ì?Ü/ oqÖt4Û—M‘Éæf˜KéÝNDK©!Sr+c1’›ôý@8™iKé®pbÞ™Q‘úG@騫§eê8*ŠAí+Ó6Ú–è`ëiÚ¡#ƒ/ª·FßqPzbCTgzü§‘Ú[¤_#I5ºÚãƒ(O‘hÓNÕät‹jy ¼JÍLÈÅâ‹4È–h¬E5n¸¼œƒköôsDÊÖ…0u‹ Dë®P~PSsØ“–XHÝT“ÔÂ)ƒ~¿Im'.lDM@>as(¦–ÈUEÉ‘»úFã-ß Š]Ö°㩊@ÏqÔL4¢ûÓ†"+Å Ø FÖ©@ t»[™?ÚT›*{™˜”%Fn±éP(ÈÏA!¥½‰b;u‘¹ÚÇ´¬'š—7'éy¾ ¯»ú“ăÒÐÅ­zªÖúĵ@OÍ¿ÌlÂ$¶Zór  î;Àç´K9áøé2 Á‹bA³sí¦P^܆iÏ­OiÜÆÂXõ2yæ·c=˜X7™HÌÔ*ÔFRœñwaä=ûF­®Yš¤¤×L‚E¦J¶U…Œ˜%HÈ8´('=¡-ÞÂà°ýÄ‘d±<ÃNEŒ]EÚçÌ Q¼×¼Rж©vê˜~iš=FÆ Œ0³Ö(6n87šÔüQ½lä^—Ô]¨VÁ•Á²ÿƒ¸MWƒPY*­Û0u:rŽôŸ•6\W¸’•6 ´²8"ò£¦ð\«“|„RŠä0›AÙAVc´úñ…[O¼îñïž"EMÃ-eº›àG3"áXÄ×§L©eÝê9´¢jCÂÌMØFêôž/-_@ŬPúA¢„êU—vÒ×½ÿ˜æ¬Žå”€Y³qÒ]§"º‡°¨Eÿ ÷÷‘ÕM¤ƒpGyÔÖRØÅ‘CRnEä̈ɶ m¶ò¿cØÄ"±´ÌÆU¢ÈûO1{Zü¤“å@,[ERÁ½¯)}ŒˆÖÚxŠ)M€³À=↣h¿Xê"âç¼H ?¼¨(R t¤Ê¶p6âÜóÔ\©¿Ò"ù9†-Èàña}ÌwZ÷Áš—\ƒÌIäæãp ‘ÞEwd €•apDk.ÜÞêx˜·ïqØËQô*äNŽŸP‘ÖrhÈ6‡J±J™Åÿy›ÇL¯¢Jõ”¶å>³åµÔ^Ž¥Ñ ggáš½µÆÓžÒi©ê©øÊ3ß±˜ã5«6>M¹Ü1hên®kÜuíµ6¥P£‹0Dìæm}Ê6r‹uŠkî±½‡OXô,ªZÁ€È¬–¥BõYȓ̦nÅ€·´Ãc×õ™È¸éI8¾$±ÎØäó#-õªØæI»ðc‘‰ë%õ”iÇšÄæIe.zM¹éˆtÇÝñ0‹NmÜÌ<Ü|Ó3ûB\‹ÚDJG-“Úz¡-浺bx)lõ„­{£u‚)¿Ó#™[nÇ2ݾVd•Ræó\E/y˜tÇ׈¦F# dM©’ á°º–^"a·¼Ë›‚¦ä&KÞ'„pGÉý¤¥Hrã™H®F‹¬Þ!Ü¿2ò;úÍ@Ÿ'& aòðõJŒyÖOÌÙµ¢ Zjäf&ì§’#w\úM!Nèd€Õ*xmÞù€*ãÍMOÒ5RÇM;·ce¦ÔÈ+Ç@côãJĨ­ô2z g*zˆh6¹B§]V‰`éU®F|²Š'–£-šöÛÄã¨eS´œƒé(Ó×k€ù¼çxµ+¯Z†•jn.û\n š£h”ØS¬äsæ´³bÕЫ'ÃÅÁé9Ž)n?xËî&cTÑ©ÒØÿ•W1ZUbãC@÷\À4™šÊèoÒöŒ­HØApæk¨6®µ¶Ô àtu½§…Ma¶½ž™þ†!ë1ù€uƒl`@;} Þ3¦¶‚ŽÝÚ}R0cÅA´ûDjhU¢J½/'áq «#+u8#¡„¨¡Y‚1jm{)Íiv×§¹C[1Tî ÔA¸÷t}U26Š5HÿêOôœí]'ÓÖó)2Œ´o"¸ÈìÝd¤ Z•jU)ÿö_ë%8<ÉEö®Æ8'ô„K#« 0ë'âÙ”‚®/0LAÕUu”EV_˜w5±;[‘(¤]:üÃ÷ôÕP×í4Aÿxìaá°Xã•ö‚›v€AÔÓ%©‡ò,QBäEžÓX ]AÌ}rf[‹ô‰ðö¶ æØõýà˜Iè#tìI±âðïhÚ)›þ²PUÌmÄĬ¨/”b÷˜Pv´4¶›^ŽGMen§Tmy¤ì9‚'ušóÛíÀ¸í=UA»-ýGh¥"äÅ( ×`ôɺœ‰ÖÓêÍTdݵŽlxkN RµÖòÚL B.7 ûÌò†Uê ©BW8¿ðg‘±gUê²Z¨È\0î&|B‚Ô£öŠ68Ï´¥Åf¹ˆ×}¬@ìoÓÝr-yæ^o<ÜŽfÙR?´ó'Ö oQƒÓ±š Å"H†CÍ1•ðÔ“Ä{¨4—‰$´É½¥t0A‹Z77SF‘½Î%j‘Zÿ¦'‡¤b) Í¡šaF9œ›%€Qs̽îL'æ=¢”)\O8#"›5ãA¼™|¥ú'tê%ê·¡ckœÉH8Ì¥H*¡cÄÃI€Æe¦˜a‘c1i„Ë\öšý HÀ«Zöгƒ»#ÖRîªI¹“Õv{\ã´Ô¬ÊcÌà°±³wo8‹Ýæ´@ª€Í¹G¸€ (´j¹sÀA¨¡ÆêcÔŽÒ@QxwïÄ÷8†-{H<âSM ÚEÓ[dJ(`ãƒÈ…jUK0oÖejL*\cÞ˜$\cÒ!4ÁÓ‰©«nÚAÒ5eÁ¹÷žóŠƒi÷F&à‹_ƒ+S©ðfÜMâ¢}‘Ö§´°{ Í+Ô¢E@~R nkºâüYÏë_j”Æsù¤ìµA-N¡'›c ¢à"K5°1ÞnFIv]ß(yE6ºppqÁ L«OC‰‚É#i­`ç±ü'‰ŠÌ¤²GQÚY¤ðªPtjW{ÝMó#¬¦›’‡Ì8=䞈bÂÙ=£Vކޢ˜¨Ÿ¸öˆ°­Hí¨9g6~mÖ8TD£V›l MƒÈ‘Öƒ•ÚÂÒ=EóPªnÇ¡ï'ÖSdÕ2›²A F×%‡¼ðZ|ø¹¿Q½” d@-~‘ ©ªºæªÜbò-6£Sz‚ÈØay˦ùµ…Œ·IUZ WŸ=áL]ñ-0O «8l ’£¶ÝŽxà‘*MI§¶…Vm¤uèo­@¶§YŽhM4YH \u"aÙØ€}c¨Š7êìn#~Êí°u=%«•¦O$}#èÑ<«ƒ¥'¦Ö(@¤Ê£‘\ ¬ÖPFFf®åY¥ØðsØÌ4™ù‹¨Ä®ïÖTÙtH¢T©¸¼e‰#å˜P|×úJ’û–Óii…üµPƒÌÖŒLÒ7vÚˆßIWØ0omíÚ]" 5+ß­„?Pá*àœæø>°þþfÒ¾Q²·†jèQFÚlÖüDÆ×Õi¼$­N‚ñס™.GÄ´­B¹å9ÒHêÀŽgӚ¯ÃþÓE¸~³’ßÔ‘îó5ÆÚ,ˆiäí¹±„‰È8ž‹Åe”þ'¤p¦®Š™¿i[‚Hâ„elfÒ’€iÃë‘:éOàÚ¡`ZƒÃ©ðŠžùz«Yy™¼ã_—˜¬D²˜àé¥z-j”Ù-ÜM¤–=ånŒ8©\zÍi±ÜLrYïq˜4–°¹â+iãJí|Lm9a‰hÄâ0w ÊZ•4½‰cÁGÇQ⢆MíÒmAcŽ$¢ên £}éƒÔ`À‚Û¸‰¬Ä^ýc* X\™%F<œÆFiuGQ'bÒ¬Ú&ª‹œƒ7Wóh%@71ª†ÄÛˆ#‹˜†ÅÈÄ[rÁsë ?ÒKʬ7-‡ é!ê#€Úw`yvØn\¬Ž1VàGÓ¦G p.=#°È™´ÃT‡M½DĽˆ1kP_´r÷3$—A»pé (O0!øŒ¤/pdF_©66´ÝU¼DcÉQ˜ª– ©«óTUì A'®¤®õÇÒ!‰#n1È´¯ð”_¡õ“¸ …œ]¯å´`¥2ØîÄàM©^ªÓ »$fñ•T0ñÄp•w^ØÌÔí<—ÛNäÚâÝ ¼ih¾˜j«3 ઎²U鞙IJ¯›D…ZÆ“]âÇþ UÍU3¦ÕYN9Vî$ú”Þ|Eò=gJ½#Zˆ±©ä ô‘0jv,¦ÜMJÍF׸=miMkWÒ+ÿܦ3ê"j&NI‰´*xv' éÆ8‹èm*¯OêEî§*{ˆ—PbœC¦yÍ¢ÎsHalÜñfT¬”Ò£€Û¿hô£¾¤î¥Ç¬çÖºÖ®,¢WJ¡knÏf…@µ:”[eD6ïI™û¤ Q-{0â$Ûv×K¶†é6†°7’ªîŒ R¦þjCòA@6i°b?XÊ ôÞùR:_ñ*¦´€³±|:'‡±†N²X‹7y5Td6V˜ÌWŽàY}„À¥° µ² šÀò×v$6÷Œ7ðÍ̘› J7 æI”麓í¦`ÚfKõ“¡>!…¤¸w^1*–|–]F˜œÁ9n6¹±Ó§ðpWâΣñ©þò?ˆ!]ueµ¼ÆÕ|Nr<ÇQpÄ^êßÌPÚQ¦\T\åo{õê%ú-EZTÔ¥FýäX„ÛÖ9@ðÖÇ6‡.ڎ݉x€&¦šT_lÆ}‹O\—Ò¸¿å3OqµÈ¼²AIw©ÍûÎV—úaÓ=:…] ø¼4¢üÃÚU§ø‚Uµ:êï ®=Þ‹‚½Œ6ýkO Eö’}b5I^#Tù•€ˆ¨ à‹FbsÀ‹qs~#°à™qs4½Æ!QÈokÃZ&£Ø\Ç¢ˆ@{|Þò™ª÷Ì[¨"ã7›Y’/18š^Ø´[çœfÅlŒ=JG¥ã(ÂC•O¶¿x,â8´Õ¹ñi¤ÐHj—&Ó‚mŠy‚ V±½¬* ›yšÖ<Ì€m™&ºY±ŽÖ„ðžÐQ·­ÏIª¶0?Ì ÑÚSæ+Þ-maR²¾HU1ó}hÝ:àôï'©r€“‰Fš¯†.O"À’¦¥{ãеzì«ÀÄ-1VÕÆÜÛ¤M@|BÍp ¼“Pް54¼û‡Êsy£ ‹Ã'îAl(’swT"áWþ^T·£N°ªêtW%´Y#;^ÂM©ÔšÌ<«MYQx}ÐHB\Ra’y3tÕˆÖ8pM7ò‘Ø&•‚Ü“åQüÊtt•6½Á(·!¸'¤h+[§«§¨¸0aci=vuV›^òud®ÖöVÛÿ¸‡¨*¨,EÀ³_¬¢©üBËmªÅ{Ž‘ÔîÀ¥®1c Ók±â&¨7‹Í2zøu´ÖCÓâã‘ÈÅqŸlÀ¤Æ@{U†ÊžND6óD”!†`x„üà4£NŠHÚyèd•³ »V§%E›´b«Ó!M­û­†Èmk`ŽÒô Pùmqé ÓQê5^ÍÒRÔÃ¥Ô]ºÉÖ†wô<õ¨müÌ_ðÂËÞâ6•pFÚƒxõ›Vžñ¼ ÉvÙóRõZms§'wcÌÅ©¹M:ƒë&V¶ob;Fø©WpÝC•¨FBAúIw~¼é0b›$eOy¡}®=i©E&åOi•väõ*Þøý"Én³LèÍÔÜäzFQ{‚:4Ÿq\ïA67âJ<ÞÇÐ|ÇœsèVµ³ƒ*¦6±õÃþåø½M®¤gØÅüaùÄbÆÃ<ßÓwÏõƒñsˆVÏXèüF‚ÆÑúO5P;‚?i9a‹s¢oóH/ËFTbú[ö¢ù`Õ6îfT`ÐZIM7*s) å[Hh°k/S)vkt™°ÅÿHôÔT¦À«õ‘c7q´É×]>#‹:ƒ=ãéª50=Dä –æj¹± ÃòN£®‘”ŸLÀNœ‚}ç4U7°0‹ÛÌrz bÕzŠè‹eÁ=¤-VæÃ˜5 ç3) ¶LÔƒGTTöƒ›âQXãØAî/ E¨¶g˜n¹‚NÐm$‰•KµÍŒ¬qÄ~¡0YmoH„r9È#-#ÏŒ©š\ B]l¦ÑNŒ§2CÞþ“Çp4AÁ†w&H~nA¬hó-ïž¶‰Ç÷ôæUÓ N-§©Pòp&R¬ÃÊÃzö1Œ¦ˆz‹˜­œÚHÝ”ªµé±¦ç£qúÅê(ÔEep}ÏmäR:ÆiëÕ¢ ’ò¶D’ ©çkÚPj–A‹žOIuoIò–$âñlZÄ dZjQ‚QM4U˜³& ui.¥‚èUIó;ÿôåê­¾e¿íñj4‹üÜ{ÆNÕ2SEB0Ù6žØ¹RoÔuŠÔysÊþ’5MÉᩨ¸õL¹õ®ŽT©ÚhÝv“ǧ©Dª ›fsÈ Pî ÛÒ2ªœ•80ЫÓÚEÊä{B¨)ƒ=E©«‚óÞ@¶PlV:’’-h×D"ê§iâ2‚¼dN Û©•o5¿Q:Zm9j‡˜ N}[p'[áΩP¨8"säÔ&åÂ. ÏW%©U&?]M Bè|§ù‘ØîàLÂk;Ó±7ö0+ ¨»ÐÙº‰MCeª7!ýD]j¥æO^D¥HX›“cØÏ ýDf¢ÄdCÚNAcìDé;ev†¨6¥W*O”öˆø¥&£Wc~±4Ûa p:†Ó­øÓæö™òŸcŽÙ[õG8äÏn°.N&œ™¶Ke¹Ïí †&ïîVþ‘ˆ Û¤ÚÎH'"Ö1¬ ¿'+SQP쨤v S×Qxþ ›¾%DžV›7üýd«âk+0üæÓ¥ð@)øõØ»¤=3‡UɨO|ÂwMñækzt›¥?æ©ÿä"XÜó¢?攞†óLPÌ_ëˆ5 Üß'”Þªƒî`;äÞHúÕ7v¥RÄ^ÙæD¯µ¿ÌcéÚý%Š-¤Ý 6&JXŒ¯éÔ¸±˜Æ´W7„_j 7ûrfT¸ùreˆE‚ùºÏo6õƒM ¼ÆQA.“ 6Œ¥rÂØ¢sÄnœ“P/Kʨ­ˆßì!-{Ô'¡1»¬¹™iŽ9ˆXòØŠqqp8æA3 ©È&OQvœdF«å“Ó|ía囌±I´gˆ ín;Ìt\¾â›V™µÁ¸ï. ¦›mbkÓR7§XJ_“ IïhÂúÅ -|Ÿ/X{CƒÀ‘µ8êeûá›çé —Õ>…|Ç14T;€nIÉ>ë•©_Ë£4ÔÂÓ¨Äg9´mÏ“lÆ0ï´ï¹L© Ç2$8Îî½ ¡(L:ÌP[¸ ýdqzjÍÐI[PôîSo—¸¨²±!ÉÄçÔ*)×ö›STN¤ÕsmÆÄ¯cñ%Μ+R ûŒÈT ¤03¦Í†­ua¾šìýezÆ­½†óù¬L£áÉæ {t&SLRzU±Ú×1=§ ´ª`³#âãˆêÁ²#)¹·KÉ«i·S¹±ìeEè†$£?0&uF;Ô_÷„Ni¥¶øÜ:Ì4íf^'cm:™4ú‚g—Nœµ%¡±ÒÇ2åcŽý¥ºz@n }cΟN? c¦¥¦ÞÖe X^JD¾ÛÚüÛ a¨PNe[lªŒhªhÔ«#>ácÍ¡»ÊmzIj§P©¿¥åûUܧRp`ÖE*€,&u¬F…±‡˜­¬ ÎԽŤ®‹Qp<ßÌç€u°<ÒQN¹ÜX!Ï´ Ê+.àEùS¡S²Ù¶·"t4oº‰¦Ü8"BúD=?ÜJt'ïi ßs,w2ž†Af÷Œª£íU@üÆ*¯—nA$M2|ÝûÆ©µK.sSjù†LÐÞb¿7í$z” Õ\n7°/õ™È‹H¨µÒÄq‘(¢ŒÔƒgóÞRËOà•œYMg°=úC8F±³ñ¶4ºm+e‘C0ÿŸYÊJÀ˜ðaÇÍ\ˆØánT€x'¬=(³»È|A¬®–r{L¡åÓÕkóeþ¿Òl  Æ÷°‚3m¶bÓ Ø“0\Øí {5ßX`FÑc{ZÒdž²ŠBäžÐ¥Nûb&\ß$°µ¸3Ù'¹ë"jÔ$ØhC>±t°ð•À;mu?n!à¬y™qÄÅ p/ˆt0Ìý˜Eðc*.Ê*O˜ÿI)ë Þö¼JÞÙ†®-~ÒCÿhäÌs´ÚóÀà±ç¤K›˜ ê@àHÉ¿:¶æ` 3m‰Ò3LGµ•¸šËapn"w‹òOÒ6‹ nAŠyO´m6ÚÖä%i¨¸$ŽÂ7S…['ªP`nž ”ʼn,ǧiE6J›õíôÎþMá)-ƒ»uÖY¤_ Aê`é©kv#ÌÄp¢ÐµHU7!™‡S:*>åë’'4üá@Ååáö¶ß ™¦4&ÛÛžþ‘eÀ`zt”BœûÉ+SjfíÄ!eQ’"O”ÔÊtÊ+‚I²Ócé#©Skî¶OŒs`æñ: ÛCù½J¦ü°*;AD,Û²˜[‰ÒVQÓ_͉ע­KL4ö ¹w÷éûA£ CmC+ J.zßÒ 5C\ÖFÚÀà[ªL9hSsuº±[æ.™j(Y È'•j ­N¢ ¨7iBS5Fë…-ó-°fu¬$*T]Ô©¯›DY¡[I¦ËÐŽD´PJ 7ÝÍÆc˜!³¤u7†œAJR3{{Ã}¹.W¾e"‘at/íÓÞð|1Lݶû“â°´Uô=cJµ2 ؉…i3 Ö n­¥Ò¶Ö5t"ÂZ…ö@úr¯NÄuõxU(T:\‰×ÓýÚ‘O}eµþlþº5Ȳ·f2Ó‰¨Ù¶».y¸=¹zTê©dbOc<|è[ÃPW7Cý&S÷‘Î9’AªFBýl`Ö àR6±7¹Z ªÔÈór¤uœÍR•JTØÌÔº*{}ë­îLR²©Ùlž±””R÷Z"¥ÕÉqp §HÈìMPê|à ;ˆô£³âÔ ­Á(ŠÕ@=§›áèÇÑM¸~e±eMâU ¹]‡b#>ÐîmXï¿âàþ°F’°b^ÝŒ]MÈÛj!×µ¬eÒSKP´ª­ˆ= oŒêÅlRA¸B@Ý›u•TÿR›_mýD¬Fxž- çë&ÖÒ%Râåz÷øy«Ñ¨@¸ëÐÅêY†Õ8„õ PË]-¸^.º^£‚ Žo.¥X|¥†;DjÜÓÕÔüGù# §LÉÁƒ£Ê*9Mæ½ï:š_'ÃuB„õ—/s¾)AhêˆÈÃr‘ÔH _åoÖv•F³Bi7úÔ²¶ê;NO†Ä•·y®4XYSNÛ“Ä@K“wn„ÚÍn ÐUðz^.¤c¨Žæt>=X]5?’±÷1¿ÓýBú× ¥—Üÿëùœw¬ÕJ‡$µÌçï-kȉkàLwóÂóÕX¾yуtŠ USó[øýâ‰bÏ,aahú±…k|ÂáEϼˆ,£ÜÍÝa´ä@ wܹï§ÒÒ Ø¸‡M7)üJ¨›ã´©z»Ji)˜ª€"ÇÒP´ºŒÌÚdb®1ƒ Ç‘yáFÃĬJ¡àuoi8R£=È (ù˜ð! ·,'~¤Ì©SxÚT(Š@ ޲Ji°\}!’Š.y“ø‹ÓžóU›ä˜bµˆWâòj•yÜ Ïy•µ½z­å½æ¤Ÿâ.vŽ;ĽMÂâÑk×Ú` šÂÅoëÛ­{Æí,n{$î.?¬PHÚ<Ç=„ðrFzq œMä…†oL’y˜”XÖÄu+Sés O ×&ÂXµ€"þ½d‰`Lr0#fÆ£¢T–§øÑ¿hŸˆÒÛ¨kez*Ñ#>×S•“µPÕÄ\1=hÒ=âª=”)L•È'‘$ª§q¸Ä`©˜–7–ü3u0ÕˆÂá}L^—IV±yTrOHÍv¢•5}>UsÞjÝê ýj¶¸c¹O3Ÿ¬)m§‚:ÌJ¬Íy†r·V Lò¤JLTTá©é5êµEU-×ÈÎàÑ¡î×a5ŒëIKØ©Cê/ 7^꽌jVZ–é‚G⊠7Ze‡B µ<®Á~B¿ùBZ·>[“Óf Šï{ cÿ¶a}¡ím áˆ×QSýJBÝØÚ7À¤ͨ¸òU±š£+Í™„žVSêM¦pªFÒÒü ò8ûfÒŠ?Ú³ŸqË’ØéÄÕ7>E"ô¿+VÔÕjšÌ[µ¡Q¨µ ³7 ƒ¢ø}ZÀ×®M:=ZÙ>Ñ]©“OIA©¥²æûŒ.|+Sm5gv¿›ôµ½=e áïÓŽC‹–Fv„¦«S±ä{LþNº•ˆ]˧¦@æh4uZw§LOLî3“w$)÷–&U¨ìjºe@Àb¤¨æ@]lÄ[ëÚ¬ˆ¬EŠƒüJ>;Jô©7.½;ñíâü'r›T¤À“×"Rý.zYÜ#w•ß^ª™]­ê/‡s¥e°ÈÜ;^¬¨¨ã¬Gï7:¬¡)ÕLé)|%Iâ¥_Ø ÎA›¡É7±—üQÕ4zJdd©coSÝ‚%BÔ5Bxº‘)ÕiiêhF–Ûÿî'Q%ÓÔ¾ò‘ÃHª:Šº=Nå¸ ÚǬ²¤Ít'qÏhZM9Ôj)ÑQ–9öMU _¢u:K Ãç¦9÷Œÿ éí^®ª ·‡åï+Ë¥ñúßdÑ&‰±v|ýƒP&Ýe¿ÔF¡ê‚M½ºHÉ7&ò‘ý¦UN§ÃÑoz×ôfÛH7±ØÞzÕ,¬ë/ÿªh©Ü&ŒÕíâÚŸ‹V§M< tè–ò¬6ÿB)ü/[\—ðÈÚçŸôÊûf¶ŠÐ5Ïí$«_W^æ¥j‡¯™±'4Ôµ‹'´rÿWN¨oƒQÚ©Tõ!m-:&—N+¶—a#îé±¹>¶œÚZjz CS¨Mõˆ½*G§©×­Z»µJÏs~ó?;Žèøó”±ÓÒn‚2—Å*Ô¿†4ÆÂæâ|¹¾à7-£:Ÿ)ú‰Çê¾²žª«&÷ÓRpx!­ý& N˜>ÚºT^¾V’|?YF¶‰R¨ÙTbüë µêפëP Û­§<í­XNˆ‘þX7bðu?ÚÏN ®/æ#´ž“2§ˆ«b0zZCñ]oˆ¡å³úÆqÚ­Å•õ%Å:îw­A±¿ÚØÍ5Þµ[x´ˆàâsþN§M¨ÒC!ÿt¯á•ÙjR©´‡¦áXw¿ÿ‘³:¹e6[õó(×.Í[¸ ‚oãÈ(ëkmZ¬úÃÕUV¨ÍÕn=Çÿ³_èLô€u¨–Øi¿âWWNí²’Ú3N@qk2‘Ÿâ*µŽà‹XÚRö¾8ôê[p<Ú1j%a¶¹³~‰(˺â*§”ë:c¥MF‡PX«à‰õ¾wøFäZtëVK‘ÀÜÀ~öŸ!¥®»’…a½ ôŸCþ#j‡O¥²ä/+~½­9óƸ܎¶›R©±Ô« `…fkç"[_â+U…=màcpà Ÿe£U ÓV |­ƒ7¿ÑŸÇ2×ãé+¦-§-þÛÖ1~«¹±¼#§«KKUj'peªD¤tU”س^þ‚ VªÃnìm‹ÆVxcý£1(Ø]F}zH%Zcwš R[ oÙjÔJdÌø¼éQø2é´ëªÕÞ±quÔ•æW”‡+•£ÒµTñ\Štÿ;uöï/¥M•ÊÒe^µ_ûvŒ:•J…—F\a¾âß§H“©Ô³\Nÿ—û™žéê(¡¤F$½f·]ˆOîl%(šjCäÕêàNvúÕ3U™Ï«^5µ¦l1oÚh-ö±áßÚ FµO-êK#/›Öu~ MHbrW0½C;sµ¯N† Óû50GRÄŸæ#í4Žìöо ÍSRìÂÙ´…—i¸›“YµVâÄŠuz^ÒZµ«¡ »¯¡‚/|sj¥¶ Ü£¢9‰;W¨Æ×F÷Q7x¸-JŸéiê´6®ä;õl{â!B¶S&¦Ï+RßÈFøq·ÜêAéçÚKSý:a†ch…<bO°€q_êÃûE(пú7â«í&â!‘(–!øpüÔMsðî”먒ÌúK©54ƒ+AÏþM u*¹§§¦{^KhKqƒÄ±júzʤ_aÕ¨ÈÈŸ˜Åê«>¥Ú£œŸÚ¾ˆõU*W¬Õj½Øœ˜†·V…XÞÀñÙÄÜŒÖÚç #´Ô껪Ó$â.2["þ‚ttHR²¹!v‚l=¡jß•vÔ*Hü¦[ Õ”µD•âã‘ë9ʠȤ›ògCÅû5«Qmµ3nñ_Ój$;k‰ÎM(³Ô¤Ž D³½]ìÌn×ÍûÁ$§{ÞÜûFL˜­t4:Zt*ûZ ·=q;zC¥­}8 Tä’0 ¹ýgÌSº `œK+Ui¥kØ“p/Ôsô™å4ˉµ÷ªŽìnÌýzÅ©hø”¯Ô6”ÕU¾õùA·ÿVâGQHÓÔA†¤û‡·úM@õ7ðµ&Q¼Àwö‰ŸóeÇŠnÓ‡R¦Ð*›‹ü­ÖÓ§®Ôxš .­FømcŸ•©Ijê¶›pg;S¢ur »yÓsNª%E8"öý$ïUÑN©ÉSh±ÎÓ隦ª’)¾æu¿ÄMSþ§UÓrìp¢Ý¬MSÐÔÓ©Q)µ˜•¿³¹ñ#Lkª%¾ 6¸?òÐå{2tùÖª•­ö0k‹îL´hÐÑÔ”±â¢‘üNº6ž¥5vÑÓ ›["ñ¥£ ) )áÖµÝ\/hÎ]àÏ¥ŠåÅ©QOÊAýL]BÖ©§Ô©BVûg‘ü4³í5mt {É’«¶§Ä¨ä·ReÚ8¥¬¸8Q`#Ž®šÓÛIR™½÷výâµÈ§e[Œ‹~‘ZjAêyÈÀÜO¤²b1Â5ê;ßå rßú“F »uÝ}¬-«¨kU'€0 pZ›cŸ¬ÔƒUÓÕj…—í5qÅØÆ.§Rr5Oc%¤ÆâÄ w•Sβ4u:“˶2žÖd¦}ÐIÑÜ~’„Q¶÷˜¦4ÔS–Ó¡ïk‰WÂëQJ e¿û®${~³WÊC-¯ 4‹âZuJì7s|‰ Ñu­qÜfv5ª5Z%¬ÞSÃ[´ä—e7BAë5TŒ—8ÄmoöœC:±ó §¸Š¬…sÈ=DܬwR|dÜO=5#Ħ<½Giª7¥ºŽ Ór†ã¬SÚ…”~Uf—Ȱ±æÑš”»Q‚Çh¥Ü ͺJ#µ T¥¸ž‘¥ík™RçOQÉbQ¬zæ5T¹X¥Ì¡moIT /¶d˜NÀEn&I‚ÊÀ©0ðNôÆr"ïëxT¸c…ë$í#þ«sÍAý'˜\úôçÿ‚ «p='&ÄÖ™ã=4Bá¼c%è1=H0 F3‹uš Š@·¤oY¥b0 .c@6ž ˜õA·<ȺU~áSñ*¸°æDÛý=ª;òcÅJÕÁ;xÜx’WuF* 9Oö˜›ôÖn;®Ïº-‘¯p.=&xÎpn=…¦‡{âæhÀ’1-ÑR7ñ*yõ…¥Ò½f§´~§rL’@é3oÃ"zÕŽ¡üë´”v˜´jp  97¸UîaŠ”“êe«¾˜³’p:úA¶š‘ò¨¨ÝIâPõUü€dæˆSuóc?Ð:u›P;,¡B3·¤Ÿk\Xíô†žSf¹·ï N¤ÅHÚ6‘ÄF¤5ZžfÀæUFûÈöˆ¨ m÷õ„õÂþÙAAèM -ɶÜßß²U(,$qTNƒîÇ[u¬Â¥‘°Š ÈvºØŽ™é+rÝ Uii3Ñ<ÃiB}:¤ˆÛÄÈÏ•ÿƒ§Õ5 ªÔÀôï'Õ=Ýö­ƒ‰OU/e ;¨Ô~|®-{ö"Wðõ§áVøyóïé“Á#´çWSZ–á—Scn½Œö‹Qöz‰â£]mÈš³¡½·Ä©Q¶ÞÁqØ,6ó ¨ÁØ-¯Þ7ãT~ñkR?s_Î-ÅúÈÕÖòåå;ƒÃE?»®›ç©{‡Òh«Þ÷M¬=§ ªî³1¹æÓ³¢t«ð Pðjoë~žÐåò˜ú“§ X¼qä—ÖAr j*ù¿-ú˜£×f ÙÍÁ= s€TRà¨Ç¼¤Ä’åßy'uùq⧈¸aóüÌÚCÞ6˜ØwÓúMP§5t#Ÿ.b*Y4fÖÝPÛè%zmƒr‹”¨,-øL—^6ŠTìnÿ¼Ì÷ œASƒ6×­kGei»vÓµù›M0ož%´mæ"RzÜJ€é3TSNÝ1Œ6ÞÝdÉS§éT±˜hâsŒOIÎb÷ß©¼ò¸ÚMý$ugÃëªWðÜýÛàÞGñ 'M¨zG dzˆ§9Ä®¹ûgÃENjÐçÔC2êõʬFÞñKU—ÔAë ‚Až‘l<¾¢u`ä MЛöždƒïLÛ#™R0f³sÖ¤3å`ÖÁ\À¬€X­¶žñõ¨ ý¤¬ÙÊ·0†Š˜'æ’ðH”Ôò²‹‹ b+b³Y¨^‘íˆ1©É´“–éh¨„9šªY­Ôâ)”©—làa9 ÁTYGEÚ5úžæ !Ý‘èê€ÿ¤iÔwþ¦rˆ9v*SßðÊ76ÿyS¦âgÃb6¹5P”·¬hPZЬXZÓZ‰6¸¿¼g€ýÄn¸Œ§QêyCY{!m$&‰6•RÒµCµX_Ú„ü"Þ¦Žé}‡`îÍ´•B¡¨õ<2ª¢@C–ÈÌÝ=O °"㼦¸ñCéÖkÊäu- \à{Å;:›sê –c’xéh…˪ÛþÀë®{íþdtÖÖ,ÏNùžz÷«·ðLáÕoP?Ú*£'z»|£'¼Åª×ç銢›‹˜oP%‚‹“Éê'¼¹7ós{«ž·ˆ;Ä/ówž\¸žl=d×'¤f•¬¦ø¾o,KªVØ‚0@½Ï¬EWÝ’Oë2««3*›mïwn=á!Wð÷ïU³á¡aïÒzw{³¹êLN˜í§\Ž©Ç±w®X€N; `Õµ+½E³5Ê‹f%ªnósÖ%œ—ô"m¹Ž%nªU|;îÚ »ÌU 6¹¹' Qeá|§Û¤&à-4‡G '‹0zÚr]…úÖ=ê’O¯0Cx£ÂÆñò˜¥: ­V‹h+.úDþiJ-M‰Î Šõ¼c¹PÀ_Ôý`ûEª¦nÜT½ååNbïzG$Ú}Ãj¨­ÿK6ÚôJÜõn󕤥gÞËb‚üFShê)Wä© qï]©Ó( Z»\TçéXT aÍ¥_¢©¬5Ðy*®ñoY&Îßù–ïfô7PÃp½úÌB@±B½Áòž='¶žWƒÏ¤‘ÿªR¸­ó,/‰­Y+ ! Øwƒ@x4š£|ì,£úÆéÂÔFLÈ÷™¾éø‘¸1UEXÚ×PG&$\Ñb:zÍ@XÁ¸ý£ÐÜ[‚;ÉîoÖ6‹ØÚŒó<á TŽ˜˜"µ¦¢×˜ÏnÃÖ/S}ÀÜ JBcºmÆmðýjiõ°º0ô‘®ÓbI?H ;ÚíˆþF«ø…:t5òœ©î$•›6 ¯),ºŸ†H/§ýJ™ÏP.xÅNÈ6 qÒ0!'ƒ&J»XØÞUOUu³+ ÄmÁ¨±Ãà{ÉUÚÀ€%ÈÈzXÀ¬ {¬!%ªob¿¤ çÌÝõ2¢:qhuüúuÊÄ *7µúuŽZF¯Ò9¡2±™´È" ¹½í—ÝÌ*3SLï6÷âe1pæUYw"Tî"E¯ê!¥P'þ˜èñ `Møê%7ü>¥°U¯i 6'30²ªxuokˆ¦¹ã¢CÒ?™x“•=f¥*í+Ó"ìþdª:q+Ó›íÖUFÕ ¸Û 8BÅö7È2ÑÅs~‚ñ‹&˜\ÙœçÚ¹å|׌Þσüs@É™¢ ½d’í}Œ7[ö‚l§c× Œtk€ë<‚ŠŸ=LuHoå€=äu‚@Ä·QWLT:]ˆoIê”áë(¨K1ë _`¹ç ‹Pïv ØvëfåÜîubj–9˜„îÁµâÈ# ¶õ3À09’0UPmo¬öàZ÷Šp7¸OŠ.ZòGÖ7" ¶{wžñ‰~:EÒ¨†êNí<ÎA±7>ÒJ4–56Þᔯí#u îca* eYrFc5f™|‹”Éee)Ö1¶À3ÔÄ%=®"1Øu6d†•™*Ù ,mÉiµÁÅ¢ÎÛ\›ÓT°Ä‹³užVȳXò 2&ì æbº÷’STø—ûƒæš{E_c‘l6±TòpÀÁ¼q¥âÉ`Ñx'@.Ô# ¬pOƒ«Ù¹<5bµûA§ÿñiÑ©ø‰±¿«*AVÖ3-.TZÿ »Ñ6'ÐÎy¤/ó(2ÿ…°Zþ‹%Aµ»Ej(¨ôŸ•62åÃS"0}¥©ä^R(x *×âüEÓ§µž@Äu ]X§öЇ½-Í»ÄSõâbÒÁ–¨º›â,>Çà÷™Yiì,·õ·I&Ö¥½‹O´œÓ*Óq¤ZB‹—ó\€¦ö+Ëu4Ûo+_ À†©?sõ…A†ël°öQjmnœÍZ–·˜ƒúÍ| Õ‡æý 3?4ªB†ï1k†ù‘ ö™½žâm`ÅÈô††›Zécègµ˜©eb=Ä‘* r2"ÛÍ8¹[›Üt´Âà|ËÏh€èëø5à œ0î ki}ŸRWðÞàŽÝ&9B|±º¢*è)?T%ò#õ!u!°L ì™`Wž!*0b OCiê$ÅRC¸{Æ5·xéÔZ™ìc…m;€¼…½óMœiÈ äóí /E‘¬g¶˜õªJ«Ÿc(UFé-Áˆ¶‘LɼyÓƒ7·"_£ŠhZ¦œ¯Q$íHí'•Àé3Z›j ¤Zgû§˜’Tüëòÿúu;zIÔØ÷Äm&#ô„ëg#¤Ï^![u;žF/ÖÇ-†§ÅâX1>ÑÔÖô¯ùLhe{£T‘a®¾àƒð¨“OsXß,:Iµ^jÌ{›Þ1V% 2ÜGT`ª`&0¸]¶ƒxz‘Õfc“&bTúJ[$ɵågHÍ-˜Ü2§¼¬Ã aÜD;6á™·ÜyȈR5õŸ†ÆÂÿ„Zª·¸ŸS%lœ`Þj>án²*^«ƒå6wîäØÅ£”Í·n{HPØ=D^ògœ “ÇI‚Ä`m2BRÜþ‘ÛEòá‡î$Ö!£PÛ<ÖHHp¾#؇Ó,ZŸðçïPî—Äõ+cÏiÓªè¯›ŽÆ2‹#óå¤Õ~íÈèx=Ä0ÊÄ“u4ÙZâ{NÞØ€Lv\lza•™~¢I„ÛÌþ¦ƒ›tÕw]\c¼'Ó¿Ìpô̵rn#i9 Îz޶`Až@úH/g E†zÚW¥ÿ1H‹ùÀòú‰¿€ ‹g™F‘ÔŒf,鸢•WF¨=Dék‚UJz¤nb;‰&ÑPÌ>eþ²ý «iêP8¸ºû‰ÎÿZ‰)¨©u^ÝdHÞÅ~¢]á”VÛ’qYo|oØÅTªEöžAé1‘”ÝMסžgum¼ÞjU4ÁÞ¯Ò!•)ù &äJ5:cB—–©¨…¬TÅéÖú…eÝ´žoüÊMEv,¶»Üt…©Ë©f²Õµÿ ô>ñ¡ àŽ†]«¡µË"†¤Ü‹Äxhɶ m¶ò?oC7(¤)Àéë4n½ÿq=R‹Òp½z@ó)ài p6»c5%Xß©“-R­{_éQ‘ÑåéXb"ânðÂÌ,{ÂtßL ÉÚö ÞòMqcn±”[v–º€0ú‹’,O±ÐçQáœoOÔJ„à†’´[ŒW¬4{Zࣘç¨ÃÌ/nÑh)›|×í ¼ÌoÅäGN¥:ŠC¶ÛñC*.UG>¦DŠËSqàJ(ÕoÃd˜X¡Ô¶=À<ûÆSQí"F³Þö"\·°aÁ™½¦’€c…!×2Zní)¥ZÜØÌV£Æˆ±¿IêÉâQ=HâV­M–ß±…áW ô†œrt×b!©ù‰ éÔ¡¶¦îU¸T;[¼Ô¬Ø*M¶÷àò#=Ñ…¯–an e2ÈÛX]z‰"ÙJµÆ ¿@´Ý "žw¿´F¢˜*S!”ÿÌÌ£¨TÔÍÂÂögGjšŽ˜ºîÝTà q9¬Æä˜òK’ÍrO$̦§Böæ×ªàÍ-nƒÐÅê›ÆzÕî ž¦A«‘$¨H¸¾fã59¶â{@ôŒl©‹"T áºØÏZæã Ú,ã1Š×"DkabÜôšìOšÖéˆÍž°•Á×1_ËÍç±`0<ÁËQøÄZ™¡é$0JµáXm,¸‘0X®s=´Ü9í$ò“QE3È>_í<9 ôžT$’0Fa5Ý®>aÈïë$s“ ™í‚Xž~‚3N.zZHútÀ\ŒÌ»¡Á"hk¶x 7ÐÀ½¾£R¸mÞâðúµ5?HÚHAòÿ3Æ‘-ØÈ›F¥6¦ALv¼¦Ó0xŠ{XH¨(ZŒ§¨¥å6`;LØc­LQ.*%V¹òÊôþ 0ª®Ëc{mâq•^™š¢¦Ïg;•×­KN¯rífCèÁ¶Ê®Gû­,;jh•È$SÅÁé9M-çï}ÄÏDÚ.Êræ j© òè¨ýnbM2Ïet7é{^ThàL€3}3ÛF¿Á¢ ÒéÕ›€§¬6ÖÔ!M:tvŸÿÌbsëSg«vcºðƒšuBô‰d:¬k«°`|<öA"¯ñe™ÈÿÀlQp=¢ë «Oiù‡RAmQK㘠«§P§ñv>Ðu_ÓÒ©²®”¼yǨ­LÃÞ9ê(xÝÔ^‘î?,׿ÕX5_­†¢´ri4Z„)N«!ä^|éd¦¯R›â7ð~¿®£è+RS´‡Äù”«á»ÊéêZ¥66nëS§¬RRÉX ‘ÞߥÉte9‡¥mºŠLy ?HÆR `IS”@<#hßÂüª9¼hz—±øö‹u$‹ Jõ ŸAVâ2¢©­³½Æg±©‰Z“ `» ŒD*nq£‚ÂÄC¤§a« Ûç dF*ÒWN€uÀÍ@ŽD4âbØ?´À¤bñތݗ2ÔNÖ¾ýc -ê[¯XÔ§›冔Må½àÆ9®Ÿˆq@Ã[‰ kS%,9¿15íuP}åÚp 0OIjŸÄÙö„ª”ŠOQúœ -:ÎÖÒü’ªâÔÕ;äÈöä€&£4ÃN•g½7ðß‹7¬#¦¨ŠÊàÿäxŠmÖY¤­VŠ”$8#ål‰SÓ¾ðƒ %¡Tè]º;=mõ:LîÒžv¹]OŠ@²¢åQÀ‡¨‡p¤F{˜4*¶:°&›ùHì hWpv݉ò*ÒPUÚø%VçwSÒ:±.£MV…Tk‚±ƒT²«skßÚU©t¬»ÖöVÛÿ¸¶ûÑv·>°ÕˆUË‹mW+Üt‹aH—V§bGC(j\8½¿¤ ´È ‘q7 ":ú{+ôøÜ9<Û‹7¶aÒ_ ¨7>ѵ)ì/"[€ªHlc©}Ùvž  P\m<ô0´Ž½APª¿U=¢v½6ÚÓÕÕÆÖ±ÇHÕ`RÍòÛMJ¯féÈn¢ì9ˆ ·ÍÓ¡Œ?¬0¦ù¼jW 6Õǯ" EÞ7™#µŽq5x¿e6ÎŽïÊy…A÷ƒJ¨ÏyàÞǼ¨UJ˜©†èâ&Ô¦iµÒ,‹àʬå6¶HÊžñU*ÛX{,KP‰©c“YF¡oÄ™Á·PRˆÛϘwšbH#¡€—VÛ|J)*ôÁ¿¢.+(¢ŠO¤S!Zpe åcë3Z‡|5­ñ*W<©±‰øµŽº¯KÍ¿Ä4æýÿ¬ŸâzÂÙ|BøòÌÓyªÛ¸#öžfƒõ™§Æ¡û§OŒ‘©7|w“êÞ#²Õy5[š„Þj”€×홈sŸ¬õ¬¢çæ3@ãHDØæSL\úIÛ‰E´)ŠT‚æ9i‘L¬M#‘l“,½†2fmj'˜ŒÍY wšŸ5e ˜b÷f-ñ‹wÖµl= ‹[_5÷3måã2%ïIÅÄÅ‘ôVàØqÌ–6šYJœ‚cRˆbQaÆcèö#œzš¶âlj¶°š8™i;Ðê8‚´ìskJïaéRÖ¸ˆ$€£rc*=¹‹sxÀY¯bÙCƒ¥ÊÙxêfiGß¿ÄÐ?PE-ªüÇ2ÜIÉ>’­[+ײäZÆ"ÛN£ž¢©uU79¹°‚xdõ™P}á&bŸ)h4s»ôé0@êb½O l\q C!R ·KÄÖ¤3žÆa©M[vÂAù®a#€ÞT¸ê/2Rø$_„ÃJÄât”#äÑ·­áxI{šcÜþ–!¥å]­Çñ -¯së(©NˆíšP,¨WÔˆjÇ:ªóͦiý :: ËULRjUÕ›v6š—Fµ @'=';P•B¦þ—¶ôöΠâO©¢vº‚ÂQˆÆPs%Wé|ÇP ÇOI‹ ÔUwo?*äÌf.åS1Ü0ƒÈ?s šÜäÖdµI½¥}Vݽ‰c±m|™qqÔ âÁA&) ò &Í…¾°M 6íOv9EM£@;m a´ÞÆÒ€ØÁ+G#\_*Í…­}ÆßX— ü˜·0êT&ê"*`X\{F«½˜X¨·Ì Ö]ö7³Z "CŽàÍZb™'˜5ŽÚ¹0µ;R’²ðzIõÕ]Äbö„ì‚S^÷Übê·šü’H4ë(aoX–©™¬eG‰uÁó êâ'›ë!µÅãè¸vEï‹G®Ò¯ vçÄ`>‘˜æã¤£UUimA”E±÷ëKVž*aÐÌ”ÎÖµ¹¼cü úæ e]ÿ0+é§Va‹²ŽE¸ˆ žø2ú{©ÐpÄ®ã~ý SÑ¡ûö )¨¿¿¤œ»øÆª±V¾1O‡ÓTvº’¬VÛNf£µP²x™¨d¨ˆ,@7iU%jƒuìO̶Á„u½4C~AE*–NÆæ:KE¼×[õæSuäX‰$Ó§RÙ½½æš`–#ëEÇ—wô‹ )»m·©`àúwš(«ä(¿b&¯†ÜÔ·¢ˆdÓàï#¼“ϧ D†N'9é½&ºïQØñ:ÔŽÅ!Ô_ü³úD½dk‘enÄq)j±= k2盈U(Sª»’a‘½ l\ÝLòÛ‘s$äêi20kžmxUU~ÏI­bos:´T¡ù¹S9õÅ’’1·<Íˬا޺Þàƒh¤*Ëg¼zcR†ÿŠÒj§k’Ã72Þpêr0GxbžÍu5[‹E€·©¾ÞD~Žõj¡ü­¤rµ}²§mçùž%O5ȧªÕœŽK>#í sí:2m}Fû•§·±&b2 ı92l³Xœžñ¨1 ãúK¨ß°(P'´î|‰p¬Ã ç7ÿžÓçè^¥eÜϨ[iþQï´Õò©ôÿ—œùô×+[¨ñõµø8Ñ% ªà‚3Æ÷ âX‡o䈺´ÂiU@ù˜·ôþð‘ˆq³“‰F¥¯³òÓ˜êOTZÀ{˜’llr# ËožðnÝ­ÈoRÏb,:\Ɠۤòðhê%…øŠ#´¬…‹{Eš@’A¼e¥n:Í·c¤j-ˆ¥§ µÉT<­í %Ó \U1<Í௃O û“=R¦õت "éŒ÷õ‚Ù0yŽR¨/Ö$²ß÷ŒA¹K”u:ƒY¼B08¼ÐÊZì:÷’UÔ8 ¡ü·¼±k Ž™°°ÍRÿ,’›`ûBF, ¨0êé9›Hª3}3Sp²cúÁ ˆBwö˜Õn9½¸‰, žQq{‰b5YŽ`Tn“i©ùŒó™äÉSu²l"Τ.¿¯Yêí|™ F䉩4ZéøŒÏO;‘°mÒMñO.¥³u¶‡¢Ü̬¼¬–­pÕÄ\ô”ªò=éòW©“˜öR´‰_2“ƒÚJêwÞn3@X™ÐøS TŒ.w2]6’­bò¯V=#µzŠH£O¦Uü]Ïy^úSú©ªXÇržb5Ùià‰5 ¬§9™j0+å ¡åH‡‡ÒÑ€û‰v–³Q$¡Jt¬~ò™G@r& èoc •:]ëg~GHH°ñz“‰0>nÆRÚš…-șƵjÖ¤já»)9·Hõª‰s‘îg%YÄ«!î%4jVQäÔò9™°Ê½u ¿(Þ¿îæ¨r§iô‘¦¡Á¸DSØâ6–°“bŠ>˜†o Š„ûÃHg[ÌmB[!= ‡¦ ïÙo5­Oqºg¸žz×ù¤*t•òÇÒØ•Ž*ªú4º]“º  «‘Ø1«3Uóßñpa}žª’ö1UC+YÖÝ{EJ°¤âÌÄóZ³"Ö*H2J¬—¶mÖVûÊm|T[_ÔK¿Å¥¸ð9÷“êéùVù+×¼f€‹Ö¤ä ޽ C°*§òž„ëYš"°&£‚ ”=—P¤|¥†;HõÅ©êê _Ì™Ò3Z%0 ÉÁ—ülªK|Š„Î+17ç™×Ñ¿Ô=ò(úË”éDºí:ÒÔ‘o# Êè’5;‹£cר–Õh2~ö•ÊÛ¨í9`3/Ç7šãE-ÓK·ÌN'”…Ku3Ìì\v +?c4ƒQñ+ƒcÈŽætþ3X]:|”ż߂Ñ]jŸ*«qîõüÎcVñó %ÅùÌbN/xõUïzã„[  ‡–6¼/@ÌñÉ·"x‚Æ×ö’ ³po6…*•j)1˧DÍv*yØ9?Úa¬Ì6(Ÿ•¯xj59&âµNåÞ.¦ê·v7næyœ(2¤¢ánûœ@¤4ö‹¶ó÷a`,©Õoz•û(¼jk”¥»ÿ#ý£*FÍÑoy}5ñ´ê´þeä-Z•ºª{(ÄCUrNæ'LÖhñSÑqó*‹u&Ç5°Rd«T©Ãk©«ù¯ô–T±˜ã6üÐÔ–&ì·Bš‡7'oéKPÅ€°ý!ùZ¸(Û†´$¤ÖÉ´×b úEŒycúúMME·U[ŽÐZ¢¡°ROs!BǬ0Æö&µGŒÌsi¥Ä•”Íú0Ž-mF¿i Cæ9Á•¶×áZñ)B°íq"­ø!,ÕÁQR² Ž¢kT,;ƒ3¤´,å#ÞÖÏ–äôÛ‰ž;ðöÌÑYÏ@?ñÄ‘è•ê©H[»õ£H ­\A™:¨*œ†=æXÛÊÀú“h7ÒÓü ò8‹}^ÒŠ=(ñæ»{A)|¢‘‰b+Sû½5E¶Xƒ¸ÂçÃ)ZYªà×Ïé=©ÕѨ lܧ*®õ¹(ÎÐUª½;AÈöíÊÕµÖ–Ý‚0ä˜ÁÕPzh '¦w ™¬'¤éit”é:«»޹P:^—©™Í7¢íb-^еƒÄ@Ö±ÿþ:‡Â¤yué߈§©âü#r›T¤À“×"Súœÿž V¿"#R»ëUFù•ͽ¯uD¬¶‡kÂÕY«ÔplêÄ~ó¤é—6¢X†S:eÅ/„©n*Vý@ž£;ä›Û¼¯ã4zJVÎÒÆÞ¦7¼‚Mž…{«.¤Ju”U@ê4¶ßÿu:‰–°tð[ÊG ý"éj*èõ;Öàƒlõ–-O¸¡!£ttQ¨§E/v9ô¡ªÓÑø•´é—ýJ`þñ¿áM9ZÕuU…?(¿xÞ]h“µÔ}Fš4ÁµØNªƒƒx_Ö N¦¥By&ÞÝ'²ºtßá÷Â×>¸†[AÑ+r'=,Ì?¤,Z¬ÕÒŠ,GûšcjEÒ…0;Úòu[òa_n/ˆak*‘`Bû }ERlj5‰èc*-ÆäźIÝÇñ5$g]O‡ÿ¥jêß"Ó“©-âaŽGyÙÒŸáÝ[œË8•ã`x´¸ûUñ©V¢Ó°súÍñj2‹MûEãÁ”ik­]rAÌÐŒ`Bù”_´Í«ÉKF U'z0-˜&µ ۥĈԦ<¦iÚÙ=¢‘”˜B`lO6’SJ©ÌA·xÅ){²õ%¹[Þ: XßÄÍ…ÐSI€ ùýæmtk¨½ºˆšZ+¼¤Aô2ª5´ /zÄú1HT»°7Ž¡@µO”ØÖPŸÑÓ])©Ûy´eo‰Ô¦‰àÓJE…ü«3´ôø~ª­Ûe8&ý:•;ý§WMHéºñ&¾¦°>%Wú˜¶¤ e‹Ú]ž—S ¦T)z‡©Ó …"¡Ó…'åBnd:m2iiŠõWuCò!éêg·=V/Q®}æ/mx¥¾"ö±£L3Òxk*5ü1@/‘#ª—"ÄZMT:ü¿¨Œã×WǪÃsЦ㡽¢¾ÑA_m]2¯[†™¤ÔS­¥ Pm¨ ¯Þ¦…e7¦ÁÀèD3á8¶“ìá‡p?˜_Äö³¥\æ#´]ÙSÄU±='/âÚãVÆ”ZÏë5ÇŽÑn(ÕjKÔ1ÞµÆÿka|4šõ+Pe·‹H€qćá`ê´Ú)°Èd?îéðÊìµiTÚCÓ¨‡{ÿù5f3¨¡¦ÊCdr;æQ®òkÁsñäðµõÂŒ-gõ…ª¬–ªæê»‡¸ÿöm’Ýu¨‡È{tƒþ$b5”ÒöÙEWöž¢û\ZÍMº^øš‘:çp@(ý„g«ã—J¡¯ÌrÖJÃmcfü-ýä‚뺛ëÞoT•u:-H¨ŒU‡pDúæ.ÿ,‹NzÉ‘À,À_ëiòJÀ”£Xo¦Hç¤úñCT:}(¢ ¾! Êߌ{Zsç6È×+ç> ­IÍ:ŠU†,bTýÃ_9¼»WñXŠzÚB  0Â,iiTSöZვ°f÷úÊD$Ëè´KtÛcOáú¼ ëxÑJ­-5U¨¹pe¨ÄcJŠ•6,׿ Œš®6îÁæØ¼’£)öÊtª: ÿ1ÿÙPyQt-x11-gpl-4.11.4/examples/demos/qtdemo/0000755000076500000240000000000012536324427020172 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/colors.py0000644000076500000240000002766112536324427022061 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# import sys from PyQt4 import QtGui class Colors(object): # Colors: sceneBg1 = QtGui.QColor(91, 91, 91) sceneBg1Line = QtGui.QColor(114, 108, 104) sceneBg2 = QtGui.QColor(0, 0, 0) sceneLine = QtGui.QColor(255, 255, 255) paperBg = QtGui.QColor(100, 100, 100) menuTextFg = QtGui.QColor(255, 0, 0) buttonBgLow = QtGui.QColor(255, 255, 255, 90) buttonBgHigh = QtGui.QColor(255, 255, 255, 20) buttonText = QtGui.QColor(255, 255, 255) tt_green = QtGui.QColor(166, 206, 57) fadeOut = QtGui.QColor(206, 246, 117, 0) heading = QtGui.QColor(190, 230, 80) contentColor = "" glVersion = "Not detected!" # Guides: stageStartY = 8 stageHeight = 536 stageStartX = 8 stageWidth = 785 contentStartY = 22 contentHeight = 510 # Properties: openGlRendering = False softwareRendering = False openGlAvailable = True openGlAdequate = True xRenderPresent = True noTicker = False noRescale = False noAnimations = False noBlending = False noScreenSync = False fullscreen = False usePixmaps = False useLoop = False showBoundingRect = False showFps = False noAdapt = False noWindowMask = True useButtonBalls = False useEightBitPalette = False noTimerUpdate = False noTickerMorph = False adapted = False verbose = False pause = True fps = 100 menuCount = 18 animSpeed = 1.0 animSpeedButtons = 1.0 benchmarkFps = -1.0 tickerLetterCount = 80; tickerMoveSpeed = 0.4 tickerMorphSpeed = 2.5 tickerText = ".EROM ETAERC .SSEL EDOC" rootMenuName = "PyQt Examples and Demos" @staticmethod def contentFont(): font = QtGui.QFont() font.setStyleStrategy(QtGui.QFont.PreferAntialias) if sys.platform == 'darwin': font.setPixelSize(14) font.setFamily('Arial') else: font.setPixelSize(13) font.setFamily('Verdana') return font @staticmethod def headingFont(): font = QtGui.QFont() font.setStyleStrategy(QtGui.QFont.PreferAntialias) font.setPixelSize(23) font.setBold(True) font.setFamily('Verdana') return font; @staticmethod def buttonFont(): font = QtGui.QFont() font.setStyleStrategy(QtGui.QFont.PreferAntialias) font.setPixelSize(11) font.setFamily('Verdana') return font @staticmethod def tickerFont(): font = QtGui.QFont() font.setStyleStrategy(QtGui.QFont.PreferAntialias) if sys.platform == 'darwin': font.setPixelSize(11) font.setBold(True) font.setFamily('Arial') else: font.setPixelSize(10) font.setBold(True) font.setFamily('sans serif') return font @classmethod def debug(cls, *args): if cls.verbose: sys.stderr.write("%s\n" % " ".join([str(arg) for arg in args])) @classmethod def parseArgs(cls, argv): # Some arguments should be processed before others. Handle them now. if "-verbose" in argv: cls.verbose = True cls.detectSystemResources() # Handle the rest of the arguments. They may override attributes # already set. for s in argv: if s == "-opengl": cls.openGlRendering = True elif s == "-software": cls.softwareRendering = True elif s == "-no-opengl": cls.softwareRendering = True elif s == "-no-ticker": cls.noTicker = True elif s.startswith("-ticker"): cls.noTicker = not bool(parseFloat(s, "-ticker")) elif s == "-no-animations": cls.noAnimations = True elif s.startswith("-animations"): cls.noAnimations = not bool(parseFloat(s, "-animations")) elif s == "-no-adapt": cls.noAdapt = True elif s == "-low": cls.setLowSettings() elif s == "-no-rescale": cls.noRescale = True elif s == "-use-pixmaps": cls.usePixmaps = True elif s == "-fullscreen": cls.fullscreen = True elif s == "-show-br": cls.showBoundingRect = True elif s == "-show-fps": cls.showFps = True elif s == "-no-blending": cls.noBlending = True elif s == "-no-sync": cls.noScreenSync = True elif s.startswith("-menu"): cls.menuCount = int(parseFloat(s, "-menu")) elif s.startswith("-use-timer-update"): cls.noTimerUpdate = not bool(parseFloat(s, "-use-timer-update")) elif s.startswith("-pause"): cls.pause = bool(parseFloat(s, "-pause")) elif s == "-no-ticker-morph": cls.noTickerMorph = True elif s == "-use-window-mask": cls.noWindowMask = False elif s == "-use-loop": cls.useLoop = True elif s == "-use-8bit": cls.useEightBitPalette = True elif s.startswith("-8bit"): cls.useEightBitPalette = bool(parseFloat(s, "-8bit")) elif s == "-use-balls": cls.useButtonBalls = True elif s.startswith("-ticker-letters"): cls.tickerLetterCount = int(parseFloat(s, "-ticker-letters")) elif s.startswith("-ticker-text"): cls.tickerText = parseText(s, "-ticker-text") elif s.startswith("-ticker-speed"): cls.tickerMoveSpeed = parseFloat(s, "-ticker-speed") elif s.startswith("-ticker-morph-speed"): cls.tickerMorphSpeed = parseFloat(s, "-ticker-morph-speed") elif s.startswith("-animation-speed"): cls.animSpeed = parseFloat(s, "-animation-speed") elif s.startswith("-fps"): cls.fps = int(parseFloat(s, "-fps")) elif s.startswith("-h") or s.startswith("-help"): QtGui.QMessageBox.warning(None, "Arguments", "Usage: qtdemo.py [-verbose] [-no-adapt] [-opengl] " "[-software] [-fullscreen] [-ticker[0|1]] " "[-animations[0|1]] [-no-blending] [-no-sync] " "[-use-timer-update[0|1]] [-pause[0|1]] " "[-use-window-mask] [-no-rescale] [-use-pixmaps] " "[-show-fps] [-show-br] [-8bit[0|1]] [-menu] " "[-use-loop] [-use-balls] [-animation-speed] " "[-fps] [-low] [-ticker-letters] " "[-ticker-speed] [-no-ticker-morph] " "[-ticker-morph-speed] [-ticker-text]") sys.exit(0) cls.postConfigure() @classmethod def setLowSettings(cls): cls.openGlRendering = False cls.softwareRendering = True cls.noTicker = True cls.noTimerUpdate = True cls.fps = 30 cls.usePixmaps = True cls.noAnimations = True cls.noBlending = True @classmethod def detectSystemResources(cls): try: from PyQt4 import QtOpenGL cls.openGlAvailable = True except ImportError: cls.openGlAvailable = False if cls.openGlAvailable: version_flags = QtOpenGL.QGLFormat.openGLVersionFlags() if version_flags & QtOpenGL.QGLFormat.OpenGL_Version_2_0: cls.glVersion = "2.0 or higher" elif version_flags & QtOpenGL.QGLFormat.OpenGL_Version_1_5: cls.glVersion = "1.5" elif version_flags & QtOpenGL.QGLFormat.OpenGL_Version_1_4: cls.glVersion = "1.4" elif version_flags & QtOpenGL.QGLFormat.OpenGL_Version_1_3: cls.glVersion = "1.3 or lower" cls.debug("- OpenGL version:", cls.glVersion) glw = QtOpenGL.QGLWidget() if (not QtOpenGL.QGLFormat.hasOpenGL() or not (version_flags & QtOpenGL.QGLFormat.OpenGL_Version_1_5) or glw.depth() < 24): cls.openGlAdequate = False cls.debug("- OpenGL not recommended on this system") else: cls.openGlAdequate = False cls.debug("- OpenGL not supported by current build of Qt") # Check if X Render is present. if hasattr(QtGui.QPixmap, 'x11PictureHandle'): tmp = QtGui.QPixmap(1, 1) if not tmp.x11PictureHandle(): cls.xRenderPresent = False cls.debug("- X render not present") w = QtGui.QWidget() cls.debug("- Color depth: %d" % w.depth()) @classmethod def postConfigure(cls): if not cls.noAdapt: w = QtGui.QWidget() if w.depth() < 16: cls.useEightBitPalette = True cls.adapted = True cls.debug("- Adapt: Color depth less than 16 bit. Using 8 bit palette") if not cls.xRenderPresent: cls.setLowSettings() cls.adapted = True cls.debug("- Adapt: X renderer not present. Using low settings") if not cls.openGlRendering and not cls.softwareRendering: # The user has not specified a rendering system so we do it. if cls.openGlAdequate: cls.openGlRendering = True else: cls.softwareRendering = True def parseFloat(argument, name): try: value = float(parseText(argument, name)) except ValueError: value = 0.0 return value def parseText(argument, name): if len(name) == len(argument): QtGui.QMessageBox.warning(None, "Arguments", "No argument number found for %s. Remember to put name and " "value adjacent! (e.g. -fps100)") sys.exit(0) return argument[len(name):] PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/demoitem.py0000644000076500000240000002212712536324427022353 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from colors import Colors class SharedImage(object): def __init__(self): self.refCount = 0 self.image = None self.pixmap = None self.matrix = QtGui.QMatrix() self.unscaledBoundingRect = QtCore.QRectF() class DemoItem(QtGui.QGraphicsItem): sharedImageHash = {} matrix = QtGui.QMatrix() def __init__(self, scene=None, parent=None): super(DemoItem, self).__init__(parent) self.opacity = 1.0 self.locked = False self.prepared = False self.neverVisible = False self.noSubPixeling = False self.currentAnimation = None self.currGuide = None self.guideFrame = 0.0 self.sharedImage = SharedImage() self.sharedImage.refCount += 1 self.startFrame = 0.0 self.hashKey = '' def __del__(self): self.sharedImage.refCount -= 1 if self.sharedImage.refCount == 0: if self.hashKey: del DemoItem.sharedImageHash[self.hashKey] def animationStarted(self, id=0): pass def animationStopped(self, id=0): pass def setNeverVisible(self, never=True): pass def setRecursiveVisible(self, visible): if visible and self.neverVisible: self.setVisible(False) return self.setVisible(visible) for c in self.childItems(): c.setVisible(visible) def useGuide(self, guide, startFrame=0.0): self.startFrame = startFrame self.guideFrame = startFrame while self.guideFrame > guide.startLength + guide.length(): if guide.nextGuide == guide.firstGuide: break guide = guide.nextGuide self.currGuide = guide def guideAdvance(self, distance): self.guideFrame += distance while self.guideFrame > self.currGuide.startLength + self.currGuide.length(): self.currGuide = self.currGuide.nextGuide if self.currGuide == self.currGuide.firstGuide: self.guideFrame -= self.currGuide.lengthAll() def guideMove(self, moveSpeed): self.currGuide.guide(self, moveSpeed) def setPosUsingSheepDog(self, dest, sceneFence): self.setPos(dest) if sceneFence.isNull(): return itemWidth = self.boundingRect().width() itemHeight = self.boundingRect().height() fenceRight = sceneFence.x() + sceneFence.width() fenceBottom = sceneFence.y() + sceneFence.height() if self.scenePos().x() < sceneFence.x(): self.moveBy(self.mapFromScene(QtCore.QPointF(sceneFence.x(), 0)).x(), 0) if self.scenePos().x() > fenceRight - itemWidth: self.moveBy(self.mapFromScene(QtCore.QPointF(fenceRight - itemWidth, 0)).x(), 0) if self.scenePos().y() < sceneFence.y(): self.moveBy(0, self.mapFromScene(QtCore.QPointF(0, sceneFence.y())).y()) if self.scenePos().y() > fenceBottom - itemHeight: self.moveBy(0, self.mapFromScene(QtCore.QPointF(0, fenceBottom - itemHeight)).y()) def setGuidedPos(self, pos): # Make sure we have a copy. self.guidedPos = QtCore.QPointF(pos) def getGuidedPos(self): # Return a copy so that it can be changed. return QtCore.QPointF(self.guidedPos) def switchGuide(self, guide): self.currGuide = guide self.guideFrame = 0.0 def inTransition(self): if self.currentAnimation: return self.currentAnimation.running() else: return False @staticmethod def setMatrix(matrix): DemoItem.matrix = matrix def useSharedImage(self, hashKey): self.hashKey = hashKey if hashKey not in DemoItem.sharedImageHash: DemoItem.sharedImageHash[hashKey] = self.sharedImage else: self.sharedImage.refCount -= 1 self.sharedImage = DemoItem.sharedImageHash[hashKey] self.sharedImage.refCount += 1 def validateImage(self): if (self.sharedImage.matrix != DemoItem.matrix and not Colors.noRescale) or (self.sharedImage.image is None and self.sharedImage.pixmap is None): # (Re)create image according to new matrix. self.sharedImage.image = None self.sharedImage.pixmap = None self.sharedImage.matrix = DemoItem.matrix # Let subclass create and draw a new image according to the new # matrix. if Colors.noRescale: m = QtGui.QMatrix() else: m = DemoItem.matrix image = self.createImage(m) if image is not None: if Colors.showBoundingRect: # Draw red transparent rect. painter = QtGui.QPainter(image) painter.fillRect(image.rect(), QtGui.QColor(255, 0, 0, 50)) painter.end() self.sharedImage.unscaledBoundingRect = self.sharedImage.matrix.inverted()[0].mapRect(QtCore.QRectF(image.rect())) if Colors.usePixmaps: if image.isNull(): self.sharedImage.pixmap = QtGui.QPixmap(1, 1) else: self.sharedImage.pixmap = QtGui.QPixmap(image.size()) self.sharedImage.pixmap.fill(QtGui.QColor(0, 0, 0, 0)) painter = QtGui.QPainter(self.sharedImage.pixmap) painter.drawImage(0, 0, image) else: self.sharedImage.image = image return True else: return False return True def boundingRect(self): self.validateImage() return self.sharedImage.unscaledBoundingRect def paint(self, painter, option=None, widget=None): if self.validateImage(): wasSmoothPixmapTransform = painter.testRenderHint(QtGui.QPainter.SmoothPixmapTransform) painter.setRenderHint(QtGui.QPainter.SmoothPixmapTransform) if Colors.noRescale: # Let the painter scale the image for us. This may degrade # both quality and performance. if self.sharedImage.image is not None: painter.drawImage(self.pos(), self.sharedImage.image) else: painter.drawPixmap(self.pos(), self.sharedImage.pixmap) else: m = painter.worldMatrix() painter.setWorldMatrix(QtGui.QMatrix()) x = m.dx() y = m.dy() if self.noSubPixeling: x = QtCore.qRound(x) y = QtCore.qRound(y) if self.sharedImage.image is not None: painter.drawImage(QtCore.QPointF(x, y), self.sharedImage.image) else: painter.drawPixmap(QtCore.QPointF(x, y), self.sharedImage.pixmap) if not wasSmoothPixmapTransform: painter.setRenderHint(QtGui.QPainter.SmoothPixmapTransform, False) def createImage(self, matrix): return None def collidesWithItem(self, item, mode): return False PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/demoitemanimation.py0000644000076500000240000001414712536324427024256 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from colors import Colors class DemoItemAnimation(QtGui.QGraphicsItemAnimation): ANIM_IN, ANIM_OUT, ANIM_UNSPECIFIED = range(3) def __init__(self, item, inOrOut=ANIM_UNSPECIFIED): super(DemoItemAnimation, self).__init__() self.startPos = QtCore.QPointF() self.opacityAt0 = 1.0 self.opacityAt1 = 1.0 self.startDelay = 0 self.inOrOut = inOrOut self.hideOnFinished = False self.forcePlay = False self.timeline = QtCore.QTimeLine(5000) self.timeline.setFrameRange(0, 2000) self.timeline.setUpdateInterval(int(1000.0/Colors.fps)) self.moveOnPlay = False self.setTimeLine(self.timeline) self.setItem(item) def prepare(self): self.demoItem().prepare() def setStartPos(self, pos): self.startPos = pos def setDuration(self, duration): duration = int(duration * Colors.animSpeed) self.timeline.setDuration(duration) self.moveOnPlay = True def setCurrentTime(self, ms): self.timeline.setCurrentTime(ms) def notOwnerOfItem(self): return self is not self.demoItem().currentAnimation def play(self, fromStart=True, force=False): self.fromStart = fromStart self.forcePlay = force currPos = self.demoItem().pos() # If the item that this animation controls in currently under the # control of another animation, stop that animation first. if self.demoItem().currentAnimation is not None: self.demoItem().currentAnimation.timeline.stop() self.demoItem().currentAnimation = self self.timeline.stop() if Colors.noAnimations and not self.forcePlay: self.timeline.setCurrentTime(1) self.demoItem().setPos(self.posAt(1)) else: if self.demoItem().isVisible(): # If the item is already visible, start the animation from the # items current position rather than from start.. self.setPosAt(0.0, currPos) else: self.setPosAt(0.0, self.startPos) if self.fromStart: self.timeline.setCurrentTime(0) self.demoItem().setPos(self.posAt(0)) if self.inOrOut == DemoItemAnimation.ANIM_IN: self.demoItem().setRecursiveVisible(True) if self.startDelay: QtCore.QTimer.singleShot(self.startDelay, self.playWithoutDelay) return else: self.playWithoutDelay() def playWithoutDelay(self): if self.moveOnPlay and not (Colors.noAnimations and not self.forcePlay): self.timeline.start() self.demoItem().animationStarted(self.inOrOut) def stop(self, reset): self.timeline.stop() if reset: self.demoItem().setPos(self.posAt(0)) if self.hideOnFinished and not self.moveOnPlay: self.demoItem().setRecursiveVisible(False) self.demoItem().animationStopped(self.inOrOut) def setRepeat(self, nr): self.timeline.setLoopCount(nr) def playReverse(self): pass def running(self): return self.timeLine().state() == QtCore.QTimeLine.Running def runningOrItemLocked(self): return self.running() or self.demoItem().locked def lockItem(self, state): self.demoItem().locked = state def demoItem(self): return self.item() def setOpacityAt0(self, opacity): self.opacityAt0 = opacity def setOpacityAt1(self, opacity): self.opacityAt1 = opacity def setOpacity(self, step): demoItem = self.item() demoItem.opacity = self.opacityAt0 + step * step * step * (self.opacityAt1 - self.opacityAt0) def afterAnimationStep(self, step): if step == 1.0: if self.timeline.loopCount() > 0: # Animation finished. if self.hideOnFinished: self.demoItem().setRecursiveVisible(False) self.demoItem().animationStopped(self.inOrOut) elif Colors.noAnimations and not self.forcePlay: # The animation is not at end, but the animations should not play, # so go to end. self.setStep(1.0) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/demoscene.py0000644000076500000240000000433012536324427022506 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtGui class DemoScene(QtGui.QGraphicsScene): def drawItems(self, painter, items, options, widget): for item, option in zip(items, options): painter.save() painter.setMatrix(item.sceneMatrix(), True) item.paint(painter, option, widget) painter.restore() PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/demotextitem.py0000644000076500000240000000776712536324427023275 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from demoitem import DemoItem class DemoTextItem(DemoItem): STATIC_TEXT, DYNAMIC_TEXT = range(2) def __init__(self, text, font, textColor, textWidth, scene=None, parent=None, type=STATIC_TEXT, bgColor=QtGui.QColor()): super(DemoTextItem, self).__init__(scene, parent) self.type = type self.text = text self.font = font self.textColor = textColor self.bgColor = bgColor self.textWidth = textWidth self.noSubPixeling = True def setText(self, text): self.text = text self.update() def createImage(self, matrix): if self.type == DemoTextItem.DYNAMIC_TEXT: return None sx = min(matrix.m11(), matrix.m22()) sy = max(matrix.m22(), sx) textItem = QtGui.QGraphicsTextItem() textItem.setHtml(self.text) textItem.setTextWidth(self.textWidth) textItem.setFont(self.font) textItem.setDefaultTextColor(self.textColor) textItem.document().setDocumentMargin(2) w = textItem.boundingRect().width() h = textItem.boundingRect().height() image = QtGui.QImage(int(w * sx), int(h * sy), QtGui.QImage.Format_ARGB32_Premultiplied) image.fill(QtGui.QColor(0, 0, 0, 0).rgba()) painter = QtGui.QPainter(image) painter.scale(sx, sy) style = QtGui.QStyleOptionGraphicsItem() textItem.paint(painter, style, None) return image def animationStarted(self, id=0): self.noSubPixeling = False def animationStopped(self, id=0): self.noSubPixeling = True def boundingRect(self): if self.type == DemoTextItem.STATIC_TEXT: return super(DemoTextItem, self).boundingRect() # Sorry for using magic number. return QtCore.QRectF(0, 0, 50, 20) def paint(self, painter, option, widget): if self.type == DemoTextItem.STATIC_TEXT: super(DemoTextItem, self).paint(painter, option, widget) return painter.setPen(self.textColor) painter.drawText(0, 0, self.text) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/dockitem.py0000644000076500000240000000717012536324427022350 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtGui from colors import Colors from demoitem import DemoItem class DockItem(DemoItem): UP, DOWN, LEFT, RIGHT = range(4) def __init__(self, orien, x, y, width, length, scene=None, parent=None): super(DockItem, self).__init__(scene, parent) self.orientation = orien self.width = width self.length = length self.setPos(x, y) self.setZValue(40) self.setupPixmap() def setupPixmap(self): self.pixmap = QtGui.QPixmap(int(self.boundingRect().width()), int(self.boundingRect().height())) self.pixmap.fill(QtGui.QColor(0, 0, 0, 0)) painter = QtGui.QPainter(self.pixmap) # Create brush. background = Colors.sceneBg1 brush = QtGui.QLinearGradient(0, 0, 0, self.boundingRect().height()) brush.setSpread(QtGui.QGradient.PadSpread) if self.orientation == DockItem.DOWN: brush.setColorAt(0.0, background) brush.setColorAt(0.2, background) background.setAlpha(0) brush.setColorAt(1.0, background) elif self.orientation == DockItem.UP: brush.setColorAt(1.0, background) brush.setColorAt(0.8, background) background.setAlpha(0) brush.setColorAt(0.0, background) painter.fillRect(0, 0, int(self.boundingRect().width()), int(self.boundingRect().height()), brush) def boundingRect(self): if self.orientation in (DockItem.UP, DockItem.DOWN): return QtCore.QRectF(0, 0, self.length, self.width) else: return QtCore.QRectF(0, 0, self.width, self.length) def paint(self, painter, option, widget): painter.drawPixmap(0, 0, self.pixmap) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/examplecontent.py0000644000076500000240000001322612536324427023576 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtXml from colors import Colors from demoitem import DemoItem from demoitemanimation import DemoItemAnimation from demotextitem import DemoTextItem from headingitem import HeadingItem from imageitem import ImageItem class ExampleContent(DemoItem): def __init__(self, name, scene=None, parent=None): super(ExampleContent, self).__init__(scene, parent) # Prevent a circular import. from menumanager import MenuManager self._menu_manager = MenuManager.instance() self.name = name self.heading = None self.description = None self.screenshot = None def prepare(self): if not self.prepared: self.prepared = True self.createContent() def animationStopped(self, id): if id == DemoItemAnimation.ANIM_OUT: # Free up some memory. self.heading = None self.description = None self.screenshot = None self.prepared = False def loadDescription(self): ba = self._menu_manager.getHtml(self.name) exampleDoc = QtXml.QDomDocument() exampleDoc.setContent(ba, False) paragraphs = exampleDoc.elementsByTagName('p') if paragraphs.length() < 1: Colors.debug("- ExampleContent.loadDescription(): Could not load description:", self._menu_manager.info[self.name].get('docfile')) description = Colors.contentColor + "Could not load description. Ensure that the documentation for Qt is built." for p in range(paragraphs.length()): description = self.extractTextFromParagraph(paragraphs.item(p)) if self.isSummary(description): break return Colors.contentColor + description def isSummary(self, text): re = QtCore.QRegExp("(In )?((The|This) )?(%s )?.*(tutorial|example|demo|application)" % self.name, QtCore.Qt.CaseInsensitive) return ('[' not in text) and (re.indexIn(text) >= 0) def extractTextFromParagraph(self, parentNode): description = '' node = parentNode.firstChild() while not node.isNull(): if node.isText(): description += Colors.contentColor + node.nodeValue() elif node.hasChildNodes(): if node.nodeName() == 'b': beginTag = '' endTag = '' elif node.nodeName() == 'a': beginTag = Colors.contentColor endTag = '' elif node.nodeName() == 'i': beginTag = '' endTag = '' elif node.nodeName() == 'tt': beginTag = '' endTag = '' else: beginTag = endTag = '' description += beginTag + self.extractTextFromParagraph(node) + endTag node = node.nextSibling() return description def createContent(self): # Create the items. self.heading = HeadingItem(self.name, self.scene(), self) self.description = DemoTextItem(self.loadDescription(), Colors.contentFont(), Colors.heading, 500, self.scene(), self) imgHeight = 340 - int(self.description.boundingRect().height()) + 50 self.screenshot = ImageItem(QtGui.QImage.fromData(self._menu_manager.getImage(self.name)), 550, imgHeight, self.scene(), self) # Place the items on screen. self.heading.setPos(0, 3) self.description.setPos(0, self.heading.pos().y() + self.heading.boundingRect().height() + 10) self.screenshot.setPos(0, self.description.pos().y() + self.description.boundingRect().height() + 10) def boundingRect(self): return QtCore.QRectF(0, 0, 500, 100) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/guide.py0000644000076500000240000001121512536324427021641 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore class Guide(object): def __init__(self, follows=None): self.scaleX = 1.0 self.scaleY = 1.0 if follows is not None: while follows.nextGuide is not follows.firstGuide: follows = follows.nextGuide follows.nextGuide = self self.prevGuide = follows self.firstGuide = follows.firstGuide self.nextGuide = follows.firstGuide self.startLength = int(follows.startLength + follows.length()) + 1 else: self.prevGuide = self self.firstGuide = self self.nextGuide = self self.startLength = 0 def setScale(self, scaleX, scaleY, all=True): self.scaleX = scaleX self.scaleY = scaleY if all: next = self.nextGuide while next is not self: next.scaleX = scaleX next.scaleY = scaleY next = next.nextGuide def setFence(self, fence, all=True): self.fence = fence if all: next = self.nextGuide while next is not self: next.fence = fence next = next.nextGuide def lengthAll(self): len = self.length() next = self.nextGuide while next is not self: len += next.length() next = next.nextGuide return len def move(self, item, dest, moveSpeed): walkLine = QtCore.QLineF(item.getGuidedPos(), dest) if moveSpeed >= 0 and walkLine.length() > moveSpeed: # The item is too far away from it's destination point so we move # it towards it instead. dx = walkLine.dx() dy = walkLine.dy() if abs(dx) > abs(dy): # Walk along x-axis. if dx != 0: d = moveSpeed * dy / abs(dx) if dx > 0: s = moveSpeed else: s = -moveSpeed dest.setX(item.getGuidedPos().x() + s) dest.setY(item.getGuidedPos().y() + d) else: # Walk along y-axis. if dy != 0: d = moveSpeed * dx / abs(dy) if dy > 0: s = moveSpeed else: s = -moveSpeed dest.setX(item.getGuidedPos().x() + d) dest.setY(item.getGuidedPos().y() + s) item.setGuidedPos(dest) def startPos(self): return QtCore.QPointF(0, 0) def endPos(self): return QtCore.QPointF(0, 0) def length(self): return 1.0 def guide(self, item, moveSpeed): raise NotImplementedError PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/guidecircle.py0000644000076500000240000000733612536324427023034 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# import math from PyQt4 import QtCore from guide import Guide PI2 = 2 * math.pi class GuideCircle(Guide): CW = 1 CCW = -1 def __init__(self, rect, startAngle=0.0, span=360.0, dir=CCW, follows=None): super(GuideCircle, self).__init__(follows) self.radiusX = rect.width() / 2.0 self.radiusY = rect.height() / 2.0 self.posX = rect.topLeft().x() self.posY = rect.topLeft().y() self.spanRad = span * PI2 / -360.0 if dir == GuideCircle.CCW: self.startAngleRad = startAngle * PI2 / -360.0 self.endAngleRad = self.startAngleRad + self.spanRad self.stepAngleRad = self.spanRad / self.length() else: self.startAngleRad = self.spanRad + (startAngle * PI2 / -360.0) self.endAngleRad = startAngle * PI2 / -360.0 self.stepAngleRad = -self.spanRad / self.length() def length(self): return abs(self.radiusX * self.spanRad) def startPos(self): return QtCore.QPointF((self.posX + self.radiusX + self.radiusX * math.cos(self.startAngleRad)) * self.scaleX, (self.posY + self.radiusY + self.radiusY * math.sin(self.startAngleRad)) * self.scaleY) def endPos(self): return QtCore.QPointF((self.posX + self.radiusX + self.radiusX * math.cos(self.endAngleRad)) * self.scaleX, (self.posY + self.radiusY + self.radiusY * math.sin(self.endAngleRad)) * self.scaleY) def guide(self, item, moveSpeed): frame = item.guideFrame - self.startLength end = QtCore.QPointF((self.posX + self.radiusX + self.radiusX * math.cos(self.startAngleRad + (frame * self.stepAngleRad))) * self.scaleX, (self.posY + self.radiusY + self.radiusY * math.sin(self.startAngleRad + (frame * self.stepAngleRad))) * self.scaleY) self.move(item, end, moveSpeed) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/guideline.py0000644000076500000240000000602412536324427022513 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore from guide import Guide class GuideLine(Guide): def __init__(self, line_or_point, follows=None): super(GuideLine, self).__init__(follows) if isinstance(line_or_point, QtCore.QLineF): self.line = line_or_point elif follows is not None: self.line = QtCore.QLineF(self.prevGuide.endPos(), line_or_point) else: self.line = QtCore.QLineF(QtCore.QPointF(0, 0), line_or_point) def length(self): return self.line.length() def startPos(self): return QtCore.QPointF(self.line.p1().x() * self.scaleX, self.line.p1().y() * self.scaleY) def endPos(self): return QtCore.QPointF(self.line.p2().x() * self.scaleX, self.line.p2().y() * self.scaleY) def guide(self, item, moveSpeed): frame = item.guideFrame - self.startLength endX = (self.line.p1().x() + (frame * self.line.dx() / self.length())) * self.scaleX endY = (self.line.p1().y() + (frame * self.line.dy() / self.length())) * self.scaleY pos = QtCore.QPointF(endX, endY) self.move(item, pos, moveSpeed) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/headingitem.py0000644000076500000240000000773612536324427023037 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from colors import Colors from demoitem import DemoItem class HeadingItem(DemoItem): def __init__(self, text, scene=None, parent=None): super(HeadingItem, self).__init__(scene, parent) self.text = text self.noSubPixeling = True def createImage(self, matrix): sx = min(matrix.m11(), matrix.m22()) sy = max(matrix.m22(), sx) fm = QtGui.QFontMetrics(Colors.headingFont()) w = fm.width(self.text) + 1 h = fm.height() xShadow = 3.0 yShadow = 3.0 image = QtGui.QImage(int((w + xShadow) * sx), int((h + yShadow) * sy), QtGui.QImage.Format_ARGB32_Premultiplied) image.fill(QtGui.QColor(0, 0, 0, 0).rgba()) painter = QtGui.QPainter(image) painter.setFont(Colors.headingFont()) painter.scale(sx, sy) # Draw shadow. brush_shadow = QtGui.QLinearGradient(xShadow, yShadow, w, yShadow) brush_shadow.setSpread(QtGui.QLinearGradient.PadSpread) if Colors.useEightBitPalette: brush_shadow.setColorAt(0.0, QtGui.QColor(0, 0, 0)) else: brush_shadow.setColorAt(0.0, QtGui.QColor(0, 0, 0, 100)) pen_shadow = QtGui.QPen() pen_shadow.setBrush(brush_shadow) painter.setPen(pen_shadow) painter.drawText(int(xShadow), int(yShadow), int(w), int(h), QtCore.Qt.AlignLeft, self.text) # Draw text. brush_text = QtGui.QLinearGradient(0, 0, w, w) brush_text.setSpread(QtGui.QLinearGradient.PadSpread) brush_text.setColorAt(0.0, QtGui.QColor(255, 255, 255)) brush_text.setColorAt(0.2, QtGui.QColor(255, 255, 255)) brush_text.setColorAt(0.5, QtGui.QColor(190, 190, 190)) pen_text = QtGui.QPen() pen_text.setBrush(brush_text) painter.setPen(pen_text) painter.drawText(0, 0, int(w), int(h), QtCore.Qt.AlignLeft, self.text) return image def animationStarted(self, id=0): self.noSubPixeling = False def animationStopped(self, id=0): self.noSubPixeling = True PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/imageitem.py0000644000076500000240000001125112536324427022505 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from colors import Colors from demoitem import DemoItem class ImageItem(DemoItem): def __init__(self, image, maxWidth, maxHeight, scene=None, parent=None, adjustSize=False, scale=1.0): super(ImageItem, self).__init__(scene, parent) self.image = image self.maxWidth = maxWidth self.maxHeight = maxHeight self.adjustSize = adjustSize self.scale = scale def createImage(self, matrix): original = QtGui.QImage(self.image) if original.isNull(): return original size = matrix.map(QtCore.QPoint(self.maxWidth, self.maxHeight)) w = size.x() h = size.y() # Optimization: if image is smaller than maximum allowed size, just # return the loaded image. if original.size().height() <= h and original.size().width() <= w and not self.adjustSize and self.scale == 1: return original # Calculate what the size of the final image will be. w = min(w, float(original.size().width()) * self.scale) h = min(h, float(original.size().height()) * self.scale) adjustx = 1.0 adjusty = 1.0 if self.adjustSize: adjustx = min(matrix.m11(), matrix.m22()) adjusty = max(matrix.m22(), adjustx) w *= adjustx h *= adjusty # Create a new image with correct size, and draw original on it. image = QtGui.QImage(int(w + 2), int(h + 2), QtGui.QImage.Format_ARGB32_Premultiplied) image.fill(QtGui.QColor(0, 0, 0, 0).rgba()) painter = QtGui.QPainter(image) painter.setRenderHints(QtGui.QPainter.Antialiasing | QtGui.QPainter.SmoothPixmapTransform) if self.adjustSize: painter.scale(adjustx, adjusty) if self.scale != 1: painter.scale(self.scale, self.scale) painter.drawImage(0, 0, original) if not self.adjustSize: # Blur out edges. blur = 30 if h < original.height(): brush1 = QtGui.QLinearGradient(0, h - blur, 0, h) brush1.setSpread(QtGui.QGradient.PadSpread) brush1.setColorAt(0.0, QtGui.QColor(0, 0, 0, 0)) brush1.setColorAt(1.0, Colors.sceneBg1) painter.fillRect(0, int(h) - blur, original.width(), int(h), brush1) if w < original.width(): brush2 = QtGui.QLinearGradient(w - blur, 0, w, 0) brush2.setSpread(QtGui.QGradient.PadSpread) brush2.setColorAt(0.0, QtGui.QColor(0, 0, 0, 0)) brush2.setColorAt(1.0, Colors.sceneBg1) painter.fillRect(int(w) - blur, 0, int(w), original.height(), brush2) return image PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/images/0000755000076500000240000000000012536324427021437 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/images/demobg.png0000644000076500000240000005030312536324427023403 0ustar philstaff00000000000000‰PNG  IHDR X­¨rBkPLTEAAA###kkk555WWW666bbbTTTYYYXXXUUUVVVZZZggg[[[777\\\]]]^^^888___```999aaadddccc'''eeefffhhh333iiijjj444000---222+++%%%...111$$$///,,,***)))&&&((("""!!! wwwooo‰‰‰mmmnnnlllpppqqqrrrtttuuusssvvvˆˆˆ………yyy†††ƒƒƒ‚‚‚„„„‡‡‡}}}€€€~~~|||{{{zzzxxxMMMOOONNNDDDEEELLLPPPGGGJJJCCC<<>>@@@===SSS;;;:::???`ì˜OIDATx^ì™7ŽÅ0C稣è~Øtü¥‚©Z»[ÃâÕvñ@D -È»k¤ÿXœsç˜'ÖZ­”²Ùvd8ˆõùÑR x"?}áýl%qȃ™õG”UÁï÷’œ~‡p‘ÊŠé Å”J”ˆË%¢”ò¥DŽR"bÀhLjT¼¤„ÏͦT’„Ù–³6U‰ÜYåÖx­òÏј’í’„¹•—V)K¤YbÀ(´F²"Ð)’)¥IÐ"M‰T—ú#D  º0¬µ³íÙ”Ò$ápdzD4bÊȺs„4Tj3ä«/Ì&™rJ’÷³D˜«K#ëÆ"жÅÈLÈw_8M)’ Q’\"éM¤Y×à—={Yiˆâ8<Ä,Š â" UTp!>A!Ë\K/¹¨™™L¦µV«µj“Æ&ï\ø.\ù-~opÎEÓ(úMX”eÏÒ4ÍÓ8Žéˆ·LA…Íc|À9Ï'yNéˆR!†BŸR†2I’0@ÅŸ=wÞ´!hc8á NƒÀ÷|ß¶Ol×uû®ã8=Çó¼ž+Ó4­k«iöW뺮/«ªj/ÚvG!Ûã01UKk Í챂­Öj‹©7妬Ô=¬U÷°z…†l¾]ü¿?U> üìt:ÏÝ®a¼º®Ïañ·ùÏ;çÖÜ´†áŸÆ§ø¤Z±E,Ë'pÆpÛ_‚I™„ßPJÁ4¤I;?¿ï·ª¼|µÈRL‘÷½xï5£G»>isä/jy˪ü¡Œ|YÕjõ²ºZW¼îj5ñ+ÝŽÁJÝÀ/N‘Ék¤s†x÷î Ý»¯pïŽéÞ}I÷.n^k‚{7“èt:Žã8¦ÔKˆAUk!åd¯‰ä,ËÊä3™L#Õh4Ì¢iÖë…zÝ0²†Q«ÝÕä%àR/÷9ämù=…d*d¸¿¿¿è-æóóÃós‚iß#ÝÏH÷³Àå§/]××ékD•|þ±z÷CVd®ûÿ)Ù«éz.6äã…÷€Mø3⃞í'_¶[ $ÓAR· ª*ð8 >šÄ‡>2ÄGƒø0ÁGø0ˆøˆËG|Fäz–¤$ï•Jeˆ5d´ ½sdp{ >nˆ{ÉÇgM@Š¡AÅÑ âhP)*Tq4¨¦àÁ—Ôâãt<ˆ3ð!÷>'ÄÇ+âc >^"/æÉ$F1‡M|”–|´ªÀƒøhøÈ âÃu¤` w5D®~—ÀcøÈ´Ö¦þå#•H§û•Š\D‹Ö,"Dî´°ˆˆ&৯ëoóÁÑPk^ ª)ñA%6àã ñq >^K78AìWHiŒMâà â£C|8àÃ&>JK>Zàã€øhøÈ ù’2‘BÉñA»Cl­€ñ‘#>h/šZòQL$Òéå"2ŸÏ×n²4?yq4¨T *E…*Ž•DÃ-˜¦ W=›ø(-àõ€{ xâÃ6ñQZòÑH¹‰ìYH>ƒxêaÖ‰O=jžzð‘#>ÈÕRK>ŠÅbâ(™Æ"B&"M½7W›¬˜Hˆ.ŽCƒŠ£A¥¨PÅÑ ’hxDÒWß-Iõx(57‰¦5W=Ö«ù{ªOà£`v“I,"Øe !"l“@Ú1”­æéhÕ\•¢RÍO™šÿš[LÍMOÍ $[óÔüò«jŽ*‚Bác§ÛMÒ"RéóM–'!÷RB4qQs$j5W%ªùéC©¹E|0õjžej^öQó # à£à´»±ˆ¨M–÷&ëÛ¢K«9«sHÍO£SóSs ɹê=57¨9ø(Ù¬Ó~Š5Dš:Æ!ËMF†~¢K«ù*SñcÔ¼…T™zXR=˜šÔùX@fYò´Ýîv³M–”Û¸KˆVs$¤šs>¦âG¨yµ…¬™ †Rsâ#;Ë"õÁ Ýf›,w\w ÑjŽ ­æœ©Ø¾š·ˆ5SÁj<ˆ”s8<Å"ßdyãBoœ®$D35G…VsÎ"¶¦æþSÁðjžõøÈ:‡‡ÏÚí¶»ÉòÞôΕ„ÄQÒµš£¢SsUâÕÜajî; ¯æŠòŒm² ! 9Nç¢ ˆ•šW¢TsUâÁÔÜ!>¾9ŒJÍ‘e9ÏÝM–ºãt.!¾’®K«¹*™šO˜š;ˆé3Œ^ÍU½žÜdu»Vä&‹IHÜ%]«9*„š³©ù±˜z8>SÁðj^\Qs¯î.lân²’Iþ¦—Iˆ& ¦jŽ £æ¬.Ćj>fjnM6t˜zD­æÅ5÷Šþ’´G=ÚdѸp½„tïc+éZÍ‘jÎ ?˜ŠÔ¼ÅÔ|B|øLëyž©y‘ø`êáÕñ@a ñÞôá®HˆVsT5çu>.Äj>&>ØTp§‚«yž©ù§"ÂÔÃ+ïW{ûx$7Yî›^.!71–­æ¨hÔu!ù¸Õ|L|øM£Us¨¦‚ÅUõ@ÔQÆpD›¬Á€Æéé´+!râ7)Ô¥Õ\Õ-ñA%¾OÍÙTpì7ŒXÍó\Í׫ÊEÃ-{8Ä& ò5 ñŸêÒjNh¸%¾G̓}°^ÍÙT0ï?”Å2 Fî›Þµâ?)Ô¥Õ\ñq+Ö©9?‡Ê*½šš *5WeG°&! &!ñ—t­æ¨ÍÕ\•Xò±åc®ÌõÇ\•ƒNg %éÃኄxÿ„설k5G…QsU‚s…lç˜+3À1Wêƒ]_5WeôW$d§&…ZÍQ¡Ô\ÕL¬?æêl;Ç\eý޹  æ¼ì~xÌ%d´¿3“B­æ¨Pj®j6›‰ÿÃ1WÕ`ìr5_-r<ô$ÄûñVJŸjâ¨æH(5W5CnÄâcÇ\!~Ç\UsF/»ÿÄ•ïs,uú›jXi5gu#ù˜‰ísUàƒ]ßCëí'®„Ð7ïî?!ÞçŠ|R¨ ˆ¿š£6Qs÷€*±2Œ^Í£ø—Ö_=xGý¾; q?Ǫ„¸“B2ØI×jŽl¦æK>f⡹ÊDõ/-WŸš–ޤ„ÈϱºRBÔ¤pw$]«9jC5W|ÌD´jý1WþSÁÕºš^OBøédW$]«9js5W%¢=æªð˜«ðjÎë |)!Ï{‡«“ÂÝt­æ¨0j®JDwÌ⩇µv*ø{w¶ÛDDa¸Ä&!`‡ÕØÀ$,fy.Y/x‡2CÃàN ,y|šÎÄGbU·Üã.DYÑÿuñ©í“ŽhŽ4ÿŸsíÁÄ)½ùMÈ_/…<Ò5JsÄP3WO%ÑÙñ÷áÒŸLüKá9/…Ò5JsÄC f®FÌÌÕrh>»‡ôÉœ—¤k”æÈ¾qJ³@WÁ\4Ç}8ƒLðRø¿"]iŽDÐ1þ>ö)žæÌ«`.š#k›[ãñÁKáÍGÁ_çÕ(ÍÓ܇¡0šo€æÌ«`.šûéc =öë¼¥ùì> q4Ÿ¹ÊLs¤¿é¤…ôÐßÜj”æ¸Cóh>Í™™+A4GÖ6ç!=ø7·¥9BžæÌÌÕèÑÁõjš#î@¶Æ-¤ÿæV£4GÈÑ4_ÊÌÕ 3sOsE:¥¹KÍ‘šÚ3W/sÏ\ÅÓ\>Ò5YhŽDÐÙ«kÊ=sµ z,Fs¤'éš,4G"hŽÔî>j-gæê3sµ(Í; Cº& Í‘š#µ¿š–;su&dæ*žæˆµS;…tMš#4Gj.ÔÉÌU?áÌOsÄþ¹;„tÍ?IóÙ}ÔÔåÌ•e^“б÷aGŠôV”æM‚hŽû¨)!ÍÓÏ\ñô@¦‡÷aéí(Í}BiŽPº™«õÔ3W<=‹û‹tÝbÈBs$œæ¥š¹Z?¤G/fæ áèÁÒÜúÈEºn1d¡9As„h!š·g®zž©i¾ÃÓ‰tÝbÈBs$‚æHI%-@óKžæ¾°Û¦9"éºÅ ŸæHY’û‹ y{æêlŠ™«D4—tÝbOs¤ô÷QRÍ3Ì\…Ñ\‘ÎDiŽð4ß+݇|x𝀿f®‚h®Hg¢4GBhŽû †æùg®xšËGºÒÉBs$ˆæ¸’Žœ¹23WRh.éJs$ Í‘Pš#ÄÍ\ ˜™+)4G*©H×-†,4GÂiŽPÈÌ•|š#Uµ=tÝbOs¤ Ö53s%‘æHåî£ Fºn1ȧ9R»Ä½ ʧ9Rùû¨†Št&Jss$Í‘ÂÝGA²g®xz ÛÍ}TCñH×-†,4G8š»þ> ’Òé§9"C3W‡‘™+$F8Íý¨êDu\é¤9’@sÄ£9"ÍëÌ\ÅéèÅ}è¸8ÒIs$æˆOsD@{ÕßÒÓ|òÿ>´6ÒIs$“æ2@sD¥¥·´QÜGi¤“æHUš#ª* ½¥õ£¸ÒH'Í‘ª4Gº¯IŠÏ\á-­œ‘ iîßÇìk’ŽÍÓ!Òƒ!Íñë ™M²µ.4'Ò!Í‘>šƒ´²&4'Ò!Í‘~šƒ´²4'Ò!Í戬Í[C:iŽ¥9"ÍÓ|ÕH'ÍIsä‹Ôœ¹ŠÓ±›Dz ¤¹ÿ˜+)4?X5ͳié in ší¬+ 4?X5Í‘ŽZí 4Grin šYW|šR¨ã4GfÔZéL Í‘š# ƒWšgÏ\Åi®sj…‘ΤÐÉ¥¹-Òà•ÀÌUišƒZQ¤3)4G Òàoæjz4@sP‹H&…æHIš#˜¹ªMs„H„4ï»D°@íÌ\µAs„H䜽{Û£ˆÂ(¼%:–¡)È1æ"RŽ”;á'x|æà™Õ¦%ÊêÒfÏÅzƒºø4úwBs"¡9™¨÷wKlië 9©éAs"¡9™¨wEKliå4yGšç#=š ÍÉD½Xág®îHó|¤ÇàCBs"¡9™¨÷†Vþ™«4Íó‘ƒ ÍI4'{X&Í/ühŽ5Ò4ÏGz >‚æXŠæú-mšæùHÁGМŒ`Ê-m>Í›AzМHhNn;À$[Zš“wgÕ!=hN$4'ÿu€ ¶´4'+—e = š ÍɦßÒæÓœlpv6é1øÐœ”As²¢‚åniõ4'78;›‡ô¸Å ¡9)ƒædã«æd/´ç"=n1ÍÉÖ ÖÍGB›‹ô¸Å4';/X4 ­b¤͉„æ4X4 -éAs"¡9‘МŒÑ`ÕÓ|$´¤͉„æDBsr[VÑ––=r4'š“"hN¬Š-mšæYHš ÍI4'×Vþ–6Ms’ô8“4'׿Zñ[Ú4ÍÛBzМHhNÖ¸°ÂÏ\¥iÞÒƒæDBs²†5CsòIµHš ÍÉNÖÍɹÍGzМhN$4'Ú 9YKîh.ÒƒæD@s"§9̰hN¶’;š‡ô 99tšÃ «žædǹ£9Hš“ 9±Vh>â\.Òãã‚zš ͉ Î\9Ð|ņ47 ÍÉñ±}护éAZAz|\PBs²XÞ––¸niÓô ­ =¾û/¡9ÙŽ@lDÁê|šOL—‰ô 9МHhNv#)li]h.@z|÷¿Yš3²5‡-­€æ¤Çwÿ¦9G,K«§y“Hš“Åi~¼åniõ4oéAs" 9±¼3Wzš{!=hN4'𫛿M"=hN$4'}oEž¹šAsòá´j¤͉„æ¤_ý¬À3W3hNVì;‹ô yМl¾™si培JÓœlìw:éAó 9é·ï£·²hþnÍÉýNBzМ,Hó~÷>z›AsÕ–6ñ>öìšAzМ,IsÞGo‚-­ ҃͠暓…i~¹U´¥ýŸÀF‘.¡9‘М,Nsb‚-­ÍI{H—МHhN4'&ØÒzМ´‡t ÍÉáÑœ ƒ±¥­˜æ¤=¤KhNædý‰tk…æ"=h~Ûî4'Ãú} VÍÓôðDzМHhNÜiN†íûøÅʧyšžHš ÍÉ‚4vïc°Òiž¦G“H‡æDBs"¡9Y’æ¼Á*¡yšd¨éМHhN$4' Ó|ØÇ¤g®òÿœæòŸ“Ê‘͉„æäÐhN¬¼3W3hNÖP‚æÄæä¼éD¸¥As²Óâ‰#ÒƒæWšwš“î¼ë¬¤3WY4G‹~Hš_IhNÜiNºõûèlB:iŽ=‘®|HhN$4'î4'Ýö}t6¡G4G‹žH×>$4'‡Cón÷>ÎmDªiN®¤9‘МÍy ýuÕ4'ŽH×ßbšWšwûX34÷FºþCМ8ÓœX4OÓÃéAs"¡9q§9±¢Ï\Ý•¤ hN$4'š“hN¬ø3Wiz. 9‘МHhN 9yÑYÍý·´iz. 9‘МÍyzúÎÿ NsÕg ]IóÙ»“]'b ŒÂ%q‘°¡%¤±`Ä8D \†0ÏOCHÎÝõÂe~_S½8oP‹O­r-Ò|Ž„æä?¡9óqdŠ]Zš“Y•ë†H×_0š“V4g>ެ~—VOsòG•ë–Hš ÍI;š3O­v—VOsò—–ëvHš ÍISš«Û¥ÕÓœh¹n…ô 9‘М4¦91Ÿg®ô4‡–¤+.hN$4'ÍiNl šCKÒ 4'ãÓœX/4ßÖÒœ´Gºþ‚AМ¸Óœäb}Ð|[KsÒéúã‚AsâNs’sÉÖÅ3Wµ4'¤ Ž ÊiN$4'î4'9ç’³éi¾u¡¹éAóšw𓼛lмß]Úez(Ç%4' i^öó‘­ÿ]Úez(wÿ¦9óQ¬÷]Úez(wÿǦy>ÄúÞ¥]¦‡ éú»ÿAsâLsb=?sµüWP†týÝÿ 9q§9±AhNÞ~]É‘wÿÛÓœ¸Óœ¤dCМüvèª=ÒƒæDBsâNs’RÚØ4';‡®Z#=hN$4'î4'iþ6ÉN=ÍÉ£«¶Hš“ÑhN6»ùH6 ÍÁhk¤ëiN4'ãÒ<íç#Ù 4£¤ i4'~4g>’õòÌUÍÁ¨éBš͉+ÍÓ!ÖÇ3Wõ4'¤Í‹€æÄ™æÄzx檞æD‚ô yМ8Óœ€tá.­ÍH—ÓœHhN4'î4'Ódêg®œh.Fº„æDKó2ÍÉ4=N1ÍÅH—Мhi^º 9©¤99žæïØÊ4×"]Bs4?™Jš“i7“ @s)Ò%4'Aó“q£ù´ŸÉF¡9yyîß!½!ͱw'»NÄ@†K¤0ÉØFbÁ‰q‰ñ2¤I3u.O”ÛɹÔ$ÇÒi—Ü‹ÿ jñ©UåŠhŽhŽ”£9æãºù 9²Ak"^#Í ÍÍ‘¢4?ÙÇ* ù$=-ZôŠiÞIhŽx¢9bs?s5Md”k"N,|hiÞIhŽø¢9b³:sÅУÛË5H'>”4ï$4G|Ñ Á Ó|IМ¡G¹H'>”4ï Ò¼ÑY…Lwšÿ+ˆ@®Ò©…Fs¤fš#a6ŸÍd—–§9B ^øh4?©™æH8›•Íb—–§9B ½bš#š#š#…hvól»´<ÍéÓ‘ÐqBsÌG0ù.m!šH§iŽHhŽHhŽø¡yØÇÊœ¹ÒÓœG:¿ð!¡9RŠææH44ç‘ÎßbÐi43†¢ù˜{óBséü-†FsDBs„¢ù˜cÍÍy¤ó·Í ÍŠæcâv>¢¹¡92H¯™æˆ„戄æHš‡~œh^hެI¤ó·$4G$4G$4GŠÐ|?Ѫإ¦²æÎŸI”БÐqAsÌÇ`5ìÒNÓYSHçÏ$ÊhŽ…FsäHšIC²šviÿg>¤óge4ÇÂG£9r$ÍǤ4¤dsÚ¥åè1†B:&±Ñ‘Ð!h¾IÚÎG²YŸ¹B¦éHw@sDKó^Bs„¢yŸÆùHæ…ætG4_JhŽHhŽ4ßÏÇ`NhŽH÷Có¥–æ}å4Ç|$óAs„A:OsD@sDKó¾~šï’³y¡9tžæˆˆæXøh4G&iþ¯ùXäœÍÍY¤—Á Ñ‘Ð9„æ1a>R^äÍghN"½üã‚æˆ„æÈ!4ïA”òÙ|,L}抧9tžæÈ¼hnZšš#‡Ð<ž§yÞÍG6ñ™+žæÒÒÑÒ|Ð9„æñ<Í3æ#ÛQôàiÞ•¦9ò­?éž<–æÙ»·åƉ À]GE²«†•Œ\[µ` ‡}$ ‹ÉÌ!fãÇg4šF^Um:Æ5=.þ7苯»G}  GLsW%1è!ðêýëC™xÎEº‡ã‚þiŽØŸæ‰æˆ²,â--¿>4Œç\¤Oåî¢yþš#Jõ=£ðßÒòëÃÀxÎEº‡»ÿ‰æ:diž?…æˆgº>J ý--߯sÒ‰<L4W!Kóü)4G”¦>J:¦·´ cÒáIÜý¢9B–櫽hn룤°sŧ9ÀCºö9EMs„Ͳ4Ï÷£¹«*š#HÇ=bš#„hŽ8Vš›¨ªç Í ¤oí=Zš#ö¢y¢¹‰JÕGEáÓü‡æ*xHWõ±Å=Rš#ö¢y¢¹‰J×GE±Ðœ‡ô¾É‹%“Ds™»ÿáÓ¼|n꣢8hÎCúf³ÁD#ÝÛÝÿDóë㢹­J”æ·¢9éÝd£‡ @ú$hŽ¡9âØh^U õ--Ÿæ<¤«&ÖpSQ7y'@s„ÍÇGsĬ¦0ßÒòiÎBº®U ªÉ ¤Ã~Ž Ñ!BsÄñÑQÏêšB|K˧9馉u±ÒÑ¿òs\Pˆæˆ'Ñ<ÑQwõQSØoiù4wñÙ.Òû&ÖC×ÄÒ1D÷s÷_ˆæˆ@hŽ“æãú¨ûú¨‰7 Ÿæ¥„]¤÷M,U @úý=†è¾îþ'š#¦y9¤yú˜Q4Gh* ‘Ž&Ö®b‡è~îþ'š#iŽÑ±Ksõ™ hŽÒÑIJHÿGääCôÉÐ!Bs„ Í#š#Þ§yÈ(š;*¬ ÒG›&/M“K&âwÿ·²Ç×1Üýçÿ&qDsĈæˆ,Ë(š¼`Ž&–EºÞäÕC ÝÍB4GÄEsþŸæˆóL}Í^0HwM, ½oòbSQ7y}Þý¢9".šó/ ø4Gdº>Î)¸ß\ñéxHmšèMÅÛT„?<Ýý¢9b4/Gó:3õ‘Qø¿¹bÒÜÅ\7±Þ¸Meôþ¹íK ½¢{¿ûŸhŽ8<Í‹CÒÜÖGF¡ÿæŠMsëÝMlbÝn€t,™L“æ«ÇhžhîêcA šK¾¥åÓÜÅ|gÓD7±º&/N„!úi¾bÐ<ÑÜÄb± ÀßÒòiîb>Ø4A ›X]}†è>iŽ¢9‚AóDs õó-mø4w1·›&¦‰…ç„›þw vˆîæYš¯4O47q¦ëcALz„Oó1Ò/°ib‘þj‹!ˆFˆ/š#di¾bÓ<Ñ<[˜úX“áÓÜÅJ#]ýâ«®‰õ n›¼@ºš#Ž‡æ‰æ¶>Äœ †OsÄÕ‹B!ýs»i¤£ÉK@ú‹+±»ÿ‰æ³°i~¶@P$4Gtî.Ò/U(¤¿²H7M^l*Â¥ùZˆæˆÐiŽhrŠæ3×(º&Ö¥jbéª>Ü&–««©Ò|-KóYè4G4MÞP44kçâE×ĺ|óH×M,Ýä5HÇ]êî¿,Íײ4Ÿ…NsDÓÕGC±Ð|°WµÒÏ¥€ôõu©á&Ö_X2¡ùµÍ²4Ÿ…NsDÓ×GCqÐ|g/·P¤ŸžöÿÄzg7±TCtš_ËÒ|Í¢y¢yŽúh(š›Ò@_麉¥¯Ké‚h¬ø£9"Ñ|Tâ4ׇ. ö[Z>ÍC¤w›XÝ?¾ÒíÄ!ý©»ÿ‰æçò4G¼OóÑRàoiù4G鮉¤÷M^ AÔ7Qš#„hŽðMójDsĈ戢m)ð·´|šï"Ý5±€t×äµH—¡9Bˆæ!š#|Ó¼Ñ1¢9¢UõÑ’‡·´~hî¢èêÃ4±€ô[ÓäŦ¢nòJÐ!Ds„Í¥9ÿ7‰cšg#š#Z]-þ›+>Í]¶‰¤«ME4ytøC„æwB4GD@sÖŸæˆÖÔGAÑÐÜE&nžn·é0B4¿¢9"šó/ìAs[-þ›+>Í];›&º‰uÛÿ H7Ctšß%š?RÅ> JsWK û7W|š»¸ùy¸i¢›X»›X7¢'š«¢9‚AsƃCÓÜÄr¹¤°sŧ9B=óÈ-ÒOT\öM,‡ô› ÑÍ¢9‚Es„7š›˜/ÕGáÑüí4Gè[¹Aºjb ‰¤£É«)#Gs„ÍB4G°hŽðFsK]sbÐ\fa—Osnáä麉u¢›Xé}“×nºKÑ!Ds„Í,š#<Ó¼]šúXRà »|š»[jyw=çõ÷hb9¤ßŸöM^lºË¢9â4O4·õ±¤ãyKû=P 鶉5Dúvkš¼@úƒäÝÿxiþ{wÛÜÄ EøŽÁ ¦µpÓ@xëÆ›4x’2ü$À¼´†\;?iWg¯Š²Õ8Sçj…üáüƒóá9²´ Ð\WA}¹K¦GcŒXҵћ‘w¤ÃòßýÏ4_ÄFs„Rý]Ú0ÍQ ÄØŽXŒô;béu%3ÍmÈÒ|ÍJ©=rO{MsŽq3bévÄ:Ò#nÑ3Íë¥ù86š#”釢dhÎ1~zæ ]÷ÃŽX@ú+¢ËÒ!Ds„,ÍDZѱ×ôCQ24瘟2ÒyÄÒu­pˆ.Is„Ͳ4ÇJs…~(J‚æ]H'øú¾¯7,¢ËÑ!DsÄÕ4Ï4ç~(J†æ>ÒñæÏfÝ"½yuó€tIšW±Ò<Ó\!~¥Thî#×¥6@úW¢zäm_j¡9B𿙿æÜEQ?s¦yÒg3\—ÒÍuÂI3ò陿Nüp4Gx4wû¡(òg®Â4÷ã┯Kéfä­G¬÷Œôu¦y©ÒáÑq%͹Š¢~æ*Ls?ªáHäyóõ ÝŽ¼T9H_/åiÎ!BsDâ4y4GtМû¡(Hsù»´ašsTÕ°i¤Ïfü0¯îÇ × éºÄò4GˆÐ‘ÍÃÏ$2ÍÝ4ç èŸ¹ Óœ£2ýÐÑ#V‹t;bé~éƒôµ‹t!š#DhŽH€æ/lOsŽ‚‚ôˆŸæˆªéG5Ò#îŒX@úAúÚAºÍצy¦yø ×£9âAQG¾Ò|ˆ~TŒôÓvÄb¤¤oéB4GDBsD„4Áà¦9¢Ðý(È£GOiÎý`¤óˆÅH?0Hß´HÏ4w#Bš‡¿`°š›(ê~ä ö•æèŽëR›!}ß }¤gš»!Góð n˜æª°ýx@©Ð¤Ÿ¤ó?M.‡éû.ÒßFFó¹Ír4ÁàÆiÞö£ ¾ÓÜ©#½±tAøŸ&·¾Gº4(KóyÍówÿh^Šü™«-èÁH·#–‹ô[éFºïs!š#¢£¹àwÿåiŽ˜N)òg®Âôðcd¯K9H?2HŸ´H_/¿ßwei>÷iž¿û/GsÄTÿhÇ4½3šƒ~ŒêËCúHCô¶²4Ÿ'NsDOhŽxhúñ"zzûSÁ«c¤G, ýØ ýÐAzÓ¥{5j—4Ï4Gô„æˆiÓ)õä.m˜æ£-ÒÏ ÒO¤×#/Ñ£¤ùBžæ™æSôcJqߥ Ó<ŒôFºyqˆ!Í‚4Gdšs?¦õ]Ú0ÍÃHŸ1ÒÍÈ»1oþéh‡,ÍQÐ<ÓœûQR¬wiÃ4"ýwƒôc G^ Ýï‡,Í‘Ð<ÓQ–(úg®Â4÷‘þÜ ýÜEúå%F^ Ý?ú¢9"šgš#JÝ’¡¹ôsFº6:F^ Ý÷ùEóLs„GsDY÷£¤4hî#ý Ýô£±øŸXK{ˆîMW™æˆÄiŽðhŽxdûQRÏiFº±VõˆE@ú‡èÑÒ|)DsD4÷£›æm?JJæ>ÒÿÒëkeF, ]¼8Dæ!š#Ò 9¢‹æª›æN?îPiFº±Ì› G«/@ºyÛCôŽ B4GÑ?ͯÿL¢ÿMsƒ;êÓ]Ú­nG,]ÃnG^¢3Í¢9BˆæˆÞÑ<üƒíinc û1 þÜ¥ÝévÄrÞŽ¼¸‰š;!DsÄÎhþ½{Ým"¢< Å„K á*H¡!¨—g‚Pî-Išx|ÖÎOšü-#elwÿœ7X­¾ã±§<šË 4¯¢¾år—¶ҹĊH¯KÞß'g@úvµÛÒü²?Lh®ß` §ùãNý}t(»´‘Ž H_,PòéÛþhi~ÙF4×o0ÐÓ<~7(ùg®š‡‹%^ š` HG•,ͧF4GìŠæòšw:*†æî½³‘~¸9‰Uÿ?æÂT‰ ÍF4GìŠæòšsP14瘌ª$"%Öúu[ S%f4ŸÑ¡¤¹õrA=Í9¨šs¸ÑÒÿø«»Xé¾ÄÂ!¡0UbDóiÞ4×o0°§9Cs7ÒqÒH“¼|H(L•XÐ|š;Íõ ìiÎAÙÒ\FzeôA(±"ÒCÉ{vñ“¼âTIKs'Ð\±Á ašsP¦4—‘Î%¾YòÎ3 ùÒˆææŠ IÓœƒÒ|æJôºÄð¤ÉlV—¼@:þ Ó|iKsׄæû%Ñœƒ’{æJΗX¡Äb¤Ó¬žÄÒáaªÄæK[š»&4ß/‚æ"ÒôPÒœ ¡çK¬°H%_·Å÷ñM˜*±¡9Â–æ® Í÷‹ ¹ˆt‰;{ZôñÁ:ÒQb}ÒqH(L•Ò|iIó–æ”Ü]Z}8_bE¤W߇/±³ˆôÓS|ÂTÉU¥yKsJî.­>&r¡y¿PšË ŒhÎAÉÝ¥ÕÇäH%éÕ÷QuX8D—iް¤y¿PšË ÌhÎAÉÞ¥Õ#K, K^ ]¤yKš÷3¥¹~ƒ!Í9(Ñ»´z¤w1i‘~‚ëèqÒ]¤yKš÷ó£¹~ƒ=Í9(É»´z¤s‰¤ûÅ ga1ŽjW˜*Qм¥¹bƒ%Í9(Ág®ôHç HßœT þi>I„æˆi.o0ÈæT Í9&¾Äzµ>iBä¯ú’H_¢gBsD‚4—7dIs*†æncÒ$”X—ÞŒÃ!z4GØÐü{w»ÛDDxDÂá³|ó x‚‹J!!!mZš†%—ñîñ¹Š­ÑhGþsî`ìÓ¼Òœƒ¤fiU‘î?¼4YÅ—X³õHÇHÖÀ‡>Í+ÍR4ç ™YZe¤'Œt”X³~r‚!ÂŒ] j4ŸWšg\0(’˜¥UGúøÎ%îKÞ8„ž±‹A›æ•æIšsà,­>Ò›f²Ýi²ÿ’×Íмü‚Pš§H%V—Òø-O‚ô–æSc4/¿` d„æ)ÒC‰Õ¬¶Œôî%¯ï°€ôÜ] º4 ¹À™ 4O‘ŽË @zwø ”¼@zÞšD]š Ð\ภTš§H%VDº/±Â8áH%oÎÀ‡.͇=£¹üqAá 34çp\b5XÌ‹qBF:ü‘±‹AæÃžÑ\þ¸ xšs¸®ÄÒQb-Œtø¼pÔQi®s\P>È Í9¾„ HoK¬Æ—XŒt ö›æ#mšë”2CsÇ/M.±éó9†ÐûLó‘>ÍõïþË™¡9‡é\b1Ò}É¢—ìbP¢9BŠæýºû/$Hs}¤£Äb¤·%/&mó×$êÒ|$Eó¾Ýý—’¤¹>ÒC‰ÅHGÉ‹ï#wM¢.ÍG…47t÷_>ÈÍS¤û?¸žÃH%/ù HÏ[“h€æVîþË™¡9‡kO@‡qFú:–¼@úñqÎ.4/½``Ÿæd†æ®}iòèý_HÇ8áåH‡?úMs—Ò¼ü‚A¥9™¡9‡ëvš0Ò¿Å8!ÞÎ×–ïbÐ¥¹Ki^rÁ Ò< 2CsJ,FúÓXbéÝüyñšD]š»Ch~Tiždæ)ÒŒô®ÄZ¯@útŠ!²5‰J4GBóóJó¤‹ÑCé±ÄZé]ɋѨì5‰º4w‡Ðü¨Ò¼ébôÐG:—X@z(yãOôü5‰¦i^iÎAfè‘"K, %/&m+Í+Íÿd„)Ò¹ÄÒOcÉ ¤Û ù‹4Ç÷¡$1K«ôô¥‰ÿ>NÛŠs }öMhÃmwÿ³woËMÃ`€‚N%.”ãp,0ÃK9mÅ´nZÒÇG’ÿµìrÁ…ùó«ÊÞè |ñ­ÖZSšÇèÊé 4·Gzœ¸ÒÑM,øcô‚-ÍwR¢¹Æ‚9ÒhnŽtbe¿i"!šXø>ã li¾“ÍU ì‘®@ss¤»«(»¦‰„X+·ÞÙ!]. Ç.ØÒ|‘Í• ì‘®@s{¤OŠˆôøæî2,|ÿgÁ€4W[0°GºÍÍ‘îŒ¤Ç H—ý+𓿠fHW ¹9Ò»‰Û.Īt y¥é>‚椹Á¸ 9Ò#r@z ±€t y¤é®°`+ÍíÇí‘ Òcˆ¤/»HWX0ÈŠæöã‚öH× ¹=ÒbMbÓı$äÒžIÌŒæöã‚öHW¡¹=Ò¯6MBS±ßÄ‚?F/d@óÔÇí‘ Ò'W›&mëM,|‚AÒ4Ïo÷_é yF‡û@M“bé3¹D'Í“ßý·Gz$@6H6Mb-ôò¢Ú®°``JóÌvÿí‘ Ò?÷‘Ž HMw| ¦4Ïn÷ßé @NHŸé…GúÚ‡X@zUõ›î×r÷—»ÿ›D:#Ò'+yÓH—&ï M÷k¸û¿«=.Hš‘d‡ôõz¿vH¯ir$!ïl¤+.TÜýW ¹ÒÏòDúÞž_ÏY­Ê龩Økb…w+wÿIs"® »ãÍÑàíÜý'͉ô°žÓCzÛÄ:r!/Þ–x hn>.Hšé>ÄrÒ%Ärë@:.Ñ hn¾ûOšé>ÄêßüÒ' ¹D×X0HŸæ¤9‘^é1ÄÒ%äEÿj{iNšé1ÄÒMw]š“æï’¦9‘Þ{ÓH¯äwtiº+Òœ4—4͉tYωM“bÉ%ˆ ]æ¤ùÓ´iN¤_]Ï9Æï„³~q1‚椹ւþA¤ð¿ƒì×ç±i"!Vlb…’¢Ö‚A^4WX00=ˆô¯¥ÓĵÝôbéð¹Æ‚A4W\0°?ˆô¢<<Ú…Xg@z#—è Ð\u\Ðþ Ò‹²·C, ½ip‰®0.˜8ÍíÇí"Ý…X@z÷0ïH÷— \¢+Œ &NsûqAûƒH/€t ±ÎA€ôAÓ47´?ˆôbéa$,­éšã‚f4ç¸à¿"=†X@ú·mˆÕ4@ºæ¸ )Ííwÿ?ˆôázNx¸:¬w¢©JŠz Š4çîÿøƒHGˆ¤/ðfh,hÒœ»ÿã"}Ø4AˆUU‡@z[âÕIsîþ+Dú•¦I±ü:a¤ŸÊªA‚4çî¿þA¤÷›&‡µoš„uB ýôT.Ѥ¹þ¸ iN¤Ç¦‰±Ú7M€tòâÝ`\pšÎ¸ iN¤‡kîB, ]B^iºo|\pšÎ¸ iN¤Kˆ‘~0ŸIÈ ¤ot÷šÒî?iN¤_þ ošéíï„~X Hßèî“Ðî?iN¤×õy±€t×Tôë¶hb…wƒã‚ÓtvÿIs"ýÙÛµû@\ˆ¤w¿¢‰lÍIs"݇XëºFÓd~r¹Äï„@z[âÝFš“æDº±ÖõDC¬ ýB.Ñ3Ûý×§yß‘îŒÞC:ÞüÒCÈ‹j»úîF4Ï$º"ÒÃÄ-Ž H—ý+ƒÝKšÛ/ØDz¹×Cº„X‚ôEØ|Æ%úµÝýÿÃÞÝ45íEag¤8Z_¨þ«(£ÂÇ…–‚À€ —‚‚M mŠ}·äã{Ͻçä&8ã]dÚ¼Ü'‹ó ²ø=ç$OšûÔ`à@º±éqq_ºçÐûŸÍ=k0p ]Úsì¥ …¼æRQšW³ÁÀ=€ôù*Ò¤_êÆÉ?GuÈëͽk0p ]>¤ëK·Û ÒÉÕ£9ÊÝHoòç éúŸXò ÒÍ’°z4G¹ {éMþD.!VÜnû€—„å£9ʳ ½ùaÃVÜJˆÕ»¤«——èå£9ʳ ýcéöÒDN!// Gs” .aéMAº½4¤$äe¤Šæèý_êÒí?M ÒéRñ†B^¹ä-ÍÑû¿Ô¤Û+Fº„¼‚ô|hŽÞÿü.!VÀH7!–.>°HσæèýÏé6Ĥ닋é…нÿ@º ±é:Ä¢7‰ôÎãмð½ÿ 9~÷Ç£b¥‘Þ!¤û×ûšééKb¥Þ!¤{ÙûšéöÒ$±‚é]Bz‡îSï?h.H·—&6IJHÒûŒôÌ4—š—né6ÄJ }LHï3Ò³Ò\h^º¤G‘±&©K“Á˜Þg¤{KsÐH+nSH¿!¤wé~Ò4Òça8iDbý鵚ß4ßö•æ@º2z¸EÉK“€~@:ùÃgšo{Ks Ûs’HïÝAºYúKómi¤S{N8I"}DHÿ#]–„Õ£9 ÜH§ëo¤·c¤÷ñ’°z4Gƒ{餯ÒÛ‚t yy‰^zš£Á ûÒ§I¤›——„%¦9ʳ }NHH·!/#½@4G¹à’~{éWò Ò Ds” .{éé6¨‹C^Fz½^š£\pÉHŸMšÓ$Ò/éǼús)û~ä@s” æ?€ô-ú¤M-ÒÕûÑR/‡¼tÉKKœhŽÞÿüNí ‚t±tÈkB,³$\ÍÑû_ü¤K;ˆF:ÿÓD½ ׄô®j€–%áh^†Þ }5œ1Ò# ±TÈK!–AºZ‚ð’0ÍKÜû¤ïÒMˆ5RF¤ë——èh^ÞÞ }ç6ÔHõf‰K#=uÉ›æeëý·4ÇÒéÒ¤1Q!Vh/Mèk,!oMî yùzÿÝ4ÇÒ“!Öõ”N!‡¼Êè‚tÍ34˜æ@úí|Í„XAÐ&¤›K, yéŠnšË¨Í1€tn—Zé¹Äê'C^ƒtò¹“æ2ªDs ]B^{‰eC^}©ÈKÍeT‹æ@zhB^±F|©x5Í¥¢,A¼¤9NïGÄ!‡¼-þÜV¿²ñ’æ@º^‚Ðyƒ8ä¥K#BÞVj R)š»ß }Öˆ/§7]òšk(Ÿ£×ë‚ôŠÑÜ]aéêýP!¯|nÛ¥·¥B,{É[«óVéhž½ÁH·—¼æRÑ„Xá)©©Ç\ò–‚æù6éº*¦bC¿ê™$.yêwqäMáú:ER‚êºâÂæ“M^Fhstª¨{°ùI=oö÷÷öž~><:úÿôôøøàääËîÞÅÅׯ‡?¾??>?;û¶û‡¸7Áê8ÞÅJüÙ ¿½––¾â5w*}ªzjT ‘™íå5Ã[[—ˆ4¹ó"f&~šá«þ†4Nûõ³â6 Äqýy,w&X!PH/Ù9|!øél½\4˜h¬µÙ>8DTiO !Ä1 É)c.k–\k]*2s æVø+yáßâ)!"[¬1.;ç†JY:*ÞZÒŽd%Ĭø)@G‰¬5Õ0¼»Fø•‡TTH¢¨ðIn*„Ä`ZlW± Ž!‰Éîƒil©¯#a¬¢^RKׇRÁ aÏÓ§/Ãyòžœ3æ ¹Z×H")z®”¹ö}ð1ÙHö²D8ý…Á9.ŒÛ[Cƒ8Æv}ø÷|Ãqk ¥B'Ý󡶆¨ÐaO™>ŸÇÉ®ÿtpìãQQRˆ(h¼?8×û£ù(åþùª.› @‘¥Ý‡>dí¹éCFŸFí¨L߇¦!!ñÑ?P)¹çC¯ŽÒó¡hô#*¥B‡|ät^/!fòÃ6$˜ø€4$ÈvÒª·NZ—wê&rÌ|Eï¢d1…ÏWà >úG+í£õ÷¯W>ö0’–F£eÞDJïh…ˆ”*>þíêzìQ>š€œþ°cw»mA†ª(ÁRY³0е©QªFý9ÌýßO?f?؉wÝöÀ‡Œ”W‰’Ã<šËÖäØ!c3b²ã-ÏBJê\’‹[óJ)ñM’i,qÁÇlsÊyè§•:Ò‘¤”h§0óš´”<\"6)ŪM’’¢7IZŠ>Í“R‚¿!ï¼(É®€"QRÔõžÎ4“C¸5—åô˜åôÈópzªÈ:Ì’*%å¬òËÄ’8j§üKŠzs (Z }Ü“|èx$Ì[H@¢6‰–²çð¹èʶ6yWUÕpÂØÇ†òúž\²qô‹…RøðbæíŽ.†fî'sþïp•7«ÃúÕ!ŸAqkl*cLcŒüÈ3N¸lf"8 3o RIÈ…¡䎔H ókMRÊ ’ç(J i¤¥0{Ouq|iûº6@‚ñ©0Ããb+Ïe‘‚ɼ”¯/œÒ+¦YþÛãP&t%†4ø©n¿¬yKu¤a0kêÚÖFýB0”ç,9a&FI•• eHJ±_·$¥¸;R¾Ãˆdú)oŒÞ)ÁÇï›ì9”OŸŠ¢{)K ÁHFƒy\D^à¢KÖ‹Ä-\ÎøR·ýä#\â\ŠâÁ1 úU–USA´m=´¤,s~‡P Ó¬1ÈÜÆu‰ a‚”´™^IÑ;E›y˜¤”&NrVR~ÂH2Ï>‚„¹¾Ãˆ$°ç;vÏ›¸FqÜYÛº°äÂ…%Ìøcã yA‘mÒÞOrSE€B>þ=sf< ³«ÕMJNñDIºŸCDá¼ZdJ5VäXû]iš¶Áº¦±èÒ)JY¹Üt–ÒO’Îyœž4E¨,¶ÓïªH£$ (ÈÓCê:­ëZéÔÌ&Çr‘”.«!Õ p˜å ¹ˆ“ߘٹ¸šÁs ¾rél¨Ç¦â—¢DJî•Òˆ"aˆäŽ)°ÝñA—ñÞ‘B$6¯.DòÄ̰›Ñ%ù“€k‚Ãásî¡dþ†QÊ×eš¤ImnÊðø¶d%+2ŒR:5HáMaúQhÆÄcoK*ÀÂÐhôŸÕæthX«@„Àá$­G Ó3ÚL $L¶!'¥djleâúª|RˆÄf$E.ÉØi˜¤âƒ4˜Òïƒ4˜—Q€äÇŒ”g ù]® ÞƒC|øüÜG{( Ø—dFJ†œ $æÉ-Ž£Èœ“0´R @1RZR0º¯1F¤xÌ0ÕÆ¾Ês¦ÏÍßjyY¶hõéз"\»Ö§ á«hÌÅ+etI&Ï\.¥W ¨ÌòœÁ%¦Ú³¼#'eÇh)$·­M÷ØaÌ}1?SŒ!’_.¯6#)@â»$<"È5Á¿ï§÷÷ ˆPbÑû±§è%Éiøx#Hô9YŽ`‘\„fL¦fÒ³㾜rÃaC €Ø(¢(Ž×±¦cfÓ†ÓIä’Àˆï’(ñA6¤Á4âƒ4Ò°Ù‰yæj[ï%áaìq>lDJ)>HÆ4˜¿pÍì[o"I…c…оÖCI<ìƒ%cfíµ÷~ÕJ#íî/qÆ7øRÅPüü<®Èf•€ÇÓ4ΔøÄÌHóö)âä©Â4^ÍfOOƒ É€¨®Ù”}±.‚`,I¥’ðçE>C &|ÎU’~ïŠa@j8@liMQ ‡âLkʹ†ïð¿~œ‰$,È£8cQÊ3˜âL3%Z·,“ĦØ$ù¦ =S ‰Â5…‡ˆ7I0D  Àh’„M‹?€mZX²RÈ ûÉd<^dzY3›aœ@—]Á‚)E]·’,E’{^·ZI—%Ÿó¢IúW袀3À3ÅbÈh9íR¥N ¨QŒ²t'É l’ðñ&‰mZPC5P54¸{“j †j 5j( †j(,‰d¶-“É‹$ŒŸfIˆOI,I½ëŸÓ ÉÉ=ç‘QÃç"à2ì\—%&IQˆ$jŠÁL9MšbYœaw¹=ø!ÃÁüP ñ?ž¶iA Ô8q5P€¨¡€Ô@ Ô †jœÑÁ€¨¡pBz 4],–*Éd|Iv‡Ì–FËéËMV£!ä‰ ’gNêuKVn+˜A77³H²)Äcæ3B†Èr:ÕÞpF—^ †È© ÁÒ$PCpéN’Òü(:&IdJüï0IàÇÏÚ GÜ fÐÍø†Ï,’t HÂzàZXB:û²hCÈì©ÔBu¯j´C€ Qc+w’ 6LqžVwL‰CH_üøú­ ð´‚?60óÀŽhN±?6ö+ýS2?êvˆDáš5QEâ^üƌĦhôø2¤÷?r+˜D}â3f˜.4§Ø~ÅgBÈýT›B ée"Å™P¨*w’8q¸|AsÎŽƒ3H”Þ$‰*3  êrÌ­àÏÍ3èööÓ„ýŒ_ä éwÒå’wïWìB¨GDŒpÓ[!®¯Õ’Q\w'‰{ñ[š›ID!,š«»·‚ÀÇm3XÉí- ¦8à!rÍÇ߯0?ø Æ|Ê ‰ìW \g¹“Ľøõ‹‘{5ðÞë¸ÚŒæêGnwEÝ.àÇë`I8„°!¤×á’w}'û•– +)AøØ~ÕçOm~@ …µ¼h1 ’¶iI`ÉR@  ˆCz4IÌCln3~¼¤Ü{û+\òIÊB éD,Y ,Y’ˆ öjPCaqݽ⮦(úæGn÷A=ðY~êö+„ô§ÒѤ¯CH¯æ|îYݯXݯÄ2? †jþuÖÒ®{Ýë,¨¡ˆCºûr9ÔäVpOdA¦&IŒîýj.÷Wøaû•– Ô°Ý×½£Ôuoêé,ÀÞðp¢G?·‚û"ƒ§"IŒîýŠîW|¢ýª"€»Ît\g]È»îm÷º7énôèÿR­ pd­`ÁM@’É-îý ~Ø~U0 @‘µwÝ 5;„ô¦#¤[ô¾¸Ì Ï­÷+þÈ~U¨PÃBº"Ò«TH?w/±Üß}3?ŠÜ ¾ôS?$®O¾ìë°_áMÂ¥¼?´ÿ˜©P ŽK,~(¶ éÀfH÷~A4ý® "·‚)dAæ€øñð€b„ûs}z‘B?ˆ7 +ÖÑcÚFIÉz¨P çkïg²šä3Y¿Ô/ˆ«Ì UCñ?B¾ñü^’²ýŠíW¥  é‚TH_§Bz♬÷ýÑÜ fÐóù¶Ý¯øcûÕØ†ˆ…tAWH!]ÔPt…tà[üQà€[Á 2?¶Þ¯¦SÛ¯ÆÚŸÇ!]ÑÒíB: ée¬†!·‚oD©!´W»Ÿ¤:¿–÷×a¿ªžQÃ\í¢úÐ~ÐBºwÉë7ék÷I¨¬üK¬èq÷TôÈ­àÛ‘AðC«Tç¨>P£úê¼’è¡ù–ˆ¢†…t…Ò#?¼è±LE&=Þ³>V+˜Aì‡UŸÚêㇶú°W£4š[ô§¢Gúu /šûÑ£IDCj#h3H£ÇƒF‰æÔFóªæ«6š—êG*zôRÑ£Š¢‡ÍÝþ¼tþ¸Ç´‚Àᵂ¹Ih.ÑcÖFZ£GÍí©+ø‘Š”ŠU=RÑ|°C4‡‚Ü ¾´ÕSWZ Zô(SуRÑ£r¢‡Í-z¼Óßr+è!ƒ¢§®4š×ÍßÒ ÒÑ·‚Àñ·‚´e+¸x×V8¼V0·‚ô-¶‚å‘´‚‡ÿÇ=2è#´‚@n÷@åVP[Aô­ Í®Ž¿Ì Ü æVðudÐ+­àô+µ‚¹<¨hžA¡r+¸2(·‚¹|d­àü}ZÁêè[Aà8[Á :¸VÈ­àa ƒr+˜[ÁבA¹Ì­àëÈ Ü FÑCñµZÁÿ·w/+ a…K$¸ÍBpáB0&^Fc¼‹ ¨¯¢ ‚hPßµ¿™ÈtO÷ßgsÞ¡ø<äEWÁy*8õ©‚D¨ *h‡¨t\E#†è¯ >V¡‚#T°eˆPATÐQRür«‚3Ÿ*H”½ QÁþB„ ¢‚vˆçnU°A[†(¨‚¨à¤n$Jª‚ß¾TÐÿ¹Qö*8@û ‘'£‚‡ÈVAU¡‚;¨` Dݪà«+D‰zSÁu*èü܃¨(ÜFӆȓ ‡ÈPAcšûSÁCT0"T´CCQA/Óœ”¥‚[¨`ÚT „´TÁ*Tð\Q<Ü@‹AQÁ@ˆPATБW!r¡‚¨`œ_/ÐКc“MIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/images/qtlogo_small.png0000644000076500000240000000673212536324427024652 0ustar philstaff00000000000000‰PNG  IHDR››uaéŒsRGB®Îé pHYs  Í›žtIMEØ  ;ޝ» lIDATxÚíÝyÕðïëî¹—=XÜe—]CAD@Q.ÅŒÔx%j*Æ#©DMŒ$P©2Æ$š2R‰e*ñ­Xj©Ñ2Á$å]F-+" rì»°×ÌÓsôtOïå]ÖzP®é…žß·Š‚ª÷¶gæÍ‡÷^¿~ÝË,°J‰#è 4SsPJ Žâ%6Gñ£xŠí 88ŠØÅSlŽâ)6Gñ£xŠÀQ<ÅFà(žb#pO±8ЧØÅSlŽâ)6Gñ£qØ <Ö¢¡?”£Í¤Ø4FÏ…ÌjêšÂᙳ*¢M“‘PX XÏꪕÐU{@íÒ{z[´žT§‘êoÏe¬œc—+6w´ Hi~íu¢:´@8óίÄü•eÀ²„(þcÜ–¥;©\ÒJèªÝŸêÖã½­ZzÀPÕN]3Ò¶YØÜÑ4þÅõ·°ÊÀ\n ÌšS¥Kk`YœÛñ¸#,;ϳfÎNkýVOªËèÎôä-ÙÞÞVMm„¬DÇ%p_•U³¥icnã\ ‘qý uˆÅd8Ž8á/ÅáØyž6sv:ÛgÅÓ=FwºÛèïkÕz­šj¤¼A¨”è¸@G)ö¿¼>2àMÍ!TVÊ0MQ’×’d&£rM0*×TŒ M?£ ¸pLƒg¬œ2ÒvROÚýñV­+ÙžëMuééä=+ˆ“ûª„¥ÆÁo\ ªJd„·à%&‡¢ru(*WWŒ M€æyU ››¹~«ã…;·>~ÂЗøó|4¥ åYøà?e™lïŽÉŠŠÔNèGöà8JɇÑCÁ Ð÷ÇYf$\Þ€iÙe “À‡²¤ ‡ÀÀʬú›Àí˜Æ€`PB¼WÞ½:Ϊ?Ëç^Š©ãOG4AÞΡ'ێ퉰wàS˜ÜBHŽÊ$€s.$0Æ|‰À#4Y–°v}5X}ëj|óÂå‹\h¼zÆhíߊ5;žÀ§ñµ+QW]w „*È[9!À˜äÉg‘F¡ýÖXGŒŽ°7P>ø0ýÛ¢XóËçqÃÅš̴Ú9XqÑX6åFèV¶`N¥l<ól΋þ¼â5üzÙ ˜X},'ï[lî0ìÚ­aÛæ,žþùØ=yº«N:—ÅþDøˆË ·Ì½ç5.…a熰=q°"Xtæ"„Xš*§!.¸¯±¸#>-K`íº8®]ò \µà2W}pÿ»ßÁ¥«–âúßÿ©\fÄÊŠŒg­@E° \8€ŽÎ&ŸˆéMSGgµg”Û”À}ÉðÙ¾_‡>Ü}Í÷\å™üžÚô¨N/‰âŸë_ÀŠ'ï/¨ÓX9 ›/dºi¢moó¦žP 8\‡ƒC€Ã‹eé$hWw˜žmç®4¦6OÇ…3ç»Ê7w¾ƒ¸ÖŽ‹¢jLó6á¹·_Ak×¾‚zLX޶½&mÍø®[rE!j6xŽh9æpègl®4]ç8ЙÅE³ÎG8rÕÙ“ü Œ ž)8Ž@cC¦‘ÂÚí› ê^u6¶®S0]‚W¯ÁM—\[P~óÜ{ñÀ²—pßÒç0³n!LÇðÍÒ-‹I 1d26xÆÆìÉg­Ó¯uAÂÆ9‹I@€áó-õÂÁ0Ιr6,Ç*zœÚhj£ƒW¥ÆFÆÃ)aï&díL=^³Yà&7Lt•›Ž5ßi›¡9¦`wç>Wý…3çBÍ%a˜yˆCvd o¦k']ÏF=܈a4¶%„ µõ®ò¼­Ã°´‚Õÿ@@B4¢ ¡ö»ê_½l6n{ä.üëÎ÷±õ±×Q3\öì–? %±•áô™mÉá²ÂFàÀÕl(¡(ÆUŽu•ÚÜ‚#œák B ®£…‚r¦{¶&VÁl$ÓIðCz¶¸¾{²ëÔÃP¤ d(YW§œÄ-^Öà,‹#aL¤ÂUæ¢ÈÜJV$X¶.8¤— ‚rS ¹ô ° ‚RdĵÔÒ©ÒIÞæe;‡ã\@’$ÈR‘kSB%!I Žã€óÂR™)øFm.z ´{y‚cÇö#ƒ'âxU¶ØÊœ$18Ü]ìÖPV|Çç²,»vqpp×Y(a#p_œ]*ò–‰Œ¡¹çfL^Ð-˜ËqY’!²GÍ‹«~ÃVVà¢Qv^G2£º!ÊAÈLÆÈ™›€ms„׆HÃÖ†ê2ÂFàÿ TU*€GO²×U”È*†‡FÆ/Yåó±°{Ãd&Ÿôl‘ß°ùœ@,*Œc¢³(¶ÊÐØ‚¡Ñ¶rºÆÚ:Wýþ\7„à£~¢ Â߉oÁq.«0ÃÎŽ=E댌Æ&I †ÁÝÆ™“]uÛÕÅ—PàíªÒ)þ½øç@4&c\]›wZ´NSÕ´á¡‘1@ÓÀf4nŒÔ­,º³û†® Ã&À0hQ¶r'K Ó¦TbÓ®­ØÝ¹×U>«~1ÂJlð>™aÿ •uX2kAA½ÖOЫuB‘p!\K 㢠èK'ÑÕ“·”òf+É'ßïÀ9ŽÀÔ©1Ø¶Š—?ø·«|bÕ Ìi¸9'…xŸ†-;ñÃ+n„Ú›Ø7v¼‡Û¨ˆ ’ÙTAùק݆KëWàŽÙ⪷#o„­ÜÀ9Ž@M‚é³jðØš¿!‘rïæ¸eî=¸ þ´o¯ÆO®]‰¿k®¶¹óm(,Œ†ñaX9wm)¨3~ÌDüôòŸáÊùKQ«.ézœŸ°ù0~-âÙ6Ü÷ôC®òªÐi¸{ÑCøïïâÑÿáàÛƒnãïÛne!8C]}ÍÓcXýâ“HiZÑ×SõDI聯῜¿ —Q¹ŒI, ¦‰a46†\ÏfˆF$46ÆðÒBBŸSx?‚$1(‡ìæp¸g>Y…o"¬Ä†O"¦Lƒ®Ì~lhÙ€pŒ#eucoò3lèx¯~þþ×õ.éà•.¸åå®÷NÔgVàÏøf{’e 4Mˆà[7LÀŸßy{ãm¸ÿ»+1±Îý€!!võmÆ?v<޽›‚vð W–‹Ö#—oÅ‹Ÿÿ²$C ]7U¤9XҞͯØ|δ8ÆÕ†pýu°ïÀk¸lÕ˜=~ žYù0¢¡/žéÑ—ëÄŸÖÞÓ1†{´C{JÓäPXJ‘›hJ þŽoæp¶- ÃYgŒCC“W^›[>)¨sZ¬ g×-€akÈÝ œ„­LÁ Gss•ñææ÷]un=÷W¸yÎ/°°ùÊ!+ÇîÅ1¹NØÊçƒE=cf5ž}ûU×ºÙØH=®šq;–Ÿy+„Žg[¶Ïì&leÎq€Å‹Æ¡×؇•]U’Q1`÷}›héÃË"G²ôñeÃi8,aÚUxÛ¬Û¾ cOC$€ 9+=ŸakÏC»zþ ³gWzã‡i{ïD~få_œ¥Ú¶@ELÆ•Ë1ú}|Æî®F@ Àrò0cø&棛 ѽ=³î­[^£¥7b8p 2 `òòæàóÙŽäi’ܶ¥;)]µ¹¤ÕŸê6âû7«{Û7ª=¥x¿åŠÍ7à«;lOæXÜ0sNÊÔUOY©n£§·EëJÐÕþ}¹´©yó ×ÊÛè‚‚Ÿè{››–ÎÓù¬ÌÄó©n#¡v}ñ™Þd‡žuÌÑÝ^îØF\Gî?bRì†cYplnÚϘš£fù®T·W;ŒþøÎL| ]ÏÚy MØF œØ¦n„Á38½â¡Ã̜ͩ£êªÏ%­T§ÑhÉv«zJí44¯†?Âæ‡®5½yç)û‚1ß6Ò–“î7 ÕîW;žÞ=Zwò@.5Ц§ÍSì—Øv¹‡Œ¹²ô@Â’D¦&pϦp ì‡#lŽBØa#p„Bà#lŽBØa#p„Bà#lGØa#p„Bà#lGØa#pÔ„À6GØ(ް8ÂF!p„À6GØ(ް8ÂF!p„À6Jù€#lް8ÿ#lްQüް8ÂFñ8ÂFà¥(8œÊà#lÿ#lްQüް8ÂFñ8ÂFàÅà#lÿ#lްQüް8ÂFñ8ÂFàÅà#lÿ#lްQüް8ÏÀ6ŠgàÅ3p„â8ÂFñ a£xްQ<GØ(ž#lÏÀ6ŠgàÅ3p„â8ÂFñ a£xްQ<GØ(ž#lÏÀ6ŠgàÅ3p„â8ÂFñ a£xްQ<GØ(ž#lÏÀ6ŠgàÅ3pÿ`Óß(_dIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/images/trolltech-logo.png0000644000076500000240000005577312536324427025124 0ustar philstaff00000000000000‰PNG  IHDR¶².ïêÒsBIT|dˆ pHYs b bbÛÏŒtEXtSoftwarewww.inkscape.org›î< IDATxœìyxTåõÇ¿çޙɞ°ïvQ¶0•¨EAH‚ ZµnH&ŠÚEÛÚö×Òhmí¦­V!Á½ÖV£ Ôâ$!²ucßw’u–ûžßY˜¹÷N¶H€÷óÍÇÍË5îZÞçuk[yì›]mêP"‘H$ç-­Rlñ©}» Ÿå6bº àK›ª›ÐÙ‚1Ž8ôMŒQÈršR[£‰ê Q^[£ís׊¯<^¬óø<«Ö.úö›33¢D"‘H::-Rl4Ô˜Êã1±ÍÕ¿èÒŒqÄBUÏFkO­•ZEM8àqóW·¶ÞãæÖ>ú¿í"D"‘HÎÍ*¶˜™Ç©Ì9 $5×Yt¬ŠI) èÙ×6ÉÇ#¸ªBTÖTk‡Ü5â¯G¬÷úÔ×àËb^Ä¢½å“H$Iè4©Øâ®MœÂk¬Íu¯búœ®mžGkO|>æªSZuM•8ìv‹ï¼þBóЉÿ÷ÙêEìkoù$‰DÒr‚*¶ø™‰ÌX  YM¥`úœ®ˆ7ÄŽœÓh>FU¥VSS%ŽÔÖhÛ½^|áq‹ ª V/ÚUÛÞòI$‰Äˆ©b‹½6ñ‡Dø[K:°ÚW§vAçnÍuç B0*OiîÚ*q¬¶Vìð¸y£×ãûä$”·.ÚZÙÞòI$É…ŒA±ÅÏLœÂŒO`ºoÆ´Ñ'1âLÈvÎÁ¨ªÔ<ÕUÚqw ïòÔŠMn¯X£1Þ_»hëÉö–O"‘H.[ç9ƒ:iµb‰-iÜo`.¿¶óî|¨©Ò¼UUÚIwØív‹-ÞZþÜê®~ïÃÇwioù$‰ä|"@±ÅÍøo€onICE!\wS7Ä%œ_ójg›êjá«®ÐÊüŸ{Tß{k~õÕžö–M"‘HÎE[Ì5‰%-m8jl Æ&Ç1Á.tj«5Q]%ÊjªÅ>O­øÊãÑÖišxÿ³E_×Þ²I$IG¦Q±ÅÍL| ŒZÒÈb!̹£¬ÖöY€}!£_|îu‹"?\³hë¦ö–M"‘H:Ä̈Ÿ1xCû -퀃#1uz§3,š¤54,>¯­ÒºÝâ[”ÈÅç‰äB„˜q3ü …-m4ùªN8,òLÊ% þ‹ÏkkÅ·^·VâÊǪزF.>—H$ç#õŠ-q€¡-i („îì«Mº!Ïe4£²B«©­–‹Ï%ÉùEΔhÚî–6è3 ÓfÊÿó!U¢¶ºJs×úvxÜØèõhŸœdúH.>—H$ç7#ñnf~¡¥ FOˆÅ¥›Mð/9Ï0[|îõòg^æäâs‰DÒ‘ ˜‰/ó]-m0ñ²x »8úLÊ$9‡`ª+5ou•v²¶Vì:ZV;»dÑ·ÇÛ[.‰DrábQ½[³‡vTô¹—½_ræ bâTkLœÚ@ÏÊM¢©Ø$I»¡0¸GkDÅÈL#‰D"é¸(Z¥Ø"¥Å&‘H$’Œ {kÈl#‰D"éÈ(Zµç ‘Tl‰D"é¸H¿¢D"‘HÎ+¤b“H$Éy…Tl‰D"9¯ŠM"‘H$çR±I$‰ä¼B*6‰D"‘œWHÅ&‘H$’ó ©Ø$‰Dr^aioÎ^Có¦{¶Y­ˆ‹‰A­¯š›IK$ÉùÀy¥ØºˆNEQ@ŠT¤‰D¢çœPlö¸±æÃ2°ßs<2RÅÛ½ˆÉ#.o?Áü˜Ðç*t‹î‹çŠFYí±°öýõÆ*l*ª(wÉ@|ð‡÷PVs eµÇPVseµÇPZ{¬¾¬îsyí 9(‘H.(:¼b;~Ø‹Ï?Tj aé/ÿÔa”Z‰.Â/®x‹‹~ŠÝe_…­ß£‡sxŽQã¡F¡gìôŒ´íG;ßÀ›[ž ›,’:2–;†“‚Ÿ2¼ÙéEœÉqùŽ;À˜PHX—ZôÊ™W"9—èЊ­¼Ô‡‚wKV“<ñÀÃHŸxc;JœN‘ÝððÔ%xyã£(9ðaèrr×sÍøkCïû"« År¸´ò"MQú¡k8ÁPvø:GîziÚêðû›A%¥€pÜΨbƒ@ wèÊ"HÅ&‘ÔÓa[u•†Õÿ-…Ǹ8ú'?¸ Îé÷·“T-êF`þ„Gq²ú0v–n ©¯²R¯áØ"¤Œ¾*¤~Ï2–;†CÁ ¸ŠÒ€ë^p¶òjÎt%?¿$­0£½e•H$ƒ›+rÍ娮 œš2ñ"üöæÇÛI¢Ö¡Š{’~‡hk\Hý3±ÖõïUé°ï$aÙ︟l" @· Õˆø³)—D"éØtHŶoW-Žéæ•,VÂ3÷þ½$j]£{ãcRÇç×&Œ¼$¤>Ï2ó’3Àx@”Éá2k9»RI$’s§ØX› + å©WNmQj¬ŽÆø>)¸|`Û—#è<\5öÊPDêðÜ·Ì>˜‰ÿarh]VêIì–V4%;­¨—j±u ÿ⬠)‘H:,ΟµýëjT”fÚŠ¶à©{ÎŒµ¶áàj¼ôá xç£ 8q²V«‚¡{còè$Üý½ù¸¸ÿ¥!1ï’cÇÉÍ8pjG«ÚUUTUί©*aÆøÔeêÈøå.[uŧ4Rç>?gívÿÂç®û¬@©Y?Μ$«èe© ¾à£¯ïËçnhÕZŒÛW‰‰®˜ÀLý@ðBQvô‰ü²ugtš»òÆuŠP"&Bˆžu¿Oᯗ¦žqËó¾eöÁ>I€¢©ÐöY#Ê6?=c›»¹vÎeI½…ªU€þ çïŽì¹%åÁÚÜ“;¹‹Å¢`ýÀ°Ê¨ÞÙ³Jއ÷¬$s:”bóz[JŒÖÚÝisÐ%¶kXÇÚWþ-^ÛôD]X~à¸*%ŸûphŸ[¿Þ­_ïÇ‹Ë]¸kÎlü宿7îÐ¬Š ÷Lx ®¾µUÙI̬µ>½Ú¼]G&+‹k¿Ãp€ñøóiJ-™yöÛ˜è!ôTG)Ì6& XmV8]ŽCL(ð¹½?lJÉee‘rpœýQ™Ù8‡Ç4ƒåÕßq>@-:'çʤhh–?|lÙ™@†€ÂМ.û…PY:gÝ×-ê°…däÙÇ‚èqìP©.ð¦nT¸=]N8ó/DXOþÆLÁeºì³ãRÕ«•†­?ØT8]Žã ^–ZÜš¹Ü1‰üXµ!ë鯺4N—ã€õÙiEW‡ó<%=ÊùÕÆ*ÔÖZ(]ºDáÑ[~Öqö•‹'×, Xk— bÚŒÎ:2º±Ìçc,ÍÍǸû&¢²¶Â¬«Ó'~.íuY«Ú˜Í¯]:lDHrttŽq\  ¿¾\QÄ͵}ðÝäøL—ã5&ú'€±l&ÕzãûV›eÓ½y“¦™õ“•Eʱö—ÀøÌS†3èáæä€+ƒ Ôµ?`ŒÚP(UQDaf¾=l 33òí·ÑZfÂ<ð¦+?s{º|¼07% ]†+ùaåÑ÷Läm @#N·qÌaŸ˜ @om7`tëÏF"iF±UWiøöË*CùOoË„Íbö|jG*÷ੵ ÚkTT¤ö+â‘842 |çîãH}4-ä±§½­UõÍ,¶”±kQzØQØlCi¯%››j–•EŠÛà ܪ;TÐvSAâ£Ì<»a¼CcK¸]Wì#à}>Zfv;W&]¤”€1ƯØËÀ; Z£«ÏL¯ÍÏŸ²9îÌwü”˜^C`àÍQ&üÀ>]õÉš­æ 2ò'¥øÏ&Ýîf¿ ô2›4†ëf¬°_LÀ0z€ŽÈq€"5!œ–DÒb:ŒbÛþUMãö3 $tŠÀý3~Öq^ßü'Ty‚Nì—' &N ([¿q\z_Hcí:ƒ:_Ü¢º·@Y©nWoR'Î I†Ž3z™·hQÓ»½7q>€qºâU¥žªžÙi…7ç¤&æ?èŽ+Lô„AæÊäa ^ «'XáÉKÒŠ®]’Vt91¯%çBBÍÐÅ¿…DJNZÑu9i…SAø­®I‹ð´îíGÇݹ㻃±HWü•'!:1'µè–> уÞâÁ™÷/wt…y–I·Ïg§ ÊI-ºeIZá]Ù©Ec#l'ãTß]׆®ÎJcК> Ñý²ÓŠæd§;³ÓŠ’K=‰q¤RëÜIè0Šmß.còˆÉcÃÖ¾ñÐj|s¼¤ÙzVÁqE‚¡üU×;øö`hÓ -µÚŽöì‚nݢѻs߯ïð0÷6)mòMd~þÔ8bzLß“ªñ½oÎÝê³-¢4 Ë IyÉ746ÒøN“!þ•3»x}Ç%éÅaeS2Ý»|âhfÌÕ¯Zœº¾ÑR«‰¬ý‹¡!!¤”2V›õ§bü˘豆ì,‹¦­ö“>Kñ¦ƒ§DbþD_öôŒmîç®/ÞY7ŒmÀŸ,š¶:àÍì͹ojKfnkå)I$­¦C(¶Šr å'}†ò›®Ð?ÚƒñÖÿžiqý^ýlèÖ3pª@Ó¼ôHHrŒí= ÝbšWNGMæ×.28¤±ÏˆŒ§šjcž4=uÅG¼õÔI¬Õ·W(ÀB3 \aƒT0þ×”LB¡Ÿ@??EÐæÕ雫è")Å™“lŽªI~’;9 ÀB}¹¢qÀÛƒôîH0pMCuÃ1¢;›W°ésä–¬‚”œ&¹pèŠm¿‰µmAº=|ù w•þÇ«´ªÍ¨qÆýÝVnÆŽ#méTHÁÕC¾ßl=³ùµ)£“Û<î¹uÒ—(@“aé¬(à e ½¦u™vëb(P¦ÀðÖÁÆy)Óá¦d"qó7&U÷ë>ljޖ MõŒ‹w€h]1³U øÂ*¬44&L«ÿÏÌ%qU¦Ë±ìžeSÍÆ%"³6–W’‘gÛ¬àI˜éoTfnÈ £‡‡5mÔ¦C­nÓo`bâTTUœNí¥ù¿ãwxáÁ¶çœÔÿ:äný4a´R@Ó€“ÇŒ©´Rí¡°œ¬3ÁhrYÕ‡î„Aì2 ý0/wžÚÅ&z™E…(lbá(8LM„00D_FÌ£3ó™ºbCd1õÞscZÔ!¡ªH¨·gæ;N×#Å,Ò³Ï(†m蘣ª¾k3óÿ—Züûï·Á¾çAêDêšM&¢’Œ<Çß½¢Õɪ%&ín±ÕV ?b|ˆßxyx⛦ ZDŸ†²Ï7oI–HK4wc‡=8¸×ð×Õšˆh­/¢cl°ZO?®ãâ­aY,ÞÑ!डŒšÎI¢Îâ D15Ï™x·I±µ«u_Ma³Àh&ŠMÁ-¶zËÏ`y2Ñ™±ØÿÀ(C‚¼-Ù LÄÆ$üѤ^tV)Kg} æß0 Ö‰bÆ_3òí«ý­·ìô’Ì” Ú¤J„ŸØÊ«¿p®œ4¾Mç%‘´’vWlûw_â¬6ß¿LmÝvUì‘JSÏT³˜)¶C‡NaïñÝ!É4²»Eå(x§4ào°íJ<=w¾± 'ówãˆëklxiÞÿóÛ!w® ØD±5—ä˜`x3"ó“ Mo(…4MÑÈÔEAlSghªY]°F™ÝRšSäÁ`6XL­vï¸)1^ü˜Bâr nÛºp…ªú¾Ì\îhÜ.'½ðŸ,0Œõ¦m€QÐDafž£y?¼D"íîŠÜ·Ë8}2zÄDÛôSmgûÉ&—@5IϾ6(*Ah~ž^ûäüò}TuËÕ£eóeѶh ëÕöEÙÉý®Å N£På=…*Ï)TyO¡ÚSŽ*Ï)TzËQí9]~ªöÜZû.5"à„¾Œórç©oÎ}3ÈVà´ÏBJ¦Ñ•PHíe’ýÅÓcÓú‡Ç%ul|×óZ•Dèäb…º[ÍÖë‹u‡޵{`p3Ò\·¬IHñmj®Ži;Æ.6.§>ÅDN“êb¬G'v§®_³07eŒÏVý0.ÔŽgÏeeÑ„†¥9sоË*H™| ¼æ—þŒnV+ž¹¹cÕ?æî³D.ÚU±y=Œ#ŒŠmöäkLj·Ã{ÚÜÖb!ôèmÅáýÁ¬/I±%v‰. pªìÌþ¾cl Ü¥eË&:ÂnÛ þŒ@wëŠc"ö^ À4G#AìcÝs7Èz8B/“¹±Ý‹±X°,ù˜¢²ô?sÀú´-bát9öA7ÏF௳S‹þ¬]¨0);M<ˆ±tØ÷vvF‰Ñßß ÏÎ]] 3c¹ýߤҋ`èÃrÇîç ¿ûRâÿ¨seÒ›ÐÔLÖµéê#žàµÖÊ#‘´”vuE–žðB˜xò¯º´Eë_[ÌáÊÝ!µïÒÝ}½sß¡úTHÁôdÃòŸ /¼y !¡*Xÿ€lD»LŠM-62SxD; \«< ³L cOÜ9˜<õì6´ Ñ›áÄëq›¹îmŒm 9sŠ?ý¢u€Êb¤Yyö¬’oUÝÄ kø×éš|‰Óåø]ÆrǬy¹ó‚ºw%’ÖЮŠíT™1*PU cêH„ÆáŠÝ!µK0¶eeµðj­~ `Ú¥2 ƒž—Ò7–1𡾜¿ºï¿—™*ŸÇ— cº¦^ ]vCÎI€ ©_ˆù?ðæÜ­f¼g8a ð %ØÆ§u£€ ý|W[רµ„çn8FÀúr4?Ô¾—Î.ú@«ÖË,žµö€OõåÌÄ"§Ëî´/üЬèlÛ³{Á ‡ÉK„DÒ:ÚW±•§Lºt‰k˜¿WsãDM“KŽš%.Áø")cËž6M…4âÔ¹°a2s×õÓ|žìßfþxqî†c ¼¬+V5(ú,XḀ>7ä·'=‰ÿjø Ôå<ÔA·Ý—?±q¢s~þÔ80ësRëQžX·^Œú §úLS —çåŽ)1*3ýÒ¤8Ùï¸.X‘3'ÉÚ”ÒŸ?µ`´v‰Õ¢¬,ó­/ꌳÁ¢cˆ¢.ût€ôû/õS4C:0‰¤Õ´ë[¹>"€¾½º‡uŒ#•{ÁM§l–x‹ 6îÚ€ñƒ'¶¹ßq}Ñ»K:y´Í}œôÝ\ô¯ƒu[×è•Ð\·§Ë g^ò*&¬SXôDÃðW`ñWzür2ø§ËÑŸÿÑx0Dä#Ë?(EõF¯ðÙª#0#¾Ucå§Ë±„‰ª,‚o…I†øE°<9wmMf¾ã±ú~œ‡Ê«“œ.Ç{Ìü%ufàbª ûÕÙý Läl)Ùé…«œùŽOÀ¸Â¯8Œ|§+9,Ö3”Ý`gÀ>=p+ét9ž#ÆFVh#Cl„€—š`n ÃÛ­Aëtp¬}«ÓåØL M ÞH cæ±dÃl€úèÚø„×Zd±j·šº„–%S•Hš ]›™+rHŸaãxµ1ÉBk‰ŒV`µ¼ÞÀÀ‚¯ö|¤EË=|JÅæÏ¢E,ä'ߪ^‚þÍ!Ä×p=0”ŠìôâÎåÉWBá·p:½¸Š W™$ä÷á‘%iEÿö/|vîêÊŒ<û÷ˆècþ®Ïþ'æÆø@-"ðå8­€ս㣟?xªzÁO)00À"26 ŠPîd¯2àïëV¾ D7‘I8'©ÄõK®;3áJ0_I Ô_`3*7iuÒǘÌõó \¿Hܤ™ ÆíÏÏ]{Ò™ïØ¤ßïZzžI0ÚÍéóq@F.h:Ýfj}fkF[Ù<Ûöƒf1 ­ãâaçþǶ°4µðŽjSê3òÖ¶™‘=§ðsEU'X×LÕ½B¡Ë—¤™†€æ¤o¢º¤ÀÁv|ö1ÑrÒ e¢ÁY4mµ/;µèçB¡©¾mÁ)0A mã?‹Ó×íx˜~Œ–mã‚[œ„€/pÝâôõÅ-бÀ·,I¯{‘(u'¾‚>kB)TMŸÌZ"i5íf±U˜Xk0npx“x´.+*F1<掗¶èyÛ$Ãú ¹ó•úõ_:s’qwõRp)½AÔÌÇÞM¤ì‚ÃÍë&/|ÇÞKóa,3Æ4Šƒ|É oîó­>ó¼ž%©E%w¤ô(¯JÄu.µ]`ú´&ºfM}cX-â ŸG©3º6ísé쬂”Ñ++†²¦Ž¬w;Ž¡‚wªl'Ÿ¶CXyç’Y%ͼ‰Ñë`è'w ®ƒúµe›Ÿ?õ›pŠ2À(úc?1mÄ‚º£×æÂ½‹±È*H±ì¯¨.²hJ¢PD"3%‚x€h!¦ÃxoÉœ¢Æµx}7¯ÿòèØ‰ñÁJ"%s"@À| „ÃDüÙ’´â€ ’z÷ï4çòä©PÄÍLXçy[¦Ý’„нv@‹6Ml`îÝ=aµ…î<Ù³½k>, †€ƒË¶"62ä½Yµý_xûO‡ÜÏš˰g{àonØØð`‰ZÆçÛßÇŒ2??õÐ/pÏÕút‚g‡p¬cûzSõ˜Om1]o&‘H$gƒv³ØÌGâã#ªԀðYl‹Q™»=¡…û@ÿ®‰H¾2šáó0þUð*–®|Q‘ˆŽŒFLT$¦Oø\}oÈcI$É…@»)6³À‘^=š[óÚzܾ0)6ë™QlÝcûbððÓ©7–á«o«êhšh³b{wëX¹ùMØ,°)Q°Yl°ª‘ˆ´D"&2ñÑqˆN@§¨xì«hÉ4D"‘tlÚM±™ŽôîÞPðháqÙ›YlO“Ó4-"Ú‡[ª«äû>€3¶Ë¶Dr!С,¶„˜„°åÓ:65ˆÅV^úú3©ØŒÜ¾jLLÔXû;`\ÞÞ²œIXPjØÓûK$8í2ÇT±EŸÅ¦Ì#Ö [YU,6<(ª&âÀT©ð<1$æ¿ð>H:Ë"†…¬,R `f{Ë!‘œot(‹­slxSjù„‚NÚB°9¶ŠšÐ§C¤Åˆ3oâ•Ltƒñ?›V|ÿÙ—èÌp`ìÄdb„?ÝŽDrÓ>ŠÍd tŽéÖqÂe­€Äb«¨9rß2x$&ºÛXÈ""Jjª]†+ùab®[3bÑþ“=«ä˜—;OílÛ? Ð žÈLËrÒŠÞ÷o{ß2û`ŸE±³DAðQRx»âÃëÏ]_¼Ól¼¬‚Ë‘“U|*+¬ ă  Ä °_@ygizáþí2óì·1h(€Éz7$±¸Ñ™ç¸¨ñ³‚•KR‹J?ƒèÞü¤á‚@& bðAøBûgöõ%-²^Ë“§‚øÜbÑ IDATj`ðîœôâ—å% ¢Neà20@´Ì¼ ÑŸøo+“±Ü1\!\ÆÄãÆ.(ø>ííæä˜—;OíbÙ3šUŒc €á ìlØZ(ÒRúåÓ3¶¹ r¯LêŸÚørãéýDƒL?ÉUe@ÂÐ%°h¿ÉžU²·¡nVAŠå@YÕh"r€a¡'€ý þ’<â_ÙsKÎL^;ÉY§]›D±ÅF†w[¸òDMXlÕ•!÷--¶Ó8s“`SçèË xÊìAX‡®Xšjð« —ýêÎ6ú€&Ó×Þ粤ÞPÕ· ÒdªßBõ»d34:ó¯z:Egú?Ôä%OPˆ ¡’…0q ŽâºÝ§ð£N—ãS¨Ê³g­ÛP'(Ýà2\£@ð·V(êNM\®.©hØÐ›¨êã™.ûßNz>R¿ßYp1 EuM©"« å5|R Œ³ç©óû­»7€­¼zí]yã®{)}c™3Ï~/)ôw¬5vÛVÕG3ò’˜“^øO³¡3–;†w±áu&øï¢Ý0 ‚ÛÛegÆ ûÍ9³‹õûBuaQLjS5k|à̳?ý~òW} À^È\î˜Ä ¿ED}«;À¦þ)3Ïñ‹%éEÏ4yÝ$çí2Ç,£²6t%0Ž^½M&W˧…ž/Ò¢ÚBîã|#”y “ŽšP ZÙÕôÌ|GÞCƒRÓ‘á²O†ª~`rýwØÊ«WèôW…-1¼šX¹ð{¯– o5oâ Z‚F¥fŠ…AwŠØcªPš îPYÕÇNü1æ7Qo²¬Ÿ:ó/ƒè9Ö õ:ñ«™Ë“ôœ.Ç=¤`#š”ˆ1˜­ÉÌwü¤ézbº3/ùG ú‹^ALõc:YA@M宋aÂÓ®äß49žäœ }›zæÜzþ„3£‡ 6YTº•é¡osÞÀ¦î]K¯/ÜßÊžÆ3ã5ªÙÁË’ûè#½ýŠ1è§¾ÀZ]“«2\výCß `#À/1ÑÀt ˜°ªþ˜?½5/½ `~ Œ,“:øm0²ÿ€’ùÉ—)+œ^CØ ÐýÜ ` 1¾Ÿ±Ü1Ë켃ÁDot3Q”C×ðêö€ðïýî¨; þ€‰¾OÌ?°ÃЧ‚¿ø¾7o¢@ÿ¤°¥Ìx’Jð<¯‰•ÍpÙ¯*7h.ˆv<#/ùK4¾=ðw€ðê‚‘NŸøÿ,Ÿ42X’sƒvqEªAF­¨ ïºT› 5®} …`/1áPlš'ä>Î0Z5øði! €Æ6“B;ÁÂí#u»…Ä/ðó²Ó‹>€{—OY-ßvY¸u_(‡|_ô»hÚj½É¾ À_3]ö›°”y¹£moÎÝú8]Žˆ¨CÊ[9i…íœyÉoƒ^B}¤áú%s 7€seR14õKøY,¤àv+[v©Ô+Mfú}vzѯëËÞqº’ûü ¾2_”z«g½9w«2óíÇ™é]]µI?Éõäܵ5õçö@ç%8sÒŠrë?¹2ò“wóïª0ýÀ‡AäNôû5€×‰x¿ÐÈRe«Ýë‹Ò[¯ÇIXf.ž³æ(8ó»À×ɪ¨ü}Òr;‡éX®È0DúC °Í_ó8†c^Ð+šœ:º 0UlŒP&õ÷ÇxÕ1ÙiEO-™]èZ’Zü^ûÜ ¾GWïÐ’ôâ>Ô?øJü+00éÁw“ã ;£Äk¢Ôé½i}. Öl]#¢.nðyö± ÖÏ9nY2§hsÇú ™íº:WÏËgj­63½îÿ™˜¿ R5·A©)–-&u¨2Ò72]öÙ \¦;üMvj£R«+9ìû €ÒÀj˜èÌs¤7-8-ËN+º2;­èù%©ÅïåÌ)Z狜`t`5|Ð Ô ÏÆâwÜGf\ÓäX’O»(6KWde˜-6°Y£؂Er†Ãé•[#ÌFÅÆ„¶û¨‰^j°ðB¹ ~®©z¾1Œ ìÓYj=|UK†]´ˆƒûTjIûHQnƒÎÊa2Ê £¬»XöØ[3O¿Î‘ÛJÞfVQ°Px‹g­=¿½lO7Wú3M7öbì;;£ÄK€q+w&íýäQùYCï ‡¤€kWŸú—8éþåŽð†hKÎ*íäŠ f±…7x"Ô(Tè^ÛB°Hθ0$nöjÒbk„ ÄÜæÜÄØe‚‡šŒkPd¢˜¨.èay°ñæ¦ÄÂVÕÙK'˜½8Š ¦°à¡¤?{Ýù® ûõA–¬b€u­í[½ª‘âQØøÝg¡šYh&“ÅB­G¢@{‚²@²®î  b×a¸ÏŒ÷™…ÙKÁ~ü>+…Ç!¸ûSÒÁéXŠ-ÌQ‘@øH‚YláÈoéÒbóã$çMÀ ø¶vÆÌ&o54úyWÆ g¾£@WѸµ9£1=hÁò‰—ƒ”«â«˜[C¸¹y´=)Ôª _¢Ó ’OË·:óWê 7%k ;ÙÒª¾.QÇ[×5 ×—1‘©bcÆv“•Æóó—GóÜç¬,R0Ö>ÐDŽ_8ó÷éŠG…PŸIrÖèPŠ­Úž„ÅþD¨gX±E…þý—[†‡«âÀØìí ›mJuʹ2):C›ø*º­ObÑjëÓLÖá`… âáL ʀݰ†>jV³ÅÝ­ÚBcÿ%Ž> 8ÂäÐØÝ,¥c\;IÛèPslU®<ŒÁ\‘áÈo)-¶ Šna£Í_4fÄ?ønr+uºåÐY­,0;gNQk–AHÎAÚÅbÌSTUŸ‹-\slšÉ:6" 62t/Y¸öŒ; aºöJñEÔL ß(Ên} ƒ›ÊJñ†"ð3þJ-\(Ä»MÆj¹¬ÖGm ÞƲ ÷B€·ÃžBMf‘œ'´›b‹Š6.±9x"ž›@ÎdðˆÅžËWVs,,ýœœô,ÁpAˆE·w†‡$ެ,³¤iFˆŒÛé0ÓFÿÏw¤DBÓ&›=ЛJÖ!aVŒëᦊ 0+ç¯Z;&™eC·êÚ-tÙûg¸’ãt9¶:]ŽWùÉ)­•Cröi7ÅgTlŽÅv]‘kx._i­ùú…È›sßÔˆ)O_Π9]“aD¯\4É|`ŒÃ|Ù“½H ŒÚ³ª™]f _*bpùË‹Ð- à¸7â”ÉÚAÐËb>w&L^è *Y°,¹€@71pJµF¼ØÚ1m($Üuív/ÇS\fÖÃï&Ç/X‘œœé²Ïn~ü³Ç ©ŸD]îN"} ¿ÎÏŸÔEš’ÊOA—›À{îºÏZýpÈI+z„OtÅö~’éJ6,”w®Lê–™o¿üÞ¼IÓÀíåkô5tÌ”ÑZY$g—v €XÅVZþ9¶È3芴Z[±È”2©ØX:»°Ð™ïxŒß` fÐÛ>[µ;ÓåØÊ@? Ð*½àæÖŒáS¬µ°×‰À^±,sºGØ$€QQˆL¬ßÈæ0€·´œÁ·ø÷Gà)°©û.ûÇõ)0ƒÖ8Hñ?€.ò/!Æ|§+y ¾h€ïU½WhÚ-\öÐÌ;]ŽýDØÄ €Qú)´ ÀŠÖ\“3 Yè Öxw[˜kaïL§Ëñ N%@—ʇºÙûT›ÇÔð Vð)ŸuC¼Õérì$àKîLDƒÕî €Iû€Ô™M–2!¼;"KÂN‡²Øª«}¨r‡w‘ö™ ÷·YC/¨öVÀ­…?ô\''µøQ€£"ê·=isÄá ©ŸWX¬<æÿž \CÀLÔ)¨Æ­Â`IZá[rMÚÅ”Z߯GÀLXLú;Œ–)¾¨¾ŸØÏZ{@Õx¬‰õý˜1 Àtø/(7ßì­]Y2«p›Ðhú=Öb\ ƒRÃ*EXǽ”¾±¬ÍcÎ)ZÇ O Ÿ£#C˜C iØÉ\!И>ƒÙJ{¢Û*äìСlٻٴ¼­„mŽÍ$*2"¢UÙ‘L‘nHsÌÙiÅO@UZ ØÃ͈V­qjàٙŇ³ÓŠRA¸“€BÀ4'¥° ¼ÚXzD»µ~‹}€"f-I+zuijá—²žmiZÑgÌ<0]Ìö Æÿà¹ë‹w椧üCÔ%g6soh ì$à}0ÞlòäÛ‰¥×îˆ8yDÝy賸 ø¢nICñµþ ‹ÛJÎìâõ¶“ãüÀ—ÐÍõÕãè+¨~Ú¥sÖ}ML÷átN7ÿ²¸£~ªL’3K»¹"cbÍÛ7û¿Fò°ðÍ‹ŸÉ¨H›5Š-ü3çõ»Ng8s’j½l‰VÁý4…{pD´ë„·ÿ¾†Ý¢½ï%Q1–€/–J¥ÍÎÍd§½à . N#\, Úæí6Û‰f;wgg”xüu^îègºØb‡ ð€DÚJ¿Ð××<ꨈŸ "ª,;䤿|WAÊ,e5«ŠHyÊŽ¨Èã;õý0˜‘†§ýrmXÇéÛª= ˜Ylqñ6DÚšKØ4»åüšD"‘„v[ÇÖ@÷ÞVœ<¸ôæÛÛ²CEp†t¹$¤öeF‹­W÷Ð#"ÏFàˆÒñP\8]“/!òäd¶ÈN[»¥½d’œ?Ü›7ÑÎ uñ/Óˆ¾]:»hW{ÉÔžtÅf÷[÷#;z´ÇNA÷øöhl¤Wì@tŽêÑæ,GØG I&Áö–R-!ʪÏR$iX{ˆAwèÊ^pg»È#9¯Šò'0ö T˜à‰v©]iwÅÖ£—ÍPÆ\7Ï6ÿªÐV70²»k÷¶~ãÜÒã^ÔÖ×°Ý0åúäùîøx5CB‹°m }#Ô³I¦+ùF&þ?³cÌäó!RpÀ…F›–Î)þ/ƒ[•d@"‘œß´ëDF+ˆK0¦×Z½© ¬ãŒêÞ¶­¼í7ZkQÑ\yÉôä)9ðaHí[J´5þ¬Œ6ˆ»1ÆìÀv"¤q/3=F Vd¸_eäÙï$Ó0$‰Dr!ÒîŠ ú&ƒ0Öno2䋺OlSÂóÃûŒVÕÅá´l³eSkØphµé1E5Êèñ¶(ýŸ)± ÍW:§á‹ˆè¥ ×ÄgÚ[‰DÒ1èŠmÈHcfcǪ°¢dYØÆˆ‹èŒ‘=‚l‹„š*£‡J%}êu!Éòõ±bTyÊMYmÆ[RUSmR³eôŒMD×hCÎØs ¯ÂJ ×øQ“mOÐB§ËñøÙM"‘t4:„bKèlAw“¹¶gó;»‡Âô¡·µªþ¦¢ -pú¦[·h<0óÇ!ÉÑ”Òf’`ºªÆH½Åö¾:·)Ç{±õ‹*l)©lüsë†îQ¡-8CˆÅéë rÒŠ–/I+^„£Ú¯›Ôû©seR‹-ˆvn•y¹£mYY!˜ðÍàÌI²ÎËmütœ9IÖŸäNÏmஂ”ÈßÑ^ãŸK<øî°gNR›·$™—;Úv6ïõƒï&·y¥ÝƒG22 ÇÎgoúÇ+Ž¡[\÷ ­ZÇÈîvôK†ýåÛš­{⨻¾3nš9çÖÜ>áŦCfûEÖa1Ql5µ¡™Löì-ÿk¿ù»¶×b϶TUh ˜2~ îáÄ´ÑWãù’ÿñ;1svF‰÷öUc2¢j"gèäwÈJšåçšµsº&9˜yÛ3`·ÞNN—£’A_)ŒÜ¢^}I·KF¾ãy’€=·$½02VØ'*ó4¹³-fÂÁ±vw¦Ë±Ž™×(Ë‹‹g­=ÐÖóË*H±,¯žO dAOõâΈQœ.Ç7¾dÐF«'jɳsW7îÊ›é²ÿ™‰¾БÀÙéEóͯ…ãw ÌjøL'–¤]Õù2óí×Càr&²£§:® Z¤Óå8Á@‘^²$­¸qóÖ —c1&éºx?;µèçf}ëë³Àîœô¢tÿks¨¼úL"f»è7ºXœ.Ç1€?cgræüÀæçOíc÷†ÏæÙϦï›—;OíbÝ3O&#„KA¼ ”@©è`vjáLsyí÷QFcMfÁ@/"¬áÿræ¢×¬p\©0 ÛopÏ’Ô¢}y¦+ù.&þac`­&Ú}yÌ×ÔÞ;¾»5Âò;0MºŒ@OÀ™çØI 6²Ð~™^tm(#ß~#3.#ÀÞÙ3¶ Z„Óå8Î@1žËN-ú¯¾3ß±©áâ®Å©ë7ˆ¸ìéD4`ãA¸3;µ¨qÃÞÌ|G˜g3È`"€®N—£ Àw ¼XYûÒ«Ó7·(US‡°Ø qH¤a;¯WàIןÃ:Î5CТzÖVʺtÂÃé„4þ–#Ÿ£Úkì»èc ÍÉòÐv¶Æá~Ç“øÁ˜ßàêQ³° mþùè“ØóÆØÿïïðÆOs1môÕêv·<xuúæ*b~E_ÎàkÌêgº?ÄZª‹¸œŽÓ 1–Àv&ÎŽ(¯þüÞ•“Öš0´!x…‰o­ëË~ úœA˜ @<×€èQ¡iŸÝ›7i`[Î+seò°ƒeÕk,aðÆ°¡î%t4€[ügŸ­ú‹Œ<{ãšì2Ünjâ ýÿºLÜìZ˜ÛW‰ÉÌw¼ÁLo3ÑLŸ¨] ˜É üL—ãµ+Jv›ÝdÖÿ¼Üy*éä¡q»»sÇw?P^õ¯ ¢ñ¬¨Û »@7BÎ|Çýƒ‰lB³ù÷é]óà»Éñ]¬{V1áua"€‚ºÏ(/Ïp.K æÏŸPä&Aú>â«Í«‚g˜J±À•fõâºÀû¦ø‚?ìiºÕfýLFP¨ cÆ<úeF¾ýV³–óó§Æe¸ìËÀx“€8P÷=€nÌc¥3Ïñ‚á;æ/èºy¹£myŽ·Xæ‡À˜ šA;§Ëñcf¬cÐoP·›z×úC1ÆñLTMdá=˦$šŸk F±© áF+÷­Þ1©Ývìý®Áø>)MÖÙ³£Ö`=Z¬„yªÒv#—ÁXùÍóMÖéÜÕ}ŒË©r7Ž–nó¸ (*®Ÿ†Çoý#»õ ¤O¼]âºêS¡…¤˜E%f¤4Þ¤y¹£m.G.×­çñÿ¾û ÛI™ ¬i®y¹óÌwÁ&gæÛÿAÿF²Ìw²$H|ºð{¯–Ÿ ™o¿–5ÞXÿõÇS/¯?É¨Ð™ï˜ Äâ}“.cDo‹!ï[½Òä_Ƭ4ùCs®LUYÈŒyºCÕн1p«ÛÛù ЈÞ5é.q¡ËnðywŠÜ=@€ûI!Z ò“/µÚ¬_hš®™ñú3~¶ ßñ`°saà·Güɨ<4 0îê V”Ëôe?ÉE k”™ßaâ 퉒Íe1œ€Æ«?2Ùÿ“ñžy=@ N+³IýhbzNÿ=]°Â1ȾbéºúÆÉ~ÂÝè©ÛfÐ5]¬Ñ¿±éú¨¬‚‹Óåø€'èAôÁxF«ªwEKÜ©F±À‘ц²C‡+ðÁf³ßFÛ¹cܯÑ#Æ|.©ªBÃFkí7 âªÑ!†øïÿûOmo²ŽÅJˆ5Ù]ü£-†ßÊ3ÌÜ}–ƒeou]"bî&àF]ç­½4Úº¹:&tŠØ{̱0Óc¨Óÿ« tqŸ„èNš £âéïóÐí-=—y¹£mÌôêÞPý¢{ØÓSõáOºf`<í\™]ïR2¸•/×—i ëèÂçõ4õ€4ËŸPg1ú“éIˆî* °)àÓƒ™+“‡-M-ü0Þ'Èðà&6<ä+Nº+?…9€ÿÖ Æœ> Ñ!.8`[b~<Ø ³ºKW\  V!Ô0ìLÃu¬´ù¦à´PÞ¬˜ýXÇéçIëå3ͤΌÉú%, V8´5}ߘ7°Â£³ÓŠ:©$. ß,ÞçC€[˜4<ðEþ½èîÛÉ.©ÃlÕõñPæÊäaæã#™‰~¦+õ¨QXð²ªÛÜØ¯z=Þ>ðh= ´4°)]Â=•Mœ1€¦Ø:wµ o¢qø·¯†7Ø-ÒƒûFÏØ@«¶ì¤«–Ÿ@uÕéÜV›‚‡î¸ ?žýÓÆ¬ÁõMË‚aºö4Æ |²%ø¼Ü… «Ât‹I ÔM–3ãWºÃ< ÑücNщçç®=©Zl÷C÷fH,ÒšºFhtû’´Â¯M[í[’Vøˆÿa¨¥þ`›¢³5úè¬(½–^ø·—Ò7–-M-<’Zôsô_„^,,?¬6¦Àl p bcPÉ‹s7 &Û½Ë'ŽXg©ñÛÙiEÙ/M[]»tvÑ.fñKÃ0Ϫ—Áððe˜Y$s[ ¼ÿæÜ­žLWòLÔ¹ÂüªÒÓÙéEy‹¦­ö-ž³~+¿ÓuSëá`s† ™Z€èaOçì´¢¨º¿uE ˜Y¿Ŧ°Áâ;ò|zц~›‹68¡;fël‹ Pb¦¢Î=hF—+&Žò/ æÉº:¥'}‰ÅAÚÃ"æäÌ.þ<—ºþ[ÿ1Tb4º´ä%O BÀ÷Ÿ€×—¤¾ôôŒmîçS×n'~~´ñ^›`AÝ9 "þ5T­{vZQDvZQt·I¡_ëê%U»÷ŹŽeÏ-)÷’å!è¬r5÷ûìXŠ ’¦ÆÃb tˆ}ùÕ>,~?¼Ë”zÇ Â¯S^õÃ–°q]Þ_v¢q§lR€‹/ê‹ÏŸ]ßÞºbý| Ǫö·¨î F—ìû…kB–á|ëyƒhðp»;ß `Ï"f”øˆ/òÿ3‹Ø"à‹C™ .Ðz÷‰!dž˜šUl c¸¡pÌß%Ó@ý\˜aý 6q£ a"ÝüÞk*‰´f©âJ…†ë¨Ô>¥î:`xc'œ–Kí¨€W[T³ñUhoÀø ½0 êÝ=flÐûé º@”`œgPåU„¦Ÿ_[ëïÒ\œ¾n7}¤Ø {—OéZDÕTø}wóǤŸ?ذüÄ _2ž×¼¥Ùµ’Ä­Ëì YMïµ ¥Èä^w1Ö£  ˜ß©~Ê@WúýXÄ0X„&~Ÿè Š ºö°bÄ%º1þýg¨õ´=ÇÙdù6üsÓïÛÔ–LJI@Ttà-úËK°~Ga¤ Ä+<ØppõYÙJ'\XkãÌaÊë×Qu2=Þžd“ rƒÂ¡$(e°QN6†œûcÌÀuRLH€ËDu\ëbŽßˆPŒÊªU0ó°æºy6gN’•Û­.ÌŸ‡4¾*¢Û”,•-ÚЙ_ÿ2&Ò¦°ñ:ŒaÿŠ×"0ÔgõÆ~fe|¦“5ßT`Á:×xsnÈÖCJhך„Öâ=²ê#>›}é ŽÒä}í®ÈÆMŠCu¥†½;O+²C‡Náª_\‚?­†Umsv˜3N•çÿ ­íJ8&^ÅôÿoïÞ㣪®=€ÿ֙Ʉ<@!ˆ ÖÒjD¬d¥UE^?­õÓ+‰|hï§Ÿ¶^ëã6EZ¹÷z«ÖÚJ‚ʽõÓöí… ÂC^!$!ðžB $ó>sÎÙëþ1I˜™3“™0yìï_ÉädÎÎLfÖœ½×Z{Öuضî.—(ü~ÿâä½´³'D­sm7ÁGêÊQv¶ŸŸÛ¿Þ®¢þn#‰õÑ.5H`ß»SjN½kW”0È´v‰!Z¯ËˆþK¦6 D[ C¤œesiü°… IiJDh‘“O2,¦DjZ‡ÈŸVR‘½&ë¡íz®›÷ÉøÛ¬¬„®§À°Z’ZÎb¢jŠzAÇkÅ`#X, ×­r ìUZ à›Eê~wrh™áÄ’é%ƒçWª‰MÛF1@+Ú:wð®  ¿ÏåM+¯Ë)°ïAS×™&ÖTÊÄù«îÛ %¼ôA¹À›4?|àdð‰<ò¨înê"ãÎ)ȪhÌåãñ€å žú‰˜[Ÿ†¼†³Jôa«j³ýÁˆÝy"ƒ9öD–/0vƒ¨Í× ³hõx·lDÀćÂ(¬GÕéË뾃gðÈ«S°ù*˜î*ºÐ°´üUÔyϵ}pÒú+xtö`=àÃÁ 7T¿€ßo`ÿð»yo⎛îl÷ý5úëpÖy jб»jœjdVrÏÁÄwDi•¢©ƒR+š¾>…Ȥ Æ_óf–Ä}'Q6²LŸ"…Òö‹T@œ‰rag­?~(€°Ê|k†2LVGÏÁµ ó lßÀ@XG 20‰•ð¾K *iÊ )% §TóÎM¬¯ut÷o&¬'Fh‹/kª7y+á©ü$¸¥%ƒOEy¯%‹5i~[cov¥]`œŽ l“`1G¬ùœmJ8 £ í3Ù „§ôOøþ†±i)èz¿—·ú`Ú YK#ºáBR讬ЅBÏ%Í»ãJþ Ö$%%0tó“-„òÊÒY»Åû|¾>Û‚•yÓK:ÝnªûE…Š<0e ¶®«Çù½Ñöì=ÇsŸÀº××uªwc¼5ø/`IÙK8Y n÷i±2ǦâÖ1©p6hpÖh¬×qæÒ)<ñêStM:F\? _»éŒ½åNŒeGzJ:üšÕrG•óªœÇcî*ÐÓCQ®tv7§ópŠ# `Y Oÿ—ì‚{G†©Ó¦¦´جÄg 6¿}ëÂ2M‡exDV8€Ù8Õüµ`*¤¦ö_-HyˆÓB/¾(FV`¨w§–8£]ù2k7èP`ƒ u ë]É º/b®%°Å ¬º¦ŽЮÀv¥P¨ ¼’~€˜2BGKˆ>»lfECN½á5xãSýÉpÈ{/1·”Ñ6ÿ¸åhƘêqãï_Î%–s*£~ÜèŒ?=±£>§ÀÞ€ˆ)|‹Å î §ˆ#úˆ2]Ñë3{•ýë¤5ysÊØ€àe“„­ÿ¬Gmõå糸ü0f.šŽ5¿êøÎØ]áhÝçÈ/.µk^oŠ ¼6 ¯6{ .\BQ]9Šê>ê’ów'?^eÌ ÌÛ5Þiþ’™+@4+ìçŒÙ ÒË‘S|Fƃ¦K( mTKú•cƒ’OŸˆ¬éaÝàó°Û˜oŒ²¥êÉüÙ{Î7¸%ÙÄF]‹Ìä™ÖÚ‡¹íÀĨˆl?EDst(“‹4}l¡ï; ¾Í„“kÅöæoÞZâÌYc7=6¤(³Ùí$În¼&u×¹F¯ ¡e ;ƒ#Ú‘Å~™i#QXšÿf„NOª©šµ¸ù–í¬„UF(Ìô‹ˆûŒûúZËùŸ›Z±20Ùwú\ÁL݈Äž¹pëäŸç>´%²<$ª &<ÎÌ¿&ãa³ø²×ØW'YùgÝçR§ V+aò´A¸}\B/жìÚ{þÅŽÊ3]ú?Þ¦MÇÿŠ·‹ÜeAMº,çÓ{R5¢|˜3£Ž¯(k©±$%¿ !â˜QÕã²²GÏ­¼{‘7ÀÌ Ûóû+æ¬0Àdêð®™öG"bSDf~=4³ñ—GdMT0c1äñâsù3ËÚõ¢a…"»z g毵T,MŸ¦‹ÃnljˆÛr¯„õyÙåaÉ9,x‘yPœÓ‰)ÆvizsÝqs?¡[#¬ZjÌ}¨ED©g£'/‰’·æ·¬U¾?kg-ÌWGá]=Xï²Àí¹fð³Áî3ñ¥#i €È:¨ç½?iÏïÏ]=n ƒÿÒ[5…ßÕ5åqÅÖÌb!Üeï‘£RPºµ—.ÿÿ8ÎcÒ‚YøáÌixó‡o_Õu·ã—öáÓ#à`méU;gdÉ^õCR Ð°e È”*ì ý ôJ¬ijåMa­c˜ñ~Κ¬[)ËÕdß~[cZrR²–)XÉdF&|y3J_‹9¦¯åL£0»˜x²Õf{àðµBQþô²ØïEH (ylƯ´$†00!§ ë= ñ … †u>"[;1 ÚÍ›†.·J2ÿ ­gC†Ê›^²%{uÖF ß'Y°²3{Í„—‰•ÏP8,®³fX¬Èd™ Ê$`GތҰ^œ¬å(í©Z„¬¯5kÐnþxíË—Þ¿p¨ QþBÁ„Ù¢ïžÞÿØY—÷&‹ àùÊT@Ë—L/éT“U"2›š‡ÚÑÚU9Ÿ»añ ¼hè5÷D"l#3ÆñÇZÛj¦³b<×)BQvåLø¥"Œmâ±f(ÃtV2YA&1g‚°9t šöøpz‘ë…5öÅÌø]ÄÞÊ)°ßªø8€ä}Bx,ÉlËÊTXd2‘È›^úR'EKûçGzT`k6h°ÎŒ#û=ØW憮34M`éÊ5X»s+ò~ö6¼#ê.qsèBÖ]†£uŸ·}°ÔYV"ZÀÜï ÈKÄÓ–>Yjªƒð¥øŸâë7 0ÍåÿTaþiНÃfàà4Àà­­Ž†ð`<'¨ù[Ó‡…Aº*|kN±/»Àþ,{ù…¬qЃiA°§‡é¿¨@ÉŽÖV‰ˆ ÁuÏ3PÚ±¾~ÖŸÆ:„d5H!æwȰ°nJ lJ…!˜¶¤0ˆÖ)Ìÿã4†•ÍwÅœƼOì  |ýg0ƒ?‚aÁ¹F/+18XcÁw:Á *­ìåDd®Ï •—]®eØ·u?7ÁæÖ[ļ-2›²ÇJÐtþèÏu:Àï E2À:@ nék@µ£I›Ô©²5zgÀüa'G°’c…Æ 1Ä ž¶ ybT`:{ÌTd$¢`‡’'Ÿ‚»'öÇà¡Áu§ªsNLÿ×çqïÏî۫߈{®*çq,Þ6ïÿDµÄÓ˜ð!Yè®%Ó˶G;àÏSözê#`¢W±MMS\"вŠÕn¼Ì—â»çJ²Èòg”d íÌ#B‘0è®÷gîÚíÇõª{'¢o©š-Ii÷Õ$äÍ(Þo±ÚÆ úÎåÁEæÛbuûoºƒâ÷f•FMÓ]údég 1ÌÑZUE??‹(9´ôÉÒ“`ÄÜ™˜£ÍÄkÌÞÆ€Ç4ÕÆˆú¿ ÌQ4ÇÕ•<׌+{¬—=´Å?ü‹²É zQ¶ Š~®àm|ÞØ‹(I-þs¼b •’ªà¶;ÓpÛip» |yÌÓÇý¨Óéû÷j.,ßÿJÏ®ǹõ`OÔxI÷üïÜ=íÞ“I’$©+ôê+¶ƒ¬¸nXê·À^úÏeq l©Iý1÷î\Lõ,vWm@§µÎóðøHOIG½ZFµï”xÜÆ™DA’$©W6u[*ê·oÕR¾ß:×\×HŒßê˜|7 0wÀùŸŠE(þ²{ì°Àèo¤£_jøŸZ[ëÁ+Çl~.uP]¶›ã½y§$IÒè-ÉF7ÁÜüøÃÕ«pöâ錨÷q»¿Jô$I’€>Øà+_OÁaáý#U¿y¿ÏIЈzK´Æm¯’Ó’$u }&°Àý DzKØmE»áå_LЈz‡ µÚ$z ’$IÍúT`KISðÍ'¯EJZøŸýÇ¿­Àâ,JШz¶ 5š­¯ì_œèqH’$5ëS ÒXðÍi×"}Àå+7f`ñGà?Wý&#ëy„.Öú¿ŸèqH’$…ês ®dÅãO_‡Ì±i-;°å/ÅäWÄñÚøìÛÖÛ=îÛ ×Ö$Iênúd`‚õmãîíéß‚;î¾\P^q ÷q^õóQ-À»5›vˆý;d“$Ij l $Œæ&jü>ÃP¹\WÅf‹rpÛ–\Ö=>I’¤žH¶«@†Ç)ü^·Q«ªÂp¹®kŸ]4,[+s+eÁ³$IRÉÀGBn§®ú¼\ë÷Ç4UìÑ´Eë³-¹'ý‰Ÿ$IR_``Kô@z€Û¥«>¯¸à÷Šãˆ-¾ª~›ËóöÈ‚fI’¤²²À4(XE@Z¢ÓÝ0—ðº:¿_ÄçšßØz ʦÊÜJw¢Ç'I’$™YÝ…§7^óøW,Ö”è%3àuš×#êü>qBUõ MÅ¶Ô %¹g¢Ç'I’$µŸמ,éÿèˆIPh€ë<¦.à x݆æu‹‹>¿q2 Š/tÛœõÖŠ·+=>I’$©óZ’G\…_Vœ6ò~ÃÀF·$pLqáqº×c\ôûÄÉ€Ÿ÷j±]X_œ[y)Ñc“$I’ºNXVdç§O¤=vóýŠÂÀ¨Au„×#t¯[¯÷{ù¤0ö©¶‹_¡Ü S’$©o2¥û{ÖŸª8mä$ÃàµMHÄ ¢ñy„áqõ~Ÿq*àû4UYUßÚM¿=Q“è±I’$IÝGÔ:¶†OO×{tØÃKò*0¹šòy…áq ªOœøÄ~MEŠj]·ù7_T]ÍqH’$I=SÌíó…ç=ôôèién×_Áx*Þ'öû áu‹ŸWœ ¨b¿àëv¾zðt¼Ï%I’$õÄÌ­ð4YÒ\7åèG0ç¹ $Ù¨Ý'PýBx\F£ßkœQý|@ ˆ•Öï\´ÿxç†.I’$Ifm¶Ôâlx~ÀÔõ úE¬ã~!ÜnÃé÷ˆ³~Õ8 Plèúú¹‡ŽÆuÄ’$I’ÔŠv÷Št®ûòŨ¨üºÛi¸½^£*à*v CnÏ­<Ø••$I’¤öø^ïK«SÌÜIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/itemcircleanimation.py0000644000076500000240000003276212536324427024576 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# import math import random from PyQt4 import QtCore from colors import Colors from demoitem import DemoItem from demoitemanimation import DemoItemAnimation from guidecircle import GuideCircle from guideline import GuideLine from letteritem import LetterItem class TickerPostEffect(object): def tick(self, adjust): pass def transform(self, item, pos): pass class PostRotateXY(TickerPostEffect): def __init__(self, speedx, speedy, curvx, curvy): super(PostRotateXY, self).__init__() self.currRotX = 0.0 self.currRotY = 0.0 self.speedx = speedx self.speedy = speedy self.curvx = curvx self.curvy = curvy def tick(self, adjust): self.currRotX += self.speedx * adjust self.currRotY += self.speedy * adjust def transform(self, item, pos): parent = item.parentItem() center = parent.boundingRect().center() pos.setX(center.x() + (pos.x() - center.x()) * math.cos(self.currRotX + pos.x() * self.curvx)) pos.setY(center.y() + (pos.y() - center.y()) * math.cos(self.currRotY + pos.y() * self.curvy)) class PostRotateXYTwist(PostRotateXY): def transform(self, item, pos): parent = item.parentItem() center = parent.boundingRect().center() pos.setX(center.x() + (pos.x() - center.x()) * math.cos(self.currRotX + pos.y() * self.curvx)) pos.setY(center.y() + (pos.y() - center.y()) * math.cos(self.currRotY + pos.x() * self.curvy)) class TickerEffect(object): Normal, Intro, Outro = range(3) def __init__(self, letters): self.postEffect = TickerPostEffect() self.status = TickerEffect.Intro self.letters = letters self.morphSpeed = self.normalMorphSpeed = Colors.tickerMorphSpeed self.moveSpeed = self.normalMoveSpeed = Colors.tickerMoveSpeed self.useSheepDog = True self.morphBetweenModels = not Colors.noTickerMorph def setPostEffect(self, effect): self.postEffect = effect def slowDownAfterIntro(self, adjust): if self.morphBetweenModels: if self.status == TickerEffect.Intro: dec = 0.1 * adjust self.moveSpeed -= dec if self.moveSpeed < Colors.tickerMoveSpeed: self.moveSpeed = self.normalMoveSpeed self.morphSpeed = self.normalMorphSpeed self.status = TickerEffect.Normal def moveLetters(self, adjust): adaptedMoveSpeed = self.moveSpeed * adjust adaptedMorphSpeed = self.morphSpeed * adjust self.postEffect.tick(adjust) if self.morphBetweenModels: move_speed = adaptedMoveSpeed morph_speed = adaptedMorphSpeed else: move_speed = Colors.tickerMoveSpeed morph_speed = -1 for letter in self.letters: letter.guideAdvance(move_speed) letter.guideMove(morph_speed) pos = letter.getGuidedPos() self.postEffect.transform(letter, pos) if self.useSheepDog: letter.setPosUsingSheepDog(pos, QtCore.QRectF(0, 0, 800, 600)) else: letter.setPos(pos) def tick(self, adjust): self.slowDownAfterIntro(adjust) self.moveLetters(adjust) class EffectWhirlWind(TickerEffect): def __init__(self, letters): super(EffectWhirlWind, self).__init__(letters) self.moveSpeed = 50 for letter in self.letters: letter.setGuidedPos(QtCore.QPointF(0, 100)) class EffectSnake(TickerEffect): def __init__(self, letters): super(EffectSnake, self).__init__(letters) self.moveSpeed = 40 for i, letter in enumerate(self.letters): letter.setGuidedPos(QtCore.QPointF(0, -250 - (i * 5))) class EffectScan(TickerEffect): def __init__(self, letters): super(EffectScan, self).__init__(letters) for letter in self.letters: letter.setGuidedPos(QtCore.QPointF(100, -300)) class EffectRaindrops(TickerEffect): def __init__(self, letters): super(EffectRaindrops, self).__init__(letters) for letter in self.letters: letter.setGuidedPos(QtCore.QPointF(random.randint(-100, 100), random.randint(-200, 1100))) class EffectLine(TickerEffect): def __init__(self, letters): super(EffectLine, self).__init__(letters) for i, letter in enumerate(self.letters): letter.setGuidedPos(QtCore.QPointF(100, 500 + i * 20)) class ItemCircleAnimation(DemoItem): sscene = None def __init__(self, scene=None, parent=None): super(ItemCircleAnimation, self).__init__(scene, parent) ItemCircleAnimation.sscene = scene self.letterList = [] self.letterCount = Colors.tickerLetterCount self.scale = 1.0 self.showCount = -1 self.tickOnPaint = False self.paused = False self.doIntroTransitions = True self.setAcceptsHoverEvents(True) self.setCursor(QtCore.Qt.OpenHandCursor) self.setupGuides() self.setupLetters() self.useGuideQt() self.effect = None self.mouseMoveLastPosition = QtCore.QPointF() self.tickTimer = QtCore.QTime() def createLetter(self, c): letter = LetterItem(c, ItemCircleAnimation.sscene, self) self.letterList.append(letter) def setupLetters(self): self.letterList = [] s = Colors.tickerText tlen = len(s) room = self.letterCount while room >= tlen: for c in s: self.createLetter(c) room -= tlen # Fill in with blanks. while room > 0: self.createLetter(' ') room -= 1 def setupGuides(self): x = 0 y = 20 self.qtGuide1 = GuideCircle(QtCore.QRectF(x, y, 260, 260), -36, 342) GuideLine(QtCore.QPointF(x + 240, y + 268), self.qtGuide1) GuideLine(QtCore.QPointF(x + 265, y + 246), self.qtGuide1) GuideLine(QtCore.QPointF(x + 158, y + 134), self.qtGuide1) GuideLine(QtCore.QPointF(x + 184, y + 109), self.qtGuide1) GuideLine(QtCore.QPointF(x + 160, y + 82), self.qtGuide1) GuideLine(QtCore.QPointF(x + 77, y + 163), self.qtGuide1) GuideLine(QtCore.QPointF(x + 100, y + 190), self.qtGuide1) GuideLine(QtCore.QPointF(x + 132, y + 159), self.qtGuide1) GuideLine(QtCore.QPointF(x + 188, y + 211), self.qtGuide1) GuideCircle(QtCore.QRectF(x + 30, y + 30, 200, 200), -30, 336, GuideCircle.CW, self.qtGuide1) GuideLine(QtCore.QPointF(x + 238, y + 201), self.qtGuide1) y = 30 self.qtGuide2 = GuideCircle(QtCore.QRectF(x + 30, y + 30, 200, 200), 135, 270, GuideCircle.CCW) GuideLine(QtCore.QPointF(x + 222, y + 38), self.qtGuide2) GuideCircle(QtCore.QRectF(x, y, 260, 260), 135, 270, GuideCircle.CW, self.qtGuide2) GuideLine(QtCore.QPointF(x + 59, y + 59), self.qtGuide2) x = 115 y = 10 self.qtGuide3 = GuideLine(QtCore.QLineF(x, y, x + 30, y)) GuideLine(QtCore.QPointF(x + 30, y + 170), self.qtGuide3) GuideLine(QtCore.QPointF(x, y + 170), self.qtGuide3) GuideLine(QtCore.QPointF(x, y), self.qtGuide3) self.qtGuide1.setFence(QtCore.QRectF(0, 0, 800, 600)) self.qtGuide2.setFence(QtCore.QRectF(0, 0, 800, 600)) self.qtGuide3.setFence(QtCore.QRectF(0, 0, 800, 600)) def useGuide(self, guide, firstLetter, lastLetter): padding = guide.lengthAll() / float(lastLetter - firstLetter) for i, letter in enumerate(self.letterList[firstLetter:lastLetter]): letter.useGuide(guide, i * padding) def useGuideQt(self): if self.currGuide is not self.qtGuide1: self.useGuide(self.qtGuide1, 0, self.letterCount) self.currGuide = self.qtGuide1 def useGuideTt(self): if self.currGuide is not self.qtGuide2: split = int(self.letterCount * 5.0 / 7.0) self.useGuide(self.qtGuide2, 0, split) self.useGuide(self.qtGuide3, split, self.letterCount) self.currGuide = self.qtGuide2 def boundingRect(self): return QtCore.QRectF(0, 0, 300, 320) def prepare(self): pass def switchToNextEffect(self): self.showCount += 1 if self.showCount == 1: self.effect = EffectSnake(self.letterList) elif self.showCount == 2: self.effect = EffectLine(self.letterList) self.effect.setPostEffect(PostRotateXYTwist(0.01, 0.0, 0.003, 0.0)) elif self.showCount == 3: self.effect = EffectRaindrops(self.letterList) self.effect.setPostEffect(PostRotateXYTwist(0.01, 0.005, 0.003, 0.003)) elif self.showCount == 4: self.effect = EffectScan(self.letterList) self.effect.normalMoveSpeed = 0 self.effect.setPostEffect(PostRotateXY(0.008, 0.0, 0.005, 0.0)) else: self.showCount = 0 self.effect = EffectWhirlWind(self.letterList) def animationStarted(self, id): if id == DemoItemAnimation.ANIM_IN: if self.doIntroTransitions: # Make all letters disappear. for letter in self.letterList: letter.setPos(1000, 0) self.switchToNextEffect() self.useGuideQt() self.scale = 1.0 # The first time we run, we have a rather large delay to # perform benchmark before the ticker shows. But now, since we # are showing, use a more appropriate value. self.currentAnimation.startDelay = 1500 elif self.effect is not None: self.effect.useSheepDog = False self.tickTimer = QtCore.QTime.currentTime() def animationStopped(self, _): pass def swapModel(self): if self.currGuide is self.qtGuide2: self.useGuideQt() else: self.useGuideTt() def hoverEnterEvent(self, event): # Skip swap here to enhance ticker dragging. pass def hoverLeaveEvent(self, event): self.swapModel() def setTickerScale(self, s): self.scale = s self.qtGuide1.setScale(self.scale, self.scale) self.qtGuide2.setScale(self.scale, self.scale) self.qtGuide3.setScale(self.scale, self.scale) def mousePressEvent(self, event): self.mouseMoveLastPosition = event.scenePos(); if event.button() == QtCore.Qt.LeftButton: self.setCursor(QtCore.Qt.ClosedHandCursor) else: self.switchToNextEffect() def mouseReleaseEvent(self, event): if event.button() == QtCore.Qt.LeftButton: self.setCursor(QtCore.Qt.OpenHandCursor) def mouseMoveEvent(self, event): newPosition = event.scenePos() self.setPosUsingSheepDog(self.pos() + newPosition - self.mouseMoveLastPosition, QtCore.QRectF(-260, -280, 1350, 1160)) self.mouseMoveLastPosition = newPosition def wheelEvent(self, event): if event.delta() > 0: self.effect.moveSpeed -= 0.20 else: self.effect.moveSpeed += 0.20 if self.effect.moveSpeed < 0: self.effect.moveSpeed = 0.0 def pause(self, on): self.paused = on self.tickTimer = QtCore.QTime.currentTime() def tick(self): if self.paused or not self.effect: return t = self.tickTimer.msecsTo(QtCore.QTime.currentTime()) self.tickTimer = QtCore.QTime.currentTime() self.effect.tick(t / 10.0) def paint(self, painter, opt, widget): if self.tickOnPaint: self.tick() PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/letteritem.py0000644000076500000240000000677212536324427022736 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from colors import Colors from demoitem import DemoItem class LetterItem(DemoItem): def __init__(self, letter, scene=None, parent=None): super(LetterItem, self).__init__(scene, parent) self.letter = letter self.useSharedImage(__file__ + letter) def createImage(self, matrix): scaledRect = matrix.mapRect(QtCore.QRect(0, 0, 25, 25)) image = QtGui.QImage(scaledRect.width(), scaledRect.height(), QtGui.QImage.Format_ARGB32_Premultiplied) image.fill(0) painter = QtGui.QPainter(image) painter.scale(matrix.m11(), matrix.m22()) painter.setRenderHints(QtGui.QPainter.TextAntialiasing | QtGui.QPainter.Antialiasing | QtGui.QPainter.SmoothPixmapTransform) painter.setPen(QtCore.Qt.NoPen) if Colors.useEightBitPalette: painter.setBrush(QtGui.QColor(102, 175, 54)) painter.drawEllipse(0, 0, 25, 25) painter.setFont(Colors.tickerFont()) painter.setPen(QtGui.QColor(255, 255, 255)) painter.drawText(10, 15, self.letter) else: brush = QtGui.QLinearGradient(0, 0, 0, 25) brush.setSpread(QtGui.QLinearGradient.PadSpread) brush.setColorAt(0.0, QtGui.QColor(102, 175, 54, 200)) brush.setColorAt(1.0, QtGui.QColor(102, 175, 54, 60)) painter.setBrush(brush) painter.drawEllipse(0, 0, 25, 25) painter.setFont(Colors.tickerFont()) painter.setPen(QtGui.QColor(255, 255, 255, 255)) painter.drawText(10, 15, self.letter) return image PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/mainwindow.py0000644000076500000240000003506112536324427022725 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from colors import Colors from demoitem import DemoItem from demoscene import DemoScene from demotextitem import DemoTextItem from imageitem import ImageItem from menumanager import MenuManager class MainWindow(QtGui.QGraphicsView): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.updateTimer = QtCore.QTimer(self) self.demoStartTime = QtCore.QTime() self.fpsTime = QtCore.QTime() self.background = QtGui.QPixmap() self.scene = None self.mainSceneRoot = None self.frameTimeList = [] self.fpsHistory = [] self.currentFps = Colors.fps self.fpsMedian = -1 self.fpsLabel = None self.pausedLabel = None self.doneAdapt = False self.useTimer = False self.updateTimer.setSingleShot(True) self.companyLogo = None self.qtLogo = None self.setupWidget() self.setupScene() self.setupSceneItems() self.drawBackgroundToPixmap() def setupWidget(self): desktop = QtGui.QApplication.desktop() screenRect = desktop.screenGeometry(desktop.primaryScreen()) windowRect = QtCore.QRect(0, 0, 800, 600) if screenRect.width() < 800: windowRect.setWidth(screenRect.width()) if screenRect.height() < 600: windowRect.setHeight(screenRect.height()) windowRect.moveCenter(screenRect.center()) self.setGeometry(windowRect) self.setMinimumSize(80, 60) self.setWindowTitle("PyQt Examples and Demos") self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.setFrameStyle(QtGui.QFrame.NoFrame) self.setRenderingSystem() self.updateTimer.timeout.connect(self.tick) def setRenderingSystem(self): if Colors.openGlRendering: from PyQt4 import QtOpenGL viewport = QtOpenGL.QGLWidget(QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers)) if Colors.noScreenSync: viewport.format().setSwapInterval(0) viewport.setAutoFillBackground(False) self.setCacheMode(QtGui.QGraphicsView.CacheNone) Colors.debug("- using OpenGL") else: viewport = QtGui.QWidget() self.setCacheMode(QtGui.QGraphicsView.CacheBackground) Colors.debug("- using software rendering") self.setViewport(viewport) def start(self): self.switchTimerOnOff(True) self.demoStartTime.restart() MenuManager.instance().itemSelected(MenuManager.ROOT, Colors.rootMenuName) Colors.debug("- starting demo") def enableMask(self, enable): if not enable or Colors.noWindowMask: self.clearMask() else: region = QtGui.QPolygon([ # North side. 0, 0, 800, 0, # East side. # 800, 70, # 790, 90, # 790, 480, # 800, 500, 800, 600, # South side. 700, 600, 670, 590, 130, 590, 100, 600, 0, 600, # West side. # 0, 550, # 10, 530, # 10, 520, # 0, 520, 0, 0]) self.setMask(QtGui.QRegion(region)) def setupScene(self): self.scene = DemoScene(self) self.scene.setSceneRect(0, 0, 800, 600) self.setScene(self.scene) self.scene.setItemIndexMethod(QtGui.QGraphicsScene.NoIndex) def switchTimerOnOff(self, on): ticker = MenuManager.instance().ticker if ticker and ticker.scene(): ticker.tickOnPaint = not on or Colors.noTimerUpdate if on and not Colors.noTimerUpdate: self.useTimer = True self.fpsTime = QtCore.QTime.currentTime() self.updateTimer.start(int(1000 / Colors.fps)) update_mode = QtGui.QGraphicsView.NoViewportUpdate else: self.useTimer = False self.updateTimer.stop() if Colors.softwareRendering: if Colors.noTicker: update_mode = QtGui.QGraphicsView.MinimalViewportUpdate else: update_mode = QtGui.QGraphicsView.SmartViewportUpdate else: update_mode = QtGui.QGraphicsView.FullViewportUpdate self.setViewportUpdateMode(update_mode) def measureFps(self): # Calculate time difference. t = self.fpsTime.msecsTo(QtCore.QTime.currentTime()) if t == 0: t = 0.01 self.currentFps = (1000.0 / t) self.fpsHistory.append(self.currentFps) self.fpsTime = QtCore.QTime.currentTime() # Calculate median. size = len(self.fpsHistory) if size == 10: self.fpsHistory.sort() self.fpsMedian = self.fpsHistory[int(size / 2)] if self.fpsMedian == 0: self.fpsMedian = 0.01 self.fpsHistory = [] return True return False def forceFpsMedianCalculation(self): # Used for adaption in case things are so slow that no median has yet # been calculated. if self.fpsMedian != -1: return size = len(self.fpsHistory) if size == 0: self.fpsMedian = 0.01 return self.fpsHistory.sort() self.fpsMedian = self.fpsHistory[size // 2] if self.fpsMedian == 0: self.fpsMedian = 0.01 def tick(self): medianChanged = self.measureFps() self.checkAdapt() if medianChanged and self.fpsLabel and Colors.showFps: self.fpsLabel.setText("FPS: %d" % int(self.currentFps)) if MenuManager.instance().ticker: MenuManager.instance().ticker.tick() self.viewport().update() if self.useTimer: self.updateTimer.start(int(1000 / Colors.fps)) def setupSceneItems(self): if Colors.showFps: self.fpsLabel = DemoTextItem("FPS: --", Colors.buttonFont(), QtCore.Qt.white, -1, self.scene, None, DemoTextItem.DYNAMIC_TEXT) self.fpsLabel.setZValue(1000) self.fpsLabel.setPos(Colors.stageStartX, 600 - QtGui.QFontMetricsF(Colors.buttonFont()).height() - 5) self.mainSceneRoot = QtGui.QGraphicsWidget() self.scene.addItem(self.mainSceneRoot) self.companyLogo = ImageItem( QtGui.QImage(':/images/trolltech-logo.png'), 1000, 1000, self.scene, None, True, 0.5) self.qtLogo = ImageItem( QtGui.QImage(':/images/qtlogo_small.png'), 1000, 1000, self.scene, None, True, 0.5) self.companyLogo.setZValue(100) self.qtLogo.setZValue(100) self.pausedLabel = DemoTextItem("PAUSED", Colors.buttonFont(), QtCore.Qt.white, -1, self.scene, None) self.pausedLabel.setZValue(100) fm = QtGui.QFontMetricsF(Colors.buttonFont()) self.pausedLabel.setPos(Colors.stageWidth - fm.width("PAUSED"), 590 - fm.height()) self.pausedLabel.setRecursiveVisible(False) def checkAdapt(self): if self.doneAdapt or Colors.noTimerUpdate or self.demoStartTime.elapsed() < 2000: return self.doneAdapt = True self.forceFpsMedianCalculation() Colors.benchmarkFps = self.fpsMedian Colors.debug("- benchmark: %d FPS" % int(Colors.benchmarkFps)) if Colors.noAdapt: return if self.fpsMedian < 30: ticker = MenuManager.instance().ticker if ticker and ticker.scene(): self.scene.removeItem(ticker) Colors.noTimerUpdate = True self.switchTimerOnOff(False) if self.fpsLabel: self.fpsLabel.setText("FPS: (%d)" % int(self.fpsMedian)) Colors.debug("- benchmark adaption: removed ticker (fps < 30)") if self.fpsMedian < 20: Colors.noAnimations = True Colors.debug("- benchmark adaption: animations switched off (fps < 20)") Colors.adapted = True def drawBackgroundToPixmap(self): r = self.scene.sceneRect() self.background = QtGui.QPixmap(QtCore.qRound(r.width()), QtCore.qRound(r.height())) self.background.fill(QtCore.Qt.black) painter = QtGui.QPainter(self.background) bg = QtGui.QImage(':/images/demobg.png') painter.drawImage(0, 0, bg) def drawBackground(self, painter, rect): painter.drawPixmap(QtCore.QPoint(0, 0), self.background) def toggleFullscreen(self): if self.isFullScreen(): self.enableMask(True) self.showNormal() if MenuManager.instance().ticker: MenuManager.instance().ticker.pause(False) else: self.enableMask(False) self.showFullScreen() def keyPressEvent(self, event): if event.key() == QtCore.Qt.Key_Escape: self.quit() elif event.key() == QtCore.Qt.Key_F1: s = "" s += "Rendering system: " if Colors.openGlRendering: s += "OpenGL" else: s += "software" s += "\nAdapt: " s += ["on", "off"][Colors.noAdapt] s += "\nAdaption occured: " s += ["no", "yes"][Colors.adapted] s += "\nOpenGL version: " s += Colors.glVersion w = QtGui.QWidget() s += "\nColor bit depth: %d" % w.depth() s += "\nWanted FPS: %d" % Colors.fps s += "\nBenchmarked FPS: "; if Colors.benchmarkFps != -1: s += "%d" % Colors.benchmarkFps else: s += "not calculated" s += "\nAnimations: "; s += ["on", "off"][Colors.noAnimations] s += "\nBlending: "; s += ["on", "off"][Colors.useEightBitPalette] s += "\nTicker: "; s += ["on", "off"][Colors.noTicker] s += "\nPixmaps: "; s += ["off", "on"][Colors.usePixmaps] s += "\nRescale images on resize: "; s += ["on", "off"][Colors.noRescale] s += "\nTimer based updates: "; s += ["on", "off"][Colors.noTimerUpdate] s += "\nSeparate loop: "; s += ["no", "yes"][Colors.useLoop] s += "\nScreen sync: "; s += ["yes", "no"][Colors.noScreenSync] QtGui.QMessageBox.information(None, "Current configuration", s) super(MainWindow, self).keyPressEvent(event) def focusInEvent(self, event): if not Colors.pause: return if MenuManager.instance().ticker: MenuManager.instance().ticker.pause(False) code = MenuManager.instance().currentMenuCode if code in (MenuManager.ROOT, MenuManager.MENU1): self.switchTimerOnOff(True) self.pausedLabel.setRecursiveVisible(False) def focusOutEvent(self, event): if not Colors.pause: return if MenuManager.instance().ticker: MenuManager.instance().ticker.pause(True) code = MenuManager.instance().currentMenuCode if code in (MenuManager.ROOT, MenuManager.MENU1): self.switchTimerOnOff(False) self.pausedLabel.setRecursiveVisible(True) def resizeEvent(self, event): self.resetMatrix() self.scale(event.size().width() / 800.0, event.size().height() / 600.0) super(MainWindow, self).resizeEvent(event) DemoItem.setMatrix(self.matrix()) if self.companyLogo: r = self.scene.sceneRect() ttb = self.companyLogo.boundingRect() self.companyLogo.setPos(int((r.width() - ttb.width()) / 2), 595 - ttb.height()) qtb = self.qtLogo.boundingRect() self.qtLogo.setPos(802 - qtb.width(), 0) # Changing size will almost always hurt FPS during the change so ignore # it. self.fpsHistory = [] def closeEvent(self, event): self.quit() def quit(self): # This is a bit of a hack to avoid calling QCoreApplication.quit() # which causes a number of error messages from # QGLContext::makeCurrent() to be generated (on x11 and starting with # Qt v4.7) when the interpreter is closing down. import sys sys.exit() PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/menucontent.py0000644000076500000240000001202712536324427023105 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore from colors import Colors from demoitem import DemoItem from demoitemanimation import DemoItemAnimation from demotextitem import DemoTextItem from headingitem import HeadingItem class MenuContentItem(DemoItem): def __init__(self, el, scene=None, parent=None): super(MenuContentItem, self).__init__(scene, parent) self.name = str(el.attribute('name')) self.heading = None self.description1 = None self.description2 = None readme_dir = QtCore.QFileInfo(__file__).dir() readme_dir.cdUp() if str(el.tagName()) != 'demos': readme_dir.cdUp() readme_dir.cd(el.attribute('dirname')) self.readmePath = readme_dir.absoluteFilePath('README') def prepare(self): if not self.prepared: self.prepared= True self.createContent() def animationStopped(self, id): if self.name == Colors.rootMenuName: # Optimization hack. return if id == DemoItemAnimation.ANIM_OUT: # Free up some memory self.heading = None self.description1 = None self.description2 = None self.prepared = False def loadDescription(self, startPara, nrPara): readme = QtCore.QFile(self.readmePath) if not readme.open(QtCore.QFile.ReadOnly): Colors.debug("- MenuContentItem.loadDescription: Could not load:", self.readmePath) return "" in_str = QtCore.QTextStream(readme) # Skip a certain number of paragraphs. while startPara: if not in_str.readLine(): startPara -= 1 # Read in the number of wanted paragraphs. result = '' line = in_str.readLine() while True: result += line + " " line = in_str.readLine() if not line: nrPara -= 1 line = "

    " + in_str.readLine() if nrPara == 0 or in_str.atEnd(): break return Colors.contentColor + result def createContent(self): # Create the items. self.heading = HeadingItem(self.name, self.scene(), self) para1 = self.loadDescription(0, 1) if not para1: para1 = Colors.contentColor + "Could not load description. Ensure that the documentation for Qt is built." bgcolor = Colors.sceneBg1.darker(200) bgcolor.setAlpha(100) self.description1 = DemoTextItem(para1, Colors.contentFont(), Colors.heading, 500, self.scene(), self, DemoTextItem.STATIC_TEXT) self.description2 = DemoTextItem(self.loadDescription(1, 2), Colors.contentFont(), Colors.heading, 250, self.scene(), self, DemoTextItem.STATIC_TEXT) # Place the items on screen. self.heading.setPos(0, 3) self.description1.setPos(0, self.heading.pos().y() + self.heading.boundingRect().height() + 10) self.description2.setPos(0, self.description1.pos().y() + self.description1.boundingRect().height() + 15) def boundingRect(self): return QtCore.QRectF(0, 0, 500, 350) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/menumanager.py0000644000076500000240000012341112536324427023045 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# import os import sys from PyQt4 import QtCore, QtGui, QtXml from colors import Colors from demoitemanimation import DemoItemAnimation from examplecontent import ExampleContent from itemcircleanimation import ItemCircleAnimation from menucontent import MenuContentItem from score import Score from textbutton import TextButton class MenuManager(QtCore.QObject): ROOT, MENU1, MENU2, LAUNCH, DOCUMENTATION, QUIT, FULLSCREEN, UP, DOWN, \ BACK, LAUNCH_QML = range(11) pInstance = None def __init__(self): super(MenuManager, self).__init__() self.contentsDoc = None self.assistantProcess = QtCore.QProcess() self.helpRootUrl = '' self.docDir = QtCore.QDir() self.imgDir = QtCore.QDir() self.info = {} self.window = None self.qmlRoot = None self.declarativeEngine = None self.ticker = None self.tickerInAnim = None self.upButton = None self.downButton = None self.helpEngine = None self.score = Score() self.currentMenu = "[no menu visible]" self.currentCategory = "[no category visible]" self.currentMenuButtons = "[no menu buttons visible]" self.currentInfo = "[no info visible]" self.currentMenuCode = -1 self.readXmlDocument() self.initHelpEngine() @classmethod def instance(cls): if cls.pInstance is None: cls.pInstance = cls() return cls.pInstance def getResource(self, name): if self.helpEngine is None: return QtCore.QByteArray() ba = self.helpEngine.fileData(QtCore.QUrl(name)) if ba.isEmpty(): Colors.debug(" - WARNING: Could not get", name) return ba def readXmlDocument(self): self.contentsDoc = QtXml.QDomDocument() xml_file = QtCore.QFile(':/xml/examples.xml') statusOK, errorStr, errorLine, errorColumn = \ self.contentsDoc.setContent(xml_file, True) if not statusOK: QtGui.QMessageBox.critical(None, "DOM Parser", "Could not read or find the contents document. Error at " "line %d, column %d:\n%s" % (errorLine, errorColumn, errorStr)) sys.exit(-1) def initHelpEngine(self): # Qt5's QtHelp crashes on exit because of an apparent bug in the tidy # up of (non-existent) database connections in QtSql. if QtCore.qVersion().startswith('5'): return from PyQt4 import QtHelp self.helpRootUrl = 'qthelp://com.trolltech.qt.%d%d%d/qdoc/' % (QtCore.QT_VERSION >> 16, (QtCore.QT_VERSION >> 8) & 0xff, QtCore.QT_VERSION & 0xff) # Store help collection file in cache dir of assistant. cacheDir = QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.DataLocation) + '/Trolltech/Assistant/' helpDataFile = 'qtdemo_%s.qhc' % QtCore.QT_VERSION_STR dir = QtCore.QDir() if not dir.exists(cacheDir): dir.mkpath(cacheDir) # Create help engine (and new helpDataFile if it does not exist). self.helpEngine = QtHelp.QHelpEngineCore(cacheDir + helpDataFile) self.helpEngine.setupData() qtDocRoot = QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.DocumentationPath) + '/qch' qtDocRoot = QtCore.QDir(qtDocRoot).absolutePath() qchFiles = ['/qt.qch', '/designer.qch', '/linguist.qch'] oldDir = self.helpEngine.customValue('docDir', '') if oldDir != qtDocRoot: for qchFile in qchFiles: self.helpEngine.unregisterDocumentation(QtHelp.QHelpEngineCore.namespaceName(qtDocRoot + qchFile)) # If the data that the engine will work on is not yet registered, do it # now. for qchFile in qchFiles: self.helpEngine.registerDocumentation(qtDocRoot + qchFile) self.helpEngine.setCustomValue('docDir', qtDocRoot) def itemSelected(self, userCode, menuName): if userCode == MenuManager.LAUNCH: self.launchExample(self.currentInfo) elif userCode == MenuManager.LAUNCH_QML: self.launchQmlExample(self.currentInfo) elif userCode == MenuManager.DOCUMENTATION: self.showDocInAssistant(self.currentInfo) elif userCode == MenuManager.QUIT: self.window.quit() elif userCode == MenuManager.FULLSCREEN: self.window.toggleFullscreen() elif userCode == MenuManager.ROOT: # Out. self.score.queueMovie(self.currentMenu + ' -out', Score.FROM_START, Score.LOCK_ITEMS) self.score.queueMovie(self.currentMenuButtons + ' -out', Score.FROM_START, Score.LOCK_ITEMS) self.score.queueMovie(self.currentInfo + ' -out') self.score.queueMovie(self.currentInfo + ' -buttons -out', Score.NEW_ANIMATION_ONLY) self.score.queueMovie('back -out', Score.ONLY_IF_VISIBLE) if self.qmlRoot is not None: self.qmlRoot.setProperty('show', False) # Book-keeping. self.currentMenuCode = MenuManager.ROOT self.currentMenu = menuName + ' -menu1' self.currentMenuButtons = menuName + ' -buttons' self.currentInfo = menuName + ' -info' # In. self.score.queueMovie('upndown -shake') self.score.queueMovie(self.currentMenu, Score.FROM_START, Score.UNLOCK_ITEMS) self.score.queueMovie(self.currentMenuButtons, Score.FROM_START, Score.UNLOCK_ITEMS) self.score.queueMovie(self.currentInfo) if not Colors.noTicker: self.ticker.doIntroTransitions = True self.tickerInAnim.startDelay = 2000 self.ticker.useGuideQt() self.score.queueMovie('ticker', Score.NEW_ANIMATION_ONLY) elif userCode == MenuManager.MENU1: # Out. self.score.queueMovie(self.currentMenu + ' -out', Score.FROM_START, Score.LOCK_ITEMS) self.score.queueMovie(self.currentMenuButtons + ' -out', Score.FROM_START, Score.LOCK_ITEMS) self.score.queueMovie(self.currentInfo + ' -out') if self.qmlRoot is not None: self.qmlRoot.setProperty('show', False) # Book-keeping. self.currentMenuCode = MenuManager.MENU1 self.currentCategory = menuName self.currentMenu = menuName + ' -menu1' self.currentInfo = menuName + ' -info' # In. self.score.queueMovie('upndown -shake') self.score.queueMovie('back -in') self.score.queueMovie(self.currentMenu, Score.FROM_START, Score.UNLOCK_ITEMS) self.score.queueMovie(self.currentInfo) if not Colors.noTicker: self.ticker.useGuideTt() elif userCode == MenuManager.MENU2: # Out. self.score.queueMovie(self.currentInfo + ' -out', Score.NEW_ANIMATION_ONLY) self.score.queueMovie(self.currentInfo + ' -buttons -out', Score.NEW_ANIMATION_ONLY) if self.qmlRoot is not None: self.qmlRoot.setProperty('show', False) # Book-keeping. self.currentMenuCode = MenuManager.MENU2 self.currentInfo = menuName # In/shake. self.score.queueMovie('upndown -shake') self.score.queueMovie('back -shake') self.score.queueMovie(self.currentMenu + ' -shake') self.score.queueMovie(self.currentInfo, Score.NEW_ANIMATION_ONLY) self.score.queueMovie(self.currentInfo + ' -buttons', Score.NEW_ANIMATION_ONLY) if not Colors.noTicker: self.score.queueMovie('ticker -out', Score.NEW_ANIMATION_ONLY) elif userCode == MenuManager.UP: backMenu = self.info[self.currentMenu]['back'] if backMenu: self.score.queueMovie(self.currentMenu + ' -top_out', Score.FROM_START, Score.LOCK_ITEMS) self.score.queueMovie(backMenu + ' -bottom_in', Score.FROM_START, Score.UNLOCK_ITEMS) self.currentMenu = backMenu elif userCode == MenuManager.DOWN: moreMenu = self.info[self.currentMenu]['more'] if moreMenu: self.score.queueMovie(self.currentMenu + ' -bottom_out', Score.FROM_START, Score.LOCK_ITEMS) self.score.queueMovie(moreMenu + ' -top_in', Score.FROM_START, Score.UNLOCK_ITEMS) self.currentMenu = moreMenu elif userCode == MenuManager.BACK: if self.currentMenuCode == MenuManager.MENU2: # Out. self.score.queueMovie(self.currentInfo + ' -out', Score.NEW_ANIMATION_ONLY) self.score.queueMovie(self.currentInfo + ' -buttons -out', Score.NEW_ANIMATION_ONLY) if self.qmlRoot is not None: self.qmlRoot.setProperty('show', False) # Book-keeping. self.currentMenuCode = MenuManager.MENU1 self.currentMenuButtons = self.currentCategory + ' -buttons' self.currentInfo = self.currentCategory + ' -info' # In/shake. self.score.queueMovie('upndown -shake') self.score.queueMovie(self.currentMenu + ' -shake') self.score.queueMovie(self.currentInfo, Score.NEW_ANIMATION_ONLY) self.score.queueMovie(self.currentInfo + ' -buttons', Score.NEW_ANIMATION_ONLY) if not Colors.noTicker: self.ticker.doIntroTransitions = False self.tickerInAnim.startDelay = 500 self.score.queueMovie('ticker', Score.NEW_ANIMATION_ONLY) elif self.currentMenuCode != MenuManager.ROOT: self.itemSelected(MenuManager.ROOT, Colors.rootMenuName) # Update back and more buttons. if self.info.setdefault(self.currentMenu, {}).get('back'): back_state = TextButton.OFF else: back_state = TextButton.DISABLED if self.info[self.currentMenu].get('more'): more_state = TextButton.OFF else: more_state = TextButton.DISABLED self.upButton.setState(back_state) self.downButton.setState(more_state) if self.score.hasQueuedMovies(): self.score.playQue() # Playing new movies might include loading etc., so ignore the FPS # at this point. self.window.fpsHistory = [] def showDocInAssistant(self, name): url = self.resolveDocUrl(name) Colors.debug("Sending URL to Assistant:", url) # Start assistant if it's not already running. if self.assistantProcess.state() != QtCore.QProcess.Running: app = QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.BinariesPath) + QtCore.QDir.separator() if sys.platform == 'darwin': app += 'Assistant.app/Contents/MacOS/Assistant' else: app += 'assistant' args = ['-enableRemoteControl'] self.assistantProcess.start(app, args) if not self.assistantProcess.waitForStarted(): QtGui.QMessageBox.critical(None, "PyQt Demo", "Could not start %s." % app) return # Send command through remote control even if the process was just # started to activate assistant and bring it to the front. cmd_str = QtCore.QTextStream(self.assistantProcess) cmd_str << 'SetSource ' << url << '\n' def launchExample(self, name): executable = self.resolveExeFile(name) process = QtCore.QProcess(self) process.finished.connect(self.exampleFinished) process.error.connect(self.exampleError) if sys.platform == 'win32': # Make sure it finds the DLLs on Windows. curpath = os.getenv('PATH') newpath = 'PATH=%s;%s' % (QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.BinariesPath), curpath) process.setEnvironment([newpath]) if self.info[name]['changedirectory'] != 'false': workingDirectory = self.resolveDataDir(name) process.setWorkingDirectory(workingDirectory) Colors.debug("Setting working directory:", workingDirectory) Colors.debug("Launching:", executable) process.start(sys.executable, [executable]) def launchQmlExample(self, name): if self.declarativeEngine is None: QtGui.QMessageBox.critical(None, "QtDeclarative unsupported", "The QtDeclarative module is not supported by this " "installation of PyQt.", QtGui.QMessageBox.Cancel) return if self.qmlRoot is None: self.exampleError(QtCore.QProcess.UnknownError) return qml_dir = self.resolveDataDir(name) qml_file = QtCore.QFile(qml_dir + '/main.qml') if not qml_file.exists(): qml_file.setFileName(qml_dir + '/' + qml_dir.split('/')[-1] + '.qml') if not qml_file.exists(): self.exampleError(QtCore.QProcess.UnknownError) return # Unload any existing component. self.qmlRoot.setProperty('qmlFile', '') self.qmlRoot.setProperty('show', True) self.qmlRoot.setProperty('qmlFile', QtCore.QUrl.fromLocalFile(qml_file.fileName())) def exampleFinished(self): pass def exampleError(self, error): if error != QtCore.QProcess.Crashed: QtGui.QMessageBox.critical(None, "Failed to launch the example", "Could not launch the example. Ensure that it has been " "built.", QtGui.QMessageBox.Cancel) def init(self, window): self.window = window # Create div. self.createTicker() self.createUpnDownButtons() self.createBackButton() # Create first level menu. rootElement = self.contentsDoc.documentElement() self.createRootMenu(rootElement) # Create second level menus. level2MenuNode = rootElement.firstChild() while not level2MenuNode.isNull(): level2MenuElement = level2MenuNode.toElement() self.createSubMenu(level2MenuElement) # Create leaf menu and example info. exampleNode = level2MenuElement.firstChild() while not exampleNode.isNull(): exampleElement = exampleNode.toElement() self.readInfoAboutExample(exampleElement) self.createLeafMenu(exampleElement) exampleNode = exampleNode.nextSibling() level2MenuNode = level2MenuNode.nextSibling() # Support QML if possible. try: from PyQt4 import QtDeclarative except ImportError: return self.declarativeEngine = QtDeclarative.QDeclarativeEngine(self) self.declarativeEngine.quit.connect(self.quitQML) component = QtDeclarative.QDeclarativeComponent(self.declarativeEngine, QtCore.QUrl('qrc:/qml/qmlShell.qml'), self) if component.isReady(): self.qmlRoot = component.create() if self.qmlRoot is not None: self.qmlRoot.setHeight(window.scene.sceneRect().height()) self.qmlRoot.setWidth(window.scene.sceneRect().width()) self.qmlRoot.setZValue(101) self.qmlRoot.setCursor(QtCore.Qt.ArrowCursor) window.scene.addItem(self.qmlRoot) window.viewport().setFocusPolicy(QtCore.Qt.NoFocus) window.setFocusPolicy(QtCore.Qt.StrongFocus) window.scene.setStickyFocus(True) window.setFocus() else: Colors.debug("Error initializing QML subsystem, Declarative examples will not work") def quitQML(self): if self.qmlRoot is not None: self.qmlRoot.setProperty('show', False) def readInfoAboutExample(self, example): name = str(example.attribute('name')) if name in self.info: Colors.debug("__WARNING: MenuManager.readInfoAboutExample: " "Demo/example with name", name, "appears twice in " "the xml-file!__") self.info.setdefault(name, {})['filename'] = str(example.attribute('filename')) self.info[name]['category'] = str(example.parentNode().toElement().tagName()) self.info[name]['dirname'] = str(example.parentNode().toElement().attribute('dirname')) self.info[name]['changedirectory'] = str(example.attribute('changedirectory')) self.info[name]['image'] = str(example.attribute('image')) self.info[name]['qml'] = str(example.attribute('qml')) def resolveDir(self, name): dirName = self.info[name]['dirname'] category = self.info[name]['category'] fileName = self.info[name]['filename'].split('/') dir = QtCore.QFileInfo(__file__).dir() # To the 'demos' directory. dir.cdUp() # To the 'examples' directory. dir.cdUp() dir.cd(dirName) if len(fileName) > 1: dir.cd('/'.join(fileName[:-1])) # This may legitimately fail if the example is just a simple .py file. dir.cd(fileName[-1]) return dir def resolveDataDir(self, name): return self.resolveDir(name).absolutePath() def resolveExeFile(self, name): dir = self.resolveDir(name) fileName = self.info[name]['filename'].split('/')[-1] pyFile = QtCore.QFile(dir.path() + '/' + fileName + '.py') if pyFile.exists(): return pyFile.fileName() pywFile = QtCore.QFile(dir.path() + '/' + fileName + '.pyw') if pywFile.exists(): return pywFile.fileName() Colors.debug("- WARNING: Could not resolve executable:", dir.path(), fileName) return '__executable not found__' def resolveDocUrl(self, name): dirName = self.info[name]['dirname'] category = self.info[name]['category'] fileName = self.info[name]['filename'] if category == 'demos': return self.helpRootUrl + 'demos-' + fileName + '.html' else: return self.helpRootUrl + dirName.replace('/', '-') + '-' + fileName + '.html' def resolveImageUrl(self, name): return self.helpRootUrl + 'images/' + name def getHtml(self, name): return self.getResource(self.resolveDocUrl(name)) def getImage(self, name): imageName = self.info[name]['image'] category = self.info[name]['category'] fileName = self.info[name]['filename'] if self.info[name]['qml'] == 'true': fileName = 'qml-' + fileName.split('/')[-1] if not imageName: if category == 'demos': imageName = fileName + '-demo.png' else: imageName = fileName + '-example.png' if self.getResource(self.resolveImageUrl(imageName)).isEmpty(): imageName = fileName + '.png' if self.getResource(self.resolveImageUrl(imageName)).isEmpty(): imageName = fileName + 'example.png' return self.getResource(self.resolveImageUrl(imageName)) def createRootMenu(self, el): name = str(el.attribute('name')) self.createMenu(el, MenuManager.MENU1) self.createInfo( MenuContentItem(el, self.window.scene, self.window.mainSceneRoot), name + ' -info') menuButtonsIn = self.score.insertMovie(name + ' -buttons') menuButtonsOut = self.score.insertMovie(name + ' -buttons -out') self.createLowLeftButton("Quit", MenuManager.QUIT, menuButtonsIn, menuButtonsOut, None) self.createLowRightButton("Toggle fullscreen", MenuManager.FULLSCREEN, menuButtonsIn, menuButtonsOut, None) def createSubMenu(self, el): name = str(el.attribute('name')) self.createMenu(el, MenuManager.MENU2) self.createInfo( MenuContentItem(el, self.window.scene, self.window.mainSceneRoot), name + ' -info') def createLeafMenu(self, el): name = str(el.attribute('name')) self.createInfo( ExampleContent(name, self.window.scene, self.window.mainSceneRoot), name) infoButtonsIn = self.score.insertMovie(name + ' -buttons') infoButtonsOut = self.score.insertMovie(name + ' -buttons -out') self.createLowRightLeafButton("Documentation", 600, MenuManager.DOCUMENTATION, infoButtonsIn, infoButtonsOut, None) if str(el.attribute('executable')) != 'false': self.createLowRightLeafButton("Launch", 405, MenuManager.LAUNCH, infoButtonsIn, infoButtonsOut, None) elif str(el.attribute('qml')) == 'true': self.createLowRightLeafButton("Display", 405, MenuManager.LAUNCH_QML, infoButtonsIn, infoButtonsOut, None) def createMenu(self, category, type): sw = self.window.scene.sceneRect().width() xOffset = 15 yOffset = 10 maxExamples = Colors.menuCount menuIndex = 1 name = str(category.attribute('name')) currentNode = category.firstChild() currentMenu = '%s -menu%d' % (name, menuIndex) while not currentNode.isNull(): movieIn = self.score.insertMovie(currentMenu) movieOut = self.score.insertMovie(currentMenu + ' -out') movieNextTopOut = self.score.insertMovie(currentMenu + ' -top_out') movieNextBottomOut = self.score.insertMovie(currentMenu + ' -bottom_out') movieNextTopIn = self.score.insertMovie(currentMenu + ' -top_in') movieNextBottomIn = self.score.insertMovie(currentMenu + ' -bottom_in') movieShake = self.score.insertMovie(currentMenu + ' -shake') i = 0 while not currentNode.isNull() and i < maxExamples: # Create a normal menu button. label = str(currentNode.toElement().attribute('name')) item = TextButton(label, TextButton.LEFT, type, self.window.scene, self.window.mainSceneRoot) currentNode = currentNode.nextSibling() # Skip the OpenGL examples if they can't run. if str(currentNode.toElement().attribute('dirname')) == 'opengl': if not Colors.openGlAvailable: currentNode = currentNode.nextSibling() item.setRecursiveVisible(False) item.setZValue(10) ih = item.sceneBoundingRect().height() iw = item.sceneBoundingRect().width() ihp = ih + 3 # Create in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(float(1000 + (i * 20)) * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(xOffset, -ih)) anim.setPosAt(0.20, QtCore.QPointF(xOffset, -ih)) anim.setPosAt(0.50, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY + (10 * float(i / 4.0)))) anim.setPosAt(0.60, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setPosAt(0.70, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY + (5 * float(i / 4.0)))) anim.setPosAt(0.80, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setPosAt(0.90, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY + (2 * float(i / 4.0)))) anim.setPosAt(1.00, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieIn.append(anim) # Create out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.hideOnFinished = True anim.setDuration((700 + (30 * i)) * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setPosAt(0.60, QtCore.QPointF(xOffset, 600 - ih - ih)) anim.setPosAt(0.65, QtCore.QPointF(xOffset + 20, 600 - ih)) anim.setPosAt(1.00, QtCore.QPointF(sw + iw, 600 - ih)) movieOut.append(anim) # Create shake-animation. anim = DemoItemAnimation(item) anim.setDuration(700 * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setPosAt(0.55, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY - i*2.0)) anim.setPosAt(0.70, QtCore.QPointF(xOffset - 10, (i * ihp) + yOffset + Colors.contentStartY - i*1.5)) anim.setPosAt(0.80, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY - i*1.0)) anim.setPosAt(0.90, QtCore.QPointF(xOffset - 2, (i * ihp) + yOffset + Colors.contentStartY - i*0.5)) anim.setPosAt(1.00, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieShake.append(anim) # Create next-menu top-out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.hideOnFinished = True anim.setDuration((200 + (30 * i)) * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setPosAt(0.70, QtCore.QPointF(xOffset, yOffset + Colors.contentStartY)) anim.setPosAt(1.00, QtCore.QPointF(-iw, yOffset + Colors.contentStartY)) movieNextTopOut.append(anim) # Create next-menu bottom-out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.hideOnFinished = True anim.setDuration((200 + (30 * i)) * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setPosAt(0.70, QtCore.QPointF(xOffset, (maxExamples * ihp) + yOffset + Colors.contentStartY)) anim.setPosAt(1.00, QtCore.QPointF(-iw, (maxExamples * ihp) + yOffset + Colors.contentStartY)) movieNextBottomOut.append(anim) # Create next-menu top-in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration((700 - (30 * i)) * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(-iw, yOffset + Colors.contentStartY)) anim.setPosAt(0.30, QtCore.QPointF(xOffset, yOffset + Colors.contentStartY)) anim.setPosAt(1.00, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieNextTopIn.append(anim) # Create next-menu bottom-in-animation. reverse = maxExamples - i anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration((1000 - (30 * reverse)) * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(-iw, (maxExamples * ihp) + yOffset + Colors.contentStartY)) anim.setPosAt(0.30, QtCore.QPointF(xOffset, (maxExamples * ihp) + yOffset + Colors.contentStartY)) anim.setPosAt(1.00, QtCore.QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieNextBottomIn.append(anim) i += 1 if not currentNode.isNull() and i == maxExamples: # We need another menu, so register for 'more' and 'back' # buttons. menuIndex += 1 self.info.setdefault(currentMenu, {})['more'] = '%s -menu%d' % (name, menuIndex) currentMenu = '%s -menu%d' % (name, menuIndex) self.info.setdefault(currentMenu, {})['back'] = '%s -menu%d' % (name, menuIndex - 1) def createLowLeftButton(self, label, type, movieIn, movieOut, movieShake, menuString=""): button = TextButton(label, TextButton.RIGHT, type, self.window.scene, self.window.mainSceneRoot, TextButton.PANEL) if menuString: button.setMenuString(menuString) button.setRecursiveVisible(False) button.setZValue(10) iw = button.sceneBoundingRect().width() xOffset = 15 # Create in-animation. buttonIn = DemoItemAnimation(button, DemoItemAnimation.ANIM_IN) buttonIn.setDuration(1800 * Colors.animSpeedButtons) buttonIn.setStartPos(QtCore.QPointF(-iw, Colors.contentStartY + Colors.contentHeight - 35)) buttonIn.setPosAt(0.5, QtCore.QPointF(-iw, Colors.contentStartY + Colors.contentHeight - 35)) buttonIn.setPosAt(0.7, QtCore.QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 35)) buttonIn.setPosAt(1.0, QtCore.QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) movieIn.append(buttonIn) # Create out-animation. buttonOut = DemoItemAnimation(button, DemoItemAnimation.ANIM_OUT) buttonOut.hideOnFinished = True buttonOut.setDuration(400 * Colors.animSpeedButtons) buttonOut.setStartPos(QtCore.QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) buttonOut.setPosAt(1.0, QtCore.QPointF(-iw, Colors.contentStartY + Colors.contentHeight - 26)) movieOut.append(buttonOut) if movieShake is not None: shakeAnim = DemoItemAnimation(button, DemoItemAnimation.ANIM_UNSPECIFIED) shakeAnim.timeline.setCurveShape(QtCore.QTimeLine.LinearCurve) shakeAnim.setDuration(650) shakeAnim.setStartPos(buttonIn.posAt(1.0)) shakeAnim.setPosAt(0.60, buttonIn.posAt(1.0)) shakeAnim.setPosAt(0.70, buttonIn.posAt(1.0) + QtCore.QPointF(-3, 0)) shakeAnim.setPosAt(0.80, buttonIn.posAt(1.0) + QtCore.QPointF(2, 0)) shakeAnim.setPosAt(0.90, buttonIn.posAt(1.0) + QtCore.QPointF(-1, 0)) shakeAnim.setPosAt(1.00, buttonIn.posAt(1.0)) movieShake.append(shakeAnim) def createLowRightButton(self, label, type, movieIn, movieOut, movieShake): item = TextButton(label, TextButton.RIGHT, type, self.window.scene, self.window.mainSceneRoot, TextButton.PANEL) item.setRecursiveVisible(False) item.setZValue(10) sw = self.window.scene.sceneRect().width() xOffset = 70 # Create in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(1800 * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(sw, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(0.5, QtCore.QPointF(sw, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(0.7, QtCore.QPointF(xOffset + 535, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(1.0, QtCore.QPointF(xOffset + 535, Colors.contentStartY + Colors.contentHeight - 26)) movieIn.append(anim) # Create out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.hideOnFinished = True anim.setDuration(400 * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(xOffset + 535, Colors.contentStartY + Colors.contentHeight - 26)) anim.setPosAt(1.0, QtCore.QPointF(sw, Colors.contentStartY + Colors.contentHeight - 26)) movieOut.append(anim) def createLowRightLeafButton(self, label, xOffset, type, movieIn, movieOut, movieShake): item = TextButton(label, TextButton.RIGHT, type, self.window.scene, self.window.mainSceneRoot, TextButton.PANEL) item.setRecursiveVisible(False) item.setZValue(10) sw = self.window.scene.sceneRect().width() sh = self.window.scene.sceneRect().height() # Create in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(1050 * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(sw, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(0.10, QtCore.QPointF(sw, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(0.30, QtCore.QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(0.35, QtCore.QPointF(xOffset + 30, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(0.40, QtCore.QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(0.45, QtCore.QPointF(xOffset + 5, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(0.50, QtCore.QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 35)) anim.setPosAt(1.00, QtCore.QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) movieIn.append(anim) # Create out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.hideOnFinished = True anim.setDuration(300 * Colors.animSpeedButtons) anim.setStartPos(QtCore.QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) anim.setPosAt(1.0, QtCore.QPointF(xOffset, sh)) movieOut.append(anim) def createInfo(self, item, name): movie_in = self.score.insertMovie(name) movie_out = self.score.insertMovie(name + ' -out') item.setZValue(8) item.setRecursiveVisible(False) xOffset = 230.0 infoIn = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) infoIn.timeline.setCurveShape(QtCore.QTimeLine.LinearCurve) infoIn.setDuration(650) infoIn.setStartPos(QtCore.QPointF(self.window.scene.sceneRect().width(), Colors.contentStartY)) infoIn.setPosAt(0.60, QtCore.QPointF(xOffset, Colors.contentStartY)) infoIn.setPosAt(0.70, QtCore.QPointF(xOffset + 20, Colors.contentStartY)) infoIn.setPosAt(0.80, QtCore.QPointF(xOffset, Colors.contentStartY)) infoIn.setPosAt(0.90, QtCore.QPointF(xOffset + 7, Colors.contentStartY)) infoIn.setPosAt(1.00, QtCore.QPointF(xOffset, Colors.contentStartY)) movie_in.append(infoIn) infoOut = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) infoOut.timeline.setCurveShape(QtCore.QTimeLine.EaseInCurve) infoOut.setDuration(300) infoOut.hideOnFinished = True infoOut.setStartPos(QtCore.QPointF(xOffset, Colors.contentStartY)) infoOut.setPosAt(1.0, QtCore.QPointF(-600, Colors.contentStartY)) movie_out.append(infoOut) def createTicker(self): if Colors.noTicker: return movie_in = self.score.insertMovie('ticker') movie_out = self.score.insertMovie('ticker -out') movie_activate = self.score.insertMovie('ticker -activate') movie_deactivate = self.score.insertMovie('ticker -deactivate') self.ticker = ItemCircleAnimation(self.window.scene) self.ticker.setZValue(50) self.ticker.hide() # Move ticker in. qtendpos = 485 qtPosY = 120 self.tickerInAnim = DemoItemAnimation(self.ticker, DemoItemAnimation.ANIM_IN) self.tickerInAnim.setDuration(500) self.tickerInAnim.setStartPos(QtCore.QPointF(self.window.scene.sceneRect().width(), Colors.contentStartY + qtPosY)) self.tickerInAnim.setPosAt(0.60, QtCore.QPointF(qtendpos, Colors.contentStartY + qtPosY)) self.tickerInAnim.setPosAt(0.70, QtCore.QPointF(qtendpos + 30, Colors.contentStartY + qtPosY)) self.tickerInAnim.setPosAt(0.80, QtCore.QPointF(qtendpos, Colors.contentStartY + qtPosY)) self.tickerInAnim.setPosAt(0.90, QtCore.QPointF(qtendpos + 5, Colors.contentStartY + qtPosY)) self.tickerInAnim.setPosAt(1.00, QtCore.QPointF(qtendpos, Colors.contentStartY + qtPosY)) movie_in.append(self.tickerInAnim) # Move ticker out. qtOut = DemoItemAnimation(self.ticker, DemoItemAnimation.ANIM_OUT) qtOut.hideOnFinished = True qtOut.setDuration(500) qtOut.setStartPos(QtCore.QPointF(qtendpos, Colors.contentStartY + qtPosY)) qtOut.setPosAt(1.00, QtCore.QPointF(self.window.scene.sceneRect().width() + 700, Colors.contentStartY + qtPosY)) movie_out.append(qtOut) # Move ticker in on activate. qtActivate = DemoItemAnimation(self.ticker) qtActivate.setDuration(400) qtActivate.setStartPos(QtCore.QPointF(self.window.scene.sceneRect().width(), Colors.contentStartY + qtPosY)) qtActivate.setPosAt(0.60, QtCore.QPointF(qtendpos, Colors.contentStartY + qtPosY)) qtActivate.setPosAt(0.70, QtCore.QPointF(qtendpos + 30, Colors.contentStartY + qtPosY)) qtActivate.setPosAt(0.80, QtCore.QPointF(qtendpos, Colors.contentStartY + qtPosY)) qtActivate.setPosAt(0.90, QtCore.QPointF(qtendpos + 5, Colors.contentStartY + qtPosY)) qtActivate.setPosAt(1.00, QtCore.QPointF(qtendpos, Colors.contentStartY + qtPosY)) movie_activate.append(qtActivate) # Move ticker out on deactivate. qtDeactivate = DemoItemAnimation(self.ticker) qtDeactivate.hideOnFinished = True qtDeactivate.setDuration(400) qtDeactivate.setStartPos(QtCore.QPointF(qtendpos, Colors.contentStartY + qtPosY)) qtDeactivate.setPosAt(1.00, QtCore.QPointF(qtendpos, 800)) movie_deactivate.append(qtDeactivate) def createUpnDownButtons(self): xOffset = 15.0 yOffset = 450.0 self.upButton = TextButton("", TextButton.LEFT, MenuManager.UP, self.window.scene, self.window.mainSceneRoot, TextButton.UP) self.upButton.prepare() self.upButton.setPos(xOffset, yOffset) self.upButton.setState(TextButton.DISABLED) self.downButton = TextButton("", TextButton.LEFT, MenuManager.DOWN, self.window.scene, self.window.mainSceneRoot, TextButton.DOWN) self.downButton.prepare() self.downButton.setPos(xOffset + 10 + self.downButton.sceneBoundingRect().width(), yOffset) movieShake = self.score.insertMovie('upndown -shake') shakeAnim = DemoItemAnimation(self.upButton, DemoItemAnimation.ANIM_UNSPECIFIED) shakeAnim.timeline.setCurveShape(QtCore.QTimeLine.LinearCurve) shakeAnim.setDuration(650) shakeAnim.setStartPos(self.upButton.pos()) shakeAnim.setPosAt(0.60, self.upButton.pos()) shakeAnim.setPosAt(0.70, self.upButton.pos() + QtCore.QPointF(-2, 0)) shakeAnim.setPosAt(0.80, self.upButton.pos() + QtCore.QPointF(1, 0)) shakeAnim.setPosAt(0.90, self.upButton.pos() + QtCore.QPointF(-1, 0)) shakeAnim.setPosAt(1.00, self.upButton.pos()) movieShake.append(shakeAnim) shakeAnim = DemoItemAnimation(self.downButton, DemoItemAnimation.ANIM_UNSPECIFIED) shakeAnim.timeline.setCurveShape(QtCore.QTimeLine.LinearCurve) shakeAnim.setDuration(650) shakeAnim.setStartPos(self.downButton.pos()) shakeAnim.setPosAt(0.60, self.downButton.pos()) shakeAnim.setPosAt(0.70, self.downButton.pos() + QtCore.QPointF(-5, 0)) shakeAnim.setPosAt(0.80, self.downButton.pos() + QtCore.QPointF(-3, 0)) shakeAnim.setPosAt(0.90, self.downButton.pos() + QtCore.QPointF(-1, 0)) shakeAnim.setPosAt(1.00, self.downButton.pos()) movieShake.append(shakeAnim) def createBackButton(self): backIn = self.score.insertMovie('back -in') backOut = self.score.insertMovie('back -out') backShake = self.score.insertMovie('back -shake') self.createLowLeftButton("Back", MenuManager.ROOT, backIn, backOut, backShake, Colors.rootMenuName) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/qmlShell.qml0000644000076500000240000001244412536324427022473 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the demonstration applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Digia. ** ** If you have questions regarding the use of this file, please use ** contact form at http://qt.digia.com ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 1.0 Item { id: main //height and width set by program to fill window //below properties are sometimes set from C++ property url qmlFile: '' property bool show: false Item{ id:embeddedViewer width: parent.width height: parent.height opacity: 0; z: 10 Loader{ id: loader z: 10 focus: true //Automatic FocusScope clip: true source: qmlFile anchors.centerIn: parent onStatusChanged:{ if(status == Loader.Null) { loader.focus = false;//fixes QTBUG11411, probably because the focusScope needs to gain focus to focus the right child }else if(status == Loader.Ready) { if(loader.item.width > 640) loader.item.width = 640; if(loader.item.height > 480) loader.item.height = 480; }} } Rectangle{ id: frame z: 9 anchors.fill: loader.status == Loader.Ready ? loader : errorTxt anchors.margins: -8 radius: 4 smooth: true border.color: "#88aaaaaa" gradient: Gradient{ GradientStop{ position: 0.0; color: "#14FFFFFF" } GradientStop{ position: 1.0; color: "#5AFFFFFF" } } MouseArea{ anchors.fill: parent acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton onClicked: loader.focus=true;/* and don't propagate to the 'exit' area*/ } Rectangle{ id: innerFrame anchors.margins: 7 anchors.bottomMargin: 8 anchors.rightMargin: 8 color: "black" border.color: "#44000000" anchors.fill:parent } } Rectangle{ id: closeButton width: 24 height: 24 z: 11 border.color: "#aaaaaaaa" gradient: Gradient{ GradientStop{ position: 0.0; color: "#34FFFFFF" } GradientStop{ position: 1.0; color: "#7AFFFFFF" } } anchors.left: frame.right anchors.bottom: frame.top anchors.margins: -(2*width/3) Text{ text: 'X' font.bold: true color: "white" font.pixelSize: 12 anchors.centerIn: parent } MouseArea{ anchors.fill: parent onClicked: main.show = false; } } Text{ id: errorTxt z: 10 anchors.centerIn: parent color: 'white' smooth: true visible: loader.status == Loader.Error textFormat: Text.RichText //Note that if loader is Error, it is because the file was found but there was an error creating the component //This means either we have a bug in our demos, or the required modules (which ship with Qt) did not deploy correctly text: "The example has failed to load.
    If you installed all Qt's C++ and QML modules then this is a bug!
    " + 'Report it at
    http://bugreports.qt-project.org'; onLinkActivated: Qt.openUrlExternally(link); } } Rectangle{ id: blackout //Maybe use a colorize effect instead? z: 8 anchors.fill: parent color: "#000000" opacity: 0 } MouseArea{ z: 8 enabled: main.show hoverEnabled: main.show //To steal focus from the buttons acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton anchors.fill: parent } states: [ State { name: "show" when: show == true PropertyChanges { target: embeddedViewer opacity: 1 } PropertyChanges { target: blackout opacity: 0.5 } } ] transitions: [//Should not be too long, because the component has already started running Transition { from: ''; to: "show"; reversible: true ParallelAnimation{ NumberAnimation{ properties: "opacity"; easing.type: Easing.InQuad; duration: 500} PropertyAction { target: loader; property: "focus"; value: true}//Might be needed to ensure the focus stays with us } } ] } PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/qtdemo.py0000755000076500000240000000636212536324427022047 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import qtdemo_rc3 except ImportError: import qtdemo_rc2 from colors import Colors from mainwindow import MainWindow from menumanager import MenuManager def artisticSleep(sleepTime): time = QtCore.QTime() time.restart() while time.elapsed() < sleepTime: QtCore.QCoreApplication.processEvents(QtCore.QEventLoop.AllEvents, 50) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) Colors.parseArgs(sys.argv) if sys.platform == 'win32': QtGui.QMessageBox.information(None, "Documentation Warning", "If you are using the GPL version of PyQt from the binary " "installer then you will probably see warning messages about " "missing documentation. This is because the installer does " "not include a copy of the Qt documentation as it is so " "large.") mainWindow = MainWindow() MenuManager.instance().init(mainWindow) mainWindow.setFocus() if Colors.fullscreen: mainWindow.showFullScreen() else: mainWindow.enableMask(True) mainWindow.show() artisticSleep(500) mainWindow.start() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/qtdemo.qrc0000644000076500000240000000047612536324427022201 0ustar philstaff00000000000000 xml/examples.xml images/qtlogo_small.png images/trolltech-logo.png images/demobg.png qmlShell.qml PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/qtdemo_rc2.py0000644000076500000240000070615112536324427022615 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Sat Feb 15 18:27:56 2014 # by: The Resource Compiler for PyQt (Qt v4.8.5) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x15\x24\ \x2f\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x0a\x2a\x2a\x0a\ \x2a\x2a\x20\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x43\x29\ \x20\x32\x30\x31\x32\x20\x44\x69\x67\x69\x61\x20\x50\x6c\x63\x20\ \x61\x6e\x64\x2f\x6f\x72\x20\x69\x74\x73\x20\x73\x75\x62\x73\x69\ \x64\x69\x61\x72\x79\x28\x2d\x69\x65\x73\x29\x2e\x0a\x2a\x2a\x20\ \x43\x6f\x6e\x74\x61\x63\x74\x3a\x20\x68\x74\x74\x70\x3a\x2f\x2f\ \x77\x77\x77\x2e\x71\x74\x2d\x70\x72\x6f\x6a\x65\x63\x74\x2e\x6f\ \x72\x67\x2f\x6c\x65\x67\x61\x6c\x0a\x2a\x2a\x0a\x2a\x2a\x20\x54\ \x68\x69\x73\x20\x66\x69\x6c\x65\x20\x69\x73\x20\x70\x61\x72\x74\ \x20\x6f\x66\x20\x74\x68\x65\x20\x64\x65\x6d\x6f\x6e\x73\x74\x72\ \x61\x74\x69\x6f\x6e\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\ \x6e\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x51\x74\x20\x54\x6f\x6f\ \x6c\x6b\x69\x74\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x24\x51\x54\x5f\ \x42\x45\x47\x49\x4e\x5f\x4c\x49\x43\x45\x4e\x53\x45\x3a\x4c\x47\ \x50\x4c\x24\x0a\x2a\x2a\x20\x4c\x69\x63\x65\x6e\x73\x65\x65\x73\ \x20\x68\x6f\x6c\x64\x69\x6e\x67\x20\x76\x61\x6c\x69\x64\x20\x51\ \x74\x20\x43\x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\x6c\x69\x63\ \x65\x6e\x73\x65\x73\x20\x6d\x61\x79\x20\x75\x73\x65\x20\x74\x68\ \x69\x73\x20\x66\x69\x6c\x65\x20\x69\x6e\x0a\x2a\x2a\x20\x61\x63\ \x63\x6f\x72\x64\x61\x6e\x63\x65\x20\x77\x69\x74\x68\x20\x74\x68\ \x65\x20\x51\x74\x20\x43\x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\ \x4c\x69\x63\x65\x6e\x73\x65\x20\x41\x67\x72\x65\x65\x6d\x65\x6e\ \x74\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\ \x74\x68\x65\x20\x0a\x2a\x2a\x20\x53\x6f\x66\x74\x77\x61\x72\x65\ \x20\x6f\x72\x2c\x20\x61\x6c\x74\x65\x72\x6e\x61\x74\x69\x76\x65\ \x6c\x79\x2c\x20\x69\x6e\x20\x61\x63\x63\x6f\x72\x64\x61\x6e\x63\ \x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\ \x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x64\x20\x69\x6e\x0a\x2a\x2a\ \x20\x61\x20\x77\x72\x69\x74\x74\x65\x6e\x20\x61\x67\x72\x65\x65\ \x6d\x65\x6e\x74\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x79\x6f\x75\ \x20\x61\x6e\x64\x20\x44\x69\x67\x69\x61\x2e\x20\x20\x0a\x2a\x2a\ \x0a\x2a\x2a\x20\x49\x66\x20\x79\x6f\x75\x20\x68\x61\x76\x65\x20\ \x71\x75\x65\x73\x74\x69\x6f\x6e\x73\x20\x72\x65\x67\x61\x72\x64\ \x69\x6e\x67\x20\x74\x68\x65\x20\x75\x73\x65\x20\x6f\x66\x20\x74\ \x68\x69\x73\x20\x66\x69\x6c\x65\x2c\x20\x70\x6c\x65\x61\x73\x65\ \x20\x75\x73\x65\x0a\x2a\x2a\x20\x63\x6f\x6e\x74\x61\x63\x74\x20\ \x66\x6f\x72\x6d\x20\x61\x74\x20\x68\x74\x74\x70\x3a\x2f\x2f\x71\ \x74\x2e\x64\x69\x67\x69\x61\x2e\x63\x6f\x6d\x0a\x2a\x2a\x20\x24\ \x51\x54\x5f\x45\x4e\x44\x5f\x4c\x49\x43\x45\x4e\x53\x45\x24\x0a\ \x2a\x2a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2f\ \x0a\x0a\x69\x6d\x70\x6f\x72\x74\x20\x51\x74\x51\x75\x69\x63\x6b\ \x20\x31\x2e\x30\x0a\x0a\x49\x74\x65\x6d\x20\x7b\x0a\x20\x20\x20\ \x20\x69\x64\x3a\x20\x6d\x61\x69\x6e\x0a\x20\x20\x20\x20\x2f\x2f\ \x68\x65\x69\x67\x68\x74\x20\x61\x6e\x64\x20\x77\x69\x64\x74\x68\ \x20\x73\x65\x74\x20\x62\x79\x20\x70\x72\x6f\x67\x72\x61\x6d\x20\ \x74\x6f\x20\x66\x69\x6c\x6c\x20\x77\x69\x6e\x64\x6f\x77\x0a\x20\ \x20\x20\x20\x2f\x2f\x62\x65\x6c\x6f\x77\x20\x70\x72\x6f\x70\x65\ \x72\x74\x69\x65\x73\x20\x61\x72\x65\x20\x73\x6f\x6d\x65\x74\x69\ \x6d\x65\x73\x20\x73\x65\x74\x20\x66\x72\x6f\x6d\x20\x43\x2b\x2b\ \x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x75\x72\ \x6c\x20\x71\x6d\x6c\x46\x69\x6c\x65\x3a\x20\x27\x27\x0a\x20\x20\ \x20\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x62\x6f\x6f\x6c\x20\ \x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x0a\x0a\x20\x20\x20\ \x20\x49\x74\x65\x6d\x7b\x20\x69\x64\x3a\x65\x6d\x62\x65\x64\x64\ \x65\x64\x56\x69\x65\x77\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x77\x69\x64\x74\x68\x3a\x20\x70\x61\x72\x65\x6e\x74\x2e\x77\ \x69\x64\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\ \x67\x68\x74\x3a\x20\x70\x61\x72\x65\x6e\x74\x2e\x68\x65\x69\x67\ \x68\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x61\x63\x69\ \x74\x79\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7a\ \x3a\x20\x31\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x6f\x61\ \x64\x65\x72\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x69\x64\x3a\x20\x6c\x6f\x61\x64\x65\x72\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x7a\x3a\x20\x31\x30\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x63\x75\x73\x3a\ \x20\x74\x72\x75\x65\x20\x2f\x2f\x41\x75\x74\x6f\x6d\x61\x74\x69\ \x63\x20\x46\x6f\x63\x75\x73\x53\x63\x6f\x70\x65\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x3a\x20\x74\ \x72\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x73\x6f\x75\x72\x63\x65\x3a\x20\x71\x6d\x6c\x46\x69\x6c\x65\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\ \x6f\x72\x73\x2e\x63\x65\x6e\x74\x65\x72\x49\x6e\x3a\x20\x70\x61\ \x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x6f\x6e\x53\x74\x61\x74\x75\x73\x43\x68\x61\x6e\x67\x65\x64\ \x3a\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ \x66\x28\x73\x74\x61\x74\x75\x73\x20\x3d\x3d\x20\x4c\x6f\x61\x64\ \x65\x72\x2e\x4e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x6f\x61\x64\x65\ \x72\x2e\x66\x6f\x63\x75\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\ \x2f\x2f\x66\x69\x78\x65\x73\x20\x51\x54\x42\x55\x47\x31\x31\x34\ \x31\x31\x2c\x20\x70\x72\x6f\x62\x61\x62\x6c\x79\x20\x62\x65\x63\ \x61\x75\x73\x65\x20\x74\x68\x65\x20\x66\x6f\x63\x75\x73\x53\x63\ \x6f\x70\x65\x20\x6e\x65\x65\x64\x73\x20\x74\x6f\x20\x67\x61\x69\ \x6e\x20\x66\x6f\x63\x75\x73\x20\x74\x6f\x20\x66\x6f\x63\x75\x73\ \x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x20\x63\x68\x69\x6c\x64\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x65\x6c\ \x73\x65\x20\x69\x66\x28\x73\x74\x61\x74\x75\x73\x20\x3d\x3d\x20\ \x4c\x6f\x61\x64\x65\x72\x2e\x52\x65\x61\x64\x79\x29\x20\x7b\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x69\x66\x28\x6c\x6f\x61\x64\x65\x72\x2e\x69\x74\x65\x6d\x2e\x77\ \x69\x64\x74\x68\x20\x3e\x20\x36\x34\x30\x29\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x6c\x6f\x61\x64\x65\x72\x2e\x69\x74\x65\x6d\x2e\x77\x69\x64\x74\ \x68\x20\x3d\x20\x36\x34\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x28\x6c\x6f\x61\x64\ \x65\x72\x2e\x69\x74\x65\x6d\x2e\x68\x65\x69\x67\x68\x74\x20\x3e\ \x20\x34\x38\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x6f\x61\x64\x65\x72\ \x2e\x69\x74\x65\x6d\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x34\ \x38\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x7d\x7d\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x52\x65\x63\x74\x61\x6e\x67\x6c\x65\x7b\ \x20\x69\x64\x3a\x20\x66\x72\x61\x6d\x65\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x7a\x3a\x20\x39\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\ \x66\x69\x6c\x6c\x3a\x20\x6c\x6f\x61\x64\x65\x72\x2e\x73\x74\x61\ \x74\x75\x73\x20\x3d\x3d\x20\x4c\x6f\x61\x64\x65\x72\x2e\x52\x65\ \x61\x64\x79\x20\x3f\x20\x6c\x6f\x61\x64\x65\x72\x20\x3a\x20\x65\ \x72\x72\x6f\x72\x54\x78\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x6d\x61\x72\x67\ \x69\x6e\x73\x3a\x20\x2d\x38\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x72\x61\x64\x69\x75\x73\x3a\x20\x34\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6d\x6f\x6f\x74\x68\ \x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2e\x63\x6f\x6c\x6f\x72\x3a\ \x20\x22\x23\x38\x38\x61\x61\x61\x61\x61\x61\x22\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\ \x74\x3a\x20\x47\x72\x61\x64\x69\x65\x6e\x74\x7b\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x72\x61\ \x64\x69\x65\x6e\x74\x53\x74\x6f\x70\x7b\x20\x70\x6f\x73\x69\x74\ \x69\x6f\x6e\x3a\x20\x30\x2e\x30\x3b\x20\x63\x6f\x6c\x6f\x72\x3a\ \x20\x22\x23\x31\x34\x46\x46\x46\x46\x46\x46\x22\x20\x7d\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\ \x72\x61\x64\x69\x65\x6e\x74\x53\x74\x6f\x70\x7b\x20\x70\x6f\x73\ \x69\x74\x69\x6f\x6e\x3a\x20\x31\x2e\x30\x3b\x20\x63\x6f\x6c\x6f\ \x72\x3a\x20\x22\x23\x35\x41\x46\x46\x46\x46\x46\x46\x22\x20\x7d\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4d\x6f\x75\x73\x65\ \x41\x72\x65\x61\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x66\x69\ \x6c\x6c\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x63\x65\x70\ \x74\x65\x64\x42\x75\x74\x74\x6f\x6e\x73\x3a\x20\x51\x74\x2e\x4c\ \x65\x66\x74\x42\x75\x74\x74\x6f\x6e\x20\x7c\x20\x51\x74\x2e\x52\ \x69\x67\x68\x74\x42\x75\x74\x74\x6f\x6e\x20\x7c\x20\x51\x74\x2e\ \x4d\x69\x64\x64\x6c\x65\x42\x75\x74\x74\x6f\x6e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\ \x6c\x69\x63\x6b\x65\x64\x3a\x20\x6c\x6f\x61\x64\x65\x72\x2e\x66\ \x6f\x63\x75\x73\x3d\x74\x72\x75\x65\x3b\x2f\x2a\x20\x61\x6e\x64\ \x20\x64\x6f\x6e\x27\x74\x20\x70\x72\x6f\x70\x61\x67\x61\x74\x65\ \x20\x74\x6f\x20\x74\x68\x65\x20\x27\x65\x78\x69\x74\x27\x20\x61\ \x72\x65\x61\x2a\x2f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x7d\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x52\x65\x63\x74\x61\x6e\x67\x6c\x65\x7b\x20\x69\x64\x3a\x20\ \x69\x6e\x6e\x65\x72\x46\x72\x61\x6d\x65\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\ \x72\x73\x2e\x6d\x61\x72\x67\x69\x6e\x73\x3a\x20\x37\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\ \x63\x68\x6f\x72\x73\x2e\x62\x6f\x74\x74\x6f\x6d\x4d\x61\x72\x67\ \x69\x6e\x3a\x20\x38\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x72\x69\ \x67\x68\x74\x4d\x61\x72\x67\x69\x6e\x3a\x20\x38\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\ \x6f\x72\x3a\x20\x22\x62\x6c\x61\x63\x6b\x22\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6f\x72\x64\ \x65\x72\x2e\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x34\x34\x30\x30\ \x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x66\x69\ \x6c\x6c\x3a\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x7d\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x63\x74\x61\ \x6e\x67\x6c\x65\x7b\x20\x69\x64\x3a\x20\x63\x6c\x6f\x73\x65\x42\ \x75\x74\x74\x6f\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x77\x69\x64\x74\x68\x3a\x20\x32\x34\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\ \x32\x34\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7a\ \x3a\x20\x31\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x62\x6f\x72\x64\x65\x72\x2e\x63\x6f\x6c\x6f\x72\x3a\x20\x22\ \x23\x61\x61\x61\x61\x61\x61\x61\x61\x22\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\ \x20\x47\x72\x61\x64\x69\x65\x6e\x74\x7b\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x72\x61\x64\x69\ \x65\x6e\x74\x53\x74\x6f\x70\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\ \x6e\x3a\x20\x30\x2e\x30\x3b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\ \x23\x33\x34\x46\x46\x46\x46\x46\x46\x22\x20\x7d\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x72\x61\ \x64\x69\x65\x6e\x74\x53\x74\x6f\x70\x7b\x20\x70\x6f\x73\x69\x74\ \x69\x6f\x6e\x3a\x20\x31\x2e\x30\x3b\x20\x63\x6f\x6c\x6f\x72\x3a\ \x20\x22\x23\x37\x41\x46\x46\x46\x46\x46\x46\x22\x20\x7d\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\ \x2e\x6c\x65\x66\x74\x3a\x20\x66\x72\x61\x6d\x65\x2e\x72\x69\x67\ \x68\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\ \x6e\x63\x68\x6f\x72\x73\x2e\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x66\ \x72\x61\x6d\x65\x2e\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x6d\x61\x72\ \x67\x69\x6e\x73\x3a\x20\x2d\x28\x32\x2a\x77\x69\x64\x74\x68\x2f\ \x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\ \x65\x78\x74\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x74\x65\x78\x74\x3a\x20\x27\x58\x27\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\ \x6f\x6e\x74\x2e\x62\x6f\x6c\x64\x3a\x20\x74\x72\x75\x65\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\ \x6f\x6c\x6f\x72\x3a\x20\x22\x77\x68\x69\x74\x65\x22\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\ \x6e\x74\x2e\x70\x69\x78\x65\x6c\x53\x69\x7a\x65\x3a\x20\x31\x32\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x63\x65\x6e\x74\x65\x72\x49\ \x6e\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x4d\x6f\x75\x73\x65\x41\x72\x65\x61\x7b\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\ \x6e\x63\x68\x6f\x72\x73\x2e\x66\x69\x6c\x6c\x3a\x20\x70\x61\x72\ \x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x6f\x6e\x43\x6c\x69\x63\x6b\x65\x64\x3a\x20\x6d\ \x61\x69\x6e\x2e\x73\x68\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\ \x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x54\x65\x78\x74\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x69\x64\x3a\x20\x65\x72\x72\x6f\x72\x54\x78\ \x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7a\x3a\ \x20\x31\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x61\x6e\x63\x68\x6f\x72\x73\x2e\x63\x65\x6e\x74\x65\x72\x49\x6e\ \x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x27\x77\x68\x69\ \x74\x65\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x73\x6d\x6f\x6f\x74\x68\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x69\x73\x69\x62\x6c\x65\ \x3a\x20\x6c\x6f\x61\x64\x65\x72\x2e\x73\x74\x61\x74\x75\x73\x20\ \x3d\x3d\x20\x4c\x6f\x61\x64\x65\x72\x2e\x45\x72\x72\x6f\x72\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\ \x46\x6f\x72\x6d\x61\x74\x3a\x20\x54\x65\x78\x74\x2e\x52\x69\x63\ \x68\x54\x65\x78\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x2f\x2f\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x69\x66\ \x20\x6c\x6f\x61\x64\x65\x72\x20\x69\x73\x20\x45\x72\x72\x6f\x72\ \x2c\x20\x69\x74\x20\x69\x73\x20\x62\x65\x63\x61\x75\x73\x65\x20\ \x74\x68\x65\x20\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x66\x6f\x75\ \x6e\x64\x20\x62\x75\x74\x20\x74\x68\x65\x72\x65\x20\x77\x61\x73\ \x20\x61\x6e\x20\x65\x72\x72\x6f\x72\x20\x63\x72\x65\x61\x74\x69\ \x6e\x67\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2f\x2f\x54\ \x68\x69\x73\x20\x6d\x65\x61\x6e\x73\x20\x65\x69\x74\x68\x65\x72\ \x20\x77\x65\x20\x68\x61\x76\x65\x20\x61\x20\x62\x75\x67\x20\x69\ \x6e\x20\x6f\x75\x72\x20\x64\x65\x6d\x6f\x73\x2c\x20\x6f\x72\x20\ \x74\x68\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x6d\x6f\x64\ \x75\x6c\x65\x73\x20\x28\x77\x68\x69\x63\x68\x20\x73\x68\x69\x70\ \x20\x77\x69\x74\x68\x20\x51\x74\x29\x20\x64\x69\x64\x20\x6e\x6f\ \x74\x20\x64\x65\x70\x6c\x6f\x79\x20\x63\x6f\x72\x72\x65\x63\x74\ \x6c\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\ \x65\x78\x74\x3a\x20\x22\x54\x68\x65\x20\x65\x78\x61\x6d\x70\x6c\ \x65\x20\x68\x61\x73\x20\x66\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\ \x6c\x6f\x61\x64\x2e\x3c\x62\x72\x20\x2f\x3e\x49\x66\x20\x79\x6f\ \x75\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x20\x61\x6c\x6c\x20\ \x51\x74\x27\x73\x20\x43\x2b\x2b\x20\x61\x6e\x64\x20\x51\x4d\x4c\ \x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x74\x68\x65\x6e\x20\x74\x68\ \x69\x73\x20\x69\x73\x20\x61\x20\x62\x75\x67\x21\x3c\x62\x72\x20\ \x2f\x3e\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x2b\x20\x27\x52\x65\x70\x6f\x72\x74\x20\x69\x74\ \x20\x61\x74\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x68\x74\x74\ \x70\x3a\x2f\x2f\x62\x75\x67\x72\x65\x70\x6f\x72\x74\x73\x2e\x71\ \x74\x2d\x70\x72\x6f\x6a\x65\x63\x74\x2e\x6f\x72\x67\x22\x3e\x68\ \x74\x74\x70\x3a\x2f\x2f\x62\x75\x67\x72\x65\x70\x6f\x72\x74\x73\ \x2e\x71\x74\x2d\x70\x72\x6f\x6a\x65\x63\x74\x2e\x6f\x72\x67\x3c\ \x2f\x61\x3e\x27\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x6f\x6e\x4c\x69\x6e\x6b\x41\x63\x74\x69\x76\x61\x74\x65\ \x64\x3a\x20\x51\x74\x2e\x6f\x70\x65\x6e\x55\x72\x6c\x45\x78\x74\ \x65\x72\x6e\x61\x6c\x6c\x79\x28\x6c\x69\x6e\x6b\x29\x3b\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\ \x20\x20\x20\x52\x65\x63\x74\x61\x6e\x67\x6c\x65\x7b\x20\x69\x64\ \x3a\x20\x62\x6c\x61\x63\x6b\x6f\x75\x74\x20\x2f\x2f\x4d\x61\x79\ \x62\x65\x20\x75\x73\x65\x20\x61\x20\x63\x6f\x6c\x6f\x72\x69\x7a\ \x65\x20\x65\x66\x66\x65\x63\x74\x20\x69\x6e\x73\x74\x65\x61\x64\ \x3f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7a\x3a\x20\x38\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x66\ \x69\x6c\x6c\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x30\x30\x30\ \x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x61\ \x63\x69\x74\x79\x3a\x20\x30\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\ \x20\x20\x4d\x6f\x75\x73\x65\x41\x72\x65\x61\x7b\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x7a\x3a\x20\x38\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x6d\x61\x69\x6e\x2e\ \x73\x68\x6f\x77\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x76\ \x65\x72\x45\x6e\x61\x62\x6c\x65\x64\x3a\x20\x6d\x61\x69\x6e\x2e\ \x73\x68\x6f\x77\x20\x2f\x2f\x54\x6f\x20\x73\x74\x65\x61\x6c\x20\ \x66\x6f\x63\x75\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x62\ \x75\x74\x74\x6f\x6e\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\ \x63\x63\x65\x70\x74\x65\x64\x42\x75\x74\x74\x6f\x6e\x73\x3a\x20\ \x51\x74\x2e\x4c\x65\x66\x74\x42\x75\x74\x74\x6f\x6e\x20\x7c\x20\ \x51\x74\x2e\x52\x69\x67\x68\x74\x42\x75\x74\x74\x6f\x6e\x20\x7c\ \x20\x51\x74\x2e\x4d\x69\x64\x64\x6c\x65\x42\x75\x74\x74\x6f\x6e\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\ \x2e\x66\x69\x6c\x6c\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\ \x20\x20\x7d\x0a\x0a\x20\x20\x20\x20\x73\x74\x61\x74\x65\x73\x3a\ \x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x53\x74\x61\x74\x65\ \x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\ \x61\x6d\x65\x3a\x20\x22\x73\x68\x6f\x77\x22\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x65\x6e\x3a\x20\x73\x68\ \x6f\x77\x20\x3d\x3d\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x50\x72\x6f\x70\x65\x72\x74\x79\x43\ \x68\x61\x6e\x67\x65\x73\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x3a\ \x20\x65\x6d\x62\x65\x64\x64\x65\x64\x56\x69\x65\x77\x65\x72\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x50\x72\x6f\x70\x65\x72\x74\x79\x43\x68\x61\ \x6e\x67\x65\x73\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x3a\x20\x62\ \x6c\x61\x63\x6b\x6f\x75\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\ \x20\x30\x2e\x35\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\ \x20\x5d\x0a\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\ \x6e\x73\x3a\x20\x5b\x2f\x2f\x53\x68\x6f\x75\x6c\x64\x20\x6e\x6f\ \x74\x20\x62\x65\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x2c\x20\x62\ \x65\x63\x61\x75\x73\x65\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x6f\ \x6e\x65\x6e\x74\x20\x68\x61\x73\x20\x61\x6c\x72\x65\x61\x64\x79\ \x20\x73\x74\x61\x72\x74\x65\x64\x20\x72\x75\x6e\x6e\x69\x6e\x67\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x72\x61\x6e\x73\x69\x74\ \x69\x6f\x6e\x20\x7b\x20\x66\x72\x6f\x6d\x3a\x20\x27\x27\x3b\x20\ \x74\x6f\x3a\x20\x22\x73\x68\x6f\x77\x22\x3b\x20\x72\x65\x76\x65\ \x72\x73\x69\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x72\x61\x6c\x6c\x65\ \x6c\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x7b\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4e\x75\x6d\x62\ \x65\x72\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x7b\x20\x70\x72\x6f\ \x70\x65\x72\x74\x69\x65\x73\x3a\x20\x22\x6f\x70\x61\x63\x69\x74\ \x79\x22\x3b\x20\x65\x61\x73\x69\x6e\x67\x2e\x74\x79\x70\x65\x3a\ \x20\x45\x61\x73\x69\x6e\x67\x2e\x49\x6e\x51\x75\x61\x64\x3b\x20\ \x64\x75\x72\x61\x74\x69\x6f\x6e\x3a\x20\x35\x30\x30\x7d\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\ \x72\x6f\x70\x65\x72\x74\x79\x41\x63\x74\x69\x6f\x6e\x20\x7b\x20\ \x74\x61\x72\x67\x65\x74\x3a\x20\x6c\x6f\x61\x64\x65\x72\x3b\x20\ \x70\x72\x6f\x70\x65\x72\x74\x79\x3a\x20\x22\x66\x6f\x63\x75\x73\ \x22\x3b\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x72\x75\x65\x7d\x2f\ \x2f\x4d\x69\x67\x68\x74\x20\x62\x65\x20\x6e\x65\x65\x64\x65\x64\ \x20\x74\x6f\x20\x65\x6e\x73\x75\x72\x65\x20\x74\x68\x65\x20\x66\ \x6f\x63\x75\x73\x20\x73\x74\x61\x79\x73\x20\x77\x69\x74\x68\x20\ \x75\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x5d\ \x0a\x7d\x0a\ \x00\x00\x0d\xda\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x9b\x00\x00\x00\x9b\x08\x06\x00\x00\x00\x75\x61\xe9\x8c\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x09\x70\x48\x59\x73\x00\x00\x1c\x20\x00\x00\x1c\x20\x01\xcd\x0f\ \x9b\x9e\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd8\x09\x11\x0f\x0b\ \x3b\x8e\xaf\x11\xbb\x00\x00\x0d\x6c\x49\x44\x41\x54\x78\xda\xed\ \xdd\x79\x90\x14\xd5\x1d\x07\xf0\xef\xeb\xee\xb9\x97\x3d\x58\xdc\ \x65\x97\x5d\x90\x43\x41\x44\x40\x51\x2e\xc5\x12\x8c\x15\xd4\x78\ \x25\x6a\x2a\xc6\x23\xa9\x44\x4d\x8c\x7f\x24\x50\xa9\x32\xc6\x24\ \x9a\x90\x32\x52\x89\x65\x2a\x1e\xf1\x0f\xad\x58\x6a\xa9\xd1\x32\ \xc1\x24\xe5\x5d\x46\x2d\x90\x2b\x22\x0a\x72\xec\x02\xbb\xb0\xd7\ \xcc\x1e\xd3\x73\xf4\x74\x4f\x1f\xef\xe5\x8f\x5d\xd6\x1d\x7a\x50\ \xae\xe9\x85\x9e\xdf\xb7\x8a\x82\xaa\xf7\xb6\x67\xe6\xcd\x87\xf7\ \x5e\xbf\x7e\xdd\xcb\x00\x2c\x04\xb0\x18\x14\x4a\x89\x23\x03\xe8\ \x00\x20\x00\x34\x53\x73\x50\x4a\x8d\x0d\x04\x8e\xe2\x25\x36\x02\ \x47\xf1\x14\x1b\x81\xa3\x78\x8a\xed\x20\x38\x10\x38\x8a\x17\xd8\ \x08\x1c\xc5\x53\x6c\x04\x8e\xe2\x29\x36\x02\x47\xf1\x14\x1b\x81\ \xa3\x78\x8a\x8d\xc0\x51\x3c\xc5\x46\xe0\x28\x9e\x62\x23\x70\x14\ \x4f\xb1\x11\x38\x8a\xa7\xd8\x08\x1c\xc5\x53\x6c\x04\x8e\xe2\x29\ \x36\x02\x47\xf1\x14\x1b\x81\xa3\x1c\x71\xd8\x09\x3c\xd6\xa2\xa1\ \x3f\x94\xa3\xcd\xa4\xd8\x14\x34\x46\xcf\x85\xcc\x6a\xea\x9a\xc2\ \xe1\x99\xb3\x2a\xa2\x4d\x93\xc2\x91\x50\x58\x0a\x58\x06\xcf\xea\ \xaa\x95\xd0\x55\x7b\x40\xed\xd2\x7b\x7a\x5b\xb4\x9e\x54\xa7\x91\ \xea\x6f\xcf\x65\xac\x9c\x63\x97\x2b\x36\x02\x77\xb4\x09\x48\x01\ \x69\x7e\xed\x75\xa2\x3a\xb4\x40\x38\x02\xf3\xce\xaf\xc4\xfc\x05\ \x95\x90\x65\xc0\xb2\x04\x84\x28\xfe\x63\xdc\x11\x96\xa5\x3b\xa9\ \x5c\xd2\x4a\xe8\xaa\xdd\x9f\xea\xd6\xe3\xbd\xad\x5a\x8f\x7a\xc0\ \x50\xd5\x4e\x5d\x33\xd2\xb6\x59\x0e\xd8\x08\xdc\xd1\x34\xfe\xc5\ \xf5\xb7\xb0\xca\xc0\x5c\x6e\x09\xcc\x9a\x53\x81\xa5\x4b\x6b\x60\ \x59\x1c\x9c\x1f\xdb\xf1\xb8\x23\x2c\x3b\xcf\xb3\x66\xce\x4e\x6b\ \xfd\x56\x4f\xaa\xcb\xe8\xce\xf4\xe4\x07\x12\x2d\xd9\xde\xde\x56\ \x4d\x1d\x6d\x84\xac\x44\xc7\x25\x70\x5f\x95\x19\x55\xb3\xa5\x69\ \x63\x6e\xe3\x5c\x20\x1a\x91\x71\xfd\x0d\x75\x88\xc5\x64\x38\x8e\ \x38\xe1\x2f\xc5\x1d\xe1\xd8\x79\x9e\x36\x73\x76\x3a\xdb\x67\xc5\ \xd3\x3d\x46\x77\xba\xdb\xe8\xef\x6b\xd5\x7a\x13\xad\x9a\x6a\xa4\ \xbc\x41\xa8\x94\xe8\xb8\x1f\x8d\x40\x47\x29\xf6\xbf\xbc\x3e\x32\ \x0f\x00\xe0\x00\x4d\xcd\x21\x54\x56\xca\x30\x4d\x51\x92\xd7\x92\ \x64\x26\x07\xa3\x72\x4d\x30\x2a\xd7\x54\x8c\x0b\x4d\x1a\x3f\xa3\ \x02\x00\x20\xb8\x70\x4c\x83\x67\xac\x9c\x9d\x32\xd2\x76\x52\x4f\ \xda\xfd\xf1\x56\xad\x2b\xd9\x9e\xeb\x4d\x75\xe9\xe9\xe4\x01\x3d\ \x2b\x1c\x88\x93\x1d\x1b\x81\xfb\xaa\x84\xa5\xc6\xc1\x6f\x5c\xa0\ \xaa\x4a\x19\x1a\x64\x84\xb7\xe0\x25\x26\x87\xa2\x72\x75\x28\x2a\ \x57\x57\x8c\x0b\x4d\x02\x80\xe6\x79\x55\x00\x20\x1c\x9b\x9b\xb9\ \x7e\xab\xe3\x85\x3b\xb7\x3e\x7e\xc2\xd0\x97\xf8\xf3\x7c\x34\x02\ \x1d\xa5\xa0\xe5\x59\xf8\xe0\x3f\x65\x99\x9d\x6c\xef\x8e\xc9\x8a\ \x14\x8a\xd4\x04\x1a\x4e\xe8\x47\xf6\xe0\x8d\x13\x38\x4a\xc9\x87\ \xd1\x43\xc1\x09\xd0\x9d\xf7\xc7\x15\x59\x66\x90\x24\x81\x5c\xde\ \x80\x69\xd9\x90\x65\x09\x12\x93\xc0\x05\x87\x10\x1c\xb2\xa4\x20\ \x20\x87\xc0\xc0\xca\x1a\x1b\x00\xac\x1f\xfa\x9b\xc0\x1d\xed\x98\ \xc6\x80\x60\x50\x42\xbc\x57\xc3\x9e\xbd\x3a\xce\xaa\x3f\x0f\xcb\ \xe7\x5e\x8a\xa9\xe3\x4f\x47\x34\x1c\x41\xde\xce\xa1\x27\xdb\x8e\ \xed\x89\x8f\xb0\x77\xe0\x53\x98\xdc\x42\x48\x8e\x14\x1f\xca\x24\ \x80\x73\x0e\x2e\x04\x18\x24\x30\xc6\x7c\x89\x8d\xc0\x1d\x23\x34\ \x59\x96\xb0\x76\x7d\x02\x03\x1d\x35\x58\x7d\xeb\x6a\x7c\xf3\xc2\ \xe5\x90\x8b\x5c\x68\xbc\x7a\xc6\x1d\x68\xed\xdf\x8a\x35\x3b\x9e\ \xc0\xa7\xf1\xb5\x08\x2b\x51\x57\x1d\x5d\x77\x10\x0a\x84\x10\x0e\ \x2a\xc8\x5b\x39\x08\x21\xc0\x98\xe4\xc9\x67\x91\x46\xa1\xfd\xd6\ \x03\x58\x47\x8c\x8e\xb0\x37\x50\x18\x3e\xf8\x30\x81\xfd\xdb\xa2\ \x58\xf3\xcb\xe7\x71\xc3\xc5\xc5\xa1\x1d\xcc\xb4\xda\x39\x58\x71\ \xd1\x13\x58\x36\xe5\x46\xe8\x56\xb6\x60\x08\x4e\xa5\x6c\x3c\xf3\ \x6c\x1b\xce\x8b\xfe\x00\x7f\xbc\xe2\x35\xfc\x7a\xd9\x0b\x98\x58\ \x7d\x16\x2c\x27\xef\x5b\x6c\x04\xee\x08\x13\x08\x30\xec\xda\xad\ \x61\xdb\xe6\x2c\x9e\xfe\xf9\xc3\x98\x3d\x79\xba\xab\x4e\x3a\x97\ \xc5\xfe\x44\x0f\xf8\x88\xcb\x0e\x0c\x0c\xb7\xcc\xbd\x17\xe7\x35\ \x2e\x85\x61\xe7\x86\xb0\x01\x3d\x71\x03\xb0\x22\x58\x74\xe6\x22\ \x84\x58\x15\x9a\x2a\xa7\x21\x16\x18\x03\x2e\xb8\xaf\xb1\x11\xb8\ \x23\x18\x3e\x2d\x4b\x60\xed\xba\x38\xae\x5d\xf2\x0d\x5c\xb5\xe0\ \x32\x57\x9d\x1d\x7d\x1b\x70\xff\xbb\xdf\xc1\xa5\xab\x96\xe2\xfa\ \xdf\xff\x08\xa9\x5c\x66\xc4\xca\x8a\x8c\x1b\x67\xad\x40\x45\xb0\ \x0a\x5c\x38\x00\x80\x8e\xce\x1c\x26\x8f\x9f\x88\xe9\x4d\x53\x47\ \x67\xb5\x67\x94\xdb\x94\xc0\x7d\xc9\xf0\xd9\xbe\x5f\x87\x3e\x00\ \xdc\x7d\xcd\xf7\x5c\xe5\x99\xfc\x00\x9e\xda\xf4\x1b\xa8\x4e\x1b\ \x16\x2f\x89\xe2\x9f\xeb\x5f\xc0\x8a\x27\xef\x2f\xa8\xd3\x58\x39\ \x05\x0b\x9b\x2f\x07\x64\x13\xba\x69\xa2\x6d\x6f\x02\xf3\xa6\x9e\ \x8d\x50\x20\x38\x5c\x87\x83\x43\x80\xc3\x8b\x05\x65\xe9\x24\x68\ \x57\x02\x77\x98\x9e\x6d\xe7\xae\x34\xa6\x36\x4f\xc7\x85\x33\xe7\ \xbb\xca\x37\x77\xbe\x83\xb8\xd6\x8e\x00\x8b\xa2\x6a\x4c\x10\xf3\ \x17\x36\xe1\xb9\xb7\x5f\x41\x6b\xd7\xbe\x82\x7a\x17\x4c\x58\x8e\ \xb6\xbd\x26\x14\x6d\x12\x16\xcd\xf8\x1a\xae\x5b\x72\x45\x21\x6a\ \x36\x78\x8e\x68\x39\xe6\x70\x0f\xe8\x67\x6c\x04\xae\x08\x34\x5d\ \xe7\x38\xd0\x99\xc5\x45\xb3\xce\x47\x38\x18\x72\xd5\xd9\x93\xfc\ \x0c\x8c\x0d\x9e\x29\x38\x8e\x40\x63\x43\x04\xa6\x91\xc2\xda\xed\ \x9b\x0a\xea\x9d\x5e\x75\x36\xb6\xae\x53\x30\x81\x5d\x82\x0f\x57\ \xaf\xc1\x4d\x97\x5c\x5b\x50\x7e\xf3\xdc\x7b\xf1\xc0\xb2\x97\x70\ \xdf\xd2\xe7\x30\xb3\x6e\x21\x4c\xc7\xf0\xcd\xd2\x07\x2d\x8b\x1c\ \x49\x0f\x20\x31\x64\x32\x36\x78\xc6\xc6\xec\xc9\x67\x15\xad\xd3\ \xaf\x75\x41\x1e\xc2\xc6\x39\x10\x8b\x49\x40\x80\xe1\xf3\x03\x2d\ \x05\xf5\xc2\xc1\x30\xce\x99\x72\x36\x2c\xc7\x2a\x7a\x9c\xda\x68\ \x03\x6a\xa3\x83\x57\xa5\xc6\x46\xc6\xc3\x29\x61\xef\x26\x9d\x64\ \xed\x4c\x3d\x1c\x06\x17\x5e\xb3\x59\x07\xe0\x12\x26\x37\x4c\x74\ \x95\x9b\x8e\x01\x35\xdf\x07\x69\x08\x9b\x10\x02\xa1\x90\x04\x39\ \xa6\x60\x77\xe7\x3e\x57\xfd\x85\x33\xe7\x42\xcd\x25\x61\x98\x79\ \x88\x43\x76\x64\x0a\x6f\xa6\x6b\x27\x5d\xcf\x46\x3d\xdc\x88\x61\ \x34\x9d\xb6\x00\x25\x84\x09\xb5\xf5\xae\xf2\xbc\xad\xc3\xb0\xb4\ \x82\xd5\xff\x40\x40\x42\x34\xa2\x20\xa1\xf6\xbb\xea\x5f\xbd\x6c\ \x36\x6e\x7b\xe4\x2e\xfc\xeb\xce\xf7\xb1\xf5\xb1\xd7\x51\x19\x1d\ \x33\x5c\xf6\xec\x96\x3f\xa0\x25\xb1\x1d\x95\xe1\x1a\xf4\x99\x6d\ \x08\xc9\xe1\xb2\xc2\x46\xe0\xc0\x90\xd5\x6c\x28\xa1\x28\xc6\x55\ \x8e\x75\x95\xda\xdc\x82\x23\x9c\xe1\x6b\xa0\x42\x0c\xae\xa3\x85\ \x82\x12\x72\xa6\x7b\x81\xb6\x26\x56\x03\xc1\x6c\x24\xd3\x49\xf0\ \x43\x7a\xb6\xb8\xbe\x07\x7b\xb2\xeb\x11\xd4\xc3\x50\xa4\x20\x64\ \x16\x28\x59\x57\xa7\x9c\xc4\x2d\x5e\xd6\xe0\x2c\x8b\x23\x1c\x08\ \x61\x4c\xa4\xc2\x55\xe6\x08\x1b\xa2\xc8\xdc\x4a\x56\x24\x58\xb6\ \x05\x2e\x38\xa4\x11\x97\xa0\x82\x72\x14\x12\x53\x20\x15\xb9\xf4\ \xa0\xb0\x20\x82\x52\x64\xc4\xb5\xd4\xd2\x8d\xa9\xd2\x49\xde\xe6\ \x65\x3b\x87\xe3\x5c\x40\x92\x24\xc8\x52\x91\x6b\x53\x42\x14\x25\ \x21\x49\x0c\x8e\xe3\x80\xf3\xc2\x52\x99\x29\x05\xf8\x46\x6d\x2e\ \x7a\x0a\xb4\x7b\x79\x82\x63\xc7\xf6\x23\x83\x27\x00\xe2\x78\x0f\ \x55\xb6\xd8\xca\x12\x9c\x24\x31\x38\xdc\x81\x5d\xec\xd6\x50\x56\ \x7c\xc7\x1a\xe7\x02\xb2\x2c\xbb\x76\x71\x70\x70\xd7\x59\x28\x61\ \x23\x70\x5f\x9c\x5d\x2a\x12\xf2\x96\x89\x8c\xa1\xb9\xe7\x66\x4c\ \x19\x5e\xd0\x2d\x98\xcb\x71\x01\x59\x92\x21\x1d\xb2\x47\xcd\x8b\ \xab\x03\x7e\xc3\x56\x56\xe0\xa2\x51\x05\x76\x5e\x47\x32\xa3\xba\ \x21\xca\x41\xc8\x4c\xc6\xc8\x99\x9b\x10\x80\x6d\x73\x84\x02\x01\ \xd7\x86\x48\xc3\xd6\x86\xea\x32\xc2\x46\xe0\x0e\x9d\xff\x0b\x54\ \x55\x2a\x80\x9d\x47\x4f\xb2\xd7\x55\x1e\x94\xc3\x88\x04\x2a\x86\ \x87\x46\xc6\x06\x2f\x59\xe5\xf3\x1c\xb1\xb0\x7b\xc3\x64\x26\x9f\ \xf4\x6c\x1b\x91\xdf\xb0\xf9\x1e\x9c\x10\x40\x2c\x2a\x03\x8c\x63\ \x7f\xa2\xb3\x28\xb6\xca\xd0\xd8\x82\xa1\xd1\xb6\x05\x72\xba\x8d\ \xc6\xda\x3a\x57\xfd\xfe\x5c\x37\x84\xe0\xa3\x7e\xa2\x20\x9d\xc2\ \xdf\x89\x6f\xc1\x71\x2e\x10\xab\x90\x81\x30\xc3\xce\x8e\x3d\x45\ \xeb\x8c\x8d\x8c\x1f\xc6\x26\x49\x0c\x86\xc1\x01\xdd\xc6\x99\x8d\ \x93\x5d\x75\xdb\xd5\x1d\xc5\x97\x50\xe0\xed\x9d\xaa\xd2\x29\xfe\ \xbd\xf8\x12\x1c\xe7\x40\x34\x26\x63\x5c\x5d\x04\x9b\x77\x7f\x5a\ \xb4\x4e\x53\xd5\xb4\xe1\xa1\x91\x31\x40\xd3\x1c\xc0\x02\x66\x34\ \x17\x6e\x8c\xd4\xad\x2c\xba\xb3\xfb\x86\xae\x0c\x14\xc3\x26\xc0\ \x18\x30\x68\x51\x10\xb6\x72\x04\x27\x4b\x0c\xd3\xa6\x54\x62\xd3\ \xae\xad\xd8\xdd\xb9\xd7\x55\x3e\xab\x7e\x31\xc2\x4a\x6c\xf0\x16\ \x3e\x99\x61\xff\x01\x0d\x15\x95\x75\x58\x32\x6b\x41\x41\xbd\xd6\ \x81\x4f\xd0\xab\x75\x42\x91\x15\x70\x21\x5c\x4b\x20\xe3\xa2\x0d\ \xe8\x4b\x27\xd1\xd5\x93\x05\xb7\x15\x94\xf2\x66\x2b\xc9\x27\xdf\ \x8d\xef\xc0\x39\x8e\xc0\xd4\xa9\x31\xd8\xb6\x8a\x97\x3f\xf8\xb7\ \xab\x7c\x62\xd5\x0c\xcc\x69\xb8\x18\x39\x27\x85\x78\x9f\x86\x2d\ \x1b\x3b\xf1\xc3\x2b\x6e\xc2\x84\xda\xc2\x9b\xd8\x37\x76\xbc\x05\ \x87\xdb\xa8\x88\x05\xa0\x19\x1a\x92\xd9\x54\x41\xf9\xd7\xa7\xdd\ \x86\x4b\xeb\x57\xe0\x8e\xd9\x8f\xe2\xaa\x19\xb7\x23\x6f\x1b\x84\ \xad\xdc\xc0\x39\x8e\x40\x4d\x8d\x82\xe9\xb3\x6a\xf0\xd8\x9a\xbf\ \x21\x91\x72\xef\xe6\xb8\x65\xee\x3d\xb8\xa0\xfe\x1a\xb4\x6f\xaf\ \xc6\x4f\xae\x5d\x89\x07\xbf\x7f\x8f\x6b\xae\xb6\xb9\xf3\x6d\x28\ \x2c\x8c\x86\xf1\x61\x58\x39\x15\x1b\x77\x6d\x29\xa8\x33\x7e\xcc\ \x44\xfc\xf4\xf2\x9f\xe1\xca\xf9\x4b\x51\x1d\xab\x2e\xe9\x7a\x9c\ \x9f\xb0\xf9\x10\x1c\x30\x7f\x7e\x2d\xe2\xd9\x36\xdc\xf7\xf4\x43\ \xae\xf2\xaa\xd0\x69\xb8\x7b\xd1\x43\xf8\xef\x03\xef\xe2\xd1\x1f\ \xff\x16\xe1\xe0\x17\xdb\x83\x1c\x6e\xe3\xef\xdb\x1e\x81\x6e\x65\ \x21\x38\x43\x5d\x7d\x08\xcd\xd3\x63\x58\xfd\xe2\x93\x48\x69\x5a\ \xd1\xd7\x53\xf5\x44\x49\xef\xa6\x97\xe1\xbf\x9c\x12\xbf\xa0\x97\ \x9d\x51\xb9\x8c\x49\x2c\x20\x1c\x81\xa6\x89\x61\x34\x36\x86\x5c\ \xcf\x66\x13\x02\x88\x46\x24\x34\x36\xc6\xf0\xd2\x1b\x1f\x42\x42\ \x04\x17\x9f\x53\x78\x3f\x82\x24\x31\x28\x87\xec\xe6\x70\xb8\x8d\ \x67\x3e\x59\x85\x8d\x1d\x6f\x22\xac\xc4\x86\x4f\x22\xa6\x4c\x1e\ \x83\xae\xcc\x7e\x6c\x68\xd9\x80\x70\x8c\x23\x65\x75\x63\x6f\xf2\ \x33\x6c\xe8\x78\x1d\xaf\x7e\xfe\x18\xfe\xd7\xf5\x2e\x14\xe9\xe0\ \x13\x95\x06\x1f\x2e\xb8\xe5\xe5\xae\xf7\x4e\xd4\x67\x56\xe0\xcf\ \xf8\x66\x7b\x92\x65\x09\x34\x4d\x88\xe0\x5b\x37\x4c\xc0\x9f\xdf\ \x79\x10\x7b\xe3\x6d\xb8\xff\xbb\x2b\x31\xb1\xce\xfd\x80\x21\x21\ \x04\x76\xf5\x6d\xc6\x3f\x76\x3c\x8e\x9d\xbd\x9b\x10\x19\x82\x76\ \xf0\x0c\x57\x96\x81\x8b\x16\xd6\x23\x97\x6f\xc5\x8b\x9f\xff\x0e\ \xb2\x24\x43\x0c\x5d\x37\x55\xa4\x00\x14\x39\x58\xd2\x9e\xcd\xaf\ \xd8\x7c\x05\xce\xb4\x38\xc6\xd5\x86\x70\xfd\x75\x13\xb0\xef\xc0\ \x6b\xb8\x6c\xd5\x1b\x98\x3d\x7e\x09\x9e\x59\xf9\x30\xa2\xa1\x2f\ \x9e\xe9\xd1\x97\xeb\xc4\x9f\xd6\xde\x05\xd3\x31\x86\x7b\xb4\x43\ \x7b\x4a\xd3\xe4\x50\x58\x08\x4a\x91\x9b\x68\x4a\x1d\x09\xfe\x8e\ \x6f\xe6\x70\xb6\x2d\x20\x04\xc3\x59\x67\x8c\x43\x43\x93\x8d\x57\ \x5e\x7f\x1e\x9b\x5b\x3e\x29\xa8\x73\x5a\xac\x09\x67\xd7\x2d\x80\ \x61\x6b\xc8\x0f\xdd\x09\x7f\x9c\x11\x84\xad\x4c\xc1\x09\x01\x18\ \x06\x47\x73\x73\x05\x10\x95\xf1\xe6\xe6\xf7\x5d\x75\x6e\x3d\xf7\ \x57\xb8\x79\xce\x2f\xb0\xb0\xf9\xca\x21\x2b\xc7\xee\xc5\x31\xb9\ \x4e\xd8\xca\x18\x1c\xe7\x83\x8f\x45\x3d\x63\x66\x35\x9e\x7d\xfb\ \x55\xd7\xba\xd9\xd8\x48\x3d\xae\x9a\x71\x3b\x96\x9f\x79\x2b\x84\ \x00\x8e\x67\x1b\x5b\xb6\xcf\xec\x26\x6c\x65\x0e\xce\x71\x80\xc5\ \x8b\xc6\xa1\xd7\xd8\x87\x95\x7f\x5d\x55\x92\x51\x90\x31\x60\xf7\ \x07\x7d\x9b\x68\xe9\xc3\x07\xcb\x22\x47\xb2\xf4\xf1\x65\xc3\x69\ \x38\x2c\x61\xda\x19\x55\x78\x7f\xdb\x06\xac\xdb\xbe\x05\x0d\x63\ \x4f\x43\x24\x14\x80\x0d\x13\x39\x2b\x8d\x3d\x03\x9f\x61\x6b\xcf\ \x07\x43\xbb\x7a\x8f\xfe\x0c\xb3\x67\x57\x7a\xe3\x87\x7f\x69\x7b\ \xef\x44\x7e\x66\x05\xe5\x17\x5f\x9c\xa5\xda\xb6\x40\x45\x4c\xc6\ \x95\xcb\x1b\x31\x90\xfa\x18\x8f\x7d\x7c\x17\xc6\xee\xae\x46\x40\ \x09\xc0\x72\xf2\x30\x1d\x63\xf8\x26\xe6\xa3\x9b\x17\x0a\xd1\xbd\ \x3d\xb3\xee\xad\x07\x5b\x5e\xa3\xa5\x0f\x02\x37\x62\x38\x15\x70\ \x1c\xa0\x32\x16\x03\x20\x60\xf2\x1c\xf2\xe6\xe0\xf3\xd9\x8e\xe4\ \x69\x92\xdc\x11\xb6\xa5\x3b\x29\x5d\xb5\x12\xb9\xa4\xd5\x9f\xea\ \x36\xe2\xfb\x37\xab\x7b\xdb\x37\xaa\x3d\xa5\x78\xbf\xe5\x8a\xcd\ \x37\xe0\x0e\x0e\xab\x00\x3b\x6c\x4f\xe6\x58\xdc\x30\x73\x4e\xca\ \xd4\x1c\x55\x4f\x59\x03\xa9\x6e\xa3\xa7\xb7\x45\xeb\x4a\x1e\xd0\ \xd5\xfe\x7d\xb9\xb4\xa9\x79\xf3\x0b\xd7\xca\x19\xdb\xe8\x82\x13\ \x82\x9f\xe8\x7b\x02\x1c\x9b\x9b\x96\xce\xd3\xf9\xac\x9d\xcc\xc4\ \xf3\x9d\xa9\x6e\x23\xa1\x76\x18\x7d\xf1\x1d\x99\xde\x64\x87\x9e\ \x75\xcc\xd1\xdd\x1b\x5e\xee\xd8\x46\x0f\x5c\x47\xee\x3f\x62\x52\ \xec\x86\x63\x59\x11\x70\x6c\x6e\xda\x06\xcf\x98\x9a\xa3\x66\x12\ \xf9\xae\x54\xb7\x11\x57\x3b\x8c\xfe\xf8\xce\x4c\x7c\xa0\x5d\xcf\ \xda\x79\xee\x9c\x8c\x0d\x4d\xd8\x46\x09\x9c\xd8\xa6\x6e\x84\xc1\ \x33\x38\xbd\xe2\x16\x00\xa1\xc3\xcd\xa9\xcc\x9c\xa3\xea\xaa\x15\ \xcf\x25\xad\x81\x54\xa7\xd1\x9d\x68\xc9\x76\xab\x1d\x7a\x4a\xed\ \x34\x34\xaf\x86\x3f\xc2\xe6\x87\x1e\xae\x35\xbd\x03\x79\xe7\x29\ \xfb\x82\x31\xdf\x36\xd2\x96\x93\xee\x37\x07\x0c\xd5\xee\x57\x3b\ \x8d\x9e\xde\x3d\x5a\x77\xf2\x40\x2e\x35\xd0\xa6\xa7\xcd\x53\xec\ \x97\xd8\x1e\x76\xb9\x87\x8c\xb9\xb2\x10\xf4\x40\xc2\x92\x44\xa6\ \x26\x70\xcf\xa6\x70\x0a\xec\x87\x23\x6c\x04\x8e\x42\xd8\x08\x1c\ \x61\x23\x70\x84\x8d\x42\xe0\x08\x1b\x81\x23\x6c\x04\x8e\x42\xd8\ \x08\x1c\x61\x23\x70\x84\x8d\x42\xe0\x08\x1b\x81\x23\x6c\x14\x02\ \x47\xd8\x08\x1c\x61\x23\x70\x84\x8d\x42\xe0\x08\x1b\x81\x23\x6c\ \x14\x02\x47\xd8\x08\x1c\x61\x23\x70\xd4\x14\x84\x8d\xc0\x11\x36\ \x02\x47\xd8\x28\x04\x8e\xb0\x11\x38\xc2\x46\x21\x70\x84\x8d\xc0\ \x11\x36\x02\x47\xd8\x28\x04\x8e\xb0\x11\x38\xc2\x46\x21\x70\x84\ \x8d\xc0\x11\x36\x4a\xf9\x80\x23\x6c\x04\x8e\xb0\x11\x38\xff\x81\ \x23\x6c\x04\x8e\xb0\x51\xfc\x07\x8e\xb0\x11\x38\xc2\x46\xf1\x1f\ \x38\xc2\x46\xe0\x08\x1b\xa5\x28\x38\x9c\xca\xe0\x08\x1b\x81\x23\ \x6c\x14\xff\x81\x23\x6c\x04\x8e\xb0\x51\xfc\x07\x8e\xb0\x11\x38\ \xc2\x46\xf1\x1f\x38\xc2\x46\xe0\x08\x1b\xc5\x7f\xe0\x08\x1b\x81\ \x23\x6c\x14\xff\x81\x23\x6c\x04\x8e\xb0\x51\xfc\x07\x8e\xb0\x11\ \x38\xc2\x46\xf1\x1f\x38\xc2\x46\xe0\x08\x1b\xc5\x7f\xe0\x08\x1b\ \x81\x23\x6c\x14\xff\x81\x23\x6c\x04\x8e\xb0\x51\xfc\x07\x8e\xb0\ \x11\x38\xcf\xc0\x11\x36\x8a\x67\xe0\x08\x1b\xc5\x33\x70\x84\x8d\ \xe2\x19\x38\xc2\x46\xf1\x0c\x1c\x61\xa3\x78\x06\x8e\xb0\x51\x3c\ \x03\x47\xd8\x28\x9e\x81\x23\x6c\x14\xcf\xc0\x11\x36\x8a\x67\xe0\ \x08\x1b\xc5\x33\x70\x84\x8d\xe2\x19\x38\xc2\x46\xf1\x0c\x1c\x61\ \xa3\x78\x06\x8e\xb0\x51\x3c\x03\x47\xd8\x28\x9e\x81\x23\x6c\x14\ \xcf\xc0\x11\x36\x8a\x67\xe0\x08\x1b\xc5\x33\x70\x84\x8d\xe2\x19\ \x38\xc2\x46\xf1\x0c\x1c\x61\xa3\x78\x06\x8e\xb0\x51\x3c\x03\x47\ \xd8\x28\x9e\x81\x23\x6c\x14\xcf\xc0\x11\x36\x8a\x67\xe0\x08\x1b\ \xc5\x33\x70\xff\x07\x60\xd3\xdf\x18\x28\x5f\x8f\x64\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x5b\xfb\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\xb6\x00\x00\x00\xb2\x08\x06\x00\x00\x00\x2e\xef\xea\xd2\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x09\x62\x00\x00\x09\x62\ \x01\x62\xdb\xcf\x8c\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x20\x00\x49\x44\ \x41\x54\x78\x9c\xec\x9d\x79\x78\x54\xe5\xf5\xc7\xbf\xe7\xde\x99\ \xc9\x9e\xb0\xef\x10\x76\x04\x51\xb6\x30\x13\x16\x95\xa8\x45\x41\ \x48\x82\x0a\x5a\xb5\x6e\x48\x26\x8a\xda\x45\xdb\xda\xf6\xd7\xd2\ \x68\x6d\xed\xa6\xad\x56\x21\xc1\xbd\xd6\x56\xa3\x90\x09\xd4\x05\ \x17\xe2\x02\x24\x21\xb2\x08\x75\x63\xdf\x77\x92\x90\x75\x96\xfb\ \x9e\xdf\x1f\x59\x98\xb9\xf7\x4e\xb6\x19\x48\x80\xf7\xf3\x3c\x79\ \x9e\xcc\x7b\xdf\xe5\xdc\x7b\x67\xee\xb9\xe7\xbc\xe7\x3d\x2f\x31\ \x33\xc2\x01\xcd\x1c\x16\x91\xa0\x79\xfb\x78\xc1\x5d\x88\xd0\x99\ \x80\x2e\x00\x77\x21\xa2\xce\x00\x77\x51\x2c\x4a\xd7\x7e\x03\x23\ \x86\xc7\x77\xb6\xf4\x8c\x8b\x57\xbb\xc4\x25\x58\x62\x62\xe3\x55\ \x1b\x11\xd8\xe7\x63\x9f\xd7\xcb\x3e\xcd\xc7\x1e\xcd\xcb\x35\xee\ \x5a\xde\xe7\x75\x6b\x5b\x3c\x6e\xb1\x46\x58\xa2\xde\xfb\xf4\x97\ \x25\x87\xc2\x22\xa4\x44\x22\x91\x48\xce\x7b\xa8\xad\x8a\x2d\xe6\ \x9a\xc4\x09\x0a\xd1\x4c\x10\x5f\x02\xe0\x12\x00\xc3\x00\xa8\x86\ \x7a\xb1\x2a\x86\x8e\x8a\xc6\x90\x91\x51\x88\x8c\x52\xda\x34\x56\ \x4d\x95\xd0\xaa\x2a\xb5\x52\x77\x8d\xd8\xeb\xae\xd5\xb6\xfa\xdc\ \xb4\x56\x78\x3d\xab\x3e\x79\xec\x9b\x5d\x6d\xea\x50\x22\x91\x48\ \x24\xe7\x2d\xad\x52\x6c\xf1\xa9\x7d\xbb\x09\x9f\xe5\x36\x62\xba\ \x0b\xe0\x4b\x9b\xaa\x9b\xd0\xd9\x82\x31\x8e\x38\xf4\x4d\x8c\x00\ \x51\xc8\x72\x9a\x52\x5b\xa3\x89\xea\x0a\x51\x5e\x5b\xa3\xed\x73\ \xd7\x8a\xaf\x3c\x5e\xac\xf3\xf8\x3c\xab\xd6\x2e\xfa\xf6\x9b\x33\ \x33\xa2\x44\x22\x91\x48\x3a\x3a\x2d\x52\x6c\x34\x8f\xd4\x98\xca\ \x01\x0f\x10\xe3\x31\x00\xb1\xcd\xd5\xbf\xe8\xd2\x18\x8c\x71\xc4\ \x42\x55\xcf\x90\x46\x6b\x06\x4f\xad\x10\x95\x15\x5a\x45\x4d\x8d\ \x38\xe0\x71\xf3\x57\x1e\xb7\xb6\xde\xe3\xe6\x0f\xd6\x3e\xfa\xbf\ \x8d\xed\x22\x90\x44\x22\x91\x48\xce\x1a\xcd\x2a\xb6\x98\x99\x03\ \xc7\xa9\xcc\x39\x0c\x24\x35\xd7\x59\x74\xac\x8a\x49\x29\x09\xe8\ \xd9\xd7\x16\x36\x01\xc3\x89\xc7\x23\xb8\xaa\x42\x54\xd6\x54\x6b\ \x87\xdc\x35\xe2\x1b\xaf\x47\xac\xf7\xfa\xd4\x0f\xd7\xe0\xcb\x62\ \x5e\xc4\xa2\xbd\xe5\x93\x48\x24\x12\x49\xe8\x34\xa9\xd8\xe2\xae\ \x4d\x9c\x07\xc2\x6b\x00\xac\xcd\x75\x14\x1b\xaf\x62\xfa\x9c\xae\ \x6d\x9e\x47\x6b\x4f\x7c\x3e\xe6\xaa\x53\x5a\x75\x4d\x95\x38\xec\ \x76\x8b\xef\xbc\x1e\xfe\x42\xf3\x8a\x8f\x89\xff\xf7\xd9\xea\x45\ \xec\x6b\x6f\xf9\x24\x12\x89\x44\xd2\x72\x82\x2a\xb6\xf8\x99\x89\ \x19\xcc\x58\x0c\xa0\x59\x4d\x15\x19\xa5\x60\xfa\x9c\xae\x88\x8d\ \x37\xc4\x8e\x9c\xd3\x68\x3e\x46\x55\xa5\x56\x53\x53\x25\x8e\xd4\ \xd6\x68\xdb\xbd\x5e\x7c\xe1\x71\x8b\x02\x0b\xaa\x0a\x56\x2f\xda\ \x55\xdb\xde\xf2\x49\x24\x12\x89\xc4\x88\xa9\x62\x8b\xbd\x36\xf1\ \x87\x44\xf8\x5b\x4b\x3a\xb0\xda\x08\x57\xa7\x76\x41\xe7\x6e\xcd\ \x1a\x75\xe7\x0d\x42\x30\x2a\x4f\x69\xee\xda\x2a\x71\xac\xb6\x56\ \xec\xf0\xb8\x79\xa3\xd7\xe3\xfb\xe4\x24\x94\x0f\xb7\x2e\xda\x5a\ \xd9\xde\xf2\x49\x24\x12\xc9\x85\x8c\x41\xb1\xc5\xcf\x4c\x9c\xc2\ \x8c\x4f\x60\x12\xba\x6f\xc6\xb4\x19\x9d\xd1\x27\x31\xe2\x4c\xc8\ \x76\xce\xc1\x02\xa8\xaa\xd4\x3c\xd5\x55\xda\x71\x77\x0d\xef\xf2\ \xd4\x8a\x4d\x6e\xaf\x58\xa3\x31\xde\x5f\xbb\x68\xeb\xc9\xf6\x96\ \x4f\x22\x91\x48\x2e\x04\x02\x14\x5b\xe7\x39\x83\x3a\x69\xb5\x62\ \x13\x03\x89\x2d\x69\xdc\x6f\x60\x04\x2e\xbf\xb6\xf3\x19\x13\xee\ \x7c\x81\x19\xa8\xa9\xd2\xbc\x55\x55\xda\x49\x77\x8d\xd8\xed\x76\ \x8b\x2d\xde\x5a\xfe\xdc\xea\xae\x7e\xef\xc3\xc7\x77\x1e\x69\x6f\ \xf9\x24\x12\x89\xe4\x7c\x22\x40\xb1\xc5\xcd\x18\xf8\x6f\x80\x6f\ \x6e\x49\x43\x45\x21\x5c\x77\x53\x37\xc4\x25\x9c\x5f\xf3\x6a\x67\ \x9b\xea\x6a\xe1\xab\xae\xd0\xca\xfc\x17\x9f\x7b\x54\xdf\x7b\x6b\ \x7e\xf5\xd5\x9e\xf6\x96\x4d\x22\x91\x48\xce\x45\x1a\x15\x5b\xcc\ \x35\x89\x13\x14\x05\x25\x2d\x6d\x38\x6a\x6c\x0c\xc6\x26\xc7\x9d\ \x31\xc1\x2e\x74\x6a\xab\x35\x51\x5d\x25\xca\x6a\xaa\xc5\x3e\x4f\ \xad\xf8\xca\xe3\xd1\xd6\x69\x9a\x78\xff\xb3\x45\x5f\x7f\xd7\xde\ \xb2\x49\x24\x12\x49\x47\xa6\x51\xb1\xc5\xcd\x4c\x7c\x0b\x8c\x1b\ \x5a\xd2\xc8\x62\x21\xcc\xb9\xa3\x07\xac\xd6\xf6\x59\x80\x7d\x21\ \xa3\x5f\x7c\xee\x75\x8b\x22\x8f\x8f\x3f\x5c\xb3\x68\xeb\xa6\xf6\ \x96\x4d\x22\x91\x48\x3a\x02\xc4\xcc\x88\x9f\x31\x78\x04\x43\xfb\ \x0a\x2d\x08\xed\x07\x80\x01\x83\x23\x31\x75\x7a\xa7\x33\x2c\x9a\ \xa4\x35\x34\x2c\x3e\xaf\xad\xd2\x0e\xba\xdd\xe2\x1b\x8f\x5b\x94\ \xc8\xc5\xe7\x12\x89\xe4\x42\x84\x98\x19\x71\x33\x06\xfc\x03\xa0\ \x85\x2d\x6d\x34\xf9\xaa\x4e\x18\x38\x2c\xf2\x4c\xca\x25\x09\x13\ \xfe\x8b\xcf\x6b\x6b\xc5\xb7\x5e\xb7\x56\xe2\x13\xca\xc7\xaa\xd8\ \xb2\x46\x2e\x3e\x97\x48\x24\xe7\x23\xf5\x8a\x2d\x71\x1b\x80\xa1\ \x2d\x69\xa0\x28\x84\x1b\xee\xec\x01\xab\x4d\xba\x21\xcf\x65\x34\ \x1f\xa3\xb2\x42\xab\xa9\xad\x96\x8b\xcf\x25\x12\xc9\xf9\x05\x45\ \xce\x1c\x94\x68\x11\xda\xee\x96\x36\xe8\x33\x20\x02\xd3\x66\xca\ \x10\xff\xf3\x15\x21\x18\x55\x15\xa2\xb6\xba\x4a\x1c\x73\xd7\xfa\ \x76\x78\xdc\xd8\xe8\xf5\x68\x9f\x9c\x64\xfa\x48\x2e\x3e\x97\x48\ \x24\xe7\x02\x14\x37\x23\xf1\x6e\x66\x7e\xa1\xa5\x0d\x46\x4f\x88\ \xc5\xa5\x13\x9b\x4d\xf0\x2f\x39\xcf\x30\x5b\x7c\xee\xf5\xf2\x67\ \x5e\xe6\x0f\xe4\xe2\x73\x89\x44\xd2\x91\xa0\x98\x19\x89\x2f\x12\ \xf3\x5d\x2d\x6d\x30\xf1\xb2\x78\x0c\xbb\x38\xfa\x4c\xca\x24\x39\ \x87\x60\x06\xaa\x2b\x35\x6f\x75\x95\x76\xb2\xb6\x56\xec\x3a\x5a\ \x56\x3b\xbb\x64\xd1\xb7\xc7\xdb\x5b\x2e\x89\x44\x72\xe1\x62\x51\ \x18\xbd\x5b\xb3\x87\x76\x54\xf4\xb9\x97\xbd\x5f\x72\xe6\x20\x02\ \x62\xe2\x54\x6b\x4c\x9c\xda\x13\x40\xcf\xca\x4d\xa2\x0f\x00\xa9\ \xd8\x24\x12\x49\xbb\xa1\x30\xb8\x47\x6b\x1a\x44\xc5\xc8\x4c\x23\ \x12\x89\x44\x22\xe9\xb8\x28\x00\x5a\xa5\xd8\x22\xa5\xc5\x26\x91\ \x48\x24\x92\x0e\x8c\x02\xa0\x7b\x6b\x1a\xc8\x6c\x23\x12\x89\x44\ \x22\xe9\xc8\x28\x00\x5a\xb5\xe7\x0c\x91\x54\x6c\x12\x89\x44\x22\ \xe9\xb8\x48\xbf\xa2\x44\x22\x91\x48\xce\x2b\xa4\x62\x93\x48\x24\ \x12\xc9\x79\x85\x54\x6c\x12\x89\x44\x22\x39\xaf\x90\x8a\x4d\x22\ \x91\x48\x24\xe7\x15\x52\xb1\x49\x24\x12\x89\xe4\xbc\x42\x2a\x36\ \x89\x44\x22\x91\x9c\x57\x48\xc5\x26\x91\x48\x24\x92\xf3\x0a\xa9\ \xd8\x24\x12\x89\x44\x72\x5e\x61\x69\x6f\x01\xce\x16\x5e\x0f\x43\ \xf3\x05\xa6\x7b\xb6\x59\xad\x88\x8b\x89\x41\xad\xaf\x1a\x9a\x90\ \x9b\x49\x4b\x24\x12\xc9\xf9\xc0\x79\xa5\xd8\x3c\x6e\x81\x7d\x3b\ \xdd\x28\x2f\xf5\xa1\xa6\x5a\x43\x4d\x95\x40\x6d\x8d\x40\xef\x1e\ \x5d\x31\x66\xc8\x48\x24\x76\xeb\x83\xfe\xdd\xfb\x63\x50\xcf\xc1\ \x18\xde\xe7\x22\xf4\xeb\x3a\x00\x0a\xd5\x19\xad\x1e\xad\x16\x35\ \xde\x4a\x54\x7a\xca\xb1\xa7\xec\x6b\xec\x2a\xdd\x8a\x9d\x27\xb7\ \xe0\x60\xc5\x4e\x08\x16\xed\x7c\x66\x12\x89\x44\x22\x69\x29\xe7\ \xbc\x62\xf3\xf9\x18\x07\x76\xbb\xb1\x7b\x5b\x0d\x0e\xed\x73\x43\ \xd4\xeb\xa0\xbe\x7d\xe2\x31\x7b\xca\x34\x2c\x9c\xb9\x10\xc3\x7a\ \x5f\xd4\x6c\x3f\x36\x35\x12\x36\x35\x12\x09\x91\xdd\xd0\x37\x7e\ \x08\x26\x0f\x98\x05\x00\x70\xfb\x6a\xb0\xbb\xec\x2b\xec\x3c\xb9\ \x05\xdb\x4e\x6c\xc4\x57\x47\x8b\xc0\x68\xcd\x46\x3f\x12\x89\x44\ \x22\x39\x9b\x9c\xb3\x8a\xad\xba\x52\xc3\xa6\xe2\x4a\xec\xdf\x59\ \x0b\x5f\xbd\x8b\x91\x08\x98\x31\x2d\x09\x8f\xcc\x7d\x04\xe3\x07\ \x4f\x0c\xcb\x38\x11\x96\x28\x8c\xe8\x36\x01\x23\xba\x4d\xc0\x0c\ \xdc\x89\x43\x15\xbb\xf1\xde\xb6\x57\x50\xbc\xff\x7d\x08\xd6\xc2\ \x32\x86\x44\x22\x91\x48\xc2\xc7\x39\xa9\xd8\x76\x7c\x53\x83\x0d\ \x6b\x4f\xc1\xeb\x39\x6d\x39\x75\xed\x1a\x85\x7f\xfc\xf8\x09\xcc\ \x9a\x90\x7e\x46\xc7\xee\x1d\x37\x10\x77\x8d\x5f\x84\xd9\x17\x2d\ \xc0\xfb\xdb\xfe\x89\xb5\x7b\x57\xc2\x27\x3c\x67\x74\x4c\x89\x44\ \x22\x91\xb4\x9c\x73\x4a\xb1\x55\x57\x69\x28\x2a\x38\x85\x43\xfb\ \xdc\x8d\x65\x44\xc0\xcc\x14\x07\x5e\x78\xf0\x45\xc4\x44\xc4\x9e\ \x35\x59\xba\x45\xf7\xc1\xad\x63\x7e\x8e\x59\x23\xe6\xe3\xdd\x6d\ \xaf\xa0\x60\x67\xae\x74\x51\x4a\x24\x12\x49\x07\xe0\x9c\x51\x6c\ \x7b\x77\xd4\xa2\xe8\x93\xf2\x00\x2b\x2d\x36\xce\x8a\xec\x9f\xfe\ \x09\xa9\x13\xaf\x6f\x37\xb9\x12\x22\xbb\xe1\xe6\x4b\x1e\xc2\xb0\ \xae\x63\xf1\xf2\x86\x47\xe1\xd1\x6a\xc3\x3e\x06\x03\x10\xba\x88\ \x4e\x45\x51\x40\x8a\x54\xa4\x12\x89\x44\xa2\xe7\x9c\x50\x6c\x07\ \xf6\xb8\xb1\xe6\xc3\x32\xb0\xdf\x73\x3c\x32\x52\xc5\xdb\x8f\xbd\ \x88\xc9\x23\x2e\x6f\x3f\xc1\xfc\x98\xd0\xe7\x2a\x74\x8b\xee\x8b\ \xe7\x8a\x1e\x46\x59\xed\xb1\xb0\xf6\xfd\xf5\xc6\x2a\x6c\x2a\xaa\ \x08\x28\x1b\x77\xc9\x40\x7c\xf0\x87\xf7\x50\x56\x73\x0c\x65\xb5\ \xc7\x50\x56\x73\x14\x65\xb5\xc7\x50\x5a\x7b\xac\xbe\xac\xee\x73\ \x79\xed\x09\x39\x17\x28\x91\x48\x2e\x28\x3a\xbc\x62\x3b\x7e\xd8\ \x8b\xcf\x3f\x08\x54\x6a\x16\x0b\x61\xe9\x2f\xff\xd4\x61\x94\x5a\ \x03\x89\x9d\x2e\xc2\x2f\xae\x78\x19\x8b\x8b\x7e\x8a\xdd\x65\x5f\ \x85\xad\xdf\xa3\x87\x8d\x73\x78\x8e\x51\xe3\x11\xa1\x46\xa1\x67\ \xec\x00\xf4\x8c\x1d\x10\xb4\xed\x47\x3b\xdf\xc0\x9b\x5b\x9e\x0c\ \x9b\x2c\x92\x3a\x32\x96\x3b\x86\x93\x82\x9f\x04\x14\x32\xbc\xd9\ \xe9\x45\x0f\x9c\xc9\x71\x9d\xf9\x8e\x3b\xc0\x98\x14\x50\x48\x58\ \x97\x9d\x5a\xf4\xca\x99\x1c\x57\x22\x39\x97\xe8\xd0\x8a\xad\xbc\ \xd4\x87\x82\x77\x4b\x03\x16\x56\x93\x02\x3c\xf1\xc0\xc3\x48\x9f\ \x78\x63\x3b\x4a\x16\x9c\x4e\x91\xdd\xf0\xf0\xd4\x25\x78\x79\xe3\ \xa3\x28\x39\xf0\x61\xe8\x1d\x72\x9d\x72\xd7\x73\xcd\xf8\x6b\x43\ \xef\xfb\x1c\x22\xab\x20\xc5\x72\xb8\xb4\xf2\x22\x4d\x51\xfa\x12\ \xa1\x17\x6b\x38\xc1\x50\x76\xf8\x3a\x47\xee\x7a\x69\xda\xea\xf0\ \xfb\x7f\x9b\x41\x25\xa5\x8f\x80\x70\x06\x14\x12\xdc\x00\xce\xa8\ \x62\x83\x40\x0a\x08\x77\xe8\xca\x22\x01\x48\xc5\x26\x91\xd4\xd3\ \x61\x15\x5b\x75\x95\x86\xd5\xff\x2d\x85\xc7\x1d\xb8\x38\xfa\x27\ \x3f\xb8\x0d\xce\xe9\xf7\xb7\x93\x54\x2d\xc3\xaa\x46\x60\xfe\x84\ \x47\x71\xb2\xfa\x30\x76\x96\x6e\x0d\xa9\xaf\xb2\x52\xaf\xe1\x1a\ \xd8\x22\x14\xa4\x8c\xbe\x2a\xa4\x7e\xcf\x15\x32\x96\x3b\x86\x43\ \xc1\x8f\x09\xb8\x11\x8a\xd2\x8d\x00\x80\xeb\x5e\x70\x08\x02\xb6\ \xf2\x6a\xce\x74\x25\x3f\xbf\x24\xad\x30\xa3\xbd\x65\x95\x48\x24\ \x1d\x83\x0e\x9b\x2b\x72\xcd\x07\xe5\xa8\xae\x0c\x9c\x1b\x9a\x32\ \xf1\x22\xfc\xf6\xe6\xc7\xdb\x49\xa2\xd6\xa1\x90\x8a\x7b\x92\x7e\ \x87\x68\x6b\x5c\x48\xfd\x1c\x33\xb1\xd6\x06\xf5\xef\x0e\x55\xe9\ \xb0\xef\x24\x61\xc3\x99\xef\xb8\x9f\x14\x6c\x22\x20\x13\x40\xb7\ \x20\xd5\x88\x81\xf8\xb3\x29\x97\x44\x22\xe9\xd8\x74\x48\xc5\xb6\ \x6f\x57\x2d\x8e\xe9\xe6\x95\x2c\x56\xc2\x33\xf7\xfe\xbd\x9d\x24\ \x6a\x1b\x5d\xa3\x7b\xe3\x07\x63\x7f\x15\x52\x1f\xc7\x0e\x19\xe7\ \xd7\x26\x8c\xbc\x24\xa4\x3e\xcf\x05\x32\xf3\x92\x33\xc0\x78\x06\ \x40\x94\xc9\xe1\x32\x00\x6b\x01\x1c\x39\xbb\x52\x49\x24\x92\x73\ \x81\x0e\xa7\xd8\x58\x00\x9b\x0a\x2b\x0d\xe5\xa9\x57\x4e\x6d\x51\ \x6a\xac\x8e\xc6\xf8\x3e\x29\xb8\x7c\x60\xdb\x97\x23\xe8\x15\x3c\ \x00\x5c\x35\xf6\xca\x50\x44\xea\xf0\xdc\xb7\xcc\x3e\x98\x89\xff\ \x61\x72\x68\x13\x04\x5d\x56\xea\x49\xec\x96\x9d\x56\x34\x25\x3b\ \xad\xa8\x97\x6a\xb1\x75\x11\x0a\xff\xe2\xac\x0b\x29\x91\x48\x3a\ \x2c\x1d\xce\x9f\xb5\xfd\xeb\x6a\x54\x94\x07\x66\xda\x8f\x8a\xb6\ \xe0\xa9\x7b\xce\x8c\xb5\xb6\xe1\xe0\x6a\xbc\xf4\xe1\x0b\x78\xe7\ \xa3\x0d\x38\x71\xb2\x1a\x56\xab\x82\xa1\x03\x7b\x63\xf2\xe8\x24\ \xdc\xfd\xbd\xf9\xb8\xb8\xff\xa5\x21\x8f\x31\xef\x92\x1f\x63\xc7\ \xc9\xcd\x38\x70\x6a\x47\xab\xda\x55\x55\x08\x54\x55\x04\xce\xaf\ \xa9\x2a\x61\xc6\xf8\xd4\x90\x65\xea\xc8\xf8\x14\xe5\x2e\x02\x5b\ \x75\xc5\xa7\x34\x52\xe7\x3e\x3f\x67\xed\x76\xff\xc2\xe7\xae\xfb\ \xac\x14\x40\xa9\x59\x3f\xce\x9c\x24\xab\xe8\x65\x19\xa9\x0a\xbe\ \x18\xe0\xa3\x1e\xaf\xef\xcb\x17\xe7\x6e\x68\xd5\x5a\x8c\xdb\x57\ \x8d\x89\x89\xae\x8d\x98\xc0\x4c\xfd\x40\xf0\x42\x51\x76\xf4\x89\ \x8d\xfc\xb2\x75\x67\x74\x9a\xbb\xf2\xc6\x75\x8a\x50\x22\x26\x42\ \x88\x9e\x04\x75\xbf\x4f\xe1\xaf\x97\xa6\x16\x9e\x71\xcb\xf3\xbe\ \x65\xf6\xc1\x3e\x05\x49\x80\xa2\xa9\xd0\xf6\x59\x23\xca\x36\x3f\ \x3d\x63\x9b\xbb\xb9\x76\xce\x65\x49\xbd\x85\xaa\x0e\x55\x80\xfe\ \x0d\xe7\x8f\x1a\xef\x8e\xec\xb9\x25\xe5\xc1\xda\xdc\x93\x3b\xb9\ \x8b\xc5\xa2\x8d\x60\x15\xfd\xc0\xb0\x02\xca\x0e\xa8\xde\x1d\xd9\ \xb3\x4a\x8e\x87\xf7\xac\x24\x12\x73\x3a\x94\x62\xf3\x7a\x19\x5b\ \x4a\x8c\xd6\xda\xdd\x69\x73\xd0\x25\xb6\x6b\x58\xc7\xda\x57\xfe\ \x2d\x5e\xdb\xf4\x44\x5d\x58\x7e\x02\xe0\xb8\x2a\x1a\x25\x9f\xfb\ \x70\x68\x9f\x1b\x5b\xbf\xde\x8f\xad\x5f\xef\xc7\x8b\xcb\x5d\xb8\ \x6b\xce\x6c\xfc\xe5\xae\xbf\x37\xee\x02\xd0\x16\xac\x8a\x0d\xf7\ \x4c\x78\x0c\x8f\xae\xbe\xb5\x55\xd9\x49\xcc\xac\xb5\x3e\xbd\x13\ \x10\x17\x19\xda\xbc\x5d\x47\x26\x2b\x8b\x14\x1a\x6b\xbf\xc3\x70\ \x80\xf1\xf8\xf3\x69\x81\x4a\x2d\x18\x99\x79\xf6\xdb\x98\xe8\x21\ \xf4\x54\x47\x29\xcc\x36\x26\x00\x20\x58\x6d\x56\x38\x5d\x8e\x43\ \x4c\x28\xf0\xb9\xbd\x3f\x6c\x4a\xc9\x65\x65\x91\x72\x70\x9c\xfd\ \x0f\x51\x1c\x99\xd9\x38\x87\xc7\x00\x34\x81\x83\xe5\xd5\xdf\x11\ \x71\x3e\x40\x2d\x3a\x27\xe7\xca\xa4\x68\x68\x96\x3f\x00\x7c\x8d\ \x8d\x6c\xc3\x99\x99\x40\x04\x86\x80\xc2\xd0\x9c\x2e\xfb\x7f\x85\ \x50\x1f\x59\x3a\x67\xdd\xd7\x2d\xea\xb0\x85\x64\xe4\xd9\xc7\x82\ \xe8\x71\x02\xec\x50\xa9\x2e\xf0\xa6\x6e\x54\xb8\x3d\x5d\x4e\x38\ \xf3\x1d\x2f\x44\x58\x4f\xfe\xc6\x4c\xc1\x65\xba\xec\xb3\x05\xe3\ \x01\x52\xd5\xab\x95\x86\x13\xad\x3f\x7f\xd8\x54\x38\x5d\x8e\xe3\ \x20\x5e\x96\x9d\x5a\xdc\x18\x19\x9a\xb9\xdc\x31\x89\x15\xfc\x58\ \xb5\x21\x9d\x01\xeb\xe9\xaf\xba\x00\x34\x15\x4e\x97\xe3\x14\x80\ \xf5\xd9\x69\x45\x57\x87\xf3\x3c\x25\x12\x3d\x1d\xca\x15\xf9\xd5\ \xc6\x2a\xd4\xd6\x04\x5a\x28\x5d\xba\x44\xe1\xd1\x5b\x7e\x1f\xd6\ \x71\xf6\x95\x7f\x8b\x27\xd7\x2c\x0c\x58\x6b\x16\x97\xa0\x62\xda\ \x8c\xce\x18\x3a\x32\xba\xb1\xcc\xe7\x63\x2c\xcd\xcd\xc7\xb8\xfb\ \x26\xa2\xb2\xb6\xc2\xac\xab\x16\xd3\x27\x7e\x08\x2e\xed\x75\x59\ \xab\xda\x98\xcd\xaf\x5d\x3a\x6c\x44\x48\x72\x74\x74\x0e\x8e\x71\ \x5c\x0d\xa0\xbf\xbe\x5c\x51\xc4\x07\xcd\xb5\x7d\xf0\xdd\xe4\xf8\ \x4c\x97\xe3\x35\x26\xfa\x27\x80\xb1\x00\x6c\x26\xd5\x7a\x13\xe3\ \xfb\x56\x9b\x65\xd3\xbd\x79\x93\xa6\x99\xf5\x93\x95\x45\xca\x81\ \xb1\xf6\x97\xc0\xf8\x19\xcc\x03\x53\x86\x33\xe8\xe1\xe6\xe4\x01\ \x80\x05\x2b\x1c\x83\x20\xd4\xb5\x00\x3f\x08\x60\x04\x8c\xda\x50\ \x05\x28\x55\x51\x44\x61\x66\xbe\x3d\x6c\x0b\x33\x33\xf2\xed\xb7\ \x12\xd1\x5a\x02\x66\xc2\x3c\xf0\xa6\x2b\x18\x3f\x73\x7b\xba\x7c\ \xbc\x30\x37\x25\x20\x17\x5d\x86\x2b\xf9\x61\x06\xe5\x13\xd1\xf7\ \x4c\xe4\x6d\xa0\x1b\x40\x23\x4e\xb7\x71\xcc\x61\x05\x9f\x02\x98\ \x0b\x40\x6f\x6d\x37\x10\x0f\x60\x74\xeb\xcf\x46\x22\x69\x1d\x1d\ \x46\xb1\x55\x57\x69\xf8\xf6\xcb\x2a\x43\xf9\x4f\x6f\xcb\x84\xcd\ \x62\xf6\x7c\x6a\x1b\x47\x2a\xf7\xe0\xa9\xb5\x0f\xa0\xda\x6b\x54\ \x54\xa4\x00\xf6\x2b\xe2\x91\x38\x34\x32\xa0\x7c\xe7\xee\xe3\x48\ \x7d\x34\x2d\xe4\xb1\xa7\x0f\xbd\xad\x55\xf5\xcd\x2c\xb6\x94\xb1\ \x1d\x6b\x51\x7a\xd8\x51\xd8\x6c\x1d\x43\x69\xaf\x8d\x25\x9b\x9b\ \x6a\x96\x95\x45\x8a\xdb\xc3\x05\x0c\xdc\xaa\x3b\x54\x06\xd0\x1b\ \x00\x76\x07\x16\x53\x1f\x41\xe2\xa3\xcc\x3c\xbb\x61\xbc\x43\x63\ \x1d\x4b\x08\xb8\x5d\x57\xec\x23\xe0\x7d\x02\x3e\x03\x5a\x66\x76\ \x3b\x57\x26\x5d\xa4\x08\x94\x80\x31\xc6\xaf\xd8\xcb\xc0\x3b\x0c\ \x5a\xa3\xab\x1e\xcf\x4c\xaf\xcd\xcf\x9f\x1a\xb2\x39\xee\xcc\x77\ \xfc\x94\x98\x5e\x43\x60\xe0\xcd\x51\x26\xfc\x1b\xc0\x3e\x5d\xf5\ \xc9\x9a\xad\xe6\x8f\x0d\x1f\x32\xf2\x27\xa5\x12\xf8\xcf\x26\xdd\ \xee\x66\xc2\xbf\x09\xf4\x32\x08\x9b\x01\x34\x86\xeb\x66\xac\xb0\ \x5f\x4c\xc0\x1b\x30\x7a\x80\x8e\x00\xc8\x03\x71\x0e\x80\x22\x00\ \x35\x21\x9c\x96\x44\xd2\x62\x3a\x8c\x62\xdb\xfe\x55\x4d\xe3\xf6\ \x33\x0d\x24\x74\x8a\xc0\xfd\x33\x7e\x14\xd6\x71\x5e\xdf\xfc\x27\ \x54\x79\x82\x4e\x0f\x00\x00\xec\x97\x27\x20\x26\x4e\x0d\x28\x5b\ \xbf\x71\x07\x1e\x5c\x7a\x5f\x48\x63\x0f\xed\x3a\x06\x83\x3a\x5f\ \xdc\xa2\xba\x1e\xb7\x40\x59\xa9\x6e\x57\x6f\x02\x52\x27\xce\x09\ \x49\x86\x8e\x0e\x33\x7a\x99\x14\x7f\xb7\x68\x51\xd3\xbb\xbd\x1e\ \x18\x37\x71\x3e\x80\x71\xba\xe2\x55\xa5\x9e\xaa\x9e\xd9\x69\x85\ \x37\xe7\xa4\x15\x0f\x26\xe6\x3f\xe8\x8e\x2b\x4c\xf4\x84\x7f\x41\ \xe6\xca\xe4\x61\x0c\x5e\xa0\xab\x27\x58\xe1\xc9\x4b\xd2\x8a\xae\ \x5d\x92\x56\x74\x39\x31\x7f\xaf\x25\xe7\x42\x42\xcd\x02\xd0\xc5\ \xbf\x1f\x85\x44\x4a\x4e\x5a\xd1\x75\x39\x69\x85\x53\x41\xf8\xad\ \xae\x49\x7f\x8b\xf0\xb4\xee\xed\x47\xc7\xdd\xb9\xe3\xbb\x83\xb1\ \x48\x57\xfc\x95\x27\x21\x3a\x31\x27\xb5\xe8\x96\x3e\x09\xd1\x83\ \x01\xde\xe2\x7f\x90\xc1\x99\xf7\x2f\x77\x74\x05\x00\x85\x79\x96\ \x49\xb7\xcf\x67\xa7\x15\x0d\xca\x49\x2d\xba\x65\x49\x5a\xe1\x5d\ \xd9\xa9\x45\x63\x23\x6c\x27\xe3\x54\x1f\xdf\x5d\xd7\x86\xae\x81\ \xce\x4a\x63\xd0\x9a\x3e\x09\xd1\xfd\xb2\xd3\x8a\xe6\x64\xa7\x16\ \x3b\xb3\xd3\x8a\x92\x4b\x3d\x89\x71\xa4\x52\xeb\xdc\x16\x12\x49\ \x1b\xe8\x30\x8a\x6d\xdf\x2e\x63\xf2\x88\xc9\x63\xc3\x1b\xd6\xbe\ \xf1\xd0\x6a\x7c\x73\xbc\xa4\xd9\x7a\x56\x1b\xc1\x71\x45\x82\xa1\ \xfc\x55\xd7\x3b\xf8\xf6\x60\x68\xd3\x20\x2d\xb5\xda\x8e\x1f\xf6\ \x1a\xec\x82\x6e\xdd\xa2\xd1\xbb\x73\xdf\x90\xc6\xef\xf0\x30\xf7\ \x36\x29\x6d\xf2\x4d\x64\x7e\xfe\xd4\x38\x62\x7a\x4c\xdf\x93\xaa\ \xf1\xbd\x6f\xce\xdd\xea\x01\x00\x06\xb3\x2d\xa2\x34\x0b\x06\xcb\ \x0d\x49\x19\x79\xc9\x37\x34\x36\xd2\xf8\x4e\x93\x21\xfe\x95\x33\ \xbb\x78\x7d\xc3\x87\x25\xe9\xc5\x1f\x11\x61\x65\x53\x32\xdd\xbb\ \x7c\xe2\x68\x66\xcc\xd5\x15\xaf\x5a\x9c\xba\xbe\xd1\x52\xab\x89\ \xac\xfd\x8b\xa1\x21\x21\xa4\x94\x32\x56\x9b\xf5\xa7\x00\x62\xfc\ \xcb\x98\xe8\xb1\x86\xec\x2c\x8b\xa6\xad\xf6\x11\x93\x3e\x12\x4b\ \xf1\x11\xa6\x03\x00\x83\xa7\x1a\x44\x62\xfe\x44\x5f\xf6\xf4\x8c\ \x6d\xee\xe7\xae\x2f\xde\x59\x37\x00\x8c\x6d\xc0\x9f\x2c\x9a\xb6\ \x3a\xe0\xcd\xec\xcd\xb9\x6f\x6a\x4b\x66\x15\x6e\x6b\xe5\x29\x49\ \x24\xad\xa6\x43\x28\xb6\x8a\x72\x0d\xe5\x27\x7d\x86\xf2\x9b\xae\ \xd0\x3f\x17\xda\x0e\x83\xf1\xd6\xff\x9e\x69\x71\xfd\x5e\xfd\x6c\ \xe8\xd6\x33\x70\xaa\x40\xd3\x18\x8f\xbc\xf4\x48\x48\x72\x8c\xed\ \x3d\x0d\xdd\x62\x9a\x57\x4e\x47\x4d\xe6\xd7\x2e\x1e\x32\x38\xa4\ \xb1\xcf\x05\x88\x8c\x16\x1b\x03\xa7\x9a\x6a\x63\x15\x9e\x34\x00\ \x3d\x75\xc5\x47\x1a\x1f\xbc\xf5\xd4\x07\x49\xac\xd5\xb7\x57\x28\ \xc0\x42\x33\x09\x5c\x61\x83\x1b\x54\x30\xfe\xd7\x94\x4c\x42\xa1\ \x9f\x40\x3f\x3f\x45\x14\xd0\xe6\xd5\xe9\x9b\xab\x00\xe8\x22\x05\ \x29\xc5\x99\x93\x14\x6c\x8e\xaa\x49\x7e\x92\x3b\x39\x0a\xc0\x42\ \x7d\xb9\xa2\x71\xc0\xdb\x18\x83\xf4\xee\x48\x30\x70\x4d\x43\x75\ \xc3\x31\xa2\x3b\x9b\x1a\x57\xb0\xe9\x73\xe4\x96\xac\x82\x94\x0e\ \x15\x9c\x26\xb9\x70\xe8\x10\x8a\x6d\xbf\x89\xb5\x16\x15\x6d\x41\ \xba\x3d\x7c\xf9\x20\x77\x95\xfe\x0f\xc7\xab\x0e\xb4\xaa\xcd\xa8\ \x71\xc6\xfd\xdd\x56\x17\x6e\xc6\x8e\x23\x6d\x7f\xe9\x54\x48\xc1\ \xd5\x43\xbe\xdf\x6c\x3d\xb3\xf9\xb5\x29\xa3\x93\xdb\x3c\xee\xb9\ \x03\x75\xd2\x97\x28\x40\x93\x61\xe9\xac\x28\xc3\x0d\x65\xa0\xbd\ \xa6\x75\x99\x76\x1a\xeb\x62\x28\x50\x17\xa6\x0e\xc0\xf0\xd6\xc1\ \xc6\x79\x29\x10\xd3\xe1\xa6\x64\x22\x90\x71\x9d\x08\xf3\x37\x26\ \x55\xf7\xeb\x3e\xc7\x89\xde\x96\x09\x4d\xf5\x1d\x8c\x1a\x8b\x77\ \x08\x80\x68\x5d\x31\xb3\x55\x0b\xf8\xc2\x2a\xac\x1d\x34\x34\x26\ \x4c\xab\xff\xcf\xcc\x25\x71\x55\xa6\xcb\xb1\xec\x9e\x65\x53\x12\ \xcd\xc6\x25\x22\xb3\x36\x03\x0f\x96\x57\x7f\x92\x91\x67\x1f\xdb\ \xac\xe0\x12\x49\x98\xe9\x10\x6f\x54\x66\x6e\xc8\x09\xa3\x87\x87\ \x35\x6d\xd4\xa6\x43\x05\xad\x6e\xd3\x6f\x60\x04\x62\xe2\x54\x54\ \x55\x9c\x4e\xed\xa5\xf9\x18\xbf\x7f\xe3\x77\x78\xe1\xc1\xb6\xe7\ \x9c\x9d\xd4\xff\x3a\xe4\x6e\xfd\x1b\x34\x61\xb4\x52\x01\x40\xd3\ \x80\x93\xc7\x8c\xa9\xb4\x52\xed\xa1\x07\xb0\x9c\x03\x18\xac\x33\ \xc1\x68\x72\x07\x59\x06\x0f\xd5\x87\xee\x11\x84\x41\x19\x01\x00\ \x14\xec\x32\x09\xfd\x18\x30\x2f\x77\x9e\xda\xc5\x26\x7a\x99\x45\ \x85\x28\x6c\x62\xe1\x28\x38\x4c\x4d\x84\x90\x30\x30\x44\x5f\x46\ \xcc\xa3\x33\xf3\x1d\x99\xba\x62\x43\x64\x14\x31\xf5\x08\xde\x73\ \x13\x63\x5a\xd4\x21\x10\x06\xa1\xaa\x48\xa8\xb7\x67\xe6\x3b\x4e\ \xd7\x23\xc5\x2c\xd2\xb3\x1b\x00\x08\x05\xcf\x28\x02\x86\x6d\xe8\ \x19\x98\xa3\xaa\xbe\x6b\x33\xf3\x1d\xff\x97\x9d\x5a\xfc\x14\xfb\ \xef\xb7\xc1\xbe\xe7\x41\xea\x8f\x00\x44\xea\x9a\x4d\x26\xa2\x92\ \x8c\x3c\xc7\xdf\xbd\x9d\xa2\x7f\xd5\x1e\xc9\xaa\x25\x17\x26\xed\ \x6e\xb1\xd5\x56\x0b\x1c\x3f\x62\x7c\x88\xdf\x78\x79\x78\x1f\xe2\ \x9b\x0e\x19\xa6\x09\x5a\x44\x9f\x01\x11\x86\xb2\xcf\x37\x6f\x08\ \x49\x96\x48\x4b\x34\x06\x77\x1e\x8d\x63\x87\x3d\x38\xb8\xd7\x1d\ \xf0\xd7\xd5\x9a\x88\x68\xad\x2f\xa2\x63\x6c\xb0\x5a\x4f\x3f\xae\ \xe3\xe2\xad\x61\x59\x2c\xde\xd1\x21\xe0\xa4\xa1\x8c\x9a\xce\x05\ \x49\xa2\xce\xe2\x0a\x44\x31\x35\xcf\x99\x78\xb7\x49\xb1\xb5\xab\ \x75\x5f\x7f\x4d\x61\xb3\xc0\x15\x68\x26\x8a\x4d\x15\xc1\x2d\xb6\ \x7a\xcb\xcf\x60\x79\x32\xd1\x0f\x99\xb1\xd8\xff\x0f\xc0\x28\x43\ \x07\x82\x8d\x13\xbc\x2d\x81\xd9\xa0\x4c\x01\xc4\x1a\xc6\x24\xfc\ \xd1\xa4\x5e\x74\x56\x16\x29\x4b\x67\x17\x7d\x0c\xe6\xdf\x00\x30\ \x0b\xd6\x89\x62\xc6\x5f\x33\xf2\xed\xab\xfd\xad\xb7\xec\xf4\x92\ \x1d\xcc\x94\x01\xa0\xda\xa4\x8d\x4a\x84\x9f\xd8\xca\xab\xbf\x70\ \xae\x9c\x34\xbe\x4d\xe7\x25\x91\xb4\x92\x76\x57\x6c\xfb\x77\x1b\ \x5f\xe2\xac\x36\x05\xdf\xbf\x4c\x1f\x6d\xdd\x76\x0e\x55\xec\xc2\ \x91\x4a\x53\xcf\x54\xb3\x98\x29\xb6\x43\x87\x4e\x61\xef\xf1\xdd\ \x21\xc9\x34\xb2\xbb\x1d\x45\x05\xe5\x28\x78\xa7\x34\xe0\x6f\xb0\ \xed\x4a\x3c\x3d\x77\x19\x0e\xbe\xb1\x0d\x27\xf3\x77\xe3\x88\xeb\ \x6b\x6c\x78\x69\x15\xde\xff\xf3\xdb\x21\x8d\x77\xae\x20\xd8\x44\ \xb1\x35\x97\xe4\x98\x60\x78\x33\x22\xf3\x1c\x93\x20\x4d\x18\x6f\ \x28\x00\x85\x34\x4d\xd1\xc8\xd4\x45\x10\x41\x6c\x08\x53\x67\x68\ \xaa\x59\x5d\x00\xb0\x46\x99\x8f\xdd\x52\x9a\x53\xe4\xc1\x60\x36\ \x58\x4c\xad\x1a\x76\xef\xb8\x29\x31\x00\x90\x9d\x5e\xfc\x98\x42\ \xe2\x72\x10\x0c\x6e\xdb\xba\x81\x70\x85\xaa\xfa\xbe\xcc\x5c\xee\ \x68\xdc\x17\x2e\x27\xbd\xf0\x9f\x2c\x30\x0e\x8c\xf5\xa6\x6d\x80\ \x51\xd0\x44\x61\x66\x9e\xa3\x79\x3f\xbc\x44\x12\x22\xed\xee\x8a\ \xdc\xb7\xcb\x38\x7d\x32\x7a\xc4\x00\x44\xdb\xf4\x53\x05\x6d\x67\ \xfb\xc9\x26\x97\x40\x35\x49\xcf\xbe\x36\x28\x2a\x41\x68\x7e\x9e\ \x17\x06\x5e\xfb\xe4\x15\xfc\xf2\x06\x7d\x54\x75\xcb\x19\xd5\xa3\ \x65\xf3\x65\xd1\xb6\x68\x0c\xeb\xd5\xf6\x45\xd9\xc9\xfd\xae\xc5\ \xa0\x4e\xa3\x50\xe5\x3d\x85\x2a\xcf\x29\x54\x79\x4f\xa1\xda\x53\ \x8e\x2a\xcf\x29\x54\x7a\xcb\x51\xed\x39\x5d\x7e\xaa\xf6\x04\xdc\ \x5a\xfb\x2e\x35\x22\xe0\x84\xbe\x8c\x81\x11\xf3\x72\xe7\xa9\x6f\ \xce\x7d\x33\xc8\x56\xe0\xb4\xcf\x10\x42\x4a\xa6\xd1\x95\x50\x48\ \xed\x65\x92\xfd\xc5\xd3\x63\xd3\xfa\x03\x87\xc7\x25\x75\x13\x6c\ \x7c\xd7\xf3\x5a\x95\x44\xe8\xe4\x62\x85\xba\x04\x5b\xcd\xd6\xeb\ \x8b\x75\x87\x0e\x8e\xb5\x7b\x60\x70\x33\xd2\x13\x5c\xb7\x06\xac\ \x49\x48\xf1\x6d\x6a\xae\x8e\x69\x3b\xc6\x2e\x36\x2e\xa7\x3e\xc5\ \x44\x4e\x93\xea\x06\x62\xac\x47\x1a\x27\x76\x17\xa7\xae\x5f\xb3\ \x30\x37\x65\x8c\xcf\x56\xfd\x17\x00\x19\x30\x2e\xd4\x8e\x67\x05\ \xcf\x65\x65\xd1\x84\x86\xa5\x18\x39\x73\x8a\xbe\xcb\x2a\x48\x99\ \x7c\xa0\xbc\xe6\x97\x04\xfe\x15\x8c\x6e\x56\x2b\x13\x9e\xb9\x7f\ \xb9\x63\xd5\x3f\xe6\x14\x19\xee\xb3\x44\x12\x2e\xda\x55\xb1\x79\ \x3d\x8c\x23\x07\x8c\x8a\x6d\xf6\xe4\x6b\x4c\x6a\xb7\x9d\xc3\x15\ \x7b\xda\xdc\xd6\x62\x21\xf4\xe8\x6d\xc5\xe1\xfd\x81\xc1\x1c\x1f\ \xac\x2f\x08\x49\xb1\x25\x76\x1a\x89\x2e\x09\x9d\x70\xaa\xec\xcc\ \xfe\xbe\x63\x6c\x09\x18\xdc\xa5\x65\xcb\x26\x3a\xc2\x6e\xdb\x0c\ \xfe\x8c\x40\x77\xeb\x8a\x63\x13\x22\xf6\x5e\x0c\xc0\x34\x47\x23\ \x41\xec\x63\xdd\x73\x37\xc8\x7a\x38\x08\x42\x2f\x93\xb9\xb1\xdd\ \x8b\x16\xb1\x58\xb0\x2c\xf9\x98\xa2\x1a\x0f\xb2\x8f\x07\x01\x08\ \xf4\x3f\x73\xc0\xfa\xb4\x00\x16\x2d\x62\xe1\x74\x39\xf6\x41\x37\ \xcf\x46\xe0\xaf\xb3\x53\x8b\xfe\x13\xac\x5d\xa8\x30\x29\x3b\x4d\ \x3c\x88\xb1\x74\xd8\xf7\x76\x76\x46\x89\xd1\xdf\xdf\x0c\xcf\xce\ \x5d\x5d\x09\x20\x33\x63\xb9\xfd\xdf\xa4\xd2\x8b\x60\xe8\xc3\x72\ \xc7\xee\x1f\xe7\x18\x0d\xbf\xfb\x52\x1f\xe2\xff\xa8\x73\x65\xd2\ \x9b\xd0\xd4\x17\x00\x4c\xd6\xb5\xe9\xea\x23\x9e\x01\xe0\xb5\xd6\ \xca\x23\x91\xb4\x94\x76\x75\x45\x96\x9e\xf0\x42\x98\x78\xf2\xaf\ \xba\xb4\x45\xeb\x5f\x5b\xcc\xe1\xca\xdd\x21\xb5\xef\xd2\xdd\x18\ \x7d\xbd\x73\xdf\xa1\x90\xfa\x54\x48\xc1\xf4\x64\xc3\xf2\x9f\x0b\ \x1e\x2f\xbc\x79\x00\x0c\x21\xa1\x2a\x58\xff\x80\x6c\x44\x00\xbb\ \x4c\x8a\x4d\x2d\x36\x32\x53\x78\x44\x3b\x00\xa0\x5c\xab\x3c\x0a\ \xb3\x08\x4c\xc2\x20\x63\x4f\xdc\x39\x98\x3c\xf5\xec\x36\xb4\x00\ \x0c\xd1\x9b\xe1\xc4\xeb\x71\x9b\xb9\x0e\x15\xee\x6d\x8c\x1a\x6d\ \x0d\x39\x73\x8a\x3f\x11\x04\xfd\xa2\x75\x00\x80\xca\x62\xa4\x59\ \x79\xf6\xac\x92\x6f\x14\x55\x9d\x07\x18\xdd\xc4\x20\x0c\x6b\xf8\ \xd7\xe9\x9a\x7c\x89\xd3\xe5\xf8\x5d\xc6\x72\xc7\xac\x79\xb9\xf3\ \x82\xba\x77\x25\x92\xd6\xd0\xae\x8a\xed\x54\x99\x31\x2a\x50\x55\ \x09\x63\x06\xea\x13\x48\x84\xc6\xe1\x8a\xdd\x21\xb5\x8f\x4b\x30\ \x1a\xb6\x65\x65\xb5\xf0\x6a\xad\x7e\x09\x0e\x60\xda\xa5\x32\x09\ \x83\x9e\x97\xd2\x37\x96\x31\xf0\xa1\xbe\x9c\x19\xbf\xba\xef\xbf\ \x97\x99\x2a\x13\x9f\xc7\x97\x0b\x63\xba\xa6\x5e\x0b\x5d\x76\x43\ \xce\x49\x80\x0d\xa9\x5f\x88\xf9\x3f\x00\xf0\xe6\xdc\xad\x1e\x66\ \xbc\x67\x38\x0e\x61\x0c\xf0\x20\x25\xd8\xc6\xa7\x75\xa3\x80\x0c\ \xfd\x00\x7c\x57\x5b\xd7\xa8\xb5\x84\x17\xe7\x6e\x38\x46\xc0\x17\ \xfa\x72\x12\x34\x3f\xd4\xbe\x97\xce\x2e\xfa\x18\x40\xab\xd6\xcb\ \x2c\x9e\xb5\xf6\x00\x80\x4f\xf5\xe5\xcc\xc4\x04\x22\xa7\xcb\xee\ \x02\xb4\x2f\x01\xfc\x8a\x14\xac\xe8\x6c\xdb\xb3\x7b\xc1\x0a\x87\ \xc9\x4b\x84\x44\xd2\x3a\xda\x57\xb1\x95\x1a\xa7\x4c\xba\x74\x89\ \x0e\x6b\x98\xbf\x57\x73\xe3\x44\x4d\x93\x4b\x8e\x9a\x25\x2e\xc1\ \xf8\x22\x29\x04\x63\xcb\x9e\x36\x4d\x85\x34\xe2\x18\x16\xd4\x08\ \xb9\xb0\x61\x32\x73\xd7\xf5\xd3\x7c\x9e\xec\x07\xdf\x1d\x66\x08\ \xfe\x78\x71\xee\x86\x63\x20\xbc\xac\x2b\x56\x35\x28\x8f\xfa\x17\ \x2c\x58\xe1\xb8\x12\x80\x3e\x37\xe4\xb7\x27\x3d\x89\xff\x6a\xf8\ \xa0\xd4\xe5\x3c\xd4\x41\xb7\xdd\x97\x3f\xb1\x71\xa2\x73\x7e\xfe\ \xd4\x38\x30\xeb\x73\x52\x06\x10\xeb\x51\x9e\x05\x58\xb7\x5e\x8c\ \xfa\xa0\xa7\xfa\x4c\x53\x0b\x97\xe7\xe5\x8e\x0e\x29\x31\x2a\x33\ \xfd\xd2\xa4\x38\xc3\x99\xef\xb8\x2e\x58\x1b\x02\x91\x33\x27\xc9\ \xda\x94\xd2\x9d\x9f\x3f\xb5\x0f\x60\xb4\x76\x89\xd5\xa2\xac\x2c\ \xf3\xad\x2f\xea\x16\x8c\xb3\xc1\xa2\x63\x88\xa2\x05\x2e\xfb\x74\ \x80\xf4\xfb\x2f\xf5\x53\x34\x43\x3a\x30\x89\xa4\xd5\xb4\xeb\x1c\ \x5b\xb9\x3e\x17\x22\x80\xbe\xbd\xba\x87\x75\x8c\x23\x95\x7b\xc1\ \x4d\xa7\x19\x6c\x96\x78\x13\x8b\x0d\x00\x36\xee\xda\x80\xf1\x83\ \x27\xb6\xb9\xdf\x1e\x71\x7d\xd1\xbb\x4b\x0f\x1c\x3a\x79\xb4\xcd\ \x7d\x9c\x8f\xf4\xdd\x5c\xf4\xaf\x83\x75\x5b\xd7\xe8\x95\xd0\x5c\ \xb7\xa7\xcb\x0c\x67\x5e\xf2\x2a\x26\xac\x53\x58\xf4\x13\x44\xc3\ \x14\xf0\x57\x60\xf1\x57\x90\x7a\x0f\xfc\x72\x16\x32\xf8\x0e\xa7\ \xcb\xd1\x9f\x18\xff\x06\xd1\x78\x05\x30\x44\xe4\x11\x23\xcb\x3f\ \x28\x45\xf5\x46\xaf\xf0\xd9\xaa\x8f\x23\x30\x23\xbe\x55\x63\xe5\ \x03\xa7\xcb\xb1\x84\x89\xaa\x2c\x82\x6f\x85\x49\x86\x14\xf8\x45\ \xb0\x3c\x39\x77\x6d\x4d\x66\xbe\xe3\xb1\xfa\x90\x7e\x7f\x9c\x87\ \xca\xab\x93\x9c\x2e\xc7\x7b\xcc\xfc\x25\x11\x75\x66\xe0\x62\xaa\ \x0b\xfb\x1f\xd5\xd9\x16\xfd\x09\x4c\xe4\x6c\x29\xd9\xe9\x85\xab\ \x9c\xf9\x8e\x4f\xc0\xb8\xc2\xaf\x38\x06\x8c\x7c\xa7\x2b\x39\x17\ \x2c\xd6\x33\x94\xdd\x04\x1e\x02\x60\x14\x08\x17\x67\xc0\x3e\x12\ \x3d\x70\x1b\x2b\x14\xe9\x74\x39\x9e\x23\xc6\x46\x56\x68\x23\x43\ \x6c\x84\x80\x97\x14\x9a\x60\x01\x6e\x04\xa0\x7f\xc3\xdb\xad\x41\ \xeb\x74\x70\xac\x7d\xab\xd3\xe5\xd8\x4c\xa0\x4d\x0c\xde\x48\x0a\ \x1d\x63\xe6\xb1\x64\xc3\x6c\x80\xfa\xe8\xda\xf8\x84\xd7\x5a\x64\ \xb1\x6a\xb7\x9a\x04\xba\x00\x84\x96\x25\x53\x95\x48\x9a\xa0\x5d\ \x15\x9b\x99\x2b\x72\x48\x9f\x01\x61\x1d\xe3\x78\xb5\x31\xc9\x42\ \x6b\x89\x8c\x56\x60\xb5\x12\xbc\xde\xc0\xc0\x82\xaf\xf6\x7c\x15\ \xa4\x45\xcb\x19\x3d\x7c\x08\x0e\x15\x4a\xc5\xe6\xcf\xa2\x45\x2c\ \x16\xe4\x27\xdf\xaa\x08\x5e\x01\x82\xfe\xcd\x21\x16\xc4\xd7\x13\ \x70\x3d\x13\x81\x00\x30\x94\x8a\xec\xf4\xe2\x1d\xce\xe5\xc9\x57\ \x42\xe1\xb7\x70\x3a\xbd\x16\x01\xb8\x8a\x09\x57\x99\x24\xe4\xf7\ \x12\xe1\x91\x25\x69\x45\xff\xf6\x2f\x7c\x76\xee\xea\xca\x8c\x3c\ \xfb\xf7\x88\xe8\x63\x00\xfe\xae\xcf\xfe\x00\x1e\x27\xe6\xc6\xf8\ \x40\x06\x2d\x22\xf0\xe5\x38\xad\x80\x03\x1e\xd5\xbd\xe3\xa3\x9f\ \x3f\x78\xaa\x7a\x10\x18\x0f\xc1\x4f\x29\x30\x30\x01\xc0\x04\x22\ \x32\x36\x0a\x03\x8a\x50\xee\x64\x12\xaf\x32\xe0\xef\xeb\x56\x00\ \xbe\x09\x44\x37\x91\x49\x38\x27\xa9\xc4\xf5\x4b\xae\x3b\x33\xe1\ \x4a\x30\x5f\x49\x20\xd4\x5f\x60\x33\x2a\x14\x16\x37\x69\x75\xd2\ \xc7\x00\x98\xcc\xf5\xf3\xa0\x5c\xbf\x48\xdc\xa4\x99\x20\xc6\xed\ \xcf\xcf\x5d\x7b\xd2\x99\xef\xd8\x19\xa4\xdf\xef\x5a\x7a\x9e\x12\ \x49\x30\xda\xcd\x15\xe9\xf3\x71\x40\x46\x8f\x06\x2e\x1e\x68\x3a\ \x17\xdd\x66\x6a\x7d\x66\x6b\x46\x5b\x8f\xd9\x3c\xdb\xf6\x83\x66\ \x31\x0b\xad\xe3\xe2\x61\xe7\x7f\xfe\xc7\xb6\xb0\x34\xb5\xf0\x08\ \x8e\x6a\x53\xea\x33\xf2\x1b\xd6\xb6\x99\x91\x3d\xa7\xf0\x73\x45\ \x55\x27\x00\x58\xd7\x4c\xd5\xbd\x42\xa1\xcb\x97\xa4\x16\x99\x86\ \x80\xe6\xa4\x17\x6f\xa2\xba\xa4\xc0\xc1\x76\x7c\xf6\x31\xd1\x8f\ \x72\xd2\x0a\x1f\x65\xa2\x15\xc1\x06\x59\x34\x6d\xb5\x2f\x3b\xb5\ \xe8\xe7\x42\xa1\xa9\x00\xbe\x6d\xc1\x29\x30\x41\x09\x6d\xe3\x3f\ \x00\x8b\xd3\xd7\xed\xee\xbd\xa9\x78\x1a\x98\x7e\x8c\x96\x6d\x15\ \xe3\x11\x82\x5b\x9c\x15\x84\x80\x2f\x04\x70\xdd\xe2\xf4\xf5\xc5\ \x2d\x16\x8a\xb1\x8d\xc0\xb7\x2c\x49\xaf\x7b\x91\x28\x75\x27\xbe\ \x07\x82\x3e\x6b\x42\x29\x54\x4d\x9f\xcc\x5a\x22\x69\x35\xed\x66\ \xb1\x55\x98\x58\x6b\x00\x30\x6e\x70\x78\x93\x13\x78\xc2\xb4\x2e\ \x2b\x2a\x46\x31\x3c\xe6\x8e\x97\xb6\xe8\x79\xdb\x24\xc3\xfa\x0f\ \x0c\xb9\x8f\xf3\x95\xfa\x10\xf5\x5f\x3a\x73\x92\x16\x71\x77\xf5\ \x1a\x52\x70\x29\x18\xbd\x41\xd4\x1d\xcc\xc7\x00\xde\x4d\xa4\xec\ \x11\x82\x1b\xc3\xcd\xeb\x03\x16\x26\x2f\x7c\xc7\xde\x4b\xf3\x61\ \x2c\x33\xc6\x02\x34\x8a\x81\x83\x04\x7c\xc9\x0a\x6f\xee\x1b\x17\ \xf3\xad\x3e\xf3\xbc\x9e\x25\xa9\x45\x25\x77\x15\xa4\xf4\x8f\x28\ \xaf\x4a\x03\x90\xc4\x75\x2e\xb5\x5d\x60\xfa\xb4\x26\xba\x66\x4d\ \x7d\x02\x63\x58\x2d\xe2\x0d\x9f\x47\xa9\x33\xba\x14\x36\xed\x73\ \xe9\xec\xc2\xc2\xac\x82\x94\xd1\x07\x2b\x2b\x86\xb2\xa6\x8e\xac\ \x77\x3b\x8e\x00\xa1\x12\x82\x77\x90\xaa\x6c\x27\x9f\xb6\x43\x58\ \x79\xe7\x92\x59\x25\xcd\xbc\x89\xd1\xeb\x60\xe8\x27\x77\x0d\xae\ \x83\xfa\xb5\x65\x7f\x9b\x9f\x3f\xf5\x05\x9b\x70\x8f\x14\x8a\x32\ \x12\xc0\x28\x06\xfa\x13\x63\x3f\x31\x6d\x07\xc4\x0e\x82\xba\xa3\ \xd7\xe6\xc2\xbd\x8b\x16\xb1\xc8\x2a\x48\xb1\xec\xaf\xa8\x2e\xb2\ \x68\x4a\xa2\x50\x44\x22\x33\x25\x82\x78\x00\x80\x68\x02\x1f\x21\ \xa6\xc3\x10\x78\x6f\xc9\x9c\xa2\xc6\xb5\x78\x7d\x37\xaf\xff\xf2\ \xe8\xd8\x89\x03\x04\xf1\x00\xc1\x4a\x22\x13\x25\x12\x73\x22\x40\ \x9d\xc0\x7c\x0c\x84\xc3\x44\xfc\xd9\x92\xb4\xe2\x80\x20\x92\x7a\ \xf7\xef\x34\xe7\xf2\xe4\xa9\x50\xc4\xcd\x4c\x58\xe7\x8d\x8f\x79\ \x5b\xa6\xdd\x92\x84\x03\x8a\xbd\x76\x40\x8b\x36\x4d\x6c\x60\xee\ \xdd\x3d\x61\xb5\x85\xee\x3c\xd9\xb3\xbd\x16\x6b\x3e\x2c\x0b\x14\ \x86\x80\x83\xcb\xb6\x22\x36\x32\xe4\xbd\x16\x1b\x59\xb5\xfd\x5f\ \x78\xfb\x7f\x4f\x87\xdc\xcf\x9a\x0f\xcb\xb0\x67\x7b\xe0\x6f\x6e\ \xd8\x90\x1e\xd8\xf0\x8f\x60\x89\x16\x5a\xc6\xe7\xdb\xdf\xc7\x8c\ \x07\x32\x1a\x3f\x3f\xf5\xd0\x2f\x70\xcf\xd5\xfa\x74\x82\x67\x87\ \x70\xac\x63\xfb\x7a\x53\xf5\x98\x4f\x17\x6d\x31\x5d\x6f\x26\x91\ \x48\x24\x67\x83\x76\xb3\xd8\xcc\x02\x47\xe2\xe3\x23\xc2\xaa\xd4\ \x80\xf0\x59\x6c\x16\x8b\x51\x99\xbb\x3d\xa1\x85\xfb\x03\x40\xff\ \xae\x89\x48\xbe\x32\x01\x9a\x8f\xe1\xf3\x30\xfe\x55\xf0\x2a\x96\ \xae\x7c\x05\x51\x91\x11\x88\x8e\x8c\x46\x4c\x54\x24\xa6\x4f\xf8\ \x1e\x16\x5c\x7d\x6f\xc8\x63\x49\x24\x12\xc9\x85\x40\xbb\x29\x36\ \xb3\xc0\x91\x5e\x3d\x9a\x5b\xf3\xda\x7a\xdc\xbe\x30\x29\x36\xeb\ \x99\x51\x6c\xdd\x63\xfb\x62\xf0\xf0\xd3\xa9\x05\x37\x15\x96\xe1\ \xab\x6f\xab\x02\xea\x68\x9a\x68\xb3\x62\x7b\x77\xeb\x1b\x58\xb9\ \xf9\x4d\xd8\x2c\x11\xb0\x29\x51\xb0\x59\x6c\xb0\xaa\x91\x88\xb4\ \x44\x22\x26\x32\x16\xf1\xd1\x71\x88\x8f\x4e\x40\xa7\xa8\x78\xec\ \xab\x68\xc9\x34\x90\x44\x22\x91\x74\x6c\xda\x4d\xb1\x99\x05\x8e\ \xf4\xee\x16\xde\x50\x7f\x00\xf0\x68\xe1\x71\xd9\x9b\x59\x6c\x1e\ \x4f\x93\xd3\x34\x2d\x22\xda\x1a\x87\x18\x5b\x02\xaa\x3c\x4d\x6e\ \x12\xdd\x66\x6c\xd1\x80\x2f\x76\x3f\x7c\xf0\x4b\xbd\xce\xa8\xcb\ \x07\xe1\x05\x10\x72\xa8\x82\x44\x22\x91\x74\x2c\xda\x2d\x2a\xd2\ \xeb\x31\x4e\xed\xc5\x44\x85\x2f\xf1\x71\x03\xe1\x8a\x8a\xb4\x58\ \x8d\x97\x2a\x1c\x8a\x0d\x00\xba\xc7\xf4\x0b\x4b\x3f\x12\x89\x44\ \x22\x69\xcf\x70\x7f\xaf\x51\xb1\xc5\x46\x86\x5f\xb1\x85\x6d\x8e\ \xcd\xc4\x15\xe9\xf5\x86\xb6\xf0\xbb\x81\xee\xd1\xfa\x35\xac\x12\ \x89\x44\x22\x69\x2b\xed\xba\x8e\x4d\x4f\x74\x64\x4c\xd8\xc7\x71\ \xfb\xce\x9c\x2b\xd2\xeb\x0b\x8f\x62\x8b\xb2\x86\x37\x60\x46\x22\ \x91\x48\x2e\x64\xda\xd1\x62\x33\x2a\x85\xb8\xe8\xd8\xb0\x8f\xe3\ \xd6\xc2\xe5\x8a\x34\x2a\x36\x16\x40\xb5\x27\xf4\xfe\x23\x2c\x21\ \xed\x4b\x29\x91\x48\x24\x12\x3f\xda\x45\xb1\x09\xc1\xa6\xdb\xd5\ \xc4\x47\x85\xdf\x72\x09\x9b\xc5\x66\xa2\xd8\x00\xa0\xb4\x32\xf4\ \xfd\xd4\x6c\x6a\x28\x1b\x1f\x4b\x24\x12\x89\xc4\x9f\x76\x89\x8a\ \x34\x9b\x5f\x03\x80\xf8\xe8\xf0\x2b\xb6\x33\xb9\x8e\x0d\x00\xca\ \xaa\x4a\xd1\xb7\x8b\xc9\xee\x28\xad\x20\x42\x2a\xb6\x26\xc9\x2a\ \x48\xb1\x1c\x3a\x55\x75\x35\x33\x4d\x25\x50\x5f\x06\xf7\xaa\xdb\ \x69\x9b\x77\x30\xd1\x4e\x45\x13\x5f\x2c\x9e\xb3\x7e\x6b\x7b\xcb\ \xd9\x16\x9c\x39\x49\x56\xf4\x39\xbd\x21\xa9\x4f\x44\x1e\x78\x21\ \xf5\x73\x19\xab\x2a\x91\x84\x40\xbb\x28\x36\x7d\x32\xe1\x06\xe2\ \xa3\x3b\x85\x7d\x2c\x77\xd8\xa2\x22\xcd\x15\x5b\x79\x75\x99\x69\ \x79\x6b\x90\x16\x9b\x39\x59\x59\xa4\x1c\x1c\x67\x7f\x08\x8c\x9f\ \x01\xd4\x0d\x00\x18\xfe\x09\x76\x09\x60\x40\x28\xea\x1b\x00\x6e\ \x6e\x37\x41\x43\x80\x7a\x29\xb3\x59\xa3\xb7\x1b\x3e\xab\xe4\xfb\ \x3e\x80\x33\xb6\xcb\xb6\x44\x72\x21\xd0\xa1\x2c\xb6\x84\x98\x84\ \xb0\x8f\xe5\x0e\xd3\x3a\x36\x35\x88\xc5\x56\x5e\x1d\xfa\xfa\x33\ \xa9\xd8\x8c\xdc\xbe\x6a\x4c\x4c\xd4\x58\xfb\x3b\x60\x5c\xde\xde\ \xb2\x9c\x49\x58\x50\x6a\xd8\xd3\xfb\x4b\x24\x17\x38\xed\x32\xc7\ \x16\x54\xb1\x45\x9f\x01\xc5\x16\xa6\xcc\x23\xd6\x20\x16\x5b\x59\ \x55\x18\x2c\x36\x19\x3c\x12\x00\x81\x28\xaa\x26\xe2\x15\xc0\x54\ \xa9\x1d\x00\xf0\x3c\x31\x1e\x24\xe6\xbf\x13\xf0\x3e\x48\x1c\x3a\ \xcb\x22\x86\x85\xac\x2c\x52\xa0\x60\x66\x7b\xcb\x21\x91\x9c\x6f\ \x74\x28\x8b\xad\x73\x6c\x78\x53\x6a\xf9\x84\x17\x82\x8d\x19\x4e\ \xda\x42\xb0\x39\xb6\x8a\x9a\xd0\xa7\x43\xa4\xc5\x16\x88\x33\x6f\ \xe2\x95\x4c\x74\x83\xf1\x08\x3f\x9b\x9d\x56\x7c\xff\xd9\x97\xe8\ \xcc\x70\x60\xec\xc4\x64\x62\x84\x3f\xdd\x8e\x44\x72\x81\xd3\x3e\ \x8a\xcd\x64\x0d\x1b\x00\x74\x8e\xe9\x1a\xd6\x71\xc2\x65\xad\x01\ \x80\x1a\xc4\x62\xab\xa8\x39\x15\x72\xdf\x32\x78\x24\x10\x26\xba\ \xdb\x58\xc8\x1b\x22\x22\x4a\x1f\x6a\xaa\x5d\x86\x2b\xf9\x61\x62\ \xae\x5b\x33\x62\xd1\xfe\x93\x3d\xab\xe4\x1b\x00\x98\x97\x3b\x4f\ \xed\x6c\xdb\x3f\x0a\xd0\x1c\x20\x9e\xc8\x4c\xcb\x72\xd2\x8a\xde\ \xf7\x6f\x7b\xdf\x32\xfb\x60\x9f\x45\xb1\x13\xb3\x1d\x44\x17\x41\ \xf0\x51\x52\x78\xbb\xe2\xc3\xeb\xcf\x5d\x5f\xbc\xd3\x6c\xbc\xac\ \x82\x14\xcb\x91\x93\x55\x03\x7c\x2a\x06\x2b\xac\x0c\x16\xc4\x83\ \x09\x18\x0c\x20\x1a\xc4\x07\x20\xb0\x5f\x40\x79\x67\x69\x7a\xe1\ \x17\xfe\xed\x32\xf3\xec\xb7\x31\x68\x28\x80\xc9\x7a\x37\x24\xb1\ \xb8\xd1\x99\xe7\xb8\xa8\xf1\xb3\x82\x95\x4b\x52\x8b\x4a\x1a\x3f\ \x83\xe8\xde\xfc\xa4\xe1\x82\x15\x07\x40\x0e\x26\x0c\x62\xf0\x41\ \x12\xf8\x0e\x42\xfb\x67\xf6\xf5\x25\x2d\xb2\x5e\x9d\xcb\x93\xa7\ \x82\xf8\xdc\x62\x06\xd1\x00\x00\x20\x00\x49\x44\x41\x54\x6a\x00\ \x60\xf0\xee\x9c\xf4\xe2\x97\x1b\x8f\xe5\x25\x0d\x81\xa2\x4e\x65\ \xe0\x32\x30\x12\x40\xb4\x01\xcc\x1b\xbc\x09\xd1\x9f\xf8\x6f\x2b\ \x93\xb1\xdc\x31\x5c\x21\x5c\xc6\xc4\xe3\x00\x1a\x08\xc6\x2e\x28\ \xf8\x16\x3e\xed\xed\xe6\xe4\x98\x97\x3b\x4f\xed\x62\xd9\x33\x9a\ \x55\x8c\x05\x63\x0c\x80\xe1\x0c\xec\x6c\xd8\x5a\x28\xd2\x52\xfa\ \xe5\xd3\x33\xb6\xb9\x0d\x72\xaf\x4c\xea\x06\x9f\xda\xf8\x72\xe3\ \xe9\x14\xfd\x44\x83\x4c\x3f\xc9\x9d\x1c\x55\x65\x11\x13\x40\xc2\ \x01\xd0\x25\xb0\x68\xbf\xc9\x9e\x55\xb2\xb7\xa1\x6e\x56\x41\x8a\ \xe5\x40\x59\xd5\x68\x22\x72\x80\x61\x07\xa1\x27\x80\xfd\x0c\xfe\ \x92\x3c\xe2\x5f\xd9\x73\x4b\xce\x4c\x5e\x3b\xc9\x59\xa7\x5d\x14\ \x9b\x16\x44\xb1\xc5\x46\x86\x77\x1d\x5b\xb8\xf2\x44\x02\x4d\x58\ \x6c\xd5\x95\x21\xf7\x2d\x2d\xb6\xd3\x38\x73\x93\x12\x60\x53\xe7\ \xe8\xcb\x09\x78\xca\xec\x41\x17\x58\x87\x1f\xae\x7f\x58\x01\x9a\ \x6a\x05\xf0\xab\x0c\x97\xfd\xea\xce\x36\xfa\x17\x80\x1e\x00\x00\ \x26\x10\xd3\xd7\x00\xde\x07\x00\xe7\xb2\xa4\xde\x50\xd5\xb7\xa0\ \xd2\x64\xaa\xdf\x42\x1a\xf5\xbb\x64\x33\x13\x34\x15\x8f\x3a\xf3\ \x1c\xaf\x7a\x3a\x45\x67\xfa\x3f\xd4\x17\xe4\x25\x4f\x50\x88\x0b\ \xa1\x92\x85\x00\x30\x71\xa0\x8e\xe2\xba\xdd\xa7\x15\xf0\xa3\x4e\ \x97\xe3\x53\xa8\xca\x8f\xb3\x67\xad\xdb\x50\x27\x28\xdd\x06\xe0\ \x1a\x32\x9d\x5c\xa3\x1b\x40\xf0\xb7\x56\x0f\x03\x28\x01\xea\x14\ \x4e\x06\x4d\x5c\xae\x81\x2e\xa9\x1f\x04\x68\xd8\xd0\x9b\x00\xa8\ \xea\xe3\x99\x2e\xfb\xdf\x4e\x7a\x06\x3e\x52\xbf\xdf\x59\x70\x14\ \x31\x15\xa0\x45\x75\x4d\xa9\x22\xab\x20\xe5\x35\x7c\x52\x20\x0e\ \x8c\xb3\xe7\x10\xa9\xf3\x1b\xfb\xad\xbb\x1e\x37\x02\x80\xad\xbc\ \x7a\xed\x5d\x79\xe3\xae\x7b\x29\x7d\x63\x99\x33\xcf\x7e\x2f\x29\ \xf4\x77\x06\xac\x8d\x35\x1b\x76\xdb\x56\xd5\x47\x33\xf2\x92\x7f\ \x98\x93\x5e\xf8\x4f\xb3\xa1\x33\x96\x3b\x86\x77\xb1\xe1\x75\x06\ \x26\xf8\xef\xa2\xdd\x30\x1e\x09\x82\xdb\xdb\x65\x67\xc6\x0a\xfb\ \xcd\x39\xb3\x8b\xf5\xfb\x42\x75\x03\x61\x51\xc3\x87\x88\x53\x35\ \x6b\x00\x7c\xe0\xcc\xb3\x3f\x04\x1b\xfd\x01\x7e\xf2\x90\x57\x7d\ \x0a\xc0\x5e\x00\xc8\x5c\xee\x98\xc4\x0a\xbf\x45\x44\x7d\x02\x06\ \xab\x3b\x7f\xc0\xa6\xfe\x29\x33\xcf\xf1\x8b\x25\xe9\x45\xcf\x34\ \x79\xdd\x24\xe7\x04\xed\x32\xc7\x16\x2c\x10\xa3\xb2\x36\x74\x25\ \x11\x30\x8e\x12\x5e\xbd\x4d\x26\x57\xcb\xa7\x85\x9e\x2f\xd2\xa2\ \xda\x42\xee\xe3\x7c\x81\x23\x94\x79\x00\x0c\x93\x8e\x9a\x50\x0a\ \x5a\xd9\xd5\xf4\xcc\x7c\x47\x12\x81\xde\x43\x83\x52\xd3\x91\xe1\ \xb2\x4f\x86\xaa\x7e\x01\x60\x72\x13\xfd\x10\x08\x77\xd8\xca\xab\ \x57\x12\xe8\xf4\x17\x57\x85\x15\x2d\x7f\x31\xbc\x1c\x9a\x58\xb9\ \xf0\x1d\x7b\xaf\x96\x0a\x6f\x90\x35\x6f\xe2\x0c\x90\x5a\x82\x46\ \xa5\x66\x8a\x85\x41\x0f\x77\x8a\xd8\x63\xaa\x50\x9a\x20\xee\x50\ \x59\xd5\x15\x07\xc7\x4e\xfc\x17\x31\xe6\x37\x51\x6f\xb2\x8d\xac\ \x9f\x3a\xf3\x1c\x2f\x83\xe8\x39\x00\xd6\x20\xf5\x3a\x13\xf1\xab\ \x99\xcb\x1d\x93\xf4\x07\x9c\x2e\xc7\x3d\xa4\x60\x23\x03\x13\x9a\ \x94\x88\x31\x98\x04\xad\xc9\xcc\x77\xfc\xa4\xe9\x7a\x62\xba\x33\ \x2f\xf9\x47\x20\xfa\x8b\x5e\x1e\x41\x4c\xf5\x63\x3a\x59\x41\x01\ \x40\x4d\xe5\xae\x8b\x61\xc2\xd3\x19\xae\xe4\xdf\x34\x39\x9e\xe4\ \x9c\xa0\x7d\x14\x9b\x7a\xe6\xdc\x7a\xfe\x84\x33\xa3\x87\x10\x0c\ \x36\x59\x54\x1e\x17\x15\xba\x95\xe9\x13\xa1\x6f\x7f\x73\xde\xc0\ \xa6\x0f\xee\x5d\x4b\xaf\x2f\xdc\xdf\xca\x9e\xc6\x33\xe3\x35\x00\ \xaa\xd9\xc1\x05\xcb\x92\xfb\x11\xe8\x23\x00\xbd\xfd\x8a\x0f\x31\ \xe8\xa7\x04\xbe\x19\xc0\x5a\x5d\x93\xab\x32\x5c\x76\xfd\x43\xdf\ \x0d\x60\x23\xc0\x2f\x31\xd1\x8f\xc0\x74\x0d\x98\x1f\x06\xb0\xaa\ \xfe\x98\x3f\xbd\x35\x2f\xbd\x0c\x00\x60\x7e\x0d\x8c\x2c\x93\x3a\ \x00\xf8\x6d\x30\xb2\x1a\xff\x80\x92\x05\xf9\xc9\x97\x12\x29\x2b\ \x01\x9c\x5e\x0f\x43\xd8\x09\xd0\xfd\x04\xdc\x01\x20\x60\x0d\x1f\ \x31\xbe\x9f\xb1\xdc\x31\xcb\xec\xbc\x83\xc1\x44\x6f\x01\x74\x33\ \x00\x51\x17\x94\x43\xd7\x11\xf0\x08\xea\xf6\x80\xf0\xef\xfd\x12\ \x10\xee\xa8\x3b\x0d\xfe\x80\x89\xbe\x4f\xcc\x3f\x00\xb0\xc3\xd0\ \xa7\x82\xbf\xf8\x7f\xbe\x37\x6f\xa2\x1d\x40\x0e\x00\xff\xa4\xb0\ \xa5\xcc\x78\x92\x14\x4a\x07\xf0\x3c\x02\xaf\x89\x95\x19\x7f\xcd\ \x70\xd9\xaf\x0e\x2a\x37\x68\x2e\x88\x1f\x0f\x76\x3c\x23\x2f\xf9\ \x06\x00\x4b\x00\x34\xbe\x3d\x12\xf0\x05\x01\x77\x80\xf0\x00\xea\ \x82\x91\x4e\x9f\x1d\xf8\xff\x16\x2c\x9f\x34\x32\x58\x7f\x92\x73\ \x83\x76\x71\x45\xaa\x41\x46\xad\xa8\x0d\xef\xba\x54\x9b\x1a\x09\ \x02\x35\xae\x7d\x0a\x85\x60\x01\x2f\x31\xe1\x50\x6c\x9a\x27\xe4\ \x3e\xce\x17\x08\x30\x5a\x35\x14\xf8\xf0\x69\x21\x0a\x80\x11\x00\ \x00\xc6\x36\x10\x16\x93\x42\x3b\xc1\xc2\xed\x23\x75\xbb\x85\xc4\ \x2f\x18\x08\xf0\x01\x13\xf3\x0f\xb2\xd3\x8b\x3e\x02\x80\x7b\x97\ \x4f\x59\x2d\x14\xdf\x76\x00\x8d\x59\x03\x08\xb8\x1d\x75\x0f\x5f\ \x28\x87\x7c\x5f\xf4\x19\x1e\x17\xbb\x68\xda\x6a\xbd\xc9\xbe\x0a\ \xc0\x5f\x33\x5d\xf6\x9b\x18\x14\xb0\x1e\x8d\x81\x94\x79\xb9\xa3\ \x6d\x6f\xce\xdd\xfa\x1a\x00\x38\x5d\x8e\x1f\x01\x88\x08\xa8\x43\ \xca\x5b\x39\x69\x85\x01\xed\x9c\x79\xc9\x6f\x83\x02\x5e\x42\x7d\ \xa4\xe1\xfa\x25\x73\x0a\x37\x03\x80\x73\x65\x52\x31\x34\xf5\x4b\ \xf8\x59\x2c\xa4\xe0\x76\x00\x2b\x5b\x76\xa9\x00\xd4\x2b\x4d\x66\ \xfa\x7d\x76\x7a\xd1\xaf\xeb\xcb\xde\x71\xba\x92\xfb\x00\xfc\xa0\ \xbe\x32\x01\x5f\x94\x7a\xab\x67\xbd\x39\x77\xab\x07\x00\x32\xf3\ \xed\xc7\x99\xe9\x5d\x5d\xb5\x49\x3f\xc9\x9d\x1c\xf5\xe4\xdc\xb5\ \x35\xf5\xe7\xf6\x17\x40\xe7\x7f\x25\x38\x73\xd2\x8a\x72\xeb\x3f\ \xb9\x32\xf2\x93\x77\x12\xf3\xef\x03\xaa\x30\xfd\x1e\xc0\x87\x41\ \xe4\x4e\xf4\xfb\x7f\x35\x80\xd7\x89\x78\xbf\xd0\xc8\x52\x65\xab\ \xdd\x13\xeb\x8b\xd2\x5b\xaf\xc7\x49\x58\x66\x2e\x9e\xb3\xe6\x28\ \x00\x38\xf3\x1d\xbb\xc0\x01\xd7\xc9\xaa\xa8\xfc\x7d\x00\xd2\x72\ \x3b\x87\xe9\x58\xae\xc8\x30\x44\x18\xfa\x43\xa0\xb0\xcd\x5f\x05\ \xf3\x38\x86\x63\x5e\xd0\x2b\x9a\x9c\x3a\xba\xa0\x30\x55\x6c\x8c\ \x50\x26\xf5\xf7\xc7\x78\xd5\x31\xd9\x69\x45\x4f\x2d\x99\x5d\xe8\ \x5a\x92\x5a\xfc\x5e\x04\xfb\xdc\x0c\xbe\x47\x57\xef\xd0\x92\xf4\ \xe2\x8f\x1a\x3e\xd4\x3f\xf8\x4a\xfc\x2b\x30\x30\xe9\xc1\x77\x93\ \xe3\x01\x20\x3b\xa3\xc4\x6b\xa2\xd4\x1a\xe9\xbd\x69\x7d\x2e\x0c\ \xd6\x0e\x6c\x5d\x23\xa2\x2e\x6e\x8d\xf0\x19\x79\xf6\xb1\x20\xd6\ \xcf\x39\x6e\x59\x32\xa7\x68\x73\xc3\x87\xfa\x20\x99\xed\xba\x3a\ \x57\xcf\xcb\x9d\x67\x6a\xad\x36\x05\x33\xbd\xee\xff\x99\x98\xbf\ \x0c\x52\x35\xb7\x41\xa9\x01\x00\x29\x96\x2d\x26\x75\xa8\x32\xd2\ \x37\x18\x00\x32\x5d\xf6\xd9\x0c\x5c\xa6\x3b\xfc\x4d\x76\x6a\xa3\ \x52\xab\x2b\x39\xec\xfb\x0b\x80\xd2\xc0\x6a\x98\xe8\xcc\x73\xa4\ \x37\x2d\x38\x2d\xcb\x4e\x2b\xba\x32\x3b\xad\xe8\xf9\x25\xa9\xc5\ \xef\xe5\xcc\x29\x5a\x19\xe7\x8b\x9c\x0e\x60\x74\x60\x35\x7c\xd0\ \xa0\xd4\x00\xa0\xcf\xc6\xe2\x77\x01\x04\xdc\x47\x66\x5c\xd3\xe4\ \x58\x92\x0e\x4f\xbb\x28\x36\x4b\x10\x57\x64\x65\x98\x2d\x36\x00\ \xb0\x59\xc2\xa3\xd8\x82\x45\x72\x86\xc3\x15\xe9\x95\x16\x5b\x23\ \xcc\x46\xc5\xc6\x84\xb6\xfb\xa8\x89\x5e\x6a\xb0\x18\x1a\xf0\x42\ \xb9\x09\x7e\xae\xa9\x7a\xbe\x31\x8c\x0b\xec\xd3\x15\x59\x6a\x3d\ \x7c\x55\x4b\x86\x5d\xb4\x88\x05\x00\x83\xfb\x54\x03\x8d\x6a\x49\ \xfb\x06\x48\x51\x6e\x83\xce\xca\x61\x32\xca\x0a\xa3\xac\x9d\xbb\ \x58\xf6\xd8\x5b\x33\x16\x00\x4f\xbf\xce\x91\xdb\x02\x4a\x14\xde\ \x66\x56\x51\xb0\x08\x50\x78\x8b\x67\xad\x3d\x00\xbf\xbd\x6c\x4f\ \x37\x57\xfa\x00\x00\x33\x4d\x37\xf6\x62\xec\x3b\x3b\xa3\xc4\x4b\ \x80\x71\x2b\x77\x05\x26\xed\xfd\xe4\x51\xf9\x59\x43\xef\xa0\x1f\ \x18\x87\xa4\x80\x6b\x57\x7f\x9f\x0e\xfa\x97\x11\x38\xe9\xfe\xe5\ \x8e\xf0\x86\x68\x4b\xce\x2a\xed\xe4\x8a\x0c\x66\xb1\x85\x37\x78\ \x04\x00\x22\xd4\x28\x54\xe8\x5e\x00\xdb\x42\xb0\x48\xce\xb8\x30\ \x24\x6e\xf6\x6a\xd2\x62\x6b\x84\x0c\x0a\x07\xc4\xdc\xe6\xdc\x1c\ \xc4\xd8\x65\x1c\x82\x87\x9a\x8c\x6b\x50\x16\x64\xa2\x98\xa8\x2e\ \xe8\x61\x79\xb0\xf1\x16\xe6\xa6\xc4\xc2\x56\xd5\xd9\x07\x4b\x27\ \x98\xbd\x38\x8a\xa0\x01\x17\xa6\xb0\xe0\xa1\xa4\x3f\x7b\xdd\xc3\ \xb9\xae\x0c\xfb\xf5\x41\x96\xac\x62\x02\x80\x75\xad\x18\xed\x5b\ \xbd\x15\xaa\x91\xe2\x51\xd8\xf8\xdd\x67\xa1\x9a\x59\x68\x26\x93\ \xc5\x42\xad\x13\x8f\x47\x18\xa2\x40\x19\x7b\x82\x08\xb2\x03\x40\ \xb2\xae\xee\xa0\xa0\x62\xd7\x61\xb8\xcf\x00\x8c\xf7\x99\x85\xd9\ \x4b\xc1\x7e\x00\x03\xfc\x3e\x2b\x1e\x85\xc7\x21\xb8\xfb\x53\xd2\ \xc1\xe9\x58\x8a\x2d\xcc\x51\x91\x40\xf8\x02\x48\x82\x59\x6c\xe1\ \xc8\x6f\xe9\x15\xd2\x62\xf3\xe3\x24\x02\xe7\x4d\xc0\xa0\xf8\xb6\ \x76\xc6\xcc\x26\x6f\x35\x34\x04\xfa\x79\x57\xc6\x0c\x67\xbe\xa3\ \x40\x57\xd1\xb8\xb5\x39\xa3\x31\x3d\x0e\x81\x68\xc1\xf2\x89\x97\ \x83\x94\xab\x15\xe2\xab\x19\x98\x00\x5b\x43\xb8\xb9\x79\xb4\x3d\ \x29\xd4\xaa\x09\x5f\xa2\xd3\x09\x92\x4f\x8f\xcb\xb7\x3a\xf3\x1d\ \x57\xea\x0a\x07\x37\x25\x6b\x0b\x07\x3b\xd9\xd2\xaa\xbe\x2e\x51\ \xc7\x5b\xd7\x35\x0d\xd7\x97\x31\x91\xa9\x62\x63\xc6\x76\x93\x95\ \x10\xc6\xf3\xf3\x97\x47\xf3\x04\xdc\xe7\xac\x2c\x52\x30\xd6\x3e\ \xd0\x44\x8e\x5f\x38\xf3\x1d\xf7\xe9\x8a\x47\x18\x85\x50\xc2\x9f\ \x06\x49\x72\xd6\xe8\x50\x8a\xad\xda\x1d\x9e\x84\xc5\xfe\x44\xa8\ \x67\x58\xb1\x45\x85\xfe\xfd\x97\x16\x5b\x00\x86\x87\xab\xe2\x17\ \xc0\x11\x1e\xd8\xec\xed\x7f\x20\x18\x03\x9b\x6d\x4a\x75\xca\xc2\ \xb9\x32\x29\x3a\x43\x9b\xf8\x2a\x14\xba\x01\xad\x08\x4f\x62\xd1\ \x6a\xeb\xd3\x4c\xd6\xe1\x60\x18\x14\x85\x09\x1d\xe2\xe1\x4c\x20\ \xca\x80\xdd\xb0\x05\x86\x02\x3e\x6a\x56\x1f\x04\xb3\xc5\xdd\xad\ \xda\x42\x63\xff\x25\x8e\x3e\x0a\x38\xc2\xe4\xd0\xd8\x16\xdd\x2c\ \xa5\x63\x5c\x3b\x49\xdb\xe8\x50\x73\x6c\x55\xee\xaa\xb0\x8f\x15\ \xae\x3c\x8c\xc1\x5c\x91\xe1\xc8\x6f\x29\x2d\xb6\x00\x0c\x8a\x8d\ \x81\x6e\x61\x1e\xa3\xcd\x5f\x34\x66\xc4\x3f\xf8\x6e\x72\x3c\x69\ \xea\xa7\x80\x21\xed\x57\x2d\x80\x75\x0c\x3c\xc3\xe0\x85\x00\x8e\ \x84\x24\x65\x1d\xa1\xfc\x28\xda\x6c\xe9\x86\x13\x06\x33\xcc\xee\ \x2b\x73\xb0\x74\x62\x66\xf7\xbb\x55\x16\xa2\x35\xc2\x1a\xd2\xc3\ \x84\x44\xc7\xb8\x76\x92\xb6\xd1\x2e\x16\x1b\x29\x75\x7f\xfa\x75\ \x61\xd5\xb5\xe1\x4b\x81\xd5\xc0\x99\xb6\xd8\x12\xa4\x2b\x32\xbc\ \x10\x1f\x80\xd1\xa8\x19\xb1\x30\x37\x25\xf6\xd9\xb9\xab\xc3\xe4\ \xab\xe6\xdd\x00\x5d\x1a\x38\x2e\xfd\x35\x3b\xb5\xf0\xe1\x96\xb4\ \xce\xc8\x4b\xbe\x81\xc8\xb0\xc0\xb8\x54\x08\x65\xca\xd2\x39\xeb\ \xbe\x6e\x28\x70\xba\x1c\x0f\x02\xf5\x99\x50\xda\x2a\x29\x68\x37\ \x81\x7b\xe8\xca\x7e\x9a\x93\x56\xf8\x97\x60\x6d\x3a\x28\xfb\xa0\ \x53\x58\x44\x26\x11\xb0\x00\x08\xd4\xc7\x60\x03\x13\x4c\xd3\x9a\ \x05\xe3\xb9\xeb\x3e\x2b\x75\xba\x1c\xe5\xd0\x59\xad\x2c\x30\x3b\ \x67\x4e\x51\x6b\x96\x41\x48\xce\x41\xda\xc5\x62\x03\xcc\x53\x54\ \x55\x9f\x01\x8b\x2d\x5c\x73\x6c\x9a\xc9\x3a\x36\x22\x20\x36\x32\ \x74\x2f\x59\xb8\xf6\x8c\x3b\x1f\x20\x61\xba\xf6\x4a\xf1\x45\xd4\ \x4c\x0c\xdf\x28\xca\x6e\x7d\x09\x83\x9b\xca\x4a\x11\x08\xf1\x15\ \x86\x22\xf0\x33\xfe\x4a\x2d\x5c\x28\xc4\xbb\x4d\xc6\x6a\xb9\xac\ \x1d\x06\xd6\x47\x6d\x02\xa0\xde\xc6\xb2\x20\xf7\x42\x18\x17\x80\ \xb7\x00\xc3\x1c\x9e\x42\x4d\x66\x1f\x91\x9c\x27\xb4\x9b\x62\x8b\ \x8a\x36\x2e\xb1\x39\x78\x22\x1c\x9e\x9b\x40\xce\x64\xf0\x88\xc5\ \x12\x9e\xcb\x57\x56\x73\x2c\x2c\xfd\x9c\x0f\x9c\xf4\x0e\x2c\x00\ \xc1\x70\x41\x88\x45\x18\xb7\x77\x11\x86\x87\x24\x01\x8e\xac\x2c\ \xb3\xa4\x69\x46\x88\x8c\xdb\xe9\x30\xd3\x46\xff\xcf\x77\x15\xa4\ \x44\x42\x17\x04\xd3\x26\x04\x9b\x3d\xd0\x9b\x4a\x01\xd6\x21\x61\ \x56\x8c\xeb\xe1\x18\xa6\x8a\x0d\x30\x2b\xe7\xaf\x5a\x3b\x26\x99\ \x65\x43\x01\xb7\xea\xda\x2d\x74\xd9\xfb\x67\xb8\x92\x7f\xe3\x74\ \x39\xb6\x3a\x5d\x8e\x57\x9d\xf9\xc9\x29\xad\x95\x43\x72\xf6\x69\ \x37\xc5\x16\x13\x67\x54\x6c\x07\x8e\x9d\x01\xc5\x76\x06\x5d\x91\ \x16\x6b\x78\x2e\x5f\x69\xad\xf9\x1c\xfa\x85\xc8\x9b\x73\xdf\xd4\ \x88\x29\x4f\x5f\xce\xa0\x1f\x39\x5d\x93\x1c\x61\x19\x44\x15\xaf\ \x03\x08\x5c\x34\xc9\x18\x7c\x60\x8c\xc3\x90\x7c\xd9\x14\x93\xbd\ \x90\x48\x09\x8c\xda\xb3\x9d\xaa\x99\x04\x5d\x66\x13\x13\x0c\x5f\ \x2a\x62\x0e\x70\x9d\xf9\x14\xcb\x8b\xd0\x2d\x20\x06\xe0\xb8\x37\ \x7f\xe2\x94\x16\xc9\xda\x41\xd0\x14\xcb\x62\x00\x01\x3e\x77\x26\ \x4c\x5e\xe8\x0a\x0c\x2a\x59\xb0\x2c\xb9\x1f\x80\x40\x37\x31\x70\ \x4a\xb5\x46\xbc\xd8\xda\x31\x05\x90\x6d\x28\x24\xdc\x3c\x3f\x7f\ \x6a\x8b\xac\xb6\x07\xdf\x4d\x8e\xf7\x81\xd6\x11\x38\x0b\xc0\xc5\ \x00\x7e\x00\xe6\x8f\x33\x5d\xf6\x9b\x5a\x2b\x8b\xe4\xec\xd2\xa1\ \x14\xdb\xb1\x93\xa1\xaf\x37\xd3\x63\x0b\x93\x62\x33\x0b\x1e\xb1\ \x86\xc9\x62\x2b\xad\x91\x8a\xcd\x1f\x4d\xc1\x8b\x00\xf4\x99\x39\ \x2d\x20\xf1\x7a\x66\xbe\xfd\xfa\x85\xb9\x29\x8d\xab\xe2\xe7\xe7\ \x4f\x8d\xab\x7f\x18\xb6\x98\xec\x59\x25\xc7\xc1\x78\x52\x5f\x4e\ \xc4\x2f\x67\xb8\x8c\xca\xed\xf6\x55\x63\x62\x32\xf3\x1d\x49\x99\ \xae\xe4\x1b\xeb\x2b\x1a\xd6\x42\x09\xa6\xeb\x9d\xb9\x49\x09\x40\ \xdd\xf6\x28\x60\x38\x9b\x97\x84\x0e\xeb\x4b\x98\x10\xe0\x72\x7d\ \x3e\x75\xed\x76\x00\x2f\x18\xc7\x53\x5c\x66\xd6\xc3\x83\xef\x26\ \xc7\x2f\x58\x91\x9c\x9c\xe9\xb2\xcf\x6e\x7e\xfc\xb3\xc7\x0b\xa9\ \x9f\x1f\x44\x5d\xee\x4e\x7f\x22\x7d\xa0\xbf\xce\xcf\x9f\x1a\x07\ \xd4\x45\x9a\x92\xca\x4f\x41\x97\x04\x9b\xc0\x7f\x7b\xee\xba\xcf\ \x5a\xfd\x70\xc8\x49\x2b\x7a\x1f\x84\x4f\x74\xc5\x11\x16\xf6\x7e\ \x92\xe9\x4a\x36\x2c\x94\x77\xae\x4c\xea\x96\x99\x6f\xbf\xfc\xde\ \xbc\x49\xd3\x00\xc0\xed\xe5\x6b\x00\xf4\x35\x74\xcc\x94\xd1\x5a\ \x59\x24\x67\x97\x76\x09\x1e\x01\x80\x58\x13\xc5\x56\x5a\x1a\xfe\ \x39\xb6\xc8\x33\xe8\x8a\xb4\x5a\x5b\x9d\xb1\xc8\x94\x32\xa9\xd8\ \x02\x58\x3a\xbb\xb0\xd0\x99\xef\x78\x14\x8c\xdf\x06\x1c\x60\x0c\ \x66\xd0\xdb\x3e\x5b\xb5\x3b\xd3\xe5\xd8\xca\x40\x3f\x0b\xd0\x13\ \x2a\xbd\x01\xe0\xe6\xd6\x8c\xe1\x53\xac\x7f\xb5\xb0\xd7\x89\xc0\ \x14\x5e\xb1\x04\x2c\x73\xba\x1c\x47\x08\xd8\x24\x00\x8d\x80\x51\ \x51\x88\x4c\xac\xdf\xc8\xe6\x30\x80\xb7\x08\xb4\x9c\xc1\xb7\xf8\ \xf7\x47\xe0\x29\xb0\xa9\xfb\x9d\x2e\xfb\xc7\xf5\x81\x29\x03\x01\ \x30\x83\xd6\x13\x38\x48\x06\x10\xf1\x3f\x80\x2e\xf2\x2f\x21\xc6\ \x7c\xa7\x2b\x79\x0a\x20\xbe\x03\x68\x04\x80\xef\x14\x55\xbd\x57\ \x68\xda\x2d\x08\x5c\xf6\xd0\x15\xcc\x1f\x3b\x5d\x8e\xfd\x44\xd8\ \xc4\x0c\x1b\x80\x51\x00\xfa\x29\x00\x18\xb4\x09\xc0\x8a\xd6\x5c\ \x93\x33\x0d\x59\xe8\x09\xd6\x78\x16\x02\x77\x5b\x98\x6b\x61\xef\ \x4c\xa7\xcb\xf1\x19\xa0\x4e\x25\x40\x97\xca\x87\x0f\xba\xd9\xfb\ \x54\x9b\xc7\xd4\xf0\x0b\x56\xf0\x29\x02\x9f\x75\x43\x19\xbc\xd5\ \xe9\x72\xec\x24\xe0\x4b\x01\xee\x4c\x44\x17\x83\xd5\xee\x0c\x80\ \x49\xfb\x0f\x80\x02\x12\xd4\x99\x4d\x96\x1d\x32\x21\xbc\x3b\x22\ \x4b\xc2\x4e\x87\xb2\xd8\xaa\xab\x7d\xa8\x72\x87\x77\x91\xf6\x99\ \x0c\xf7\xb7\x59\x43\x7f\x2f\xa8\xf6\x56\xc0\xad\x85\x3f\x1a\xf4\ \x5c\x27\x27\xb5\xf8\x51\x80\x7f\x01\xa3\x1b\x0e\x00\x22\xea\xb7\ \x3d\x69\x73\xc4\xe1\x0b\xa9\x9f\x57\x58\xac\x3c\x0e\xe6\x0f\xff\ \x9e\x0c\x5c\x43\xc0\x4c\xd4\x29\xa8\xc6\xad\xc2\x00\x60\x49\x5a\ \xe1\x5b\x00\x72\x4d\xda\xc5\x02\x94\x5a\xdf\xc6\x47\xc0\x9d\x4c\ \x58\x10\x4c\x06\x01\xfa\x3b\x8c\x96\x29\x00\xbe\xa8\xbe\x9f\x11\ \x04\xd8\x16\xcf\x5a\x7b\x40\xd5\x78\xac\x89\xf5\x01\x00\xfd\x98\ \x31\x0b\xc0\x74\xf8\x2f\x28\x37\xdf\xec\xad\x5d\x59\x32\xab\x70\ \x9b\xd0\x68\x02\x18\xfa\x3d\xd6\x62\x00\x5c\x0b\x83\x52\xc3\x2a\ \x45\x58\xc7\xbd\x94\xbe\xb1\xac\xcd\x63\xce\x29\x5a\xc7\x0a\x4f\ \x06\xa0\x9f\xa3\x23\x00\x43\x18\x98\x43\xa0\x69\x08\xd8\xc9\x5c\ \x21\x00\xd0\x98\x3e\x83\xd9\x4a\x7b\xa2\x8f\xdb\x2a\x8f\xe4\xec\ \xd0\xa1\x14\x1b\x00\x6c\xd9\xbb\xd9\xb4\xbc\xad\x84\x6d\x8e\xcd\ \x24\x2a\x32\x22\xa2\x55\xd9\x91\x4c\x91\x6e\x48\x73\x18\xcc\xd9\ \x69\xc5\x4f\x40\x55\x1c\x04\x5a\x0a\x20\xd8\xc3\xcd\x07\x88\x56\ \xad\x71\x6a\xe0\xd9\x99\xc5\x87\xb3\xd3\x8a\x52\x41\xb8\x93\x80\ \x42\xc0\x34\x27\xa5\x00\xb0\x07\xa0\x0f\x01\xbc\xda\x58\x7a\x44\ \xbb\xb5\x7e\x8b\x1a\x7d\x1b\x0f\x80\x22\x06\x66\x2d\x49\x2b\x7a\ \x75\x69\x6a\xe1\x97\x08\xb2\x9e\x6d\x69\x5a\xd1\x67\xcc\x3c\x1f\ \x30\x5d\x90\xcc\x00\xf6\x09\xc6\xff\x00\xe0\xb9\xeb\x8b\x77\xe6\ \xa4\x16\xa7\x00\xfc\x43\xd4\x25\x67\x36\x73\x6f\x68\x20\xec\x24\ \xe0\x7d\x30\xde\x6c\xf2\xe4\xdb\x89\xa5\xd7\x17\xee\x8f\x88\x38\ \x79\x19\x03\x7f\x44\xdd\x79\xe8\xb3\x13\xb8\x09\xf8\xa2\x6e\x49\ \x43\xf1\xb5\xfe\x09\x8b\xdb\x4a\xce\xec\xe2\xf5\x11\xb6\x93\xe3\ \x01\xfc\x1e\xc0\x97\xd0\xcd\xf5\xd5\xe3\x01\xe8\x1b\x00\x2b\xa8\ \x7e\x13\xda\xa5\x73\xd6\x7d\x4d\x4c\xf7\xe1\x74\x1e\x4e\x37\x01\ \xff\xb2\xb8\xa3\x7e\x1b\xaa\x4c\x92\x33\x4b\xbb\xb9\x22\x63\x62\ \xcd\x15\xdb\x37\xfb\xbf\x46\xf2\xb0\xf0\xcd\x8b\x9f\xc9\xa8\x48\ \x9b\x35\x1c\x8a\x2d\xfc\x01\x33\xe7\x13\xf5\xbb\x4e\x67\x38\x73\ \x92\x16\x6a\xbd\x6c\x89\x56\xc1\xfd\x34\x85\x7b\x11\x70\x44\x11\ \xb4\xeb\x84\xb7\xff\xbe\x86\xdd\xa2\xbd\x1e\xef\x25\x51\x31\x96\ \x80\x2f\x96\x4a\xa5\xcd\xce\xcd\x64\xa7\x16\xbd\x02\xe0\x15\xa0\ \x2e\x0a\x4e\x23\x5c\x2c\xa0\xda\x14\xe6\xed\x36\xdb\x89\x1d\x66\ \x3b\x77\x67\x67\x94\x78\x01\xfc\x75\x5e\xee\xe8\x67\xba\xd8\x62\ \x87\x0a\xf0\x08\x80\x8f\x44\xda\x4a\xbf\xd0\xd7\xd7\x3c\xea\xa8\ \x88\x18\x9f\x0d\x00\x22\xaa\x2c\x01\x3b\x15\xe4\xa4\x17\xbf\x7c\ \x57\x41\xca\x7f\x2c\x65\x35\x17\xab\x8a\x48\x14\x1a\x79\x18\xca\ \x8e\xa8\xc8\xe3\x3b\xf5\xfd\x30\x98\x91\x86\xa7\x01\x3c\x4d\x20\ \xba\x67\x85\x7d\x20\xf9\x70\x31\xa9\x60\xd6\xb0\x8d\x8e\x69\xbb\ \xea\xe5\x6a\x96\x9a\x28\xf7\x33\x71\xbe\x88\x97\xfd\xcb\xdc\x55\ \x16\xc3\x03\x5f\x39\xe4\xfb\xc2\xd2\x4f\x31\x44\x29\x66\xfb\xed\ \x26\xde\x58\x57\x58\x86\x2b\x11\xde\x80\x97\xe5\x63\x55\xd5\x86\ \x85\xd9\xf5\xe7\xf5\x08\x00\x38\x73\x92\xac\xd4\x5d\x1d\x25\x88\ \x86\x12\x29\xdf\xf5\x49\x88\xf8\xba\x21\x5f\x65\x8e\x89\xdc\xa5\ \x35\x83\xb7\x75\x8f\xd9\x6d\x90\x27\x67\xe6\xa6\xf2\x97\x4c\xea\ \xeb\xc6\xfc\x15\x80\x5f\x65\x15\xa4\x58\x0e\x56\x56\x0c\x65\x4d\ \x1d\xa9\x10\x55\x92\xa0\x6d\xbd\x36\x17\xee\xad\x4f\x88\x1c\xc0\ \x92\xf4\xc2\x9c\x79\xb9\xf3\x5e\x48\x88\xdc\x73\x45\x84\x0f\x9b\ \xff\x31\xa7\xe8\x44\x13\xc3\x48\x3a\x08\x14\x7b\xed\x80\x56\xe5\ \xae\x9b\x7b\x77\x4f\x58\x6d\xe1\xf1\x72\xfc\x27\xe7\x08\x84\x08\ \x1c\xfe\xc1\xdb\x6e\xc6\xe3\xb7\xfe\x31\x2c\xfd\x03\xc0\xb6\x13\ \x9b\xf0\x97\xcf\x5b\x30\x8f\xdf\x0c\x9f\xbc\x5b\x8a\x03\x7b\x02\ \x9f\x6f\x97\x8e\xea\x8f\x35\x7f\xfd\x3c\xa4\x7e\x3f\xdb\x93\x87\ \xd7\x36\xfd\xa1\xf1\xf3\xa6\xc2\x0a\x7c\xb5\x29\xf0\x65\xfc\x7b\ \x97\x8d\xc3\xb2\x5f\x1a\x02\x05\x5b\xc4\x47\x3b\xdf\xc0\x9b\x5b\ \x0c\x71\x12\x67\x8c\xaf\x37\x55\x8f\xf9\x74\xd1\x96\x60\x5b\x9d\ \x48\x24\x12\xc9\x19\xa7\xdd\x5c\x91\x00\x10\x13\x67\x1c\x7e\xcf\ \xe1\xbd\x61\x1d\xa3\x47\x4c\xab\x02\xe6\x82\x52\x53\x6d\x9c\x0a\ \xe9\xd6\x29\xf4\x39\xe4\xa3\x95\x26\xeb\x56\x25\x12\x89\x44\xd2\ \x66\xda\x55\xb1\xc5\xc6\x1b\x3d\xa1\xfb\x8e\x9a\x4d\x37\xb4\x9d\ \x84\xc8\x6e\x61\x99\x67\xab\x28\x37\xc6\x30\x0c\xea\x33\x30\xe4\ \x7e\xf7\x94\x85\x3d\x59\x85\x44\x22\x91\x5c\xd0\xb4\xab\x62\xeb\ \xda\xc3\x38\x47\xb5\x63\xef\x41\x93\x9a\xa1\xd1\x3d\x36\x34\xab\ \xcd\x5d\x2b\xe0\xf5\x18\x3d\xb6\x23\xfb\x1b\x77\xbb\x68\x0d\x0c\ \xc6\x9e\x32\xb3\xed\xa1\x24\x12\x89\x44\xd2\x56\xda\x55\xb1\x75\ \xef\x65\x54\x6c\xe5\x65\x6e\x6c\x3b\x14\xde\x87\x7d\xa8\xee\xc8\ \x8a\x72\xf3\xbd\xb5\xc6\x0c\x1a\x17\x52\xbf\x47\x2a\xf7\xa0\xd6\ \x17\xfe\xb5\x7b\x12\x89\x44\x72\x21\xd3\xae\x8a\xad\x5b\x2f\x1b\ \x0c\xbb\x03\x03\xc8\x5f\xdf\xb6\x40\x89\x60\xf4\x88\x19\xd0\x7c\ \xa5\x26\x30\x73\x43\x12\x01\x63\x13\xf5\x09\xde\x5b\xc7\x9e\x52\ \xe9\x86\x94\x48\x24\x92\x70\xd3\xae\x8a\xcd\x6a\x25\x74\xee\x6a\ \xb4\xda\x3e\xfd\x72\x6d\x58\xc7\xe9\x11\xdb\xaa\x3d\x0a\x0d\x98\ \x59\x6c\x71\xf1\x36\x44\xda\x9a\x4b\x05\xd8\x34\xbb\xe5\xfc\x9a\ \x44\x22\x91\x84\x9d\x76\x5b\xc7\xd6\x40\xf7\xde\x56\x9c\x3c\x1e\ \xb8\xf4\xe6\x7f\xdb\xdb\xb2\x43\x45\x70\x86\x74\xb9\x24\xa4\xf6\ \x15\x65\x46\x8b\xad\x57\xf7\xd0\x23\x22\xcf\x46\xe0\x88\xd2\xf1\ \x12\x50\x5c\x90\x38\x5d\x93\x2f\x21\xf2\x05\xe4\x1d\x64\xb6\x1c\ \xc8\x4e\x5b\xbb\xa5\xbd\x64\x92\x9c\x3f\xdc\x9b\x37\xd1\xce\x0a\ \x75\xf1\x2f\xd3\x88\xbe\x5d\x3a\xbb\x68\x57\x7b\xc9\xd4\x9e\x74\ \x00\xc5\x66\xc3\xb7\x5b\x02\xf7\x23\x3b\x7a\xb4\x12\xc7\x4e\x1d\ \x41\xf7\xf8\x90\xf6\x68\x6c\xa4\x57\xec\x40\x74\x8e\xea\xd1\xe6\ \x2c\x1f\x47\x0e\x1a\x13\x15\xd8\x47\x8d\x0d\x49\x26\xc1\x1a\xf6\ \x96\x7f\x1b\x52\x1f\x2d\x21\xca\xaa\xcf\x52\x24\x69\x17\x58\x7b\ \x88\x41\x77\xe8\xca\x5e\x01\x70\x67\xbb\xc8\x23\x39\xaf\x10\x8a\ \xf2\x27\x30\x02\xf6\x09\x54\x98\x7f\x01\xe0\x89\x76\x12\xa9\x5d\ \x69\x77\xc5\xd6\xa3\x97\xcd\x50\xc6\x5c\x37\xcf\x36\xff\xaa\xd0\ \x17\x56\x37\x30\xb2\xbb\x1d\x6b\xf7\xb6\x7e\xe3\xdc\xd2\xe3\x5e\ \xd4\xd6\x18\xd7\xb0\xdd\x30\xe5\xfa\x90\xe4\xf9\xee\xf8\x06\x78\ \x35\x43\x42\x8b\xb0\x13\x6d\x0d\x7d\x23\xd4\xb3\x49\xa6\x2b\xf9\ \x46\x26\xfe\x3f\xb3\x63\xcc\xe4\x06\xf3\x21\x52\x70\x90\xc0\x07\ \x85\x46\x9b\x96\xce\x29\xfe\x2f\x83\x5b\x95\x64\x40\x22\x91\x9c\ \xdf\xb4\xeb\x1c\x1b\x00\x44\x46\x2b\x88\x4b\x30\xa6\xd7\x5a\xbd\ \xa9\x20\xac\xe3\x8c\xea\xde\xb6\xad\xbc\x0e\xed\x37\x5a\x6b\x51\ \xd1\x16\x5c\x79\xc9\xf4\x90\xe4\x29\x39\xf0\x61\x48\xed\x5b\x4a\ \xb4\x35\xfe\xac\x8c\x13\x36\x88\xbb\x81\x31\xc6\xec\x8f\xc0\x76\ \x22\xa4\x81\x71\x2f\x33\x3d\x46\x0a\x56\x64\xb8\x1c\x5f\x65\xe4\ \xd9\xef\x24\xd3\x30\x24\x89\x44\x72\x21\xd2\xee\x8a\x0d\x00\xfa\ \x26\x1a\x83\x30\xd6\x6e\x0e\x6f\x32\xe4\x8b\xba\x4f\x6c\x53\xc2\ \xf3\xc3\xfb\x8c\x56\xd5\xc5\xc3\x13\xa1\xb4\x6c\xb3\x65\x53\x04\ \x6b\xd8\x70\x68\xb5\xe9\x31\x45\x35\xca\xe8\xf1\xb6\x28\xfd\x9f\ \x29\xb1\x11\x09\xcd\x57\x3a\xa7\xe1\x8b\x88\xe8\xa5\x0c\xd7\xc4\ \x67\xda\x5b\x12\x89\x44\xd2\x31\xe8\x10\x8a\x6d\xc8\x48\x63\x66\ \x90\x63\xc7\xaa\xb0\xa2\x64\x59\xd8\xc6\x88\x8b\xe8\x8c\x91\x3d\ \x82\x6c\x8b\x15\x84\x9a\x2a\x81\xa3\x87\x8d\x4a\x25\x7d\xea\x75\ \x21\xc9\xf2\xf5\xb1\x62\x54\x79\xca\x4d\x8f\x59\x6d\xc6\x5b\x52\ \x55\x53\x6d\x52\xb3\x65\xf4\x8c\x4d\x44\xd7\x68\x43\xce\xd8\x73\ \x0d\xaf\xc2\x4a\x0a\x03\xd7\x13\xf8\x51\x93\x6d\x4f\x00\xd0\x42\ \xa7\xcb\xf1\xf8\xd9\x17\x4d\x22\x91\x74\x34\x3a\x84\x62\x4b\xe8\ \x6c\x41\x77\x93\xb9\xb6\x67\xf3\x8d\x3b\xbb\x87\xc2\xf4\xa1\xb7\ \xb5\xaa\xfe\xa6\xa2\x0a\x08\x2d\x70\xfa\xa6\x5b\xb7\x68\x3c\x30\ \xf3\xc7\x21\xc9\xd1\x94\x1b\xd2\x66\x92\x60\xba\xaa\xc6\x90\x48\ \xbd\xc5\x10\x08\xf6\xbe\x3a\xb7\x29\x03\xc7\x0e\x7b\xb1\xf5\x8b\ \x2a\x6c\x29\xa9\x6c\xfc\x73\x1f\xeb\x86\xee\x51\xa1\x2d\x8d\x38\ \x43\x88\xc5\xe9\xeb\x0a\x72\xd2\x8a\x96\x2f\x49\x2b\x5e\x84\xa3\ \xda\x14\x00\xaf\x9b\xd4\xfb\xa9\x73\x65\x52\x8b\x16\x2d\x12\x88\ \x1a\x76\x6e\x0e\x95\x79\xb9\xa3\x6d\x59\x59\x21\x98\xf0\xcd\xe0\ \xcc\x49\xb2\xce\xcb\x1d\x6d\xfc\x81\x74\x00\x9c\x39\x49\xd6\x9f\ \xe4\x4e\x0e\xcf\x16\x1a\x6d\xe0\xae\x82\x94\xc8\x07\xdf\x1d\x16\ \xd1\x5e\xe3\x9f\x4b\x3c\xf8\xee\xb0\x08\x67\x4e\x52\x9b\xb7\x24\ \x99\x97\x3b\xda\x76\x36\xef\xf5\x83\xef\x26\xb7\x79\x1e\xa5\xdd\ \x83\x47\x1a\x18\x32\x32\x0a\xc7\x0e\x07\xce\x67\x15\x6f\xfa\x0e\ \xc7\x2b\x8e\xa1\x5b\x5c\xf7\x20\xad\x5a\xc7\xc8\xee\x76\xf4\x4b\ \x18\x86\xfd\xe5\xdb\x9a\xad\x7b\xe2\xa8\x17\xbb\xbe\x33\x6e\x00\ \x9a\x39\xe7\xd6\x90\xdc\x90\x3e\xe1\xc5\xa6\x43\x66\xfb\x45\xd6\ \x61\x31\x51\x6c\x35\xb5\xa1\x05\x99\x4c\x1f\xf6\x03\xec\x2d\xff\ \x16\x6b\xbf\xf9\x1c\xbb\xb6\xd7\x62\xcf\xb6\x1a\x54\x55\x68\x00\ \x01\x09\x09\x11\x98\x32\x7e\x0c\xee\x9d\xe1\xc4\xb4\xd1\x57\xe3\ \xf9\x92\xff\xc3\xb1\x03\x1d\x3b\x31\x73\x76\x46\x89\xf7\xf6\x55\ \x63\x32\xa2\x6a\x22\x67\x02\xe8\xe4\x77\xc8\x4a\x9a\xe5\xe7\x00\ \x16\x9a\xb5\x73\xba\x26\x39\x98\x79\x16\x11\xdb\x33\x60\xb7\x03\ \xde\x4e\x4e\x97\xa3\x92\x41\x5f\x29\x8c\x17\xdc\x9d\xa2\x5e\x7d\ \x49\xb7\x1d\x4b\x46\xbe\xe3\x79\x02\x92\x00\x80\x04\x3d\xb7\x24\ \xbd\x30\x07\x00\x32\x56\xd8\x27\x2a\x02\xf3\x18\x34\xb9\xb3\x2d\ \x66\xc2\xc1\xb1\x76\x77\xa6\xcb\xb1\x8e\x99\xd7\x28\x16\xcb\x8b\ \x8b\x67\xad\x3d\xd0\xd6\xf3\xcb\x2a\x48\xb1\x1c\x2c\xaf\x9e\x4f\ \xa0\x64\x06\x8f\x41\x4f\xf5\xe2\xce\x88\x51\x9c\x2e\xc7\x37\x00\ \xbe\x64\xd0\x46\xab\x27\x6a\xc9\xb3\x73\x57\x37\xee\xca\x9b\xe9\ \xb2\xff\x99\x89\xbe\x17\xd0\x91\xc0\x17\xd9\xe9\x45\xf3\xcd\xaf\ \x85\xe3\x77\x20\xcc\x6a\xf8\x4c\x02\x27\x96\xa4\x17\x5d\xd5\x12\ \xf9\x32\xf3\xed\xd7\x43\xe0\x72\x26\xb2\xa3\xa7\x3a\xae\x0a\x5a\ \xa4\xd3\xe5\x38\xc1\x40\x91\x02\x5e\xb2\x24\xad\xb8\x71\xf3\xd6\ \x0c\x97\x63\x31\x11\x26\xe9\xba\x78\x3f\x3b\xb5\xe8\xe7\x66\x7d\ \xeb\xeb\xb3\xc0\xee\x9c\xf4\xa2\x74\xff\x6b\x73\xa8\xbc\xfa\x16\ \x01\x4c\x22\x66\xbb\x8d\xe8\x12\x37\xba\x58\x9c\x2e\xc7\x31\x80\ \x3f\x63\x81\x67\x72\xe6\x14\x07\xfc\xc0\xe6\xe7\x4f\xed\x63\x81\ \xf7\x9d\x86\xcf\x16\xe6\xd9\xcf\xa6\x15\xef\x9b\x97\x3b\x4f\xed\ \x62\xdd\x33\x4f\x10\x26\x11\x23\x19\x84\x4b\x41\xbc\x18\xa0\x94\ \x40\xa9\xe8\x60\x76\x6a\xe1\x4c\x73\x79\xed\xf7\x11\x51\x46\x63\ \x4d\x66\xc1\x04\x1f\x40\x01\x2f\x22\xac\xe1\xff\x72\xe6\x14\x19\ \xa2\xd7\x16\xac\x70\x5c\xa9\x30\x0c\xdb\x6f\x10\x70\xcf\x92\xd4\ \xa2\x12\x7d\x79\xa6\x2b\xf9\x2e\x26\xfe\x61\x63\x81\x60\xad\x26\ \xda\x7d\x79\x14\xcc\xd7\xd4\xde\x9d\x3b\xbe\xbb\x35\xc2\xf2\x3b\ \x30\x4d\x05\xba\x8c\x40\x4f\xc0\x99\xe7\xd8\x49\x0a\x36\xb2\xd0\ \x7e\x99\x9d\x5e\x12\x74\x6d\x15\x81\x28\x23\xdf\x7e\x23\x33\x2e\ \x23\xc0\xde\xd9\x16\x33\xb6\x0a\x5a\x84\xd3\xe5\x38\xce\x40\x31\ \x11\x9e\xcb\x4e\x2d\xfa\xaf\xbe\x9d\x33\xdf\xb1\xa9\xe1\x7f\x05\ \xe2\xae\xc5\xa9\xeb\x37\x12\x88\x16\xb8\xec\xe9\x44\x34\x05\x60\ \x07\x18\xe3\x41\xb8\x33\x3b\xb5\xa8\x71\xc3\xde\xcc\x7c\x47\x12\ \x98\x67\x33\xc8\x0e\x60\x22\x80\xae\x4e\x97\xa3\x0a\xc0\x77\x20\ \xbc\x58\x13\x59\xfb\xd2\xab\xd3\x37\xb7\x28\x55\x53\x87\xb0\xd8\ \x00\x20\x71\x48\xa4\x61\x3b\x1c\xaf\x57\xe0\x49\xd7\x9f\xc3\x3a\ \xce\x35\x43\x7f\xd0\xa2\x7a\x1b\xd6\x56\x18\xca\xba\x74\x8d\xc2\ \xc3\xe9\x8f\x84\x34\xfe\x96\x23\x9f\xa3\xda\x6b\xec\xbb\x81\xe8\ \x18\x63\x20\xcd\xc9\xf2\xd0\x76\x15\x8f\xb6\xc6\xe1\x7e\xc7\x93\ \xf8\xc1\x98\xdf\xe0\xea\x51\xb3\xb0\x20\x6d\x1e\xfe\xf9\xe8\x93\ \xd8\xf3\xc6\x17\xd8\xff\xef\xef\xf0\xc6\x4f\x73\x31\x6d\xf4\xd5\ \x00\xea\x76\xb7\x3c\x17\x78\x75\xfa\xe6\x2a\x62\x7e\x45\x5f\xce\ \xe0\x6b\xcc\xea\x67\xba\x1c\x3f\x07\xc4\x5a\xaa\x8b\xb8\x9c\x8e\ \xd3\x0a\x31\x96\xc0\x76\x26\xce\x8e\x28\xaf\xfe\xfc\xde\x95\x93\ \x03\xd6\x9a\x11\x30\xb4\x21\x78\x85\x89\x6f\xad\xeb\xcb\x7e\x13\ \x09\xfa\x9c\x41\x0f\x03\x98\x0c\x20\x02\x40\x3c\x03\xd7\x80\xe8\ \x51\xa1\x69\x9f\xdd\x9b\x37\x69\x60\x5b\xce\x2b\x73\x65\xf2\xb0\ \x83\x65\xd5\x6b\x01\x2c\x61\xf0\x9d\x00\xc6\x01\xb0\xa1\xee\x25\ \x74\x34\x80\x5b\x08\xfc\x67\x9f\xad\xfa\x8b\x8c\x3c\x7b\xe3\x9a\ \x13\x01\xec\x32\x04\xdc\x10\x6e\x6a\xe2\x0d\xfd\x16\xff\xba\x4c\ \xdc\xec\x5a\x98\xdb\x57\x8d\x89\xc9\xcc\x77\xbc\xc1\x4c\x6f\x33\ \xd1\x0f\x01\x4c\x02\x1a\x9f\xa8\x5d\x09\x98\xc9\xa0\xfc\x4c\x97\ \xe3\xb5\x06\x2b\x4a\x01\x76\x9b\x04\x02\xdd\x64\xd6\xff\xbc\xdc\ \x79\x2a\xe9\xe4\x02\xa1\x71\xbb\x8f\xbb\x73\xc7\x77\x3f\x50\x5e\ \xf5\x01\x03\xaf\x10\x90\x09\xa2\xf1\x00\xac\xa8\xdb\x0d\xbb\x07\ \x40\x37\x90\x42\x05\xce\x7c\xc7\x1f\xfd\x83\x89\x6c\x42\xb3\xf9\ \xf7\xe9\x03\x5d\xf3\xe0\xbb\xc9\xf1\x5d\xac\x7b\x56\x31\xe1\x75\ \x02\x1e\x00\x61\x22\x80\x08\x82\xba\xcf\x28\x2f\xcf\x70\x2e\x4b\ \x0a\xe6\xcf\x9f\x1b\x50\x17\xe4\x26\x41\x15\xfa\x3e\x14\xe2\xab\ \xcd\x1a\xab\x82\x67\x98\x05\x4a\xb1\xc0\x95\x66\xf5\x19\xe2\xba\ \xc0\xfb\xa6\xf8\x82\x3f\xec\x69\xba\xd5\x66\xfd\x1a\x4c\x19\x00\ \x46\x01\x50\x01\xa8\x20\x0c\x63\xc6\x3c\x90\xfa\x65\x46\xbe\xfd\ \x56\xb3\x96\xf3\xf3\xa7\xc6\x65\xb8\xec\xcb\xc0\x78\x93\x80\x07\ \x00\x38\x50\xf7\x3d\x07\x80\x6e\x04\xcc\x04\x63\xa5\x33\xcf\xf1\ \x82\xe1\x3b\xe6\x2f\x1f\xe8\xba\x79\xb9\xa3\x6d\x19\x79\x8e\xb7\ \x08\x58\x06\xe6\x87\xc0\x98\x0a\x20\x9a\x41\x8d\x0f\x3b\xa7\xcb\ \xf1\x63\x66\xac\x63\xd0\x6f\x50\xb7\x9b\x7a\xd7\xfa\x43\x31\x00\ \xc6\x81\xf1\x4c\x54\x4d\x64\xe1\x3d\xcb\xa6\x24\x9a\x9f\x6b\x20\ \x1d\x46\xb1\xa9\x16\xc2\xa0\xe1\x46\x2b\xf7\xad\x8f\xde\x31\xa9\ \xdd\x76\xec\xfd\xae\xc1\xf8\x3e\x29\x4d\xd6\xd9\xb3\xa3\xd6\x60\ \x3d\x5a\xac\x84\x17\x1f\x79\x1a\xaa\xd2\x76\x23\x97\xc1\x58\xf9\ \xcd\xf3\x4d\xd6\xe9\xdc\xd5\x02\x7d\x8c\xcb\xa9\x72\x37\x8e\x96\ \x1d\x6e\xf3\xb8\x00\xa0\x28\x2a\xae\x1b\x9f\x86\xc7\x6f\xfd\x23\ \x1e\xbb\xf5\x09\xa4\x4f\xbc\x01\x5d\xe2\xba\x19\xea\x9d\x53\xa1\ \x85\xa4\x98\x45\x18\x25\x66\x15\xa4\x34\xde\xa4\x79\xb9\xa3\x6d\ \x19\x2e\x47\x2e\xd7\xad\xe7\xf1\xff\xbe\xfb\xa0\xdb\x49\x99\x81\ \x09\xac\x69\xae\x79\xb9\xf3\xcc\x77\xc1\x05\x26\x67\xe6\xdb\xff\ \x8f\x41\xff\x46\x9d\xb2\x01\xcc\x77\xb2\x1e\x24\x48\x7c\xba\xf0\ \x1d\x7b\xaf\x96\x9f\x0c\x90\x99\x6f\xbf\x96\x35\xde\x58\xff\x90\ \xf5\xc7\x53\x2f\xaf\x3f\xc3\x89\xa8\xd0\x99\xef\x98\x0b\x00\xc4\ \xe2\x7d\x93\x2e\x63\x44\x6f\x8b\x21\xef\x5b\xbd\xd2\x1d\xe4\x5f\ \xc6\xac\x34\xf9\x43\x73\xae\x4c\x1a\x10\x55\x13\x59\xc8\x8c\x79\ \xba\x43\xd5\xd0\xbd\x0f\x31\x70\xab\xdb\xdb\xf9\x09\x00\xd0\x88\ \xde\x35\xe9\x2e\x71\xa1\xcb\x6e\xf0\x79\x77\x8a\xdc\x3d\x1e\x40\ \x80\xfb\x49\x21\x5a\x01\x00\x0b\xf2\x93\x2f\xb5\xda\xac\x5f\x10\ \x68\x9a\xae\x99\xf1\xfa\x33\x7e\xb6\x20\xdf\xf1\x60\xb0\x73\x61\ \xe0\x1a\xb7\x47\xfc\x8d\xc9\xa8\x3c\x34\x81\x0d\x30\xee\xea\x0d\ \x56\x94\xcb\xf4\x65\x3f\xc9\x9d\x1c\x45\xa0\x00\x6b\x94\x99\xdf\ \x61\xe2\x0f\x0c\xed\x89\x92\xcd\x65\x31\x9c\x0f\x00\x80\x14\x18\ \xc6\xab\x3f\x32\xd9\xff\x93\x02\xf1\x9e\x79\x3d\x00\x40\x0a\x4e\ \x2b\x08\xb3\x49\xfd\x68\x62\x7a\x4e\xff\x3d\x5d\xb0\xc2\x31\xc8\ \xc2\xbe\x62\x00\xe9\xba\xfa\xc6\xc9\x7e\xc2\xdd\xe8\xa9\x06\x9d\ \xdb\x66\xd0\x35\x5d\xac\xd1\xbf\x05\xb1\xe9\xfa\xa8\xac\x82\x14\ \x8b\xd3\xe5\xf8\x17\x80\x27\x11\xe8\x41\xf4\xc1\x78\x1f\x46\xab\ \xaa\x77\x45\x4b\xdc\xa9\x1d\x46\xb1\x01\xc0\x90\x91\xd1\x86\xb2\ \x43\x87\x2b\xf0\xc1\x66\xb3\xdf\x46\xdb\xb9\x63\xdc\xaf\xd1\x23\ \xc6\x7c\x2e\xa9\xaa\x42\xc3\x46\x13\x6b\xed\x37\x0b\x16\xe2\xaa\ \xd1\x21\x86\xf8\xef\xff\x00\xfb\x4f\x6d\x6f\xb2\x8e\xc5\x4a\x88\ \x35\xd9\x5d\xfc\xa3\x2d\x86\xdf\xca\x05\x0f\x33\xcc\xdc\x7d\x96\ \x83\x65\x15\x8d\x6f\x75\x5d\x22\x62\xee\x26\xe0\x46\x5d\x9d\xe7\ \xad\x02\xbd\x34\x8f\xda\x1b\xba\xb9\x3a\x06\x26\x74\x8a\xd8\x7b\ \x07\xcc\xb1\x30\xd3\x63\xa8\xd3\xff\xab\x09\x74\x71\x9f\x84\xe8\ \x4e\x04\x9a\x0b\xa3\xe2\xe9\xef\xf3\xd0\xed\x2d\x3d\x97\x79\xb9\ \xa3\x6d\xcc\xf4\x1c\xea\xde\x50\xfd\x04\xa2\x1f\x7b\xd8\xd3\x53\ \x10\xf5\x03\xe1\x4f\xba\x66\x11\x60\x3c\xed\x5c\x99\x14\x5d\xef\ \x52\x32\xb8\x95\x14\x8d\x2f\xd7\x97\x69\x0a\xeb\x1f\xe8\xc2\xe7\ \xf5\x34\xf5\x80\x04\x34\xcb\x9f\x50\x67\x31\xfa\x93\xe9\x49\x88\ \xee\x2a\x14\x0c\x01\xb0\x29\xe0\x08\xd3\x83\x99\x2b\x93\x87\x2d\ \x4d\x2d\xfc\x12\x30\xde\x27\x1f\xc8\xf0\xe0\x26\x36\x3c\xe4\x2b\ \x4e\xba\x2b\x3f\x01\x00\x85\x39\x07\x80\xff\x8f\xd6\x0b\xc6\x9c\ \x3e\x09\xd1\x9d\x14\x21\x2e\x01\x38\x60\x5b\x10\x62\x7e\x3c\xd8\ \x1c\x0d\x01\xb3\x01\xba\x4b\x57\x5c\x0b\xa0\x56\x21\xd4\x00\x30\ \xec\x1e\x4c\x04\xc3\x75\xac\xb4\xf9\xa6\xe0\xb4\x15\x03\x00\x10\ \x50\xde\x11\xac\x98\xfd\x58\xc7\xe9\xe7\x49\xeb\xe5\x33\xcd\xa4\ \xce\x8c\xc9\xfa\x25\x2c\x0b\x56\x38\x06\x01\x08\xb4\x1c\x05\x35\ \x7d\xdf\x98\x37\xb0\xc2\xa3\xb3\xd3\x8a\x3a\xa9\x24\x2e\x02\xa0\ \xdf\x17\x2c\xde\xe7\x43\x80\x5b\x98\x34\x3c\x05\xf0\x45\xfe\xbd\ \x10\xe8\xee\x08\xdb\xc9\x2e\x1a\xa9\xc3\x00\x6c\xd5\xf5\xf1\x50\ \xe6\xca\xe4\x61\xe6\xe3\x23\x99\x89\x7e\xa6\x2b\xf5\x00\xa8\x51\ \x58\xf0\x81\xb2\xaa\xdb\x00\xdc\x12\xd8\x04\xaf\x7a\x3d\xde\x3e\ \xf0\x68\x3d\x09\xb4\x34\xb0\x29\x5d\xc2\x3d\x95\x05\x4d\x9c\x31\ \x80\x0e\xa6\xd8\x3a\x77\xb5\xa0\x6f\xa2\x71\x1e\xf8\xb7\xaf\x86\ \x37\xd8\x2d\xd2\x12\x83\xfb\x1c\x7f\x46\xcf\xd8\x40\xab\xb6\xec\ \xa4\x0f\xab\x96\x9f\x40\x75\xd5\xe9\xdc\x90\x56\x9b\x82\x87\xee\ \xb8\x0d\x3f\x9e\xfd\xd3\x90\xc6\x14\xac\xc1\xf5\x4d\xcb\x82\x61\ \xba\xf6\x34\xc6\x09\x7c\xb2\x25\xf8\xbc\xdc\x85\x0a\xab\xc2\x74\ \x1e\x8b\x49\x1d\x0a\xd4\x4d\x96\x33\xe3\x57\xba\xc3\x07\x3c\x09\ \xd1\x0f\xfc\x63\x4e\xd1\x89\xe7\xe7\xae\x3d\xa9\x5a\x6c\xf7\x43\ \xf7\x66\x48\x2c\xd2\x9a\x19\xba\x46\x68\x74\xfb\x92\xb4\xc2\xaf\ \x16\x4d\x5b\xed\x5b\x92\x56\xf8\x16\x88\xff\x61\xa8\xa5\x04\xfe\ \x60\x9b\xa2\xb3\x35\xfa\x01\xe8\xac\x28\x10\xbd\x96\x9d\x5e\xf8\ \xb7\x97\xd2\x37\x96\x2d\x4d\x2d\x3c\x92\x9d\x5a\xf4\x73\x10\xf4\ \x5f\x84\x5e\x2c\x2c\x3f\x04\x00\x02\x19\xac\x36\xa6\xc0\x6c\x14\ \x00\xa0\x70\xa0\x62\x63\x50\xc9\x8b\x73\x37\x1c\x0b\x26\xdb\xbd\ \xcb\x27\x8e\x06\x58\x67\xa9\xf1\xdb\xd9\x69\x45\xd9\x2f\x4d\x5b\ \x5d\xbb\x74\x76\xd1\x2e\x66\xf1\x4b\xc3\x30\x1a\xcf\xaa\x97\xc1\ \xf0\xf0\x65\x98\x59\x24\x81\x73\x5b\x0c\xbc\xff\xe6\xdc\xad\x9e\ \x4c\x57\xf2\x4c\xd4\xb9\xc2\xfc\xaa\xd2\xd3\xd9\xe9\x45\x79\x8b\ \xa6\xad\xf6\x2d\x9e\xb3\x7e\x2b\x18\xbf\xd3\x75\x16\x53\xeb\xe1\ \x60\x73\x86\x0d\x0f\x99\x5a\x80\x7f\xe8\x61\x4f\xe7\xec\xb4\xa2\ \xa8\xba\xbf\x75\x45\x20\x98\x59\xbf\x06\xc5\xa6\xb0\xc1\xe2\x3b\ \xf2\x7c\x7a\xd1\x86\x7e\x9b\x8b\x36\x02\x38\xa1\x3b\x66\xeb\x6c\ \x8b\x0b\x50\x62\x1e\x0f\xa6\xa2\xce\x3d\x68\x46\x97\x05\x2b\x26\ \x8e\xf2\x2f\x20\xe6\xc9\xba\x3a\xa5\x27\x7d\x89\xc5\x41\xda\x03\ \x00\xc3\x22\xe6\xe4\xcc\x2e\xfe\x1f\x00\x3c\x97\xba\xfe\x5b\x00\ \xff\x31\x54\x62\x34\xba\xb4\x17\xe4\x25\x4f\x20\x42\xc0\xf7\x9f\ \x80\xd7\x97\xa4\x15\xbe\xf4\xf4\x8c\x6d\xee\xe7\x53\xd7\x6e\x27\ \x90\x7e\x7e\xb4\xf1\x5e\x9b\x60\x41\xdd\x39\x0a\x22\xfe\x35\x54\ \xad\x7b\x76\x5a\x51\x44\x76\x5a\x51\x74\xef\x84\x98\xb7\x49\xa1\ \x5f\xeb\xea\x1f\x25\x55\xbb\xf7\xc5\xb9\x1b\x8e\x65\xcf\x2d\x29\ \xf7\x92\xe5\x21\xe8\xac\x72\x02\x35\xf7\xfb\xec\x58\x8a\x0d\x00\ \x92\xa6\xc6\xc3\x62\x09\x74\x88\x7d\xf9\xd5\x3e\x2c\x7e\x3f\xbc\ \xcb\x94\x7a\xc7\x0d\xc2\xaf\x53\x5e\xc3\xb5\xc3\xee\x80\xa7\x96\ \xb0\x71\x5d\x05\xde\x5f\x76\xa2\x71\xa7\x6c\x52\x80\x8b\x2f\xea\ \x8b\xcf\x9f\x5d\x81\xdf\xde\x1c\xba\x62\xfd\x7c\x8f\x0b\xc7\xaa\ \xf6\xb7\xa8\xee\xa0\x11\x46\x97\xec\xfb\x85\x6b\x42\x96\xe1\x7c\ \xc3\xab\x79\x83\x04\x68\xf0\x10\x00\x70\xbb\x3b\xdf\x0d\x20\x60\ \xcf\x22\x66\x94\xf8\x07\x88\x3c\x77\xdd\x67\xa5\x00\x74\x37\x86\ \xae\x6c\xc6\xdd\xb1\x6d\xe9\xf5\x85\x01\x6d\x58\xf0\x2a\xa3\x18\ \x18\xe3\xcc\x4b\x1a\xd2\xd4\x39\x00\x40\x56\x16\x29\x20\xd2\x2b\ \x60\x30\xf3\x6b\xfa\x32\x12\x30\xbc\x1d\x11\xf3\xcf\xb2\x0a\x52\ \x2c\x82\x8c\x8a\x8d\x80\x29\xfa\x88\x4d\x06\x07\x28\x10\x22\x6e\ \xd2\x0d\xc9\xaa\xf2\x6b\xe8\xbd\xd4\xac\x04\x58\x35\x2c\x54\xb3\ \x9c\x97\xd7\x02\x00\x84\xd1\x1d\x49\x3a\xc5\x96\x55\x90\x62\x01\ \xf3\x54\xff\x32\x05\x58\x01\x00\x02\x58\x64\xe8\x59\x70\xa0\x55\ \xc5\x8a\x61\x7c\x22\xbe\xd6\x44\x26\xff\x1a\x7f\xcb\x4e\x2b\x7e\ \xfa\xa5\xf4\x8d\x65\x01\x5d\x9b\xbc\x20\x00\x34\xfa\x9e\xdc\xc9\ \x01\xb9\x18\x05\x29\x01\x8a\x93\x40\xef\x32\x98\x17\x2d\x62\x01\ \xe0\x63\x7d\x0f\x4c\x9c\xac\xfb\xec\xff\xd2\x21\xea\xff\x4e\xf7\ \x27\x28\xe0\x7a\x10\x68\x8a\xae\xcb\x0f\xdf\x9c\xfb\xa6\xf9\x9e\ \x5a\x75\xec\xcc\x9e\x55\xb2\xd7\xbf\x80\x89\xf4\xd6\x16\x08\xd4\ \x68\x6d\x29\x24\x7e\x63\x90\x1b\xb4\x2e\xe0\xb3\xea\x33\xf4\x81\ \x86\x7b\x1d\x04\x02\xbd\xba\x24\xb5\xf8\x77\xd9\xb3\x4a\x8e\x37\ \x94\x1d\x2a\xaf\xf9\x01\x18\x83\x03\xeb\x61\x63\xf6\xac\x92\x46\ \x97\xe7\x0b\xa9\x9f\x57\x00\xd8\xad\xeb\xee\xf2\xe6\xa2\x33\x3b\ \x9c\x62\x8b\x89\x53\x71\xc9\x44\x63\x7e\xc3\xc7\x5e\x7c\x1a\xa5\ \x55\x27\xc3\x3a\x96\x55\xb1\x61\xce\xa8\xfb\xf0\xe7\x99\xbf\x45\ \x4b\x17\x00\x00\x1b\x60\x49\x44\x41\x54\xf9\xf8\x59\xda\xaf\x91\ \x71\xe3\x1c\xdc\x3a\xfb\x7b\x78\xee\xe7\x8b\xb0\xe7\xcd\x8d\x28\ \x7c\x6a\x2d\x46\xf5\xd3\x7b\x5f\x5a\x8f\x57\x73\xe3\xbf\xdf\xbe\ \xd0\xe2\xfa\xbd\xfb\xdb\x10\xa3\x73\x47\x1e\x3f\x56\x8d\xff\x6e\ \x70\x85\x2c\xcb\xf9\x44\xfd\x03\xc9\xb0\x16\x82\x88\x12\x01\x80\ \x14\x93\xf9\x0b\x82\x71\xb3\x3f\xd2\x2b\x36\xc4\x2a\x3d\xac\xfa\ \x87\x88\x3f\x86\xb0\x51\x66\xcb\x6e\xb3\x8a\xa4\x58\x06\x9b\x95\ \xfb\x73\x78\x4c\xf2\x00\x00\x86\xac\xda\xa4\x6a\x7b\x0c\xe3\x90\ \xb2\xd3\xa4\x8b\x4e\xfb\x2b\xaa\xfb\x6b\x50\x57\x03\xd0\x2f\xbc\ \x4c\x38\x3c\x2e\x69\x4c\xc3\x07\xe7\xca\xa4\x8b\x00\xea\x13\xd8\ \x67\x33\x8a\x8d\x31\xcd\x20\x9b\x22\x02\xae\x63\xb9\x36\xe0\x10\ \x00\xfd\x43\xf6\xf2\xbb\x0a\x52\x22\xc9\xeb\xfb\x10\x46\x57\xed\ \xa8\xfb\x97\x3b\x1a\xe6\x7f\x70\xb0\xbc\x76\x02\x00\xff\xe5\x17\ \x82\x55\xed\x1d\xe7\xca\xa4\x68\x02\x1b\x17\xa0\x5a\xb4\x80\xf1\ \x35\x56\x8d\xa1\xbc\x4c\xa6\x81\x44\x8d\x03\xc0\xfc\xbc\xeb\xdd\ \xa7\x7a\x97\x1d\x29\x11\xa7\x15\xaf\x33\x37\x29\x81\xc0\x01\xf3\ \x97\xfe\xd7\xd1\x6c\x9e\x0d\xe0\x00\xab\x93\xfd\x5c\xaf\x04\x6c\ \x04\x10\x38\x67\x4c\x81\x8a\x0d\x75\x81\x4a\x7e\xe3\x35\xe3\x86\ \x04\x6f\xd2\x97\x10\x60\x96\x14\xb9\xab\x5f\x8d\x69\xfa\x83\x44\ \xf8\xce\xff\x73\x69\x4d\xed\x61\x18\xe3\xcc\x2e\xbf\xab\x20\x25\ \xe8\x76\x27\x66\xdf\x31\x01\x36\x8c\x05\x66\xb3\xcd\x38\xf5\xf7\ \x36\xb2\x3a\xc2\x67\xf0\x44\xf8\xd3\x61\xc2\xfd\xfd\xb9\xe8\xd2\ \x18\xec\xde\x56\x8b\x52\xbf\xac\xff\x15\xa7\x3c\xc8\x78\x66\x01\ \x72\x1f\x79\x3b\xec\xe3\x75\x8b\xeb\x81\x1b\x27\x7d\x1f\x37\x4e\ \xfa\x7e\xd8\xfb\x06\x80\xbc\xaf\x17\xa3\xac\xf6\x78\xf3\x15\xeb\ \x21\x00\x17\x8d\x89\xc1\x17\x6b\x4e\x05\x94\x3f\xf1\xef\xbf\xe2\ \xba\xf1\xcd\x5a\xe1\x17\x1a\x86\xef\x30\x0b\xaa\x0b\x0a\x61\x18\ \xac\x25\x02\x8e\x18\x82\x3a\x84\x72\x02\x14\xf8\x3b\xd5\x14\x1e\ \x0c\xa0\x20\xc8\x98\x06\xd3\x5b\xb1\x7a\xf7\x40\x33\x7a\x95\x04\ \x44\x8f\xa0\x92\x37\x8c\x45\x62\x44\x90\xa0\x9d\xbd\xfa\x02\xaf\ \xc7\xbd\xd3\x6a\x33\x1a\x93\xaa\xc6\x83\x97\xa6\x7f\xbe\xcb\x99\ \xef\x58\xab\x4f\x86\x2b\x84\x7a\x05\xea\x1e\x9c\x80\x4f\x49\xd1\ \xd9\x5e\x47\x97\xce\x5e\x5f\x92\x13\x44\xb6\x85\xb9\x29\xb1\xb0\ \xc1\x70\x0e\xcc\x6a\xa9\xff\x75\xec\x1e\x03\xf8\xbc\x74\x0c\x80\ \xff\xb5\x8d\x8c\x3a\x59\xd5\xe7\xb9\xb9\x25\x3b\x9d\x2e\xc7\x5a\ \x04\xba\xf3\xc8\xa3\x2a\x53\x00\xe4\xd7\x7d\xd4\x52\xfc\x8d\x42\ \x06\xad\xcb\x99\x55\x72\xfc\xde\xe5\x13\x47\x0b\xe3\xeb\xb7\x66\ \xd1\x94\x2a\xff\xf1\x23\x54\x08\x5f\xdd\x4d\xf4\x3f\xbb\xc4\xac\ \x2c\x52\x30\xc6\x34\x6e\x03\xac\x59\x0c\xd7\xd7\x4f\x80\x55\x20\ \x04\xcc\xb5\x2a\xac\x5d\xd6\x20\x2f\x47\x58\xaf\x20\x16\xfe\x37\ \xdc\xe7\x11\x9e\x46\x65\xa6\x0a\xf5\x03\x41\x81\x39\x66\x89\xd1\ \x28\xc8\xc2\xdc\x94\x58\xb2\xf1\x78\xbf\x01\x57\x83\x60\x01\xd3\ \x69\x77\xa5\x9f\x05\x3b\x3f\x7f\x6a\x9c\x85\x11\xb0\x4d\x89\xaa\ \x28\x66\x2e\x53\xbf\x2e\x8d\xd6\x99\x22\x88\x05\x19\x62\x9f\x09\ \x00\x9c\x2b\x93\xba\x01\xaa\x61\x5e\x92\x84\x56\x1e\x78\xaf\xa3\ \xe1\xf3\xa2\x14\x80\xbf\x05\x1b\x19\x59\x56\xdb\x0b\x46\xeb\xaa\ \x5e\x16\xc5\xe4\x5a\xd3\x10\xbd\x7e\x64\xc2\x61\xfd\xef\x93\x89\ \x4a\xf5\x22\x0b\x9d\xa5\xa7\xa7\xc3\x59\x6c\x40\xdd\x26\x9e\xf6\ \xcb\xe3\x0d\xd9\xff\xde\xff\xb4\x24\xec\x81\x24\x67\x9a\xe2\xfd\ \xef\xe3\xc3\x1d\xff\x6e\x75\xbb\xe1\x97\x44\xa3\x47\xef\xc0\xb9\ \xb6\x4d\x5b\xf7\xe0\xc9\x15\xfa\xf8\x81\x0b\x97\xdb\x57\x8d\x89\ \x81\x89\x62\x23\x70\x05\x00\x30\x8c\x8a\x0d\xc0\x93\x3e\x2f\x1d\ \xf2\xff\x33\x8b\xd8\x22\x81\xe0\x8b\x43\x99\x0d\x2e\xd0\x7a\xf7\ \x89\x21\x64\x9e\x98\x9a\x55\x6c\x0a\x63\xb8\xa1\x90\x70\xcc\xdf\ \x25\xd3\x40\xfd\x5c\x98\x61\xfd\x07\x13\x0d\x02\x00\x36\x71\xa3\ \x11\x9d\x0e\x20\x61\x22\xdd\xfc\x1a\xde\x6b\x2a\x89\xb4\x66\xa9\ \x0e\xe2\x4a\x15\x85\x86\xeb\x18\xa8\xd4\x00\x00\x3e\xa5\xee\x3a\ \x12\x60\x78\x63\x27\x9c\x96\x4b\x1f\xed\xa8\x80\x57\x00\x00\x5b\ \x54\xb3\xf1\x55\x1f\x68\x6f\xc0\xf8\xa0\xbd\x30\x09\xea\xdd\x3d\ \x66\x6c\xd0\xfb\x18\x11\xe9\x0d\xba\x40\x94\x60\x9c\x67\x13\x50\ \x1a\xe5\x55\x84\xa6\x9f\x5f\x5b\xeb\xef\xd2\x5c\x9c\xbe\x6e\x37\ \x00\x7d\xa4\xd8\xa0\x7b\x97\x4f\xe9\x01\x00\x5a\x44\xd5\x54\xf8\ \x7d\x77\x05\xf3\xc7\x10\xa4\x9f\x3f\x1d\xd8\xb0\xfc\xc4\x0a\x5f\ \x32\x02\x9e\xd7\xbc\xa5\xd9\xb5\x92\xc4\xad\xcb\xec\xa0\x59\x4d\ \xef\xb5\x20\xa5\xc8\xe4\x5e\x77\x31\xd6\xa3\xa0\x09\x0f\x98\x8d\ \x19\xdf\xa9\x7e\xca\x40\x57\xfa\x07\xfd\x58\xc4\x30\x58\x1c\x84\ \x26\x7e\x9f\xe8\xa0\x8a\x0d\x00\xba\xf6\xb0\x62\xc4\x25\xba\x00\ \x31\x06\x16\xfe\xfd\x67\xa8\xf5\xb4\x3d\x13\xc7\xd9\x64\x7f\xf9\ \x36\xfc\x73\xd3\xef\xdb\xd4\x96\x00\x4c\x4a\x49\x40\x54\x74\xe0\ \x2d\xfa\xc3\x8b\x4b\xb0\x7e\x47\x61\x18\xa4\x0b\xc4\x2b\x3c\xd8\ \x70\x70\xf5\x59\xd9\x4a\x27\x5c\x58\x6b\xe3\xcc\x13\x61\x12\xca\ \xeb\xd7\x51\x75\x32\x3d\xde\x12\x14\x0e\x9e\x64\x93\x0c\xee\xbe\ \x86\x72\x83\xc2\xa1\x16\x24\x28\x65\xb0\x51\x4e\x36\x86\x9c\xfb\ \x8d\x63\xcc\x1c\xc0\x75\x0f\x1a\x52\x4c\x02\x48\x80\xcb\x08\x44\ \x75\x7f\x08\x5c\xeb\x62\x1e\x8e\xdf\x88\x50\x8c\xca\xaa\x55\x30\ \x12\x00\xf3\xb0\x7f\xe6\xba\x79\x36\x67\x4e\x92\x95\x01\x9d\xdb\ \xad\x2e\xcc\x9f\x05\x87\x34\xbe\x2a\xa2\xdb\x94\x2c\x95\x2d\xda\ \x07\xd0\x99\x13\x04\x1e\x5f\xff\x32\x05\x26\xd2\x05\xa6\xb0\xf1\ \x3a\x12\x8c\x61\xff\x8a\xd7\x01\x00\x22\x30\x02\xd4\x67\xf5\xc6\ \x7e\x66\x65\x7c\xa6\x1f\x93\x35\xdf\x54\x00\x60\xc1\x3a\xd7\x78\ \x73\x6e\xc8\xd6\x43\x4a\x68\xd7\x9a\x84\xd6\xe2\x3d\xb2\xea\x23\ \x3e\x9b\x7d\xe9\x0b\x8e\xd2\xe4\x7d\xed\x90\xae\xc8\x06\xc6\x4d\ \x8a\x43\x75\xa5\x86\xbd\x3b\x4f\x2b\xb2\x43\x87\x4e\xe1\xaa\x5f\ \x5c\x8d\x82\x3f\xad\x86\x55\x6d\x73\x76\x98\x33\x4e\x95\xe7\x14\ \x16\x17\xff\x0c\x1e\xad\xed\x4a\x38\x26\x5e\xc5\xf4\xff\x6f\xef\ \xde\xe3\xa3\xaa\xae\x3d\x80\xff\xd6\x99\xc9\x84\x3c\x40\x10\x21\ \x88\x0a\xd6\xd2\x6a\x14\x44\xac\x64\x10\x15\xa5\x55\x14\x45\x5e\ \x16\x3f\xad\xf5\xd3\x16\x2b\x89\x7c\x68\xef\xa7\x9f\xb6\x5e\xeb\ \xe3\x36\x45\x5a\xb9\xf7\x7a\xab\xd6\xda\x4a\x82\xca\xbd\xf5\xd3\ \xf6\x02\xed\x85\xa0\x05\xc2\x43\x5e\x21\x24\x21\x18\x81\xf0\x1c\ \x9e\x42\x08\x09\x81\x24\xf3\x3e\x73\xce\xd9\xeb\xfe\x31\x49\x98\ \x99\x33\x93\x07\x99\x30\x79\xec\xef\x5f\xc9\xe4\x64\xce\xce\x4c\ \x66\xd6\x9c\xbd\xd7\x5a\x7b\xd6\x75\xd8\xb6\xee\x12\x1a\x2e\x05\ \x97\x28\xfc\x7e\x03\x8f\xff\xe2\x19\xe4\xbd\xb4\x18\xb3\x27\x44\ \xad\x73\x6d\x37\xc1\x02\x47\xea\xca\x51\x76\xb6\x10\x9f\x9f\xdb\ \x02\xbf\xde\xae\xa2\xfe\x6e\x23\x89\xf5\x81\xd1\x2e\x35\x48\x60\ \xdf\xbb\x53\x1d\x6a\x4e\x81\xbd\x1e\x11\x6b\x57\x04\x94\x30\xc8\ \xb4\x76\x15\x89\x21\x5a\xaf\xcb\x88\xfe\x4b\xa6\x17\x36\x0b\x44\ \x5b\x13\x0b\x43\xa4\x9c\x65\x73\x69\xfc\xb0\x85\x0b\x49\x69\x4a\ \x44\x68\x91\x93\x7f\x4f\x12\x32\x2c\xa6\x02\x44\x6a\x5a\x87\xc8\ \x9f\x56\x52\x91\xbd\x26\xeb\x02\x18\xa1\xed\x7a\xae\x9b\xf7\xc9\ \xf8\xdb\x15\x9d\xac\xac\x84\xae\xa7\xc0\xb0\x5a\x92\x5a\x9d\xce\ \x62\xa2\x6a\x8a\x7a\x41\xc7\x6b\x00\xc5\x1c\x60\x23\x58\x2c\xc2\ \x09\x04\xd7\xad\x72\x0a\xec\x55\x00\x5a\x0a\xe0\x9b\x03\x45\xea\ \x90\x7e\x77\x72\x68\x99\x03\xe1\xc4\x92\xe9\x25\x07\x83\xe7\x57\ \xaa\x89\x4d\xdb\x46\x31\x40\x2b\xda\x3a\x77\xf0\xae\x0c\x03\xa0\ \x0e\xbf\xcf\xe5\x4d\x2b\xaf\xcb\x29\xb0\xef\x41\x53\xd7\x99\x26\ \xd6\x54\x7f\xca\xc4\xf9\xab\xee\xdb\x0b\x25\xbc\xf4\x41\x90\xb9\ \x0e\x90\xc0\x9b\x18\x34\x3f\x7c\xe0\x64\x07\xf0\x89\x02\x3c\x18\ \xf2\xa8\xee\x6e\xea\x22\xe3\xce\x29\xc8\xaa\x04\x68\xcc\xe5\xe3\ \xf1\x00\x80\xe5\x0c\x9e\x18\xfa\x19\x89\x98\x5b\x9f\x86\xbc\x02\ \x86\x81\xb3\x4a\xf4\x8f\x61\xab\x01\x6a\xb3\xfd\x11\xc1\x88\xdd\ \x79\x22\x02\x83\x39\x07\xf6\x1a\x44\x96\x2f\x30\x76\x83\xa8\xcd\ \xd7\x0c\xb3\x68\xf5\x13\x78\xb7\x0e\x6c\x44\xc0\xc4\x87\x07\xc2\ \x28\xac\x47\xd5\xe9\xcb\x8f\xeb\xbe\x83\x67\xf0\xc8\xab\x53\xb0\ \xf9\x8d\x8d\x9d\x2a\x98\xee\x2a\xba\xd0\xb0\xb4\xfc\x55\xd4\x79\ \xcf\xb5\x7d\x70\x1b\xd2\xfa\x2b\x78\x74\xf6\x60\x1c\x3d\xe0\xc3\ \xc1\x0a\x37\x54\xbf\x80\xdf\x6f\x60\xee\xa2\x97\x90\xff\x8d\x8f\ \xf0\xbb\x79\x6f\xe2\x8e\x9b\xee\x6c\xf7\xfd\x35\xfa\xeb\x70\xd6\ \x79\x0c\x07\x6a\x8a\xb1\xbb\x6a\x13\x9c\x6a\x64\x56\x72\xcf\xc1\ \xc4\x77\x44\x69\x95\xa2\xa9\x83\x52\x2b\x9a\xbe\x3e\x85\xc8\xa4\ \x0c\xc6\x5f\xf3\x66\x96\xc4\x7d\x27\x00\x02\x51\x36\xb2\x4c\x9f\ \x22\x85\xd2\xf6\x8b\x54\x40\x9c\x89\x72\x61\x67\xad\x1d\x3f\x7e\ \x28\x80\xb0\xca\x7c\x6b\x86\x32\x4c\x8f\x56\x47\xcf\xc1\xb5\x0d\ \x06\xf3\x0b\x6c\xdf\xc0\x40\x58\x47\x09\x32\x30\x89\x95\xf0\xbe\ \x4b\x0c\x2a\x69\xca\x0a\x8d\x29\x25\x09\xa7\x54\xf3\xce\x4d\x00\ \xac\xaf\x75\x74\xf7\x6f\x26\xac\x27\x46\x68\x8b\x2f\x6b\xaa\x37\ \x79\x02\x2b\xe1\xa9\xfc\x24\xb8\xa5\x25\x17\x83\x4f\x45\x79\xaf\ \x25\x8b\x35\x69\x7e\x5b\x63\x6f\x76\xa5\x5d\x60\x10\x9c\x8e\x0c\ \x0d\x6c\x10\x02\x93\x60\x31\x06\x47\xac\xf9\x9c\x6d\x4a\x38\x09\ \xa3\x0a\xed\x33\x1b\xd9\x0c\x84\xa7\xf4\x4f\xf8\xfe\x86\xb1\x69\ \x29\xe8\x17\x7a\xbf\x97\xb7\xfa\x60\xda\x06\x0a\x59\x4b\x23\xba\ \x7f\xe1\x42\x52\xe8\xae\xac\xd0\x85\x42\xcf\x25\xcd\xbb\xe3\x4a\ \xfe\xa0\xd6\x24\x25\x25\x9d\x30\x74\xf3\x93\x2d\x84\xf2\xca\xd2\ \x59\xbb\x0e\xc5\xfb\x7c\x08\xbe\x3e\xc3\x03\x9b\x82\x95\x79\xd3\ \x4b\x3a\xdd\x6e\xaa\xfb\x45\x85\x08\x8a\x02\x3c\x30\x65\x20\xb6\ \xae\xab\xc7\xf9\x90\xbd\xd1\xf6\xec\x3d\x81\xc7\x73\x9f\xc0\xba\ \xd7\xd7\x75\xaa\x77\x63\xbc\x35\xf8\x2f\x60\x49\xd9\x4b\x38\x59\ \x7f\x20\x6e\xf7\x69\xb1\x12\x32\xc7\xa6\xe2\xd6\x31\xa9\x70\x36\ \x68\x70\xd6\x1b\x68\xac\xd7\x71\xe6\xd2\x29\x3c\xf1\xea\x53\x18\ \x74\x4d\x3a\x46\x5c\x3f\x0c\x5f\xbb\xe9\x16\x8c\xbd\xe5\x4e\x8c\ \x1f\x65\x47\x7a\x4a\x3a\xfc\x9a\x07\xd5\xee\x93\xa8\x72\x1e\x47\ \x95\xf3\x18\xaa\x9c\xc7\x63\xee\x2a\xd0\x13\x11\xd3\x43\x51\xae\ \x74\x76\x37\xa7\xf3\x13\x70\x8a\x23\x0a\x60\x59\x09\x4f\xff\x8f\ \x97\xec\x82\x7b\x47\x03\x86\xa9\x08\xd3\xa6\xa6\xb4\x19\xd8\xac\ \xc4\x67\x0c\x36\xbf\x7d\xeb\xc2\x32\x1c\x11\x81\x4d\x87\x65\x78\ \x44\x56\x38\x00\x80\xd9\x38\xd5\xfc\xb5\x60\x2a\xa4\xa6\xf6\x5f\ \x2d\x48\x79\x90\x88\xd3\x42\x2f\xbe\x28\x46\x56\x60\xa8\x77\xa7\ \x96\x38\xa3\x5d\xf9\x32\x6b\x37\x02\xe8\x50\x60\x83\xa0\x75\x20\ \x0e\xeb\x5d\xc9\xa0\x07\x00\xba\x2f\x62\x06\xae\x25\xb0\xc5\x0a\ \xac\xba\xa6\x8e\x04\xd0\xae\xc0\x76\xa5\x04\x50\xa8\x20\xbc\x0e\ \x92\x14\x7e\x80\x98\x32\x42\x47\x4b\x88\x3e\x9d\xbb\x6c\x66\x45\ \x43\x4e\x81\xbd\x1c\xe1\x35\x78\xe3\x53\xfd\xc9\x0f\x70\xc8\x7b\ \x2f\x31\xb7\x94\x06\x10\xd1\x36\x06\xff\xb8\xe5\x68\xc6\x98\xea\ \x71\xe3\xef\x07\x5f\xce\x18\x25\xc2\x96\x15\x73\x2a\xa3\x7e\xdc\ \xe8\x8c\x3f\x3d\xb1\xa3\x3e\xa7\xc0\xde\x80\x88\x29\x7c\x8b\xc5\ \x18\x09\x20\xee\x81\x8d\x09\xa7\x88\x23\xfa\x88\x32\x5d\xd1\xeb\ \x33\x7b\x95\xfd\xeb\xa4\x1b\x35\x79\x73\xca\x1b\x81\x1e\x10\xd8\ \x80\xe0\x1e\x65\x93\x1e\x1b\x84\xad\xff\xac\x47\x6d\xf5\xe5\xe7\ \xb3\xb8\xfc\x30\x66\x2e\x9a\x8e\x35\xbf\xea\xf8\xce\xd8\x5d\xe1\ \x68\xdd\xe7\xc8\x2f\x7f\x05\x2e\xb5\x6b\x5e\x6f\x8a\x02\x0c\xbc\ \x36\x09\x03\xaf\x8d\x36\x05\x7b\x09\x2e\x5c\x42\x51\x5d\x39\x8a\ \xea\x3e\xea\x92\xf3\x77\x27\x3f\x5e\x65\x1f\xcc\x0a\xcc\xdb\x35\ \x10\xde\x69\xfe\x92\x99\x2b\x40\x34\x2b\xec\xe7\x8c\xd9\x0b\x17\ \xd2\xcb\x91\x53\x7c\x9d\x46\xc6\x83\xa6\x18\x4b\x28\x0a\x6d\x54\ \x1c\x4b\x9d\xfa\x95\x63\x83\x92\x4f\x9f\x88\xac\xe9\x61\xdd\x18\ \x05\xe0\xf3\xb0\xdb\x98\x6f\x8c\xb2\xa5\xea\xc9\xfc\xd9\x7b\xce\ \x37\x17\xb8\x25\xd9\xc4\x46\x5d\x8b\xcc\x10\xe4\x07\x99\x11\xd6\ \xda\x87\xb9\xed\xc0\x06\x00\xc4\xa8\x88\x6c\x3f\x45\x44\x73\x00\ \x74\x28\x93\x8b\x34\x7d\x13\x6c\x16\x1d\xa1\xef\x3b\x0a\xbe\x05\ \x0e\xcd\x0e\x84\x93\x6b\xc5\xf6\xe6\x6f\xde\x9d\x5a\xe2\xcc\x59\ \x63\x37\x3d\x36\xa4\x28\xb3\x11\xd9\xed\x24\xce\x6e\xbc\x26\x75\ \xd7\xb9\x46\xaf\x0b\xa1\x65\x08\x0c\x3b\x83\x23\xda\x91\xc5\x7e\ \x1c\x99\x69\x23\x51\x58\x9a\xff\x00\x66\x84\x4e\x4f\xaa\xa9\x9a\ \xb5\xb8\xf9\x1b\x12\x96\xed\xac\x84\x55\x46\x28\xcc\xf4\x8b\x88\ \xfb\x8c\xfb\xfa\x5a\xcb\xf9\x19\x9f\x9b\x5a\x8d\xb1\x32\x1b\x30\ \x17\xd9\x77\xfa\x5c\xc1\x4c\xdd\x88\xc4\x10\x9e\xb9\x70\xeb\xe4\ \x9f\xe7\x3e\xb4\x25\xb2\x3c\x24\xaa\x17\x0a\x26\x3c\xce\xcc\xbf\ \x26\x05\xe3\x61\xb3\xf8\xb2\xd7\xd8\x57\x27\x59\xf9\x67\xdd\xe7\ \x52\xa7\x0d\x56\x2b\x61\xf2\xb4\x41\xb8\x7d\x5c\x1a\x42\x2f\xd0\ \xb6\xec\xda\x8f\x7b\xfe\xc5\x8e\xca\x33\x5d\xfa\x3f\xde\xa6\x4d\ \xc7\xff\x8a\xb7\x8b\x7f\xdc\x65\x41\x4d\xba\x2c\xe7\xd3\x7b\x52\ \x35\xa2\x7c\x98\x33\xa3\x8e\x0e\xaf\x28\x6b\xa9\x07\xb1\x24\x25\ \xbf\x07\xa0\x21\xe2\x98\x51\xd5\xe3\xb2\xb2\x11\x47\xcf\xad\xbc\ \x7b\x08\x18\x91\x9d\x37\xc0\xcc\x0b\xdb\xf3\xfb\x2b\xe6\xac\x30\ \xc0\x64\xea\xf0\xae\x10\x99\xf6\x47\x22\x62\x53\x0f\x44\x66\x7e\ \x3d\x34\xb3\xf1\x8f\x8f\x97\x9d\x47\x64\x4d\x54\x30\x63\x31\xe4\ \xf1\xe2\x73\xf9\x33\xcb\xda\xf5\xa2\x61\x85\x22\xbb\x7a\x00\xa0\ \x67\xe6\xaf\x19\x1f\xb5\x1d\x54\x2c\x4d\x9f\xa6\x8b\xc3\x6e\x6c\ \x6a\x88\xdb\x72\xaf\x84\xf5\x79\xd9\xe5\x61\xc9\x39\x2c\x78\x91\ \x79\x50\x9c\xd3\x89\x29\xc6\x76\x69\x7a\x73\xdd\x1c\x71\x73\x3f\ \x00\xa1\x5b\x23\x05\xac\x5a\x6a\xcc\x7d\xa8\x14\x45\x44\xa9\x67\ \xa3\x27\x2f\x7f\x89\x92\xb7\xe6\x14\xb7\xac\x55\xbe\x3f\x6b\x67\ \x2d\xcc\x57\x47\xe1\x5d\x3d\x58\xef\xb2\xc0\x16\xed\xb9\x66\xf0\ \xb3\xc1\xee\x33\xf1\xa5\x23\x69\x09\x80\xc8\x3a\xa8\x11\xe7\x1a\ \xbd\x3f\x69\xcf\xef\xcf\x5d\x3d\x6e\x20\x83\xff\x16\xd2\x5b\x35\ \x85\x18\xdf\xd5\x35\xe5\x9d\x1e\x71\xc5\xd6\xcc\x62\x21\xdc\x65\ \xef\x8f\x91\xa3\x52\x50\xba\xb5\x11\x97\x2e\x04\xff\xff\x8f\x38\ \xce\x63\xd2\x82\x59\xf8\xe1\xcc\x69\x78\xf3\x87\x6f\x5f\xd5\x75\ \xb7\xe3\x97\xf6\xe1\xd3\x23\x1f\xe0\x60\x6d\xe9\x55\x3b\x67\x1f\ \x64\xc9\x5e\x9d\xf5\x43\x02\x52\xa0\xd0\x18\xb0\x65\x0a\xc8\x94\ \x2a\xec\x12\x0a\xfd\x20\xf4\x4a\xac\x69\x6a\xe5\x4d\x00\x61\xad\ \x63\x98\xf1\x7e\xce\x9a\xac\x5b\x05\x29\xcb\xd5\x64\xdf\x7e\x5b\ \x63\x5a\x72\x52\xb2\x96\x29\x58\xc9\x64\x46\x26\x11\x7c\x79\x33\ \x4a\x5f\x8b\x39\x1a\xa6\xaf\xe5\x14\x4c\x1c\xa3\x30\xbb\x98\x78\ \xb2\xd5\x66\x7b\x01\xe0\xf0\xb5\x02\x42\x51\xfe\xf4\xb2\xd8\x1b\ \xef\x45\x48\x0b\x28\x1f\x79\x6c\xc6\xaf\x01\xb4\x24\x86\x30\x30\ \x21\xa7\x20\xeb\x3d\x0b\xf1\x1f\x0c\x85\x09\x86\x75\x3e\x22\x5b\ \x3b\x31\x1c\x0d\xda\xcd\x1f\x9b\x86\x08\x14\x12\x2e\xb7\x4a\x32\ \xff\x09\xad\x67\x43\x86\xca\x9b\x5e\xb2\x25\x7b\x75\xd6\x46\x0a\ \xdf\x16\x27\x59\xb0\xb2\x33\x7b\xcd\x84\x97\x89\x95\xcf\x50\x13\ \x38\x2c\xae\xb3\x66\x58\xac\xc8\x64\x16\x99\x0c\xca\x24\x60\x47\ \xde\x8c\xd2\xb0\x5e\x9c\x04\xac\xe5\x28\xed\xa9\x5a\x84\xac\xaf\ \x35\x6b\xd0\x6e\xfe\x78\x90\xed\xcb\x97\x10\xde\xbf\x70\xa8\x20\ \x51\xfe\x42\xc1\x84\x17\xd9\xa2\xef\x1a\x9e\xde\xff\xd8\x59\x97\ \xf7\x26\x8b\xa0\xe0\xf9\x15\xca\x54\x40\xcb\x97\x4c\x2f\xe9\x54\ \x93\x55\x22\x14\x32\x9b\x9a\x01\x87\xda\xd1\xda\x55\x39\x9f\x17\ \xbb\x90\x61\xf1\x20\xbc\x07\x68\xe8\x35\xf7\x16\x44\x22\x6c\x05\ \x23\x33\xc6\xf1\xc7\x5a\xdb\x6a\xa6\xb3\x62\x3c\xd7\x29\x42\x51\ \x76\xe5\x14\x4c\xf8\xa5\x22\x8c\x6d\xe2\x02\x1f\xb1\x66\x28\xc3\ \x74\x56\x32\x59\x41\x26\x31\x67\x82\xb0\x39\x74\x0b\x9a\xf6\xf8\ \x70\x7a\x91\xeb\x85\x35\xf6\xc5\xcc\xf8\x5d\xc4\x8f\xde\xca\x29\ \xb0\xdf\xaa\x90\xf8\x38\x80\xe4\x7d\x42\x78\x2c\xc9\x6c\xcb\x14\ \x16\xca\x54\x58\x64\x32\x91\xc8\x9b\x5e\xfa\x52\x12\x27\x8d\x05\ \x45\x4b\xfb\xe7\x47\x7a\x54\x60\x6b\x36\x68\xb0\x15\x8f\xce\x1e\ \x8c\x23\xfb\x3d\xd8\x57\xe6\x86\xae\x33\x34\x4d\x60\xe9\xca\x35\ \x58\xbb\x73\x2b\xf2\x7e\xf6\x36\x1e\xbc\x23\xea\x2e\x11\x71\x73\ \xe8\x42\x19\xd6\x1e\x5d\x86\xa3\x75\x9f\xb7\x7d\xb0\xd4\x59\x56\ \x22\x5a\x06\xc0\xdc\xef\x20\xc8\x4b\xc4\xd3\x96\x3e\x59\x6a\xaa\ \x83\xf0\xa5\xf8\x7f\x9f\xe2\xeb\x37\x0d\x30\xcd\xe5\xff\x54\x61\ \xfe\x69\x8a\xaf\x1f\xc3\x66\x90\xe0\xe0\x34\x00\x11\xc0\xe0\xad\ \xad\x8e\x86\xf0\x1c\x60\x3c\x27\xa8\xf9\x5b\xd3\x01\x87\x85\x41\ \x1d\xba\x2a\x7c\x6b\x4e\xb1\x2f\xbb\xc0\xfe\x2c\x05\x7b\xf9\x85\ \xac\x71\xd0\x02\x83\x69\x41\xb0\xa7\x87\xe9\x8f\xbf\xa8\x40\xc9\ \x8e\xd6\x56\x89\x88\x0a\xc1\x1c\x75\xcf\x33\x00\x50\xda\xb1\xbe\ \x16\x7e\x7f\xd6\x9f\x03\xc6\x3a\x84\x64\x35\x02\x48\x21\xe6\x77\ \x00\x03\xc8\xb0\xb0\x02\x6e\x4a\xa0\x6c\x4a\x85\x21\x98\xb6\xa4\ \x30\x88\xd6\x29\xcc\xff\x1e\xe3\x34\x86\x95\xcd\x01\x77\xc5\x9c\ \x15\xc6\xbc\x4f\xec\x0b\x14\x81\x7f\x20\x7c\xfd\x67\x30\x83\x3f\ \x82\x61\xc1\xb9\x46\x2f\x2b\x00\x31\x38\x58\x63\xc1\x00\x13\x77\ \x3a\xc1\xc2\x20\x14\x2a\xad\xec\xe5\x44\x64\xae\xcf\x0b\x95\x97\ \x5d\xae\x65\x17\xd8\xb7\x11\x10\x75\x3f\x37\xc1\xe6\xd6\x5b\xc4\ \xbc\x2d\x32\x9b\xb2\x05\xc7\x7f\x4a\xd0\x74\xfe\xe8\xcf\x75\x3a\ \xc0\xef\x09\x45\x01\x32\xc0\x3a\x40\x20\x6e\xe9\x6b\x40\x1c\xb5\ \xa3\x49\x9b\xd4\x01\xa9\x7f\xb2\x35\x7a\x67\xc0\xfc\x61\x27\x47\ \xb0\x92\x63\x85\xc6\x20\x1b\x31\x01\xc4\x0c\x0e\x9e\xb6\x04\x00\ \x14\x0b\x79\x62\x54\x60\x3a\x7b\xcc\x54\x64\x24\xa2\x60\x87\x92\ \x27\x9f\x19\x82\xbb\x27\xf6\xc7\xe0\xa1\xc1\x75\xa7\xaa\x73\x4e\ \x4c\xff\xd7\xe7\x71\xef\xcf\xee\xc3\x9b\xab\xdf\x88\x7b\x1b\xae\ \x2a\xe7\x71\x2c\xde\x36\x17\xef\x14\xff\x44\x06\xb5\xc4\xd3\x98\ \xf0\x21\x59\xe8\xae\x25\xd3\xcb\xb6\x47\x3b\xe0\xcf\x53\xf6\x7a\ \xea\x03\x23\x1f\x60\xa2\x57\x10\xb1\x4d\x4d\x13\x53\x5c\x22\x8a\ \xb2\x8a\xd5\x6e\xbc\xcc\x97\xe2\xbb\xe7\x4a\xb2\xc8\xf2\x67\x94\ \x16\x1a\x64\x19\x0f\xa0\xed\xcc\x23\x42\x91\x30\xe8\xae\xf7\x67\ \xee\xda\x1a\xed\xc7\xf5\xaa\x7b\x27\xa2\x6f\xa9\x03\x00\x9a\x2d\ \x49\x69\xf7\xd5\x24\x00\xe4\xcd\x28\xde\x6f\xb1\xda\xc6\x20\xfa\ \xce\xe5\xc1\x11\x45\x12\xe6\xdb\x62\x75\xfb\x6f\xba\x83\xe2\xf7\ \x66\x95\x46\x4d\xd3\x5d\xfa\x64\xe9\x67\xc2\xa0\x31\xcc\xd1\x5a\ \x55\x45\x3f\x3f\x8b\x28\x19\x39\x1d\xb4\xf4\xc9\xd2\x93\x60\xc4\ \xdc\x99\x98\x15\xa3\xcd\x0f\x08\xc4\x14\x6b\xcc\xde\xc6\x80\xc7\ \x34\xd5\xc3\x86\x88\xfa\xbf\x0c\x00\xcc\x51\x1b\x34\xc7\xd5\x95\ \x3c\xd7\x8c\x2b\x7b\xac\x97\x3d\xb4\xc5\x3f\xfc\x8b\xb2\xc9\x0c\ \x7a\x11\x51\xb6\x0b\x8a\x7e\xae\xe0\x6d\x7c\xde\xd8\x8b\x28\x49\ \x2d\x04\xfe\x73\x8f\xbc\x62\x0b\x95\x92\xaa\xe0\xb6\x3b\xd3\x70\ \xdb\x9d\x69\x70\xbb\x0c\x7c\x79\xcc\x8f\xd3\xc7\xfd\xa8\x3c\x74\ \x16\x95\x87\xf2\xf0\xc6\x87\xf9\x18\x7d\xdb\x08\x7c\xfb\xa1\x19\ \xf8\xd1\xb7\xb2\x91\xde\x2f\x66\x71\x7c\xbb\x08\xd6\x71\xaa\xe1\ \x60\x9c\x46\x2f\x45\x12\x8c\x1a\x02\x4c\x2f\x76\x02\x58\x00\x97\ \x88\xf8\x2c\x01\x67\x18\x74\x46\xe8\xb4\x39\xb2\x19\x71\x34\x4d\ \x57\x34\x8b\xe7\xaf\x1a\xff\x09\x5b\x68\x26\x33\x65\x22\xb8\xf1\ \xe2\xad\x00\x02\x04\x1c\x63\xb0\x03\xa4\x38\x58\xc0\xc1\x64\x5a\ \x9f\x8a\x1c\xcc\x09\x00\x2e\x30\x32\x00\x54\x13\x68\xaf\x20\x7c\ \xa1\x18\x5c\xb6\x64\x56\xd9\xae\xe8\xbf\xc4\xc7\x01\x2a\x35\xdf\ \x16\xee\x83\xe9\xc5\xc7\x16\xac\x9c\x3c\x41\xb7\x79\xa7\x83\xe8\ \xee\xa6\xc4\x8a\x71\x08\xa6\x42\xee\x65\x46\x05\x11\xf6\xd4\xab\ \x23\x97\xb7\xd6\x00\x77\xc5\x9c\xca\x40\x76\x81\xfd\x23\x02\xb2\ \x00\xbe\x09\xe1\xfd\x21\x8b\xde\x9d\x5a\xe2\x8c\xf5\xbb\xb1\x34\ \xa5\xd7\x7f\xef\x85\x35\x59\x1f\x43\x60\x92\x00\xdd\x4e\x84\x4c\ \x00\xb7\x00\xa8\x03\xe1\x18\x98\x1d\x4c\x8a\x43\x61\x38\x0c\x81\ \xe8\x9d\x04\x18\x1f\x80\xcc\x4d\x73\x05\xd1\x7f\xb7\x76\xfe\xa5\ \xb3\x4b\xce\x12\xe8\xd1\xec\x35\x59\xdf\x26\xe6\x2c\x06\x65\x82\ \x90\x09\xc6\x48\x00\xe7\x19\xec\x50\xa0\x38\x98\xd8\x01\x01\x07\ \x59\x45\x11\x00\x08\xa1\xa9\xb0\x58\x4c\xff\x53\xaa\xc7\xda\xae\ \xcc\x42\x56\x68\x19\x31\xcf\x40\xb0\xa0\x38\x34\x71\xe4\x64\xde\ \xb4\xf2\x68\xbd\x0d\xc3\x58\x14\x63\x9d\xc1\xca\x77\x4c\xf7\x0b\ \x54\x44\xcb\x6e\xcc\x9b\x5d\x5e\x9d\x53\x60\x5f\x8d\xc8\x54\x78\ \x40\xf8\xd3\xfc\xe6\xa9\xcb\xa0\x83\x40\x44\x39\x07\x2b\xa6\x0f\ \x10\xc2\x0a\x27\x0c\xd3\xeb\xcb\x14\x50\xda\x7a\xae\x09\x70\x30\ \xc3\x01\x62\x07\xb3\xe2\x30\x94\xa4\xd0\xff\x7b\xd3\x63\xad\x58\ \x95\x98\x45\xb2\x4d\xcb\x07\xff\x35\x6f\xd5\xbd\xff\x54\x14\x31\ \x9b\x80\x4c\x66\xce\x04\xd1\x6d\x00\x74\x30\x1f\x03\x29\x0e\x66\ \x38\x48\xe1\x63\x2c\x78\x2f\x10\xbc\x1a\x5e\x50\x90\xf5\xa8\x0e\ \x7a\x01\xc0\x0f\x40\x38\x09\xe0\x83\xeb\x07\xa4\xfd\x85\xd2\x1f\ \x1b\xd1\xa1\x4d\x93\xe7\x3c\x97\x61\xda\xe9\xba\x3b\x5a\xf7\xf7\ \x8b\x61\xbd\x26\x01\xe0\x5b\xf7\xdf\x85\xd5\xaf\x76\xbe\x91\xf0\ \x4b\x85\x4f\x74\xa8\xf7\x63\x5f\x72\xe8\x0b\xef\xd8\xed\xb9\xfb\ \x4d\x35\x3d\xdd\x11\x81\xa8\xb5\x76\x52\x00\x90\xb3\xc6\xbe\x35\ \xb2\xf7\x22\xc0\x2f\xe7\xcd\x28\x8b\x35\x9d\xd6\xad\xcc\xdd\x3a\ \xb9\x9f\xad\xd1\x7b\x10\x21\x6f\xc8\x04\xfc\x60\xc9\x8c\xd2\x3f\ \xc7\xeb\x1c\xed\x79\x1c\xbb\xd2\xd5\x38\x3f\x81\x28\xbb\x20\xab\ \x08\x21\x8d\x88\x19\x94\x9b\x3f\xa3\xe4\xf5\xae\x3c\x6f\x77\x73\ \x35\x9f\xeb\xce\x9c\xab\xc7\x4e\x45\xb6\x25\x63\xb8\x79\x4f\xb3\ \xbd\x87\x8f\x46\x39\xb2\xe3\x46\x67\xb4\xd6\xf8\x5d\xea\x29\x12\ \xf9\x66\xdc\x15\xe6\xae\x1e\x37\x30\xd8\xc8\x36\x28\x67\xf5\x3d\ \x5f\xb5\x35\x7a\xff\x80\xf0\xab\x8c\x3a\x9b\xed\xd2\xf2\x78\x9e\ \x37\xd1\x8f\x63\xbc\xcf\xbf\x60\xe5\xe4\xf4\x79\x6b\x26\x64\x34\ \x6f\xf4\x39\xef\xff\x26\xdc\x38\x6f\xb5\xfd\x75\x84\x77\xd7\xd7\ \x92\x92\x44\xac\xde\xd1\xbd\xd6\xd5\x7c\xae\x3b\x73\xae\x1e\x3f\ \x15\x19\x4b\xc6\x0d\x36\x1c\xde\x17\x7e\xf5\x5b\x57\xe7\xc5\xf1\ \x1a\x07\xbe\x9a\x11\x7d\xb3\xd7\xf6\x1a\x9d\x31\x11\x45\xa7\xe5\ \x16\x32\xd1\x18\x01\x25\xbe\xf5\x61\x52\xbb\x25\x2b\xb6\xef\xb0\ \x81\xf7\x73\x0a\xec\x5e\x80\x1b\x40\x96\xe1\x91\xc7\x30\xd1\x4b\ \xef\x4e\x75\xb4\xd9\x1e\xa9\x2f\x33\x92\x3d\xf7\x2b\x4c\xeb\xb2\ \x0b\xb2\xfc\x39\xb0\xd7\x29\x96\x28\x45\xfd\x8c\x37\x9a\xca\x2a\ \xa4\x6e\xa8\xd7\x5e\xb1\x0d\xbd\xde\x66\xda\x1d\x00\x00\xfe\xbe\ \xb3\xf3\x1f\x56\x6f\x1f\x6a\xc7\x80\xe4\xc1\x6d\x1f\xd8\x07\xb1\ \xcd\xe8\x7c\x1f\x31\xa9\xb3\x52\x23\xd6\xd4\x00\x00\x0c\xfc\x21\ \x7f\x7a\x49\xef\xaf\xde\x8f\x9f\x7e\x40\xd4\x4e\x35\x2b\xf3\x67\ \x96\xb5\xab\x46\x51\x4a\x8c\x5e\x1b\xd8\x92\x6c\x84\x6b\x87\x98\ \x3b\x74\x7c\x56\xd1\xf9\x16\x6b\xc9\x96\x14\x3c\x7b\xd7\x2f\x3b\ \x7d\x3f\xbd\x8d\xae\x33\x8a\x73\x2b\xe3\x9b\x86\x2a\xb5\x1b\x0b\ \x9c\x6f\xca\xe0\x0b\xed\xbc\xed\x06\xa1\x88\x88\xa6\xe4\xcf\x28\ \x35\x15\x77\x4b\x66\xcc\x96\x7a\x80\x0e\x23\x3c\xab\xd4\x07\xa0\ \x9c\x88\x9f\xca\x9b\x51\xfa\x74\xa2\xa7\x5f\xa5\xd6\xf5\xda\xa9\ \x48\x00\x18\x76\xa3\x0d\x17\x6b\xc3\x13\x48\xf6\x1f\x69\xb3\x75\ \x5f\xbb\x8c\x1d\x36\x09\xf6\x9b\xa6\xa2\xf4\x4c\xcf\xda\x1f\xae\ \x2b\x05\x54\x6e\x57\x1b\x9c\x9e\xa4\x5e\xf5\x4c\x49\x1b\x32\x24\ \xec\x03\xa0\xe7\xc2\x90\xe8\xdb\xd6\x24\x58\xde\xcc\xd2\xd5\x00\ \x56\x03\xc0\xfc\x55\xf7\x0d\x55\x92\x35\x45\x4e\x97\x75\x5c\xde\ \x8c\x5d\xa5\x40\xb0\x40\xfa\xf9\x95\x13\xaf\x4d\x4a\x41\xca\x92\ \x69\xbb\xce\xc9\x60\xd6\x73\xf4\xda\xac\x48\x00\x70\xd6\xeb\xf8\ \x74\xb9\x39\x7b\xf1\xc3\x7f\x5b\x8c\xa7\x27\x3e\xd3\xe9\xfb\xf7\ \x6a\x2e\x2c\xdf\xff\x16\x4a\xcf\xae\x07\xc7\xb9\xf5\x60\x4f\xd4\ \x78\x49\xf7\xfc\xef\xdc\x3d\xed\xde\x93\x49\x92\x24\xa9\x2b\xf4\ \xea\x2b\xb6\x01\x83\xac\xb8\x6e\x58\x12\xea\xce\x87\x7f\xc0\x5e\ \xfa\xcf\x65\x71\x09\x6c\xa9\x49\xfd\x31\xf7\xee\x5c\x4c\x19\xf5\ \x2c\x76\x57\x6d\x40\x9d\xa7\x1a\xb5\xce\xf3\xf0\xf8\x9d\x48\x4f\ \x49\x47\xbd\x5a\x8d\x46\xb5\xef\x94\x05\x78\xdc\xc6\x99\x44\x8f\ \x41\x92\x24\xa9\x57\x07\x36\x00\x18\x75\x5b\x2a\xea\xce\x87\x6f\ \xd5\x52\xbe\xdf\x81\x3a\xd7\x05\x5c\xd7\x7f\x48\x8c\xdf\xea\x98\ \x1b\x06\x7c\x15\x37\x0c\x30\x77\xc0\xf9\x9f\x8a\x45\x28\xfe\xb2\ \x7b\xec\x3c\x70\x35\xf8\xbd\x46\x71\xdb\x47\x49\x92\x24\x75\xad\ \x5e\x9b\x3c\xd2\x6c\xc4\xa8\x7e\x48\x4a\x0a\x9f\x3a\xd5\x35\xc6\ \xbb\x9f\x98\x9a\xa9\x4b\x9d\xe4\xf7\x73\x87\x9a\xa0\x4a\x92\x24\ \x75\x85\x5e\x1f\xd8\xac\x56\xc2\xa8\xdb\x53\x4d\xb7\xff\xa5\xb0\ \x00\x86\xe8\x75\xb9\x0e\x09\xe3\xf7\x19\xa2\x08\x07\x36\x24\x7a\ \x1c\x92\x24\x49\xbd\x3e\xb0\x01\xc0\xe8\x6f\xa4\xa3\x5f\x6a\xf8\ \x9f\x5a\x5b\xeb\xc1\x2b\x1f\xc7\x6c\x7e\x2e\x75\x50\x5d\x8d\xb6\ \x9b\xe3\xbd\x79\xa7\x24\x49\xd2\x15\xe8\x13\x81\x2d\xc9\x46\x18\ \x37\xc1\xdc\xfc\xf8\xc3\xd5\xab\x70\xf6\xe2\xe9\x04\x8c\xa8\xf7\ \x71\xbb\x02\xbf\x4a\xf4\x18\x24\x49\x92\x80\x3e\x12\xd8\x00\xe0\ \x2b\x5f\x4f\xc1\x90\x61\xe1\xfd\x23\x55\xbf\x81\x79\xbf\xcf\x49\ \xd0\x88\x7a\x8f\x4b\x17\xb4\xc6\x6d\xaf\x1d\x92\xd3\x90\x92\x24\ \x75\x0b\x7d\x26\xb0\x01\xc0\xfd\x8f\x0c\x44\x7a\x7f\x4b\xd8\x6d\ \x45\xbb\x0f\xe1\xe5\x8f\x5f\x4c\xd0\x88\x7a\x87\x0b\xb5\xda\x7f\ \x24\x7a\x0c\x92\x24\x49\xcd\xfa\x54\x60\x4b\x49\x53\xf0\xcd\x27\ \xaf\x45\x4a\x5a\xf8\x9f\xfd\xc7\xbf\xad\xc0\xe2\x7f\x2c\x4a\xd0\ \xa8\x7a\xb6\x0b\x35\x81\x9a\xad\xaf\xec\x5f\x9c\xe8\x71\x48\x92\ \x24\x35\xeb\x53\x81\x0d\x00\xd2\x07\x58\xf0\xcd\x69\xd7\x22\x7d\ \xc0\xe5\x2b\x37\x66\x60\xf1\x47\x1f\xe0\x3f\x57\xfd\x26\x81\x23\ \xeb\x79\x84\x00\x2e\xd6\xfa\xbf\x9f\xe8\x71\x48\x92\x24\x85\xea\ \x73\x81\x0d\x00\xae\x19\x64\xc5\xe3\x4f\x5f\x87\xcc\xb1\x69\x2d\ \x3b\x00\xb0\x00\x16\xe5\x2f\xc5\xe4\x57\x1e\xc4\xf1\xda\xf8\xec\ \xdb\xd6\xdb\x9d\x3d\xee\xdb\x20\xd7\xd6\x24\x49\xea\x6e\xfa\x64\ \x60\x03\x82\xf5\x6d\xe3\xee\xed\x8f\xe9\xdf\x1b\x82\x3b\xee\xbe\ \x5c\x0e\x50\x5e\x71\x0a\xf7\x3c\x3f\x05\x8f\xbc\xf6\x30\x96\x6d\ \xfe\x10\xaa\xd6\xae\xdd\xe3\x4d\x02\x86\x1f\x7e\x3d\xe6\x6e\xe8\ \x3d\x5e\xed\xb9\xc0\xb9\xf5\x9e\xfd\x53\x13\x3d\x0e\x49\x92\xa4\ \x48\xbd\xba\x09\x72\x47\x79\x3d\x06\xdc\x4e\x03\xee\x46\x03\x2e\ \xa7\x01\xb7\x53\x87\xae\x2a\xb8\xe5\xe6\xa1\x18\x79\xfd\x0d\xb8\ \x79\xe8\xcd\x18\x75\xfd\x28\xdc\x3a\xfc\x76\xa4\x25\xf7\x87\x57\ \x73\xc2\x1b\x70\xc1\xa3\x39\xe1\x0e\x34\xe0\x82\xa7\x0a\x17\x3c\ \x55\xa8\xf3\x56\xa1\xd1\xdf\x7b\x7b\x44\xba\x1a\x75\xb5\xf6\x48\ \xfd\xc8\x4d\xbf\x3d\x51\x93\xe8\xb1\x48\x92\x24\x45\x92\x81\x4d\ \xea\x90\xc6\x7a\xdd\x73\xc6\xa1\x4f\xd8\xf9\xdb\xbd\x95\x89\x1e\ \x8b\x24\x49\x52\x34\xbd\xbe\x09\xb2\x14\x3f\x17\x6a\x02\x35\x35\ \x0e\xd7\x9d\x3b\xdf\x3c\x56\x9b\xe8\xb1\x48\x92\x24\xc5\x22\x03\ \x9b\xd4\xa6\x40\x40\x70\xd5\xe9\xc0\xaa\x73\x1e\xe3\xbb\x95\x6f\ \x1e\xbb\xb2\x45\x47\x49\x92\xa4\xab\x44\x06\x36\x29\x26\x4d\x63\ \xae\xad\x56\x2b\x5d\xb5\xda\x53\xdb\x16\x1d\x74\x24\x7a\x3c\x92\ \x24\x49\xed\x21\x03\x9b\xd4\x22\x10\x10\xec\x71\x09\x97\xd7\xa5\ \x3b\x3c\x1e\xf1\x37\xd7\xe9\xe4\xf7\xcb\xf3\xf6\x7a\x13\x3d\x2e\ \x49\x92\xa4\x8e\x90\x81\xad\x0f\xd2\x34\xc1\x6e\xa7\x70\xfb\x3d\ \xc6\x39\xd5\x2f\x0e\x05\x54\x51\xa2\x06\x78\x43\xf1\xeb\x07\x2a\ \x12\x3d\x36\x49\x92\xa4\xce\x92\x81\xad\x17\xd3\x34\x66\x8f\xd3\ \xf0\x78\xbd\xc6\x39\xd5\x27\x0e\xeb\x01\x2e\x55\x55\xde\xb8\xf3\ \xf5\xca\xdd\x89\x1e\x9b\x24\x49\x52\x57\x91\x81\xad\x17\xd0\x75\ \x66\x8f\xd3\xf0\x7a\xbd\xa2\x5a\xf5\x8b\xc3\xaa\xca\x65\xba\x46\ \x1b\x8b\x72\xf7\x96\x24\x7a\x6c\x92\x24\x49\x57\x9b\x0c\x6c\x3d\ \x88\xae\x33\x3c\x4e\xc3\xeb\xf3\x8a\x6a\xbf\x4f\x1c\xd1\x03\x62\ \xb7\xd0\x78\xd3\x56\x1c\x28\x96\x9b\x7c\x4a\x92\x24\x05\xc9\xc0\ \xd6\x0d\x19\x3a\xc3\xed\x32\x7c\x3e\x8f\x71\x5e\xf5\xf3\x51\x2d\ \xc0\xbb\x35\x1d\x9b\x76\x88\xfd\x3b\x64\x00\x93\x24\x49\x6a\x9d\ \x0c\x6c\x09\x24\x8c\xe6\x00\x26\x6a\xfc\x3e\xc3\x11\x50\xb9\x5c\ \x57\xc5\x66\x8b\x72\x70\xdb\x96\x5c\xd6\x13\x3d\x3e\x49\x92\xa4\ \x9e\x48\x06\xb6\xab\x40\x08\x86\xc7\x29\xfc\x5e\xb7\x51\xab\xaa\ \xc2\x11\x08\x70\xb9\xae\x6b\x9f\x5d\x34\x2c\x5b\x2b\x73\x2b\x65\ \xc1\xb3\x24\x49\x52\x1c\xc9\xc0\x16\x47\x42\x00\x6e\xa7\xae\xfa\ \xbc\x5c\xeb\xf7\x19\xc7\x34\x55\xec\xd1\x03\xb4\x45\x81\xeb\xb3\ \x2d\xb9\x27\xfd\x89\x1e\x9f\x24\x49\x52\x5f\x60\x05\x10\x00\x60\ \x4b\xf4\x40\x7a\x12\x16\x80\xdb\xa5\xab\x3e\xaf\xb8\xe0\xf7\x8a\ \xe3\x81\x00\x7f\x1e\x08\x88\x2d\xbe\xaa\x7e\x9b\xcb\xf3\xf6\xc8\ \x82\x66\x49\x92\xa4\x04\xb2\xb2\xc0\x34\x28\x58\x45\x40\x5a\xa2\ \x07\xd3\xdd\x30\x03\x1e\x97\x11\xf0\xba\x8d\x3a\xbf\x5f\x1c\x0f\ \x04\xc4\xe7\x9a\xdf\xd8\x7a\x09\xca\xa6\xca\xdc\x4a\x77\xa2\xc7\ \x27\x49\x92\x24\x99\x59\xdd\x85\xa7\x37\x5e\xf3\xf8\x57\x1e\x16\ \x2c\xd6\x02\x18\x94\xe8\x01\x25\x02\x33\xe0\x75\x19\x9a\xd7\x23\ \xea\xfc\x3e\x71\x42\x55\xf5\x0a\x4d\xc5\xb6\x00\xd4\x0d\x25\xb9\ \x0e\x67\xa2\xc7\x27\x49\x92\x24\xb5\x9f\x15\x00\x1a\xd7\x9e\x2c\ \xe9\xff\xe8\x88\x49\x50\x68\x03\x80\xeb\x13\x3c\xa6\x2e\xc3\x0c\ \x78\xdd\x86\xe6\x75\x8b\x8b\x3e\xbf\x71\x32\xa0\x8a\x2f\x74\x15\ \xdb\x9c\xf5\xd6\xc2\x8a\xb7\x2b\x1a\x12\x3d\x3e\x49\x92\x24\xa9\ \xf3\x5a\x92\x47\x5c\x85\x5f\x56\x0e\x9c\x36\xf2\x7e\xc3\xc0\x46\ \x00\xb7\x24\x70\x4c\x71\xe1\x71\x1b\xba\xd7\x63\x5c\xf4\xfb\xc4\ \xc9\x80\x9f\xf7\x6a\x01\xb1\x5d\x13\x58\x5f\x9c\x5b\x79\x29\xd1\ \x63\x93\x24\x49\x92\xba\x4e\x58\x56\x64\xc3\xa7\xa7\x4f\xa4\x3d\ \x76\xf3\xfd\x8a\xc2\x1b\xc0\x18\x9d\xa8\x41\x75\x84\xd7\x23\x74\ \xaf\x5b\xaf\xf7\x7b\xf9\xa4\x1a\x30\xf6\xa9\x1a\xb6\x8b\x06\x5f\ \xa1\xdc\x0c\x53\x92\x24\xa9\x6f\x32\xa5\xfb\x7b\xd6\x9f\xaa\x1e\ \x38\x6d\xe4\x24\xc3\xe0\xb5\x00\x4d\x48\xc4\xa0\xa2\xf1\x79\x84\ \xe1\x71\x1b\xf5\x7e\x9f\x71\x2a\xe0\x17\xfb\x34\x55\x14\x59\x55\ \xdf\xda\x4d\xbf\x3d\x51\x93\xe8\xb1\x49\x92\x24\x49\xdd\x47\xd4\ \x3a\xb6\x86\x4f\x4f\xd7\x0f\x7b\x74\xd8\xc3\x1e\x4b\xf2\x2a\x30\ \x1e\xb9\x9a\x03\xf2\x79\x85\xe1\x71\x19\x0d\xaa\x4f\x9c\x0e\xf8\ \xc4\x7e\x4d\x13\x45\x8a\x6a\x5d\xb7\xf9\x37\x5f\x54\x5d\xcd\x71\ \x48\x92\x24\x49\x3d\x53\xcc\x02\xed\xf3\x85\xe7\x3d\xf4\xf4\xe8\ \x69\xe9\x6e\xd7\x5f\xc1\x78\x2a\xde\x27\xf6\xfb\x0c\xe1\x75\x8b\ \x06\x9f\x57\x9c\x09\xa8\x62\xbf\x16\xe0\x9d\x01\x18\xeb\x76\xbe\ \x7a\xf0\x74\xbc\xcf\x25\x49\x92\x24\xf5\x1d\xc4\xcc\xad\x1f\xf0\ \x34\x59\xd2\x5c\x37\xe5\x11\xe8\x47\x00\x30\xe7\xb9\x0c\x24\xd9\ \xa8\xdd\x27\x50\xfd\x42\x78\x5c\x46\xa3\xdf\x6b\x9c\x51\xfd\x7c\ \x40\x0b\x88\x9d\x01\x95\xd6\xef\x5c\xb4\xff\x78\xe7\x86\x2e\x49\ \x92\x24\x49\x66\x6d\xb6\xd4\xe2\x15\x6c\x00\x78\x7e\xc0\xd4\x11\ \xf5\x0c\xfa\x45\xac\xe3\x02\x7e\x21\xdc\x6e\xc3\xe9\xf7\x88\xb3\ \x7e\xd5\x38\xa0\x05\x50\x6c\xe8\xfa\xfa\x1d\xb9\x87\x8e\xc6\x75\ \xc4\x92\x24\x49\x92\xd4\x8a\x76\xf7\x8a\x74\xae\xfb\xf2\xc5\x01\ \x8f\x8d\xa8\x0f\xa8\xfc\xba\xdb\x69\xb8\xbd\x5e\xa3\x2a\xe0\x17\ \x07\x02\x2a\x76\x09\x43\x14\x6e\xcf\xad\x3c\xd8\x95\x03\x95\x24\ \x49\x92\xa4\xf6\xf8\x7f\x5e\xef\x4b\xab\x90\x53\xcc\xdc\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x50\xc3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x03\x20\x00\x00\x02\x58\x08\x03\x00\x00\x00\xad\xa8\x72\x42\ \x00\x00\x01\x6b\x50\x4c\x54\x45\x41\x41\x41\x23\x23\x23\x6b\x6b\ \x6b\x35\x35\x35\x57\x57\x57\x36\x36\x36\x62\x62\x62\x15\x15\x15\ \x54\x54\x54\x59\x59\x59\x58\x58\x58\x55\x55\x55\x56\x56\x56\x5a\ \x5a\x5a\x67\x67\x67\x5b\x5b\x5b\x37\x37\x37\x5c\x5c\x5c\x5d\x5d\ \x5d\x5e\x5e\x5e\x38\x38\x38\x5f\x5f\x5f\x60\x60\x60\x39\x39\x39\ \x61\x61\x61\x64\x64\x64\x63\x63\x63\x27\x27\x27\x65\x65\x65\x66\ \x66\x66\x68\x68\x68\x33\x33\x33\x69\x69\x69\x6a\x6a\x6a\x34\x34\ \x34\x30\x30\x30\x2d\x2d\x2d\x32\x32\x32\x2b\x2b\x2b\x25\x25\x25\ \x2e\x2e\x2e\x31\x31\x31\x24\x24\x24\x2f\x2f\x2f\x2c\x2c\x2c\x2a\ \x2a\x2a\x29\x29\x29\x26\x26\x26\x28\x28\x28\x1a\x1a\x1a\x22\x22\ \x22\x21\x21\x21\x1d\x1d\x1d\x20\x20\x20\x1b\x1b\x1b\x1e\x1e\x1e\ \x1f\x1f\x1f\x77\x77\x77\x1c\x1c\x1c\x11\x11\x11\x6f\x6f\x6f\x17\ \x17\x17\x14\x14\x14\x89\x89\x89\x19\x19\x19\x16\x16\x16\x18\x18\ \x18\x12\x12\x12\x6d\x6d\x6d\x6e\x6e\x6e\x6c\x6c\x6c\x70\x70\x70\ \x71\x71\x71\x72\x72\x72\x74\x74\x74\x13\x13\x13\x75\x75\x75\x73\ \x73\x73\x76\x76\x76\x81\x81\x81\x88\x88\x88\x85\x85\x85\x79\x79\ \x79\x86\x86\x86\x83\x83\x83\x82\x82\x82\x84\x84\x84\x87\x87\x87\ \x7d\x7d\x7d\x80\x80\x80\x7f\x7f\x7f\x7e\x7e\x7e\x7c\x7c\x7c\x7b\ \x7b\x7b\x7a\x7a\x7a\x78\x78\x78\x4d\x4d\x4d\x4f\x4f\x4f\x4e\x4e\ \x4e\x44\x44\x44\x45\x45\x45\x4c\x4c\x4c\x50\x50\x50\x47\x47\x47\ \x4a\x4a\x4a\x43\x43\x43\x3c\x3c\x3c\x4b\x4b\x4b\x48\x48\x48\x46\ \x46\x46\x51\x51\x51\x52\x52\x52\x42\x42\x42\x49\x49\x49\x3e\x3e\ \x3e\x40\x40\x40\x3d\x3d\x3d\x53\x53\x53\x3b\x3b\x3b\x3a\x3a\x3a\ \x3f\x3f\x3f\x8f\x60\xec\x98\x00\x00\x4f\x13\x49\x44\x41\x54\x78\ \x5e\xec\x99\x37\x8e\xc5\x30\x10\x43\xe7\xa8\xa3\xe8\x18\x7e\xd8\ \x74\xfc\xa5\x82\x05\xa9\x5a\xbb\x5b\x01\xc3\xe2\xd5\x76\xf1\x40\ \x0e\x44\x0b\x2d\x08\x8d\xc8\xbb\x6b\xa4\xff\x58\x9c\x73\x0f\xe7\ \x98\x27\xd6\x5a\x1b\xad\x94\xb2\x1e\xd9\x76\x64\x38\x90\x88\xf5\ \x13\xf9\x13\x02\x01\xd1\x52\x0c\x78\x22\x11\x3f\x7d\xe1\xfd\x6c\ \x25\x71\xc8\x83\x99\xf5\x04\x47\x94\x55\xc1\x0f\xef\xf7\x1d\x92\ \x9c\x7e\x1c\x87\x18\x70\x05\x02\x1a\x91\xca\x8a\x15\xe9\x0c\xc5\ \x94\x4a\x12\x94\x88\xcb\x25\xa2\x94\xf2\xa5\x44\x8e\x52\x22\x62\ \xc0\x15\x08\x68\x4c\x6a\x54\x06\xbc\x06\xa4\x13\x84\xcf\xcd\xa6\ \x54\x92\x84\xd9\x18\x96\x16\xb3\x36\x55\x89\xdc\x1e\x59\x02\x01\ \xe5\xd6\x78\xad\x8d\x01\x1f\x1b\xf2\xcf\xd1\x98\x92\xed\x0e\x92\ \x84\xb9\x95\x97\x56\x29\x11\x1f\x4b\xa4\x19\x59\x62\xc0\x05\x08\ \x28\xb4\x46\xb2\x22\x1a\xd0\x29\x92\x29\xa5\x49\xd0\x22\x4d\x89\ \x54\x97\xfa\x9d\x23\x44\x20\xa0\xba\x30\xac\xb5\xb3\xed\x10\xd9\ \x94\xd2\x24\xe1\x70\x1f\xc7\xb3\x44\x34\x62\xca\xc8\xba\x73\x84\ \x08\x04\x34\x54\x6a\x18\x33\x1b\xe4\xab\x2f\xcc\x26\x99\x72\x4a\ \x92\x0f\xf7\xb3\x44\x98\xab\x4b\x1d\x23\xeb\xc6\x11\x22\x10\xd0\ \xb6\xc5\x0e\xc8\x06\x4c\xc8\x77\x5f\x38\x4d\x29\x92\x0c\x51\x92\ \x5c\x22\xe9\x4d\xa4\x19\x59\xd7\x8f\x10\x81\xe0\x97\x3d\x7b\x59\ \x69\x18\x88\xe2\x38\x3c\xc4\x2c\x8a\x0d\xe2\x22\x10\x0a\x55\x54\ \x70\x21\x3e\x41\x21\xcb\x5c\x4b\x2f\xb9\xa8\x99\x99\x4c\xa6\xb5\ \x56\xab\xb5\x6a\x93\xc6\x26\x8f\xef\x7f\x5c\xf8\x00\x2e\x5c\xf9\ \x2d\x7e\x6f\x70\x18\xce\x19\x12\x45\xd3\x28\xfa\x4d\x58\x94\x65\ \x19\xcf\xd2\x34\xcd\xd3\x38\x8e\xe9\x1d\x88\x1b\x90\xb7\x90\x4c\ \x41\x85\xcd\x18\x63\x7c\xc0\x39\xcf\x27\x79\x4e\xe9\x88\x52\x21\ \x86\x42\x14\xc5\xb8\x90\x52\x86\x32\x49\x92\x30\x81\x40\xc5\x9f\ \x81\x3d\x00\x77\x02\xde\x08\xb4\x21\x68\x63\x38\x0f\xe1\x0c\x09\ \x4e\x83\xc0\xf7\x8f\x7c\xdf\xb6\x4f\x6c\xd7\x75\xfb\xae\xe3\x38\ \x3d\xc7\xf3\xbc\x9e\x06\x2b\xd3\x34\xad\x6b\xab\x69\xf6\x57\xeb\ \xba\xae\x2f\xab\xaa\x6a\x2f\xda\x76\x47\x0e\x08\x21\xdb\xe3\x17\ \x30\x31\x55\x4b\x6b\x09\xcd\x1b\xec\xb1\x82\xad\xd6\x6a\x8b\xa9\ \x37\xe5\xa6\xac\xd4\x3d\xac\x55\xf7\xb0\x9d\x7a\x85\x08\x86\x6c\ \xbe\x5d\xfc\x1c\x8d\xbf\x3f\x55\x3e\xa0\xfc\xec\x74\x3a\xcf\xdd\ \xae\x61\xbc\x1a\xba\xae\xcf\x0f\x61\xf1\xb7\xf9\xcf\x17\x3b\xe7\ \xd6\xdc\xb4\x11\x86\xe1\x1d\x9f\xc6\xa7\xf8\xa4\x5a\xb1\x45\x2c\ \xcb\x27\x70\xc6\x81\x70\xdb\x19\x5f\x82\x49\x99\x84\xdf\x50\x4a\ \xc1\x34\xa4\x49\x1c\x12\x3b\x3f\xbf\xef\xb7\xaa\xbc\x7c\xb5\x11\ \xc8\x52\x4c\x91\xf7\xbd\x78\xef\x35\xa3\x47\xbb\x8f\x3e\x69\x73\ \x7f\xe4\x90\x2f\x6a\x0f\x79\xcb\xaa\xfc\xa1\x8c\x7c\x59\xd5\x6a\ \xf5\xb2\xba\x5a\x57\xbc\xee\x6a\x35\xf1\x2b\xdd\x8e\xc1\x4a\xdd\ \xc0\x2f\x4e\x91\xc9\x6b\xa4\x73\x86\x78\xf7\xee\x09\xdd\xbb\xaf\ \x70\xef\x8e\xe9\xde\x7d\x49\xf7\x2e\x6e\x5e\x6b\x82\x7b\x37\x93\ \xe8\x74\x3a\x8d\x8e\xe3\x38\xa6\x8d\xd4\x4b\x88\x41\x55\x6b\x21\ \xe5\x03\x64\xaf\x89\xe4\x2c\xcb\xca\xe4\x33\x99\x4c\x23\xd5\x68\ \x34\xcc\xa2\x69\xd6\xeb\x85\x7a\xdd\x30\xb2\x86\x51\xab\xdd\xd5\ \xe4\x25\xe0\x52\x2f\xf7\x90\x0f\x39\xe4\x6d\x1e\xf9\x3d\x85\x64\ \x2a\x00\x64\xb8\xbf\xbf\xbf\xe8\x2d\xe6\xf3\xf3\xc3\xf3\x73\x82\ \x04\x69\xdf\x23\xdd\xcf\x48\xf7\xb3\x10\xc0\xe5\xa7\x2f\x5d\xd7\ \xd7\xe9\x6b\x44\x95\x7c\xfe\xb1\x7a\xf7\x0e\x8f\x43\x56\x64\xae\ \xfb\xff\x29\x12\xd9\x05\xab\xe9\x1c\x7a\x2e\x36\xe4\xe3\x85\xf7\ \x80\x7f\x4d\x0f\xf8\x33\xe2\x83\x9e\xed\x27\x5f\x7f\xb6\x5b\x09\ \x24\xd3\x41\x1a\x0e\x52\xb7\x11\x17\x0d\xaa\x2a\xf0\x38\x20\x3e\ \x9a\xc4\x87\x05\x3e\x32\xc4\x47\x83\xf8\x30\xc1\x47\x9d\xf8\x30\ \x88\x8f\x1a\xf8\x90\x88\xcb\x47\x81\x7c\x46\xe4\x10\x7a\x96\xa4\ \x24\x1f\xef\x13\x95\x4a\x65\x88\x35\x64\x7f\xb4\x00\x20\xbd\x73\ \x64\x70\x7b\x0b\x3e\x6e\x88\x8f\x7b\xc9\xc7\x67\x4d\x40\x1c\x8a\ \xa1\x41\xc5\xd1\xa0\xe2\x68\x50\x29\x2a\x54\x71\x34\xa8\xa6\xe0\ \x03\x11\xc1\x97\x0e\xd4\x1b\xe2\xe3\x74\x02\x3c\x88\x8f\x33\xf0\ \x21\xf7\x3e\x27\xc4\xc7\x2b\xe2\x63\x0c\x3e\x5e\x22\x07\x2f\x90\ \xe6\x04\xc9\x24\x90\x46\x07\x31\x81\x87\x4d\x7c\x94\x96\x7c\xb4\ \xaa\xc0\x83\xf8\x68\x12\x1f\x16\xf8\xc8\x10\x1f\x0d\xe2\xc3\x04\ \x1f\x75\xa4\x60\x20\x77\x35\x44\xae\x7e\x97\xc0\x63\x8f\xf8\xc8\ \x11\x1f\xb4\xd6\xa6\xfe\xe5\x23\x95\x48\xa7\xfb\x95\x8a\x5c\x44\ \x16\x8b\x1e\xd6\x10\x2c\x22\x00\x44\xee\xb4\xb0\x88\x10\x1f\x88\ \x26\xe0\xa7\xaf\xeb\x6f\xf3\xc1\xd1\x50\x1b\x6b\x5e\x1c\x0d\xaa\ \x29\xf1\x41\x25\x36\xe0\xe3\x0d\xf1\x71\x0a\x3e\x5e\x13\x1f\x4b\ \x37\x38\x41\xec\x57\x48\x69\x8c\x1c\x10\x1f\x4d\xe2\xc3\x02\x1e\ \x09\xe2\xa3\x43\x7c\x38\xe0\xc3\x26\x3e\x4a\x4b\x3e\x5a\xe0\xe3\ \x80\xf8\x68\x12\x1f\x16\xf8\xc8\x20\xf9\x06\x92\x32\x91\x42\x1d\ \xc9\x02\x8f\x1a\xf1\x41\xbb\x43\x6c\xad\x80\x07\xf1\x91\x23\x3e\ \x68\x2f\x9a\x5a\xf2\x51\x4c\x24\x8f\xd2\xe9\xe5\x22\x32\x9f\xcf\ \xd7\x6e\xb2\x34\x01\x3f\x79\x71\x34\xa8\x18\x1a\x54\x1c\x0d\x2a\ \x45\x85\x2a\x8e\x06\x95\x44\xc3\x2d\x11\x98\x0f\xa6\x1e\x09\x57\ \x3d\x10\x9b\xf8\x28\x11\x1f\x2d\xe0\x01\xf5\x80\x7b\x10\x1f\x13\ \x0b\x78\x10\x1f\x1d\xe2\xc3\x01\x1f\x36\xf1\x51\x5a\xf2\xd1\x02\ \x1f\x07\x48\xb9\x89\xec\x59\x48\x3e\x83\x78\xea\x61\xd6\x89\x0f\ \x4f\x3d\x6a\x9e\x7a\x00\x0f\xf0\x91\x23\x3e\xc8\xd5\x52\x4b\x3e\ \x8a\xc5\x62\xe2\x28\x99\xc6\x22\x42\x26\x22\x4d\xbd\x37\x57\x9b\ \xac\x98\x48\x88\x2e\x8e\x06\x15\x43\x83\x8a\xa3\x41\xa5\xa8\x50\ \xc5\xd1\xa0\x92\x68\x78\x15\x44\xd2\x57\xdf\x2d\x49\xf5\x78\x28\ \x35\x37\x89\x0f\xa6\x1e\x35\x57\x3d\xd6\xab\xf9\x7b\xaa\x4f\xe0\ \xa3\x60\x76\x93\x49\x2c\x22\xd8\x65\x0d\x21\x22\x6c\x93\x05\x40\ \xda\x31\x94\x10\xad\xe6\xe9\x68\xd5\x5c\x95\x08\xa2\x1e\x52\xcd\ \x4f\x99\x9a\xff\x16\x9d\x9a\x5b\x4c\xcd\x4d\x4f\xcd\x0d\x24\x5b\ \xf3\xd4\xfc\xf2\xab\x6a\x8e\x2a\x82\x8f\x42\xe1\x63\xa7\xdb\x4d\ \xd2\x22\x52\xe9\xf3\x4d\x96\x27\x21\xf7\x52\x42\x34\x01\x71\x51\ \x73\x24\x6a\x35\x57\x25\x02\xaa\xf9\xe9\x43\xa9\xb9\x45\x7c\x30\ \xf5\x90\x6a\x9e\x65\x6a\x5e\xf6\x51\xf3\x14\x0d\x23\x0a\xe0\xa3\ \xe0\xb4\xbb\x8f\xb1\x88\xa8\x4d\x96\xf7\x26\xeb\xdb\x12\xa2\x4b\ \xab\x39\xab\x73\x11\x48\xcd\x4f\xa3\x53\xf3\x16\x53\x73\x0b\xc9\ \xb9\xea\x81\x14\x3d\x35\x37\x02\xa8\x39\xf8\x28\x10\x1f\xd9\xac\ \xd3\x7e\x8a\x35\x44\x9a\x3a\xc6\x21\xcb\x4d\x16\x46\x86\x7e\x12\ \xa2\x4b\xab\xf9\x2a\x1f\x53\xf1\x63\xd4\xbc\x85\x54\x99\x7a\x58\ \x52\x3d\x98\x9a\x1b\x01\xd4\x1c\xf9\x58\x40\x66\x59\x00\xf2\xb4\ \xdd\xee\x76\x1f\xb3\x4d\x96\x94\x90\xdb\xb8\x4b\x88\x56\x73\x24\ \xa4\x9a\x73\x3e\xa6\xe2\x47\xa8\x79\xb5\x85\xac\x99\x0a\x86\x52\ \x73\xe2\x23\x3b\xcb\x22\xf5\xc1\xa0\xdd\x66\x9b\x2c\x77\x5c\x18\ \x77\x09\xd1\x6a\x8e\x0a\xad\xe6\x9c\x8f\xa9\xd8\xbe\x9a\xb7\x88\ \x8f\x35\x53\xc1\x90\x6a\x0e\x3c\x88\x0f\x94\x73\x38\x18\x3c\xc5\ \x1a\x22\xdf\x64\x79\xe3\x42\x6f\x9c\xae\x24\x44\x13\x10\x33\x35\ \x47\x85\x56\x73\xce\x07\x22\xb6\xa6\xe6\xfe\x53\xc1\xf0\x6a\x9e\ \xf5\xf8\xc8\x3a\x87\x87\xcf\xda\xed\xb6\xbb\xc9\xf2\xde\xf4\xce\ \x95\x84\xc4\x51\xd2\xb5\x9a\xa3\xa2\x53\x73\x55\xe2\x01\xd5\xdc\ \x61\x6a\xee\x3b\x15\x0c\xaf\xe6\x8a\x0f\x00\xf2\x8c\x6d\xb2\x20\ \x21\x0b\x39\x4e\xe7\x12\xa2\x09\x88\x95\x9a\x57\xa2\x54\x73\x55\ \xe2\xc1\xd4\xdc\x21\x3e\xbe\x39\x15\x8c\x4a\xcd\x91\x65\x39\xcf\ \x0f\xdd\x4d\x96\x1c\x17\xba\xe3\x74\x2e\x21\xbe\x92\xae\x4b\xab\ \xb9\x2a\x11\x99\x9a\x4f\x98\x9a\x3b\x88\xe9\x33\x15\x8c\x5e\xcd\ \x55\x19\xbd\x9e\xdc\x64\x75\xbb\x18\x17\x56\xe4\x26\x8b\x49\x48\ \xdc\x25\x5d\xab\x39\x2a\x84\x9a\xb3\x12\x11\xa9\xf9\x04\xb1\x98\ \x7a\x38\x3e\x53\xc1\xf0\x6a\x5e\x5c\x51\x73\xaf\xee\x2e\x6c\x00\ \xe2\x6e\xb2\x92\x49\xfe\xa6\x97\x49\x88\x26\x20\xa6\x6a\x8e\x0a\ \xa3\xe6\xac\x2e\xc4\x86\x6a\x3e\x66\x6a\x6e\x4d\x10\x36\x15\x74\ \x98\x7a\x44\xad\xe6\xc5\x15\x35\xf7\x8a\xfe\x92\xb4\x47\x3d\xda\ \x64\xd1\xb8\x70\xbd\x84\x74\xef\x63\x2b\xe9\x5a\xcd\x91\x10\x6a\ \xce\x0b\x3f\x98\x8a\x8d\xd4\xbc\xc5\xd4\x7c\x42\x7c\xf8\x4c\x05\ \xc3\xab\x79\x9e\xa9\x79\x91\xf8\x60\xea\xe1\xd5\x1d\xf1\x01\x40\ \x1e\x61\x0d\xf1\xde\xf4\x02\x90\xe1\xae\x48\x88\x56\x73\x54\x08\ \x35\xe7\x75\x01\x3e\x2e\xc4\x06\x6a\x3e\x26\x3e\xd8\x54\x70\xc2\ \xa7\x82\x11\xab\x79\x9e\xa9\xf9\xa7\x22\xc2\xd4\xc3\x2b\xef\x57\ \x7b\xfb\x78\x24\x37\x59\xee\x9b\x5e\x2e\x21\x37\x31\x96\x10\xad\ \xe6\xa8\x68\xd4\x1c\x75\x21\xf9\xb8\x10\x81\xd5\x7c\x4c\x7c\xf8\ \x4d\x05\xa3\x55\x73\xa8\x07\xc2\xa6\x82\xc5\x55\xf5\x40\xd4\x51\ \x14\xc6\x70\x44\x9b\xac\xc1\x80\xc6\xe9\xe9\xb4\x2b\x21\x72\x12\ \xe2\x37\x29\xd4\xa5\xd5\x5c\xd5\x2d\xf1\x41\x25\xbe\x4f\xcd\xd9\ \x54\x70\xec\x37\x15\x8c\x58\xcd\xf3\x5c\xcd\xd7\xab\x07\xca\x45\ \xc3\x2d\x7b\x38\xc4\x26\x0b\x16\xf2\x35\x09\xf1\x9f\x14\xea\xd2\ \x6a\x4e\x68\xb8\x25\xbe\x47\xcd\x83\x7d\xb0\x1b\x5e\xcd\xd9\x54\ \x30\xef\x3f\x15\x94\xc5\x8f\x32\x02\x20\x8f\x46\xee\x9b\xde\xb5\ \x12\xe2\x3f\x29\xd4\xa5\xd5\x5c\xf1\x71\x2b\xd6\xa9\x39\x3f\x87\ \xca\x7f\x2a\x18\xbd\x9a\x07\x9a\x0a\x2a\x35\x57\x65\x0f\x8f\x47\ \xb0\x10\x26\x21\x0b\x26\x21\xf1\x97\x74\xad\xe6\xa8\xcd\xd5\x5c\ \x95\x58\xf2\xb1\xe5\x63\xae\xcc\xf5\xc7\x5c\x95\x83\x4e\x05\x67\ \x0a\x0d\x25\xe9\xc3\xe1\x8a\x84\x78\xff\x84\xec\x84\xa4\x6b\x35\ \x47\x85\x51\x73\x55\x82\x1d\x73\x85\x6c\xe7\x98\x2b\x33\xc0\x31\ \x57\xea\x83\x5d\x5f\x35\x57\x65\xf4\x57\x24\x64\xa7\x26\x85\x5a\ \xcd\x51\xa1\xd4\x5c\xd5\x4c\xac\x3f\xe6\xea\x6c\x3b\xc7\x5c\x65\ \xfd\x8e\xb9\x0a\xa0\xe6\xbc\xec\x7e\x7f\x78\xcc\x25\x64\xb4\xbf\ \x33\x93\x42\xad\xe6\xa8\x50\x6a\xae\x6a\x36\x9b\x89\xff\xc3\x31\ \x57\xd5\x60\x1f\xec\x72\x35\x5f\x2d\x00\x72\x3c\xf4\x24\xc4\xfb\ \xf1\x56\x4a\x08\x9f\x14\x6a\x02\xe2\xa8\xe6\x48\x28\x35\x57\x35\ \x43\x6e\xc4\x1b\xe2\x63\x1b\xc7\x5c\x21\x7e\xc7\x5c\x05\x55\x73\ \x46\x05\x2f\xbb\xff\xc4\x95\x10\xef\x73\x2c\x75\xfa\x0f\x9b\x14\ \x6a\x02\x58\x69\x35\x67\x75\x23\xf9\x98\x89\xed\x1f\x73\x55\x8f\ \xe0\x83\x5d\xdf\x43\xeb\xed\x27\xae\x84\xd0\x37\xef\xee\x3f\x21\ \xde\xe7\x8a\x7c\x52\xa8\x09\x88\xbf\x9a\xa3\x36\x51\x73\xf7\x80\ \x7f\x2a\xb1\x32\x15\x8c\x5e\xcd\xa3\xf8\x97\xd6\x5f\x3d\x78\x19\ \x47\xfd\xbe\x3b\x09\x71\x3f\xc7\xaa\x90\x84\xb8\x93\x42\x00\x32\ \xd8\x19\x49\xd7\x6a\x8e\x6c\xa6\xe6\x4b\x3e\x66\xe2\xa1\x8f\xb9\ \xca\x44\xf5\x2f\x2d\x57\x0f\x9f\x9a\x96\x8e\xa4\x84\xc8\xcf\xb1\ \xba\x52\x42\xd4\xa4\x70\x77\x24\x5d\xab\x39\x6a\x43\x35\x57\x7c\ \xcc\x44\xb4\x6a\x1e\xfd\x31\x57\xfe\x53\xc1\xd5\xba\x9a\x5e\x01\ \x10\x4f\x42\xf8\x8f\xe9\x00\x64\x57\x24\x5d\xab\x39\x6a\x73\x35\ \x57\x25\xa2\x3d\xe6\xaa\x1c\xf0\x98\xab\xf0\x6a\xce\xeb\x0a\x7c\ \x00\x10\x29\x21\xcf\x7b\x87\xab\x93\xc2\xdd\x90\x74\xad\xe6\xa8\ \x30\x6a\xae\x4a\x44\x77\xcc\x15\xe2\xa9\x87\xb5\x76\x2a\xf8\x0f\ \x7b\x77\xb6\xdb\x44\x10\x44\x61\xb8\xc4\x26\x02\x21\x60\x87\xd5\ \xd8\x10\xc0\x24\x2c\x66\x79\x00\x2e\x59\x2f\x78\x87\x01\x32\x43\ \xc3\xe0\x4e\x20\x2c\x79\x7c\x9a\xce\xc4\x47\x62\x1c\x55\xb7\xdc\ \xe3\x2e\x44\x59\xd1\xff\x06\x75\xf1\xa9\xed\x93\x8e\x68\x8e\x34\ \xff\x9f\x73\xed\xc1\xc4\x29\xbd\xf9\x4d\xc8\x5f\x2f\x85\x3c\xd2\ \x35\x4a\x73\xc4\x50\x07\x33\x57\x03\x4f\x8f\x25\xd1\x1c\xd9\xf1\ \xf7\xe1\xd2\x9f\x4c\xfc\x4b\xe1\x9d\x39\x2f\x85\x1c\xd2\x35\x4a\ \x73\xc4\x18\x43\x09\x66\xae\x46\xcc\xcc\xd5\x72\x68\x3e\xbb\x0f\ \x87\xf4\xc9\x9c\x97\xc2\x10\xa4\x6b\x94\xe6\xc8\xbe\x71\x1f\x4a\ \xb3\x40\x8d\x57\xc1\x5c\x34\xc7\x7d\x38\x83\x4c\xf0\x52\xf8\xbf\ \x22\x5d\x69\x8e\x44\xd0\x1c\x31\xfe\x3e\xf6\x29\x9e\xe6\xcc\xab\ \x60\x2e\x9a\x23\x6b\x9b\x5b\xe3\xf1\xc1\x4b\xe1\xcd\x47\xc1\x5f\ \xe7\xd5\x28\xcd\x11\xd3\xdc\x87\xa1\x30\x9a\x6f\x80\xe6\xcc\xab\ \x60\x2e\x9a\xfb\x00\xe9\x63\x20\x3d\xf6\xeb\xbc\x1a\xa5\xf9\xec\ \x3e\x0c\x71\x34\x0f\x9f\xb9\xca\x4c\x73\xa4\xbf\xe9\x0e\xa4\x85\ \xf4\xd0\xdf\xdc\x6a\x94\xe6\xb8\x0f\x43\xf3\x68\x3e\x00\xcd\x99\ \x99\x2b\x41\x34\x47\xd6\x36\xe7\x21\x3d\xf8\x37\xb7\x1a\xa5\x39\ \x42\x9e\xe6\xcc\xcc\xd5\x06\xe8\xd1\xc1\x02\xf5\x6a\x1a\x9a\x23\ \xee\x40\xb6\xc6\x2d\xa4\x07\xff\xe6\x56\xa3\x34\x47\xc8\xd1\x03\ \x34\x5f\xca\xcc\xd5\x0a\x33\x73\x15\x4f\x73\x45\x3a\x13\xa5\xb9\ \x4b\x04\xcd\x91\x9a\xda\x33\x57\x2f\x73\xcf\x5c\xc5\xd3\x5c\x3e\ \xd2\x35\x59\x68\x8e\x44\xd0\x1c\xd9\xab\x6b\xca\x3d\x73\xb5\x0a\ \x7a\x2c\x46\x73\xa4\x27\x0e\xe9\x9a\x2c\x34\x47\x22\x68\x8e\xd4\ \xee\x3e\x6a\x1a\x2d\x67\xe6\xea\x1c\x33\x73\xb5\x28\xcd\x11\x3b\ \x1d\x09\x43\xba\x26\x0b\xcd\x91\x08\x9a\x23\xb5\xbf\x8f\x9a\x96\ \x3b\x73\x75\x26\x64\xe6\x2a\x9e\xe6\x88\xb5\x53\x3b\x12\x85\x74\ \x4d\x16\x9a\x23\x11\x34\x47\x6a\x7f\x1f\x2e\xd4\xc9\xcc\x55\x3f\ \xe1\xcc\x15\x4f\x73\xc4\xfe\xb9\x0f\x3b\x12\x84\x74\xcd\x3f\x49\ \xf3\xd9\x7d\xd4\xd4\xe5\xcc\x95\x65\x5e\x05\x93\xd0\x1c\xb1\x07\ \xf7\x61\x47\x8a\xf4\x56\x94\xe6\x4d\x82\x68\x8e\xfb\xa8\x29\x21\ \xcd\xd3\xcf\x5c\xf1\xf4\x40\xa6\x87\xf7\x61\x15\xe9\xed\x28\xcd\ \x7d\x42\x69\x8e\x50\xba\x99\xab\xf5\xd4\x33\x57\x3c\x3d\x10\x8b\ \xfb\x10\x8b\x74\xdd\x62\xc8\x42\x73\x24\x9c\xe6\x08\xa5\x9a\xb9\ \x5a\x3f\xa4\x47\x2f\x66\xe6\x0a\xe1\xe8\xc1\xd2\xdc\xfa\xc8\x45\ \xba\x6e\x31\x64\xa1\x39\x12\x41\x73\x84\x68\x21\x9a\xb7\x67\xae\ \x7a\x9e\x1e\xa9\x69\xbe\xc3\xd3\x1c\x11\x89\x74\xdd\x62\xc8\x42\ \x73\x24\x82\xe6\x48\x49\x25\x2d\x40\xf3\x4b\x9e\xe6\x19\xbe\xb0\ \xdb\xa6\x39\x22\x1a\xe9\xba\xc5\x20\x9f\xe6\x48\x59\x92\xfb\x8b\ \xa0\x79\x7b\xe6\xea\x6c\x8a\x99\xab\x44\x34\x97\x8f\x74\xdd\x62\ \x90\x4f\x73\xa4\xf4\xf7\x51\x52\x1c\xcd\x33\xcc\x5c\x85\xd1\x5c\ \x91\xce\x44\x69\x8e\xf0\x34\xdf\x2b\xdd\x87\x7c\x78\x9a\xaf\x80\ \xe6\x19\x66\xae\x82\x68\xae\x48\x67\xa2\x34\x47\x42\x68\x8e\xfb\ \x20\x86\xe6\xf9\x67\xae\x78\x9a\xcb\x47\xba\xd2\x1c\xc9\x42\x73\ \x24\x88\xe6\xb8\x8f\x92\x8e\x9c\xb9\x1a\x32\x33\x57\x52\x68\x2e\ \x1f\xe9\x4a\x73\x24\x0b\xcd\x91\x50\x9a\x23\xc4\xcd\x5c\x0d\x98\ \x99\x2b\x29\x34\x47\x2a\xa9\x48\xd7\x2d\x86\x2c\x34\x47\xc2\x69\ \x8e\x50\xc8\xcc\x95\x7c\x9a\x23\x55\xb5\x3d\x14\x8d\x74\xdd\x62\ \x90\x4f\x73\xa4\xa0\xd6\x02\x35\x33\x73\x25\x91\xe6\x48\xe5\xee\ \xa3\x1a\x0a\x46\xba\x6e\x31\xc8\xa7\x39\x52\x14\xbb\xc4\xbd\x0a\ \xca\xa7\x39\x52\xf9\xfb\xa8\x86\x8a\x74\x26\x4a\x73\x73\x24\xcd\ \x91\xc2\xdd\x47\x41\xb2\x67\xae\x78\x7a\x20\xdb\xcd\x7d\x54\x43\ \xf1\x48\xd7\x2d\x86\x2c\x34\x47\x38\x9a\xbb\x14\xfe\x3e\x0a\x92\ \x3c\x73\xc5\xd3\x03\xa9\x66\xf7\x21\x1e\xe9\x3a\x93\x98\x97\xe6\ \x86\xa7\x79\xb9\xdb\xdc\x47\x41\x78\x15\x94\x4d\x73\xcb\xd0\x1c\ \xf7\x21\x1c\xe9\x3a\x93\x98\x97\xe6\x26\x84\xe6\xb3\xfb\x28\x28\ \xf5\xcc\x55\x37\x34\xb7\x3c\xcd\x11\xc9\x48\xd7\x99\xc4\xbc\x34\ \x37\x41\x34\xc7\x7d\xec\x52\x52\x9a\xaf\x76\x43\x73\xcb\xd3\x1c\ \x11\x8f\x74\x9d\x49\x94\x4f\x73\x84\x84\xce\x5c\xc5\xd3\x1c\xe9\ \x1e\xe9\x9a\xdf\xec\xdc\xd9\x6e\x13\x61\x0c\xc5\x71\x4b\x2c\x2a\ \x10\x54\xa0\x6c\x01\x24\xa4\xb6\xec\xeb\x23\xd5\x0e\x5b\x28\x74\ \x67\x79\xfc\xa2\x69\xc8\xb9\xc8\x78\x24\x47\x91\xec\x2f\x3a\x37\ \xff\x27\x18\x5f\xfc\x46\xfa\x4e\xd3\x34\x47\x3c\x9a\x23\xb2\xd2\ \x99\xab\x51\x47\x8f\x14\x9a\x13\xe9\xc1\x90\xe6\xfb\x2e\xcd\x11\ \x93\xa5\x69\x7e\xbd\x7f\x81\xfa\x38\x85\xe6\x44\x7a\x30\xa4\xf9\ \xbe\x4b\x73\xc4\xcc\x64\x39\x9a\x77\xf4\x30\x67\xe6\x2a\x81\xe6\ \xcd\x20\x9d\x34\x47\x12\x68\x8e\xb8\x34\x47\xcc\xcc\xa6\x12\xa5\ \xb9\x62\x81\xda\x99\xb9\x4a\xa0\x79\x2b\x48\x27\xcd\x91\x04\x9a\ \x23\x2e\xcd\x91\x69\x77\x1f\x26\x21\x9a\xfb\x33\x57\xf9\x34\xaf\ \x8f\x74\xd2\x1c\xa9\x49\x73\xc4\x66\xf7\x61\x32\x4c\xf3\xdb\xa0\ \x79\xc2\xcc\x55\x88\xe6\xc8\x66\x49\xa4\x93\xe6\x48\x79\x9a\xcf\ \xef\xc3\xc4\xa1\x79\xee\xcc\x55\x9c\xe6\x88\x4e\xc6\x05\x91\x4e\ \x9a\x23\x25\x68\x8e\xf4\xd0\x1c\xf7\x61\xd2\x3b\x73\xb5\x95\x3a\ \x73\x15\xa7\x39\xa2\x3a\xd1\x31\x91\x3e\x1c\xd2\x1c\xe9\xa7\x39\ \x22\x43\x33\x57\x87\x91\x99\x2b\x24\x46\x8f\x38\xcd\xfd\xa8\xea\ \x44\x75\x5c\x1e\xe9\xa4\x39\x92\x40\x73\xc4\xa3\x39\x22\x1d\xcd\ \xeb\xcc\x5c\xc5\xe9\x81\xe8\xc5\x7d\xe8\xb8\x38\xd2\x49\x73\x24\ \x81\xe6\x88\x4f\x73\x44\x40\x8f\x7b\xd5\xdf\xd2\x0e\xd3\x7c\xf2\ \xff\x3e\xb4\x36\xd2\x49\x73\x24\x93\xe6\x32\x40\x73\x44\xa5\xa5\ \xb7\xb4\x03\x51\xdc\x47\x69\xa4\x93\xe6\x48\x55\x9a\x23\xaa\x2a\ \x0d\xbd\xa5\xf5\xa3\xb8\x8f\xd2\x48\x27\xcd\x91\xaa\x34\x47\xba\ \xaf\x49\x8a\xcf\x5c\xe1\x2d\xad\x1f\x9c\x06\x91\x1e\x0b\x69\xee\ \xdf\xc7\xec\x6b\x92\x8e\x1e\xcd\xd3\x1c\x21\xd2\x83\x21\xcd\xf1\ \xeb\x0a\x99\x7f\x4d\xb2\xb5\x2e\x34\x27\xd2\x03\x21\xcd\x91\x3e\ \x9a\x83\xb4\xb2\x26\x34\x27\xd2\x03\x21\xcd\x91\x7e\x9a\x83\xb4\ \xb2\x16\x34\x27\xd2\x03\x21\xcd\x11\x8f\xe6\x88\xac\x01\xcd\x5b\ \x43\x3a\x69\x8e\x14\xa5\x39\x22\xcd\xd3\x7c\xd5\x48\x27\xcd\x49\ \x73\xe4\x8b\xd4\x9c\xb9\x8a\xd3\x1c\xb1\x9b\x44\x7a\x20\xa4\xb9\ \x7f\x1f\xff\x98\x2b\x29\x34\x3f\x58\x35\xcd\x11\xb3\x69\x1c\xe9\ \x0c\x69\x6e\x0b\x9a\xed\xac\x2b\x09\x34\x3f\x58\x35\xcd\x91\x8e\ \x5a\xed\x20\x9d\x34\x47\x72\x69\x6e\x0b\x9a\x9d\x59\x57\x7c\x9a\ \x8f\x52\x16\xa8\xe3\x34\x47\x66\xd4\x5a\x02\xe9\x4c\x0a\xcd\x91\ \x14\x9a\x23\x0b\x90\x9d\x83\x57\x1c\x9a\x67\xcf\x5c\xc5\x69\xae\ \x73\x6a\x85\x91\xce\xa4\xd0\x1c\xc9\xa5\xb9\x2d\xd2\x1c\xe0\x95\ \xc0\xcc\x55\x69\x9a\x83\x5a\x51\xa4\x33\x29\x34\x47\x0a\xd2\x1c\ \xe0\x15\x6f\xe6\x6a\x04\x7a\x34\x40\x73\x50\x8b\x48\x8f\x26\x85\ \xe6\x48\x49\x9a\x23\x12\x98\xb9\xaa\x4d\x73\x84\x48\x0f\x84\x34\ \xef\xbb\x0f\x44\xb0\x40\xed\xcc\x5c\xb5\x41\x73\x84\x48\x0f\xe4\ \x9c\xbd\x7b\xdb\x8d\xa3\x88\xc2\x28\xbc\x25\x3a\x96\xa1\x1b\x29\ \x17\xc8\x31\xe6\x22\x52\x8e\x1c\x0f\x8f\x94\x04\x1c\x3b\xe1\x14\ \x27\x18\x78\x7c\xe6\xe0\x99\xd5\xa6\x25\xca\xea\xd2\xee\xbf\xaa\ \x66\xcf\xc5\x7a\x83\xba\xf8\x34\xfa\x77\x17\x42\x73\x22\xa1\x39\ \x99\xa8\xf7\x77\x4b\x6c\x69\xeb\xa0\x39\xa9\x0f\xe9\x41\x73\x22\ \xa1\x39\x99\xa8\x77\x45\x00\x4b\x6c\x69\xe5\x34\x7f\x79\x47\x9a\ \xe7\x23\x3d\x06\x1f\x12\x9a\x13\x09\xcd\xc9\x44\xbd\x1b\x02\x58\ \xe1\x67\xae\xee\x48\xf3\x7c\xa4\xc7\xe0\x43\x42\x73\x22\xa1\x39\ \x99\xa8\xf7\x86\x00\x56\xfe\x99\xab\x34\xcd\xf3\x91\x1e\x83\x0f\ \x09\xcd\x49\x19\x34\x27\x7b\x02\x58\x26\xcd\x2f\xfc\x68\x8e\x35\ \xd2\x34\xcf\x47\x7a\x0c\x3e\x82\xe6\x04\x02\x58\x8a\xe6\xfa\x2d\ \x6d\x9a\xe6\xf9\x48\x8f\xc1\x47\xd0\x9c\x8c\x1d\x60\xca\x2d\x6d\ \x3e\xcd\x9b\x41\x7a\xd0\x9c\x48\x68\x4e\x6e\x3b\xc0\x24\x5b\x5a\ \x07\x9a\x93\x77\x67\xd5\x21\x3d\x68\x4e\x24\x34\x27\xff\x75\x80\ \x09\xb6\xb4\x0e\x34\x27\x2b\x97\x9d\x65\x20\x3d\x06\x1f\x0a\x9a\ \x13\x09\xcd\xc9\x04\x03\x17\xa6\xdf\xd2\xe6\xd3\x9c\x6c\x70\x76\ \x36\x17\xe9\x31\xf8\x90\xd0\x9c\x94\x41\x73\xb2\xa2\x82\xe5\x6e\ \x69\xf5\x34\x27\x37\x38\x3b\x9b\x87\xf4\xb8\xc5\x20\xa1\x39\x29\ \x83\xe6\x64\xe3\x05\xab\x9d\xe6\x64\x2f\xb4\x8f\xe7\x22\x3d\x6e\ \x31\x04\xcd\xc9\xd6\x0b\xd6\x08\xcd\x47\x42\x9b\x8b\xf4\xb8\xc5\ \x10\x34\x27\x3b\x2f\x58\x13\x34\x1f\x09\xad\x62\xa4\x07\xcd\x89\ \x84\xe6\x04\x34\x58\x03\x34\x1f\x09\x2d\x07\xe9\x41\x73\x22\xa1\ \x39\x91\xd0\x9c\x8c\xd1\x60\xd5\xd3\x7c\x24\xb4\x1c\xa4\x07\xcd\ \x89\x84\xe6\x44\x42\x73\x72\x5b\x0e\x56\xd1\x96\x96\x90\x11\x3d\ \x72\x90\x1e\x34\x27\x12\x9a\x93\x22\x68\x4e\xac\x8a\x2d\x6d\x9a\ \xe6\x59\x48\x0f\x9a\x13\x09\xcd\x49\x19\x34\x27\xd7\x56\xfe\x96\ \x36\x4d\x73\x92\x8f\xf4\x38\x93\x18\x34\x27\xd7\xbf\x5a\xf1\x5b\ \xda\x34\xcd\xdb\x42\x7a\xd0\x9c\x48\x68\x4e\xd6\xb8\xb0\xc2\xcf\ \x5c\xa5\x69\xde\x16\xd2\x83\xe6\x44\x42\x73\xb2\x15\x86\x35\x43\ \x73\xf2\x49\xb5\x48\x0f\x9a\x13\x09\xcd\xc9\x4e\x18\xd6\x08\xcd\ \xc9\xb9\x1d\xcd\x47\x7a\xd0\x9c\x08\x68\x4e\x24\x34\x27\x08\xc3\ \x9a\xa0\x39\x59\x4b\xee\x68\x2e\xd2\x83\xe6\x44\x40\x73\x22\xa7\ \x39\xcc\xb0\x06\x68\x4e\xb6\x92\x3b\x9a\x87\xf4\xa0\x39\x39\x74\ \x9a\xc3\x0c\xab\x9e\xe6\x64\xc7\xb9\xa3\x39\x48\x0f\x9a\x93\xa0\ \x39\xb1\x56\x68\x3e\xe2\x5c\x2e\xd2\xe3\xe3\x82\x7a\x9a\x13\x09\ \xcd\x89\x09\xce\x5c\x39\xd0\x7c\xc4\xb9\x86\x90\x1e\x34\x37\x09\ \xcd\xc9\xf1\xb1\x15\x7d\xe6\x8a\xa4\xe9\x41\x5a\x41\x7a\x7c\x5c\ \x50\x42\x73\xb2\x1e\x81\x58\xde\x96\x96\xb8\x6e\x69\xd3\xf4\x20\ \xad\x20\x3d\xbe\xfb\x2f\xa1\x39\xd9\x8e\x40\x6c\x44\x0f\xc1\x05\ \xea\x7c\x9a\x4f\x4c\x97\x89\xf4\xa0\x39\x11\xd0\x9c\x48\x68\x4e\ \x76\x23\x29\x13\x6c\x69\x5d\x68\x2e\x40\x7a\x7c\xf7\xbf\x59\x9a\ \x33\xb2\x35\x87\x2d\xad\x80\xe6\x02\xa4\xc7\x77\xff\x1b\xa6\x39\ \x47\x1a\x2c\x7f\x4b\xab\xa7\x79\x93\x48\x0f\x9a\x93\xc5\x69\x7e\ \xbc\x8f\xe5\x6e\x69\xf5\x34\x6f\x12\xe9\x41\x73\x22\xa0\x39\xb1\ \xbc\x33\x57\x7a\x9a\x7b\x21\x3d\x68\x4e\x04\x34\x27\x12\x9a\x13\ \xab\x9b\xe6\x4d\x22\x3d\x68\x4e\x24\x34\x27\x7d\x6f\x45\x9e\xb9\ \x9a\x41\x73\xf2\xe1\xb4\x6a\xa4\x07\xcd\x89\x84\xe6\xa4\x5f\xfd\ \xac\xc0\x33\x57\x33\x68\x4e\x56\xec\x3b\x9d\x8b\xf4\xa0\x79\xd0\ \x9c\x6c\xbe\x99\x73\x69\xe5\x9f\xb9\x4a\xd3\x9c\x6c\xec\x77\x3a\ \x0f\xe9\x41\xf3\xa0\x39\xe9\xb7\xef\xa3\xb7\xb2\x68\xfe\x6e\x06\ \xcd\xc9\x8d\xfd\x4e\x1b\x42\x7a\xd0\x9c\x2c\x48\xf3\x7e\xf7\x3e\ \x7a\x9b\x41\x73\xd5\x96\x36\xf1\x3e\xf6\x00\xec\x9a\x41\x7a\xd0\ \x9c\x2c\x49\x73\xde\x47\x6f\x82\x2d\xad\x0b\xcd\x01\xa0\x03\xd2\ \x83\xe6\x17\x12\x9a\x93\x85\x69\x7e\xb9\x8f\x55\xb4\xa5\xfd\x9f\ \x00\xc0\x46\x91\x2e\xa1\x39\x91\xd0\x9c\x2c\x4e\x73\x62\x82\x2d\ \xad\x0f\xcd\x49\x7b\x48\x97\xd0\x9c\x48\x68\x4e\x04\x34\x27\x26\ \xd8\xd2\x7a\xd0\x9c\xb4\x87\x74\x09\xcd\xc9\xe1\xd1\x9c\x0c\x83\ \xb1\xa5\xad\x98\xe6\xa4\x3d\xa4\x4b\x68\x4e\x0e\x8f\xe6\x64\xfd\ \x89\x74\x6b\x85\xe6\x8d\x22\x3d\x68\x7e\xdb\x1f\xee\x34\x27\xc3\ \xfa\x7d\x0c\x56\x03\xcd\xd3\xf4\xf0\x44\x7a\xd0\x9c\x48\x68\x4e\ \xdc\x69\x4e\x86\xed\xfb\xf8\xc5\xca\xa7\x79\x9a\x1e\x9e\x48\x0f\ \x9a\x13\x09\xcd\xc9\x82\x34\x1f\x76\xef\x63\xb0\xd2\x69\x9e\xa6\ \x47\x93\x48\x87\xe6\x44\x42\x73\x22\xa1\x39\x59\x92\xe6\xbc\x8f\ \xc1\x2a\xa1\x79\x9a\x1e\x64\xa8\x1e\xe9\xd0\x9c\x48\x68\x4e\x24\ \x34\x27\x0b\xd3\x7c\xd8\xc7\xa4\x67\xae\xf2\xff\x15\x9c\xe6\xf2\ \x9f\x93\xca\x91\x0e\xcd\x89\x84\xe6\xe4\xd0\x68\x4e\xac\xbc\x33\ \x57\x33\x68\x4e\xd6\x50\x3c\x71\x40\xba\x7e\xf0\x11\x34\x27\xee\ \x34\x27\x56\xfc\x99\xab\x34\xcd\xc9\x16\x8a\x27\x0e\x48\x57\x0f\ \x3e\x82\xe6\xc4\x9d\xe6\xe4\xbc\x03\xe9\x44\xb8\xa5\x9d\x41\x73\ \xb2\xd3\xe2\x89\x23\xd2\x83\xe6\x57\x12\x9a\x13\x77\x9a\x93\xee\ \xbc\xeb\xac\xa4\x33\x57\x59\x34\x47\x8b\x7e\x48\x0f\x9a\x5f\x49\ \x68\x4e\xdc\x69\x4e\xba\xf5\xfb\xe8\x6c\x42\x8f\x3a\x69\x8e\x16\ \x3d\x91\xae\x1f\x7c\x48\x68\x4e\x24\x34\x27\xee\x34\x27\xdd\xf6\ \x7d\x74\x36\xa1\x47\x8d\x34\x47\x8b\x9e\x48\xd7\x0f\x3e\x24\x34\ \x27\x87\x43\xf3\x6e\xf7\x3e\xce\x6d\x44\x8f\xaa\x69\x4e\x1c\x90\ \xae\xa4\x39\x91\xd0\x9c\x1c\x10\xcd\x79\x1f\x20\xfd\x75\xd5\x34\ \x27\x8e\x48\xd7\xdf\x62\x08\x9a\x13\x57\x9a\x77\xfb\x58\x33\x34\ \xf7\x46\xba\xfe\x16\x43\xd0\x9c\x38\xd3\x9c\x58\x1d\x34\x4f\xd3\ \xc3\x1f\xe9\x41\x73\x22\xa1\x39\x71\xa7\x39\xb1\xa2\xcf\x5c\xdd\ \x95\x1e\x02\xa4\x0b\x68\x4e\x24\x34\x27\x12\x9a\x93\x05\x68\x4e\ \xac\xf8\x33\x57\x69\x7a\x08\x90\x2e\xa0\x39\x91\xd0\x9c\x48\x68\ \x4e\x16\xa0\x39\x79\xd1\x59\x16\xcd\xfd\xb7\xb4\x69\x7a\x08\x90\ \x2e\xa0\x39\x91\xd0\x9c\x1c\x04\xcd\x79\x1f\x9d\x15\x7a\x81\xfa\ \xce\xff\x0a\x4e\x73\xd5\x67\x20\x5d\x49\xf3\x7f\xd9\xbb\x93\x5d\ \x27\x62\x20\x8c\xc2\x25\x71\x91\xb0\xa1\x25\xa4\x10\xb1\x60\x81\ \xc4\x38\x0f\x8f\x44\x0c\x5c\x86\x30\xcf\x8f\x4f\x43\x48\xce\xdd\ \xf5\xc2\x65\x7e\x5f\x53\xbd\x38\x6f\x50\x8b\x4f\xad\x72\x2d\xd2\ \x7c\x8e\x84\xe6\xe4\x3f\xa1\x39\xf3\x71\x64\x8a\x5d\x5a\x7f\x9a\ \x93\x59\x95\xeb\x86\x48\xd7\x5f\x30\x08\x9a\x93\x56\x34\x67\x3e\ \x8e\xac\x7e\x97\x56\x4f\x73\xf2\x47\x95\xeb\x96\x48\x0f\x9a\x13\ \x09\xcd\x49\x3b\x9a\x33\x1f\x4f\xad\x76\x97\x56\x4f\x73\xf2\x97\ \x96\xeb\x76\x48\x0f\x9a\x13\x09\xcd\x49\x53\x9a\x13\xab\xdb\xa5\ \xd5\xd3\x9c\x1c\x68\xb9\x6e\x85\xf4\xa0\x39\x91\xd0\x9c\x34\xa6\ \x39\x31\x9f\x67\xae\xf4\x34\x87\x96\x02\xa4\x2b\x2e\x18\x08\x68\ \x4e\x24\x34\x27\xcd\x69\x4e\x6c\x0c\x9a\x43\x4b\x01\xd2\x15\x17\ \x0c\x04\x34\x27\xe3\xd3\x9c\x58\x2f\x34\xdf\xd6\xd2\x9c\xb4\x47\ \xba\xfe\x82\x41\xd0\x9c\xb8\xd3\x9c\xe4\x62\x7d\xd0\x7c\x5b\x4b\ \x73\xd2\x1e\xe9\xfa\xe3\x82\x41\x73\xe2\x4e\x73\x92\x73\xc9\xd6\ \xc5\x33\x57\xb5\x34\x27\x02\xa4\x0b\x8e\x0b\xca\x69\x4e\x24\x34\ \x27\xee\x34\x27\x39\xe7\x92\xb3\xe9\x69\xbe\x75\xa1\xb9\x00\xe9\ \x41\xf3\x17\x12\x9a\x13\x77\x9a\x93\xbc\x9b\x8f\x6c\xd0\xbc\xdf\ \x5d\xda\x65\x7a\x28\x90\x1e\xc7\x05\x25\x34\x27\x0d\x69\x5e\xf6\ \xf3\x91\xad\xff\x5d\xda\x65\x7a\x28\x90\x1e\x77\xff\x07\xa6\x39\ \xf3\x51\xac\xf7\x5d\xda\x65\x7a\x28\x90\x1e\x77\xff\xc7\xa6\x79\ \x3e\xc4\xfa\xde\xa5\x5d\xa6\x87\x0c\xe9\xfa\xbb\xff\x41\x73\xe2\ \x4c\x73\x62\x3d\x3f\x73\xb5\xfc\x57\x50\x86\x74\xfd\xdd\xff\xa0\ \x39\x71\xa7\x39\xb1\x41\x68\x4e\xde\x7e\x5d\xc9\x91\x1e\x77\xff\ \xdb\xd3\x9c\xb8\xd3\x9c\xa4\x64\x43\xd0\x9c\xfc\x76\xe8\xaa\x3d\ \xd2\x83\xe6\x44\x42\x73\xe2\x4e\x73\x92\x52\xda\xd8\x00\x34\x27\ \x3b\x87\xae\x5a\x23\x3d\x68\x4e\x24\x34\x27\xee\x34\x27\x69\xfe\ \x36\xc9\x4e\x3d\xcd\xc9\x1e\xa3\xab\xb6\x48\x0f\x9a\x93\xd1\x68\ \x4e\x36\xbb\xf9\x48\x36\x0c\xcd\xc1\x68\x6b\xa4\xeb\x69\x4e\x04\ \x34\x27\xe3\xd2\x3c\xed\xe7\x23\xd9\x20\x34\x07\xa3\x02\xa4\x0b\ \x69\x1e\x34\x27\x7e\x34\x67\x3e\x92\xf5\xf2\xcc\x55\x15\xcd\xc1\ \xa8\x00\xe9\x42\x9a\x07\xcd\x89\x2b\xcd\xd3\x21\xd6\xc7\x33\x57\ \xf5\x34\x27\x12\xa4\x07\xcd\x8b\x80\xe6\xc4\x99\xe6\xc4\x7a\x78\ \xe6\xaa\x9e\xe6\x44\x82\xf4\xa0\x79\x11\xd0\x9c\x38\xd3\x9c\x80\ \x74\xe1\x2e\xad\x13\xcd\x05\x48\x97\xd3\x9c\x48\x68\x4e\x04\x34\ \x27\xee\x34\x27\xd3\x64\xea\x67\xae\x9c\x68\x2e\x46\xba\x84\xe6\ \x44\x4b\xf3\x32\x16\xcd\xc9\x34\x7f\x06\x3d\x4e\x31\xcd\xc5\x48\ \x97\xd0\x9c\x68\x69\x5e\xba\xa0\x39\xa9\xa4\x39\x39\x9e\xe6\xef\ \xd8\xca\x00\x34\xd7\x22\x5d\x42\x73\x12\x34\x3f\x99\x4a\x9a\x93\ \x69\x37\x1f\x93\x0d\x40\x73\x29\xd2\x25\x34\x27\x41\xf3\x93\x71\ \xa3\xf9\xb4\x9f\x8f\xc9\x46\xa1\x39\x79\x79\xee\xdf\x21\xbd\x21\ \xcd\x7f\xb1\x77\x27\xbb\x4e\xc4\x40\x14\x86\x4b\x02\xa4\x30\xc9\ \xd8\x46\x62\xc1\x02\x89\x71\x1e\x1e\x89\xf1\x32\xa4\x49\x33\x75\ \x2e\x8f\x4f\x94\xdb\xc9\xb9\x1b\xd4\x24\xc7\xd2\x69\x97\xdc\x8b\ \xff\x0d\x6a\xf1\xa9\x55\xe5\x8a\x68\x8e\x08\x68\x8e\x94\xa3\x39\ \xe6\xe3\xba\xf9\xa0\x39\xb2\x41\x6b\x22\x90\x5e\x23\xcd\x11\x09\ \xcd\x11\x01\xcd\x91\xa2\x34\x3f\xd9\xc7\x2a\xa0\xf9\x24\x3d\x90\ \x2d\x5a\x13\x81\xf4\x8a\x69\xde\x49\x68\x8e\x78\xa2\x39\x62\x73\ \x3f\x73\x35\x4d\x0f\x64\x94\x6b\x22\x90\x4e\x2c\x7c\x68\x69\xde\ \x49\x68\x8e\xf8\xa2\x39\x62\xb3\x3a\x73\xc5\xd0\xa3\xdb\xcb\x35\ \x11\x48\x27\x16\x3e\x94\x34\xef\x24\x34\x47\x7c\xd1\x1c\x09\xc1\ \x0a\xd3\x7c\x49\xd0\x9c\xa1\x47\x07\xb9\x12\x48\x27\x16\x3e\x94\ \x34\xef\x0a\xd2\xbc\xd1\x1c\x59\x85\x10\x4c\x77\x81\x9a\xff\x2b\ \x88\x40\xae\x04\xd2\xa9\x85\x8f\x46\x73\xa4\x66\x9a\x23\x61\x15\ \x36\x9f\xcd\x64\x97\x96\xa7\x39\x42\x20\x9d\x5e\xf8\x68\x34\x3f\ \xa9\x99\xe6\x48\x38\x9b\x8f\x95\xcd\x62\x97\x96\xa7\x39\x42\x20\ \xbd\x62\x9a\x23\x12\x9a\x23\x12\x9a\x23\x85\x68\x1e\x76\xf3\x11\ \x6c\x06\xbb\xb4\x3c\xcd\x11\x02\xe9\x15\xd3\x1c\x91\xd0\x1c\x71\ \x42\x73\xcc\x47\x30\xf9\x2e\x6d\x21\x9a\x13\x48\xa7\x69\x8e\x48\ \x68\x8e\x48\x68\x8e\xf8\xa1\x79\xd8\xc7\xca\x9c\xb9\xd2\xd3\x9c\ \x47\x3a\xbf\xf0\x21\xa1\x39\x52\x8a\xe6\x8d\xe6\x48\x34\x1f\x34\ \xe7\x91\xce\xdf\x62\x90\xd0\x1c\x69\x34\x1f\x33\x86\xa2\xf9\x98\ \x18\x7b\xf3\x42\x73\x1e\xe9\xfc\x2d\x86\x46\x73\x44\x42\x73\x84\ \xa2\xf9\x98\x18\x63\x1f\xcd\x07\xcd\x79\xa4\xf3\xb7\x18\x1a\xcd\ \x11\x09\xcd\x11\x8a\xe6\x63\xe2\x76\x3e\xa2\xb9\xa1\x39\x32\x10\ \x48\xaf\x99\xe6\x88\x84\xe6\x88\x84\xe6\x48\x01\x9a\x87\x7e\x9c\ \x8f\x68\x5e\x68\x8e\xac\x49\xa4\xf3\xb7\x18\x24\x34\x47\x24\x34\ \x47\x24\x34\x47\x8a\xd0\x7c\x3f\x1f\xd1\xaa\xd8\xa5\x9d\xa6\x07\ \xb2\xe6\x90\xce\x9f\x49\x94\xd0\x1c\x91\xd0\x1c\x71\x41\x73\xcc\ \xc7\x60\x35\xec\xd2\x4e\xd3\x03\x59\x53\x48\xe7\xcf\x24\xca\x68\ \x8e\x85\x8f\x46\x73\xe4\x48\x9a\x8f\x49\x43\xb2\x9a\x76\x69\xff\ \x67\x3e\x18\xa4\xf3\x67\x12\x65\x34\xc7\xc2\x47\xa3\x39\x72\x24\ \xcd\xc7\xa4\x34\xa4\x64\x73\xda\xa5\xe5\xe8\x31\x86\x42\x3a\x7f\ \x26\xb1\xd1\x1c\x91\xd0\x1c\x21\x68\xbe\x49\xda\xce\x47\xb2\x59\ \x9f\xb9\x42\xa6\xe9\x81\x10\x48\x77\x40\x73\x44\x4b\xf3\x5e\x42\ \x73\x84\xa2\x79\x9f\xc6\xf9\x48\xe6\x85\xe6\x08\x81\x74\x47\x34\ \x5f\x4a\x68\x8e\x48\x68\x8e\x90\x34\xdf\xcf\xc7\x60\x4e\x68\x8e\ \x10\x48\xf7\x43\xf3\xa5\x96\xe6\x7d\xe5\x34\xc7\x7c\x24\xf3\x41\ \x73\x84\x41\x3a\x4f\x73\x44\x40\x73\x44\x4b\xf3\xbe\x7e\x9a\xef\ \x92\xb3\x79\xa1\x39\x8f\x74\x9e\xe6\x88\x88\xe6\x58\xf8\x68\x34\ \x47\x26\x69\xfe\xaf\xf9\x58\xe4\x9c\xcd\x03\xcd\x59\xa4\x97\x7f\ \xc1\xa0\xd1\x1c\x91\xd0\x1c\x39\x84\xe6\x31\x61\x3e\x52\x5e\xe4\ \xcd\x67\x0e\x68\x4e\x22\xbd\xfc\xe3\x82\x8d\xe6\x88\x84\xe6\xc8\ \x21\x34\xef\x41\x8f\x94\xf2\xd9\x7c\x2c\x4c\x7d\xe6\x8a\xa7\x39\ \x8f\x74\x9e\xe6\xc8\xbc\x68\x6e\x5a\x9a\x0f\x12\x9a\x23\x87\xd0\ \x3c\x9e\xa7\x79\xde\xcd\x47\x36\xf1\x99\x2b\x9e\xe6\x04\xd2\x9d\ \xd2\x1c\xd1\xd2\x7c\x90\xd0\x1c\x39\x84\xe6\xf1\x3c\xcd\x33\xe6\ \x23\xdb\x51\xf4\xe0\x69\xde\x95\xa6\x39\xf2\xad\x3f\x00\xe9\x9e\ \x1f\x17\x3c\x96\xe6\x7f\xd9\xbb\xb7\xe5\xc6\x89\x20\x0c\xc0\x5d\ \x15\x47\x45\xb2\xab\x12\x86\x95\x90\x8c\x5c\x5b\xb5\x10\x60\x09\ \x87\x7d\x24\x20\x8b\xc9\x01\xcc\x21\x66\xe3\xc7\x67\x34\x9a\x7f\ \x46\x5e\x55\x6d\x3a\xc6\x35\x3d\x1e\x8d\x2e\xfe\x37\xe8\x8b\xaf\ \xbb\x47\x7d\xa0\x0b\x06\x47\x4c\x73\x57\x1f\x25\x31\xe8\x21\xf0\ \x07\xea\xfd\xeb\x43\x99\x78\xce\x45\xba\x87\xe3\x82\xfe\x69\x8e\ \xd8\x9f\xe6\x89\xe6\x88\xb2\x2c\x8f\xe2\x2d\x2d\xbf\x3e\x34\x8c\ \xe7\x5c\xa4\x4f\xe5\xee\x7f\xa2\x79\xfe\x14\x9a\x23\x4a\xf5\x3d\ \xa3\xf0\xdf\xd2\xf2\xeb\xc3\xc0\x78\xce\x45\xba\x87\xbb\xff\x89\ \xe6\x3a\x64\x69\x9e\x3f\x85\xe6\x88\x67\xba\x3e\x4a\x0a\xfd\x2d\ \x2d\xdf\x1f\x16\xc6\x73\x1e\xd2\x89\x3c\x1c\x17\x4c\x34\x57\x21\ \x4b\xf3\xfc\x29\x34\x47\x94\xa6\x3e\x4a\x3a\xa6\xb7\xb4\x1f\x0a\ \x07\x63\x0e\xd2\xe1\x8f\x49\xdc\xfd\x17\xa2\x39\x42\x96\xe6\xab\ \xbd\x68\x6e\xeb\xa3\xa4\xb0\x7f\x73\xc5\xa7\x39\x08\xc0\x43\xba\ \xf6\x39\x45\x4d\x73\x84\x10\xcd\x11\xb2\x34\xcf\xf7\xa3\xb9\xab\ \x8f\x2a\x1e\x9a\x23\x18\x48\xc7\x10\x3d\x62\x9a\x23\x84\x68\x8e\ \x38\x56\x9a\x9b\xa8\xaa\xe7\x14\x09\xcd\x11\x0c\xa4\x6f\xed\x10\ \x3d\x5a\x9a\x23\xf6\xa2\x79\xa2\xb9\x89\x4a\xd5\x47\x45\xe1\xd3\ \xfc\x1d\x87\xe6\x2a\x78\x48\x57\xf5\xb1\xc5\x10\x3d\x52\x9a\x23\ \xf6\xa2\x79\xa2\xb9\x89\x4a\xd7\x47\x45\xb1\xd0\x9c\x87\xf4\xbe\ \xc9\x8b\x25\x93\x44\x73\x99\xbb\xff\xe1\xd3\xbc\x7c\x6e\xea\xa3\ \xa2\x38\x68\xce\x43\xfa\x66\xb3\xc1\x10\x44\x23\xdd\xdb\xdd\xff\ \x44\xf3\xeb\xe3\xa2\xb9\xad\x8f\x4a\x94\xe6\xb7\x07\xa2\x39\x0f\ \xe9\xdd\x10\x64\xa3\x87\x20\x40\xfa\x24\x68\x8e\x10\xa1\x39\xe2\ \xd8\x68\x5e\x55\x08\x0a\xf5\x2d\x2d\x9f\xe6\x3c\xa4\xab\x26\xd6\ \x70\x53\x51\x37\x79\x27\x40\x73\x84\x08\xcd\x11\xc7\x47\x73\xc4\ \xac\xa6\x30\xdf\xd2\xf2\x69\xce\x42\xba\xae\x0f\x55\x20\xaa\xc9\ \x0b\xa4\xc3\x1f\x7e\x8e\x0b\x0a\xd1\x1c\x21\x42\x73\xc4\xf1\xd1\ \x1c\x51\xcf\xea\x9a\x42\x7c\x4b\xcb\xa7\x39\x13\xe9\xa6\x89\x75\ \xb1\x01\xd2\xd1\xbf\xf2\x73\x5c\x50\x88\xe6\x88\x27\xd1\x3c\xd1\ \x1c\x51\x77\xf5\x51\x53\xd8\x6f\x69\xf9\x34\x77\xf1\xd9\x2e\xd2\ \xfb\x26\xd6\x43\xd7\xc4\x02\xd2\x31\x44\xf7\x73\xf7\x5f\x88\xe6\ \x88\x40\x68\x8e\x08\x93\xe6\xe3\xfa\xa8\xfb\xfa\xa8\x89\x37\x15\ \x0c\x9f\xe6\x08\xa5\x84\x5d\xa4\xf7\x4d\x2c\x55\x20\x40\xfa\xfd\ \x3d\x86\xe8\xbe\xee\xfe\x27\x9a\x23\x02\xa6\x79\x39\xa4\x79\x8d\ \xfa\x98\x51\x1c\x34\x47\x68\x2a\x0c\x91\x8e\x26\xd6\x03\x90\xae\ \x00\x62\x87\xe8\x7e\xee\xfe\x27\x9a\x23\x04\x69\x8e\x18\xd1\x1c\ \xb1\x4b\x73\xf5\x99\xa0\x08\x68\x8e\x00\x15\x1c\xd2\xd1\xc4\xb2\ \x48\xff\x47\x01\xe4\xe4\x1e\x43\xf4\xc9\xd0\x1c\x21\x42\x73\x84\ \x20\xcd\x11\x23\x9a\x23\xde\xa7\x79\x8d\xc8\x28\x1a\x9a\x3b\x2a\ \xac\x0d\xd2\x47\x9b\x26\x2f\x4d\x93\x17\x4b\x26\xe2\x77\xff\xb7\ \xb2\xc7\x05\xd7\x31\xdc\xfd\xe7\xff\x26\x71\x44\x73\xc4\x88\xe6\ \x88\x2c\xcb\x28\x12\x9a\x0f\xbc\x60\x90\x8e\x26\x96\x45\xba\xde\ \xe4\xd5\x43\x10\x20\xdd\x0f\xcd\x11\x42\x34\x47\xc4\x45\x73\xfe\ \x05\x03\x04\x9f\xe6\x88\xf3\x4c\x7d\x14\x05\xcd\x07\x5e\x30\x48\ \x77\x4d\x2c\x20\xbd\x6f\xf2\x62\x53\x51\x37\x79\x7d\xde\xfd\x17\ \xa2\x39\x22\x2e\x9a\xf3\x2f\x18\x20\xf8\x34\x47\x64\xba\x3e\xce\ \x29\xb8\xdf\x5c\xf1\xe9\x81\x18\x78\x01\x48\x1f\x6d\x9a\xe8\x4d\ \xc5\x8d\xdb\x54\x84\x3f\x3c\xdd\xfd\x17\xa2\x39\x62\x1a\x34\x2f\ \x0e\x47\xf3\x3a\x33\xf5\x91\x51\xf8\xbf\xb9\x62\xd2\xdc\xc5\x5c\ \x37\xb1\xde\xb8\x4d\x13\x65\xf4\xfe\xb9\xed\x4b\x20\xbd\x1f\xa2\ \x7b\xbf\xfb\x9f\x68\x8e\x38\x3c\xcd\x8b\x43\xd2\xdc\xd6\x47\x46\ \xa1\xff\xe6\x8a\x4d\x73\x17\xeb\xdd\x4d\x13\x6c\x62\xdd\x6e\x80\ \x74\x2c\x99\x4c\x93\xe6\xab\xc7\x68\x9e\x68\xee\xea\x63\x41\x0c\ \x9a\x4b\xbe\xa5\xe5\xd3\xdc\xc5\x7c\x67\xd3\x44\x37\xb1\xba\x26\ \x2f\x90\x4e\x84\x21\xfa\x14\x69\xbe\x62\xd0\x3c\xd1\xdc\xc4\x62\ \xb1\xa0\xc0\xdf\xd2\xf2\x69\xee\x62\x3e\xd8\x34\x41\x13\x0b\x9b\ \x58\x5d\x7d\x10\x86\xe8\x3e\x69\x8e\x10\xa2\x39\x82\x41\xf3\x44\ \x73\x13\x0b\xf5\x9d\x11\xf3\x2d\x6d\xf8\x34\x77\x31\xb7\x9b\x26\ \xa6\x89\x85\xe7\x84\x9b\xfe\x77\x0d\x76\x88\xee\x8f\xe6\x08\x59\ \x9a\xaf\x18\x34\x4f\x34\x37\x71\xa6\xeb\x63\x41\x4c\x7a\x84\x4f\ \xf3\x31\xd2\x2f\xb0\x69\x62\x91\xfe\x6a\x8b\x21\x88\x46\x88\x2f\ \x9a\x23\x64\x69\xbe\x62\xd3\x3c\xd1\x3c\x5b\x98\xfa\x58\x10\x93\ \x1e\xe1\xd3\xdc\xc5\x4a\x23\x5d\x19\xfd\xe2\xab\xae\x89\xf5\x0d\ \x90\x6e\x9b\xbc\x40\xba\x1f\x9a\x23\x8e\x87\xe6\x89\xe6\xb6\x3e\ \x16\xc4\x9c\x0a\x86\x4f\x73\xc4\xd5\x8b\x42\x21\xfd\x73\xbb\x69\ \x02\xa4\xa3\xc9\x4b\x40\xfa\x8b\x2b\xb1\xbb\xff\x89\xe6\xb3\xb0\ \x69\x7e\xb6\x40\x50\x24\x34\x47\x74\xee\x2e\x14\xd2\x2f\x55\x81\ \x28\xa4\xbf\xb2\x48\x37\x4d\x5e\x6c\x2a\xc2\x1f\x13\xa5\xf9\x5a\ \x88\xe6\x88\xd0\x69\x8e\x68\x72\x8a\x81\xe6\x08\x33\xd7\x28\xba\ \x26\xd6\xa5\x6a\x62\x01\xe9\xaa\x3e\xdc\x26\x96\xab\x8f\xab\xa9\ \xd2\x7c\x2d\x4b\xf3\x59\xe8\x34\x47\x34\x4d\xde\x50\x34\x34\x7f\ \x6b\xe7\xe2\x45\xd7\xc4\xba\x7c\xf3\x1a\x48\xd7\x4d\x2c\xdd\xe4\ \x35\x48\xc7\x10\x5d\xea\xee\xbf\x2c\xcd\xd7\xb2\x34\x9f\x85\x4e\ \x73\x44\xd3\xd5\x47\x43\xb1\xd0\x7c\xb0\x57\xb5\xd2\xcf\xa5\x80\ \xf4\x8f\xf5\x75\xa9\xe1\x26\xd6\x5f\x58\x32\x11\xa1\xf9\xb5\x10\ \xcd\x11\xb2\x34\x9f\x85\x4e\x73\x44\xd3\xd7\x47\x43\x71\xd0\x7c\ \x67\x2f\xb7\x50\x05\x02\xa4\x9f\x9e\xf6\xff\xc4\x7a\x67\x37\xb1\ \x54\x8f\x17\x43\x74\x01\x9a\x5f\xcb\xd2\x7c\xcd\xa2\x79\xa2\x79\ \x8e\xfa\x68\x28\x06\x9a\x9b\xd2\x40\x14\x5f\x02\xe9\xba\x89\xa5\ \xaf\x4b\x01\xe9\x18\x82\x68\xac\xf8\xa3\x39\x22\xd1\x7c\x54\x1f\ \xe2\x34\x1f\xd7\x87\x2e\x0d\x13\x14\xf6\x5b\x5a\x3e\xcd\x11\x43\ \xa4\x77\x9b\x58\xdd\x3f\x7f\xbe\x00\xd2\xed\x10\xc4\x21\xfd\x0f\ \xa9\xbb\xff\x89\xe6\xe7\xf2\x34\x47\xbc\x4f\xf3\x06\xd1\x52\xe0\ \x6f\x69\xf9\x34\x47\x00\xe9\xae\x89\x05\xa4\xf7\x4d\x5e\x0c\x41\ \xd4\x37\x51\x9a\x23\x84\x68\x8e\xf0\x4d\xf3\x6a\x44\x73\xc4\x88\ \xe6\x88\xa2\x6d\x29\xf0\xb7\xb4\x7c\x9a\xef\x22\xdd\x35\xb1\x80\ \x74\xd7\xe4\xb5\x48\x97\xa1\x39\x42\x88\xe6\x08\x21\x9a\x23\x7c\ \xd3\xbc\x1a\xd1\x1c\x31\xa2\x39\xa2\x55\xf5\xd1\x92\x87\xb7\xb4\ \x7e\x68\xee\xa2\xe8\xea\xc3\x34\xb1\x80\xf4\x5b\xd3\xe4\xc5\xa6\ \xa2\x6e\xf2\x4a\xd0\x1c\x21\x44\x73\x84\x10\xcd\x11\x07\xa5\x39\ \xff\x37\x89\x63\x9a\x67\x23\x9a\x23\x5a\x5d\x1f\x2d\x05\xfe\x9b\ \x2b\x3e\xcd\x5d\x14\xb6\x89\x05\xa4\xab\x4d\x45\x34\x79\x81\x74\ \xf8\x43\x84\xe6\x77\x42\x34\x47\x44\x40\x73\xd6\x05\x03\x04\x9f\ \xe6\x88\xd6\xd4\x47\x41\xd1\xd0\xdc\x45\x81\x26\x16\x90\x6e\x9e\ \x13\x6e\xb7\x0e\xe9\x1a\x30\x42\x34\xbf\x13\xa2\x39\x22\x0e\x9a\ \xf3\x2f\x18\xec\x41\x73\x5b\x1f\x2d\x05\xfe\x9b\x2b\x3e\xcd\x5d\ \x14\x3b\x9b\x26\xba\x89\x75\xdb\xff\x13\x0b\x48\x37\x43\x74\x11\ \x9a\xdf\x25\x9a\x3f\x52\x1f\xc5\x3e\x17\x0c\x0e\x4a\x73\x57\x1f\ \x4b\x0a\xfb\x37\x57\x7c\x9a\xbb\xb8\xf9\x79\xb8\x69\xa2\x9b\x58\ \xbb\x9b\x58\x37\x18\xa2\x27\x9a\xab\x10\xa2\x39\x82\x41\x73\xc6\ \x05\x83\x43\xd3\xdc\xc4\x72\xb9\xa4\xb0\x7f\x73\xc5\xa7\x39\x42\ \x3d\xf3\xc8\x2d\xd2\x4f\x54\x81\x5c\xf6\x4d\x2c\x87\xf4\x9b\x1b\ \x0c\xd1\x13\xcd\x7f\x17\xa2\x39\x82\x45\x73\x84\x37\x9a\x9b\x98\ \x2f\xd5\x47\xe1\xd1\xfc\xed\x1e\x34\x47\xe8\x5b\x06\xb9\x41\xba\ \x6a\x62\x9d\xa0\x89\x05\xa4\xa3\xc9\xab\x29\x23\x47\x73\x84\x10\ \xcd\x11\x42\x34\x47\xb0\x68\x8e\xf0\x46\x73\x13\x4b\x5d\x1f\x73\ \x62\xd0\x5c\x66\x61\x97\x4f\x73\x04\x6e\xe1\xe4\x1a\xe9\xba\x89\ \x75\xa2\x9b\x58\x16\xe9\x7d\x93\xd7\x6e\xba\x4b\xd1\x1c\x21\x44\ \x73\x84\x10\xcd\x11\x2c\x9a\x23\x3c\xd3\xbc\x5d\x9a\xfa\x58\x52\ \xe0\x0b\xbb\x7c\x9a\xbb\x5b\x6a\x79\x77\x3d\xe7\xf5\xf7\x68\x62\ \x39\xa4\xdf\x9f\xf6\x4d\x5e\x6c\xba\xcb\x1e\x17\x14\xa2\x39\xe2\ \x03\x34\x4f\x34\xb7\xf5\xb1\xa4\xe3\x79\x4b\xfb\x18\x3d\x50\x1f\ \x0a\xe9\xb6\x89\x35\x44\xfa\x76\x6b\x9a\xbc\x40\xfa\x83\xe4\xdd\ \xff\x78\x69\xfe\x1f\x7b\x77\xdb\xdc\xc4\x0d\x45\x01\xf8\x8e\xc1\ \x0c\xa6\xb5\x70\xd3\x40\x78\xeb\xc6\x9b\x34\x9d\x78\x92\x32\xfc\ \x24\x1c\xc0\xbc\xb4\x86\x05\x5c\x3b\x3f\x1f\x69\x57\x67\xaf\x8a\ \xb2\xd5\x38\x53\xe7\x6a\x85\xfc\xe1\xfc\x83\xf3\xe1\x39\xb2\xb4\ \x09\xd0\x5c\x57\x03\x41\x7d\xb9\x4b\x1b\xa6\x47\x1b\x63\x8c\x58\ \x0e\xd2\xb5\xd1\x9b\x91\x77\x02\xa4\xc3\x1f\xf2\xdf\xfd\xcf\x34\ \x5f\xc4\x46\x73\x84\x52\x14\xfd\x5d\xda\x30\xcd\x51\x0d\xc4\xd8\ \x8e\x58\x8c\xf4\x13\x3b\x62\x11\x01\xe9\x75\x25\x33\xcd\x6d\xc8\ \xd2\x7c\x1c\x1b\xcd\x11\x4a\xa9\x3d\x72\x4f\x05\x7b\x4d\x73\x8e\ \x71\x33\x62\x01\xe9\x76\xc4\x3a\xd2\x23\x16\x90\x6e\x0f\xd1\x33\ \xcd\xeb\x90\xa5\xf9\x38\x36\x9a\x23\x94\xe9\x87\xa2\x64\x68\xce\ \x31\x7e\x7a\xe6\x20\x5d\xf7\xc3\x8e\x58\x40\xfa\x2b\x1c\xa2\xcb\ \xd2\x1c\x21\x44\x73\x84\x2c\xcd\xc7\xb1\xd1\x1c\xb1\xd7\xf4\x43\ \x51\x32\x34\xe7\x98\x9f\x32\xd2\x79\xc4\x02\xd2\x75\xad\x70\x88\ \x2e\x49\x73\x84\x10\xcd\x11\xb2\x34\x1f\xc7\x4a\x73\x85\x7e\x28\ \x4a\x82\xe6\x5d\x48\x1f\x0e\x27\xf8\xfa\x1a\x90\xbe\xaf\x37\x2c\ \x1c\xa2\xcb\xd1\x1c\x21\x44\x73\xc4\xd5\x34\xcf\x34\xe7\x7e\x28\ \x4a\x86\xe6\x3e\xd2\xf1\xe6\xcf\x66\xdd\x22\xbd\x19\x79\x75\xf3\ \x80\x74\x49\x9a\x57\xb1\xd2\x3c\xd3\x5c\x21\x7e\xa5\x54\x68\xee\ \x23\x1d\xd7\xa5\x36\x40\xfa\x57\xa2\x7a\xe4\x6d\x5f\x6a\x90\xa1\ \x39\x42\x9a\xe6\x99\xe6\x08\x8f\xe6\xdc\x0f\x45\x51\x3f\x73\x15\ \xa6\x79\x17\xd2\x67\x33\x5c\x97\x02\xd2\xcd\x75\xc2\x49\x33\xf2\ \x02\xe9\x99\xe6\x4e\xfc\x70\x34\x47\x78\x34\x77\xfb\xa1\x28\xf2\ \x67\xae\xc2\x34\xf7\xe3\xe2\x94\xaf\x4b\x01\xe9\x66\xe4\xad\x47\ \xac\xf7\x8c\xf4\x75\xa6\x79\x1b\xa9\xd2\x1c\xe1\xd1\x1c\x71\x25\ \xcd\xb9\x1f\x8a\xa2\x7e\xe6\x2a\x4c\x73\x3f\xaa\xe1\x48\x17\xe4\ \x79\xf3\xf5\x1c\x20\xdd\x8e\xbc\x54\x39\x48\x5f\x2f\xe5\x69\xce\ \x21\x42\x73\x44\xe2\x34\x1f\x79\x34\x47\x74\xd0\x9c\xfb\xa1\x28\ \x48\x73\xf9\xbb\xb4\x61\x9a\x73\x54\xd5\xb0\x1a\x69\xa4\xcf\x66\ \xfc\x30\xaf\xee\xc7\x0a\xd7\x09\x19\xe9\xba\xc4\xf2\x34\x47\x88\ \xd0\x1c\x91\x04\xcd\xc3\xcf\x24\x32\xcd\x11\xdd\x34\xe7\xa0\xe8\ \x9f\xb9\x0a\xd3\x9c\xa3\x32\xfd\xd0\x05\xd1\x23\x56\x8b\x74\x3b\ \x62\xe9\x7e\x00\xe9\x1b\x83\xf4\xb5\x8b\x74\x21\x9a\x23\x44\x68\ \x8e\x48\x80\xe6\x81\x2f\x18\x6c\x4f\x73\x8e\x82\x82\xf4\x88\x9f\ \xe6\x88\xaa\xe9\x47\x35\xd2\x23\x16\x90\xee\x8c\x58\x40\xfa\x81\ \x41\xfa\xda\x41\xba\x10\xcd\x11\xd7\xa6\x79\xa6\x79\xf8\x0b\x06\ \xd7\xa3\x39\xe2\x41\x51\x90\x47\x8f\xbe\xd2\x7c\x88\x7e\x54\x8c\ \xf4\xd3\x76\xc4\x62\xa4\x1f\x18\xa4\x6f\x18\xe9\x42\x34\x47\x44\ \x42\x73\x44\x84\x34\x0f\x7f\xc1\xe0\x7f\xa6\x39\xa2\xd0\xfd\x28\ \xc8\xa3\x47\x4f\x69\xce\xfd\x60\xa4\xf3\x88\xc5\x48\x3f\x30\x48\ \xdf\xb4\x48\xcf\x34\x77\x23\x42\x9a\x87\xbf\x60\xb0\x03\x9a\x9b\ \x28\xea\x7e\x14\xe4\x9d\x0a\xf6\x95\xe6\xe8\x07\x90\x8e\xeb\x52\ \x9b\x7f\x21\x7d\xdf\x20\x7d\x03\xa4\x67\x9a\xbb\x21\x47\xf3\xf0\ \x17\x0c\x6e\x98\xe6\xaa\xb0\xfd\x78\x40\xa9\xd0\x1c\x01\xa4\x9f\ \x1c\x1a\xa4\xf3\x3f\x4d\x2e\x87\x06\xe9\xfb\x2e\xd2\xdf\x46\x46\ \xf3\xb9\x08\xcd\x11\x72\x34\x0f\x7f\xc1\xe0\xc6\x69\xde\xf6\xa3\ \xa0\xbe\xd3\xdc\xa9\x06\x23\xbd\x19\xb1\x74\x41\xf8\x9f\x26\xb7\ \xbe\x47\xba\x7f\x34\x28\x4b\xf3\x79\x07\xcd\xf3\x77\xff\x05\x68\ \x5e\x14\x08\x8a\xfc\x99\xab\x2d\xe8\xc1\x48\xb7\x23\x96\x8b\xf4\ \x5b\x06\xe9\x13\x46\xba\xef\x73\x21\x9a\x23\xa2\xa3\xb9\xe0\x77\ \xff\xe5\x69\x8e\x98\x4e\x29\xf2\x67\xae\xc2\xf4\xf0\x63\x64\xaf\ \x4b\x39\x48\x3f\x32\x48\x9f\xb4\x48\x5f\x2f\xbf\xdf\x77\x65\x69\ \x3e\xf7\x69\x9e\xbf\xfb\x2f\x47\x73\xc4\x54\xff\x68\xc7\x34\x7f\ \xbd\x33\x9a\x83\x1e\x7e\x8c\xea\x11\xcb\x43\xfa\x10\x48\x7f\x8d\ \x43\xf4\xb6\x1f\xb2\x34\x9f\x27\x4e\x73\x44\x4f\x68\x8e\x78\x68\ \xfa\xf1\x90\x22\x7a\x81\x7a\xfb\x53\xc1\xab\x63\xa4\x47\x2c\x20\ \xfd\xd8\x20\xfd\xd0\x41\x7a\xd3\x8f\xa5\x7b\x35\x6a\x97\x34\xcf\ \x34\x47\xf4\x84\xe6\x88\x69\xd3\x8f\x29\xf5\xe4\x2e\x6d\x98\xe6\ \x1c\xa3\x17\x2d\xd2\xcf\x0c\xd2\x4f\x1c\xa4\xd7\x23\x2f\x0e\xd1\ \xa3\xa4\xf9\x42\x9e\xe6\x99\xe6\x53\xf4\x63\x4a\x71\xdf\xa5\x0d\ \xd3\x3c\x8c\xf4\x13\x46\xba\x1d\x79\x71\x88\x1e\x21\xcd\x17\x82\ \x34\x47\x64\x9a\x73\x3f\xa6\x14\xf5\x5d\xda\x30\xcd\xc3\x48\x9f\ \x31\xd2\xcd\xc8\xbb\x31\x6f\xfe\x00\xe9\x68\x05\x87\x2c\xcd\x17\ \x51\xd0\x3c\xd3\x9c\xfb\x51\x52\xac\x77\x69\xc3\x34\x0f\x22\xfd\ \x77\x83\xf4\x63\x20\x9d\x47\x5e\x20\xdd\xef\x87\x2c\xcd\x17\x91\ \xd0\x3c\xd3\x1c\x51\x96\x8f\x28\xfa\x67\xae\xc2\x34\xf7\x91\xfe\ \xdc\x20\xfd\xdc\x45\xfa\xe5\x25\x46\x5e\x20\xdd\x3f\xfa\x10\xa2\ \x39\x22\x12\x9a\x67\x9a\x23\x4a\xdd\x8f\x92\x12\xa1\xb9\x8f\xf4\ \x73\x46\xba\x36\x3a\x46\x5e\x20\xdd\xf7\xf9\x0f\x45\xf3\x4c\x73\ \x84\x47\x73\x44\x59\xf7\xa3\xa4\x34\x68\xee\x23\xfd\x0f\x20\xdd\ \xf4\xa3\x1e\xb1\xf8\x9f\x58\x4b\x7b\x88\xee\x4d\x57\x99\xe6\x88\ \xc4\x69\x8e\xf0\x68\x8e\x78\x64\xfb\x51\x52\xcf\x69\x1e\x46\xba\ \x1e\xb1\x56\xf5\x88\x45\x40\xfa\x12\x87\xe8\xd1\xd2\x7c\x29\x44\ \x73\x44\x12\x34\x0f\xf7\xa3\x9b\xe6\x6d\x3f\x4a\x4a\x81\xe6\x3e\ \xd2\xff\x04\xd2\xeb\x11\x6b\x65\x46\x2c\x20\x5d\x8f\xbc\x38\x44\ \x8f\x8d\xe6\x08\x21\x9a\x23\xd2\xa0\x39\xa2\x8b\xe6\xaa\x9b\xe6\ \x4e\x3f\xee\x50\x8f\x69\x1e\x46\xba\x1e\xb1\xcc\x9b\x0d\x47\xab\ \x2f\x40\xba\x19\x79\xdb\x43\xf4\x8e\x0b\x1f\x42\x34\x47\x08\xd1\ \x1c\x11\x3f\xcd\xaf\xff\x4c\xa2\x13\xff\x4d\x73\x1b\x83\x3b\x03\ \xea\xd3\x5d\xda\xad\x90\x6e\x47\x2c\x5d\x90\xc3\x15\x90\x6e\x47\ \x5e\x1c\xa2\x33\xcd\x9d\x10\xa2\x39\x42\x88\xe6\x88\xde\xd1\x3c\ \xfc\x05\x83\xed\x69\x6e\x63\xa0\xfb\x31\xa0\xfe\xdc\xa5\xdd\x12\ \xe9\x76\xc4\x72\x90\xde\x8e\xbc\xb8\x89\x0e\x9a\x3b\x21\x44\x73\ \xc4\xce\x68\xfe\x8d\xbd\x7b\xdd\x6d\x22\x06\xa2\x00\x3c\x0a\x04\ \xc5\x84\x4b\x0b\xe1\x2a\x48\xa1\x21\xa8\x15\x97\x67\x82\x50\xee\ \x2d\x49\x9a\x06\x78\x7c\xd6\xce\x1e\x4f\x9a\xfc\x18\x2d\x23\x65\ \x6c\x77\xff\x9c\x37\x58\xad\xbe\xe3\xb1\xa7\x3c\x9a\xcb\x1b\x0c\ \x14\x34\xaf\xa2\x13\xbe\x8f\x0e\xe5\x72\x97\xb6\x19\xd2\xb9\xc4\ \x8a\x48\xaf\x4b\xde\xdf\x27\x67\x40\xfa\x76\xb5\xdb\xd2\xfc\xb2\ \x3f\x4c\x68\xae\xdf\x60\xa0\xa7\xf9\xe3\x4e\xfd\x7d\x74\x28\x8f\ \xbb\xb4\x8d\x91\x8e\x12\x0b\x48\x5f\x2c\x50\xf2\x02\xe9\xdb\xfe\ \x68\x69\x7e\xd9\x1f\x46\x34\xd7\x6f\x30\xd0\xd3\x3c\x7e\x1f\x37\ \x28\xf9\x67\xae\x9a\x87\x8b\x25\x16\x90\x5e\x0d\x9a\x60\x12\x0b\ \x48\x47\x7f\x95\x2c\xcd\xa7\x46\x34\x47\xec\x8a\xe6\xf2\x06\x03\ \x03\x9a\x77\x3a\x08\x2a\x86\xe6\x1c\xee\xbd\x7f\xb3\x81\x91\x7e\ \xb8\x39\x89\x55\xff\x3f\xe6\xc2\x54\x89\x09\xcd\x11\x46\x34\x47\ \xec\x8a\xe6\xf2\x06\x03\x13\x9a\x73\x50\x31\x34\xe7\x98\x8c\xaa\ \x0f\x24\x22\x1d\x25\xd6\xfa\x75\x5b\x1c\x12\x0a\x53\x25\x66\x34\ \x9f\x1a\xd1\x1c\xa1\xa4\xb9\xf5\x72\x41\x3d\xcd\x39\xa8\x18\x9a\ \x73\xb8\xd1\x1a\xd2\xff\x1c\xf8\x12\xab\xbb\x58\x00\xe9\xbe\xc4\ \xc2\x21\xa1\x30\x55\x62\x44\xf3\x69\xde\x34\xd7\x6f\x30\xb0\xa7\ \x39\x07\x15\x43\x73\x0e\x37\x02\xd2\x07\x71\xd2\x04\x48\x0f\x93\ \xbc\x7c\x48\x28\x4c\x95\x58\xd0\x7c\x9a\x3b\xcd\xf5\x1b\x0c\xec\ \x69\xce\x41\xd9\xd2\x5c\x46\x7a\x65\xf4\x41\x28\xb1\x22\xd2\x43\ \xc9\x7b\x76\xf1\x15\x93\xbc\xe2\x54\x49\x4b\x73\x27\xd0\x5c\xb1\ \xc1\x20\x61\x9a\x73\x50\xa6\x34\x97\x91\xce\x25\x16\x90\xbe\x59\ \xf2\xce\x33\xa0\xf9\xd2\x88\xe6\x08\x81\xe6\x8a\x0d\x06\x49\xd3\ \x9c\x83\xd2\x7c\xe6\x4a\x8d\xf4\xba\xc4\x1a\xf0\xa4\xc9\x6c\x56\ \x97\xbc\x40\x3a\xfe\x1f\x09\xd3\x7c\x69\x4b\x73\xd7\x84\xe6\xfb\ \x25\xd1\x9c\x83\x92\x7b\xe6\x4a\x1f\xce\x97\x58\x07\xa1\xc4\x62\ \xa4\xd3\xac\x9e\xc4\x02\xd2\xe1\x0f\x61\xaa\xc4\x90\xe6\x4b\x5b\ \x9a\xbb\x26\x34\xdf\x2f\x82\xe6\x22\xd2\x15\xf4\x50\xd2\x9c\x0d\ \xa1\x0f\xe7\x4b\xac\xb0\x1d\x04\x48\x0f\x25\x16\x5f\xb7\xc5\xf7\ \xf1\x4d\x98\x2a\xb1\xa1\x39\xc2\x96\xe6\xae\x09\xcd\xf7\x8b\xa0\ \xb9\x88\x74\x89\x1e\x3b\x7b\x81\x5a\x8f\xf4\xf1\xc1\x3a\xd2\x51\ \x62\x7d\x02\xd2\x71\x48\x28\x4c\x95\x18\xd2\x7c\x69\x49\xf3\x96\ \xe6\x1c\x94\xdc\x5d\x5a\x7d\x38\x5f\x62\x45\xa4\x57\xdf\x87\x2f\ \xb1\x06\xb3\x88\xf4\xd3\x53\x7c\x1f\xc2\x54\xc9\x55\xa5\x79\x4b\ \x73\x0e\x4a\xee\x2e\xad\x3e\x26\x3c\x69\x32\xe0\x12\x0b\x48\xf7\ \x25\x2f\x0e\xd1\xc5\x0b\x1f\x2d\xcd\x43\x94\x48\x73\x7c\x1f\x42\ \x50\xc2\x77\x69\xf5\x48\xe7\x12\x0b\x48\x8f\x25\x2f\xe6\x77\x33\ \xa0\x79\xcf\x88\xe6\x88\x12\x69\x8e\xea\x4a\x0c\x4a\xf6\x2e\xad\ \x1e\xe9\x6f\xe2\xa4\x09\x90\xce\x93\xbc\x40\x7a\xfa\x34\xef\x19\ \xd1\x1c\x91\x27\xcd\x11\x5b\x34\x47\x80\x19\x52\x50\xa2\xcf\x5c\ \xe9\x91\x7e\xed\x08\x6f\x9a\x00\xe9\x55\xc9\xfb\x63\x75\xdd\x16\ \x48\x17\x68\x1e\xc2\x96\xe6\x3d\x23\x9a\x23\xb2\xa6\xf9\x70\x8b\ \xe6\x08\x08\x43\x0e\xca\x93\xe6\x32\xd2\x0f\x8f\xba\xdd\x3d\x5f\ \x62\x01\xe9\x71\x31\xc8\x05\x90\xde\x60\xaa\xc4\x88\xe6\x3d\x23\ \x9a\x23\xb2\xa6\xf9\x70\x8b\xe6\xdb\xd5\x95\x1c\x94\x21\xcd\x65\ \xa4\x8f\xc3\xa4\x49\x77\x8f\x27\x4d\xc2\xa4\x62\xb8\x6e\x0b\xa4\ \xc3\x1f\xc2\x54\x89\x21\xcd\xe7\xff\x4f\xf3\x96\xe6\x43\x15\xcd\ \x39\xa8\x18\x9a\x73\xb8\xe3\x71\x78\xd3\xa4\x1b\x27\x4d\xc2\x24\ \xd6\xf7\xf5\x49\xac\xd5\x21\xba\x30\x55\x92\x2b\xcd\x5b\x9a\x0f\ \x95\x34\xe7\xa0\x62\x68\xce\xe1\xea\x12\x0b\x48\x3f\x0f\x6f\x62\ \xad\x5f\xb7\xc5\x21\xba\x70\xe1\xc3\x82\xe6\x2d\xcd\xf5\x1b\x0c\ \xf4\x34\xe7\xa0\x62\x68\xce\xe1\x8e\x5f\x57\x06\x01\xd2\x43\x89\ \x45\xbe\xc4\x02\xd2\xcf\xe7\x38\x24\xcc\x80\xe6\x88\x2b\x47\x73\ \x84\x09\xcd\x39\x28\x43\x9a\xcb\x48\x1f\x47\xa4\xd7\x25\x16\xd1\ \x23\x20\xdd\x97\xbc\xf8\x3e\x72\xa1\x79\xbf\x50\x9a\xcb\x1b\x0c\ \x8c\x68\xce\x41\xc9\xdd\xa5\xd5\xc7\xe4\x18\x48\x8f\x25\x16\x01\ \xe9\xd5\xf7\x51\x75\x58\x38\x44\x97\x69\x8e\xb0\xa4\x79\xbf\x50\ \x9a\xcb\x1b\x0c\xcc\x68\xce\x41\xc9\xde\xa5\xd5\x23\x9d\x4b\x2c\ \x20\x9d\x4b\x5e\x20\x5d\xa4\x79\x08\x4b\x9a\xf7\x33\xa5\xb9\x7e\ \x83\x81\x21\xcd\x39\x28\xd1\xbb\xb4\x7a\xa4\x77\x31\x69\x12\x91\ \x7e\x82\xeb\xe8\x71\xd2\x5d\xa4\x79\x08\x4b\x9a\xf7\xf3\xa3\xb9\ \x7e\x83\x81\x3d\xcd\x39\x28\xc9\xbb\xb4\x7a\xa4\x73\x89\x05\xa4\ \xfb\xc5\x20\x67\x61\x31\x08\x90\x8e\x6a\x57\x98\x2a\x51\xd0\xbc\ \xa5\xb9\x62\x83\x81\x25\xcd\x39\x28\xc1\x67\xae\xf4\x48\xe7\x12\ \x0b\x48\xdf\x9c\x54\x0c\xfe\x90\x69\x3e\x49\x84\xe6\x88\x04\x69\ \x2e\x6f\x30\xc8\x90\xe6\x1c\x54\x0c\xcd\x39\x26\xbe\xc4\x7a\xb5\ \x3e\x69\x42\xe4\xaf\x13\xfa\x92\x17\x48\x5f\x1d\xa2\x67\x42\x73\ \x44\x82\x34\x97\x37\x18\x64\x49\x73\x0e\x2a\x86\xe6\x1c\x6e\x63\ \xd2\x24\x94\x58\x97\xde\x8c\xc3\x21\x7a\x16\x34\x47\xd8\xd0\xfc\ \x1f\x7b\x77\xbb\xdb\x44\x0f\x44\x01\x78\x44\x02\xc2\xe1\xb3\x7c\ \xf3\x0a\x08\x04\x78\x05\x82\x8b\x4a\x21\x21\x21\x6d\x5a\x9a\x86\ \x25\x97\x8f\xf1\xee\xf1\x10\xb9\x12\x8a\xad\xd1\x68\x47\xfe\x73\ \xee\x60\x7f\x3c\x67\x3d\x33\x1a\xc7\x05\xf5\x69\xce\x41\x66\x68\ \xce\xe1\x42\x89\x05\xa4\x6f\xfe\xbc\xc4\x22\xff\x81\x34\x40\xfa\ \x32\x0e\x11\x16\x0e\x7c\x9c\x59\xbc\xfb\x7f\xae\x7f\x5c\x50\x9f\ \xe6\x1c\x64\x86\xe6\x1c\x6e\xef\xa5\xc9\x06\x25\x56\x8b\xf4\x50\ \xf2\x62\x08\xbd\x60\xe0\x03\x34\xaf\x77\xff\x2d\xd2\x9c\x83\xcc\ \xd0\x9c\xc3\xc5\x97\x26\xfe\xfb\xf0\x1f\x48\xbc\xbe\x86\xef\x63\ \x89\xef\xa3\x60\x17\xc3\xba\xde\xfd\x37\x4c\x73\x0e\x52\x5b\x73\ \x25\x8f\xf4\x50\x62\xad\x36\xd7\x77\x97\x40\xba\x37\xfa\xc5\xce\ \x77\x58\x98\xb4\xcd\xde\xc5\x70\x56\xef\xfe\x9b\xa6\x39\x07\x89\ \xaf\xb9\xd2\x42\x7a\x57\x62\xad\x06\x1b\x20\x3d\x94\x58\xa1\xe4\ \x05\xd2\x33\x76\x31\xd8\xa3\x39\xa2\xd2\xfc\xaa\x20\xe1\x35\x57\ \x7a\x48\x47\x89\x05\xa4\xb7\xe3\x84\x61\x1c\xbd\x43\xfa\x74\x5a\ \x69\x1e\xa3\xd2\xfc\xea\xa0\x62\x9a\xeb\xd3\x23\x45\xfa\xe7\xc9\ \x64\xd0\x8e\x4b\x01\xe9\xb1\xc4\xba\x00\xd2\xe1\x8f\x8c\x81\x0f\ \xeb\x34\xaf\x34\xe7\x20\xc1\x59\x5a\x3d\xa4\x8f\x27\xdd\x4e\x13\ \x20\xfd\x47\x3b\x4e\xb8\x8d\x48\x87\xcf\x33\x06\x3e\xec\xd3\xbc\ \xd2\x9c\x83\xa4\x66\x69\x55\x91\xee\x3f\x10\xbc\x34\x59\xc5\x97\ \x58\xb3\xf5\x16\x48\xc7\x10\x48\xd6\xc0\x87\x3e\xcd\x2b\xcd\x11\ \x52\x34\xe7\x20\x99\x59\x5a\x65\xa4\x8f\x27\x8c\x74\x94\x58\xb3\ \x19\x90\x7e\x72\x82\x21\xc2\x8c\x5d\x0c\x6a\x34\x9f\x57\x9a\x67\ \x5c\x30\x28\x0e\x92\x98\xa5\x55\x47\xfa\xf8\x1d\x90\xce\x25\x16\ \x90\xee\x4b\xde\x38\x84\x9e\xb1\x8b\x41\x9b\xe6\x95\xe6\x08\x49\ \x9a\x73\x90\xe0\x2c\xad\x3e\xd2\x9b\x66\xb2\xdd\x7f\x69\xb2\xff\ \x92\xd7\x00\xcd\x8d\xd0\xbc\xfc\x82\x81\x50\x90\x19\x9a\xa7\x48\ \x0f\x25\x56\x18\x97\x02\xd2\xc3\xb8\x2d\x4f\x82\xf4\x96\xe6\x53\ \x63\x34\x2f\xbf\x60\x20\x16\x64\x84\xe6\x29\xd2\x43\x89\xd5\xac\ \xb6\x8c\xf4\xee\x25\xaf\xef\xb0\x80\xf4\xdc\x5d\x0c\xba\x34\x1f\ \x1a\xa0\xb9\xc0\x05\x03\x99\x20\x0b\x34\x4f\x91\x8e\x12\xcb\x7f\ \x20\x40\x7a\x77\xf8\x20\x94\xbc\x40\x7a\xde\x9a\x44\x5d\x9a\x0f\ \x0d\xd0\x5c\xe0\xb8\xa0\x54\x90\x01\x9a\xa7\x48\x8f\x25\x56\x44\ \xba\x2f\xb1\xc2\x38\xe1\x0e\x48\x0f\x25\x6f\xce\xc0\x87\x2e\xcd\ \x87\x3d\xa3\xb9\xfc\x71\x41\xe1\x20\x33\x34\xe7\x70\x5c\x62\x35\ \x58\xcc\x8b\x71\x42\x46\x3a\xfc\x91\xb1\x8b\x41\x8d\xe6\xc3\x9e\ \xd1\x5c\xfe\xb8\xa0\x78\x90\x19\x9a\x73\xb8\xae\xc4\x02\xd2\x51\ \x62\x2d\x16\x8c\x74\xf8\xbc\x70\x17\x03\xd4\x51\x69\xae\x73\x5c\ \x50\x3e\xc8\x0c\xcd\x39\xbe\x84\x12\x0b\x48\x6f\x4b\xac\xc6\x97\ \x58\x8c\x74\x0c\x11\xf6\x9b\xe6\x23\x6d\x9a\xeb\x1f\x17\x94\x0f\ \x32\x43\x73\x0e\xc7\x2f\x4d\x1a\x2e\xb1\x18\xe9\xf3\x39\x86\xd0\ \xfb\x4c\xf3\x91\x3e\xcd\xf5\xef\xfe\xcb\x07\x99\xa1\x39\x87\x1b\ \x03\xe9\x5c\x62\x31\xd2\x7d\xc9\x1b\x7f\xa2\x97\xec\x62\x50\xa2\ \x39\x42\x8a\xe6\xfd\xba\xfb\x2f\x1f\x24\x48\x73\x7d\xa4\xa3\xc4\ \x62\xa4\xb7\x25\x2f\x26\x6d\xf3\xd7\x24\xea\xd2\x7c\x24\x45\xf3\ \xbe\xdd\xfd\x97\x0f\x92\xa4\xb9\x3e\xd2\x43\x89\xc5\x48\x47\xc9\ \x8b\xef\x23\x77\x4d\xa2\x2e\xcd\x47\x85\x34\x37\x74\xf7\x5f\x3e\ \xc8\x04\xcd\x53\xa4\xfb\x9d\x3f\xb8\x9e\xc3\x48\x0f\x25\x2f\xf9\ \x0e\x0b\x48\xcf\x5b\x93\x68\x80\xe6\x56\xee\xfe\xcb\x07\x99\xa1\ \x39\x87\x6b\x4f\x40\x87\x71\x10\x46\xfa\x3a\x96\xbc\x40\xfa\xf1\ \x71\xce\x2e\x06\x03\x34\x2f\xbd\x60\x60\x9f\xe6\x1c\x64\x86\xe6\ \x1c\xae\x7d\x69\xf2\xe8\xfd\x5f\x48\xc7\x38\xe1\xe5\x12\x48\x87\ \x3f\xfa\x4d\x73\x97\xd2\xbc\xfc\x82\x41\xa5\x39\x07\x99\xa1\x39\ \x87\xeb\x76\x9a\x30\xd2\xbf\x7f\xc5\x38\x21\x90\xde\xce\xd7\x96\ \xef\x62\xd0\xa5\xb9\x4b\x69\x5e\x72\xc1\xa0\xd2\x3c\x0d\x32\x43\ \x73\x0e\x17\x4a\x2c\x46\xfa\xd3\x58\x62\x01\xe9\xdd\xfc\x79\xf1\ \x9a\x44\x5d\x9a\xbb\x43\x68\x7e\x54\x69\x9e\x15\x64\x81\xe6\x29\ \xd2\x07\x8c\xf4\xae\xc4\x5a\xaf\x17\x40\xfa\x74\x8a\x21\xc2\xb2\ \x35\x89\x4a\x34\x47\x1c\x42\xf3\xf3\x4a\xf3\x12\xa4\x8b\xd1\x43\ \x1f\xe9\xb1\xc4\x5a\x03\xe9\x5d\xc9\x8b\xd1\xa8\xec\x35\x89\xba\ \x34\x77\x87\xd0\xfc\xa8\xd2\xbc\x04\xe9\x62\xf4\xd0\x47\x3a\x97\ \x58\x40\x7a\x28\x79\xe3\x4f\xf4\xfc\x35\x89\xa6\x69\x5e\x69\xce\ \x41\x66\xe8\x91\x22\x9d\x4b\x2c\x20\x1d\x25\x2f\x26\x6d\x2b\xcd\ \x2b\xcd\xff\x11\x64\x84\x1e\x29\xd2\xb9\xc4\x02\xd2\x4f\x63\xc9\ \x0b\xa4\xdb\xa0\xf9\x1d\x8b\x34\xc7\xf7\xa1\x1d\x24\x31\x4b\xab\ \x8f\xf4\xf4\xa5\x89\xff\x3e\x4e\xdb\x9d\x8a\x73\x20\x7d\xf6\x4d\ \x68\x17\xc3\x6d\x1b\x77\xff\x7f\xb3\x77\x6f\xcb\x4d\xc3\x60\x10\ \x80\x19\x82\x19\x4e\x25\x2e\x94\xe3\x70\x2c\x30\x03\xc3\x4b\x39\ \x6d\x08\xc5\xb4\x6e\x13\x5a\xd2\xc7\x47\x92\xff\xb5\xec\x72\xc1\ \x85\xf9\xf3\xab\xca\xde\xe8\x0d\x7c\xf1\xad\xd6\x5a\x53\x9a\xc7\ \xe8\xca\x18\xe9\x0a\x34\xb7\x47\x7a\x9c\xb8\x05\xd2\x9d\xd1\x8f\ \x07\x4d\x2c\xf8\x63\xf4\x82\x81\x2d\xcd\x77\x52\xa2\xb9\xc6\x82\ \x81\x39\xd2\x15\x68\x6e\x8e\x74\x17\x62\x15\x65\xbf\x69\x22\x21\ \x16\x9a\x58\xf8\x3e\x16\xe3\x17\x0c\x6c\x69\xbe\x93\x12\xcd\x55\ \x16\x0c\xec\x91\xae\x40\x73\x73\xa4\xbb\x10\xab\x28\xbb\xa6\x89\ \x84\x58\x2b\xb7\xde\xd9\x21\x5d\x2e\x09\xc7\x2e\x18\xd8\xd2\x7c\ \x91\x12\xcd\x95\x16\x0c\xec\x91\xae\x40\x73\x7b\xa4\x4f\x8a\x88\ \xf4\xf8\xe6\x0f\x90\xee\x32\x2c\x7c\x1f\xff\x67\xc1\x80\x34\x57\ \x5b\x30\xb0\x47\xba\x02\xcd\xcd\x91\xee\x8c\x0e\xa4\xc7\x10\x0b\ \x48\x97\x90\x17\xfd\x2b\x05\x9a\x93\xe6\x0a\x0b\x06\x66\x48\x57\ \xa0\xb9\x39\xd2\xbb\x89\xdb\x2e\xc4\xaa\x81\x74\x09\x79\xa5\xe9\ \x3e\x82\xe6\xa4\xb9\xc1\xb8\xa0\x39\xd2\x23\x01\x72\x40\x7a\x0c\ \xb1\x80\x74\x09\x79\x0f\x0f\xa4\xe9\xae\xb0\x60\x90\x2b\xcd\xed\ \xc7\x05\xed\x91\x1e\x09\x90\x03\xd2\x63\x88\x05\xa4\x2f\xbb\x90\ \x17\x48\x57\x58\x30\xc8\x8a\xe6\xf6\xe3\x82\xf6\x48\xd7\xa0\xb9\ \x3d\xd2\x11\x62\x4d\x62\xd3\xc4\x15\xb1\x24\xe4\x05\xd2\x15\x9e\ \x49\xcc\x8c\xe6\xf6\xe3\x82\xf6\x48\x57\xa1\xb9\x3d\xd2\xaf\x36\ \x4d\x42\x53\xb1\xdf\xc4\x82\x3f\x46\x2f\x18\x64\x40\xf3\xd4\xc7\ \x05\xed\x91\x1e\x09\x90\x05\xd2\x27\x57\x9b\x26\x6d\x13\xeb\x12\ \x4d\x2c\x7c\x1f\x8d\xc2\x82\x41\xd2\x34\xcf\x6f\xf7\x5f\x1f\xe9\ \xa0\x79\x46\x87\xfb\x40\x06\x4d\x93\x18\x62\x01\xe9\x33\xb9\x44\ \x27\xcd\x93\xdf\xfd\xb7\x47\x7a\x24\x40\x36\x48\x1f\x36\x4d\x10\ \x62\x2d\x81\xf4\x10\xf2\xa2\xda\xae\xb0\x60\x60\x4a\xf3\xcc\x76\ \xff\xed\x91\x1e\x09\x90\x0f\xd2\x3f\xf7\x91\x8e\x10\x0b\x48\x0f\ \x4d\x77\x7c\x1f\x0a\x0b\x06\xa6\x34\xcf\x6e\xf7\xdf\x1e\xe9\x20\ \x40\x4e\x48\x9f\x00\xe9\x85\x47\xfa\xda\x87\x58\x40\x7a\x55\xf5\ \x9b\xee\xd7\x72\xf7\x7f\x97\xbb\xff\x9b\x44\x3a\x08\x90\x23\xd2\ \x27\x2b\x79\xd3\x04\x48\x97\x26\xef\x0c\x4d\xf7\x6b\xb8\xfb\xbf\ \xab\x3d\x2e\x48\x9a\x0f\x91\x0e\x02\x64\x87\xf4\xf5\x7a\xbf\x76\ \x1f\x48\xaf\x69\x72\x24\x21\xef\x6c\x0e\xa4\x2b\x2e\x18\x54\xdc\ \xfd\x57\xa0\xb9\x01\xd2\xcf\xf2\x44\xfa\xde\x9e\x5f\xcf\x59\xad\ \xca\x0e\xe9\xbe\xa9\xd8\x6b\x62\x85\x90\x77\x2b\x77\xff\x49\x73\ \x22\x1d\x0f\x8f\xae\x0a\x20\x1d\x0f\xbb\xe3\xcd\xd1\xe0\x8f\xed\ \xdc\xfd\x27\xcd\x89\xf4\xb0\x9e\xd3\x43\x7a\xdb\xc4\x3a\x72\x21\ \x2f\x90\xde\x96\x78\x0d\x68\x6e\x3e\x2e\x48\x9a\x13\xe9\x3e\xc4\ \x72\x06\x01\xd2\x25\xc4\x72\xeb\x9d\x40\x3a\x2e\xd1\x0d\x68\x6e\ \xbe\xfb\x4f\x9a\x13\xe9\x3e\xc4\xea\x90\x1e\xdf\xfc\x01\xd2\x17\ \x27\x0b\xb9\x44\xd7\x58\x30\x48\x9f\xe6\xa4\x39\x91\x5e\x02\xe9\ \x31\xc4\x02\xd2\x25\xe4\x45\xff\x6a\x7b\x69\x4e\x9a\x13\xe9\x31\ \xc4\x02\xd2\x07\x4d\x77\x5d\x9a\x93\xe6\xef\x92\xa6\x39\x91\xde\ \x7b\xd3\x04\x48\xaf\xe4\x77\x74\x69\xba\x2b\xd2\x9c\x34\x7f\x97\ \x34\xcd\x89\x74\x59\xcf\x89\x4d\x93\x10\x62\xc9\x25\x88\x20\x5d\ \x8d\xe6\xa4\xf9\xd3\xb4\x69\x4e\xa4\x5f\x5d\xcf\x39\xc6\xef\x84\ \xb3\x19\x90\x7e\x71\x31\x82\xe6\xa4\xb9\xd6\x82\x81\xfe\x41\xa4\ \x7f\xf0\xbf\x83\xec\xd7\xe7\xb1\x69\x22\x21\x56\x6c\x62\x85\x92\ \xa2\xd6\x82\x41\x5e\x34\x57\x58\x30\x30\x3d\x88\xf4\xaf\xa5\x7f\ \xd3\xc4\xb5\xdd\x81\xf4\x18\x62\x01\xe9\xf0\xb9\xc6\x82\x41\x06\ \x34\x57\x5c\x30\xb0\x3f\x88\xf4\xa2\x1c\x3c\x3c\xda\x85\x58\x67\ \x40\x7a\x23\x97\xe8\x1a\x0b\x06\x19\xd0\x5c\x75\x5c\xd0\xfe\x20\ \xd2\x8b\xb2\xb7\x0e\x12\x43\x2c\x20\xbd\x69\x70\x89\xae\x30\x2e\ \x98\x38\xcd\xed\xc7\x05\xed\x0f\x22\xdd\x85\x58\x40\x7a\xf7\x30\ \xef\x12\x48\xf7\x97\x20\x8d\x5c\xa2\x2b\x8c\x0b\x26\x4e\x73\xfb\ \x71\x41\xfb\x83\x48\x2f\x80\x74\x09\xb1\xce\x9d\x41\x80\xf4\x41\ \xd3\x9d\x34\x37\x1b\x17\xb4\x3f\x88\xf4\x18\x62\x01\xe9\x61\x18\ \x24\x2c\xad\x01\xe9\x9a\xe3\x82\x66\x34\xe7\xb8\xe0\xbf\x0f\x22\ \x3d\x86\x58\x40\xfa\xb7\x1f\x6d\x88\xd5\x34\x40\xba\xe6\xb8\xa0\ \x29\xcd\xed\x77\xff\x13\x3f\x88\xf4\xe1\x7a\x4e\x78\xb8\x3a\xac\ \x77\xa2\xa9\x18\x4a\x8a\x7a\x0b\x06\x8a\x34\xe7\xee\xff\xf8\x83\ \x48\x47\x88\x05\xa4\x2f\x8f\xf0\x66\x1c\x90\x0e\x7f\x68\x2c\x18\ \x68\xd2\x9c\xbb\xff\xe3\x0f\x22\x7d\xd8\x34\x41\x88\x55\x55\x87\ \x40\x7a\x5b\xe2\xd5\x19\x17\x1c\x49\x73\xee\xfe\x2b\x1f\x44\xfa\ \x95\xa6\x49\x08\xb1\xfc\x3a\x61\x05\xa4\x9f\xca\xaa\x41\x82\x34\ \xe7\xee\xbf\xfe\x41\xa4\xf7\x9b\x26\x87\xb5\x6f\x9a\x84\x75\x42\ \x20\xfd\xf4\x54\x2e\xd1\x13\xa4\xb9\xfe\xb8\x20\x69\x4e\xa4\xc7\ \xa6\x89\x0f\xb1\xda\x37\x4d\x80\x74\x1f\xf2\xe2\x12\xdd\x60\x5c\ \x70\x9a\xce\xb8\x20\x69\x4e\xa4\x87\x10\x6b\xee\x42\x2c\x20\x5d\ \x42\x5e\x69\xba\x6f\x7c\x5c\x70\x9a\xce\xb8\x20\x69\x4e\xa4\x4b\ \x88\x15\x91\x7e\x30\x9f\x49\xc8\x0b\xa4\x6f\x74\xf7\x7f\x9a\xd2\ \xee\x3f\x69\x4e\xa4\x5f\xfe\x0a\x6f\x9a\x00\xe9\xed\xef\x84\x7e\ \x58\x0a\x48\xdf\xe8\xee\x7f\x93\xd0\xee\x3f\x69\x4e\xa4\xd7\xf5\ \x79\x08\xb1\x80\x74\xd7\x54\xf4\xeb\xb6\x68\x62\x85\x90\x77\x83\ \xe3\x82\xd3\x74\x76\xff\x49\x73\x22\xfd\xd9\xdb\xb5\xfb\x40\x5c\ \x88\x05\xa4\x77\xbf\x13\xa2\x89\x05\x7f\x6c\x1d\xcd\x49\x73\x22\ \xdd\x87\x58\xeb\xba\x46\xd3\x64\x7e\x72\xb9\xc4\xef\x84\x40\x7a\ \x5b\xe2\xdd\x46\x9a\x93\xe6\x44\xba\x0f\xb1\xd6\xf5\x44\x90\x1e\ \x43\xac\x03\x20\xfd\x42\x2e\xd1\x33\xdb\xfd\xd7\xa7\x79\x1e\xdf\ \x07\x91\xee\x8c\xde\x43\x3a\xde\xfc\x01\xd2\x43\xc8\x8b\x6a\xbb\ \xfa\xee\x7f\x46\x34\xcf\x24\xba\x22\xd2\xc3\xc4\x2d\x90\x8e\x10\ \x0b\x48\x97\x90\x17\xfd\x2b\x83\xdd\x7f\x4b\x9a\xdb\x2f\x18\xd8\ \x1f\x44\x7a\xb9\xd7\x43\xba\x84\x58\x82\xf4\x45\xd8\x7c\xc6\x25\ \xfa\xb5\xdd\xfd\xff\xc3\xde\xdd\x34\x35\xed\x45\x61\x00\x67\xa4\ \x38\x5a\x5f\xa8\xfe\xab\x28\xa3\xc2\x1f\xc7\x85\x1f\x81\x19\x96\ \x82\xc0\x80\x0b\x97\x82\x82\x4d\x0b\x6d\x8a\x7d\xb7\xe4\xe3\x7b\ \xcf\xbd\xe7\xe4\x26\x38\xe3\x5d\x64\xda\xbc\xdc\x27\x8b\xf3\x0d\ \xb2\xf8\x3d\xe7\x24\x4f\x06\x9a\xfb\xd4\x60\xe0\x1e\x40\xba\x0e\ \xb1\x04\xe9\x71\x71\x0e\x5f\xba\xe7\xd0\xfb\x9f\x13\xcd\x3d\x6b\ \x30\x70\x0f\x20\x5d\xda\x73\xec\xa5\x09\x85\xbc\xe6\x52\x51\x90\ \x0e\x9a\x57\xb3\xc1\xc0\x3d\x80\xf4\xf9\x2a\x7f\x0e\xd2\x16\xa4\ \x5f\xea\x7f\xc6\xc9\x3f\x47\x75\xc8\xeb\x07\xcd\xbd\x6b\x30\x70\ \x0f\x20\x5d\x3e\x07\x11\xa4\xeb\x10\x4b\xb7\xdb\x0a\xd2\xc9\x1f\ \xd5\xa3\x39\xca\x05\xdd\x03\x48\x6f\xf2\xe7\x20\x16\xe9\xfa\x9f\ \x58\x14\xf2\x0a\xd2\xcd\x92\xb0\x7a\x34\x47\xb9\xa0\x7b\x00\xe9\ \x4d\xfe\x1c\x44\x90\x2e\x21\x56\xdc\x6e\xfb\x80\x97\x84\xe5\xa3\ \x39\xca\x05\xb3\x0f\x20\xbd\xf9\x61\xc3\x56\xdc\x4a\x88\xd5\xbb\ \x14\xa4\xab\x90\x97\x97\xe8\xe5\xa3\x39\xca\x05\xb3\x0f\x20\xfd\ \x63\x02\xe9\xf6\xd2\x44\x90\x4e\x21\x2f\x2f\x09\x0b\x47\x73\x94\ \x0b\x2e\x61\x00\xe9\x4d\x41\xba\xbd\x34\x11\xa4\x0f\x24\xe4\x65\ \xa4\x17\x8a\xe6\xe8\xfd\x5f\xea\x00\xd2\xed\x3f\x4d\x0c\xd2\xe9\ \x52\xf1\x86\x42\x5e\xb9\xe4\x2d\x14\xcd\xd1\xfb\xbf\xd4\x01\xa4\ \xdb\x10\x2b\x46\xba\x84\xbc\x82\xf4\x7c\x68\x8e\xde\xff\xfc\x07\ \x90\x2e\x21\x56\xc0\x48\x37\x21\x96\x2e\x3e\xb0\x48\xcf\x83\xe6\ \xe8\xfd\xcf\x7f\x00\xe9\x36\xc4\x12\xa4\xeb\x10\x8b\x8b\x0f\x04\ \xe9\x9d\x85\xd0\x1c\xbd\xff\x05\x1f\x40\xba\x0d\xb1\x04\xe9\x3a\ \xc4\xa2\x90\x37\x89\xf4\xce\xe3\x05\xd0\xbc\xf0\xbd\xff\xa0\x39\ \x90\x7e\xf7\xc7\xa3\x12\x62\xa5\x91\xde\x21\xa4\xfb\xd7\xfb\x0f\ \x9a\x03\xe9\xe9\x4b\x13\x1b\x62\xa5\x90\xde\x21\xa4\x7b\xd9\xfb\ \x0f\x9a\x03\xe9\xf6\xd2\x24\x0e\xb1\x82\x18\xe9\x5d\x42\x7a\x87\ \x90\xee\x53\xef\x3f\x68\x2e\x03\x48\xb7\x97\x26\x36\xc4\xb2\x48\ \x1f\x13\xd2\xfb\x8c\xf4\xcc\x34\x97\x01\x9a\x97\x6e\x00\xe9\x36\ \xc4\x4a\x20\x7d\x4c\x48\xef\x33\xd2\xb3\xd2\x5c\x06\x68\x5e\xba\ \x01\xa4\x47\x91\x0e\xb1\x26\xa9\x4b\x93\xc1\x98\x90\xde\x67\xa4\ \x7b\x4b\x73\xd0\x1c\x48\x8f\x2b\x6e\x53\x48\xbf\x21\xa4\x77\x05\ \xe9\x7e\xd2\x1c\x34\x07\xd2\xe7\x61\x38\x69\x44\x14\x62\xfd\x03\ \xe9\xb5\x9a\xdf\x34\xdf\xf6\x95\xe6\x40\xba\x32\x7a\xb8\x16\x45\ \xc9\x4b\x93\x80\x90\x7e\x9d\x40\x3a\xf9\xc3\x67\x9a\x6f\x7b\x4b\ \x73\x20\x9d\xdb\x73\x92\x48\xef\xdd\x41\xba\x59\x12\xfa\x4b\xf3\ \x6d\x8f\x69\x0e\xa4\x53\x7b\x4e\x38\x49\x22\x7d\x44\x48\xff\x15\ \x23\x5d\x96\x84\xd5\xa3\x39\x1a\x0c\xdc\x03\x48\xa7\x10\xeb\x6f\ \xa4\xb7\x63\xa4\xf7\x1f\xf1\x92\xb0\x7a\x34\x47\x83\x81\x7b\x00\ \xe9\x1b\x5b\x69\xa4\xaf\x10\xd2\xdb\x82\x74\x0a\x79\x79\x89\x5e\ \x7a\x9a\xa3\xc1\x20\xfb\x00\xd2\xa7\x49\xa4\x9b\x90\x97\x97\x84\ \x25\xa6\x39\xca\x05\xb3\x0f\x20\x7d\x4e\x48\x8f\x12\x48\xb7\x21\ \x2f\x23\xbd\x40\x34\x47\xb9\xe0\x92\x07\x90\x7e\x7b\x07\xe9\x57\ \x12\xf2\x0a\xd2\x0b\x44\x73\x94\x0b\x2e\x7b\x00\xe9\x1b\xe9\x7f\ \x36\xa8\x10\x8b\x43\x5e\x46\x7a\xbd\x5e\x18\x9a\xa3\x5c\x70\xc9\ \x03\x48\x9f\x4d\x9a\xd3\x24\xd2\x2f\xe9\xc7\xbc\xfa\x73\x29\xfb\ \x7e\xe4\x40\x73\x94\x0b\xe6\x3f\x80\xf4\x2d\xfa\x1c\xa4\x11\x4d\ \x2d\xd2\xd5\xfb\xd1\x52\x2f\x08\x87\xbc\x74\xc9\x4b\x4b\xc2\x9c\ \x68\x8e\xde\xff\xfc\x07\x90\x4e\xed\x20\x82\x74\x0e\xb1\x74\xc8\ \x6b\x42\x2c\xb3\x24\x5c\x00\xcd\xd1\xfb\x5f\xfc\x01\xa4\x4b\x3b\ \x88\x46\x3a\xff\xd3\x44\xbd\x20\xd7\x84\xf4\xae\x6a\x80\x96\x25\ \xe1\x02\x68\x5e\x86\xde\x7f\x0c\x20\x7d\x35\x9c\x31\xd2\x23\x0a\ \xb1\x54\xc8\x4b\x21\x96\x41\xba\x5a\x82\xf0\x92\x30\x03\xcd\x4b\ \xdc\xfb\x8f\x01\xa4\xef\x08\xd2\x4d\x88\x35\x52\x46\x17\xa4\xeb\ \x90\x97\x97\xe8\x19\x68\x5e\xde\xde\x7f\x0c\x20\x7d\xe7\x36\xd4\ \x48\x1f\xf5\x66\x89\x10\x4b\x23\x3d\x75\xc9\x9b\x81\xe6\x65\xeb\ \xfd\xb7\x34\xc7\x00\xd2\xe9\xd2\xa4\x31\x51\x21\x56\x68\x2f\x4d\ \xe8\x12\x6b\x2c\x21\x6f\x4d\x90\xee\xa0\x79\xf9\x7a\xff\xdd\x34\ \xc7\x00\xd2\x93\x21\xd6\xf5\x94\x90\x4e\x21\x16\x87\xbc\xca\xe8\ \x82\x74\x07\xcd\x33\x34\x18\x14\x98\xe6\x18\x40\xfa\xed\x7c\xcd\ \x84\x58\x41\xd0\x26\xa4\x9b\x4b\x2c\x09\x79\x05\xe9\x8a\x1f\x6e\ \x9a\xcb\xa8\x0e\xcd\x31\x80\x74\x6e\x97\x5a\xe9\x05\x81\xb9\xc4\ \xea\x27\x43\x5e\x83\x74\xf2\xb9\x93\xe6\x32\xaa\x44\x73\x0c\x20\ \x5d\x42\x5e\x7b\x89\x65\x43\x5e\x7d\xa9\xc8\x4b\x10\x07\xcd\x65\ \x54\x8b\xe6\x18\x40\x7a\x68\x42\x5e\x0e\xb1\x46\x7c\xa9\x78\x35\ \x18\x0f\xcd\xa5\xa2\x2c\x41\xbc\xa4\x39\x06\x90\x4e\xef\x47\xc4\ \x21\x16\x87\xbc\x2d\xfe\xdc\x56\xbf\x1f\xb2\x04\xf1\x92\xe6\x18\ \x40\xba\x5e\x82\xd0\x8f\x79\x83\x38\xe4\xa5\x10\x4b\x23\x9d\x42\ \xde\x56\x6a\x09\x52\x29\x9a\xbb\xdf\x0f\x0c\x20\x7d\xd6\x88\x2f\ \x15\xa7\x37\x5d\x1d\xf2\x9a\x10\x6b\x28\x9f\xa3\xd7\xeb\x82\xf4\ \x8a\xd1\xdc\x1d\x5d\x61\x00\xe9\xea\xfd\x50\x21\xaf\x7c\x6e\xdb\ \xa5\x90\xb7\xa5\x42\x2c\x7b\xc9\x5b\xab\xf3\x11\x56\xe9\x68\x9e\ \xbd\xc1\x00\x03\x48\xb7\x97\xbc\xe6\x52\xd1\x84\x58\xc3\xa1\x29\ \x06\xa9\xa9\xc7\x5c\xf2\x96\x82\xe6\xf9\x36\x18\x00\xe9\xba\x2a\ \xa6\x62\x43\xbf\x1f\xea\x05\x99\x24\x2e\x79\x07\xea\x77\x71\xe4\ \x0f\x4d\x8f\xe1\xfa\x3a\x45\x52\x82\xea\xba\xe2\xc2\xe6\x93\x4d\ \x5e\x46\x68\x1d\x73\x74\xaa\xa8\x7b\xb0\xf9\x49\x3d\x6f\xf6\xf7\ \xf7\xf6\x9e\x7e\x3e\x3c\x3a\xfa\xff\xf4\xf4\xf8\xf8\xe0\xe4\xe4\ \xcb\xee\xde\xc5\xc5\xd7\xaf\x87\x3f\xbe\x7f\x3f\x3f\x3e\x3f\x3b\ \xfb\xb6\xfb\x87\x9d\xb8\x37\x02\x10\x06\xc1\x00\xea\x38\xde\xc5\ \x1d\x1c\x01\x12\x02\x4a\xfc\xd9\x7f\x0c\xbf\x02\xbd\x14\x96\x96\ \xbe\xe2\x35\x77\x2a\x04\x7d\xaa\x7a\x6a\x54\x8f\x0a\x91\x99\xed\ \x16\xe5\x35\xc3\x5b\x5b\x97\x88\x34\xb9\xf3\x05\x22\x66\x26\x7e\ \x9a\xe1\xab\xfe\x86\x34\x4e\x17\xfb\xf5\xb3\xe2\x36\x0c\xc4\x71\ \x3c\x73\xda\x87\xf0\xb1\x25\x2a\x6a\x6d\xc9\xfa\x63\x89\x94\x2d\ \xbb\xed\xb1\xef\xff\x3e\xfd\x79\x2c\x77\x26\x58\x21\x50\x48\x2f\ \xd9\x39\x7c\x21\x90\xf8\x12\x7f\x18\xe9\x6c\xbd\x1f\x5c\x34\x98\ \x68\xac\xb5\xd9\x3e\x38\x44\x54\x69\x4f\x09\x21\xc4\x12\x31\x09\ \xc9\x29\x63\x2e\x6b\x96\x5c\x6b\x5d\x2a\x32\x73\x0a\xe6\x56\xf8\ \x2b\x79\xe1\xdf\xe2\x29\x21\x05\x22\x5b\xac\x31\x2e\x3b\xe7\x86\ \x3c\x78\xef\xe3\x84\x09\xd3\x34\x8e\x34\x62\xe8\x8c\x59\x33\x06\ \x7c\x6a\x99\x30\x92\xb8\x05\xbf\xcd\xbe\x05\x8f\xc2\x70\xea\xdf\ \x14\x89\xc3\x48\x52\x8b\x31\x17\x63\x38\xd6\x5e\xac\x6d\x59\x24\ \x84\x99\x39\x01\x23\x79\xdb\x13\x7f\x46\xcc\x96\x8c\xe1\xbc\xaa\ \xd4\x5a\xdf\xeb\x96\x52\xde\x4b\x69\x79\xd9\x93\x7e\xa4\x94\x0e\ \xb9\x60\x7e\x1f\xb3\xfc\x5a\x30\x6b\xe6\xef\x33\xe6\x89\xb3\x02\ \x71\xa3\xf8\x30\x0f\xf6\x41\x94\x1b\x8d\x10\x40\x83\xc3\x34\x5a\ \x98\x86\x04\x3e\x4a\x59\x3a\x2a\xde\x5a\xd2\x8e\x64\x25\xc4\xac\ \xf8\x29\x40\x47\x89\xac\x35\xd5\x30\x12\xbc\xbb\x11\x46\xf8\x95\ \x87\x05\x54\x54\x48\xa2\xa8\xf0\x18\x49\x6e\x11\x15\x2a\x1a\x84\ \xc4\x60\x5a\x6c\x57\x05\xb1\x0a\x8e\x02\x21\x89\x18\xc9\xee\x83\ \x69\x6c\xa9\xaf\x15\x23\x61\x1f\xac\xa2\x05\x02\x5e\x52\x4b\xd7\ \x87\x52\xc1\x20\x0e\x61\x01\xcf\x9d\xd3\xa7\x2f\xc3\x79\xf2\x9e\ \x9c\x33\xe6\x7f\x20\xb9\x5a\x1d\xd7\x48\x00\x22\x29\x1a\x7a\x7f\ \x08\x8d\xae\x94\xb9\xf6\x7d\xf0\x12\x31\xd9\x01\x48\xf6\xb2\x44\ \x38\xfd\x85\xc1\x39\x2e\x8c\xdb\x5b\x43\x16\x06\x83\x38\xc6\x76\ \x7d\x90\xf8\x08\xf7\x7c\x00\xc3\x71\x6b\x08\x0d\xa5\x42\x27\xdd\ \xf3\xa1\xb6\x86\xa8\xd0\x61\x01\x4f\x1e\x00\x99\x3e\x9f\xc7\xc9\ \xae\xff\x74\x70\xec\xe3\x51\x51\x52\x88\x28\x68\x1f\xbc\x3f\x38\ \xd7\xfb\xa3\xf9\x28\xe5\xfe\xf9\xaa\x2e\x9b\x8f\x0c\x1f\x11\x40\ \x12\x91\xa5\xdd\x87\x3e\x64\xed\xb9\xe9\x43\x16\x46\x9f\x46\xed\ \x1e\xa8\x4c\xdf\x87\xa6\x21\x21\xf1\xd1\x3f\x50\x29\x1f\xb9\xe7\ \x43\xaf\x8e\xd2\xf3\xa1\x68\xf4\x23\x07\x2a\xa5\x42\x87\x05\x7c\ \xe4\x74\x5e\x2f\x21\x66\xf2\xc3\x10\x36\x24\x98\xf8\x80\x34\x24\ \xc8\x76\xd2\xaa\xb7\x4e\x5a\x97\x18\x77\x1f\xea\x26\x72\xcc\x7c\ \x9d\x45\xef\x0f\xa2\x64\x31\x85\xcf\x57\xc3\x20\x3e\xfa\x47\x2b\ \xed\xa3\x7f\xf5\x10\x1a\xf7\xaf\x1e\x57\x3e\xf6\x30\x92\x96\x46\ \xa3\x65\xde\x12\x44\x4a\xef\x68\x85\x88\x94\x2a\x3e\xfe\xed\xea\ \x01\x1e\x7a\x7f\xec\x51\x3e\x9a\x80\x8f\x9c\xfe\xb0\x63\x77\xbb\ \x6d\x02\x41\x18\x86\x8d\xaa\x28\x17\xc1\x01\x52\x59\xb3\x04\x30\ \xd0\xb5\xa9\x51\xaa\x46\xfd\x39\xcc\xfd\xdf\x4f\x3f\x66\x3f\xd8\ \x89\x77\xdd\xf6\xc0\x87\x8c\x94\x57\x89\x92\xc3\x3c\x9a\x1d\x1f\ \xcb\xd6\xe4\xd8\x21\x63\x33\x62\xb2\x1c\xe3\x1e\x1d\x2d\xcf\x42\ \x4a\xea\x5c\x07\x92\x8b\x5b\xf3\x4a\x29\xf1\x4d\x92\x0e\x69\x2c\ \x71\xc1\xc7\x6c\x01\x73\xca\x79\x7f\xe8\xa7\x95\x3a\xd2\x91\xa4\ \x94\x68\xa7\x30\xf3\x9a\xb4\x94\x3c\x5c\x22\x36\x29\xc5\xaa\x4d\ \x92\x92\xa2\x37\x49\x5a\x8a\x3e\xcd\x93\x52\x82\x8f\xbf\x1c\x21\ \xef\x3c\x42\xd2\x9b\xe4\x1b\xb3\xe7\x50\x1c\xcb\xde\x74\xd5\xc9\ \xf6\x18\x41\xf2\xf8\x00\x09\xe5\x0d\x9b\x14\x3e\xbc\x28\x05\xc9\ \xae\x80\x22\x51\x52\xd4\xf5\x9e\xce\x34\x11\x93\x43\x04\x18\xb8\ \x35\x97\xe5\xf4\x98\xe5\xf4\xc8\xf3\x70\x7a\x08\x03\xaa\xc8\x3a\ \xcc\x92\x2a\x25\xe5\xac\xf2\x81\xcb\xc4\x08\x92\x38\x6a\xa7\xfc\ \x4b\x8a\x7a\x73\x09\x8d\x28\x5a\x0a\x7d\xdc\x93\x12\x7c\xe8\x78\ \x24\xcc\x5b\x48\x40\xa2\x12\x36\x89\x96\xb2\xe7\xf0\xb9\xe8\xca\ \xb6\x36\x79\x57\x55\xd5\x70\xc2\xd8\xc7\x86\xf2\xfa\x9e\x5c\xb2\ \x71\xf4\x8b\x85\x52\xf8\xf0\x62\xe6\xed\x8e\x17\x2e\x17\x86\x66\ \xee\x27\x73\xfe\xef\x70\x95\x37\x16\xab\xc3\xfa\xd5\x21\x9f\x41\ \x71\x6b\x6c\x2a\x1a\x1f\x63\x4c\x63\x8c\xfc\xc8\x04\x33\x4e\xb8\ \x6c\x66\x22\x38\x1e\x09\x33\x6f\x09\x52\x04\x49\xc8\x85\xa1\x19\ \xe4\x8e\x94\x90\x48\x0a\xf3\x6b\x4d\x52\xca\x0d\x92\xe7\x28\x4a\ \x0a\x69\xa4\xa5\x30\x7b\x0e\x4f\x75\x71\x7c\x69\xfb\xba\x36\x40\ \x82\xf1\xa9\x30\xc3\xe3\x62\x2b\xcf\x65\x91\x82\xc9\xbc\x94\x0f\ \xaf\x2f\x9c\xd2\x2b\x12\xa6\x59\xfe\xdb\xe3\x50\x8f\x26\x74\x25\ \x8d\x86\x34\xf8\xa9\x6e\xbf\xac\x0e\x79\x4b\x75\xa4\x61\x30\x6b\ \xea\xda\xd6\x18\x46\xfd\x42\x90\x30\x94\x12\xe7\x2c\x39\x61\x26\ \x46\x49\x19\x95\x14\x95\x20\x65\x48\x4a\xb1\x5f\xb7\x24\xa5\xb8\ \x3b\x52\xbe\xc3\x88\x64\xfa\x0f\x29\x6f\x8c\xde\x29\xc1\xc7\xef\ \x9b\xec\x39\x94\x4f\x9f\x8a\xa2\x7b\x29\x4b\x20\xc1\x48\x46\x83\ \x79\x5c\x44\x5e\xe0\xa2\x16\x4b\xd6\x8b\x14\xc4\x2d\x5c\xce\xf8\ \x52\xb7\xfd\xe4\x23\x5c\xe2\x5c\x19\x8a\xe2\xc1\x31\x0c\xfa\x55\ \x05\x96\x55\x53\x81\x06\x41\xb4\x6d\x3d\xb4\x18\xa4\x2c\x73\x7e\ \x87\x50\x0a\xd3\xac\x31\x19\xc8\xdc\xc6\x75\x18\x89\x20\x61\x82\ \x94\xb4\x99\x5e\x49\xd1\x3b\x45\x9b\x79\x1d\x98\xa4\x94\x1f\x19\ \x26\x4e\x90\x72\x56\x52\x7e\xc2\x48\x32\xcf\x3e\x82\x84\xb9\xbe\ \xc3\x88\x24\x16\xb0\xe7\x0f\x3b\x76\xcf\x9b\xb8\x12\x46\x71\xdc\ \x08\x59\xdb\xba\xb0\xe4\xc2\x85\x25\xcc\xf8\x05\x63\xe3\x0d\x79\ \x41\x91\x12\x6d\xd2\xde\x4f\x72\x53\x45\x80\x42\x3e\xfe\x3d\x73\ \x66\x3c\x8f\x0d\xb3\xab\xd5\x4d\x4a\x4e\xf1\x17\x44\x49\xba\x9f\ \x1e\x43\x90\x44\xe1\xbc\x5a\x64\x4a\x15\x35\x56\xe4\x58\xfb\x5d\ \x69\x9a\xb6\xc1\xba\xa6\xb1\xe8\xd2\x29\x17\x4a\x59\xb9\xdc\x74\ \x9d\x96\xd2\x4f\x92\x12\xce\x79\x9c\x9e\x34\x45\xa8\x02\x2c\xb6\ \xd3\xef\xaa\x48\xa3\x24\x0d\x28\xc8\xd3\x1c\x43\xea\x3a\xad\xeb\ \x5a\xe9\xd4\xcc\x26\xc7\x18\x72\x91\x94\x2e\xab\x21\xd5\x0c\x70\ \x98\xe5\x0d\xb9\x88\x19\x93\xdf\x98\xd9\xb9\x3c\x74\x18\x73\xdb\ \x63\xcc\x84\x0b\x91\xd8\xdc\x0f\x29\x7f\x92\x0b\x43\x2e\x26\x22\ \x85\x48\x86\x3c\xb9\xbc\xb8\xfc\xd8\x62\x0c\x91\x0c\x11\x29\x44\ \x72\x96\x6b\x82\x53\x12\xd7\x30\x02\x24\xd8\x32\xc3\xd6\xdf\x14\ \x35\xa0\xab\xc1\xa5\x6b\x30\xa6\xaf\x2a\x2b\x65\x03\x28\x46\xca\ \xca\xc4\x4a\xc1\x61\xc1\x98\x9b\x51\x26\x70\xb6\xd3\xb8\xdf\x6b\ \x67\xf6\x63\xb8\xbd\x1a\xfa\x38\xe0\x4c\x18\x1a\xb9\x06\xa1\x54\ \xaf\x54\x5d\x23\x4a\x4d\x23\x66\x10\x9a\x19\x52\xda\x88\x14\x22\ \xb1\x11\x29\x67\x66\xb6\x36\x45\x71\x07\x32\x8c\x48\xe9\x3c\x52\ \x26\x01\x97\xc7\xd4\x84\x48\x6c\x44\x0a\x91\x30\x44\xf2\xca\x88\ \x8f\xbf\x90\xb2\x05\x92\xe7\x3b\x06\x48\xfe\xd9\x5d\xe4\x9a\xe0\ \xed\x23\x4b\x92\x38\xce\x43\xac\x99\x63\xd5\xf7\x84\xde\x16\x90\ \xb2\x54\xd8\x1a\x21\x17\x5e\x17\x72\xa9\x20\xa5\x62\x96\x9b\x25\ \x56\xae\x31\x66\xc5\xc8\x17\x4c\x4c\x8b\x5d\x44\x54\x60\x3a\x50\ \x46\x1a\x98\x7e\xa0\x32\x34\xa8\x22\x25\x83\x0c\xeb\x16\x0c\x86\ \xe0\x55\x96\x31\x7e\x29\xcc\x86\x21\x12\x97\xd5\x90\x66\xd6\x60\ \xcc\x0d\xb9\x9c\x9b\xf1\x4a\x69\xbd\x52\x98\x5b\x67\xe6\x91\xd1\ \x52\xee\x53\x1b\xef\x4d\x11\x29\x44\x22\x79\xb2\x99\xf8\x70\x79\ \xde\x62\x0c\x91\xf8\x72\x4d\x70\x9c\xbf\x7d\x9c\x4e\x4a\x23\xa9\ \x63\x2c\x8f\xb0\xaf\x26\x74\xde\x80\x64\x74\x99\x80\x44\x61\x2d\ \xa0\xe4\x5d\x8e\xf5\xfa\x39\x2c\xad\x30\x22\x39\x4b\x29\x11\x3d\ \x72\x71\x9c\x1e\x60\x42\x08\xcc\xd0\xc0\xf4\xc7\x8c\x06\x57\x83\ \xb7\x22\x53\xbd\x1a\x54\xb4\x96\xc6\x7c\xde\xce\xf9\x96\x21\x92\ \x21\xbd\x4b\xea\xb2\x51\x18\x43\x2e\xa5\x8d\x48\x69\x44\x4a\x75\ \x26\x65\x6b\x22\x52\x0a\xaf\x94\xf6\xc1\xe5\xd6\x2b\xa5\x17\x29\ \xb8\x24\x40\xc2\x94\xbf\x60\x84\x59\xbd\xc2\xc8\x65\x44\xca\xf8\ \x92\xd8\x23\x22\x48\x7c\xb9\x26\x88\xf6\xc7\xe3\xdb\xe2\x03\xcb\ \x4e\x98\x3a\x25\x49\xa2\x92\x2f\xa6\x4e\x0c\x35\x20\x09\xb1\x0a\ \x50\x8c\x94\x31\x12\xac\xd3\x21\x92\xbe\xc1\x98\x94\xa1\x19\x1b\ \xbf\x19\x03\x02\xc1\x5b\x06\xdb\x54\x7c\xaa\xd2\xff\x20\x1f\x4e\ \x87\x3e\x0e\xb8\x10\x9a\xc1\x1c\x73\x09\x0b\xbe\x72\xe9\x6c\xa8\ \xc7\xa6\x1f\xe2\x97\xa2\x44\x4a\xee\x95\xd2\x88\x14\x22\x61\x88\ \xe4\x8e\x29\xb0\xdd\x10\xf1\x41\x1a\x97\xf1\xde\x14\x91\x42\x24\ \x36\xaf\x2e\x44\xf2\xc4\xcc\xb0\x17\x9b\xd1\x25\xf9\x93\x80\x6b\ \x82\xc3\xe1\x73\x1f\xee\xa1\x64\xfe\x86\x51\xca\xd7\x02\x65\x9a\ \x1a\xa4\x00\x49\x6d\x6e\xca\xf0\xf8\xb6\x64\x00\x25\x2b\x32\x8c\ \x52\x3a\x35\x48\xe1\x4d\x61\xfa\x51\x68\xc6\xc4\x63\x06\x6f\x4b\ \x04\x2a\xc0\xc2\xd0\x68\xf4\x9f\xd5\xe6\x74\x68\x1a\x58\xab\x0f\ \x06\x40\x84\x08\xc0\x16\xe1\x24\xad\x47\x0a\xd3\x33\xda\x4c\x0a\ \x24\x4c\xb6\x21\x12\x27\xa5\x64\x6a\x6c\x65\xe2\x7f\xfa\xaa\x7c\ \x52\x88\xc4\x66\x24\x45\x2e\xc9\xd8\x07\x69\x98\xa4\xe2\x83\x34\ \x98\xd2\xef\x83\x34\x98\x97\x51\x80\xe4\xc7\x8c\x81\x94\x67\x20\ \xf9\x5d\xae\x09\xde\x83\x43\x7c\xf8\xfc\xdc\x47\x7b\x28\x09\x8f\ \xd8\x97\x02\x64\x46\x4a\x86\x9c\x14\xa0\x24\xe6\xc9\x2d\x8e\xa3\ \xc8\x9c\x93\x30\xb4\x52\x0a\x40\x31\x52\x5a\x04\x52\x30\x9d\xba\ \xaf\x31\x46\xa4\x78\xcc\x30\xd5\xc6\xbe\xca\x73\xa6\xcf\xcd\xdf\ \x6a\x79\x59\xb6\x68\xf5\xe9\xd0\xb7\x22\x5c\x1b\x10\x00\xbb\xd6\ \xa7\x0d\xe1\xab\x68\xcc\xc5\x2b\x65\x74\x49\x26\xcf\x5c\x2e\xa5\ \x57\x0a\xa8\xcc\xf2\x9c\xc1\x25\x01\x12\xa6\xda\xc2\x08\xb3\xbc\ \x23\x12\x27\x65\xc7\x68\x29\x0f\x05\x03\x24\xb7\xad\x4d\xf7\xd8\ \x61\xcc\x7d\x8f\x31\x3f\x53\x8c\x21\x92\x5f\x2e\xaf\x36\x23\x29\ \x40\xe2\xbb\x24\x3c\x22\x7f\xc8\x35\xc1\xbf\xef\xa7\xf7\xf7\x20\ \x88\x0f\x50\x12\x7f\x62\xd1\x1e\xfb\x7f\xb1\xa7\xe8\x08\x25\x16\ \xc9\x69\xf8\x78\x23\x48\xf4\x39\x59\x8e\x90\x60\x08\x91\x5c\x84\ \x66\x4c\xa6\x66\xd2\xb3\x00\x05\xe3\xbe\x9c\x72\x1f\xc3\x61\x43\ \x0b\x80\x05\xd8\x28\xa2\x28\x8e\xd7\xb1\xa6\x11\x63\x08\x7f\x66\ \xd3\x86\x18\xd3\x49\xe4\x92\xc0\x88\xef\x92\x28\xf1\x41\x1a\x36\ \xa4\xc1\x34\xe2\x83\x34\x18\xd2\xb0\xd9\x89\x0f\x79\xe6\x6a\x5b\ \xef\x25\xe1\x11\x61\xec\x11\x71\x3e\x6c\x44\x4a\x29\x3e\x48\xc3\ \x86\x34\x98\xbf\x10\x70\xcd\x7f\xec\x9d\x5b\x6f\x22\x49\x12\x85\ \x63\x85\xd0\xbe\xd6\x43\x49\x3c\xec\x83\x25\x63\x66\xed\xb5\xf7\ \x7e\xd5\x4a\x23\xed\xee\x2f\x71\x1b\xc6\x18\x37\xf8\x52\xc5\x50\ \xfc\xfc\x8d\x3c\x11\xae\xc8\x66\xc2\x95\x80\xc7\xd3\x34\xce\x94\ \xf8\xc4\xcc\x48\xf3\xf6\x29\xe2\xe4\xa9\xc2\x34\x5e\xcd\x66\x4f\ \x4f\x83\x20\xc9\x80\xa8\xae\xd9\x94\x7d\xb1\x2e\x82\x60\x2c\x49\ \xa5\x92\xf0\xe7\x45\x12\x3e\x43\x09\x26\x7c\xce\x55\x92\x7e\xef\ \x8a\x1d\x61\x40\x12\x00\x6a\x38\x40\x6c\x69\x4d\x51\x0c\x87\xe2\ \x4c\x6b\x8f\xca\x14\x02\xb9\x86\xef\xf0\xbf\x0f\x7e\x9c\x89\x24\ \x2c\xc8\x19\xa3\x38\x63\x51\xca\x33\x98\xe2\x4c\x12\x33\x25\x5a\ \xb7\x2c\x93\xc4\xa6\xd8\x24\x19\xf9\xa6\x0c\x3d\x53\x20\x89\xc2\ \x35\x85\x87\x88\x37\x49\x30\x44\x00\x0c\x11\x81\x0c\x11\xc3\x7f\ \x80\x68\x92\x84\x4d\x8b\x3f\x80\x6d\x5a\x58\xb2\x52\xc8\xa0\xfb\ \xc9\x64\x3c\x5e\x8d\xc7\xb3\x59\x33\x9b\x61\x9c\x40\x97\x5d\x01\ \xc1\x82\x29\x45\x5d\xb7\x92\x2c\x45\x92\x7b\x5e\xb7\x5a\x49\x18\ \x97\x25\x9f\xf3\xa2\x10\x49\xfa\x57\x06\xe8\xa2\x80\x33\xc0\x17\ \x33\xc5\x00\x17\x62\xc8\x7f\x68\x03\x39\x10\xed\x52\xa5\x4e\x0d\ \xa8\x51\x0e\x06\x8c\xb2\x74\x27\xc9\x0b\x6c\x92\xf0\x10\xf1\x26\ \x89\x6d\x5a\x50\x43\x01\x35\x04\x50\x03\x10\x35\x34\xb8\x7b\x93\ \x04\x6a\x08\xa0\x86\x02\x6a\x08\xa0\x06\x00\x35\x04\x1b\x6a\x28\ \xa0\x86\x00\x6a\x28\x2c\x89\x64\x03\xb6\x04\x2d\x16\x93\xc9\x8b\ \x24\x8c\x19\x9f\x66\x0f\x04\x49\x88\x4f\x49\x2c\x49\x7f\xbd\x0e\ \xeb\x16\x9f\xd3\x20\xc9\xc9\x3d\xe7\x91\x51\xc3\xe7\x22\xe0\x32\ \xec\x5c\x97\x25\x26\x49\x51\x88\x24\x6a\x8a\xc1\x4c\x39\x4d\x9a\ \x62\x59\x9c\x61\x77\xb9\x3d\xf8\x21\xc3\xc1\xfc\x50\x0c\x06\xf1\ \x3f\x16\x9e\x1f\xb6\x69\x41\x0d\x05\xd4\x10\x38\x71\x9d\x01\x35\ \x04\x50\x03\x80\x1a\x02\xa8\xa1\x80\x1a\x00\xd4\x10\x40\x0d\x05\ \xd4\x00\xa0\x86\x00\x6a\x08\x9c\xd1\xc1\x80\x1a\x02\xa8\xa1\x70\ \x42\x7a\x0a\x19\x34\x5d\x2c\x96\x2a\xc9\x64\x7c\x0f\x49\x76\x87\ \xcc\x1e\xc2\x96\x46\x3c\x44\x6c\xd3\xe2\x83\x4d\x6b\x84\x38\xd2\ \x30\x86\x4d\x3b\x44\xca\x12\x92\xc4\xa6\x18\x6c\xa6\x7c\x07\x48\ \x69\xa1\x30\x53\x4c\x8d\xd3\xf0\x4d\xd4\x00\x70\x61\x75\x55\x30\ \xd8\x0f\xa4\x0e\x8b\x1e\xb1\x2e\x6c\x85\xe3\x87\x25\x11\xa8\xa1\ \x80\x1a\x02\x37\xa4\x8f\xb6\x0c\xe9\x40\x57\x48\x07\x92\x21\xdd\ \xf5\x23\x0e\xe9\xe6\x07\xd4\x10\x64\x03\x76\x00\xcd\xa7\xd5\x14\ \x92\xf0\x09\x92\x4c\x76\x86\x2e\x68\x3c\x43\x48\x86\x48\xfd\x32\ \x44\xe0\x87\x0c\x91\x15\x9f\x8b\xb0\x69\x5d\x60\xc9\x12\x88\x24\ \x6a\x0a\xb2\x01\x60\x92\xc0\x0f\xc3\x77\x0a\x33\x05\x6a\x88\x15\ \xed\xe8\xe8\x01\xea\x47\xdf\xfc\x00\xf8\xd8\xb7\x80\x4d\x35\x00\ \x2f\xa4\x33\x9c\xe8\xa1\x21\x5d\xb1\x65\x48\x07\xfc\x90\x1e\xf9\ \xb1\x19\x3d\x80\xae\xe8\x01\x74\x45\x0f\x20\x1b\xb0\x13\x68\xbe\ \x9e\xcf\xa7\x41\x92\x29\x24\xd9\x19\x41\x12\x1e\x22\x8d\x44\x7d\ \x2c\x59\x54\xcb\x10\xe9\x55\x55\xf0\x83\xcf\xc9\x3d\x9f\x51\xd8\ \xb4\x86\x3c\x43\x24\x89\x0c\x83\x1a\x97\x0a\x33\xa5\x34\x53\xa2\ \x74\x02\x35\x04\x96\xe8\x21\xc4\x06\xc4\x9e\xe0\x11\xd4\x30\x3f\ \x00\x58\x81\x6f\xe9\xe8\x01\x40\x0d\x45\x14\x3d\x52\xd1\x1c\x6a\ \x08\x2e\x53\xd1\xfc\x2a\x15\xcd\xa1\x86\xa0\x2b\x7a\x00\x89\xe8\ \xb1\x73\x34\xcf\xa0\xf5\xf3\x7c\x1e\x24\x99\x43\x92\x17\xec\x20\ \x89\x0e\x91\x99\x0e\x91\xf2\x65\x88\xac\xfb\xeb\x4a\x86\xc8\x7d\ \xf0\x03\xe0\x21\x82\x25\x8b\x81\x21\x02\x40\x0d\x85\x3b\x53\xfa\ \xbe\x29\x6a\x45\xbb\x7d\xa1\xbe\x80\x24\xea\x07\x10\x19\x60\x0b\ \x55\x67\xf4\x48\x45\xf3\x93\x54\x34\x87\x1a\x82\xae\xe8\x01\x44\ \xd1\xc3\x8f\xe6\x50\x43\xd0\x15\x3d\x80\x44\xf4\xd8\x23\x9a\x67\ \xd0\xdd\xf3\xf3\xf3\xfa\xf9\x59\x24\x99\x57\x91\x29\x69\xc0\x0f\ \x0c\x11\x9e\x21\x21\xae\x6b\x52\x2f\x88\x90\xd4\xe3\x21\x32\x0a\ \x92\x5c\xac\xf8\x04\x40\x12\x00\x92\x28\x22\x3f\xa0\x06\x10\xa5\ \x77\xdf\x14\x51\x43\x9d\xc1\x37\xf8\x01\xf4\xa5\x0b\x6c\xad\x28\ \x22\x3f\xfc\xe8\x91\x8a\xe6\x7f\x4c\x45\x73\xa8\x21\xe8\x8a\x1e\ \x40\x57\xf4\x00\xbc\xe8\xc1\xd5\x47\x22\x9a\x43\x0d\x85\xd3\x9f\ \xef\x80\x0c\xba\xbb\xbb\xab\x45\x12\x06\x24\xd9\x16\x96\x5d\x56\ \x3c\x43\x64\x88\xa0\x4f\x91\x9b\xac\xd0\x3c\xf6\xc2\x10\x39\x0d\ \x92\x9c\x2c\xcd\x0f\xc6\x50\xc1\x93\xa4\x69\x14\xae\x29\x45\xe1\ \x4e\x12\xa8\x01\x03\x54\x08\x46\xfb\x2d\xac\x56\x4c\xf5\x23\x0e\ \xe9\xea\x47\x28\x41\x22\x35\x0c\xfd\x54\x34\x3f\x49\x45\x73\xa8\ \x21\xe8\x8a\x1e\x40\x57\xf4\x00\x36\xa3\x07\x90\x88\x1e\x5e\x34\ \xdf\x3f\x7a\x64\xd0\xe7\xcf\x74\xc7\xa7\x66\x3c\xd7\x90\x64\x3b\ \xb0\x24\x36\x44\x38\xaa\xaf\xc2\x10\x19\xe0\xba\xd7\x6e\xb2\xd6\ \x8c\xd3\x20\xc9\x49\xd8\xb4\x46\x6d\x12\x51\x53\x9a\xc6\x9d\x24\ \xe7\x0a\xad\x2a\x14\xae\x29\x3d\x33\xc5\xbe\xf5\x21\x89\xf8\x11\ \x87\x74\xf3\x23\x11\xcd\xbd\xe8\xe1\xb7\x82\xc0\x11\xb7\x82\x19\ \xf4\x99\x15\x31\x49\xb6\x85\x0c\x1b\xbd\x00\x9b\xf0\xc1\x10\x41\ \x27\x52\x86\x21\x52\xd4\xb5\x2d\x59\xec\x47\x18\x22\xa3\x25\x9f\ \x8b\x20\x89\x20\x9e\x24\xae\x29\xe5\xb9\x3b\x49\xac\xfe\x6e\x63\ \xb8\x98\x22\xdf\x0c\x45\x01\x49\x2c\xa4\xdb\xb7\xaf\xd9\x0a\x02\ \xdf\x48\x2b\x98\x41\x4f\x3f\xf0\x81\x24\x66\xca\x16\x40\x6c\xa9\ \xc2\x10\x41\x08\x59\x45\x37\x59\x7c\x24\x84\x04\x49\x4e\xd9\x11\ \xf6\x83\xd5\xb0\x21\x62\x71\x44\x61\xa6\x34\xb6\x73\xf9\x93\x04\ \x6a\x00\x9b\x99\x64\x13\x3c\x68\xcc\x0f\x81\x6a\x95\x5b\xc1\xad\ \x91\x41\xd7\xec\x07\x4b\x02\x40\x92\x24\xc2\x32\x26\x77\x5f\x53\ \x3e\xcb\xe9\xcb\x4d\x56\xa3\x21\xe4\x89\x0a\x92\x67\x4e\xea\x75\ \x0f\x4b\x56\x3c\x44\x04\xf7\xee\x24\x69\xcc\x8f\x78\xd3\xf2\xae\ \x80\x0b\x33\xc5\xac\x88\x66\x4a\x51\xe8\x10\xc1\x37\x13\x02\xce\ \x1c\x53\x2b\x98\x8a\xe6\xd9\x80\xb7\x81\xae\xaf\xaf\x67\xd7\xd7\ \x2a\x49\x1a\x41\x92\xbb\x3b\x84\x95\x2a\x14\x28\xcb\xf6\x26\x0b\ \x9d\xfa\x20\x0c\x11\xdc\xf4\xf6\xc3\x10\x81\x1f\xac\x46\x65\x43\ \x44\x30\x6a\x61\xa6\x0c\x23\x53\xdc\x49\x82\x21\x22\x30\x3f\x64\ \x7e\xd8\x4c\x51\x2b\xe2\x6f\xe6\x07\x9e\x40\xdc\xa9\x15\x04\x3e\ \x6e\x2b\x98\x41\x37\x37\xb3\x1b\x48\xb2\x9d\x29\xc4\x63\xe6\x33\ \x42\x08\x86\xc8\x72\x3a\xd5\x90\xde\x70\x46\x97\x90\x5e\x10\x1f\ \xa0\x17\x86\xc8\xa9\x0d\x11\xc1\xd2\x9d\x24\x50\x43\x70\xe9\x4e\ \x92\xd2\xfc\x28\x3a\x26\x49\x64\x4a\xfc\xef\x30\x49\xe0\xc7\xcf\ \xda\x0a\x02\x47\xdc\x0a\x66\xd0\xcd\xf8\x86\xcf\x2c\x00\x92\x74\ \x20\x48\xc2\x7a\xe0\x5a\x58\x42\x3a\xfb\x81\x10\xb2\x68\x43\xc8\ \xec\xa9\xd4\x10\x42\x75\xaf\x0e\x6a\xb4\x43\x04\x80\x1a\x0a\x51\ \x63\x13\x2b\x77\x92\x0c\x36\x4c\x71\x9e\x56\x77\x4c\x89\x43\x48\ \x5f\xfc\xf8\xfa\xad\x20\xf0\x8d\xb4\x82\x19\x04\x3f\x36\x30\xf3\ \xc0\x8e\x68\x4e\xb1\x90\x0e\x3f\x36\xf6\x2b\xfd\x53\x81\x32\x3f\ \xea\x76\x88\x00\x90\x44\xe1\x9a\x02\x35\x14\x51\x45\xe2\x5e\xfc\ \xc6\x8f\x8c\xc4\xa6\x68\xf4\xf8\x32\xa4\xf7\x1d\x3f\x72\x2b\x98\ \x44\x06\x7d\xe2\x33\x66\x98\x1f\x2e\x34\xa7\xd8\x7e\xc5\x67\x19\ \x42\xc8\xfd\x54\x9b\x42\x09\xe9\x65\x18\x22\xc5\x13\x99\x1f\x50\ \x03\xa8\x2a\x77\x92\x38\x71\x1d\xb8\x7c\x41\x73\xce\x8e\x00\x83\ \x33\x48\x02\x94\xde\x24\x89\x17\x2a\x33\x05\x0d\xa0\xea\x72\xcc\ \xad\xe0\xcf\x1f\xcd\x33\xe8\xf6\xf6\xd3\x84\xfd\x10\x8c\x5f\x81\ \xe4\x14\x0d\xe9\x77\x12\xd2\xe5\x92\x77\x19\xef\x57\xec\x07\x42\ \x08\x7f\xa8\x47\x44\x8c\x70\xd3\x5b\x03\x21\xae\xaf\x15\xd5\x08\ \x92\x00\x51\x5c\x77\x27\x89\x7b\xf1\x5b\x9a\x1f\x9b\x49\x44\x00\ \x21\x2c\x9a\xab\x1f\xbb\xb7\x82\xc0\xc7\x6d\x05\x33\x58\x90\xc9\ \xed\x2d\x20\xa6\x38\xe0\x21\x72\xcd\xc7\xdf\xaf\x30\x3f\xf8\x0c\ \xc6\x7c\xca\x20\x89\xec\x57\x14\x0d\x11\x5c\x67\xb9\x93\xc4\xbd\ \xf8\xf5\x8b\x91\x81\x7b\x9d\x35\xf0\xde\xeb\xb8\xda\x8c\xe6\xea\ \x47\x6e\x05\x77\x45\x06\xdd\x2e\xe0\xc7\xeb\x60\x49\x38\x84\xb0\ \x1f\x21\xa4\xd7\xe1\x92\x77\x7d\x27\xfb\x95\x96\x20\x2b\x29\x41\ \xf8\xd8\x7e\xd5\xe7\x4f\x6d\x7e\x40\x0d\x85\x7f\x9d\xb5\xbc\x68\ \x31\x0c\x92\x00\xb6\x69\x49\x12\x11\x60\xc9\x52\x40\x0d\xa0\x88\ \x43\x7a\x34\x49\xcc\x8f\x43\x6c\x05\x81\x03\x6e\x05\x33\x08\x7e\ \xbc\x0e\xa4\x13\xdc\x03\x7b\xfb\x15\x7f\x16\x2b\x5c\xf2\x06\x49\ \xca\x10\x42\x0a\x0b\xe9\x44\x02\x2c\x59\x0a\x2c\x59\x00\x92\x88\ \x20\xf6\x03\x6a\x00\x50\x43\x61\x71\xdd\xbd\xce\xb2\x90\xae\xa6\ \x28\xfa\xe6\x47\x6e\x05\xf7\x41\x06\x3d\xf0\x59\x08\x7e\xea\x07\ \xf6\x2b\x84\xf4\xa7\x10\xd2\xd1\xa4\xaf\x43\x48\xaf\xe6\x7c\xee\ \x59\x0f\xdd\xaf\x58\x0f\xdd\xaf\xc4\x0f\x32\x3f\xa0\x86\x02\x6a\ \x00\xfe\x75\xd6\xd2\xae\x7b\xdd\xeb\x2c\xa8\xa1\x88\x43\xba\xfb\ \x72\x39\xd4\x10\xe4\x56\x70\x4f\x64\x04\x41\xa6\x26\x49\x8c\xee\ \xfd\x6a\x2e\xf7\x57\x8d\xf8\x61\xfb\x95\x96\x20\xd4\x17\xb0\x15\ \xdd\xd7\xbd\xa3\xd4\x75\x6f\xea\xe9\x2c\xc0\xde\xf0\x70\xa2\x47\ \x3f\xb7\x82\xfb\x22\x83\x1e\x1f\xa7\x8f\x8f\x8f\x22\x49\x8c\xee\ \xfd\x8a\x8f\xee\x57\x7c\xa2\xfd\xaa\x1d\x22\x80\x0e\x11\xbb\xce\ \x12\x74\x5c\x67\x5d\x00\xc8\x1f\x02\xbb\xee\x6d\x1a\xf7\xba\x37\ \x0e\xe9\x6e\xf4\xe8\xff\x52\xad\x20\x70\x64\xad\x60\x06\xc1\x8f\ \x4d\x40\x92\xc9\x2d\x0f\x90\xee\xfd\x0a\x7e\xd8\x7e\x55\x30\xa0\ \x06\x40\x91\x1f\xb5\x77\xdd\x0b\x35\x14\x3b\x84\xf4\xa6\x23\xa4\ \x5b\xf4\x00\x0e\xbe\x15\x04\x0e\xb8\x15\xcc\x20\xcf\x8f\xad\xf7\ \x2b\xfe\xc8\x7e\x55\xa8\x1f\x50\xc3\x42\xba\x22\x15\xd2\xab\x54\ \x48\x3f\x77\x2f\xb1\xdc\xdf\x7d\x33\x3f\x8a\xdc\x0a\xbe\x19\x19\ \xf4\x53\x3f\x24\xae\x4f\xbe\xec\x07\xeb\xb0\x5f\xe1\x4d\xc2\xa5\ \xbc\x04\x02\x3f\xb4\xff\x98\xa9\x1f\x50\x03\xa0\x8e\x4b\x2c\x00\ \x7e\x28\xb6\x0c\xe9\xc0\x66\x48\xf7\x7e\x41\x34\xfd\xae\xa0\x22\ \xb7\x82\x29\x64\x04\x41\xe6\x8f\x80\xf8\xf1\xf0\x80\x62\x84\xfb\ \x73\x7d\x7a\x91\x42\x3f\x88\x37\x09\x2b\xd6\x03\xd1\x63\xda\x46\ \x8f\x49\xc9\x7a\xa8\x1f\x50\x03\x20\xe7\x12\x6b\xef\x67\xb2\x9a\ \xe4\x33\x59\xbf\xd4\x2f\x88\x02\x1f\xab\x15\xcc\x20\x55\x43\xf1\ \x00\x3f\x42\x7f\xbe\xf1\xfc\x15\x5e\x92\xb2\xfd\x8a\x8f\xed\x57\ \xa5\x0d\x11\x0b\xe9\x82\x54\x48\x5f\xa7\x42\x7a\xe2\x99\xac\xf7\ \xfd\x05\xd1\xdc\x0a\x66\xd0\x8f\xf3\x1f\xf9\x08\xb6\xdd\xaf\xf8\ \x63\xfb\xd5\xd8\x86\x88\x85\x74\x41\x57\x48\x07\x12\x21\x5d\xd4\ \x50\x74\x85\x74\xe0\x5b\xfc\x05\x51\xe0\x80\x5b\xc1\x0c\x32\x3f\ \xb6\xde\xaf\xa6\x53\xdb\xaf\xc6\xda\x9f\xc7\x21\x5d\xd1\x15\xd2\ \x81\xed\x42\x3a\x90\x0a\xe9\x65\xac\x86\x21\xb7\x82\x6f\x44\x06\ \xa9\x1f\x21\x7f\xb4\x57\xbb\x9f\xa4\x3a\xbf\x96\xf7\x07\xd7\x61\ \xbf\xaa\x9e\x51\x9d\xc3\x0f\x5c\xed\xa2\xfa\xd0\x7e\xd0\x42\xba\ \x77\xc9\xeb\x37\xe9\x6b\xf7\x49\x13\xa8\x01\xac\xfc\x4b\xac\xe8\ \x71\xf7\x54\xf4\xc8\xad\xe0\xdb\x91\x41\xf0\x43\xab\x0f\x54\xe7\ \xa8\x3e\x50\x9d\xa3\xfa\x90\xea\xbc\x92\xe8\xa1\xf9\x1c\x8f\x96\ \x88\x1f\xa2\x86\x85\x74\x85\x1f\xd2\x23\x3f\xbc\xe8\xb1\x4c\x45\ \x8f\x26\x1d\x3d\xde\xb3\x15\x04\x3e\x56\x2b\x98\x41\xec\x87\x55\ \x1f\x9f\xda\xea\xe3\x87\xb6\xfa\xb0\x57\xa3\x34\x9a\x5b\xf4\x18\ \xa7\xa2\x47\xfa\x75\x90\x0b\x2f\x9a\xfb\xd1\xa3\x49\x44\x8f\x43\ \x6a\x05\x81\x23\x68\x05\x33\x48\xa3\xc7\x83\x46\x0f\x89\xe6\xd4\ \x46\xf3\xaa\x8d\xe6\xab\x36\x9a\x97\xea\x47\x2a\x7a\xf4\x52\xd1\ \xa3\x8a\xa2\x87\x1f\xcd\xdd\xfe\xbc\x74\xfe\xb8\xc7\x11\xb4\x82\ \xc0\xe1\xb5\x82\xb9\x49\x7f\x90\x68\x2e\xd1\x63\xd6\x46\x8f\x5a\ \xa3\x47\x1b\xcd\xed\xa9\x2b\xf8\x91\x8a\x1e\x94\x8a\x1e\x55\x14\ \x3d\x52\xd1\x7c\xb0\x43\x34\x87\x1a\x82\xdc\x0a\xbe\x11\x19\xb4\ \xd5\x53\x57\x5a\x0d\x5a\xf4\x28\x53\xd1\x83\x52\xd1\xa3\x72\xa2\ \x87\x1f\xcd\x2d\x7a\xbc\xd3\xdf\x15\x04\x72\x2b\xe8\x21\x83\xa2\ \xa7\xae\x34\x9a\xd7\x12\xcd\xdf\xd2\x0a\xd2\xd1\xb7\x82\xc0\xf1\ \xb7\x82\x19\xb4\x65\x2b\xb8\x78\xd7\x56\x10\x38\xbc\x56\x30\xb7\ \x82\x19\xf4\x2d\xb6\x82\xe5\x91\xb4\x82\x87\xff\xc7\x3d\x32\xe8\ \x23\xb4\x82\x40\x6e\x05\xf7\x40\x06\xe5\x56\x50\x90\x5b\x41\x0f\ \x19\xf4\x0e\xad\xa0\x13\xcd\x8f\xae\x15\x04\x8e\xbf\x15\xcc\xa0\ \xdc\x0a\xe6\x56\xf0\x75\x64\xd0\x2b\xad\xe0\xf4\x2b\xb5\x82\xb9\ \x15\x3c\xa8\x68\x9e\x41\x1f\xa1\x15\x04\x72\x2b\xb8\x07\x32\x28\ \xb7\x82\xb9\x15\x7c\x1d\x19\x64\xad\xe0\xfc\x7d\x5a\xc1\xea\xe8\ \x5b\x41\xe0\x38\x5b\xc1\x0c\x3a\xb8\x56\x10\xc8\xad\xe0\x61\x20\ \x83\x72\x2b\x98\x5b\xc1\xd7\x91\x41\xb9\x15\xcc\xad\xe0\xeb\xc8\ \xa0\xdc\x0a\x46\xd1\x43\xf1\xb5\x5a\xc1\xff\xb7\x77\x2f\x2b\x0d\ \x04\x61\x10\x85\x4b\x24\xb8\xcd\x42\x70\xe1\x42\x30\x26\x5e\x46\ \x63\xbc\x8b\x20\xa8\xaf\xa2\x20\x0a\x82\x68\x50\x1f\xdf\xb5\x81\ \xbf\x99\xc8\x74\x4f\xf7\xdf\x67\x73\xde\xa1\xf8\x16\x05\x3c\xe4\ \x17\x45\x57\xc1\x79\x15\x2a\x38\xf5\xa9\x82\x44\xa8\x20\x2a\x68\ \x87\xa8\x74\x15\x5c\x45\x05\x23\x86\xe8\xaf\x0a\x3e\x56\xa1\x82\ \x23\x54\xb0\x65\x88\x50\x41\x54\xd0\x0e\x51\x52\x15\xfc\x72\xab\ \x82\x33\x9f\x2a\x48\x94\xbd\x0a\x0e\x51\xc1\xfe\x42\x84\x0a\xa2\ \x82\x76\x88\x02\xe7\x1e\x6e\x55\xb0\x41\x05\x5b\x86\x28\xa8\x82\ \xa8\xe0\xa4\x6e\x15\x24\x4a\xaa\x82\xdf\xbe\x54\xd0\xff\xb9\x07\ \x51\xf6\x2a\x38\x40\x05\xfb\x0b\x91\x27\x15\x1c\xa3\x82\x1d\x87\ \xc8\x56\x41\x55\xa1\x82\x3b\xa8\x60\x20\x44\xdd\xaa\xe0\xab\x2b\ \x15\x44\x05\x89\x7a\x53\xc1\x75\x17\x2a\xe8\xfc\xdc\x83\xa8\x28\ \x15\xdc\x46\x05\xd3\x86\xc8\x93\x0a\xee\xa3\x82\x1d\x87\xc8\x50\ \x41\x63\x9a\xfb\x53\xc1\x43\x54\x30\x10\x22\x54\x10\x15\xb4\x43\ \x14\x43\x05\x51\x41\x2f\xd3\x9c\x94\xa5\x82\x5b\xa8\x60\xda\x10\ \x54\x10\x15\x0c\x84\xb4\x54\xc1\x8f\x2a\x54\xf0\x08\x15\x5c\x08\ \x51\x3c\x15\xdc\x40\x05\x8b\x0f\x41\x05\x51\xc1\x40\x88\x50\x41\ \x54\xd0\x0e\x91\x57\x15\x3c\x43\x05\x3b\x08\x51\x3b\x15\x9c\x57\ \xa1\x82\x53\x54\x70\x21\x44\xa8\x20\x2a\x68\x87\x28\x0b\x15\x9c\ \xa1\x82\x79\x86\xa8\x58\x15\x1c\xa1\x82\xf1\x43\x84\x0a\xa2\x82\ \x76\x88\x96\x57\xc1\xc6\x9b\x0a\x9a\xd3\x1c\x15\x24\x4a\xa3\x82\ \x43\x54\xb0\xc8\x10\xa1\x82\xa8\xa0\x1d\xa2\x62\x55\xb0\x41\x05\ \xe3\x87\xa8\x06\x15\x9c\xa0\x82\xff\x0c\xd1\xf2\x2a\xb8\xe7\x4c\ \x05\x39\xf7\xb0\x43\x94\x46\x05\x07\xa8\x60\x91\x21\xca\x4e\x05\ \xc7\xa8\x60\x3e\x21\x72\xa1\x82\x17\xa8\x60\x9c\x90\x5f\x2f\xd0\ \xd0\x9a\x63\x93\x03\x4d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x0a\x83\ \x00\ \x00\x2f\x2e\x78\x9c\xad\x5a\x59\x73\xdb\x38\x12\x7e\xcf\xaf\x40\ \xf9\x5d\xf1\x3a\x99\x1c\x5b\x95\x64\x2a\x96\x6c\xc7\xb5\x56\xe2\ \x84\x9a\xcc\xbc\x4d\x41\x24\x44\x61\x43\x12\x0c\x08\x5d\xf9\xf5\ \xdb\xb8\x01\x4b\x04\x69\xcf\x56\xc5\xb1\xfb\x03\xba\x71\x35\xfa\ \x02\xdf\xfd\xbe\xaf\x2b\xb4\x25\xbc\xa3\xac\x79\x7f\x76\xf1\xfc\ \x5f\x67\x88\x34\x39\x2b\x68\x53\xbe\x3f\xa3\x1d\x9b\xbc\x7d\xfb\ \xea\xdf\x93\x8b\xb3\xdf\x3f\x3c\x7b\x97\x63\x41\x4a\xc6\x29\xe9\ \x50\x83\x6b\xf2\xfe\xec\xfe\xf0\x55\xa0\xab\x3d\xae\xdb\x0a\x30\ \xdc\x14\x68\x46\x6a\xd6\x9d\x7d\x78\x86\xd0\xbb\x42\xfe\x89\x0a\ \xca\x75\x5f\x45\x9e\xa1\x82\xe5\x11\xad\x09\xc9\xd6\x74\x82\x63\ \x01\xd3\xd0\xfc\x20\x81\x68\xc9\x68\x45\x2b\x62\x99\xf2\x0a\xcb\ \x5e\x5b\x72\xde\x01\x52\xc2\x8f\x95\x91\xc1\xff\x37\x8a\x26\x7b\ \x92\x6f\x04\x5e\x56\x80\xae\x70\xd5\x01\xf4\xb3\xae\xde\x9f\x09\ \xbe\x21\x67\xe7\xbd\xc2\x05\xd9\x0b\x52\x50\x61\x05\x2e\x80\x46\ \x57\x0a\xe8\x67\x22\xf5\x92\x14\x05\xfc\xa3\xb8\x62\xa5\x5b\xd0\ \x95\x81\xd1\xcc\xe2\xfd\x22\xc2\x45\xd5\xb4\x21\xeb\x4d\xe3\xe6\ \x30\x77\x74\xb8\x28\xb5\x10\xbd\x26\xbd\xbe\xe1\xf9\x9d\x57\xb4\ \x5c\x8b\x1a\xb7\x6e\x8a\x5f\x5a\xd2\x64\x82\x13\x22\xe6\xb8\x4d\ \x48\xe8\x5a\x4e\x70\xd1\xad\xa1\xa3\xdb\xea\x00\x52\x8c\xef\xce\ \xd5\x71\xaa\x3f\x8d\x96\x1c\xfc\xd1\xe3\x86\xd6\xea\x64\x2d\xff\ \x47\x0b\xa0\x6b\x0e\xc0\x8e\xf1\x1f\xfd\x67\xae\xb9\x49\x21\x00\ \xe9\x62\x09\xb0\xbf\x0b\x8d\xf6\x4f\x1f\xb7\x6d\xbe\x66\xac\x23\ \xdc\xf1\x06\x48\x62\xe3\x70\x07\x77\xc0\x9d\xa7\xa2\xd0\x74\xc3\ \xb7\xe9\xe1\x6a\xb6\x25\xcb\x8a\xe5\x3f\xdc\x54\xe7\x6c\x2b\x59\ \x2f\x0d\x98\xd8\x68\x01\x2b\x72\x6c\x99\xa1\x52\xfd\x69\xfe\xa3\ \xc6\x8d\xe7\xb0\xb4\x39\x13\x7b\x12\x3d\xc7\x12\xea\x9d\x60\x07\ \x37\x32\xdc\xe9\x99\x6f\x72\xf7\x3b\x71\x2b\x0f\xf0\x9b\xe6\x5d\ \x4e\x1a\x77\x1b\x67\x1a\x43\x99\x06\x93\x57\x32\xb1\x46\x58\xd2\ \x44\x60\xf8\x61\x4e\xf2\x02\xa4\x2e\x30\xfc\xb0\x7f\x20\x37\x8f\ \x8e\x68\x6a\xa8\x27\x4b\x03\x05\x5e\x32\xcc\x0b\x2f\x31\x40\x9e\ \xbc\xf6\xad\x20\x4d\x43\x9d\xcc\xc5\x77\xb4\x30\xc0\x08\x91\x23\ \x8e\xbf\xa3\x65\xe3\xaf\x85\x3a\x76\x03\xf5\xaf\x14\x57\xf9\xa6\ \xc2\x82\xf1\x15\xe3\xb5\x5b\xad\x43\xd1\xb5\x82\xfb\x17\xd5\x56\ \x9b\x92\x36\x7e\x9f\x36\x9d\x60\x35\xfa\x93\x16\x25\x11\xe8\xde\ \x36\x8e\x5e\xc1\x0f\xc1\x5a\xef\x44\x34\xd9\x7f\x61\x0e\xd2\xc5\ \x1c\xdc\x7d\x01\x92\xd4\x68\xa1\x20\x30\x27\xa5\xe9\x42\x6a\xd9\ \x6b\x62\xf8\x9f\xb7\x60\x05\x12\x97\x30\x07\x0b\xda\x74\x6b\xe6\ \x8d\x63\x80\x8c\x5c\x47\xec\x3b\xac\xcb\x48\xa8\x5b\xb3\xa2\xa5\ \xe6\xf2\x0a\x27\xb1\x8d\xf6\xa0\xc6\xeb\x24\xcd\x1b\xf8\xba\xa6\ \x0b\x6c\xf2\x95\x05\x46\x30\xaf\x68\x53\xac\x42\x73\x7c\x0d\x00\ \xba\x96\xc8\x08\x6e\xb0\x73\x4d\x01\x57\xe3\xc1\xb2\x33\x03\x8f\ \x71\x99\xa0\xfa\xf1\xf2\x17\x78\x39\x62\x64\xc1\xe9\x16\x3a\xed\ \xe8\x2f\x18\xc7\xb1\x6a\x10\x74\x50\xa3\x46\x13\xa2\xbe\x56\x19\ \x26\xb4\x11\x9c\x15\x9b\x5c\xee\xf2\x80\x66\x80\x05\xed\xba\x78\ \xa8\xa9\x84\xdc\x40\x23\x95\x83\xe3\x12\x36\xa6\xe0\x81\xa2\x03\ \xa4\xa3\x2d\x9e\x52\xf7\x82\x54\xf8\x40\x0a\x1b\xce\xf9\x6b\xa2\ \x60\x74\xe5\xf0\x44\x68\x02\x23\x95\xd2\xcc\xd0\x9c\xf9\x4b\x3b\ \xb3\x28\xba\xd5\xf0\x08\x01\x32\xb8\x3a\xe6\x5f\x28\x34\xc5\xce\ \xda\x8e\x0a\xef\x55\x80\x46\x99\x02\x12\xda\xc9\xa5\x35\x81\x53\ \x6c\x88\xf0\x1a\xaa\x40\x34\xb7\x68\xc2\x42\x6d\x7e\xfd\xaa\xdc\ \x88\xf7\x86\x32\x5a\x11\x9c\x86\xee\x77\x6c\x26\x06\x4f\x94\xac\ \x56\x24\xf7\x33\xbb\xe1\xb8\x5d\x83\xf7\x44\x57\x06\xef\x9d\x99\ \x0a\xe1\x82\x93\xbc\x33\xb4\xd2\x85\x6c\x8d\x0b\xb6\x1b\x6d\x3b\ \x4b\x33\xea\x96\x92\xdd\xd1\x4c\xbe\x4b\x30\x11\x90\x41\xf8\xc4\ \x41\x89\xd8\xc6\x1d\xe9\x47\x85\xa1\x3b\x03\x26\xec\x0e\x5c\x01\ \x70\xea\x0d\x2b\xbc\xf5\xb8\xd2\x18\xfa\xac\xc1\x94\x9f\xad\x2a\ \x2a\x75\x16\x22\x0b\xe2\x2d\x9f\x01\xd1\x5c\xa1\x09\x6d\xa2\x18\ \x96\x5d\xc7\x71\x8a\xc6\x6c\x9c\x92\xd6\x64\x79\xec\x9c\x2d\x99\ \x38\x79\x13\xd1\x37\xdd\x94\x50\x2d\x5c\x34\x78\x4b\x4b\xe9\x29\ \x9d\x82\xe1\x02\x7d\xb6\xa0\x0d\xb6\xc6\x9e\x22\x6d\x73\x2b\xe7\ \xf6\x7e\x9a\xf0\x7c\x6b\xcc\x49\x51\x43\x8c\xce\xbd\xfb\x53\x18\ \x9a\x1b\xd0\x3a\xc0\xa0\xa7\xd5\xed\xbf\x2f\x06\x4c\x1d\x84\x4f\ \xb8\x82\x80\x40\x6c\x1a\x08\x1c\x29\xf1\xf9\xcb\x9d\x6c\x91\x41\ \x81\x6c\x42\x53\xd3\x66\xc6\x3a\x66\x1b\xe9\x74\x43\x46\x08\xe3\ \xb7\x3e\x88\x89\xc7\xcb\x4c\xdb\x89\xf1\x34\xdb\x13\x6e\x2f\x18\ \x9f\x5a\x5e\x1a\xa7\xbd\xb7\x32\x88\xf8\xae\x90\xde\x09\x2f\x21\ \x7d\xc8\x3b\x18\x19\x20\x41\x78\x0d\x8a\x5e\x59\xfe\x4b\xd9\x86\ \x32\x68\x3c\xbf\x56\xad\x68\xae\x9b\x13\xf7\x00\x0e\xc9\x6d\xf1\ \x54\x13\x89\xde\x2a\xc6\xea\x19\xdd\x04\x60\x8f\x1b\x9e\x55\x8c\ \xcb\x4c\x19\xa2\x40\x9c\x8b\x40\xa7\xa6\xb2\x45\xe5\xcc\x32\x14\ \xb4\x6d\x66\xfb\x8f\xd9\x54\xc3\x90\x1b\x65\xf5\x92\xed\x54\x7c\ \x08\xd9\x6b\xeb\x8f\x7a\x2a\x1b\x6c\xe4\x38\x37\x4d\xa9\xcb\xcf\ \x43\x5b\x37\xa3\x9c\xa8\x39\x68\x63\x97\x72\x27\x44\xe4\x6b\xb8\ \x0e\xce\x64\x5c\x4b\x00\x76\x89\x27\xed\x85\x5c\xa8\x72\x7c\x10\ \x0d\x46\x3b\x7e\x65\x1a\x20\xf0\x24\x64\x78\xb3\x5b\xba\x27\x55\ \x64\x30\x3c\xf0\x38\x27\x86\xdc\x49\x38\x1d\xee\xf3\x61\xa7\x8d\ \x08\x95\x40\xc1\xea\x68\x39\x99\x42\xd1\xec\xcb\x7c\x78\x2d\x5a\ \xc2\xd1\x8e\x18\x11\xe3\xf6\x43\xcb\x38\xa5\x10\x46\xcc\x68\x8d\ \xe8\x5a\xda\x2c\xd9\x1e\xc6\x23\x60\x7c\x7d\x1d\x09\x60\x74\xc9\ \xf6\x90\x0d\xd9\x86\x64\x2c\xcb\x8f\x04\x00\xf6\x90\x79\xd0\xac\ \x68\x77\xea\x8c\xca\x9d\x21\xd3\x16\xe5\x01\x93\xb6\x24\x96\x35\ \x31\xeb\x25\x83\x49\x3f\xf0\xe0\x97\x0a\x1b\xe1\xc1\x57\x15\xdb\ \xc5\xac\xd7\x80\xc4\x8c\x83\xcb\xad\x31\x6d\x76\x90\x34\x30\x6f\ \x47\xe7\x00\xc1\xe1\x69\x2c\x55\xce\xa9\x68\x1e\x57\x93\x42\x28\ \x61\x00\x20\xc7\xd7\x6a\xe3\x03\x59\x80\x8c\xbe\xa4\x8b\x3a\x05\ \x75\xb3\x9c\xdd\x26\xf5\xc1\xf7\xcc\xd2\x3d\x6b\xd2\x6c\xfc\xda\ \x35\xd1\xdf\x1b\x8c\x15\xb8\xc7\x28\xe7\xfa\xa6\x20\x9d\x75\x25\ \xa7\x44\x5a\x6c\x0b\xab\x91\x99\xce\xc2\x86\xc7\x97\x8c\x36\x74\ \x02\xb6\xb9\x65\x0d\xcc\xc2\xd7\x8e\xe6\x77\xe8\x8f\x5b\x34\xf5\ \x0d\xa9\x68\xac\x82\xf4\x01\xf2\xa9\xca\x1b\x65\x5c\x3d\xbd\x5e\ \xb2\xaa\x68\x2b\xb9\xbc\x5a\x5a\xfa\xa9\x12\x21\xd8\x2b\x39\xe9\ \xba\x25\xf6\xd6\xd7\x40\x48\x61\x4f\x15\xdc\xe5\xb0\xea\x2a\x10\ \x9b\x29\xe0\x1f\x0a\x25\x98\xe7\x6b\xb0\x68\x4e\xa8\x02\x90\x42\ \x9e\x2c\x14\x62\x6b\x02\x69\x2c\xb8\x3c\x27\x56\x42\xc8\x62\x4f\ \x16\x0c\x66\x36\xa8\x3e\x65\x96\x7c\x72\xb5\x0c\x2f\xf5\xed\x0e\ \x4b\x02\x16\xf9\x7f\xd4\xcb\x20\x6f\x54\x85\x6a\x23\xfe\xb3\x26\ \x65\x3a\xd6\x6f\x67\x65\x5d\x11\x7a\x9c\x0c\x8d\x2f\x4d\xe3\x51\ \x74\x9c\xb0\xdb\x9c\xe1\x22\x87\x64\x49\x9a\x03\x1a\x84\xbd\x97\ \xb6\x01\x7d\x73\x2d\x23\xc4\x74\xa4\x29\x4e\x09\xc9\x0c\x9e\xb8\ \x6b\xa7\x56\x34\x7e\x21\x27\x63\xf7\x87\x51\x7b\x82\x5d\xb4\x67\ \x08\x82\xe0\xa6\x84\x28\xcb\xc4\x71\xee\x60\x8d\xb0\xc5\xfd\x88\ \x79\xac\xc5\xb0\xa4\x4f\x8b\x51\xa2\xc4\x5a\xbe\x89\x90\xe2\xe4\ \xd2\x16\xa6\x51\x9d\xf5\xf3\x78\x85\x83\x8a\xc7\x5a\xd2\x94\xce\ \x46\xca\x67\x9b\x9b\xbb\x7e\x9d\x7b\x51\xb4\xe0\x48\xc3\x32\xc1\ \x8b\x19\xba\x77\x50\xff\x02\x20\x0d\x5e\x2e\xfd\x94\x6f\x2c\x99\ \xd8\x3d\x52\x55\xcc\xcf\xec\x93\x24\x11\xcc\x2d\xc1\xc2\x60\xdd\ \x0f\xe7\xf7\x25\xc2\x12\x16\x43\x01\xcb\xcd\x6a\x45\xb8\xaf\x1a\ \xea\x5e\x97\x16\x4d\x3f\xef\x6d\xb8\xf7\x9f\x0b\x47\x8f\x3b\x86\ \x87\xd3\x76\x7b\x9a\x8e\xd1\x0a\x8e\x77\x01\x97\x8e\xd1\x66\x16\ \x4c\xe5\x3d\x8d\xf4\xef\x9c\xe6\x39\xe5\x79\xe0\xf7\xa7\xae\x01\ \x4d\x6d\x4b\xaa\xe4\x00\xb3\x94\xfb\x2b\xd6\x5d\x34\x73\x88\xf5\ \xee\x35\x98\xd8\xf1\x6d\x29\xd3\x84\xc0\x4a\x7f\xbf\x51\xf9\x52\ \x5a\x2f\x04\xc7\x4d\x27\xdf\x07\xe2\xa8\x63\xf1\x10\x1e\xb9\xef\ \x6b\xd6\xf8\x60\xef\x5e\x53\x89\x07\x0a\xf0\xf9\xb4\xa2\x82\x06\ \x3b\x16\x61\x89\x90\x6c\x03\x67\xd3\xca\xea\xa8\x5b\xf0\x5c\x42\ \xe8\xde\x60\xe3\x26\x0c\x27\xb3\x0e\xcb\x9d\xdf\x80\xd6\x95\xce\ \xd4\xb3\x0a\x91\xc5\xef\xe0\x41\xc5\xd0\x89\xab\x24\xe3\xf5\xf0\ \x15\xe6\x8b\x0a\xe0\x87\x1e\x60\xba\x43\x23\xf0\x7e\x4d\xcb\xb5\ \x2a\x27\x06\x67\xab\x1a\xd0\xa7\xb0\x25\x7d\x9b\xd8\xf2\xbf\x60\ \x31\xa3\xe7\xf2\x2f\x06\x1a\xb7\x53\x10\x06\xd1\xd6\x09\xf8\x2a\ \x32\x4d\xa7\x0d\x4e\xcc\xa4\x8d\x8e\x61\x74\xb5\xfb\x8b\x47\x14\ \x74\xba\x9f\x3e\x11\xfd\x9a\x30\xac\x39\xce\xd7\xa4\x10\x61\x84\ \x39\x55\x10\x5a\x68\xac\x7f\xb3\x7e\x6e\x08\x3f\x44\x29\xef\x57\ \x89\x0c\x27\xbb\x5c\x66\xfa\x70\x59\x70\xa5\xc6\x8d\x44\x7c\x73\ \x6d\x7a\x02\xc3\xd2\x8e\x65\x1c\x33\x0e\x6e\x97\xf6\x73\x5d\xec\ \xd9\x92\x66\xb0\xc6\x10\x4d\x54\x10\x74\xf8\xaf\x1a\x02\x64\xe4\ \xa8\x8c\x55\x7e\x4c\x45\x24\x2c\x27\xa4\x29\x81\xb9\xd4\xd4\x50\ \x7d\x4c\xe6\x32\xf2\x99\xc2\xdf\x41\x5d\x19\x9b\x7a\xbc\x5f\x04\ \xbd\x78\xeb\x2c\xd4\xad\xb4\xad\x8d\x39\x1a\xfa\x6b\x30\x2f\xe5\ \xa4\x24\xfb\xd6\x9f\x6a\xb9\x81\x14\x0b\x5d\xed\x5b\x99\x66\xd0\ \x81\xf7\x95\x8e\x08\xe9\x83\x3a\x5d\x56\xf3\x81\xbf\x46\x4d\x25\ \x6e\xf4\x26\x6f\xa0\x33\xa4\x60\xdd\x39\x2e\x0a\x95\xf7\x30\xe6\ \xe2\xdd\x8f\x1a\x42\x97\x80\xa1\x85\xe9\xd9\x7f\x08\x90\x5a\x8a\ \x0b\xef\x70\xb8\x40\x17\xee\x7a\x06\xd2\x27\x76\xcc\x89\x62\x98\ \xf8\xe7\x54\x75\x83\x93\x8e\x8d\x8b\x17\xd1\x00\x2f\x86\x07\x78\ \x31\x81\xa6\x89\xcc\x3a\x71\x3e\x6a\x84\x97\xd1\x08\x2f\x87\x47\ \x78\xf9\xc8\x25\xfc\x16\x0d\xf0\x5b\x7a\x80\xc7\x89\x7e\x15\x89\ \x7e\x35\x3c\xf7\x57\x8f\x1c\xe0\x75\x34\xc0\xeb\xe1\x01\x5e\x3f\ \x72\x80\x37\xd1\x00\x6f\x86\x07\x78\x73\x7a\x80\x41\xcd\x7f\x50\ \x17\xb2\x25\xa1\xc4\x13\x98\x7c\x6a\x56\x1f\x91\xf8\x17\x30\x09\ \xa1\xa9\xc6\x12\xd6\xc6\x7d\x2b\x71\xe2\xeb\x89\x01\x46\x15\x13\ \xc4\x59\xae\x8d\x14\x4c\x19\x6b\xe8\xd5\x00\xd4\x9e\x40\x00\xe6\ \xcc\xcd\xd4\x62\xb2\x5e\x9a\x0e\x47\x0b\x12\x1b\x19\x69\x58\x63\ \x03\xd3\x53\xe6\x29\xa9\x80\x15\x86\x7b\x35\xd3\xd8\xf0\x66\x95\ \x9c\x6d\xda\xa0\xa2\x71\x23\x69\x59\x9c\x4d\x1a\xe3\xf0\xad\x7a\ \xf0\x85\x5a\xa9\x54\x1c\xe5\xde\x4a\x68\x44\x9c\x5b\xd1\x46\xed\ \x89\xaf\xda\x02\xa0\xb6\x64\xe8\x13\x31\xea\x42\x08\xf9\x75\x18\ \x89\x03\xcc\xbe\x8a\x11\x5d\x06\xa1\x47\xe6\xe8\x04\xcf\x1a\xb7\ \xa4\x88\x76\x3e\x53\xd0\xf0\xc6\xab\xb2\x4f\x90\x65\x59\x72\xb0\ \x9a\x1e\x7c\xc0\x66\xea\xe8\x43\x1f\xb1\x1d\xaa\xf0\xa3\x37\x4d\ \xd9\xc7\x48\x45\x4e\xa0\x2b\xac\xb4\xd8\x31\x56\x0c\x3d\x51\x28\ \x86\xe8\x53\x45\x89\xa0\x4c\x43\x91\x58\x09\x81\x2b\x80\xbc\x91\ \x4c\x5a\xf5\x02\x0d\x61\xda\x80\x7c\x41\x20\xef\x72\xda\xb8\x50\ \x54\xf2\xd2\xca\xb8\x45\xd0\x36\x0a\x5d\xd0\x42\x01\xfd\x4c\x3b\ \x5a\x96\xd5\xc1\x1b\x23\x4d\xa5\xfa\xcb\xa2\xf9\xaa\xc2\x65\x60\ \xc1\x24\x84\xae\x35\x36\xd2\x08\x92\xe5\x0f\xff\xf5\xeb\x9f\x64\ \xf9\x1f\x9a\x88\xc5\x65\xe6\x01\x11\x3f\x57\x2f\x79\x41\x09\xa7\ \x86\xd0\xc5\xa1\xa9\xd2\xea\x83\x4b\xf7\x69\x31\xbf\x43\xf7\x1e\ \x4d\x54\x7f\x70\x93\x1f\x20\x78\xdc\x05\xdf\x74\x5e\x4b\x0c\x5d\ \x5a\x30\x61\x51\x18\x2b\x2b\x02\xa6\xd0\x2d\xf4\x46\x21\x68\xaa\ \xa0\xd4\xf3\x81\xfc\x2c\x4c\x7e\x29\x8d\xab\x60\x8f\xd0\x15\x84\ \xd4\xb2\x0e\x2f\x1f\xc0\x16\xbe\xc3\xd0\x03\x56\x47\x2a\x12\xee\ \x5c\x28\x2a\x73\x6d\x89\x33\x27\xcb\x95\x68\xe3\xfa\x9b\x94\x71\ \x54\xf7\x1a\x3c\xf6\x7d\xed\xd6\xf3\xd7\x3c\x91\xff\x74\x78\x2f\ \x1d\x6e\x8d\xb9\xff\x70\x32\xfb\xf8\x97\x0a\x08\x0d\x98\xdc\xbd\ \x23\x66\xb9\x63\x0f\x99\xc7\xcc\xb6\xc5\x42\x46\xd8\x5d\x30\x6b\ \x59\xca\xd0\x58\xc2\x80\xae\x49\x8d\x43\x9e\x4c\x21\xe8\x3b\x44\ \xe9\x45\x18\xa5\x87\x73\x70\x7f\x53\xd2\x7d\x78\xf6\x3f\x29\x90\ \xca\x50\ " qt_resource_name = "\ \x00\x03\ \x00\x00\x7f\x3c\ \x00\x78\ \x00\x6d\x00\x6c\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x03\ \x00\x00\x78\x3c\ \x00\x71\ \x00\x6d\x00\x6c\ \x00\x0c\ \x07\x27\x67\xfc\ \x00\x71\ \x00\x6d\x00\x6c\x00\x53\x00\x68\x00\x65\x00\x6c\x00\x6c\x00\x2e\x00\x71\x00\x6d\x00\x6c\ \x00\x10\ \x0f\xfa\x57\xe7\ \x00\x71\ \x00\x74\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x5f\x00\x73\x00\x6d\x00\x61\x00\x6c\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x12\ \x0e\x78\xbb\xe7\ \x00\x74\ \x00\x72\x00\x6f\x00\x6c\x00\x6c\x00\x74\x00\x65\x00\x63\x00\x68\x00\x2d\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\ \x00\x67\ \x00\x0a\ \x05\x87\x0f\xc7\ \x00\x64\ \x00\x65\x00\x6d\x00\x6f\x00\x62\x00\x67\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0f\x5b\x57\xdc\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x73\x00\x2e\x00\x78\x00\x6d\x00\x6c\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ \x00\x00\x00\x1e\x00\x02\x00\x00\x00\x01\x00\x00\x00\x08\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x07\ \x00\x00\x00\x0c\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\ \x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x05\ \x00\x00\x00\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x23\x06\ \x00\x00\x00\x48\x00\x00\x00\x00\x00\x01\x00\x00\x15\x28\ \x00\x00\x00\xb2\x00\x01\x00\x00\x00\x01\x00\x00\xcf\xcc\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/qtdemo_rc3.py0000644000076500000240000070615412536324427022621 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Sat Feb 15 18:28:04 2014 # by: The Resource Compiler for PyQt (Qt v4.8.5) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x15\x24\ \x2f\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x0a\x2a\x2a\x0a\ \x2a\x2a\x20\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x43\x29\ \x20\x32\x30\x31\x32\x20\x44\x69\x67\x69\x61\x20\x50\x6c\x63\x20\ \x61\x6e\x64\x2f\x6f\x72\x20\x69\x74\x73\x20\x73\x75\x62\x73\x69\ \x64\x69\x61\x72\x79\x28\x2d\x69\x65\x73\x29\x2e\x0a\x2a\x2a\x20\ \x43\x6f\x6e\x74\x61\x63\x74\x3a\x20\x68\x74\x74\x70\x3a\x2f\x2f\ \x77\x77\x77\x2e\x71\x74\x2d\x70\x72\x6f\x6a\x65\x63\x74\x2e\x6f\ \x72\x67\x2f\x6c\x65\x67\x61\x6c\x0a\x2a\x2a\x0a\x2a\x2a\x20\x54\ \x68\x69\x73\x20\x66\x69\x6c\x65\x20\x69\x73\x20\x70\x61\x72\x74\ \x20\x6f\x66\x20\x74\x68\x65\x20\x64\x65\x6d\x6f\x6e\x73\x74\x72\ \x61\x74\x69\x6f\x6e\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\ \x6e\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x51\x74\x20\x54\x6f\x6f\ \x6c\x6b\x69\x74\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x24\x51\x54\x5f\ \x42\x45\x47\x49\x4e\x5f\x4c\x49\x43\x45\x4e\x53\x45\x3a\x4c\x47\ \x50\x4c\x24\x0a\x2a\x2a\x20\x4c\x69\x63\x65\x6e\x73\x65\x65\x73\ \x20\x68\x6f\x6c\x64\x69\x6e\x67\x20\x76\x61\x6c\x69\x64\x20\x51\ \x74\x20\x43\x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\x6c\x69\x63\ \x65\x6e\x73\x65\x73\x20\x6d\x61\x79\x20\x75\x73\x65\x20\x74\x68\ \x69\x73\x20\x66\x69\x6c\x65\x20\x69\x6e\x0a\x2a\x2a\x20\x61\x63\ \x63\x6f\x72\x64\x61\x6e\x63\x65\x20\x77\x69\x74\x68\x20\x74\x68\ \x65\x20\x51\x74\x20\x43\x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\ \x4c\x69\x63\x65\x6e\x73\x65\x20\x41\x67\x72\x65\x65\x6d\x65\x6e\ \x74\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\ \x74\x68\x65\x20\x0a\x2a\x2a\x20\x53\x6f\x66\x74\x77\x61\x72\x65\ \x20\x6f\x72\x2c\x20\x61\x6c\x74\x65\x72\x6e\x61\x74\x69\x76\x65\ \x6c\x79\x2c\x20\x69\x6e\x20\x61\x63\x63\x6f\x72\x64\x61\x6e\x63\ \x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\ \x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x64\x20\x69\x6e\x0a\x2a\x2a\ \x20\x61\x20\x77\x72\x69\x74\x74\x65\x6e\x20\x61\x67\x72\x65\x65\ \x6d\x65\x6e\x74\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x79\x6f\x75\ \x20\x61\x6e\x64\x20\x44\x69\x67\x69\x61\x2e\x20\x20\x0a\x2a\x2a\ \x0a\x2a\x2a\x20\x49\x66\x20\x79\x6f\x75\x20\x68\x61\x76\x65\x20\ \x71\x75\x65\x73\x74\x69\x6f\x6e\x73\x20\x72\x65\x67\x61\x72\x64\ \x69\x6e\x67\x20\x74\x68\x65\x20\x75\x73\x65\x20\x6f\x66\x20\x74\ \x68\x69\x73\x20\x66\x69\x6c\x65\x2c\x20\x70\x6c\x65\x61\x73\x65\ \x20\x75\x73\x65\x0a\x2a\x2a\x20\x63\x6f\x6e\x74\x61\x63\x74\x20\ \x66\x6f\x72\x6d\x20\x61\x74\x20\x68\x74\x74\x70\x3a\x2f\x2f\x71\ \x74\x2e\x64\x69\x67\x69\x61\x2e\x63\x6f\x6d\x0a\x2a\x2a\x20\x24\ \x51\x54\x5f\x45\x4e\x44\x5f\x4c\x49\x43\x45\x4e\x53\x45\x24\x0a\ \x2a\x2a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2f\ \x0a\x0a\x69\x6d\x70\x6f\x72\x74\x20\x51\x74\x51\x75\x69\x63\x6b\ \x20\x31\x2e\x30\x0a\x0a\x49\x74\x65\x6d\x20\x7b\x0a\x20\x20\x20\ \x20\x69\x64\x3a\x20\x6d\x61\x69\x6e\x0a\x20\x20\x20\x20\x2f\x2f\ \x68\x65\x69\x67\x68\x74\x20\x61\x6e\x64\x20\x77\x69\x64\x74\x68\ \x20\x73\x65\x74\x20\x62\x79\x20\x70\x72\x6f\x67\x72\x61\x6d\x20\ \x74\x6f\x20\x66\x69\x6c\x6c\x20\x77\x69\x6e\x64\x6f\x77\x0a\x20\ \x20\x20\x20\x2f\x2f\x62\x65\x6c\x6f\x77\x20\x70\x72\x6f\x70\x65\ \x72\x74\x69\x65\x73\x20\x61\x72\x65\x20\x73\x6f\x6d\x65\x74\x69\ \x6d\x65\x73\x20\x73\x65\x74\x20\x66\x72\x6f\x6d\x20\x43\x2b\x2b\ \x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x75\x72\ \x6c\x20\x71\x6d\x6c\x46\x69\x6c\x65\x3a\x20\x27\x27\x0a\x20\x20\ \x20\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x62\x6f\x6f\x6c\x20\ \x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x0a\x0a\x20\x20\x20\ \x20\x49\x74\x65\x6d\x7b\x20\x69\x64\x3a\x65\x6d\x62\x65\x64\x64\ \x65\x64\x56\x69\x65\x77\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x77\x69\x64\x74\x68\x3a\x20\x70\x61\x72\x65\x6e\x74\x2e\x77\ \x69\x64\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\ \x67\x68\x74\x3a\x20\x70\x61\x72\x65\x6e\x74\x2e\x68\x65\x69\x67\ \x68\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x61\x63\x69\ \x74\x79\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7a\ \x3a\x20\x31\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x6f\x61\ \x64\x65\x72\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x69\x64\x3a\x20\x6c\x6f\x61\x64\x65\x72\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x7a\x3a\x20\x31\x30\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x63\x75\x73\x3a\ \x20\x74\x72\x75\x65\x20\x2f\x2f\x41\x75\x74\x6f\x6d\x61\x74\x69\ \x63\x20\x46\x6f\x63\x75\x73\x53\x63\x6f\x70\x65\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x3a\x20\x74\ \x72\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x73\x6f\x75\x72\x63\x65\x3a\x20\x71\x6d\x6c\x46\x69\x6c\x65\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\ \x6f\x72\x73\x2e\x63\x65\x6e\x74\x65\x72\x49\x6e\x3a\x20\x70\x61\ \x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x6f\x6e\x53\x74\x61\x74\x75\x73\x43\x68\x61\x6e\x67\x65\x64\ \x3a\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ \x66\x28\x73\x74\x61\x74\x75\x73\x20\x3d\x3d\x20\x4c\x6f\x61\x64\ \x65\x72\x2e\x4e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x6f\x61\x64\x65\ \x72\x2e\x66\x6f\x63\x75\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\ \x2f\x2f\x66\x69\x78\x65\x73\x20\x51\x54\x42\x55\x47\x31\x31\x34\ \x31\x31\x2c\x20\x70\x72\x6f\x62\x61\x62\x6c\x79\x20\x62\x65\x63\ \x61\x75\x73\x65\x20\x74\x68\x65\x20\x66\x6f\x63\x75\x73\x53\x63\ \x6f\x70\x65\x20\x6e\x65\x65\x64\x73\x20\x74\x6f\x20\x67\x61\x69\ \x6e\x20\x66\x6f\x63\x75\x73\x20\x74\x6f\x20\x66\x6f\x63\x75\x73\ \x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x20\x63\x68\x69\x6c\x64\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x65\x6c\ \x73\x65\x20\x69\x66\x28\x73\x74\x61\x74\x75\x73\x20\x3d\x3d\x20\ \x4c\x6f\x61\x64\x65\x72\x2e\x52\x65\x61\x64\x79\x29\x20\x7b\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x69\x66\x28\x6c\x6f\x61\x64\x65\x72\x2e\x69\x74\x65\x6d\x2e\x77\ \x69\x64\x74\x68\x20\x3e\x20\x36\x34\x30\x29\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x6c\x6f\x61\x64\x65\x72\x2e\x69\x74\x65\x6d\x2e\x77\x69\x64\x74\ \x68\x20\x3d\x20\x36\x34\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x28\x6c\x6f\x61\x64\ \x65\x72\x2e\x69\x74\x65\x6d\x2e\x68\x65\x69\x67\x68\x74\x20\x3e\ \x20\x34\x38\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x6f\x61\x64\x65\x72\ \x2e\x69\x74\x65\x6d\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x34\ \x38\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x7d\x7d\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x52\x65\x63\x74\x61\x6e\x67\x6c\x65\x7b\ \x20\x69\x64\x3a\x20\x66\x72\x61\x6d\x65\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x7a\x3a\x20\x39\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\ \x66\x69\x6c\x6c\x3a\x20\x6c\x6f\x61\x64\x65\x72\x2e\x73\x74\x61\ \x74\x75\x73\x20\x3d\x3d\x20\x4c\x6f\x61\x64\x65\x72\x2e\x52\x65\ \x61\x64\x79\x20\x3f\x20\x6c\x6f\x61\x64\x65\x72\x20\x3a\x20\x65\ \x72\x72\x6f\x72\x54\x78\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x6d\x61\x72\x67\ \x69\x6e\x73\x3a\x20\x2d\x38\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x72\x61\x64\x69\x75\x73\x3a\x20\x34\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6d\x6f\x6f\x74\x68\ \x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2e\x63\x6f\x6c\x6f\x72\x3a\ \x20\x22\x23\x38\x38\x61\x61\x61\x61\x61\x61\x22\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\ \x74\x3a\x20\x47\x72\x61\x64\x69\x65\x6e\x74\x7b\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x72\x61\ \x64\x69\x65\x6e\x74\x53\x74\x6f\x70\x7b\x20\x70\x6f\x73\x69\x74\ \x69\x6f\x6e\x3a\x20\x30\x2e\x30\x3b\x20\x63\x6f\x6c\x6f\x72\x3a\ \x20\x22\x23\x31\x34\x46\x46\x46\x46\x46\x46\x22\x20\x7d\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\ \x72\x61\x64\x69\x65\x6e\x74\x53\x74\x6f\x70\x7b\x20\x70\x6f\x73\ \x69\x74\x69\x6f\x6e\x3a\x20\x31\x2e\x30\x3b\x20\x63\x6f\x6c\x6f\ \x72\x3a\x20\x22\x23\x35\x41\x46\x46\x46\x46\x46\x46\x22\x20\x7d\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4d\x6f\x75\x73\x65\ \x41\x72\x65\x61\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x66\x69\ \x6c\x6c\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x63\x65\x70\ \x74\x65\x64\x42\x75\x74\x74\x6f\x6e\x73\x3a\x20\x51\x74\x2e\x4c\ \x65\x66\x74\x42\x75\x74\x74\x6f\x6e\x20\x7c\x20\x51\x74\x2e\x52\ \x69\x67\x68\x74\x42\x75\x74\x74\x6f\x6e\x20\x7c\x20\x51\x74\x2e\ \x4d\x69\x64\x64\x6c\x65\x42\x75\x74\x74\x6f\x6e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\ \x6c\x69\x63\x6b\x65\x64\x3a\x20\x6c\x6f\x61\x64\x65\x72\x2e\x66\ \x6f\x63\x75\x73\x3d\x74\x72\x75\x65\x3b\x2f\x2a\x20\x61\x6e\x64\ \x20\x64\x6f\x6e\x27\x74\x20\x70\x72\x6f\x70\x61\x67\x61\x74\x65\ \x20\x74\x6f\x20\x74\x68\x65\x20\x27\x65\x78\x69\x74\x27\x20\x61\ \x72\x65\x61\x2a\x2f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x7d\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x52\x65\x63\x74\x61\x6e\x67\x6c\x65\x7b\x20\x69\x64\x3a\x20\ \x69\x6e\x6e\x65\x72\x46\x72\x61\x6d\x65\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\ \x72\x73\x2e\x6d\x61\x72\x67\x69\x6e\x73\x3a\x20\x37\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\ \x63\x68\x6f\x72\x73\x2e\x62\x6f\x74\x74\x6f\x6d\x4d\x61\x72\x67\ \x69\x6e\x3a\x20\x38\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x72\x69\ \x67\x68\x74\x4d\x61\x72\x67\x69\x6e\x3a\x20\x38\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\ \x6f\x72\x3a\x20\x22\x62\x6c\x61\x63\x6b\x22\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6f\x72\x64\ \x65\x72\x2e\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x34\x34\x30\x30\ \x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x66\x69\ \x6c\x6c\x3a\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x7d\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x63\x74\x61\ \x6e\x67\x6c\x65\x7b\x20\x69\x64\x3a\x20\x63\x6c\x6f\x73\x65\x42\ \x75\x74\x74\x6f\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x77\x69\x64\x74\x68\x3a\x20\x32\x34\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\ \x32\x34\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7a\ \x3a\x20\x31\x31\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x62\x6f\x72\x64\x65\x72\x2e\x63\x6f\x6c\x6f\x72\x3a\x20\x22\ \x23\x61\x61\x61\x61\x61\x61\x61\x61\x22\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\ \x20\x47\x72\x61\x64\x69\x65\x6e\x74\x7b\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x72\x61\x64\x69\ \x65\x6e\x74\x53\x74\x6f\x70\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\ \x6e\x3a\x20\x30\x2e\x30\x3b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\ \x23\x33\x34\x46\x46\x46\x46\x46\x46\x22\x20\x7d\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x72\x61\ \x64\x69\x65\x6e\x74\x53\x74\x6f\x70\x7b\x20\x70\x6f\x73\x69\x74\ \x69\x6f\x6e\x3a\x20\x31\x2e\x30\x3b\x20\x63\x6f\x6c\x6f\x72\x3a\ \x20\x22\x23\x37\x41\x46\x46\x46\x46\x46\x46\x22\x20\x7d\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\ \x2e\x6c\x65\x66\x74\x3a\x20\x66\x72\x61\x6d\x65\x2e\x72\x69\x67\ \x68\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\ \x6e\x63\x68\x6f\x72\x73\x2e\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x66\ \x72\x61\x6d\x65\x2e\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x6d\x61\x72\ \x67\x69\x6e\x73\x3a\x20\x2d\x28\x32\x2a\x77\x69\x64\x74\x68\x2f\ \x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\ \x65\x78\x74\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x74\x65\x78\x74\x3a\x20\x27\x58\x27\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\ \x6f\x6e\x74\x2e\x62\x6f\x6c\x64\x3a\x20\x74\x72\x75\x65\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\ \x6f\x6c\x6f\x72\x3a\x20\x22\x77\x68\x69\x74\x65\x22\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\ \x6e\x74\x2e\x70\x69\x78\x65\x6c\x53\x69\x7a\x65\x3a\x20\x31\x32\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x63\x65\x6e\x74\x65\x72\x49\ \x6e\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x4d\x6f\x75\x73\x65\x41\x72\x65\x61\x7b\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\ \x6e\x63\x68\x6f\x72\x73\x2e\x66\x69\x6c\x6c\x3a\x20\x70\x61\x72\ \x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x6f\x6e\x43\x6c\x69\x63\x6b\x65\x64\x3a\x20\x6d\ \x61\x69\x6e\x2e\x73\x68\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\ \x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x54\x65\x78\x74\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x69\x64\x3a\x20\x65\x72\x72\x6f\x72\x54\x78\ \x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7a\x3a\ \x20\x31\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x61\x6e\x63\x68\x6f\x72\x73\x2e\x63\x65\x6e\x74\x65\x72\x49\x6e\ \x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x27\x77\x68\x69\ \x74\x65\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x73\x6d\x6f\x6f\x74\x68\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x69\x73\x69\x62\x6c\x65\ \x3a\x20\x6c\x6f\x61\x64\x65\x72\x2e\x73\x74\x61\x74\x75\x73\x20\ \x3d\x3d\x20\x4c\x6f\x61\x64\x65\x72\x2e\x45\x72\x72\x6f\x72\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x78\x74\ \x46\x6f\x72\x6d\x61\x74\x3a\x20\x54\x65\x78\x74\x2e\x52\x69\x63\ \x68\x54\x65\x78\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x2f\x2f\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x69\x66\ \x20\x6c\x6f\x61\x64\x65\x72\x20\x69\x73\x20\x45\x72\x72\x6f\x72\ \x2c\x20\x69\x74\x20\x69\x73\x20\x62\x65\x63\x61\x75\x73\x65\x20\ \x74\x68\x65\x20\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x66\x6f\x75\ \x6e\x64\x20\x62\x75\x74\x20\x74\x68\x65\x72\x65\x20\x77\x61\x73\ \x20\x61\x6e\x20\x65\x72\x72\x6f\x72\x20\x63\x72\x65\x61\x74\x69\ \x6e\x67\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2f\x2f\x54\ \x68\x69\x73\x20\x6d\x65\x61\x6e\x73\x20\x65\x69\x74\x68\x65\x72\ \x20\x77\x65\x20\x68\x61\x76\x65\x20\x61\x20\x62\x75\x67\x20\x69\ \x6e\x20\x6f\x75\x72\x20\x64\x65\x6d\x6f\x73\x2c\x20\x6f\x72\x20\ \x74\x68\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x6d\x6f\x64\ \x75\x6c\x65\x73\x20\x28\x77\x68\x69\x63\x68\x20\x73\x68\x69\x70\ \x20\x77\x69\x74\x68\x20\x51\x74\x29\x20\x64\x69\x64\x20\x6e\x6f\ \x74\x20\x64\x65\x70\x6c\x6f\x79\x20\x63\x6f\x72\x72\x65\x63\x74\ \x6c\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\ \x65\x78\x74\x3a\x20\x22\x54\x68\x65\x20\x65\x78\x61\x6d\x70\x6c\ \x65\x20\x68\x61\x73\x20\x66\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\ \x6c\x6f\x61\x64\x2e\x3c\x62\x72\x20\x2f\x3e\x49\x66\x20\x79\x6f\ \x75\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x20\x61\x6c\x6c\x20\ \x51\x74\x27\x73\x20\x43\x2b\x2b\x20\x61\x6e\x64\x20\x51\x4d\x4c\ \x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x74\x68\x65\x6e\x20\x74\x68\ \x69\x73\x20\x69\x73\x20\x61\x20\x62\x75\x67\x21\x3c\x62\x72\x20\ \x2f\x3e\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x2b\x20\x27\x52\x65\x70\x6f\x72\x74\x20\x69\x74\ \x20\x61\x74\x20\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x68\x74\x74\ \x70\x3a\x2f\x2f\x62\x75\x67\x72\x65\x70\x6f\x72\x74\x73\x2e\x71\ \x74\x2d\x70\x72\x6f\x6a\x65\x63\x74\x2e\x6f\x72\x67\x22\x3e\x68\ \x74\x74\x70\x3a\x2f\x2f\x62\x75\x67\x72\x65\x70\x6f\x72\x74\x73\ \x2e\x71\x74\x2d\x70\x72\x6f\x6a\x65\x63\x74\x2e\x6f\x72\x67\x3c\ \x2f\x61\x3e\x27\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x6f\x6e\x4c\x69\x6e\x6b\x41\x63\x74\x69\x76\x61\x74\x65\ \x64\x3a\x20\x51\x74\x2e\x6f\x70\x65\x6e\x55\x72\x6c\x45\x78\x74\ \x65\x72\x6e\x61\x6c\x6c\x79\x28\x6c\x69\x6e\x6b\x29\x3b\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\ \x20\x20\x20\x52\x65\x63\x74\x61\x6e\x67\x6c\x65\x7b\x20\x69\x64\ \x3a\x20\x62\x6c\x61\x63\x6b\x6f\x75\x74\x20\x2f\x2f\x4d\x61\x79\ \x62\x65\x20\x75\x73\x65\x20\x61\x20\x63\x6f\x6c\x6f\x72\x69\x7a\ \x65\x20\x65\x66\x66\x65\x63\x74\x20\x69\x6e\x73\x74\x65\x61\x64\ \x3f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7a\x3a\x20\x38\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x66\ \x69\x6c\x6c\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x30\x30\x30\ \x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x61\ \x63\x69\x74\x79\x3a\x20\x30\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\ \x20\x20\x4d\x6f\x75\x73\x65\x41\x72\x65\x61\x7b\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x7a\x3a\x20\x38\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x6d\x61\x69\x6e\x2e\ \x73\x68\x6f\x77\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x76\ \x65\x72\x45\x6e\x61\x62\x6c\x65\x64\x3a\x20\x6d\x61\x69\x6e\x2e\ \x73\x68\x6f\x77\x20\x2f\x2f\x54\x6f\x20\x73\x74\x65\x61\x6c\x20\ \x66\x6f\x63\x75\x73\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x62\ \x75\x74\x74\x6f\x6e\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\ \x63\x63\x65\x70\x74\x65\x64\x42\x75\x74\x74\x6f\x6e\x73\x3a\x20\ \x51\x74\x2e\x4c\x65\x66\x74\x42\x75\x74\x74\x6f\x6e\x20\x7c\x20\ \x51\x74\x2e\x52\x69\x67\x68\x74\x42\x75\x74\x74\x6f\x6e\x20\x7c\ \x20\x51\x74\x2e\x4d\x69\x64\x64\x6c\x65\x42\x75\x74\x74\x6f\x6e\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\ \x2e\x66\x69\x6c\x6c\x3a\x20\x70\x61\x72\x65\x6e\x74\x0a\x20\x20\ \x20\x20\x7d\x0a\x0a\x20\x20\x20\x20\x73\x74\x61\x74\x65\x73\x3a\ \x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x53\x74\x61\x74\x65\ \x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\ \x61\x6d\x65\x3a\x20\x22\x73\x68\x6f\x77\x22\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x65\x6e\x3a\x20\x73\x68\ \x6f\x77\x20\x3d\x3d\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x50\x72\x6f\x70\x65\x72\x74\x79\x43\ \x68\x61\x6e\x67\x65\x73\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x3a\ \x20\x65\x6d\x62\x65\x64\x64\x65\x64\x56\x69\x65\x77\x65\x72\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x50\x72\x6f\x70\x65\x72\x74\x79\x43\x68\x61\ \x6e\x67\x65\x73\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x3a\x20\x62\ \x6c\x61\x63\x6b\x6f\x75\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\ \x20\x30\x2e\x35\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\ \x20\x5d\x0a\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\ \x6e\x73\x3a\x20\x5b\x2f\x2f\x53\x68\x6f\x75\x6c\x64\x20\x6e\x6f\ \x74\x20\x62\x65\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x2c\x20\x62\ \x65\x63\x61\x75\x73\x65\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x6f\ \x6e\x65\x6e\x74\x20\x68\x61\x73\x20\x61\x6c\x72\x65\x61\x64\x79\ \x20\x73\x74\x61\x72\x74\x65\x64\x20\x72\x75\x6e\x6e\x69\x6e\x67\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x72\x61\x6e\x73\x69\x74\ \x69\x6f\x6e\x20\x7b\x20\x66\x72\x6f\x6d\x3a\x20\x27\x27\x3b\x20\ \x74\x6f\x3a\x20\x22\x73\x68\x6f\x77\x22\x3b\x20\x72\x65\x76\x65\ \x72\x73\x69\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x72\x61\x6c\x6c\x65\ \x6c\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x7b\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4e\x75\x6d\x62\ \x65\x72\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x7b\x20\x70\x72\x6f\ \x70\x65\x72\x74\x69\x65\x73\x3a\x20\x22\x6f\x70\x61\x63\x69\x74\ \x79\x22\x3b\x20\x65\x61\x73\x69\x6e\x67\x2e\x74\x79\x70\x65\x3a\ \x20\x45\x61\x73\x69\x6e\x67\x2e\x49\x6e\x51\x75\x61\x64\x3b\x20\ \x64\x75\x72\x61\x74\x69\x6f\x6e\x3a\x20\x35\x30\x30\x7d\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\ \x72\x6f\x70\x65\x72\x74\x79\x41\x63\x74\x69\x6f\x6e\x20\x7b\x20\ \x74\x61\x72\x67\x65\x74\x3a\x20\x6c\x6f\x61\x64\x65\x72\x3b\x20\ \x70\x72\x6f\x70\x65\x72\x74\x79\x3a\x20\x22\x66\x6f\x63\x75\x73\ \x22\x3b\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x72\x75\x65\x7d\x2f\ \x2f\x4d\x69\x67\x68\x74\x20\x62\x65\x20\x6e\x65\x65\x64\x65\x64\ \x20\x74\x6f\x20\x65\x6e\x73\x75\x72\x65\x20\x74\x68\x65\x20\x66\ \x6f\x63\x75\x73\x20\x73\x74\x61\x79\x73\x20\x77\x69\x74\x68\x20\ \x75\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x5d\ \x0a\x7d\x0a\ \x00\x00\x0d\xda\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x9b\x00\x00\x00\x9b\x08\x06\x00\x00\x00\x75\x61\xe9\x8c\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x09\x70\x48\x59\x73\x00\x00\x1c\x20\x00\x00\x1c\x20\x01\xcd\x0f\ \x9b\x9e\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd8\x09\x11\x0f\x0b\ \x3b\x8e\xaf\x11\xbb\x00\x00\x0d\x6c\x49\x44\x41\x54\x78\xda\xed\ \xdd\x79\x90\x14\xd5\x1d\x07\xf0\xef\xeb\xee\xb9\x97\x3d\x58\xdc\ \x65\x97\x5d\x90\x43\x41\x44\x40\x51\x2e\xc5\x12\x8c\x15\xd4\x78\ \x25\x6a\x2a\xc6\x23\xa9\x44\x4d\x8c\x7f\x24\x50\xa9\x32\xc6\x24\ \x9a\x90\x32\x52\x89\x65\x2a\x1e\xf1\x0f\xad\x58\x6a\xa9\xd1\x32\ \xc1\x24\xe5\x5d\x46\x2d\x90\x2b\x22\x0a\x72\xec\x02\xbb\xb0\xd7\ \xcc\x1e\xd3\x73\xf4\x74\x4f\x1f\xef\xe5\x8f\x5d\xd6\x1d\x7a\x50\ \xae\xe9\x85\x9e\xdf\xb7\x8a\x82\xaa\xf7\xb6\x67\xe6\xcd\x87\xf7\ \x5e\xbf\x7e\xdd\xcb\x00\x2c\x04\xb0\x18\x14\x4a\x89\x23\x03\xe8\ \x00\x20\x00\x34\x53\x73\x50\x4a\x8d\x0d\x04\x8e\xe2\x25\x36\x02\ \x47\xf1\x14\x1b\x81\xa3\x78\x8a\xed\x20\x38\x10\x38\x8a\x17\xd8\ \x08\x1c\xc5\x53\x6c\x04\x8e\xe2\x29\x36\x02\x47\xf1\x14\x1b\x81\ \xa3\x78\x8a\x8d\xc0\x51\x3c\xc5\x46\xe0\x28\x9e\x62\x23\x70\x14\ \x4f\xb1\x11\x38\x8a\xa7\xd8\x08\x1c\xc5\x53\x6c\x04\x8e\xe2\x29\ \x36\x02\x47\xf1\x14\x1b\x81\xa3\x1c\x71\xd8\x09\x3c\xd6\xa2\xa1\ \x3f\x94\xa3\xcd\xa4\xd8\x14\x34\x46\xcf\x85\xcc\x6a\xea\x9a\xc2\ \xe1\x99\xb3\x2a\xa2\x4d\x93\xc2\x91\x50\x58\x0a\x58\x06\xcf\xea\ \xaa\x95\xd0\x55\x7b\x40\xed\xd2\x7b\x7a\x5b\xb4\x9e\x54\xa7\x91\ \xea\x6f\xcf\x65\xac\x9c\x63\x97\x2b\x36\x02\x77\xb4\x09\x48\x01\ \x69\x7e\xed\x75\xa2\x3a\xb4\x40\x38\x02\xf3\xce\xaf\xc4\xfc\x05\ \x95\x90\x65\xc0\xb2\x04\x84\x28\xfe\x63\xdc\x11\x96\xa5\x3b\xa9\ \x5c\xd2\x4a\xe8\xaa\xdd\x9f\xea\xd6\xe3\xbd\xad\x5a\x8f\x7a\xc0\ \x50\xd5\x4e\x5d\x33\xd2\xb6\x59\x0e\xd8\x08\xdc\xd1\x34\xfe\xc5\ \xf5\xb7\xb0\xca\xc0\x5c\x6e\x09\xcc\x9a\x53\x81\xa5\x4b\x6b\x60\ \x59\x1c\x9c\x1f\xdb\xf1\xb8\x23\x2c\x3b\xcf\xb3\x66\xce\x4e\x6b\ \xfd\x56\x4f\xaa\xcb\xe8\xce\xf4\xe4\x07\x12\x2d\xd9\xde\xde\x56\ \x4d\x1d\x6d\x84\xac\x44\xc7\x25\x70\x5f\x95\x19\x55\xb3\xa5\x69\ \x63\x6e\xe3\x5c\x20\x1a\x91\x71\xfd\x0d\x75\x88\xc5\x64\x38\x8e\ \x38\xe1\x2f\xc5\x1d\xe1\xd8\x79\x9e\x36\x73\x76\x3a\xdb\x67\xc5\ \xd3\x3d\x46\x77\xba\xdb\xe8\xef\x6b\xd5\x7a\x13\xad\x9a\x6a\xa4\ \xbc\x41\xa8\x94\xe8\xb8\x1f\x8d\x40\x47\x29\xf6\xbf\xbc\x3e\x32\ \x0f\x00\xe0\x00\x4d\xcd\x21\x54\x56\xca\x30\x4d\x51\x92\xd7\x92\ \x64\x26\x07\xa3\x72\x4d\x30\x2a\xd7\x54\x8c\x0b\x4d\x1a\x3f\xa3\ \x02\x00\x20\xb8\x70\x4c\x83\x67\xac\x9c\x9d\x32\xd2\x76\x52\x4f\ \xda\xfd\xf1\x56\xad\x2b\xd9\x9e\xeb\x4d\x75\xe9\xe9\xe4\x01\x3d\ \x2b\x1c\x88\x93\x1d\x1b\x81\xfb\xaa\x84\xa5\xc6\xc1\x6f\x5c\xa0\ \xaa\x4a\x19\x1a\x64\x84\xb7\xe0\x25\x26\x87\xa2\x72\x75\x28\x2a\ \x57\x57\x8c\x0b\x4d\x02\x80\xe6\x79\x55\x00\x20\x1c\x9b\x9b\xb9\ \x7e\xab\xe3\x85\x3b\xb7\x3e\x7e\xc2\xd0\x97\xf8\xf3\x7c\x34\x02\ \x1d\xa5\xa0\xe5\x59\xf8\xe0\x3f\x65\x99\x9d\x6c\xef\x8e\xc9\x8a\ \x14\x8a\xd4\x04\x1a\x4e\xe8\x47\xf6\xe0\x8d\x13\x38\x4a\xc9\x87\ \xd1\x43\xc1\x09\xd0\x9d\xf7\xc7\x15\x59\x66\x90\x24\x81\x5c\xde\ \x80\x69\xd9\x90\x65\x09\x12\x93\xc0\x05\x87\x10\x1c\xb2\xa4\x20\ \x20\x87\xc0\xc0\xca\x1a\x1b\x00\xac\x1f\xfa\x9b\xc0\x1d\xed\x98\ \xc6\x80\x60\x50\x42\xbc\x57\xc3\x9e\xbd\x3a\xce\xaa\x3f\x0f\xcb\ \xe7\x5e\x8a\xa9\xe3\x4f\x47\x34\x1c\x41\xde\xce\xa1\x27\xdb\x8e\ \xed\x89\x8f\xb0\x77\xe0\x53\x98\xdc\x42\x48\x8e\x14\x1f\xca\x24\ \x80\x73\x0e\x2e\x04\x18\x24\x30\xc6\x7c\x89\x8d\xc0\x1d\x23\x34\ \x59\x96\xb0\x76\x7d\x02\x03\x1d\x35\x58\x7d\xeb\x6a\x7c\xf3\xc2\ \xe5\x90\x8b\x5c\x68\xbc\x7a\xc6\x1d\x68\xed\xdf\x8a\x35\x3b\x9e\ \xc0\xa7\xf1\xb5\x08\x2b\x51\x57\x1d\x5d\x77\x10\x0a\x84\x10\x0e\ \x2a\xc8\x5b\x39\x08\x21\xc0\x98\xe4\xc9\x67\x91\x46\xa1\xfd\xd6\ \x03\x58\x47\x8c\x8e\xb0\x37\x50\x18\x3e\xf8\x30\x81\xfd\xdb\xa2\ \x58\xf3\xcb\xe7\x71\xc3\xc5\xc5\xa1\x1d\xcc\xb4\xda\x39\x58\x71\ \xd1\x13\x58\x36\xe5\x46\xe8\x56\xb6\x60\x08\x4e\xa5\x6c\x3c\xf3\ \x6c\x1b\xce\x8b\xfe\x00\x7f\xbc\xe2\x35\xfc\x7a\xd9\x0b\x98\x58\ \x7d\x16\x2c\x27\xef\x5b\x6c\x04\xee\x08\x13\x08\x30\xec\xda\xad\ \x61\xdb\xe6\x2c\x9e\xfe\xf9\xc3\x98\x3d\x79\xba\xab\x4e\x3a\x97\ \xc5\xfe\x44\x0f\xf8\x88\xcb\x0e\x0c\x0c\xb7\xcc\xbd\x17\xe7\x35\ \x2e\x85\x61\xe7\x86\xb0\x01\x3d\x71\x03\xb0\x22\x58\x74\xe6\x22\ \x84\x58\x15\x9a\x2a\xa7\x21\x16\x18\x03\x2e\xb8\xaf\xb1\x11\xb8\ \x23\x18\x3e\x2d\x4b\x60\xed\xba\x38\xae\x5d\xf2\x0d\x5c\xb5\xe0\ \x32\x57\x9d\x1d\x7d\x1b\x70\xff\xbb\xdf\xc1\xa5\xab\x96\xe2\xfa\ \xdf\xff\x08\xa9\x5c\x66\xc4\xca\x8a\x8c\x1b\x67\xad\x40\x45\xb0\ \x0a\x5c\x38\x00\x80\x8e\xce\x1c\x26\x8f\x9f\x88\xe9\x4d\x53\x47\ \x67\xb5\x67\x94\xdb\x94\xc0\x7d\xc9\xf0\xd9\xbe\x5f\x87\x3e\x00\ \xdc\x7d\xcd\xf7\x5c\xe5\x99\xfc\x00\x9e\xda\xf4\x1b\xa8\x4e\x1b\ \x16\x2f\x89\xe2\x9f\xeb\x5f\xc0\x8a\x27\xef\x2f\xa8\xd3\x58\x39\ \x05\x0b\x9b\x2f\x07\x64\x13\xba\x69\xa2\x6d\x6f\x02\xf3\xa6\x9e\ \x8d\x50\x20\x38\x5c\x87\x83\x43\x80\xc3\x8b\x05\x65\xe9\x24\x68\ \x57\x02\x77\x98\x9e\x6d\xe7\xae\x34\xa6\x36\x4f\xc7\x85\x33\xe7\ \xbb\xca\x37\x77\xbe\x83\xb8\xd6\x8e\x00\x8b\xa2\x6a\x4c\x10\xf3\ \x17\x36\xe1\xb9\xb7\x5f\x41\x6b\xd7\xbe\x82\x7a\x17\x4c\x58\x8e\ \xb6\xbd\x26\x14\x6d\x12\x16\xcd\xf8\x1a\xae\x5b\x72\x45\x21\x6a\ \x36\x78\x8e\x68\x39\xe6\x70\x0f\xe8\x67\x6c\x04\xae\x08\x34\x5d\ \xe7\x38\xd0\x99\xc5\x45\xb3\xce\x47\x38\x18\x72\xd5\xd9\x93\xfc\ \x0c\x8c\x0d\x9e\x29\x38\x8e\x40\x63\x43\x04\xa6\x91\xc2\xda\xed\ \x9b\x0a\xea\x9d\x5e\x75\x36\xb6\xae\x53\x30\x81\x5d\x82\x0f\x57\ \xaf\xc1\x4d\x97\x5c\x5b\x50\x7e\xf3\xdc\x7b\xf1\xc0\xb2\x97\x70\ \xdf\xd2\xe7\x30\xb3\x6e\x21\x4c\xc7\xf0\xcd\xd2\x07\x2d\x8b\x1c\ \x49\x0f\x20\x31\x64\x32\x36\x78\xc6\xc6\xec\xc9\x67\x15\xad\xd3\ \xaf\x75\x41\x1e\xc2\xc6\x39\x10\x8b\x49\x40\x80\xe1\xf3\x03\x2d\ \x05\xf5\xc2\xc1\x30\xce\x99\x72\x36\x2c\xc7\x2a\x7a\x9c\xda\x68\ \x03\x6a\xa3\x83\x57\xa5\xc6\x46\xc6\xc3\x29\x61\xef\x26\x9d\x64\ \xed\x4c\x3d\x1c\x06\x17\x5e\xb3\x59\x07\xe0\x12\x26\x37\x4c\x74\ \x95\x9b\x8e\x01\x35\xdf\x07\x69\x08\x9b\x10\x02\xa1\x90\x04\x39\ \xa6\x60\x77\xe7\x3e\x57\xfd\x85\x33\xe7\x42\xcd\x25\x61\x98\x79\ \x88\x43\x76\x64\x0a\x6f\xa6\x6b\x27\x5d\xcf\x46\x3d\xdc\x88\x61\ \x34\x9d\xb6\x00\x25\x84\x09\xb5\xf5\xae\xf2\xbc\xad\xc3\xb0\xb4\ \x82\xd5\xff\x40\x40\x42\x34\xa2\x20\xa1\xf6\xbb\xea\x5f\xbd\x6c\ \x36\x6e\x7b\xe4\x2e\xfc\xeb\xce\xf7\xb1\xf5\xb1\xd7\x51\x19\x1d\ \x33\x5c\xf6\xec\x96\x3f\xa0\x25\xb1\x1d\x95\xe1\x1a\xf4\x99\x6d\ \x08\xc9\xe1\xb2\xc2\x46\xe0\xc0\x90\xd5\x6c\x28\xa1\x28\xc6\x55\ \x8e\x75\x95\xda\xdc\x82\x23\x9c\xe1\x6b\xa0\x42\x0c\xae\xa3\x85\ \x82\x12\x72\xa6\x7b\x81\xb6\x26\x56\x03\xc1\x6c\x24\xd3\x49\xf0\ \x43\x7a\xb6\xb8\xbe\x07\x7b\xb2\xeb\x11\xd4\xc3\x50\xa4\x20\x64\ \x16\x28\x59\x57\xa7\x9c\xc4\x2d\x5e\xd6\xe0\x2c\x8b\x23\x1c\x08\ \x61\x4c\xa4\xc2\x55\xe6\x08\x1b\xa2\xc8\xdc\x4a\x56\x24\x58\xb6\ \x05\x2e\x38\xa4\x11\x97\xa0\x82\x72\x14\x12\x53\x20\x15\xb9\xf4\ \xa0\xb0\x20\x82\x52\x64\xc4\xb5\xd4\xd2\x8d\xa9\xd2\x49\xde\xe6\ \x65\x3b\x87\xe3\x5c\x40\x92\x24\xc8\x52\x91\x6b\x53\x42\x14\x25\ \x21\x49\x0c\x8e\xe3\x80\xf3\xc2\x52\x99\x29\x05\xf8\x46\x6d\x2e\ \x7a\x0a\xb4\x7b\x79\x82\x63\xc7\xf6\x23\x83\x27\x00\xe2\x78\x0f\ \x55\xb6\xd8\xca\x12\x9c\x24\x31\x38\xdc\x81\x5d\xec\xd6\x50\x56\ \x7c\xc7\x1a\xe7\x02\xb2\x2c\xbb\x76\x71\x70\x70\xd7\x59\x28\x61\ \x23\x70\x5f\x9c\x5d\x2a\x12\xf2\x96\x89\x8c\xa1\xb9\xe7\x66\x4c\ \x19\x5e\xd0\x2d\x98\xcb\x71\x01\x59\x92\x21\x1d\xb2\x47\xcd\x8b\ \xab\x03\x7e\xc3\x56\x56\xe0\xa2\x51\x05\x76\x5e\x47\x32\xa3\xba\ \x21\xca\x41\xc8\x4c\xc6\xc8\x99\x9b\x10\x80\x6d\x73\x84\x02\x01\ \xd7\x86\x48\xc3\xd6\x86\xea\x32\xc2\x46\xe0\x0e\x9d\xff\x0b\x54\ \x55\x2a\x80\x9d\x47\x4f\xb2\xd7\x55\x1e\x94\xc3\x88\x04\x2a\x86\ \x87\x46\xc6\x06\x2f\x59\xe5\xf3\x1c\xb1\xb0\x7b\xc3\x64\x26\x9f\ \xf4\x6c\x1b\x91\xdf\xb0\xf9\x1e\x9c\x10\x40\x2c\x2a\x03\x8c\x63\ \x7f\xa2\xb3\x28\xb6\xca\xd0\xd8\x82\xa1\xd1\xb6\x05\x72\xba\x8d\ \xc6\xda\x3a\x57\xfd\xfe\x5c\x37\x84\xe0\xa3\x7e\xa2\x20\x9d\xc2\ \xdf\x89\x6f\xc1\x71\x2e\x10\xab\x90\x81\x30\xc3\xce\x8e\x3d\x45\ \xeb\x8c\x8d\x8c\x1f\xc6\x26\x49\x0c\x86\xc1\x01\xdd\xc6\x99\x8d\ \x93\x5d\x75\xdb\xd5\x1d\xc5\x97\x50\xe0\xed\x9d\xaa\xd2\x29\xfe\ \xbd\xf8\x12\x1c\xe7\x40\x34\x26\x63\x5c\x5d\x04\x9b\x77\x7f\x5a\ \xb4\x4e\x53\xd5\xb4\xe1\xa1\x91\x31\x40\xd3\x1c\xc0\x02\x66\x34\ \x17\x6e\x8c\xd4\xad\x2c\xba\xb3\xfb\x86\xae\x0c\x14\xc3\x26\xc0\ \x18\x30\x68\x51\x10\xb6\x72\x04\x27\x4b\x0c\xd3\xa6\x54\x62\xd3\ \xae\xad\xd8\xdd\xb9\xd7\x55\x3e\xab\x7e\x31\xc2\x4a\x6c\xf0\x16\ \x3e\x99\x61\xff\x01\x0d\x15\x95\x75\x58\x32\x6b\x41\x41\xbd\xd6\ \x81\x4f\xd0\xab\x75\x42\x91\x15\x70\x21\x5c\x4b\x20\xe3\xa2\x0d\ \xe8\x4b\x27\xd1\xd5\x93\x05\xb7\x15\x94\xf2\x66\x2b\xc9\x27\xdf\ \x8d\xef\xc0\x39\x8e\xc0\xd4\xa9\x31\xd8\xb6\x8a\x97\x3f\xf8\xb7\ \xab\x7c\x62\xd5\x0c\xcc\x69\xb8\x18\x39\x27\x85\x78\x9f\x86\x2d\ \x1b\x3b\xf1\xc3\x2b\x6e\xc2\x84\xda\xc2\x9b\xd8\x37\x76\xbc\x05\ \x87\xdb\xa8\x88\x05\xa0\x19\x1a\x92\xd9\x54\x41\xf9\xd7\xa7\xdd\ \x86\x4b\xeb\x57\xe0\x8e\xd9\x8f\xe2\xaa\x19\xb7\x23\x6f\x1b\x84\ \xad\xdc\xc0\x39\x8e\x40\x4d\x8d\x82\xe9\xb3\x6a\xf0\xd8\x9a\xbf\ \x21\x91\x72\xef\xe6\xb8\x65\xee\x3d\xb8\xa0\xfe\x1a\xb4\x6f\xaf\ \xc6\x4f\xae\x5d\x89\x07\xbf\x7f\x8f\x6b\xae\xb6\xb9\xf3\x6d\x28\ \x2c\x8c\x86\xf1\x61\x58\x39\x15\x1b\x77\x6d\x29\xa8\x33\x7e\xcc\ \x44\xfc\xf4\xf2\x9f\xe1\xca\xf9\x4b\x51\x1d\xab\x2e\xe9\x7a\x9c\ \x9f\xb0\xf9\x10\x1c\x30\x7f\x7e\x2d\xe2\xd9\x36\xdc\xf7\xf4\x43\ \xae\xf2\xaa\xd0\x69\xb8\x7b\xd1\x43\xf8\xef\x03\xef\xe2\xd1\x1f\ \xff\x16\xe1\xe0\x17\xdb\x83\x1c\x6e\xe3\xef\xdb\x1e\x81\x6e\x65\ \x21\x38\x43\x5d\x7d\x08\xcd\xd3\x63\x58\xfd\xe2\x93\x48\x69\x5a\ \xd1\xd7\x53\xf5\x44\x49\xef\xa6\x97\xe1\xbf\x9c\x12\xbf\xa0\x97\ \x9d\x51\xb9\x8c\x49\x2c\x20\x1c\x81\xa6\x89\x61\x34\x36\x86\x5c\ \xcf\x66\x13\x02\x88\x46\x24\x34\x36\xc6\xf0\xd2\x1b\x1f\x42\x42\ \x04\x17\x9f\x53\x78\x3f\x82\x24\x31\x28\x87\xec\xe6\x70\xb8\x8d\ \x67\x3e\x59\x85\x8d\x1d\x6f\x22\xac\xc4\x86\x4f\x22\xa6\x4c\x1e\ \x83\xae\xcc\x7e\x6c\x68\xd9\x80\x70\x8c\x23\x65\x75\x63\x6f\xf2\ \x33\x6c\xe8\x78\x1d\xaf\x7e\xfe\x18\xfe\xd7\xf5\x2e\x14\xe9\xe0\ \x13\x95\x06\x1f\x2e\xb8\xe5\xe5\xae\xf7\x4e\xd4\x67\x56\xe0\xcf\ \xf8\x66\x7b\x92\x65\x09\x34\x4d\x88\xe0\x5b\x37\x4c\xc0\x9f\xdf\ \x79\x10\x7b\xe3\x6d\xb8\xff\xbb\x2b\x31\xb1\xce\xfd\x80\x21\x21\ \x04\x76\xf5\x6d\xc6\x3f\x76\x3c\x8e\x9d\xbd\x9b\x10\x19\x82\x76\ \xf0\x0c\x57\x96\x81\x8b\x16\xd6\x23\x97\x6f\xc5\x8b\x9f\xff\x0e\ \xb2\x24\x43\x0c\x5d\x37\x55\xa4\x00\x14\x39\x58\xd2\x9e\xcd\xaf\ \xd8\x7c\x05\xce\xb4\x38\xc6\xd5\x86\x70\xfd\x75\x13\xb0\xef\xc0\ \x6b\xb8\x6c\xd5\x1b\x98\x3d\x7e\x09\x9e\x59\xf9\x30\xa2\xa1\x2f\ \x9e\xe9\xd1\x97\xeb\xc4\x9f\xd6\xde\x05\xd3\x31\x86\x7b\xb4\x43\ \x7b\x4a\xd3\xe4\x50\x58\x08\x4a\x91\x9b\x68\x4a\x1d\x09\xfe\x8e\ \x6f\xe6\x70\xb6\x2d\x20\x04\xc3\x59\x67\x8c\x43\x43\x93\x8d\x57\ \x5e\x7f\x1e\x9b\x5b\x3e\x29\xa8\x73\x5a\xac\x09\x67\xd7\x2d\x80\ \x61\x6b\xc8\x0f\xdd\x09\x7f\x9c\x11\x84\xad\x4c\xc1\x09\x01\x18\ \x06\x47\x73\x73\x05\x10\x95\xf1\xe6\xe6\xf7\x5d\x75\x6e\x3d\xf7\ \x57\xb8\x79\xce\x2f\xb0\xb0\xf9\xca\x21\x2b\xc7\xee\xc5\x31\xb9\ \x4e\xd8\xca\x18\x1c\xe7\x83\x8f\x45\x3d\x63\x66\x35\x9e\x7d\xfb\ \x55\xd7\xba\xd9\xd8\x48\x3d\xae\x9a\x71\x3b\x96\x9f\x79\x2b\x84\ \x00\x8e\x67\x1b\x5b\xb6\xcf\xec\x26\x6c\x65\x0e\xce\x71\x80\xc5\ \x8b\xc6\xa1\xd7\xd8\x87\x95\x7f\x5d\x55\x92\x51\x90\x31\x60\xf7\ \x07\x7d\x9b\x68\xe9\xc3\x07\xcb\x22\x47\xb2\xf4\xf1\x65\xc3\x69\ \x38\x2c\x61\xda\x19\x55\x78\x7f\xdb\x06\xac\xdb\xbe\x05\x0d\x63\ \x4f\x43\x24\x14\x80\x0d\x13\x39\x2b\x8d\x3d\x03\x9f\x61\x6b\xcf\ \x07\x43\xbb\x7a\x8f\xfe\x0c\xb3\x67\x57\x7a\xe3\x87\x7f\x69\x7b\ \xef\x44\x7e\x66\x05\xe5\x17\x5f\x9c\xa5\xda\xb6\x40\x45\x4c\xc6\ \x95\xcb\x1b\x31\x90\xfa\x18\x8f\x7d\x7c\x17\xc6\xee\xae\x46\x40\ \x09\xc0\x72\xf2\x30\x1d\x63\xf8\x26\xe6\xa3\x9b\x17\x0a\xd1\xbd\ \x3d\xb3\xee\xad\x07\x5b\x5e\xa3\xa5\x0f\x02\x37\x62\x38\x15\x70\ \x1c\xa0\x32\x16\x03\x20\x60\xf2\x1c\xf2\xe6\xe0\xf3\xd9\x8e\xe4\ \x69\x92\xdc\x11\xb6\xa5\x3b\x29\x5d\xb5\x12\xb9\xa4\xd5\x9f\xea\ \x36\xe2\xfb\x37\xab\x7b\xdb\x37\xaa\x3d\xa5\x78\xbf\xe5\x8a\xcd\ \x37\xe0\x0e\x0e\xab\x00\x3b\x6c\x4f\xe6\x58\xdc\x30\x73\x4e\xca\ \xd4\x1c\x55\x4f\x59\x03\xa9\x6e\xa3\xa7\xb7\x45\xeb\x4a\x1e\xd0\ \xd5\xfe\x7d\xb9\xb4\xa9\x79\xf3\x0b\xd7\xca\x19\xdb\xe8\x82\x13\ \x82\x9f\xe8\x7b\x02\x1c\x9b\x9b\x96\xce\xd3\xf9\xac\x9d\xcc\xc4\ \xf3\x9d\xa9\x6e\x23\xa1\x76\x18\x7d\xf1\x1d\x99\xde\x64\x87\x9e\ \x75\xcc\xd1\xdd\x1b\x5e\xee\xd8\x46\x0f\x5c\x47\xee\x3f\x62\x52\ \xec\x86\x63\x59\x11\x70\x6c\x6e\xda\x06\xcf\x98\x9a\xa3\x66\x12\ \xf9\xae\x54\xb7\x11\x57\x3b\x8c\xfe\xf8\xce\x4c\x7c\xa0\x5d\xcf\ \xda\x79\xee\x9c\x8c\x0d\x4d\xd8\x46\x09\x9c\xd8\xa6\x6e\x84\xc1\ \x33\x38\xbd\xe2\x16\x00\xa1\xc3\xcd\xa9\xcc\x9c\xa3\xea\xaa\x15\ \xcf\x25\xad\x81\x54\xa7\xd1\x9d\x68\xc9\x76\xab\x1d\x7a\x4a\xed\ \x34\x34\xaf\x86\x3f\xc2\xe6\x87\x1e\xae\x35\xbd\x03\x79\xe7\x29\ \xfb\x82\x31\xdf\x36\xd2\x96\x93\xee\x37\x07\x0c\xd5\xee\x57\x3b\ \x8d\x9e\xde\x3d\x5a\x77\xf2\x40\x2e\x35\xd0\xa6\xa7\xcd\x53\xec\ \x97\xd8\x1e\x76\xb9\x87\x8c\xb9\xb2\x10\xf4\x40\xc2\x92\x44\xa6\ \x26\x70\xcf\xa6\x70\x0a\xec\x87\x23\x6c\x04\x8e\x42\xd8\x08\x1c\ \x61\x23\x70\x84\x8d\x42\xe0\x08\x1b\x81\x23\x6c\x04\x8e\x42\xd8\ \x08\x1c\x61\x23\x70\x84\x8d\x42\xe0\x08\x1b\x81\x23\x6c\x14\x02\ \x47\xd8\x08\x1c\x61\x23\x70\x84\x8d\x42\xe0\x08\x1b\x81\x23\x6c\ \x14\x02\x47\xd8\x08\x1c\x61\x23\x70\xd4\x14\x84\x8d\xc0\x11\x36\ \x02\x47\xd8\x28\x04\x8e\xb0\x11\x38\xc2\x46\x21\x70\x84\x8d\xc0\ \x11\x36\x02\x47\xd8\x28\x04\x8e\xb0\x11\x38\xc2\x46\x21\x70\x84\ \x8d\xc0\x11\x36\x4a\xf9\x80\x23\x6c\x04\x8e\xb0\x11\x38\xff\x81\ \x23\x6c\x04\x8e\xb0\x51\xfc\x07\x8e\xb0\x11\x38\xc2\x46\xf1\x1f\ \x38\xc2\x46\xe0\x08\x1b\xa5\x28\x38\x9c\xca\xe0\x08\x1b\x81\x23\ \x6c\x14\xff\x81\x23\x6c\x04\x8e\xb0\x51\xfc\x07\x8e\xb0\x11\x38\ \xc2\x46\xf1\x1f\x38\xc2\x46\xe0\x08\x1b\xc5\x7f\xe0\x08\x1b\x81\ \x23\x6c\x14\xff\x81\x23\x6c\x04\x8e\xb0\x51\xfc\x07\x8e\xb0\x11\ \x38\xc2\x46\xf1\x1f\x38\xc2\x46\xe0\x08\x1b\xc5\x7f\xe0\x08\x1b\ \x81\x23\x6c\x14\xff\x81\x23\x6c\x04\x8e\xb0\x51\xfc\x07\x8e\xb0\ \x11\x38\xcf\xc0\x11\x36\x8a\x67\xe0\x08\x1b\xc5\x33\x70\x84\x8d\ \xe2\x19\x38\xc2\x46\xf1\x0c\x1c\x61\xa3\x78\x06\x8e\xb0\x51\x3c\ \x03\x47\xd8\x28\x9e\x81\x23\x6c\x14\xcf\xc0\x11\x36\x8a\x67\xe0\ \x08\x1b\xc5\x33\x70\x84\x8d\xe2\x19\x38\xc2\x46\xf1\x0c\x1c\x61\ \xa3\x78\x06\x8e\xb0\x51\x3c\x03\x47\xd8\x28\x9e\x81\x23\x6c\x14\ \xcf\xc0\x11\x36\x8a\x67\xe0\x08\x1b\xc5\x33\x70\x84\x8d\xe2\x19\ \x38\xc2\x46\xf1\x0c\x1c\x61\xa3\x78\x06\x8e\xb0\x51\x3c\x03\x47\ \xd8\x28\x9e\x81\x23\x6c\x14\xcf\xc0\x11\x36\x8a\x67\xe0\x08\x1b\ \xc5\x33\x70\xff\x07\x60\xd3\xdf\x18\x28\x5f\x8f\x64\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x5b\xfb\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\xb6\x00\x00\x00\xb2\x08\x06\x00\x00\x00\x2e\xef\xea\xd2\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x09\x62\x00\x00\x09\x62\ \x01\x62\xdb\xcf\x8c\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x20\x00\x49\x44\ \x41\x54\x78\x9c\xec\x9d\x79\x78\x54\xe5\xf5\xc7\xbf\xe7\xde\x99\ \xc9\x9e\xb0\xef\x10\x76\x04\x51\xb6\x30\x13\x16\x95\xa8\x45\x41\ \x48\x82\x0a\x5a\xb5\x6e\x48\x26\x8a\xda\x45\xdb\xda\xf6\xd7\xd2\ \x68\x6d\xed\xa6\xad\x56\x21\xc1\xbd\xd6\x56\xa3\x90\x09\xd4\x05\ \x17\xe2\x02\x24\x21\xb2\x08\x75\x63\xdf\x77\x92\x90\x75\x96\xfb\ \x9e\xdf\x1f\x59\x98\xb9\xf7\x4e\xb6\x19\x48\x80\xf7\xf3\x3c\x79\ \x9e\xcc\x7b\xdf\xe5\xdc\x7b\x67\xee\xb9\xe7\xbc\xe7\x3d\x2f\x31\ \x33\xc2\x01\xcd\x1c\x16\x91\xa0\x79\xfb\x78\xc1\x5d\x88\xd0\x99\ \x80\x2e\x00\x77\x21\xa2\xce\x00\x77\x51\x2c\x4a\xd7\x7e\x03\x23\ \x86\xc7\x77\xb6\xf4\x8c\x8b\x57\xbb\xc4\x25\x58\x62\x62\xe3\x55\ \x1b\x11\xd8\xe7\x63\x9f\xd7\xcb\x3e\xcd\xc7\x1e\xcd\xcb\x35\xee\ \x5a\xde\xe7\x75\x6b\x5b\x3c\x6e\xb1\x46\x58\xa2\xde\xfb\xf4\x97\ \x25\x87\xc2\x22\xa4\x44\x22\x91\x48\xce\x7b\xa8\xad\x8a\x2d\xe6\ \x9a\xc4\x09\x0a\xd1\x4c\x10\x5f\x02\xe0\x12\x00\xc3\x00\xa8\x86\ \x7a\xb1\x2a\x86\x8e\x8a\xc6\x90\x91\x51\x88\x8c\x52\xda\x34\x56\ \x4d\x95\xd0\xaa\x2a\xb5\x52\x77\x8d\xd8\xeb\xae\xd5\xb6\xfa\xdc\ \xb4\x56\x78\x3d\xab\x3e\x79\xec\x9b\x5d\x6d\xea\x50\x22\x91\x48\ \x24\xe7\x2d\xad\x52\x6c\xf1\xa9\x7d\xbb\x09\x9f\xe5\x36\x62\xba\ \x0b\xe0\x4b\x9b\xaa\x9b\xd0\xd9\x82\x31\x8e\x38\xf4\x4d\x8c\x00\ \x51\xc8\x72\x9a\x52\x5b\xa3\x89\xea\x0a\x51\x5e\x5b\xa3\xed\x73\ \xd7\x8a\xaf\x3c\x5e\xac\xf3\xf8\x3c\xab\xd6\x2e\xfa\xf6\x9b\x33\ \x33\xa2\x44\x22\x91\x48\x3a\x3a\x2d\x52\x6c\x34\x8f\xd4\x98\xca\ \x01\x0f\x10\xe3\x31\x00\xb1\xcd\xd5\xbf\xe8\xd2\x18\x8c\x71\xc4\ \x42\x55\xcf\x90\x46\x6b\x06\x4f\xad\x10\x95\x15\x5a\x45\x4d\x8d\ \x38\xe0\x71\xf3\x57\x1e\xb7\xb6\xde\xe3\xe6\x0f\xd6\x3e\xfa\xbf\ \x8d\xed\x22\x90\x44\x22\x91\x48\xce\x1a\xcd\x2a\xb6\x98\x99\x03\ \xc7\xa9\xcc\x39\x0c\x24\x35\xd7\x59\x74\xac\x8a\x49\x29\x09\xe8\ \xd9\xd7\x16\x36\x01\xc3\x89\xc7\x23\xb8\xaa\x42\x54\xd6\x54\x6b\ \x87\xdc\x35\xe2\x1b\xaf\x47\xac\xf7\xfa\xd4\x0f\xd7\xe0\xcb\x62\ \x5e\xc4\xa2\xbd\xe5\x93\x48\x24\x12\x49\xe8\x34\xa9\xd8\xe2\xae\ \x4d\x9c\x07\xc2\x6b\x00\xac\xcd\x75\x14\x1b\xaf\x62\xfa\x9c\xae\ \x6d\x9e\x47\x6b\x4f\x7c\x3e\xe6\xaa\x53\x5a\x75\x4d\x95\x38\xec\ \x76\x8b\xef\xbc\x1e\xfe\x42\xf3\x8a\x8f\x89\xff\xf7\xd9\xea\x45\ \xec\x6b\x6f\xf9\x24\x12\x89\x44\xd2\x72\x82\x2a\xb6\xf8\x99\x89\ \x19\xcc\x58\x0c\xa0\x59\x4d\x15\x19\xa5\x60\xfa\x9c\xae\x88\x8d\ \x37\xc4\x8e\x9c\xd3\x68\x3e\x46\x55\xa5\x56\x53\x53\x25\x8e\xd4\ \xd6\x68\xdb\xbd\x5e\x7c\xe1\x71\x8b\x02\x0b\xaa\x0a\x56\x2f\xda\ \x55\xdb\xde\xf2\x49\x24\x12\x89\xc4\x88\xa9\x62\x8b\xbd\x36\xf1\ \x87\x44\xf8\x5b\x4b\x3a\xb0\xda\x08\x57\xa7\x76\x41\xe7\x6e\xcd\ \x1a\x75\xe7\x0d\x42\x30\x2a\x4f\x69\xee\xda\x2a\x71\xac\xb6\x56\ \xec\xf0\xb8\x79\xa3\xd7\xe3\xfb\xe4\x24\x94\x0f\xb7\x2e\xda\x5a\ \xd9\xde\xf2\x49\x24\x12\xc9\x85\x8c\x41\xb1\xc5\xcf\x4c\x9c\xc2\ \x8c\x4f\x60\x12\xba\x6f\xc6\xb4\x19\x9d\xd1\x27\x31\xe2\x4c\xc8\ \x76\xce\xc1\x02\xa8\xaa\xd4\x3c\xd5\x55\xda\x71\x77\x0d\xef\xf2\ \xd4\x8a\x4d\x6e\xaf\x58\xa3\x31\xde\x5f\xbb\x68\xeb\xc9\xf6\x96\ \x4f\x22\x91\x48\x2e\x04\x02\x14\x5b\xe7\x39\x83\x3a\x69\xb5\x62\ \x13\x03\x89\x2d\x69\xdc\x6f\x60\x04\x2e\xbf\xb6\xf3\x19\x13\xee\ \x7c\x81\x19\xa8\xa9\xd2\xbc\x55\x55\xda\x49\x77\x8d\xd8\xed\x76\ \x8b\x2d\xde\x5a\xfe\xdc\xea\xae\x7e\xef\xc3\xc7\x77\x1e\x69\x6f\ \xf9\x24\x12\x89\xe4\x7c\x22\x40\xb1\xc5\xcd\x18\xf8\x6f\x80\x6f\ \x6e\x49\x43\x45\x21\x5c\x77\x53\x37\xc4\x25\x9c\x5f\xf3\x6a\x67\ \x9b\xea\x6a\xe1\xab\xae\xd0\xca\xfc\x17\x9f\x7b\x54\xdf\x7b\x6b\ \x7e\xf5\xd5\x9e\xf6\x96\x4d\x22\x91\x48\xce\x45\x1a\x15\x5b\xcc\ \x35\x89\x13\x14\x05\x25\x2d\x6d\x38\x6a\x6c\x0c\xc6\x26\xc7\x9d\ \x31\xc1\x2e\x74\x6a\xab\x35\x51\x5d\x25\xca\x6a\xaa\xc5\x3e\x4f\ \xad\xf8\xca\xe3\xd1\xd6\x69\x9a\x78\xff\xb3\x45\x5f\x7f\xd7\xde\ \xb2\x49\x24\x12\x49\x47\xa6\x51\xb1\xc5\xcd\x4c\x7c\x0b\x8c\x1b\ \x5a\xd2\xc8\x62\x21\xcc\xb9\xa3\x07\xac\xd6\xf6\x59\x80\x7d\x21\ \xa3\x5f\x7c\xee\x75\x8b\x22\x8f\x8f\x3f\x5c\xb3\x68\xeb\xa6\xf6\ \x96\x4d\x22\x91\x48\x3a\x02\xc4\xcc\x88\x9f\x31\x78\x04\x43\xfb\ \x0a\x2d\x08\xed\x07\x80\x01\x83\x23\x31\x75\x7a\xa7\x33\x2c\x9a\ \xa4\x35\x34\x2c\x3e\xaf\xad\xd2\x0e\xba\xdd\xe2\x1b\x8f\x5b\x94\ \xc8\xc5\xe7\x12\x89\xe4\x42\x84\x98\x19\x71\x33\x06\xfc\x03\xa0\ \x85\x2d\x6d\x34\xf9\xaa\x4e\x18\x38\x2c\xf2\x4c\xca\x25\x09\x13\ \xfe\x8b\xcf\x6b\x6b\xc5\xb7\x5e\xb7\x56\xe2\x13\xca\xc7\xaa\xd8\ \xb2\x46\x2e\x3e\x97\x48\x24\xe7\x23\xf5\x8a\x2d\x71\x1b\x80\xa1\ \x2d\x69\xa0\x28\x84\x1b\xee\xec\x01\xab\x4d\xba\x21\xcf\x65\x34\ \x1f\xa3\xb2\x42\xab\xa9\xad\x96\x8b\xcf\x25\x12\xc9\xf9\x05\x45\ \xce\x1c\x94\x68\x11\xda\xee\x96\x36\xe8\x33\x20\x02\xd3\x66\xca\ \x10\xff\xf3\x15\x21\x18\x55\x15\xa2\xb6\xba\x4a\x1c\x73\xd7\xfa\ \x76\x78\xdc\xd8\xe8\xf5\x68\x9f\x9c\x64\xfa\x48\x2e\x3e\x97\x48\ \x24\xe7\x02\x14\x37\x23\xf1\x6e\x66\x7e\xa1\xa5\x0d\x46\x4f\x88\ \xc5\xa5\x13\x9b\x4d\xf0\x2f\x39\xcf\x30\x5b\x7c\xee\xf5\xf2\x67\ \x5e\xe6\x0f\xe4\xe2\x73\x89\x44\xd2\x91\xa0\x98\x19\x89\x2f\x12\ \xf3\x5d\x2d\x6d\x30\xf1\xb2\x78\x0c\xbb\x38\xfa\x4c\xca\x24\x39\ \x87\x60\x06\xaa\x2b\x35\x6f\x75\x95\x76\xb2\xb6\x56\xec\x3a\x5a\ \x56\x3b\xbb\x64\xd1\xb7\xc7\xdb\x5b\x2e\x89\x44\x72\xe1\x62\x51\ \x18\xbd\x5b\xb3\x87\x76\x54\xf4\xb9\x97\xbd\x5f\x72\xe6\x20\x02\ \x62\xe2\x54\x6b\x4c\x9c\xda\x13\x40\xcf\xca\x4d\xa2\x0f\x00\xa9\ \xd8\x24\x12\x49\xbb\xa1\x30\xb8\x47\x6b\x1a\x44\xc5\xc8\x4c\x23\ \x12\x89\x44\x22\xe9\xb8\x28\x00\x5a\xa5\xd8\x22\xa5\xc5\x26\x91\ \x48\x24\x92\x0e\x8c\x02\xa0\x7b\x6b\x1a\xc8\x6c\x23\x12\x89\x44\ \x22\xe9\xc8\x28\x00\x5a\xb5\xe7\x0c\x91\x54\x6c\x12\x89\x44\x22\ \xe9\xb8\x48\xbf\xa2\x44\x22\x91\x48\xce\x2b\xa4\x62\x93\x48\x24\ \x12\xc9\x79\x85\x54\x6c\x12\x89\x44\x22\x39\xaf\x90\x8a\x4d\x22\ \x91\x48\x24\xe7\x15\x52\xb1\x49\x24\x12\x89\xe4\xbc\x42\x2a\x36\ \x89\x44\x22\x91\x9c\x57\x48\xc5\x26\x91\x48\x24\x92\xf3\x0a\xa9\ \xd8\x24\x12\x89\x44\x72\x5e\x61\x69\x6f\x01\xce\x16\x5e\x0f\x43\ \xf3\x05\xa6\x7b\xb6\x59\xad\x88\x8b\x89\x41\xad\xaf\x1a\x9a\x90\ \x9b\x49\x4b\x24\x12\xc9\xf9\xc0\x79\xa5\xd8\x3c\x6e\x81\x7d\x3b\ \xdd\x28\x2f\xf5\xa1\xa6\x5a\x43\x4d\x95\x40\x6d\x8d\x40\xef\x1e\ \x5d\x31\x66\xc8\x48\x24\x76\xeb\x83\xfe\xdd\xfb\x63\x50\xcf\xc1\ \x18\xde\xe7\x22\xf4\xeb\x3a\x00\x0a\xd5\x19\xad\x1e\xad\x16\x35\ \xde\x4a\x54\x7a\xca\xb1\xa7\xec\x6b\xec\x2a\xdd\x8a\x9d\x27\xb7\ \xe0\x60\xc5\x4e\x08\x16\xed\x7c\x66\x12\x89\x44\x22\x69\x29\xe7\ \xbc\x62\xf3\xf9\x18\x07\x76\xbb\xb1\x7b\x5b\x0d\x0e\xed\x73\x43\ \xd4\xeb\xa0\xbe\x7d\xe2\x31\x7b\xca\x34\x2c\x9c\xb9\x10\xc3\x7a\ \x5f\xd4\x6c\x3f\x36\x35\x12\x36\x35\x12\x09\x91\xdd\xd0\x37\x7e\ \x08\x26\x0f\x98\x05\x00\x70\xfb\x6a\xb0\xbb\xec\x2b\xec\x3c\xb9\ \x05\xdb\x4e\x6c\xc4\x57\x47\x8b\xc0\x68\xcd\x46\x3f\x12\x89\x44\ \x22\x39\x9b\x9c\xb3\x8a\xad\xba\x52\xc3\xa6\xe2\x4a\xec\xdf\x59\ \x0b\x5f\xbd\x8b\x91\x08\x98\x31\x2d\x09\x8f\xcc\x7d\x04\xe3\x07\ \x4f\x0c\xcb\x38\x11\x96\x28\x8c\xe8\x36\x01\x23\xba\x4d\xc0\x0c\ \xdc\x89\x43\x15\xbb\xf1\xde\xb6\x57\x50\xbc\xff\x7d\x08\xd6\xc2\ \x32\x86\x44\x22\x91\x48\xc2\xc7\x39\xa9\xd8\x76\x7c\x53\x83\x0d\ \x6b\x4f\xc1\xeb\x39\x6d\x39\x75\xed\x1a\x85\x7f\xfc\xf8\x09\xcc\ \x9a\x90\x7e\x46\xc7\xee\x1d\x37\x10\x77\x8d\x5f\x84\xd9\x17\x2d\ \xc0\xfb\xdb\xfe\x89\xb5\x7b\x57\xc2\x27\x3c\x67\x74\x4c\x89\x44\ \x22\x91\xb4\x9c\x73\x4a\xb1\x55\x57\x69\x28\x2a\x38\x85\x43\xfb\ \xdc\x8d\x65\x44\xc0\xcc\x14\x07\x5e\x78\xf0\x45\xc4\x44\xc4\x9e\ \x35\x59\xba\x45\xf7\xc1\xad\x63\x7e\x8e\x59\x23\xe6\xe3\xdd\x6d\ \xaf\xa0\x60\x67\xae\x74\x51\x4a\x24\x12\x49\x07\xe0\x9c\x51\x6c\ \x7b\x77\xd4\xa2\xe8\x93\xf2\x00\x2b\x2d\x36\xce\x8a\xec\x9f\xfe\ \x09\xa9\x13\xaf\x6f\x37\xb9\x12\x22\xbb\xe1\xe6\x4b\x1e\xc2\xb0\ \xae\x63\xf1\xf2\x86\x47\xe1\xd1\x6a\xc3\x3e\x06\x03\x10\xba\x88\ \x4e\x45\x51\x40\x8a\x54\xa4\x12\x89\x44\xa2\xe7\x9c\x50\x6c\x07\ \xf6\xb8\xb1\xe6\xc3\x32\xb0\xdf\x73\x3c\x32\x52\xc5\xdb\x8f\xbd\ \x88\xc9\x23\x2e\x6f\x3f\xc1\xfc\x98\xd0\xe7\x2a\x74\x8b\xee\x8b\ \xe7\x8a\x1e\x46\x59\xed\xb1\xb0\xf6\xfd\xf5\xc6\x2a\x6c\x2a\xaa\ \x08\x28\x1b\x77\xc9\x40\x7c\xf0\x87\xf7\x50\x56\x73\x0c\x65\xb5\ \xc7\x50\x56\x73\x14\x65\xb5\xc7\x50\x5a\x7b\xac\xbe\xac\xee\x73\ \x79\xed\x09\x39\x17\x28\x91\x48\x2e\x28\x3a\xbc\x62\x3b\x7e\xd8\ \x8b\xcf\x3f\x08\x54\x6a\x16\x0b\x61\xe9\x2f\xff\xd4\x61\x94\x5a\ \x03\x89\x9d\x2e\xc2\x2f\xae\x78\x19\x8b\x8b\x7e\x8a\xdd\x65\x5f\ \x85\xad\xdf\xa3\x87\x8d\x73\x78\x8e\x51\xe3\x11\xa1\x46\xa1\x67\ \xec\x00\xf4\x8c\x1d\x10\xb4\xed\x47\x3b\xdf\xc0\x9b\x5b\x9e\x0c\ \x9b\x2c\x92\x3a\x32\x96\x3b\x86\x93\x82\x9f\x04\x14\x32\xbc\xd9\ \xe9\x45\x0f\x9c\xc9\x71\x9d\xf9\x8e\x3b\xc0\x98\x14\x50\x48\x58\ \x97\x9d\x5a\xf4\xca\x99\x1c\x57\x22\x39\x97\xe8\xd0\x8a\xad\xbc\ \xd4\x87\x82\x77\x4b\x03\x16\x56\x93\x02\x3c\xf1\xc0\xc3\x48\x9f\ \x78\x63\x3b\x4a\x16\x9c\x4e\x91\xdd\xf0\xf0\xd4\x25\x78\x79\xe3\ \xa3\x28\x39\xf0\x61\xe8\x1d\x72\x9d\x72\xd7\x73\xcd\xf8\x6b\x43\ \xef\xfb\x1c\x22\xab\x20\xc5\x72\xb8\xb4\xf2\x22\x4d\x51\xfa\x12\ \xa1\x17\x6b\x38\xc1\x50\x76\xf8\x3a\x47\xee\x7a\x69\xda\xea\xf0\ \xfb\x7f\x9b\x41\x25\xa5\x8f\x80\x70\x06\x14\x12\xdc\x00\xce\xa8\ \x62\x83\x40\x0a\x08\x77\xe8\xca\x22\x01\x48\xc5\x26\x91\xd4\xd3\ \x61\x15\x5b\x75\x95\x86\xd5\xff\x2d\x85\xc7\x1d\xb8\x38\xfa\x27\ \x3f\xb8\x0d\xce\xe9\xf7\xb7\x93\x54\x2d\xc3\xaa\x46\x60\xfe\x84\ \x47\x71\xb2\xfa\x30\x76\x96\x6e\x0d\xa9\xaf\xb2\x52\xaf\xe1\x1a\ \xd8\x22\x14\xa4\x8c\xbe\x2a\xa4\x7e\xcf\x15\x32\x96\x3b\x86\x43\ \xc1\x8f\x09\xb8\x11\x8a\xd2\x8d\x00\x80\xeb\x5e\x70\x08\x02\xb6\ \xf2\x6a\xce\x74\x25\x3f\xbf\x24\xad\x30\xa3\xbd\x65\x95\x48\x24\ \x1d\x83\x0e\x9b\x2b\x72\xcd\x07\xe5\xa8\xae\x0c\x9c\x1b\x9a\x32\ \xf1\x22\xfc\xf6\xe6\xc7\xdb\x49\xa2\xd6\xa1\x90\x8a\x7b\x92\x7e\ \x87\x68\x6b\x5c\x48\xfd\x1c\x33\xb1\xd6\x06\xf5\xef\x0e\x55\xe9\ \xb0\xef\x24\x61\xc3\x99\xef\xb8\x9f\x14\x6c\x22\x20\x13\x40\xb7\ \x20\xd5\x88\x81\xf8\xb3\x29\x97\x44\x22\xe9\xd8\x74\x48\xc5\xb6\ \x6f\x57\x2d\x8e\xe9\xe6\x95\x2c\x56\xc2\x33\xf7\xfe\xbd\x9d\x24\ \x6a\x1b\x5d\xa3\x7b\xe3\x07\x63\x7f\x15\x52\x1f\xc7\x0e\x19\xe7\ \xd7\x26\x8c\xbc\x24\xa4\x3e\xcf\x05\x32\xf3\x92\x33\xc0\x78\x06\ \x40\x94\xc9\xe1\x32\x00\x6b\x01\x1c\x39\xbb\x52\x49\x24\x92\x73\ \x81\x0e\xa7\xd8\x58\x00\x9b\x0a\x2b\x0d\xe5\xa9\x57\x4e\x6d\x51\ \x6a\xac\x8e\xc6\xf8\x3e\x29\xb8\x7c\x60\xdb\x97\x23\xe8\x15\x3c\ \x00\x5c\x35\xf6\xca\x50\x44\xea\xf0\xdc\xb7\xcc\x3e\x98\x89\xff\ \x61\x72\x68\x13\x04\x5d\x56\xea\x49\xec\x96\x9d\x56\x34\x25\x3b\ \xad\xa8\x97\x6a\xb1\x75\x11\x0a\xff\xe2\xac\x0b\x29\x91\x48\x3a\ \x2c\x1d\xce\x9f\xb5\xfd\xeb\x6a\x54\x94\x07\x66\xda\x8f\x8a\xb6\ \xe0\xa9\x7b\xce\x8c\xb5\xb6\xe1\xe0\x6a\xbc\xf4\xe1\x0b\x78\xe7\ \xa3\x0d\x38\x71\xb2\x1a\x56\xab\x82\xa1\x03\x7b\x63\xf2\xe8\x24\ \xdc\xfd\xbd\xf9\xb8\xb8\xff\xa5\x21\x8f\x31\xef\x92\x1f\x63\xc7\ \xc9\xcd\x38\x70\x6a\x47\xab\xda\x55\x55\x08\x54\x55\x04\xce\xaf\ \xa9\x2a\x61\xc6\xf8\xd4\x90\x65\xea\xc8\xf8\x14\xe5\x2e\x02\x5b\ \x75\xc5\xa7\x34\x52\xe7\x3e\x3f\x67\xed\x76\xff\xc2\xe7\xae\xfb\ \xac\x14\x40\xa9\x59\x3f\xce\x9c\x24\xab\xe8\x65\x19\xa9\x0a\xbe\ \x18\xe0\xa3\x1e\xaf\xef\xcb\x17\xe7\x6e\x68\xd5\x5a\x8c\xdb\x57\ \x8d\x89\x89\xae\x8d\x98\xc0\x4c\xfd\x40\xf0\x42\x51\x76\xf4\x89\ \x8d\xfc\xb2\x75\x67\x74\x9a\xbb\xf2\xc6\x75\x8a\x50\x22\x26\x42\ \x88\x9e\x04\x75\xbf\x4f\xe1\xaf\x97\xa6\x16\x9e\x71\xcb\xf3\xbe\ \x65\xf6\xc1\x3e\x05\x49\x80\xa2\xa9\xd0\xf6\x59\x23\xca\x36\x3f\ \x3d\x63\x9b\xbb\xb9\x76\xce\x65\x49\xbd\x85\xaa\x0e\x55\x80\xfe\ \x0d\xe7\x8f\x1a\xef\x8e\xec\xb9\x25\xe5\xc1\xda\xdc\x93\x3b\xb9\ \x8b\xc5\xa2\x8d\x60\x15\xfd\xc0\xb0\x02\xca\x0e\xa8\xde\x1d\xd9\ \xb3\x4a\x8e\x87\xf7\xac\x24\x12\x73\x3a\x94\x62\xf3\x7a\x19\x5b\ \x4a\x8c\xd6\xda\xdd\x69\x73\xd0\x25\xb6\x6b\x58\xc7\xda\x57\xfe\ \x2d\x5e\xdb\xf4\x44\x5d\x58\x7e\x02\xe0\xb8\x2a\x1a\x25\x9f\xfb\ \x70\x68\x9f\x1b\x5b\xbf\xde\x8f\xad\x5f\xef\xc7\x8b\xcb\x5d\xb8\ \x6b\xce\x6c\xfc\xe5\xae\xbf\x37\xee\x02\xd0\x16\xac\x8a\x0d\xf7\ \x4c\x78\x0c\x8f\xae\xbe\xb5\x55\xd9\x49\xcc\xac\xb5\x3e\xbd\x13\ \x10\x17\x19\xda\xbc\x5d\x47\x26\x2b\x8b\x14\x1a\x6b\xbf\xc3\x70\ \x80\xf1\xf8\xf3\x69\x81\x4a\x2d\x18\x99\x79\xf6\xdb\x98\xe8\x21\ \xf4\x54\x47\x29\xcc\x36\x26\x00\x20\x58\x6d\x56\x38\x5d\x8e\x43\ \x4c\x28\xf0\xb9\xbd\x3f\x6c\x4a\xc9\x65\x65\x91\x72\x70\x9c\xfd\ \x0f\x51\x1c\x99\xd9\x38\x87\xc7\x00\x34\x81\x83\xe5\xd5\xdf\x11\ \x71\x3e\x40\x2d\x3a\x27\xe7\xca\xa4\x68\x68\x96\x3f\x00\x7c\x8d\ \x8d\x6c\xc3\x99\x99\x40\x04\x86\x80\xc2\xd0\x9c\x2e\xfb\x7f\x85\ \x50\x1f\x59\x3a\x67\xdd\xd7\x2d\xea\xb0\x85\x64\xe4\xd9\xc7\x82\ \xe8\x71\x02\xec\x50\xa9\x2e\xf0\xa6\x6e\x54\xb8\x3d\x5d\x4e\x38\ \xf3\x1d\x2f\x44\x58\x4f\xfe\xc6\x4c\xc1\x65\xba\xec\xb3\x05\xe3\ \x01\x52\xd5\xab\x95\x86\x13\xad\x3f\x7f\xd8\x54\x38\x5d\x8e\xe3\ \x20\x5e\x96\x9d\x5a\xdc\x18\x19\x9a\xb9\xdc\x31\x89\x15\xfc\x58\ \xb5\x21\x9d\x01\xeb\xe9\xaf\xba\x00\x34\x15\x4e\x97\xe3\x14\x80\ \xf5\xd9\x69\x45\x57\x87\xf3\x3c\x25\x12\x3d\x1d\xca\x15\xf9\xd5\ \xc6\x2a\xd4\xd6\x04\x5a\x28\x5d\xba\x44\xe1\xd1\x5b\x7e\x1f\xd6\ \x71\xf6\x95\x7f\x8b\x27\xd7\x2c\x0c\x58\x6b\x16\x97\xa0\x62\xda\ \x8c\xce\x18\x3a\x32\xba\xb1\xcc\xe7\x63\x2c\xcd\xcd\xc7\xb8\xfb\ \x26\xa2\xb2\xb6\xc2\xac\xab\x16\xd3\x27\x7e\x08\x2e\xed\x75\x59\ \xab\xda\x98\xcd\xaf\x5d\x3a\x6c\x44\x48\x72\x74\x74\x0e\x8e\x71\ \x5c\x0d\xa0\xbf\xbe\x5c\x51\xc4\x07\xcd\xb5\x7d\xf0\xdd\xe4\xf8\ \x4c\x97\xe3\x35\x26\xfa\x27\x80\xb1\x00\x6c\x26\xd5\x7a\x13\xe3\ \xfb\x56\x9b\x65\xd3\xbd\x79\x93\xa6\x99\xf5\x93\x95\x45\xca\x81\ \xb1\xf6\x97\xc0\xf8\x19\xcc\x03\x53\x86\x33\xe8\xe1\xe6\xe4\x01\ \x80\x05\x2b\x1c\x83\x20\xd4\xb5\x00\x3f\x08\x60\x04\x8c\xda\x50\ \x05\x28\x55\x51\x44\x61\x66\xbe\x3d\x6c\x0b\x33\x33\xf2\xed\xb7\ \x12\xd1\x5a\x02\x66\xc2\x3c\xf0\xa6\x2b\x18\x3f\x73\x7b\xba\x7c\ \xbc\x30\x37\x25\x20\x17\x5d\x86\x2b\xf9\x61\x06\xe5\x13\xd1\xf7\ \x4c\xe4\x6d\xa0\x1b\x40\x23\x4e\xb7\x71\xcc\x61\x05\x9f\x02\x98\ \x0b\x40\x6f\x6d\x37\x10\x0f\x60\x74\xeb\xcf\x46\x22\x69\x1d\x1d\ \x46\xb1\x55\x57\x69\xf8\xf6\xcb\x2a\x43\xf9\x4f\x6f\xcb\x84\xcd\ \x62\xf6\x7c\x6a\x1b\x47\x2a\xf7\xe0\xa9\xb5\x0f\xa0\xda\x6b\x54\ \x54\xa4\x00\xf6\x2b\xe2\x91\x38\x34\x32\xa0\x7c\xe7\xee\xe3\x48\ \x7d\x34\x2d\xe4\xb1\xa7\x0f\xbd\xad\x55\xf5\xcd\x2c\xb6\x94\xb1\ \x1d\x6b\x51\x7a\xd8\x51\xd8\x6c\x1d\x43\x69\xaf\x8d\x25\x9b\x9b\ \x6a\x96\x95\x45\x8a\xdb\xc3\x05\x0c\xdc\xaa\x3b\x54\x06\xd0\x1b\ \x00\x76\x07\x16\x53\x1f\x41\xe2\xa3\xcc\x3c\xbb\x61\xbc\x43\x63\ \x1d\x4b\x08\xb8\x5d\x57\xec\x23\xe0\x7d\x02\x3e\x03\x5a\x66\x76\ \x3b\x57\x26\x5d\xa4\x08\x94\x80\x31\xc6\xaf\xd8\xcb\xc0\x3b\x0c\ \x5a\xa3\xab\x1e\xcf\x4c\xaf\xcd\xcf\x9f\x1a\xb2\x39\xee\xcc\x77\ \xfc\x94\x98\x5e\x43\x60\xe0\xcd\x51\x26\xfc\x1b\xc0\x3e\x5d\xf5\ \xc9\x9a\xad\xe6\x8f\x0d\x1f\x32\xf2\x27\xa5\x12\xf8\xcf\x26\xdd\ \xee\x66\xc2\xbf\x09\xf4\x32\x08\x9b\x01\x34\x86\xeb\x66\xac\xb0\ \x5f\x4c\xc0\x1b\x30\x7a\x80\x8e\x00\xc8\x03\x71\x0e\x80\x22\x00\ \x35\x21\x9c\x96\x44\xd2\x62\x3a\x8c\x62\xdb\xfe\x55\x4d\xe3\xf6\ \x33\x0d\x24\x74\x8a\xc0\xfd\x33\x7e\x14\xd6\x71\x5e\xdf\xfc\x27\ \x54\x79\x82\x4e\x0f\x00\x00\xec\x97\x27\x20\x26\x4e\x0d\x28\x5b\ \xbf\x71\x07\x1e\x5c\x7a\x5f\x48\x63\x0f\xed\x3a\x06\x83\x3a\x5f\ \xdc\xa2\xba\x1e\xb7\x40\x59\xa9\x6e\x57\x6f\x02\x52\x27\xce\x09\ \x49\x86\x8e\x0e\x33\x7a\x99\x14\x7f\xb7\x68\x51\xd3\xbb\xbd\x1e\ \x18\x37\x71\x3e\x80\x71\xba\xe2\x55\xa5\x9e\xaa\x9e\xd9\x69\x85\ \x37\xe7\xa4\x15\x0f\x26\xe6\x3f\xe8\x8e\x2b\x4c\xf4\x84\x7f\x41\ \xe6\xca\xe4\x61\x0c\x5e\xa0\xab\x27\x58\xe1\xc9\x4b\xd2\x8a\xae\ \x5d\x92\x56\x74\x39\x31\x7f\xaf\x25\xe7\x42\x42\xcd\x02\xd0\xc5\ \xbf\x1f\x85\x44\x4a\x4e\x5a\xd1\x75\x39\x69\x85\x53\x41\xf8\xad\ \xae\x49\x7f\x8b\xf0\xb4\xee\xed\x47\xc7\xdd\xb9\xe3\xbb\x83\xb1\ \x48\x57\xfc\x95\x27\x21\x3a\x31\x27\xb5\xe8\x96\x3e\x09\xd1\x83\ \x01\xde\xe2\x7f\x90\xc1\x99\xf7\x2f\x77\x74\x05\x00\x85\x79\x96\ \x49\xb7\xcf\x67\xa7\x15\x0d\xca\x49\x2d\xba\x65\x49\x5a\xe1\x5d\ \xd9\xa9\x45\x63\x23\x6c\x27\xe3\x54\x1f\xdf\x5d\xd7\x86\xae\x81\ \xce\x4a\x63\xd0\x9a\x3e\x09\xd1\xfd\xb2\xd3\x8a\xe6\x64\xa7\x16\ \x3b\xb3\xd3\x8a\x92\x4b\x3d\x89\x71\xa4\x52\xeb\xdc\x16\x12\x49\ \x1b\xe8\x30\x8a\x6d\xdf\x2e\x63\xf2\x88\xc9\x63\xc3\x1b\xd6\xbe\ \xf1\xd0\x6a\x7c\x73\xbc\xa4\xd9\x7a\x56\x1b\xc1\x71\x45\x82\xa1\ \xfc\x55\xd7\x3b\xf8\xf6\x60\x68\xd3\x20\x2d\xb5\xda\x8e\x1f\xf6\ \x1a\xec\x82\x6e\xdd\xa2\xd1\xbb\x73\xdf\x90\xc6\xef\xf0\x30\xf7\ \x36\x29\x6d\xf2\x4d\x64\x7e\xfe\xd4\x38\x62\x7a\x4c\xdf\x93\xaa\ \xf1\xbd\x6f\xce\xdd\xea\x01\x00\x06\xb3\x2d\xa2\x34\x0b\x06\xcb\ \x0d\x49\x19\x79\xc9\x37\x34\x36\xd2\xf8\x4e\x93\x21\xfe\x95\x33\ \xbb\x78\x7d\xc3\x87\x25\xe9\xc5\x1f\x11\x61\x65\x53\x32\xdd\xbb\ \x7c\xe2\x68\x66\xcc\xd5\x15\xaf\x5a\x9c\xba\xbe\xd1\x52\xab\x89\ \xac\xfd\x8b\xa1\x21\x21\xa4\x94\x32\x56\x9b\xf5\xa7\x00\x62\xfc\ \xcb\x98\xe8\xb1\x86\xec\x2c\x8b\xa6\xad\xf6\x11\x93\x3e\x12\x4b\ \xf1\x11\xa6\x03\x00\x83\xa7\x1a\x44\x62\xfe\x44\x5f\xf6\xf4\x8c\ \x6d\xee\xe7\xae\x2f\xde\x59\x37\x00\x8c\x6d\xc0\x9f\x2c\x9a\xb6\ \x3a\xe0\xcd\xec\xcd\xb9\x6f\x6a\x4b\x66\x15\x6e\x6b\xe5\x29\x49\ \x24\xad\xa6\x43\x28\xb6\x8a\x72\x0d\xe5\x27\x7d\x86\xf2\x9b\xae\ \xd0\x3f\x17\xda\x0e\x83\xf1\xd6\xff\x9e\x69\x71\xfd\x5e\xfd\x6c\ \xe8\xd6\x33\x70\xaa\x40\xd3\x18\x8f\xbc\xf4\x48\x48\x72\x8c\xed\ \x3d\x0d\xdd\x62\x9a\x57\x4e\x47\x4d\xe6\xd7\x2e\x1e\x32\x38\xa4\ \xb1\xcf\x05\x88\x8c\x16\x1b\x03\xa7\x9a\x6a\x63\x15\x9e\x34\x00\ \x3d\x75\xc5\x47\x1a\x1f\xbc\xf5\xd4\x07\x49\xac\xd5\xb7\x57\x28\ \xc0\x42\x33\x09\x5c\x61\x83\x1b\x54\x30\xfe\xd7\x94\x4c\x42\xa1\ \x9f\x40\x3f\x3f\x45\x14\xd0\xe6\xd5\xe9\x9b\xab\x00\xe8\x22\x05\ \x29\xc5\x99\x93\x14\x6c\x8e\xaa\x49\x7e\x92\x3b\x39\x0a\xc0\x42\ \x7d\xb9\xa2\x71\xc0\xdb\x18\x83\xf4\xee\x48\x30\x70\x4d\x43\x75\ \xc3\x31\xa2\x3b\x9b\x1a\x57\xb0\xe9\x73\xe4\x96\xac\x82\x94\x0e\ \x15\x9c\x26\xb9\x70\xe8\x10\x8a\x6d\xbf\x89\xb5\x16\x15\x6d\x41\ \xba\x3d\x7c\xf9\x20\x77\x95\xfe\x0f\xc7\xab\x0e\xb4\xaa\xcd\xa8\ \x71\xc6\xfd\xdd\x56\x17\x6e\xc6\x8e\x23\x6d\x7f\xe9\x54\x48\xc1\ \xd5\x43\xbe\xdf\x6c\x3d\xb3\xf9\xb5\x29\xa3\x93\xdb\x3c\xee\xb9\ \x03\x75\xd2\x97\x28\x40\x93\x61\xe9\xac\x28\xc3\x0d\x65\xa0\xbd\ \xa6\x75\x99\x76\x1a\xeb\x62\x28\x50\x17\xa6\x0e\xc0\xf0\xd6\xc1\ \xc6\x79\x29\x10\xd3\xe1\xa6\x64\x22\x90\x71\x9d\x08\xf3\x37\x26\ \x55\xf7\xeb\x3e\xc7\x89\xde\x96\x09\x4d\xf5\x1d\x8c\x1a\x8b\x77\ \x08\x80\x68\x5d\x31\xb3\x55\x0b\xf8\xc2\x2a\xac\x1d\x34\x34\x26\ \x4c\xab\xff\xcf\xcc\x25\x71\x55\xa6\xcb\xb1\xec\x9e\x65\x53\x12\ \xcd\xc6\x25\x22\xb3\x36\x03\x0f\x96\x57\x7f\x92\x91\x67\x1f\xdb\ \xac\xe0\x12\x49\x98\xe9\x10\x6f\x54\x66\x6e\xc8\x09\xa3\x87\x87\ \x35\x6d\xd4\xa6\x43\x05\xad\x6e\xd3\x6f\x60\x04\x62\xe2\x54\x54\ \x55\x9c\x4e\xed\xa5\xf9\x18\xbf\x7f\xe3\x77\x78\xe1\xc1\xb6\xe7\ \x9c\x9d\xd4\xff\x3a\xe4\x6e\xfd\x1b\x34\x61\xb4\x52\x01\x40\xd3\ \x80\x93\xc7\x8c\xa9\xb4\x52\xed\xa1\x07\xb0\x9c\x03\x18\xac\x33\ \xc1\x68\x72\x07\x59\x06\x0f\xd5\x87\xee\x11\x84\x41\x19\x01\x00\ \x14\xec\x32\x09\xfd\x18\x30\x2f\x77\x9e\xda\xc5\x26\x7a\x99\x45\ \x85\x28\x6c\x62\xe1\x28\x38\x4c\x4d\x84\x90\x30\x30\x44\x5f\x46\ \xcc\xa3\x33\xf3\x1d\x99\xba\x62\x43\x64\x14\x31\xf5\x08\xde\x73\ \x13\x63\x5a\xd4\x21\x10\x06\xa1\xaa\x48\xa8\xb7\x67\xe6\x3b\x4e\ \xd7\x23\xc5\x2c\xd2\xb3\x1b\x00\x08\x05\xcf\x28\x02\x86\x6d\xe8\ \x19\x98\xa3\xaa\xbe\x6b\x33\xf3\x1d\xff\x97\x9d\x5a\xfc\x14\xfb\ \xef\xb7\xc1\xbe\xe7\x41\xea\x8f\x00\x44\xea\x9a\x4d\x26\xa2\x92\ \x8c\x3c\xc7\xdf\xbd\x9d\xa2\x7f\xd5\x1e\xc9\xaa\x25\x17\x26\xed\ \x6e\xb1\xd5\x56\x0b\x1c\x3f\x62\x7c\x88\xdf\x78\x79\x78\x1f\xe2\ \x9b\x0e\x19\xa6\x09\x5a\x44\x9f\x01\x11\x86\xb2\xcf\x37\x6f\x08\ \x49\x96\x48\x4b\x34\x06\x77\x1e\x8d\x63\x87\x3d\x38\xb8\xd7\x1d\ \xf0\xd7\xd5\x9a\x88\x68\xad\x2f\xa2\x63\x6c\xb0\x5a\x4f\x3f\xae\ \xe3\xe2\xad\x61\x59\x2c\xde\xd1\x21\xe0\xa4\xa1\x8c\x9a\xce\x05\ \x49\xa2\xce\xe2\x0a\x44\x31\x35\xcf\x99\x78\xb7\x49\xb1\xb5\xab\ \x75\x5f\x7f\x4d\x61\xb3\xc0\x15\x68\x26\x8a\x4d\x15\xc1\x2d\xb6\ \x7a\xcb\xcf\x60\x79\x32\xd1\x0f\x99\xb1\xd8\xff\x0f\xc0\x28\x43\ \x07\x82\x8d\x13\xbc\x2d\x81\xd9\xa0\x4c\x01\xc4\x1a\xc6\x24\xfc\ \xd1\xa4\x5e\x74\x56\x16\x29\x4b\x67\x17\x7d\x0c\xe6\xdf\x00\x30\ \x0b\xd6\x89\x62\xc6\x5f\x33\xf2\xed\xab\xfd\xad\xb7\xec\xf4\x92\ \x1d\xcc\x94\x01\xa0\xda\xa4\x8d\x4a\x84\x9f\xd8\xca\xab\xbf\x70\ \xae\x9c\x34\xbe\x4d\xe7\x25\x91\xb4\x92\x76\x57\x6c\xfb\x77\x1b\ \x5f\xe2\xac\x36\x05\xdf\xbf\x4c\x1f\x6d\xdd\x76\x0e\x55\xec\xc2\ \x91\x4a\x53\xcf\x54\xb3\x98\x29\xb6\x43\x87\x4e\x61\xef\xf1\xdd\ \x21\xc9\x34\xb2\xbb\x1d\x45\x05\xe5\x28\x78\xa7\x34\xe0\x6f\xb0\ \xed\x4a\x3c\x3d\x77\x19\x0e\xbe\xb1\x0d\x27\xf3\x77\xe3\x88\xeb\ \x6b\x6c\x78\x69\x15\xde\xff\xf3\xdb\x21\x8d\x77\xae\x20\xd8\x44\ \xb1\x35\x97\xe4\x98\x60\x78\x33\x22\xf3\x1c\x93\x20\x4d\x18\x6f\ \x28\x00\x85\x34\x4d\xd1\xc8\xd4\x45\x10\x41\x6c\x08\x53\x67\x68\ \xaa\x59\x5d\x00\xb0\x46\x99\x8f\xdd\x52\x9a\x53\xe4\xc1\x60\x36\ \x58\x4c\xad\x1a\x76\xef\xb8\x29\x31\x00\x90\x9d\x5e\xfc\x98\x42\ \xe2\x72\x10\x0c\x6e\xdb\xba\x81\x70\x85\xaa\xfa\xbe\xcc\x5c\xee\ \x68\xdc\x17\x2e\x27\xbd\xf0\x9f\x2c\x30\x0e\x8c\xf5\xa6\x6d\x80\ \x51\xd0\x44\x61\x66\x9e\xa3\x79\x3f\xbc\x44\x12\x22\xed\xee\x8a\ \xdc\xb7\xcb\x38\x7d\x32\x7a\xc4\x00\x44\xdb\xf4\x53\x05\x6d\x67\ \xfb\xc9\x26\x97\x40\x35\x49\xcf\xbe\x36\x28\x2a\x41\x68\x7e\x9e\ \x17\x06\x5e\xfb\xe4\x15\xfc\xf2\x06\x7d\x54\x75\xcb\x19\xd5\xa3\ \x65\xf3\x65\xd1\xb6\x68\x0c\xeb\xd5\xf6\x45\xd9\xc9\xfd\xae\xc5\ \xa0\x4e\xa3\x50\xe5\x3d\x85\x2a\xcf\x29\x54\x79\x4f\xa1\xda\x53\ \x8e\x2a\xcf\x29\x54\x7a\xcb\x51\xed\x39\x5d\x7e\xaa\xf6\x04\xdc\ \x5a\xfb\x2e\x35\x22\xe0\x84\xbe\x8c\x81\x11\xf3\x72\xe7\xa9\x6f\ \xce\x7d\x33\xc8\x56\xe0\xb4\xcf\x10\x42\x4a\xa6\xd1\x95\x50\x48\ \xed\x65\x92\xfd\xc5\xd3\x63\xd3\xfa\x03\x87\xc7\x25\x75\x13\x6c\ \x7c\xd7\xf3\x5a\x95\x44\xe8\xe4\x62\x85\xba\x04\x5b\xcd\xd6\xeb\ \x8b\x75\x87\x0e\x8e\xb5\x7b\x60\x70\x33\xd2\x13\x5c\xb7\x06\xac\ \x49\x48\xf1\x6d\x6a\xae\x8e\x69\x3b\xc6\x2e\x36\x2e\xa7\x3e\xc5\ \x44\x4e\x93\xea\x06\x62\xac\x47\x1a\x27\x76\x17\xa7\xae\x5f\xb3\ \x30\x37\x65\x8c\xcf\x56\xfd\x17\x00\x19\x30\x2e\xd4\x8e\x67\x05\ \xcf\x65\x65\xd1\x84\x86\xa5\x18\x39\x73\x8a\xbe\xcb\x2a\x48\x99\ \x7c\xa0\xbc\xe6\x97\x04\xfe\x15\x8c\x6e\x56\x2b\x13\x9e\xb9\x7f\ \xb9\x63\xd5\x3f\xe6\x14\x19\xee\xb3\x44\x12\x2e\xda\x55\xb1\x79\ \x3d\x8c\x23\x07\x8c\x8a\x6d\xf6\xe4\x6b\x4c\x6a\xb7\x9d\xc3\x15\ \x7b\xda\xdc\xd6\x62\x21\xf4\xe8\x6d\xc5\xe1\xfd\x81\xc1\x1c\x1f\ \xac\x2f\x08\x49\xb1\x25\x76\x1a\x89\x2e\x09\x9d\x70\xaa\xec\xcc\ \xfe\xbe\x63\x6c\x09\x18\xdc\xa5\x65\xcb\x26\x3a\xc2\x6e\xdb\x0c\ \xfe\x8c\x40\x77\xeb\x8a\x63\x13\x22\xf6\x5e\x0c\xc0\x34\x47\x23\ \x41\xec\x63\xdd\x73\x37\xc8\x7a\x38\x08\x42\x2f\x93\xb9\xb1\xdd\ \x8b\x16\xb1\x58\xb0\x2c\xf9\x98\xa2\x1a\x0f\xb2\x8f\x07\x01\x08\ \xf4\x3f\x73\xc0\xfa\xb4\x00\x16\x2d\x62\xe1\x74\x39\xf6\x41\x37\ \xcf\x46\xe0\xaf\xb3\x53\x8b\xfe\x13\xac\x5d\xa8\x30\x29\x3b\x4d\ \x3c\x88\xb1\x74\xd8\xf7\x76\x76\x46\x89\xd1\xdf\xdf\x0c\xcf\xce\ \x5d\x5d\x09\x20\x33\x63\xb9\xfd\xdf\xa4\xd2\x8b\x60\xe8\xc3\x72\ \xc7\xee\x1f\xe7\x18\x0d\xbf\xfb\x52\x1f\xe2\xff\xa8\x73\x65\xd2\ \x9b\xd0\xd4\x17\x00\x4c\xd6\xb5\xe9\xea\x23\x9e\x01\xe0\xb5\xd6\ \xca\x23\x91\xb4\x94\x76\x75\x45\x96\x9e\xf0\x42\x98\x78\xf2\xaf\ \xba\xb4\x45\xeb\x5f\x5b\xcc\xe1\xca\xdd\x21\xb5\xef\xd2\xdd\x18\ \x7d\xbd\x73\xdf\xa1\x90\xfa\x54\x48\xc1\xf4\x64\xc3\xf2\x9f\x0b\ \x1e\x2f\xbc\x79\x00\x0c\x21\xa1\x2a\x58\xff\x80\x6c\x44\x00\xbb\ \x4c\x8a\x4d\x2d\x36\x32\x53\x78\x44\x3b\x00\xa0\x5c\xab\x3c\x0a\ \xb3\x08\x4c\xc2\x20\x63\x4f\xdc\x39\x98\x3c\xf5\xec\x36\xb4\x00\ \x0c\xd1\x9b\xe1\xc4\xeb\x71\x9b\xb9\x0e\x15\xee\x6d\x8c\x1a\x6d\ \x0d\x39\x73\x8a\x3f\x11\x04\xfd\xa2\x75\x00\x80\xca\x62\xa4\x59\ \x79\xf6\xac\x92\x6f\x14\x55\x9d\x07\x18\xdd\xc4\x20\x0c\x6b\xf8\ \xd7\xe9\x9a\x7c\x89\xd3\xe5\xf8\x5d\xc6\x72\xc7\xac\x79\xb9\xf3\ \x82\xba\x77\x25\x92\xd6\xd0\xae\x8a\xed\x54\x99\x31\x2a\x50\x55\ \x09\x63\x06\xea\x13\x48\x84\xc6\xe1\x8a\xdd\x21\xb5\x8f\x4b\x30\ \x1a\xb6\x65\x65\xb5\xf0\x6a\xad\x7e\x09\x0e\x60\xda\xa5\x32\x09\ \x83\x9e\x97\xd2\x37\x96\x31\xf0\xa1\xbe\x9c\x19\xbf\xba\xef\xbf\ \x97\x99\x2a\x13\x9f\xc7\x97\x0b\x63\xba\xa6\x5e\x0b\x5d\x76\x43\ \xce\x49\x80\x0d\xa9\x5f\x88\xf9\x3f\x00\xf0\xe6\xdc\xad\x1e\x66\ \xbc\x67\x38\x0e\x61\x0c\xf0\x20\x25\xd8\xc6\xa7\x75\xa3\x80\x0c\ \xfd\x00\x7c\x57\x5b\xd7\xa8\xb5\x84\x17\xe7\x6e\x38\x46\xc0\x17\ \xfa\x72\x12\x34\x3f\xd4\xbe\x97\xce\x2e\xfa\x18\x40\xab\xd6\xcb\ \x2c\x9e\xb5\xf6\x00\x80\x4f\xf5\xe5\xcc\xc4\x04\x22\xa7\xcb\xee\ \x02\xb4\x2f\x01\xfc\x8a\x14\xac\xe8\x6c\xdb\xb3\x7b\xc1\x0a\x87\ \xc9\x4b\x84\x44\xd2\x3a\xda\x57\xb1\x95\x1a\xa7\x4c\xba\x74\x89\ \x0e\x6b\x98\xbf\x57\x73\xe3\x44\x4d\x93\x4b\x8e\x9a\x25\x2e\xc1\ \xf8\x22\x29\x04\x63\xcb\x9e\x36\x4d\x85\x34\xe2\x18\x16\xd4\x08\ \xb9\xb0\x61\x32\x73\xd7\xf5\xd3\x7c\x9e\xec\x07\xdf\x1d\x66\x08\ \xfe\x78\x71\xee\x86\x63\x20\xbc\xac\x2b\x56\x35\x28\x8f\xfa\x17\ \x2c\x58\xe1\xb8\x12\x80\x3e\x37\xe4\xb7\x27\x3d\x89\xff\x6a\xf8\ \xa0\xd4\xe5\x3c\xd4\x41\xb7\xdd\x97\x3f\xb1\x71\xa2\x73\x7e\xfe\ \xd4\x38\x30\xeb\x73\x52\x06\x10\xeb\x51\x9e\x05\x58\xb7\x5e\x8c\ \xfa\xa0\xa7\xfa\x4c\x53\x0b\x97\xe7\xe5\x8e\x0e\x29\x31\x2a\x33\ \xfd\xd2\xa4\x38\xc3\x99\xef\xb8\x2e\x58\x1b\x02\x91\x33\x27\xc9\ \xda\x94\xd2\x9d\x9f\x3f\xb5\x0f\x60\xb4\x76\x89\xd5\xa2\xac\x2c\ \xf3\xad\x2f\xea\x16\x8c\xb3\xc1\xa2\x63\x88\xa2\x05\x2e\xfb\x74\ \x80\xf4\xfb\x2f\xf5\x53\x34\x43\x3a\x30\x89\xa4\xd5\xb4\xeb\x1c\ \x5b\xb9\x3e\x17\x22\x80\xbe\xbd\xba\x87\x75\x8c\x23\x95\x7b\xc1\ \x4d\xa7\x19\x6c\x96\x78\x13\x8b\x0d\x00\x36\xee\xda\x80\xf1\x83\ \x27\xb6\xb9\xdf\x1e\x71\x7d\xd1\xbb\x4b\x0f\x1c\x3a\x79\xb4\xcd\ \x7d\x9c\x8f\xf4\xdd\x5c\xf4\xaf\x83\x75\x5b\xd7\xe8\x95\xd0\x5c\ \xb7\xa7\xcb\x0c\x67\x5e\xf2\x2a\x26\xac\x53\x58\xf4\x13\x44\xc3\ \x14\xf0\x57\x60\xf1\x57\x90\x7a\x0f\xfc\x72\x16\x32\xf8\x0e\xa7\ \xcb\xd1\x9f\x18\xff\x06\xd1\x78\x05\x30\x44\xe4\x11\x23\xcb\x3f\ \x28\x45\xf5\x46\xaf\xf0\xd9\xaa\x8f\x23\x30\x23\xbe\x55\x63\xe5\ \x03\xa7\xcb\xb1\x84\x89\xaa\x2c\x82\x6f\x85\x49\x86\x14\xf8\x45\ \xb0\x3c\x39\x77\x6d\x4d\x66\xbe\xe3\xb1\xfa\x90\x7e\x7f\x9c\x87\ \xca\xab\x93\x9c\x2e\xc7\x7b\xcc\xfc\x25\x11\x75\x66\xe0\x62\xaa\ \x0b\xfb\x1f\xd5\xd9\x16\xfd\x09\x4c\xe4\x6c\x29\xd9\xe9\x85\xab\ \x9c\xf9\x8e\x4f\xc0\xb8\xc2\xaf\x38\x06\x8c\x7c\xa7\x2b\x39\x17\ \x2c\xd6\x33\x94\xdd\x04\x1e\x02\x60\x14\x08\x17\x67\xc0\x3e\x12\ \x3d\x70\x1b\x2b\x14\xe9\x74\x39\x9e\x23\xc6\x46\x56\x68\x23\x43\ \x6c\x84\x80\x97\x14\x9a\x60\x01\x6e\x04\xa0\x7f\xc3\xdb\xad\x41\ \xeb\x74\x70\xac\x7d\xab\xd3\xe5\xd8\x4c\xa0\x4d\x0c\xde\x48\x0a\ \x1d\x63\xe6\xb1\x64\xc3\x6c\x80\xfa\xe8\xda\xf8\x84\xd7\x5a\x64\ \xb1\x6a\xb7\x9a\x04\xba\x00\x84\x96\x25\x53\x95\x48\x9a\xa0\x5d\ \x15\x9b\x99\x2b\x72\x48\x9f\x01\x61\x1d\xe3\x78\xb5\x31\xc9\x42\ \x6b\x89\x8c\x56\x60\xb5\x12\xbc\xde\xc0\xc0\x82\xaf\xf6\x7c\x15\ \xa4\x45\xcb\x19\x3d\x7c\x08\x0e\x15\x4a\xc5\xe6\xcf\xa2\x45\x2c\ \x16\xe4\x27\xdf\xaa\x08\x5e\x01\x82\xfe\xcd\x21\x16\xc4\xd7\x13\ \x70\x3d\x13\x81\x00\x30\x94\x8a\xec\xf4\xe2\x1d\xce\xe5\xc9\x57\ \x42\xe1\xb7\x70\x3a\xbd\x16\x01\xb8\x8a\x09\x57\x99\x24\xe4\xf7\ \x12\xe1\x91\x25\x69\x45\xff\xf6\x2f\x7c\x76\xee\xea\xca\x8c\x3c\ \xfb\xf7\x88\xe8\x63\x00\xfe\xae\xcf\xfe\x00\x1e\x27\xe6\xc6\xf8\ \x40\x06\x2d\x22\xf0\xe5\x38\xad\x80\x03\x1e\xd5\xbd\xe3\xa3\x9f\ \x3f\x78\xaa\x7a\x10\x18\x0f\xc1\x4f\x29\x30\x30\x01\xc0\x04\x22\ \x32\x36\x0a\x03\x8a\x50\xee\x64\x12\xaf\x32\xe0\xef\xeb\x56\x00\ \xbe\x09\x44\x37\x91\x49\x38\x27\xa9\xc4\xf5\x4b\xae\x3b\x33\xe1\ \x4a\x30\x5f\x49\x20\xd4\x5f\x60\x33\x2a\x14\x16\x37\x69\x75\xd2\ \xc7\x00\x98\xcc\xf5\xf3\xa0\x5c\xbf\x48\xdc\xa4\x99\x20\xc6\xed\ \xcf\xcf\x5d\x7b\xd2\x99\xef\xd8\x19\xa4\xdf\xef\x5a\x7a\x9e\x12\ \x49\x30\xda\xcd\x15\xe9\xf3\x71\x40\x46\x8f\x06\x2e\x1e\x68\x3a\ \x17\xdd\x66\x6a\x7d\x66\x6b\x46\x5b\x8f\xd9\x3c\xdb\xf6\x83\x66\ \x31\x0b\xad\xe3\xe2\x61\xe7\x7f\xfe\xc7\xb6\xb0\x34\xb5\xf0\x08\ \x8e\x6a\x53\xea\x33\xf2\x1b\xd6\xb6\x99\x91\x3d\xa7\xf0\x73\x45\ \x55\x27\x00\x58\xd7\x4c\xd5\xbd\x42\xa1\xcb\x97\xa4\x16\x99\x86\ \x80\xe6\xa4\x17\x6f\xa2\xba\xa4\xc0\xc1\x76\x7c\xf6\x31\xd1\x8f\ \x72\xd2\x0a\x1f\x65\xa2\x15\xc1\x06\x59\x34\x6d\xb5\x2f\x3b\xb5\ \xe8\xe7\x42\xa1\xa9\x00\xbe\x6d\xc1\x29\x30\x41\x09\x6d\xe3\x3f\ \x00\x8b\xd3\xd7\xed\xee\xbd\xa9\x78\x1a\x98\x7e\x8c\x96\x6d\x15\ \xe3\x11\x82\x5b\x9c\x15\x84\x80\x2f\x04\x70\xdd\xe2\xf4\xf5\xc5\ \x2d\x16\x8a\xb1\x8d\xc0\xb7\x2c\x49\xaf\x7b\x91\x28\x75\x27\xbe\ \x07\x82\x3e\x6b\x42\x29\x54\x4d\x9f\xcc\x5a\x22\x69\x35\xed\x66\ \xb1\x55\x98\x58\x6b\x00\x30\x6e\x70\x78\x93\x13\x78\xc2\xb4\x2e\ \x2b\x2a\x46\x31\x3c\xe6\x8e\x97\xb6\xe8\x79\xdb\x24\xc3\xfa\x0f\ \x0c\xb9\x8f\xf3\x95\xfa\x10\xf5\x5f\x3a\x73\x92\x16\x71\x77\xf5\ \x1a\x52\x70\x29\x18\xbd\x41\xd4\x1d\xcc\xc7\x00\xde\x4d\xa4\xec\ \x11\x82\x1b\xc3\xcd\xeb\x03\x16\x26\x2f\x7c\xc7\xde\x4b\xf3\x61\ \x2c\x33\xc6\x02\x34\x8a\x81\x83\x04\x7c\xc9\x0a\x6f\xee\x1b\x17\ \xf3\xad\x3e\xf3\xbc\x9e\x25\xa9\x45\x25\x77\x15\xa4\xf4\x8f\x28\ \xaf\x4a\x03\x90\xc4\x75\x2e\xb5\x5d\x60\xfa\xb4\x26\xba\x66\x4d\ \x7d\x02\x63\x58\x2d\xe2\x0d\x9f\x47\xa9\x33\xba\x14\x36\xed\x73\ \xe9\xec\xc2\xc2\xac\x82\x94\xd1\x07\x2b\x2b\x86\xb2\xa6\x8e\xac\ \x77\x3b\x8e\x00\xa1\x12\x82\x77\x90\xaa\x6c\x27\x9f\xb6\x43\x58\ \x79\xe7\x92\x59\x25\xcd\xbc\x89\xd1\xeb\x60\xe8\x27\x77\x0d\xae\ \x83\xfa\xb5\x65\x7f\x9b\x9f\x3f\xf5\x05\x9b\x70\x8f\x14\x8a\x32\ \x12\xc0\x28\x06\xfa\x13\x63\x3f\x31\x6d\x07\xc4\x0e\x82\xba\xa3\ \xd7\xe6\xc2\xbd\x8b\x16\xb1\xc8\x2a\x48\xb1\xec\xaf\xa8\x2e\xb2\ \x68\x4a\xa2\x50\x44\x22\x33\x25\x82\x78\x00\x80\x68\x02\x1f\x21\ \xa6\xc3\x10\x78\x6f\xc9\x9c\xa2\xc6\xb5\x78\x7d\x37\xaf\xff\xf2\ \xe8\xd8\x89\x03\x04\xf1\x00\xc1\x4a\x22\x13\x25\x12\x73\x22\x40\ \x9d\xc0\x7c\x0c\x84\xc3\x44\xfc\xd9\x92\xb4\xe2\x80\x20\x92\x7a\ \xf7\xef\x34\xe7\xf2\xe4\xa9\x50\xc4\xcd\x4c\x58\xe7\x8d\x8f\x79\ \x5b\xa6\xdd\x92\x84\x03\x8a\xbd\x76\x40\x8b\x36\x4d\x6c\x60\xee\ \xdd\x3d\x61\xb5\x85\xee\x3c\xd9\xb3\xbd\x16\x6b\x3e\x2c\x0b\x14\ \x86\x80\x83\xcb\xb6\x22\x36\x32\xe4\xbd\x16\x1b\x59\xb5\xfd\x5f\ \x78\xfb\x7f\x4f\x87\xdc\xcf\x9a\x0f\xcb\xb0\x67\x7b\xe0\x6f\x6e\ \xd8\x90\x1e\xd8\xf0\x8f\x60\x89\x16\x5a\xc6\xe7\xdb\xdf\xc7\x8c\ \x07\x32\x1a\x3f\x3f\xf5\xd0\x2f\x70\xcf\xd5\xfa\x74\x82\x67\x87\ \x70\xac\x63\xfb\x7a\x53\xf5\x98\x4f\x17\x6d\x31\x5d\x6f\x26\x91\ \x48\x24\x67\x83\x76\xb3\xd8\xcc\x02\x47\xe2\xe3\x23\xc2\xaa\xd4\ \x80\xf0\x59\x6c\x16\x8b\x51\x99\xbb\x3d\xa1\x85\xfb\x03\x40\xff\ \xae\x89\x48\xbe\x32\x01\x9a\x8f\xe1\xf3\x30\xfe\x55\xf0\x2a\x96\ \xae\x7c\x05\x51\x91\x11\x88\x8e\x8c\x46\x4c\x54\x24\xa6\x4f\xf8\ \x1e\x16\x5c\x7d\x6f\xc8\x63\x49\x24\x12\xc9\x85\x40\xbb\x29\x36\ \xb3\xc0\x91\x5e\x3d\x9a\x5b\xf3\xda\x7a\xdc\xbe\x30\x29\x36\xeb\ \x99\x51\x6c\xdd\x63\xfb\x62\xf0\xf0\xd3\xa9\x05\x37\x15\x96\xe1\ \xab\x6f\xab\x02\xea\x68\x9a\x68\xb3\x62\x7b\x77\xeb\x1b\x58\xb9\ \xf9\x4d\xd8\x2c\x11\xb0\x29\x51\xb0\x59\x6c\xb0\xaa\x91\x88\xb4\ \x44\x22\x26\x32\x16\xf1\xd1\x71\x88\x8f\x4e\x40\xa7\xa8\x78\xec\ \xab\x68\xc9\x34\x90\x44\x22\x91\x74\x6c\xda\x4d\xb1\x99\x05\x8e\ \xf4\xee\x16\xde\x50\x7f\x00\xf0\x68\xe1\x71\xd9\x9b\x59\x6c\x1e\ \x4f\x93\xd3\x34\x2d\x22\xda\x1a\x87\x18\x5b\x02\xaa\x3c\x4d\x6e\ \x12\xdd\x66\x6c\xd1\x80\x2f\x76\x3f\x7c\xf0\x4b\xbd\xce\xa8\xcb\ \x07\xe1\x05\x10\x72\xa8\x82\x44\x22\x91\x74\x2c\xda\x2d\x2a\xd2\ \xeb\x31\x4e\xed\xc5\x44\x85\x2f\xf1\x71\x03\xe1\x8a\x8a\xb4\x58\ \x8d\x97\x2a\x1c\x8a\x0d\x00\xba\xc7\xf4\x0b\x4b\x3f\x12\x89\x44\ \x22\x69\xcf\x70\x7f\xaf\x51\xb1\xc5\x46\x86\x5f\xb1\x85\x6d\x8e\ \xcd\xc4\x15\xe9\xf5\x86\xb6\xf0\xbb\x81\xee\xd1\xfa\x35\xac\x12\ \x89\x44\x22\x69\x2b\xed\xba\x8e\x4d\x4f\x74\x64\x4c\xd8\xc7\x71\ \xfb\xce\x9c\x2b\xd2\xeb\x0b\x8f\x62\x8b\xb2\x86\x37\x60\x46\x22\ \x91\x48\x2e\x64\xda\xd1\x62\x33\x2a\x85\xb8\xe8\xd8\xb0\x8f\xe3\ \xd6\xc2\xe5\x8a\x34\x2a\x36\x16\x40\xb5\x27\xf4\xfe\x23\x2c\x21\ \xed\x4b\x29\x91\x48\x24\x12\x3f\xda\x45\xb1\x09\xc1\xa6\xdb\xd5\ \xc4\x47\x85\xdf\x72\x09\x9b\xc5\x66\xa2\xd8\x00\xa0\xb4\x32\xf4\ \xfd\xd4\x6c\x6a\x28\x1b\x1f\x4b\x24\x12\x89\xc4\x9f\x76\x89\x8a\ \x34\x9b\x5f\x03\x80\xf8\xe8\xf0\x2b\xb6\x33\xb9\x8e\x0d\x00\xca\ \xaa\x4a\xd1\xb7\x8b\xc9\xee\x28\xad\x20\x42\x2a\xb6\x26\xc9\x2a\ \x48\xb1\x1c\x3a\x55\x75\x35\x33\x4d\x25\x50\x5f\x06\xf7\xaa\xdb\ \x69\x9b\x77\x30\xd1\x4e\x45\x13\x5f\x2c\x9e\xb3\x7e\x6b\x7b\xcb\ \xd9\x16\x9c\x39\x49\x56\xf4\x39\xbd\x21\xa9\x4f\x44\x1e\x78\x21\ \xf5\x73\x19\xab\x2a\x91\x84\x40\xbb\x28\x36\x7d\x32\xe1\x06\xe2\ \xa3\x3b\x85\x7d\x2c\x77\xd8\xa2\x22\xcd\x15\x5b\x79\x75\x99\x69\ \x79\x6b\x90\x16\x9b\x39\x59\x59\xa4\x1c\x1c\x67\x7f\x08\x8c\x9f\ \x01\xd4\x0d\x00\x18\xfe\x09\x76\x09\x60\x40\x28\xea\x1b\x00\x6e\ \x6e\x37\x41\x43\x80\x7a\x29\xb3\x59\xa3\xb7\x1b\x3e\xab\xe4\xfb\ \x3e\x80\x33\xb6\xcb\xb6\x44\x72\x21\xd0\xa1\x2c\xb6\x84\x98\x84\ \xb0\x8f\xe5\x0e\xd3\x3a\x36\x35\x88\xc5\x56\x5e\x1d\xfa\xfa\x33\ \xa9\xd8\x8c\xdc\xbe\x6a\x4c\x4c\xd4\x58\xfb\x3b\x60\x5c\xde\xde\ \xb2\x9c\x49\x58\x50\x6a\xd8\xd3\xfb\x4b\x24\x17\x38\xed\x32\xc7\ \x16\x54\xb1\x45\x9f\x01\xc5\x16\xa6\xcc\x23\xd6\x20\x16\x5b\x59\ \x55\x18\x2c\x36\x19\x3c\x12\x00\x81\x28\xaa\x26\xe2\x15\xc0\x54\ \xa9\x1d\x00\xf0\x3c\x31\x1e\x24\xe6\xbf\x13\xf0\x3e\x48\x1c\x3a\ \xcb\x22\x86\x85\xac\x2c\x52\xa0\x60\x66\x7b\xcb\x21\x91\x9c\x6f\ \x74\x28\x8b\xad\x73\x6c\x78\x53\x6a\xf9\x84\x17\x82\x8d\x19\x4e\ \xda\x42\xb0\x39\xb6\x8a\x9a\xd0\xa7\x43\xa4\xc5\x16\x88\x33\x6f\ \xe2\x95\x4c\x74\x83\xf1\x08\x3f\x9b\x9d\x56\x7c\xff\xd9\x97\xe8\ \xcc\x70\x60\xec\xc4\x64\x62\x84\x3f\xdd\x8e\x44\x72\x81\xd3\x3e\ \x8a\xcd\x64\x0d\x1b\x00\x74\x8e\xe9\x1a\xd6\x71\xc2\x65\xad\x01\ \x80\x1a\xc4\x62\xab\xa8\x39\x15\x72\xdf\x32\x78\x24\x10\x26\xba\ \xdb\x58\xc8\x1b\x22\x22\x4a\x1f\x6a\xaa\x5d\x86\x2b\xf9\x61\x62\ \xae\x5b\x33\x62\xd1\xfe\x93\x3d\xab\xe4\x1b\x00\x98\x97\x3b\x4f\ \xed\x6c\xdb\x3f\x0a\xd0\x1c\x20\x9e\xc8\x4c\xcb\x72\xd2\x8a\xde\ \xf7\x6f\x7b\xdf\x32\xfb\x60\x9f\x45\xb1\x13\xb3\x1d\x44\x17\x41\ \xf0\x51\x52\x78\xbb\xe2\xc3\xeb\xcf\x5d\x5f\xbc\xd3\x6c\xbc\xac\ \x82\x14\xcb\x91\x93\x55\x03\x7c\x2a\x06\x2b\xac\x0c\x16\xc4\x83\ \x09\x18\x0c\x20\x1a\xc4\x07\x20\xb0\x5f\x40\x79\x67\x69\x7a\xe1\ \x17\xfe\xed\x32\xf3\xec\xb7\x31\x68\x28\x80\xc9\x7a\x37\x24\xb1\ \xb8\xd1\x99\xe7\xb8\xa8\xf1\xb3\x82\x95\x4b\x52\x8b\x4a\x1a\x3f\ \x83\xe8\xde\xfc\xa4\xe1\x82\x15\x07\x40\x0e\x26\x0c\x62\xf0\x41\ \x12\xf8\x0e\x42\xfb\x67\xf6\xf5\x25\x2d\xb2\x5e\x9d\xcb\x93\xa7\ \x82\xf8\xdc\x62\x06\xd1\x00\x00\x20\x00\x49\x44\x41\x54\x6a\x00\ \x60\xf0\xee\x9c\xf4\xe2\x97\x1b\x8f\xe5\x25\x0d\x81\xa2\x4e\x65\ \xe0\x32\x30\x12\x40\xb4\x01\xcc\x1b\xbc\x09\xd1\x9f\xf8\x6f\x2b\ \x93\xb1\xdc\x31\x5c\x21\x5c\xc6\xc4\xe3\x00\x1a\x08\xc6\x2e\x28\ \xf8\x16\x3e\xed\xed\xe6\xe4\x98\x97\x3b\x4f\xed\x62\xd9\x33\x9a\ \x55\x8c\x05\x63\x0c\x80\xe1\x0c\xec\x6c\xd8\x5a\x28\xd2\x52\xfa\ \xe5\xd3\x33\xb6\xb9\x0d\x72\xaf\x4c\xea\x06\x9f\xda\xf8\x72\xe3\ \xe9\x14\xfd\x44\x83\x4c\x3f\xc9\x9d\x1c\x55\x65\x11\x13\x40\xc2\ \x01\xd0\x25\xb0\x68\xbf\xc9\x9e\x55\xb2\xb7\xa1\x6e\x56\x41\x8a\ \xe5\x40\x59\xd5\x68\x22\x72\x80\x61\x07\xa1\x27\x80\xfd\x0c\xfe\ \x92\x3c\xe2\x5f\xd9\x73\x4b\xce\x4c\x5e\x3b\xc9\x59\xa7\x5d\x14\ \x9b\x16\x44\xb1\xc5\x46\x86\x77\x1d\x5b\xb8\xf2\x44\x02\x4d\x58\ \x6c\xd5\x95\x21\xf7\x2d\x2d\xb6\xd3\x38\x73\x93\x12\x60\x53\xe7\ \xe8\xcb\x09\x78\xca\xec\x41\x17\x58\x87\x1f\xae\x7f\x58\x01\x9a\ \x6a\x05\xf0\xab\x0c\x97\xfd\xea\xce\x36\xfa\x17\x80\x1e\x00\x00\ \x26\x10\xd3\xd7\x00\xde\x07\x00\xe7\xb2\xa4\xde\x50\xd5\xb7\xa0\ \xd2\x64\xaa\xdf\x42\x1a\xf5\xbb\x64\x33\x13\x34\x15\x8f\x3a\xf3\ \x1c\xaf\x7a\x3a\x45\x67\xfa\x3f\xd4\x17\xe4\x25\x4f\x50\x88\x0b\ \xa1\x92\x85\x00\x30\x71\xa0\x8e\xe2\xba\xdd\xa7\x15\xf0\xa3\x4e\ \x97\xe3\x53\xa8\xca\x8f\xb3\x67\xad\xdb\x50\x27\x28\xdd\x06\xe0\ \x1a\x32\x9d\x5c\xa3\x1b\x40\xf0\xb7\x56\x0f\x03\x28\x01\xea\x14\ \x4e\x06\x4d\x5c\xae\x81\x2e\xa9\x1f\x04\x68\xd8\xd0\x9b\x00\xa8\ \xea\xe3\x99\x2e\xfb\xdf\x4e\x7a\x06\x3e\x52\xbf\xdf\x59\x70\x14\ \x31\x15\xa0\x45\x75\x4d\xa9\x22\xab\x20\xe5\x35\x7c\x52\x20\x0e\ \x8c\xb3\xe7\x10\xa9\xf3\x1b\xfb\xad\xbb\x1e\x37\x02\x80\xad\xbc\ \x7a\xed\x5d\x79\xe3\xae\x7b\x29\x7d\x63\x99\x33\xcf\x7e\x2f\x29\ \xf4\x77\x06\xac\x8d\x35\x1b\x76\xdb\x56\xd5\x47\x33\xf2\x92\x7f\ \x98\x93\x5e\xf8\x4f\xb3\xa1\x33\x96\x3b\x86\x77\xb1\xe1\x75\x06\ \x26\xf8\xef\xa2\xdd\x30\x1e\x09\x82\xdb\xdb\x65\x67\xc6\x0a\xfb\ \xcd\x39\xb3\x8b\xf5\xfb\x42\x75\x03\x61\x51\xc3\x87\x88\x53\x35\ \x6b\x00\x7c\xe0\xcc\xb3\x3f\x04\x1b\xfd\x01\x7e\xf2\x90\x57\x7d\ \x0a\xc0\x5e\x00\xc8\x5c\xee\x98\xc4\x0a\xbf\x45\x44\x7d\x02\x06\ \xab\x3b\x7f\xc0\xa6\xfe\x29\x33\xcf\xf1\x8b\x25\xe9\x45\xcf\x34\ \x79\xdd\x24\xe7\x04\xed\x32\xc7\x16\x2c\x10\xa3\xb2\x36\x74\x25\ \x11\x30\x8e\x12\x5e\xbd\x4d\x26\x57\xcb\xa7\x85\x9e\x2f\xd2\xa2\ \xda\x42\xee\xe3\x7c\x81\x23\x94\x79\x00\x0c\x93\x8e\x9a\x50\x0a\ \x5a\xd9\xd5\xf4\xcc\x7c\x47\x12\x81\xde\x43\x83\x52\xd3\x91\xe1\ \xb2\x4f\x86\xaa\x7e\x01\x60\x72\x13\xfd\x10\x08\x77\xd8\xca\xab\ \x57\x12\xe8\xf4\x17\x57\x85\x15\x2d\x7f\x31\xbc\x1c\x9a\x58\xb9\ \xf0\x1d\x7b\xaf\x96\x0a\x6f\x90\x35\x6f\xe2\x0c\x90\x5a\x82\x46\ \xa5\x66\x8a\x85\x41\x0f\x77\x8a\xd8\x63\xaa\x50\x9a\x20\xee\x50\ \x59\xd5\x15\x07\xc7\x4e\xfc\x17\x31\xe6\x37\x51\x6f\xb2\x8d\xac\ \x9f\x3a\xf3\x1c\x2f\x83\xe8\x39\x00\xd6\x20\xf5\x3a\x13\xf1\xab\ \x99\xcb\x1d\x93\xf4\x07\x9c\x2e\xc7\x3d\xa4\x60\x23\x03\x13\x9a\ \x94\x88\x31\x98\x04\xad\xc9\xcc\x77\xfc\xa4\xe9\x7a\x62\xba\x33\ \x2f\xf9\x47\x20\xfa\x8b\x5e\x1e\x41\x4c\xf5\x63\x3a\x59\x41\x01\ \x40\x4d\xe5\xae\x8b\x61\xc2\xd3\x19\xae\xe4\xdf\x34\x39\x9e\xe4\ \x9c\xa0\x7d\x14\x9b\x7a\xe6\xdc\x7a\xfe\x84\x33\xa3\x87\x10\x0c\ \x36\x59\x54\x1e\x17\x15\xba\x95\xe9\x13\xa1\x6f\x7f\x73\xde\xc0\ \xa6\x0f\xee\x5d\x4b\xaf\x2f\xdc\xdf\xca\x9e\xc6\x33\xe3\x35\x00\ \xaa\xd9\xc1\x05\xcb\x92\xfb\x11\xe8\x23\x00\xbd\xfd\x8a\x0f\x31\ \xe8\xa7\x04\xbe\x19\xc0\x5a\x5d\x93\xab\x32\x5c\x76\xfd\x43\xdf\ \x0d\x60\x23\xc0\x2f\x31\xd1\x8f\xc0\x74\x0d\x98\x1f\x06\xb0\xaa\ \xfe\x98\x3f\xbd\x35\x2f\xbd\x0c\x00\x60\x7e\x0d\x8c\x2c\x93\x3a\ \x00\xf8\x6d\x30\xb2\x1a\xff\x80\x92\x05\xf9\xc9\x97\x12\x29\x2b\ \x01\x9c\x5e\x0f\x43\xd8\x09\xd0\xfd\x04\xdc\x01\x20\x60\x0d\x1f\ \x31\xbe\x9f\xb1\xdc\x31\xcb\xec\xbc\x83\xc1\x44\x6f\x01\x74\x33\ \x00\x51\x17\x94\x43\xd7\x11\xf0\x08\xea\xf6\x80\xf0\xef\xfd\x12\ \x10\xee\xa8\x3b\x0d\xfe\x80\x89\xbe\x4f\xcc\x3f\x00\xb0\xc3\xd0\ \xa7\x82\xbf\xf8\x7f\xbe\x37\x6f\xa2\x1d\x40\x0e\x00\xff\xa4\xb0\ \xa5\xcc\x78\x92\x14\x4a\x07\xf0\x3c\x02\xaf\x89\x95\x19\x7f\xcd\ \x70\xd9\xaf\x0e\x2a\x37\x68\x2e\x88\x1f\x0f\x76\x3c\x23\x2f\xf9\ \x06\x00\x4b\x00\x34\xbe\x3d\x12\xf0\x05\x01\x77\x80\xf0\x00\xea\ \x82\x91\x4e\x9f\x1d\xf8\xff\x16\x2c\x9f\x34\x32\x58\x7f\x92\x73\ \x83\x76\x71\x45\xaa\x41\x46\xad\xa8\x0d\xef\xba\x54\x9b\x1a\x09\ \x02\x35\xae\x7d\x0a\x85\x60\x01\x2f\x31\xe1\x50\x6c\x9a\x27\xe4\ \x3e\xce\x17\x08\x30\x5a\x35\x14\xf8\xf0\x69\x21\x0a\x80\x11\x00\ \x00\xc6\x36\x10\x16\x93\x42\x3b\xc1\xc2\xed\x23\x75\xbb\x85\xc4\ \x2f\x18\x08\xf0\x01\x13\xf3\x0f\xb2\xd3\x8b\x3e\x02\x80\x7b\x97\ \x4f\x59\x2d\x14\xdf\x76\x00\x8d\x59\x03\x08\xb8\x1d\x75\x0f\x5f\ \x28\x87\x7c\x5f\xf4\x19\x1e\x17\xbb\x68\xda\x6a\xbd\xc9\xbe\x0a\ \xc0\x5f\x33\x5d\xf6\x9b\x18\x14\xb0\x1e\x8d\x81\x94\x79\xb9\xa3\ \x6d\x6f\xce\xdd\xfa\x1a\x00\x38\x5d\x8e\x1f\x01\x88\x08\xa8\x43\ \xca\x5b\x39\x69\x85\x01\xed\x9c\x79\xc9\x6f\x83\x02\x5e\x42\x7d\ \xa4\xe1\xfa\x25\x73\x0a\x37\x03\x80\x73\x65\x52\x31\x34\xf5\x4b\ \xf8\x59\x2c\xa4\xe0\x76\x00\x2b\x5b\x76\xa9\x00\xd4\x2b\x4d\x66\ \xfa\x7d\x76\x7a\xd1\xaf\xeb\xcb\xde\x71\xba\x92\xfb\x00\xfc\xa0\ \xbe\x32\x01\x5f\x94\x7a\xab\x67\xbd\x39\x77\xab\x07\x00\x32\xf3\ \xed\xc7\x99\xe9\x5d\x5d\xb5\x49\x3f\xc9\x9d\x1c\xf5\xe4\xdc\xb5\ \x35\xf5\xe7\xf6\x17\x40\xe7\x7f\x25\x38\x73\xd2\x8a\x72\xeb\x3f\ \xb9\x32\xf2\x93\x77\x12\xf3\xef\x03\xaa\x30\xfd\x1e\xc0\x87\x41\ \xe4\x4e\xf4\xfb\x7f\x35\x80\xd7\x89\x78\xbf\xd0\xc8\x52\x65\xab\ \xdd\x13\xeb\x8b\xd2\x5b\xaf\xc7\x49\x58\x66\x2e\x9e\xb3\xe6\x28\ \x00\x38\xf3\x1d\xbb\xc0\x01\xd7\xc9\xaa\xa8\xfc\x7d\x00\xd2\x72\ \x3b\x87\xe9\x58\xae\xc8\x30\x44\x18\xfa\x43\xa0\xb0\xcd\x5f\x05\ \xf3\x38\x86\x63\x5e\xd0\x2b\x9a\x9c\x3a\xba\xa0\x30\x55\x6c\x8c\ \x50\x26\xf5\xf7\xc7\x78\xd5\x31\xd9\x69\x45\x4f\x2d\x99\x5d\xe8\ \x5a\x92\x5a\xfc\x5e\x04\xfb\xdc\x0c\xbe\x47\x57\xef\xd0\x92\xf4\ \xe2\x8f\x1a\x3e\xd4\x3f\xf8\x4a\xfc\x2b\x30\x30\xe9\xc1\x77\x93\ \xe3\x01\x20\x3b\xa3\xc4\x6b\xa2\xd4\x1a\xe9\xbd\x69\x7d\x2e\x0c\ \xd6\x0e\x6c\x5d\x23\xa2\x2e\x6e\x8d\xf0\x19\x79\xf6\xb1\x20\xd6\ \xcf\x39\x6e\x59\x32\xa7\x68\x73\xc3\x87\xfa\x20\x99\xed\xba\x3a\ \x57\xcf\xcb\x9d\x67\x6a\xad\x36\x05\x33\xbd\xee\xff\x99\x98\xbf\ \x0c\x52\x35\xb7\x41\xa9\x01\x00\x29\x96\x2d\x26\x75\xa8\x32\xd2\ \x37\x18\x00\x32\x5d\xf6\xd9\x0c\x5c\xa6\x3b\xfc\x4d\x76\x6a\xa3\ \x52\xab\x2b\x39\xec\xfb\x0b\x80\xd2\xc0\x6a\x98\xe8\xcc\x73\xa4\ \x37\x2d\x38\x2d\xcb\x4e\x2b\xba\x32\x3b\xad\xe8\xf9\x25\xa9\xc5\ \xef\xe5\xcc\x29\x5a\x19\xe7\x8b\x9c\x0e\x60\x74\x60\x35\x7c\xd0\ \xa0\xd4\x00\xa0\xcf\xc6\xe2\x77\x01\x04\xdc\x47\x66\x5c\xd3\xe4\ \x58\x92\x0e\x4f\xbb\x28\x36\x4b\x10\x57\x64\x65\x98\x2d\x36\x00\ \xb0\x59\xc2\xa3\xd8\x82\x45\x72\x86\xc3\x15\xe9\x95\x16\x5b\x23\ \xcc\x46\xc5\xc6\x84\xb6\xfb\xa8\x89\x5e\x6a\xb0\x18\x1a\xf0\x42\ \xb9\x09\x7e\xae\xa9\x7a\xbe\x31\x8c\x0b\xec\xd3\x15\x59\x6a\x3d\ \x7c\x55\x4b\x86\x5d\xb4\x88\x05\x00\x83\xfb\x54\x03\x8d\x6a\x49\ \xfb\x06\x48\x51\x6e\x83\xce\xca\x61\x32\xca\x0a\xa3\xac\x9d\xbb\ \x58\xf6\xd8\x5b\x33\x16\x00\x4f\xbf\xce\x91\xdb\x02\x4a\x14\xde\ \x66\x56\x51\xb0\x08\x50\x78\x8b\x67\xad\x3d\x00\xbf\xbd\x6c\x4f\ \x37\x57\xfa\x00\x00\x33\x4d\x37\xf6\x62\xec\x3b\x3b\xa3\xc4\x4b\ \x80\x71\x2b\x77\x05\x26\xed\xfd\xe4\x51\xf9\x59\x43\xef\xa0\x1f\ \x18\x87\xa4\x80\x6b\x57\x7f\x9f\x0e\xfa\x97\x11\x38\xe9\xfe\xe5\ \x8e\xf0\x86\x68\x4b\xce\x2a\xed\xe4\x8a\x0c\x66\xb1\x85\x37\x78\ \x04\x00\x22\xd4\x28\x54\xe8\x5e\x00\xdb\x42\xb0\x48\xce\xb8\x30\ \x24\x6e\xf6\x6a\xd2\x62\x6b\x84\x0c\x0a\x07\xc4\xdc\xe6\xdc\x1c\ \xc4\xd8\x65\x1c\x82\x87\x9a\x8c\x6b\x50\x16\x64\xa2\x98\xa8\x2e\ \xe8\x61\x79\xb0\xf1\x16\xe6\xa6\xc4\xc2\x56\xd5\xd9\x07\x4b\x27\ \x98\xbd\x38\x8a\xa0\x01\x17\xa6\xb0\xe0\xa1\xa4\x3f\x7b\xdd\xc3\ \xb9\xae\x0c\xfb\xf5\x41\x96\xac\x62\x02\x80\x75\xad\x18\xed\x5b\ \xbd\x15\xaa\x91\xe2\x51\xd8\xf8\xdd\x67\xa1\x9a\x59\x68\x26\x93\ \xc5\x42\xad\x13\x8f\x47\x18\xa2\x40\x19\x7b\x82\x08\xb2\x03\x40\ \xb2\xae\xee\xa0\xa0\x62\xd7\x61\xb8\xcf\x00\x8c\xf7\x99\x85\xd9\ \x4b\xc1\x7e\x00\x03\xfc\x3e\x2b\x1e\x85\xc7\x21\xb8\xfb\x53\xd2\ \xc1\xe9\x58\x8a\x2d\xcc\x51\x91\x40\xf8\x02\x48\x82\x59\x6c\xe1\ \xc8\x6f\xe9\x15\xd2\x62\xf3\xe3\x24\x02\xe7\x4d\xc0\xa0\xf8\xb6\ \x76\xc6\xcc\x26\x6f\x35\x34\x04\xfa\x79\x57\xc6\x0c\x67\xbe\xa3\ \x40\x57\xd1\xb8\xb5\x39\xa3\x31\x3d\x0e\x81\x68\xc1\xf2\x89\x97\ \x83\x94\xab\x15\xe2\xab\x19\x98\x00\x5b\x43\xb8\xb9\x79\xb4\x3d\ \x29\xd4\xaa\x09\x5f\xa2\xd3\x09\x92\x4f\x8f\xcb\xb7\x3a\xf3\x1d\ \x57\xea\x0a\x07\x37\x25\x6b\x0b\x07\x3b\xd9\xd2\xaa\xbe\x2e\x51\ \xc7\x5b\xd7\x35\x0d\xd7\x97\x31\x91\xa9\x62\x63\xc6\x76\x93\x95\ \x10\xc6\xf3\xf3\x97\x47\xf3\x04\xdc\xe7\xac\x2c\x52\x30\xd6\x3e\ \xd0\x44\x8e\x5f\x38\xf3\x1d\xf7\xe9\x8a\x47\x18\x85\x50\xc2\x9f\ \x06\x49\x72\xd6\xe8\x50\x8a\xad\xda\x1d\x9e\x84\xc5\xfe\x44\xa8\ \x67\x58\xb1\x45\x85\xfe\xfd\x97\x16\x5b\x00\x86\x87\xab\xe2\x17\ \xc0\x11\x1e\xd8\xec\xed\x7f\x20\x18\x03\x9b\x6d\x4a\x75\xca\xc2\ \xb9\x32\x29\x3a\x43\x9b\xf8\x2a\x14\xba\x01\xad\x08\x4f\x62\xd1\ \x6a\xeb\xd3\x4c\xd6\xe1\x60\x18\x14\x85\x09\x1d\xe2\xe1\x4c\x20\ \xca\x80\xdd\xb0\x05\x86\x02\x3e\x6a\x56\x1f\x04\xb3\xc5\xdd\xad\ \xda\x42\x63\xff\x25\x8e\x3e\x0a\x38\xc2\xe4\xd0\xd8\x16\xdd\x2c\ \xa5\x63\x5c\x3b\x49\xdb\xe8\x50\x73\x6c\x55\xee\xaa\xb0\x8f\x15\ \xae\x3c\x8c\xc1\x5c\x91\xe1\xc8\x6f\x29\x2d\xb6\x00\x0c\x8a\x8d\ \x81\x6e\x61\x1e\xa3\xcd\x5f\x34\x66\xc4\x3f\xf8\x6e\x72\x3c\x69\ \xea\xa7\x80\x21\xed\x57\x2d\x80\x75\x0c\x3c\xc3\xe0\x85\x00\x8e\ \x84\x24\x65\x1d\xa1\xfc\x28\xda\x6c\xe9\x86\x13\x06\x33\xcc\xee\ \x2b\x73\xb0\x74\x62\x66\xf7\xbb\x55\x16\xa2\x35\xc2\x1a\xd2\xc3\ \x84\x44\xc7\xb8\x76\x92\xb6\xd1\x2e\x16\x1b\x29\x75\x7f\xfa\x75\ \x61\xd5\xb5\xe1\x4b\x81\xd5\xc0\x99\xb6\xd8\x12\xa4\x2b\x32\xbc\ \x10\x1f\x80\xd1\xa8\x19\xb1\x30\x37\x25\xf6\xd9\xb9\xab\xc3\xe4\ \xab\xe6\xdd\x00\x5d\x1a\x38\x2e\xfd\x35\x3b\xb5\xf0\xe1\x96\xb4\ \xce\xc8\x4b\xbe\x81\xc8\xb0\xc0\xb8\x54\x08\x65\xca\xd2\x39\xeb\ \xbe\x6e\x28\x70\xba\x1c\x0f\x02\xf5\x99\x50\xda\x2a\x29\x68\x37\ \x81\x7b\xe8\xca\x7e\x9a\x93\x56\xf8\x97\x60\x6d\x3a\x28\xfb\xa0\ \x53\x58\x44\x26\x11\xb0\x00\x08\xd4\xc7\x60\x03\x13\x4c\xd3\x9a\ \x05\xe3\xb9\xeb\x3e\x2b\x75\xba\x1c\xe5\xd0\x59\xad\x2c\x30\x3b\ \x67\x4e\x51\x6b\x96\x41\x48\xce\x41\xda\xc5\x62\x03\xcc\x53\x54\ \x55\x9f\x01\x8b\x2d\x5c\x73\x6c\x9a\xc9\x3a\x36\x22\x20\x36\x32\ \x74\x2f\x59\xb8\xf6\x8c\x3b\x1f\x20\x61\xba\xf6\x4a\xf1\x45\xd4\ \x4c\x0c\xdf\x28\xca\x6e\x7d\x09\x83\x9b\xca\x4a\x11\x08\xf1\x15\ \x86\x22\xf0\x33\xfe\x4a\x2d\x5c\x28\xc4\xbb\x4d\xc6\x6a\xb9\xac\ \x1d\x06\xd6\x47\x6d\x02\xa0\xde\xc6\xb2\x20\xf7\x42\x18\x17\x80\ \xb7\x00\xc3\x1c\x9e\x42\x4d\x66\x1f\x91\x9c\x27\xb4\x9b\x62\x8b\ \x8a\x36\x2e\xb1\x39\x78\x22\x1c\x9e\x9b\x40\xce\x64\xf0\x88\xc5\ \x12\x9e\xcb\x57\x56\x73\x2c\x2c\xfd\x9c\x0f\x9c\xf4\x0e\x2c\x00\ \xc1\x70\x41\x88\x45\x18\xb7\x77\x11\x86\x87\x24\x01\x8e\xac\x2c\ \xb3\xa4\x69\x46\x88\x8c\xdb\xe9\x30\xd3\x46\xff\xcf\x77\x15\xa4\ \x44\x42\x17\x04\xd3\x26\x04\x9b\x3d\xd0\x9b\x4a\x01\xd6\x21\x61\ \x56\x8c\xeb\xe1\x18\xa6\x8a\x0d\x30\x2b\xe7\xaf\x5a\x3b\x26\x99\ \x65\x43\x01\xb7\xea\xda\x2d\x74\xd9\xfb\x67\xb8\x92\x7f\xe3\x74\ \x39\xb6\x3a\x5d\x8e\x57\x9d\xf9\xc9\x29\xad\x95\x43\x72\xf6\x69\ \x37\xc5\x16\x13\x67\x54\x6c\x07\x8e\x9d\x01\xc5\x76\x06\x5d\x91\ \x16\x6b\x78\x2e\x5f\x69\xad\xf9\x1c\xfa\x85\xc8\x9b\x73\xdf\xd4\ \x88\x29\x4f\x5f\xce\xa0\x1f\x39\x5d\x93\x1c\x61\x19\x44\x15\xaf\ \x03\x08\x5c\x34\xc9\x18\x7c\x60\x8c\xc3\x90\x7c\xd9\x14\x93\xbd\ \x90\x48\x09\x8c\xda\xb3\x9d\xaa\x99\x04\x5d\x66\x13\x13\x0c\x5f\ \x2a\x62\x0e\x70\x9d\xf9\x14\xcb\x8b\xd0\x2d\x20\x06\xe0\xb8\x37\ \x7f\xe2\x94\x16\xc9\xda\x41\xd0\x14\xcb\x62\x00\x01\x3e\x77\x26\ \x4c\x5e\xe8\x0a\x0c\x2a\x59\xb0\x2c\xb9\x1f\x80\x40\x37\x31\x70\ \x4a\xb5\x46\xbc\xd8\xda\x31\x05\x90\x6d\x28\x24\xdc\x3c\x3f\x7f\ \x6a\x8b\xac\xb6\x07\xdf\x4d\x8e\xf7\x81\xd6\x11\x38\x0b\xc0\xc5\ \x00\x7e\x00\xe6\x8f\x33\x5d\xf6\x9b\x5a\x2b\x8b\xe4\xec\xd2\xa1\ \x14\xdb\xb1\x93\xa1\xaf\x37\xd3\x63\x0b\x93\x62\x33\x0b\x1e\xb1\ \x86\xc9\x62\x2b\xad\x91\x8a\xcd\x1f\x4d\xc1\x8b\x00\xf4\x99\x39\ \x2d\x20\xf1\x7a\x66\xbe\xfd\xfa\x85\xb9\x29\x8d\xab\xe2\xe7\xe7\ \x4f\x8d\xab\x7f\x18\xb6\x98\xec\x59\x25\xc7\xc1\x78\x52\x5f\x4e\ \xc4\x2f\x67\xb8\x8c\xca\xed\xf6\x55\x63\x62\x32\xf3\x1d\x49\x99\ \xae\xe4\x1b\xeb\x2b\x1a\xd6\x42\x09\xa6\xeb\x9d\xb9\x49\x09\x40\ \xdd\xf6\x28\x60\x38\x9b\x97\x84\x0e\xeb\x4b\x98\x10\xe0\x72\x7d\ \x3e\x75\xed\x76\x00\x2f\x18\xc7\x53\x5c\x66\xd6\xc3\x83\xef\x26\ \xc7\x2f\x58\x91\x9c\x9c\xe9\xb2\xcf\x6e\x7e\xfc\xb3\xc7\x0b\xa9\ \x9f\x1f\x44\x5d\xee\x4e\x7f\x22\x7d\xa0\xbf\xce\xcf\x9f\x1a\x07\ \xd4\x45\x9a\x92\xca\x4f\x41\x97\x04\x9b\xc0\x7f\x7b\xee\xba\xcf\ \x5a\xfd\x70\xc8\x49\x2b\x7a\x1f\x84\x4f\x74\xc5\x11\x16\xf6\x7e\ \x92\xe9\x4a\x36\x2c\x94\x77\xae\x4c\xea\x96\x99\x6f\xbf\xfc\xde\ \xbc\x49\xd3\x00\xc0\xed\xe5\x6b\x00\xf4\x35\x74\xcc\x94\xd1\x5a\ \x59\x24\x67\x97\x76\x09\x1e\x01\x80\x58\x13\xc5\x56\x5a\x1a\xfe\ \x39\xb6\xc8\x33\xe8\x8a\xb4\x5a\x5b\x9d\xb1\xc8\x94\x32\xa9\xd8\ \x02\x58\x3a\xbb\xb0\xd0\x99\xef\x78\x14\x8c\xdf\x06\x1c\x60\x0c\ \x66\xd0\xdb\x3e\x5b\xb5\x3b\xd3\xe5\xd8\xca\x40\x3f\x0b\xd0\x13\ \x2a\xbd\x01\xe0\xe6\xd6\x8c\xe1\x53\xac\x7f\xb5\xb0\xd7\x89\xc0\ \x14\x5e\xb1\x04\x2c\x73\xba\x1c\x47\x08\xd8\x24\x00\x8d\x80\x51\ \x51\x88\x4c\xac\xdf\xc8\xe6\x30\x80\xb7\x08\xb4\x9c\xc1\xb7\xf8\ \xf7\x47\xe0\x29\xb0\xa9\xfb\x9d\x2e\xfb\xc7\xf5\x81\x29\x03\x01\ \x30\x83\xd6\x13\x38\x48\x06\x10\xf1\x3f\x80\x2e\xf2\x2f\x21\xc6\ \x7c\xa7\x2b\x79\x0a\x20\xbe\x03\x68\x04\x80\xef\x14\x55\xbd\x57\ \x68\xda\x2d\x08\x5c\xf6\xd0\x15\xcc\x1f\x3b\x5d\x8e\xfd\x44\xd8\ \xc4\x0c\x1b\x80\x51\x00\xfa\x29\x00\x18\xb4\x09\xc0\x8a\xd6\x5c\ \x93\x33\x0d\x59\xe8\x09\xd6\x78\x16\x02\x77\x5b\x98\x6b\x61\xef\ \x4c\xa7\xcb\xf1\x19\xa0\x4e\x25\x40\x97\xca\x87\x0f\xba\xd9\xfb\ \x54\x9b\xc7\xd4\xf0\x0b\x56\xf0\x29\x02\x9f\x75\x43\x19\xbc\xd5\ \xe9\x72\xec\x24\xe0\x4b\x01\xee\x4c\x44\x17\x83\xd5\xee\x0c\x80\ \x49\xfb\x0f\x80\x02\x12\xd4\x99\x4d\x96\x1d\x32\x21\xbc\x3b\x22\ \x4b\xc2\x4e\x87\xb2\xd8\xaa\xab\x7d\xa8\x72\x87\x77\x91\xf6\x99\ \x0c\xf7\xb7\x59\x43\x7f\x2f\xa8\xf6\x56\xc0\xad\x85\x3f\x1a\xf4\ \x5c\x27\x27\xb5\xf8\x51\x80\x7f\x01\xa3\x1b\x0e\x00\x22\xea\xb7\ \x3d\x69\x73\xc4\xe1\x0b\xa9\x9f\x57\x58\xac\x3c\x0e\xe6\x0f\xff\ \x9e\x0c\x5c\x43\xc0\x4c\xd4\x29\xa8\xc6\xad\xc2\x00\x60\x49\x5a\ \xe1\x5b\x00\x72\x4d\xda\xc5\x02\x94\x5a\xdf\xc6\x47\xc0\x9d\x4c\ \x58\x10\x4c\x06\x01\xfa\x3b\x8c\x96\x29\x00\xbe\xa8\xbe\x9f\x11\ \x04\xd8\x16\xcf\x5a\x7b\x40\xd5\x78\xac\x89\xf5\x01\x00\xfd\x98\ \x31\x0b\xc0\x74\xf8\x2f\x28\x37\xdf\xec\xad\x5d\x59\x32\xab\x70\ \x9b\xd0\x68\x02\x18\xfa\x3d\xd6\x62\x00\x5c\x0b\x83\x52\xc3\x2a\ \x45\x58\xc7\xbd\x94\xbe\xb1\xac\xcd\x63\xce\x29\x5a\xc7\x0a\x4f\ \x06\xa0\x9f\xa3\x23\x00\x43\x18\x98\x43\xa0\x69\x08\xd8\xc9\x5c\ \x21\x00\xd0\x98\x3e\x83\xd9\x4a\x7b\xa2\x8f\xdb\x2a\x8f\xe4\xec\ \xd0\xa1\x14\x1b\x00\x6c\xd9\xbb\xd9\xb4\xbc\xad\x84\x6d\x8e\xcd\ \x24\x2a\x32\x22\xa2\x55\xd9\x91\x4c\x91\x6e\x48\x73\x18\xcc\xd9\ \x69\xc5\x4f\x40\x55\x1c\x04\x5a\x0a\x20\xd8\xc3\xcd\x07\x88\x56\ \xad\x71\x6a\xe0\xd9\x99\xc5\x87\xb3\xd3\x8a\x52\x41\xb8\x93\x80\ \x42\xc0\x34\x27\xa5\x00\xb0\x07\xa0\x0f\x01\xbc\xda\x58\x7a\x44\ \xbb\xb5\x7e\x8b\x1a\x7d\x1b\x0f\x80\x22\x06\x66\x2d\x49\x2b\x7a\ \x75\x69\x6a\xe1\x97\x08\xb2\x9e\x6d\x69\x5a\xd1\x67\xcc\x3c\x1f\ \x30\x5d\x90\xcc\x00\xf6\x09\xc6\xff\x00\xe0\xb9\xeb\x8b\x77\xe6\ \xa4\x16\xa7\x00\xfc\x43\xd4\x25\x67\x36\x73\x6f\x68\x20\xec\x24\ \xe0\x7d\x30\xde\x6c\xf2\xe4\xdb\x89\xa5\xd7\x17\xee\x8f\x88\x38\ \x79\x19\x03\x7f\x44\xdd\x79\xe8\xb3\x13\xb8\x09\xf8\xa2\x6e\x49\ \x43\xf1\xb5\xfe\x09\x8b\xdb\x4a\xce\xec\xe2\xf5\x11\xb6\x93\xe3\ \x01\xfc\x1e\xc0\x97\xd0\xcd\xf5\xd5\xe3\x01\xe8\x1b\x00\x2b\xa8\ \x7e\x13\xda\xa5\x73\xd6\x7d\x4d\x4c\xf7\xe1\x74\x1e\x4e\x37\x01\ \xff\xb2\xb8\xa3\x7e\x1b\xaa\x4c\x92\x33\x4b\xbb\xb9\x22\x63\x62\ \xcd\x15\xdb\x37\xfb\xbf\x46\xf2\xb0\xf0\xcd\x8b\x9f\xc9\xa8\x48\ \x9b\x35\x1c\x8a\x2d\xfc\x01\x33\xe7\x13\xf5\xbb\x4e\x67\x38\x73\ \x92\x16\x6a\xbd\x6c\x89\x56\xc1\xfd\x34\x85\x7b\x11\x70\x44\x11\ \xb4\xeb\x84\xb7\xff\xbe\x86\xdd\xa2\xbd\x1e\xef\x25\x51\x31\x96\ \x80\x2f\x96\x4a\xa5\xcd\xce\xcd\x64\xa7\x16\xbd\x02\xe0\x15\xa0\ \x2e\x0a\x4e\x23\x5c\x2c\xa0\xda\x14\xe6\xed\x36\xdb\x89\x1d\x66\ \x3b\x77\x67\x67\x94\x78\x01\xfc\x75\x5e\xee\xe8\x67\xba\xd8\x62\ \x87\x0a\xf0\x08\x80\x8f\x44\xda\x4a\xbf\xd0\xd7\xd7\x3c\xea\xa8\ \x88\x18\x9f\x0d\x00\x22\xaa\x2c\x01\x3b\x15\xe4\xa4\x17\xbf\x7c\ \x57\x41\xca\x7f\x2c\x65\x35\x17\xab\x8a\x48\x14\x1a\x79\x18\xca\ \x8e\xa8\xc8\xe3\x3b\xf5\xfd\x30\x98\x91\x86\xa7\x01\x3c\x4d\x20\ \xba\x67\x85\x7d\x20\xf9\x70\x31\xa9\x60\xd6\xb0\x8d\x8e\x69\xbb\ \xea\xe5\x6a\x96\x9a\x28\xf7\x33\x71\xbe\x88\x97\xfd\xcb\xdc\x55\ \x16\xc3\x03\x5f\x39\xe4\xfb\xc2\xd2\x4f\x31\x44\x29\x66\xfb\xed\ \x26\xde\x58\x57\x58\x86\x2b\x11\xde\x80\x97\xe5\x63\x55\xd5\x86\ \x85\xd9\xf5\xe7\xf5\x08\x00\x38\x73\x92\xac\xd4\x5d\x1d\x25\x88\ \x86\x12\x29\xdf\xf5\x49\x88\xf8\xba\x21\x5f\x65\x8e\x89\xdc\xa5\ \x35\x83\xb7\x75\x8f\xd9\x6d\x90\x27\x67\xe6\xa6\xf2\x97\x4c\xea\ \xeb\xc6\xfc\x15\x80\x5f\x65\x15\xa4\x58\x0e\x56\x56\x0c\x65\x4d\ \x1d\xa9\x10\x55\x92\xa0\x6d\xbd\x36\x17\xee\xad\x4f\x88\x1c\xc0\ \x92\xf4\xc2\x9c\x79\xb9\xf3\x5e\x48\x88\xdc\x73\x45\x84\x0f\x9b\ \xff\x31\xa7\xe8\x44\x13\xc3\x48\x3a\x08\x14\x7b\xed\x80\x56\xe5\ \xae\x9b\x7b\x77\x4f\x58\x6d\xe1\xf1\x72\xfc\x27\xe7\x08\x84\x08\ \x1c\xfe\xc1\xdb\x6e\xc6\xe3\xb7\xfe\x31\x2c\xfd\x03\xc0\xb6\x13\ \x9b\xf0\x97\xcf\x5b\x30\x8f\xdf\x0c\x9f\xbc\x5b\x8a\x03\x7b\x02\ \x9f\x6f\x97\x8e\xea\x8f\x35\x7f\xfd\x3c\xa4\x7e\x3f\xdb\x93\x87\ \xd7\x36\xfd\xa1\xf1\xf3\xa6\xc2\x0a\x7c\xb5\x29\xf0\x65\xfc\x7b\ \x97\x8d\xc3\xb2\x5f\x1a\x02\x05\x5b\xc4\x47\x3b\xdf\xc0\x9b\x5b\ \x0c\x71\x12\x67\x8c\xaf\x37\x55\x8f\xf9\x74\xd1\x96\x60\x5b\x9d\ \x48\x24\x12\xc9\x19\xa7\xdd\x5c\x91\x00\x10\x13\x67\x1c\x7e\xcf\ \xe1\xbd\x61\x1d\xa3\x47\x4c\xab\x02\xe6\x82\x52\x53\x6d\x9c\x0a\ \xe9\xd6\x29\xf4\x39\xe4\xa3\x95\x26\xeb\x56\x25\x12\x89\x44\xd2\ \x66\xda\x55\xb1\xc5\xc6\x1b\x3d\xa1\xfb\x8e\x9a\x4d\x37\xb4\x9d\ \x84\xc8\x6e\x61\x99\x67\xab\x28\x37\xc6\x30\x0c\xea\x33\x30\xe4\ \x7e\xf7\x94\x85\x3d\x59\x85\x44\x22\x91\x5c\xd0\xb4\xab\x62\xeb\ \xda\xc3\x38\x47\xb5\x63\xef\x41\x93\x9a\xa1\xd1\x3d\x36\x34\xab\ \xcd\x5d\x2b\xe0\xf5\x18\x3d\xb6\x23\xfb\x1b\x77\xbb\x68\x0d\x0c\ \xc6\x9e\x32\xb3\xed\xa1\x24\x12\x89\x44\xd2\x56\xda\x55\xb1\x75\ \xef\x65\x54\x6c\xe5\x65\x6e\x6c\x3b\x14\xde\x87\x7d\xa8\xee\xc8\ \x8a\x72\xf3\xbd\xb5\xc6\x0c\x1a\x17\x52\xbf\x47\x2a\xf7\xa0\xd6\ \x17\xfe\xb5\x7b\x12\x89\x44\x72\x21\xd3\xae\x8a\xad\x5b\x2f\x1b\ \x0c\xbb\x03\x03\xc8\x5f\xdf\xb6\x40\x89\x60\xf4\x88\x19\xd0\x7c\ \xa5\x26\x30\x73\x43\x12\x01\x63\x13\xf5\x09\xde\x5b\xc7\x9e\x52\ \xe9\x86\x94\x48\x24\x92\x70\xd3\xae\x8a\xcd\x6a\x25\x74\xee\x6a\ \xb4\xda\x3e\xfd\x72\x6d\x58\xc7\xe9\x11\xdb\xaa\x3d\x0a\x0d\x98\ \x59\x6c\x71\xf1\x36\x44\xda\x9a\x4b\x05\xd8\x34\xbb\xe5\xfc\x9a\ \x44\x22\x91\x84\x9d\x76\x5b\xc7\xd6\x40\xf7\xde\x56\x9c\x3c\x1e\ \xb8\xf4\xe6\x7f\xdb\xdb\xb2\x43\x45\x70\x86\x74\xb9\x24\xa4\xf6\ \x15\x65\x46\x8b\xad\x57\xf7\xd0\x23\x22\xcf\x46\xe0\x88\xd2\xf1\ \x12\x50\x5c\x90\x38\x5d\x93\x2f\x21\xf2\x05\xe4\x1d\x64\xb6\x1c\ \xc8\x4e\x5b\xbb\xa5\xbd\x64\x92\x9c\x3f\xdc\x9b\x37\xd1\xce\x0a\ \x75\xf1\x2f\xd3\x88\xbe\x5d\x3a\xbb\x68\x57\x7b\xc9\xd4\x9e\x74\ \x00\xc5\x66\xc3\xb7\x5b\x02\xf7\x23\x3b\x7a\xb4\x12\xc7\x4e\x1d\ \x41\xf7\xf8\x90\xf6\x68\x6c\xa4\x57\xec\x40\x74\x8e\xea\xd1\xe6\ \x2c\x1f\x47\x0e\x1a\x13\x15\xd8\x47\x8d\x0d\x49\x26\xc1\x1a\xf6\ \x96\x7f\x1b\x52\x1f\x2d\x21\xca\xaa\xcf\x52\x24\x69\x17\x58\x7b\ \x88\x41\x77\xe8\xca\x5e\x01\x70\x67\xbb\xc8\x23\x39\xaf\x10\x8a\ \xf2\x27\x30\x02\xf6\x09\x54\x98\x7f\x01\xe0\x89\x76\x12\xa9\x5d\ \x69\x77\xc5\xd6\xa3\x97\xcd\x50\xc6\x5c\x37\xcf\x36\xff\xaa\xd0\ \x17\x56\x37\x30\xb2\xbb\x1d\x6b\xf7\xb6\x7e\xe3\xdc\xd2\xe3\x5e\ \xd4\xd6\x18\xd7\xb0\xdd\x30\xe5\xfa\x90\xe4\xf9\xee\xf8\x06\x78\ \x35\x43\x42\x8b\xb0\x13\x6d\x0d\x7d\x23\xd4\xb3\x49\xa6\x2b\xf9\ \x46\x26\xfe\x3f\xb3\x63\xcc\xe4\x06\xf3\x21\x52\x70\x90\xc0\x07\ \x85\x46\x9b\x96\xce\x29\xfe\x2f\x83\x5b\x95\x64\x40\x22\x91\x9c\ \xdf\xb4\xeb\x1c\x1b\x00\x44\x46\x2b\x88\x4b\x30\xa6\xd7\x5a\xbd\ \xa9\x20\xac\xe3\x8c\xea\xde\xb6\xad\xbc\x0e\xed\x37\x5a\x6b\x51\ \xd1\x16\x5c\x79\xc9\xf4\x90\xe4\x29\x39\xf0\x61\x48\xed\x5b\x4a\ \xb4\x35\xfe\xac\x8c\x13\x36\x88\xbb\x81\x31\xc6\xec\x8f\xc0\x76\ \x22\xa4\x81\x71\x2f\x33\x3d\x46\x0a\x56\x64\xb8\x1c\x5f\x65\xe4\ \xd9\xef\x24\xd3\x30\x24\x89\x44\x72\x21\xd2\xee\x8a\x0d\x00\xfa\ \x26\x1a\x83\x30\xd6\x6e\x0e\x6f\x32\xe4\x8b\xba\x4f\x6c\x53\xc2\ \xf3\xc3\xfb\x8c\x56\xd5\xc5\xc3\x13\xa1\xb4\x6c\xb3\x65\x53\x04\ \x6b\xd8\x70\x68\xb5\xe9\x31\x45\x35\xca\xe8\xf1\xb6\x28\xfd\x9f\ \x29\xb1\x11\x09\xcd\x57\x3a\xa7\xe1\x8b\x88\xe8\xa5\x0c\xd7\xc4\ \x67\xda\x5b\x12\x89\x44\xd2\x31\xe8\x10\x8a\x6d\xc8\x48\x63\x66\ \x90\x63\xc7\xaa\xb0\xa2\x64\x59\xd8\xc6\x88\x8b\xe8\x8c\x91\x3d\ \x82\x6c\x8b\x15\x84\x9a\x2a\x81\xa3\x87\x8d\x4a\x25\x7d\xea\x75\ \x21\xc9\xf2\xf5\xb1\x62\x54\x79\xca\x4d\x8f\x59\x6d\xc6\x5b\x52\ \x55\x53\x6d\x52\xb3\x65\xf4\x8c\x4d\x44\xd7\x68\x43\xce\xd8\x73\ \x0d\xaf\xc2\x4a\x0a\x03\xd7\x13\xf8\x51\x93\x6d\x4f\x00\xd0\x42\ \xa7\xcb\xf1\xf8\xd9\x17\x4d\x22\x91\x74\x34\x3a\x84\x62\x4b\xe8\ \x6c\x41\x77\x93\xb9\xb6\x67\xf3\x8d\x3b\xbb\x87\xc2\xf4\xa1\xb7\ \xb5\xaa\xfe\xa6\xa2\x0a\x08\x2d\x70\xfa\xa6\x5b\xb7\x68\x3c\x30\ \xf3\xc7\x21\xc9\xd1\x94\x1b\xd2\x66\x92\x60\xba\xaa\xc6\x90\x48\ \xbd\xc5\x10\x08\xf6\xbe\x3a\xb7\x29\x03\xc7\x0e\x7b\xb1\xf5\x8b\ \x2a\x6c\x29\xa9\x6c\xfc\x73\x1f\xeb\x86\xee\x51\xa1\x2d\x8d\x38\ \x43\x88\xc5\xe9\xeb\x0a\x72\xd2\x8a\x96\x2f\x49\x2b\x5e\x84\xa3\ \xda\x14\x00\xaf\x9b\xd4\xfb\xa9\x73\x65\x52\x8b\x16\x2d\x12\x88\ \x1a\x76\x6e\x0e\x95\x79\xb9\xa3\x6d\x59\x59\x21\x98\xf0\xcd\xe0\ \xcc\x49\xb2\xce\xcb\x1d\x6d\xfc\x81\x74\x00\x9c\x39\x49\xd6\x9f\ \xe4\x4e\x0e\xcf\x16\x1a\x6d\xe0\xae\x82\x94\xc8\x07\xdf\x1d\x16\ \xd1\x5e\xe3\x9f\x4b\x3c\xf8\xee\xb0\x08\x67\x4e\x52\x9b\xb7\x24\ \x99\x97\x3b\xda\x76\x36\xef\xf5\x83\xef\x26\xb7\x79\x1e\xa5\xdd\ \x83\x47\x1a\x18\x32\x32\x0a\xc7\x0e\x07\xce\x67\x15\x6f\xfa\x0e\ \xc7\x2b\x8e\xa1\x5b\x5c\xf7\x20\xad\x5a\xc7\xc8\xee\x76\xf4\x4b\ \x18\x86\xfd\xe5\xdb\x9a\xad\x7b\xe2\xa8\x17\xbb\xbe\x33\x6e\x00\ \x9a\x39\xe7\xd6\x90\xdc\x90\x3e\xe1\xc5\xa6\x43\x66\xfb\x45\xd6\ \x61\x31\x51\x6c\x35\xb5\xa1\x05\x99\x4c\x1f\xf6\x03\xec\x2d\xff\ \x16\x6b\xbf\xf9\x1c\xbb\xb6\xd7\x62\xcf\xb6\x1a\x54\x55\x68\x00\ \x01\x09\x09\x11\x98\x32\x7e\x0c\xee\x9d\xe1\xc4\xb4\xd1\x57\xe3\ \xf9\x92\xff\xc3\xb1\x03\x1d\x3b\x31\x73\x76\x46\x89\xf7\xf6\x55\ \x63\x32\xa2\x6a\x22\x67\x02\xe8\xe4\x77\xc8\x4a\x9a\xe5\xe7\x00\ \x16\x9a\xb5\x73\xba\x26\x39\x98\x79\x16\x11\xdb\x33\x60\xb7\x03\ \xde\x4e\x4e\x97\xa3\x92\x41\x5f\x29\x8c\x17\xdc\x9d\xa2\x5e\x7d\ \x49\xb7\x1d\x4b\x46\xbe\xe3\x79\x02\x92\x00\x80\x04\x3d\xb7\x24\ \xbd\x30\x07\x00\x32\x56\xd8\x27\x2a\x02\xf3\x18\x34\xb9\xb3\x2d\ \x66\xc2\xc1\xb1\x76\x77\xa6\xcb\xb1\x8e\x99\xd7\x28\x16\xcb\x8b\ \x8b\x67\xad\x3d\xd0\xd6\xf3\xcb\x2a\x48\xb1\x1c\x2c\xaf\x9e\x4f\ \xa0\x64\x06\x8f\x41\x4f\xf5\xe2\xce\x88\x51\x9c\x2e\xc7\x37\x00\ \xbe\x64\xd0\x46\xab\x27\x6a\xc9\xb3\x73\x57\x37\xee\xca\x9b\xe9\ \xb2\xff\x99\x89\xbe\x17\xd0\x91\xc0\x17\xd9\xe9\x45\xf3\xcd\xaf\ \x85\xe3\x77\x20\xcc\x6a\xf8\x4c\x02\x27\x96\xa4\x17\x5d\xd5\x12\ \xf9\x32\xf3\xed\xd7\x43\xe0\x72\x26\xb2\xa3\xa7\x3a\xae\x0a\x5a\ \xa4\xd3\xe5\x38\xc1\x40\x91\x02\x5e\xb2\x24\xad\xb8\x71\xf3\xd6\ \x0c\x97\x63\x31\x11\x26\xe9\xba\x78\x3f\x3b\xb5\xe8\xe7\x66\x7d\ \xeb\xeb\xb3\xc0\xee\x9c\xf4\xa2\x74\xff\x6b\x73\xa8\xbc\xfa\x16\ \x01\x4c\x22\x66\xbb\x8d\xe8\x12\x37\xba\x58\x9c\x2e\xc7\x31\x80\ \x3f\x63\x81\x67\x72\xe6\x14\x07\xfc\xc0\xe6\xe7\x4f\xed\x63\x81\ \xf7\x9d\x86\xcf\x16\xe6\xd9\xcf\xa6\x15\xef\x9b\x97\x3b\x4f\xed\ \x62\xdd\x33\x4f\x10\x26\x11\x23\x19\x84\x4b\x41\xbc\x18\xa0\x94\ \x40\xa9\xe8\x60\x76\x6a\xe1\x4c\x73\x79\xed\xf7\x11\x51\x46\x63\ \x4d\x66\xc1\x04\x1f\x40\x01\x2f\x22\xac\xe1\xff\x72\xe6\x14\x19\ \xa2\xd7\x16\xac\x70\x5c\xa9\x30\x0c\xdb\x6f\x10\x70\xcf\x92\xd4\ \xa2\x12\x7d\x79\xa6\x2b\xf9\x2e\x26\xfe\x61\x63\x81\x60\xad\x26\ \xda\x7d\x79\x14\xcc\xd7\xd4\xde\x9d\x3b\xbe\xbb\x35\xc2\xf2\x3b\ \x30\x4d\x05\xba\x8c\x40\x4f\xc0\x99\xe7\xd8\x49\x0a\x36\xb2\xd0\ \x7e\x99\x9d\x5e\x12\x74\x6d\x15\x81\x28\x23\xdf\x7e\x23\x33\x2e\ \x23\xc0\xde\xd9\x16\x33\xb6\x0a\x5a\x84\xd3\xe5\x38\xce\x40\x31\ \x11\x9e\xcb\x4e\x2d\xfa\xaf\xbe\x9d\x33\xdf\xb1\xa9\xe1\x7f\x05\ \xe2\xae\xc5\xa9\xeb\x37\x12\x88\x16\xb8\xec\xe9\x44\x34\x05\x60\ \x07\x18\xe3\x41\xb8\x33\x3b\xb5\xa8\x71\xc3\xde\xcc\x7c\x47\x12\ \x98\x67\x33\xc8\x0e\x60\x22\x80\xae\x4e\x97\xa3\x0a\xc0\x77\x20\ \xbc\x58\x13\x59\xfb\xd2\xab\xd3\x37\xb7\x28\x55\x53\x87\xb0\xd8\ \x00\x20\x71\x48\xa4\x61\x3b\x1c\xaf\x57\xe0\x49\xd7\x9f\xc3\x3a\ \xce\x35\x43\x7f\xd0\xa2\x7a\x1b\xd6\x56\x18\xca\xba\x74\x8d\xc2\ \xc3\xe9\x8f\x84\x34\xfe\x96\x23\x9f\xa3\xda\x6b\xec\xbb\x81\xe8\ \x18\x63\x20\xcd\xc9\xf2\xd0\x76\x15\x8f\xb6\xc6\xe1\x7e\xc7\x93\ \xf8\xc1\x98\xdf\xe0\xea\x51\xb3\xb0\x20\x6d\x1e\xfe\xf9\xe8\x93\ \xd8\xf3\xc6\x17\xd8\xff\xef\xef\xf0\xc6\x4f\x73\x31\x6d\xf4\xd5\ \x00\xea\x76\xb7\x3c\x17\x78\x75\xfa\xe6\x2a\x62\x7e\x45\x5f\xce\ \xe0\x6b\xcc\xea\x67\xba\x1c\x3f\x07\xc4\x5a\xaa\x8b\xb8\x9c\x8e\ \xd3\x0a\x31\x96\xc0\x76\x26\xce\x8e\x28\xaf\xfe\xfc\xde\x95\x93\ \x03\xd6\x9a\x11\x30\xb4\x21\x78\x85\x89\x6f\xad\xeb\xcb\x7e\x13\ \x09\xfa\x9c\x41\x0f\x03\x98\x0c\x20\x02\x40\x3c\x03\xd7\x80\xe8\ \x51\xa1\x69\x9f\xdd\x9b\x37\x69\x60\x5b\xce\x2b\x73\x65\xf2\xb0\ \x83\x65\xd5\x6b\x01\x2c\x61\xf0\x9d\x00\xc6\x01\xb0\xa1\xee\x25\ \x74\x34\x80\x5b\x08\xfc\x67\x9f\xad\xfa\x8b\x8c\x3c\x7b\xe3\x9a\ \x13\x01\xec\x32\x04\xdc\x10\x6e\x6a\xe2\x0d\xfd\x16\xff\xba\x4c\ \xdc\xec\x5a\x98\xdb\x57\x8d\x89\xc9\xcc\x77\xbc\xc1\x4c\x6f\x33\ \xd1\x0f\x01\x4c\x02\x1a\x9f\xa8\x5d\x09\x98\xc9\xa0\xfc\x4c\x97\ \xe3\xb5\x06\x2b\x4a\x01\x76\x9b\x04\x02\xdd\x64\xd6\xff\xbc\xdc\ \x79\x2a\xe9\xe4\x02\xa1\x71\xbb\x8f\xbb\x73\xc7\x77\x3f\x50\x5e\ \xf5\x01\x03\xaf\x10\x90\x09\xa2\xf1\x00\xac\xa8\xdb\x0d\xbb\x07\ \x40\x37\x90\x42\x05\xce\x7c\xc7\x1f\xfd\x83\x89\x6c\x42\xb3\xf9\ \xf7\xe9\x03\x5d\xf3\xe0\xbb\xc9\xf1\x5d\xac\x7b\x56\x31\xe1\x75\ \x02\x1e\x00\x61\x22\x80\x08\x82\xba\xcf\x28\x2f\xcf\x70\x2e\x4b\ \x0a\xe6\xcf\x9f\x1b\x50\x17\xe4\x26\x41\x15\xfa\x3e\x14\xe2\xab\ \xcd\x1a\xab\x82\x67\x98\x05\x4a\xb1\xc0\x95\x66\xf5\x19\xe2\xba\ \xc0\xfb\xa6\xf8\x82\x3f\xec\x69\xba\xd5\x66\xfd\x1a\x4c\x19\x00\ \x46\x01\x50\x01\xa8\x20\x0c\x63\xc6\x3c\x90\xfa\x65\x46\xbe\xfd\ \x56\xb3\x96\xf3\xf3\xa7\xc6\x65\xb8\xec\xcb\xc0\x78\x93\x80\x07\ \x00\x38\x50\xf7\x3d\x07\x80\x6e\x04\xcc\x04\x63\xa5\x33\xcf\xf1\ \x82\xe1\x3b\xe6\x2f\x1f\xe8\xba\x79\xb9\xa3\x6d\x19\x79\x8e\xb7\ \x08\x58\x06\xe6\x87\xc0\x98\x0a\x20\x9a\x41\x8d\x0f\x3b\xa7\xcb\ \xf1\x63\x66\xac\x63\xd0\x6f\x50\xb7\x9b\x7a\xd7\xfa\x43\x31\x00\ \xc6\x81\xf1\x4c\x54\x4d\x64\xe1\x3d\xcb\xa6\x24\x9a\x9f\x6b\x20\ \x1d\x46\xb1\xa9\x16\xc2\xa0\xe1\x46\x2b\xf7\xad\x8f\xde\x31\xa9\ \xdd\x76\xec\xfd\xae\xc1\xf8\x3e\x29\x4d\xd6\xd9\xb3\xa3\xd6\x60\ \x3d\x5a\xac\x84\x17\x1f\x79\x1a\xaa\xd2\x76\x23\x97\xc1\x58\xf9\ \xcd\xf3\x4d\xd6\xe9\xdc\xd5\x02\x7d\x8c\xcb\xa9\x72\x37\x8e\x96\ \x1d\x6e\xf3\xb8\x00\xa0\x28\x2a\xae\x1b\x9f\x86\xc7\x6f\xfd\x23\ \x1e\xbb\xf5\x09\xa4\x4f\xbc\x01\x5d\xe2\xba\x19\xea\x9d\x53\xa1\ \x85\xa4\x98\x45\x18\x25\x66\x15\xa4\x34\xde\xa4\x79\xb9\xa3\x6d\ \x19\x2e\x47\x2e\xd7\xad\xe7\xf1\xff\xbe\xfb\xa0\xdb\x49\x99\x81\ \x09\xac\x69\xae\x79\xb9\xf3\xcc\x77\xc1\x05\x26\x67\xe6\xdb\xff\ \x8f\x41\xff\x46\x9d\xb2\x01\xcc\x77\xb2\x1e\x24\x48\x7c\xba\xf0\ \x1d\x7b\xaf\x96\x9f\x0c\x90\x99\x6f\xbf\x96\x35\xde\x58\xff\x90\ \xf5\xc7\x53\x2f\xaf\x3f\xc3\x89\xa8\xd0\x99\xef\x98\x0b\x00\xc4\ \xe2\x7d\x93\x2e\x63\x44\x6f\x8b\x21\xef\x5b\xbd\xd2\x1d\xe4\x5f\ \xc6\xac\x34\xf9\x43\x73\xae\x4c\x1a\x10\x55\x13\x59\xc8\x8c\x79\ \xba\x43\xd5\xd0\xbd\x0f\x31\x70\xab\xdb\xdb\xf9\x09\x00\xd0\x88\ \xde\x35\xe9\x2e\x71\xa1\xcb\x6e\xf0\x79\x77\x8a\xdc\x3d\x1e\x40\ \x80\xfb\x49\x21\x5a\x01\x00\x0b\xf2\x93\x2f\xb5\xda\xac\x5f\x10\ \x68\x9a\xae\x99\xf1\xfa\x33\x7e\xb6\x20\xdf\xf1\x60\xb0\x73\x61\ \xe0\x1a\xb7\x47\xfc\x8d\xc9\xa8\x3c\x34\x81\x0d\x30\xee\xea\x0d\ \x56\x94\xcb\xf4\x65\x3f\xc9\x9d\x1c\x45\xa0\x00\x6b\x94\x99\xdf\ \x61\xe2\x0f\x0c\xed\x89\x92\xcd\x65\x31\x9c\x0f\x00\x80\x14\x18\ \xc6\xab\x3f\x32\xd9\xff\x93\x02\xf1\x9e\x79\x3d\x00\x40\x0a\x4e\ \x2b\x08\xb3\x49\xfd\x68\x62\x7a\x4e\xff\x3d\x5d\xb0\xc2\x31\xc8\ \xc2\xbe\x62\x00\xe9\xba\xfa\xc6\xc9\x7e\xc2\xdd\xe8\xa9\x06\x9d\ \xdb\x66\xd0\x35\x5d\xac\xd1\xbf\x05\xb1\xe9\xfa\xa8\xac\x82\x14\ \x8b\xd3\xe5\xf8\x17\x80\x27\x11\xe8\x41\xf4\xc1\x78\x1f\x46\xab\ \xaa\x77\x45\x4b\xdc\xa9\x1d\x46\xb1\x01\xc0\x90\x91\xd1\x86\xb2\ \x43\x87\x2b\xf0\xc1\x66\xb3\xdf\x46\xdb\xb9\x63\xdc\xaf\xd1\x23\ \xc6\x7c\x2e\xa9\xaa\x42\xc3\x46\x13\x6b\xed\x37\x0b\x16\xe2\xaa\ \xd1\x21\x86\xf8\xef\xff\x00\xfb\x4f\x6d\x6f\xb2\x8e\xc5\x4a\x88\ \x35\xd9\x5d\xfc\xa3\x2d\x86\xdf\xca\x05\x0f\x33\xcc\xdc\x7d\x96\ \x83\x65\x15\x8d\x6f\x75\x5d\x22\x62\xee\x26\xe0\x46\x5d\x9d\xe7\ \xad\x02\xbd\x34\x8f\xda\x1b\xba\xb9\x3a\x06\x26\x74\x8a\xd8\x7b\ \x07\xcc\xb1\x30\xd3\x63\xa8\xd3\xff\xab\x09\x74\x71\x9f\x84\xe8\ \x4e\x04\x9a\x0b\xa3\xe2\xe9\xef\xf3\xd0\xed\x2d\x3d\x97\x79\xb9\ \xa3\x6d\xcc\xf4\x1c\xea\xde\x50\xfd\x04\xa2\x1f\x7b\xd8\xd3\x53\ \x10\xf5\x03\xe1\x4f\xba\x66\x11\x60\x3c\xed\x5c\x99\x14\x5d\xef\ \x52\x32\xb8\x95\x14\x8d\x2f\xd7\x97\x69\x0a\xeb\x1f\xe8\xc2\xe7\ \xf5\x34\xf5\x80\x04\x34\xcb\x9f\x50\x67\x31\xfa\x93\xe9\x49\x88\ \xee\x2a\x14\x0c\x01\xb0\x29\xe0\x08\xd3\x83\x99\x2b\x93\x87\x2d\ \x4d\x2d\xfc\x12\x30\xde\x27\x1f\xc8\xf0\xe0\x26\x36\x3c\xe4\x2b\ \x4e\xba\x2b\x3f\x01\x00\x85\x39\x07\x80\xff\x8f\xd6\x0b\xc6\x9c\ \x3e\x09\xd1\x9d\x14\x21\x2e\x01\x38\x60\x5b\x10\x62\x7e\x3c\xd8\ \x1c\x0d\x01\xb3\x01\xba\x4b\x57\x5c\x0b\xa0\x56\x21\xd4\x00\x30\ \xec\x1e\x4c\x04\xc3\x75\xac\xb4\xf9\xa6\xe0\xb4\x15\x03\x00\x10\ \x50\xde\x11\xac\x98\xfd\x58\xc7\xe9\xe7\x49\xeb\xe5\x33\xcd\xa4\ \xce\x8c\xc9\xfa\x25\x2c\x0b\x56\x38\x06\x01\x08\xb4\x1c\x05\x35\ \x7d\xdf\x98\x37\xb0\xc2\xa3\xb3\xd3\x8a\x3a\xa9\x24\x2e\x02\xa0\ \xdf\x17\x2c\xde\xe7\x43\x80\x5b\x98\x34\x3c\x05\xf0\x45\xfe\xbd\ \x10\xe8\xee\x08\xdb\xc9\x2e\x1a\xa9\xc3\x00\x6c\xd5\xf5\xf1\x50\ \xe6\xca\xe4\x61\xe6\xe3\x23\x99\x89\x7e\xa6\x2b\xf5\x00\xa8\x51\ \x58\xf0\x81\xb2\xaa\xdb\x00\xdc\x12\xd8\x04\xaf\x7a\x3d\xde\x3e\ \xf0\x68\x3d\x09\xb4\x34\xb0\x29\x5d\xc2\x3d\x95\x05\x4d\x9c\x31\ \x80\x0e\xa6\xd8\x3a\x77\xb5\xa0\x6f\xa2\x71\x1e\xf8\xb7\xaf\x86\ \x37\xd8\x2d\xd2\x12\x83\xfb\x1c\x7f\x46\xcf\xd8\x40\xab\xb6\xec\ \xa4\x0f\xab\x96\x9f\x40\x75\xd5\xe9\xdc\x90\x56\x9b\x82\x87\xee\ \xb8\x0d\x3f\x9e\xfd\xd3\x90\xc6\x14\xac\xc1\xf5\x4d\xcb\x82\x61\ \xba\xf6\x34\xc6\x09\x7c\xb2\x25\xf8\xbc\xdc\x85\x0a\xab\xc2\x74\ \x1e\x8b\x49\x1d\x0a\xd4\x4d\x96\x33\xe3\x57\xba\xc3\x07\x3c\x09\ \xd1\x0f\xfc\x63\x4e\xd1\x89\xe7\xe7\xae\x3d\xa9\x5a\x6c\xf7\x43\ \xf7\x66\x48\x2c\xd2\x9a\x19\xba\x46\x68\x74\xfb\x92\xb4\xc2\xaf\ \x16\x4d\x5b\xed\x5b\x92\x56\xf8\x16\x88\xff\x61\xa8\xa5\x04\xfe\ \x60\x9b\xa2\xb3\x35\xfa\x01\xe8\xac\x28\x10\xbd\x96\x9d\x5e\xf8\ \xb7\x97\xd2\x37\x96\x2d\x4d\x2d\x3c\x92\x9d\x5a\xf4\x73\x10\xf4\ \x5f\x84\x5e\x2c\x2c\x3f\x04\x00\x02\x19\xac\x36\xa6\xc0\x6c\x14\ \x00\xa0\x70\xa0\x62\x63\x50\xc9\x8b\x73\x37\x1c\x0b\x26\xdb\xbd\ \xcb\x27\x8e\x06\x58\x67\xa9\xf1\xdb\xd9\x69\x45\xd9\x2f\x4d\x5b\ \x5d\xbb\x74\x76\xd1\x2e\x66\xf1\x4b\xc3\x30\x1a\xcf\xaa\x97\xc1\ \xf0\xf0\x65\x98\x59\x24\x81\x73\x5b\x0c\xbc\xff\xe6\xdc\xad\x9e\ \x4c\x57\xf2\x4c\xd4\xb9\xc2\xfc\xaa\xd2\xd3\xd9\xe9\x45\x79\x8b\ \xa6\xad\xf6\x2d\x9e\xb3\x7e\x2b\x18\xbf\xd3\x75\x16\x53\xeb\xe1\ \x60\x73\x86\x0d\x0f\x99\x5a\x80\x7f\xe8\x61\x4f\xe7\xec\xb4\xa2\ \xa8\xba\xbf\x75\x45\x20\x98\x59\xbf\x06\xc5\xa6\xb0\xc1\xe2\x3b\ \xf2\x7c\x7a\xd1\x86\x7e\x9b\x8b\x36\x02\x38\xa1\x3b\x66\xeb\x6c\ \x8b\x0b\x50\x62\x1e\x0f\xa6\xa2\xce\x3d\x68\x46\x97\x05\x2b\x26\ \x8e\xf2\x2f\x20\xe6\xc9\xba\x3a\xa5\x27\x7d\x89\xc5\x41\xda\x03\ \x00\xc3\x22\xe6\xe4\xcc\x2e\xfe\x1f\x00\x3c\x97\xba\xfe\x5b\x00\ \xff\x31\x54\x62\x34\xba\xb4\x17\xe4\x25\x4f\x20\x42\xc0\xf7\x9f\ \x80\xd7\x97\xa4\x15\xbe\xf4\xf4\x8c\x6d\xee\xe7\x53\xd7\x6e\x27\ \x90\x7e\x7e\xb4\xf1\x5e\x9b\x60\x41\xdd\x39\x0a\x22\xfe\x35\x54\ \xad\x7b\x76\x5a\x51\x44\x76\x5a\x51\x74\xef\x84\x98\xb7\x49\xa1\ \x5f\xeb\xea\x1f\x25\x55\xbb\xf7\xc5\xb9\x1b\x8e\x65\xcf\x2d\x29\ \xf7\x92\xe5\x21\xe8\xac\x72\x02\x35\xf7\xfb\xec\x58\x8a\x0d\x00\ \x92\xa6\xc6\xc3\x62\x09\x74\x88\x7d\xf9\xd5\x3e\x2c\x7e\x3f\xbc\ \xcb\x94\x7a\xc7\x0d\xc2\xaf\x53\x5e\xc3\xb5\xc3\xee\x80\xa7\x96\ \xb0\x71\x5d\x05\xde\x5f\x76\xa2\x71\xa7\x6c\x52\x80\x8b\x2f\xea\ \x8b\xcf\x9f\x5d\x81\xdf\xde\x1c\xba\x62\xfd\x7c\x8f\x0b\xc7\xaa\ \xf6\xb7\xa8\xee\xa0\x11\x46\x97\xec\xfb\x85\x6b\x42\x96\xe1\x7c\ \xc3\xab\x79\x83\x04\x68\xf0\x10\x00\x70\xbb\x3b\xdf\x0d\x20\x60\ \xcf\x22\x66\x94\xf8\x07\x88\x3c\x77\xdd\x67\xa5\x00\x74\x37\x86\ \xae\x6c\xc6\xdd\xb1\x6d\xe9\xf5\x85\x01\x6d\x58\xf0\x2a\xa3\x18\ \x18\xe3\xcc\x4b\x1a\xd2\xd4\x39\x00\x40\x56\x16\x29\x20\xd2\x2b\ \x60\x30\xf3\x6b\xfa\x32\x12\x30\xbc\x1d\x11\xf3\xcf\xb2\x0a\x52\ \x2c\x82\x8c\x8a\x8d\x80\x29\xfa\x88\x4d\x06\x07\x28\x10\x22\x6e\ \xd2\x0d\xc9\xaa\xf2\x6b\xe8\xbd\xd4\xac\x04\x58\x35\x2c\x54\xb3\ \x9c\x97\xd7\x02\x00\x84\xd1\x1d\x49\x3a\xc5\x96\x55\x90\x62\x01\ \xf3\x54\xff\x32\x05\x58\x01\x00\x02\x58\x64\xe8\x59\x70\xa0\x55\ \xc5\x8a\x61\x7c\x22\xbe\xd6\x44\x26\xff\x1a\x7f\xcb\x4e\x2b\x7e\ \xfa\xa5\xf4\x8d\x65\x01\x5d\x9b\xbc\x20\x00\x34\xfa\x9e\xdc\xc9\ \x01\xb9\x18\x05\x29\x01\x8a\x93\x40\xef\x32\x98\x17\x2d\x62\x01\ \xe0\x63\x7d\x0f\x4c\x9c\xac\xfb\xec\xff\xd2\x21\xea\xff\x4e\xf7\ \x27\x28\xe0\x7a\x10\x68\x8a\xae\xcb\x0f\xdf\x9c\xfb\xa6\xf9\x9e\ \x5a\x75\xec\xcc\x9e\x55\xb2\xd7\xbf\x80\x89\xf4\xd6\x16\x08\xd4\ \x68\x6d\x29\x24\x7e\x63\x90\x1b\xb4\x2e\xe0\xb3\xea\x33\xf4\x81\ \x86\x7b\x1d\x04\x02\xbd\xba\x24\xb5\xf8\x77\xd9\xb3\x4a\x8e\x37\ \x94\x1d\x2a\xaf\xf9\x01\x18\x83\x03\xeb\x61\x63\xf6\xac\x92\x46\ \x97\xe7\x0b\xa9\x9f\x57\x00\xd8\xad\xeb\xee\xf2\xe6\xa2\x33\x3b\ \x9c\x62\x8b\x89\x53\x71\xc9\x44\x63\x7e\xc3\xc7\x5e\x7c\x1a\xa5\ \x55\x27\xc3\x3a\x96\x55\xb1\x61\xce\xa8\xfb\xf0\xe7\x99\xbf\x45\ \x4b\x17\x00\x00\x1b\x60\x49\x44\x41\x54\xf9\xf8\x59\xda\xaf\x91\ \x71\xe3\x1c\xdc\x3a\xfb\x7b\x78\xee\xe7\x8b\xb0\xe7\xcd\x8d\x28\ \x7c\x6a\x2d\x46\xf5\xd3\x7b\x5f\x5a\x8f\x57\x73\xe3\xbf\xdf\xbe\ \xd0\xe2\xfa\xbd\xfb\xdb\x10\xa3\x73\x47\x1e\x3f\x56\x8d\xff\x6e\ \x70\x85\x2c\xcb\xf9\x44\xfd\x03\xc9\xb0\x16\x82\x88\x12\x01\x80\ \x14\x93\xf9\x0b\x82\x71\xb3\x3f\xd2\x2b\x36\xc4\x2a\x3d\xac\xfa\ \x87\x88\x3f\x86\xb0\x51\x66\xcb\x6e\xb3\x8a\xa4\x58\x06\x9b\x95\ \xfb\x73\x78\x4c\xf2\x00\x00\x86\xac\xda\xa4\x6a\x7b\x0c\xe3\x90\ \xb2\xd3\xa4\x8b\x4e\xfb\x2b\xaa\xfb\x6b\x50\x57\x03\xd0\x2f\xbc\ \x4c\x38\x3c\x2e\x69\x4c\xc3\x07\xe7\xca\xa4\x8b\x00\xea\x13\xd8\ \x67\x33\x8a\x8d\x31\xcd\x20\x9b\x22\x02\xae\x63\xb9\x36\xe0\x10\ \x00\xfd\x43\xf6\xf2\xbb\x0a\x52\x22\xc9\xeb\xfb\x10\x46\x57\xed\ \xa8\xfb\x97\x3b\x1a\xe6\x7f\x70\xb0\xbc\x76\x02\x00\xff\xe5\x17\ \x82\x55\xed\x1d\xe7\xca\xa4\x68\x02\x1b\x17\xa0\x5a\xb4\x80\xf1\ \x35\x56\x8d\xa1\xbc\x4c\xa6\x81\x44\x8d\x03\xc0\xfc\xbc\xeb\xdd\ \xa7\x7a\x97\x1d\x29\x11\xa7\x15\xaf\x33\x37\x29\x81\xc0\x01\xf3\ \x97\xfe\xd7\xd1\x6c\x9e\x0d\xe0\x00\xab\x93\xfd\x5c\xaf\x04\x6c\ \x04\x10\x38\x67\x4c\x81\x8a\x0d\x75\x81\x4a\x7e\xe3\x35\xe3\x86\ \x04\x6f\xd2\x97\x10\x60\x96\x14\xb9\xab\x5f\x8d\x69\xfa\x83\x44\ \xf8\xce\xff\x73\x69\x4d\xed\x61\x18\xe3\xcc\x2e\xbf\xab\x20\x25\ \xe8\x76\x27\x66\xdf\x31\x01\x36\x8c\x05\x66\xb3\xcd\x38\xf5\xf7\ \x36\xb2\x3a\xc2\x67\xf0\x44\xf8\xd3\x61\xc2\xfd\xfd\xb9\xe8\xd2\ \x18\xec\xde\x56\x8b\x52\xbf\xac\xff\x15\xa7\x3c\xc8\x78\x66\x01\ \x72\x1f\x79\x3b\xec\xe3\x75\x8b\xeb\x81\x1b\x27\x7d\x1f\x37\x4e\ \xfa\x7e\xd8\xfb\x06\x80\xbc\xaf\x17\xa3\xac\xf6\x78\xf3\x15\xeb\ \x21\x00\x17\x8d\x89\xc1\x17\x6b\x4e\x05\x94\x3f\xf1\xef\xbf\xe2\ \xba\xf1\xcd\x5a\xe1\x17\x1a\x86\xef\x30\x0b\xaa\x0b\x0a\x61\x18\ \xac\x25\x02\x8e\x18\x82\x3a\x84\x72\x02\x14\xf8\x3b\xd5\x14\x1e\ \x0c\xa0\x20\xc8\x98\x06\xd3\x5b\xb1\x7a\xf7\x40\x33\x7a\x95\x04\ \x44\x8f\xa0\x92\x37\x8c\x45\x62\x44\x90\xa0\x9d\xbd\xfa\x02\xaf\ \xc7\xbd\xd3\x6a\x33\x1a\x93\xaa\xc6\x83\x97\xa6\x7f\xbe\xcb\x99\ \xef\x58\xab\x4f\x86\x2b\x84\x7a\x05\xea\x1e\x9c\x80\x4f\x49\xd1\ \xd9\x5e\x47\x97\xce\x5e\x5f\x92\x13\x44\xb6\x85\xb9\x29\xb1\xb0\ \xc1\x70\x0e\xcc\x6a\xa9\xff\x75\xec\x1e\x03\xf8\xbc\x74\x0c\x80\ \xff\xb5\x8d\x8c\x3a\x59\xd5\xe7\xb9\xb9\x25\x3b\x9d\x2e\xc7\x5a\ \x04\xba\xf3\xc8\xa3\x2a\x53\x00\xe4\xd7\x7d\xd4\x52\xfc\x8d\x42\ \x06\xad\xcb\x99\x55\x72\xfc\xde\xe5\x13\x47\x0b\xe3\xeb\xb7\x66\ \xd1\x94\x2a\xff\xf1\x23\x54\x08\x5f\xdd\x4d\xf4\x3f\xbb\xc4\xac\ \x2c\x52\x30\xc6\x34\x6e\x03\xac\x59\x0c\xd7\xd7\x4f\x80\x55\x20\ \x04\xcc\xb5\x2a\xac\x5d\xd6\x20\x2f\x47\x58\xaf\x20\x16\xfe\x37\ \xdc\xe7\x11\x9e\x46\x65\xa6\x0a\xf5\x03\x41\x81\x39\x66\x89\xd1\ \x28\xc8\xc2\xdc\x94\x58\xb2\xf1\x78\xbf\x01\x57\x83\x60\x01\xd3\ \x69\x77\xa5\x9f\x05\x3b\x3f\x7f\x6a\x9c\x85\x11\xb0\x4d\x89\xaa\ \x28\x66\x2e\x53\xbf\x2e\x8d\xd6\x99\x22\x88\x05\x19\x62\x9f\x09\ \x00\x9c\x2b\x93\xba\x01\xaa\x61\x5e\x92\x84\x56\x1e\x78\xaf\xa3\ \xe1\xf3\xa2\x14\x80\xbf\x05\x1b\x19\x59\x56\xdb\x0b\x46\xeb\xaa\ \x5e\x16\xc5\xe4\x5a\xd3\x10\xbd\x7e\x64\xc2\x61\xfd\xef\x93\x89\ \x4a\xf5\x22\x0b\x9d\xa5\xa7\xa7\xc3\x59\x6c\x40\xdd\x26\x9e\xf6\ \xcb\xe3\x0d\xd9\xff\xde\xff\xb4\x24\xec\x81\x24\x67\x9a\xe2\xfd\ \xef\xe3\xc3\x1d\xff\x6e\x75\xbb\xe1\x97\x44\xa3\x47\xef\xc0\xb9\ \xb6\x4d\x5b\xf7\xe0\xc9\x15\xfa\xf8\x81\x0b\x97\xdb\x57\x8d\x89\ \x81\x89\x62\x23\x70\x05\x00\x30\x8c\x8a\x0d\xc0\x93\x3e\x2f\x1d\ \xf2\xff\x33\x8b\xd8\x22\x81\xe0\x8b\x43\x99\x0d\x2e\xd0\x7a\xf7\ \x89\x21\x64\x9e\x98\x9a\x55\x6c\x0a\x63\xb8\xa1\x90\x70\xcc\xdf\ \x25\xd3\x40\xfd\x5c\x98\x61\xfd\x07\x13\x0d\x02\x00\x36\x71\xa3\ \x11\x9d\x0e\x20\x61\x22\xdd\xfc\x1a\xde\x6b\x2a\x89\xb4\x66\xa9\ \x0e\xe2\x4a\x15\x85\x86\xeb\x18\xa8\xd4\x00\x00\x3e\xa5\xee\x3a\ \x12\x60\x78\x63\x27\x9c\x96\x4b\x1f\xed\xa8\x80\x57\x00\x00\x5b\ \x54\xb3\xf1\x55\x1f\x68\x6f\xc0\xf8\xa0\xbd\x30\x09\xea\xdd\x3d\ \x66\x6c\xd0\xfb\x18\x11\xe9\x0d\xba\x40\x94\x60\x9c\x67\x13\x50\ \x1a\xe5\x55\x84\xa6\x9f\x5f\x5b\xeb\xef\xd2\x5c\x9c\xbe\x6e\x37\ \x00\x7d\xa4\xd8\xa0\x7b\x97\x4f\xe9\x01\x00\x5a\x44\xd5\x54\xf8\ \x7d\x77\x05\xf3\xc7\x10\xa4\x9f\x3f\x1d\xd8\xb0\xfc\xc4\x0a\x5f\ \x32\x02\x9e\xd7\xbc\xa5\xd9\xb5\x92\xc4\xad\xcb\xec\xa0\x59\x4d\ \xef\xb5\x20\xa5\xc8\xe4\x5e\x77\x31\xd6\xa3\xa0\x09\x0f\x98\x8d\ \x19\xdf\xa9\x7e\xca\x40\x57\xfa\x07\xfd\x58\xc4\x30\x58\x1c\x84\ \x26\x7e\x9f\xe8\xa0\x8a\x0d\x00\xba\xf6\xb0\x62\xc4\x25\xba\x00\ \x31\x06\x16\xfe\xfd\x67\xa8\xf5\xb4\x3d\x13\xc7\xd9\x64\x7f\xf9\ \x36\xfc\x73\xd3\xef\xdb\xd4\x96\x00\x4c\x4a\x49\x40\x54\x74\xe0\ \x2d\xfa\xc3\x8b\x4b\xb0\x7e\x47\x61\x18\xa4\x0b\xc4\x2b\x3c\xd8\ \x70\x70\xf5\x59\xd9\x4a\x27\x5c\x58\x6b\xe3\xcc\x13\x61\x12\xca\ \xeb\xd7\x51\x75\x32\x3d\xde\x12\x14\x0e\x9e\x64\x93\x0c\xee\xbe\ \x86\x72\x83\xc2\xa1\x16\x24\x28\x65\xb0\x51\x4e\x36\x86\x9c\xfb\ \x8d\x63\xcc\x1c\xc0\x75\x0f\x1a\x52\x4c\x02\x48\x80\xcb\x08\x44\ \x75\x7f\x08\x5c\xeb\x62\x1e\x8e\xdf\x88\x50\x8c\xca\xaa\x55\x30\ \x12\x00\xf3\xb0\x7f\xe6\xba\x79\x36\x67\x4e\x92\x95\x01\x9d\xdb\ \xad\x2e\xcc\x9f\x05\x87\x34\xbe\x2a\xa2\xdb\x94\x2c\x95\x2d\xda\ \x07\xd0\x99\x13\x04\x1e\x5f\xff\x32\x05\x26\xd2\x05\xa6\xb0\xf1\ \x3a\x12\x8c\x61\xff\x8a\xd7\x01\x00\x22\x30\x02\xd4\x67\xf5\xc6\ \x7e\x66\x65\x7c\xa6\x1f\x93\x35\xdf\x54\x00\x60\xc1\x3a\xd7\x78\ \x73\x6e\xc8\xd6\x43\x4a\x68\xd7\x9a\x84\xd6\xe2\x3d\xb2\xea\x23\ \x3e\x9b\x7d\xe9\x0b\x8e\xd2\xe4\x7d\xed\x90\xae\xc8\x06\xc6\x4d\ \x8a\x43\x75\xa5\x86\xbd\x3b\x4f\x2b\xb2\x43\x87\x4e\xe1\xaa\x5f\ \x5c\x8d\x82\x3f\xad\x86\x55\x6d\x73\x76\x98\x33\x4e\x95\xe7\x14\ \x16\x17\xff\x0c\x1e\xad\xed\x4a\x38\x26\x5e\xc5\xf4\xff\x6f\xef\ \xde\xe3\xa3\xaa\xae\x3d\x80\xff\xd6\x99\xc9\x84\x3c\x40\x10\x21\ \x88\x0a\xd6\xd2\x6a\x14\x44\xac\x64\x10\x15\xa5\x55\x14\x45\x5e\ \x16\x3f\xad\xf5\xd3\x16\x2b\x89\x7c\x68\xef\xa7\x9f\xb6\x5e\xeb\ \xe3\x36\x45\x5a\xb9\xf7\x7a\xab\xd6\xda\x4a\x82\xca\xbd\xf5\xd3\ \xf6\x02\xed\x85\xa0\x05\xc2\x43\x5e\x21\x24\x21\x18\x81\xf0\x1c\ \x9e\x42\x08\x09\x81\x24\xf3\x3e\x73\xce\xd9\xeb\xfe\x31\x49\x98\ \x99\x33\x93\x07\x99\x30\x79\xec\xef\x5f\xc9\xe4\x64\xce\xce\x4c\ \x66\xd6\x9c\xbd\xd7\x5a\x7b\xd6\x75\xd8\xb6\xee\x12\x1a\x2e\x05\ \x97\x28\xfc\x7e\x03\x8f\xff\xe2\x19\xe4\xbd\xb4\x18\xb3\x27\x44\ \xad\x73\x6d\x37\xc1\x02\x47\xea\xca\x51\x76\xb6\x10\x9f\x9f\xdb\ \x02\xbf\xde\xae\xa2\xfe\x6e\x23\x89\xf5\x81\xd1\x2e\x35\x48\x60\ \xdf\xbb\x53\x1d\x6a\x4e\x81\xbd\x1e\x11\x6b\x57\x04\x94\x30\xc8\ \xb4\x76\x15\x89\x21\x5a\xaf\xcb\x88\xfe\x4b\xa6\x17\x36\x0b\x44\ \x5b\x13\x0b\x43\xa4\x9c\x65\x73\x69\xfc\xb0\x85\x0b\x49\x69\x4a\ \x44\x68\x91\x93\x7f\x4f\x12\x32\x2c\xa6\x02\x44\x6a\x5a\x87\xc8\ \x9f\x56\x52\x91\xbd\x26\xeb\x02\x18\xa1\xed\x7a\xae\x9b\xf7\xc9\ \xf8\xdb\x15\x9d\xac\xac\x84\xae\xa7\xc0\xb0\x5a\x92\x5a\x9d\xce\ \x62\xa2\x6a\x8a\x7a\x41\xc7\x6b\x00\xc5\x1c\x60\x23\x58\x2c\xc2\ \x09\x04\xd7\xad\x72\x0a\xec\x55\x00\x5a\x0a\xe0\x9b\x03\x45\xea\ \x90\x7e\x77\x72\x68\x99\x03\xe1\xc4\x92\xe9\x25\x07\x83\xe7\x57\ \xaa\x89\x4d\xdb\x46\x31\x40\x2b\xda\x3a\x77\xf0\xae\x0c\x03\xa0\ \x0e\xbf\xcf\xe5\x4d\x2b\xaf\xcb\x29\xb0\xef\x41\x53\xd7\x99\x26\ \xd6\x54\x7f\xca\xc4\xf9\xab\xee\xdb\x0b\x25\xbc\xf4\x41\x90\xb9\ \x0e\x90\xc0\x9b\x18\x34\x3f\x7c\xe0\x64\x07\xf0\x89\x02\x3c\x18\ \xf2\xa8\xee\x6e\xea\x22\xe3\xce\x29\xc8\xaa\x04\x68\xcc\xe5\xe3\ \xf1\x00\x80\xe5\x0c\x9e\x18\xfa\x19\x89\x98\x5b\x9f\x86\xbc\x02\ \x86\x81\xb3\x4a\xf4\x8f\x61\xab\x01\x6a\xb3\xfd\x11\xc1\x88\xdd\ \x79\x22\x02\x83\x39\x07\xf6\x1a\x44\x96\x2f\x30\x76\x83\xa8\xcd\ \xd7\x0c\xb3\x68\xf5\x13\x78\xb7\x0e\x6c\x44\xc0\xc4\x87\x07\xc2\ \x28\xac\x47\xd5\xe9\xcb\x8f\xeb\xbe\x83\x67\xf0\xc8\xab\x53\xb0\ \xf9\x8d\x8d\x9d\x2a\x98\xee\x2a\xba\xd0\xb0\xb4\xfc\x55\xd4\x79\ \xcf\xb5\x7d\x70\x1b\xd2\xfa\x2b\x78\x74\xf6\x60\x1c\x3d\xe0\xc3\ \xc1\x0a\x37\x54\xbf\x80\xdf\x6f\x60\xee\xa2\x97\x90\xff\x8d\x8f\ \xf0\xbb\x79\x6f\xe2\x8e\x9b\xee\x6c\xf7\xfd\x35\xfa\xeb\x70\xd6\ \x79\x0c\x07\x6a\x8a\xb1\xbb\x6a\x13\x9c\x6a\x64\x56\x72\xcf\xc1\ \xc4\x77\x44\x69\x95\xa2\xa9\x83\x52\x2b\x9a\xbe\x3e\x85\xc8\xa4\ \x0c\xc6\x5f\xf3\x66\x96\xc4\x7d\x27\x00\x02\x51\x36\xb2\x4c\x9f\ \x22\x85\xd2\xf6\x8b\x54\x40\x9c\x89\x72\x61\x67\xad\x1d\x3f\x7e\ \x28\x80\xb0\xca\x7c\x6b\x86\x32\x4c\x8f\x56\x47\xcf\xc1\xb5\x0d\ \x06\xf3\x0b\x6c\xdf\xc0\x40\x58\x47\x09\x32\x30\x89\x95\xf0\xbe\ \x4b\x0c\x2a\x69\xca\x0a\x8d\x29\x25\x09\xa7\x54\xf3\xce\x4d\x00\ \xac\xaf\x75\x74\xf7\x6f\x26\xac\x27\x46\x68\x8b\x2f\x6b\xaa\x37\ \x79\x02\x2b\xe1\xa9\xfc\x24\xb8\xa5\x25\x17\x83\x4f\x45\x79\xaf\ \x25\x8b\x35\x69\x7e\x5b\x63\x6f\x76\xa5\x5d\x60\x10\x9c\x8e\x0c\ \x0d\x6c\x10\x02\x93\x60\x31\x06\x47\xac\xf9\x9c\x6d\x4a\x38\x09\ \xa3\x0a\xed\x33\x1b\xd9\x0c\x84\xa7\xf4\x4f\xf8\xfe\x86\xb1\x69\ \x29\xe8\x17\x7a\xbf\x97\xb7\xfa\x60\xda\x06\x0a\x59\x4b\x23\xba\ \x7f\xe1\x42\x52\xe8\xae\xac\xd0\x85\x42\xcf\x25\xcd\xbb\xe3\x4a\ \xfe\xa0\xd6\x24\x25\x25\x9d\x30\x74\xf3\x93\x2d\x84\xf2\xca\xd2\ \x59\xbb\x0e\xc5\xfb\x7c\x08\xbe\x3e\xc3\x03\x9b\x82\x95\x79\xd3\ \x4b\x3a\xdd\x6e\xaa\xfb\x45\x85\x08\x8a\x02\x3c\x30\x65\x20\xb6\ \xae\xab\xc7\xf9\x90\xbd\xd1\xf6\xec\x3d\x81\xc7\x73\x9f\xc0\xba\ \xd7\xd7\x75\xaa\x77\x63\xbc\x35\xf8\x2f\x60\x49\xd9\x4b\x38\x59\ \x7f\x20\x6e\xf7\x69\xb1\x12\x32\xc7\xa6\xe2\xd6\x31\xa9\x70\x36\ \x68\x70\xd6\x1b\x68\xac\xd7\x71\xe6\xd2\x29\x3c\xf1\xea\x53\x18\ \x74\x4d\x3a\x46\x5c\x3f\x0c\x5f\xbb\xe9\x16\x8c\xbd\xe5\x4e\x8c\ \x1f\x65\x47\x7a\x4a\x3a\xfc\x9a\x07\xd5\xee\x93\xa8\x72\x1e\x47\ \x95\xf3\x18\xaa\x9c\xc7\x63\xee\x2a\xd0\x13\x11\xd3\x43\x51\xae\ \x74\x76\x37\xa7\xf3\x13\x70\x8a\x23\x0a\x60\x59\x09\x4f\xff\x8f\ \x97\xec\x82\x7b\x47\x03\x86\xa9\x08\xd3\xa6\xa6\xb4\x19\xd8\xac\ \xc4\x67\x0c\x36\xbf\x7d\xeb\xc2\x32\x1c\x11\x81\x4d\x87\x65\x78\ \x44\x56\x38\x00\x80\xd9\x38\xd5\xfc\xb5\x60\x2a\xa4\xa6\xf6\x5f\ \x2d\x48\x79\x90\x88\xd3\x42\x2f\xbe\x28\x46\x56\x60\xa8\x77\xa7\ \x96\x38\xa3\x5d\xf9\x32\x6b\x37\x02\xe8\x50\x60\x83\xa0\x75\x20\ \x0e\xeb\x5d\xc9\xa0\x07\x00\xba\x2f\x62\x06\xae\x25\xb0\xc5\x0a\ \xac\xba\xa6\x8e\x04\xd0\xae\xc0\x76\xa5\x04\x50\xa8\x20\xbc\x0e\ \x92\x14\x7e\x80\x98\x32\x42\x47\x4b\x88\x3e\x9d\xbb\x6c\x66\x45\ \x43\x4e\x81\xbd\x1c\xe1\x35\x78\xe3\x53\xfd\xc9\x0f\x70\xc8\x7b\ \x2f\x31\xb7\x94\x06\x10\xd1\x36\x06\xff\xb8\xe5\x68\xc6\x98\xea\ \x71\xe3\xef\x07\x5f\xce\x18\x25\xc2\x96\x15\x73\x2a\xa3\x7e\xdc\ \xe8\x8c\x3f\x3d\xb1\xa3\x3e\xa7\xc0\xde\x80\x88\x29\x7c\x8b\xc5\ \x18\x09\x20\xee\x81\x8d\x09\xa7\x88\x23\xfa\x88\x32\x5d\xd1\xeb\ \x33\x7b\x95\xfd\xeb\xa4\x1b\x35\x79\x73\xca\x1b\x81\x1e\x10\xd8\ \x80\xe0\x1e\x65\x93\x1e\x1b\x84\xad\xff\xac\x47\x6d\xf5\xe5\xe7\ \xb3\xb8\xfc\x30\x66\x2e\x9a\x8e\x35\xbf\xea\xf8\xce\xd8\x5d\xe1\ \x68\xdd\xe7\xc8\x2f\x7f\x05\x2e\xb5\x6b\x5e\x6f\x8a\x02\x0c\xbc\ \x36\x09\x03\xaf\x8d\x36\x05\x7b\x09\x2e\x5c\x42\x51\x5d\x39\x8a\ \xea\x3e\xea\x92\xf3\x77\x27\x3f\x5e\x65\x1f\xcc\x0a\xcc\xdb\x35\ \x10\xde\x69\xfe\x92\x99\x2b\x40\x34\x2b\xec\xe7\x8c\xd9\x0b\x17\ \xd2\xcb\x91\x53\x7c\x9d\x46\xc6\x83\xa6\x18\x4b\x28\x0a\x6d\x54\ \x1c\x4b\x9d\xfa\x95\x63\x83\x92\x4f\x9f\x88\xac\xe9\x61\xdd\x18\ \x05\xe0\xf3\xb0\xdb\x98\x6f\x8c\xb2\xa5\xea\xc9\xfc\xd9\x7b\xce\ \x37\x17\xb8\x25\xd9\xc4\x46\x5d\x8b\xcc\x10\xe4\x07\x99\x11\xd6\ \xda\x87\xb9\xed\xc0\x06\x00\xc4\xa8\x88\x6c\x3f\x45\x44\x73\x00\ \x74\x28\x93\x8b\x34\x7d\x13\x6c\x16\x1d\xa1\xef\x3b\x0a\xbe\x05\ \x0e\xcd\x0e\x84\x93\x6b\xc5\xf6\xe6\x6f\xde\x9d\x5a\xe2\xcc\x59\ \x63\x37\x3d\x36\xa4\x28\xb3\x11\xd9\xed\x24\xce\x6e\xbc\x26\x75\ \xd7\xb9\x46\xaf\x0b\xa1\x65\x08\x0c\x3b\x83\x23\xda\x91\xc5\x7e\ \x1c\x99\x69\x23\x51\x58\x9a\xff\x00\x66\x84\x4e\x4f\xaa\xa9\x9a\ \xb5\xb8\xf9\x1b\x12\x96\xed\xac\x84\x55\x46\x28\xcc\xf4\x8b\x88\ \xfb\x8c\xfb\xfa\x5a\xcb\xf9\x19\x9f\x9b\x5a\x8d\xb1\x32\x1b\x30\ \x17\xd9\x77\xfa\x5c\xc1\x4c\xdd\x88\xc4\x10\x9e\xb9\x70\xeb\xe4\ \x9f\xe7\x3e\xb4\x25\xb2\x3c\x24\xaa\x17\x0a\x26\x3c\xce\xcc\xbf\ \x26\x05\xe3\x61\xb3\xf8\xb2\xd7\xd8\x57\x27\x59\xf9\x67\xdd\xe7\ \x52\xa7\x0d\x56\x2b\x61\xf2\xb4\x41\xb8\x7d\x5c\x1a\x42\x2f\xd0\ \xb6\xec\xda\x8f\x7b\xfe\xc5\x8e\xca\x33\x5d\xfa\x3f\xde\xa6\x4d\ \xc7\xff\x8a\xb7\x8b\x7f\xdc\x65\x41\x4d\xba\x2c\xe7\xd3\x7b\x52\ \x35\xa2\x7c\x98\x33\xa3\x8e\x0e\xaf\x28\x6b\xa9\x07\xb1\x24\x25\ \xbf\x07\xa0\x21\xe2\x98\x51\xd5\xe3\xb2\xb2\x11\x47\xcf\xad\xbc\ \x7b\x08\x18\x91\x9d\x37\xc0\xcc\x0b\xdb\xf3\xfb\x2b\xe6\xac\x30\ \xc0\x64\xea\xf0\xae\x10\x99\xf6\x47\x22\x62\x53\x0f\x44\x66\x7e\ \x3d\x34\xb3\xf1\x8f\x8f\x97\x9d\x47\x64\x4d\x54\x30\x63\x31\xe4\ \xf1\xe2\x73\xf9\x33\xcb\xda\xf5\xa2\x61\x85\x22\xbb\x7a\x00\xa0\ \x67\xe6\xaf\x19\x1f\xb5\x1d\x54\x2c\x4d\x9f\xa6\x8b\xc3\x6e\x6c\ \x6a\x88\xdb\x72\xaf\x84\xf5\x79\xd9\xe5\x61\xc9\x39\x2c\x78\x91\ \x79\x50\x9c\xd3\x89\x29\xc6\x76\x69\x7a\x73\xdd\x1c\x71\x73\x3f\ \x00\xa1\x5b\x23\x05\xac\x5a\x6a\xcc\x7d\xa8\x14\x45\x44\xa9\x67\ \xa3\x27\x2f\x7f\x89\x92\xb7\xe6\x14\xb7\xac\x55\xbe\x3f\x6b\x67\ \x2d\xcc\x57\x47\xe1\x5d\x3d\x58\xef\xb2\xc0\x16\xed\xb9\x66\xf0\ \xb3\xc1\xee\x33\xf1\xa5\x23\x69\x09\x80\xc8\x3a\xa8\x11\xe7\x1a\ \xbd\x3f\x69\xcf\xef\xcf\x5d\x3d\x6e\x20\x83\xff\x16\xd2\x5b\x35\ \x85\x18\xdf\xd5\x35\xe5\x9d\x1e\x71\xc5\xd6\xcc\x62\x21\xdc\x65\ \xef\x8f\x91\xa3\x52\x50\xba\xb5\x11\x97\x2e\x04\xff\xff\x8f\x38\ \xce\x63\xd2\x82\x59\xf8\xe1\xcc\x69\x78\xf3\x87\x6f\x5f\xd5\x75\ \xb7\xe3\x97\xf6\xe1\xd3\x23\x1f\xe0\x60\x6d\xe9\x55\x3b\x67\x1f\ \x64\xc9\x5e\x9d\xf5\x43\x02\x52\xa0\xd0\x18\xb0\x65\x0a\xc8\x94\ \x2a\xec\x12\x0a\xfd\x20\xf4\x4a\xac\x69\x6a\xe5\x4d\x00\x61\xad\ \x63\x98\xf1\x7e\xce\x9a\xac\x5b\x05\x29\xcb\xd5\x64\xdf\x7e\x5b\ \x63\x5a\x72\x52\xb2\x96\x29\x58\xc9\x64\x46\x26\x11\x7c\x79\x33\ \x4a\x5f\x8b\x39\x1a\xa6\xaf\xe5\x14\x4c\x1c\xa3\x30\xbb\x98\x78\ \xb2\xd5\x66\x7b\x01\xe0\xf0\xb5\x02\x42\x51\xfe\xf4\xb2\xd8\x1b\ \xef\x45\x48\x0b\x28\x1f\x79\x6c\xc6\xaf\x01\xb4\x24\x86\x30\x30\ \x21\xa7\x20\xeb\x3d\x0b\xf1\x1f\x0c\x85\x09\x86\x75\x3e\x22\x5b\ \x3b\x31\x1c\x0d\xda\xcd\x1f\x9b\x86\x08\x14\x12\x2e\xb7\x4a\x32\ \xff\x09\xad\x67\x43\x86\xca\x9b\x5e\xb2\x25\x7b\x75\xd6\x46\x0a\ \xdf\x16\x27\x59\xb0\xb2\x33\x7b\xcd\x84\x97\x89\x95\xcf\x50\x13\ \x38\x2c\xae\xb3\x66\x58\xac\xc8\x64\x16\x99\x0c\xca\x24\x60\x47\ \xde\x8c\xd2\xb0\x5e\x9c\x04\xac\xe5\x28\xed\xa9\x5a\x84\xac\xaf\ \x35\x6b\xd0\x6e\xfe\x78\x90\xed\xcb\x97\x10\xde\xbf\x70\xa8\x20\ \x51\xfe\x42\xc1\x84\x17\xd9\xa2\xef\x1a\x9e\xde\xff\xd8\x59\x97\ \xf7\x26\x8b\xa0\xe0\xf9\x15\xca\x54\x40\xcb\x97\x4c\x2f\xe9\x54\ \x93\x55\x22\x14\x32\x9b\x9a\x01\x87\xda\xd1\xda\x55\x39\x9f\x17\ \xbb\x90\x61\xf1\x20\xbc\x07\x68\xe8\x35\xf7\x16\x44\x22\x6c\x05\ \x23\x33\xc6\xf1\xc7\x5a\xdb\x6a\xa6\xb3\x62\x3c\xd7\x29\x42\x51\ \x76\xe5\x14\x4c\xf8\xa5\x22\x8c\x6d\xe2\x02\x1f\xb1\x66\x28\xc3\ \x74\x56\x32\x59\x41\x26\x31\x67\x82\xb0\x39\x74\x0b\x9a\xf6\xf8\ \x70\x7a\x91\xeb\x85\x35\xf6\xc5\xcc\xf8\x5d\xc4\x8f\xde\xca\x29\ \xb0\xdf\xaa\x90\xf8\x38\x80\xe4\x7d\x42\x78\x2c\xc9\x6c\xcb\x14\ \x16\xca\x54\x58\x64\x32\x91\xc8\x9b\x5e\xfa\x52\x12\x27\x8d\x05\ \x45\x4b\xfb\xe7\x47\x7a\x54\x60\x6b\x36\x68\xb0\x15\x8f\xce\x1e\ \x8c\x23\xfb\x3d\xd8\x57\xe6\x86\xae\x33\x34\x4d\x60\xe9\xca\x35\ \x58\xbb\x73\x2b\xf2\x7e\xf6\x36\x1e\xbc\x23\xea\x2e\x11\x71\x73\ \xe8\x42\x19\xd6\x1e\x5d\x86\xa3\x75\x9f\xb7\x7d\xb0\xd4\x59\x56\ \x22\x5a\x06\xc0\xdc\xef\x20\xc8\x4b\xc4\xd3\x96\x3e\x59\x6a\xaa\ \x83\xf0\xa5\xf8\x7f\x9f\xe2\xeb\x37\x0d\x30\xcd\xe5\xff\x54\x61\ \xfe\x69\x8a\xaf\x1f\xc3\x66\x90\xe0\xe0\x34\x00\x11\xc0\xe0\xad\ \xad\x8e\x86\xf0\x1c\x60\x3c\x27\xa8\xf9\x5b\xd3\x01\x87\x85\x41\ \x1d\xba\x2a\x7c\x6b\x4e\xb1\x2f\xbb\xc0\xfe\x2c\x05\x7b\xf9\x85\ \xac\x71\xd0\x02\x83\x69\x41\xb0\xa7\x87\xe9\x8f\xbf\xa8\x40\xc9\ \x8e\xd6\x56\x89\x88\x0a\xc1\x1c\x75\xcf\x33\x00\x50\xda\xb1\xbe\ \x16\x7e\x7f\xd6\x9f\x03\xc6\x3a\x84\x64\x35\x02\x48\x21\xe6\x77\ \x00\x03\xc8\xb0\xb0\x02\x6e\x4a\xa0\x6c\x4a\x85\x21\x98\xb6\xa4\ \x30\x88\xd6\x29\xcc\xff\x1e\xe3\x34\x86\x95\xcd\x01\x77\xc5\x9c\ \x15\xc6\xbc\x4f\xec\x0b\x14\x81\x7f\x20\x7c\xfd\x67\x30\x83\x3f\ \x82\x61\xc1\xb9\x46\x2f\x2b\x00\x31\x38\x58\x63\xc1\x00\x13\x77\ \x3a\xc1\xc2\x20\x14\x2a\xad\xec\xe5\x44\x64\xae\xcf\x0b\x95\x97\ \x5d\xae\x65\x17\xd8\xb7\x11\x10\x75\x3f\x37\xc1\xe6\xd6\x5b\xc4\ \xbc\x2d\x32\x9b\xb2\x05\xc7\x7f\x4a\xd0\x74\xfe\xe8\xcf\x75\x3a\ \xc0\xef\x09\x45\x01\x32\xc0\x3a\x40\x20\x6e\xe9\x6b\x40\x1c\xb5\ \xa3\x49\x9b\xd4\x01\xa9\x7f\xb2\x35\x7a\x67\xc0\xfc\x61\x27\x47\ \xb0\x92\x63\x85\xc6\x20\x1b\x31\x01\xc4\x0c\x0e\x9e\xb6\x04\x00\ \x14\x0b\x79\x62\x54\x60\x3a\x7b\xcc\x54\x64\x24\xa2\x60\x87\x92\ \x27\x9f\x19\x82\xbb\x27\xf6\xc7\xe0\xa1\xc1\x75\xa7\xaa\x73\x4e\ \x4c\xff\xd7\xe7\x71\xef\xcf\xee\xc3\x9b\xab\xdf\x88\x7b\x1b\xae\ \x2a\xe7\x71\x2c\xde\x36\x17\xef\x14\xff\x44\x06\xb5\xc4\xd3\x98\ \xf0\x21\x59\xe8\xae\x25\xd3\xcb\xb6\x47\x3b\xe0\xcf\x53\xf6\x7a\ \xea\x03\x23\x1f\x60\xa2\x57\x10\xb1\x4d\x4d\x13\x53\x5c\x22\x8a\ \xb2\x8a\xd5\x6e\xbc\xcc\x97\xe2\xbb\xe7\x4a\xb2\xc8\xf2\x67\x94\ \x16\x1a\x64\x19\x0f\xa0\xed\xcc\x23\x42\x91\x30\xe8\xae\xf7\x67\ \xee\xda\x1a\xed\xc7\xf5\xaa\x7b\x27\xa2\x6f\xa9\x03\x00\x9a\x2d\ \x49\x69\xf7\xd5\x24\x00\xe4\xcd\x28\xde\x6f\xb1\xda\xc6\x20\xfa\ \xce\xe5\xc1\x11\x45\x12\xe6\xdb\x62\x75\xfb\x6f\xba\x83\xe2\xf7\ \x66\x95\x46\x4d\xd3\x5d\xfa\x64\xe9\x67\xc2\xa0\x31\xcc\xd1\x5a\ \x55\x45\x3f\x3f\x8b\x28\x19\x39\x1d\xb4\xf4\xc9\xd2\x93\x60\xc4\ \xdc\x99\x98\x15\xa3\xcd\x0f\x08\xc4\x14\x6b\xcc\xde\xc6\x80\xc7\ \x34\xd5\xc3\x86\x88\xfa\xbf\x0c\x00\xcc\x51\x1b\x34\xc7\xd5\x95\ \x3c\xd7\x8c\x2b\x7b\xac\x97\x3d\xb4\xc5\x3f\xfc\x8b\xb2\xc9\x0c\ \x7a\x11\x51\xb6\x0b\x8a\x7e\xae\xe0\x6d\x7c\xde\xd8\x8b\x28\x49\ \x2d\x04\xfe\x73\x8f\xbc\x62\x0b\x95\x92\xaa\xe0\xb6\x3b\xd3\x70\ \xdb\x9d\x69\x70\xbb\x0c\x7c\x79\xcc\x8f\xd3\xc7\xfd\xa8\x3c\x74\ \x16\x95\x87\xf2\xf0\xc6\x87\xf9\x18\x7d\xdb\x08\x7c\xfb\xa1\x19\ \xf8\xd1\xb7\xb2\x91\xde\x2f\x66\x71\x7c\xbb\x08\xd6\x71\xaa\xe1\ \x60\x9c\x46\x2f\x45\x12\x8c\x1a\x02\x4c\x2f\x76\x02\x58\x00\x97\ \x88\xf8\x2c\x01\x67\x18\x74\x46\xe8\xb4\x39\xb2\x19\x71\x34\x4d\ \x57\x34\x8b\xe7\xaf\x1a\xff\x09\x5b\x68\x26\x33\x65\x22\xb8\xf1\ \xe2\xad\x00\x02\x04\x1c\x63\xb0\x03\xa4\x38\x58\xc0\xc1\x64\x5a\ \x9f\x8a\x1c\xcc\x09\x00\x2e\x30\x32\x00\x54\x13\x68\xaf\x20\x7c\ \xa1\x18\x5c\xb6\x64\x56\xd9\xae\xe8\xbf\xc4\xc7\x01\x2a\x35\xdf\ \x16\xee\x83\xe9\xc5\xc7\x16\xac\x9c\x3c\x41\xb7\x79\xa7\x83\xe8\ \xee\xa6\xc4\x8a\x71\x08\xa6\x42\xee\x65\x46\x05\x11\xf6\xd4\xab\ \x23\x97\xb7\xd6\x00\x77\xc5\x9c\xca\x40\x76\x81\xfd\x23\x02\xb2\ \x00\xbe\x09\xe1\xfd\x21\x8b\xde\x9d\x5a\xe2\x8c\xf5\xbb\xb1\x34\ \xa5\xd7\x7f\xef\x85\x35\x59\x1f\x43\x60\x92\x00\xdd\x4e\x84\x4c\ \x00\xb7\x00\xa8\x03\xe1\x18\x98\x1d\x4c\x8a\x43\x61\x38\x0c\x81\ \xe8\x9d\x04\x18\x1f\x80\xcc\x4d\x73\x05\xd1\x7f\xb7\x76\xfe\xa5\ \xb3\x4b\xce\x12\xe8\xd1\xec\x35\x59\xdf\x26\xe6\x2c\x06\x65\x82\ \x90\x09\xc6\x48\x00\xe7\x19\xec\x50\xa0\x38\x98\xd8\x01\x01\x07\ \x59\x45\x11\x00\x08\xa1\xa9\xb0\x58\x4c\xff\x53\xaa\xc7\xda\xae\ \xcc\x42\x56\x68\x19\x31\xcf\x40\xb0\xa0\x38\x34\x71\xe4\x64\xde\ \xb4\xf2\x68\xbd\x0d\xc3\x58\x14\x63\x9d\xc1\xca\x77\x4c\xf7\x0b\ \x54\x44\xcb\x6e\xcc\x9b\x5d\x5e\x9d\x53\x60\x5f\x8d\xc8\x54\x78\ \x40\xf8\xd3\xfc\xe6\xa9\xcb\xa0\x83\x40\x44\x39\x07\x2b\xa6\x0f\ \x10\xc2\x0a\x27\x0c\xd3\xeb\xcb\x14\x50\xda\x7a\xae\x09\x70\x30\ \xc3\x01\x62\x07\xb3\xe2\x30\x94\xa4\xd0\xff\x7b\xd3\x63\xad\x58\ \x95\x98\x45\xb2\x4d\xcb\x07\xff\x35\x6f\xd5\xbd\xff\x54\x14\x31\ \x9b\x80\x4c\x66\xce\x04\xd1\x6d\x00\x74\x30\x1f\x03\x29\x0e\x66\ \x38\x48\xe1\x63\x2c\x78\x2f\x10\xbc\x1a\x5e\x50\x90\xf5\xa8\x0e\ \x7a\x01\xc0\x0f\x40\x38\x09\xe0\x83\xeb\x07\xa4\xfd\x85\xd2\x1f\ \x1b\xd1\xa1\x4d\x93\xe7\x3c\x97\x61\xda\xe9\xba\x3b\x5a\xf7\xf7\ \x8b\x61\xbd\x26\x01\xe0\x5b\xf7\xdf\x85\xd5\xaf\x76\xbe\x91\xf0\ \x4b\x85\x4f\x74\xa8\xf7\x63\x5f\x72\xe8\x0b\xef\xd8\xed\xb9\xfb\ \x4d\x35\x3d\xdd\x11\x81\xa8\xb5\x76\x52\x00\x90\xb3\xc6\xbe\x35\ \xb2\xf7\x22\xc0\x2f\xe7\xcd\x28\x8b\x35\x9d\xd6\xad\xcc\xdd\x3a\ \xb9\x9f\xad\xd1\x7b\x10\x21\x6f\xc8\x04\xfc\x60\xc9\x8c\xd2\x3f\ \xc7\xeb\x1c\xed\x79\x1c\xbb\xd2\xd5\x38\x3f\x81\x28\xbb\x20\xab\ \x08\x21\x8d\x88\x19\x94\x9b\x3f\xa3\xe4\xf5\xae\x3c\x6f\x77\x73\ \x35\x9f\xeb\xce\x9c\xab\xc7\x4e\x45\xb6\x25\x63\xb8\x79\x4f\xb3\ \xbd\x87\x8f\x46\x39\xb2\xe3\x46\x67\xb4\xd6\xf8\x5d\xea\x29\x12\ \xf9\x66\xdc\x15\xe6\xae\x1e\x37\x30\xd8\xc8\x36\x28\x67\xf5\x3d\ \x5f\xb5\x35\x7a\xff\x80\xf0\xab\x8c\x3a\x9b\xed\xd2\xf2\x78\x9e\ \x37\xd1\x8f\x63\xbc\xcf\xbf\x60\xe5\xe4\xf4\x79\x6b\x26\x64\x34\ \x6f\xf4\x39\xef\xff\x26\xdc\x38\x6f\xb5\xfd\x75\x84\x77\xd7\xd7\ \x92\x92\x44\xac\xde\xd1\xbd\xd6\xd5\x7c\xae\x3b\x73\xae\x1e\x3f\ \x15\x19\x4b\xc6\x0d\x36\x1c\xde\x17\x7e\xf5\x5b\x57\xe7\xc5\xf1\ \x1a\x07\xbe\x9a\x11\x7d\xb3\xd7\xf6\x1a\x9d\x31\x11\x45\xa7\xe5\ \x16\x32\xd1\x18\x01\x25\xbe\xf5\x61\x52\xbb\x25\x2b\xb6\xef\xb0\ \x81\xf7\x73\x0a\xec\x5e\x80\x1b\x40\x96\xe1\x91\xc7\x30\xd1\x4b\ \xef\x4e\x75\xb4\xd9\x1e\xa9\x2f\x33\x92\x3d\xf7\x2b\x4c\xeb\xb2\ \x0b\xb2\xfc\x39\xb0\xd7\x29\x96\x28\x45\xfd\x8c\x37\x9a\xca\x2a\ \xa4\x6e\xa8\xd7\x5e\xb1\x0d\xbd\xde\x66\xda\x1d\x00\x00\xfe\xbe\ \xb3\xf3\x1f\x56\x6f\x1f\x6a\xc7\x80\xe4\xc1\x6d\x1f\xd8\x07\xb1\ \xcd\xe8\x7c\x1f\x31\xa9\xb3\x52\x23\xd6\xd4\x00\x00\x0c\xfc\x21\ \x7f\x7a\x49\xef\xaf\xde\x8f\x9f\x7e\x40\xd4\x4e\x35\x2b\xf3\x67\ \x96\xb5\xab\x46\x51\x4a\x8c\x5e\x1b\xd8\x92\x6c\x84\x6b\x87\x98\ \x3b\x74\x7c\x56\xd1\xf9\x16\x6b\xc9\x96\x14\x3c\x7b\xd7\x2f\x3b\ \x7d\x3f\xbd\x8d\xae\x33\x8a\x73\x2b\xe3\x9b\x86\x2a\xb5\x1b\x0b\ \x9c\x6f\xca\xe0\x0b\xed\xbc\xed\x06\xa1\x88\x88\xa6\xe4\xcf\x28\ \x35\x15\x77\x4b\x66\xcc\x96\x7a\x80\x0e\x23\x3c\xab\xd4\x07\xa0\ \x9c\x88\x9f\xca\x9b\x51\xfa\x74\xa2\xa7\x5f\xa5\xd6\xf5\xda\xa9\ \x48\x00\x18\x76\xa3\x0d\x17\x6b\xc3\x13\x48\xf6\x1f\x69\xb3\x75\ \x5f\xbb\x8c\x1d\x36\x09\xf6\x9b\xa6\xa2\xf4\x4c\xcf\xda\x1f\xae\ \x2b\x05\x54\x6e\x57\x1b\x9c\x9e\xa4\x5e\xf5\x4c\x49\x1b\x32\x24\ \xec\x03\xa0\xe7\xc2\x90\xe8\xdb\xd6\x24\x58\xde\xcc\xd2\xd5\x00\ \x56\x03\xc0\xfc\x55\xf7\x0d\x55\x92\x35\x45\x4e\x97\x75\x5c\xde\ \x8c\x5d\xa5\x40\xb0\x40\xfa\xf9\x95\x13\xaf\x4d\x4a\x41\xca\x92\ \x69\xbb\xce\xc9\x60\xd6\x73\xf4\xda\xac\x48\x00\x70\xd6\xeb\xf8\ \x74\xb9\x39\x7b\xf1\xc3\x7f\x5b\x8c\xa7\x27\x3e\xd3\xe9\xfb\xf7\ \x6a\x2e\x2c\xdf\xff\x16\x4a\xcf\xae\x07\xc7\xb9\xf5\x60\x4f\xd4\ \x78\x49\xf7\xfc\xef\xdc\x3d\xed\xde\x93\x49\x92\x24\xa9\x2b\xf4\ \xea\x2b\xb6\x01\x83\xac\xb8\x6e\x58\x12\xea\xce\x87\x7f\xc0\x5e\ \xfa\xcf\x65\x71\x09\x6c\xa9\x49\xfd\x31\xf7\xee\x5c\x4c\x19\xf5\ \x2c\x76\x57\x6d\x40\x9d\xa7\x1a\xb5\xce\xf3\xf0\xf8\x9d\x48\x4f\ \x49\x47\xbd\x5a\x8d\x46\xb5\xef\x94\x05\x78\xdc\xc6\x99\x44\x8f\ \x41\x92\x24\xa9\x57\x07\x36\x00\x18\x75\x5b\x2a\xea\xce\x87\x6f\ \xd5\x52\xbe\xdf\x81\x3a\xd7\x05\x5c\xd7\x7f\x48\x8c\xdf\xea\x98\ \x1b\x06\x7c\x15\x37\x0c\x30\x77\xc0\xf9\x9f\x8a\x45\x28\xfe\xb2\ \x7b\xec\x3c\x70\x35\xf8\xbd\x46\x71\xdb\x47\x49\x92\x24\x75\xad\ \x5e\x9b\x3c\xd2\x6c\xc4\xa8\x7e\x48\x4a\x0a\x9f\x3a\xd5\x35\xc6\ \xbb\x9f\x98\x9a\xa9\x4b\x9d\xe4\xf7\x73\x87\x9a\xa0\x4a\x92\x24\ \x75\x85\x5e\x1f\xd8\xac\x56\xc2\xa8\xdb\x53\x4d\xb7\xff\xa5\xb0\ \x00\x86\xe8\x75\xb9\x0e\x09\xe3\xf7\x19\xa2\x08\x07\x36\x24\x7a\ \x1c\x92\x24\x49\xbd\x3e\xb0\x01\xc0\xe8\x6f\xa4\xa3\x5f\x6a\xf8\ \x9f\x5a\x5b\xeb\xc1\x2b\x1f\xc7\x6c\x7e\x2e\x75\x50\x5d\x8d\xb6\ \x9b\xe3\xbd\x79\xa7\x24\x49\xd2\x15\xe8\x13\x81\x2d\xc9\x46\x18\ \x37\xc1\xdc\xfc\xf8\xc3\xd5\xab\x70\xf6\xe2\xe9\x04\x8c\xa8\xf7\ \x71\xbb\x02\xbf\x4a\xf4\x18\x24\x49\x92\x80\x3e\x12\xd8\x00\xe0\ \x2b\x5f\x4f\xc1\x90\x61\xe1\xfd\x23\x55\xbf\x81\x79\xbf\xcf\x49\ \xd0\x88\x7a\x8f\x4b\x17\xb4\xc6\x6d\xaf\x1d\x92\xd3\x90\x92\x24\ \x75\x0b\x7d\x26\xb0\x01\xc0\xfd\x8f\x0c\x44\x7a\x7f\x4b\xd8\x6d\ \x45\xbb\x0f\xe1\xe5\x8f\x5f\x4c\xd0\x88\x7a\x87\x0b\xb5\xda\x7f\ \x24\x7a\x0c\x92\x24\x49\xcd\xfa\x54\x60\x4b\x49\x53\xf0\xcd\x27\ \xaf\x45\x4a\x5a\xf8\x9f\xfd\xc7\xbf\xad\xc0\xe2\x7f\x2c\x4a\xd0\ \xa8\x7a\xb6\x0b\x35\x81\x9a\xad\xaf\xec\x5f\x9c\xe8\x71\x48\x92\ \x24\x35\xeb\x53\x81\x0d\x00\xd2\x07\x58\xf0\xcd\x69\xd7\x22\x7d\ \xc0\xe5\x2b\x37\x66\x60\xf1\x47\x1f\xe0\x3f\x57\xfd\x26\x81\x23\ \xeb\x79\x84\x00\x2e\xd6\xfa\xbf\x9f\xe8\x71\x48\x92\x24\x85\xea\ \x73\x81\x0d\x00\xae\x19\x64\xc5\xe3\x4f\x5f\x87\xcc\xb1\x69\x2d\ \x3b\x00\xb0\x00\x16\xe5\x2f\xc5\xe4\x57\x1e\xc4\xf1\xda\xf8\xec\ \xdb\xd6\xdb\x9d\x3d\xee\xdb\x20\xd7\xd6\x24\x49\xea\x6e\xfa\x64\ \x60\x03\x82\xf5\x6d\xe3\xee\xed\x8f\xe9\xdf\x1b\x82\x3b\xee\xbe\ \x5c\x0e\x50\x5e\x71\x0a\xf7\x3c\x3f\x05\x8f\xbc\xf6\x30\x96\x6d\ \xfe\x10\xaa\xd6\xae\xdd\xe3\x4d\x02\x86\x1f\x7e\x3d\xe6\x6e\xe8\ \x3d\x5e\xed\xb9\xc0\xb9\xf5\x9e\xfd\x53\x13\x3d\x0e\x49\x92\xa4\ \x48\xbd\xba\x09\x72\x47\x79\x3d\x06\xdc\x4e\x03\xee\x46\x03\x2e\ \xa7\x01\xb7\x53\x87\xae\x2a\xb8\xe5\xe6\xa1\x18\x79\xfd\x0d\xb8\ \x79\xe8\xcd\x18\x75\xfd\x28\xdc\x3a\xfc\x76\xa4\x25\xf7\x87\x57\ \x73\xc2\x1b\x70\xc1\xa3\x39\xe1\x0e\x34\xe0\x82\xa7\x0a\x17\x3c\ \x55\xa8\xf3\x56\xa1\xd1\xdf\x7b\x7b\x44\xba\x1a\x75\xb5\xf6\x48\ \xfd\xc8\x4d\xbf\x3d\x51\x93\xe8\xb1\x48\x92\x24\x45\x92\x81\x4d\ \xea\x90\xc6\x7a\xdd\x73\xc6\xa1\x4f\xd8\xf9\xdb\xbd\x95\x89\x1e\ \x8b\x24\x49\x52\x34\xbd\xbe\x09\xb2\x14\x3f\x17\x6a\x02\x35\x35\ \x0e\xd7\x9d\x3b\xdf\x3c\x56\x9b\xe8\xb1\x48\x92\x24\xc5\x22\x03\ \x9b\xd4\xa6\x40\x40\x70\xd5\xe9\xc0\xaa\x73\x1e\xe3\xbb\x95\x6f\ \x1e\xbb\xb2\x45\x47\x49\x92\xa4\xab\x44\x06\x36\x29\x26\x4d\x63\ \xae\xad\x56\x2b\x5d\xb5\xda\x53\xdb\x16\x1d\x74\x24\x7a\x3c\x92\ \x24\x49\xed\x21\x03\x9b\xd4\x22\x10\x10\xec\x71\x09\x97\xd7\xa5\ \x3b\x3c\x1e\xf1\x37\xd7\xe9\xe4\xf7\xcb\xf3\xf6\x7a\x13\x3d\x2e\ \x49\x92\xa4\x8e\x90\x81\xad\x0f\xd2\x34\xc1\x6e\xa7\x70\xfb\x3d\ \xc6\x39\xd5\x2f\x0e\x05\x54\x51\xa2\x06\x78\x43\xf1\xeb\x07\x2a\ \x12\x3d\x36\x49\x92\xa4\xce\x92\x81\xad\x17\xd3\x34\x66\x8f\xd3\ \xf0\x78\xbd\xc6\x39\xd5\x27\x0e\xeb\x01\x2e\x55\x55\xde\xb8\xf3\ \xf5\xca\xdd\x89\x1e\x9b\x24\x49\x52\x57\x91\x81\xad\x17\xd0\x75\ \x66\x8f\xd3\xf0\x7a\xbd\xa2\x5a\xf5\x8b\xc3\xaa\xca\x65\xba\x46\ \x1b\x8b\x72\xf7\x96\x24\x7a\x6c\x92\x24\x49\x57\x9b\x0c\x6c\x3d\ \x88\xae\x33\x3c\x4e\xc3\xeb\xf3\x8a\x6a\xbf\x4f\x1c\xd1\x03\x62\ \xb7\xd0\x78\xd3\x56\x1c\x28\x96\x9b\x7c\x4a\x92\x24\x05\xc9\xc0\ \xd6\x0d\x19\x3a\xc3\xed\x32\x7c\x3e\x8f\x71\x5e\xf5\xf3\x51\x2d\ \xc0\xbb\x35\x1d\x9b\x76\x88\xfd\x3b\x64\x00\x93\x24\x49\x6a\x9d\ \x0c\x6c\x09\x24\x8c\xe6\x00\x26\x6a\xfc\x3e\xc3\x11\x50\xb9\x5c\ \x57\xc5\x66\x8b\x72\x70\xdb\x96\x5c\xd6\x13\x3d\x3e\x49\x92\xa4\ \x9e\x48\x06\xb6\xab\x40\x08\x86\xc7\x29\xfc\x5e\xb7\x51\xab\xaa\ \xc2\x11\x08\x70\xb9\xae\x6b\x9f\x5d\x34\x2c\x5b\x2b\x73\x2b\x65\ \xc1\xb3\x24\x49\x52\x1c\xc9\xc0\x16\x47\x42\x00\x6e\xa7\xae\xfa\ \xbc\x5c\xeb\xf7\x19\xc7\x34\x55\xec\xd1\x03\xb4\x45\x81\xeb\xb3\ \x2d\xb9\x27\xfd\x89\x1e\x9f\x24\x49\x52\x5f\x60\x05\x10\x00\x60\ \x4b\xf4\x40\x7a\x12\x16\x80\xdb\xa5\xab\x3e\xaf\xb8\xe0\xf7\x8a\ \xe3\x81\x00\x7f\x1e\x08\x88\x2d\xbe\xaa\x7e\x9b\xcb\xf3\xf6\xc8\ \x82\x66\x49\x92\xa4\x04\xb2\xb2\xc0\x34\x28\x58\x45\x40\x5a\xa2\ \x07\xd3\xdd\x30\x03\x1e\x97\x11\xf0\xba\x8d\x3a\xbf\x5f\x1c\x0f\ \x04\xc4\xe7\x9a\xdf\xd8\x7a\x09\xca\xa6\xca\xdc\x4a\x77\xa2\xc7\ \x27\x49\x92\x24\x99\x59\xdd\x85\xa7\x37\x5e\xf3\xf8\x57\x1e\x16\ \x2c\xd6\x02\x18\x94\xe8\x01\x25\x02\x33\xe0\x75\x19\x9a\xd7\x23\ \xea\xfc\x3e\x71\x42\x55\xf5\x0a\x4d\xc5\xb6\x00\xd4\x0d\x25\xb9\ \x0e\x67\xa2\xc7\x27\x49\x92\x24\xb5\x9f\x15\x00\x1a\xd7\x9e\x2c\ \xe9\xff\xe8\x88\x49\x50\x68\x03\x80\xeb\x13\x3c\xa6\x2e\xc3\x0c\ \x78\xdd\x86\xe6\x75\x8b\x8b\x3e\xbf\x71\x32\xa0\x8a\x2f\x74\x15\ \xdb\x9c\xf5\xd6\xc2\x8a\xb7\x2b\x1a\x12\x3d\x3e\x49\x92\x24\xa9\ \xf3\x5a\x92\x47\x5c\x85\x5f\x56\x0e\x9c\x36\xf2\x7e\xc3\xc0\x46\ \x00\xb7\x24\x70\x4c\x71\xe1\x71\x1b\xba\xd7\x63\x5c\xf4\xfb\xc4\ \xc9\x80\x9f\xf7\x6a\x01\xb1\x5d\x13\x58\x5f\x9c\x5b\x79\x29\xd1\ \x63\x93\x24\x49\x92\xba\x4e\x58\x56\x64\xc3\xa7\xa7\x4f\xa4\x3d\ \x76\xf3\xfd\x8a\xc2\x1b\xc0\x18\x9d\xa8\x41\x75\x84\xd7\x23\x74\ \xaf\x5b\xaf\xf7\x7b\xf9\xa4\x1a\x30\xf6\xa9\x1a\xb6\x8b\x06\x5f\ \xa1\xdc\x0c\x53\x92\x24\xa9\x6f\x32\xa5\xfb\x7b\xd6\x9f\xaa\x1e\ \x38\x6d\xe4\x24\xc3\xe0\xb5\x00\x4d\x48\xc4\xa0\xa2\xf1\x79\x84\ \xe1\x71\x1b\xf5\x7e\x9f\x71\x2a\xe0\x17\xfb\x34\x55\x14\x59\x55\ \xdf\xda\x4d\xbf\x3d\x51\x93\xe8\xb1\x49\x92\x24\x49\xdd\x47\xd4\ \x3a\xb6\x86\x4f\x4f\xd7\x0f\x7b\x74\xd8\xc3\x1e\x4b\xf2\x2a\x30\ \x1e\xb9\x9a\x03\xf2\x79\x85\xe1\x71\x19\x0d\xaa\x4f\x9c\x0e\xf8\ \xc4\x7e\x4d\x13\x45\x8a\x6a\x5d\xb7\xf9\x37\x5f\x54\x5d\xcd\x71\ \x48\x92\x24\x49\x3d\x53\xcc\x02\xed\xf3\x85\xe7\x3d\xf4\xf4\xe8\ \x69\xe9\x6e\xd7\x5f\xc1\x78\x2a\xde\x27\xf6\xfb\x0c\xe1\x75\x8b\ \x06\x9f\x57\x9c\x09\xa8\x62\xbf\x16\xe0\x9d\x01\x18\xeb\x76\xbe\ \x7a\xf0\x74\xbc\xcf\x25\x49\x92\x24\xf5\x1d\xc4\xcc\xad\x1f\xf0\ \x34\x59\xd2\x5c\x37\xe5\x11\xe8\x47\x00\x30\xe7\xb9\x0c\x24\xd9\ \xa8\xdd\x27\x50\xfd\x42\x78\x5c\x46\xa3\xdf\x6b\x9c\x51\xfd\x7c\ \x40\x0b\x88\x9d\x01\x95\xd6\xef\x5c\xb4\xff\x78\xe7\x86\x2e\x49\ \x92\x24\x49\x66\x6d\xb6\xd4\xe2\x15\x6c\x00\x78\x7e\xc0\xd4\x11\ \xf5\x0c\xfa\x45\xac\xe3\x02\x7e\x21\xdc\x6e\xc3\xe9\xf7\x88\xb3\ \x7e\xd5\x38\xa0\x05\x50\x6c\xe8\xfa\xfa\x1d\xb9\x87\x8e\xc6\x75\ \xc4\x92\x24\x49\x92\xd4\x8a\x76\xf7\x8a\x74\xae\xfb\xf2\xc5\x01\ \x8f\x8d\xa8\x0f\xa8\xfc\xba\xdb\x69\xb8\xbd\x5e\xa3\x2a\xe0\x17\ \x07\x02\x2a\x76\x09\x43\x14\x6e\xcf\xad\x3c\xd8\x95\x03\x95\x24\ \x49\x92\xa4\xf6\xf8\x7f\x5e\xef\x4b\xab\x90\x53\xcc\xdc\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x50\xc3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x03\x20\x00\x00\x02\x58\x08\x03\x00\x00\x00\xad\xa8\x72\x42\ \x00\x00\x01\x6b\x50\x4c\x54\x45\x41\x41\x41\x23\x23\x23\x6b\x6b\ \x6b\x35\x35\x35\x57\x57\x57\x36\x36\x36\x62\x62\x62\x15\x15\x15\ \x54\x54\x54\x59\x59\x59\x58\x58\x58\x55\x55\x55\x56\x56\x56\x5a\ \x5a\x5a\x67\x67\x67\x5b\x5b\x5b\x37\x37\x37\x5c\x5c\x5c\x5d\x5d\ \x5d\x5e\x5e\x5e\x38\x38\x38\x5f\x5f\x5f\x60\x60\x60\x39\x39\x39\ \x61\x61\x61\x64\x64\x64\x63\x63\x63\x27\x27\x27\x65\x65\x65\x66\ \x66\x66\x68\x68\x68\x33\x33\x33\x69\x69\x69\x6a\x6a\x6a\x34\x34\ \x34\x30\x30\x30\x2d\x2d\x2d\x32\x32\x32\x2b\x2b\x2b\x25\x25\x25\ \x2e\x2e\x2e\x31\x31\x31\x24\x24\x24\x2f\x2f\x2f\x2c\x2c\x2c\x2a\ \x2a\x2a\x29\x29\x29\x26\x26\x26\x28\x28\x28\x1a\x1a\x1a\x22\x22\ \x22\x21\x21\x21\x1d\x1d\x1d\x20\x20\x20\x1b\x1b\x1b\x1e\x1e\x1e\ \x1f\x1f\x1f\x77\x77\x77\x1c\x1c\x1c\x11\x11\x11\x6f\x6f\x6f\x17\ \x17\x17\x14\x14\x14\x89\x89\x89\x19\x19\x19\x16\x16\x16\x18\x18\ \x18\x12\x12\x12\x6d\x6d\x6d\x6e\x6e\x6e\x6c\x6c\x6c\x70\x70\x70\ \x71\x71\x71\x72\x72\x72\x74\x74\x74\x13\x13\x13\x75\x75\x75\x73\ \x73\x73\x76\x76\x76\x81\x81\x81\x88\x88\x88\x85\x85\x85\x79\x79\ \x79\x86\x86\x86\x83\x83\x83\x82\x82\x82\x84\x84\x84\x87\x87\x87\ \x7d\x7d\x7d\x80\x80\x80\x7f\x7f\x7f\x7e\x7e\x7e\x7c\x7c\x7c\x7b\ \x7b\x7b\x7a\x7a\x7a\x78\x78\x78\x4d\x4d\x4d\x4f\x4f\x4f\x4e\x4e\ \x4e\x44\x44\x44\x45\x45\x45\x4c\x4c\x4c\x50\x50\x50\x47\x47\x47\ \x4a\x4a\x4a\x43\x43\x43\x3c\x3c\x3c\x4b\x4b\x4b\x48\x48\x48\x46\ \x46\x46\x51\x51\x51\x52\x52\x52\x42\x42\x42\x49\x49\x49\x3e\x3e\ \x3e\x40\x40\x40\x3d\x3d\x3d\x53\x53\x53\x3b\x3b\x3b\x3a\x3a\x3a\ \x3f\x3f\x3f\x8f\x60\xec\x98\x00\x00\x4f\x13\x49\x44\x41\x54\x78\ \x5e\xec\x99\x37\x8e\xc5\x30\x10\x43\xe7\xa8\xa3\xe8\x18\x7e\xd8\ \x74\xfc\xa5\x82\x05\xa9\x5a\xbb\x5b\x01\xc3\xe2\xd5\x76\xf1\x40\ \x0e\x44\x0b\x2d\x08\x8d\xc8\xbb\x6b\xa4\xff\x58\x9c\x73\x0f\xe7\ \x98\x27\xd6\x5a\x1b\xad\x94\xb2\x1e\xd9\x76\x64\x38\x90\x88\xf5\ \x13\xf9\x13\x02\x01\xd1\x52\x0c\x78\x22\x11\x3f\x7d\xe1\xfd\x6c\ \x25\x71\xc8\x83\x99\xf5\x04\x47\x94\x55\xc1\x0f\xef\xf7\x1d\x92\ \x9c\x7e\x1c\x87\x18\x70\x05\x02\x1a\x91\xca\x8a\x15\xe9\x0c\xc5\ \x94\x4a\x12\x94\x88\xcb\x25\xa2\x94\xf2\xa5\x44\x8e\x52\x22\x62\ \xc0\x15\x08\x68\x4c\x6a\x54\x06\xbc\x06\xa4\x13\x84\xcf\xcd\xa6\ \x54\x92\x84\xd9\x18\x96\x16\xb3\x36\x55\x89\xdc\x1e\x59\x02\x01\ \xe5\xd6\x78\xad\x8d\x01\x1f\x1b\xf2\xcf\xd1\x98\x92\xed\x0e\x92\ \x84\xb9\x95\x97\x56\x29\x11\x1f\x4b\xa4\x19\x59\x62\xc0\x05\x08\ \x28\xb4\x46\xb2\x22\x1a\xd0\x29\x92\x29\xa5\x49\xd0\x22\x4d\x89\ \x54\x97\xfa\x9d\x23\x44\x20\xa0\xba\x30\xac\xb5\xb3\xed\x10\xd9\ \x94\xd2\x24\xe1\x70\x1f\xc7\xb3\x44\x34\x62\xca\xc8\xba\x73\x84\ \x08\x04\x34\x54\x6a\x18\x33\x1b\xe4\xab\x2f\xcc\x26\x99\x72\x4a\ \x92\x0f\xf7\xb3\x44\x98\xab\x4b\x1d\x23\xeb\xc6\x11\x22\x10\xd0\ \xb6\xc5\x0e\xc8\x06\x4c\xc8\x77\x5f\x38\x4d\x29\x92\x0c\x51\x92\ \x5c\x22\xe9\x4d\xa4\x19\x59\xd7\x8f\x10\x81\xe0\x97\x3d\x7b\x59\ \x69\x18\x88\xe2\x38\x3c\xc4\x2c\x8a\x0d\xe2\x22\x10\x0a\x55\x54\ \x70\x21\x3e\x41\x21\xcb\x5c\x4b\x2f\xb9\xa8\x99\x99\x4c\xa6\xb5\ \x56\xab\xb5\x6a\x93\xc6\x26\x8f\xef\x7f\x5c\xf8\x00\x2e\x5c\xf9\ \x2d\x7e\x6f\x70\x18\xce\x19\x12\x45\xd3\x28\xfa\x4d\x58\x94\x65\ \x19\xcf\xd2\x34\xcd\xd3\x38\x8e\xe9\x1d\x88\x1b\x90\xb7\x90\x4c\ \x41\x85\xcd\x18\x63\x7c\xc0\x39\xcf\x27\x79\x4e\xe9\x88\x52\x21\ \x86\x42\x14\xc5\xb8\x90\x52\x86\x32\x49\x92\x30\x81\x40\xc5\x9f\ \x81\x3d\x00\x77\x02\xde\x08\xb4\x21\x68\x63\x38\x0f\xe1\x0c\x09\ \x4e\x83\xc0\xf7\x8f\x7c\xdf\xb6\x4f\x6c\xd7\x75\xfb\xae\xe3\x38\ \x3d\xc7\xf3\xbc\x9e\x06\x2b\xd3\x34\xad\x6b\xab\x69\xf6\x57\xeb\ \xba\xae\x2f\xab\xaa\x6a\x2f\xda\x76\x47\x0e\x08\x21\xdb\xe3\x17\ \x30\x31\x55\x4b\x6b\x09\xcd\x1b\xec\xb1\x82\xad\xd6\x6a\x8b\xa9\ \x37\xe5\xa6\xac\xd4\x3d\xac\x55\xf7\xb0\x9d\x7a\x85\x08\x86\x6c\ \xbe\x5d\xfc\x1c\x8d\xbf\x3f\x55\x3e\xa0\xfc\xec\x74\x3a\xcf\xdd\ \xae\x61\xbc\x1a\xba\xae\xcf\x0f\x61\xf1\xb7\xf9\xcf\x17\x3b\xe7\ \xd6\xdc\xb4\x11\x86\xe1\x1d\x9f\xc6\xa7\xf8\xa4\x5a\xb1\x45\x2c\ \xcb\x27\x70\xc6\x81\x70\xdb\x19\x5f\x82\x49\x99\x84\xdf\x50\x4a\ \xc1\x34\xa4\x49\x1c\x12\x3b\x3f\xbf\xef\xb7\xaa\xbc\x7c\xb5\x11\ \xc8\x52\x4c\x91\xf7\xbd\x78\xef\x35\xa3\x47\xbb\x8f\x3e\x69\x73\ \x7f\xe4\x90\x2f\x6a\x0f\x79\xcb\xaa\xfc\xa1\x8c\x7c\x59\xd5\x6a\ \xf5\xb2\xba\x5a\x57\xbc\xee\x6a\x35\xf1\x2b\xdd\x8e\xc1\x4a\xdd\ \xc0\x2f\x4e\x91\xc9\x6b\xa4\x73\x86\x78\xf7\xee\x09\xdd\xbb\xaf\ \x70\xef\x8e\xe9\xde\x7d\x49\xf7\x2e\x6e\x5e\x6b\x82\x7b\x37\x93\ \xe8\x74\x3a\x8d\x8e\xe3\x38\xa6\x8d\xd4\x4b\x88\x41\x55\x6b\x21\ \xe5\x03\x64\xaf\x89\xe4\x2c\xcb\xca\xe4\x33\x99\x4c\x23\xd5\x68\ \x34\xcc\xa2\x69\xd6\xeb\x85\x7a\xdd\x30\xb2\x86\x51\xab\xdd\xd5\ \xe4\x25\xe0\x52\x2f\xf7\x90\x0f\x39\xe4\x6d\x1e\xf9\x3d\x85\x64\ \x2a\x00\x64\xb8\xbf\xbf\xbf\xe8\x2d\xe6\xf3\xf3\xc3\xf3\x73\x82\ \x04\x69\xdf\x23\xdd\xcf\x48\xf7\xb3\x10\xc0\xe5\xa7\x2f\x5d\xd7\ \xd7\xe9\x6b\x44\x95\x7c\xfe\xb1\x7a\xf7\x0e\x8f\x43\x56\x64\xae\ \xfb\xff\x29\x12\xd9\x05\xab\xe9\x1c\x7a\x2e\x36\xe4\xe3\x85\xf7\ \x80\x7f\x4d\x0f\xf8\x33\xe2\x83\x9e\xed\x27\x5f\x7f\xb6\x5b\x09\ \x24\xd3\x41\x1a\x0e\x52\xb7\x11\x17\x0d\xaa\x2a\xf0\x38\x20\x3e\ \x9a\xc4\x87\x05\x3e\x32\xc4\x47\x83\xf8\x30\xc1\x47\x9d\xf8\x30\ \x88\x8f\x1a\xf8\x90\x88\xcb\x47\x81\x7c\x46\xe4\x10\x7a\x96\xa4\ \x24\x1f\xef\x13\x95\x4a\x65\x88\x35\x64\x7f\xb4\x00\x20\xbd\x73\ \x64\x70\x7b\x0b\x3e\x6e\x88\x8f\x7b\xc9\xc7\x67\x4d\x40\x1c\x8a\ \xa1\x41\xc5\xd1\xa0\xe2\x68\x50\x29\x2a\x54\x71\x34\xa8\xa6\xe0\ \x03\x11\xc1\x97\x0e\xd4\x1b\xe2\xe3\x74\x02\x3c\x88\x8f\x33\xf0\ \x21\xf7\x3e\x27\xc4\xc7\x2b\xe2\x63\x0c\x3e\x5e\x22\x07\x2f\x90\ \xe6\x04\xc9\x24\x90\x46\x07\x31\x81\x87\x4d\x7c\x94\x96\x7c\xb4\ \xaa\xc0\x83\xf8\x68\x12\x1f\x16\xf8\xc8\x10\x1f\x0d\xe2\xc3\x04\ \x1f\x75\xa4\x60\x20\x77\x35\x44\xae\x7e\x97\xc0\x63\x8f\xf8\xc8\ \x11\x1f\xb4\xd6\xa6\xfe\xe5\x23\x95\x48\xa7\xfb\x95\x8a\x5c\x44\ \x16\x8b\x1e\xd6\x10\x2c\x22\x00\x44\xee\xb4\xb0\x88\x10\x1f\x88\ \x26\xe0\xa7\xaf\xeb\x6f\xf3\xc1\xd1\x50\x1b\x6b\x5e\x1c\x0d\xaa\ \x29\xf1\x41\x25\x36\xe0\xe3\x0d\xf1\x71\x0a\x3e\x5e\x13\x1f\x4b\ \x37\x38\x41\xec\x57\x48\x69\x8c\x1c\x10\x1f\x4d\xe2\xc3\x02\x1e\ \x09\xe2\xa3\x43\x7c\x38\xe0\xc3\x26\x3e\x4a\x4b\x3e\x5a\xe0\xe3\ \x80\xf8\x68\x12\x1f\x16\xf8\xc8\x20\xf9\x06\x92\x32\x91\x42\x1d\ \xc9\x02\x8f\x1a\xf1\x41\xbb\x43\x6c\xad\x80\x07\xf1\x91\x23\x3e\ \x68\x2f\x9a\x5a\xf2\x51\x4c\x24\x8f\xd2\xe9\xe5\x22\x32\x9f\xcf\ \xd7\x6e\xb2\x34\x01\x3f\x79\x71\x34\xa8\x18\x1a\x54\x1c\x0d\x2a\ \x45\x85\x2a\x8e\x06\x95\x44\xc3\x2d\x11\x98\x0f\xa6\x1e\x09\x57\ \x3d\x10\x9b\xf8\x28\x11\x1f\x2d\xe0\x01\xf5\x80\x7b\x10\x1f\x13\ \x0b\x78\x10\x1f\x1d\xe2\xc3\x01\x1f\x36\xf1\x51\x5a\xf2\xd1\x02\ \x1f\x07\x48\xb9\x89\xec\x59\x48\x3e\x83\x78\xea\x61\xd6\x89\x0f\ \x4f\x3d\x6a\x9e\x7a\x00\x0f\xf0\x91\x23\x3e\xc8\xd5\x52\x4b\x3e\ \x8a\xc5\x62\xe2\x28\x99\xc6\x22\x42\x26\x22\x4d\xbd\x37\x57\x9b\ \xac\x98\x48\x88\x2e\x8e\x06\x15\x43\x83\x8a\xa3\x41\xa5\xa8\x50\ \xc5\xd1\xa0\x92\x68\x78\x15\x44\xd2\x57\xdf\x2d\x49\xf5\x78\x28\ \x35\x37\x89\x0f\xa6\x1e\x35\x57\x3d\xd6\xab\xf9\x7b\xaa\x4f\xe0\ \xa3\x60\x76\x93\x49\x2c\x22\xd8\x65\x0d\x21\x22\x6c\x93\x05\x40\ \xda\x31\x94\x10\xad\xe6\xe9\x68\xd5\x5c\x95\x08\xa2\x1e\x52\xcd\ \x4f\x99\x9a\xff\x16\x9d\x9a\x5b\x4c\xcd\x4d\x4f\xcd\x0d\x24\x5b\ \xf3\xd4\xfc\xf2\xab\x6a\x8e\x2a\x82\x8f\x42\xe1\x63\xa7\xdb\x4d\ \xd2\x22\x52\xe9\xf3\x4d\x96\x27\x21\xf7\x52\x42\x34\x01\x71\x51\ \x73\x24\x6a\x35\x57\x25\x02\xaa\xf9\xe9\x43\xa9\xb9\x45\x7c\x30\ \xf5\x90\x6a\x9e\x65\x6a\x5e\xf6\x51\xf3\x14\x0d\x23\x0a\xe0\xa3\ \xe0\xb4\xbb\x8f\xb1\x88\xa8\x4d\x96\xf7\x26\xeb\xdb\x12\xa2\x4b\ \xab\x39\xab\x73\x11\x48\xcd\x4f\xa3\x53\xf3\x16\x53\x73\x0b\xc9\ \xb9\xea\x81\x14\x3d\x35\x37\x02\xa8\x39\xf8\x28\x10\x1f\xd9\xac\ \xd3\x7e\x8a\x35\x44\x9a\x3a\xc6\x21\xcb\x4d\x16\x46\x86\x7e\x12\ \xa2\x4b\xab\xf9\x2a\x1f\x53\xf1\x63\xd4\xbc\x85\x54\x99\x7a\x58\ \x52\x3d\x98\x9a\x1b\x01\xd4\x1c\xf9\x58\x40\x66\x59\x00\xf2\xb4\ \xdd\xee\x76\x1f\xb3\x4d\x96\x94\x90\xdb\xb8\x4b\x88\x56\x73\x24\ \xa4\x9a\x73\x3e\xa6\xe2\x47\xa8\x79\xb5\x85\xac\x99\x0a\x86\x52\ \x73\xe2\x23\x3b\xcb\x22\xf5\xc1\xa0\xdd\x66\x9b\x2c\x77\x5c\x18\ \x77\x09\xd1\x6a\x8e\x0a\xad\xe6\x9c\x8f\xa9\xd8\xbe\x9a\xb7\x88\ \x8f\x35\x53\xc1\x90\x6a\x0e\x3c\x88\x0f\x94\x73\x38\x18\x3c\xc5\ \x1a\x22\xdf\x64\x79\xe3\x42\x6f\x9c\xae\x24\x44\x13\x10\x33\x35\ \x47\x85\x56\x73\xce\x07\x22\xb6\xa6\xe6\xfe\x53\xc1\xf0\x6a\x9e\ \xf5\xf8\xc8\x3a\x87\x87\xcf\xda\xed\xb6\xbb\xc9\xf2\xde\xf4\xce\ \x95\x84\xc4\x51\xd2\xb5\x9a\xa3\xa2\x53\x73\x55\xe2\x01\xd5\xdc\ \x61\x6a\xee\x3b\x15\x0c\xaf\xe6\x8a\x0f\x00\xf2\x8c\x6d\xb2\x20\ \x21\x0b\x39\x4e\xe7\x12\xa2\x09\x88\x95\x9a\x57\xa2\x54\x73\x55\ \xe2\xc1\xd4\xdc\x21\x3e\xbe\x39\x15\x8c\x4a\xcd\x91\x65\x39\xcf\ \x0f\xdd\x4d\x96\x1c\x17\xba\xe3\x74\x2e\x21\xbe\x92\xae\x4b\xab\ \xb9\x2a\x11\x99\x9a\x4f\x98\x9a\x3b\x88\xe9\x33\x15\x8c\x5e\xcd\ \x55\x19\xbd\x9e\xdc\x64\x75\xbb\x18\x17\x56\xe4\x26\x8b\x49\x48\ \xdc\x25\x5d\xab\x39\x2a\x84\x9a\xb3\x12\x11\xa9\xf9\x04\xb1\x98\ \x7a\x38\x3e\x53\xc1\xf0\x6a\x5e\x5c\x51\x73\xaf\xee\x2e\x6c\x00\ \xe2\x6e\xb2\x92\x49\xfe\xa6\x97\x49\x88\x26\x20\xa6\x6a\x8e\x0a\ \xa3\xe6\xac\x2e\xc4\x86\x6a\x3e\x66\x6a\x6e\x4d\x10\x36\x15\x74\ \x98\x7a\x44\xad\xe6\xc5\x15\x35\xf7\x8a\xfe\x92\xb4\x47\x3d\xda\ \x64\xd1\xb8\x70\xbd\x84\x74\xef\x63\x2b\xe9\x5a\xcd\x91\x10\x6a\ \xce\x0b\x3f\x98\x8a\x8d\xd4\xbc\xc5\xd4\x7c\x42\x7c\xf8\x4c\x05\ \xc3\xab\x79\x9e\xa9\x79\x91\xf8\x60\xea\xe1\xd5\x1d\xf1\x01\x40\ \x1e\x61\x0d\xf1\xde\xf4\x02\x90\xe1\xae\x48\x88\x56\x73\x54\x08\ \x35\xe7\x75\x01\x3e\x2e\xc4\x06\x6a\x3e\x26\x3e\xd8\x54\x70\xc2\ \xa7\x82\x11\xab\x79\x9e\xa9\xf9\xa7\x22\xc2\xd4\xc3\x2b\xef\x57\ \x7b\xfb\x78\x24\x37\x59\xee\x9b\x5e\x2e\x21\x37\x31\x96\x10\xad\ \xe6\xa8\x68\xd4\x1c\x75\x21\xf9\xb8\x10\x81\xd5\x7c\x4c\x7c\xf8\ \x4d\x05\xa3\x55\x73\xa8\x07\xc2\xa6\x82\xc5\x55\xf5\x40\xd4\x51\ \x14\xc6\x70\x44\x9b\xac\xc1\x80\xc6\xe9\xe9\xb4\x2b\x21\x72\x12\ \xe2\x37\x29\xd4\xa5\xd5\x5c\xd5\x2d\xf1\x41\x25\xbe\x4f\xcd\xd9\ \x54\x70\xec\x37\x15\x8c\x58\xcd\xf3\x5c\xcd\xd7\xab\x07\xca\x45\ \xc3\x2d\x7b\x38\xc4\x26\x0b\x16\xf2\x35\x09\xf1\x9f\x14\xea\xd2\ \x6a\x4e\x68\xb8\x25\xbe\x47\xcd\x83\x7d\xb0\x1b\x5e\xcd\xd9\x54\ \x30\xef\x3f\x15\x94\xc5\x8f\x32\x02\x20\x8f\x46\xee\x9b\xde\xb5\ \x12\xe2\x3f\x29\xd4\xa5\xd5\x5c\xf1\x71\x2b\xd6\xa9\x39\x3f\x87\ \xca\x7f\x2a\x18\xbd\x9a\x07\x9a\x0a\x2a\x35\x57\x65\x0f\x8f\x47\ \xb0\x10\x26\x21\x0b\x26\x21\xf1\x97\x74\xad\xe6\xa8\xcd\xd5\x5c\ \x95\x58\xf2\xb1\xe5\x63\xae\xcc\xf5\xc7\x5c\x95\x83\x4e\x05\x67\ \x0a\x0d\x25\xe9\xc3\xe1\x8a\x84\x78\xff\x84\xec\x84\xa4\x6b\x35\ \x47\x85\x51\x73\x55\x82\x1d\x73\x85\x6c\xe7\x98\x2b\x33\xc0\x31\ \x57\xea\x83\x5d\x5f\x35\x57\x65\xf4\x57\x24\x64\xa7\x26\x85\x5a\ \xcd\x51\xa1\xd4\x5c\xd5\x4c\xac\x3f\xe6\xea\x6c\x3b\xc7\x5c\x65\ \xfd\x8e\xb9\x0a\xa0\xe6\xbc\xec\x7e\x7f\x78\xcc\x25\x64\xb4\xbf\ \x33\x93\x42\xad\xe6\xa8\x50\x6a\xae\x6a\x36\x9b\x89\xff\xc3\x31\ \x57\xd5\x60\x1f\xec\x72\x35\x5f\x2d\x00\x72\x3c\xf4\x24\xc4\xfb\ \xf1\x56\x4a\x08\x9f\x14\x6a\x02\xe2\xa8\xe6\x48\x28\x35\x57\x35\ \x43\x6e\xc4\x1b\xe2\x63\x1b\xc7\x5c\x21\x7e\xc7\x5c\x05\x55\x73\ \x46\x05\x2f\xbb\xff\xc4\x95\x10\xef\x73\x2c\x75\xfa\x0f\x9b\x14\ \x6a\x02\x58\x69\x35\x67\x75\x23\xf9\x98\x89\xed\x1f\x73\x55\x8f\ \xe0\x83\x5d\xdf\x43\xeb\xed\x27\xae\x84\xd0\x37\xef\xee\x3f\x21\ \xde\xe7\x8a\x7c\x52\xa8\x09\x88\xbf\x9a\xa3\x36\x51\x73\xf7\x80\ \x7f\x2a\xb1\x32\x15\x8c\x5e\xcd\xa3\xf8\x97\xd6\x5f\x3d\x78\x19\ \x47\xfd\xbe\x3b\x09\x71\x3f\xc7\xaa\x90\x84\xb8\x93\x42\x00\x32\ \xd8\x19\x49\xd7\x6a\x8e\x6c\xa6\xe6\x4b\x3e\x66\xe2\xa1\x8f\xb9\ \xca\x44\xf5\x2f\x2d\x57\x0f\x9f\x9a\x96\x8e\xa4\x84\xc8\xcf\xb1\ \xba\x52\x42\xd4\xa4\x70\x77\x24\x5d\xab\x39\x6a\x43\x35\x57\x7c\ \xcc\x44\xb4\x6a\x1e\xfd\x31\x57\xfe\x53\xc1\xd5\xba\x9a\x5e\x01\ \x10\x4f\x42\xf8\x8f\xe9\x00\x64\x57\x24\x5d\xab\x39\x6a\x73\x35\ \x57\x25\xa2\x3d\xe6\xaa\x1c\xf0\x98\xab\xf0\x6a\xce\xeb\x0a\x7c\ \x00\x10\x29\x21\xcf\x7b\x87\xab\x93\xc2\xdd\x90\x74\xad\xe6\xa8\ \x30\x6a\xae\x4a\x44\x77\xcc\x15\xe2\xa9\x87\xb5\x76\x2a\xf8\x0f\ \x7b\x77\xb6\xdb\x44\x10\x44\x61\xb8\xc4\x26\x02\x21\x60\x87\xd5\ \xd8\x10\xc0\x24\x2c\x66\x79\x00\x2e\x59\x2f\x78\x87\x01\x32\x43\ \xc3\xe0\x4e\x20\x2c\x79\x7c\x9a\xce\xc4\x47\x62\x1c\x55\xb7\xdc\ \xe3\x2e\x44\x59\xd1\xff\x06\x75\xf1\xa9\xed\x93\x8e\x68\x8e\x34\ \xff\x9f\x73\xed\xc1\xc4\x29\xbd\xf9\x4d\xc8\x5f\x2f\x85\x3c\xd2\ \x35\x4a\x73\xc4\x50\x07\x33\x57\x03\x4f\x8f\x25\xd1\x1c\xd9\xf1\ \xf7\xe1\xd2\x9f\x4c\xfc\x4b\xe1\x9d\x39\x2f\x85\x1c\xd2\x35\x4a\ \x73\xc4\x18\x43\x09\x66\xae\x46\xcc\xcc\xd5\x72\x68\x3e\xbb\x0f\ \x87\xf4\xc9\x9c\x97\xc2\x10\xa4\x6b\x94\xe6\xc8\xbe\x71\x1f\x4a\ \xb3\x40\x8d\x57\xc1\x5c\x34\xc7\x7d\x38\x83\x4c\xf0\x52\xf8\xbf\ \x22\x5d\x69\x8e\x44\xd0\x1c\x31\xfe\x3e\xf6\x29\x9e\xe6\xcc\xab\ \x60\x2e\x9a\x23\x6b\x9b\x5b\xe3\xf1\xc1\x4b\xe1\xcd\x47\xc1\x5f\ \xe7\xd5\x28\xcd\x11\xd3\xdc\x87\xa1\x30\x9a\x6f\x80\xe6\xcc\xab\ \x60\x2e\x9a\xfb\x00\xe9\x63\x20\x3d\xf6\xeb\xbc\x1a\xa5\xf9\xec\ \x3e\x0c\x71\x34\x0f\x9f\xb9\xca\x4c\x73\xa4\xbf\xe9\x0e\xa4\x85\ \xf4\xd0\xdf\xdc\x6a\x94\xe6\xb8\x0f\x43\xf3\x68\x3e\x00\xcd\x99\ \x99\x2b\x41\x34\x47\xd6\x36\xe7\x21\x3d\xf8\x37\xb7\x1a\xa5\x39\ \x42\x9e\xe6\xcc\xcc\xd5\x06\xe8\xd1\xc1\x02\xf5\x6a\x1a\x9a\x23\ \xee\x40\xb6\xc6\x2d\xa4\x07\xff\xe6\x56\xa3\x34\x47\xc8\xd1\x03\ \x34\x5f\xca\xcc\xd5\x0a\x33\x73\x15\x4f\x73\x45\x3a\x13\xa5\xb9\ \x4b\x04\xcd\x91\x9a\xda\x33\x57\x2f\x73\xcf\x5c\xc5\xd3\x5c\x3e\ \xd2\x35\x59\x68\x8e\x44\xd0\x1c\xd9\xab\x6b\xca\x3d\x73\xb5\x0a\ \x7a\x2c\x46\x73\xa4\x27\x0e\xe9\x9a\x2c\x34\x47\x22\x68\x8e\xd4\ \xee\x3e\x6a\x1a\x2d\x67\xe6\xea\x1c\x33\x73\xb5\x28\xcd\x11\x3b\ \x1d\x09\x43\xba\x26\x0b\xcd\x91\x08\x9a\x23\xb5\xbf\x8f\x9a\x96\ \x3b\x73\x75\x26\x64\xe6\x2a\x9e\xe6\x88\xb5\x53\x3b\x12\x85\x74\ \x4d\x16\x9a\x23\x11\x34\x47\x6a\x7f\x1f\x2e\xd4\xc9\xcc\x55\x3f\ \xe1\xcc\x15\x4f\x73\xc4\xfe\xb9\x0f\x3b\x12\x84\x74\xcd\x3f\x49\ \xf3\xd9\x7d\xd4\xd4\xe5\xcc\x95\x65\x5e\x05\x93\xd0\x1c\xb1\x07\ \xf7\x61\x47\x8a\xf4\x56\x94\xe6\x4d\x82\x68\x8e\xfb\xa8\x29\x21\ \xcd\xd3\xcf\x5c\xf1\xf4\x40\xa6\x87\xf7\x61\x15\xe9\xed\x28\xcd\ \x7d\x42\x69\x8e\x50\xba\x99\xab\xf5\xd4\x33\x57\x3c\x3d\x10\x8b\ \xfb\x10\x8b\x74\xdd\x62\xc8\x42\x73\x24\x9c\xe6\x08\xa5\x9a\xb9\ \x5a\x3f\xa4\x47\x2f\x66\xe6\x0a\xe1\xe8\xc1\xd2\xdc\xfa\xc8\x45\ \xba\x6e\x31\x64\xa1\x39\x12\x41\x73\x84\x68\x21\x9a\xb7\x67\xae\ \x7a\x9e\x1e\xa9\x69\xbe\xc3\xd3\x1c\x11\x89\x74\xdd\x62\xc8\x42\ \x73\x24\x82\xe6\x48\x49\x25\x2d\x40\xf3\x4b\x9e\xe6\x19\xbe\xb0\ \xdb\xa6\x39\x22\x1a\xe9\xba\xc5\x20\x9f\xe6\x48\x59\x92\xfb\x8b\ \xa0\x79\x7b\xe6\xea\x6c\x8a\x99\xab\x44\x34\x97\x8f\x74\xdd\x62\ \x90\x4f\x73\xa4\xf4\xf7\x51\x52\x1c\xcd\x33\xcc\x5c\x85\xd1\x5c\ \x91\xce\x44\x69\x8e\xf0\x34\xdf\x2b\xdd\x87\x7c\x78\x9a\xaf\x80\ \xe6\x19\x66\xae\x82\x68\xae\x48\x67\xa2\x34\x47\x42\x68\x8e\xfb\ \x20\x86\xe6\xf9\x67\xae\x78\x9a\xcb\x47\xba\xd2\x1c\xc9\x42\x73\ \x24\x88\xe6\xb8\x8f\x92\x8e\x9c\xb9\x1a\x32\x33\x57\x52\x68\x2e\ \x1f\xe9\x4a\x73\x24\x0b\xcd\x91\x50\x9a\x23\xc4\xcd\x5c\x0d\x98\ \x99\x2b\x29\x34\x47\x2a\xa9\x48\xd7\x2d\x86\x2c\x34\x47\xc2\x69\ \x8e\x50\xc8\xcc\x95\x7c\x9a\x23\x55\xb5\x3d\x14\x8d\x74\xdd\x62\ \x90\x4f\x73\xa4\xa0\xd6\x02\x35\x33\x73\x25\x91\xe6\x48\xe5\xee\ \xa3\x1a\x0a\x46\xba\x6e\x31\xc8\xa7\x39\x52\x14\xbb\xc4\xbd\x0a\ \xca\xa7\x39\x52\xf9\xfb\xa8\x86\x8a\x74\x26\x4a\x73\x73\x24\xcd\ \x91\xc2\xdd\x47\x41\xb2\x67\xae\x78\x7a\x20\xdb\xcd\x7d\x54\x43\ \xf1\x48\xd7\x2d\x86\x2c\x34\x47\x38\x9a\xbb\x14\xfe\x3e\x0a\x92\ \x3c\x73\xc5\xd3\x03\xa9\x66\xf7\x21\x1e\xe9\x3a\x93\x98\x97\xe6\ \x86\xa7\x79\xb9\xdb\xdc\x47\x41\x78\x15\x94\x4d\x73\xcb\xd0\x1c\ \xf7\x21\x1c\xe9\x3a\x93\x98\x97\xe6\x26\x84\xe6\xb3\xfb\x28\x28\ \xf5\xcc\x55\x37\x34\xb7\x3c\xcd\x11\xc9\x48\xd7\x99\xc4\xbc\x34\ \x37\x41\x34\xc7\x7d\xec\x52\x52\x9a\xaf\x76\x43\x73\xcb\xd3\x1c\ \x11\x8f\x74\x9d\x49\x94\x4f\x73\x84\x84\xce\x5c\xc5\xd3\x1c\xe9\ \x1e\xe9\x9a\xdf\xec\xdc\xd9\x6e\x13\x61\x0c\xc5\x71\x4b\x2c\x2a\ \x10\x54\xa0\x6c\x01\x24\xa4\xb6\xec\xeb\x23\xd5\x0e\x5b\x28\x74\ \x67\x79\xfc\xa2\x69\xc8\xb9\xc8\x78\x24\x47\x91\xec\x2f\x3a\x37\ \xff\x27\x18\x5f\xfc\x46\xfa\x4e\xd3\x34\x47\x3c\x9a\x23\xb2\xd2\ \x99\xab\x51\x47\x8f\x14\x9a\x13\xe9\xc1\x90\xe6\xfb\x2e\xcd\x11\ \x93\xa5\x69\x7e\xbd\x7f\x81\xfa\x38\x85\xe6\x44\x7a\x30\xa4\xf9\ \xbe\x4b\x73\xc4\xcc\x64\x39\x9a\x77\xf4\x30\x67\xe6\x2a\x81\xe6\ \xcd\x20\x9d\x34\x47\x12\x68\x8e\xb8\x34\x47\xcc\xcc\xa6\x12\xa5\ \xb9\x62\x81\xda\x99\xb9\x4a\xa0\x79\x2b\x48\x27\xcd\x91\x04\x9a\ \x23\x2e\xcd\x91\x69\x77\x1f\x26\x21\x9a\xfb\x33\x57\xf9\x34\xaf\ \x8f\x74\xd2\x1c\xa9\x49\x73\xc4\x66\xf7\x61\x32\x4c\xf3\xdb\xa0\ \x79\xc2\xcc\x55\x88\xe6\xc8\x66\x49\xa4\x93\xe6\x48\x79\x9a\xcf\ \xef\xc3\xc4\xa1\x79\xee\xcc\x55\x9c\xe6\x88\x4e\xc6\x05\x91\x4e\ \x9a\x23\x25\x68\x8e\xf4\xd0\x1c\xf7\x61\xd2\x3b\x73\xb5\x95\x3a\ \x73\x15\xa7\x39\xa2\x3a\xd1\x31\x91\x3e\x1c\xd2\x1c\xe9\xa7\x39\ \x22\x43\x33\x57\x87\x91\x99\x2b\x24\x46\x8f\x38\xcd\xfd\xa8\xea\ \x44\x75\x5c\x1e\xe9\xa4\x39\x92\x40\x73\xc4\xa3\x39\x22\x1d\xcd\ \xeb\xcc\x5c\xc5\xe9\x81\xe8\xc5\x7d\xe8\xb8\x38\xd2\x49\x73\x24\ \x81\xe6\x88\x4f\x73\x44\x40\x8f\x7b\xd5\xdf\xd2\x0e\xd3\x7c\xf2\ \xff\x3e\xb4\x36\xd2\x49\x73\x24\x93\xe6\x32\x40\x73\x44\xa5\xa5\ \xb7\xb4\x03\x51\xdc\x47\x69\xa4\x93\xe6\x48\x55\x9a\x23\xaa\x2a\ \x0d\xbd\xa5\xf5\xa3\xb8\x8f\xd2\x48\x27\xcd\x91\xaa\x34\x47\xba\ \xaf\x49\x8a\xcf\x5c\xe1\x2d\xad\x1f\x9c\x06\x91\x1e\x0b\x69\xee\ \xdf\xc7\xec\x6b\x92\x8e\x1e\xcd\xd3\x1c\x21\xd2\x83\x21\xcd\xf1\ \xeb\x0a\x99\x7f\x4d\xb2\xb5\x2e\x34\x27\xd2\x03\x21\xcd\x91\x3e\ \x9a\x83\xb4\xb2\x26\x34\x27\xd2\x03\x21\xcd\x91\x7e\x9a\x83\xb4\ \xb2\x16\x34\x27\xd2\x03\x21\xcd\x11\x8f\xe6\x88\xac\x01\xcd\x5b\ \x43\x3a\x69\x8e\x14\xa5\x39\x22\xcd\xd3\x7c\xd5\x48\x27\xcd\x49\ \x73\xe4\x8b\xd4\x9c\xb9\x8a\xd3\x1c\xb1\x9b\x44\x7a\x20\xa4\xb9\ \x7f\x1f\xff\x98\x2b\x29\x34\x3f\x58\x35\xcd\x11\xb3\x69\x1c\xe9\ \x0c\x69\x6e\x0b\x9a\xed\xac\x2b\x09\x34\x3f\x58\x35\xcd\x91\x8e\ \x5a\xed\x20\x9d\x34\x47\x72\x69\x6e\x0b\x9a\x9d\x59\x57\x7c\x9a\ \x8f\x52\x16\xa8\xe3\x34\x47\x66\xd4\x5a\x02\xe9\x4c\x0a\xcd\x91\ \x14\x9a\x23\x0b\x90\x9d\x83\x57\x1c\x9a\x67\xcf\x5c\xc5\x69\xae\ \x73\x6a\x85\x91\xce\xa4\xd0\x1c\xc9\xa5\xb9\x2d\xd2\x1c\xe0\x95\ \xc0\xcc\x55\x69\x9a\x83\x5a\x51\xa4\x33\x29\x34\x47\x0a\xd2\x1c\ \xe0\x15\x6f\xe6\x6a\x04\x7a\x34\x40\x73\x50\x8b\x48\x8f\x26\x85\ \xe6\x48\x49\x9a\x23\x12\x98\xb9\xaa\x4d\x73\x84\x48\x0f\x84\x34\ \xef\xbb\x0f\x44\xb0\x40\xed\xcc\x5c\xb5\x41\x73\x84\x48\x0f\xe4\ \x9c\xbd\x7b\xdb\x8d\xa3\x88\xc2\x28\xbc\x25\x3a\x96\xa1\x1b\x29\ \x17\xc8\x31\xe6\x22\x52\x8e\x1c\x0f\x8f\x94\x04\x1c\x3b\xe1\x14\ \x27\x18\x78\x7c\xe6\xe0\x99\xd5\xa6\x25\xca\xea\xd2\xee\xbf\xaa\ \x66\xcf\xc5\x7a\x83\xba\xf8\x34\xfa\x77\x17\x42\x73\x22\xa1\x39\ \x99\xa8\xf7\x77\x4b\x6c\x69\xeb\xa0\x39\xa9\x0f\xe9\x41\x73\x22\ \xa1\x39\x99\xa8\x77\x45\x00\x4b\x6c\x69\xe5\x34\x7f\x79\x47\x9a\ \xe7\x23\x3d\x06\x1f\x12\x9a\x13\x09\xcd\xc9\x44\xbd\x1b\x02\x58\ \xe1\x67\xae\xee\x48\xf3\x7c\xa4\xc7\xe0\x43\x42\x73\x22\xa1\x39\ \x99\xa8\xf7\x86\x00\x56\xfe\x99\xab\x34\xcd\xf3\x91\x1e\x83\x0f\ \x09\xcd\x49\x19\x34\x27\x7b\x02\x58\x26\xcd\x2f\xfc\x68\x8e\x35\ \xd2\x34\xcf\x47\x7a\x0c\x3e\x82\xe6\x04\x02\x58\x8a\xe6\xfa\x2d\ \x6d\x9a\xe6\xf9\x48\x8f\xc1\x47\xd0\x9c\x8c\x1d\x60\xca\x2d\x6d\ \x3e\xcd\x9b\x41\x7a\xd0\x9c\x48\x68\x4e\x6e\x3b\xc0\x24\x5b\x5a\ \x07\x9a\x93\x77\x67\xd5\x21\x3d\x68\x4e\x24\x34\x27\xff\x75\x80\ \x09\xb6\xb4\x0e\x34\x27\x2b\x97\x9d\x65\x20\x3d\x06\x1f\x0a\x9a\ \x13\x09\xcd\xc9\x04\x03\x17\xa6\xdf\xd2\xe6\xd3\x9c\x6c\x70\x76\ \x36\x17\xe9\x31\xf8\x90\xd0\x9c\x94\x41\x73\xb2\xa2\x82\xe5\x6e\ \x69\xf5\x34\x27\x37\x38\x3b\x9b\x87\xf4\xb8\xc5\x20\xa1\x39\x29\ \x83\xe6\x64\xe3\x05\xab\x9d\xe6\x64\x2f\xb4\x8f\xe7\x22\x3d\x6e\ \x31\x04\xcd\xc9\xd6\x0b\xd6\x08\xcd\x47\x42\x9b\x8b\xf4\xb8\xc5\ \x10\x34\x27\x3b\x2f\x58\x13\x34\x1f\x09\xad\x62\xa4\x07\xcd\x89\ \x84\xe6\x04\x34\x58\x03\x34\x1f\x09\x2d\x07\xe9\x41\x73\x22\xa1\ \x39\x91\xd0\x9c\x8c\xd1\x60\xd5\xd3\x7c\x24\xb4\x1c\xa4\x07\xcd\ \x89\x84\xe6\x44\x42\x73\x72\x5b\x0e\x56\xd1\x96\x96\x90\x11\x3d\ \x72\x90\x1e\x34\x27\x12\x9a\x93\x22\x68\x4e\xac\x8a\x2d\x6d\x9a\ \xe6\x59\x48\x0f\x9a\x13\x09\xcd\x49\x19\x34\x27\xd7\x56\xfe\x96\ \x36\x4d\x73\x92\x8f\xf4\x38\x93\x18\x34\x27\xd7\xbf\x5a\xf1\x5b\ \xda\x34\xcd\xdb\x42\x7a\xd0\x9c\x48\x68\x4e\xd6\xb8\xb0\xc2\xcf\ \x5c\xa5\x69\xde\x16\xd2\x83\xe6\x44\x42\x73\xb2\x15\x86\x35\x43\ \x73\xf2\x49\xb5\x48\x0f\x9a\x13\x09\xcd\xc9\x4e\x18\xd6\x08\xcd\ \xc9\xb9\x1d\xcd\x47\x7a\xd0\x9c\x08\x68\x4e\x24\x34\x27\x08\xc3\ \x9a\xa0\x39\x59\x4b\xee\x68\x2e\xd2\x83\xe6\x44\x40\x73\x22\xa7\ \x39\xcc\xb0\x06\x68\x4e\xb6\x92\x3b\x9a\x87\xf4\xa0\x39\x39\x74\ \x9a\xc3\x0c\xab\x9e\xe6\x64\xc7\xb9\xa3\x39\x48\x0f\x9a\x93\xa0\ \x39\xb1\x56\x68\x3e\xe2\x5c\x2e\xd2\xe3\xe3\x82\x7a\x9a\x13\x09\ \xcd\x89\x09\xce\x5c\x39\xd0\x7c\xc4\xb9\x86\x90\x1e\x34\x37\x09\ \xcd\xc9\xf1\xb1\x15\x7d\xe6\x8a\xa4\xe9\x41\x5a\x41\x7a\x7c\x5c\ \x50\x42\x73\xb2\x1e\x81\x58\xde\x96\x96\xb8\x6e\x69\xd3\xf4\x20\ \xad\x20\x3d\xbe\xfb\x2f\xa1\x39\xd9\x8e\x40\x6c\x44\x0f\xc1\x05\ \xea\x7c\x9a\x4f\x4c\x97\x89\xf4\xa0\x39\x11\xd0\x9c\x48\x68\x4e\ \x76\x23\x29\x13\x6c\x69\x5d\x68\x2e\x40\x7a\x7c\xf7\xbf\x59\x9a\ \x33\xb2\x35\x87\x2d\xad\x80\xe6\x02\xa4\xc7\x77\xff\x1b\xa6\x39\ \x47\x1a\x2c\x7f\x4b\xab\xa7\x79\x93\x48\x0f\x9a\x93\xc5\x69\x7e\ \xbc\x8f\xe5\x6e\x69\xf5\x34\x6f\x12\xe9\x41\x73\x22\xa0\x39\xb1\ \xbc\x33\x57\x7a\x9a\x7b\x21\x3d\x68\x4e\x04\x34\x27\x12\x9a\x13\ \xab\x9b\xe6\x4d\x22\x3d\x68\x4e\x24\x34\x27\x7d\x6f\x45\x9e\xb9\ \x9a\x41\x73\xf2\xe1\xb4\x6a\xa4\x07\xcd\x89\x84\xe6\xa4\x5f\xfd\ \xac\xc0\x33\x57\x33\x68\x4e\x56\xec\x3b\x9d\x8b\xf4\xa0\x79\xd0\ \x9c\x6c\xbe\x99\x73\x69\xe5\x9f\xb9\x4a\xd3\x9c\x6c\xec\x77\x3a\ \x0f\xe9\x41\xf3\xa0\x39\xe9\xb7\xef\xa3\xb7\xb2\x68\xfe\x6e\x06\ \xcd\xc9\x8d\xfd\x4e\x1b\x42\x7a\xd0\x9c\x2c\x48\xf3\x7e\xf7\x3e\ \x7a\x9b\x41\x73\xd5\x96\x36\xf1\x3e\xf6\x00\xec\x9a\x41\x7a\xd0\ \x9c\x2c\x49\x73\xde\x47\x6f\x82\x2d\xad\x0b\xcd\x01\xa0\x03\xd2\ \x83\xe6\x17\x12\x9a\x93\x85\x69\x7e\xb9\x8f\x55\xb4\xa5\xfd\x9f\ \x00\xc0\x46\x91\x2e\xa1\x39\x91\xd0\x9c\x2c\x4e\x73\x62\x82\x2d\ \xad\x0f\xcd\x49\x7b\x48\x97\xd0\x9c\x48\x68\x4e\x04\x34\x27\x26\ \xd8\xd2\x7a\xd0\x9c\xb4\x87\x74\x09\xcd\xc9\xe1\xd1\x9c\x0c\x83\ \xb1\xa5\xad\x98\xe6\xa4\x3d\xa4\x4b\x68\x4e\x0e\x8f\xe6\x64\xfd\ \x89\x74\x6b\x85\xe6\x8d\x22\x3d\x68\x7e\xdb\x1f\xee\x34\x27\xc3\ \xfa\x7d\x0c\x56\x03\xcd\xd3\xf4\xf0\x44\x7a\xd0\x9c\x48\x68\x4e\ \xdc\x69\x4e\x86\xed\xfb\xf8\xc5\xca\xa7\x79\x9a\x1e\x9e\x48\x0f\ \x9a\x13\x09\xcd\xc9\x82\x34\x1f\x76\xef\x63\xb0\xd2\x69\x9e\xa6\ \x47\x93\x48\x87\xe6\x44\x42\x73\x22\xa1\x39\x59\x92\xe6\xbc\x8f\ \xc1\x2a\xa1\x79\x9a\x1e\x64\xa8\x1e\xe9\xd0\x9c\x48\x68\x4e\x24\ \x34\x27\x0b\xd3\x7c\xd8\xc7\xa4\x67\xae\xf2\xff\x15\x9c\xe6\xf2\ \x9f\x93\xca\x91\x0e\xcd\x89\x84\xe6\xe4\xd0\x68\x4e\xac\xbc\x33\ \x57\x33\x68\x4e\xd6\x50\x3c\x71\x40\xba\x7e\xf0\x11\x34\x27\xee\ \x34\x27\x56\xfc\x99\xab\x34\xcd\xc9\x16\x8a\x27\x0e\x48\x57\x0f\ \x3e\x82\xe6\xc4\x9d\xe6\xe4\xbc\x03\xe9\x44\xb8\xa5\x9d\x41\x73\ \xb2\xd3\xe2\x89\x23\xd2\x83\xe6\x57\x12\x9a\x13\x77\x9a\x93\xee\ \xbc\xeb\xac\xa4\x33\x57\x59\x34\x47\x8b\x7e\x48\x0f\x9a\x5f\x49\ \x68\x4e\xdc\x69\x4e\xba\xf5\xfb\xe8\x6c\x42\x8f\x3a\x69\x8e\x16\ \x3d\x91\xae\x1f\x7c\x48\x68\x4e\x24\x34\x27\xee\x34\x27\xdd\xf6\ \x7d\x74\x36\xa1\x47\x8d\x34\x47\x8b\x9e\x48\xd7\x0f\x3e\x24\x34\ \x27\x87\x43\xf3\x6e\xf7\x3e\xce\x6d\x44\x8f\xaa\x69\x4e\x1c\x90\ \xae\xa4\x39\x91\xd0\x9c\x1c\x10\xcd\x79\x1f\x20\xfd\x75\xd5\x34\ \x27\x8e\x48\xd7\xdf\x62\x08\x9a\x13\x57\x9a\x77\xfb\x58\x33\x34\ \xf7\x46\xba\xfe\x16\x43\xd0\x9c\x38\xd3\x9c\x58\x1d\x34\x4f\xd3\ \xc3\x1f\xe9\x41\x73\x22\xa1\x39\x71\xa7\x39\xb1\xa2\xcf\x5c\xdd\ \x95\x1e\x02\xa4\x0b\x68\x4e\x24\x34\x27\x12\x9a\x93\x05\x68\x4e\ \xac\xf8\x33\x57\x69\x7a\x08\x90\x2e\xa0\x39\x91\xd0\x9c\x48\x68\ \x4e\x16\xa0\x39\x79\xd1\x59\x16\xcd\xfd\xb7\xb4\x69\x7a\x08\x90\ \x2e\xa0\x39\x91\xd0\x9c\x1c\x04\xcd\x79\x1f\x9d\x15\x7a\x81\xfa\ \xce\xff\x0a\x4e\x73\xd5\x67\x20\x5d\x49\xf3\x7f\xd9\xbb\x93\x5d\ \x27\x62\x20\x8c\xc2\x25\x71\x91\xb0\xa1\x25\xa4\x10\xb1\x60\x81\ \xc4\x38\x0f\x8f\x44\x0c\x5c\x86\x30\xcf\x8f\x4f\x43\x48\xce\xdd\ \xf5\xc2\x65\x7e\x5f\x53\xbd\x38\x6f\x50\x8b\x4f\xad\x72\x2d\xd2\ \x7c\x8e\x84\xe6\xe4\x3f\xa1\x39\xf3\x71\x64\x8a\x5d\x5a\x7f\x9a\ \x93\x59\x95\xeb\x86\x48\xd7\x5f\x30\x08\x9a\x93\x56\x34\x67\x3e\ \x8e\xac\x7e\x97\x56\x4f\x73\xf2\x47\x95\xeb\x96\x48\x0f\x9a\x13\ \x09\xcd\x49\x3b\x9a\x33\x1f\x4f\xad\x76\x97\x56\x4f\x73\xf2\x97\ \x96\xeb\x76\x48\x0f\x9a\x13\x09\xcd\x49\x53\x9a\x13\xab\xdb\xa5\ \xd5\xd3\x9c\x1c\x68\xb9\x6e\x85\xf4\xa0\x39\x91\xd0\x9c\x34\xa6\ \x39\x31\x9f\x67\xae\xf4\x34\x87\x96\x02\xa4\x2b\x2e\x18\x08\x68\ \x4e\x24\x34\x27\xcd\x69\x4e\x6c\x0c\x9a\x43\x4b\x01\xd2\x15\x17\ \x0c\x04\x34\x27\xe3\xd3\x9c\x58\x2f\x34\xdf\xd6\xd2\x9c\xb4\x47\ \xba\xfe\x82\x41\xd0\x9c\xb8\xd3\x9c\xe4\x62\x7d\xd0\x7c\x5b\x4b\ \x73\xd2\x1e\xe9\xfa\xe3\x82\x41\x73\xe2\x4e\x73\x92\x73\xc9\xd6\ \xc5\x33\x57\xb5\x34\x27\x02\xa4\x0b\x8e\x0b\xca\x69\x4e\x24\x34\ \x27\xee\x34\x27\x39\xe7\x92\xb3\xe9\x69\xbe\x75\xa1\xb9\x00\xe9\ \x41\xf3\x17\x12\x9a\x13\x77\x9a\x93\xbc\x9b\x8f\x6c\xd0\xbc\xdf\ \x5d\xda\x65\x7a\x28\x90\x1e\xc7\x05\x25\x34\x27\x0d\x69\x5e\xf6\ \xf3\x91\xad\xff\x5d\xda\x65\x7a\x28\x90\x1e\x77\xff\x07\xa6\x39\ \xf3\x51\xac\xf7\x5d\xda\x65\x7a\x28\x90\x1e\x77\xff\xc7\xa6\x79\ \x3e\xc4\xfa\xde\xa5\x5d\xa6\x87\x0c\xe9\xfa\xbb\xff\x41\x73\xe2\ \x4c\x73\x62\x3d\x3f\x73\xb5\xfc\x57\x50\x86\x74\xfd\xdd\xff\xa0\ \x39\x71\xa7\x39\xb1\x41\x68\x4e\xde\x7e\x5d\xc9\x91\x1e\x77\xff\ \xdb\xd3\x9c\xb8\xd3\x9c\xa4\x64\x43\xd0\x9c\xfc\x76\xe8\xaa\x3d\ \xd2\x83\xe6\x44\x42\x73\xe2\x4e\x73\x92\x52\xda\xd8\x00\x34\x27\ \x3b\x87\xae\x5a\x23\x3d\x68\x4e\x24\x34\x27\xee\x34\x27\x69\xfe\ \x36\xc9\x4e\x3d\xcd\xc9\x1e\xa3\xab\xb6\x48\x0f\x9a\x93\xd1\x68\ \x4e\x36\xbb\xf9\x48\x36\x0c\xcd\xc1\x68\x6b\xa4\xeb\x69\x4e\x04\ \x34\x27\xe3\xd2\x3c\xed\xe7\x23\xd9\x20\x34\x07\xa3\x02\xa4\x0b\ \x69\x1e\x34\x27\x7e\x34\x67\x3e\x92\xf5\xf2\xcc\x55\x15\xcd\xc1\ \xa8\x00\xe9\x42\x9a\x07\xcd\x89\x2b\xcd\xd3\x21\xd6\xc7\x33\x57\ \xf5\x34\x27\x12\xa4\x07\xcd\x8b\x80\xe6\xc4\x99\xe6\xc4\x7a\x78\ \xe6\xaa\x9e\xe6\x44\x82\xf4\xa0\x79\x11\xd0\x9c\x38\xd3\x9c\x80\ \x74\xe1\x2e\xad\x13\xcd\x05\x48\x97\xd3\x9c\x48\x68\x4e\x04\x34\ \x27\xee\x34\x27\xd3\x64\xea\x67\xae\x9c\x68\x2e\x46\xba\x84\xe6\ \x44\x4b\xf3\x32\x16\xcd\xc9\x34\x7f\x06\x3d\x4e\x31\xcd\xc5\x48\ \x97\xd0\x9c\x68\x69\x5e\xba\xa0\x39\xa9\xa4\x39\x39\x9e\xe6\xef\ \xd8\xca\x00\x34\xd7\x22\x5d\x42\x73\x12\x34\x3f\x99\x4a\x9a\x93\ \x69\x37\x1f\x93\x0d\x40\x73\x29\xd2\x25\x34\x27\x41\xf3\x93\x71\ \xa3\xf9\xb4\x9f\x8f\xc9\x46\xa1\x39\x79\x79\xee\xdf\x21\xbd\x21\ \xcd\x7f\xb1\x77\x27\xbb\x4e\xc4\x40\x14\x86\x4b\x02\xa4\x30\xc9\ \xd8\x46\x62\xc1\x02\x89\x71\x1e\x1e\x89\xf1\x32\xa4\x49\x33\x75\ \x2e\x8f\x4f\x94\xdb\xc9\xb9\x1b\xd4\x24\xc7\xd2\x69\x97\xdc\x8b\ \xff\x0d\x6a\xf1\xa9\x55\xe5\x8a\x68\x8e\x08\x68\x8e\x94\xa3\x39\ \xe6\xe3\xba\xf9\xa0\x39\xb2\x41\x6b\x22\x90\x5e\x23\xcd\x11\x09\ \xcd\x11\x01\xcd\x91\xa2\x34\x3f\xd9\xc7\x2a\xa0\xf9\x24\x3d\x90\ \x2d\x5a\x13\x81\xf4\x8a\x69\xde\x49\x68\x8e\x78\xa2\x39\x62\x73\ \x3f\x73\x35\x4d\x0f\x64\x94\x6b\x22\x90\x4e\x2c\x7c\x68\x69\xde\ \x49\x68\x8e\xf8\xa2\x39\x62\xb3\x3a\x73\xc5\xd0\xa3\xdb\xcb\x35\ \x11\x48\x27\x16\x3e\x94\x34\xef\x24\x34\x47\x7c\xd1\x1c\x09\xc1\ \x0a\xd3\x7c\x49\xd0\x9c\xa1\x47\x07\xb9\x12\x48\x27\x16\x3e\x94\ \x34\xef\x0a\xd2\xbc\xd1\x1c\x59\x85\x10\x4c\x77\x81\x9a\xff\x2b\ \x88\x40\xae\x04\xd2\xa9\x85\x8f\x46\x73\xa4\x66\x9a\x23\x61\x15\ \x36\x9f\xcd\x64\x97\x96\xa7\x39\x42\x20\x9d\x5e\xf8\x68\x34\x3f\ \xa9\x99\xe6\x48\x38\x9b\x8f\x95\xcd\x62\x97\x96\xa7\x39\x42\x20\ \xbd\x62\x9a\x23\x12\x9a\x23\x12\x9a\x23\x85\x68\x1e\x76\xf3\x11\ \x6c\x06\xbb\xb4\x3c\xcd\x11\x02\xe9\x15\xd3\x1c\x91\xd0\x1c\x71\ \x42\x73\xcc\x47\x30\xf9\x2e\x6d\x21\x9a\x13\x48\xa7\x69\x8e\x48\ \x68\x8e\x48\x68\x8e\xf8\xa1\x79\xd8\xc7\xca\x9c\xb9\xd2\xd3\x9c\ \x47\x3a\xbf\xf0\x21\xa1\x39\x52\x8a\xe6\x8d\xe6\x48\x34\x1f\x34\ \xe7\x91\xce\xdf\x62\x90\xd0\x1c\x69\x34\x1f\x33\x86\xa2\xf9\x98\ \x18\x7b\xf3\x42\x73\x1e\xe9\xfc\x2d\x86\x46\x73\x44\x42\x73\x84\ \xa2\xf9\x98\x18\x63\x1f\xcd\x07\xcd\x79\xa4\xf3\xb7\x18\x1a\xcd\ \x11\x09\xcd\x11\x8a\xe6\x63\xe2\x76\x3e\xa2\xb9\xa1\x39\x32\x10\ \x48\xaf\x99\xe6\x88\x84\xe6\x88\x84\xe6\x48\x01\x9a\x87\x7e\x9c\ \x8f\x68\x5e\x68\x8e\xac\x49\xa4\xf3\xb7\x18\x24\x34\x47\x24\x34\ \x47\x24\x34\x47\x8a\xd0\x7c\x3f\x1f\xd1\xaa\xd8\xa5\x9d\xa6\x07\ \xb2\xe6\x90\xce\x9f\x49\x94\xd0\x1c\x91\xd0\x1c\x71\x41\x73\xcc\ \xc7\x60\x35\xec\xd2\x4e\xd3\x03\x59\x53\x48\xe7\xcf\x24\xca\x68\ \x8e\x85\x8f\x46\x73\xe4\x48\x9a\x8f\x49\x43\xb2\x9a\x76\x69\xff\ \x67\x3e\x18\xa4\xf3\x67\x12\x65\x34\xc7\xc2\x47\xa3\x39\x72\x24\ \xcd\xc7\xa4\x34\xa4\x64\x73\xda\xa5\xe5\xe8\x31\x86\x42\x3a\x7f\ \x26\xb1\xd1\x1c\x91\xd0\x1c\x21\x68\xbe\x49\xda\xce\x47\xb2\x59\ \x9f\xb9\x42\xa6\xe9\x81\x10\x48\x77\x40\x73\x44\x4b\xf3\x5e\x42\ \x73\x84\xa2\x79\x9f\xc6\xf9\x48\xe6\x85\xe6\x08\x81\x74\x47\x34\ \x5f\x4a\x68\x8e\x48\x68\x8e\x90\x34\xdf\xcf\xc7\x60\x4e\x68\x8e\ \x10\x48\xf7\x43\xf3\xa5\x96\xe6\x7d\xe5\x34\xc7\x7c\x24\xf3\x41\ \x73\x84\x41\x3a\x4f\x73\x44\x40\x73\x44\x4b\xf3\xbe\x7e\x9a\xef\ \x92\xb3\x79\xa1\x39\x8f\x74\x9e\xe6\x88\x88\xe6\x58\xf8\x68\x34\ \x47\x26\x69\xfe\xaf\xf9\x58\xe4\x9c\xcd\x03\xcd\x59\xa4\x97\x7f\ \xc1\xa0\xd1\x1c\x91\xd0\x1c\x39\x84\xe6\x31\x61\x3e\x52\x5e\xe4\ \xcd\x67\x0e\x68\x4e\x22\xbd\xfc\xe3\x82\x8d\xe6\x88\x84\xe6\xc8\ \x21\x34\xef\x41\x8f\x94\xf2\xd9\x7c\x2c\x4c\x7d\xe6\x8a\xa7\x39\ \x8f\x74\x9e\xe6\xc8\xbc\x68\x6e\x5a\x9a\x0f\x12\x9a\x23\x87\xd0\ \x3c\x9e\xa7\x79\xde\xcd\x47\x36\xf1\x99\x2b\x9e\xe6\x04\xd2\x9d\ \xd2\x1c\xd1\xd2\x7c\x90\xd0\x1c\x39\x84\xe6\xf1\x3c\xcd\x33\xe6\ \x23\xdb\x51\xf4\xe0\x69\xde\x95\xa6\x39\xf2\xad\x3f\x00\xe9\x9e\ \x1f\x17\x3c\x96\xe6\x7f\xd9\xbb\xb7\xe5\xc6\x89\x20\x0c\xc0\x5d\ \x15\x47\x45\xb2\xab\x12\x86\x95\x90\x8c\x5c\x5b\xb5\x10\x60\x09\ \x87\x7d\x24\x20\x8b\xc9\x01\xcc\x21\x66\xe3\xc7\x67\x34\x9a\x7f\ \x46\x5e\x55\x6d\x3a\xc6\x35\x3d\x1e\x8d\x2e\xfe\x37\xe8\x8b\xaf\ \xbb\x47\x7d\xa0\x0b\x06\x47\x4c\x73\x57\x1f\x25\x31\xe8\x21\xf0\ \x07\xea\xfd\xeb\x43\x99\x78\xce\x45\xba\x87\xe3\x82\xfe\x69\x8e\ \xd8\x9f\xe6\x89\xe6\x88\xb2\x2c\x8f\xe2\x2d\x2d\xbf\x3e\x34\x8c\ \xe7\x5c\xa4\x4f\xe5\xee\x7f\xa2\x79\xfe\x14\x9a\x23\x4a\xf5\x3d\ \xa3\xf0\xdf\xd2\xf2\xeb\xc3\xc0\x78\xce\x45\xba\x87\xbb\xff\x89\ \xe6\x3a\x64\x69\x9e\x3f\x85\xe6\x88\x67\xba\x3e\x4a\x0a\xfd\x2d\ \x2d\xdf\x1f\x16\xc6\x73\x1e\xd2\x89\x3c\x1c\x17\x4c\x34\x57\x21\ \x4b\xf3\xfc\x29\x34\x47\x94\xa6\x3e\x4a\x3a\xa6\xb7\xb4\x1f\x0a\ \x07\x63\x0e\xd2\xe1\x8f\x49\xdc\xfd\x17\xa2\x39\x42\x96\xe6\xab\ \xbd\x68\x6e\xeb\xa3\xa4\xb0\x7f\x73\xc5\xa7\x39\x08\xc0\x43\xba\ \xf6\x39\x45\x4d\x73\x84\x10\xcd\x11\xb2\x34\xcf\xf7\xa3\xb9\xab\ \x8f\x2a\x1e\x9a\x23\x18\x48\xc7\x10\x3d\x62\x9a\x23\x84\x68\x8e\ \x38\x56\x9a\x9b\xa8\xaa\xe7\x14\x09\xcd\x11\x0c\xa4\x6f\xed\x10\ \x3d\x5a\x9a\x23\xf6\xa2\x79\xa2\xb9\x89\x4a\xd5\x47\x45\xe1\xd3\ \xfc\x1d\x87\xe6\x2a\x78\x48\x57\xf5\xb1\xc5\x10\x3d\x52\x9a\x23\ \xf6\xa2\x79\xa2\xb9\x89\x4a\xd7\x47\x45\xb1\xd0\x9c\x87\xf4\xbe\ \xc9\x8b\x25\x93\x44\x73\x99\xbb\xff\xe1\xd3\xbc\x7c\x6e\xea\xa3\ \xa2\x38\x68\xce\x43\xfa\x66\xb3\xc1\x10\x44\x23\xdd\xdb\xdd\xff\ \x44\xf3\xeb\xe3\xa2\xb9\xad\x8f\x4a\x94\xe6\xb7\x07\xa2\x39\x0f\ \xe9\xdd\x10\x64\xa3\x87\x20\x40\xfa\x24\x68\x8e\x10\xa1\x39\xe2\ \xd8\x68\x5e\x55\x08\x0a\xf5\x2d\x2d\x9f\xe6\x3c\xa4\xab\x26\xd6\ \x70\x53\x51\x37\x79\x27\x40\x73\x84\x08\xcd\x11\xc7\x47\x73\xc4\ \xac\xa6\x30\xdf\xd2\xf2\x69\xce\x42\xba\xae\x0f\x55\x20\xaa\xc9\ \x0b\xa4\xc3\x1f\x7e\x8e\x0b\x0a\xd1\x1c\x21\x42\x73\xc4\xf1\xd1\ \x1c\x51\xcf\xea\x9a\x42\x7c\x4b\xcb\xa7\x39\x13\xe9\xa6\x89\x75\ \xb1\x01\xd2\xd1\xbf\xf2\x73\x5c\x50\x88\xe6\x88\x27\xd1\x3c\xd1\ \x1c\x51\x77\xf5\x51\x53\xd8\x6f\x69\xf9\x34\x77\xf1\xd9\x2e\xd2\ \xfb\x26\xd6\x43\xd7\xc4\x02\xd2\x31\x44\xf7\x73\xf7\x5f\x88\xe6\ \x88\x40\x68\x8e\x08\x93\xe6\xe3\xfa\xa8\xfb\xfa\xa8\x89\x37\x15\ \x0c\x9f\xe6\x08\xa5\x84\x5d\xa4\xf7\x4d\x2c\x55\x20\x40\xfa\xfd\ \x3d\x86\xe8\xbe\xee\xfe\x27\x9a\x23\x02\xa6\x79\x39\xa4\x79\x8d\ \xfa\x98\x51\x1c\x34\x47\x68\x2a\x0c\x91\x8e\x26\xd6\x03\x90\xae\ \x00\x62\x87\xe8\x7e\xee\xfe\x27\x9a\x23\x04\x69\x8e\x18\xd1\x1c\ \xb1\x4b\x73\xf5\x99\xa0\x08\x68\x8e\x00\x15\x1c\xd2\xd1\xc4\xb2\ \x48\xff\x47\x01\xe4\xe4\x1e\x43\xf4\xc9\xd0\x1c\x21\x42\x73\x84\ \x20\xcd\x11\x23\x9a\x23\xde\xa7\x79\x8d\xc8\x28\x1a\x9a\x3b\x2a\ \xac\x0d\xd2\x47\x9b\x26\x2f\x4d\x93\x17\x4b\x26\xe2\x77\xff\xb7\ \xb2\xc7\x05\xd7\x31\xdc\xfd\xe7\xff\x26\x71\x44\x73\xc4\x88\xe6\ \x88\x2c\xcb\x28\x12\x9a\x0f\xbc\x60\x90\x8e\x26\x96\x45\xba\xde\ \xe4\xd5\x43\x10\x20\xdd\x0f\xcd\x11\x42\x34\x47\xc4\x45\x73\xfe\ \x05\x03\x04\x9f\xe6\x88\xf3\x4c\x7d\x14\x05\xcd\x07\x5e\x30\x48\ \x77\x4d\x2c\x20\xbd\x6f\xf2\x62\x53\x51\x37\x79\x7d\xde\xfd\x17\ \xa2\x39\x22\x2e\x9a\xf3\x2f\x18\x20\xf8\x34\x47\x64\xba\x3e\xce\ \x29\xb8\xdf\x5c\xf1\xe9\x81\x18\x78\x01\x48\x1f\x6d\x9a\xe8\x4d\ \xc5\x8d\xdb\x54\x84\x3f\x3c\xdd\xfd\x17\xa2\x39\x62\x1a\x34\x2f\ \x0e\x47\xf3\x3a\x33\xf5\x91\x51\xf8\xbf\xb9\x62\xd2\xdc\xc5\x5c\ \x37\xb1\xde\xb8\x4d\x13\x65\xf4\xfe\xb9\xed\x4b\x20\xbd\x1f\xa2\ \x7b\xbf\xfb\x9f\x68\x8e\x38\x3c\xcd\x8b\x43\xd2\xdc\xd6\x47\x46\ \xa1\xff\xe6\x8a\x4d\x73\x17\xeb\xdd\x4d\x13\x6c\x62\xdd\x6e\x80\ \x74\x2c\x99\x4c\x93\xe6\xab\xc7\x68\x9e\x68\xee\xea\x63\x41\x0c\ \x9a\x4b\xbe\xa5\xe5\xd3\xdc\xc5\x7c\x67\xd3\x44\x37\xb1\xba\x26\ \x2f\x90\x4e\x84\x21\xfa\x14\x69\xbe\x62\xd0\x3c\xd1\xdc\xc4\x62\ \xb1\xa0\xc0\xdf\xd2\xf2\x69\xee\x62\x3e\xd8\x34\x41\x13\x0b\x9b\ \x58\x5d\x7d\x10\x86\xe8\x3e\x69\x8e\x10\xa2\x39\x82\x41\xf3\x44\ \x73\x13\x0b\xf5\x9d\x11\xf3\x2d\x6d\xf8\x34\x77\x31\xb7\x9b\x26\ \xa6\x89\x85\xe7\x84\x9b\xfe\x77\x0d\x76\x88\xee\x8f\xe6\x08\x59\ \x9a\xaf\x18\x34\x4f\x34\x37\x71\xa6\xeb\x63\x41\x4c\x7a\x84\x4f\ \xf3\x31\xd2\x2f\xb0\x69\x62\x91\xfe\x6a\x8b\x21\x88\x46\x88\x2f\ \x9a\x23\x64\x69\xbe\x62\xd3\x3c\xd1\x3c\x5b\x98\xfa\x58\x10\x93\ \x1e\xe1\xd3\xdc\xc5\x4a\x23\x5d\x19\xfd\xe2\xab\xae\x89\xf5\x0d\ \x90\x6e\x9b\xbc\x40\xba\x1f\x9a\x23\x8e\x87\xe6\x89\xe6\xb6\x3e\ \x16\xc4\x9c\x0a\x86\x4f\x73\xc4\xd5\x8b\x42\x21\xfd\x73\xbb\x69\ \x02\xa4\xa3\xc9\x4b\x40\xfa\x8b\x2b\xb1\xbb\xff\x89\xe6\xb3\xb0\ \x69\x7e\xb6\x40\x50\x24\x34\x47\x74\xee\x2e\x14\xd2\x2f\x55\x81\ \x28\xa4\xbf\xb2\x48\x37\x4d\x5e\x6c\x2a\xc2\x1f\x13\xa5\xf9\x5a\ \x88\xe6\x88\xd0\x69\x8e\x68\x72\x8a\x81\xe6\x08\x33\xd7\x28\xba\ \x26\xd6\xa5\x6a\x62\x01\xe9\xaa\x3e\xdc\x26\x96\xab\x8f\xab\xa9\ \xd2\x7c\x2d\x4b\xf3\x59\xe8\x34\x47\x34\x4d\xde\x50\x34\x34\x7f\ \x6b\xe7\xe2\x45\xd7\xc4\xba\x7c\xf3\x1a\x48\xd7\x4d\x2c\xdd\xe4\ \x35\x48\xc7\x10\x5d\xea\xee\xbf\x2c\xcd\xd7\xb2\x34\x9f\x85\x4e\ \x73\x44\xd3\xd5\x47\x43\xb1\xd0\x7c\xb0\x57\xb5\xd2\xcf\xa5\x80\ \xf4\x8f\xf5\x75\xa9\xe1\x26\xd6\x5f\x58\x32\x11\xa1\xf9\xb5\x10\ \xcd\x11\xb2\x34\x9f\x85\x4e\x73\x44\xd3\xd7\x47\x43\x71\xd0\x7c\ \x67\x2f\xb7\x50\x05\x02\xa4\x9f\x9e\xf6\xff\xc4\x7a\x67\x37\xb1\ \x54\x8f\x17\x43\x74\x01\x9a\x5f\xcb\xd2\x7c\xcd\xa2\x79\xa2\x79\ \x8e\xfa\x68\x28\x06\x9a\x9b\xd2\x40\x14\x5f\x02\xe9\xba\x89\xa5\ \xaf\x4b\x01\xe9\x18\x82\x68\xac\xf8\xa3\x39\x22\xd1\x7c\x54\x1f\ \xe2\x34\x1f\xd7\x87\x2e\x0d\x13\x14\xf6\x5b\x5a\x3e\xcd\x11\x43\ \xa4\x77\x9b\x58\xdd\x3f\x7f\xbe\x00\xd2\xed\x10\xc4\x21\xfd\x0f\ \xa9\xbb\xff\x89\xe6\xe7\xf2\x34\x47\xbc\x4f\xf3\x06\xd1\x52\xe0\ \x6f\x69\xf9\x34\x47\x00\xe9\xae\x89\x05\xa4\xf7\x4d\x5e\x0c\x41\ \xd4\x37\x51\x9a\x23\x84\x68\x8e\xf0\x4d\xf3\x6a\x44\x73\xc4\x88\ \xe6\x88\xa2\x6d\x29\xf0\xb7\xb4\x7c\x9a\xef\x22\xdd\x35\xb1\x80\ \x74\xd7\xe4\xb5\x48\x97\xa1\x39\x42\x88\xe6\x08\x21\x9a\x23\x7c\ \xd3\xbc\x1a\xd1\x1c\x31\xa2\x39\xa2\x55\xf5\xd1\x92\x87\xb7\xb4\ \x7e\x68\xee\xa2\xe8\xea\xc3\x34\xb1\x80\xf4\x5b\xd3\xe4\xc5\xa6\ \xa2\x6e\xf2\x4a\xd0\x1c\x21\x44\x73\x84\x10\xcd\x11\x07\xa5\x39\ \xff\x37\x89\x63\x9a\x67\x23\x9a\x23\x5a\x5d\x1f\x2d\x05\xfe\x9b\ \x2b\x3e\xcd\x5d\x14\xb6\x89\x05\xa4\xab\x4d\x45\x34\x79\x81\x74\ \xf8\x43\x84\xe6\x77\x42\x34\x47\x44\x40\x73\xd6\x05\x03\x04\x9f\ \xe6\x88\xd6\xd4\x47\x41\xd1\xd0\xdc\x45\x81\x26\x16\x90\x6e\x9e\ \x13\x6e\xb7\x0e\xe9\x1a\x30\x42\x34\xbf\x13\xa2\x39\x22\x0e\x9a\ \xf3\x2f\x18\xec\x41\x73\x5b\x1f\x2d\x05\xfe\x9b\x2b\x3e\xcd\x5d\ \x14\x3b\x9b\x26\xba\x89\x75\xdb\xff\x13\x0b\x48\x37\x43\x74\x11\ \x9a\xdf\x25\x9a\x3f\x52\x1f\xc5\x3e\x17\x0c\x0e\x4a\x73\x57\x1f\ \x4b\x0a\xfb\x37\x57\x7c\x9a\xbb\xb8\xf9\x79\xb8\x69\xa2\x9b\x58\ \xbb\x9b\x58\x37\x18\xa2\x27\x9a\xab\x10\xa2\x39\x82\x41\x73\xc6\ \x05\x83\x43\xd3\xdc\xc4\x72\xb9\xa4\xb0\x7f\x73\xc5\xa7\x39\x42\ \x3d\xf3\xc8\x2d\xd2\x4f\x54\x81\x5c\xf6\x4d\x2c\x87\xf4\x9b\x1b\ \x0c\xd1\x13\xcd\x7f\x17\xa2\x39\x82\x45\x73\x84\x37\x9a\x9b\x98\ \x2f\xd5\x47\xe1\xd1\xfc\xed\x1e\x34\x47\xe8\x5b\x06\xb9\x41\xba\ \x6a\x62\x9d\xa0\x89\x05\xa4\xa3\xc9\xab\x29\x23\x47\x73\x84\x10\ \xcd\x11\x42\x34\x47\xb0\x68\x8e\xf0\x46\x73\x13\x4b\x5d\x1f\x73\ \x62\xd0\x5c\x66\x61\x97\x4f\x73\x04\x6e\xe1\xe4\x1a\xe9\xba\x89\ \x75\xa2\x9b\x58\x16\xe9\x7d\x93\xd7\x6e\xba\x4b\xd1\x1c\x21\x44\ \x73\x84\x10\xcd\x11\x2c\x9a\x23\x3c\xd3\xbc\x5d\x9a\xfa\x58\x52\ \xe0\x0b\xbb\x7c\x9a\xbb\x5b\x6a\x79\x77\x3d\xe7\xf5\xf7\x68\x62\ \x39\xa4\xdf\x9f\xf6\x4d\x5e\x6c\xba\xcb\x1e\x17\x14\xa2\x39\xe2\ \x03\x34\x4f\x34\xb7\xf5\xb1\xa4\xe3\x79\x4b\xfb\x18\x3d\x50\x1f\ \x0a\xe9\xb6\x89\x35\x44\xfa\x76\x6b\x9a\xbc\x40\xfa\x83\xe4\xdd\ \xff\x78\x69\xfe\x1f\x7b\x77\xdb\xdc\xc4\x0d\x45\x01\xf8\x8e\xc1\ \x0c\xa6\xb5\x70\xd3\x40\x78\xeb\xc6\x9b\x34\x9d\x78\x92\x32\xfc\ \x24\x1c\xc0\xbc\xb4\x86\x05\x5c\x3b\x3f\x1f\x69\x57\x67\xaf\x8a\ \xb2\xd5\x38\x53\xe7\x6a\x85\xfc\xe1\xfc\x83\xf3\xe1\x39\xb2\xb4\ \x09\xd0\x5c\x57\x03\x41\x7d\xb9\x4b\x1b\xa6\x47\x1b\x63\x8c\x58\ \x0e\xd2\xb5\xd1\x9b\x91\x77\x02\xa4\xc3\x1f\xf2\xdf\xfd\xcf\x34\ \x5f\xc4\x46\x73\x84\x52\x14\xfd\x5d\xda\x30\xcd\x51\x0d\xc4\xd8\ \x8e\x58\x8c\xf4\x13\x3b\x62\x11\x01\xe9\x75\x25\x33\xcd\x6d\xc8\ \xd2\x7c\x1c\x1b\xcd\x11\x4a\xa9\x3d\x72\x4f\x05\x7b\x4d\x73\x8e\ \x71\x33\x62\x01\xe9\x76\xc4\x3a\xd2\x23\x16\x90\x6e\x0f\xd1\x33\ \xcd\xeb\x90\xa5\xf9\x38\x36\x9a\x23\x94\xe9\x87\xa2\x64\x68\xce\ \x31\x7e\x7a\xe6\x20\x5d\xf7\xc3\x8e\x58\x40\xfa\x2b\x1c\xa2\xcb\ \xd2\x1c\x21\x44\x73\x84\x2c\xcd\xc7\xb1\xd1\x1c\xb1\xd7\xf4\x43\ \x51\x32\x34\xe7\x98\x9f\x32\xd2\x79\xc4\x02\xd2\x75\xad\x70\x88\ \x2e\x49\x73\x84\x10\xcd\x11\xb2\x34\x1f\xc7\x4a\x73\x85\x7e\x28\ \x4a\x82\xe6\x5d\x48\x1f\x0e\x27\xf8\xfa\x1a\x90\xbe\xaf\x37\x2c\ \x1c\xa2\xcb\xd1\x1c\x21\x44\x73\xc4\xd5\x34\xcf\x34\xe7\x7e\x28\ \x4a\x86\xe6\x3e\xd2\xf1\xe6\xcf\x66\xdd\x22\xbd\x19\x79\x75\xf3\ \x80\x74\x49\x9a\x57\xb1\xd2\x3c\xd3\x5c\x21\x7e\xa5\x54\x68\xee\ \x23\x1d\xd7\xa5\x36\x40\xfa\x57\xa2\x7a\xe4\x6d\x5f\x6a\x90\xa1\ \x39\x42\x9a\xe6\x99\xe6\x08\x8f\xe6\xdc\x0f\x45\x51\x3f\x73\x15\ \xa6\x79\x17\xd2\x67\x33\x5c\x97\x02\xd2\xcd\x75\xc2\x49\x33\xf2\ \x02\xe9\x99\xe6\x4e\xfc\x70\x34\x47\x78\x34\x77\xfb\xa1\x28\xf2\ \x67\xae\xc2\x34\xf7\xe3\xe2\x94\xaf\x4b\x01\xe9\x66\xe4\xad\x47\ \xac\xf7\x8c\xf4\x75\xa6\x79\x1b\xa9\xd2\x1c\xe1\xd1\x1c\x71\x25\ \xcd\xb9\x1f\x8a\xa2\x7e\xe6\x2a\x4c\x73\x3f\xaa\xe1\x48\x17\xe4\ \x79\xf3\xf5\x1c\x20\xdd\x8e\xbc\x54\x39\x48\x5f\x2f\xe5\x69\xce\ \x21\x42\x73\x44\xe2\x34\x1f\x79\x34\x47\x74\xd0\x9c\xfb\xa1\x28\ \x48\x73\xf9\xbb\xb4\x61\x9a\x73\x54\xd5\xb0\x1a\x69\xa4\xcf\x66\ \xfc\x30\xaf\xee\xc7\x0a\xd7\x09\x19\xe9\xba\xc4\xf2\x34\x47\x88\ \xd0\x1c\x91\x04\xcd\xc3\xcf\x24\x32\xcd\x11\xdd\x34\xe7\xa0\xe8\ \x9f\xb9\x0a\xd3\x9c\xa3\x32\xfd\xd0\x05\xd1\x23\x56\x8b\x74\x3b\ \x62\xe9\x7e\x00\xe9\x1b\x83\xf4\xb5\x8b\x74\x21\x9a\x23\x44\x68\ \x8e\x48\x80\xe6\x81\x2f\x18\x6c\x4f\x73\x8e\x82\x82\xf4\x88\x9f\ \xe6\x88\xaa\xe9\x47\x35\xd2\x23\x16\x90\xee\x8c\x58\x40\xfa\x81\ \x41\xfa\xda\x41\xba\x10\xcd\x11\xd7\xa6\x79\xa6\x79\xf8\x0b\x06\ \xd7\xa3\x39\xe2\x41\x51\x90\x47\x8f\xbe\xd2\x7c\x88\x7e\x54\x8c\ \xf4\xd3\x76\xc4\x62\xa4\x1f\x18\xa4\x6f\x18\xe9\x42\x34\x47\x44\ \x42\x73\x44\x84\x34\x0f\x7f\xc1\xe0\x7f\xa6\x39\xa2\xd0\xfd\x28\ \xc8\xa3\x47\x4f\x69\xce\xfd\x60\xa4\xf3\x88\xc5\x48\x3f\x30\x48\ \xdf\xb4\x48\xcf\x34\x77\x23\x42\x9a\x87\xbf\x60\xb0\x03\x9a\x9b\ \x28\xea\x7e\x14\xe4\x9d\x0a\xf6\x95\xe6\xe8\x07\x90\x8e\xeb\x52\ \x9b\x7f\x21\x7d\xdf\x20\x7d\x03\xa4\x67\x9a\xbb\x21\x47\xf3\xf0\ \x17\x0c\x6e\x98\xe6\xaa\xb0\xfd\x78\x40\xa9\xd0\x1c\x01\xa4\x9f\ \x1c\x1a\xa4\xf3\x3f\x4d\x2e\x87\x06\xe9\xfb\x2e\xd2\xdf\x46\x46\ \xf3\xb9\x08\xcd\x11\x72\x34\x0f\x7f\xc1\xe0\xc6\x69\xde\xf6\xa3\ \xa0\xbe\xd3\xdc\xa9\x06\x23\xbd\x19\xb1\x74\x41\xf8\x9f\x26\xb7\ \xbe\x47\xba\x7f\x34\x28\x4b\xf3\x79\x07\xcd\xf3\x77\xff\x05\x68\ \x5e\x14\x08\x8a\xfc\x99\xab\x2d\xe8\xc1\x48\xb7\x23\x96\x8b\xf4\ \x5b\x06\xe9\x13\x46\xba\xef\x73\x21\x9a\x23\xa2\xa3\xb9\xe0\x77\ \xff\xe5\x69\x8e\x98\x4e\x29\xf2\x67\xae\xc2\xf4\xf0\x63\x64\xaf\ \x4b\x39\x48\x3f\x32\x48\x9f\xb4\x48\x5f\x2f\xbf\xdf\x77\x65\x69\ \x3e\xf7\x69\x9e\xbf\xfb\x2f\x47\x73\xc4\x54\xff\x68\xc7\x34\x7f\ \xbd\x33\x9a\x83\x1e\x7e\x8c\xea\x11\xcb\x43\xfa\x10\x48\x7f\x8d\ \x43\xf4\xb6\x1f\xb2\x34\x9f\x27\x4e\x73\x44\x4f\x68\x8e\x78\x68\ \xfa\xf1\x90\x22\x7a\x81\x7a\xfb\x53\xc1\xab\x63\xa4\x47\x2c\x20\ \xfd\xd8\x20\xfd\xd0\x41\x7a\xd3\x8f\xa5\x7b\x35\x6a\x97\x34\xcf\ \x34\x47\xf4\x84\xe6\x88\x69\xd3\x8f\x29\xf5\xe4\x2e\x6d\x98\xe6\ \x1c\xa3\x17\x2d\xd2\xcf\x0c\xd2\x4f\x1c\xa4\xd7\x23\x2f\x0e\xd1\ \xa3\xa4\xf9\x42\x9e\xe6\x99\xe6\x53\xf4\x63\x4a\x71\xdf\xa5\x0d\ \xd3\x3c\x8c\xf4\x13\x46\xba\x1d\x79\x71\x88\x1e\x21\xcd\x17\x82\ \x34\x47\x64\x9a\x73\x3f\xa6\x14\xf5\x5d\xda\x30\xcd\xc3\x48\x9f\ \x31\xd2\xcd\xc8\xbb\x31\x6f\xfe\x00\xe9\x68\x05\x87\x2c\xcd\x17\ \x51\xd0\x3c\xd3\x9c\xfb\x51\x52\xac\x77\x69\xc3\x34\x0f\x22\xfd\ \x77\x83\xf4\x63\x20\x9d\x47\x5e\x20\xdd\xef\x87\x2c\xcd\x17\x91\ \xd0\x3c\xd3\x1c\x51\x96\x8f\x28\xfa\x67\xae\xc2\x34\xf7\x91\xfe\ \xdc\x20\xfd\xdc\x45\xfa\xe5\x25\x46\x5e\x20\xdd\x3f\xfa\x10\xa2\ \x39\x22\x12\x9a\x67\x9a\x23\x4a\xdd\x8f\x92\x12\xa1\xb9\x8f\xf4\ \x73\x46\xba\x36\x3a\x46\x5e\x20\xdd\xf7\xf9\x0f\x45\xf3\x4c\x73\ \x84\x47\x73\x44\x59\xf7\xa3\xa4\x34\x68\xee\x23\xfd\x0f\x20\xdd\ \xf4\xa3\x1e\xb1\xf8\x9f\x58\x4b\x7b\x88\xee\x4d\x57\x99\xe6\x88\ \xc4\x69\x8e\xf0\x68\x8e\x78\x64\xfb\x51\x52\xcf\x69\x1e\x46\xba\ \x1e\xb1\x56\xf5\x88\x45\x40\xfa\x12\x87\xe8\xd1\xd2\x7c\x29\x44\ \x73\x44\x12\x34\x0f\xf7\xa3\x9b\xe6\x6d\x3f\x4a\x4a\x81\xe6\x3e\ \xd2\xff\x04\xd2\xeb\x11\x6b\x65\x46\x2c\x20\x5d\x8f\xbc\x38\x44\ \x8f\x8d\xe6\x08\x21\x9a\x23\xd2\xa0\x39\xa2\x8b\xe6\xaa\x9b\xe6\ \x4e\x3f\xee\x50\x8f\x69\x1e\x46\xba\x1e\xb1\xcc\x9b\x0d\x47\xab\ \x2f\x40\xba\x19\x79\xdb\x43\xf4\x8e\x0b\x1f\x42\x34\x47\x08\xd1\ \x1c\x11\x3f\xcd\xaf\xff\x4c\xa2\x13\xff\x4d\x73\x1b\x83\x3b\x03\ \xea\xd3\x5d\xda\xad\x90\x6e\x47\x2c\x5d\x90\xc3\x15\x90\x6e\x47\ \x5e\x1c\xa2\x33\xcd\x9d\x10\xa2\x39\x42\x88\xe6\x88\xde\xd1\x3c\ \xfc\x05\x83\xed\x69\x6e\x63\xa0\xfb\x31\xa0\xfe\xdc\xa5\xdd\x12\ \xe9\x76\xc4\x72\x90\xde\x8e\xbc\xb8\x89\x0e\x9a\x3b\x21\x44\x73\ \xc4\xce\x68\xfe\x8d\xbd\x7b\xdd\x6d\x22\x06\xa2\x00\x3c\x0a\x04\ \xc5\x84\x4b\x0b\xe1\x2a\x48\xa1\x21\xa8\x15\x97\x67\x82\x50\xee\ \x2d\x49\x9a\x06\x78\x7c\xd6\xce\x1e\x4f\x9a\xfc\x18\x2d\x23\x65\ \x6c\x77\xff\x9c\x37\x58\xad\xbe\xe3\xb1\xa7\x3c\x9a\xcb\x1b\x0c\ \x14\x34\xaf\xa2\x13\xbe\x8f\x0e\xe5\x72\x97\xb6\x19\xd2\xb9\xc4\ \x8a\x48\xaf\x4b\xde\xdf\x27\x67\x40\xfa\x76\xb5\xdb\xd2\xfc\xb2\ \x3f\x4c\x68\xae\xdf\x60\xa0\xa7\xf9\xe3\x4e\xfd\x7d\x74\x28\x8f\ \xbb\xb4\x8d\x91\x8e\x12\x0b\x48\x5f\x2c\x50\xf2\x02\xe9\xdb\xfe\ \x68\x69\x7e\xd9\x1f\x46\x34\xd7\x6f\x30\xd0\xd3\x3c\x7e\x1f\x37\ \x28\xf9\x67\xae\x9a\x87\x8b\x25\x16\x90\x5e\x0d\x9a\x60\x12\x0b\ \x48\x47\x7f\x95\x2c\xcd\xa7\x46\x34\x47\xec\x8a\xe6\xf2\x06\x03\ \x03\x9a\x77\x3a\x08\x2a\x86\xe6\x1c\xee\xbd\x7f\xb3\x81\x91\x7e\ \xb8\x39\x89\x55\xff\x3f\xe6\xc2\x54\x89\x09\xcd\x11\x46\x34\x47\ \xec\x8a\xe6\xf2\x06\x03\x13\x9a\x73\x50\x31\x34\xe7\x98\x8c\xaa\ \x0f\x24\x22\x1d\x25\xd6\xfa\x75\x5b\x1c\x12\x0a\x53\x25\x66\x34\ \x9f\x1a\xd1\x1c\xa1\xa4\xb9\xf5\x72\x41\x3d\xcd\x39\xa8\x18\x9a\ \x73\xb8\xd1\x1a\xd2\xff\x1c\xf8\x12\xab\xbb\x58\x00\xe9\xbe\xc4\ \xc2\x21\xa1\x30\x55\x62\x44\xf3\x69\xde\x34\xd7\x6f\x30\xb0\xa7\ \x39\x07\x15\x43\x73\x0e\x37\x02\xd2\x07\x71\xd2\x04\x48\x0f\x93\ \xbc\x7c\x48\x28\x4c\x95\x58\xd0\x7c\x9a\x3b\xcd\xf5\x1b\x0c\xec\ \x69\xce\x41\xd9\xd2\x5c\x46\x7a\x65\xf4\x41\x28\xb1\x22\xd2\x43\ \xc9\x7b\x76\xf1\x15\x93\xbc\xe2\x54\x49\x4b\x73\x27\xd0\x5c\xb1\ \xc1\x20\x61\x9a\x73\x50\xa6\x34\x97\x91\xce\x25\x16\x90\xbe\x59\ \xf2\xce\x33\xa0\xf9\xd2\x88\xe6\x08\x81\xe6\x8a\x0d\x06\x49\xd3\ \x9c\x83\xd2\x7c\xe6\x4a\x8d\xf4\xba\xc4\x1a\xf0\xa4\xc9\x6c\x56\ \x97\xbc\x40\x3a\xfe\x1f\x09\xd3\x7c\x69\x4b\x73\xd7\x84\xe6\xfb\ \x25\xd1\x9c\x83\x92\x7b\xe6\x4a\x1f\xce\x97\x58\x07\xa1\xc4\x62\ \xa4\xd3\xac\x9e\xc4\x02\xd2\xe1\x0f\x61\xaa\xc4\x90\xe6\x4b\x5b\ \x9a\xbb\x26\x34\xdf\x2f\x82\xe6\x22\xd2\x15\xf4\x50\xd2\x9c\x0d\ \xa1\x0f\xe7\x4b\xac\xb0\x1d\x04\x48\x0f\x25\x16\x5f\xb7\xc5\xf7\ \xf1\x4d\x98\x2a\xb1\xa1\x39\xc2\x96\xe6\xae\x09\xcd\xf7\x8b\xa0\ \xb9\x88\x74\x89\x1e\x3b\x7b\x81\x5a\x8f\xf4\xf1\xc1\x3a\xd2\x51\ \x62\x7d\x02\xd2\x71\x48\x28\x4c\x95\x18\xd2\x7c\x69\x49\xf3\x96\ \xe6\x1c\x94\xdc\x5d\x5a\x7d\x38\x5f\x62\x45\xa4\x57\xdf\x87\x2f\ \xb1\x06\xb3\x88\xf4\xd3\x53\x7c\x1f\xc2\x54\xc9\x55\xa5\x79\x4b\ \x73\x0e\x4a\xee\x2e\xad\x3e\x26\x3c\x69\x32\xe0\x12\x0b\x48\xf7\ \x25\x2f\x0e\xd1\xc5\x0b\x1f\x2d\xcd\x43\x94\x48\x73\x7c\x1f\x42\ \x50\xc2\x77\x69\xf5\x48\xe7\x12\x0b\x48\x8f\x25\x2f\xe6\x77\x33\ \xa0\x79\xcf\x88\xe6\x88\x12\x69\x8e\xea\x4a\x0c\x4a\xf6\x2e\xad\ \x1e\xe9\x6f\xe2\xa4\x09\x90\xce\x93\xbc\x40\x7a\xfa\x34\xef\x19\ \xd1\x1c\x91\x27\xcd\x11\x5b\x34\x47\x80\x19\x52\x50\xa2\xcf\x5c\ \xe9\x91\x7e\xed\x08\x6f\x9a\x00\xe9\x55\xc9\xfb\x63\x75\xdd\x16\ \x48\x17\x68\x1e\xc2\x96\xe6\x3d\x23\x9a\x23\xb2\xa6\xf9\x70\x8b\ \xe6\x08\x08\x43\x0e\xca\x93\xe6\x32\xd2\x0f\x8f\xba\xdd\x3d\x5f\ \x62\x01\xe9\x71\x31\xc8\x05\x90\xde\x60\xaa\xc4\x88\xe6\x3d\x23\ \x9a\x23\xb2\xa6\xf9\x70\x8b\xe6\xdb\xd5\x95\x1c\x94\x21\xcd\x65\ \xa4\x8f\xc3\xa4\x49\x77\x8f\x27\x4d\xc2\xa4\x62\xb8\x6e\x0b\xa4\ \xc3\x1f\xc2\x54\x89\x21\xcd\xe7\xff\x4f\xf3\x96\xe6\x43\x15\xcd\ \x39\xa8\x18\x9a\x73\xb8\xe3\x71\x78\xd3\xa4\x1b\x27\x4d\xc2\x24\ \xd6\xf7\xf5\x49\xac\xd5\x21\xba\x30\x55\x92\x2b\xcd\x5b\x9a\x0f\ \x95\x34\xe7\xa0\x62\x68\xce\xe1\xea\x12\x0b\x48\x3f\x0f\x6f\x62\ \xad\x5f\xb7\xc5\x21\xba\x70\xe1\xc3\x82\xe6\x2d\xcd\xf5\x1b\x0c\ \xf4\x34\xe7\xa0\x62\x68\xce\xe1\x8e\x5f\x57\x06\x01\xd2\x43\x89\ \x45\xbe\xc4\x02\xd2\xcf\xe7\x38\x24\xcc\x80\xe6\x88\x2b\x47\x73\ \x84\x09\xcd\x39\x28\x43\x9a\xcb\x48\x1f\x47\xa4\xd7\x25\x16\xd1\ \x23\x20\xdd\x97\xbc\xf8\x3e\x72\xa1\x79\xbf\x50\x9a\xcb\x1b\x0c\ \x8c\x68\xce\x41\xc9\xdd\xa5\xd5\xc7\xe4\x18\x48\x8f\x25\x16\x01\ \xe9\xd5\xf7\x51\x75\x58\x38\x44\x97\x69\x8e\xb0\xa4\x79\xbf\x50\ \x9a\xcb\x1b\x0c\xcc\x68\xce\x41\xc9\xde\xa5\xd5\x23\x9d\x4b\x2c\ \x20\x9d\x4b\x5e\x20\x5d\xa4\x79\x08\x4b\x9a\xf7\x33\xa5\xb9\x7e\ \x83\x81\x21\xcd\x39\x28\xd1\xbb\xb4\x7a\xa4\x77\x31\x69\x12\x91\ \x7e\x82\xeb\xe8\x71\xd2\x5d\xa4\x79\x08\x4b\x9a\xf7\xf3\xa3\xb9\ \x7e\x83\x81\x3d\xcd\x39\x28\xc9\xbb\xb4\x7a\xa4\x73\x89\x05\xa4\ \xfb\xc5\x20\x67\x61\x31\x08\x90\x8e\x6a\x57\x98\x2a\x51\xd0\xbc\ \xa5\xb9\x62\x83\x81\x25\xcd\x39\x28\xc1\x67\xae\xf4\x48\xe7\x12\ \x0b\x48\xdf\x9c\x54\x0c\xfe\x90\x69\x3e\x49\x84\xe6\x88\x04\x69\ \x2e\x6f\x30\xc8\x90\xe6\x1c\x54\x0c\xcd\x39\x26\xbe\xc4\x7a\xb5\ \x3e\x69\x42\xe4\xaf\x13\xfa\x92\x17\x48\x5f\x1d\xa2\x67\x42\x73\ \x44\x82\x34\x97\x37\x18\x64\x49\x73\x0e\x2a\x86\xe6\x1c\x6e\x63\ \xd2\x24\x94\x58\x97\xde\x8c\xc3\x21\x7a\x16\x34\x47\xd8\xd0\xfc\ \x1f\x7b\x77\xbb\xdb\x44\x0f\x44\x01\x78\x44\x02\xc2\xe1\xb3\x7c\ \xf3\x0a\x08\x04\x78\x05\x82\x8b\x4a\x21\x21\x21\x6d\x5a\x9a\x86\ \x25\x97\x8f\xf1\xee\xf1\x10\xb9\x12\x8a\xad\xd1\x68\x47\xfe\x73\ \xee\x60\x7f\x3c\x67\x3d\x33\x1a\xc7\x05\xf5\x69\xce\x41\x66\x68\ \xce\xe1\x42\x89\x05\xa4\x6f\xfe\xbc\xc4\x22\xff\x81\x34\x40\xfa\ \x32\x0e\x11\x16\x0e\x7c\x9c\x59\xbc\xfb\x7f\xae\x7f\x5c\x50\x9f\ \xe6\x1c\x64\x86\xe6\x1c\x6e\xef\xa5\xc9\x06\x25\x56\x8b\xf4\x50\ \xf2\x62\x08\xbd\x60\xe0\x03\x34\xaf\x77\xff\x2d\xd2\x9c\x83\xcc\ \xd0\x9c\xc3\xc5\x97\x26\xfe\xfb\xf0\x1f\x48\xbc\xbe\x86\xef\x63\ \x89\xef\xa3\x60\x17\xc3\xba\xde\xfd\x37\x4c\x73\x0e\x52\x5b\x73\ \x25\x8f\xf4\x50\x62\xad\x36\xd7\x77\x97\x40\xba\x37\xfa\xc5\xce\ \x77\x58\x98\xb4\xcd\xde\xc5\x70\x56\xef\xfe\x9b\xa6\x39\x07\x89\ \xaf\xb9\xd2\x42\x7a\x57\x62\xad\x06\x1b\x20\x3d\x94\x58\xa1\xe4\ \x05\xd2\x33\x76\x31\xd8\xa3\x39\xa2\xd2\xfc\xaa\x20\xe1\x35\x57\ \x7a\x48\x47\x89\x05\xa4\xb7\xe3\x84\x61\x1c\xbd\x43\xfa\x74\x5a\ \x69\x1e\xa3\xd2\xfc\xea\xa0\x62\x9a\xeb\xd3\x23\x45\xfa\xe7\xc9\ \x64\xd0\x8e\x4b\x01\xe9\xb1\xc4\xba\x00\xd2\xe1\x8f\x8c\x81\x0f\ \xeb\x34\xaf\x34\xe7\x20\xc1\x59\x5a\x3d\xa4\x8f\x27\xdd\x4e\x13\ \x20\xfd\x47\x3b\x4e\xb8\x8d\x48\x87\xcf\x33\x06\x3e\xec\xd3\xbc\ \xd2\x9c\x83\xa4\x66\x69\x55\x91\xee\x3f\x10\xbc\x34\x59\xc5\x97\ \x58\xb3\xf5\x16\x48\xc7\x10\x48\xd6\xc0\x87\x3e\xcd\x2b\xcd\x11\ \x52\x34\xe7\x20\x99\x59\x5a\x65\xa4\x8f\x27\x8c\x74\x94\x58\xb3\ \x19\x90\x7e\x72\x82\x21\xc2\x8c\x5d\x0c\x6a\x34\x9f\x57\x9a\x67\ \x5c\x30\x28\x0e\x92\x98\xa5\x55\x47\xfa\xf8\x1d\x90\xce\x25\x16\ \x90\xee\x4b\xde\x38\x84\x9e\xb1\x8b\x41\x9b\xe6\x95\xe6\x08\x49\ \x9a\x73\x90\xe0\x2c\xad\x3e\xd2\x9b\x66\xb2\xdd\x7f\x69\xb2\xff\ \x92\xd7\x00\xcd\x8d\xd0\xbc\xfc\x82\x81\x50\x90\x19\x9a\xa7\x48\ \x0f\x25\x56\x18\x97\x02\xd2\xc3\xb8\x2d\x4f\x82\xf4\x96\xe6\x53\ \x63\x34\x2f\xbf\x60\x20\x16\x64\x84\xe6\x29\xd2\x43\x89\xd5\xac\ \xb6\x8c\xf4\xee\x25\xaf\xef\xb0\x80\xf4\xdc\x5d\x0c\xba\x34\x1f\ \x1a\xa0\xb9\xc0\x05\x03\x99\x20\x0b\x34\x4f\x91\x8e\x12\xcb\x7f\ \x20\x40\x7a\x77\xf8\x20\x94\xbc\x40\x7a\xde\x9a\x44\x5d\x9a\x0f\ \x0d\xd0\x5c\xe0\xb8\xa0\x54\x90\x01\x9a\xa7\x48\x8f\x25\x56\x44\ \xba\x2f\xb1\xc2\x38\xe1\x0e\x48\x0f\x25\x6f\xce\xc0\x87\x2e\xcd\ \x87\x3d\xa3\xb9\xfc\x71\x41\xe1\x20\x33\x34\xe7\x70\x5c\x62\x35\ \x58\xcc\x8b\x71\x42\x46\x3a\xfc\x91\xb1\x8b\x41\x8d\xe6\xc3\x9e\ \xd1\x5c\xfe\xb8\xa0\x78\x90\x19\x9a\x73\xb8\xae\xc4\x02\xd2\x51\ \x62\x2d\x16\x8c\x74\xf8\xbc\x70\x17\x03\xd4\x51\x69\xae\x73\x5c\ \x50\x3e\xc8\x0c\xcd\x39\xbe\x84\x12\x0b\x48\x6f\x4b\xac\xc6\x97\ \x58\x8c\x74\x0c\x11\xf6\x9b\xe6\x23\x6d\x9a\xeb\x1f\x17\x94\x0f\ \x32\x43\x73\x0e\xc7\x2f\x4d\x1a\x2e\xb1\x18\xe9\xf3\x39\x86\xd0\ \xfb\x4c\xf3\x91\x3e\xcd\xf5\xef\xfe\xcb\x07\x99\xa1\x39\x87\x1b\ \x03\xe9\x5c\x62\x31\xd2\x7d\xc9\x1b\x7f\xa2\x97\xec\x62\x50\xa2\ \x39\x42\x8a\xe6\xfd\xba\xfb\x2f\x1f\x24\x48\x73\x7d\xa4\xa3\xc4\ \x62\xa4\xb7\x25\x2f\x26\x6d\xf3\xd7\x24\xea\xd2\x7c\x24\x45\xf3\ \xbe\xdd\xfd\x97\x0f\x92\xa4\xb9\x3e\xd2\x43\x89\xc5\x48\x47\xc9\ \x8b\xef\x23\x77\x4d\xa2\x2e\xcd\x47\x85\x34\x37\x74\xf7\x5f\x3e\ \xc8\x04\xcd\x53\xa4\xfb\x9d\x3f\xb8\x9e\xc3\x48\x0f\x25\x2f\xf9\ \x0e\x0b\x48\xcf\x5b\x93\x68\x80\xe6\x56\xee\xfe\xcb\x07\x99\xa1\ \x39\x87\x6b\x4f\x40\x87\x71\x10\x46\xfa\x3a\x96\xbc\x40\xfa\xf1\ \x71\xce\x2e\x06\x03\x34\x2f\xbd\x60\x60\x9f\xe6\x1c\x64\x86\xe6\ \x1c\xae\x7d\x69\xf2\xe8\xfd\x5f\x48\xc7\x38\xe1\xe5\x12\x48\x87\ \x3f\xfa\x4d\x73\x97\xd2\xbc\xfc\x82\x41\xa5\x39\x07\x99\xa1\x39\ \x87\xeb\x76\x9a\x30\xd2\xbf\x7f\xc5\x38\x21\x90\xde\xce\xd7\x96\ \xef\x62\xd0\xa5\xb9\x4b\x69\x5e\x72\xc1\xa0\xd2\x3c\x0d\x32\x43\ \x73\x0e\x17\x4a\x2c\x46\xfa\xd3\x58\x62\x01\xe9\xdd\xfc\x79\xf1\ \x9a\x44\x5d\x9a\xbb\x43\x68\x7e\x54\x69\x9e\x15\x64\x81\xe6\x29\ \xd2\x07\x8c\xf4\xae\xc4\x5a\xaf\x17\x40\xfa\x74\x8a\x21\xc2\xb2\ \x35\x89\x4a\x34\x47\x1c\x42\xf3\xf3\x4a\xf3\x12\xa4\x8b\xd1\x43\ \x1f\xe9\xb1\xc4\x5a\x03\xe9\x5d\xc9\x8b\xd1\xa8\xec\x35\x89\xba\ \x34\x77\x87\xd0\xfc\xa8\xd2\xbc\x04\xe9\x62\xf4\xd0\x47\x3a\x97\ \x58\x40\x7a\x28\x79\xe3\x4f\xf4\xfc\x35\x89\xa6\x69\x5e\x69\xce\ \x41\x66\xe8\x91\x22\x9d\x4b\x2c\x20\x1d\x25\x2f\x26\x6d\x2b\xcd\ \x2b\xcd\xff\x11\x64\x84\x1e\x29\xd2\xb9\xc4\x02\xd2\x4f\x63\xc9\ \x0b\xa4\xdb\xa0\xf9\x1d\x8b\x34\xc7\xf7\xa1\x1d\x24\x31\x4b\xab\ \x8f\xf4\xf4\xa5\x89\xff\x3e\x4e\xdb\x9d\x8a\x73\x20\x7d\xf6\x4d\ \x68\x17\xc3\x6d\x1b\x77\xff\x7f\xb3\x77\x6f\xcb\x4d\xc3\x60\x10\ \x80\x19\x82\x19\x4e\x25\x2e\x94\xe3\x70\x2c\x30\x03\xc3\x4b\x39\ \x6d\x08\xc5\xb4\x6e\x13\x5a\xd2\xc7\x47\x92\xff\xb5\xec\x72\xc1\ \x85\xf9\xf3\xab\xca\xde\xe8\x0d\x7c\xf1\xad\xd6\x5a\x53\x9a\xc7\ \xe8\xca\x18\xe9\x0a\x34\xb7\x47\x7a\x9c\xb8\x05\xd2\x9d\xd1\x8f\ \x07\x4d\x2c\xf8\x63\xf4\x82\x81\x2d\xcd\x77\x52\xa2\xb9\xc6\x82\ \x81\x39\xd2\x15\x68\x6e\x8e\x74\x17\x62\x15\x65\xbf\x69\x22\x21\ \x16\x9a\x58\xf8\x3e\x16\xe3\x17\x0c\x6c\x69\xbe\x93\x12\xcd\x55\ \x16\x0c\xec\x91\xae\x40\x73\x73\xa4\xbb\x10\xab\x28\xbb\xa6\x89\ \x84\x58\x2b\xb7\xde\xd9\x21\x5d\x2e\x09\xc7\x2e\x18\xd8\xd2\x7c\ \x91\x12\xcd\x95\x16\x0c\xec\x91\xae\x40\x73\x7b\xa4\x4f\x8a\x88\ \xf4\xf8\xe6\x0f\x90\xee\x32\x2c\x7c\x1f\xff\x67\xc1\x80\x34\x57\ \x5b\x30\xb0\x47\xba\x02\xcd\xcd\x91\xee\x8c\x0e\xa4\xc7\x10\x0b\ \x48\x97\x90\x17\xfd\x2b\x05\x9a\x93\xe6\x0a\x0b\x06\x66\x48\x57\ \xa0\xb9\x39\xd2\xbb\x89\xdb\x2e\xc4\xaa\x81\x74\x09\x79\xa5\xe9\ \x3e\x82\xe6\xa4\xb9\xc1\xb8\xa0\x39\xd2\x23\x01\x72\x40\x7a\x0c\ \xb1\x80\x74\x09\x79\x0f\x0f\xa4\xe9\xae\xb0\x60\x90\x2b\xcd\xed\ \xc7\x05\xed\x91\x1e\x09\x90\x03\xd2\x63\x88\x05\xa4\x2f\xbb\x90\ \x17\x48\x57\x58\x30\xc8\x8a\xe6\xf6\xe3\x82\xf6\x48\xd7\xa0\xb9\ \x3d\xd2\x11\x62\x4d\x62\xd3\xc4\x15\xb1\x24\xe4\x05\xd2\x15\x9e\ \x49\xcc\x8c\xe6\xf6\xe3\x82\xf6\x48\x57\xa1\xb9\x3d\xd2\xaf\x36\ \x4d\x42\x53\xb1\xdf\xc4\x82\x3f\x46\x2f\x18\x64\x40\xf3\xd4\xc7\ \x05\xed\x91\x1e\x09\x90\x05\xd2\x27\x57\x9b\x26\x6d\x13\xeb\x12\ \x4d\x2c\x7c\x1f\x8d\xc2\x82\x41\xd2\x34\xcf\x6f\xf7\x5f\x1f\xe9\ \xa0\x79\x46\x87\xfb\x40\x06\x4d\x93\x18\x62\x01\xe9\x33\xb9\x44\ \x27\xcd\x93\xdf\xfd\xb7\x47\x7a\x24\x40\x36\x48\x1f\x36\x4d\x10\ \x62\x2d\x81\xf4\x10\xf2\xa2\xda\xae\xb0\x60\x60\x4a\xf3\xcc\x76\ \xff\xed\x91\x1e\x09\x90\x0f\xd2\x3f\xf7\x91\x8e\x10\x0b\x48\x0f\ \x4d\x77\x7c\x1f\x0a\x0b\x06\xa6\x34\xcf\x6e\xf7\xdf\x1e\xe9\x20\ \x40\x4e\x48\x9f\x00\xe9\x85\x47\xfa\xda\x87\x58\x40\x7a\x55\xf5\ \x9b\xee\xd7\x72\xf7\x7f\x97\xbb\xff\x9b\x44\x3a\x08\x90\x23\xd2\ \x27\x2b\x79\xd3\x04\x48\x97\x26\xef\x0c\x4d\xf7\x6b\xb8\xfb\xbf\ \xab\x3d\x2e\x48\x9a\x0f\x91\x0e\x02\x64\x87\xf4\xf5\x7a\xbf\x76\ \x1f\x48\xaf\x69\x72\x24\x21\xef\x6c\x0e\xa4\x2b\x2e\x18\x54\xdc\ \xfd\x57\xa0\xb9\x01\xd2\xcf\xf2\x44\xfa\xde\x9e\x5f\xcf\x59\xad\ \xca\x0e\xe9\xbe\xa9\xd8\x6b\x62\x85\x90\x77\x2b\x77\xff\x49\x73\ \x22\x1d\x0f\x8f\xae\x0a\x20\x1d\x0f\xbb\xe3\xcd\xd1\xe0\x8f\xed\ \xdc\xfd\x27\xcd\x89\xf4\xb0\x9e\xd3\x43\x7a\xdb\xc4\x3a\x72\x21\ \x2f\x90\xde\x96\x78\x0d\x68\x6e\x3e\x2e\x48\x9a\x13\xe9\x3e\xc4\ \x72\x06\x01\xd2\x25\xc4\x72\xeb\x9d\x40\x3a\x2e\xd1\x0d\x68\x6e\ \xbe\xfb\x4f\x9a\x13\xe9\x3e\xc4\xea\x90\x1e\xdf\xfc\x01\xd2\x17\ \x27\x0b\xb9\x44\xd7\x58\x30\x48\x9f\xe6\xa4\x39\x91\x5e\x02\xe9\ \x31\xc4\x02\xd2\x25\xe4\x45\xff\x6a\x7b\x69\x4e\x9a\x13\xe9\x31\ \xc4\x02\xd2\x07\x4d\x77\x5d\x9a\x93\xe6\xef\x92\xa6\x39\x91\xde\ \x7b\xd3\x04\x48\xaf\xe4\x77\x74\x69\xba\x2b\xd2\x9c\x34\x7f\x97\ \x34\xcd\x89\x74\x59\xcf\x89\x4d\x93\x10\x62\xc9\x25\x88\x20\x5d\ \x8d\xe6\xa4\xf9\xd3\xb4\x69\x4e\xa4\x5f\x5d\xcf\x39\xc6\xef\x84\ \xb3\x19\x90\x7e\x71\x31\x82\xe6\xa4\xb9\xd6\x82\x81\xfe\x41\xa4\ \x7f\xf0\xbf\x83\xec\xd7\xe7\xb1\x69\x22\x21\x56\x6c\x62\x85\x92\ \xa2\xd6\x82\x41\x5e\x34\x57\x58\x30\x30\x3d\x88\xf4\xaf\xa5\x7f\ \xd3\xc4\xb5\xdd\x81\xf4\x18\x62\x01\xe9\xf0\xb9\xc6\x82\x41\x06\ \x34\x57\x5c\x30\xb0\x3f\x88\xf4\xa2\x1c\x3c\x3c\xda\x85\x58\x67\ \x40\x7a\x23\x97\xe8\x1a\x0b\x06\x19\xd0\x5c\x75\x5c\xd0\xfe\x20\ \xd2\x8b\xb2\xb7\x0e\x12\x43\x2c\x20\xbd\x69\x70\x89\xae\x30\x2e\ \x98\x38\xcd\xed\xc7\x05\xed\x0f\x22\xdd\x85\x58\x40\x7a\xf7\x30\ \xef\x12\x48\xf7\x97\x20\x8d\x5c\xa2\x2b\x8c\x0b\x26\x4e\x73\xfb\ \x71\x41\xfb\x83\x48\x2f\x80\x74\x09\xb1\xce\x9d\x41\x80\xf4\x41\ \xd3\x9d\x34\x37\x1b\x17\xb4\x3f\x88\xf4\x18\x62\x01\xe9\x61\x18\ \x24\x2c\xad\x01\xe9\x9a\xe3\x82\x66\x34\xe7\xb8\xe0\xbf\x0f\x22\ \x3d\x86\x58\x40\xfa\xb7\x1f\x6d\x88\xd5\x34\x40\xba\xe6\xb8\xa0\ \x29\xcd\xed\x77\xff\x13\x3f\x88\xf4\xe1\x7a\x4e\x78\xb8\x3a\xac\ \x77\xa2\xa9\x18\x4a\x8a\x7a\x0b\x06\x8a\x34\xe7\xee\xff\xf8\x83\ \x48\x47\x88\x05\xa4\x2f\x8f\xf0\x66\x1c\x90\x0e\x7f\x68\x2c\x18\ \x68\xd2\x9c\xbb\xff\xe3\x0f\x22\x7d\xd8\x34\x41\x88\x55\x55\x87\ \x40\x7a\x5b\xe2\xd5\x19\x17\x1c\x49\x73\xee\xfe\x2b\x1f\x44\xfa\ \x95\xa6\x49\x08\xb1\xfc\x3a\x61\x05\xa4\x9f\xca\xaa\x41\x82\x34\ \xe7\xee\xbf\xfe\x41\xa4\xf7\x9b\x26\x87\xb5\x6f\x9a\x84\x75\x42\ \x20\xfd\xf4\x54\x2e\xd1\x13\xa4\xb9\xfe\xb8\x20\x69\x4e\xa4\xc7\ \xa6\x89\x0f\xb1\xda\x37\x4d\x80\x74\x1f\xf2\xe2\x12\xdd\x60\x5c\ \x70\x9a\xce\xb8\x20\x69\x4e\xa4\x87\x10\x6b\xee\x42\x2c\x20\x5d\ \x42\x5e\x69\xba\x6f\x7c\x5c\x70\x9a\xce\xb8\x20\x69\x4e\xa4\x4b\ \x88\x15\x91\x7e\x30\x9f\x49\xc8\x0b\xa4\x6f\x74\xf7\x7f\x9a\xd2\ \xee\x3f\x69\x4e\xa4\x5f\xfe\x0a\x6f\x9a\x00\xe9\xed\xef\x84\x7e\ \x58\x0a\x48\xdf\xe8\xee\x7f\x93\xd0\xee\x3f\x69\x4e\xa4\xd7\xf5\ \x79\x08\xb1\x80\x74\xd7\x54\xf4\xeb\xb6\x68\x62\x85\x90\x77\x83\ \xe3\x82\xd3\x74\x76\xff\x49\x73\x22\xfd\xd9\xdb\xb5\xfb\x40\x5c\ \x88\x05\xa4\x77\xbf\x13\xa2\x89\x05\x7f\x6c\x1d\xcd\x49\x73\x22\ \xdd\x87\x58\xeb\xba\x46\xd3\x64\x7e\x72\xb9\xc4\xef\x84\x40\x7a\ \x5b\xe2\xdd\x46\x9a\x93\xe6\x44\xba\x0f\xb1\xd6\xf5\x44\x90\x1e\ \x43\xac\x03\x20\xfd\x42\x2e\xd1\x33\xdb\xfd\xd7\xa7\x79\x1e\xdf\ \x07\x91\xee\x8c\xde\x43\x3a\xde\xfc\x01\xd2\x43\xc8\x8b\x6a\xbb\ \xfa\xee\x7f\x46\x34\xcf\x24\xba\x22\xd2\xc3\xc4\x2d\x90\x8e\x10\ \x0b\x48\x97\x90\x17\xfd\x2b\x83\xdd\x7f\x4b\x9a\xdb\x2f\x18\xd8\ \x1f\x44\x7a\xb9\xd7\x43\xba\x84\x58\x82\xf4\x45\xd8\x7c\xc6\x25\ \xfa\xb5\xdd\xfd\xff\xc3\xde\xdd\x34\x35\xed\x45\x61\x00\x67\xa4\ \x38\x5a\x5f\xa8\xfe\xab\x28\xa3\xc2\x1f\xc7\x85\x1f\x81\x19\x96\ \x82\xc0\x80\x0b\x97\x82\x82\x4d\x0b\x6d\x8a\x7d\xb7\xe4\xe3\x7b\ \xcf\xbd\xe7\xe4\x26\x38\xe3\x5d\x64\xda\xbc\xdc\x27\x8b\xf3\x0d\ \xb2\xf8\x3d\xe7\x24\x4f\x06\x9a\xfb\xd4\x60\xe0\x1e\x40\xba\x0e\ \xb1\x04\xe9\x71\x71\x0e\x5f\xba\xe7\xd0\xfb\x9f\x13\xcd\x3d\x6b\ \x30\x70\x0f\x20\x5d\xda\x73\xec\xa5\x09\x85\xbc\xe6\x52\x51\x90\ \x0e\x9a\x57\xb3\xc1\xc0\x3d\x80\xf4\xf9\x2a\x7f\x0e\xd2\x16\xa4\ \x5f\xea\x7f\xc6\xc9\x3f\x47\x75\xc8\xeb\x07\xcd\xbd\x6b\x30\x70\ \x0f\x20\x5d\x3e\x07\x11\xa4\xeb\x10\x4b\xb7\xdb\x0a\xd2\xc9\x1f\ \xd5\xa3\x39\xca\x05\xdd\x03\x48\x6f\xf2\xe7\x20\x16\xe9\xfa\x9f\ \x58\x14\xf2\x0a\xd2\xcd\x92\xb0\x7a\x34\x47\xb9\xa0\x7b\x00\xe9\ \x4d\xfe\x1c\x44\x90\x2e\x21\x56\xdc\x6e\xfb\x80\x97\x84\xe5\xa3\ \x39\xca\x05\xb3\x0f\x20\xbd\xf9\x61\xc3\x56\xdc\x4a\x88\xd5\xbb\ \x14\xa4\xab\x90\x97\x97\xe8\xe5\xa3\x39\xca\x05\xb3\x0f\x20\xfd\ \x63\x02\xe9\xf6\xd2\x44\x90\x4e\x21\x2f\x2f\x09\x0b\x47\x73\x94\ \x0b\x2e\x61\x00\xe9\x4d\x41\xba\xbd\x34\x11\xa4\x0f\x24\xe4\x65\ \xa4\x17\x8a\xe6\xe8\xfd\x5f\xea\x00\xd2\xed\x3f\x4d\x0c\xd2\xe9\ \x52\xf1\x86\x42\x5e\xb9\xe4\x2d\x14\xcd\xd1\xfb\xbf\xd4\x01\xa4\ \xdb\x10\x2b\x46\xba\x84\xbc\x82\xf4\x7c\x68\x8e\xde\xff\xfc\x07\ \x90\x2e\x21\x56\xc0\x48\x37\x21\x96\x2e\x3e\xb0\x48\xcf\x83\xe6\ \xe8\xfd\xcf\x7f\x00\xe9\x36\xc4\x12\xa4\xeb\x10\x8b\x8b\x0f\x04\ \xe9\x9d\x85\xd0\x1c\xbd\xff\x05\x1f\x40\xba\x0d\xb1\x04\xe9\x3a\ \xc4\xa2\x90\x37\x89\xf4\xce\xe3\x05\xd0\xbc\xf0\xbd\xff\xa0\x39\ \x90\x7e\xf7\xc7\xa3\x12\x62\xa5\x91\xde\x21\xa4\xfb\xd7\xfb\x0f\ \x9a\x03\xe9\xe9\x4b\x13\x1b\x62\xa5\x90\xde\x21\xa4\x7b\xd9\xfb\ \x0f\x9a\x03\xe9\xf6\xd2\x24\x0e\xb1\x82\x18\xe9\x5d\x42\x7a\x87\ \x90\xee\x53\xef\x3f\x68\x2e\x03\x48\xb7\x97\x26\x36\xc4\xb2\x48\ \x1f\x13\xd2\xfb\x8c\xf4\xcc\x34\x97\x01\x9a\x97\x6e\x00\xe9\x36\ \xc4\x4a\x20\x7d\x4c\x48\xef\x33\xd2\xb3\xd2\x5c\x06\x68\x5e\xba\ \x01\xa4\x47\x91\x0e\xb1\x26\xa9\x4b\x93\xc1\x98\x90\xde\x67\xa4\ \x7b\x4b\x73\xd0\x1c\x48\x8f\x2b\x6e\x53\x48\xbf\x21\xa4\x77\x05\ \xe9\x7e\xd2\x1c\x34\x07\xd2\xe7\x61\x38\x69\x44\x14\x62\xfd\x03\ \xe9\xb5\x9a\xdf\x34\xdf\xf6\x95\xe6\x40\xba\x32\x7a\xb8\x16\x45\ \xc9\x4b\x93\x80\x90\x7e\x9d\x40\x3a\xf9\xc3\x67\x9a\x6f\x7b\x4b\ \x73\x20\x9d\xdb\x73\x92\x48\xef\xdd\x41\xba\x59\x12\xfa\x4b\xf3\ \x6d\x8f\x69\x0e\xa4\x53\x7b\x4e\x38\x49\x22\x7d\x44\x48\xff\x15\ \x23\x5d\x96\x84\xd5\xa3\x39\x1a\x0c\xdc\x03\x48\xa7\x10\xeb\x6f\ \xa4\xb7\x63\xa4\xf7\x1f\xf1\x92\xb0\x7a\x34\x47\x83\x81\x7b\x00\ \xe9\x1b\x5b\x69\xa4\xaf\x10\xd2\xdb\x82\x74\x0a\x79\x79\x89\x5e\ \x7a\x9a\xa3\xc1\x20\xfb\x00\xd2\xa7\x49\xa4\x9b\x90\x97\x97\x84\ \x25\xa6\x39\xca\x05\xb3\x0f\x20\x7d\x4e\x48\x8f\x12\x48\xb7\x21\ \x2f\x23\xbd\x40\x34\x47\xb9\xe0\x92\x07\x90\x7e\x7b\x07\xe9\x57\ \x12\xf2\x0a\xd2\x0b\x44\x73\x94\x0b\x2e\x7b\x00\xe9\x1b\xe9\x7f\ \x36\xa8\x10\x8b\x43\x5e\x46\x7a\xbd\x5e\x18\x9a\xa3\x5c\x70\xc9\ \x03\x48\x9f\x4d\x9a\xd3\x24\xd2\x2f\xe9\xc7\xbc\xfa\x73\x29\xfb\ \x7e\xe4\x40\x73\x94\x0b\xe6\x3f\x80\xf4\x2d\xfa\x1c\xa4\x11\x4d\ \x2d\xd2\xd5\xfb\xd1\x52\x2f\x08\x87\xbc\x74\xc9\x4b\x4b\xc2\x9c\ \x68\x8e\xde\xff\xfc\x07\x90\x4e\xed\x20\x82\x74\x0e\xb1\x74\xc8\ \x6b\x42\x2c\xb3\x24\x5c\x00\xcd\xd1\xfb\x5f\xfc\x01\xa4\x4b\x3b\ \x88\x46\x3a\xff\xd3\x44\xbd\x20\xd7\x84\xf4\xae\x6a\x80\x96\x25\ \xe1\x02\x68\x5e\x86\xde\x7f\x0c\x20\x7d\x35\x9c\x31\xd2\x23\x0a\ \xb1\x54\xc8\x4b\x21\x96\x41\xba\x5a\x82\xf0\x92\x30\x03\xcd\x4b\ \xdc\xfb\x8f\x01\xa4\xef\x08\xd2\x4d\x88\x35\x52\x46\x17\xa4\xeb\ \x90\x97\x97\xe8\x19\x68\x5e\xde\xde\x7f\x0c\x20\x7d\xe7\x36\xd4\ \x48\x1f\xf5\x66\x89\x10\x4b\x23\x3d\x75\xc9\x9b\x81\xe6\x65\xeb\ \xfd\xb7\x34\xc7\x00\xd2\xe9\xd2\xa4\x31\x51\x21\x56\x68\x2f\x4d\ \xe8\x12\x6b\x2c\x21\x6f\x4d\x90\xee\xa0\x79\xf9\x7a\xff\xdd\x34\ \xc7\x00\xd2\x93\x21\xd6\xf5\x94\x90\x4e\x21\x16\x87\xbc\xca\xe8\ \x82\x74\x07\xcd\x33\x34\x18\x14\x98\xe6\x18\x40\xfa\xed\x7c\xcd\ \x84\x58\x41\xd0\x26\xa4\x9b\x4b\x2c\x09\x79\x05\xe9\x8a\x1f\x6e\ \x9a\xcb\xa8\x0e\xcd\x31\x80\x74\x6e\x97\x5a\xe9\x05\x81\xb9\xc4\ \xea\x27\x43\x5e\x83\x74\xf2\xb9\x93\xe6\x32\xaa\x44\x73\x0c\x20\ \x5d\x42\x5e\x7b\x89\x65\x43\x5e\x7d\xa9\xc8\x4b\x10\x07\xcd\x65\ \x54\x8b\xe6\x18\x40\x7a\x68\x42\x5e\x0e\xb1\x46\x7c\xa9\x78\x35\ \x18\x0f\xcd\xa5\xa2\x2c\x41\xbc\xa4\x39\x06\x90\x4e\xef\x47\xc4\ \x21\x16\x87\xbc\x2d\xfe\xdc\x56\xbf\x1f\xb2\x04\xf1\x92\xe6\x18\ \x40\xba\x5e\x82\xd0\x8f\x79\x83\x38\xe4\xa5\x10\x4b\x23\x9d\x42\ \xde\x56\x6a\x09\x52\x29\x9a\xbb\xdf\x0f\x0c\x20\x7d\xd6\x88\x2f\ \x15\xa7\x37\x5d\x1d\xf2\x9a\x10\x6b\x28\x9f\xa3\xd7\xeb\x82\xf4\ \x8a\xd1\xdc\x1d\x5d\x61\x00\xe9\xea\xfd\x50\x21\xaf\x7c\x6e\xdb\ \xa5\x90\xb7\xa5\x42\x2c\x7b\xc9\x5b\xab\xf3\x11\x56\xe9\x68\x9e\ \xbd\xc1\x00\x03\x48\xb7\x97\xbc\xe6\x52\xd1\x84\x58\xc3\xa1\x29\ \x06\xa9\xa9\xc7\x5c\xf2\x96\x82\xe6\xf9\x36\x18\x00\xe9\xba\x2a\ \xa6\x62\x43\xbf\x1f\xea\x05\x99\x24\x2e\x79\x07\xea\x77\x71\xe4\ \x0f\x4d\x8f\xe1\xfa\x3a\x45\x52\x82\xea\xba\xe2\xc2\xe6\x93\x4d\ \x5e\x46\x68\x1d\x73\x74\xaa\xa8\x7b\xb0\xf9\x49\x3d\x6f\xf6\xf7\ \xf7\xf6\x9e\x7e\x3e\x3c\x3a\xfa\xff\xf4\xf4\xf8\xf8\xe0\xe4\xe4\ \xcb\xee\xde\xc5\xc5\xd7\xaf\x87\x3f\xbe\x7f\x3f\x3f\x3e\x3f\x3b\ \xfb\xb6\xfb\x87\x9d\xb8\x37\x02\x10\x06\xc1\x00\xea\x38\xde\xc5\ \x1d\x1c\x01\x12\x02\x4a\xfc\xd9\x7f\x0c\xbf\x02\xbd\x14\x96\x96\ \xbe\xe2\x35\x77\x2a\x04\x7d\xaa\x7a\x6a\x54\x8f\x0a\x91\x99\xed\ \x16\xe5\x35\xc3\x5b\x5b\x97\x88\x34\xb9\xf3\x05\x22\x66\x26\x7e\ \x9a\xe1\xab\xfe\x86\x34\x4e\x17\xfb\xf5\xb3\xe2\x36\x0c\xc4\x71\ \x3c\x73\xda\x87\xf0\xb1\x25\x2a\x6a\x6d\xc9\xfa\x63\x89\x94\x2d\ \xbb\xed\xb1\xef\xff\x3e\xfd\x79\x2c\x77\x26\x58\x21\x50\x48\x2f\ \xd9\x39\x7c\x21\x90\xf8\x12\x7f\x18\xe9\x6c\xbd\x1f\x5c\x34\x98\ \x68\xac\xb5\xd9\x3e\x38\x44\x54\x69\x4f\x09\x21\xc4\x12\x31\x09\ \xc9\x29\x63\x2e\x6b\x96\x5c\x6b\x5d\x2a\x32\x73\x0a\xe6\x56\xf8\ \x2b\x79\xe1\xdf\xe2\x29\x21\x05\x22\x5b\xac\x31\x2e\x3b\xe7\x86\ \x3c\x78\xef\xe3\x84\x09\xd3\x34\x8e\x34\x62\xe8\x8c\x59\x33\x06\ \x7c\x6a\x99\x30\x92\xb8\x05\xbf\xcd\xbe\x05\x8f\xc2\x70\xea\xdf\ \x14\x89\xc3\x48\x52\x8b\x31\x17\x63\x38\xd6\x5e\xac\x6d\x59\x24\ \x84\x99\x39\x01\x23\x79\xdb\x13\x7f\x46\xcc\x96\x8c\xe1\xbc\xaa\ \xd4\x5a\xdf\xeb\x96\x52\xde\x4b\x69\x79\xd9\x93\x7e\xa4\x94\x0e\ \xb9\x60\x7e\x1f\xb3\xfc\x5a\x30\x6b\xe6\xef\x33\xe6\x89\xb3\x02\ \x71\xa3\xf8\x30\x0f\xf6\x41\x94\x1b\x8d\x10\x40\x83\xc3\x34\x5a\ \x98\x86\x04\x3e\x4a\x59\x3a\x2a\xde\x5a\xd2\x8e\x64\x25\xc4\xac\ \xf8\x29\x40\x47\x89\xac\x35\xd5\x30\x12\xbc\xbb\x11\x46\xf8\x95\ \x87\x05\x54\x54\x48\xa2\xa8\xf0\x18\x49\x6e\x11\x15\x2a\x1a\x84\ \xc4\x60\x5a\x6c\x57\x05\xb1\x0a\x8e\x02\x21\x89\x18\xc9\xee\x83\ \x69\x6c\xa9\xaf\x15\x23\x61\x1f\xac\xa2\x05\x02\x5e\x52\x4b\xd7\ \x87\x52\xc1\x20\x0e\x61\x01\xcf\x9d\xd3\xa7\x2f\xc3\x79\xf2\x9e\ \x9c\x33\xe6\x7f\x20\xb9\x5a\x1d\xd7\x48\x00\x22\x29\x1a\x7a\x7f\ \x08\x8d\xae\x94\xb9\xf6\x7d\xf0\x12\x31\xd9\x01\x48\xf6\xb2\x44\ \x38\xfd\x85\xc1\x39\x2e\x8c\xdb\x5b\x43\x16\x06\x83\x38\xc6\x76\ \x7d\x90\xf8\x08\xf7\x7c\x00\xc3\x71\x6b\x08\x0d\xa5\x42\x27\xdd\ \xf3\xa1\xb6\x86\xa8\xd0\x61\x01\x4f\x1e\x00\x99\x3e\x9f\xc7\xc9\ \xae\xff\x74\x70\xec\xe3\x51\x51\x52\x88\x28\x68\x1f\xbc\x3f\x38\ \xd7\xfb\xa3\xf9\x28\xe5\xfe\xf9\xaa\x2e\x9b\x8f\x0c\x1f\x11\x40\ \x12\x91\xa5\xdd\x87\x3e\x64\xed\xb9\xe9\x43\x16\x46\x9f\x46\xed\ \x1e\xa8\x4c\xdf\x87\xa6\x21\x21\xf1\xd1\x3f\x50\x29\x1f\xb9\xe7\ \x43\xaf\x8e\xd2\xf3\xa1\x68\xf4\x23\x07\x2a\xa5\x42\x87\x05\x7c\ \xe4\x74\x5e\x2f\x21\x66\xf2\xc3\x10\x36\x24\x98\xf8\x80\x34\x24\ \xc8\x76\xd2\xaa\xb7\x4e\x5a\x97\x18\x77\x1f\xea\x26\x72\xcc\x7c\ \x9d\x45\xef\x0f\xa2\x64\x31\x85\xcf\x57\xc3\x20\x3e\xfa\x47\x2b\ \xed\xa3\x7f\xf5\x10\x1a\xf7\xaf\x1e\x57\x3e\xf6\x30\x92\x96\x46\ \xa3\x65\xde\x12\x44\x4a\xef\x68\x85\x88\x94\x2a\x3e\xfe\xed\xea\ \x01\x1e\x7a\x7f\xec\x51\x3e\x9a\x80\x8f\x9c\xfe\xb0\x63\x77\xbb\ \x6d\x02\x41\x18\x86\x8d\xaa\x28\x17\xc1\x01\x52\x59\xb3\x04\x30\ \xd0\xb5\xa9\x51\xaa\x46\xfd\x39\xcc\xfd\xdf\x4f\x3f\x66\x3f\xd8\ \x89\x77\xdd\xf6\xc0\x87\x8c\x94\x57\x89\x92\xc3\x3c\x9a\x1d\x1f\ \xcb\xd6\xe4\xd8\x21\x63\x33\x62\xb2\x1c\xe3\x1e\x1d\x2d\xcf\x42\ \x4a\xea\x5c\x07\x92\x8b\x5b\xf3\x4a\x29\xf1\x4d\x92\x0e\x69\x2c\ \x71\xc1\xc7\x6c\x01\x73\xca\x79\x7f\xe8\xa7\x95\x3a\xd2\x91\xa4\ \x94\x68\xa7\x30\xf3\x9a\xb4\x94\x3c\x5c\x22\x36\x29\xc5\xaa\x4d\ \x92\x92\xa2\x37\x49\x5a\x8a\x3e\xcd\x93\x52\x82\x8f\xbf\x1c\x21\ \xef\x3c\x42\xd2\x9b\xe4\x1b\xb3\xe7\x50\x1c\xcb\xde\x74\xd5\xc9\ \xf6\x18\x41\xf2\xf8\x00\x09\xe5\x0d\x9b\x14\x3e\xbc\x28\x05\xc9\ \xae\x80\x22\x51\x52\xd4\xf5\x9e\xce\x34\x11\x93\x43\x04\x18\xb8\ \x35\x97\xe5\xf4\x98\xe5\xf4\xc8\xf3\x70\x7a\x08\x03\xaa\xc8\x3a\ \xcc\x92\x2a\x25\xe5\xac\xf2\x81\xcb\xc4\x08\x92\x38\x6a\xa7\xfc\ \x4b\x8a\x7a\x73\x09\x8d\x28\x5a\x0a\x7d\xdc\x93\x12\x7c\xe8\x78\ \x24\xcc\x5b\x48\x40\xa2\x12\x36\x89\x96\xb2\xe7\xf0\xb9\xe8\xca\ \xb6\x36\x79\x57\x55\xd5\x70\xc2\xd8\xc7\x86\xf2\xfa\x9e\x5c\xb2\ \x71\xf4\x8b\x85\x52\xf8\xf0\x62\xe6\xed\x8e\x17\x2e\x17\x86\x66\ \xee\x27\x73\xfe\xef\x70\x95\x37\x16\xab\xc3\xfa\xd5\x21\x9f\x41\ \x71\x6b\x6c\x2a\x1a\x1f\x63\x4c\x63\x8c\xfc\xc8\x04\x33\x4e\xb8\ \x6c\x66\x22\x38\x1e\x09\x33\x6f\x09\x52\x04\x49\xc8\x85\xa1\x19\ \xe4\x8e\x94\x90\x48\x0a\xf3\x6b\x4d\x52\xca\x0d\x92\xe7\x28\x4a\ \x0a\x69\xa4\xa5\x30\x7b\x0e\x4f\x75\x71\x7c\x69\xfb\xba\x36\x40\ \x82\xf1\xa9\x30\xc3\xe3\x62\x2b\xcf\x65\x91\x82\xc9\xbc\x94\x0f\ \xaf\x2f\x9c\xd2\x2b\x12\xa6\x59\xfe\xdb\xe3\x50\x8f\x26\x74\x25\ \x8d\x86\x34\xf8\xa9\x6e\xbf\xac\x0e\x79\x4b\x75\xa4\x61\x30\x6b\ \xea\xda\xd6\x18\x46\xfd\x42\x90\x30\x94\x12\xe7\x2c\x39\x61\x26\ \x46\x49\x19\x95\x14\x95\x20\x65\x48\x4a\xb1\x5f\xb7\x24\xa5\xb8\ \x3b\x52\xbe\xc3\x88\x64\xfa\x0f\x29\x6f\x8c\xde\x29\xc1\xc7\xef\ \x9b\xec\x39\x94\x4f\x9f\x8a\xa2\x7b\x29\x4b\x20\xc1\x48\x46\x83\ \x79\x5c\x44\x5e\xe0\xa2\x16\x4b\xd6\x8b\x14\xc4\x2d\x5c\xce\xf8\ \x52\xb7\xfd\xe4\x23\x5c\xe2\x5c\x19\x8a\xe2\xc1\x31\x0c\xfa\x55\ \x05\x96\x55\x53\x81\x06\x41\xb4\x6d\x3d\xb4\x18\xa4\x2c\x73\x7e\ \x87\x50\x0a\xd3\xac\x31\x19\xc8\xdc\xc6\x75\x18\x89\x20\x61\x82\ \x94\xb4\x99\x5e\x49\xd1\x3b\x45\x9b\x79\x1d\x98\xa4\x94\x1f\x19\ \x26\x4e\x90\x72\x56\x52\x7e\xc2\x48\x32\xcf\x3e\x82\x84\xb9\xbe\ \xc3\x88\x24\x16\xb0\xe7\x0f\x3b\x76\xcf\x9b\xb8\x12\x46\x71\xdc\ \x08\x59\xdb\xba\xb0\xe4\xc2\x85\x25\xcc\xf8\x05\x63\xe3\x0d\x79\ \x41\x91\x12\x6d\xd2\xde\x4f\x72\x53\x45\x80\x42\x3e\xfe\x3d\x73\ \x66\x3c\x8f\x0d\xb3\xab\xd5\x4d\x4a\x4e\xf1\x17\x44\x49\xba\x9f\ \x1e\x43\x90\x44\xe1\xbc\x5a\x64\x4a\x15\x35\x56\xe4\x58\xfb\x5d\ \x69\x9a\xb6\xc1\xba\xa6\xb1\xe8\xd2\x29\x17\x4a\x59\xb9\xdc\x74\ \x9d\x96\xd2\x4f\x92\x12\xce\x79\x9c\x9e\x34\x45\xa8\x02\x2c\xb6\ \xd3\xef\xaa\x48\xa3\x24\x0d\x28\xc8\xd3\x1c\x43\xea\x3a\xad\xeb\ \x5a\xe9\xd4\xcc\x26\xc7\x18\x72\x91\x94\x2e\xab\x21\xd5\x0c\x70\ \x98\xe5\x0d\xb9\x88\x19\x93\xdf\x98\xd9\xb9\x3c\x74\x18\x73\xdb\ \x63\xcc\x84\x0b\x91\xd8\xdc\x0f\x29\x7f\x92\x0b\x43\x2e\x26\x22\ \x85\x48\x86\x3c\xb9\xbc\xb8\xfc\xd8\x62\x0c\x91\x0c\x11\x29\x44\ \x72\x96\x6b\x82\x53\x12\xd7\x30\x02\x24\xd8\x32\xc3\xd6\xdf\x14\ \x35\xa0\xab\xc1\xa5\x6b\x30\xa6\xaf\x2a\x2b\x65\x03\x28\x46\xca\ \xca\xc4\x4a\xc1\x61\xc1\x98\x9b\x51\x26\x70\xb6\xd3\xb8\xdf\x6b\ \x67\xf6\x63\xb8\xbd\x1a\xfa\x38\xe0\x4c\x18\x1a\xb9\x06\xa1\x54\ \xaf\x54\x5d\x23\x4a\x4d\x23\x66\x10\x9a\x19\x52\xda\x88\x14\x22\ \xb1\x11\x29\x67\x66\xb6\x36\x45\x71\x07\x32\x8c\x48\xe9\x3c\x52\ \x26\x01\x97\xc7\xd4\x84\x48\x6c\x44\x0a\x91\x30\x44\xf2\xca\x88\ \x8f\xbf\x90\xb2\x05\x92\xe7\x3b\x06\x48\xfe\xd9\x5d\xe4\x9a\xe0\ \xed\x23\x4b\x92\x38\xce\x43\xac\x99\x63\xd5\xf7\x84\xde\x16\x90\ \xb2\x54\xd8\x1a\x21\x17\x5e\x17\x72\xa9\x20\xa5\x62\x96\x9b\x25\ \x56\xae\x31\x66\xc5\xc8\x17\x4c\x4c\x8b\x5d\x44\x54\x60\x3a\x50\ \x46\x1a\x98\x7e\xa0\x32\x34\xa8\x22\x25\x83\x0c\xeb\x16\x0c\x86\ \xe0\x55\x96\x31\x7e\x29\xcc\x86\x21\x12\x97\xd5\x90\x66\xd6\x60\ \xcc\x0d\xb9\x9c\x9b\xf1\x4a\x69\xbd\x52\x98\x5b\x67\xe6\x91\xd1\ \x52\xee\x53\x1b\xef\x4d\x11\x29\x44\x22\x79\xb2\x99\xf8\x70\x79\ \xde\x62\x0c\x91\xf8\x72\x4d\x70\x9c\xbf\x7d\x9c\x4e\x4a\x23\xa9\ \x63\x2c\x8f\xb0\xaf\x26\x74\xde\x80\x64\x74\x99\x80\x44\x61\x2d\ \xa0\xe4\x5d\x8e\xf5\xfa\x39\x2c\xad\x30\x22\x39\x4b\x29\x11\x3d\ \x72\x71\x9c\x1e\x60\x42\x08\xcc\xd0\xc0\xf4\xc7\x8c\x06\x57\x83\ \xb7\x22\x53\xbd\x1a\x54\xb4\x96\xc6\x7c\xde\xce\xf9\x96\x21\x92\ \x21\xbd\x4b\xea\xb2\x51\x18\x43\x2e\xa5\x8d\x48\x69\x44\x4a\x75\ \x26\x65\x6b\x22\x52\x0a\xaf\x94\xf6\xc1\xe5\xd6\x2b\xa5\x17\x29\ \xb8\x24\x40\xc2\x94\xbf\x60\x84\x59\xbd\xc2\xc8\x65\x44\xca\xf8\ \x92\xd8\x23\x22\x48\x7c\xb9\x26\x88\xf6\xc7\xe3\xdb\xe2\x03\xcb\ \x4e\x98\x3a\x25\x49\xa2\x92\x2f\xa6\x4e\x0c\x35\x20\x09\xb1\x0a\ \x50\x8c\x94\x31\x12\xac\xd3\x21\x92\xbe\xc1\x98\x94\xa1\x19\x1b\ \xbf\x19\x03\x02\xc1\x5b\x06\xdb\x54\x7c\xaa\xd2\xff\x20\x1f\x4e\ \x87\x3e\x0e\xb8\x10\x9a\xc1\x1c\x73\x09\x0b\xbe\x72\xe9\x6c\xa8\ \xc7\xa6\x1f\xe2\x97\xa2\x44\x4a\xee\x95\xd2\x88\x14\x22\x61\x88\ \xe4\x8e\x29\xb0\xdd\x10\xf1\x41\x1a\x97\xf1\xde\x14\x91\x42\x24\ \x36\xaf\x2e\x44\xf2\xc4\xcc\xb0\x17\x9b\xd1\x25\xf9\x93\x80\x6b\ \x82\xc3\xe1\x73\x1f\xee\xa1\x64\xfe\x86\x51\xca\xd7\x02\x65\x9a\ \x1a\xa4\x00\x49\x6d\x6e\xca\xf0\xf8\xb6\x64\x00\x25\x2b\x32\x8c\ \x52\x3a\x35\x48\xe1\x4d\x61\xfa\x51\x68\xc6\xc4\x63\x06\x6f\x4b\ \x04\x2a\xc0\xc2\xd0\x68\xf4\x9f\xd5\xe6\x74\x68\x1a\x58\xab\x0f\ \x06\x40\x84\x08\xc0\x16\xe1\x24\xad\x47\x0a\xd3\x33\xda\x4c\x0a\ \x24\x4c\xb6\x21\x12\x27\xa5\x64\x6a\x6c\x65\xe2\x7f\xfa\xaa\x7c\ \x52\x88\xc4\x66\x24\x45\x2e\xc9\xd8\x07\x69\x98\xa4\xe2\x83\x34\ \x98\xd2\xef\x83\x34\x98\x97\x51\x80\xe4\xc7\x8c\x81\x94\x67\x20\ \xf9\x5d\xae\x09\xde\x83\x43\x7c\xf8\xfc\xdc\x47\x7b\x28\x09\x8f\ \xd8\x97\x02\x64\x46\x4a\x86\x9c\x14\xa0\x24\xe6\xc9\x2d\x8e\xa3\ \xc8\x9c\x93\x30\xb4\x52\x0a\x40\x31\x52\x5a\x04\x52\x30\x9d\xba\ \xaf\x31\x46\xa4\x78\xcc\x30\xd5\xc6\xbe\xca\x73\xa6\xcf\xcd\xdf\ \x6a\x79\x59\xb6\x68\xf5\xe9\xd0\xb7\x22\x5c\x1b\x10\x00\xbb\xd6\ \xa7\x0d\xe1\xab\x68\xcc\xc5\x2b\x65\x74\x49\x26\xcf\x5c\x2e\xa5\ \x57\x0a\xa8\xcc\xf2\x9c\xc1\x25\x01\x12\xa6\xda\xc2\x08\xb3\xbc\ \x23\x12\x27\x65\xc7\x68\x29\x0f\x05\x03\x24\xb7\xad\x4d\xf7\xd8\ \x61\xcc\x7d\x8f\x31\x3f\x53\x8c\x21\x92\x5f\x2e\xaf\x36\x23\x29\ \x40\xe2\xbb\x24\x3c\x22\x7f\xc8\x35\xc1\xbf\xef\xa7\xf7\xf7\x20\ \x88\x0f\x50\x12\x7f\x62\xd1\x1e\xfb\x7f\xb1\xa7\xe8\x08\x25\x16\ \xc9\x69\xf8\x78\x23\x48\xf4\x39\x59\x8e\x90\x60\x08\x91\x5c\x84\ \x66\x4c\xa6\x66\xd2\xb3\x00\x05\xe3\xbe\x9c\x72\x1f\xc3\x61\x43\ \x0b\x80\x05\xd8\x28\xa2\x28\x8e\xd7\xb1\xa6\x11\x63\x08\x7f\x66\ \xd3\x86\x18\xd3\x49\xe4\x92\xc0\x88\xef\x92\x28\xf1\x41\x1a\x36\ \xa4\xc1\x34\xe2\x83\x34\x18\xd2\xb0\xd9\x89\x0f\x79\xe6\x6a\x5b\ \xef\x25\xe1\x11\x61\xec\x11\x71\x3e\x6c\x44\x4a\x29\x3e\x48\xc3\ \x86\x34\x98\xbf\x10\x70\xcd\x7f\xec\x9d\x5b\x6f\x22\x49\x12\x85\ \x63\x85\xd0\xbe\xd6\x43\x49\x3c\xec\x83\x25\x63\x66\xed\xb5\xf7\ \x7e\xd5\x4a\x23\xed\xee\x2f\x71\x1b\xc6\x18\x37\xf8\x52\xc5\x50\ \xfc\xfc\x8d\x3c\x11\xae\xc8\x66\xc2\x95\x80\xc7\xd3\x34\xce\x94\ \xf8\xc4\xcc\x48\xf3\xf6\x29\xe2\xe4\xa9\xc2\x34\x5e\xcd\x66\x4f\ \x4f\x83\x20\xc9\x80\xa8\xae\xd9\x94\x7d\xb1\x2e\x82\x60\x2c\x49\ \xa5\x92\xf0\xe7\x45\x12\x3e\x43\x09\x26\x7c\xce\x55\x92\x7e\xef\ \x8a\x1d\x61\x40\x12\x00\x6a\x38\x40\x6c\x69\x4d\x51\x0c\x87\xe2\ \x4c\x6b\x8f\xca\x14\x02\xb9\x86\xef\xf0\xbf\x0f\x7e\x9c\x89\x24\ \x2c\xc8\x19\xa3\x38\x63\x51\xca\x33\x98\xe2\x4c\x12\x33\x25\x5a\ \xb7\x2c\x93\xc4\xa6\xd8\x24\x19\xf9\xa6\x0c\x3d\x53\x20\x89\xc2\ \x35\x85\x87\x88\x37\x49\x30\x44\x00\x0c\x11\x81\x0c\x11\xc3\x7f\ \x80\x68\x92\x84\x4d\x8b\x3f\x80\x6d\x5a\x58\xb2\x52\xc8\xa0\xfb\ \xc9\x64\x3c\x5e\x8d\xc7\xb3\x59\x33\x9b\x61\x9c\x40\x97\x5d\x01\ \xc1\x82\x29\x45\x5d\xb7\x92\x2c\x45\x92\x7b\x5e\xb7\x5a\x49\x18\ \x97\x25\x9f\xf3\xa2\x10\x49\xfa\x57\x06\xe8\xa2\x80\x33\xc0\x17\ \x33\xc5\x00\x17\x62\xc8\x7f\x68\x03\x39\x10\xed\x52\xa5\x4e\x0d\ \xa8\x51\x0e\x06\x8c\xb2\x74\x27\xc9\x0b\x6c\x92\xf0\x10\xf1\x26\ \x89\x6d\x5a\x50\x43\x01\x35\x04\x50\x03\x10\x35\x34\xb8\x7b\x93\ \x04\x6a\x08\xa0\x86\x02\x6a\x08\xa0\x06\x00\x35\x04\x1b\x6a\x28\ \xa0\x86\x00\x6a\x28\x2c\x89\x64\x03\xb6\x04\x2d\x16\x93\xc9\x8b\ \x24\x8c\x19\x9f\x66\x0f\x04\x49\x88\x4f\x49\x2c\x49\x7f\xbd\x0e\ \xeb\x16\x9f\xd3\x20\xc9\xc9\x3d\xe7\x91\x51\xc3\xe7\x22\xe0\x32\ \xec\x5c\x97\x25\x26\x49\x51\x88\x24\x6a\x8a\xc1\x4c\x39\x4d\x9a\ \x62\x59\x9c\x61\x77\xb9\x3d\xf8\x21\xc3\xc1\xfc\x50\x0c\x06\xf1\ \x3f\x16\x9e\x1f\xb6\x69\x41\x0d\x05\xd4\x10\x38\x71\x9d\x01\x35\ \x04\x50\x03\x80\x1a\x02\xa8\xa1\x80\x1a\x00\xd4\x10\x40\x0d\x05\ \xd4\x00\xa0\x86\x00\x6a\x08\x9c\xd1\xc1\x80\x1a\x02\xa8\xa1\x70\ \x42\x7a\x0a\x19\x34\x5d\x2c\x96\x2a\xc9\x64\x7c\x0f\x49\x76\x87\ \xcc\x1e\xc2\x96\x46\x3c\x44\x6c\xd3\xe2\x83\x4d\x6b\x84\x38\xd2\ \x30\x86\x4d\x3b\x44\xca\x12\x92\xc4\xa6\x18\x6c\xa6\x7c\x07\x48\ \x69\xa1\x30\x53\x4c\x8d\xd3\xf0\x4d\xd4\x00\x70\x61\x75\x55\x30\ \xd8\x0f\xa4\x0e\x8b\x1e\xb1\x2e\x6c\x85\xe3\x87\x25\x11\xa8\xa1\ \x80\x1a\x02\x37\xa4\x8f\xb6\x0c\xe9\x40\x57\x48\x07\x92\x21\xdd\ \xf5\x23\x0e\xe9\xe6\x07\xd4\x10\x64\x03\x76\x00\xcd\xa7\xd5\x14\ \x92\xf0\x09\x92\x4c\x76\x86\x2e\x68\x3c\x43\x48\x86\x48\xfd\x32\ \x44\xe0\x87\x0c\x91\x15\x9f\x8b\xb0\x69\x5d\x60\xc9\x12\x88\x24\ \x6a\x0a\xb2\x01\x60\x92\xc0\x0f\xc3\x77\x0a\x33\x05\x6a\x88\x15\ \xed\xe8\xe8\x01\xea\x47\xdf\xfc\x00\xf8\xd8\xb7\x80\x4d\x35\x00\ \x2f\xa4\x33\x9c\xe8\xa1\x21\x5d\xb1\x65\x48\x07\xfc\x90\x1e\xf9\ \xb1\x19\x3d\x80\xae\xe8\x01\x74\x45\x0f\x20\x1b\xb0\x13\x68\xbe\ \x9e\xcf\xa7\x41\x92\x29\x24\xd9\x19\x41\x12\x1e\x22\x8d\x44\x7d\ \x2c\x59\x54\xcb\x10\xe9\x55\x55\xf0\x83\xcf\xc9\x3d\x9f\x51\xd8\ \xb4\x86\x3c\x43\x24\x89\x0c\x83\x1a\x97\x0a\x33\xa5\x34\x53\xa2\ \x74\x02\x35\x04\x96\xe8\x21\xc4\x06\xc4\x9e\xe0\x11\xd4\x30\x3f\ \x00\x58\x81\x6f\xe9\xe8\x01\x40\x0d\x45\x14\x3d\x52\xd1\x1c\x6a\ \x08\x2e\x53\xd1\xfc\x2a\x15\xcd\xa1\x86\xa0\x2b\x7a\x00\x89\xe8\ \xb1\x73\x34\xcf\xa0\xf5\xf3\x7c\x1e\x24\x99\x43\x92\x17\xec\x20\ \x89\x0e\x91\x99\x0e\x91\xf2\x65\x88\xac\xfb\xeb\x4a\x86\xc8\x7d\ \xf0\x03\xe0\x21\x82\x25\x8b\x81\x21\x02\x40\x0d\x85\x3b\x53\xfa\ \xbe\x29\x6a\x45\xbb\x7d\xa1\xbe\x80\x24\xea\x07\x10\x19\x60\x0b\ \x55\x67\xf4\x48\x45\xf3\x93\x54\x34\x87\x1a\x82\xae\xe8\x01\x44\ \xd1\xc3\x8f\xe6\x50\x43\xd0\x15\x3d\x80\x44\xf4\xd8\x23\x9a\x67\ \xd0\xdd\xf3\xf3\xf3\xfa\xf9\x59\x24\x99\x57\x91\x29\x69\xc0\x0f\ \x0c\x11\x9e\x21\x21\xae\x6b\x52\x2f\x88\x90\xd4\xe3\x21\x32\x0a\ \x92\x5c\xac\xf8\x04\x40\x12\x00\x92\x28\x22\x3f\xa0\x06\x10\xa5\ \x77\xdf\x14\x51\x43\x9d\xc1\x37\xf8\x01\xf4\xa5\x0b\x6c\xad\x28\ \x22\x3f\xfc\xe8\x91\x8a\xe6\x7f\x4c\x45\x73\xa8\x21\xe8\x8a\x1e\ \x40\x57\xf4\x00\xbc\xe8\xc1\xd5\x47\x22\x9a\x43\x0d\x85\xd3\x9f\ \xef\x80\x0c\xba\xbb\xbb\xab\x45\x12\x06\x24\xd9\x16\x96\x5d\x56\ \x3c\x43\x64\x88\xa0\x4f\x91\x9b\xac\xd0\x3c\xf6\xc2\x10\x39\x0d\ \x92\x9c\x2c\xcd\x0f\xc6\x50\xc1\x93\xa4\x69\x14\xae\x29\x45\xe1\ \x4e\x12\xa8\x01\x03\x54\x08\x46\xfb\x2d\xac\x56\x4c\xf5\x23\x0e\ \xe9\xea\x47\x28\x41\x22\x35\x0c\xfd\x54\x34\x3f\x49\x45\x73\xa8\ \x21\xe8\x8a\x1e\x40\x57\xf4\x00\x36\xa3\x07\x90\x88\x1e\x5e\x34\ \xdf\x3f\x7a\x64\xd0\xe7\xcf\x74\xc7\xa7\x66\x3c\xd7\x90\x64\x3b\ \xb0\x24\x36\x44\x38\xaa\xaf\xc2\x10\x19\xe0\xba\xd7\x6e\xb2\xd6\ \x8c\xd3\x20\xc9\x49\xd8\xb4\x46\x6d\x12\x51\x53\x9a\xc6\x9d\x24\ \xe7\x0a\xad\x2a\x14\xae\x29\x3d\x33\xc5\xbe\xf5\x21\x89\xf8\x11\ \x87\x74\xf3\x23\x11\xcd\xbd\xe8\xe1\xb7\x82\xc0\x11\xb7\x82\x19\ \xf4\x99\x15\x31\x49\xb6\x85\x0c\x1b\xbd\x00\x9b\xf0\xc1\x10\x41\ \x27\x52\x86\x21\x52\xd4\xb5\x2d\x59\xec\x47\x18\x22\xa3\x25\x9f\ \x8b\x20\x89\x20\x9e\x24\xae\x29\xe5\xb9\x3b\x49\xac\xfe\x6e\x63\ \xb8\x98\x22\xdf\x0c\x45\x01\x49\x2c\xa4\xdb\xb7\xaf\xd9\x0a\x02\ \xdf\x48\x2b\x98\x41\x4f\x3f\xf0\x81\x24\x66\xca\x16\x40\x6c\xa9\ \xc2\x10\x41\x08\x59\x45\x37\x59\x7c\x24\x84\x04\x49\x4e\xd9\x11\ \xf6\x83\xd5\xb0\x21\x62\x71\x44\x61\xa6\x34\xb6\x73\xf9\x93\x04\ \x6a\x00\x9b\x99\x64\x13\x3c\x68\xcc\x0f\x81\x6a\x95\x5b\xc1\xad\ \x91\x41\xd7\xec\x07\x4b\x02\x40\x92\x24\xc2\x32\x26\x77\x5f\x53\ \x3e\xcb\xe9\xcb\x4d\x56\xa3\x21\xe4\x89\x0a\x92\x67\x4e\xea\x75\ \x0f\x4b\x56\x3c\x44\x04\xf7\xee\x24\x69\xcc\x8f\x78\xd3\xf2\xae\ \x80\x0b\x33\xc5\xac\x88\x66\x4a\x51\xe8\x10\xc1\x37\x13\x02\xce\ \x1c\x53\x2b\x98\x8a\xe6\xd9\x80\xb7\x81\xae\xaf\xaf\x67\xd7\xd7\ \x2a\x49\x1a\x41\x92\xbb\x3b\x84\x95\x2a\x14\x28\xcb\xf6\x26\x0b\ \x9d\xfa\x20\x0c\x11\xdc\xf4\xf6\xc3\x10\x81\x1f\xac\x46\x65\x43\ \x44\x30\x6a\x61\xa6\x0c\x23\x53\xdc\x49\x82\x21\x22\x30\x3f\x64\ \x7e\xd8\x4c\x51\x2b\xe2\x6f\xe6\x07\x9e\x40\xdc\xa9\x15\x04\x3e\ \x6e\x2b\x98\x41\x37\x37\xb3\x1b\x48\xb2\x9d\x29\xc4\x63\xe6\x33\ \x42\x08\x86\xc8\x72\x3a\xd5\x90\xde\x70\x46\x97\x90\x5e\x10\x1f\ \xa0\x17\x86\xc8\xa9\x0d\x11\xc1\xd2\x9d\x24\x50\x43\x70\xe9\x4e\ \x92\xd2\xfc\x28\x3a\x26\x49\x64\x4a\xfc\xef\x30\x49\xe0\xc7\xcf\ \xda\x0a\x02\x47\xdc\x0a\x66\xd0\xcd\xf8\x86\xcf\x2c\x00\x92\x74\ \x20\x48\xc2\x7a\xe0\x5a\x58\x42\x3a\xfb\x81\x10\xb2\x68\x43\xc8\ \xec\xa9\xd4\x10\x42\x75\xaf\x0e\x6a\xb4\x43\x04\x80\x1a\x0a\x51\ \x63\x13\x2b\x77\x92\x0c\x36\x4c\x71\x9e\x56\x77\x4c\x89\x43\x48\ \x5f\xfc\xf8\xfa\xad\x20\xf0\x8d\xb4\x82\x19\x04\x3f\x36\x30\xf3\ \xc0\x8e\x68\x4e\xb1\x90\x0e\x3f\x36\xf6\x2b\xfd\x53\x81\x32\x3f\ \xea\x76\x88\x00\x90\x44\xe1\x9a\x02\x35\x14\x51\x45\xe2\x5e\xfc\ \xc6\x8f\x8c\xc4\xa6\x68\xf4\xf8\x32\xa4\xf7\x1d\x3f\x72\x2b\x98\ \x44\x06\x7d\xe2\x33\x66\x98\x1f\x2e\x34\xa7\xd8\x7e\xc5\x67\x19\ \x42\xc8\xfd\x54\x9b\x42\x09\xe9\x65\x18\x22\xc5\x13\x99\x1f\x50\ \x03\xa8\x2a\x77\x92\x38\x71\x1d\xb8\x7c\x41\x73\xce\x8e\x00\x83\ \x33\x48\x02\x94\xde\x24\x89\x17\x2a\x33\x05\x0d\xa0\xea\x72\xcc\ \xad\xe0\xcf\x1f\xcd\x33\xe8\xf6\xf6\xd3\x84\xfd\x10\x8c\x5f\x81\ \xe4\x14\x0d\xe9\x77\x12\xd2\xe5\x92\x77\x19\xef\x57\xec\x07\x42\ \x08\x7f\xa8\x47\x44\x8c\x70\xd3\x5b\x03\x21\xae\xaf\x15\xd5\x08\ \x92\x00\x51\x5c\x77\x27\x89\x7b\xf1\x5b\x9a\x1f\x9b\x49\x44\x00\ \x21\x2c\x9a\xab\x1f\xbb\xb7\x82\xc0\xc7\x6d\x05\x33\x58\x90\xc9\ \xed\x2d\x20\xa6\x38\xe0\x21\x72\xcd\xc7\xdf\xaf\x30\x3f\xf8\x0c\ \xc6\x7c\xca\x20\x89\xec\x57\x14\x0d\x11\x5c\x67\xb9\x93\xc4\xbd\ \xf8\xf5\x8b\x91\x81\x7b\x9d\x35\xf0\xde\xeb\xb8\xda\x8c\xe6\xea\ \x47\x6e\x05\x77\x45\x06\xdd\x2e\xe0\xc7\xeb\x60\x49\x38\x84\xb0\ \x1f\x21\xa4\xd7\xe1\x92\x77\x7d\x27\xfb\x95\x96\x20\x2b\x29\x41\ \xf8\xd8\x7e\xd5\xe7\x4f\x6d\x7e\x40\x0d\x85\x7f\x9d\xb5\xbc\x68\ \x31\x0c\x92\x00\xb6\x69\x49\x12\x11\x60\xc9\x52\x40\x0d\xa0\x88\ \x43\x7a\x34\x49\xcc\x8f\x43\x6c\x05\x81\x03\x6e\x05\x33\x08\x7e\ \xbc\x0e\xa4\x13\xdc\x03\x7b\xfb\x15\x7f\x16\x2b\x5c\xf2\x06\x49\ \xca\x10\x42\x0a\x0b\xe9\x44\x02\x2c\x59\x0a\x2c\x59\x00\x92\x88\ \x20\xf6\x03\x6a\x00\x50\x43\x61\x71\xdd\xbd\xce\xb2\x90\xae\xa6\ \x28\xfa\xe6\x47\x6e\x05\xf7\x41\x06\x3d\xf0\x59\x08\x7e\xea\x07\ \xf6\x2b\x84\xf4\xa7\x10\xd2\xd1\xa4\xaf\x43\x48\xaf\xe6\x7c\xee\ \x59\x0f\xdd\xaf\x58\x0f\xdd\xaf\xc4\x0f\x32\x3f\xa0\x86\x02\x6a\ \x00\xfe\x75\xd6\xd2\xae\x7b\xdd\xeb\x2c\xa8\xa1\x88\x43\xba\xfb\ \x72\x39\xd4\x10\xe4\x56\x70\x4f\x64\x04\x41\xa6\x26\x49\x8c\xee\ \xfd\x6a\x2e\xf7\x57\x8d\xf8\x61\xfb\x95\x96\x20\xd4\x17\xb0\x15\ \xdd\xd7\xbd\xa3\xd4\x75\x6f\xea\xe9\x2c\xc0\xde\xf0\x70\xa2\x47\ \x3f\xb7\x82\xfb\x22\x83\x1e\x1f\xa7\x8f\x8f\x8f\x22\x49\x8c\xee\ \xfd\x8a\x8f\xee\x57\x7c\xa2\xfd\xaa\x1d\x22\x80\x0e\x11\xbb\xce\ \x12\x74\x5c\x67\x5d\x00\xc8\x1f\x02\xbb\xee\x6d\x1a\xf7\xba\x37\ \x0e\xe9\x6e\xf4\xe8\xff\x52\xad\x20\x70\x64\xad\x60\x06\xc1\x8f\ \x4d\x40\x92\xc9\x2d\x0f\x90\xee\xfd\x0a\x7e\xd8\x7e\x55\x30\xa0\ \x06\x40\x91\x1f\xb5\x77\xdd\x0b\x35\x14\x3b\x84\xf4\xa6\x23\xa4\ \x5b\xf4\x00\x0e\xbe\x15\x04\x0e\xb8\x15\xcc\x20\xcf\x8f\xad\xf7\ \x2b\xfe\xc8\x7e\x55\xa8\x1f\x50\xc3\x42\xba\x22\x15\xd2\xab\x54\ \x48\x3f\x77\x2f\xb1\xdc\xdf\x7d\x33\x3f\x8a\xdc\x0a\xbe\x19\x19\ \xf4\x53\x3f\x24\xae\x4f\xbe\xec\x07\xeb\xb0\x5f\xe1\x4d\xc2\xa5\ \xbc\x04\x02\x3f\xb4\xff\x98\xa9\x1f\x50\x03\xa0\x8e\x4b\x2c\x00\ \x7e\x28\xb6\x0c\xe9\xc0\x66\x48\xf7\x7e\x41\x34\xfd\xae\xa0\x22\ \xb7\x82\x29\x64\x04\x41\xe6\x8f\x80\xf8\xf1\xf0\x80\x62\x84\xfb\ \x73\x7d\x7a\x91\x42\x3f\x88\x37\x09\x2b\xd6\x03\xd1\x63\xda\x46\ \x8f\x49\xc9\x7a\xa8\x1f\x50\x03\x20\xe7\x12\x6b\xef\x67\xb2\x9a\ \xe4\x33\x59\xbf\xd4\x2f\x88\x02\x1f\xab\x15\xcc\x20\x55\x43\xf1\ \x00\x3f\x42\x7f\xbe\xf1\xfc\x15\x5e\x92\xb2\xfd\x8a\x8f\xed\x57\ \xa5\x0d\x11\x0b\xe9\x82\x54\x48\x5f\xa7\x42\x7a\xe2\x99\xac\xf7\ \xfd\x05\xd1\xdc\x0a\x66\xd0\x8f\xf3\x1f\xf9\x08\xb6\xdd\xaf\xf8\ \x63\xfb\xd5\xd8\x86\x88\x85\x74\x41\x57\x48\x07\x12\x21\x5d\xd4\ \x50\x74\x85\x74\xe0\x5b\xfc\x05\x51\xe0\x80\x5b\xc1\x0c\x32\x3f\ \xb6\xde\xaf\xa6\x53\xdb\xaf\xc6\xda\x9f\xc7\x21\x5d\xd1\x15\xd2\ \x81\xed\x42\x3a\x90\x0a\xe9\x65\xac\x86\x21\xb7\x82\x6f\x44\x06\ \xa9\x1f\x21\x7f\xb4\x57\xbb\x9f\xa4\x3a\xbf\x96\xf7\x07\xd7\x61\ \xbf\xaa\x9e\x51\x9d\xc3\x0f\x5c\xed\xa2\xfa\xd0\x7e\xd0\x42\xba\ \x77\xc9\xeb\x37\xe9\x6b\xf7\x49\x13\xa8\x01\xac\xfc\x4b\xac\xe8\ \x71\xf7\x54\xf4\xc8\xad\xe0\xdb\x91\x41\xf0\x43\xab\x0f\x54\xe7\ \xa8\x3e\x50\x9d\xa3\xfa\x90\xea\xbc\x92\xe8\xa1\xf9\x1c\x8f\x96\ \x88\x1f\xa2\x86\x85\x74\x85\x1f\xd2\x23\x3f\xbc\xe8\xb1\x4c\x45\ \x8f\x26\x1d\x3d\xde\xb3\x15\x04\x3e\x56\x2b\x98\x41\xec\x87\x55\ \x1f\x9f\xda\xea\xe3\x87\xb6\xfa\xb0\x57\xa3\x34\x9a\x5b\xf4\x18\ \xa7\xa2\x47\xfa\x75\x90\x0b\x2f\x9a\xfb\xd1\xa3\x49\x44\x8f\x43\ \x6a\x05\x81\x23\x68\x05\x33\x48\xa3\xc7\x83\x46\x0f\x89\xe6\xd4\ \x46\xf3\xaa\x8d\xe6\xab\x36\x9a\x97\xea\x47\x2a\x7a\xf4\x52\xd1\ \xa3\x8a\xa2\x87\x1f\xcd\xdd\xfe\xbc\x74\xfe\xb8\xc7\x11\xb4\x82\ \xc0\xe1\xb5\x82\xb9\x49\x7f\x90\x68\x2e\xd1\x63\xd6\x46\x8f\x5a\ \xa3\x47\x1b\xcd\xed\xa9\x2b\xf8\x91\x8a\x1e\x94\x8a\x1e\x55\x14\ \x3d\x52\xd1\x7c\xb0\x43\x34\x87\x1a\x82\xdc\x0a\xbe\x11\x19\xb4\ \xd5\x53\x57\x5a\x0d\x5a\xf4\x28\x53\xd1\x83\x52\xd1\xa3\x72\xa2\ \x87\x1f\xcd\x2d\x7a\xbc\xd3\xdf\x15\x04\x72\x2b\xe8\x21\x83\xa2\ \xa7\xae\x34\x9a\xd7\x12\xcd\xdf\xd2\x0a\xd2\xd1\xb7\x82\xc0\xf1\ \xb7\x82\x19\xb4\x65\x2b\xb8\x78\xd7\x56\x10\x38\xbc\x56\x30\xb7\ \x82\x19\xf4\x2d\xb6\x82\xe5\x91\xb4\x82\x87\xff\xc7\x3d\x32\xe8\ \x23\xb4\x82\x40\x6e\x05\xf7\x40\x06\xe5\x56\x50\x90\x5b\x41\x0f\ \x19\xf4\x0e\xad\xa0\x13\xcd\x8f\xae\x15\x04\x8e\xbf\x15\xcc\xa0\ \xdc\x0a\xe6\x56\xf0\x75\x64\xd0\x2b\xad\xe0\xf4\x2b\xb5\x82\xb9\ \x15\x3c\xa8\x68\x9e\x41\x1f\xa1\x15\x04\x72\x2b\xb8\x07\x32\x28\ \xb7\x82\xb9\x15\x7c\x1d\x19\x64\xad\xe0\xfc\x7d\x5a\xc1\xea\xe8\ \x5b\x41\xe0\x38\x5b\xc1\x0c\x3a\xb8\x56\x10\xc8\xad\xe0\x61\x20\ \x83\x72\x2b\x98\x5b\xc1\xd7\x91\x41\xb9\x15\xcc\xad\xe0\xeb\xc8\ \xa0\xdc\x0a\x46\xd1\x43\xf1\xb5\x5a\xc1\xff\xb7\x77\x2f\x2b\x0d\ \x04\x61\x10\x85\x4b\x24\xb8\xcd\x42\x70\xe1\x42\x30\x26\x5e\x46\ \x63\xbc\x8b\x20\xa8\xaf\xa2\x20\x0a\x82\x68\x50\x1f\xdf\xb5\x81\ \xbf\x99\xc8\x74\x4f\xf7\xdf\x67\x73\xde\xa1\xf8\x16\x05\x3c\xe4\ \x17\x45\x57\xc1\x79\x15\x2a\x38\xf5\xa9\x82\x44\xa8\x20\x2a\x68\ \x87\xa8\x74\x15\x5c\x45\x05\x23\x86\xe8\xaf\x0a\x3e\x56\xa1\x82\ \x23\x54\xb0\x65\x88\x50\x41\x54\xd0\x0e\x51\x52\x15\xfc\x72\xab\ \x82\x33\x9f\x2a\x48\x94\xbd\x0a\x0e\x51\xc1\xfe\x42\x84\x0a\xa2\ \x82\x76\x88\x02\xe7\x1e\x6e\x55\xb0\x41\x05\x5b\x86\x28\xa8\x82\ \xa8\xe0\xa4\x6e\x15\x24\x4a\xaa\x82\xdf\xbe\x54\xd0\xff\xb9\x07\ \x51\xf6\x2a\x38\x40\x05\xfb\x0b\x91\x27\x15\x1c\xa3\x82\x1d\x87\ \xc8\x56\x41\x55\xa1\x82\x3b\xa8\x60\x20\x44\xdd\xaa\xe0\xab\x2b\ \x15\x44\x05\x89\x7a\x53\xc1\x75\x17\x2a\xe8\xfc\xdc\x83\xa8\x28\ \x15\xdc\x46\x05\xd3\x86\xc8\x93\x0a\xee\xa3\x82\x1d\x87\xc8\x50\ \x41\x63\x9a\xfb\x53\xc1\x43\x54\x30\x10\x22\x54\x10\x15\xb4\x43\ \x14\x43\x05\x51\x41\x2f\xd3\x9c\x94\xa5\x82\x5b\xa8\x60\xda\x10\ \x54\x10\x15\x0c\x84\xb4\x54\xc1\x8f\x2a\x54\xf0\x08\x15\x5c\x08\ \x51\x3c\x15\xdc\x40\x05\x8b\x0f\x41\x05\x51\xc1\x40\x88\x50\x41\ \x54\xd0\x0e\x91\x57\x15\x3c\x43\x05\x3b\x08\x51\x3b\x15\x9c\x57\ \xa1\x82\x53\x54\x70\x21\x44\xa8\x20\x2a\x68\x87\x28\x0b\x15\x9c\ \xa1\x82\x79\x86\xa8\x58\x15\x1c\xa1\x82\xf1\x43\x84\x0a\xa2\x82\ \x76\x88\x96\x57\xc1\xc6\x9b\x0a\x9a\xd3\x1c\x15\x24\x4a\xa3\x82\ \x43\x54\xb0\xc8\x10\xa1\x82\xa8\xa0\x1d\xa2\x62\x55\xb0\x41\x05\ \xe3\x87\xa8\x06\x15\x9c\xa0\x82\xff\x0c\xd1\xf2\x2a\xb8\xe7\x4c\ \x05\x39\xf7\xb0\x43\x94\x46\x05\x07\xa8\x60\x91\x21\xca\x4e\x05\ \xc7\xa8\x60\x3e\x21\x72\xa1\x82\x17\xa8\x60\x9c\x90\x5f\x2f\xd0\ \xd0\x9a\x63\x93\x03\x4d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x0a\x83\ \x00\ \x00\x2f\x2e\x78\x9c\xad\x5a\x59\x73\xdb\x38\x12\x7e\xcf\xaf\x40\ \xf9\x5d\xf1\x3a\x99\x1c\x5b\x95\x64\x2a\x96\x6c\xc7\xb5\x56\xe2\ \x84\x9a\xcc\xbc\x4d\x41\x24\x44\x61\x43\x12\x0c\x08\x5d\xf9\xf5\ \xdb\xb8\x01\x4b\x04\x69\xcf\x56\xc5\xb1\xfb\x03\xba\x71\x35\xfa\ \x02\xdf\xfd\xbe\xaf\x2b\xb4\x25\xbc\xa3\xac\x79\x7f\x76\xf1\xfc\ \x5f\x67\x88\x34\x39\x2b\x68\x53\xbe\x3f\xa3\x1d\x9b\xbc\x7d\xfb\ \xea\xdf\x93\x8b\xb3\xdf\x3f\x3c\x7b\x97\x63\x41\x4a\xc6\x29\xe9\ \x50\x83\x6b\xf2\xfe\xec\xfe\xf0\x55\xa0\xab\x3d\xae\xdb\x0a\x30\ \xdc\x14\x68\x46\x6a\xd6\x9d\x7d\x78\x86\xd0\xbb\x42\xfe\x89\x0a\ \xca\x75\x5f\x45\x9e\xa1\x82\xe5\x11\xad\x09\xc9\xd6\x74\x82\x63\ \x01\xd3\xd0\xfc\x20\x81\x68\xc9\x68\x45\x2b\x62\x99\xf2\x0a\xcb\ \x5e\x5b\x72\xde\x01\x52\xc2\x8f\x95\x91\xc1\xff\x37\x8a\x26\x7b\ \x92\x6f\x04\x5e\x56\x80\xae\x70\xd5\x01\xf4\xb3\xae\xde\x9f\x09\ \xbe\x21\x67\xe7\xbd\xc2\x05\xd9\x0b\x52\x50\x61\x05\x2e\x80\x46\ \x57\x0a\xe8\x67\x22\xf5\x92\x14\x05\xfc\xa3\xb8\x62\xa5\x5b\xd0\ \x95\x81\xd1\xcc\xe2\xfd\x22\xc2\x45\xd5\xb4\x21\xeb\x4d\xe3\xe6\ \x30\x77\x74\xb8\x28\xb5\x10\xbd\x26\xbd\xbe\xe1\xf9\x9d\x57\xb4\ \x5c\x8b\x1a\xb7\x6e\x8a\x5f\x5a\xd2\x64\x82\x13\x22\xe6\xb8\x4d\ \x48\xe8\x5a\x4e\x70\xd1\xad\xa1\xa3\xdb\xea\x00\x52\x8c\xef\xce\ \xd5\x71\xaa\x3f\x8d\x96\x1c\xfc\xd1\xe3\x86\xd6\xea\x64\x2d\xff\ \x47\x0b\xa0\x6b\x0e\xc0\x8e\xf1\x1f\xfd\x67\xae\xb9\x49\x21\x00\ \xe9\x62\x09\xb0\xbf\x0b\x8d\xf6\x4f\x1f\xb7\x6d\xbe\x66\xac\x23\ \xdc\xf1\x06\x48\x62\xe3\x70\x07\x77\xc0\x9d\xa7\xa2\xd0\x74\xc3\ \xb7\xe9\xe1\x6a\xb6\x25\xcb\x8a\xe5\x3f\xdc\x54\xe7\x6c\x2b\x59\ \x2f\x0d\x98\xd8\x68\x01\x2b\x72\x6c\x99\xa1\x52\xfd\x69\xfe\xa3\ \xc6\x8d\xe7\xb0\xb4\x39\x13\x7b\x12\x3d\xc7\x12\xea\x9d\x60\x07\ \x37\x32\xdc\xe9\x99\x6f\x72\xf7\x3b\x71\x2b\x0f\xf0\x9b\xe6\x5d\ \x4e\x1a\x77\x1b\x67\x1a\x43\x99\x06\x93\x57\x32\xb1\x46\x58\xd2\ \x44\x60\xf8\x61\x4e\xf2\x02\xa4\x2e\x30\xfc\xb0\x7f\x20\x37\x8f\ \x8e\x68\x6a\xa8\x27\x4b\x03\x05\x5e\x32\xcc\x0b\x2f\x31\x40\x9e\ \xbc\xf6\xad\x20\x4d\x43\x9d\xcc\xc5\x77\xb4\x30\xc0\x08\x91\x23\ \x8e\xbf\xa3\x65\xe3\xaf\x85\x3a\x76\x03\xf5\xaf\x14\x57\xf9\xa6\ \xc2\x82\xf1\x15\xe3\xb5\x5b\xad\x43\xd1\xb5\x82\xfb\x17\xd5\x56\ \x9b\x92\x36\x7e\x9f\x36\x9d\x60\x35\xfa\x93\x16\x25\x11\xe8\xde\ \x36\x8e\x5e\xc1\x0f\xc1\x5a\xef\x44\x34\xd9\x7f\x61\x0e\xd2\xc5\ \x1c\xdc\x7d\x01\x92\xd4\x68\xa1\x20\x30\x27\xa5\xe9\x42\x6a\xd9\ \x6b\x62\xf8\x9f\xb7\x60\x05\x12\x97\x30\x07\x0b\xda\x74\x6b\xe6\ \x8d\x63\x80\x8c\x5c\x47\xec\x3b\xac\xcb\x48\xa8\x5b\xb3\xa2\xa5\ \xe6\xf2\x0a\x27\xb1\x8d\xf6\xa0\xc6\xeb\x24\xcd\x1b\xf8\xba\xa6\ \x0b\x6c\xf2\x95\x05\x46\x30\xaf\x68\x53\xac\x42\x73\x7c\x0d\x00\ \xba\x96\xc8\x08\x6e\xb0\x73\x4d\x01\x57\xe3\xc1\xb2\x33\x03\x8f\ \x71\x99\xa0\xfa\xf1\xf2\x17\x78\x39\x62\x64\xc1\xe9\x16\x3a\xed\ \xe8\x2f\x18\xc7\xb1\x6a\x10\x74\x50\xa3\x46\x13\xa2\xbe\x56\x19\ \x26\xb4\x11\x9c\x15\x9b\x5c\xee\xf2\x80\x66\x80\x05\xed\xba\x78\ \xa8\xa9\x84\xdc\x40\x23\x95\x83\xe3\x12\x36\xa6\xe0\x81\xa2\x03\ \xa4\xa3\x2d\x9e\x52\xf7\x82\x54\xf8\x40\x0a\x1b\xce\xf9\x6b\xa2\ \x60\x74\xe5\xf0\x44\x68\x02\x23\x95\xd2\xcc\xd0\x9c\xf9\x4b\x3b\ \xb3\x28\xba\xd5\xf0\x08\x01\x32\xb8\x3a\xe6\x5f\x28\x34\xc5\xce\ \xda\x8e\x0a\xef\x55\x80\x46\x99\x02\x12\xda\xc9\xa5\x35\x81\x53\ \x6c\x88\xf0\x1a\xaa\x40\x34\xb7\x68\xc2\x42\x6d\x7e\xfd\xaa\xdc\ \x88\xf7\x86\x32\x5a\x11\x9c\x86\xee\x77\x6c\x26\x06\x4f\x94\xac\ \x56\x24\xf7\x33\xbb\xe1\xb8\x5d\x83\xf7\x44\x57\x06\xef\x9d\x99\ \x0a\xe1\x82\x93\xbc\x33\xb4\xd2\x85\x6c\x8d\x0b\xb6\x1b\x6d\x3b\ \x4b\x33\xea\x96\x92\xdd\xd1\x4c\xbe\x4b\x30\x11\x90\x41\xf8\xc4\ \x41\x89\xd8\xc6\x1d\xe9\x47\x85\xa1\x3b\x03\x26\xec\x0e\x5c\x01\ \x70\xea\x0d\x2b\xbc\xf5\xb8\xd2\x18\xfa\xac\xc1\x94\x9f\xad\x2a\ \x2a\x75\x16\x22\x0b\xe2\x2d\x9f\x01\xd1\x5c\xa1\x09\x6d\xa2\x18\ \x96\x5d\xc7\x71\x8a\xc6\x6c\x9c\x92\xd6\x64\x79\xec\x9c\x2d\x99\ \x38\x79\x13\xd1\x37\xdd\x94\x50\x2d\x5c\x34\x78\x4b\x4b\xe9\x29\ \x9d\x82\xe1\x02\x7d\xb6\xa0\x0d\xb6\xc6\x9e\x22\x6d\x73\x2b\xe7\ \xf6\x7e\x9a\xf0\x7c\x6b\xcc\x49\x51\x43\x8c\xce\xbd\xfb\x53\x18\ \x9a\x1b\xd0\x3a\xc0\xa0\xa7\xd5\xed\xbf\x2f\x06\x4c\x1d\x84\x4f\ \xb8\x82\x80\x40\x6c\x1a\x08\x1c\x29\xf1\xf9\xcb\x9d\x6c\x91\x41\ \x81\x6c\x42\x53\xd3\x66\xc6\x3a\x66\x1b\xe9\x74\x43\x46\x08\xe3\ \xb7\x3e\x88\x89\xc7\xcb\x4c\xdb\x89\xf1\x34\xdb\x13\x6e\x2f\x18\ \x9f\x5a\x5e\x1a\xa7\xbd\xb7\x32\x88\xf8\xae\x90\xde\x09\x2f\x21\ \x7d\xc8\x3b\x18\x19\x20\x41\x78\x0d\x8a\x5e\x59\xfe\x4b\xd9\x86\ \x32\x68\x3c\xbf\x56\xad\x68\xae\x9b\x13\xf7\x00\x0e\xc9\x6d\xf1\ \x54\x13\x89\xde\x2a\xc6\xea\x19\xdd\x04\x60\x8f\x1b\x9e\x55\x8c\ \xcb\x4c\x19\xa2\x40\x9c\x8b\x40\xa7\xa6\xb2\x45\xe5\xcc\x32\x14\ \xb4\x6d\x66\xfb\x8f\xd9\x54\xc3\x90\x1b\x65\xf5\x92\xed\x54\x7c\ \x08\xd9\x6b\xeb\x8f\x7a\x2a\x1b\x6c\xe4\x38\x37\x4d\xa9\xcb\xcf\ \x43\x5b\x37\xa3\x9c\xa8\x39\x68\x63\x97\x72\x27\x44\xe4\x6b\xb8\ \x0e\xce\x64\x5c\x4b\x00\x76\x89\x27\xed\x85\x5c\xa8\x72\x7c\x10\ \x0d\x46\x3b\x7e\x65\x1a\x20\xf0\x24\x64\x78\xb3\x5b\xba\x27\x55\ \x64\x30\x3c\xf0\x38\x27\x86\xdc\x49\x38\x1d\xee\xf3\x61\xa7\x8d\ \x08\x95\x40\xc1\xea\x68\x39\x99\x42\xd1\xec\xcb\x7c\x78\x2d\x5a\ \xc2\xd1\x8e\x18\x11\xe3\xf6\x43\xcb\x38\xa5\x10\x46\xcc\x68\x8d\ \xe8\x5a\xda\x2c\xd9\x1e\xc6\x23\x60\x7c\x7d\x1d\x09\x60\x74\xc9\ \xf6\x90\x0d\xd9\x86\x64\x2c\xcb\x8f\x04\x00\xf6\x90\x79\xd0\xac\ \x68\x77\xea\x8c\xca\x9d\x21\xd3\x16\xe5\x01\x93\xb6\x24\x96\x35\ \x31\xeb\x25\x83\x49\x3f\xf0\xe0\x97\x0a\x1b\xe1\xc1\x57\x15\xdb\ \xc5\xac\xd7\x80\xc4\x8c\x83\xcb\xad\x31\x6d\x76\x90\x34\x30\x6f\ \x47\xe7\x00\xc1\xe1\x69\x2c\x55\xce\xa9\x68\x1e\x57\x93\x42\x28\ \x61\x00\x20\xc7\xd7\x6a\xe3\x03\x59\x80\x8c\xbe\xa4\x8b\x3a\x05\ \x75\xb3\x9c\xdd\x26\xf5\xc1\xf7\xcc\xd2\x3d\x6b\xd2\x6c\xfc\xda\ \x35\xd1\xdf\x1b\x8c\x15\xb8\xc7\x28\xe7\xfa\xa6\x20\x9d\x75\x25\ \xa7\x44\x5a\x6c\x0b\xab\x91\x99\xce\xc2\x86\xc7\x97\x8c\x36\x74\ \x02\xb6\xb9\x65\x0d\xcc\xc2\xd7\x8e\xe6\x77\xe8\x8f\x5b\x34\xf5\ \x0d\xa9\x68\xac\x82\xf4\x01\xf2\xa9\xca\x1b\x65\x5c\x3d\xbd\x5e\ \xb2\xaa\x68\x2b\xb9\xbc\x5a\x5a\xfa\xa9\x12\x21\xd8\x2b\x39\xe9\ \xba\x25\xf6\xd6\xd7\x40\x48\x61\x4f\x15\xdc\xe5\xb0\xea\x2a\x10\ \x9b\x29\xe0\x1f\x0a\x25\x98\xe7\x6b\xb0\x68\x4e\xa8\x02\x90\x42\ \x9e\x2c\x14\x62\x6b\x02\x69\x2c\xb8\x3c\x27\x56\x42\xc8\x62\x4f\ \x16\x0c\x66\x36\xa8\x3e\x65\x96\x7c\x72\xb5\x0c\x2f\xf5\xed\x0e\ \x4b\x02\x16\xf9\x7f\xd4\xcb\x20\x6f\x54\x85\x6a\x23\xfe\xb3\x26\ \x65\x3a\xd6\x6f\x67\x65\x5d\x11\x7a\x9c\x0c\x8d\x2f\x4d\xe3\x51\ \x74\x9c\xb0\xdb\x9c\xe1\x22\x87\x64\x49\x9a\x03\x1a\x84\xbd\x97\ \xb6\x01\x7d\x73\x2d\x23\xc4\x74\xa4\x29\x4e\x09\xc9\x0c\x9e\xb8\ \x6b\xa7\x56\x34\x7e\x21\x27\x63\xf7\x87\x51\x7b\x82\x5d\xb4\x67\ \x08\x82\xe0\xa6\x84\x28\xcb\xc4\x71\xee\x60\x8d\xb0\xc5\xfd\x88\ \x79\xac\xc5\xb0\xa4\x4f\x8b\x51\xa2\xc4\x5a\xbe\x89\x90\xe2\xe4\ \xd2\x16\xa6\x51\x9d\xf5\xf3\x78\x85\x83\x8a\xc7\x5a\xd2\x94\xce\ \x46\xca\x67\x9b\x9b\xbb\x7e\x9d\x7b\x51\xb4\xe0\x48\xc3\x32\xc1\ \x8b\x19\xba\x77\x50\xff\x02\x20\x0d\x5e\x2e\xfd\x94\x6f\x2c\x99\ \xd8\x3d\x52\x55\xcc\xcf\xec\x93\x24\x11\xcc\x2d\xc1\xc2\x60\xdd\ \x0f\xe7\xf7\x25\xc2\x12\x16\x43\x01\xcb\xcd\x6a\x45\xb8\xaf\x1a\ \xea\x5e\x97\x16\x4d\x3f\xef\x6d\xb8\xf7\x9f\x0b\x47\x8f\x3b\x86\ \x87\xd3\x76\x7b\x9a\x8e\xd1\x0a\x8e\x77\x01\x97\x8e\xd1\x66\x16\ \x4c\xe5\x3d\x8d\xf4\xef\x9c\xe6\x39\xe5\x79\xe0\xf7\xa7\xae\x01\ \x4d\x6d\x4b\xaa\xe4\x00\xb3\x94\xfb\x2b\xd6\x5d\x34\x73\x88\xf5\ \xee\x35\x98\xd8\xf1\x6d\x29\xd3\x84\xc0\x4a\x7f\xbf\x51\xf9\x52\ \x5a\x2f\x04\xc7\x4d\x27\xdf\x07\xe2\xa8\x63\xf1\x10\x1e\xb9\xef\ \x6b\xd6\xf8\x60\xef\x5e\x53\x89\x07\x0a\xf0\xf9\xb4\xa2\x82\x06\ \x3b\x16\x61\x89\x90\x6c\x03\x67\xd3\xca\xea\xa8\x5b\xf0\x5c\x42\ \xe8\xde\x60\xe3\x26\x0c\x27\xb3\x0e\xcb\x9d\xdf\x80\xd6\x95\xce\ \xd4\xb3\x0a\x91\xc5\xef\xe0\x41\xc5\xd0\x89\xab\x24\xe3\xf5\xf0\ \x15\xe6\x8b\x0a\xe0\x87\x1e\x60\xba\x43\x23\xf0\x7e\x4d\xcb\xb5\ \x2a\x27\x06\x67\xab\x1a\xd0\xa7\xb0\x25\x7d\x9b\xd8\xf2\xbf\x60\ \x31\xa3\xe7\xf2\x2f\x06\x1a\xb7\x53\x10\x06\xd1\xd6\x09\xf8\x2a\ \x32\x4d\xa7\x0d\x4e\xcc\xa4\x8d\x8e\x61\x74\xb5\xfb\x8b\x47\x14\ \x74\xba\x9f\x3e\x11\xfd\x9a\x30\xac\x39\xce\xd7\xa4\x10\x61\x84\ \x39\x55\x10\x5a\x68\xac\x7f\xb3\x7e\x6e\x08\x3f\x44\x29\xef\x57\ \x89\x0c\x27\xbb\x5c\x66\xfa\x70\x59\x70\xa5\xc6\x8d\x44\x7c\x73\ \x6d\x7a\x02\xc3\xd2\x8e\x65\x1c\x33\x0e\x6e\x97\xf6\x73\x5d\xec\ \xd9\x92\x66\xb0\xc6\x10\x4d\x54\x10\x74\xf8\xaf\x1a\x02\x64\xe4\ \xa8\x8c\x55\x7e\x4c\x45\x24\x2c\x27\xa4\x29\x81\xb9\xd4\xd4\x50\ \x7d\x4c\xe6\x32\xf2\x99\xc2\xdf\x41\x5d\x19\x9b\x7a\xbc\x5f\x04\ \xbd\x78\xeb\x2c\xd4\xad\xb4\xad\x8d\x39\x1a\xfa\x6b\x30\x2f\xe5\ \xa4\x24\xfb\xd6\x9f\x6a\xb9\x81\x14\x0b\x5d\xed\x5b\x99\x66\xd0\ \x81\xf7\x95\x8e\x08\xe9\x83\x3a\x5d\x56\xf3\x81\xbf\x46\x4d\x25\ \x6e\xf4\x26\x6f\xa0\x33\xa4\x60\xdd\x39\x2e\x0a\x95\xf7\x30\xe6\ \xe2\xdd\x8f\x1a\x42\x97\x80\xa1\x85\xe9\xd9\x7f\x08\x90\x5a\x8a\ \x0b\xef\x70\xb8\x40\x17\xee\x7a\x06\xd2\x27\x76\xcc\x89\x62\x98\ \xf8\xe7\x54\x75\x83\x93\x8e\x8d\x8b\x17\xd1\x00\x2f\x86\x07\x78\ \x31\x81\xa6\x89\xcc\x3a\x71\x3e\x6a\x84\x97\xd1\x08\x2f\x87\x47\ \x78\xf9\xc8\x25\xfc\x16\x0d\xf0\x5b\x7a\x80\xc7\x89\x7e\x15\x89\ \x7e\x35\x3c\xf7\x57\x8f\x1c\xe0\x75\x34\xc0\xeb\xe1\x01\x5e\x3f\ \x72\x80\x37\xd1\x00\x6f\x86\x07\x78\x73\x7a\x80\x41\xcd\x7f\x50\ \x17\xb2\x25\xa1\xc4\x13\x98\x7c\x6a\x56\x1f\x91\xf8\x17\x30\x09\ \xa1\xa9\xc6\x12\xd6\xc6\x7d\x2b\x71\xe2\xeb\x89\x01\x46\x15\x13\ \xc4\x59\xae\x8d\x14\x4c\x19\x6b\xe8\xd5\x00\xd4\x9e\x40\x00\xe6\ \xcc\xcd\xd4\x62\xb2\x5e\x9a\x0e\x47\x0b\x12\x1b\x19\x69\x58\x63\ \x03\xd3\x53\xe6\x29\xa9\x80\x15\x86\x7b\x35\xd3\xd8\xf0\x66\x95\ \x9c\x6d\xda\xa0\xa2\x71\x23\x69\x59\x9c\x4d\x1a\xe3\xf0\xad\x7a\ \xf0\x85\x5a\xa9\x54\x1c\xe5\xde\x4a\x68\x44\x9c\x5b\xd1\x46\xed\ \x89\xaf\xda\x02\xa0\xb6\x64\xe8\x13\x31\xea\x42\x08\xf9\x75\x18\ \x89\x03\xcc\xbe\x8a\x11\x5d\x06\xa1\x47\xe6\xe8\x04\xcf\x1a\xb7\ \xa4\x88\x76\x3e\x53\xd0\xf0\xc6\xab\xb2\x4f\x90\x65\x59\x72\xb0\ \x9a\x1e\x7c\xc0\x66\xea\xe8\x43\x1f\xb1\x1d\xaa\xf0\xa3\x37\x4d\ \xd9\xc7\x48\x45\x4e\xa0\x2b\xac\xb4\xd8\x31\x56\x0c\x3d\x51\x28\ \x86\xe8\x53\x45\x89\xa0\x4c\x43\x91\x58\x09\x81\x2b\x80\xbc\x91\ \x4c\x5a\xf5\x02\x0d\x61\xda\x80\x7c\x41\x20\xef\x72\xda\xb8\x50\ \x54\xf2\xd2\xca\xb8\x45\xd0\x36\x0a\x5d\xd0\x42\x01\xfd\x4c\x3b\ \x5a\x96\xd5\xc1\x1b\x23\x4d\xa5\xfa\xcb\xa2\xf9\xaa\xc2\x65\x60\ \xc1\x24\x84\xae\x35\x36\xd2\x08\x92\xe5\x0f\xff\xf5\xeb\x9f\x64\ \xf9\x1f\x9a\x88\xc5\x65\xe6\x01\x11\x3f\x57\x2f\x79\x41\x09\xa7\ \x86\xd0\xc5\xa1\xa9\xd2\xea\x83\x4b\xf7\x69\x31\xbf\x43\xf7\x1e\ \x4d\x54\x7f\x70\x93\x1f\x20\x78\xdc\x05\xdf\x74\x5e\x4b\x0c\x5d\ \x5a\x30\x61\x51\x18\x2b\x2b\x02\xa6\xd0\x2d\xf4\x46\x21\x68\xaa\ \xa0\xd4\xf3\x81\xfc\x2c\x4c\x7e\x29\x8d\xab\x60\x8f\xd0\x15\x84\ \xd4\xb2\x0e\x2f\x1f\xc0\x16\xbe\xc3\xd0\x03\x56\x47\x2a\x12\xee\ \x5c\x28\x2a\x73\x6d\x89\x33\x27\xcb\x95\x68\xe3\xfa\x9b\x94\x71\ \x54\xf7\x1a\x3c\xf6\x7d\xed\xd6\xf3\xd7\x3c\x91\xff\x74\x78\x2f\ \x1d\x6e\x8d\xb9\xff\x70\x32\xfb\xf8\x97\x0a\x08\x0d\x98\xdc\xbd\ \x23\x66\xb9\x63\x0f\x99\xc7\xcc\xb6\xc5\x42\x46\xd8\x5d\x30\x6b\ \x59\xca\xd0\x58\xc2\x80\xae\x49\x8d\x43\x9e\x4c\x21\xe8\x3b\x44\ \xe9\x45\x18\xa5\x87\x73\x70\x7f\x53\xd2\x7d\x78\xf6\x3f\x29\x90\ \xca\x50\ " qt_resource_name = b"\ \x00\x03\ \x00\x00\x7f\x3c\ \x00\x78\ \x00\x6d\x00\x6c\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x03\ \x00\x00\x78\x3c\ \x00\x71\ \x00\x6d\x00\x6c\ \x00\x0c\ \x07\x27\x67\xfc\ \x00\x71\ \x00\x6d\x00\x6c\x00\x53\x00\x68\x00\x65\x00\x6c\x00\x6c\x00\x2e\x00\x71\x00\x6d\x00\x6c\ \x00\x10\ \x0f\xfa\x57\xe7\ \x00\x71\ \x00\x74\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x5f\x00\x73\x00\x6d\x00\x61\x00\x6c\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x12\ \x0e\x78\xbb\xe7\ \x00\x74\ \x00\x72\x00\x6f\x00\x6c\x00\x6c\x00\x74\x00\x65\x00\x63\x00\x68\x00\x2d\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\ \x00\x67\ \x00\x0a\ \x05\x87\x0f\xc7\ \x00\x64\ \x00\x65\x00\x6d\x00\x6f\x00\x62\x00\x67\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0f\x5b\x57\xdc\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x73\x00\x2e\x00\x78\x00\x6d\x00\x6c\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\ \x00\x00\x00\x1e\x00\x02\x00\x00\x00\x01\x00\x00\x00\x08\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x07\ \x00\x00\x00\x0c\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\ \x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x05\ \x00\x00\x00\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x23\x06\ \x00\x00\x00\x48\x00\x00\x00\x00\x00\x01\x00\x00\x15\x28\ \x00\x00\x00\xb2\x00\x01\x00\x00\x00\x01\x00\x00\xcf\xcc\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/scanitem.py0000644000076500000240000000616312536324427022355 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from colors import Colors from demoitem import DemoItem class ScanItem(DemoItem): ITEM_WIDTH = 16 ITEM_HEIGHT = 16 def __init__(self, scene=None, parent=None): super(ScanItem, self).__init__(scene, parent) self.useSharedImage(__file__) def createImage(self, matrix): scaledRect = matrix.mapRect(QtCore.QRect(0, 0, ScanItem.ITEM_WIDTH, ScanItem.ITEM_HEIGHT)) image = QtGui.QImage(scaledRect.width(), scaledRect.height(), QtGui.QImage.Format_ARGB32_Premultiplied) image.fill(QtGui.QColor(0, 0, 0, 0).rgba()) painter = QtGui.QPainter(image) painter.setRenderHint(QtGui.QPainter.Antialiasing) if Colors.useEightBitPalette: painter.setPen(QtGui.QPen(QtGui.Color(100, 100, 100), 2)) painter.setBrush(QtGui.Color(206, 246, 117)) painter.drawEllipse(1, 1, scaledRect.width() - 2, scaledRect.height() - 2) else: painter.setPen(QtGui.QPen(QtGui.QColor(0, 0, 0, 15), 1)) painter.setBrush(QtGui.QColor(0, 0, 0, 15)) painter.drawEllipse(1, 1, scaledRect.width() - 2, scaledRect.height() - 2) return image PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/score.py0000644000076500000240000001066012536324427021662 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from colors import Colors class PlayListMember(object): def __init__(self, movie, runMode): self.movie = movie self.runMode = runMode class Score(object): LOCK_ITEMS, UNLOCK_ITEMS, SKIP_LOCK = range(3) FROM_CURRENT, FROM_START, NEW_ANIMATION_ONLY, ONLY_IF_VISIBLE = range(4) def __init__(self): self.index = {} self.playList = [] def hasQueuedMovies(self): return len(self.playList) > 0 def prepare(self, movie, runMode, lockMode): if lockMode == Score.LOCK_ITEMS: for item in movie: if runMode != Score.ONLY_IF_VISIBLE or item.demoItem().isVisible(): item.lockItem(True) item.prepare() elif lockMode == Score.UNLOCK_ITEMS: for item in movie: if runMode != Score.ONLY_IF_VISIBLE or item.demoItem().isVisible(): item.lockItem(False) item.prepare() else: for item in movie: if runMode != Score.ONLY_IF_VISIBLE or item.demoItem().isVisible(): item.prepare() def play(self, movie, runMode): if runMode == Score.NEW_ANIMATION_ONLY: for item in movie: if item.notOwnerOfItem(): item.play(True) elif runMode == Score.ONLY_IF_VISIBLE: for item in movie: if item.demoItem().isVisible(): item.play(runMode == Score.FROM_START) else: for item in movie: item.play(runMode == Score.FROM_START) def playMovie(self, indexName, runMode=FROM_START, lockMode=SKIP_LOCK): try: movie = self.index[indexName] except KeyError: return self.prepare(movie, runMode, lockMode) self.play(movie, runMode) def queueMovie(self, indexName, runMode=FROM_START, lockMode=SKIP_LOCK): try: movie = self.index[indexName] except KeyError: Colors.debug("Queuing movie:", indexName, "(does not exist)") return self.prepare(movie, runMode, lockMode) self.playList.append(PlayListMember(movie, runMode)) Colors.debug("Queuing movie:", indexName) def playQue(self): for member in self.playList: self.play(member.movie, member.runMode) self.playList = [] Colors.debug("********* Playing que *********") def insertMovie(self, indexName): movie = [] self.index[indexName] = movie return movie PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/textbutton.py0000644000076500000240000003226612536324427022775 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from colors import Colors from demoitem import DemoItem from demoitemanimation import DemoItemAnimation from demotextitem import DemoTextItem from scanitem import ScanItem class ButtonBackground(DemoItem): def __init__(self, type, highlighted, pressed, logicalSize, scene, parent): super(ButtonBackground, self).__init__(scene, parent) self.type = type self.highlighted = highlighted self.pressed = pressed self.logicalSize = logicalSize self.useSharedImage('%s%d%d%d' % (__file__, type, highlighted, pressed)) def createImage(self, matrix): if self.type in (TextButton.SIDEBAR, TextButton.PANEL): return self.createRoundButtonBackground(matrix) else: return self.createArrowBackground(matrix) def createRoundButtonBackground(self, matrix): scaledRect = matrix.mapRect(QtCore.QRect(0, 0, self.logicalSize.width(), self.logicalSize.height())) image = QtGui.QImage(scaledRect.width(), scaledRect.height(), QtGui.QImage.Format_ARGB32_Premultiplied) image.fill(QtGui.QColor(0, 0, 0, 0).rgba()) painter = QtGui.QPainter(image) painter.setRenderHint(QtGui.QPainter.SmoothPixmapTransform) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setPen(QtCore.Qt.NoPen) if Colors.useEightBitPalette: painter.setPen(QtGui.QColor(120, 120, 120)) if self.pressed: painter.setBrush(QtGui.QColor(60, 60, 60)) elif self.highlighted: painter.setBrush(QtGui.QColor(100, 100, 100)) else: painter.setBrush(QtGui.QColor(80, 80, 80)) else: outlinebrush = QtGui.QLinearGradient(0, 0, 0, scaledRect.height()) brush = QtGui.QLinearGradient(0, 0, 0, scaledRect.height()) brush.setSpread(QtGui.QLinearGradient.PadSpread) highlight = QtGui.QColor(255, 255, 255, 70) shadow = QtGui.QColor(0, 0, 0, 70) sunken = QtGui.QColor(220, 220, 220, 30) if self.type == TextButton.PANEL: normal1 = QtGui.QColor(200, 170, 160, 50) normal2 = QtGui.QColor(50, 10, 0, 50) else: normal1 = QtGui.QColor(255, 255, 245, 60) normal2 = QtGui.QColor(255, 255, 235, 10) if self.pressed: outlinebrush.setColorAt(0, shadow) outlinebrush.setColorAt(1, highlight) brush.setColorAt(0, sunken) painter.setPen(QtCore.Qt.NoPen) else: outlinebrush.setColorAt(1, shadow) outlinebrush.setColorAt(0, highlight) brush.setColorAt(0, normal1) if not self.highlighted: brush.setColorAt(1, normal2) painter.setPen(QtGui.QPen(outlinebrush, 1)) painter.setBrush(brush) if self.type == TextButton.PANEL: painter.drawRect(0, 0, scaledRect.width(), scaledRect.height()) else: painter.drawRoundedRect(0, 0, scaledRect.width(), scaledRect.height(), 10, 90, QtCore.Qt.RelativeSize) return image def createArrowBackground(self, matrix): scaledRect = matrix.mapRect(QtCore.QRect(0, 0, self.logicalSize.width(), self.logicalSize.height())) image = QtGui.QImage(scaledRect.width(), scaledRect.height(), QtGui.QImage.Format_ARGB32_Premultiplied) image.fill(QtGui.QColor(0, 0, 0, 0).rgba()) painter = QtGui.QPainter(image) painter.setRenderHint(QtGui.QPainter.SmoothPixmapTransform) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setPen(QtCore.Qt.NoPen) if Colors.useEightBitPalette: painter.setPen(QtGui.QColor(120, 120, 120)) if self.pressed: painter.setBrush(QtGui.QColor(60, 60, 60)) elif self.highlighted: painter.setBrush(QtGui.QColor(100, 100, 100)) else: painter.setBrush(QtGui.QColor(80, 80, 80)) else: outlinebrush = QtGui.QLinearGradient(0, 0, 0, scaledRect.height()) brush = QtGui.QLinearGradient(0, 0, 0, scaledRect.height()) brush.setSpread(QtGui.QLinearGradient.PadSpread) highlight = QtGui.QColor(255, 255, 255, 70) shadow = QtGui.QColor(0, 0, 0, 70) sunken = QtGui.QColor(220, 220, 220, 30) normal1 = QtGui.QColor(200, 170, 160, 50) normal2 = QtGui.QColor(50, 10, 0, 50) if self.pressed: outlinebrush.setColorAt(0, shadow) outlinebrush.setColorAt(1, highlight) brush.setColorAt(0, sunken) painter.setPen(QtCore.Qt.NoPen) else: outlinebrush.setColorAt(1, shadow) outlinebrush.setColorAt(0, highlight) brush.setColorAt(0, normal1) if not self.highlighted: brush.setColorAt(1, normal2) painter.setPen(QtGui.QPen(outlinebrush, 1)) painter.setBrush(brush); painter.drawRect(0, 0, scaledRect.width(), scaledRect.height()) xOff = scaledRect.width() / 2 yOff = scaledRect.height() / 2 sizex = 3.0 * matrix.m11() sizey = 1.5 * matrix.m22() if self.type == TextButton.UP: sizey *= -1 path = QtGui.QPainterPath() path.moveTo(xOff, yOff + (5 * sizey)) path.lineTo(xOff - (4 * sizex), yOff - (3 * sizey)) path.lineTo(xOff + (4 * sizex), yOff - (3 * sizey)) path.lineTo(xOff, yOff + (5 * sizey)) painter.drawPath(path) return image class TextButton(DemoItem): BUTTON_WIDTH = 180 BUTTON_HEIGHT = 19 LEFT, RIGHT = range(2) SIDEBAR, PANEL, UP, DOWN = range(4) ON, OFF, HIGHLIGHT, DISABLED = range(4) def __init__(self, text, align=LEFT, userCode=0, scene=None, parent=None, type=SIDEBAR): super(TextButton, self).__init__(scene, parent) # Prevent a circular import. from menumanager import MenuManager self._menu_manager = MenuManager.instance() self.menuString = text self.buttonLabel = text self.alignment = align self.buttonType = type self.userCode = userCode self.scanAnim = None self.bgOn = None self.bgOff = None self.bgHighlight = None self.bgDisabled = None self.state = TextButton.OFF self.setAcceptsHoverEvents(True) self.setCursor(QtCore.Qt.PointingHandCursor) # Calculate the button size. if type in (TextButton.SIDEBAR, TextButton.PANEL): self.logicalSize = QtCore.QSize(TextButton.BUTTON_WIDTH, TextButton.BUTTON_HEIGHT) else: self.logicalSize = QtCore.QSize(int((TextButton.BUTTON_WIDTH / 2.0) - 5), int(TextButton.BUTTON_HEIGHT * 1.5)) def setMenuString(self, menu): self.menuString = menu def prepare(self): if not self.prepared: self.prepared = True self.setupHoverText() self.setupScanItem() self.setupButtonBg() def boundingRect(self): return QtCore.QRectF(0, 0, self.logicalSize.width(), self.logicalSize.height()) def setupHoverText(self): if not self.buttonLabel: return textItem = DemoTextItem(self.buttonLabel, Colors.buttonFont(), Colors.buttonText, -1, self.scene(), self) textItem.setZValue(self.zValue() + 2) textItem.setPos(16, 0) def setupScanItem(self): if Colors.useButtonBalls: scanItem = ScanItem(None, self) scanItem.setZValue(self.zValue() + 1) self.scanAnim = DemoItemAnimation(scanItem) self.scanAnim.timeline.setLoopCount(1) x = 1.0 y = 1.5 stop = TextButton.BUTTON_WIDTH - scanItem.boundingRect().width() - x if self.alignment == TextButton.LEFT: self.scanAnim.setDuration(2500) self.scanAnim.setPosAt(0.0, QtCore.QPointF(x, y)) self.scanAnim.setPosAt(0.5, QtCore.QPointF(x, y)) self.scanAnim.setPosAt(0.7, QtCore.QPointF(stop, y)) self.scanAnim.setPosAt(1.0, QtCore.QPointF(x, y)) scanItem.setPos(QtCore.QPointF(x, y)) else: self.scanAnim.setPosAt(0.0, QtCore.QPointF(stop, y)) self.scanAnim.setPosAt(0.5, QtCore.QPointF(x, y)) self.scanAnim.setPosAt(1.0, QtCore.QPointF(stop, y)) scanItem.setPos(QtCore.QPointF(stop, y)) def setState(self, state): self.state = state self.bgOn.setRecursiveVisible(state == TextButton.ON) self.bgOff.setRecursiveVisible(state == TextButton.OFF) self.bgHighlight.setRecursiveVisible(state == TextButton.HIGHLIGHT) self.bgDisabled.setRecursiveVisible(state == TextButton.DISABLED) if state == TextButton.DISABLED: self.setCursor(QtCore.Qt.ArrowCursor) else: self.setCursor(QtCore.Qt.PointingHandCursor) def setupButtonBg(self): self.bgOn = ButtonBackground(self.buttonType, True, True, self.logicalSize, self.scene(), self) self.bgOff = ButtonBackground(self.buttonType, False, False, self.logicalSize, self.scene(), self) self.bgHighlight = ButtonBackground(self.buttonType, True, False, self.logicalSize, self.scene(), self) self.bgDisabled = ButtonBackground(self.buttonType, True, True, self.logicalSize, self.scene(), self) self.setState(TextButton.OFF) def hoverEnterEvent(self, event): if self.locked or self.state == TextButton.DISABLED: return if self.state == TextButton.OFF: self.setState(TextButton.HIGHLIGHT) if Colors.noAnimations and Colors.useButtonBalls: # Wait a bit in the beginning to enhance the effect. We have # to do this here so that the adaption can be dynamic. self.scanAnim.setDuration(1000) self.scanAnim.setPosAt(0.2, self.scanAnim.posAt(0)) if (self._menu_manager.window.fpsMedian > 10 or Colors.noAdapt or Colors.noTimerUpdate): if Colors.useButtonBalls: self.scanAnim.play(True, True) def hoverLeaveEvent(self, event): if self.state == TextButton.DISABLED: return self.setState(TextButton.OFF) if Colors.noAnimations and Colors.useButtonBalls: self.scanAnim.stop() def mousePressEvent(self, event): if self.state == TextButton.DISABLED: return if self.state == TextButton.HIGHLIGHT or self.state == TextButton.OFF: self.setState(TextButton.ON) def mouseReleaseEvent(self, event): if self.state == TextButton.ON: self.setState(TextButton.OFF) if not self.locked and self.boundingRect().contains(event.pos()): self._menu_manager.itemSelected(self.userCode, self.menuString) def animationStarted(self, _): if self.state == TextButton.DISABLED: return self.setState(TextButton.OFF) PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/xml/0000755000076500000240000000000012536324427020772 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/qtdemo/xml/examples.xml0000644000076500000240000002745612536324427023350 0ustar philstaff00000000000000 PyQt-x11-gpl-4.11.4/examples/demos/README0000644000076500000240000000161412536324427017563 0ustar philstaff00000000000000These demonstrations are intended to highlight PyQt's capabilities in different application areas, and provide examples that are more advanced than other examples. Beginners to PyQt may wish to try out the PyQt tutorial and some of the other examples before examining the demonstrations in detail. The examples and demos launcher can be used to explore the different categories available. It provides an overview of each example, lets you view the documentation in Qt Assistant, and is able to launch the examples and demos. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/0000755000076500000240000000000012536324427021210 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/images/0000755000076500000240000000000012536324427022455 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/images/interview.png0000644000076500000240000000025612536324427025202 0ustar philstaff00000000000000‰PNG  IHDRíÝâRPLTEÀÀÀÀÀÀÀÀÀÿÿÿc4‹`tRNS c”³KIDATx^=ŠÁ À0 ‰º‹=@T³ÿL§ tæAò‰XÌ| -¨P–ÀjcŸ©ÚìÒ¨¥@\VüjþG ¸.P9ÞñeøIØdúe™IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/printview.py0000644000076500000240000000413012536324427023607 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2012 Hans-Peter Jansen . ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## GNU Lesser General Public License Usage ## This file may be used under the terms of the GNU Lesser General Public ## License version 2.1 as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the packaging of this ## file. Please review the following information to ensure the GNU Lesser ## General Public License version 2.1 requirements will be met: ## http:#www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU General ## Public License version 3.0 as published by the Free Software Foundation ## and appearing in the file LICENSE.GPL included in the packaging of this ## file. Please review the following information to ensure the GNU General ## Public License version 3.0 requirements will be met: ## http:#www.gnu.org/copyleft/gpl.html. ## ## Other Usage ## Alternatively, this file may be used in accordance with the terms and ## conditions contained in a signed written agreement between you and Nokia. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class PrintView(QtGui.QTableView): def __init__(self): super(PrintView, self).__init__() self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) def print_(self, printer): self.resize(printer.width(), printer.height()) self.render(printer) PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/spreadsheet.py0000644000076500000240000005543612536324427024106 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2012 Hans-Peter Jansen . ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## GNU Lesser General Public License Usage ## This file may be used under the terms of the GNU Lesser General Public ## License version 2.1 as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the packaging of this ## file. Please review the following information to ensure the GNU Lesser ## General Public License version 2.1 requirements will be met: ## http:#www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU General ## Public License version 3.0 as published by the Free Software Foundation ## and appearing in the file LICENSE.GPL included in the packaging of this ## file. Please review the following information to ensure the GNU General ## Public License version 3.0 requirements will be met: ## http:#www.gnu.org/copyleft/gpl.html. ## ## Other Usage ## Alternatively, this file may be used in accordance with the terms and ## conditions contained in a signed written agreement between you and Nokia. ## $QT_END_LICENSE$ ## ############################################################################# # These are only needed for Python v2 but are harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import spreadsheet_rc3 except ImportError: import spreadsheet_rc2 from spreadsheetdelegate import SpreadSheetDelegate from spreadsheetitem import SpreadSheetItem from printview import PrintView from util import decode_pos, encode_pos class SpreadSheet(QtGui.QMainWindow): dateFormats = ["dd/M/yyyy", "yyyy/M/dd", "dd.MM.yyyy"] currentDateFormat = dateFormats[0] def __init__(self, rows, cols, parent = None): super(SpreadSheet, self).__init__(parent) self.toolBar = QtGui.QToolBar() self.addToolBar(self.toolBar) self.formulaInput = QtGui.QLineEdit() self.cellLabel = QtGui.QLabel(self.toolBar) self.cellLabel.setMinimumSize(80, 0) self.toolBar.addWidget(self.cellLabel) self.toolBar.addWidget(self.formulaInput) self.table = QtGui.QTableWidget(rows, cols, self) for c in range(cols): character = chr(ord('A') + c) self.table.setHorizontalHeaderItem(c, QtGui.QTableWidgetItem(character)) self.table.setItemPrototype(self.table.item(rows - 1, cols - 1)) self.table.setItemDelegate(SpreadSheetDelegate(self)) self.createActions() self.updateColor(0) self.setupMenuBar() self.setupContents() self.setupContextMenu() self.setCentralWidget(self.table) self.statusBar() self.table.currentItemChanged.connect(self.updateStatus) self.table.currentItemChanged.connect(self.updateColor) self.table.currentItemChanged.connect(self.updateLineEdit) self.table.itemChanged.connect(self.updateStatus) self.formulaInput.returnPressed.connect(self.returnPressed) self.table.itemChanged.connect(self.updateLineEdit) self.setWindowTitle(self.tr("Spreadsheet")) def createActions(self): self.cell_sumAction = QtGui.QAction(self.tr("Sum"), self) self.cell_sumAction.triggered.connect(self.actionSum) self.cell_addAction = QtGui.QAction(self.tr("&Add"), self) self.cell_addAction.setShortcut(QtCore.Qt.CTRL | QtCore.Qt.Key_Plus) self.cell_addAction.triggered.connect(self.actionAdd) self.cell_subAction = QtGui.QAction(self.tr("&Subtract"), self) self.cell_subAction.setShortcut(QtCore.Qt.CTRL | QtCore.Qt.Key_Minus) self.cell_subAction.triggered.connect(self.actionSubtract) self.cell_mulAction = QtGui.QAction(self.tr("&Multiply"), self) self.cell_mulAction.setShortcut(QtCore.Qt.CTRL | QtCore.Qt.Key_multiply) self.cell_mulAction.triggered.connect(self.actionMultiply) self.cell_divAction = QtGui.QAction(self.tr("&Divide"), self) self.cell_divAction.setShortcut(QtCore.Qt.CTRL | QtCore.Qt.Key_division) self.cell_divAction.triggered.connect(self.actionDivide) self.fontAction = QtGui.QAction(self.tr("Font..."), self) self.fontAction.setShortcut(QtCore.Qt.CTRL | QtCore.Qt.Key_F) self.fontAction.triggered.connect(self.selectFont) self.colorAction = QtGui.QAction(QtGui.QIcon(QtGui.QPixmap(16, 16)), self.tr("Background &Color..."), self) self.colorAction.triggered.connect(self.selectColor) self.clearAction = QtGui.QAction(self.tr("Clear"), self) self.clearAction.setShortcut(QtCore.Qt.Key_Delete) self.clearAction.triggered.connect(self.clear) self.aboutSpreadSheet = QtGui.QAction(self.tr("About Spreadsheet"), self) self.aboutSpreadSheet.triggered.connect(self.showAbout) self.exitAction = QtGui.QAction(self.tr("E&xit"), self) self.exitAction.setShortcut(QtGui.QKeySequence.Quit) self.exitAction.triggered.connect(QtGui.qApp.quit) self.printAction = QtGui.QAction(self.tr("&Print"), self) self.printAction.setShortcut(QtGui.QKeySequence.Print) self.printAction.triggered.connect(self.print_) self.firstSeparator = QtGui.QAction(self) self.firstSeparator.setSeparator(True) self.secondSeparator = QtGui.QAction(self) self.secondSeparator.setSeparator(True) def setupMenuBar(self): self.fileMenu = self.menuBar().addMenu(self.tr("&File")) self.dateFormatMenu = self.fileMenu.addMenu(self.tr("&Date format")) self.dateFormatGroup = QtGui.QActionGroup(self) for f in self.dateFormats: action = QtGui.QAction(f, self, checkable = True, triggered = self.changeDateFormat) self.dateFormatGroup.addAction(action) self.dateFormatMenu.addAction(action) if f == self.currentDateFormat: action.setChecked(True) self.fileMenu.addAction(self.printAction) self.fileMenu.addAction(self.exitAction) self.cellMenu = self.menuBar().addMenu(self.tr("&Cell")) self.cellMenu.addAction(self.cell_addAction) self.cellMenu.addAction(self.cell_subAction) self.cellMenu.addAction(self.cell_mulAction) self.cellMenu.addAction(self.cell_divAction) self.cellMenu.addAction(self.cell_sumAction) self.cellMenu.addSeparator() self.cellMenu.addAction(self.colorAction) self.cellMenu.addAction(self.fontAction) self.menuBar().addSeparator() self.aboutMenu = self.menuBar().addMenu(self.tr("&Help")) self.aboutMenu.addAction(self.aboutSpreadSheet) def changeDateFormat(self): action = self.sender() oldFormat = self.currentDateFormat newFormat = self.currentDateFormat = action.text() for row in range(self.table.rowCount()): item = self.table.item(row, 1) date = QtCore.QDate.fromString(item.text(), oldFormat) item.setText(date.toString(newFormat)) def updateStatus(self, item): if item and item == self.table.currentItem(): self.statusBar().showMessage(item.data(QtCore.Qt.StatusTipRole), 1000) self.cellLabel.setText(self.tr("Cell: (%s)" % encode_pos(self.table.row(item), self.table.column(item)))) def updateColor(self, item): pixmap = QtGui.QPixmap(16, 16) color = QtGui.QColor() if item: color = item.backgroundColor() if not color.isValid(): color = self.palette().base().color() painter = QtGui.QPainter(pixmap) painter.fillRect(0, 0, 16, 16, color) lighter = color.light() painter.setPen(lighter) # light frame painter.drawPolyline(QtCore.QPoint(0, 15), QtCore.QPoint(0, 0), QtCore.QPoint(15, 0)) painter.setPen(color.dark()) # dark frame painter.drawPolyline(QtCore.QPoint(1, 15), QtCore.QPoint(15, 15), QtCore.QPoint(15, 1)) painter.end() self.colorAction.setIcon(QtGui.QIcon(pixmap)) def updateLineEdit(self, item): if item != self.table.currentItem(): return if item: self.formulaInput.setText(item.data(QtCore.Qt.EditRole)) else: self.formulaInput.clear() def returnPressed(self): text = self.formulaInput.text() row = self.table.currentRow() col = self.table.currentColumn() item = self.table.item(row, col) if not item: self.table.setItem(row, col, SpreadSheetItem(text)) else: item.setData(QtCore.Qt.EditRole, text) self.table.viewport().update() def selectColor(self): item = self.table.currentItem() color = item and QtGui.QColor(item.background()) or self.table.palette().base().color() color = QtGui.QColorDialog.getColor(color, self) if not color.isValid(): return selected = self.table.selectedItems() if not selected: return for i in selected: i and i.setBackground(color) self.updateColor(self.table.currentItem()) def selectFont(self): selected = self.table.selectedItems() if not selected: return font, ok = QtGui.QFontDialog.getFont(self.font(), self) if not ok: return for i in selected: i and i.setFont(font) def runInputDialog(self, title, c1Text, c2Text, opText, outText, cell1, cell2, outCell): rows = [] cols = [] for r in range(self.table.rowCount()): rows.append(str(r + 1)) for c in range(self.table.columnCount()): cols.append(chr(ord('A') + c)) addDialog = QtGui.QDialog(self) addDialog.setWindowTitle(title) group = QtGui.QGroupBox(title, addDialog) group.setMinimumSize(250, 100) cell1Label = QtGui.QLabel(c1Text, group) cell1RowInput = QtGui.QComboBox(group) c1Row, c1Col = decode_pos(cell1) cell1RowInput.addItems(rows) cell1RowInput.setCurrentIndex(c1Row) cell1ColInput = QtGui.QComboBox(group) cell1ColInput.addItems(cols) cell1ColInput.setCurrentIndex(c1Col) operatorLabel = QtGui.QLabel(opText, group) operatorLabel.setAlignment(QtCore.Qt.AlignHCenter) cell2Label = QtGui.QLabel(c2Text, group) cell2RowInput = QtGui.QComboBox(group) c2Row, c2Col = decode_pos(cell2) cell2RowInput.addItems(rows) cell2RowInput.setCurrentIndex(c2Row) cell2ColInput = QtGui.QComboBox(group) cell2ColInput.addItems(cols) cell2ColInput.setCurrentIndex(c2Col) equalsLabel = QtGui.QLabel("=", group) equalsLabel.setAlignment(QtCore.Qt.AlignHCenter) outLabel = QtGui.QLabel(outText, group) outRowInput = QtGui.QComboBox(group) outRow, outCol = decode_pos(outCell) outRowInput.addItems(rows) outRowInput.setCurrentIndex(outRow) outColInput = QtGui.QComboBox(group) outColInput.addItems(cols) outColInput.setCurrentIndex(outCol) cancelButton = QtGui.QPushButton(self.tr("Cancel"), addDialog) cancelButton.clicked.connect(addDialog.reject) okButton = QtGui.QPushButton(self.tr("OK"), addDialog) okButton.setDefault(True) okButton.clicked.connect(addDialog.accept) buttonsLayout = QtGui.QHBoxLayout() buttonsLayout.addStretch(1) buttonsLayout.addWidget(okButton) buttonsLayout.addSpacing(10) buttonsLayout.addWidget(cancelButton) dialogLayout = QtGui.QVBoxLayout(addDialog) dialogLayout.addWidget(group) dialogLayout.addStretch(1) dialogLayout.addItem(buttonsLayout) cell1Layout = QtGui.QHBoxLayout() cell1Layout.addWidget(cell1Label) cell1Layout.addSpacing(10) cell1Layout.addWidget(cell1ColInput) cell1Layout.addSpacing(10) cell1Layout.addWidget(cell1RowInput) cell2Layout = QtGui.QHBoxLayout() cell2Layout.addWidget(cell2Label) cell2Layout.addSpacing(10) cell2Layout.addWidget(cell2ColInput) cell2Layout.addSpacing(10) cell2Layout.addWidget(cell2RowInput) outLayout = QtGui.QHBoxLayout() outLayout.addWidget(outLabel) outLayout.addSpacing(10) outLayout.addWidget(outColInput) outLayout.addSpacing(10) outLayout.addWidget(outRowInput) vLayout = QtGui.QVBoxLayout(group) vLayout.addItem(cell1Layout) vLayout.addWidget(operatorLabel) vLayout.addItem(cell2Layout) vLayout.addWidget(equalsLabel) vLayout.addStretch(1) vLayout.addItem(outLayout) if addDialog.exec_(): cell1 = cell1ColInput.currentText() + cell1RowInput.currentText() cell2 = cell2ColInput.currentText() + cell2RowInput.currentText() outCell = outColInput.currentText() + outRowInput.currentText() return True, cell1, cell2, outCell return False, None, None, None def actionSum(self): row_first = 0 row_last = 0 row_cur = 0 col_first = 0 col_last = 0 col_cur = 0 selected = self.table.selectedItems() if selected: first = selected[0] last = selected[-1] row_first = self.table.row(first) row_last = self.table.row(last) col_first = self.table.column(first) col_last = self.table.column(last) current = self.table.currentItem() if current: row_cur = self.table.row(current) col_cur = self.table.column(current) cell1 = encode_pos(row_first, col_first) cell2 = encode_pos(row_last, col_last) out = encode_pos(row_cur, col_cur) ok, cell1, cell2, out = self.runInputDialog( self.tr("Sum cells"), self.tr("First cell:"), self.tr("Last cell:"), unichr(0x03a3), self.tr("Output to:"), cell1, cell2, out) if ok: row, col = decode_pos(out) self.table.item(row, col).setText(self.tr("sum %s %s" % (cell1, cell2))) def actionMath_helper(self, title, op): cell1 = "C1" cell2 = "C2" out = "C3" current = self.table.currentItem() if current: out = encode_pos(self.table.currentRow(), self.table.currentColumn()) ok, cell1, cell2, out = self.runInputDialog( title, self.tr("Cell 1"), self.tr("Cell 2"), op, self.tr("Output to:"), cell1, cell2, out) if ok: row, col = decode_pos(out) self.table.item(row, col).setText(self.tr("%s %s %s" % (op, cell1, cell2))) def actionAdd(self): self.actionMath_helper(self.tr("Addition"), "+") def actionSubtract(self): self.actionMath_helper(self.tr("Subtraction"), "-") def actionMultiply(self): self.actionMath_helper(self.tr("Multiplication"), "*") def actionDivide(self): self.actionMath_helper(self.tr("Division"), "/") def clear(self): for i in self.table.selectedItems(): i.setText("") def setupContextMenu(self): self.addAction(self.cell_addAction) self.addAction(self.cell_subAction) self.addAction(self.cell_mulAction) self.addAction(self.cell_divAction) self.addAction(self.cell_sumAction) self.addAction(self.firstSeparator) self.addAction(self.colorAction) self.addAction(self.fontAction) self.addAction(self.secondSeparator) self.addAction(self.clearAction) self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) def setupContents(self): titleBackground = QtGui.QColor(QtCore.Qt.lightGray) titleFont = self.table.font() titleFont.setBold(True) # column 0 self.table.setItem(0, 0, SpreadSheetItem("Item")) self.table.item(0, 0).setBackground(titleBackground) self.table.item(0, 0).setToolTip("This column shows the purchased item/service") self.table.item(0, 0).setFont(titleFont) self.table.setItem(1, 0, SpreadSheetItem("AirportBus")) self.table.setItem(2, 0, SpreadSheetItem("Flight (Munich)")) self.table.setItem(3, 0, SpreadSheetItem("Lunch")) self.table.setItem(4, 0, SpreadSheetItem("Flight (LA)")) self.table.setItem(5, 0, SpreadSheetItem("Taxi")) self.table.setItem(6, 0, SpreadSheetItem("Dinner")) self.table.setItem(7, 0, SpreadSheetItem("Hotel")) self.table.setItem(8, 0, SpreadSheetItem("Flight (Oslo)")) self.table.setItem(9, 0, SpreadSheetItem("Total:")) self.table.item(9, 0).setFont(titleFont) self.table.item(9, 0).setBackground(QtCore.Qt.lightGray) # column 1 self.table.setItem(0, 1, SpreadSheetItem("Date")) self.table.item(0, 1).setBackground(titleBackground) self.table.item(0, 1).setToolTip("This column shows the purchase date, double click to change") self.table.item(0, 1).setFont(titleFont) self.table.setItem(1, 1, SpreadSheetItem("15/6/2006")) self.table.setItem(2, 1, SpreadSheetItem("15/6/2006")) self.table.setItem(3, 1, SpreadSheetItem("15/6/2006")) self.table.setItem(4, 1, SpreadSheetItem("21/5/2006")) self.table.setItem(5, 1, SpreadSheetItem("16/6/2006")) self.table.setItem(6, 1, SpreadSheetItem("16/6/2006")) self.table.setItem(7, 1, SpreadSheetItem("16/6/2006")) self.table.setItem(8, 1, SpreadSheetItem("18/6/2006")) self.table.setItem(9, 1, SpreadSheetItem()) self.table.item(9, 1).setBackground(QtCore.Qt.lightGray) # column 2 self.table.setItem(0, 2, SpreadSheetItem("Price")) self.table.item(0, 2).setBackground(titleBackground) self.table.item(0, 2).setToolTip("This column shows the price of the purchase") self.table.item(0, 2).setFont(titleFont) self.table.setItem(1, 2, SpreadSheetItem("150")) self.table.setItem(2, 2, SpreadSheetItem("2350")) self.table.setItem(3, 2, SpreadSheetItem("-14")) self.table.setItem(4, 2, SpreadSheetItem("980")) self.table.setItem(5, 2, SpreadSheetItem("5")) self.table.setItem(6, 2, SpreadSheetItem("120")) self.table.setItem(7, 2, SpreadSheetItem("300")) self.table.setItem(8, 2, SpreadSheetItem("1240")) self.table.setItem(9, 2, SpreadSheetItem()) self.table.item(9, 2).setBackground(QtCore.Qt.lightGray) # column 3 self.table.setItem(0, 3, SpreadSheetItem("Currency")) self.table.item(0, 3).setBackgroundColor(titleBackground) self.table.item(0, 3).setToolTip("This column shows the currency") self.table.item(0, 3).setFont(titleFont) self.table.setItem(1, 3, SpreadSheetItem("NOK")) self.table.setItem(2, 3, SpreadSheetItem("NOK")) self.table.setItem(3, 3, SpreadSheetItem("EUR")) self.table.setItem(4, 3, SpreadSheetItem("EUR")) self.table.setItem(5, 3, SpreadSheetItem("USD")) self.table.setItem(6, 3, SpreadSheetItem("USD")) self.table.setItem(7, 3, SpreadSheetItem("USD")) self.table.setItem(8, 3, SpreadSheetItem("USD")) self.table.setItem(9, 3, SpreadSheetItem()) self.table.item(9,3).setBackground(QtCore.Qt.lightGray) # column 4 self.table.setItem(0, 4, SpreadSheetItem("Ex. Rate")) self.table.item(0, 4).setBackground(titleBackground) self.table.item(0, 4).setToolTip("This column shows the exchange rate to NOK") self.table.item(0, 4).setFont(titleFont) self.table.setItem(1, 4, SpreadSheetItem("1")) self.table.setItem(2, 4, SpreadSheetItem("1")) self.table.setItem(3, 4, SpreadSheetItem("8")) self.table.setItem(4, 4, SpreadSheetItem("8")) self.table.setItem(5, 4, SpreadSheetItem("7")) self.table.setItem(6, 4, SpreadSheetItem("7")) self.table.setItem(7, 4, SpreadSheetItem("7")) self.table.setItem(8, 4, SpreadSheetItem("7")) self.table.setItem(9, 4, SpreadSheetItem()) self.table.item(9,4).setBackground(QtCore.Qt.lightGray) # column 5 self.table.setItem(0, 5, SpreadSheetItem("NOK")) self.table.item(0, 5).setBackground(titleBackground) self.table.item(0, 5).setToolTip("This column shows the expenses in NOK") self.table.item(0, 5).setFont(titleFont) self.table.setItem(1, 5, SpreadSheetItem("* C2 E2")) self.table.setItem(2, 5, SpreadSheetItem("* C3 E3")) self.table.setItem(3, 5, SpreadSheetItem("* C4 E4")) self.table.setItem(4, 5, SpreadSheetItem("* C5 E5")) self.table.setItem(5, 5, SpreadSheetItem("* C6 E6")) self.table.setItem(6, 5, SpreadSheetItem("* C7 E7")) self.table.setItem(7, 5, SpreadSheetItem("* C8 E8")) self.table.setItem(8, 5, SpreadSheetItem("* C9 E9")) self.table.setItem(9, 5, SpreadSheetItem("sum F2 F9")) self.table.item(9,5).setBackground(QtCore.Qt.lightGray) def showAbout(self): QtGui.QMessageBox.about(self, "About Spreadsheet", """

    This demo shows use of QTableWidget with custom handling for individual cells.

    Using a customized table item we make it possible to have dynamic output in different cells. The content that is implemented for this particular demo is:

    • Adding two cells.
    • Subtracting one cell from another.
    • Multiplying two cells.
    • Dividing one cell with another.
    • Summing the contents of an arbitrary number of cells.
    • """) def print_(self): printer = QtGui.QPrinter(QtGui.QPrinter.ScreenResolution) dlg = QtGui.QPrintPreviewDialog(printer) view = PrintView() view.setModel(self.table.model()) dlg.paintRequested.connect(view.print_) dlg.exec_() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) sheet = SpreadSheet(10, 6) sheet.setWindowIcon(QtGui.QIcon(QtGui.QPixmap(":/images/interview.png"))) sheet.resize(640, 420) sheet.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/spreadsheet.qrc0000644000076500000240000000016012536324427024223 0ustar philstaff00000000000000 images/interview.png PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/spreadsheet_rc2.py0000644000076500000240000000322712536324427024643 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:25:31 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x00\xae\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x04\x03\x00\x00\x00\xed\xdd\xe2\x52\ \x00\x00\x00\x0f\x50\x4c\x54\x45\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\ \xc0\xff\xff\xff\x00\x00\x00\x63\x34\x8b\x60\x00\x00\x00\x03\x74\ \x52\x4e\x53\x00\x01\x02\x0d\x63\x94\xb3\x00\x00\x00\x4b\x49\x44\ \x41\x54\x78\x5e\x3d\x8a\xc1\x0d\xc0\x30\x0c\x02\x1d\x89\x01\xba\ \x8b\x3d\x40\x54\xb3\xff\x4c\x05\xa7\x0a\x0f\x74\xe6\x1c\x41\xf2\ \x89\x58\x81\xcc\x7c\x0d\x2d\xa8\x50\x06\x96\xc0\x6a\x63\x9f\xa9\ \xda\x12\xec\xd2\xa8\xa5\x40\x03\x5c\x56\x06\xfc\x6a\xfe\x47\x0d\ \xb8\x2e\x50\x39\xde\xf1\x65\xf8\x00\x49\xd8\x14\x02\x64\xfa\x65\ \x99\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0d\ \x0f\x7f\xc5\x07\ \x00\x69\ \x00\x6e\x00\x74\x00\x65\x00\x72\x00\x76\x00\x69\x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/spreadsheet_rc3.py0000644000076500000240000000323212536324427024640 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:25:31 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x00\xae\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x04\x03\x00\x00\x00\xed\xdd\xe2\x52\ \x00\x00\x00\x0f\x50\x4c\x54\x45\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\ \xc0\xff\xff\xff\x00\x00\x00\x63\x34\x8b\x60\x00\x00\x00\x03\x74\ \x52\x4e\x53\x00\x01\x02\x0d\x63\x94\xb3\x00\x00\x00\x4b\x49\x44\ \x41\x54\x78\x5e\x3d\x8a\xc1\x0d\xc0\x30\x0c\x02\x1d\x89\x01\xba\ \x8b\x3d\x40\x54\xb3\xff\x4c\x05\xa7\x0a\x0f\x74\xe6\x1c\x41\xf2\ \x89\x58\x81\xcc\x7c\x0d\x2d\xa8\x50\x06\x96\xc0\x6a\x63\x9f\xa9\ \xda\x12\xec\xd2\xa8\xa5\x40\x03\x5c\x56\x06\xfc\x6a\xfe\x47\x0d\ \xb8\x2e\x50\x39\xde\xf1\x65\xf8\x00\x49\xd8\x14\x02\x64\xfa\x65\ \x99\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0d\ \x0f\x7f\xc5\x07\ \x00\x69\ \x00\x6e\x00\x74\x00\x65\x00\x72\x00\x76\x00\x69\x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/spreadsheetdelegate.py0000644000076500000240000000700512536324427025566 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2012 Hans-Peter Jansen . ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## GNU Lesser General Public License Usage ## This file may be used under the terms of the GNU Lesser General Public ## License version 2.1 as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the packaging of this ## file. Please review the following information to ensure the GNU Lesser ## General Public License version 2.1 requirements will be met: ## http:#www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU General ## Public License version 3.0 as published by the Free Software Foundation ## and appearing in the file LICENSE.GPL included in the packaging of this ## file. Please review the following information to ensure the GNU General ## Public License version 3.0 requirements will be met: ## http:#www.gnu.org/copyleft/gpl.html. ## ## Other Usage ## Alternatively, this file may be used in accordance with the terms and ## conditions contained in a signed written agreement between you and Nokia. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class SpreadSheetDelegate(QtGui.QItemDelegate): def __init__(self, parent = None): super(SpreadSheetDelegate, self).__init__(parent) def createEditor(self, parent, styleOption, index): if index.column() == 1: editor = QtGui.QDateTimeEdit(parent) editor.setDisplayFormat(self.parent().currentDateFormat) editor.setCalendarPopup(True) return editor editor = QtGui.QLineEdit(parent) # create a completer with the strings in the column as model allStrings = [] for i in range(1, index.model().rowCount()): strItem = index.model().data(index.sibling(i, index.column()), QtCore.Qt.EditRole) if strItem not in allStrings: allStrings.append(strItem) autoComplete = QtGui.QCompleter(allStrings) editor.setCompleter(autoComplete) editor.editingFinished.connect(self.commitAndCloseEditor) return editor def commitAndCloseEditor(self): editor = self.sender() self.commitData.emit(editor) self.closeEditor.emit(editor, QtGui.QAbstractItemDelegate.NoHint) def setEditorData(self, editor, index): if isinstance(editor, QtGui.QLineEdit): editor.setText(index.model().data(index, QtCore.Qt.EditRole)) elif isinstance(editor, QtGui.QDateTimeEdit): editor.setDate(QtCore.QDate.fromString( index.model().data(index, QtCore.Qt.EditRole), self.parent().currentDateFormat)) def setModelData(self, editor, model, index): if isinstance(editor, QtGui.QLineEdit): model.setData(index, editor.text()) elif isinstance(editor, QtGui.QDateTimeEdit): model.setData(index, editor.date().toString(self.parent().currentDateFormat)) PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/spreadsheetitem.py0000644000076500000240000001256112536324427024755 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2012 Hans-Peter Jansen . ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## GNU Lesser General Public License Usage ## This file may be used under the terms of the GNU Lesser General Public ## License version 2.1 as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the packaging of this ## file. Please review the following information to ensure the GNU Lesser ## General Public License version 2.1 requirements will be met: ## http:#www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU General ## Public License version 3.0 as published by the Free Software Foundation ## and appearing in the file LICENSE.GPL included in the packaging of this ## file. Please review the following information to ensure the GNU General ## Public License version 3.0 requirements will be met: ## http:#www.gnu.org/copyleft/gpl.html. ## ## Other Usage ## Alternatively, this file may be used in accordance with the terms and ## conditions contained in a signed written agreement between you and Nokia. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from util import decode_pos class SpreadSheetItem(QtGui.QTableWidgetItem): def __init__(self, text=None): if text is not None: super(SpreadSheetItem, self).__init__(text) else: super(SpreadSheetItem, self).__init__() self.isResolving = False def clone(self): item = super(SpreadSheetItem, self).clone() item.isResolving = self.isResolving return item def formula(self): return super(SpreadSheetItem, self).data(QtCore.Qt.DisplayRole) def data(self, role): if role in (QtCore.Qt.EditRole, QtCore.Qt.StatusTipRole): return self.formula() if role == QtCore.Qt.DisplayRole: return self.display() t = str(self.display()) try: number = int(t) except ValueError: number = None if role == QtCore.Qt.TextColorRole: if number is None: return QtGui.QColor(QtCore.Qt.black) elif number < 0: return QtGui.QColor(QtCore.Qt.red) return QtGui.QColor(QtCore.Qt.blue) if role == QtCore.Qt.TextAlignmentRole: if t and (t[0].isdigit() or t[0] == '-'): return QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter return super(SpreadSheetItem, self).data(role) def setData(self, role, value): super(SpreadSheetItem, self).setData(role, value) if self.tableWidget(): self.tableWidget().viewport().update() def display(self): # avoid circular dependencies if self.isResolving: return None self.isResolving = True result = self.computeFormula(self.formula(), self.tableWidget()) self.isResolving = False return result def computeFormula(self, formula, widget): if formula is None: return None # check if the string is actually a formula or not slist = formula.split(' ') if not slist or not widget: # it is a normal string return formula op = slist[0].lower() firstRow = -1 firstCol = -1 secondRow = -1 secondCol = -1 if len(slist) > 1: firstRow, firstCol = decode_pos(slist[1]) if len(slist) > 2: secondRow, secondCol = decode_pos(slist[2]) start = widget.item(firstRow, firstCol) end = widget.item(secondRow, secondCol) firstVal = 0 try: firstVal = start and int(start.text()) or 0 except ValueError: pass secondVal = 0 try: secondVal = end and int(end.text()) or 0 except ValueError: pass result = None if op == "sum": sum_ = 0 for r in range(firstRow, secondRow + 1): for c in range(firstCol, secondCol + 1): tableItem = widget.item(r, c) if tableItem and tableItem != self: try: sum_ += int(tableItem.text()) except ValueError: pass result = sum_ elif op == "+": result = (firstVal + secondVal) elif op == "-": result = (firstVal - secondVal) elif op == "*": result = (firstVal * secondVal) elif op == "/": if secondVal == 0: result = "nan" else: result = (firstVal / secondVal) elif op == "=": if start: result = start.text() else: result = formula return result PyQt-x11-gpl-4.11.4/examples/demos/spreadsheet/util.py0000644000076500000240000000371112536324427022541 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2012 Hans-Peter Jansen . ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## GNU Lesser General Public License Usage ## This file may be used under the terms of the GNU Lesser General Public ## License version 2.1 as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the packaging of this ## file. Please review the following information to ensure the GNU Lesser ## General Public License version 2.1 requirements will be met: ## http:#www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU General ## Public License version 3.0 as published by the Free Software Foundation ## and appearing in the file LICENSE.GPL included in the packaging of this ## file. Please review the following information to ensure the GNU General ## Public License version 3.0 requirements will be met: ## http:#www.gnu.org/copyleft/gpl.html. ## ## Other Usage ## Alternatively, this file may be used in accordance with the terms and ## conditions contained in a signed written agreement between you and Nokia. ## $QT_END_LICENSE$ ## ############################################################################# def decode_pos(pos): try: row = int(pos[1:]) - 1 col = ord(pos[0]) - ord('A') except ValueError: row = -1 col = -1 return row, col def encode_pos(row, col): return chr(col + ord('A')) + str(row + 1) PyQt-x11-gpl-4.11.4/examples/demos/textedit/0000755000076500000240000000000012536324427020533 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/textedit/example.html0000644000076500000240000003403512536324427023061 0ustar philstaff00000000000000QTextEdit Demonstration

      QTextEdit

      The QTextEdit widget is an advanced editor that supports formatted rich text. It can be used to display HTML and other rich document formats. Internally, QTextEdit uses the QTextDocument class to describe both the high-level structure of each document and the low-level formatting of paragraphs.

      If you are viewing this document in the textedit demo, you can edit this document to explore Qt's rich text editing features. We have included some comments in each of the following sections to encourage you to experiment.

      Font and Paragraph Styles

      QTextEdit supports bold, italic, and underlined font styles, and can display multicolored text. Font families such as Times New Roman and Courier can also be used directly. If you place the cursor in a region of styled text, the controls in the tool bars will change to reflect the current style.

      Paragraphs can be formatted so that the text is left-aligned, right-aligned, centered, or fully justified.

      Try changing the alignment of some text and resize the editor to see how the text layout changes.

      Lists

      Different kinds of lists can be included in rich text documents. Standard bullet lists can be nested, using different symbols for each level of the list:

      • Disc symbols are typically used for top-level list items.
      • Circle symbols can be used to distinguish between items in lower-level lists.
      • Square symbols provide a reasonable alternative to discs and circles.

      Ordered lists can be created that can be used for tables of contents. Different characters can be used to enumerate items, and we can use both Roman and Arabic numerals in the same list structure:

      1. Introduction
      2. Qt Tools
      1. Qt Assistant
      2. Qt Designer
        1. Form Editor
        2. Component Architecture
      3. Qt Linguist

      The list will automatically be renumbered if you add or remove items. Try adding new sections to the above list or removing existing item to see the numbers change.

      Images

      Inline images are treated like ordinary ranges of characters in the text editor, so they flow with the surrounding text. Images can also be selected in the same way as text, making it easy to cut, copy, and paste them.

      Try to select this image by clicking and dragging over it with the mouse, or use the text cursor to select it by holding down Shift and using the arrow keys. You can then cut or copy it, and paste it into different parts of this document.

      Tables

      QTextEdit can arrange and format tables, supporting features such as row and column spans, text formatting within cells, and size constraints for columns.

      Development Tools

      Programming Techniques

      Graphical User Interfaces

      9:00 - 11:00

      Introduction to Qt

      11:00 - 13:00

      Using qmake

      Object-oriented Programming

      Layouts in Qt

      13:00 - 15:00

      Qt Designer Tutorial

      Extreme Programming

      Writing Custom Styles

      15:00 - 17:00

      Qt Linguist and Internationalization

      Try adding text to the cells in the table and experiment with the alignment of the paragraphs.

      Hyperlinks

      QTextEdit is designed to support hyperlinks between documents, and this feature is used extensively in Qt Assistant. Hyperlinks are automatically created when an HTML file is imported into an editor. Since the rich text framework supports hyperlinks natively, they can also be created programatically.

      Undo and Redo

      Full support for undo and redo operations is built into QTextEdit and the underlying rich text framework. Operations on a document can be packaged together to make editing a more comfortable experience for the user.

      Try making changes to this document and press Ctrl+Z to undo them. You can always recover the original contents of the document.

      PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/0000755000076500000240000000000012536324427022000 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/logo.png0000644000076500000240000000117012536324427023445 0ustar philstaff00000000000000‰PNG  IHDR D¤ŠÆsRGB®ÎéEPLTE  & +59E GXVj d| qŒ}›†¦± ’¶ •¹˜¾ ™¿ ›¿œÃ ¢Ê ªÕ E¹TŒbKGDˆH pHYs  šœtIMEÚ  7ªú²tEXtCommentCreated with GIMPW‡IDAT8Ë•“RÄ „)-…טðþêJõtt”¹ŸøØd“`êïëiþ]?ÌÒ¾r§g¢@1Ÿ"uê¼M ˆdï¬Á².<„Ë+P¤„Õ̵lqP䨗qvý…ç €û»n¯žb¤ÝšÅ,~h €%èÅ=«‡&iW‚äCA’fçkc˜anOÕ[³L€«×s‰…\n§ÃFÀ§ò€í¢Åˆ‹!éN.(BÈIõóñ3‚Ø,ð¥ëk1,±n™xþÂ…4Ù5JÕH†¾ÜCHß ‘Z%­Ð „®ÇH¡å^Á¥— ©hBZG·™‡MD°ÔÃ8ÚºÍÚj7…º4B~#ýªñŒ”,a$n«ÔR_³ï->ZC³4>.tf§{[H9E¿õ±ØÒ‡‚æéÆ X»Ì¹R7 ŸÀç®Íz\ͺ48î#»eݼ¸ãn÷{μñQñ6Íyúäé«Á‡»¢Žä+p=½1ïã÷+ðmýx?À3½/ÙIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/logo32.png0000644000076500000240000000260212536324427023613 0ustar philstaff00000000000000‰PNG  IHDR@ •C޶ÀPLTEqŒ¥¥¤ ———¢Ê ìììûûüŒŒ‹ÊÊÊxxwÔÔÔ³³³Vj ººº::7VVUòòòõõõÅÅÅhigIJH%'" @A?ØØØ451qrpœÃ øøøÏÏÏïïïááá-.*ÞÞÞççèÿÿÿäää9E d| ± ˜¾ ‚‚+5ÛÛÛ]^YGXªÕ & ™¿ ¿¿¿}›aa`’¶ †¦›¿•¹ØÚÑÆÈ¿bcXÒÔË3î¢.}IDATx^•å²#7„G0ÌÌŒfö… ¼ÿ[åH³¾»›T%é?®»?µŒ…û¿ëÛÙ9Pj†…-KÓ>‹p’`’öEßã)"ÿ (…"ÃPuK+ì¸èq’…YcšÈß{¦_%¥ü\ZVㄆ±ói`ID¦ég@U‰\ÕÏHY~“®» ƒäֵ쵃~j¬ÒQ²i"?{p¿ æÅÜ>ßEñþÊñ‰ú)櫓ˇÖu™ßõZ¹n­··|ö¢øÜÜ"Šn—±Úü®Ÿ†ü´è†‘Bªß ú8C ŠJáåß_0yiJ·/ÂçŸÝ2JË¢«u’(Jâ>sŠbùJ˜M<Áêß§Õûýãòm%|þ6JZT-!$JMÓ‚sVØ fMà~þ‘ÙðÆÜnÍcľÙ@è$wQÑ9!8CÒÌåŽ'K± ùJP‰vðñ)‚®¢pdS\¯Ð<蹇âd† ^™ÉóÆNÒé ¬z›ûµ‚fTÕõ˃Ÿ"aÌKkó\×àƨÒÒI@V@uß0%î÷Ƽ=¯ï7°\P½s7ä‹©îºÒ2zµd… †'Ó@üÀ„¤;qφa; lÁw{¯öàuâ4²UŒ LÖ:¯•Ðû1BUÁôÀ›á8ŽSŒõ|àfüêÖ ¸o+òü˜ýܬØ#Ö+dJe”*È›gm²3ÅŽHOi‘›õ8ð³Ÿã­xg7!&°öyefyË<¶ó\fC7[…c$Dö/ðó\Xø0eÖâ[ê°Œ², ¥¹S Z¤™†2òã Âõç¿¢ùý »ì4{^×¹®<×Ã"»Nøh½åqpÔ¢ý«ˆ`¼\Ÿ¯,+ %@Yv‡¥õꙩ–ÔN ›êmí¹unX%&kŸ¼ì‘ɯq3SÞÆ{µûC%דåZn‡f¬O6ô¥•eWU´pZÐ4>7Wê·‚Q6"Ø(Ï@xn§7‹«Ú“ct’4<;ŒÉ XK™¢ø|µ”Â( Vüæ4ÂBºƒïç’‘žªAƒÐ.¢ ª6|…w×+,»?/׊–¯ õËj$”$ 5…í„=;èµÎ»ó¤á)l7)-¤Oj†Õ cÛ¶¾eœä&KRõ©í81T`ð:ÞÖÑŒ"qñ.T;ü† _FOBE¯ó‚›&(øFqÀšaΗð‘-Ó[&ì ãÑ ‹+k8=£76«AprUǯp‰Õöˆ×ø(@/n»u3øz·H9 ú”¥L4ÍXr_+{òëk½zš—Íæ²ý¸‹beÂrp@¬ „(P`~5L¢Ô~;”¥®>šîÀ?T‰  ÌO~ÀŽ8ŠÑ,ÝÒ ‡ý¯…¡c+¾•ËèŸm\œö0Åoj[o\dosØ÷qŸ$EÑKžàß]ÐfïÔÊ:Œ”ïÄI J [)cBþ€à€!uhÔ&W’B;OS%”„ü,ƒÜôùñ¾IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/0000755000076500000240000000000012536324427022540 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/editcopy.png0000644000076500000240000000267412536324427025077 0ustar philstaff00000000000000‰PNG  IHDR szzôƒIDATx^µWKlTÕþî;[héP†:ØHµJxˆ !ÔG\(DCĉº‘¸qå#>7$®Ü¸Ò°Ð• ÿä¿ +*h•J ´Lé“–N;ÓΫó¸ÏsïçwrO2ÉdŠ“Œ¿äËyLæ|ßïq~gFªV«hÅž;ýéKãñ6àöÿ}^@SZ$Ç·G_ýþ« ªEI7@@„O£ãó7Îvé ?¡‰ÉhͶ98°ÃE@µÀd€ëŽ °<`N ÌAIc84øÔ˼óæ»5᯵KÆÀL{R|¯%a¨T*(òÅ Þ:~øìë/îƒR×R Þþèò¡º%Ÿ÷õõG—Rëƒ×þœó¸vDB žŒãé'£V,•`KèêÞ†ÂzŸœ?ý^&_6k"îÕê¡ÔL€ ¦“ν°7~NìíˆuÓÈl¦èº¶e`çvD»Tä*læáÇŸ81´ûž‰Œ1Ë3Af¶@×uõìÉ¡Ãw'÷øãq8uîäÁ÷OèÇfYŠÅ"úz{pæ•~ŒÜ_FOW½=$ ¦a€,PÍVÉdä]š¦q/62ÇqèÐA»vöbOßfÜJ¬ •-C¨˜Ÿºƒ¯/~ŒKß\DrqšjGÚ ZõÃ÷RQ<»'ŽÀÜnO®àøÑ~9:„Á½ûàUetvvbµ²Pm«!BئM›p`W/îLM`9gâ‰Þ>Äj ÛbÛ ¡PÊk«Y–y†‡‡©øº££¦®aœÜ°©^¨W´©„B!Äãqž†r¹L5ÃSáT%è&`;0@z˜ ´5T|$€òK‘ µmÛ˜H'áVy‡„épr˜\D›#@W-cëÖ­ˆÅbˆF£<0˜ÄêN7ì¶ h,B¯êÁó<0bP4x ¸mSÛn³"£ëº ñ¹Çù)ü~ð¨h6ðŸ\Cy.Ö²,A³€€Í#À½÷xM´1Â{"#íñ7Àö8¡Å€¼ÆSÁç&ks(ìD, ’æt ]WFA\èÙÌ=G8ØÆk(ÂN¤4Ò£$ñtT]D‚@¼ÜÒE 3DQªÒ´vA&BN÷ŸDƒAzÄø5¬XÀìí rwgs`–&y Ô„ËtœfUi5ç"Ô|hM"(~êŽ$Ž:c9·ˆ_ÆÇy”$Ù´ä–$è8þ½Vˆi¤žOsÓ4‰”PC¢‘ïÍŽ]ÃÈ•‡È–ôE%¤N1DY5¸ÈÌÔøÌï "˜W٨ȈŒLä\´\êÿº®CUUÄ?3t·bæ8ÅåŠú۲ǭ|zAË/¥ ɉ¬ïu' €!|Tšy.D¯ép‘kBÏo©TbÉ{©5¯›·~»þðÞõž.[Ô/È‘ÑhD*rÌQ(ˆ€<¦_¼$ö¨÷“÷$Ž£\.1Óu™òC­úˆÔ> úBd¡¦©òš"‰D¨ÊÉsÚãO2™ä{sssƒ')öjF²+…Õ¬…> ˆ-ÓD0ªÄ ÷˜|0‰ùùy¤2EÃòBe+Í›VÊù•›ùô\Ê¿jž€H毽&(Ü<§Œ1òD"ÑÑQNšÎ•57˺áø: ï˜5´ÂTjöîÈüØp¸D,ŠpCº®aii œxzzù2«xj|òˆ‡XåܯËSý¹œ ûêêø`MÌÌÌà÷+—°–×+‘m»ÓÁîcÙà¶® ‡Ù×J¹å‘«ß^¤’@ƒ€æBh^Ïþ8`ÀU7øòLZª™ ò‰Ñ„¼^„Ե⫂ÂRdÍIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/editcut.png0000644000076500000240000000275012536324427024713 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<zIDATXÃÅ– LÔuÇ.±À8oaš$W !©¼Ô(–-“6'E¹ÊˆJÙ`3)PG€¼¸°@@NŽW‰àpŠ2r‘Ó9`— ,%…‰/ÍݹàéyÎßûëLŽºí3Žßÿÿçû¼ÿáÿÄ´›‰b#D¸Î™ú¸= °' àì€ÞOZ‚1îs! *@—O·Êa1‹vÒuËÙ° ²þÎF9|ö@ù̶€ìí'èûó\,B&*jÖpŽWì˸•êäÔÎ…(Î7åâ2ÄÂXàl 0zÏÞjüüô"çÜ › ¼¼®Ï…w®x®|µ§§¾"4ÔÀ‘`j7l@)-&XÆ)­lkj ¸òBŠ¯Ù¨vëV#ßEG›\ôñ K<ߨø‹~tô¯¡îî?ù™&"ñ0ŽD±rrƒȵAç>ÈpHHHâ9­¶_¯×#364„'“’®I§#À–k à¦|¼ pˆC+»Ï’ %þTSÓ?22‚Ì(ÑÓØxû•ªT¤ÁmZ$¸&Øð©˜íïǬ€€VÑž ˆµa¾¾™§ÊËûQâJO~›Ð'ŠØwÚ»àÞT´þf09—›ËùÜâãy"?ÿj_o/öÊ8[U¥Y¹’½“ o¦lƒƒƒÇÇÇ‘¹yõ*–¤¦Þ¨®®ÆÖÖVììì4rþôi,‰‹»Èâ¯mÃ{°7§kj® £Z­Æääd¬­­ÅââbÔjµx¼ ÿÖk…× f¼Žeí±ÂÁa÷„„ëeeeÆûûû£  àñ†L‰ŽîžÎ¦œÊ¨(°w¹øv;;ÿ|$7w²¢¢³³³1//+++±¾¾/]ºdä²NgP©Òö)ÐÇ“½à÷žvûÆŒmgf†VV¨IKÃÃùù“»bc{“ãâ†JÓÓ§œOvtt N§Ã?†‡'Ó¶m«ç®0Y€ÔF¬ž¬««ÃË==Ñ‘‘dÖÝ%€ —ûøà‹{eÆŸ"¢?øQíæ†G""’>À^‰¶|œgº þ1áB8¯,µ³ËÊ‹¿¡ÑhP×ގɱ± òéõŠW-¿ë­º$lïn€>öœ¯å)zo€·…0á%‹yF†Jœsa® –Ïonñó;V˜‘1qL­6ÐÿoÈS°–ó¯ñòšÈHdƒ¼jιdœæmcxVÿ  ˆöf1¹œ²îNÈÝÿ#JÑ)Š©&¡‚˜Gxuçkk›ÂÏyðîQF À†öhvWUeŽ«!IOOáp˜»)•JaL Ô9ÝuK´tÍU¨’ÿ€¸9ØGÅH³·\þqò$3‹cÙHÀ4Mr¹ù|Û¶©­­¥">E¢BÃv¹/%õHpÆ à¿þ†™™CÃEˆè.º&ð q[²,b pÁ¨<õÂϾþÒ/»6Q hA‰Ïwÿ`}_Y€#GŽ]×5©9 `Õªø2:’RJÏ Ô‡ƒ €Oc<+¸>1É¿'ÇnÚ¹gë¶m{*Â!–Ötª+uêÂ~¢U~zF’íÇ>› ûKæw¥x‹¬‰V’µ,ÛÅ•Mü†FЧ“u‰h o¼ù>KP …QÙ+“*WuµŸÆÚF&çö½ôÖç>°aÿ]ÐAh ë׳á $W 4¡î+ßJ9|õéÍDëêUo”‘ê—d2I0TÍüýíÍØö"DöîÝ+;::\C|øu ÃÐÑغ‹+Q†¦04õŒ™Íª >Ÿr²,‹D"AMMìjÿî©›û:Þ¼pþW/o iª P"¥Lq®\”">|¡¥ª­ôñ@ØÏÙ+gYÿÈnBAƒ¬gÛ–ž] ]P&( ‰,f‡»f@Y¨qžÎÌ08k±£ã-zf£èÁ ®‚Û–ÏÐP»t]$%’æÐ4Pfžú§R¼ú^ý·Òˆj“æú ²¦Cδ1½qÓêΜ(_`ññ¿Y(UkS˜×w¯g(a£7¬fͺ¯¨Î.ˆ3#ÐÖÖ¶0€\¬(Áã­µ|me„O{'ñ?²Ž»^T]^¢EX0ÊšAQ®e’OMcÍÍ`gâäf$†•)ÙÑâR` 7¡P–ÒÁ1“äç¼ ©i @$Äs08+Y:çÞ€Dbá dƺŠAMÉhBr-æ2–’æ`¾.ñíª÷ à8Ž2 ¿†–3YIÿŒçi—‰9iN¥eÿlVöÇeϺ-íë«›ZŸ),xzzšÑÑQ&ÒA`Y¼,Àäœä⸋„›I¿='ûÆçdÏí´œÆ oXÞÖ¤~H§ÓêDWW7GѪWiÞ ï”ýtعÑ=%ÇÇS²Ëƒ&q øZyÓp§€ú™˜˜P?ËÝÝÝÄÒ:†µT­Þ†æýÞÒŒ·½¯ãsåºþØåüˆ€ „J ÀMÞ×DEÃfüu‘³®tÞ¾vîOýÝn{ÀnÙ·À›èB\4 Pœt@NaN÷ùƒ¶D03;ËÄø¸ :04JÊ®B¯nA4=:f¥œûèƒK§ßïæ“Ì—,#À)€_B±‘[S\ýì/Lgø£ÍÛföØÔ­Þcÿüó+g ÈYÀ\@. = !Ü ‹¬¬^ÐÎôëßDŸ{mI ù»»+s™™äô‰ ÿöã®Oâ…5NÁVѸ²¤aþ ªÓé¯p50#IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/editredo.png0000644000076500000240000000333012536324427025044 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<jIDATXÃíUiL”WUÔV[c´ÕhµZµZq©%uP‘Ò TedÑj+‹S48,e7Q`@¨âRYD¤T-Žà‚6.5.£Æšj'…©†ˆ1¥É$$§çoZKE±µ±?:ÉÉ—oy÷ž{î¹wºèò"Ñåÿ)¦xID¡D&±„°ûW 0QªZ­5$dê[3¦Ä,£)5çæ½øÌ³·«K¯ó}$gû\ 0àP·° Ýšœ;­¡ÑÀ¬P`F0àª<>¬"S5ùæ¶u[ô-ÁÑEz©ŽËó"Ÿ¡kö_L˜ Œr%Ü€±ÞÀxÀ.p#±p 8ˆÝdn5š>‰µ¨ò‰u±iæ¶©~À› 5ÜL\(HJLfr{ª1p‰ãHd3µÃh ^aQD-”ü[„üË)ñûó€‘^À¸V¬f{DŒô†¦äN«_¸¦¾3-’6îÔ·¨4 –D}”Ÿ§ Y9Ú-*AD½©êFõ“yû÷@ÂA`ávzd#0“¾ñ&‰ÏGSfn[o™uû¤b—XwŠåÆ/BS¯ÙÏŠ(¡z/P©#‘5–ÃÝ€|â±$CWñÝÍ{U Ë:îŠr ` àF?x±a¼f•1iZã¾°&/(~¨°5 :s—®9ý …DÊÙÿŒ]uBúޤã;{±ªS µ†škæ¶‚s$O£*wP…M½¤$‰u;ià­ºfkÅâšKÅOž„ÿ¬Á†º/ÎЕ̹֙t~1ƒí=qóžHð´Š>/N(Ò×êMæÝT.™ÞXÊ ògK½Ó¸¼ˆ8ŽjB¶¥âªT}K&•ÖÖ=BÀ*«rU‘¾òœ¹m=pÚÓuf÷[[RsõNk[’vXVÁIabß,`•^GRj“Ù‡;dY2Û¬mGÀZMb®ÖpìpòG ìÈÃ>ufœÄØy’DñQ}KÕuú‚ûcyBƒúp2fÓ Nü¯qäv cÄ}5!`õC²Fk¸ô3ÐpXgYµ>$aéq I|Mi§=²‹$8®ÎÉØRNIÕqIàq? ‰<­¡áp‚²Š¿j{¨|ÕM¢{èæè7Þ) )%³üì­¢zz‚íˆ %w†/}áÅä*¶æàéÇèJ؈@N‰ña±Ûô æ6Mù™ÛÓýãÃù¼ñ ñjïzÙ{ªÞû`~â¶ìãFS Àj—sBsÆñž#{øâ_ ØÈ*^"z½æªWúGå4¿|ç×ä¼êF…{Ä>H ’xCÂz?pŒýœI¾«Ò‹jîVÜ ¸¾7q¬×Ó_pB⸸r¹iO]û3‘¼‡¬°ñº 8Änæ’¥Óçªd—žjVÆÞxk¢ó,>KØã$lå³w&»ElØU}¡¥þ.P÷ pˆ^:ð{NS—sBʹÆþÔ7þA «¬\$ï++.‚»~‡»¼;C™6x´"÷Ž„“°J;8 ~[±@³ÅpDרzôrck-¯µ—›ÔêšÔ\jzpøRÓ}í…¦û‡Ïï:g4‰µn­þeY¹¨z$1‘˜"¹³ w‹ð&|‰¹í žy˜äš¨p‹ÐZàY­ðˆ:8ÅSU5uNô>Ÿ˜²é~q»ç%ì Ç¶Ñ¬"¶ÅÕ¢çý„äRJ{bá&úó ¡@B„¶Cˆ|(¿õ“gÝd,{{ˆÌÕSæ~ñžk ä7îòŒ«Œ1EÆ)sô‘9m:eBBAL%ždBùÎA~«g'ÈXÃeì¾2Ww™ûÉcH #F£ˆÑ2X‡c(¿%Ï “1ɘ}dŽÖꟸˆäѯ׈þÄ€§-"ùMy¦ŸŒÑ[Æ|Iæ°±þü³¤žkã4úIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/editundo.png0000644000076500000240000000332212536324427025061 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<dIDATXÃíV L•eF´’r.Sgnê2MRÌKNAB¤48 wá˜\1à€\½ÞAD@Io‰y /(jq’#áDcÐÜŽÒv6¶§ç?|xAEr6·ÖÙžqÎÿÿï÷>ïó>ïû£@çUBçÿYŸÊãf¾D ‘!CØükx¸HRîšWšXݵ­ñntŠJ½q§JŸ¦ìM(mâý<Âá¥àaR…òµÙJE’²c}‚¦ËS8‹|sw`¡'ಈJr Ú;­½“k3î¥$ö É«KR©}¢&ï Ì^Lw¦:“íIÖü.,=€-{€ÙµmŒ ~ÑÄã…TqåõŠ¬ÖŸ¬`b&ŸãG¬"Hf¶?0Õë»mŽ€7ÕÉ/ÑtI­z‘ä«­–'×Ç×¶ùodkÓ•€1å5]O"1”š2{ìÜwNÉ”ŸÊ‘àT¶b‰ÈC€cßRþqÕ¾… ë“5]N<ä3jÈ¿¬È.ðËb¿ÒÎ_U™ßñE€/¯[‘¬!ŸŸC•–F@ à™WßßäÖRÕ µm+âh¬uìsPwâÅLì›lf¢#—€Ó—Têäœòæ€Myõñ9Õ­Égåû€ÑŒ fâ­À©r€çÖôKr‡•©·Â¶µwº’¹90 cE[(s:ΊT@éU•Ú-(õ–˜y¹Ø1É'8~ÇÇm€ý&N ŸùQxà‘Ù5xJr…”¤é² erÊn 8ïŽÛ/Åu@e½Z¾³°A$¶èu†YPRaÃJî™Áê÷’0¿gæ+;¤¼Ò1ûr»ôèé÷ÊèÒ¦U”XÆŠÍÃišVÍ~n8ä\ªîEUwm|µ3íþ¬è—WŸrX—ÇÌÊjiÔ5Z¥ ¤jÊh˜=9IHC’Ùïx&gb :ÛžUûå‰4X«¾zGÓµy¿v«I«Ö¨Êc3Ë›w– t~Á%`ï1íPh7¡D ý°‘cš¨%Q¯ìðd­¥ùÞ ¸¦kO»*Ø»_KjOd¶RòG?<”’^Üx7ƒ±Ç˜üü5µFæÓ½ˆ’ÌÁ£sL\j#+–Ñí¶IÀ2JBÉ÷K§ä•·Û;û’¼÷»a MyêgVNÙ+”š.¯0-ñ±Z!\f>Ý[ÌŒ._Û-¹WAüT«€“åÊÛîäýߘƒ¥ÊŽ ·Ù²ß€˜TmËSMK@ÁÝlι6"Ì™Üíð:Ìä¥@ÖuJþ;WçÅÇÚŸÝá‘­¼ÉØ›$›¦M®xâÿ‰@ìn2JnÉ~;¦29Í¶Ž†Ù^Í1ã|ï+¨n5s‹‰3u‰øHGGg 1èî 4² )½r/þÔÞY×ú0¹ÎÓ>DlçÓ…‹Åç( Çä±\£éì[n•J=ß5:ËÈ6èc>®G¼I¼õ H÷ôæ¹lXz¼êkMš®åáYJ3·è ‚œ.1à Ùº7Zp!·×fÇr7¥?ô g–ò(¯ûÓÄ1,éC#»™ E¼+0Z ç÷(CYÀÒØ´âæ²í¹î®3qR|ÉëCˆÁÄëB)ÝÇTÔsDj˜IsÆ¿á¨nεWÚ€&5_.Å5s¬2™˜BS¤ïSÞŸnþ¹ghFî¼Ê¶yNŠ¢Y‹|ýx}¬ 7œ*T|í i}–\V©‰{%W[î}w½åÞ™ë-÷ÏÖ7ZÑÜ)á\ms§ghzÓ˜I†Kf&…ö‚tÍtŒ¾¡|ÆÏ­ÃF·àïYÄ4Az¼PëmAb¶4—%{”eº$òà<çˆÃ&¡Gí‚óçÚÚž6”­)6´(•0a¦e4ƒì G©ŽńŒ°",±¹Ätb¢PCRâŠþ rIò kq¨3áJȉ/w£ÜÅ=¹xÖYÄZ‹³ŒÄÙcE®Á"÷«' +ä*ä™(äš+ä³rÊ„¼/½„!ô„AF ÃL’ŒdH&’Ñú2¡xÆXÄ<ß„â£+FCO°.˜Jr½GL > ôûCqO_<;AÄö=†|t«×E†ˆ©_ï#ˆ‘Ï[Dâ™"f˜8ã‰EÔó.ø• [&Ð7IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/exportpdf.png0000644000076500000240000000227712536324427025271 0ustar philstaff00000000000000‰PNG  IHDR szzô†IDATx^í—Kh\UÆç>æÎLÛt¦Qb1µ>ªVmKÅ E\ˆB×ED]˜MWÒºD\ˆ¥ÒEIQZܹŠbt@%bl¨$éËušU+’úþpû /ëlnA{†¡Q !†Ð…/Ípõz¶ ¡áX„{LKÐ( ”JELý£„:©ÂÔOÅVÈT^B¡¼Uû·K`è/LŽ1==E¡çNäºm¬[·tÇ]·²F@HÉï¿Ãüü<ù|žJ¥²в¬%lÛÖ­ ­ÃúFV.——øìóãÚS¡Ç¨ ŒÆU¸:•¦¦úúú8|ø0‡ÒÇ·!í¥<ú*‹ Pß„®ëRÓÈÈ©TŠt:­&JRJêB{ÕNLD_†µeHY/L$úÉXbÝF¨a°^R혪 CÔMê›'4¿ý«C‚D>ä¢î„ ª€ UòO¿ ”Ë%MÓð¼2¥R‰R±¨wvË$!·cfæ27æf›ÏÀÍ…›Ìg³8Nœɶð¹0>ÆØù³´%Ü 0¸l€B©ÀÕ«3x¾§d¾û‘d2ÉÎç_lxŽOMÏÐ\‰ÄW>³³7PߌŽþBÚÄ׬7S G!R£š«¿X,N—†‡‡©¹µ#j->|НË6M@…>M‹PKËäL"‘ ê kÉá#©H¤$ðô)qu:cƒAêëïþß‘H$B×j“¦ %žO _£ÛwêGÝ–H4J…[h4E 1<:pph4ÁP”nþõ7]½ú]¨¬¤ªª‹ôgÍuÚ¸£ì¡Åbykˆ bƒcÄšMÐ#›ƒ*/^¢Óg~¡³ç~§Ú[w(ÿ˃÷MˆKH\1P_(N®n?uº<äæ±o ?÷Lˆqµ¡nuTHçë“b|ü OüˆŠU1ó@D_Ãë3M@“U÷i"Œ«N¨uH›&æÊzÃbcŒ¾òõ@¬áX¸Æ4 WßÓ¯‡cÆ@ˆàœ×"àÖºûˆº"Jkkjîòóí0Y›"8{Å1¤0þãÕ瀮1U¡Øc‡Gˆ ÐÑ«ws%ç×Lð†ÅÆ@µ0 ;‚5[É]A½:»èq·A(d”>Ã=!!€7áxoÔP BÖÖ%Âp¬PÇPr÷C ¯â)L3éY2) ô²@«[` W2UãXuàß‚&|—y‡™jII'¢ Ü"D…·<BUáNÙþûN~øš¢âCͼÇûÌf–AG&½P@¶k²µ¤¼ílê$zàA†À1>û—»à䇰Ã+ªwz‚C_—ÖðË™%Ì|&]J¤©.Œ'€V¥AÀá׫n°ëíovŠ–#4)ÙRøæû㎂¯Öæ|¾óGÞ#—ùˆY&%ÞcÞV]x‘ÀÜÇ'ýz»Û¹ÅuvŠõ{6oüدվ’½޼ÍjV¯ÝubþÒÜ]|íZÆÊ0Ÿ0ÙÌ"&ƒ™öR¨îWÝÉpñ÷¼¡¿UûŠ÷VØš¿í§Œy˶óù˜õÌ:³’· Ä?­ 6_ìø¹k=%û~îÈßò]õ*ëŽCs2³¶ð9…L‘Bº†ùt"· ùm++Cø?ܪ7}»?sE6^É|(7ÎaVÈ‘ë¨8ë•BƒDšlÙLÙ¾¹ÌCm›ÎÌ2Øp¶¬*Ã@º\Ÿ%Û=î‹è?a>àaoN0IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/fileopen.png0000644000076500000240000000417012536324427025051 0ustar philstaff00000000000000‰PNG  IHDR szzô?IDATXíW P“÷®Úm¶·ëm]·ÛçyûºµÛÚ«¶ÚÞvçz7»³nÓÞ©Ô­Ûê´îægÕÚ"ˆB,ÑÈ—Ñ"Š„@$@ù’@BÂWÂ7(ˆ¥gžýþ¯(Úvç{÷\rÇËÿùýžçùýÞ7xìQ‚®oV¢  ?~èýøqÂo—-_!6{:ûì×Whä:/â«ìo„Cüó‘_¿&ìÖÔ›\Ö±pXúJG/Á1VYô’%KÄ11ÇýšÊÊ0/â‘]¿ üídršÊ1öémýPdïA‰É •Å[ïöìÙל{1êÄèèØ4Ý¿ýQ >oܲUÚ:xcÊ0 (ÜÃ(1·¡Äè@ÎŒ„Ìdeç‚_Ÿ¸)ÀíöôÑÿýá‹=Kx•û;ÇgùlÔ]“™Ú ¤®¯Ö4!5¿¢¤Ó°¶ØïÏ ??¿–Ÿùù¤•æÔ2_™¿„×fû\œ†¬¹¥fdudk“ ¦R;‡tüÆ$Æ®O`tüV¬X!¦3?Œø{„¿0Oí$­qÐÆÑ20q[guúí£s}–×ÛWQ#ñb\.ÝGÌH‡GÇÑ?8ŒîÞ¾):{Ç=Ó0£ì1ažZÁa—uŒBióC×ÖƒZOô¾A”»Bw|6Øq¹Úˆ¸4)Ò3³æø<‡x`ˆˆƒèðùQ«×w±t“+t+¾f”]=SÀê:›Óo ‡+{¦Pl Ä UÎ.Tµ ¶v@ajÅÕkH¹$GŒ(^:xv×Lꑱë¼ã Üí^Xl-(’— ¸L嚸5ÝspÓŽ°ŽLƒ/+኶…–*»ÄÚV?46ï]Ÿ3åj|}ƒa^¹‡GÑ ³–«4H:}Z] |“@h 0ÒÄ(½cP›­þÙ D7R¢óªL¨vu W´øPÖÔ†"½Uðùýc"(ËUóŒ 6ø»zàhuQF$$&"¯°ÞáIø&€–ï$¤¦NÔù‡Ø>8­ÿ_µT:üPYÛïø\e@tR ròòçø<#÷ŒÏ]=}p¹ÛajlBnÞ%ÄÆŸ„­«í7€N"W>Áe×(Òõt®³/¼÷pdq®ŸþhÓðmdkô(mt¡°¶Ùe:ˆÄ’û|žéz`hD»ÝÛ‰f« ¥¥å8v<õVÚÈc Y¤=H¬°ãBs.½PÔ4°ðíºwü¢ú?A–²WªMÈ’k°÷¨ Ó¼rûàówÁîp¢ŠüŸ– ïJoÊ’6Dy¢ö3 ~œ®v!½Þ‡ ê¾Îb£øá;÷p´¶w)¥8'SA”~k#¶Ì+w »Î6 ¦F¤gœCj–îž~¸¨ëF ˜Üw猤Զ#MïÅ™kn¤Öz  éß|k³”¸ÖÌ·€Ži½CH8ñçr±+ò8~yw¬˜Ü=}!x:|h²XQ(“#>!&›J7mc¨úÂ8ÛÐ)tˈÅÚVœªr"¹Æ¬z7.*TÍÄóïmÀزÖnÄ$Kñþ‰SxkÛN¤ÍÆjFî{+´U:¸PQŠñi @«Š;§3M]w»ŽU˜ï¥F´Ÿ½&<õ D²F}$ÁŽƒ‘xõ7«ÐÔlÒÍän0š!9“ iÎE« ¡ë¦‘;r_jÆIM‹ ;#MPÛp´¨A@’ÆŠ²¶¾ðÒ——‹ùê]ð âój­Ø%–íÿÁÊU¯ ]³e"+¢§›èlzi‹ùùXå9†ð±%(¤œ-NÙ(ÈκO(oÆÙ'4®îéû]¥ówò½¿èAE$J5õضÿC¬Ûü6vï}Í+”øÇ;ÛhCzá¡™¾Öä¶ @¢kC¶5$x.R×ѲzÄ–qNïÜÞÎ×èÚèÜžúoqùŸà…ÜWĩԢ lݹ¯¯Y'Œ•¢´ ;Þ}â|⊄p±nÙ'óúx‰I(„_nä>Oa+3Ûƒ/,]–‚Íçý%Âù“ö넯Þ[@rR^1Öÿ}žé!åGŽDá½èX$–›C~2¢ÔºAf.æ{ûTY¬µ¡®#8µsÿA9Ë'g›îeÂ+„e„Ÿžáï÷—u Þô6^[õ{¤¤¦aý¦Í8£6á@ŽF[*¬ó¨Û¨B=â¤@¥ Å-þÛYWK¬tÆ –%Â;õ‘ŠòÈT/Q*Â%¼$ *B}")Pµjœ®o*Ž×—µ×{Ë×ß93ë&$µp˜õú›ùvæ;çüÎïüÎ7Šö9æææfßyç§?¯ÕÖ£ÏÊ?Òøð_ªxÎìýŠscT¥RÑ.\x÷üùó¿þ*ö~¸®[š™yú¥ ( CÒZ‰F£ÈhCZiã9ä{àY–EÙlö¯ûÙØ×,Òîv»´±±! ö`ƒ*6®0o0¯yĵ֑q­ }m¨Lív»¹Ÿ ½/œ˜}Ó²-²m [¥FT–¥ÈÒ˜ãhùšÈ[1*‰ÜàwÏ<óì÷*•±±;066–ªŒŒ|Û„ŒDÁâöÐÈï!>ÊŠoް§€,þM!eÝ®GO>räÀììì„­V»åÞXån½G3üÅ‘U‹­÷”ˆvwwÏ3þ£¤8ŸÁ}Qrd{UÐ?,+vÉbhb§4…x&ºÝÉGd9ç(1÷Üô¯Œù•þÂV é CŸ”¯ÌØÜœo`Á^ˆE$ý€ÔÀ 9$èËhï/h¬>haÏô¶÷-Ãdž††¦ûK¢Ô‘‘‘t"a Âoô¨G6›Ó…ÂзŽ;VFuè(c–Fy./,,|">ž>ª†‡‡õÊÒõÀ Ý )ŸÏOe2™¢ x3/½|zòõ³g)áºÒI¹\Ž–——YÅèøñJ&8M”J¥XžÉÅèXV,ËÌt#R%~®Ýî@:tëÖ¿èìÙ×Ì™3g”çyT¯×Á¯MšŸŸ/øáß·ñ`~½¶6ô›K¿¥Ô@JeizjŠ>úôSúàƒ¿Â@é5´i‚ÐÖ{²¬DC ßgG<Œy^GœºuëßtèÐcjvvVU«Uêtz(¨¥¥üŠ B¸ÿù|Õv–äÌv\ÚªoÒÇBµ»› LÆl1f³A›Ïµ0œ¹ X˜L?÷Ô½ï{£Å_»v¦§§éÆ4:z˜VWï“ϧlðÎmµ[Vo»GÉD’ɵšM*•*ô£ÿ‘„¢éqsUt-ºÇú£”%ÚÏ_%j!#Õ缎GƒÙAºxñ"«+ݹ3OM¤ç›/¾È(&gkkKã b;A(¶i}}ƒš­šŒ5˜¸#rÎmŽç–b. ²ôÊ9§ÇÜÆùþ±¯Q»Ó¦,È W©˜OÒÆæ:çØ€Âéø²áç×E²‘„c“[,‰±06Nl h¨©¡(p-ްa·ežc'º^—JC¥XÑ‘J ‚èȑà )CQ[)-Ž”àñóÕ&4ÀHƒ‘Z§¨îYbù#hP_¾”Å~e¤S„ÂcܪL¹Ié¨â@§Û"k'êë\ŠL˜Û·oS:‰4^…ôÆ}ŠI÷ß7p´è¨´PýŒÞxó'Rž¼·°·tY|˜„¡çùfg§éÄÛ-CPªB.ĢáÚÄÝbx-îx}õ“mb+a´=ãÜ6[Yu€+ÍñQRhFhC<¸¦Ó)a¶ƒ¼3!_›£Þü=â9j4‘1Çç¤A©(^ç]DÊ$å/ î_‚úMNN#¸Aùâ½¢#‚¶ººÚã*è Å€‚¢Ænƒ&ÆÑÒB• `’ Fƒó™H¸"6&î ÑÎÀP¾X'y ¾£M¦EA'&&hy±JYÔ¾ŠÑsAxÎ>§ Lº^2™$ßÃÆ$q¡VÛ;u:qâ:wîœ À›S–YŽŠáó$ˆÄ{Þj«ÙÞ"7w”%ýï7oÒ•?\¡ÖÔm˜re'@“ØEÔ-\äº~Í;­.ÓñgŸ‹Øìƒ¯Ø¢EÓ”‰ÊÍ‹£tŒMŒ \É dDóÅ¢çã33tåB*îzJÙ²Ç,—Ë ßº uÚ†ÕS§NlÕ·@›vu àa.—‘E:½Ž0¸fj(!›•`T8eìêjsܨøw&o× …">}FÐcö»®C‹‹ËÍ•••.ÃàòåË¿¸zõêGA´¹4^à…¯¼üê+ßyý»óGS*•a°°hüâÁ uB+ÞÀ9éÜÛ.ÂÁd2±õÞ{¿ú]«Õò”–îõZ·TMt;“÷1¼o ÿÜ~Ž%,..Q±˜£õµMÉÈsàTW˜ÑL6¦×7ëHC^Öi4ww¥¤ßBElý¯oFN­¶–«TÊñ®ÛÒ°aŽ–‘ZDyÙ ;bÎdóypŧµµ5QɾùlM¨1€h݃¼šÙ;]!æcjj’îÛsàˆÔ°Ù©Õjæ tÖkwß]¨.<„AJGÛžû„VÝûªüà;¥Š4‚B¤§W­Îÿ絇:¸óöm‡ÁæâÃ…Í›Ì"²mE{/îä£jaÞXöfä ¼æ¹Á¶lcIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/filesave.png0000644000076500000240000000226612536324427025052 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<HIDATXÃåWÏoEþfwíõn¶$±$ mD?  4BäPHˆ¿‚SþŽH¨âÀ… \¸rá‡"%@!P‘¤-NKLÚÊu×öz×Ã{3»›Ô?ÓÖÐ#½Ìlæù½o¾÷æÍŒRâA6¸Yñ`~~þ]êNÿG~—¾¼;ä±ÎÌ<Ó4±ú“µå:öªá}yòÆMœ<íàÙWÓÃW®\Åkås4Õß|›Gae ÙìQÜܰðÞû¯d¹Ÿ}ú=n6,þG67…“OÍt‡€[ÊJab"‹ÜÑ)8¦ƒL&3ÓO< w¼®Æ>zæ·´ã¸p]¶9†K—ÖIƒTRiÀ¶D:ªOÓw:­çƒð}’&ÐhÍFÔÓwËÇdî!˜¶‰^|ë¥Ëý¦Ab‘˜ü3g^²¶P [±è7®K·Këüù5eSÛý´Ã6Iˆ0 i:¬/uR%U/uÏ?ä)5¦¹¨¬´+‰€l™d·­D@FÃv¨…@‹hŠmŠ›Mt;$;§Sœ8D3‡ E”Sê’º¯¿›-e –¶Û–ȶD[ 1!Û˜›{ix†±A¦_…€›ìVY)”!Ø&Ùf}hB¥6JbsâEME‚ÿ E4’.¢Ÿíô<ÇBêql/±ß€Ð"´üR,CZDÚÒt3õq8lÞZ9Q,) ¢¡)WBcIa~ØKì÷ ßÞD g_{þpw ƒòÜžÓ–¥])öqôe@å\ÇOÑS#)Dl«TÚUv;t0 `Ðþ7 ×qðó…UŒñT}¸—ÆÛºº»§l†¡D `ðê ¡¯]¯`ë¯jÈýô9ø-¢CWt÷ÓºI•Ñdçl{ JÁˆÐšêTE3É–`f…1$†r¼qµ„ÍÍ2êõÚ}9wœ1;v¹©‡½z¦‹+ÖÇ}€Ôj5´Z­ EÕ1NTî4Ï©ØSÑñépŠåó/¾R6YØÇ8 LfsÉÿ±´´¤pš¥*9whØ–ˆr “£@œ„enÜŠÅ"åtOÈå” …!ÕYv„ÁI&ÄB¤Ã Ô©7—ŽY>cŠã¾_ëZ¥Ò—=wÉ BÈ 9˜<Üßõ¬Œ¹•ð@Ùî‰÷Þß-ø.àÓ‰¥/AàSÑhÒª¡2{d–¿»·‹Jåný½ÝÀí½ÛØ©V•’!Føb’!6ÖK(]¾H‡©•çwAÏÔ›ulmUèt pÄCþ»áyξùN×9^Þ¬ JCÒ¦ÛÙÙÞ¾ÅשּׁüF—¨Tþ™§Ÿü„ò=\ßü¿_\UI÷5… 3›ïzáRß®Bº5OOOçOzN9§WQ­€å·ßzãÜ¿ùët®¸úß¿ŽÿŒ®¬"B!©IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/textbold.png0000644000076500000240000000311312536324427025071 0ustar philstaff00000000000000‰PNG  IHDR szzôIDATXÃÅWklUžÇÓÝ¥Ó.îBa·¥ÑZ|Ô´@%Æ¡Jxù¡ òH‰Á¨ˆÑ€ñØ 1>€Äb ‘4¼Ä†Ê+<"PR´Û-­´tívgvggïŒçìÜ…q»»lËor2;wî½ç»ç|籬aÌÿ9l© W}\e)Óm !Ë»2=Íy!ºöÜÉýÛÚF•oyÍjë„¿«WQ”I¾;v¾¸¸È‘ºQQ¢ÄßÕ£üuõV.ò;L 'F 1&Mò8m‚ÈÇ4†ñx|R\7çY6ñ #ÀNïèÅxœa4ÒÒ2ׂ5ÞîñàÑd'€ØI›Ê‹ ʧN))Z¾lñäüC™ŠP©]d˜–––î_›NôâXç˜9£LšŠ£*ÃäTòMþöö›þâ§œ¤€©Ÿ8Ñýé¦M* ÜœʃýЗ_}·–l†ƒeX‡|¨Ÿ7÷Ùµõ¯/yRŽ˜`íy0KBê[¾h†uõétpÙü›šzzúULŽ0uŠ•å|—é³ ä³Ó­—Zî÷)覸C‰‚%ò$€UÈE#`hVBL¨ Ã8v­íF¿#g?è:Çvc¼#"¡u R]7E z–ÔÁ&׃Þ\Ÿ-Óäd¸ñPyÒ †Wr¹D4œEw…•(Â5ƒ*ÇPC"¦ã-øØ Ù“¼%ùhzŒZŒÆPÉÙ?/Ñ=£v*×Ч„J|˜òjx,zùµº*NÄ(oŒ >ÔÜ+{€¤¡QH˜ŸÞ>¤ÂX‡Q Š/àÊYåҌʙ®ÉOU¸‡d“¤,¯’ßšš;Ïž¹´'["Ê™„3 Ä*pû¤­Û·UÙíf&D@²‚¾6× @ž8rpÿmEVöÀöŸ™Ç%!I ¦¢Q•º¡®Î@Èr·;Æ@̃Ù1g¸'ø¤56V¾ôj݇αŽS˜Ð˨#0Άûäýß'2¡uT×,œë~nN­/¦‰|4.òÓž®ñ–•—»Ž4Þ ¼é\‘3 ã4´0lƒL¸>…Œë/ž¿¼öíõ+՘ȇ‡Ç±tõ›Sløv|¿‘Z¹‘DQ·¤â4©{· Œ¿|þº#„í‡ ‰ü’õ%iúŒÜ ‰…Ù2!‚8}²µ_Ì3Ý…õ`0Ì0c]> ø0¬ <RhI7<º‹;×ס¿pO@(P!‹KK0Y•Ê N-Arh# šÂÑjI1FŠ K$$\`@¡³0x‹pIÁ[: >yÂQ ž^ük%Þ¦pÇÚ¦šB-} hÜý El“ø•A½À&ð —Й?ˆr8Ó>´Ö)‘Ô<®ehÅé‡&e¡^SzÁÔs½hÉiäC~]pÒ²g]Š9Þ:­¨Ö78W)Ê-‘–ŒI,œ]´äµnƒ2 ÃóÙEÒÄXZv&V”M FâVm¶2£Æ}ªáœOŒ;ª`Èq5óî†B«s¿. Õ öpL’î¬Èc¢o»zùj½Ú±ß­ØÝŽí– hÉ¥€VsÝ Ÿµcßÿ‚…?‰J(8E$Þ0º×ì iU]°YXRZ?³l=ÿÐ1¡uE<³M~ÉÔþat?Û>2³®7‚ÿ 4kQ&À_„óŠÒD8H鉢O!aw½g²øÙ›z̶‡ãÍ.[ãù§Ïÿcõ¸Ú É(:Æq»`ôßþ˜ØU±Z¾a;!ëä®w@í È¢¯»âWíwõ$@¢Fêù.Y`,¶WäÑﻚÍ,Îø †ãíòóHìIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/textitalic.png0000644000076500000240000000221412536324427025417 0ustar philstaff00000000000000‰PNG  IHDR szzôSIDATx^Å–]hUÇÏÌìÎdf?’˜æc?fÍÖE³V$bIª5H„Dl­QŒ…"ê›BßJû >4à‹¾åEA‚Ò>Ø”J}¨(E!Z›T“Í&»kC[²»³³3{w<—9°ƒ„M›vâ—»ì=÷?çãÞ+8Žÿ§à>lüÄG1¦‘,´l ¹î™'¤g>÷ýW^z`Äô»o=­ëŸðà†ÉrkCܽûº•žž.ÈÎ~<ˇ‡$€ˆÇ{CAI‘L ÑÐõL7ˆ"ŠÐcé@ ù[DJ ˆ¹/¾<ÈÏ %§¦^IÉJT±P@0ˆí:;é‡üw®lRjæ íª©Þ;v쥳£‡Æ5@’4c}q~õÂü•Ìûçp&Âî-«'c×Ï@àæ›­Íý0’JéQ›0 ¡§|>Ï;âg|@áÏf2©ÀBäùo¢=ŠEƒòîË9à%›N'5‹ºÀÜX]Ýh ð9C±D,T·lFŽ$€……%ÿS@Œ&õTÄä®—Je«^©9,À-ßR@ùOôìÛ/«Q¥|‡çß .—+ÀO¾ÞDv0­kõ:€eñ©ÛùB'‹{" ‘Œk<üs]¹víF+>×ÀH\4jÖlÛ]ÀX•Š›·0ÿë¾  üGCaí©pW¯V³ÜH ð𯵪ßç ¦S¡ZÍÍ¿CøO±@ýï¿€l"×jÔ~Ü€¥ëíYFãz:Âo?‹ú?(¬,ç ÌÿžD`¤«7É ãíÇÃO_oBcÓ§ŸÜÿxF3LÞ‚ Ü×ÏúÍ¿ËN“]Å¿y£é à íZmL€ˆÓC=‘‰r–EO¯ @~u½f™ÆŸ€ÓÖæ.¸¦¹“±Íæ ”9¸ú@gÏ€Ûü¤ hñ·?ª?~ûéï8U‘B¡uAò#pÛ^@ûÍD}vòý—Cáðd¨;1jîÌϩƘ½üH,3Qz€†‘¢‘™üí,€TŠH`ôÕ&^xóÔgco974|pæèñƒuK‘˜ã¾ÿ¸©á~ulbòðÃÇçž{íä ŽÐIDHˆB‘ÉÛ8O¿øŽžLg>92=¥÷ÅúÕ&(Rµ À¿¾ å5™û  ÛáçÇûÆŒ÷å–WÏ}ýÍÁÍõÅ“¥•… °<þÒ@¨&Ú¡åÎM 8à¥BÑäkLÃlòëu*3PTUêÇ•-ü¥|Û]hT ¨Þ-5(ô"Òôï¹ ~™Ÿ½á8pfyiñul± 8M©Ñ°M³zg G@¢5E¤(wno^®Ü-z8ûõâìe¯"ª7ˆD£ðŸ5M Ä"ìVøwî‡`H1 RF¶îƒ2­«"5oþÛFÀA£Ã£-²éôåÈöðF¶‡æv‡Ñ¿Ù¨Í@¹… IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/textjustify.png0000644000076500000240000000235112536324427025651 0ustar philstaff00000000000000‰PNG  IHDR szzô°IDATx^µ—A‹]5Ç'É}ïMëFð“L¿€~Û…íBŠÒ…Š ¨ y¾º± jw ºpcÖÏP]XA«P´j§:cÛ©éLÛ™wïMŽ!YÂõN©øsroÎ#¹9¿wN"ªÊAí©  ØA)d{ዹrpCT5Or|ñpŒá&#ïut1Ã:áÜü]GiÇÎ|0?²sBïÅ÷ÇÞ+ÎD¢µBÛ*t]`21´}€bßa qŒdU³ŒQf3xëµÓi†Ò’³³€À¥ëphfãä–Kk‚ˆ°lßü¬iò”oײoãLôà}Zì×W:zð!$Ÿ¶ëX™ÂÅ_•‰•ñ ÄYŠÊópüѪ¯Õx‚Â@ ›ÉÂÑ“lq€) €è€6[ú"BRsšö²¨¡ÝþêPí@±c~xv~dkWézÏc+Žeç“ ë¼"äØ7Žèb$Å}:q¨Âþ²g6uÉLJü[k¢ø& Ñ^}e1a‚̉2\¼ê™6–•™py+ô½çÇ ¡ëk„ï®y…þg ³iì¯ s<ÃO‘ÿ>úX£ÔæØ+5„µLe‡ •­ Ã!Îï6©@7Íb–-“¤jÈ¢Íb ìgU ôDUlP^¯v`ðË+Q8¾e€BŽ~tv¾º¿H΄McPа½Óá¬Mï!gÁÉD’Á5Òà…eÛ1Zú>gIØÝ]òÄãS^zyB±¨Ò¶WnÀÞ^‹—¯ö¯4üq× >§è«›B蕉“è¯tË€ ü²© Hß+kÛgÁøíŽ*Ÿ<þ¶ ¼  Úró!Õ3ev¾D8“’–Aý l³ Â(À–D„ºûÅf8묘2b aÙK¿ná`Ë BøÙÇóÕû€ÆæòÚ8ƒ>(ÆÞ+"$(wïuÌf ´>`ERÌÙÒb-BŒ•©pòÔB‡ ¤íÓÆ`€ë[phjP ü~›ø^”k·‘(`cÇá½ÇXß2X#qËz \ÛTfÁeíoJiÕ|uêÅwäÿË¥ eÂ÷ó;ì „Y“ÛÞ0„¾*ÍŒAH ÝHIfôëKŸƒ |úóOæ«!ÀréqÎTÖnîä‰7vURY_ßÖTÊQ¸u¬ðÙÕ)过`¤UG² HUŽ›R‚¹÷u9ŽY0TÐg³Ø+*é·ªý£“ü"¼í,w)Ö^IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/textleft.png0000644000076500000240000000232312536324427025105 0ustar philstaff00000000000000‰PNG  IHDR szzôšIDATx^­—MoE†ßêî¯ Žø„¿—ü ÈÉœ@â­6A á2'àÀ…\€Ü‡H(HK‚B@A `G‰½ŽcïÌt½5-µÔš™UJzÝížšîÚ­g«fHD°ÈNŸ™€ 5B¿ âxå˱`±Aˆ‡|Á3}~ë2L¾ºriü>8${îâ‡ãÕéÀ xÏ`|ÃxjÅÁ{sDa´„ªD€ºf½¹, ª†õæ²t0f~ :Š´2F0gß9€A2uv×7€•‘ ‡[\ÿ‹@D˜UŒ«ˆÎ,a½õ-œÑ9{§C°?Ü®Ñ4 ÏŒ_ÂzU×-×þ–¦ Ï3%¥ÿ{ò/Ù\²ëƒ)¸ ¹¸¹‰rI(‚Ê8:õI pPTUql’Àª Î<€ ø¹ƒvŠ2]ßFϧæ4Çeæ›"ìHAd~´>^½(hšËe‡Yíõ\ç(¬I»# Ô ` Á{¥Ò)d'³&äÚ)žçé àÔz€ðøDÝ´…¨»h>kXkuh«`Y’ú\ଭMÀÇ]ÁAHFãTUßw€ããJï¼¹ÁaÎXY.ð÷ø¶DßÙ#p#(áöŽ ž±ú}cy0NlíÖÚ[“íè€ló˜)ø.óÉ›—‚?ÑÍÿÄ ~á½TùPF2ƒP›6TÂëb"s%ëú<Áµ…?¿4Ï;*¡Ž™¾áBg%üü“ñ³Ó#Ö…Âj{ÕN§»³ÄÊ' –JÂáÃË£Ô×Ò.È"(œ…µ ™aˆ°2"¼úæ.tAˆªæ@±ÑÅÀÊ’ãî=hU#H˜ ˆ‚lMïµoî `yd±yËw÷£b~M‚ÿp¸õÆÚy…ðÉëÀp :È ´ÝªÊ« U‚±Šò©5Gë‡PÍ,®†Ñúo@±#¤àÔŸŽW™ÙÌÃ9«0¢ "­ÎÍG躵Ԏs‚¶r"RxÏ•/¿>áØ’‘aò*á}KûÖ¾®þ»[Ø3îˆfV°}€¹þï=|gJiÛóî‘$N0 áo!Ò¬ý_)¸¬c_ b5ìhÇ*mÁOÐŽ› :¯‚‹ÛqÞTÂ4WKãé—&Oŧ.}6^­ÀÀ+X„ªb}é¨AáH‹•µ±:2+/c%R0^éµöäȇ>î μÖób¢î"úúàéÖRL×öOŒn)ÌØ;TP¸Ýi{°Ý ƒvþH?P ó€Ì@%|ñ•Évž‚å&}êz1ÉÞŒ²·àüå$Aé¢lþb’*ªÎ*_ö0šÌdtæ0qÚ4uœ”Êoôk†Oöªz¯ºˆ#1IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/textright.png0000644000076500000240000000257612536324427025302 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<IDATXí—ËU‡¿snUÏ0 #OqI|`ݸ‘…îŒñ‘Ø‘øˆ… ¨ ¦e£ DcÀ…1Ýø'˜1.|"Fã‹A@‰À »ªî=.ªjzª»XÉÉ­ª¾Ýý«ßùêœ{ÅÌèulÚÒ@ŠKé2uêÇll´Þû‡™°iscðx§y]î[1Ußš­?Ð.ààÞ7woüôçÀ†åÙ³b¾;#‹ªpð¸²nIF9¾>bܳ b§|~8áÞ•J9¾ÿK¸ïvH3øêÀúeP«)‡NÀÝ‹=Š0wHyõ¥ÆøØh}é 7vml&Š÷È)ª¹à$ „ˆ#G !|ÒÔS‹#ZIÊà@Ìå¦g`–ãÂdÊÐ`L+5úkB+ÙðZåH›Íí HË­íÜ*SR•‚6Ø´ˆ¨1P+ƨø|Šd@ $Ř•"ac£uÛ´¥Q­7¦;põÏsÆà‘i÷ªÝ¨zêPáÈÕ±ÂéOï0¾Üºc÷ú•CB08tÌö8§üzJÎg{$cýrADùõ”pÇ¢ŒZñÃß°fi@Q7F–xœ*CƒÊËÛª¸*À¾xëíúú “žZì¸Üò`F_-€$õDNɲ€sJC³è‹f†àœà½áœÐleÌŒpÊLmö»"¯tHv0T¤Àf¤£=\ º¾"ú‹±VĨS€%E´€f1¶JPú" Ø=6Zß3S€±x´ 6í¡T¼‚ÖÉß¾¸§¾á–<¯?3F– ©÷üvRX·B ~‡5Ë¡Ùô>¥l¸Mh¶?ý ko¢Høñ¬Ä5å—qX5?P«)*íÛ÷V2 ßìÛWß0yѰ`¨ST ŸA’e¨*‘SB0âZ^&/]J˜;TãrÓÀÀEx‘€Ašæ"²$0wHyö…„÷oÞ3eåÔ»ÿØ•ëéi¸Þ„¶ër8 <86Z·éL¯~S°õ·AØWêJ…È µÚ l–à,WÅ]UvÐñ,ð@É‘ö#\„W¨‚°—€Oö¿S_=y9ðçiáÎ%B’ŽžV,0T„¿Î +æC濟2îv´Z)Ç&+æ{â(bV¿ðÌ öðþ»õÕi©CÒÔˆ¢Ü, øœ‘¦H>' 8U è«ÁÓÏߘ€r n´\s \ûK-¹ ¤¯ B-Ê4ŒmÀC]ª!]Zq××°S/˜î€ñÙ‡ûëk[-81·-‚VbüsAX:¼œ˜0–/PÌŒñsÂðP ŠãçáÖù`Gÿ ,›'8œ3¶>÷zÇn¨¥fTÃøìƒ÷v¯KCDPÒ,;½—ª`NÁ§‚¹‘S’4Ÿ;Ð/lyªw;Η`y þRн ­hÇq©ßh;Î*Úñ®™kÂÍ«b©è ×ê@ùœÞlnüø@}ã‰3Æ’yy®Ï\TÎ6Dá䄱l’f³—”…ƒ`Á8}QX4Ç„Î7ÏQ8=),ÌÙ9yÎX|“à"O<ÙacòÑúFï 3ÉOrŠUsý>@J€j>W„W¿ H³\€ùÄqg;:¤ StÚ˜t^ ^ÇÆ¤ª2Æ¥"å*6&¾ÔrÓ¶Êw…‹ö]³´oÏ;ˆp!%V¢¼]ÿà?´>3îYJÎIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/textunder.png0000644000076500000240000000223712536324427025274 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<1IDATXÃÅ—mLSWÇ+êâfÆ2c¶lݦË&Q7£!™šM S–l:'CŒsY6@^MF0¾G—½2¬Ê‡QQ7@“¡-`G¡/XyGTÓ„%$ÿî5µ–ÒÞûÁ¿Ü{Ï9Ï9¿óœs{OD¤x–<ñµqÏLð=h(¹^ˆu|¿Ò+> ¨…ú2¯¸2¡œëÃ&Øò[±¾¯û!SÛîtWZ® ³Ãu\µ:\bßsÇ^ñês×lC\o¶»F¸?s9×s;¿Ø”žc;œ_Ù£kqº›ˆL"Ë"ë‘Ñ_!øMf~‹¿ ˆñ5mNwÇ}¢L„Ÿ¹Üo<:R‚Xhì#ª»ETßKt0¯²å‰`¿uãY´ë‘0p,—ûÝ>:j4aæ5]ãé‡Ïu li Œã;]D| húê : &A }X¦€KPÕeè!J• Ð*WÀ€ xµH‡‚h¾/S 3/o&ªî$J‘ `»'S@‡™_¶! X†íƒ°Þ•)p °ÔJTÑ*MÀ<$Sà f~Á„,`’%48e üÓNt¶¨Ët xúA™—[ˆŠþ%ºˆeH” p}@¦@)R_p3Ñwjûe üu“èD-Ñitñ­Ý2þÆhôȂ߂Ën¡,:ÀÁ•q©9¶ò®‘QÜWIÈ=^åpij…:¢ì}ŸˆNƒpaÝÓç†`¶ì)Ô÷åaö9ZHhn>%( þé’mˆãýIOÖIèêmG,šFFÇ2ä‰Ö§Œ}Û×M·ŽÛUØ·WJ:KÌBêOá-Ðàm8†,@ʪŠß«P(¦zÂD&dÅŒIîÅ ý| øPúD…B1…; ÿäëÐÈ„Ì]ûÏNß :e!:Y7èNþ¡ôvdB¶YŸuœÁÀš¨Ù¦í(/¬t3¼\v½Î}% > <ž_¤ÚüND\FvÒÑ’î"ËðÿñëX‚cÚ¥ndEÛû@£µÁÏÌÞ3ÆO¿:Ò„˜8¡Ÿ‰$ü >¼fWÀk¬NN‰ˆSWnÚy¢3#¯ºÿçòöáÜêÞ‡ ßsYLÒ/­ÆìÜ?/ü³÷óxLg‰I„Á§ ƒsð«à-ð.˜‚EsßÿøË%«¶f-[“R°ü‹ôóËצ/û<õðèmjå¼¥QhÞœþ—‰i¾²à-"4œùQÌŽ}ª »mXÛ˜u ÒÙʬXŸÑ6b›ñöêfŽWÅg6aXxùÊ‚/NW(ŠB:‡¥#öÁ6h¾dŒçB­€Î>þ¬ïíu|õ(ã«apœ`žé´ Áb°ÄƒÅB9ïü’7ád¯!P‚7Á0׃9‚è ,>;×ðÃMUTÀIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/zoomin.png0000644000076500000240000000324012536324427024560 0ustar philstaff00000000000000‰PNG  IHDR szzôgIDATXÃÅW P•UþüïáV„Xn( ¨”Êfˆ b¨¸ƒK²¨¥ ¨áhZ*Æ–’(‹ È"È"©‘ 3À ˆ ˆ8¸å0ÓÔ¸ ££ït>º3™=,ëÍ|s8ç|çÜsÏ]þ‹DDÒÿ‰ç;%IÁËpdx2>dlÒSØáWü«ˆÇ0-Y²$1!!á,ÿÚ[[[ïvtt¨!¡Ã?x‚¯øÇðO‹aåààœ””TÙÒÒrAǧàà` è–Ða‡<ð‡ø.@ >ÅÍÍ-¶¸¸¸­¹¹™RRRè=ŸUW­æ/-å¼6ûŽÃÐa‡<ð‡ø¾ñ§õ¶³³ ),,lkhh !¡Ó¯9¥ï•¦ç—?î“ü¯&n-J‚„;üà8Ä÷e_ô.@fxÄÆÆV555QLܾN›U[ó¤•)1C6Ü;ó@CüÆ’k9ág:ŽBB‡~ðÀGâ‘ù4.@ÌÞÔÕÕõPUUÕý’’ZöôAæ^iSEجŒ[Ñ©wO¼».Ž|wd$tØá|Ä!yO“.ô Í˜^Q__O{â⯎\—’üúŽªH«´ÎÉ-]þE}Ù'²–|ân$tØá|Ä!yy5-@ÅX••u½ººš#Π½s3;bBk¥7ÿLÍè¶Ë×Èe?$tØá|Ä!yy5- ?cKiié½òòrZ¸-%{RT]ôöŠ;’éïAök hÚö²ÙIÝ:ìðƒ>â<ȇ¼š0€~úôiuee% :rÐ:¾5:úüÃ\É)ŸTËIÍu2ê¢1ŸQ·„;üà8Ä#ò!¯¦ dlåÖÝ«««#Ϙo2,Ú¿ ­}œ.y\ É—I«ï÷tØÙøˆC<ò òö¥룢¢nbÅæžúvè®æç¢»#ÎSZâEªÉl£iù}’|8€%tØá|Ä!y¯/Àðð÷÷ÿž•UV_™°«&zxâOÁ6GÕ!³ó¨tc5K‹ÚIòä–Ða‡<ð‡xäwAÿ¾œ‚·­­­³’““»)¶°²H ¿ºU:ðp£I*%ÏÉ£Ji/Ç2` vøÁqˆGäëË)À=ðÃ×ËË«žïuª;áv`ö¹$)ò‡O‡'? µÎR§»£³ Ò9Hè°Ãøˆóôôl@‘O»/7!–ÁÆØØ8Ž[x½¬¬Œ/6ÿ˜|¦©`RâµH´Ùúȃ0‡ÂÇÐa‡ÿBÓÅÛàûùùuÕpžŒ‘ß„½¾º gSSÓ ooïë¹¹¹téÒ%jhikÍ©l- (¸œh%:ìðƒÇü.wwwòññ¹£««›e6Lë0,}ýb/è3\ ØÛÛ7p7ºøX>4ííítãÆn vø™×ÈüZ Î:m˜7áQº›ÎÓÅå’¿+âYïQ„#ÀÐаÀÌ̬ÖÖÖö–££ã}'''5$tØá±†gž³jÆøG‘3•”°@E™î:O½Í察WÄ_½ˆTb9 sĽދe7c?#бMl¶¹ŒÑ “aý™“eõ¶©JÚýŽ’.TQ–‡Î“2–cÖ³öÄóÞ„²Ø˜ØÍCÅ xhŒ# |Cp1˜é)N|ÄEÛ(i£’’œU”ÍEøXÈb2Z"¿BÓW±¶ènËWzb‰†9XØôÄßnVúм@3Yýù4%í¥ê."g±Î“•–r¦øLË¿¢Ñ«åŽôc¼"Â̇‹ã6ŠaÈ0ð²¬(2—Õ!¶JŠž­¢C.*Ê]ªó”——Ô†²» ׃ëöZñêy‹1™aΰè_‹ÁŠâ Yf§¤Ø9*JuUQþ2õ K9[!kR€–˜ý@1kc1¨%c*cc:c†89=€¾ÁR_qb“¥¬Ÿ®¤}N*J[¤CG¹-¼ ‡iZ€R¬ÿÆñþ·á¿£Ù 'q"zà$6]QºÙJVGØÿVÄzke9öJwWÿƒpü>æ"Nn™"«—™jãÕì%NP¿—½ÓE¡6 ÿQ©â;a"&¤z™›Ð\Ø'2ÞdŒ!Žì6á C#¡­! "&1 çþ Ñû‚þAÉnIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/mac/zoomout.png0000644000076500000240000000317612536324427024771 0ustar philstaff00000000000000‰PNG  IHDR szzôEIDATXÃÅWyPÕUþ=x‹[‘ˤ ¨!æ‚!²H¡Ršâ@¸Å&% ¥è((5(bF¬ï¹ ‚Ê¢ Ãj! 0ˆ!»:˜Ø`ŽÓ-Ȩ…ït¾ß\Œ™Ê–õf¾¹œs¾sîw×ßE""éÿÄヒ¤`Lf¸1|¢õ~ÄÿªÑñ$ÆÒåË—HKK;Ï¿ÎŽŽŽŸ»»»õhaÃ8x‚¯øÇøgİsuuJOO¯ikkëaЙ3g(**ŠBCCå6üˆƒ>òÿÄDç³<==µÅÅÅW[[[)33“Vù^·[¸¢rÂâ÷NŽðŠ>Š6üˆƒ>ò?Xo''§˜¢¢¢«{ÇyYP™‰OB–䟡•Öä$Këòå–mø|ä!0ûb %Ã[«ÕÖ677SªnχÀÈiufª´áô'RÄ…X)º%Jн²CnaÃÏqðÀGòQõ  Foåááq¸¶¶önII ½½eç9éÝìdikõα©]1+‹ÐE]¸wdó¯haÃ8xà#ù¨ƒz†ÌB¿cÆÂ¸¸¸ê††JÒí¿>6äð!¹xü­Êîët-ú¼ÔÊélø—E2yÈGÔC]C¨krssoÔÕÕÑ–ø´ Lï´´›»Ãªï§Ÿ¿EU•·¨º¢›¾ìlø|ä!uPu 0”ñAiiiOUU½¹=3k¼©üÇÃ’UY.ÙE.:šã›B>)r ~Äeó‘‡|ÔA=Ô5TÀ0F\yy¹¾¦¦†&‡8ˆ–Ôpï„ä~’Ô+›ht`+™®k£Iï·Ë-lø—yÌGòQõP×PÑ>>¨#êæ&Ä28XXXèx oTVVRSKëwÍ…–{¿Ù-/‡®g«´ï~¸Ü² ?â—›[nƒÜknn~‘ë0^4ø&ð-0a,¶²²:æççw#??ŸÚÛÛ©±íjÇñšŽS¡…WØì¿6üˆƒÇü^///ò÷÷ÿÉÄÄ$×zœÑQÚAEIn*J_¬¦š£¢äy*ÊX¢¦Ë4}«m•Ùâ3­|$Ä WËï32„ñŒè#A· 3†¹€/‹( ³QêcU”2_M™j*X¡yÈËKjC%‹0°scѹɀå˜"^=/3f0l3`­í(Eq¸­R¿ÓIEÚjÊb'Whôþ¶Ê˜¥Ô¯šjŒW³¯8ACžö8 ¡Œ ÃYâ;1E Hý47¡ðOgLcXŠ™/Žì0ƒ6áCsaOS=^#1¬ÿþ£¿k\nq. IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/0000755000076500000240000000000012536324427022575 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/editcopy.png0000644000076500000240000000245512536324427025131 0ustar philstaff00000000000000‰PNG  IHDRàw=øôIDATx^¥–Kl\WÆçÜÇxfüšÄ¯Gj"îûòÃ(LfBl*h€Òá£åCüòûŸ=ûƒgç/ "üê,׬Mä?'V66·ÄŠHucU^ùñ ¹vñ[²6û’ÔVßêÒk27ý¢´[ÛR½ý‘¬ÝxUÞ{錼ñÔŸ4€8ŒK;€€D 0Ùuܪ²¶²H% å¡ï\¢2ü ÿxçw´Ûqæb{»ÁÖÖC£'‘Þ<ðØ(äI äF ƒÀÅ`šà¢lA§½Guc8ò™SŒÝÿMV?z›­ZƒÔ´Ö\¿ÀÏ~rŽÙÿBœFXk”RM`»\£;±¾A+ÿÎÕ«oòÞ»¢^ß ŠÍ¹‹³Žþ2_9ý9¾öÕ“ŒŽ "b°N >9H ¨<G†3žat¸L­z‹Íõ:Þ‘£ŽÞ‡³BÅ$i‚Ö02<9 {Š”úÓWô5àí°`[`wA—@pm|àØØ•¾S¤VQ(ô¢} ¬uXk3Î9@UÈîpP@Y¸]¨ˆ!ð-} è^ ˜È"Ö’$1Ƭ±Xk<ß`] ¨ƒ/Z¶ØÆ€ÎER H„ Ì">¢È Ž£˜4M»Ë=´&Þ«ÓìXÐä }ÐØ-p»@pÝȰ]Q³(Ä9ÄH¶8Š"€,¢$IH“q È°û:0`¶»±(Ì:Ø6þ¡¬L‚¤AP LU’9è)±"ˆ"WÀ"Š8NñýüЊb¹ŸÊÐzûð´Vy.9€¹Î?^?`ÉH—»âá)…ö4…b™ÞÁŠw¦çHÔÀÖYš_fr¦y r;²É,àç.zº‘Äs Êà•ºQ‰A« ìatä8e•мù!Õ’¶ëL~¸6SÛµ3ÆW~4}P·á´&A…y7K ´6HÜdåýßâ6¼~mùò¥ö»·6¢é…õxh-iïë ÒÊOФà}`J w¡8„§ìÔ;Íç/]¦Õ±¿¯ïÙ täà‡ˆƒf‚1ˆ!µÅ~ Þjq3£tîJ@{¬Ç­=Áqæ§®Ôçÿú‡ÆîíYsþ¢{n©Æ°Ôóâ,wM.†üæ×çÏö ŸX`aê_LÜÜäýfÂPÏŠû”ømQJU€ÐÙâÿ“OÂ0ì$õr•%IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/editcut.png0000644000076500000240000000355012536324427024747 0ustar philstaff00000000000000‰PNG  IHDR szzô/IDATXÃÍ— TTeÇŸ€ˆ  (›l² 3,n ÀèĨ„l¹ df¹æZ–)‰ZJ§R:™Qƒê ŒÀ@£CÀ`%!«1 ÛÌ»Ý7=;í‚É©wÎï çûî{÷~÷û¾ÿ½@ü—LÈÈÝÝéæævÜÕÕ•ëââòÖüùóý ‚ÐFÔêàß>èØ+$$äVaA~}]­übfæÀöíÛÚ™Lf¶½½ý4ÑEÔ‰©z0€÷D¥é2hÝÐèðý.€þ¨­z{{ßÑÖÖ@3ƒ) Ó_Í+¡†KÀ†¼J€ðf·q$Ä277¿€fÎÈô) €Íf.áÀK`*LLLĦ:…k8†£PE@EÎf…Í7hÆAž˜ŠÕ?µatèÆ"²˜©°´´ãð«®,ûÚÖ\S –¶¶¶Í8…OÅþ'7\O†j]èªÝ ^žKî£Ã+xËZ Ÿ"oòÉyóæµ¢éVÄü±àää~d›ÑH~÷„Ðq»˜ÌÏùh¤@pNÞýõvȈ³TšššÞ@ÓÓ ,È:Ô,눵µ5 ‡f<ìÝÝëõ¢£tîÛ>ƒì®ZwëâTtU®ƒÊ Ž?$A»Èœpü|XXXiÝ7U²ñ±²ï~—ÂÎÎXÔý6CVr|æÜÈ'`¬Œ#e& ,ÕYÅbÀ,uáü–¿Êå844´´®¶bhddT Ë Iü¥·®M‚&²È“FFF+"gvgá,¡)Ó};#d8÷Ú8P{xxèRŽQ¼ÊnT— õ÷÷Ã/ À½n)ùÚ+‘rŸÅsîêëëg¡}ÄdŽ„öB7«¸·^š©„"t~kòÛ ølÛ8jAá¬Y³‚ðÊX¿6¬©B˜?ÔÑÑèê¸׋.(|—ºÈØN†ÔM:‹l£.Úd˜Fís°¿I‘T£££*zoç’(É­áa«ÚE×#R©(Z¥­ªßI¹wø0ËÉD:×XK€ßˆE‘ù´ŒOêÑ066öåp8ƒƒƒ b .ó’”™™™PYY õõõ*n6Ô@î¥ÄqgG›NW§'kñÝDú¬x"&¬œ¸ZGGÇ¿ª¼:ÞÓÓ\.bbb€ÏçCrr2r òÉ7Êíç™6kjjRRý*uºŠN{QZH•ä¾éܸ±´´4UŠ===AOOÚÚÚ  à*¼¿oå¹ÍÚ _{¡*&aÐzRNÍHþ®->· RŸÌ»œéé阘gÏž9Ù9ÐÜܬ¢³½‰ Zé÷nU}ÊmhÁ™øª±£ÓOW¯\ܘ’ÐÓym™„–0–£ ‚ÓÚÎ= ¼Ï“áØ—'ŽîWfeœQ6ÔWáÞ×ø¦~¸'íÄ»žŒŸ³œÐʱÛa ãÝHùɃKlÈõ‘ƒÈ:ÓfÿMNïP'û.YÀÝrÌÀß×M†2Ü€pmîܹÕ!«¼ú+Š>!E"Ptuþ_^½0ŠŠ—Æ`0Üþ1 ¸Ú?_qJü¢Y9“„âÙPƒú»Y }JÈËÑ„mØÝ¶åîÕ<ÒRwÛЦ''ä æ‰<ýíBùÛõ¯#OÝúe"•h“ñXYqû¼¼â“ítuu`;ëVBåßò;cc¨ú±ÝÝûdæeÏŸ­]»?QssÕÚ;–©ïþ×'úù#4ÉéoÊsòâ‹/ÈêÕߑڇ—É=Õ5²pѽòT’ÄØ\ޏ$’c—²†Ÿ-Šîx”™ºŒB¥ŒaNe%ÇŽÕóQË1"'èm!àoÃç ‚$AÀôƒé%>6@ÿ…N¼”Àâ3\‹åJ)˜è2(æUä1šÐŒŒØØ¶…BQ^âÂñI` RA”"f ¯t€¼ü©8ŽPñuEpn¹$ ,[1¥ÈÇÝ‹K‰]LðRh­Èɱ9Ñìd즀h ÄC)CÒ‹ÓÜô^:ZN.!Úq. äe;PŽÆïj´íðk@°-…ßg¥s ËÑ€ÛIÑØ–¤Ï@RãÄc)¯ˆØ8°²@+l[a”Òyã ¯mel,FWë¿ ¯@iCaAûkîdÁ¯`ëù¡å¥“‰{>‚¡é\<À|Öhõ)•£‰´pðè8oþ §:ƒÌÆ2.®æ–^àÕ×À‚E_Äv…à$Ÿ[€QA|9Óð» ™%`[ÖÄÏÈ 8xñQúG‡iè*ä£ÖÉ$úÀ‡MK‚tvžFA<\;…cJ/¸¹é˜¬æÚ€#`\ä‰u3xý™[¸-ç:ÐWàyCssÀL€Èr°µžÊþ¢0ÜWÌ´²¢Ñ!ζõ0»b=nâr@– "™ÊiŠd"d  ”zpëÝÖ”ÙŸã¹ý?a¸ç8E%³(»}-ÑûVòæð\È› öàhŒÁ¤ ƘÌÍ ¹\èîmÿ;×W×R²½‘žž$ížCc/D»Á燻>7üóOx¾YÌ)/£õbŒ`Ä i™˜ "ïÆÞ|¾ówË+ Ù…R1†ò|ðÕÂ8Ÿá¦w–óñogàí'ˆE™ÿåJÄKaR)D$ãHö¥Vd5ùK7ÐwxÏxëÀq_ÚL͉í¬kßGÕÇÏÒsh%GëÒÐpˆmO­àµ_=ÃÒêù$“ ÊEÙA,w à`i4 ²š÷Pö” G÷Føó¿àƒ¡%ÇAƒ·æNHáØ¥å%Ô¥/PPˆƒåLBÛyXnˆähÜt·½ßó<¿ß{¯€è¿„è ÿS‡kÛàcÛàTã i†ã$Ƀ¬üôFL*‰¾!¾úä s™ÚKmMüæšy;Xv©B*+QJcJ”aqW+%‘ÙÝf¯+5?/däºCœŒ¹¤ÑDôO\¦ö 4,Ý£ ÅßWºÍF¹f.€…; ž8Í|‹•uáò¼J{ï„Û$²³¯™‡3—G4ýLRI,·Ìn k hZ£^6€Ž ç y’˜7àÅQ+¯W¹ÍZsÏ@ì›Ùg˜›ëg¡ôǃ¢^Ô¶4ÌÎc€žÞÀ@’8ÐçæTÃ0÷ƒId9½úz•ÝŒø»zSRºöµÈrÍ?ÙšQn‘…~”x€=ÐÍÐvåûV ¹ßÖ=pæ§Mm‘&s?*2‹÷BiM2w¢ÒÜ9¼„Dd,ÙŽPk4OÉÆþ‘À z¯Eï YØ.˜·HÌ6Vç²=Àœ4’!!ËÅÀ°yÌ ÉŒ f’\|š²njЦ²>fî©u‡6Z ;ée©Ni (µÕ 0Ø– ,I9På17¡2Dž¡L?R\½«æne8I„Ïg.F‘Œs8°8§Na7uMX¾uƒj°ïÏ,Ýô¢Ö6„þÒ[÷$ é°rûÙ—ÝŒ¾ÖúgÍÌNÚ¦zu){.|¬8V\½#Ÿþ¼©ˆ]< P‘´G¨1‡ÙˆßXZ-öˆ¼Ë5‰Ü¢ÃßIpÖhó¥÷3ŸdðªYÏ^.[}á™ÿ ‹|SÅ9]ó¼†ÎA>äKXVZÆr¦þ¢ÏÂõOwç=ª]wf똑¥ÀHæÆ†$¦³Ž|³²ÎÅoUŸßĵD³W›sÐ%¥<Ö1u¿Ó ƒÅzrô­»¸)% Üì¸À¢ •m:öHrJ´'~"ºC»³a¸ãüi‡ ^f±Ùœ `âJ`4ó`M;<ù½‘5(*ô-½õæêÅÉ¿¶ <ç$0xìì;¬e/¨Ò¢ÿH¯¤ˆ”“Ï¢wÒCQÐÿЄ e'í!û„ ‰–*›ªz¾Õèq>»õéBeݪ3$Ï º¯§ ì1mq‰`˜™•…‰¾4°ò¿âšÿ$–/¹Ÿ„ Ä~XgŽP´‰¦Þ¨.á%›?ªM`òÓX,uAµ¶±ýEÞ­Þ‰ŽšJ•Á½ßâ迬lÁ£ÚT*ÆlLÝL;i©»k<‰L$&HžÖõf„Qáýœ/bßr®—¾)Øœíâà÷`û)eÝVfàÄ ¾C×îWíP•‡ï¶ÔWÄ·‚$!7w’ÞÏ<_Z£ %ì”i´Òiõk5FÒc¶·ÑtZËÙ±ýàû„âm)éÊÙ¶ò#W€œ"`Ý®sUZ†¶9¼7Hu}èÔèØs u„…“ô^2פ“ÄÎ_ZêÊذSÌÂ^Ï/4ãèûÞR+‘)*òn…wŸØònýFÊU*¨}„„zM}/æ)_q¦´:ù"B¯g2Sîl×ñ´Äš›ûsrfžø07…4Ø¿[$ÑŠŠÂ;@eíg1ù÷ïÛtÇ{?~dº kÛjÙÍ'‰ ñÙ¥ÕQlÓù|[?†s2‡›ÛZ¶-»åÀùú W3¢“@ÂÁgYÙ¹?”u1ë=ï¡o¥xÕ·"Ñ×õ 5Ãq mæ.MÞ—ÿDQ ¬âäŒcGErœ/`8ƒ938äŽ_ù8·$tL&®±š´øá¡³¥5Kì–(Á¦úŽ^áhß°7·ìR] 죻¯ÓsæI§‚ôðUàÒ­† ¼!¡ÑC_,ãO²ËÑk³*ýâªwé;™ß·y× ë=<ƒS®eå•Ô~Áª¶Þ“%ÉÇD3É›~ ›Ò—ÄÜ{,Ü|9`ùáÛ¡Ñ«+®¨˯¨£Î<)vßlç—o`1]Æ#Ÿï¾âÅ–$M™47Y‘Pv7 ŒÜI$L¦†“=)ÐÛèfKŒúÙÒ9À‚ð"u¯ÁrÆàõ‰ëŠI¾Éª•I¼p ,äÀPVlL dƒ¼ ’é{=]€Nc] `ˆ¥~6ÐVVÉpN¯E>|bˆÜÆ#ª,<¾¤*<˜º„ûfs‰ù”[ØG“©ÆÔ8&Æ÷qßP_ ï «`ä Ì¥EæNwÒ÷µª–-Ùq5&]SëM’ñô–¤#ü›’’p~:°|/°¾ØT$üøo¥ì+¨íÃ^Ì^ð]Æä¼ã«Zñ ä '¡êÈÄ’ªˆu$ cÕ$E¿m"Ùl ôt{È*¶TÕ„ÄîQ{,ˆ{¹.O³½„’gP ^kLkFÑ*E,í#¿ÇðKþކ1¿øˆÐz^rϘ ±i75óéµS`I™­Y±4±bå`W)°­@U3Æ#ôA_Ó‰W;ôZ¬Ó®ûN6Ú±µ»J4‰ù´$‘}TcUšú™‘µçí:òÄÔ²ß -gmêÒßb¼¸(´˜Xð ÿÔŠØ-šZ/%½åA+úi¿ ðHa9@Ê1 ûôZYè†Gñ—ôóyv9áEŒc<ßÈôß2O>©Lšq|ãȤOº9ÏküJ 0«u§é›»e陹ȹÁ¶ùEä\Wn¦Ño;ÊnËw—$@ž ¬,ö”iûËžŽpö¿ß¡·I ƒ­!< s¢3ñYÿî^!)×wýH¶S1ZŸEÝBh·ê¸›×¸ V–Ë€+ù£—â”Úxœï…ð¤ëz붔˄rÛ ]ý-ƒ°ÁÖòÊÕÏ)·p–í+>oßc_—‰ÑõùUkâ°hÚ² ûÍd„‘XùžtøqW+¡ú0ÂX°àÜ®\`N(;Ûp\T]ëBRb»UJÉfmBéu*+É-»S;Q®¬îÔoD)Ä3‰!D놫U¸d¼XΤã8iïÔš;ùßo¡Ý:“?»mëعŸ¾r¦M¼SŽ‹UX}Õ“Öž”n);<“’眺Q#J~’‡•„ƒXu â†÷©<æBñe6({`çQõ3G/eµx6˜0$>¨K` f+ëgz$•°g‡O¡ÿ>”,’3AòµY'žŒ$y»nð`$1–hߨ Ehîô¼²»…* ÿ0/r‹ZTMHÜ–ø¢nâ„rŠÙÜlvLÂ’OåxyÓ³öFòVpìF ´R»•nޏ<¬ˆ6‘ »ÃÃ?YUþ pú*÷ÄÒ­DßW^H\H ïÇŠÝí¾˜Á¥1—ÍLU¢8fk êÉÛwTÈË ÖŠÙ¿¼r§ &°óPéMMy%É£¶>É…~/œ(¢Dq\AœíÅl¶e\£ÑìܵÜl™—¸R³N>î=dÂQ¶Ý<Åì} `¼9qE·J*4µÎ²÷ºZ—‹#êLt$š7k_ ÷1Ñ*íWyîk&&ÑFl°¿C›&žjµê–‹DÒ’xï%Iþû¯·ÿŒÞ&ÐþÆm_Qª–$IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/exportpdf.png0000644000076500000240000000204312536324427025315 0ustar philstaff00000000000000‰PNG  IHDRàw=øsBIT|dˆtEXtSoftwarewww.inkscape.org›î<µIDATHǵ–ML\UÇo¾‡¦ƒ ´` %ND V£M´5RÆ`ýXƒ,HŒ1vá®nMw.ºkº¨Ä˜6³nXØ&e#¦¸€¨i-¥ª|ÚóÁ›÷î½Çņ@‰ÜÅ{÷Þ—{~÷œÿ9÷>KDØËæc[`­óâ§çûö§ö}]D˜}ðt²”Ý™ñK‰ÊWß8_,Ú…¦?<3^8Ð8óÍço·ß™Î’»:ÅËwßÕNiÿ„ºW;Ÿª ûþã{àx „ÿœ^áîÌ Ë¿Þ¤yôÚ®¿Y/ÐØÆhM<Jýÿ­ÑÚ [i°¹ÅZZxwlŒâì,.P×ÙIñchÛæçîn^ÏdðG£ä''¹ÑÓƒˆ µAk½&Ì“sCCŒ>Ík—/S˜šb¤·—x[‡ûûé룴´Tv@0F{Ùaš6uuñÆà ÷.^¬Ì§§ ××Ðyö,‡Nª„H)Rzë4Ý΃==ìäIé4õGòèÖ-êŽa¤¯cÛž}‘ @‚;‘›Ë1ýze¼8ÓJ.WD‹)¼oÆD Z{BƒÄX‚r J)„Ѐ ;º}sœÚæ£ãñY‚ƒ1¥4Fk”Ö(W1ÿh•Ûsµ©zü=C$ÆuÕÖ•,åbÑÚ¥&¥9)¼”®ã‡¹úÓ5Dà˯¾àùŽvÇÁ))š~Æ ‡53óﮫp]UUhÍ™`ŒxçŠ1Øv‰¹¹yîMÜàáòC ù<ŽãP*•°íZG+áõîö…&Æ`´ñÊ^lÛ.§]9[ìUòù<¶]¶mlÛÆèpy­T<ØxKÖ»V4ìC¯ÔµÑ ·µòV×›cˆÅbd³+ã««6Ú¤Ö+ÙuQ®ªöÀ², °:>ø®tô¯ÁýM©D! 4,amnOíàÔÔÑéØJ!«"Ä"•FSµ%ä«òÞðgÆ| ¥ïY|á@€0éoéì¾±³µ¶ÞÔÖsÊó•t½Ú“­µÇêÏD,S²¸ÖÛ<ø‰«~† ”Ús?¹s^­´~.;T½í<ª‚ôúc© @b:¡™9ûPÝêáAÀŠÌ÷=/sòP¤€$`.ÒÝÆÙIпN¼û\‡Ýz¡ƒë ÀàÑhCCOYYÙæÂå+¬'}€v`Ž¢|\.ä¶Móé´œm µµŽŽŽ!ììeÍ"PH@¡a3Ä¥®‹€D9µÐty$‹>⨠ ÔÍVI–_6…Ò’™(ÐЬÃò(€¼EB#D¶ËùüÛEÒY¼*øD”cQZ[‘•̘”‘ôˈ‚$ FÎ&•Ë„,Ç"Gw¯™ËB~I'· _%'ÙÕ³(*‰ÂÐî€q$‹Œ@Ε¥BêX TS®È¾`”£«H"ðAŽë8ÇêêFé!0ÐL-Øxl-Œ1ûa‚Ñ‘÷þ³Á¯ó?7™Ñƒ.yh@ĪŒ@£’ ¤–Œ¿¸Í›Ñqèõò·©5&à ðXÔq8@cP°ÄÈÀc†î;ã“rab‘wZ0LËͰ·Aÿ*ºšÅµä7ç·ùcÃ(0Ì¿ö«Ë]zA?™=-Dú½æü~€ÂýûÆ“‚2,ÌIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/fileopen.png0000644000076500000240000000317612536324427025113 0ustar philstaff00000000000000‰PNG  IHDRàw=øEIDATH‰•{l•wÇ?¿sÞsëåœ^à@i»²^(åEcƒÉÇ`[48cf"ScD75&ÆfH4&j6]0dqÈ(Ä®`iY¡á:*ÔõµÐÓ;½žë{ù½ïûó4¨˜Ì=ÉóïçóäûÇóJ)>ɼýCQ\QÚ>»lÉ÷•ëè#±ÎW¶»m_ÝÄÒ´Åà¦WÕ8€öÿ‚ÿð#*)`ë²úµß©¨{n]Qq-®'HvòÙŸoy²¸/Sðä Ádã~!Ä×”Ròc „âøÖÕVE_™¿bÇ3Ñyk|"yÌÝè¼ÅŒû¿¸<¿þÅ啵ŸæÆáó@†€‡ :ÞŠÀê]*Ðøš¨<óFñ7ËnúVÙ‚ó½Ù>ìá&FÆ§éŸ #‹ÊYõì.‘rêw†­.Àû_ýä+Â÷Ä"žˆÎ_¾Só‡ š~&öù|bVͪ­¯”Õl©Êõù±îµŸ™äƤsÖ2oÅç¨^°\‰âwÙ­—œ ”R!ı×X8+:{wŲ/Íž·:(¬â‰a݈h‘H‰OM_ef¢Á)A_ºŠê•/PZµ„p®]×QÊ‹+¼t¿»f|øïWýÂТò¢õ—b¥Ç^[Q÷ôž’Û#Ak•º‰GÓ EÙ:úÌwFR fJ ”mfyýB¹!\ÛBJ‰ëzI&'éÚÑ{P.\¿CËVˆ ïìŠi‘¢’×£n®dÁ¶ oE9:o)%¶cb2ÉµÑ ž9Û¨{l3%%Q¤e`Y¤í`w{šéî8FmÅÖïØëó㤧S("³4×Wå÷y‚é¡vBž›‹aZ$Ò:×Ò9Q½þÊÊ+ñ #›ÆQË´è¢ãôï@ùøÌÓ[©®Š “íLܼð½7iÊu=BÙ8.Xʃ--îŒô§Ê©XñVÖ,!à÷"-CJlW#>ÕÏÕÓûéaéŠÇÙ°¾ך"k$ž=‘õË-ƒï_á= ÀU`I…aY Œ&¹ë>ÅÆçv’Ò¶ÄÐM,ÛÁ4,®w¼ÃZ)-«á¥—¿M$4ÄÌÐqFFÞÁðb®´LïkËüêò-º5Wm;R’Œgh»<ʆ/Š‚pl&ƒã€aZ õ]àêÙø}A>»y ÕµÅècçè¿ôl^üy•LuÈßzn´]¾ÅI`R³mKÚ$“&}ýSdÄ\ò ¢˜¦Ä²=L uÑy±øø]V?¾™5õ•ÙÇHw™¬Ä´$Ž# †ËHÞKÐð—¶ž½-ütM: ô‰§LzoßC›³„pd‰øçÿHìú9©x„Ï}7Áa‡‰ÇduÛ–d2)ü¡B„˜ËЕ·õ½'õߘ’»@R)¥4i) COÄî,]TPïø1Ÿ`Ûö—)-ÏAnb,6B:c‘H&@¹h¾ ¾ÜrrrKé?w‚3WcG“:íÀ”RÊÐLé’Ñ%“Óo 9¥5œjÚǾ^v÷”äõ0ÔÙM6›A Û–X†7'J~þ£ˆ‰1šßû}æPûôÉ‹·ù5p0ÿù~4ÝR]25caÆ6¦é¸ô›žZÅè­#dÃùHÛÁ4M\WÇ£å]ŽÏÒÓÖèì?ÖÛû×eMZ€~ ¥(Í0\TV’Ò]$~®œo`Au1³‚#DÂa’É8®ò —ãŒv~¨ÚÚ/¾ÙlÉÒ ÜÆîèfX ×8ÊO*™ ¶j. +yADZqE0RŽ…˜£œiiHý¶9uêÖzïƒgC=¤5G«ÊLSVh±¬®€ˆá’6 ¯¨st”Á®F÷÷:NߤÁ’\†€)@ÿÏ«ÿMð{ÉÉÑ( ,]Y›î!/ZŽí™G "v¶…#ÍWœuަLŽ1`H+¥äÿÿKŸœì–Ùî•u«Ÿ/4¬ëDŠJæÔ’ˆõÒrâÔô»ç³­Ý®Ý#˜‹ã¡‚·šÜ?W‹‹ís+7NÒÑtÐzýÈÀ¹ÎšLÉY`˜¾‡ûqÀÎü¹E<ÿÖ÷ò®7þt‘úÒº`W®Ÿ=ÀF (4¥Ÿdÿ8¤n_UI‚ùIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/fileprint.png0000644000076500000240000000266012536324427025303 0ustar philstaff00000000000000‰PNG  IHDRàw=øwIDATHÇ•U{LSwþ -}ð”gy­a !ñ1Ü&á$NÄ-‹ÑG2—˜-fΗ‘hØöÇþqL·¸d™dfYŒÉŒÿ L÷À)ãý¨´´½mo{wÎ :us'=ùÝ{{ï÷óïw¯JQ”–í…_öi²s >ŽzB‘Ÿ›|Wòø‹dÙ'[̉¯ì[¡ Ñê½nÕÔÖª— &gú†ð¸Á6ìGYÙ»ØRµÿ¤òñÕ‰…Ký_€šRŧªúc—ƒrÚµ”V÷<—ÒdZùÍãâÍ/L | _QwkpÓ‰MZÊ»N`Lš¿sSÕë•´¤?6ArÂS0%d#Þ¸}×Z¿ÿý×9¸|€Ë 8¡ªT?w´_¶ÎÑ¡ƒÔsx—rŽH&ü@VA!=¥}N¯‹^‹ÊÊJ>|²,/H¾Ü1žY»Qüá'™ÈšÏ~Û±ñ­’]2 ûãan:Ÿ$ª?<üÉ‚0ý8ÒÌðRq î÷û „ê¡Võcë‹H¯¤4Ýøt§j'íÀðpk ø™/ëýÚž–$i·Çãy$øb|ÝïW’eù®šõ_ªF%X‡uˆ0æDÀ@U난T‘ jºñ…·_…,ýñ鉆“1DòÉ;Å•(p­¥å"‘x“NŸf†À5gCϵ.H#^Øe7‚x&’„  -nÝŽ€Å’ãÇ×NOO×¶µµÝ$¢ÕôàÌC0æ;TÙÜü"ÃCA ³³’Û cl<" Ñj`0hàqû±jõjáœññqddddFDDL:t¨€ ¯ÝG@ÀEÙÙÙ_íÚõF–Ëå„Ãá€äñ¢»÷:,™Y($װΡ¡¡ˆ‰‰¡æ·ÍfUOÃWaddÛ¶mc²Îúúú¸@'‚À`0|X]]•‘aÁðð04 t:rrrÐßßøøxqcrrV«Ut7;; §ÓIŽ ‡ÙlFZZÊË˃›šš>Ÿ˜˜ØºH@0¸>fÞ™™™hmm…ÑhvT«ÕÂ1TË"ŽN$§×{®ãÎí;ü|>A¹ A066¦Ð°@] 55QQQ íëõz’6AL:ƒ­9::ŠÞÞ^Øív:ÃðЦ¬3ˆ‹‰C0Ô´ƒ ãzü•——WÄrœ9sFfee!%%E0wÃ:³4ÕœfAîÊ\\Œ<{·>·ƒ·¨_¸ÝîÉÉÉ())3 »‡5-..FWWÄðY&­V‹0rTnn.–/_ŽèÈh8=¨œ¯Á™¬B“rî~›G²±±±¨©©Áàà º»»ÑÐÐ *‹‹i2™ÀÅ0ëÏ]ôôü‚S §ðRIâ’°K6ÿBŠ &Ο?5kÖ,2§§§ ¾ÖÜÜB2i)æ0==‰«W¯ ¹Ü¼GÈU¯T"11Q¸oÙ2‹‘æ"LÛŒ}Më:Ò¼±®®.‘‡Ø€lÇ .itº9ò Ü%†’’Š„„Däç磢¢‚•€_ñ#/7ÏÞ××÷‘IEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/filesave.png0000644000076500000240000000226512536324427025106 0ustar philstaff00000000000000‰PNG  IHDRàw=ø|IDATx^µ”ÝkÕÆ?çefg_ònÒ´iÁ7ê âMôÎK¡ˆ‚HAè•z!½ôÇïðFôRðÒK[-ŠŠB¬(ÁhmÚ›”&mš¶I7Mšînvgwgwfgæ8=„°¡€àÏÎ~™™çó=ß93ÂÃ)ÍŽ¦§O¿æ 0GAòï$IVâ¸ûË•+g"̛ͮï}ô¿“zø‘üŹY¹ð׌èvšB"„ý)D߉v]¦žx–'_<Áøäaægç^šûì‹ãÀ%à^€ãÎð˜÷kY鯿<Çï¾ÊãG'‘Rb#R$ÂÖ¤RØÚ)pæÒ&ß.kô?hà04vƘf¥ê§76óÔ·}=EÁôâ‰DkYÙôziš Rç*¢ÅŸñ^c Œ“$éE@Pš>I EGÚ€Òà…b‘8ŽÉî°¡JÙpëîñ__ÿû<°t÷î"­*‘e7çÚ]bßd¥®«³0;g‚ 4õzÀýû jµëë•öÊÒ¹jué"pØÂ~€t]!·ÊË$þZMóö;oÑjvM»ÝãêÕM®©V[a¥RókµÚ¦ï×Ö}ÿÞjµZ^]\¼|ǘ´ÜÊ@Ëdê˜Öü…+͹ó3Åòê¦ù°|6*òa‡ÕV«±áû•r¥²¾V.__«VïÖ€.Ђ>·€&˜L{¶iw¾úäý7!tÃÞveùêìÆööê]cÒèô9°µÐësLf¼«>À™ï€?@6xçq˜ÉÈ,þÑOˆ–xÿQIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/textbold.png0000644000076500000240000000215612536324427025134 0ustar philstaff00000000000000‰PNG  IHDRàw=ø5IDATHǵ•L”uǯZ­åŠ-gšþQ6ÄĤ, EK׬.ÅÊj+•QÔ(D eœüˆ@eÒ‰œ`Ê“pHü~àP~(äá‘G‡6®¨£Ñ®vÛýáöîýÝu ƒs«?Þ{öìûy>¯ÏÏç« ø?5áeå†ý TÏmHC½G͘@£À݇´¦ëBׯã(p•ø 0ý ýá<¢~°mVû§dKèú½å¡ë’"¦Ì{sW¾!O+[ćW~:. ]|~Ä™PUÇà˜€÷ÂN¦ýk›3{^Ùæ§P(îp[¢À°í„Åì~ã£jU™li§óæï)ŸgºG|ƒÖž_¨<æÿR´6)O2÷ <ëù 8Ù`}öÕ*îu ta°tõ/ÆÔš:nM´›ì“²eaàëE<QÎYùieíe«½ÅÄ ™ 3}áÙ<·€ñý=ßV(—-¾Á‘¹tð°Y•’¬ÖF¯õ âÒÏÀ†¸|Ã\oÿUãËä°3CkjeúµýÌ‚Qvr\ÚTê‡muF'@ÃqsydâEžPwM ØA@S—ú¹ džøÀse£m1;Ïij ª{dQPDÏ{”AlºÖTÇô+{€³½@Z‰lqÍÿ'¹’ùt§Õ^Íìj8Þ08æ·bc£×¬G¶Òùlz°€¦_vÒ èXNK›ÙÎéѱ,g¾ãèJƒcËÖ&v.Y_LçS÷xˆ9 5U€’v ´(ª¶¥kdKÆ §ÎöÙR¿òM¿ãf|Žd O}òùw½<l#à4ë_ÔJ³Ø_,[¼—¾\±è¹ðÑ‹ð›SK b§.±TÌH¬Üs€YÜ=-`+åü°°‰5¾gÂ9?öž9×g!š£ öb=3e–:NÛšM™½?ö´·«Ñn¦iMšnÖ¸R¿š8¦B¡ë’ßß§–-Ge§]ùe`×aÉL»hWnѨ¹ª8Ò|V: þ¤)|Ù dÕ2Ó. Ž€Ï„ÅÓîþ)[Rµ¦B:N¯ft,Ó¾’[fqвÎsOt€†%}'Qmä6o¡ÝS”1™’9«Hù8ÄèŽMX´âîÎŽ°|é5@N£ØAÊ=zÚ¬týônyáĪ$sv՞Ψ’ HY4Ú›™•kÙö2£RÖ<›åɡʮ ôñ_£þ{îœtálú\k:ÇœÄÕWsƒó8¢*6/·…æ{%7ûÜu§*¸xÇ (¡ŠÚ¬váü‰eQUt¼šòš4¦â‰ؑoHbÓnGo'¨¼GZçû­*¤cñ'åŠÞí…³$ô­ QoO4gþS±tøå#;Þ¹Û ‡zP4ÓCͤîû·ã)7ù¿Ô_dù”yo³ØIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/textcenter.png0000644000076500000240000000116312536324427025471 0ustar philstaff00000000000000‰PNG  IHDRàw=øgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<IDATHÇÝTÝNQæÑ| e/5јxebÂX½áR´j©](©öÅ`i»ýÙ-Ûn‰P¹rwÎçÌœ£¬)ë…“3ÿßÙovÎÒ­Ûw<SxK¢¼K€r‹ð¢•ã¡T{ξ_!¼íõxPÖBö· wË„×m‹Õý ÷*`4_j%ÿùþ7,o¤·4W\€7]‹õ¡K’³Ì >Ÿ«lK¬Ú#½@mÀ¹‹—Ÿ2¼:p¿^‚méy P,E •ŸŒúï:óô#°ÁüúÌõãM§W;9–<£³E¯…„µv†G¾UçTjZåýZ€Ý#idÑàoô-6‡¬Ç˜«ßs‰¯ÖÍÔ~?’šRû'€b)*dÈÿd“wSÂÎØŠ+M`o ‡„gÆéflñ„7s+bžS¨ßŒ¡5%ñs¼X¥À¢™JŒ7;ü±h&OïŸé—0Ý™6x;ÿ³ç·ó¼—‰ˆþ§æ¼!êXN:Iç„ÒèK1Y%œyô70ò øð°:4ø ú°3&‰DîB[Ïg)ŒÅu¼E;òÓ®ÿ ôŒ:ôö‹Äu›lì|Gôérø ŽhW\šdç W÷$¦«Uºñ `ÒY€ã²ƒ$*¥EW¾|…W|赘ä™|CÓ5lŸÔ ü0ðTc²1s:K$m"­&- ˜Žê\¦Â¨ý ¨?f ”ë ?RC¦›I‹\î¢)€´@É[x2n:G€Œbμ!pß2_7¯6ä*)’ÖA É@€OÀ¡³yz75Éð\@5GV½^‘ÚMöɽIò^2Ÿ)w¡ƒæÁ~m;ÅóòÐØTµ™lAѧTd¾m¶üÄ\/äÌMF î è òjy‹8$¾ŒÌýbU\*zÑ7V¯j{("*rêݺ!_q˜|¦¾w[Öb²ÕöOº¨ÈTèXŠÌÝÓ‡õÿÊ…´5ôÛ'Ëy ¢¨éŸ‰½¨!óPÒ’yØ€I3ÆgÏCµP̬'êÉÜ®;Þªâ- Ц¨`ïì³h£™› ™¯gùp´-[û*ZSŠ\a\ë'¹Bo—Ó0I—K ÷”}cTÜü×@.h¨EŸ¬Ïäéi»ÞŒ8š)v k¥¥ÆÔ@S¥Sö¥@¥Öq6¬»_c»h™à'È®ä-ÓÊ™Rö_JËçÌ[‚ãdð p‹—¥nä¾ÂûàWݧi$=/åžcMµôÔ¢¼0~Ï•œoð=j—ð`¼ðd‡·8¹¡)¼øí#ÕÒüUíîI ®.ð2ÆA$Š‘ðuÂÖføR¯â@œƒ¤çM’ÄžB‚Ï»)àx¬·"¯!ra8Ü{š;Ìq·Ùž˜FaL܈[ Èt¹_j–ëkKÞé)S#½ùu©ÿƒp®D.N4šs¼wRîy¾Íøp: Glø\ y—„m…9½Â?ó|cŸN€Ó‘µwŽÒùVäuDnL5ŠC…ê9Œ¯P ‰Ëü³H\i»—6_b|6ðqÚ_˜\e"y›“º*÷ïÍîˆÜ¾"Ùˆg€·ß•1ÏBÕÆ5‡yÿkr€à5¯_~/Êòb|‰HU£aê•9/­?Ûs½ŽÈ£¿@óB¡Í½y—Úú©xãÖT¡3Ó«œ`Rß$ÞI­ºíaøþÕoòàZ›¢lÇ q®k‰?≸iÌ/cšmÛú.MâÞÌærü×®ïIäÿû'ê÷±DIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/textleft.png0000644000076500000240000000124112536324427025140 0ustar philstaff00000000000000‰PNG  IHDRàw=øgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<3IDATHÇÕUËnA̧ñ|ŠO!ˆBpàâRx„l Ø$ñcm’àøí]{ý¶;FïÎÕ3ˆdöàCkzªkºv»5=[7nÞNÐܘ,±%ÎaØ©¯Ë Ûå/O–pšš˜Â^ Hz©ˆ» òªŠÜÐ쓞=+ø»úO_#ÝÕÜF 7²Á»o•9à4î'-ñMEáq›\ãž¼:]"Õnm/‰QŒœßqÉ“àJ ÞˆÕþç$Ö ¸9ÖË©E8èï›MãSfK²Î)_™Uö»Õ{à£'±Ù¾mèZâH’)<ü!€€'À>æÔCSäi>‚ÛU8/JLÞÓÈ Ï‹ú ßiü›@¼%Ú¤›¼òÏLZ3òH¡~³ÖØ<ñ«müÊXß›Çýú¥a„/ƒÐÄjS‰Û³Âë,~õÆ_™lÌqÀQíÍ€Ú„c¡nýÆ™†Ãù/˜O½º&4Ïéó½¨Ê‡M-Þ2|…Üàº@¼%Ú´&'V^´ñ7À?W.€Î\Ûu&«õÛ3…îB›˜ðº–ïï-„«0¼\}éŒÀðRRµ–ÄÅŒ/øGD0×F4ÏQ!¾ˆ9b§“õ±–è;1Í6å-ÓIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/textright.png0000644000076500000240000000124512536324427025327 0ustar philstaff00000000000000‰PNG  IHDRàw=øgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<7IDATHÇÝT]oAíOógøSö±&ŸšýV_úh µˆPhi] ÆX °,lù°¬°3ÇsgÕú&ðP&÷ιwÎÙ½wî¬Ý¹»nq9+ZÖš8ûmõXˆ—ÇS¼=¥€XYáuUá~Ø>žÑ׸Sˆ{S&€L&ÿA\™üDãúìan#öâ5`§–D9(ûW'3ìºÉf„'’«):Eª%d!öh·?LÝeL8²? ¬¶DVºþ–üGÖ<g³¤‘a=3¬ûFŠ5­Î¬+<9ÒÍše?ÜÐìï)öFü=m|§÷­óŠ! ‘óå`ˆdm†,oLÖ‹ö™–6V°úéSmb™fdß@áëö5y…WÕúQ÷‡Ã J¬Ýs[Ãæ ä¼›¶ÂљĀPd<× ñ,ÏF¥~„Û…÷ô·J0ùÅžºî8î<à0ñˆd¥žF¡«I6C¾š˜í“„²$&#¸ìÅÿŽú¿XÿÏ$/ùÚZ#àxŸ€rŸ¯(Ÿì{U(à~Œð“î½ øòò©® 4š“ƒ6OÀ¿š$®‘°qN‘‘F•"å^DuÁÎQt¨Mž÷Öíkò¯­µ°îý+Àgm¾˜gŸYÓ Z'ÂZ#E\+û§>`Ÿº¼ ùV„—zq$лÒðÇ ‰Fw"ÊX!iÓ÷ÇŒO¢%ä¿ûÃ/¸Q`i%ú +…5~ü~JíIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/textunder.png0000644000076500000240000000171312536324427025327 0ustar philstaff00000000000000‰PNG  IHDRàw=øgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<]IDATHǵ•]H“QÇW”–Rš¨)™’åW™šß¡”Úù±YYM]Œ”¤"ç4%ÃÈ›D»qXŠ7¡™ŠR~…Sgêt¶t:5§M ÊÂ{ñÂéyôéÜÜvÑàïÎùŸó?ÏsÎy‹ÂúŸ¬D^+tr€/høô|¦MŸçqÔ5ÈÕ÷©§þ‚Œ/¢øMÈäòÚù"EG$?ig±XVŒ¾Û´z­Áy‚¯>Ì­Å¦ÂØÂ|\A†‘ª iêWi®g—ÊÂÙÂ.¿¨´0Èþ_mØ×"UiÆ`1Ue?q¼_Tz…ƒ«O4h÷mÎ8ºûž÷ŽàäwöLSôÀB2òDrg r苎i#`ôVÞ‘·R2òEòáŠKôØ:yB{à°)‚`ø}*Š–.¬8ºâƒØØ¡« çä{¢fh ØB1hBË-›¬kÐ ƒó„ÜY ƒöÐGÍ€š¢1 ;©÷éˆ!E}"ž ¨‘Ì™iÐ1EÑb!éBã¨éž5Ó UIÑ3„¤™`€šÏ3f4+(ºu rM3hÿn¦AÓE·L’j‚j>M™iÐ4* áš`€šf¥ye•]*͇ Bî—Ô)=ü/=ØxÁt´ 9¯[¦ß€>àbf-è/kÿ…ú!œй™b` 7´ú­dq¥ö"1«TvöJ¶nª“NõÍÌ|Y§¬ÖPq¼âAkûx0°3j€%!,)7&©ì]Xy&Ϫ%óPÜúµÄòŠ¥Ø†}7"¹gp®Þkc™Ðk¿Àn`O@ܽÛÁñê…¢Ž¹òö™å:HÙ{ü~Z%™I/ò ¿Å08¨[¯ôMn ì‡mì\NÃEgbøáì<Ù:œ¼a¯ˆ”èç3“;aõ4ø¢¡3°+41§ò?ù4}ä¡ G/g)ü/ÜðN›ôJ]Å/š§„“3š(/H.ÛX p_(@±d:Ú1øà5è†2-ÚfÖhghÛ13ƘÞÁKõm+Ø€÷ÄhŠ l2nœ àŠpg8 œ™§O.Pw“ÿn8üã IÛIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/images/win/zoomin.png0000644000076500000240000000227012536324427024617 0ustar philstaff00000000000000‰PNG  IHDRàw=øgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<JIDATHÇÅVaL[eýl2Ói e$K7VZгÒN¥BqCÀµ”æBªc£ccÙY·¦£ˆa )²Í)fº„ÚŠ‰Ô)C3 ¥P×jWJ#ÄlQY”1»øÃn»Þ»¼EÔ3µÉÉK_ß½çûÎ=ç}eÀþM°ÿ?1…J¥2(Š#<ïeü¾QŒP"â¼D€ŸR©´²®®îãþþþKçF0¼5>>~Õf³ùL&“]"‘9¢û—"º[óô²²²w‡?€Óé„¶¶60›ÍÐÑÑàõzÁb± ;ñùÄÊH$[95ýÞívƒé•Úßò÷¯4 kß¶ÂÖº7C»Í?wZ? ãnÀj³]Ñh4¬ËŒDò'ÍIZ95/=\sõéC¯O¥4wYL°ØÍÀVg‚¬Ù2ó‰®éö¾³ “““P__?#ê°^Lr-E  ÍIZ95—ýÀ©>Õçyv[%<_V Ï óÌàÌ£m_–xÖ7<>îîî†ÜÜÜA¬ÏGDýu‹ ìv»—4×TüQÔðþhq§ã+ã9Ÿ÷Å}G`»¡JM'áÀÈÌEyÿ³d«{àÔ¹ñHª’’’ ÖW!b+"ìEiæi JCý4‹QÂÆ¬rx®¨¶è^ƒ¬—!§¼2t À⠭ɃÃn¯ÏçƒŠŠŠkXÿB€àG"0¡o’[äµo¹Yl¬L*†˜”ݰ>Û¢¬Ûb„(Å^`IÛ%ê`kï×秦¦ˆà&ÖGD"Øçr¹æÉŠªWÍÓ4P–PlÃN„þ<†Òu'ÔŒ/øý~Ðjµ´ƒ£ˆă‘Š)DäóЦֹ¤c=CÂ÷¾Ú~c"\±‰$zÛCʱ_zžšûÔêùö29 ÓN3¨^nJJ(…ˆ|^|Òz1þ„˵öôåI¶5’,z}M™·ÇfÝž©@¸¥¥d2ÙÖïXnqJ(9£½opAßõ¹?±ýÂ,.ØzÝí]$;æÔ¼×íûuxxÔjõBttô¬ß¼œ‹x´ Š?%”¶N>'+’[h ¤9ÉâñÂÔ\¿k×­ôôôëX׋ °É#æ€#¡WÅŸJ!¢ÝÉ-4P"&Yð™¥RJMM…ü4áõƒÛ6\ÁÚ”è¥xÜ;%“âO ¥‘ÏÉŠä(i޲œæóùάÇãoÔä%Â;{R V'»Dn\Lr··é1ÿ*.DÇ9+Vs͸±ÑMkW…*7­ƒ¦")tT¥AãŽ'f“D:xœ\QÜàœ¸«€»/G’óÙ¢GBÆl!˜K’¡ëP:4韼M²ì‘É­ ë‘¿)DÜ•ÏݧßÅHÒ¯®ú®Z-‚ÖR9ìш}x_{ÏÎdޤ[#~x6/y55/G߬Íf»a0Ü%%%ÆØØX Ktï|Dwj.U©T›L&×ë…¨««ƒššÐét088.— ššš|999 x}:bq(’¿Ý95·X­ß1 %o–ÿš¹C3]y8¨øPYÚ÷¯ì¯™lÐÄi@o0\—ËåMX—ŠäOš“,tçÔ|Ë޲Ͽ5œt°Á·©ÞôËæV3([-³ ›F_8Ú8RßqÖïp8 ¢¢b”Çãi±^HrÍG &ÍIºsj.:ðÉ€ìx‡ScrLTž»8SØé˜N9Ý=º²®ë|~óY·Ù6liiŒŒŒn¬ÏD„ÿuйÙF£ÑEšË vÿ ¨EVLÛW3²òØ—=œGåÀnÎ*õx§†$ó¤±Ìâòx< P(h‚ˆhÄý¡ò(Däó‚êC4ÿÄÅ~¾áÇ~Á™€UаDŸ œfqÿOm4Þyù9 ÓN;(]h %”BD>Ïû@)ê¨Ýyꚃ÷©ˆ×<à .>X“,SFMÿãökkk!!!¡ë·.´ƒeJ(9£¾£Û¯nüÚS?t.J7n‹l˜tZ§¬ñ¦ 5ogÜ?›ÍfÉdþˆˆˆÓX¿v!qi Š?%”F'Ÿ“É-´PÒœdqz¼Aj®Þ¶mV*•Î`];‚Â& ™–„\éJ(…ˆ¦!+’[h¡DL²à5~‰DHNN†Ì5ü™]›V]ÇÚ”èù¸ì3%…âO ¥‘ÏÉŠäZ(i޲œ H}2êfÙÆøh{”¿”0NnœKr§§ém!ÿ"6DGX+–² ]w‡c]¹$Pøìr¨Î]ÑØ¿5ql.I¨÷—•+œ]µ`4{ä±çEHÒ·>ú¡€f=ÞSÆCc±ªÕOýN²à+“%ZDÖ#SˆØc{ž~"IgÉÕR™mÁv¹ÐçwíÌ’´È…ŽmŒ„šç#¸«/}vg¤½âvóÿä_Åo&MîðÃuIEND®B`‚PyQt-x11-gpl-4.11.4/examples/demos/textedit/textedit.py0000755000076500000240000006172212536324427022752 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) import sys from PyQt4 import QtCore, QtGui try: import textedit_rc3 except ImportError: import textedit_rc2 if sys.platform.startswith('darwin'): rsrcPath = ":/images/mac" else: rsrcPath = ":/images/win" class TextEdit(QtGui.QMainWindow): def __init__(self, fileName=None, parent=None): super(TextEdit, self).__init__(parent) self.setWindowIcon(QtGui.QIcon(':/images/logo.png')) self.setToolButtonStyle(QtCore.Qt.ToolButtonFollowStyle) self.setupFileActions() self.setupEditActions() self.setupTextActions() helpMenu = QtGui.QMenu("Help", self) self.menuBar().addMenu(helpMenu) helpMenu.addAction("About", self.about) helpMenu.addAction("About &Qt", QtGui.qApp.aboutQt) self.textEdit = QtGui.QTextEdit(self) self.textEdit.currentCharFormatChanged.connect( self.currentCharFormatChanged) self.textEdit.cursorPositionChanged.connect(self.cursorPositionChanged) self.setCentralWidget(self.textEdit) self.textEdit.setFocus() self.setCurrentFileName() self.fontChanged(self.textEdit.font()) self.colorChanged(self.textEdit.textColor()) self.alignmentChanged(self.textEdit.alignment()) self.textEdit.document().modificationChanged.connect( self.actionSave.setEnabled) self.textEdit.document().modificationChanged.connect( self.setWindowModified) self.textEdit.document().undoAvailable.connect( self.actionUndo.setEnabled) self.textEdit.document().redoAvailable.connect( self.actionRedo.setEnabled) self.setWindowModified(self.textEdit.document().isModified()) self.actionSave.setEnabled(self.textEdit.document().isModified()) self.actionUndo.setEnabled(self.textEdit.document().isUndoAvailable()) self.actionRedo.setEnabled(self.textEdit.document().isRedoAvailable()) self.actionUndo.triggered.connect(self.textEdit.undo) self.actionRedo.triggered.connect(self.textEdit.redo) self.actionCut.setEnabled(False) self.actionCopy.setEnabled(False) self.actionCut.triggered.connect(self.textEdit.cut) self.actionCopy.triggered.connect(self.textEdit.copy) self.actionPaste.triggered.connect(self.textEdit.paste) self.textEdit.copyAvailable.connect(self.actionCut.setEnabled) self.textEdit.copyAvailable.connect(self.actionCopy.setEnabled) QtGui.QApplication.clipboard().dataChanged.connect( self.clipboardDataChanged) if fileName is None: fileName = ':/example.html' if not self.load(fileName): self.fileNew() def closeEvent(self, e): if self.maybeSave(): e.accept() else: e.ignore() def setupFileActions(self): tb = QtGui.QToolBar(self) tb.setWindowTitle("File Actions") self.addToolBar(tb) menu = QtGui.QMenu("&File", self) self.menuBar().addMenu(menu) self.actionNew = QtGui.QAction( QtGui.QIcon.fromTheme('document-new', QtGui.QIcon(rsrcPath + '/filenew.png')), "&New", self, priority=QtGui.QAction.LowPriority, shortcut=QtGui.QKeySequence.New, triggered=self.fileNew) tb.addAction(self.actionNew) menu.addAction(self.actionNew) self.actionOpen = QtGui.QAction( QtGui.QIcon.fromTheme('document-open', QtGui.QIcon(rsrcPath + '/fileopen.png')), "&Open...", self, shortcut=QtGui.QKeySequence.Open, triggered=self.fileOpen) tb.addAction(self.actionOpen) menu.addAction(self.actionOpen) menu.addSeparator() self.actionSave = QtGui.QAction( QtGui.QIcon.fromTheme('document-save', QtGui.QIcon(rsrcPath + '/filesave.png')), "&Save", self, shortcut=QtGui.QKeySequence.Save, triggered=self.fileSave, enabled=False) tb.addAction(self.actionSave) menu.addAction(self.actionSave) self.actionSaveAs = QtGui.QAction("Save &As...", self, priority=QtGui.QAction.LowPriority, shortcut=QtCore.Qt.CTRL + QtCore.Qt.SHIFT + QtCore.Qt.Key_S, triggered=self.fileSaveAs) menu.addAction(self.actionSaveAs) menu.addSeparator() self.actionPrint = QtGui.QAction( QtGui.QIcon.fromTheme('document-print', QtGui.QIcon(rsrcPath + '/fileprint.png')), "&Print...", self, priority=QtGui.QAction.LowPriority, shortcut=QtGui.QKeySequence.Print, triggered=self.filePrint) tb.addAction(self.actionPrint) menu.addAction(self.actionPrint) self.actionPrintPreview = QtGui.QAction( QtGui.QIcon.fromTheme('fileprint', QtGui.QIcon(rsrcPath + '/fileprint.png')), "Print Preview...", self, shortcut=QtCore.Qt.CTRL + QtCore.Qt.SHIFT + QtCore.Qt.Key_P, triggered=self.filePrintPreview) menu.addAction(self.actionPrintPreview) self.actionPrintPdf = QtGui.QAction( QtGui.QIcon.fromTheme('exportpdf', QtGui.QIcon(rsrcPath + '/exportpdf.png')), "&Export PDF...", self, priority=QtGui.QAction.LowPriority, shortcut=QtCore.Qt.CTRL + QtCore.Qt.Key_D, triggered=self.filePrintPdf) tb.addAction(self.actionPrintPdf) menu.addAction(self.actionPrintPdf) menu.addSeparator() self.actionQuit = QtGui.QAction("&Quit", self, shortcut=QtGui.QKeySequence.Quit, triggered=self.close) menu.addAction(self.actionQuit) def setupEditActions(self): tb = QtGui.QToolBar(self) tb.setWindowTitle("Edit Actions") self.addToolBar(tb) menu = QtGui.QMenu("&Edit", self) self.menuBar().addMenu(menu) self.actionUndo = QtGui.QAction( QtGui.QIcon.fromTheme('edit-undo', QtGui.QIcon(rsrcPath + '/editundo.png')), "&Undo", self, shortcut=QtGui.QKeySequence.Undo) tb.addAction(self.actionUndo) menu.addAction(self.actionUndo) self.actionRedo = QtGui.QAction( QtGui.QIcon.fromTheme('edit-redo', QtGui.QIcon(rsrcPath + '/editredo.png')), "&Redo", self, priority=QtGui.QAction.LowPriority, shortcut=QtGui.QKeySequence.Redo) tb.addAction(self.actionRedo) menu.addAction(self.actionRedo) menu.addSeparator() self.actionCut = QtGui.QAction( QtGui.QIcon.fromTheme('edit-cut', QtGui.QIcon(rsrcPath + '/editcut.png')), "Cu&t", self, priority=QtGui.QAction.LowPriority, shortcut=QtGui.QKeySequence.Cut) tb.addAction(self.actionCut) menu.addAction(self.actionCut) self.actionCopy = QtGui.QAction( QtGui.QIcon.fromTheme('edit-copy', QtGui.QIcon(rsrcPath + '/editcopy.png')), "&Copy", self, priority=QtGui.QAction.LowPriority, shortcut=QtGui.QKeySequence.Copy) tb.addAction(self.actionCopy) menu.addAction(self.actionCopy) self.actionPaste = QtGui.QAction( QtGui.QIcon.fromTheme('edit-paste', QtGui.QIcon(rsrcPath + '/editpaste.png')), "&Paste", self, priority=QtGui.QAction.LowPriority, shortcut=QtGui.QKeySequence.Paste, enabled=(len(QtGui.QApplication.clipboard().text()) != 0)) tb.addAction(self.actionPaste) menu.addAction(self.actionPaste) def setupTextActions(self): tb = QtGui.QToolBar(self) tb.setWindowTitle("Format Actions") self.addToolBar(tb) menu = QtGui.QMenu("F&ormat", self) self.menuBar().addMenu(menu) self.actionTextBold = QtGui.QAction( QtGui.QIcon.fromTheme('format-text-bold', QtGui.QIcon(rsrcPath + '/textbold.png')), "&Bold", self, priority=QtGui.QAction.LowPriority, shortcut=QtCore.Qt.CTRL + QtCore.Qt.Key_B, triggered=self.textBold, checkable=True) bold = QtGui.QFont() bold.setBold(True) self.actionTextBold.setFont(bold) tb.addAction(self.actionTextBold) menu.addAction(self.actionTextBold) self.actionTextItalic = QtGui.QAction( QtGui.QIcon.fromTheme('format-text-italic', QtGui.QIcon(rsrcPath + '/textitalic.png')), "&Italic", self, priority=QtGui.QAction.LowPriority, shortcut=QtCore.Qt.CTRL + QtCore.Qt.Key_I, triggered=self.textItalic, checkable=True) italic = QtGui.QFont() italic.setItalic(True) self.actionTextItalic.setFont(italic) tb.addAction(self.actionTextItalic) menu.addAction(self.actionTextItalic) self.actionTextUnderline = QtGui.QAction( QtGui.QIcon.fromTheme('format-text-underline', QtGui.QIcon(rsrcPath + '/textunder.png')), "&Underline", self, priority=QtGui.QAction.LowPriority, shortcut=QtCore.Qt.CTRL + QtCore.Qt.Key_U, triggered=self.textUnderline, checkable=True) underline = QtGui.QFont() underline.setUnderline(True) self.actionTextUnderline.setFont(underline) tb.addAction(self.actionTextUnderline) menu.addAction(self.actionTextUnderline) menu.addSeparator() grp = QtGui.QActionGroup(self, triggered=self.textAlign) # Make sure the alignLeft is always left of the alignRight. if QtGui.QApplication.isLeftToRight(): self.actionAlignLeft = QtGui.QAction( QtGui.QIcon.fromTheme('format-justify-left', QtGui.QIcon(rsrcPath + '/textleft.png')), "&Left", grp) self.actionAlignCenter = QtGui.QAction( QtGui.QIcon.fromTheme('format-justify-center', QtGui.QIcon(rsrcPath + '/textcenter.png')), "C&enter", grp) self.actionAlignRight = QtGui.QAction( QtGui.QIcon.fromTheme('format-justify-right', QtGui.QIcon(rsrcPath + '/textright.png')), "&Right", grp) else: self.actionAlignRight = QtGui.QAction( QtGui.QIcon.fromTheme('format-justify-right', QtGui.QIcon(rsrcPath + '/textright.png')), "&Right", grp) self.actionAlignCenter = QtGui.QAction( QtGui.QIcon.fromTheme('format-justify-center', QtGui.QIcon(rsrcPath + '/textcenter.png')), "C&enter", grp) self.actionAlignLeft = QtGui.QAction( QtGui.QIcon.fromTheme('format-justify-left', QtGui.QIcon(rsrcPath + '/textleft.png')), "&Left", grp) self.actionAlignJustify = QtGui.QAction( QtGui.QIcon.fromTheme('format-justify-fill', QtGui.QIcon(rsrcPath + '/textjustify.png')), "&Justify", grp) self.actionAlignLeft.setShortcut(QtCore.Qt.CTRL + QtCore.Qt.Key_L) self.actionAlignLeft.setCheckable(True) self.actionAlignLeft.setPriority(QtGui.QAction.LowPriority) self.actionAlignCenter.setShortcut(QtCore.Qt.CTRL + QtCore.Qt.Key_E) self.actionAlignCenter.setCheckable(True) self.actionAlignCenter.setPriority(QtGui.QAction.LowPriority) self.actionAlignRight.setShortcut(QtCore.Qt.CTRL + QtCore.Qt.Key_R) self.actionAlignRight.setCheckable(True) self.actionAlignRight.setPriority(QtGui.QAction.LowPriority) self.actionAlignJustify.setShortcut(QtCore.Qt.CTRL + QtCore.Qt.Key_J) self.actionAlignJustify.setCheckable(True) self.actionAlignJustify.setPriority(QtGui.QAction.LowPriority) tb.addActions(grp.actions()) menu.addActions(grp.actions()) menu.addSeparator() pix = QtGui.QPixmap(16, 16) pix.fill(QtCore.Qt.black) self.actionTextColor = QtGui.QAction(QtGui.QIcon(pix), "&Color...", self, triggered=self.textColor) tb.addAction(self.actionTextColor) menu.addAction(self.actionTextColor) tb = QtGui.QToolBar(self) tb.setAllowedAreas( QtCore.Qt.TopToolBarArea | QtCore.Qt.BottomToolBarArea) tb.setWindowTitle("Format Actions") self.addToolBarBreak(QtCore.Qt.TopToolBarArea) self.addToolBar(tb) comboStyle = QtGui.QComboBox(tb) tb.addWidget(comboStyle) comboStyle.addItem("Standard") comboStyle.addItem("Bullet List (Disc)") comboStyle.addItem("Bullet List (Circle)") comboStyle.addItem("Bullet List (Square)") comboStyle.addItem("Ordered List (Decimal)") comboStyle.addItem("Ordered List (Alpha lower)") comboStyle.addItem("Ordered List (Alpha upper)") comboStyle.addItem("Ordered List (Roman lower)") comboStyle.addItem("Ordered List (Roman upper)") comboStyle.activated.connect(self.textStyle) self.comboFont = QtGui.QFontComboBox(tb) tb.addWidget(self.comboFont) self.comboFont.activated[str].connect(self.textFamily) self.comboSize = QtGui.QComboBox(tb) self.comboSize.setObjectName("comboSize") tb.addWidget(self.comboSize) self.comboSize.setEditable(True) db = QtGui.QFontDatabase() for size in db.standardSizes(): self.comboSize.addItem("%s" % (size)) self.comboSize.activated[str].connect(self.textSize) self.comboSize.setCurrentIndex( self.comboSize.findText( "%s" % (QtGui.QApplication.font().pointSize()))) def load(self, f): if not QtCore.QFile.exists(f): return False fh = QtCore.QFile(f) if not fh.open(QtCore.QFile.ReadOnly): return False data = fh.readAll() codec = QtCore.QTextCodec.codecForHtml(data) unistr = codec.toUnicode(data) if QtCore.Qt.mightBeRichText(unistr): self.textEdit.setHtml(unistr) else: self.textEdit.setPlainText(unistr) self.setCurrentFileName(f) return True def maybeSave(self): if not self.textEdit.document().isModified(): return True if self.fileName.startswith(':/'): return True ret = QtGui.QMessageBox.warning(self, "Application", "The document has been modified.\n" "Do you want to save your changes?", QtGui.QMessageBox.Save | QtGui.QMessageBox.Discard | QtGui.QMessageBox.Cancel) if ret == QtGui.QMessageBox.Save: return self.fileSave() if ret == QtGui.QMessageBox.Cancel: return False return True def setCurrentFileName(self, fileName=''): self.fileName = fileName self.textEdit.document().setModified(False) if not fileName: shownName = 'untitled.txt' else: shownName = QtCore.QFileInfo(fileName).fileName() self.setWindowTitle(self.tr("%s[*] - %s" % (shownName, "Rich Text"))) self.setWindowModified(False) def fileNew(self): if self.maybeSave(): self.textEdit.clear() self.setCurrentFileName() def fileOpen(self): fn = QtGui.QFileDialog.getOpenFileName(self, "Open File...", None, "HTML-Files (*.htm *.html);;All Files (*)") if fn: self.load(fn) def fileSave(self): if not self.fileName: return self.fileSaveAs() writer = QtGui.QTextDocumentWriter(self.fileName) success = writer.write(self.textEdit.document()) if success: self.textEdit.document().setModified(False) return success def fileSaveAs(self): fn = QtGui.QFileDialog.getSaveFileName(self, "Save as...", None, "ODF files (*.odt);;HTML-Files (*.htm *.html);;All Files (*)") if not fn: return False lfn = fn.lower() if not lfn.endswith(('.odt', '.htm', '.html')): # The default. fn += '.odt' self.setCurrentFileName(fn) return self.fileSave() def filePrint(self): printer = QtGui.QPrinter(QtGui.QPrinter.HighResolution) dlg = QtGui.QPrintDialog(printer, self) if self.textEdit.textCursor().hasSelection(): dlg.addEnabledOption(QtGui.QAbstractPrintDialog.PrintSelection) dlg.setWindowTitle("Print Document") if dlg.exec_() == QtGui.QDialog.Accepted: self.textEdit.print_(printer) del dlg def filePrintPreview(self): printer = QtGui.QPrinter(QtGui.QPrinter.HighResolution) preview = QtGui.QPrintPreviewDialog(printer, self) preview.paintRequested.connect(self.printPreview) preview.exec_() def printPreview(self, printer): self.textEdit.print_(printer) def filePrintPdf(self): fn = QtGui.QFileDialog.getSaveFileName(self, "Export PDF", None, "PDF files (*.pdf);;All Files (*)") if fn: if QtCore.QFileInfo(fn).suffix().isEmpty(): fn += '.pdf' printer = QtGui.QPrinter(QtGui.QPrinter.HighResolution) printer.setOutputFormat(QtGui.QPrinter.PdfFormat) printer.setOutputFileName(fn) self.textEdit.document().print_(printer) def textBold(self): fmt = QtGui.QTextCharFormat() fmt.setFontWeight(self.actionTextBold.isChecked() and QtGui.QFont.Bold or QtGui.QFont.Normal) self.mergeFormatOnWordOrSelection(fmt) def textUnderline(self): fmt = QtGui.QTextCharFormat() fmt.setFontUnderline(self.actionTextUnderline.isChecked()) self.mergeFormatOnWordOrSelection(fmt) def textItalic(self): fmt = QtGui.QTextCharFormat() fmt.setFontItalic(self.actionTextItalic.isChecked()) self.mergeFormatOnWordOrSelection(fmt) def textFamily(self, family): fmt = QtGui.QTextCharFormat() fmt.setFontFamily(family) self.mergeFormatOnWordOrSelection(fmt) def textSize(self, pointSize): pointSize = float(pointSize) if pointSize > 0: fmt = QtGui.QTextCharFormat() fmt.setFontPointSize(pointSize) self.mergeFormatOnWordOrSelection(fmt) def textStyle(self, styleIndex): cursor = self.textEdit.textCursor() if styleIndex: styleDict = { 1: QtGui.QTextListFormat.ListDisc, 2: QtGui.QTextListFormat.ListCircle, 3: QtGui.QTextListFormat.ListSquare, 4: QtGui.QTextListFormat.ListDecimal, 5: QtGui.QTextListFormat.ListLowerAlpha, 6: QtGui.QTextListFormat.ListUpperAlpha, 7: QtGui.QTextListFormat.ListLowerRoman, 8: QtGui.QTextListFormat.ListUpperRoman, } style = styleDict.get(styleIndex, QtGui.QTextListFormat.ListDisc) cursor.beginEditBlock() blockFmt = cursor.blockFormat() listFmt = QtGui.QTextListFormat() if cursor.currentList(): listFmt = cursor.currentList().format() else: listFmt.setIndent(blockFmt.indent() + 1) blockFmt.setIndent(0) cursor.setBlockFormat(blockFmt) listFmt.setStyle(style) cursor.createList(listFmt) cursor.endEditBlock() else: bfmt = QtGui.QTextBlockFormat() bfmt.setObjectIndex(-1) cursor.mergeBlockFormat(bfmt) def textColor(self): col = QtGui.QColorDialog.getColor(self.textEdit.textColor(), self) if not col.isValid(): return fmt = QtGui.QTextCharFormat() fmt.setForeground(col) self.mergeFormatOnWordOrSelection(fmt) self.colorChanged(col) def textAlign(self, action): if action == self.actionAlignLeft: self.textEdit.setAlignment( QtCore.Qt.AlignLeft | QtCore.Qt.AlignAbsolute) elif action == self.actionAlignCenter: self.textEdit.setAlignment(QtCore.Qt.AlignHCenter) elif action == self.actionAlignRight: self.textEdit.setAlignment( QtCore.Qt.AlignRight | QtCore.Qt.AlignAbsolute) elif action == self.actionAlignJustify: self.textEdit.setAlignment(QtCore.Qt.AlignJustify) def currentCharFormatChanged(self, format): self.fontChanged(format.font()) self.colorChanged(format.foreground().color()) def cursorPositionChanged(self): self.alignmentChanged(self.textEdit.alignment()) def clipboardDataChanged(self): self.actionPaste.setEnabled( len(QtGui.QApplication.clipboard().text()) != 0) def about(self): QtGui.QMessageBox.about(self, "About", "This example demonstrates Qt's rich text editing facilities " "in action, providing an example document for you to " "experiment with.") def mergeFormatOnWordOrSelection(self, format): cursor = self.textEdit.textCursor() if not cursor.hasSelection(): cursor.select(QtGui.QTextCursor.WordUnderCursor) cursor.mergeCharFormat(format) self.textEdit.mergeCurrentCharFormat(format) def fontChanged(self, font): self.comboFont.setCurrentIndex( self.comboFont.findText(QtGui.QFontInfo(font).family())) self.comboSize.setCurrentIndex( self.comboSize.findText("%s" % font.pointSize())) self.actionTextBold.setChecked(font.bold()) self.actionTextItalic.setChecked(font.italic()) self.actionTextUnderline.setChecked(font.underline()) def colorChanged(self, color): pix = QtGui.QPixmap(16, 16) pix.fill(color) self.actionTextColor.setIcon(QtGui.QIcon(pix)) def alignmentChanged(self, alignment): if alignment & QtCore.Qt.AlignLeft: self.actionAlignLeft.setChecked(True) elif alignment & QtCore.Qt.AlignHCenter: self.actionAlignCenter.setChecked(True) elif alignment & QtCore.Qt.AlignRight: self.actionAlignRight.setChecked(True) elif alignment & QtCore.Qt.AlignJustify: self.actionAlignJustify.setChecked(True) if __name__ == '__main__': app = QtGui.QApplication(sys.argv) mainWindows = [] for fn in sys.argv[1:] or [None]: textEdit = TextEdit(fn) textEdit.resize(700, 800) textEdit.show() mainWindows.append(textEdit) sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/demos/textedit/textedit.qrc0000644000076500000240000000320112536324427023070 0ustar philstaff00000000000000 images/logo.png images/logo32.png images/mac/editcopy.png images/mac/editcut.png images/mac/editpaste.png images/mac/editredo.png images/mac/editundo.png images/mac/exportpdf.png images/mac/filenew.png images/mac/fileopen.png images/mac/fileprint.png images/mac/filesave.png images/mac/textbold.png images/mac/textcenter.png images/mac/textitalic.png images/mac/textjustify.png images/mac/textleft.png images/mac/textright.png images/mac/textunder.png images/mac/zoomin.png images/mac/zoomout.png images/win/editcopy.png images/win/editcut.png images/win/editpaste.png images/win/editredo.png images/win/editundo.png images/win/exportpdf.png images/win/filenew.png images/win/fileopen.png images/win/fileprint.png images/win/filesave.png images/win/textbold.png images/win/textcenter.png images/win/textitalic.png images/win/textjustify.png images/win/textleft.png images/win/textright.png images/win/textunder.png images/win/zoomin.png images/win/zoomout.png example.html PyQt-x11-gpl-4.11.4/examples/demos/textedit/textedit_rc2.py0000644000076500000240000072022312536324427023513 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:29:00 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x0a\x15\ \x00\ \x00\x38\x1d\x78\x9c\xdd\x5b\x5b\x73\xdb\xb8\x15\x7e\xcf\xaf\xc0\ \xb0\xd3\xc9\x43\x2d\x59\xb6\xb3\xd9\x8d\x6c\x79\x26\x63\x27\xbb\ \x99\x49\x9b\xcd\x46\x99\x9d\xf6\x0d\x02\x21\x11\x6b\x90\xa0\x01\ \xd0\x0a\xb7\xd3\xff\xde\x73\x0e\x40\x52\xb2\xe4\x58\x49\x9d\x98\ \x6a\x1e\x1c\x89\xc2\xe5\x5c\x3e\x9c\x1b\x0e\xcf\x32\x9f\xeb\xf3\ \xb3\x4c\xf2\xf4\xfc\x2c\x97\x9e\xb3\x82\xe7\x72\x92\x5c\x5b\x25\ \x32\x2f\x3f\xf9\x84\x09\x53\x78\x59\xf8\x49\x72\x94\xb0\xc3\x38\ \x28\xf3\xbe\x1c\xc8\xeb\x4a\xdd\x4c\x92\x8b\xf0\xfb\x60\x5a\x97\ \x72\x65\x34\x4e\x3e\xc4\xd5\x4f\x99\xc8\xb8\x75\xd2\x4f\x3e\x4e\ \x5f\x0f\x7e\xa2\x45\xbc\xf2\x5a\x9e\xbf\x9f\xc2\x98\x57\xa9\xf2\ \xec\x52\xe6\xa6\x70\xde\x72\xaf\x4c\x71\x76\x18\x7e\x3e\x73\xbe\ \xd6\x92\x79\x58\x37\x2e\x27\x9c\x4b\xce\x9f\x94\x07\x4c\x2b\xf6\ \x6f\xb6\xcc\x94\x97\x03\x57\x72\x21\xc7\xac\xb4\x72\xb0\xb4\xbc\ \x3c\x65\xff\x79\x72\x76\x48\x33\xcf\xcf\x0e\x03\x5f\x33\x93\xd6\ \x8c\x1e\x4d\x12\x36\x07\x02\x07\x4e\xfd\x29\xc7\x2f\x4a\x7f\x1a\ \xbe\x2e\xa5\x5a\x64\x7e\xfc\x6c\x34\x8a\x0f\x68\xf0\xb8\x30\x36\ \xe7\x40\x3f\xee\x3d\x48\xa5\x30\x81\x3e\x78\x5e\xc8\x53\x20\xe4\ \xac\x64\x5c\xab\x45\x31\x49\x04\xb0\x2c\x6d\xd2\x6e\x92\x73\xbb\ \x50\xc5\xc0\x9b\x72\x7c\x74\x5c\x7e\x3a\x6d\x1e\xcc\x8c\xf7\x26\ \x5f\x7f\xa6\xe5\xdc\x8f\x47\x2b\x0f\x2c\x11\x43\x4f\x06\xd7\x7e\ \x30\xd3\x46\x5c\x0d\x54\x91\xc2\x1e\xe3\x51\xa4\xa6\xf9\x0a\x83\ \x12\x10\x54\xc9\x8b\x2d\x0c\x1e\x8f\x6e\x73\xf8\x1c\x38\x4c\x3a\ \xb9\x83\xa0\x60\x26\xc8\xa9\x5c\x65\xe6\x8f\xca\x79\x35\xaf\xfb\ \xc6\xcd\xd1\x11\x70\x93\x9c\x4f\x33\xc9\x3a\xe0\x2c\x55\xba\x90\ \x9e\x29\xc7\x60\x0e\x4f\x6f\x78\x21\x64\xca\x24\xfc\x64\x2c\xf3\ \x19\xf7\xcc\x55\x65\x69\xac\x77\xb0\x12\x68\xd3\x7b\xf8\x19\xb1\ \x4d\x1b\x0f\xd9\x1b\xcf\x04\xcc\x9c\x49\x56\x39\xf8\xc5\x1b\x96\ \x2a\x57\x6a\x5e\xb3\x5f\xa6\x7f\x7f\x0b\x8b\xa6\xcc\xf8\x4c\xda\ \x30\x27\x35\xa2\xca\x81\xd2\xb8\x96\x83\xf9\xa8\xf7\x82\x6b\x5d\ \x1f\xac\x50\x05\x6b\x39\xd8\x3d\x12\x7a\xd9\xcc\x12\x9a\x3b\x47\ \x7b\x48\x27\xac\x82\x4d\x41\x82\x19\x0d\xcc\x40\x4a\x20\xbb\x1b\ \xa9\x81\x73\x5b\x09\x5f\x59\xc9\xcc\x9c\x49\xbe\xba\x2d\x92\x83\ \xa3\xb5\x59\xc6\xc1\x91\x29\x55\x2c\x70\x74\xc9\x2d\x5f\xc0\x21\ \xc8\xdc\xb0\x87\xaa\xdd\xd4\xe5\x9b\x39\xab\x4d\xc5\x38\xf0\x7a\ \xa3\xe4\x12\xb9\xf0\x19\xe8\xb2\x65\x58\x15\xc4\xef\x36\x48\xd0\ \x09\x55\x1e\x18\x13\xb0\x12\xee\x25\x3b\x44\x83\x84\x73\x73\x40\ \x8b\xa3\x7a\xf1\x97\x5b\x2b\x83\x16\xe4\xa7\x52\x1b\xd8\xfa\xbd\ \x7f\xea\x3a\x4c\xd0\x60\xa4\x64\x2e\x39\x6a\x01\x94\xfc\x3b\xe8\ \x87\xdf\x48\xa0\x46\xe8\x2a\x05\x98\x38\x93\x4b\xb0\x74\x39\xae\ \xe4\x90\x48\x52\x13\x28\x00\x89\x9d\x1b\x0d\xfa\xc1\x15\x9c\x14\ \x68\x2f\x48\xe5\xb2\x10\xa6\x02\xed\x48\x22\x2a\xec\x2e\xad\xc2\ \x15\x86\x8c\x35\x6a\xda\xa6\x96\xe7\xdf\x51\x2d\x3f\x6d\x37\x18\ \x77\x1e\xc9\xe7\xa4\xc6\xd7\x26\x62\xf3\xd7\x06\x7f\xec\x03\x8e\ \x75\x3d\x04\xe1\xbd\xf6\xa5\x3b\xc5\xad\xe5\x68\xd8\xf8\xdc\xc4\ \x2d\x52\x9b\x19\x9d\xee\x32\x35\x39\x3f\xf8\x82\x2d\x6e\x01\x3f\ \x7c\xd8\x75\x1b\x54\xd2\x4e\x5b\xdd\x76\x79\xac\x02\x11\x5a\xad\ \xc8\xf1\xb5\x9f\x77\x64\x8f\x9e\x84\x9f\x5d\xa0\x01\x0f\x65\x63\ \x68\xbf\x4a\xba\x70\xfa\xe0\xec\x8e\xff\x32\x82\x7f\x3f\xce\x61\ \x8f\xbc\xd2\x5e\xd1\xc3\x9d\xa9\xfa\x9f\x36\xe6\x1c\xb7\x8e\x96\ \x67\xb7\x0d\x87\x8c\x0e\xca\x9c\xe7\x4a\x2b\x70\x10\xae\x02\xa3\ \xc1\x3f\x07\x2f\x1a\x5a\x8f\x9f\x4e\xc1\x4e\xb8\xa7\x1b\x06\x74\ \x0b\xe6\x68\x24\xfb\x87\x5c\xb2\xdf\x4c\xce\x8b\x1d\x25\xf1\x79\ \x58\x34\x54\x5c\x80\x01\x53\xd2\xee\x44\x47\x1c\xbb\xe3\xfe\x08\ \x07\xae\x9d\x69\xfd\x70\xaa\x2c\xd8\x4e\x5d\x0f\xbf\xfe\x60\x44\ \xdf\x02\x10\x13\x92\xec\xb2\xa8\xac\x83\xa0\x00\xac\x35\x67\x56\ \x2e\x00\xd5\x68\xb1\x69\x56\x4a\x78\x3f\x08\xc3\x60\x2d\x6b\xb4\ \x6b\x7c\x8f\x37\x46\xb3\x19\x04\xb0\x10\x6b\x68\x8d\xb1\x6c\xb1\ \xc0\xa7\xb0\xc6\x5c\x03\x91\xcd\xda\x56\x36\x18\xdf\x0f\xdf\xdb\ \xda\x6a\xd7\x44\x40\x5d\x80\x04\x9a\xa0\xd8\x89\xf8\x47\x9f\x08\ \x9e\x13\x29\x18\x10\x2b\x32\x3d\x60\xb4\x7d\xf7\x35\xc4\xbf\xf8\ \x09\x24\x3c\xaf\x20\x1c\x62\x81\x5d\x25\xd3\xe1\x2d\x39\x3c\x66\ \xac\xbc\x29\x86\xfb\x43\x8b\xa9\xad\x83\xd6\x43\x78\x22\x03\x1f\ \x14\x44\x20\x7e\x30\x14\x20\x19\xe1\x21\x82\x70\x01\xd6\xa6\x51\ \x4d\x0c\x6a\x20\x0c\x80\xf8\xc1\x2c\x3b\x69\x82\xd5\x33\x95\x8f\ \x50\x6a\x43\x35\xd6\x27\xbc\xdc\xe3\xf3\xb7\x9c\xf8\xb7\xca\xf9\ \x3e\x3a\xfc\x1d\x48\xdf\xdd\x03\x3c\xa3\xf1\x97\x6a\x3e\x97\x74\ \xde\xaf\x60\x23\x87\x30\xd0\xc8\x7d\x73\x90\xda\x38\x11\x4c\x48\ \x17\x57\x36\xa1\x27\x04\x94\x1f\x3c\x80\x85\xdb\x94\xcd\xe0\xa8\ \x40\xfa\xb2\x36\xbb\x90\xce\xe3\x49\xaa\x1c\x02\x2e\x6d\xf7\x72\ \x75\x3e\x43\xbb\x04\xc7\x34\xc4\x9b\x21\x03\x88\x51\x27\x2e\x31\ \x66\x6b\xf2\xaf\x74\xc3\x13\xca\x09\x07\x34\x72\x61\x47\xc8\x35\ \x24\xd1\x77\x99\xe4\x6d\x9a\x1a\x7d\x73\xc8\x5d\x2a\x27\x5a\x36\ \x31\x29\x80\xd4\x5f\x09\x4c\xae\x82\x57\x98\xd3\x79\x2a\x63\xea\ \x83\x0c\x31\xe5\x65\xee\xd0\x4b\x68\x05\x5c\x57\x3a\xb0\x4d\x25\ \x03\xa1\xac\xd0\xf2\x4e\x11\x1c\xf7\x52\x04\x17\x91\xe8\x28\x84\ \xcd\xdc\x14\x53\x93\x4a\xb9\x0c\x1e\xfb\xa5\x94\x45\x90\x00\x22\ \x0d\x92\x0e\x69\x57\x64\x83\x86\x65\x53\x2a\xee\xba\x42\xc9\xde\ \x25\x95\x93\x5e\x4a\xe5\x43\x24\x3a\x4a\xa5\xb4\xe6\x46\xa5\x92\ \xfc\x38\x77\xa6\xe0\x33\x8d\x56\x99\x32\x71\xaf\x6e\x64\x14\x95\ \x70\x21\xd6\x24\x91\xde\x02\xc9\xf6\x54\xeb\xfb\xbb\x9f\x77\x36\ \x45\xbf\xb9\x6e\x01\x04\xb0\x85\x6e\x98\x7c\xf0\x2a\x04\xe8\x00\ \x20\xb7\x64\x73\x62\xa9\x0d\x38\xeb\x0c\x12\x96\xda\xb8\x00\x49\ \x6c\x60\x47\x16\x60\x7d\x20\x9a\x97\x01\x31\x21\x0e\x5f\x4a\x1a\ \x06\x63\x42\x29\x82\x82\x46\xfa\xe5\xa5\xe5\x33\x25\x58\x98\xd4\ \x45\x43\x8e\xe7\xc1\xd6\x74\x65\x8a\x71\x74\x5c\xe6\x9b\x9b\x9b\ \xd1\x83\x82\xea\x0d\xc6\x79\x69\x25\x42\xc9\x11\xa0\xf1\xa4\x7f\ \xc0\x7f\xef\xd9\xd4\x20\xe4\x23\x76\x8d\x0e\x82\xa6\xa3\xcc\xbf\ \xb5\x6d\x7b\x58\x79\x03\x2f\x2f\x9d\x03\x32\x79\xe1\x1f\x4c\xde\ \x0f\x4e\xe2\x25\x44\x70\x10\xd3\xda\x48\x61\x23\xeb\x97\xdf\xda\ \x62\x3e\x2c\x23\xaf\x21\x94\x67\xaf\x28\x02\xed\xa9\xa8\x2f\x4c\ \x5e\x9a\x02\x4d\xd6\x4b\x2b\xb0\x90\x4f\xb6\x64\x15\xe6\x7d\x3c\ \x8c\x6f\x83\xf7\xf5\xab\x74\x96\xab\xd0\x68\x2b\xb0\x03\x84\xcd\ \x58\xe6\xa5\xaf\x4f\xbf\xa3\x60\xb7\x24\x38\x77\x97\x16\xbf\x3b\ \x2d\xd3\x18\xa8\x86\x54\x9a\x57\xb0\x23\x38\xec\x10\xe1\x81\xab\ \xb2\xe8\xa3\x66\xe4\x0f\x55\xac\x0c\xa7\x29\x66\x94\x56\xe6\xe6\ \x46\xb6\xc1\xde\x4e\x29\x1b\x4c\xc5\xf8\xb9\x90\xcb\xb5\x3a\x2c\ \x25\x70\x33\x5c\x8d\x08\x69\x16\xc7\xa1\xf2\x53\x08\xaf\x68\x9f\ \x26\x71\xc3\xf1\x81\x2a\x17\x13\xb6\x8d\x7c\xed\xff\x48\xfd\x8f\ \x90\x6c\x7f\x2e\x31\x7b\x93\xf3\xc5\x46\x15\xf9\x91\x39\x79\xa0\ \x1c\xf2\x4d\x81\x05\x54\xa6\x88\xc3\x90\xec\xc4\xa8\x4f\xab\x2b\ \x09\xb8\x04\xf4\x72\x80\xb1\xa5\x1a\x01\x85\x7b\x5d\x68\xd7\x94\ \xa6\x9a\xeb\x0a\x63\x0f\x42\xcd\x46\xd6\x6c\x0e\x79\x00\x9c\xaf\ \x78\xaf\xe4\x2a\x6b\x4d\x55\xd0\x51\x88\x37\x5e\x61\xc7\xd5\x92\ \x9b\x93\x58\xc8\x0a\xf9\x6a\x1b\xe4\x2d\x79\x8d\xc5\xc9\x50\x18\ \xcb\xf9\x55\x38\x18\x90\x79\xba\x1a\xcf\x86\xa8\xe0\xb1\x30\x65\ \x1d\x02\xc9\x92\x43\xd2\x8a\x93\xf3\x21\xeb\x79\x11\x20\x42\x51\ \xe5\x0b\xe6\xac\x98\x24\xe3\xc3\xa0\x84\x43\x6d\x16\xe6\xe4\x78\ \x58\x16\x0b\xba\xa3\xbe\xd7\xca\x30\x34\x33\x64\x26\x62\x1d\x50\ \xb9\xa0\x4f\x36\xab\x99\x80\x31\x24\x33\x94\x4e\x0a\x56\x81\xca\ \x47\x60\x77\x2c\xa3\x6b\xcb\xa8\x9f\xdc\x40\xec\x4d\x55\x33\x8c\ \xc1\x5b\xa5\xc6\x5a\x65\xb7\x38\xcc\x81\x45\x33\xa3\x49\x93\xa9\ \x59\x16\xec\x43\xa6\xe6\xa1\xea\x14\x2a\x05\x64\xd9\x40\xdb\x4b\ \x76\x25\x6b\x30\x93\xff\x8c\x97\x5f\xf0\xbc\x40\x75\xe1\x26\xa8\ \x30\x58\x6b\x55\x67\x0a\x6f\xd9\x28\x61\x6a\x72\x08\x30\x62\xde\ \x85\xba\xc2\xca\x8d\xd9\x7e\x54\x35\xbf\xd4\xc2\x4c\x29\x9b\xea\ \x39\x6b\x0f\x64\x72\xba\x9b\x2d\x3a\xfc\x96\x4c\x0b\x21\x21\x54\ \x7e\x63\x6a\x79\xd0\x5c\x7c\xad\x5e\x82\xb6\x97\x15\x88\x2f\xca\ \xaa\x8d\xae\x72\xd8\x1d\x48\x80\x19\x04\xda\x95\xbb\x68\xc4\x37\ \x18\x13\x21\xb5\x8e\x99\x26\xd5\x45\x45\x68\xf2\x50\x45\xb8\x8e\ \x8f\x8b\xb8\x0d\x93\xb1\x4f\x1e\xb5\xcf\x44\x92\x42\x21\xb3\xc7\ \x22\x03\xf5\xef\xdc\x2a\xc1\x2f\x55\xea\xb3\x49\xf2\x62\xf4\xd7\ \x24\xe8\xaa\xe4\x02\xd4\x37\x49\x46\xe1\x7b\x19\x82\xa8\x49\xf2\ \x0c\xbb\x5d\xbc\xc5\x3f\xe9\x23\x45\x93\x49\x08\xb8\xce\x0e\x89\ \x82\x47\x24\x63\xcb\xb1\x5b\x3b\x96\x97\x58\x81\x33\x25\x5d\x10\ \x34\xc9\x7b\x8b\xee\xfe\x93\xff\xab\x35\x00\xe5\x3c\xc7\x63\x3c\ \x95\x22\x2b\xd4\x75\x25\xf7\x8c\x87\x9f\xf1\x2c\x62\x5e\xc1\x3e\ \x3a\x70\xb8\xd4\xa4\x33\xe7\x62\x0b\x1b\xf0\xc7\xf6\x00\xda\xf7\ \x31\xf4\x62\x3c\x1a\xb1\x01\x3b\x3a\xc2\xff\xb7\xa9\x02\x4d\x29\ \x3e\x9d\x24\x27\xbb\x36\xa6\x7d\xd7\x02\x1b\x86\x32\xf7\x47\x54\ \x90\x61\xef\xa9\x82\x82\x66\x40\x43\x27\x77\x69\xe8\xd1\x48\xff\ \x48\xd1\xe1\xfd\xc2\xbf\x86\x20\x5f\xae\xe6\xb6\x8f\x4f\xfa\xbb\ \xd9\x1f\x10\xfc\x0e\x8c\x55\x08\xe3\x94\xad\xda\xa6\x7e\x50\xf8\ \x96\xae\x72\x29\x23\xdb\x05\xde\x1b\xe2\xdd\x17\x78\x9f\x44\x78\ \xff\xd0\x3b\x78\xef\x64\x55\xba\xaa\x6e\x90\xff\xb4\x82\x9c\x59\ \x81\x7f\x58\x37\xa2\x10\xdc\x06\x23\x7a\x9c\x3c\x1a\x3f\xaf\x3e\ \x79\x2b\x21\xff\xee\x1f\xd6\x7f\xb7\xa1\x31\xf2\x02\xf2\x22\x93\ \xc7\x16\xbf\xfd\x83\xf2\x0f\x11\xca\x3f\xee\x27\x94\xbb\x12\x74\ \x80\x32\x26\x57\xb1\x0b\x19\x1d\x2d\x0c\xfc\x93\x3e\xdc\x02\x4d\ \xa7\x22\xf8\x83\x69\xc1\xbe\xe4\x30\xfd\xb8\xa9\xbd\xaf\xcc\x4c\ \x09\x70\x2c\x2f\x53\x26\xd5\xd6\xe8\xc2\xe5\x34\x28\xa9\x6b\xf8\ \xed\xca\x3f\x6b\xad\x44\xf8\x60\xad\x83\xbb\x3f\xec\x7f\x79\x61\ \xe5\x17\x00\x11\xf6\x88\x5e\xed\x50\xbe\xed\x53\xd3\x2f\x56\xbc\ \x82\xb3\xa0\x5b\xf3\x58\x0a\x61\x59\xcb\x4e\xdb\x78\xd1\xf6\xf3\ \x1c\xc4\xbe\x7c\x98\x1a\xcb\x25\xb8\x0a\xdd\xbb\x63\x57\x7a\xe1\ \x14\x24\x84\x35\x85\x08\x5f\xdb\xcc\xb8\x7e\x77\xba\x5b\xb3\x69\ \xa7\x01\x2a\x2f\xaf\xdf\xb6\x34\x2d\x06\x4b\x2c\x0e\xc2\x3a\xf4\ \xb6\xc3\x5c\x69\x22\x5d\xe5\xc8\x33\xd5\x83\x41\x04\xb1\x7f\xde\ \xd8\x21\xfb\xa0\x8a\xd8\x4c\xd9\xb5\x35\xcd\xc1\x49\xc9\xa5\xb1\ \x57\x5d\xbf\xf4\x8a\xb0\x42\x43\x06\xbe\x1d\x41\xc5\xe9\xd5\xaa\ \x73\x43\x42\x19\x1c\x5d\x43\xda\xed\x3a\xe3\x7e\xc2\xff\x63\x91\ \x1a\x82\xc5\x6f\x32\x35\xbd\xe4\xe8\x75\xa5\x75\x0b\x6f\x2c\xc6\ \x55\x0d\xc9\x16\x48\x66\xa6\x94\xa1\xf5\xdb\x21\x22\x66\x95\xd2\ \xb1\x4e\xdc\x1d\x95\xe6\x6d\x94\xd0\x0e\x5e\xa3\x19\xdc\x02\x8b\ \x21\x7b\xd7\x2d\x65\xb0\xf9\xb6\x7d\x07\x23\x76\xa8\x94\x5c\x5c\ \xf1\x05\x9d\xb7\x85\xa4\x97\x6d\x60\x1b\x4c\x46\xda\x57\x31\x38\ \xcb\xf1\x45\x0d\x61\x72\x20\x34\x58\xd4\x60\x4d\x25\xe2\x91\xba\ \x62\x32\xea\x74\xb1\x7b\x60\x35\x37\x7d\x48\xbc\x5d\x89\xfd\xa0\ \xc1\x8d\xac\xbe\xab\x42\xc5\x7a\x2b\x9d\x63\x17\xde\xea\xbf\xfd\ \x0b\x47\x90\xb6\xc2\x7d\x4b\x53\xe8\xe7\x7a\xc9\x6b\x07\xea\x13\ \x74\xcd\x40\x32\x81\x28\x17\x18\x81\x40\xb7\x69\x16\x6a\x1c\xcd\ \xed\xb2\x7e\x0c\x17\xf0\x55\x39\x7c\x6f\x0e\xdf\x0a\x7c\xf2\x5f\ \x2d\x31\x7f\x54\ \x00\x00\x02\x78\ \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\x03\x00\x00\x00\x44\xa4\x8a\xc6\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x45\x50\x4c\x54\x45\x00\x00\x00\x01\x01\x01\x05\x06\x04\x0c\x0d\ \x07\x12\x14\x0c\x1f\x26\x09\x2b\x35\x08\x39\x45\x0b\x47\x58\x08\ \x56\x6a\x09\x64\x7c\x0a\x71\x8c\x0e\x7d\x9b\x0e\x86\xa6\x0e\x8d\ \xb1\x0a\x92\xb6\x0b\x95\xb9\x0e\x98\xbe\x0c\x99\xbf\x0c\x9b\xbf\ \x14\x9c\xc3\x0c\xa2\xca\x0c\xaa\xd5\x0c\x45\xb9\x54\x8c\x00\x00\ \x00\x01\x62\x4b\x47\x44\x00\x88\x05\x1d\x48\x00\x00\x00\x09\x70\ \x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\x00\x9a\x9c\x18\ \x00\x00\x00\x07\x74\x49\x4d\x45\x07\xda\x0b\x04\x00\x20\x37\xaa\ \xfa\xb2\x02\x00\x00\x00\x19\x74\x45\x58\x74\x43\x6f\x6d\x6d\x65\ \x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\ \x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x01\x87\x49\x44\x41\x54\ \x38\xcb\x95\x93\x8d\x52\xc4\x20\x0c\x84\x29\x2d\x85\x00\xd7\x1e\ \x98\xf0\xfe\x8f\xea\x06\x4a\xf5\x74\x74\x94\xb9\x9f\x19\xf8\xd8\ \x64\x93\x60\xea\xef\xeb\x69\xfe\x07\x14\x5d\x3f\x03\xcc\xd2\x17\ \x7f\xbe\x72\x03\x05\xa7\x67\xa2\x40\x31\x9f\x22\x75\xea\xbc\x4d\ \xa0\x88\x64\xef\xac\xc1\xb2\x2e\x3c\x84\xcb\x2b\x50\xa4\x84\xd5\ \xcc\xb5\x6c\x71\x12\x17\x50\xe4\xd8\x97\x71\x76\xfd\x85\xe7\x20\ \x06\x80\xfb\xbb\x6e\xaf\x9e\x62\xa4\xdd\x9a\xc5\x2c\x7e\x68\x0c\ \x80\x25\xe8\xc5\x3d\xab\x87\x26\x69\x57\x82\xe4\x43\x41\x92\x66\ \xe7\x6b\x63\x98\x61\x6e\x4f\xd5\x5b\xb3\x4c\x80\xab\xd7\x73\x16\ \x14\x89\x85\x5c\x6e\xa7\xc3\x46\x00\xc0\xa7\x02\xf2\x80\x81\xed\ \x90\xa2\xc5\x88\x8b\x01\x11\x21\xe9\x4e\x2e\x1d\x28\x42\xc8\x00\ \x49\xf5\xf3\x15\xf1\x1d\x33\x82\xd8\x2c\x13\x08\xf0\x15\xa5\xeb\ \x6b\x31\x2c\xb1\x6e\x99\x78\x03\xfe\xc2\x85\x34\xd9\x35\x4a\xd5\ \x48\x86\xbe\x00\xdc\x43\x01\x48\xdf\x00\x0d\x91\x5a\x25\xad\xd0\ \x20\x84\xae\x10\xc7\x48\x12\x07\xa1\xe5\x5e\xc1\xa5\x97\xa0\xa9\ \x68\x42\x5a\x47\xb7\x99\x87\x4d\x44\xb0\xd4\xc3\x38\xda\xba\xcd\ \xda\x15\x6a\x37\x85\xba\x34\x42\x7e\x23\x11\xfd\xaa\xf1\x01\x8c\ \x94\x2c\x61\x24\x6e\xab\x90\xd4\x52\x5f\x00\xb3\xef\x2d\x3e\x5a\ \x43\xb3\x34\x3e\x2e\x04\x74\x66\x02\x18\x07\xa7\x7b\x5b\x48\x39\ \x45\xbf\xf5\xb1\xd8\xd2\x87\x82\xe6\xe9\xc6\xa0\x58\xbb\xcc\xb9\ \x52\x17\x37\x00\x0d\x7f\x9f\xc0\xe7\xae\xcd\x7a\x5c\xcd\xba\x34\ \x38\xee\x23\xbb\x65\xdd\x13\xbc\xb8\xe3\x6e\xf7\x1c\x7b\xce\x14\ \xbc\x0f\xf1\x51\xf1\x36\x08\xcd\x79\x01\xfa\xe4\xe9\xab\xc1\x87\ \xbb\xa2\x8e\xe4\x2b\x70\x3d\xbd\x31\xef\xe3\xf7\x2b\xf0\x6d\xfd\ \x01\x78\x07\x3f\xc0\x33\x81\xbd\x2f\xd9\x1a\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x82\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x20\x08\x03\x00\x00\x00\x95\x43\x8e\xb6\ \x00\x00\x00\xc0\x50\x4c\x54\x45\x71\x8c\x0e\xa5\xa5\xa4\x0c\x0d\ \x07\x00\x00\x00\x97\x97\x97\xa2\xca\x0c\xec\xec\xec\xfb\xfb\xfc\ \x8c\x8c\x8b\xca\xca\xca\x78\x78\x77\xd4\xd4\xd4\xb3\xb3\xb3\x56\ \x6a\x09\xba\xba\xba\x3a\x3a\x37\x56\x56\x55\xf2\xf2\xf2\xf5\xf5\ \xf5\xc5\xc5\xc5\x68\x69\x67\x49\x4a\x48\x05\x06\x04\x25\x27\x22\ \x1c\x1d\x19\x12\x14\x0c\x40\x41\x3f\xd8\xd8\xd8\x34\x35\x31\x71\ \x72\x70\x9c\xc3\x0c\xf8\xf8\xf8\xcf\xcf\xcf\xef\xef\xef\xe1\xe1\ \xe1\x2d\x2e\x2a\xde\xde\xde\xe7\xe7\xe8\x01\x01\x01\xff\xff\xff\ \xe4\xe4\xe4\x39\x45\x0b\x64\x7c\x0a\x8d\xb1\x0a\x98\xbe\x0c\x82\ \x82\x81\x2b\x35\x08\xdb\xdb\xdb\x5d\x5e\x59\x47\x58\x08\xaa\xd5\ \x0c\x1f\x26\x09\x99\xbf\x0c\xbf\xbf\xbf\x7d\x9b\x0e\x61\x61\x60\ \x92\xb6\x0b\x86\xa6\x0e\x9b\xbf\x14\x95\xb9\x0e\xd8\xda\xd1\xc6\ \xc8\xbf\x62\x63\x58\xd2\xd4\xcb\x33\xee\xa2\x2e\x00\x00\x04\x7d\ \x49\x44\x41\x54\x78\x5e\x8d\x95\xe5\xb2\x23\x37\x14\x84\x47\x30\ \xcc\xcc\x8c\x66\xf6\x85\x0d\xbc\xff\x5b\xe5\x48\xb3\xbe\xbb\x9b\ \x54\x25\xe9\x3f\xae\x1a\xbb\x3f\xb5\x0e\x8c\x85\xfb\xbf\xeb\xdb\ \xd9\x39\x50\x6a\x18\x86\x85\x14\x2d\x4b\xd3\x3e\x8b\x70\x92\x60\ \x92\xf6\x45\xdf\xe3\x29\x22\xff\x0d\x28\x15\x85\x22\xc3\x50\x75\ \x4b\x2b\xec\xb8\xe8\x71\x92\x85\x59\x11\x63\x02\x9a\xc8\xdf\x00\ \x7b\xa6\x5f\x01\x25\xa5\x08\xfc\x8f\x5c\x5a\x1e\x56\xe3\x0f\x0f\ \x84\x86\xb1\xf3\x69\x60\x17\x49\x44\xa6\xe9\x67\x40\x55\x89\x5c\ \xd5\xcf\x48\x05\x59\x7e\x93\x8f\xae\xbb\x0c\x83\xe4\xd6\xb5\xec\ \xb5\x83\x7e\x6a\xac\xd2\x51\xb2\x69\x22\x3f\x00\x7b\x70\xbf\x0b\ \xe6\xc5\xdc\x3e\xdf\x45\xf1\xfe\xca\xf1\x89\x1e\xfa\x29\xef\xa4\ \xb1\xcb\x87\xd6\x75\x99\xdf\xf5\x5a\xb9\x6e\xad\xb7\xb7\x18\x02\ \x7c\x01\xf6\xa2\xf8\xdc\xdc\x22\x02\x8a\x6e\x97\x0f\xb1\xda\x7f\ \x07\xfc\xae\x9f\x86\xfc\xb4\xe8\x86\x91\x0f\x16\x42\xaa\xdf\x0c\ \xfa\x38\x43\x0c\x8a\x4a\x00\x10\xe1\xe5\xdf\x5f\x30\x79\x69\x4a\ \xb7\x2f\xc2\xe7\x9f\xdd\x32\x4a\xcb\xa2\xab\x16\x75\x92\x28\x4a\ \xe2\x3e\x73\x0e\x8a\x62\xf9\x4a\x98\x4d\x3c\xc1\xea\xdf\x1d\xa7\ \xd5\xfb\xfd\xe3\xf2\x6d\x25\x7c\xfe\x36\x4a\x10\x5a\x1a\x54\x2d\ \x21\x24\x0e\x4a\x4d\xd3\x82\x73\x56\xd8\x09\x66\x4d\xe0\x00\x7e\ \xfe\x91\xd9\xf0\xc6\xdc\x6e\xcd\x63\xc4\xbe\xd9\x40\x06\x0e\xe8\ \x24\x77\x51\xd1\x39\x21\x38\x43\xd2\xcc\xe5\x8e\x27\x4b\xb1\x09\ \xf9\x4a\x50\x89\x17\x76\xf0\xf1\x29\x82\xae\xa2\x70\x64\x04\x53\ \x5c\xaf\xd0\x3c\xe8\xb9\x87\xe2\x64\x86\x0c\x5e\x99\xc9\xf3\xc6\ \x4e\x0f\xd2\xe9\x0b\x20\x0a\xac\x7a\x9b\xfb\xb5\x82\x66\x54\xd5\ \xf5\x1b\xcb\x83\x9f\x22\x03\x04\x61\xcc\x4b\x6b\x8f\xf3\x5c\xd7\ \xe0\x06\xc6\xa8\xd2\xd2\x49\x00\x40\x56\x40\x75\xdf\x30\x7f\x25\ \xee\xf7\x10\xc6\xbc\x3d\xaf\xef\x37\xb0\x5c\x00\x50\xbd\x73\x37\ \xe4\x8b\xa9\xee\xba\xd2\x32\x7a\xb5\x64\x85\x09\x86\x27\xd3\x17\ \x40\xfc\xc0\x84\xa4\x3b\x71\xcf\x86\x61\x3b\x11\x20\x6c\xc1\x77\ \x7b\xaf\xf6\x00\xe0\x75\x8d\xe2\x34\xb2\x0f\x0f\x55\x1f\x8c\x20\ \x4c\xd6\x3a\xaf\x04\x81\x95\xd0\x04\x1e\x14\x8d\xfb\x31\x01\x42\ \x55\x1d\xc1\xf4\x14\x01\xc0\x9b\x1b\xe1\x38\x8e\x53\x12\x8c\xf5\ \x7c\xe0\x66\xfc\xea\xd6\x0a\xb8\x00\x6f\x2b\xf2\xfc\x98\xfd\xdc\ \xac\xd8\x23\x02\x8f\xd6\x2b\x64\x4a\x1a\x65\x94\x2a\xc8\x9b\x67\ \x6d\xb2\x33\xc5\x8e\x48\x11\x4f\x69\x91\x12\xc2\x01\x9b\xf5\x38\ \xf0\xb3\x9f\xe3\xad\x78\x67\x37\x21\x26\x07\xb0\xf6\x79\x65\x66\ \x79\xcb\x3c\xb6\xf3\x5c\x66\x43\x37\x5b\x85\x63\x04\x24\x44\xf6\ \x2f\x00\xf0\xf3\x5c\x58\xf8\x19\x30\x65\xd6\xe2\x5b\xea\xb0\x8c\ \xb2\x2c\x01\x20\x08\xa5\xb9\x53\x0d\x5a\xa4\x99\x86\x32\xf2\xe3\ \x0a\xc2\xf5\x0e\xe7\xbf\x08\xa2\xf9\xfd\x0a\xbb\xec\x34\x7b\x5e\ \xd7\xb9\xae\x3c\xd7\xc3\x22\xbb\x4e\xf8\x68\xbd\xe5\x71\x70\x0e\ \xd4\xa2\xfd\xab\x88\x60\xbc\x5c\x9f\x11\xaf\x2c\x1f\x81\x2b\x0b\ \x25\x40\x59\x76\x87\xa5\xf5\xea\x99\xa9\x96\xd4\x4e\x1e\x0a\x9b\ \xea\x6d\xed\xb9\x75\x6e\x58\x25\x26\x6b\x1b\x9f\xbc\x8d\xec\x06\ \x91\xc9\xaf\x71\x33\x53\xde\xc6\x7b\xb5\xfb\x43\x1d\x25\xd7\x93\ \xe5\x5a\x6e\x87\x66\xac\x4f\x36\x0e\xf4\xa5\x95\x65\x57\x55\xb4\ \x70\x5a\x01\xd0\x34\x3e\x37\x57\x13\xea\xb7\x16\x82\x51\x36\x22\ \x03\xd8\x28\xcf\x07\x40\x78\x6e\xa7\x37\x8b\xab\xda\x93\x63\x74\ \x92\x34\x3c\x14\x3b\x8c\xc9\x0a\x58\x4b\x16\x99\xa2\xf8\x7c\xb5\ \x12\x94\xc2\x28\x03\x20\x56\xfc\xe6\x34\xc2\x42\xba\x83\xef\xe7\ \x92\x91\x90\x9e\xaa\x8d\x41\x83\xd0\x2e\xa2\x17\xa0\xaa\x36\x7c\ \x85\x77\xd7\x2b\x2c\x13\xbb\x3f\x00\x2f\xd7\x8a\x03\x0e\x96\xaf\ \x03\xa0\xf5\x1a\xcb\x6a\x24\x94\x24\x09\x35\x0e\x85\xed\x84\x3d\ \x3b\xe8\xb5\xce\xbb\x1b\xf3\xa4\x17\xe1\x29\x6c\x37\x29\x7f\x2d\ \xa4\x02\x4f\x90\x6a\x86\xd5\x0c\x63\xdb\xb6\xbe\x65\x9c\xe4\x26\ \x4b\x52\x05\xf5\xa9\xed\x38\x31\x54\x60\x05\xf0\x3a\xde\xd6\xd1\ \x8c\x22\x00\x71\xf1\x2e\x54\x3b\xfc\x86\x0c\x5f\x1f\x46\x4f\x42\ \x07\x45\xaf\xf3\x82\x10\x9b\x16\x8f\x26\x28\xf8\x46\x71\xc0\x9a\ \x61\x03\xce\x97\xf0\x91\x2d\xd3\x07\x5b\x26\xec\x20\xe3\xd1\x0c\ \x8b\x2b\x6b\x38\x3d\xa3\x37\x36\xab\x41\x70\x72\x55\x1a\xc7\xaf\ \x1a\x70\x89\xd5\xf6\x88\xd7\x14\xf8\x28\x40\x2f\x6e\xbb\x75\x9d\ \x33\x00\xf8\x7a\xb7\x48\x39\x0d\xfa\x94\xa5\x4c\x34\xcd\x58\x72\ \x5f\x2b\x7b\xf2\xeb\x6b\xbd\x7a\x9a\x97\xcd\xe6\xb2\xfd\xb8\x8b\ \x62\x65\xc2\x72\x70\x40\xac\x20\x84\x28\x50\x60\x7e\x35\x4c\xa2\ \xd4\x7e\x3b\x94\xa5\xae\x3e\x9a\xee\xc0\x01\x3f\x54\x89\xa0\x0a\ \xcc\x15\x4f\x04\x7e\x06\xc0\x8e\x12\x38\x8a\xd1\x2c\xdd\xd2\x20\ \x87\xfd\xaf\x85\xa1\x63\x2b\xbe\x95\xcb\xe8\x9f\x7f\x6d\x5c\x9c\ \x06\xf6\x15\x30\xc5\x6f\x01\x6a\x5b\x6f\x5c\x64\x6f\x19\x8d\x73\ \xd8\xf7\x71\x9f\x24\x07\x45\xd1\x4b\x9e\xe0\xdf\x04\x00\x08\x5d\ \xd0\x06\x66\xef\xd4\xca\x3a\x8c\x94\xef\xc4\x49\x0a\x4a\x0a\x5b\ \x29\x63\x42\xfe\x07\x80\xe0\x80\x1a\x14\x21\x75\x68\xd4\x26\x57\ \x92\x42\x3b\x4f\x53\x12\x25\x81\x81\x94\x84\xfc\x05\x2c\x83\xdc\ \xf4\xf9\xf1\xbe\x01\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\xd8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x6a\x49\x44\x41\x54\x58\xc3\xed\ \x55\x69\x4c\x94\x57\x14\x55\xd4\x56\x5b\x63\xb4\xd5\x68\x13\xb5\ \x5a\xb5\x5a\x71\xa9\x25\x75\x50\x91\xd2\x0a\x54\x65\x13\x10\x14\ \x64\x19\xd1\x6a\x2b\x8b\x53\x34\x38\x2c\x65\x11\x37\x16\x51\x60\ \x40\xa8\xe2\x52\x59\x44\xa4\x54\x2d\x8e\xe0\x82\x36\x2e\x35\x2e\ \xa3\x18\xc6\x9a\x6a\x27\x85\xa9\x86\x88\x31\x19\xa5\xc9\x24\x24\ \xa7\xe7\x8d\x6f\x5a\x4b\x45\xb1\xb5\xb1\x3f\x3a\xc9\xc9\x97\x6f\ \x79\xf7\x9e\x7b\xee\xb9\x77\xba\x00\xe8\xf2\x22\xd1\xe5\x7f\x02\ \xff\x29\x02\x1f\x06\xa6\x78\x10\x49\x44\xa1\x44\x26\xb1\x84\xb0\ \xfb\x57\x09\x30\x81\x0f\x51\xaa\x5a\xad\x35\x24\x64\xea\x5b\x12\ \x33\x8d\xa6\xc4\x2c\xa3\x29\x35\xe7\xe6\xbd\xf8\xcc\xb3\xb7\x16\ \xab\x4b\xaf\xf3\x7d\x9d\x24\x67\xfb\x5c\x09\x30\xe0\x50\xb7\xb0\ \x0c\xdd\x9a\x9c\x3b\xad\xa1\xd1\xc0\xac\x50\x60\x46\x30\xe0\xaa\ \x04\x3c\x3e\x05\x16\xac\x04\x22\x53\x81\x35\xf9\xe6\xb6\x75\x5b\ \xf4\x2d\xc1\xd1\x45\x7a\xa9\x8e\xcb\xf3\x22\x10\x1d\x9f\xa1\x6b\ \xf6\x5f\x06\x4c\x98\x0d\x8c\x72\x25\xdc\x80\xb1\xde\xc0\x78\x7f\ \xc0\x2e\x08\x70\x08\x23\xb1\x70\x20\x38\x16\x88\xdd\x04\x64\x6e\ \x35\x9a\x3e\x89\xb5\xa8\xf2\x8f\x89\x08\x02\x75\xb1\x69\xe6\xb6\ \xa9\x7e\xc0\x9b\x0c\x35\xdc\x1d\x18\x13\x00\x4c\x5c\x08\x28\x48\ \x4a\x11\x01\x4c\x66\x72\x7b\xaa\x31\x8d\x70\x89\x04\x02\xe3\x48\ \x64\x33\x90\xb5\xc3\x68\x0a\x5e\x61\x51\x44\x2d\x94\xfc\x5b\x04\ \x84\xfc\xcb\x29\xf1\xfb\xf3\x80\x91\x5e\xc0\xb8\x10\x56\xac\x02\ \x3c\x57\x33\x11\xab\x55\xe6\x02\x41\xbc\x7a\x6f\x60\x5b\x12\x00\ \xc7\x15\xc4\x72\x2a\xf2\x39\xdf\x25\x01\xa9\x85\xc0\xda\x7c\x5d\ \xb3\xdb\xa2\x0c\x1d\x49\x84\x3f\x33\x01\x21\xa5\x6a\x3d\x30\x85\ \xbd\xb7\x65\xef\xa7\x31\xb0\x7f\x06\xb0\xaa\x14\xc8\x3b\x02\xec\ \x3c\x05\x6c\x3d\x09\xa4\x7d\x0b\xac\x28\x26\x19\x12\x9a\xbd\x06\ \xf8\x68\x15\xbd\x42\x32\x73\xd4\x40\x04\xc9\xe5\x94\x98\xdb\xa2\ \x56\x57\xdd\x78\x56\x35\x44\x0b\x2e\x24\xe4\x00\xce\x94\xd6\x9e\ \xfc\x3d\xd7\x02\xea\x32\x60\xef\x05\x60\x73\xe9\xd9\x5b\x91\xa9\ \xa5\xd7\xd3\x77\xd6\x35\x56\x9e\x32\x9a\xf6\x5f\x65\xa2\xe3\xc0\ \xca\x3d\x34\x67\x1e\x89\xf0\x5b\x67\xfa\x62\x16\xc9\x04\xa5\xd0\ \xa8\x5f\x02\xeb\x0b\x7e\x57\xc3\xa7\xd3\x1e\xc8\x2a\x36\xb7\xf9\ \x25\xb2\xbf\xec\xad\x32\x1f\xc8\x3f\xc6\xca\x0f\xe9\x5b\xe4\xd8\ \xd9\x11\x81\xc2\x70\xf3\x55\x9a\xfa\xaa\xb3\x46\x53\xe5\x15\x20\ \xbd\x16\x08\xa7\x22\xfe\xd9\x24\x40\x45\x3e\x66\x7b\x44\x8c\x15\ \xf4\x86\xa6\xe4\x4e\xab\x5f\xb8\xa6\xbe\x33\x2d\x11\x04\x92\x36\ \xee\xd4\xb7\xa8\x34\x0c\x96\x0e\x44\x7d\x05\x94\x9f\xa7\x0a\x59\ \x16\x39\x9d\xda\x2d\x2a\x17\x41\x44\xbd\xa9\xea\x46\xf5\x15\x93\ \x79\xfb\xf7\x40\xc2\x41\x60\xe1\x76\x7a\x64\x23\x30\x93\xbe\xf1\ \x26\x89\xcf\x18\x47\x53\x66\x6e\x5b\x12\x6f\x99\x14\x75\xfb\xa4\ \x62\x97\x58\x77\x8a\xe5\xc6\x2f\x42\x53\xaf\xd9\xcf\x8a\x28\xa1\ \x7a\x2f\x50\xa9\x23\x91\x35\x96\xc3\x8f\xdd\x80\x7c\x1e\xe2\xb1\ \x24\x43\x57\xf1\xdd\xcd\x7b\x55\x0d\x1c\xcb\x3a\xee\x8a\x72\x20\ \x60\x0b\xe0\x46\x3f\x78\xb1\x1d\x61\xbc\x66\x95\x00\x31\x69\x5a\ \xc3\xa3\xbe\xb0\x26\x2f\x28\x7e\xa8\xb0\x35\xa0\x3a\x73\x97\xae\ \x39\xfd\x1b\x20\x85\x44\xca\xd9\xff\x8c\x5d\x75\x8d\x42\xfa\x8e\ \xa4\xe3\x3b\x7b\xb1\xaa\x53\x0b\xb5\x86\x9a\x6b\xe6\xb6\x82\x73\ \x24\x4f\xa3\x2a\x77\x50\x85\x4d\x0f\xbd\xa4\x24\x89\x75\x3b\x69\ \xe0\xad\xba\x66\x6b\xc5\xe2\x9a\x4b\xc5\x4f\x9e\x01\x84\xff\xac\ \xc1\x86\xba\x2f\xce\xd0\x95\xd6\x99\xcc\xb9\x74\x7e\x31\x83\xed\ \x3d\x71\xf3\x9e\x48\xf0\xb4\x1e\x8a\x3e\x2f\x4e\x28\xd2\xd7\xea\ \x4d\xe6\xdd\x54\x2e\x99\xde\x58\xca\x09\xf2\x67\x4b\xbd\xd3\xb8\ \xbc\x88\x38\x8e\x6a\x42\xb6\xa5\xe2\x03\xaa\x54\x7d\x4b\x26\x95\ \xd6\xd6\x3d\x42\xc0\x2a\xab\x72\x55\x91\xbe\xf2\x9c\xb9\x6d\x0f\ \x3d\x70\xda\x00\x08\xd3\x75\x66\xf7\x5b\x5b\x52\x73\xf5\x4e\x6b\ \x05\x5b\x92\x76\x02\x58\x56\xc1\x49\x61\x62\xdf\x2c\x60\x1e\x95\ \x08\x5e\x47\x52\x6a\x93\xd9\x87\x3b\x64\x59\x32\xdb\xac\x6d\x47\ \xc0\x5a\x4d\x62\xae\xd6\x70\xec\x1a\x70\xf2\x47\xa0\xec\xc8\xc3\ \x3e\x75\x66\x9c\xc4\xd8\x79\x92\x44\xf1\x51\x7d\x4b\xd5\x75\xfa\ \x82\xfb\x63\x79\x15\x10\x42\x83\xfa\x70\x32\x66\xd3\xa0\x4e\xfc\ \xaf\x71\xe4\x76\x0d\x63\xc4\x7d\x35\x8f\x21\x60\xf5\x43\xb2\x46\ \x6b\xb8\xf4\x33\xd0\x70\x1b\x58\x14\x67\x59\xb5\x3e\x9d\x24\x61\ \xe9\x71\x09\x49\x7c\x4d\x12\x69\xa7\x01\x15\x3d\x15\xb2\x8b\x24\ \x38\xae\xce\xc9\x0f\x17\xd8\x52\x4e\x49\xd5\x71\x49\xe0\x71\x3f\ \x0b\x89\x3c\xad\xa1\xe1\x16\x70\x82\xb2\x8a\xbf\x6a\x7b\x8f\xa8\ \x01\x7c\xd5\x4d\xa2\x7b\x07\xe8\xe6\xe8\x1f\x37\xde\x29\x20\x29\ \x25\xb3\xfc\xec\xad\xa2\x7a\x7a\x82\xed\x88\x20\x09\x25\x77\x86\ \x2f\x7d\xe1\xc5\xe4\x2a\xb6\xe6\xe0\xe9\xc7\x13\xe8\x4a\xd8\x88\ \x40\x4e\x01\x89\xf1\x61\xb1\xdb\xf4\x17\x0d\xe6\x36\x4d\xf9\x99\ \xdb\xd3\xfd\xe3\xc3\xf9\xbc\x17\xf1\x0a\xf1\x6a\x07\x10\xef\x7a\ \xd9\x7b\xaa\xde\xfb\x60\x7e\xe2\xb6\xec\xe3\x46\x53\x1a\x0d\x9d\ \xc0\x6a\x97\x73\x42\x16\x73\xc3\x86\x16\xf1\x9e\x23\x7b\xf8\xe2\ \x5f\x09\xd8\xc8\x2a\x5e\x22\x7a\x12\xbd\x1d\xe6\xaa\x57\xfa\x47\ \xe5\x34\x1c\xbf\x7c\xe7\xd7\xe4\xbc\xea\x46\x85\x7b\xc4\x02\x3e\ \x1f\x48\x0c\x92\x78\x43\xc2\x7a\x3f\x70\x8c\xfd\x9c\x49\x0e\xbe\ \xab\xd2\x8b\x6a\x1b\xee\x56\xdc\x04\x0a\xb8\xbe\x37\x71\xac\xd7\ \xd3\x13\x5f\x70\x42\xe2\xb8\xb8\x72\xb9\x69\x4f\x5d\xfb\x33\x01\ \x91\xbc\x87\xac\xb0\x0f\xf1\xba\x0c\x38\xc4\x6e\xe6\x92\xa5\xd3\ \xe7\xaa\x0f\x64\x97\x9e\x6a\x56\xc6\x14\xde\x78\x6b\xa2\xf3\x2c\ \x3e\x1f\x4b\xd8\x12\xe3\x24\x6c\xe5\xb3\x77\x26\xbb\x45\x6c\xd8\ \x55\x7d\xa1\xa5\xfe\x2e\x50\xf7\x0b\x70\x88\x5e\x3a\xf0\x13\x7b\ \x4e\x53\x97\x73\x42\xca\xb9\xc6\x8f\xfe\x00\xd4\x37\xfe\x41\xa0\ \xab\xac\x5c\x24\xef\x2b\x2b\x1a\x2e\x82\x11\x13\x08\xbb\x7e\x03\ \x87\xbb\xbc\x3b\x43\x99\x36\x78\xb4\x22\x90\xf7\x8e\x84\x93\xb0\ \x4a\x3b\x38\x0d\x7e\x5b\xb1\x40\x19\xb3\xc5\x70\x44\xd7\xd8\x7a\ \xf4\x72\x63\x6b\x2d\xaf\xb5\x97\x9b\x1e\xd4\xea\x9a\x1e\xd4\x5c\ \x6a\x7a\x70\xf8\x52\xd3\x7d\xed\x85\xa6\xfb\x87\xcf\x1b\xef\x1f\ \x3a\x67\x34\x89\xb5\x6e\xad\xfe\x65\x59\xb9\xa8\x7a\x24\x31\x91\ \x98\x22\x13\xb9\x12\xb3\x09\x77\xc2\x8b\xf0\x26\x7c\x89\xb9\xed\ \x20\x9e\x79\x8f\x98\xe4\x9a\xa8\x70\x8b\xd0\x5a\xe0\x1e\x59\xad\ \xf0\x88\x3a\x38\xc5\x53\x55\x35\x75\x4e\xf4\x3e\x07\x9f\x98\xb2\ \xe9\x7e\x71\xbb\x1d\xe7\x25\xec\xa0\xc7\xb6\xd1\xac\x22\xb6\xc5\ \xd5\xa2\xe7\xfd\x84\xe4\x52\x4a\x7b\x62\x06\xe1\x26\x13\xfa\x11\ \xf3\x09\xa1\x40\x10\x11\x42\x84\xb6\x43\x88\x7c\x17\x28\xbf\xf5\ \x93\x67\xdd\x64\x2c\x7b\x19\x7b\x88\xcc\xd5\x53\xe6\x7e\xf1\x04\ \x9e\x6b\x0b\xe4\x37\xee\xf2\x8c\xab\x8c\x31\x45\xc6\x1c\x29\x73\ \xf4\x91\x39\x6d\x3a\x65\x42\x42\x41\x4c\x25\x1c\x9e\x64\x42\xf9\ \xce\x41\x7e\xab\x90\x67\x27\xc8\x58\xc3\x65\xec\xbe\x32\x57\x77\ \x99\xfb\xc9\x63\x48\x0c\x23\x46\x10\xa3\x88\xd1\x32\x58\x87\x63\ \x28\xbf\x19\x25\xcf\x0c\x93\x31\x06\xc9\x98\x7d\x64\x8e\x1e\xd6\ \xea\x9f\xb8\x88\xe4\x01\xd1\xaf\xd7\x88\xfe\xc4\x80\xa7\x2d\x22\ \xf9\x4d\x7f\x79\xa6\x9f\x8c\xd1\x5b\xc6\x7c\x49\xe6\xb0\xb1\xfe\ \x7f\xfc\x06\xb3\xa4\x19\x9e\x6b\xe3\x34\xfa\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xbf\ \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\x04\x86\x49\x44\x41\x54\x78\x5e\xed\x97\x4b\x68\x5c\x55\ \x1c\xc6\x7f\xe7\x3e\xe6\xce\x9d\x4c\xdb\x74\xa6\x51\x62\x1f\x31\ \xb5\x3e\xaa\x56\x14\x6d\x4b\xc5\xa0\x45\x5c\x88\x42\xd7\x45\x44\ \x5d\x98\x4d\x57\xd2\xba\x13\x44\x5c\x88\xa5\xd2\x45\x49\x17\x51\ \x5a\xdc\xb9\x11\x8a\x62\x17\x15\x74\x40\x25\x62\x6c\xa8\x24\xe9\ \xcb\x3c\x6c\x4c\x5b\xd3\x47\xd2\xc9\x64\x3a\xaf\x7b\xef\xf1\xe4\ \xdc\x99\x0c\x32\x99\x6b\x4b\x07\x5d\xe8\x07\x3f\xce\xdc\x33\x7f\ \xbe\xf3\xdd\x73\xce\x7d\xf1\x9f\x97\xa0\xaa\xde\xde\xde\x97\x80\ \xad\xfc\x33\x1a\xec\xef\xef\xff\x0a\xc0\xa2\xae\xad\x9d\x6b\x37\ \xbc\xbb\x71\x63\x37\xa6\x69\x72\xfa\xa7\x32\x67\x06\x0b\x2c\x64\ \x7d\xee\x44\xc9\x55\x26\x9b\xb7\xba\x3c\xbc\x2d\x86\xef\xfb\x4c\ \x4c\x4c\x72\xf9\xe2\xd4\x7b\x40\x43\x00\xbe\xf9\x36\xc3\xf0\xe8\ \x19\x52\xa9\x35\x5c\xb9\x60\xf1\xc6\xbe\x67\x68\x85\x8e\xf6\x7f\ \xcf\x95\xa2\xc7\xc0\x0f\x19\x52\xe9\x0e\x36\x3f\xb0\x11\x80\x86\ \x00\xb6\x65\xd3\xde\x9e\x22\xbd\xa6\x03\xd7\x74\x89\xc7\xe3\xb4\ \x42\x5d\xf7\xdd\x43\x62\x55\x41\x9f\x98\x1a\x03\x60\xf9\x00\x31\ \x27\x8e\xeb\x26\x48\x24\x92\x38\x66\x1b\xe7\xce\x8d\x83\x65\x81\ \x1d\x03\xc7\x41\x25\x02\x55\xa3\xdb\x98\xa3\x88\x85\xff\x7b\x1e\ \x94\xcb\x8a\x12\x14\x8b\x50\x52\xe8\xb6\x04\x95\x32\xab\xd3\x2b\ \x31\x1d\x93\xc7\x1e\x7f\x8a\xf1\xb1\xf3\xcd\x03\x18\xa6\xa1\xb0\ \x14\x26\xea\x80\xed\xdb\x9f\xc4\xda\xb5\x0b\xb9\x76\x2d\x48\x89\ \xc8\xe5\x08\x76\xec\x20\xd8\xb3\xa7\xde\xef\xfb\x3a\x9c\xbf\x77\ \x2f\x74\x75\xa9\xfe\xdd\x61\x3f\x84\xfd\x07\x0f\x72\xe2\xc4\x19\ \xed\x19\x7a\x8b\xe6\x01\x02\x3f\x50\xf8\xf8\x9e\x22\xf0\xf4\x12\ \xf8\xed\xed\x58\x47\x8e\x22\x90\xc8\xb9\x59\xfc\x37\x7b\x71\xf6\ \xed\xc3\x53\xfd\xf6\xd1\x23\x48\x40\x9e\x1c\xc2\xfc\xe8\x00\xc6\ \xc7\x9f\xe8\x7a\x5b\xd5\x4b\x01\x02\x00\x89\xa7\xbc\x4c\xe5\x1b\ \x68\x64\x44\x00\x29\xf1\x03\x3f\xc4\xf3\x19\x19\xf9\x8d\x4d\xd7\ \x66\xc9\xbf\xf2\x2a\xc2\x10\x04\x2a\xd0\xf5\xb7\xde\xe6\x66\x60\ \xd0\x2d\x04\x93\xc9\x95\x60\x5b\xf0\xec\x73\x74\xef\xdf\xcf\xa4\ \x34\xd8\x74\x23\x4b\xfe\xb5\xd7\x21\x08\xc8\x6d\xdb\xc1\xdc\x0b\ \x2f\x6b\x2f\xac\xd0\x37\x90\x11\x01\x64\x20\x09\x34\x01\x81\x0c\ \xe8\xe9\x79\x82\xb9\xbb\x3b\xe8\x3c\xfe\x25\x35\xdd\x4b\xa8\x39\ \xc3\xa0\xc7\x32\x41\x4a\x2a\x43\x27\x29\x74\x77\xd3\xb3\x7a\x25\ \x73\xe9\x14\x9d\x5f\x1c\xa3\x2e\x18\x1d\x9e\x42\x04\x81\xf6\x96\ \x41\x44\x00\x90\x21\x32\xc4\x71\x1c\x84\x10\x61\x0b\x48\x04\x08\ \x89\x40\x40\x36\xcb\xfc\xee\xdd\xba\xce\x48\xa7\x49\x7d\xb8\x1f\ \xb3\x5a\x1f\x77\xe2\x48\x21\x41\xa2\x6b\x6b\x7e\xa0\x89\x0a\x20\ \x42\x44\xc8\xc9\x91\x29\x64\xdf\xa7\x4c\x4f\xfc\x01\x31\x1b\xe5\ \x0c\x8e\xad\x88\xc1\xd0\x29\xb0\x6d\x85\x09\x9e\x8f\xac\x78\x88\ \x62\x19\x8e\x1d\x67\xfa\x5a\x0e\xd4\x6f\x59\xae\x20\xca\xde\x92\ \x1f\x68\x9a\x07\x10\xa2\x86\x20\xd9\x6e\xb3\xf3\xe9\x47\xb9\x25\ \x99\x66\x18\x2a\x99\x60\x39\x9d\x1a\x1c\xa2\x58\x14\x35\xff\xe6\ \x01\x10\x02\xa1\x31\x58\xbf\xbe\x03\xdb\xb6\x69\x81\xb4\xd7\xd8\ \x58\x4e\xfb\x22\x22\x67\x40\x60\x18\xa6\x42\x90\x70\x5d\x7e\x3e\ \x75\x9a\x55\x2b\x92\xfa\xfe\x70\xfb\x0a\x2f\xeb\x6c\x6e\x41\x7b\ \x19\x86\xa1\x11\x51\x01\x0c\x21\x10\x86\xd0\x85\x17\x2f\xcd\x70\ \xf5\x7a\xb6\x1a\x0c\x90\x20\xa1\xe1\x58\x84\x7b\x4c\x4b\xd0\x28\ \x09\x94\x4a\x45\x4c\xc3\x08\xbd\xa3\x02\x84\x05\x3a\xa9\xc2\xd4\ \x4f\xc5\x56\xc8\x54\x5e\x42\xa1\xbc\x55\xfb\xb7\x4b\x60\xe8\x81\ \x2f\x4c\x8e\x31\x3d\x3d\x45\xa1\x90\xe7\x4e\xe4\xba\x6d\xac\x5b\ \xb7\x81\x74\xc7\x5d\xb7\xb2\x04\x46\x18\x40\x11\x48\xc9\x07\xef\ \xbf\xc3\xfc\xfc\x3c\xf9\x7c\x9e\x4a\xa5\xb2\x14\xd0\xb2\xac\x25\ \x6c\xdb\xd6\xad\x0a\xad\xc3\x03\xfa\x46\x56\x2e\x97\x97\xf8\xec\ \xf3\xe3\xda\x53\xa1\xc7\xa8\x0b\x8c\xc6\x19\x10\x08\x55\xb8\x3a\ \x95\xa6\xa6\x81\x81\x01\xfa\xfa\xfa\x38\x7c\xf8\x30\x87\x0e\x1d\ \xd2\xc7\xb7\x21\xed\xa5\x3c\x15\xfa\x2a\x8b\x0a\x50\xdf\x84\xae\ \xeb\x52\xd3\xc8\xc8\x08\xa9\x54\x8a\x74\x3a\xad\x19\x1e\x1e\x26\ \x4a\x52\x4a\xea\x42\x7b\xd5\x4e\x4c\x44\x5f\x86\xb5\x65\x10\x48\ \x59\x2f\x4c\x24\x12\xfa\xc9\x58\x9d\x62\xdd\x46\xa8\x61\x90\xb0\ \x5e\x52\xed\x8d\x98\x01\xaa\x09\x17\x43\xd4\x4d\xea\x9b\x27\x34\ \xbf\xfd\xab\x43\x82\x44\x11\x3e\xe4\xa2\xee\x84\x20\xaa\x80\xa0\ \x55\xf2\x03\x4f\xbf\x0b\x94\xcb\x25\x4d\xd3\x19\xf0\xbc\x32\xa5\ \x52\x89\x52\xb1\xa8\x77\x76\xcb\x24\x21\xb7\x90\x63\x66\xe6\x32\ \x37\xe6\x66\x9b\xcf\xc0\xcd\x85\x9b\xcc\x67\xb3\x38\x4e\x9c\x15\ \xc9\xb6\x16\x06\xf0\xb9\x30\x3e\xc6\xd8\xf9\xb3\xb4\x25\xdc\x0c\ \x30\xb8\x6c\x80\x42\xa9\xc0\xd5\xab\x33\x78\xbe\xa7\x03\x64\xbe\ \xfb\x91\x64\x32\xc9\xce\xe7\x5f\x6c\x78\x8e\x4f\x4d\xcf\xd0\x5c\ \x02\x89\xc4\x57\x3e\xb3\xb3\x37\x50\xdf\x01\x8c\x8e\xfe\x42\x3c\ \x66\x67\x1e\x7a\xf0\xfe\x03\x40\x66\xd9\x00\x97\xa6\x7f\xe7\xd7\ \xb3\xa7\xf5\xa6\xfb\xda\xb2\xf4\x86\xbb\x13\x49\x19\xbe\x5d\xf9\ \x9e\x47\x57\x57\x57\x66\xcb\x96\x47\xf4\xe0\xea\xab\x28\xff\x6f\ \x7c\x9a\x0d\xd6\x07\xaf\xeb\x7f\xfd\x09\x8d\xfd\xd4\x8a\xd6\x19\ \x48\x3f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x7e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x05\x10\x49\x44\x41\x54\x58\xc3\xad\ \x97\xcb\x8f\x14\x55\x14\x87\xbf\x73\x6e\x55\xcf\x30\x0c\x23\x4f\ \x71\x00\x01\x49\x7c\x60\x06\x08\x10\xdd\xb8\x91\x85\xee\x8c\xf1\ \x91\x18\xd8\x91\xf8\x88\x8f\x85\x09\xa8\xa0\x81\xa6\x65\xa3\x0b\ \x13\x17\x44\x63\xc0\x85\x31\x19\xdd\xf8\x27\x98\x31\x2e\x7c\x22\ \x46\xe3\x8b\x18\x41\x40\x07\x89\xc0\x00\x19\xa0\xbb\xaa\xee\x3d\ \x2e\xaa\x06\x6a\x7a\xaa\xbb\x81\x58\xc9\xc9\xad\xaa\xbe\xdd\xfd\ \xab\xdf\xf9\xea\x9c\x7b\xc5\xcc\xe8\x75\x6c\xda\xd2\x10\x40\x8a\ \x4b\xe9\x32\x75\xea\xc7\x6c\x6c\xb4\xde\xfb\x87\x01\x99\x12\xb0\ \x69\x73\x63\x07\xf0\x78\xa7\x79\x5d\xee\x5b\x0f\x31\x55\xdf\x9a\ \x18\x1b\xad\x3f\xd0\x2e\xe0\xe0\xde\x37\x77\x6f\xfc\xf4\xe7\xc0\ \x86\xe5\x81\xd9\xb3\x62\xbe\x3b\x0e\x23\x8b\x03\xaa\x70\xf0\xb8\ \xb2\x6e\x49\x46\x1c\x39\xbe\x3e\x62\xdc\xb3\x0a\x62\xa7\x7c\x7e\ \x38\xe1\xde\x95\x4a\x1c\x39\xbe\xff\x4b\xb8\xef\x76\x48\x33\xf8\ \xea\x8f\xc0\xfa\x65\x50\xab\x29\x87\x4e\xc0\xdd\x8b\x3d\x8a\x30\ \x77\x48\x79\xf5\xa5\xc6\xf8\xd8\x68\x7d\xe9\x0c\x01\x8d\x37\x76\ \x6d\x6c\x26\x8a\xf7\x81\xc8\x29\xaa\xb9\xe0\x24\x0d\x84\x10\x88\ \x23\x47\x1c\x0b\x21\x00\x04\x7c\x10\xd2\xd4\x53\x8b\x23\x00\x5a\ \x49\xca\xe0\x40\xcc\xe5\xa6\x67\x60\x96\xe3\xc2\x64\xca\xd0\x60\ \x4c\x2b\x35\xfa\x6b\x42\x2b\x81\xd9\x03\xf0\x5a\x07\x01\xe5\x14\ \x48\x9b\xcd\xed\x0c\x48\x07\xcb\xad\xed\xdc\x2a\x53\x52\x95\x82\ \x36\xd8\xb4\x88\xa8\x14\x31\x50\x2b\xc6\xa8\xf8\x7c\x8a\x81\x00\ \x64\x40\x0a\x24\xc5\x98\x95\x22\x14\x61\x63\xa3\x75\xdb\xb4\xa5\ \x51\x1f\x1b\xad\x37\xa6\x3b\x70\xf5\xcf\x73\x01\xc6\x0e\xe0\x91\ \x69\xf7\xaa\xdd\xa8\x7a\xea\x50\xe1\xc8\xd5\xb1\x12\xc2\xe9\x4f\ \xef\x30\xbe\xdc\xba\x63\xf7\xfa\x95\x43\x42\x30\x38\x74\xcc\x18\ \x19\xf6\x38\xa7\xfc\x7a\x4a\x19\x19\xce\x67\x7f\x7b\x24\x63\xfd\ \x72\x41\x44\xf9\xf5\x94\x70\xc7\xa2\x8c\x5a\x14\xf1\xc3\xdf\xb0\ \x66\x69\x40\x51\x0e\x1d\x37\x46\x96\x78\x9c\x2a\x43\x83\xca\xcb\ \xdb\xaa\x18\xb8\x2a\xc0\x15\x02\xbe\x78\xeb\xed\xfa\xfa\x0b\x93\ \x9e\x5a\xec\xb8\xdc\xf2\x60\x46\x5f\x2d\xc2\x80\x24\xf5\x44\x4e\ \xc9\xb2\x80\x73\x4a\x1c\x43\xb3\x15\xe8\x8b\x1d\x66\x86\x0f\xe0\ \x9c\xe0\xbd\xe1\x9c\xd0\x6c\x65\xcc\x19\x8c\x70\xca\x4c\x01\x6d\ \xf6\xbb\x22\x05\xaf\x74\x48\x81\x76\x81\x30\x54\xa4\xc0\x66\xa4\ \xa3\x3d\x05\x15\x02\x5c\x09\xba\xbe\x22\xfa\x8b\xb1\x56\xc4\x14\ \xa8\x53\x80\x25\x45\xb4\x80\x66\x31\xb6\x4a\x50\xfa\x22\x0c\xd8\ \x3d\x36\x5a\xdf\x33\x53\x80\xb1\x13\x78\xb4\x0d\x36\xed\x00\xa1\ \x54\xbc\x82\xd6\xc3\x89\x1e\x0e\x18\xdf\xbe\xb8\xa7\xbe\xe1\x96\ \x81\x3c\xaf\x3f\x1c\x33\x46\x96\x0a\xa9\xf7\xfc\x76\x52\x58\xb7\ \x42\x09\x1e\x7e\x19\x87\x35\xcb\xa1\xd9\xf4\x1c\x3e\xa5\x6c\xb8\ \x4d\x68\xb6\x02\x3f\xfd\x0d\x6b\x6f\x15\xa2\x48\xf8\xf1\x18\xac\ \x1e\x0e\xc4\x35\xe5\x97\x71\x58\x35\x3f\x50\xab\x29\x2a\x81\xed\ \xdb\xf7\x56\x32\xa0\x18\xdf\xec\xdb\x57\xdf\x30\x79\xd1\xb0\x60\ \xa8\x53\x54\x0d\x9f\x41\x92\x65\xa8\x2a\x91\x53\x42\x30\xe2\x5a\ \x5e\x26\x2f\x5d\x4a\x98\x3b\x54\xe3\x72\xd3\xc0\xc0\x45\x05\x78\ \x91\x80\x41\x9a\xe6\x22\xb2\x24\x00\x30\x77\x48\x79\xf6\x85\x12\ \x84\xf7\x6f\xde\x33\x65\xe5\xd4\xbb\xff\xd8\x95\xeb\xe9\x69\xb8\ \xde\x14\x84\xb6\xeb\x72\x1d\x38\x0b\x3c\x38\x36\x5a\xb7\xe9\x0e\ \x4c\xaf\x7e\x53\xb0\xf5\xb7\x41\xd8\x57\x00\xea\x4a\x85\xc8\x17\ \xa0\xb5\xda\x20\x6c\x96\xe0\x2c\x57\xc5\x5d\x55\x10\x76\x13\xd0\ \x8f\xf1\x2c\xf0\x40\xc9\x91\xf6\x23\x5c\x03\x84\x57\x1c\xa8\x82\ \xb0\x97\x80\x4f\xf6\xbf\x53\x5f\x3d\x79\x39\xf0\xe7\x69\xe1\xce\ \x25\x42\x92\x04\x8e\x9e\x16\x56\x2c\x30\x54\x84\xbf\xce\x0b\x2b\ \xe6\x43\xe6\x03\xbf\x9f\x32\xee\x1a\x76\xb4\x5a\x29\xc7\x26\x1c\ \x2b\xe6\x7b\xe2\x28\x62\x56\xbf\xf0\xcc\x0b\x8d\x0e\x10\xf6\x10\ \xf0\xfe\xbb\xf5\xd5\x69\x06\xa9\x07\x15\x43\x04\xd2\xd4\x88\xa2\ \xdc\x90\x2c\x0b\xf8\x10\x18\x9c\x1d\x91\xa6\x06\x48\x3e\x27\x0b\ \x38\x55\x0c\xe8\xab\xc1\xd3\xcf\xdf\x98\x80\x72\x0a\x6e\xb4\x0e\ \x5c\x73\x0a\x5c\x07\x08\xfb\x4b\x2d\xb9\x0a\xc2\xa4\x00\xaf\x0a\ \x42\x7f\x2d\x10\xca\x34\x07\x8c\x6d\xc0\x43\x5d\xaa\x21\x5d\x5a\ \x71\xd7\xd7\xb0\x53\x2f\x98\xee\x80\xf1\xd9\x87\xfb\xeb\x6b\x5b\ \x2d\x38\x31\x01\xb7\x2d\x82\x56\x62\xfc\x73\x41\x58\x3a\x17\xbc\ \x0f\x9c\x98\x30\x96\x2f\x50\xcc\x8c\xf1\x73\xc2\xf0\x50\x20\x8a\ \x1c\xe3\xe7\xe1\xd6\xf9\x60\x06\x47\xff\x0d\x2c\x9b\x27\x38\x15\ \x9c\x33\xb6\x3e\xf7\x7a\xc7\x6e\xa8\xa5\x66\x54\xc3\xf8\xec\x83\ \xf7\x76\xaf\x4b\x12\x43\x44\x50\x15\xd2\x2c\x10\x3b\xbd\x02\x97\ \xaa\x60\x06\x4e\xc1\x07\x90\xc2\x17\xa7\x82\x0f\xb9\x01\x91\x53\ \x92\x34\x9f\x3b\xd0\x2f\x6c\x79\xaa\x77\x3b\xce\x97\x60\x79\x0a\ \x1e\xfe\x1f\x52\xd0\xbd\x19\x15\x0b\x12\xad\x68\xc7\x71\xa9\x05\ \xdf\x68\x3b\xce\x2a\xda\xf1\xae\x99\x6b\xc2\xcd\x8d\x9d\x15\xab\ \x62\xa9\xe8\x09\xd7\xea\x40\xf9\x9c\xde\x0e\x6c\x6e\x1c\xfc\xf8\ \x40\x7d\xe3\x89\x33\xc6\x92\x79\x79\xae\xcf\x5c\x54\x16\xce\x36\ \x44\xe1\xe4\x84\xb1\x6c\x81\x92\x66\x81\xb3\x97\x94\x85\x83\x60\ \xc1\x38\x7d\x51\x58\x34\xc7\x10\x84\x7f\xce\x1b\x37\xcf\x01\x51\ \x38\x3d\x29\x2c\x1a\xcc\xd9\x39\x79\xce\x58\x7c\x93\xe0\x14\x22\ \x07\x4f\x3c\xd9\x61\x63\xf2\xd1\x81\xfa\x46\xef\x0d\x33\xc9\x1f\ \x4f\x72\x8a\x55\x73\xfd\x3e\x04\x40\x4a\x80\x81\x6a\x3e\x57\x1d\ \x84\x90\x57\xbf\x10\x0c\x15\x48\xb3\x5c\x80\x08\xf9\x08\xc4\x71\ \x67\x01\x3b\x3a\xa4\xa0\x53\x74\xda\x98\x74\x5e\x0b\x5e\xc7\xc6\ \xa4\xaa\x32\xc6\xa5\x22\xe5\x2a\x36\x26\xbe\xd4\x72\xd3\xb6\xca\ \x77\x85\x8b\xf6\x5d\xb3\xb4\x6f\xcf\x3b\x88\x70\x15\x21\x25\x01\ \x56\xa2\xbc\x1c\x5d\xff\x1c\xe0\x3f\xb4\x3e\x33\xee\x59\x4a\xce\ \x0f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x27\ \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\xee\x49\x44\x41\x54\x58\xc3\xa5\x57\xdb\x6f\x1c\x67\ \x15\x3f\xdf\x37\x33\x3b\xbb\xf6\xde\xf1\xae\xd7\x4d\x4c\xec\xc4\ \xbd\xd8\xc6\x4d\x2f\x69\xac\x06\xa9\xa1\x69\x65\x1a\x55\x20\xa1\ \x08\x81\x84\x90\x5a\xfe\x86\x3e\xf5\x91\x8a\x17\xf2\xc8\x1b\x54\ \x15\x2f\x51\x2a\x11\xc2\x25\xbc\x24\xa0\x2a\x42\x7d\x08\x22\x02\ \x29\x50\xb5\x6a\x9c\xae\x6f\x2a\x8e\xd7\x97\xb5\xd7\x7b\x9d\xcb\ \xd7\xdf\x39\x33\xeb\x26\x24\xb5\x70\x98\xf5\xfa\x9b\xf9\x76\xe6\ \x3b\xe7\xfc\xce\xef\xfc\xce\x37\x8a\xf6\x39\xe6\xe6\xe6\x66\xdf\ \x79\xe7\xa7\x3f\xaf\xd5\xd6\x15\x0e\xa3\x14\xcf\xca\x3f\xd2\xf8\ \xf0\x1f\x5f\xaa\x78\xce\xec\xfd\x8a\x73\x63\x54\xa5\x52\xd1\x17\ \x2e\x5c\x78\xf7\xfc\xf9\xf3\xbf\xfe\x2a\x1b\xf6\x7e\x0e\xb8\xae\ \x5b\x9a\x99\x79\xfa\xa5\x20\x08\x28\x0c\x43\xd2\x5a\x13\x1c\x89\ \x46\xa3\xc8\x68\x43\x5a\x69\x18\xe3\x39\x18\x8f\x1d\xe4\x7b\xe0\ \x00\x59\x96\x45\xd9\x6c\xf6\xaf\xfb\xd9\xd8\xd7\x01\x2c\xd2\xee\ \x76\xbb\xb4\xb1\xb1\x21\x0b\xf6\x1d\x60\x83\x2a\x36\xae\x30\x6f\ \x30\xaf\x79\xc4\xb5\xd6\x91\x71\xad\x0c\x7d\x6d\xa8\x4c\xed\x76\ \xbb\xb9\x9f\x0d\xbd\x1f\x00\x2f\x9c\x98\x7d\xd3\xb2\x2d\xb2\x6d\ \x1b\x0b\x5b\x12\xa5\x46\x54\x96\xa5\xc8\xd2\x98\xe3\x68\xf9\x9a\ \x1d\xc3\x88\x5b\x31\x2a\x89\xdc\xe0\x77\x1b\x13\xcf\x3c\xf3\xec\ \xf7\x2a\x95\xb1\xb1\x03\x3b\x30\x36\x36\x96\xaa\x8c\x8c\x7c\xdb\ \x84\x8c\x44\x18\xc1\x1b\xe2\xf6\xd0\xc8\xef\x21\x3e\xca\x8a\x6f\ \x8e\xb0\xa7\x80\x2c\xfe\x17\x4d\x21\x65\xdd\xae\x47\x13\x13\x4f\ \x3c\x3f\x3e\x3e\x72\xe4\xc0\x0e\xec\xec\xec\x84\xad\x56\xbb\x19\ \xe5\xde\x12\x58\xe5\x6e\xbd\x47\x33\xfc\xc5\x8f\x07\x91\x55\x8b\ \xad\xf7\x9d\x12\x94\x88\x76\x77\x77\x03\xcf\x33\xfe\xa3\xa4\x00\ \x06\x38\x9f\xc1\x7d\x51\x72\x64\x7b\x55\xd0\x3f\x2c\x2b\x76\xc9\ \x62\x68\x62\xa7\x34\x85\x78\x26\xba\xdd\x7f\x14\x0e\x14\xc9\x47\ \x64\x12\x39\x1b\xe7\x28\x31\x06\xf7\xdc\x11\xf4\xaf\x8c\xf9\x12\ \x95\xfe\xc2\x56\x20\xe9\x0a\x43\x9f\x94\xaf\xcc\x81\x1d\xd8\xdc\ \x9c\x6f\x60\xc1\x5e\x88\x45\x24\xfd\x80\xd4\xc0\x09\x39\x17\x24\ \xe8\xcb\x68\xef\x2f\x9d\x68\x08\xac\x3e\x68\x61\xcf\xf4\xb6\xf7\ \x2d\xc3\x81\x81\x81\xc7\x86\x86\x86\xa6\xfb\x4b\xa2\xd4\xc2\x91\ \x91\x91\x74\x22\x61\x0f\x16\x0a\x05\xc2\x6f\xf4\xa8\x47\x36\x9b\ \xd3\x85\xc2\xd0\xb7\x8e\x1d\x3b\x56\x46\x75\xe8\x28\x63\x96\x46\ \x79\x2e\x2f\x2c\x2c\x7c\x22\x3e\x9e\x3c\x79\xf2\x67\x47\x8f\x1e\ \x7d\x1b\x82\x13\xa0\x74\x8c\x6d\x3b\x1c\x88\xbe\x7e\xfd\xba\x7e\ \x6a\xf2\x49\x44\xab\xc8\x67\x32\x5a\x26\xe6\x45\xac\x01\xd0\x02\ \xf6\x58\x33\x19\xd5\xbd\x20\x44\x38\x25\x12\x09\xaa\x56\x97\xe9\ \xc9\xa7\x26\x4c\xb9\x54\xf2\x71\x28\x46\x51\xa3\xae\xb7\xb7\xb7\ \xff\x7c\xe9\xd2\xa5\xd7\x04\x81\xd1\x43\xa3\x4f\xa7\xd3\x69\xea\ \xf5\x7a\x64\x27\x5c\x55\xc8\x65\x45\x4a\x57\x56\x96\x89\xbf\xff\ \xef\x31\x3e\x3e\xaa\x86\x87\x87\xf5\xca\xd2\x12\xf5\xc0\x09\xdd\ \x0b\x29\x9f\xcf\x4f\x65\x32\x99\xa2\x0d\x78\x33\x2f\xbd\x7c\x7a\ \xf2\xf5\xb3\x67\x29\xe1\xba\x1a\xd2\x49\xb9\x5c\x8e\x96\x97\x97\ \x59\xc5\xe8\xf8\xf1\x19\x4a\x26\x07\x38\x4d\x94\x4a\xa5\x58\x9e\ \xc9\xc5\xe8\x58\x56\x2c\xcb\xcc\x74\x23\x52\x8d\x08\x25\x08\x7e\ \xae\xdd\xee\x40\x07\x3a\x74\xeb\xd6\xbf\xe8\xec\xd9\xd7\xcc\x99\ \x33\x67\x94\xe7\x79\x54\xaf\xd7\xc1\xaf\x4d\x9a\x9f\x9f\x2f\x7f\ \xf8\xe1\xdf\x1e\xb7\xf1\x60\x7e\xbd\xb6\x36\xf4\x9b\x4b\xbf\xa5\ \xd4\x40\x4a\x65\x06\x07\x69\x7a\x6a\x8a\x3e\xfa\xf4\x53\xfa\xe0\ \x83\xbf\x00\xc2\x05\x40\xe9\x90\x03\x35\xb4\x00\x69\x82\x15\xd0\ \xd6\x7b\xb2\xac\x44\x0f\x43\x0a\x90\x16\xdf\x67\x47\x3c\x8c\x01\ \x79\x5e\x47\x9c\xba\x75\xeb\xdf\x74\xe8\xd0\x63\x6a\x76\x76\x56\ \x55\xab\x55\xea\x74\x7a\x28\xa8\x0e\xa5\x06\x07\x1d\xa5\xfc\x8a\ \x0d\x42\xb8\xff\xf9\x7c\xd5\x76\x12\x96\xe4\xcc\x76\x5c\xda\xaa\ \x6f\xd2\xc7\x1f\x7f\x42\xb5\xbb\x9b\x20\x4c\x15\xc6\x6c\x31\x66\ \xb3\x41\x9b\xcf\xb5\x30\x9c\xb9\xa0\x58\x98\x4c\x3f\xf7\x81\xd4\ \xbd\xef\x7b\x18\xa3\x06\xc5\x11\x5f\xbb\x76\x8d\xa6\xa7\xa7\xe9\ \xc6\x8d\x1b\x34\x3a\x7a\x98\x56\x57\xef\x12\x93\x1b\xcf\xa7\x6c\ \xf0\xce\x6d\xb5\x5b\x56\x6f\xbb\x47\xc9\x44\x92\x12\xc9\x04\xb5\ \x9a\x4d\x2a\x95\x2a\xf4\xa3\x1f\xff\x10\x91\x84\xa2\xe9\x71\x73\ \x12\x55\x74\x1c\x2d\xba\xc7\xfa\xa3\x94\x25\xda\xcf\x5f\x25\x6a\ \x19\x21\x23\xd5\x04\xe7\xbc\x8e\x47\x83\xd9\x41\xba\x78\xf1\x22\ \xab\x2b\xdd\xb9\x33\x4f\x4d\xa4\xe7\x9b\x2f\xbe\xc8\x28\x26\x19\ \x01\x67\x6b\x6b\x4b\xe3\x0b\x0e\x00\x62\x3b\x41\x0e\x90\x28\x14\ \xb6\x69\x7d\x7d\x83\x9a\xad\x06\x9a\x8c\x13\x35\x98\xb8\x23\x72\ \xce\x6d\x8e\x1c\xe7\x96\x62\x2e\xa0\x13\xb2\xf4\xca\x39\xa7\xc7\ \x08\x12\xdc\xc6\xf9\xfe\xb1\xaf\x8f\x51\xbb\xd3\xa6\x2c\xc8\x0d\ \x57\xa9\x98\x4f\xd2\xc6\xe6\x3a\x07\xe7\xd8\x80\xc2\x01\xe9\xf8\ \x19\xb2\xe1\x00\xe7\xd7\x45\x19\xb2\x91\x84\x63\x93\x5b\x2c\x89\ \xb1\x30\x36\x4e\x6c\x00\x0a\x68\xa8\x1f\xa9\xa1\x28\x70\x2d\x8e\ \xb0\x61\x15\xb7\x65\x9e\x63\x27\xba\x5e\x97\x4a\x43\xa5\x58\xd1\ \x91\x4a\x09\x82\xe8\xc8\x91\xc3\x09\x29\x43\x07\x51\x5b\x29\x10\ \x2d\x8e\x94\x11\xe0\xf1\xf3\xd5\x26\x34\xc0\x48\x83\x91\x5a\xa7\ \xa8\xee\x59\x62\xf9\x23\x68\x50\x5f\xbe\x1e\x94\xc5\x7e\x65\xa4\ \x06\x53\x84\x1a\xc2\x63\xdc\xaa\x81\x1a\x02\x4c\xb9\x49\xe9\xa8\ \xe2\x40\xa7\xdb\x22\x03\x06\x6b\x27\xea\xeb\x5c\x8a\x4c\x98\xdb\ \xb7\x6f\x53\x3a\x9d\x89\x34\x5e\x7f\x85\xf4\xc6\x7d\x8a\x49\xf7\ \xdf\x37\x70\xb4\xe8\xa8\xb4\x50\xfd\x8c\xde\x78\xf3\x27\x52\x9e\ \xbc\xb7\xb0\x11\xb7\x74\x59\x7c\x98\x84\xa1\xe7\xf9\x66\x67\xa7\ \x81\x12\xe9\xc4\xdb\x2d\x43\x50\xaa\x18\x42\x2e\x1b\xc4\xcb\x98\ \xe1\xda\xc4\xdd\x90\x11\x62\x78\x2d\xee\x78\x7d\xf5\x93\x6d\x62\ \x18\x2b\x61\xb4\x3d\xe3\xdc\x36\x5b\x1d\x59\x8f\x75\x80\x2b\xcd\ \xf1\x1c\x51\x52\x68\x46\x68\x43\x14\x3c\xb8\x1a\xa6\xd3\x29\x61\ \xb6\x83\xbc\x33\x21\x5f\x9d\x9b\xa3\x7f\xde\xfc\x07\x3d\x7f\xe2\ \x39\x6a\x34\x1a\x91\x31\xc7\x11\xe7\xa4\x41\xa9\x28\x5e\x01\x06\ \xe7\x5d\x44\xca\x24\xe5\x2f\x0b\x16\x8f\x0e\xee\x5f\x82\xfa\x4d\ \x4e\x4e\x23\xb8\x16\x41\xf9\xe2\xbd\xa2\x23\x82\xb6\xba\xba\xda\ \xe3\x2a\xe8\x16\x0b\xc5\x80\x17\x14\x82\x00\xa2\xc6\x6e\x83\x26\ \xc6\x8f\xd1\xd2\x42\x95\xa0\x60\x92\x0a\x46\x83\xf3\x99\x48\xb8\ \x22\x36\x26\xee\x09\xd1\xce\xc0\x50\xbe\x58\x10\x27\x79\x0d\xbe\ \x8f\xa3\x4d\x0f\xa6\x45\x41\x27\x26\x26\x68\x79\xb1\x4a\x59\xd4\ \xbe\x8a\xd1\x73\x41\x78\xce\x3e\xa7\xa0\x9d\x4c\xba\x5e\x32\x99\ \x24\xdf\xc3\xc6\x01\x24\x71\xa1\x56\xdb\x3b\x75\x3a\x71\xe2\x05\ \x3a\x77\xee\x9c\x20\xc0\x9b\x53\x96\x59\x8e\x8a\x9d\xe1\xf3\x24\ \x88\xc4\x7b\x02\xde\x1d\x6a\x10\xab\xd9\xde\x15\x22\x37\x00\x77\ \x11\x1d\x94\x25\xfd\xef\x37\x6f\xd2\x95\x3f\x5c\xa1\x16\xd6\xd4\ \x8d\x6d\x04\x98\x90\x72\x65\x27\x11\x40\x93\x1d\xd8\x45\xd4\x2d\ \x5c\xe4\xba\x7e\x17\xcd\x3b\x14\xad\x1e\x1e\x2e\xd3\xf1\x67\x9f\ \x8b\xd8\xec\x83\xaf\xd8\x17\xa2\x45\xd3\x0e\x94\x8d\x89\xca\xcd\ \x8b\xa3\x74\x8c\x4d\x1d\x8c\x0a\x5c\xc9\x0c\x64\x44\x05\xf3\xc5\ \xa2\x18\xe7\xe3\x1b\x33\x33\x74\xe5\x8f\x7f\x42\x2a\xee\x08\x7a\ \x4a\xd9\xb2\xc7\x2c\x97\xcb\x0c\xdf\xba\x0d\x75\xda\x86\x03\xd5\ \x53\xa7\x4e\x8d\x6c\xd5\xb7\x40\x0e\x9b\x76\x1a\x75\x0a\xe0\x61\ \x2e\x97\x91\x45\x3a\xbd\x8e\x30\xb8\x66\x6a\x28\x21\x9b\x02\x90\ \x95\x11\x60\x54\x38\x65\xec\x08\xc3\xaa\x81\x6a\x13\x73\xdc\xa8\ \xf8\x77\x26\x1c\x6f\xd7\x0b\x85\x22\x9d\x3e\x7d\x46\xd0\x63\xf6\ \xbb\xae\x43\x8b\x8b\xcb\xcd\x95\x95\x95\x05\x2e\xc3\xe0\xf2\xe5\ \xcb\xbf\xb8\x7a\xf5\xea\x47\x41\xb4\xb9\x34\x5e\xe0\x85\xaf\xbc\ \xfc\xea\x2b\xdf\x79\xfd\xbb\x8f\xf3\x04\x47\x53\x2a\x95\x61\xb0\ \x05\x07\xb0\x68\xfc\xe2\xc1\x0b\x1a\x13\x75\x42\x2b\xde\x17\x0e\ \xc0\x39\x17\xe9\xdc\xdb\x2e\xc2\xc1\x64\x32\xb1\xf5\xde\x7b\xbf\ \xfa\x5d\xab\xd5\xf2\x94\x1c\x96\xee\xf5\x5a\xb7\x11\x54\x4d\x74\ \x00\x3b\x93\xf7\x31\xbc\x7f\x6f\x0d\x7f\xff\xdc\x0f\x7e\x8f\x8e\ \x25\x0e\x2c\x2e\x2e\x51\xb1\x98\xa3\xf5\xb5\x4d\xc9\x7f\x06\xc8\ \x14\x01\x73\xe0\x05\x54\x07\x57\x98\xd1\x4c\x36\x18\x10\xa6\xd7\ \x37\xeb\x48\x43\x5e\xd6\x69\x34\x77\x01\x77\xa5\x0e\xa4\xdf\x42\ \x45\x6c\xfd\xaf\x6f\x46\x4e\xad\xb6\x96\xab\x54\xca\xf1\xae\xdb\ \x17\xd2\xb0\x61\x8e\x96\x91\x5a\x44\x79\xd9\x0c\x3b\x1c\x62\xce\ \x64\xf3\x79\x70\xc5\xa7\xb5\xb5\x35\x51\xc9\xbe\x03\xf9\x6c\x0e\ \x4d\xa8\x31\x80\x68\xdd\x83\xbc\x9a\xd9\x3b\x8d\x5d\x8f\x21\xe6\ \x63\x6a\x6a\x92\xee\xdb\x73\x1d\xe0\x88\xd4\xb0\xd9\xa9\xd5\x6a\ \xe6\x20\x0e\x74\xd6\x6b\x77\xdf\x5d\xa8\x2e\x3c\x11\x84\x41\x4a\ \x47\xdb\x9e\xfb\x84\x56\xdd\xfb\xaa\xfc\xe0\x3b\xa5\x8a\x34\x82\ \x42\xa4\xa7\x57\xad\xce\xff\x12\xe7\xb5\x87\x3a\xb8\x8f\xf3\x16\ \xf6\x6d\x87\xc1\xe6\xe2\xc3\x1c\x85\x01\xcd\x9b\xcc\x07\x22\xb2\ \x6d\x45\x7b\x2f\xee\xe4\xa3\x12\x6a\x90\x61\xde\x58\xf6\x1e\x66\ \xe4\x0b\x0e\xbc\xe6\xb9\xc1\xb6\x6c\x63\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\xbc\ \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\x83\x49\x44\x41\x54\x78\x5e\xb5\x57\x4b\x6c\x54\xd5\ \x1f\xfe\xee\x9d\x3b\x8f\x5b\x68\xe9\x50\x86\x3a\xd8\x48\xb5\x04\ \x4a\x78\x88\x0a\x21\xd4\x47\x5c\x28\x44\x43\x02\xc4\x05\x89\x1b\ \x16\xba\x91\x90\xb8\x71\xe5\x23\x3e\x12\x37\x24\xae\xdc\xb8\xd2\ \xb0\xd0\x95\x09\xff\xe4\xbf\x20\x04\x2b\x2a\x68\x95\x4a\xa0\xb4\ \x4c\xe9\x93\x96\x4e\x3b\xd3\xce\xab\xf3\xb8\xcf\x73\xef\x1d\xe7\ \x77\x72\x4f\x32\xc9\x64\x8a\x93\x8c\xbf\xe4\xcb\x79\x4c\xe6\x7c\ \xdf\xef\x71\x7e\x67\x46\xaa\x56\xab\x68\xc5\x9e\x3b\xfd\xe9\x4b\ \x00\x0e\x01\x08\xe3\xf1\x36\x06\xe0\xf6\x9d\xff\x7d\x5e\x40\x13\ \x53\x5a\x24\x0f\xc7\xb7\x47\x5f\xfd\xfe\xab\x0b\x1f\xaa\x11\x45\ \x05\x00\x49\x02\x37\x7f\x40\x40\x06\x84\x4f\xa3\xe3\xf3\x37\xce\ \x7f\x76\xe9\x0b\x00\x3f\xa1\x89\xc9\x68\xcd\xb6\x1f\x39\x38\xb0\ \xc3\x45\x40\xb5\x1d\xc0\x64\x80\xeb\x01\x8e\x0b\xb0\x1a\x3c\x0f\ \x60\x4e\x0d\xcc\x41\x49\x63\x38\x34\xf8\xd4\xcb\x1f\xbc\xf3\xe6\ \xbb\x35\xe1\xaf\xb5\x4b\x00\x1c\xc6\xc0\x4c\x8d\x7b\x1e\x52\x7c\ \xaf\x25\x0e\x61\xa8\x54\x2a\x28\x19\x0e\xf2\xc5\x0a\xde\x3a\x7e\ \xf8\xec\xeb\x2f\xee\x7f\x83\x52\xd7\x52\x0a\xde\xfe\xe8\xf2\xa1\ \xba\x25\x9f\xf7\xf5\xf5\x47\x97\x52\xeb\x83\xd7\xfe\x9c\x05\xf3\ \xb8\x76\x44\x42\x0a\x9e\x1f\x8c\xe3\xe9\x27\xa3\x10\x56\x2c\x95\ \x60\x4b\x1d\xe8\xea\xde\x86\xc2\x7a\x0e\x9f\x9c\x3f\xfd\x5e\x26\ \x5f\x36\x6b\x22\xee\xd5\xea\xa1\xd4\x4c\x80\x20\xa6\x93\xce\xbd\ \xb0\x37\x7e\x4e\xec\xed\x1f\x88\x75\xd3\xc8\x6c\xa6\xe8\xba\xb6\ \x65\x60\xe7\x76\x44\xbb\x54\x04\xe4\x2a\x6c\xe6\xe1\xc7\x9f\x13\ \x38\x31\xb4\x1b\xfb\x9e\x89\x81\x8c\x31\x06\xcb\x33\x41\x66\x07\ \xb6\x40\xd7\x75\xf5\xec\xc9\xa1\xc3\x77\x27\x17\xf7\x03\xf8\xe3\ \x71\x11\x38\x75\xee\xe4\xc1\xf7\x4f\x1c\x1b\xe8\xc7\x06\x66\x59\ \x16\x8a\xc5\x22\xfa\x7a\x7b\x70\xe6\x95\x7e\x8c\xdc\x5f\x46\x4f\ \x57\x04\xbd\x3d\x9d\x90\x24\x09\xa6\x61\x80\x2c\x10\x50\x90\xcd\ \x56\x90\xc9\x64\xe4\x7f\x5d\x03\x9a\xa6\x71\x2f\x36\x32\xc7\x71\ \xe8\xd0\x1a\x41\x00\xbb\x76\xf6\x62\x4f\xdf\x66\xdc\x4a\xac\x20\ \x95\x2d\x43\x8d\xa8\x98\x9f\xba\x83\xaf\x2f\x7e\x8c\x4b\xdf\x5c\ \x44\x72\x71\x9a\x6a\x47\xda\xa0\x06\x5a\x07\xf5\x0f\xc3\xf7\x52\ \x51\x14\x3c\xbb\x27\x8e\xc0\xdc\x1a\x6e\x4f\xae\xe0\xf8\xd1\x7e\ \x1c\x39\x3a\x84\xc1\xbd\xfb\xe0\x55\x65\x74\x76\x76\x62\xb5\xb2\ \x50\x6d\xab\x00\x21\x42\xd8\xa6\x4d\x9b\x70\x60\x57\x2f\xee\x4c\ \x4d\x60\x39\x67\xe2\x89\xde\x3e\xc4\x6a\xa0\xdb\x62\xdb\x0c\xa1\ \x50\xca\x6b\xab\x00\x59\x96\x79\x1a\x86\x87\x87\xa9\x16\xf8\xba\ \xa3\xa3\x03\xa6\xae\x08\x61\x9c\xdc\xb0\xa9\x5e\xa8\x57\xb4\xa9\ \x0f\x08\x84\x42\x21\xc4\xe3\x71\x9e\x86\x72\xb9\x4c\x35\xc3\x53\ \xe1\x54\x25\xe8\x26\x60\x3b\x1c\x30\x18\x40\x7a\x98\x0b\xb4\x35\ \x02\x54\x7c\x24\x80\xf2\x4b\x91\xa0\xb5\x6d\xdb\x98\x48\x27\xe1\ \x56\x79\x87\x84\xe9\x70\x72\x98\x5c\x44\x9b\x23\x40\x57\x2d\x1c\ \x0e\x63\xeb\xd6\xad\x88\xc5\x62\x88\x46\xa3\x3c\x05\x90\x02\x30\ \x98\xc4\x05\x04\xea\x4e\x37\xec\xb6\x0a\x68\x2c\x42\xaf\xea\xc1\ \xf3\x3c\x30\x62\x06\x50\x34\x78\x0a\xb8\x6d\x0e\x53\xdb\x6e\xb3\ \x00\x22\x17\xa3\xeb\xba\x90\x20\xf1\xb9\xc7\xf9\x29\xfc\x7e\x1a\ \x18\xf0\xa8\x00\x68\x36\xf0\x9f\x5c\x43\x02\x79\x2e\xd6\xb2\x2c\ \x41\xb3\x80\x80\xcd\x23\xc0\xbd\xf7\x78\x4d\xb4\x31\x02\xc2\x7b\ \x22\x16\x23\xed\xf1\x37\xc0\xf6\x38\xa1\xc5\x80\xbc\xc6\x53\xc1\ \xe7\x26\x6b\x73\x04\x28\xec\x44\x2c\x0a\x92\xe6\x74\x0d\x5d\x57\ \x46\x41\x03\x5c\x05\xe8\xd9\xcc\x3d\x47\x38\xd8\xc6\x6b\x28\xc2\ \x4e\xa4\x34\xd2\xa3\x24\x04\xf1\x74\x54\x5d\x44\x82\x40\xbc\x1b\ \xdc\xd2\x45\xa0\x33\x44\x51\xaa\xd2\x17\x1a\x05\xb4\x1a\x76\x41\ \x26\x42\x4e\xf7\x9f\x44\x04\x83\x41\x7a\xc4\xf8\x35\xac\x58\xc0\ \xec\x1a\x10\xed\x20\x72\x17\x77\x67\x73\x60\x96\x26\x79\x1e\x0b\ \xd4\x84\xcb\x74\x9c\x7f\x66\x55\x69\x35\xe7\x22\x02\xd4\x7c\x68\ \x4d\x22\x28\x1a\x14\x7e\xea\x8e\x24\x8e\x3a\x63\x39\xb7\x88\x5f\ \xc6\xc7\x90\x79\x94\x00\x24\xd9\xb4\xe4\xee\x05\xa3\xb4\x96\x06\ \x10\x24\x1f\xe8\x38\xfe\xbd\x56\x88\x69\xa4\x9e\x4f\x73\xd3\x34\ \x89\x94\x04\x50\x43\xa2\x91\xef\xcd\x8e\x5d\xc3\xc8\x95\x87\xc8\ \x96\xf4\x45\x25\xa4\x4e\x31\x44\x16\x59\x35\xb8\xc8\xcc\xd4\xf8\ \xcc\x8d\xef\x0a\x00\x22\x00\x98\x0f\x57\xd9\xa8\xc8\x88\x8c\x4c\ \xe4\x5c\xb4\x5c\xea\xff\xba\xae\x43\x55\x55\x12\xc4\x3f\x33\x74\ \x9d\xb7\x62\xe6\x38\xc5\xe5\x8a\xfa\x7f\xdb\xb2\xc7\xad\x7c\x7a\ \x41\xcb\x2f\xa5\x0a\xc9\x89\xac\xef\x75\x27\x00\x0b\x80\x21\x7c\ \x54\x9a\x79\x2e\x44\x08\xaf\xe9\x70\x91\x6b\x12\x42\xcf\x6f\xa9\ \x54\x12\x62\xc9\x7b\x1a\xa9\x35\xaf\x9b\xb7\x7e\xbb\xfe\xf0\xde\ \xf5\x19\x00\x9e\x8f\x2e\x00\x0e\x00\x5b\xd4\x9d\x2f\xc8\x91\xd1\ \x68\x44\x2a\x72\xcc\x51\x28\x14\x88\x80\x3c\xa6\x5f\xbc\x24\x90\ \xf6\xa8\xf7\x93\xf7\x24\x8e\xa3\x5c\x2e\x81\x31\xd3\x75\x99\x15\ \xf2\x43\xad\xfa\x88\xd4\x81\x3e\x0b\xfa\x42\x64\xa1\xa6\xa9\x08\ \xf2\x9a\x22\x10\x89\x44\xa8\xca\xc9\x73\xda\xe3\x8f\x4f\x32\x99\ \xe4\x7b\x73\x73\x73\x18\x1b\x1b\x83\x27\x29\xf6\x6a\x46\xb2\x2b\ \x85\xd5\x02\x1a\xac\x85\x3e\x20\x88\x2d\xd3\x44\x30\x14\xaa\x17\ \xc4\x09\x13\xf7\x13\x98\x7c\x30\x89\xf9\xf9\x79\xa4\x32\x45\xc3\ \xf2\x42\x65\x2b\x10\xcd\x9b\x0e\x56\xca\xf9\x95\x9b\xf9\xf4\x5c\ \xca\xbf\x6a\x9e\x80\x48\x81\x0f\xe6\xaf\xbd\x26\x11\x90\x28\xdc\ \x3c\xa7\x8c\x31\x1e\xf2\x44\x22\x81\xd1\xd1\x51\x4e\x9a\xce\x95\ \x35\x37\x18\xcb\xba\xe1\xf8\x3a\x0b\xef\x98\x35\xb4\xc2\x54\x6a\ \xf6\xee\xc8\xfc\xd8\x70\x12\xc2\x1a\x05\xb8\x44\x2c\x8a\x70\x43\ \x01\xba\xae\x61\x69\x69\x09\x0b\x0b\x0b\x9c\x78\x7a\x7a\x1a\xf9\ \x32\xab\x78\x6a\x7c\x15\x1d\x07\xf2\x88\x87\x1f\x58\xe5\xdc\xaf\ \xcb\x53\x7f\xfd\x9d\x18\xb9\x9c\x05\x20\xfb\x90\xea\x05\x10\xea\ \x05\xf8\x60\x02\x4d\x05\xcc\xcc\xcc\xe0\xf7\x2b\x97\xb0\x96\xd7\ \x2b\x91\x6d\xbb\xd3\xc1\xee\x63\xd9\xe0\xb6\xae\x09\x87\xd9\xd7\ \x4a\xb9\xe5\x91\xab\xdf\x5e\x10\xa4\x02\x92\x40\x83\x80\xe6\x42\ \x68\x5e\x15\x7f\xcf\x1b\xfe\x19\x01\x38\x05\x60\x16\xc0\x55\x00\ \x37\x7f\xf8\xf2\x4c\x5a\xaa\x99\x20\xf2\x89\xd1\x84\xbc\x5e\x04\ \x1a\x84\xd4\xb5\xe2\x7f\x00\x12\xab\x82\xc2\x52\x64\x01\xcd\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x9f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x31\x49\x44\x41\x54\x58\xc3\xc5\ \x97\x6d\x4c\x53\x57\x18\xc7\x2b\xea\xe2\x66\xc6\x32\x63\xb6\x6c\ \xdd\xa6\xcb\x26\x51\x37\xa3\x21\x99\x9a\x4d\x0a\x53\x96\x6c\x3a\ \x27\x43\x04\x8d\x1f\x8c\x73\x59\x36\x40\x5e\x12\x4d\x46\x15\x30\ \xbe\x47\x97\xbd\x32\xac\xca\x00\x87\x51\x51\x37\x40\x93\x81\x18\ \xa1\x2d\x60\x47\xa1\x2f\x58\x79\x47\x81\x16\x07\x14\x8d\x54\xd3\ \x84\x25\x24\x8f\xff\x07\xee\x35\xb5\x96\xd2\xde\xfb\xc1\x0f\xbf\ \xdc\x7b\xcf\x39\xcf\x39\xbf\xf3\x9c\x73\x7b\x4f\x15\x44\xa4\x78\ \x96\x3c\xf1\x10\xb5\x71\xcf\x4c\xf0\x3d\x68\x14\x28\x02\xb9\x5e\ \x88\x75\x7c\xbf\xd2\x2b\x3e\x0c\xa8\x85\xfa\x32\xaf\xb8\x32\xa1\ \x9c\xeb\xc3\x26\x12\xd8\xf2\x5b\xb1\xbe\xaf\xfb\x21\x11\x53\xdb\ \xee\x74\x57\x5a\x1c\xae\x0a\xb3\xc3\x75\x05\x5c\xb5\x3a\x5c\x62\ \x1d\xdf\x73\xc7\x5e\xf1\xea\x73\xd7\x6c\x43\x5c\x6f\xb6\xbb\x46\ \xb8\x8d\x08\x3f\x73\x39\xd7\x73\x3b\xbf\x19\xd8\x94\x9e\x63\x3b\ \x9c\x5f\xd9\xa3\x6b\x71\xba\x9b\x06\x88\x4c\x0e\x22\xcb\x1d\x22\ \xeb\x9d\x91\xd1\x5f\x21\xf8\x4d\x66\x7e\x8b\xbf\x0c\x88\xf1\x35\ \x6d\x4e\x77\xc7\x7d\xa2\x1a\x4c\x84\x9f\xb9\xdc\x6f\x06\x3c\x3a\ \x52\x82\x58\x0e\x68\xec\x23\xaa\xbb\x45\x54\xdf\x4b\x74\x30\xaf\ \xb2\x07\xe5\x89\x60\x81\xbf\x75\x15\xe3\x59\xb4\xeb\x01\x91\x30\ \x70\x2c\x97\xfb\xdd\x03\x3e\x3a\x6a\x34\x61\xe6\x35\x5d\xe3\x02\ \xe9\x87\xcf\x75\xa0\x6c\x69\xa0\x1b\x8c\xe3\x3b\x5d\x44\x7c\x0d\ \x68\x13\xfa\xea\xa0\x11\x02\x3a\x08\x18\x20\x90\x26\x41\xa0\x7d\ \x58\xa6\x80\x11\x4b\x50\xd5\x81\x65\xe8\x21\x4a\x95\x20\xd0\x2a\ \x57\xc0\x80\x0d\x78\xb5\x8d\x48\x7f\x1b\x02\x87\x82\x17\x68\xbe\ \x2f\x53\xa0\x16\x33\x2f\x6f\x26\xaa\xee\x24\x4a\x91\x20\x60\xbb\ \x27\x53\x40\x87\x99\x5f\xb6\x21\x0b\x58\x86\xed\x07\x83\x17\xb0\ \xde\x95\x29\x70\x0d\x1b\xb0\xd4\x4a\x54\xd1\x2a\x4d\xc0\x3c\x24\ \x53\xe0\x0a\x66\x7e\xc1\x84\x2c\x60\x19\x92\x25\x08\x34\x38\x65\ \x0a\xfc\xd3\x4e\x74\xb6\x81\xa8\x04\xcb\x90\x74\x20\x78\x81\xfa\ \x41\x99\x02\x97\x5b\x88\x8a\xfe\x25\xba\x88\x65\x48\x94\x20\x70\ \x7d\x40\xa6\x40\x29\x52\x5f\x70\x1d\x1f\x11\x33\xd1\x77\x12\x04\ \x6a\xfb\x65\x0a\xfc\x75\x93\xe8\x44\x2d\xd1\x69\x74\xf1\xad\x04\ \x01\xdd\x7f\x32\x05\xfe\xc6\x12\x68\xf4\xc8\x82\x01\xdf\x82\x1f\ \xcb\x6e\xa1\x2c\x3a\xc0\xc1\x95\x71\xa9\x39\xb6\xf2\xae\x91\x51\ \xdc\x57\x49\x15\xc8\x3d\x5e\xe5\x70\x69\x6a\x90\x85\x3a\xa2\xec\ \x02\x7d\x1f\x9f\x19\x02\x14\x88\x4e\x83\x70\x61\xdd\xd3\xe7\x86\ \x60\x04\xb6\xec\x29\xd4\xf7\xe5\x61\xf6\x39\x5a\x48\x68\x9d\x6e\ \x3e\x25\x05\x28\xa0\xfe\xe9\x92\x6d\x88\xe3\xfd\x49\x4f\xd6\x49\ \xe8\xea\x6d\x47\x2c\x7f\x9a\x46\x46\x7f\xc7\x32\xe4\x1b\x89\xd6\ \xa7\x8c\x7d\xdb\xd7\x4d\x12\xb7\x8e\xdb\x55\xd8\x1f\xb7\x57\x4a\ \x12\x10\x3a\x4b\xcc\x42\xea\x4f\xe1\x2d\xd0\xe0\x6d\x38\x86\x2c\ \x40\xca\xaa\x8a\xdf\x1d\xab\x50\x28\xa6\x7a\x10\xc2\x44\x26\x64\ \xc5\x8c\x49\x1b\x9d\xee\x03\xc5\x0d\xfd\x7c\xc2\x0a\xf8\x50\xfa\ \x44\x85\x42\x31\x85\x3b\x0c\xff\xe4\xeb\xd0\xc8\x84\xcc\x5d\xfb\ \xcf\x1a\x07\x4e\xdf\x20\x3a\x65\x21\x3a\x59\x37\xe8\x4e\xfe\xa1\ \xf4\x76\x64\x42\xb6\x59\x15\x9f\x75\x9c\xc1\xc0\x9a\xa8\x8d\xd9\ \xa6\xed\x28\x2f\xac\x1f\x74\x33\xbc\x5c\x11\x1b\x76\xbd\xce\x7d\ \x05\x25\x20\x0c\x3e\x0d\x3c\x07\x9e\x5f\xa4\xda\xfc\x4e\x44\x5c\ \x46\x76\xd2\xd1\x92\xee\x22\xcb\xf0\xff\x17\xf1\xeb\x58\x82\x63\ \xda\xa5\x6e\x64\x45\xdb\xfb\x40\xa3\xb5\x8f\xc1\xcf\xcc\xde\x33\ \xc6\x81\x4f\xbf\x3a\xd2\x84\x98\x38\xa1\x9f\x90\x89\x24\xfc\x0d\ \x3e\x03\xbc\x08\x66\x81\x57\xc0\x6b\x1f\xac\x4e\x4e\x89\x88\x53\ \x57\x6e\xda\x79\xa2\x33\x23\xaf\xba\xff\xe7\xf2\xf6\xe1\xdc\xea\ \xde\x87\x0c\xdf\x73\x59\x4c\xd2\x2f\xad\x1f\xc6\xec\xdc\x3f\x2f\ \xfc\xb3\xf7\x10\xf3\x12\x78\x01\x4c\x67\x89\x49\x05\x84\xc1\xa7\ \x0a\x83\x73\xf0\xab\xe0\x2d\xf0\x2e\x98\x0f\x16\x82\x45\x73\xdf\ \xff\xf8\xcb\x25\xab\xb6\x66\x2d\x5b\x93\x52\xb0\xfc\x8b\xf4\xf3\ \xcb\xd7\xa6\x15\x2f\xfb\x3c\xf5\x8f\xf0\xe8\x6d\x6a\xe5\xbc\xa5\ \x51\x68\x13\x06\xde\x06\x9c\xfe\x97\x05\x89\x69\xbe\xb2\xe0\x2d\ \x10\x22\x34\x9c\xf9\x51\xcc\x8e\x7d\xaa\x0d\xbb\x6d\x58\xc3\x9b\ \x98\x75\x0b\xd2\xd9\xca\xac\x58\x9f\xd1\x36\x11\x62\x9b\xf1\xf6\ \xea\x66\x8e\x57\xc5\x67\x36\x61\x7f\x58\x78\x1f\xf9\xca\x82\x2f\ \x01\x4e\x57\x28\x07\x8a\x7f\x42\x3a\x87\xa5\x23\xf6\xc1\x1b\x36\ \x68\x01\x03\xbe\x64\x8c\x0e\xe7\x42\xad\x80\xce\x3e\xfe\xac\x13\ \xef\xed\x1e\x75\x7c\xf5\x28\xe3\xab\x61\x70\x9c\x60\x04\x9e\xe9\ \x12\x04\xb4\x09\xc1\x62\xb0\xc4\x83\xc5\x42\x39\xef\xfc\x05\x92\ \x37\xe1\x64\xaf\x21\x50\x82\x37\xc1\x1c\x30\xd7\x83\x39\x82\xe8\ \x1b\xc2\xa0\x2c\x3e\x3b\x90\xd7\xf0\x11\x90\xc3\x06\x4d\x55\x03\ \x54\xc0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\xd2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x64\x49\x44\x41\x54\x58\xc3\xed\ \x56\x0b\x4c\x95\x65\x18\x46\xb4\x92\x72\x2e\x53\x67\x6e\xea\x32\ \x4d\x52\xcc\x4b\x4e\x41\x42\xa4\x04\x34\x38\x20\x77\xe1\x98\x5c\ \x04\x01\x15\x11\x31\xe0\x80\x5c\xbd\x00\x02\xde\x41\x44\x40\x49\ \x11\x6f\x04\x89\x01\x79\x03\x0b\x02\x2f\x28\x6a\x71\x92\x05\x23\ \xe1\x44\x63\xd0\xdc\x8e\xd2\x76\x36\xb6\xa7\xe7\x3f\x7c\x78\x41\ \x45\x72\x36\xb7\xd6\xd9\x9e\x71\xce\xff\xff\xef\xf7\x3e\xef\xf3\ \x3e\xef\xfb\xa3\x03\x40\xe7\x55\x42\xe7\x7f\x02\xff\x59\x02\x9f\ \xca\xe3\x66\x11\xbe\x44\x0a\x91\x21\x10\x43\xd8\xfc\x6b\x04\x78\ \xb8\x81\x48\x52\xee\x15\x9a\x57\x1f\x9a\x58\xdd\x1a\xb5\xad\xf1\ \x6e\x74\x8a\x4a\xbd\x71\xa7\x4a\x1d\x9f\xa6\xec\x08\x4d\x28\x6d\ \xe2\xfd\x3c\xc2\xe1\xa5\x11\xe0\x61\x16\x52\x85\xf2\xb5\xd9\x4a\ \x45\x92\xb2\x63\x7d\x82\xa6\xcb\x53\x01\x38\x04\x00\x8b\x7c\x00\ \x73\x77\x60\xa1\x27\xe0\xb2\x1a\x88\x4a\x01\x72\x0b\xda\x3b\xad\ \xbd\x93\x6b\x19\x33\xee\xa5\x24\xf6\x0c\xc9\xab\x0f\x4b\x52\xa9\ \x7d\xa2\x00\x1b\x26\x9d\xef\x0d\xcc\x5e\x06\x4c\x77\x03\xa6\x3a\ \x03\x93\xed\x81\x49\xd6\xfc\x2e\x03\x2c\x3d\x80\x2d\x7b\x80\x1d\ \xd9\xb5\x6d\x8c\x0d\x7e\xd1\xc4\xe3\x08\x85\x54\x71\x18\xe5\xf5\ \x8a\x04\xac\xd6\x00\x9f\xac\x60\x62\x26\x9f\xe3\x47\xac\x22\x48\ \x66\xb6\x3f\x30\x8d\xd5\xeb\xbb\x02\x13\x6d\x81\x19\x8e\x80\x37\ \xd5\xc9\x2f\xd1\x74\x49\xad\x7a\x91\xe4\xab\xad\x96\x27\xd7\x06\ \xc7\xd7\xb6\xf9\x6f\x04\x64\x6b\x01\xd3\x95\x80\x31\xe5\x35\x5d\ \x4f\x22\x31\x94\x9a\x32\x7b\xec\x02\xdc\x77\x03\x4e\xc9\x94\x9f\ \xca\x18\x91\xe0\x54\xb6\x62\x06\x89\xc8\x43\x80\x63\xdf\x02\x52\ \x1b\xfe\x71\xd5\xbe\x11\x85\x0d\xeb\x93\x35\x5d\x4e\x3c\xe4\x33\ \x1e\x6a\x12\xc8\xbf\xac\xc8\x2e\x11\xf0\xcb\x04\x62\xbf\x06\xd2\ \xce\x03\x5f\x55\x02\x99\xdf\x03\xf1\x45\x80\x2f\xaf\x5b\x91\xac\ \x21\x9f\x9f\x43\x95\x96\x46\x90\x40\x09\xe0\x1f\x99\x57\xdf\xdf\ \xe4\x0e\xd6\x52\xd5\x09\xb5\x6d\x2b\xe2\x68\xac\x75\xec\x73\x50\ \x77\xe2\xc5\x4c\xec\x9b\x05\x6c\x66\xa2\x23\x97\x81\x1f\x1a\x80\ \xd3\x97\x54\xea\xe4\x9c\xf2\xe6\x80\x4d\x79\xf5\xf1\x39\xd5\xad\ \xc9\x67\x81\xe5\xfb\x80\x05\xd1\x8c\x09\x66\xe2\xad\xc0\xa9\x72\ \x80\xe7\xd6\xf4\x4b\x72\x87\x95\xa9\xb7\xc2\xb6\xb5\x77\xba\x92\ \xb9\x39\x0f\x30\x0b\x63\x45\x5b\x28\x73\x3a\x10\xce\x8a\x0f\x54\ \x01\x15\x8d\x40\xe9\x55\x95\xda\x2d\x28\xf5\x96\x98\x79\xb9\xd8\ \x05\x31\xc9\x27\x38\x7e\xc7\x01\xc7\x6d\x80\xfd\x26\x4e\x02\x09\ \x9f\xf9\x51\x78\xe0\x91\xd9\x35\x78\x4a\x72\x85\x07\x1d\x1e\x94\ \xa4\xe9\xb2\x0b\x65\x72\xca\x6e\x11\x0b\x38\xef\x00\x02\x8e\x00\ \xdb\x2f\x00\xc5\x75\x40\x65\xbd\x5a\x13\xbe\xb3\xb0\x41\x24\xb6\ \xe8\x75\x86\x59\x50\x52\x61\xc3\x16\x4a\xee\x99\xc1\xea\xf7\x92\ \x30\xbf\x67\xe6\x2b\x3b\xa4\xbc\xd2\x03\x31\xfb\x72\xbb\x7f\xf4\ \x90\xe8\xe9\xf7\xca\xe8\xd2\xa6\x55\x94\x58\xc6\x8a\xcd\xc3\x69\ \x9a\x04\x56\xcd\x7e\x6e\x38\x05\xe4\x5c\x01\xaa\xee\x00\x45\x55\ \x8d\x77\x6d\x7c\xb5\x33\xed\xfe\xac\x8d\xe8\x1f\x97\x57\x9f\x72\ \x0e\x58\x97\xc7\x11\xcc\x07\xca\x6a\x69\xd4\x35\x5a\xa5\x0c\xa4\ \x07\x6a\xca\x68\x98\x3d\x39\x0f\x49\x48\x7f\x43\x92\xd9\xef\x78\ \x26\x67\x62\x0b\x3a\xdb\x9e\x55\xfb\xe5\x02\x89\x34\x58\x01\xab\ \xbe\x7a\x47\xd3\xb5\x79\xbf\x76\xab\x49\xab\xd6\xa8\x8f\x16\xca\ \x63\x33\xcb\x9b\x77\x96\x01\x09\x74\x7e\xc1\x25\x60\xef\x31\xed\ \x0e\x50\x68\x37\xa1\x44\x20\xfd\x10\xb0\x91\x63\x13\x9a\xa8\x25\ \x51\x14\x18\xaf\xec\xf0\x64\x8f\xad\xa5\xf9\xde\x0c\xb8\xa6\x01\ \x6b\x4f\x02\xbb\x2a\xd8\xbb\x5f\x81\x4b\x8d\x6a\x8d\x4f\x64\xb6\ \x52\xf2\x47\x3f\x3c\x94\x92\x5e\xdc\x78\x37\x83\xb1\xc7\x98\xfc\ \xfc\x35\xb5\x46\xe6\xd3\xbd\x05\x1f\x10\x88\x92\xcc\xc1\xa3\x16\ \x73\x4c\x5c\x14\x6a\x8d\x23\x2b\x96\xd1\xed\xb6\x49\xc0\x32\x4a\ \x1e\x42\xc9\xf7\x4b\x0e\xa7\xe4\x95\xb7\xdb\x3b\xfb\x92\xbc\xf7\ \xbb\x61\x09\x4d\x79\xea\x67\x56\x4e\xd9\x2b\x94\x9a\x2e\xaf\x30\ \x2d\xf1\x07\xb1\x5a\x02\x21\x5c\x16\x66\x3e\xdd\x5b\xcc\x8c\x2e\ \x5f\x18\xdb\x2d\xb9\x57\x0e\x10\x41\xc3\x1c\xbc\x06\x54\xab\x80\ \x93\xe5\xca\x0e\xdb\xee\xe4\x0e\xfd\x1c\xdf\x98\x83\xa5\xca\x8e\ \x0b\xb7\xd9\xb2\xdf\x80\x98\x54\x6d\xcb\x1e\x53\x4d\x4b\x40\xc1\ \xdd\x6c\xce\xb9\x36\x22\xcc\x99\xdc\x81\xed\xf0\x3a\xcc\xe4\xa5\ \x40\xd6\x75\x4a\xfe\x3b\x57\xe7\xc5\xc7\x8d\xda\x9f\xdd\xe1\x1d\ \x91\xad\xbc\xc9\xd8\x9b\x24\x1f\x9b\xa6\x4d\xae\x78\xe2\xff\x01\ \x89\x40\xec\x01\x6e\x32\x4a\x6e\xc9\x7e\x3b\xa6\x32\x39\xcd\xb6\ \x8e\x86\xd9\x5e\xcd\x31\xe3\x7c\xef\x2b\xa8\x6e\x35\x73\x8b\x89\ \x33\x75\x89\xf8\x48\x47\x47\x67\x20\x31\xe8\x19\x90\xee\x0d\x34\ \xb2\x09\x1c\x29\xbd\x72\x2f\xfe\xd4\xde\x59\xd7\xfa\x30\xb9\xce\ \xd3\x3e\x12\x81\x44\x1a\x6c\x19\xe7\xd3\x85\x8b\xc5\xe7\x28\x0d\ \xc7\xe4\xb1\x5c\xa3\xe9\xec\x5b\x6e\x95\x4a\x3d\xdf\x35\x3a\xcb\ \xc8\x36\xe8\x63\x3e\xae\x47\xbc\x49\xbc\xf5\x0c\x48\xf7\xf4\xe6\ \xb9\x6c\x58\x9d\x7a\xbc\xea\x8f\x6b\x4d\x9a\xae\xe5\xe1\x59\x4a\ \x33\xb7\xe8\x0d\x82\x9c\x2e\x31\xe0\x09\x02\xd9\x17\xba\x37\x5a\ \x70\x21\xb7\x14\xd7\x66\x02\xc7\x72\x37\xa5\x3f\xf4\x0b\x67\x96\ \xf2\x9d\x28\xaf\xfb\xd3\xc4\x31\x2c\xe9\x43\x23\xbb\x99\x0c\x19\ \x45\xbc\x2b\x30\x5a\xa0\xe7\xf7\x28\x43\x59\xc0\xd2\xd8\xb4\xe2\ \xe6\xb2\x1b\xed\x7f\xb9\x04\xee\xae\x33\x71\x52\x7c\xc9\xeb\x43\ \x88\xc1\xc4\xeb\x42\x29\xdd\xc7\x08\x54\xd4\x73\x44\x6a\x98\x90\ \x49\x8f\x73\xc6\xbf\xe1\xa8\x9d\x6e\x02\xce\xb5\x00\x57\xda\x80\ \x26\x35\x5f\x2e\xc5\x35\x1d\x73\xac\x03\x12\x19\x32\x99\x98\x42\ \x18\x10\x53\x05\xa4\xef\x53\xde\x9f\x6e\xfe\xb9\x67\x68\x46\xc3\ \xae\xbc\xca\xb6\x79\x4e\x8a\xa2\x59\x8b\x7c\xfd\x78\x7d\xac\x20\ \x37\x9c\x18\x2a\x54\x7c\xed\x01\x09\x69\x7d\x96\x5c\x56\xa9\x89\ \x7b\x25\x57\x5b\xee\x7d\x77\xbd\xe5\xde\x99\xeb\x2d\xf7\xcf\xd6\ \x12\x37\x5a\xee\x9f\xbf\xd1\xdc\x29\xe1\x5c\x6d\x73\xa7\x67\x68\ \x7a\xd3\x98\x49\x86\x4b\x19\x66\x26\x85\xf6\x82\x74\xcd\x74\x8c\ \xbe\xa1\x7c\xc6\x02\xcf\xad\xc3\x46\x8d\xb7\xe0\xef\x59\xc4\x34\ \x41\x7a\xbc\x50\xeb\x6d\x41\x62\x90\xb6\x1d\x34\x97\x25\x7b\x94\ \x65\xba\x24\xf2\xe0\x3c\xe7\x88\xc3\x26\x0e\xa1\x47\x8d\xed\x82\ \xf3\xe7\xda\x06\x15\x1a\xda\x04\x9e\x36\x94\xad\x29\x36\xb4\x0e\ \x28\x95\x30\x61\xa6\x65\x34\x83\xec\x09\x47\xc2\xa9\x17\x1c\xc5\ \xbd\xc5\x84\x8c\xb0\x22\x2c\x05\xb1\xb9\xc4\x74\x62\xa2\x50\x43\ \x52\xe2\x8d\x1e\x15\x06\x8a\xfe\x0c\x13\x72\x49\xf2\x1a\x11\x0b\ \x08\x6b\x71\xa8\x33\xe1\x4a\xc8\x89\x2f\x08\x77\xc2\xa3\x17\xdc\ \xc5\x3d\xb9\x78\xd6\x59\xc4\x5a\x8b\xb3\x8c\xc4\xd9\x63\x45\xae\ \xc1\x22\xf7\xab\x27\xa0\x2b\xe4\x18\x2a\xe4\x99\x28\xe4\x9a\x2b\ \xe4\xb3\x14\x72\xca\x84\xbc\x2f\xbd\x05\x03\x84\x21\xf4\x84\x41\ \x46\x0b\xc3\x4c\x16\x06\x92\x8c\x64\x48\x18\x13\x26\x92\xd1\xfa\ \x32\xa1\x78\xc6\x58\xc4\x3c\xdf\x84\xe2\xa3\x2b\x46\x43\x4f\xb0\ \x1b\x2e\x98\x4a\x72\xbd\x47\x4c\x20\x3e\x20\xf4\xfb\x1a\x43\x71\ \x4f\x5f\x3c\x3b\x41\xc4\xf6\x3d\x86\x8f\x7c\x74\x05\xab\xd7\x45\ \x7f\x86\x88\x00\xa9\x5f\xef\x10\x23\x88\x91\xcf\x5b\x44\xe2\x99\ \x11\x22\x66\x98\x38\xe3\x89\x45\xd4\xf3\x2e\xf8\x1b\x95\x0d\x18\ \x5b\x26\xd0\x37\x16\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x04\xb6\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x48\x49\x44\x41\x54\x58\xc3\xe5\ \x57\xcf\x6f\x1b\x45\x14\xfe\x66\x77\xed\xf5\x6e\xb6\x24\xb1\x1b\ \x24\xa0\x6d\x44\x10\x3f\x0a\x14\x81\xa0\x34\x42\xe4\x50\x10\x48\ \x88\xbf\x82\x53\xfe\x01\x8e\x48\xa8\xe2\xc0\x85\x7f\x20\x5c\xb8\ \x72\xe1\x08\x87\x22\x81\x25\x40\x21\x04\x50\x91\x9d\xa4\x2d\x4e\ \x4b\x4c\xda\xca\x8d\x08\x75\x12\xd7\xf6\x7a\xd7\xc3\x7b\x33\xbb\ \x9b\xd4\x3f\xd3\xd6\xd0\x03\x23\xbd\xcc\x6c\xe6\xf9\xbd\x6f\xbe\ \xf7\xe6\xcd\x8c\x90\x52\xe2\x41\x36\x03\x0f\xb8\x59\xf1\x60\x7e\ \x7e\xfe\x5d\xea\x4e\xff\x47\x7e\x97\x17\x16\x16\xbe\xbc\x03\x00\ \x3b\x7f\xe4\xb1\x13\x1f\xce\xcc\x3c\x0e\xd3\x34\xb1\xfa\x93\x8f\ \xb5\xe5\x3a\xf6\xaa\xe1\x7d\x79\xf2\xc6\x4d\x9c\x3c\xed\xe0\xd9\ \x57\xd3\x08\xc3\x10\x57\xae\x5c\xc5\x8d\x6b\xe5\x73\x34\xd5\x05\ \x00\xdf\x7c\x9b\x47\x61\x65\x0d\xd9\xec\x51\xdc\xdc\xb0\xf0\xde\ \xfb\xaf\x8f\x64\xb9\x9f\x7d\xfa\x3d\x6e\x36\x02\x2c\xfe\x90\x47\ \x36\x37\x85\x93\x4f\xcd\x74\x87\x80\x5b\xca\x4a\x61\x62\x22\x8b\ \xdc\xd1\x29\x38\xa6\x83\x4c\x26\x33\x12\x00\xd3\x4f\x3c\x0a\x77\ \xbc\xae\x16\xc6\x3e\x7a\xe6\x00\xb7\xb4\x9d\x81\xe3\xb8\x70\x5d\ \x0f\xb6\x39\x86\x4b\x97\xd6\x49\x83\x54\x52\x69\xc0\xb6\x01\x06\ \x44\x3a\xaa\x4f\xd3\x77\x3a\xad\xe7\x83\x00\xf0\x7d\x92\x26\xd0\ \x68\x00\xcd\x46\xd4\xd3\x77\xcb\xc7\x64\xee\x21\x98\xb6\x89\x17\ \x5e\x7c\x05\xeb\xa5\xcb\xfd\x01\x18\xa6\x41\x62\x91\x98\xfc\x81\ \x33\x67\x5e\x1e\xb2\xb6\x50\x0b\x5b\xb1\xe8\x37\xae\x4b\x03\xb7\ \x4b\xeb\xfc\xf9\x35\x65\x53\xdb\x16\xfd\x01\xb4\xc3\x36\x49\x88\ \x30\x20\x69\x07\x3a\x04\xac\x2f\x05\x75\x52\x8d\x25\x8f\x55\x2f\ \x75\xcf\x3f\xe4\x29\x35\xa6\xb9\xa8\xac\x90\x1a\xb4\x2b\x89\x80\ \x6c\x99\x64\xb7\xad\x44\x0e\x00\x40\x46\xc3\x76\xa8\x85\x40\x14\ \x8b\x7f\x68\x8a\x6d\x8a\x9b\x4d\x74\x3b\x24\x19\x3b\x12\x1a\xa7\ \x53\x9c\x38\x44\x33\x87\xa0\x45\x94\x53\x18\xea\x1c\x06\x92\xba\ \xaf\xbf\x9b\x2d\x65\x0b\x96\xb6\xdb\x96\x03\x00\xc8\xb6\x44\x5b\ \x09\x31\x21\xdb\x98\x9b\x7b\x69\x78\x86\xb1\x41\xa6\x5f\x85\x80\ \x18\x9b\xec\x56\x59\x29\x94\x21\xd8\x26\xd9\x66\x1f\x7d\x01\x68\ \x42\xa5\x36\x4a\x62\x73\xe2\x45\x4d\x45\x82\xff\x0a\x45\x34\x92\ \x12\x2e\xa2\x9f\xed\x0f\xf4\x3c\xc7\x42\xea\x71\x6c\x2f\xb1\xdf\ \x1f\x80\xd0\x22\xb4\xfc\x52\x2c\x43\x5a\x06\x44\xda\xd2\x74\x33\ \xf5\x71\x38\x6c\xde\x1d\x1c\x02\x5a\x39\x51\x2c\x29\x0c\xa2\xa1\ \x29\x57\x42\x63\x49\x61\x11\x7e\x90\xd8\x4b\xec\xf7\x03\x20\x12\ \xdf\x02\xde\x44\x0a\x67\x5f\x7b\xfe\x70\x1b\x9d\x77\x0d\x83\xf2\ \xdc\x9e\xd3\x17\x96\x7f\xa5\x5d\x29\xf6\x71\xf4\x65\x40\x08\xe5\ \x5c\x08\x03\xc7\x8f\x4f\xd1\x02\x53\x23\x29\x44\x6c\xab\x54\xda\ \x55\x76\x3b\x11\x74\x30\x20\x60\xd0\xfe\x37\x0c\x01\xd7\x71\xf0\ \xf3\x85\x55\x8c\x1f\xf1\x54\x7d\xb8\x97\xc6\xdb\xba\xba\xbb\xa7\ \x6c\x19\x86\xa1\x44\x0c\x02\x60\xf0\xea\x0d\xa1\x14\xaf\x5d\xaf\ \x60\xeb\xaf\x6a\x12\x1a\xc8\xfd\xf4\x39\xf8\x2d\xa2\x1c\x43\x57\ \x74\xf7\xd3\xba\x49\x95\xd1\x64\xe7\x6c\x7b\x20\x03\x4a\xc1\x88\ \xd0\x9a\xea\x54\x1c\x45\x33\xc9\x96\x60\x66\x85\x06\x31\x24\x04\ \x86\x72\xbc\x71\xb5\x84\xcd\xcd\x32\xea\xf5\xda\x7d\x39\x77\x9c\ \x31\x1c\x3b\x76\x02\xb9\xa9\x87\x0f\x13\x02\xbd\x7a\xa6\x8b\x2b\ \xd6\xc7\x1f\x7d\x80\x9d\x9d\x1d\xd4\x6a\x35\xb4\x5a\xad\x04\xa0\ \x45\xd5\x31\x16\x4e\x54\xee\x19\x34\xcf\xa9\xd8\x53\xd1\xf1\xe9\ \x70\x8a\xe5\xf3\x2f\xbe\x52\x36\x59\xd8\xc7\x10\x06\x38\x0f\x0c\ \x4c\x66\x73\xc9\xff\x17\x17\x17\xb1\xb4\xb4\xa4\x1c\x70\x01\x9a\ \x9d\x9d\xa5\x2a\x39\x77\x68\x16\xd8\x96\x88\x72\xa0\x93\x01\xa3\ \x13\x40\x9c\x84\x0e\x65\x6e\xdc\x8a\xc5\x22\x9d\xe5\x74\x4f\xc8\ \xe5\x94\x14\x0a\x85\x21\xd5\x59\x76\x84\xc1\x49\x16\x26\xc4\x90\ \x42\xa4\xc3\x20\xd4\xa9\x17\x37\x97\x8e\x59\x3e\x19\x63\x8a\xe3\ \xbe\x5f\xeb\x5a\xa5\xd2\x97\x3d\x77\xc9\x9d\x0c\x20\x42\xc8\x20\ \x0e\x18\x39\x98\x3c\xdc\xdf\xf5\xee\x88\xb6\xac\x8c\x0e\xb9\x01\ \x95\xf0\x40\xd9\xee\x89\xf7\xde\x1a\xdf\x2d\xf8\x2e\xe0\xd3\x8d\ \x89\xa5\x2f\x03\x41\xe0\x53\xd1\x68\xd2\x8d\xaa\xa1\x32\x7b\x64\ \x8d\x96\xbf\xbb\xb7\x8b\x4a\xe5\x06\x6e\xfd\xbd\xdd\x1f\xc0\xed\ \xbd\xdb\xd8\xa9\x56\x95\x92\x21\x46\xf8\x62\x92\x21\x36\xd6\x4b\ \x28\x5d\xbe\x48\x87\xa9\x95\xe7\x77\x41\xcf\x10\xd4\x9b\x75\x6c\ \x6d\x55\xe8\x74\x0d\x70\xc4\x1b\x43\xfe\xbb\x1f\xe1\x79\x1e\xce\ \xbe\xf9\x4e\xd7\x39\x5e\xde\xac\x0c\x4a\x43\xd2\xa6\xdb\x15\xd9\ \xd9\xde\xbe\xc5\xef\x00\xac\xac\xfc\x46\x97\xa8\x54\xfe\x99\xa7\ \x9f\xfc\x84\x14\xf2\x3d\x01\x5c\xdf\xfc\x13\xbf\x5f\x5c\x55\x49\ \xf7\x35\x85\xa0\x33\x9b\xef\x7a\xe1\x52\xdf\xae\x42\xba\x35\x4f\ \x4f\x4f\xe7\x4f\x9d\x7a\x4e\x39\xa7\x57\x51\xad\x17\x80\xe5\xb7\ \xdf\x7a\xe3\xdc\xbf\xf9\x1c\xeb\x74\xae\xb8\xfa\xdf\xbf\x8e\xff\ \x01\x8c\xae\xac\x22\x42\x7f\x21\xa9\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x05\xe8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x05\x7a\x49\x44\x41\x54\x58\xc3\xc5\ \x96\x0d\x4c\xd4\x75\x18\xc7\x1f\x2e\x01\xb1\xc0\x38\x1c\x6f\x81\ \x61\x9a\x24\x18\x57\x20\x21\xa9\xbc\x1b\xd4\x28\x96\x2d\x93\x36\ \x27\x45\xb9\xca\x88\x4a\xd9\x60\x33\x29\x50\x47\x80\xbc\xb8\xb0\ \x40\x40\x4e\x8e\x57\x89\xe0\x70\x8a\x32\x72\x91\x81\xd3\x39\x60\ \x97\x20\x06\x2c\x25\x85\x89\x16\x2f\xcd\xdd\xb9\xe0\xe9\x79\xce\ \xdf\x7f\xfb\xeb\x4c\x8e\x08\xba\xed\x33\x8e\xdf\xff\x7f\xff\xe7\ \xfb\xbc\xff\x01\x11\xe1\xff\xc4\xb4\x9b\x00\x1c\x89\x08\x62\x23\ \x11\x44\xb8\xce\x99\x00\xfa\xb8\x3d\x09\xb0\x27\x09\xe0\xec\x1e\ \x80\xde\x4f\x00\x5a\x82\x01\x0e\x08\x31\xee\x73\x21\x20\x2a\x19\ \x40\x97\x4f\xb7\xca\x61\x31\x8b\x00\x76\xd2\x75\xcb\xd9\x16\xb0\ \x9d\x0d\xb2\x08\xfe\xce\x46\x39\x1a\x7c\xf6\x16\x40\x1d\x9d\xf9\ \xcc\xb6\x80\x8d\xec\xed\x07\x00\x27\xe8\xfb\xf3\x5c\x0f\x2c\x42\ \x26\x2a\x6a\xd6\x04\x70\x8e\x57\x01\xec\xcb\x03\xb8\x95\xea\xe4\ \xd4\xce\x85\x28\xce\x37\x7f\xe5\xe2\x32\xc4\xc2\x58\xe0\x6c\x0a\ \x30\x7a\xcf\xde\x6a\xfc\xfc\xf4\x22\xe7\xdc\x0d\x9b\x0b\xbc\xbc\ \xae\xcf\x85\x00\x77\xae\x78\xae\x7c\xb5\xa7\xa7\xbe\x22\x34\xd4\ \xc0\x91\x60\x6a\x37\x6c\x40\x29\x2d\x26\x1b\x03\x58\xc6\x29\x13\ \xad\x6c\x6b\x6a\x0d\xb8\xf2\x0f\x42\x15\x8a\xaf\xd9\xa8\x76\xeb\ \x56\x23\xdf\x45\x47\x9b\x5c\x03\xf4\xf1\x0d\x0b\x0b\x4b\x3c\xdf\ \xd8\xf8\x8b\x7e\x74\xf4\xaf\xa1\xee\xee\x3f\xf9\x99\x26\x0f\x22\ \xf1\x90\x30\x8e\x44\xb1\x9d\x1d\x1e\x72\x72\xc2\x83\x16\x16\xc8\ \xb5\x41\xe7\x1f\x3e\xc8\x70\x48\x48\x48\xe2\x39\xad\xb6\x5f\xaf\ \xd7\x23\x33\x36\x34\x84\x27\x93\x92\xae\x49\xc2\xa7\x23\xc0\x96\ \x6b\x20\x07\xe0\xa6\x7c\x1e\xbc\x0c\x70\x88\x43\x2b\xbb\xcf\x92\ \x0d\x07\x05\x05\x25\xfe\x54\x53\xd3\x3f\x32\x32\x82\xcc\x28\xd1\ \xd3\xd8\x78\xfb\x1d\x95\xaa\x54\xa4\xc1\x6d\x5a\x02\x24\x8f\xb8\ \x26\xd8\xf0\xa9\x98\x18\x1c\xed\xef\xc7\xac\x80\x80\x56\xd1\x9e\ \x0b\x88\xb5\x61\xbe\xbe\x99\xa7\xca\xcb\xfb\x07\x07\x07\x51\xe2\ \x4a\x4f\x0f\x7e\x9b\x90\xd0\x27\x8a\xd8\x77\xda\xbb\xe0\xde\x54\ \xb4\x16\x16\xfe\x66\x30\x18\x90\x39\x97\x9b\xcb\xf9\xdc\x1c\xe2\ \xe3\x9d\x79\x22\x3f\xff\x6a\x5f\x6f\x2f\xf6\xca\x38\x5b\x55\xa5\ \x8f\x59\xb9\x92\xbd\x0e\x93\x0a\x6f\xa6\x02\x6c\x83\x83\x83\x13\ \xc7\xc7\xc7\x91\xb9\x79\xf5\x2a\x96\xa4\xa6\xde\xa8\xae\xae\xc6\ \xd6\xd6\x56\xec\xec\xec\x34\x72\xfe\xf4\x69\x2c\x89\x8b\xbb\xc8\ \xe2\x08\xaf\x19\x6d\xc3\x7b\x05\xb0\x37\xa7\x6b\x6a\xae\x0d\x0f\ \x0f\xa3\x5a\xad\xc6\xe4\xe4\x64\xac\xad\xad\xc5\xe2\xe2\x62\xd4\ \x6a\xb5\x78\xbc\x20\xff\xd6\x6b\x1e\x1e\x07\x85\xd7\x0b\x66\xbc\ \x8e\x65\xed\x18\xb1\xc2\xc1\x61\xf7\x81\x84\x84\xeb\x65\x65\x65\ \xc6\x10\xfb\xfb\xfb\xa3\x8d\x8d\x0d\x0e\x0c\x0c\xe0\xf1\x86\x06\ \x4c\x89\x8e\xee\x9e\xce\xa6\x9c\xca\xa8\x8d\x28\xb0\x77\xb9\xf8\ \x76\x3b\x3b\xff\x7c\x24\x37\x77\xb2\xa2\xa2\x02\xb3\xb3\xb3\x31\ \x2f\x2f\x0f\x2b\x2b\x2b\xb1\xbe\xbe\x1e\x2f\x5d\xba\x64\xe4\xb2\ \x4e\x67\x08\x50\xa9\xd2\x1f\x14\xf6\x29\x05\xd0\xc7\x93\xbd\xe0\ \xf7\x00\x9e\x76\xfb\x01\xc6\x8c\x6d\x67\x66\x86\x05\x56\x56\xa8\ \x49\x4b\xc3\xc3\xf9\xf9\x93\xbb\x62\x63\x7b\x93\xe3\xe2\x86\x4a\ \xd3\xd3\x7f\xa7\x9c\x4f\x76\x74\x74\xa0\x4e\xa7\xc3\x3f\x86\x87\ \x27\xd3\xb6\x6d\xab\xe7\xae\x30\x59\x80\xd4\x46\x3c\x58\x36\x01\ \x54\xee\x05\xe8\x67\xa3\xdf\x00\x4c\xf0\x5f\x7a\x03\x31\x94\x2c\ \x5e\x6c\xec\xfd\x02\x47\x47\xf4\x51\x2a\x33\xc5\xfd\x2c\x36\x68\ \xb5\x83\xc3\xbe\x86\x9c\x9c\xd1\xb6\xd6\x36\x6c\x6b\x6b\xc3\x6b\ \x57\x06\xb0\x49\xa3\xb9\x38\x55\x1d\x48\xc6\xbd\xb8\x47\xd9\x5b\ \x32\xa4\x97\x86\x0c\x7f\x4f\x00\x68\xa2\x61\xb3\x85\xd3\x50\xe4\ \xea\x6a\x28\xb4\xb6\x36\x5e\x7b\x1d\x60\x07\x9d\x3d\x24\xe3\x09\ \xe2\xd5\x9d\x51\x51\xdf\x37\x69\xb5\x93\xcd\xcd\xcd\xd8\xd5\xd5\ \x85\xdd\x67\xce\x8c\x89\x05\xe6\xf8\x0f\xd1\x06\x77\x36\x9e\x05\ \x70\x5d\x32\x9c\x0b\x30\xf2\x11\x40\xa1\x2f\x09\xa3\xeb\x66\xc4\ \xfa\xf7\x01\x4e\x56\x05\x06\x62\x81\xb9\x39\xee\x02\xa8\x15\x13\ \x6f\xfe\x7d\x08\x59\x6e\x6f\x9f\x56\x96\x92\x32\x76\xf4\xe8\x51\ \x6c\x69\x69\xc1\x5f\x2f\x5c\x30\xac\xf1\xf0\xc8\xa0\x6b\xaa\xfb\ \x09\xd8\xf8\x25\xc0\x80\x31\xb4\x36\x36\xb7\xdf\xa3\xfd\x2f\xa9\ \xa5\x8f\x92\x08\xa7\x92\xae\x2e\x75\x77\xc7\x32\x95\x0a\xbf\x00\ \x68\xa6\xb3\x85\xc4\xa3\xa2\x25\x95\x32\x6c\xc5\xf9\xd3\xc4\xa6\ \x4f\xc3\xc3\x7f\xa8\x3e\xac\x9e\xac\xab\xab\xc3\xcb\x3d\x3d\x13\ \xd1\x91\x91\x64\x06\xd6\xdd\x25\x80\x0b\x8d\x8d\x97\xfb\xf8\xe0\ \x8b\x00\x7b\x65\xc6\x9f\x22\xa2\x3f\x06\xf8\x51\xed\xe6\x86\x47\ \x22\x22\x90\x92\x3e\xc0\x5e\x10\x8f\x89\xb6\x7c\x9c\x67\xba\x0c\ \xfe\x7f\x31\xe1\x42\x38\x13\xaf\x2c\xb5\xb3\xcb\xca\x8b\x8f\xbf\ \xa1\xd1\x68\x50\xd7\xde\x8e\xc9\xb1\xb1\x0d\xf2\x16\x05\xe9\xf5\ \x8a\x57\x2d\xbf\xeb\xad\xba\x13\x81\x1d\x24\x6c\xef\x6e\x80\x3e\ \xf6\x9c\xaf\xe5\x29\x14\x7a\x6f\x80\xb7\x85\x30\x0f\xe1\x25\x8b\ \x79\x46\x86\x4a\x9c\x73\x61\xae\x20\x96\x13\xcf\x11\x6f\x6e\xf1\ \xf3\x3b\x56\x98\x91\x31\x71\x4c\xad\x36\xd0\xff\x6f\xc8\x53\xb0\ \x96\xf3\xaf\xf1\xf2\xc2\x9a\xc8\x48\x64\x83\xbc\x6a\x19\xce\xb9\ \x64\x9c\xe6\x00\x6d\x63\x78\x56\x3c\x70\x35\xb1\x86\xc3\x49\x04\ \xc8\x58\x27\xce\xfd\x09\x3f\x7e\x61\x15\x82\xc8\x1f\x78\x69\xa9\ \x52\x99\x11\xe5\xe9\x59\xc6\x4e\xdc\xd5\x05\x24\x75\x0d\xd5\x41\ \x57\x81\x42\x81\xbc\xef\x4b\x9c\x9d\x8d\x14\xd1\x84\xe3\x9d\x1f\ \x02\x10\x4f\x3f\xf2\x16\x0f\x66\x43\xa4\x07\x42\xb9\x38\x89\x17\ \x64\xac\x17\x6d\x47\x3f\x81\x40\x21\xc6\x57\x44\x84\xd3\xe3\x24\ \xd2\xa3\xb8\xef\x20\x8a\x21\xc5\xdb\x01\x3e\xff\x0c\xa0\x88\xf6\ \x66\x31\xb9\x9c\xb2\xee\x4e\xc8\xdd\xff\x23\x01\x4a\xd1\x29\x8a\ \xa9\x26\xa1\x82\x98\x47\x3c\x4c\xd8\x13\x4b\x44\xde\x67\x92\x02\ \x67\x31\xda\x2d\x4c\x11\x60\x26\x86\xcb\x7c\xd1\x72\x0e\xa2\xba\ \x97\xfd\x8b\x22\x5c\x22\x8c\xdb\x8a\x69\xcb\x8e\x99\x4d\xb9\x8c\ \x84\x88\x79\x42\x84\xb5\x08\x9f\xbd\xc8\xa3\xa9\x6d\xc8\xc2\x17\ \x09\x27\xd8\xb8\xb9\xdc\x7b\x53\xb6\xa1\x24\x82\xc3\x66\x25\x52\ \x62\x6d\xc2\x20\x5a\x28\xc2\xfd\x88\x30\x6c\x29\x9e\xa3\x90\x7b\ \xcf\xfc\x0d\xe3\x58\x91\xad\x93\x78\x02\x2d\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x78\ \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\x08\x3f\x49\x44\x41\x54\x58\xc3\xad\x57\x0d\x50\x93\xf7\ \x1d\xae\xda\x6d\xb6\xb7\xeb\x6d\x5d\xb7\xdb\xe7\x79\xfb\xba\xb5\ \xdb\xda\xab\xb6\xda\xde\x76\xe7\x7a\x37\xbb\x8f\xb3\x6e\xd3\xde\ \xa9\xd4\x8f\xad\xdb\xea\xb4\xee\xe6\x67\xd5\xda\x22\x88\x42\x2c\ \x08\xd1\xc8\x97\x08\xd1\x02\x22\x8a\x84\x40\x02\x24\x81\x40\x04\ \x02\xf9\x00\x92\x90\x90\x90\x40\x42\xc2\x57\xc2\x37\x28\x88\xa5\ \x67\x9e\xfd\xfe\xaf\x7f\x1c\x28\xda\x76\xe7\x7b\xf7\x5c\x72\xc7\ \xcb\xff\xf9\xfd\x9e\xe7\xf9\xfd\xde\x37\x8f\x01\x78\xec\x51\x82\ \xae\x6f\x10\x56\x13\xa2\x09\x1b\x09\x3f\x7e\xe8\xfd\x8f\x90\xf8\ \x71\xc2\x6f\x97\x2d\x5f\x21\x36\x7b\x3a\xfb\xec\xd7\x01\x57\x68\ \xe4\x3a\x2f\xe2\xab\xec\x6f\x84\x43\xfc\xf3\x91\x5f\xbf\x26\xec\ \xd6\xd4\x9b\x5c\xd6\xb1\x70\x58\x17\xfa\x14\x4a\x47\x2f\x1c\xc1\ \x31\x56\x59\xf4\x92\x25\x4b\xc4\x31\x31\xc7\xfd\x9a\xca\xca\x30\ \x2f\xe2\x91\x5d\xbf\x20\xfc\xed\x64\x72\x9a\xca\x31\xf6\xe9\x6d\ \xfd\x10\x50\x64\xef\x41\x89\xc9\x09\x95\xc5\x03\x5b\xef\x08\xf6\ \xec\xd9\xd7\x9c\x9d\x7b\x31\x1c\xea\x1f\xc4\xe8\xe8\xd8\x34\xdd\ \xbf\xfd\x51\x10\x0b\x3e\x6f\xdc\xb2\x55\xda\x3a\x78\x63\xca\x30\ \x0c\x28\xdc\xc3\x28\x31\xb7\xa1\xc4\xe8\x40\x81\xce\x8c\x84\xcc\ \x1c\x64\x65\xe7\x82\x11\x5f\x9f\xb8\x29\xc0\xed\xf6\xf4\xd1\xff\ \xfd\xe1\x8b\x10\x3d\x4b\x78\x95\xfb\x3b\xc7\x67\x13\xf9\x6c\x1e\ \x05\xd4\x5d\x93\x90\x99\xda\xa0\xa4\xae\xaf\xd6\x34\x21\x35\xbf\ \x18\xa2\xa4\xd3\xb0\xb6\xd8\xef\x12\xcf\x20\x3f\x3f\xbf\x96\x9f\ \xf9\xf9\xa4\x95\xe6\x17\xd4\x32\x5f\x99\xbf\x84\xd7\x66\xfb\x5c\ \x1d\x9c\x86\xac\xb9\x13\xa5\x66\x17\x64\x75\x16\x64\x15\x6b\x10\ \x93\x20\x81\xa6\x52\x3b\x87\x74\xfc\xc6\x24\xc6\xae\x4f\x60\x74\ \xfc\x06\x56\xac\x58\x21\xa6\x33\x16\x3f\x8c\xf8\x7b\x84\xbf\x30\ \x4f\xed\x24\xad\x71\x04\xd0\x05\xc6\xd1\x32\x30\x71\x5b\x67\x75\ \xfa\xed\xa3\x73\x7d\x96\xd7\xdb\x90\x57\x51\x8f\x23\xf1\x62\x5c\ \x2e\x90\xdd\x47\xcc\x48\x87\x47\xc7\xd1\x3f\x38\x8c\xee\xde\xbe\ \x29\x3a\x7b\xc7\x3d\xd3\x30\xa3\xec\x9d\x31\x61\x9e\x5a\x02\xc1\ \x61\x13\x11\x97\x75\x8c\x42\x69\xf3\x43\xd7\xd6\x83\x5a\x4f\x1f\ \xf4\xbe\x41\x94\xbb\x42\x77\x7c\x36\xd8\x71\xb9\xda\x88\xb8\x34\ \x29\xd2\x33\xb3\xe6\xf8\x3c\x87\x78\x60\x88\x88\x83\xe8\xf0\xf9\ \x51\xab\xd7\x77\xb1\x02\x74\x06\x93\x2b\x74\x2b\x1c\xbe\x66\x10\ \x94\x5d\x3d\x53\xc0\xea\x3a\x9b\xd3\x6f\x19\x0d\x87\x2b\x7b\xa6\ \x50\x6c\x0b\x08\xc4\x0c\x55\xce\x2e\x54\xb5\x06\xa0\xb6\x76\x40\ \x61\x6a\xc5\xd5\x6b\x8d\x48\xb9\x24\x47\x8c\x28\x1e\x5e\x3a\x78\ \x76\xd7\x4c\xea\x91\xb1\xeb\xbc\xe3\x20\xdc\xed\x5e\x58\x6c\x2d\ \x28\x92\x97\xa0\xb8\x4c\xe5\x1f\x9a\xb8\x35\xdd\x73\x13\x70\xd3\ \x8e\xb0\x8e\x4c\x83\x2f\x2b\xe1\x8a\xb6\x8d\x03\x85\x96\x00\x2a\ \x1c\x81\xbb\xc4\xda\x56\x3f\x34\x36\xef\x5d\x9f\x33\xe5\x6a\x7c\ \x18\x17\x0f\x7d\x83\x61\x5e\xb9\x07\x87\x47\xd1\x1b\x0c\x09\x1d\ \xb3\x10\x96\xab\x34\x48\x3a\x7d\x06\x5a\x5d\x0d\x7c\x93\x40\x68\ \x0a\x30\xd2\xc4\x28\xbd\x63\x50\x9b\xad\xfe\xd9\x0a\x44\x37\x52\ \xa2\xf3\xaa\x4c\xa8\x76\x75\x0b\x1d\x57\xb4\xf8\x50\xd6\xd4\x86\ \x22\xbd\x55\xf0\xf9\xfd\x63\x22\x28\xcb\x55\xf3\x12\x0f\x8d\x8c\ \x09\x36\xf8\xbb\x7a\xe0\x68\x75\x51\x81\x46\x24\x24\x26\x22\xaf\ \xb0\x08\xde\xe1\x49\xf8\x26\x80\x06\x96\x1d\xef\x24\xa4\xa6\x4e\ \xd4\xf9\x87\xd8\x3e\x38\xc2\xad\xff\x5f\x01\x17\xb5\x06\x54\x3a\ \xfc\x50\x59\xdb\xef\xf8\x5c\x65\x40\x74\x52\x0a\x72\xf2\xf2\xe7\ \xf8\x3c\x23\xf7\x8c\xcf\x5d\x3d\x7d\x70\xb9\xdb\x61\x6a\x6c\x42\ \x6e\xde\x25\xc4\xc6\x9f\x84\xad\xab\x1f\xed\x37\x80\x4e\x22\x57\ \x04\x3e\xc1\x65\xd7\x28\xd2\xf5\x74\xae\xb3\x2f\xbc\xf7\x70\x64\ \x01\x71\xae\x9f\x9d\xfe\x68\xd3\xf0\x6d\x64\x6b\xf4\x28\x6d\x74\ \xa1\xb0\xb6\x19\xd9\x65\x3a\x88\xc4\x92\xfb\x7c\x9e\xe9\x7a\x60\ \x68\x44\x90\xbb\xdd\xdb\x89\x66\xab\x0d\xa5\xa5\xe5\x38\x76\x3c\ \x16\xf5\x56\x07\xda\xc8\x63\x0b\x05\x59\x1d\x04\xa4\x8d\x3d\x48\ \xac\xb0\xe3\x42\x73\x1f\x2e\x18\xbd\x50\xd4\x34\xb0\xf0\xed\xba\ \x77\xfc\xa2\x1b\xfa\x3f\x41\x96\xb2\x1a\x57\xaa\x4d\xc8\x92\x6b\ \xb0\xf7\xa8\x08\x0d\x06\xd3\xbc\x72\x07\xfb\x07\xe0\xf3\x77\xc1\ \xee\x70\xa2\x8a\xfc\x15\x9f\x96\x20\xef\x4a\x01\x06\x6f\x01\x0e\ \xca\x92\x36\x44\x79\xa2\xf6\x33\x0c\x7e\x9c\xae\x76\x21\xbd\xde\ \x87\x0c\xea\xbe\xce\x17\x62\xa3\xf8\x01\xe1\x3b\xf7\x16\x70\xb4\ \xb6\x77\x02\x29\x05\xa5\x38\x27\x53\x41\x94\x7e\x01\x6b\x23\xb6\ \xcc\x2b\x77\xa0\xbb\x17\xce\x36\x0f\x0c\xa6\x46\xa4\x67\x9c\x43\ \x6a\x96\x14\xee\x9e\x7e\xb8\xa8\xeb\x46\x0a\x98\xdc\x77\x13\xe7\ \x8c\x01\xa4\xd4\xb6\x23\x4d\xef\xc5\x99\x6b\x6e\xa4\xd6\x7a\xa0\ \x20\xe9\xdf\x7c\x6b\xb3\x94\xb8\xd6\xcc\xb7\x80\x8e\x69\xbd\x43\ \x48\x38\x7f\x05\xf1\xe7\x72\xb1\x2b\xf2\x38\x0e\x7e\x10\x79\x77\ \xac\x98\xdc\x3d\x7d\x21\x78\x3a\x7c\x68\xb2\x58\x51\x28\x93\x23\ \x3e\x21\x11\x26\x9b\x03\x01\x4a\x37\x6d\x63\xa8\xfa\xc2\x38\xdb\ \xd0\x29\x74\xcb\x88\xc5\xda\x56\x9c\xaa\x72\x22\xb9\xc6\x8d\xac\ \x7a\x37\x2e\x2a\x54\xcd\xc4\xf3\xef\x07\x6d\xc0\xd8\xb2\xd6\x6e\ \xc4\x24\x4b\xf1\xfe\x89\x53\x78\x6b\xdb\x4e\xa4\x9d\xcd\x10\xc6\ \x6a\x46\xee\x16\x7b\x2b\xb4\x55\x3a\x81\xb8\x50\x51\x8a\xf1\x69\ \x20\x40\x01\xab\x1d\x00\x8a\x3b\xa7\x04\x8f\x33\x4d\x5d\x77\xbb\ \x8e\x55\x98\x05\xef\xa5\x46\x1f\x8d\xb4\x9f\xbd\x17\x1c\x26\x3c\ \xf5\xa0\x02\x44\xb2\x46\x0f\x0e\x7d\x24\xc1\x8e\x83\x91\x78\xf5\ \x37\xab\xd0\xd4\x6c\x15\xd2\xcd\xe4\x6e\x30\x9a\x21\x39\x93\x0c\ \x69\xce\x45\x1a\xab\x09\xa1\xeb\xa6\x91\x3b\x72\x5f\x6a\x1d\xc6\ \x49\x4d\x8b\x20\x3b\x23\x4d\x50\xdb\x70\xb4\xa8\x41\x40\x92\xc6\ \x8a\xb2\xb6\xbe\xf0\xd2\x97\x97\x8b\xf9\xea\x5d\xf0\xa0\x02\xe2\ \xf3\x6a\xad\xd8\x15\x25\xc2\x96\xed\xff\xc1\xca\x55\xaf\x0b\x5d\ \xb3\x65\x22\x2b\xa2\xa7\x9b\xe8\x04\x6c\x1e\x1f\x7a\x69\x8b\xf9\ \xf9\x58\xe5\x39\x86\xf0\xb1\x25\x28\xa4\x9c\x05\x2d\x4e\xd9\x28\ \xc8\xce\xba\x4f\x28\x6f\xc6\xd9\x1a\x27\x34\xae\xee\xe9\x9d\xfb\ \x0f\x5d\xa5\xf3\x77\xf2\xbd\xbf\xe8\x41\x45\x24\x4a\x35\xf5\xd8\ \xb6\xff\x43\xac\xdb\xfc\x36\x76\xef\x7d\x0f\x8d\xcd\x16\x14\x2b\ \x94\xf8\xc7\x3b\xdb\x68\x43\x7a\xe1\xa1\x99\xbe\xd6\x0f\xe4\xb6\ \x0c\x40\xa2\x6b\x43\xb6\x35\x24\x78\x2e\x10\x52\xd7\xd1\xb2\x7a\ \xc4\x96\x18\x71\x4e\xef\x81\xdc\xde\x1d\xce\xd7\xe8\xda\xe8\xdc\ \x18\x9e\xfa\x6f\x71\xf9\x9f\xe0\x85\xdc\x57\xc4\xa9\xd4\xa2\x0a\ \x6c\xdd\xb9\x17\xaf\xaf\x59\x27\x8c\x95\xa2\xb4\x0c\x3b\xde\x7d\ \x17\xe2\x7c\x05\xe2\x8a\x1b\x84\x70\xb1\x6e\xd9\x27\xf3\xfa\x78\ \x89\x49\x28\x84\x15\x11\x5f\x6e\x11\xe4\x3e\x4f\x61\x2b\x33\xdb\ \x83\x2f\x2c\x5d\x96\xc2\x82\xcd\xe7\xfd\x25\xc2\x0f\xf9\x93\xf6\ \xeb\x84\xaf\x10\x16\xde\x5b\x40\x72\x52\x5e\x31\xd6\xff\x7d\x07\ \x9e\x7f\xe9\x15\x21\xe5\x47\x8e\x44\xe1\xbd\xe8\x58\x24\x96\x9b\ \x11\x43\x7e\x32\xa2\xd4\xba\x0e\x41\x66\x16\x2e\xe6\x7b\x12\xfb\ \x54\x59\x90\xac\xb5\xa1\xae\x23\x38\xb5\x73\xff\x41\x39\xcb\x13\ \x27\x67\x9b\xee\x65\xc2\x2b\x84\x65\x84\x9f\x12\x9e\xe1\xef\x03\ \xf7\x15\x90\x1e\x97\x75\x09\x7f\xde\xf4\x36\x5e\x5b\xf5\x7b\xa4\ \xa4\xa6\x61\xfd\xa6\xcd\x38\xa3\x36\xe1\x40\x8e\x46\x08\x18\x5b\ \x2a\xac\xf3\x8f\xa8\xdb\xa8\x42\x3d\xe2\x14\xa4\x40\xa5\x0d\xc5\ \x2d\xfe\xdb\x59\x57\x4b\xac\x74\xc6\x09\x96\x25\xc2\x3b\x3c\x70\ \xbf\xe3\xaf\x5f\xec\xfb\x72\xc2\x8f\xb8\x02\x5f\x9e\xcf\x82\xcc\ \xa8\x94\xf3\x78\x63\xfd\x66\x44\x6c\xda\x82\x0d\x1b\x23\x90\x4c\ \x96\x1c\xcc\x51\x0b\x84\xac\x80\xe4\x1a\x8f\xa0\x82\x88\xc2\x96\ \x5e\xe7\x26\xb9\xdb\x50\xda\xd0\x14\x78\xfe\xc5\xa5\x69\x9c\xf8\ \x00\x7b\x99\xe1\x4f\xb8\xb5\xfc\x3b\x2b\xe0\x57\x84\x9f\xf1\x1c\ \x3c\xc1\x83\x78\xdf\x25\x8d\x94\x64\x62\x4d\xc4\x56\x6c\xd8\xb0\ \x11\xc7\x92\x33\x10\x27\xd7\x63\x7f\xb6\x5a\xe8\xfa\x44\x59\x33\ \x24\x94\x74\x49\x95\x03\x17\x9b\xfc\xd0\xba\xba\xa6\xd6\x6e\x88\ \xf8\x98\xcb\x1d\x45\xd8\xc4\xc9\x18\xf1\x9b\x84\x3f\x11\x56\xf1\ \xce\x7f\x42\xf8\x26\xe1\xc9\x87\x4d\x81\x34\x26\x3d\x5b\xc8\xc0\ \xf6\x43\x51\x10\xc9\x74\xd8\x23\x2d\x15\x36\x19\xf3\xfd\xa4\xda\ \x8a\x4c\xbd\x1b\x15\xed\xc1\xdb\x51\x09\x62\x35\x5b\xdd\xdc\xe7\ \x08\xfe\xae\xf8\x47\x4e\xfa\x06\x27\x66\x2f\xb2\x3f\x27\x7c\x9f\ \xf0\x35\xee\xfb\xa2\x87\xed\x81\x0c\x71\x9e\x1c\xff\x3a\x10\x89\ \x33\x65\x7a\x6c\x93\x5c\xc6\xe1\x7c\x1d\x75\xed\x84\x44\x6b\x47\ \xae\xd1\x13\x2e\x37\x5a\xfc\xbc\x5b\x36\x56\x7f\xe5\x04\x2f\x12\ \x56\x72\x9f\x57\xf2\x8e\x9f\xe5\xc4\x4f\xf3\xae\xbf\x34\x5f\xe8\ \xee\xbd\xf6\xe5\x16\x97\x4e\x66\x57\xd6\x63\xdf\x79\x25\xb6\xc4\ \x67\xe3\x84\xd2\x84\x1c\xb3\x17\x1a\xab\x67\x78\x5d\xc4\x26\x29\ \x5f\xa5\x3b\xf8\x48\x3d\xc5\x49\x9e\x23\xbc\x40\xf8\x25\x97\xfa\ \xbb\x3c\x68\xb3\x89\x17\x7c\x9e\xd7\x70\x16\x14\x89\x54\xef\xc4\ \x3f\x4f\x5f\xc2\x79\x43\x07\xb4\xee\xbe\xe9\x63\x49\x12\x15\xef\ \x78\x37\xbf\x67\x01\x5f\x24\x4f\xf2\x1f\x27\xdf\xe6\x78\x66\xd6\ \xa2\xf9\x42\xc4\x33\x17\x3b\xf0\x60\x86\xac\xdc\xad\x6c\xed\x0e\ \x17\x55\xeb\x5d\xfc\x95\xe9\x10\x0f\xd7\xec\x87\xc8\x42\x4e\xb2\ \x98\x13\x2e\xe6\xa3\xb5\xe8\xff\x21\x9e\x7d\x3d\xce\x65\x8e\xe2\ \x9f\x5b\x09\x3f\x78\xc0\xbd\x0b\x38\xd9\xc2\xcf\x22\xfd\xac\x5f\ \xd5\xff\x05\x42\x5a\xb5\xfc\x4a\x39\x80\xc8\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x7c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x05\x0e\x49\x44\x41\x54\x58\xc3\xb5\ \x57\xdd\x6f\x15\x55\x10\xa7\xb4\x5a\xa8\x42\x48\x25\x14\x34\x90\ \xc2\x03\x36\xbe\x54\x1e\x0c\x0f\x04\x35\x10\xfd\x1b\xca\x9f\xe0\ \x93\x89\x4f\x05\x0d\xb9\x8d\x18\x13\xa2\x0d\x81\x04\x13\x31\x9a\ \xf2\x46\x62\x80\x68\x53\x6d\x29\x94\x7e\x72\xa5\xbd\xb7\xbd\xbd\ \xdb\xfb\xd5\xf6\x7e\xb5\xb7\xb4\x40\x6b\x8b\xf8\xd2\xdb\x3d\xe3\ \x6f\xce\xce\xd2\x75\xdd\xdd\x16\xc5\x87\x5f\xe6\xec\x9c\x99\x39\ \xbf\x3d\x67\x76\xe6\xec\x16\x22\xda\xb2\x11\xde\x3f\x15\xaa\x00\ \xb6\x0a\x2a\x03\x60\xdb\x54\x6c\x26\x2e\x63\x7d\x91\xa6\x50\x33\ \x30\xe2\x83\x88\x0f\xb2\x01\x73\x7e\xb1\x9a\xfd\x08\x8c\x0c\xcd\ \x12\x75\x24\x4c\x6a\x4f\xac\xd1\xf9\x1e\xa2\xee\x29\xeb\xf9\x8b\ \x2e\x93\x6e\x4f\x13\xf5\x15\x88\xbe\xec\x26\xfa\x35\xa5\xe8\x67\ \xa3\x4c\x1f\x5d\x8e\xd1\xad\x49\xd8\xa4\x4c\x6a\xe9\x30\x9f\xe9\ \xcf\x75\xb1\x8d\xa9\x7d\x39\x0e\xfb\xfe\x64\xac\xd2\xe5\xfb\x26\ \xf1\x3a\xbe\x04\x06\x41\xa0\x2b\x43\xd4\x9b\x27\xea\xcc\x28\xba\ \x9b\x83\x63\x7c\x55\xcb\x0e\x90\xea\xc9\x12\x16\x58\xd5\x36\x8c\ \xd6\x1f\xc7\xb5\x5d\xf7\x94\xa9\xc9\xde\xc1\x7c\x67\x5a\x51\xfb\ \x44\x99\x3a\x92\x96\x8e\xc1\xb6\xfc\xcc\xf1\x83\x08\x34\xfb\x6c\ \x79\x14\x18\x05\xc6\x04\x31\x60\x5c\x50\x70\x8c\x63\x0e\x9b\x51\ \xf1\xf3\x3a\x12\xef\x23\x70\x25\x5b\x15\xf0\x32\x50\x03\xec\x04\ \x6a\x81\x3a\x60\x3f\x70\x08\x38\x0c\x34\x00\x1f\x8b\x3c\x2c\xfa\ \xfd\x62\x57\x2b\x7e\x35\x12\xa7\xca\x2f\x39\xbd\x16\xaf\x04\xcb\ \x4f\xe5\x0d\x9c\x6f\xcf\x6f\x19\x07\x0c\x60\x42\x30\xeb\x18\x1b\ \x32\x3f\xee\xda\x85\xa8\x8e\xb7\xfe\x95\x54\x6c\x44\xa0\x8a\xb7\ \xac\x6d\x8c\xa8\x07\xe7\x77\x1b\xe7\x7b\xa1\xd7\x1a\x77\xa6\xca\ \x74\xa9\x1f\xe7\x8a\x73\xbf\x95\x5e\xa3\x4f\xae\x8c\x53\xcf\xb4\ \x35\x77\x51\xeb\x4d\xea\x4c\x96\xe9\xab\x3b\x4a\xeb\x7b\x91\x13\ \x6d\x63\x8a\xf4\x11\xf8\xec\x82\x17\x81\x97\x98\x75\x64\x9e\x03\ \x2b\xea\xcb\x89\xcc\x2a\xea\xcf\xf1\x22\x6b\x34\x50\x50\x5a\x77\ \xe9\x46\x9c\xee\x4e\x2b\xad\x63\x3b\x3d\x9f\x2e\xeb\xe7\xc1\x02\ \xfb\xad\x11\xc7\xd1\xbb\xc0\x71\xfd\x08\xfc\x6d\xfb\xf9\xcc\x9a\ \x42\x9f\x39\xb6\xde\x4e\x3a\x7b\xeb\x93\x40\x4a\x50\x72\x8c\x93\ \x8e\xa3\x70\x26\xe5\xa8\x8e\x67\x11\xf8\xc7\x31\x78\x13\x38\x15\ \xda\x2e\x49\xb4\x1b\x78\x43\x12\xec\x2d\xe0\x08\x70\x14\x38\x0e\ \xbc\x07\x84\x44\x1e\x17\xfd\x11\xb1\x3b\x24\x7e\xbb\x25\xce\x76\ \x89\x1b\x40\xa0\x29\x74\xda\xe7\xd3\xb3\x93\x8f\xdf\x2e\xe1\xd8\ \x81\x34\x30\x27\xd2\xde\x81\x84\xd8\x79\x25\xa3\x1d\xfb\xb4\x1f\ \x81\x91\x91\x92\x49\xf7\x51\x2c\x06\xb2\x26\x5d\x8d\x10\x8d\xcc\ \x11\xdd\xcb\x9b\xf4\xfd\x3d\x6b\x1c\x2e\x2a\xfa\x76\xd0\xd4\xba\ \xe8\x03\xa2\xb3\x57\x0d\xea\xcf\xae\xd1\x70\x89\xb4\x4d\xb8\x48\ \xda\xff\x0a\x6c\x58\x1f\x46\x1e\x7c\x37\xa4\xf4\x7c\xb8\x68\xd2\ \xcd\x94\x55\x88\xfc\x08\x44\x92\x8b\x58\x30\x67\x6a\xb0\xd3\x10\ \x4b\x04\xd4\x01\x90\x78\x3c\x0e\xe7\x95\x1e\xc7\x16\x88\xbe\xb9\ \x19\xd3\x73\xb6\x2d\xeb\x07\xb0\x70\xdf\xd4\xaa\xb6\x1b\x9e\x55\ \xf4\x5b\xd1\x8a\xc9\x73\xc6\x63\xb2\xbf\x88\x75\x02\x72\xfe\x4c\ \xe0\x8c\x63\xfb\xa3\x1e\x09\xe8\xde\xfe\x8c\x1c\x41\xc6\xe3\x18\ \xdc\x89\x18\x75\x1c\xc3\x19\x7b\x4d\x77\x12\x56\x4a\xa6\x72\xc2\ \xec\x00\x5e\x03\xf6\x01\x07\xa5\xda\xbd\x2d\x89\xf6\x2e\x70\x12\ \xf8\x10\x38\x27\xf2\xa4\xe8\x8f\x8a\x5d\x83\xf8\xed\x93\x38\x3b\ \x24\xae\xfd\x25\x78\x7e\x05\xfe\x04\x9a\x42\xad\xae\x1d\xc8\xb8\ \x76\x20\xe3\xda\x81\xd6\x17\x4d\xc0\x48\x3d\x56\x14\x47\x51\x69\ \x4f\x10\x8d\x95\x14\x45\x91\xb0\xe7\xaf\x19\x18\x9b\x94\x78\x44\ \x74\x23\xa6\x68\x14\xe3\xc9\x25\x7d\xce\xc6\x0b\x27\x50\x78\x42\ \x14\x9d\x29\x53\x0c\x8b\x4c\x20\x01\x19\x6d\xbf\x18\x94\x78\xa8\ \x30\xb6\xc8\x25\x41\x64\xfa\xf7\xff\x87\x40\xeb\x73\x26\xe1\xd7\ \xff\x95\xc0\xab\xd2\x52\xf7\x02\xf5\xc0\x9b\x40\xa3\xa3\x0a\x9e\ \x00\x3e\x00\x3e\x17\x79\xc2\x51\x0d\x1b\xc5\xbe\x5e\xfc\x6b\x25\ \xde\xa6\x08\x70\xc7\xda\xa6\x1d\x9a\x42\x2d\x01\x7d\x20\x68\x07\ \xdc\xfd\xa0\x45\x08\x6c\x93\xf8\x95\x41\xbd\xc0\x26\xf0\x0a\x97\ \xd0\x99\x3f\x88\x72\x38\xd3\x3e\xb4\xd6\x29\x14\x91\xd4\x3c\xae\ \x65\x68\xc5\xe9\x87\x26\x65\x1e\xa1\x1b\x5e\x8f\x53\x7a\xc1\xd4\ \x73\xbd\x68\xc9\x69\xe4\x43\x7e\x19\x5d\x70\xd2\xb2\x67\x7f\x5d\ \x8a\x39\xde\x3a\x81\xad\x1b\x11\xa8\xd6\x37\x19\x38\x16\x57\x14\ \x02\x29\xca\x2d\x91\x96\x8c\x49\x2c\x9c\x5d\xb4\xe4\xb5\x6e\x83\ \x32\x20\xc3\xf3\xd9\x45\xd2\xc4\x58\x5a\x76\x26\x15\x56\x94\x4d\ \xa0\x46\xe2\x56\x6d\xb6\x1b\x32\x81\x90\xa3\x1a\xc6\x7d\xaa\xe1\ \x9c\x4f\x15\x8c\x3b\xaa\x60\xc8\x71\x35\xf3\xee\x86\x42\xc2\xab\ \x1d\x73\x06\xbf\x2e\x09\xd5\x20\x09\xf6\x0e\x70\x4c\x92\xee\xac\ \xc8\x63\xa2\x6f\x14\xbb\x7a\xf9\x02\x6a\xbd\xda\xb1\xdf\xad\xd8\ \xdd\x8e\xed\x96\x1c\x0b\x68\xc9\xa5\x80\x56\x1c\x73\xdd\x0b\x9f\ \xb5\x63\xdf\xff\x82\x85\x3f\x89\x4a\x28\x38\x45\x24\xde\x30\xba\ \xd7\xec\x0a\x12\x69\x19\x55\x0f\x5d\xb0\x08\x59\x58\x52\x5a\x3f\ \xb3\x6c\x3d\xff\xd0\x31\xa1\x75\x45\x3c\xb3\x4d\x7e\xc9\xd4\xfe\ \x61\x74\x3f\xdb\x3e\x32\xb3\xae\x37\x16\x82\xff\x0b\x34\x01\x6b\ \x51\x26\x81\xc0\x08\x90\x5f\x84\xf3\x8a\xd2\x44\x38\x48\xe9\x89\ \xa2\x07\x4f\x21\x61\x77\xbd\x67\xc2\xb2\x03\xf8\xd9\x1a\x9b\x7a\ \xcc\xb6\x1c\x87\xe3\xcd\x2e\x5b\xe3\xf9\xa7\xcf\xff\x63\x12\xf5\ \xb8\x1b\xda\x09\xc9\x28\x3a\xc6\x71\x8f\xbb\x60\xf4\xdf\xfe\x98\ \xd8\x55\xb1\x5a\xbe\x61\x3b\x21\xeb\xe4\xae\x77\x40\x12\xed\xa0\ \xc8\x03\xa2\xaf\x13\xbb\x9d\xe2\x57\xed\x77\x19\xf5\x24\x10\x40\ \xa2\x46\xea\xf9\x2e\x59\x60\x8f\x2c\xb6\x57\xe4\x1e\xd1\xef\x12\ \xbb\x9a\xcd\x2c\xce\xf8\x0b\x15\x86\xe3\xed\xf2\xf3\x48\xec\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x7e\ \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\x06\x45\x49\x44\x41\x54\x58\xc3\xc5\x57\x79\x50\xd5\x55\ \x14\xfe\x3d\x78\x8b\x5b\x91\xcb\xa4\x19\x0a\xa8\x21\xe6\x08\x82\ \x21\xb2\x48\xa1\x52\x9a\xe2\x40\xb8\xc5\x26\x25\x0a\xa5\xe8\x28\ \x28\x35\x28\x04\x62\x46\xac\xef\xb9\xa0\x82\x90\xca\xa2\x20\xc3\ \x08\x6a\x21\x20\x13\x30\x88\x06\x21\xbb\x3a\x98\xd8\x60\x8e\xd3\ \x1f\x2d\xc8\xa8\x85\xef\x74\xbe\xdf\x5c\x8c\x99\xca\x1e\x96\xf5\ \x66\xbe\xb9\x9c\x73\xbe\x73\xee\x77\xd7\xdf\x45\x22\x22\xe9\xff\ \xc4\xe3\x83\x92\xa4\x60\x4c\x66\xb8\x31\x7c\x18\x1b\x18\x11\xa2\ \xf5\x11\x7e\xc4\x15\xff\xaa\x00\xd1\xf1\x24\xc6\xd2\xe5\xcb\x97\ \x1f\x48\x4b\x4b\x3b\xcf\xbf\xce\x8e\x8e\x8e\x9f\xbb\xbb\xbb\xf5\ \x68\x61\xc3\x8f\x38\x78\x82\xaf\xf8\xc7\x02\xf8\x67\xc4\xb0\x73\ \x75\x75\x8d\x4a\x4f\x4f\xaf\x69\x6b\x6b\xeb\x61\xd0\x99\x33\x67\ \x28\x2a\x2a\x8a\x42\x43\x43\xe5\x16\x36\xfc\x88\x83\x07\x3e\xf2\ \x90\xff\xc4\x02\x44\xe7\xb3\x3c\x3d\x3d\xb5\xc5\xc5\xc5\x57\x5b\ \x5b\x5b\x29\x33\x33\x93\x56\xf9\x07\x5e\xb7\x5b\xb8\xa2\x72\xc2\ \xe2\xf7\x4e\x8e\xf0\x8a\x3e\x8a\x16\x36\xfc\x88\x83\x07\x3e\xf2\ \x90\x3f\x18\x11\x7f\x58\x6f\x27\x27\xa7\x98\xa2\xa2\xa2\xab\x8d\ \x8d\x8d\x14\x1d\x13\x7b\xc7\x79\x59\x50\x99\x89\x4f\x42\x96\xe4\ \x9f\xa1\x95\xd6\xe4\x24\x4b\xeb\xf2\x13\xe5\x96\x6d\xf8\x11\x07\ \x0f\x7c\xe4\x21\x7f\x30\xfb\x62\xa0\x00\x25\xc3\x5b\xab\xd5\xd6\ \x36\x37\x37\x53\xaa\x6e\xcf\x1d\x87\xc0\xc8\x02\x69\x75\x66\xaa\ \xb4\xe1\xf4\x27\x52\xc4\x85\x58\x29\xba\x25\x4a\x8a\xbd\xb2\x43\ \x6e\x61\xc3\xcf\x71\xf0\xc0\x47\x1e\xf2\x51\x07\xf5\x0c\x16\x20\ \x46\x6f\xe5\xe1\xe1\x71\xb8\xb6\xb6\xf6\x6e\x49\x49\x09\xbd\xbd\ \x65\xe7\x39\xe9\xdd\xec\x64\x69\x6b\xf5\xce\xb1\xa9\x5d\x31\x2b\ \x8b\x7f\xd0\x45\x5d\xb8\x77\x64\x7f\xf3\xaf\x05\x68\x61\xc3\x8f\ \x38\x78\xe0\x23\x0f\xf9\xa8\x83\x7a\x86\xcc\x42\xbf\x00\x63\xc6\ \xc2\xb8\xb8\xb8\xea\x86\x86\x06\x4a\xd2\xed\xbf\x3e\x36\xe4\xf0\ \x21\xb9\x78\xfc\xad\x0f\x03\xca\xee\xeb\x74\x2d\xfa\xbc\xd4\x16\ \xca\xe9\x07\x6c\xf8\x11\x97\x45\x32\x1f\x79\xc8\x47\x1d\xd4\x43\ \x5d\x43\x05\xa8\x19\x6b\x72\x73\x73\x6f\xd4\xd5\xd5\xd1\x96\xf8\ \xb4\x0a\x4c\xef\xb4\xb4\x9b\xbb\xc3\xaa\xef\xa7\x9f\xbf\x45\x55\ \x95\xb7\xa8\xba\xa2\x9b\xbe\xec\x07\x6c\xf8\x11\x07\x0f\x7c\xe4\ \x21\x1f\x75\x50\x0f\x75\x0d\x15\x30\x94\xf1\x41\x69\x69\x69\x4f\ \x55\x55\x15\xbd\xb9\x3d\x33\x0f\x6b\xbc\xa9\xfc\xc7\xc3\x92\x55\ \x10\x59\x2e\xd9\x45\x2e\x01\x3a\x9a\xe3\x9b\x42\x0e\x3e\x29\x72\ \x0b\x1b\x7e\xc4\x65\x1e\xf3\x91\x87\x7c\xd4\x41\x3d\xd4\x35\x54\ \xc0\x30\x46\x5c\x79\x79\xb9\xbe\xa6\xa6\x86\x26\x87\x9d\x38\x88\ \x8d\x96\xd4\x70\xef\x84\xe4\x7e\x92\xd4\x2b\x9b\x68\x74\x60\x2b\ \x99\xae\x6b\xa3\x49\xef\xb7\xcb\x2d\x6c\xf8\x11\x97\x79\xcc\x47\ \x1e\xf2\x51\x07\xf5\x50\xd7\x50\x01\xc3\x19\x91\x3c\x75\x3d\xf5\ \xf5\xf5\xe4\x93\x7a\xfa\x18\x76\x7b\x78\xcd\x2f\x87\x24\xef\xcb\ \x24\xad\x65\xd2\x1a\xc6\x3b\x03\x00\x1b\x7e\x8e\xcb\x3c\xe6\x23\ \x0f\xf9\xa8\x83\x7a\xa8\x3b\x98\x19\x58\x9f\x98\x98\x78\x13\x9b\ \x48\x9b\x5f\xf6\x05\x46\x34\x23\xfb\x6e\xec\xb6\x3a\x3a\x18\x56\ \x4d\xa7\x83\xca\xa8\x7c\x5d\x05\x9d\x0b\x66\xa0\x85\x0d\x3f\xe2\ \xe0\x81\x8f\x3c\xe4\xa3\x0e\xea\x0d\x66\x06\xb0\x07\xbc\x43\x42\ \x42\x2e\xf0\x31\xa2\xca\x9a\xba\x6b\x93\x3f\xbe\x98\x24\x25\x7f\ \x1f\x21\xa5\xf5\x85\x49\x09\x94\x29\x23\x91\x32\x1e\xa1\xdf\x87\ \x38\xf3\xc0\x47\x1e\xf2\x51\x47\xdc\x05\x43\x07\x73\x0a\x5e\xb1\ \xb7\xb7\xcf\xcd\xc8\xc8\xe8\x6d\x6a\x6a\x22\x6d\x51\xcd\x29\x29\ \xee\x7a\xa4\xb4\xef\x5e\xb8\x94\x42\xa9\x52\x3c\xe5\x49\x9f\x52\ \xce\x23\xc0\x86\x1f\x71\xe6\x81\x8f\x3c\xe4\xa3\x0e\xea\x0d\xe6\ \x14\xe0\x1e\x78\x8e\xb1\xd6\xd7\xd7\xb7\x81\xef\x75\xaa\xff\xfa\ \xf2\xed\x2d\x79\x5f\xa5\xcb\xe7\x5c\x77\x2f\x52\x4a\xd6\x27\xf3\ \x88\xb3\xb8\xe3\x7c\xb9\x85\x0d\x3f\xc7\xc1\x03\x1f\x79\x3e\x3e\ \x3e\x8d\xa8\x23\xea\x19\x0f\xe6\x26\xc4\x32\x38\x58\x58\x58\xe8\ \x78\x0a\x6f\x54\x56\x56\x52\x53\x4b\xeb\x77\x19\x15\xcd\x85\x96\ \x7b\xbf\xd9\x2d\x2f\x87\xae\x67\xab\xb4\xef\x7e\xb8\xdc\xb2\x0d\ \x3f\xe2\x97\x9b\x5b\x6e\x83\x1f\x1c\x1c\xdc\x6b\x6e\x6e\x7e\x91\ \xeb\x04\x30\x5e\x34\xf8\x26\x1c\xf0\x2d\x30\x61\x2c\xb6\xb2\xb2\ \x3a\xe6\xe7\xe7\x77\x23\x3f\x3f\x9f\xda\xdb\xdb\xa9\xb1\xed\x6a\ \xc7\xf1\x9a\x8e\x53\xa1\x85\x57\x0e\xd8\xec\xbf\x16\x8f\x16\x36\ \xfc\x88\x83\xc7\xfc\x5e\x2f\x2f\x2f\xf2\xf7\xf7\xff\xc9\xc4\xc4\ \x24\xd7\x7a\x9c\xd1\x51\x3c\x58\x06\xfb\x35\xc4\x5e\x18\xcd\x58\ \x62\x6a\x6a\xba\xcf\xc5\xc5\xa5\x91\x67\xa3\x97\x8f\x15\xe1\x43\ \xd3\xd9\xd9\x49\x5d\x5d\x5d\x72\x0b\x1b\x7e\xc4\x99\xd7\xc4\xfc\ \x4b\xe8\x9c\x6d\xda\xf8\xc6\xd4\x07\x47\xbc\x34\x0f\x97\x4d\x57\ \x96\xfc\x9d\x88\x3f\x7b\x0f\x68\x84\x08\x57\x46\xa8\x99\x99\x59\ \xa1\xb5\xb5\xf5\x25\x47\x47\xc7\x6f\xdd\xdc\xdc\xee\xba\xbb\xbb\ \xeb\xd1\xc2\x86\x1f\x71\xf0\x18\x41\x3c\xf2\xe3\x81\x73\x2d\x1f\ \xc4\xbf\xaa\xa2\x03\x8b\xd4\x94\xcd\x22\xfc\x6c\x94\x39\x8f\x13\ \xf1\x57\x2f\x22\xb5\x58\x0e\x53\xc6\x02\x71\xaf\xe3\x62\x49\x60\ \xec\x65\x24\x32\xb6\x8b\xcd\xf6\x3a\x63\x22\x63\xca\xb8\xa1\x8a\ \xec\xd0\x19\x4a\xfd\x8e\xd9\x2a\x4a\x78\x4d\x45\x07\x59\x44\xce\ \x5b\x9a\xbe\x80\x99\x4a\x2c\xc7\xbc\x3f\xdb\x13\x8f\x7b\x13\x2a\ \xc5\xc6\xc4\x6e\x1e\x2b\x3a\xc1\x43\xe3\x25\x81\x49\x42\xe0\xf3\ \x82\x33\x82\xb1\xc8\x7a\xa4\xe2\xec\x26\x6b\xa5\x3e\xda\x41\x45\ \x49\x6e\x2a\x4a\x5f\xac\xa6\x3c\x6f\x4d\x9f\xff\x4c\xe5\x31\x31\ \x18\x23\x51\x5f\x61\xe8\xab\xd8\x58\xcc\x08\x6e\xcb\x67\x19\x23\ \xc5\x12\x8d\x11\xed\x28\xe1\x1b\x29\xfe\xf6\xb4\x1b\xa5\x28\xd8\ \xcc\x22\x3e\x9a\xa3\xa2\xe4\x79\x2a\xca\x58\xa2\xa6\x13\xcb\x34\ \x7d\xab\x6d\x95\xd9\xe2\x33\xad\x7c\x24\xc4\xa0\x57\xcb\xef\x33\ \x32\x84\xf1\x8c\xe8\x08\x23\x7f\x41\x1c\xb7\x09\x0c\x33\x86\xb9\ \x80\x2f\x8b\x28\x0c\xb3\x51\xea\x63\x1c\x55\x94\x32\x5f\x4d\x99\ \x1e\x6a\x2a\x58\xa1\x79\xc8\xcb\x81\x4b\x6a\x11\x43\x25\x8b\x30\ \xb0\x73\x63\xd1\xb9\xc9\x80\xe5\x98\x22\x5e\x3d\x2f\x33\x66\x30\ \x6c\x18\x33\x07\x60\xad\xed\x28\x45\x71\xb8\xad\x52\xbf\xd3\x49\ \x45\xda\x05\x6a\xca\x62\x11\x27\x57\x68\xf4\xfe\xb6\xca\x3c\x21\ \x42\x69\x88\x00\x23\x31\xfa\xe1\x62\xd4\x16\xa2\x53\x5b\xc6\x6c\ \xc6\x1c\x86\x33\x63\xae\x38\x39\xfd\x80\xbd\xd1\x76\xb4\xe2\xec\ \x36\x16\xb1\xcb\x59\x45\x7b\xdc\xd5\xf4\xd9\x52\x0d\x15\xae\xd4\ \xe8\x1d\x4c\x8d\xf0\x82\x1e\x67\xa8\x00\x95\x58\xff\xf1\x8c\xa9\ \xe2\xfd\xef\x28\x3a\xc2\x7f\x47\xf3\x19\xee\xe2\x44\xf4\xc3\x5d\ \x6c\xba\x30\x16\x51\x1a\x61\xc7\x22\x5c\x54\xb4\x97\x45\xac\xb7\ \x57\x55\x61\xaf\xc8\xb3\xfa\x1f\x08\xc0\xf1\xdb\xcc\x22\x3e\x8f\ \x98\xa5\xd4\xaf\x9a\x6a\x8c\x57\xb3\xaf\x38\x41\x43\x9e\xf6\x12\ \x38\x0b\xa1\x0e\x8c\x90\x09\xc3\x15\x59\xe2\x3b\x31\x45\x0c\x48\ \xfd\x34\x37\xa1\x8d\xf0\x4f\x67\x4c\x63\x58\x8a\x99\x1b\x2f\x8e\ \xec\x30\x83\x36\xe1\x13\x1e\x43\x73\x61\x4f\x14\x53\x3d\x5e\x08\ \x1f\x23\x06\x31\xac\xff\x18\xfe\x06\xa3\xbf\x6b\x5c\x6e\x71\x2e\ \x0b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x8c\ \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\x04\x53\x49\x44\x41\x54\x78\x5e\xc5\x96\x5d\x68\x1c\x55\ \x14\xc7\xcf\xcc\xec\xce\x64\x66\x3f\x92\x98\xe6\x63\x3f\x66\xcd\ \xd6\x45\xb3\x56\x24\x62\x49\xaa\x35\x48\x84\x44\x6c\xad\x51\x8c\ \x85\x22\xea\x9b\x8f\x42\xdf\x4a\xfb\x20\x3e\x14\x34\xe0\x8b\x0f\ \xbe\xe5\x45\x10\x41\x82\x0f\xd2\x3e\xd8\x94\x4a\x7d\xa8\x28\x45\ \x21\x5a\x9b\x54\x1b\x93\xcd\x26\xbb\x6b\x43\x5b\xb2\xbb\xb3\xb3\ \x33\x7b\x77\x3c\x97\x39\xb0\x83\x84\x4d\x9b\x76\xe2\x81\x1f\x97\ \xbb\xec\x3d\xf7\x3f\xe7\xe3\xde\x2b\x38\x8e\x03\xff\xa7\x05\xe0\ \x3e\x6c\xfc\xc4\x47\x31\x1c\xa6\x91\x2c\xb4\x6c\x0b\xb9\xee\x99\ \x27\x90\xa4\x67\x3e\xf7\xfd\x57\x1f\x5e\x7a\x60\x01\xc4\xf4\xbb\ \x6f\x1f\x3d\xad\xeb\x03\x1a\x9f\xf0\xe0\x19\x86\xc9\x72\x6b\x05\ \x43\x10\xdc\x05\xbd\xfb\xba\x95\x9e\x9e\x2e\x19\xc8\xce\x7e\x3c\ \xcb\x87\x87\x24\x80\x88\xc7\x7b\x43\x41\x49\x91\x4c\x1b\xa0\xd1\ \x00\xd0\xf5\x4c\x37\x88\x00\x22\x8a\x90\xd0\x63\x10\xe9\x40\x09\ \xf9\x8d\x5b\x06\x00\x44\x1e\x4a\x0a\x88\xb9\x2f\xbe\x3c\x0f\xc8\ \x1b\xcf\x0c\x0f\x25\xa7\xa6\x5e\x49\xc9\x4a\x54\xb1\x50\x08\x8f\ \x40\x30\x88\x0e\xed\x3a\x3b\x7f\xe9\x87\xfc\x77\x17\xae\x6c\x52\ \x6a\xe6\xa0\x8d\xed\xaa\x08\xa9\x1e\xde\x3b\x76\xec\xa5\xb3\xa3\ \x87\xc6\x12\x35\x13\x40\x92\x00\x34\x15\x63\x7d\x71\x7e\xf5\xc2\ \xfc\x95\x19\xcc\xfb\xe7\x70\x0f\x26\xc2\xee\x2d\xab\x27\x63\x1a\ \xd7\xcf\x01\x01\x40\x0e\x00\xe0\xe6\x9b\xad\xcd\xfd\x15\x30\x92\ \x4a\xe9\x51\x9b\x01\x30\x14\x20\xa1\xa7\x7c\x3e\xcf\x3b\xe2\x67\ \x04\x7c\x13\x40\xe1\xcf\x66\x32\xa9\x01\xc0\x42\xe4\xf9\x6f\xa2\ \x00\x01\x3d\x15\x8a\x45\x83\xf2\xee\xcb\x39\xe0\x25\x9b\x4e\x27\ \x35\x8b\xba\xc0\x11\xdc\x0e\x58\x5d\xdd\x68\x09\xf0\x39\x05\x43\ \xb1\x44\x2c\x54\xb7\x00\x6c\x46\x8e\x24\x80\x85\x85\x25\xff\x53\ \x40\x8c\x26\xf5\x54\xc4\xe4\x02\x1a\xae\x97\x4a\x65\xab\x5e\xa9\ \x18\x39\x2c\xc0\x2d\xdf\x52\x40\xf9\x4f\xf4\x0f\xec\xdb\x2f\xab\ \x51\xa5\x7c\x87\xe7\xdf\x0d\x7f\x2e\x97\x2b\x03\xc0\x4f\xbe\xde\ \x05\x44\x76\x30\xad\x6b\xf5\x3a\x80\x65\xf1\xa9\xdb\x01\x1b\xf9\ \x42\x15\x27\x8b\x7b\x22\x20\x91\x8c\x6b\x3c\xfc\x16\x73\x8f\x5d\ \x11\xb9\x76\xed\x46\x2b\x02\x3e\xd7\xc0\x48\x5c\x7f\x34\x6a\xd6\ \x01\x6c\xdb\x5d\xc0\x58\x9d\x95\x8a\x9b\xb7\x30\xff\xeb\xbe\x09\ \xa0\xfc\x47\x43\x61\xed\xa9\x70\x57\xaf\x56\xb3\xdc\x03\x48\x0c\ \xf0\xf0\xaf\xb5\xaa\xdf\xe7\x08\x0c\x0d\xa6\x53\xa1\x5a\xcd\xcd\ \xbf\x43\x05\xf8\x4f\xb1\x40\xfd\xef\xbf\x80\x6c\x22\x15\xd7\x6a\ \xd4\x7e\xdc\x02\x01\x80\xa5\xeb\x7f\xed\x59\x04\x46\xe3\x7a\x3a\ \xc2\x6f\x3f\x8b\xfa\x3f\x28\x03\xac\x2c\xe7\x0c\xcc\xff\x9e\x44\ \x60\xa4\xab\x37\xc9\x0b\x10\x18\xe3\xed\xc7\xc3\x4f\x17\x90\x5f\ \x6f\x42\x01\x8d\x8f\x63\xd3\xa7\x9f\xdc\xff\x78\x46\x33\x4c\x00\ \xde\x82\x0c\xdc\xd7\xcf\xfa\xcd\xbf\xcb\x4e\x93\x5d\xc5\xbf\x79\ \xa3\xe9\x20\xe0\xa0\xed\x5a\x00\x6d\x4c\x80\x88\xd3\x43\x8f\x3d\ \x91\x89\x72\x01\x96\x45\x4f\xaf\x20\x40\x7e\x75\xbd\x66\x99\xc6\ \x9f\x80\xd3\xd6\xe6\x2e\xb8\xa6\xb9\x93\x18\xb1\xcd\xe6\x12\x09\ \x94\x39\xb8\xfa\x40\x67\xcf\x80\xdb\x01\xfc\x06\xa4\x0b\x68\xf1\ \xb7\x3f\xaa\x3f\x7e\xfb\xe9\xef\x38\x55\x91\x0e\x42\xa1\x75\x41\ \xf2\x23\x70\xdb\x5e\x40\xfb\xcd\x15\x44\x7d\x76\xf2\xfd\x97\x43\ \xe1\xf0\x64\xa8\x3b\x15\x31\x6a\xee\x15\xcc\x18\xcf\x7f\xa9\xc6\ \x98\xbd\xfc\x48\x2c\x33\x00\x00\x51\x7a\x80\x86\x91\x10\xa2\x91\ \x18\x99\xfc\xed\x2c\x80\x54\x8a\x48\x60\xf4\xd5\x0f\x26\x5e\x78\ \xf3\xd4\x67\x63\x6f\x9d\x39\x37\x34\x7c\x70\xe6\xe8\xf1\x13\x83\ \x75\x4b\x91\x98\xe3\xbe\xff\xb8\xa9\xe1\x7e\x75\x6c\x62\xf2\xf0\ \x81\xc3\xc7\xe7\x9e\x7b\xed\xe4\x0c\x8e\x13\x00\xd0\x49\x44\x48\ \x88\x42\x91\x10\xc9\x7f\xdb\x1a\x10\x38\x4f\xbf\xf8\x8e\x9e\x4c\ \x67\x3e\x39\x32\x3d\xa5\xf7\xc5\xfa\xd5\x26\x28\x52\xb5\x0a\xc0\ \xbf\xbe\x0b\xe5\x35\x99\xfb\x02\x0a\xa0\xdb\xe1\xe7\xc7\xfb\xc6\ \x8f\x8c\xf7\xe5\x96\x57\x06\xcf\x7d\xfd\xcd\xc1\xcd\xf5\xc5\x93\ \xa5\x95\x85\x0d\x00\xb0\x3c\xfe\x19\xd2\x40\xa8\x26\xda\x17\xa1\ \x10\x90\xe5\xce\x0e\x4d\x0b\x38\xe0\x08\xa5\x42\xd1\xe4\x6b\x4c\ \xc3\x6c\x16\xf2\xeb\x75\x2a\x33\x50\x54\x55\xea\x8f\xc7\x95\x2d\ \xfc\xa5\x7c\xdb\x5d\x68\x54\x0c\xa8\xde\x2d\x35\x28\xf4\x22\xd2\ \xf4\x08\x11\xef\xb9\x0b\x7e\x99\x9f\xbd\xe1\x38\x70\x66\x79\x69\ \xf1\x75\x6c\xb1\x20\x38\x4d\xa9\xd1\xb0\x4d\xb3\x7a\x67\x0d\x1c\ \x47\x40\x01\xa2\x14\x90\x35\x45\x8d\xa4\x28\x77\x0e\x1f\x6e\x17\ \x6f\x5e\xae\xdc\x2d\x19\x0f\x7a\x0e\x38\x08\xfb\xf5\xe2\xec\x65\ \x1c\xaf\x22\xaa\x37\x8f\x88\x44\xa3\xf0\x9f\x35\x4d\x0f\x0d\xc4\ \x22\xec\x56\xf8\x77\xee\x02\x87\x60\x48\x1d\x31\x90\x0a\x52\x46\ \xb6\xee\x83\x32\xad\xab\x22\x35\x6f\xfe\xdb\x46\xc0\x41\xa3\xc3\ \xa3\x81\x00\x2d\xb2\xe9\x7f\xf4\xe5\xc8\xf6\x11\xf0\x46\x81\x11\ \xb6\x87\xe6\x76\x87\xd1\xbf\xd9\xa8\xcd\x40\xb9\x85\xa0\x1e\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x94\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x26\x49\x44\x41\x54\x58\x85\xc5\ \x96\x6d\x4c\x53\x57\x18\xc7\x3b\xc5\xa9\x73\x4e\x21\xc6\x45\x65\ \xbe\xc4\xf8\xc2\xc8\xc4\x84\x2d\x43\x08\x74\x33\x6a\xf4\x83\x73\ \xcb\x14\x4c\x8c\x89\xc9\x8c\xc9\xa2\x26\x66\x89\x19\x59\x50\xdc\ \xa7\xc5\x84\x7d\x33\xc6\x97\xf8\x61\x5b\xf4\x83\x13\xfc\x60\x8c\ \x41\x37\xd4\x11\xa7\x20\x82\x88\xa0\x85\xad\xa5\xb5\x40\x5b\x4a\ \x69\x7b\x5b\x5a\x28\xf2\xec\xf9\xf7\x9c\xb3\x7b\x21\x8a\x55\xae\ \x91\xe4\x97\x73\xee\xe9\xbd\xe7\xff\x7b\x9e\x7b\x7b\x8b\x85\x88\ \x2c\x6f\x92\x37\x1a\x9e\xb2\xc0\x67\xdb\x8f\xe4\x1a\xd8\x33\x86\ \x72\xe6\xa4\xa4\x82\xc9\x33\x55\x80\x37\x2c\x2d\x3d\x7a\xd6\xa6\ \x38\x7f\xf9\x76\xb7\x91\x9b\x75\x6d\xfe\xd6\x76\x57\xb8\xdd\xee\ \x8e\x34\xb7\x39\xc2\x5f\xec\x3e\xda\xc4\xd7\xac\x37\x53\xa0\x81\ \x47\x1a\x19\x21\x52\xa3\x9a\xab\xbf\x58\x2c\x4e\x1e\x8f\x97\x86\ \x87\x87\xa9\xb9\xb5\x23\x6a\x2d\x3e\x7c\x8a\xaf\xcb\x36\x4d\x40\ \x85\x3e\x0f\x4d\x8b\x50\x4b\xcb\xc3\xa4\x4c\x22\x91\xa0\xea\x1b\ \x0d\x01\x6b\xc9\xe1\x23\xa9\x48\xa4\x24\xf0\xf4\x29\x71\x75\x3a\ \x63\x8f\x83\x41\x8d\xea\xeb\xef\xfe\xdf\x91\x48\x24\x42\xd7\x6a\ \x1b\x93\x12\xa6\x09\x0c\x25\x9e\x4f\xa0\x5f\xa3\xdb\x77\xea\x47\ \xdd\x96\x48\x34\x4a\x85\x5b\x7f\x68\x34\x45\x20\x31\x3c\x3a\x70\ \x70\x68\x34\xc1\x50\x94\x6e\xfe\xf5\x37\x5d\xbd\xfa\x07\x5d\xa8\ \xac\xa4\xaa\xaa\x8b\xf4\x67\xcd\x75\xda\xb8\xa3\xec\xa1\xc5\x62\ \x79\x6b\xc2\x02\x08\x1d\x88\x0b\x62\x83\x02\x04\x63\xc4\x9a\x16\ \x4d\xd0\x23\x9b\x83\x2a\x2f\x5e\xa2\xd3\x67\x7e\xa1\xb3\xe7\x7e\ \xa7\xda\x5b\x77\x28\xff\xcb\x83\xf7\x4d\x11\x88\x4b\x81\x48\x5c\ \x17\x31\x12\x8d\x8d\x50\x5f\x28\x4e\xae\x6e\x3f\x75\xba\x3c\xe4\ \xe6\xb1\x8f\x6f\x0b\x3f\x03\xf7\x4c\x11\x88\x71\xb5\xa1\x01\x6e\ \x75\x54\x48\x18\xe7\x18\x81\x16\x13\xeb\x18\x93\x62\x7c\x8d\xfc\ \x0a\x4f\xfc\x19\x88\x0e\x8a\x8d\x55\x90\x31\x10\xf3\x40\x44\x5f\ \xc3\x1c\xeb\x90\x33\x4d\x40\x93\x55\xf7\x69\x22\x00\x8c\x9d\xab\ \x4e\xa8\x75\x48\x9b\x26\x10\xe6\xca\x7a\xc3\x62\x63\x8c\xbe\x90\ \x08\xf2\x04\xf5\x40\xac\xe1\x58\x8d\xb8\xc6\x34\x81\x20\x57\xdf\ \xd3\xaf\x87\x63\x04\xc6\x40\x88\xe0\x9c\xd7\x22\x10\xe0\xd6\xba\ \xfb\x88\xba\x02\x22\x04\x01\x4a\x06\x6b\x00\x6b\x6a\xee\xf2\xf3\ \xed\x18\x30\x59\x00\x9b\x22\x1c\x38\x7b\xc5\x31\xa4\x30\xfe\xe3\ \xd5\xe7\x10\x80\x18\xae\x31\x55\x00\xa1\xd8\x1c\x63\x87\x47\x88\ \x20\xd0\xd1\xab\x77\x07\x73\x25\xe7\xd7\x4c\x14\xf0\x86\xc5\xc6\ \x08\x40\xb5\x10\x30\x0a\x19\x3b\x82\x35\x5b\x8f\xc9\x02\x5d\x41\ \xbd\x3a\xbb\x8f\xe8\x71\xb7\x10\x41\x28\x64\x94\x18\x3e\xc3\x1c\ \x02\x3d\x21\x21\x80\x37\xe1\x78\x6f\xc3\x94\x04\x50\x0d\x42\x11\ \xd6\xd6\x25\xc2\x70\xac\x50\xc7\x10\x50\x1d\x72\xf7\x43\xa0\x1c\ \xaf\xe2\x29\x4c\x1a\x33\xe9\x59\x32\x29\x09\xf4\xb2\x40\xab\x5b\ \x60\x0c\x57\x32\x00\x55\xe3\x58\x75\x01\x1d\xe0\xdf\x82\x26\x0e\ \x7c\x97\x79\x87\x99\x6a\x14\x49\x49\x00\x27\xa2\x0a\xdc\x02\x04\ \x22\x44\x85\xb7\x3c\x11\x42\x08\x55\xe1\x4e\xd9\xfe\xfb\x4e\x7e\ \x16\xf8\x9a\xa2\xe2\x43\xcd\xbc\xc7\xfb\xcc\x1c\x66\x96\x14\x41\ \x47\x26\xbd\x50\x40\xb6\x6b\xb2\xb5\xa4\xbc\x11\xed\x6c\xea\x24\ \x7a\xe0\x12\x41\x08\x86\x00\xc0\x31\x3e\xfb\x97\xbb\xe0\xe4\x87\ \xb0\xc3\x2b\xaa\x77\x7a\x82\x43\x05\x5f\x97\xd6\xf0\x1e\xcb\x99\ \x25\xcc\x7c\x26\x5d\x4a\xa4\xa9\x2e\x8c\x27\x80\x56\xa5\x41\xc0\ \xe1\xd7\xab\x6e\xb0\xeb\xed\x6f\x76\x8a\x96\x23\x34\x29\xd9\xee\ \x8d\x9f\xbf\x52\x17\xf8\xe6\xfb\xe3\x8e\x82\xaf\x0e\xd6\xe6\x7c\ \xbe\xf3\x47\xde\x23\x97\xf9\x88\x59\x26\x25\xde\x63\xde\x56\x5d\ \x78\x91\xc0\x14\xdc\xc7\x27\xfd\x7a\xbb\xdb\xb9\xc5\x75\x76\x11\ \x8a\xf5\x7b\x36\x6f\xfc\xd8\xaf\xd5\xbe\x92\xbd\x15\x8e\xbc\xcd\ \x07\x6a\x56\xaf\xdd\x75\x62\xfe\xd2\xdc\x5d\x7c\xed\x5a\xc6\xca\ \x14\x30\x9f\x30\xd9\xcc\x22\x26\x83\x99\xf6\x52\x02\xa8\xee\x11\ \x57\xdd\xc9\x9d\x70\xf1\xf7\xbc\x11\xa1\xbf\x55\xfb\x8a\xf7\x56\ \xd8\x11\x9a\x9d\xbf\xed\xa7\x8c\x79\xcb\xb6\xf3\xf9\x1b\x98\xf5\ \xcc\x3a\xb3\x04\x92\xb7\x20\xc4\x3f\xad\x0d\x36\x5f\xec\xf8\xb9\ \x6b\x3d\x25\xfb\x7e\xee\xc8\xdf\xf2\x5d\xf5\x2a\xeb\x8e\x43\x73\ \x32\xb3\xb6\xf0\x39\x85\x4c\x91\x81\x42\x19\xba\x86\xf9\x74\x22\ \xb7\x20\xf9\x10\x16\x6d\x2b\x2b\x43\x17\xf8\x3f\xdc\xaa\x8f\x37\ \x7d\xbb\x3f\x73\x45\x1e\x36\x5e\xc9\x7c\x28\x37\xce\x61\x56\x1b\ \xc8\x91\xeb\xa8\x38\xeb\x95\x1f\x42\x83\x44\x9a\x6c\xd9\x4c\xd9\ \xbe\xb9\xcc\x3c\x66\x01\xf3\x81\x6c\xeb\x62\x03\x38\x5e\xc8\x64\ \xca\xd0\x57\xfb\x1a\x3e\x43\x02\x6d\x9b\xce\xcc\x90\x32\xd8\x70\ \xb6\xac\x2a\xc3\x40\xba\x5c\x9f\x25\xdb\x3d\xee\x8b\xe8\x3f\x61\ \x3e\xe0\x61\x6f\x4e\x8f\x30\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x04\xd3\ \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\x04\x9a\x49\x44\x41\x54\x78\x5e\xad\x97\x4d\x6f\x1c\x45\ \x10\x86\xdf\xea\xee\x19\xaf\x0d\x17\x8e\xf8\x1f\x84\xbf\x00\x97\ \xfc\x0b\xc8\x81\x13\x1f\x02\xc9\x9c\x40\xe2\x12\xad\x36\x41\x0a\ \xe1\x00\x32\x27\x90\xe0\xc0\x85\x5c\x80\xdc\x90\x10\x87\x48\x28\ \x48\x11\x90\x4b\x82\x42\x40\x41\x0a\x06\x7f\x60\x47\x89\xbd\x8e\ \x63\xef\xcc\x74\x15\xbd\x35\x2d\xb5\xd4\x9a\x99\x55\x14\x4a\x7a\ \xdd\xed\x9e\x9a\xee\xda\xad\x67\xab\x66\x48\x44\xb0\xc8\x4e\x9f\ \x99\x10\x80\x20\x35\x42\xbf\x09\xe2\x78\xe5\xcb\xb1\x60\xb1\x41\ \x03\x88\x87\x7c\x0f\xc1\x33\x7d\x7e\x03\xeb\x32\x14\x4c\x8f\xbe\ \xba\x72\x69\xfc\x3e\x00\x38\x24\x7b\xee\xe2\x87\xe3\xd5\xe9\x11\ \xc0\x0c\x78\xcf\x60\x08\x7c\xc3\x78\x6a\xc5\xc1\x7b\x81\x73\x06\ \x44\x61\xb4\x84\xaa\x06\x44\x80\xba\x66\xbd\xb9\x2c\x0d\xaa\x86\ \xf5\xe6\xb2\x74\x30\x66\x7e\x0d\x3a\x8a\xb4\x32\x46\x30\x1a\x01\ \x67\xdf\x39\x07\x00\x1a\x80\x41\x32\x75\x76\x16\x00\x01\xd7\x37\ \x80\x95\x91\x0d\x87\x5b\x5c\xff\x8b\x40\x44\x98\x55\x8c\xab\x7f\ \x88\x1e\xce\x2c\x61\xbd\xf5\x2d\x9c\xd1\x39\x7b\x8f\xa7\x43\xb0\ \x3f\xdc\xae\xd1\x34\x0c\xcf\x8c\x5f\xc2\x7a\x55\xd7\x18\x2d\x01\ \xd7\xfe\x14\x14\x96\x16\xa6\x20\xcf\x33\x25\xa5\xff\x7b\xf2\x2f\ \xd9\x5c\xb2\xeb\x83\x29\xb8\x0a\xc2\xb9\xb8\xb9\x89\x72\x49\x28\ \x82\xca\x38\x3a\xf5\x49\x0c\x70\x50\x13\x54\x07\x55\x71\x6c\x92\ \xc0\xaa\x0c\xce\x3c\x80\x17\x20\xf8\xb9\x83\x76\x8a\x32\x5d\xdf\ \x46\xcf\xa7\xe6\x34\xc7\x65\x90\xe6\x9b\x22\xec\x48\x41\x64\x10\ \x7e\xb4\x3e\x5e\xbd\x7f\x28\x68\x9a\x90\xcb\x65\x87\x59\xed\xf5\ \x5c\xe7\x28\xac\x49\xbb\x23\x0b\x0a\x07\xd4\x0d\x60\x0c\xc1\x7b\ \x8f\xa5\xd2\x29\x64\x27\xb3\x26\xe4\xda\x29\x1f\x9e\xe7\x3c\x58\ \xbc\xfb\xb6\x02\xf7\x41\x47\x4a\x90\x43\xa8\x90\x15\x86\xe0\x8c\ \xc1\xb5\x3b\x61\xe3\xc2\x62\x79\x44\xb8\xf9\x0f\x94\x7c\xdf\x78\ \xfc\xba\x45\xa8\x1b\x81\x35\x84\xeb\x77\x3d\x08\xa4\xdb\xde\x50\ \x1f\xa3\xb0\xdd\xd8\x24\x94\xce\x85\xfb\x09\x03\xdc\x24\x08\x63\ \xa1\xc9\x21\xcc\x65\xd2\xd8\x0b\x21\xf7\xa4\xe0\x22\x00\x9f\xd6\ \x13\x0b\x39\x84\xe7\x01\x58\x55\x82\x6e\x29\x6a\x14\xc7\x32\xca\ \x44\x71\x54\x15\x35\x0b\x3a\xd1\xb1\x55\x95\x71\x83\x21\x08\x7f\ \xd2\xd9\xf0\x27\x4f\x4a\x26\x99\xbe\x05\x61\xbd\xe7\x3e\xe9\x0b\ \xe0\xd4\x7a\x80\xf0\xf8\x44\xdd\xb4\x12\x16\x85\x81\xa8\xbb\x68\ \x3e\x0f\x0e\x6b\x58\x6b\x75\x1d\x68\xab\x60\x59\x92\xfa\x08\x13\ \x5c\x81\xe0\x07\xac\xad\x4d\x18\xc0\xc7\x5d\xc1\x0e\x41\x48\x46\ \xe3\x13\x54\x55\x8d\xdf\x77\x80\xe3\xe3\x4a\xef\xbc\xb9\xc1\x61\ \xce\x58\x59\x2e\xf0\xf7\x81\x81\xf8\xb6\x44\xdf\xd9\x23\x70\x23\ \x28\x1d\xe1\xf6\x8e\xa0\x9e\xb1\xfa\x0f\x7d\x63\x79\x30\x4e\x01\ \x6c\xed\xd6\xda\x5b\x93\xed\xe8\x80\x6c\x03\xf3\x98\x29\xf8\x2e\ \xf3\xc9\x9b\x97\x82\x3f\x07\xd1\xcd\xff\xc4\x20\x7e\x04\xe1\xbd\ \x54\xf9\x50\x46\x8d\x32\x08\x83\x14\x50\x9b\x36\x54\xc2\xeb\x04\ \x1e\x62\x22\x73\x25\xeb\xfa\x15\x3c\x0f\xc1\xb5\x85\x3f\xbf\x34\ \xcf\x8d\x3b\x2a\xa1\x8e\x99\xbe\x06\xe1\x42\x67\x25\xfc\xfc\x93\ \xf1\xb3\xd3\x23\xd6\x85\xc2\x6a\x7b\xd5\x4e\xa7\xbb\xb3\xc4\xca\ \x27\x20\x02\x96\x4a\xc2\xe1\xc3\x1a\xcb\xa3\x02\x00\xd4\xd7\x1a\ \xd2\x2e\xc8\x22\x28\x9c\x85\xb5\x00\x0b\x81\x99\x61\x88\xb0\x32\ \x22\xbc\xfa\xe6\x04\x00\x2e\x74\x41\x88\xaa\xe6\x40\xb1\xd1\xc5\ \x8d\x07\xc0\xca\x92\x81\x08\xe3\xee\x3d\x68\x55\x23\x48\x98\x0b\ \x88\x82\x00\x6c\x4d\x1d\x1a\xef\xb5\x8d\x6f\xee\x1b\x0d\x60\x79\ \x64\xb1\x79\x10\xcb\x03\x08\x77\xf7\x04\xa3\x62\x7e\x4d\x82\xff\ \x70\x1d\xb8\xf5\xc6\xda\x79\x85\xf0\xc9\xeb\xc0\x70\x0a\x3a\x03\ \xc8\x20\xb4\xdd\x10\xaa\xca\x01\x08\xab\xa0\x13\x55\x82\xb1\x8a\ \xf2\xa9\x35\x47\xeb\x87\x50\xcd\x2c\xae\x86\xd1\x16\x7f\xfa\x6f\ \x40\xb1\x23\x0e\xa4\xe0\xd4\x17\x9f\x8e\x57\x99\x81\xd9\xcc\xc3\ \x39\xab\x30\x19\xa2\x08\x20\x00\x22\xad\x90\xce\xcd\x47\xe8\xba\ \xb5\xd4\x8e\x73\x07\x82\xb6\x72\x22\x52\x78\x1b\xcf\x18\x95\x06\ \x2f\xbf\x3e\xe1\xd8\x92\x91\x07\x61\xf2\x2a\xe1\x7d\x4b\xfb\xd6\ \xbe\x1e\xae\xfe\xbb\x0f\x5b\x1c\xd8\x33\xee\x1d\x19\x88\x66\x56\ \xb0\x7d\x80\xb9\x8f\x1e\xfe\xef\x14\x10\x16\x3d\x7c\x67\x4a\x10\ \x69\xdb\xf3\xee\x91\x24\x4e\x30\x0c\xe1\x6f\x21\xd2\x9d\xac\x19\ \xfd\x5f\x29\xb8\xac\x63\x5f\x0a\x62\x35\xec\x68\xc7\x2a\x6d\xc1\ \x4f\xd0\x8e\x9b\xa0\x3a\xaf\x82\x8b\xdb\x71\xde\x54\x1e\x1f\xc2\ \x34\x57\x4b\xe3\xe9\x97\x26\x9d\x4f\xc5\xa7\x2e\x7d\x36\x5e\xad\ \x1b\xc0\x1a\xc0\x2b\x58\x84\xaa\x62\x7d\xe9\xa8\x1b\x41\xe1\x48\ \x8b\x95\xb5\xb1\x3a\x32\x2b\x2f\x14\x63\x25\x52\x30\x15\x5e\x02\ \xe9\xb5\xf6\xe4\xc8\x87\x3e\xee\x09\xce\xbc\xd6\xf3\x62\xa2\xee\ \x22\xfa\x00\xfa\xe0\x11\xe9\x9d\xd6\x52\x00\x4c\x0f\xd7\x03\xf6\ \x4f\x8c\x6e\x29\xcc\xd8\x3b\x54\x50\x15\xb8\xdd\x69\x7b\xb0\x04\ \xdd\x0f\xa0\x1a\x83\x76\xfe\x48\x3f\x50\x0b\xf3\x81\x80\xcc\x40\ \x25\x7c\xf1\x95\xc9\x76\x9e\x82\x01\xe5\x26\x7d\xea\x7a\x31\xc9\ \xde\x8c\xb2\xb7\xe0\xfc\xe5\x24\x41\xe9\xa2\x6c\xfe\x62\x92\x2a\ \x9d\xaa\xce\x2a\x5f\xf6\x30\x9a\xcc\x64\x74\xe6\x30\x71\xda\x34\ \x11\x1e\x75\x9c\x94\xca\x6f\xf4\x6b\x86\x0f\x4f\xf6\x1f\xaa\x7a\ \xaf\xba\x88\x23\x10\x31\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x4b\ \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\x06\x12\x49\x44\x41\x54\x58\xc3\xc5\x57\x6b\x6c\x14\x55\ \x14\x9e\xc7\x0e\xd3\xdd\xa5\xd3\x2e\xee\x42\x61\xb7\xa5\xd1\x02\ \x05\x5a\x7c\xd4\x14\x81\xb4\x40\x25\xc6\x07\xa1\x4a\x78\x04\xf9\ \xa1\x09\xf2\x03\x48\x08\x89\xc1\xa8\x18\x88\xd1\x80\xf1\x8f\x1a\ \x81\xd8\xa0\x31\x3e\x80\xc4\x90\x62\x09\x91\x34\xbc\xc4\x86\xca\ \x2b\x3c\x22\x50\x52\x08\xb4\xdb\x2d\xad\xb4\x74\xed\x76\x67\x76\ \x67\x67\xef\x8c\xe7\xec\xdc\x85\x71\xbb\xbb\x6c\xcb\x0f\x6f\x72\ \x32\x3b\x77\xee\xbd\xe7\xbb\xe7\x7c\xe7\xb1\xac\x61\x18\xcc\xff\ \x39\x6c\xa9\x13\x0b\x57\x7d\x5c\x07\x8f\x65\x29\xd3\x6d\x20\x21\ \xcb\xbb\x04\x32\x3d\xcd\x79\x21\xba\xf6\xdc\xc9\xfd\xdb\xda\x46\ \x05\x00\x95\x6f\x79\x7f\xcd\x6a\xeb\x84\xbf\xab\x57\x51\x94\x08\ \x49\xbe\x3b\x1d\x76\xbe\xb8\xb8\xc8\x91\xba\x51\x51\xa2\xc4\xdf\ \xd5\xa3\xfc\x75\xf5\x56\x08\x2e\xf2\x3b\x4c\x1d\x00\x20\x27\x46\ \x0a\x20\x31\x26\x4d\xf2\x38\x6d\x82\xc8\xc7\x34\x86\xf1\x78\x7c\ \x52\x5c\x37\xe7\x59\x16\x36\xf1\x0c\x23\xc0\x4e\x1b\x08\x07\xef\ \xe8\xc5\x78\x9c\x61\x34\x90\xd2\xd2\x32\xd7\x82\x05\x35\xde\xee\ \xee\x80\xb7\xf1\xe0\xd1\x05\x00\x64\x27\x80\xd8\x9d\x49\x0f\x9b\ \xca\x01\x8b\x0b\xca\xa7\x4e\x29\x29\x5a\xbe\x6c\xf1\xe4\xfc\x02\ \x8f\x43\x8d\x99\x8a\x50\xa9\x5d\x64\x98\x96\x96\x96\xee\x5f\x9b\ \x4e\xf4\xe2\x1e\x58\xe7\x98\x39\xa3\x4c\x9a\x0f\x8a\xa3\x2a\xc3\ \x10\x9d\x02\xe4\x54\xf2\x4d\xc3\xbe\xf6\xf6\x9b\xfe\x1d\x00\xe2\ \xa7\x9c\x00\xa4\x80\xa9\x9f\x38\xd1\xfd\xe9\xa6\x4d\x1b\x2a\xc2\ \x0a\xdc\x12\x9c\x90\x07\xca\x83\xfd\x81\xd0\x97\x5f\x7d\xb7\x17\ \x96\x6c\x86\x83\x65\x58\x87\x7c\xa8\x9f\x37\xf7\xd9\xb5\xf5\xaf\ \x2f\x79\x52\x8e\x98\x60\xed\x79\x30\x4b\x42\xea\x07\x5b\xbe\x68\ \x86\x75\xf5\xe9\x74\x70\xd9\xfc\x03\x9b\x9a\x7a\x7a\xfa\x55\x0e\ \x4c\x8e\x30\x75\x8a\x95\xe5\x1e\x7c\x97\xe9\xb3\x0d\xe4\xb3\xd3\ \xad\x97\x5a\x07\xee\xf7\x29\xe8\xa6\x18\xb8\x43\x89\x82\x25\xf2\ \x24\x11\x80\x55\x00\xc8\x45\x23\x06\x60\x1d\x68\x56\x42\x4c\x10\ \xa8\x20\xc3\x38\x76\xad\xed\x46\x10\xbf\x23\x67\x90\x3f\xe8\x3a\ \x8f\xc7\x05\x76\x63\xbc\x23\x22\xa1\x75\xa0\x52\x5d\x37\x0f\x45\ \x20\x7a\x96\xd4\xc1\x26\xd7\x83\x05\x18\xde\x5c\x9f\x2d\xd3\xe4\ \x64\x81\xb8\xf1\x50\x79\xd2\x0a\x19\x86\x57\x72\xb9\x44\x34\x7f\ \x9c\x02\x45\x77\x85\x95\x28\xc2\x19\x1a\x35\x00\x83\x2a\xc7\x50\ \x43\x22\xa6\xe3\x2d\xf8\xd8\x09\x8f\xd9\x93\xbc\x25\xf9\x68\x7a\ \x8c\x5a\x8c\x18\xc6\x50\xc9\xd9\x3f\x2f\x07\xd1\x3d\xa3\x76\x01\ \x2a\xd7\xd0\xa7\x84\x4a\x7c\x98\xf2\x6a\x78\x2c\x7a\xf9\xb5\xba\ \x2a\x4e\x90\xc4\x28\x90\x6f\x8c\x00\x09\x0b\x20\x1d\x3e\xd4\xdc\ \x19\x0e\x2b\x7b\x80\xa4\xa1\x51\x03\x48\x98\x9f\xde\x3e\x06\xa4\ \xc2\x58\x87\x51\x0d\x8a\x2f\xe0\x8f\xca\x59\xe5\xd2\x8c\xca\x99\ \xae\xc9\x4f\x55\xb8\x87\x64\x93\xa4\x2c\xaf\x92\xdf\x9a\x9a\x3b\ \xcf\x9e\xb9\xb4\x27\x5b\x22\xca\x99\x84\x08\x02\x33\x9d\x0a\xc4\ \x2a\x70\xfb\xa4\xad\xdb\xb7\x55\xd9\xed\x66\x26\x44\x40\xb2\x82\ \xbe\x36\xd7\x0c\x40\x9e\x38\x72\x70\xff\x6d\x45\x56\xf6\xc0\xf6\ \x9f\x99\xc7\x25\x21\x49\x02\x20\xa6\x15\xa2\x51\x95\x04\xba\x02\ \xa1\xae\xce\x40\xc8\x0f\x72\xb7\x3b\x10\x12\xc6\x40\xcc\x83\xd9\ \x31\x67\xb8\x27\xf8\xa4\x35\x1b\x36\x56\xbe\xf4\x6a\xdd\x87\xce\ \xb1\x8e\x53\x98\xd0\x1e\xcb\x02\xa8\x1c\x15\x23\x17\x30\xce\x86\ \x06\xfb\xe4\xfd\xdf\x27\x32\xa1\x75\x54\xd7\x2c\x9c\xeb\x7e\x6e\ \x4e\xad\x2f\xa6\x89\x7c\x34\x2e\xf2\xd3\x9e\xae\xf1\x96\x95\x97\ \xbb\x8e\x34\x1d\xde\x01\x20\xbc\xe9\x5c\x91\x33\x09\xe3\x34\xb4\ \x30\x00\x6c\xc2\x83\x4c\xb8\x3e\x85\x8c\xeb\x2f\x9e\xbf\xbc\xf6\ \xed\xf5\x1b\x2b\xd5\x98\xc8\x87\x81\x0f\x0e\x87\xc7\xb1\x74\xf5\ \x9b\x53\x7f\x6c\xf8\x76\x1d\x7c\xbf\x91\x5a\x1d\xb9\x91\x44\x01\ \x12\x51\xb7\xa4\xe2\x34\xa9\x7b\xb7\x0c\x8c\xbf\x7c\xfe\x8f\x00\ \xba\x23\x02\x84\xed\x87\x00\x0c\x0e\x89\xfc\x92\x15\xf5\x25\x69\ \xfa\x8c\xdc\x00\x20\x09\x89\x85\x03\xd9\x32\x21\x82\x38\x7d\xb2\ \xb5\x5f\xcc\x33\xdd\x85\xf5\x60\x30\xcc\x30\x63\x5d\x3e\x09\xf8\ \x30\x07\xac\x20\x8d\x3c\x13\x52\x0e\x68\x49\x37\x3c\xba\x8b\x3b\ \xd7\xd7\x1b\x08\xa1\xbf\x70\x4f\x04\x40\x28\x50\x21\x8b\x4b\x4b\ \x30\x59\x95\x8f\xca\x05\x08\x20\x4e\x2d\x41\x72\x68\x23\x0d\x9a\ \xc2\xd1\x6a\x49\x31\x46\x9d\x8a\x0d\x4b\x24\x24\x5c\x60\x40\x1f\ \xa1\xb3\x30\x78\x8b\x70\x49\xc1\x5b\x3a\x0b\x3c\x4e\x4c\x5a\xb8\ \x87\xa1\x35\x01\xf2\xc2\xb0\x9a\x90\x11\x00\x6b\x0e\xf8\x6e\xb0\ \x49\xdf\x27\xda\x2e\xfd\x41\x3d\xc0\xbd\x42\xaa\xcc\x5b\xfa\x5e\ \xb5\xaf\xb4\x78\x22\x86\x21\x92\x10\x49\xcb\xd9\x90\x0e\x2a\xe9\ \xba\xe3\xef\x4d\x6d\x56\x6d\x99\x94\x9b\xc5\x94\xe1\x40\x11\x8b\ \xc5\x45\xb3\xa4\x62\xec\x09\x0d\xa2\xa1\x42\x87\xc5\xe2\x09\xe1\ \x38\xdb\xca\x59\x2f\xd4\x14\x0d\xc2\x3d\x55\x0d\xdb\x32\x0c\x45\ \x86\xe9\xeb\xbe\x99\xb6\x20\x71\x59\x94\xdb\xe6\xd4\xbf\xbb\x14\ \x6e\xe3\x0c\x47\xcc\x02\x84\xb7\xc7\x5b\xf1\xf6\xf1\x0e\x87\x94\ \x3f\xfb\x99\xba\xb7\x5e\xa1\x2d\xba\x54\x51\xbb\xaa\x76\xee\x1b\ \x9b\xb7\x3f\x5f\x5b\xbb\x4c\x2c\x9c\x52\x98\xa8\x09\xf0\x21\x1f\ \xbe\x16\x8c\x55\x49\xeb\xf1\x53\xd8\x3f\x1e\xc8\xda\x13\xa2\xf2\ \xda\x15\x1f\xbd\x08\xb8\x96\x03\x8c\xe9\xde\xc9\x25\x45\x55\x75\ \x8b\x7d\x91\xf8\x04\x3b\xde\x08\xad\x80\x3d\x61\x21\x1c\xca\x6a\ \x9d\x72\xc7\xb5\x0b\xff\x5c\xbd\x70\x11\xab\x9c\x51\x36\xa3\xdc\ \x39\xbd\xaa\xda\xe5\x18\x37\x4d\x0a\x0e\xc2\x5a\x0d\xdb\x77\x48\ \xcb\x85\x2a\x39\xde\xb8\xf7\x56\xf7\x9d\x8e\x5d\xa7\x7e\xf9\x64\ \xa7\x91\xd2\x84\xa6\x02\xe0\xe6\xaf\xdc\xba\x6b\xd5\xba\x77\x56\ \xbb\x27\x8c\x77\xc4\x88\xc8\xa3\x62\x2c\x34\xe8\x7f\x5c\xca\xf3\ \x66\xa9\x45\xb3\x3a\xa1\x18\x89\xa2\xb9\x17\x5b\x2f\x45\x31\x43\ \x0e\xbb\xa7\x3c\xc8\x03\x5a\xc8\x1f\x6e\x3d\x76\xb4\xc7\x7f\xab\ \xbd\xe1\x74\xe3\xe7\x5f\x27\x02\xc3\x30\xf4\x47\x72\x00\x21\xdd\ \xeb\xfd\x3b\x02\x1a\x59\x0c\x3b\x35\x18\xd4\x42\xc1\x01\x0d\xdf\ \x13\x76\x85\x05\x85\x4f\x8c\x13\xb4\x71\x2e\xe1\x61\xb6\x82\x08\ \x81\x87\x16\x8d\x92\x7b\x77\xef\x46\x3b\xda\xdb\x65\x7f\xfb\xcd\ \x33\x4a\xf8\xfe\xa1\x2b\x27\x7e\x68\xce\x44\xf8\x61\x00\x74\x12\ \x6f\xdc\xb7\xab\x41\xd0\x09\xb1\xe9\x7a\x5c\x30\x74\x22\xc4\x55\ \x79\x40\x8d\xc8\x03\x06\xa3\x73\x09\x10\x10\x01\x42\x9e\xd3\x2d\ \x08\x79\x6e\x6a\x3a\x83\x36\x84\x86\xae\x13\x39\xa6\x84\x6f\x0f\ \xf6\x75\x5c\xe9\xbc\xde\x72\x1d\x66\xc3\xd9\x42\x7c\x98\x0b\x28\ \x52\x34\xac\x93\x8a\x9d\xbe\x0b\xf4\x1b\x4f\x9f\x6c\x8a\xd1\x74\ \x8b\x60\xbc\x83\x53\x18\x70\x08\x23\x53\x10\xd1\x5c\x5c\x90\x0c\ \x27\xb4\xa6\x4a\x95\x10\x7a\x98\x6d\x04\x00\x12\xde\xa0\x67\x44\ \x28\x20\x9d\x49\x93\x0c\x6d\xff\xcd\x78\x60\x5f\x96\x4d\xde\x80\ \x7a\x36\x71\x90\xcd\xa2\x98\xcb\x00\xc0\x48\x01\x90\x04\x91\x14\ \xdd\x48\xf3\x37\xec\x5f\x35\x1d\x2c\x65\x8c\x04\xaa\xe9\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x07\x72\ \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\x39\x49\x44\x41\x54\x78\x5e\xa5\x97\x6b\x6c\x14\xd7\ \x19\x86\x9f\x33\x33\x7b\xf1\xda\xbb\x5e\xdb\xf1\x05\x1a\xb0\x21\ \xb8\x01\x43\x02\x85\xa6\x51\x29\x14\x2b\xa2\x49\x14\x89\x5f\x6d\ \x41\x55\xc9\x45\x28\x42\x02\xa7\x28\x4d\xaa\xfe\xea\x45\xe2\x47\ \xfe\x94\x44\x51\x4a\x93\x8a\xaa\x45\x4d\xa3\x46\x8a\x5a\x95\x48\ \x16\x69\x68\x43\x21\xad\x02\x82\x16\x62\x2e\x36\x36\xc6\x57\xf0\ \x8d\xb5\xbd\x17\xef\xee\xec\xce\xe5\x74\x38\x5a\x65\xd5\xf5\x62\ \x0b\xfa\x4a\xaf\xce\x68\xce\x1c\x7d\xcf\xf9\xbe\x6f\xce\xce\x0a\ \x29\x25\xe5\x24\x84\xd8\x0e\xac\x67\x71\x75\x49\x29\xff\xce\x7d\ \x4a\x01\x94\x04\x5e\xab\x69\x5a\xd4\x03\xfb\x9e\xe3\x38\x1d\x2c\ \x22\xef\xd9\x3f\x00\x9d\x05\x90\x5e\xee\x51\x5a\xe9\xae\x0f\x3c\ \xbd\xe9\xa7\xaf\xef\xdb\xf9\xf3\x27\x36\xae\x79\xf2\xe2\xc5\x8b\ \x0c\x0e\x0d\x31\x34\xe8\x79\xa8\xe0\xc1\x41\x35\x7a\xf7\xf1\xe6\ \xd9\xfd\xe4\xe6\x67\x3e\x78\x75\xe7\x6b\x6b\x9b\xc2\xcf\x79\xf0\ \x11\xee\x51\x46\x09\xc0\x86\xf6\x68\x76\x57\x55\x65\x8e\xab\x21\ \x49\x4f\x4f\x0f\xe1\x70\x98\xbb\x29\x95\x4a\x61\x4c\x0d\xd4\x39\ \xdd\x03\x75\x4b\xb4\x74\xcd\x55\xa8\x06\x92\xff\x0f\x80\xb8\x39\ \xd8\x47\xc5\x48\x1f\xb3\xb7\x5c\xfe\x71\xf2\x24\x19\x33\x8b\x63\ \xd9\x48\xc0\x34\x4d\x72\xb9\x1c\xf9\x7c\x1e\xdb\xb6\xa9\xad\xad\ \xa5\x22\x3e\x45\xa2\x42\xc3\x76\xb9\x2f\x19\x25\xf5\x14\x48\x70\ \x81\xc6\xa0\xe0\xc2\xbf\xfe\x86\x99\x99\x43\xc3\x45\x02\x02\x88\ \xe8\x2e\xba\x26\xf0\x09\x81\x71\x5b\xb2\x2c\x62\x20\x70\xc1\xa8\ \x08\x3c\xf5\xc2\xcf\xbe\xfe\xd2\x2f\xbb\x1e\x02\x36\x00\x51\xa0\ \x19\x68\x41\x89\xcf\x81\x77\x0e\xff\x60\x7d\x5f\x59\x80\x23\x47\ \x8e\x08\x5d\xd7\x35\xa9\x39\x0a\x60\xd5\xaa\x15\xf8\x32\x3a\x92\ \x10\x52\x4a\xcf\x20\x04\xd4\x87\x83\x04\x0c\x9d\x80\x4f\x63\x3c\ \x2b\xb8\x3e\x31\xc9\xbf\x27\xc7\x08\x6e\xda\xb9\x67\xeb\xb6\x6d\ \x7b\x2a\xc2\x21\x96\xd6\x06\x08\x05\x74\xaa\x2b\x75\xea\xc2\x7e\ \xa2\x55\x7e\x7a\x46\x92\xed\xc7\x3e\x9b\x0a\x00\xfb\x4b\x00\xe6\ \x77\xa5\x10\x78\x8b\x03\xac\x89\x56\x92\xb5\x1c\x2c\xdb\xc5\x95\ \x12\x4d\x08\xfc\x86\x46\xd0\xa7\x93\x75\x04\x89\x68\x0b\x6f\xbc\ \xf9\x3e\x8d\x4b\x1f\x04\x50\xa0\x85\x51\xd9\x2b\x93\x2a\x57\x75\ \xb5\x9f\xc6\xda\x06\x46\x26\xe7\xf6\xbd\xf4\xd6\xe7\x1c\x3e\xb0\ \x61\xff\x5d\x01\xd0\x41\x68\xa0\xeb\x02\xd7\xb3\xe1\x0a\x24\x02\ \x57\x0a\x34\xa1\xee\x2b\xdf\x4a\x39\x7c\xf5\xe9\xcd\x44\xeb\xea\ \x55\x6f\x94\x91\xea\x97\x64\x32\x49\x30\x18\x54\xcd\xfc\xfd\xed\ \xcd\xd8\xf6\x8d\x22\x44\x11\x00\xf6\xee\xdd\x2b\x3b\x3a\x3a\x5c\ \x43\x08\x7c\x1a\xf8\x75\x0d\xc3\xd0\xd1\x10\xd8\xba\x8b\x2b\x51\ \x00\x86\xa6\x11\x30\x34\xf5\x8c\x99\xcd\xaa\x20\x3e\x9f\x8f\x72\ \xb2\x2c\x8b\x44\x22\x41\x4d\x4d\x8d\x02\x08\x04\x02\xec\x6a\xff\ \x12\xee\xa9\x9b\xfb\x3a\xde\xbc\x70\xfe\x57\x2f\x6f\x3c\x6a\x50\ \x14\xae\xeb\x4a\xa1\xeb\x18\x06\xaa\xc6\x04\xee\x5c\x6b\xcc\xe5\ \x6c\xe2\xe9\x1c\xd9\xbc\x8d\xe5\x48\x42\x7e\x9d\xd9\x2c\xd4\x9a\ \x26\x0b\xc9\x71\x1c\x32\x99\x8c\x2a\x03\xc5\x46\x67\x63\x4b\x80\ \x4b\x03\xd9\xe7\x81\xa3\x1a\x45\x21\x3d\xe9\x1a\x18\x3a\xf8\x7d\ \x02\x5b\x4a\x06\x62\x29\xae\x26\x0d\x8c\x55\x5b\x78\xb0\xfd\x59\ \xbe\xbc\xe3\x65\xea\xb7\x3c\x4b\xcd\xc3\x5b\xb9\xd6\x3f\xc2\xe9\ \xd3\xa7\x89\xc5\x62\xaa\xe6\xa7\x4e\x9d\xe2\xf0\xe1\xc3\x6a\x2c\ \x9e\xb0\x70\xfc\xf8\x71\x0e\x1d\x3a\xc4\xc1\x83\x07\xe9\xec\xec\ \xa4\xff\xc6\x20\xb6\x9d\xd7\x84\xa7\xf9\x00\xba\x02\x60\x68\x36\ \xcb\xb9\x49\x87\xd6\x1d\x1d\x6c\xfb\xe1\x51\x2a\xb7\xbe\xc2\xf8\ \x03\x3b\xb8\xec\x3c\xc6\x65\xf9\x04\x99\xe5\x7b\x68\x79\x7c\x3f\ \x96\xa8\xe3\xd8\x87\x9d\xea\x54\x1c\x1e\x9d\xe4\x9b\x4f\xed\xe5\ \xca\x95\x2b\x0a\x40\xd7\x75\x42\xa1\x10\x95\x95\x95\xea\x3a\x12\ \x89\x60\x18\x06\xae\x6a\x52\xf7\x2e\x6f\x81\x10\x4c\x66\x25\xf1\ \xa5\xad\x7c\xe7\xc0\x2f\x48\xe9\xf5\x24\x52\x39\x84\x6e\x81\x26\ \x48\xe7\x5c\x62\x71\x93\x54\x2a\x4f\x77\xde\xe5\x72\x55\x80\x8d\ \xad\x5b\xb8\xd2\xdb\xc7\x58\xb6\x8d\x99\xb3\x13\x18\x2a\x80\xfc\ \x22\x68\x4b\x4b\x8b\x3a\xb4\x84\x10\x54\x55\x55\x31\x91\x04\x6f\ \x4e\x96\x05\x10\x1a\x0c\xa7\x24\xbb\x5e\xfc\x31\xe1\x25\xcb\x18\ \xe9\x7c\x97\xa9\xfe\xcb\x18\x81\x0a\x5a\x5b\x36\xb0\x7c\xd5\xa3\ \xf4\x4e\x84\xb9\x31\x9c\x22\x36\x63\x32\x3a\x95\x61\xcc\xb3\x21\ \x1a\x99\x8a\x25\x68\x7f\x2c\x48\x43\x11\x40\xed\xde\xdb\x35\x75\ \x75\x75\x00\x0a\x2a\xe5\xa4\xbd\xd1\x96\x77\x34\x3f\x03\x1a\xb4\ \x44\x05\x9f\xbc\xfb\x06\x12\x8d\x8a\xc4\x20\x0d\x91\x20\x8e\xeb\ \x72\xb3\xe7\x24\x31\xb7\x8a\x75\xdf\x7a\x9e\x68\xdb\x37\xb8\xd8\ \x13\x67\xcc\xce\x90\x4a\xe6\x49\xa7\x2d\xcf\x36\x08\x40\x16\xcf\ \x04\xef\x0d\x51\x00\x85\xa3\x5e\x81\xf9\x8c\x3c\x42\x97\x77\xcf\ \xc0\xb2\x88\x20\x6f\x0f\xe0\xaf\x8c\x50\xb7\xb2\x96\x82\x58\xd1\ \x50\x45\x3c\x63\xd1\x7f\xea\x6d\x92\xf5\xff\xe1\xa1\x87\x5f\x20\ \x99\xf6\x61\x59\x0e\xb6\xe3\x2a\x1b\x3e\x0d\x69\xaa\x0c\x50\x22\ \x05\xa5\x4c\x71\xae\x5c\x06\x94\x1b\x22\x3e\x7c\xa1\x00\xa5\xaa\ \xad\xf4\xf1\x40\xd8\xcf\xd9\x2b\x67\x59\xff\xc8\x6e\x42\x41\x83\ \xac\x67\xdb\x96\x9e\x5d\x0c\x5d\x03\x50\x8d\x26\x28\x0a\x09\x08\ \x89\x2c\x66\x87\xbb\x66\x40\x59\xa8\x71\x9e\xce\x0f\xcc\x30\x38\ \x6b\xb1\xa3\xe3\x2d\x7a\x66\xa3\xe8\x81\x14\xc1\xa0\xae\x82\xdb\ \x96\x81\xcf\xd0\x50\xbb\x74\x5d\x24\x25\x92\x14\xe6\x16\x01\xd0\ \x34\x81\x50\x66\x9e\xfa\xa7\x52\xbc\xfa\x5e\x17\xfd\xb7\xd2\x88\ \x6a\x93\xe6\xfa\x0a\xb2\xa6\x43\xce\xb4\x31\xbd\x71\xd3\xea\x1a\ \xce\x9c\x28\x5f\x02\x60\xf1\x12\x08\xf1\xbf\x59\x28\x55\x6b\x53\ \x98\xd7\x77\xaf\x67\x28\x61\xa3\x37\xac\x66\xcd\xba\xaf\xa8\xce\ \x2e\x88\x33\x23\xd0\xd6\xd6\xb6\x30\x80\x5c\xac\x07\x16\x28\xc1\ \xe3\xad\xb5\x7c\x6d\x65\x84\x4f\x7b\x27\xf1\x3f\xb2\x8e\x1d\xbb\ \x5e\x54\x5d\x5e\xa2\x45\x00\x58\x30\x03\xca\x9a\x00\x41\x51\xae\ \x65\x92\x4f\x4d\x63\xcd\xcd\x60\x67\xe2\xe4\x66\x24\x86\x95\x29\ \xd9\xd1\xe2\x52\x60\x0b\x37\xa1\x50\x96\xd2\xc1\x31\x93\xe4\xe7\ \xbc\xa0\xa9\x69\x05\xa0\x40\x24\xc4\x73\x30\x38\x2b\x59\x3a\xe7\ \xde\x17\x80\x44\x02\x62\xe1\x0c\x64\xc6\xba\x01\x8a\x41\x4d\xc9\ \x68\x42\x72\x2d\xe6\x32\x96\x92\xe6\x60\xbe\x2e\xf1\xed\xaa\x15\ \x8d\xf7\x0a\xe0\x38\x8e\x32\x18\x0b\xbf\x86\x96\x03\x33\x59\x49\ \xff\x8c\xe7\x69\x97\x89\x39\x69\x4e\xa5\x65\xff\x6c\x56\xf6\x0f\ \xc7\x65\xcf\xba\x2d\xed\xeb\xab\x9b\x5a\x9f\x29\x02\x2c\x1e\x78\ \x7a\x7a\x9a\xd1\xd1\x51\x26\xd2\x41\x60\x59\xbc\x2c\xc0\xe4\x9c\ \xe4\xe2\xb8\x8b\x17\x84\x9b\x49\x19\xbf\x3d\x27\xfb\xc6\xe7\x64\ \xcf\xed\xb4\x9c\x00\xc6\x0a\x1e\x6f\x58\xde\xd6\xa4\x1b\x7e\x16\ \x03\x48\xa7\xd3\xea\x7f\x44\x57\x57\x17\x37\x06\x47\xd1\xaa\x57\ \x12\x69\xde\x0c\x1a\xef\x94\x03\x18\xfd\x74\xd8\xb9\xd1\x3d\x25\ \xc7\xc7\x53\xb2\xcb\x83\x19\x02\x26\x81\x71\x20\x0d\xf8\x00\x1d\ \x08\x5a\x79\xd3\x70\x1d\xa7\x1c\x80\xfa\x00\x99\x98\x98\x50\x3f\ \xcb\xdd\xdd\xdd\xc4\xd2\x3a\x81\x86\xb5\x54\xad\xde\x86\xe6\x0f\ \xfd\xde\xd2\x8c\xb7\xbd\xaf\xe3\x73\xe5\x00\xba\xfe\xd8\xe5\xfc\ \x04\x88\x01\x03\x80\x09\x84\x81\x4a\x20\xc0\x3c\x49\x0a\x00\x2a\ \xc5\x33\x33\x33\x5c\xbf\x7e\x9d\x4b\x97\x2e\x31\x3a\x3e\x4d\xde\ \xd7\x44\x45\xc3\x66\xfc\x75\x91\xb3\xae\x74\xde\x1b\xbe\x76\xee\ \x4f\x7f\xfd\xdd\x8f\x6e\x7b\xc0\x6e\xd9\xb7\xc0\x9b\xe8\x15\x42\ \x5c\x07\x34\x20\x50\x08\x9c\x07\x74\x40\x02\x4e\x61\x4e\xf7\xf9\ \x83\xb6\x44\x30\x33\x3b\xcb\xc4\xf8\xb8\x0a\x3a\x30\x34\x4a\xca\ \xae\x42\xaf\x6e\x41\x34\x3d\x3a\x66\xa5\x13\x1f\x0e\x9c\xfb\xe8\ \x83\x4b\xa7\xdf\xef\x03\xe6\x00\x93\x12\x19\xcc\x97\x2c\x06\x23\ \x07\x08\xc0\x29\x80\x18\x5f\x00\x04\x42\xb1\x91\x5b\x53\x5c\xfd\ \xec\x2f\x4c\x67\x03\xf8\xa3\xcd\x18\x8d\xdb\x11\x66\xf6\xd8\xd4\ \xad\xde\x63\xff\xfc\xf3\x2b\x67\x00\x0b\xc8\x01\x59\xc0\x06\x5c\ \x40\x2e\x08\x20\x3d\x09\x21\xdc\xc2\x02\x0a\x8b\xac\x02\xac\x5e\ \x00\xd0\xce\x7f\xf4\xeb\xdf\x44\x9f\x7b\x6d\x49\xa0\xf9\xbb\xbb\ \x2b\x73\x99\x13\x99\xe4\xf4\x89\x0b\x1f\xff\xf6\xe3\x81\xae\x4f\ \xe2\x85\x35\x4e\xc1\x56\xd1\xb8\xb2\xa4\x61\xfe\x0b\xaa\xd3\xe9\ \xaf\x70\x35\x30\x23\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\xa0\ \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\x06\x67\x49\x44\x41\x54\x58\xc3\xc5\x57\x09\x50\x95\x55\ \x14\xfe\x1f\xfc\xef\xe1\x56\x84\x58\x6e\x28\xa0\xa8\x94\xca\x66\ \x88\x20\x62\xa8\xb8\x01\x06\x83\x4b\xb2\xa8\xa5\x0c\xa8\xe1\x14\ \x68\x5a\x2a\xc6\x96\x92\x28\x8b\x0a\x18\xc8\x22\x04\xc8\x22\x02\ \xa9\x91\x0b\x33\xc0\x10\x20\x88\x20\x88\x38\xb8\x0e\xe5\x30\xd3\ \xd4\xb8\xa0\xa3\xa3\xef\x74\x3e\xba\x14\x33\x99\x3d\x2c\xeb\xcd\ \x7c\x73\x38\xe7\x7c\xe7\xdc\x73\xcf\x5d\xfe\x8b\x44\x44\xd2\xff\ \x89\xe7\x3b\x25\x49\xc1\x18\xcb\x70\x64\x78\x32\x3e\x64\x6c\x16\ \xd2\x53\xd8\xe1\x57\xfc\xab\x05\x88\x81\xc7\x30\x16\x2d\x59\xb2\ \x24\x31\x21\x21\xe1\x2c\xff\xda\x5b\x5b\x5b\xef\x76\x74\x74\xa8\ \x21\xa1\xc3\x0e\x3f\x78\x82\xaf\xf8\xc7\x05\xf0\x4f\x8b\x61\xe5\ \xe0\xe0\x10\x9c\x94\x94\x54\xd9\xd2\xd2\x72\x8f\x41\xc7\x8f\x1f\ \xa7\xe0\xe0\x60\x0a\x08\x08\xe8\x96\xd0\x61\x87\x1f\x3c\xf0\x11\ \x87\xf8\x17\x2e\x40\x0c\x3e\xc5\xcd\xcd\x2d\xb6\xb8\xb8\xb8\xad\ \xb9\xb9\x99\x52\x52\x52\xe8\x3d\x9f\x55\x57\xad\xe6\x2f\x2d\x1b\ \xe5\xbc\x36\x7f\x90\xfb\x8e\xc3\x90\xd0\x61\x87\x1f\x3c\xf0\x11\ \x87\xf8\xbe\x14\xf1\xa7\xf5\xb6\xb3\xb3\x0b\x29\x2c\x2c\x6c\x6b\ \x68\x68\xa0\x1d\x21\xa1\x9d\xd3\x17\xaf\x39\xa5\xef\x1d\x95\xa6\ \xe7\x97\x1e\x3f\xee\x93\xfc\xaf\x26\x6e\x2d\x4a\x82\x84\x0e\x3b\ \xfc\xe0\x81\x8f\x38\xc4\xf7\x65\x5f\xf4\x2e\x40\x66\x78\xc4\xc6\ \xc6\x56\x35\x35\x35\x51\x4c\xdc\xbe\x4e\x9b\x55\x5b\xf3\xa4\x95\ \x29\x31\x43\x36\x9d\xdc\x3b\xf3\x40\x43\xfc\xc6\x92\x6b\x39\xe1\ \x67\x3a\x8e\x42\x42\x87\x1d\x7e\xf0\xc0\x47\x1c\xe2\x91\x07\xf9\ \x34\x2e\x40\xcc\xde\xd4\xd5\xd5\xf5\x50\x55\x55\xd5\xfd\x92\x92\ \x12\x5a\x1e\x18\xf6\x9d\xf4\x41\xe6\x5e\x69\x53\x45\xd8\xac\x8c\ \x5b\xd1\xa9\x8d\x77\x4f\xbc\xbb\x2e\x8e\x7c\x77\x64\x13\x24\x74\ \xd8\xe1\x07\x0f\x7c\xc4\x21\x1e\x79\x90\x4f\x93\x2e\xf4\x14\xa0\ \xcd\x98\x1f\x1e\x1e\x5e\x51\x5f\x5f\x4f\x7b\xe2\xe2\xaf\x8e\x5c\ \x97\x92\xfc\xfa\x8e\xaa\x48\xab\xb4\xce\x9d\xc9\x2d\x8f\x8f\x5d\ \xfe\x45\x7d\xd9\x27\xb2\x96\x7c\xe2\x6e\x12\x24\x74\xd8\xe1\x07\ \x0f\x7c\xc4\x21\x1e\x79\x90\x0f\x79\x35\x2d\x40\xc5\x58\x9d\x95\ \x95\x75\xbd\xba\xba\x9a\x02\x23\x13\xce\xa0\xbd\x73\x33\x3b\x62\ \x42\x6b\x1e\xa5\x37\xff\x4c\xcd\x9d\x0f\xe8\xb6\xcb\x17\xd7\xc8\ \x65\x3f\x11\x24\x74\xd8\xe1\x07\x0f\x7c\xc4\x21\x1e\x79\x90\x0f\ \x79\x35\x2d\xa0\x3f\x63\x4b\x69\x69\xe9\xbd\xf2\xf2\x72\x5a\xb8\ \x2d\x25\x7b\x52\x54\x5d\xf4\xf6\x8a\x3b\x19\x92\xe9\x1a\x1a\xef\ \x12\x41\xf6\x6b\x0b\x68\xda\xf6\x0e\xb2\xd9\x49\xdd\x12\x3a\xec\ \xf0\x83\x07\x3e\xe2\x10\x8f\x3c\xc8\x87\xbc\x9a\x16\x30\x80\x11\ \x7e\xfa\xf4\x69\x75\x65\x65\x25\x8d\x0d\x3a\x72\xd0\x3a\xbe\x35\ \x3a\xfa\xfc\xc3\x5c\xc9\x29\x9f\x54\xcb\x1a\x49\x7f\xcd\x75\x32\ \x08\xea\xa2\x31\x9f\x51\xb7\x84\x0e\x3b\xfc\xe0\x81\x8f\x38\xc4\ \x23\x0f\xf2\x21\xaf\xa6\x05\x0c\x64\x6c\xe5\xd6\xdd\xab\xab\xab\ \x23\xcf\x98\x6f\x32\x2c\x12\xda\xbf\x0c\xad\x7d\x9c\x2e\x79\x5c\ \x20\xc9\x97\x49\xab\x19\xef\xf7\x02\x74\xd8\xd9\x0f\x1e\xf8\x88\ \x43\x3c\xf2\x20\x1f\xf2\xf6\xa5\x03\xeb\xa3\xa2\xa2\x6e\x62\x13\ \xc5\xe6\x9e\xfa\x76\xe8\xae\xe6\x08\xe7\xa2\x07\xbb\x23\xce\x53\ \x5a\xe2\x45\xaa\xc9\x6c\xa3\x0e\x69\xf9\x7d\x92\x7c\x38\x80\x25\ \x74\xd8\xe1\x07\x0f\x7c\xc4\x21\x1e\x79\x90\xaf\x2f\x1d\xc0\x1e\ \xf0\xf0\xf7\xf7\xff\x9e\x8f\x11\x95\x55\x56\x5f\x99\xb0\xab\x26\ \x7a\x78\xe2\x4f\xc1\x36\x47\xd5\x21\xb3\xf3\xa8\x74\x63\x05\x35\ \x4b\x8b\xda\x49\xf2\xe4\x00\x96\xd0\x61\x87\x1f\x3c\xf0\x11\x87\ \x78\xe4\x11\x77\x41\xff\xbe\x9c\x82\xb7\xad\xad\xad\xb3\x92\x93\ \x93\xbb\x1a\x1b\x1b\x29\xb6\xb0\xb2\x48\x0a\xbf\xba\x55\x3a\xf0\ \x70\xa3\x49\x2a\x25\xcf\xc9\xa3\x4a\x69\x1e\x2f\xc7\x32\x0e\x60\ \x09\x1d\x76\xf8\xc1\x03\x1f\x71\x88\x47\x1e\xe4\xeb\xcb\x29\xc0\ \x3d\xf0\x1a\xc3\xd7\xcb\xcb\xab\x9e\xef\x75\xaa\x3b\x7f\xe1\x76\ \x60\xf6\xb9\x24\x29\xf2\x87\x4f\x87\x27\x3f\x0c\xb5\xce\x52\xa7\ \xbb\x1e\xa3\xb3\x0b\x8f\xd2\x39\x48\xe8\xb0\xc3\x0f\x1e\xf8\x88\ \xf3\xf4\xf4\x6c\x40\x1e\x91\x4f\xbb\x2f\x37\x21\x96\xc1\xc6\xd8\ \xd8\x38\x8e\x5b\x78\xbd\xac\xac\x8c\x1a\x2f\x36\xff\x98\x7c\xa6\ \xa9\x60\x52\xe2\xb5\x48\xb4\xd9\xfa\xc8\x83\x30\x87\xc2\xc7\x11\ \x90\xd0\x61\x87\xff\x42\xd3\xc5\xdb\xe0\xfb\xf9\xf9\x75\x19\x19\ \x19\xd5\x70\x9e\x15\x8c\x91\x1a\xdf\x84\xbd\xbe\x05\xba\x0c\x67\ \x53\x53\xd3\x0c\x6f\x6f\xef\xeb\xb9\xb9\xb9\x74\xe9\xd2\x25\x6a\ \x68\x69\x6b\xcd\xa9\x6c\x2d\x0a\x28\xb8\x9c\x68\x1e\x7f\x25\x12\ \x12\x3a\xec\xf0\x83\xc7\xfc\x2e\x77\x77\x77\xf2\xf1\xf1\xb9\xa3\ \xab\xab\x9b\x65\x36\x4c\xeb\x30\x1e\x2c\x7d\xfd\x1a\x62\x2f\xe8\ \x33\x5c\x0c\x0c\x0c\x0e\xd8\xdb\xdb\x37\x70\x37\xba\xf8\x58\x11\ \x3e\x34\xed\xed\xed\x74\xe3\xc6\x8d\x6e\x09\x1d\x76\xf8\x99\xd7\ \xc8\xfc\x5a\x0c\xce\x3a\x6d\x98\x37\xe1\x51\xba\x9b\xce\xd3\xc5\ \x13\xe5\x92\xbf\x2b\xe2\x59\xef\x01\x1d\x51\x84\x03\x23\xc0\xd0\ \xd0\xb0\xc0\xcc\xcc\xac\xd6\xd6\xd6\xf6\x96\xa3\xa3\xe3\x7d\x27\ \x27\x27\x35\x24\x74\xd8\xe1\x07\x8f\xb1\x86\x67\x9e\xb3\x6a\xc6\ \xf8\x47\x91\x33\x95\x94\xb0\x40\x45\x99\xee\x3a\x4f\xbd\xcd\xe5\ \xaf\x9f\x57\xc4\x5f\xbd\x88\x54\x62\x39\x0c\x18\x73\xc4\xbd\x8e\ \x8b\x65\x37\x63\x3f\x23\x8a\xb1\x4d\x6c\xb6\xb9\x8c\xd1\x0c\x93\ \x61\xfd\x15\x99\x01\x93\x65\xf5\xb6\xa9\x4a\xda\xfd\x8e\x92\x0e\ \x2e\x54\x51\x96\x87\xce\x93\x15\x16\x32\x96\x63\xd6\xb3\xf6\xc4\ \xf3\xde\x84\xb2\xd8\x98\xd8\xcd\x43\xc5\x20\x78\x68\x8c\x13\x18\ \x23\x0a\x7c\x43\x70\x06\x31\x16\x98\xe9\x29\x4e\x7c\xc4\x45\x04\ \xdb\x28\x69\x8f\xa3\x92\x92\x9c\x55\x94\xcd\x45\xf8\x58\xc8\x19\ \x62\x32\x5a\x22\xbf\x42\xd3\x57\xb1\xb6\xe8\x08\x6e\xcb\x57\x19\ \x7a\x62\x89\x86\x08\x39\x58\xd8\xf4\xc4\xdf\x6e\x56\xfa\x8a\xbc\ \x40\x33\x59\xfd\xf9\x34\x25\xed\x9d\xa5\xea\x2e\x22\x67\xb1\xce\ \x93\x95\x96\x72\xa6\xf8\x4c\xcb\xbf\x17\xa2\xd1\xab\xe5\x8f\x8e\ \xf4\x63\xbc\x22\x06\xc2\xcc\x87\x8b\xe3\x36\x8a\x61\xc8\x30\x12\ \xf0\xb2\x1a\xac\x28\x08\x32\x97\xd5\x21\xb6\x4a\x8a\x9e\xad\xa2\ \x43\x2e\x2a\xca\x5d\xaa\xf3\x94\x97\x03\x97\xd4\x02\x86\xb2\xbb\ \x08\x0d\x07\xd7\x16\x83\xeb\xf6\x5a\x0e\x13\xf1\xea\x79\x8b\x31\ \x99\x61\xce\xb0\xe8\x05\x5f\x8b\xc1\x8a\xe2\x20\x0b\x59\x1d\x66\ \xa7\xa4\xd8\x39\x2a\x4a\x75\x55\x51\xfe\x32\x1d\xf5\x0a\x4b\x39\ \x5b\x14\x21\x6b\x52\x80\x96\x98\xfd\x40\x31\x6b\x63\x31\xa8\x25\ \x63\x2a\x63\x1a\x63\x3a\x63\x86\x38\x39\x3d\x80\xbe\xc1\x52\x5f\ \x71\x62\x93\xa5\xac\x0e\x9f\xae\xa4\x7d\x4e\x2a\x4a\x5b\xa4\x43\ \x47\xb9\x08\x1b\x03\x2d\xbc\xa0\x87\x69\x5a\x80\x52\xac\xff\x08\ \xc6\x04\xf1\xfe\xb7\x15\x03\xe1\xbf\xa3\xd9\x0c\x27\x71\x22\x7a\ \xe0\x24\x36\x5d\x10\x17\x51\xba\xd9\x4a\x56\x47\xd8\xff\x56\xc4\ \x7a\x6b\x65\x39\xf6\x4a\x77\x57\xff\x83\x02\x70\xfc\x3e\xe6\x22\ \x4e\x6e\x99\x22\xab\x97\x99\x6a\xe3\xd5\xec\x25\x4e\x50\xbf\x97\ \xbd\x04\xd3\x45\xa1\x36\x0c\xff\x51\x03\x15\xa9\xe2\x3b\x61\x22\ \x26\xa4\x7a\x99\x9b\xd0\x5c\xd8\x27\x32\xde\x64\x8c\x17\x9d\x1b\ \x21\x8e\xec\x00\x8d\x36\xe1\x0b\x1e\x43\x23\xa1\x8f\x16\xad\x1e\ \x21\x0a\x1f\x22\x26\x31\xa0\xe7\x18\xfe\x0a\xd1\xfb\x82\xfe\x41\ \x1a\xc9\x6e\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xe9\ \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\x04\xb0\x49\x44\x41\x54\x78\x5e\xb5\x97\x41\x8b\x5d\x35\ \x14\xc7\x7f\x27\xc9\x7d\xef\x4d\xeb\x46\xf0\x93\x4c\xbf\x80\x7e\ \x05\xdb\x85\xed\x42\x10\x8a\xd2\x85\x8a\xa0\xa8\x0b\x79\xbe\xba\ \xb1\x0a\x6a\x77\x0a\xba\x70\x63\x17\xd6\xcf\x50\x10\x17\x5d\x58\ \x41\xab\x50\xb4\x6a\xa7\x3a\x63\xdb\xa9\x9d\xe9\x4c\xdb\x99\x77\ \xef\x4d\x8e\x21\x59\x04\xc2\xf5\x4e\xa9\x18\xf8\x73\x72\x6f\xce\ \x23\xb9\x39\xbf\x77\x4e\x22\xaa\xca\x41\xed\xa9\x13\x0b\x01\x04\ \xa0\xd8\x41\x29\x64\x7b\xe1\x8b\xb9\x72\x70\x43\x54\x35\x4f\x72\ \x7c\xf1\x06\x70\x8c\xe1\x26\x23\xef\x75\x74\x31\xc3\x3a\x7f\xe1\ \xdc\xfc\x5d\x00\x47\x69\xc7\xce\x7c\x30\x3f\xb2\x73\x1f\x42\x00\ \xef\x03\x01\xc5\xf7\x81\xc3\x87\x1c\xde\x2b\xce\x19\x44\xa2\xb5\ \x42\xdb\x81\x2a\x74\x5d\x00\x60\x32\x31\xb4\x7d\x80\x10\x62\xdf\ \x61\x0c\x71\x8c\x64\x55\xb3\x8c\x51\x66\x33\x78\xeb\xb5\xd3\x00\ \x69\x01\x86\xd2\x92\xb3\xb3\x80\xc0\xa5\xeb\x70\x68\x66\xe3\xe4\ \x96\x4b\x6b\x82\x88\xb0\x6c\x03\xdf\xfc\xac\x69\xf2\x10\x94\x6f\ \xd7\xb2\x6f\xe3\x4c\xf4\x81\xe0\x7d\x5a\xec\xd7\x57\x3a\x7a\x1f\ \xf0\x21\x24\x9f\xb6\xeb\x58\x99\xc2\xc5\x5f\x95\x89\x95\xf1\x10\ \x0c\xc4\x59\x8a\xca\xf3\x70\xfc\xd1\xaa\xaf\xd5\x78\x15\x82\xc2\ \x40\x0d\x9b\xc9\xc2\x15\xd1\x00\x93\x6c\x71\x80\x29\x0c\x10\x80\ \x1e\xe8\x80\x36\x5b\xfa\x22\x42\x52\x81\x73\x14\xc2\x9a\xf6\xb2\ \xa8\xa1\xdd\x18\xfe\xea\x50\xed\x40\xb1\x63\x10\x7e\x78\x76\x7e\ \x64\x6b\x57\xe9\x7a\xcf\x63\x2b\x8e\x65\xe7\x01\x93\xa0\xeb\xbc\ \x22\xe4\xd8\x37\x8e\xe8\x03\x62\x24\xc5\x7d\x3a\x71\xa8\xc2\xfe\ \xb2\x67\x36\x75\xc9\xc7\x87\xfc\x5b\x6b\xa2\x1c\xf8\x1e\x26\x0d\ \xd1\x17\x5e\x7d\x65\x31\x08\x61\x82\xcc\x19\x89\x32\x5c\xbc\xea\ \x99\x36\x96\x95\x99\x70\x79\x1d\x1a\x2b\xf4\xbd\xe7\xc7\x0d\xa1\ \xeb\x15\x6b\x84\xef\xae\x79\x04\x01\x85\x1f\xfe\x04\x67\x0d\xb3\ \x69\xec\xaf\x0b\x8d\x73\x11\x3c\xc3\x4f\x7f\x81\x91\x90\x00\xff\ \x3e\xfa\x58\xa3\xd4\x10\xe6\xd8\x2b\x35\x84\xb5\x4c\x65\x87\x20\ \x0c\x95\xad\x05\xa0\xc3\x21\x10\xce\x00\xef\x01\x36\xa9\x40\x37\ \xcd\x62\x96\x2d\x93\xa4\x02\x6a\xc8\xa2\xcd\x62\x09\xec\x67\x1b\ \x55\xa0\xf4\x44\x55\x6c\x14\x06\x50\x5e\xaf\x76\x60\xf0\xcb\x2b\ \x51\x03\x38\xbe\x13\x65\x07\x80\x1a\x42\x8e\x7e\x74\x76\xbe\xba\ \xbf\x0f\x48\xce\x84\x4d\x63\x50\x05\xd0\x08\x8f\xb0\xbd\xd3\xe1\ \xac\x4d\xef\x21\x67\xc1\xc9\x44\x92\x8f\x06\xc1\x35\x19\xd2\xe0\ \x85\x65\xdb\x31\x9d\x5a\xfa\x3e\x67\x49\x11\xd8\xdd\x5d\xf2\xc4\ \xe3\x53\x5e\x7a\x79\x18\x42\xb1\x02\xa8\xd2\xb6\x1d\x57\x6e\xc0\ \xde\x5e\x8b\x00\x97\xaf\x07\xf6\x1e\x04\x0e\xaf\x34\xfc\x71\xd7\ \xa0\x3e\xa7\xe8\xab\x9b\x42\xe8\x95\x89\x93\xe8\xaf\x74\xcb\x80\ \x20\xfc\xb2\xa9\x09\x48\xdf\x2b\x6b\xdb\x06\x67\xc1\x1a\xf8\xed\ \x8e\x03\x2a\x08\x9f\x3c\xfe\xb6\x00\xa0\xbc\x09\x1c\x05\x04\xa0\ \xda\x72\xf3\x08\x21\x08\xd5\x33\x65\x76\xbe\x44\x38\x13\x93\x92\ \x96\x7f\x41\x9d\xfd\x0a\x6c\xb3\x0a\xc2\x28\x1a\xc0\x96\x44\x84\ \x07\xba\x02\x1e\xfb\xc5\x66\x38\xeb\xac\x98\x32\x62\x0d\x61\xd9\ \x81\x11\x08\x4b\xbf\x6e\xe1\x60\x08\xcb\x0e\x0c\x42\xf8\xd9\xc7\ \xf3\xd5\x9d\xfb\x01\x80\xc6\xe6\xf2\xda\x38\x83\x00\x3e\x28\xc6\ \x08\xde\x2b\x22\x24\x28\x77\xef\x75\xcc\x66\x0d\x02\xb4\x3e\x60\ \x45\x52\x15\xcc\xd9\xd2\x62\x2d\x04\x15\x42\x08\x18\x11\x8c\x81\ \x95\xa9\x70\xf2\xd4\x42\x87\x20\xa4\xed\x02\xd3\xc6\x60\x80\xeb\ \x5b\x70\x68\x6a\x50\x0d\xfc\x7e\x9b\xf8\x5e\x10\x94\x6b\xb7\x15\ \x91\x28\x60\x63\xc7\xe1\xbd\xc7\x18\x58\xdf\x32\x58\x23\x71\x02\ \xcb\x7a\x04\x15\x02\x20\x5c\xdb\x54\x66\x8d\xc1\x1a\x65\xed\x6f\ \x08\x4a\x69\xd5\x0e\x7c\x75\xea\xc5\x77\x00\xe4\xff\xcb\x03\xa5\ \x18\x01\x0c\x65\xc2\xf7\xf3\x3b\xec\x20\x84\x59\x93\x11\x08\xdb\ \x04\xde\x30\x84\xbe\x2a\xcd\x8c\x41\x48\x0d\xdd\x48\x49\x66\xf4\ \xeb\x4b\x9f\x83\x20\x7c\xfa\xf3\x4f\xe6\xab\x21\xc0\x72\xe9\x71\ \xce\x12\x54\x13\x3c\x21\x01\x08\x88\xa4\x0c\xe9\x9c\x44\x0b\x1a\ \x14\x63\xf3\xb8\x35\x06\x84\x54\x31\x45\x24\xc1\x1b\x81\xc4\x88\ \x21\x68\x06\x57\x03\x34\x0d\x3c\x77\xea\xf4\x30\x84\x02\x78\x9f\ \x69\xdf\xd8\xce\x93\x83\x72\xf3\x5e\xc6\x21\xf8\xc0\xed\xfb\x06\ \x0d\x80\x2a\x1b\x77\x49\x3e\xd6\x18\x6e\xee\xe4\x05\x89\x08\x37\ \x76\x04\x55\x52\x59\x5f\xdf\xd6\x54\xca\x51\xb8\x75\x0f\xac\x19\ \x81\xf0\xd9\x17\x16\xd5\x29\xe8\xbf\x87\x60\xa4\x18\x55\x47\xb2\ \x13\x0b\x03\x48\x55\x8e\x9b\x52\x82\x1f\xb9\x1c\xf7\x75\x39\x8e\ \x59\x30\x3c\x4c\x39\xa6\x06\xef\xe1\x21\xac\xfb\x00\xc5\xc6\xf3\ \xe7\xe0\x99\xf0\xe8\xb9\x4f\xe7\xab\x5d\x9f\xe3\xe4\x13\x58\x42\ \xdb\x86\x54\x4e\xfb\x5e\xb1\x4e\x52\x09\xb6\x39\x90\x39\xc3\x19\ \x41\x00\x10\x44\x48\x40\x26\xe8\x90\x34\x06\xa0\x90\xf9\x48\xc7\ \x3d\xe5\xc4\xf3\xa7\xf9\x57\x08\x51\x4d\x65\x74\xeb\x41\x06\xc7\ \x5a\x89\x80\x69\x22\xdf\x08\x6c\xef\x1b\x04\x45\x43\x60\x73\x27\ \x83\xaa\x0a\xb7\x62\x5f\x35\xeb\x4e\x04\xd5\x18\x72\xff\x41\x06\ \x4f\x51\x6e\xdd\x55\x64\x04\xc2\xf3\xcf\x9c\x5c\x50\x87\x60\x44\ \x75\xd3\x11\x51\x6c\xc9\x84\x23\x17\x93\xea\x72\x52\xa0\x74\xe5\ \xb9\xba\x98\x94\x4c\x57\xa0\xab\x2e\x25\xf5\xc5\xa4\x0e\x01\x79\ \xb0\x3e\x54\xd0\x67\x15\xc2\xb3\xd8\x2b\x2a\xe9\xb7\xaa\xfd\xa3\ \x93\x03\xfc\x03\x22\xbc\xed\x2c\x77\x29\xd6\x5e\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\xfb\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x8d\x49\x44\x41\x54\x58\xc3\xed\ \x57\x79\x54\x8d\x69\x1c\xbe\x46\xe6\x18\x63\x16\x63\x3b\x0d\x33\ \xd9\xc2\xd1\x62\x89\x44\x1b\x52\x88\x5b\x42\x8b\xf6\xb2\x84\xb4\ \x58\xba\x2a\x57\x8b\xa5\xba\x15\xe9\xa6\x28\x7b\x22\xd7\x70\x42\ \xf6\x90\xce\xb1\x4b\x24\x0d\x47\x0d\x31\xb2\x9e\x28\xe4\x4a\xcb\ \x33\xcf\xc7\xe5\xcc\x41\xca\x31\x73\x66\xfe\xf0\x9d\xf3\x9c\x7b\ \xce\xfd\xbe\xf7\xf7\x3e\xdf\xf3\x3c\xbf\xdf\x7b\xaf\x08\x80\xe8\ \xbf\x84\xe8\x0b\x81\xff\x15\x01\x53\x87\x10\x6b\x13\xdb\xe0\x08\ \x63\xdb\xe0\x54\xe3\x09\x81\x69\x86\xe3\x24\xc9\x83\xac\xfc\x03\ \xf4\x46\x4c\x19\x2a\x12\x89\xbe\x21\xbe\xfa\xe4\x0d\x1a\x73\x99\ \xda\x4b\x6d\x4d\x1d\x16\xfc\xe6\x13\x9a\x79\x3b\x58\x76\xa9\x42\ \x2a\x2b\x51\x4a\x63\x4a\x94\x61\x71\x57\x2b\x25\x91\xd9\x8f\xdd\ \x66\xaf\x2b\x35\x1a\x3f\x2f\x8f\x64\xe4\xba\x43\x9c\x8c\xb9\xa4\ \x05\xd1\x44\xf4\x4f\x5c\xa6\xf6\x0b\x34\x2c\xdd\xa3\x0a\x16\xc5\ \xdf\x57\xba\xcd\x06\x46\xb9\x01\x66\x2e\x80\x85\x3b\x20\x9e\x06\ \x38\xcd\x05\x7c\x16\x01\x8b\x12\x95\x75\xe1\xf2\xbc\x4a\x7b\xef\ \x84\xdb\x24\xb2\xb3\xaf\x99\x87\x33\x97\x7f\x47\x34\xfd\x4c\x02\ \x52\x49\x90\x2c\xb7\xcc\x6e\x06\xa0\x6b\x09\x68\x5a\x10\xa3\x81\ \x5e\x36\x80\x8e\x1d\xa0\xe7\x0c\x18\x79\x92\x98\x37\xe0\x12\x04\ \x04\xc5\x01\x51\x2b\xaf\x57\xb9\xcd\x5a\x73\xcf\x40\xec\x9b\xd9\ \x67\x98\x9b\xeb\x67\x11\xa1\xf4\xc7\x83\xa2\x5e\xd4\x0e\xb6\x05\ \x34\xcc\x81\xce\x63\x80\x9e\x13\x81\xde\x1e\xc0\x40\x92\x1a\x38\ \x13\xd0\xe7\xe6\x06\x54\xc3\x90\x30\xf7\x01\x1c\x83\x49\x64\x39\ \x10\xbd\xfa\x7a\x95\xdd\x8c\xf8\xbb\x7a\x16\x53\x52\xba\xf6\xb5\ \x18\xc8\x72\xcd\x3f\xd9\x9a\x51\x6e\x91\x85\x7e\x94\x78\x80\x3d\ \xd0\xcd\x1a\xd0\x76\xe5\x1b\xfb\x03\x56\x0b\xb9\x11\xdf\xd6\x3d\ \x01\x70\xe6\xa7\x4d\x14\x6d\x91\x02\x26\x73\x08\x3f\x2a\x32\x8b\ \xf7\x42\x69\x4d\x32\x10\x1a\x77\xa2\xd2\xdc\x39\xbc\x84\x44\x64\ \x2c\xd9\x8e\x50\x6b\x34\x01\x4f\xc9\xc6\x1b\xfe\x91\xc0\x20\x7a\ \xaf\x45\xef\x0d\x59\xd8\x2e\x06\x98\xb7\x05\x48\xcc\x02\x36\x1c\ \x07\x56\xe7\x00\xb2\x3d\xc0\x9c\x34\x92\x21\x21\xcb\xc5\xc0\xb0\ \x79\xcc\x0a\xc9\x8c\x0d\x04\x66\x92\x5c\x7c\x9a\xb2\x6e\x6a\xd0\ \xa6\xb2\x3e\x66\xee\xa9\x9d\x75\x87\x19\x36\x5a\x0d\x13\x3b\xe9\ \x65\xa9\x1c\x18\x4e\x69\x0d\x28\xb5\xd5\x12\x20\x30\x1d\xd8\x96\ \x0b\x2c\x49\x39\x50\xe5\x31\x37\xa1\x32\x44\x9e\xa1\x4c\x3f\x52\ \x5c\xbd\xab\x00\x90\x1f\x05\xe6\x6e\x65\x38\x13\x49\x84\xcf\x0e\ \x67\x2e\x46\x91\x8c\x73\x38\xb0\x38\x05\x08\x8f\xa7\x1a\x4e\x61\ \x37\x75\x4d\x9d\x02\x58\xbe\x75\x83\x6a\xb0\xef\xcf\x2c\xdd\xf4\ \xa2\xd6\x36\x84\xfe\xd2\x5b\xf7\x24\x20\xe9\x08\xb0\x72\xfb\xd9\ \x97\xdd\x07\x8c\xbe\xd6\xfa\x67\xcd\xcc\x4e\xda\xa6\x07\x7a\x0f\ \x75\x29\x14\x7b\x2e\x7c\xac\x38\x56\x5c\xbd\x23\x9f\xfe\x1f\x02\ \xbc\xa9\x88\x5d\x3c\x09\x50\x91\x11\xb4\x47\xa8\x31\x87\xd9\x88\ \xdf\x58\x5a\x2d\xf6\x88\xbc\xcb\x35\x89\xdc\xa2\xc3\xdf\x49\x70\ \xd6\x68\xf3\xa5\x17\xf7\x33\x9f\x64\xf0\xaa\x9d\x07\x59\xcf\x5e\ \x2e\x5b\x7d\xe1\x99\xff\x0a\x16\x8b\x06\x7c\x53\x01\xc5\x39\x16\ \x0f\x5d\xf3\xbc\x9d\x86\xce\x41\x3e\xe4\x4b\x58\x12\x56\x1a\x5a\ \xc6\x72\xa6\xfe\xa2\xcf\xc2\xf5\x4f\x77\xe7\x3d\xaa\x5d\x77\x1a\ \x90\x66\x02\x1e\xeb\x98\x91\xa5\xc0\x48\xe6\xc6\x86\x24\xa6\xb3\ \x8e\x7c\xb3\xb2\xce\xc5\x6f\x55\x19\x9f\xdf\xc4\xb5\x1a\x44\xb3\ \x57\x9b\x73\xd0\x25\xa5\x16\x3c\xd6\x1b\x31\x75\x03\xbf\xd3\x12\ \x09\x83\xc5\x7a\x72\xf4\xad\x15\xbb\xb8\x29\x25\x0c\xdc\x06\xec\ \xb8\xc0\xa2\x01\x09\x95\x6d\x3a\xf6\x48\x17\x72\x4a\xb4\x27\x7e\ \x22\xba\x10\x43\xbb\x0f\x18\xb3\x61\xb8\xe3\xfc\x07\x69\x87\x0a\ \x5e\x66\x14\x02\xb1\xd9\x9c\x15\x0a\x60\xe2\x4a\x60\x34\xf3\x60\ \x4d\x3b\x3c\xf9\x19\xbd\x91\x35\x17\x28\x2a\xf4\x2d\xbd\x8f\xf5\ \x1e\xe6\xea\xc5\xc9\x1a\x13\xbf\xb6\xa0\x3c\xe7\x24\x30\x78\xec\ \xec\x3b\xac\x65\x2f\xa8\xd2\xa2\xff\x48\xaf\xa4\x88\x94\x93\xcf\ \xa2\x77\xd2\x43\x12\x51\xd0\xff\xd0\x84\x0c\x65\x27\xed\x21\xfb\ \x84\x0d\x89\x96\x2a\x05\x9b\xaa\x7a\xbe\x1b\xd5\x90\xe8\x0e\x71\ \x3e\x11\x18\xbb\xf5\xe9\x81\x42\x65\xdd\xaa\x33\x24\xcf\xa0\xba\ \xaf\xa7\x0a\xec\x1a\x31\x6d\x71\x89\x60\x98\x99\x95\x85\x89\x7f\ \xbe\x34\xb0\xf2\xbf\xe2\x1d\x9a\xff\x24\x96\x2f\xb9\x9f\x84\x0d\ \xc4\x7e\x8f\x58\x67\x8e\x50\xb4\x89\xa6\xde\xa8\x01\x16\x2e\xe1\ \x25\x9b\x0e\x3f\xaa\x4d\x60\xf2\xd3\x58\x2c\x75\x7f\x41\xb5\xb6\ \xb1\xfd\x45\xde\x17\x13\xad\xde\x89\x8e\x9a\x4a\x95\xc1\xbd\x06\ \x8f\xdf\xe2\xe8\xbf\xac\x6c\x7f\xc1\xa3\xda\x54\x2a\x17\xc6\x6c\ \x4c\xdd\x4c\x3b\x69\xa9\x15\xbb\x6b\x3c\x89\x4c\x24\x26\x48\x9e\ \xd6\x8d\xf5\x05\x66\x84\x51\xe1\xfd\x9c\x2f\x62\xdf\x72\xae\x97\ \xbe\x29\xd8\x9c\xed\x13\xe2\xe0\x13\xf7\x60\xfb\x29\x65\xdd\x56\ \x66\xe0\xc4\x0d\xbe\x05\x43\xd7\xee\x57\xed\x50\x95\x87\xef\xb6\ \xd4\x57\xc4\xb7\x82\x1a\x24\x21\x37\x77\x92\xde\xcf\x3c\x5f\x5a\ \xa3\xa0\x25\x11\xec\x94\x69\xb4\xd2\x69\xf5\x6b\x35\x46\xd2\x12\ \x63\xb6\xb7\xd1\x74\x5a\xcb\xd9\xb1\xfd\xe0\xfb\x04\x84\xe2\x6d\ \x29\xe9\xca\x00\xd9\xb6\xf2\x23\x57\x80\x9c\x22\x60\xdd\xae\x73\ \x55\x5a\x86\xb6\x39\xbc\x37\x48\x75\x00\x7d\xe8\x12\xd4\xe8\xd8\ \x73\xa0\x75\x84\x85\x93\xf4\x5e\x32\xd7\xa4\x93\xc4\x12\xce\x0e\ \x5f\x5a\xea\xca\x1c\xd8\xb0\x53\xcc\xc2\x5e\xcf\x0e\x2f\x06\x34\ \xe3\xe8\xfb\x04\xde\x16\x12\x52\x2b\x91\x29\x2a\xf2\x6e\x02\x85\ \x77\x01\x07\x9f\xd8\xf2\x6e\xfd\x46\xca\x55\x2a\xa8\x7d\x84\x84\ \x7a\x07\x4d\x7d\x2f\xe6\x29\x5f\x71\xa6\xb4\x3a\xf9\x22\x10\x42\ \xaf\x67\x32\x53\xee\x6c\xd7\xf1\xb4\xc4\x9a\x9b\xfb\x73\x72\x66\ \x9e\xf8\x30\x81\x37\x85\x34\xd8\xbf\x5b\x24\xd1\x8a\x8a\xc2\x3b\ \x40\x16\x65\xed\x67\x31\xf9\xf7\xef\xdb\x74\x1c\xc7\x7b\x3f\x7e\ \x64\xba\x09\x6b\xdb\x6a\x19\xd9\xcd\x27\x89\x0b\xf1\xd9\xa5\xd5\ \x51\x6c\xd3\xf9\x7c\x5b\x3f\x86\x73\x32\x87\x9b\xdb\x5a\xb6\x2d\ \xbb\xe5\xc0\xf9\xfa\x09\x08\x57\x33\xa2\x93\x40\xc2\xc1\x67\x59\ \xd9\xb9\x3f\x94\x75\x31\xeb\x0f\x3d\xef\xa1\x6f\xa5\x78\xd5\xb7\ \x22\xd1\xd7\xf5\x0d\x35\xc3\x71\x01\x9d\x0d\x6d\xe6\x2e\x4d\xde\ \x97\xff\x44\x51\x0c\xac\xe2\xe4\x8c\x63\x47\x45\x72\x9c\x2f\x60\ \x38\x83\x39\x33\x12\x38\xe4\x8e\x5f\xf9\x38\x81\xb7\x24\x74\x4c\ \x26\xae\xb1\x9a\xb4\xf8\xe1\xa1\xb3\xa5\x35\x81\x4b\x15\x15\xec\ \x96\x28\xc1\xa6\xfa\x8e\x5e\xe1\x68\xdf\xb0\x37\xb7\xec\x52\x19\ \x90\x5d\x0a\xec\xa3\x8d\xbb\xaf\xd3\x73\xe6\x49\x08\xa7\x82\x13\ \xf4\xf0\x55\xe0\xd2\xad\x86\x09\xbc\x21\xa1\xd1\x43\x5f\x2c\xe3\ \x4f\xb2\xcb\xd1\x6b\xb3\x2a\x1d\xfd\xe2\x1e\xaa\x77\xe9\x3b\x99\ \xdf\xb7\x79\xd7\x0a\x1e\xeb\x3d\x3c\x83\x53\xae\x65\xe5\x95\x3c\ \x3f\x98\x7b\xbd\x6a\xef\xd9\xe2\xea\x3d\x67\x8a\x6a\xf6\x9c\x2e\ \xaa\xc9\x3c\x55\x54\xb3\x9b\xd8\x75\x9c\x9f\x44\x46\x4e\x51\x8d\ \xb6\xb1\x43\x09\x97\x49\x1a\x3a\xab\x04\x5f\x3b\xfc\xd0\xe6\x97\ \xb1\x4c\x79\x7a\xab\xf6\x9d\x85\x30\x3a\x09\xea\x7c\x40\x85\xa6\ \xbd\x87\xba\xba\x71\xc4\xe6\x08\xe7\x86\x8e\xa9\x63\x91\x8e\x89\ \x63\x71\x7d\x50\xef\xda\x6f\x0f\xd7\xb8\x37\xe6\xc4\x56\x53\x85\ \x4f\xf0\x7f\x08\xd1\xb7\x9e\x30\x36\x51\x9d\x7e\x46\x84\x0b\xe1\ \xd5\x00\x1c\x89\xfe\x8d\xfd\xd9\xd0\x44\x15\xbe\x96\x0d\x9c\xf3\ \x6f\x46\xb5\xba\x2a\x2b\x1f\x83\xba\xea\xd9\x7f\xf7\xfa\xf2\xcf\ \xe8\x0b\x81\x86\xf0\x17\xce\x95\x4e\x3d\xa5\x4e\x62\x58\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x23\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x03\xb5\x49\x44\x41\x54\x48\xc7\xb5\ \x96\x4d\x4c\x5c\x55\x14\xc7\x7f\x6f\xbe\x87\x19\xa6\x83\x0c\xb4\ \x60\x1b\x09\x25\x4e\x44\x0c\x56\xa3\x4d\xb4\x8d\x35\x52\x8d\xc6\ \x60\xfd\x58\x10\x83\x2c\x48\x8c\x31\x76\xe1\xae\x6e\x4d\x77\x2e\ \xba\x6b\xba\xa8\xc4\x98\x36\xb3\x6e\x58\xd8\x26\x65\x23\xa6\xb8\ \x80\xa8\x69\x1b\x2d\xa5\x15\xaa\x7c\x07\xda\x0e\xf3\xc1\x9b\xf7\ \xee\xbd\xc7\xc5\x1b\x06\x86\x40\x03\x89\xdc\xc5\x7b\xf7\xde\x97\ \x7b\x7e\xf7\x9c\xff\x39\xf7\x3e\x4b\x44\xd8\xcb\xe6\x63\x8f\x5b\ \x60\xad\xf3\xe2\xa7\xe7\xfb\xf6\xa7\xf6\x7d\x5d\x13\x0e\x44\x98\ \x7d\xf0\x74\xb2\x94\xdd\x99\x05\xf1\x1e\x4b\x89\x03\xca\x57\xdf\ \x38\x5f\x2c\xda\x85\x7f\xa6\x17\x3f\x1b\x1f\x3c\x33\x5e\x05\x38\ \xd0\x90\x38\xf3\xcd\xe7\x6f\xb7\xdf\x99\xce\x92\xbb\x3a\xc5\xcb\ \x77\x7f\xdf\xd5\x4e\x7f\x69\xff\x84\xba\x57\x3b\x9f\xaa\x0d\xfb\ \x19\x1a\xfe\xe3\x7b\xe0\x78\x15\x20\x1a\x0e\x84\xff\x9c\x5e\xe1\ \xee\xcc\x0a\xcb\xbf\xde\xa4\x79\xf4\xda\xae\x00\xbf\x59\x2f\xd0\ \xd8\x90\xc6\x68\x4d\x3c\x12\x4a\xfd\xff\x1a\x08\x18\xad\xd1\xda\ \x20\x5b\x69\xb0\xb9\xc5\x5a\x5a\x78\x77\x6c\x8c\xe2\xec\x2c\x13\ \x17\x2e\x50\xd7\xd9\x49\xc3\xb1\x63\x68\xdb\xe6\xe7\xee\x6e\x5e\ \xcf\x64\xf0\x47\xa3\xe4\x27\x27\xb9\xd1\xd3\x83\x88\xa0\xb5\x41\ \x6b\xbd\x26\xcc\x93\x01\x00\x73\x43\x43\x8c\x9d\x3e\xcd\x6b\x97\ \x2f\x53\x98\x9a\x62\xa4\xb7\x97\x78\x5b\x1b\x87\xfb\xfb\x01\x18\ \xe9\xeb\xa3\xb4\xb4\x54\x76\x40\x30\x46\x7b\x00\xd9\x61\x9a\x36\ \x75\x75\xf1\xc6\xe0\x20\xf7\x2e\x5e\xac\xcc\x15\xa7\xa7\x09\xd7\ \xd7\x03\xd0\x79\xf6\x2c\x87\x4e\x9d\xaa\x84\x48\x29\x8d\x52\x7a\ \xeb\x34\xdd\xce\x83\x1b\x3d\x3d\x1e\xec\xe4\x49\x12\xe9\x34\xf5\ \x47\x8f\xf2\xe8\xd6\x2d\xea\x8e\x1c\x61\xa4\xaf\x0f\x63\xdb\x9e\ \x7d\x91\x0a\x40\x82\x3b\x08\x91\x9b\xcb\x31\x7f\xfd\x7a\x65\xbc\ \x38\x3c\x4c\xe3\x89\x13\xe4\x26\x26\x98\xbc\x74\x89\x50\x32\x89\ \x28\xb5\xae\xb1\x08\x5a\x69\xb4\xd2\x55\x56\xb7\x05\x38\xcb\xcb\ \xdc\x1f\x18\xa8\x8c\xa7\x32\x19\xa6\x32\x99\xca\xf8\xce\xb9\x73\ \xd5\x49\x54\x09\x91\x02\xac\xed\x01\x96\xcf\xc7\xe3\x78\x0a\xc7\ \x1f\xc2\x27\x66\x47\x19\xba\x1a\xaa\xc1\x0e\xd7\x60\x55\x34\x08\ \x3c\x01\x00\xa4\xde\xe9\xe6\x4a\x6b\x1a\xad\x3d\x80\x18\x83\x08\ \x88\xac\xbf\x8d\x08\x62\x04\x63\x04\xf1\xfb\x09\x36\x1d\x44\x29\ \xe5\x01\xc4\xbf\x35\x40\xc4\x5b\x10\x4d\xc4\x89\x3e\xd3\x4a\x2e\ \x57\x44\x8b\x29\x03\xbc\x6f\xc6\x18\x44\x0c\x5a\x7b\x42\x06\x83\ \x01\xc4\x08\x58\x82\x72\x0d\x4a\x29\x84\xd0\x16\x80\x0d\x3b\xba\ \x7d\x73\x9c\xda\x90\xe6\xa3\xe3\x07\xf1\x59\x82\x11\x83\x31\x06\ \xa5\x34\x46\x6b\x94\xd6\x28\x57\x31\xff\x68\x95\xdb\x73\x16\xb5\ \xa9\x7a\x1e\xfc\x3d\x43\x24\x1a\xc6\x75\xd5\xd6\x95\x2c\xe5\x62\ \xd1\xda\xa5\x26\x16\xa5\x39\x29\xbc\x94\xae\xe3\x87\x81\x1f\xb9\ \xfa\xd3\x35\x44\xe0\xcb\xaf\xbe\xe0\xf9\x8e\x76\x1c\xc7\xc1\x29\ \x29\x9a\x12\x7e\xc6\x17\x0c\x87\x0e\x35\x33\xf3\xef\x02\xae\xab\ \x70\x5d\x55\x55\x68\x81\xcd\x99\x60\x8c\x78\xe7\x8a\x31\xd8\x76\ \x89\xb9\xb9\x79\xee\x4d\xdc\x07\xe0\xe1\xf2\x43\x0a\xf9\x3c\x8e\ \xe3\x50\x2a\x95\xb0\xed\x12\x5a\x47\x2b\xe1\xf5\x00\xee\xf6\x85\ \x26\xc6\x60\xb4\xf1\xca\x5e\x1b\x6c\xdb\x2e\xa7\x5d\x39\x5b\xec\ \x55\xf2\xf9\x3c\xb6\x5d\xc2\xb6\x6d\x6c\xdb\xc6\xe8\x70\x79\xad\ \x54\x3c\xd8\x78\x4b\x06\xd6\x17\xbb\x56\x34\xec\x43\x1b\xaf\xd4\ \xb5\xd1\x14\x0b\x05\x0e\xb7\xb5\xf2\x56\xd7\x9b\x18\x63\x88\xc5\ \x62\x64\xb3\x2b\x15\xe3\xab\xab\x36\xda\xa4\xd6\x2b\xd9\x75\x51\ \xae\xaa\xf6\xc0\xb2\x2c\x0b\xb0\x3a\x3e\xf8\xae\x7f\x74\xf4\xaf\ \xc1\xfd\x4d\xa9\x44\x21\x16\x20\x12\x34\x2c\x3c\x76\x79\xb6\xe3\ \x15\x5a\xd2\x9d\xb8\x8e\x8b\xe3\xb8\x64\x6d\x07\xc7\x09\x52\x72\ \x0c\x8e\x82\x64\x3c\x4c\x50\x1c\x52\xc9\x08\xd1\x80\x66\x5f\x2c\ \xa4\x6a\x22\xc1\x49\xcb\xb2\xfc\x80\xb1\x80\x08\xd0\x0c\xc4\x1a\ \x9e\x7b\xaf\xe3\xfd\x0f\x3f\xee\x0d\x05\x03\xc1\x35\xa5\x84\xf5\ \xd3\x57\x36\x8a\xc5\xe6\x39\x6f\xda\x6f\xdc\xb9\x2b\x03\xdf\x9e\ \x5f\x5c\x9c\xc9\x02\xf3\x56\xf9\x44\x8d\x03\x21\xc0\xbf\xa1\xce\ \xad\xdd\x5f\x39\x55\x7d\x07\xc8\x59\x7b\xfd\xdb\xf2\x1f\x88\xe0\ \x23\xf6\xca\xd4\xed\xc7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x02\xa5\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x37\x49\x44\x41\x54\x48\xc7\xdd\ \x54\x5d\x6f\x12\x41\x14\xed\x4f\xf3\x67\xf8\x53\xf6\xb1\x26\x1a\ \x13\x9f\x9a\x18\xfd\x01\x56\x5f\xfa\x68\x0d\xb5\x88\x50\x68\x69\ \x90\x5d\x0a\xc6\x16\x58\xa0\xb0\x2c\x6c\xf9\xb0\x14\xac\x8d\x0f\ \xb0\x33\xc7\x73\x67\xd5\xfa\x01\x8d\x26\xf0\x50\x1f\x26\xf7\xce\ \xb9\x77\xce\xd9\xbd\x77\xee\xac\xdd\xb9\xbb\x6e\x71\x39\x2b\x5a\ \xd6\x9a\x38\xfb\x6d\x8d\xf5\x58\x88\x97\xc7\x53\xbc\x3d\x05\x1e\ \xa5\x80\x58\x59\xe1\x75\x55\xe1\x7e\x1c\xd8\x3e\x9e\xd1\xd7\xb8\ \x17\x53\x88\x11\x7b\x53\x07\x1e\x26\x80\x4c\x1b\x26\xff\x41\x5c\ \x99\xfc\x44\xe3\xfa\xec\x61\x17\x10\x6e\x23\x90\xf6\x14\xe2\x35\ \x60\xa7\x12\x1d\x96\x44\x39\x28\xfb\x57\x27\x33\xec\xba\x1a\xc9\ \x66\x84\x27\x1a\x92\xab\x29\x3a\x45\xaa\x25\x64\x21\xf6\x68\xb7\ \x3f\x4c\x8d\xdd\x65\x4c\x38\xb2\x3f\x09\xac\xb6\x44\x00\x56\xba\ \xfe\x00\x96\xfc\x47\xd6\x3c\x01\x67\xb3\xa4\x91\x61\x3d\x33\xac\ \xfb\x46\x8a\x35\xad\xce\x90\xac\x2b\x3c\x39\x00\xd2\xcd\x08\x7f\ \x9a\x65\x3f\xdc\xd0\xec\x1f\xef\x03\x29\xf6\x46\xfc\x8d\x3d\x6d\ \x7c\xa7\xf7\xad\x07\xf3\x04\x8a\x03\x21\x09\x91\xf3\xe5\x60\x88\ \x64\x6d\x86\x2c\x6f\x4c\xd6\x8b\xf6\x99\x96\x36\x56\xb0\x03\xfa\ \xe9\x53\x6d\x62\x99\x66\x64\xdf\x05\x40\xe1\x06\x01\xeb\xf6\x35\ \x79\x85\x57\xd5\xfa\x51\xf7\x18\x87\xc3\x09\x14\x4a\xac\xdd\x73\ \x5b\xc3\xe6\xa0\xe4\xbc\x10\x9b\xb6\xc2\xd1\x99\xc4\x80\x17\x0e\ \x50\x64\x3c\xd7\x0a\xf1\x2c\xcf\x46\x06\x1a\xa5\x7e\x84\xdb\x1d\ \x85\xf7\xf4\xb7\x4a\x30\xf9\xc5\x9e\xba\xee\x81\x38\xee\x05\x03\ \x3c\xe0\x30\xf1\x88\x64\xa5\x9e\x46\xa1\xab\x49\x36\x43\xbe\x1d\ \x9a\x98\xed\x93\x84\x02\xb2\x24\x26\x1f\x23\xb8\xec\xc5\xff\x1e\ \x17\x8e\xfa\x18\xbf\x08\x58\xff\xcf\x24\x2f\xf9\xda\x5a\x7f\x23\ \xe0\x78\x9f\x80\x72\x9f\xaf\x28\x9f\xec\x06\x7b\x55\x19\x28\x0e\ \x1a\xe0\x7e\x8c\xf0\x9d\x93\x10\xee\x90\xbd\x09\xf8\xf2\xf2\xa9\ \xae\x0c\x34\x9a\x93\x05\x83\x36\x4f\xc0\xbf\x04\x9a\x24\xae\x91\ \xb0\x71\x4e\x91\x91\x46\x95\x22\xe5\x5e\x08\x8f\x44\x75\xc1\xce\ \x19\x1b\x51\x74\xa8\x4d\x9e\xf7\x0f\x02\xd6\xed\x6b\xf2\x12\xaf\ \xad\xb5\xb0\xee\xfd\x2b\xc0\x67\x1d\x6d\xbe\x98\x67\x9f\x59\xd3\ \x0b\x0e\x5a\x27\xc2\x5a\x23\x45\x5c\x1b\x2b\xfb\x02\xa7\x3e\x60\ \x9f\xba\xbc\x0c\xf9\x56\x84\x05\x97\x7a\x71\x0f\x24\xd0\xbb\xd2\ \xf0\xc7\x0a\x9d\x89\x46\x77\x22\x02\xca\x58\x21\x69\xd3\xf7\xc7\ \x8c\x4f\xa2\x25\xe4\xbf\xfb\xc3\x2f\xb8\x51\x60\x69\x25\xfa\x0a\ \x2b\x85\x35\x7e\xfc\x7e\x4a\xed\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x05\xb0\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x05\x77\x49\x44\x41\x54\x48\xc7\x95\x55\x7b\x4c\x53\x77\ \x14\xfe\x0a\x2d\x7d\xf0\x1c\x94\x67\x79\xad\x16\x61\x20\x0c\x21\ \x19\xf1\x31\xdc\x26\x81\xe1\x24\x4e\xc4\x2d\x19\x8b\xd1\x18\x47\ \x32\x97\x98\x2d\x66\xce\x18\x97\x91\x68\xd8\xf6\xc7\xfe\x71\x4c\ \xb7\xb8\x64\x13\x1d\x99\x64\x66\x59\x8c\xc9\x04\x8c\x03\xff\x90\ \x81\x0a\x4c\x10\xf7\xc0\x29\xe3\xfd\xa8\xb4\xb4\xbd\x6d\x6f\x7b\ \x77\xce\x0f\x0a\x3a\x75\x73\x27\x3d\xf9\xdd\x7b\x7b\xef\xf7\x9d\ \xf3\x9d\xef\x77\xaf\x4a\x51\x14\x94\x96\xed\x85\x5f\xf6\x69\xb2\ \x73\x0a\x3e\x8e\x7a\x42\x1d\x91\x9f\x9b\x7c\x57\xf2\xf8\x8b\x64\ \xd9\x27\x5b\xcc\x89\x06\xaf\xec\x5b\xa1\x09\xd1\xea\xbd\x6e\xd5\ \xd4\xd6\xaa\x97\x0b\x26\x67\xfa\x86\xf0\xb8\xc1\x04\x1b\x36\xec\ \x47\x59\xd9\xbb\xd8\x52\xb5\xff\xa4\xf2\x1f\xf1\xd5\x89\x16\x85\ \x1e\x4b\xfd\x5f\x04\x80\x9a\x52\xc5\xa7\xaa\xfa\x63\x97\x05\x90\ \x83\x72\xda\xb5\x94\x56\xf7\x3c\x81\x97\xd2\x64\x5a\xf9\xcd\xe3\ \xe2\x07\xcd\x2f\x4c\xa0\x11\x7c\x0d\x5f\x7f\x51\x77\x6b\x06\x70\ \xd3\x89\x4d\x5a\xca\xbb\x4e\x60\x4c\x9a\xbf\x73\x53\xd5\xeb\x95\ \xb4\xa4\x3f\x36\x41\x72\xc2\x53\x30\x25\x64\x23\xde\xb8\x02\x7d\ \xd7\x5a\xbf\xff\xfd\xd7\x39\xb8\x7c\x80\xcb\x0b\x38\x3c\x4b\x69\ \x9d\x03\xe8\x87\xc2\x55\xeb\xb4\xb4\x14\xff\x13\x2c\x29\x29\x09\ \xd1\xd1\xd1\x0f\x12\x78\x65\x2f\x64\xaf\x17\x3e\x1f\xa1\xaa\x54\ \x3f\x77\xb4\x5f\xb6\xce\xd1\xa1\x83\xd4\x73\x78\x97\x72\x8e\x48\ \x26\xfc\x40\x56\x41\x21\x3d\xa5\x7d\x4e\xaf\x8b\x81\x5e\x1f\x8b\ \xca\xca\x4a\x1c\x3e\x7c\x18\xb2\x2c\x2f\x48\xbe\x14\xdc\x31\x9e\ \x59\xbb\x51\xfc\xe1\x27\x02\x99\xc8\x9a\xcf\x7e\xdb\xb1\xf1\xad\ \x92\x17\x5d\x32\x20\xfb\x02\xe3\x61\x6e\x3a\x9f\x05\x24\xaa\x3f\ \x3c\xfc\xc9\x82\x30\xfd\x38\xd2\xcc\x19\xf0\x52\x71\x0c\xee\xf7\ \xfb\x1f\x20\x10\x1d\x84\xea\x06\xa1\x56\xf5\x63\xeb\x16\x8b\x48\ \xaf\xa4\x34\xdd\xf8\x8d\x74\xa7\x6a\x27\xed\xc0\xf0\x14\x70\x6b\ \x0c\x18\xf8\x13\x18\x1a\x99\x2f\xeb\xfd\xda\x0f\x9e\x96\x24\x69\ \xb7\xc7\xe3\x79\x24\xf8\x62\x07\x7c\xdd\xef\x57\x81\x15\x92\x65\ \x7f\xf9\xae\x9a\xf5\x5f\xaa\x46\x25\x58\x87\x75\x88\x30\x00\xe6\ \x44\xc0\x40\x55\xeb\x82\x9c\x54\x91\x0b\x6a\xba\xf1\x85\xb7\x5f\ \x85\x2c\xfd\xf1\xe9\x89\x86\x93\x31\x44\xf2\x19\xc9\x3b\xc5\x04\ \x0f\x95\x28\x70\xad\xa5\xe5\x22\x91\x78\x93\x4e\x9f\x66\x17\x86\ \xc0\x35\x67\x43\xcf\xb5\x2e\x48\x23\x5e\xd8\x65\x37\x82\x78\x26\ \x92\x84\xa0\x20\x2d\x6e\xdd\x8e\x80\xc5\x92\x81\xe3\xc7\x8f\xd7\ \x4e\x4f\x4f\xd7\xb6\xb5\xb5\xdd\x24\xa2\xd5\xf4\xe0\xcc\x43\x08\ \x14\x1e\x30\x15\xe6\x3b\x90\x90\x90\x54\xd9\xdc\xfc\x13\x22\xc3\ \x43\x41\x12\xa0\xb3\xb3\x13\x92\xdb\x0d\x63\x6c\x3c\x22\xc2\xc2\ \xa0\xd1\x6a\x60\x30\x68\xe0\x71\xfb\xb1\x6a\xf5\x6a\xe1\x9c\xf1\ \xf1\x71\x64\x64\x64\x64\x46\x44\x44\x4c\x1f\x3a\x74\xa8\x80\x20\ \xaf\xdd\x47\x40\xc0\x45\xd9\xd9\xd9\x5f\xed\xda\xf5\x46\x96\xcb\ \xe5\x84\xc3\xe1\x80\xe4\xf1\xa2\xbb\xf7\x3a\x2c\x99\x59\x28\x24\ \xd7\xb0\xce\xa1\xa1\xa1\x88\x89\x89\xa1\x0e\xe6\xb7\x8f\xcd\x66\ \x07\x55\x4f\xc3\x57\x61\x64\x64\x04\xdb\xb6\x6d\x63\xb2\xce\xfa\ \xfa\xfa\xb8\x40\x27\x82\xc0\x60\x30\x7c\x58\x5d\x5d\x9d\x95\x91\ \x61\xc1\xf0\xf0\x30\x34\x1a\x0d\x74\x3a\x1d\x72\x72\x72\xd0\xdf\ \xdf\x8f\xf8\xf8\x78\x71\x8d\x63\x72\x72\x12\x56\xab\x55\x74\x37\ \x3b\x3b\x0b\xa7\xd3\x49\x8e\x0a\x87\xd9\x6c\x46\x5a\x5a\x1a\xca\ \xcb\xcb\x83\x9b\x9a\x9a\x3e\x9f\x98\x98\xd8\xba\x48\x40\x0e\x30\ \x04\x00\xb8\x1a\x3e\x66\x10\xde\x17\x99\x99\x99\x68\x6d\x6d\x85\ \xd1\x68\x14\x76\x54\xab\xd5\xc2\x31\x54\x14\xcb\x22\x8e\x9d\x4e\ \x17\x24\xa7\x1b\xd7\x7b\xae\xe3\xce\xed\x3b\xfc\x7c\x3e\x41\x19\ \xb9\x0b\x41\x30\x36\x36\xa6\xd0\xb0\x40\x5d\x20\x35\x35\x15\x51\ \x51\x51\x08\x09\x09\x11\xed\xeb\xf5\x7a\x14\x16\x16\x92\x1c\x36\ \x41\x4c\x3a\x83\xad\x39\x3a\x3a\x8a\xde\xde\x5e\xd8\xed\x76\x3a\ \x1e\xc3\xf0\xd0\x10\xa6\xac\x33\x88\x8b\x89\x43\x30\xd4\xb4\x83\ \xa0\xe3\x7a\x05\x01\x81\xfc\x95\x97\x97\x57\xc4\x72\x9c\x39\x73\ \x46\x00\x66\x65\x65\x21\x25\x25\x45\x00\x30\x19\x77\xc3\x3a\x0f\ \x11\x10\x13\xb3\x34\x81\xd5\x9c\x66\x41\xee\xca\x5c\x5c\x8c\x3c\ \x06\x7b\xb7\x0f\x3e\xb7\x10\x83\xb7\xa8\x5f\x10\xb8\xdd\xee\x1b\ \xc9\xc9\xc9\x28\x29\x29\x11\x1a\x33\x09\xbb\x87\x35\x2d\x2e\x2e\ \x46\x57\x57\x17\x06\x06\x06\xc4\xf0\x59\x26\xad\x56\x8b\x30\x72\ \x54\x6e\x6e\x2e\x96\x2f\x5f\x8e\xe8\xc8\x68\x38\x3d\x0e\xa8\x9c\ \xaf\xc1\x99\xac\x42\x93\x72\xee\x7e\x9b\x06\x07\x07\x47\xb2\x14\ \x1c\xb1\xb1\xb1\xa8\xa9\xa9\xc1\xe0\xe0\x20\xba\xbb\xbb\xd1\xd0\ \xd0\x20\x2a\x8f\x8b\x8b\x13\x69\x32\x99\xc0\xc5\x30\x01\xeb\xcf\ \x5d\xf4\xf4\xfc\x82\x53\x0d\xa7\xf0\x52\x49\x05\xe2\x92\x8d\xb0\ \x4b\x36\xff\x42\x07\x8a\x20\x20\x19\x26\xce\x9f\x3f\x8f\x35\x6b\ \xd6\x2c\x32\xa7\xa7\xa7\x0b\x20\xbe\xd6\xdc\xdc\x42\x32\x69\x10\ \x19\x19\x29\xe6\x30\x3d\x3d\x89\xab\x57\xaf\x0a\xb9\xdc\xbc\x47\ \xc8\x00\x55\xaf\x54\x22\x31\x31\x51\xb8\x6f\xd9\x32\x8b\x91\xe6\ \x13\x22\x4c\xc3\x9b\x8c\x7d\x4d\xeb\x3a\xd2\xbc\xb1\xae\xae\x2e\ \x91\x87\x1d\xd8\x80\x6c\xc7\x0b\x17\x2e\x08\x69\x74\xba\x10\x1c\ \x39\xf2\x09\x0d\xdc\x25\x86\x9d\x92\x92\x8a\x84\x84\x44\xe4\xe7\ \xe7\xa3\xa2\xa2\x82\x95\x80\x5f\xf1\x23\x2f\x37\xcf\xde\xd7\xd7\ \xf7\x3c\x41\xdc\x14\x20\x3c\xc4\x7b\x24\xab\x2d\x2a\x2a\x52\x5a\ \x5a\x5a\x16\x3f\x93\x34\x0f\xa5\xbd\xfd\xa2\xd2\xd6\x76\x45\xd9\ \xb3\xe7\x88\xb2\x73\xe7\x6e\x65\xdf\xbe\xbd\xca\xb9\x73\x67\x17\ \xef\xb9\x74\xe9\x92\x52\x5a\x5a\xca\xe3\xed\xa2\xfc\x88\x3f\x0f\ \x02\x8f\x09\xb8\x2d\xf6\xff\x3d\x91\x40\xf9\xc3\xe6\xcd\x9b\x15\ \xb2\xa3\xd2\xd1\xd1\xa1\x1c\x3c\x78\x40\x59\xbb\xf6\x59\x65\xc7\ \x8e\x5a\xe5\xe8\xd1\x2b\x8a\xcd\x36\x0f\xdc\xd8\xd8\xa8\x90\x19\ \xe8\x7b\x87\x1f\x29\xdf\xa1\x34\xdf\xf7\xb6\x0b\x10\x04\xb6\x7f\ \x20\xd8\x29\x14\xeb\xe9\xd5\x70\x83\x36\x1b\xbf\x0e\xad\x94\xdf\ \x51\xbe\x67\x32\xa5\xb7\x6f\xdf\xfe\xa6\x42\x3b\x98\x5f\x07\x8d\ \x94\xd5\x0b\x15\x3f\x18\x8f\x22\x60\x97\xdc\x13\x9b\x28\x4b\xb0\ \xf0\xe1\x5e\x88\xb2\x85\xd4\xe2\x5f\xe2\x6f\x80\x26\xfe\x87\xb0\ \x39\x3e\x91\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x2d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x04\xf4\x49\x44\x41\x54\x78\x5e\xa5\x96\x4b\x6c\x5c\x57\ \x1d\xc6\x7f\xe7\xdc\xc7\x78\x66\xfc\x9a\xc4\xaf\x3c\x5a\x16\xa1\ \x20\x12\xa8\xda\x80\x84\x28\xdb\x2e\x4a\xbb\x0e\x2c\x50\x14\x60\ \xd7\x05\x48\x48\x25\x8b\xb2\x41\x95\x80\x45\x5a\x09\x51\xd4\x76\ \x55\x44\x53\x15\xd5\x55\x9b\x84\x2a\x02\x16\x55\xa8\x68\x4b\xb1\ \x23\x53\x5c\xda\x18\xbf\x82\xe3\x57\xec\xf1\x8c\x3d\x1e\xcf\xcc\ \x7d\x9c\x73\xfe\x8d\xee\x5c\x09\x5b\x42\x10\x95\xdf\xe6\x7f\x75\ \x75\xf5\xff\xf4\x7d\xdf\xb9\xba\x57\x89\x08\x77\xc3\xa5\x9f\x9e\ \x7e\xd8\x99\xf4\xbc\x73\xe6\x7e\x11\x69\x23\xe2\xf8\x37\xea\x0e\ \xbd\x9e\xef\xbf\x5e\x2a\x86\x4f\x3f\xf2\xa3\xa9\x45\x72\x7c\x72\ \x5e\xf8\x9e\x7a\xd4\x39\xfa\x10\x12\x81\x2f\x20\x00\x08\xc2\x31\ \x11\x06\x0b\x25\xbe\xf1\xf5\x6f\xff\xfc\xd0\xe7\x1f\x3a\x43\xda\ \xde\xc1\x3a\x4b\x86\x73\xa0\x35\x41\xa1\x8f\xcd\xc5\xc9\xc7\xa7\ \xdf\xbc\xf0\x38\xa0\x0e\x08\x3c\xff\x5d\x75\xee\x81\x47\x7f\xf8\ \x6c\xa1\x54\x71\x36\x8d\xd2\xa1\x7b\x4f\x17\x51\x28\x40\x4a\x83\ \xf7\x04\xa5\xca\xbd\x7e\x1a\xb5\xf4\x9f\x5f\x3e\x47\x6a\x22\xee\ \xfb\xf2\xc3\x28\x4c\x66\x42\x10\x6c\x2a\x68\x7f\x80\xd2\xe1\xa3\ \x04\xe5\x43\xfc\xf2\xfb\x9f\x3d\xfb\x83\x67\xe7\x2f\x02\x20\x22\ \xfc\xea\x2c\xd7\xac\x4d\xe4\x3f\x11\x27\x56\x36\x36\xb7\xc4\x8a\ \x48\x75\x63\x55\x5e\xf9\xf1\x09\xb9\x76\xf1\x5b\xb2\x36\xfb\x92\ \xd4\x56\xdf\x90\xea\xd2\x6b\x32\x37\xfd\xa2\xb4\x5b\xdb\x52\xbd\ \xfd\x91\xac\xdd\x78\x55\xde\x7b\xe9\x8c\xbc\xf1\xd4\x17\x9f\x10\ \x11\x34\x80\x38\x8c\x4b\x3b\x80\x80\x44\x20\x06\x30\xd9\x75\xdc\ \xaa\xb2\xb6\xb2\x48\x1c\x25\x0c\x8d\x1c\xe5\xa1\xef\x5c\xa2\x32\ \xfc\x20\xff\x78\xe7\x77\xb4\xdb\x71\xe6\x62\x7b\xbb\xc1\xd6\xd6\ \x16\x43\xa3\x27\x91\xde\x13\x3c\xf0\xd8\x13\x28\xe4\x49\x00\x0d\ \xe4\x46\x0c\x10\x83\x8d\xc0\xc5\x60\x9a\xe0\xa2\x6c\x41\xa7\xbd\ \x47\x75\x63\x1d\x11\x38\xf2\x99\x53\x8c\xdd\xff\x4d\x56\x3f\x7a\ \x9b\xad\x5a\x83\xd4\x18\xb4\xd6\x5c\x1e\xbf\xc0\xcf\x7e\x72\x8e\ \xd9\x8f\xff\x42\x9c\x46\x58\x6b\x07\x94\x52\x15\x4d\x0e\x08\x60\ \xbb\x0e\x5c\xa3\x3b\xb1\x04\xbe\x41\x2b\xc3\x07\x7f\xbf\xce\xd5\ \xab\x6f\xf2\xde\xbb\x7f\xa2\x5e\xdf\x20\x8a\xcd\x9d\xb9\x8b\xb3\ \x8e\x81\xfe\x32\x5f\x39\xfd\x39\xbe\xf6\xd5\x93\x8c\x8e\x0c\x22\ \x62\xb0\x4e\x00\x0a\x3e\x39\x48\x0c\xa8\x3c\x1e\x47\x86\x33\x04\ \x9e\x61\x74\xb8\x4c\xad\x7a\x8b\xcd\xf5\x3a\xde\x91\xa3\x14\x8e\ \xde\x87\xb3\x42\x14\xc5\x24\x69\x82\xd6\x30\x32\x3c\x90\x39\x09\ \x7b\x8a\x94\xfa\x0e\xd3\x57\xf4\x35\xe0\xed\x13\xb0\x60\x5b\x60\ \x77\x41\x97\x40\x12\x70\x6d\x7c\xe0\xd8\xd8\x00\x95\xbe\x53\xa4\ \x56\x51\x28\xf4\xa2\x7d\x0d\x1a\xac\x75\x58\x6b\x33\x17\xce\x39\ \x40\x10\x55\xc8\xee\x81\x70\x50\x40\x59\x90\x0e\xb8\x0e\x5d\x14\ \xa8\x02\x88\x21\xf0\x2d\x03\x7d\x09\xe8\x5e\x08\x0b\x98\xc8\x22\ \xd6\x92\x24\x31\xc6\x18\xac\xb1\x58\x6b\x10\x11\x3c\xdf\x60\x5d\ \x0a\xa8\x83\x2f\x5a\xb6\xd8\xc6\x80\xce\x45\x52\x20\x00\x0c\x48\ \x00\x84\x20\x0a\xcc\x1e\x22\x3e\xa2\xc8\x0a\x8e\xa3\x98\x34\x4d\ \xbb\xcb\x3d\x0f\xb4\x26\xde\xab\xd3\xec\x58\x01\xd0\xe4\xa0\x7d\ \xd0\x01\xd8\x2d\x70\xbb\x40\x01\x70\xdd\xc8\xb0\x5d\x51\xb3\x05\ \x28\xc4\x39\xc4\x48\xb6\x38\x8a\x22\x80\x2c\xa2\x24\x49\x48\x93\ \x04\x71\xa0\xc8\xb0\xfb\x3a\x30\x60\xb6\xbb\xb1\x28\x1f\xcc\x3a\ \xd8\x36\x19\xfe\xa1\xac\x0f\x4c\x13\x82\x10\xa4\x17\x41\x50\x0a\ \x4c\x16\x55\x92\x39\xe8\x29\x16\xb1\x22\x88\x22\x57\xc0\x1d\x3c\ \x45\x4a\x83\x6b\x81\x2e\xe6\x91\xd5\xc0\xab\x40\x34\x0f\xde\x20\ \x78\x7d\xf9\x73\x3e\x22\x8a\x38\x4e\xf1\xfd\x00\xfc\x1e\xd0\x8a\ \x62\xb9\x9f\xca\xd0\x11\x7a\xfb\x07\xf0\xb4\x56\x79\x2e\x39\x08\ \x90\x80\xb9\x05\xce\x81\x3f\x02\x5e\x3f\x60\xc9\x48\x97\xbb\xe2\ \xe1\x29\x04\x85\xf6\x34\x85\x62\x99\xde\xc1\x11\x8a\x77\xa6\xe7\ \x07\x48\xd4\xc0\xd6\x16\x59\x9a\x5f\x66\x72\xa6\x79\x0d\x10\x1f\ \x72\x3b\xb2\x07\xc9\x2c\xe0\xe7\x2e\x7a\xba\x91\xc4\x73\xa0\xca\ \xe0\x95\xba\x51\x89\x41\xab\x90\x20\xec\x61\x74\xe4\x38\x65\x95\ \xd0\xbc\xf9\x21\x8d\xd5\x7f\x92\xb6\xeb\x4c\x7e\xb8\x36\x53\xdb\ \xb5\x33\x17\xc6\x57\x7e\x01\x34\x7d\x0e\x50\x02\xb7\x03\xe1\x18\ \xb4\x26\x41\x85\x79\x37\x4b\x20\x15\x08\x8f\x81\x12\xb4\x36\x48\ \xdc\x64\xe5\xfd\xdf\xe2\x1d\x36\xbc\x7e\x6d\xf9\xf2\x8d\xa5\xf6\ \xbb\xb7\x36\xa2\xe9\x85\xf5\x78\x1e\x68\x02\x2d\x11\x69\xef\xeb\ \xa0\x03\xd2\xca\x4f\x8a\x0f\xa4\xe0\x0f\x01\x7d\x60\x02\x08\x4a\ \xa0\x77\xa1\x38\x84\x17\xa7\xec\xd4\x3b\xcd\xe7\x2f\x5d\x7f\xa6\ \xd5\xb1\xbf\xaf\xef\xd9\x15\xa0\x01\x74\xe4\xe0\x87\x88\x83\x02\ \x66\x07\x82\x31\x88\x17\x21\x1c\x05\xb5\x07\xc5\x13\x10\x7e\x09\ \x3c\x8f\x76\x75\x27\x59\x9b\xba\xd2\xd9\xab\xad\xf0\xc1\x12\x6f\ \x2d\x57\x93\x71\x11\xb9\xc1\x7f\xc1\x27\x07\xd5\x03\xe1\x30\xa4\ \x0d\x28\xdf\x03\x85\x61\x08\xfb\xe9\x54\x37\xd3\xb9\x89\x2b\xb5\ \xb5\x99\xa9\x56\x63\x63\xce\xfc\x71\x22\x99\x6e\xa7\xac\x8f\x4f\ \x32\x0e\xac\x00\xfc\x4f\x01\xa5\x08\x7c\xcf\x41\x78\x18\xda\xbd\ \xec\x35\xe3\x78\xf9\xfa\xdb\x8d\xd9\x77\xae\xee\x34\x6e\x2f\x9b\ \xcb\x93\x4c\x2e\x6c\xf2\xb7\xb5\x6d\x3e\xde\x6a\x71\x33\x8f\xa3\ \x05\x74\xee\x4a\x40\x7b\xac\xc7\xad\x1a\x3d\xc1\x71\xe6\xa7\xae\ \xd4\xe7\xff\xfa\x87\xc6\xee\xed\x59\x73\xfe\xa2\x7b\x6e\xa9\xc6\ \x04\xb0\x0e\xd4\xf3\xe2\x2c\x77\x4d\x2e\x10\x86\xfc\xe6\xd7\xe7\ \xcf\xf6\x20\x1c\x9f\x58\x60\x61\xea\x5f\x4c\xdc\xdc\xe4\xfd\x66\ \xc2\x1c\x50\xcf\x8a\xfb\x94\x1c\xf8\x6d\x51\x4a\x55\x80\x12\xd0\ \x06\x1a\xd9\xe2\xff\x93\x4f\x00\xc2\x30\xec\x24\xf5\x72\x95\x25\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\xcb\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x03\x5d\x49\x44\x41\x54\x48\xc7\xb5\ \x95\x5d\x48\x93\x51\x18\xc7\x57\x94\x96\x52\x16\x9a\xa8\x29\x99\ \x92\x90\xe5\x57\x99\x9a\xdf\xa1\x94\xda\x07\xf9\xb1\x59\x59\x4d\ \x5d\x12\x8c\x94\xa4\x22\xe7\x34\x25\x02\xc3\xc8\x9b\x44\xbb\x71\ \x58\x17\x8a\x37\xa1\x99\x8a\x52\x7e\x85\x53\x67\xea\x74\xb6\x74\ \x3a\x35\xa7\x4d\x0d\xca\x19\xc2\x7b\xf1\xc2\xe9\x79\xf4\x9d\xe9\ \xdc\xdc\x76\xd1\xe0\x07\xef\xce\xf9\x9f\xf3\x3f\xcf\x73\xce\x79\ \x0e\x8b\x10\xc2\xfa\x9f\xac\x7f\x44\x5e\x2b\x74\x04\x72\x80\x2f\ \x06\x68\x05\xf8\x1b\xf4\x7c\xa6\x4d\x9f\x16\xe7\x71\xd4\x35\xc8\ \x14\xd5\xf7\xa9\xa7\xfe\x10\x82\x8c\x2f\x11\xa2\xf8\x4d\xc8\xe4\ \xf2\xda\x7f\xf9\x22\x45\x47\x24\x3f\x69\x67\xb1\x58\x56\x8c\xbe\ \x15\xdb\xb4\x7a\xad\x0e\xc1\x79\x82\xaf\x3e\xcc\x01\xad\xc5\xa6\ \x08\xc2\xd8\xc2\x7c\x5c\x41\x05\x08\x86\x17\x08\x91\xaa\x09\x69\ \xea\x57\x69\xae\x67\x97\xca\xc2\xd9\xc2\x2e\xbf\xa8\xb4\x17\x30\ \xc8\xfe\x5f\x04\x05\x6d\xd8\xd7\x22\x55\x69\xc6\x60\x31\x55\x1f\ \x65\x3f\x71\xbc\x5f\x54\x7a\x85\x83\xab\x4f\x34\x68\xf7\x6d\xce\ \x17\x38\xba\xfb\x9e\xf7\x8e\xe0\xe4\x77\xf6\x4c\x53\xf4\xc0\x0f\ \x42\x32\xf2\x44\x72\x67\x8f\xa0\x72\xe8\x8b\x05\x8e\x69\x23\x60\ \xf4\x56\xde\x91\xb7\x52\x32\xf2\x45\xf2\xe1\x05\x8a\x0e\x4b\x12\ \xf4\xd8\x3a\x79\x14\x42\x7b\x10\xe0\xb0\x29\x82\x8d\x60\xf8\x7d\ \x2a\x8a\x96\x2e\xac\x19\x38\xba\x9d\xe2\x83\xd8\x16\xd8\xa1\xab\ \x0d\xe7\xe4\x7b\xa2\x66\x68\x1e\x0c\xd8\x42\x31\x68\x42\x00\xcb\ \x2d\x9b\xac\x6b\xd0\x0b\x06\x83\xf3\x84\xdc\x59\x8d\x20\x90\x0b\ \x83\xf6\x1a\xd0\x1e\x47\xcd\x80\x9a\xa2\x31\x8d\xa0\x3b\xa9\xf7\ \x14\xe9\x1a\x88\x21\x45\x7d\x90\x22\x9e\x09\x06\xa8\x91\xcc\x99\ \x69\xd0\x31\x45\xd1\x62\x15\x21\xe9\x42\xe3\x06\xa8\xe9\x9e\x35\ \xd3\xa0\x55\x49\xd1\x9d\x33\x84\xa4\x99\x60\x80\x9a\xcf\x33\x66\ \x1a\x34\x2b\x28\xba\x75\x1a\x0c\x72\x4d\x33\x68\xff\x6e\xa6\x41\ \xd3\x18\x45\xb7\x4c\x12\x92\x6a\x82\x01\x6a\x3e\x4d\x99\x69\xd0\ \x00\x11\x34\x2a\x09\xe1\x9a\x60\x80\x9a\x66\xa5\x79\x06\x65\x95\ \x5d\x2a\xcd\x87\x09\x42\xee\x97\xd4\x29\x3d\xfc\x2f\x3d\xd8\x78\ \xc1\x74\xb4\x09\x39\xaf\x5b\xa6\xdf\x80\x3e\xe0\x62\x66\x2d\xe8\ \x3c\x4d\x31\xe0\x16\x54\x76\xce\x36\x4c\x11\x52\x54\xd3\xa7\xf6\ \x39\xc7\x7d\x05\x03\x0f\x18\xd0\x3e\x2f\x6b\x19\xff\x85\xfa\x13\ \x21\x9c\x12\xd0\xb9\x99\x62\x60\x0d\x37\xb4\xfa\xad\x64\x71\xa5\ \x16\xf6\x22\x31\xab\x54\x76\xf6\x4a\xb6\x10\x6e\xaa\x93\x4e\xf5\ \xcd\xcc\x7c\x59\xa7\xac\x19\xd6\x50\x71\xbc\xe2\x41\x6b\x1b\xfb\ \x78\x30\xb0\x33\x6a\x80\x25\x21\x2c\x29\x37\x11\x26\x1e\xa9\xec\ \x5d\x58\x79\x07\x26\xcf\xaa\x25\xf3\x50\xdc\xfa\xb5\xc4\xf2\x8a\ \xa5\xd8\x86\x7d\x37\x05\x22\xb9\x67\x70\x12\xae\xde\x6b\x63\x99\ \xd0\x6b\x00\xbf\x9d\xc0\x6e\x60\x4f\x40\xdc\xbd\xdb\xc1\xf1\x8f\ \xea\x85\xa2\x8e\xb9\xf2\xf6\x99\xe5\x3a\x48\xd9\x7b\x06\xfc\x7e\ \x5a\x25\x99\x8f\x49\x2f\x1e\xf2\x0a\xbf\x81\xc5\x30\x14\x38\xa8\ \x5b\xaf\xf4\x4d\x6e\x09\xec\x07\x0e\x01\x87\x6d\xec\x5c\x4e\xc3\ \x04\x45\x67\x62\xf8\x8d\xe1\xec\x3c\xd9\x3a\x9c\xbc\x61\xaf\x88\ \x94\x1a\xe8\xe7\x33\x93\x3b\x61\xf5\x34\xf8\xa2\xa1\x33\xb0\x2b\ \x34\x31\xa7\x10\xf2\x3f\x04\xf9\x1e\x81\x34\x7d\x05\xe4\xa1\x09\ \x8f\x47\x03\x2f\x67\x29\xfc\x2f\xdc\x9d\xf0\x8d\x4e\x9b\xf4\x8d\ \x4a\x5d\xc5\x2f\x9a\xa7\x84\x93\x33\x1a\x9a\x28\x18\x81\x12\x2f\ \x8d\x48\x2e\x18\x00\x04\xdb\x19\x58\xa0\x70\x12\x5f\x28\x40\xb1\ \x64\x3a\xda\x31\xf8\xe0\x18\x35\xe8\x86\x32\x2d\x06\xda\x66\xd6\ \x68\x67\x68\xdb\x06\x31\x33\xc6\x98\x81\xde\x14\xc1\x4b\xf5\x6d\ \x2b\xd8\x0e\x80\x0e\xf7\xc4\x68\x8a\x0c\x6c\x32\x6e\x9c\x0b\xe0\ \x8a\x17\x08\x70\x67\x38\x0a\x1c\x01\x9c\x99\xa7\x11\x4f\x8f\x15\ \x2e\x50\x77\x93\xff\x02\x6e\x02\x38\xfc\xe3\x20\x49\xdb\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\xe8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x7a\x49\x44\x41\x54\x58\xc3\xed\ \x57\x09\x4c\x54\x57\x14\x1d\x6a\xed\xa6\x4d\x69\x69\xb5\x2e\x15\ \xf7\x1d\xb1\x20\x8a\x0a\x28\x2a\xb2\xa9\x88\xc0\x20\x28\x22\xae\ \xe0\x30\x08\x6e\x6c\x23\x42\x01\xc5\x71\x41\x76\x71\xa1\x0a\x28\ \xe2\x5a\xc0\x0a\x5a\x91\x60\xc0\x15\xad\x88\x68\xcd\x18\xd4\xaa\ \xd4\x5a\xb1\x2e\xe8\x8c\x0a\x9e\x9e\x0f\x3f\x8d\x52\x29\x9a\x9a\ \x36\x69\x9c\xe4\x64\x32\x33\xff\xdd\x73\xef\x39\xf7\xde\xff\x47\ \x02\x40\xf2\x5f\x42\xf2\x36\x81\xff\x65\x02\x66\x52\x85\x91\x99\ \x34\x58\x66\xea\x14\x14\x6f\xea\x18\x98\x66\xea\x18\x90\x3e\xd4\ \x7e\xc1\xaa\x81\xb6\xde\x93\x25\x12\xc9\xc7\x44\x33\xc9\x9b\x7e\ \x0d\x9b\x18\xd2\x97\xc4\x11\xc3\x9c\x17\x17\x7b\x2c\xdc\x7c\x39\ \x60\xf9\xe1\xdb\xa1\xd1\x17\xab\x15\x2b\xae\xa8\x15\xcb\xaf\xa8\ \x03\xa3\xce\x3c\x90\x29\x76\xdf\x1a\x6c\xe7\x97\x6f\x60\x31\x5d\ \xc6\x23\x9f\x10\xef\xbe\x01\xe2\xc5\x96\x24\x4d\x99\x34\x37\x59\ \x15\x91\x50\x76\x37\x3c\x41\x53\x2b\x0f\x07\x26\x2d\x00\xc6\x7a\ \x02\xa3\xa7\x02\x23\xdd\x00\x6b\x77\xc0\x7d\x1e\x10\x16\x5d\xf9\ \xc4\xc2\x75\xc9\xb5\xd6\xba\x7a\x52\x1e\xd7\xf9\xc7\xc4\xd3\x17\ \xa5\x56\x28\x93\xaf\x3e\x0c\x8c\x06\xdc\x02\x49\x24\x03\x4c\xa6\ \x01\x86\x93\x01\x3d\x29\xd0\xdb\x1e\xe8\x66\x4b\x8c\x06\xfa\xd9\ \x00\xd2\x39\xc0\x82\xf0\x22\x75\xaf\xc1\x13\x72\x18\xc6\xe0\xf5\ \x89\x9d\x17\xeb\x12\x8a\x49\xbe\xc9\xaa\x95\x1b\x49\xbc\x06\x70\ \x0d\x02\x2c\xe4\xc0\x50\x56\x6c\x4c\x0c\x64\x12\x83\xbc\x09\x92\ \xe9\x7b\x00\x3d\x5d\x80\x4e\x63\x00\x5d\x0b\x60\x88\x13\x10\x10\ \xa5\x7e\x36\xd0\x56\x56\xc9\x70\x4e\xaf\x45\x3e\x7c\x62\x88\xdc\ \xc6\x23\xaa\x2c\x3c\xbe\xa4\x2a\x3c\x19\x98\xba\x84\x15\xfb\x01\ \x66\x73\x89\xf9\x94\x5b\x01\xd8\x47\x01\x93\xa9\xc6\xd4\x38\x26\ \xc6\xf7\x71\xdf\x50\x11\x5f\xa0\xef\x14\xa0\xab\x1d\x60\xe4\x0c\ \xcc\xa5\x45\xe6\x4e\x01\x77\x19\xd2\xf7\xb5\xaa\x96\x2d\xd9\x71\ \x35\x26\x5d\x53\xeb\x4d\x92\xf1\x01\xf4\x96\xa4\x23\xfc\x01\x9b\ \x08\x92\x92\x70\x7e\x3a\xb0\x7c\x2f\xb0\xbe\x10\xd8\x54\x04\x24\ \xfc\x00\xf8\x6f\xa5\xec\x2b\xa8\x0e\x13\xed\xc3\x5e\x18\xcc\x5e\ \xf0\x5d\xc6\xe4\xbc\xe3\xab\x19\x5a\xf1\x0a\xe4\x0a\x27\xa1\xea\ \xc8\xc4\x92\xaa\x88\x75\x24\x0a\x63\xd5\x24\x1d\x45\xbf\x6d\x22\ \xd9\x6c\x09\xf4\x74\x1b\x10\x7b\x08\xc8\x2a\x03\xb6\x1e\x54\xd5\ \x84\xc4\xee\x51\x7b\x2c\x88\x7b\x18\xb9\x2e\x4f\xb3\xbd\x84\x92\ \x67\x50\x09\x5e\x6b\x4c\x6b\x46\xd1\x2a\x45\x2c\xed\x19\x23\xbf\ \xc7\xf0\x4b\xfe\x1c\x1f\x8e\x86\x31\xbf\xf8\x88\xd0\x7a\x5e\x72\ \x07\xcf\x98\x0b\xb1\x69\x37\x35\xf3\xe9\xb5\x53\x08\x60\x49\x99\ \xad\x59\xb1\x34\x06\x90\xb1\x62\xe5\x01\x60\x57\x29\xb0\xad\x40\ \x55\x33\xc6\x23\xf4\x41\x5f\xd3\x89\x57\x3b\xf4\x1a\x5a\xac\xd3\ \xae\xfb\x4e\x36\xda\xb1\xb5\xbb\x4a\x34\x89\xf9\xb4\x24\x91\x7d\ \x12\x54\x1f\x63\x55\x9a\xfa\x99\x91\xb5\xe7\xed\x3a\x05\x04\xf2\ \xc4\xd4\xb2\xdf\x0d\x2d\x67\x6d\xea\xd2\xdf\x62\xbc\xb8\x28\xb4\ \x98\x58\xf0\x0c\xff\xd4\x8a\xd8\x2d\x9a\x5a\x2f\x25\xbd\xe5\x41\ \x2b\xfa\x69\xbf\x0a\xf0\x48\x61\x15\x39\x40\xca\x31\x20\xfb\xf4\ \x9d\x5a\x59\xe8\x86\x47\x02\xf1\x97\x9d\xf4\xf3\x79\x76\x39\xe1\ \x45\x8c\x63\x3c\x7f\xdf\xc8\xf4\xdf\x32\x4f\x02\x3e\xa9\x4c\x9a\ \x71\x7c\xe3\x81\xc8\xa4\x13\x4f\xba\x1b\x8d\x39\xcf\x6b\xfc\x04\ \x05\x4a\x0b\x8f\x30\xab\x75\xa7\x1f\xe9\x9b\xbb\x65\xe9\x99\xb9\ \xc8\xb9\xc1\xb6\xf9\x45\xe4\x5c\x57\x6e\x06\xa6\xd1\x6f\x3b\xca\ \x6e\xcb\x77\x97\x24\x40\x9e\x09\xac\x2c\x00\xf6\x94\x03\x69\xfb\ \xcb\x9e\x8e\x70\xf6\xbf\xdf\xa1\xb7\x49\x09\x83\xad\x21\x3c\x09\ \x73\xa2\x33\xf1\x59\xff\x11\xee\x16\x5e\x21\x29\xd7\x77\xfd\x48\ \x1b\xb6\x53\x31\x5a\x18\x9f\x45\x05\xdd\x42\x1f\x68\xb7\xea\xb8\ \x9b\xd7\xb8\x08\x0d\x56\x96\xcb\x80\x2b\xf9\xa3\x97\xe2\x94\xda\ \x78\x9c\xef\x85\xf0\xa4\xeb\x1a\x7f\x7a\xeb\xb6\x94\xcb\x84\x72\ \xdb\x0b\x5d\xfd\x2d\x83\xb0\xc1\xd6\x1e\x07\xf2\xca\xd5\xcf\x16\ \x29\xb7\x70\x96\xed\x2b\x3e\x6f\xdf\x63\x5f\x9d\x97\x12\x89\x1d\ \xd1\xf5\xf9\x55\x6b\xe2\xb0\x68\xda\xb2\x0d\xfb\x7f\xcd\x64\x1f\ \x84\x91\x58\xf9\x1d\x10\x9e\x74\xf8\x71\x57\x03\x2b\xa1\xfa\x30\ \xc2\x58\xb0\xe0\xdc\xae\x5c\x60\x4e\x28\x3b\xdb\x07\x70\x5c\x54\ \x5d\xeb\x42\x52\x07\x62\x1c\xbb\x55\x4a\xc9\x66\x6d\x01\x42\xe9\ \x75\x2a\x2b\xc9\x2d\xbb\x53\x3b\x51\xae\xac\xee\xd4\x6f\x44\x29\ \x03\xc4\x10\x33\x89\x21\x44\xeb\x86\xab\x55\xb8\x17\x64\x1c\xbc\ \x58\x9d\xce\xa4\xe3\x38\x11\x69\x07\xef\xd4\x9a\x3b\xf9\xdf\x6f\ \xa1\xdd\x3a\x93\x3f\xbb\x12\x6d\xeb\x12\xd8\xb9\x9f\xbe\x72\xa6\ \x4d\xbc\x00\x53\x8e\x8b\x55\x58\x7d\xd5\x93\xd6\x03\x9e\x94\x6e\ \x29\x3b\x3c\x93\x92\xe7\x9c\xba\x51\x23\x4a\x7e\x92\x87\x95\x84\ \x83\x58\x75\x0b\xe2\x9d\x86\xf7\x06\xa9\x3c\xe6\x42\xf1\x65\x36\ \x28\x7b\x60\xe7\x51\xf5\x33\x47\x2f\x65\xb5\x78\x36\x98\x30\x24\ \x3e\xa8\x4b\x60\x0f\x09\x66\x2b\xeb\x67\x7a\x24\x95\xb0\x67\x87\ \x4f\xa1\xff\x3e\x94\x2c\x92\x33\x9d\x41\xf2\xb5\x59\x27\x9e\x8c\ \x24\x79\xbb\x6e\x03\x8f\xf0\x60\x24\x31\x96\x68\xdf\xd8\x0d\x45\ \x68\xee\xf4\xbc\xb2\xbb\x85\x2a\x20\xff\x02\x30\x2f\x72\x8b\x5a\ \x54\x4d\x48\xdc\x96\xf8\xa2\x6e\xe2\x84\x04\x72\x8a\xd9\x9d\xdc\ \x6c\x76\x4c\xc2\x81\x92\x4f\xe5\x78\x79\xd3\xb3\x10\xf6\x46\xf2\ \x19\x56\x70\xec\x46\x0d\x1b\xb4\x52\xbb\x95\x6e\x8e\xb8\x3c\xac\ \x88\x36\x8d\x91\x0b\xbb\xc3\xc3\x3f\x59\x55\xfe\x0b\x70\xfa\x2a\ \xf7\xc4\xd2\xad\x8f\x44\xdf\x57\x13\x13\x5e\x48\x5c\x48\x20\xef\ \x14\xc7\x8a\xdd\xed\xbe\x11\x98\xc1\xa5\x31\x97\xcd\x16\x4c\x55\ \xa2\x38\x66\x6b\x0a\xea\xc9\xdb\x77\x1f\x54\xc8\xcb\x17\x0a\xd6\ \x8a\xd9\xbf\xbc\x72\xa7\x20\x1d\x26\xb0\xf3\x50\xe9\x4d\x4d\x79\ \x25\xc9\xa3\xb6\x3e\x14\xc9\x85\x7e\x11\xee\x80\xba\x2f\x9c\x15\ \x12\x28\xa2\x44\x71\x5c\x16\x41\x9c\xed\xc5\x6c\xb6\x65\x5c\xa3\ \xd1\xec\xdc\xb5\xdc\x6c\x99\x97\xb8\x52\xb3\x4e\x3e\xee\x3d\x64\ \xc2\x51\x9d\xb6\xdd\x3c\xc5\xec\x1b\x7d\xa0\x60\xbc\x39\x71\x19\ \x45\xb7\x4a\x2a\x34\xb5\xce\xb2\x15\xf7\xba\x19\x5a\x97\x8b\x23\ \xea\x4c\x74\x24\x9a\x37\x3c\x70\xee\xec\xcf\xc0\xc1\x9f\x48\x56\ \x5a\xdf\x6c\x7b\xe8\x5b\x76\x05\xb0\x8f\xf2\x15\xdc\x00\xce\x56\ \x01\xeb\x76\x17\xa9\xfb\x98\x48\x77\xf0\x48\x1f\xe2\xfd\x46\x1e\ \x4a\xec\x42\x13\xf7\x5e\xcb\x3f\x7d\x53\x33\x76\x7a\xc4\xed\xce\ \xfa\xa3\x84\xfd\xb0\x52\xbc\xeb\xfd\x95\x5c\x9c\xd5\x8c\xec\xa2\ \xcb\x9a\xec\xe2\x4b\x4f\xb3\x8a\x54\x35\xd9\x47\x55\x35\x39\xc4\ \xde\x63\xc4\x71\x55\xcd\xf7\x44\xee\x09\x01\x97\x9e\xba\xfa\xae\ \xae\x6a\xa5\xab\xe7\x23\xfa\xaf\xd5\xe0\xf9\xa0\x87\x47\xc0\xfa\ \x8b\xab\xd3\x0a\xab\x0c\x2d\x67\x9e\xfb\xaa\xe7\xe0\x03\xfc\x3a\ \x82\xb0\x17\x65\x6f\xfe\x52\xc9\x0c\x46\xcf\x70\x19\x60\x35\xbb\ \xa0\xdf\xf0\xc9\xe7\xf5\xcc\x5c\x2f\x35\x8a\x61\xae\xaa\x36\x5d\ \x0c\x72\xc4\xb9\xef\xf2\x12\x1b\x9a\x75\x37\xb2\x35\xef\x3d\xd4\ \x71\xe3\x87\x2d\x3f\x8d\xe2\x67\x39\x31\x92\x68\xd7\xd4\xa3\x97\ \xb0\xb9\x06\x88\x8b\x61\x76\x13\x70\x13\x44\x13\x1f\xa5\xb4\x1a\ \xc4\x11\x3e\x6b\x13\x5f\x0b\xf7\x31\xd1\x2a\xed\x57\x79\xee\x6b\ \x26\x26\xd1\x46\x6c\xb0\xbf\x43\x9b\x26\x9e\x6a\xb5\xea\x96\x8b\ \x44\xd2\x92\x78\xef\x25\x49\xfe\xfb\xaf\xb7\xff\x8c\xde\x26\xd0\ \x14\xfe\x00\xc6\x8f\x6d\x5f\x51\xaa\x96\x24\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xb5\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x04\x7c\x49\x44\x41\x54\x78\x5e\xb5\x94\xdd\x6b\x1c\xd5\ \x1f\xc6\x3f\xe7\x65\x66\x67\x5f\xf2\x6e\xd2\xb4\x69\xc1\x37\xea\ \x0b\xe2\x4d\xf4\xce\x4b\xa1\x88\x82\x48\x41\xe8\x95\x7a\x21\xbd\ \xf4\xc7\xef\x0f\xf0\x46\xf4\x52\xf0\xd2\x4b\x11\x5b\x14\x2d\x8a\ \x8a\x42\xac\x28\xc1\x68\x6d\xda\x9b\x94\x26\x6d\x9a\xb6\x49\x37\ \x4d\x9a\xee\x6e\x76\x67\x77\x67\x77\x66\x67\xe6\x38\x3d\x84\xb0\ \xa1\x90\x80\xe0\x03\xcf\xce\x7e\x99\x99\xe7\xf3\x3d\xdf\x39\x33\ \xc2\x18\xc3\x7f\x29\xcd\x8e\xa6\xa7\x4f\xbf\x02\xe6\x0d\x30\x47\ \x8d\x41\xf2\xef\x24\x8d\x49\x56\xe2\xb8\xfb\xcb\x95\x2b\x67\x7f\ \x04\x22\xcd\xae\xcc\x9b\xef\x7d\xf4\xbf\x93\x7a\xf8\x91\xfc\xc5\ \xb9\x59\xb9\xf0\xd7\x8c\xe8\x76\x9a\x42\x22\x11\x02\x84\xfd\x01\ \x29\x44\xdf\x7f\x89\x76\x5d\xa6\x9e\x78\x96\x27\x5f\x3c\xc1\xf8\ \xe4\x61\xe6\x67\xe7\x5e\x9a\xfb\xec\x8b\xe3\xc0\x25\xe0\x5e\x1f\ \x80\xe3\xce\xf0\x98\xf7\x6b\x59\xe9\xaf\xbf\x3c\xc7\x07\xef\xbe\ \xca\xe3\x47\x27\x91\x52\x62\x00\x23\x52\x24\xc2\xd6\x02\x01\x18\ \xa4\x52\xd8\xda\x29\x70\xe6\xd2\x26\xdf\x2e\x6b\xf4\x1f\x3f\x68\ \xe0\x08\x30\x05\x34\x76\x01\xc6\x98\x66\xa5\xea\xa7\x37\x36\xf3\ \xd4\xb7\x7d\x06\x3d\x45\xc1\x15\xf4\xe2\x08\x00\x89\x44\x6b\x9d\ \x59\xd9\x15\xf4\x7a\x11\x69\x9a\x20\x52\x81\xe7\x2a\xa2\xc5\x9f\ \xf1\x07\x5e\x63\x20\x8c\x93\x24\xe9\x45\x40\x01\x50\x9a\x3e\x49\ \x09\x45\x47\xda\x80\xd2\xe0\x10\x85\x62\x91\x38\x8e\xc9\xee\xb0\ \xa1\x4a\xd9\x70\xeb\x9d\xee\xf1\x3c\x8f\x52\x69\x80\xe9\x97\x4f\ \x72\xfd\x5a\x1e\x29\x15\x20\x00\x0c\x40\x3f\xc0\x86\x68\x47\xa2\ \xa4\x60\x28\x03\x0c\x0f\x0f\x13\x86\x21\xbd\x5e\x6f\x17\xb2\x23\ \x5b\x67\xa6\xdd\x6e\x13\x85\x21\xc5\xe1\x49\xf2\xf9\x88\x68\xf7\ \x9a\x87\x01\x68\x21\xc8\x69\x89\x56\x92\x7a\xbd\xce\x60\xc1\xf2\ \x6d\xe7\xae\xeb\xda\x11\x29\xdb\xb9\x5d\xa5\xad\x9d\xcc\xf9\x42\ \x9e\xdb\xab\x0a\xcf\xa9\xd3\x13\x86\x7e\xed\x1d\x91\x10\xb8\x8e\ \x44\x1a\xc3\xc4\xe4\x04\x47\xa6\x0e\x13\xf7\x7a\x76\x4c\x3b\xb2\ \xe1\x80\x5d\x55\xa7\xd3\x21\x30\x86\x7a\x7d\x9b\x38\x1c\xa3\xe0\ \x28\xda\x42\xec\x03\x90\x90\xd7\x12\xc7\x73\x09\x3b\x1d\x3a\x41\ \x60\x3b\xf4\xbc\x1c\x8e\xe3\xe2\x68\x85\xd2\x1a\x21\xec\x18\x11\ \x52\x61\x57\xe7\x68\x5a\xb7\x23\xf2\x2b\x15\x84\xdc\x07\xa0\xa5\ \x24\xa7\x05\x03\x87\x9f\xe6\xa9\x67\x9e\xe3\xd8\xc4\x10\x08\x30\ \x69\x4a\x6a\xc8\x6c\x48\x52\xe8\x25\x86\x4e\x02\x61\x04\x51\x22\ \x41\xc0\x76\xd7\x90\x77\x25\x12\xf6\x01\x08\x70\x94\xe1\xd1\x17\ \x4e\x30\x73\x4b\xf0\x58\x60\xb2\x5a\xd2\x89\x15\x9d\x28\xa5\x19\ \x26\x04\x9d\x88\x7a\xab\x8b\xdf\x6c\x53\x6f\x36\x69\x36\x7c\x8c\ \x72\xd0\x03\x87\xc8\xe5\x73\x28\x79\xc0\x88\x72\x0a\x26\x8e\x4c\ \xf1\xe9\xf7\xf3\xe4\x13\x1f\x11\xb5\xe9\x76\x03\xa2\x4e\x40\x1a\ \x77\x51\x26\xc6\x73\x04\x43\xc5\x1c\x23\x25\x8f\xb1\x91\x12\x13\ \x13\x87\xa8\xb9\x63\x24\xba\x80\x14\xfb\xac\x40\x09\x41\x21\xe7\ \xd2\xb8\x35\xcf\xf3\x4e\x8d\x63\x53\xc3\x94\xbc\x7c\x16\x36\x42\ \x31\x27\x19\x1d\x2c\x32\x92\xb9\x54\x2c\xe0\xe5\x5c\x94\x94\x44\ \x71\x4c\xd0\x6a\x72\xd9\x77\xb9\x19\x68\x84\xdc\x6f\x44\x4a\x90\ \x73\x35\x7e\xf9\x1a\xa7\xff\xff\x3a\xbf\xcd\xfc\xc4\xd6\x5a\x85\ \xbb\x71\xc2\xa9\x53\xa7\x30\xc6\x90\xcb\x39\x28\x25\x31\x40\x62\ \xc0\xa4\x86\x14\x41\xc9\x53\x14\x13\xbd\xff\x33\x10\x02\x3c\x47\ \xe2\x3a\x8e\xdd\x2d\x8b\x4b\x4b\xf6\x65\x1b\x1f\x1f\x27\x4d\x53\ \x80\xec\x68\x76\x2d\xa5\xc1\x60\x65\x77\x58\xde\xd3\x64\x70\x91\ \x69\x97\xb3\x07\xa8\xa4\xc8\x00\x1a\x2f\xe7\xd0\x09\x7b\x94\x4a\ \x25\xc6\xc6\xc6\x18\x1d\x1d\xb5\x80\xfd\x94\x73\x14\x3d\x7f\x83\ \x34\x0a\x30\x26\x8d\x01\xf1\x10\x40\x4b\x81\xa3\x1e\x58\xee\x7c\ \x96\xad\x39\x50\x42\xa2\xe2\x36\xcb\xb3\xdf\x98\xca\x7a\x54\xad\ \xd7\x6f\xfd\x0e\x74\x81\x64\x0f\x40\x0a\x70\x1d\x81\x94\x80\x31\ \x1c\x20\x0b\xd7\x5a\xd9\xe7\x12\x6c\x5d\x63\xe5\xf2\xed\xee\x8d\ \xeb\x17\x3e\x5f\x5f\xff\xfb\x3c\xb0\x05\x74\xf7\xee\x22\xad\x18\ \x2a\x91\x8d\x65\x14\x37\xe7\xda\x0f\x5d\x16\x62\xdf\x64\xa5\x04\ \xae\xab\xb3\x30\x3b\x67\x82\x20\x34\xf5\x7a\xc0\xfd\xfb\x0d\x6a\ \xb5\x16\xeb\xeb\x95\xf6\xca\xd2\xc2\xb9\x6a\x75\xe9\x22\x70\x13\ \xd8\x00\xc2\x7e\x80\x74\x5d\x21\xb7\xca\xcb\x24\xfe\x1a\x5a\x4d\ \xf3\xf6\x3b\x6f\xd1\x6a\x76\x4d\xbb\xdd\xe3\xea\xd5\x4d\x1a\x8d\ \xae\xa9\x56\x5b\x61\xa5\x52\xf3\x6b\xb5\xda\xa6\xef\xd7\xd6\x7d\ \xff\xde\x6a\xb5\x5a\x5e\x5d\x5c\xbc\x7c\xc7\x98\xb4\x01\xdc\x01\ \xca\x40\xcb\x64\xea\x03\x98\xd6\xfc\x85\x2b\xcd\xb9\xf3\x33\xc5\ \xf2\xea\xa6\xf9\xb0\x7c\x36\x2a\x16\xf2\x61\x1c\x87\xd5\x56\xab\ \xb1\xe1\xfb\x95\x72\xa5\xb2\xbe\x56\x2e\x5f\x5f\xab\x56\xef\xd6\ \x80\x2e\xd0\x01\x82\x3e\xb7\x80\x26\x10\x98\x4c\x7b\xb6\x69\x1c\ \x77\xbe\xfa\xe4\xfd\x8f\x37\x21\x74\xc3\xde\x76\x65\xf9\xea\xec\ \xc6\xf6\xf6\xea\x5d\x63\xd2\x10\xe8\xf4\x39\xb0\xb5\x05\xd0\xeb\ \x73\x4c\x66\x1b\xbc\xab\x3e\xc0\xc2\xc2\x99\xef\x80\x3f\x81\x11\ \x40\x00\x36\x78\xe7\x18\x01\x71\x7f\x98\xc9\xc8\x1c\x2c\xfe\x01\ \xd1\x4f\x0f\x88\x96\x78\xff\x51\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x07\x68\ \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\x2f\x49\x44\x41\x54\x58\xc3\xcd\x97\x09\x54\x54\x65\ \x14\xc7\x9f\x80\x88\x20\x04\x0d\x28\x9b\x6c\x02\xb2\x0c\x33\x2c\ \x6e\xa0\xc0\x11\xe8\xc4\xa8\x84\x6c\xb9\xa0\x64\x66\xb9\xe6\x12\ \x5a\x96\x29\x89\x5a\x4a\x08\xa7\x52\x3a\x99\x51\x83\x10\x03\xea\ \x00\x03\x1a\x10\x20\x8c\xc0\x40\x12\x01\xa3\x43\xc0\x60\x25\x21\ \xab\x02\x31\x0c\xdb\xcc\xbb\xdd\x37\x3d\x3b\xed\x82\xc9\xa9\x77\ \xce\xef\x0c\xe7\xfb\xee\x7b\xf7\x7e\xf7\xfb\xbe\xff\xbd\x10\x00\ \x40\xfc\x97\x4c\xc8\xc8\xdd\xdd\x9d\xe9\xe6\xe6\x76\xdc\xd5\xd5\ \x95\xeb\xe2\xe2\xf2\xd6\xfc\xf9\xf3\xfd\x09\x82\xd0\x46\xd4\x1e\ \xea\xe0\xdf\x3e\xe8\xd8\x2b\x24\x24\xe4\x56\x61\x41\x7e\x7f\x7d\ \x5d\xad\xfc\x62\x66\xe6\xc0\xf6\xed\xdb\xda\x99\x4c\x66\xb6\xbd\ \xbd\xfd\x06\x34\xd1\x45\xd4\x89\xa9\x7a\x30\x80\xf7\x44\xa5\xe9\ \x32\x68\xdd\x08\xd0\xe8\x03\xf0\xfd\x2e\x80\xfe\x02\xa8\xad\x11\ \x8d\x7a\x7b\x7b\xdf\xd1\xd6\xd6\x0e\x40\x33\x83\x29\x0b\x00\xd3\ \x5f\x0f\xcd\x2b\xa1\x86\x4b\xc0\x86\x15\x04\xbc\x14\x4a\x80\xf0\ \x1c\x66\xb7\x71\x19\x24\xc4\x1d\x1e\x32\x37\x37\xbf\x80\x66\xce\ \xc8\xf4\x29\x09\x80\xcd\x66\x7f\x2e\xe1\x11\xc0\x4b\x60\x2a\x4c\ \x4c\x4c\xc4\x16\xa6\x3a\x85\x6b\x38\x86\xa3\x50\x45\x40\x45\xce\ \x66\x85\x8d\x8d\xcd\x37\x68\xc6\x41\x9e\x98\x8a\xd5\x3f\x1d\xb5\ \x61\x8d\x74\xe8\xc6\x22\xb2\x98\x17\xa9\xb0\xb4\xb4\x14\xe3\xf0\ \xab\xae\x2c\xfb\xda\xd6\x5c\x53\x10\x0b\x96\x90\xb6\xb6\xb6\xcd\ \x38\x16\x85\x18\x4f\xc5\xfe\x27\x37\x5c\x4f\x18\x86\x6a\x5d\xe8\ \xaa\xdd\x0d\x5e\x9e\x4b\xee\xa3\xc3\x2b\x78\x00\xcb\x5a\x0a\x9f\ \x22\x6f\xf2\x9d\xc9\x79\xf3\xe6\xb5\xa2\xe9\x56\xc4\xfc\xb1\x07\ \xe0\xe4\xe4\x14\x7e\x64\x9b\xd1\x48\x7e\x02\x01\xf7\x84\x1e\xd0\ \x71\xbb\x98\xcc\xcf\xf9\x68\xa4\x40\x70\x4e\xde\xfd\xf5\x76\xc8\ \x88\xb3\x54\x9a\x9a\x9a\xde\x40\xd3\x17\x10\xd3\x09\x2c\xc8\x8f\ \x3a\xd4\x2c\x16\xeb\x88\xb5\xb5\x35\x0b\x87\x66\x3c\xec\x1d\xdd\ \xdd\xeb\xf5\x12\xa2\xa3\x74\xee\x1c\xdb\x3e\x83\xec\xae\x5a\x0f\ \x77\xeb\xe2\x54\x74\x55\xae\x83\xca\x0c\x8e\x12\x3f\x24\x41\xbb\ \x8d\xc8\x9c\x7f\x70\xfc\x7c\x58\x58\x58\x69\xdd\x37\x55\xb2\xf1\ \xb1\x11\xb2\xef\x7e\x97\xc2\xce\xce\xee\x13\x9c\xb2\x7f\x58\x00\ \xd4\xfd\x36\x43\x56\x72\x7c\xe6\xdc\xc8\x8f\x27\x60\xac\x8c\x01\ \x23\x65\x26\xa0\x2c\xd5\x04\x59\xc5\x62\xc0\x2c\x75\xe1\xfc\x96\ \xbf\xca\x00\xe5\x38\x34\x34\xb4\xb4\xae\xb6\x62\x68\x64\x64\x04\ \x54\x0c\xcb\xa0\x49\xfc\xa5\x02\xb7\xae\x06\x4d\x82\x26\xb2\x13\ \x1a\xc8\x93\x46\x46\x46\x2b\x22\x02\x67\x0f\x76\x67\xe1\x15\x2c\ \xa1\x29\xd3\x81\x7d\x3b\x23\x64\x38\xf7\x11\xda\x38\x50\x01\x7b\ \x78\x78\xe8\x52\x8e\x51\xbc\xca\x6e\x54\x97\x0c\xf5\xf7\xf7\xc3\ \x2f\x0c\xc0\xbd\x6e\x29\xf9\xda\x2b\x91\x72\x9f\xc5\x73\xee\xea\ \xeb\xeb\x67\xa1\x7d\xc4\x64\x8e\x84\xf6\x42\x37\xab\xb8\xb7\x5e\ \x9a\xa9\x84\x22\x74\x7e\x6b\x13\x90\xf2\xdb\x20\xf8\x6c\xdb\x38\ \x6a\x41\xe1\xac\x59\xb3\x82\xf0\xca\x1e\x58\xbf\x36\xac\xa9\x42\ \x98\x3f\xd4\xd1\xd1\x01\x0f\xe8\xea\xb8\x03\xd7\x8b\x2e\x28\x7c\ \x97\xba\xc8\xd8\x4e\x86\xd4\x4d\x3a\x8b\x6c\xa3\x2e\xda\x64\x02\ \x98\x46\xed\x73\xb0\xbf\x49\x91\x54\x14\x0f\xa3\xa3\xa3\x2a\x7a\ \x6f\xe7\x92\x28\xc9\xad\xe1\x61\xab\xda\x45\xd7\x05\x23\x52\xa9\ \x14\x28\x5a\xa5\xad\xaa\xdf\x16\x49\x05\xb9\x7f\x77\xf8\x30\xcb\ \xc9\x44\x3a\xd7\x58\x4b\x80\xdf\x88\x45\xc2\x91\xf9\xb4\x8c\x4f\ \xea\xd1\x30\x36\x36\xf6\xe5\x70\x38\x8d\x83\x83\x83\xa0\x62\xa0\ \x1b\x2e\xf3\x92\x94\x99\x99\x99\x50\x59\x59\x09\xf5\xf5\xf5\x2a\ \x6e\x36\xd4\x40\xee\xa5\xc4\x71\x67\x47\x9b\x4e\x57\xa7\x27\x6b\ \xf1\xdd\x44\xfa\xac\x78\x22\x26\x8f\xac\x9c\xb8\x5a\x07\x47\x47\ \xc7\x0f\xbf\xaa\xbc\x3a\xde\xd3\xd3\x03\x5c\x2e\x17\x62\x62\x62\ \x80\xcf\xe7\x43\x72\x72\x32\x08\x72\x04\x20\x12\xf2\xc9\x17\x37\ \x05\xca\xed\xe7\x99\x36\x6b\x6a\x6a\x52\x52\xfd\x2a\x75\x90\x11\ \x1b\xba\x8a\x4e\x7b\x14\x51\x5a\x48\x95\xe4\x15\x81\xbe\x8d\xe9\ \xdc\xb8\xb1\xb4\xb4\x34\x55\x8a\x3d\x3d\x3d\x41\x4f\x4f\x0f\xda\ \xda\xda\xa0\xa0\xe0\x2a\xbc\x1f\xbf\x6f\x1c\xe5\xb9\xcd\xda\xc2\ \xa0\x1c\x5f\x7b\x17\xa1\x2a\x26\x1b\x61\xd0\x07\x7a\x52\x4e\xcd\ \x90\x1d\x48\xfe\xae\x2d\x3e\xb7\x0b\x52\x9f\x1d\xcc\xbb\x9c\x04\ \xe9\xe9\xe9\x90\x98\x98\x08\x67\xcf\x9e\x05\x1e\x8f\x07\x39\xd9\ \x39\xd0\xdc\xdc\xac\xa2\xb3\xbd\x89\x0c\x5a\xe9\xf7\x13\x6e\x55\ \x0e\x7d\xca\x6d\x68\xc1\x99\xf8\xaa\xb1\x06\x04\xa3\xd3\x4f\x57\ \xaf\x5c\xdc\x98\x92\x10\xd0\xd3\x79\x6d\x99\x02\x84\x96\x30\x96\ \xa3\x09\x82\xd3\xda\x90\xce\x3d\x09\xbc\xcf\x93\xe1\x9d\xd8\x97\ \x15\x27\x8e\xee\x57\x66\x65\x9c\x51\x36\xd4\x57\xe1\xde\xd7\x81\ \xf8\xa6\x18\x7e\x1a\xb8\x07\x27\x8f\xed\x1d\xc4\xbb\x9e\x8c\x9f\ \xb3\x9c\xd0\xca\xb1\xdb\x61\xa0\xe3\xdd\x48\xf9\xc9\x83\x4b\x7f\ \x6c\xc8\xf5\x91\x83\xc8\x01\x3a\xd3\x66\x02\xff\x4d\x02\x4e\xef\ \x50\x27\xfb\x2e\x59\xc0\xdd\x14\x02\x72\x12\xcc\xc0\xdf\xd7\x4d\ \x86\x32\xdc\x80\x1a\x70\x6d\xee\xdc\xb9\xd5\x21\xab\xbc\xfa\x2b\ \x8a\x3e\x21\x45\x22\x11\x50\x74\x75\xfe\x08\x5f\x5e\xbd\x30\x8a\ \x8a\x97\xc6\x60\x30\xdc\xfe\x31\x0b\xb8\xda\x08\x3f\x5f\x0f\x71\ \x4a\xfc\xa2\x1e\x59\x39\x93\x84\xe2\xd9\x50\x83\xfa\x1f\xbb\x59\ \x9d\x0c\x7d\x4a\x7f\xc8\xcb\x9d\xd1\x84\x6d\xd8\xdd\xb6\x3c\x77\ \x52\x91\xa5\x0b\xe7\xf6\x10\xe0\xb7\xc4\xf0\x0e\xbe\xfa\x01\x7d\ \xb2\x43\x9c\xec\x18\xf1\x58\xa8\xaa\x4e\x1d\x8d\x1a\x2e\x2b\xb9\ \x02\xc5\xc5\xc5\x20\x91\x48\xa0\xa5\xb1\x5a\x89\x41\xf0\x31\xc8\ \x55\x68\xa7\xf3\xa7\x20\xa8\x92\xeb\xe7\xeb\x2e\x6e\xcd\x73\x18\ \x85\xab\xb3\x40\xf8\x0e\x01\x3b\xc3\xa7\x2b\x23\x02\x0d\x7a\x2d\ \xcc\xf4\xae\xa3\xc9\x39\x2b\x2b\xab\x92\xf3\x6f\xb3\x06\xfb\x4a\ \x56\xc0\xc7\x7b\xa7\xc3\xce\xb5\x3a\x7d\x38\x9e\x82\x6c\x46\xec\ \xe8\x8e\xc8\x02\xf1\xc1\xda\x90\x1e\xb0\x7c\x51\x6f\x7e\xd6\xbb\ \xca\xbc\xbc\x3c\x10\x0a\x85\xd0\xfe\x83\x84\x5c\x1d\xe4\xdf\x8e\ \x5b\x72\x10\x6d\x8c\x7e\xb7\x25\xaa\x92\x9b\x61\x33\x0c\x97\xd5\ \xe0\xfc\x01\x03\x32\x24\xc0\xa0\x13\x55\xad\x10\xa7\xce\xe0\xef\ \x71\x2a\x85\x27\xa2\x99\x5d\xf2\x4a\x2f\x28\x4f\x62\xc3\xde\x0d\ \xda\x03\x38\x97\x81\xec\x43\x98\xbf\xa9\x68\xea\xb4\xb0\xd8\xe1\ \x01\x3c\x88\xd9\x10\x1d\x3f\x14\x26\xcf\xbe\x7c\x01\xb2\xb3\xb3\ \xa1\xbd\xad\x19\x9e\x8b\x0a\xef\xc5\xf1\x24\xba\x74\xff\x12\xc4\ \x6a\x0e\xbb\x11\xb2\xa7\x43\x4b\xaa\x07\x2c\x5b\x68\xd6\x8b\x4e\ \xaf\xe0\xf0\xeb\x98\xb2\x37\xb0\x03\xe6\xf3\xdf\xb7\xbd\x3f\x5c\ \xce\x86\xa6\x8c\x40\xd8\xb5\x76\xc6\x18\xce\x17\xe1\xfc\x1b\xc8\ \x02\x64\xe6\xdf\xd4\x0e\x4a\x68\x96\x51\xd9\xf0\xf7\x5d\xd0\x9b\ \xf9\xe9\x7e\x65\x6a\x6a\x2a\x48\x6e\xd5\x41\xec\xe1\x2d\x83\x28\ \xdd\x31\x74\x91\x53\x27\x96\x7b\xb3\x25\x43\xd8\xef\x75\x17\x46\ \x40\xee\x19\xf3\xb1\x35\x41\x0e\xf7\x51\xd3\xbf\x7b\xe6\x69\x66\ \x6b\xfd\x25\x33\xb9\xbc\x84\x0d\xdf\x5e\x0c\x85\x17\x83\x35\x48\ \x96\xa3\x81\x98\xbe\xdb\x7e\x0f\x91\x51\x35\x7a\xbf\x6d\x0d\x0d\ \x0d\xf7\xa0\x2e\x94\x46\xef\x08\x18\x4a\xe3\x9e\x06\x61\x51\x0a\ \x25\xdd\x54\x1b\xb7\x5c\xf5\x0d\x67\x67\xe7\x98\xfd\xeb\x66\x8c\ \xb7\x70\x59\xd0\xfb\x45\x10\xc8\x85\x2e\xa0\xfc\x4a\x1f\x94\xd5\ \x06\xd0\x97\xbf\xfc\x57\xe7\x5e\xee\x4f\x34\xe2\x0b\x49\xf4\xdd\ \x36\x99\xe0\xbd\xd6\xa0\xfb\x84\x25\xd8\xce\x9d\xc7\xb3\xd6\xb3\ \x39\x72\xa9\x0c\x6f\xc5\x17\x38\xf6\x2c\x62\x48\x19\x31\xdc\x98\ \x66\x89\x5b\x23\x66\xca\x0f\x45\xaa\x01\xef\x10\x03\x04\xb1\xa6\ \x2a\x92\xa3\xf5\xe0\x40\x94\x9a\x92\x76\xfe\x21\x12\x89\x58\x4d\ \x52\xd1\xa6\xd1\xf2\x6b\xad\xa5\xa5\x15\x81\xaa\x19\x87\x7f\x47\ \x23\xde\x0f\xb2\xa8\x41\x9f\xe0\xe0\xc5\x2c\x9d\xcf\x9e\x0b\xd6\ \x95\xec\x5a\xa7\xd3\x8e\x74\x6c\x0a\xd6\x91\x1a\x33\x88\x8b\x38\ \x77\x8a\x8e\xd8\x9a\x78\xf4\xf6\x5b\x83\x96\x63\xaa\x6f\x70\xa2\ \x57\xaf\xfe\xc7\x49\xea\x54\x73\xe8\x1e\x6f\x2f\xb2\x87\xd6\x72\ \x4f\x3a\x95\x8f\xa3\xf7\x57\xa7\xfd\x4d\xfb\xbb\x49\x5d\x7a\x8f\ \xad\x68\x19\x9d\x8d\x68\x3d\x52\x05\xfb\x3f\x3c\x8f\xe5\xbf\xe3\ \xa9\xe4\x67\x2f\x79\x73\x70\x22\x76\x00\x17\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x7e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x06\x45\x49\x44\x41\x54\x48\x89\x9d\x95\x7b\x6c\x95\x77\ \x19\xc7\x3f\xbf\x73\xde\x73\xeb\xe5\x9c\x5e\xe0\x40\x69\xbb\xb2\ \x5e\x28\xe5\x0e\x45\x1c\x63\x83\x11\xc9\x14\xc7\x60\x5b\x34\x38\ \x63\x66\x22\x53\x11\x63\x44\x37\x35\x26\xc6\x7f\x66\x48\x34\x26\ \x6a\x36\x5d\x30\x64\x71\x19\xc8\x28\x0e\xc4\xae\x60\x69\x59\xa1\ \xe1\x3a\x2a\xd4\xf5\xc2\xb5\xd0\xd3\x3b\xbd\x9d\x9e\xeb\x7b\xf9\ \xbd\xef\xfb\xf3\x1f\x34\xa8\x98\xcc\x3d\xc9\xf3\xef\xe7\xf3\xe4\ \xfb\xc7\xf3\x15\x4a\x29\x3e\xc9\xbc\xfd\x43\x51\x5c\x51\x1a\xda\ \x3e\xbb\x6c\xc9\xf7\x95\xeb\xe8\x23\xb1\xce\x57\x8f\xb6\xbb\x6d\ \x5f\xdd\xc4\xd2\xb4\xc5\xe0\xa6\x57\xd5\x38\x80\xf6\xff\x82\xff\ \xf0\x23\x11\x2a\x29\x60\xeb\xb2\xfa\xb5\xdf\xa9\xa8\x7b\x6e\x5d\ \x51\x71\x2d\xae\x27\x48\x76\xf2\xd9\x9f\x6f\x79\xb2\xb8\x2f\x53\ \xf0\xe4\x0b\xc1\x64\xe3\x7e\x21\xc4\xd7\x94\x52\xf2\x63\x0b\x84\ \x10\xe2\xf8\x1e\xd6\xd5\x56\x45\x5f\x99\xbf\x62\xc7\x33\xd1\x79\ \x6b\x7c\x22\x79\x8d\xcc\xdd\xc3\xa8\xbc\xc5\x8c\xfb\xbf\xb8\x3c\ \xbf\xfe\xc5\xe5\x95\xb5\x9f\xe6\xc6\xe1\x13\xf3\x40\x86\x80\x87\ \x0b\x3a\xde\x14\x1a\x8a\xc0\xea\x5d\x2a\x03\xd0\xf8\x9a\xa8\x3c\ \xf3\x46\xf1\x37\xcb\x17\x6e\xfa\x56\xd9\x82\x17\xf3\xbd\xd9\x3e\ \xec\xe1\x26\x46\xc6\xa7\xe9\x9f\x09\x23\x8b\xca\x59\xf5\xec\x2e\ \xc2\x91\x08\x72\xea\x12\x77\x86\xad\x2e\xc0\xfb\x5f\x11\xfd\xe4\ \x2b\xc2\xf7\xc4\x22\x9e\x88\xce\x5f\xbe\x53\xf3\x87\x0b\x9a\x7e\ \x26\xf6\xf9\x7c\x62\x56\xcd\xaa\xad\xaf\x94\xd5\x6c\xa9\xca\xf5\ \xf9\xb1\xee\xb5\x12\x9f\x99\xe4\xc6\x10\xa4\x73\xd6\x32\x6f\xc5\ \xe7\xa8\x5e\xb0\x08\x5c\x89\x02\xe2\x77\x0e\xd9\xad\x97\x9c\x0f\ \x00\x09\x20\x94\x52\x08\x21\xc4\xb1\xd7\x58\x38\x2b\x3a\x7b\x77\ \xc5\xb2\x1d\x2f\xcd\x9e\xb7\x3a\x28\xac\x19\xe2\x89\x61\xdd\x17\ \x88\x68\x91\x48\x89\x4f\x4d\x5f\x65\x66\xa2\x8f\xc1\x29\x41\x5f\ \xba\x8a\xea\x95\x2f\x50\x5a\xb5\x84\x70\xae\x1f\x5d\xd7\x51\xca\ \x8b\x2b\xbc\x74\xbf\xbb\x66\x7c\xf8\xef\x9d\x57\xfd\xc2\x17\xd0\ \xa2\xf2\x07\xa2\xf5\x97\x62\xa5\xc7\x17\x5e\x5b\x51\xf7\xf4\x9e\ \x92\x05\xdb\x23\x41\x6b\x18\x95\xba\x89\x47\xd3\x20\x10\x45\xd9\ \x3a\xfa\xcc\x00\x77\x46\x52\x0c\x66\x4a\x09\x94\x6d\x66\x79\xfd\ \x06\x42\xb9\x21\x5c\xdb\x42\x4a\x89\xeb\x7a\x49\x26\x27\x18\xe9\ \xda\x8f\xd1\x7b\x50\x2e\x5c\xbf\x43\xcb\x8f\x56\x88\x0b\xef\xec\ \x8a\x69\x91\xa2\x92\xd7\xa3\x8f\x6e\xae\x7f\x64\xc1\xb6\xa0\x1a\ \x6f\x45\x39\x3a\x1e\x6f\x00\x29\x25\xb6\x11\x63\x62\x32\xc9\xb5\ \xd1\x20\x9e\x39\xdb\xa8\x7b\x6c\x33\x25\x25\x51\xa4\x65\x60\x19\ \x59\xa4\xed\x60\x18\x16\x77\x7b\x9a\xe9\xee\x38\x46\x6d\xc5\x1c\ \xd6\xef\xd8\xeb\xf3\x05\xe3\xa4\xa7\x53\x28\x22\xb3\x34\x8f\xd7\ \x57\xe5\xf7\x79\x82\xe9\xa1\x76\x42\x9e\x14\xc2\x9b\x8b\x61\x5a\ \x24\xd2\x3a\xd7\x06\x1d\xd2\x39\x8f\x51\xbd\xfe\x19\xca\xca\x2b\ \xf1\x0a\x07\x23\x9b\xc6\x51\x02\xcb\xb4\x18\x1d\xe8\xa2\xe3\xf4\ \xef\x40\xf9\xf8\xcc\xd3\x5b\xa9\xae\x8a\x20\x93\xed\x4c\x8f\x19\ \xdc\xbc\xf0\x11\xbd\x03\x37\x0f\x69\xca\x75\x3d\x42\xd9\x38\x2e\ \x58\xca\x83\x2d\x2d\xee\x8c\x18\xf4\xa7\xca\xa9\x58\xf1\x05\x56\ \xd6\x2c\x21\xe0\xf7\x22\x2d\x13\x43\x4a\x6c\x57\x23\x3e\xd5\xcf\ \xd5\xd3\xfb\x18\x1f\xe9\x61\xe9\x8a\xc7\xd9\xb0\xbe\x1e\xd7\x9a\ \x22\x11\x6b\x24\x9e\x01\x3d\x91\xc3\xb5\xcb\x2d\x83\xef\x5f\xe1\ \x3d\x0d\xc0\x55\x60\x49\x85\x61\x59\x0c\x8c\x26\xb9\xeb\x3e\xc5\ \xc6\xe7\x76\x92\x17\xd2\x90\xb6\xc4\xd0\x4d\x2c\xdb\xc1\x34\x2c\ \xae\x77\xbc\xc3\x8d\x8f\x5a\x29\x2d\xab\xe1\xa5\x97\xbf\x4d\x24\ \x34\xc4\xcc\xd0\x71\x46\x46\x06\x11\xde\x10\xc1\xf0\x62\xae\xb4\ \x1d\x4c\xef\x6b\xcb\xfc\xea\xf2\x2d\xba\x35\x57\x81\x6d\x3b\x18\ \x52\x92\x8c\x67\x68\xbb\x3c\xca\x86\x2f\x7f\x8a\x82\x70\x90\x6c\ \x26\x83\xe3\x80\x61\x5a\x0c\xf5\x5d\xe0\xea\xd9\x03\xf8\x7d\x41\ \x3e\xbb\x79\x0b\xd5\xb5\xc5\xe8\x63\xe7\xe8\xbf\x13\xc3\xb4\x6c\ \x14\x5e\xfc\x79\x95\x4c\x75\x7f\xc8\xdf\x7a\x6e\xb4\x5d\xbe\xc5\ \x49\x60\x52\xb3\x6d\x17\x4b\xda\x24\x93\x26\x7d\xfd\x53\x64\xc4\ \x5c\xf2\x0b\xa2\x98\xa6\xc4\xb2\x3d\x4c\x0c\x75\xd1\x79\xb1\x81\ \xf8\xf8\x5d\x56\x3f\xbe\x99\x35\xf5\x95\x08\xd9\xc7\x48\x77\x03\ \x99\xac\xc4\xb4\x24\x8e\x23\x09\x86\xcb\x48\xde\x4b\xd0\xf0\x97\ \xb6\x9e\xbd\x2d\xfc\x02\x18\x05\x74\x4d\x3a\x0a\xc3\xb4\x89\xa7\ \x4c\x7a\x6f\xdf\x43\x9b\xb3\x84\x70\x64\x16\x89\xf8\x04\x9d\xe7\ \xff\x48\xec\xfa\x39\x1e\xa9\x78\x84\xcf\x7f\x7d\x37\x05\xc1\x61\ \x12\x03\x87\x89\xc7\x13\x64\x75\x13\xdb\x96\x64\x32\x29\xfc\xa1\ \x42\x84\x98\xcb\xd0\x95\xb7\xf5\xbd\x27\xf5\xdf\x98\x92\xbb\x40\ \x52\x29\xa5\x34\x69\x29\x0c\x43\x12\x4f\x1a\xc4\xee\x19\x2c\x5d\ \x54\x81\x50\x16\xef\x1f\xf8\x31\x01\x9f\x60\xdb\xf6\x97\x29\x2d\ \xcf\x41\x1f\x6e\x62\x2c\x36\x42\x3a\x63\x91\x48\x26\x40\xb9\x68\ \xbe\x20\xbe\xdc\x72\x72\x72\x4b\xe9\x3f\x77\x82\x33\x57\x63\x47\ \x93\x3a\xed\xc0\x94\x52\xca\x06\xd0\x4c\xe9\x92\xd1\x25\x93\xd3\ \x12\x6f\xa0\x90\x39\xa5\x35\x9c\x6a\xda\xc7\x9d\xbe\x5e\x76\x7f\ \xf7\x1b\x94\xe4\xf5\x30\xd4\xd9\x4d\x36\x9b\x41\x08\x0d\xdb\x96\ \x58\x86\x81\x37\x27\x4a\x7e\xfe\xa3\x88\x89\x31\x9a\xdf\xfb\x7d\ \xe6\x50\xfb\xf4\xc9\x8b\xb7\xf9\x35\x70\x0f\x30\xff\xf9\x7e\x34\ \xdd\x52\x08\x5d\x32\x35\x63\x61\x11\xc6\x36\xa6\xe9\xb8\xf4\x01\ \x9b\x9e\x5a\xc5\xe8\xad\x23\x64\xc3\xf9\x48\xdb\xc1\x34\x4d\x5c\ \x57\xc7\xa3\xe5\x90\x17\x5d\x8e\x13\xcf\xd2\xd3\xd6\xe8\xec\x3f\ \xd6\xdb\xfb\xd7\x1e\x0e\x65\x4d\x5a\x80\x7e\x20\xa5\x1e\x28\x19\ \xcd\x30\x5c\x54\x56\x92\xd2\x5d\x24\x7e\xae\x9c\x6f\x60\x41\x75\ \x31\xb3\x82\x23\x44\xc2\x61\x10\x1e\x92\xc9\x38\xae\xf2\x10\x0c\ \x97\xe3\x15\x05\x8c\x76\x7e\xa8\xda\xda\x2f\x8d\xbe\xd9\x6c\x1d\ \x9d\xc9\xd2\x0c\xdc\x06\xc6\xee\xc3\x9d\x07\x1f\xa8\x66\x58\x0a\ \xd7\x90\x38\xca\x4f\x2a\x99\xa0\xb6\x6a\x2e\x0b\x2b\x04\x79\x41\ \x17\xc7\xb1\x71\x1c\x45\x30\x52\x8e\x10\x85\x98\xa3\x03\x9c\x69\ \x69\x48\xfd\xb6\x39\x75\xea\xd6\x18\x7f\x02\x7a\xef\x83\x67\x00\ \x43\x3d\xa4\x1e\x35\x47\x81\xab\x04\xca\x4c\x53\x56\x68\xb1\xac\ \xae\x80\x90\x88\xe1\x0f\x14\x92\x36\x20\xaf\xa8\x0e\x73\x74\x94\ \xc1\xae\x46\xf7\x8d\xc3\xb7\x3a\x4e\xdf\xa4\xc1\x92\x5c\x04\x86\ \x80\x29\x40\xff\xcf\xab\xff\x4d\x10\xf0\x7b\xc9\xc9\xd1\x28\x0c\ \x1a\x2c\x5d\x59\x8d\x9b\xee\x21\x2f\x5a\x8e\xed\x99\x47\x20\x10\ \x22\x76\xb6\x85\x23\xcd\x57\x06\x0e\x9c\x75\x8e\xa6\x4c\x8e\x03\ \x31\x60\x1c\x48\x2b\xa5\xe4\xff\x02\xff\x4b\x10\x9f\x9c\xec\x96\ \xd9\xee\x95\x75\xab\x9f\x2f\x34\xac\xeb\x44\x8a\x4a\x08\xe6\xd4\ \x92\x88\xf5\xd2\x72\xe2\xd4\xf4\xbb\xe7\xb3\xad\xdd\x03\x1c\x05\ \xae\xdd\x8f\x23\x01\x98\x0f\x8b\xe3\xa1\x82\xb7\x9a\xdc\x3f\x57\ \x17\x8f\x8b\x9d\x8b\xed\x8d\x73\x2b\x37\x10\x4e\x0f\xd2\xd1\x74\ \xd0\x7a\xfd\xc8\xc0\xb9\xce\x01\x9a\x4c\xc9\x59\x60\x04\x98\xbe\ \x1f\x87\xfb\x71\xc0\x0f\xce\xfc\xb9\x45\x3c\xff\xd6\xf7\xf2\xae\ \x37\xfe\x74\x91\xfa\xd2\xba\x60\x57\xae\x9f\x3d\xc0\x46\xa0\x06\ \x28\x00\x34\xa5\x14\x9f\x64\xff\x01\x38\xa4\x6e\x5f\x55\x49\x82\ \xf9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x73\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x05\x49\x44\x41\x54\x48\xc7\xdd\ \x54\xdd\x4e\x13\x51\x10\xe6\xd1\x7c\x0c\x1f\x65\x2f\x35\xd1\x98\ \x78\x65\x62\xc2\x03\x58\xbd\xe1\x52\xb4\x6a\xa9\x5d\x28\xa9\x12\ \xf6\x08\xc5\x60\x69\xbb\xfd\xd9\x2d\xdb\x6e\x89\x50\x10\xb9\x72\ \x77\xce\xe7\xcc\x9c\x10\xa3\x12\xac\x29\xeb\x85\x17\x93\x33\xff\ \xdf\xd9\x6f\x76\xce\xd2\xad\xdb\x77\x3c\x16\x53\x90\x78\x4b\xa2\ \xbc\x4b\x80\x72\x8b\xf0\xa2\x95\xe3\xa1\x0f\x54\x7b\xce\xbe\x5f\ \x21\xbc\xed\x03\xf5\x18\x78\x50\x05\xd6\x42\xf6\xb7\x09\x77\xcb\ \x84\xd7\x6d\x8b\xd5\xfd\x0c\xf7\x2a\x60\x9d\x34\x5f\x6a\x25\xff\ \xf9\xfe\x37\x2c\x6f\x13\xa4\xb7\x02\x34\x12\x57\x5c\x8f\x80\x37\ \x5d\x8b\xf5\xa1\x4b\x92\xb3\xcc\xa0\x3e\x9f\xab\x6c\x4b\xac\xda\ \x23\xbd\x40\x6d\xc0\xb9\x1d\x8b\x97\x9f\x32\xbc\x3a\x70\x17\x11\ \xbf\x5e\x82\x6d\xe9\x79\x09\x50\x2c\x45\x00\x0a\x95\x9f\x8c\x1b\ \xfa\x1a\xef\x3a\x00\xf3\xf4\x23\xb0\xc1\xfc\xfa\xcc\xf5\xe3\x4d\ \xa7\x57\x3b\x39\x96\x1b\x3c\xa3\x81\xb3\x45\xaf\x85\x84\xb5\x76\ \x86\x47\xbe\x55\x7f\x9d\xe7\x54\x6a\x5a\xe5\xfd\x5a\x80\xdd\x23\ \x69\x64\xd1\xe0\x81\x6f\xf4\x2d\x36\x87\xac\xc7\x02\x98\xab\xdf\ \x0f\x73\x8d\x89\xaf\xd6\xcd\xd4\x7e\x3f\x92\x9a\x1c\x52\xfb\x27\ \x80\x62\x29\x2a\x64\xc8\xff\x64\x93\x77\x53\xc2\xce\x04\xd8\x8a\ \x08\x2b\x4d\x60\x6f\x0a\x04\x87\x84\x67\xc6\xe9\x66\x6c\xf1\x84\ \x37\x73\x2b\x62\x9e\x53\xa8\xdf\x8c\xa1\x35\x25\xf1\x0f\x73\x04\ \xbc\x58\xa5\xc0\xa2\x99\x4a\x8c\x37\x3b\xfc\xb1\x68\x26\x3c\x65\ \x27\x37\x14\xd9\xe3\x84\x60\x44\x9a\x28\xfa\xce\xd8\x15\x7d\x48\ \xac\xda\x97\x71\xf1\x6f\xc7\x39\x37\xcf\x34\xd6\x4c\x2d\xfb\x5c\ \x1f\x89\x75\x66\xff\xe5\x26\xff\x2a\x73\x7e\x9d\xb7\x08\x80\xe9\ \xcf\x98\xcf\xcf\xb2\x68\xc0\xc1\x11\xa1\xc7\xdc\x56\xf8\xa9\x6e\ \x4d\x09\xd1\x97\xdf\x17\xeb\xaf\x01\x26\x17\x40\x2b\xcd\xd1\x96\ \xe6\x27\x16\xbd\x63\x8b\x2e\x03\x0e\x18\x68\x74\xbe\x38\x40\xb1\ \x14\x15\x32\xe4\x05\x7f\x5b\x6f\x1e\x00\x33\x65\xde\xc7\xe7\xb2\ \x5c\xcc\xf3\x19\x30\x3c\x21\x04\xb1\xd5\x53\x6c\xc3\xaf\x67\xc4\ \xc3\x9f\x7c\xe5\xa5\x8b\x5d\x8e\xd4\x5c\x35\x8f\x2b\x01\xd2\x0b\ \xcb\x45\x56\x41\xe4\x54\x39\xb5\x88\x67\x84\x84\xff\x9c\xe4\x4c\ \x00\x48\xcf\x43\x8d\x11\xa4\x66\x5e\x80\x1b\xa5\xe8\x3b\x80\x6d\ \x3c\xea\x2d\x2a\x08\xd7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x04\xca\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x5c\x49\x44\x41\x54\x48\xc7\xc5\ \x56\x0b\x4c\x5b\x05\x14\xad\x4d\x66\x98\x06\xe2\xe6\x67\x31\x96\ \xb1\xd2\x82\x9b\x08\x1d\x4a\x65\x6d\xdc\x84\x39\x4a\xc9\x02\x59\ \x40\xa8\xa9\x33\x5b\xda\xe1\x30\x8e\xb1\x8d\x35\x08\xc6\x91\x82\ \x43\x9c\x13\xdc\x4f\xc5\xec\x47\x45\xa0\x15\x32\xa9\x02\x29\x43\ \x03\xa3\xed\xa0\xa5\x6f\xb4\xae\x2b\xa5\x19\x6c\xb2\xa8\x2c\xc2\ \x8a\x25\xc6\xd8\x8d\xeb\xbd\xe6\x2d\xa2\xae\x90\x98\xa9\x4d\x4e\ \x5e\xfa\xfa\xee\x3d\xef\x9e\x7b\xce\x7b\xe5\x00\x00\xe7\xdf\x04\ \xe7\x7f\x23\xc0\xcf\x52\x84\x38\x2d\x2d\x6d\x8f\x58\x2c\x7e\x87\ \xcb\xe5\xbe\x81\xdf\x77\x20\xf2\x10\x12\xc4\x32\x04\xf7\x1f\x11\ \xe0\x67\x75\x5c\x5c\x5c\xa1\x56\xab\x6d\xed\xec\xec\x1c\x77\x3a\ \x9d\x37\x7d\x3e\xdf\xac\xcd\x66\xbb\x61\x30\x18\xdc\x25\x25\x25\ \xc6\xd8\xd8\x58\x0d\x4b\x74\xef\x7c\x44\x77\x6a\x2e\x55\xa9\x54\ \x1f\x9b\x4c\x26\x8f\xd7\xeb\x85\x81\x81\x01\xa8\xab\xab\x83\x9a\ \x9a\x1a\xd0\xe9\x74\x30\x38\x38\x08\x2e\x97\x0b\x9a\x9a\x9a\x7c\ \x39\x39\x39\x0d\x78\x7d\x3a\x62\x71\x28\x92\xbf\xdd\x39\x35\xb7\ \x58\xad\xdf\x31\x0c\x03\x25\x6f\x96\xff\x9a\xb9\x43\x33\x9d\x5d\ \x79\x38\xa8\xf8\x50\x0f\x59\xda\xf7\x03\xaf\xec\xaf\x99\x6c\xd0\ \x7f\x16\xc4\x69\x40\x6f\x30\x5c\x97\xcb\xe5\x4d\x58\x97\x12\x8a\ \xe4\x4f\x9a\x93\x2c\x74\xe7\xd4\x7c\xcb\xde\xb2\x1b\xcf\x14\xbf\ \x35\x9c\x74\xb0\xc1\xb7\xa9\xde\xf4\xcb\xe6\x56\x33\x28\x5b\x2d\ \xb3\x09\x07\x9b\x46\x5f\x38\xda\x38\x52\xdf\x71\xd6\xef\x70\x38\ \xa0\xa2\xa2\x62\x94\xc7\xe3\x69\xb1\x5e\x48\x72\xcd\x47\x20\x26\ \xcd\x49\x16\xba\x73\x6a\x2e\x3a\xf0\xc9\x80\xec\x78\x87\x53\x63\ \x72\x4c\x54\x9e\xbb\x38\x53\xd8\xe9\x98\x4e\x39\xdd\x3d\xba\xb2\ \xae\xeb\x7c\x7e\xf3\x59\xb7\xd9\x36\x18\x6c\x69\x69\x81\x8c\x8c\ \x8c\x6e\xac\xcf\x44\x84\xff\x75\x8a\xb9\x04\xd9\x46\xa3\xd1\x45\ \x9a\xcb\x0b\x76\xff\x20\xa8\x3c\x69\xcd\x6b\x30\x5d\xd0\xf4\xb8\ \x5d\x6f\x33\xe3\x9e\x2a\xe6\xdb\xcb\x55\x8e\xab\x57\x76\x5a\x46\ \x2f\x89\xda\x3c\x5f\xc5\xeb\x99\xae\xe3\x3d\xb6\xef\x49\x2a\xa5\ \x52\xe9\xc3\xfa\x22\xc4\xc3\x88\x45\xa1\x08\x5e\x45\x69\xa6\x68\ \xa1\x92\x3d\x15\x23\x31\xef\x36\xf7\xad\x7e\x4e\x05\xcf\xe7\x96\ \xc2\x86\x17\xf7\x41\x6a\x6e\x19\xa4\x2b\xcb\x61\x5d\xf6\xeb\xc0\ \x79\x2c\x0b\x12\x4d\x57\x3a\xf6\x76\x31\x2e\xb7\xdb\x0d\x05\x05\ \x05\xd3\x58\x5f\x85\xe0\x21\xc2\x42\x11\x94\xa0\x15\x6f\x91\x5b\ \x44\xe5\xc7\x98\xc7\x0f\xb7\xf5\x2e\x5e\x91\x09\x4b\x13\x55\xb0\ \x22\x75\x37\x08\x36\x14\xc3\xf2\x94\x5d\x10\x9e\x98\x0f\x9c\xd8\ \x97\xe1\xe9\xde\x89\x2f\xb2\xda\xbf\xe9\x1b\x1e\x1e\x26\x82\x5b\ \x58\x7f\x04\xc1\x47\xdc\x17\x8a\xe0\x35\xbb\xdd\x3e\x45\x56\x4c\ \xdb\x57\x33\xb2\xf2\xd8\x97\x3d\x9c\x47\xe5\xc0\x11\x6e\x06\xce\ \x2a\xf5\x1f\x78\x02\x11\xa7\x86\x24\xf3\xa4\xb1\xcc\xe2\x1b\xf2\ \x78\x3c\xa0\x50\x28\x68\x82\x03\x88\x68\xc4\xfd\xa1\x08\xf2\x28\ \x44\xe4\xf3\x82\xea\x43\x13\x34\x01\xff\xc4\xc5\x7e\xbe\xe1\xc7\ \x7e\xc1\x99\x80\x55\xd0\x16\xb0\x44\x9f\x09\x9c\x17\x1a\x03\x66\ \x71\xff\x4f\x6d\x34\x81\xde\x79\xf9\x1a\x39\x09\xd3\x4e\x3b\x28\ \x5d\x68\x02\x09\x25\x94\x42\x44\x3e\xcf\xfb\x40\x7f\x29\xea\xa8\ \xdd\x1e\x79\xea\x9a\x83\xf7\xa9\x7f\x88\xd7\x3c\xc3\x20\x2e\x08\ \x3e\x0f\x58\x93\x2c\x53\x46\x4d\xff\x18\xe3\x1c\xf6\x06\x6b\x6b\ \x6b\x21\x21\x21\xa1\x17\xeb\xb7\x2e\xb4\x83\x65\x14\x7f\x4a\x28\ \x39\xa3\xbe\xa3\xdb\xaf\x6e\xfc\xda\x13\x53\x3f\x74\x2e\x4a\x37\ \x6e\x8b\x6c\x98\x74\x08\x5a\xa7\xac\xf1\xa6\x09\x13\x35\x6f\x67\ \xdc\x3f\x9b\xcd\x66\x90\xc9\x64\xfe\x88\x88\x88\xd3\x58\xbf\x76\ \x21\x17\x71\x69\x0a\x8a\x3f\x25\x94\x46\x27\x9f\x93\x15\xc9\x2d\ \xb4\x50\xd2\x9c\x64\x71\x7a\xbc\x41\x6a\xae\xde\xb6\x6d\x56\x2a\ \x95\xce\x60\x5d\x3b\x82\xc2\x26\x0a\x99\x03\x96\x84\x1e\x5c\xe9\ \x14\x7f\x4a\x28\x85\x88\xa6\x21\x2b\x92\x5b\x68\xa1\x44\x4c\xb2\ \xe0\x35\x7e\x89\x44\x12\x48\x4e\x4e\x86\xcc\x35\xfc\x99\x5d\x9b\ \x56\x5d\xc7\xda\x9d\x94\xe8\xf9\x08\xb8\xec\x33\x25\x85\xe2\x4f\ \x09\xa5\x10\x91\xcf\xc9\x8a\xe4\x16\x5a\x28\x69\x8e\xb2\x9c\x0a\ \x0b\x0b\x1b\x48\x7d\x32\xea\x66\xd9\xc6\x18\xf8\x68\x7b\x12\x94\ \xbf\x94\x30\x4e\x6e\x9c\x4b\x72\xa7\xa7\xe9\x6d\x12\x21\x1b\xff\ \x22\x36\x44\x47\x58\x2b\x96\xb2\x0b\x5d\x77\x0f\x87\x63\x5d\x1b\ \xb9\x24\x50\xf8\xec\x72\xa8\xce\x8d\x03\x5d\xd1\x1a\xd8\xbf\x35\ \x71\x6c\x2e\x49\xa8\xf7\x01\x97\x95\x2b\x9c\x5d\x1c\x8f\xb5\x60\ \x34\x7b\xe4\xb1\xe7\x45\x48\xd2\xb7\x3e\xfa\xa1\x80\x66\x3d\x1f\ \xde\x53\xc6\x43\x63\xb1\x14\xaa\xd5\x4f\xfd\x4e\xb2\xe0\x2b\x93\ \x25\x5a\x44\xd6\x23\x7f\x53\x88\xd8\x63\x18\x7b\x9e\x7e\x17\x22\ \x49\x67\x1a\x7f\xc9\xd5\x52\x99\x00\x0e\x6d\x11\xc1\x76\xb9\xd0\ \x8d\xe7\x15\x77\xed\x9d\xcc\x92\xb4\xc8\x85\x0f\x8e\x6d\x8c\x7f\ \x84\x9a\xe7\x23\x1e\xb8\xab\x2f\x7d\x76\x67\xa4\xbd\xe2\x76\xf3\ \xff\xe4\x5f\xc5\x6f\x26\x4d\xee\x1d\xf0\xc3\x08\x75\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\x3d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xcf\x49\x44\x41\x54\x48\xc7\xb5\ \x95\x6b\x48\x53\x71\x18\xc6\x57\x14\x91\x96\x86\x99\x05\x21\x18\ \x5d\x66\x86\xcd\x20\x35\xad\xd4\x50\x22\x32\xc5\xc4\xb2\x28\x19\ \x5d\x21\xac\x6c\x50\xe1\x44\x53\xba\x9a\x20\x5e\x90\xca\xc4\x69\ \x5e\x98\x95\x25\xc7\x26\xa1\x32\x1d\xc7\xeb\x72\x35\x6c\x38\xcb\ \x39\x8d\x5a\x08\xae\x16\x15\xc2\x3e\x08\x4f\xef\x9f\xe9\x97\x30\ \xdd\x99\x36\x78\x18\x3b\xff\xb3\xe7\xb7\xf3\xbc\x97\x89\x00\x88\ \xfe\xa7\xe6\xbc\x21\xea\x58\x4e\x3a\x49\xe7\x84\xd2\x05\x03\xe8\ \x4b\x31\x59\x25\x9c\x79\xf4\x37\x30\xf2\x0b\xf8\xf0\x1d\x18\xb0\ \x3a\x34\xf8\x0d\x18\xfa\x01\xb0\x33\x26\x06\x11\x89\x44\xee\x42\ \x01\x5b\xcf\x67\x29\x8c\xc5\x75\xbc\x45\x3b\xf2\xd3\xae\xff\x0a\ \xf4\x8c\x3a\xf4\xf6\x8b\x03\xc4\x75\x9b\x6c\xec\x7c\x47\xf4\xe9\ \x72\x02\xf8\x0a\x8e\x68\x57\x5c\x9a\x64\xe7\x81\x0b\x57\xf7\x24\ \xa6\xab\x55\xba\xf1\x09\x8d\x09\x60\xd2\x59\x80\xe3\xb2\x12\x83\ \x24\x2a\xa5\x45\x1c\x1c\x57\xbe\x7c\x85\x57\x02\x01\x7c\x04\x03\ \xe8\xb5\x98\xe4\x16\x99\x7c\x43\xd3\x35\x6c\x9f\xd4\x0c\x01\xfc\ \x30\xf0\x54\x63\xb2\x31\x73\x3a\x4b\x24\x6d\x22\xad\x26\x2d\x15\ \x0c\x98\x8e\xea\x5c\xa6\xc2\xa8\xfd\x0c\xa8\x3f\x02\x1d\x66\xa0\ \x94\xeb\x1b\x0b\x08\x3f\x52\x43\xa6\x9b\x49\x8b\x5c\xee\xa2\x29\ \x80\xb4\x40\xc9\x5b\x78\x32\x6e\x1e\x00\x3a\x47\x80\x8c\x62\xce\ \xbc\x21\x70\xdf\x1d\x32\x5f\x37\xaf\x36\x9d\x02\xe4\x2a\x29\x92\ \xd6\x41\xa0\xc9\x40\x80\x4f\xc0\xa1\xb3\x79\x7a\x37\x8f\x35\xc9\ \x04\xf0\x5c\x08\x40\x35\x47\x05\x56\xbd\x07\x5e\x91\xda\x4d\xf6\ \xc9\xbd\x49\xf2\x5e\x32\x0f\x9f\x29\x77\xa1\x83\xe6\xc1\x7e\x6d\ \x3b\xc5\xf3\xf2\x1d\xd0\xd8\x0f\x54\xb5\x99\x6c\x41\xd1\xa7\x54\ \x64\xbe\x6d\xb6\xfc\x9d\x05\xc4\x5c\x2f\xe4\xcc\x4d\x46\xa0\xee\ \x0d\x01\xe8\x09\xf2\x6a\x79\x8b\x38\x24\xbe\x8c\xcc\xfd\x16\x62\ \x55\x5c\x2a\x7a\xd1\x37\x56\xaf\x07\x6a\x7b\x28\x22\x2a\x72\xea\ \xdd\xba\x21\x5f\x71\x98\x7c\xa6\xbe\x77\x05\x90\x5b\xd6\x62\xb2\ \xd5\xf6\x02\x4f\xba\xa8\xc8\x54\xe8\x58\x8a\xcc\xdd\xd3\x87\xf5\ \xff\xca\x85\x00\xb4\x35\xf4\xdb\x27\xcb\x79\xa0\xa2\x13\xa8\xe9\ \x1e\x9f\x08\x89\xbd\xa8\x21\xf3\x50\xd2\x92\x79\x01\xd8\x80\x49\ \x33\x14\xc6\x67\x14\xcf\x43\xb5\x03\x50\xcc\x19\xac\x81\x11\x27\ \xea\xc9\xdc\x7f\xae\x02\x3b\x03\x90\xde\xaa\xe2\x2d\x0a\x8a\xa6\ \xa8\x19\x60\xef\xec\xb3\x7f\x68\xc2\xa3\x99\x16\x9b\x20\x00\x99\ \xaf\x67\xf9\x17\x70\xb4\x2d\x5b\x81\xfb\x2a\x5a\x0f\x14\x53\x8a\ \x5c\x61\x5c\xeb\x27\xb9\x42\x00\x6f\x97\x00\xd3\x7f\x30\x49\x97\ \x4b\x0c\xf7\x94\x7d\x63\x15\x54\xdc\xfc\xd7\x40\x2e\x01\x1e\x68\ \xa8\x45\x9f\x1b\xac\x07\xcf\xe4\xe9\x69\xbb\xde\x8c\x38\x9a\x29\ \x76\x05\xa0\x6b\xa5\xa5\xc6\xd4\x40\x1d\x53\xa5\x03\x1e\x53\xf6\ \xa5\x1d\x40\xa5\xd6\x71\x8d\x9d\x15\x36\x1a\xac\xbb\x0f\x5f\x63\ \xbb\x68\x99\xe0\x27\xc8\xae\xe4\x2d\xd3\xca\x99\x52\xf6\x5f\x4a\ \xcb\xe7\xcc\x5b\x82\xe3\x64\x04\xf0\x12\x0a\x70\x0f\x8b\x97\xa5\ \x6e\x8f\x3c\x79\x3b\x20\x3c\xa9\xf0\x5f\xda\x18\xb4\x3f\x93\xcc\ \x83\x5d\x5a\x76\x6c\x81\x91\x56\xb1\x49\x9d\x45\xde\x6c\xd0\xe6\ \x9a\x05\xa7\xb6\xe9\x7c\xf4\x07\x31\x37\xf2\xb9\x28\x8c\xc6\xad\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\x00\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x92\x49\x44\x41\x54\x48\xc7\xb5\ \x96\x4d\x4b\x54\x51\x1c\xc6\x7f\xe7\xde\x99\x3b\xbe\x0c\x86\x12\ \x96\xa6\x34\x44\x8a\x94\x42\x90\xd9\x62\x10\xfb\x0e\x6d\x6c\x97\ \x50\xab\x56\x2d\xdc\xf6\x2d\xa2\x45\x50\x14\xb8\xa8\x90\x12\x37\ \x51\x1b\xb5\x30\x2b\x2a\xad\xc1\x34\x4c\x57\xa1\xf9\x92\xa2\xce\ \x78\xe7\xde\x7b\xee\x69\x31\x67\x5e\x1a\xbd\xea\x38\x74\xe0\x70\ \x0f\x33\xdc\xe7\x77\xfe\xcf\xff\x65\x46\x28\xa5\xf8\x9f\x2b\x14\ \xf4\xc5\xdd\x3e\x61\x6d\x6e\x12\x4f\xed\xe0\xd4\xd4\xd1\xe9\xd8\ \x18\x4a\x21\xab\x22\xc4\x22\x95\x46\x53\xb5\x25\xe4\xab\x8f\xf2\ \xde\xf0\x67\xc6\x7c\x20\xa5\xef\x59\x7c\xe1\x40\x80\x30\xe9\x6f\ \xe9\xec\xbe\xb1\xb3\xb5\xb6\xde\xd4\xd6\x73\xca\xf3\x95\x81\x74\ \xbd\xda\x93\xad\xb5\xc7\xea\xcf\x44\x2c\x53\xb2\xb8\xd6\xdb\x3c\ \xf8\x89\xab\x02\x7e\x07\x86\xa0\x94\xda\x73\x3f\xb9\x73\x5e\x05\ \xad\xb4\x7e\x2e\xcd\xbe\x54\xbd\xed\x3c\x07\xaa\x82\xf4\x02\x01\ \x8f\xfa\x63\xa9\x20\x40\x62\x3a\xa1\x1c\x99\x39\x7f\x7f\xfb\x50\ \xdd\xea\xe1\x41\x10\xc0\x08\x8a\xcc\xf7\x3d\x2f\x73\xf2\x50\xa4\ \x80\x24\x60\x03\x2e\xd2\xdd\xc6\xd9\x49\x01\xd0\x16\xbf\x4e\xbc\ \xfb\x5c\x1f\x10\x87\xdd\x7a\xa1\x83\xeb\x20\x8d\xc0\x03\x14\xe0\ \x01\x16\xd1\x68\x05\x43\x43\x4f\x59\x59\xd9\xe6\xc2\xe5\x2b\xac\ \x27\x7d\x80\x76\x60\x8e\xa2\x7c\x18\x07\x03\x5c\x14\x2e\xe4\xb6\ \x4d\xf3\xe9\x13\xb4\x9c\x6d\xa0\xb5\xb5\x8e\x8e\x8e\x18\x21\xec\ \xec\x65\xcd\x12\x22\x50\x05\x11\x48\x40\xa1\x10\x08\x14\x61\x33\ \xc4\xa5\xae\x8b\x80\x05\x44\x39\x16\xb5\xd0\x74\x79\x24\x8b\x14\ \x3e\xe2\x1f\xa8\x0b\x08\x20\x0d\xd4\x90\xcd\x56\x49\x8d\x96\x5f\ \x36\x02\x85\xd2\x92\x99\x28\xd0\xd0\xac\xc3\xf2\x28\x80\xbc\x45\ \x00\x42\x23\x44\xb6\x11\xcb\x1d\x15\xf9\xfc\xdb\x45\xd2\x59\xbc\ \x2a\xf8\x44\x94\x63\x51\x5a\x5b\x91\x95\xcc\x98\x94\x91\xf4\xcb\ \x01\x88\x82\x24\x0b\x04\x46\xce\x26\x95\xcb\x84\x2c\xc7\x22\x00\ \x47\x77\xaf\x99\xcb\x42\x7e\x49\x9d\x27\xb7\x20\x5f\x25\x27\xd9\ \xd5\x10\xb3\x28\x2a\x89\xc2\xd0\x1d\xee\x80\x71\x24\x8b\x8c\x1c\ \x40\x10\xce\x95\xa5\x42\xea\x58\x0c\x20\x0c\x54\x53\x11\xae\xc8\ \xbe\x60\x94\x18\x81\xa3\xab\x48\x22\xf0\x01\x1f\x41\x15\x10\x03\ \x8e\xeb\x01\x38\xc7\xea\xea\x46\xe9\x00\x21\x30\xd0\x16\x08\x4c\ \x2d\xd8\x06\x78\x6c\x2d\x8c\x31\xfb\x61\x82\xd1\x91\xf7\xfe\xb3\ \xc1\xaf\xf3\x3f\x37\x99\xd1\x83\x2e\x79\x68\x40\xc4\xaa\x8c\x40\ \xa3\x1e\x92\x0d\xa4\x96\x12\x8c\xbf\xb8\xcd\x9b\xd1\x71\x7f\xe8\ \xf5\xf2\xb7\xa9\x35\x26\x81\x19\xe0\x0b\xf0\x03\x58\xd4\x15\x71\ \x38\x40\x63\x9d\x50\xb0\xc4\xc8\xc0\x63\x86\x07\xee\x3b\xe3\x93\ \x72\x61\x62\x91\x77\x5a\x30\x01\x4c\x03\xcb\x05\xcd\xb0\xb7\x13\ \x41\xff\x2a\xba\x9a\xc5\xb5\xe4\x06\x37\xe7\xb7\xf9\x63\xc3\x28\ \x30\x05\xcc\x03\xbf\xf6\xab\xcb\x5d\x7a\x41\x3f\x99\x3d\x2d\x00\ \x44\x81\xfa\xbd\xe6\xfc\x7e\x80\xc2\xfd\x17\xfb\xc6\x93\x82\x32\ \x2c\x7f\xcc\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\xa1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x33\x49\x44\x41\x54\x48\xc7\xd5\ \x55\xcb\x6e\x13\x41\x10\xcc\xa7\xf1\x19\x7c\x8a\x4f\x08\x21\x0e\ \x88\x13\x42\x70\xe0\x03\x10\xe2\x06\x52\x78\x84\x6c\x0c\xd8\x24\ \xf1\x63\x6d\x92\xe0\xf8\xed\x5d\x7b\xfd\xb6\x13\x3b\x46\x11\x07\ \xef\xce\x14\xd5\x33\x10\x88\x64\x03\x07\xf6\xe0\x43\x6b\x7a\xaa\ \x6b\xba\x76\xbb\x35\x3d\x5b\x37\x6e\xde\x4e\xd0\xdc\x98\x2c\xb1\ \x25\xce\x61\x1f\xd8\xa9\x01\xaf\xcb\x0a\xdb\xe5\x08\x2f\x4f\x96\ \x70\x9a\x9a\x98\xc2\x5e\x0b\x48\x7a\x1a\xa9\x0e\x88\x01\xbb\x0d\ \xf2\xaa\x8a\xdc\xd0\xec\x93\x9e\x3d\x2b\xf8\xbb\xfa\x4f\x5f\x23\ \xdd\xd5\x90\xdc\x46\x20\x37\xb2\xc1\xbb\x6f\x95\x39\xe0\x34\x15\ \xee\x27\x2d\xf1\x4d\x45\xe1\x0e\x71\x9b\x5c\xe3\x9e\x03\xbc\x3a\ \x5d\x22\xd5\x06\x6e\x6d\x2f\x89\x51\x8c\x9c\xdf\x71\xc9\x93\x1d\ \xe0\x4a\x20\xde\x12\x01\x88\xd5\xfe\xe7\x1f\x24\xd6\x09\xb8\x39\ \xd6\xcb\xa9\x45\x38\xe8\x02\xef\x9b\x11\x4d\xe3\x53\x07\x66\x15\ \x4b\xb2\xce\x29\x5f\x99\x55\xf6\xbb\xd5\x90\x7b\xe0\xa3\x27\xb1\ \x08\xd9\xbe\x6d\xe8\x5a\x81\xe2\x48\x92\x29\x3c\xfc\x10\x21\x13\ \x80\x07\x80\x27\x07\xc0\x3e\x1b\xe6\xd4\x43\x3c\x4a\x51\x88\x89\ \x52\x4c\xf8\x20\x19\x1a\x6e\x9e\x1f\xf5\x38\x0d\xa4\x29\x74\x32\ \xc1\x1f\x05\xe2\x2d\xd1\x26\x34\x39\xf1\x37\x01\xb7\x34\x05\x5c\ \xd6\x3d\xdb\x51\x28\xb2\xb6\x85\xbe\x98\x46\x89\xb5\xdd\xf7\x42\ \x64\xda\xea\x07\x06\x64\xc8\x39\x66\xcf\x8a\x03\xc6\xa7\xeb\x6b\ \x7f\x4d\xa0\x3c\xd5\xc8\xf8\x4b\x3c\x73\x15\x0e\xbd\x25\x3e\x53\ \xe4\x69\x3e\x82\xdb\x55\x38\x1a\x02\x2f\x4a\x4c\xde\xd3\xc8\x07\ \x0a\xcf\x8b\xfa\x0a\xdf\x69\xfc\x9b\x40\xbc\x25\xda\xa4\x9b\xbc\ \xf2\xcf\x4c\x0f\x5a\x33\x8d\xf2\x48\xa1\x7e\x06\xb3\xd6\xd8\x3c\ \xf1\xab\x13\x6d\xfc\xca\x58\x1b\xdf\x9b\x03\xc7\xfd\x10\x15\xfa\ \xa5\x61\x84\x2f\x83\xd0\xc4\x6a\x53\x89\xdb\xb3\xc2\xeb\x2c\x7e\ \xf5\xc6\x08\x04\x5f\x99\x6c\xcc\x71\xc0\x51\xed\xcd\x80\xda\x84\ \x63\xa1\x6e\xfd\xc6\x99\x86\xc3\xf9\x2f\x98\x4f\x81\xbd\xba\x26\ \x06\x34\xcf\xe9\xf3\xbd\xa8\xca\x87\x4d\x2d\xde\x32\x7c\x85\xdc\ \xe0\xba\x40\xbc\x25\xda\xb4\x26\x27\x56\x5e\xb4\xf1\x37\xc0\x3f\ \x57\x08\x2e\x80\xce\x5c\xdb\x75\x26\xab\xf5\xdb\x33\x85\xee\x42\ \x9b\x98\xf0\xba\x17\x96\xef\x13\xef\x2d\x84\xab\x30\xbc\x5c\x7d\ \xe9\x8c\xc0\xf0\x52\x1b\x52\x81\x0f\xb5\x1c\x96\xc4\xc5\x1e\x8c\ \x2f\xf8\x11\x47\x44\x30\xd7\x46\x34\xcf\x51\x21\xbe\x88\x16\x02\ \x8d\x1e\x39\x62\xa7\x93\xf5\x02\xb1\x96\xe8\x3b\x31\xcd\x36\x1d\ \xe5\x2d\x08\xd3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x04\x6e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x04\x35\x49\x44\x41\x54\x48\xc7\xb5\x95\x7f\x4c\x94\x75\ \x1c\xc7\xaf\x5a\xad\xe5\x8a\x2d\x67\x9a\xfe\x51\x36\xc4\xc4\xa4\ \x2c\xa0\x00\x45\x4b\xd7\x0f\xac\x2e\x10\xc5\xca\x6a\x2b\x95\x14\ \x51\xd4\x28\x08\x44\x0b\x04\x65\x9c\xfc\x88\x40\x65\x1c\xd2\x89\ \x9c\x60\xca\x93\x70\x48\xfc\x7e\xe0\x50\x7e\x28\xe4\xe1\x91\x47\ \x87\x36\xae\xa8\xa3\xd1\xae\x76\xdb\xfd\xe1\xf6\xee\xfd\xdd\x75\ \x0b\xc2\x83\x73\xab\x3f\xde\x7b\xf6\xec\xfb\x79\x3e\xaf\xcf\xcf\ \xe7\xab\x00\xa0\xf8\x3f\x35\xe1\x65\xe5\x86\xfd\x09\x54\xcf\x6d\ \x48\x43\xbd\x47\xcd\x98\x16\x40\xa3\xc0\xdd\x87\xb4\xa6\xeb\x7f\ \x02\x42\xd7\xc6\x00\xe3\x28\x70\x95\x1a\xf8\x0d\x30\xfd\x0e\x0c\ \xfd\xe1\x3c\x1b\xa2\x7e\xb0\x01\x6d\x03\x56\xfb\x17\xa7\x64\x4b\ \xe8\xfa\xbd\xe5\xa1\xeb\x92\x22\xa6\x03\xcc\x7b\x73\x57\xbe\x21\ \x4f\x2b\x5b\xc4\x87\x57\x7e\x01\x3a\x7f\x04\x2e\x0c\x01\x5d\x7c\ \x1a\x7e\x05\xc4\x99\x50\x55\xc7\xe0\x98\x80\xf7\x8d\x00\xc2\x4e\ \xa6\xfd\x6b\x9b\x33\x7b\x03\x5e\xd9\xe6\xa7\x50\x28\xee\x70\x5b\ \xa2\xc0\xb0\xed\x8f\x06\x84\xc5\xec\x0e\x7e\xe3\xa3\x6a\x55\x99\ \x6c\x69\xa7\xf3\xe6\xef\x19\x29\x9f\x05\x67\xba\x47\x7c\x83\xd6\ \x9e\x5f\x18\xa8\x3c\xe6\xff\x52\xb4\x36\x29\x4f\x32\xf7\x0c\x03\ \x1d\x3c\xeb\xf9\x09\x38\xd9\x60\x18\x7d\xf6\xd5\x9d\x2a\x02\xee\ \x75\x0b\x10\x74\x61\xb0\x74\xf5\x07\x2f\xc6\x1d\xd4\x9a\x3a\x6e\ \x00\x4d\x04\xb4\x9b\x81\xec\x93\xb2\x65\x61\xe0\xeb\x45\x3c\x17\ \x51\xce\x59\x1e\xf9\x69\x65\xed\x65\xab\xbd\xc5\xc4\x0c\x06\x99\ \x09\x33\x14\x7d\xe1\xd9\x3c\xb7\x80\xf1\xfd\x10\x00\x3d\x01\xdf\ \x1a\x81\x56\x01\x28\x97\x2d\xbe\xc1\x91\xb9\x74\xf0\x90\xb0\x59\ \x11\x95\x92\xac\xd6\x19\x46\x1b\xaf\x01\xf5\x0c\xe2\xd2\xcf\xc0\ \x86\xb8\x7c\xc3\x5c\x6f\xff\x55\xe3\xcb\xe4\x16\xb0\x33\x43\x6b\ \x6a\x65\xfa\xb5\xfd\xcc\x82\x51\x1e\x76\x02\x72\x5c\x00\xda\x14\ \x54\xea\x87\x6d\x75\x46\x27\x40\x7f\xc3\x71\x73\x79\x64\xe2\x45\ \x9e\x07\x50\x77\x4d\x0b\xd8\x41\x40\x13\x53\x97\xfa\x08\xb9\x0a\ \x64\x9e\xf8\x07\xc0\x73\x65\x14\xa3\x6d\x31\x3b\xcf\xc4\xb3\xa0\ \xaa\x7b\x64\x51\x50\x44\x05\xcf\x17\x7b\x94\x41\x6c\xba\xd6\x54\ \xc7\xf4\x2b\x7b\x80\xb3\xbd\x40\x5a\x89\x6c\x71\xcd\xff\x27\xb9\ \x92\xf9\x74\xa7\xd5\x5e\xcd\xec\x6a\x08\x38\xde\x30\x38\xe6\xb7\ \x62\x63\xa3\xd7\xac\x47\xb6\xd2\xf9\x6c\x8f\x7a\xb0\x9d\x80\x1a\ \xa6\x5f\x76\x81\x13\xd2\x09\xe8\x06\x58\x06\x4e\x4b\x17\x9b\xd9\ \xce\xe9\xd1\xb1\x2c\x67\xbe\xe3\xe8\x4a\x83\x63\xcb\xd6\x26\x76\ \x2e\x0e\x59\x5f\x4c\xe7\x8f\x53\xf7\x78\x04\x88\x39\xa0\x35\x55\ \x19\x80\x92\x76\xa0\xb4\x03\x28\xaa\x1f\xb6\xa5\x6b\x64\x4b\xc6\ \x09\xa7\xce\xf6\xd9\x1c\x52\xbf\x13\xf2\x4d\xbf\xe3\x66\x7c\x8e\ \x64\x0e\x09\x8f\x4f\x7d\xf2\xf9\x77\xbd\x3c\x02\x6c\x23\xe0\x34\ \xeb\x5f\xd4\x4a\x00\xb3\xd8\x5f\x2c\x5b\xbc\x97\xbe\x5c\xb1\xe8\ \xb9\xf0\x02\xd1\x8b\x90\xf0\x8f\x9b\x53\x4b\x09\x62\x10\xa7\x2e\ \xb1\x54\xcc\x48\x04\x10\xac\xdc\x73\x80\x59\xdc\x3d\x2d\x60\x2b\ \x01\xe5\xfc\xb0\xb0\x89\x35\xbe\x08\x08\x67\xc2\x39\x3f\xf6\x15\ \x8d\x9e\x39\xd7\x67\x01\x21\x9a\xa3\x0d\xc3\xb6\x62\x3d\x33\x65\ \x96\x3a\x4e\xdb\x9a\x4d\x99\xbd\x0f\x3f\xf6\xb4\xb7\xab\xd1\x6e\ \x01\x1f\xa6\x69\x4d\x9a\x6e\xd6\xb8\x01\x10\x0e\x52\xbf\x9a\x38\ \xa6\x42\xa1\xeb\x92\xdf\xdf\xa7\x96\x2d\x47\x65\xa7\x5d\xf9\x65\ \x60\xd7\x61\xc9\x4c\xbb\x68\x57\x16\x6e\x01\xd1\x04\xa8\x19\xb9\ \xaa\x0e\x38\xd2\x06\x7c\x56\x3a\x19\x20\xfe\xa4\x29\x04\x7c\xd9\ \x0c\x64\xd5\x32\xd3\x2e\x20\x8e\x80\x05\xcf\x84\xc5\xd3\xee\xfe\ \x29\x01\x5b\x52\xb5\xa6\x42\x3a\x4e\xaf\x66\x74\x2c\xd3\xbe\x92\ \x5b\x02\x0e\x66\x71\x8a\xb2\xce\x73\x4f\x74\x80\x86\x25\x7d\x27\ \x51\x6d\xe4\x36\x6f\xa1\xdd\x03\x53\x01\x94\x31\x99\x92\x39\xab\ \x1e\x48\xf9\x1a\x38\xc4\xe8\x12\x8e\x4d\x58\xb4\x19\xe2\xee\x10\ \xce\x8e\xb0\x7c\xe9\x35\x40\x4e\xa3\x00\xd8\x1c\x41\xca\x3d\x7a\ \xda\xac\x74\xfd\xf4\x6e\x79\xe1\xc4\xaa\x24\x73\x76\x9d\xd5\x9e\ \xce\xa8\x92\x09\x48\x13\x59\x34\xda\x1c\x9b\x99\x95\x6b\xd9\xf6\ \x32\xa3\x52\xd6\x3c\x9b\xe5\xc9\xa1\xca\xae\x00\x1b\x09\xf4\xf1\ \x5f\xa3\xfe\x7b\x1f\xee\x9c\x74\xe1\x6c\xfa\x5c\x6b\x3a\xc7\x1f\ \x9c\xc4\xd5\x57\x73\x83\xf3\x38\xa2\x2a\x36\x2f\xb7\x85\x8d\xe6\ \x7b\x25\x37\xfb\xdc\x75\xa7\x2a\xb8\x78\xc7\x09\x28\xa1\x8a\xda\ \xac\x76\xe1\xfc\x89\x65\x51\x55\x74\xbc\x9a\xf2\x9a\x34\xa6\xe2\ \xc2\x89\xd8\x91\x6f\x48\x62\xd3\x6e\x47\x6f\x27\xa8\x8d\xbc\x47\ \x5a\xe7\xfb\xad\x2a\xa4\x63\xf1\x27\x9d\xe5\x8a\xde\xed\x85\xb3\ \x24\xf4\xad\x0c\x51\x6f\x4f\x34\x67\xfe\x53\xb1\x74\xf8\x02\xe5\ \x23\x1a\x3b\xde\xb9\xdb\x0b\x87\x7a\x50\x34\xd3\x43\xcd\xa4\xee\ \xfb\xb7\xe3\x29\x37\xf9\xbf\xd4\x5f\x64\xf9\x94\x79\x6f\xb3\xd8\ \x06\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\xca\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x05\x91\x49\x44\x41\x54\x78\x5e\x8d\x95\x0b\x6c\x54\xc7\ \x15\x86\xbf\x99\xfb\xd8\xf5\x9a\xf5\xda\x06\xf3\x30\x8e\x1d\x13\ \x48\xf3\xb0\xdc\xd0\x84\xf4\x21\x4a\xd4\x9a\x10\x48\x1c\xea\xa4\ \x69\xe2\x84\x20\x28\x88\x47\x53\x09\x0a\x69\x52\x29\xa9\x2a\x48\ \x48\xab\x4a\x81\x54\x51\xc5\x2b\x85\xd0\x16\xb7\x29\xb8\x51\x12\ \x90\x5c\x2b\x34\xcd\x8b\x50\x4a\x95\xb5\xe5\x26\xc6\x50\x82\xed\ \xae\xb7\x36\xf5\xf3\x81\xbd\x8f\xbb\x73\xba\x8a\x56\xb8\x1b\x5a\ \xe8\x2f\xfd\x73\x74\x66\xa4\xf3\xcf\x3f\x47\xa3\xa3\x44\x84\x0c\ \xd8\xb7\x4e\x2d\xfd\x43\x98\x79\x6d\x11\x66\x8e\xc7\xf1\x23\x28\ \x40\x50\x08\xa0\xf2\x72\x29\xbc\xa9\x94\xf8\xd7\x6e\x66\x27\x9a\ \xe6\x55\xbb\xa4\x9b\xab\x41\x44\x3e\xe5\xee\xd5\x3c\xd2\x52\x77\ \xdb\xd0\xa6\x07\x27\x27\xe4\x7f\x20\xe6\x89\x3c\xfd\xed\x42\xf9\ \xdb\x1e\xf5\xaf\x23\x4f\x13\xdd\xfa\x00\x65\x22\xc2\x95\x68\x93\ \x81\xf1\x58\x59\x71\xfb\xbc\xbc\xe2\x93\xed\x74\x75\x75\x60\x3b\ \x01\x3c\x2f\x89\xa0\xd0\xca\x22\x85\xe2\xa7\x5b\x36\x53\x22\xfd\ \x9c\xe9\x20\x77\x74\x90\x84\x5f\xb3\x65\xe7\x0a\xd5\xa5\xe1\x5a\ \x81\x5c\xdb\x66\xff\x9a\x7d\x72\x84\x09\xa0\xc9\x40\x0c\x53\xb1\ \x87\xc0\xeb\xa5\xb3\xa3\x9d\xa6\x70\x33\xe1\x70\x13\xcd\x69\x7e\ \x18\x0e\xf3\xde\xe1\x2d\xcc\xcd\x0f\x53\x3e\xeb\x56\x42\xe5\xdf\ \xf2\xcd\xbe\x63\x63\xa8\xfa\xb1\xdd\x0f\xdd\xfb\x64\xc3\xa6\x65\ \xcf\x9f\xad\x5d\xbb\x3f\x51\x73\x73\xd5\xda\x03\x3b\x96\xa9\xef\ \xfe\xd7\x27\xfa\xf9\x23\x34\xc9\xe9\x6f\xca\x73\x1b\x02\xf2\xe2\ \x8b\x2f\xc8\xea\xd5\xdf\x91\xda\x87\x97\xc9\x3d\xd5\x35\xb2\x70\ \xd1\xbd\xf2\x54\x8d\x92\xc4\xd8\x90\x5c\x8e\xb8\x24\x92\x63\x97\ \xb2\x86\x9f\x2d\x8a\xee\x78\x94\x8d\x99\xba\x13\x0e\x8c\x42\xa5\ \x8c\x61\x4e\x65\x25\xc7\x8e\xd5\xf3\x51\xcb\x31\x22\x1d\x27\x19\ \xe8\x6d\x21\xe0\x6f\xc3\xe7\x0a\x82\x07\x24\x41\x06\xc0\xf4\x83\ \xe9\x25\x3e\x36\x40\xff\x85\x4e\xbc\x94\x07\xc0\xe2\x8d\x8d\x33\ \x5c\x8b\xe5\x4a\x29\x07\x98\xe8\x81\x32\x08\x28\xe6\x55\xe4\x31\ \x9a\xd0\x8c\x8c\xd8\xd8\xb6\x85\x42\x51\x5e\x1e\xe2\xc2\xf1\x0e\ \x14\x49\x60\x0c\x52\x17\x41\x04\x94\x22\x11\x1b\x66\xa0\xaf\x1b\ \x74\x80\xbc\xfc\xa9\x38\x8e\x8f\x50\xf1\x75\x45\x70\x6e\x1a\x10\ \xb9\x24\x20\x1a\x2c\x5b\x31\xa5\xc8\xc7\xdd\x8b\x4b\x89\x5d\x4c\ \x90\xf0\x52\x68\xad\xc8\xc9\xb1\x39\xd1\xec\x64\xec\xa6\x80\x18\ \x68\x0b\xc4\x43\x29\x43\xd2\x8b\xd3\xdc\xf4\x5e\x3a\x5a\x14\x4e\ \x2e\x21\xda\x71\x2e\x09\xe4\x65\x3b\x50\x08\x8e\xc6\xef\x6a\xb4\ \xed\x10\xf0\x6b\x40\xb0\x2d\x85\xdf\x67\xa5\x73\x0b\xcb\xd1\x80\ \x02\xdb\x01\x49\x81\xd1\xd8\x96\xa4\xcf\x40\x52\xe3\xc4\x63\x1e\ \x29\xaf\x88\xd8\x38\x06\xb0\xb2\x04\x04\x40\x2b\x6c\x5b\x61\x05\ \x1c\x94\xd2\x1c\x79\xe3\x0c\xaf\x1d\x6d\x65\x6c\x2c\x46\x57\xeb\ \x10\xbf\x09\xaf\x40\x69\x43\x61\x41\x90\xfb\x6b\xee\x64\xc1\xc2\ \xaf\x60\xeb\x04\xf9\xa1\x00\xe5\xa5\x93\x89\x7b\x3e\x82\xa1\xe9\ \x04\x5c\x3c\xc0\x7c\xd6\x01\x68\xf5\x29\x95\xa3\x89\xb4\x0f\x70\ \xf0\xe8\x38\x0f\x6f\xfe\x0b\xa7\x3a\x83\xcc\x1c\x18\xc6\x32\x2e\ \xae\x11\xe6\x96\x5e\xe0\xd5\xd7\x7f\xc0\x82\x45\x5f\xc4\x76\x85\ \xe0\x24\x07\x9f\x5b\x80\x51\x41\x7c\x39\xd3\xf0\xbb\x18\x20\x99\ \x25\x60\x5b\x08\xd6\xc4\xcf\xc8\x0d\x38\x78\xf1\x51\xfa\x47\x87\ \x69\xe8\x2a\xe4\xa3\xd6\xc9\x24\xfa\xc0\x17\x87\x4d\x4b\x82\x74\ \x76\x9e\x07\x46\x41\x3c\x5c\x3b\x85\x63\x81\x4a\x2f\xb8\xb9\xe9\ \x1c\x03\x98\xac\x8f\xe6\xda\x80\x23\x60\x03\x16\x14\x5c\x13\xe4\ \x89\x75\x33\x78\xfd\x99\x5b\xb8\x2d\xe7\x14\x3a\x07\xd0\x10\x57\ \xe0\x79\x43\x04\x73\x73\xc0\x18\x90\x4c\x10\x00\x05\x80\x12\x00\ \xc8\x72\xb0\xb5\x9e\xca\xfe\xa2\x30\x0f\xdc\x57\xcc\xb4\xb2\x11\ \xa2\xd1\x21\xce\xb6\xf5\x30\xbb\x62\x01\x3d\x6e\x11\xe2\x07\x72\ \x40\x01\x96\x0d\x22\x99\xca\x69\x8a\x08\x00\x64\x22\x64\x0b\xa0\ \x94\x7a\x70\xeb\x81\xdd\xd6\x94\xd9\x9f\xe3\xb9\xfd\x3f\x61\xb8\ \xe7\x38\x45\x25\xb3\x28\xbb\x7d\x2d\xd1\xfb\x56\xf2\xe6\x19\xf0\ \x5c\xc8\x9b\x0a\xf6\x18\xe0\x68\x8c\x11\x10\xc1\xa4\x0c\xc6\x98\ \xcc\xcd\x0d\x1a\xb9\x5c\x00\xe8\xee\x6d\xff\x3b\xd7\x57\xd7\x52\ \xb2\xbd\x91\x9e\x9e\x24\xed\x9e\x43\x63\x2f\x44\xbb\xc1\xe7\x87\ \xbb\x3e\x0f\x37\xfc\xf3\x4f\x78\xbe\x59\xcc\x29\x2f\xa3\xf5\x62\ \x02\x8c\x60\xc4\x20\x69\x02\x99\x98\x0d\x0d\x20\x22\xef\xc6\xde\ \x7c\xbe\xf3\x77\xcb\x2b\x09\x1e\xd9\x85\x52\x31\x86\x05\xf2\x7c\ \xf0\xd5\xc2\x38\x8f\x15\x9f\xe1\xa6\x77\x96\xf3\xf1\x6f\x1f\x67\ \xe0\xed\x27\x88\x45\x1a\x99\xff\xe5\x4a\xc4\x4b\x61\x52\x29\x44\ \x24\xe3\x48\x01\xf6\xa5\x56\x64\x35\xf9\x4b\x37\xd0\x77\x78\xcf\ \x17\x78\xeb\xc0\x8f\x71\x5f\xda\x4c\xcd\x89\xed\xac\x6b\xdf\x47\ \xd5\xc7\xcf\xd2\x73\x68\x25\x47\xeb\x0e\xd2\xd0\x70\x88\x6d\x4f\ \xad\xe0\xb5\x5f\x3d\xc3\xd2\xea\xf9\x24\x93\x1e\x06\x0d\xca\x45\ \xd9\x41\x2c\x77\x0a\xe0\x60\x69\x34\xa0\xb2\x9a\x1c\xf7\x50\xf6\ \x94\x20\x47\xf7\x46\xf8\xf3\x07\xbf\xe0\x83\x0f\xa1\x25\x02\x17\ \xc7\x41\x83\xb7\xe6\x4e\x48\xe1\xd8\xa5\xe5\x25\xd4\xa5\x2f\x50\ \x50\x90\x8f\x88\x83\xe5\x4c\x42\xdb\x79\x58\x6e\x88\xe4\x68\xdc\ \x74\xb7\xbd\x3c\x7a\xea\x3c\x9f\x00\x5e\x96\x03\x01\x0b\xaf\x8d\ \x37\x1a\xe1\x9d\x26\xe8\x1f\x24\x31\x33\x48\xdf\xad\x33\xe8\x9c\ \x3f\x9d\x56\xe3\x31\x60\x8c\x83\x31\x2e\x05\x85\x25\x68\x67\x3a\ \x6e\x70\x0e\xda\x2e\x26\x7a\xba\x69\xe8\xc4\xc1\xc7\xff\xf1\xfb\ \x1f\x95\x9f\xdd\xb2\x79\xd5\x5b\x0d\xcd\xd4\x03\x83\xd9\x23\x73\ \x15\x07\xce\xfd\x11\xd9\xba\x8a\xc1\x9d\xeb\xf9\xa4\x6e\x03\xa7\ \xd7\x57\x51\x7f\xf7\x2d\x6c\xcb\xf7\xb3\x64\x7b\x2d\xef\x4b\x2a\ \x2e\x22\xa3\x22\xa6\x4f\x06\x23\x27\xc7\xff\x5a\xbf\x21\xf2\xea\ \x0f\x4b\xda\x7e\xbd\x9e\xd6\xaa\x1b\xd9\x9e\x6b\xf3\x0d\xe0\x46\ \xa0\x00\xd0\x22\x32\x21\xb0\x6f\x1d\x5f\xdf\xbb\x86\x43\xdf\xbf\ \x87\x5d\xf3\x66\xf1\x64\x51\x90\x25\xc0\x6c\x20\x5f\x44\x78\x79\ \x2d\xbf\x4c\x8c\x74\x49\xdf\xf9\xe3\xb1\xb7\xf7\x2c\xed\x78\xe5\ \x7b\x56\xdb\xe2\x0a\x5e\x2a\x2b\x60\x25\x30\x17\x98\x0e\xe4\x7c\ \x76\x26\x73\xd9\x06\x84\x80\x7c\xc0\xf9\xcf\xfd\x57\x36\xb0\x70\ \xef\x6a\xea\x9f\xbd\x9f\xc3\xf3\xe7\xb0\x2d\xe0\x50\x0d\x5c\x07\ \x4c\xba\xd2\xd0\x57\x99\xa2\xff\x37\x94\x52\x21\xc0\x01\x46\x44\ \x24\xce\x55\xf0\x6f\x03\xe2\xf6\xe2\xcc\x69\x65\x93\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xb8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x4a\x49\x44\x41\x54\x48\xc7\xc5\ \x56\x61\x4c\x5b\x65\x14\xfd\x6c\x32\xd3\x69\x20\x0e\x65\x24\x4b\ \x37\x56\x5a\x8a\xb3\xd2\x4e\xa5\x42\x71\x43\xc0\xb5\x94\x10\xe6\ \x02\x42\x13\xaa\x63\xa3\x63\x63\xd9\x18\x59\xb7\xa6\x01\xa3\x08\ \x88\x61\x0b\x29\xb2\xcd\x29\x66\xba\x81\x84\xda\x8a\x89\xd4\x00\ \x29\x43\x33\x1c\x20\xa5\x50\xd7\x6a\x57\x4a\x23\xc4\x6c\x51\x59\ \x94\x31\xbb\xf8\xc3\x6e\xbb\xde\xbb\xbc\x45\xd4\x15\x12\x33\xb5\ \xc9\xc9\x4b\x5f\xdf\xbd\xe7\xfb\xce\x3d\xe7\x7d\x65\x00\xc0\xfe\ \x4d\xb0\xff\x8d\x00\x3f\x31\x08\x85\x4a\xa5\x32\x28\x14\x8a\x23\ \x3c\x1e\xef\x65\xfc\xbe\x1f\x51\x8c\x50\x22\xe2\x10\xbc\x7f\x44\ \x80\x9f\x8d\x52\xa9\xb4\xb2\xae\xae\xee\xe3\xfe\xfe\xfe\x4b\x1e\ \x8f\xe7\x46\x30\x18\xbc\x35\x3e\x3e\x7e\xd5\x66\xb3\xf9\x4c\x26\ \x93\x5d\x22\x91\x18\x39\xa2\xfb\x97\x22\xba\x5b\xf3\xf4\xb2\xb2\ \xb2\x77\x1d\x0e\x87\x3f\x10\x08\x80\xd3\xe9\x84\xb6\xb6\x36\x30\ \x9b\xcd\xd0\xd1\xd1\x01\x13\x13\x13\xe0\xf5\x7a\xc1\x62\xb1\x04\ \x0b\x0b\x0b\x3b\xf1\xf9\x1c\xc4\xca\x48\x24\x7f\x5b\x39\x35\x1f\ \x19\x1d\xfd\xde\xed\x76\x83\xe9\x95\xda\xdf\xf2\xf7\x1b\xaf\x15\ \x34\x1c\x0b\x6b\xdf\xb6\xc2\xd6\xba\x37\x43\xbb\x1b\xcd\x3f\x77\ \x5a\x3f\x0a\xe3\x6e\xc0\x6a\xb3\x5d\xd1\x68\x34\x16\xac\xcb\x8c\ \x44\xf2\x27\xcd\x49\x16\x5a\x39\x35\x2f\x3d\x5c\x73\xf5\xe9\x43\ \xaf\x4f\xa5\x34\x77\x06\x59\x4c\x1a\xb0\xd8\xcd\xc0\x56\x67\x82\ \xac\xd9\x32\xf3\xc2\x89\xae\xe9\xf6\xbe\xb3\x0b\x93\x93\x93\x50\ \x5f\x5f\x3f\x23\x10\x08\xea\xb0\x5e\x4c\x72\x2d\x45\xa0\x20\xcd\ \x49\x16\x5a\x39\x35\x97\x1f\xfd\xc0\xa9\x3e\xd5\xe7\x79\x76\x5b\ \x25\x3c\x5f\x56\x0b\xcf\x14\x18\x20\xf3\xcc\xe0\xcc\xa3\x6d\x03\ \x5f\x96\x7f\x78\xd6\x37\x3c\x3e\x11\xee\xee\xee\x86\xdc\xdc\xdc\ \x41\xac\xcf\x47\x44\xfd\x75\x17\x8b\x09\x0a\xec\x76\xbb\x97\x34\ \xd7\x54\x1c\xfc\x51\xd4\xf0\xfe\x68\x71\xa7\xe3\x2b\xe3\x39\x9f\ \xf7\xc5\x7d\x47\x60\xbb\xa1\x15\x4a\x4d\x27\xe1\xc0\xc8\xcc\x45\ \x79\x8f\xff\xb3\x64\xab\x7b\xe0\xd4\xb9\xf1\x1f\x48\xaa\x92\x92\ \x92\x20\xd6\x57\x21\x62\x11\x2b\x22\x11\xec\x45\x69\xe6\x69\xa0\ \x4a\x43\xfd\x34\x8b\x51\xc2\xc6\xac\x72\x78\xae\xa8\x1a\xb6\xe8\ \x5e\x83\xac\x97\x1a\x21\xa7\xbc\x19\x32\x74\x0d\xc0\xe2\x0b\x81\ \xad\xc9\x83\xc3\x03\x6e\xaf\xcf\xe7\x83\x8a\x8a\x8a\x6b\x58\xff\ \x06\x42\x80\xe0\x47\x22\x30\xa1\x15\x6f\x92\x5b\xe4\xb5\x6f\xb9\ \x59\x6c\x06\xac\x4c\x2a\x86\x98\x94\xdd\xb0\x3e\xdb\x00\xa2\x1c\ \x13\xac\xdb\x62\x84\x28\xc5\x5e\x60\x49\xdb\x81\x25\xea\x60\x6b\ \xef\xd7\xe7\xa7\xa6\xa6\x88\xe0\x26\xd6\x1f\x47\x08\x11\x0f\x44\ \x22\xd8\xe7\x72\xb9\xe6\xc9\x8a\xaa\x57\xcd\xd3\x34\x50\x96\x50\ \x04\x6c\xc3\x4e\x84\xfe\x0f\x3c\x86\x90\xd2\x75\x27\xd4\x8c\x04\ \x2f\xf8\xfd\x7e\xd0\x6a\xb5\xb4\x83\xa3\x88\x04\xc4\x83\x91\x08\ \x8a\x29\x44\xe4\xf3\x8a\xa6\xd6\xb9\xa4\x63\x3d\x43\xc2\xf7\xbe\ \x19\x13\xda\x7e\x1a\x63\x22\x5c\xb1\x04\x89\x24\x7a\x10\xdb\x43\ \xc3\x8a\xb1\x5f\x7a\x9e\x1a\x9a\xfb\xd4\xea\xf9\xf6\x32\x39\x09\ \xd3\x4e\x33\xa8\x5e\x6e\x07\x4a\x4a\x28\x85\x88\x7c\x5e\x7c\xd2\ \x7a\x31\xfe\x84\xcb\xb5\xf6\xf4\xe5\x49\xb6\x06\x35\x17\x92\x2c\ \x7a\x10\x7d\x12\x1a\x4d\x19\x99\xb7\x1b\xc7\x66\xdd\x9e\xa9\x40\ \xb8\xa5\xa5\x05\x64\x32\xd9\x10\xd6\xef\x58\x6e\x06\x71\x14\x7f\ \x4a\x28\x39\xa3\xbd\x6f\x70\x41\xdf\xf5\xb9\x3f\xb1\xfd\xc2\x17\ \x2c\x2e\x0f\xd8\x7a\xdd\xed\x5d\x24\x3b\xe6\x1c\xd4\xbc\xd7\xed\ \xfb\x75\x78\x78\x18\xd4\x6a\xf5\x42\x74\x74\xf4\x19\xac\xdf\xbc\ \x9c\x8b\x78\xb4\x0b\x8a\x3f\x25\x94\xb6\x4e\x3e\x27\x2b\x92\x5b\ \x68\xa0\xa4\x39\xc9\xe2\xf1\x07\xc2\xd4\x5c\xbf\x6b\xd7\xad\xf4\ \xf4\xf4\xeb\x58\xd7\x8b\xa0\xb0\xc9\x23\xe6\x80\x23\xa1\x17\x57\ \x0e\xc5\x9f\x12\x4a\x21\xa2\xdd\x90\x15\xc9\x2d\x34\x50\x22\x26\ \x59\xf0\x99\x05\xa5\x52\x19\x4a\x4d\x4d\x85\xfc\x34\xe1\xf5\x83\ \xdb\x36\x5c\xc1\xda\x03\x94\xe8\xa5\x08\x78\xdc\x3b\x25\x93\xe2\ \x4f\x09\xa5\x10\x91\xcf\xc9\x8a\xe4\x16\x1a\x28\x69\x8e\xb2\x9c\ \xe6\xf3\xf9\xce\xac\xc7\xe3\x6f\xd4\xe4\x25\xc2\x3b\x7b\x52\xa0\ \x56\x27\xbb\x44\x6e\x5c\x4c\x72\xb7\xb7\xe9\x1d\x12\x31\x17\xff\ \x2a\x2e\x44\xc7\x39\x2b\x56\x73\x03\xcd\xb8\x8f\xb1\xd1\x4d\x6b\ \x57\x85\x2a\x37\xad\x83\xa6\x22\x29\x74\x54\xa5\x41\xe3\x8e\x27\ \x66\x17\x93\x44\x3a\x0f\x78\x9c\x5c\x51\xdc\xe0\x04\x9c\x05\x13\ \xb8\xab\x80\xbb\x2f\x47\x92\xf3\xd9\xa2\x47\x42\xc6\x6c\x21\x98\ \x4b\x92\xa1\xeb\x50\x3a\x34\xe9\x9f\xbc\x4d\xb2\xec\x91\xc9\x11\ \xad\x20\xeb\x91\xbf\x29\x44\xdc\x95\xcf\xdd\xa7\xdf\xc5\x48\xd2\ \xaf\x12\xae\xfa\xae\x5a\x2d\x82\xd6\x52\x39\xec\xd1\x88\x7d\x78\ \x5f\x7b\xcf\xce\x64\x8e\xa4\x5b\x23\x7e\x78\x36\x2f\x79\x35\x35\ \x2f\x47\x3c\x74\x4f\x0f\x7d\x6e\x66\xa4\xbd\xf6\x4e\xf3\xff\xe4\ \x5f\xc5\xef\x49\x57\xd6\xb7\x03\x79\xba\xe9\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\xb7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x49\x49\x44\x41\x54\x48\xc7\xed\ \x55\xdb\x6e\x52\x51\x10\xe5\xd3\xfc\x0c\x3f\xa5\x4f\xc6\x44\x1f\ \xf4\xd5\xa8\xb1\x1f\xa0\xc6\x07\x8d\x26\x48\xbc\x00\x5a\x2e\xa5\ \x94\x03\xf4\x42\xb9\x73\xe0\x70\xbf\xb4\x54\x9a\xc6\x44\x38\x7b\ \x2f\xd7\xec\x4d\x69\x5f\x79\xa0\x4f\x3c\x4c\x66\xce\x9a\x99\x35\ \x27\xb3\x60\x4e\xe0\xc1\xc3\xc7\x3b\x34\x67\x43\xb6\x13\x90\x20\ \xd5\x03\xbe\x57\x80\x50\x51\x21\x58\xf4\xf1\xe5\x64\x8e\x70\x5d\ \x13\x53\x88\x34\x80\xa8\xab\x11\xf3\x40\xcc\x5a\xa8\xac\x58\xbb\ \x30\x71\xd4\xb5\xbd\x3f\x6b\xc0\x8f\xea\x4d\xac\x11\xef\x68\x08\ \xb7\x19\x70\x38\xb4\xc9\xa7\xdf\x94\x69\x08\xd7\x15\x9e\x47\x6d\ \x61\xa8\xa4\xf0\x84\xb8\x90\xc9\xb3\xe0\x5f\xcf\xe6\x88\xb5\x80\ \x47\xc1\x39\x31\x65\x6a\x9e\x85\x81\xe0\x12\x17\x9e\x74\x1f\xab\ \x01\x9b\x5d\x11\x80\x8d\x5a\xe0\x5e\x44\x3e\xe4\xbe\xc2\x15\x1f\ \xfb\x1d\xe0\x57\xdd\xa7\x69\x24\x3d\x18\x2f\x16\xe5\x9e\x63\x4d\ \xb5\xf4\xd4\xa2\xbc\x30\x7e\xcf\x95\x9c\x6f\xf0\x3d\x6a\x97\xf0\ \x60\xbc\xf0\x64\x87\xb7\x1a\x38\xb9\xa1\x90\x29\xbc\xf8\xed\x23\ \xd5\x06\xd2\xfc\x55\xed\xee\x03\x49\x0a\x16\xae\x2e\xf0\x32\xc6\ \x41\x24\x8a\x91\xf0\x75\xc2\xd6\x66\xf8\x52\xaf\xe2\x40\x9c\x83\ \xa4\xe7\x4d\x92\xc4\x9e\x42\x82\xcf\xbb\x29\xe0\x78\xac\xb7\x22\ \xaf\x21\x72\x61\x02\x38\xdc\x7b\x9a\x3b\xcc\x71\xb7\xd9\x9e\x98\ \x46\x61\x4c\x1d\xdc\x05\x0e\x88\x5b\x0c\xc8\x74\xb9\x5f\x6a\x96\ \xeb\x6b\x13\x4b\xde\xe9\x29\x53\x23\xbd\xf9\x01\x75\xa9\xff\x83\ \x70\xae\x44\x2e\x4e\x34\x0e\x9a\x73\xbc\x77\x14\x52\xee\x1c\x79\ \x16\xbe\xcd\xf8\x70\x3a\x0a\x47\x6c\xf8\x5c\x20\x79\x97\x84\x6d\ \x85\x0f\x39\xbd\xc2\x3f\x1e\x13\xf3\x7c\x63\x9f\x4e\x80\xd3\x91\ \xb5\x77\x8e\x8f\xd2\xf9\x56\xe4\x75\x44\x6e\x4c\x35\x8a\x43\x85\ \xea\x39\x8c\xaf\x50\x20\x89\xcb\xfc\xb3\x48\x5c\x1a\x69\x13\xbb\ \x97\x36\x5f\x62\x7c\x36\xf0\x71\xda\x5f\x98\x5c\x65\x22\x79\x9b\ \x93\xba\x2a\xf7\xef\xcd\xee\x88\xdc\xbe\x22\xd9\x88\x67\x80\xb7\ \xdf\x9d\x02\x95\x31\xcf\x42\xd5\xc6\x35\x16\x87\x79\xff\x05\x6b\ \x72\x80\xe0\x35\x0e\xaf\x5f\x00\x11\x7e\x2f\xca\xf2\x62\x7c\x89\ \x48\x55\xa3\x61\xea\x95\x39\x2f\xad\x3f\xdb\x73\xbd\x8e\xc8\xa3\ \xbf\x40\xf3\x42\xa1\xcd\xbd\x79\x97\xda\xfa\xa9\x78\x8d\x0e\xe3\ \xd6\x54\xa1\x33\xd3\xab\x9c\x60\x52\xdf\x24\xde\x9d\x49\xad\xba\ \xed\x61\x8d\xf8\xfe\xd5\x9d\x6f\xf2\xe0\x5a\x9b\xa2\x6c\xc7\x12\ \x0a\x71\xae\x6b\x89\x04\x3f\xe2\x89\xb8\x69\xcc\x2f\x63\x19\x9a\ \x6d\xdb\xfa\x2e\x4d\xe2\xde\xcc\xe6\x72\xfc\xd7\x0f\xae\xef\x49\ \xe4\xff\xfb\x02\x27\xea\xf7\xb1\x15\x44\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x0c\ \x00\x19\xf2\x3c\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x08\ \x05\xe2\x59\x27\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x03\ \x00\x00\x7d\xfe\ \x00\x77\ \x00\x69\x00\x6e\ \x00\x03\ \x00\x00\x73\x73\ \x00\x6d\ \x00\x61\x00\x63\ \x00\x0a\ \x02\x6b\x3c\x87\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x33\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x06\xc8\x40\x47\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x72\x00\x65\x00\x64\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0f\x47\x85\x87\ \x00\x65\ \x00\x78\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x70\x00\x64\x00\x66\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x08\x68\x27\x47\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x06\x52\xd9\xe7\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x70\x00\x72\x00\x69\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0b\x0e\x42\x07\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x63\x00\x6f\x00\x70\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0f\x5a\x2e\x27\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x75\x00\x6e\x00\x64\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x09\xc8\x40\xc7\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x75\x00\x6e\x00\x64\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x05\x68\x0e\x67\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x73\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x0a\x10\x36\x07\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x63\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0b\x21\x0f\x87\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x6f\x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x03\x30\x79\x47\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x63\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x07\xc5\x9b\xc7\ \x00\x7a\ \x00\x6f\x00\x6f\x00\x6d\x00\x6f\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x0b\x04\x5d\xe7\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x69\x00\x74\x00\x61\x00\x6c\x00\x69\x00\x63\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x04\x14\x52\xc7\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x6e\x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x04\x8e\xa1\x07\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x6c\x00\x65\x00\x66\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0d\x7e\xa2\x67\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x62\x00\x6f\x00\x6c\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0d\xc9\x3b\xe7\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x70\x00\x61\x00\x73\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x04\x11\x7b\x87\ \x00\x7a\ \x00\x6f\x00\x6f\x00\x6d\x00\x69\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\xba\x29\x27\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x6a\x00\x75\x00\x73\x00\x74\x00\x69\x00\x66\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x1e\x00\x02\x00\x00\x00\x04\x00\x00\x00\x03\ \x00\x00\x00\x52\x00\x02\x00\x00\x00\x13\x00\x00\x00\x1a\ \x00\x00\x00\x46\x00\x02\x00\x00\x00\x13\x00\x00\x00\x07\ \x00\x00\x00\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x95\ \x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x19\ \x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x00\xd8\x5a\ \x00\x00\x01\xaa\x00\x00\x00\x00\x00\x01\x00\x00\xb9\x2f\ \x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x00\xd3\x9e\ \x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x00\xc3\xb5\ \x00\x00\x02\x26\x00\x00\x00\x00\x00\x01\x00\x00\xc6\xb9\ \x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\xa6\x88\ \x00\x00\x00\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x90\xe8\ \x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x83\x19\ \x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xbb\xa6\ \x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x8e\x3f\ \x00\x00\x01\x34\x00\x00\x00\x00\x00\x01\x00\x00\x9f\x9c\ \x00\x00\x01\x70\x00\x00\x00\x00\x00\x01\x00\x00\xab\x41\ \x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x00\xc0\x74\ \x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x96\x9c\ \x00\x00\x01\x8c\x00\x00\x00\x00\x00\x01\x00\x00\xb2\xad\ \x00\x00\x02\x44\x00\x00\x00\x00\x00\x01\x00\x00\xc9\x5e\ \x00\x00\x02\x62\x00\x00\x00\x00\x00\x01\x00\x00\xcd\xd0\ \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x8a\x18\ \x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00\x9b\xcd\ \x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x7e\x2c\ \x00\x00\x01\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x4f\xc2\ \x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x00\x77\x88\ \x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x60\x54\ \x00\x00\x02\x26\x00\x00\x00\x00\x00\x01\x00\x00\x64\xec\ \x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\x3c\xa0\ \x00\x00\x00\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x23\x3c\ \x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x12\x1b\ \x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x55\x42\ \x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x1d\xba\ \x00\x00\x01\x34\x00\x00\x00\x00\x00\x01\x00\x00\x35\xca\ \x00\x00\x01\x70\x00\x00\x00\x00\x00\x01\x00\x00\x41\x5a\ \x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x5b\xc4\ \x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x67\ \x00\x00\x01\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x47\x46\ \x00\x00\x02\x44\x00\x00\x00\x00\x00\x01\x00\x00\x69\xc3\ \x00\x00\x02\x62\x00\x00\x00\x00\x00\x01\x00\x00\x70\x12\ \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x18\xf7\ \x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00\x31\x27\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/demos/textedit/textedit_rc3.py0000644000076500000240000072022612536324427023517 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:29:00 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x0a\x15\ \x00\ \x00\x38\x1d\x78\x9c\xdd\x5b\x5b\x73\xdb\xb8\x15\x7e\xcf\xaf\xc0\ \xb0\xd3\xc9\x43\x2d\x59\xb6\xb3\xd9\x8d\x6c\x79\x26\x63\x27\xbb\ \x99\x49\x9b\xcd\x46\x99\x9d\xf6\x0d\x02\x21\x11\x6b\x90\xa0\x01\ \xd0\x0a\xb7\xd3\xff\xde\x73\x0e\x40\x52\xb2\xe4\x58\x49\x9d\x98\ \x6a\x1e\x1c\x89\xc2\xe5\x5c\x3e\x9c\x1b\x0e\xcf\x32\x9f\xeb\xf3\ \xb3\x4c\xf2\xf4\xfc\x2c\x97\x9e\xb3\x82\xe7\x72\x92\x5c\x5b\x25\ \x32\x2f\x3f\xf9\x84\x09\x53\x78\x59\xf8\x49\x72\x94\xb0\xc3\x38\ \x28\xf3\xbe\x1c\xc8\xeb\x4a\xdd\x4c\x92\x8b\xf0\xfb\x60\x5a\x97\ \x72\x65\x34\x4e\x3e\xc4\xd5\x4f\x99\xc8\xb8\x75\xd2\x4f\x3e\x4e\ \x5f\x0f\x7e\xa2\x45\xbc\xf2\x5a\x9e\xbf\x9f\xc2\x98\x57\xa9\xf2\ \xec\x52\xe6\xa6\x70\xde\x72\xaf\x4c\x71\x76\x18\x7e\x3e\x73\xbe\ \xd6\x92\x79\x58\x37\x2e\x27\x9c\x4b\xce\x9f\x94\x07\x4c\x2b\xf6\ \x6f\xb6\xcc\x94\x97\x03\x57\x72\x21\xc7\xac\xb4\x72\xb0\xb4\xbc\ \x3c\x65\xff\x79\x72\x76\x48\x33\xcf\xcf\x0e\x03\x5f\x33\x93\xd6\ \x8c\x1e\x4d\x12\x36\x07\x02\x07\x4e\xfd\x29\xc7\x2f\x4a\x7f\x1a\ \xbe\x2e\xa5\x5a\x64\x7e\xfc\x6c\x34\x8a\x0f\x68\xf0\xb8\x30\x36\ \xe7\x40\x3f\xee\x3d\x48\xa5\x30\x81\x3e\x78\x5e\xc8\x53\x20\xe4\ \xac\x64\x5c\xab\x45\x31\x49\x04\xb0\x2c\x6d\xd2\x6e\x92\x73\xbb\ \x50\xc5\xc0\x9b\x72\x7c\x74\x5c\x7e\x3a\x6d\x1e\xcc\x8c\xf7\x26\ \x5f\x7f\xa6\xe5\xdc\x8f\x47\x2b\x0f\x2c\x11\x43\x4f\x06\xd7\x7e\ \x30\xd3\x46\x5c\x0d\x54\x91\xc2\x1e\xe3\x51\xa4\xa6\xf9\x0a\x83\ \x12\x10\x54\xc9\x8b\x2d\x0c\x1e\x8f\x6e\x73\xf8\x1c\x38\x4c\x3a\ \xb9\x83\xa0\x60\x26\xc8\xa9\x5c\x65\xe6\x8f\xca\x79\x35\xaf\xfb\ \xc6\xcd\xd1\x11\x70\x93\x9c\x4f\x33\xc9\x3a\xe0\x2c\x55\xba\x90\ \x9e\x29\xc7\x60\x0e\x4f\x6f\x78\x21\x64\xca\x24\xfc\x64\x2c\xf3\ \x19\xf7\xcc\x55\x65\x69\xac\x77\xb0\x12\x68\xd3\x7b\xf8\x19\xb1\ \x4d\x1b\x0f\xd9\x1b\xcf\x04\xcc\x9c\x49\x56\x39\xf8\xc5\x1b\x96\ \x2a\x57\x6a\x5e\xb3\x5f\xa6\x7f\x7f\x0b\x8b\xa6\xcc\xf8\x4c\xda\ \x30\x27\x35\xa2\xca\x81\xd2\xb8\x96\x83\xf9\xa8\xf7\x82\x6b\x5d\ \x1f\xac\x50\x05\x6b\x39\xd8\x3d\x12\x7a\xd9\xcc\x12\x9a\x3b\x47\ \x7b\x48\x27\xac\x82\x4d\x41\x82\x19\x0d\xcc\x40\x4a\x20\xbb\x1b\ \xa9\x81\x73\x5b\x09\x5f\x59\xc9\xcc\x9c\x49\xbe\xba\x2d\x92\x83\ \xa3\xb5\x59\xc6\xc1\x91\x29\x55\x2c\x70\x74\xc9\x2d\x5f\xc0\x21\ \xc8\xdc\xb0\x87\xaa\xdd\xd4\xe5\x9b\x39\xab\x4d\xc5\x38\xf0\x7a\ \xa3\xe4\x12\xb9\xf0\x19\xe8\xb2\x65\x58\x15\xc4\xef\x36\x48\xd0\ \x09\x55\x1e\x18\x13\xb0\x12\xee\x25\x3b\x44\x83\x84\x73\x73\x40\ \x8b\xa3\x7a\xf1\x97\x5b\x2b\x83\x16\xe4\xa7\x52\x1b\xd8\xfa\xbd\ \x7f\xea\x3a\x4c\xd0\x60\xa4\x64\x2e\x39\x6a\x01\x94\xfc\x3b\xe8\ \x87\xdf\x48\xa0\x46\xe8\x2a\x05\x98\x38\x93\x4b\xb0\x74\x39\xae\ \xe4\x90\x48\x52\x13\x28\x00\x89\x9d\x1b\x0d\xfa\xc1\x15\x9c\x14\ \x68\x2f\x48\xe5\xb2\x10\xa6\x02\xed\x48\x22\x2a\xec\x2e\xad\xc2\ \x15\x86\x8c\x35\x6a\xda\xa6\x96\xe7\xdf\x51\x2d\x3f\x6d\x37\x18\ \x77\x1e\xc9\xe7\xa4\xc6\xd7\x26\x62\xf3\xd7\x06\x7f\xec\x03\x8e\ \x75\x3d\x04\xe1\xbd\xf6\xa5\x3b\xc5\xad\xe5\x68\xd8\xf8\xdc\xc4\ \x2d\x52\x9b\x19\x9d\xee\x32\x35\x39\x3f\xf8\x82\x2d\x6e\x01\x3f\ \x7c\xd8\x75\x1b\x54\xd2\x4e\x5b\xdd\x76\x79\xac\x02\x11\x5a\xad\ \xc8\xf1\xb5\x9f\x77\x64\x8f\x9e\x84\x9f\x5d\xa0\x01\x0f\x65\x63\ \x68\xbf\x4a\xba\x70\xfa\xe0\xec\x8e\xff\x32\x82\x7f\x3f\xce\x61\ \x8f\xbc\xd2\x5e\xd1\xc3\x9d\xa9\xfa\x9f\x36\xe6\x1c\xb7\x8e\x96\ \x67\xb7\x0d\x87\x8c\x0e\xca\x9c\xe7\x4a\x2b\x70\x10\xae\x02\xa3\ \xc1\x3f\x07\x2f\x1a\x5a\x8f\x9f\x4e\xc1\x4e\xb8\xa7\x1b\x06\x74\ \x0b\xe6\x68\x24\xfb\x87\x5c\xb2\xdf\x4c\xce\x8b\x1d\x25\xf1\x79\ \x58\x34\x54\x5c\x80\x01\x53\xd2\xee\x44\x47\x1c\xbb\xe3\xfe\x08\ \x07\xae\x9d\x69\xfd\x70\xaa\x2c\xd8\x4e\x5d\x0f\xbf\xfe\x60\x44\ \xdf\x02\x10\x13\x92\xec\xb2\xa8\xac\x83\xa0\x00\xac\x35\x67\x56\ \x2e\x00\xd5\x68\xb1\x69\x56\x4a\x78\x3f\x08\xc3\x60\x2d\x6b\xb4\ \x6b\x7c\x8f\x37\x46\xb3\x19\x04\xb0\x10\x6b\x68\x8d\xb1\x6c\xb1\ \xc0\xa7\xb0\xc6\x5c\x03\x91\xcd\xda\x56\x36\x18\xdf\x0f\xdf\xdb\ \xda\x6a\xd7\x44\x40\x5d\x80\x04\x9a\xa0\xd8\x89\xf8\x47\x9f\x08\ \x9e\x13\x29\x18\x10\x2b\x32\x3d\x60\xb4\x7d\xf7\x35\xc4\xbf\xf8\ \x09\x24\x3c\xaf\x20\x1c\x62\x81\x5d\x25\xd3\xe1\x2d\x39\x3c\x66\ \xac\xbc\x29\x86\xfb\x43\x8b\xa9\xad\x83\xd6\x43\x78\x22\x03\x1f\ \x14\x44\x20\x7e\x30\x14\x20\x19\xe1\x21\x82\x70\x01\xd6\xa6\x51\ \x4d\x0c\x6a\x20\x0c\x80\xf8\xc1\x2c\x3b\x69\x82\xd5\x33\x95\x8f\ \x50\x6a\x43\x35\xd6\x27\xbc\xdc\xe3\xf3\xb7\x9c\xf8\xb7\xca\xf9\ \x3e\x3a\xfc\x1d\x48\xdf\xdd\x03\x3c\xa3\xf1\x97\x6a\x3e\x97\x74\ \xde\xaf\x60\x23\x87\x30\xd0\xc8\x7d\x73\x90\xda\x38\x11\x4c\x48\ \x17\x57\x36\xa1\x27\x04\x94\x1f\x3c\x80\x85\xdb\x94\xcd\xe0\xa8\ \x40\xfa\xb2\x36\xbb\x90\xce\xe3\x49\xaa\x1c\x02\x2e\x6d\xf7\x72\ \x75\x3e\x43\xbb\x04\xc7\x34\xc4\x9b\x21\x03\x88\x51\x27\x2e\x31\ \x66\x6b\xf2\xaf\x74\xc3\x13\xca\x09\x07\x34\x72\x61\x47\xc8\x35\ \x24\xd1\x77\x99\xe4\x6d\x9a\x1a\x7d\x73\xc8\x5d\x2a\x27\x5a\x36\ \x31\x29\x80\xd4\x5f\x09\x4c\xae\x82\x57\x98\xd3\x79\x2a\x63\xea\ \x83\x0c\x31\xe5\x65\xee\xd0\x4b\x68\x05\x5c\x57\x3a\xb0\x4d\x25\ \x03\xa1\xac\xd0\xf2\x4e\x11\x1c\xf7\x52\x04\x17\x91\xe8\x28\x84\ \xcd\xdc\x14\x53\x93\x4a\xb9\x0c\x1e\xfb\xa5\x94\x45\x90\x00\x22\ \x0d\x92\x0e\x69\x57\x64\x83\x86\x65\x53\x2a\xee\xba\x42\xc9\xde\ \x25\x95\x93\x5e\x4a\xe5\x43\x24\x3a\x4a\xa5\xb4\xe6\x46\xa5\x92\ \xfc\x38\x77\xa6\xe0\x33\x8d\x56\x99\x32\x71\xaf\x6e\x64\x14\x95\ \x70\x21\xd6\x24\x91\xde\x02\xc9\xf6\x54\xeb\xfb\xbb\x9f\x77\x36\ \x45\xbf\xb9\x6e\x01\x04\xb0\x85\x6e\x98\x7c\xf0\x2a\x04\xe8\x00\ \x20\xb7\x64\x73\x62\xa9\x0d\x38\xeb\x0c\x12\x96\xda\xb8\x00\x49\ \x6c\x60\x47\x16\x60\x7d\x20\x9a\x97\x01\x31\x21\x0e\x5f\x4a\x1a\ \x06\x63\x42\x29\x82\x82\x46\xfa\xe5\xa5\xe5\x33\x25\x58\x98\xd4\ \x45\x43\x8e\xe7\xc1\xd6\x74\x65\x8a\x71\x74\x5c\xe6\x9b\x9b\x9b\ \xd1\x83\x82\xea\x0d\xc6\x79\x69\x25\x42\xc9\x11\xa0\xf1\xa4\x7f\ \xc0\x7f\xef\xd9\xd4\x20\xe4\x23\x76\x8d\x0e\x82\xa6\xa3\xcc\xbf\ \xb5\x6d\x7b\x58\x79\x03\x2f\x2f\x9d\x03\x32\x79\xe1\x1f\x4c\xde\ \x0f\x4e\xe2\x25\x44\x70\x10\xd3\xda\x48\x61\x23\xeb\x97\xdf\xda\ \x62\x3e\x2c\x23\xaf\x21\x94\x67\xaf\x28\x02\xed\xa9\xa8\x2f\x4c\ \x5e\x9a\x02\x4d\xd6\x4b\x2b\xb0\x90\x4f\xb6\x64\x15\xe6\x7d\x3c\ \x8c\x6f\x83\xf7\xf5\xab\x74\x96\xab\xd0\x68\x2b\xb0\x03\x84\xcd\ \x58\xe6\xa5\xaf\x4f\xbf\xa3\x60\xb7\x24\x38\x77\x97\x16\xbf\x3b\ \x2d\xd3\x18\xa8\x86\x54\x9a\x57\xb0\x23\x38\xec\x10\xe1\x81\xab\ \xb2\xe8\xa3\x66\xe4\x0f\x55\xac\x0c\xa7\x29\x66\x94\x56\xe6\xe6\ \x46\xb6\xc1\xde\x4e\x29\x1b\x4c\xc5\xf8\xb9\x90\xcb\xb5\x3a\x2c\ \x25\x70\x33\x5c\x8d\x08\x69\x16\xc7\xa1\xf2\x53\x08\xaf\x68\x9f\ \x26\x71\xc3\xf1\x81\x2a\x17\x13\xb6\x8d\x7c\xed\xff\x48\xfd\x8f\ \x90\x6c\x7f\x2e\x31\x7b\x93\xf3\xc5\x46\x15\xf9\x91\x39\x79\xa0\ \x1c\xf2\x4d\x81\x05\x54\xa6\x88\xc3\x90\xec\xc4\xa8\x4f\xab\x2b\ \x09\xb8\x04\xf4\x72\x80\xb1\xa5\x1a\x01\x85\x7b\x5d\x68\xd7\x94\ \xa6\x9a\xeb\x0a\x63\x0f\x42\xcd\x46\xd6\x6c\x0e\x79\x00\x9c\xaf\ \x78\xaf\xe4\x2a\x6b\x4d\x55\xd0\x51\x88\x37\x5e\x61\xc7\xd5\x92\ \x9b\x93\x58\xc8\x0a\xf9\x6a\x1b\xe4\x2d\x79\x8d\xc5\xc9\x50\x18\ \xcb\xf9\x55\x38\x18\x90\x79\xba\x1a\xcf\x86\xa8\xe0\xb1\x30\x65\ \x1d\x02\xc9\x92\x43\xd2\x8a\x93\xf3\x21\xeb\x79\x11\x20\x42\x51\ \xe5\x0b\xe6\xac\x98\x24\xe3\xc3\xa0\x84\x43\x6d\x16\xe6\xe4\x78\ \x58\x16\x0b\xba\xa3\xbe\xd7\xca\x30\x34\x33\x64\x26\x62\x1d\x50\ \xb9\xa0\x4f\x36\xab\x99\x80\x31\x24\x33\x94\x4e\x0a\x56\x81\xca\ \x47\x60\x77\x2c\xa3\x6b\xcb\xa8\x9f\xdc\x40\xec\x4d\x55\x33\x8c\ \xc1\x5b\xa5\xc6\x5a\x65\xb7\x38\xcc\x81\x45\x33\xa3\x49\x93\xa9\ \x59\x16\xec\x43\xa6\xe6\xa1\xea\x14\x2a\x05\x64\xd9\x40\xdb\x4b\ \x76\x25\x6b\x30\x93\xff\x8c\x97\x5f\xf0\xbc\x40\x75\xe1\x26\xa8\ \x30\x58\x6b\x55\x67\x0a\x6f\xd9\x28\x61\x6a\x72\x08\x30\x62\xde\ \x85\xba\xc2\xca\x8d\xd9\x7e\x54\x35\xbf\xd4\xc2\x4c\x29\x9b\xea\ \x39\x6b\x0f\x64\x72\xba\x9b\x2d\x3a\xfc\x96\x4c\x0b\x21\x21\x54\ \x7e\x63\x6a\x79\xd0\x5c\x7c\xad\x5e\x82\xb6\x97\x15\x88\x2f\xca\ \xaa\x8d\xae\x72\xd8\x1d\x48\x80\x19\x04\xda\x95\xbb\x68\xc4\x37\ \x18\x13\x21\xb5\x8e\x99\x26\xd5\x45\x45\x68\xf2\x50\x45\xb8\x8e\ \x8f\x8b\xb8\x0d\x93\xb1\x4f\x1e\xb5\xcf\x44\x92\x42\x21\xb3\xc7\ \x22\x03\xf5\xef\xdc\x2a\xc1\x2f\x55\xea\xb3\x49\xf2\x62\xf4\xd7\ \x24\xe8\xaa\xe4\x02\xd4\x37\x49\x46\xe1\x7b\x19\x82\xa8\x49\xf2\ \x0c\xbb\x5d\xbc\xc5\x3f\xe9\x23\x45\x93\x49\x08\xb8\xce\x0e\x89\ \x82\x47\x24\x63\xcb\xb1\x5b\x3b\x96\x97\x58\x81\x33\x25\x5d\x10\ \x34\xc9\x7b\x8b\xee\xfe\x93\xff\xab\x35\x00\xe5\x3c\xc7\x63\x3c\ \x95\x22\x2b\xd4\x75\x25\xf7\x8c\x87\x9f\xf1\x2c\x62\x5e\xc1\x3e\ \x3a\x70\xb8\xd4\xa4\x33\xe7\x62\x0b\x1b\xf0\xc7\xf6\x00\xda\xf7\ \x31\xf4\x62\x3c\x1a\xb1\x01\x3b\x3a\xc2\xff\xb7\xa9\x02\x4d\x29\ \x3e\x9d\x24\x27\xbb\x36\xa6\x7d\xd7\x02\x1b\x86\x32\xf7\x47\x54\ \x90\x61\xef\xa9\x82\x82\x66\x40\x43\x27\x77\x69\xe8\xd1\x48\xff\ \x48\xd1\xe1\xfd\xc2\xbf\x86\x20\x5f\xae\xe6\xb6\x8f\x4f\xfa\xbb\ \xd9\x1f\x10\xfc\x0e\x8c\x55\x08\xe3\x94\xad\xda\xa6\x7e\x50\xf8\ \x96\xae\x72\x29\x23\xdb\x05\xde\x1b\xe2\xdd\x17\x78\x9f\x44\x78\ \xff\xd0\x3b\x78\xef\x64\x55\xba\xaa\x6e\x90\xff\xb4\x82\x9c\x59\ \x81\x7f\x58\x37\xa2\x10\xdc\x06\x23\x7a\x9c\x3c\x1a\x3f\xaf\x3e\ \x79\x2b\x21\xff\xee\x1f\xd6\x7f\xb7\xa1\x31\xf2\x02\xf2\x22\x93\ \xc7\x16\xbf\xfd\x83\xf2\x0f\x11\xca\x3f\xee\x27\x94\xbb\x12\x74\ \x80\x32\x26\x57\xb1\x0b\x19\x1d\x2d\x0c\xfc\x93\x3e\xdc\x02\x4d\ \xa7\x22\xf8\x83\x69\xc1\xbe\xe4\x30\xfd\xb8\xa9\xbd\xaf\xcc\x4c\ \x09\x70\x2c\x2f\x53\x26\xd5\xd6\xe8\xc2\xe5\x34\x28\xa9\x6b\xf8\ \xed\xca\x3f\x6b\xad\x44\xf8\x60\xad\x83\xbb\x3f\xec\x7f\x79\x61\ \xe5\x17\x00\x11\xf6\x88\x5e\xed\x50\xbe\xed\x53\xd3\x2f\x56\xbc\ \x82\xb3\xa0\x5b\xf3\x58\x0a\x61\x59\xcb\x4e\xdb\x78\xd1\xf6\xf3\ \x1c\xc4\xbe\x7c\x98\x1a\xcb\x25\xb8\x0a\xdd\xbb\x63\x57\x7a\xe1\ \x14\x24\x84\x35\x85\x08\x5f\xdb\xcc\xb8\x7e\x77\xba\x5b\xb3\x69\ \xa7\x01\x2a\x2f\xaf\xdf\xb6\x34\x2d\x06\x4b\x2c\x0e\xc2\x3a\xf4\ \xb6\xc3\x5c\x69\x22\x5d\xe5\xc8\x33\xd5\x83\x41\x04\xb1\x7f\xde\ \xd8\x21\xfb\xa0\x8a\xd8\x4c\xd9\xb5\x35\xcd\xc1\x49\xc9\xa5\xb1\ \x57\x5d\xbf\xf4\x8a\xb0\x42\x43\x06\xbe\x1d\x41\xc5\xe9\xd5\xaa\ \x73\x43\x42\x19\x1c\x5d\x43\xda\xed\x3a\xe3\x7e\xc2\xff\x63\x91\ \x1a\x82\xc5\x6f\x32\x35\xbd\xe4\xe8\x75\xa5\x75\x0b\x6f\x2c\xc6\ \x55\x0d\xc9\x16\x48\x66\xa6\x94\xa1\xf5\xdb\x21\x22\x66\x95\xd2\ \xb1\x4e\xdc\x1d\x95\xe6\x6d\x94\xd0\x0e\x5e\xa3\x19\xdc\x02\x8b\ \x21\x7b\xd7\x2d\x65\xb0\xf9\xb6\x7d\x07\x23\x76\xa8\x94\x5c\x5c\ \xf1\x05\x9d\xb7\x85\xa4\x97\x6d\x60\x1b\x4c\x46\xda\x57\x31\x38\ \xcb\xf1\x45\x0d\x61\x72\x20\x34\x58\xd4\x60\x4d\x25\xe2\x91\xba\ \x62\x32\xea\x74\xb1\x7b\x60\x35\x37\x7d\x48\xbc\x5d\x89\xfd\xa0\ \xc1\x8d\xac\xbe\xab\x42\xc5\x7a\x2b\x9d\x63\x17\xde\xea\xbf\xfd\ \x0b\x47\x90\xb6\xc2\x7d\x4b\x53\xe8\xe7\x7a\xc9\x6b\x07\xea\x13\ \x74\xcd\x40\x32\x81\x28\x17\x18\x81\x40\xb7\x69\x16\x6a\x1c\xcd\ \xed\xb2\x7e\x0c\x17\xf0\x55\x39\x7c\x6f\x0e\xdf\x0a\x7c\xf2\x5f\ \x2d\x31\x7f\x54\ \x00\x00\x02\x78\ \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\x03\x00\x00\x00\x44\xa4\x8a\xc6\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x45\x50\x4c\x54\x45\x00\x00\x00\x01\x01\x01\x05\x06\x04\x0c\x0d\ \x07\x12\x14\x0c\x1f\x26\x09\x2b\x35\x08\x39\x45\x0b\x47\x58\x08\ \x56\x6a\x09\x64\x7c\x0a\x71\x8c\x0e\x7d\x9b\x0e\x86\xa6\x0e\x8d\ \xb1\x0a\x92\xb6\x0b\x95\xb9\x0e\x98\xbe\x0c\x99\xbf\x0c\x9b\xbf\ \x14\x9c\xc3\x0c\xa2\xca\x0c\xaa\xd5\x0c\x45\xb9\x54\x8c\x00\x00\ \x00\x01\x62\x4b\x47\x44\x00\x88\x05\x1d\x48\x00\x00\x00\x09\x70\ \x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\x00\x9a\x9c\x18\ \x00\x00\x00\x07\x74\x49\x4d\x45\x07\xda\x0b\x04\x00\x20\x37\xaa\ \xfa\xb2\x02\x00\x00\x00\x19\x74\x45\x58\x74\x43\x6f\x6d\x6d\x65\ \x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\ \x47\x49\x4d\x50\x57\x81\x0e\x17\x00\x00\x01\x87\x49\x44\x41\x54\ \x38\xcb\x95\x93\x8d\x52\xc4\x20\x0c\x84\x29\x2d\x85\x00\xd7\x1e\ \x98\xf0\xfe\x8f\xea\x06\x4a\xf5\x74\x74\x94\xb9\x9f\x19\xf8\xd8\ \x64\x93\x60\xea\xef\xeb\x69\xfe\x07\x14\x5d\x3f\x03\xcc\xd2\x17\ \x7f\xbe\x72\x03\x05\xa7\x67\xa2\x40\x31\x9f\x22\x75\xea\xbc\x4d\ \xa0\x88\x64\xef\xac\xc1\xb2\x2e\x3c\x84\xcb\x2b\x50\xa4\x84\xd5\ \xcc\xb5\x6c\x71\x12\x17\x50\xe4\xd8\x97\x71\x76\xfd\x85\xe7\x20\ \x06\x80\xfb\xbb\x6e\xaf\x9e\x62\xa4\xdd\x9a\xc5\x2c\x7e\x68\x0c\ \x80\x25\xe8\xc5\x3d\xab\x87\x26\x69\x57\x82\xe4\x43\x41\x92\x66\ \xe7\x6b\x63\x98\x61\x6e\x4f\xd5\x5b\xb3\x4c\x80\xab\xd7\x73\x16\ \x14\x89\x85\x5c\x6e\xa7\xc3\x46\x00\xc0\xa7\x02\xf2\x80\x81\xed\ \x90\xa2\xc5\x88\x8b\x01\x11\x21\xe9\x4e\x2e\x1d\x28\x42\xc8\x00\ \x49\xf5\xf3\x15\xf1\x1d\x33\x82\xd8\x2c\x13\x08\xf0\x15\xa5\xeb\ \x6b\x31\x2c\xb1\x6e\x99\x78\x03\xfe\xc2\x85\x34\xd9\x35\x4a\xd5\ \x48\x86\xbe\x00\xdc\x43\x01\x48\xdf\x00\x0d\x91\x5a\x25\xad\xd0\ \x20\x84\xae\x10\xc7\x48\x12\x07\xa1\xe5\x5e\xc1\xa5\x97\xa0\xa9\ \x68\x42\x5a\x47\xb7\x99\x87\x4d\x44\xb0\xd4\xc3\x38\xda\xba\xcd\ \xda\x15\x6a\x37\x85\xba\x34\x42\x7e\x23\x11\xfd\xaa\xf1\x01\x8c\ \x94\x2c\x61\x24\x6e\xab\x90\xd4\x52\x5f\x00\xb3\xef\x2d\x3e\x5a\ \x43\xb3\x34\x3e\x2e\x04\x74\x66\x02\x18\x07\xa7\x7b\x5b\x48\x39\ \x45\xbf\xf5\xb1\xd8\xd2\x87\x82\xe6\xe9\xc6\xa0\x58\xbb\xcc\xb9\ \x52\x17\x37\x00\x0d\x7f\x9f\xc0\xe7\xae\xcd\x7a\x5c\xcd\xba\x34\ \x38\xee\x23\xbb\x65\xdd\x13\xbc\xb8\xe3\x6e\xf7\x1c\x7b\xce\x14\ \xbc\x0f\xf1\x51\xf1\x36\x08\xcd\x79\x01\xfa\xe4\xe9\xab\xc1\x87\ \xbb\xa2\x8e\xe4\x2b\x70\x3d\xbd\x31\xef\xe3\xf7\x2b\xf0\x6d\xfd\ \x01\x78\x07\x3f\xc0\x33\x81\xbd\x2f\xd9\x1a\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x82\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x20\x08\x03\x00\x00\x00\x95\x43\x8e\xb6\ \x00\x00\x00\xc0\x50\x4c\x54\x45\x71\x8c\x0e\xa5\xa5\xa4\x0c\x0d\ \x07\x00\x00\x00\x97\x97\x97\xa2\xca\x0c\xec\xec\xec\xfb\xfb\xfc\ \x8c\x8c\x8b\xca\xca\xca\x78\x78\x77\xd4\xd4\xd4\xb3\xb3\xb3\x56\ \x6a\x09\xba\xba\xba\x3a\x3a\x37\x56\x56\x55\xf2\xf2\xf2\xf5\xf5\ \xf5\xc5\xc5\xc5\x68\x69\x67\x49\x4a\x48\x05\x06\x04\x25\x27\x22\ \x1c\x1d\x19\x12\x14\x0c\x40\x41\x3f\xd8\xd8\xd8\x34\x35\x31\x71\ \x72\x70\x9c\xc3\x0c\xf8\xf8\xf8\xcf\xcf\xcf\xef\xef\xef\xe1\xe1\ \xe1\x2d\x2e\x2a\xde\xde\xde\xe7\xe7\xe8\x01\x01\x01\xff\xff\xff\ \xe4\xe4\xe4\x39\x45\x0b\x64\x7c\x0a\x8d\xb1\x0a\x98\xbe\x0c\x82\ \x82\x81\x2b\x35\x08\xdb\xdb\xdb\x5d\x5e\x59\x47\x58\x08\xaa\xd5\ \x0c\x1f\x26\x09\x99\xbf\x0c\xbf\xbf\xbf\x7d\x9b\x0e\x61\x61\x60\ \x92\xb6\x0b\x86\xa6\x0e\x9b\xbf\x14\x95\xb9\x0e\xd8\xda\xd1\xc6\ \xc8\xbf\x62\x63\x58\xd2\xd4\xcb\x33\xee\xa2\x2e\x00\x00\x04\x7d\ \x49\x44\x41\x54\x78\x5e\x8d\x95\xe5\xb2\x23\x37\x14\x84\x47\x30\ \xcc\xcc\x8c\x66\xf6\x85\x0d\xbc\xff\x5b\xe5\x48\xb3\xbe\xbb\x9b\ \x54\x25\xe9\x3f\xae\x1a\xbb\x3f\xb5\x0e\x8c\x85\xfb\xbf\xeb\xdb\ \xd9\x39\x50\x6a\x18\x86\x85\x14\x2d\x4b\xd3\x3e\x8b\x70\x92\x60\ \x92\xf6\x45\xdf\xe3\x29\x22\xff\x0d\x28\x15\x85\x22\xc3\x50\x75\ \x4b\x2b\xec\xb8\xe8\x71\x92\x85\x59\x11\x63\x02\x9a\xc8\xdf\x00\ \x7b\xa6\x5f\x01\x25\xa5\x08\xfc\x8f\x5c\x5a\x1e\x56\xe3\x0f\x0f\ \x84\x86\xb1\xf3\x69\x60\x17\x49\x44\xa6\xe9\x67\x40\x55\x89\x5c\ \xd5\xcf\x48\x05\x59\x7e\x93\x8f\xae\xbb\x0c\x83\xe4\xd6\xb5\xec\ \xb5\x83\x7e\x6a\xac\xd2\x51\xb2\x69\x22\x3f\x00\x7b\x70\xbf\x0b\ \xe6\xc5\xdc\x3e\xdf\x45\xf1\xfe\xca\xf1\x89\x1e\xfa\x29\xef\xa4\ \xb1\xcb\x87\xd6\x75\x99\xdf\xf5\x5a\xb9\x6e\xad\xb7\xb7\x18\x02\ \x7c\x01\xf6\xa2\xf8\xdc\xdc\x22\x02\x8a\x6e\x97\x0f\xb1\xda\x7f\ \x07\xfc\xae\x9f\x86\xfc\xb4\xe8\x86\x91\x0f\x16\x42\xaa\xdf\x0c\ \xfa\x38\x43\x0c\x8a\x4a\x00\x10\xe1\xe5\xdf\x5f\x30\x79\x69\x4a\ \xb7\x2f\xc2\xe7\x9f\xdd\x32\x4a\xcb\xa2\xab\x16\x75\x92\x28\x4a\ \xe2\x3e\x73\x0e\x8a\x62\xf9\x4a\x98\x4d\x3c\xc1\xea\xdf\x1d\xa7\ \xd5\xfb\xfd\xe3\xf2\x6d\x25\x7c\xfe\x36\x4a\x10\x5a\x1a\x54\x2d\ \x21\x24\x0e\x4a\x4d\xd3\x82\x73\x56\xd8\x09\x66\x4d\xe0\x00\x7e\ \xfe\x91\xd9\xf0\xc6\xdc\x6e\xcd\x63\xc4\xbe\xd9\x40\x06\x0e\xe8\ \x24\x77\x51\xd1\x39\x21\x38\x43\xd2\xcc\xe5\x8e\x27\x4b\xb1\x09\ \xf9\x4a\x50\x89\x17\x76\xf0\xf1\x29\x82\xae\xa2\x70\x64\x04\x53\ \x5c\xaf\xd0\x3c\xe8\xb9\x87\xe2\x64\x86\x0c\x5e\x99\xc9\xf3\xc6\ \x4e\x0f\xd2\xe9\x0b\x20\x0a\xac\x7a\x9b\xfb\xb5\x82\x66\x54\xd5\ \xf5\x1b\xcb\x83\x9f\x22\x03\x04\x61\xcc\x4b\x6b\x8f\xf3\x5c\xd7\ \xe0\x06\xc6\xa8\xd2\xd2\x49\x00\x40\x56\x40\x75\xdf\x30\x7f\x25\ \xee\xf7\x10\xc6\xbc\x3d\xaf\xef\x37\xb0\x5c\x00\x50\xbd\x73\x37\ \xe4\x8b\xa9\xee\xba\xd2\x32\x7a\xb5\x64\x85\x09\x86\x27\xd3\x17\ \x40\xfc\xc0\x84\xa4\x3b\x71\xcf\x86\x61\x3b\x11\x20\x6c\xc1\x77\ \x7b\xaf\xf6\x00\xe0\x75\x8d\xe2\x34\xb2\x0f\x0f\x55\x1f\x8c\x20\ \x4c\xd6\x3a\xaf\x04\x81\x95\xd0\x04\x1e\x14\x8d\xfb\x31\x01\x42\ \x55\x1d\xc1\xf4\x14\x01\xc0\x9b\x1b\xe1\x38\x8e\x53\x12\x8c\xf5\ \x7c\xe0\x66\xfc\xea\xd6\x0a\xb8\x00\x6f\x2b\xf2\xfc\x98\xfd\xdc\ \xac\xd8\x23\x02\x8f\xd6\x2b\x64\x4a\x1a\x65\x94\x2a\xc8\x9b\x67\ \x6d\xb2\x33\xc5\x8e\x48\x11\x4f\x69\x91\x12\xc2\x01\x9b\xf5\x38\ \xf0\xb3\x9f\xe3\xad\x78\x67\x37\x21\x26\x07\xb0\xf6\x79\x65\x66\ \x79\xcb\x3c\xb6\xf3\x5c\x66\x43\x37\x5b\x85\x63\x04\x24\x44\xf6\ \x2f\x00\xf0\xf3\x5c\x58\xf8\x19\x30\x65\xd6\xe2\x5b\xea\xb0\x8c\ \xb2\x2c\x01\x20\x08\xa5\xb9\x53\x0d\x5a\xa4\x99\x86\x32\xf2\xe3\ \x0a\xc2\xf5\x0e\xe7\xbf\x08\xa2\xf9\xfd\x0a\xbb\xec\x34\x7b\x5e\ \xd7\xb9\xae\x3c\xd7\xc3\x22\xbb\x4e\xf8\x68\xbd\xe5\x71\x70\x0e\ \xd4\xa2\xfd\xab\x88\x60\xbc\x5c\x9f\x11\xaf\x2c\x1f\x81\x2b\x0b\ \x25\x40\x59\x76\x87\xa5\xf5\xea\x99\xa9\x96\xd4\x4e\x1e\x0a\x9b\ \xea\x6d\xed\xb9\x75\x6e\x58\x25\x26\x6b\x1b\x9f\xbc\x8d\xec\x06\ \x91\xc9\xaf\x71\x33\x53\xde\xc6\x7b\xb5\xfb\x43\x1d\x25\xd7\x93\ \xe5\x5a\x6e\x87\x66\xac\x4f\x36\x0e\xf4\xa5\x95\x65\x57\x55\xb4\ \x70\x5a\x01\xd0\x34\x3e\x37\x57\x13\xea\xb7\x16\x82\x51\x36\x22\ \x03\xd8\x28\xcf\x07\x40\x78\x6e\xa7\x37\x8b\xab\xda\x93\x63\x74\ \x92\x34\x3c\x14\x3b\x8c\xc9\x0a\x58\x4b\x16\x99\xa2\xf8\x7c\xb5\ \x12\x94\xc2\x28\x03\x20\x56\xfc\xe6\x34\xc2\x42\xba\x83\xef\xe7\ \x92\x91\x90\x9e\xaa\x8d\x41\x83\xd0\x2e\xa2\x17\xa0\xaa\x36\x7c\ \x85\x77\xd7\x2b\x2c\x13\xbb\x3f\x00\x2f\xd7\x8a\x03\x0e\x96\xaf\ \x03\xa0\xf5\x1a\xcb\x6a\x24\x94\x24\x09\x35\x0e\x85\xed\x84\x3d\ \x3b\xe8\xb5\xce\xbb\x1b\xf3\xa4\x17\xe1\x29\x6c\x37\x29\x7f\x2d\ \xa4\x02\x4f\x90\x6a\x86\xd5\x0c\x63\xdb\xb6\xbe\x65\x9c\xe4\x26\ \x4b\x52\x05\xf5\xa9\xed\x38\x31\x54\x60\x05\xf0\x3a\xde\xd6\xd1\ \x8c\x22\x00\x71\xf1\x2e\x54\x3b\xfc\x86\x0c\x5f\x1f\x46\x4f\x42\ \x07\x45\xaf\xf3\x82\x10\x9b\x16\x8f\x26\x28\xf8\x46\x71\xc0\x9a\ \x61\x03\xce\x97\xf0\x91\x2d\xd3\x07\x5b\x26\xec\x20\xe3\xd1\x0c\ \x8b\x2b\x6b\x38\x3d\xa3\x37\x36\xab\x41\x70\x72\x55\x1a\xc7\xaf\ \x1a\x70\x89\xd5\xf6\x88\xd7\x14\xf8\x28\x40\x2f\x6e\xbb\x75\x9d\ \x33\x00\xf8\x7a\xb7\x48\x39\x0d\xfa\x94\xa5\x4c\x34\xcd\x58\x72\ \x5f\x2b\x7b\xf2\xeb\x6b\xbd\x7a\x9a\x97\xcd\xe6\xb2\xfd\xb8\x8b\ \x62\x65\xc2\x72\x70\x40\xac\x20\x84\x28\x50\x60\x7e\x35\x4c\xa2\ \xd4\x7e\x3b\x94\xa5\xae\x3e\x9a\xee\xc0\x01\x3f\x54\x89\xa0\x0a\ \xcc\x15\x4f\x04\x7e\x06\xc0\x8e\x12\x38\x8a\xd1\x2c\xdd\xd2\x20\ \x87\xfd\xaf\x85\xa1\x63\x2b\xbe\x95\xcb\xe8\x9f\x7f\x6d\x5c\x9c\ \x06\xf6\x15\x30\xc5\x6f\x01\x6a\x5b\x6f\x5c\x64\x6f\x19\x8d\x73\ \xd8\xf7\x71\x9f\x24\x07\x45\xd1\x4b\x9e\xe0\xdf\x04\x00\x08\x5d\ \xd0\x06\x66\xef\xd4\xca\x3a\x8c\x94\xef\xc4\x49\x0a\x4a\x0a\x5b\ \x29\x63\x42\xfe\x07\x80\xe0\x80\x1a\x14\x21\x75\x68\xd4\x26\x57\ \x92\x42\x3b\x4f\x53\x12\x25\x81\x81\x94\x84\xfc\x05\x2c\x83\xdc\ \xf4\xf9\xf1\xbe\x01\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\xd8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x6a\x49\x44\x41\x54\x58\xc3\xed\ \x55\x69\x4c\x94\x57\x14\x55\xd4\x56\x5b\x63\xb4\xd5\x68\x13\xb5\ \x5a\xb5\x5a\x71\xa9\x25\x75\x50\x91\xd2\x0a\x54\x65\x13\x10\x14\ \x64\x19\xd1\x6a\x2b\x8b\x53\x34\x38\x2c\x65\x11\x37\x16\x51\x60\ \x40\xa8\xe2\x52\x59\x44\xa4\x54\x2d\x8e\xe0\x82\x36\x2e\x35\x2e\ \xa3\x18\xc6\x9a\x6a\x27\x85\xa9\x86\x88\x31\x19\xa5\xc9\x24\x24\ \xa7\xe7\x8d\x6f\x5a\x4b\x45\xb1\xb5\xb1\x3f\x3a\xc9\xc9\x97\x6f\ \x79\xf7\x9e\x7b\xee\xb9\x77\xba\x00\xe8\xf2\x22\xd1\xe5\x7f\x02\ \xff\x29\x02\x1f\x06\xa6\x78\x10\x49\x44\xa1\x44\x26\xb1\x84\xb0\ \xfb\x57\x09\x30\x81\x0f\x51\xaa\x5a\xad\x35\x24\x64\xea\x5b\x12\ \x33\x8d\xa6\xc4\x2c\xa3\x29\x35\xe7\xe6\xbd\xf8\xcc\xb3\xb7\x16\ \xab\x4b\xaf\xf3\x7d\x9d\x24\x67\xfb\x5c\x09\x30\xe0\x50\xb7\xb0\ \x0c\xdd\x9a\x9c\x3b\xad\xa1\xd1\xc0\xac\x50\x60\x46\x30\xe0\xaa\ \x04\x3c\x3e\x05\x16\xac\x04\x22\x53\x81\x35\xf9\xe6\xb6\x75\x5b\ \xf4\x2d\xc1\xd1\x45\x7a\xa9\x8e\xcb\xf3\x22\x10\x1d\x9f\xa1\x6b\ \xf6\x5f\x06\x4c\x98\x0d\x8c\x72\x25\xdc\x80\xb1\xde\xc0\x78\x7f\ \xc0\x2e\x08\x70\x08\x23\xb1\x70\x20\x38\x16\x88\xdd\x04\x64\x6e\ \x35\x9a\x3e\x89\xb5\xa8\xf2\x8f\x89\x08\x02\x75\xb1\x69\xe6\xb6\ \xa9\x7e\xc0\x9b\x0c\x35\xdc\x1d\x18\x13\x00\x4c\x5c\x08\x28\x48\ \x4a\x11\x01\x4c\x66\x72\x7b\xaa\x31\x8d\x70\x89\x04\x02\xe3\x48\ \x64\x33\x90\xb5\xc3\x68\x0a\x5e\x61\x51\x44\x2d\x94\xfc\x5b\x04\ \x84\xfc\xcb\x29\xf1\xfb\xf3\x80\x91\x5e\xc0\xb8\x10\x56\xac\x02\ \x3c\x57\x33\x11\xab\x55\xe6\x02\x41\xbc\x7a\x6f\x60\x5b\x12\x00\ \xc7\x15\xc4\x72\x2a\xf2\x39\xdf\x25\x01\xa9\x85\xc0\xda\x7c\x5d\ \xb3\xdb\xa2\x0c\x1d\x49\x84\x3f\x33\x01\x21\xa5\x6a\x3d\x30\x85\ \xbd\xb7\x65\xef\xa7\x31\xb0\x7f\x06\xb0\xaa\x14\xc8\x3b\x02\xec\ \x3c\x05\x6c\x3d\x09\xa4\x7d\x0b\xac\x28\x26\x19\x12\x9a\xbd\x06\ \xf8\x68\x15\xbd\x42\x32\x73\xd4\x40\x04\xc9\xe5\x94\x98\xdb\xa2\ \x56\x57\xdd\x78\x56\x35\x44\x0b\x2e\x24\xe4\x00\xce\x94\xd6\x9e\ \xfc\x3d\xd7\x02\xea\x32\x60\xef\x05\x60\x73\xe9\xd9\x5b\x91\xa9\ \xa5\xd7\xd3\x77\xd6\x35\x56\x9e\x32\x9a\xf6\x5f\x65\xa2\xe3\xc0\ \xca\x3d\x34\x67\x1e\x89\xf0\x5b\x67\xfa\x62\x16\xc9\x04\xa5\xd0\ \xa8\x5f\x02\xeb\x0b\x7e\x57\xc3\xa7\xd3\x1e\xc8\x2a\x36\xb7\xf9\ \x25\xb2\xbf\xec\xad\x32\x1f\xc8\x3f\xc6\xca\x0f\xe9\x5b\xe4\xd8\ \xd9\x11\x81\xc2\x70\xf3\x55\x9a\xfa\xaa\xb3\x46\x53\xe5\x15\x20\ \xbd\x16\x08\xa7\x22\xfe\xd9\x24\x40\x45\x3e\x66\x7b\x44\x8c\x15\ \xf4\x86\xa6\xe4\x4e\xab\x5f\xb8\xa6\xbe\x33\x2d\x11\x04\x92\x36\ \xee\xd4\xb7\xa8\x34\x0c\x96\x0e\x44\x7d\x05\x94\x9f\xa7\x0a\x59\ \x16\x39\x9d\xda\x2d\x2a\x17\x41\x44\xbd\xa9\xea\x46\xf5\x15\x93\ \x79\xfb\xf7\x40\xc2\x41\x60\xe1\x76\x7a\x64\x23\x30\x93\xbe\xf1\ \x26\x89\xcf\x18\x47\x53\x66\x6e\x5b\x12\x6f\x99\x14\x75\xfb\xa4\ \x62\x97\x58\x77\x8a\xe5\xc6\x2f\x42\x53\xaf\xd9\xcf\x8a\x28\xa1\ \x7a\x2f\x50\xa9\x23\x91\x35\x96\xc3\x8f\xdd\x80\x7c\x1e\xe2\xb1\ \x24\x43\x57\xf1\xdd\xcd\x7b\x55\x0d\x1c\xcb\x3a\xee\x8a\x72\x20\ \x60\x0b\xe0\x46\x3f\x78\xb1\x1d\x61\xbc\x66\x95\x00\x31\x69\x5a\ \xc3\xa3\xbe\xb0\x26\x2f\x28\x7e\xa8\xb0\x35\xa0\x3a\x73\x97\xae\ \x39\xfd\x1b\x20\x85\x44\xca\xd9\xff\x8c\x5d\x75\x8d\x42\xfa\x8e\ \xa4\xe3\x3b\x7b\xb1\xaa\x53\x0b\xb5\x86\x9a\x6b\xe6\xb6\x82\x73\ \x24\x4f\xa3\x2a\x77\x50\x85\x4d\x0f\xbd\xa4\x24\x89\x75\x3b\x69\ \xe0\xad\xba\x66\x6b\xc5\xe2\x9a\x4b\xc5\x4f\x9e\x01\x84\xff\xac\ \xc1\x86\xba\x2f\xce\xd0\x95\xd6\x99\xcc\xb9\x74\x7e\x31\x83\xed\ \x3d\x71\xf3\x9e\x48\xf0\xb4\x1e\x8a\x3e\x2f\x4e\x28\xd2\xd7\xea\ \x4d\xe6\xdd\x54\x2e\x99\xde\x58\xca\x09\xf2\x67\x4b\xbd\xd3\xb8\ \xbc\x88\x38\x8e\x6a\x42\xb6\xa5\xe2\x03\xaa\x54\x7d\x4b\x26\x95\ \xd6\xd6\x3d\x42\xc0\x2a\xab\x72\x55\x91\xbe\xf2\x9c\xb9\x6d\x0f\ \x3d\x70\xda\x00\x08\xd3\x75\x66\xf7\x5b\x5b\x52\x73\xf5\x4e\x6b\ \x05\x5b\x92\x76\x02\x58\x56\xc1\x49\x61\x62\xdf\x2c\x60\x1e\x95\ \x08\x5e\x47\x52\x6a\x93\xd9\x87\x3b\x64\x59\x32\xdb\xac\x6d\x47\ \xc0\x5a\x4d\x62\xae\xd6\x70\xec\x1a\x70\xf2\x47\xa0\xec\xc8\xc3\ \x3e\x75\x66\x9c\xc4\xd8\x79\x92\x44\xf1\x51\x7d\x4b\xd5\x75\xfa\ \x82\xfb\x63\x79\x15\x10\x42\x83\xfa\x70\x32\x66\xd3\xa0\x4e\xfc\ \xaf\x71\xe4\x76\x0d\x63\xc4\x7d\x35\x8f\x21\x60\xf5\x43\xb2\x46\ \x6b\xb8\xf4\x33\xd0\x70\x1b\x58\x14\x67\x59\xb5\x3e\x9d\x24\x61\ \xe9\x71\x09\x49\x7c\x4d\x12\x69\xa7\x01\x15\x3d\x15\xb2\x8b\x24\ \x38\xae\xce\xc9\x0f\x17\xd8\x52\x4e\x49\xd5\x71\x49\xe0\x71\x3f\ \x0b\x89\x3c\xad\xa1\xe1\x16\x70\x82\xb2\x8a\xbf\x6a\x7b\x8f\xa8\ \x01\x7c\xd5\x4d\xa2\x7b\x07\xe8\xe6\xe8\x1f\x37\xde\x29\x20\x29\ \x25\xb3\xfc\xec\xad\xa2\x7a\x7a\x82\xed\x88\x20\x09\x25\x77\x86\ \x2f\x7d\xe1\xc5\xe4\x2a\xb6\xe6\xe0\xe9\xc7\x13\xe8\x4a\xd8\x88\ \x40\x4e\x01\x89\xf1\x61\xb1\xdb\xf4\x17\x0d\xe6\x36\x4d\xf9\x99\ \xdb\xd3\xfd\xe3\xc3\xf9\xbc\x17\xf1\x0a\xf1\x6a\x07\x10\xef\x7a\ \xd9\x7b\xaa\xde\xfb\x60\x7e\xe2\xb6\xec\xe3\x46\x53\x1a\x0d\x9d\ \xc0\x6a\x97\x73\x42\x16\x73\xc3\x86\x16\xf1\x9e\x23\x7b\xf8\xe2\ \x5f\x09\xd8\xc8\x2a\x5e\x22\x7a\x12\xbd\x1d\xe6\xaa\x57\xfa\x47\ \xe5\x34\x1c\xbf\x7c\xe7\xd7\xe4\xbc\xea\x46\x85\x7b\xc4\x02\x3e\ \x1f\x48\x0c\x92\x78\x43\xc2\x7a\x3f\x70\x8c\xfd\x9c\x49\x0e\xbe\ \xab\xd2\x8b\x6a\x1b\xee\x56\xdc\x04\x0a\xb8\xbe\x37\x71\xac\xd7\ \xd3\x13\x5f\x70\x42\xe2\xb8\xb8\x72\xb9\x69\x4f\x5d\xfb\x33\x01\ \x91\xbc\x87\xac\xb0\x0f\xf1\xba\x0c\x38\xc4\x6e\xe6\x92\xa5\xd3\ \xe7\xaa\x0f\x64\x97\x9e\x6a\x56\xc6\x14\xde\x78\x6b\xa2\xf3\x2c\ \x3e\x1f\x4b\xd8\x12\xe3\x24\x6c\xe5\xb3\x77\x26\xbb\x45\x6c\xd8\ \x55\x7d\xa1\xa5\xfe\x2e\x50\xf7\x0b\x70\x88\x5e\x3a\xf0\x13\x7b\ \x4e\x53\x97\x73\x42\xca\xb9\xc6\x8f\xfe\x00\xd4\x37\xfe\x41\xa0\ \xab\xac\x5c\x24\xef\x2b\x2b\x1a\x2e\x82\x11\x13\x08\xbb\x7e\x03\ \x87\xbb\xbc\x3b\x43\x99\x36\x78\xb4\x22\x90\xf7\x8e\x84\x93\xb0\ \x4a\x3b\x38\x0d\x7e\x5b\xb1\x40\x19\xb3\xc5\x70\x44\xd7\xd8\x7a\ \xf4\x72\x63\x6b\x2d\xaf\xb5\x97\x9b\x1e\xd4\xea\x9a\x1e\xd4\x5c\ \x6a\x7a\x70\xf8\x52\xd3\x7d\xed\x85\xa6\xfb\x87\xcf\x1b\xef\x1f\ \x3a\x67\x34\x89\xb5\x6e\xad\xfe\x65\x59\xb9\xa8\x7a\x24\x31\x91\ \x98\x22\x13\xb9\x12\xb3\x09\x77\xc2\x8b\xf0\x26\x7c\x89\xb9\xed\ \x20\x9e\x79\x8f\x98\xe4\x9a\xa8\x70\x8b\xd0\x5a\xe0\x1e\x59\xad\ \xf0\x88\x3a\x38\xc5\x53\x55\x35\x75\x4e\xf4\x3e\x07\x9f\x98\xb2\ \xe9\x7e\x71\xbb\x1d\xe7\x25\xec\xa0\xc7\xb6\xd1\xac\x22\xb6\xc5\ \xd5\xa2\xe7\xfd\x84\xe4\x52\x4a\x7b\x62\x06\xe1\x26\x13\xfa\x11\ \xf3\x09\xa1\x40\x10\x11\x42\x84\xb6\x43\x88\x7c\x17\x28\xbf\xf5\ \x93\x67\xdd\x64\x2c\x7b\x19\x7b\x88\xcc\xd5\x53\xe6\x7e\xf1\x04\ \x9e\x6b\x0b\xe4\x37\xee\xf2\x8c\xab\x8c\x31\x45\xc6\x1c\x29\x73\ \xf4\x91\x39\x6d\x3a\x65\x42\x42\x41\x4c\x25\x1c\x9e\x64\x42\xf9\ \xce\x41\x7e\xab\x90\x67\x27\xc8\x58\xc3\x65\xec\xbe\x32\x57\x77\ \x99\xfb\xc9\x63\x48\x0c\x23\x46\x10\xa3\x88\xd1\x32\x58\x87\x63\ \x28\xbf\x19\x25\xcf\x0c\x93\x31\x06\xc9\x98\x7d\x64\x8e\x1e\xd6\ \xea\x9f\xb8\x88\xe4\x01\xd1\xaf\xd7\x88\xfe\xc4\x80\xa7\x2d\x22\ \xf9\x4d\x7f\x79\xa6\x9f\x8c\xd1\x5b\xc6\x7c\x49\xe6\xb0\xb1\xfe\ \x7f\xfc\x06\xb3\xa4\x19\x9e\x6b\xe3\x34\xfa\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xbf\ \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\x04\x86\x49\x44\x41\x54\x78\x5e\xed\x97\x4b\x68\x5c\x55\ \x1c\xc6\x7f\xe7\x3e\xe6\xce\x9d\x4c\xdb\x74\xa6\x51\x62\x1f\x31\ \xb5\x3e\xaa\x56\x14\x6d\x4b\xc5\xa0\x45\x5c\x88\x42\xd7\x45\x44\ \x5d\x98\x4d\x57\xd2\xba\x13\x44\x5c\x88\xa5\xd2\x45\x49\x17\x51\ \x5a\xdc\xb9\x11\x8a\x62\x17\x15\x74\x40\x25\x62\x6c\xa8\x24\xe9\ \xcb\x3c\x6c\x4c\x5b\xd3\x47\xd2\xc9\x64\x3a\xaf\x7b\xef\xf1\xe4\ \xdc\x99\x0c\x32\x99\x6b\x4b\x07\x5d\xe8\x07\x3f\xce\xdc\x33\x7f\ \xbe\xf3\xdd\x73\xce\x7d\xf1\x9f\x97\xa0\xaa\xde\xde\xde\x97\x80\ \xad\xfc\x33\x1a\xec\xef\xef\xff\x0a\xc0\xa2\xae\xad\x9d\x6b\x37\ \xbc\xbb\x71\x63\x37\xa6\x69\x72\xfa\xa7\x32\x67\x06\x0b\x2c\x64\ \x7d\xee\x44\xc9\x55\x26\x9b\xb7\xba\x3c\xbc\x2d\x86\xef\xfb\x4c\ \x4c\x4c\x72\xf9\xe2\xd4\x7b\x40\x43\x00\xbe\xf9\x36\xc3\xf0\xe8\ \x19\x52\xa9\x35\x5c\xb9\x60\xf1\xc6\xbe\x67\x68\x85\x8e\xf6\x7f\ \xcf\x95\xa2\xc7\xc0\x0f\x19\x52\xe9\x0e\x36\x3f\xb0\x11\x80\x86\ \x00\xb6\x65\xd3\xde\x9e\x22\xbd\xa6\x03\xd7\x74\x89\xc7\xe3\xb4\ \x42\x5d\xf7\xdd\x43\x62\x55\x41\x9f\x98\x1a\x03\x60\xf9\x00\x31\ \x27\x8e\xeb\x26\x48\x24\x92\x38\x66\x1b\xe7\xce\x8d\x83\x65\x81\ \x1d\x03\xc7\x41\x25\x02\x55\xa3\xdb\x98\xa3\x88\x85\xff\x7b\x1e\ \x94\xcb\x8a\x12\x14\x8b\x50\x52\xe8\xb6\x04\x95\x32\xab\xd3\x2b\ \x31\x1d\x93\xc7\x1e\x7f\x8a\xf1\xb1\xf3\xcd\x03\x18\xa6\xa1\xb0\ \x14\x26\xea\x80\xed\xdb\x9f\xc4\xda\xb5\x0b\xb9\x76\x2d\x48\x89\ \xc8\xe5\x08\x76\xec\x20\xd8\xb3\xa7\xde\xef\xfb\x3a\x9c\xbf\x77\ \x2f\x74\x75\xa9\xfe\xdd\x61\x3f\x84\xfd\x07\x0f\x72\xe2\xc4\x19\ \xed\x19\x7a\x8b\xe6\x01\x02\x3f\x50\xf8\xf8\x9e\x22\xf0\xf4\x12\ \xf8\xed\xed\x58\x47\x8e\x22\x90\xc8\xb9\x59\xfc\x37\x7b\x71\xf6\ \xed\xc3\x53\xfd\xf6\xd1\x23\x48\x40\x9e\x1c\xc2\xfc\xe8\x00\xc6\ \xc7\x9f\xe8\x7a\x5b\xd5\x4b\x01\x02\x00\x89\xa7\xbc\x4c\xe5\x1b\ \x68\x64\x44\x00\x29\xf1\x03\x3f\xc4\xf3\x19\x19\xf9\x8d\x4d\xd7\ \x66\xc9\xbf\xf2\x2a\xc2\x10\x04\x2a\xd0\xf5\xb7\xde\xe6\x66\x60\ \xd0\x2d\x04\x93\xc9\x95\x60\x5b\xf0\xec\x73\x74\xef\xdf\xcf\xa4\ \x34\xd8\x74\x23\x4b\xfe\xb5\xd7\x21\x08\xc8\x6d\xdb\xc1\xdc\x0b\ \x2f\x6b\x2f\xac\xd0\x37\x90\x11\x01\x64\x20\x09\x34\x01\x81\x0c\ \xe8\xe9\x79\x82\xb9\xbb\x3b\xe8\x3c\xfe\x25\x35\xdd\x4b\xa8\x39\ \xc3\xa0\xc7\x32\x41\x4a\x2a\x43\x27\x29\x74\x77\xd3\xb3\x7a\x25\ \x73\xe9\x14\x9d\x5f\x1c\xa3\x2e\x18\x1d\x9e\x42\x04\x81\xf6\x96\ \x41\x44\x00\x90\x21\x32\xc4\x71\x1c\x84\x10\x61\x0b\x48\x04\x08\ \x89\x40\x40\x36\xcb\xfc\xee\xdd\xba\xce\x48\xa7\x49\x7d\xb8\x1f\ \xb3\x5a\x1f\x77\xe2\x48\x21\x41\xa2\x6b\x6b\x7e\xa0\x89\x0a\x20\ \x42\x44\xc8\xc9\x91\x29\x64\xdf\xa7\x4c\x4f\xfc\x01\x31\x1b\xe5\ \x0c\x8e\xad\x88\xc1\xd0\x29\xb0\x6d\x85\x09\x9e\x8f\xac\x78\x88\ \x62\x19\x8e\x1d\x67\xfa\x5a\x0e\xd4\x6f\x59\xae\x20\xca\xde\x92\ \x1f\x68\x9a\x07\x10\xa2\x86\x20\xd9\x6e\xb3\xf3\xe9\x47\xb9\x25\ \x99\x66\x18\x2a\x99\x60\x39\x9d\x1a\x1c\xa2\x58\x14\x35\xff\xe6\ \x01\x10\x02\xa1\x31\x58\xbf\xbe\x03\xdb\xb6\x69\x81\xb4\xd7\xd8\ \x58\x4e\xfb\x22\x22\x67\x40\x60\x18\xa6\x42\x90\x70\x5d\x7e\x3e\ \x75\x9a\x55\x2b\x92\xfa\xfe\x70\xfb\x0a\x2f\xeb\x6c\x6e\x41\x7b\ \x19\x86\xa1\x11\x51\x01\x0c\x21\x10\x86\xd0\x85\x17\x2f\xcd\x70\ \xf5\x7a\xb6\x1a\x0c\x90\x20\xa1\xe1\x58\x84\x7b\x4c\x4b\xd0\x28\ \x09\x94\x4a\x45\x4c\xc3\x08\xbd\xa3\x02\x84\x05\x3a\xa9\xc2\xd4\ \x4f\xc5\x56\xc8\x54\x5e\x42\xa1\xbc\x55\xfb\xb7\x4b\x60\xe8\x81\ \x2f\x4c\x8e\x31\x3d\x3d\x45\xa1\x90\xe7\x4e\xe4\xba\x6d\xac\x5b\ \xb7\x81\x74\xc7\x5d\xb7\xb2\x04\x46\x18\x40\x11\x48\xc9\x07\xef\ \xbf\xc3\xfc\xfc\x3c\xf9\x7c\x9e\x4a\xa5\xb2\x14\xd0\xb2\xac\x25\ \x6c\xdb\xd6\xad\x0a\xad\xc3\x03\xfa\x46\x56\x2e\x97\x97\xf8\xec\ \xf3\xe3\xda\x53\xa1\xc7\xa8\x0b\x8c\xc6\x19\x10\x08\x55\xb8\x3a\ \x95\xa6\xa6\x81\x81\x01\xfa\xfa\xfa\x38\x7c\xf8\x30\x87\x0e\x1d\ \xd2\xc7\xb7\x21\xed\xa5\x3c\x15\xfa\x2a\x8b\x0a\x50\xdf\x84\xae\ \xeb\x52\xd3\xc8\xc8\x08\xa9\x54\x8a\x74\x3a\xad\x19\x1e\x1e\x26\ \x4a\x52\x4a\xea\x42\x7b\xd5\x4e\x4c\x44\x5f\x86\xb5\x65\x10\x48\ \x59\x2f\x4c\x24\x12\xfa\xc9\x58\x9d\x62\xdd\x46\xa8\x61\x90\xb0\ \x5e\x52\xed\x8d\x98\x01\xaa\x09\x17\x43\xd4\x4d\xea\x9b\x27\x34\ \xbf\xfd\xab\x43\x82\x44\x11\x3e\xe4\xa2\xee\x84\x20\xaa\x80\xa0\ \x55\xf2\x03\x4f\xbf\x0b\x94\xcb\x25\x4d\xd3\x19\xf0\xbc\x32\xa5\ \x52\x89\x52\xb1\xa8\x77\x76\xcb\x24\x21\xb7\x90\x63\x66\xe6\x32\ \x37\xe6\x66\x9b\xcf\xc0\xcd\x85\x9b\xcc\x67\xb3\x38\x4e\x9c\x15\ \xc9\xb6\x16\x06\xf0\xb9\x30\x3e\xc6\xd8\xf9\xb3\xb4\x25\xdc\x0c\ \x30\xb8\x6c\x80\x42\xa9\xc0\xd5\xab\x33\x78\xbe\xa7\x03\x64\xbe\ \xfb\x91\x64\x32\xc9\xce\xe7\x5f\x6c\x78\x8e\x4f\x4d\xcf\xd0\x5c\ \x02\x89\xc4\x57\x3e\xb3\xb3\x37\x50\xdf\x01\x8c\x8e\xfe\x42\x3c\ \x66\x67\x1e\x7a\xf0\xfe\x03\x40\x66\xd9\x00\x97\xa6\x7f\xe7\xd7\ \xb3\xa7\xf5\xa6\xfb\xda\xb2\xf4\x86\xbb\x13\x49\x19\xbe\x5d\xf9\ \x9e\x47\x57\x57\x57\x66\xcb\x96\x47\xf4\xe0\xea\xab\x28\xff\x6f\ \x7c\x9a\x0d\xd6\x07\xaf\xeb\x7f\xfd\x09\x8d\xfd\xd4\x8a\xd6\x19\ \x48\x3f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x7e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x05\x10\x49\x44\x41\x54\x58\xc3\xad\ \x97\xcb\x8f\x14\x55\x14\x87\xbf\x73\x6e\x55\xcf\x30\x0c\x23\x4f\ \x71\x00\x01\x49\x7c\x60\x06\x08\x10\xdd\xb8\x91\x85\xee\x8c\xf1\ \x91\x18\xd8\x91\xf8\x88\x8f\x85\x09\xa8\xa0\x81\xa6\x65\xa3\x0b\ \x13\x17\x44\x63\xc0\x85\x31\x19\xdd\xf8\x27\x98\x31\x2e\x7c\x22\ \x46\xe3\x8b\x18\x41\x40\x07\x89\xc0\x00\x19\xa0\xbb\xaa\xee\x3d\ \x2e\xaa\x06\x6a\x7a\xaa\xbb\x81\x58\xc9\xc9\xad\xaa\xbe\xdd\xfd\ \xab\xdf\xf9\xea\x9c\x7b\xc5\xcc\xe8\x75\x6c\xda\xd2\x10\x40\x8a\ \x4b\xe9\x32\x75\xea\xc7\x6c\x6c\xb4\xde\xfb\x87\x01\x99\x12\xb0\ \x69\x73\x63\x07\xf0\x78\xa7\x79\x5d\xee\x5b\x0f\x31\x55\xdf\x9a\ \x18\x1b\xad\x3f\xd0\x2e\xe0\xe0\xde\x37\x77\x6f\xfc\xf4\xe7\xc0\ \x86\xe5\x81\xd9\xb3\x62\xbe\x3b\x0e\x23\x8b\x03\xaa\x70\xf0\xb8\ \xb2\x6e\x49\x46\x1c\x39\xbe\x3e\x62\xdc\xb3\x0a\x62\xa7\x7c\x7e\ \x38\xe1\xde\x95\x4a\x1c\x39\xbe\xff\x4b\xb8\xef\x76\x48\x33\xf8\ \xea\x8f\xc0\xfa\x65\x50\xab\x29\x87\x4e\xc0\xdd\x8b\x3d\x8a\x30\ \x77\x48\x79\xf5\xa5\xc6\xf8\xd8\x68\x7d\xe9\x0c\x01\x8d\x37\x76\ \x6d\x6c\x26\x8a\xf7\x81\xc8\x29\xaa\xb9\xe0\x24\x0d\x84\x10\x88\ \x23\x47\x1c\x0b\x21\x00\x04\x7c\x10\xd2\xd4\x53\x8b\x23\x00\x5a\ \x49\xca\xe0\x40\xcc\xe5\xa6\x67\x60\x96\xe3\xc2\x64\xca\xd0\x60\ \x4c\x2b\x35\xfa\x6b\x42\x2b\x81\xd9\x03\xf0\x5a\x07\x01\xe5\x14\ \x48\x9b\xcd\xed\x0c\x48\x07\xcb\xad\xed\xdc\x2a\x53\x52\x95\x82\ \x36\xd8\xb4\x88\xa8\x14\x31\x50\x2b\xc6\xa8\xf8\x7c\x8a\x81\x00\ \x64\x40\x0a\x24\xc5\x98\x95\x22\x14\x61\x63\xa3\x75\xdb\xb4\xa5\ \x51\x1f\x1b\xad\x37\xa6\x3b\x70\xf5\xcf\x73\x01\xc6\x0e\xe0\x91\ \x69\xf7\xaa\xdd\xa8\x7a\xea\x50\xe1\xc8\xd5\xb1\x12\xc2\xe9\x4f\ \xef\x30\xbe\xdc\xba\x63\xf7\xfa\x95\x43\x42\x30\x38\x74\xcc\x18\ \x19\xf6\x38\xa7\xfc\x7a\x4a\x19\x19\xce\x67\x7f\x7b\x24\x63\xfd\ \x72\x41\x44\xf9\xf5\x94\x70\xc7\xa2\x8c\x5a\x14\xf1\xc3\xdf\xb0\ \x66\x69\x40\x51\x0e\x1d\x37\x46\x96\x78\x9c\x2a\x43\x83\xca\xcb\ \xdb\xaa\x18\xb8\x2a\xc0\x15\x02\xbe\x78\xeb\xed\xfa\xfa\x0b\x93\ \x9e\x5a\xec\xb8\xdc\xf2\x60\x46\x5f\x2d\xc2\x80\x24\xf5\x44\x4e\ \xc9\xb2\x80\x73\x4a\x1c\x43\xb3\x15\xe8\x8b\x1d\x66\x86\x0f\xe0\ \x9c\xe0\xbd\xe1\x9c\xd0\x6c\x65\xcc\x19\x8c\x70\xca\x4c\x01\x6d\ \xf6\xbb\x22\x05\xaf\x74\x48\x81\x76\x81\x30\x54\xa4\xc0\x66\xa4\ \xa3\x3d\x05\x15\x02\x5c\x09\xba\xbe\x22\xfa\x8b\xb1\x56\xc4\x14\ \xa8\x53\x80\x25\x45\xb4\x80\x66\x31\xb6\x4a\x50\xfa\x22\x0c\xd8\ \x3d\x36\x5a\xdf\x33\x53\x80\xb1\x13\x78\xb4\x0d\x36\xed\x00\xa1\ \x54\xbc\x82\xd6\xc3\x89\x1e\x0e\x18\xdf\xbe\xb8\xa7\xbe\xe1\x96\ \x81\x3c\xaf\x3f\x1c\x33\x46\x96\x0a\xa9\xf7\xfc\x76\x52\x58\xb7\ \x42\x09\x1e\x7e\x19\x87\x35\xcb\xa1\xd9\xf4\x1c\x3e\xa5\x6c\xb8\ \x4d\x68\xb6\x02\x3f\xfd\x0d\x6b\x6f\x15\xa2\x48\xf8\xf1\x18\xac\ \x1e\x0e\xc4\x35\xe5\x97\x71\x58\x35\x3f\x50\xab\x29\x2a\x81\xed\ \xdb\xf7\x56\x32\xa0\x18\xdf\xec\xdb\x57\xdf\x30\x79\xd1\xb0\x60\ \xa8\x53\x54\x0d\x9f\x41\x92\x65\xa8\x2a\x91\x53\x42\x30\xe2\x5a\ \x5e\x26\x2f\x5d\x4a\x98\x3b\x54\xe3\x72\xd3\xc0\xc0\x45\x05\x78\ \x91\x80\x41\x9a\xe6\x22\xb2\x24\x00\x30\x77\x48\x79\xf6\x85\x12\ \x84\xf7\x6f\xde\x33\x65\xe5\xd4\xbb\xff\xd8\x95\xeb\xe9\x69\xb8\ \xde\x14\x84\xb6\xeb\x72\x1d\x38\x0b\x3c\x38\x36\x5a\xb7\xe9\x0e\ \x4c\xaf\x7e\x53\xb0\xf5\xb7\x41\xd8\x57\x00\xea\x4a\x85\xc8\x17\ \xa0\xb5\xda\x20\x6c\x96\xe0\x2c\x57\xc5\x5d\x55\x10\x76\x13\xd0\ \x8f\xf1\x2c\xf0\x40\xc9\x91\xf6\x23\x5c\x03\x84\x57\x1c\xa8\x82\ \xb0\x97\x80\x4f\xf6\xbf\x53\x5f\x3d\x79\x39\xf0\xe7\x69\xe1\xce\ \x25\x42\x92\x04\x8e\x9e\x16\x56\x2c\x30\x54\x84\xbf\xce\x0b\x2b\ \xe6\x43\xe6\x03\xbf\x9f\x32\xee\x1a\x76\xb4\x5a\x29\xc7\x26\x1c\ \x2b\xe6\x7b\xe2\x28\x62\x56\xbf\xf0\xcc\x0b\x8d\x0e\x10\xf6\x10\ \xf0\xfe\xbb\xf5\xd5\x69\x06\xa9\x07\x15\x43\x04\xd2\xd4\x88\xa2\ \xdc\x90\x2c\x0b\xf8\x10\x18\x9c\x1d\x91\xa6\x06\x48\x3e\x27\x0b\ \x38\x55\x0c\xe8\xab\xc1\xd3\xcf\xdf\x98\x80\x72\x0a\x6e\xb4\x0e\ \x5c\x73\x0a\x5c\x07\x08\xfb\x4b\x2d\xb9\x0a\xc2\xa4\x00\xaf\x0a\ \x42\x7f\x2d\x10\xca\x34\x07\x8c\x6d\xc0\x43\x5d\xaa\x21\x5d\x5a\ \x71\xd7\xd7\xb0\x53\x2f\x98\xee\x80\xf1\xd9\x87\xfb\xeb\x6b\x5b\ \x2d\x38\x31\x01\xb7\x2d\x82\x56\x62\xfc\x73\x41\x58\x3a\x17\xbc\ \x0f\x9c\x98\x30\x96\x2f\x50\xcc\x8c\xf1\x73\xc2\xf0\x50\x20\x8a\ \x1c\xe3\xe7\xe1\xd6\xf9\x60\x06\x47\xff\x0d\x2c\x9b\x27\x38\x15\ \x9c\x33\xb6\x3e\xf7\x7a\xc7\x6e\xa8\xa5\x66\x54\xc3\xf8\xec\x83\ \xf7\x76\xaf\x4b\x12\x43\x44\x50\x15\xd2\x2c\x10\x3b\xbd\x02\x97\ \xaa\x60\x06\x4e\xc1\x07\x90\xc2\x17\xa7\x82\x0f\xb9\x01\x91\x53\ \x92\x34\x9f\x3b\xd0\x2f\x6c\x79\xaa\x77\x3b\xce\x97\x60\x79\x0a\ \x1e\xfe\x1f\x52\xd0\xbd\x19\x15\x0b\x12\xad\x68\xc7\x71\xa9\x05\ \xdf\x68\x3b\xce\x2a\xda\xf1\xae\x99\x6b\xc2\xcd\x8d\x9d\x15\xab\ \x62\xa9\xe8\x09\xd7\xea\x40\xf9\x9c\xde\x0e\x6c\x6e\x1c\xfc\xf8\ \x40\x7d\xe3\x89\x33\xc6\x92\x79\x79\xae\xcf\x5c\x54\x16\xce\x36\ \x44\xe1\xe4\x84\xb1\x6c\x81\x92\x66\x81\xb3\x97\x94\x85\x83\x60\ \xc1\x38\x7d\x51\x58\x34\xc7\x10\x84\x7f\xce\x1b\x37\xcf\x01\x51\ \x38\x3d\x29\x2c\x1a\xcc\xd9\x39\x79\xce\x58\x7c\x93\xe0\x14\x22\ \x07\x4f\x3c\xd9\x61\x63\xf2\xd1\x81\xfa\x46\xef\x0d\x33\xc9\x1f\ \x4f\x72\x8a\x55\x73\xfd\x3e\x04\x40\x4a\x80\x81\x6a\x3e\x57\x1d\ \x84\x90\x57\xbf\x10\x0c\x15\x48\xb3\x5c\x80\x08\xf9\x08\xc4\x71\ \x67\x01\x3b\x3a\xa4\xa0\x53\x74\xda\x98\x74\x5e\x0b\x5e\xc7\xc6\ \xa4\xaa\x32\xc6\xa5\x22\xe5\x2a\x36\x26\xbe\xd4\x72\xd3\xb6\xca\ \x77\x85\x8b\xf6\x5d\xb3\xb4\x6f\xcf\x3b\x88\x70\x15\x21\x25\x01\ \x56\xa2\xbc\x1c\x5d\xff\x1c\xe0\x3f\xb4\x3e\x33\xee\x59\x4a\xce\ \x0f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x27\ \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\xee\x49\x44\x41\x54\x58\xc3\xa5\x57\xdb\x6f\x1c\x67\ \x15\x3f\xdf\x37\x33\x3b\xbb\xf6\xde\xf1\xae\xd7\x4d\x4c\xec\xc4\ \xbd\xd8\xc6\x4d\x2f\x69\xac\x06\xa9\xa1\x69\x65\x1a\x55\x20\xa1\ \x08\x81\x84\x90\x5a\xfe\x86\x3e\xf5\x91\x8a\x17\xf2\xc8\x1b\x54\ \x15\x2f\x51\x2a\x11\xc2\x25\xbc\x24\xa0\x2a\x42\x7d\x08\x22\x02\ \x29\x50\xb5\x6a\x9c\xae\x6f\x2a\x8e\xd7\x97\xb5\xd7\x7b\x9d\xcb\ \xd7\xdf\x39\x33\xeb\x26\x24\xb5\x70\x98\xf5\xfa\x9b\xf9\x76\xe6\ \x3b\xe7\xfc\xce\xef\xfc\xce\x37\x8a\xf6\x39\xe6\xe6\xe6\x66\xdf\ \x79\xe7\xa7\x3f\xaf\xd5\xd6\x15\x0e\xa3\x14\xcf\xca\x3f\xd2\xf8\ \xf0\x1f\x5f\xaa\x78\xce\xec\xfd\x8a\x73\x63\x54\xa5\x52\xd1\x17\ \x2e\x5c\x78\xf7\xfc\xf9\xf3\xbf\xfe\x2a\x1b\xf6\x7e\x0e\xb8\xae\ \x5b\x9a\x99\x79\xfa\xa5\x20\x08\x28\x0c\x43\xd2\x5a\x13\x1c\x89\ \x46\xa3\xc8\x68\x43\x5a\x69\x18\xe3\x39\x18\x8f\x1d\xe4\x7b\xe0\ \x00\x59\x96\x45\xd9\x6c\xf6\xaf\xfb\xd9\xd8\xd7\x01\x2c\xd2\xee\ \x76\xbb\xb4\xb1\xb1\x21\x0b\xf6\x1d\x60\x83\x2a\x36\xae\x30\x6f\ \x30\xaf\x79\xc4\xb5\xd6\x91\x71\xad\x0c\x7d\x6d\xa8\x4c\xed\x76\ \xbb\xb9\x9f\x0d\xbd\x1f\x00\x2f\x9c\x98\x7d\xd3\xb2\x2d\xb2\x6d\ \x1b\x0b\x5b\x12\xa5\x46\x54\x96\xa5\xc8\xd2\x98\xe3\x68\xf9\x9a\ \x1d\xc3\x88\x5b\x31\x2a\x89\xdc\xe0\x77\x1b\x13\xcf\x3c\xf3\xec\ \xf7\x2a\x95\xb1\xb1\x03\x3b\x30\x36\x36\x96\xaa\x8c\x8c\x7c\xdb\ \x84\x8c\x44\x18\xc1\x1b\xe2\xf6\xd0\xc8\xef\x21\x3e\xca\x8a\x6f\ \x8e\xb0\xa7\x80\x2c\xfe\x17\x4d\x21\x65\xdd\xae\x47\x13\x13\x4f\ \x3c\x3f\x3e\x3e\x72\xe4\xc0\x0e\xec\xec\xec\x84\xad\x56\xbb\x19\ \xe5\xde\x12\x58\xe5\x6e\xbd\x47\x33\xfc\xc5\x8f\x07\x91\x55\x8b\ \xad\xf7\x9d\x12\x94\x88\x76\x77\x77\x03\xcf\x33\xfe\xa3\xa4\x00\ \x06\x38\x9f\xc1\x7d\x51\x72\x64\x7b\x55\xd0\x3f\x2c\x2b\x76\xc9\ \x62\x68\x62\xa7\x34\x85\x78\x26\xba\xdd\x7f\x14\x0e\x14\xc9\x47\ \x64\x12\x39\x1b\xe7\x28\x31\x06\xf7\xdc\x11\xf4\xaf\x8c\xf9\x12\ \x95\xfe\xc2\x56\x20\xe9\x0a\x43\x9f\x94\xaf\xcc\x81\x1d\xd8\xdc\ \x9c\x6f\x60\xc1\x5e\x88\x45\x24\xfd\x80\xd4\xc0\x09\x39\x17\x24\ \xe8\xcb\x68\xef\x2f\x9d\x68\x08\xac\x3e\x68\x61\xcf\xf4\xb6\xf7\ \x2d\xc3\x81\x81\x81\xc7\x86\x86\x86\xa6\xfb\x4b\xa2\xd4\xc2\x91\ \x91\x91\x74\x22\x61\x0f\x16\x0a\x05\xc2\x6f\xf4\xa8\x47\x36\x9b\ \xd3\x85\xc2\xd0\xb7\x8e\x1d\x3b\x56\x46\x75\xe8\x28\x63\x96\x46\ \x79\x2e\x2f\x2c\x2c\x7c\x22\x3e\x9e\x3c\x79\xf2\x67\x47\x8f\x1e\ \x7d\x1b\x82\x13\xa0\x74\x8c\x6d\x3b\x1c\x88\xbe\x7e\xfd\xba\x7e\ \x6a\xf2\x49\x44\xab\xc8\x67\x32\x5a\x26\xe6\x45\xac\x01\xd0\x02\ \xf6\x58\x33\x19\xd5\xbd\x20\x44\x38\x25\x12\x09\xaa\x56\x97\xe9\ \xc9\xa7\x26\x4c\xb9\x54\xf2\x71\x28\x46\x51\xa3\xae\xb7\xb7\xb7\ \xff\x7c\xe9\xd2\xa5\xd7\x04\x81\xd1\x43\xa3\x4f\xa7\xd3\x69\xea\ \xf5\x7a\x64\x27\x5c\x55\xc8\x65\x45\x4a\x57\x56\x96\x89\xbf\xff\ \xef\x31\x3e\x3e\xaa\x86\x87\x87\xf5\xca\xd2\x12\xf5\xc0\x09\xdd\ \x0b\x29\x9f\xcf\x4f\x65\x32\x99\xa2\x0d\x78\x33\x2f\xbd\x7c\x7a\ \xf2\xf5\xb3\x67\x29\xe1\xba\x1a\xd2\x49\xb9\x5c\x8e\x96\x97\x97\ \x59\xc5\xe8\xf8\xf1\x19\x4a\x26\x07\x38\x4d\x94\x4a\xa5\x58\x9e\ \xc9\xc5\xe8\x58\x56\x2c\xcb\xcc\x74\x23\x52\x8d\x08\x25\x08\x7e\ \xae\xdd\xee\x40\x07\x3a\x74\xeb\xd6\xbf\xe8\xec\xd9\xd7\xcc\x99\ \x33\x67\x94\xe7\x79\x54\xaf\xd7\xc1\xaf\x4d\x9a\x9f\x9f\x2f\x7f\ \xf8\xe1\xdf\x1e\xb7\xf1\x60\x7e\xbd\xb6\x36\xf4\x9b\x4b\xbf\xa5\ \xd4\x40\x4a\x65\x06\x07\x69\x7a\x6a\x8a\x3e\xfa\xf4\x53\xfa\xe0\ \x83\xbf\x00\xc2\x05\x40\xe9\x90\x03\x35\xb4\x00\x69\x82\x15\xd0\ \xd6\x7b\xb2\xac\x44\x0f\x43\x0a\x90\x16\xdf\x67\x47\x3c\x8c\x01\ \x79\x5e\x47\x9c\xba\x75\xeb\xdf\x74\xe8\xd0\x63\x6a\x76\x76\x56\ \x55\xab\x55\xea\x74\x7a\x28\xa8\x0e\xa5\x06\x07\x1d\xa5\xfc\x8a\ \x0d\x42\xb8\xff\xf9\x7c\xd5\x76\x12\x96\xe4\xcc\x76\x5c\xda\xaa\ \x6f\xd2\xc7\x1f\x7f\x42\xb5\xbb\x9b\x20\x4c\x15\xc6\x6c\x31\x66\ \xb3\x41\x9b\xcf\xb5\x30\x9c\xb9\xa0\x58\x98\x4c\x3f\xf7\x81\xd4\ \xbd\xef\x7b\x18\xa3\x06\xc5\x11\x5f\xbb\x76\x8d\xa6\xa7\xa7\xe9\ \xc6\x8d\x1b\x34\x3a\x7a\x98\x56\x57\xef\x12\x93\x1b\xcf\xa7\x6c\ \xf0\xce\x6d\xb5\x5b\x56\x6f\xbb\x47\xc9\x44\x92\x12\xc9\x04\xb5\ \x9a\x4d\x2a\x95\x2a\xf4\xa3\x1f\xff\x10\x91\x84\xa2\xe9\x71\x73\ \x12\x55\x74\x1c\x2d\xba\xc7\xfa\xa3\x94\x25\xda\xcf\x5f\x25\x6a\ \x19\x21\x23\xd5\x04\xe7\xbc\x8e\x47\x83\xd9\x41\xba\x78\xf1\x22\ \xab\x2b\xdd\xb9\x33\x4f\x4d\xa4\xe7\x9b\x2f\xbe\xc8\x28\x26\x19\ \x01\x67\x6b\x6b\x4b\xe3\x0b\x0e\x00\x62\x3b\x41\x0e\x90\x28\x14\ \xb6\x69\x7d\x7d\x83\x9a\xad\x06\x9a\x8c\x13\x35\x98\xb8\x23\x72\ \xce\x6d\x8e\x1c\xe7\x96\x62\x2e\xa0\x13\xb2\xf4\xca\x39\xa7\xc7\ \x08\x12\xdc\xc6\xf9\xfe\xb1\xaf\x8f\x51\xbb\xd3\xa6\x2c\xc8\x0d\ \x57\xa9\x98\x4f\xd2\xc6\xe6\x3a\x07\xe7\xd8\x80\xc2\x01\xe9\xf8\ \x19\xb2\xe1\x00\xe7\xd7\x45\x19\xb2\x91\x84\x63\x93\x5b\x2c\x89\ \xb1\x30\x36\x4e\x6c\x00\x0a\x68\xa8\x1f\xa9\xa1\x28\x70\x2d\x8e\ \xb0\x61\x15\xb7\x65\x9e\x63\x27\xba\x5e\x97\x4a\x43\xa5\x58\xd1\ \x91\x4a\x09\x82\xe8\xc8\x91\xc3\x09\x29\x43\x07\x51\x5b\x29\x10\ \x2d\x8e\x94\x11\xe0\xf1\xf3\xd5\x26\x34\xc0\x48\x83\x91\x5a\xa7\ \xa8\xee\x59\x62\xf9\x23\x68\x50\x5f\xbe\x1e\x94\xc5\x7e\x65\xa4\ \x06\x53\x84\x1a\xc2\x63\xdc\xaa\x81\x1a\x02\x4c\xb9\x49\xe9\xa8\ \xe2\x40\xa7\xdb\x22\x03\x06\x6b\x27\xea\xeb\x5c\x8a\x4c\x98\xdb\ \xb7\x6f\x53\x3a\x9d\x89\x34\x5e\x7f\x85\xf4\xc6\x7d\x8a\x49\xf7\ \xdf\x37\x70\xb4\xe8\xa8\xb4\x50\xfd\x8c\xde\x78\xf3\x27\x52\x9e\ \xbc\xb7\xb0\x11\xb7\x74\x59\x7c\x98\x84\xa1\xe7\xf9\x66\x67\xa7\ \x81\x12\xe9\xc4\xdb\x2d\x43\x50\xaa\x18\x42\x2e\x1b\xc4\xcb\x98\ \xe1\xda\xc4\xdd\x90\x11\x62\x78\x2d\xee\x78\x7d\xf5\x93\x6d\x62\ \x18\x2b\x61\xb4\x3d\xe3\xdc\x36\x5b\x1d\x59\x8f\x75\x80\x2b\xcd\ \xf1\x1c\x51\x52\x68\x46\x68\x43\x14\x3c\xb8\x1a\xa6\xd3\x29\x61\ \xb6\x83\xbc\x33\x21\x5f\x9d\x9b\xa3\x7f\xde\xfc\x07\x3d\x7f\xe2\ \x39\x6a\x34\x1a\x91\x31\xc7\x11\xe7\xa4\x41\xa9\x28\x5e\x01\x06\ \xe7\x5d\x44\xca\x24\xe5\x2f\x0b\x16\x8f\x0e\xee\x5f\x82\xfa\x4d\ \x4e\x4e\x23\xb8\x16\x41\xf9\xe2\xbd\xa2\x23\x82\xb6\xba\xba\xda\ \xe3\x2a\xe8\x16\x0b\xc5\x80\x17\x14\x82\x00\xa2\xc6\x6e\x83\x26\ \xc6\x8f\xd1\xd2\x42\x95\xa0\x60\x92\x0a\x46\x83\xf3\x99\x48\xb8\ \x22\x36\x26\xee\x09\xd1\xce\xc0\x50\xbe\x58\x10\x27\x79\x0d\xbe\ \x8f\xa3\x4d\x0f\xa6\x45\x41\x27\x26\x26\x68\x79\xb1\x4a\x59\xd4\ \xbe\x8a\xd1\x73\x41\x78\xce\x3e\xa7\xa0\x9d\x4c\xba\x5e\x32\x99\ \x24\xdf\xc3\xc6\x01\x24\x71\xa1\x56\xdb\x3b\x75\x3a\x71\xe2\x05\ \x3a\x77\xee\x9c\x20\xc0\x9b\x53\x96\x59\x8e\x8a\x9d\xe1\xf3\x24\ \x88\xc4\x7b\x02\xde\x1d\x6a\x10\xab\xd9\xde\x15\x22\x37\x00\x77\ \x11\x1d\x94\x25\xfd\xef\x37\x6f\xd2\x95\x3f\x5c\xa1\x16\xd6\xd4\ \x8d\x6d\x04\x98\x90\x72\x65\x27\x11\x40\x93\x1d\xd8\x45\xd4\x2d\ \x5c\xe4\xba\x7e\x17\xcd\x3b\x14\xad\x1e\x1e\x2e\xd3\xf1\x67\x9f\ \x8b\xd8\xec\x83\xaf\xd8\x17\xa2\x45\xd3\x0e\x94\x8d\x89\xca\xcd\ \x8b\xa3\x74\x8c\x4d\x1d\x8c\x0a\x5c\xc9\x0c\x64\x44\x05\xf3\xc5\ \xa2\x18\xe7\xe3\x1b\x33\x33\x74\xe5\x8f\x7f\x42\x2a\xee\x08\x7a\ \x4a\xd9\xb2\xc7\x2c\x97\xcb\x0c\xdf\xba\x0d\x75\xda\x86\x03\xd5\ \x53\xa7\x4e\x8d\x6c\xd5\xb7\x40\x0e\x9b\x76\x1a\x75\x0a\xe0\x61\ \x2e\x97\x91\x45\x3a\xbd\x8e\x30\xb8\x66\x6a\x28\x21\x9b\x02\x90\ \x95\x11\x60\x54\x38\x65\xec\x08\xc3\xaa\x81\x6a\x13\x73\xdc\xa8\ \xf8\x77\x26\x1c\x6f\xd7\x0b\x85\x22\x9d\x3e\x7d\x46\xd0\x63\xf6\ \xbb\xae\x43\x8b\x8b\xcb\xcd\x95\x95\x95\x05\x2e\xc3\xe0\xf2\xe5\ \xcb\xbf\xb8\x7a\xf5\xea\x47\x41\xb4\xb9\x34\x5e\xe0\x85\xaf\xbc\ \xfc\xea\x2b\xdf\x79\xfd\xbb\x8f\xf3\x04\x47\x53\x2a\x95\x61\xb0\ \x05\x07\xb0\x68\xfc\xe2\xc1\x0b\x1a\x13\x75\x42\x2b\xde\x17\x0e\ \xc0\x39\x17\xe9\xdc\xdb\x2e\xc2\xc1\x64\x32\xb1\xf5\xde\x7b\xbf\ \xfa\x5d\xab\xd5\xf2\x94\x1c\x96\xee\xf5\x5a\xb7\x11\x54\x4d\x74\ \x00\x3b\x93\xf7\x31\xbc\x7f\x6f\x0d\x7f\xff\xdc\x0f\x7e\x8f\x8e\ \x25\x0e\x2c\x2e\x2e\x51\xb1\x98\xa3\xf5\xb5\x4d\xc9\x7f\x06\xc8\ \x14\x01\x73\xe0\x05\x54\x07\x57\x98\xd1\x4c\x36\x18\x10\xa6\xd7\ \x37\xeb\x48\x43\x5e\xd6\x69\x34\x77\x01\x77\xa5\x0e\xa4\xdf\x42\ \x45\x6c\xfd\xaf\x6f\x46\x4e\xad\xb6\x96\xab\x54\xca\xf1\xae\xdb\ \x17\xd2\xb0\x61\x8e\x96\x91\x5a\x44\x79\xd9\x0c\x3b\x1c\x62\xce\ \x64\xf3\x79\x70\xc5\xa7\xb5\xb5\x35\x51\xc9\xbe\x03\xf9\x6c\x0e\ \x4d\xa8\x31\x80\x68\xdd\x83\xbc\x9a\xd9\x3b\x8d\x5d\x8f\x21\xe6\ \x63\x6a\x6a\x92\xee\xdb\x73\x1d\xe0\x88\xd4\xb0\xd9\xa9\xd5\x6a\ \xe6\x20\x0e\x74\xd6\x6b\x77\xdf\x5d\xa8\x2e\x3c\x11\x84\x41\x4a\ \x47\xdb\x9e\xfb\x84\x56\xdd\xfb\xaa\xfc\xe0\x3b\xa5\x8a\x34\x82\ \x42\xa4\xa7\x57\xad\xce\xff\x12\xe7\xb5\x87\x3a\xb8\x8f\xf3\x16\ \xf6\x6d\x87\xc1\xe6\xe2\xc3\x1c\x85\x01\xcd\x9b\xcc\x07\x22\xb2\ \x6d\x45\x7b\x2f\xee\xe4\xa3\x12\x6a\x90\x61\xde\x58\xf6\x1e\x66\ \xe4\x0b\x0e\xbc\xe6\xb9\xc1\xb6\x6c\x63\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\xbc\ \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\x83\x49\x44\x41\x54\x78\x5e\xb5\x57\x4b\x6c\x54\xd5\ \x1f\xfe\xee\x9d\x3b\x8f\x5b\x68\xe9\x50\x86\x3a\xd8\x48\xb5\x04\ \x4a\x78\x88\x0a\x21\xd4\x47\x5c\x28\x44\x43\x02\xc4\x05\x89\x1b\ \x16\xba\x91\x90\xb8\x71\xe5\x23\x3e\x12\x37\x24\xae\xdc\xb8\xd2\ \xb0\xd0\x95\x09\xff\xe4\xbf\x20\x04\x2b\x2a\x68\x95\x4a\xa0\xb4\ \x4c\xe9\x93\x96\x4e\x3b\xd3\xce\xab\xf3\xb8\xcf\x73\xef\x1d\xe7\ \x77\x72\x4f\x32\xc9\x64\x8a\x93\x8c\xbf\xe4\xcb\x79\x4c\xe6\x7c\ \xdf\xef\x71\x7e\x67\x46\xaa\x56\xab\x68\xc5\x9e\x3b\xfd\xe9\x4b\ \x00\x0e\x01\x08\xe3\xf1\x36\x06\xe0\xf6\x9d\xff\x7d\x5e\x40\x13\ \x53\x5a\x24\x0f\xc7\xb7\x47\x5f\xfd\xfe\xab\x0b\x1f\xaa\x11\x45\ \x05\x00\x49\x02\x37\x7f\x40\x40\x06\x84\x4f\xa3\xe3\xf3\x37\xce\ \x7f\x76\xe9\x0b\x00\x3f\xa1\x89\xc9\x68\xcd\xb6\x1f\x39\x38\xb0\ \xc3\x45\x40\xb5\x1d\xc0\x64\x80\xeb\x01\x8e\x0b\xb0\x1a\x3c\x0f\ \x60\x4e\x0d\xcc\x41\x49\x63\x38\x34\xf8\xd4\xcb\x1f\xbc\xf3\xe6\ \xbb\x35\xe1\xaf\xb5\x4b\x00\x1c\xc6\xc0\x4c\x8d\x7b\x1e\x52\x7c\ \xaf\x25\x0e\x61\xa8\x54\x2a\x28\x19\x0e\xf2\xc5\x0a\xde\x3a\x7e\ \xf8\xec\xeb\x2f\xee\x7f\x83\x52\xd7\x52\x0a\xde\xfe\xe8\xf2\xa1\ \xba\x25\x9f\xf7\xf5\xf5\x47\x97\x52\xeb\x83\xd7\xfe\x9c\x05\xf3\ \xb8\x76\x44\x42\x0a\x9e\x1f\x8c\xe3\xe9\x27\xa3\x10\x56\x2c\x95\ \x60\x4b\x1d\xe8\xea\xde\x86\xc2\x7a\x0e\x9f\x9c\x3f\xfd\x5e\x26\ \x5f\x36\x6b\x22\xee\xd5\xea\xa1\xd4\x4c\x80\x20\xa6\x93\xce\xbd\ \xb0\x37\x7e\x4e\xec\xed\x1f\x88\x75\xd3\xc8\x6c\xa6\xe8\xba\xb6\ \x65\x60\xe7\x76\x44\xbb\x54\x04\xe4\x2a\x6c\xe6\xe1\xc7\x9f\x13\ \x38\x31\xb4\x1b\xfb\x9e\x89\x81\x8c\x31\x06\xcb\x33\x41\x66\x07\ \xb6\x40\xd7\x75\xf5\xec\xc9\xa1\xc3\x77\x27\x17\xf7\x03\xf8\xe3\ \x71\x11\x38\x75\xee\xe4\xc1\xf7\x4f\x1c\x1b\xe8\xc7\x06\x66\x59\ \x16\x8a\xc5\x22\xfa\x7a\x7b\x70\xe6\x95\x7e\x8c\xdc\x5f\x46\x4f\ \x57\x04\xbd\x3d\x9d\x90\x24\x09\xa6\x61\x80\x2c\x10\x50\x90\xcd\ \x56\x90\xc9\x64\xe4\x7f\x5d\x03\x9a\xa6\x71\x2f\x36\x32\xc7\x71\ \xe8\xd0\x1a\x41\x00\xbb\x76\xf6\x62\x4f\xdf\x66\xdc\x4a\xac\x20\ \x95\x2d\x43\x8d\xa8\x98\x9f\xba\x83\xaf\x2f\x7e\x8c\x4b\xdf\x5c\ \x44\x72\x71\x9a\x6a\x47\xda\xa0\x06\x5a\x07\xf5\x0f\xc3\xf7\x52\ \x51\x14\x3c\xbb\x27\x8e\xc0\xdc\x1a\x6e\x4f\xae\xe0\xf8\xd1\x7e\ \x1c\x39\x3a\x84\xc1\xbd\xfb\xe0\x55\x65\x74\x76\x76\x62\xb5\xb2\ \x50\x6d\xab\x00\x21\x42\xd8\xa6\x4d\x9b\x70\x60\x57\x2f\xee\x4c\ \x4d\x60\x39\x67\xe2\x89\xde\x3e\xc4\x6a\xa0\xdb\x62\xdb\x0c\xa1\ \x50\xca\x6b\xab\x00\x59\x96\x79\x1a\x86\x87\x87\xa9\x16\xf8\xba\ \xa3\xa3\x03\xa6\xae\x08\x61\x9c\xdc\xb0\xa9\x5e\xa8\x57\xb4\xa9\ \x0f\x08\x84\x42\x21\xc4\xe3\x71\x9e\x86\x72\xb9\x4c\x35\xc3\x53\ \xe1\x54\x25\xe8\x26\x60\x3b\x1c\x30\x18\x40\x7a\x98\x0b\xb4\x35\ \x02\x54\x7c\x24\x80\xf2\x4b\x91\xa0\xb5\x6d\xdb\x98\x48\x27\xe1\ \x56\x79\x87\x84\xe9\x70\x72\x98\x5c\x44\x9b\x23\x40\x57\x2d\x1c\ \x0e\x63\xeb\xd6\xad\x88\xc5\x62\x88\x46\xa3\x3c\x05\x90\x02\x30\ \x98\xc4\x05\x04\xea\x4e\x37\xec\xb6\x0a\x68\x2c\x42\xaf\xea\xc1\ \xf3\x3c\x30\x62\x06\x50\x34\x78\x0a\xb8\x6d\x0e\x53\xdb\x6e\xb3\ \x00\x22\x17\xa3\xeb\xba\x90\x20\xf1\xb9\xc7\xf9\x29\xfc\x7e\x1a\ \x18\xf0\xa8\x00\x68\x36\xf0\x9f\x5c\x43\x02\x79\x2e\xd6\xb2\x2c\ \x41\xb3\x80\x80\xcd\x23\xc0\xbd\xf7\x78\x4d\xb4\x31\x02\xc2\x7b\ \x22\x16\x23\xed\xf1\x37\xc0\xf6\x38\xa1\xc5\x80\xbc\xc6\x53\xc1\ \xe7\x26\x6b\x73\x04\x28\xec\x44\x2c\x0a\x92\xe6\x74\x0d\x5d\x57\ \x46\x41\x03\x5c\x05\xe8\xd9\xcc\x3d\x47\x38\xd8\xc6\x6b\x28\xc2\ \x4e\xa4\x34\xd2\xa3\x24\x04\xf1\x74\x54\x5d\x44\x82\x40\xbc\x1b\ \xdc\xd2\x45\xa0\x33\x44\x51\xaa\xd2\x17\x1a\x05\xb4\x1a\x76\x41\ \x26\x42\x4e\xf7\x9f\x44\x04\x83\x41\x7a\xc4\xf8\x35\xac\x58\xc0\ \xec\x1a\x10\xed\x20\x72\x17\x77\x67\x73\x60\x96\x26\x79\x1e\x0b\ \xd4\x84\xcb\x74\x9c\x7f\x66\x55\x69\x35\xe7\x22\x02\xd4\x7c\x68\ \x4d\x22\x28\x1a\x14\x7e\xea\x8e\x24\x8e\x3a\x63\x39\xb7\x88\x5f\ \xc6\xc7\x90\x79\x94\x00\x24\xd9\xb4\xe4\xee\x05\xa3\xb4\x96\x06\ \x10\x24\x1f\xe8\x38\xfe\xbd\x56\x88\x69\xa4\x9e\x4f\x73\xd3\x34\ \x89\x94\x04\x50\x43\xa2\x91\xef\xcd\x8e\x5d\xc3\xc8\x95\x87\xc8\ \x96\xf4\x45\x25\xa4\x4e\x31\x44\x16\x59\x35\xb8\xc8\xcc\xd4\xf8\ \xcc\x8d\xef\x0a\x00\x22\x00\x98\x0f\x57\xd9\xa8\xc8\x88\x8c\x4c\ \xe4\x5c\xb4\x5c\xea\xff\xba\xae\x43\x55\x55\x12\xc4\x3f\x33\x74\ \x9d\xb7\x62\xe6\x38\xc5\xe5\x8a\xfa\x7f\xdb\xb2\xc7\xad\x7c\x7a\ \x41\xcb\x2f\xa5\x0a\xc9\x89\xac\xef\x75\x27\x00\x0b\x80\x21\x7c\ \x54\x9a\x79\x2e\x44\x08\xaf\xe9\x70\x91\x6b\x12\x42\xcf\x6f\xa9\ \x54\x12\x62\xc9\x7b\x1a\xa9\x35\xaf\x9b\xb7\x7e\xbb\xfe\xf0\xde\ \xf5\x19\x00\x9e\x8f\x2e\x00\x0e\x00\x5b\xd4\x9d\x2f\xc8\x91\xd1\ \x68\x44\x2a\x72\xcc\x51\x28\x14\x88\x80\x3c\xa6\x5f\xbc\x24\x90\ \xf6\xa8\xf7\x93\xf7\x24\x8e\xa3\x5c\x2e\x81\x31\xd3\x75\x99\x15\ \xf2\x43\xad\xfa\x88\xd4\x81\x3e\x0b\xfa\x42\x64\xa1\xa6\xa9\x08\ \xf2\x9a\x22\x10\x89\x44\xa8\xca\xc9\x73\xda\xe3\x8f\x4f\x32\x99\ \xe4\x7b\x73\x73\x73\x18\x1b\x1b\x83\x27\x29\xf6\x6a\x46\xb2\x2b\ \x85\xd5\x02\x1a\xac\x85\x3e\x20\x88\x2d\xd3\x44\x30\x14\xaa\x17\ \xc4\x09\x13\xf7\x13\x98\x7c\x30\x89\xf9\xf9\x79\xa4\x32\x45\xc3\ \xf2\x42\x65\x2b\x10\xcd\x9b\x0e\x56\xca\xf9\x95\x9b\xf9\xf4\x5c\ \xca\xbf\x6a\x9e\x80\x48\x81\x0f\xe6\xaf\xbd\x26\x11\x90\x28\xdc\ \x3c\xa7\x8c\x31\x1e\xf2\x44\x22\x81\xd1\xd1\x51\x4e\x9a\xce\x95\ \x35\x37\x18\xcb\xba\xe1\xf8\x3a\x0b\xef\x98\x35\xb4\xc2\x54\x6a\ \xf6\xee\xc8\xfc\xd8\x70\x12\xc2\x1a\x05\xb8\x44\x2c\x8a\x70\x43\ \x01\xba\xae\x61\x69\x69\x09\x0b\x0b\x0b\x9c\x78\x7a\x7a\x1a\xf9\ \x32\xab\x78\x6a\x7c\x15\x1d\x07\xf2\x88\x87\x1f\x58\xe5\xdc\xaf\ \xcb\x53\x7f\xfd\x9d\x18\xb9\x9c\x05\x20\xfb\x90\xea\x05\x10\xea\ \x05\xf8\x60\x02\x4d\x05\xcc\xcc\xcc\xe0\xf7\x2b\x97\xb0\x96\xd7\ \x2b\x91\x6d\xbb\xd3\xc1\xee\x63\xd9\xe0\xb6\xae\x09\x87\xd9\xd7\ \x4a\xb9\xe5\x91\xab\xdf\x5e\x10\xa4\x02\x92\x40\x83\x80\xe6\x42\ \x68\x5e\x15\x7f\xcf\x1b\xfe\x19\x01\x38\x05\x60\x16\xc0\x55\x00\ \x37\x7f\xf8\xf2\x4c\x5a\xaa\x99\x20\xf2\x89\xd1\x84\xbc\x5e\x04\ \x1a\x84\xd4\xb5\xe2\x7f\x00\x12\xab\x82\xc2\x52\x64\x01\xcd\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x9f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x31\x49\x44\x41\x54\x58\xc3\xc5\ \x97\x6d\x4c\x53\x57\x18\xc7\x2b\xea\xe2\x66\xc6\x32\x63\xb6\x6c\ \xdd\xa6\xcb\x26\x51\x37\xa3\x21\x99\x9a\x4d\x0a\x53\x96\x6c\x3a\ \x27\x43\x04\x8d\x1f\x8c\x73\x59\x36\x40\x5e\x12\x4d\x46\x15\x30\ \xbe\x47\x97\xbd\x32\xac\xca\x00\x87\x51\x51\x37\x40\x93\x81\x18\ \xa1\x2d\x60\x47\xa1\x2f\x58\x79\x47\x81\x16\x07\x14\x8d\x54\xd3\ \x84\x25\x24\x8f\xff\x07\xee\x35\xb5\x96\xd2\xde\xfb\xc1\x0f\xbf\ \xdc\x7b\xcf\x39\xcf\x39\xbf\xf3\x9c\x73\x7b\x4f\x15\x44\xa4\x78\ \x96\x3c\xf1\x10\xb5\x71\xcf\x4c\xf0\x3d\x68\x14\x28\x02\xb9\x5e\ \x88\x75\x7c\xbf\xd2\x2b\x3e\x0c\xa8\x85\xfa\x32\xaf\xb8\x32\xa1\ \x9c\xeb\xc3\x26\x12\xd8\xf2\x5b\xb1\xbe\xaf\xfb\x21\x11\x53\xdb\ \xee\x74\x57\x5a\x1c\xae\x0a\xb3\xc3\x75\x05\x5c\xb5\x3a\x5c\x62\ \x1d\xdf\x73\xc7\x5e\xf1\xea\x73\xd7\x6c\x43\x5c\x6f\xb6\xbb\x46\ \xb8\x8d\x08\x3f\x73\x39\xd7\x73\x3b\xbf\x19\xd8\x94\x9e\x63\x3b\ \x9c\x5f\xd9\xa3\x6b\x71\xba\x9b\x06\x88\x4c\x0e\x22\xcb\x1d\x22\ \xeb\x9d\x91\xd1\x5f\x21\xf8\x4d\x66\x7e\x8b\xbf\x0c\x88\xf1\x35\ \x6d\x4e\x77\xc7\x7d\xa2\x1a\x4c\x84\x9f\xb9\xdc\x6f\x06\x3c\x3a\ \x52\x82\x58\x0e\x68\xec\x23\xaa\xbb\x45\x54\xdf\x4b\x74\x30\xaf\ \xb2\x07\xe5\x89\x60\x81\xbf\x75\x15\xe3\x59\xb4\xeb\x01\x91\x30\ \x70\x2c\x97\xfb\xdd\x03\x3e\x3a\x6a\x34\x61\xe6\x35\x5d\xe3\x02\ \xe9\x87\xcf\x75\xa0\x6c\x69\xa0\x1b\x8c\xe3\x3b\x5d\x44\x7c\x0d\ \x68\x13\xfa\xea\xa0\x11\x02\x3a\x08\x18\x20\x90\x26\x41\xa0\x7d\ \x58\xa6\x80\x11\x4b\x50\xd5\x81\x65\xe8\x21\x4a\x95\x20\xd0\x2a\ \x57\xc0\x80\x0d\x78\xb5\x8d\x48\x7f\x1b\x02\x87\x82\x17\x68\xbe\ \x2f\x53\xa0\x16\x33\x2f\x6f\x26\xaa\xee\x24\x4a\x91\x20\x60\xbb\ \x27\x53\x40\x87\x99\x5f\xb6\x21\x0b\x58\x86\xed\x07\x83\x17\xb0\ \xde\x95\x29\x70\x0d\x1b\xb0\xd4\x4a\x54\xd1\x2a\x4d\xc0\x3c\x24\ \x53\xe0\x0a\x66\x7e\xc1\x84\x2c\x60\x19\x92\x25\x08\x34\x38\x65\ \x0a\xfc\xd3\x4e\x74\xb6\x81\xa8\x04\xcb\x90\x74\x20\x78\x81\xfa\ \x41\x99\x02\x97\x5b\x88\x8a\xfe\x25\xba\x88\x65\x48\x94\x20\x70\ \x7d\x40\xa6\x40\x29\x52\x5f\x70\x1d\x1f\x11\x33\xd1\x77\x12\x04\ \x6a\xfb\x65\x0a\xfc\x75\x93\xe8\x44\x2d\xd1\x69\x74\xf1\xad\x04\ \x01\xdd\x7f\x32\x05\xfe\xc6\x12\x68\xf4\xc8\x82\x01\xdf\x82\x1f\ \xcb\x6e\xa1\x2c\x3a\xc0\xc1\x95\x71\xa9\x39\xb6\xf2\xae\x91\x51\ \xdc\x57\x49\x15\xc8\x3d\x5e\xe5\x70\x69\x6a\x90\x85\x3a\xa2\xec\ \x02\x7d\x1f\x9f\x19\x02\x14\x88\x4e\x83\x70\x61\xdd\xd3\xe7\x86\ \x60\x04\xb6\xec\x29\xd4\xf7\xe5\x61\xf6\x39\x5a\x48\x68\x9d\x6e\ \x3e\x25\x05\x28\xa0\xfe\xe9\x92\x6d\x88\xe3\xfd\x49\x4f\xd6\x49\ \xe8\xea\x6d\x47\x2c\x7f\x9a\x46\x46\x7f\xc7\x32\xe4\x1b\x89\xd6\ \xa7\x8c\x7d\xdb\xd7\x4d\x12\xb7\x8e\xdb\x55\xd8\x1f\xb7\x57\x4a\ \x12\x10\x3a\x4b\xcc\x42\xea\x4f\xe1\x2d\xd0\xe0\x6d\x38\x86\x2c\ \x40\xca\xaa\x8a\xdf\x1d\xab\x50\x28\xa6\x7a\x10\xc2\x44\x26\x64\ \xc5\x8c\x49\x1b\x9d\xee\x03\xc5\x0d\xfd\x7c\xc2\x0a\xf8\x50\xfa\ \x44\x85\x42\x31\x85\x3b\x0c\xff\xe4\xeb\xd0\xc8\x84\xcc\x5d\xfb\ \xcf\x1a\x07\x4e\xdf\x20\x3a\x65\x21\x3a\x59\x37\xe8\x4e\xfe\xa1\ \xf4\x76\x64\x42\xb6\x59\x15\x9f\x75\x9c\xc1\xc0\x9a\xa8\x8d\xd9\ \xa6\xed\x28\x2f\xac\x1f\x74\x33\xbc\x5c\x11\x1b\x76\xbd\xce\x7d\ \x05\x25\x20\x0c\x3e\x0d\x3c\x07\x9e\x5f\xa4\xda\xfc\x4e\x44\x5c\ \x46\x76\xd2\xd1\x92\xee\x22\xcb\xf0\xff\x17\xf1\xeb\x58\x82\x63\ \xda\xa5\x6e\x64\x45\xdb\xfb\x40\xa3\xb5\x8f\xc1\xcf\xcc\xde\x33\ \xc6\x81\x4f\xbf\x3a\xd2\x84\x98\x38\xa1\x9f\x90\x89\x24\xfc\x0d\ \x3e\x03\xbc\x08\x66\x81\x57\xc0\x6b\x1f\xac\x4e\x4e\x89\x88\x53\ \x57\x6e\xda\x79\xa2\x33\x23\xaf\xba\xff\xe7\xf2\xf6\xe1\xdc\xea\ \xde\x87\x0c\xdf\x73\x59\x4c\xd2\x2f\xad\x1f\xc6\xec\xdc\x3f\x2f\ \xfc\xb3\xf7\x10\xf3\x12\x78\x01\x4c\x67\x89\x49\x05\x84\xc1\xa7\ \x0a\x83\x73\xf0\xab\xe0\x2d\xf0\x2e\x98\x0f\x16\x82\x45\x73\xdf\ \xff\xf8\xcb\x25\xab\xb6\x66\x2d\x5b\x93\x52\xb0\xfc\x8b\xf4\xf3\ \xcb\xd7\xa6\x15\x2f\xfb\x3c\xf5\x8f\xf0\xe8\x6d\x6a\xe5\xbc\xa5\ \x51\x68\x13\x06\xde\x06\x9c\xfe\x97\x05\x89\x69\xbe\xb2\xe0\x2d\ \x10\x22\x34\x9c\xf9\x51\xcc\x8e\x7d\xaa\x0d\xbb\x6d\x58\xc3\x9b\ \x98\x75\x0b\xd2\xd9\xca\xac\x58\x9f\xd1\x36\x11\x62\x9b\xf1\xf6\ \xea\x66\x8e\x57\xc5\x67\x36\x61\x7f\x58\x78\x1f\xf9\xca\x82\x2f\ \x01\x4e\x57\x28\x07\x8a\x7f\x42\x3a\x87\xa5\x23\xf6\xc1\x1b\x36\ \x68\x01\x03\xbe\x64\x8c\x0e\xe7\x42\xad\x80\xce\x3e\xfe\xac\x13\ \xef\xed\x1e\x75\x7c\xf5\x28\xe3\xab\x61\x70\x9c\x60\x04\x9e\xe9\ \x12\x04\xb4\x09\xc1\x62\xb0\xc4\x83\xc5\x42\x39\xef\xfc\x05\x92\ \x37\xe1\x64\xaf\x21\x50\x82\x37\xc1\x1c\x30\xd7\x83\x39\x82\xe8\ \x1b\xc2\xa0\x2c\x3e\x3b\x90\xd7\xf0\x11\x90\xc3\x06\x4d\x55\x03\ \x54\xc0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\xd2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x64\x49\x44\x41\x54\x58\xc3\xed\ \x56\x0b\x4c\x95\x65\x18\x46\xb4\x92\x72\x2e\x53\x67\x6e\xea\x32\ \x4d\x52\xcc\x4b\x4e\x41\x42\xa4\x04\x34\x38\x20\x77\xe1\x98\x5c\ \x04\x01\x15\x11\x31\xe0\x80\x5c\xbd\x00\x02\xde\x41\x44\x40\x49\ \x11\x6f\x04\x89\x01\x79\x03\x0b\x02\x2f\x28\x6a\x71\x92\x05\x23\ \xe1\x44\x63\xd0\xdc\x8e\xd2\x76\x36\xb6\xa7\xe7\x3f\x7c\x78\x41\ \x45\x72\x36\xb7\xd6\xd9\x9e\x71\xce\xff\xff\xef\xf7\x3e\xef\xf3\ \x3e\xef\xfb\xa3\x03\x40\xe7\x55\x42\xe7\x7f\x02\xff\x59\x02\x9f\ \xca\xe3\x66\x11\xbe\x44\x0a\x91\x21\x10\x43\xd8\xfc\x6b\x04\x78\ \xb8\x81\x48\x52\xee\x15\x9a\x57\x1f\x9a\x58\xdd\x1a\xb5\xad\xf1\ \x6e\x74\x8a\x4a\xbd\x71\xa7\x4a\x1d\x9f\xa6\xec\x08\x4d\x28\x6d\ \xe2\xfd\x3c\xc2\xe1\xa5\x11\xe0\x61\x16\x52\x85\xf2\xb5\xd9\x4a\ \x45\x92\xb2\x63\x7d\x82\xa6\xcb\x53\x01\x38\x04\x00\x8b\x7c\x00\ \x73\x77\x60\xa1\x27\xe0\xb2\x1a\x88\x4a\x01\x72\x0b\xda\x3b\xad\ \xbd\x93\x6b\x19\x33\xee\xa5\x24\xf6\x0c\xc9\xab\x0f\x4b\x52\xa9\ \x7d\xa2\x00\x1b\x26\x9d\xef\x0d\xcc\x5e\x06\x4c\x77\x03\xa6\x3a\ \x03\x93\xed\x81\x49\xd6\xfc\x2e\x03\x2c\x3d\x80\x2d\x7b\x80\x1d\ \xd9\xb5\x6d\x8c\x0d\x7e\xd1\xc4\xe3\x08\x85\x54\x71\x18\xe5\xf5\ \x8a\x04\xac\xd6\x00\x9f\xac\x60\x62\x26\x9f\xe3\x47\xac\x22\x48\ \x66\xb6\x3f\x30\x8d\xd5\xeb\xbb\x02\x13\x6d\x81\x19\x8e\x80\x37\ \xd5\xc9\x2f\xd1\x74\x49\xad\x7a\x91\xe4\xab\xad\x96\x27\xd7\x06\ \xc7\xd7\xb6\xf9\x6f\x04\x64\x6b\x01\xd3\x95\x80\x31\xe5\x35\x5d\ \x4f\x22\x31\x94\x9a\x32\x7b\xec\x02\xdc\x77\x03\x4e\xc9\x94\x9f\ \xca\x18\x91\xe0\x54\xb6\x62\x06\x89\xc8\x43\x80\x63\xdf\x02\x52\ \x1b\xfe\x71\xd5\xbe\x11\x85\x0d\xeb\x93\x35\x5d\x4e\x3c\xe4\x33\ \x1e\x6a\x12\xc8\xbf\xac\xc8\x2e\x11\xf0\xcb\x04\x62\xbf\x06\xd2\ \xce\x03\x5f\x55\x02\x99\xdf\x03\xf1\x45\x80\x2f\xaf\x5b\x91\xac\ \x21\x9f\x9f\x43\x95\x96\x46\x90\x40\x09\xe0\x1f\x99\x57\xdf\xdf\ \xe4\x0e\xd6\x52\xd5\x09\xb5\x6d\x2b\xe2\x68\xac\x75\xec\x73\x50\ \x77\xe2\xc5\x4c\xec\x9b\x05\x6c\x66\xa2\x23\x97\x81\x1f\x1a\x80\ \xd3\x97\x54\xea\xe4\x9c\xf2\xe6\x80\x4d\x79\xf5\xf1\x39\xd5\xad\ \xc9\x67\x81\xe5\xfb\x80\x05\xd1\x8c\x09\x66\xe2\xad\xc0\xa9\x72\ \x80\xe7\xd6\xf4\x4b\x72\x87\x95\xa9\xb7\xc2\xb6\xb5\x77\xba\x92\ \xb9\x39\x0f\x30\x0b\x63\x45\x5b\x28\x73\x3a\x10\xce\x8a\x0f\x54\ \x01\x15\x8d\x40\xe9\x55\x95\xda\x2d\x28\xf5\x96\x98\x79\xb9\xd8\ \x05\x31\xc9\x27\x38\x7e\xc7\x01\xc7\x6d\x80\xfd\x26\x4e\x02\x09\ \x9f\xf9\x51\x78\xe0\x91\xd9\x35\x78\x4a\x72\x85\x07\x1d\x1e\x94\ \xa4\xe9\xb2\x0b\x65\x72\xca\x6e\x11\x0b\x38\xef\x00\x02\x8e\x00\ \xdb\x2f\x00\xc5\x75\x40\x65\xbd\x5a\x13\xbe\xb3\xb0\x41\x24\xb6\ \xe8\x75\x86\x59\x50\x52\x61\xc3\x16\x4a\xee\x99\xc1\xea\xf7\x92\ \x30\xbf\x67\xe6\x2b\x3b\xa4\xbc\xd2\x03\x31\xfb\x72\xbb\x7f\xf4\ \x90\xe8\xe9\xf7\xca\xe8\xd2\xa6\x55\x94\x58\xc6\x8a\xcd\xc3\x69\ \x9a\x04\x56\xcd\x7e\x6e\x38\x05\xe4\x5c\x01\xaa\xee\x00\x45\x55\ \x8d\x77\x6d\x7c\xb5\x33\xed\xfe\xac\x8d\xe8\x1f\x97\x57\x9f\x72\ \x0e\x58\x97\xc7\x11\xcc\x07\xca\x6a\x69\xd4\x35\x5a\xa5\x0c\xa4\ \x07\x6a\xca\x68\x98\x3d\x39\x0f\x49\x48\x7f\x43\x92\xd9\xef\x78\ \x26\x67\x62\x0b\x3a\xdb\x9e\x55\xfb\xe5\x02\x89\x34\x58\x01\xab\ \xbe\x7a\x47\xd3\xb5\x79\xbf\x76\xab\x49\xab\xd6\xa8\x8f\x16\xca\ \x63\x33\xcb\x9b\x77\x96\x01\x09\x74\x7e\xc1\x25\x60\xef\x31\xed\ \x0e\x50\x68\x37\xa1\x44\x20\xfd\x10\xb0\x91\x63\x13\x9a\xa8\x25\ \x51\x14\x18\xaf\xec\xf0\x64\x8f\xad\xa5\xf9\xde\x0c\xb8\xa6\x01\ \x6b\x4f\x02\xbb\x2a\xd8\xbb\x5f\x81\x4b\x8d\x6a\x8d\x4f\x64\xb6\ \x52\xf2\x47\x3f\x3c\x94\x92\x5e\xdc\x78\x37\x83\xb1\xc7\x98\xfc\ \xfc\x35\xb5\x46\xe6\xd3\xbd\x05\x1f\x10\x88\x92\xcc\xc1\xa3\x16\ \x73\x4c\x5c\x14\x6a\x8d\x23\x2b\x96\xd1\xed\xb6\x49\xc0\x32\x4a\ \x1e\x42\xc9\xf7\x4b\x0e\xa7\xe4\x95\xb7\xdb\x3b\xfb\x92\xbc\xf7\ \xbb\x61\x09\x4d\x79\xea\x67\x56\x4e\xd9\x2b\x94\x9a\x2e\xaf\x30\ \x2d\xf1\x07\xb1\x5a\x02\x21\x5c\x16\x66\x3e\xdd\x5b\xcc\x8c\x2e\ \x5f\x18\xdb\x2d\xb9\x57\x0e\x10\x41\xc3\x1c\xbc\x06\x54\xab\x80\ \x93\xe5\xca\x0e\xdb\xee\xe4\x0e\xfd\x1c\xdf\x98\x83\xa5\xca\x8e\ \x0b\xb7\xd9\xb2\xdf\x80\x98\x54\x6d\xcb\x1e\x53\x4d\x4b\x40\xc1\ \xdd\x6c\xce\xb9\x36\x22\xcc\x99\xdc\x81\xed\xf0\x3a\xcc\xe4\xa5\ \x40\xd6\x75\x4a\xfe\x3b\x57\xe7\xc5\xc7\x8d\xda\x9f\xdd\xe1\x1d\ \x91\xad\xbc\xc9\xd8\x9b\x24\x1f\x9b\xa6\x4d\xae\x78\xe2\xff\x01\ \x89\x40\xec\x01\x6e\x32\x4a\x6e\xc9\x7e\x3b\xa6\x32\x39\xcd\xb6\ \x8e\x86\xd9\x5e\xcd\x31\xe3\x7c\xef\x2b\xa8\x6e\x35\x73\x8b\x89\ \x33\x75\x89\xf8\x48\x47\x47\x67\x20\x31\xe8\x19\x90\xee\x0d\x34\ \xb2\x09\x1c\x29\xbd\x72\x2f\xfe\xd4\xde\x59\xd7\xfa\x30\xb9\xce\ \xd3\x3e\x12\x81\x44\x1a\x6c\x19\xe7\xd3\x85\x8b\xc5\xe7\x28\x0d\ \xc7\xe4\xb1\x5c\xa3\xe9\xec\x5b\x6e\x95\x4a\x3d\xdf\x35\x3a\xcb\ \xc8\x36\xe8\x63\x3e\xae\x47\xbc\x49\xbc\xf5\x0c\x48\xf7\xf4\xe6\ \xb9\x6c\x58\x9d\x7a\xbc\xea\x8f\x6b\x4d\x9a\xae\xe5\xe1\x59\x4a\ \x33\xb7\xe8\x0d\x82\x9c\x2e\x31\xe0\x09\x02\xd9\x17\xba\x37\x5a\ \x70\x21\xb7\x14\xd7\x66\x02\xc7\x72\x37\xa5\x3f\xf4\x0b\x67\x96\ \xf2\x9d\x28\xaf\xfb\xd3\xc4\x31\x2c\xe9\x43\x23\xbb\x99\x0c\x19\ \x45\xbc\x2b\x30\x5a\xa0\xe7\xf7\x28\x43\x59\xc0\xd2\xd8\xb4\xe2\ \xe6\xb2\x1b\xed\x7f\xb9\x04\xee\xae\x33\x71\x52\x7c\xc9\xeb\x43\ \x88\xc1\xc4\xeb\x42\x29\xdd\xc7\x08\x54\xd4\x73\x44\x6a\x98\x90\ \x49\x8f\x73\xc6\xbf\xe1\xa8\x9d\x6e\x02\xce\xb5\x00\x57\xda\x80\ \x26\x35\x5f\x2e\xc5\x35\x1d\x73\xac\x03\x12\x19\x32\x99\x98\x42\ \x18\x10\x53\x05\xa4\xef\x53\xde\x9f\x6e\xfe\xb9\x67\x68\x46\xc3\ \xae\xbc\xca\xb6\x79\x4e\x8a\xa2\x59\x8b\x7c\xfd\x78\x7d\xac\x20\ \x37\x9c\x18\x2a\x54\x7c\xed\x01\x09\x69\x7d\x96\x5c\x56\xa9\x89\ \x7b\x25\x57\x5b\xee\x7d\x77\xbd\xe5\xde\x99\xeb\x2d\xf7\xcf\xd6\ \x12\x37\x5a\xee\x9f\xbf\xd1\xdc\x29\xe1\x5c\x6d\x73\xa7\x67\x68\ \x7a\xd3\x98\x49\x86\x4b\x19\x66\x26\x85\xf6\x82\x74\xcd\x74\x8c\ \xbe\xa1\x7c\xc6\x02\xcf\xad\xc3\x46\x8d\xb7\xe0\xef\x59\xc4\x34\ \x41\x7a\xbc\x50\xeb\x6d\x41\x62\x90\xb6\x1d\x34\x97\x25\x7b\x94\ \x65\xba\x24\xf2\xe0\x3c\xe7\x88\xc3\x26\x0e\xa1\x47\x8d\xed\x82\ \xf3\xe7\xda\x06\x15\x1a\xda\x04\x9e\x36\x94\xad\x29\x36\xb4\x0e\ \x28\x95\x30\x61\xa6\x65\x34\x83\xec\x09\x47\xc2\xa9\x17\x1c\xc5\ \xbd\xc5\x84\x8c\xb0\x22\x2c\x05\xb1\xb9\xc4\x74\x62\xa2\x50\x43\ \x52\xe2\x8d\x1e\x15\x06\x8a\xfe\x0c\x13\x72\x49\xf2\x1a\x11\x0b\ \x08\x6b\x71\xa8\x33\xe1\x4a\xc8\x89\x2f\x08\x77\xc2\xa3\x17\xdc\ \xc5\x3d\xb9\x78\xd6\x59\xc4\x5a\x8b\xb3\x8c\xc4\xd9\x63\x45\xae\ \xc1\x22\xf7\xab\x27\xa0\x2b\xe4\x18\x2a\xe4\x99\x28\xe4\x9a\x2b\ \xe4\xb3\x14\x72\xca\x84\xbc\x2f\xbd\x05\x03\x84\x21\xf4\x84\x41\ \x46\x0b\xc3\x4c\x16\x06\x92\x8c\x64\x48\x18\x13\x26\x92\xd1\xfa\ \x32\xa1\x78\xc6\x58\xc4\x3c\xdf\x84\xe2\xa3\x2b\x46\x43\x4f\xb0\ \x1b\x2e\x98\x4a\x72\xbd\x47\x4c\x20\x3e\x20\xf4\xfb\x1a\x43\x71\ \x4f\x5f\x3c\x3b\x41\xc4\xf6\x3d\x86\x8f\x7c\x74\x05\xab\xd7\x45\ \x7f\x86\x88\x00\xa9\x5f\xef\x10\x23\x88\x91\xcf\x5b\x44\xe2\x99\ \x11\x22\x66\x98\x38\xe3\x89\x45\xd4\xf3\x2e\xf8\x1b\x95\x0d\x18\ \x5b\x26\xd0\x37\x16\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x04\xb6\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x48\x49\x44\x41\x54\x58\xc3\xe5\ \x57\xcf\x6f\x1b\x45\x14\xfe\x66\x77\xed\xf5\x6e\xb6\x24\xb1\x1b\ \x24\xa0\x6d\x44\x10\x3f\x0a\x14\x81\xa0\x34\x42\xe4\x50\x10\x48\ \x88\xbf\x82\x53\xfe\x01\x8e\x48\xa8\xe2\xc0\x85\x7f\x20\x5c\xb8\ \x72\xe1\x08\x87\x22\x81\x25\x40\x21\x04\x50\x91\x9d\xa4\x2d\x4e\ \x4b\x4c\xda\xca\x8d\x08\x75\x12\xd7\xf6\x7a\xd7\xc3\x7b\x33\xbb\ \x9b\xd4\x3f\xd3\xd6\xd0\x03\x23\xbd\xcc\x6c\xe6\xf9\xbd\x6f\xbe\ \xf7\xe6\xcd\x8c\x90\x52\xe2\x41\x36\x03\x0f\xb8\x59\xf1\x60\x7e\ \x7e\xfe\x5d\xea\x4e\xff\x47\x7e\x97\x17\x16\x16\xbe\xbc\x03\x00\ \x3b\x7f\xe4\xb1\x13\x1f\xce\xcc\x3c\x0e\xd3\x34\xb1\xfa\x93\x8f\ \xb5\xe5\x3a\xf6\xaa\xe1\x7d\x79\xf2\xc6\x4d\x9c\x3c\xed\xe0\xd9\ \x57\xd3\x08\xc3\x10\x57\xae\x5c\xc5\x8d\x6b\xe5\x73\x34\xd5\x05\ \x00\xdf\x7c\x9b\x47\x61\x65\x0d\xd9\xec\x51\xdc\xdc\xb0\xf0\xde\ \xfb\xaf\x8f\x64\xb9\x9f\x7d\xfa\x3d\x6e\x36\x02\x2c\xfe\x90\x47\ \x36\x37\x85\x93\x4f\xcd\x74\x87\x80\x5b\xca\x4a\x61\x62\x22\x8b\ \xdc\xd1\x29\x38\xa6\x83\x4c\x26\x33\x12\x00\xd3\x4f\x3c\x0a\x77\ \xbc\xae\x16\xc6\x3e\x7a\xe6\x00\xb7\xb4\x9d\x81\xe3\xb8\x70\x5d\ \x0f\xb6\x39\x86\x4b\x97\xd6\x49\x83\x54\x52\x69\xc0\xb6\x01\x06\ \x44\x3a\xaa\x4f\xd3\x77\x3a\xad\xe7\x83\x00\xf0\x7d\x92\x26\xd0\ \x68\x00\xcd\x46\xd4\xd3\x77\xcb\xc7\x64\xee\x21\x98\xb6\x89\x17\ \x5e\x7c\x05\xeb\xa5\xcb\xfd\x01\x18\xa6\x41\x62\x91\x98\xfc\x81\ \x33\x67\x5e\x1e\xb2\xb6\x50\x0b\x5b\xb1\xe8\x37\xae\x4b\x03\xb7\ \x4b\xeb\xfc\xf9\x35\x65\x53\xdb\x16\xfd\x01\xb4\xc3\x36\x49\x88\ \x30\x20\x69\x07\x3a\x04\xac\x2f\x05\x75\x52\x8d\x25\x8f\x55\x2f\ \x75\xcf\x3f\xe4\x29\x35\xa6\xb9\xa8\xac\x90\x1a\xb4\x2b\x89\x80\ \x6c\x99\x64\xb7\xad\x44\x0e\x00\x40\x46\xc3\x76\xa8\x85\x40\x14\ \x8b\x7f\x68\x8a\x6d\x8a\x9b\x4d\x74\x3b\x24\x19\x3b\x12\x1a\xa7\ \x53\x9c\x38\x44\x33\x87\xa0\x45\x94\x53\x18\xea\x1c\x06\x92\xba\ \xaf\xbf\x9b\x2d\x65\x0b\x96\xb6\xdb\x96\x03\x00\xc8\xb6\x44\x5b\ \x09\x31\x21\xdb\x98\x9b\x7b\x69\x78\x86\xb1\x41\xa6\x5f\x85\x80\ \x18\x9b\xec\x56\x59\x29\x94\x21\xd8\x26\xd9\x66\x1f\x7d\x01\x68\ \x42\xa5\x36\x4a\x62\x73\xe2\x45\x4d\x45\x82\xff\x0a\x45\x34\x92\ \x12\x2e\xa2\x9f\xed\x0f\xf4\x3c\xc7\x42\xea\x71\x6c\x2f\xb1\xdf\ \x1f\x80\xd0\x22\xb4\xfc\x52\x2c\x43\x5a\x06\x44\xda\xd2\x74\x33\ \xf5\x71\x38\x6c\xde\x1d\x1c\x02\x5a\x39\x51\x2c\x29\x0c\xa2\xa1\ \x29\x57\x42\x63\x49\x61\x11\x7e\x90\xd8\x4b\xec\xf7\x03\x20\x12\ \xdf\x02\xde\x44\x0a\x67\x5f\x7b\xfe\x70\x1b\x9d\x77\x0d\x83\xf2\ \xdc\x9e\xd3\x17\x96\x7f\xa5\x5d\x29\xf6\x71\xf4\x65\x40\x08\xe5\ \x5c\x08\x03\xc7\x8f\x4f\xd1\x02\x53\x23\x29\x44\x6c\xab\x54\xda\ \x55\x76\x3b\x11\x74\x30\x20\x60\xd0\xfe\x37\x0c\x01\xd7\x71\xf0\ \xf3\x85\x55\x8c\x1f\xf1\x54\x7d\xb8\x97\xc6\xdb\xba\xba\xbb\xa7\ \x6c\x19\x86\xa1\x44\x0c\x02\x60\xf0\xea\x0d\xa1\x14\xaf\x5d\xaf\ \x60\xeb\xaf\x6a\x12\x1a\xc8\xfd\xf4\x39\xf8\x2d\xa2\x1c\x43\x57\ \x74\xf7\xd3\xba\x49\x95\xd1\x64\xe7\x6c\x7b\x20\x03\x4a\xc1\x88\ \xd0\x9a\xea\x54\x1c\x45\x33\xc9\x96\x60\x66\x85\x06\x31\x24\x04\ \x86\x72\xbc\x71\xb5\x84\xcd\xcd\x32\xea\xf5\xda\x7d\x39\x77\x9c\ \x31\x1c\x3b\x76\x02\xb9\xa9\x87\x0f\x13\x02\xbd\x7a\xa6\x8b\x2b\ \xd6\xc7\x1f\x7d\x80\x9d\x9d\x1d\xd4\x6a\x35\xb4\x5a\xad\x04\xa0\ \x45\xd5\x31\x16\x4e\x54\xee\x19\x34\xcf\xa9\xd8\x53\xd1\xf1\xe9\ \x70\x8a\xe5\xf3\x2f\xbe\x52\x36\x59\xd8\xc7\x10\x06\x38\x0f\x0c\ \x4c\x66\x73\xc9\xff\x17\x17\x17\xb1\xb4\xb4\xa4\x1c\x70\x01\x9a\ \x9d\x9d\xa5\x2a\x39\x77\x68\x16\xd8\x96\x88\x72\xa0\x93\x01\xa3\ \x13\x40\x9c\x84\x0e\x65\x6e\xdc\x8a\xc5\x22\x9d\xe5\x74\x4f\xc8\ \xe5\x94\x14\x0a\x85\x21\xd5\x59\x76\x84\xc1\x49\x16\x26\xc4\x90\ \x42\xa4\xc3\x20\xd4\xa9\x17\x37\x97\x8e\x59\x3e\x19\x63\x8a\xe3\ \xbe\x5f\xeb\x5a\xa5\xd2\x97\x3d\x77\xc9\x9d\x0c\x20\x42\xc8\x20\ \x0e\x18\x39\x98\x3c\xdc\xdf\xf5\xee\x88\xb6\xac\x8c\x0e\xb9\x01\ \x95\xf0\x40\xd9\xee\x89\xf7\xde\x1a\xdf\x2d\xf8\x2e\xe0\xd3\x8d\ \x89\xa5\x2f\x03\x41\xe0\x53\xd1\x68\xd2\x8d\xaa\xa1\x32\x7b\x64\ \x8d\x96\xbf\xbb\xb7\x8b\x4a\xe5\x06\x6e\xfd\xbd\xdd\x1f\xc0\xed\ \xbd\xdb\xd8\xa9\x56\x95\x92\x21\x46\xf8\x62\x92\x21\x36\xd6\x4b\ \x28\x5d\xbe\x48\x87\xa9\x95\xe7\x77\x41\xcf\x10\xd4\x9b\x75\x6c\ \x6d\x55\xe8\x74\x0d\x70\xc4\x1b\x43\xfe\xbb\x1f\xe1\x79\x1e\xce\ \xbe\xf9\x4e\xd7\x39\x5e\xde\xac\x0c\x4a\x43\xd2\xa6\xdb\x15\xd9\ \xd9\xde\xbe\xc5\xef\x00\xac\xac\xfc\x46\x97\xa8\x54\xfe\x99\xa7\ \x9f\xfc\x84\x14\xf2\x3d\x01\x5c\xdf\xfc\x13\xbf\x5f\x5c\x55\x49\ \xf7\x35\x85\xa0\x33\x9b\xef\x7a\xe1\x52\xdf\xae\x42\xba\x35\x4f\ \x4f\x4f\xe7\x4f\x9d\x7a\x4e\x39\xa7\x57\x51\xad\x17\x80\xe5\xb7\ \xdf\x7a\xe3\xdc\xbf\xf9\x1c\xeb\x74\xae\xb8\xfa\xdf\xbf\x8e\xff\ \x01\x8c\xae\xac\x22\x42\x7f\x21\xa9\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x05\xe8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x05\x7a\x49\x44\x41\x54\x58\xc3\xc5\ \x96\x0d\x4c\xd4\x75\x18\xc7\x1f\x2e\x01\xb1\xc0\x38\x1c\x6f\x81\ \x61\x9a\x24\x18\x57\x20\x21\xa9\xbc\x1b\xd4\x28\x96\x2d\x93\x36\ \x27\x45\xb9\xca\x88\x4a\xd9\x60\x33\x29\x50\x47\x80\xbc\xb8\xb0\ \x40\x40\x4e\x8e\x57\x89\xe0\x70\x8a\x32\x72\x91\x81\xd3\x39\x60\ \x97\x20\x06\x2c\x25\x85\x89\x16\x2f\xcd\xdd\xb9\xe0\xe9\x79\xce\ \xdf\x7f\xfb\xeb\x4c\x8e\x08\xba\xed\x33\x8e\xdf\xff\x7f\xff\xe7\ \xfb\xbc\xff\x01\x11\xe1\xff\xc4\xb4\x9b\x00\x1c\x89\x08\x62\x23\ \x11\x44\xb8\xce\x99\x00\xfa\xb8\x3d\x09\xb0\x27\x09\xe0\xec\x1e\ \x80\xde\x4f\x00\x5a\x82\x01\x0e\x08\x31\xee\x73\x21\x20\x2a\x19\ \x40\x97\x4f\xb7\xca\x61\x31\x8b\x00\x76\xd2\x75\xcb\xd9\x16\xb0\ \x9d\x0d\xb2\x08\xfe\xce\x46\x39\x1a\x7c\xf6\x16\x40\x1d\x9d\xf9\ \xcc\xb6\x80\x8d\xec\xed\x07\x00\x27\xe8\xfb\xf3\x5c\x0f\x2c\x42\ \x26\x2a\x6a\xd6\x04\x70\x8e\x57\x01\xec\xcb\x03\xb8\x95\xea\xe4\ \xd4\xce\x85\x28\xce\x37\x7f\xe5\xe2\x32\xc4\xc2\x58\xe0\x6c\x0a\ \x30\x7a\xcf\xde\x6a\xfc\xfc\xf4\x22\xe7\xdc\x0d\x9b\x0b\xbc\xbc\ \xae\xcf\x85\x00\x77\xae\x78\xae\x7c\xb5\xa7\xa7\xbe\x22\x34\xd4\ \xc0\x91\x60\x6a\x37\x6c\x40\x29\x2d\x26\x1b\x03\x58\xc6\x29\x13\ \xad\x6c\x6b\x6a\x0d\xb8\xf2\x0f\x42\x15\x8a\xaf\xd9\xa8\x76\xeb\ \x56\x23\xdf\x45\x47\x9b\x5c\x03\xf4\xf1\x0d\x0b\x0b\x4b\x3c\xdf\ \xd8\xf8\x8b\x7e\x74\xf4\xaf\xa1\xee\xee\x3f\xf9\x99\x26\x0f\x22\ \xf1\x90\x30\x8e\x44\xb1\x9d\x1d\x1e\x72\x72\xc2\x83\x16\x16\xc8\ \xb5\x41\xe7\x1f\x3e\xc8\x70\x48\x48\x48\xe2\x39\xad\xb6\x5f\xaf\ \xd7\x23\x33\x36\x34\x84\x27\x93\x92\xae\x49\xc2\xa7\x23\xc0\x96\ \x6b\x20\x07\xe0\xa6\x7c\x1e\xbc\x0c\x70\x88\x43\x2b\xbb\xcf\x92\ \x0d\x07\x05\x05\x25\xfe\x54\x53\xd3\x3f\x32\x32\x82\xcc\x28\xd1\ \xd3\xd8\x78\xfb\x1d\x95\xaa\x54\xa4\xc1\x6d\x5a\x02\x24\x8f\xb8\ \x26\xd8\xf0\xa9\x98\x18\x1c\xed\xef\xc7\xac\x80\x80\x56\xd1\x9e\ \x0b\x88\xb5\x61\xbe\xbe\x99\xa7\xca\xcb\xfb\x07\x07\x07\x51\xe2\ \x4a\x4f\x0f\x7e\x9b\x90\xd0\x27\x8a\xd8\x77\xda\xbb\xe0\xde\x54\ \xb4\x16\x16\xfe\x66\x30\x18\x90\x39\x97\x9b\xcb\xf9\xdc\x1c\xe2\ \xe3\x9d\x79\x22\x3f\xff\x6a\x5f\x6f\x2f\xf6\xca\x38\x5b\x55\xa5\ \x8f\x59\xb9\x92\xbd\x0e\x93\x0a\x6f\xa6\x02\x6c\x83\x83\x83\x13\ \xc7\xc7\xc7\x91\xb9\x79\xf5\x2a\x96\xa4\xa6\xde\xa8\xae\xae\xc6\ \xd6\xd6\x56\xec\xec\xec\x34\x72\xfe\xf4\x69\x2c\x89\x8b\xbb\xc8\ \xe2\x08\xaf\x19\x6d\xc3\x7b\x05\xb0\x37\xa7\x6b\x6a\xae\x0d\x0f\ \x0f\xa3\x5a\xad\xc6\xe4\xe4\x64\xac\xad\xad\xc5\xe2\xe2\x62\xd4\ \x6a\xb5\x78\xbc\x20\xff\xd6\x6b\x1e\x1e\x07\x85\xd7\x0b\x66\xbc\ \x8e\x65\xed\x18\xb1\xc2\xc1\x61\xf7\x81\x84\x84\xeb\x65\x65\x65\ \xc6\x10\xfb\xfb\xfb\xa3\x8d\x8d\x0d\x0e\x0c\x0c\xe0\xf1\x86\x06\ \x4c\x89\x8e\xee\x9e\xce\xa6\x9c\xca\xa8\x8d\x28\xb0\x77\xb9\xf8\ \x76\x3b\x3b\xff\x7c\x24\x37\x77\xb2\xa2\xa2\x02\xb3\xb3\xb3\x31\ \x2f\x2f\x0f\x2b\x2b\x2b\xb1\xbe\xbe\x1e\x2f\x5d\xba\x64\xe4\xb2\ \x4e\x67\x08\x50\xa9\xd2\x1f\x14\xf6\x29\x05\xd0\xc7\x93\xbd\xe0\ \xf7\x00\x9e\x76\xfb\x01\xc6\x8c\x6d\x67\x66\x86\x05\x56\x56\xa8\ \x49\x4b\xc3\xc3\xf9\xf9\x93\xbb\x62\x63\x7b\x93\xe3\xe2\x86\x4a\ \xd3\xd3\x7f\xa7\x9c\x4f\x76\x74\x74\xa0\x4e\xa7\xc3\x3f\x86\x87\ \x27\xd3\xb6\x6d\xab\xe7\xae\x30\x59\x80\xd4\x46\x3c\x58\x36\x01\ \x54\xee\x05\xe8\x67\xa3\xdf\x00\x4c\xf0\x5f\x7a\x03\x31\x94\x2c\ \x5e\x6c\xec\xfd\x02\x47\x47\xf4\x51\x2a\x33\xc5\xfd\x2c\x36\x68\ \xb5\x83\xc3\xbe\x86\x9c\x9c\xd1\xb6\xd6\x36\x6c\x6b\x6b\xc3\x6b\ \x57\x06\xb0\x49\xa3\xb9\x38\x55\x1d\x48\xc6\xbd\xb8\x47\xd9\x5b\ \x32\xa4\x97\x86\x0c\x7f\x4f\x00\x68\xa2\x61\xb3\x85\xd3\x50\xe4\ \xea\x6a\x28\xb4\xb6\x36\x5e\x7b\x1d\x60\x07\x9d\x3d\x24\xe3\x09\ \xe2\xd5\x9d\x51\x51\xdf\x37\x69\xb5\x93\xcd\xcd\xcd\xd8\xd5\xd5\ \x85\xdd\x67\xce\x8c\x89\x05\xe6\xf8\x0f\xd1\x06\x77\x36\x9e\x05\ \x70\x5d\x32\x9c\x0b\x30\xf2\x11\x40\xa1\x2f\x09\xa3\xeb\x66\xc4\ \xfa\xf7\x01\x4e\x56\x05\x06\x62\x81\xb9\x39\xee\x02\xa8\x15\x13\ \x6f\xfe\x7d\x08\x59\x6e\x6f\x9f\x56\x96\x92\x32\x76\xf4\xe8\x51\ \x6c\x69\x69\xc1\x5f\x2f\x5c\x30\xac\xf1\xf0\xc8\xa0\x6b\xaa\xfb\ \x09\xd8\xf8\x25\xc0\x80\x31\xb4\x36\x36\xb7\xdf\xa3\xfd\x2f\xa9\ \xa5\x8f\x92\x08\xa7\x92\xae\x2e\x75\x77\xc7\x32\x95\x0a\xbf\x00\ \x68\xa6\xb3\x85\xc4\xa3\xa2\x25\x95\x32\x6c\xc5\xf9\xd3\xc4\xa6\ \x4f\xc3\xc3\x7f\xa8\x3e\xac\x9e\xac\xab\xab\xc3\xcb\x3d\x3d\x13\ \xd1\x91\x91\x64\x06\xd6\xdd\x25\x80\x0b\x8d\x8d\x97\xfb\xf8\xe0\ \x8b\x00\x7b\x65\xc6\x9f\x22\xa2\x3f\x06\xf8\x51\xed\xe6\x86\x47\ \x22\x22\x90\x92\x3e\xc0\x5e\x10\x8f\x89\xb6\x7c\x9c\x67\xba\x0c\ \xfe\x7f\x31\xe1\x42\x38\x13\xaf\x2c\xb5\xb3\xcb\xca\x8b\x8f\xbf\ \xa1\xd1\x68\x50\xd7\xde\x8e\xc9\xb1\xb1\x0d\xf2\x16\x05\xe9\xf5\ \x8a\x57\x2d\xbf\xeb\xad\xba\x13\x81\x1d\x24\x6c\xef\x6e\x80\x3e\ \xf6\x9c\xaf\xe5\x29\x14\x7a\x6f\x80\xb7\x85\x30\x0f\xe1\x25\x8b\ \x79\x46\x86\x4a\x9c\x73\x61\xae\x20\x96\x13\xcf\x11\x6f\x6e\xf1\ \xf3\x3b\x56\x98\x91\x31\x71\x4c\xad\x36\xd0\xff\x6f\xc8\x53\xb0\ \x96\xf3\xaf\xf1\xf2\xc2\x9a\xc8\x48\x64\x83\xbc\x6a\x19\xce\xb9\ \x64\x9c\xe6\x00\x6d\x63\x78\x56\x3c\x70\x35\xb1\x86\xc3\x49\x04\ \xc8\x58\x27\xce\xfd\x09\x3f\x7e\x61\x15\x82\xc8\x1f\x78\x69\xa9\ \x52\x99\x11\xe5\xe9\x59\xc6\x4e\xdc\xd5\x05\x24\x75\x0d\xd5\x41\ \x57\x81\x42\x81\xbc\xef\x4b\x9c\x9d\x8d\x14\xd1\x84\xe3\x9d\x1f\ \x02\x10\x4f\x3f\xf2\x16\x0f\x66\x43\xa4\x07\x42\xb9\x38\x89\x17\ \x64\xac\x17\x6d\x47\x3f\x81\x40\x21\xc6\x57\x44\x84\xd3\xe3\x24\ \xd2\xa3\xb8\xef\x20\x8a\x21\xc5\xdb\x01\x3e\xff\x0c\xa0\x88\xf6\ \x66\x31\xb9\x9c\xb2\xee\x4e\xc8\xdd\xff\x23\x01\x4a\xd1\x29\x8a\ \xa9\x26\xa1\x82\x98\x47\x3c\x4c\xd8\x13\x4b\x44\xde\x67\x92\x02\ \x67\x31\xda\x2d\x4c\x11\x60\x26\x86\xcb\x7c\xd1\x72\x0e\xa2\xba\ \x97\xfd\x8b\x22\x5c\x22\x8c\xdb\x8a\x69\xcb\x8e\x99\x4d\xb9\x8c\ \x84\x88\x79\x42\x84\xb5\x08\x9f\xbd\xc8\xa3\xa9\x6d\xc8\xc2\x17\ \x09\x27\xd8\xb8\xb9\xdc\x7b\x53\xb6\xa1\x24\x82\xc3\x66\x25\x52\ \x62\x6d\xc2\x20\x5a\x28\xc2\xfd\x88\x30\x6c\x29\x9e\xa3\x90\x7b\ \xcf\xfc\x0d\xe3\x58\x91\xad\x93\x78\x02\x2d\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x78\ \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\x08\x3f\x49\x44\x41\x54\x58\xc3\xad\x57\x0d\x50\x93\xf7\ \x1d\xae\xda\x6d\xb6\xb7\xeb\x6d\x5d\xb7\xdb\xe7\x79\xfb\xba\xb5\ \xdb\xda\xab\xb6\xda\xde\x76\xe7\x7a\x37\xbb\x8f\xb3\x6e\xd3\xde\ \xa9\xd4\x8f\xad\xdb\xea\xb4\xee\xe6\x67\xd5\xda\x22\x88\x42\x2c\ \x08\xd1\xc8\x97\x08\xd1\x02\x22\x8a\x84\x40\x02\x24\x81\x40\x04\ \x02\xf9\x00\x92\x90\x90\x90\x40\x42\xc2\x57\xc2\x37\x28\x88\xa5\ \x67\x9e\xfd\xfe\xaf\x7f\x1c\x28\xda\x76\xe7\x7b\xf7\x5c\x72\xc7\ \xcb\xff\xf9\xfd\x9e\xe7\xf9\xfd\xde\x37\x8f\x01\x78\xec\x51\x82\ \xae\x6f\x10\x56\x13\xa2\x09\x1b\x09\x3f\x7e\xe8\xfd\x8f\x90\xf8\ \x71\xc2\x6f\x97\x2d\x5f\x21\x36\x7b\x3a\xfb\xec\xd7\x01\x57\x68\ \xe4\x3a\x2f\xe2\xab\xec\x6f\x84\x43\xfc\xf3\x91\x5f\xbf\x26\xec\ \xd6\xd4\x9b\x5c\xd6\xb1\x70\x58\x17\xfa\x14\x4a\x47\x2f\x1c\xc1\ \x31\x56\x59\xf4\x92\x25\x4b\xc4\x31\x31\xc7\xfd\x9a\xca\xca\x30\ \x2f\xe2\x91\x5d\xbf\x20\xfc\xed\x64\x72\x9a\xca\x31\xf6\xe9\x6d\ \xfd\x10\x50\x64\xef\x41\x89\xc9\x09\x95\xc5\x03\x5b\xef\x08\xf6\ \xec\xd9\xd7\x9c\x9d\x7b\x31\x1c\xea\x1f\xc4\xe8\xe8\xd8\x34\xdd\ \xbf\xfd\x51\x10\x0b\x3e\x6f\xdc\xb2\x55\xda\x3a\x78\x63\xca\x30\ \x0c\x28\xdc\xc3\x28\x31\xb7\xa1\xc4\xe8\x40\x81\xce\x8c\x84\xcc\ \x1c\x64\x65\xe7\x82\x11\x5f\x9f\xb8\x29\xc0\xed\xf6\xf4\xd1\xff\ \xfd\xe1\x8b\x10\x3d\x4b\x78\x95\xfb\x3b\xc7\x67\x13\xf9\x6c\x1e\ \x05\xd4\x5d\x93\x90\x99\xda\xa0\xa4\xae\xaf\xd6\x34\x21\x35\xbf\ \x18\xa2\xa4\xd3\xb0\xb6\xd8\xef\x12\xcf\x20\x3f\x3f\xbf\x96\x9f\ \xf9\xf9\xa4\x95\xe6\x17\xd4\x32\x5f\x99\xbf\x84\xd7\x66\xfb\x5c\ \x1d\x9c\x86\xac\xb9\x13\xa5\x66\x17\x64\x75\x16\x64\x15\x6b\x10\ \x93\x20\x81\xa6\x52\x3b\x87\x74\xfc\xc6\x24\xc6\xae\x4f\x60\x74\ \xfc\x06\x56\xac\x58\x21\xa6\x33\x16\x3f\x8c\xf8\x7b\x84\xbf\x30\ \x4f\xed\x24\xad\x71\x04\xd0\x05\xc6\xd1\x32\x30\x71\x5b\x67\x75\ \xfa\xed\xa3\x73\x7d\x96\xd7\xdb\x90\x57\x51\x8f\x23\xf1\x62\x5c\ \x2e\x90\xdd\x47\xcc\x48\x87\x47\xc7\xd1\x3f\x38\x8c\xee\xde\xbe\ \x29\x3a\x7b\xc7\x3d\xd3\x30\xa3\xec\x9d\x31\x61\x9e\x5a\x02\xc1\ \x61\x13\x11\x97\x75\x8c\x42\x69\xf3\x43\xd7\xd6\x83\x5a\x4f\x1f\ \xf4\xbe\x41\x94\xbb\x42\x77\x7c\x36\xd8\x71\xb9\xda\x88\xb8\x34\ \x29\xd2\x33\xb3\xe6\xf8\x3c\x87\x78\x60\x88\x88\x83\xe8\xf0\xf9\ \x51\xab\xd7\x77\xb1\x02\x74\x06\x93\x2b\x74\x2b\x1c\xbe\x66\x10\ \x94\x5d\x3d\x53\xc0\xea\x3a\x9b\xd3\x6f\x19\x0d\x87\x2b\x7b\xa6\ \x50\x6c\x0b\x08\xc4\x0c\x55\xce\x2e\x54\xb5\x06\xa0\xb6\x76\x40\ \x61\x6a\xc5\xd5\x6b\x8d\x48\xb9\x24\x47\x8c\x28\x1e\x5e\x3a\x78\ \x76\xd7\x4c\xea\x91\xb1\xeb\xbc\xe3\x20\xdc\xed\x5e\x58\x6c\x2d\ \x28\x92\x97\xa0\xb8\x4c\xe5\x1f\x9a\xb8\x35\xdd\x73\x13\x70\xd3\ \x8e\xb0\x8e\x4c\x83\x2f\x2b\xe1\x8a\xb6\x8d\x03\x85\x96\x00\x2a\ \x1c\x81\xbb\xc4\xda\x56\x3f\x34\x36\xef\x5d\x9f\x33\xe5\x6a\x7c\ \x18\x17\x0f\x7d\x83\x61\x5e\xb9\x07\x87\x47\xd1\x1b\x0c\x09\x1d\ \xb3\x10\x96\xab\x34\x48\x3a\x7d\x06\x5a\x5d\x0d\x7c\x93\x40\x68\ \x0a\x30\xd2\xc4\x28\xbd\x63\x50\x9b\xad\xfe\xd9\x0a\x44\x37\x52\ \xa2\xf3\xaa\x4c\xa8\x76\x75\x0b\x1d\x57\xb4\xf8\x50\xd6\xd4\x86\ \x22\xbd\x55\xf0\xf9\xfd\x63\x22\x28\xcb\x55\xf3\x12\x0f\x8d\x8c\ \x09\x36\xf8\xbb\x7a\xe0\x68\x75\x51\x81\x46\x24\x24\x26\x22\xaf\ \xb0\x08\xde\xe1\x49\xf8\x26\x80\x06\x96\x1d\xef\x24\xa4\xa6\x4e\ \xd4\xf9\x87\xd8\x3e\x38\xc2\xad\xff\x5f\x01\x17\xb5\x06\x54\x3a\ \xfc\x50\x59\xdb\xef\xf8\x5c\x65\x40\x74\x52\x0a\x72\xf2\xf2\xe7\ \xf8\x3c\x23\xf7\x8c\xcf\x5d\x3d\x7d\x70\xb9\xdb\x61\x6a\x6c\x42\ \x6e\xde\x25\xc4\xc6\x9f\x84\xad\xab\x1f\xed\x37\x80\x4e\x22\x57\ \x04\x3e\xc1\x65\xd7\x28\xd2\xf5\x74\xae\xb3\x2f\xbc\xf7\x70\x64\ \x01\x71\xae\x9f\x9d\xfe\x68\xd3\xf0\x6d\x64\x6b\xf4\x28\x6d\x74\ \xa1\xb0\xb6\x19\xd9\x65\x3a\x88\xc4\x92\xfb\x7c\x9e\xe9\x7a\x60\ \x68\x44\x90\xbb\xdd\xdb\x89\x66\xab\x0d\xa5\xa5\xe5\x38\x76\x3c\ \x16\xf5\x56\x07\xda\xc8\x63\x0b\x05\x59\x1d\x04\xa4\x8d\x3d\x48\ \xac\xb0\xe3\x42\x73\x1f\x2e\x18\xbd\x50\xd4\x34\xb0\xf0\xed\xba\ \x77\xfc\xa2\x1b\xfa\x3f\x41\x96\xb2\x1a\x57\xaa\x4d\xc8\x92\x6b\ \xb0\xf7\xa8\x08\x0d\x06\xd3\xbc\x72\x07\xfb\x07\xe0\xf3\x77\xc1\ \xee\x70\xa2\x8a\xfc\x15\x9f\x96\x20\xef\x4a\x01\x06\x6f\x01\x0e\ \xca\x92\x36\x44\x79\xa2\xf6\x33\x0c\x7e\x9c\xae\x76\x21\xbd\xde\ \x87\x0c\xea\xbe\xce\x17\x62\xa3\xf8\x01\xe1\x3b\xf7\x16\x70\xb4\ \xb6\x77\x02\x29\x05\xa5\x38\x27\x53\x41\x94\x7e\x01\x6b\x23\xb6\ \xcc\x2b\x77\xa0\xbb\x17\xce\x36\x0f\x0c\xa6\x46\xa4\x67\x9c\x43\ \x6a\x96\x14\xee\x9e\x7e\xb8\xa8\xeb\x46\x0a\x98\xdc\x77\x13\xe7\ \x8c\x01\xa4\xd4\xb6\x23\x4d\xef\xc5\x99\x6b\x6e\xa4\xd6\x7a\xa0\ \x20\xe9\xdf\x7c\x6b\xb3\x94\xb8\xd6\xcc\xb7\x80\x8e\x69\xbd\x43\ \x48\x38\x7f\x05\xf1\xe7\x72\xb1\x2b\xf2\x38\x0e\x7e\x10\x79\x77\ \xac\x98\xdc\x3d\x7d\x21\x78\x3a\x7c\x68\xb2\x58\x51\x28\x93\x23\ \x3e\x21\x11\x26\x9b\x03\x01\x4a\x37\x6d\x63\xa8\xfa\xc2\x38\xdb\ \xd0\x29\x74\xcb\x88\xc5\xda\x56\x9c\xaa\x72\x22\xb9\xc6\x8d\xac\ \x7a\x37\x2e\x2a\x54\xcd\xc4\xf3\xef\x07\x6d\xc0\xd8\xb2\xd6\x6e\ \xc4\x24\x4b\xf1\xfe\x89\x53\x78\x6b\xdb\x4e\xa4\x9d\xcd\x10\xc6\ \x6a\x46\xee\x16\x7b\x2b\xb4\x55\x3a\x81\xb8\x50\x51\x8a\xf1\x69\ \x20\x40\x01\xab\x1d\x00\x8a\x3b\xa7\x04\x8f\x33\x4d\x5d\x77\xbb\ \x8e\x55\x98\x05\xef\xa5\x46\x1f\x8d\xb4\x9f\xbd\x17\x1c\x26\x3c\ \xf5\xa0\x02\x44\xb2\x46\x0f\x0e\x7d\x24\xc1\x8e\x83\x91\x78\xf5\ \x37\xab\xd0\xd4\x6c\x15\xd2\xcd\xe4\x6e\x30\x9a\x21\x39\x93\x0c\ \x69\xce\x45\x1a\xab\x09\xa1\xeb\xa6\x91\x3b\x72\x5f\x6a\x1d\xc6\ \x49\x4d\x8b\x20\x3b\x23\x4d\x50\xdb\x70\xb4\xa8\x41\x40\x92\xc6\ \x8a\xb2\xb6\xbe\xf0\xd2\x97\x97\x8b\xf9\xea\x5d\xf0\xa0\x02\xe2\ \xf3\x6a\xad\xd8\x15\x25\xc2\x96\xed\xff\xc1\xca\x55\xaf\x0b\x5d\ \xb3\x65\x22\x2b\xa2\xa7\x9b\xe8\x04\x6c\x1e\x1f\x7a\x69\x8b\xf9\ \xf9\x58\xe5\x39\x86\xf0\xb1\x25\x28\xa4\x9c\x05\x2d\x4e\xd9\x28\ \xc8\xce\xba\x4f\x28\x6f\xc6\xd9\x1a\x27\x34\xae\xee\xe9\x9d\xfb\ \x0f\x5d\xa5\xf3\x77\xf2\xbd\xbf\xe8\x41\x45\x24\x4a\x35\xf5\xd8\ \xb6\xff\x43\xac\xdb\xfc\x36\x76\xef\x7d\x0f\x8d\xcd\x16\x14\x2b\ \x94\xf8\xc7\x3b\xdb\x68\x43\x7a\xe1\xa1\x99\xbe\xd6\x0f\xe4\xb6\ \x0c\x40\xa2\x6b\x43\xb6\x35\x24\x78\x2e\x10\x52\xd7\xd1\xb2\x7a\ \xc4\x96\x18\x71\x4e\xef\x81\xdc\xde\x1d\xce\xd7\xe8\xda\xe8\xdc\ \x18\x9e\xfa\x6f\x71\xf9\x9f\xe0\x85\xdc\x57\xc4\xa9\xd4\xa2\x0a\ \x6c\xdd\xb9\x17\xaf\xaf\x59\x27\x8c\x95\xa2\xb4\x0c\x3b\xde\x7d\ \x17\xe2\x7c\x05\xe2\x8a\x1b\x84\x70\xb1\x6e\xd9\x27\xf3\xfa\x78\ \x89\x49\x28\x84\x15\x11\x5f\x6e\x11\xe4\x3e\x4f\x61\x2b\x33\xdb\ \x83\x2f\x2c\x5d\x96\xc2\x82\xcd\xe7\xfd\x25\xc2\x0f\xf9\x93\xf6\ \xeb\x84\xaf\x10\x16\xde\x5b\x40\x72\x52\x5e\x31\xd6\xff\x7d\x07\ \x9e\x7f\xe9\x15\x21\xe5\x47\x8e\x44\xe1\xbd\xe8\x58\x24\x96\x9b\ \x11\x43\x7e\x32\xa2\xd4\xba\x0e\x41\x66\x16\x2e\xe6\x7b\x12\xfb\ \x54\x59\x90\xac\xb5\xa1\xae\x23\x38\xb5\x73\xff\x41\x39\xcb\x13\ \x27\x67\x9b\xee\x65\xc2\x2b\x84\x65\x84\x9f\x12\x9e\xe1\xef\x03\ \xf7\x15\x90\x1e\x97\x75\x09\x7f\xde\xf4\x36\x5e\x5b\xf5\x7b\xa4\ \xa4\xa6\x61\xfd\xa6\xcd\x38\xa3\x36\xe1\x40\x8e\x46\x08\x18\x5b\ \x2a\xac\xf3\x8f\xa8\xdb\xa8\x42\x3d\xe2\x14\xa4\x40\xa5\x0d\xc5\ \x2d\xfe\xdb\x59\x57\x4b\xac\x74\xc6\x09\x96\x25\xc2\x3b\x3c\x70\ \xbf\xe3\xaf\x5f\xec\xfb\x72\xc2\x8f\xb8\x02\x5f\x9e\xcf\x82\xcc\ \xa8\x94\xf3\x78\x63\xfd\x66\x44\x6c\xda\x82\x0d\x1b\x23\x90\x4c\ \x96\x1c\xcc\x51\x0b\x84\xac\x80\xe4\x1a\x8f\xa0\x82\x88\xc2\x96\ \x5e\xe7\x26\xb9\xdb\x50\xda\xd0\x14\x78\xfe\xc5\xa5\x69\x9c\xf8\ \x00\x7b\x99\xe1\x4f\xb8\xb5\xfc\x3b\x2b\xe0\x57\x84\x9f\xf1\x1c\ \x3c\xc1\x83\x78\xdf\x25\x8d\x94\x64\x62\x4d\xc4\x56\x6c\xd8\xb0\ \x11\xc7\x92\x33\x10\x27\xd7\x63\x7f\xb6\x5a\xe8\xfa\x44\x59\x33\ \x24\x94\x74\x49\x95\x03\x17\x9b\xfc\xd0\xba\xba\xa6\xd6\x6e\x88\ \xf8\x98\xcb\x1d\x45\xd8\xc4\xc9\x18\xf1\x9b\x84\x3f\x11\x56\xf1\ \xce\x7f\x42\xf8\x26\xe1\xc9\x87\x4d\x81\x34\x26\x3d\x5b\xc8\xc0\ \xf6\x43\x51\x10\xc9\x74\xd8\x23\x2d\x15\x36\x19\xf3\xfd\xa4\xda\ \x8a\x4c\xbd\x1b\x15\xed\xc1\xdb\x51\x09\x62\x35\x5b\xdd\xdc\xe7\ \x08\xfe\xae\xf8\x47\x4e\xfa\x06\x27\x66\x2f\xb2\x3f\x27\x7c\x9f\ \xf0\x35\xee\xfb\xa2\x87\xed\x81\x0c\x71\x9e\x1c\xff\x3a\x10\x89\ \x33\x65\x7a\x6c\x93\x5c\xc6\xe1\x7c\x1d\x75\xed\x84\x44\x6b\x47\ \xae\xd1\x13\x2e\x37\x5a\xfc\xbc\x5b\x36\x56\x7f\xe5\x04\x2f\x12\ \x56\x72\x9f\x57\xf2\x8e\x9f\xe5\xc4\x4f\xf3\xae\xbf\x34\x5f\xe8\ \xee\xbd\xf6\xe5\x16\x97\x4e\x66\x57\xd6\x63\xdf\x79\x25\xb6\xc4\ \x67\xe3\x84\xd2\x84\x1c\xb3\x17\x1a\xab\x67\x78\x5d\xc4\x26\x29\ \x5f\xa5\x3b\xf8\x48\x3d\xc5\x49\x9e\x23\xbc\x40\xf8\x25\x97\xfa\ \xbb\x3c\x68\xb3\x89\x17\x7c\x9e\xd7\x70\x16\x14\x89\x54\xef\xc4\ \x3f\x4f\x5f\xc2\x79\x43\x07\xb4\xee\xbe\xe9\x63\x49\x12\x15\xef\ \x78\x37\xbf\x67\x01\x5f\x24\x4f\xf2\x1f\x27\xdf\xe6\x78\x66\xd6\ \xa2\xf9\x42\xc4\x33\x17\x3b\xf0\x60\x86\xac\xdc\xad\x6c\xed\x0e\ \x17\x55\xeb\x5d\xfc\x95\xe9\x10\x0f\xd7\xec\x87\xc8\x42\x4e\xb2\ \x98\x13\x2e\xe6\xa3\xb5\xe8\xff\x21\x9e\x7d\x3d\xce\x65\x8e\xe2\ \x9f\x5b\x09\x3f\x78\xc0\xbd\x0b\x38\xd9\xc2\xcf\x22\xfd\xac\x5f\ \xd5\xff\x05\x42\x5a\xb5\xfc\x4a\x39\x80\xc8\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x7c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x05\x0e\x49\x44\x41\x54\x58\xc3\xb5\ \x57\xdd\x6f\x15\x55\x10\xa7\xb4\x5a\xa8\x42\x48\x25\x14\x34\x90\ \xc2\x03\x36\xbe\x54\x1e\x0c\x0f\x04\x35\x10\xfd\x1b\xca\x9f\xe0\ \x93\x89\x4f\x05\x0d\xb9\x8d\x18\x13\xa2\x0d\x81\x04\x13\x31\x9a\ \xf2\x46\x62\x80\x68\x53\x6d\x29\x94\x7e\x72\xa5\xbd\xb7\xbd\xbd\ \xdb\xfb\xd5\xf6\x7e\xb5\xb7\xb4\x40\x6b\x8b\xf8\xd2\xdb\x3d\xe3\ \x6f\xce\xce\xd2\x75\xdd\xdd\x16\xc5\x87\x5f\xe6\xec\x9c\x99\x39\ \xbf\x3d\x67\x76\xe6\xec\x16\x22\xda\xb2\x11\xde\x3f\x15\xaa\x00\ \xb6\x0a\x2a\x03\x60\xdb\x54\x6c\x26\x2e\x63\x7d\x91\xa6\x50\x33\ \x30\xe2\x83\x88\x0f\xb2\x01\x73\x7e\xb1\x9a\xfd\x08\x8c\x0c\xcd\ \x12\x75\x24\x4c\x6a\x4f\xac\xd1\xf9\x1e\xa2\xee\x29\xeb\xf9\x8b\ \x2e\x93\x6e\x4f\x13\xf5\x15\x88\xbe\xec\x26\xfa\x35\xa5\xe8\x67\ \xa3\x4c\x1f\x5d\x8e\xd1\xad\x49\xd8\xa4\x4c\x6a\xe9\x30\x9f\xe9\ \xcf\x75\xb1\x8d\xa9\x7d\x39\x0e\xfb\xfe\x64\xac\xd2\xe5\xfb\x26\ \xf1\x3a\xbe\x04\x06\x41\xa0\x2b\x43\xd4\x9b\x27\xea\xcc\x28\xba\ \x9b\x83\x63\x7c\x55\xcb\x0e\x90\xea\xc9\x12\x16\x58\xd5\x36\x8c\ \xd6\x1f\xc7\xb5\x5d\xf7\x94\xa9\xc9\xde\xc1\x7c\x67\x5a\x51\xfb\ \x44\x99\x3a\x92\x96\x8e\xc1\xb6\xfc\xcc\xf1\x83\x08\x34\xfb\x6c\ \x79\x14\x18\x05\xc6\x04\x31\x60\x5c\x50\x70\x8c\x63\x0e\x9b\x51\ \xf1\xf3\x3a\x12\xef\x23\x70\x25\x5b\x15\xf0\x32\x50\x03\xec\x04\ \x6a\x81\x3a\x60\x3f\x70\x08\x38\x0c\x34\x00\x1f\x8b\x3c\x2c\xfa\ \xfd\x62\x57\x2b\x7e\x35\x12\xa7\xca\x2f\x39\xbd\x16\xaf\x04\xcb\ \x4f\xe5\x0d\x9c\x6f\xcf\x6f\x19\x07\x0c\x60\x42\x30\xeb\x18\x1b\ \x32\x3f\xee\xda\x85\xa8\x8e\xb7\xfe\x95\x54\x6c\x44\xa0\x8a\xb7\ \xac\x6d\x8c\xa8\x07\xe7\x77\x1b\xe7\x7b\xa1\xd7\x1a\x77\xa6\xca\ \x74\xa9\x1f\xe7\x8a\x73\xbf\x95\x5e\xa3\x4f\xae\x8c\x53\xcf\xb4\ \x35\x77\x51\xeb\x4d\xea\x4c\x96\xe9\xab\x3b\x4a\xeb\x7b\x91\x13\ \x6d\x63\x8a\xf4\x11\xf8\xec\x82\x17\x81\x97\x98\x75\x64\x9e\x03\ \x2b\xea\xcb\x89\xcc\x2a\xea\xcf\xf1\x22\x6b\x34\x50\x50\x5a\x77\ \xe9\x46\x9c\xee\x4e\x2b\xad\x63\x3b\x3d\x9f\x2e\xeb\xe7\xc1\x02\ \xfb\xad\x11\xc7\xd1\xbb\xc0\x71\xfd\x08\xfc\x6d\xfb\xf9\xcc\x9a\ \x42\x9f\x39\xb6\xde\x4e\x3a\x7b\xeb\x93\x40\x4a\x50\x72\x8c\x93\ \x8e\xa3\x70\x26\xe5\xa8\x8e\x67\x11\xf8\xc7\x31\x78\x13\x38\x15\ \xda\x2e\x49\xb4\x1b\x78\x43\x12\xec\x2d\xe0\x08\x70\x14\x38\x0e\ \xbc\x07\x84\x44\x1e\x17\xfd\x11\xb1\x3b\x24\x7e\xbb\x25\xce\x76\ \x89\x1b\x40\xa0\x29\x74\xda\xe7\xd3\xb3\x93\x8f\xdf\x2e\xe1\xd8\ \x81\x34\x30\x27\xd2\xde\x81\x84\xd8\x79\x25\xa3\x1d\xfb\xb4\x1f\ \x81\x91\x91\x92\x49\xf7\x51\x2c\x06\xb2\x26\x5d\x8d\x10\x8d\xcc\ \x11\xdd\xcb\x9b\xf4\xfd\x3d\x6b\x1c\x2e\x2a\xfa\x76\xd0\xd4\xba\ \xe8\x03\xa2\xb3\x57\x0d\xea\xcf\xae\xd1\x70\x89\xb4\x4d\xb8\x48\ \xda\xff\x0a\x6c\x58\x1f\x46\x1e\x7c\x37\xa4\xf4\x7c\xb8\x68\xd2\ \xcd\x94\x55\x88\xfc\x08\x44\x92\x8b\x58\x30\x67\x6a\xb0\xd3\x10\ \x4b\x04\xd4\x01\x90\x78\x3c\x0e\xe7\x95\x1e\xc7\x16\x88\xbe\xb9\ \x19\xd3\x73\xb6\x2d\xeb\x07\xb0\x70\xdf\xd4\xaa\xb6\x1b\x9e\x55\ \xf4\x5b\xd1\x8a\xc9\x73\xc6\x63\xb2\xbf\x88\x75\x02\x72\xfe\x4c\ \xe0\x8c\x63\xfb\xa3\x1e\x09\xe8\xde\xfe\x8c\x1c\x41\xc6\xe3\x18\ \xdc\x89\x18\x75\x1c\xc3\x19\x7b\x4d\x77\x12\x56\x4a\xa6\x72\xc2\ \xec\x00\x5e\x03\xf6\x01\x07\xa5\xda\xbd\x2d\x89\xf6\x2e\x70\x12\ \xf8\x10\x38\x27\xf2\xa4\xe8\x8f\x8a\x5d\x83\xf8\xed\x93\x38\x3b\ \x24\xae\xfd\x25\x78\x7e\x05\xfe\x04\x9a\x42\xad\xae\x1d\xc8\xb8\ \x76\x20\xe3\xda\x81\xd6\x17\x4d\xc0\x48\x3d\x56\x14\x47\x51\x69\ \x4f\x10\x8d\x95\x14\x45\x91\xb0\xe7\xaf\x19\x18\x9b\x94\x78\x44\ \x74\x23\xa6\x68\x14\xe3\xc9\x25\x7d\xce\xc6\x0b\x27\x50\x78\x42\ \x14\x9d\x29\x53\x0c\x8b\x4c\x20\x01\x19\x6d\xbf\x18\x94\x78\xa8\ \x30\xb6\xc8\x25\x41\x64\xfa\xf7\xff\x87\x40\xeb\x73\x26\xe1\xd7\ \xff\x95\xc0\xab\xd2\x52\xf7\x02\xf5\xc0\x9b\x40\xa3\xa3\x0a\x9e\ \x00\x3e\x00\x3e\x17\x79\xc2\x51\x0d\x1b\xc5\xbe\x5e\xfc\x6b\x25\ \xde\xa6\x08\x70\xc7\xda\xa6\x1d\x9a\x42\x2d\x01\x7d\x20\x68\x07\ \xdc\xfd\xa0\x45\x08\x6c\x93\xf8\x95\x41\xbd\xc0\x26\xf0\x0a\x97\ \xd0\x99\x3f\x88\x72\x38\xd3\x3e\xb4\xd6\x29\x14\x91\xd4\x3c\xae\ \x65\x68\xc5\xe9\x87\x26\x65\x1e\xa1\x1b\x5e\x8f\x53\x7a\xc1\xd4\ \x73\xbd\x68\xc9\x69\xe4\x43\x7e\x19\x5d\x70\xd2\xb2\x67\x7f\x5d\ \x8a\x39\xde\x3a\x81\xad\x1b\x11\xa8\xd6\x37\x19\x38\x16\x57\x14\ \x02\x29\xca\x2d\x91\x96\x8c\x49\x2c\x9c\x5d\xb4\xe4\xb5\x6e\x83\ \x32\x20\xc3\xf3\xd9\x45\xd2\xc4\x58\x5a\x76\x26\x15\x56\x94\x4d\ \xa0\x46\xe2\x56\x6d\xb6\x1b\x32\x81\x90\xa3\x1a\xc6\x7d\xaa\xe1\ \x9c\x4f\x15\x8c\x3b\xaa\x60\xc8\x71\x35\xf3\xee\x86\x42\xc2\xab\ \x1d\x73\x06\xbf\x2e\x09\xd5\x20\x09\xf6\x0e\x70\x4c\x92\xee\xac\ \xc8\x63\xa2\x6f\x14\xbb\x7a\xf9\x02\x6a\xbd\xda\xb1\xdf\xad\xd8\ \xdd\x8e\xed\x96\x1c\x0b\x68\xc9\xa5\x80\x56\x1c\x73\xdd\x0b\x9f\ \xb5\x63\xdf\xff\x82\x85\x3f\x89\x4a\x28\x38\x45\x24\xde\x30\xba\ \xd7\xec\x0a\x12\x69\x19\x55\x0f\x5d\xb0\x08\x59\x58\x52\x5a\x3f\ \xb3\x6c\x3d\xff\xd0\x31\xa1\x75\x45\x3c\xb3\x4d\x7e\xc9\xd4\xfe\ \x61\x74\x3f\xdb\x3e\x32\xb3\xae\x37\x16\x82\xff\x0b\x34\x01\x6b\ \x51\x26\x81\xc0\x08\x90\x5f\x84\xf3\x8a\xd2\x44\x38\x48\xe9\x89\ \xa2\x07\x4f\x21\x61\x77\xbd\x67\xc2\xb2\x03\xf8\xd9\x1a\x9b\x7a\ \xcc\xb6\x1c\x87\xe3\xcd\x2e\x5b\xe3\xf9\xa7\xcf\xff\x63\x12\xf5\ \xb8\x1b\xda\x09\xc9\x28\x3a\xc6\x71\x8f\xbb\x60\xf4\xdf\xfe\x98\ \xd8\x55\xb1\x5a\xbe\x61\x3b\x21\xeb\xe4\xae\x77\x40\x12\xed\xa0\ \xc8\x03\xa2\xaf\x13\xbb\x9d\xe2\x57\xed\x77\x19\xf5\x24\x10\x40\ \xa2\x46\xea\xf9\x2e\x59\x60\x8f\x2c\xb6\x57\xe4\x1e\xd1\xef\x12\ \xbb\x9a\xcd\x2c\xce\xf8\x0b\x15\x86\xe3\xed\xf2\xf3\x48\xec\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x7e\ \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\x06\x45\x49\x44\x41\x54\x58\xc3\xc5\x57\x79\x50\xd5\x55\ \x14\xfe\x3d\x78\x8b\x5b\x91\xcb\xa4\x19\x0a\xa8\x21\xe6\x08\x82\ \x21\xb2\x48\xa1\x52\x9a\xe2\x40\xb8\xc5\x26\x25\x0a\xa5\xe8\x28\ \x28\x35\x28\x04\x62\x46\xac\xef\xb9\xa0\x82\x90\xca\xa2\x20\xc3\ \x08\x6a\x21\x20\x13\x30\x88\x06\x21\xbb\x3a\x98\xd8\x60\x8e\xd3\ \x1f\x2d\xc8\xa8\x85\xef\x74\xbe\xdf\x5c\x8c\x99\xca\x1e\x96\xf5\ \x66\xbe\xb9\x9c\x73\xbe\x73\xee\x77\xd7\xdf\x45\x22\x22\xe9\xff\ \xc4\xe3\x83\x92\xa4\x60\x4c\x66\xb8\x31\x7c\x18\x1b\x18\x11\xa2\ \xf5\x11\x7e\xc4\x15\xff\xaa\x00\xd1\xf1\x24\xc6\xd2\xe5\xcb\x97\ \x1f\x48\x4b\x4b\x3b\xcf\xbf\xce\x8e\x8e\x8e\x9f\xbb\xbb\xbb\xf5\ \x68\x61\xc3\x8f\x38\x78\x82\xaf\xf8\xc7\x02\xf8\x67\xc4\xb0\x73\ \x75\x75\x8d\x4a\x4f\x4f\xaf\x69\x6b\x6b\xeb\x61\xd0\x99\x33\x67\ \x28\x2a\x2a\x8a\x42\x43\x43\xe5\x16\x36\xfc\x88\x83\x07\x3e\xf2\ \x90\xff\xc4\x02\x44\xe7\xb3\x3c\x3d\x3d\xb5\xc5\xc5\xc5\x57\x5b\ \x5b\x5b\x29\x33\x33\x93\x56\xf9\x07\x5e\xb7\x5b\xb8\xa2\x72\xc2\ \xe2\xf7\x4e\x8e\xf0\x8a\x3e\x8a\x16\x36\xfc\x88\x83\x07\x3e\xf2\ \x90\x3f\x18\x11\x7f\x58\x6f\x27\x27\xa7\x98\xa2\xa2\xa2\xab\x8d\ \x8d\x8d\x14\x1d\x13\x7b\xc7\x79\x59\x50\x99\x89\x4f\x42\x96\xe4\ \x9f\xa1\x95\xd6\xe4\x24\x4b\xeb\xf2\x13\xe5\x96\x6d\xf8\x11\x07\ \x0f\x7c\xe4\x21\x7f\x30\xfb\x62\xa0\x00\x25\xc3\x5b\xab\xd5\xd6\ \x36\x37\x37\x53\xaa\x6e\xcf\x1d\x87\xc0\xc8\x02\x69\x75\x66\xaa\ \xb4\xe1\xf4\x27\x52\xc4\x85\x58\x29\xba\x25\x4a\x8a\xbd\xb2\x43\ \x6e\x61\xc3\xcf\x71\xf0\xc0\x47\x1e\xf2\x51\x07\xf5\x0c\x16\x20\ \x46\x6f\xe5\xe1\xe1\x71\xb8\xb6\xb6\xf6\x6e\x49\x49\x09\xbd\xbd\ \x65\xe7\x39\xe9\xdd\xec\x64\x69\x6b\xf5\xce\xb1\xa9\x5d\x31\x2b\ \x8b\x7f\xd0\x45\x5d\xb8\x77\x64\x7f\xf3\xaf\x05\x68\x61\xc3\x8f\ \x38\x78\xe0\x23\x0f\xf9\xa8\x83\x7a\x86\xcc\x42\xbf\x00\x63\xc6\ \xc2\xb8\xb8\xb8\xea\x86\x86\x06\x4a\xd2\xed\xbf\x3e\x36\xe4\xf0\ \x21\xb9\x78\xfc\xad\x0f\x03\xca\xee\xeb\x74\x2d\xfa\xbc\xd4\x16\ \xca\xe9\x07\x6c\xf8\x11\x97\x45\x32\x1f\x79\xc8\x47\x1d\xd4\x43\ \x5d\x43\x05\xa8\x19\x6b\x72\x73\x73\x6f\xd4\xd5\xd5\xd1\x96\xf8\ \xb4\x0a\x4c\xef\xb4\xb4\x9b\xbb\xc3\xaa\xef\xa7\x9f\xbf\x45\x55\ \x95\xb7\xa8\xba\xa2\x9b\xbe\xec\x07\x6c\xf8\x11\x07\x0f\x7c\xe4\ \x21\x1f\x75\x50\x0f\x75\x0d\x15\x30\x94\xf1\x41\x69\x69\x69\x4f\ \x55\x55\x15\xbd\xb9\x3d\x33\x0f\x6b\xbc\xa9\xfc\xc7\xc3\x92\x55\ \x10\x59\x2e\xd9\x45\x2e\x01\x3a\x9a\xe3\x9b\x42\x0e\x3e\x29\x72\ \x0b\x1b\x7e\xc4\x65\x1e\xf3\x91\x87\x7c\xd4\x41\x3d\xd4\x35\x54\ \xc0\x30\x46\x5c\x79\x79\xb9\xbe\xa6\xa6\x86\x26\x87\x9d\x38\x88\ \x8d\x96\xd4\x70\xef\x84\xe4\x7e\x92\xd4\x2b\x9b\x68\x74\x60\x2b\ \x99\xae\x6b\xa3\x49\xef\xb7\xcb\x2d\x6c\xf8\x11\x97\x79\xcc\x47\ \x1e\xf2\x51\x07\xf5\x50\xd7\x50\x01\xc3\x19\x91\x3c\x75\x3d\xf5\ \xf5\xf5\xe4\x93\x7a\xfa\x18\x76\x7b\x78\xcd\x2f\x87\x24\xef\xcb\ \x24\xad\x65\xd2\x1a\xc6\x3b\x03\x00\x1b\x7e\x8e\xcb\x3c\xe6\x23\ \x0f\xf9\xa8\x83\x7a\xa8\x3b\x98\x19\x58\x9f\x98\x98\x78\x13\x9b\ \x48\x9b\x5f\xf6\x05\x46\x34\x23\xfb\x6e\xec\xb6\x3a\x3a\x18\x56\ \x4d\xa7\x83\xca\xa8\x7c\x5d\x05\x9d\x0b\x66\xa0\x85\x0d\x3f\xe2\ \xe0\x81\x8f\x3c\xe4\xa3\x0e\xea\x0d\x66\x06\xb0\x07\xbc\x43\x42\ \x42\x2e\xf0\x31\xa2\xca\x9a\xba\x6b\x93\x3f\xbe\x98\x24\x25\x7f\ \x1f\x21\xa5\xf5\x85\x49\x09\x94\x29\x23\x91\x32\x1e\xa1\xdf\x87\ \x38\xf3\xc0\x47\x1e\xf2\x51\x47\xdc\x05\x43\x07\x73\x0a\x5e\xb1\ \xb7\xb7\xcf\xcd\xc8\xc8\xe8\x6d\x6a\x6a\x22\x6d\x51\xcd\x29\x29\ \xee\x7a\xa4\xb4\xef\x5e\xb8\x94\x42\xa9\x52\x3c\xe5\x49\x9f\x52\ \xce\x23\xc0\x86\x1f\x71\xe6\x81\x8f\x3c\xe4\xa3\x0e\xea\x0d\xe6\ \x14\xe0\x1e\x78\x8e\xb1\xd6\xd7\xd7\xb7\x81\xef\x75\xaa\xff\xfa\ \xf2\xed\x2d\x79\x5f\xa5\xcb\xe7\x5c\x77\x2f\x52\x4a\xd6\x27\xf3\ \x88\xb3\xb8\xe3\x7c\xb9\x85\x0d\x3f\xc7\xc1\x03\x1f\x79\x3e\x3e\ \x3e\x8d\xa8\x23\xea\x19\x0f\xe6\x26\xc4\x32\x38\x58\x58\x58\xe8\ \x78\x0a\x6f\x54\x56\x56\x52\x53\x4b\xeb\x77\x19\x15\xcd\x85\x96\ \x7b\xbf\xd9\x2d\x2f\x87\xae\x67\xab\xb4\xef\x7e\xb8\xdc\xb2\x0d\ \x3f\xe2\x97\x9b\x5b\x6e\x83\x1f\x1c\x1c\xdc\x6b\x6e\x6e\x7e\x91\ \xeb\x04\x30\x5e\x34\xf8\x26\x1c\xf0\x2d\x30\x61\x2c\xb6\xb2\xb2\ \x3a\xe6\xe7\xe7\x77\x23\x3f\x3f\x9f\xda\xdb\xdb\xa9\xb1\xed\x6a\ \xc7\xf1\x9a\x8e\x53\xa1\x85\x57\x0e\xd8\xec\xbf\x16\x8f\x16\x36\ \xfc\x88\x83\xc7\xfc\x5e\x2f\x2f\x2f\xf2\xf7\xf7\xff\xc9\xc4\xc4\ \x24\xd7\x7a\x9c\xd1\x51\x3c\x58\x06\xfb\x35\xc4\x5e\x18\xcd\x58\ \x62\x6a\x6a\xba\xcf\xc5\xc5\xa5\x91\x67\xa3\x97\x8f\x15\xe1\x43\ \xd3\xd9\xd9\x49\x5d\x5d\x5d\x72\x0b\x1b\x7e\xc4\x99\xd7\xc4\xfc\ \x4b\xe8\x9c\x6d\xda\xf8\xc6\xd4\x07\x47\xbc\x34\x0f\x97\x4d\x57\ \x96\xfc\x9d\x88\x3f\x7b\x0f\x68\x84\x08\x57\x46\xa8\x99\x99\x59\ \xa1\xb5\xb5\xf5\x25\x47\x47\xc7\x6f\xdd\xdc\xdc\xee\xba\xbb\xbb\ \xeb\xd1\xc2\x86\x1f\x71\xf0\x18\x41\x3c\xf2\xe3\x81\x73\x2d\x1f\ \xc4\xbf\xaa\xa2\x03\x8b\xd4\x94\xcd\x22\xfc\x6c\x94\x39\x8f\x13\ \xf1\x57\x2f\x22\xb5\x58\x0e\x53\xc6\x02\x71\xaf\xe3\x62\x49\x60\ \xec\x65\x24\x32\xb6\x8b\xcd\xf6\x3a\x63\x22\x63\xca\xb8\xa1\x8a\ \xec\xd0\x19\x4a\xfd\x8e\xd9\x2a\x4a\x78\x4d\x45\x07\x59\x44\xce\ \x5b\x9a\xbe\x80\x99\x4a\x2c\xc7\xbc\x3f\xdb\x13\x8f\x7b\x13\x2a\ \xc5\xc6\xc4\x6e\x1e\x2b\x3a\xc1\x43\xe3\x25\x81\x49\x42\xe0\xf3\ \x82\x33\x82\xb1\xc8\x7a\xa4\xe2\xec\x26\x6b\xa5\x3e\xda\x41\x45\ \x49\x6e\x2a\x4a\x5f\xac\xa6\x3c\x6f\x4d\x9f\xff\x4c\xe5\x31\x31\ \x18\x23\x51\x5f\x61\xe8\xab\xd8\x58\xcc\x08\x6e\xcb\x67\x19\x23\ \xc5\x12\x8d\x11\xed\x28\xe1\x1b\x29\xfe\xf6\xb4\x1b\xa5\x28\xd8\ \xcc\x22\x3e\x9a\xa3\xa2\xe4\x79\x2a\xca\x58\xa2\xa6\x13\xcb\x34\ \x7d\xab\x6d\x95\xd9\xe2\x33\xad\x7c\x24\xc4\xa0\x57\xcb\xef\x33\ \x32\x84\xf1\x8c\xe8\x08\x23\x7f\x41\x1c\xb7\x09\x0c\x33\x86\xb9\ \x80\x2f\x8b\x28\x0c\xb3\x51\xea\x63\x1c\x55\x94\x32\x5f\x4d\x99\ \x1e\x6a\x2a\x58\xa1\x79\xc8\xcb\x81\x4b\x6a\x11\x43\x25\x8b\x30\ \xb0\x73\x63\xd1\xb9\xc9\x80\xe5\x98\x22\x5e\x3d\x2f\x33\x66\x30\ \x6c\x18\x33\x07\x60\xad\xed\x28\x45\x71\xb8\xad\x52\xbf\xd3\x49\ \x45\xda\x05\x6a\xca\x62\x11\x27\x57\x68\xf4\xfe\xb6\xca\x3c\x21\ \x42\x69\x88\x00\x23\x31\xfa\xe1\x62\xd4\x16\xa2\x53\x5b\xc6\x6c\ \xc6\x1c\x86\x33\x63\xae\x38\x39\xfd\x80\xbd\xd1\x76\xb4\xe2\xec\ \x36\x16\xb1\xcb\x59\x45\x7b\xdc\xd5\xf4\xd9\x52\x0d\x15\xae\xd4\ \xe8\x1d\x4c\x8d\xf0\x82\x1e\x67\xa8\x00\x95\x58\xff\xf1\x8c\xa9\ \xe2\xfd\xef\x28\x3a\xc2\x7f\x47\xf3\x19\xee\xe2\x44\xf4\xc3\x5d\ \x6c\xba\x30\x16\x51\x1a\x61\xc7\x22\x5c\x54\xb4\x97\x45\xac\xb7\ \x57\x55\x61\xaf\xc8\xb3\xfa\x1f\x08\xc0\xf1\xdb\xcc\x22\x3e\x8f\ \x98\xa5\xd4\xaf\x9a\x6a\x8c\x57\xb3\xaf\x38\x41\x43\x9e\xf6\x12\ \x38\x0b\xa1\x0e\x8c\x90\x09\xc3\x15\x59\xe2\x3b\x31\x45\x0c\x48\ \xfd\x34\x37\xa1\x8d\xf0\x4f\x67\x4c\x63\x58\x8a\x99\x1b\x2f\x8e\ \xec\x30\x83\x36\xe1\x13\x1e\x43\x73\x61\x4f\x14\x53\x3d\x5e\x08\ \x1f\x23\x06\x31\xac\xff\x18\xfe\x06\xa3\xbf\x6b\x5c\x6e\x71\x2e\ \x0b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x8c\ \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\x04\x53\x49\x44\x41\x54\x78\x5e\xc5\x96\x5d\x68\x1c\x55\ \x14\xc7\xcf\xcc\xec\xce\x64\x66\x3f\x92\x98\xe6\x63\x3f\x66\xcd\ \xd6\x45\xb3\x56\x24\x62\x49\xaa\x35\x48\x84\x44\x6c\xad\x51\x8c\ \x85\x22\xea\x9b\x8f\x42\xdf\x4a\xfb\x20\x3e\x14\x34\xe0\x8b\x0f\ \xbe\xe5\x45\x10\x41\x82\x0f\xd2\x3e\xd8\x94\x4a\x7d\xa8\x28\x45\ \x21\x5a\x9b\x54\x1b\x93\xcd\x26\xbb\x6b\x43\x5b\xb2\xbb\xb3\xb3\ \x33\x7b\x77\x3c\x97\x39\xb0\x83\x84\x4d\x9b\x76\xe2\x81\x1f\x97\ \xbb\xec\x3d\xf7\x3f\xe7\xe3\xde\x2b\x38\x8e\x03\xff\xa7\x05\xe0\ \x3e\x6c\xfc\xc4\x47\x31\x1c\xa6\x91\x2c\xb4\x6c\x0b\xb9\xee\x99\ \x27\x90\xa4\x67\x3e\xf7\xfd\x57\x1f\x5e\x7a\x60\x01\xc4\xf4\xbb\ \x6f\x1f\x3d\xad\xeb\x03\x1a\x9f\xf0\xe0\x19\x86\xc9\x72\x6b\x05\ \x43\x10\xdc\x05\xbd\xfb\xba\x95\x9e\x9e\x2e\x19\xc8\xce\x7e\x3c\ \xcb\x87\x87\x24\x80\x88\xc7\x7b\x43\x41\x49\x91\x4c\x1b\xa0\xd1\ \x00\xd0\xf5\x4c\x37\x88\x00\x22\x8a\x90\xd0\x63\x10\xe9\x40\x09\ \xf9\x8d\x5b\x06\x00\x44\x1e\x4a\x0a\x88\xb9\x2f\xbe\x3c\x0f\xc8\ \x1b\xcf\x0c\x0f\x25\xa7\xa6\x5e\x49\xc9\x4a\x54\xb1\x50\x08\x8f\ \x40\x30\x88\x0e\xed\x3a\x3b\x7f\xe9\x87\xfc\x77\x17\xae\x6c\x52\ \x6a\xe6\xa0\x8d\xed\xaa\x08\xa9\x1e\xde\x3b\x76\xec\xa5\xb3\xa3\ \x87\xc6\x12\x35\x13\x40\x92\x00\x34\x15\x63\x7d\x71\x7e\xf5\xc2\ \xfc\x95\x19\xcc\xfb\xe7\x70\x0f\x26\xc2\xee\x2d\xab\x27\x63\x1a\ \xd7\xcf\x01\x01\x40\x0e\x00\xe0\xe6\x9b\xad\xcd\xfd\x15\x30\x92\ \x4a\xe9\x51\x9b\x01\x30\x14\x20\xa1\xa7\x7c\x3e\xcf\x3b\xe2\x67\ \x04\x7c\x13\x40\xe1\xcf\x66\x32\xa9\x01\xc0\x42\xe4\xf9\x6f\xa2\ \x00\x01\x3d\x15\x8a\x45\x83\xf2\xee\xcb\x39\xe0\x25\x9b\x4e\x27\ \x35\x8b\xba\xc0\x11\xdc\x0e\x58\x5d\xdd\x68\x09\xf0\x39\x05\x43\ \xb1\x44\x2c\x54\xb7\x00\x6c\x46\x8e\x24\x80\x85\x85\x25\xff\x53\ \x40\x8c\x26\xf5\x54\xc4\xe4\x02\x1a\xae\x97\x4a\x65\xab\x5e\xa9\ \x18\x39\x2c\xc0\x2d\xdf\x52\x40\xf9\x4f\xf4\x0f\xec\xdb\x2f\xab\ \x51\xa5\x7c\x87\xe7\xdf\x0d\x7f\x2e\x97\x2b\x03\xc0\x4f\xbe\xde\ \x05\x44\x76\x30\xad\x6b\xf5\x3a\x80\x65\xf1\xa9\xdb\x01\x1b\xf9\ \x42\x15\x27\x8b\x7b\x22\x20\x91\x8c\x6b\x3c\xfc\x16\x73\x8f\x5d\ \x11\xb9\x76\xed\x46\x2b\x02\x3e\xd7\xc0\x48\x5c\x7f\x34\x6a\xd6\ \x01\x6c\xdb\x5d\xc0\x58\x9d\x95\x8a\x9b\xb7\x30\xff\xeb\xbe\x09\ \xa0\xfc\x47\x43\x61\xed\xa9\x70\x57\xaf\x56\xb3\xdc\x03\x48\x0c\ \xf0\xf0\xaf\xb5\xaa\xdf\xe7\x08\x0c\x0d\xa6\x53\xa1\x5a\xcd\xcd\ \xbf\x43\x05\xf8\x4f\xb1\x40\xfd\xef\xbf\x80\x6c\x22\x15\xd7\x6a\ \xd4\x7e\xdc\x02\x01\x80\xa5\xeb\x7f\xed\x59\x04\x46\xe3\x7a\x3a\ \xc2\x6f\x3f\x8b\xfa\x3f\x28\x03\xac\x2c\xe7\x0c\xcc\xff\x9e\x44\ \x60\xa4\xab\x37\xc9\x0b\x10\x18\xe3\xed\xc7\xc3\x4f\x17\x90\x5f\ \x6f\x42\x01\x8d\x8f\x63\xd3\xa7\x9f\xdc\xff\x78\x46\x33\x4c\x00\ \xde\x82\x0c\xdc\xd7\xcf\xfa\xcd\xbf\xcb\x4e\x93\x5d\xc5\xbf\x79\ \xa3\xe9\x20\xe0\xa0\xed\x5a\x00\x6d\x4c\x80\x88\xd3\x43\x8f\x3d\ \x91\x89\x72\x01\x96\x45\x4f\xaf\x20\x40\x7e\x75\xbd\x66\x99\xc6\ \x9f\x80\xd3\xd6\xe6\x2e\xb8\xa6\xb9\x93\x18\xb1\xcd\xe6\x12\x09\ \x94\x39\xb8\xfa\x40\x67\xcf\x80\xdb\x01\xfc\x06\xa4\x0b\x68\xf1\ \xb7\x3f\xaa\x3f\x7e\xfb\xe9\xef\x38\x55\x91\x0e\x42\xa1\x75\x41\ \xf2\x23\x70\xdb\x5e\x40\xfb\xcd\x15\x44\x7d\x76\xf2\xfd\x97\x43\ \xe1\xf0\x64\xa8\x3b\x15\x31\x6a\xee\x15\xcc\x18\xcf\x7f\xa9\xc6\ \x98\xbd\xfc\x48\x2c\x33\x00\x00\x51\x7a\x80\x86\x91\x10\xa2\x91\ \x18\x99\xfc\xed\x2c\x80\x54\x8a\x48\x60\xf4\xd5\x0f\x26\x5e\x78\ \xf3\xd4\x67\x63\x6f\x9d\x39\x37\x34\x7c\x70\xe6\xe8\xf1\x13\x83\ \x75\x4b\x91\x98\xe3\xbe\xff\xb8\xa9\xe1\x7e\x75\x6c\x62\xf2\xf0\ \x81\xc3\xc7\xe7\x9e\x7b\xed\xe4\x0c\x8e\x13\x00\xd0\x49\x44\x48\ \x88\x42\x91\x10\xc9\x7f\xdb\x1a\x10\x38\x4f\xbf\xf8\x8e\x9e\x4c\ \x67\x3e\x39\x32\x3d\xa5\xf7\xc5\xfa\xd5\x26\x28\x52\xb5\x0a\xc0\ \xbf\xbe\x0b\xe5\x35\x99\xfb\x02\x0a\xa0\xdb\xe1\xe7\xc7\xfb\xc6\ \x8f\x8c\xf7\xe5\x96\x57\x06\xcf\x7d\xfd\xcd\xc1\xcd\xf5\xc5\x93\ \xa5\x95\x85\x0d\x00\xb0\x3c\xfe\x19\xd2\x40\xa8\x26\xda\x17\xa1\ \x10\x90\xe5\xce\x0e\x4d\x0b\x38\xe0\x08\xa5\x42\xd1\xe4\x6b\x4c\ \xc3\x6c\x16\xf2\xeb\x75\x2a\x33\x50\x54\x55\xea\x8f\xc7\x95\x2d\ \xfc\xa5\x7c\xdb\x5d\x68\x54\x0c\xa8\xde\x2d\x35\x28\xf4\x22\xd2\ \xf4\x08\x11\xef\xb9\x0b\x7e\x99\x9f\xbd\xe1\x38\x70\x66\x79\x69\ \xf1\x75\x6c\xb1\x20\x38\x4d\xa9\xd1\xb0\x4d\xb3\x7a\x67\x0d\x1c\ \x47\x40\x01\xa2\x14\x90\x35\x45\x8d\xa4\x28\x77\x0e\x1f\x6e\x17\ \x6f\x5e\xae\xdc\x2d\x19\x0f\x7a\x0e\x38\x08\xfb\xf5\xe2\xec\x65\ \x1c\xaf\x22\xaa\x37\x8f\x88\x44\xa3\xf0\x9f\x35\x4d\x0f\x0d\xc4\ \x22\xec\x56\xf8\x77\xee\x02\x87\x60\x48\x1d\x31\x90\x0a\x52\x46\ \xb6\xee\x83\x32\xad\xab\x22\x35\x6f\xfe\xdb\x46\xc0\x41\xa3\xc3\ \xa3\x81\x00\x2d\xb2\xe9\x7f\xf4\xe5\xc8\xf6\x11\xf0\x46\x81\x11\ \xb6\x87\xe6\x76\x87\xd1\xbf\xd9\xa8\xcd\x40\xb9\x85\xa0\x1e\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x94\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x26\x49\x44\x41\x54\x58\x85\xc5\ \x96\x6d\x4c\x53\x57\x18\xc7\x3b\xc5\xa9\x73\x4e\x21\xc6\x45\x65\ \xbe\xc4\xf8\xc2\xc8\xc4\x84\x2d\x43\x08\x74\x33\x6a\xf4\x83\x73\ \xcb\x14\x4c\x8c\x89\xc9\x8c\xc9\xa2\x26\x66\x89\x19\x59\x50\xdc\ \xa7\xc5\x84\x7d\x33\xc6\x97\xf8\x61\x5b\xf4\x83\x13\xfc\x60\x8c\ \x41\x37\xd4\x11\xa7\x20\x82\x88\xa0\x85\xad\xa5\xb5\x40\x5b\x4a\ \x69\x7b\x5b\x5a\x28\xf2\xec\xf9\xf7\x9c\xb3\x7b\x21\x8a\x55\xae\ \x91\xe4\x97\x73\xee\xe9\xbd\xe7\xff\x7b\x9e\x7b\x7b\x8b\x85\x88\ \x2c\x6f\x92\x37\x1a\x9e\xb2\xc0\x67\xdb\x8f\xe4\x1a\xd8\x33\x86\ \x72\xe6\xa4\xa4\x82\xc9\x33\x55\x80\x37\x2c\x2d\x3d\x7a\xd6\xa6\ \x38\x7f\xf9\x76\xb7\x91\x9b\x75\x6d\xfe\xd6\x76\x57\xb8\xdd\xee\ \x8e\x34\xb7\x39\xc2\x5f\xec\x3e\xda\xc4\xd7\xac\x37\x53\xa0\x81\ \x47\x1a\x19\x21\x52\xa3\x9a\xab\xbf\x58\x2c\x4e\x1e\x8f\x97\x86\ \x87\x87\xa9\xb9\xb5\x23\x6a\x2d\x3e\x7c\x8a\xaf\xcb\x36\x4d\x40\ \x85\x3e\x0f\x4d\x8b\x50\x4b\xcb\xc3\xa4\x4c\x22\x91\xa0\xea\x1b\ \x0d\x01\x6b\xc9\xe1\x23\xa9\x48\xa4\x24\xf0\xf4\x29\x71\x75\x3a\ \x63\x8f\x83\x41\x8d\xea\xeb\xef\xfe\xdf\x91\x48\x24\x42\xd7\x6a\ \x1b\x93\x12\xa6\x09\x0c\x25\x9e\x4f\xa0\x5f\xa3\xdb\x77\xea\x47\ \xdd\x96\x48\x34\x4a\x85\x5b\x7f\x68\x34\x45\x20\x31\x3c\x3a\x70\ \x70\x68\x34\xc1\x50\x94\x6e\xfe\xf5\x37\x5d\xbd\xfa\x07\x5d\xa8\ \xac\xa4\xaa\xaa\x8b\xf4\x67\xcd\x75\xda\xb8\xa3\xec\xa1\xc5\x62\ \x79\x6b\xc2\x02\x08\x1d\x88\x0b\x62\x83\x02\x04\x63\xc4\x9a\x16\ \x4d\xd0\x23\x9b\x83\x2a\x2f\x5e\xa2\xd3\x67\x7e\xa1\xb3\xe7\x7e\ \xa7\xda\x5b\x77\x28\xff\xcb\x83\xf7\x4d\x11\x88\x4b\x81\x48\x5c\ \x17\x31\x12\x8d\x8d\x50\x5f\x28\x4e\xae\x6e\x3f\x75\xba\x3c\xe4\ \xe6\xb1\x8f\x6f\x0b\x3f\x03\xf7\x4c\x11\x88\x71\xb5\xa1\x01\x6e\ \x75\x54\x48\x18\xe7\x18\x81\x16\x13\xeb\x18\x93\x62\x7c\x8d\xfc\ \x0a\x4f\xfc\x19\x88\x0e\x8a\x8d\x55\x90\x31\x10\xf3\x40\x44\x5f\ \xc3\x1c\xeb\x90\x33\x4d\x40\x93\x55\xf7\x69\x22\x00\x8c\x9d\xab\ \x4e\xa8\x75\x48\x9b\x26\x10\xe6\xca\x7a\xc3\x62\x63\x8c\xbe\x90\ \x08\xf2\x04\xf5\x40\xac\xe1\x58\x8d\xb8\xc6\x34\x81\x20\x57\xdf\ \xd3\xaf\x87\x63\x04\xc6\x40\x88\xe0\x9c\xd7\x22\x10\xe0\xd6\xba\ \xfb\x88\xba\x02\x22\x04\x01\x4a\x06\x6b\x00\x6b\x6a\xee\xf2\xf3\ \xed\x18\x30\x59\x00\x9b\x22\x1c\x38\x7b\xc5\x31\xa4\x30\xfe\xe3\ \xd5\xe7\x10\x80\x18\xae\x31\x55\x00\xa1\xd8\x1c\x63\x87\x47\x88\ \x20\xd0\xd1\xab\x77\x07\x73\x25\xe7\xd7\x4c\x14\xf0\x86\xc5\xc6\ \x08\x40\xb5\x10\x30\x0a\x19\x3b\x82\x35\x5b\x8f\xc9\x02\x5d\x41\ \xbd\x3a\xbb\x8f\xe8\x71\xb7\x10\x41\x28\x64\x94\x18\x3e\xc3\x1c\ \x02\x3d\x21\x21\x80\x37\xe1\x78\x6f\xc3\x94\x04\x50\x0d\x42\x11\ \xd6\xd6\x25\xc2\x70\xac\x50\xc7\x10\x50\x1d\x72\xf7\x43\xa0\x1c\ \xaf\xe2\x29\x4c\x1a\x33\xe9\x59\x32\x29\x09\xf4\xb2\x40\xab\x5b\ \x60\x0c\x57\x32\x00\x55\xe3\x58\x75\x01\x1d\xe0\xdf\x82\x26\x0e\ \x7c\x97\x79\x87\x99\x6a\x14\x49\x49\x00\x27\xa2\x0a\xdc\x02\x04\ \x22\x44\x85\xb7\x3c\x11\x42\x08\x55\xe1\x4e\xd9\xfe\xfb\x4e\x7e\ \x16\xf8\x9a\xa2\xe2\x43\xcd\xbc\xc7\xfb\xcc\x1c\x66\x96\x14\x41\ \x47\x26\xbd\x50\x40\xb6\x6b\xb2\xb5\xa4\xbc\x11\xed\x6c\xea\x24\ \x7a\xe0\x12\x41\x08\x86\x00\xc0\x31\x3e\xfb\x97\xbb\xe0\xe4\x87\ \xb0\xc3\x2b\xaa\x77\x7a\x82\x43\x05\x5f\x97\xd6\xf0\x1e\xcb\x99\ \x25\xcc\x7c\x26\x5d\x4a\xa4\xa9\x2e\x8c\x27\x80\x56\xa5\x41\xc0\ \xe1\xd7\xab\x6e\xb0\xeb\xed\x6f\x76\x8a\x96\x23\x34\x29\xd9\xee\ \x8d\x9f\xbf\x52\x17\xf8\xe6\xfb\xe3\x8e\x82\xaf\x0e\xd6\xe6\x7c\ \xbe\xf3\x47\xde\x23\x97\xf9\x88\x59\x26\x25\xde\x63\xde\x56\x5d\ \x78\x91\xc0\x14\xdc\xc7\x27\xfd\x7a\xbb\xdb\xb9\xc5\x75\x76\x11\ \x8a\xf5\x7b\x36\x6f\xfc\xd8\xaf\xd5\xbe\x92\xbd\x15\x8e\xbc\xcd\ \x07\x6a\x56\xaf\xdd\x75\x62\xfe\xd2\xdc\x5d\x7c\xed\x5a\xc6\xca\ \x14\x30\x9f\x30\xd9\xcc\x22\x26\x83\x99\xf6\x52\x02\xa8\xee\x11\ \x57\xdd\xc9\x9d\x70\xf1\xf7\xbc\x11\xa1\xbf\x55\xfb\x8a\xf7\x56\ \xd8\x11\x9a\x9d\xbf\xed\xa7\x8c\x79\xcb\xb6\xf3\xf9\x1b\x98\xf5\ \xcc\x3a\xb3\x04\x92\xb7\x20\xc4\x3f\xad\x0d\x36\x5f\xec\xf8\xb9\ \x6b\x3d\x25\xfb\x7e\xee\xc8\xdf\xf2\x5d\xf5\x2a\xeb\x8e\x43\x73\ \x32\xb3\xb6\xf0\x39\x85\x4c\x91\x81\x42\x19\xba\x86\xf9\x74\x22\ \xb7\x20\xf9\x10\x16\x6d\x2b\x2b\x43\x17\xf8\x3f\xdc\xaa\x8f\x37\ \x7d\xbb\x3f\x73\x45\x1e\x36\x5e\xc9\x7c\x28\x37\xce\x61\x56\x1b\ \xc8\x91\xeb\xa8\x38\xeb\x95\x1f\x42\x83\x44\x9a\x6c\xd9\x4c\xd9\ \xbe\xb9\xcc\x3c\x66\x01\xf3\x81\x6c\xeb\x62\x03\x38\x5e\xc8\x64\ \xca\xd0\x57\xfb\x1a\x3e\x43\x02\x6d\x9b\xce\xcc\x90\x32\xd8\x70\ \xb6\xac\x2a\xc3\x40\xba\x5c\x9f\x25\xdb\x3d\xee\x8b\xe8\x3f\x61\ \x3e\xe0\x61\x6f\x4e\x8f\x30\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x04\xd3\ \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\x04\x9a\x49\x44\x41\x54\x78\x5e\xad\x97\x4d\x6f\x1c\x45\ \x10\x86\xdf\xea\xee\x19\xaf\x0d\x17\x8e\xf8\x1f\x84\xbf\x00\x97\ \xfc\x0b\xc8\x81\x13\x1f\x02\xc9\x9c\x40\xe2\x12\xad\x36\x41\x0a\ \xe1\x00\x32\x27\x90\xe0\xc0\x85\x5c\x80\xdc\x90\x10\x87\x48\x28\ \x48\x11\x90\x4b\x82\x42\x40\x41\x0a\x06\x7f\x60\x47\x89\xbd\x8e\ \x63\xef\xcc\x74\x15\xbd\x35\x2d\xb5\xd4\x9a\x99\x55\x14\x4a\x7a\ \xdd\xed\x9e\x9a\xee\xda\xad\x67\xab\x66\x48\x44\xb0\xc8\x4e\x9f\ \x99\x10\x80\x20\x35\x42\xbf\x09\xe2\x78\xe5\xcb\xb1\x60\xb1\x41\ \x03\x88\x87\x7c\x0f\xc1\x33\x7d\x7e\x03\xeb\x32\x14\x4c\x8f\xbe\ \xba\x72\x69\xfc\x3e\x00\x38\x24\x7b\xee\xe2\x87\xe3\xd5\xe9\x11\ \xc0\x0c\x78\xcf\x60\x08\x7c\xc3\x78\x6a\xc5\xc1\x7b\x81\x73\x06\ \x44\x61\xb4\x84\xaa\x06\x44\x80\xba\x66\xbd\xb9\x2c\x0d\xaa\x86\ \xf5\xe6\xb2\x74\x30\x66\x7e\x0d\x3a\x8a\xb4\x32\x46\x30\x1a\x01\ \x67\xdf\x39\x07\x00\x1a\x80\x41\x32\x75\x76\x16\x00\x01\xd7\x37\ \x80\x95\x91\x0d\x87\x5b\x5c\xff\x8b\x40\x44\x98\x55\x8c\xab\x7f\ \x88\x1e\xce\x2c\x61\xbd\xf5\x2d\x9c\xd1\x39\x7b\x8f\xa7\x43\xb0\ \x3f\xdc\xae\xd1\x34\x0c\xcf\x8c\x5f\xc2\x7a\x55\xd7\x18\x2d\x01\ \xd7\xfe\x14\x14\x96\x16\xa6\x20\xcf\x33\x25\xa5\xff\x7b\xf2\x2f\ \xd9\x5c\xb2\xeb\x83\x29\xb8\x0a\xc2\xb9\xb8\xb9\x89\x72\x49\x28\ \x82\xca\x38\x3a\xf5\x49\x0c\x70\x50\x13\x54\x07\x55\x71\x6c\x92\ \xc0\xaa\x0c\xce\x3c\x80\x17\x20\xf8\xb9\x83\x76\x8a\x32\x5d\xdf\ \x46\xcf\xa7\xe6\x34\xc7\x65\x90\xe6\x9b\x22\xec\x48\x41\x64\x10\ \x7e\xb4\x3e\x5e\xbd\x7f\x28\x68\x9a\x90\xcb\x65\x87\x59\xed\xf5\ \x5c\xe7\x28\xac\x49\xbb\x23\x0b\x0a\x07\xd4\x0d\x60\x0c\xc1\x7b\ \x8f\xa5\xd2\x29\x64\x27\xb3\x26\xe4\xda\x29\x1f\x9e\xe7\x3c\x58\ \xbc\xfb\xb6\x02\xf7\x41\x47\x4a\x90\x43\xa8\x90\x15\x86\xe0\x8c\ \xc1\xb5\x3b\x61\xe3\xc2\x62\x79\x44\xb8\xf9\x0f\x94\x7c\xdf\x78\ \xfc\xba\x45\xa8\x1b\x81\x35\x84\xeb\x77\x3d\x08\xa4\xdb\xde\x50\ \x1f\xa3\xb0\xdd\xd8\x24\x94\xce\x85\xfb\x09\x03\xdc\x24\x08\x63\ \xa1\xc9\x21\xcc\x65\xd2\xd8\x0b\x21\xf7\xa4\xe0\x22\x00\x9f\xd6\ \x13\x0b\x39\x84\xe7\x01\x58\x55\x82\x6e\x29\x6a\x14\xc7\x32\xca\ \x44\x71\x54\x15\x35\x0b\x3a\xd1\xb1\x55\x95\x71\x83\x21\x08\x7f\ \xd2\xd9\xf0\x27\x4f\x4a\x26\x99\xbe\x05\x61\xbd\xe7\x3e\xe9\x0b\ \xe0\xd4\x7a\x80\xf0\xf8\x44\xdd\xb4\x12\x16\x85\x81\xa8\xbb\x68\ \x3e\x0f\x0e\x6b\x58\x6b\x75\x1d\x68\xab\x60\x59\x92\xfa\x08\x13\ \x5c\x81\xe0\x07\xac\xad\x4d\x18\xc0\xc7\x5d\xc1\x0e\x41\x48\x46\ \xe3\x13\x54\x55\x8d\xdf\x77\x80\xe3\xe3\x4a\xef\xbc\xb9\xc1\x61\ \xce\x58\x59\x2e\xf0\xf7\x81\x81\xf8\xb6\x44\xdf\xd9\x23\x70\x23\ \x28\x1d\xe1\xf6\x8e\xa0\x9e\xb1\xfa\x0f\x7d\x63\x79\x30\x4e\x01\ \x6c\xed\xd6\xda\x5b\x93\xed\xe8\x80\x6c\x03\xf3\x98\x29\xf8\x2e\ \xf3\xc9\x9b\x97\x82\x3f\x07\xd1\xcd\xff\xc4\x20\x7e\x04\xe1\xbd\ \x54\xf9\x50\x46\x8d\x32\x08\x83\x14\x50\x9b\x36\x54\xc2\xeb\x04\ \x1e\x62\x22\x73\x25\xeb\xfa\x15\x3c\x0f\xc1\xb5\x85\x3f\xbf\x34\ \xcf\x8d\x3b\x2a\xa1\x8e\x99\xbe\x06\xe1\x42\x67\x25\xfc\xfc\x93\ \xf1\xb3\xd3\x23\xd6\x85\xc2\x6a\x7b\xd5\x4e\xa7\xbb\xb3\xc4\xca\ \x27\x20\x02\x96\x4a\xc2\xe1\xc3\x1a\xcb\xa3\x02\x00\xd4\xd7\x1a\ \xd2\x2e\xc8\x22\x28\x9c\x85\xb5\x00\x0b\x81\x99\x61\x88\xb0\x32\ \x22\xbc\xfa\xe6\x04\x00\x2e\x74\x41\x88\xaa\xe6\x40\xb1\xd1\xc5\ \x8d\x07\xc0\xca\x92\x81\x08\xe3\xee\x3d\x68\x55\x23\x48\x98\x0b\ \x88\x82\x00\x6c\x4d\x1d\x1a\xef\xb5\x8d\x6f\xee\x1b\x0d\x60\x79\ \x64\xb1\x79\x10\xcb\x03\x08\x77\xf7\x04\xa3\x62\x7e\x4d\x82\xff\ \x70\x1d\xb8\xf5\xc6\xda\x79\x85\xf0\xc9\xeb\xc0\x70\x0a\x3a\x03\ \xc8\x20\xb4\xdd\x10\xaa\xca\x01\x08\xab\xa0\x13\x55\x82\xb1\x8a\ \xf2\xa9\x35\x47\xeb\x87\x50\xcd\x2c\xae\x86\xd1\x16\x7f\xfa\x6f\ \x40\xb1\x23\x0e\xa4\xe0\xd4\x17\x9f\x8e\x57\x99\x81\xd9\xcc\xc3\ \x39\xab\x30\x19\xa2\x08\x20\x00\x22\xad\x90\xce\xcd\x47\xe8\xba\ \xb5\xd4\x8e\x73\x07\x82\xb6\x72\x22\x52\x78\x1b\xcf\x18\x95\x06\ \x2f\xbf\x3e\xe1\xd8\x92\x91\x07\x61\xf2\x2a\xe1\x7d\x4b\xfb\xd6\ \xbe\x1e\xae\xfe\xbb\x0f\x5b\x1c\xd8\x33\xee\x1d\x19\x88\x66\x56\ \xb0\x7d\x80\xb9\x8f\x1e\xfe\xef\x14\x10\x16\x3d\x7c\x67\x4a\x10\ \x69\xdb\xf3\xee\x91\x24\x4e\x30\x0c\xe1\x6f\x21\xd2\x9d\xac\x19\ \xfd\x5f\x29\xb8\xac\x63\x5f\x0a\x62\x35\xec\x68\xc7\x2a\x6d\xc1\ \x4f\xd0\x8e\x9b\xa0\x3a\xaf\x82\x8b\xdb\x71\xde\x54\x1e\x1f\xc2\ \x34\x57\x4b\xe3\xe9\x97\x26\x9d\x4f\xc5\xa7\x2e\x7d\x36\x5e\xad\ \x1b\xc0\x1a\xc0\x2b\x58\x84\xaa\x62\x7d\xe9\xa8\x1b\x41\xe1\x48\ \x8b\x95\xb5\xb1\x3a\x32\x2b\x2f\x14\x63\x25\x52\x30\x15\x5e\x02\ \xe9\xb5\xf6\xe4\xc8\x87\x3e\xee\x09\xce\xbc\xd6\xf3\x62\xa2\xee\ \x22\xfa\x00\xfa\xe0\x11\xe9\x9d\xd6\x52\x00\x4c\x0f\xd7\x03\xf6\ \x4f\x8c\x6e\x29\xcc\xd8\x3b\x54\x50\x15\xb8\xdd\x69\x7b\xb0\x04\ \xdd\x0f\xa0\x1a\x83\x76\xfe\x48\x3f\x50\x0b\xf3\x81\x80\xcc\x40\ \x25\x7c\xf1\x95\xc9\x76\x9e\x82\x01\xe5\x26\x7d\xea\x7a\x31\xc9\ \xde\x8c\xb2\xb7\xe0\xfc\xe5\x24\x41\xe9\xa2\x6c\xfe\x62\x92\x2a\ \x9d\xaa\xce\x2a\x5f\xf6\x30\x9a\xcc\x64\x74\xe6\x30\x71\xda\x34\ \x11\x1e\x75\x9c\x94\xca\x6f\xf4\x6b\x86\x0f\x4f\xf6\x1f\xaa\x7a\ \xaf\xba\x88\x23\x10\x31\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x4b\ \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\x06\x12\x49\x44\x41\x54\x58\xc3\xc5\x57\x6b\x6c\x14\x55\ \x14\x9e\xc7\x0e\xd3\xdd\xa5\xd3\x2e\xee\x42\x61\xb7\xa5\xd1\x02\ \x05\x5a\x7c\xd4\x14\x81\xb4\x40\x25\xc6\x07\xa1\x4a\x78\x04\xf9\ \xa1\x09\xf2\x03\x48\x08\x89\xc1\xa8\x18\x88\xd1\x80\xf1\x8f\x1a\ \x81\xd8\xa0\x31\x3e\x80\xc4\x90\x62\x09\x91\x34\xbc\xc4\x86\xca\ \x2b\x3c\x22\x50\x52\x08\xb4\xdb\x2d\xad\xb4\x74\xed\x76\x67\x76\ \x67\x67\xef\x8c\xe7\xec\xdc\x85\x71\xbb\xbb\x6c\xcb\x0f\x6f\x72\ \x32\x3b\x77\xee\xbd\xe7\xbb\xe7\x7c\xe7\xb1\xac\x61\x18\xcc\xff\ \x39\x6c\xa9\x13\x0b\x57\x7d\x5c\x07\x8f\x65\x29\xd3\x6d\x20\x21\ \xcb\xbb\x04\x32\x3d\xcd\x79\x21\xba\xf6\xdc\xc9\xfd\xdb\xda\x46\ \x05\x00\x95\x6f\x79\x7f\xcd\x6a\xeb\x84\xbf\xab\x57\x51\x94\x08\ \x49\xbe\x3b\x1d\x76\xbe\xb8\xb8\xc8\x91\xba\x51\x51\xa2\xc4\xdf\ \xd5\xa3\xfc\x75\xf5\x56\x08\x2e\xf2\x3b\x4c\x1d\x00\x20\x27\x46\ \x0a\x20\x31\x26\x4d\xf2\x38\x6d\x82\xc8\xc7\x34\x86\xf1\x78\x7c\ \x52\x5c\x37\xe7\x59\x16\x36\xf1\x0c\x23\xc0\x4e\x1b\x08\x07\xef\ \xe8\xc5\x78\x9c\x61\x34\x90\xd2\xd2\x32\xd7\x82\x05\x35\xde\xee\ \xee\x80\xb7\xf1\xe0\xd1\x05\x00\x64\x27\x80\xd8\x9d\x49\x0f\x9b\ \xca\x01\x8b\x0b\xca\xa7\x4e\x29\x29\x5a\xbe\x6c\xf1\xe4\xfc\x02\ \x8f\x43\x8d\x99\x8a\x50\xa9\x5d\x64\x98\x96\x96\x96\xee\x5f\x9b\ \x4e\xf4\xe2\x1e\x58\xe7\x98\x39\xa3\x4c\x9a\x0f\x8a\xa3\x2a\xc3\ \x10\x9d\x02\xe4\x54\xf2\x4d\xc3\xbe\xf6\xf6\x9b\xfe\x1d\x00\xe2\ \xa7\x9c\x00\xa4\x80\xa9\x9f\x38\xd1\xfd\xe9\xa6\x4d\x1b\x2a\xc2\ \x0a\xdc\x12\x9c\x90\x07\xca\x83\xfd\x81\xd0\x97\x5f\x7d\xb7\x17\ \x96\x6c\x86\x83\x65\x58\x87\x7c\xa8\x9f\x37\xf7\xd9\xb5\xf5\xaf\ \x2f\x79\x52\x8e\x98\x60\xed\x79\x30\x4b\x42\xea\x07\x5b\xbe\x68\ \x86\x75\xf5\xe9\x74\x70\xd9\xfc\x03\x9b\x9a\x7a\x7a\xfa\x55\x0e\ \x4c\x8e\x30\x75\x8a\x95\xe5\x1e\x7c\x97\xe9\xb3\x0d\xe4\xb3\xd3\ \xad\x97\x5a\x07\xee\xf7\x29\xe8\xa6\x18\xb8\x43\x89\x82\x25\xf2\ \x24\x11\x80\x55\x00\xc8\x45\x23\x06\x60\x1d\x68\x56\x42\x4c\x10\ \xa8\x20\xc3\x38\x76\xad\xed\x46\x10\xbf\x23\x67\x90\x3f\xe8\x3a\ \x8f\xc7\x05\x76\x63\xbc\x23\x22\xa1\x75\xa0\x52\x5d\x37\x0f\x45\ \x20\x7a\x96\xd4\xc1\x26\xd7\x83\x05\x18\xde\x5c\x9f\x2d\xd3\xe4\ \x64\x81\xb8\xf1\x50\x79\xd2\x0a\x19\x86\x57\x72\xb9\x44\x34\x7f\ \x9c\x02\x45\x77\x85\x95\x28\xc2\x19\x1a\x35\x00\x83\x2a\xc7\x50\ \x43\x22\xa6\xe3\x2d\xf8\xd8\x09\x8f\xd9\x93\xbc\x25\xf9\x68\x7a\ \x8c\x5a\x8c\x18\xc6\x50\xc9\xd9\x3f\x2f\x07\xd1\x3d\xa3\x76\x01\ \x2a\xd7\xd0\xa7\x84\x4a\x7c\x98\xf2\x6a\x78\x2c\x7a\xf9\xb5\xba\ \x2a\x4e\x90\xc4\x28\x90\x6f\x8c\x00\x09\x0b\x20\x1d\x3e\xd4\xdc\ \x19\x0e\x2b\x7b\x80\xa4\xa1\x51\x03\x48\x98\x9f\xde\x3e\x06\xa4\ \xc2\x58\x87\x51\x0d\x8a\x2f\xe0\x8f\xca\x59\xe5\xd2\x8c\xca\x99\ \xae\xc9\x4f\x55\xb8\x87\x64\x93\xa4\x2c\xaf\x92\xdf\x9a\x9a\x3b\ \xcf\x9e\xb9\xb4\x27\x5b\x22\xca\x99\x84\x08\x02\x33\x9d\x0a\xc4\ \x2a\x70\xfb\xa4\xad\xdb\xb7\x55\xd9\xed\x66\x26\x44\x40\xb2\x82\ \xbe\x36\xd7\x0c\x40\x9e\x38\x72\x70\xff\x6d\x45\x56\xf6\xc0\xf6\ \x9f\x99\xc7\x25\x21\x49\x02\x20\xa6\x15\xa2\x51\x95\x04\xba\x02\ \xa1\xae\xce\x40\xc8\x0f\x72\xb7\x3b\x10\x12\xc6\x40\xcc\x83\xd9\ \x31\x67\xb8\x27\xf8\xa4\x35\x1b\x36\x56\xbe\xf4\x6a\xdd\x87\xce\ \xb1\x8e\x53\x98\xd0\x1e\xcb\x02\xa8\x1c\x15\x23\x17\x30\xce\x86\ \x06\xfb\xe4\xfd\xdf\x27\x32\xa1\x75\x54\xd7\x2c\x9c\xeb\x7e\x6e\ \x4e\xad\x2f\xa6\x89\x7c\x34\x2e\xf2\xd3\x9e\xae\xf1\x96\x95\x97\ \xbb\x8e\x34\x1d\xde\x01\x20\xbc\xe9\x5c\x91\x33\x09\xe3\x34\xb4\ \x30\x00\x6c\xc2\x83\x4c\xb8\x3e\x85\x8c\xeb\x2f\x9e\xbf\xbc\xf6\ \xed\xf5\x1b\x2b\xd5\x98\xc8\x87\x81\x0f\x0e\x87\xc7\xb1\x74\xf5\ \x9b\x53\x7f\x6c\xf8\x76\x1d\x7c\xbf\x91\x5a\x1d\xb9\x91\x44\x01\ \x12\x51\xb7\xa4\xe2\x34\xa9\x7b\xb7\x0c\x8c\xbf\x7c\xfe\x8f\x00\ \xba\x23\x02\x84\xed\x87\x00\x0c\x0e\x89\xfc\x92\x15\xf5\x25\x69\ \xfa\x8c\xdc\x00\x20\x09\x89\x85\x03\xd9\x32\x21\x82\x38\x7d\xb2\ \xb5\x5f\xcc\x33\xdd\x85\xf5\x60\x30\xcc\x30\x63\x5d\x3e\x09\xf8\ \x30\x07\xac\x20\x8d\x3c\x13\x52\x0e\x68\x49\x37\x3c\xba\x8b\x3b\ \xd7\xd7\x1b\x08\xa1\xbf\x70\x4f\x04\x40\x28\x50\x21\x8b\x4b\x4b\ \x30\x59\x95\x8f\xca\x05\x08\x20\x4e\x2d\x41\x72\x68\x23\x0d\x9a\ \xc2\xd1\x6a\x49\x31\x46\x9d\x8a\x0d\x4b\x24\x24\x5c\x60\x40\x1f\ \xa1\xb3\x30\x78\x8b\x70\x49\xc1\x5b\x3a\x0b\x3c\x4e\x4c\x5a\xb8\ \x87\xa1\x35\x01\xf2\xc2\xb0\x9a\x90\x11\x00\x6b\x0e\xf8\x6e\xb0\ \x49\xdf\x27\xda\x2e\xfd\x41\x3d\xc0\xbd\x42\xaa\xcc\x5b\xfa\x5e\ \xb5\xaf\xb4\x78\x22\x86\x21\x92\x10\x49\xcb\xd9\x90\x0e\x2a\xe9\ \xba\xe3\xef\x4d\x6d\x56\x6d\x99\x94\x9b\xc5\x94\xe1\x40\x11\x8b\ \xc5\x45\xb3\xa4\x62\xec\x09\x0d\xa2\xa1\x42\x87\xc5\xe2\x09\xe1\ \x38\xdb\xca\x59\x2f\xd4\x14\x0d\xc2\x3d\x55\x0d\xdb\x32\x0c\x45\ \x86\xe9\xeb\xbe\x99\xb6\x20\x71\x59\x94\xdb\xe6\xd4\xbf\xbb\x14\ \x6e\xe3\x0c\x47\xcc\x02\x84\xb7\xc7\x5b\xf1\xf6\xf1\x0e\x87\x94\ \x3f\xfb\x99\xba\xb7\x5e\xa1\x2d\xba\x54\x51\xbb\xaa\x76\xee\x1b\ \x9b\xb7\x3f\x5f\x5b\xbb\x4c\x2c\x9c\x52\x98\xa8\x09\xf0\x21\x1f\ \xbe\x16\x8c\x55\x49\xeb\xf1\x53\xd8\x3f\x1e\xc8\xda\x13\xa2\xf2\ \xda\x15\x1f\xbd\x08\xb8\x96\x03\x8c\xe9\xde\xc9\x25\x45\x55\x75\ \x8b\x7d\x91\xf8\x04\x3b\xde\x08\xad\x80\x3d\x61\x21\x1c\xca\x6a\ \x9d\x72\xc7\xb5\x0b\xff\x5c\xbd\x70\x11\xab\x9c\x51\x36\xa3\xdc\ \x39\xbd\xaa\xda\xe5\x18\x37\x4d\x0a\x0e\xc2\x5a\x0d\xdb\x77\x48\ \xcb\x85\x2a\x39\xde\xb8\xf7\x56\xf7\x9d\x8e\x5d\xa7\x7e\xf9\x64\ \xa7\x91\xd2\x84\xa6\x02\xe0\xe6\xaf\xdc\xba\x6b\xd5\xba\x77\x56\ \xbb\x27\x8c\x77\xc4\x88\xc8\xa3\x62\x2c\x34\xe8\x7f\x5c\xca\xf3\ \x66\xa9\x45\xb3\x3a\xa1\x18\x89\xa2\xb9\x17\x5b\x2f\x45\x31\x43\ \x0e\xbb\xa7\x3c\xc8\x03\x5a\xc8\x1f\x6e\x3d\x76\xb4\xc7\x7f\xab\ \xbd\xe1\x74\xe3\xe7\x5f\x27\x02\xc3\x30\xf4\x47\x72\x00\x21\xdd\ \xeb\xfd\x3b\x02\x1a\x59\x0c\x3b\x35\x18\xd4\x42\xc1\x01\x0d\xdf\ \x13\x76\x85\x05\x85\x4f\x8c\x13\xb4\x71\x2e\xe1\x61\xb6\x82\x08\ \x81\x87\x16\x8d\x92\x7b\x77\xef\x46\x3b\xda\xdb\x65\x7f\xfb\xcd\ \x33\x4a\xf8\xfe\xa1\x2b\x27\x7e\x68\xce\x44\xf8\x61\x00\x74\x12\ \x6f\xdc\xb7\xab\x41\xd0\x09\xb1\xe9\x7a\x5c\x30\x74\x22\xc4\x55\ \x79\x40\x8d\xc8\x03\x06\xa3\x73\x09\x10\x10\x01\x42\x9e\xd3\x2d\ \x08\x79\x6e\x6a\x3a\x83\x36\x84\x86\xae\x13\x39\xa6\x84\x6f\x0f\ \xf6\x75\x5c\xe9\xbc\xde\x72\x1d\x66\xc3\xd9\x42\x7c\x98\x0b\x28\ \x52\x34\xac\x93\x8a\x9d\xbe\x0b\xf4\x1b\x4f\x9f\x6c\x8a\xd1\x74\ \x8b\x60\xbc\x83\x53\x18\x70\x08\x23\x53\x10\xd1\x5c\x5c\x90\x0c\ \x27\xb4\xa6\x4a\x95\x10\x7a\x98\x6d\x04\x00\x12\xde\xa0\x67\x44\ \x28\x20\x9d\x49\x93\x0c\x6d\xff\xcd\x78\x60\x5f\x96\x4d\xde\x80\ \x7a\x36\x71\x90\xcd\xa2\x98\xcb\x00\xc0\x48\x01\x90\x04\x91\x14\ \xdd\x48\xf3\x37\xec\x5f\x35\x1d\x2c\x65\x8c\x04\xaa\xe9\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x07\x72\ \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\x39\x49\x44\x41\x54\x78\x5e\xa5\x97\x6b\x6c\x14\xd7\ \x19\x86\x9f\x33\x33\x7b\xf1\xda\xbb\x5e\xdb\xf1\x05\x1a\xb0\x21\ \xb8\x01\x43\x02\x85\xa6\x51\x29\x14\x2b\xa2\x49\x14\x89\x5f\x6d\ \x41\x55\xc9\x45\x28\x42\x02\xa7\x28\x4d\xaa\xfe\xea\x45\xe2\x47\ \xfe\x94\x44\x51\x4a\x93\x8a\xaa\x45\x4d\xa3\x46\x8a\x5a\x95\x48\ \x16\x69\x68\x43\x21\xad\x02\x82\x16\x62\x2e\x36\x36\xc6\x57\xf0\ \x8d\xb5\xbd\x17\xef\xee\xec\xce\xe5\x74\x38\x5a\x65\xd5\xf5\x62\ \x0b\xfa\x4a\xaf\xce\x68\xce\x1c\x7d\xcf\xf9\xbe\x6f\xce\xce\x0a\ \x29\x25\xe5\x24\x84\xd8\x0e\xac\x67\x71\x75\x49\x29\xff\xce\x7d\ \x4a\x01\x94\x04\x5e\xab\x69\x5a\xd4\x03\xfb\x9e\xe3\x38\x1d\x2c\ \x22\xef\xd9\x3f\x00\x9d\x05\x90\x5e\xee\x51\x5a\xe9\xae\x0f\x3c\ \xbd\xe9\xa7\xaf\xef\xdb\xf9\xf3\x27\x36\xae\x79\xf2\xe2\xc5\x8b\ \x0c\x0e\x0d\x31\x34\xe8\x79\xa8\xe0\xc1\x41\x35\x7a\xf7\xf1\xe6\ \xd9\xfd\xe4\xe6\x67\x3e\x78\x75\xe7\x6b\x6b\x9b\xc2\xcf\x79\xf0\ \x11\xee\x51\x46\x09\xc0\x86\xf6\x68\x76\x57\x55\x65\x8e\xab\x21\ \x49\x4f\x4f\x0f\xe1\x70\x98\xbb\x29\x95\x4a\x61\x4c\x0d\xd4\x39\ \xdd\x03\x75\x4b\xb4\x74\xcd\x55\xa8\x06\x92\xff\x0f\x80\xb8\x39\ \xd8\x47\xc5\x48\x1f\xb3\xb7\x5c\xfe\x71\xf2\x24\x19\x33\x8b\x63\ \xd9\x48\xc0\x34\x4d\x72\xb9\x1c\xf9\x7c\x1e\xdb\xb6\xa9\xad\xad\ \xa5\x22\x3e\x45\xa2\x42\xc3\x76\xb9\x2f\x19\x25\xf5\x14\x48\x70\ \x81\xc6\xa0\xe0\xc2\xbf\xfe\x86\x99\x99\x43\xc3\x45\x02\x02\x88\ \xe8\x2e\xba\x26\xf0\x09\x81\x71\x5b\xb2\x2c\x62\x20\x70\xc1\xa8\ \x08\x3c\xf5\xc2\xcf\xbe\xfe\xd2\x2f\xbb\x1e\x02\x36\x00\x51\xa0\ \x19\x68\x41\x89\xcf\x81\x77\x0e\xff\x60\x7d\x5f\x59\x80\x23\x47\ \x8e\x08\x5d\xd7\x35\xa9\x39\x0a\x60\xd5\xaa\x15\xf8\x32\x3a\x92\ \x10\x52\x4a\xcf\x20\x04\xd4\x87\x83\x04\x0c\x9d\x80\x4f\x63\x3c\ \x2b\xb8\x3e\x31\xc9\xbf\x27\xc7\x08\x6e\xda\xb9\x67\xeb\xb6\x6d\ \x7b\x2a\xc2\x21\x96\xd6\x06\x08\x05\x74\xaa\x2b\x75\xea\xc2\x7e\ \xa2\x55\x7e\x7a\x46\x92\xed\xc7\x3e\x9b\x0a\x00\xfb\x4b\x00\xe6\ \x77\xa5\x10\x78\x8b\x03\xac\x89\x56\x92\xb5\x1c\x2c\xdb\xc5\x95\ \x12\x4d\x08\xfc\x86\x46\xd0\xa7\x93\x75\x04\x89\x68\x0b\x6f\xbc\ \xf9\x3e\x8d\x4b\x1f\x04\x50\xa0\x85\x51\xd9\x2b\x93\x2a\x57\x75\ \xb5\x9f\xc6\xda\x06\x46\x26\xe7\xf6\xbd\xf4\xd6\xe7\x1c\x3e\xb0\ \x61\xff\x5d\x01\xd0\x41\x68\xa0\xeb\x02\xd7\xb3\xe1\x0a\x24\x02\ \x57\x0a\x34\xa1\xee\x2b\xdf\x4a\x39\x7c\xf5\xe9\xcd\x44\xeb\xea\ \x55\x6f\x94\x91\xea\x97\x64\x32\x49\x30\x18\x54\xcd\xfc\xfd\xed\ \xcd\xd8\xf6\x8d\x22\x44\x11\x00\xf6\xee\xdd\x2b\x3b\x3a\x3a\x5c\ \x43\x08\x7c\x1a\xf8\x75\x0d\xc3\xd0\xd1\x10\xd8\xba\x8b\x2b\x51\ \x00\x86\xa6\x11\x30\x34\xf5\x8c\x99\xcd\xaa\x20\x3e\x9f\x8f\x72\ \xb2\x2c\x8b\x44\x22\x41\x4d\x4d\x8d\x02\x08\x04\x02\xec\x6a\xff\ \x12\xee\xa9\x9b\xfb\x3a\xde\xbc\x70\xfe\x57\x2f\x6f\x3c\x6a\x50\ \x14\xae\xeb\x4a\xa1\xeb\x18\x06\xaa\xc6\x04\xee\x5c\x6b\xcc\xe5\ \x6c\xe2\xe9\x1c\xd9\xbc\x8d\xe5\x48\x42\x7e\x9d\xd9\x2c\xd4\x9a\ \x26\x0b\xc9\x71\x1c\x32\x99\x8c\x2a\x03\xc5\x46\x67\x63\x4b\x80\ \x4b\x03\xd9\xe7\x81\xa3\x1a\x45\x21\x3d\xe9\x1a\x18\x3a\xf8\x7d\ \x02\x5b\x4a\x06\x62\x29\xae\x26\x0d\x8c\x55\x5b\x78\xb0\xfd\x59\ \xbe\xbc\xe3\x65\xea\xb7\x3c\x4b\xcd\xc3\x5b\xb9\xd6\x3f\xc2\xe9\ \xd3\xa7\x89\xc5\x62\xaa\xe6\xa7\x4e\x9d\xe2\xf0\xe1\xc3\x6a\x2c\ \x9e\xb0\x70\xfc\xf8\x71\x0e\x1d\x3a\xc4\xc1\x83\x07\xe9\xec\xec\ \xa4\xff\xc6\x20\xb6\x9d\xd7\x84\xa7\xf9\x00\xba\x02\x60\x68\x36\ \xcb\xb9\x49\x87\xd6\x1d\x1d\x6c\xfb\xe1\x51\x2a\xb7\xbe\xc2\xf8\ \x03\x3b\xb8\xec\x3c\xc6\x65\xf9\x04\x99\xe5\x7b\x68\x79\x7c\x3f\ \x96\xa8\xe3\xd8\x87\x9d\xea\x54\x1c\x1e\x9d\xe4\x9b\x4f\xed\xe5\ \xca\x95\x2b\x0a\x40\xd7\x75\x42\xa1\x10\x95\x95\x95\xea\x3a\x12\ \x89\x60\x18\x06\xae\x6a\x52\xf7\x2e\x6f\x81\x10\x4c\x66\x25\xf1\ \xa5\xad\x7c\xe7\xc0\x2f\x48\xe9\xf5\x24\x52\x39\x84\x6e\x81\x26\ \x48\xe7\x5c\x62\x71\x93\x54\x2a\x4f\x77\xde\xe5\x72\x55\x80\x8d\ \xad\x5b\xb8\xd2\xdb\xc7\x58\xb6\x8d\x99\xb3\x13\x18\x2a\x80\xfc\ \x22\x68\x4b\x4b\x8b\x3a\xb4\x84\x10\x54\x55\x55\x31\x91\x04\x6f\ \x4e\x96\x05\x10\x1a\x0c\xa7\x24\xbb\x5e\xfc\x31\xe1\x25\xcb\x18\ \xe9\x7c\x97\xa9\xfe\xcb\x18\x81\x0a\x5a\x5b\x36\xb0\x7c\xd5\xa3\ \xf4\x4e\x84\xb9\x31\x9c\x22\x36\x63\x32\x3a\x95\x61\xcc\xb3\x21\ \x1a\x99\x8a\x25\x68\x7f\x2c\x48\x43\x11\x40\xed\xde\xdb\x35\x75\ \x75\x75\x00\x0a\x2a\xe5\xa4\xbd\xd1\x96\x77\x34\x3f\x03\x1a\xb4\ \x44\x05\x9f\xbc\xfb\x06\x12\x8d\x8a\xc4\x20\x0d\x91\x20\x8e\xeb\ \x72\xb3\xe7\x24\x31\xb7\x8a\x75\xdf\x7a\x9e\x68\xdb\x37\xb8\xd8\ \x13\x67\xcc\xce\x90\x4a\xe6\x49\xa7\x2d\xcf\x36\x08\x40\x16\xcf\ \x04\xef\x0d\x51\x00\x85\xa3\x5e\x81\xf9\x8c\x3c\x42\x97\x77\xcf\ \xc0\xb2\x88\x20\x6f\x0f\xe0\xaf\x8c\x50\xb7\xb2\x96\x82\x58\xd1\ \x50\x45\x3c\x63\xd1\x7f\xea\x6d\x92\xf5\xff\xe1\xa1\x87\x5f\x20\ \x99\xf6\x61\x59\x0e\xb6\xe3\x2a\x1b\x3e\x0d\x69\xaa\x0c\x50\x22\ \x05\xa5\x4c\x71\xae\x5c\x06\x94\x1b\x22\x3e\x7c\xa1\x00\xa5\xaa\ \xad\xf4\xf1\x40\xd8\xcf\xd9\x2b\x67\x59\xff\xc8\x6e\x42\x41\x83\ \xac\x67\xdb\x96\x9e\x5d\x0c\x5d\x03\x50\x8d\x26\x28\x0a\x09\x08\ \x89\x2c\x66\x87\xbb\x66\x40\x59\xa8\x71\x9e\xce\x0f\xcc\x30\x38\ \x6b\xb1\xa3\xe3\x2d\x7a\x66\xa3\xe8\x81\x14\xc1\xa0\xae\x82\xdb\ \x96\x81\xcf\xd0\x50\xbb\x74\x5d\x24\x25\x92\x14\xe6\x16\x01\xd0\ \x34\x81\x50\x66\x9e\xfa\xa7\x52\xbc\xfa\x5e\x17\xfd\xb7\xd2\x88\ \x6a\x93\xe6\xfa\x0a\xb2\xa6\x43\xce\xb4\x31\xbd\x71\xd3\xea\x1a\ \xce\x9c\x28\x5f\x02\x60\xf1\x12\x08\xf1\xbf\x59\x28\x55\x6b\x53\ \x98\xd7\x77\xaf\x67\x28\x61\xa3\x37\xac\x66\xcd\xba\xaf\xa8\xce\ \x2e\x88\x33\x23\xd0\xd6\xd6\xb6\x30\x80\x5c\xac\x07\x16\x28\xc1\ \xe3\xad\xb5\x7c\x6d\x65\x84\x4f\x7b\x27\xf1\x3f\xb2\x8e\x1d\xbb\ \x5e\x54\x5d\x5e\xa2\x45\x00\x58\x30\x03\xca\x9a\x00\x41\x51\xae\ \x65\x92\x4f\x4d\x63\xcd\xcd\x60\x67\xe2\xe4\x66\x24\x86\x95\x29\ \xd9\xd1\xe2\x52\x60\x0b\x37\xa1\x50\x96\xd2\xc1\x31\x93\xe4\xe7\ \xbc\xa0\xa9\x69\x05\xa0\x40\x24\xc4\x73\x30\x38\x2b\x59\x3a\xe7\ \xde\x17\x80\x44\x02\x62\xe1\x0c\x64\xc6\xba\x01\x8a\x41\x4d\xc9\ \x68\x42\x72\x2d\xe6\x32\x96\x92\xe6\x60\xbe\x2e\xf1\xed\xaa\x15\ \x8d\xf7\x0a\xe0\x38\x8e\x32\x18\x0b\xbf\x86\x96\x03\x33\x59\x49\ \xff\x8c\xe7\x69\x97\x89\x39\x69\x4e\xa5\x65\xff\x6c\x56\xf6\x0f\ \xc7\x65\xcf\xba\x2d\xed\xeb\xab\x9b\x5a\x9f\x29\x02\x2c\x1e\x78\ \x7a\x7a\x9a\xd1\xd1\x51\x26\xd2\x41\x60\x59\xbc\x2c\xc0\xe4\x9c\ \xe4\xe2\xb8\x8b\x17\x84\x9b\x49\x19\xbf\x3d\x27\xfb\xc6\xe7\x64\ \xcf\xed\xb4\x9c\x00\xc6\x0a\x1e\x6f\x58\xde\xd6\xa4\x1b\x7e\x16\ \x03\x48\xa7\xd3\xea\x7f\x44\x57\x57\x17\x37\x06\x47\xd1\xaa\x57\ \x12\x69\xde\x0c\x1a\xef\x94\x03\x18\xfd\x74\xd8\xb9\xd1\x3d\x25\ \xc7\xc7\x53\xb2\xcb\x83\x19\x02\x26\x81\x71\x20\x0d\xf8\x00\x1d\ \x08\x5a\x79\xd3\x70\x1d\xa7\x1c\x80\xfa\x00\x99\x98\x98\x50\x3f\ \xcb\xdd\xdd\xdd\xc4\xd2\x3a\x81\x86\xb5\x54\xad\xde\x86\xe6\x0f\ \xfd\xde\xd2\x8c\xb7\xbd\xaf\xe3\x73\xe5\x00\xba\xfe\xd8\xe5\xfc\ \x04\x88\x01\x03\x80\x09\x84\x81\x4a\x20\xc0\x3c\x49\x0a\x00\x2a\ \xc5\x33\x33\x33\x5c\xbf\x7e\x9d\x4b\x97\x2e\x31\x3a\x3e\x4d\xde\ \xd7\x44\x45\xc3\x66\xfc\x75\x91\xb3\xae\x74\xde\x1b\xbe\x76\xee\ \x4f\x7f\xfd\xdd\x8f\x6e\x7b\xc0\x6e\xd9\xb7\xc0\x9b\xe8\x15\x42\ \x5c\x07\x34\x20\x50\x08\x9c\x07\x74\x40\x02\x4e\x61\x4e\xf7\xf9\ \x83\xb6\x44\x30\x33\x3b\xcb\xc4\xf8\xb8\x0a\x3a\x30\x34\x4a\xca\ \xae\x42\xaf\x6e\x41\x34\x3d\x3a\x66\xa5\x13\x1f\x0e\x9c\xfb\xe8\ \x83\x4b\xa7\xdf\xef\x03\xe6\x00\x93\x12\x19\xcc\x97\x2c\x06\x23\ \x07\x08\xc0\x29\x80\x18\x5f\x00\x04\x42\xb1\x91\x5b\x53\x5c\xfd\ \xec\x2f\x4c\x67\x03\xf8\xa3\xcd\x18\x8d\xdb\x11\x66\xf6\xd8\xd4\ \xad\xde\x63\xff\xfc\xf3\x2b\x67\x00\x0b\xc8\x01\x59\xc0\x06\x5c\ \x40\x2e\x08\x20\x3d\x09\x21\xdc\xc2\x02\x0a\x8b\xac\x02\xac\x5e\ \x00\xd0\xce\x7f\xf4\xeb\xdf\x44\x9f\x7b\x6d\x49\xa0\xf9\xbb\xbb\ \x2b\x73\x99\x13\x99\xe4\xf4\x89\x0b\x1f\xff\xf6\xe3\x81\xae\x4f\ \xe2\x85\x35\x4e\xc1\x56\xd1\xb8\xb2\xa4\x61\xfe\x0b\xaa\xd3\xe9\ \xaf\x70\x35\x30\x23\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\xa0\ \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\x06\x67\x49\x44\x41\x54\x58\xc3\xc5\x57\x09\x50\x95\x55\ \x14\xfe\x1f\xfc\xef\xe1\x56\x84\x58\x6e\x28\xa0\xa8\x94\xca\x66\ \x88\x20\x62\xa8\xb8\x01\x06\x83\x4b\xb2\xa8\xa5\x0c\xa8\xe1\x14\ \x68\x5a\x2a\xc6\x96\x92\x28\x8b\x0a\x18\xc8\x22\x04\xc8\x22\x02\ \xa9\x91\x0b\x33\xc0\x10\x20\x88\x20\x88\x38\xb8\x0e\xe5\x30\xd3\ \xd4\xb8\xa0\xa3\xa3\xef\x74\x3e\xba\x14\x33\x99\x3d\x2c\xeb\xcd\ \x7c\x73\x38\xe7\x7c\xe7\xdc\x73\xcf\x5d\xfe\x8b\x44\x44\xd2\xff\ \x89\xe7\x3b\x25\x49\xc1\x18\xcb\x70\x64\x78\x32\x3e\x64\x6c\x16\ \xd2\x53\xd8\xe1\x57\xfc\xab\x05\x88\x81\xc7\x30\x16\x2d\x59\xb2\ \x24\x31\x21\x21\xe1\x2c\xff\xda\x5b\x5b\x5b\xef\x76\x74\x74\xa8\ \x21\xa1\xc3\x0e\x3f\x78\x82\xaf\xf8\xc7\x05\xf0\x4f\x8b\x61\xe5\ \xe0\xe0\x10\x9c\x94\x94\x54\xd9\xd2\xd2\x72\x8f\x41\xc7\x8f\x1f\ \xa7\xe0\xe0\x60\x0a\x08\x08\xe8\x96\xd0\x61\x87\x1f\x3c\xf0\x11\ \x87\xf8\x17\x2e\x40\x0c\x3e\xc5\xcd\xcd\x2d\xb6\xb8\xb8\xb8\xad\ \xb9\xb9\x99\x52\x52\x52\xe8\x3d\x9f\x55\x57\xad\xe6\x2f\x2d\x1b\ \xe5\xbc\x36\x7f\x90\xfb\x8e\xc3\x90\xd0\x61\x87\x1f\x3c\xf0\x11\ \x87\xf8\xbe\x14\xf1\xa7\xf5\xb6\xb3\xb3\x0b\x29\x2c\x2c\x6c\x6b\ \x68\x68\xa0\x1d\x21\xa1\x9d\xd3\x17\xaf\x39\xa5\xef\x1d\x95\xa6\ \xe7\x97\x1e\x3f\xee\x93\xfc\xaf\x26\x6e\x2d\x4a\x82\x84\x0e\x3b\ \xfc\xe0\x81\x8f\x38\xc4\xf7\x65\x5f\xf4\x2e\x40\x66\x78\xc4\xc6\ \xc6\x56\x35\x35\x35\x51\x4c\xdc\xbe\x4e\x9b\x55\x5b\xf3\xa4\x95\ \x29\x31\x43\x36\x9d\xdc\x3b\xf3\x40\x43\xfc\xc6\x92\x6b\x39\xe1\ \x67\x3a\x8e\x42\x42\x87\x1d\x7e\xf0\xc0\x47\x1c\xe2\x91\x07\xf9\ \x34\x2e\x40\xcc\xde\xd4\xd5\xd5\xf5\x50\x55\x55\xd5\xfd\x92\x92\ \x12\x5a\x1e\x18\xf6\x9d\xf4\x41\xe6\x5e\x69\x53\x45\xd8\xac\x8c\ \x5b\xd1\xa9\x8d\x77\x4f\xbc\xbb\x2e\x8e\x7c\x77\x64\x13\x24\x74\ \xd8\xe1\x07\x0f\x7c\xc4\x21\x1e\x79\x90\x4f\x93\x2e\xf4\x14\xa0\ \xcd\x98\x1f\x1e\x1e\x5e\x51\x5f\x5f\x4f\x7b\xe2\xe2\xaf\x8e\x5c\ \x97\x92\xfc\xfa\x8e\xaa\x48\xab\xb4\xce\x9d\xc9\x2d\x8f\x8f\x5d\ \xfe\x45\x7d\xd9\x27\xb2\x96\x7c\xe2\x6e\x12\x24\x74\xd8\xe1\x07\ \x0f\x7c\xc4\x21\x1e\x79\x90\x0f\x79\x35\x2d\x40\xc5\x58\x9d\x95\ \x95\x75\xbd\xba\xba\x9a\x02\x23\x13\xce\xa0\xbd\x73\x33\x3b\x62\ \x42\x6b\x1e\xa5\x37\xff\x4c\xcd\x9d\x0f\xe8\xb6\xcb\x17\xd7\xc8\ \x65\x3f\x11\x24\x74\xd8\xe1\x07\x0f\x7c\xc4\x21\x1e\x79\x90\x0f\ \x79\x35\x2d\xa0\x3f\x63\x4b\x69\x69\xe9\xbd\xf2\xf2\x72\x5a\xb8\ \x2d\x25\x7b\x52\x54\x5d\xf4\xf6\x8a\x3b\x19\x92\xe9\x1a\x1a\xef\ \x12\x41\xf6\x6b\x0b\x68\xda\xf6\x0e\xb2\xd9\x49\xdd\x12\x3a\xec\ \xf0\x83\x07\x3e\xe2\x10\x8f\x3c\xc8\x87\xbc\x9a\x16\x30\x80\x11\ \x7e\xfa\xf4\x69\x75\x65\x65\x25\x8d\x0d\x3a\x72\xd0\x3a\xbe\x35\ \x3a\xfa\xfc\xc3\x5c\xc9\x29\x9f\x54\xcb\x1a\x49\x7f\xcd\x75\x32\ \x08\xea\xa2\x31\x9f\x51\xb7\x84\x0e\x3b\xfc\xe0\x81\x8f\x38\xc4\ \x23\x0f\xf2\x21\xaf\xa6\x05\x0c\x64\x6c\xe5\xd6\xdd\xab\xab\xab\ \x23\xcf\x98\x6f\x32\x2c\x12\xda\xbf\x0c\xad\x7d\x9c\x2e\x79\x5c\ \x20\xc9\x97\x49\xab\x19\xef\xf7\x02\x74\xd8\xd9\x0f\x1e\xf8\x88\ \x43\x3c\xf2\x20\x1f\xf2\xf6\xa5\x03\xeb\xa3\xa2\xa2\x6e\x62\x13\ \xc5\xe6\x9e\xfa\x76\xe8\xae\xe6\x08\xe7\xa2\x07\xbb\x23\xce\x53\ \x5a\xe2\x45\xaa\xc9\x6c\xa3\x0e\x69\xf9\x7d\x92\x7c\x38\x80\x25\ \x74\xd8\xe1\x07\x0f\x7c\xc4\x21\x1e\x79\x90\xaf\x2f\x1d\xc0\x1e\ \xf0\xf0\xf7\xf7\xff\x9e\x8f\x11\x95\x55\x56\x5f\x99\xb0\xab\x26\ \x7a\x78\xe2\x4f\xc1\x36\x47\xd5\x21\xb3\xf3\xa8\x74\x63\x05\x35\ \x4b\x8b\xda\x49\xf2\xe4\x00\x96\xd0\x61\x87\x1f\x3c\xf0\x11\x87\ \x78\xe4\x11\x77\x41\xff\xbe\x9c\x82\xb7\xad\xad\xad\xb3\x92\x93\ \x93\xbb\x1a\x1b\x1b\x29\xb6\xb0\xb2\x48\x0a\xbf\xba\x55\x3a\xf0\ \x70\xa3\x49\x2a\x25\xcf\xc9\xa3\x4a\x69\x1e\x2f\xc7\x32\x0e\x60\ \x09\x1d\x76\xf8\xc1\x03\x1f\x71\x88\x47\x1e\xe4\xeb\xcb\x29\xc0\ \x3d\xf0\x1a\xc3\xd7\xcb\xcb\xab\x9e\xef\x75\xaa\x3b\x7f\xe1\x76\ \x60\xf6\xb9\x24\x29\xf2\x87\x4f\x87\x27\x3f\x0c\xb5\xce\x52\xa7\ \xbb\x1e\xa3\xb3\x0b\x8f\xd2\x39\x48\xe8\xb0\xc3\x0f\x1e\xf8\x88\ \xf3\xf4\xf4\x6c\x40\x1e\x91\x4f\xbb\x2f\x37\x21\x96\xc1\xc6\xd8\ \xd8\x38\x8e\x5b\x78\xbd\xac\xac\x8c\x1a\x2f\x36\xff\x98\x7c\xa6\ \xa9\x60\x52\xe2\xb5\x48\xb4\xd9\xfa\xc8\x83\x30\x87\xc2\xc7\x11\ \x90\xd0\x61\x87\xff\x42\xd3\xc5\xdb\xe0\xfb\xf9\xf9\x75\x19\x19\ \x19\xd5\x70\x9e\x15\x8c\x91\x1a\xdf\x84\xbd\xbe\x05\xba\x0c\x67\ \x53\x53\xd3\x0c\x6f\x6f\xef\xeb\xb9\xb9\xb9\x74\xe9\xd2\x25\x6a\ \x68\x69\x6b\xcd\xa9\x6c\x2d\x0a\x28\xb8\x9c\x68\x1e\x7f\x25\x12\ \x12\x3a\xec\xf0\x83\xc7\xfc\x2e\x77\x77\x77\xf2\xf1\xf1\xb9\xa3\ \xab\xab\x9b\x65\x36\x4c\xeb\x30\x1e\x2c\x7d\xfd\x1a\x62\x2f\xe8\ \x33\x5c\x0c\x0c\x0c\x0e\xd8\xdb\xdb\x37\x70\x37\xba\xf8\x58\x11\ \x3e\x34\xed\xed\xed\x74\xe3\xc6\x8d\x6e\x09\x1d\x76\xf8\x99\xd7\ \xc8\xfc\x5a\x0c\xce\x3a\x6d\x98\x37\xe1\x51\xba\x9b\xce\xd3\xc5\ \x13\xe5\x92\xbf\x2b\xe2\x59\xef\x01\x1d\x51\x84\x03\x23\xc0\xd0\ \xd0\xb0\xc0\xcc\xcc\xac\xd6\xd6\xd6\xf6\x96\xa3\xa3\xe3\x7d\x27\ \x27\x27\x35\x24\x74\xd8\xe1\x07\x8f\xb1\x86\x67\x9e\xb3\x6a\xc6\ \xf8\x47\x91\x33\x95\x94\xb0\x40\x45\x99\xee\x3a\x4f\xbd\xcd\xe5\ \xaf\x9f\x57\xc4\x5f\xbd\x88\x54\x62\x39\x0c\x18\x73\xc4\xbd\x8e\ \x8b\x65\x37\x63\x3f\x23\x8a\xb1\x4d\x6c\xb6\xb9\x8c\xd1\x0c\x93\ \x61\xfd\x15\x99\x01\x93\x65\xf5\xb6\xa9\x4a\xda\xfd\x8e\x92\x0e\ \x2e\x54\x51\x96\x87\xce\x93\x15\x16\x32\x96\x63\xd6\xb3\xf6\xc4\ \xf3\xde\x84\xb2\xd8\x98\xd8\xcd\x43\xc5\x20\x78\x68\x8c\x13\x18\ \x23\x0a\x7c\x43\x70\x06\x31\x16\x98\xe9\x29\x4e\x7c\xc4\x45\x04\ \xdb\x28\x69\x8f\xa3\x92\x92\x9c\x55\x94\xcd\x45\xf8\x58\xc8\x19\ \x62\x32\x5a\x22\xbf\x42\xd3\x57\xb1\xb6\xe8\x08\x6e\xcb\x57\x19\ \x7a\x62\x89\x86\x08\x39\x58\xd8\xf4\xc4\xdf\x6e\x56\xfa\x8a\xbc\ \x40\x33\x59\xfd\xf9\x34\x25\xed\x9d\xa5\xea\x2e\x22\x67\xb1\xce\ \x93\x95\x96\x72\xa6\xf8\x4c\xcb\xbf\x17\xa2\xd1\xab\xe5\x8f\x8e\ \xf4\x63\xbc\x22\x06\xc2\xcc\x87\x8b\xe3\x36\x8a\x61\xc8\x30\x12\ \xf0\xb2\x1a\xac\x28\x08\x32\x97\xd5\x21\xb6\x4a\x8a\x9e\xad\xa2\ \x43\x2e\x2a\xca\x5d\xaa\xf3\x94\x97\x03\x97\xd4\x02\x86\xb2\xbb\ \x08\x0d\x07\xd7\x16\x83\xeb\xf6\x5a\x0e\x13\xf1\xea\x79\x8b\x31\ \x99\x61\xce\xb0\xe8\x05\x5f\x8b\xc1\x8a\xe2\x20\x0b\x59\x1d\x66\ \xa7\xa4\xd8\x39\x2a\x4a\x75\x55\x51\xfe\x32\x1d\xf5\x0a\x4b\x39\ \x5b\x14\x21\x6b\x52\x80\x96\x98\xfd\x40\x31\x6b\x63\x31\xa8\x25\ \x63\x2a\x63\x1a\x63\x3a\x63\x86\x38\x39\x3d\x80\xbe\xc1\x52\x5f\ \x71\x62\x93\xa5\xac\x0e\x9f\xae\xa4\x7d\x4e\x2a\x4a\x5b\xa4\x43\ \x47\xb9\x08\x1b\x03\x2d\xbc\xa0\x87\x69\x5a\x80\x52\xac\xff\x08\ \xc6\x04\xf1\xfe\xb7\x15\x03\xe1\xbf\xa3\xd9\x0c\x27\x71\x22\x7a\ \xe0\x24\x36\x5d\x10\x17\x51\xba\xd9\x4a\x56\x47\xd8\xff\x56\xc4\ \x7a\x6b\x65\x39\xf6\x4a\x77\x57\xff\x83\x02\x70\xfc\x3e\xe6\x22\ \x4e\x6e\x99\x22\xab\x97\x99\x6a\xe3\xd5\xec\x25\x4e\x50\xbf\x97\ \xbd\x04\xd3\x45\xa1\x36\x0c\xff\x51\x03\x15\xa9\xe2\x3b\x61\x22\ \x26\xa4\x7a\x99\x9b\xd0\x5c\xd8\x27\x32\xde\x64\x8c\x17\x9d\x1b\ \x21\x8e\xec\x00\x8d\x36\xe1\x0b\x1e\x43\x23\xa1\x8f\x16\xad\x1e\ \x21\x0a\x1f\x22\x26\x31\xa0\xe7\x18\xfe\x0a\xd1\xfb\x82\xfe\x41\ \x1a\xc9\x6e\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xe9\ \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\x04\xb0\x49\x44\x41\x54\x78\x5e\xb5\x97\x41\x8b\x5d\x35\ \x14\xc7\x7f\x27\xc9\x7d\xef\x4d\xeb\x46\xf0\x93\x4c\xbf\x80\x7e\ \x05\xdb\x85\xed\x42\x10\x8a\xd2\x85\x8a\xa0\xa8\x0b\x79\xbe\xba\ \xb1\x0a\x6a\x77\x0a\xba\x70\x63\x17\xd6\xcf\x50\x10\x17\x5d\x58\ \x41\xab\x50\xb4\x6a\xa7\x3a\x63\xdb\xa9\x9d\xe9\x4c\xdb\x99\x77\ \xef\x4d\x8e\x21\x59\x04\xc2\xf5\x4e\xa9\x18\xf8\x73\x72\x6f\xce\ \x23\xb9\x39\xbf\x77\x4e\x22\xaa\xca\x41\xed\xa9\x13\x0b\x01\x04\ \xa0\xd8\x41\x29\x64\x7b\xe1\x8b\xb9\x72\x70\x43\x54\x35\x4f\x72\ \x7c\xf1\x06\x70\x8c\xe1\x26\x23\xef\x75\x74\x31\xc3\x3a\x7f\xe1\ \xdc\xfc\x5d\x00\x47\x69\xc7\xce\x7c\x30\x3f\xb2\x73\x1f\x42\x00\ \xef\x03\x01\xc5\xf7\x81\xc3\x87\x1c\xde\x2b\xce\x19\x44\xa2\xb5\ \x42\xdb\x81\x2a\x74\x5d\x00\x60\x32\x31\xb4\x7d\x80\x10\x62\xdf\ \x61\x0c\x71\x8c\x64\x55\xb3\x8c\x51\x66\x33\x78\xeb\xb5\xd3\x00\ \x69\x01\x86\xd2\x92\xb3\xb3\x80\xc0\xa5\xeb\x70\x68\x66\xe3\xe4\ \x96\x4b\x6b\x82\x88\xb0\x6c\x03\xdf\xfc\xac\x69\xf2\x10\x94\x6f\ \xd7\xb2\x6f\xe3\x4c\xf4\x81\xe0\x7d\x5a\xec\xd7\x57\x3a\x7a\x1f\ \xf0\x21\x24\x9f\xb6\xeb\x58\x99\xc2\xc5\x5f\x95\x89\x95\xf1\x10\ \x0c\xc4\x59\x8a\xca\xf3\x70\xfc\xd1\xaa\xaf\xd5\x78\x15\x82\xc2\ \x40\x0d\x9b\xc9\xc2\x15\xd1\x00\x93\x6c\x71\x80\x29\x0c\x10\x80\ \x1e\xe8\x80\x36\x5b\xfa\x22\x42\x52\x81\x73\x14\xc2\x9a\xf6\xb2\ \xa8\xa1\xdd\x18\xfe\xea\x50\xed\x40\xb1\x63\x10\x7e\x78\x76\x7e\ \x64\x6b\x57\xe9\x7a\xcf\x63\x2b\x8e\x65\xe7\x01\x93\xa0\xeb\xbc\ \x22\xe4\xd8\x37\x8e\xe8\x03\x62\x24\xc5\x7d\x3a\x71\xa8\xc2\xfe\ \xb2\x67\x36\x75\xc9\xc7\x87\xfc\x5b\x6b\xa2\x1c\xf8\x1e\x26\x0d\ \xd1\x17\x5e\x7d\x65\x31\x08\x61\x82\xcc\x19\x89\x32\x5c\xbc\xea\ \x99\x36\x96\x95\x99\x70\x79\x1d\x1a\x2b\xf4\xbd\xe7\xc7\x0d\xa1\ \xeb\x15\x6b\x84\xef\xae\x79\x04\x01\x85\x1f\xfe\x04\x67\x0d\xb3\ \x69\xec\xaf\x0b\x8d\x73\x11\x3c\xc3\x4f\x7f\x81\x91\x90\x00\xff\ \x3e\xfa\x58\xa3\xd4\x10\xe6\xd8\x2b\x35\x84\xb5\x4c\x65\x87\x20\ \x0c\x95\xad\x05\xa0\xc3\x21\x10\xce\x00\xef\x01\x36\xa9\x40\x37\ \xcd\x62\x96\x2d\x93\xa4\x02\x6a\xc8\xa2\xcd\x62\x09\xec\x67\x1b\ \x55\xa0\xf4\x44\x55\x6c\x14\x06\x50\x5e\xaf\x76\x60\xf0\xcb\x2b\ \x51\x03\x38\xbe\x13\x65\x07\x80\x1a\x42\x8e\x7e\x74\x76\xbe\xba\ \xbf\x0f\x48\xce\x84\x4d\x63\x50\x05\xd0\x08\x8f\xb0\xbd\xd3\xe1\ \xac\x4d\xef\x21\x67\xc1\xc9\x44\x92\x8f\x06\xc1\x35\x19\xd2\xe0\ \x85\x65\xdb\x31\x9d\x5a\xfa\x3e\x67\x49\x11\xd8\xdd\x5d\xf2\xc4\ \xe3\x53\x5e\x7a\x79\x18\x42\xb1\x02\xa8\xd2\xb6\x1d\x57\x6e\xc0\ \xde\x5e\x8b\x00\x97\xaf\x07\xf6\x1e\x04\x0e\xaf\x34\xfc\x71\xd7\ \xa0\x3e\xa7\xe8\xab\x9b\x42\xe8\x95\x89\x93\xe8\xaf\x74\xcb\x80\ \x20\xfc\xb2\xa9\x09\x48\xdf\x2b\x6b\xdb\x06\x67\xc1\x1a\xf8\xed\ \x8e\x03\x2a\x08\x9f\x3c\xfe\xb6\x00\xa0\xbc\x09\x1c\x05\x04\xa0\ \xda\x72\xf3\x08\x21\x08\xd5\x33\x65\x76\xbe\x44\x38\x13\x93\x92\ \x96\x7f\x41\x9d\xfd\x0a\x6c\xb3\x0a\xc2\x28\x1a\xc0\x96\x44\x84\ \x07\xba\x02\x1e\xfb\xc5\x66\x38\xeb\xac\x98\x32\x62\x0d\x61\xd9\ \x81\x11\x08\x4b\xbf\x6e\xe1\x60\x08\xcb\x0e\x0c\x42\xf8\xd9\xc7\ \xf3\xd5\x9d\xfb\x01\x80\xc6\xe6\xf2\xda\x38\x83\x00\x3e\x28\xc6\ \x08\xde\x2b\x22\x24\x28\x77\xef\x75\xcc\x66\x0d\x02\xb4\x3e\x60\ \x45\x52\x15\xcc\xd9\xd2\x62\x2d\x04\x15\x42\x08\x18\x11\x8c\x81\ \x95\xa9\x70\xf2\xd4\x42\x87\x20\xa4\xed\x02\xd3\xc6\x60\x80\xeb\ \x5b\x70\x68\x6a\x50\x0d\xfc\x7e\x9b\xf8\x5e\x10\x94\x6b\xb7\x15\ \x91\x28\x60\x63\xc7\xe1\xbd\xc7\x18\x58\xdf\x32\x58\x23\x71\x02\ \xcb\x7a\x04\x15\x02\x20\x5c\xdb\x54\x66\x8d\xc1\x1a\x65\xed\x6f\ \x08\x4a\x69\xd5\x0e\x7c\x75\xea\xc5\x77\x00\xe4\xff\xcb\x03\xa5\ \x18\x01\x0c\x65\xc2\xf7\xf3\x3b\xec\x20\x84\x59\x93\x11\x08\xdb\ \x04\xde\x30\x84\xbe\x2a\xcd\x8c\x41\x48\x0d\xdd\x48\x49\x66\xf4\ \xeb\x4b\x9f\x83\x20\x7c\xfa\xf3\x4f\xe6\xab\x21\xc0\x72\xe9\x71\ \xce\x12\x54\x13\x3c\x21\x01\x08\x88\xa4\x0c\xe9\x9c\x44\x0b\x1a\ \x14\x63\xf3\xb8\x35\x06\x84\x54\x31\x45\x24\xc1\x1b\x81\xc4\x88\ \x21\x68\x06\x57\x03\x34\x0d\x3c\x77\xea\xf4\x30\x84\x02\x78\x9f\ \x69\xdf\xd8\xce\x93\x83\x72\xf3\x5e\xc6\x21\xf8\xc0\xed\xfb\x06\ \x0d\x80\x2a\x1b\x77\x49\x3e\xd6\x18\x6e\xee\xe4\x05\x89\x08\x37\ \x76\x04\x55\x52\x59\x5f\xdf\xd6\x54\xca\x51\xb8\x75\x0f\xac\x19\ \x81\xf0\xd9\x17\x16\xd5\x29\xe8\xbf\x87\x60\xa4\x18\x55\x47\xb2\ \x13\x0b\x03\x48\x55\x8e\x9b\x52\x82\x1f\xb9\x1c\xf7\x75\x39\x8e\ \x59\x30\x3c\x4c\x39\xa6\x06\xef\xe1\x21\xac\xfb\x00\xc5\xc6\xf3\ \xe7\xe0\x99\xf0\xe8\xb9\x4f\xe7\xab\x5d\x9f\xe3\xe4\x13\x58\x42\ \xdb\x86\x54\x4e\xfb\x5e\xb1\x4e\x52\x09\xb6\x39\x90\x39\xc3\x19\ \x41\x00\x10\x44\x48\x40\x26\xe8\x90\x34\x06\xa0\x90\xf9\x48\xc7\ \x3d\xe5\xc4\xf3\xa7\xf9\x57\x08\x51\x4d\x65\x74\xeb\x41\x06\xc7\ \x5a\x89\x80\x69\x22\xdf\x08\x6c\xef\x1b\x04\x45\x43\x60\x73\x27\ \x83\xaa\x0a\xb7\x62\x5f\x35\xeb\x4e\x04\xd5\x18\x72\xff\x41\x06\ \x4f\x51\x6e\xdd\x55\x64\x04\xc2\xf3\xcf\x9c\x5c\x50\x87\x60\x44\ \x75\xd3\x11\x51\x6c\xc9\x84\x23\x17\x93\xea\x72\x52\xa0\x74\xe5\ \xb9\xba\x98\x94\x4c\x57\xa0\xab\x2e\x25\xf5\xc5\xa4\x0e\x01\x79\ \xb0\x3e\x54\xd0\x67\x15\xc2\xb3\xd8\x2b\x2a\xe9\xb7\xaa\xfd\xa3\ \x93\x03\xfc\x03\x22\xbc\xed\x2c\x77\x29\xd6\x5e\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\xfb\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x8d\x49\x44\x41\x54\x58\xc3\xed\ \x57\x79\x54\x8d\x69\x1c\xbe\x46\xe6\x18\x63\x16\x63\x3b\x0d\x33\ \xd9\xc2\xd1\x62\x89\x44\x1b\x52\x88\x5b\x42\x8b\xf6\xb2\x84\xb4\ \x58\xba\x2a\x57\x8b\xa5\xba\x15\xe9\xa6\x28\x7b\x22\xd7\x70\x42\ \xf6\x90\xce\xb1\x4b\x24\x0d\x47\x0d\x31\xb2\x9e\x28\xe4\x4a\xcb\ \x33\xcf\xc7\xe5\xcc\x41\xca\x31\x73\x66\xfe\xf0\x9d\xf3\x9c\x7b\ \xce\xfd\xbe\xf7\xf7\x3e\xdf\xf3\x3c\xbf\xdf\x7b\xaf\x08\x80\xe8\ \xbf\x84\xe8\x0b\x81\xff\x15\x01\x53\x87\x10\x6b\x13\xdb\xe0\x08\ \x63\xdb\xe0\x54\xe3\x09\x81\x69\x86\xe3\x24\xc9\x83\xac\xfc\x03\ \xf4\x46\x4c\x19\x2a\x12\x89\xbe\x21\xbe\xfa\xe4\x0d\x1a\x73\x99\ \xda\x4b\x6d\x4d\x1d\x16\xfc\xe6\x13\x9a\x79\x3b\x58\x76\xa9\x42\ \x2a\x2b\x51\x4a\x63\x4a\x94\x61\x71\x57\x2b\x25\x91\xd9\x8f\xdd\ \x66\xaf\x2b\x35\x1a\x3f\x2f\x8f\x64\xe4\xba\x43\x9c\x8c\xb9\xa4\ \x05\xd1\x44\xf4\x4f\x5c\xa6\xf6\x0b\x34\x2c\xdd\xa3\x0a\x16\xc5\ \xdf\x57\xba\xcd\x06\x46\xb9\x01\x66\x2e\x80\x85\x3b\x20\x9e\x06\ \x38\xcd\x05\x7c\x16\x01\x8b\x12\x95\x75\xe1\xf2\xbc\x4a\x7b\xef\ \x84\xdb\x24\xb2\xb3\xaf\x99\x87\x33\x97\x7f\x47\x34\xfd\x4c\x02\ \x52\x49\x90\x2c\xb7\xcc\x6e\x06\xa0\x6b\x09\x68\x5a\x10\xa3\x81\ \x5e\x36\x80\x8e\x1d\xa0\xe7\x0c\x18\x79\x92\x98\x37\xe0\x12\x04\ \x04\xc5\x01\x51\x2b\xaf\x57\xb9\xcd\x5a\x73\xcf\x40\xec\x9b\xd9\ \x67\x98\x9b\xeb\x67\x11\xa1\xf4\xc7\x83\xa2\x5e\xd4\x0e\xb6\x05\ \x34\xcc\x81\xce\x63\x80\x9e\x13\x81\xde\x1e\xc0\x40\x92\x1a\x38\ \x13\xd0\xe7\xe6\x06\x54\xc3\x90\x30\xf7\x01\x1c\x83\x49\x64\x39\ \x10\xbd\xfa\x7a\x95\xdd\x8c\xf8\xbb\x7a\x16\x53\x52\xba\xf6\xb5\ \x18\xc8\x72\xcd\x3f\xd9\x9a\x51\x6e\x91\x85\x7e\x94\x78\x80\x3d\ \xd0\xcd\x1a\xd0\x76\xe5\x1b\xfb\x03\x56\x0b\xb9\x11\xdf\xd6\x3d\ \x01\x70\xe6\xa7\x4d\x14\x6d\x91\x02\x26\x73\x08\x3f\x2a\x32\x8b\ \xf7\x42\x69\x4d\x32\x10\x1a\x77\xa2\xd2\xdc\x39\xbc\x84\x44\x64\ \x2c\xd9\x8e\x50\x6b\x34\x01\x4f\xc9\xc6\x1b\xfe\x91\xc0\x20\x7a\ \xaf\x45\xef\x0d\x59\xd8\x2e\x06\x98\xb7\x05\x48\xcc\x02\x36\x1c\ \x07\x56\xe7\x00\xb2\x3d\xc0\x9c\x34\x92\x21\x21\xcb\xc5\xc0\xb0\ \x79\xcc\x0a\xc9\x8c\x0d\x04\x66\x92\x5c\x7c\x9a\xb2\x6e\x6a\xd0\ \xa6\xb2\x3e\x66\xee\xa9\x9d\x75\x87\x19\x36\x5a\x0d\x13\x3b\xe9\ \x65\xa9\x1c\x18\x4e\x69\x0d\x28\xb5\xd5\x12\x20\x30\x1d\xd8\x96\ \x0b\x2c\x49\x39\x50\xe5\x31\x37\xa1\x32\x44\x9e\xa1\x4c\x3f\x52\ \x5c\xbd\xab\x00\x90\x1f\x05\xe6\x6e\x65\x38\x13\x49\x84\xcf\x0e\ \x67\x2e\x46\x91\x8c\x73\x38\xb0\x38\x05\x08\x8f\xa7\x1a\x4e\x61\ \x37\x75\x4d\x9d\x02\x58\xbe\x75\x83\x6a\xb0\xef\xcf\x2c\xdd\xf4\ \xa2\xd6\x36\x84\xfe\xd2\x5b\xf7\x24\x20\xe9\x08\xb0\x72\xfb\xd9\ \x97\xdd\x07\x8c\xbe\xd6\xfa\x67\xcd\xcc\x4e\xda\xa6\x07\x7a\x0f\ \x75\x29\x14\x7b\x2e\x7c\xac\x38\x56\x5c\xbd\x23\x9f\xfe\x1f\x02\ \xbc\xa9\x88\x5d\x3c\x09\x50\x91\x11\xb4\x47\xa8\x31\x87\xd9\x88\ \xdf\x58\x5a\x2d\xf6\x88\xbc\xcb\x35\x89\xdc\xa2\xc3\xdf\x49\x70\ \xd6\x68\xf3\xa5\x17\xf7\x33\x9f\x64\xf0\xaa\x9d\x07\x59\xcf\x5e\ \x2e\x5b\x7d\xe1\x99\xff\x0a\x16\x8b\x06\x7c\x53\x01\xc5\x39\x16\ \x0f\x5d\xf3\xbc\x9d\x86\xce\x41\x3e\xe4\x4b\x58\x12\x56\x1a\x5a\ \xc6\x72\xa6\xfe\xa2\xcf\xc2\xf5\x4f\x77\xe7\x3d\xaa\x5d\x77\x1a\ \x90\x66\x02\x1e\xeb\x98\x91\xa5\xc0\x48\xe6\xc6\x86\x24\xa6\xb3\ \x8e\x7c\xb3\xb2\xce\xc5\x6f\x55\x19\x9f\xdf\xc4\xb5\x1a\x44\xb3\ \x57\x9b\x73\xd0\x25\xa5\x16\x3c\xd6\x1b\x31\x75\x03\xbf\xd3\x12\ \x09\x83\xc5\x7a\x72\xf4\xad\x15\xbb\xb8\x29\x25\x0c\xdc\x06\xec\ \xb8\xc0\xa2\x01\x09\x95\x6d\x3a\xf6\x48\x17\x72\x4a\xb4\x27\x7e\ \x22\xba\x10\x43\xbb\x0f\x18\xb3\x61\xb8\xe3\xfc\x07\x69\x87\x0a\ \x5e\x66\x14\x02\xb1\xd9\x9c\x15\x0a\x60\xe2\x4a\x60\x34\xf3\x60\ \x4d\x3b\x3c\xf9\x19\xbd\x91\x35\x17\x28\x2a\xf4\x2d\xbd\x8f\xf5\ \x1e\xe6\xea\xc5\xc9\x1a\x13\xbf\xb6\xa0\x3c\xe7\x24\x30\x78\xec\ \xec\x3b\xac\x65\x2f\xa8\xd2\xa2\xff\x48\xaf\xa4\x88\x94\x93\xcf\ \xa2\x77\xd2\x43\x12\x51\xd0\xff\xd0\x84\x0c\x65\x27\xed\x21\xfb\ \x84\x0d\x89\x96\x2a\x05\x9b\xaa\x7a\xbe\x1b\xd5\x90\xe8\x0e\x71\ \x3e\x11\x18\xbb\xf5\xe9\x81\x42\x65\xdd\xaa\x33\x24\xcf\xa0\xba\ \xaf\xa7\x0a\xec\x1a\x31\x6d\x71\x89\x60\x98\x99\x95\x85\x89\x7f\ \xbe\x34\xb0\xf2\xbf\xe2\x1d\x9a\xff\x24\x96\x2f\xb9\x9f\x84\x0d\ \xc4\x7e\x8f\x58\x67\x8e\x50\xb4\x89\xa6\xde\xa8\x01\x16\x2e\xe1\ \x25\x9b\x0e\x3f\xaa\x4d\x60\xf2\xd3\x58\x2c\x75\x7f\x41\xb5\xb6\ \xb1\xfd\x45\xde\x17\x13\xad\xde\x89\x8e\x9a\x4a\x95\xc1\xbd\x06\ \x8f\xdf\xe2\xe8\xbf\xac\x6c\x7f\xc1\xa3\xda\x54\x2a\x17\xc6\x6c\ \x4c\xdd\x4c\x3b\x69\xa9\x15\xbb\x6b\x3c\x89\x4c\x24\x26\x48\x9e\ \xd6\x8d\xf5\x05\x66\x84\x51\xe1\xfd\x9c\x2f\x62\xdf\x72\xae\x97\ \xbe\x29\xd8\x9c\xed\x13\xe2\xe0\x13\xf7\x60\xfb\x29\x65\xdd\x56\ \x66\xe0\xc4\x0d\xbe\x05\x43\xd7\xee\x57\xed\x50\x95\x87\xef\xb6\ \xd4\x57\xc4\xb7\x82\x1a\x24\x21\x37\x77\x92\xde\xcf\x3c\x5f\x5a\ \xa3\xa0\x25\x11\xec\x94\x69\xb4\xd2\x69\xf5\x6b\x35\x46\xd2\x12\ \x63\xb6\xb7\xd1\x74\x5a\xcb\xd9\xb1\xfd\xe0\xfb\x04\x84\xe2\x6d\ \x29\xe9\xca\x00\xd9\xb6\xf2\x23\x57\x80\x9c\x22\x60\xdd\xae\x73\ \x55\x5a\x86\xb6\x39\xbc\x37\x48\x75\x00\x7d\xe8\x12\xd4\xe8\xd8\ \x73\xa0\x75\x84\x85\x93\xf4\x5e\x32\xd7\xa4\x93\xc4\x12\xce\x0e\ \x5f\x5a\xea\xca\x1c\xd8\xb0\x53\xcc\xc2\x5e\xcf\x0e\x2f\x06\x34\ \xe3\xe8\xfb\x04\xde\x16\x12\x52\x2b\x91\x29\x2a\xf2\x6e\x02\x85\ \x77\x01\x07\x9f\xd8\xf2\x6e\xfd\x46\xca\x55\x2a\xa8\x7d\x84\x84\ \x7a\x07\x4d\x7d\x2f\xe6\x29\x5f\x71\xa6\xb4\x3a\xf9\x22\x10\x42\ \xaf\x67\x32\x53\xee\x6c\xd7\xf1\xb4\xc4\x9a\x9b\xfb\x73\x72\x66\ \x9e\xf8\x30\x81\x37\x85\x34\xd8\xbf\x5b\x24\xd1\x8a\x8a\xc2\x3b\ \x40\x16\x65\xed\x67\x31\xf9\xf7\xef\xdb\x74\x1c\xc7\x7b\x3f\x7e\ \x64\xba\x09\x6b\xdb\x6a\x19\xd9\xcd\x27\x89\x0b\xf1\xd9\xa5\xd5\ \x51\x6c\xd3\xf9\x7c\x5b\x3f\x86\x73\x32\x87\x9b\xdb\x5a\xb6\x2d\ \xbb\xe5\xc0\xf9\xfa\x09\x08\x57\x33\xa2\x93\x40\xc2\xc1\x67\x59\ \xd9\xb9\x3f\x94\x75\x31\xeb\x0f\x3d\xef\xa1\x6f\xa5\x78\xd5\xb7\ \x22\xd1\xd7\xf5\x0d\x35\xc3\x71\x01\x9d\x0d\x6d\xe6\x2e\x4d\xde\ \x97\xff\x44\x51\x0c\xac\xe2\xe4\x8c\x63\x47\x45\x72\x9c\x2f\x60\ \x38\x83\x39\x33\x12\x38\xe4\x8e\x5f\xf9\x38\x81\xb7\x24\x74\x4c\ \x26\xae\xb1\x9a\xb4\xf8\xe1\xa1\xb3\xa5\x35\x81\x4b\x15\x15\xec\ \x96\x28\xc1\xa6\xfa\x8e\x5e\xe1\x68\xdf\xb0\x37\xb7\xec\x52\x19\ \x90\x5d\x0a\xec\xa3\x8d\xbb\xaf\xd3\x73\xe6\x49\x08\xa7\x82\x13\ \xf4\xf0\x55\xe0\xd2\xad\x86\x09\xbc\x21\xa1\xd1\x43\x5f\x2c\xe3\ \x4f\xb2\xcb\xd1\x6b\xb3\x2a\x1d\xfd\xe2\x1e\xaa\x77\xe9\x3b\x99\ \xdf\xb7\x79\xd7\x0a\x1e\xeb\x3d\x3c\x83\x53\xae\x65\xe5\x95\x3c\ \x3f\x98\x7b\xbd\x6a\xef\xd9\xe2\xea\x3d\x67\x8a\x6a\xf6\x9c\x2e\ \xaa\xc9\x3c\x55\x54\xb3\x9b\xd8\x75\x9c\x9f\x44\x46\x4e\x51\x8d\ \xb6\xb1\x43\x09\x97\x49\x1a\x3a\xab\x04\x5f\x3b\xfc\xd0\xe6\x97\ \xb1\x4c\x79\x7a\xab\xf6\x9d\x85\x30\x3a\x09\xea\x7c\x40\x85\xa6\ \xbd\x87\xba\xba\x71\xc4\xe6\x08\xe7\x86\x8e\xa9\x63\x91\x8e\x89\ \x63\x71\x7d\x50\xef\xda\x6f\x0f\xd7\xb8\x37\xe6\xc4\x56\x53\x85\ \x4f\xf0\x7f\x08\xd1\xb7\x9e\x30\x36\x51\x9d\x7e\x46\x84\x0b\xe1\ \xd5\x00\x1c\x89\xfe\x8d\xfd\xd9\xd0\x44\x15\xbe\x96\x0d\x9c\xf3\ \x6f\x46\xb5\xba\x2a\x2b\x1f\x83\xba\xea\xd9\x7f\xf7\xfa\xf2\xcf\ \xe8\x0b\x81\x86\xf0\x17\xce\x95\x4e\x3d\xa5\x4e\x62\x58\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x23\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x03\xb5\x49\x44\x41\x54\x48\xc7\xb5\ \x96\x4d\x4c\x5c\x55\x14\xc7\x7f\x6f\xbe\x87\x19\xa6\x83\x0c\xb4\ \x60\x1b\x09\x25\x4e\x44\x0c\x56\xa3\x4d\xb4\x8d\x35\x52\x8d\xc6\ \x60\xfd\x58\x10\x83\x2c\x48\x8c\x31\x76\xe1\xae\x6e\x4d\x77\x2e\ \xba\x6b\xba\xa8\xc4\x98\x36\xb3\x6e\x58\xd8\x26\x65\x23\xa6\xb8\ \x80\xa8\x69\x1b\x2d\xa5\x15\xaa\x7c\x07\xda\x0e\xf3\xc1\x9b\xf7\ \xee\xbd\xc7\xc5\x1b\x06\x86\x40\x03\x89\xdc\xc5\x7b\xf7\xde\x97\ \x7b\x7e\xf7\x9c\xff\x39\xf7\x3e\x4b\x44\xd8\xcb\xe6\x63\x8f\x5b\ \x60\xad\xf3\xe2\xa7\xe7\xfb\xf6\xa7\xf6\x7d\x5d\x13\x0e\x44\x98\ \x7d\xf0\x74\xb2\x94\xdd\x99\x05\xf1\x1e\x4b\x89\x03\xca\x57\xdf\ \x38\x5f\x2c\xda\x85\x7f\xa6\x17\x3f\x1b\x1f\x3c\x33\x5e\x05\x38\ \xd0\x90\x38\xf3\xcd\xe7\x6f\xb7\xdf\x99\xce\x92\xbb\x3a\xc5\xcb\ \x77\x7f\xdf\xd5\x4e\x7f\x69\xff\x84\xba\x57\x3b\x9f\xaa\x0d\xfb\ \x19\x1a\xfe\xe3\x7b\xe0\x78\x15\x20\x1a\x0e\x84\xff\x9c\x5e\xe1\ \xee\xcc\x0a\xcb\xbf\xde\xa4\x79\xf4\xda\xae\x00\xbf\x59\x2f\xd0\ \xd8\x90\xc6\x68\x4d\x3c\x12\x4a\xfd\xff\x1a\x08\x18\xad\xd1\xda\ \x20\x5b\x69\xb0\xb9\xc5\x5a\x5a\x78\x77\x6c\x8c\xe2\xec\x2c\x13\ \x17\x2e\x50\xd7\xd9\x49\xc3\xb1\x63\x68\xdb\xe6\xe7\xee\x6e\x5e\ \xcf\x64\xf0\x47\xa3\xe4\x27\x27\xb9\xd1\xd3\x83\x88\xa0\xb5\x41\ \x6b\xbd\x26\xcc\x93\x01\x00\x73\x43\x43\x8c\x9d\x3e\xcd\x6b\x97\ \x2f\x53\x98\x9a\x62\xa4\xb7\x97\x78\x5b\x1b\x87\xfb\xfb\x01\x18\ \xe9\xeb\xa3\xb4\xb4\x54\x76\x40\x30\x46\x7b\x00\xd9\x61\x9a\x36\ \x75\x75\xf1\xc6\xe0\x20\xf7\x2e\x5e\xac\xcc\x15\xa7\xa7\x09\xd7\ \xd7\x03\xd0\x79\xf6\x2c\x87\x4e\x9d\xaa\x84\x48\x29\x8d\x52\x7a\ \xeb\x34\xdd\xce\x83\x1b\x3d\x3d\x1e\xec\xe4\x49\x12\xe9\x34\xf5\ \x47\x8f\xf2\xe8\xd6\x2d\xea\x8e\x1c\x61\xa4\xaf\x0f\x63\xdb\x9e\ \x7d\x91\x0a\x40\x82\x3b\x08\x91\x9b\xcb\x31\x7f\xfd\x7a\x65\xbc\ \x38\x3c\x4c\xe3\x89\x13\xe4\x26\x26\x98\xbc\x74\x89\x50\x32\x89\ \x28\xb5\xae\xb1\x08\x5a\x69\xb4\xd2\x55\x56\xb7\x05\x38\xcb\xcb\ \xdc\x1f\x18\xa8\x8c\xa7\x32\x19\xa6\x32\x99\xca\xf8\xce\xb9\x73\ \xd5\x49\x54\x09\x91\x02\xac\xed\x01\x96\xcf\xc7\xe3\x78\x0a\xc7\ \x1f\xc2\x27\x66\x47\x19\xba\x1a\xaa\xc1\x0e\xd7\x60\x55\x34\x08\ \x3c\x01\x00\xa4\xde\xe9\xe6\x4a\x6b\x1a\xad\x3d\x80\x18\x83\x08\ \x88\xac\xbf\x8d\x08\x62\x04\x63\x04\xf1\xfb\x09\x36\x1d\x44\x29\ \xe5\x01\xc4\xbf\x35\x40\xc4\x5b\x10\x4d\xc4\x89\x3e\xd3\x4a\x2e\ \x57\x44\x8b\x29\x03\xbc\x6f\xc6\x18\x44\x0c\x5a\x7b\x42\x06\x83\ \x01\xc4\x08\x58\x82\x72\x0d\x4a\x29\x84\xd0\x16\x80\x0d\x3b\xba\ \x7d\x73\x9c\xda\x90\xe6\xa3\xe3\x07\xf1\x59\x82\x11\x83\x31\x06\ \xa5\x34\x46\x6b\x94\xd6\x28\x57\x31\xff\x68\x95\xdb\x73\x16\xb5\ \xa9\x7a\x1e\xfc\x3d\x43\x24\x1a\xc6\x75\xd5\xd6\x95\x2c\xe5\x62\ \xd1\xda\xa5\x26\x16\xa5\x39\x29\xbc\x94\xae\xe3\x87\x81\x1f\xb9\ \xfa\xd3\x35\x44\xe0\xcb\xaf\xbe\xe0\xf9\x8e\x76\x1c\xc7\xc1\x29\ \x29\x9a\x12\x7e\xc6\x17\x0c\x87\x0e\x35\x33\xf3\xef\x02\xae\xab\ \x70\x5d\x55\x55\x68\x81\xcd\x99\x60\x8c\x78\xe7\x8a\x31\xd8\x76\ \x89\xb9\xb9\x79\xee\x4d\xdc\x07\xe0\xe1\xf2\x43\x0a\xf9\x3c\x8e\ \xe3\x50\x2a\x95\xb0\xed\x12\x5a\x47\x2b\xe1\xf5\x00\xee\xf6\x85\ \x26\xc6\x60\xb4\xf1\xca\x5e\x1b\x6c\xdb\x2e\xa7\x5d\x39\x5b\xec\ \x55\xf2\xf9\x3c\xb6\x5d\xc2\xb6\x6d\x6c\xdb\xc6\xe8\x70\x79\xad\ \x54\x3c\xd8\x78\x4b\x06\xd6\x17\xbb\x56\x34\xec\x43\x1b\xaf\xd4\ \xb5\xd1\x14\x0b\x05\x0e\xb7\xb5\xf2\x56\xd7\x9b\x18\x63\x88\xc5\ \x62\x64\xb3\x2b\x15\xe3\xab\xab\x36\xda\xa4\xd6\x2b\xd9\x75\x51\ \xae\xaa\xf6\xc0\xb2\x2c\x0b\xb0\x3a\x3e\xf8\xae\x7f\x74\xf4\xaf\ \xc1\xfd\x4d\xa9\x44\x21\x16\x20\x12\x34\x2c\x3c\x76\x79\xb6\xe3\ \x15\x5a\xd2\x9d\xb8\x8e\x8b\xe3\xb8\x64\x6d\x07\xc7\x09\x52\x72\ \x0c\x8e\x82\x64\x3c\x4c\x50\x1c\x52\xc9\x08\xd1\x80\x66\x5f\x2c\ \xa4\x6a\x22\xc1\x49\xcb\xb2\xfc\x80\xb1\x80\x08\xd0\x0c\xc4\x1a\ \x9e\x7b\xaf\xe3\xfd\x0f\x3f\xee\x0d\x05\x03\xc1\x35\xa5\x84\xf5\ \xd3\x57\x36\x8a\xc5\xe6\x39\x6f\xda\x6f\xdc\xb9\x2b\x03\xdf\x9e\ \x5f\x5c\x9c\xc9\x02\xf3\x56\xf9\x44\x8d\x03\x21\xc0\xbf\xa1\xce\ \xad\xdd\x5f\x39\x55\x7d\x07\xc8\x59\x7b\xfd\xdb\xf2\x1f\x88\xe0\ \x23\xf6\xca\xd4\xed\xc7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x02\xa5\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x37\x49\x44\x41\x54\x48\xc7\xdd\ \x54\x5d\x6f\x12\x41\x14\xed\x4f\xf3\x67\xf8\x53\xf6\xb1\x26\x1a\ \x13\x9f\x9a\x18\xfd\x01\x56\x5f\xfa\x68\x0d\xb5\x88\x50\x68\x69\ \x90\x5d\x0a\xc6\x16\x58\xa0\xb0\x2c\x6c\xf9\xb0\x14\xac\x8d\x0f\ \xb0\x33\xc7\x73\x67\xd5\xfa\x01\x8d\x26\xf0\x50\x1f\x26\xf7\xce\ \xb9\x77\xce\xd9\xbd\x77\xee\xac\xdd\xb9\xbb\x6e\x71\x39\x2b\x5a\ \xd6\x9a\x38\xfb\x6d\x8d\xf5\x58\x88\x97\xc7\x53\xbc\x3d\x05\x1e\ \xa5\x80\x58\x59\xe1\x75\x55\xe1\x7e\x1c\xd8\x3e\x9e\xd1\xd7\xb8\ \x17\x53\x88\x11\x7b\x53\x07\x1e\x26\x80\x4c\x1b\x26\xff\x41\x5c\ \x99\xfc\x44\xe3\xfa\xec\x61\x17\x10\x6e\x23\x90\xf6\x14\xe2\x35\ \x60\xa7\x12\x1d\x96\x44\x39\x28\xfb\x57\x27\x33\xec\xba\x1a\xc9\ \x66\x84\x27\x1a\x92\xab\x29\x3a\x45\xaa\x25\x64\x21\xf6\x68\xb7\ \x3f\x4c\x8d\xdd\x65\x4c\x38\xb2\x3f\x09\xac\xb6\x44\x00\x56\xba\ \xfe\x00\x96\xfc\x47\xd6\x3c\x01\x67\xb3\xa4\x91\x61\x3d\x33\xac\ \xfb\x46\x8a\x35\xad\xce\x90\xac\x2b\x3c\x39\x00\xd2\xcd\x08\x7f\ \x9a\x65\x3f\xdc\xd0\xec\x1f\xef\x03\x29\xf6\x46\xfc\x8d\x3d\x6d\ \x7c\xa7\xf7\xad\x07\xf3\x04\x8a\x03\x21\x09\x91\xf3\xe5\x60\x88\ \x64\x6d\x86\x2c\x6f\x4c\xd6\x8b\xf6\x99\x96\x36\x56\xb0\x03\xfa\ \xe9\x53\x6d\x62\x99\x66\x64\xdf\x05\x40\xe1\x06\x01\xeb\xf6\x35\ \x79\x85\x57\xd5\xfa\x51\xf7\x18\x87\xc3\x09\x14\x4a\xac\xdd\x73\ \x5b\xc3\xe6\xa0\xe4\xbc\x10\x9b\xb6\xc2\xd1\x99\xc4\x80\x17\x0e\ \x50\x64\x3c\xd7\x0a\xf1\x2c\xcf\x46\x06\x1a\xa5\x7e\x84\xdb\x1d\ \x85\xf7\xf4\xb7\x4a\x30\xf9\xc5\x9e\xba\xee\x81\x38\xee\x05\x03\ \x3c\xe0\x30\xf1\x88\x64\xa5\x9e\x46\xa1\xab\x49\x36\x43\xbe\x1d\ \x9a\x98\xed\x93\x84\x02\xb2\x24\x26\x1f\x23\xb8\xec\xc5\xff\x1e\ \x17\x8e\xfa\x18\xbf\x08\x58\xff\xcf\x24\x2f\xf9\xda\x5a\x7f\x23\ \xe0\x78\x9f\x80\x72\x9f\xaf\x28\x9f\xec\x06\x7b\x55\x19\x28\x0e\ \x1a\xe0\x7e\x8c\xf0\x9d\x93\x10\xee\x90\xbd\x09\xf8\xf2\xf2\xa9\ \xae\x0c\x34\x9a\x93\x05\x83\x36\x4f\xc0\xbf\x04\x9a\x24\xae\x91\ \xb0\x71\x4e\x91\x91\x46\x95\x22\xe5\x5e\x08\x8f\x44\x75\xc1\xce\ \x19\x1b\x51\x74\xa8\x4d\x9e\xf7\x0f\x02\xd6\xed\x6b\xf2\x12\xaf\ \xad\xb5\xb0\xee\xfd\x2b\xc0\x67\x1d\x6d\xbe\x98\x67\x9f\x59\xd3\ \x0b\x0e\x5a\x27\xc2\x5a\x23\x45\x5c\x1b\x2b\xfb\x02\xa7\x3e\x60\ \x9f\xba\xbc\x0c\xf9\x56\x84\x05\x97\x7a\x71\x0f\x24\xd0\xbb\xd2\ \xf0\xc7\x0a\x9d\x89\x46\x77\x22\x02\xca\x58\x21\x69\xd3\xf7\xc7\ \x8c\x4f\xa2\x25\xe4\xbf\xfb\xc3\x2f\xb8\x51\x60\x69\x25\xfa\x0a\ \x2b\x85\x35\x7e\xfc\x7e\x4a\xed\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x05\xb0\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x05\x77\x49\x44\x41\x54\x48\xc7\x95\x55\x7b\x4c\x53\x77\ \x14\xfe\x0a\x2d\x7d\xf0\x1c\x94\x67\x79\xad\x16\x61\x20\x0c\x21\ \x19\xf1\x31\xdc\x26\x81\xe1\x24\x4e\xc4\x2d\x19\x8b\xd1\x18\x47\ \x32\x97\x98\x2d\x66\xce\x18\x97\x91\x68\xd8\xf6\xc7\xfe\x71\x4c\ \xb7\xb8\x64\x13\x1d\x99\x64\x66\x59\x8c\xc9\x04\x8c\x03\xff\x90\ \x81\x0a\x4c\x10\xf7\xc0\x29\xe3\xfd\xa8\xb4\xb4\xbd\x6d\x6f\x7b\ \x77\xce\x0f\x0a\x3a\x75\x73\x27\x3d\xf9\xdd\x7b\x7b\xef\xf7\x9d\ \xf3\x9d\xef\x77\xaf\x4a\x51\x14\x94\x96\xed\x85\x5f\xf6\x69\xb2\ \x73\x0a\x3e\x8e\x7a\x42\x1d\x91\x9f\x9b\x7c\x57\xf2\xf8\x8b\x64\ \xd9\x27\x5b\xcc\x89\x06\xaf\xec\x5b\xa1\x09\xd1\xea\xbd\x6e\xd5\ \xd4\xd6\xaa\x97\x0b\x26\x67\xfa\x86\xf0\xb8\xc1\x04\x1b\x36\xec\ \x47\x59\xd9\xbb\xd8\x52\xb5\xff\xa4\xf2\x1f\xf1\xd5\x89\x16\x85\ \x1e\x4b\xfd\x5f\x04\x80\x9a\x52\xc5\xa7\xaa\xfa\x63\x97\x05\x90\ \x83\x72\xda\xb5\x94\x56\xf7\x3c\x81\x97\xd2\x64\x5a\xf9\xcd\xe3\ \xe2\x07\xcd\x2f\x4c\xa0\x11\x7c\x0d\x5f\x7f\x51\x77\x6b\x06\x70\ \xd3\x89\x4d\x5a\xca\xbb\x4e\x60\x4c\x9a\xbf\x73\x53\xd5\xeb\x95\ \xb4\xa4\x3f\x36\x41\x72\xc2\x53\x30\x25\x64\x23\xde\xb8\x02\x7d\ \xd7\x5a\xbf\xff\xfd\xd7\x39\xb8\x7c\x80\xcb\x0b\x38\x3c\x4b\x69\ \x9d\x03\xe8\x87\xc2\x55\xeb\xb4\xb4\x14\xff\x13\x2c\x29\x29\x09\ \xd1\xd1\xd1\x0f\x12\x78\x65\x2f\x64\xaf\x17\x3e\x1f\xa1\xaa\x54\ \x3f\x77\xb4\x5f\xb6\xce\xd1\xa1\x83\xd4\x73\x78\x97\x72\x8e\x48\ \x26\xfc\x40\x56\x41\x21\x3d\xa5\x7d\x4e\xaf\x8b\x81\x5e\x1f\x8b\ \xca\xca\x4a\x1c\x3e\x7c\x18\xb2\x2c\x2f\x48\xbe\x14\xdc\x31\x9e\ \x59\xbb\x51\xfc\xe1\x27\x02\x99\xc8\x9a\xcf\x7e\xdb\xb1\xf1\xad\ \x92\x17\x5d\x32\x20\xfb\x02\xe3\x61\x6e\x3a\x9f\x05\x24\xaa\x3f\ \x3c\xfc\xc9\x82\x30\xfd\x38\xd2\xcc\x19\xf0\x52\x71\x0c\xee\xf7\ \xfb\x1f\x20\x10\x1d\x84\xea\x06\xa1\x56\xf5\x63\xeb\x16\x8b\x48\ \xaf\xa4\x34\xdd\xf8\x8d\x74\xa7\x6a\x27\xed\xc0\xf0\x14\x70\x6b\ \x0c\x18\xf8\x13\x18\x1a\x99\x2f\xeb\xfd\xda\x0f\x9e\x96\x24\x69\ \xb7\xc7\xe3\x79\x24\xf8\x62\x07\x7c\xdd\xef\x57\x81\x15\x92\x65\ \x7f\xf9\xae\x9a\xf5\x5f\xaa\x46\x25\x58\x87\x75\x88\x30\x00\xe6\ \x44\xc0\x40\x55\xeb\x82\x9c\x54\x91\x0b\x6a\xba\xf1\x85\xb7\x5f\ \x85\x2c\xfd\xf1\xe9\x89\x86\x93\x31\x44\xf2\x19\xc9\x3b\xc5\x04\ \x0f\x95\x28\x70\xad\xa5\xe5\x22\x91\x78\x93\x4e\x9f\x66\x17\x86\ \xc0\x35\x67\x43\xcf\xb5\x2e\x48\x23\x5e\xd8\x65\x37\x82\x78\x26\ \x92\x84\xa0\x20\x2d\x6e\xdd\x8e\x80\xc5\x92\x81\xe3\xc7\x8f\xd7\ \x4e\x4f\x4f\xd7\xb6\xb5\xb5\xdd\x24\xa2\xd5\xf4\xe0\xcc\x43\x08\ \x14\x1e\x30\x15\xe6\x3b\x90\x90\x90\x54\xd9\xdc\xfc\x13\x22\xc3\ \x43\x41\x12\xa0\xb3\xb3\x13\x92\xdb\x0d\x63\x6c\x3c\x22\xc2\xc2\ \xa0\xd1\x6a\x60\x30\x68\xe0\x71\xfb\xb1\x6a\xf5\x6a\xe1\x9c\xf1\ \xf1\x71\x64\x64\x64\x64\x46\x44\x44\x4c\x1f\x3a\x74\xa8\x80\x20\ \xaf\xdd\x47\x40\xc0\x45\xd9\xd9\xd9\x5f\xed\xda\xf5\x46\x96\xcb\ \xe5\x84\xc3\xe1\x80\xe4\xf1\xa2\xbb\xf7\x3a\x2c\x99\x59\x28\x24\ \xd7\xb0\xce\xa1\xa1\xa1\x88\x89\x89\xa1\x0e\xe6\xb7\x8f\xcd\x66\ \x07\x55\x4f\xc3\x57\x61\x64\x64\x04\xdb\xb6\x6d\x63\xb2\xce\xfa\ \xfa\xfa\xb8\x40\x27\x82\xc0\x60\x30\x7c\x58\x5d\x5d\x9d\x95\x91\ \x61\xc1\xf0\xf0\x30\x34\x1a\x0d\x74\x3a\x1d\x72\x72\x72\xd0\xdf\ \xdf\x8f\xf8\xf8\x78\x71\x8d\x63\x72\x72\x12\x56\xab\x55\x74\x37\ \x3b\x3b\x0b\xa7\xd3\x49\x8e\x0a\x87\xd9\x6c\x46\x5a\x5a\x1a\xca\ \xcb\xcb\x83\x9b\x9a\x9a\x3e\x9f\x98\x98\xd8\xba\x48\x40\x0e\x30\ \x04\x00\xb8\x1a\x3e\x66\x10\xde\x17\x99\x99\x99\x68\x6d\x6d\x85\ \xd1\x68\x14\x76\x54\xab\xd5\xc2\x31\x54\x14\xcb\x22\x8e\x9d\x4e\ \x17\x24\xa7\x1b\xd7\x7b\xae\xe3\xce\xed\x3b\xfc\x7c\x3e\x41\x19\ \xb9\x0b\x41\x30\x36\x36\xa6\xd0\xb0\x40\x5d\x20\x35\x35\x15\x51\ \x51\x51\x08\x09\x09\x11\xed\xeb\xf5\x7a\x14\x16\x16\x92\x1c\x36\ \x41\x4c\x3a\x83\xad\x39\x3a\x3a\x8a\xde\xde\x5e\xd8\xed\x76\x3a\ \x1e\xc3\xf0\xd0\x10\xa6\xac\x33\x88\x8b\x89\x43\x30\xd4\xb4\x83\ \xa0\xe3\x7a\x05\x01\x81\xfc\x95\x97\x97\x57\xc4\x72\x9c\x39\x73\ \x46\x00\x66\x65\x65\x21\x25\x25\x45\x00\x30\x19\x77\xc3\x3a\x0f\ \x11\x10\x13\xb3\x34\x81\xd5\x9c\x66\x41\xee\xca\x5c\x5c\x8c\x3c\ \x06\x7b\xb7\x0f\x3e\xb7\x10\x83\xb7\xa8\x5f\x10\xb8\xdd\xee\x1b\ \xc9\xc9\xc9\x28\x29\x29\x11\x1a\x33\x09\xbb\x87\x35\x2d\x2e\x2e\ \x46\x57\x57\x17\x06\x06\x06\xc4\xf0\x59\x26\xad\x56\x8b\x30\x72\ \x54\x6e\x6e\x2e\x96\x2f\x5f\x8e\xe8\xc8\x68\x38\x3d\x0e\xa8\x9c\ \xaf\xc1\x99\xac\x42\x93\x72\xee\x7e\x9b\x06\x07\x07\x47\xb2\x14\ \x1c\xb1\xb1\xb1\xa8\xa9\xa9\xc1\xe0\xe0\x20\xba\xbb\xbb\xd1\xd0\ \xd0\x20\x2a\x8f\x8b\x8b\x13\x69\x32\x99\xc0\xc5\x30\x01\xeb\xcf\ \x5d\xf4\xf4\xfc\x82\x53\x0d\xa7\xf0\x52\x49\x05\xe2\x92\x8d\xb0\ \x4b\x36\xff\x42\x07\x8a\x20\x20\x19\x26\xce\x9f\x3f\x8f\x35\x6b\ \xd6\x2c\x32\xa7\xa7\xa7\x0b\x20\xbe\xd6\xdc\xdc\x42\x32\x69\x10\ \x19\x19\x29\xe6\x30\x3d\x3d\x89\xab\x57\xaf\x0a\xb9\xdc\xbc\x47\ \xc8\x00\x55\xaf\x54\x22\x31\x31\x51\xb8\x6f\xd9\x32\x8b\x91\xe6\ \x13\x22\x4c\xc3\x9b\x8c\x7d\x4d\xeb\x3a\xd2\xbc\xb1\xae\xae\x2e\ \x91\x87\x1d\xd8\x80\x6c\xc7\x0b\x17\x2e\x08\x69\x74\xba\x10\x1c\ \x39\xf2\x09\x0d\xdc\x25\x86\x9d\x92\x92\x8a\x84\x84\x44\xe4\xe7\ \xe7\xa3\xa2\xa2\x82\x95\x80\x5f\xf1\x23\x2f\x37\xcf\xde\xd7\xd7\ \xf7\x3c\x41\xdc\x14\x20\x3c\xc4\x7b\x24\xab\x2d\x2a\x2a\x52\x5a\ \x5a\x5a\x16\x3f\x93\x34\x0f\xa5\xbd\xfd\xa2\xd2\xd6\x76\x45\xd9\ \xb3\xe7\x88\xb2\x73\xe7\x6e\x65\xdf\xbe\xbd\xca\xb9\x73\x67\x17\ \xef\xb9\x74\xe9\x92\x52\x5a\x5a\xca\xe3\xed\xa2\xfc\x88\x3f\x0f\ \x02\x8f\x09\xb8\x2d\xf6\xff\x3d\x91\x40\xf9\xc3\xe6\xcd\x9b\x15\ \xb2\xa3\xd2\xd1\xd1\xa1\x1c\x3c\x78\x40\x59\xbb\xf6\x59\x65\xc7\ \x8e\x5a\xe5\xe8\xd1\x2b\x8a\xcd\x36\x0f\xdc\xd8\xd8\xa8\x90\x19\ \xe8\x7b\x87\x1f\x29\xdf\xa1\x34\xdf\xf7\xb6\x0b\x10\x04\xb6\x7f\ \x20\xd8\x29\x14\xeb\xe9\xd5\x70\x83\x36\x1b\xbf\x0e\xad\x94\xdf\ \x51\xbe\x67\x32\xa5\xb7\x6f\xdf\xfe\xa6\x42\x3b\x98\x5f\x07\x8d\ \x94\xd5\x0b\x15\x3f\x18\x8f\x22\x60\x97\xdc\x13\x9b\x28\x4b\xb0\ \xf0\xe1\x5e\x88\xb2\x85\xd4\xe2\x5f\xe2\x6f\x80\x26\xfe\x87\xb0\ \x39\x3e\x91\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x2d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x04\xf4\x49\x44\x41\x54\x78\x5e\xa5\x96\x4b\x6c\x5c\x57\ \x1d\xc6\x7f\xe7\xdc\xc7\x78\x66\xfc\x9a\xc4\xaf\x3c\x5a\x16\xa1\ \x20\x12\xa8\xda\x80\x84\x28\xdb\x2e\x4a\xbb\x0e\x2c\x50\x14\x60\ \xd7\x05\x48\x48\x25\x8b\xb2\x41\x95\x80\x45\x5a\x09\x51\xd4\x76\ \x55\x44\x53\x15\xd5\x55\x9b\x84\x2a\x02\x16\x55\xa8\x68\x4b\xb1\ \x23\x53\x5c\xda\x18\xbf\x82\xe3\x57\xec\xf1\x8c\x3d\x1e\xcf\xcc\ \x7d\x9c\x73\xfe\x8d\xee\x5c\x09\x5b\x42\x10\x95\xdf\xe6\x7f\x75\ \x75\xf5\xff\xf4\x7d\xdf\xb9\xba\x57\x89\x08\x77\xc3\xa5\x9f\x9e\ \x7e\xd8\x99\xf4\xbc\x73\xe6\x7e\x11\x69\x23\xe2\xf8\x37\xea\x0e\ \xbd\x9e\xef\xbf\x5e\x2a\x86\x4f\x3f\xf2\xa3\xa9\x45\x72\x7c\x72\ \x5e\xf8\x9e\x7a\xd4\x39\xfa\x10\x12\x81\x2f\x20\x00\x08\xc2\x31\ \x11\x06\x0b\x25\xbe\xf1\xf5\x6f\xff\xfc\xd0\xe7\x1f\x3a\x43\xda\ \xde\xc1\x3a\x4b\x86\x73\xa0\x35\x41\xa1\x8f\xcd\xc5\xc9\xc7\xa7\ \xdf\xbc\xf0\x38\xa0\x0e\x08\x3c\xff\x5d\x75\xee\x81\x47\x7f\xf8\ \x6c\xa1\x54\x71\x36\x8d\xd2\xa1\x7b\x4f\x17\x51\x28\x40\x4a\x83\ \xf7\x04\xa5\xca\xbd\x7e\x1a\xb5\xf4\x9f\x5f\x3e\x47\x6a\x22\xee\ \xfb\xf2\xc3\x28\x4c\x66\x42\x10\x6c\x2a\x68\x7f\x80\xd2\xe1\xa3\ \x04\xe5\x43\xfc\xf2\xfb\x9f\x3d\xfb\x83\x67\xe7\x2f\x02\x20\x22\ \xfc\xea\x2c\xd7\xac\x4d\xe4\x3f\x11\x27\x56\x36\x36\xb7\xc4\x8a\ \x48\x75\x63\x55\x5e\xf9\xf1\x09\xb9\x76\xf1\x5b\xb2\x36\xfb\x92\ \xd4\x56\xdf\x90\xea\xd2\x6b\x32\x37\xfd\xa2\xb4\x5b\xdb\x52\xbd\ \xfd\x91\xac\xdd\x78\x55\xde\x7b\xe9\x8c\xbc\xf1\xd4\x17\x9f\x10\ \x11\x34\x80\x38\x8c\x4b\x3b\x80\x80\x44\x20\x06\x30\xd9\x75\xdc\ \xaa\xb2\xb6\xb2\x48\x1c\x25\x0c\x8d\x1c\xe5\xa1\xef\x5c\xa2\x32\ \xfc\x20\xff\x78\xe7\x77\xb4\xdb\x71\xe6\x62\x7b\xbb\xc1\xd6\xd6\ \x16\x43\xa3\x27\x91\xde\x13\x3c\xf0\xd8\x13\x28\xe4\x49\x00\x0d\ \xe4\x46\x0c\x10\x83\x8d\xc0\xc5\x60\x9a\xe0\xa2\x6c\x41\xa7\xbd\ \x47\x75\x63\x1d\x11\x38\xf2\x99\x53\x8c\xdd\xff\x4d\x56\x3f\x7a\ \x9b\xad\x5a\x83\xd4\x18\xb4\xd6\x5c\x1e\xbf\xc0\xcf\x7e\x72\x8e\ \xd9\x8f\xff\x42\x9c\x46\x58\x6b\x07\x94\x52\x15\x4d\x0e\x08\x60\ \xbb\x0e\x5c\xa3\x3b\xb1\x04\xbe\x41\x2b\xc3\x07\x7f\xbf\xce\xd5\ \xab\x6f\xf2\xde\xbb\x7f\xa2\x5e\xdf\x20\x8a\xcd\x9d\xb9\x8b\xb3\ \x8e\x81\xfe\x32\x5f\x39\xfd\x39\xbe\xf6\xd5\x93\x8c\x8e\x0c\x22\ \x62\xb0\x4e\x00\x0a\x3e\x39\x48\x0c\xa8\x3c\x1e\x47\x86\x33\x04\ \x9e\x61\x74\xb8\x4c\xad\x7a\x8b\xcd\xf5\x3a\xde\x91\xa3\x14\x8e\ \xde\x87\xb3\x42\x14\xc5\x24\x69\x82\xd6\x30\x32\x3c\x90\x39\x09\ \x7b\x8a\x94\xfa\x0e\xd3\x57\xf4\x35\xe0\xed\x13\xb0\x60\x5b\x60\ \x77\x41\x97\x40\x12\x70\x6d\x7c\xe0\xd8\xd8\x00\x95\xbe\x53\xa4\ \x56\x51\x28\xf4\xa2\x7d\x0d\x1a\xac\x75\x58\x6b\x33\x17\xce\x39\ \x40\x10\x55\xc8\xee\x81\x70\x50\x40\x59\x90\x0e\xb8\x0e\x5d\x14\ \xa8\x02\x88\x21\xf0\x2d\x03\x7d\x09\xe8\x5e\x08\x0b\x98\xc8\x22\ \xd6\x92\x24\x31\xc6\x18\xac\xb1\x58\x6b\x10\x11\x3c\xdf\x60\x5d\ \x0a\xa8\x83\x2f\x5a\xb6\xd8\xc6\x80\xce\x45\x52\x20\x00\x0c\x48\ \x00\x84\x20\x0a\xcc\x1e\x22\x3e\xa2\xc8\x0a\x8e\xa3\x98\x34\x4d\ \xbb\xcb\x3d\x0f\xb4\x26\xde\xab\xd3\xec\x58\x01\xd0\xe4\xa0\x7d\ \xd0\x01\xd8\x2d\x70\xbb\x40\x01\x70\xdd\xc8\xb0\x5d\x51\xb3\x05\ \x28\xc4\x39\xc4\x48\xb6\x38\x8a\x22\x80\x2c\xa2\x24\x49\x48\x93\ \x04\x71\xa0\xc8\xb0\xfb\x3a\x30\x60\xb6\xbb\xb1\x28\x1f\xcc\x3a\ \xd8\x36\x19\xfe\xa1\xac\x0f\x4c\x13\x82\x10\xa4\x17\x41\x50\x0a\ \x4c\x16\x55\x92\x39\xe8\x29\x16\xb1\x22\x88\x22\x57\xc0\x1d\x3c\ \x45\x4a\x83\x6b\x81\x2e\xe6\x91\xd5\xc0\xab\x40\x34\x0f\xde\x20\ \x78\x7d\xf9\x73\x3e\x22\x8a\x38\x4e\xf1\xfd\x00\xfc\x1e\xd0\x8a\ \x62\xb9\x9f\xca\xd0\x11\x7a\xfb\x07\xf0\xb4\x56\x79\x2e\x39\x08\ \x90\x80\xb9\x05\xce\x81\x3f\x02\x5e\x3f\x60\xc9\x48\x97\xbb\xe2\ \xe1\x29\x04\x85\xf6\x34\x85\x62\x99\xde\xc1\x11\x8a\x77\xa6\xe7\ \x07\x48\xd4\xc0\xd6\x16\x59\x9a\x5f\x66\x72\xa6\x79\x0d\x10\x1f\ \x72\x3b\xb2\x07\xc9\x2c\xe0\xe7\x2e\x7a\xba\x91\xc4\x73\xa0\xca\ \xe0\x95\xba\x51\x89\x41\xab\x90\x20\xec\x61\x74\xe4\x38\x65\x95\ \xd0\xbc\xf9\x21\x8d\xd5\x7f\x92\xb6\xeb\x4c\x7e\xb8\x36\x53\xdb\ \xb5\x33\x17\xc6\x57\x7e\x01\x34\x7d\x0e\x50\x02\xb7\x03\xe1\x18\ \xb4\x26\x41\x85\x79\x37\x4b\x20\x15\x08\x8f\x81\x12\xb4\x36\x48\ \xdc\x64\xe5\xfd\xdf\xe2\x1d\x36\xbc\x7e\x6d\xf9\xf2\x8d\xa5\xf6\ \xbb\xb7\x36\xa2\xe9\x85\xf5\x78\x1e\x68\x02\x2d\x11\x69\xef\xeb\ \xa0\x03\xd2\xca\x4f\x8a\x0f\xa4\xe0\x0f\x01\x7d\x60\x02\x08\x4a\ \xa0\x77\xa1\x38\x84\x17\xa7\xec\xd4\x3b\xcd\xe7\x2f\x5d\x7f\xa6\ \xd5\xb1\xbf\xaf\xef\xd9\x15\xa0\x01\x74\xe4\xe0\x87\x88\x83\x02\ \x66\x07\x82\x31\x88\x17\x21\x1c\x05\xb5\x07\xc5\x13\x10\x7e\x09\ \x3c\x8f\x76\x75\x27\x59\x9b\xba\xd2\xd9\xab\xad\xf0\xc1\x12\x6f\ \x2d\x57\x93\x71\x11\xb9\xc1\x7f\xc1\x27\x07\xd5\x03\xe1\x30\xa4\ \x0d\x28\xdf\x03\x85\x61\x08\xfb\xe9\x54\x37\xd3\xb9\x89\x2b\xb5\ \xb5\x99\xa9\x56\x63\x63\xce\xfc\x71\x22\x99\x6e\xa7\xac\x8f\x4f\ \x32\x0e\xac\x00\xfc\x4f\x01\xa5\x08\x7c\xcf\x41\x78\x18\xda\xbd\ \xec\x35\xe3\x78\xf9\xfa\xdb\x8d\xd9\x77\xae\xee\x34\x6e\x2f\x9b\ \xcb\x93\x4c\x2e\x6c\xf2\xb7\xb5\x6d\x3e\xde\x6a\x71\x33\x8f\xa3\ \x05\x74\xee\x4a\x40\x7b\xac\xc7\xad\x1a\x3d\xc1\x71\xe6\xa7\xae\ \xd4\xe7\xff\xfa\x87\xc6\xee\xed\x59\x73\xfe\xa2\x7b\x6e\xa9\xc6\ \x04\xb0\x0e\xd4\xf3\xe2\x2c\x77\x4d\x2e\x10\x86\xfc\xe6\xd7\xe7\ \xcf\xf6\x20\x1c\x9f\x58\x60\x61\xea\x5f\x4c\xdc\xdc\xe4\xfd\x66\ \xc2\x1c\x50\xcf\x8a\xfb\x94\x1c\xf8\x6d\x51\x4a\x55\x80\x12\xd0\ \x06\x1a\xd9\xe2\xff\x93\x4f\x00\xc2\x30\xec\x24\xf5\x72\x95\x25\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\xcb\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x03\x5d\x49\x44\x41\x54\x48\xc7\xb5\ \x95\x5d\x48\x93\x51\x18\xc7\x57\x94\x96\x52\x16\x9a\xa8\x29\x99\ \x92\x90\xe5\x57\x99\x9a\xdf\xa1\x94\xda\x07\xf9\xb1\x59\x59\x4d\ \x5d\x12\x8c\x94\xa4\x22\xe7\x34\x25\x02\xc3\xc8\x9b\x44\xbb\x71\ \x58\x17\x8a\x37\xa1\x99\x8a\x52\x7e\x85\x53\x67\xea\x74\xb6\x74\ \x3a\x35\xa7\x4d\x0d\xca\x19\xc2\x7b\xf1\xc2\xe9\x79\xf4\x9d\xe9\ \xdc\xdc\x76\xd1\xe0\x07\xef\xce\xf9\x9f\xf3\x3f\xcf\x73\xce\x79\ \x0e\x8b\x10\xc2\xfa\x9f\xac\x7f\x44\x5e\x2b\x74\x04\x72\x80\x2f\ \x06\x68\x05\xf8\x1b\xf4\x7c\xa6\x4d\x9f\x16\xe7\x71\xd4\x35\xc8\ \x14\xd5\xf7\xa9\xa7\xfe\x10\x82\x8c\x2f\x11\xa2\xf8\x4d\xc8\xe4\ \xf2\xda\x7f\xf9\x22\x45\x47\x24\x3f\x69\x67\xb1\x58\x56\x8c\xbe\ \x15\xdb\xb4\x7a\xad\x0e\xc1\x79\x82\xaf\x3e\xcc\x01\xad\xc5\xa6\ \x08\xc2\xd8\xc2\x7c\x5c\x41\x05\x08\x86\x17\x08\x91\xaa\x09\x69\ \xea\x57\x69\xae\x67\x97\xca\xc2\xd9\xc2\x2e\xbf\xa8\xb4\x17\x30\ \xc8\xfe\x5f\x04\x05\x6d\xd8\xd7\x22\x55\x69\xc6\x60\x31\x55\x1f\ \x65\x3f\x71\xbc\x5f\x54\x7a\x85\x83\xab\x4f\x34\x68\xf7\x6d\xce\ \x17\x38\xba\xfb\x9e\xf7\x8e\xe0\xe4\x77\xf6\x4c\x53\xf4\xc0\x0f\ \x42\x32\xf2\x44\x72\x67\x8f\xa0\x72\xe8\x8b\x05\x8e\x69\x23\x60\ \xf4\x56\xde\x91\xb7\x52\x32\xf2\x45\xf2\xe1\x05\x8a\x0e\x4b\x12\ \xf4\xd8\x3a\x79\x14\x42\x7b\x10\xe0\xb0\x29\x82\x8d\x60\xf8\x7d\ \x2a\x8a\x96\x2e\xac\x19\x38\xba\x9d\xe2\x83\xd8\x16\xd8\xa1\xab\ \x0d\xe7\xe4\x7b\xa2\x66\x68\x1e\x0c\xd8\x42\x31\x68\x42\x00\xcb\ \x2d\x9b\xac\x6b\xd0\x0b\x06\x83\xf3\x84\xdc\x59\x8d\x20\x90\x0b\ \x83\xf6\x1a\xd0\x1e\x47\xcd\x80\x9a\xa2\x31\x8d\xa0\x3b\xa9\xf7\ \x14\xe9\x1a\x88\x21\x45\x7d\x90\x22\x9e\x09\x06\xa8\x91\xcc\x99\ \x69\xd0\x31\x45\xd1\x62\x15\x21\xe9\x42\xe3\x06\xa8\xe9\x9e\x35\ \xd3\xa0\x55\x49\xd1\x9d\x33\x84\xa4\x99\x60\x80\x9a\xcf\x33\x66\ \x1a\x34\x2b\x28\xba\x75\x1a\x0c\x72\x4d\x33\x68\xff\x6e\xa6\x41\ \xd3\x18\x45\xb7\x4c\x12\x92\x6a\x82\x01\x6a\x3e\x4d\x99\x69\xd0\ \x00\x11\x34\x2a\x09\xe1\x9a\x60\x80\x9a\x66\xa5\x79\x06\x65\x95\ \x5d\x2a\xcd\x87\x09\x42\xee\x97\xd4\x29\x3d\xfc\x2f\x3d\xd8\x78\ \xc1\x74\xb4\x09\x39\xaf\x5b\xa6\xdf\x80\x3e\xe0\x62\x66\x2d\xe8\ \x3c\x4d\x31\xe0\x16\x54\x76\xce\x36\x4c\x11\x52\x54\xd3\xa7\xf6\ \x39\xc7\x7d\x05\x03\x0f\x18\xd0\x3e\x2f\x6b\x19\xff\x85\xfa\x13\ \x21\x9c\x12\xd0\xb9\x99\x62\x60\x0d\x37\xb4\xfa\xad\x64\x71\xa5\ \x16\xf6\x22\x31\xab\x54\x76\xf6\x4a\xb6\x10\x6e\xaa\x93\x4e\xf5\ \xcd\xcc\x7c\x59\xa7\xac\x19\xd6\x50\x71\xbc\xe2\x41\x6b\x1b\xfb\ \x78\x30\xb0\x33\x6a\x80\x25\x21\x2c\x29\x37\x11\x26\x1e\xa9\xec\ \x5d\x58\x79\x07\x26\xcf\xaa\x25\xf3\x50\xdc\xfa\xb5\xc4\xf2\x8a\ \xa5\xd8\x86\x7d\x37\x05\x22\xb9\x67\x70\x12\xae\xde\x6b\x63\x99\ \xd0\x6b\x00\xbf\x9d\xc0\x6e\x60\x4f\x40\xdc\xbd\xdb\xc1\xf1\x8f\ \xea\x85\xa2\x8e\xb9\xf2\xf6\x99\xe5\x3a\x48\xd9\x7b\x06\xfc\x7e\ \x5a\x25\x99\x8f\x49\x2f\x1e\xf2\x0a\xbf\x81\xc5\x30\x14\x38\xa8\ \x5b\xaf\xf4\x4d\x6e\x09\xec\x07\x0e\x01\x87\x6d\xec\x5c\x4e\xc3\ \x04\x45\x67\x62\xf8\x8d\xe1\xec\x3c\xd9\x3a\x9c\xbc\x61\xaf\x88\ \x94\x1a\xe8\xe7\x33\x93\x3b\x61\xf5\x34\xf8\xa2\xa1\x33\xb0\x2b\ \x34\x31\xa7\x10\xf2\x3f\x04\xf9\x1e\x81\x34\x7d\x05\xe4\xa1\x09\ \x8f\x47\x03\x2f\x67\x29\xfc\x2f\xdc\x9d\xf0\x8d\x4e\x9b\xf4\x8d\ \x4a\x5d\xc5\x2f\x9a\xa7\x84\x93\x33\x1a\x9a\x28\x18\x81\x12\x2f\ \x8d\x48\x2e\x18\x00\x04\xdb\x19\x58\xa0\x70\x12\x5f\x28\x40\xb1\ \x64\x3a\xda\x31\xf8\xe0\x18\x35\xe8\x86\x32\x2d\x06\xda\x66\xd6\ \x68\x67\x68\xdb\x06\x31\x33\xc6\x98\x81\xde\x14\xc1\x4b\xf5\x6d\ \x2b\xd8\x0e\x80\x0e\xf7\xc4\x68\x8a\x0c\x6c\x32\x6e\x9c\x0b\xe0\ \x8a\x17\x08\x70\x67\x38\x0a\x1c\x01\x9c\x99\xa7\x11\x4f\x8f\x15\ \x2e\x50\x77\x93\xff\x02\x6e\x02\x38\xfc\xe3\x20\x49\xdb\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\xe8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x7a\x49\x44\x41\x54\x58\xc3\xed\ \x57\x09\x4c\x54\x57\x14\x1d\x6a\xed\xa6\x4d\x69\x69\xb5\x2e\x15\ \xf7\x1d\xb1\x20\x8a\x0a\x28\x2a\xb2\xa9\x88\xc0\x20\x28\x22\xae\ \xe0\x30\x08\x6e\x6c\x23\x42\x01\xc5\x71\x41\x76\x71\xa1\x0a\x28\ \xe2\x5a\xc0\x0a\x5a\x91\x60\xc0\x15\xad\x88\x68\xcd\x18\xd4\xaa\ \xd4\x5a\xb1\x2e\xe8\x8c\x0a\x9e\x9e\x0f\x3f\x8d\x52\x29\x9a\x9a\ \x36\x69\x9c\xe4\x64\x32\x33\xff\xdd\x73\xef\x39\xf7\xde\xff\x47\ \x02\x40\xf2\x5f\x42\xf2\x36\x81\xff\x65\x02\x66\x52\x85\x91\x99\ \x34\x58\x66\xea\x14\x14\x6f\xea\x18\x98\x66\xea\x18\x90\x3e\xd4\ \x7e\xc1\xaa\x81\xb6\xde\x93\x25\x12\xc9\xc7\x44\x33\xc9\x9b\x7e\ \x0d\x9b\x18\xd2\x97\xc4\x11\xc3\x9c\x17\x17\x7b\x2c\xdc\x7c\x39\ \x60\xf9\xe1\xdb\xa1\xd1\x17\xab\x15\x2b\xae\xa8\x15\xcb\xaf\xa8\ \x03\xa3\xce\x3c\x90\x29\x76\xdf\x1a\x6c\xe7\x97\x6f\x60\x31\x5d\ \xc6\x23\x9f\x10\xef\xbe\x01\xe2\xc5\x96\x24\x4d\x99\x34\x37\x59\ \x15\x91\x50\x76\x37\x3c\x41\x53\x2b\x0f\x07\x26\x2d\x00\xc6\x7a\ \x02\xa3\xa7\x02\x23\xdd\x00\x6b\x77\xc0\x7d\x1e\x10\x16\x5d\xf9\ \xc4\xc2\x75\xc9\xb5\xd6\xba\x7a\x52\x1e\xd7\xf9\xc7\xc4\xd3\x17\ \xa5\x56\x28\x93\xaf\x3e\x0c\x8c\x06\xdc\x02\x49\x24\x03\x4c\xa6\ \x01\x86\x93\x01\x3d\x29\xd0\xdb\x1e\xe8\x66\x4b\x8c\x06\xfa\xd9\ \x00\xd2\x39\xc0\x82\xf0\x22\x75\xaf\xc1\x13\x72\x18\xc6\xe0\xf5\ \x89\x9d\x17\xeb\x12\x8a\x49\xbe\xc9\xaa\x95\x1b\x49\xbc\x06\x70\ \x0d\x02\x2c\xe4\xc0\x50\x56\x6c\x4c\x0c\x64\x12\x83\xbc\x09\x92\ \xe9\x7b\x00\x3d\x5d\x80\x4e\x63\x00\x5d\x0b\x60\x88\x13\x10\x10\ \xa5\x7e\x36\xd0\x56\x56\xc9\x70\x4e\xaf\x45\x3e\x7c\x62\x88\xdc\ \xc6\x23\xaa\x2c\x3c\xbe\xa4\x2a\x3c\x19\x98\xba\x84\x15\xfb\x01\ \x66\x73\x89\xf9\x94\x5b\x01\xd8\x47\x01\x93\xa9\xc6\xd4\x38\x26\ \xc6\xf7\x71\xdf\x50\x11\x5f\xa0\xef\x14\xa0\xab\x1d\x60\xe4\x0c\ \xcc\xa5\x45\xe6\x4e\x01\x77\x19\xd2\xf7\xb5\xaa\x96\x2d\xd9\x71\ \x35\x26\x5d\x53\xeb\x4d\x92\xf1\x01\xf4\x96\xa4\x23\xfc\x01\x9b\ \x08\x92\x92\x70\x7e\x3a\xb0\x7c\x2f\xb0\xbe\x10\xd8\x54\x04\x24\ \xfc\x00\xf8\x6f\xa5\xec\x2b\xa8\x0e\x13\xed\xc3\x5e\x18\xcc\x5e\ \xf0\x5d\xc6\xe4\xbc\xe3\xab\x19\x5a\xf1\x0a\xe4\x0a\x27\xa1\xea\ \xc8\xc4\x92\xaa\x88\x75\x24\x0a\x63\xd5\x24\x1d\x45\xbf\x6d\x22\ \xd9\x6c\x09\xf4\x74\x1b\x10\x7b\x08\xc8\x2a\x03\xb6\x1e\x54\xd5\ \x84\xc4\xee\x51\x7b\x2c\x88\x7b\x18\xb9\x2e\x4f\xb3\xbd\x84\x92\ \x67\x50\x09\x5e\x6b\x4c\x6b\x46\xd1\x2a\x45\x2c\xed\x19\x23\xbf\ \xc7\xf0\x4b\xfe\x1c\x1f\x8e\x86\x31\xbf\xf8\x88\xd0\x7a\x5e\x72\ \x07\xcf\x98\x0b\xb1\x69\x37\x35\xf3\xe9\xb5\x53\x08\x60\x49\x99\ \xad\x59\xb1\x34\x06\x90\xb1\x62\xe5\x01\x60\x57\x29\xb0\xad\x40\ \x55\x33\xc6\x23\xf4\x41\x5f\xd3\x89\x57\x3b\xf4\x1a\x5a\xac\xd3\ \xae\xfb\x4e\x36\xda\xb1\xb5\xbb\x4a\x34\x89\xf9\xb4\x24\x91\x7d\ \x12\x54\x1f\x63\x55\x9a\xfa\x99\x91\xb5\xe7\xed\x3a\x05\x04\xf2\ \xc4\xd4\xb2\xdf\x0d\x2d\x67\x6d\xea\xd2\xdf\x62\xbc\xb8\x28\xb4\ \x98\x58\xf0\x0c\xff\xd4\x8a\xd8\x2d\x9a\x5a\x2f\x25\xbd\xe5\x41\ \x2b\xfa\x69\xbf\x0a\xf0\x48\x61\x15\x39\x40\xca\x31\x20\xfb\xf4\ \x9d\x5a\x59\xe8\x86\x47\x02\xf1\x97\x9d\xf4\xf3\x79\x76\x39\xe1\ \x45\x8c\x63\x3c\x7f\xdf\xc8\xf4\xdf\x32\x4f\x02\x3e\xa9\x4c\x9a\ \x71\x7c\xe3\x81\xc8\xa4\x13\x4f\xba\x1b\x8d\x39\xcf\x6b\xfc\x04\ \x05\x4a\x0b\x8f\x30\xab\x75\xa7\x1f\xe9\x9b\xbb\x65\xe9\x99\xb9\ \xc8\xb9\xc1\xb6\xf9\x45\xe4\x5c\x57\x6e\x06\xa6\xd1\x6f\x3b\xca\ \x6e\xcb\x77\x97\x24\x40\x9e\x09\xac\x2c\x00\xf6\x94\x03\x69\xfb\ \xcb\x9e\x8e\x70\xf6\xbf\xdf\xa1\xb7\x49\x09\x83\xad\x21\x3c\x09\ \x73\xa2\x33\xf1\x59\xff\x11\xee\x16\x5e\x21\x29\xd7\x77\xfd\x48\ \x1b\xb6\x53\x31\x5a\x18\x9f\x45\x05\xdd\x42\x1f\x68\xb7\xea\xb8\ \x9b\xd7\xb8\x08\x0d\x56\x96\xcb\x80\x2b\xf9\xa3\x97\xe2\x94\xda\ \x78\x9c\xef\x85\xf0\xa4\xeb\x1a\x7f\x7a\xeb\xb6\x94\xcb\x84\x72\ \xdb\x0b\x5d\xfd\x2d\x83\xb0\xc1\xd6\x1e\x07\xf2\xca\xd5\xcf\x16\ \x29\xb7\x70\x96\xed\x2b\x3e\x6f\xdf\x63\x5f\x9d\x97\x12\x89\x1d\ \xd1\xf5\xf9\x55\x6b\xe2\xb0\x68\xda\xb2\x0d\xfb\x7f\xcd\x64\x1f\ \x84\x91\x58\xf9\x1d\x10\x9e\x74\xf8\x71\x57\x03\x2b\xa1\xfa\x30\ \xc2\x58\xb0\xe0\xdc\xae\x5c\x60\x4e\x28\x3b\xdb\x07\x70\x5c\x54\ \x5d\xeb\x42\x52\x07\x62\x1c\xbb\x55\x4a\xc9\x66\x6d\x01\x42\xe9\ \x75\x2a\x2b\xc9\x2d\xbb\x53\x3b\x51\xae\xac\xee\xd4\x6f\x44\x29\ \x03\xc4\x10\x33\x89\x21\x44\xeb\x86\xab\x55\xb8\x17\x64\x1c\xbc\ \x58\x9d\xce\xa4\xe3\x38\x11\x69\x07\xef\xd4\x9a\x3b\xf9\xdf\x6f\ \xa1\xdd\x3a\x93\x3f\xbb\x12\x6d\xeb\x12\xd8\xb9\x9f\xbe\x72\xa6\ \x4d\xbc\x00\x53\x8e\x8b\x55\x58\x7d\xd5\x93\xd6\x03\x9e\x94\x6e\ \x29\x3b\x3c\x93\x92\xe7\x9c\xba\x51\x23\x4a\x7e\x92\x87\x95\x84\ \x83\x58\x75\x0b\xe2\x9d\x86\xf7\x06\xa9\x3c\xe6\x42\xf1\x65\x36\ \x28\x7b\x60\xe7\x51\xf5\x33\x47\x2f\x65\xb5\x78\x36\x98\x30\x24\ \x3e\xa8\x4b\x60\x0f\x09\x66\x2b\xeb\x67\x7a\x24\x95\xb0\x67\x87\ \x4f\xa1\xff\x3e\x94\x2c\x92\x33\x9d\x41\xf2\xb5\x59\x27\x9e\x8c\ \x24\x79\xbb\x6e\x03\x8f\xf0\x60\x24\x31\x96\x68\xdf\xd8\x0d\x45\ \x68\xee\xf4\xbc\xb2\xbb\x85\x2a\x20\xff\x02\x30\x2f\x72\x8b\x5a\ \x54\x4d\x48\xdc\x96\xf8\xa2\x6e\xe2\x84\x04\x72\x8a\xd9\x9d\xdc\ \x6c\x76\x4c\xc2\x81\x92\x4f\xe5\x78\x79\xd3\xb3\x10\xf6\x46\xf2\ \x19\x56\x70\xec\x46\x0d\x1b\xb4\x52\xbb\x95\x6e\x8e\xb8\x3c\xac\ \x88\x36\x8d\x91\x0b\xbb\xc3\xc3\x3f\x59\x55\xfe\x0b\x70\xfa\x2a\ \xf7\xc4\xd2\xad\x8f\x44\xdf\x57\x13\x13\x5e\x48\x5c\x48\x20\xef\ \x14\xc7\x8a\xdd\xed\xbe\x11\x98\xc1\xa5\x31\x97\xcd\x16\x4c\x55\ \xa2\x38\x66\x6b\x0a\xea\xc9\xdb\x77\x1f\x54\xc8\xcb\x17\x0a\xd6\ \x8a\xd9\xbf\xbc\x72\xa7\x20\x1d\x26\xb0\xf3\x50\xe9\x4d\x4d\x79\ \x25\xc9\xa3\xb6\x3e\x14\xc9\x85\x7e\x11\xee\x80\xba\x2f\x9c\x15\ \x12\x28\xa2\x44\x71\x5c\x16\x41\x9c\xed\xc5\x6c\xb6\x65\x5c\xa3\ \xd1\xec\xdc\xb5\xdc\x6c\x99\x97\xb8\x52\xb3\x4e\x3e\xee\x3d\x64\ \xc2\x51\x9d\xb6\xdd\x3c\xc5\xec\x1b\x7d\xa0\x60\xbc\x39\x71\x19\ \x45\xb7\x4a\x2a\x34\xb5\xce\xb2\x15\xf7\xba\x19\x5a\x97\x8b\x23\ \xea\x4c\x74\x24\x9a\x37\x3c\x70\xee\xec\xcf\xc0\xc1\x9f\x48\x56\ \x5a\xdf\x6c\x7b\xe8\x5b\x76\x05\xb0\x8f\xf2\x15\xdc\x00\xce\x56\ \x01\xeb\x76\x17\xa9\xfb\x98\x48\x77\xf0\x48\x1f\xe2\xfd\x46\x1e\ \x4a\xec\x42\x13\xf7\x5e\xcb\x3f\x7d\x53\x33\x76\x7a\xc4\xed\xce\ \xfa\xa3\x84\xfd\xb0\x52\xbc\xeb\xfd\x95\x5c\x9c\xd5\x8c\xec\xa2\ \xcb\x9a\xec\xe2\x4b\x4f\xb3\x8a\x54\x35\xd9\x47\x55\x35\x39\xc4\ \xde\x63\xc4\x71\x55\xcd\xf7\x44\xee\x09\x01\x97\x9e\xba\xfa\xae\ \xae\x6a\xa5\xab\xe7\x23\xfa\xaf\xd5\xe0\xf9\xa0\x87\x47\xc0\xfa\ \x8b\xab\xd3\x0a\xab\x0c\x2d\x67\x9e\xfb\xaa\xe7\xe0\x03\xfc\x3a\ \x82\xb0\x17\x65\x6f\xfe\x52\xc9\x0c\x46\xcf\x70\x19\x60\x35\xbb\ \xa0\xdf\xf0\xc9\xe7\xf5\xcc\x5c\x2f\x35\x8a\x61\xae\xaa\x36\x5d\ \x0c\x72\xc4\xb9\xef\xf2\x12\x1b\x9a\x75\x37\xb2\x35\xef\x3d\xd4\ \x71\xe3\x87\x2d\x3f\x8d\xe2\x67\x39\x31\x92\x68\xd7\xd4\xa3\x97\ \xb0\xb9\x06\x88\x8b\x61\x76\x13\x70\x13\x44\x13\x1f\xa5\xb4\x1a\ \xc4\x11\x3e\x6b\x13\x5f\x0b\xf7\x31\xd1\x2a\xed\x57\x79\xee\x6b\ \x26\x26\xd1\x46\x6c\xb0\xbf\x43\x9b\x26\x9e\x6a\xb5\xea\x96\x8b\ \x44\xd2\x92\x78\xef\x25\x49\xfe\xfb\xaf\xb7\xff\x8c\xde\x26\xd0\ \x14\xfe\x00\xc6\x8f\x6d\x5f\x51\xaa\x96\x24\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xb5\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x04\x7c\x49\x44\x41\x54\x78\x5e\xb5\x94\xdd\x6b\x1c\xd5\ \x1f\xc6\x3f\xe7\x65\x66\x67\x5f\xf2\x6e\xd2\xb4\x69\xc1\x37\xea\ \x0b\xe2\x4d\xf4\xce\x4b\xa1\x88\x82\x48\x41\xe8\x95\x7a\x21\xbd\ \xf4\xc7\xef\x0f\xf0\x46\xf4\x52\xf0\xd2\x4b\x11\x5b\x14\x2d\x8a\ \x8a\x42\xac\x28\xc1\x68\x6d\xda\x9b\x94\x26\x6d\x9a\xb6\x49\x37\ \x4d\x9a\xee\x6e\x76\x67\x77\x67\x77\x66\x67\xe6\x38\x3d\x84\xb0\ \xa1\x90\x80\xe0\x03\xcf\xce\x7e\x99\x99\xe7\xf3\x3d\xdf\x39\x33\ \xc2\x18\xc3\x7f\x29\xcd\x8e\xa6\xa7\x4f\xbf\x02\xe6\x0d\x30\x47\ \x8d\x41\xf2\xef\x24\x8d\x49\x56\xe2\xb8\xfb\xcb\x95\x2b\x67\x7f\ \x04\x22\xcd\xae\xcc\x9b\xef\x7d\xf4\xbf\x93\x7a\xf8\x91\xfc\xc5\ \xb9\x59\xb9\xf0\xd7\x8c\xe8\x76\x9a\x42\x22\x11\x02\x84\xfd\x01\ \x29\x44\xdf\x7f\x89\x76\x5d\xa6\x9e\x78\x96\x27\x5f\x3c\xc1\xf8\ \xe4\x61\xe6\x67\xe7\x5e\x9a\xfb\xec\x8b\xe3\xc0\x25\xe0\x5e\x1f\ \x80\xe3\xce\xf0\x98\xf7\x6b\x59\xe9\xaf\xbf\x3c\xc7\x07\xef\xbe\ \xca\xe3\x47\x27\x91\x52\x62\x00\x23\x52\x24\xc2\xd6\x02\x01\x18\ \xa4\x52\xd8\xda\x29\x70\xe6\xd2\x26\xdf\x2e\x6b\xf4\x1f\x3f\x68\ \xe0\x08\x30\x05\x34\x76\x01\xc6\x98\x66\xa5\xea\xa7\x37\x36\xf3\ \xd4\xb7\x7d\x06\x3d\x45\xc1\x15\xf4\xe2\x08\x00\x89\x44\x6b\x9d\ \x59\xd9\x15\xf4\x7a\x11\x69\x9a\x20\x52\x81\xe7\x2a\xa2\xc5\x9f\ \xf1\x07\x5e\x63\x20\x8c\x93\x24\xe9\x45\x40\x01\x50\x9a\x3e\x49\ \x09\x45\x47\xda\x80\xd2\xe0\x10\x85\x62\x91\x38\x8e\xc9\xee\xb0\ \xa1\x4a\xd9\x70\xeb\x9d\xee\xf1\x3c\x8f\x52\x69\x80\xe9\x97\x4f\ \x72\xfd\x5a\x1e\x29\x15\x20\x00\x0c\x40\x3f\xc0\x86\x68\x47\xa2\ \xa4\x60\x28\x03\x0c\x0f\x0f\x13\x86\x21\xbd\x5e\x6f\x17\xb2\x23\ \x5b\x67\xa6\xdd\x6e\x13\x85\x21\xc5\xe1\x49\xf2\xf9\x88\x68\xf7\ \x9a\x87\x01\x68\x21\xc8\x69\x89\x56\x92\x7a\xbd\xce\x60\xc1\xf2\ \x6d\xe7\xae\xeb\xda\x11\x29\xdb\xb9\x5d\xa5\xad\x9d\xcc\xf9\x42\ \x9e\xdb\xab\x0a\xcf\xa9\xd3\x13\x86\x7e\xed\x1d\x91\x10\xb8\x8e\ \x44\x1a\xc3\xc4\xe4\x04\x47\xa6\x0e\x13\xf7\x7a\x76\x4c\x3b\xb2\ \xe1\x80\x5d\x55\xa7\xd3\x21\x30\x86\x7a\x7d\x9b\x38\x1c\xa3\xe0\ \x28\xda\x42\xec\x03\x90\x90\xd7\x12\xc7\x73\x09\x3b\x1d\x3a\x41\ \x60\x3b\xf4\xbc\x1c\x8e\xe3\xe2\x68\x85\xd2\x1a\x21\xec\x18\x11\ \x52\x61\x57\xe7\x68\x5a\xb7\x23\xf2\x2b\x15\x84\xdc\x07\xa0\xa5\ \x24\xa7\x05\x03\x87\x9f\xe6\xa9\x67\x9e\xe3\xd8\xc4\x10\x08\x30\ \x69\x4a\x6a\xc8\x6c\x48\x52\xe8\x25\x86\x4e\x02\x61\x04\x51\x22\ \x41\xc0\x76\xd7\x90\x77\x25\x12\xf6\x01\x08\x70\x94\xe1\xd1\x17\ \x4e\x30\x73\x4b\xf0\x58\x60\xb2\x5a\xd2\x89\x15\x9d\x28\xa5\x19\ \x26\x04\x9d\x88\x7a\xab\x8b\xdf\x6c\x53\x6f\x36\x69\x36\x7c\x8c\ \x72\xd0\x03\x87\xc8\xe5\x73\x28\x79\xc0\x88\x72\x0a\x26\x8e\x4c\ \xf1\xe9\xf7\xf3\xe4\x13\x1f\x11\xb5\xe9\x76\x03\xa2\x4e\x40\x1a\ \x77\x51\x26\xc6\x73\x04\x43\xc5\x1c\x23\x25\x8f\xb1\x91\x12\x13\ \x13\x87\xa8\xb9\x63\x24\xba\x80\x14\xfb\xac\x40\x09\x41\x21\xe7\ \xd2\xb8\x35\xcf\xf3\x4e\x8d\x63\x53\xc3\x94\xbc\x7c\x16\x36\x42\ \x31\x27\x19\x1d\x2c\x32\x92\xb9\x54\x2c\xe0\xe5\x5c\x94\x94\x44\ \x71\x4c\xd0\x6a\x72\xd9\x77\xb9\x19\x68\x84\xdc\x6f\x44\x4a\x90\ \x73\x35\x7e\xf9\x1a\xa7\xff\xff\x3a\xbf\xcd\xfc\xc4\xd6\x5a\x85\ \xbb\x71\xc2\xa9\x53\xa7\x30\xc6\x90\xcb\x39\x28\x25\x31\x40\x62\ \xc0\xa4\x86\x14\x41\xc9\x53\x14\x13\xbd\xff\x33\x10\x02\x3c\x47\ \xe2\x3a\x8e\xdd\x2d\x8b\x4b\x4b\xf6\x65\x1b\x1f\x1f\x27\x4d\x53\ \x80\xec\x68\x76\x2d\xa5\xc1\x60\x65\x77\x58\xde\xd3\x64\x70\x91\ \x69\x97\xb3\x07\xa8\xa4\xc8\x00\x1a\x2f\xe7\xd0\x09\x7b\x94\x4a\ \x25\xc6\xc6\xc6\x18\x1d\x1d\xb5\x80\xfd\x94\x73\x14\x3d\x7f\x83\ \x34\x0a\x30\x26\x8d\x01\xf1\x10\x40\x4b\x81\xa3\x1e\x58\xee\x7c\ \x96\xad\x39\x50\x42\xa2\xe2\x36\xcb\xb3\xdf\x98\xca\x7a\x54\xad\ \xd7\x6f\xfd\x0e\x74\x81\x64\x0f\x40\x0a\x70\x1d\x81\x94\x80\x31\ \x1c\x20\x0b\xd7\x5a\xd9\xe7\x12\x6c\x5d\x63\xe5\xf2\xed\xee\x8d\ \xeb\x17\x3e\x5f\x5f\xff\xfb\x3c\xb0\x05\x74\xf7\xee\x22\xad\x18\ \x2a\x91\x8d\x65\x14\x37\xe7\xda\x0f\x5d\x16\x62\xdf\x64\xa5\x04\ \xae\xab\xb3\x30\x3b\x67\x82\x20\x34\xf5\x7a\xc0\xfd\xfb\x0d\x6a\ \xb5\x16\xeb\xeb\x95\xf6\xca\xd2\xc2\xb9\x6a\x75\xe9\x22\x70\x13\ \xd8\x00\xc2\x7e\x80\x74\x5d\x21\xb7\xca\xcb\x24\xfe\x1a\x5a\x4d\ \xf3\xf6\x3b\x6f\xd1\x6a\x76\x4d\xbb\xdd\xe3\xea\xd5\x4d\x1a\x8d\ \xae\xa9\x56\x5b\x61\xa5\x52\xf3\x6b\xb5\xda\xa6\xef\xd7\xd6\x7d\ \xff\xde\x6a\xb5\x5a\x5e\x5d\x5c\xbc\x7c\xc7\x98\xb4\x01\xdc\x01\ \xca\x40\xcb\x64\xea\x03\x98\xd6\xfc\x85\x2b\xcd\xb9\xf3\x33\xc5\ \xf2\xea\xa6\xf9\xb0\x7c\x36\x2a\x16\xf2\x61\x1c\x87\xd5\x56\xab\ \xb1\xe1\xfb\x95\x72\xa5\xb2\xbe\x56\x2e\x5f\x5f\xab\x56\xef\xd6\ \x80\x2e\xd0\x01\x82\x3e\xb7\x80\x26\x10\x98\x4c\x7b\xb6\x69\x1c\ \x77\xbe\xfa\xe4\xfd\x8f\x37\x21\x74\xc3\xde\x76\x65\xf9\xea\xec\ \xc6\xf6\xf6\xea\x5d\x63\xd2\x10\xe8\xf4\x39\xb0\xb5\x05\xd0\xeb\ \x73\x4c\x66\x1b\xbc\xab\x3e\xc0\xc2\xc2\x99\xef\x80\x3f\x81\x11\ \x40\x00\x36\x78\xe7\x18\x01\x71\x7f\x98\xc9\xc8\x1c\x2c\xfe\x01\ \xd1\x4f\x0f\x88\x96\x78\xff\x51\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x07\x68\ \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\x2f\x49\x44\x41\x54\x58\xc3\xcd\x97\x09\x54\x54\x65\ \x14\xc7\x9f\x80\x88\x20\x04\x0d\x28\x9b\x6c\x02\xb2\x0c\x33\x2c\ \x6e\xa0\xc0\x11\xe8\xc4\xa8\x84\x6c\xb9\xa0\x64\x66\xb9\xe6\x12\ \x5a\x96\x29\x89\x5a\x4a\x08\xa7\x52\x3a\x99\x51\x83\x10\x03\xea\ \x00\x03\x1a\x10\x20\x8c\xc0\x40\x12\x01\xa3\x43\xc0\x60\x25\x21\ \xab\x02\x31\x0c\xdb\xcc\xbb\xdd\x37\x3d\x3b\xed\x82\xc9\xa9\x77\ \xce\xef\x0c\xe7\xfb\xee\x7b\xf7\x7e\xf7\xfb\xbe\xff\xbd\x10\x00\ \x40\xfc\x97\x4c\xc8\xc8\xdd\xdd\x9d\xe9\xe6\xe6\x76\xdc\xd5\xd5\ \x95\xeb\xe2\xe2\xf2\xd6\xfc\xf9\xf3\xfd\x09\x82\xd0\x46\xd4\x1e\ \xea\xe0\xdf\x3e\xe8\xd8\x2b\x24\x24\xe4\x56\x61\x41\x7e\x7f\x7d\ \x5d\xad\xfc\x62\x66\xe6\xc0\xf6\xed\xdb\xda\x99\x4c\x66\xb6\xbd\ \xbd\xfd\x06\x34\xd1\x45\xd4\x89\xa9\x7a\x30\x80\xf7\x44\xa5\xe9\ \x32\x68\xdd\x08\xd0\xe8\x03\xf0\xfd\x2e\x80\xfe\x02\xa8\xad\x11\ \x8d\x7a\x7b\x7b\xdf\xd1\xd6\xd6\x0e\x40\x33\x83\x29\x0b\x00\xd3\ \x5f\x0f\xcd\x2b\xa1\x86\x4b\xc0\x86\x15\x04\xbc\x14\x4a\x80\xf0\ \x1c\x66\xb7\x71\x19\x24\xc4\x1d\x1e\x32\x37\x37\xbf\x80\x66\xce\ \xc8\xf4\x29\x09\x80\xcd\x66\x7f\x2e\xe1\x11\xc0\x4b\x60\x2a\x4c\ \x4c\x4c\xc4\x16\xa6\x3a\x85\x6b\x38\x86\xa3\x50\x45\x40\x45\xce\ \x66\x85\x8d\x8d\xcd\x37\x68\xc6\x41\x9e\x98\x8a\xd5\x3f\x1d\xb5\ \x61\x8d\x74\xe8\xc6\x22\xb2\x98\x17\xa9\xb0\xb4\xb4\x14\xe3\xf0\ \xab\xae\x2c\xfb\xda\xd6\x5c\x53\x10\x0b\x96\x90\xb6\xb6\xb6\xcd\ \x38\x16\x85\x18\x4f\xc5\xfe\x27\x37\x5c\x4f\x18\x86\x6a\x5d\xe8\ \xaa\xdd\x0d\x5e\x9e\x4b\xee\xa3\xc3\x2b\x78\x00\xcb\x5a\x0a\x9f\ \x22\x6f\xf2\x9d\xc9\x79\xf3\xe6\xb5\xa2\xe9\x56\xc4\xfc\xb1\x07\ \xe0\xe4\xe4\x14\x7e\x64\x9b\xd1\x48\x7e\x02\x01\xf7\x84\x1e\xd0\ \x71\xbb\x98\xcc\xcf\xf9\x68\xa4\x40\x70\x4e\xde\xfd\xf5\x76\xc8\ \x88\xb3\x54\x9a\x9a\x9a\xde\x40\xd3\x17\x10\xd3\x09\x2c\xc8\x8f\ \x3a\xd4\x2c\x16\xeb\x88\xb5\xb5\x35\x0b\x87\x66\x3c\xec\x1d\xdd\ \xdd\xeb\xf5\x12\xa2\xa3\x74\xee\x1c\xdb\x3e\x83\xec\xae\x5a\x0f\ \x77\xeb\xe2\x54\x74\x55\xae\x83\xca\x0c\x8e\x12\x3f\x24\x41\xbb\ \x8d\xc8\x9c\x7f\x70\xfc\x7c\x58\x58\x58\x69\xdd\x37\x55\xb2\xf1\ \xb1\x11\xb2\xef\x7e\x97\xc2\xce\xce\xee\x13\x9c\xb2\x7f\x58\x00\ \xd4\xfd\x36\x43\x56\x72\x7c\xe6\xdc\xc8\x8f\x27\x60\xac\x8c\x01\ \x23\x65\x26\xa0\x2c\xd5\x04\x59\xc5\x62\xc0\x2c\x75\xe1\xfc\x96\ \xbf\xca\x00\xe5\x38\x34\x34\xb4\xb4\xae\xb6\x62\x68\x64\x64\x04\ \x54\x0c\xcb\xa0\x49\xfc\xa5\x02\xb7\xae\x06\x4d\x82\x26\xb2\x13\ \x1a\xc8\x93\x46\x46\x46\x2b\x22\x02\x67\x0f\x76\x67\xe1\x15\x2c\ \xa1\x29\xd3\x81\x7d\x3b\x23\x64\x38\xf7\x11\xda\x38\x50\x01\x7b\ \x78\x78\xe8\x52\x8e\x51\xbc\xca\x6e\x54\x97\x0c\xf5\xf7\xf7\xc3\ \x2f\x0c\xc0\xbd\x6e\x29\xf9\xda\x2b\x91\x72\x9f\xc5\x73\xee\xea\ \xeb\xeb\x67\xa1\x7d\xc4\x64\x8e\x84\xf6\x42\x37\xab\xb8\xb7\x5e\ \x9a\xa9\x84\x22\x74\x7e\x6b\x13\x90\xf2\xdb\x20\xf8\x6c\xdb\x38\ \x6a\x41\xe1\xac\x59\xb3\x82\xf0\xca\x1e\x58\xbf\x36\xac\xa9\x42\ \x98\x3f\xd4\xd1\xd1\x01\x0f\xe8\xea\xb8\x03\xd7\x8b\x2e\x28\x7c\ \x97\xba\xc8\xd8\x4e\x86\xd4\x4d\x3a\x8b\x6c\xa3\x2e\xda\x64\x02\ \x98\x46\xed\x73\xb0\xbf\x49\x91\x54\x14\x0f\xa3\xa3\xa3\x2a\x7a\ \x6f\xe7\x92\x28\xc9\xad\xe1\x61\xab\xda\x45\xd7\x05\x23\x52\xa9\ \x14\x28\x5a\xa5\xad\xaa\xdf\x16\x49\x05\xb9\x7f\x77\xf8\x30\xcb\ \xc9\x44\x3a\xd7\x58\x4b\x80\xdf\x88\x45\xc2\x91\xf9\xb4\x8c\x4f\ \xea\xd1\x30\x36\x36\xf6\xe5\x70\x38\x8d\x83\x83\x83\xa0\x62\xa0\ \x1b\x2e\xf3\x92\x94\x99\x99\x99\x50\x59\x59\x09\xf5\xf5\xf5\x2a\ \x6e\x36\xd4\x40\xee\xa5\xc4\x71\x67\x47\x9b\x4e\x57\xa7\x27\x6b\ \xf1\xdd\x44\xfa\xac\x78\x22\x26\x8f\xac\x9c\xb8\x5a\x07\x47\x47\ \xc7\x0f\xbf\xaa\xbc\x3a\xde\xd3\xd3\x03\x5c\x2e\x17\x62\x62\x62\ \x80\xcf\xe7\x43\x72\x72\x32\x08\x72\x04\x20\x12\xf2\xc9\x17\x37\ \x05\xca\xed\xe7\x99\x36\x6b\x6a\x6a\x52\x52\xfd\x2a\x75\x90\x11\ \x1b\xba\x8a\x4e\x7b\x14\x51\x5a\x48\x95\xe4\x15\x81\xbe\x8d\xe9\ \xdc\xb8\xb1\xb4\xb4\x34\x55\x8a\x3d\x3d\x3d\x41\x4f\x4f\x0f\xda\ \xda\xda\xa0\xa0\xe0\x2a\xbc\x1f\xbf\x6f\x1c\xe5\xb9\xcd\xda\xc2\ \xa0\x1c\x5f\x7b\x17\xa1\x2a\x26\x1b\x61\xd0\x07\x7a\x52\x4e\xcd\ \x90\x1d\x48\xfe\xae\x2d\x3e\xb7\x0b\x52\x9f\x1d\xcc\xbb\x9c\x04\ \xe9\xe9\xe9\x90\x98\x98\x08\x67\xcf\x9e\x05\x1e\x8f\x07\x39\xd9\ \x39\xd0\xdc\xdc\xac\xa2\xb3\xbd\x89\x0c\x5a\xe9\xf7\x13\x6e\x55\ \x0e\x7d\xca\x6d\x68\xc1\x99\xf8\xaa\xb1\x06\x04\xa3\xd3\x4f\x57\ \xaf\x5c\xdc\x98\x92\x10\xd0\xd3\x79\x6d\x99\x02\x84\x96\x30\x96\ \xa3\x09\x82\xd3\xda\x90\xce\x3d\x09\xbc\xcf\x93\xe1\x9d\xd8\x97\ \x15\x27\x8e\xee\x57\x66\x65\x9c\x51\x36\xd4\x57\xe1\xde\xd7\x81\ \xf8\xa6\x18\x7e\x1a\xb8\x07\x27\x8f\xed\x1d\xc4\xbb\x9e\x8c\x9f\ \xb3\x9c\xd0\xca\xb1\xdb\x61\xa0\xe3\xdd\x48\xf9\xc9\x83\x4b\x7f\ \x6c\xc8\xf5\x91\x83\xc8\x01\x3a\xd3\x66\x02\xff\x4d\x02\x4e\xef\ \x50\x27\xfb\x2e\x59\xc0\xdd\x14\x02\x72\x12\xcc\xc0\xdf\xd7\x4d\ \x86\x32\xdc\x80\x1a\x70\x6d\xee\xdc\xb9\xd5\x21\xab\xbc\xfa\x2b\ \x8a\x3e\x21\x45\x22\x11\x50\x74\x75\xfe\x08\x5f\x5e\xbd\x30\x8a\ \x8a\x97\xc6\x60\x30\xdc\xfe\x31\x0b\xb8\xda\x08\x3f\x5f\x0f\x71\ \x4a\xfc\xa2\x1e\x59\x39\x93\x84\xe2\xd9\x50\x83\xfa\x1f\xbb\x59\ \x9d\x0c\x7d\x4a\x7f\xc8\xcb\x9d\xd1\x84\x6d\xd8\xdd\xb6\x3c\x77\ \x52\x91\xa5\x0b\xe7\xf6\x10\xe0\xb7\xc4\xf0\x0e\xbe\xfa\x01\x7d\ \xb2\x43\x9c\xec\x18\xf1\x58\xa8\xaa\x4e\x1d\x8d\x1a\x2e\x2b\xb9\ \x02\xc5\xc5\xc5\x20\x91\x48\xa0\xa5\xb1\x5a\x89\x41\xf0\x31\xc8\ \x55\x68\xa7\xf3\xa7\x20\xa8\x92\xeb\xe7\xeb\x2e\x6e\xcd\x73\x18\ \x85\xab\xb3\x40\xf8\x0e\x01\x3b\xc3\xa7\x2b\x23\x02\x0d\x7a\x2d\ \xcc\xf4\xae\xa3\xc9\x39\x2b\x2b\xab\x92\xf3\x6f\xb3\x06\xfb\x4a\ \x56\xc0\xc7\x7b\xa7\xc3\xce\xb5\x3a\x7d\x38\x9e\x82\x6c\x46\xec\ \xe8\x8e\xc8\x02\xf1\xc1\xda\x90\x1e\xb0\x7c\x51\x6f\x7e\xd6\xbb\ \xca\xbc\xbc\x3c\x10\x0a\x85\xd0\xfe\x83\x84\x5c\x1d\xe4\xdf\x8e\ \x5b\x72\x10\x6d\x8c\x7e\xb7\x25\xaa\x92\x9b\x61\x33\x0c\x97\xd5\ \xe0\xfc\x01\x03\x32\x24\xc0\xa0\x13\x55\xad\x10\xa7\xce\xe0\xef\ \x71\x2a\x85\x27\xa2\x99\x5d\xf2\x4a\x2f\x28\x4f\x62\xc3\xde\x0d\ \xda\x03\x38\x97\x81\xec\x43\x98\xbf\xa9\x68\xea\xb4\xb0\xd8\xe1\ \x01\x3c\x88\xd9\x10\x1d\x3f\x14\x26\xcf\xbe\x7c\x01\xb2\xb3\xb3\ \xa1\xbd\xad\x19\x9e\x8b\x0a\xef\xc5\xf1\x24\xba\x74\xff\x12\xc4\ \x6a\x0e\xbb\x11\xb2\xa7\x43\x4b\xaa\x07\x2c\x5b\x68\xd6\x8b\x4e\ \xaf\xe0\xf0\xeb\x98\xb2\x37\xb0\x03\xe6\xf3\xdf\xb7\xbd\x3f\x5c\ \xce\x86\xa6\x8c\x40\xd8\xb5\x76\xc6\x18\xce\x17\xe1\xfc\x1b\xc8\ \x02\x64\xe6\xdf\xd4\x0e\x4a\x68\x96\x51\xd9\xf0\xf7\x5d\xd0\x9b\ \xf9\xe9\x7e\x65\x6a\x6a\x2a\x48\x6e\xd5\x41\xec\xe1\x2d\x83\x28\ \xdd\x31\x74\x91\x53\x27\x96\x7b\xb3\x25\x43\xd8\xef\x75\x17\x46\ \x40\xee\x19\xf3\xb1\x35\x41\x0e\xf7\x51\xd3\xbf\x7b\xe6\x69\x66\ \x6b\xfd\x25\x33\xb9\xbc\x84\x0d\xdf\x5e\x0c\x85\x17\x83\x35\x48\ \x96\xa3\x81\x98\xbe\xdb\x7e\x0f\x91\x51\x35\x7a\xbf\x6d\x0d\x0d\ \x0d\xf7\xa0\x2e\x94\x46\xef\x08\x18\x4a\xe3\x9e\x06\x61\x51\x0a\ \x25\xdd\x54\x1b\xb7\x5c\xf5\x0d\x67\x67\xe7\x98\xfd\xeb\x66\x8c\ \xb7\x70\x59\xd0\xfb\x45\x10\xc8\x85\x2e\xa0\xfc\x4a\x1f\x94\xd5\ \x06\xd0\x97\xbf\xfc\x57\xe7\x5e\xee\x4f\x34\xe2\x0b\x49\xf4\xdd\ \x36\x99\xe0\xbd\xd6\xa0\xfb\x84\x25\xd8\xce\x9d\xc7\xb3\xd6\xb3\ \x39\x72\xa9\x0c\x6f\xc5\x17\x38\xf6\x2c\x62\x48\x19\x31\xdc\x98\ \x66\x89\x5b\x23\x66\xca\x0f\x45\xaa\x01\xef\x10\x03\x04\xb1\xa6\ \x2a\x92\xa3\xf5\xe0\x40\x94\x9a\x92\x76\xfe\x21\x12\x89\x58\x4d\ \x52\xd1\xa6\xd1\xf2\x6b\xad\xa5\xa5\x15\x81\xaa\x19\x87\x7f\x47\ \x23\xde\x0f\xb2\xa8\x41\x9f\xe0\xe0\xc5\x2c\x9d\xcf\x9e\x0b\xd6\ \x95\xec\x5a\xa7\xd3\x8e\x74\x6c\x0a\xd6\x91\x1a\x33\x88\x8b\x38\ \x77\x8a\x8e\xd8\x9a\x78\xf4\xf6\x5b\x83\x96\x63\xaa\x6f\x70\xa2\ \x57\xaf\xfe\xc7\x49\xea\x54\x73\xe8\x1e\x6f\x2f\xb2\x87\xd6\x72\ \x4f\x3a\x95\x8f\xa3\xf7\x57\xa7\xfd\x4d\xfb\xbb\x49\x5d\x7a\x8f\ \xad\x68\x19\x9d\x8d\x68\x3d\x52\x05\xfb\x3f\x3c\x8f\xe5\xbf\xe3\ \xa9\xe4\x67\x2f\x79\x73\x70\x22\x76\x00\x17\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x7e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x06\x45\x49\x44\x41\x54\x48\x89\x9d\x95\x7b\x6c\x95\x77\ \x19\xc7\x3f\xbf\x73\xde\x73\xeb\xe5\x9c\x5e\xe0\x40\x69\xbb\xb2\ \x5e\x28\xe5\x0e\x45\x1c\x63\x83\x11\xc9\x14\xc7\x60\x5b\x34\x38\ \x63\x66\x22\x53\x11\x63\x44\x37\x35\x26\xc6\x7f\x66\x48\x34\x26\ \x6a\x36\x5d\x30\x64\x71\x19\xc8\x28\x0e\xc4\xae\x60\x69\x59\xa1\ \xe1\x3a\x2a\xd4\xf5\xc2\xb5\xd0\xd3\x3b\xbd\x9d\x9e\xeb\x7b\xf9\ \xbd\xef\xfb\xf3\x1f\x34\xa8\x98\xcc\x3d\xc9\xf3\xef\xe7\xf3\xe4\ \xfb\xc7\xf3\x15\x4a\x29\x3e\xc9\xbc\xfd\x43\x51\x5c\x51\x1a\xda\ \x3e\xbb\x6c\xc9\xf7\x95\xeb\xe8\x23\xb1\xce\x57\x8f\xb6\xbb\x6d\ \x5f\xdd\xc4\xd2\xb4\xc5\xe0\xa6\x57\xd5\x38\x80\xf6\xff\x82\xff\ \xf0\x23\x11\x2a\x29\x60\xeb\xb2\xfa\xb5\xdf\xa9\xa8\x7b\x6e\x5d\ \x51\x71\x2d\xae\x27\x48\x76\xf2\xd9\x9f\x6f\x79\xb2\xb8\x2f\x53\ \xf0\xe4\x0b\xc1\x64\xe3\x7e\x21\xc4\xd7\x94\x52\xf2\x63\x0b\x84\ \x10\xe2\xf8\x1e\xd6\xd5\x56\x45\x5f\x99\xbf\x62\xc7\x33\xd1\x79\ \x6b\x7c\x22\x79\x8d\xcc\xdd\xc3\xa8\xbc\xc5\x8c\xfb\xbf\xb8\x3c\ \xbf\xfe\xc5\xe5\x95\xb5\x9f\xe6\xc6\xe1\x13\xf3\x40\x86\x80\x87\ \x0b\x3a\xde\x14\x1a\x8a\xc0\xea\x5d\x2a\x03\xd0\xf8\x9a\xa8\x3c\ \xf3\x46\xf1\x37\xcb\x17\x6e\xfa\x56\xd9\x82\x17\xf3\xbd\xd9\x3e\ \xec\xe1\x26\x46\xc6\xa7\xe9\x9f\x09\x23\x8b\xca\x59\xf5\xec\x2e\ \xc2\x91\x08\x72\xea\x12\x77\x86\xad\x2e\xc0\xfb\x5f\x11\xfd\xe4\ \x2b\xc2\xf7\xc4\x22\x9e\x88\xce\x5f\xbe\x53\xf3\x87\x0b\x9a\x7e\ \x26\xf6\xf9\x7c\x62\x56\xcd\xaa\xad\xaf\x94\xd5\x6c\xa9\xca\xf5\ \xf9\xb1\xee\xb5\x12\x9f\x99\xe4\xc6\x10\xa4\x73\xd6\x32\x6f\xc5\ \xe7\xa8\x5e\xb0\x08\x5c\x89\x02\xe2\x77\x0e\xd9\xad\x97\x9c\x0f\ \x00\x09\x20\x94\x52\x08\x21\xc4\xb1\xd7\x58\x38\x2b\x3a\x7b\x77\ \xc5\xb2\x1d\x2f\xcd\x9e\xb7\x3a\x28\xac\x19\xe2\x89\x61\xdd\x17\ \x88\x68\x91\x48\x89\x4f\x4d\x5f\x65\x66\xa2\x8f\xc1\x29\x41\x5f\ \xba\x8a\xea\x95\x2f\x50\x5a\xb5\x84\x70\xae\x1f\x5d\xd7\x51\xca\ \x8b\x2b\xbc\x74\xbf\xbb\x66\x7c\xf8\xef\x9d\x57\xfd\xc2\x17\xd0\ \xa2\xf2\x07\xa2\xf5\x97\x62\xa5\xc7\x17\x5e\x5b\x51\xf7\xf4\x9e\ \x92\x05\xdb\x23\x41\x6b\x18\x95\xba\x89\x47\xd3\x20\x10\x45\xd9\ \x3a\xfa\xcc\x00\x77\x46\x52\x0c\x66\x4a\x09\x94\x6d\x66\x79\xfd\ \x06\x42\xb9\x21\x5c\xdb\x42\x4a\x89\xeb\x7a\x49\x26\x27\x18\xe9\ \xda\x8f\xd1\x7b\x50\x2e\x5c\xbf\x43\xcb\x8f\x56\x88\x0b\xef\xec\ \x8a\x69\x91\xa2\x92\xd7\xa3\x8f\x6e\xae\x7f\x64\xc1\xb6\xa0\x1a\ \x6f\x45\x39\x3a\x1e\x6f\x00\x29\x25\xb6\x11\x63\x62\x32\xc9\xb5\ \xd1\x20\x9e\x39\xdb\xa8\x7b\x6c\x33\x25\x25\x51\xa4\x65\x60\x19\ \x59\xa4\xed\x60\x18\x16\x77\x7b\x9a\xe9\xee\x38\x46\x6d\xc5\x1c\ \xd6\xef\xd8\xeb\xf3\x05\xe3\xa4\xa7\x53\x28\x22\xb3\x34\x8f\xd7\ \x57\xe5\xf7\x79\x82\xe9\xa1\x76\x42\x9e\x14\xc2\x9b\x8b\x61\x5a\ \x24\xd2\x3a\xd7\x06\x1d\xd2\x39\x8f\x51\xbd\xfe\x19\xca\xca\x2b\ \xf1\x0a\x07\x23\x9b\xc6\x51\x02\xcb\xb4\x18\x1d\xe8\xa2\xe3\xf4\ \xef\x40\xf9\xf8\xcc\xd3\x5b\xa9\xae\x8a\x20\x93\xed\x4c\x8f\x19\ \xdc\xbc\xf0\x11\xbd\x03\x37\x0f\x69\xca\x75\x3d\x42\xd9\x38\x2e\ \x58\xca\x83\x2d\x2d\xee\x8c\x18\xf4\xa7\xca\xa9\x58\xf1\x05\x56\ \xd6\x2c\x21\xe0\xf7\x22\x2d\x13\x43\x4a\x6c\x57\x23\x3e\xd5\xcf\ \xd5\xd3\xfb\x18\x1f\xe9\x61\xe9\x8a\xc7\xd9\xb0\xbe\x1e\xd7\x9a\ \x22\x11\x6b\x24\x9e\x01\x3d\x91\xc3\xb5\xcb\x2d\x83\xef\x5f\xe1\ \x3d\x0d\xc0\x55\x60\x49\x85\x61\x59\x0c\x8c\x26\xb9\xeb\x3e\xc5\ \xc6\xe7\x76\x92\x17\xd2\x90\xb6\xc4\xd0\x4d\x2c\xdb\xc1\x34\x2c\ \xae\x77\xbc\xc3\x8d\x8f\x5a\x29\x2d\xab\xe1\xa5\x97\xbf\x4d\x24\ \x34\xc4\xcc\xd0\x71\x46\x46\x06\x11\xde\x10\xc1\xf0\x62\xae\xb4\ \x1d\x4c\xef\x6b\xcb\xfc\xea\xf2\x2d\xba\x35\x57\x81\x6d\x3b\x18\ \x52\x92\x8c\x67\x68\xbb\x3c\xca\x86\x2f\x7f\x8a\x82\x70\x90\x6c\ \x26\x83\xe3\x80\x61\x5a\x0c\xf5\x5d\xe0\xea\xd9\x03\xf8\x7d\x41\ \x3e\xbb\x79\x0b\xd5\xb5\xc5\xe8\x63\xe7\xe8\xbf\x13\xc3\xb4\x6c\ \x14\x5e\xfc\x79\x95\x4c\x75\x7f\xc8\xdf\x7a\x6e\xb4\x5d\xbe\xc5\ \x49\x60\x52\xb3\x6d\x17\x4b\xda\x24\x93\x26\x7d\xfd\x53\x64\xc4\ \x5c\xf2\x0b\xa2\x98\xa6\xc4\xb2\x3d\x4c\x0c\x75\xd1\x79\xb1\x81\ \xf8\xf8\x5d\x56\x3f\xbe\x99\x35\xf5\x95\x08\xd9\xc7\x48\x77\x03\ \x99\xac\xc4\xb4\x24\x8e\x23\x09\x86\xcb\x48\xde\x4b\xd0\xf0\x97\ \xb6\x9e\xbd\x2d\xfc\x02\x18\x05\x74\x4d\x3a\x0a\xc3\xb4\x89\xa7\ \x4c\x7a\x6f\xdf\x43\x9b\xb3\x84\x70\x64\x16\x89\xf8\x04\x9d\xe7\ \xff\x48\xec\xfa\x39\x1e\xa9\x78\x84\xcf\x7f\x7d\x37\x05\xc1\x61\ \x12\x03\x87\x89\xc7\x13\x64\x75\x13\xdb\x96\x64\x32\x29\xfc\xa1\ \x42\x84\x98\xcb\xd0\x95\xb7\xf5\xbd\x27\xf5\xdf\x98\x92\xbb\x40\ \x52\x29\xa5\x34\x69\x29\x0c\x43\x12\x4f\x1a\xc4\xee\x19\x2c\x5d\ \x54\x81\x50\x16\xef\x1f\xf8\x31\x01\x9f\x60\xdb\xf6\x97\x29\x2d\ \xcf\x41\x1f\x6e\x62\x2c\x36\x42\x3a\x63\x91\x48\x26\x40\xb9\x68\ \xbe\x20\xbe\xdc\x72\x72\x72\x4b\xe9\x3f\x77\x82\x33\x57\x63\x47\ \x93\x3a\xed\xc0\x94\x52\xca\x06\xd0\x4c\xe9\x92\xd1\x25\x93\xd3\ \x12\x6f\xa0\x90\x39\xa5\x35\x9c\x6a\xda\xc7\x9d\xbe\x5e\x76\x7f\ \xf7\x1b\x94\xe4\xf5\x30\xd4\xd9\x4d\x36\x9b\x41\x08\x0d\xdb\x96\ \x58\x86\x81\x37\x27\x4a\x7e\xfe\xa3\x88\x89\x31\x9a\xdf\xfb\x7d\ \xe6\x50\xfb\xf4\xc9\x8b\xb7\xf9\x35\x70\x0f\x30\xff\xf9\x7e\x34\ \xdd\x52\x08\x5d\x32\x35\x63\x61\x11\xc6\x36\xa6\xe9\xb8\xf4\x01\ \x9b\x9e\x5a\xc5\xe8\xad\x23\x64\xc3\xf9\x48\xdb\xc1\x34\x4d\x5c\ \x57\xc7\xa3\xe5\x90\x17\x5d\x8e\x13\xcf\xd2\xd3\xd6\xe8\xec\x3f\ \xd6\xdb\xfb\xd7\x1e\x0e\x65\x4d\x5a\x80\x7e\x20\xa5\x1e\x28\x19\ \xcd\x30\x5c\x54\x56\x92\xd2\x5d\x24\x7e\xae\x9c\x6f\x60\x41\x75\ \x31\xb3\x82\x23\x44\xc2\x61\x10\x1e\x92\xc9\x38\xae\xf2\x10\x0c\ \x97\xe3\x15\x05\x8c\x76\x7e\xa8\xda\xda\x2f\x8d\xbe\xd9\x6c\x1d\ \x9d\xc9\xd2\x0c\xdc\x06\xc6\xee\xc3\x9d\x07\x1f\xa8\x66\x58\x0a\ \xd7\x90\x38\xca\x4f\x2a\x99\xa0\xb6\x6a\x2e\x0b\x2b\x04\x79\x41\ \x17\xc7\xb1\x71\x1c\x45\x30\x52\x8e\x10\x85\x98\xa3\x03\x9c\x69\ \x69\x48\xfd\xb6\x39\x75\xea\xd6\x18\x7f\x02\x7a\xef\x83\x67\x00\ \x43\x3d\xa4\x1e\x35\x47\x81\xab\x04\xca\x4c\x53\x56\x68\xb1\xac\ \xae\x80\x90\x88\xe1\x0f\x14\x92\x36\x20\xaf\xa8\x0e\x73\x74\x94\ \xc1\xae\x46\xf7\x8d\xc3\xb7\x3a\x4e\xdf\xa4\xc1\x92\x5c\x04\x86\ \x80\x29\x40\xff\xcf\xab\xff\x4d\x10\xf0\x7b\xc9\xc9\xd1\x28\x0c\ \x1a\x2c\x5d\x59\x8d\x9b\xee\x21\x2f\x5a\x8e\xed\x99\x47\x20\x10\ \x22\x76\xb6\x85\x23\xcd\x57\x06\x0e\x9c\x75\x8e\xa6\x4c\x8e\x03\ \x31\x60\x1c\x48\x2b\xa5\xe4\xff\x02\xff\x4b\x10\x9f\x9c\xec\x96\ \xd9\xee\x95\x75\xab\x9f\x2f\x34\xac\xeb\x44\x8a\x4a\x08\xe6\xd4\ \x92\x88\xf5\xd2\x72\xe2\xd4\xf4\xbb\xe7\xb3\xad\xdd\x03\x1c\x05\ \xae\xdd\x8f\x23\x01\x98\x0f\x8b\xe3\xa1\x82\xb7\x9a\xdc\x3f\x57\ \x17\x8f\x8b\x9d\x8b\xed\x8d\x73\x2b\x37\x10\x4e\x0f\xd2\xd1\x74\ \xd0\x7a\xfd\xc8\xc0\xb9\xce\x01\x9a\x4c\xc9\x59\x60\x04\x98\xbe\ \x1f\x87\xfb\x71\xc0\x0f\xce\xfc\xb9\x45\x3c\xff\xd6\xf7\xf2\xae\ \x37\xfe\x74\x91\xfa\xd2\xba\x60\x57\xae\x9f\x3d\xc0\x46\xa0\x06\ \x28\x00\x34\xa5\x14\x9f\x64\xff\x01\x38\xa4\x6e\x5f\x55\x49\x82\ \xf9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x73\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x05\x49\x44\x41\x54\x48\xc7\xdd\ \x54\xdd\x4e\x13\x51\x10\xe6\xd1\x7c\x0c\x1f\x65\x2f\x35\xd1\x98\ \x78\x65\x62\xc2\x03\x58\xbd\xe1\x52\xb4\x6a\xa9\x5d\x28\xa9\x12\ \xf6\x08\xc5\x60\x69\xbb\xfd\xd9\x2d\xdb\x6e\x89\x50\x10\xb9\x72\ \x77\xce\xe7\xcc\x9c\x10\xa3\x12\xac\x29\xeb\x85\x17\x93\x33\xff\ \xdf\xd9\x6f\x76\xce\xd2\xad\xdb\x77\x3c\x16\x53\x90\x78\x4b\xa2\ \xbc\x4b\x80\x72\x8b\xf0\xa2\x95\xe3\xa1\x0f\x54\x7b\xce\xbe\x5f\ \x21\xbc\xed\x03\xf5\x18\x78\x50\x05\xd6\x42\xf6\xb7\x09\x77\xcb\ \x84\xd7\x6d\x8b\xd5\xfd\x0c\xf7\x2a\x60\x9d\x34\x5f\x6a\x25\xff\ \xf9\xfe\x37\x2c\x6f\x13\xa4\xb7\x02\x34\x12\x57\x5c\x8f\x80\x37\ \x5d\x8b\xf5\xa1\x4b\x92\xb3\xcc\xa0\x3e\x9f\xab\x6c\x4b\xac\xda\ \x23\xbd\x40\x6d\xc0\xb9\x1d\x8b\x97\x9f\x32\xbc\x3a\x70\x17\x11\ \xbf\x5e\x82\x6d\xe9\x79\x09\x50\x2c\x45\x00\x0a\x95\x9f\x8c\x1b\ \xfa\x1a\xef\x3a\x00\xf3\xf4\x23\xb0\xc1\xfc\xfa\xcc\xf5\xe3\x4d\ \xa7\x57\x3b\x39\x96\x1b\x3c\xa3\x81\xb3\x45\xaf\x85\x84\xb5\x76\ \x86\x47\xbe\x55\x7f\x9d\xe7\x54\x6a\x5a\xe5\xfd\x5a\x80\xdd\x23\ \x69\x64\xd1\xe0\x81\x6f\xf4\x2d\x36\x87\xac\xc7\x02\x98\xab\xdf\ \x0f\x73\x8d\x89\xaf\xd6\xcd\xd4\x7e\x3f\x92\x9a\x1c\x52\xfb\x27\ \x80\x62\x29\x2a\x64\xc8\xff\x64\x93\x77\x53\xc2\xce\x04\xd8\x8a\ \x08\x2b\x4d\x60\x6f\x0a\x04\x87\x84\x67\xc6\xe9\x66\x6c\xf1\x84\ \x37\x73\x2b\x62\x9e\x53\xa8\xdf\x8c\xa1\x35\x25\xf1\x0f\x73\x04\ \xbc\x58\xa5\xc0\xa2\x99\x4a\x8c\x37\x3b\xfc\xb1\x68\x26\x3c\x65\ \x27\x37\x14\xd9\xe3\x84\x60\x44\x9a\x28\xfa\xce\xd8\x15\x7d\x48\ \xac\xda\x97\x71\xf1\x6f\xc7\x39\x37\xcf\x34\xd6\x4c\x2d\xfb\x5c\ \x1f\x89\x75\x66\xff\xe5\x26\xff\x2a\x73\x7e\x9d\xb7\x08\x80\xe9\ \xcf\x98\xcf\xcf\xb2\x68\xc0\xc1\x11\xa1\xc7\xdc\x56\xf8\xa9\x6e\ \x4d\x09\xd1\x97\xdf\x17\xeb\xaf\x01\x26\x17\x40\x2b\xcd\xd1\x96\ \xe6\x27\x16\xbd\x63\x8b\x2e\x03\x0e\x18\x68\x74\xbe\x38\x40\xb1\ \x14\x15\x32\xe4\x05\x7f\x5b\x6f\x1e\x00\x33\x65\xde\xc7\xe7\xb2\ \x5c\xcc\xf3\x19\x30\x3c\x21\x04\xb1\xd5\x53\x6c\xc3\xaf\x67\xc4\ \xc3\x9f\x7c\xe5\xa5\x8b\x5d\x8e\xd4\x5c\x35\x8f\x2b\x01\xd2\x0b\ \xcb\x45\x56\x41\xe4\x54\x39\xb5\x88\x67\x84\x84\xff\x9c\xe4\x4c\ \x00\x48\xcf\x43\x8d\x11\xa4\x66\x5e\x80\x1b\xa5\xe8\x3b\x80\x6d\ \x3c\xea\x2d\x2a\x08\xd7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x04\xca\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x5c\x49\x44\x41\x54\x48\xc7\xc5\ \x56\x0b\x4c\x5b\x05\x14\xad\x4d\x66\x98\x06\xe2\xe6\x67\x31\x96\ \xb1\xd2\x82\x9b\x08\x1d\x4a\x65\x6d\xdc\x84\x39\x4a\xc9\x02\x59\ \x40\xa8\xa9\x33\x5b\xda\xe1\x30\x8e\xb1\x8d\x35\x08\xc6\x91\x82\ \x43\x9c\x13\xdc\x4f\xc5\xec\x47\x45\xa0\x15\x32\xa9\x02\x29\x43\ \x03\xa3\xed\xa0\xa5\x6f\xb4\xae\x2b\xa5\x19\x6c\xb2\xa8\x2c\xc2\ \x8a\x25\xc6\xd8\x8d\xeb\xbd\xe6\x2d\xa2\xae\x90\x98\xa9\x4d\x4e\ \x5e\xfa\xfa\xee\x3d\xef\x9e\x7b\xce\x7b\xe5\x00\x00\xe7\xdf\x04\ \xe7\x7f\x23\xc0\xcf\x52\x84\x38\x2d\x2d\x6d\x8f\x58\x2c\x7e\x87\ \xcb\xe5\xbe\x81\xdf\x77\x20\xf2\x10\x12\xc4\x32\x04\xf7\x1f\x11\ \xe0\x67\x75\x5c\x5c\x5c\xa1\x56\xab\x6d\xed\xec\xec\x1c\x77\x3a\ \x9d\x37\x7d\x3e\xdf\xac\xcd\x66\xbb\x61\x30\x18\xdc\x25\x25\x25\ \xc6\xd8\xd8\x58\x0d\x4b\x74\xef\x7c\x44\x77\x6a\x2e\x55\xa9\x54\ \x1f\x9b\x4c\x26\x8f\xd7\xeb\x85\x81\x81\x01\xa8\xab\xab\x83\x9a\ \x9a\x1a\xd0\xe9\x74\x30\x38\x38\x08\x2e\x97\x0b\x9a\x9a\x9a\x7c\ \x39\x39\x39\x0d\x78\x7d\x3a\x62\x71\x28\x92\xbf\xdd\x39\x35\xb7\ \x58\xad\xdf\x31\x0c\x03\x25\x6f\x96\xff\x9a\xb9\x43\x33\x9d\x5d\ \x79\x38\xa8\xf8\x50\x0f\x59\xda\xf7\x03\xaf\xec\xaf\x99\x6c\xd0\ \x7f\x16\xc4\x69\x40\x6f\x30\x5c\x97\xcb\xe5\x4d\x58\x97\x12\x8a\ \xe4\x4f\x9a\x93\x2c\x74\xe7\xd4\x7c\xcb\xde\xb2\x1b\xcf\x14\xbf\ \x35\x9c\x74\xb0\xc1\xb7\xa9\xde\xf4\xcb\xe6\x56\x33\x28\x5b\x2d\ \xb3\x09\x07\x9b\x46\x5f\x38\xda\x38\x52\xdf\x71\xd6\xef\x70\x38\ \xa0\xa2\xa2\x62\x94\xc7\xe3\x69\xb1\x5e\x48\x72\xcd\x47\x20\x26\ \xcd\x49\x16\xba\x73\x6a\x2e\x3a\xf0\xc9\x80\xec\x78\x87\x53\x63\ \x72\x4c\x54\x9e\xbb\x38\x53\xd8\xe9\x98\x4e\x39\xdd\x3d\xba\xb2\ \xae\xeb\x7c\x7e\xf3\x59\xb7\xd9\x36\x18\x6c\x69\x69\x81\x8c\x8c\ \x8c\x6e\xac\xcf\x44\x84\xff\x75\x8a\xb9\x04\xd9\x46\xa3\xd1\x45\ \x9a\xcb\x0b\x76\xff\x20\xa8\x3c\x69\xcd\x6b\x30\x5d\xd0\xf4\xb8\ \x5d\x6f\x33\xe3\x9e\x2a\xe6\xdb\xcb\x55\x8e\xab\x57\x76\x5a\x46\ \x2f\x89\xda\x3c\x5f\xc5\xeb\x99\xae\xe3\x3d\xb6\xef\x49\x2a\xa5\ \x52\xe9\xc3\xfa\x22\xc4\xc3\x88\x45\xa1\x08\x5e\x45\x69\xa6\x68\ \xa1\x92\x3d\x15\x23\x31\xef\x36\xf7\xad\x7e\x4e\x05\xcf\xe7\x96\ \xc2\x86\x17\xf7\x41\x6a\x6e\x19\xa4\x2b\xcb\x61\x5d\xf6\xeb\xc0\ \x79\x2c\x0b\x12\x4d\x57\x3a\xf6\x76\x31\x2e\xb7\xdb\x0d\x05\x05\ \x05\xd3\x58\x5f\x85\xe0\x21\xc2\x42\x11\x94\xa0\x15\x6f\x91\x5b\ \x44\xe5\xc7\x98\xc7\x0f\xb7\xf5\x2e\x5e\x91\x09\x4b\x13\x55\xb0\ \x22\x75\x37\x08\x36\x14\xc3\xf2\x94\x5d\x10\x9e\x98\x0f\x9c\xd8\ \x97\xe1\xe9\xde\x89\x2f\xb2\xda\xbf\xe9\x1b\x1e\x1e\x26\x82\x5b\ \x58\x7f\x04\xc1\x47\xdc\x17\x8a\xe0\x35\xbb\xdd\x3e\x45\x56\x4c\ \xdb\x57\x33\xb2\xf2\xd8\x97\x3d\x9c\x47\xe5\xc0\x11\x6e\x06\xce\ \x2a\xf5\x1f\x78\x02\x11\xa7\x86\x24\xf3\xa4\xb1\xcc\xe2\x1b\xf2\ \x78\x3c\xa0\x50\x28\x68\x82\x03\x88\x68\xc4\xfd\xa1\x08\xf2\x28\ \x44\xe4\xf3\x82\xea\x43\x13\x34\x01\xff\xc4\xc5\x7e\xbe\xe1\xc7\ \x7e\xc1\x99\x80\x55\xd0\x16\xb0\x44\x9f\x09\x9c\x17\x1a\x03\x66\ \x71\xff\x4f\x6d\x34\x81\xde\x79\xf9\x1a\x39\x09\xd3\x4e\x3b\x28\ \x5d\x68\x02\x09\x25\x94\x42\x44\x3e\xcf\xfb\x40\x7f\x29\xea\xa8\ \xdd\x1e\x79\xea\x9a\x83\xf7\xa9\x7f\x88\xd7\x3c\xc3\x20\x2e\x08\ \x3e\x0f\x58\x93\x2c\x53\x46\x4d\xff\x18\xe3\x1c\xf6\x06\x6b\x6b\ \x6b\x21\x21\x21\xa1\x17\xeb\xb7\x2e\xb4\x83\x65\x14\x7f\x4a\x28\ \x39\xa3\xbe\xa3\xdb\xaf\x6e\xfc\xda\x13\x53\x3f\x74\x2e\x4a\x37\ \x6e\x8b\x6c\x98\x74\x08\x5a\xa7\xac\xf1\xa6\x09\x13\x35\x6f\x67\ \xdc\x3f\x9b\xcd\x66\x90\xc9\x64\xfe\x88\x88\x88\xd3\x58\xbf\x76\ \x21\x17\x71\x69\x0a\x8a\x3f\x25\x94\x46\x27\x9f\x93\x15\xc9\x2d\ \xb4\x50\xd2\x9c\x64\x71\x7a\xbc\x41\x6a\xae\xde\xb6\x6d\x56\x2a\ \x95\xce\x60\x5d\x3b\x82\xc2\x26\x0a\x99\x03\x96\x84\x1e\x5c\xe9\ \x14\x7f\x4a\x28\x85\x88\xa6\x21\x2b\x92\x5b\x68\xa1\x44\x4c\xb2\ \xe0\x35\x7e\x89\x44\x12\x48\x4e\x4e\x86\xcc\x35\xfc\x99\x5d\x9b\ \x56\x5d\xc7\xda\x9d\x94\xe8\xf9\x08\xb8\xec\x33\x25\x85\xe2\x4f\ \x09\xa5\x10\x91\xcf\xc9\x8a\xe4\x16\x5a\x28\x69\x8e\xb2\x9c\x0a\ \x0b\x0b\x1b\x48\x7d\x32\xea\x66\xd9\xc6\x18\xf8\x68\x7b\x12\x94\ \xbf\x94\x30\x4e\x6e\x9c\x4b\x72\xa7\xa7\xe9\x6d\x12\x21\x1b\xff\ \x22\x36\x44\x47\x58\x2b\x96\xb2\x0b\x5d\x77\x0f\x87\x63\x5d\x1b\ \xb9\x24\x50\xf8\xec\x72\xa8\xce\x8d\x03\x5d\xd1\x1a\xd8\xbf\x35\ \x71\x6c\x2e\x49\xa8\xf7\x01\x97\x95\x2b\x9c\x5d\x1c\x8f\xb5\x60\ \x34\x7b\xe4\xb1\xe7\x45\x48\xd2\xb7\x3e\xfa\xa1\x80\x66\x3d\x1f\ \xde\x53\xc6\x43\x63\xb1\x14\xaa\xd5\x4f\xfd\x4e\xb2\xe0\x2b\x93\ \x25\x5a\x44\xd6\x23\x7f\x53\x88\xd8\x63\x18\x7b\x9e\x7e\x17\x22\ \x49\x67\x1a\x7f\xc9\xd5\x52\x99\x00\x0e\x6d\x11\xc1\x76\xb9\xd0\ \x8d\xe7\x15\x77\xed\x9d\xcc\x92\xb4\xc8\x85\x0f\x8e\x6d\x8c\x7f\ \x84\x9a\xe7\x23\x1e\xb8\xab\x2f\x7d\x76\x67\xa4\xbd\xe2\x76\xf3\ \xff\xe4\x5f\xc5\x6f\x26\x4d\xee\x1d\xf0\xc3\x08\x75\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\x3d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xcf\x49\x44\x41\x54\x48\xc7\xb5\ \x95\x6b\x48\x53\x71\x18\xc6\x57\x14\x91\x96\x86\x99\x05\x21\x18\ \x5d\x66\x86\xcd\x20\x35\xad\xd4\x50\x22\x32\xc5\xc4\xb2\x28\x19\ \x5d\x21\xac\x6c\x50\xe1\x44\x53\xba\x9a\x20\x5e\x90\xca\xc4\x69\ \x5e\x98\x95\x25\xc7\x26\xa1\x32\x1d\xc7\xeb\x72\x35\x6c\x38\xcb\ \x39\x8d\x5a\x08\xae\x16\x15\xc2\x3e\x08\x4f\xef\x9f\xe9\x97\x30\ \xdd\x99\x36\x78\x18\x3b\xff\xb3\xe7\xb7\xf3\xbc\x97\x89\x00\x88\ \xfe\xa7\xe6\xbc\x21\xea\x58\x4e\x3a\x49\xe7\x84\xd2\x05\x03\xe8\ \x4b\x31\x59\x25\x9c\x79\xf4\x37\x30\xf2\x0b\xf8\xf0\x1d\x18\xb0\ \x3a\x34\xf8\x0d\x18\xfa\x01\xb0\x33\x26\x06\x11\x89\x44\xee\x42\ \x01\x5b\xcf\x67\x29\x8c\xc5\x75\xbc\x45\x3b\xf2\xd3\xae\xff\x0a\ \xf4\x8c\x3a\xf4\xf6\x8b\x03\xc4\x75\x9b\x6c\xec\x7c\x47\xf4\xe9\ \x72\x02\xf8\x0a\x8e\x68\x57\x5c\x9a\x64\xe7\x81\x0b\x57\xf7\x24\ \xa6\xab\x55\xba\xf1\x09\x8d\x09\x60\xd2\x59\x80\xe3\xb2\x12\x83\ \x24\x2a\xa5\x45\x1c\x1c\x57\xbe\x7c\x85\x57\x02\x01\x7c\x04\x03\ \xe8\xb5\x98\xe4\x16\x99\x7c\x43\xd3\x35\x6c\x9f\xd4\x0c\x01\xfc\ \x30\xf0\x54\x63\xb2\x31\x73\x3a\x4b\x24\x6d\x22\xad\x26\x2d\x15\ \x0c\x98\x8e\xea\x5c\xa6\xc2\xa8\xfd\x0c\xa8\x3f\x02\x1d\x66\xa0\ \x94\xeb\x1b\x0b\x08\x3f\x52\x43\xa6\x9b\x49\x8b\x5c\xee\xa2\x29\ \x80\xb4\x40\xc9\x5b\x78\x32\x6e\x1e\x00\x3a\x47\x80\x8c\x62\xce\ \xbc\x21\x70\xdf\x1d\x32\x5f\x37\xaf\x36\x9d\x02\xe4\x2a\x29\x92\ \xd6\x41\xa0\xc9\x40\x80\x4f\xc0\xa1\xb3\x79\x7a\x37\x8f\x35\xc9\ \x04\xf0\x5c\x08\x40\x35\x47\x05\x56\xbd\x07\x5e\x91\xda\x4d\xf6\ \xc9\xbd\x49\xf2\x5e\x32\x0f\x9f\x29\x77\xa1\x83\xe6\xc1\x7e\x6d\ \x3b\xc5\xf3\xf2\x1d\xd0\xd8\x0f\x54\xb5\x99\x6c\x41\xd1\xa7\x54\ \x64\xbe\x6d\xb6\xfc\x9d\x05\xc4\x5c\x2f\xe4\xcc\x4d\x46\xa0\xee\ \x0d\x01\xe8\x09\xf2\x6a\x79\x8b\x38\x24\xbe\x8c\xcc\xfd\x16\x62\ \x55\x5c\x2a\x7a\xd1\x37\x56\xaf\x07\x6a\x7b\x28\x22\x2a\x72\xea\ \xdd\xba\x21\x5f\x71\x98\x7c\xa6\xbe\x77\x05\x90\x5b\xd6\x62\xb2\ \xd5\xf6\x02\x4f\xba\xa8\xc8\x54\xe8\x58\x8a\xcc\xdd\xd3\x87\xf5\ \xff\xca\x85\x00\xb4\x35\xf4\xdb\x27\xcb\x79\xa0\xa2\x13\xa8\xe9\ \x1e\x9f\x08\x89\xbd\xa8\x21\xf3\x50\xd2\x92\x79\x01\xd8\x80\x49\ \x33\x14\xc6\x67\x14\xcf\x43\xb5\x03\x50\xcc\x19\xac\x81\x11\x27\ \xea\xc9\xdc\x7f\xae\x02\x3b\x03\x90\xde\xaa\xe2\x2d\x0a\x8a\xa6\ \xa8\x19\x60\xef\xec\xb3\x7f\x68\xc2\xa3\x99\x16\x9b\x20\x00\x99\ \xaf\x67\xf9\x17\x70\xb4\x2d\x5b\x81\xfb\x2a\x5a\x0f\x14\x53\x8a\ \x5c\x61\x5c\xeb\x27\xb9\x42\x00\x6f\x97\x00\xd3\x7f\x30\x49\x97\ \x4b\x0c\xf7\x94\x7d\x63\x15\x54\xdc\xfc\xd7\x40\x2e\x01\x1e\x68\ \xa8\x45\x9f\x1b\xac\x07\xcf\xe4\xe9\x69\xbb\xde\x8c\x38\x9a\x29\ \x76\x05\xa0\x6b\xa5\xa5\xc6\xd4\x40\x1d\x53\xa5\x03\x1e\x53\xf6\ \xa5\x1d\x40\xa5\xd6\x71\x8d\x9d\x15\x36\x1a\xac\xbb\x0f\x5f\x63\ \xbb\x68\x99\xe0\x27\xc8\xae\xe4\x2d\xd3\xca\x99\x52\xf6\x5f\x4a\ \xcb\xe7\xcc\x5b\x82\xe3\x64\x04\xf0\x12\x0a\x70\x0f\x8b\x97\xa5\ \x6e\x8f\x3c\x79\x3b\x20\x3c\xa9\xf0\x5f\xda\x18\xb4\x3f\x93\xcc\ \x83\x5d\x5a\x76\x6c\x81\x91\x56\xb1\x49\x9d\x45\xde\x6c\xd0\xe6\ \x9a\x05\xa7\xb6\xe9\x7c\xf4\x07\x31\x37\xf2\xb9\x28\x8c\xc6\xad\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\x00\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x92\x49\x44\x41\x54\x48\xc7\xb5\ \x96\x4d\x4b\x54\x51\x1c\xc6\x7f\xe7\xde\x99\x3b\xbe\x0c\x86\x12\ \x96\xa6\x34\x44\x8a\x94\x42\x90\xd9\x62\x10\xfb\x0e\x6d\x6c\x97\ \x50\xab\x56\x2d\xdc\xf6\x2d\xa2\x45\x50\x14\xb8\xa8\x90\x12\x37\ \x51\x1b\xb5\x30\x2b\x2a\xad\xc1\x34\x4c\x57\xa1\xf9\x92\xa2\xce\ \x78\xe7\xde\x7b\xee\x69\x31\x67\x5e\x1a\xbd\xea\x38\x74\xe0\x70\ \x0f\x33\xdc\xe7\x77\xfe\xcf\xff\x65\x46\x28\xa5\xf8\x9f\x2b\x14\ \xf4\xc5\xdd\x3e\x61\x6d\x6e\x12\x4f\xed\xe0\xd4\xd4\xd1\xe9\xd8\ \x18\x4a\x21\xab\x22\xc4\x22\x95\x46\x53\xb5\x25\xe4\xab\x8f\xf2\ \xde\xf0\x67\xc6\x7c\x20\xa5\xef\x59\x7c\xe1\x40\x80\x30\xe9\x6f\ \xe9\xec\xbe\xb1\xb3\xb5\xb6\xde\xd4\xd6\x73\xca\xf3\x95\x81\x74\ \xbd\xda\x93\xad\xb5\xc7\xea\xcf\x44\x2c\x53\xb2\xb8\xd6\xdb\x3c\ \xf8\x89\xab\x02\x7e\x07\x86\xa0\x94\xda\x73\x3f\xb9\x73\x5e\x05\ \xad\xb4\x7e\x2e\xcd\xbe\x54\xbd\xed\x3c\x07\xaa\x82\xf4\x02\x01\ \x8f\xfa\x63\xa9\x20\x40\x62\x3a\xa1\x1c\x99\x39\x7f\x7f\xfb\x50\ \xdd\xea\xe1\x41\x10\xc0\x08\x8a\xcc\xf7\x3d\x2f\x73\xf2\x50\xa4\ \x80\x24\x60\x03\x2e\xd2\xdd\xc6\xd9\x49\x01\xd0\x16\xbf\x4e\xbc\ \xfb\x5c\x1f\x10\x87\xdd\x7a\xa1\x83\xeb\x20\x8d\xc0\x03\x14\xe0\ \x01\x16\xd1\x68\x05\x43\x43\x4f\x59\x59\xd9\xe6\xc2\xe5\x2b\xac\ \x27\x7d\x80\x76\x60\x8e\xa2\x7c\x18\x07\x03\x5c\x14\x2e\xe4\xb6\ \x4d\xf3\xe9\x13\xb4\x9c\x6d\xa0\xb5\xb5\x8e\x8e\x8e\x18\x21\xec\ \xec\x65\xcd\x12\x22\x50\x05\x11\x48\x40\xa1\x10\x08\x14\x61\x33\ \xc4\xa5\xae\x8b\x80\x05\x44\x39\x16\xb5\xd0\x74\x79\x24\x8b\x14\ \x3e\xe2\x1f\xa8\x0b\x08\x20\x0d\xd4\x90\xcd\x56\x49\x8d\x96\x5f\ \x36\x02\x85\xd2\x92\x99\x28\xd0\xd0\xac\xc3\xf2\x28\x80\xbc\x45\ \x00\x42\x23\x44\xb6\x11\xcb\x1d\x15\xf9\xfc\xdb\x45\xd2\x59\xbc\ \x2a\xf8\x44\x94\x63\x51\x5a\x5b\x91\x95\xcc\x98\x94\x91\xf4\xcb\ \x01\x88\x82\x24\x0b\x04\x46\xce\x26\x95\xcb\x84\x2c\xc7\x22\x00\ \x47\x77\xaf\x99\xcb\x42\x7e\x49\x9d\x27\xb7\x20\x5f\x25\x27\xd9\ \xd5\x10\xb3\x28\x2a\x89\xc2\xd0\x1d\xee\x80\x71\x24\x8b\x8c\x1c\ \x40\x10\xce\x95\xa5\x42\xea\x58\x0c\x20\x0c\x54\x53\x11\xae\xc8\ \xbe\x60\x94\x18\x81\xa3\xab\x48\x22\xf0\x01\x1f\x41\x15\x10\x03\ \x8e\xeb\x01\x38\xc7\xea\xea\x46\xe9\x00\x21\x30\xd0\x16\x08\x4c\ \x2d\xd8\x06\x78\x6c\x2d\x8c\x31\xfb\x61\x82\xd1\x91\xf7\xfe\xb3\ \xc1\xaf\xf3\x3f\x37\x99\xd1\x83\x2e\x79\x68\x40\xc4\xaa\x8c\x40\ \xa3\x1e\x92\x0d\xa4\x96\x12\x8c\xbf\xb8\xcd\x9b\xd1\x71\x7f\xe8\ \xf5\xf2\xb7\xa9\x35\x26\x81\x19\xe0\x0b\xf0\x03\x58\xd4\x15\x71\ \x38\x40\x63\x9d\x50\xb0\xc4\xc8\xc0\x63\x86\x07\xee\x3b\xe3\x93\ \x72\x61\x62\x91\x77\x5a\x30\x01\x4c\x03\xcb\x05\xcd\xb0\xb7\x13\ \x41\xff\x2a\xba\x9a\xc5\xb5\xe4\x06\x37\xe7\xb7\xf9\x63\xc3\x28\ \x30\x05\xcc\x03\xbf\xf6\xab\xcb\x5d\x7a\x41\x3f\x99\x3d\x2d\x00\ \x44\x81\xfa\xbd\xe6\xfc\x7e\x80\xc2\xfd\x17\xfb\xc6\x93\x82\x32\ \x2c\x7f\xcc\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\xa1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x33\x49\x44\x41\x54\x48\xc7\xd5\ \x55\xcb\x6e\x13\x41\x10\xcc\xa7\xf1\x19\x7c\x8a\x4f\x08\x21\x0e\ \x88\x13\x42\x70\xe0\x03\x10\xe2\x06\x52\x78\x84\x6c\x0c\xd8\x24\ \xf1\x63\x6d\x92\xe0\xf8\xed\x5d\x7b\xfd\xb6\x13\x3b\x46\x11\x07\ \xef\xce\x14\xd5\x33\x10\x88\x64\x03\x07\xf6\xe0\x43\x6b\x7a\xaa\ \x6b\xba\x76\xbb\x35\x3d\x5b\x37\x6e\xde\x4e\xd0\xdc\x98\x2c\xb1\ \x25\xce\x61\x1f\xd8\xa9\x01\xaf\xcb\x0a\xdb\xe5\x08\x2f\x4f\x96\ \x70\x9a\x9a\x98\xc2\x5e\x0b\x48\x7a\x1a\xa9\x0e\x88\x01\xbb\x0d\ \xf2\xaa\x8a\xdc\xd0\xec\x93\x9e\x3d\x2b\xf8\xbb\xfa\x4f\x5f\x23\ \xdd\xd5\x90\xdc\x46\x20\x37\xb2\xc1\xbb\x6f\x95\x39\xe0\x34\x15\ \xee\x27\x2d\xf1\x4d\x45\xe1\x0e\x71\x9b\x5c\xe3\x9e\x03\xbc\x3a\ \x5d\x22\xd5\x06\x6e\x6d\x2f\x89\x51\x8c\x9c\xdf\x71\xc9\x93\x1d\ \xe0\x4a\x20\xde\x12\x01\x88\xd5\xfe\xe7\x1f\x24\xd6\x09\xb8\x39\ \xd6\xcb\xa9\x45\x38\xe8\x02\xef\x9b\x11\x4d\xe3\x53\x07\x66\x15\ \x4b\xb2\xce\x29\x5f\x99\x55\xf6\xbb\xd5\x90\x7b\xe0\xa3\x27\xb1\ \x08\xd9\xbe\x6d\xe8\x5a\x81\xe2\x48\x92\x29\x3c\xfc\x10\x21\x13\ \x80\x07\x80\x27\x07\xc0\x3e\x1b\xe6\xd4\x43\x3c\x4a\x51\x88\x89\ \x52\x4c\xf8\x20\x19\x1a\x6e\x9e\x1f\xf5\x38\x0d\xa4\x29\x74\x32\ \xc1\x1f\x05\xe2\x2d\xd1\x26\x34\x39\xf1\x37\x01\xb7\x34\x05\x5c\ \xd6\x3d\xdb\x51\x28\xb2\xb6\x85\xbe\x98\x46\x89\xb5\xdd\xf7\x42\ \x64\xda\xea\x07\x06\x64\xc8\x39\x66\xcf\x8a\x03\xc6\xa7\xeb\x6b\ \x7f\x4d\xa0\x3c\xd5\xc8\xf8\x4b\x3c\x73\x15\x0e\xbd\x25\x3e\x53\ \xe4\x69\x3e\x82\xdb\x55\x38\x1a\x02\x2f\x4a\x4c\xde\xd3\xc8\x07\ \x0a\xcf\x8b\xfa\x0a\xdf\x69\xfc\x9b\x40\xbc\x25\xda\xa4\x9b\xbc\ \xf2\xcf\x4c\x0f\x5a\x33\x8d\xf2\x48\xa1\x7e\x06\xb3\xd6\xd8\x3c\ \xf1\xab\x13\x6d\xfc\xca\x58\x1b\xdf\x9b\x03\xc7\xfd\x10\x15\xfa\ \xa5\x61\x84\x2f\x83\xd0\xc4\x6a\x53\x89\xdb\xb3\xc2\xeb\x2c\x7e\ \xf5\xc6\x08\x04\x5f\x99\x6c\xcc\x71\xc0\x51\xed\xcd\x80\xda\x84\ \x63\xa1\x6e\xfd\xc6\x99\x86\xc3\xf9\x2f\x98\x4f\x81\xbd\xba\x26\ \x06\x34\xcf\xe9\xf3\xbd\xa8\xca\x87\x4d\x2d\xde\x32\x7c\x85\xdc\ \xe0\xba\x40\xbc\x25\xda\xb4\x26\x27\x56\x5e\xb4\xf1\x37\xc0\x3f\ \x57\x08\x2e\x80\xce\x5c\xdb\x75\x26\xab\xf5\xdb\x33\x85\xee\x42\ \x9b\x98\xf0\xba\x17\x96\xef\x13\xef\x2d\x84\xab\x30\xbc\x5c\x7d\ \xe9\x8c\xc0\xf0\x52\x1b\x52\x81\x0f\xb5\x1c\x96\xc4\xc5\x1e\x8c\ \x2f\xf8\x11\x47\x44\x30\xd7\x46\x34\xcf\x51\x21\xbe\x88\x16\x02\ \x8d\x1e\x39\x62\xa7\x93\xf5\x02\xb1\x96\xe8\x3b\x31\xcd\x36\x1d\ \xe5\x2d\x08\xd3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x04\x6e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x04\x35\x49\x44\x41\x54\x48\xc7\xb5\x95\x7f\x4c\x94\x75\ \x1c\xc7\xaf\x5a\xad\xe5\x8a\x2d\x67\x9a\xfe\x51\x36\xc4\xc4\xa4\ \x2c\xa0\x00\x45\x4b\xd7\x0f\xac\x2e\x10\xc5\xca\x6a\x2b\x95\x14\ \x51\xd4\x28\x08\x44\x0b\x04\x65\x9c\xfc\x88\x40\x65\x1c\xd2\x89\ \x9c\x60\xca\x93\x70\x48\xfc\x7e\xe0\x50\x7e\x28\xe4\xe1\x91\x47\ \x87\x36\xae\xa8\xa3\xd1\xae\x76\xdb\xfd\xe1\xf6\xee\xfd\xdd\x75\ \x0b\xc2\x83\x73\xab\x3f\xde\x7b\xf6\xec\xfb\x79\x3e\xaf\xcf\xcf\ \xe7\xab\x00\xa0\xf8\x3f\x35\xe1\x65\xe5\x86\xfd\x09\x54\xcf\x6d\ \x48\x43\xbd\x47\xcd\x98\x16\x40\xa3\xc0\xdd\x87\xb4\xa6\xeb\x7f\ \x02\x42\xd7\xc6\x00\xe3\x28\x70\x95\x1a\xf8\x0d\x30\xfd\x0e\x0c\ \xfd\xe1\x3c\x1b\xa2\x7e\xb0\x01\x6d\x03\x56\xfb\x17\xa7\x64\x4b\ \xe8\xfa\xbd\xe5\xa1\xeb\x92\x22\xa6\x03\xcc\x7b\x73\x57\xbe\x21\ \x4f\x2b\x5b\xc4\x87\x57\x7e\x01\x3a\x7f\x04\x2e\x0c\x01\x5d\x7c\ \x1a\x7e\x05\xc4\x99\x50\x55\xc7\xe0\x98\x80\xf7\x8d\x00\xc2\x4e\ \xa6\xfd\x6b\x9b\x33\x7b\x03\x5e\xd9\xe6\xa7\x50\x28\xee\x70\x5b\ \xa2\xc0\xb0\xed\x8f\x06\x84\xc5\xec\x0e\x7e\xe3\xa3\x6a\x55\x99\ \x6c\x69\xa7\xf3\xe6\xef\x19\x29\x9f\x05\x67\xba\x47\x7c\x83\xd6\ \x9e\x5f\x18\xa8\x3c\xe6\xff\x52\xb4\x36\x29\x4f\x32\xf7\x0c\x03\ \x1d\x3c\xeb\xf9\x09\x38\xd9\x60\x18\x7d\xf6\xd5\x9d\x2a\x02\xee\ \x75\x0b\x10\x74\x61\xb0\x74\xf5\x07\x2f\xc6\x1d\xd4\x9a\x3a\x6e\ \x00\x4d\x04\xb4\x9b\x81\xec\x93\xb2\x65\x61\xe0\xeb\x45\x3c\x17\ \x51\xce\x59\x1e\xf9\x69\x65\xed\x65\xab\xbd\xc5\xc4\x0c\x06\x99\ \x09\x33\x14\x7d\xe1\xd9\x3c\xb7\x80\xf1\xfd\x10\x00\x3d\x01\xdf\ \x1a\x81\x56\x01\x28\x97\x2d\xbe\xc1\x91\xb9\x74\xf0\x90\xb0\x59\ \x11\x95\x92\xac\xd6\x19\x46\x1b\xaf\x01\xf5\x0c\xe2\xd2\xcf\xc0\ \x86\xb8\x7c\xc3\x5c\x6f\xff\x55\xe3\xcb\xe4\x16\xb0\x33\x43\x6b\ \x6a\x65\xfa\xb5\xfd\xcc\x82\x51\x1e\x76\x02\x72\x5c\x00\xda\x14\ \x54\xea\x87\x6d\x75\x46\x27\x40\x7f\xc3\x71\x73\x79\x64\xe2\x45\ \x9e\x07\x50\x77\x4d\x0b\xd8\x41\x40\x13\x53\x97\xfa\x08\xb9\x0a\ \x64\x9e\xf8\x07\xc0\x73\x65\x14\xa3\x6d\x31\x3b\xcf\xc4\xb3\xa0\ \xaa\x7b\x64\x51\x50\x44\x05\xcf\x17\x7b\x94\x41\x6c\xba\xd6\x54\ \xc7\xf4\x2b\x7b\x80\xb3\xbd\x40\x5a\x89\x6c\x71\xcd\xff\x27\xb9\ \x92\xf9\x74\xa7\xd5\x5e\xcd\xec\x6a\x08\x38\xde\x30\x38\xe6\xb7\ \x62\x63\xa3\xd7\xac\x47\xb6\xd2\xf9\x6c\x8f\x7a\xb0\x9d\x80\x1a\ \xa6\x5f\x76\x81\x13\xd2\x09\xe8\x06\x58\x06\x4e\x4b\x17\x9b\xd9\ \xce\xe9\xd1\xb1\x2c\x67\xbe\xe3\xe8\x4a\x83\x63\xcb\xd6\x26\x76\ \x2e\x0e\x59\x5f\x4c\xe7\x8f\x53\xf7\x78\x04\x88\x39\xa0\x35\x55\ \x19\x80\x92\x76\xa0\xb4\x03\x28\xaa\x1f\xb6\xa5\x6b\x64\x4b\xc6\ \x09\xa7\xce\xf6\xd9\x1c\x52\xbf\x13\xf2\x4d\xbf\xe3\x66\x7c\x8e\ \x64\x0e\x09\x8f\x4f\x7d\xf2\xf9\x77\xbd\x3c\x02\x6c\x23\xe0\x34\ \xeb\x5f\xd4\x4a\x00\xb3\xd8\x5f\x2c\x5b\xbc\x97\xbe\x5c\xb1\xe8\ \xb9\xf0\x02\xd1\x8b\x90\xf0\x8f\x9b\x53\x4b\x09\x62\x10\xa7\x2e\ \xb1\x54\xcc\x48\x04\x10\xac\xdc\x73\x80\x59\xdc\x3d\x2d\x60\x2b\ \x01\xe5\xfc\xb0\xb0\x89\x35\xbe\x08\x08\x67\xc2\x39\x3f\xf6\x15\ \x8d\x9e\x39\xd7\x67\x01\x21\x9a\xa3\x0d\xc3\xb6\x62\x3d\x33\x65\ \x96\x3a\x4e\xdb\x9a\x4d\x99\xbd\x0f\x3f\xf6\xb4\xb7\xab\xd1\x6e\ \x01\x1f\xa6\x69\x4d\x9a\x6e\xd6\xb8\x01\x10\x0e\x52\xbf\x9a\x38\ \xa6\x42\xa1\xeb\x92\xdf\xdf\xa7\x96\x2d\x47\x65\xa7\x5d\xf9\x65\ \x60\xd7\x61\xc9\x4c\xbb\x68\x57\x16\x6e\x01\xd1\x04\xa8\x19\xb9\ \xaa\x0e\x38\xd2\x06\x7c\x56\x3a\x19\x20\xfe\xa4\x29\x04\x7c\xd9\ \x0c\x64\xd5\x32\xd3\x2e\x20\x8e\x80\x05\xcf\x84\xc5\xd3\xee\xfe\ \x29\x01\x5b\x52\xb5\xa6\x42\x3a\x4e\xaf\x66\x74\x2c\xd3\xbe\x92\ \x5b\x02\x0e\x66\x71\x8a\xb2\xce\x73\x4f\x74\x80\x86\x25\x7d\x27\ \x51\x6d\xe4\x36\x6f\xa1\xdd\x03\x53\x01\x94\x31\x99\x92\x39\xab\ \x1e\x48\xf9\x1a\x38\xc4\xe8\x12\x8e\x4d\x58\xb4\x19\xe2\xee\x10\ \xce\x8e\xb0\x7c\xe9\x35\x40\x4e\xa3\x00\xd8\x1c\x41\xca\x3d\x7a\ \xda\xac\x74\xfd\xf4\x6e\x79\xe1\xc4\xaa\x24\x73\x76\x9d\xd5\x9e\ \xce\xa8\x92\x09\x48\x13\x59\x34\xda\x1c\x9b\x99\x95\x6b\xd9\xf6\ \x32\xa3\x52\xd6\x3c\x9b\xe5\xc9\xa1\xca\xae\x00\x1b\x09\xf4\xf1\ \x5f\xa3\xfe\x7b\x1f\xee\x9c\x74\xe1\x6c\xfa\x5c\x6b\x3a\xc7\x1f\ \x9c\xc4\xd5\x57\x73\x83\xf3\x38\xa2\x2a\x36\x2f\xb7\x85\x8d\xe6\ \x7b\x25\x37\xfb\xdc\x75\xa7\x2a\xb8\x78\xc7\x09\x28\xa1\x8a\xda\ \xac\x76\xe1\xfc\x89\x65\x51\x55\x74\xbc\x9a\xf2\x9a\x34\xa6\xe2\ \xc2\x89\xd8\x91\x6f\x48\x62\xd3\x6e\x47\x6f\x27\xa8\x8d\xbc\x47\ \x5a\xe7\xfb\xad\x2a\xa4\x63\xf1\x27\x9d\xe5\x8a\xde\xed\x85\xb3\ \x24\xf4\xad\x0c\x51\x6f\x4f\x34\x67\xfe\x53\xb1\x74\xf8\x02\xe5\ \x23\x1a\x3b\xde\xb9\xdb\x0b\x87\x7a\x50\x34\xd3\x43\xcd\xa4\xee\ \xfb\xb7\xe3\x29\x37\xf9\xbf\xd4\x5f\x64\xf9\x94\x79\x6f\xb3\xd8\ \x06\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\xca\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x05\x91\x49\x44\x41\x54\x78\x5e\x8d\x95\x0b\x6c\x54\xc7\ \x15\x86\xbf\x99\xfb\xd8\xf5\x9a\xf5\xda\x06\xf3\x30\x8e\x1d\x13\ \x48\xf3\xb0\xdc\xd0\x84\xf4\x21\x4a\xd4\x9a\x10\x48\x1c\xea\xa4\ \x69\xe2\x84\x20\x28\x88\x47\x53\x09\x0a\x69\x52\x29\xa9\x2a\x48\ \x48\xab\x4a\x81\x54\x51\xc5\x2b\x85\xd0\x16\xb7\x29\xb8\x51\x12\ \x90\x5c\x2b\x34\xcd\x8b\x50\x4a\x95\xb5\xe5\x26\xc6\x50\x82\xed\ \xae\xb7\x36\xf5\xf3\x81\xbd\x8f\xbb\x73\xba\x8a\x56\xb8\x1b\x5a\ \xe8\x2f\xfd\x73\x74\x66\xa4\xf3\xcf\x3f\x47\xa3\xa3\x44\x84\x0c\ \xd8\xb7\x4e\x2d\xfd\x43\x98\x79\x6d\x11\x66\x8e\xc7\xf1\x23\x28\ \x40\x50\x08\xa0\xf2\x72\x29\xbc\xa9\x94\xf8\xd7\x6e\x66\x27\x9a\ \xe6\x55\xbb\xa4\x9b\xab\x41\x44\x3e\xe5\xee\xd5\x3c\xd2\x52\x77\ \xdb\xd0\xa6\x07\x27\x27\xe4\x7f\x20\xe6\x89\x3c\xfd\xed\x42\xf9\ \xdb\x1e\xf5\xaf\x23\x4f\x13\xdd\xfa\x00\x65\x22\xc2\x95\x68\x93\ \x81\xf1\x58\x59\x71\xfb\xbc\xbc\xe2\x93\xed\x74\x75\x75\x60\x3b\ \x01\x3c\x2f\x89\xa0\xd0\xca\x22\x85\xe2\xa7\x5b\x36\x53\x22\xfd\ \x9c\xe9\x20\x77\x74\x90\x84\x5f\xb3\x65\xe7\x0a\xd5\xa5\xe1\x5a\ \x81\x5c\xdb\x66\xff\x9a\x7d\x72\x84\x09\xa0\xc9\x40\x0c\x53\xb1\ \x87\xc0\xeb\xa5\xb3\xa3\x9d\xa6\x70\x33\xe1\x70\x13\xcd\x69\x7e\ \x18\x0e\xf3\xde\xe1\x2d\xcc\xcd\x0f\x53\x3e\xeb\x56\x42\xe5\xdf\ \xf2\xcd\xbe\x63\x63\xa8\xfa\xb1\xdd\x0f\xdd\xfb\x64\xc3\xa6\x65\ \xcf\x9f\xad\x5d\xbb\x3f\x51\x73\x73\xd5\xda\x03\x3b\x96\xa9\xef\ \xfe\xd7\x27\xfa\xf9\x23\x34\xc9\xe9\x6f\xca\x73\x1b\x02\xf2\xe2\ \x8b\x2f\xc8\xea\xd5\xdf\x91\xda\x87\x97\xc9\x3d\xd5\x35\xb2\x70\ \xd1\xbd\xf2\x54\x8d\x92\xc4\xd8\x90\x5c\x8e\xb8\x24\x92\x63\x97\ \xb2\x86\x9f\x2d\x8a\xee\x78\x94\x8d\x99\xba\x13\x0e\x8c\x42\xa5\ \x8c\x61\x4e\x65\x25\xc7\x8e\xd5\xf3\x51\xcb\x31\x22\x1d\x27\x19\ \xe8\x6d\x21\xe0\x6f\xc3\xe7\x0a\x82\x07\x24\x41\x06\xc0\xf4\x83\ \xe9\x25\x3e\x36\x40\xff\x85\x4e\xbc\x94\x07\xc0\xe2\x8d\x8d\x33\ \x5c\x8b\xe5\x4a\x29\x07\x98\xe8\x81\x32\x08\x28\xe6\x55\xe4\x31\ \x9a\xd0\x8c\x8c\xd8\xd8\xb6\x85\x42\x51\x5e\x1e\xe2\xc2\xf1\x0e\ \x14\x49\x60\x0c\x52\x17\x41\x04\x94\x22\x11\x1b\x66\xa0\xaf\x1b\ \x74\x80\xbc\xfc\xa9\x38\x8e\x8f\x50\xf1\x75\x45\x70\x6e\x1a\x10\ \xb9\x24\x20\x1a\x2c\x5b\x31\xa5\xc8\xc7\xdd\x8b\x4b\x89\x5d\x4c\ \x90\xf0\x52\x68\xad\xc8\xc9\xb1\x39\xd1\xec\x64\xec\xa6\x80\x18\ \x68\x0b\xc4\x43\x29\x43\xd2\x8b\xd3\xdc\xf4\x5e\x3a\x5a\x14\x4e\ \x2e\x21\xda\x71\x2e\x09\xe4\x65\x3b\x50\x08\x8e\xc6\xef\x6a\xb4\ \xed\x10\xf0\x6b\x40\xb0\x2d\x85\xdf\x67\xa5\x73\x0b\xcb\xd1\x80\ \x02\xdb\x01\x49\x81\xd1\xd8\x96\xa4\xcf\x40\x52\xe3\xc4\x63\x1e\ \x29\xaf\x88\xd8\x38\x06\xb0\xb2\x04\x04\x40\x2b\x6c\x5b\x61\x05\ \x1c\x94\xd2\x1c\x79\xe3\x0c\xaf\x1d\x6d\x65\x6c\x2c\x46\x57\xeb\ \x10\xbf\x09\xaf\x40\x69\x43\x61\x41\x90\xfb\x6b\xee\x64\xc1\xc2\ \xaf\x60\xeb\x04\xf9\xa1\x00\xe5\xa5\x93\x89\x7b\x3e\x82\xa1\xe9\ \x04\x5c\x3c\xc0\x7c\xd6\x01\x68\xf5\x29\x95\xa3\x89\xb4\x0f\x70\ \xf0\xe8\x38\x0f\x6f\xfe\x0b\xa7\x3a\x83\xcc\x1c\x18\xc6\x32\x2e\ \xae\x11\xe6\x96\x5e\xe0\xd5\xd7\x7f\xc0\x82\x45\x5f\xc4\x76\x85\ \xe0\x24\x07\x9f\x5b\x80\x51\x41\x7c\x39\xd3\xf0\xbb\x18\x20\x99\ \x25\x60\x5b\x08\xd6\xc4\xcf\xc8\x0d\x38\x78\xf1\x51\xfa\x47\x87\ \x69\xe8\x2a\xe4\xa3\xd6\xc9\x24\xfa\xc0\x17\x87\x4d\x4b\x82\x74\ \x76\x9e\x07\x46\x41\x3c\x5c\x3b\x85\x63\x81\x4a\x2f\xb8\xb9\xe9\ \x1c\x03\x98\xac\x8f\xe6\xda\x80\x23\x60\x03\x16\x14\x5c\x13\xe4\ \x89\x75\x33\x78\xfd\x99\x5b\xb8\x2d\xe7\x14\x3a\x07\xd0\x10\x57\ \xe0\x79\x43\x04\x73\x73\xc0\x18\x90\x4c\x10\x00\x05\x80\x12\x00\ \xc8\x72\xb0\xb5\x9e\xca\xfe\xa2\x30\x0f\xdc\x57\xcc\xb4\xb2\x11\ \xa2\xd1\x21\xce\xb6\xf5\x30\xbb\x62\x01\x3d\x6e\x11\xe2\x07\x72\ \x40\x01\x96\x0d\x22\x99\xca\x69\x8a\x08\x00\x64\x22\x64\x0b\xa0\ \x94\x7a\x70\xeb\x81\xdd\xd6\x94\xd9\x9f\xe3\xb9\xfd\x3f\x61\xb8\ \xe7\x38\x45\x25\xb3\x28\xbb\x7d\x2d\xd1\xfb\x56\xf2\xe6\x19\xf0\ \x5c\xc8\x9b\x0a\xf6\x18\xe0\x68\x8c\x11\x10\xc1\xa4\x0c\xc6\x98\ \xcc\xcd\x0d\x1a\xb9\x5c\x00\xe8\xee\x6d\xff\x3b\xd7\x57\xd7\x52\ \xb2\xbd\x91\x9e\x9e\x24\xed\x9e\x43\x63\x2f\x44\xbb\xc1\xe7\x87\ \xbb\x3e\x0f\x37\xfc\xf3\x4f\x78\xbe\x59\xcc\x29\x2f\xa3\xf5\x62\ \x02\x8c\x60\xc4\x20\x69\x02\x99\x98\x0d\x0d\x20\x22\xef\xc6\xde\ \x7c\xbe\xf3\x77\xcb\x2b\x09\x1e\xd9\x85\x52\x31\x86\x05\xf2\x7c\ \xf0\xd5\xc2\x38\x8f\x15\x9f\xe1\xa6\x77\x96\xf3\xf1\x6f\x1f\x67\ \xe0\xed\x27\x88\x45\x1a\x99\xff\xe5\x4a\xc4\x4b\x61\x52\x29\x44\ \x24\xe3\x48\x01\xf6\xa5\x56\x64\x35\xf9\x4b\x37\xd0\x77\x78\xcf\ \x17\x78\xeb\xc0\x8f\x71\x5f\xda\x4c\xcd\x89\xed\xac\x6b\xdf\x47\ \xd5\xc7\xcf\xd2\x73\x68\x25\x47\xeb\x0e\xd2\xd0\x70\x88\x6d\x4f\ \xad\xe0\xb5\x5f\x3d\xc3\xd2\xea\xf9\x24\x93\x1e\x06\x0d\xca\x45\ \xd9\x41\x2c\x77\x0a\xe0\x60\x69\x34\xa0\xb2\x9a\x1c\xf7\x50\xf6\ \x94\x20\x47\xf7\x46\xf8\xf3\x07\xbf\xe0\x83\x0f\xa1\x25\x02\x17\ \xc7\x41\x83\xb7\xe6\x4e\x48\xe1\xd8\xa5\xe5\x25\xd4\xa5\x2f\x50\ \x50\x90\x8f\x88\x83\xe5\x4c\x42\xdb\x79\x58\x6e\x88\xe4\x68\xdc\ \x74\xb7\xbd\x3c\x7a\xea\x3c\x9f\x00\x5e\x96\x03\x01\x0b\xaf\x8d\ \x37\x1a\xe1\x9d\x26\xe8\x1f\x24\x31\x33\x48\xdf\xad\x33\xe8\x9c\ \x3f\x9d\x56\xe3\x31\x60\x8c\x83\x31\x2e\x05\x85\x25\x68\x67\x3a\ \x6e\x70\x0e\xda\x2e\x26\x7a\xba\x69\xe8\xc4\xc1\xc7\xff\xf1\xfb\ \x1f\x95\x9f\xdd\xb2\x79\xd5\x5b\x0d\xcd\xd4\x03\x83\xd9\x23\x73\ \x15\x07\xce\xfd\x11\xd9\xba\x8a\xc1\x9d\xeb\xf9\xa4\x6e\x03\xa7\ \xd7\x57\x51\x7f\xf7\x2d\x6c\xcb\xf7\xb3\x64\x7b\x2d\xef\x4b\x2a\ \x2e\x22\xa3\x22\xa6\x4f\x06\x23\x27\xc7\xff\x5a\xbf\x21\xf2\xea\ \x0f\x4b\xda\x7e\xbd\x9e\xd6\xaa\x1b\xd9\x9e\x6b\xf3\x0d\xe0\x46\ \xa0\x00\xd0\x22\x32\x21\xb0\x6f\x1d\x5f\xdf\xbb\x86\x43\xdf\xbf\ \x87\x5d\xf3\x66\xf1\x64\x51\x90\x25\xc0\x6c\x20\x5f\x44\x78\x79\ \x2d\xbf\x4c\x8c\x74\x49\xdf\xf9\xe3\xb1\xb7\xf7\x2c\xed\x78\xe5\ \x7b\x56\xdb\xe2\x0a\x5e\x2a\x2b\x60\x25\x30\x17\x98\x0e\xe4\x7c\ \x76\x26\x73\xd9\x06\x84\x80\x7c\xc0\xf9\xcf\xfd\x57\x36\xb0\x70\ \xef\x6a\xea\x9f\xbd\x9f\xc3\xf3\xe7\xb0\x2d\xe0\x50\x0d\x5c\x07\ \x4c\xba\xd2\xd0\x57\x99\xa2\xff\x37\x94\x52\x21\xc0\x01\x46\x44\ \x24\xce\x55\xf0\x6f\x03\xe2\xf6\xe2\xcc\x69\x65\x93\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xb8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x4a\x49\x44\x41\x54\x48\xc7\xc5\ \x56\x61\x4c\x5b\x65\x14\xfd\x6c\x32\xd3\x69\x20\x0e\x65\x24\x4b\ \x37\x56\x5a\x8a\xb3\xd2\x4e\xa5\x42\x71\x43\xc0\xb5\x94\x10\xe6\ \x02\x42\x13\xaa\x63\xa3\x63\x63\xd9\x18\x59\xb7\xa6\x01\xa3\x08\ \x88\x61\x0b\x29\xb2\xcd\x29\x66\xba\x81\x84\xda\x8a\x89\xd4\x00\ \x29\x43\x33\x1c\x20\xa5\x50\xd7\x6a\x57\x4a\x23\xc4\x6c\x51\x59\ \x94\x31\xbb\xf8\xc3\x6e\xbb\xde\xbb\xbc\x45\xd4\x15\x12\x33\xb5\ \xc9\xc9\x4b\x5f\xdf\xbd\xe7\xfb\xce\x3d\xe7\x7d\x65\x00\xc0\xfe\ \x4d\xb0\xff\x8d\x00\x3f\x31\x08\x85\x4a\xa5\x32\x28\x14\x8a\x23\ \x3c\x1e\xef\x65\xfc\xbe\x1f\x51\x8c\x50\x22\xe2\x10\xbc\x7f\x44\ \x80\x9f\x8d\x52\xa9\xb4\xb2\xae\xae\xee\xe3\xfe\xfe\xfe\x4b\x1e\ \x8f\xe7\x46\x30\x18\xbc\x35\x3e\x3e\x7e\xd5\x66\xb3\xf9\x4c\x26\ \x93\x5d\x22\x91\x18\x39\xa2\xfb\x97\x22\xba\x5b\xf3\xf4\xb2\xb2\ \xb2\x77\x1d\x0e\x87\x3f\x10\x08\x80\xd3\xe9\x84\xb6\xb6\x36\x30\ \x9b\xcd\xd0\xd1\xd1\x01\x13\x13\x13\xe0\xf5\x7a\xc1\x62\xb1\x04\ \x0b\x0b\x0b\x3b\xf1\xf9\x1c\xc4\xca\x48\x24\x7f\x5b\x39\x35\x1f\ \x19\x1d\xfd\xde\xed\x76\x83\xe9\x95\xda\xdf\xf2\xf7\x1b\xaf\x15\ \x34\x1c\x0b\x6b\xdf\xb6\xc2\xd6\xba\x37\x43\xbb\x1b\xcd\x3f\x77\ \x5a\x3f\x0a\xe3\x6e\xc0\x6a\xb3\x5d\xd1\x68\x34\x16\xac\xcb\x8c\ \x44\xf2\x27\xcd\x49\x16\x5a\x39\x35\x2f\x3d\x5c\x73\xf5\xe9\x43\ \xaf\x4f\xa5\x34\x77\x06\x59\x4c\x1a\xb0\xd8\xcd\xc0\x56\x67\x82\ \xac\xd9\x32\xf3\xc2\x89\xae\xe9\xf6\xbe\xb3\x0b\x93\x93\x93\x50\ \x5f\x5f\x3f\x23\x10\x08\xea\xb0\x5e\x4c\x72\x2d\x45\xa0\x20\xcd\ \x49\x16\x5a\x39\x35\x97\x1f\xfd\xc0\xa9\x3e\xd5\xe7\x79\x76\x5b\ \x25\x3c\x5f\x56\x0b\xcf\x14\x18\x20\xf3\xcc\xe0\xcc\xa3\x6d\x03\ \x5f\x96\x7f\x78\xd6\x37\x3c\x3e\x11\xee\xee\xee\x86\xdc\xdc\xdc\ \x41\xac\xcf\x47\x44\xfd\x75\x17\x8b\x09\x0a\xec\x76\xbb\x97\x34\ \xd7\x54\x1c\xfc\x51\xd4\xf0\xfe\x68\x71\xa7\xe3\x2b\xe3\x39\x9f\ \xf7\xc5\x7d\x47\x60\xbb\xa1\x15\x4a\x4d\x27\xe1\xc0\xc8\xcc\x45\ \x79\x8f\xff\xb3\x64\xab\x7b\xe0\xd4\xb9\xf1\x1f\x48\xaa\x92\x92\ \x92\x20\xd6\x57\x21\x62\x11\x2b\x22\x11\xec\x45\x69\xe6\x69\xa0\ \x4a\x43\xfd\x34\x8b\x51\xc2\xc6\xac\x72\x78\xae\xa8\x1a\xb6\xe8\ \x5e\x83\xac\x97\x1a\x21\xa7\xbc\x19\x32\x74\x0d\xc0\xe2\x0b\x81\ \xad\xc9\x83\xc3\x03\x6e\xaf\xcf\xe7\x83\x8a\x8a\x8a\x6b\x58\xff\ \x06\x42\x80\xe0\x47\x22\x30\xa1\x15\x6f\x92\x5b\xe4\xb5\x6f\xb9\ \x59\x6c\x06\xac\x4c\x2a\x86\x98\x94\xdd\xb0\x3e\xdb\x00\xa2\x1c\ \x13\xac\xdb\x62\x84\x28\xc5\x5e\x60\x49\xdb\x81\x25\xea\x60\x6b\ \xef\xd7\xe7\xa7\xa6\xa6\x88\xe0\x26\xd6\x1f\x47\x08\x11\x0f\x44\ \x22\xd8\xe7\x72\xb9\xe6\xc9\x8a\xaa\x57\xcd\xd3\x34\x50\x96\x50\ \x04\x6c\xc3\x4e\x84\xfe\x0f\x3c\x86\x90\xd2\x75\x27\xd4\x8c\x04\ \x2f\xf8\xfd\x7e\xd0\x6a\xb5\xb4\x83\xa3\x88\x04\xc4\x83\x91\x08\ \x8a\x29\x44\xe4\xf3\x8a\xa6\xd6\xb9\xa4\x63\x3d\x43\xc2\xf7\xbe\ \x19\x13\xda\x7e\x1a\x63\x22\x5c\xb1\x04\x89\x24\x7a\x10\xdb\x43\ \xc3\x8a\xb1\x5f\x7a\x9e\x1a\x9a\xfb\xd4\xea\xf9\xf6\x32\x39\x09\ \xd3\x4e\x33\xa8\x5e\x6e\x07\x4a\x4a\x28\x85\x88\x7c\x5e\x7c\xd2\ \x7a\x31\xfe\x84\xcb\xb5\xf6\xf4\xe5\x49\xb6\x06\x35\x17\x92\x2c\ \x7a\x10\x7d\x12\x1a\x4d\x19\x99\xb7\x1b\xc7\x66\xdd\x9e\xa9\x40\ \xb8\xa5\xa5\x05\x64\x32\xd9\x10\xd6\xef\x58\x6e\x06\x71\x14\x7f\ \x4a\x28\x39\xa3\xbd\x6f\x70\x41\xdf\xf5\xb9\x3f\xb1\xfd\xc2\x17\ \x2c\x2e\x0f\xd8\x7a\xdd\xed\x5d\x24\x3b\xe6\x1c\xd4\xbc\xd7\xed\ \xfb\x75\x78\x78\x18\xd4\x6a\xf5\x42\x74\x74\xf4\x19\xac\xdf\xbc\ \x9c\x8b\x78\xb4\x0b\x8a\x3f\x25\x94\xb6\x4e\x3e\x27\x2b\x92\x5b\ \x68\xa0\xa4\x39\xc9\xe2\xf1\x07\xc2\xd4\x5c\xbf\x6b\xd7\xad\xf4\ \xf4\xf4\xeb\x58\xd7\x8b\xa0\xb0\xc9\x23\xe6\x80\x23\xa1\x17\x57\ \x0e\xc5\x9f\x12\x4a\x21\xa2\xdd\x90\x15\xc9\x2d\x34\x50\x22\x26\ \x59\xf0\x99\x05\xa5\x52\x19\x4a\x4d\x4d\x85\xfc\x34\xe1\xf5\x83\ \xdb\x36\x5c\xc1\xda\x03\x94\xe8\xa5\x08\x78\xdc\x3b\x25\x93\xe2\ \x4f\x09\xa5\x10\x91\xcf\xc9\x8a\xe4\x16\x1a\x28\x69\x8e\xb2\x9c\ \xe6\xf3\xf9\xce\xac\xc7\xe3\x6f\xd4\xe4\x25\xc2\x3b\x7b\x52\xa0\ \x56\x27\xbb\x44\x6e\x5c\x4c\x72\xb7\xb7\xe9\x1d\x12\x31\x17\xff\ \x2a\x2e\x44\xc7\x39\x2b\x56\x73\x03\xcd\xb8\x8f\xb1\xd1\x4d\x6b\ \x57\x85\x2a\x37\xad\x83\xa6\x22\x29\x74\x54\xa5\x41\xe3\x8e\x27\ \x66\x17\x93\x44\x3a\x0f\x78\x9c\x5c\x51\xdc\xe0\x04\x9c\x05\x13\ \xb8\xab\x80\xbb\x2f\x47\x92\xf3\xd9\xa2\x47\x42\xc6\x6c\x21\x98\ \x4b\x92\xa1\xeb\x50\x3a\x34\xe9\x9f\xbc\x4d\xb2\xec\x91\xc9\x11\ \xad\x20\xeb\x91\xbf\x29\x44\xdc\x95\xcf\xdd\xa7\xdf\xc5\x48\xd2\ \xaf\x12\xae\xfa\xae\x5a\x2d\x82\xd6\x52\x39\xec\xd1\x88\x7d\x78\ \x5f\x7b\xcf\xce\x64\x8e\xa4\x5b\x23\x7e\x78\x36\x2f\x79\x35\x35\ \x2f\x47\x3c\x74\x4f\x0f\x7d\x6e\x66\xa4\xbd\xf6\x4e\xf3\xff\xe4\ \x5f\xc5\xef\x49\x57\xd6\xb7\x03\x79\xba\xe9\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\xb7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\x49\x49\x44\x41\x54\x48\xc7\xed\ \x55\xdb\x6e\x52\x51\x10\xe5\xd3\xfc\x0c\x3f\xa5\x4f\xc6\x44\x1f\ \xf4\xd5\xa8\xb1\x1f\xa0\xc6\x07\x8d\x26\x48\xbc\x00\x5a\x2e\xa5\ \x94\x03\xf4\x42\xb9\x73\xe0\x70\xbf\xb4\x54\x9a\xc6\x44\x38\x7b\ \x2f\xd7\xec\x4d\x69\x5f\x79\xa0\x4f\x3c\x4c\x66\xce\x9a\x99\x35\ \x27\xb3\x60\x4e\xe0\xc1\xc3\xc7\x3b\x34\x67\x43\xb6\x13\x90\x20\ \xd5\x03\xbe\x57\x80\x50\x51\x21\x58\xf4\xf1\xe5\x64\x8e\x70\x5d\ \x13\x53\x88\x34\x80\xa8\xab\x11\xf3\x40\xcc\x5a\xa8\xac\x58\xbb\ \x30\x71\xd4\xb5\xbd\x3f\x6b\xc0\x8f\xea\x4d\xac\x11\xef\x68\x08\ \xb7\x19\x70\x38\xb4\xc9\xa7\xdf\x94\x69\x08\xd7\x15\x9e\x47\x6d\ \x61\xa8\xa4\xf0\x84\xb8\x90\xc9\xb3\xe0\x5f\xcf\xe6\x88\xb5\x80\ \x47\xc1\x39\x31\x65\x6a\x9e\x85\x81\xe0\x12\x17\x9e\x74\x1f\xab\ \x01\x9b\x5d\x11\x80\x8d\x5a\xe0\x5e\x44\x3e\xe4\xbe\xc2\x15\x1f\ \xfb\x1d\xe0\x57\xdd\xa7\x69\x24\x3d\x18\x2f\x16\xe5\x9e\x63\x4d\ \xb5\xf4\xd4\xa2\xbc\x30\x7e\xcf\x95\x9c\x6f\xf0\x3d\x6a\x97\xf0\ \x60\xbc\xf0\x64\x87\xb7\x1a\x38\xb9\xa1\x90\x29\xbc\xf8\xed\x23\ \xd5\x06\xd2\xfc\x55\xed\xee\x03\x49\x0a\x16\xae\x2e\xf0\x32\xc6\ \x41\x24\x8a\x91\xf0\x75\xc2\xd6\x66\xf8\x52\xaf\xe2\x40\x9c\x83\ \xa4\xe7\x4d\x92\xc4\x9e\x42\x82\xcf\xbb\x29\xe0\x78\xac\xb7\x22\ \xaf\x21\x72\x61\x02\x38\xdc\x7b\x9a\x3b\xcc\x71\xb7\xd9\x9e\x98\ \x46\x61\x4c\x1d\xdc\x05\x0e\x88\x5b\x0c\xc8\x74\xb9\x5f\x6a\x96\ \xeb\x6b\x13\x4b\xde\xe9\x29\x53\x23\xbd\xf9\x01\x75\xa9\xff\x83\ \x70\xae\x44\x2e\x4e\x34\x0e\x9a\x73\xbc\x77\x14\x52\xee\x1c\x79\ \x16\xbe\xcd\xf8\x70\x3a\x0a\x47\x6c\xf8\x5c\x20\x79\x97\x84\x6d\ \x85\x0f\x39\xbd\xc2\x3f\x1e\x13\xf3\x7c\x63\x9f\x4e\x80\xd3\x91\ \xb5\x77\x8e\x8f\xd2\xf9\x56\xe4\x75\x44\x6e\x4c\x35\x8a\x43\x85\ \xea\x39\x8c\xaf\x50\x20\x89\xcb\xfc\xb3\x48\x5c\x1a\x69\x13\xbb\ \x97\x36\x5f\x62\x7c\x36\xf0\x71\xda\x5f\x98\x5c\x65\x22\x79\x9b\ \x93\xba\x2a\xf7\xef\xcd\xee\x88\xdc\xbe\x22\xd9\x88\x67\x80\xb7\ \xdf\x9d\x02\x95\x31\xcf\x42\xd5\xc6\x35\x16\x87\x79\xff\x05\x6b\ \x72\x80\xe0\x35\x0e\xaf\x5f\x00\x11\x7e\x2f\xca\xf2\x62\x7c\x89\ \x48\x55\xa3\x61\xea\x95\x39\x2f\xad\x3f\xdb\x73\xbd\x8e\xc8\xa3\ \xbf\x40\xf3\x42\xa1\xcd\xbd\x79\x97\xda\xfa\xa9\x78\x8d\x0e\xe3\ \xd6\x54\xa1\x33\xd3\xab\x9c\x60\x52\xdf\x24\xde\x9d\x49\xad\xba\ \xed\x61\x8d\xf8\xfe\xd5\x9d\x6f\xf2\xe0\x5a\x9b\xa2\x6c\xc7\x12\ \x0a\x71\xae\x6b\x89\x04\x3f\xe2\x89\xb8\x69\xcc\x2f\x63\x19\x9a\ \x6d\xdb\xfa\x2e\x4d\xe2\xde\xcc\xe6\x72\xfc\xd7\x0f\xae\xef\x49\ \xe4\xff\xfb\x02\x27\xea\xf7\xb1\x15\x44\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x0c\ \x00\x19\xf2\x3c\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x08\ \x05\xe2\x59\x27\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x03\ \x00\x00\x7d\xfe\ \x00\x77\ \x00\x69\x00\x6e\ \x00\x03\ \x00\x00\x73\x73\ \x00\x6d\ \x00\x61\x00\x63\ \x00\x0a\ \x02\x6b\x3c\x87\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x33\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x06\xc8\x40\x47\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x72\x00\x65\x00\x64\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0f\x47\x85\x87\ \x00\x65\ \x00\x78\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x70\x00\x64\x00\x66\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x08\x68\x27\x47\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x06\x52\xd9\xe7\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x70\x00\x72\x00\x69\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0b\x0e\x42\x07\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x63\x00\x6f\x00\x70\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0f\x5a\x2e\x27\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x75\x00\x6e\x00\x64\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x09\xc8\x40\xc7\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x75\x00\x6e\x00\x64\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x05\x68\x0e\x67\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x73\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x0a\x10\x36\x07\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x63\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0b\x21\x0f\x87\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x6f\x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x03\x30\x79\x47\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x63\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x07\xc5\x9b\xc7\ \x00\x7a\ \x00\x6f\x00\x6f\x00\x6d\x00\x6f\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x0b\x04\x5d\xe7\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x69\x00\x74\x00\x61\x00\x6c\x00\x69\x00\x63\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x04\x14\x52\xc7\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x6e\x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x04\x8e\xa1\x07\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x6c\x00\x65\x00\x66\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0d\x7e\xa2\x67\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x62\x00\x6f\x00\x6c\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0d\xc9\x3b\xe7\ \x00\x65\ \x00\x64\x00\x69\x00\x74\x00\x70\x00\x61\x00\x73\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x04\x11\x7b\x87\ \x00\x7a\ \x00\x6f\x00\x6f\x00\x6d\x00\x69\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\xba\x29\x27\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x6a\x00\x75\x00\x73\x00\x74\x00\x69\x00\x66\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x1e\x00\x02\x00\x00\x00\x04\x00\x00\x00\x03\ \x00\x00\x00\x52\x00\x02\x00\x00\x00\x13\x00\x00\x00\x1a\ \x00\x00\x00\x46\x00\x02\x00\x00\x00\x13\x00\x00\x00\x07\ \x00\x00\x00\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x95\ \x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x19\ \x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x00\xd8\x5a\ \x00\x00\x01\xaa\x00\x00\x00\x00\x00\x01\x00\x00\xb9\x2f\ \x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x00\xd3\x9e\ \x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x00\xc3\xb5\ \x00\x00\x02\x26\x00\x00\x00\x00\x00\x01\x00\x00\xc6\xb9\ \x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\xa6\x88\ \x00\x00\x00\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x90\xe8\ \x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x83\x19\ \x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xbb\xa6\ \x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x8e\x3f\ \x00\x00\x01\x34\x00\x00\x00\x00\x00\x01\x00\x00\x9f\x9c\ \x00\x00\x01\x70\x00\x00\x00\x00\x00\x01\x00\x00\xab\x41\ \x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x00\xc0\x74\ \x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x96\x9c\ \x00\x00\x01\x8c\x00\x00\x00\x00\x00\x01\x00\x00\xb2\xad\ \x00\x00\x02\x44\x00\x00\x00\x00\x00\x01\x00\x00\xc9\x5e\ \x00\x00\x02\x62\x00\x00\x00\x00\x00\x01\x00\x00\xcd\xd0\ \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x8a\x18\ \x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00\x9b\xcd\ \x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x7e\x2c\ \x00\x00\x01\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x4f\xc2\ \x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x00\x77\x88\ \x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x60\x54\ \x00\x00\x02\x26\x00\x00\x00\x00\x00\x01\x00\x00\x64\xec\ \x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\x3c\xa0\ \x00\x00\x00\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x23\x3c\ \x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x12\x1b\ \x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x55\x42\ \x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x1d\xba\ \x00\x00\x01\x34\x00\x00\x00\x00\x00\x01\x00\x00\x35\xca\ \x00\x00\x01\x70\x00\x00\x00\x00\x00\x01\x00\x00\x41\x5a\ \x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x5b\xc4\ \x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x67\ \x00\x00\x01\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x47\x46\ \x00\x00\x02\x44\x00\x00\x00\x00\x00\x01\x00\x00\x69\xc3\ \x00\x00\x02\x62\x00\x00\x00\x00\x00\x01\x00\x00\x70\x12\ \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x18\xf7\ \x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00\x31\x27\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/designer/0000755000076500000240000000000012536324427017372 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/designer/calculatorform/0000755000076500000240000000000012536324427022407 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/designer/calculatorform/calculatorform.py0000755000076500000240000000541012536324427026001 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui from ui_calculatorform import Ui_CalculatorForm class CalculatorForm(QtGui.QWidget): def __init__(self, parent=None): super(CalculatorForm, self).__init__(parent) self.ui = Ui_CalculatorForm() self.ui.setupUi(self) @QtCore.pyqtSlot(int) def on_inputSpinBox1_valueChanged(self, value): self.ui.outputWidget.setText(str(value + self.ui.inputSpinBox2.value())) @QtCore.pyqtSlot(int) def on_inputSpinBox2_valueChanged(self, value): self.ui.outputWidget.setText(str(value + self.ui.inputSpinBox1.value())) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) calculator = CalculatorForm() calculator.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/designer/calculatorform/calculatorform.ui0000644000076500000240000001575612536324427026001 0ustar philstaff00000000000000 CalculatorForm CalculatorForm 0 0 400 300 5 5 0 0 Calculator Form 9 6 horizontalSpacer 239 9 152 52 Qt::Horizontal 40 20 label_3_2 169 9 20 52 = Qt::AlignCenter 1 6 label_2_2_2 1 1 36 17 Output outputWidget 1 24 36 27 QFrame::Box QFrame::Sunken 0 Qt::AlignAbsolute|Qt::AlignBottom|Qt::AlignCenter|Qt::AlignHCenter|Qt::AlignHorizontal_Mask|Qt::AlignJustify|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing|Qt::AlignVCenter|Qt::AlignVertical_Mask verticalSpacer 89 67 20 224 Qt::Vertical 20 40 1 6 label_2 1 1 46 19 Input 2 inputSpinBox2 1 26 46 25 label_3 63 9 20 52 + Qt::AlignCenter 1 6 label 1 1 46 19 Input 1 inputSpinBox1 1 26 46 25 PyQt-x11-gpl-4.11.4/examples/designer/calculatorform/ui_calculatorform.py0000644000076500000240000001315312536324427026476 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'calculatorform.ui' # # Created: Mon Jan 23 13:21:45 2006 # by: PyQt4 UI code generator vsnapshot-20060120 # # WARNING! All changes made in this file will be lost! import sys from PyQt4 import QtCore, QtGui class Ui_CalculatorForm(object): def setupUi(self, CalculatorForm): CalculatorForm.setObjectName("CalculatorForm") CalculatorForm.resize(QtCore.QSize(QtCore.QRect(0,0,400,300).size()).expandedTo(CalculatorForm.minimumSizeHint())) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(5),QtGui.QSizePolicy.Policy(5)) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(CalculatorForm.sizePolicy().hasHeightForWidth()) CalculatorForm.setSizePolicy(sizePolicy) self.gridlayout = QtGui.QGridLayout(CalculatorForm) self.gridlayout.setMargin(9) self.gridlayout.setSpacing(6) self.gridlayout.setObjectName("gridlayout") spacerItem = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) self.gridlayout.addItem(spacerItem,0,6,1,1) self.label_3_2 = QtGui.QLabel(CalculatorForm) self.label_3_2.setGeometry(QtCore.QRect(169,9,20,52)) self.label_3_2.setAlignment(QtCore.Qt.AlignCenter) self.label_3_2.setObjectName("label_3_2") self.gridlayout.addWidget(self.label_3_2,0,4,1,1) self.vboxlayout = QtGui.QVBoxLayout() self.vboxlayout.setMargin(1) self.vboxlayout.setSpacing(6) self.vboxlayout.setObjectName("vboxlayout") self.label_2_2_2 = QtGui.QLabel(CalculatorForm) self.label_2_2_2.setGeometry(QtCore.QRect(1,1,36,17)) self.label_2_2_2.setObjectName("label_2_2_2") self.vboxlayout.addWidget(self.label_2_2_2) self.outputWidget = QtGui.QLabel(CalculatorForm) self.outputWidget.setGeometry(QtCore.QRect(1,24,36,27)) self.outputWidget.setFrameShape(QtGui.QFrame.Box) self.outputWidget.setFrameShadow(QtGui.QFrame.Sunken) self.outputWidget.setAlignment(QtCore.Qt.AlignAbsolute|QtCore.Qt.AlignBottom|QtCore.Qt.AlignCenter|QtCore.Qt.AlignHCenter|QtCore.Qt.AlignHorizontal_Mask|QtCore.Qt.AlignJustify|QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignRight|QtCore.Qt.AlignTop|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter|QtCore.Qt.AlignVertical_Mask) self.outputWidget.setObjectName("outputWidget") self.vboxlayout.addWidget(self.outputWidget) self.gridlayout.addLayout(self.vboxlayout,0,5,1,1) spacerItem1 = QtGui.QSpacerItem(20,40,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) self.gridlayout.addItem(spacerItem1,1,2,1,1) self.vboxlayout1 = QtGui.QVBoxLayout() self.vboxlayout1.setMargin(1) self.vboxlayout1.setSpacing(6) self.vboxlayout1.setObjectName("vboxlayout1") self.label_2 = QtGui.QLabel(CalculatorForm) self.label_2.setGeometry(QtCore.QRect(1,1,46,19)) self.label_2.setObjectName("label_2") self.vboxlayout1.addWidget(self.label_2) self.inputSpinBox2 = QtGui.QSpinBox(CalculatorForm) self.inputSpinBox2.setGeometry(QtCore.QRect(1,26,46,25)) self.inputSpinBox2.setObjectName("inputSpinBox2") self.vboxlayout1.addWidget(self.inputSpinBox2) self.gridlayout.addLayout(self.vboxlayout1,0,3,1,1) self.label_3 = QtGui.QLabel(CalculatorForm) self.label_3.setGeometry(QtCore.QRect(63,9,20,52)) self.label_3.setAlignment(QtCore.Qt.AlignCenter) self.label_3.setObjectName("label_3") self.gridlayout.addWidget(self.label_3,0,1,1,1) self.vboxlayout2 = QtGui.QVBoxLayout() self.vboxlayout2.setMargin(1) self.vboxlayout2.setSpacing(6) self.vboxlayout2.setObjectName("vboxlayout2") self.label = QtGui.QLabel(CalculatorForm) self.label.setGeometry(QtCore.QRect(1,1,46,19)) self.label.setObjectName("label") self.vboxlayout2.addWidget(self.label) self.inputSpinBox1 = QtGui.QSpinBox(CalculatorForm) self.inputSpinBox1.setGeometry(QtCore.QRect(1,26,46,25)) self.inputSpinBox1.setObjectName("inputSpinBox1") self.vboxlayout2.addWidget(self.inputSpinBox1) self.gridlayout.addLayout(self.vboxlayout2,0,0,1,1) self.retranslateUi(CalculatorForm) QtCore.QMetaObject.connectSlotsByName(CalculatorForm) def tr(self, string): return QtGui.QApplication.translate("CalculatorForm", string, None, QtGui.QApplication.UnicodeUTF8) def retranslateUi(self, CalculatorForm): CalculatorForm.setObjectName(self.tr("CalculatorForm")) CalculatorForm.setWindowTitle(self.tr("Calculator Form")) self.label_3_2.setObjectName(self.tr("label_3_2")) self.label_3_2.setText(self.tr("=")) self.label_2_2_2.setObjectName(self.tr("label_2_2_2")) self.label_2_2_2.setText(self.tr("Output")) self.outputWidget.setObjectName(self.tr("outputWidget")) self.outputWidget.setText(self.tr("0")) self.label_2.setObjectName(self.tr("label_2")) self.label_2.setText(self.tr("Input 2")) self.inputSpinBox2.setObjectName(self.tr("inputSpinBox2")) self.label_3.setObjectName(self.tr("label_3")) self.label_3.setText(self.tr("+")) self.label.setObjectName(self.tr("label")) self.label.setText(self.tr("Input 1")) self.inputSpinBox1.setObjectName(self.tr("inputSpinBox1")) PyQt-x11-gpl-4.11.4/examples/designer/plugins/0000755000076500000240000000000012536324427021053 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/designer/plugins/plugins.py0000755000076500000240000000675012536324427023121 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Riverbank Computing Limited nor the names of ## its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import sys import os from PyQt4 import QtCore, QtGui app = QtGui.QApplication(sys.argv) QtGui.QMessageBox.information(None, "PyQt Designer Plugins", "

      This example will start Qt Designer when you click the OK " "button.

      " "

      Before doing so it sets the PYQTDESIGNERPATH environment " "variable to the python directory that is part of this " "example. This directory contains all the example Python plugin " "modules.

      " "

      It also sets the PYTHONPATH environment variable to the " "widgets directory that is also part of this example. This " "directory contains the Python modules that implement the example " "custom widgets.

      " "

      All of the example custom widgets should then appear in " "Designer's widget box in the PyQt Examples group.

      ") # Tell Qt Designer where it can find the directory containing the plugins and # Python where it can find the widgets. base = os.path.dirname(__file__) env = os.environ.copy() env['PYQTDESIGNERPATH'] = os.path.join(base, 'python') env['PYTHONPATH'] = os.path.join(base, 'widgets') qenv = ['%s=%s' % (name, value) for name, value in env.items()] # Start Designer. designer = QtCore.QProcess() designer.setEnvironment(qenv) designer_bin = QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.BinariesPath) if sys.platform == 'darwin': designer_bin += '/Designer.app/Contents/MacOS/Designer' else: designer_bin += '/designer' designer.start(designer_bin) designer.waitForFinished(-1) sys.exit(designer.exitCode()) PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/0000755000076500000240000000000012536324427022374 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/analogclockplugin.py0000644000076500000240000001270012536324427026442 0ustar philstaff00000000000000#!/usr/bin/env python """ analogclockplugin.py An analog clock custom widget plugin for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtGui, QtDesigner from analogclock import PyAnalogClock class PyAnalogClockPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): """PyAnalogClockPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin) Provides a Python custom plugin for Qt Designer by implementing the QDesignerCustomWidgetPlugin via a PyQt-specific custom plugin class. """ # The __init__() method is only used to set up the plugin and define its # initialized variable. def __init__(self, parent=None): super(PyAnalogClockPlugin, self).__init__(parent) self.initialized = False # The initialize() and isInitialized() methods allow the plugin to set up # any required resources, ensuring that this can only happen once for each # plugin. def initialize(self, core): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized # This factory method creates new instances of our custom widget with the # appropriate parent. def createWidget(self, parent): return PyAnalogClock(parent) # This method returns the name of the custom widget class that is provided # by this plugin. def name(self): return "PyAnalogClock" # Returns the name of the group in Qt Designer's widget box that this # widget belongs to. def group(self): return "PyQt Examples" # Returns the icon used to represent the custom widget in Qt Designer's # widget box. def icon(self): return QtGui.QIcon(_logo_pixmap) # Returns a short description of the custom widget for use in a tool tip. def toolTip(self): return "" # Returns a short description of the custom widget for use in a "What's # This?" help message for the widget. def whatsThis(self): return "" # Returns True if the custom widget acts as a container for other widgets; # otherwise returns False. Note that plugins for custom containers also # need to provide an implementation of the QDesignerContainerExtension # interface if they need to add custom editing support to Qt Designer. def isContainer(self): return False # Returns an XML description of a custom widget instance that describes # default values for its properties. Each custom widget created by this # plugin will be configured using this description. def domXml(self): return '\n' \ ' \n' \ ' The current time\n' \ ' \n' \ ' \n' \ ' The analog clock widget displays the current ' \ 'time.\n' \ ' \n' \ '\n' # Returns the module containing the custom widget class. It may include # a module path. def includeFile(self): return "analogclock" # Define the image used for the icon. _logo_16x16_xpm = [ "16 16 58 1", "L c #2d2d2d", "N c #4f4f4f", "K c #636363", "J c #666666", "I c #696969", "D c #727272", "F c #737373", "O c #757575", "G c #7f7f7f", "o c #878787", "t c #888888", "Y c #898989", "c c #8a8a8a", "d c #8b8b8b", "H c #8d8d8d", "Q c #8f8f8f", "b c #909090", "M c #959595", "g c #979797", "n c #989898", "x c #999999", "0 c #9a9a9a", "X c #9b9b9b", "a c #9d9d9d", "E c #9e9e9e", "1 c #9f9f9f", "T c #a0a0a0", "v c #a1a1a1", "r c #a2a2a2", "B c #a6a6a6", "R c #a7a7a7", "3 c #a8a8a8", "z c #aaaaaa", "A c #ababab", "m c #acacac", "h c #adadad", "u c #b1b1b1", "q c #b2b2b2", "V c #bfbfbf", "W c #c6c6c6", "w c #c7c7c7", "s c #c8c8c8", "p c #c9c9c9", "k c #cdcdcd", "l c #cfcfcf", "2 c #d3d3d3", "S c #d4d4d4", "C c #d5d5d5", "y c #d8d8d8", "# c #d9d9d9", "e c #dadada", "i c #dbdbdb", "P c #dcdcdc", "U c #dfdfdf", "j c #e1e1e1", "f c #fbfbfb", "Z c #fcfcfc", ". c #ffffff", "....#abcdbae....", "..fghijkljimnf..", ".fopjjjqrjjjstf.", ".gsjjjjuvjjjjwx.", "yvjjjjjzbjjjjjAi", "BCjjjjjaDjjjjjiE", "bjjjjjjEFjjjjjjG", "HjjjjjjIJjjjjjjc", "HjjjjjjnKLtjjjjc", "bjjjjjjj#MNOPjjQ", "RSjjjjjjjj#mdPiE", "#TjjjjjjjjjjUjzP", ".nVjjjjjjjjjjWX.", ".fEVjjjjjjjjWYZ.", "..f012jjjj2EXZ..", "....i3QccQ3P...."] _logo_pixmap = QtGui.QPixmap(_logo_16x16_xpm) PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/bubbleswidgetplugin.py0000644000076500000240000001200012536324427027000 0ustar philstaff00000000000000#!/usr/bin/env python """ bubbleswidgetplugin.py A bubbles widget custom widget plugin for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtGui, QtDesigner from bubbleswidget import BubblesWidget class BubblesPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): """BubblesPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin) Provides a Python custom plugin for Qt Designer by implementing the QDesignerCustomWidgetPlugin via a PyQt-specific custom plugin class. """ # The __init__() method is only used to set up the plugin and define its # initialized variable. def __init__(self, parent=None): super(BubblesPlugin, self).__init__(parent) self.initialized = False # The initialize() and isInitialized() methods allow the plugin to set up # any required resources, ensuring that this can only happen once for each # plugin. def initialize(self, core): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized # This factory method creates new instances of our custom widget with the # appropriate parent. def createWidget(self, parent): return BubblesWidget(parent) # This method returns the name of the custom widget class that is provided # by this plugin. def name(self): return "BubblesWidget" # Returns the name of the group in Qt Designer's widget box that this # widget belongs to. def group(self): return "PyQt Examples" # Returns the icon used to represent the custom widget in Qt Designer's # widget box. def icon(self): return QtGui.QIcon(_logo_pixmap) # Returns a short description of the custom widget for use in a tool tip. def toolTip(self): return "" # Returns a short description of the custom widget for use in a "What's # This?" help message for the widget. def whatsThis(self): return "" # Returns True if the custom widget acts as a container for other widgets; # otherwise returns False. Note that plugins for custom containers also # need to provide an implementation of the QDesignerContainerExtension # interface if they need to add custom editing support to Qt Designer. def isContainer(self): return False # Returns an XML description of a custom widget instance that describes # default values for its properties. Each custom widget created by this # plugin will be configured using this description. def domXml(self): return '\n' \ ' \n' \ ' Click and drag here\n' \ ' \n' \ ' \n' \ ' The bubbles widget displays colorful ' \ 'bubbles.\n' \ ' \n' \ '\n' # Returns the module containing the custom widget class. It may include # a module path. def includeFile(self): return "bubbleswidget" # Define the image used for the icon. _logo_16x16_xpm = [ "16 16 48 1", "O c #d0cfcf", "d c #d0d0d0", "i c #d3d3d2", "q c #d3d3d3", "M c #dad7d7", "g c #dad8d7", "e c #dcd9d9", "f c #e0dcdc", "c c #e0e0e0", "L c #e1dddb", "D c #e1dddc", "E c #e1e0e0", "R c #e1e1e1", "Q c #e2dedc", "p c #e2dedd", "j c #e3dfdf", "b c #e7e7e7", "S c #ebe4e3", "z c #ebe5e3", "r c #ece6e8", "a c #eeeeee", "N c #f6edeb", "I c #f6eeed", "o c #f6eeee", "h c #f7f7f7", "K c #f8efee", "C c #f8efef", "T c #f8f8f8", "y c #f9f1f0", "H c #f9f1f1", "n c #f9f1f2", "m c #f9f1f3", "k c #f9f2f4", "x c #faf3f5", "l c #faf3f6", "w c #faf3f7", "G c #faf3f8", "v c #fbf5fa", "s c #fbf5fb", "u c #fbf5fc", "t c #fbf5fd", "# c #fbfbfb", "J c #fcf6fe", "B c #fcf7fe", "P c #fcfcfc", "F c #fdf8ff", "A c #fefbff", ". c #ffffff", ".....#abba#.....", "...#cdeffgdc#...", "..hijkllmnopqh..", ".#irstuvwxnyzq#.", ".cjs.ABuvwknCDE.", "#dktAAFtsGlmHId#", "aeluBFJusGlmHKga", "bflvutusvGlmHKLb", "bfmwvssvGwxmHKLb", "agnxwGGGwlmnyKMa", "#donklllxmnHCNOP", ".cpynmmmmnHCKQR.", ".#qzCHHHHyCKSqP.", "..hqDIKKKKNQqT..", "...#EdgLLMORP...", ".....#abbaP....."] _logo_pixmap = QtGui.QPixmap(_logo_16x16_xpm) PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/counterlabelplugin.py0000644000076500000240000000662112536324427026651 0ustar philstaff00000000000000#!/usr/bin/env python """ counterlabelplugin.py A counter label custom widget plugin for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtGui, QtDesigner from counterlabel import CounterLabel class CounterLabelPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): """CounterLabelPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin) Provides a Python custom plugin for Qt Designer by implementing the QDesignerCustomWidgetPlugin via a PyQt-specific custom plugin class. """ # The __init__() method is only used to set up the plugin and define its # initialized variable. def __init__(self, parent=None): super(CounterLabelPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized # This factory method creates new instances of our custom widget with the # appropriate parent. def createWidget(self, parent): widget = CounterLabel(parent) widget.setValue(1) return widget # This method returns the name of the custom widget class that is provided # by this plugin. def name(self): return "CounterLabel" # Returns the name of the group in Qt Designer's widget box that this # widget belongs to. def group(self): return "PyQt Examples" # Returns the icon used to represent the custom widget in Qt Designer's # widget box. def icon(self): return QtGui.QIcon() # Returns a short description of the custom widget for use in a tool tip. def toolTip(self): return "" # Returns a short description of the custom widget for use in a "What's # This?" help message for the widget. def whatsThis(self): return "" # Returns True if the custom widget acts as a container for other widgets; # otherwise returns False. Note that plugins for custom containers also # need to provide an implementation of the QDesignerContainerExtension # interface if they need to add custom editing support to Qt Designer. def isContainer(self): return False # Returns an XML description of a custom widget instance that describes # default values for its properties. Each custom widget created by this # plugin will be configured using this description. def domXml(self): return '\n' # Returns the module containing the custom widget class. It may include # a module path. def includeFile(self): return "counterlabel" PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/datetimeeditplugin.py0000644000076500000240000001051112536324427026625 0ustar philstaff00000000000000#============================================================================# # Designer plugins for PyDateEdit and PyDateTimeEdit # #----------------------------------------------------------------------------# # Copyright (c) 2008 by Denviso GmbH, # # # # All Rights Reserved # # # # Permission to use, copy, modify, and distribute this software and its # # documentation for any purpose and without fee is hereby granted, # # provided that the above copyright notice appear in all copies and that # # both that copyright notice and this permission notice appear in # # supporting documentation. # # # # DENVISO DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS # # SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # # AND FITNESS, IN NO EVENT SHALL DENVISO BE LIABLE FOR ANY # # SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE # # OR PERFORMANCE OF THIS SOFTWARE. # #----------------------------------------------------------------------------# from PyQt4 import QtGui, QtDesigner from datetimeedit import PyDateEdit, PyDateTimeEdit #============================================================================# # The group name in designer widgetbox # #----------------------------------------------------------------------------# DESIGNER_GROUP_NAME = "PyQt Examples" #============================================================================# # Plugin for PyDateEdit # #----------------------------------------------------------------------------# class PyDateEditPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(PyDateEditPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def isContainer(self): return False def icon(self): return QtGui.QIcon() def domXml(self): return '\n\n' def group(self): return DESIGNER_GROUP_NAME def includeFile(self): return "datetimeedit" def name(self): return "PyDateEdit" def toolTip(self): return "" def whatsThis(self): return "" def createWidget(self, parent): return PyDateEdit(parent) #============================================================================# # Plugin for PyDateTimeEdit # #----------------------------------------------------------------------------# class PyDateTimeEditPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(PyDateTimeEditPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def isContainer(self): return False def icon(self): return QtGui.QIcon() def domXml(self): return '\n\n' def group(self): return DESIGNER_GROUP_NAME def includeFile(self): return "datetimeedit" def name(self): return "PyDateTimeEdit" def toolTip(self): return "" def whatsThis(self): return "" def createWidget(self, parent): return PyDateTimeEdit(parent) PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/helloglwidgetplugin.py0000644000076500000240000000700512536324427027021 0ustar philstaff00000000000000#!/usr/bin/env python """ helloglwidgetplugin.py A simple OpenGL custom widget plugin for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtGui, QtDesigner from helloglwidget import HelloGLWidget class HelloGLWidgetPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): """HelloGLWidgetPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin) Provides a Python custom plugin for Qt Designer by implementing the QDesignerCustomWidgetPlugin via a PyQt-specific custom plugin class. """ # The __init__() method is only used to set up the plugin and define its # initialized variable. def __init__(self, parent=None): super(HelloGLWidgetPlugin, self).__init__(parent) self.initialized = False # The initialize() and isInitialized() methods allow the plugin to set up # any required resources, ensuring that this can only happen once for each # plugin. def initialize(self, core): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized # This factory method creates new instances of our custom widget with the # appropriate parent. def createWidget(self, parent): return HelloGLWidget(parent) # This method returns the name of the custom widget class that is provided # by this plugin. def name(self): return "HelloGLWidget" # Returns the name of the group in Qt Designer's widget box that this # widget belongs to. def group(self): return "PyQt Examples" # Returns the icon used to represent the custom widget in Qt Designer's # widget box. def icon(self): return QtGui.QIcon() # Returns a short description of the custom widget for use in a tool tip. def toolTip(self): return "" # Returns a short description of the custom widget for use in a "What's # This?" help message for the widget. def whatsThis(self): return "" # Returns True if the custom widget acts as a container for other widgets; # otherwise returns False. Note that plugins for custom containers also # need to provide an implementation of the QDesignerContainerExtension # interface if they need to add custom editing support to Qt Designer. def isContainer(self): return False # Returns an XML description of a custom widget instance that describes # default values for its properties. Each custom widget created by this # plugin will be configured using this description. def domXml(self): return '\n' # Returns the module containing the custom widget class. It may include # a module path. def includeFile(self): return "helloglwidget" PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/highlightedtexteditplugin.py0000644000076500000240000002216612536324427030227 0ustar philstaff00000000000000#!/usr/bin/env python """ highlightedtextplugin.py A display text custom widget plugin for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtCore, QtGui, QtDesigner from highlightedtextedit import HighlightedTextEdit def Q_TYPEID(class_name): return "com.trolltech.Qt.Designer.TaskMenu" class HighlightedTextEditPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): """HighlightedTextEditPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin) Provides a Python custom plugin for Qt Designer by implementing the QDesignerCustomWidgetPlugin via a PyQt-specific custom plugin class. """ # The __init__() method is only used to set up the plugin and define its # initialized variable. def __init__(self, parent=None): super(HighlightedTextEditPlugin, self).__init__(parent) self.initialized = False # The initialize() and isInitialized() methods allow the plugin to set up # any required resources, ensuring that this can only happen once for each # plugin. def initialize(self, formEditor): if self.initialized: return # We register an extension factory to add a extension to each form's # task menu. manager = formEditor.extensionManager() if manager: self.factory = HighlightedTextEditTaskMenuFactory(manager) manager.registerExtensions( self.factory, Q_TYPEID("QPyDesignerTaskMenuExtension") ) self.initialized = True def isInitialized(self): return self.initialized # This factory method creates new instances of our custom widget with the # appropriate parent. def createWidget(self, parent): widget = HighlightedTextEdit(parent) # We install an event filter on the text editor to prevent the # contents from being modified outside the custom editor dialog. widget.installEventFilter(self) return widget def eventFilter(self, obj, event): if isinstance(obj, QtGui.QTextEdit): if isinstance(event, QtGui.QKeyEvent): return True elif isinstance(event, QtGui.QFocusEvent): return True return False # This method returns the name of the custom widget class that is provided # by this plugin. def name(self): return "HighlightedTextEdit" # Returns the name of the group in Qt Designer's widget box that this # widget belongs to. def group(self): return "PyQt Examples" # Returns the icon used to represent the custom widget in Qt Designer's # widget box. def icon(self): return QtGui.QIcon(_logo_pixmap) # Returns a short description of the custom widget for use in a tool tip. def toolTip(self): return "" # Returns a short description of the custom widget for use in a "What's # This?" help message for the widget. def whatsThis(self): return "" # Returns True if the custom widget acts as a container for other widgets; # otherwise returns False. Note that plugins for custom containers also # need to provide an implementation of the QDesignerContainerExtension # interface if they need to add custom editing support to Qt Designer. def isContainer(self): return False # Returns an XML description of a custom widget instance that describes # default values for its properties. Each custom widget created by this # plugin will be configured using this description. def domXml(self): return '\n' # Returns the module containing the custom widget class. It may include # a module path. def includeFile(self): return "highlightedtextedit" class HighlightedTextEditTaskMenuFactory(QtDesigner.QExtensionFactory): """HighlightedTextEditTaskMenuFactory(QtDesigner.QExtensionFactory) Provides """ def __init__(self, parent = None): QtDesigner.QExtensionFactory.__init__(self, parent) # This standard factory function returns an object to represent a task # menu entry. def createExtension(self, obj, iid, parent): if iid != Q_TYPEID("QPyDesignerTaskMenuExtension"): return None # We pass the instance of the custom widget to the object representing # the task menu entry so that the contents of the custom widget can be # modified. if isinstance(obj, HighlightedTextEdit): return HighlightedTextEditTaskMenu(obj, parent) return None class HighlightedTextEditTaskMenu(QtDesigner.QPyDesignerTaskMenuExtension): """HighlightedTextEditTaskMenu(QtDesigner.QPyDesignerTaskMenuExtension) Provides a task menu entry to enable text in the highlighted text editor to be edited via a dialog. """ def __init__(self, textEdit, parent): super(HighlightedTextEditTaskMenu, self).__init__(parent) self.textEdit = textEdit # Create the action to be added to the form's existing task menu # and connect it to a slot in this class. self.editStateAction = QtGui.QAction("Edit Text...", self, triggered=self.editText) def preferredEditAction(self): return self.editStateAction def taskActions(self): return [self.editStateAction] # The editText() slot is called when the action that represents our task # menu entry is triggered. We open a dialog, passing the custom widget as # an argument. @QtCore.pyqtSlot() def editText(self): HighlightedTextEditDialog(self.textEdit).exec_() class HighlightedTextEditDialog(QtGui.QDialog): """HighlightedTextEditDialog(QtGui.QDialog) Provides a dialog that is used to edit the contents of the custom widget. """ def __init__(self, editor, parent=None): super(HighlightedTextEditDialog, self).__init__(parent) self.editor = editor self.textEdit = HighlightedTextEdit() self.textEdit.setCode(editor.getCode()) self.textEdit.installEventFilter(self) okButton = QtGui.QPushButton("&OK") okButton.clicked.connect(self.updateText) cancelButton = QtGui.QPushButton("&Cancel") cancelButton.clicked.connect(self.reject) buttonLayout = QtGui.QHBoxLayout() buttonLayout.addStretch(1) buttonLayout.addWidget(okButton) buttonLayout.addWidget(cancelButton) layout = QtGui.QVBoxLayout() layout.addWidget(self.textEdit) layout.addLayout(buttonLayout) self.setLayout(layout) def eventFilter(self, obj, event): if obj == self.textEdit: if isinstance(event, QtGui.QKeyEvent): if event.key() == QtCore.Qt.Key_Return and \ int(event.modifiers() & QtCore.Qt.ControlModifier) == QtCore.Qt.ControlModifier: if event.type() == QtGui.QEvent.KeyPress: cursor = self.textEdit.textCursor() char_format = cursor.charFormat() char_format.setFontPointSize(self.textEdit.font.pointSizeF()/2.0) block_format = cursor.blockFormat() cursor.insertBlock(block_format, char_format) self.textEdit.setTextCursor(cursor) return True return False # When we update the contents of the custom widget, we access its # properties via the QDesignerFormWindowInterface API so that Qt Designer # can integrate the changes we make into its undo-redo management. def updateText(self): formWindow = QtDesigner.QDesignerFormWindowInterface.findFormWindow(self.editor) if formWindow: formWindow.cursor().setProperty("code", self.textEdit.getCode()) self.accept() # Define the image used for the icon. _logo_16x16_xpm = [ "16 16 6 1", " c None", ". c #FFFFFF", "a c #000000", "b c #FF4040", "c c #40C040", "d c #4040FF", ".........b......", ".........b......", ".........b......", "...aaaa..bbbb...", "..a...a..b...b..", "..a...a..b...b..", "..a...a..b...b..", "...aaa.a.bbbb...", ".............d..", ".............d..", ".............d..", "...ccc....dddd..", "..c...c..d...d..", "..c......d...d..", "..c...c..d...d..", "...ccc....dddd.."] _logo_pixmap = QtGui.QPixmap(_logo_16x16_xpm) PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/multipagewidgetplugin.py0000644000076500000240000001225112536324427027361 0ustar philstaff00000000000000#============================================================================# # PyQt4 port of the designer/containerextension example from Qt v4.x # #----------------------------------------------------------------------------# from PyQt4 import QtGui, QtDesigner import sip from multipagewidget import PyMultiPageWidget Q_TYPEID = {'QPyDesignerContainerExtension': 'com.trolltech.Qt.Designer.Container', 'QPyDesignerPropertySheetExtension': 'com.trolltech.Qt.Designer.PropertySheet', 'QPyDesignerTaskMenuExtension': 'com.trolltech.Qt.Designer.TaskMenu', 'QPyDesignerMemberSheetExtension': 'com.trolltech.Qt.Designer.MemberSheet'} #============================================================================# # ContainerExtension # #----------------------------------------------------------------------------# class MultiPageWidgetContainerExtension(QtDesigner.QPyDesignerContainerExtension): def __init__(self, widget, parent=None): super(MultiPageWidgetContainerExtension, self).__init__(parent) self._widget = widget def addWidget(self, widget): self._widget.addPage(widget) def count(self): return self._widget.count() def currentIndex(self): return self._widget.getCurrentIndex() def insertWidget(self, index, widget): self._widget.insertPage(index, widget) def remove(self, index): self._widget.removePage(index) def setCurrentIndex(self, index): self._widget.setCurrentIndex(index) def widget(self, index): return self._widget.widget(index) #============================================================================# # ExtensionFactory # #----------------------------------------------------------------------------# class MultiPageWidgetExtensionFactory(QtDesigner.QExtensionFactory): def __init__(self, parent=None): super(MultiPageWidgetExtensionFactory, self).__init__(parent) def createExtension(self, obj, iid, parent): if iid != Q_TYPEID['QPyDesignerContainerExtension']: return None if isinstance(obj, PyMultiPageWidget): return MultiPageWidgetContainerExtension(obj, parent) return None #============================================================================# # CustomWidgetPlugin # #----------------------------------------------------------------------------# class MultiPageWidgetPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(MultiPageWidgetPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return manager = formEditor.extensionManager() if manager: self.factory = MultiPageWidgetExtensionFactory(manager) manager.registerExtensions(self.factory, Q_TYPEID['QPyDesignerContainerExtension']) self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): widget = PyMultiPageWidget(parent) widget.currentIndexChanged.connect(self.currentIndexChanged) widget.pageTitleChanged.connect(self.pageTitleChanged) return widget def name(self): return "PyMultiPageWidget" def group(self): return "PyQt Examples" def icon(self): return QtGui.QIcon() def toolTip(self): return "" def whatsThis(self): return "" def isContainer(self): return True def domXml(self): return ('' ' ' '') def includeFile(self): return "multipagewidget" def currentIndexChanged(self, index): widget = self.sender() if widget and isinstance(widget, PyMultiPageWidget): form = QtDesigner.QDesignerFormWindowInterface.findFormWindow(widget) if form: form.emitSelectionChanged() def pageTitleChanged(self, title): widget = self.sender() if widget and isinstance(widget, PyMultiPageWidget): page = widget.widget(widget.getCurrentIndex()) form = QtDesigner.QDesignerFormWindowInterface.findFormWindow(widget) if form: editor = form.core() manager = editor.extensionManager() sheet = manager.extension(page, Q_TYPEID['QPyDesignerPropertySheetExtension']) # This explicit cast is necessary here sheet = sip.cast(sheet, QtDesigner.QPyDesignerPropertySheetExtension) propertyIndex = sheet.indexOf('windowTitle') sheet.setChanged(propertyIndex, True) #============================================================================# # EOF # #----------------------------------------------------------------------------# PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/polygonwidgetplugin.py0000644000076500000240000001117612536324427027066 0ustar philstaff00000000000000#!/usr/bin/env python """ polygonwidgetplugin.py A polygon widget custom widget plugin for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtGui, QtDesigner from polygonwidget import PolygonWidget class PolygonWidgetPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): """PolygonWidgetPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin) Provides a Python custom plugin for Qt Designer by implementing the QDesignerCustomWidgetPlugin via a PyQt-specific custom plugin class. """ # The __init__() method is only used to set up the plugin and define its # initialized variable. def __init__(self, parent=None): super(PolygonWidgetPlugin, self).__init__(parent) self.initialized = False # The initialize() and isInitialized() methods allow the plugin to set up # any required resources, ensuring that this can only happen once for each # plugin. def initialize(self, core): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized # This factory method creates new instances of our custom widget with the # appropriate parent. def createWidget(self, parent): return PolygonWidget(parent) # This method returns the name of the custom widget class that is provided # by this plugin. def name(self): return "PolygonWidget" # Returns the name of the group in Qt Designer's widget box that this # widget belongs to. def group(self): return "PyQt Examples" # Returns the icon used to represent the custom widget in Qt Designer's # widget box. def icon(self): return QtGui.QIcon(_logo_pixmap) # Returns a short description of the custom widget for use in a tool tip. def toolTip(self): return "" # Returns a short description of the custom widget for use in a "What's # This?" help message for the widget. def whatsThis(self): return "" # Returns True if the custom widget acts as a container for other widgets; # otherwise returns False. Note that plugins for custom containers also # need to provide an implementation of the QDesignerContainerExtension # interface if they need to add custom editing support to Qt Designer. def isContainer(self): return False # Returns an XML description of a custom widget instance that describes # default values for its properties. Each custom widget created by this # plugin will be configured using this description. def domXml(self): return '\n' # Returns the module containing the custom widget class. It may include # a module path. def includeFile(self): return "polygonwidget" # Define the image used for the icon. _logo_16x16_xpm = [ "16 16 46 1", ". c #a5a5dc", "l c #a69fd6", "k c #a7a5da", "h c #a7a6dc", "a c #a7a7de", "Q c #a8a5da", "s c #a9a7d7", "R c #a9a9e0", "z c #abaad4", "E c #afafda", "M c #afafdb", "K c #b0a8e2", "o c #b1afe4", "p c #b2b2d7", "# c #b2b2ed", "i c #b39eb6", "F c #b3b3e1", "e c #b4b4ef", "t c #b58bab", "d c #b6b6f2", "n c #b798b8", "P c #b798b9", "c c #b8b6f2", "D c #b8b89c", "m c #b9648d", "J c #ba84b0", "A c #bdbdfb", "f c #bfbffe", "g c #c06996", "b c #c0c0ff", "B c #cbb889", "L c #cbb989", "O c #cfcf87", "I c #d09585", "w c #d0cf86", "x c #dede81", "G c #e8e87c", "q c #edde7b", "N c #f1e07b", "v c #f2e07b", "H c #f6e57c", "j c #fb917e", "u c #ffb580", "r c #ffda80", "C c #fffe80", "y c #ffff80", ".##############a", "#bbbbbbbbcdbbbbe", "#bbbbbbbfghbbbbe", "#bbbbbbbijkbbbbe", "#blmnobpqrsbbbbe", "#bbtuvwxyyzbbbbe", "#bbABCyyyyDEfbbe", "#bbbFGyyyyyHIJKe", "#bbbFGyyyyyHIJKe", "#bbALCyyyyDMfbbe", "#bbtuNOxyyzbbbbe", "#blmPobpqrsbbbbe", "#bbbbbbbijQbbbbe", "#bbbbbbbfghbbbbe", "#bbbbbbbbcdbbbbe", "aeeeeeeeeeeeeeeR"] _logo_pixmap = QtGui.QPixmap(_logo_16x16_xpm) PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/pydemoplugin.py0000644000076500000240000001006512536324427025464 0ustar philstaff00000000000000# A demonstration custom widget plugin for Qt Designer. # # Copyright (c) 2007 Phil Thompson from PyQt4 import QtGui, QtDesigner from pydemo import PyDemo # This class implements the interface expected by Qt Designer to access the # custom widget. See the description of the QDesignerCustomWidgetInterface # class for full details. class PyDemoPlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): # Initialise the instance. def __init__(self, parent=None): super(PyDemoPlugin, self).__init__(parent) self._initialized = False # Initialise the custom widget for use with the specified formEditor # interface. def initialize(self, formEditor): if self._initialized: return self._initialized = True # Return True if the custom widget has been intialised. def isInitialized(self): return self._initialized # Return a new instance of the custom widget with the given parent. def createWidget(self, parent): return PyDemo(parent) # Return the name of the class that implements the custom widget. def name(self): return "PyDemo" # Return the name of the group to which the custom widget belongs. A new # group will be created if it doesn't already exist. def group(self): return "PyQt Examples" # Return the icon used to represent the custom widget in Designer's widget # box. def icon(self): return QtGui.QIcon(_logo_pixmap) # Return a short description of the custom widget used by Designer in a # tool tip. def toolTip(self): return "PyQt demonstration widget" # Return a full description of the custom widget used by Designer in # "What's This?" help for the widget. def whatsThis(self): return "PyDemo is a demonstration custom widget written in Python " \ "using PyQt." # Return True if the custom widget acts as a container for other widgets. def isContainer(self): return False # Return an XML fragment that allows the default values of the custom # widget's properties to be overridden. def domXml(self): return '\n' \ ' \n' \ ' PyQt demonstration widget\n' \ ' \n' \ ' \n' \ ' PyDemo is a demonstration custom widget written ' \ 'in Python using PyQt.\n' \ ' \n' \ '\n' # Return the name of the module containing the class that implements the # custom widget. It may include a module path. def includeFile(self): return "pydemo" # Define the image used for the icon. _logo_16x16_xpm = [ "16 16 61 1", "6 c #5bbd7c", "a c #7aaada", "h c #7eaddb", "n c #7faddb", "E c #82afdc", "x c #83b0dd", "C c #84b0dd", "z c #84b1dd", "B c #85b1dd", "u c #87b2de", "U c #9ec1e4", "Z c #9fc1e4", "H c #a1c3e5", "Y c #a5c5e4", "V c #a6c6e4", "P c #afcbe2", "S c #afcbe3", "O c #b1cde9", "T c #b2cee9", "t c #b4cee3", "r c #b5cee3", "q c #c2d8ee", "0 c #c7dbef", "f c #cedddb", "b c #cfdddb", "1 c #d0e1f2", "J c #d8e2d2", "I c #d9e2d2", "# c #dfeaf6", "g c #e3edf7", "K c #ecf2f9", "N c #ecf3f9", "o c #eeecbb", "i c #f2edb2", "l c #f2edb3", "w c #f6eea6", "v c #f7eea6", "W c #fcee8c", "m c #fcfdfe", "L c #fdec73", "k c #fedd00", "e c #fede06", "p c #fede07", "j c #fee013", "X c #fee015", "s c #fee223", "d c #fee32c", "A c #fee749", "Q c #fee850", "R c #fee851", "D c #fee854", "y c #feea65", "M c #feec74", "c c #feed7c", "F c #feee85", "G c #feee86", "5 c #fef095", "4 c #fef195", "3 c #fef6bb", "2 c #fefdf5", ". c #fefefe", "..#abcdeedcfa#..", ".ghijkkkkkkjlhg.", "mnopkkkkkkkkponm", "qrskkkkkkkkkkstq", "uvkkkkkkkkkkkkwu", "xykkkkkkkkkkkkyx", "zAkkkkkkkkkkkkAB", "CDkkkkkkkkkkkkDC", "EFkkkkkkkkkkkkGE", "HIekkkkkkkkkkeJH", "KBLkkkkkkkkkkMBN", ".OPQkkkkkkkkRST.", "..UVWXkkkkXWYZ..", "...0123453210...", "6666666666666666", "BBBBBBBBBBBBBBBB"] _logo_pixmap = QtGui.QPixmap(_logo_16x16_xpm) PyQt-x11-gpl-4.11.4/examples/designer/plugins/python/pythonconsoleplugin.py0000644000076500000240000001103012536324427027064 0ustar philstaff00000000000000#!/usr/bin/env python """ pythonconsoleplugin.py A Python console custom widget plugin for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtGui, QtDesigner from pythonconsolewidget import PythonConsoleWidget class PythonConsolePlugin(QtDesigner.QPyDesignerCustomWidgetPlugin): """PythonConsolePlugin(QtDesigner.QPyDesignerCustomWidgetPlugin) Provides a Python custom plugin for Qt Designer by implementing the QDesignerCustomWidgetPlugin via a PyQt-specific custom plugin class. """ # The __init__() method is only used to set up the plugin and define its # initialized variable. def __init__(self, parent=None): super(PythonConsolePlugin, self).__init__(parent) self.initialized = False # The initialize() and isInitialized() methods allow the plugin to set up # any required resources, ensuring that this can only happen once for each # plugin. def initialize(self, core): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized # This factory method creates new instances of our custom widget with the # appropriate parent. def createWidget(self, parent): return PythonConsoleWidget(parent) # This method returns the name of the custom widget class that is provided # by this plugin. def name(self): return "PythonConsoleWidget" # Returns the name of the group in Qt Designer's widget box that this # widget belongs to. def group(self): return "PyQt Examples" # Returns the icon used to represent the custom widget in Qt Designer's # widget box. def icon(self): return QtGui.QIcon(_logo_pixmap) # Returns a short description of the custom widget for use in a tool tip. def toolTip(self): return "" # Returns a short description of the custom widget for use in a "What's # This?" help message for the widget. def whatsThis(self): return "" # Returns True if the custom widget acts as a container for other widgets; # otherwise returns False. Note that plugins for custom containers also # need to provide an implementation of the QDesignerContainerExtension # interface if they need to add custom editing support to Qt Designer. def isContainer(self): return False # Returns an XML description of a custom widget instance that describes # default values for its properties. Each custom widget created by this # plugin will be configured using this description. def domXml(self): return '\n' \ ' \n' \ ' Python console\n' \ ' \n' \ ' \n' \ ' The Python console widget can be used to explore ' \ 'Qt Designer.\n' \ ' \n' \ '\n' # Returns the module containing the custom widget class. It may include # a module path. def includeFile(self): return "pythonconsolewidget" # Define the image used for the icon. _logo_16x16_xpm = [ "16 16 6 1", " c None", ". c #FFFFFF", "a c #000000", "b c #808080", "c c #C0C0C0", "d c #404040", "................", "................", "................", ".aa..aa..aa.....", "..aa..aa..aa....", "...aa..aa..aa...", "....aa..aa..aa..", ".....aa..aa..aa.", ".....aa..aa..aa.", "....aa..aa..aa..", "...aa..aa..aa...", "..aa..aa..aa....", ".aa..aa..aa.....", "................", "................", "................"] _logo_pixmap = QtGui.QPixmap(_logo_16x16_xpm) PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/0000755000076500000240000000000012536324427022521 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/analogclock.py0000755000076500000240000001424112536324427025355 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class PyAnalogClock(QtGui.QWidget): """PyAnalogClock(QtGui.QWidget) Provides an analog clock custom widget with signals, slots and properties. The implementation is based on the Analog Clock example provided with both Qt and PyQt. """ # Emitted when the clock's time changes. timeChanged = QtCore.pyqtSignal(QtCore.QTime) # Emitted when the clock's time zone changes. timeZoneChanged = QtCore.pyqtSignal(int) def __init__(self, parent=None): super(PyAnalogClock, self).__init__(parent) self.timeZoneOffset = 0 timer = QtCore.QTimer(self) timer.timeout.connect(self.update) timer.timeout.connect(self.updateTime) timer.start(1000) self.setWindowTitle(QtCore.QObject.tr(self, "Analog Clock")) self.resize(200, 200) self.hourHand = QtGui.QPolygon([ QtCore.QPoint(7, 8), QtCore.QPoint(-7, 8), QtCore.QPoint(0, -40) ]) self.minuteHand = QtGui.QPolygon([ QtCore.QPoint(7, 8), QtCore.QPoint(-7, 8), QtCore.QPoint(0, -70) ]) self.hourColor = QtGui.QColor(0, 127, 0) self.minuteColor = QtGui.QColor(0, 127, 127, 191) def paintEvent(self, event): side = min(self.width(), self.height()) time = QtCore.QTime.currentTime() time = time.addSecs(self.timeZoneOffset * 3600) painter = QtGui.QPainter() painter.begin(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.translate(self.width() / 2, self.height() / 2) painter.scale(side / 200.0, side / 200.0) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(QtGui.QBrush(self.hourColor)) painter.save() painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0))) painter.drawConvexPolygon(self.hourHand) painter.restore() painter.setPen(self.hourColor) for i in range(0, 12): painter.drawLine(88, 0, 96, 0) painter.rotate(30.0) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(QtGui.QBrush(self.minuteColor)) painter.save() painter.rotate(6.0 * (time.minute() + time.second() / 60.0)) painter.drawConvexPolygon(self.minuteHand) painter.restore() painter.setPen(QtGui.QPen(self.minuteColor)) for j in range(0, 60): if (j % 5) != 0: painter.drawLine(92, 0, 96, 0) painter.rotate(6.0) painter.end() def minimumSizeHint(self): return QtCore.QSize(50, 50) def sizeHint(self): return QtCore.QSize(100, 100) def updateTime(self): self.timeChanged.emit(QtCore.QTime.currentTime()) # The timeZone property is implemented using the getTimeZone() getter # method, the setTimeZone() setter method, and the resetTimeZone() method. # The getter just returns the internal time zone value. def getTimeZone(self): return self.timeZoneOffset # The setTimeZone() method is also defined to be a slot. The @pyqtSlot # decorator is used to tell PyQt which argument type the method expects, # and is especially useful when you want to define slots with the same # name that accept different argument types. @QtCore.pyqtSlot(int) def setTimeZone(self, value): self.timeZoneOffset = value self.timeZoneChanged.emit(value) self.update() # Qt's property system supports properties that can be reset to their # original values. This method enables the timeZone property to be reset. def resetTimeZone(self): self.timeZoneOffset = 0 self.timeZoneChanged.emit(0) self.update() # Qt-style properties are defined differently to Python's properties. # To declare a property, we call pyqtProperty() to specify the type and, # in this case, getter, setter and resetter methods. timeZone = QtCore.pyqtProperty(int, getTimeZone, setTimeZone, resetTimeZone) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) clock = PyAnalogClock() clock.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/bubbleswidget.py0000755000076500000240000002444412536324427025730 0ustar philstaff00000000000000#!/usr/bin/env python """ bubbleswidget.py A PyQt custom widget example for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ import random from PyQt4 import QtCore, QtGui class BaseClass(QtGui.QWidget): """BaseClass(QtGui.QWidget) Provides a base custom widget class to show that properties implemented in Python can be inherited and shown as belonging to distinct classes in Qt Designer's Property Editor. """ def __init__(self, parent=None): super(BaseClass, self).__init__(parent) self.resetAuthor() # Define getter, setter and resetter methods for the author property. def getAuthor(self): return self._author def setAuthor(self, name): self._author = name def resetAuthor(self): self._author = "David Boddie" author = QtCore.pyqtProperty(str, getAuthor, setAuthor, resetAuthor) class Bubble: """Bubble Provides a class to represent individual bubbles in a BubblesWidget. Each Bubble instance can render itself onto a paint device using a QPainter passed to its drawBubble() method. """ def __init__(self, position, radius, speed, innerColor, outerColor): self.position = position self.radius = radius self.speed = speed self.innerColor = innerColor self.outerColor = outerColor self.updateBrush() def updateBrush(self): gradient = QtGui.QRadialGradient( QtCore.QPointF(self.radius, self.radius), self.radius, QtCore.QPointF(self.radius*0.5, self.radius*0.5)) gradient.setColorAt(0, QtGui.QColor(255, 255, 255, 255)) gradient.setColorAt(0.25, self.innerColor) gradient.setColorAt(1, self.outerColor) self.brush = QtGui.QBrush(gradient) def drawBubble(self, painter): painter.save() painter.translate(self.position.x() - self.radius, self.position.y() - self.radius) painter.setBrush(self.brush) painter.drawEllipse(0.0, 0.0, 2*self.radius, 2*self.radius) painter.restore() class BubblesWidget(BaseClass): """BubblesWidget(BaseClass) Provides a custom widget that shows a number of rising bubbles. Various properties are defined so that the user can customize the appearance of the widget, and change the number and behaviour of the bubbles shown. """ # We define two signals that are used to indicate changes to the status # of the widget. bubbleLeft = QtCore.pyqtSignal() bubblesRemaining = QtCore.pyqtSignal(int) def __init__(self, parent=None): super(BubblesWidget, self).__init__(parent) self.pen = QtGui.QPen(QtGui.QColor("#cccccc")) self.bubbles = [] self.backgroundColor1 = self.randomColor() self.backgroundColor2 = self.randomColor().dark(150) self.newBubble = None random.seed() self.animation_timer = QtCore.QTimer(self) self.animation_timer.setSingleShot(False) self.animation_timer.timeout.connect(self.animate) self.animation_timer.start(25) self.bubbleTimer = QtCore.QTimer() self.bubbleTimer.setSingleShot(False) self.bubbleTimer.timeout.connect(self.expandBubble) self.setMouseTracking(True) self.setMinimumSize(QtCore.QSize(200, 200)) self.setWindowTitle(self.tr("Bubble Maker")) def paintEvent(self, event): background = QtGui.QRadialGradient( QtCore.QPointF(self.rect().topLeft()), 500, QtCore.QPointF(self.rect().bottomRight())) background.setColorAt(0, self.backgroundColor1) background.setColorAt(1, self.backgroundColor2) painter = QtGui.QPainter() painter.begin(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.fillRect(event.rect(), QtGui.QBrush(background)) painter.setPen(self.pen) for bubble in self.bubbles: if QtCore.QRectF(bubble.position - QtCore.QPointF(bubble.radius, bubble.radius), QtCore.QSizeF(2*bubble.radius, 2*bubble.radius)).intersects(QtCore.QRectF(event.rect())): bubble.drawBubble(painter) if self.newBubble: self.newBubble.drawBubble(painter) painter.end() def mousePressEvent(self, event): if event.button() == QtCore.Qt.LeftButton and self.newBubble is None: self.newBubble = Bubble(QtCore.QPointF(event.pos()), 4.0, 1.0 + random.random() * 7, self.randomColor(), self.randomColor()) self.bubbleTimer.start(50) event.accept() def mouseMoveEvent(self, event): if self.newBubble: self.update( QtCore.QRectF(self.newBubble.position - \ QtCore.QPointF(self.newBubble.radius + 1, self.newBubble.radius + 1), QtCore.QSizeF(2*self.newBubble.radius + 2, 2*self.newBubble.radius + 2)).toRect() ) self.newBubble.position = QtCore.QPointF(event.pos()) self.update( QtCore.QRectF(self.newBubble.position - \ QtCore.QPointF(self.newBubble.radius + 1, self.newBubble.radius + 1), QtCore.QSizeF(2*self.newBubble.radius + 2, 2*self.newBubble.radius + 2)).toRect() ) event.accept() def mouseReleaseEvent(self, event): if self.newBubble: self.bubbles.append(self.newBubble) self.newBubble = None self.bubbleTimer.stop() self.bubblesRemaining.emit(len(self.bubbles)) event.accept() def expandBubble(self): if self.newBubble: self.newBubble.radius = min(self.newBubble.radius + 4.0, self.width()/8.0, self.height()/8.0) self.update( QtCore.QRectF(self.newBubble.position - \ QtCore.QPointF(self.newBubble.radius + 1, self.newBubble.radius + 1), QtCore.QSizeF(2*self.newBubble.radius + 2, 2*self.newBubble.radius + 2)).toRect() ) self.newBubble.updateBrush() def randomColor(self): red = 205 + random.random() * 50 green = 205 + random.random() * 50 blue = 205 + random.random() * 50 alpha = 91 + random.random() * 100 return QtGui.QColor(red, green, blue, alpha) def animate(self): bubbles = [] left = False for bubble in self.bubbles: bubble.position = bubble.position + QtCore.QPointF(0, -bubble.speed) self.update( QtCore.QRectF(bubble.position - \ QtCore.QPointF(bubble.radius + 1, bubble.radius + 1), QtCore.QSizeF(2*bubble.radius + 2, 2*bubble.radius + 2 + bubble.speed)).toRect() ) if bubble.position.y() + bubble.radius > 0: bubbles.append(bubble) else: self.bubbleLeft.emit() left = True if self.newBubble: self.update( QtCore.QRectF(self.newBubble.position - \ QtCore.QPointF(self.newBubble.radius + 1, self.newBubble.radius + 1), QtCore.QSizeF(2*self.newBubble.radius + 2, 2*self.newBubble.radius + 2)).toRect() ) self.bubbles = bubbles if left: self.bubblesRemaining.emit(len(self.bubbles)) def sizeHint(self): return QtCore.QSize(200, 200) # We provide getter and setter methods for the numberOfBubbles property. def getBubbles(self): return len(self.bubbles) # The setBubbles() method can also be used as a slot. @QtCore.pyqtSlot(int) def setBubbles(self, value): value = max(0, value) while len(self.bubbles) < value: newBubble = Bubble(QtCore.QPointF(random.random() * self.width(), random.random() * self.height()), 4.0 + random.random() * 20, 1.0 + random.random() * 7, self.randomColor(), self.randomColor()) newBubble.updateBrush() self.bubbles.append(newBubble) self.bubbles = self.bubbles[:value] self.bubblesRemaining.emit(value) self.update() numberOfBubbles = QtCore.pyqtProperty(int, getBubbles, setBubbles) # We provide getter and setter methods for the color1 and color2 # properties. The red, green and blue components for the QColor # values stored in these properties can be edited individually in # Qt Designer. def getColor1(self): return self.backgroundColor1 def setColor1(self, value): self.backgroundColor1 = QtGui.QColor(value) self.update() color1 = QtCore.pyqtProperty(QtGui.QColor, getColor1, setColor1) def getColor2(self): return self.backgroundColor2 def setColor2(self, value): self.backgroundColor2 = QtGui.QColor(value) self.update() color2 = QtCore.pyqtProperty(QtGui.QColor, getColor2, setColor2) # The stop() and start() slots provide simple control over the animation # of the bubbles in the widget. @QtCore.pyqtSlot() def stop(self): self.animation_timer.stop() @QtCore.pyqtSlot() def start(self): self.animation_timer.start(25) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) widget = BubblesWidget() widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/counterlabel.py0000755000076500000240000001206512536324427025561 0ustar philstaff00000000000000#!/usr/bin/env python """ counterlabel.py A PyQt custom widget example for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtCore, QtGui class CounterLabel(QtGui.QWidget): """CounterLabel(QtGui.QWidget) Provides a custom label widget to be used as a counter, with signals similar to those provided by QAbstractSlider subclasses and properties similar to those provided by QLabel. """ # We define two signals that are used to indicate changes to the status # of the widget. valueChanged = QtCore.pyqtSignal((int, ), (str, )) def __init__(self, parent=None): super(CounterLabel, self).__init__(parent) self.setAutoFillBackground(False) self._font = QtGui.QFont() self._minimum = 1 self._maximum = 1 self._value = 1 self._offset = 0 self.rescale() self.reposition() def paintEvent(self, event): p = QtGui.QPainter() p.begin(self) p.setRenderHint(QtGui.QPainter.Antialiasing) p.setFont(self._font) p.translate(self.width()/2.0, self.height()/2.0) p.scale(self._scale, self._scale) p.drawText(self._xpos, self._ypos, str(self._value)) p.end() def sizeHint(self): return QtCore.QSize(32, 32) def rescale(self): fm = QtGui.QFontMetricsF(self._font, self) maxRect = fm.boundingRect(QtCore.QRectF(self.rect()), QtCore.Qt.AlignCenter, str(self._maximum)) xscale = float(self.width())/maxRect.width() yscale = float(self.height())/maxRect.height() self._scale = min(xscale, yscale) def reposition(self): fm = QtGui.QFontMetricsF(self._font, self) rect = fm.boundingRect(QtCore.QRectF(self.rect()), QtCore.Qt.AlignCenter, str(self._value)) self._xpos = -rect.width()/2.0 self._ypos = rect.height()/2.0 - fm.descent() self.update() # Provide getter and setter methods for the font property. def getFont(self): return self._font def setFont(self, font): self._font = font self.rescale() self.reposition() font = QtCore.pyqtProperty(QtGui.QFont, getFont, setFont) # Provide getter and setter methods for the minimum and maximum properties. def getMinimum(self): return self._minimum def setMinimum(self, value): self._minimum = value if self._minimum > self._maximum: self.setMaximum(self._minimum) if self._minimum > self._value: self.setValue(self._minimum) minimum = QtCore.pyqtProperty(int, getMinimum, setMinimum) def getMaximum(self): return self._maximum def setMaximum(self, value): self._maximum = value self._minimum = min(self._minimum, self._maximum) if self._maximum < self._value: self.setValue(self._maximum) self.rescale() self.reposition() maximum = QtCore.pyqtProperty(int, getMaximum, setMaximum) # We provide an offset property to allow the value shown to differ from # the internal value held by the widget. def getOffset(self): return self._offset def setOffset(self, value): self._offset = value offset = QtCore.pyqtProperty(int, getOffset, setOffset) # The value property is implemented using the getValue() and setValue() # methods. def getValue(self): return self._value # The setter method for the value property can also be used as a slot. @QtCore.pyqtSlot(int) def setValue(self, value): if not self._minimum <= value <= self._maximum: return self._value = value self.valueChanged[int].emit(value + self._offset) self.valueChanged[str].emit(str(value + self._offset)) self.reposition() value = QtCore.pyqtProperty(int, getValue, setValue) # Like QAbstractSpinBox, we provide stepUp() and stepDown() slots to # enable the value to be incremented and decremented. @QtCore.pyqtSlot() def stepUp(self): self.setValue(self._value + 1) @QtCore.pyqtSlot() def stepDown(self): self.setValue(self._value - 1) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) widget = CounterLabel() widget.setValue(123) widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/datetimeedit.py0000755000076500000240000003720512536324427025547 0ustar philstaff00000000000000#!/usr/bin/env python #============================================================================# # (Re)Implementation of QDateEdit and QDateTimeEdit. These classes force the # # use of the calendar popup. # #----------------------------------------------------------------------------# # Copyright (c) 2008 by Denviso GmbH, # # # # All Rights Reserved # # # # Permission to use, copy, modify, and distribute this software and its # # documentation for any purpose and without fee is hereby granted, # # provided that the above copyright notice appear in all copies and that # # both that copyright notice and this permission notice appear in # # supporting documentation. # # # # DENVISO DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS # # SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # # AND FITNESS, IN NO EVENT SHALL DENVISO BE LIABLE FOR ANY # # SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE # # OR PERFORMANCE OF THIS SOFTWARE. # #----------------------------------------------------------------------------# from PyQt4 import QtCore, QtGui #============================================================================# # PyDateEdit # #----------------------------------------------------------------------------# class PyDateEdit(QtGui.QDateEdit): # # Initialize base class # Force use of the calendar popup # Set default values for calendar properties # def __init__(self, *args): super(PyDateEdit, self).__init__(*args) self.setCalendarPopup(True) self.__cw = None self.__firstDayOfWeek = QtCore.Qt.Monday self.__gridVisible = False self.__horizontalHeaderFormat = QtGui.QCalendarWidget.ShortDayNames self.__verticalHeaderFormat = QtGui.QCalendarWidget.ISOWeekNumbers self.__navigationBarVisible = True # # Call event handler of base class # Get the calendar widget, if not already done # Set the calendar properties # def mousePressEvent(self, event): super(PyDateEdit, self).mousePressEvent(event) if not self.__cw: self.__cw = self.findChild(QtGui.QCalendarWidget) if self.__cw: self.__cw.setFirstDayOfWeek(self.__firstDayOfWeek) self.__cw.setGridVisible(self.__gridVisible) self.__cw.setHorizontalHeaderFormat(self.__horizontalHeaderFormat) self.__cw.setVerticalHeaderFormat(self.__verticalHeaderFormat) self.__cw.setNavigationBarVisible(self.__navigationBarVisible) # # Make sure, the calendarPopup property is invisible in Designer # def getCalendarPopup(self): return True calendarPopup = QtCore.pyqtProperty(bool, fget=getCalendarPopup) # # Property firstDayOfWeek: Qt::DayOfWeek # Get: getFirstDayOfWeek() # Set: setFirstDayOfWeek() # Reset: resetFirstDayOfWeek() # def getFirstDayOfWeek(self): return self.__firstDayOfWeek def setFirstDayOfWeek(self, dayOfWeek): if dayOfWeek != self.__firstDayOfWeek: self.__firstDayOfWeek = dayOfWeek if self.__cw: self.__cw.setFirstDayOfWeek(dayOfWeek) def resetFirstDayOfWeek(self): if self.__firstDayOfWeek != QtCore.Qt.Monday: self.__firstDayOfWeek = QtCore.Qt.Monday if self.__cw: self.__cw.setFirstDayOfWeek(QtCore.Qt.Monday) firstDayOfWeek = QtCore.pyqtProperty(QtCore.Qt.DayOfWeek, fget=getFirstDayOfWeek, fset=setFirstDayOfWeek, freset=resetFirstDayOfWeek) # # Property gridVisible: bool # Get: isGridVisible() # Set: setGridVisible() # Reset: resetGridVisible() # def isGridVisible(self): return self.__gridVisible def setGridVisible(self, show): if show != self.__gridVisible: self.__gridVisible = show if self.__cw: self.__cw.setGridVisible(show) def resetGridVisible(self): if self.__gridVisible != False: self.__gridVisible = False if self.__cw: self.__cw.setGridVisible(False) gridVisible = QtCore.pyqtProperty(bool, fget=isGridVisible, fset=setGridVisible, freset=resetGridVisible) # # Property horizontalHeaderFormat: QCalendarWidget::HorizontalHeaderFormat # Get: getHorizontalHeaderFormat() # Set: setHorizontalHeaderFormat() # Reset: resetHorizontalHeaderFormat() # def getHorizontalHeaderFormat(self): return self.__horizontalHeaderFormat def setHorizontalHeaderFormat(self, format): if format != self.__horizontalHeaderFormat: self.__horizontalHeaderFormat = format if self.__cw: self.__cw.setHorizontalHeaderFormat(format) def resetHorizontalHeaderFormat(self): if self.__horizontalHeaderFormat != QtGui.QCalendarWidget.ShortDayNames: self.__horizontalHeaderFormat = QtGui.QCalendarWidget.ShortDayNames if self.__cw: self.__cw.setHorizontalHeaderFormat(QtGui.QCalendarWidget.ShortDayNames) horizontalHeaderFormat = QtCore.pyqtProperty(QtGui.QCalendarWidget.HorizontalHeaderFormat, fget=getHorizontalHeaderFormat, fset=setHorizontalHeaderFormat, freset=resetHorizontalHeaderFormat) # # Property verticalHeaderFormat: QCalendarWidget::VerticalHeaderFormat # Get: getVerticalHeaderFormat() # Set: setVerticalHeaderFormat() # Reset: resetVerticalHeaderFormat() # def getVerticalHeaderFormat(self): return self.__verticalHeaderFormat def setVerticalHeaderFormat(self, format): if format != self.__verticalHeaderFormat: self.__verticalHeaderFormat = format if self.__cw: self.__cw.setVerticalHeaderFormat(format) def resetVerticalHeaderFormat(self): if self.__verticalHeaderFormat != QtGui.QCalendarWidget.ISOWeekNumbers: self.__verticalHeaderFormat = QtGui.QCalendarWidget.ISOWeekNumbers if self.__cw: self.__cw.setVerticalHeaderFormat(QtGui.QCalendarWidget.ISOWeekNumbers) verticalHeaderFormat = QtCore.pyqtProperty(QtGui.QCalendarWidget.VerticalHeaderFormat, fget=getVerticalHeaderFormat, fset=setVerticalHeaderFormat, freset=resetVerticalHeaderFormat) # # Property navigationBarVisible: bool # Get: isNavigationBarVisible() # Set: setNavigationBarVisible() # Reset: resetNavigationBarVisible() # def isNavigationBarVisible(self): return self.__navigationBarVisible def setNavigationBarVisible(self, visible): if visible != self.__navigationBarVisible: self.__navigationBarVisible = visible if self.__cw: self.__cw.setNavigationBarVisible(visible) def resetNavigationBarVisible(self): if self.__navigationBarVisible != True: self.__navigationBarVisible = True if self.__cw: self.__cw.setNavigationBarVisible(True) navigationBarVisible = QtCore.pyqtProperty(bool, fget=isNavigationBarVisible, fset=setNavigationBarVisible, freset=resetNavigationBarVisible) #============================================================================# # PyDateTimeEdit # #----------------------------------------------------------------------------# class PyDateTimeEdit(QtGui.QDateTimeEdit): # # Initialize base class # Force use of the calendar popup # Set default values for calendar properties # def __init__(self, *args): super(PyDateTimeEdit, self).__init__(*args) self.setCalendarPopup(True) self.__cw = None self.__firstDayOfWeek = QtCore.Qt.Monday self.__gridVisible = False self.__horizontalHeaderFormat = QtGui.QCalendarWidget.ShortDayNames self.__verticalHeaderFormat = QtGui.QCalendarWidget.ISOWeekNumbers self.__navigationBarVisible = True # # Call event handler of base class # Get the calendar widget, if not already done # Set the calendar properties # def mousePressEvent(self, event): super(PyDateTimeEdit, self).mousePressEvent(event) if not self.__cw: self.__cw = self.findChild(QtGui.QCalendarWidget) if self.__cw: self.__cw.setFirstDayOfWeek(self.__firstDayOfWeek) self.__cw.setGridVisible(self.__gridVisible) self.__cw.setHorizontalHeaderFormat(self.__horizontalHeaderFormat) self.__cw.setVerticalHeaderFormat(self.__verticalHeaderFormat) self.__cw.setNavigationBarVisible(self.__navigationBarVisible) # # Make sure, the calendarPopup property is invisible in Designer # def getCalendarPopup(self): return True calendarPopup = QtCore.pyqtProperty(bool, fget=getCalendarPopup) # # Property firstDayOfWeek: Qt::DayOfWeek # Get: getFirstDayOfWeek() # Set: setFirstDayOfWeek() # Reset: resetFirstDayOfWeek() # def getFirstDayOfWeek(self): return self.__firstDayOfWeek def setFirstDayOfWeek(self, dayOfWeek): if dayOfWeek != self.__firstDayOfWeek: self.__firstDayOfWeek = dayOfWeek if self.__cw: self.__cw.setFirstDayOfWeek(dayOfWeek) def resetFirstDayOfWeek(self): if self.__firstDayOfWeek != QtCore.Qt.Monday: self.__firstDayOfWeek = QtCore.Qt.Monday if self.__cw: self.__cw.setFirstDayOfWeek(QtCore.Qt.Monday) firstDayOfWeek = QtCore.pyqtProperty(QtCore.Qt.DayOfWeek, fget=getFirstDayOfWeek, fset=setFirstDayOfWeek, freset=resetFirstDayOfWeek) # # Property gridVisible: bool # Get: isGridVisible() # Set: setGridVisible() # Reset: resetGridVisible() # def isGridVisible(self): return self.__gridVisible def setGridVisible(self, show): if show != self.__gridVisible: self.__gridVisible = show if self.__cw: self.__cw.setGridVisible(show) def resetGridVisible(self): if self.__gridVisible != False: self.__gridVisible = False if self.__cw: self.__cw.setGridVisible(False) gridVisible = QtCore.pyqtProperty(bool, fget=isGridVisible, fset=setGridVisible, freset=resetGridVisible) # # Property horizontalHeaderFormat: QCalendarWidget::HorizontalHeaderFormat # Get: getHorizontalHeaderFormat() # Set: setHorizontalHeaderFormat() # Reset: resetHorizontalHeaderFormat() # def getHorizontalHeaderFormat(self): return self.__horizontalHeaderFormat def setHorizontalHeaderFormat(self, format): if format != self.__horizontalHeaderFormat: self.__horizontalHeaderFormat = format if self.__cw: self.__cw.setHorizontalHeaderFormat(format) def resetHorizontalHeaderFormat(self): if self.__horizontalHeaderFormat != QtGui.QCalendarWidget.ShortDayNames: self.__horizontalHeaderFormat = QtGui.QCalendarWidget.ShortDayNames if self.__cw: self.__cw.setHorizontalHeaderFormat(QtGui.QCalendarWidget.ShortDayNames) horizontalHeaderFormat = QtCore.pyqtProperty(QtGui.QCalendarWidget.HorizontalHeaderFormat, fget=getHorizontalHeaderFormat, fset=setHorizontalHeaderFormat, freset=resetHorizontalHeaderFormat) # # Property verticalHeaderFormat: QCalendarWidget::VerticalHeaderFormat # Get: getVerticalHeaderFormat() # Set: setVerticalHeaderFormat() # Reset: resetVerticalHeaderFormat() # def getVerticalHeaderFormat(self): return self.__verticalHeaderFormat def setVerticalHeaderFormat(self, format): if format != self.__verticalHeaderFormat: self.__verticalHeaderFormat = format if self.__cw: self.__cw.setVerticalHeaderFormat(format) def resetVerticalHeaderFormat(self): if self.__verticalHeaderFormat != QtGui.QCalendarWidget.ISOWeekNumbers: self.__verticalHeaderFormat = QtGui.QCalendarWidget.ISOWeekNumbers if self.__cw: self.__cw.setVerticalHeaderFormat(QtGui.QCalendarWidget.ISOWeekNumbers) verticalHeaderFormat = QtCore.pyqtProperty(QtGui.QCalendarWidget.VerticalHeaderFormat, fget=getVerticalHeaderFormat, fset=setVerticalHeaderFormat, freset=resetVerticalHeaderFormat) # # Property navigationBarVisible: bool # Get: isNavigationBarVisible() # Set: setNavigationBarVisible() # Reset: resetNavigationBarVisible() # def isNavigationBarVisible(self): return self.__navigationBarVisible def setNavigationBarVisible(self, visible): if visible != self.__navigationBarVisible: self.__navigationBarVisible = visible if self.__cw: self.__cw.setNavigationBarVisible(visible) def resetNavigationBarVisible(self): if self.__navigationBarVisible != True: self.__navigationBarVisible = True if self.__cw: self.__cw.setNavigationBarVisible(True) navigationBarVisible = QtCore.pyqtProperty(bool, fget=isNavigationBarVisible, fset=setNavigationBarVisible, freset=resetNavigationBarVisible) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) w = QtGui.QWidget() lay = QtGui.QHBoxLayout() lay.addWidget(PyDateEdit()) lay.addWidget(PyDateTimeEdit()) w.setLayout(lay) w.show() sys.exit(app.exec_()) #============================================================================# # EOF # #----------------------------------------------------------------------------# PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/helloglwidget.py0000755000076500000240000001702612536324427025736 0ustar philstaff00000000000000#!/usr/bin/env python """ helloglwidget.py A simple OpenGL custom widget for Qt Designer. Copyright (C) 2007 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ import math from PyQt4 import QtCore, QtGui, QtOpenGL from OpenGL import GL class HelloGLWidget(QtOpenGL.QGLWidget): """HelloGLWidget(QtOpenGL.QGLWidget) Provides a custom widget to display an OpenGL-rendered Qt logo. Various properties and slots are defined so that the user can rotate the logo, and signals are defined to enable other components to react to changes to its orientation. """ # We define three signals that are used to indicate changes to the # rotation of the logo. xRotationChanged = QtCore.pyqtSignal(int) yRotationChanged = QtCore.pyqtSignal(int) zRotationChanged = QtCore.pyqtSignal(int) def __init__(self, parent=None): super(HelloGLWidget, self).__init__(parent) self.object = 0 self.xRot = 0 self.yRot = 0 self.zRot = 0 self.lastPos = QtCore.QPoint() self.trolltechGreen = QtGui.QColor.fromCmykF(0.40, 0.0, 1.0, 0.0) self.trolltechPurple = QtGui.QColor.fromCmykF(0.39, 0.39, 0.0, 0.0) self.setWindowTitle(self.tr("Hello GL")) # The rotation of the logo about the x-axis can be controlled using the # xRotation property, defined using the following getter and setter # methods. def getXRotation(self): return self.xRot # The setXRotation() setter method is also a slot. @QtCore.pyqtSlot(int) def setXRotation(self, angle): angle = self.normalizeAngle(angle) if angle != self.xRot: self.xRot = angle self.xRotationChanged.emit(angle) self.updateGL() xRotation = QtCore.pyqtProperty(int, getXRotation, setXRotation) # The rotation of the logo about the y-axis can be controlled using the # yRotation property, defined using the following getter and setter # methods. def getYRotation(self): return self.yRot # The setYRotation() setter method is also a slot. @QtCore.pyqtSlot(int) def setYRotation(self, angle): angle = self.normalizeAngle(angle) if angle != self.yRot: self.yRot = angle self.yRotationChanged.emit(angle) self.updateGL() yRotation = QtCore.pyqtProperty(int, getYRotation, setYRotation) # The rotation of the logo about the z-axis can be controlled using the # zRotation property, defined using the following getter and setter # methods. def getZRotation(self): return self.zRot # The setZRotation() setter method is also a slot. @QtCore.pyqtSlot(int) def setZRotation(self, angle): angle = self.normalizeAngle(angle) if angle != self.zRot: self.zRot = angle self.zRotationChanged.emit(angle) self.updateGL() zRotation = QtCore.pyqtProperty(int, getZRotation, setZRotation) def minimumSizeHint(self): return QtCore.QSize(50, 50) def sizeHint(self): return QtCore.QSize(200, 200) def initializeGL(self): self.qglClearColor(self.trolltechPurple.dark()) self.object = self.makeObject() GL.glShadeModel(GL.GL_SMOOTH) GL.glEnable(GL.GL_DEPTH_TEST) GL.glEnable(GL.GL_CULL_FACE) def paintGL(self): GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT) GL.glLoadIdentity() GL.glTranslated(0.0, 0.0, -10.0) GL.glRotated(self.xRot / 16.0, 1.0, 0.0, 0.0) GL.glRotated(self.yRot / 16.0, 0.0, 1.0, 0.0) GL.glRotated(self.zRot / 16.0, 0.0, 0.0, 1.0) GL.glCallList(self.object) def resizeGL(self, width, height): side = min(width, height) GL.glViewport((width - side) / 2, (height - side) / 2, side, side) GL.glMatrixMode(GL.GL_PROJECTION) GL.glLoadIdentity() GL.glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0) GL.glMatrixMode(GL.GL_MODELVIEW) def mousePressEvent(self, event): self.lastPos = QtCore.QPoint(event.pos()) def mouseMoveEvent(self, event): dx = event.x() - self.lastPos.x() dy = event.y() - self.lastPos.y() if event.buttons() & QtCore.Qt.LeftButton: self.setXRotation(self.xRot + 8 * dy) self.setYRotation(self.yRot + 8 * dx) elif event.buttons() & QtCore.Qt.RightButton: self.setXRotation(self.xRot + 8 * dy) self.setZRotation(self.zRot + 8 * dx) self.lastPos = QtCore.QPoint(event.pos()) def makeObject(self): genList = GL.glGenLists(1) GL.glNewList(genList, GL.GL_COMPILE) GL.glBegin(GL.GL_QUADS) x1 = +0.06 y1 = -0.14 x2 = +0.14 y2 = -0.06 x3 = +0.08 y3 = +0.00 x4 = +0.30 y4 = +0.22 self.quad(x1, y1, x2, y2, y2, x2, y1, x1) self.quad(x3, y3, x4, y4, y4, x4, y3, x3) self.extrude(x1, y1, x2, y2) self.extrude(x2, y2, y2, x2) self.extrude(y2, x2, y1, x1) self.extrude(y1, x1, x1, y1) self.extrude(x3, y3, x4, y4) self.extrude(x4, y4, y4, x4) self.extrude(y4, x4, y3, x3) Pi = 3.14159265358979323846 NumSectors = 200 for i in range(NumSectors): angle1 = (i * 2 * Pi) / NumSectors x5 = 0.30 * math.sin(angle1) y5 = 0.30 * math.cos(angle1) x6 = 0.20 * math.sin(angle1) y6 = 0.20 * math.cos(angle1) angle2 = ((i + 1) * 2 * Pi) / NumSectors x7 = 0.20 * math.sin(angle2) y7 = 0.20 * math.cos(angle2) x8 = 0.30 * math.sin(angle2) y8 = 0.30 * math.cos(angle2) self.quad(x5, y5, x6, y6, x7, y7, x8, y8) self.extrude(x6, y6, x7, y7) self.extrude(x8, y8, x5, y5) GL.glEnd() GL.glEndList() return genList def quad(self, x1, y1, x2, y2, x3, y3, x4, y4): self.qglColor(self.trolltechGreen) GL.glVertex3d(x1, y1, -0.05) GL.glVertex3d(x2, y2, -0.05) GL.glVertex3d(x3, y3, -0.05) GL.glVertex3d(x4, y4, -0.05) GL.glVertex3d(x4, y4, +0.05) GL.glVertex3d(x3, y3, +0.05) GL.glVertex3d(x2, y2, +0.05) GL.glVertex3d(x1, y1, +0.05) def extrude(self, x1, y1, x2, y2): self.qglColor(self.trolltechGreen.dark(250 + int(100 * x1))) GL.glVertex3d(x1, y1, +0.05) GL.glVertex3d(x2, y2, +0.05) GL.glVertex3d(x2, y2, -0.05) GL.glVertex3d(x1, y1, -0.05) def normalizeAngle(self, angle): while angle < 0: angle += 360 * 16 while angle > 360 * 16: angle -= 360 * 16 return angle if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) widget = HelloGLWidget() widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/highlightedtextedit.py0000755000076500000240000001674312536324427027144 0ustar philstaff00000000000000#!/usr/bin/env python """ highlightedtextedit.py A PyQt custom widget example for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtCore, QtGui class HighlightedTextEdit(QtGui.QTextEdit): """HighlightedTextEdit(QtGui.QTextEdit) Provides a custom text editor with a simple built-in Python syntax highlighter. """ def __init__(self, parent=None): super(HighlightedTextEdit, self).__init__(parent) self.setFrameShape(QtGui.QFrame.Box) self.setFrameShadow(QtGui.QFrame.Plain) char_format = QtGui.QTextCharFormat() char_format.setFont(self.font()) self.highlighter = PythonHighlighter(self.document(), char_format) # The code property is implemented with the getCode() and setCode() # methods, and contains the plain text shown in the editor. def getCode(self): self._code = self.toPlainText() return self._code def setCode(self, text): self.setPlainText(text) code = QtCore.pyqtProperty(str, getCode, setCode) # The displayFont property is implemented with the getDisplayFont() and # setDisplayFont() methods, and contains the font used to display the # text in the editor. def getDisplayFont(self): return QtGui.QWidget.font(self) def setDisplayFont(self, font): QtGui.QWidget.setFont(self, font) self.highlighter.updateHighlighter(font) self.update() displayFont = QtCore.pyqtProperty(QtGui.QFont, getDisplayFont, setDisplayFont) class PythonHighlighter(QtGui.QSyntaxHighlighter): keywords = ( "and", "del", "for", "is", "raise", "assert", "elif", "from", "lambda", "return", "break", "else", "global", "not", "try", "class", "except", "if", "or", "while", "continue", "exec", "import", "pass", "yield", "def", "finally", "in", "print" ) def __init__(self, document, base_format): super(PythonHighlighter, self).__init__(document) self.base_format = base_format self.document = document self.updateHighlighter(base_format.font()) def highlightBlock(self, text): self.setCurrentBlockState(0) if text.trimmed().isEmpty(): self.setFormat(0, len(text), self.empty_format) return self.setFormat(0, len(text), self.base_format) startIndex = 0 if self.previousBlockState() != 1: startIndex = text.indexOf(self.multiLineStringBegin) if startIndex > -1: self.highlightRules(text, 0, startIndex) else: self.highlightRules(text, 0, len(text)) while startIndex >= 0: endIndex = text.indexOf(self.multiLineStringEnd, startIndex + len(self.multiLineStringBegin.pattern())) if endIndex == -1: self.setCurrentBlockState(1) commentLength = text.length() - startIndex else: commentLength = endIndex - startIndex + \ self.multiLineStringEnd.matchedLength() self.highlightRules(text, endIndex, len(text)) self.setFormat(startIndex, commentLength, self.multiLineStringFormat) startIndex = text.indexOf(self.multiLineStringBegin, startIndex + commentLength) def highlightRules(self, text, start, finish): for expression, format in self.rules: index = expression.indexIn(text, start) while index >= start and index < finish: length = expression.matchedLength() self.setFormat(index, min(length, finish - index), format) index = expression.indexIn(text, index + length) def updateFonts(self, font): self.base_format.setFont(font) self.empty_format = QtGui.QTextCharFormat(self.base_format) self.empty_format.setFontPointSize(font.pointSize()/4.0) self.keywordFormat = QtGui.QTextCharFormat(self.base_format) self.keywordFormat.setForeground(QtCore.Qt.darkBlue) self.keywordFormat.setFontWeight(QtGui.QFont.Bold) self.callableFormat = QtGui.QTextCharFormat(self.base_format) self.callableFormat.setForeground(QtCore.Qt.darkBlue) self.magicFormat = QtGui.QTextCharFormat(self.base_format) self.magicFormat.setForeground(QtGui.QColor(224,128,0)) self.qtFormat = QtGui.QTextCharFormat(self.base_format) self.qtFormat.setForeground(QtCore.Qt.blue) self.qtFormat.setFontWeight(QtGui.QFont.Bold) self.selfFormat = QtGui.QTextCharFormat(self.base_format) self.selfFormat.setForeground(QtCore.Qt.red) #self.selfFormat.setFontItalic(True) self.singleLineCommentFormat = QtGui.QTextCharFormat(self.base_format) self.singleLineCommentFormat.setForeground(QtCore.Qt.darkGreen) self.multiLineStringFormat = QtGui.QTextCharFormat(self.base_format) self.multiLineStringFormat.setBackground( QtGui.QBrush(QtGui.QColor(127,127,255))) self.quotationFormat1 = QtGui.QTextCharFormat(self.base_format) self.quotationFormat1.setForeground(QtCore.Qt.blue) self.quotationFormat2 = QtGui.QTextCharFormat(self.base_format) self.quotationFormat2.setForeground(QtCore.Qt.blue) def updateRules(self): self.rules = [] self.rules += map(lambda s: (QtCore.QRegExp(r"\b"+s+r"\b"), self.keywordFormat), self.keywords) self.rules.append((QtCore.QRegExp(r"\b[A-Za-z_]+\(.*\)"), self.callableFormat)) self.rules.append((QtCore.QRegExp(r"\b__[a-z]+__\b"), self.magicFormat)) self.rules.append((QtCore.QRegExp(r"\bself\b"), self.selfFormat)) self.rules.append((QtCore.QRegExp(r"\bQ([A-Z][a-z]*)+\b"), self.qtFormat)) self.rules.append((QtCore.QRegExp(r"#[^\n]*"), self.singleLineCommentFormat)) self.multiLineStringBegin = QtCore.QRegExp(r'\"\"\"') self.multiLineStringEnd = QtCore.QRegExp(r'\"\"\"') self.rules.append((QtCore.QRegExp(r'\"[^\n]*\"'), self.quotationFormat1)) self.rules.append((QtCore.QRegExp(r"'[^\n]*'"), self.quotationFormat2)) def updateHighlighter(self, font): self.updateFonts(font) self.updateRules() self.setDocument(self.document) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) widget = HighlightedTextEdit() widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/multipagewidget.py0000755000076500000240000000761012536324427026275 0ustar philstaff00000000000000#!/usr/bin/env python #============================================================================# # PyQt4 port of the designer/containerextension example from Qt v4.x # #----------------------------------------------------------------------------# from PyQt4 import QtCore, QtGui #============================================================================# # Implementation of a MultiPageWidget using a QComboBox and a QStackedWidget # #----------------------------------------------------------------------------# class PyMultiPageWidget(QtGui.QWidget): currentIndexChanged = QtCore.pyqtSignal(int) pageTitleChanged = QtCore.pyqtSignal(str) def __init__(self, parent=None): super(PyMultiPageWidget, self).__init__(parent) self.comboBox = QtGui.QComboBox() # MAGIC # It is important that the combo box has an object name beginning # with '__qt__passive_', otherwise, it is inactive in the form editor # of the designer and you can't change the current page via the # combo box. # MAGIC self.comboBox.setObjectName('__qt__passive_comboBox') self.stackWidget = QtGui.QStackedWidget() self.comboBox.activated.connect(self.setCurrentIndex) self.layout = QtGui.QVBoxLayout() self.layout.addWidget(self.comboBox) self.layout.addWidget(self.stackWidget) self.setLayout(self.layout) def sizeHint(self): return QtCore.QSize(200, 150) def count(self): return self.stackWidget.count() def widget(self, index): return self.stackWidget.widget(index) @QtCore.pyqtSlot(QtGui.QWidget) def addPage(self, page): self.insertPage(self.count(), page) @QtCore.pyqtSlot(int, QtGui.QWidget) def insertPage(self, index, page): page.setParent(self.stackWidget) self.stackWidget.insertWidget(index, page) title = page.windowTitle() if title.isEmpty(): title = QtCore.QCoreApplication.translate('PyMultiPageWidget','Page %1').arg(self.comboBox.count() + 1) page.setWindowTitle(title) self.comboBox.insertItem(index, title) @QtCore.pyqtSlot(int) def removePage(self, index): widget = self.stackWidget.widget(index) self.stackWidget.removeWidget(widget) self.comboBox.removeItem(index) def getPageTitle(self): return self.stackWidget.currentWidget().windowTitle() @QtCore.pyqtSlot(str) def setPageTitle(self, newTitle): self.comboBox.setItemText(self.getCurrentIndex(), newTitle) self.stackWidget.currentWidget().setWindowTitle(newTitle) self.pageTitleChanged.emit(newTitle) def getCurrentIndex(self): return self.stackWidget.currentIndex() @QtCore.pyqtSlot(int) def setCurrentIndex(self, index): if index != self.getCurrentIndex(): self.stackWidget.setCurrentIndex(index) self.comboBox.setCurrentIndex(index) self.currentIndexChanged.emit(index) pageTitle = QtCore.pyqtProperty(str, fget=getPageTitle, fset=setPageTitle, stored=False) currentIndex = QtCore.pyqtProperty(int, fget=getCurrentIndex, fset=setCurrentIndex) #============================================================================# # Main for testing the class # #----------------------------------------------------------------------------# if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) widget = PyMultiPageWidget() widget.addPage(QtGui.QLabel('This is page #1')) widget.addPage(QtGui.QLabel('This is page #2')) widget.show() sys.exit(app.exec_()) #============================================================================# # EOF # #----------------------------------------------------------------------------# PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/polygonwidget.py0000755000076500000240000001336512536324427026001 0ustar philstaff00000000000000#!/usr/bin/env python """ polygonwidget.py A PyQt custom widget example for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ import math from PyQt4 import QtCore, QtGui class PolygonWidget(QtGui.QWidget): """PolygonWidget(QtGui.QWidget) Provides a custom widget to display a polygon with properties and slots that can be used to customize its appearance. """ def __init__(self, parent=None): super(PolygonWidget, self).__init__(parent) self._sides = 5 self._innerRadius = 20 self._outerRadius = 50 self._angle = 0 self.createPath() self._innerColor = QtGui.QColor(255, 255, 128) self._outerColor = QtGui.QColor(255, 0, 128) self.createGradient() def paintEvent(self, event): painter = QtGui.QPainter() painter.begin(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setBrush(QtGui.QBrush(QtGui.QColor(192, 192, 255))) painter.drawRect(event.rect()) painter.translate(self.width()/2.0, self.height()/2.0) painter.rotate(self._angle) painter.setBrush(QtGui.QBrush(self.gradient)) painter.drawPath(self.path) painter.end() def sizeHint(self): return QtCore.QSize(2*self._outerRadius + 20, 2*self._outerRadius + 20) def createPath(self): self.path = QtGui.QPainterPath() angle = 2*math.pi/self._sides self.path.moveTo(self._outerRadius, 0) for step in range(1, self._sides + 1): self.path.lineTo( self._innerRadius * math.cos((step - 0.5) * angle), self._innerRadius * math.sin((step - 0.5) * angle) ) self.path.lineTo( self._outerRadius * math.cos(step * angle), self._outerRadius * math.sin(step * angle) ) self.path.closeSubpath() def createGradient(self): center = QtCore.QPointF(0, 0) self.gradient = QtGui.QRadialGradient(center, self._outerRadius, center) self.gradient.setColorAt(0.5, QtGui.QColor(self._innerColor)) self.gradient.setColorAt(1.0, QtGui.QColor(self._outerColor)) # The angle property is implemented using the getAngle() and setAngle() # methods. def getAngle(self): return self._angle # The setAngle() setter method is also a slot. @QtCore.pyqtSlot(int) def setAngle(self, angle): self._angle = min(max(0, angle), 360) self.update() angle = QtCore.pyqtProperty(int, getAngle, setAngle) # The innerRadius property is implemented using the getInnerRadius() and # setInnerRadius() methods. def getInnerRadius(self): return self._innerRadius # The setInnerRadius() setter method is also a slot. @QtCore.pyqtSlot(int) def setInnerRadius(self, radius): self._innerRadius = radius self.createPath() self.createGradient() self.update() innerRadius = QtCore.pyqtProperty(int, getInnerRadius, setInnerRadius) # The outerRadius property is implemented using the getOuterRadius() and # setOuterRadius() methods. def getOuterRadius(self): return self._outerRadius # The setOuterRadius() setter method is also a slot. @QtCore.pyqtSlot(int) def setOuterRadius(self, radius): self._outerRadius = radius self.createPath() self.createGradient() self.update() outerRadius = QtCore.pyqtProperty(int, getOuterRadius, setOuterRadius) # The numberOfSides property is implemented using the getNumberOfSides() # and setNumberOfSides() methods. def getNumberOfSides(self): return self._sides # The setNumberOfSides() setter method is also a slot. @QtCore.pyqtSlot(int) def setNumberOfSides(self, sides): self._sides = max(3, sides) self.createPath() self.update() numberOfSides = QtCore.pyqtProperty(int, getNumberOfSides, setNumberOfSides) # The innerColor property is implemented using the getInnerColor() and # setInnerColor() methods. def getInnerColor(self): return self._innerColor def setInnerColor(self, color): self._innerColor = max(3, color) self.createGradient() self.update() innerColor = QtCore.pyqtProperty(QtGui.QColor, getInnerColor, setInnerColor) # The outerColor property is implemented using the getOuterColor() and # setOuterColor() methods. def getOuterColor(self): return self._outerColor def setOuterColor(self, color): self._outerColor = color self.createGradient() self.update() outerColor = QtCore.pyqtProperty(QtGui.QColor, getOuterColor, setOuterColor) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) window = PolygonWidget() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/pydemo.py0000755000076500000240000001300212536324427024367 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Riverbank Computing Limited nor the names of ## its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# from PyQt4 import QtCore, QtGui # The purpose of this class is to show that Designer's property editor shows # all Python classes in the hierarchy that define properties. class PyTextViewer(QtGui.QTextEdit): # Initialise the instance. def __init__(self, parent=None): super(PyTextViewer, self).__init__(parent) self.setReadOnly(True) # Initialise the author property by calling it's reset function. self.resetAuthor() # The getter for the author property. Note that we cannot follow the Qt # naming convention (ie. by using the naming the getter "author") because # it would conflict with the property name. def getAuthor(self): return self._author # The setter for the author property. def setAuthor(self, name): self._author = name # The resetter for the author property. Only Qt Designer uses this. Qt # Designer does not use the deleter function of the property. def resetAuthor(self): self._author = "David Boddie" # Define the author property. This will look like a C++ property to Qt # Designer and a Python property to Python. author = QtCore.pyqtProperty(str, getAuthor, setAuthor, resetAuthor) # This is the class that implements the custom widget. class PyDemo(PyTextViewer): # Define the Qt signals as a sequence of C++ function signatures excluding # the return type. These may be connected to other signals or slots in Qt # Designer. zoomChanged = QtCore.pyqtSignal(int) # Initialise the instance. def __init__(self, parent=None): super(PyDemo, self).__init__(parent) self.setWindowTitle("PyQt Demonstration Widget") self.setText(_demo_text) # Initialise the zoom property. We don't just call the resetter # because it assumes that this has already been initialised. self._zoom = 0 # The getter for the zoom property. def getZoom(self): return self._zoom # The setter for the zoom property. We also make define this as a Qt slot # which can be connected to Qt signals in Qt Designer. @QtCore.pyqtSlot(int) def setZoom(self, zoom): # Don't do anything if nothing has changed. if self._zoom == zoom: return # Zoom in or out according to the relative zoom levels. if self._zoom < zoom: self.zoomIn(zoom - self._zoom) elif self._zoom > zoom: self.zoomOut(self._zoom - zoom) # Remember the new zoom level. self._zoom = zoom # Emit the Qt signal to say that the zoom level has changed. self.zoomChanged.emit(zoom) # The resetter for the zoom property. def resetZoom(self): self.setZoom(0) # Define the zoom property. Changing the value of this in Qt Designer's # property editor causes the zoom level to change dynamically. zoom = QtCore.pyqtProperty(int, getZoom, setZoom, resetZoom) # The text displayed in the custom widget. _demo_text = """

      PyQt Demonstration Widget

      This simple example demonstrates the following features.

      • The definition of properties that behave as C++ properties to Qt and Python properties to Python.
      • The definition of new Qt signals that can be connected to other signals and Qt slots in Designer.
      • The definition of new Qt slots that can be connected to signals in Designer.
      """ # Display the custom widget if the script is being run directly from the # command line. if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) demo = PyDemo() demo.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/designer/plugins/widgets/pythonconsolewidget.py0000755000076500000240000000571212536324427027213 0ustar philstaff00000000000000#!/usr/bin/env python """ pythonconsolewidget.py A Python console custom widget for Qt Designer. Copyright (C) 2006 David Boddie Copyright (C) 2005-2006 Trolltech ASA. All rights reserved. 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, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ from PyQt4 import QtCore, QtGui class PythonConsoleWidget(QtGui.QLineEdit): """PythonConsoleWidget(QtGui.QLineEdit) Provides a custom widget to accept Python expressions and emit output to other components via a custom signal. """ pythonOutput = QtCore.pyqtSignal(str) def __init__(self, parent=None): super(PythonConsoleWidget, self).__init__(parent) self.history = [] self.current = -1 self.returnPressed.connect(self.execute) def keyReleaseEvent(self, event): if event.type() == QtCore.QEvent.KeyRelease: if event.key() == QtCore.Qt.Key_Up: current = max(0, self.current - 1) if 0 <= current < len(self.history): self.setText(self.history[current]) self.current = current event.accept() elif event.key() == QtCore.Qt.Key_Down: current = min(len(self.history), self.current + 1) if 0 <= current < len(self.history): self.setText(self.history[current]) else: self.clear() self.current = current event.accept() def execute(self): # Define this here to give users something to look at. qApp = QtGui.qApp self.expression = self.text() try: result = str(eval(str(self.expression))) # Emit the result of the evaluated expression. self.pythonOutput.emit(result) # Clear the line edit, append the successful expression to the # history, and update the current command index. self.clear() self.history.append(self.expression) self.current = len(self.history) except: pass if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) widget = PythonConsoleWidget() widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/designer/README0000644000076500000240000000147512536324427020261 0ustar philstaff00000000000000Qt Designer is a capable graphical user interface designer that lets you create and configure forms without writing code. GUIs created with Qt Designer can be converted to Python code or created at run-time. Some of the examples in this directory can be run from the example launcher; others can only be used from within Qt Designer. Documentation for these examples can be found via the "Tutorial and Examples" link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/desktop/0000755000076500000240000000000012536324427017243 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/desktop/README0000644000076500000240000000161612536324427020127 0ustar philstaff00000000000000PyQt provides features to enable applications to integrate with the user's preferred desktop environment. Features such as system tray icons, access to the desktop widget, and support for desktop services can be used to improve the appearance of applications and take advantage of underlying desktop facilities. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/desktop/screenshot.py0000755000076500000240000001442612536324427022004 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class Screenshot(QtGui.QWidget): def __init__(self): super(Screenshot, self).__init__() self.screenshotLabel = QtGui.QLabel() self.screenshotLabel.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self.screenshotLabel.setAlignment(QtCore.Qt.AlignCenter) self.screenshotLabel.setMinimumSize(240, 160) self.createOptionsGroupBox() self.createButtonsLayout() mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.screenshotLabel) mainLayout.addWidget(self.optionsGroupBox) mainLayout.addLayout(self.buttonsLayout) self.setLayout(mainLayout) self.shootScreen() self.delaySpinBox.setValue(5) self.setWindowTitle("Screenshot") self.resize(300, 200) def resizeEvent(self, event): scaledSize = self.originalPixmap.size() scaledSize.scale(self.screenshotLabel.size(), QtCore.Qt.KeepAspectRatio) if not self.screenshotLabel.pixmap() or scaledSize != self.screenshotLabel.pixmap().size(): self.updateScreenshotLabel() def newScreenshot(self): if self.hideThisWindowCheckBox.isChecked(): self.hide() self.newScreenshotButton.setDisabled(True) QtCore.QTimer.singleShot(self.delaySpinBox.value() * 1000, self.shootScreen) def saveScreenshot(self): format = 'png' initialPath = QtCore.QDir.currentPath() + "/untitled." + format fileName = QtGui.QFileDialog.getSaveFileName(self, "Save As", initialPath, "%s Files (*.%s);;All Files (*)" % (format.upper(), format)) if fileName: self.originalPixmap.save(fileName, format) def shootScreen(self): if self.delaySpinBox.value() != 0: QtGui.qApp.beep() # Garbage collect any existing image first. self.originalPixmap = None self.originalPixmap = QtGui.QPixmap.grabWindow(QtGui.QApplication.desktop().winId()) self.updateScreenshotLabel() self.newScreenshotButton.setDisabled(False) if self.hideThisWindowCheckBox.isChecked(): self.show() def updateCheckBox(self): if self.delaySpinBox.value() == 0: self.hideThisWindowCheckBox.setDisabled(True) else: self.hideThisWindowCheckBox.setDisabled(False) def createOptionsGroupBox(self): self.optionsGroupBox = QtGui.QGroupBox("Options") self.delaySpinBox = QtGui.QSpinBox() self.delaySpinBox.setSuffix(" s") self.delaySpinBox.setMaximum(60) self.delaySpinBox.valueChanged.connect(self.updateCheckBox) self.delaySpinBoxLabel = QtGui.QLabel("Screenshot Delay:") self.hideThisWindowCheckBox = QtGui.QCheckBox("Hide This Window") optionsGroupBoxLayout = QtGui.QGridLayout() optionsGroupBoxLayout.addWidget(self.delaySpinBoxLabel, 0, 0) optionsGroupBoxLayout.addWidget(self.delaySpinBox, 0, 1) optionsGroupBoxLayout.addWidget(self.hideThisWindowCheckBox, 1, 0, 1, 2) self.optionsGroupBox.setLayout(optionsGroupBoxLayout) def createButtonsLayout(self): self.newScreenshotButton = self.createButton("New Screenshot", self.newScreenshot) self.saveScreenshotButton = self.createButton("Save Screenshot", self.saveScreenshot) self.quitScreenshotButton = self.createButton("Quit", self.close) self.buttonsLayout = QtGui.QHBoxLayout() self.buttonsLayout.addStretch() self.buttonsLayout.addWidget(self.newScreenshotButton) self.buttonsLayout.addWidget(self.saveScreenshotButton) self.buttonsLayout.addWidget(self.quitScreenshotButton) def createButton(self, text, member): button = QtGui.QPushButton(text) button.clicked.connect(member) return button def updateScreenshotLabel(self): self.screenshotLabel.setPixmap(self.originalPixmap.scaled( self.screenshotLabel.size(), QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) screenshot = Screenshot() screenshot.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/desktop/systray/0000755000076500000240000000000012536324427020761 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/desktop/systray/images/0000755000076500000240000000000012536324427022226 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/desktop/systray/images/bad.svg0000644000076500000240000000645712536324427023511 0ustar philstaff00000000000000 Irritant produit chimique symbol signs_and_symbols yves GUILLOU yves GUILLOU yves GUILLOU image/svg+xml en PyQt-x11-gpl-4.11.4/examples/desktop/systray/images/heart.svg0000644000076500000240000000744112536324427024060 0ustar philstaff00000000000000 Heart Left-Highlight This is a normal valentines day heart. holiday valentines valentine hash(0x8a091c0) hash(0x8a0916c) signs_and_symbols hash(0x8a091f0) day Jon Phillips Jon Phillips Jon Phillips image/svg+xml en PyQt-x11-gpl-4.11.4/examples/desktop/systray/images/trash.svg0000644000076500000240000000610012536324427024065 0ustar philstaff00000000000000 Keep Tidy Inside symbol bin signs_and_symbols clean rubish trash inside garbage sign Martin Owens Martin Owens Martin Owens image/svg+xml en PyQt-x11-gpl-4.11.4/examples/desktop/systray/systray.py0000755000076500000240000002250512536324427023060 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import systray_rc3 except ImportError: import systray_rc2 class Window(QtGui.QDialog): def __init__(self): super(Window, self).__init__() self.createIconGroupBox() self.createMessageGroupBox() self.iconLabel.setMinimumWidth(self.durationLabel.sizeHint().width()) self.createActions() self.createTrayIcon() self.showMessageButton.clicked.connect(self.showMessage) self.showIconCheckBox.toggled.connect(self.trayIcon.setVisible) self.iconComboBox.currentIndexChanged.connect(self.setIcon) self.trayIcon.messageClicked.connect(self.messageClicked) self.trayIcon.activated.connect(self.iconActivated) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.iconGroupBox) mainLayout.addWidget(self.messageGroupBox) self.setLayout(mainLayout) self.iconComboBox.setCurrentIndex(1) self.trayIcon.show() self.setWindowTitle("Systray") self.resize(400, 300) def setVisible(self, visible): self.minimizeAction.setEnabled(visible) self.maximizeAction.setEnabled(not self.isMaximized()) self.restoreAction.setEnabled(self.isMaximized() or not visible) super(Window, self).setVisible(visible) def closeEvent(self, event): if self.trayIcon.isVisible(): QtGui.QMessageBox.information(self, "Systray", "The program will keep running in the system tray. To " "terminate the program, choose Quit in the " "context menu of the system tray entry.") self.hide() event.ignore() def setIcon(self, index): icon = self.iconComboBox.itemIcon(index) self.trayIcon.setIcon(icon) self.setWindowIcon(icon) self.trayIcon.setToolTip(self.iconComboBox.itemText(index)) def iconActivated(self, reason): if reason in (QtGui.QSystemTrayIcon.Trigger, QtGui.QSystemTrayIcon.DoubleClick): self.iconComboBox.setCurrentIndex( (self.iconComboBox.currentIndex() + 1) % self.iconComboBox.count()) elif reason == QtGui.QSystemTrayIcon.MiddleClick: self.showMessage() def showMessage(self): icon = QtGui.QSystemTrayIcon.MessageIcon( self.typeComboBox.itemData(self.typeComboBox.currentIndex())) self.trayIcon.showMessage(self.titleEdit.text(), self.bodyEdit.toPlainText(), icon, self.durationSpinBox.value() * 1000) def messageClicked(self): QtGui.QMessageBox.information(None, "Systray", "Sorry, I already gave what help I could.\nMaybe you should " "try asking a human?") def createIconGroupBox(self): self.iconGroupBox = QtGui.QGroupBox("Tray Icon") self.iconLabel = QtGui.QLabel("Icon:") self.iconComboBox = QtGui.QComboBox() self.iconComboBox.addItem(QtGui.QIcon(':/images/bad.svg'), "Bad") self.iconComboBox.addItem(QtGui.QIcon(':/images/heart.svg'), "Heart") self.iconComboBox.addItem(QtGui.QIcon(':/images/trash.svg'), "Trash") self.showIconCheckBox = QtGui.QCheckBox("Show icon") self.showIconCheckBox.setChecked(True) iconLayout = QtGui.QHBoxLayout() iconLayout.addWidget(self.iconLabel) iconLayout.addWidget(self.iconComboBox) iconLayout.addStretch() iconLayout.addWidget(self.showIconCheckBox) self.iconGroupBox.setLayout(iconLayout) def createMessageGroupBox(self): self.messageGroupBox = QtGui.QGroupBox("Balloon Message") typeLabel = QtGui.QLabel("Type:") self.typeComboBox = QtGui.QComboBox() self.typeComboBox.addItem("None", QtGui.QSystemTrayIcon.NoIcon) self.typeComboBox.addItem(self.style().standardIcon( QtGui.QStyle.SP_MessageBoxInformation), "Information", QtGui.QSystemTrayIcon.Information) self.typeComboBox.addItem(self.style().standardIcon( QtGui.QStyle.SP_MessageBoxWarning), "Warning", QtGui.QSystemTrayIcon.Warning) self.typeComboBox.addItem(self.style().standardIcon( QtGui.QStyle.SP_MessageBoxCritical), "Critical", QtGui.QSystemTrayIcon.Critical) self.typeComboBox.setCurrentIndex(1) self.durationLabel = QtGui.QLabel("Duration:") self.durationSpinBox = QtGui.QSpinBox() self.durationSpinBox.setRange(5, 60) self.durationSpinBox.setSuffix(" s") self.durationSpinBox.setValue(15) durationWarningLabel = QtGui.QLabel("(some systems might ignore this " "hint)") durationWarningLabel.setIndent(10) titleLabel = QtGui.QLabel("Title:") self.titleEdit = QtGui.QLineEdit("Cannot connect to network") bodyLabel = QtGui.QLabel("Body:") self.bodyEdit = QtGui.QTextEdit() self.bodyEdit.setPlainText("Don't believe me. Honestly, I don't have " "a clue.\nClick this balloon for details.") self.showMessageButton = QtGui.QPushButton("Show Message") self.showMessageButton.setDefault(True) messageLayout = QtGui.QGridLayout() messageLayout.addWidget(typeLabel, 0, 0) messageLayout.addWidget(self.typeComboBox, 0, 1, 1, 2) messageLayout.addWidget(self.durationLabel, 1, 0) messageLayout.addWidget(self.durationSpinBox, 1, 1) messageLayout.addWidget(durationWarningLabel, 1, 2, 1, 3) messageLayout.addWidget(titleLabel, 2, 0) messageLayout.addWidget(self.titleEdit, 2, 1, 1, 4) messageLayout.addWidget(bodyLabel, 3, 0) messageLayout.addWidget(self.bodyEdit, 3, 1, 2, 4) messageLayout.addWidget(self.showMessageButton, 5, 4) messageLayout.setColumnStretch(3, 1) messageLayout.setRowStretch(4, 1) self.messageGroupBox.setLayout(messageLayout) def createActions(self): self.minimizeAction = QtGui.QAction("Mi&nimize", self, triggered=self.hide) self.maximizeAction = QtGui.QAction("Ma&ximize", self, triggered=self.showMaximized) self.restoreAction = QtGui.QAction("&Restore", self, triggered=self.showNormal) self.quitAction = QtGui.QAction("&Quit", self, triggered=QtGui.qApp.quit) def createTrayIcon(self): self.trayIconMenu = QtGui.QMenu(self) self.trayIconMenu.addAction(self.minimizeAction) self.trayIconMenu.addAction(self.maximizeAction) self.trayIconMenu.addAction(self.restoreAction) self.trayIconMenu.addSeparator() self.trayIconMenu.addAction(self.quitAction) self.trayIcon = QtGui.QSystemTrayIcon(self) self.trayIcon.setContextMenu(self.trayIconMenu) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) if not QtGui.QSystemTrayIcon.isSystemTrayAvailable(): QtGui.QMessageBox.critical(None, "Systray", "I couldn't detect any system tray on this system.") sys.exit(1) QtGui.QApplication.setQuitOnLastWindowClosed(False) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/desktop/systray/systray.qrc0000644000076500000240000000025612536324427023211 0ustar philstaff00000000000000 images/bad.svg images/heart.svg images/trash.svg PyQt-x11-gpl-4.11.4/examples/desktop/systray/systray_rc2.py0000644000076500000240000012613112536324427023623 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:29:49 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x0f\x21\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ \x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ \x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ \x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ \x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x3c\ \x73\x76\x67\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x31\x30\x30\ \x20\x32\x30\x30\x20\x35\x35\x30\x20\x35\x30\x30\x22\x20\x68\x65\ \x69\x67\x68\x74\x3d\x22\x38\x34\x31\x2e\x38\x38\x39\x37\x36\x70\ \x74\x22\x20\x69\x64\x3d\x22\x73\x76\x67\x31\x22\x20\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\ \x2e\x34\x30\x2b\x63\x76\x73\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\ \x69\x3a\x64\x6f\x63\x62\x61\x73\x65\x3d\x22\x43\x3a\x5c\x44\x6f\ \x63\x75\x6d\x65\x6e\x74\x73\x20\x61\x6e\x64\x20\x53\x65\x74\x74\ \x69\x6e\x67\x73\x5c\x4a\x6f\x6e\x20\x50\x68\x69\x6c\x6c\x69\x70\ \x73\x5c\x4d\x79\x20\x44\x6f\x63\x75\x6d\x65\x6e\x74\x73\x5c\x70\ \x72\x6f\x6a\x65\x63\x74\x73\x5c\x63\x6c\x69\x70\x61\x72\x74\x2d\ \x70\x72\x6f\x6a\x65\x63\x74\x5c\x73\x75\x62\x6d\x69\x73\x73\x69\ \x6f\x6e\x73\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x64\x6f\ \x63\x6e\x61\x6d\x65\x3d\x22\x68\x65\x61\x72\x74\x2d\x6c\x65\x66\ \x74\x2d\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x2e\x73\x76\x67\x22\ \x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x76\x65\x72\x73\x69\x6f\ \x6e\x3d\x22\x30\x2e\x33\x32\x22\x20\x77\x69\x64\x74\x68\x3d\x22\ \x35\x39\x35\x2e\x32\x37\x35\x35\x39\x70\x74\x22\x20\x78\x6d\x6c\ \x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ \x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\ \x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\ \x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\ \x67\x2f\x63\x63\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\ \x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\ \x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\ \x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\x61\x70\ \x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\ \x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\x65\x73\ \x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\x22\x20\ \x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\x74\x70\x3a\ \x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ \x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\x79\x6e\x74\ \x61\x78\x2d\x6e\x73\x23\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x6f\ \x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x69\ \x6e\x6b\x73\x63\x61\x70\x65\x2e\x73\x6f\x75\x72\x63\x65\x66\x6f\ \x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\x44\x2f\x73\x6f\x64\x69\ \x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\x22\x20\x78\x6d\x6c\x6e\ \x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ \x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ \x67\x22\x3e\x0a\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\ \x72\x64\x66\x3a\x52\x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\ \x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\ \x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x22\x20\x78\ \x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ \x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\ \x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\ \x3a\x72\x64\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\ \x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\ \x32\x32\x2d\x72\x64\x66\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\ \x23\x22\x3e\x0a\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x20\x72\x64\x66\ \x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x3c\x64\x63\x3a\x74\ \x69\x74\x6c\x65\x3e\x48\x65\x61\x72\x74\x20\x4c\x65\x66\x74\x2d\ \x48\x69\x67\x68\x6c\x69\x67\x68\x74\x3c\x2f\x64\x63\x3a\x74\x69\ \x74\x6c\x65\x3e\x0a\x3c\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\ \x74\x69\x6f\x6e\x3e\x54\x68\x69\x73\x20\x69\x73\x20\x61\x20\x6e\ \x6f\x72\x6d\x61\x6c\x20\x76\x61\x6c\x65\x6e\x74\x69\x6e\x65\x73\ \x20\x64\x61\x79\x20\x68\x65\x61\x72\x74\x2e\x3c\x2f\x64\x63\x3a\ \x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x3c\x64\x63\ \x3a\x73\x75\x62\x6a\x65\x63\x74\x3e\x0a\x3c\x72\x64\x66\x3a\x42\ \x61\x67\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x68\x6f\x6c\x69\ \x64\x61\x79\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\ \x66\x3a\x6c\x69\x3e\x76\x61\x6c\x65\x6e\x74\x69\x6e\x65\x73\x3c\ \x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\ \x3e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\ \x6c\x69\x3e\x76\x61\x6c\x65\x6e\x74\x69\x6e\x65\x3c\x2f\x72\x64\ \x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x68\x61\ \x73\x68\x28\x30\x78\x38\x61\x30\x39\x31\x63\x30\x29\x3c\x2f\x72\ \x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x68\ \x61\x73\x68\x28\x30\x78\x38\x61\x30\x39\x31\x36\x63\x29\x3c\x2f\ \x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\ \x73\x69\x67\x6e\x73\x5f\x61\x6e\x64\x5f\x73\x79\x6d\x62\x6f\x6c\ \x73\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\ \x6c\x69\x3e\x68\x61\x73\x68\x28\x30\x78\x38\x61\x30\x39\x31\x66\ \x30\x29\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\ \x3a\x6c\x69\x3e\x64\x61\x79\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\ \x0a\x3c\x2f\x72\x64\x66\x3a\x42\x61\x67\x3e\x0a\x3c\x2f\x64\x63\ \x3a\x73\x75\x62\x6a\x65\x63\x74\x3e\x0a\x3c\x64\x63\x3a\x70\x75\ \x62\x6c\x69\x73\x68\x65\x72\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\ \x6e\x74\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x68\x74\ \x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x6f\x70\x65\x6e\x63\x6c\x69\ \x70\x61\x72\x74\x2e\x6f\x72\x67\x22\x3e\x0a\x3c\x64\x63\x3a\x74\ \x69\x74\x6c\x65\x3e\x4a\x6f\x6e\x20\x50\x68\x69\x6c\x6c\x69\x70\ \x73\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\ \x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\x70\x75\ \x62\x6c\x69\x73\x68\x65\x72\x3e\x0a\x3c\x64\x63\x3a\x63\x72\x65\ \x61\x74\x6f\x72\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\ \x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x4a\x6f\x6e\x20\x50\ \x68\x69\x6c\x6c\x69\x70\x73\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\ \x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\ \x2f\x64\x63\x3a\x63\x72\x65\x61\x74\x6f\x72\x3e\x0a\x3c\x64\x63\ \x3a\x72\x69\x67\x68\x74\x73\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\ \x6e\x74\x3e\x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x4a\x6f\ \x6e\x20\x50\x68\x69\x6c\x6c\x69\x70\x73\x3c\x2f\x64\x63\x3a\x74\ \x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\ \x3e\x0a\x3c\x2f\x64\x63\x3a\x72\x69\x67\x68\x74\x73\x3e\x0a\x3c\ \x64\x63\x3a\x64\x61\x74\x65\x3e\x3c\x2f\x64\x63\x3a\x64\x61\x74\ \x65\x3e\x0a\x3c\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\ \x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\ \x66\x6f\x72\x6d\x61\x74\x3e\x0a\x3c\x64\x63\x3a\x74\x79\x70\x65\ \x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\ \x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\ \x63\x2f\x64\x63\x6d\x69\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\ \x49\x6d\x61\x67\x65\x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x6c\x69\x63\ \x65\x6e\x73\x65\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\ \x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\ \x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x50\x75\ \x62\x6c\x69\x63\x44\x6f\x6d\x61\x69\x6e\x22\x2f\x3e\x0a\x3c\x64\ \x63\x3a\x6c\x61\x6e\x67\x75\x61\x67\x65\x3e\x65\x6e\x3c\x2f\x64\ \x63\x3a\x6c\x61\x6e\x67\x75\x61\x67\x65\x3e\x0a\x3c\x2f\x63\x63\ \x3a\x57\x6f\x72\x6b\x3e\x0a\x3c\x63\x63\x3a\x4c\x69\x63\x65\x6e\ \x73\x65\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x68\x74\ \x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\ \x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x50\x75\x62\x6c\x69\x63\x44\ \x6f\x6d\x61\x69\x6e\x22\x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\ \x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\ \x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\ \x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x52\x65\x70\ \x72\x6f\x64\x75\x63\x74\x69\x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\ \x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\ \x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\ \x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\ \x63\x2f\x44\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x22\x2f\ \x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\x64\ \x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\ \x6f\x72\x67\x2f\x63\x63\x2f\x44\x65\x72\x69\x76\x61\x74\x69\x76\ \x65\x57\x6f\x72\x6b\x73\x22\x2f\x3e\x0a\x3c\x2f\x63\x63\x3a\x4c\ \x69\x63\x65\x6e\x73\x65\x3e\x0a\x3c\x2f\x72\x64\x66\x3a\x52\x44\ \x46\x3e\x0a\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\ \x64\x65\x66\x73\x20\x69\x64\x3d\x22\x64\x65\x66\x73\x33\x22\x2f\ \x3e\x0a\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\ \x64\x76\x69\x65\x77\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\x6f\ \x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\x22\x20\x62\x6f\x72\x64\ \x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x2e\x30\x22\x20\ \x69\x64\x3d\x22\x62\x61\x73\x65\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\ \x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x63\x78\x3d\x22\x35\x34\x39\x2e\x34\x30\x36\x37\x34\ \x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x35\ \x39\x36\x2e\x30\x30\x31\x35\x39\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\x74\ \x73\x3d\x22\x70\x78\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ \x67\x75\x69\x64\x65\x2d\x62\x62\x6f\x78\x3d\x22\x74\x72\x75\x65\ \x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\ \x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x30\x22\x20\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\ \x3d\x22\x32\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\ \x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x31\x35\ \x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\ \x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x38\x36\x36\x22\x20\x69\x6e\ \x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\ \x22\x38\x38\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\ \x6e\x64\x6f\x77\x2d\x79\x3d\x22\x31\x31\x36\x22\x20\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x30\x2e\x33\x35\ \x30\x30\x30\x30\x30\x30\x22\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\ \x72\x3d\x22\x23\x66\x66\x66\x66\x66\x66\x22\x20\x73\x68\x6f\x77\ \x67\x75\x69\x64\x65\x73\x3d\x22\x74\x72\x75\x65\x22\x2f\x3e\x0a\ \x3c\x67\x20\x69\x64\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x20\x69\ \x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\x6f\x64\ \x65\x3d\x22\x6c\x61\x79\x65\x72\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\x61\x79\x65\x72\x20\ \x31\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x32\ \x36\x33\x2e\x34\x31\x35\x37\x30\x2c\x32\x33\x35\x2e\x31\x34\x35\ \x38\x38\x20\x43\x20\x31\x39\x37\x2e\x31\x37\x35\x37\x30\x2c\x32\ \x33\x35\x2e\x31\x34\x35\x38\x38\x20\x31\x34\x33\x2e\x34\x31\x35\ \x37\x35\x2c\x32\x38\x38\x2e\x39\x30\x35\x38\x37\x20\x31\x34\x33\ \x2e\x34\x31\x35\x37\x35\x2c\x33\x35\x35\x2e\x31\x34\x35\x38\x38\ \x20\x43\x20\x31\x34\x33\x2e\x34\x31\x35\x37\x35\x2c\x34\x38\x39\ \x2e\x39\x30\x31\x33\x39\x20\x32\x37\x39\x2e\x33\x34\x38\x39\x30\ \x2c\x35\x32\x35\x2e\x32\x33\x33\x31\x38\x20\x33\x37\x31\x2e\x39\ \x37\x38\x32\x30\x2c\x36\x35\x38\x2e\x34\x35\x33\x39\x32\x20\x43\ \x20\x34\x35\x39\x2e\x35\x35\x32\x34\x34\x2c\x35\x32\x36\x2e\x30\ \x35\x30\x35\x36\x20\x36\x30\x30\x2e\x35\x34\x30\x37\x30\x2c\x34\ \x38\x35\x2e\x35\x39\x39\x33\x32\x20\x36\x30\x30\x2e\x35\x34\x30\ \x37\x30\x2c\x33\x35\x35\x2e\x31\x34\x35\x38\x38\x20\x43\x20\x36\ \x30\x30\x2e\x35\x34\x30\x37\x30\x2c\x32\x38\x38\x2e\x39\x30\x35\ \x38\x38\x20\x35\x34\x36\x2e\x37\x38\x30\x38\x30\x2c\x32\x33\x35\ \x2e\x31\x34\x35\x38\x37\x20\x34\x38\x30\x2e\x35\x34\x30\x37\x30\ \x2c\x32\x33\x35\x2e\x31\x34\x35\x38\x38\x20\x43\x20\x34\x33\x32\ \x2e\x34\x39\x32\x38\x30\x2c\x32\x33\x35\x2e\x31\x34\x35\x38\x38\ \x20\x33\x39\x31\x2e\x31\x33\x39\x31\x30\x2c\x32\x36\x33\x2e\x35\ \x31\x36\x33\x31\x20\x33\x37\x31\x2e\x39\x37\x38\x32\x30\x2c\x33\ \x30\x34\x2e\x33\x33\x33\x33\x38\x20\x43\x20\x33\x35\x32\x2e\x38\ \x31\x37\x34\x30\x2c\x32\x36\x33\x2e\x35\x31\x36\x33\x30\x20\x33\ \x31\x31\x2e\x34\x36\x33\x37\x30\x2c\x32\x33\x35\x2e\x31\x34\x35\ \x38\x37\x20\x32\x36\x33\x2e\x34\x31\x35\x37\x30\x2c\x32\x33\x35\ \x2e\x31\x34\x35\x38\x38\x20\x7a\x20\x22\x20\x69\x64\x3d\x22\x70\ \x61\x74\x68\x37\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\ \x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x63\x63\x63\x63\x63\ \x63\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\ \x65\x36\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\ \x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x73\x74\ \x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\ \x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x38\x2e\x37\x30\x30\ \x30\x30\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ \x6c\x69\x6d\x69\x74\x3a\x34\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\ \x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ \x2e\x30\x30\x30\x30\x30\x30\x30\x22\x2f\x3e\x0a\x3c\x70\x61\x74\ \x68\x20\x64\x3d\x22\x4d\x20\x32\x36\x35\x2e\x30\x30\x30\x30\x30\ \x2c\x32\x35\x33\x2e\x35\x39\x33\x37\x35\x20\x43\x20\x32\x30\x37\ \x2e\x30\x34\x30\x33\x33\x2c\x32\x35\x33\x2e\x35\x39\x33\x37\x35\ \x20\x31\x36\x30\x2e\x30\x30\x30\x30\x30\x2c\x33\x30\x30\x2e\x36\ \x33\x34\x30\x37\x20\x31\x36\x30\x2e\x30\x30\x30\x30\x30\x2c\x33\ \x35\x38\x2e\x35\x39\x33\x37\x35\x20\x43\x20\x31\x36\x30\x2e\x30\ \x30\x30\x30\x30\x2c\x34\x37\x36\x2e\x35\x30\x34\x31\x35\x20\x32\ \x37\x38\x2e\x39\x31\x38\x35\x37\x2c\x35\x30\x37\x2e\x34\x33\x32\ \x35\x31\x20\x33\x35\x39\x2e\x39\x36\x38\x37\x35\x2c\x36\x32\x34\ \x2e\x30\x30\x30\x30\x30\x20\x43\x20\x33\x36\x36\x2e\x35\x32\x38\ \x36\x38\x2c\x36\x31\x34\x2e\x30\x38\x32\x30\x35\x20\x32\x32\x30\ \x2e\x30\x30\x30\x30\x30\x2c\x34\x37\x38\x2e\x34\x37\x33\x30\x39\ \x20\x32\x32\x30\x2e\x30\x30\x30\x30\x30\x2c\x33\x37\x38\x2e\x35\ \x39\x33\x37\x35\x20\x43\x20\x32\x32\x30\x2e\x30\x30\x30\x30\x30\ \x2c\x33\x32\x30\x2e\x36\x33\x34\x30\x37\x20\x32\x36\x37\x2e\x30\ \x34\x30\x33\x33\x2c\x32\x37\x33\x2e\x35\x39\x33\x37\x35\x20\x33\ \x32\x35\x2e\x30\x30\x30\x30\x30\x2c\x32\x37\x33\x2e\x35\x39\x33\ \x37\x35\x20\x43\x20\x33\x32\x35\x2e\x35\x30\x34\x35\x33\x2c\x32\ \x37\x33\x2e\x35\x39\x33\x37\x35\x20\x33\x32\x35\x2e\x39\x39\x37\ \x31\x38\x2c\x32\x37\x33\x2e\x36\x34\x39\x31\x32\x20\x33\x32\x36\ \x2e\x35\x30\x30\x30\x30\x2c\x32\x37\x33\x2e\x36\x35\x36\x32\x35\ \x20\x43\x20\x33\x30\x39\x2e\x32\x32\x34\x33\x36\x2c\x32\x36\x31\ \x2e\x30\x37\x32\x38\x36\x20\x32\x38\x38\x2e\x30\x30\x35\x35\x37\ \x2c\x32\x35\x33\x2e\x35\x39\x33\x37\x34\x20\x32\x36\x35\x2e\x30\ \x30\x30\x30\x30\x2c\x32\x35\x33\x2e\x35\x39\x33\x37\x35\x20\x7a\ \x20\x22\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x32\x32\x30\x22\x20\ \x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\ \x65\x73\x3d\x22\x63\x63\x63\x63\x63\x63\x63\x22\x20\x73\x74\x79\ \x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x36\x65\x36\x65\x36\ \x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x2e\ \x36\x34\x35\x35\x36\x39\x36\x32\x3b\x73\x74\x72\x6f\x6b\x65\x3a\ \x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ \x68\x3a\x31\x38\x2e\x37\x30\x30\x30\x30\x31\x3b\x73\x74\x72\x6f\ \x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x2e\ \x30\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\ \x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\ \x22\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ \ \x00\x00\x0d\x2f\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ \x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ \x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\ \x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\ \x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x32\x30\x30\x31\ \x30\x39\x30\x34\x2f\x2f\x45\x4e\x22\x0a\x22\x68\x74\x74\x70\x3a\ \x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x54\x52\x2f\ \x32\x30\x30\x31\x2f\x52\x45\x43\x2d\x53\x56\x47\x2d\x32\x30\x30\ \x31\x30\x39\x30\x34\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x30\x2e\ \x64\x74\x64\x22\x3e\x0a\x3c\x73\x76\x67\x20\x76\x69\x65\x77\x42\ \x6f\x78\x3d\x22\x2d\x31\x30\x20\x2d\x31\x30\x20\x31\x37\x38\x20\ \x31\x37\x38\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x37\x37\ \x2e\x35\x32\x33\x22\x20\x69\x64\x3d\x22\x73\x76\x67\x31\x22\x20\ \x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\ \x3d\x22\x30\x2e\x34\x30\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\ \x3a\x64\x6f\x63\x62\x61\x73\x65\x3d\x22\x2f\x6d\x6e\x74\x2f\x64\ \x6f\x6e\x6e\x65\x65\x73\x2f\x30\x39\x2d\x4d\x65\x73\x5f\x69\x6d\ \x61\x67\x65\x73\x2f\x54\x72\x61\x76\x61\x75\x78\x2f\x54\x72\x61\ \x76\x61\x75\x78\x20\x76\x65\x63\x74\x6f\x72\x69\x65\x6c\x2f\x70\ \x69\x63\x74\x6f\x67\x72\x61\x6d\x6d\x65\x73\x2f\x73\xc3\xa9\x63\ \x75\x20\x53\x56\x47\x2f\x70\x72\x6f\x64\x75\x69\x74\x73\x20\x63\ \x68\x69\x6d\x69\x71\x75\x65\x73\x22\x20\x73\x6f\x64\x69\x70\x6f\ \x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x58\x69\x49\x72\ \x72\x69\x74\x61\x6e\x74\x2e\x73\x76\x67\x22\x20\x73\x6f\x64\x69\ \x70\x6f\x64\x69\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\ \x33\x32\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x35\x35\x2e\x39\ \x33\x32\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ \x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ \x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\ \x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\ \x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x22\x20\x78\x6d\ \x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\ \x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\ \x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ \x69\x6e\x6b\x73\x63\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\ \x2f\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x2f\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\ \x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ \x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\ \x64\x66\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x20\x78\ \x6d\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\ \x74\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\ \x6f\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\ \x54\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\ \x64\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\ \x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ \x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x3e\x0a\x3c\ \x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\x72\x64\x66\x3a\x52\ \x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\ \x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\ \x2e\x6f\x72\x67\x2f\x63\x63\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ \x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\ \x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\ \x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\ \x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\ \x72\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\ \x66\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x3e\x0a\x3c\ \x63\x63\x3a\x57\x6f\x72\x6b\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\ \x74\x3d\x22\x22\x3e\x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\ \x49\x72\x72\x69\x74\x61\x6e\x74\x3c\x2f\x64\x63\x3a\x74\x69\x74\ \x6c\x65\x3e\x0a\x3c\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\x74\ \x69\x6f\x6e\x3e\x70\x72\x6f\x64\x75\x69\x74\x20\x63\x68\x69\x6d\ \x69\x71\x75\x65\x3c\x2f\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\ \x74\x69\x6f\x6e\x3e\x0a\x3c\x64\x63\x3a\x73\x75\x62\x6a\x65\x63\ \x74\x3e\x0a\x3c\x72\x64\x66\x3a\x42\x61\x67\x3e\x0a\x3c\x72\x64\ \x66\x3a\x6c\x69\x3e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\ \x72\x64\x66\x3a\x6c\x69\x3e\x73\x79\x6d\x62\x6f\x6c\x3c\x2f\x72\ \x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x73\ \x69\x67\x6e\x73\x5f\x61\x6e\x64\x5f\x73\x79\x6d\x62\x6f\x6c\x73\ \x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x2f\x72\x64\x66\x3a\ \x42\x61\x67\x3e\x0a\x3c\x2f\x64\x63\x3a\x73\x75\x62\x6a\x65\x63\ \x74\x3e\x0a\x3c\x64\x63\x3a\x70\x75\x62\x6c\x69\x73\x68\x65\x72\ \x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x20\x72\x64\x66\x3a\ \x61\x62\x6f\x75\x74\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ \x77\x2e\x6f\x70\x65\x6e\x63\x6c\x69\x70\x61\x72\x74\x2e\x6f\x72\ \x67\x22\x3e\x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x79\x76\ \x65\x73\x20\x47\x55\x49\x4c\x4c\x4f\x55\x3c\x2f\x64\x63\x3a\x74\ \x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\ \x3e\x0a\x3c\x2f\x64\x63\x3a\x70\x75\x62\x6c\x69\x73\x68\x65\x72\ \x3e\x0a\x3c\x64\x63\x3a\x63\x72\x65\x61\x74\x6f\x72\x3e\x0a\x3c\ \x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x64\x63\x3a\x74\x69\ \x74\x6c\x65\x3e\x79\x76\x65\x73\x20\x47\x55\x49\x4c\x4c\x4f\x55\ \x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\x63\ \x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\x63\x72\x65\ \x61\x74\x6f\x72\x3e\x0a\x3c\x64\x63\x3a\x72\x69\x67\x68\x74\x73\ \x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x64\x63\ \x3a\x74\x69\x74\x6c\x65\x3e\x79\x76\x65\x73\x20\x47\x55\x49\x4c\ \x4c\x4f\x55\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\ \x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\ \x72\x69\x67\x68\x74\x73\x3e\x0a\x3c\x64\x63\x3a\x64\x61\x74\x65\ \x3e\x3c\x2f\x64\x63\x3a\x64\x61\x74\x65\x3e\x0a\x3c\x64\x63\x3a\ \x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\ \x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\ \x0a\x3c\x64\x63\x3a\x74\x79\x70\x65\x20\x72\x64\x66\x3a\x72\x65\ \x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\ \x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\ \x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\x2f\ \x3e\x0a\x3c\x63\x63\x3a\x6c\x69\x63\x65\x6e\x73\x65\x20\x72\x64\ \x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\ \x6f\x72\x67\x2f\x63\x63\x2f\x50\x75\x62\x6c\x69\x63\x44\x6f\x6d\ \x61\x69\x6e\x22\x2f\x3e\x0a\x3c\x64\x63\x3a\x6c\x61\x6e\x67\x75\ \x61\x67\x65\x3e\x65\x6e\x3c\x2f\x64\x63\x3a\x6c\x61\x6e\x67\x75\ \x61\x67\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\x3e\x0a\ \x3c\x63\x63\x3a\x4c\x69\x63\x65\x6e\x73\x65\x20\x72\x64\x66\x3a\ \x61\x62\x6f\x75\x74\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\ \x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\ \x63\x2f\x50\x75\x62\x6c\x69\x63\x44\x6f\x6d\x61\x69\x6e\x22\x3e\ \x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\x64\x66\ \x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\ \x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\ \x72\x67\x2f\x63\x63\x2f\x52\x65\x70\x72\x6f\x64\x75\x63\x74\x69\ \x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\x69\x74\ \x73\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\ \x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\ \x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x44\x69\x73\x74\x72\ \x69\x62\x75\x74\x69\x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x70\ \x65\x72\x6d\x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\ \x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\ \x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\ \x44\x65\x72\x69\x76\x61\x74\x69\x76\x65\x57\x6f\x72\x6b\x73\x22\ \x2f\x3e\x0a\x3c\x2f\x63\x63\x3a\x4c\x69\x63\x65\x6e\x73\x65\x3e\ \x0a\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x3c\x2f\x6d\x65\ \x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\x73\x6f\x64\x69\x70\x6f\x64\ \x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x20\x62\x6f\x72\x64\ \x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\ \x22\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\ \x22\x31\x2e\x30\x22\x20\x69\x64\x3d\x22\x62\x61\x73\x65\x22\x20\ \x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\ \x2d\x6c\x61\x79\x65\x72\x3d\x22\x73\x76\x67\x31\x22\x20\x69\x6e\ \x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x36\x32\x2e\x33\x37\ \x32\x38\x30\x35\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\ \x79\x3d\x22\x33\x34\x2e\x38\x36\x34\x35\x33\x37\x22\x20\x69\x6e\ \x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\x61\x63\x69\ \x74\x79\x3d\x22\x30\x2e\x30\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\ \x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\ \x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\ \x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x31\x32\x31\x22\x20\x69\ \x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\ \x69\x64\x74\x68\x3d\x22\x31\x35\x39\x30\x22\x20\x69\x6e\x6b\x73\ \x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x32\ \x30\x30\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\ \x64\x6f\x77\x2d\x79\x3d\x22\x30\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x36\x2e\x36\x33\x39\x39\x38\ \x34\x39\x22\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\ \x66\x66\x66\x66\x66\x66\x22\x2f\x3e\x0a\x3c\x64\x65\x66\x73\x20\ \x69\x64\x3d\x22\x64\x65\x66\x73\x32\x22\x3e\x0a\x3c\x6d\x61\x72\ \x6b\x65\x72\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x45\x6e\x64\ \x22\x20\x6d\x61\x72\x6b\x65\x72\x48\x65\x69\x67\x68\x74\x3d\x22\ \x33\x22\x20\x6d\x61\x72\x6b\x65\x72\x55\x6e\x69\x74\x73\x3d\x22\ \x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x22\x20\x6d\x61\x72\ \x6b\x65\x72\x57\x69\x64\x74\x68\x3d\x22\x34\x22\x20\x6f\x72\x69\ \x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x20\x72\x65\x66\x58\x3d\ \x22\x30\x22\x20\x72\x65\x66\x59\x3d\x22\x35\x22\x20\x76\x69\x65\ \x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x20\x31\x30\x22\ \x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x30\x20\x30\ \x20\x4c\x20\x31\x30\x20\x35\x20\x4c\x20\x30\x20\x31\x30\x20\x7a\ \x22\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x22\x2f\x3e\x0a\x3c\ \x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0a\x3c\x6d\x61\x72\x6b\x65\x72\ \x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x53\x74\x61\x72\x74\x22\ \x20\x6d\x61\x72\x6b\x65\x72\x48\x65\x69\x67\x68\x74\x3d\x22\x33\ \x22\x20\x6d\x61\x72\x6b\x65\x72\x55\x6e\x69\x74\x73\x3d\x22\x73\ \x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x22\x20\x6d\x61\x72\x6b\ \x65\x72\x57\x69\x64\x74\x68\x3d\x22\x34\x22\x20\x6f\x72\x69\x65\ \x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x20\x72\x65\x66\x58\x3d\x22\ \x31\x30\x22\x20\x72\x65\x66\x59\x3d\x22\x35\x22\x20\x76\x69\x65\ \x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x20\x31\x30\x22\ \x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x31\x30\x20\ \x30\x20\x4c\x20\x30\x20\x35\x20\x4c\x20\x31\x30\x20\x31\x30\x20\ \x7a\x22\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x36\x22\x2f\x3e\x0a\ \x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0a\x3c\x2f\x64\x65\x66\x73\ \x3e\x0a\x3c\x67\x20\x69\x64\x3d\x22\x67\x37\x22\x3e\x0a\x3c\x67\ \x20\x69\x64\x3d\x22\x67\x38\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\ \x64\x3d\x22\x4d\x20\x31\x35\x35\x2e\x39\x33\x32\x20\x31\x35\x35\ \x2e\x39\x33\x32\x4c\x20\x31\x35\x35\x2e\x39\x33\x32\x20\x30\x4c\ \x20\x30\x20\x30\x4c\x20\x30\x20\x31\x35\x35\x2e\x39\x33\x32\x4c\ \x20\x31\x35\x35\x2e\x39\x33\x32\x20\x31\x35\x35\x2e\x39\x33\x32\ \x7a\x22\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x39\x22\x20\x73\x74\ \x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\ \x3b\x20\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x22\x2f\ \x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x31\x35\x30\ \x2e\x38\x33\x20\x31\x35\x30\x2e\x38\x33\x4c\x20\x31\x35\x30\x2e\ \x38\x33\x20\x35\x2e\x31\x30\x31\x31\x4c\x20\x35\x2e\x31\x30\x31\ \x31\x20\x35\x2e\x31\x30\x31\x31\x4c\x20\x35\x2e\x31\x30\x31\x31\ \x20\x31\x35\x30\x2e\x38\x33\x4c\x20\x31\x35\x30\x2e\x38\x33\x20\ \x31\x35\x30\x2e\x38\x33\x7a\x22\x20\x69\x64\x3d\x22\x70\x61\x74\ \x68\x31\x30\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\ \x6b\x65\x3a\x6e\x6f\x6e\x65\x3b\x20\x66\x69\x6c\x6c\x3a\x23\x66\ \x66\x39\x39\x30\x30\x22\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\ \x20\x69\x64\x3d\x22\x67\x31\x31\x22\x3e\x0a\x3c\x70\x61\x74\x68\ \x20\x64\x3d\x22\x4d\x20\x31\x34\x30\x2e\x38\x32\x33\x20\x31\x31\ \x31\x2e\x37\x38\x33\x4c\x20\x34\x34\x2e\x33\x36\x37\x37\x20\x31\ \x34\x2e\x30\x37\x37\x31\x4c\x20\x31\x35\x2e\x31\x30\x38\x34\x20\ \x34\x34\x2e\x31\x34\x38\x39\x4c\x20\x31\x31\x31\x2e\x35\x36\x34\ \x20\x31\x34\x31\x2e\x38\x35\x34\x4c\x20\x31\x34\x30\x2e\x38\x32\ \x33\x20\x31\x31\x31\x2e\x37\x38\x33\x7a\x22\x20\x69\x64\x3d\x22\ \x70\x61\x74\x68\x31\x32\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ \x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x3b\x20\x66\x69\x6c\x6c\ \x3a\x23\x30\x30\x30\x30\x30\x30\x22\x2f\x3e\x0a\x3c\x70\x61\x74\ \x68\x20\x64\x3d\x22\x4d\x20\x31\x31\x31\x2e\x37\x38\x33\x20\x31\ \x35\x2e\x31\x30\x38\x34\x4c\x20\x31\x34\x2e\x30\x37\x37\x31\x20\ \x31\x31\x31\x2e\x35\x36\x34\x4c\x20\x34\x34\x2e\x31\x34\x38\x39\ \x20\x31\x34\x30\x2e\x38\x32\x33\x4c\x20\x31\x34\x31\x2e\x38\x35\ \x35\x20\x34\x34\x2e\x33\x36\x37\x37\x4c\x20\x31\x31\x31\x2e\x37\ \x38\x33\x20\x31\x35\x2e\x31\x30\x38\x34\x7a\x22\x20\x69\x64\x3d\ \x22\x70\x61\x74\x68\x31\x33\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\ \x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x3b\x20\x66\x69\x6c\ \x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x22\x2f\x3e\x0a\x3c\x2f\x67\ \x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ \x00\x00\x0c\x40\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ \x2d\x38\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\x72\ \x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\x75\ \x73\x74\x72\x61\x74\x6f\x72\x20\x31\x30\x2c\x20\x53\x56\x47\x20\ \x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\x2d\x49\x6e\x20\x2e\ \x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\x6e\x3a\x20\x33\x2e\ \x30\x2e\x30\x20\x42\x75\x69\x6c\x64\x20\x37\x36\x29\x20\x20\x2d\ \x2d\x3e\x3c\x73\x76\x67\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\ \x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\ \x30\x20\x33\x34\x37\x20\x33\x34\x38\x22\x20\x68\x65\x69\x67\x68\ \x74\x3d\x22\x33\x34\x38\x22\x20\x69\x3a\x70\x61\x67\x65\x42\x6f\ \x75\x6e\x64\x73\x3d\x22\x30\x20\x37\x39\x32\x20\x36\x31\x32\x20\ \x30\x22\x20\x69\x3a\x72\x75\x6c\x65\x72\x4f\x72\x69\x67\x69\x6e\ \x3d\x22\x30\x20\x30\x22\x20\x69\x3a\x76\x69\x65\x77\x4f\x72\x69\ \x67\x69\x6e\x3d\x22\x31\x33\x31\x20\x35\x36\x37\x22\x20\x6f\x76\ \x65\x72\x66\x6c\x6f\x77\x3d\x22\x76\x69\x73\x69\x62\x6c\x65\x22\ \x20\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\ \x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x2d\x32\x30\x20\x2d\ \x32\x30\x20\x33\x38\x37\x20\x33\x38\x38\x22\x20\x77\x69\x64\x74\ \x68\x3d\x22\x33\x34\x37\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\ \x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\ \x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\ \x3a\x61\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\ \x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x41\x64\x6f\x62\x65\x53\x56\x47\ \x56\x69\x65\x77\x65\x72\x45\x78\x74\x65\x6e\x73\x69\x6f\x6e\x73\ \x2f\x33\x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x67\x72\x61\ \x70\x68\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\ \x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x47\x72\x61\x70\x68\x73\x2f\x31\ \x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x3d\x22\x68\x74\ \x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\ \x6d\x2f\x41\x64\x6f\x62\x65\x49\x6c\x6c\x75\x73\x74\x72\x61\x74\ \x6f\x72\x2f\x31\x30\x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ \x78\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\ \x62\x65\x2e\x63\x6f\x6d\x2f\x45\x78\x74\x65\x6e\x73\x69\x62\x69\ \x6c\x69\x74\x79\x2f\x31\x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\ \x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\ \x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\ \x6c\x69\x6e\x6b\x22\x3e\x0a\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\ \x3e\x0a\x3c\x72\x64\x66\x3a\x52\x44\x46\x20\x78\x6d\x6c\x6e\x73\ \x3a\x63\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\ \x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\ \x22\x20\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\ \x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\ \x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ \x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ \x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\x79\x6e\x74\x61\x78\ \x2d\x6e\x73\x23\x22\x3e\x0a\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x20\ \x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x3c\x64\ \x63\x3a\x74\x69\x74\x6c\x65\x3e\x4b\x65\x65\x70\x20\x54\x69\x64\ \x79\x20\x49\x6e\x73\x69\x64\x65\x3c\x2f\x64\x63\x3a\x74\x69\x74\ \x6c\x65\x3e\x0a\x3c\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\x74\ \x69\x6f\x6e\x3e\x3c\x2f\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\ \x74\x69\x6f\x6e\x3e\x0a\x3c\x64\x63\x3a\x73\x75\x62\x6a\x65\x63\ \x74\x3e\x0a\x3c\x72\x64\x66\x3a\x42\x61\x67\x3e\x0a\x3c\x72\x64\ \x66\x3a\x6c\x69\x3e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\ \x72\x64\x66\x3a\x6c\x69\x3e\x73\x79\x6d\x62\x6f\x6c\x3c\x2f\x72\ \x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x62\ \x69\x6e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\ \x3a\x6c\x69\x3e\x73\x69\x67\x6e\x73\x5f\x61\x6e\x64\x5f\x73\x79\ \x6d\x62\x6f\x6c\x73\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\ \x72\x64\x66\x3a\x6c\x69\x3e\x63\x6c\x65\x61\x6e\x3c\x2f\x72\x64\ \x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x72\x75\ \x62\x69\x73\x68\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\ \x64\x66\x3a\x6c\x69\x3e\x74\x72\x61\x73\x68\x3c\x2f\x72\x64\x66\ \x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x69\x6e\x73\ \x69\x64\x65\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\ \x66\x3a\x6c\x69\x3e\x67\x61\x72\x62\x61\x67\x65\x3c\x2f\x72\x64\ \x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x73\x69\ \x67\x6e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x2f\x72\x64\ \x66\x3a\x42\x61\x67\x3e\x0a\x3c\x2f\x64\x63\x3a\x73\x75\x62\x6a\ \x65\x63\x74\x3e\x0a\x3c\x64\x63\x3a\x70\x75\x62\x6c\x69\x73\x68\ \x65\x72\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x20\x72\x64\ \x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ \x77\x77\x77\x2e\x6f\x70\x65\x6e\x63\x6c\x69\x70\x61\x72\x74\x2e\ \x6f\x72\x67\x22\x3e\x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\ \x4d\x61\x72\x74\x69\x6e\x20\x4f\x77\x65\x6e\x73\x3c\x2f\x64\x63\ \x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\ \x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\x70\x75\x62\x6c\x69\x73\x68\ \x65\x72\x3e\x0a\x3c\x64\x63\x3a\x63\x72\x65\x61\x74\x6f\x72\x3e\ \x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x64\x63\x3a\ \x74\x69\x74\x6c\x65\x3e\x4d\x61\x72\x74\x69\x6e\x20\x4f\x77\x65\ \x6e\x73\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\ \x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\x63\ \x72\x65\x61\x74\x6f\x72\x3e\x0a\x3c\x64\x63\x3a\x72\x69\x67\x68\ \x74\x73\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\ \x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x4d\x61\x72\x74\x69\x6e\x20\ \x4f\x77\x65\x6e\x73\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\ \x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\ \x63\x3a\x72\x69\x67\x68\x74\x73\x3e\x0a\x3c\x64\x63\x3a\x64\x61\ \x74\x65\x3e\x3c\x2f\x64\x63\x3a\x64\x61\x74\x65\x3e\x0a\x3c\x64\ \x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\ \x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\ \x74\x3e\x0a\x3c\x64\x63\x3a\x74\x79\x70\x65\x20\x72\x64\x66\x3a\ \x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\ \x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\ \x69\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\ \x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x6c\x69\x63\x65\x6e\x73\x65\x20\ \x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\ \x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\ \x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x50\x75\x62\x6c\x69\x63\x44\ \x6f\x6d\x61\x69\x6e\x22\x2f\x3e\x0a\x3c\x64\x63\x3a\x6c\x61\x6e\ \x67\x75\x61\x67\x65\x3e\x65\x6e\x3c\x2f\x64\x63\x3a\x6c\x61\x6e\ \x67\x75\x61\x67\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\ \x3e\x0a\x3c\x63\x63\x3a\x4c\x69\x63\x65\x6e\x73\x65\x20\x72\x64\ \x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ \x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\ \x2f\x63\x63\x2f\x50\x75\x62\x6c\x69\x63\x44\x6f\x6d\x61\x69\x6e\ \x22\x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\ \x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\ \x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\ \x2e\x6f\x72\x67\x2f\x63\x63\x2f\x52\x65\x70\x72\x6f\x64\x75\x63\ \x74\x69\x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\ \x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\ \x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\ \x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x44\x69\x73\ \x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\ \x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\ \x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\ \x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\ \x63\x2f\x44\x65\x72\x69\x76\x61\x74\x69\x76\x65\x57\x6f\x72\x6b\ \x73\x22\x2f\x3e\x0a\x3c\x2f\x63\x63\x3a\x4c\x69\x63\x65\x6e\x73\ \x65\x3e\x0a\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x3c\x2f\ \x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\x67\x20\x69\x3a\x64\ \x69\x6d\x6d\x65\x64\x50\x65\x72\x63\x65\x6e\x74\x3d\x22\x35\x30\ \x22\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\ \x66\x22\x20\x69\x3a\x6c\x61\x79\x65\x72\x3d\x22\x79\x65\x73\x22\ \x20\x69\x3a\x72\x67\x62\x54\x72\x69\x6f\x3d\x22\x23\x34\x46\x30\ \x30\x38\x30\x30\x30\x46\x46\x46\x46\x22\x20\x69\x64\x3d\x22\x4c\ \x61\x79\x65\x72\x5f\x31\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\ \x3d\x22\x4d\x33\x34\x37\x2c\x31\x37\x34\x63\x30\x2c\x39\x36\x2e\ \x30\x39\x38\x2d\x37\x37\x2e\x36\x37\x39\x2c\x31\x37\x34\x2d\x31\ \x37\x33\x2e\x35\x2c\x31\x37\x34\x43\x37\x37\x2e\x36\x37\x39\x2c\ \x33\x34\x38\x2c\x30\x2c\x32\x37\x30\x2e\x30\x39\x38\x2c\x30\x2c\ \x31\x37\x34\x20\x20\x20\x20\x43\x30\x2c\x37\x37\x2e\x39\x30\x32\ \x2c\x37\x37\x2e\x36\x37\x39\x2c\x30\x2c\x31\x37\x33\x2e\x35\x2c\ \x30\x43\x32\x36\x39\x2e\x33\x32\x31\x2c\x30\x2c\x33\x34\x37\x2c\ \x37\x37\x2e\x39\x30\x32\x2c\x33\x34\x37\x2c\x31\x37\x34\x7a\x22\ \x20\x66\x69\x6c\x6c\x3d\x22\x23\x31\x30\x41\x30\x34\x30\x22\x20\ \x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\ \x2f\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x33\x38\ \x2c\x35\x33\x63\x30\x2c\x31\x33\x2e\x38\x30\x37\x2d\x31\x31\x2e\ \x38\x36\x34\x2c\x32\x35\x2d\x32\x36\x2e\x35\x2c\x32\x35\x53\x31\ \x38\x35\x2c\x36\x36\x2e\x38\x30\x37\x2c\x31\x38\x35\x2c\x35\x33\ \x73\x31\x31\x2e\x38\x36\x34\x2d\x32\x35\x2c\x32\x36\x2e\x35\x2d\ \x32\x35\x20\x20\x20\x20\x53\x32\x33\x38\x2c\x33\x39\x2e\x31\x39\ \x33\x2c\x32\x33\x38\x2c\x35\x33\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ \x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\x69\x3a\x6b\x6e\x6f\x63\ \x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x2f\x3e\x0a\x3c\x70\x61\ \x74\x68\x20\x64\x3d\x22\x4d\x36\x36\x2c\x31\x37\x35\x63\x31\x2e\ \x30\x35\x35\x2c\x36\x2e\x33\x35\x35\x2c\x31\x39\x2e\x33\x33\x33\ \x2c\x31\x32\x36\x2e\x34\x31\x37\x2c\x31\x39\x2e\x33\x33\x33\x2c\ \x31\x32\x36\x2e\x34\x31\x37\x68\x36\x38\x2e\x33\x33\x33\x20\x20\ \x20\x20\x63\x30\x2c\x30\x2c\x31\x34\x2e\x31\x30\x35\x2d\x31\x32\ \x32\x2e\x35\x32\x34\x2c\x31\x34\x2e\x33\x33\x33\x2d\x31\x32\x36\ \x2e\x34\x31\x37\x63\x36\x2e\x32\x32\x34\x2d\x30\x2e\x36\x32\x32\ \x2c\x36\x2e\x36\x36\x37\x2d\x31\x33\x2d\x32\x2d\x31\x33\x63\x2d\ \x31\x32\x2e\x31\x36\x34\x2c\x30\x2d\x38\x39\x2e\x32\x30\x35\x2d\ \x30\x2e\x30\x35\x39\x2d\x39\x38\x2c\x30\x53\x36\x31\x2e\x31\x36\ \x37\x2c\x31\x37\x34\x2e\x34\x38\x37\x2c\x36\x36\x2c\x31\x37\x35\ \x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\ \x22\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\ \x66\x22\x2f\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x37\ \x38\x2c\x31\x34\x31\x63\x31\x37\x2e\x32\x39\x32\x2d\x35\x2e\x33\ \x32\x35\x2c\x32\x34\x2e\x31\x37\x39\x2d\x32\x33\x2e\x35\x33\x32\ \x2c\x32\x37\x2d\x33\x31\x63\x31\x34\x2e\x35\x31\x33\x2c\x36\x2e\ \x35\x39\x36\x2c\x34\x30\x2e\x33\x33\x33\x2c\x31\x32\x2e\x32\x36\ \x35\x2c\x35\x39\x2c\x38\x20\x20\x20\x20\x63\x33\x2e\x36\x38\x33\ \x2c\x31\x39\x2e\x34\x31\x39\x2d\x32\x38\x2e\x30\x34\x33\x2c\x31\ \x39\x2e\x33\x31\x2d\x32\x33\x2c\x33\x37\x43\x31\x33\x32\x2e\x35\ \x37\x37\x2c\x31\x34\x35\x2e\x37\x30\x35\x2c\x38\x39\x2e\x34\x30\ \x34\x2c\x31\x36\x37\x2e\x32\x39\x32\x2c\x37\x38\x2c\x31\x34\x31\ \x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\ \x22\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\ \x66\x22\x2f\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\ \x30\x33\x2c\x38\x32\x6c\x31\x33\x39\x2d\x31\x63\x2d\x30\x2e\x36\ \x2c\x33\x2e\x34\x32\x31\x2c\x33\x33\x2e\x36\x33\x33\x2c\x35\x37\ \x2e\x34\x39\x37\x2c\x32\x39\x2c\x36\x37\x63\x2d\x34\x2e\x30\x38\ \x39\x2c\x30\x2e\x34\x31\x38\x2d\x36\x37\x2c\x35\x2d\x36\x37\x2c\ \x35\x20\x20\x20\x20\x63\x36\x2e\x31\x30\x39\x2d\x39\x2e\x33\x37\ \x39\x2d\x31\x33\x2d\x34\x33\x2d\x31\x33\x2d\x34\x33\x4c\x31\x30\ \x33\x2c\x38\x32\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\ \x46\x46\x46\x46\x22\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\ \x3d\x22\x4f\x66\x66\x22\x2f\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\ \x3d\x22\x4d\x32\x37\x30\x2c\x31\x35\x36\x6c\x2d\x36\x36\x2d\x33\ \x63\x30\x2c\x30\x2d\x32\x33\x2e\x35\x36\x35\x2c\x31\x34\x33\x2e\ \x33\x35\x35\x2d\x32\x34\x2c\x31\x34\x35\x73\x31\x2e\x38\x35\x35\ \x2c\x32\x2e\x35\x33\x36\x2c\x33\x2c\x31\x73\x35\x31\x2d\x38\x32\ \x2c\x35\x31\x2d\x38\x32\x20\x20\x20\x20\x73\x31\x39\x2e\x37\x35\ \x34\x2c\x38\x30\x2e\x37\x30\x31\x2c\x32\x30\x2c\x38\x32\x73\x33\ \x2e\x37\x32\x31\x2c\x31\x2e\x32\x30\x39\x2c\x34\x2c\x30\x53\x32\ \x37\x30\x2c\x31\x35\x36\x2c\x32\x37\x30\x2c\x31\x35\x36\x7a\x22\ \x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\ \x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\ \x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x08\x97\x87\xa7\ \x00\x68\ \x00\x65\x00\x61\x00\x72\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x07\ \x08\x77\x5a\x07\ \x00\x62\ \x00\x61\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x09\ \x08\x9b\xad\xc7\ \x00\x74\ \x00\x72\x00\x61\x00\x73\x00\x68\x00\x2e\x00\x73\x00\x76\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x25\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x58\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/desktop/systray/systray_rc3.py0000644000076500000240000012613412536324427023627 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:29:49 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x0f\x21\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ \x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ \x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ \x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ \x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x3c\ \x73\x76\x67\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x31\x30\x30\ \x20\x32\x30\x30\x20\x35\x35\x30\x20\x35\x30\x30\x22\x20\x68\x65\ \x69\x67\x68\x74\x3d\x22\x38\x34\x31\x2e\x38\x38\x39\x37\x36\x70\ \x74\x22\x20\x69\x64\x3d\x22\x73\x76\x67\x31\x22\x20\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\ \x2e\x34\x30\x2b\x63\x76\x73\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\ \x69\x3a\x64\x6f\x63\x62\x61\x73\x65\x3d\x22\x43\x3a\x5c\x44\x6f\ \x63\x75\x6d\x65\x6e\x74\x73\x20\x61\x6e\x64\x20\x53\x65\x74\x74\ \x69\x6e\x67\x73\x5c\x4a\x6f\x6e\x20\x50\x68\x69\x6c\x6c\x69\x70\ \x73\x5c\x4d\x79\x20\x44\x6f\x63\x75\x6d\x65\x6e\x74\x73\x5c\x70\ \x72\x6f\x6a\x65\x63\x74\x73\x5c\x63\x6c\x69\x70\x61\x72\x74\x2d\ \x70\x72\x6f\x6a\x65\x63\x74\x5c\x73\x75\x62\x6d\x69\x73\x73\x69\ \x6f\x6e\x73\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x64\x6f\ \x63\x6e\x61\x6d\x65\x3d\x22\x68\x65\x61\x72\x74\x2d\x6c\x65\x66\ \x74\x2d\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x2e\x73\x76\x67\x22\ \x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x76\x65\x72\x73\x69\x6f\ \x6e\x3d\x22\x30\x2e\x33\x32\x22\x20\x77\x69\x64\x74\x68\x3d\x22\ \x35\x39\x35\x2e\x32\x37\x35\x35\x39\x70\x74\x22\x20\x78\x6d\x6c\ \x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ \x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\ \x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\ \x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\ \x67\x2f\x63\x63\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\ \x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\ \x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\ \x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\x61\x70\ \x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\ \x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\x65\x73\ \x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\x22\x20\ \x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\x74\x70\x3a\ \x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\ \x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\x79\x6e\x74\ \x61\x78\x2d\x6e\x73\x23\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x6f\ \x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x69\ \x6e\x6b\x73\x63\x61\x70\x65\x2e\x73\x6f\x75\x72\x63\x65\x66\x6f\ \x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\x44\x2f\x73\x6f\x64\x69\ \x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\x22\x20\x78\x6d\x6c\x6e\ \x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ \x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ \x67\x22\x3e\x0a\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\ \x72\x64\x66\x3a\x52\x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\ \x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\ \x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x22\x20\x78\ \x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ \x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\ \x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\ \x3a\x72\x64\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\ \x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\ \x32\x32\x2d\x72\x64\x66\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\ \x23\x22\x3e\x0a\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x20\x72\x64\x66\ \x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x3c\x64\x63\x3a\x74\ \x69\x74\x6c\x65\x3e\x48\x65\x61\x72\x74\x20\x4c\x65\x66\x74\x2d\ \x48\x69\x67\x68\x6c\x69\x67\x68\x74\x3c\x2f\x64\x63\x3a\x74\x69\ \x74\x6c\x65\x3e\x0a\x3c\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\ \x74\x69\x6f\x6e\x3e\x54\x68\x69\x73\x20\x69\x73\x20\x61\x20\x6e\ \x6f\x72\x6d\x61\x6c\x20\x76\x61\x6c\x65\x6e\x74\x69\x6e\x65\x73\ \x20\x64\x61\x79\x20\x68\x65\x61\x72\x74\x2e\x3c\x2f\x64\x63\x3a\ \x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x3c\x64\x63\ \x3a\x73\x75\x62\x6a\x65\x63\x74\x3e\x0a\x3c\x72\x64\x66\x3a\x42\ \x61\x67\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x68\x6f\x6c\x69\ \x64\x61\x79\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\ \x66\x3a\x6c\x69\x3e\x76\x61\x6c\x65\x6e\x74\x69\x6e\x65\x73\x3c\ \x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\ \x3e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\ \x6c\x69\x3e\x76\x61\x6c\x65\x6e\x74\x69\x6e\x65\x3c\x2f\x72\x64\ \x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x68\x61\ \x73\x68\x28\x30\x78\x38\x61\x30\x39\x31\x63\x30\x29\x3c\x2f\x72\ \x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x68\ \x61\x73\x68\x28\x30\x78\x38\x61\x30\x39\x31\x36\x63\x29\x3c\x2f\ \x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\ \x73\x69\x67\x6e\x73\x5f\x61\x6e\x64\x5f\x73\x79\x6d\x62\x6f\x6c\ \x73\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\ \x6c\x69\x3e\x68\x61\x73\x68\x28\x30\x78\x38\x61\x30\x39\x31\x66\ \x30\x29\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\ \x3a\x6c\x69\x3e\x64\x61\x79\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\ \x0a\x3c\x2f\x72\x64\x66\x3a\x42\x61\x67\x3e\x0a\x3c\x2f\x64\x63\ \x3a\x73\x75\x62\x6a\x65\x63\x74\x3e\x0a\x3c\x64\x63\x3a\x70\x75\ \x62\x6c\x69\x73\x68\x65\x72\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\ \x6e\x74\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x68\x74\ \x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x6f\x70\x65\x6e\x63\x6c\x69\ \x70\x61\x72\x74\x2e\x6f\x72\x67\x22\x3e\x0a\x3c\x64\x63\x3a\x74\ \x69\x74\x6c\x65\x3e\x4a\x6f\x6e\x20\x50\x68\x69\x6c\x6c\x69\x70\ \x73\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\ \x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\x70\x75\ \x62\x6c\x69\x73\x68\x65\x72\x3e\x0a\x3c\x64\x63\x3a\x63\x72\x65\ \x61\x74\x6f\x72\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\ \x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x4a\x6f\x6e\x20\x50\ \x68\x69\x6c\x6c\x69\x70\x73\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\ \x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\ \x2f\x64\x63\x3a\x63\x72\x65\x61\x74\x6f\x72\x3e\x0a\x3c\x64\x63\ \x3a\x72\x69\x67\x68\x74\x73\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\ \x6e\x74\x3e\x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x4a\x6f\ \x6e\x20\x50\x68\x69\x6c\x6c\x69\x70\x73\x3c\x2f\x64\x63\x3a\x74\ \x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\ \x3e\x0a\x3c\x2f\x64\x63\x3a\x72\x69\x67\x68\x74\x73\x3e\x0a\x3c\ \x64\x63\x3a\x64\x61\x74\x65\x3e\x3c\x2f\x64\x63\x3a\x64\x61\x74\ \x65\x3e\x0a\x3c\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\ \x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\ \x66\x6f\x72\x6d\x61\x74\x3e\x0a\x3c\x64\x63\x3a\x74\x79\x70\x65\ \x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\ \x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\ \x63\x2f\x64\x63\x6d\x69\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\ \x49\x6d\x61\x67\x65\x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x6c\x69\x63\ \x65\x6e\x73\x65\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\ \x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\ \x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x50\x75\ \x62\x6c\x69\x63\x44\x6f\x6d\x61\x69\x6e\x22\x2f\x3e\x0a\x3c\x64\ \x63\x3a\x6c\x61\x6e\x67\x75\x61\x67\x65\x3e\x65\x6e\x3c\x2f\x64\ \x63\x3a\x6c\x61\x6e\x67\x75\x61\x67\x65\x3e\x0a\x3c\x2f\x63\x63\ \x3a\x57\x6f\x72\x6b\x3e\x0a\x3c\x63\x63\x3a\x4c\x69\x63\x65\x6e\ \x73\x65\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x68\x74\ \x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\ \x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x50\x75\x62\x6c\x69\x63\x44\ \x6f\x6d\x61\x69\x6e\x22\x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\ \x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\ \x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\ \x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x52\x65\x70\ \x72\x6f\x64\x75\x63\x74\x69\x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\ \x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\ \x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\ \x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\ \x63\x2f\x44\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x22\x2f\ \x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\x64\ \x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\ \x6f\x72\x67\x2f\x63\x63\x2f\x44\x65\x72\x69\x76\x61\x74\x69\x76\ \x65\x57\x6f\x72\x6b\x73\x22\x2f\x3e\x0a\x3c\x2f\x63\x63\x3a\x4c\ \x69\x63\x65\x6e\x73\x65\x3e\x0a\x3c\x2f\x72\x64\x66\x3a\x52\x44\ \x46\x3e\x0a\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\ \x64\x65\x66\x73\x20\x69\x64\x3d\x22\x64\x65\x66\x73\x33\x22\x2f\ \x3e\x0a\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\ \x64\x76\x69\x65\x77\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\x6f\ \x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\x22\x20\x62\x6f\x72\x64\ \x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x2e\x30\x22\x20\ \x69\x64\x3d\x22\x62\x61\x73\x65\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\ \x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x63\x78\x3d\x22\x35\x34\x39\x2e\x34\x30\x36\x37\x34\ \x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x35\ \x39\x36\x2e\x30\x30\x31\x35\x39\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\x74\ \x73\x3d\x22\x70\x78\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ \x67\x75\x69\x64\x65\x2d\x62\x62\x6f\x78\x3d\x22\x74\x72\x75\x65\ \x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\ \x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x30\x22\x20\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\ \x3d\x22\x32\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\ \x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x31\x35\ \x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\ \x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x38\x36\x36\x22\x20\x69\x6e\ \x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\ \x22\x38\x38\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\ \x6e\x64\x6f\x77\x2d\x79\x3d\x22\x31\x31\x36\x22\x20\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x30\x2e\x33\x35\ \x30\x30\x30\x30\x30\x30\x22\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\ \x72\x3d\x22\x23\x66\x66\x66\x66\x66\x66\x22\x20\x73\x68\x6f\x77\ \x67\x75\x69\x64\x65\x73\x3d\x22\x74\x72\x75\x65\x22\x2f\x3e\x0a\ \x3c\x67\x20\x69\x64\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x20\x69\ \x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\x6f\x64\ \x65\x3d\x22\x6c\x61\x79\x65\x72\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\x61\x79\x65\x72\x20\ \x31\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x32\ \x36\x33\x2e\x34\x31\x35\x37\x30\x2c\x32\x33\x35\x2e\x31\x34\x35\ \x38\x38\x20\x43\x20\x31\x39\x37\x2e\x31\x37\x35\x37\x30\x2c\x32\ \x33\x35\x2e\x31\x34\x35\x38\x38\x20\x31\x34\x33\x2e\x34\x31\x35\ \x37\x35\x2c\x32\x38\x38\x2e\x39\x30\x35\x38\x37\x20\x31\x34\x33\ \x2e\x34\x31\x35\x37\x35\x2c\x33\x35\x35\x2e\x31\x34\x35\x38\x38\ \x20\x43\x20\x31\x34\x33\x2e\x34\x31\x35\x37\x35\x2c\x34\x38\x39\ \x2e\x39\x30\x31\x33\x39\x20\x32\x37\x39\x2e\x33\x34\x38\x39\x30\ \x2c\x35\x32\x35\x2e\x32\x33\x33\x31\x38\x20\x33\x37\x31\x2e\x39\ \x37\x38\x32\x30\x2c\x36\x35\x38\x2e\x34\x35\x33\x39\x32\x20\x43\ \x20\x34\x35\x39\x2e\x35\x35\x32\x34\x34\x2c\x35\x32\x36\x2e\x30\ \x35\x30\x35\x36\x20\x36\x30\x30\x2e\x35\x34\x30\x37\x30\x2c\x34\ \x38\x35\x2e\x35\x39\x39\x33\x32\x20\x36\x30\x30\x2e\x35\x34\x30\ \x37\x30\x2c\x33\x35\x35\x2e\x31\x34\x35\x38\x38\x20\x43\x20\x36\ \x30\x30\x2e\x35\x34\x30\x37\x30\x2c\x32\x38\x38\x2e\x39\x30\x35\ \x38\x38\x20\x35\x34\x36\x2e\x37\x38\x30\x38\x30\x2c\x32\x33\x35\ \x2e\x31\x34\x35\x38\x37\x20\x34\x38\x30\x2e\x35\x34\x30\x37\x30\ \x2c\x32\x33\x35\x2e\x31\x34\x35\x38\x38\x20\x43\x20\x34\x33\x32\ \x2e\x34\x39\x32\x38\x30\x2c\x32\x33\x35\x2e\x31\x34\x35\x38\x38\ \x20\x33\x39\x31\x2e\x31\x33\x39\x31\x30\x2c\x32\x36\x33\x2e\x35\ \x31\x36\x33\x31\x20\x33\x37\x31\x2e\x39\x37\x38\x32\x30\x2c\x33\ \x30\x34\x2e\x33\x33\x33\x33\x38\x20\x43\x20\x33\x35\x32\x2e\x38\ \x31\x37\x34\x30\x2c\x32\x36\x33\x2e\x35\x31\x36\x33\x30\x20\x33\ \x31\x31\x2e\x34\x36\x33\x37\x30\x2c\x32\x33\x35\x2e\x31\x34\x35\ \x38\x37\x20\x32\x36\x33\x2e\x34\x31\x35\x37\x30\x2c\x32\x33\x35\ \x2e\x31\x34\x35\x38\x38\x20\x7a\x20\x22\x20\x69\x64\x3d\x22\x70\ \x61\x74\x68\x37\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\ \x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x63\x63\x63\x63\x63\ \x63\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\ \x65\x36\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\ \x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x73\x74\ \x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\ \x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x38\x2e\x37\x30\x30\ \x30\x30\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ \x6c\x69\x6d\x69\x74\x3a\x34\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\ \x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ \x2e\x30\x30\x30\x30\x30\x30\x30\x22\x2f\x3e\x0a\x3c\x70\x61\x74\ \x68\x20\x64\x3d\x22\x4d\x20\x32\x36\x35\x2e\x30\x30\x30\x30\x30\ \x2c\x32\x35\x33\x2e\x35\x39\x33\x37\x35\x20\x43\x20\x32\x30\x37\ \x2e\x30\x34\x30\x33\x33\x2c\x32\x35\x33\x2e\x35\x39\x33\x37\x35\ \x20\x31\x36\x30\x2e\x30\x30\x30\x30\x30\x2c\x33\x30\x30\x2e\x36\ \x33\x34\x30\x37\x20\x31\x36\x30\x2e\x30\x30\x30\x30\x30\x2c\x33\ \x35\x38\x2e\x35\x39\x33\x37\x35\x20\x43\x20\x31\x36\x30\x2e\x30\ \x30\x30\x30\x30\x2c\x34\x37\x36\x2e\x35\x30\x34\x31\x35\x20\x32\ \x37\x38\x2e\x39\x31\x38\x35\x37\x2c\x35\x30\x37\x2e\x34\x33\x32\ \x35\x31\x20\x33\x35\x39\x2e\x39\x36\x38\x37\x35\x2c\x36\x32\x34\ \x2e\x30\x30\x30\x30\x30\x20\x43\x20\x33\x36\x36\x2e\x35\x32\x38\ \x36\x38\x2c\x36\x31\x34\x2e\x30\x38\x32\x30\x35\x20\x32\x32\x30\ \x2e\x30\x30\x30\x30\x30\x2c\x34\x37\x38\x2e\x34\x37\x33\x30\x39\ \x20\x32\x32\x30\x2e\x30\x30\x30\x30\x30\x2c\x33\x37\x38\x2e\x35\ \x39\x33\x37\x35\x20\x43\x20\x32\x32\x30\x2e\x30\x30\x30\x30\x30\ \x2c\x33\x32\x30\x2e\x36\x33\x34\x30\x37\x20\x32\x36\x37\x2e\x30\ \x34\x30\x33\x33\x2c\x32\x37\x33\x2e\x35\x39\x33\x37\x35\x20\x33\ \x32\x35\x2e\x30\x30\x30\x30\x30\x2c\x32\x37\x33\x2e\x35\x39\x33\ \x37\x35\x20\x43\x20\x33\x32\x35\x2e\x35\x30\x34\x35\x33\x2c\x32\ \x37\x33\x2e\x35\x39\x33\x37\x35\x20\x33\x32\x35\x2e\x39\x39\x37\ \x31\x38\x2c\x32\x37\x33\x2e\x36\x34\x39\x31\x32\x20\x33\x32\x36\ \x2e\x35\x30\x30\x30\x30\x2c\x32\x37\x33\x2e\x36\x35\x36\x32\x35\ \x20\x43\x20\x33\x30\x39\x2e\x32\x32\x34\x33\x36\x2c\x32\x36\x31\ \x2e\x30\x37\x32\x38\x36\x20\x32\x38\x38\x2e\x30\x30\x35\x35\x37\ \x2c\x32\x35\x33\x2e\x35\x39\x33\x37\x34\x20\x32\x36\x35\x2e\x30\ \x30\x30\x30\x30\x2c\x32\x35\x33\x2e\x35\x39\x33\x37\x35\x20\x7a\ \x20\x22\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x32\x32\x30\x22\x20\ \x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\ \x65\x73\x3d\x22\x63\x63\x63\x63\x63\x63\x63\x22\x20\x73\x74\x79\ \x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x36\x65\x36\x65\x36\ \x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x2e\ \x36\x34\x35\x35\x36\x39\x36\x32\x3b\x73\x74\x72\x6f\x6b\x65\x3a\ \x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ \x68\x3a\x31\x38\x2e\x37\x30\x30\x30\x30\x31\x3b\x73\x74\x72\x6f\ \x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x2e\ \x30\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\ \x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\ \x22\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ \ \x00\x00\x0d\x2f\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ \x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ \x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\ \x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\ \x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x32\x30\x30\x31\ \x30\x39\x30\x34\x2f\x2f\x45\x4e\x22\x0a\x22\x68\x74\x74\x70\x3a\ \x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x54\x52\x2f\ \x32\x30\x30\x31\x2f\x52\x45\x43\x2d\x53\x56\x47\x2d\x32\x30\x30\ \x31\x30\x39\x30\x34\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x30\x2e\ \x64\x74\x64\x22\x3e\x0a\x3c\x73\x76\x67\x20\x76\x69\x65\x77\x42\ \x6f\x78\x3d\x22\x2d\x31\x30\x20\x2d\x31\x30\x20\x31\x37\x38\x20\ \x31\x37\x38\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x37\x37\ \x2e\x35\x32\x33\x22\x20\x69\x64\x3d\x22\x73\x76\x67\x31\x22\x20\ \x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\ \x3d\x22\x30\x2e\x34\x30\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\ \x3a\x64\x6f\x63\x62\x61\x73\x65\x3d\x22\x2f\x6d\x6e\x74\x2f\x64\ \x6f\x6e\x6e\x65\x65\x73\x2f\x30\x39\x2d\x4d\x65\x73\x5f\x69\x6d\ \x61\x67\x65\x73\x2f\x54\x72\x61\x76\x61\x75\x78\x2f\x54\x72\x61\ \x76\x61\x75\x78\x20\x76\x65\x63\x74\x6f\x72\x69\x65\x6c\x2f\x70\ \x69\x63\x74\x6f\x67\x72\x61\x6d\x6d\x65\x73\x2f\x73\xc3\xa9\x63\ \x75\x20\x53\x56\x47\x2f\x70\x72\x6f\x64\x75\x69\x74\x73\x20\x63\ \x68\x69\x6d\x69\x71\x75\x65\x73\x22\x20\x73\x6f\x64\x69\x70\x6f\ \x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x58\x69\x49\x72\ \x72\x69\x74\x61\x6e\x74\x2e\x73\x76\x67\x22\x20\x73\x6f\x64\x69\ \x70\x6f\x64\x69\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\ \x33\x32\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x35\x35\x2e\x39\ \x33\x32\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\ \x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ \x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\ \x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\ \x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x22\x20\x78\x6d\ \x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\ \x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\ \x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ \x69\x6e\x6b\x73\x63\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\ \x2f\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x2f\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\ \x73\x63\x61\x70\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\ \x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ \x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\ \x64\x66\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x20\x78\ \x6d\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\ \x74\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\ \x6f\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\ \x54\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\ \x64\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\ \x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ \x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x3e\x0a\x3c\ \x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\x72\x64\x66\x3a\x52\ \x44\x46\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\ \x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\ \x2e\x6f\x72\x67\x2f\x63\x63\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ \x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\ \x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\ \x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\ \x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\ \x72\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\ \x66\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x3e\x0a\x3c\ \x63\x63\x3a\x57\x6f\x72\x6b\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\ \x74\x3d\x22\x22\x3e\x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\ \x49\x72\x72\x69\x74\x61\x6e\x74\x3c\x2f\x64\x63\x3a\x74\x69\x74\ \x6c\x65\x3e\x0a\x3c\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\x74\ \x69\x6f\x6e\x3e\x70\x72\x6f\x64\x75\x69\x74\x20\x63\x68\x69\x6d\ \x69\x71\x75\x65\x3c\x2f\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\ \x74\x69\x6f\x6e\x3e\x0a\x3c\x64\x63\x3a\x73\x75\x62\x6a\x65\x63\ \x74\x3e\x0a\x3c\x72\x64\x66\x3a\x42\x61\x67\x3e\x0a\x3c\x72\x64\ \x66\x3a\x6c\x69\x3e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\ \x72\x64\x66\x3a\x6c\x69\x3e\x73\x79\x6d\x62\x6f\x6c\x3c\x2f\x72\ \x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x73\ \x69\x67\x6e\x73\x5f\x61\x6e\x64\x5f\x73\x79\x6d\x62\x6f\x6c\x73\ \x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x2f\x72\x64\x66\x3a\ \x42\x61\x67\x3e\x0a\x3c\x2f\x64\x63\x3a\x73\x75\x62\x6a\x65\x63\ \x74\x3e\x0a\x3c\x64\x63\x3a\x70\x75\x62\x6c\x69\x73\x68\x65\x72\ \x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x20\x72\x64\x66\x3a\ \x61\x62\x6f\x75\x74\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ \x77\x2e\x6f\x70\x65\x6e\x63\x6c\x69\x70\x61\x72\x74\x2e\x6f\x72\ \x67\x22\x3e\x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x79\x76\ \x65\x73\x20\x47\x55\x49\x4c\x4c\x4f\x55\x3c\x2f\x64\x63\x3a\x74\ \x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\ \x3e\x0a\x3c\x2f\x64\x63\x3a\x70\x75\x62\x6c\x69\x73\x68\x65\x72\ \x3e\x0a\x3c\x64\x63\x3a\x63\x72\x65\x61\x74\x6f\x72\x3e\x0a\x3c\ \x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x64\x63\x3a\x74\x69\ \x74\x6c\x65\x3e\x79\x76\x65\x73\x20\x47\x55\x49\x4c\x4c\x4f\x55\ \x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\x63\ \x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\x63\x72\x65\ \x61\x74\x6f\x72\x3e\x0a\x3c\x64\x63\x3a\x72\x69\x67\x68\x74\x73\ \x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x64\x63\ \x3a\x74\x69\x74\x6c\x65\x3e\x79\x76\x65\x73\x20\x47\x55\x49\x4c\ \x4c\x4f\x55\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\ \x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\ \x72\x69\x67\x68\x74\x73\x3e\x0a\x3c\x64\x63\x3a\x64\x61\x74\x65\ \x3e\x3c\x2f\x64\x63\x3a\x64\x61\x74\x65\x3e\x0a\x3c\x64\x63\x3a\ \x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\ \x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\ \x0a\x3c\x64\x63\x3a\x74\x79\x70\x65\x20\x72\x64\x66\x3a\x72\x65\ \x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\ \x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\ \x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\x2f\ \x3e\x0a\x3c\x63\x63\x3a\x6c\x69\x63\x65\x6e\x73\x65\x20\x72\x64\ \x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\ \x6f\x72\x67\x2f\x63\x63\x2f\x50\x75\x62\x6c\x69\x63\x44\x6f\x6d\ \x61\x69\x6e\x22\x2f\x3e\x0a\x3c\x64\x63\x3a\x6c\x61\x6e\x67\x75\ \x61\x67\x65\x3e\x65\x6e\x3c\x2f\x64\x63\x3a\x6c\x61\x6e\x67\x75\ \x61\x67\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\x3e\x0a\ \x3c\x63\x63\x3a\x4c\x69\x63\x65\x6e\x73\x65\x20\x72\x64\x66\x3a\ \x61\x62\x6f\x75\x74\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\ \x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\ \x63\x2f\x50\x75\x62\x6c\x69\x63\x44\x6f\x6d\x61\x69\x6e\x22\x3e\ \x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\x64\x66\ \x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\ \x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\ \x72\x67\x2f\x63\x63\x2f\x52\x65\x70\x72\x6f\x64\x75\x63\x74\x69\ \x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\x69\x74\ \x73\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\ \x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\ \x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x44\x69\x73\x74\x72\ \x69\x62\x75\x74\x69\x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x70\ \x65\x72\x6d\x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\ \x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\ \x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\ \x44\x65\x72\x69\x76\x61\x74\x69\x76\x65\x57\x6f\x72\x6b\x73\x22\ \x2f\x3e\x0a\x3c\x2f\x63\x63\x3a\x4c\x69\x63\x65\x6e\x73\x65\x3e\ \x0a\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x3c\x2f\x6d\x65\ \x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\x73\x6f\x64\x69\x70\x6f\x64\ \x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x20\x62\x6f\x72\x64\ \x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\ \x22\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\ \x22\x31\x2e\x30\x22\x20\x69\x64\x3d\x22\x62\x61\x73\x65\x22\x20\ \x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\ \x2d\x6c\x61\x79\x65\x72\x3d\x22\x73\x76\x67\x31\x22\x20\x69\x6e\ \x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x36\x32\x2e\x33\x37\ \x32\x38\x30\x35\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\ \x79\x3d\x22\x33\x34\x2e\x38\x36\x34\x35\x33\x37\x22\x20\x69\x6e\ \x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\x61\x63\x69\ \x74\x79\x3d\x22\x30\x2e\x30\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\ \x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\ \x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\ \x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x31\x32\x31\x22\x20\x69\ \x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\ \x69\x64\x74\x68\x3d\x22\x31\x35\x39\x30\x22\x20\x69\x6e\x6b\x73\ \x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x32\ \x30\x30\x22\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\ \x64\x6f\x77\x2d\x79\x3d\x22\x30\x22\x20\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x36\x2e\x36\x33\x39\x39\x38\ \x34\x39\x22\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\ \x66\x66\x66\x66\x66\x66\x22\x2f\x3e\x0a\x3c\x64\x65\x66\x73\x20\ \x69\x64\x3d\x22\x64\x65\x66\x73\x32\x22\x3e\x0a\x3c\x6d\x61\x72\ \x6b\x65\x72\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x45\x6e\x64\ \x22\x20\x6d\x61\x72\x6b\x65\x72\x48\x65\x69\x67\x68\x74\x3d\x22\ \x33\x22\x20\x6d\x61\x72\x6b\x65\x72\x55\x6e\x69\x74\x73\x3d\x22\ \x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x22\x20\x6d\x61\x72\ \x6b\x65\x72\x57\x69\x64\x74\x68\x3d\x22\x34\x22\x20\x6f\x72\x69\ \x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x20\x72\x65\x66\x58\x3d\ \x22\x30\x22\x20\x72\x65\x66\x59\x3d\x22\x35\x22\x20\x76\x69\x65\ \x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x20\x31\x30\x22\ \x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x30\x20\x30\ \x20\x4c\x20\x31\x30\x20\x35\x20\x4c\x20\x30\x20\x31\x30\x20\x7a\ \x22\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x22\x2f\x3e\x0a\x3c\ \x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0a\x3c\x6d\x61\x72\x6b\x65\x72\ \x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x53\x74\x61\x72\x74\x22\ \x20\x6d\x61\x72\x6b\x65\x72\x48\x65\x69\x67\x68\x74\x3d\x22\x33\ \x22\x20\x6d\x61\x72\x6b\x65\x72\x55\x6e\x69\x74\x73\x3d\x22\x73\ \x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x22\x20\x6d\x61\x72\x6b\ \x65\x72\x57\x69\x64\x74\x68\x3d\x22\x34\x22\x20\x6f\x72\x69\x65\ \x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x20\x72\x65\x66\x58\x3d\x22\ \x31\x30\x22\x20\x72\x65\x66\x59\x3d\x22\x35\x22\x20\x76\x69\x65\ \x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x20\x31\x30\x22\ \x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x31\x30\x20\ \x30\x20\x4c\x20\x30\x20\x35\x20\x4c\x20\x31\x30\x20\x31\x30\x20\ \x7a\x22\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x36\x22\x2f\x3e\x0a\ \x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0a\x3c\x2f\x64\x65\x66\x73\ \x3e\x0a\x3c\x67\x20\x69\x64\x3d\x22\x67\x37\x22\x3e\x0a\x3c\x67\ \x20\x69\x64\x3d\x22\x67\x38\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\ \x64\x3d\x22\x4d\x20\x31\x35\x35\x2e\x39\x33\x32\x20\x31\x35\x35\ \x2e\x39\x33\x32\x4c\x20\x31\x35\x35\x2e\x39\x33\x32\x20\x30\x4c\ \x20\x30\x20\x30\x4c\x20\x30\x20\x31\x35\x35\x2e\x39\x33\x32\x4c\ \x20\x31\x35\x35\x2e\x39\x33\x32\x20\x31\x35\x35\x2e\x39\x33\x32\ \x7a\x22\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x39\x22\x20\x73\x74\ \x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\ \x3b\x20\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x22\x2f\ \x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x31\x35\x30\ \x2e\x38\x33\x20\x31\x35\x30\x2e\x38\x33\x4c\x20\x31\x35\x30\x2e\ \x38\x33\x20\x35\x2e\x31\x30\x31\x31\x4c\x20\x35\x2e\x31\x30\x31\ \x31\x20\x35\x2e\x31\x30\x31\x31\x4c\x20\x35\x2e\x31\x30\x31\x31\ \x20\x31\x35\x30\x2e\x38\x33\x4c\x20\x31\x35\x30\x2e\x38\x33\x20\ \x31\x35\x30\x2e\x38\x33\x7a\x22\x20\x69\x64\x3d\x22\x70\x61\x74\ \x68\x31\x30\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\ \x6b\x65\x3a\x6e\x6f\x6e\x65\x3b\x20\x66\x69\x6c\x6c\x3a\x23\x66\ \x66\x39\x39\x30\x30\x22\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\ \x20\x69\x64\x3d\x22\x67\x31\x31\x22\x3e\x0a\x3c\x70\x61\x74\x68\ \x20\x64\x3d\x22\x4d\x20\x31\x34\x30\x2e\x38\x32\x33\x20\x31\x31\ \x31\x2e\x37\x38\x33\x4c\x20\x34\x34\x2e\x33\x36\x37\x37\x20\x31\ \x34\x2e\x30\x37\x37\x31\x4c\x20\x31\x35\x2e\x31\x30\x38\x34\x20\ \x34\x34\x2e\x31\x34\x38\x39\x4c\x20\x31\x31\x31\x2e\x35\x36\x34\ \x20\x31\x34\x31\x2e\x38\x35\x34\x4c\x20\x31\x34\x30\x2e\x38\x32\ \x33\x20\x31\x31\x31\x2e\x37\x38\x33\x7a\x22\x20\x69\x64\x3d\x22\ \x70\x61\x74\x68\x31\x32\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ \x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x3b\x20\x66\x69\x6c\x6c\ \x3a\x23\x30\x30\x30\x30\x30\x30\x22\x2f\x3e\x0a\x3c\x70\x61\x74\ \x68\x20\x64\x3d\x22\x4d\x20\x31\x31\x31\x2e\x37\x38\x33\x20\x31\ \x35\x2e\x31\x30\x38\x34\x4c\x20\x31\x34\x2e\x30\x37\x37\x31\x20\ \x31\x31\x31\x2e\x35\x36\x34\x4c\x20\x34\x34\x2e\x31\x34\x38\x39\ \x20\x31\x34\x30\x2e\x38\x32\x33\x4c\x20\x31\x34\x31\x2e\x38\x35\ \x35\x20\x34\x34\x2e\x33\x36\x37\x37\x4c\x20\x31\x31\x31\x2e\x37\ \x38\x33\x20\x31\x35\x2e\x31\x30\x38\x34\x7a\x22\x20\x69\x64\x3d\ \x22\x70\x61\x74\x68\x31\x33\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\ \x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x3b\x20\x66\x69\x6c\ \x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x22\x2f\x3e\x0a\x3c\x2f\x67\ \x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ \x00\x00\x0c\x40\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\ \x2d\x38\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\x72\ \x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\x75\ \x73\x74\x72\x61\x74\x6f\x72\x20\x31\x30\x2c\x20\x53\x56\x47\x20\ \x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\x2d\x49\x6e\x20\x2e\ \x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\x6e\x3a\x20\x33\x2e\ \x30\x2e\x30\x20\x42\x75\x69\x6c\x64\x20\x37\x36\x29\x20\x20\x2d\ \x2d\x3e\x3c\x73\x76\x67\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\ \x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\ \x30\x20\x33\x34\x37\x20\x33\x34\x38\x22\x20\x68\x65\x69\x67\x68\ \x74\x3d\x22\x33\x34\x38\x22\x20\x69\x3a\x70\x61\x67\x65\x42\x6f\ \x75\x6e\x64\x73\x3d\x22\x30\x20\x37\x39\x32\x20\x36\x31\x32\x20\ \x30\x22\x20\x69\x3a\x72\x75\x6c\x65\x72\x4f\x72\x69\x67\x69\x6e\ \x3d\x22\x30\x20\x30\x22\x20\x69\x3a\x76\x69\x65\x77\x4f\x72\x69\ \x67\x69\x6e\x3d\x22\x31\x33\x31\x20\x35\x36\x37\x22\x20\x6f\x76\ \x65\x72\x66\x6c\x6f\x77\x3d\x22\x76\x69\x73\x69\x62\x6c\x65\x22\ \x20\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\ \x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x2d\x32\x30\x20\x2d\ \x32\x30\x20\x33\x38\x37\x20\x33\x38\x38\x22\x20\x77\x69\x64\x74\ \x68\x3d\x22\x33\x34\x37\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\ \x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\ \x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\ \x3a\x61\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\ \x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x41\x64\x6f\x62\x65\x53\x56\x47\ \x56\x69\x65\x77\x65\x72\x45\x78\x74\x65\x6e\x73\x69\x6f\x6e\x73\ \x2f\x33\x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x67\x72\x61\ \x70\x68\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\ \x6f\x62\x65\x2e\x63\x6f\x6d\x2f\x47\x72\x61\x70\x68\x73\x2f\x31\ \x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x3d\x22\x68\x74\ \x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\x65\x2e\x63\x6f\ \x6d\x2f\x41\x64\x6f\x62\x65\x49\x6c\x6c\x75\x73\x74\x72\x61\x74\ \x6f\x72\x2f\x31\x30\x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\ \x78\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\ \x62\x65\x2e\x63\x6f\x6d\x2f\x45\x78\x74\x65\x6e\x73\x69\x62\x69\ \x6c\x69\x74\x79\x2f\x31\x2e\x30\x2f\x22\x20\x78\x6d\x6c\x6e\x73\ \x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\ \x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\ \x6c\x69\x6e\x6b\x22\x3e\x0a\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\ \x3e\x0a\x3c\x72\x64\x66\x3a\x52\x44\x46\x20\x78\x6d\x6c\x6e\x73\ \x3a\x63\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\ \x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\ \x22\x20\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\ \x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\ \x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ \x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\ \x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\x79\x6e\x74\x61\x78\ \x2d\x6e\x73\x23\x22\x3e\x0a\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x20\ \x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x3c\x64\ \x63\x3a\x74\x69\x74\x6c\x65\x3e\x4b\x65\x65\x70\x20\x54\x69\x64\ \x79\x20\x49\x6e\x73\x69\x64\x65\x3c\x2f\x64\x63\x3a\x74\x69\x74\ \x6c\x65\x3e\x0a\x3c\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\x74\ \x69\x6f\x6e\x3e\x3c\x2f\x64\x63\x3a\x64\x65\x73\x63\x72\x69\x70\ \x74\x69\x6f\x6e\x3e\x0a\x3c\x64\x63\x3a\x73\x75\x62\x6a\x65\x63\ \x74\x3e\x0a\x3c\x72\x64\x66\x3a\x42\x61\x67\x3e\x0a\x3c\x72\x64\ \x66\x3a\x6c\x69\x3e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\ \x72\x64\x66\x3a\x6c\x69\x3e\x73\x79\x6d\x62\x6f\x6c\x3c\x2f\x72\ \x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x62\ \x69\x6e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\ \x3a\x6c\x69\x3e\x73\x69\x67\x6e\x73\x5f\x61\x6e\x64\x5f\x73\x79\ \x6d\x62\x6f\x6c\x73\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\ \x72\x64\x66\x3a\x6c\x69\x3e\x63\x6c\x65\x61\x6e\x3c\x2f\x72\x64\ \x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x72\x75\ \x62\x69\x73\x68\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\ \x64\x66\x3a\x6c\x69\x3e\x74\x72\x61\x73\x68\x3c\x2f\x72\x64\x66\ \x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x69\x6e\x73\ \x69\x64\x65\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\ \x66\x3a\x6c\x69\x3e\x67\x61\x72\x62\x61\x67\x65\x3c\x2f\x72\x64\ \x66\x3a\x6c\x69\x3e\x0a\x3c\x72\x64\x66\x3a\x6c\x69\x3e\x73\x69\ \x67\x6e\x3c\x2f\x72\x64\x66\x3a\x6c\x69\x3e\x0a\x3c\x2f\x72\x64\ \x66\x3a\x42\x61\x67\x3e\x0a\x3c\x2f\x64\x63\x3a\x73\x75\x62\x6a\ \x65\x63\x74\x3e\x0a\x3c\x64\x63\x3a\x70\x75\x62\x6c\x69\x73\x68\ \x65\x72\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x20\x72\x64\ \x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ \x77\x77\x77\x2e\x6f\x70\x65\x6e\x63\x6c\x69\x70\x61\x72\x74\x2e\ \x6f\x72\x67\x22\x3e\x0a\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\ \x4d\x61\x72\x74\x69\x6e\x20\x4f\x77\x65\x6e\x73\x3c\x2f\x64\x63\ \x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\ \x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\x70\x75\x62\x6c\x69\x73\x68\ \x65\x72\x3e\x0a\x3c\x64\x63\x3a\x63\x72\x65\x61\x74\x6f\x72\x3e\ \x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x64\x63\x3a\ \x74\x69\x74\x6c\x65\x3e\x4d\x61\x72\x74\x69\x6e\x20\x4f\x77\x65\ \x6e\x73\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\ \x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\x63\x3a\x63\ \x72\x65\x61\x74\x6f\x72\x3e\x0a\x3c\x64\x63\x3a\x72\x69\x67\x68\ \x74\x73\x3e\x0a\x3c\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\ \x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x4d\x61\x72\x74\x69\x6e\x20\ \x4f\x77\x65\x6e\x73\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\ \x0a\x3c\x2f\x63\x63\x3a\x41\x67\x65\x6e\x74\x3e\x0a\x3c\x2f\x64\ \x63\x3a\x72\x69\x67\x68\x74\x73\x3e\x0a\x3c\x64\x63\x3a\x64\x61\ \x74\x65\x3e\x3c\x2f\x64\x63\x3a\x64\x61\x74\x65\x3e\x0a\x3c\x64\ \x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\ \x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\ \x74\x3e\x0a\x3c\x64\x63\x3a\x74\x79\x70\x65\x20\x72\x64\x66\x3a\ \x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\ \x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\ \x69\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\ \x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x6c\x69\x63\x65\x6e\x73\x65\x20\ \x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\ \x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\ \x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x50\x75\x62\x6c\x69\x63\x44\ \x6f\x6d\x61\x69\x6e\x22\x2f\x3e\x0a\x3c\x64\x63\x3a\x6c\x61\x6e\ \x67\x75\x61\x67\x65\x3e\x65\x6e\x3c\x2f\x64\x63\x3a\x6c\x61\x6e\ \x67\x75\x61\x67\x65\x3e\x0a\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\ \x3e\x0a\x3c\x63\x63\x3a\x4c\x69\x63\x65\x6e\x73\x65\x20\x72\x64\ \x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ \x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\ \x2f\x63\x63\x2f\x50\x75\x62\x6c\x69\x63\x44\x6f\x6d\x61\x69\x6e\ \x22\x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\ \x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\ \x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\ \x2e\x6f\x72\x67\x2f\x63\x63\x2f\x52\x65\x70\x72\x6f\x64\x75\x63\ \x74\x69\x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\x3a\x70\x65\x72\x6d\ \x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\ \x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\x62\x2e\x72\x65\x73\ \x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\x63\x2f\x44\x69\x73\ \x74\x72\x69\x62\x75\x74\x69\x6f\x6e\x22\x2f\x3e\x0a\x3c\x63\x63\ \x3a\x70\x65\x72\x6d\x69\x74\x73\x20\x72\x64\x66\x3a\x72\x65\x73\ \x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x65\ \x62\x2e\x72\x65\x73\x6f\x75\x72\x63\x65\x2e\x6f\x72\x67\x2f\x63\ \x63\x2f\x44\x65\x72\x69\x76\x61\x74\x69\x76\x65\x57\x6f\x72\x6b\ \x73\x22\x2f\x3e\x0a\x3c\x2f\x63\x63\x3a\x4c\x69\x63\x65\x6e\x73\ \x65\x3e\x0a\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x3c\x2f\ \x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x3c\x67\x20\x69\x3a\x64\ \x69\x6d\x6d\x65\x64\x50\x65\x72\x63\x65\x6e\x74\x3d\x22\x35\x30\ \x22\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\ \x66\x22\x20\x69\x3a\x6c\x61\x79\x65\x72\x3d\x22\x79\x65\x73\x22\ \x20\x69\x3a\x72\x67\x62\x54\x72\x69\x6f\x3d\x22\x23\x34\x46\x30\ \x30\x38\x30\x30\x30\x46\x46\x46\x46\x22\x20\x69\x64\x3d\x22\x4c\ \x61\x79\x65\x72\x5f\x31\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\ \x3d\x22\x4d\x33\x34\x37\x2c\x31\x37\x34\x63\x30\x2c\x39\x36\x2e\ \x30\x39\x38\x2d\x37\x37\x2e\x36\x37\x39\x2c\x31\x37\x34\x2d\x31\ \x37\x33\x2e\x35\x2c\x31\x37\x34\x43\x37\x37\x2e\x36\x37\x39\x2c\ \x33\x34\x38\x2c\x30\x2c\x32\x37\x30\x2e\x30\x39\x38\x2c\x30\x2c\ \x31\x37\x34\x20\x20\x20\x20\x43\x30\x2c\x37\x37\x2e\x39\x30\x32\ \x2c\x37\x37\x2e\x36\x37\x39\x2c\x30\x2c\x31\x37\x33\x2e\x35\x2c\ \x30\x43\x32\x36\x39\x2e\x33\x32\x31\x2c\x30\x2c\x33\x34\x37\x2c\ \x37\x37\x2e\x39\x30\x32\x2c\x33\x34\x37\x2c\x31\x37\x34\x7a\x22\ \x20\x66\x69\x6c\x6c\x3d\x22\x23\x31\x30\x41\x30\x34\x30\x22\x20\ \x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\ \x2f\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x33\x38\ \x2c\x35\x33\x63\x30\x2c\x31\x33\x2e\x38\x30\x37\x2d\x31\x31\x2e\ \x38\x36\x34\x2c\x32\x35\x2d\x32\x36\x2e\x35\x2c\x32\x35\x53\x31\ \x38\x35\x2c\x36\x36\x2e\x38\x30\x37\x2c\x31\x38\x35\x2c\x35\x33\ \x73\x31\x31\x2e\x38\x36\x34\x2d\x32\x35\x2c\x32\x36\x2e\x35\x2d\ \x32\x35\x20\x20\x20\x20\x53\x32\x33\x38\x2c\x33\x39\x2e\x31\x39\ \x33\x2c\x32\x33\x38\x2c\x35\x33\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ \x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\x69\x3a\x6b\x6e\x6f\x63\ \x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x2f\x3e\x0a\x3c\x70\x61\ \x74\x68\x20\x64\x3d\x22\x4d\x36\x36\x2c\x31\x37\x35\x63\x31\x2e\ \x30\x35\x35\x2c\x36\x2e\x33\x35\x35\x2c\x31\x39\x2e\x33\x33\x33\ \x2c\x31\x32\x36\x2e\x34\x31\x37\x2c\x31\x39\x2e\x33\x33\x33\x2c\ \x31\x32\x36\x2e\x34\x31\x37\x68\x36\x38\x2e\x33\x33\x33\x20\x20\ \x20\x20\x63\x30\x2c\x30\x2c\x31\x34\x2e\x31\x30\x35\x2d\x31\x32\ \x32\x2e\x35\x32\x34\x2c\x31\x34\x2e\x33\x33\x33\x2d\x31\x32\x36\ \x2e\x34\x31\x37\x63\x36\x2e\x32\x32\x34\x2d\x30\x2e\x36\x32\x32\ \x2c\x36\x2e\x36\x36\x37\x2d\x31\x33\x2d\x32\x2d\x31\x33\x63\x2d\ \x31\x32\x2e\x31\x36\x34\x2c\x30\x2d\x38\x39\x2e\x32\x30\x35\x2d\ \x30\x2e\x30\x35\x39\x2d\x39\x38\x2c\x30\x53\x36\x31\x2e\x31\x36\ \x37\x2c\x31\x37\x34\x2e\x34\x38\x37\x2c\x36\x36\x2c\x31\x37\x35\ \x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\ \x22\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\ \x66\x22\x2f\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x37\ \x38\x2c\x31\x34\x31\x63\x31\x37\x2e\x32\x39\x32\x2d\x35\x2e\x33\ \x32\x35\x2c\x32\x34\x2e\x31\x37\x39\x2d\x32\x33\x2e\x35\x33\x32\ \x2c\x32\x37\x2d\x33\x31\x63\x31\x34\x2e\x35\x31\x33\x2c\x36\x2e\ \x35\x39\x36\x2c\x34\x30\x2e\x33\x33\x33\x2c\x31\x32\x2e\x32\x36\ \x35\x2c\x35\x39\x2c\x38\x20\x20\x20\x20\x63\x33\x2e\x36\x38\x33\ \x2c\x31\x39\x2e\x34\x31\x39\x2d\x32\x38\x2e\x30\x34\x33\x2c\x31\ \x39\x2e\x33\x31\x2d\x32\x33\x2c\x33\x37\x43\x31\x33\x32\x2e\x35\ \x37\x37\x2c\x31\x34\x35\x2e\x37\x30\x35\x2c\x38\x39\x2e\x34\x30\ \x34\x2c\x31\x36\x37\x2e\x32\x39\x32\x2c\x37\x38\x2c\x31\x34\x31\ \x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\ \x22\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\ \x66\x22\x2f\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\ \x30\x33\x2c\x38\x32\x6c\x31\x33\x39\x2d\x31\x63\x2d\x30\x2e\x36\ \x2c\x33\x2e\x34\x32\x31\x2c\x33\x33\x2e\x36\x33\x33\x2c\x35\x37\ \x2e\x34\x39\x37\x2c\x32\x39\x2c\x36\x37\x63\x2d\x34\x2e\x30\x38\ \x39\x2c\x30\x2e\x34\x31\x38\x2d\x36\x37\x2c\x35\x2d\x36\x37\x2c\ \x35\x20\x20\x20\x20\x63\x36\x2e\x31\x30\x39\x2d\x39\x2e\x33\x37\ \x39\x2d\x31\x33\x2d\x34\x33\x2d\x31\x33\x2d\x34\x33\x4c\x31\x30\ \x33\x2c\x38\x32\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\ \x46\x46\x46\x46\x22\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\ \x3d\x22\x4f\x66\x66\x22\x2f\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\ \x3d\x22\x4d\x32\x37\x30\x2c\x31\x35\x36\x6c\x2d\x36\x36\x2d\x33\ \x63\x30\x2c\x30\x2d\x32\x33\x2e\x35\x36\x35\x2c\x31\x34\x33\x2e\ \x33\x35\x35\x2d\x32\x34\x2c\x31\x34\x35\x73\x31\x2e\x38\x35\x35\ \x2c\x32\x2e\x35\x33\x36\x2c\x33\x2c\x31\x73\x35\x31\x2d\x38\x32\ \x2c\x35\x31\x2d\x38\x32\x20\x20\x20\x20\x73\x31\x39\x2e\x37\x35\ \x34\x2c\x38\x30\x2e\x37\x30\x31\x2c\x32\x30\x2c\x38\x32\x73\x33\ \x2e\x37\x32\x31\x2c\x31\x2e\x32\x30\x39\x2c\x34\x2c\x30\x53\x32\ \x37\x30\x2c\x31\x35\x36\x2c\x32\x37\x30\x2c\x31\x35\x36\x7a\x22\ \x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\ \x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\ \x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x08\x97\x87\xa7\ \x00\x68\ \x00\x65\x00\x61\x00\x72\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x07\ \x08\x77\x5a\x07\ \x00\x62\ \x00\x61\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x09\ \x08\x9b\xad\xc7\ \x00\x74\ \x00\x72\x00\x61\x00\x73\x00\x68\x00\x2e\x00\x73\x00\x76\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x25\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x58\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/dialogs/0000755000076500000240000000000012536324427017214 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/0000755000076500000240000000000012536324427021542 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/classwizard.py0000755000076500000240000003667212536324427024463 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import classwizard_rc3 except ImportError: import classwizard_rc2 class ClassWizard(QtGui.QWizard): def __init__(self, parent=None): super(ClassWizard, self).__init__(parent) self.addPage(IntroPage()) self.addPage(ClassInfoPage()) self.addPage(CodeStylePage()) self.addPage(OutputFilesPage()) self.addPage(ConclusionPage()) self.setPixmap(QtGui.QWizard.BannerPixmap, QtGui.QPixmap(':/images/banner.png')) self.setPixmap(QtGui.QWizard.BackgroundPixmap, QtGui.QPixmap(':/images/background.png')) self.setWindowTitle("Class Wizard") def accept(self): className = self.field('className') baseClass = self.field('baseClass') macroName = self.field('macroName') baseInclude = self.field('baseInclude') outputDir = self.field('outputDir') header = self.field('header') implementation = self.field('implementation') block = '' if self.field('comment'): block += '/*\n' block += ' ' + header + '\n' block += '*/\n' block += '\n' if self.field('protect'): block += '#ifndef ' + macroName + '\n' block += '#define ' + macroName + '\n' block += '\n' if self.field('includeBase'): block += '#include ' + baseInclude + '\n' block += '\n' block += 'class ' + className if baseClass: block += ' : public ' + baseClass block += '\n' block += '{\n' if self.field('qobjectMacro'): block += ' Q_OBJECT\n' block += '\n' block += 'public:\n' if self.field('qobjectCtor'): block += ' ' + className + '(QObject *parent = 0);\n' elif self.field('qwidgetCtor'): block += ' ' + className + '(QWidget *parent = 0);\n' elif self.field('defaultCtor'): block += ' ' + className + '();\n' if self.field('copyCtor'): block += ' ' + className + '(const ' + className + ' &other);\n' block += '\n' block += ' ' + className + ' &operator=' + '(const ' + className + ' &other);\n' block += '};\n' if self.field('protect'): block += '\n' block += '#endif\n' headerFile = QtCore.QFile(outputDir + '/' + header) if not headerFile.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(None, "Class Wizard", "Cannot write file %s:\n%s" % (headerFile.fileName(), headerFile.errorString())) return headerFile.write(block) block = '' if self.field('comment'): block += '/*\n' block += ' ' + implementation + '\n' block += '*/\n' block += '\n' block += '#include "' + header + '"\n' block += '\n' if self.field('qobjectCtor'): block += className + '::' + className + '(QObject *parent)\n' block += ' : ' + baseClass + '(parent)\n' block += '{\n' block += '}\n' elif self.field('qwidgetCtor'): block += className + '::' + className + '(QWidget *parent)\n' block += ' : ' + baseClass + '(parent)\n' block += '{\n' block += '}\n' elif self.field('defaultCtor'): block += className + '::' + className + '()\n' block += '{\n' block += ' // missing code\n' block += '}\n' if self.field('copyCtor'): block += '\n' block += className + '::' + className + '(const ' + className + ' &other)\n' block += '{\n' block += ' *this = other;\n' block += '}\n' block += '\n' block += className + ' &' + className + '::operator=(const ' + className + ' &other)\n' block += '{\n' if baseClass: block += ' ' + baseClass + '::operator=(other);\n' block += ' // missing code\n' block += ' return *this;\n' block += '}\n' implementationFile = QtCore.QFile(outputDir + '/' + implementation) if not implementationFile.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(None, "Class Wizard", "Cannot write file %s:\n%s" % (implementationFile.fileName(), implementationFile.errorString())) return implementationFile.write(block) super(ClassWizard, self).accept() class IntroPage(QtGui.QWizardPage): def __init__(self, parent=None): super(IntroPage, self).__init__(parent) self.setTitle("Introduction") self.setPixmap(QtGui.QWizard.WatermarkPixmap, QtGui.QPixmap(':/images/watermark1.png')) label = QtGui.QLabel("This wizard will generate a skeleton C++ class " "definition, including a few functions. You simply need to " "specify the class name and set a few options to produce a " "header file and an implementation file for your new C++ " "class.") label.setWordWrap(True) layout = QtGui.QVBoxLayout() layout.addWidget(label) self.setLayout(layout) class ClassInfoPage(QtGui.QWizardPage): def __init__(self, parent=None): super(ClassInfoPage, self).__init__(parent) self.setTitle("Class Information") self.setSubTitle("Specify basic information about the class for " "which you want to generate skeleton source code files.") self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(':/images/logo1.png')) classNameLabel = QtGui.QLabel("&Class name:") classNameLineEdit = QtGui.QLineEdit() classNameLabel.setBuddy(classNameLineEdit) baseClassLabel = QtGui.QLabel("B&ase class:") baseClassLineEdit = QtGui.QLineEdit() baseClassLabel.setBuddy(baseClassLineEdit) qobjectMacroCheckBox = QtGui.QCheckBox("Generate Q_OBJECT ¯o") groupBox = QtGui.QGroupBox("C&onstructor") qobjectCtorRadioButton = QtGui.QRadioButton("&QObject-style constructor") qwidgetCtorRadioButton = QtGui.QRadioButton("Q&Widget-style constructor") defaultCtorRadioButton = QtGui.QRadioButton("&Default constructor") copyCtorCheckBox = QtGui.QCheckBox("&Generate copy constructor and operator=") defaultCtorRadioButton.setChecked(True) defaultCtorRadioButton.toggled.connect(copyCtorCheckBox.setEnabled) self.registerField('className*', classNameLineEdit) self.registerField('baseClass', baseClassLineEdit) self.registerField('qobjectMacro', qobjectMacroCheckBox) self.registerField('qobjectCtor', qobjectCtorRadioButton) self.registerField('qwidgetCtor', qwidgetCtorRadioButton) self.registerField('defaultCtor', defaultCtorRadioButton) self.registerField('copyCtor', copyCtorCheckBox) groupBoxLayout = QtGui.QVBoxLayout() groupBoxLayout.addWidget(qobjectCtorRadioButton) groupBoxLayout.addWidget(qwidgetCtorRadioButton) groupBoxLayout.addWidget(defaultCtorRadioButton) groupBoxLayout.addWidget(copyCtorCheckBox) groupBox.setLayout(groupBoxLayout) layout = QtGui.QGridLayout() layout.addWidget(classNameLabel, 0, 0) layout.addWidget(classNameLineEdit, 0, 1) layout.addWidget(baseClassLabel, 1, 0) layout.addWidget(baseClassLineEdit, 1, 1) layout.addWidget(qobjectMacroCheckBox, 2, 0, 1, 2) layout.addWidget(groupBox, 3, 0, 1, 2) self.setLayout(layout) class CodeStylePage(QtGui.QWizardPage): def __init__(self, parent=None): super(CodeStylePage, self).__init__(parent) self.setTitle("Code Style Options") self.setSubTitle("Choose the formatting of the generated code.") self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(':/images/logo2.png')) commentCheckBox = QtGui.QCheckBox("&Start generated files with a " "comment") commentCheckBox.setChecked(True) protectCheckBox = QtGui.QCheckBox("&Protect header file against " "multiple inclusions") protectCheckBox.setChecked(True) macroNameLabel = QtGui.QLabel("&Macro name:") self.macroNameLineEdit = QtGui.QLineEdit() macroNameLabel.setBuddy(self.macroNameLineEdit) self.includeBaseCheckBox = QtGui.QCheckBox("&Include base class " "definition") self.baseIncludeLabel = QtGui.QLabel("Base class include:") self.baseIncludeLineEdit = QtGui.QLineEdit() self.baseIncludeLabel.setBuddy(self.baseIncludeLineEdit) protectCheckBox.toggled.connect(macroNameLabel.setEnabled) protectCheckBox.toggled.connect(self.macroNameLineEdit.setEnabled) self.includeBaseCheckBox.toggled.connect(self.baseIncludeLabel.setEnabled) self.includeBaseCheckBox.toggled.connect(self.baseIncludeLineEdit.setEnabled) self.registerField('comment', commentCheckBox) self.registerField('protect', protectCheckBox) self.registerField('macroName', self.macroNameLineEdit) self.registerField('includeBase', self.includeBaseCheckBox) self.registerField('baseInclude', self.baseIncludeLineEdit) layout = QtGui.QGridLayout() layout.setColumnMinimumWidth(0, 20) layout.addWidget(commentCheckBox, 0, 0, 1, 3) layout.addWidget(protectCheckBox, 1, 0, 1, 3) layout.addWidget(macroNameLabel, 2, 1) layout.addWidget(self.macroNameLineEdit, 2, 2) layout.addWidget(self.includeBaseCheckBox, 3, 0, 1, 3) layout.addWidget(self.baseIncludeLabel, 4, 1) layout.addWidget(self.baseIncludeLineEdit, 4, 2) self.setLayout(layout) def initializePage(self): className = self.field('className') self.macroNameLineEdit.setText(className.upper() + "_H") baseClass = self.field('baseClass') is_baseClass = bool(baseClass) self.includeBaseCheckBox.setChecked(is_baseClass) self.includeBaseCheckBox.setEnabled(is_baseClass) self.baseIncludeLabel.setEnabled(is_baseClass) self.baseIncludeLineEdit.setEnabled(is_baseClass) if not is_baseClass: self.baseIncludeLineEdit.clear() elif QtCore.QRegExp('Q[A-Z].*').exactMatch(baseClass): self.baseIncludeLineEdit.setText('<' + baseClass + '>') else: self.baseIncludeLineEdit.setText('"' + baseClass.lower() + '.h"') class OutputFilesPage(QtGui.QWizardPage): def __init__(self, parent=None): super(OutputFilesPage, self).__init__(parent) self.setTitle("Output Files") self.setSubTitle("Specify where you want the wizard to put the " "generated skeleton code.") self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(':/images/logo3.png')) outputDirLabel = QtGui.QLabel("&Output directory:") self.outputDirLineEdit = QtGui.QLineEdit() outputDirLabel.setBuddy(self.outputDirLineEdit) headerLabel = QtGui.QLabel("&Header file name:") self.headerLineEdit = QtGui.QLineEdit() headerLabel.setBuddy(self.headerLineEdit) implementationLabel = QtGui.QLabel("&Implementation file name:") self.implementationLineEdit = QtGui.QLineEdit() implementationLabel.setBuddy(self.implementationLineEdit) self.registerField('outputDir*', self.outputDirLineEdit) self.registerField('header*', self.headerLineEdit) self.registerField('implementation*', self.implementationLineEdit) layout = QtGui.QGridLayout() layout.addWidget(outputDirLabel, 0, 0) layout.addWidget(self.outputDirLineEdit, 0, 1) layout.addWidget(headerLabel, 1, 0) layout.addWidget(self.headerLineEdit, 1, 1) layout.addWidget(implementationLabel, 2, 0) layout.addWidget(self.implementationLineEdit, 2, 1) self.setLayout(layout) def initializePage(self): className = self.field('className') self.headerLineEdit.setText(className.lower() + '.h') self.implementationLineEdit.setText(className.lower() + '.cpp') self.outputDirLineEdit.setText(QtCore.QDir.convertSeparators(QtCore.QDir.tempPath())) class ConclusionPage(QtGui.QWizardPage): def __init__(self, parent=None): super(ConclusionPage, self).__init__(parent) self.setTitle("Conclusion") self.setPixmap(QtGui.QWizard.WatermarkPixmap, QtGui.QPixmap(':/images/watermark2.png')) self.label = QtGui.QLabel() self.label.setWordWrap(True) layout = QtGui.QVBoxLayout() layout.addWidget(self.label) self.setLayout(layout) def initializePage(self): finishText = self.wizard().buttonText(QtGui.QWizard.FinishButton) finishText.replace('&', '') self.label.setText("Click %s to generate the class skeleton." % finishText) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) wizard = ClassWizard() wizard.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/classwizard.qrc0000644000076500000240000000050012536324427024572 0ustar philstaff00000000000000 images/background.png images/banner.png images/logo1.png images/logo2.png images/logo3.png images/watermark1.png images/watermark2.png PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/classwizard_rc2.py0000644000076500000240000075611712536324427025231 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:30:26 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x06\x53\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x03\x00\x00\x00\x9d\xb7\x81\xec\ \x00\x00\x02\xeb\x50\x4c\x54\x45\x00\x00\x00\xff\x00\x00\xff\xff\ \xff\xff\xff\xff\xbf\x00\x00\xff\xff\xff\x99\x00\x00\xff\xff\xff\ \x9f\x00\x00\xaa\x00\x00\xb2\x00\x00\xff\xff\xff\xb9\x00\x00\xff\ \xff\xff\xaa\x00\x00\xff\xff\xff\xb0\x00\x00\xb6\x12\x12\xff\xff\ \xff\xaa\x00\x00\xae\x00\x00\xff\xff\xff\xff\xff\xff\xaa\x00\x00\ \xff\xff\xff\xad\x00\x00\xb3\x00\x00\xff\xff\xff\xad\x00\x00\xff\ \xff\xff\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xff\xac\x00\x00\xb0\x00\x00\xc4\x47\x47\xff\xff\xff\xff\xff\xff\ \xad\x00\x00\xaf\x00\x00\xb1\x00\x00\xff\xff\xff\xff\xff\xff\xae\ \x00\x00\xff\xff\xff\xae\x00\x00\xff\xff\xff\xae\x00\x00\xf2\xd5\ \xd5\xff\xff\xff\xff\xff\xff\xbf\x38\x38\xad\x00\x00\xff\xff\xff\ \xff\xff\xff\xff\xff\xff\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xaf\ \x00\x00\xb0\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xae\x00\ \x00\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xae\x00\x00\xaf\x00\x00\xff\xff\xff\xae\x00\x00\xd1\x70\x70\xae\ \x00\x00\xae\x02\x02\xaf\x00\x00\xff\xff\xff\xb0\x00\x00\xff\xff\ \xff\xda\x8c\x8c\xae\x00\x00\xff\xff\xff\xaf\x00\x00\xff\xff\xff\ \xaf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xae\x00\x00\xff\ \xff\xff\xd3\x75\x75\xaf\x00\x00\xc9\x51\x51\xae\x00\x00\xf4\xdc\ \xdc\xff\xff\xff\xaf\x00\x00\xae\x00\x00\xff\xff\xff\xae\x00\x00\ \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe6\xb2\xb2\xff\ \xff\xff\xae\x00\x00\xff\xff\xff\xaf\x00\x00\xaf\x00\x00\xae\x00\ \x00\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x71\x71\ \xaf\x00\x00\xff\xff\xff\xba\x27\x27\xae\x00\x00\xaf\x00\x00\xfa\ \xf4\xf4\xd9\x87\x87\xff\xff\xff\xff\xff\xff\xba\x24\x24\xff\xff\ \xff\xb8\x1f\x1f\xff\xff\xff\xf3\xd9\xd9\xff\xff\xff\xb7\x1a\x1a\ \xae\x00\x00\xae\x00\x00\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xae\ \x00\x00\xaf\x00\x00\xcc\x5c\x5c\xff\xff\xff\xb7\x1b\x1b\xb2\x0a\ \x0a\xaf\x03\x03\xae\x00\x00\xff\xff\xff\xff\xff\xff\xaf\x02\x02\ \xff\xff\xff\xb0\x02\x02\xff\xff\xff\xff\xff\xff\xcd\x63\x63\xaf\ \x00\x00\xaf\x01\x01\xff\xff\xff\xaf\x00\x00\xb1\x08\x08\xae\x00\ \x00\xff\xff\xff\xd1\x6d\x6d\xaf\x00\x00\xb4\x10\x10\xe6\xae\xae\ \xae\x00\x00\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xea\xbd\xbd\xfb\ \xf4\xf4\xae\x00\x00\xaf\x00\x00\xba\x22\x22\xeb\xc1\xc1\xff\xff\ \xff\xcb\x5a\x5a\xda\x8b\x8b\xff\xff\xff\xaf\x00\x00\xff\xff\xff\ \xba\x22\x22\xaf\x01\x01\xbf\x32\x32\xc6\x48\x48\xe8\xb7\xb7\xf8\ \xea\xea\xfa\xf0\xf0\xfb\xf2\xf2\xff\xfe\xfe\xb0\x02\x02\xc7\x4c\ \x4c\xb7\x1a\x1a\xb0\x04\x04\xbb\x26\x26\xbb\x27\x27\xb1\x05\x05\ \xbf\x33\x33\xc0\x35\x35\xc2\x3b\x3b\xc2\x3e\x3e\xc4\x44\x44\xb1\ \x06\x06\xb7\x19\x19\xc8\x4f\x4f\xc9\x52\x52\xca\x57\x57\xcb\x58\ \x58\xcb\x59\x59\xcd\x61\x61\xce\x62\x62\xcf\x66\x66\xd0\x6a\x6a\ \xd3\x74\x74\xd4\x75\x75\xd6\x7b\x7b\xd7\x7e\x7e\xd7\x81\x81\xdc\ \x8f\x8f\xe1\x9e\x9e\xe1\x9f\x9f\xe2\xa2\xa2\xe4\xaa\xaa\xe5\xab\ \xab\xe6\xb0\xb0\xe7\xb1\xb1\xe7\xb4\xb4\xb2\x09\x09\xeb\xbe\xbe\ \xec\xc4\xc4\xf0\xd0\xd0\xf2\xd4\xd4\xf2\xd5\xd5\xf4\xdb\xdb\xf5\ \xde\xde\xf5\xe0\xe0\xf7\xe4\xe4\xb2\x0b\x0b\xf9\xec\xec\xb3\x0e\ \x0e\xb6\x15\x15\xfc\xf7\xf7\xfe\xfb\xfb\xfe\xfc\xfc\xb6\x16\x16\ \xb6\x17\x17\xdc\x97\x3c\x09\x00\x00\x00\xb6\x74\x52\x4e\x53\x00\ \x01\x01\x03\x04\x04\x05\x08\x08\x09\x0a\x0a\x0b\x0b\x0c\x0d\x0d\ \x0e\x0f\x0f\x13\x13\x14\x15\x15\x16\x1b\x1b\x1c\x1c\x1d\x1e\x1f\ \x21\x24\x25\x27\x27\x2a\x2b\x2c\x2d\x2e\x2f\x32\x36\x36\x39\x3b\ \x3c\x3d\x40\x41\x44\x45\x48\x4b\x4c\x4d\x4e\x4f\x50\x54\x54\x55\ \x5a\x5c\x5d\x5d\x60\x61\x63\x65\x67\x67\x68\x6b\x6c\x6c\x6d\x70\ \x71\x73\x78\x7c\x7e\x80\x81\x83\x84\x8a\x8b\x8c\x8c\x8d\x91\x93\ \x95\x95\x95\x96\x98\x99\x9c\x9d\x9e\xa4\xa6\xa7\xa7\xa8\xa8\xa9\ \xaa\xac\xad\xad\xb0\xb3\xb3\xb4\xb7\xbb\xbc\xbd\xbd\xc0\xc1\xc4\ \xc6\xca\xcb\xcc\xcd\xcd\xd0\xd2\xd4\xd7\xd8\xd9\xdb\xdc\xdc\xdd\ \xde\xe0\xe1\xe4\xe5\xe6\xe7\xe8\xe9\xe9\xea\xef\xf0\xf0\xf1\xf3\ \xf3\xf5\xf6\xf6\xf7\xf7\xf7\xf8\xfa\xfa\xfb\xfb\xfb\xfb\xfc\xfc\ \xfd\xfd\xfe\xfe\xfe\xa0\xb1\xff\x8a\x00\x00\x02\x61\x49\x44\x41\ \x54\x78\x5e\xdd\xd7\x55\x70\x13\x51\x14\xc7\xe1\xd3\x52\x28\xda\ \x42\xf1\xe2\x5e\xdc\x5b\x28\x10\xdc\xdd\xdd\xdd\x0a\x45\x8a\xb4\ \xb8\x7b\x70\x29\x5e\x24\x50\xa0\xe8\xd9\xa4\x2a\xb8\xbb\xbb\xbb\ \xeb\x23\x93\x3d\x77\xee\xcb\xe6\x66\x98\x93\x17\xa6\xbf\xd7\xff\ \xe6\x9b\x7d\xc8\x9c\x99\x85\x14\x52\xfa\x52\x39\x5d\xfa\xf9\x80\ \x28\xc4\x95\x41\x26\x36\x30\x10\xa9\x19\xd9\x78\x80\xc7\x4e\x14\ \xed\xaa\xca\x02\x72\xa3\xec\x60\x25\x96\xb0\x1e\x65\x1b\x33\x70\ \x80\xfa\x36\x09\xd8\x46\x00\xa7\x5e\x17\xbe\xa0\xe8\x68\x19\x96\ \x50\x7d\xca\xee\x68\x02\xae\xb6\x03\x5e\x9e\x7d\x08\xb0\x8e\x02\ \x66\x45\x09\x38\x61\xe6\x02\x79\x05\x10\xf9\x3f\x03\x6e\x2e\x01\ \x25\x47\x2f\x39\xb0\x2a\x34\x90\x0d\x34\x8f\xa2\x7d\x32\x13\xf0\ \xb3\xa0\x68\x2a\x0f\xe8\x84\x22\xbc\x5c\x97\x05\x8c\x95\x80\x75\ \x3c\x0b\xe8\x2d\x81\x73\x66\x16\x60\x92\xc0\xdd\xe9\x0a\xc0\xd7\ \x29\xe0\x36\x0b\x29\x6b\x7c\x37\x05\x90\x8e\x80\xa4\xfd\x8e\xe7\ \x2c\xcb\x2e\xda\xe7\x2b\x1f\xcd\x3e\xa0\x68\x33\x09\x87\x14\x37\ \xc9\xbb\xdf\xbe\x47\xb1\x9f\xb4\x71\x85\x40\xd5\x42\x02\x62\x5a\ \xa8\xfe\xb1\x39\x2a\x37\x0a\x28\x08\xea\xc2\x50\xb4\xa2\x95\x17\ \x70\xaa\x85\xb2\x6d\xc5\x58\xc2\x3c\x94\xed\xc8\xc7\x01\xca\xa2\ \x2c\xb9\x27\x07\xe8\x81\xb2\x9b\x21\x0c\xc0\x6f\x8f\x04\x6c\xaf\ \x87\x30\x80\x60\x14\xe1\x9f\x27\xc7\xaa\x30\x80\xf9\x04\x1c\xbf\ \xf7\x2e\x71\x5d\x03\x60\xb4\x89\x80\x17\xab\xbb\x96\x70\x07\x46\ \x59\x91\x8a\xab\xe1\xe2\x55\xd6\x72\x39\x9c\xfd\xbb\x88\x9a\x32\ \x8f\x6a\x28\x8a\x26\x34\x63\x01\x5e\x16\xa4\x4e\xfd\x6c\xcc\x02\ \x02\x51\xf4\x74\x51\x6a\x16\xd0\x17\xa9\xe8\xc4\x3a\xc0\x02\x96\ \x22\x15\x3b\xd7\x9d\x05\x14\x41\xea\xbc\x16\x00\x2c\xa0\x35\x52\ \x6f\xa6\x01\x0f\x98\x48\x63\xb2\x56\x81\x07\xa4\xdd\x4e\x17\xfb\ \x6d\x08\xf0\x00\x7f\xda\xae\x1f\x2e\x0d\xea\xca\x13\xf0\x2a\x52\ \x79\x6a\x4e\x7f\x18\x0e\x4e\xea\x40\xc0\xd9\x08\x30\xb6\x40\x9f\ \x6e\xed\x2d\xac\x04\x7c\xeb\x05\x6f\x25\xe0\xf6\x4c\xe3\x9a\x9f\ \xde\xed\xf3\x20\x50\x94\x39\x08\x65\x8f\xfb\x1b\xf7\x26\xfa\x72\ \x27\x22\x8f\x0a\x18\x8c\xb2\xef\x71\x0d\x8d\xfb\x18\xfb\xf2\xed\ \x6b\x77\x50\x94\xc6\x82\xb2\x67\xe1\xc6\x73\xe0\xa1\xdf\xaa\x07\ \x5b\xb2\xff\xc3\xf7\xc2\x35\xad\xb6\x71\xaf\xa8\xbf\x5a\x42\x47\ \x50\xb6\x16\x45\x37\x12\x46\x82\xb1\xb6\xf6\xe9\x61\xb8\xb7\x1a\ \x30\x25\xe9\xc0\xef\xe7\xda\x50\x47\x4f\xb5\x44\xc4\x93\x3f\xda\ \x80\x93\xda\x1f\x39\x13\x73\xff\x65\xfc\x86\x9a\x0e\xd7\x8c\xcb\ \xf1\xd2\xfb\xc5\x9e\xe0\xac\x72\xc3\x66\x4f\xea\x5c\xcd\x47\xb1\ \x66\x9a\xf3\x6b\x4d\x71\x70\xa9\x02\xa9\x20\x25\xf7\x17\x09\xba\ \x39\x39\xea\xb1\x61\x75\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x53\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x03\x00\x00\x00\x9d\xb7\x81\xec\ \x00\x00\x02\xeb\x50\x4c\x54\x45\x00\x00\x00\xff\x00\x00\xff\xff\ \xff\xff\xff\xff\xbf\x00\x00\xff\xff\xff\xcc\x00\x00\xff\xff\xff\ \xdf\x00\x00\xe2\x00\x00\xe5\x00\x00\xff\xff\xff\xe7\x00\x00\xff\ \xff\xff\xd4\x00\x00\xff\xff\xff\xd7\x00\x00\xda\x12\x12\xff\xff\ \xff\xdd\x00\x00\xe4\x00\x00\xff\xff\xff\xff\xff\xff\xda\x00\x00\ \xff\xff\xff\xdc\x00\x00\xe2\x00\x00\xff\xff\xff\xda\x00\x00\xff\ \xff\xff\xdb\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xff\xdc\x00\x00\xde\x00\x00\xe4\x47\x47\xff\xff\xff\xff\xff\xff\ \xdc\x00\x00\xdd\x00\x00\xdd\x00\x00\xff\xff\xff\xff\xff\xff\xdd\ \x00\x00\xff\xff\xff\xdf\x00\x00\xff\xff\xff\xdd\x00\x00\xfa\xd5\ \xd5\xff\xff\xff\xff\xff\xff\xe4\x38\x38\xdd\x00\x00\xff\xff\xff\ \xff\xff\xff\xff\xff\xff\xdd\x00\x00\xff\xff\xff\xff\xff\xff\xdf\ \x00\x00\xdd\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdd\x00\ \x00\xde\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xde\x00\x00\xde\x00\x00\xff\xff\xff\xdf\x00\x00\xeb\x70\x70\xdd\ \x00\x00\xe0\x02\x02\xde\x00\x00\xff\xff\xff\xdf\x00\x00\xff\xff\ \xff\xf0\x8c\x8c\xde\x00\x00\xff\xff\xff\xdf\x00\x00\xff\xff\xff\ \xdf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xde\x00\x00\xff\ \xff\xff\xec\x75\x75\xdf\x00\x00\xe8\x51\x51\xde\x00\x00\xf9\xdc\ \xdc\xff\xff\xff\xde\x00\x00\xdf\x00\x00\xff\xff\xff\xde\x00\x00\ \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\xb2\xb2\xff\ \xff\xff\xdf\x00\x00\xff\xff\xff\xdf\x00\x00\xdf\x00\x00\xde\x00\ \x00\xde\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\x71\x71\ \xde\x00\x00\xff\xff\xff\xe3\x27\x27\xde\x00\x00\xde\x00\x00\xfd\ \xf4\xf4\xf0\x87\x87\xff\xff\xff\xff\xff\xff\xe3\x24\x24\xff\xff\ \xff\xe3\x1f\x1f\xff\xff\xff\xfa\xd9\xd9\xff\xff\xff\xe2\x1a\x1a\ \xdf\x00\x00\xde\x00\x00\xde\x00\x00\xff\xff\xff\xff\xff\xff\xdf\ \x00\x00\xde\x00\x00\xea\x5c\x5c\xff\xff\xff\xe2\x1b\x1b\xe0\x0a\ \x0a\xdf\x03\x03\xde\x00\x00\xff\xff\xff\xff\xff\xff\xde\x02\x02\ \xff\xff\xff\xdf\x02\x02\xff\xff\xff\xff\xff\xff\xeb\x63\x63\xdf\ \x00\x00\xdf\x01\x01\xff\xff\xff\xdf\x00\x00\xe0\x08\x08\xde\x00\ \x00\xff\xff\xff\xec\x6d\x6d\xde\x00\x00\xe1\x10\x10\xf4\xae\xae\ \xdf\x00\x00\xdf\x00\x00\xff\xff\xff\xff\xff\xff\xf6\xbd\xbd\xfd\ \xf4\xf4\xdf\x00\x00\xde\x00\x00\xe3\x22\x22\xf6\xc1\xc1\xff\xff\ \xff\xe9\x5a\x5a\xf0\x8b\x8b\xff\xff\xff\xdf\x00\x00\xff\xff\xff\ \xe3\x22\x22\xdf\x01\x01\xe5\x32\x32\xe8\x48\x48\xf6\xb7\xb7\xfc\ \xea\xea\xfd\xf0\xf0\xfd\xf2\xf2\xff\xfe\xfe\xdf\x02\x02\xe9\x4c\ \x4c\xe2\x1a\x1a\xe0\x04\x04\xe4\x26\x26\xe4\x27\x27\xe0\x05\x05\ \xe5\x33\x33\xe6\x35\x35\xe6\x3b\x3b\xe7\x3e\x3e\xe8\x44\x44\xe0\ \x06\x06\xe2\x19\x19\xe9\x4f\x4f\xe9\x52\x52\xea\x57\x57\xea\x58\ \x58\xea\x59\x59\xeb\x61\x61\xeb\x62\x62\xec\x66\x66\xec\x6a\x6a\ \xee\x74\x74\xee\x75\x75\xee\x7b\x7b\xef\x7e\x7e\xef\x81\x81\xf1\ \x8f\x8f\xf3\x9e\x9e\xf3\x9f\x9f\xf3\xa2\xa2\xf4\xaa\xaa\xf4\xab\ \xab\xf5\xb0\xb0\xf5\xb1\xb1\xf6\xb4\xb4\xe0\x09\x09\xf7\xbe\xbe\ \xf8\xc4\xc4\xf9\xd0\xd0\xfa\xd4\xd4\xfa\xd5\xd5\xfa\xdb\xdb\xfb\ \xde\xde\xfb\xe0\xe0\xfc\xe4\xe4\xe0\x0b\x0b\xfd\xec\xec\xe1\x0e\ \x0e\xe2\x15\x15\xfe\xf7\xf7\xfe\xfb\xfb\xff\xfc\xfc\xe2\x16\x16\ \xe2\x17\x17\x66\xee\x72\x60\x00\x00\x00\xb6\x74\x52\x4e\x53\x00\ \x01\x01\x03\x04\x04\x05\x08\x08\x09\x0a\x0a\x0b\x0b\x0c\x0d\x0d\ \x0e\x0f\x0f\x13\x13\x14\x15\x15\x16\x1b\x1b\x1c\x1c\x1d\x1e\x1f\ \x21\x24\x25\x27\x27\x2a\x2b\x2c\x2d\x2e\x2f\x32\x36\x36\x39\x3b\ \x3c\x3d\x40\x41\x44\x45\x48\x4b\x4c\x4d\x4e\x4f\x50\x54\x54\x55\ \x5a\x5c\x5d\x5d\x60\x61\x63\x65\x67\x67\x68\x6b\x6c\x6c\x6d\x70\ \x71\x73\x78\x7c\x7e\x80\x81\x83\x84\x8a\x8b\x8c\x8c\x8d\x91\x93\ \x95\x95\x95\x96\x98\x99\x9c\x9d\x9e\xa4\xa6\xa7\xa7\xa8\xa8\xa9\ \xaa\xac\xad\xad\xb0\xb3\xb3\xb4\xb7\xbb\xbc\xbd\xbd\xc0\xc1\xc4\ \xc6\xca\xcb\xcc\xcd\xcd\xd0\xd2\xd4\xd7\xd8\xd9\xdb\xdc\xdc\xdd\ \xde\xe0\xe1\xe4\xe5\xe6\xe7\xe8\xe9\xe9\xea\xef\xf0\xf0\xf1\xf3\ \xf3\xf5\xf6\xf6\xf7\xf7\xf7\xf8\xfa\xfa\xfb\xfb\xfb\xfb\xfc\xfc\ \xfd\xfd\xfe\xfe\xfe\xa0\xb1\xff\x8a\x00\x00\x02\x61\x49\x44\x41\ \x54\x78\x5e\xdd\xd7\x55\x70\x13\x51\x14\xc7\xe1\xd3\x52\x28\xda\ \x42\xf1\xe2\x5e\xdc\x5b\x28\x10\xdc\xdd\xdd\xdd\x0a\x45\x8a\xb4\ \xb8\x7b\x70\x29\x5e\x24\x50\xa0\xe8\xd9\xa4\x2a\xb8\xbb\xbb\xbb\ \xeb\x23\x93\x3d\x77\xee\xcb\xe6\x66\x98\x93\x17\xa6\xbf\xd7\xff\ \xe6\x9b\x7d\xc8\x9c\x99\x85\x14\x52\xfa\x52\x39\x5d\xfa\xf9\x80\ \x28\xc4\x95\x41\x26\x36\x30\x10\xa9\x19\xd9\x78\x80\xc7\x4e\x14\ \xed\xaa\xca\x02\x72\xa3\xec\x60\x25\x96\xb0\x1e\x65\x1b\x33\x70\ \x80\xfa\x36\x09\xd8\x46\x00\xa7\x5e\x17\xbe\xa0\xe8\x68\x19\x96\ \x50\x7d\xca\xee\x68\x02\xae\xb6\x03\x5e\x9e\x7d\x08\xb0\x8e\x02\ \x66\x45\x09\x38\x61\xe6\x02\x79\x05\x10\xf9\x3f\x03\x6e\x2e\x01\ \x25\x47\x2f\x39\xb0\x2a\x34\x90\x0d\x34\x8f\xa2\x7d\x32\x13\xf0\ \xb3\xa0\x68\x2a\x0f\xe8\x84\x22\xbc\x5c\x97\x05\x8c\x95\x80\x75\ \x3c\x0b\xe8\x2d\x81\x73\x66\x16\x60\x92\xc0\xdd\xe9\x0a\xc0\xd7\ \x29\xe0\x36\x0b\x29\x6b\x7c\x37\x05\x90\x8e\x80\xa4\xfd\x8e\xe7\ \x2c\xcb\x2e\xda\xe7\x2b\x1f\xcd\x3e\xa0\x68\x33\x09\x87\x14\x37\ \xc9\xbb\xdf\xbe\x47\xb1\x9f\xb4\x71\x85\x40\xd5\x42\x02\x62\x5a\ \xa8\xfe\xb1\x39\x2a\x37\x0a\x28\x08\xea\xc2\x50\xb4\xa2\x95\x17\ \x70\xaa\x85\xb2\x6d\xc5\x58\xc2\x3c\x94\xed\xc8\xc7\x01\xca\xa2\ \x2c\xb9\x27\x07\xe8\x81\xb2\x9b\x21\x0c\xc0\x6f\x8f\x04\x6c\xaf\ \x87\x30\x80\x60\x14\xe1\x9f\x27\xc7\xaa\x30\x80\xf9\x04\x1c\xbf\ \xf7\x2e\x71\x5d\x03\x60\xb4\x89\x80\x17\xab\xbb\x96\x70\x07\x46\ \x59\x91\x8a\xab\xe1\xe2\x55\xd6\x72\x39\x9c\xfd\xbb\x88\x9a\x32\ \x8f\x6a\x28\x8a\x26\x34\x63\x01\x5e\x16\xa4\x4e\xfd\x6c\xcc\x02\ \x02\x51\xf4\x74\x51\x6a\x16\xd0\x17\xa9\xe8\xc4\x3a\xc0\x02\x96\ \x22\x15\x3b\xd7\x9d\x05\x14\x41\xea\xbc\x16\x00\x2c\xa0\x35\x52\ \x6f\xa6\x01\x0f\x98\x48\x63\xb2\x56\x81\x07\xa4\xdd\x4e\x17\xfb\ \x6d\x08\xf0\x00\x7f\xda\xae\x1f\x2e\x0d\xea\xca\x13\xf0\x2a\x52\ \x79\x6a\x4e\x7f\x18\x0e\x4e\xea\x40\xc0\xd9\x08\x30\xb6\x40\x9f\ \x6e\xed\x2d\xac\x04\x7c\xeb\x05\x6f\x25\xe0\xf6\x4c\xe3\x9a\x9f\ \xde\xed\xf3\x20\x50\x94\x39\x08\x65\x8f\xfb\x1b\xf7\x26\xfa\x72\ \x27\x22\x8f\x0a\x18\x8c\xb2\xef\x71\x0d\x8d\xfb\x18\xfb\xf2\xed\ \x6b\x77\x50\x94\xc6\x82\xb2\x67\xe1\xc6\x73\xe0\xa1\xdf\xaa\x07\ \x5b\xb2\xff\xc3\xf7\xc2\x35\xad\xb6\x71\xaf\xa8\xbf\x5a\x42\x47\ \x50\xb6\x16\x45\x37\x12\x46\x82\xb1\xb6\xf6\xe9\x61\xb8\xb7\x1a\ \x30\x25\xe9\xc0\xef\xe7\xda\x50\x47\x4f\xb5\x44\xc4\x93\x3f\xda\ \x80\x93\xda\x1f\x39\x13\x73\xff\x65\xfc\x86\x9a\x0e\xd7\x8c\xcb\ \xf1\xd2\xfb\xc5\x9e\xe0\xac\x72\xc3\x66\x4f\xea\x5c\xcd\x47\xb1\ \x66\x9a\xf3\x6b\x4d\x71\x70\xa9\x02\xa9\x20\x25\xf7\x17\x09\xba\ \x39\x39\xea\xb1\x61\x75\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x3a\x40\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\xa8\x00\x00\x01\x77\x08\x03\x00\x00\x00\x06\x8a\xf0\xc8\ \x00\x00\x02\xd9\x50\x4c\x54\x45\xad\xac\xff\xc4\x90\xc4\xe2\x5a\ \x63\xe6\xc1\xd5\xe9\x9c\xa7\xb8\xb6\xfe\xc8\xc6\xfe\xcb\xcb\xfe\ \xbb\xbb\xff\xc0\xbe\xfe\xc3\xc3\xfe\xd2\xd2\xff\xd8\xd7\xff\xdc\ \xdb\xfe\xb3\xb3\xfe\xe2\xe2\xfe\xb0\xae\xfe\xd0\xce\xfe\xeb\xeb\ \xfe\xf3\xf3\xfe\xfc\xfb\xfe\xdd\x06\x08\xda\x22\x2c\xdc\x0d\x12\ \xb7\x8f\xd1\xe0\xde\xfe\xea\x5a\x5a\xdd\x09\x0b\xdd\x19\x1e\xfc\ \xec\xec\xde\x00\x00\xf0\xef\xfd\xe1\x13\x13\xbf\xa1\xde\xbb\xb2\ \xf4\xe3\x23\x23\xe5\x32\x32\xe6\x3a\x3a\xe6\x41\x42\xcc\xc3\xf4\ \xe9\x53\x53\xdc\x14\x1a\xbd\x81\xbb\xec\x6c\x6c\xed\x72\x72\xee\ \x7b\x7b\xf2\x9b\x9b\xf2\xa2\xa2\xd2\x81\xa2\xf4\xac\xac\xf6\xb9\ \xb9\xfa\xdb\xdb\xfa\xf5\xfa\xfb\xe2\xe2\xdd\x10\x15\xbd\xab\xeb\ \xfd\xf2\xf3\xe4\x2c\x2c\xeb\x63\x63\xf0\x8b\x8b\xf5\xcd\xd1\xd6\ \x2b\x3c\xd8\x2d\x3b\xd8\x46\x58\xca\x56\x7b\xd9\x25\x31\xd9\x34\ \x43\xd9\x42\x52\xd9\x6d\x83\xda\x1b\x25\xca\x75\x9e\xda\x31\x3d\ \xda\x52\x64\xdb\x1a\x22\xdb\x85\x9d\xb2\xa9\xf5\xdc\xd3\xf5\xcc\ \x69\x8d\xcc\x84\xad\xcc\x8b\xb4\xbb\xa3\xe3\xcd\x4a\x69\xdd\x50\ \x5e\xb7\xb0\xf7\xdf\x30\x37\xcd\x5a\x7b\xcd\xa1\xcd\xe2\x1a\x1a\ \xce\x71\x94\xce\xc0\xef\xe4\xaa\xbd\xcf\x39\x54\xcf\x40\x5b\xcf\ \xba\xe7\xd0\x5f\x7e\xe8\x45\x45\xe8\x4c\x4c\xd0\xad\xd8\xe9\x6f\ \x74\xbe\x8a\xc3\xd1\x56\x71\xea\xe6\xfb\xd2\x7a\x9a\xc4\xab\xe3\ \xd2\x89\xab\xec\x76\x78\xd2\xcb\xf7\xc5\x83\xb4\xee\x8f\x91\xef\ \x81\x81\xf0\x84\x84\xf8\xcb\xcb\xd3\x44\x5c\xf1\x93\x93\xd3\x53\ \x6d\xd4\x35\x49\xd4\x4b\x62\xd4\x69\x84\xf4\xe2\xe9\xf5\xb3\xb3\ \xe0\x0b\x0b\xd4\xc2\xeb\xf6\xd8\xdc\xf7\xc3\xc3\xd5\x62\x7b\xf9\ \xd4\xd4\xc8\xbd\xf3\xd5\xa5\xc8\xd6\x27\x37\xbe\x9a\xd5\xd7\x49\ \x5d\xd4\x5a\x73\xca\x86\xb2\xcb\x74\x9b\xf8\xc5\xc5\xd6\x39\x4c\ \xce\x80\xa6\xcb\x61\x85\xcd\x9a\xc4\xdf\xa8\xc0\xd3\x9a\xbe\xcb\ \x7a\xa2\xe4\x79\x84\xd4\x4e\x67\xd5\x40\x54\xe6\x73\x7c\xc4\xba\ \xf4\xe6\xc6\xda\xe7\x6a\x70\xe7\xb8\xc9\xc5\x66\x92\xe8\x5e\x60\ \xe8\x84\x8c\xc5\x73\xa1\xcd\x92\xbb\xb6\x9b\xe0\xcd\xb0\xde\xeb\ \xad\xb7\xeb\xe2\xf4\xc5\x8a\xbb\xd7\xb5\xd8\xcd\xac\xda\xc5\xa0\ \xd5\xed\xa3\xaa\xcd\xba\xea\xce\x55\x76\xc6\x5c\x86\xc8\x92\xc1\ \xd9\x59\x6d\xf0\xac\xb1\xc8\xb3\xe8\xd9\x87\xa1\xf1\x9e\xa1\xc0\ \xb6\xf4\xb9\x87\xc6\xf2\xbf\xc5\xda\x29\x35\xc2\x9b\xd3\xca\x5c\ \x81\xf4\xe9\xf1\xd0\x6d\x8d\xdb\x4b\x5a\xd0\xa6\xd0\xca\x64\x8c\ \xdc\x3a\x46\xc2\xa2\xda\xde\x98\xaf\xd1\x8d\xb1\xd1\xc5\xf1\xb9\ \xa6\xe9\xd2\xbb\xe5\xd2\x9d\xc2\xcc\xa5\xd2\xde\xb1\xcc\xd3\x74\ \x92\xe1\x3c\x42\xe3\x48\x4e\xcb\x9d\xcb\xe4\x64\x6d\xe2\x4e\x56\ \xc4\x7b\xac\xcb\xb2\xe2\xd4\x31\x44\xbf\x94\xce\xbc\x9c\xdb\xca\ \xa8\xd8\xd5\x93\xb4\xcd\x45\x63\xc5\x6c\x98\xb9\x8e\xce\xd0\x6f\ \x90\xc4\x7f\xb0\xda\x3d\x4c\xb7\xab\xf2\xda\x73\x89\xf4\xc6\xcb\ \xca\x6c\x93\xd8\x78\x92\xd4\x70\x8d\xc3\xb2\xec\xec\x92\x97\xec\ \xd3\xe3\xf6\xde\xe3\xc5\x88\xba\xd1\x86\xa9\xe1\x82\x92\xf8\xd3\ \xd5\xe1\x9b\xaf\xe1\x9c\xb0\xd3\x2e\x42\xd0\xaa\xd3\xdb\x93\xac\ \xdb\xc7\xe9\xe2\xdb\xf7\xc7\x79\xa7\xdb\x61\x74\xe1\xbd\xd5\xd1\ \x46\x61\xe4\x54\x5a\xc9\x7e\xa9\xd2\x3a\x52\xe8\xcf\xe2\xc2\x95\ \xcc\xbd\x3d\xa6\xd0\x00\x00\x37\x22\x49\x44\x41\x54\x78\x5e\x94\ \x5d\xe3\xa3\x6d\xbb\xae\x5f\x5f\x06\xa7\xb5\x8c\x6d\xdb\x38\xb6\ \x6d\xdb\xb6\x8d\x4b\xdb\xb6\x6d\x1b\xcf\xb6\xed\xf7\x17\xbc\x36\ \x0d\x9a\xb6\xf3\xec\xfb\x32\x30\xc7\x39\x9f\x7e\x3b\x6a\x92\xa6\ \x59\x13\x8d\x46\xb3\x21\xd4\x33\x4f\x51\x98\xc7\x5e\xe6\x06\xc2\ \x9f\x1c\x1e\xf3\xae\xeb\xc2\x5c\xf6\xd7\x7e\xd5\x79\x5e\x0b\x55\ \x95\x79\x95\xf6\x2a\xcd\xaf\xa2\xb6\xbd\xe1\x81\xbb\xdd\xc6\x17\ \xd1\x04\xde\xe6\x32\xb7\x7d\x14\x35\x9a\x4d\x0b\xb5\xc9\x48\x0d\ \x4c\xc1\x09\x1f\x44\xb9\x45\x57\xd4\x16\x2a\x80\x74\x6f\x86\x59\ \xd9\x57\x89\x77\x09\x28\xe1\x3b\xa0\xb6\x80\x84\x87\xde\x02\xb6\ \x6b\x91\x9a\x4b\x93\x05\x69\x51\x36\x89\xa3\x8c\x14\xa0\xf6\x0a\ \x26\x00\x68\x2e\x8b\x37\x37\x2f\xe0\x26\x22\x65\xac\x15\x20\x23\ \xa4\xfc\x12\x94\x02\x55\xa1\x14\xa8\x70\x75\x3d\x84\xd3\xee\x87\ \x50\x32\x4e\x07\xd5\x62\xec\x99\x87\x05\x2f\x84\x38\x9d\x0a\xe4\ \x9a\xa1\x55\x55\x02\x5f\xe1\x42\xcc\x4c\x22\x7a\x7a\x29\x98\x5d\ \x80\x08\xfc\xc4\x6f\xf3\xd5\xf5\x44\x6f\x2f\x0f\x29\x0a\xbc\x41\ \x52\xef\x11\x53\x73\x50\x51\x44\x59\xd7\x80\x95\x18\x5a\xe5\x16\ \x68\xe5\xae\x4a\x31\x34\xa2\x76\x3b\x33\x44\xf2\xcf\x80\xab\x88\ \xb4\x0b\x00\x01\x62\x2c\xfa\xd0\x9a\x0a\x78\x03\x4a\x78\x31\x59\ \x84\xcc\x49\x03\xba\xce\x45\x4b\xf3\xaa\x26\x9c\xc0\x55\xd4\x4e\ \xf3\x25\x5c\xcd\x32\x10\x37\x7c\x65\x1e\x3f\xb3\x0c\x65\x0e\x60\ \x01\x24\x50\x37\x30\x26\x43\xc8\x50\x11\x7e\xd1\x13\xa3\x6f\x30\ \x47\xf9\x05\x1c\x35\x6f\xa0\x9c\xde\x15\xca\xbf\x34\x1c\xa5\x4b\ \x11\x8b\x3d\x03\x8c\x09\x1d\xed\x76\x01\x30\x1a\x13\x21\x26\x1d\ \x4d\xb9\x27\x23\x6f\xf8\x70\xc2\x17\x9e\x8a\x73\xaa\xdd\x6f\x0e\ \x97\x11\x3d\x19\x93\x98\x3d\x72\x52\xc3\xcd\x58\x53\xdb\xb1\x92\ \x12\x47\xe1\x01\x07\xd5\x15\x83\x6a\x92\xe4\x9b\xca\x3d\x59\x96\ \xba\x47\x48\xbc\x28\xfe\xb2\xdc\xf3\xdc\x09\x1d\x59\x4a\x30\xe1\ \xb7\xaa\xc4\x90\x18\xa1\xe1\x2a\x50\x3b\xd3\x48\xbb\xe4\x9d\x62\ \x1d\x05\x27\xca\x68\xc5\xe8\x41\x3f\x01\xab\x46\x8a\x9c\x25\xbe\ \x16\x06\x65\x85\x1c\x05\xfd\xb4\xf0\x1c\xd8\x5a\x98\x29\x18\xf9\ \xdb\x82\x6c\xdb\x9b\xd9\xda\x15\xd3\x07\x90\xf4\x9a\x4e\x19\x53\ \x4f\x7c\xbd\x05\x0b\x62\x17\x1d\x65\x63\xd2\xc2\xd7\xeb\x52\x69\ \x11\x03\x4c\xb8\x2b\x73\x31\x3a\x7e\x80\xa3\x68\xfd\x9a\xa5\xa2\ \x9f\x11\x47\x09\x6a\xec\x49\xc1\x90\x64\x01\x45\xf7\xe4\x50\xb2\ \xe8\x11\x68\x2e\xa2\x07\x69\x03\xcc\x94\x8a\xb2\x5b\x02\x9e\x66\ \x4a\x43\xb5\x2d\x85\x40\xc5\xdd\xdb\x0b\x17\xa4\x1e\x72\xd4\x17\ \x7d\x8d\x70\x59\xec\xc0\x50\x54\xd3\xca\x88\x9f\x78\xa9\x04\xcf\ \xfe\x29\x63\x96\x66\x4c\x6d\x65\xf9\x5d\xb8\x49\x41\xbb\x91\x1f\ \x25\xac\x42\x80\x17\x48\x61\xcd\x79\xbd\x17\x99\xc3\x0f\x9a\x53\ \x55\x3b\xab\x27\xb0\xf0\x1d\x53\x1b\x31\x02\x47\x05\x25\x3a\x7c\ \x44\x1a\xc5\x25\xca\x92\x88\xa1\x12\x96\x68\xca\x91\x9f\xf6\x8d\ \xbe\x34\x17\xc1\xa3\xf4\x79\x0d\x0d\x9c\x13\xf9\xd0\x8c\x89\x25\ \x2f\xb6\x84\x3a\xda\x0e\x84\x3f\x8d\xc6\xa4\xa3\x12\x40\x09\x70\ \xc9\xea\x1b\x8e\x9b\x68\xf4\xa2\xa6\x20\x75\x74\xf6\x39\x30\x14\ \xf8\xa9\x38\xaa\xbc\x53\x66\x6e\x7b\x39\xfd\x7c\xfb\x51\x67\x31\ \x47\xc5\x3d\xbd\x94\x31\x01\x89\x9e\x5a\xa2\x30\x4f\xcc\x3e\x87\ \xa7\x66\xd1\x13\x54\xa2\xca\x3e\x3e\x59\x8c\x62\xf2\x80\x90\x19\ \xba\xe2\x97\x4f\x2f\xff\xbd\xc5\xc5\x1f\x35\x30\xdc\x63\x96\x2a\ \x66\xe2\xcf\x34\xeb\xa8\x8a\x9f\x7a\x40\x18\xe6\x11\x4c\xc4\xea\ \x0b\x1f\x03\x67\x85\x15\x97\x7c\x21\x34\x26\xc2\xea\xd8\x79\xeb\ \x65\x7b\x46\x8b\x8e\x0e\x2b\xfd\x10\x0f\x71\xb2\x23\x8d\xe3\x51\ \xa1\x1e\x42\xb5\x30\x5d\xb4\xe7\xa1\xe4\x98\x94\x3c\xbe\xc0\x44\ \xef\x54\x05\x30\x2b\x01\x59\x66\xee\x3e\x7f\xfd\xa2\xd0\xcd\x4d\ \xe0\xa7\x04\x25\x14\xe2\x27\xdc\x53\xe0\xf2\x99\xa3\x8c\x50\xa0\ \xe2\x2d\x4b\x28\xad\xf6\xc4\x50\x67\xfb\x08\x12\xde\x9a\xb2\x72\ \xf9\x53\x8b\x3e\xad\x19\xa8\xa8\x59\x8c\x3e\x62\x29\x58\x12\x43\ \xed\x21\x4f\x0b\x5c\xf3\x7b\x70\x19\xac\x80\x10\x43\xd1\x42\x2c\ \x49\x67\x23\xd6\x97\x32\x47\x61\x51\x52\x3a\x6a\x9f\xa7\xa7\x14\ \xce\xd1\xfe\x61\x2a\xc2\x4f\xaf\xf5\x9a\xa1\x05\xf2\x14\xf5\x13\ \x6d\x89\x29\x47\x5b\xa2\x74\x84\xd9\x59\x29\xc9\x2b\x8e\x3e\x7d\ \x96\x48\xff\x70\x87\x6f\x76\xcb\x8e\xc3\xb6\x1e\x30\x5f\x57\x19\ \xa0\x19\x61\x9c\x50\x09\x1e\x39\x7c\xb4\xa7\x26\xc5\xf7\x82\x15\ \x90\xe2\x12\x8a\x30\x45\x49\xc5\xe6\x49\xf2\xb5\xc7\x4f\x73\xb9\ \x20\x9f\xc3\xa6\xaa\x7c\xfb\xe2\xe8\x1b\x35\x1a\xfd\xcf\x00\xe6\ \xe6\x85\x41\xab\x32\xea\x7a\xe6\x9a\x4d\xc3\x3e\x02\x25\xb0\x88\ \x36\x4e\xef\xd8\xe6\x65\x0d\x35\x18\x1d\x47\x25\x28\x01\x80\x51\ \xb2\x0c\xaf\x5c\x59\x3d\x46\xf8\x10\x3b\xdf\xf8\xa5\xbb\x3e\x37\ \x35\x7f\xf4\xd4\x68\xb4\xaa\x8f\x2c\x3d\xdf\x02\xdd\x3c\x6c\x64\ \x48\x8d\x06\xc1\x9c\xc0\x47\x74\x34\xe0\xaa\x4b\x96\x15\xd4\x1e\ \x7b\xfc\x84\x31\xb9\x24\xc4\x3c\xe8\x9e\x04\xa5\x76\x4c\xe5\x19\ \x2f\x82\x0b\x72\x7e\xe8\x85\xdc\x39\xa7\x0f\x5b\xa0\xab\xff\xee\ \xd6\xe7\xbf\x7a\xd4\xd9\x97\xbd\x78\xef\xd9\x5f\xfd\x76\xdb\x13\ \xbd\xb9\xd3\xf1\x68\xda\xe1\xcb\x32\x8a\x3c\xed\x31\x37\x73\x90\ \xbc\x35\xaa\x1c\xd7\x26\xed\xa0\x6a\x5a\xa0\xaa\x4f\xbf\xa8\x8c\ \xe6\x8e\x19\xc7\xd1\x3f\x5e\x0c\x68\xee\xb8\x73\x55\x56\xdf\xd6\ \xf1\x68\x9b\x34\x94\x96\xd0\xa6\x06\x0a\x2f\x61\xaa\xcf\x51\x5c\ \xe1\x41\x07\x48\x49\x73\xc9\xec\xd0\x9a\x96\x9f\x0c\x30\x98\xa5\ \x9b\xfa\xce\xea\x57\xec\x09\x91\x8e\x56\xe7\xed\x8c\xc5\xae\x63\ \xbc\x50\x47\xa3\x15\x14\x74\x14\x73\x7a\x6d\x4e\x94\xdb\x81\xc3\ \x87\x5b\x17\x4b\x48\xf8\x47\x3b\x89\xaf\x9c\xdd\xbc\xf9\x2a\xeb\ \xdf\x37\xf6\xd1\xea\x6f\x9d\x5b\x0c\x69\x7b\xed\xfb\xa6\xb1\xf1\ \x28\x46\x24\x02\x14\xdd\x53\xc0\xce\xf7\x3f\x7f\xd7\x15\x3d\xa8\ \x92\x60\x18\x9a\xe7\x90\xd9\x6b\xb9\x13\xce\x8b\x00\xe7\xba\x1d\ \xc3\x7e\xb3\x91\x3f\xbc\x7a\xf1\xaa\x7d\x04\xb4\xbc\xf1\xa4\xfd\ \x96\xc7\x7b\x56\xae\x5a\xb3\x6e\x16\x9c\xea\x85\x7d\x01\xda\x65\ \x55\x65\xd2\x05\x08\xe5\x9b\xd8\xea\x71\x05\x7d\xff\xb6\x23\xd7\ \x1b\x0e\xad\x1a\x48\xa5\x04\x90\xe6\x58\xd5\xb9\xe0\xb9\x8b\x9e\ \xbd\xe8\x97\x4f\x38\x8e\xe6\x16\xed\x89\x16\xc0\xed\xc3\x99\x1c\ \xfc\x53\x79\x4b\xbf\xe3\xd6\x79\x78\x17\xa7\xfd\xcf\x17\x07\xfd\ \x4e\x67\xa6\xd9\x7c\x78\xde\x0a\x7f\x58\x8b\x86\x8a\x82\xb6\xbb\ \xda\xa0\x08\x24\xfe\xaa\x95\x09\x60\x6d\x9b\x74\xba\x34\x9a\x5b\ \x28\x0a\xd4\x50\x20\xe7\x98\x7e\x7c\x0f\xaa\xdd\xdc\x29\xe8\x42\ \x0d\x81\x5b\xdf\xda\x5a\x71\xe3\xe7\x3f\x7a\xeb\x09\xa7\x3f\xff\ \xde\xe5\xfe\xe2\xe4\xd1\xb7\x2d\x4b\x97\x01\x50\xb5\x2c\x49\x68\ \x72\x48\xf7\xc4\x1c\xfd\x26\x29\xfd\x68\xf4\xee\x16\x31\x94\xa8\ \x3e\xc3\x5b\xb9\x47\xb3\x05\x09\xff\x5e\x31\xa3\x91\xfd\x19\x9d\ \x73\x23\x85\x79\x4f\x1f\x7e\xcc\x72\x0a\x9b\xff\xf5\x78\xcb\x82\ \x2b\x87\xa5\x30\x94\x0b\x3a\x49\xd1\x7b\x2e\x1f\x82\x7b\x0a\x4a\ \xec\xf3\xa7\x82\x64\x63\x3f\xcf\x61\xbd\x27\x98\xef\x38\x5a\x9b\ \xc5\x8e\x1c\x79\x7a\x46\x64\x31\x73\xff\x04\x1c\x05\x1e\x5e\x78\ \xca\x59\x59\x76\xee\xaf\x8e\x5a\xef\x24\xb1\x73\xe0\x67\x77\x6c\ \x47\x71\x98\x17\x97\x9e\x70\x09\x05\xac\x17\x5b\x30\x93\x6f\xdd\ \xbf\xe8\x94\x54\x60\xe6\xf5\x0d\x23\xc6\xb1\x6c\x19\x78\xf2\x3e\ \xad\xf6\x27\x46\x48\x2f\x7c\x0f\xf0\x74\xb9\xc3\x3d\x3f\xc5\xce\ \xeb\xe0\xb0\x6a\x67\x5e\x72\xa7\xd7\xcf\xb6\x02\xca\x72\x77\x84\ \x25\x1d\x27\xfc\xde\xe5\x7f\xbf\x63\xf7\xb0\xff\x1a\x0b\x64\xa1\ \x47\x09\x09\xa8\xe8\xe1\x0e\xc2\xfe\x3f\x5f\x18\xf4\xaf\xff\xa9\ \xfd\x7c\x3c\xc7\x20\xbf\x3c\x4e\xfe\x11\x0f\x39\x8f\xb4\xb9\x61\ \x65\xff\x07\x81\x17\x9d\xda\x3e\x6c\x20\x4c\x0e\xf0\x83\xca\xb3\ \x88\x1e\xee\x66\xe0\x49\x29\xb9\xeb\x39\x47\xfa\x0a\x8b\xe3\xc1\ \x16\xc0\x24\xba\xc2\x0a\x6e\xf6\x85\x61\xbf\x61\x60\x7f\xc0\x02\ \xd8\xd2\xaa\x2a\x84\x9a\xbf\xf1\x83\x5b\xb6\xef\xb8\xf3\x91\x07\ \x06\xfd\xf7\xfc\x0d\xb0\x7b\x50\x5a\x3a\x59\xe1\xbc\x6a\xf7\x00\ \xfc\x3d\x33\xb4\x8b\x0b\x52\x4c\x41\xfd\xa1\xa0\xb5\xbe\xd0\x25\ \xb2\xb5\x73\xb0\xbe\x00\x37\xc9\xe6\xeb\xc7\x7e\x7a\x70\x61\xd0\ \xc9\xf3\x1b\xcf\x3c\xfd\xb5\x20\xec\xd9\x7e\x55\x8a\xd7\xaf\xf2\ \xda\x65\x4d\x7b\x17\x21\xa0\x83\xea\xc3\xf9\x02\x73\xf2\xb6\x07\ \x06\xad\xb2\x2d\x40\x4d\x0e\xda\x25\x63\x4a\xc5\xa3\x51\x94\x07\ \x69\x88\xc3\xca\x75\xdc\x63\xac\x90\x07\x06\xa5\x8f\xb5\xd1\x32\ \xcc\x3c\xf3\x17\xcc\xa1\xf9\x21\x55\xa0\xce\x3a\xff\xd5\x1c\x91\ \x7e\x1d\x6c\xee\xc0\x10\xbc\xd3\x59\x7b\x16\xe7\x6f\x3b\xb8\x79\ \xd3\x6d\x3b\x76\xef\xea\x14\x92\x31\x8b\x41\x71\xf0\xf4\x92\x0e\ \xbf\xc0\xb5\x1e\x55\x14\xa2\x67\xb8\xef\xb7\x40\xf6\xf5\x1c\x44\ \x11\xff\x13\x5f\x52\xb2\xdc\x59\xd4\x50\x26\xfb\x80\xf1\xe4\xd7\ \x3c\x01\x01\xe9\xad\xc7\x38\xe3\xde\xdd\xcf\xc0\x91\xee\xbd\x64\ \x61\x00\xf1\x17\x96\x71\xb9\x92\xdb\x05\xd9\x8b\x7e\xa6\x45\xaf\ \xa2\x12\x4c\xeb\x54\x75\xf4\xbb\xa8\xa4\xc0\x4f\x96\xfe\xf7\x0c\ \x20\x9f\xee\x6e\xb9\xfa\xe8\x09\xa0\x81\x27\xde\xf3\xba\xa7\x70\ \x39\x18\xdd\x36\xcc\x33\x8b\x14\x88\xb7\x46\xb2\x92\x2d\x5e\x72\ \x3b\x4a\xee\xe2\x4a\x89\x4e\x46\x5c\x1e\xfa\x9b\xbf\xff\xac\x4e\ \xee\x46\xa4\xa4\x9e\x96\x5e\x30\x85\x99\xcf\xec\xe6\xad\x77\x5e\ \x08\x4a\xea\x2a\x7a\x2f\x63\xe8\x8c\xb3\x99\x61\xed\x81\xb1\x96\ \xc8\x51\x4f\x49\x55\xe0\x6c\x50\x2b\xa0\xd1\x96\xd8\xc5\x4f\x5e\ \xf0\xbe\x8b\x0d\xae\xed\x06\x36\xc2\x64\x25\x05\x98\x44\x6b\x27\ \xc1\xfd\x6c\xde\x3d\xec\xb4\x1a\xc5\x5d\xe6\x7b\xfd\xd0\x19\xd2\ \x72\x8d\x73\xe5\x9d\xc3\x1e\xae\x4c\xee\x41\x69\x03\x5f\xe1\x9b\ \xcd\x9e\xd7\x25\xf3\xf9\x52\x79\xfd\x2d\x9f\x3c\xc6\x09\x0b\x60\ \xf5\x84\xa3\xa0\xa4\xa3\x85\xc2\x07\x7a\xba\x05\xb1\xea\x91\x61\ \xc3\xe6\x4a\x4f\x80\x2e\x1e\x7c\xec\xba\xbd\x46\xf6\xd5\xbc\x44\ \xa3\xa3\x75\x0f\xee\xea\xe7\x94\xdd\x59\xc2\xdd\x06\x45\xac\xa5\ \x13\xe4\x48\x85\xb4\xe8\x9b\x86\x97\x0f\x1f\xb7\x5e\x99\x46\x83\ \xac\x5e\x3c\x29\x21\xad\xcd\x6d\x19\x3a\xbf\x7b\x60\xff\xa3\xfa\ \x8d\x49\xc0\x65\xa3\xac\xd3\x0c\x57\x4f\x37\xe6\x73\xd5\xea\xfd\ \xfb\xd7\xdd\xbc\x75\x61\x57\xab\xa6\xea\x13\x70\x95\x44\x0f\x37\ \x9b\x12\xe0\xa4\x5d\x11\x7a\xd2\x79\x7d\xf3\x55\x41\x54\xbb\x75\ \xc6\x4f\x95\xd1\x93\x8a\x7b\xba\xd1\x65\x6a\x36\x7a\xae\xce\x9c\ \x12\x7d\x7c\xb4\x61\x84\x7f\xc3\xcd\x3b\x87\xcd\x56\xa7\xd3\xea\ \xe5\x54\x25\x13\xc1\x13\x47\xc1\x94\x32\xcd\x52\x85\x34\xad\xa3\ \x88\x53\xe8\xc0\x12\x30\x94\x3d\x29\x2c\xf7\x39\xd3\xbb\x20\x3a\ \xbe\xbe\xce\xdf\x70\x03\xb0\x13\x69\xfd\x42\xcb\xba\xcf\xbc\x97\ \x73\x2d\x4f\x28\xcb\xd8\xf0\x41\x3f\xe1\x42\x94\x8c\xd3\x7c\xcb\ \x5a\x1f\xeb\xe8\x93\x0e\xe7\xfc\xcd\x5b\x1f\x7d\x61\xeb\x95\x50\ \x6f\x19\xfa\x1c\x7d\x0c\x94\xb4\x27\x46\xff\x06\xa7\xc9\x5f\x3b\ \x62\xca\x33\xef\xf5\x9b\x76\x0e\x73\x48\x9b\x21\xab\x57\x48\x7d\ \xbb\xa7\x4d\xc6\x4c\x6b\x28\xd7\x47\xa3\xb5\x9e\xdd\x68\x6f\x19\ \x18\xd0\xd6\xe1\xd2\x4c\xd3\xb8\xa8\x2f\x1b\x54\xab\x86\x45\x41\ \xf5\xdc\x1c\x95\xb4\xe9\xb1\xf4\x3e\x6d\xda\x5b\xd6\xaf\xbb\xfb\ \x71\x93\x7d\xd4\x5c\xc6\xab\xec\x55\x97\x42\x82\x54\xf6\x98\x32\ \x65\x4e\x2c\xfa\x90\x38\x65\xfa\x4d\xf0\x23\x0b\x03\xfb\x5d\x18\ \xa4\xe7\x2d\xee\x79\x74\x48\x69\x93\x5e\xee\x89\x7e\xbe\x07\x02\ \x6a\xc7\xca\x8d\xfb\x96\x8a\x7e\xab\xa8\xad\xcd\xfb\x65\x9d\x40\ \xf2\x58\xc6\xe7\xed\x30\xb5\x19\x2a\xdb\x37\xdd\x08\x28\xc7\xf7\ \x47\x1a\x18\x53\x3b\x87\x16\x26\xac\x4e\xb7\xbc\xef\x81\x5d\xba\ \x82\xef\x94\x34\x5f\xfe\xb2\x67\x26\xe7\x4f\x82\xbd\xd0\x4f\xfc\ \x68\xd1\xe1\x5c\xb6\xf1\xb0\x61\xab\x76\x05\x9d\xaa\x74\xaf\x52\ \xa0\x0a\x33\x19\x26\x60\xa3\x5f\x5e\x95\xba\xe8\xf0\xbb\x00\x18\ \x49\xd7\xf0\xbf\x35\x67\x38\x33\x3b\xb4\x3a\x80\x64\x3f\xd4\xde\ \x32\x28\xe9\xec\xbc\x83\x76\x5b\x03\xd6\xa6\x27\xdf\xb6\x6e\xcd\ \x4f\xae\xf9\xf8\xae\xa5\x26\x55\xca\x4a\xfb\x01\x18\xe9\xf2\x4c\ \x8a\xb7\x41\x4b\xf7\xab\xc5\x2e\x85\xbc\x74\x21\x17\x6e\x58\xcb\ \x77\x0c\xdc\xe6\x32\x52\x61\x6f\x66\xe9\xbb\x9e\x65\x75\x04\x1d\ \x40\x67\x5a\xb4\x3a\xcd\x46\x4f\x2a\x7a\x75\x49\xc2\x47\xb6\x2a\ \x8b\xf7\x77\x42\x33\x78\x48\xee\xba\x09\x42\xa0\xea\x42\x2e\xaa\ \xe8\x9d\x1d\x17\x3f\x29\xa4\x00\xf2\x86\x67\xe6\x75\x66\xb1\xb3\ \x9f\xe3\x6e\x98\x6a\xd6\xb0\x46\x54\x0b\x4a\x8d\xb4\x24\xa0\x60\ \xf3\x8c\x30\xf3\xc2\x51\x00\xa9\xb2\xa6\x30\xc2\x7f\x12\x38\xda\ \x81\x22\x3e\xd1\xe5\x27\x3d\xf6\x70\xcf\xc2\xfc\xda\x48\xa1\x9c\ \x9f\xdd\x3a\xec\xf7\x20\xb1\xcf\x0b\x5d\x23\xb3\xbf\x65\x45\x84\ \x20\x2b\x56\x52\x14\xbd\x28\x40\x68\xf4\xdd\x20\x6b\x12\xa3\xa2\ \xc2\xd3\x77\x60\xa5\xee\xcb\xb6\x48\xaf\xb8\xda\x18\xf5\x89\x1d\ \xe3\xf0\xef\x1b\xc9\xc2\x3d\x3f\xbb\x65\xe7\xb0\x3f\xd3\xe0\x30\ \x9f\x8b\x4f\xf6\x26\xa0\x22\x77\x36\x25\x78\x89\x31\xc1\x0d\xec\ \xf4\x63\x12\xe5\x9d\xda\x69\xf7\x64\x45\xbb\x72\x09\x34\xd4\x81\ \xbd\x7a\xbd\xc5\xb6\xaf\x59\x14\xaf\x23\x79\x9f\x83\x20\x11\x25\ \x3c\xb5\x47\x95\x88\xbe\x64\xb0\x0a\x2a\xb9\x27\xe1\xa8\xc7\x54\ \xde\xb9\x83\x8f\x71\x65\xc7\x3f\x84\x32\x4c\x0b\xf9\x59\x7c\xf7\ \xcb\x73\xb0\x00\x0c\x0d\xd0\xcb\x8d\x7e\x1e\xff\xd6\x2d\x3b\x07\ \x4b\x9d\x06\x78\x51\x42\x4a\xdc\x14\xaa\x70\xd7\x8e\xc0\xaa\x45\ \x94\x8c\x09\xe0\x91\xd5\xc7\x1b\xf6\x91\x86\x4e\x73\x84\x0f\xfe\ \xe9\x21\x28\x5b\x7c\xff\x5b\xbd\xc6\x77\x5e\x75\x1c\x26\x18\x0f\ \xbd\x30\xb4\xe6\xf4\xa1\x37\x9a\x64\xb2\xd3\xc0\xfd\x86\x00\xa9\ \x7b\x4a\x2c\xe7\x61\x77\x0e\xa4\x75\xf0\x28\x0d\x45\x33\x02\xb8\ \x98\x85\xa4\x71\xb6\x13\x56\x8f\x57\xe3\x31\x0a\x2a\x24\x36\x19\ \x6d\x1d\x36\xf5\x5e\x83\x20\x05\x53\x8a\x38\x5a\xd6\xdc\xf8\xc0\ \x18\x2b\x96\x3c\x00\x25\xd9\x3b\x8e\x66\x71\x3c\xaa\xeb\x8e\xba\ \xb1\x00\x5e\xe7\x2c\x06\xb4\xe6\xf1\x61\x8b\x20\x4a\xcd\x59\xb1\ \xd4\xdb\x65\xc2\xce\x07\x44\x0b\x38\xb5\xc3\xa7\x95\x49\xb4\xd3\ \x92\x4a\xeb\x39\xc2\x8f\x3b\x75\xfc\x12\xd9\xc7\x14\xcc\xd5\xdb\ \x4d\x69\x41\x73\x53\x65\x4c\x96\x22\x7e\x52\x37\x51\x4d\x1a\x0a\ \x38\xc5\x96\xd0\xdf\x67\xa2\xa6\xf1\x16\x23\x2f\x4e\xe3\x77\xee\ \x3e\xb9\x9f\x50\xae\x3a\x68\xec\xbb\x09\x05\xbd\x90\xa7\x92\xd7\ \xe3\x25\x30\x81\x2a\xe4\x28\x1b\x53\x15\x59\x53\x96\xd1\x2a\x0f\ \xfc\x65\xd1\x23\xdc\xe4\x6e\x83\xce\x41\x9b\x6f\xbe\x7b\xe3\xc6\ \x4d\x07\x77\x98\x6a\x52\x93\x3a\xca\x98\x04\xa4\x92\xbd\x90\x34\ \xbe\x40\xed\x21\x82\x09\x37\xb0\x51\xae\x52\x5b\x93\x94\x74\x92\ \xc6\xa4\xa8\x35\x33\x03\xc8\x99\x9b\x0d\xda\x68\xd2\xb2\x67\x94\ \x9a\x70\xbb\xbe\x2a\x45\x49\x85\x9f\x2c\x7b\xbd\xcc\x97\x58\x78\ \xf2\x9a\x4a\xe2\x1a\x7e\x5c\x29\x91\xa0\x44\xc2\x3c\xa1\x9a\x2f\ \x59\x3d\x0b\xf6\xf7\x68\x4d\xd2\x9d\x17\xb6\x40\xf0\x4b\xc1\x14\ \xa2\x08\x3f\x1d\x8f\x2a\xac\x02\x53\x6f\x84\xe6\x82\x8f\x36\xeb\ \xe1\xd2\xed\x8e\x28\x7a\xba\x3c\xca\xbc\x9e\xa2\x44\xbf\x23\x32\ \x51\xfd\xb4\x3d\xff\x04\x38\x83\x5d\x50\x07\x53\xda\x47\xf5\x36\ \x38\x35\x42\x8c\x93\x7a\x55\xd9\x07\x41\xd6\x9a\xa1\xa0\xa4\x6d\ \xe6\x68\x92\xc4\x87\xc6\x05\x88\x40\x4b\x7b\x08\xb7\x30\x17\x48\ \x5f\x70\x52\xd7\x28\x77\x96\x08\xe2\xaa\x62\xab\xb7\xdf\x2c\x76\ \xc2\x9c\xb1\x7b\x2a\x69\xed\x04\xbc\x21\x53\xc7\xaf\x4c\x7a\x9f\ \x09\x75\x94\xf7\xc2\x74\x3b\x11\xf4\x8f\x32\x3e\xe5\x9e\x2a\xb8\ \x4a\x04\x6a\x11\xea\x4e\xd7\x36\xbe\xb3\x52\xf0\x65\x8a\x93\xa2\ \xa4\x09\x6a\x46\x9b\xa1\xb2\x7b\x47\x85\x47\xd1\x51\x7b\xe7\xac\ \xa9\x45\x91\x0a\x49\x80\x91\xc0\x61\x0f\x25\x1b\x7b\x09\xcc\xa4\ \x4e\x52\x88\x4c\x05\x2a\x5f\xd1\xe6\xcd\x34\xea\xa8\xaa\x3a\x02\ \x35\x02\x25\xad\xf1\x45\x1c\xe5\x1e\xe7\x42\x47\xf8\xd2\x39\x9c\ \x68\xca\x04\x80\xe0\x4e\xa9\x40\x96\xb0\x79\xb5\x2d\x12\x17\x72\ \xd1\x75\xba\x08\x9f\x37\x1b\xe2\x1e\xe7\x3a\xd6\xce\xdc\x13\x3d\ \xf7\x91\x51\x6c\x02\x97\x47\x80\xd2\x01\x0e\x31\xa2\xf0\x59\x49\ \x35\xe9\x8d\x06\x78\x73\xda\xa4\x76\x6c\x69\x1b\x5c\x50\xc2\x43\ \x70\x75\x76\xc7\x62\xaf\x6b\x95\x2f\x65\x28\xf1\x64\xa3\xeb\x04\ \xde\x02\x52\x73\x54\x59\x53\x51\x30\x4f\x0d\x46\xf3\x08\x4b\x45\ \x51\x2d\x4c\x81\xaa\x71\x02\x36\x88\x4c\x04\x64\x9d\x6a\x77\x2c\ \xd3\x2e\x5f\xdc\x28\xfc\x26\x5a\xde\x84\x40\xea\xc8\x4f\x6c\xd4\ \x02\xdd\x74\x0f\x5e\x8e\xab\xa0\xa3\xd1\xb9\x06\x30\xfd\x9a\x20\ \x46\x59\x28\x94\xc4\xa9\x92\x57\x0a\x3b\x25\x9d\x4f\xd5\x75\x02\ \x5b\xe2\xe6\x51\x92\x7d\x44\x0c\xb2\xce\xfd\x0e\x88\x92\x8c\xc9\ \x57\x51\x78\x2b\xb3\x07\x4b\x02\x37\x1a\xf7\x63\x33\x64\x42\x19\ \xaf\xf5\xc0\x55\x61\xa7\x18\xbc\x94\x1f\x74\xf7\xa0\xbc\x74\x34\ \x4a\x1c\xc5\x64\x04\x81\xc6\x8b\xbd\x4a\xef\xe2\x45\x29\xf6\xa4\ \xa1\xe8\x0b\x7c\xa0\x4e\x86\x15\x7c\xc1\x49\xbf\x04\x98\x48\x15\ \x20\xd8\x39\x55\xe2\xee\x85\x50\x37\xd5\xaa\xc4\xd2\x57\xeb\x53\ \x2a\x5d\x16\x12\x93\x4a\x72\xd4\xf7\xa7\xfc\xa1\xa1\x02\x91\x6e\ \xd6\x31\x4a\xf9\x48\x49\x1d\x10\xa6\x33\x7b\xcc\xed\xd8\xdd\x5b\ \x88\xa8\xa5\x88\x56\x88\xd7\x7a\xf7\x26\xb2\xa0\xd1\xe8\x49\xde\ \x74\x0a\x03\x38\x2b\xe8\x32\x4f\xec\xca\x37\x95\x7e\xd7\x53\x8a\ \xa1\xd3\xe1\x7e\x3d\x8b\x1f\x2e\xe0\xac\x8e\x45\xc1\x99\xe2\x8a\ \x24\xf6\xa4\xe2\x12\xdf\x8c\xea\xb4\xe0\xe1\x8a\xce\x08\x09\x50\ \xe4\x67\xc8\x51\x45\xc4\x50\xca\x97\x84\x72\x56\x50\x8a\xf3\xc2\ \xe4\x8e\xac\x5e\xae\x04\x58\xc1\xe9\x70\xeb\xc5\x9e\x1d\xe9\xa1\ \xdb\xdb\x85\x9f\xda\x96\x30\x22\x09\xda\xdb\x45\x07\x38\xb8\xa7\ \x57\x2a\xc2\xcf\xda\x5e\xe8\x9c\x0e\x45\xe9\x15\x10\xad\xf4\x68\ \xea\xa8\x9e\x80\x13\xff\x87\xa1\x86\x1f\x8f\xb2\x97\xd2\xba\x5a\ \xe2\x8b\x78\x89\x77\x50\x1a\x0f\xdc\x53\x49\x76\x1f\x83\x8d\x9a\ \xb1\x05\xa7\xb8\x27\x87\x91\x20\x36\x24\x70\x16\xa4\xc2\xd2\x42\ \xbb\x52\x11\x3d\xac\x4e\xc2\x4c\xbd\x84\xea\xf5\x53\x3c\x7d\xd2\ \x95\x4e\x8b\xe8\x63\x3d\xa5\x48\x4f\xf5\x8e\x4a\x2c\x2a\x50\x35\ \x4e\x0f\x69\x85\xa2\xaf\xb5\x72\xf2\xaf\xc2\x7b\xc8\x46\x9d\xc8\ \x94\x50\xd6\xcc\x51\x9f\x1c\x52\x12\x7b\x1a\x66\x70\x48\xa8\x4a\ \xe4\xa0\x9e\xe0\x43\xb9\x13\x4f\x63\xa8\x0d\xed\x48\x7b\x08\x17\ \xfd\xa8\x40\xad\xa3\x65\x94\x6f\x8d\x95\x71\x92\x13\xad\x62\xaf\ \x9f\x54\x4e\xd5\x8e\x1b\x53\xea\xf8\x45\x41\xbe\x54\x13\xb5\x65\ \x32\x52\xfa\x12\x9c\x64\x4d\x5e\x72\x57\x7b\x6b\x91\x58\x13\xfb\ \xfc\x90\xa5\x11\xa5\x39\xea\x4c\x5e\x4e\x0b\xe1\xe5\x91\xc4\xa3\ \x31\x2f\x45\xf4\x08\x14\x9e\xf8\x80\x98\x68\x67\xe2\x00\xeb\x38\ \x0a\x63\x51\xdf\xe3\x17\x72\xde\x92\x97\x4e\xfc\xc0\x28\x2f\xc2\ \x2b\xa2\x27\xf1\x87\x82\x47\x2f\x9a\xce\xed\xd3\x52\x9f\xe6\x54\ \x44\xa3\x05\x98\x12\x98\x68\xaa\x95\xf0\xe3\x45\x49\x5e\x88\xb6\ \xf2\xc5\xdf\x26\xac\xc4\x4e\x7e\x4f\xa4\x81\x8e\x5f\x99\xe4\xec\ \x4d\x4f\x67\xf5\x12\x34\x49\x5e\x2f\x4b\x68\xec\x45\xeb\x14\x4b\ \xdb\x1c\xe5\x27\xad\xe9\x10\x1c\x85\x5b\x05\x25\xe8\x9f\xe0\x1d\ \x87\xa3\x79\x8d\xa0\x31\x38\xd1\x3a\xca\x58\x2b\x78\x02\x94\x0e\ \x9f\xb2\x7d\x71\xf8\x87\xe4\x68\x4c\x64\x4c\x31\x47\xc9\x90\x88\ \xa7\xf0\x0e\xd9\x2a\xc2\xaf\xf4\x5a\x2f\x2a\x10\x1b\x53\xda\xec\ \xd3\x6b\x3d\xf3\x13\xcc\x1e\xef\x98\x28\xa9\x8b\x32\xd1\xb2\x14\ \xa6\xf2\x86\x7d\x1c\xe6\x89\xe0\x15\xcc\xd8\xe8\xd3\x7e\x54\x83\ \x25\xa4\xee\x75\x8b\x57\xcc\x8b\x30\xea\x42\x49\x29\x77\x2a\x1a\ \x95\xf3\xf5\x78\x4b\xdc\xcc\xfe\x3e\xbd\x17\x1a\x55\x72\xf5\x15\ \x14\xc6\x59\x3f\x51\x0d\x04\xaf\x6c\x83\xfb\x71\x53\x25\x58\x35\ \x57\x05\xa6\x66\xea\xf8\xf3\x4c\xc2\x4e\xc1\x2a\x20\x75\xc6\x9c\ \xf3\x52\x9f\x0a\x4a\x2a\x08\x98\x08\x27\x20\x56\x06\xc5\x62\xd7\ \x09\x09\x92\x62\x29\xfc\x26\x0f\xb5\x08\x44\x85\x14\x50\x22\xd4\ \x5c\x4a\x7a\x3e\xcc\x20\xbb\x2b\xc9\xa2\x38\xb9\xab\x12\xf1\xbd\ \xc0\xa4\x97\xf2\xa5\x63\x8b\x64\x4c\x92\x2b\x93\xcb\x27\xe1\xcb\ \x81\x2b\xf0\x50\xb9\x64\xf6\x01\xd1\x22\x4f\x1f\x1a\x24\x3f\x2a\ \x74\x8e\x65\x1f\xbb\x54\xda\xb8\xd3\x3a\xca\x87\x03\xd1\x90\x98\ \x10\x1f\x97\x1e\x85\xa7\x60\x48\xc2\xd1\x32\x26\x02\xa8\xa3\x91\ \x38\x6a\x86\x57\xca\xea\x79\x09\x2d\x84\xab\x3d\x8c\x48\xb4\x31\ \x49\x2e\x4f\xfe\x29\xd4\x51\x0c\x9f\x88\xa7\xc2\xe0\x76\x60\x4c\ \xa1\x6f\x4a\x6f\x8a\xa4\x83\x12\x01\x8b\x28\x1d\x43\xb7\xcd\x9f\ \x7c\x52\xa3\xc8\xd5\x09\x31\x92\x3a\x7c\x85\x35\xe7\xf4\x29\x5b\ \x11\x39\x6b\xa8\xe4\xcc\x41\x40\x0a\x37\xe7\x23\xd3\x52\x1f\x4d\ \xa4\xcb\x54\x24\x5b\xfb\x39\xbb\xcb\xfc\xc1\x46\x78\xda\xb2\xe0\ \x1d\xf0\x42\x2f\xa1\xbc\xc5\xcc\xbb\xa0\x55\x00\x58\x6c\x3e\xb4\ \x7a\x25\xf9\x76\xcc\xd1\xc8\x9c\x0a\x00\x0a\xce\xe9\x58\xb7\x1d\ \xde\xc7\x42\x2e\x9f\xb9\x23\xb4\xbe\x1b\x2d\xf9\x06\xab\xc7\xae\ \x0d\x0f\x29\xaf\xf3\x82\x36\xb2\xfa\x34\xce\x69\x0e\x4a\x84\x7a\ \x00\x16\x39\xfa\x8f\x8b\x96\xce\xdb\xdd\xc7\x14\x14\x80\xfa\xbb\ \x22\x4c\xc2\x4e\xb1\xf6\x38\x28\x01\xa0\x5e\x8c\x1f\xc5\x79\x41\ \xcf\x78\x3b\x88\xf0\xe3\x68\x14\x9b\x89\xfe\xcd\xf2\x73\xd3\xbe\ \xa5\x1e\xc0\x44\xd1\x73\x6a\x1f\xc3\xac\x18\x2c\xbc\x75\x3b\x11\ \x82\x44\x94\xfc\xa1\x84\x3f\xd6\x3f\x05\x82\xc7\x62\x0e\x6f\x86\ \x9d\x64\xb7\xc4\x77\x75\xa4\x88\x5f\xa3\x49\xd5\x29\x37\x2a\xce\ \x5e\xf8\x2a\x6c\x55\xc6\xa4\xf3\xfa\xd8\x96\x22\x8e\xb6\x7c\x96\ \x16\x08\x56\x36\x6d\x6d\xaf\xc1\xca\x81\x3e\xba\x0c\x9a\x29\x0b\ \x53\xa1\x22\x7c\x78\xe8\x5b\x3a\xf3\x62\xeb\x97\xd0\x24\x61\x4e\ \xf0\x95\xce\xeb\xb5\xe8\x01\x64\xcf\xfa\x26\xab\xa2\xbb\x1b\xfe\ \x12\xea\xa5\x4d\xc0\xda\x20\x17\xf1\xfd\x3d\x4a\x1f\x49\xe2\xa6\ \xf1\x79\x3d\x8b\x5f\x9d\x0c\xe4\x63\x42\x1a\x26\x00\xc5\x54\xe4\ \x6a\x77\x84\x4a\xf6\xeb\x83\xe8\x9e\xa9\x0c\xda\x89\xf0\x57\x82\ \x12\xc1\xaa\x33\x91\xb4\x86\x26\x2a\xce\xad\x56\xe0\x9e\xf4\x78\ \xa2\x29\xdb\x42\xdc\x47\x98\xf0\xca\xe1\x85\x2a\x9a\xee\x29\xa0\ \x10\x5f\x93\xb6\x79\xb8\xd3\x05\x9d\xf4\xbc\xa7\x98\xa4\x36\xda\ \x70\x5d\x64\x2b\x87\x80\x53\xf5\xe8\x58\xae\x26\x49\x71\xb3\x4e\ \x54\xc5\x03\x96\x96\x41\x22\xe2\x7e\xc2\x28\x8f\x3a\x20\xe2\x7c\ \x99\xe0\xfe\x40\x94\x14\x91\x3a\x2a\x38\xcd\x47\xc8\xa5\x2e\x92\ \x0a\x51\x41\x5f\x62\x92\x30\x38\x89\x1d\xbe\x72\xa3\xe9\x02\x44\ \x11\x8c\xd0\x02\x8f\xbf\xb5\xa3\xfa\x9e\xdc\xb9\xab\x74\xe5\x01\ \xb0\x62\x47\xd9\xd8\x15\x1f\x39\xaa\x1c\x14\xd9\x3c\xde\xb1\x1f\ \xb5\x2a\x1a\xa4\x4b\xea\x94\xed\x1e\xe8\x6a\x2d\x42\x96\xd2\x18\ \x00\x41\x5b\xaa\x28\x9f\xca\x0f\xda\x94\x10\xa0\xd8\x51\xa9\x94\ \x54\xb0\xb6\x63\x8e\x2a\xa3\xd7\x11\x3e\x7c\xd8\xa0\x64\xdd\x40\ \xb8\x89\x48\xbd\xa9\x54\x85\x40\xad\xb0\x43\x4b\xf2\x26\x79\xda\ \x71\x8c\x5f\xa6\xa3\x3c\x0d\x76\x5a\x38\x9a\x36\x26\xc7\xd0\x27\ \xad\xd9\xcf\x0e\x91\x9f\x62\x4e\x32\xb5\x40\x2f\xa1\x25\x3c\x20\ \x74\x6e\x70\x1f\x9f\x30\x87\x86\xaf\x58\x1a\x59\x7d\x0b\x1f\x01\ \x2a\x11\xa9\xeb\x2c\xdc\x3e\x28\xc4\x37\x01\xa1\x8e\x86\x8a\x5a\ \x09\x44\x29\x3a\x56\xc9\x6c\xb9\x8c\x4d\x49\xe7\xa1\x01\xd6\xd4\ \xd6\xb2\xa8\xe8\xd3\x23\x00\x3a\x7b\x3d\x00\x65\x6e\xe2\x71\x60\ \xf2\xfa\x9a\xd2\x85\x27\x5f\xee\x29\x98\xb2\xce\x27\x19\x3a\x0d\ \x79\x7d\x94\x87\x16\x04\xf7\x95\x73\x38\xa5\xc3\xf3\x4f\xcc\xd4\ \x90\x9d\x62\xe8\xfc\x23\xad\x3a\xa4\x9b\x48\x64\x46\xd1\x72\xcf\ \x2c\x8d\x37\xc4\x62\x12\xb0\xc5\x7f\x3b\xa0\x53\xfb\xd8\x94\x04\ \x64\x2e\xf3\xd3\xf4\xa6\xad\x18\x7b\xcc\xd4\xb6\x96\x7c\x7a\x70\ \x5e\xbc\x86\x2a\x87\xdf\x2c\x18\xa2\x38\xd2\xf7\x7d\xfc\x00\x9e\ \x11\x21\x6b\x42\xf1\x53\xef\xa8\x22\xe9\xc3\xaf\xb5\x0f\xad\x54\ \xaa\x9c\x2c\x3e\x01\x32\x42\xaa\xc5\xae\xf3\x7a\xfe\x2d\xd4\x5e\ \x68\xef\x5b\x6e\xb9\xa7\x45\x94\xdc\x13\x3c\x2a\x19\xad\xd0\x9a\ \x58\xe2\x22\xf6\xa4\x67\x2a\x23\x77\x8f\x97\xc3\x9b\x6e\x7e\x11\ \x90\x8c\x92\xfb\x74\x8e\xc5\xe5\x3e\xea\x75\x35\x97\xe6\x25\xde\ \xe2\xf1\xe3\x3a\x2e\x82\x64\xc4\x21\xe9\x13\x18\xf1\xf8\x8f\x74\ \x79\xd4\x71\x15\x97\x7b\x03\x30\x6e\xc5\xd6\x06\x25\x39\x88\x54\ \x20\xd3\x2e\x54\xf3\x53\x48\x2d\x4a\x11\x47\x23\x88\x64\x4c\xae\ \xf2\xf4\x15\x77\xac\x8d\x26\xaa\x68\xac\x51\x44\xaa\xf6\xc3\xd2\ \x2d\x5a\x0a\xb3\x80\x65\xa1\x27\x9a\x72\xa7\x13\x7e\xb4\x47\x65\ \x1d\xae\x8f\xed\x41\x25\x05\xe2\x11\x10\x45\xbc\x11\x5e\x55\x15\ \x3e\xd8\x5f\x10\x28\x28\x1f\x18\x80\x83\x57\xf8\x28\x76\xa6\xe3\ \x51\x89\xf0\x9b\xd2\x98\xc9\xfb\x4c\xe6\x17\x93\x51\x50\xd2\x5d\ \x34\x77\xd4\xfe\x00\xce\x31\xed\xed\x95\x01\x08\x0f\xad\xf5\x95\ \x9a\xa0\x25\x7e\x89\xe6\xe6\x69\x76\x2a\x3d\x55\xee\x89\x2d\xde\ \x81\xf4\x5a\x35\x80\x50\x49\x47\x3b\x1b\x7e\x83\x1e\x1b\x3b\x43\ \x2d\xcb\xa8\x15\x1f\xde\x75\xb8\x0f\xae\x7c\x69\x16\x6a\x28\xbd\ \xe2\xf9\xa3\xa1\x31\xe9\xe0\x09\xa4\xff\x3d\x38\xae\xf8\xca\xf7\ \x17\x82\x93\x43\x66\x04\x5b\xe9\x6c\x44\x69\xa9\x6a\x2a\xd1\x79\ \x53\x74\x8e\x55\xc7\xa3\x71\xff\x68\x6a\x9f\xc9\xde\x68\x4e\x38\ \xeb\x61\xcf\x77\x84\x9d\xbc\xd5\x14\xee\x34\x45\xbb\x4c\x71\xda\ \x34\x2e\xca\x53\x21\x1e\x7e\xa4\xfd\x68\x41\x0c\x15\xb8\x60\x4f\ \x37\x2d\xe2\x01\xc0\x0e\x67\x20\xb2\xdb\x90\x27\x12\xbc\xd8\x8f\ \xb2\xa5\x8b\x92\x86\x6b\xfd\x84\x02\x2b\xa4\x37\x1b\xd2\xdb\xf6\ \x54\x1a\x7f\xcc\x01\xbd\x79\x00\xc2\x0f\xba\xf3\x94\x6e\x0a\x5b\ \x4b\xd2\xd4\x80\xb0\x37\x8f\x8e\xb3\xfd\xba\xf1\x68\x33\xa1\xa0\ \xe2\xa2\x78\x36\x11\x9c\x79\x58\xbd\xbb\x0f\x56\x0f\x28\x99\x99\ \x9a\xa5\xf1\x26\xa3\x40\x95\xea\x43\x86\xef\x2c\x53\xec\x1c\x1b\ \x8f\x4e\xf3\x86\x98\xc0\x0c\x92\x3b\x6e\x7b\xfb\xe7\x3f\x3a\x6c\ \xd0\x07\x86\xb2\xf8\x35\x4c\x01\x18\xe6\xca\x71\xa9\x24\xcd\x50\ \xd9\x0f\x39\xd4\x74\x22\x81\x9b\xde\x66\xa2\xf2\x78\x54\x23\x8b\ \xcd\x69\xfc\x1c\x67\xf7\xc2\xf3\xcb\x31\x8d\x8f\x47\xd5\x06\x0e\ \x71\xd2\x37\xfc\x9e\x6e\x7b\xd2\x00\x8b\x78\xdb\x96\x64\xae\x0d\ \x4a\x62\x66\x39\xff\x1f\x99\xbd\xea\x78\x8c\xfb\x47\x63\xe2\x31\ \x4a\x8a\xa7\xb2\x73\x27\x3b\x63\x22\x7e\x4e\xe5\x25\x8e\x4a\xda\ \xbd\x70\x54\x77\x3b\xea\xca\x78\xba\x2d\x53\x8f\x4c\xf4\xb6\x6b\ \xb1\x7d\x98\xa8\x06\x7c\xaa\x0f\x1f\x5f\x7a\xe8\x34\xa2\xc4\x77\ \xe5\xc5\xf6\x19\x3c\x08\x94\x6d\x49\x80\x8e\x8f\x47\xc3\xce\xe1\ \x82\x9b\x72\xa9\x4b\x4b\xb1\x35\x57\xeb\x52\x11\x04\x25\x78\xe4\ \x8a\xa2\xbd\xa8\x40\x8a\x53\x20\xc0\x41\x65\xee\x56\x91\xf3\xf8\ \x99\xe8\x41\xed\xa9\x90\x5e\x22\xb7\xd5\xe4\x71\xb4\x96\xd8\xa9\ \x66\x73\xf2\x4f\x32\x96\x12\x92\xaa\xc1\xe8\x55\x32\x0b\x35\x10\ \x11\xa7\x0f\xd5\x73\x4b\xc4\xd3\xe9\x74\x3c\x5a\xa8\xa1\x3f\x21\ \xd5\x61\x54\x02\x4f\x72\x7a\x7b\xca\x43\xb5\xd9\xe4\x65\xaa\xeb\ \x98\xcc\x3e\xb5\x0d\x8e\x97\x82\x2a\x91\xb3\x3e\xc9\x86\x56\x2f\ \x77\x6a\xf9\x14\xb4\x31\xb5\x79\xe6\x30\xcd\xf2\x55\xe7\xd6\xbb\ \x80\xb2\x0b\x34\xbe\xe5\x2d\x91\xdb\xab\x09\xa4\xb9\xbf\x73\x07\ \x4f\xc8\xd4\x60\x82\xb3\x70\x36\x6c\xd2\xe2\x59\xbe\xf6\x46\x94\ \x48\x30\xa1\xc4\xe0\x0c\xe3\xbc\xa6\xee\xd2\x61\xff\xc9\x20\x1b\ \x7a\x84\x37\x0a\x9f\x26\x64\x27\x59\xea\xa0\x92\x8e\x2a\xc1\x67\ \x3c\x55\x03\x60\x66\xda\x41\x75\xbd\xb1\x2f\xe9\x95\xa9\x99\x5e\ \x9b\x74\x57\x01\x59\xbd\x3f\x70\x5a\x3c\x54\xdc\x49\x88\x20\xa3\ \x71\x15\xe9\x69\xbe\xfe\x18\xe7\xe9\xb7\x5c\x1a\xe5\x23\xa0\x9e\ \xda\xe8\x0b\xde\xaf\x8f\x67\x63\x87\x4b\x68\x28\x77\x40\xc9\x9e\ \xb4\xc6\x4b\x9d\xad\x4f\xe3\xec\x32\xd2\x53\x2f\x9d\x32\x15\xaf\ \xcf\xd6\xe9\x31\x4a\xf1\xca\x14\x2e\x4a\x78\xfb\xfb\xf5\x48\x85\ \x7f\x5e\xa0\x44\x9f\x1f\x13\xc3\x25\x8c\xf0\xf6\x8d\x09\x8f\x04\ \x9f\x3c\x32\x40\xef\x68\x06\x76\x9f\xd8\xb7\xf3\xc7\x7a\x2a\xe1\ \x13\x52\x9c\x91\x8b\xac\x8d\xd2\x7a\xf9\xd2\x31\x09\x8f\xc5\x2e\ \x15\x47\x23\xe1\xff\x16\x9c\xf6\xee\x27\xe2\xd1\x68\xb3\x01\xd7\ \x7a\x8a\x48\x7b\x08\x53\x82\x27\xae\xe4\x45\x2e\x2a\xda\xaf\xaf\ \x3d\x98\x99\xaf\xa5\x6d\xb8\x4a\xb1\x24\x1a\xf9\xb2\xc1\xc6\xe8\ \xe7\x0d\xdb\xc9\x41\x00\x7a\x9c\x2f\x13\x32\x94\x81\xaa\x6d\xf0\ \x9c\x57\x50\xbd\x15\x26\x47\x82\x6b\x3e\x65\xcd\xc1\x93\xa7\x9f\ \x40\xb2\x2e\xd1\x14\xef\xee\x3b\x8f\xde\xb8\x7d\x61\xd0\x31\x9f\ \xf1\x68\x05\x0d\x93\x36\x6d\x81\x95\x7a\x40\x32\x2f\x4c\xbc\x82\ \x0a\x54\x9d\x92\x00\xbe\xb0\x40\xc6\x0e\x0a\xe8\xd4\x6b\x8f\xba\ \x36\x8c\xf2\x00\x6b\x33\xcf\x92\x87\xac\x35\x52\x2a\x3c\xf4\x0a\ \x16\xbb\x6e\x27\x92\x43\x18\xda\x37\x55\x5e\xfe\x41\x0e\x2a\xdc\ \x0c\x65\xa0\xe7\x6e\x38\xff\x1f\x4c\x95\xf8\x27\x33\x08\x52\xd6\ \xa6\x36\x7b\x7b\x5d\x71\xd6\xee\x9e\x66\x3b\xf2\xf4\x0f\xe5\xee\ \xd1\x96\x08\xac\xee\x22\xd3\xbd\x1a\x08\x52\x9f\xbc\x62\xfd\xdc\ \x70\xef\x68\x84\xc3\xaf\x3c\xab\x77\x77\xd7\xca\x7c\xc3\x17\x0e\ \x3f\xbb\x54\xa2\x6f\x69\x63\x2a\x88\xa1\x05\x5e\xc2\xd2\x9c\xa7\ \xf9\xca\x39\x31\x40\x1c\x9e\x67\x2a\x69\xe6\x4f\x5c\x25\x41\xa8\ \xbf\x2d\x33\x11\x16\xca\x8c\x5b\x20\x1c\x37\x4f\xdd\x70\xd4\xe1\ \x23\xa8\x74\x0a\x43\xdf\xc9\x8d\x05\xe1\xf0\x34\x22\x6d\x4a\x20\ \x79\x75\x78\x59\x53\x45\x27\x42\x69\x8a\x7b\x5c\xcb\x03\xab\xbf\ \x6b\x91\xe9\xc1\x86\x96\x7d\xf7\x0b\x3c\xc4\xeb\x2f\xcb\xb8\x23\ \x57\x5b\x93\x93\xbc\xb0\x15\x89\x4c\x09\xde\x14\x94\x84\x58\x01\ \xe8\xb8\x92\x0e\x99\xfd\x5f\xb9\xe9\xb8\x73\xe6\xbd\xb1\xe3\xa3\ \xec\x76\x7f\xe6\x0d\xf0\xea\x75\xe3\xf1\xc8\x2a\x6e\x26\x05\x05\ \xa4\xb1\xe8\x45\xe6\x45\x98\x89\x94\xfa\xc8\x00\x2c\xa5\x02\x52\ \xbc\xe8\xad\xaf\xb9\x7d\xc7\xbe\xc1\xb1\xa0\xa4\x8a\xa3\x13\xa2\ \x15\x8b\x07\x3a\x8c\x72\x7c\x0d\x3f\x15\x96\x00\x50\xbc\xf3\xc4\ \xe1\x30\xe9\x7b\xc3\x29\x25\xf0\x1b\x85\x24\xf0\x54\x45\x9e\x65\ \x5f\x85\x11\x9c\xda\x9a\x4e\xb5\x03\x18\x57\x6f\x5e\x6d\xde\x93\ \xa2\xa4\xf1\x78\xe4\xa2\x60\xa4\x78\x2b\xd1\x4b\x75\xbc\x8e\x04\ \x0f\xf8\xc0\xa2\x90\xca\x4f\x6f\xd8\x80\x7d\x3a\x82\xd3\xde\x14\ \xe6\xfd\x0e\x28\x69\xcf\x83\xd9\x35\x48\x2f\x38\xec\x8b\x4b\xad\ \x8b\xac\x6e\xec\xce\x14\x47\xd3\xe5\xfb\x18\x66\xa1\x36\x9a\xd8\ \x9e\x94\x83\x2a\x2b\xda\xbc\xa9\x36\x5c\x61\x6c\x17\x66\x77\x57\ \x3a\xb5\x93\xa5\xfe\x5c\x54\xd2\x4c\x8d\xff\x98\xb0\xdf\xd3\xa0\ \xa4\x85\xe2\xa8\x30\x34\x4c\x47\x10\x2a\xa3\xcd\x55\x63\x41\x2e\ \x1c\xd5\x33\x92\x2d\x3d\x7d\xb4\x9d\x01\x36\x1a\xed\xab\x83\x61\ \x15\x7e\x40\x92\xdd\x0b\x33\xb9\xa2\xf1\x69\x5d\x43\x53\xa1\x92\ \x6a\x8c\x85\xdc\x32\x85\xb2\xe7\xf3\x53\x80\x06\xc9\x32\x1f\x60\ \x05\xa4\x97\xd1\xd8\xdc\x86\x8f\x13\x63\x27\x46\xfa\x72\xa7\xa4\ \x99\x72\xf8\xf0\x74\x2f\x85\x3e\x26\xd5\x01\x91\x4c\x46\xa8\xee\ \xa8\x55\x14\x58\x2a\x3a\x0a\x48\x99\x9b\x70\x13\x47\xef\xc3\xa9\ \xc3\xaf\xef\x28\x97\x1f\xcc\x47\xbe\x16\xb6\xae\xc9\x93\xca\xe4\ \x17\x03\xf4\x2d\xb0\x67\x94\x29\x8e\xa6\xcb\x64\xc4\x50\xae\x3c\ \x22\x52\xad\xa3\xb9\xea\xc4\x16\x43\x5a\x31\xb9\x38\x37\x85\x03\ \x67\x2b\x07\x72\xc5\x0a\x67\x4c\xa8\xa4\x10\x37\x5b\x25\xbd\x66\ \x46\x80\xf2\x90\x37\x51\x52\xed\xf0\x95\x6a\x8a\xd5\xa7\xdc\x13\ \xf0\x94\x74\x14\xb5\x34\x97\xe3\x96\x78\x55\x2b\x4e\x5b\x7a\x3d\ \xcc\x8b\xca\x0d\xc8\xff\xfd\x8f\xc9\xf5\x46\x63\x8f\x3d\x61\x45\ \x99\x50\xd2\x25\xc8\x44\xbb\x5d\x1e\x50\x04\x61\x49\xa8\xa4\x02\ \x53\x6b\x6a\xaa\x46\xa6\x9a\x1f\x64\x6b\xb9\xd0\xe7\xd6\x79\x44\ \xee\x7b\x47\x4e\x49\xff\x6b\x52\x26\x10\xff\x89\x75\xfd\x02\xf5\ \xe5\x6e\xb9\x67\x86\xe2\x3d\x61\x80\x1a\x25\x1d\x4d\x0e\x26\x3e\ \xf3\x91\x7b\xa7\xe6\x8e\x59\x11\x0e\x4a\x05\x78\x52\x7b\x12\xc1\ \x4b\x4f\x09\x22\xd5\x7d\x3a\xc2\x51\x91\x7e\xbd\x02\x66\xab\x76\ \x2c\x18\xa1\xd7\x03\x50\x42\x7a\xed\xc8\x2a\x69\x4f\x1b\x93\xd1\ \x53\x52\xd2\x2b\xb1\x5f\x60\x73\x09\x1c\xc5\x08\x8a\x48\x4a\x0f\ \x52\xc5\x07\x62\xb8\x1c\x3c\xeb\xe2\x78\xc5\xa3\x3f\x2a\x1e\x39\ \xbe\xfa\x4d\xc1\x6c\xd7\x73\x6a\x51\x51\xe7\x49\x37\x75\xb4\xcb\ \x87\x22\xc9\x67\x20\x73\x92\xa1\xdc\x13\x89\xde\x51\xd6\x51\xc5\ \x52\xd5\x54\x02\x6e\x1e\xf5\x54\xac\x1e\xed\x9e\x07\x7d\xc9\x28\ \xe4\xb9\x75\x77\x6c\xd9\x7a\x60\x19\xb8\x82\x4f\xe5\xa5\xa4\x76\ \xbf\x90\xe5\xbe\x4b\x50\x27\xa6\x3f\x62\x62\x6a\x9f\x56\x3e\x72\ \xbd\xf3\xa3\x71\x43\x11\x7c\x44\x89\x08\x4d\x2a\x81\x07\xf3\x10\ \x86\xfa\x06\x74\xf8\x7b\x9f\xbb\xee\x3a\x54\x52\xc2\x69\x86\xd3\ \xb6\x8a\xba\x5c\x7b\x0e\xc4\xca\x7d\x96\xbc\x53\x52\x59\xee\x41\ \x41\x7f\xf5\x94\x96\xc1\xaa\x8d\x97\x2c\xb5\xda\x10\x38\xc7\x5d\ \x84\xe1\xc0\x69\xed\x9f\xc0\xd7\x03\xd2\xa8\x55\x63\xc3\x87\x8f\ \x36\x4c\x9b\xdb\x55\xc3\x5a\x8f\x63\xec\xb6\x0c\xd1\xed\x67\xf7\ \xc1\xea\x9e\xa3\xe8\x4b\xf2\xa4\x3d\xe4\x27\x5c\x24\x73\xc8\x45\ \x6d\x9a\xd7\xa2\xbe\xa7\xa6\x67\x4f\x85\x84\x4f\xa4\xa3\x31\x4f\ \x81\xab\x2a\xb3\x43\xb8\x9f\x7e\x0a\xa1\xdd\xd9\x03\x96\x1e\x01\ \x38\x37\x01\x4e\x58\x99\xf6\x5a\x91\xae\xe9\x78\x39\x3d\x2e\xf7\ \xdd\x0d\x2f\xbf\xec\xd2\x0d\xb0\x80\x9e\x4d\x9c\xdc\xf4\xa0\x9d\ \xbb\x4d\x8b\xd3\x98\x52\x1e\xfd\xc6\x1c\x35\xa0\x98\xa3\x05\x49\ \xbe\xda\xb0\xd7\x02\x7d\xd9\x08\x81\x1e\x9c\xa9\x4a\x56\xd2\xdd\ \x1d\x09\x9f\xee\xb1\x9d\x34\x43\x1e\x96\xda\xce\xac\x92\x4e\xbe\ \xed\x70\xd0\xc9\xa9\x7f\xb7\x48\x4f\x9d\x34\xea\xb1\xd1\x80\x6c\ \x15\xed\x78\x1b\x3c\x79\x6c\x3d\x5d\x2a\xf1\x7b\xb4\x40\xfa\xcf\ \x5d\x67\x1c\xe5\x29\x4d\x03\xf4\xcc\x45\x04\x7a\x55\x1f\xac\xe9\ \x1d\xc0\x99\x61\x21\x61\xde\xe9\xa0\x93\x35\xb3\xb4\xab\x8c\x7b\ \x4b\xb3\x6b\x91\x5e\xdc\xef\xb7\x7a\x89\xd2\xb8\x40\x8c\x5a\xde\ \x14\x54\x04\xa9\xdb\x35\xaa\x57\x2f\x03\x68\xeb\xfa\xd6\xe4\xef\ \xdf\x73\xe1\x95\xab\xad\x63\x77\x4a\x0a\x9e\x74\xf5\x50\x46\xa7\ \xb9\xb4\x6e\xa1\xe7\x18\x6a\x22\x41\x65\xdd\x73\x0b\x2d\xa9\x97\ \xa4\x67\x8d\xfb\x0e\x5f\xd6\x26\x65\xf5\xb9\x1e\x46\xc7\xc6\x84\ \x3c\x5c\x36\x04\xff\x54\xf4\x3b\xdf\x70\x4a\x0a\xd5\x87\xc3\x61\ \x98\x61\x25\x63\x3d\x2d\x03\x47\xc3\xc2\xc0\x5c\x7e\xf6\xdc\x68\ \xa4\xac\xfb\x8e\x85\x41\x09\x6e\x34\x1e\x57\x91\x5e\x42\x8b\x02\ \x1f\xed\x47\xa5\xed\xe9\xe7\xaf\x38\x73\xdb\x45\xaf\x00\x98\xf9\ \x5a\xe2\xc9\xe3\x05\x3a\xd2\x3f\x1b\x81\x92\x8a\x27\xbd\x33\x2f\ \x89\x56\xcc\xc1\xc0\x79\x23\x7a\xf0\xa0\x40\x68\x38\xfb\x96\x5a\ \x39\xcd\x75\x4d\x8e\xff\x48\xf7\xe3\x8a\xdd\x93\xec\x73\xb4\xf9\ \xb5\xdf\x3c\x06\x87\x7b\x9e\x64\xb0\x1a\x03\x32\xdc\x74\xf3\xd0\ \x6b\x4c\x96\x26\x9d\x92\x96\xe4\x49\xd7\x75\x38\x6c\x86\x3c\xf9\ \xe3\x4b\xb6\x36\xbe\x9e\xfe\xfa\x84\x05\x39\x98\x29\x64\x84\xbb\ \x54\xf0\xd3\xed\x44\x5a\xf4\x28\xf8\x86\x4a\x43\x0d\xc1\x04\x6c\ \xa4\xd1\x6b\xac\xfc\xd7\xfe\xc5\x60\x25\x28\x29\x46\x4f\xb5\xb5\ \xec\xb9\x61\xc5\x4a\xba\xb8\xa9\xc6\x40\xef\xb5\x4e\x49\x1a\xd6\ \x83\xbe\xdd\x26\x00\xe7\x5d\x43\x20\x61\xec\xa8\xe0\xec\xf2\x1f\ \xb7\x4c\x9f\xb9\x13\x1b\x22\x1d\x15\xb9\x7f\xe8\xa6\x7b\x26\xbf\ \x72\xf5\x7a\xc4\x88\x19\xed\xda\x3a\x37\xe0\x5e\x8b\x4a\xea\x22\ \xd2\x33\x58\x49\x61\xb9\x37\xb4\xe6\xaf\xf7\x96\x2b\x3e\x7f\xbe\ \x9b\xf7\x7c\xc7\xd0\x85\x7a\x1b\x3e\xf8\xd9\x7d\xfd\x4e\x51\xea\ \x02\xa9\xcb\x9c\x20\x30\xd5\x50\xc5\x94\xb4\xf8\x03\x1d\xbd\xfc\ \xfe\x49\x8b\x6e\x13\x95\x31\xf6\x20\xd2\xd9\x86\xed\xd6\xd8\x26\ \x4a\x6a\xa0\xee\x05\x25\x6d\x55\x86\x78\xb9\x1f\xb1\x79\x6f\x1c\ \xb6\x32\x47\x86\xc9\xfe\xc0\xcc\x2e\x2a\xa8\xa3\x64\x07\x44\x9c\ \xd4\x73\x44\x8a\xb4\x76\xd2\x0f\x11\x6e\x7f\x7c\xd7\xe0\x3d\x6f\ \xfe\x21\x00\x78\xc4\xfa\xfc\x4f\x24\x95\xd4\x50\xf9\xdc\x62\x40\ \x07\x86\x33\x3c\xbb\x9f\x07\x93\x65\xac\x9e\xbc\x17\x9a\xee\x24\ \x6b\x0a\x4e\x65\xf9\x05\xe9\xe8\x05\x9e\x23\xb9\x7d\xd8\x6f\xe5\ \x96\x8e\x03\xe1\xcf\x58\xa4\xc7\x83\x92\x82\xd9\xe7\x55\x39\x09\ \x9e\xd4\xc0\xfc\xfc\x5d\x23\x0d\x73\xfe\x8e\x61\x87\x0b\xb8\xe1\ \x0c\x6f\x44\x8b\x08\xe3\xde\xbc\x56\x28\x76\xb9\x00\xa8\xbd\xd6\ \x1e\xcd\x38\xef\x1e\xce\xe4\x48\x5f\x83\x2a\x81\x05\x4a\x4a\x5a\ \xd9\xeb\x0a\x60\xf5\xe6\x1b\xbe\x4e\x7f\x8d\xe9\xa1\xd5\x38\x7f\ \xd3\xce\x00\xa6\x94\xa9\x1c\x37\xd6\xd3\x5e\xdd\x78\x78\x7f\x58\ \x19\x2f\xf4\x81\x01\xa2\xcb\xcf\x79\xd3\xed\xae\xa0\x39\xec\xc8\ \x5f\x42\x70\x07\x49\x8c\x96\xbe\xda\x7e\x1d\xd6\x03\x9c\x1f\x25\ \x2e\x5e\xf8\x7d\xd4\xcf\x87\xf6\x9d\xf6\xee\xdb\xb6\x3f\xfa\xc0\ \xb0\x53\x64\x44\x96\x95\xc0\x50\x01\x0a\x0f\x25\x24\xd1\x96\x18\ \x80\x6c\xc5\x7e\x34\xca\x45\x9a\x2d\xd0\xd3\x4f\x0d\x65\x00\xe9\ \x13\xa0\x09\x7d\x52\xd2\x75\x1d\xbb\x6f\x73\xc2\xbc\x94\xe3\xce\ \x81\xa2\xdd\xcd\x3b\x76\x15\x65\x96\xd7\x54\xd0\x29\x4b\xa7\xa3\ \x6a\xfa\x2c\xf1\x14\x29\xde\x06\x4f\x77\x91\xe1\x1c\x15\x9d\x86\ \x3e\x03\x15\x85\x7e\xce\x54\x43\x50\xdc\xb7\xb2\x7f\x1d\x20\xbd\ \xe9\x8c\xfb\x09\x26\x74\xc9\xfd\xcb\x0f\xb6\xec\x30\x2e\xa8\x51\ \xa3\xbf\xf7\x4a\x25\x24\xf5\x0c\x7f\xd9\x93\x22\x4b\x63\x1d\x6d\ \x79\xc9\xb2\xb6\xfc\x30\x28\x39\x05\x80\x76\xa4\x25\xf7\x9b\xa0\ \xb3\x00\xf4\xc7\x2a\x73\xb8\xdb\xc2\xbc\xca\x0c\x7f\xaf\xf2\x3c\ \x18\x94\x4a\x24\x47\x5a\x44\x4d\x27\x88\xa5\x13\x29\xf7\xa4\xfb\ \x89\xc6\xc7\xa3\x66\xaa\x3c\xb8\xc1\x19\x89\x9e\x8e\x00\x63\xea\ \xd4\x96\x5e\x14\x9c\x53\x8f\x3f\x70\xc4\x66\x53\xfe\x9c\xd1\x6d\ \x99\x99\x7f\xc9\x9f\xeb\x10\x1d\x45\xac\x70\x75\x0f\x1d\x94\x14\ \x2a\xb1\x57\x7f\x7c\xd7\x8a\x75\xee\x11\x2e\x3c\x1e\x69\x51\xfd\ \xe7\xae\x9e\x6b\x7d\xf9\x18\xc5\x42\xf3\x3b\x86\x79\xdd\x6c\x24\ \x6b\xe3\xd1\x9f\xb0\x2f\xc7\xcd\x1f\x4d\x6f\xdf\x8c\x3d\xb6\xae\ \x07\xe2\x43\xc6\xb3\xfe\x92\x1c\xe8\x1d\x27\x02\xac\xcf\x0e\x6a\ \xa4\x9b\xd6\x3c\x64\xb2\xa5\x55\x5b\x87\x4b\x05\xef\x87\x6b\xd2\ \xa7\x42\x01\x62\x6a\xfe\x68\xfa\xfc\x4d\x4b\xa7\x76\x02\x50\x7e\ \x18\x28\xfe\xfd\x95\x1f\x3e\xb6\xed\x4b\xcf\xe2\x52\x35\x3b\x68\ \xd5\x4c\xa7\x99\xb9\xd4\x4b\x9d\xc2\x95\xf1\xd3\x27\xac\x43\x46\ \x66\x63\x1b\xb4\xa2\xf6\xf6\x06\x99\x53\x2c\xff\x70\xd2\xd7\xbb\ \x9c\x31\x8f\xfc\x05\xb1\x13\x96\x9c\x2b\xda\x08\xaf\xea\x74\xa3\ \xab\xcf\xd9\x2c\x3a\x6f\xc9\x57\xba\xa7\x24\x92\x7c\xd8\x54\xd2\ \x80\x18\xef\x78\xc4\x27\x01\x46\x27\x2a\x3d\x01\x58\xfa\xab\xe0\ \xf6\x43\x13\xfa\xcf\x2c\x71\xe4\xee\x50\xf3\x47\xc5\x3d\x05\x79\ \x48\xbc\x65\x0f\x4a\x4a\x0c\x1d\xcd\x1e\x66\x56\x29\xcd\x4e\xc0\ \x2a\xfa\x69\x91\x0a\xd4\x4c\xba\xdb\xb3\x8c\x60\xfe\x3f\xe6\x8f\ \xaa\xb2\x93\x7f\xb1\x2f\x65\xa0\xa0\xa4\x77\xbe\x7b\xe3\xca\x95\ \xab\xd7\xdd\xbe\x30\x9c\xe1\x3a\xa9\xae\x39\x3b\x91\xcb\xb0\x71\ \xbd\x85\x63\xc1\xa2\x7b\x4a\xd9\xfc\xb8\x5e\x7c\xa9\x3e\x68\x0d\ \x45\xa4\x7a\x32\x36\x28\xe9\xdd\x9d\xbc\xd1\xe9\x77\x66\x1a\xc1\ \xbc\xe9\x2a\x9a\x3e\x6b\x6f\xe9\x7d\x51\x23\xbc\xc5\xee\x7f\xfd\ \xf9\xa3\x96\x5a\x0a\xa5\x62\xa9\x20\xad\x9d\x27\x9d\xf5\x17\x51\ \x9f\x2a\x2c\xe5\x12\xc9\x66\x7d\xdc\x44\x8a\x5c\xcd\x12\x83\xa9\ \xa4\x2d\x33\x0c\xf3\x30\x72\x4e\xfb\x51\x45\xf5\x33\x26\xd1\xd9\ \x33\x2c\xb8\xfe\x10\x9e\xaf\xaf\x62\xa4\x95\xc6\xa8\x8e\x08\x65\ \x89\x39\x35\xda\xdd\xeb\x29\x6f\xcd\xf4\x36\x53\x02\xe9\x36\x6b\ \x49\x7f\xdb\x90\xbc\x3e\x3c\x80\x81\x30\x65\x76\x7b\xd2\xec\x05\ \x6a\x3c\x22\x55\x4b\x3e\xfe\x2b\x18\x61\xb1\x24\x6d\xfa\xcb\x2d\ \xd0\x2d\x1d\x84\xa9\xaa\xce\xfc\x87\x25\x34\x4b\x45\xf2\xd8\x3a\ \xe8\x9d\x63\x55\xf3\x9e\xb4\xed\x87\xb2\x8f\x39\x4a\xf8\xd8\x8e\ \xf4\xd4\xe1\x79\xc8\x39\x5e\xf5\xbb\x57\xdc\x94\xe7\xaa\x3c\xca\ \xc2\xb7\x54\x0b\x57\xd3\xc7\x57\xe5\xe0\x95\x66\x29\x5f\xe3\xfd\ \x68\x32\x67\x6a\x44\x4a\x6a\x3d\xe9\x9c\xcd\x28\x47\x97\x80\xe4\ \x73\x0f\x24\xf2\x95\x51\x8a\xc7\x97\x4d\x26\xb6\x7a\xff\xef\xdf\ \xc4\xcd\x8e\x81\x3d\xa5\x47\x2b\x44\x03\x7f\x04\xec\x13\xdb\x64\ \x6d\x9a\xed\xa7\x8e\x33\x45\x62\xd7\x27\x9a\x32\xf6\xa5\x6c\x4e\ \x91\xdd\x8f\x9f\xed\xa8\xa2\xd1\xa8\xdd\x51\xb0\xd6\xf5\xd4\x68\ \xe4\x25\x79\xa9\x33\x77\x25\xfe\x45\x21\x0d\x56\x4f\xf3\xf5\x54\ \x34\xd3\xf3\x47\xf5\x21\x0c\x7d\x9e\x29\xb2\x25\xbd\xdd\xa0\x6a\ \x64\xcf\x73\x40\x32\x5a\xb3\x7d\x38\x43\x38\x8b\xc4\x80\xbf\x0a\ \xa7\xb8\x07\x6d\x99\xed\xd0\x47\xbd\xe4\xfc\xd1\x43\x8e\xfa\x4a\ \xeb\x67\x6e\xb2\xfb\xd1\x08\xaa\x5a\x3b\x16\x06\xd7\xf7\xf2\xe8\ \x28\x9b\x34\x3a\xa2\x6e\x02\x47\x43\x12\xa4\x40\xbf\xee\xfc\x51\ \xd8\x64\x8a\xfb\xf0\xc9\x43\x31\x4b\x73\x7b\xdd\x74\xe4\xba\x4d\ \x26\xc7\xe8\xcb\xdf\xe7\xfa\xbf\xca\xce\xdd\x55\xb2\xac\x0a\xe3\ \xbe\xea\x3c\x76\x75\xdd\xe6\xf6\xbd\xed\x5c\x54\x1a\xbb\x07\xc4\ \x99\x40\xc5\x69\x1d\x75\x50\x26\x52\x04\x15\x44\xc4\x89\xd4\x44\ \x06\xf1\x89\x18\x34\x46\x62\x20\x9a\x75\x64\x24\x18\x0a\xc2\x80\ \x99\x68\x26\x9a\x75\xa0\xe1\x04\x82\x30\xa1\x88\x7f\x83\x5d\xfb\ \x7c\xac\xc7\xf9\xed\x25\xed\xa9\x5b\x75\x1a\x3a\x59\xac\xbd\xd7\ \xf3\xf1\xad\x1d\x95\x4d\x2e\xc9\x22\x8b\x4f\x78\x5c\x49\xba\x8f\ \xe1\x14\xd0\x44\xc4\x71\x1e\x3e\x81\x9f\xb9\xbe\x7c\xfb\xf6\x69\ \x8e\x86\x49\x1c\x05\xd4\x57\x6b\x40\xf8\x8b\xb8\x79\xd6\xd7\x5e\ \xe1\x8f\x12\xd7\xf3\xc4\x4e\x57\xf1\x34\x8d\x8a\x5c\x76\x32\xe3\ \xec\x32\x14\xbe\xce\x9d\xc3\xc0\x6b\xda\x73\xa7\x63\x97\x4a\x3d\ \xd4\xf8\xa3\x41\x92\x14\x85\x96\x58\x15\x11\xc8\x79\x12\xa5\xf6\ \xc0\x84\xae\x69\xb0\x65\x3c\x77\x65\xc8\xd8\x52\x4e\x87\x1a\x7f\ \x94\xe1\xb2\x17\xc2\xe7\x84\x38\x3d\xc7\x51\x11\x14\x6e\x6d\x2e\ \x94\xa0\xae\xa2\xd6\x31\x8a\x08\xf3\xa6\x04\x44\xe6\x28\xf1\x47\ \x99\x80\xe0\x70\xbd\xde\xa9\xba\x9c\x79\xca\x93\x77\x28\xaa\xd5\ \x26\x99\x9c\xaf\x87\x10\xdf\x05\xc7\xb9\xc6\x1f\xa5\xc2\x67\xb0\ \x5c\xef\xaf\xcf\x1b\x65\x06\xb3\x96\x11\x15\xbd\x98\x61\xe5\x90\ \x35\x81\x08\x6b\xac\xf1\x5b\xc8\x3e\x68\x4d\x30\x8f\xdd\x4b\x62\ \x9d\xa5\x9c\xb1\x6e\x24\xd7\xa7\x6b\x9d\x58\xce\xd9\x82\xd2\x74\ \xf4\x27\x78\x79\xb5\xd2\x4f\x8b\x4d\xdd\x32\x71\x0e\x43\x7c\x64\ \xb4\x9c\x31\x6a\xe8\x91\xf2\x91\xd4\xe3\xe4\xfb\xc7\x19\x6a\x39\ \x1d\xce\x82\xbb\xad\x17\x75\x59\x45\x61\x38\xf0\xe0\x98\x9e\x8a\ \x98\x0f\x0b\x86\x6f\x6a\x8e\xa2\xbb\x5d\x74\xc6\xfc\xc3\x65\x98\ \x17\x30\x96\x5a\x5b\x09\x9a\x86\x45\xa5\xc8\xb4\x11\x31\x0c\xde\ \x01\x2c\xb5\x26\x54\x1c\xf5\xb3\x9f\x93\xd6\x8f\xdd\xc3\xa2\x71\ \xce\x87\xcf\xc7\x85\x29\xba\x79\xa2\x6e\x87\x88\xff\xff\x40\xcf\ \x92\xa1\xe2\xa4\x84\xdf\x1f\x0d\x87\x61\x2d\x57\xf2\x47\xf2\x1e\ \x04\x22\xba\x66\xf0\xf6\x24\x4d\x84\xa3\xa2\x7a\x82\x0d\x15\x47\ \x01\x43\x39\xe7\xe5\x5c\x40\xff\xc8\x92\x8f\x87\xe0\xed\xba\xa1\ \xcf\x06\x8f\x9c\xb0\x67\x85\x8f\xdb\x7f\x37\x32\x8f\x49\x8f\x8a\ \xd2\x61\xf7\xb0\xa2\x65\xc1\x64\x6e\xdc\xc5\xa0\x25\x70\x9c\x31\ \x72\x37\x1e\x65\x2b\xa6\x18\x6d\x67\x07\xcd\xa7\x1f\xfd\xdc\xa6\ \x1d\x9d\x4d\x74\xae\x46\x22\x60\xde\x00\x00\x11\x79\x9a\xe3\x25\ \xc6\x4c\xbe\xb8\x3e\x36\x3a\x52\x8d\xba\x7e\x1a\xe2\xe6\xad\xd6\ \x4a\x76\x7e\x75\xa9\x82\xa9\x27\x50\xaa\xfe\x65\x14\x8e\x13\x7a\ \x58\x0d\x6e\x01\x93\xc8\x34\xa1\xcf\x4d\x84\x36\xc5\xa8\xe6\x27\ \x39\x50\xfd\xe3\x6e\x73\x95\x7f\xc8\x60\xa9\xcc\x93\x10\x42\x8b\ \xeb\x3a\x66\xbd\x33\xa4\xab\x34\xa8\x9b\xd0\xd6\x49\xdd\xab\x51\ \x3f\xf6\xed\xcf\xfb\xf1\x2f\x28\x4b\x05\x84\x92\x18\x5b\x2d\x36\ \xa5\xcc\xd3\x84\x6a\xe6\xae\xa3\xbe\xcc\xb6\x87\x11\xf9\xbc\x04\ \xa2\x04\x66\x8a\x8f\xf1\x93\x9e\x67\xc3\xcd\xbb\x94\x5d\x2a\x3a\ \x33\x9b\x06\x04\x03\x30\x15\x12\x7a\xf2\x44\x8d\x9b\x75\x26\x9f\ \x20\x4a\x3a\xf6\xf8\x43\xf5\x94\x9e\x64\xe5\x2f\xf3\x26\x84\xd6\ \x8f\x5f\x93\x77\xda\x1c\x19\xb2\xa3\x4d\xa7\xcf\x11\x46\xfd\x45\ \x86\x22\x0a\xd5\x37\x07\x77\x37\xd5\xba\x0e\x89\x7c\x9c\xb9\xd3\ \xa3\x9b\xa9\x37\x2d\x67\x5b\x0c\xe5\x2d\xce\x2f\xc3\xd4\x8b\xbc\ \x3a\x0a\x2d\xb6\x04\xa7\x15\x3d\x9e\x2f\x41\x17\xbe\xff\x13\x5b\ \xf9\x88\x53\x03\x99\xcf\xbe\xa8\x43\x7d\x29\x4f\x92\x57\x49\x21\ \x41\x3a\x2a\xdd\x04\x33\x8f\x4d\x77\x2d\xaf\x91\x9a\x87\x70\x3a\ \x74\x9b\xf5\x74\xd2\xdc\x85\x1e\xca\xd2\x60\xbc\xbe\xc4\xc3\xd7\ \x0c\xa3\x87\xcc\xde\xdf\x1e\x81\xd1\x47\xbc\x74\x81\x0a\x35\x11\ \xf0\xb5\x5e\x7f\x12\x24\xca\x5e\xe5\xf4\x4d\xa8\x35\xc5\x99\x50\ \xfd\xf8\x48\x8b\x1a\xc7\xa7\x9c\x76\xf2\x08\x14\x04\x26\xb6\xba\ \xc5\x87\xb1\x47\x8c\x47\x3c\x7c\xd9\x79\xf3\x9d\x30\x28\x64\x18\ \xde\x6d\xca\x30\x25\x04\x01\x91\x83\xbf\xae\x69\x2c\xd8\xee\x69\ \xa2\x92\x63\xeb\x35\x1e\xfe\x25\x86\xc1\xa5\xa5\xb2\xa1\x6f\x3e\ \x1c\x98\x57\x73\x65\xf4\x7e\x63\xa8\x11\x49\xc7\x99\x00\x10\x22\ \x35\xe9\xd3\x9b\x72\xe3\x95\xd0\x15\x2e\x15\x33\x61\x67\x64\xb3\ \xa5\x67\x50\xf8\x21\x06\xa5\x97\x87\x64\x9e\xf4\x14\x00\x55\xe0\ \x3a\x0d\xf1\xf0\xf3\x9c\x10\xb6\x09\xb5\x16\x6f\x69\x23\xfa\xb0\ \x52\xf8\x1a\xbc\xc2\x93\x72\xf8\x2c\x89\xd9\x35\xa5\x65\x2a\xba\ \x08\xb9\x55\x64\xd2\x37\x0a\x52\xf6\x48\x17\xc7\x7b\x5a\x85\xf7\ \x04\xe3\x74\x91\x6d\x3e\xcf\x7e\x68\x3f\x6f\xd0\x9b\x67\x5a\x14\ \xa5\xbb\x84\xa1\x34\x4d\xb8\xa3\xf9\xf8\x97\x0a\xef\x49\xb2\x24\ \x62\xc7\xb5\xd0\xb1\x1e\x55\x1a\x17\x35\x11\x6f\xd5\x70\x1a\x13\ \xdc\x7c\x9b\xc1\xd1\x12\xef\x49\xc4\x65\x04\x2d\xc2\x94\xf8\x1f\ \x8d\x28\xb3\x8e\x8c\xeb\xb1\x46\xcc\x91\x32\xe7\x12\xda\xd1\x7f\ \x28\xf7\xb1\x7a\xc7\xbc\x38\xd5\x68\x8d\x58\x20\x62\x71\xf0\x36\ \x0c\x2c\xf4\x97\xf0\xb8\xac\x1b\xb5\xdc\x7b\xc3\x12\x23\x61\xfb\ \x81\x3f\x59\xe0\xe1\xcf\x73\x59\xb2\x8d\x14\x37\x61\x2c\x60\x5b\ \xa8\xb3\xb4\xae\x83\xba\x81\x22\x92\x8e\xe7\x9d\x89\x91\x4b\x76\ \xe6\x0b\x90\x59\x6a\x7c\xa5\xef\xec\xed\x0f\x32\xfb\x9c\xaf\xf7\ \x2a\x23\x59\xea\x5a\x34\x52\x59\x03\x53\x01\x26\x37\x90\x9a\xa4\ \x9e\xab\x25\x44\x62\xfc\x5b\x4d\x96\x52\xd3\x93\x47\xcc\x3c\x78\ \x46\x4d\x37\xaa\x2e\xb3\x6a\x0b\xa1\x37\xb1\x57\x5a\xa7\xd1\x36\ \x89\xa3\x7e\xfa\xc0\x20\x4c\x29\x47\x64\x47\x51\x0e\xaf\xd1\x89\ \xdc\x75\x66\x70\x27\x69\x0f\x80\x3f\x9d\xa3\x96\x21\x5d\x7c\x5e\ \x3d\x2e\x3b\x5b\x17\xc0\xcc\x77\x22\x89\x36\x8e\x06\x2d\x10\x5a\ \x44\x23\xde\x5b\xc0\xfd\x4c\x21\x56\x86\xb5\x77\xa1\xe7\xe8\x3a\ \x8a\xb6\x94\x28\x7d\xa8\x9e\x4e\xf5\x72\x89\xac\x9f\xb8\x39\x50\ \x93\x81\x53\x26\x72\x75\x8b\xd4\xe2\x9c\xfd\x21\xa5\x74\x10\x2b\ \x9b\x2c\x11\x28\x15\xdb\x2d\x3d\x58\x22\x7e\x96\xee\x67\xb4\xa2\ \x63\xd8\xbc\x18\x82\x72\x43\xb0\x2b\x7c\xe3\x25\x3d\x52\x7b\x71\ \x7f\x3d\x05\x49\x92\x14\x48\xc5\x5a\x53\x28\x7c\xc4\x4c\x5c\xcf\ \x74\x10\x53\x9d\x54\xaa\x52\x5a\x7b\x9a\x50\xc2\xbc\x65\xae\x36\ \xf7\x9e\x68\xea\x33\x82\x52\x86\xd2\x71\xb4\x4c\x2e\xe4\x83\x83\ \x3f\xdc\x82\x91\xf1\xf0\x75\xea\x65\xf3\x4b\xd3\x07\x4b\x9a\xe8\ \x94\x64\x2b\xba\xa6\xdc\x83\x9b\xf9\x25\xd2\x19\x22\x65\x7a\x7b\ \x63\x6c\xe4\x44\x21\xed\x68\xab\xf1\xf0\x93\xc6\x27\x04\x44\x94\ \x79\x56\xc3\x76\x8d\xae\xc0\xcd\x3b\xf1\xd4\x1d\x22\x37\x05\x76\ \x93\x4e\xde\x62\xa7\xd1\x52\x3e\xa7\xaf\x9b\x2a\x7a\xf7\x7e\xec\ \x20\x57\x7a\xb4\xde\x7d\xc3\xdc\xd3\xd1\xd4\x28\x21\x6a\x6a\x2c\ \x9d\x33\x71\xb1\x72\x4b\xae\x8a\xa1\xd8\x64\xfd\x36\xe7\xa8\x7d\ \x50\xb4\x45\x24\x62\xd2\x0f\x8e\xb6\x04\xef\x98\x1b\x9f\x44\x9f\ \x23\xd2\x29\xf5\xc8\x45\x9c\xe2\x2a\xf3\x8d\x75\x83\x16\x92\xa3\ \x49\xec\x47\xf9\xf1\xe0\x2e\x03\x13\x5d\x12\xbf\xae\x4b\x81\x91\ \xea\xae\x5e\x11\x35\x45\x97\x84\x96\xc9\x1c\xd2\xa8\xe8\xf3\x1d\ \xa5\x8a\x02\x7a\xfb\xe2\xc4\xea\xdb\x92\xad\xbf\xb0\x9a\x48\xb1\ \xd5\x96\x7b\x4d\x89\x87\x4f\xc1\xf7\xdc\x63\x34\xf2\xa2\x52\x31\ \x13\x8f\x5d\x2f\xe6\xf3\x12\xb5\xb1\xe7\x2d\xb5\x3d\x39\x95\xe3\ \x94\x0e\xd4\x68\x60\xed\x11\x71\x3d\xe0\xfd\x26\x64\x20\xf4\xb2\ \x95\x91\x74\x49\xa3\xa5\x5f\x90\xc5\xa7\xe8\x1b\x1e\x3e\xc5\x09\ \xc2\xa4\xaf\x3b\x25\x4a\x91\x45\xa7\xc4\x39\xba\x3a\x86\x33\x61\ \xbc\xb1\xcd\x1a\x71\x3d\xa4\x89\x24\x46\x90\x5c\xa2\xa5\xb6\x94\ \xd2\x11\x91\xd0\xa5\xbe\x71\x9d\x5b\x9a\x9c\xa3\x34\xf3\xbc\x9f\ \x84\x4c\x4c\xdd\xe3\xfa\xc6\x48\x44\x1b\xac\x0d\xdd\x4f\x25\x26\ \x63\xa8\x5b\x4f\x47\xcd\x23\x7c\x7b\x56\x4d\x14\xa8\xa4\x50\xfd\ \x61\x75\x99\x78\xf8\xd5\x96\xe0\xfe\x07\x27\x2f\x06\x77\x63\x2b\ \x9a\x6a\x22\x5c\x69\x6b\xf2\x34\xdc\xb6\x0e\xb7\x84\xce\x3d\x43\ \x12\xd9\xa5\x28\xf7\xdc\x67\xdc\x82\x28\x65\xfd\xc4\xd0\x2e\x6d\ \xb8\xd4\x2f\x12\x10\x84\xc2\x07\xa5\xb2\xed\x0d\xbb\xac\x27\xb2\ \x74\xd1\x6f\x10\x7a\x56\x6d\x4d\xe9\xb3\x7c\x03\x13\x5a\xf9\xa3\ \xfa\x83\x59\x72\x34\xba\x9c\x18\xf7\x44\x6e\x0c\xf1\xea\x26\xc2\ \x48\x2d\xb6\x09\xf5\x2f\x9e\x21\xfa\x68\x59\x5f\x6e\xc1\x32\x59\ \x85\xd1\xde\x2b\x6a\xa1\x0d\x2b\x1b\xcc\x86\x9a\x19\x85\x7a\x02\ \x33\xb9\x8b\x11\x6d\xae\x26\xf5\x99\xad\xcd\x5c\xbe\x69\xce\x9d\ \x0f\xab\x1d\xfc\x28\x35\x0e\xd3\x44\xe3\xa9\x37\xf3\x79\x1c\xbb\ \x4a\x10\xa4\xf4\x9e\x24\x4c\xc6\x49\x6a\x51\xe3\x69\x94\xaa\x8b\ \x24\x52\xce\x55\xda\xa6\x02\xce\xf7\x08\x5c\x4f\x80\xd4\xd0\x1f\ \x4d\xe4\xce\x11\xf6\xa5\x39\x81\x65\xbd\x56\xa2\x24\xc6\xc2\xcb\ \x63\xf6\x49\x7a\x14\x93\xcb\xc1\xc9\x23\x47\x13\x9d\x1e\x2d\x4f\ \x86\xa7\xb2\xae\xa6\xfa\x09\xdd\x0e\x41\x42\x74\x07\x7e\x16\x99\ \x12\x20\x92\x51\x9e\x1c\x1f\x95\x81\xbd\xfa\x5e\x1c\x83\x90\x86\ \xc9\x55\x54\x08\x9a\x19\x37\x81\xd2\x4a\x3d\x1d\x4b\x7f\xd4\x02\ \x66\x38\x4f\xab\xfe\x42\xe7\x4b\x63\xc5\x16\x23\x18\x00\x6f\xf7\ \x10\x94\x47\x7f\x2b\x49\x92\x91\x6a\x32\x6f\x21\x48\xf4\x9e\xf4\ \x71\xc8\x1f\xc7\xf6\x34\xc1\x87\x36\xc5\x8a\x9e\x65\xc8\x4c\xe6\ \x9e\xf2\x25\x35\x32\x4b\x7f\xd4\x93\x0f\x8c\xee\x44\x69\xd8\x61\ \x0e\x43\x8f\xbd\xf0\x7a\x11\x18\x9d\x52\x3f\x3a\xfb\xca\x1f\xd5\ \x91\xfb\x6f\x7a\x24\x48\x1e\x8c\x30\xa6\x4f\xf5\xda\x05\xf9\x66\ \xb0\x12\xe5\x9b\xa1\x22\x75\x60\x15\xab\xdd\xe8\xdf\xc4\xa1\x74\ \x86\x46\xef\x7e\xcd\xc2\x94\xd4\x3d\x15\x3e\xb1\xe6\x2f\x2a\xa7\ \x64\x06\xde\x53\x1a\x66\x9b\xe2\xc2\xc8\xe4\x3b\x2f\x46\xa9\x40\ \x1d\x45\xab\x9f\x3f\x23\xbc\xe0\xe6\x61\xe7\x36\x1e\x6c\x35\xd5\ \x17\xc5\x9b\x48\x2c\xfd\x51\xdf\x6b\xea\x61\x93\xaa\x77\x2b\x89\ \xcc\xb7\x94\x69\x47\x90\x4a\x30\x5f\x17\x27\x16\x6e\x25\xf4\x42\ \x4f\xcb\x3a\x74\xb6\xd5\x5c\xd9\x36\xb5\xe2\x92\xa6\x2c\x3e\x59\ \x5a\xb4\x13\x55\x0b\xf9\x98\xc9\x75\xc9\x97\xec\x4f\x33\x90\xe6\ \xf3\x76\x89\x62\x8a\x11\xd9\xbc\x68\xe9\xf5\x2e\x3d\x7c\x96\x99\ \xce\x5f\x3a\xf7\x41\x98\xd8\xeb\x28\x41\xd2\x0b\x2b\x1b\xf4\x66\ \xad\xc1\x45\x49\xe7\x4e\x0f\xbf\x1a\x63\xac\x23\x11\x3f\xfa\xcd\ \xe7\x33\x5e\xea\x92\x6e\xe5\xfa\x35\x44\xcb\x2c\x85\x22\x2f\x5e\ \x57\x1a\x7c\x6c\x9d\xe5\x50\x3a\x7a\x4e\x9e\xd7\xee\x82\xd0\x7b\ \x76\x4c\xf5\x06\x81\x4d\xaf\x68\x22\x14\x3f\x99\x1c\x4f\xa5\x86\ \xba\x68\x9b\x75\xbd\xe7\xf3\x79\xf4\x22\xb9\x70\x48\x3d\xe1\xbc\ \x9e\xbf\xc5\x66\xae\xc3\x41\x54\x82\xa9\xa5\x30\x9d\xb0\xd3\xd6\ \x19\x0a\x15\x15\xf1\xf0\x27\x75\xea\xa4\x4c\x49\x8e\x41\x1b\x05\ \xa9\x0f\x33\xd9\x34\x38\x69\xd4\x67\x34\x78\x05\xb1\x17\x43\xe3\ \xb1\x1f\xa3\x51\x8a\x51\xe8\x20\x08\x8d\x6d\x2f\x8d\x93\x0d\xa2\ \xf6\x4c\x2c\x2d\xbd\xf2\xf8\x6c\xd0\xaa\x27\x6d\xed\x86\x0e\x02\ \xe6\x14\x87\x92\xcc\x58\xc4\xb1\x1e\x67\x9b\x0c\x73\xd9\xdf\xc6\ \x31\xe0\xdf\xfb\x30\x9b\xd7\xc3\x6e\x1c\x14\x9d\xbe\x68\x65\x9b\ \xb0\x5a\xc0\x49\x15\x71\xbe\x77\x7b\xcd\x2b\x8f\xf2\xf0\x4d\x3f\ \xfd\x83\x28\x65\x0e\xaa\xb0\x4c\xd8\xd5\x21\x99\x02\x3b\xfd\x2d\ \x8b\x0f\x79\xf2\x15\xeb\xab\x46\x2e\xe9\xe3\x4b\x8a\x80\x01\xe1\ \xe3\xab\x85\x9b\x77\x0b\xf5\x7a\x54\xc4\x9c\xd6\xa0\xa4\x72\xfb\ \x70\x6c\x75\xd3\xec\x32\x5c\x3d\xcd\xb1\x99\x65\x2a\x7a\x09\x19\ \x38\x11\x52\x83\x1d\x4f\xd4\xf7\xda\x86\xc0\x1c\xbe\xf5\xe6\x89\ \xab\x1a\x6a\xa1\x40\xe9\xb3\x1b\x07\x4f\x43\xeb\x4c\x8d\x9b\x38\ \x89\x40\xd1\xaa\x1f\xe6\x49\x3c\x18\x41\x12\xd7\x24\x49\x13\xc1\ \x99\x42\xed\xe4\xca\x90\x2a\xf5\xd2\x6d\x36\x63\x9f\xea\x7a\x3d\ \x7b\x5f\x5a\x0c\xed\xf4\xda\x69\x52\x41\x40\xf4\x4f\xc6\x1a\x8f\ \x75\x50\x09\x16\x32\x64\x91\x4e\x17\x7d\xa6\xf2\xf6\xd9\xa7\xf4\ \xf8\xb9\x5b\xd1\x36\x64\xc9\xd4\xee\xa6\x1d\xac\xc2\xc5\xe7\xb9\ \xdb\x86\x43\x56\x6d\x77\x6d\xce\x8c\x42\x8b\xd1\xe5\x0c\xfb\x63\ \x42\x64\xed\x99\xad\x71\x93\x94\xfa\x07\xd3\xd9\xb3\xda\x20\xcd\ \xb4\x8c\x43\xbb\xa2\xdb\xf1\x04\x41\xaa\xc6\x05\x4c\xf6\x7d\x28\ \x10\x60\x00\x5e\x14\x03\x99\xd6\xf9\x10\x91\x2a\xb8\xdf\x70\x98\ \x20\xad\xca\x4c\xac\x89\xb5\x9c\x20\x55\x97\x3b\xd5\x93\xad\xeb\ \x00\x44\x0d\x3c\x67\xf8\x4e\xc1\x84\xb2\x55\xa3\xc6\x4e\x63\x3f\ \x11\xb7\x48\xcd\xbb\x59\xf0\x08\x02\x20\x40\x15\x0c\x07\x1a\x6f\ \x19\x34\xf1\xe1\x28\x1b\xf3\xa3\x76\x4f\xb3\x7a\x82\xd4\xcf\xc9\ \x2a\x25\x52\xa5\x45\x25\x46\xae\xeb\xdd\x92\xee\xc5\x89\x4f\x9d\ \xc3\xc7\x0d\x8d\xa4\xb2\x37\x8f\x26\xb4\x3f\xdb\x2b\xf2\x53\x13\ \xd6\x46\x24\xe0\xfd\x4a\x9e\xf2\xe8\x47\xc0\x89\xb9\x83\x30\xf5\ \x0e\xa7\x47\x11\xa8\xb1\xd4\x00\x6a\x56\x27\xd5\xc0\x69\x96\x0b\ \xec\x0b\x85\x13\x5a\xdb\xfa\x5c\x0a\x8d\xfe\xfd\xd1\xbb\x5c\x27\ \xf3\x47\x0d\xbc\x3f\x77\xbc\xad\xc6\xd3\x65\xd1\xaf\x6f\x42\xe8\ \x72\xa4\x3d\xb1\x0b\x36\x2f\xd7\xc7\x2f\x37\x8f\x0f\xc1\x3f\x7c\ \xf2\xca\x8e\x1e\xae\x93\x64\x5e\xd0\x44\x4e\xa5\x33\xd4\x4c\xa8\ \xbc\xfc\xe4\x93\xa2\x7f\xb4\xb8\xa3\x73\xc2\xf8\x42\x72\xdc\xe6\ \x42\xd3\xa9\xcf\xee\x8b\x3a\xa9\x01\x4c\x67\x7f\x4b\xc3\x28\x23\ \x9e\xaa\x12\x7a\x83\xf2\x0d\xba\x74\x8a\x42\x93\xb2\x8f\xec\xd4\ \xf9\xca\x8f\x1e\x3f\x7e\xed\xe5\xc5\xe4\x9e\xc0\x79\x0a\x96\x0c\ \x2b\x13\xe9\xd1\x82\xa3\xa2\xf1\x64\x14\x02\x45\x89\x88\x3a\xa2\ \x90\x64\xb6\x07\x1d\x48\xf5\xd1\x9f\x24\xf9\x62\xab\x29\xd1\xdf\ \xfc\xed\x87\x2f\xba\x72\x02\x53\x73\xb5\x9e\x43\xd6\x05\x4a\x09\ \x98\x69\xce\xa8\xc5\xf5\x70\xf5\x5e\x14\xe0\xca\xbb\x9a\xa1\xbe\ \xf8\xe1\x3f\xf8\xf1\xd3\xff\x7d\xf4\x6f\x07\xad\x40\xc6\xb9\x9e\ \x5f\x16\xaa\x06\xac\x28\x3c\x27\x27\x36\x2e\x0a\x86\xa1\xff\x9d\ \x10\x47\x9f\xff\x96\xd8\x19\x19\xfa\x5a\xc7\x8c\xf9\xe4\x6d\xf9\ \xf5\x00\x2d\x28\xc6\x05\x6e\x52\xe5\xee\x84\x0e\xfc\xed\x27\x68\ \x52\x21\xb7\xeb\x82\x86\x40\x24\x12\xfb\xdb\x77\xfc\xe5\xf9\x8e\ \xe8\x79\x5c\x44\xa9\xcb\xfd\x57\x3b\xa1\xef\xbf\x5a\xcd\x75\x46\ \x02\xdf\xff\x51\x78\xf8\x3c\x7a\x9c\xbc\x0f\xb3\xa5\xde\x3c\x5f\ \xd7\xd1\xbf\xeb\x74\xfc\xc2\x73\x1d\xbb\x28\xa0\x92\xe9\x79\x72\ \xc6\xb7\x79\x8a\x09\xd8\xb6\x0d\xac\x66\xf1\x79\x49\x41\x27\x51\ \x35\xd8\x89\x8f\xd5\x5c\x76\x49\x5b\x7e\x0c\x90\xec\x8c\x53\xfa\ \xbe\x2b\xc5\x4c\x6b\x90\xa5\x37\xef\xde\x7b\xf4\xdd\x87\xb7\xb5\ \x4b\x8c\x7e\x5e\x8c\x9a\xa0\x9f\xf6\x64\x9a\xa4\x0f\xbc\x92\xb6\ \x6f\xc8\xf5\x70\x39\x56\x70\x3a\xba\xde\x4f\xe6\x81\x0d\x7d\xfd\ \x9d\x1f\xbb\xba\xdc\x36\xb0\xe6\x98\x9e\x25\xc6\x91\x7a\x2a\xba\ \x35\x8c\xe4\xfe\xab\x73\x9f\x82\x9b\x87\xbd\x37\x42\xcf\xba\xdf\ \x11\xe3\x4f\xe2\x68\x76\xf2\x0e\x86\x3d\x5a\x0e\x36\x80\x4e\xe4\ \xf0\x2f\x6d\xa7\xed\xf9\xa5\xb1\xab\xfd\x74\xfd\x3c\xc7\xe9\x1b\ \x75\x13\x19\xa9\x1b\x94\xca\xe7\xcf\xb8\xa4\x77\x88\x9b\x27\x90\ \x54\x3d\x02\x9e\xad\xf3\xa3\x8c\x99\x9c\x58\x11\xa9\x55\x77\x9a\ \x0d\x3c\xb2\x73\x78\x9a\x94\xca\xcb\x11\x93\xf2\xb9\x67\x2c\xf9\ \x17\xae\xbb\xce\xdf\x91\xd9\xa9\x14\xa9\x22\x16\x4c\x35\x05\x55\ \x97\xc1\x6d\x7f\xbd\x45\x4e\xd8\x10\xac\xbf\xa6\x2b\xd0\x59\xeb\ \xc4\xca\x73\xfa\xec\x59\x0d\xbd\x35\xeb\xe0\xa3\xbd\x17\xa9\x4e\ \x27\x2b\xb6\x64\x29\xfd\x51\x51\x3a\x1b\xb1\x45\xb8\xec\xdb\x57\ \x9d\xa3\x71\xc0\xbe\x43\x40\x7e\xfb\x24\x9d\x5f\x70\x54\x6b\x82\ \x29\xf3\xec\xcb\x24\x62\x81\x4f\x36\x14\xb9\x71\xff\xb3\x70\x39\ \x5d\x52\xb9\xcd\xbf\xef\x26\xe8\xf1\x2f\x37\x56\xda\x82\x01\xad\ \x67\x7a\x72\xff\xfc\xda\xc8\x04\x8e\x52\xe9\x3d\x23\x7d\x5f\x86\ \xcb\x2d\x2a\x7b\xe7\xaa\xb3\xd4\xe5\xfe\x4d\x21\xc1\xfd\x63\x52\ \x30\x62\xa4\x3e\xf9\xd5\xe3\xe7\xee\xfd\xf9\xf2\xec\x40\x77\x3a\ \xd9\xe5\x5a\x4e\x36\x88\xa5\xd5\x76\x26\x90\x1a\x15\x29\x82\x26\ \xa9\xfc\x37\x3e\xb7\x39\x27\x9f\xba\xb3\x4b\x92\x3c\xe9\xf0\xc9\ \xd7\x67\x42\x75\xfa\x50\xf9\x7e\xf0\xd9\xe5\xbb\x55\x8e\x30\xa2\ \x5d\x83\x86\x69\x6a\x50\x4e\xdb\x35\x7d\xf0\x68\xc3\xf0\xbe\x8a\ \x8e\xde\xd9\xcf\xeb\xbb\x3c\xae\x57\x41\xcf\x16\xf9\xd1\xa1\x71\ \x62\xc7\x5b\x6e\x2c\x61\x58\x1f\xb2\xb9\x54\x4e\xda\x6d\x78\xff\ \x6c\xd6\x3f\xfe\xd1\xeb\x5b\xb9\x72\xd7\x57\x06\xde\xfd\xfe\x55\ \xc0\xc3\x87\x19\xad\xb2\x4f\xb0\x4a\x44\x6e\xcf\xb4\xb6\xd0\x9f\ \x83\x2b\xaa\xa4\x78\xeb\xdb\x10\xde\xba\x9a\xbb\xca\x0f\xd2\xf4\ \x9d\x8e\x5d\x7b\x5b\x10\xde\x05\x9a\x4a\x91\x1f\x25\x84\x56\x74\ \xf6\x98\xc3\x4d\x3b\xf6\x5d\xea\x57\x31\x75\x3b\xfe\xb7\x77\x42\ \x8f\x4e\xa6\x48\xfd\x57\x87\xf4\x3f\x9e\x69\xce\x33\x62\x7a\xa1\ \x0e\x5a\x83\x50\xce\x9e\x2c\x2b\x0a\x62\x7e\xf4\x91\xa5\x0e\x01\ \x71\xbe\x96\xaf\x6f\xe6\x5e\xc6\xde\x95\xfd\xd9\x14\xfc\xf5\xba\ \x53\x67\xe1\x1d\x2a\x23\xbe\xc6\x1c\x60\x15\xd1\xdc\xcf\x97\x12\ \x25\xe4\x1d\xf3\x2a\x63\x53\xa2\x7e\xf4\x61\x8d\xd4\x06\xa6\x2b\ \xf8\x34\x27\xf5\xef\xe7\x45\xc5\x57\xb6\xbf\xbe\x68\x28\xe1\x15\ \xe5\x1d\xe5\x16\x0c\xc2\xd4\xe4\xfd\xf5\xce\x50\x1d\x7d\x5b\xe5\ \x93\x7e\xed\x5a\x25\x46\x0f\x95\xcf\x8b\xc1\x7e\x7e\x5b\x10\xa4\ \x16\x86\x64\xe7\xbe\x94\xfa\xec\x95\xd8\xfe\x7a\xd1\x28\x6a\xeb\ \xfd\xf5\x59\xdb\x0b\x4f\xa7\x9b\xfb\x7b\x2f\x4d\x39\x41\xda\xf7\ \x59\xde\xbd\x3e\x3a\xa8\x0a\xfd\xe6\x90\x1f\xad\x11\x5d\xad\xb4\ \xb8\xed\xb5\x65\x21\xbc\xa5\x38\x94\xfd\x59\x0e\x3a\xfc\x47\xbf\ \xa4\xcb\xea\x0a\xff\xe9\xde\x89\x0f\x5c\xb7\x8d\xcc\x03\xda\x32\ \x55\xb1\xf7\x4b\x4a\x24\x42\x7f\x72\x60\x8f\x26\x42\xee\xaf\x0f\ \xcd\xd8\x01\xa1\x46\x97\x74\xd9\x59\xd0\x57\xcf\xdb\x3e\xcc\x27\ \x59\x08\xa8\x52\xcf\xdf\x88\x4a\x0c\x0d\x14\x30\x4a\xd8\x5f\x4f\ \xb8\xc4\xad\xd9\xf5\x67\x7d\x33\xe9\xbe\x17\xff\xd5\x4d\x8b\xca\ \x85\xaa\x0a\x38\x2c\x2f\x4b\x98\x88\xf4\x95\xb1\xde\x9c\xa5\xd8\ \x5f\x9f\xf7\x19\x7b\x6b\x73\xfb\x62\xdf\xd4\xb3\xbb\xa4\xcb\xfd\ \x9f\xbe\x72\x3d\x8b\xc8\x43\x17\x7d\xd8\xa4\x7a\xe6\x0e\xf1\x92\ \x1f\x3d\x19\x8a\xfd\xf5\xc0\xa0\x54\x26\xf7\xcb\x7d\x63\xd4\x24\ \x2c\x25\x4f\xe3\x9e\x8e\x9b\x3f\xea\xd0\xd8\x34\xa0\xb5\x7a\xc2\ \x25\x1d\x2e\x62\x8c\x66\x74\x32\xf3\x34\x65\x85\xbf\xa1\x67\xbd\ \xdc\xf7\xb1\x7d\xe3\x13\x93\xc8\x0c\xb3\x96\xf2\x9b\xe5\x90\x70\ \xc2\x1e\x57\xd4\x38\x0a\xa0\x0a\x27\x96\x52\x2f\x65\xaf\x37\xe2\ \x7a\x81\x7d\xb5\x17\xde\xbb\x39\x4f\xec\x26\x32\xf7\x7e\x39\x14\ \x08\x10\xfe\xad\x27\x1b\xc8\x54\x91\xea\xd9\x66\xdb\x5f\xcf\xb8\ \xde\x37\xc5\x3e\xe8\xa0\xbf\x1f\x7c\x78\xb2\x46\x52\x2f\x37\x78\ \x1c\xd2\xcf\x7e\x21\xe0\x74\x51\xaf\xd7\x4a\x99\xb2\x5e\xaf\xdf\ \x96\xf2\xa3\x64\xa8\x88\xdc\x08\x5d\x9e\xee\xdd\xbd\xfb\x9e\x87\ \x77\xf6\x33\x2d\x87\x0b\x0b\x99\x95\x2e\xa1\x83\x57\x21\xa8\xd1\ \xbb\x77\x79\x2a\xbb\xde\x9a\x2d\x8d\xcc\xf4\x1a\xee\xc7\x1b\x1f\ \x79\xe5\xa5\xab\x93\xcd\xb0\xe6\xda\x9d\x09\x13\x8c\x68\xbc\xa8\ \xe0\x28\x53\x25\xe8\x7d\x81\x9f\x97\x5b\xf3\xe6\xec\x3a\x6f\x95\ \xdb\x69\xb6\x3e\x67\x3e\x5a\x7b\x84\xe6\xf6\xac\xed\x19\xd7\x57\ \x68\x4f\xe8\x78\xd3\xd1\x63\x44\x2c\x59\xfb\xb8\xc0\x5a\xe5\x70\ \xcc\x09\x6d\x17\x94\xaa\x09\xa1\x1d\xd4\x13\xbd\xd1\xf3\x0b\xf5\ \xfa\xc9\xea\xf5\xc3\xb8\x49\x97\x74\xe9\x6f\x2b\x80\x4b\x91\xaa\ \x06\x2a\x3b\xdf\xdf\x1e\xdc\xb1\x7f\x94\x8d\xae\x27\x48\x3c\x56\ \xdf\x8c\xb3\xf8\x7a\xed\xa2\x7a\x81\x50\x12\xa4\xc4\x9b\xb1\xad\ \x51\x0b\xde\x3d\xfa\x47\x11\xd7\xbb\x22\xd5\x9b\x30\x10\xaa\xd1\ \xbb\xcc\x03\xaf\x42\xca\x29\xf6\x93\x8d\xc8\x5c\xa4\x97\x3a\x8f\ \x2b\xe4\x61\xde\x51\x1f\x0a\x4d\x34\x8a\xaf\x7c\x9a\xb3\x73\x10\ \xd3\x37\x6c\xd8\xef\xa6\x3f\xe3\x64\x02\x94\x0a\x53\x8c\xbb\x7a\ \xfd\x8d\x7a\xf3\x28\x4e\xf2\x45\x3a\xd1\x28\x34\x58\x06\xdf\xc4\ \x29\x7b\xf8\x19\xef\x29\xc6\x4c\x89\x60\xb4\xe1\x47\xc7\x84\x92\ \xcf\x04\xae\x11\xeb\x1b\x04\x81\x9b\x67\x4e\x49\xd1\x3f\x2a\x86\ \xb6\x90\x20\x65\x87\xd6\x52\xb0\x74\x1c\x86\x9e\x50\xbd\x71\x45\ \x0f\xa7\xc4\x4d\xe9\xe4\x0e\x7e\x1e\x10\xd2\x4b\xd8\xfd\xfd\xe3\ \x34\x9a\x30\xd9\xe1\x8f\xd3\x8e\xa0\x53\x1c\x2d\xea\xf5\x43\xa7\ \x44\x31\x9d\xcf\xd7\x4f\xec\x1f\x8d\xa8\x64\xae\x47\xe3\x40\x4b\ \x48\x8b\x2f\x35\x92\xf3\x2e\x5c\x3e\x0d\xc1\x89\x52\xc0\x4c\x4c\ \x32\xd9\x4e\xf0\xb4\x13\x9a\x67\xc4\x78\xf4\xe5\x8c\x98\x0e\xbe\ \x1c\xc1\x18\x91\x59\x78\xa4\x56\x06\xf7\xfd\xf5\x6c\xcc\x14\xa9\ \x00\x9c\xde\xcd\x88\x1d\x46\xb4\xa6\x81\xa6\x1a\x5a\xc1\x13\x79\ \x9c\x67\x9a\xbc\x56\x1b\x00\xc9\x26\x00\x2b\x44\xa9\x4f\x11\x93\ \x84\x88\x50\xa9\xc4\x72\x05\x3f\xb1\xc4\x3c\xdf\xd4\xc2\x2e\xb9\ \x63\x92\x39\x2a\xe2\xd4\x51\x26\xb6\x8a\xd6\x74\x45\x87\x20\x84\ \x2e\xf8\xcf\x84\xa5\x43\xa4\x27\x24\x20\x4c\x8a\xe6\x56\xf7\x8f\ \xb6\x15\xe3\x02\xd4\xa2\xba\xa8\x98\x62\x24\x4f\x7d\xb1\x29\x45\ \x89\x71\x7d\x8b\x80\x9e\x04\xcd\x0b\xe0\xf2\xba\x02\x9c\x0a\x15\ \x1e\xba\x1c\xe7\x71\x11\x3c\x4e\x5f\x71\x55\x6c\x76\x44\xeb\xdd\ \x22\x2d\xc3\x29\x0d\x31\x33\xc3\xdc\x95\xaa\x77\xf4\x47\x47\x46\ \xd4\xef\x67\x51\xb9\xf3\xb3\xa7\x61\xd2\x27\xb1\xd5\xef\xa8\x53\ \xba\xa4\xaf\x9c\x27\xb1\x14\xfe\x68\x36\x9f\x85\x22\x65\x92\x0c\ \x91\x08\x2c\x53\xc2\xcd\xf3\x3b\x9a\x06\x6d\xd9\x3f\xba\xec\xfb\ \xb1\x13\x0a\xa1\x42\x26\xf8\xa3\xe5\xaa\x58\x1a\x26\x23\x15\xfe\ \x68\x86\x4e\x6b\x2d\x61\x2b\x2c\xa1\x7f\xd4\xf9\xe9\x98\x64\x19\ \xfe\x45\x49\x12\xfa\xa3\x59\x3b\x5d\x40\x3d\x39\xb1\x28\x8b\x50\ \x43\x21\x57\x82\xfe\x51\x71\xd6\xb9\x19\x7d\xbc\x94\x1f\x5d\xea\ \xfe\xd1\x0b\xa8\xa7\x2a\xa8\xd7\xf1\xc7\x00\x14\xf5\x30\x59\xfb\ \x0c\xfe\xe1\xa3\xe0\xfa\xb8\xd8\x67\x8c\x37\x50\xc9\xfc\x28\xd1\ \x32\x59\xc0\x01\x3f\x89\xea\x49\x50\x32\xfd\x09\x3a\x8d\x8f\x1b\ \x27\xce\xdc\xb9\x09\xc5\xe3\xf3\xab\x1c\x06\x67\x18\xea\xb8\x79\ \xfa\x62\x67\xc3\x1a\x9e\x86\x56\xb2\x43\x46\x4a\xa5\x9f\x57\x3f\ \x5e\x6a\xe0\xba\x0e\x76\x67\x05\xdc\x3c\x22\x78\x63\x81\x5c\x08\ \x41\x45\xa5\xda\x34\xf4\x41\xc8\x4c\x05\x5a\x17\x6d\xe9\x98\x88\ \x64\x8e\xb2\xc9\xbf\x07\x47\x8d\x54\x6a\xa7\xc3\x12\xd6\x70\x16\ \x3e\x7e\xf1\x70\xa3\x2d\x87\x03\x79\x47\xcd\x86\x4e\xe1\x9b\x39\ \xba\xed\x0c\x15\x4b\x39\xd6\x50\x68\x7b\xf0\x14\x63\x42\x99\x4e\ \x68\x7c\xb1\x52\x62\xef\x74\x22\x8b\xbb\x8a\x52\x55\x6e\x30\xdd\ \xb0\x1b\x0c\x1d\xfa\xce\xd5\xd1\x0f\x4c\x93\x28\x06\xad\x31\x49\ \x36\x8f\x51\x9c\x5d\x94\x56\xd8\x50\x15\x16\xb1\xa3\xc7\x98\x09\ \x93\xf4\xac\xc0\xfd\x3c\x7d\x29\x51\x8e\x83\x77\x2a\x9d\xa3\xb6\ \xf4\x88\xa0\x1a\xfe\xa1\xbe\x2f\x39\xfa\x5f\xc1\x2a\xd8\xa0\xc5\ \x51\x93\x08\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x38\xb4\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\xa8\x00\x00\x01\x77\x08\x03\x00\x00\x00\x06\x8a\xf0\xc8\ \x00\x00\x02\xc1\x50\x4c\x54\x45\x7f\x00\x00\xa3\x6d\x93\xa4\x75\ \xa1\xae\x96\xd0\xbb\xb2\xec\xcb\x9d\xa4\xd7\xcd\xed\xbb\xbb\xfe\ \xcb\xcb\xfe\xd0\xce\xfe\xd2\xd2\xff\xc8\xc6\xfe\xc3\xc3\xfe\xdc\ \xdb\xfe\xc0\xbe\xfe\xb8\xb6\xfe\xd8\xd7\xff\xb3\xb3\xfe\xe2\xe2\ \xfe\xeb\xeb\xfe\xf3\xf3\xfe\xfc\xfb\xfe\xb0\xae\xfe\xf0\xef\xfd\ \xad\x80\xa3\xf9\xf7\xfb\xaa\x9b\xe0\xad\xac\xfe\xa4\x62\x7b\xbc\ \x7b\x7b\xbd\xb9\xf5\xbf\x80\x80\x91\x31\x3d\xa7\x50\x50\xa9\x53\ \x53\xca\xc4\xf2\x95\x2c\x2c\x96\x40\x53\xcc\x9b\x9b\xcf\xcb\xf7\ \xae\xa6\xf1\x9c\x53\x6d\xdc\xb9\xb9\xe0\xdf\xff\x9c\x5a\x7b\xb5\ \xb0\xf4\xee\xe0\xe1\xb7\x70\x70\x9e\x41\x42\xf5\xec\xec\xbb\x83\ \x8f\x8f\x20\x21\xbe\xb1\xe4\xd5\xac\xac\xce\xa0\xa1\xbe\xa8\xd3\ \xb2\x6c\x72\xd7\xb0\xb0\xdd\xc2\xc8\xed\xe3\xeb\xa9\x76\x99\x8b\ \x22\x2c\xb6\xa9\xe4\x9d\x6a\x98\x89\x13\x14\xb9\x73\x73\xb9\x76\ \x78\xb9\x9f\xcc\x9f\x68\x90\xa3\x81\xbb\xbc\xa2\xcb\xbc\xaa\xdb\ \x9c\x3a\x3a\xa6\x71\x94\xc1\xbb\xf3\xa6\x88\xc2\xc4\x91\x98\xc5\ \xba\xea\xc6\xba\xe5\xc6\xc0\xf4\x95\x4a\x69\xa8\x85\xb9\x96\x30\ \x31\xcb\xaa\xbd\xb5\x6c\x6c\xaa\x84\xb3\xcd\xa3\xaa\xb5\xa0\xd5\ \x8b\x1a\x1b\xd0\xa2\xa2\xac\x5a\x5b\xd1\xac\xb5\xac\x5e\x62\xac\ \x84\xad\xad\x64\x6d\x97\x56\x7d\x98\x33\x33\xb6\x99\xc4\xdf\xdb\ \xf7\x99\x46\x59\x9a\x3d\x44\xe4\xcd\xd1\xe6\xd0\xd2\xe8\xe6\xfb\ \xea\xd7\xd8\xaf\x60\x60\xec\xda\xdb\xb3\x92\xbb\xaf\x8a\xb5\x9b\ \x4a\x5c\xf1\xe3\xe3\xf3\xed\xf3\xb1\x63\x63\xb1\xa3\xe2\xf7\xf0\ \xf0\xf8\xf3\xf3\x8c\x26\x32\xb3\x89\xab\xba\xaf\xe8\x8d\x2c\x3b\ \xb6\x84\x9a\xac\x8a\xbb\xba\xb4\xf4\x89\x1a\x22\xa1\x50\x5c\xcb\ \xc1\xec\xd9\xb3\xb3\x85\x10\x13\x95\x43\x5c\xc1\x83\x83\xa3\x54\ \x61\xc2\xb4\xe2\xb0\x9e\xdb\x99\x43\x52\xb1\x86\xa9\xc7\xa8\xc0\ \xb1\x8b\xb3\xa3\x87\xc6\xb2\x9c\xd3\xa5\x4c\x4c\xa5\x68\x84\xb4\ \x73\x7c\xb4\xa1\xdb\xb4\xae\xf3\x9a\x4c\x62\x94\x45\x62\xa6\x8e\ \xce\xd5\xb8\xc5\xd6\xc1\xd5\xb6\x78\x83\xa6\x8f\xd1\xd8\xd3\xf5\ \xb6\x90\xb2\x9b\x57\x78\xd9\xc6\xda\xa7\x60\x70\xa7\x90\xd1\x9b\ \x64\x91\xdd\xcf\xe2\x8d\x30\x44\x8e\x38\x52\xe1\xc4\xc4\xb9\x8b\ \xa3\xe4\xcb\xcb\xa9\x8b\xc3\x8b\x27\x39\xe6\xe1\xf4\x9d\x60\x85\ \x90\x2e\x3b\xea\xe4\xf2\xbb\x9a\xbe\x90\x35\x49\x9f\x45\x4d\x96\ \x49\x64\xa1\x44\x44\xad\x90\xc7\xa1\x4d\x56\xae\x72\x86\x92\x34\ \x43\xa3\x6a\x8d\x91\x2c\x34\xc0\x86\x8a\x83\x0a\x0b\x9f\x52\x66\ \xbc\x93\xac\xc4\x8b\x8b\xc3\x9c\xb0\x89\x16\x1a\xcf\xc2\xe5\xe9\ \xd4\xd4\xb1\xa6\xe9\xb5\xab\xeb\xc9\x94\x94\xa1\x6e\x98\xae\x99\ \xd4\x9e\x58\x73\xd5\xbc\xcc\xbf\xa1\xc3\xae\xa9\xf5\x9b\x55\x73\ \xaf\x78\x92\xc1\xab\xd4\xc1\xb7\xec\x87\x19\x23\xb6\x9b\xcb\xa4\ \x72\x9d\xaa\x6c\x83\xb7\x7b\x87\xaa\x72\x8d\xc4\xa9\xc9\x92\x3d\ \x53\xaa\x98\xdc\xb1\x92\xc1\xc7\x91\x92\xa4\x7a\xab\xba\x95\xb5\ \xe8\xda\xe3\xba\x9c\xc3\xca\xb1\xcc\xba\xab\xe2\x94\x3b\x4c\x9a\ \x5c\x82\xae\x95\xcd\x95\x39\x46\xa2\x59\x6d\xcf\xbb\xd7\xb4\x85\ \xa1\x9d\x63\x8c\xbc\xa5\xd1\x99\x4f\x6d\xa6\x78\xa3\x91\x24\x24\ \x9f\x6f\xa1\x86\x14\x1a\x8e\x29\x35\x0d\x87\x2a\x70\x00\x00\x35\ \xae\x49\x44\x41\x54\x78\x5e\x84\x5d\x53\xb7\x2c\xcd\xb2\xed\xb7\ \x72\xb5\x17\xb6\x6d\x1b\x1f\x6d\xdb\xb6\x8d\x63\xdb\xb6\x6d\xeb\ \xda\xb6\x6d\xfd\x8a\x9b\x19\xe8\x59\x51\x51\x3d\x4e\x76\x65\x56\ \xed\x97\x3d\xe6\x08\x67\x44\x64\xae\x5e\x9e\x0f\x72\x8c\x2c\x4f\ \xc3\x1a\x66\x1a\x7f\xfc\xe8\x28\x75\x2d\x69\xca\xab\x2c\x4a\x19\ \x75\x9c\x35\x3d\x65\x12\x9e\x32\xb1\xa3\x1f\x9e\xb8\x0c\x87\xf2\ \xc4\xa5\x1f\x7e\x3a\x56\xc6\x67\x65\x7c\xe2\x57\x5c\x57\xf2\x58\ \x11\x66\x2f\x1f\x0c\xf2\x01\xd0\x66\x39\x43\x15\xb0\xad\x51\xd2\ \x14\xa8\x61\xa5\x59\x16\x0a\x97\x41\xd6\x34\x02\xb2\x32\xfe\x04\ \x70\xcd\x50\xfb\x01\x5d\x12\x27\x23\x0d\x33\xe0\xec\xf7\x81\x34\ \x0c\x8b\x52\xb1\xf6\x22\xc8\x30\x05\x69\x46\x33\x8d\x38\xe9\xc9\ \x2c\x45\x89\x8c\xf4\x13\x7a\x82\xa2\xb5\x3c\x34\x93\x00\x34\xac\ \x34\x4a\x4b\xd6\x00\x92\xa0\x0a\x41\xe9\xb1\x34\x25\xa2\x3a\xac\ \x3d\xa0\x04\x3d\x99\x98\x59\x78\xe2\xa2\x58\x2d\x60\xb0\xde\x30\ \x9f\xa9\x19\x49\x9b\xcc\xa8\x39\xa3\x28\x91\x53\x99\x1e\x66\xe0\ \x3b\x51\xb3\xcf\x28\x01\x95\xb8\x6f\x70\x46\xd6\xc7\x5f\x03\x69\ \x84\x45\x88\x09\x2d\x81\xcd\x0d\x44\x85\x09\x82\x02\x28\x43\x8d\ \x13\x1c\xa7\x85\xc9\x29\xbc\x0f\x0c\x27\xa2\x32\x5a\x82\x89\x21\ \x10\x15\x25\x28\xda\xa5\x4d\x59\x26\x8a\x94\x1b\x42\x42\x99\xf8\ \xc5\x98\x0b\x03\x53\xa5\x94\xe8\x19\x95\x0a\x5c\xe7\x49\x48\x03\ \x38\x61\xbf\xd1\x25\xd6\x23\x20\x35\x14\x8d\x9c\x07\xd4\x8c\x39\ \x4f\x22\xaa\x04\x4d\x31\x3c\x69\x0b\xa1\x6b\x0d\xc5\xa7\x51\x92\ \x74\xd6\x80\x09\x6d\x1a\x8a\x9c\x86\xc1\x7a\xaf\xac\x5f\xa9\x6f\ \x91\x55\xa8\x12\xc9\xa8\xa2\x04\xeb\x55\x4a\x9d\xe6\xab\x61\x4a\ \xe5\x4d\xb3\x28\x9a\xe6\x09\x14\x55\xa4\xa5\xa5\x68\x44\x09\xf3\ \x04\x5d\x02\x58\x50\x73\x08\xa4\xbd\x81\x72\x7e\x00\xd6\x8b\x0d\ \x0d\xdf\x2c\x02\x96\xff\x05\x01\x55\xde\x2b\xd0\x24\x4e\x5a\x09\ \x24\xc1\x34\x4a\xcf\x04\x15\x19\x4d\x48\x8d\xc4\x88\xb6\xb8\xcf\ \x60\xa1\xf6\x50\x26\x36\xa5\xe0\x7c\x2a\x4f\x06\xbe\x03\x27\xa3\ \xb4\x56\x14\x43\x84\x94\x91\xd2\x1b\x28\x85\xa2\x42\xcc\x7e\x18\ \xc0\x6a\xa1\x0e\x41\xce\x79\xca\xd4\x74\x49\xf2\x4a\xed\x00\xdb\ \xf9\xdb\x23\x65\xb5\x67\xe3\x54\x1b\xa2\xf6\x1b\xbc\x6f\xe0\xa4\ \x09\x0b\x4a\x53\xe1\x82\xf5\xa4\x49\x46\x99\x94\xa8\xaa\xf5\x59\ \x1b\x26\xa0\x1a\x82\x12\x32\x75\xa2\x35\x19\xfd\xba\x05\x53\x3c\ \x13\x53\x94\xb0\x0e\x3d\x4d\xa1\xf3\xde\x8e\x02\x66\x26\x1e\x29\ \x63\x55\x92\x91\x33\xd7\xc1\x76\x5e\x5a\x86\x34\x01\x41\xc5\x33\ \xb1\x0c\x60\xb0\x79\x02\x39\x69\xf6\x0d\xd3\xe1\x42\xe9\x31\x2e\ \x54\xb1\x66\xca\xfd\x68\x48\x19\x25\x78\xef\x6d\x13\x7f\x59\xa8\ \x49\xc9\x5a\x6f\xe1\xc1\xdc\xb3\x0b\x25\xa0\x82\xd5\x8e\xee\x98\ \x84\x29\xda\x22\xa9\x38\xfa\x8c\x45\x35\xf3\x40\x4b\xc3\x7a\xb8\ \x50\x98\x7d\x55\x26\xa2\x71\x0b\xab\x78\x51\xa5\x28\x3f\x0d\xae\ \xcb\x2b\x4c\xef\xeb\x19\x69\x98\x50\x7b\xfc\x2c\x44\x88\xa8\x13\ \x52\xe5\xbe\xb8\x4f\x60\x74\xae\x29\xda\x7b\xa6\xe7\xff\xec\x7a\ \x92\x11\x12\x56\x8b\x72\xd8\x2d\xa3\x83\xa6\x94\x66\x71\xcc\xf4\ \x29\x53\x65\x2a\xc2\x13\x66\x6a\xd4\x3d\x2d\x8c\x2a\x89\x01\x85\ \x32\x19\x17\x4a\x3f\x26\xe8\xee\x8f\xff\xda\x93\xe7\xf6\x7a\xdf\ \xce\x2d\xf3\x05\x2a\xd8\x0f\xd6\x2b\xe3\xc1\xfb\x8c\x46\xca\x30\ \xdb\xa3\x80\x6f\x22\xb0\x88\x47\x31\x94\xaa\x50\x7b\x8b\xb5\xbc\ \xf8\xcf\x7a\x3a\xee\x4d\x34\xd4\x53\x8b\x84\xe8\xd9\xc6\xa3\x4c\ \x4d\x80\xcd\x04\x6a\x9e\x6a\x00\x9d\xcd\x40\x16\xec\x95\x6c\x08\ \x65\x21\x26\x09\xcf\x40\x49\x82\x89\xc8\x49\xd6\x61\x79\x7a\xaf\ \x31\xce\xaa\x08\xa6\xa3\x28\x2d\x9e\xf5\xc6\xdd\xf3\x68\x00\x4c\ \xc1\x7b\xb0\x9e\x41\x42\x99\x12\x4c\x62\x3f\x13\xb4\x76\xf4\xfc\ \xa5\x9e\x19\xfb\x26\x00\x8a\x40\x94\x40\x3a\x17\x2a\x24\x85\x88\ \x0a\x5d\x49\x40\xad\xbd\x2f\x14\x29\x82\x92\x96\x2e\xa9\xb0\x12\ \xcb\x09\xa9\x25\xe9\xbb\x7a\x76\x5c\x35\x31\xa4\xd4\x37\x7d\xb6\ \x28\xda\x26\x28\x64\x34\xe2\xcc\x32\x13\x8f\x14\xd8\x2f\x15\x85\ \x0b\x9d\x19\xa4\x2e\x24\xa5\x71\x7d\xfd\x93\xa0\xaa\xe0\xbb\xe5\ \xe6\x1d\xf7\x5d\xf7\x44\xf8\x58\x3f\x85\x0f\x05\x48\xeb\xee\xd5\ \xe0\x0f\x80\x15\x5a\xaf\x76\x14\x34\x05\xeb\xc3\xa0\x57\x41\x70\ \x0d\xd8\x5a\x41\xd2\x9b\xc3\xd2\x2b\x7b\xbd\xbf\x2e\x25\x1e\xbd\ \x95\x60\xae\xdd\x3f\x19\xd4\xc1\xa6\x3e\xbc\xef\xac\xe5\x91\x41\ \x09\x62\x1a\x4f\x0f\xd6\x03\x65\x84\x19\x27\xe1\x44\xdc\x5c\x28\ \x52\x0e\xf4\x09\xab\xc0\x2c\x14\x25\xbb\x25\x25\x69\x52\x9f\x76\ \xce\xab\xbf\xd0\x5b\x47\x0c\x1e\x0b\xf7\x77\x11\xce\x49\x4e\x66\ \x34\xcc\x3c\x1f\x26\x80\x09\xa2\x7a\xcd\x37\x14\x65\xc6\xe7\x02\ \x94\x21\xd2\x9a\x41\x44\x05\xa8\x62\x65\xa0\x30\x4b\x60\xfe\xad\ \xff\xd0\xc3\xf8\x5c\xc9\x40\x6f\x27\x05\x7a\xd3\x95\x4b\x9f\xb8\ \xfd\x8a\xf7\x6c\xde\x7e\xfb\x39\xef\x4a\xa0\x4b\x82\x71\x6e\x50\ \x62\xed\xa8\x1a\xd2\x48\x4d\x11\xd3\xa6\x26\x15\xc2\x7a\x46\xe9\ \xa3\x3c\x41\x5a\xef\x8e\x30\x31\x0e\x8c\x12\x1a\x6a\x9a\x30\xbe\ \xb3\xdb\xda\x26\x15\x00\xa0\x5d\xa1\x14\xb5\x66\x54\x79\x4f\x2e\ \x29\x07\x39\x0b\x36\xa3\x08\xf2\x18\xa7\xb5\xa1\xb2\xd4\xf5\xf5\ \xbf\x6f\xe1\xec\x1d\x4b\x80\xdf\x73\xe3\x82\xd4\x9b\x51\x81\x68\ \xa3\x27\x63\x47\x33\x86\x29\xac\x6f\x3a\xd0\xac\xc8\xd8\x87\x96\ \x4d\x67\x5f\x20\x26\x49\xb0\xd4\xc9\x33\x0c\x62\xd3\x4d\x67\x1d\ \x78\x22\x7e\x5c\xb3\x38\x64\xde\xdf\xea\x91\x5e\x57\x8b\xda\x43\ \xe3\xbb\xf7\xf5\xb4\x17\xb1\x04\x4d\x89\xf5\x6a\xf4\xe3\x72\xfe\ \xd2\xdd\xab\xc2\x1b\x91\xbd\x4d\x40\x14\x8a\x96\x35\xea\x14\x42\ \xb0\x61\xc7\xf2\xa8\xaa\xd2\x57\xdc\xd3\x5b\xff\xd4\x38\x91\xb1\ \xfb\x63\x9b\x18\xdf\xd7\xbf\xb9\x61\x03\x7d\xdc\x30\x36\xd4\xd4\ \xe7\xe7\xed\xeb\xc3\x24\x9a\x6a\xd8\x1c\xbe\x5e\xb7\x74\x37\xdb\ \x66\x44\x51\xd8\x91\x14\x69\x7d\xf6\xad\x17\x7e\xe4\x94\x3b\xd7\ \xd4\x1a\x3a\x27\xf5\x77\x49\xb9\xa7\xa3\xa2\xa4\x2c\xce\xd6\xf1\ \x28\x41\xa6\x24\xad\x3e\xf9\x95\xf1\x78\x3c\x1a\xe5\x83\x94\x90\ \x4e\x4b\xe8\x3c\x76\x4c\x6e\x5f\xaf\x30\xa1\xf7\x6a\x47\x19\xea\ \xd2\xf3\xca\xa3\xc7\x4d\x9a\x4c\x74\xea\xfa\x5f\x57\x16\xbe\x20\ \x24\x0d\x14\x25\x9b\x74\x63\xf5\xd2\x69\x6f\xfd\xd6\x23\x4b\xa7\ \x2f\x5d\x79\x1a\x12\x4e\xc3\xb4\x0e\xb2\xca\x23\xd9\x1d\x71\x9e\ \x41\x40\x87\x76\xdf\xe4\x2c\xa9\x33\x4f\x44\x4f\x44\x4f\xf9\x87\ \x21\x4c\x37\x0f\x40\x4e\x11\xd5\xbf\x68\x0a\xdb\x6b\x67\xfc\xff\ \x54\x5b\x0e\x7f\x14\xa0\xf2\x78\x7d\xef\xd3\x4f\x6a\x7c\x7f\x2e\ \xbb\xfb\x69\xdd\x54\x79\x65\x3c\x4d\xc5\x29\xac\x77\x9e\x49\x47\ \x10\xcf\x03\x00\x72\xe6\x98\x14\xbf\x90\xa1\x30\x31\x76\xa4\xbc\ \xaf\xeb\x52\x99\x1f\xb3\xbb\xff\xe5\xf0\x79\xf0\xc7\xbb\x93\x7a\ \xf7\x8a\x25\x21\xc0\x9e\x45\xb7\xb1\x77\x76\x74\x5b\x60\xbd\x17\ \x51\x1e\x9a\xcd\x23\x08\xc7\xee\x09\xcb\x1d\x13\x42\xa9\x50\xb3\ \x17\x01\xe3\x8c\x33\xc8\xd2\xdc\xaf\x26\xff\x79\x8f\xf4\x8b\xa4\ \xf6\x2b\x9c\xd2\xff\xa5\x72\x7e\x61\xb8\x10\x96\xe6\x86\x19\x03\ \x5b\x11\xe5\xbb\xb8\x51\x80\xcd\x2e\xfa\xe9\x8e\x3d\x93\x31\x11\ \xf6\xa9\x8c\x02\x13\x1d\x82\x60\xd3\x96\xfd\xcb\xe3\xfb\xbf\x1d\ \x3f\x1f\x48\xc5\xe0\x27\x7f\x04\x24\x3f\xfc\x21\xbd\x5e\x93\x26\ \x09\x51\xd4\x8e\xe3\xd3\x1c\x04\x5d\x58\x20\x80\x08\xf3\x9c\xd6\ \x0f\x8c\x6f\x02\xce\x2c\x95\x38\xff\x4e\xfa\x4f\x2b\xa1\x28\xbd\ \xca\x55\x11\xc0\x4d\x27\xa6\xf7\xe7\x45\x50\xaa\x08\x60\x4b\x55\ \x27\xb2\xbf\x2b\xdf\x7f\xdd\x96\xe3\x3b\xee\x7b\xe8\xe4\x64\x72\ \xff\x0b\x1c\x79\xd2\xe6\xce\xc2\x7c\xdb\x63\xcb\x85\x31\xf7\x0b\ \x8c\xb3\x53\xeb\x01\x94\x68\x09\xa0\xc4\x7a\xc6\x99\x6e\x64\x21\ \x0d\x08\x31\xca\xa5\xd7\x1e\xd8\xbf\x1c\xc0\xff\xfd\x23\xdf\xdb\ \xbe\x8e\x50\x8f\x69\xb7\x9c\xd4\x75\x9c\x65\x51\x72\x94\xff\x1c\ \x61\x9a\x92\x6f\xfa\x55\xa0\x3c\xf5\x07\x27\x17\x2b\xda\x88\xd0\ \xf4\x32\x0a\xac\xc6\x85\x7a\x5d\xca\x1a\xa9\xf1\xcd\x64\x49\x49\ \x87\x18\x65\x78\xd2\xbc\xaa\x8a\xf2\x11\xb2\x9a\x6c\xbb\xa7\xb4\ \x07\x09\xcb\x69\xbb\x96\x02\x44\x42\x9c\xbc\xf3\xfb\x11\xd6\x13\ \x93\x80\x93\x2c\xd2\xa6\x03\x07\x5e\x73\xe6\x25\x41\xa0\x46\xa9\ \xc9\x94\x04\xf9\x5c\x30\x7b\x65\x1f\x3d\x59\x75\x02\xca\x38\x65\ \xbc\x9d\x84\x34\x67\x7d\x8f\x93\x23\xe7\x4b\x2f\x7c\x99\xa2\x54\ \x21\xad\xa3\xaf\xff\xdf\x5e\xef\x1d\x97\x53\x78\x7f\xed\xd7\x44\ \xb9\xc7\xa2\xf7\x47\xf7\x4f\xa2\x65\x2b\xc8\xaa\x82\xe7\xf2\x32\ \x32\xea\x5d\x28\xd0\x32\xeb\x81\x95\x06\x84\x14\x14\x25\x5b\x7a\ \xa8\x87\x21\x42\x4a\x16\xea\xbf\x08\xdb\xba\xed\x9b\x9f\x7f\x95\ \x10\xfb\xb3\xd3\x82\x92\x64\x7d\xb5\xfc\x92\xc7\x6f\xa6\xc6\x23\ \x45\x11\x3e\x03\xaf\xa7\x28\x74\x3f\x7b\x78\xf3\xc7\x08\xa9\xb2\ \x7e\xab\x58\x52\x72\xf1\x45\x41\xef\xf2\x39\x8d\x80\x6e\x5a\x7d\ \xe3\x89\x97\x91\x90\xf2\x56\xd9\x19\xd2\x5f\x59\x1e\x04\x94\x0c\ \x95\x3c\x53\xb3\xd4\x34\x33\x4f\xe1\x51\x19\x0d\xb3\x9d\xcd\x73\ \xe5\x86\x8d\xe7\x9d\xf7\xba\x57\xc4\xb0\x26\xe0\x45\xb2\xec\xbb\ \x6c\x49\x69\x6f\xaf\x14\x65\x10\x6b\xf7\x4c\x47\x55\x9e\xde\x4d\ \x42\xca\x99\xfc\xb7\x5a\x98\xff\x7d\xef\x34\xd7\xb4\x23\xe3\xec\ \x2b\x49\x59\x95\x84\xf5\x90\x51\x10\x14\xac\xb7\x35\xa6\x67\x37\ \x63\x87\xb8\x98\x21\xf7\x94\xad\x22\x77\x9f\xb1\xf3\xe4\x5d\x1e\ \xf9\x96\x3b\x1e\x9a\x0e\xca\x30\x2e\xfa\x1a\x51\x6e\xd5\x47\x4e\ \x8b\x44\x6d\x4a\xee\xfa\xe3\xcb\xe3\x72\x96\x72\x8e\xf5\x05\x7a\ \x09\xce\x26\x45\x45\x46\x5d\x8a\x0c\xac\x17\xac\xaf\xf8\x8e\x21\ \xc4\x9e\x1c\x42\x5a\x9c\xc7\x42\xca\x51\x49\xa0\xa8\x10\xf4\x86\ \x93\x8b\xe4\xe2\xcf\x3f\x75\xb6\x03\xfe\x50\x40\xfa\xbd\x68\x90\ \x2e\xd8\xb4\x69\xfd\x59\x47\xf6\x4f\xab\x82\x04\x13\x65\xc6\x21\ \x51\x94\xa0\xda\x4d\xa8\xca\xa8\x53\x7b\xeb\x42\x7f\xb3\x67\xc7\ \x8d\xa3\x14\xe1\x5e\xc9\x91\x3a\xe1\x64\xad\x27\x4d\x5a\x3d\xa5\ \x48\xea\x91\x1e\xc6\x89\x3c\x88\xe9\xd2\xea\x87\xa6\x55\x35\x0a\ \x32\x51\x24\x32\xa0\x45\xfa\x21\x39\x7c\x50\x54\xed\xfd\x42\x7b\ \x27\xba\x4d\x5c\x28\xf1\x5f\x70\x62\x3c\xb8\xd8\xc8\x3d\x64\x9b\ \x23\x9f\xd9\xb2\x84\xa1\xaa\xb4\x61\x5c\x96\x6b\x4e\x79\xa6\x87\ \x71\xc6\xe3\x15\x29\x54\x5a\xa0\x20\x46\x04\xc5\x40\x85\x11\x30\ \x69\x51\x5f\xbf\xd0\x99\x71\x96\x71\x54\xd3\x41\x47\x3e\xf3\x99\ \xeb\xde\x46\x5e\x6f\x39\xcd\x80\x94\x85\x94\x08\x4a\x23\x5d\xc3\ \xae\x7e\x73\x70\x4a\x18\x3f\xdb\xfb\xd0\xb4\xd0\xf2\x8d\x24\xa0\ \x0c\x46\xc9\x3b\x6a\x51\xcc\x72\xde\xc8\xa8\x37\xf8\x71\xe6\xd9\ \x41\x8a\x30\x6e\x9e\x2e\x8e\x06\x79\xba\xf5\xdb\x91\x7e\x53\x78\ \xa6\x22\x3b\x9b\x22\xb9\x8a\x71\x92\x8b\x8a\xd0\x31\x36\x1d\xe9\ \xdd\x74\xc9\x03\xd3\x71\x55\xa2\x20\x46\xe4\xac\x81\x92\x9f\x28\ \xa3\x02\x32\x7c\x01\x26\x3d\x5d\xbb\xa6\x6d\xdb\xb6\x21\x01\xf1\ \x55\x52\xe1\xa7\xa6\x03\xb1\xf5\xc1\xef\x7d\x6e\xda\xd8\xd3\x73\ \xc0\xb7\x3a\x5a\x52\x0d\xf5\x8c\xb9\xdf\xfb\xf4\xb8\x18\x57\x99\ \xd6\x42\xc9\xe1\xd7\x60\x3d\x8a\x0d\xc0\x0b\x7d\xc2\xb0\xe9\x07\ \x0c\xe4\xf0\xef\x26\x3d\x9f\xcc\x7c\xd3\xd6\x8f\x7e\x65\xc2\x45\ \x11\x45\xfa\xcf\x51\x1a\xc6\x61\x9f\xf7\xe8\xa9\xbd\x55\x59\xdc\ \xd4\x1d\x7a\xb9\xc2\x3c\x16\x54\xc7\x54\xee\x08\x64\x0d\xd6\x0b\ \x56\xd5\x76\x7d\x68\xf2\x40\x1c\xca\xd3\x85\x79\x62\x99\x28\x77\ \xb5\x3c\x68\x79\xd0\xb0\x08\x54\xe1\xf4\x6d\x9a\x52\xc8\x29\x30\ \x39\xef\xc0\x86\x6f\xde\xf2\x8e\xe3\x8f\x2f\x0e\x0a\x94\xc1\x6b\ \xa1\xa8\xe2\x04\x49\xd5\x81\x0a\x3a\x55\xa7\xbe\xef\x2b\xb0\x96\ \x14\x75\xa6\x01\xa9\xfc\x2b\x27\xad\x40\x4f\x02\xfd\xad\x11\xe7\ \xf9\xbb\x4c\x06\x76\x12\x60\xd2\x36\xbf\x1a\x55\x83\x54\x6b\xa1\ \xa6\x66\x9f\xc8\xaf\x49\x51\x29\xd9\xa3\xca\x0c\xc6\x23\xa5\x03\ \xb4\x7e\xbb\x4c\x40\xef\x1b\xe5\xb9\x21\x69\xf8\x2c\x22\x41\x0f\ \xf1\x8e\x19\xe3\x86\x07\x26\x05\x67\x1f\x52\x64\x73\xa4\x76\x23\ \x93\xb3\xa3\x80\xc9\x5e\x9e\x50\x8a\x32\xc1\x92\xa2\xd0\xe4\xd8\ \x8e\x4c\x09\x47\xce\x6f\x22\x9d\x1e\x35\x70\xe6\xf9\x65\xdb\x57\ \x5d\x1a\x53\x24\x87\xd8\xad\x62\xdc\x74\xe3\xf2\x24\x2f\x09\xa9\ \x1d\x35\xff\x98\xeb\xed\xec\x38\x94\x29\x60\x66\x4b\x0a\xbd\xb7\ \xbc\xf7\xfa\x34\xcb\xe1\xff\x02\x09\xde\x38\xe2\x53\xf9\xbc\x2c\ \xe6\x33\x76\x86\xcf\xed\x4d\x90\xb7\x6c\x79\x68\x3a\x1e\x65\x9c\ \x22\x61\xa4\x29\x83\x44\xfb\x03\x98\x0f\xc5\x27\x4d\x52\xd6\x53\ \xf4\x34\xa7\x0e\xae\x30\x69\xfa\x12\xe3\x20\x82\x38\xb8\xd8\x60\ \x3c\x1b\x9f\xa7\xf3\x22\xfb\xd1\x8c\x92\x01\xe4\x64\x94\xab\x25\ \x2d\xc9\xe5\x5b\x7a\x32\x41\xc5\xe2\x03\x25\xa9\x11\x94\xa9\xaf\ \xda\x9e\x98\x7a\x58\x78\x80\xd5\x87\x79\x5c\x07\x7f\x81\xd3\x83\ \xba\x19\xf9\x5b\x46\xb7\x69\x9a\xa7\xe9\x65\x31\x16\x3a\x76\xe4\ \x6f\x26\x8b\xa3\x9c\x73\x10\x0a\xd3\xd7\xc0\x13\xc9\x3a\x93\x75\ \x72\xc6\x89\x78\xcf\x5c\x77\xca\x24\x30\xc5\x46\x79\x3b\xaa\xa1\ \xe8\x46\xde\x16\xfe\xdd\xd6\x2c\xbb\xec\xab\x6f\x3f\x28\x5b\xdd\ \x13\xd3\x28\x04\x97\x7e\xf4\xe4\x64\x1c\x41\xc6\x78\x19\x4e\x94\ \xb8\x6f\x68\x8a\x7c\xb3\x58\x28\x57\x66\x12\x3b\xaf\x20\x55\x99\ \x7c\x7e\xb4\xbb\x41\x2b\x8e\x55\xaa\xd0\xcd\xf8\x69\x9a\x77\x55\ \x45\xc0\x7b\xc9\x94\xa2\xc6\x44\x5f\xa4\x48\x4a\xd1\x12\x7e\x09\ \x7e\x34\x82\x12\x21\xb0\xb5\x50\x48\x29\x70\xc2\x33\xd1\xb3\x55\ \xdc\x0c\xc6\xbe\xe0\x6e\x2c\x4a\x49\x8f\x96\x02\x92\x16\x85\xa9\ \x6f\x26\x67\x84\x0c\x9c\x02\x55\xab\xcb\xfa\xb3\xd4\x04\x5c\x6b\ \xf2\x7d\xf9\xe6\x63\x36\x15\x7c\x78\x3a\x96\xbd\xbd\x1d\xa5\x08\ \xa9\xc1\x89\xa2\x98\x56\x97\x5b\xb5\x70\x54\x42\x15\x25\x87\x51\ \xc6\x8c\x1a\x11\x05\x50\x57\x15\xf9\xec\x55\x8a\xf2\x8e\x9f\xec\ \x99\x8e\x07\x06\x64\x64\x32\xd9\x77\x12\x55\x61\xbe\x11\x50\xc6\ \x19\x16\xfd\x91\xe6\x0b\xeb\x51\x06\x67\x9a\xd2\xe2\xcd\x13\x83\ \xec\xd4\x7a\xd3\x57\xf0\x1b\x97\x5c\x73\xcd\xde\x9f\xec\x08\xd9\ \xa4\x4a\x7d\x7d\x06\xa4\xba\x0a\x4a\xb1\xa3\xbe\x6e\xc7\xe0\x4a\ \x9a\x2d\xbd\x47\x13\x21\x33\xde\x34\x11\x82\xac\x1d\x76\x14\xf9\ \x51\x0e\x9c\x06\xd5\xce\xaa\x6a\xc6\x24\x88\xa0\xd0\xeb\x48\x20\ \x1d\x45\x59\x99\x6a\x53\x10\xb7\x6d\x1a\xca\x7a\x6f\x9e\xe0\x98\ \x1c\xdb\x91\x1f\x35\x05\x46\x7a\x78\x47\x6f\x4a\x62\xbe\x89\x2c\ \x4c\x6f\xee\x23\x3d\xc1\x77\x5a\x7c\xdc\xcc\x93\x17\x87\x13\x24\ \x9d\x93\x76\x74\x39\xe7\x0c\x45\x5b\xa8\x91\xab\xd7\x03\xac\x36\ \xe3\x99\x1f\xc0\x02\x2d\x07\x25\x02\xd2\x82\x85\x1d\x85\xf2\xaf\ \xe0\x7a\xbd\x2b\x34\x69\x2a\x8f\xcb\x37\x60\x3c\x06\x68\x4a\xb0\ \x0d\xf3\x99\xf7\xec\x41\xc1\x7a\xd8\x27\x8d\x9e\x34\xd4\x03\x4e\ \xdb\xab\xd1\x59\x15\x19\x18\x9c\x0c\x35\x7c\x13\x46\xcf\xf8\x30\ \xc1\xfb\xc6\xa8\xf5\x45\xe1\xc8\x1c\xd6\xf7\x35\x7a\x02\x40\xe3\ \x40\x81\xd3\x67\x9c\x6d\x0d\x5c\xa1\x6a\x37\xae\xd7\x79\x74\xe5\ \xa6\x62\x49\xd1\xec\xc6\x32\x2a\x54\x05\x41\x4b\xeb\x42\x79\x12\ \x71\x15\x30\x94\xde\xb5\x11\x8a\x32\x71\x44\x02\xb4\xb3\xf2\xa2\ \xd6\xec\xad\x29\xd5\x89\x56\x22\x29\xdc\x83\xaa\xc9\xcc\xd9\x83\ \xa8\x44\xc5\x30\x89\xfd\x8a\x14\x86\xc9\x08\xa9\x4e\x57\x5d\x36\ \x20\x69\x65\xd6\x13\x50\xb5\xa4\xa0\x66\x9c\x8e\xf5\xd0\xfa\xe8\ \xf0\xd1\x44\xe8\x34\x09\xec\xc7\x9e\x29\x31\x30\x31\x7d\x02\xc2\ \xb2\x5f\x0b\x62\xda\xe7\xec\x6d\x13\xd4\xdf\x1b\xa8\x08\x13\x7d\ \x4f\x3c\x1d\xd4\xe1\xec\x65\x38\x6f\x18\xef\xf2\xa3\xcc\x78\xf8\ \xa6\x94\x58\xaf\xed\x59\xb0\x50\xa8\x85\x81\xa2\xbc\x00\x28\xfc\ \x7c\x6d\x8c\x93\xb3\xf8\x0a\x31\xf1\x3a\xef\xeb\xf5\x68\x79\x33\ \xea\xc4\x2f\x6d\xcc\x14\x94\x76\x28\x5c\x87\xb5\xe6\x45\x03\x13\ \x4f\xcd\x3e\xda\x1d\x81\xd2\x6f\x44\xf4\xab\xb3\xd8\xe0\x1b\xde\ \xe2\xc8\x2d\x4e\x70\x5d\x80\x5a\x9c\xe8\x29\x89\x8f\xa5\xe7\xb0\ \x0f\xd6\x4b\x82\x84\x16\x97\x86\x50\x80\x06\x2b\x32\xce\x68\x22\ \x94\x27\x95\xaa\xad\x89\x4a\x4a\x7e\x19\xd6\x17\x66\xbb\x2c\xbd\ \x4f\x08\x49\xbc\x17\xa5\x1f\x7d\x1a\xeb\x84\xbe\x17\xb7\xaf\x67\ \xcf\xe4\xdb\xdb\x09\x67\x06\x19\x05\x2d\xad\xa4\x3a\xbe\x87\x07\ \xca\x94\x04\xe4\x5d\xee\x93\x1f\x24\xc5\x13\x63\xee\x8d\x15\xb5\ \xad\x1a\xae\xdb\x91\xbb\xc5\x33\x18\x7c\xab\xf7\x82\x4f\xdf\xfc\ \x82\xd6\xab\x79\xf2\x32\x0a\xb4\xba\x57\xa6\x6f\x2f\xa8\x70\xf9\ \x36\x1e\xb5\x03\xfd\xcd\x99\x97\x51\x90\x35\x55\x74\xa9\xd1\xa3\ \x1a\xa6\x49\x56\x6b\x99\xb0\x9f\x77\x18\xfd\xbe\xde\xfb\xfa\x2e\ \xb4\x71\x69\xf9\x50\xeb\xe8\x49\x54\x5d\x96\xc4\x91\xd4\xb5\x0e\ \xc3\x86\xd2\x62\x15\xc9\x1f\x6c\x98\xaf\x4c\xaa\xf8\xa0\xa8\x0b\ \x4a\x8a\xb8\xfa\x6e\x4c\x75\xa1\x82\x12\x40\xed\x90\xe8\x09\x35\ \x26\x40\xed\x6e\x78\x5b\xd1\xdd\x3f\x4a\x20\x55\xf3\xa1\xf5\x08\ \x4c\x0a\xae\xde\xd0\xce\xd9\x84\xf8\x89\xb2\x1e\xb3\x9d\x77\x62\ \x96\x73\x61\x84\xd4\x3e\x71\xbe\xc9\x24\x9b\x87\x36\x35\xee\xb8\ \xce\xab\xb7\xf6\x08\x99\x71\x5a\x20\xc5\xae\x5e\x95\x49\xe3\x51\ \xc8\xa9\xed\xc3\xc7\x61\x26\x43\x4d\x79\xe4\xe5\x73\x4f\xf2\x44\ \x68\x99\x60\xcd\x54\xa7\x28\x84\x76\x68\x5b\x6d\xce\x18\x6a\x43\ \x6b\x5a\x15\x6c\x9c\x84\x11\x38\x01\xd6\x0c\xa3\x46\x78\x7b\x8a\ \xa6\xba\x46\xe9\x54\x19\x05\x54\xf6\x45\xea\x3b\xfd\x56\x84\x57\ \x06\x5b\xf3\x0b\xc3\x22\xf5\x81\x33\x76\xa1\xde\xdb\xfb\xde\x3c\ \x36\x4c\xcd\x63\x6c\x99\xe1\x3a\x3e\xbd\xa7\x07\x4a\xa4\x49\x8c\ \x98\x82\x9a\x32\x05\x2d\x6c\x3e\x0c\x3e\x2d\x7e\x5f\xef\x3c\x13\ \xc3\xf5\x5b\x50\x21\xa8\x85\xe9\x73\x3a\x25\xa4\xd3\xf8\x7b\x17\ \xe5\x81\xb0\x4e\xef\xbd\x79\x32\x7d\x4f\x30\xa2\x19\x93\x15\xbc\ \x77\xa7\x9a\x64\x5a\xf9\x04\xf3\x91\xd7\x61\x90\x16\x2e\x60\x26\ \xde\x27\xe9\xea\xca\x37\xc6\x8e\x52\xef\xa0\xc0\xc5\xe0\x04\x59\ \x31\xe3\xba\x4c\x4b\x57\x44\xf7\x6e\x6f\x87\xed\x08\x40\x5a\xdb\ \x04\xc5\x9f\xd7\x01\xe1\x07\xe1\xe4\x98\xc4\xb0\xbf\x40\xa0\xd7\ \x86\x09\xe1\xa4\xc5\x9f\x6d\xe8\xc3\xd3\xeb\x6a\xa0\x76\x07\x25\ \xa0\x68\x65\xa5\x54\x39\x8f\xc0\x99\x61\x02\x69\x89\xc0\xd9\x31\ \x5e\xd9\x5e\x93\x7d\x42\x58\x0a\xa2\xca\xe2\x72\x25\x40\xab\x7c\ \x6f\x6b\x7d\x6b\x08\x4a\x9c\xc0\x70\x91\x93\x22\x2d\x60\x9c\x7c\ \xea\xb1\x4c\x40\x52\x83\x12\x91\x13\x62\xd1\x44\x20\xfa\x5a\x18\ \xa0\xba\xb6\x4c\x06\xca\x10\xad\x6f\x2a\x79\x16\x66\x17\x2a\xae\ \x09\x3e\x54\xa5\x14\xd9\x92\x76\x80\x07\x39\xb5\x81\xb3\x8f\x97\ \x3b\x3d\x13\xcc\x3d\xbf\x52\xdd\x88\xba\x5c\x49\x81\x93\x0d\xc6\ \xd5\x1b\x51\x85\x57\x72\x4a\x4f\xe0\xd0\xa7\xd1\xd2\xa6\xb9\x40\ \x2b\xbb\x5b\x96\xed\x27\x0c\x7e\x6e\xad\x28\x07\x25\x90\x53\xd4\ \x99\x12\x5e\x98\xe3\x3c\xbb\xe3\xe6\x59\xc1\xa1\xa5\xf8\x5e\x34\ \x7d\x7e\x94\x16\x2f\xa7\x80\x69\xad\xe8\xbc\x13\x2d\x00\x8b\x30\ \xaf\x34\xd1\x93\x2a\x13\x60\x7a\x5d\x72\xe2\x49\xb3\x57\x0d\x2c\ \xcc\x54\x81\x32\x3d\x69\x31\x32\x8a\x04\xa9\x1b\x7c\x88\x8d\xb0\ \x39\x9c\xf0\xf3\xb6\x58\xef\x8f\xaf\xce\x73\xa1\x79\x05\x21\x85\ \xb7\x87\xbd\xf7\x81\x33\xa6\x09\x9f\x6a\x9a\x20\xab\x97\x53\x8d\ \xef\xb1\x5b\x02\x5d\x11\xe1\xe1\xa0\xb5\x09\x9c\x09\xa7\x0f\x47\ \x89\x90\x58\xad\x29\xb5\xb9\xd1\xd4\xee\x43\x15\x62\x39\x67\x63\ \x87\xd0\x49\x00\xfb\x5a\x83\x37\x53\x28\xda\x02\xa7\xe1\x7f\x66\ \x37\xa2\x88\x43\xc3\x37\x12\x79\xc0\x89\x5d\xa8\xb8\x7a\x53\x6c\ \xe8\x13\xf3\x01\x18\x3a\x6f\x63\x92\xee\x3e\xfc\xca\xf0\x3d\x15\ \x8c\x10\x53\x9f\x23\x73\x1b\x7b\x79\xd5\xb0\xf8\x9a\xd2\x49\xb0\ \xf6\x85\xf9\xb6\x5e\x6f\x30\x9a\xca\x9d\xa7\xa8\x69\x76\x84\x2a\ \xe9\x23\x0b\x52\xb9\xcd\x9f\x19\x30\xa0\x51\xa9\xcc\xe6\x1e\x15\ \x31\x5f\xaf\x4f\x3a\x14\xaa\x33\xf7\x34\xb0\x28\xf1\x9b\x01\x06\ \x54\xd5\xfc\x19\x4a\x9f\x7e\x12\x5f\xef\x6c\xa8\x60\xb5\xf5\x7a\ \x07\x53\xa0\x82\x9c\xd0\x7a\x2b\xa2\x78\x29\x35\x37\x86\xfa\xf8\ \xaa\x5c\x83\x7b\x73\x30\xd4\x2a\xbd\xf8\x78\xe3\x9c\x4a\x13\x3b\ \x71\xab\x86\xad\xd7\xeb\xb2\xd2\xe2\x0c\x6f\x77\xd2\x16\xa3\x83\ \xf7\xe9\xc6\x2f\xd3\xc1\x13\xb0\x9f\x51\xf2\x2c\xe0\x99\x8c\x88\ \xaa\x69\xd2\xa9\x58\x35\xed\x88\x82\x18\xc2\x67\xa8\x92\x77\xf9\ \x62\x9e\x2a\x30\x1f\x8c\x17\xb4\x5b\x37\x73\x39\x7c\xdc\x14\x52\ \x41\x29\xd3\x46\xa4\xc6\x3d\x41\xe5\xe7\xd5\xeb\xbd\xd6\xbb\x1a\ \x23\x7c\x3d\xf4\x09\x04\x55\xaa\x1e\xe5\x12\xee\x63\xa3\x66\x36\ \x0f\xfe\x93\x26\x06\xec\xa8\x2c\xf4\xc0\xd8\xbb\x7a\xbd\x7e\x43\ \x8f\x90\x18\xf7\xad\xc3\xde\x85\xc2\xd1\xaf\xa2\x8e\xe1\xe5\x09\ \xf6\xa2\x4e\x4a\x4d\x1c\x0a\x3b\x2a\x4f\x93\xf5\x7d\x5f\xaf\xc7\ \x00\x54\xb0\xde\x36\x68\xf9\x34\x09\x9c\x68\x1a\x3b\x4b\xae\x5a\ \x1e\x29\x4c\x94\xeb\x95\xb0\x96\x9a\xb0\xa3\x8a\xd6\x0c\x5f\xaf\ \x87\x4a\x81\xef\xfa\xb6\x5a\x2f\x45\x11\xbb\x15\x81\xce\xc7\x5e\ \x83\x83\x13\x77\x63\x41\x51\xc0\xe2\x5b\xb4\x33\x3b\xaa\x7a\x54\ \xfa\xf3\xf5\x88\x9f\x00\xd2\x15\x1a\x7c\xd1\xd6\x88\xa7\x2e\x02\ \x75\x2b\xf5\xee\x3c\x96\x2b\x44\x28\x94\x4d\x8f\x5a\x01\x80\x6c\ \xaa\x36\x01\x6b\xbb\x5e\xef\x93\x8e\x0c\xd5\xda\x52\x5f\x15\x01\ \xeb\x19\xe9\xef\x92\x71\xaa\x2c\xeb\x51\x5f\x2e\x9c\x8c\xf2\x5b\ \x9f\xba\xfb\x7c\x3d\xcc\x93\x13\x52\xa0\xf5\x9e\xc9\xe0\x6c\x7b\ \x7a\x3a\x3d\x31\x46\xf3\x8b\xb4\x8e\x42\x46\x7d\xcc\xac\x3f\x7d\ \xe9\x30\x81\xb3\xa2\xf5\x5e\x49\x81\x9a\xcc\x38\xf6\x4c\x6d\xa4\ \x02\x35\x7f\x77\x6c\xa3\x9f\x36\x1b\x75\x78\xf8\x44\x1e\x10\x9b\ \x94\x8e\x2b\x36\xb5\xc2\xe6\xc4\xd9\xd0\xee\x4e\x32\x5b\xb2\x85\ \x69\xd2\x68\xf4\x14\x11\x52\x82\x08\x9c\x85\xfa\x28\x0b\x18\xa7\ \xab\xe3\x8b\xbf\x91\x26\xd1\x0f\xd4\xeb\x15\xa7\x05\xeb\xec\xa8\ \xdf\x33\xf9\xf8\xf9\x28\x9f\xf3\x4b\xcd\x29\x56\xdf\x9e\x93\xb2\ \xb3\x47\x4b\x11\x74\xde\xd7\x43\x50\xaf\x57\xbd\x07\xeb\xe7\x1f\ \xb7\xf4\xca\x84\x6b\x3f\xf2\xad\x69\x46\x5d\xad\xe3\x8c\x71\x42\ \x4c\x39\x90\x2a\x3a\x7a\x9e\x12\x6c\x46\x6b\x7f\xf3\x0b\xaa\xe0\ \x1a\x45\x81\x98\x4d\x29\xed\xcc\x38\x2b\xf3\x53\x03\x97\x99\x9f\ \xfd\x5f\x6c\xb6\x9f\x10\xc2\xd4\xb0\x5e\xea\xf5\x5e\x52\xa5\xa3\ \x40\x45\xc0\x2a\xfe\x90\xa6\xb6\x64\x3a\xd6\x03\x9f\x0f\x4a\x8c\ \xb1\x87\x19\x15\xda\xd2\xc9\x8b\x07\xa7\x50\xa5\xd4\x68\xbd\xf3\ \xf5\x4c\x4a\x7e\x9b\xce\x76\xc8\x69\xbf\xa1\xee\x5c\x1d\x01\x4a\ \xb4\x3c\x7a\x3b\xea\x92\xe3\x30\xa3\xf9\xe5\x7c\x26\xf2\xf0\x22\ \x36\x76\x50\xa6\x00\x95\x24\xc0\xb4\x91\x41\x04\x5c\x46\x47\xcd\ \x28\x32\xb9\x3e\x6a\x06\xeb\x8d\x07\xa5\xed\x32\x50\xfa\xfb\x89\ \x8e\xca\x59\x0c\x75\xf6\x50\x78\x28\x7b\x6a\x23\x67\x95\x50\x18\ \x51\xb7\xb7\x77\xbe\xde\x27\x72\x7d\xff\x68\xd5\xd0\xfa\xd4\x15\ \x1c\xbe\xaa\x3d\xe2\x83\x34\x85\xc6\x23\x5f\x42\x20\x4d\xe0\x0c\ \x88\xde\xdd\x0f\x55\x93\x6c\xae\x84\x96\x95\x4e\x4c\xb1\x20\x1e\ \xad\x2c\xeb\x61\x47\x53\x39\xcf\xff\xaa\x09\xb4\xbe\x48\x29\x7a\ \x72\x22\x0a\xad\x47\xd5\x0e\x2e\x14\x04\x35\xe6\xb3\xef\xe2\x7b\ \x20\xf5\xc5\x06\xe7\x42\x53\x28\xd3\x2f\xdc\xbc\x97\x0e\x32\x0d\ \x44\xeb\xc9\x34\xa5\x85\xb4\x91\x5a\xde\x9b\xbd\x28\x40\x22\x24\ \x21\xa4\x90\x50\xef\xeb\x51\x17\x69\x83\x85\x8c\x0e\x5c\x86\x8c\ \x66\x96\x6d\x14\x77\xcf\x8c\xe7\x08\xaf\x19\xe5\xa5\xa6\xb1\x00\ \xed\x83\xbc\xd2\x34\x46\x94\xe5\x13\xf5\x7a\x97\x26\x01\x46\x13\ \x38\x07\xde\xd3\xec\xa8\x2e\x0b\xde\x37\x50\x53\x36\xeb\x92\x20\ \x55\x8d\xc2\x40\xec\x6c\xfc\xbc\xa3\x28\x2a\x4c\x88\xa0\xbd\x42\ \x79\xc5\xef\x59\x80\x88\x98\x91\xc7\xcb\xfe\x84\x8f\xb5\x89\xd6\ \x4b\x69\x59\xf5\x08\x68\x6b\xa3\x51\xdd\xf7\x3d\x59\x5f\x6a\x82\ \x7b\x73\x08\x83\x5e\x6e\x73\xd7\x41\x53\x64\xf3\x32\x71\xf7\x47\ \xaa\x54\x98\xcf\xda\xd4\x11\xdc\xd7\xa8\x81\x32\x4c\x9f\xcb\xe3\ \x60\xc4\x86\x79\xbe\x6c\xdb\x7d\x65\xa2\x2b\x88\x65\xd4\xa7\xa1\ \x89\xfc\x0c\x31\x29\xc1\x94\x5a\x53\xe7\x26\x34\x61\x8a\x92\xeb\ \x94\xc9\x87\x06\x90\x17\x23\xa0\x8a\x54\x13\x26\x18\xf3\x4f\x8b\ \xf4\xda\x7d\x64\xa9\x1c\x0a\xd6\xd6\xac\x38\x1f\x8d\x31\x29\x1b\ \x28\x34\xe7\xf1\xbb\xb0\x4a\xaf\x31\x09\xa7\x74\xf4\xe4\x8d\xbd\ \x4c\x09\x38\x09\xa9\x93\x4e\xab\x4f\xbe\xba\xec\xbb\x4a\x22\x55\ \x09\xea\x29\x10\x52\x51\x77\x5a\x0d\x45\x7d\x17\x21\x2f\x35\x3d\ \x2e\xca\xc7\xdd\x9e\x3f\x37\x1e\x85\x1d\x95\x27\x45\x2d\x14\x11\ \x3e\x01\x25\x21\x5d\xff\xa6\x43\x24\x9e\xa6\x74\x8b\x74\x6e\x22\ \x13\x45\x31\xbf\xc1\x23\x6c\x66\x25\xc6\x03\xa1\x8b\x47\x3d\x45\ \xad\x12\xc1\x96\x32\x52\x3d\x4d\xf9\x21\xa9\xdc\x35\xda\x88\x5c\ \xed\xce\x10\x14\x22\x6a\xb7\x4c\x48\x96\x00\x28\xaf\x2e\x1e\x45\ \x83\x56\x77\x87\x0e\x4f\x69\x7e\x79\xa3\x00\xbd\x6d\x14\x94\xc9\ \xd2\xb3\x9c\x53\xb0\xef\xa2\x28\x94\xca\x44\x24\xa6\x82\x03\x7c\ \x00\x69\x1b\xb4\xa0\xf6\x30\xf6\xaa\x51\x7a\xb0\x72\xf5\x04\xc5\ \x30\x6f\x9e\x92\x04\x38\xf9\xa3\x2d\xa1\x0c\x0a\xde\xc9\x27\xf0\ \x5d\x3c\x3a\xaf\x5e\xcf\x4c\xf7\x1d\x10\xff\x16\xcf\x3c\xec\xdb\ \x33\x2e\xb4\xd8\x10\xde\x04\xd5\x53\x15\x22\x0a\x9d\xf7\xea\xa4\ \x67\xeb\xbd\x71\xf2\xf1\x28\x6e\xd0\xf2\xd9\xbc\xf8\x12\xdd\x17\ \xb0\xff\x7a\xe2\xbe\xc9\x38\x2b\x1a\x09\x7c\xa3\x4c\x2d\x5d\x42\ \xfc\xe4\xa2\x7c\x98\xa7\x2e\xcd\xf7\xf1\x28\x28\xda\x1d\x39\xbb\ \xb6\x27\x71\xf5\xf3\x65\x14\x05\x46\x5d\x69\x76\x75\x11\xce\x2d\ \x88\xcd\x8f\x47\x73\x9b\x24\x4b\x79\xb5\x5a\x8f\x41\x04\x85\x81\ \xf2\xaa\x64\x3c\x3d\x6f\xef\xc0\xfd\x21\xd2\x63\x50\x7b\x9f\x27\ \xf1\xe4\x5c\x21\x11\xbe\xdf\xd0\xe3\x2e\x1d\x53\x06\x67\x8a\xa2\ \x5e\xef\x7b\x89\xd0\x55\x22\x37\x0e\x03\x25\x16\x93\xc9\xe3\xcf\ \x9f\x1f\x8f\x56\xad\xb3\x22\xec\xde\x19\xaf\xf8\xfa\xcc\x92\x14\ \x62\x5a\xd2\x3f\xac\xaf\xa7\xc9\x42\x0a\x82\xf2\x00\xcb\x91\x23\ \xa3\xb0\xcf\x5f\xf7\xe4\xc2\x51\xc9\x94\x54\xd6\x3c\x19\xbe\x9b\ \x7e\x5c\x8a\xf2\x05\xa9\xab\x82\xab\x07\xc5\xa1\x16\x1c\x08\xae\ \x51\xaf\xf7\xbe\xde\xb0\x7f\x7e\x3c\xea\x7b\x4a\xe0\xef\x6d\x0b\ \x21\x6a\xf5\xb6\x5e\x6f\xbb\x20\xa0\x4e\xa5\x3f\x66\xad\x12\x0a\ \xe6\xfb\x02\x23\xae\x4b\xf5\x09\x08\xb7\xfd\x24\xe9\x0c\xd3\x75\ \xe2\xf3\x52\xb8\xbe\x3c\xc8\xa7\x46\x4f\xa2\xf5\xf3\xce\xd7\x1b\ \x5f\xef\xfb\xf0\x01\xd2\x1a\x7c\x0c\xa8\xbc\x70\xbf\x68\x5f\x97\ \x09\x19\xa5\xd5\x94\xc1\x21\x9d\xb8\xdf\xd1\x07\x4e\xfa\x78\xee\ \x83\xf7\x18\xae\xc7\x19\x03\x38\xa1\xf5\x2c\x9f\xa6\x5e\x5f\xf2\ \xe2\x8f\x36\x98\x0c\xa9\x73\xf5\x4a\xd5\x46\x82\x5c\x41\x02\x63\ \x2b\x93\xcb\x05\xb1\xbc\x4d\x50\x6c\xee\xe4\x4a\x9d\x22\x33\xf7\ \x7a\x02\x61\xd1\x2a\xd7\x1b\x6f\xef\x60\x12\xb3\x91\x23\x0d\x08\ \x69\xb1\x66\xc9\xd7\x99\x7c\x75\x19\x9a\xc4\x0b\x43\xe4\x29\x8f\ \xb2\x5e\x2a\x77\xae\x57\xc3\xd5\xeb\x25\xd2\xc3\xd0\x3e\x6c\x36\ \x4e\xf1\xed\x38\xff\xc1\xd3\xaf\xb0\x06\x0a\xf5\x7a\x0c\x25\x24\ \x7d\xc4\x2f\x08\x29\x8b\xa8\xd6\x99\x8c\xd6\xab\x12\xb9\x7a\x7d\ \xc0\x6d\xf8\x8e\x32\xb8\x37\x50\x42\xce\x4f\xd3\x65\x27\x65\xd7\ \x35\xf3\xe1\xb1\x15\xb1\x2c\x6b\xb5\x12\x21\x8d\xab\x75\x26\x5f\ \x0f\xa3\xc5\xd5\xeb\xad\x74\x9a\xd4\x38\x28\xab\xb4\xa4\x37\x5d\ \xb7\xf8\x83\xdc\xd0\xd4\xd6\xeb\x81\x15\xdd\x59\x7a\x9c\xa9\xc8\ \x54\xe9\x71\x62\xc4\xf6\x95\xf0\x9d\x54\x73\xeb\xf5\xc0\x8b\xd4\ \xb8\xc2\xb4\x29\xb2\x2b\x22\xd0\x6f\xde\xa5\xfa\xb4\xc2\x9b\x27\ \x98\x52\x65\x3d\x88\x9a\x05\x94\x71\xe2\x46\xf4\xce\xb6\xcc\xba\ \x95\x22\x87\x84\x22\x26\x51\x8a\x12\x68\x6f\xf0\xf9\x3a\xbd\x0b\ \xc6\x1d\xbe\xde\x3a\x26\x46\x8a\x03\x8c\xe4\xef\x35\x35\xae\x51\ \xb3\xf6\xe1\x03\x66\x82\xb7\xf8\xfb\xda\x79\x26\x01\xaa\x77\xcc\ \xf3\xe3\x62\xbd\x15\xbd\x63\xc7\xf7\x8f\xef\x72\x7d\x4f\x83\xf9\ \xfd\x8e\xb8\x7e\x14\xca\xc4\x24\x45\x1f\xbe\xad\x82\xf2\xca\xb9\ \x71\xa7\xef\xa8\x86\x09\xd2\x8b\x77\x7d\xbe\x79\x2d\xba\xd6\xc1\ \x93\x2a\xed\xab\x31\x85\xd6\x0f\x9a\xea\x94\x32\x31\xf5\x95\xb5\ \xc2\xe6\xd4\xee\x42\x11\x94\x80\x9a\x6a\x4b\x6b\xb9\xac\x02\x37\ \x95\x08\xb3\x59\x3e\x77\x07\x90\xf1\x62\xc5\x63\xa3\xbe\x6f\xc3\ \x1f\x76\x27\x20\xaa\xbc\xeb\x70\x83\xdc\x9a\x07\x92\x82\xa2\x08\ \x9e\x3b\x2b\x22\x04\x51\x6f\xd6\xf0\x09\x88\x7e\x5c\xae\xdd\xac\ \xa7\xce\xc7\x96\xf1\xba\x0d\xb9\xf8\xf6\xe7\xaf\x48\x6c\x4f\x89\ \x17\xd0\x94\x4f\x04\xd3\x84\x3a\xb1\x8c\x0a\xc0\x02\x6a\xef\xa0\ \xea\x20\x88\xae\xbf\x9d\xd8\xdf\xb8\x3c\x6f\xbf\x9e\x1a\x00\x21\ \x2f\x3e\x87\x2f\xb8\x1b\x1b\x17\x8a\x2c\x2e\x86\x22\x05\x48\x90\ \x54\x6e\x56\x80\xde\xe3\xa0\x90\x9e\x69\x00\xd2\x12\xc4\x44\x16\ \x3f\x08\xe5\xab\x01\xf4\x78\xde\xb7\x61\xf3\x3f\xf6\x74\x3c\x96\ \xb4\x33\x25\x95\xcb\x37\x66\x34\x5a\x91\x73\x01\x8a\x3a\x98\x6a\ \xec\x81\x12\xc2\x59\x8b\x95\x47\x7f\xc1\xc5\x04\xe4\x9e\x1e\x09\ \xa9\xb9\x76\x78\xe5\xb9\x20\xf6\x75\xb9\xeb\x1a\x77\x22\xca\x12\ \x8a\xab\xb1\x0b\x5a\x94\xa2\xa6\x0f\xdf\x79\x7b\x60\x25\x6d\x52\ \xa8\xa0\x68\x18\xd7\x7e\xe0\xc0\x8e\xa7\x27\x94\xca\x5e\x34\xac\ \x5f\xb9\x04\xa0\x0f\x8e\xda\x14\x35\x26\x1f\xe7\x99\xb0\x1b\xa1\ \xa0\xb4\x68\xe6\xc6\xad\x80\xa6\xba\xa9\xaf\xe5\xd6\x61\x04\xce\ \xfe\xa2\x92\x3e\x3d\xf1\x26\xc2\x2f\xd1\xed\x86\x14\x97\x20\x70\ \x5e\x17\xad\xfd\xea\x0b\x28\xd3\x89\xeb\x47\xdd\xbe\x1e\x09\x1d\ \xc6\xcc\x8c\x27\xa7\x94\x15\x85\x6d\x1b\x86\x73\xc2\x10\xb8\x12\ \x94\xbc\xf8\x22\x45\x7a\x48\x8e\x0a\x4e\x89\xee\xde\x4b\x42\x9a\ \x5a\x9d\xff\xad\xb3\xef\x7d\x7c\xb1\xba\x90\x85\x74\x61\x06\x15\ \xcd\x2f\x66\xe0\xcc\x65\x26\x38\xc5\x7f\x4a\x49\xa4\x2c\x70\xaa\ \x0d\x5c\x97\x6c\x33\x53\xf4\x9d\xab\x82\x9d\xfc\xfe\xd8\x18\xfd\ \xbe\x50\x54\x0d\x3e\xdd\xbc\x35\x6a\x02\xd5\xe7\xe3\x54\x7d\x4f\ \xe7\xc9\xa8\xed\x7e\xd0\x02\x8e\x70\x3e\x43\xdc\x2c\xb5\x26\x37\ \x12\x5e\x03\xce\xeb\xf5\x02\x60\x44\xf9\x52\x65\x8a\x00\x13\xf1\ \xa0\xeb\x70\xd1\x3c\x33\x1e\xc9\x51\x08\xa9\x95\x51\x8b\x35\x55\ \x17\x0a\x19\x15\xa5\xb7\x94\x94\xd4\x38\x30\xd6\xba\x0d\x79\x54\ \x80\xbe\x2f\x67\x98\x8a\x93\x40\x92\x52\x45\xdf\xf9\xef\x6a\x49\ \xa1\xf9\xfc\x5b\x58\x78\x4f\x00\xfa\xcc\xd4\x50\xd4\x85\xf8\x80\ \x2b\xa9\xf1\x82\x63\x67\x68\x3f\xf6\xf5\xce\xda\xcb\x66\xf9\x1b\ \x02\x74\xf5\x68\x16\x94\xf4\x31\xd5\xdb\x7f\x1c\x42\x6a\xfb\x9b\ \x17\x16\x4e\x87\x25\xc5\x76\x79\x00\x90\xe8\x28\x41\x12\x42\x29\ \x4a\x53\x8c\x13\x81\xe5\x37\x46\x8d\x2a\xe3\x4b\x5f\x96\xeb\x63\ \x26\x33\x65\x7a\x89\xb0\x69\x88\x47\xbc\x37\x42\xaa\x50\x99\xa2\ \x1f\x84\x90\xce\xef\x29\x81\x94\x42\xeb\xd5\x90\xc6\x51\x32\xe0\ \x8e\xa3\x6c\x38\x24\xb2\xa6\x1a\x7f\x80\xac\x4f\x14\xd2\x7f\xfa\ \xc6\x33\x3f\x0b\xdf\x6f\x58\xda\xdd\xd7\xab\x20\x58\x9b\x3e\x45\ \xb7\x1b\x5a\x65\x62\x8a\x92\x90\x3e\x31\x32\x5b\x91\xaa\x6a\xb3\ \xdd\x1c\x6a\xa1\xa7\x60\x88\x92\x79\x40\x25\xd4\xed\x96\x25\x1e\ \x89\x9f\x74\x7d\xf2\x8e\x2c\xf9\xab\xc6\x85\x8a\xbf\xa3\xd1\x28\ \x9f\x0c\xfc\x12\x0b\xa9\x6f\xd6\x58\x58\xf9\x69\xb6\xa4\x6f\xf9\ \x44\x88\x5f\x36\x0f\x29\x70\xf6\xaa\x84\xba\xc8\xcc\x3e\x21\x3d\ \x6a\x4e\x89\xb5\x46\xd3\xd5\x27\x7d\xaa\xf4\xef\xb4\xf7\x15\x1e\ \x13\xef\xc4\x3d\xd9\x6c\x49\x33\x90\x13\x8d\xae\x24\xa4\x5f\x57\ \x51\xaf\x11\xe1\x9b\xae\x71\x34\x37\x67\x7a\xc5\xbc\xf0\x9e\x21\ \x16\x90\x4d\xc0\xd5\xea\x72\xad\x5e\x34\x32\xf6\x82\x63\x3d\x3b\ \x5e\x5e\x0a\x49\xfb\x43\x15\xd2\x9d\x4d\xe9\x8c\x6c\x0f\x60\xdf\ \x12\x76\x4e\x18\xd7\x8c\x7b\xa8\x82\x3b\x6b\x2f\x66\x94\x70\x66\ \xda\xa3\xa3\x77\xe9\xe8\xde\xbe\x9d\xd2\x61\xaf\xc4\x40\x77\x01\ \xde\x86\xb5\x5b\x0e\xdf\x76\x06\x7d\x1e\x29\x84\xf5\x11\xf0\xa7\ \xc8\x92\xc2\xd9\xd3\xa5\xae\x1f\xfc\x52\xeb\xb2\xf2\x53\xf7\x8c\ \x18\xa8\xab\x34\xb5\x94\x09\x96\x09\x59\x3c\x6c\xf2\x8c\xbd\xaf\ \xd3\xf2\xca\x55\xbb\x98\xa4\x9f\x57\x98\xab\x1f\x5b\xae\xb2\x32\ \xe1\xab\xaf\x36\x8d\x59\xfb\x89\xaa\x46\x48\xf9\x3a\xdf\x3f\xff\ \x82\x45\x79\xd5\x35\x57\x4f\x46\xc3\xee\x7a\x3d\xc3\x74\xa9\xf1\ \xc2\x16\x43\x8d\xd6\x27\xfc\xf9\x4e\xbe\x75\x7e\x42\x57\xd1\xad\ \x11\x9c\x47\xa6\x03\xb1\xa4\xef\xa6\xfb\x0e\x23\x49\xc5\x94\xbe\ \x28\x96\x14\xe5\x9b\x68\xea\x01\x72\xef\xcd\xfb\x17\x2b\x57\xaf\ \x77\xd6\xd4\x50\x94\x7d\xbd\x3f\x2d\x80\x91\x28\xb2\xde\xe7\x52\ \x0a\x48\x99\x83\x67\x4e\x73\xf6\xf3\x72\x01\xfe\xbe\x51\x40\x28\ \x82\xba\x40\x0a\xb6\x33\xec\xf3\x6e\xff\xc6\xe6\x73\x57\x46\x8a\ \x5e\x31\x03\x79\x78\xff\x64\x67\x3a\xa4\x5b\x3d\xb5\x5e\x3f\x98\ \xd3\x98\xe9\x8b\x0d\xa0\x66\x13\xf0\x9a\x47\x9e\x8b\xaf\xa5\xc6\ \x5f\xbd\x08\x40\x45\x48\xf7\xdc\x8f\xb0\xe4\x3f\x63\x27\xcd\x34\ \xc1\x1f\xe6\x22\x2b\x74\x40\x64\xf2\xfd\x91\xa2\xdb\x9e\x21\x4a\ \x3e\x35\xe1\xbd\xe8\xfc\xde\xbc\x14\x40\xfd\x5e\x44\x3b\xc9\x70\ \xc1\x5f\x51\x5e\xfb\xdb\xc1\x50\xbe\x90\x07\xa0\x2f\x2a\xd0\xf5\ \x13\xa2\x28\xfd\xfb\x8e\x69\x8a\xd8\xe9\x1c\x8a\x54\x88\xf7\x71\ \x0e\x87\x46\xb9\xb7\xe4\x24\x01\x1b\xc7\xe3\x9d\x01\xa4\xbf\x93\ \x0c\x01\x54\x96\x81\xf9\x0c\xd5\x6e\xec\x0b\x45\x89\x1b\xfe\x96\ \x5e\xc5\xd0\xc6\x01\x68\x11\x0a\xe6\x37\xed\x23\x21\xe5\xdd\x1d\ \x79\xd1\x29\xc2\x3c\xde\xd6\x3d\x95\xf6\x69\xbc\x77\x57\x4b\xbb\ \x4f\x56\x6c\x43\x17\x16\x16\x3a\xb6\xcb\xce\x3a\x29\x35\xe9\x87\ \xe4\x78\x21\x50\x2d\xd2\x8b\xf4\x0a\xdf\x65\x2e\xe0\x8f\x47\x3f\ \xa5\x7b\x37\x33\x4a\x91\xac\xa3\xbe\x99\x1a\xcd\x2f\x44\xc0\x49\ \x04\xfa\x4b\x86\x96\x91\xf2\x6b\x9f\x9e\x24\xac\xf9\x61\xf8\x23\ \xc1\xb8\xa0\x86\x67\x6a\xf4\xa9\xb5\x05\x65\x98\x87\xce\x7b\xf8\ \x8d\x17\xde\x59\x16\xf1\x57\x28\x35\x7e\x31\xe3\x10\x8f\x75\x7d\ \x4b\x55\xce\x84\xf4\x5e\xec\x98\x77\x13\xf1\x97\x4b\x71\xf3\x00\ \x79\xe6\x2b\xa3\x4c\xaa\xd1\x0f\xc3\xa5\xc6\x5d\x1f\xbe\xad\x2e\ \x2b\xef\x81\x76\xeb\x23\xeb\xe4\x7e\xe1\xed\x11\x6b\x7a\x6b\xa0\ \x26\xdd\x7a\xfe\x45\x89\x4a\x6a\x2a\x98\x8f\xeb\x44\x2d\xe9\x86\ \x91\x6e\x98\x78\x9f\x7c\x7c\x1c\x4d\x93\x01\x39\x1e\x15\x62\xf4\ \xc9\x37\x85\xa5\x41\xcd\x6d\xb8\x55\xc3\x67\xf0\x81\x35\xb3\x3a\ \x7f\xb4\x79\x39\xf7\x1f\x93\x00\x7c\x72\x72\x30\xc2\x59\xd4\x90\ \x74\xbb\x58\x52\x15\xd2\xde\xde\x52\x02\x3d\xe6\xf6\xf2\x20\x9a\ \xfb\x25\x92\xdf\xb3\x5e\xf9\xf4\xe2\x28\x4d\x9a\x95\xf0\x05\xa2\ \x28\x80\x76\xfe\xa5\x16\x45\x87\x56\x57\x18\xa8\x43\xcf\x6e\x3f\ \xf5\xe8\xf9\x56\xae\x6e\xe1\x0d\xc9\x76\x12\xd2\x22\x29\xf1\x37\ \x30\xee\x4d\x69\xaf\x2c\x77\x2f\x3e\xbb\x3b\x79\xe9\xf5\xbb\x58\ \xed\x0e\x4c\x6b\x32\xa1\xef\xbd\xee\x7d\x8f\x8f\x03\xc8\x7e\x03\ \x25\xc2\x3c\x73\x3b\x72\xcb\x3c\xf9\xed\x08\x28\x7a\xe9\x39\x07\ \x89\x36\x7a\x43\xa5\xbe\x1f\xcc\x23\xd2\x25\xd6\x1f\xa9\x37\xec\ \x66\x4b\x1a\x63\xbd\xf2\x0f\x7b\xed\xb1\x77\x5a\x69\xd7\x63\x42\ \xfe\xa9\xe3\x7c\x58\x97\xd6\x9b\xba\x9d\x6f\x77\xe3\x94\x5e\xba\ \xf1\xd4\x1e\xc6\xc1\xb5\x0f\x4c\x26\x5f\xbc\x7a\x1f\x01\x78\x20\ \x02\x7d\x8e\xf5\x47\xa3\x92\x18\x7f\xbe\x6d\x91\x0c\xd4\xb5\xee\ \x5a\xf0\xe9\x4e\x89\xf4\x13\x7f\x09\x25\x8e\xb4\xb8\x23\x03\xdd\ \x27\x1b\x04\x24\x3c\xd3\xd1\x1e\xc6\xda\xe9\x62\x45\x96\xff\x3b\ \x14\x84\x57\x51\xf7\x4f\xe5\x4b\xfb\x19\x29\x01\xed\x2d\x07\x98\ \x6f\x45\x92\x49\x18\xb1\x76\x3a\x22\x9c\x0c\x4f\x36\x79\x18\x9d\ \x17\x7d\x6d\x73\x49\x32\x75\xa0\xfa\x03\xd2\xcb\xaf\x82\xf7\x98\ \x56\x85\x8c\xcd\xe4\x20\x23\x49\x29\xd8\x98\xca\x95\x44\xec\x38\ \xd7\x2e\x5d\x5f\x2b\xbe\x7b\x64\x03\x75\xe3\xf2\x38\x27\x98\x26\ \x87\xcf\x13\x52\x1a\x9e\x28\xa2\xc0\x89\x5a\xa8\x27\xaa\xd8\x7b\ \x68\xd2\x6b\xf7\xae\xed\xb1\x9f\xa9\x52\x35\xf7\x67\x53\xff\x73\ \xa5\x42\x7a\x2f\x97\x1c\xbe\x35\x13\x91\xf7\xeb\xd7\xf4\xae\xab\ \x0f\x1c\x3e\xb1\x67\x3a\x2a\x24\x05\x81\x3f\x19\x4b\x20\x5d\xd9\ \x76\x41\x4a\x62\xe6\x08\x46\x3b\xc2\x47\xb1\xde\xdc\x04\x50\x55\ \x2f\xe3\x90\x2d\x55\xaf\x54\x5c\x44\x94\x1b\x15\x22\xa4\x1b\x76\ \x96\x65\x91\x2c\x35\xd2\x71\x8f\x12\x1d\x57\xef\x58\x4e\x93\xb2\ \xa8\x93\xa1\xfa\x27\xa1\x28\x85\x7a\x40\xea\xae\xcb\xc4\x30\x32\ \xea\xcf\xdf\xcc\xcc\xd3\x56\x7a\x13\x7f\x77\x8c\xe0\x41\x4b\x02\ \x1a\xed\x67\x41\xc2\xb8\xfe\xd9\x6b\x4f\xf9\xfd\x1e\xc6\x43\x77\ \x2d\x6d\xd9\xf1\xd4\xe2\x28\xab\x4d\x52\x87\x86\xb4\xe9\xe8\x03\ \x90\xdd\x2d\x5a\xdb\xa8\x55\xa3\xb3\xd4\x94\x3a\x83\xbf\xc4\x40\ \xc9\x8f\x12\x45\xdf\x4c\x7f\xa5\x61\x1c\x85\xf4\x0f\x7a\x4d\xb3\ \xb0\x85\x60\x7f\x66\x39\x5d\x13\x34\xad\x91\xcb\xa3\x85\x07\x71\ \xde\xd7\x96\x2d\x3e\x6b\x47\xfd\x31\x5b\x98\x28\x13\x3e\x1d\x22\ \x2d\x07\x45\x0b\xf2\xa5\x8f\x8d\xc8\xe6\x93\x62\xa9\xdb\x3f\xb9\ \x2e\xb0\x7b\x71\x27\xe7\x1c\xeb\xda\x24\xf3\x84\xaa\x8d\x7b\x7f\ \xfa\x8e\xf3\xb0\x4d\xa0\x68\x17\xe7\x81\xd3\x8c\x92\xd3\x5e\x7a\ \xdf\x74\x4a\x0e\xf1\xe5\x93\xbc\x8c\xe3\xf2\x7f\x11\x94\x74\x8d\ \x7e\x52\xe5\xd2\x9d\x87\xb6\xb7\xa1\xb9\xd1\x95\x81\x26\x5d\x7f\ \x6b\x1d\x34\xf5\xf5\x7a\x4f\x54\xa8\x15\x00\xf3\x7e\xe8\x4f\xf9\ \x4f\x06\xde\xc9\x34\x3c\x31\x2e\x65\x7c\x98\x3c\xc0\x1d\x87\x27\ \x93\x4c\xfe\x2c\xbc\x1f\x80\xe9\xee\x7d\x41\x46\xcf\x1d\x0c\x5d\ \xe1\x32\xce\x2e\x22\xb1\x64\x7d\x56\xac\xe2\xae\xa5\x03\xba\x13\ \x7e\x62\x5c\x61\xcf\x34\xf8\xe8\xc9\xc5\xc9\x28\xd3\xb4\xb8\x69\ \x72\x16\xe6\xa3\x67\x1c\x50\x9d\xc1\x9f\xd3\x91\x5b\xe5\x08\x9e\ \x53\xdb\xad\x61\x39\x4f\x42\x6a\xc7\x6d\x93\x11\xce\xac\x9b\x14\ \xbe\xf0\x5d\xd8\x0e\xa8\xee\x26\xc2\xc4\xdd\xe0\x0d\xdf\xe4\xef\ \xd2\xf1\xe6\x1e\x09\x5d\xa8\x7d\xde\xc6\x79\xcd\x74\x94\xba\x0c\ \x44\x78\x11\x50\x73\xe5\x30\x14\x5f\xcf\x31\xa1\x29\xd7\x88\xa8\ \xa7\x27\xfa\x47\x6d\xbd\x5e\xa7\xd7\xa5\x34\xdf\x6e\xe3\x8b\xfb\ \xa6\x23\x86\x98\xa2\xff\x41\x29\xaa\xcd\x44\xad\x1a\x93\xb0\x1e\ \xa7\x83\x1c\xeb\x65\xb5\x48\xfd\x91\x60\xa7\x44\x26\x72\xe6\x48\ \xf3\xe6\x63\xbd\x7b\xee\xd9\xb0\x76\xff\x72\x55\x94\x85\xbb\xe1\ \x8d\x50\xb2\x8c\x72\xe9\xd6\xda\x51\xd3\x44\x98\x00\xad\x3f\x19\ \x4a\x0b\x4e\x36\x18\x6a\xba\x14\x04\x04\x15\x96\xf4\x92\x51\x3a\ \xa0\x3f\xfc\x47\x76\xdf\xe4\xc8\x78\x36\x65\xb4\xf6\x77\x95\xa0\ \xe3\x4d\x86\x7e\x18\x62\xfa\xb3\x22\xf0\xf4\x96\xf7\xc0\x88\x51\ \x90\x4b\x1f\x93\x15\xc5\x5d\xe3\xb6\xb6\xac\x09\x52\x1c\xb8\x83\ \x6f\xb2\x76\x34\xce\x3e\x50\x6a\xe2\x11\x54\xb5\x8d\xae\x1d\xda\ \x94\x42\x4c\x2d\xda\x22\x5a\xd2\x1b\x26\x05\x0d\x45\x9a\x5a\xa8\ \x8d\x12\x63\x69\x19\x4f\xab\xc2\x44\xe8\x64\xd8\xef\x49\xe9\x6f\ \x22\xb4\xe7\x2c\x9d\x6b\x2a\xe3\xf2\x30\x05\xf5\xb9\xa0\x2c\xdd\ \x1d\xde\x5c\xb8\x53\xb0\xd0\x7a\x7b\x86\x51\x2d\x3d\x90\x7a\x17\ \xea\xa2\x27\xd0\xd3\xc7\x4f\x5e\x48\x7f\x8f\x42\xe7\x91\xa6\x21\ \xd0\x58\x80\xa1\x76\x54\x7e\xfe\xcc\x1d\x9a\x72\xfd\x31\x46\x14\ \x70\xa0\x4f\x5e\xeb\x53\x2c\xc2\x7e\x7f\x41\x0d\x0b\xe9\x9d\xa7\ \xac\x7a\xb3\xb0\x9e\x50\xda\xcb\x89\x94\xf5\x65\xe7\xa1\x16\x6d\ \x7e\xe9\xf2\xf5\xf0\x9d\x9e\xa2\xb6\x71\x58\x57\xa5\xa3\xbc\xd1\ \xab\x83\x24\xf2\xd5\x8c\xd4\x8f\x5a\x86\xf3\xf7\x4d\x3b\xda\x77\ \x67\x6f\x0c\x5e\x50\xd3\xdc\xde\xee\xf2\xcd\xfc\xe9\x39\x8f\xbc\ \x62\xdc\xcb\x05\xa0\x4e\xed\x13\x75\xa2\xa0\x64\xd7\x4d\x84\x08\ \x43\xbd\x25\x75\xd7\xd1\xa1\x23\x97\xa7\x33\xfa\xce\xd9\xaf\x31\ \x29\xc2\x49\x4b\xeb\x13\xd0\x33\xac\xe8\x1d\xef\xf0\xa0\xb2\xb2\ \x75\x82\x2a\xf9\x4b\x5f\x86\xad\x30\xaf\x72\x59\x5c\xd5\x7c\x93\ \x78\x6a\xd0\x73\xdf\xe1\xe5\x9d\x0c\xd4\xf6\xe8\xf8\x6b\x52\x95\ \xfd\x43\x7b\xe4\x92\x1e\x47\x51\x1f\x35\xc3\xd7\x57\x4e\xe5\x9b\ \x09\x08\xf3\xb7\xac\xff\x83\x30\x52\xc2\x28\x44\x73\x5e\x46\x71\ \x54\xdd\x5d\x4a\xe5\x6e\xee\xa7\xe1\x5d\xa8\xe2\xf4\xd7\x7a\xce\ \x2f\x35\xd8\x9b\x67\x29\xd3\xfc\xec\x1b\xd6\x9f\xb5\x63\x79\x3a\ \x1e\xa4\xb3\x44\xee\xff\x37\x76\x36\xad\xb6\x1d\x45\x18\xbe\xd1\ \xab\x6b\x7f\xac\xbd\xd6\x59\xd7\xbb\xb9\xde\x13\x50\x07\x5e\x41\ \x49\x40\x74\x20\x38\x88\xa0\x01\x11\x27\x89\xa0\x44\xf1\x6b\x92\ \x20\x19\x29\x82\x1f\x71\x60\x06\x8e\x1c\x38\xf0\x27\x38\x53\x34\ \x19\x38\x0a\xfe\x80\x8c\xfc\x05\x01\x41\x32\x50\xfc\x15\xe6\x74\ \xd7\x5e\x4f\x57\xbf\x55\x6b\xdf\x3e\x7b\x9f\x73\x86\x45\x77\x57\ \x75\x7d\xbd\x6f\x09\xa4\x6d\x70\x16\xa0\x13\xd4\x31\x16\xe8\x2d\ \x85\x1e\x59\x89\x00\x20\xd0\x42\x9f\x14\xdd\xb0\x4a\xfb\xe0\x41\ \x15\x92\xd9\x12\x09\x59\x85\x4e\x17\x98\x61\x2c\xe0\xf4\xe5\xe4\ \x5b\x1b\xda\x4d\xb2\xa6\xbd\xdd\x67\x73\x6c\x47\x91\x92\x9d\xad\ \x2b\x18\x81\x51\x8f\x5c\xb0\xcb\xa3\x5d\x51\x2b\xd5\x83\x15\xd1\ \x14\x99\x42\xee\x34\x91\xab\x45\x5b\x28\xfe\xa0\xa1\x3b\xb2\x2a\ \x99\x8e\x48\x6b\xa2\x29\xf5\x2c\xc4\x3f\xf6\x90\xf6\x72\x2a\x55\ \x85\xe2\xeb\x63\x92\x1a\x65\xc9\xed\x73\xf8\x5e\xcc\x2a\x9a\x9a\ \xa6\x5e\xe3\x57\x4c\xd3\x2c\x2a\x05\xda\x4e\xba\x1d\xb9\xa3\x44\ \xf5\x48\xca\x00\xb9\x75\xba\x21\x62\x0a\x17\x04\xf6\x89\x7b\xca\ \x66\xfa\x99\x0d\x4c\x42\xe8\xb7\x14\x6e\x0d\x01\xb0\xb2\x9c\xa0\ \xc2\x96\x39\x56\x08\x86\x69\x92\x37\xa3\x0e\x59\x5f\x3e\x8a\x5b\ \x07\xd1\x14\xb2\xfe\x84\x2c\x00\x66\x47\xb1\x4f\xf2\xd6\x77\xef\ \x27\x0d\xe3\x91\x3e\x79\x81\xb9\xa1\x4a\xe6\x4c\x02\x42\x19\x13\ \xf9\x46\xdc\x8e\x8a\x05\x0f\xcd\x13\x72\x72\xf8\xc4\x76\x81\xcd\ \x47\xab\xc8\x3c\x39\xfe\xee\x61\x96\xfc\x83\x28\xbc\x8c\x3d\x92\ \xc2\x88\xea\x13\xd2\x16\x7d\x2f\xa2\x0a\xda\xb2\x01\x09\xc6\x7e\ \x09\x18\x21\x21\x20\x05\xd5\xa0\x3b\x0a\x5b\x41\xaf\x4d\x7d\x8e\ \xcc\xda\x85\xa1\x23\xcb\xfc\x3c\x30\x77\xfc\x76\xfe\x68\xc3\x94\ \x99\xf2\x8f\xaa\xd6\x73\x49\xdd\x35\x45\x5c\xb7\x56\x49\x19\x24\ \xd5\x8e\xe6\x02\xc2\xca\x93\xaf\x0e\x29\x89\x07\xf5\xf3\xb2\x85\ \xa0\x27\x54\x1e\x07\x5f\xa9\x9c\x4d\x99\xd8\xd1\x9e\x97\x8a\xa3\ \x57\x62\x2a\xc0\xe0\x8c\x39\x74\xea\xbe\x49\x94\xaa\x3e\x89\xaf\ \x84\xea\xcc\x86\x0a\x1c\x30\x5d\x2a\x92\x0e\x1e\x67\x8b\x21\x95\ \x67\x29\x99\x81\x91\x6f\xe9\x75\x7c\xfd\x8e\xc9\x0d\x32\x4f\x06\ \xe4\xb2\xea\xfc\x80\xb8\x42\x8c\xcd\x3e\x22\xaa\x52\x92\x09\x3e\ \x2c\xc7\xd7\x17\x61\x2f\x9b\x79\x10\xde\x61\xb0\xa1\x29\xdf\x93\ \xba\xa4\x4b\x8b\x15\x22\x60\x42\x4a\xa1\x44\xbf\x8e\xaf\xb7\xec\ \xbd\x94\x6c\xab\x94\x34\xe4\x06\x31\x13\xa0\xf0\xee\x8a\x22\x2f\ \x96\x34\xe1\x1f\xe5\xae\x2e\x80\xac\x43\x7c\x3d\x68\x4b\xc9\xe9\ \x15\x4d\x32\xc3\x1f\x3c\xf5\xe0\xea\x95\xe8\xcb\x65\x9c\xc5\x3a\ \x21\x2a\x1f\xcc\x53\x8c\xaf\x27\x00\x65\x4b\x57\x64\x35\x58\x11\ \xe9\x1b\x1f\x1a\xc5\x4f\xa3\x91\x35\x5c\xe2\x9b\xf2\x8f\x7a\xc6\ \x02\xc4\x54\x30\x63\x67\x9f\x7a\xac\xc8\x18\xa2\x97\xb1\xa3\x91\ \x2a\xa1\x48\xa2\xf7\x19\xff\x68\x82\xaf\xa7\x81\x30\xec\x80\x30\ \x5d\x32\xc8\xe5\x31\x47\xad\x23\x35\x0b\x6d\xf2\xa0\x70\x30\x22\ \xc2\x3f\xba\x85\xaf\xe7\x97\xb3\xa3\x7e\xbe\x80\xe8\x12\xd8\x45\ \xec\xa8\xc8\x88\x7d\x8a\x9d\x3c\x9f\xd8\xe9\x76\x74\x0b\x5f\x2f\ \x6c\xd3\x15\xc6\xc6\xfd\x54\x6d\x52\x43\xaa\x53\xa4\x70\xf2\x52\ \xfe\x51\xdd\xd1\xd8\x3c\x91\x76\x3a\xe8\x6b\x0f\x7f\xbf\x5a\x27\ \xaf\xee\xd0\xbf\x2c\x28\x3f\x31\xd3\x36\xff\xa8\x32\x68\xdd\x64\ \xf8\x7a\x35\x4d\x3c\x4f\x0e\xd9\xa0\x7b\x89\xa1\x52\xbd\x07\x13\ \x1e\xf3\x8f\x2e\x82\x0b\xbd\x8e\xaf\xc7\x6b\xc6\x79\xe2\x5d\xb2\ \xdf\xba\xb3\x3c\xf6\xa2\xf7\x68\x51\xca\x3f\x9a\x95\x18\x73\x7c\ \x3d\xaf\x13\xac\xc3\x20\xc1\x81\x30\xf6\xd6\x89\x0f\x82\x32\x1a\ \x3a\xcf\x95\x64\xfc\xa3\xd7\xf1\xf5\x09\xdb\xb8\x32\x16\x0c\x6e\ \x47\x11\xd2\xbf\x4d\x20\x6d\x49\x43\x39\x19\x73\xfe\xd1\xd3\x35\ \x7c\x3d\x0b\x0a\xd2\x11\x0f\x4a\xd5\x1d\xa5\x4f\xea\xb6\xc4\xf6\ \x3a\xf4\x48\x11\xcc\x78\xf8\x57\xf0\xf5\xe5\x83\xb0\x63\xcb\x3a\ \xdc\xc9\x29\xa1\x88\xb8\x79\x38\x79\xc2\x46\x17\x33\x3e\x51\x5d\ \x3e\x65\xf8\xfa\xb0\xcf\xf5\x68\xc2\xa2\x4c\x89\x26\x11\xd6\xcb\ \x02\x5f\x1f\xb3\x62\x13\xdb\x6b\xda\x31\xc7\xd7\x6b\x52\x07\x5a\ \x85\xf5\x2b\x03\x8d\x45\xe7\xf5\x61\x6a\xe4\x65\x09\x6d\x3f\x8b\ \x44\x6e\x88\xaf\x07\x6e\x8b\x88\xf6\x3f\x6c\x99\x6e\x61\x41\x75\ \xe4\x15\x0a\xa5\x15\x7b\xf6\x14\x9a\x79\xc9\x3d\x6d\xe1\xeb\x19\ \x84\x50\x17\x47\x0f\x5b\x26\x79\x71\x0d\xf0\x9a\x25\x49\x12\xf4\ \x09\x31\x91\xb6\x1d\xc2\xb9\x8d\xaf\x4f\xde\xfa\x31\x65\x28\xaa\ \x82\x21\x6a\x08\x05\xef\x08\x9f\x9e\x8e\x7f\xf4\xf6\x2a\xbe\x3e\ \x19\x10\x0d\xe7\xb4\x2e\x94\x49\x3d\x7c\x1d\xc1\xfb\x94\xfc\xa3\ \xd7\xf1\xf5\x88\x39\xd6\x0f\x14\xc9\x86\x1b\x91\xe5\x67\x72\x65\ \x44\xbe\x5a\x6f\x50\xfe\x51\x84\x4e\xf1\xf5\x07\x18\xb4\x5c\x80\ \x67\xd2\x9a\x88\xfe\x71\xa2\x1a\xe2\x42\xd1\x60\x63\x79\x9b\xae\ \xf1\x8f\xe6\x50\x36\x2a\xe0\x46\xa8\x81\xa4\xe8\xfe\x51\xe8\x0a\ \xe4\x7d\x92\xf8\x0e\x63\xef\x72\xce\xd7\xf8\x47\x29\x31\x26\xf8\ \x7a\x26\x33\xf9\xa8\xde\xe6\xdc\x31\x4d\x4a\xa7\xd7\x63\xa2\xc2\ \xe5\xa7\xb4\xd8\x7f\x39\xff\x28\xc1\x1d\x06\x9f\x00\x84\x1d\x45\ \xd4\x51\x20\xeb\x5e\x48\xd8\x1c\xc5\x8b\x72\x42\xfa\x51\xd6\x29\ \xff\x68\xee\xe6\xb1\xe0\x24\xdb\xa3\xf5\x58\x53\x62\x26\x2d\x85\ \xea\x70\xcb\x51\xc3\x7a\xe4\xcc\x38\x72\x23\xfe\xd1\x80\x00\xa2\ \xda\x51\xdb\x53\x84\x84\x7b\xd2\xb8\x4a\xdc\x08\x56\x2d\x88\xe6\ \x47\x8f\x42\xd9\x52\xbe\xa7\x04\x82\x71\xea\xb6\x73\xbf\x87\xfb\ \xe3\xd0\xe7\x75\x72\x98\x50\xfd\x10\x86\x28\x53\x89\x67\xcf\x0a\ \x1f\xfb\x96\x48\x69\x03\x5f\x7f\x01\xd8\x83\x13\x41\xcc\xe6\xd8\ \xa3\x34\xd9\x80\xb4\x81\x09\xf5\xe2\xf2\x1b\x09\x95\x7f\x54\xf1\ \xf5\x6a\xf2\xed\xe8\xfb\xb3\xf7\x13\x9a\xb4\x70\x47\x58\x2f\xe6\ \xc9\xf4\x28\xa8\xdf\x0c\x79\x63\x26\x51\xa8\x89\x99\xe2\xeb\xf7\ \xba\x9d\x8c\xba\xd3\x01\xd1\xae\x6c\x0b\xc0\x1a\x74\x3d\xd1\x9d\ \xbb\x00\xd2\x49\x18\xbc\x4c\x37\x31\xbe\x1e\xa7\x44\xf6\x15\x6a\ \x4f\x65\x2b\xc0\x77\xa2\x3d\xcb\x67\x9c\x39\xf8\x84\xe1\x2d\xb9\ \xa3\xf8\x79\x62\xf3\xd9\x52\x3f\x6e\x3b\x87\xaf\x32\x7e\x53\xed\ \xe8\xdc\xcc\x10\xa3\x6b\x3c\x0d\x45\x58\x4f\x8d\xaf\x97\xe7\xc9\ \xc4\xcc\x20\xc1\xe5\xeb\x58\xbe\x26\x47\xde\xbf\xb8\xae\x71\xcd\ \x38\x73\xec\xdb\x06\x1f\x2c\xf8\x7a\xf2\x92\x25\x73\x23\x8d\x8f\ \x9d\xa4\x45\x46\xb6\xd2\x75\xb6\xb7\xf9\xfb\xb9\x4f\x3c\xf1\x41\ \x9f\x32\xa7\x64\xa7\xf8\xfa\x4e\x9b\x50\xa6\xf0\x8a\x32\xb1\x85\ \xc1\x7c\xed\x1d\x75\x53\x06\xe2\x61\x2d\xf6\xc1\xc7\x07\x78\x25\ \x9e\x53\xd4\xf3\xc4\x8e\x3a\xe6\xbc\x60\x98\xb1\x9a\x51\x74\xa9\ \x2e\x2c\x68\xc7\x44\x48\x10\x9a\xb0\xb7\xe7\xf8\x7a\x74\x1e\xfb\ \x24\x05\x1c\xa4\x15\xdf\xc4\x98\x08\x69\x7c\x72\xbc\xd8\x02\x12\ \x42\xca\x65\x91\x28\xf4\x14\x46\x76\x72\xf4\x08\x8b\x98\xa2\xf6\ \xd8\x51\x98\x54\x58\x45\xe3\x7d\x0e\x7f\x50\xea\x51\xfb\x2f\xc3\ \x8a\xb0\xc0\xd7\xfb\x58\x04\xd3\xc4\x0f\x02\x73\xf8\x75\x2b\xe1\ \x79\x34\xbd\x72\x7c\x15\x4e\x46\x79\x45\xa9\x31\x0b\x83\xd6\x4d\ \x8c\xaf\xc7\x3a\x89\xa7\xc7\xd1\x87\x73\xee\xca\x9a\x64\x06\x06\ \x7e\xbe\xcc\xb5\x55\xe0\x55\x0e\xb7\x44\xa3\x28\xd6\xb3\xad\x44\ \x76\xeb\x8f\xef\x19\x77\xf3\x99\xb8\xa0\xee\x09\x75\x1e\xbe\xef\ \x73\x25\x99\x9b\xf3\xe1\x67\xf8\xfa\x68\x2b\x19\x1a\x29\xec\xed\ \x2d\x6f\x9e\xce\x35\x75\x43\x0e\xab\xcc\x01\xf1\x6c\x92\xc3\xdf\ \xc6\xd7\x7b\x07\x1f\x0b\xda\x19\x27\x64\x85\x37\xcf\xcf\x3c\xe3\ \xf0\xcd\x69\xae\x60\x3b\xa5\xc3\xc7\xde\xb3\x36\xf0\xf5\xf6\xe5\ \xec\xdd\x4a\x95\x1e\x65\x12\x97\x64\xb6\xdf\x0b\x3f\xb3\x28\x93\ \x7d\xc8\xe2\x67\x7c\xf8\x8a\xaf\x57\x7f\x74\x64\x5f\x51\xfb\x89\ \x69\xeb\x8d\x5f\xca\x20\x0c\x2e\x29\xf1\xb2\x9a\x27\x0d\x42\xf3\ \xf9\xf5\xdb\xf8\xfa\x91\xbe\xa7\xc2\x8f\xab\xed\xa3\x13\x75\x11\ \xb6\xd5\x5d\x52\x57\xb3\x4b\x4e\x5e\xfa\xc9\x6e\x25\xae\x8f\xf1\ \xf5\xda\xaa\x01\xf1\x6c\x3c\x4d\x4a\x03\x26\x3d\x7a\x64\xf5\xa2\ \x6e\xd7\xeb\x73\x7c\xfd\x6e\x0f\xe7\x2c\xe3\x8c\xd5\xc9\x23\xa5\ \xe3\xcc\x92\x6f\xc8\xf5\x6c\xf8\x45\x9f\xd4\x8a\xea\x24\x46\x9d\ \x5f\xaf\xf8\xfa\xbd\xb8\x7a\x8e\xca\x55\x75\xaa\x6a\x7d\x5f\x11\ \x25\xe9\xe8\x5e\x7b\xc5\x06\x02\x0a\x8e\x76\x34\xc7\xd7\xab\x4b\ \x42\x68\x6f\xdf\xee\x65\xba\x44\x23\x38\xa6\xed\xc2\x1f\x9d\x3b\ \x7f\x34\x8f\xf0\xd4\xc3\x57\x34\x1b\x62\x6e\x9b\x27\xb8\xf3\xcc\ \x86\xc2\xe3\xac\x61\x72\x5c\xbc\x21\x45\x66\x9f\xed\x7a\x7d\xab\ \xf5\x7e\x36\x38\xde\x28\x5e\xbe\x8c\x5d\x9e\x68\xce\xe2\x09\x95\ \x45\x70\xa7\x0b\x9f\x64\xd9\xe4\xc3\x6f\xb5\x5e\x0d\xa9\x7b\xeb\ \x35\xe5\x8c\x87\x3f\xb4\xc9\x52\x15\x90\x70\x19\x4b\x9a\xcc\x6c\ \xb8\xed\xf8\xf0\xc3\x51\x08\xbb\x36\x91\x7b\x84\x7e\x74\x54\xb5\ \x67\x49\x26\x4f\x94\xc9\x61\xee\x74\x54\x8b\x1e\x3c\x5a\x1f\xe3\ \xeb\xe3\x72\x28\x6f\x93\x32\x68\x91\xbc\x67\x2f\x35\x3b\x4e\xbc\ \xa4\x45\x26\x01\x38\x08\x1f\x7e\x8c\xaf\x4f\x1a\x5f\x98\x79\x84\ \xdf\x5c\xfd\xbc\x2a\xe2\xe4\xa0\x96\x62\x48\x17\x18\x0b\x36\x07\ \x1a\x2b\x1f\x7e\x8e\xaf\x97\xc4\x73\x11\x96\x9f\x78\xfe\x49\x55\ \xfc\xde\x3a\xe1\x2d\xd3\xde\x8e\xf2\x83\x6a\xc8\xb5\x9e\xe5\xf1\ \xf5\x28\x13\x05\x3b\x52\x10\xb5\x20\x26\x64\xe3\xf8\xf8\x2e\xad\ \xb7\xac\x6f\x3d\xde\x53\x94\x79\x92\xfd\xbc\xd5\x7a\xbd\xe2\xeb\ \xf5\x8e\xc2\x3a\x1d\x28\xfe\xd4\x06\xcc\x7a\x47\x81\x34\x30\x2a\ \x18\x95\xf7\x61\x68\x7f\xf8\xd4\xeb\x63\x7c\x7d\x18\x2a\x37\xb9\ \xa7\xa3\x97\x72\x98\xf0\x46\xd0\xa6\xa8\xce\x98\x03\x58\xb3\x29\ \xc1\xdb\xf8\x7a\x5b\xea\x3d\x51\x60\x74\xc3\xb9\xa4\x75\x78\x0c\ \xcc\x13\x08\x56\x9f\x7c\x22\x89\x2f\x4a\x2f\xf5\x7a\xe2\xfa\x48\ \xce\xa6\xa5\x24\x9e\x69\x3b\x55\x8d\xaf\x5a\xb4\x62\x43\xe9\x28\ \xd1\x66\xc7\x00\xd3\x12\xbd\xa2\x32\xbf\x5e\xeb\xf5\x87\x5e\x4a\ \xbe\x91\xb0\x36\xf8\xaa\xe2\x81\xa7\xbc\x2d\xd3\xa1\x2e\x63\xd8\ \x7a\x3e\xbf\x9e\xb0\x8e\xc8\x49\x56\x3f\x6c\x9d\x3a\x38\x4f\x28\ \xda\xef\x82\x11\x92\xb8\x33\x9d\x25\x12\x87\x6a\x6d\x39\x9f\x5f\ \xcf\xe9\x87\x99\x32\x24\x0d\x0a\x77\xae\xed\x69\xf2\x31\xe8\x52\ \x23\x27\xd0\xe0\x9a\xd0\x63\x3f\x7d\x5b\x89\xcc\xaf\x37\x01\xa3\ \x1d\x1d\x11\xf0\x78\x64\x47\xb5\x7f\x94\x87\x14\x8b\x8f\xb0\xbe\ \x55\x43\x79\x1d\xa9\x8c\x64\x7c\xf8\xfa\xd8\xdb\x57\x63\xbc\xe3\ \x31\xf6\x48\x10\x51\x03\x3b\x90\x57\x46\xfc\x81\x83\x2f\xea\xf4\ \xb4\xf5\x7a\x8f\x61\xf5\x7b\x6a\xed\x3a\x91\x8c\x48\x6a\x2f\xbe\ \x3f\x7a\x86\xb2\xb1\xa7\xf3\x90\x95\xc1\x89\x9c\xf2\x7a\xbd\x05\ \x77\xa2\xf3\x48\x7b\xf4\xbd\x3a\x5a\x67\xb2\x2b\xca\xd1\x0b\x58\ \x04\x84\xd8\x80\x94\x00\x58\xd1\x27\x66\x83\x07\xd3\x25\x08\x98\ \xa5\x99\xc8\x3e\xcc\xb9\x0b\xdb\xc9\xc6\x15\x66\x2d\x34\xf3\x94\ \xc3\xb2\xc7\xe9\xea\xd1\x6b\x4d\x4c\x22\x50\x7f\x09\xdc\x63\x0f\ \xe6\xc6\x8e\xbd\xc8\xaa\x3b\xca\xe3\x04\x7e\x99\x52\x18\xe9\x87\ \x64\xd8\x19\xf5\x7a\xbc\x3c\x1a\xc7\x15\xdb\x20\x73\xee\x48\x90\ \x18\x24\xbc\x27\xab\x30\xd3\x04\x9d\x4a\x6c\x45\xf1\xa1\x94\xfe\ \x43\xd1\xb6\x80\x58\x3d\x4e\x88\xa4\x53\x3e\x97\xed\x52\x0b\x99\ \x78\x9a\xc0\x58\xf7\x75\x50\x11\x96\x3b\x2a\xe5\x1b\x89\x97\x70\ \x4b\xe4\xec\xed\x57\x6b\x45\x11\xd5\xde\xf9\x89\x70\x69\x05\x85\ \x03\x0e\x64\x8e\xd0\x1c\xbe\xf5\x18\x7c\x85\xad\x37\x7b\x8a\xd2\ \x67\x75\x26\x9d\x1b\xa8\x6f\x3d\xe6\x74\xc2\x3e\x61\x46\xcb\xd7\ \xfc\x66\x9d\x72\xc7\x9e\xea\xfc\x7a\xa4\x24\x58\x0a\x10\x77\xa3\ \x26\x75\x1a\xcc\xdd\xc0\xae\xe2\xe8\x4d\xbd\x94\x33\xe9\x31\x9d\ \x6c\xa9\xe0\x0b\xc1\xd7\xfb\x85\xb9\x2f\x29\x09\xd6\x88\x32\xa5\ \x13\xee\x7c\xbc\x3c\xf1\x42\x31\xdb\x32\xe6\x80\x78\x36\x68\x2a\ \xda\xe2\xc3\x17\x0a\x4a\xcd\xe1\x73\xf4\xbd\x8f\x37\xc1\x3a\x8c\ \xb1\x0f\xa1\x6c\xb6\xb9\x71\x04\xba\x28\xbe\x3e\x8c\xeb\x31\xf7\ \x87\xd0\x71\x8e\xb5\x7e\x6a\xae\xa8\x09\x8a\x3a\xa1\xf5\xeb\x0f\ \x88\x60\xcd\x8d\xcb\x12\x12\x4a\x21\xa7\x41\xf3\x47\x37\x05\x41\ \x94\xde\xc4\x2c\xa2\x32\x5c\xa2\x88\xea\x41\x77\xe4\x47\xa3\x6d\ \x15\x35\xca\xd1\x37\x88\x9b\x5d\x00\x24\xf5\xe5\xfa\xfa\xb1\x93\ \x9f\x2c\x1c\xd1\xa2\xed\x42\xe1\x4e\xd3\xa3\x32\xe0\x32\xe7\xc8\ \x45\xf1\x99\xcb\x26\xba\xe4\x8d\x53\x2b\x2e\xbb\x39\x51\xb0\x35\ \x39\xa9\xd7\x03\xb2\x57\x65\x52\x31\xf1\x9e\xc2\xa2\x18\xcb\x67\ \x1d\xe3\x7a\x3d\x83\x10\x6c\x43\xcd\x71\x9e\x92\x27\x94\x08\x54\ \x23\x26\x56\xc6\x87\x6f\x1f\xea\xa1\x7e\x80\x1c\xb2\x2a\xe1\xb4\ \xb2\xa9\x90\x7c\x42\xe5\xbd\x53\xa2\x4b\x04\x25\x53\xa2\xe6\x89\ \x8a\x6d\x14\x8c\x60\xf1\x11\x16\x40\xc3\x1b\x9f\x7d\xf2\xe4\x1b\ \xf7\xab\x9c\xb0\x68\x45\x3d\x3a\x14\xc5\x00\x5e\xc5\x37\x14\xc0\ \xc0\xa9\x8f\x42\x9c\xa8\x72\xfe\x48\x28\xe3\xce\xee\xdf\x2b\xeb\ \x2f\xc5\x1d\x2d\x1f\x77\xf4\xdf\x7c\xe9\xcd\x97\x8b\x26\xcd\x92\ \x1c\x97\xa8\xbe\xc3\xd7\x4b\x36\x0f\x71\x23\x98\x90\x3f\xf8\xde\ \xd5\x1b\xc6\xdf\xdf\xab\xeb\x23\xa3\x79\x79\x45\x54\x9b\x81\xf1\ \x7c\x61\x04\xfc\x77\xa1\x4d\x4c\x30\xd6\xd8\xd2\x7e\xc5\x7c\xf8\ \x76\xe4\xf6\x4d\xeb\xf5\x9a\xd1\xfb\xc5\x85\xdd\xf1\x51\x51\x25\ \xbf\xa3\xcf\x54\x92\xe1\x93\xd9\x4e\x53\xa8\x6e\x57\xd3\x82\xd8\ \x21\x63\x9c\x0e\x71\x2d\xbe\x5e\xbf\x8a\xca\x25\xfd\xda\xf7\xdf\ \xfa\x74\x1d\xb0\x33\xc8\xcc\xab\x1f\xdd\x33\x66\xf7\x36\x66\x1a\ \xe2\xa2\xed\x76\x92\x4c\x93\x0f\xb6\x0e\x54\xee\xc8\x38\x33\x3c\ \xd0\xf9\xf8\x87\x8f\xc2\xe3\x6c\x9a\x64\x9d\x2f\xff\xaa\xdc\x85\ \x67\xd7\xfb\xa0\x6f\x68\x24\xe8\xf5\xf9\xf5\xfa\xdc\xfb\x1c\x3e\ \x27\x8f\xc1\xff\xdb\x85\x6c\x7c\xe8\x02\xbc\x8f\x17\x52\xa3\x42\ \x3f\x5d\x58\x32\x87\x5e\x46\x9f\x2b\x61\x5d\x9f\x5f\xdf\xc7\xf5\ \x5a\x10\x43\x4c\x6b\x29\x18\x2b\xa7\xeb\xeb\xc7\xa2\x4b\xbe\x57\ \xe3\xfe\x97\xff\xfc\x70\x37\xd3\x03\xa1\xfe\x7d\x9e\x1f\xdd\x9e\ \x5f\xaf\x3a\x2f\xf5\x7a\xdd\x51\x23\x4b\x9e\x6c\x4f\x7b\xa3\x3f\ \xcf\x02\x69\xd1\x0c\xc4\xd6\x5b\x0f\x6c\xfd\xee\xcb\x6c\x4b\x87\ \x67\xb2\x23\x67\x28\xe3\xc8\xc6\xae\xa8\xb0\xdf\x14\x82\xad\x22\ \xa4\xd8\xd2\xc5\x66\x49\x2d\xf6\x9a\x46\x31\x13\x9f\x56\x50\x6a\ \x8c\xfb\xf2\x29\x7f\xee\xe4\xdd\xfb\x3e\x32\xa4\xb5\xe4\xbd\x10\ \xaa\xac\xec\x1f\x77\x97\xf4\x1f\xe7\x6e\x86\x18\x84\x44\x8c\xeb\ \xd0\xb6\x12\xe2\x7a\x96\x8b\x42\x29\x31\xc2\x46\x46\x0d\x5c\x3b\ \x08\x99\x6e\xa9\x47\x3f\x7d\xa8\xb0\xeb\xed\x64\xac\x29\x72\x56\ \x92\x5c\x62\x11\xc5\xdf\x5c\x2d\xda\xf2\x34\x61\xa3\x92\x44\x2e\ \x1b\xcb\x2a\xde\xd3\x7b\x65\x44\xcb\xa9\xa4\xca\xb1\xa4\xf3\xfa\ \xb7\xca\xc9\x0c\xce\x84\xa4\x46\x47\x21\xa8\x61\x0a\xbb\x9e\xf4\ \xfd\x64\x1d\x1b\x96\xb7\x69\xfa\x5f\x99\x62\xf1\xe4\x7d\x0b\x46\ \xea\x5a\x2c\x14\x99\x7e\xf7\xb3\x32\x5c\xc2\xec\x3d\x3b\x4a\xa0\ \x1c\x2b\x13\x5b\xea\x61\x8c\xcc\x42\xd0\xc8\x3e\xec\x72\xc6\xd1\ \x7b\xc6\x5e\xd2\x3f\xed\x70\x9d\xcb\x9a\x3f\xfc\xe2\x07\xd4\xba\ \x5f\xda\x17\x3a\x4a\xf6\xd3\x61\xc3\x42\x60\x0b\x50\xb6\xc8\xe0\ \x87\x78\x26\xd7\x5d\xd2\x63\x58\x87\xea\x36\x7f\xe2\x53\xc6\xa0\ \xfb\xa8\x33\xa4\x7f\xac\xcc\xfd\xfb\x9a\xc5\xcd\xd1\x0d\x51\x89\ \x31\xe9\x71\xb6\xed\x54\x3c\x13\x47\xaf\x1c\x10\x83\x45\x77\xd3\ \x1b\x95\xa3\xff\xbb\x8f\x07\x3f\x16\xbe\xcc\xef\xf8\xeb\x79\xb4\ \x4b\xea\x5d\x12\x0f\x63\xd3\x3b\x1a\x61\xeb\x09\xeb\x38\x7a\x69\ \xd4\x22\x72\x12\x24\xdb\x1f\x0a\xa7\xfc\xe7\xce\x37\x93\x77\xf2\ \x5f\x2e\x9c\xfe\x0f\xe7\xcb\xd2\x70\x24\x62\x2c\x40\xeb\x91\x54\ \x19\x5d\xb3\x0e\x7c\x5c\x3d\xdf\x4e\x50\xc2\xd1\xc2\x51\xfb\xda\ \xc3\x5d\x51\x25\xdc\x92\xca\xe3\xff\xea\x83\x8b\x90\x72\x49\x1b\ \xca\x44\x0d\x45\x58\x32\x9a\x49\x6b\xa1\xf4\xe1\xfb\x6c\x33\xe2\ \x16\x8b\xf4\x76\x11\xf4\xd0\x45\xa1\x73\x75\x03\xce\x87\x99\x2d\ \x1d\xb6\xc8\x5f\x34\xb8\xf3\x3b\x6a\xd4\x2f\x1c\xbd\x80\xaf\x8e\ \x61\x9f\xc6\xb0\xde\xd3\xf7\xea\x73\x6f\x2e\x3e\xeb\xbf\x77\x63\ \x75\xcf\xf6\x34\x95\x2f\x42\x3a\x9c\x48\x8c\xb9\xe3\xe8\xf7\x9e\ \x9d\xe8\x70\x79\x9a\xc8\x8b\x96\xdf\x9a\x71\x46\xd4\x3a\x81\xb1\ \x3e\xf7\xc0\x05\xa6\x9a\xd0\xf9\x4a\x19\xa5\xd0\xdc\xd0\x39\x76\ \x4b\x78\x9b\xf0\x9e\xa2\x54\x89\xdb\x4e\x09\xf0\xa9\xd7\xdb\xff\ \xca\xe8\x3b\xbd\x79\xa7\x4c\x67\xfc\x51\x63\x78\x7b\xf1\x8e\x9d\ \xbc\xb9\xa2\xb3\xc4\x4b\xe8\x7c\x5e\x62\x84\x9e\xc8\x54\x89\x1e\ \x67\x28\x4a\xbc\xc6\x7b\xa7\x84\x01\x72\xd3\x3f\xab\x4f\xda\xb7\ \x3d\xbd\x6f\xf3\x4f\xea\xc1\x9b\xa0\x2c\x5f\x6d\xd0\xe0\x4e\x5a\ \x5f\xaa\xab\x27\x58\x70\x8c\xfe\x51\xf3\xa3\x53\x5b\x69\x9a\xbe\ \x5e\x2f\x69\x75\x9d\x79\xeb\x9f\xfb\x80\x10\xf4\x3c\xb6\x47\xef\ \x02\x3b\xef\xe0\xe7\x5d\x3a\x18\x27\x25\xa6\x52\x4c\x53\x92\xc7\ \xb5\xee\x2c\x0b\x9c\x3a\x3a\xd7\xe7\xb8\xa2\x28\x53\x67\x4a\x13\ \x56\x8d\x38\xe1\x0c\xa8\x6d\x6f\xb2\x82\x07\xf6\x20\xeb\x84\xf0\ \xa9\xf8\xa4\xff\x39\xfb\xdc\x78\x09\x44\x5f\x7b\xb0\x8e\xe1\x64\ \x43\x11\x31\x88\x45\x6e\x5d\x63\x01\x62\x62\x49\xc3\x77\xc9\x1e\ \x23\xcb\xe1\x53\x5f\x1e\xec\xf0\xad\x24\xfa\xf7\x62\x31\x77\x1d\ \x79\xda\xed\x2f\xdf\x39\xef\x6d\x0c\x27\x73\x25\x70\xee\xed\x77\ \xc6\x3f\x9a\x00\xaf\x76\xa0\x6d\x25\xe5\xcc\x7e\x76\x8f\x93\xd9\ \xa7\xe1\xa5\x8b\xa0\x1d\x64\xe0\x74\x53\xe0\x42\xb6\xe2\x17\x94\ \xd3\xef\x94\x09\xf1\x72\x7c\x3d\xe6\x9e\xc9\x81\x81\xcd\xb7\xce\ \xac\x17\x8a\x4f\xf2\xd6\xe3\x63\xc7\xe7\x59\x65\x34\xad\xc7\x3c\ \x21\x63\x18\x2c\xd3\x44\x88\xa8\xbc\x4c\xda\xe3\x3c\x12\xd7\xdb\ \xa0\x7d\xaf\x49\x40\xee\xc6\x7b\xd5\x79\x7a\xe8\x4f\x9e\xd9\xbb\ \x68\x7d\xca\xe6\xab\x5d\xe3\x91\x12\x01\x10\x91\xfb\x59\xe4\xc5\ \xbf\xeb\x14\xca\x10\x0d\x95\xe9\xf9\xf1\x09\x31\xdd\x00\x14\xc6\ \xad\x0b\x9e\x09\xac\x88\x94\x6f\x42\x1c\x23\x95\x5b\xcd\xe4\xea\ \x9c\x3b\x22\x26\xb3\xa6\xef\xde\xc9\xf9\xf3\x8f\xb5\xa0\x01\x3b\ \xfa\x22\xe7\xe2\xcd\x53\xd8\x98\x29\xa3\x10\x0e\x5d\x78\x47\x8f\ \x8e\x43\x83\x8f\x1a\x8b\x50\x11\xdd\xad\x95\x06\xab\x2e\x3f\xff\ \xab\x77\x5e\x7f\x74\x1a\x46\x6f\x9c\x96\x15\x7a\x65\x82\x72\xf2\ \x2e\x54\x0e\xe3\x7a\x38\x28\x95\x08\xc0\x36\xd3\x07\x23\x00\xd9\ \x34\x52\xa6\xdd\x71\xa8\x26\x8b\xe5\xc0\x0d\xee\x8e\xca\x0a\xac\ \x93\xd9\x51\x4c\x29\x09\x7c\x84\xed\x72\xf7\xc0\x59\xec\x8f\x0a\ \x0a\xee\x86\x2d\xf5\x09\x1d\xf6\x94\x30\x54\x77\xd5\x1b\x7c\x1d\ \x17\x4a\x0c\x9a\x06\x22\xf6\xc3\x3b\xca\xd1\x2b\x6e\x7d\x6c\xd1\ \x22\xeb\x2d\x5d\xea\xd9\x3b\xfa\x51\xa9\xd6\x2f\xb1\x79\x02\x76\ \xb7\x07\x0d\x8e\xa4\x0e\xd3\x40\xcb\x9b\x13\x75\x6a\xfa\x74\x82\ \x2b\xca\x80\x1e\x3d\xfa\x67\xb5\x01\x66\x1b\x69\x6b\xf0\x7a\x53\ \x27\x0f\x5f\x1d\x31\x53\x31\x26\x18\xb6\xa7\xa0\x7b\x14\xad\x2f\ \x3b\x5a\xbe\xea\x38\xa3\xf2\x89\x53\xa2\xe9\x92\xbd\x3c\xa1\xf8\ \xf9\x75\x73\xa5\x68\x3b\xd5\x73\xa6\x20\xde\xc2\xae\x30\xf9\xb6\ \xa7\xbc\xf5\xe2\x36\x2b\xab\x06\xe3\x8c\x7d\x58\x6f\x1a\x9f\xb4\ \xbe\xf8\x3d\xa5\x1d\x9b\x36\x2d\xf4\x49\x86\x98\xdb\x9e\xb2\xa5\ \x51\x7e\x54\xe3\xfa\x28\xf5\x44\x35\x4c\xc0\xb6\x88\xaa\x0c\x5a\ \x0e\x22\x16\x15\xeb\xd9\xd0\xbc\x5e\xaf\x95\x70\x85\xad\x63\x48\ \x3d\xf0\xea\xa0\x05\x46\xc5\x5b\x4e\xbc\xa0\x40\x9a\x5a\x7a\xaa\ \x75\x34\xd7\x56\xbd\x9e\x4e\xa2\x25\x05\x0c\x28\x24\x58\x8b\x37\ \x98\x52\x9c\xbc\x76\x01\xbd\x91\x46\x42\xd4\x09\x7c\xbd\x6c\x6b\ \x95\x8f\x0b\xa0\x43\x7a\x34\x4b\xe2\xc9\x15\x50\x78\xb5\x4f\x8d\ \xe5\x74\xdd\x79\x32\x46\x0a\xdf\x69\xc8\xea\xf5\x4b\x52\x0e\xb5\ \xb7\x3e\xc5\xd7\xb3\xa9\x31\xbe\x5e\x82\x26\x85\x8a\xe0\x93\x98\ \xa8\x36\x4d\x26\x64\x55\x91\x2c\x2e\x3b\xaa\x16\x9f\x17\x4a\x63\ \x7a\xad\xd7\xab\xac\xd0\xd5\xe8\x53\x6f\xea\x04\x2e\x54\x18\x4a\ \x36\xfd\xd1\x7c\x7e\xbd\xc2\x57\x3b\x88\x75\x44\xf9\xd3\x1e\xbc\ \x1c\x3e\xa8\x9b\xd9\x89\xa9\x59\x67\xbd\xa3\x58\x28\xc5\xd7\x2b\ \xa3\x4a\x06\xbb\x63\x2b\x51\x25\x7e\xd1\xaa\xe1\xe1\xd5\x82\x67\ \xca\xb0\x22\x87\x78\x11\xd9\x13\x2f\x6b\x2b\xb6\x89\xaa\x2d\xce\ \xd0\x3d\x89\x29\x75\x97\x33\xc6\x33\x51\x63\xee\xb2\x79\x27\x73\ \xa0\x76\xd1\xfc\x7a\xd4\x9e\x0d\x15\x30\xb8\x13\x11\x28\x5b\xf0\ \x32\x0d\x34\x8d\x67\xe6\x9e\xb7\x7e\xdb\x29\x21\x49\x4a\x17\x61\ \x5a\xaf\xf7\x0b\x29\x95\xe7\x4b\x47\xca\x00\x69\xda\x86\x0c\x10\ \x2e\xc7\x53\xd9\x0e\x1a\x86\x6a\xbd\x5e\x7a\xdb\x31\x50\xad\x94\ \xd0\xcc\xb7\xf7\x33\xae\xd7\x9b\x90\x5a\x15\xf1\xf5\x5a\xc1\x33\ \xe9\x56\x86\x50\x5b\xb8\x1f\xc8\x93\xcb\x0d\xcd\x40\x18\xca\xec\ \xa9\x99\x12\x13\xf3\xe6\x3a\xbe\x9e\xce\x66\x14\x5f\x2d\x69\xf6\ \x7e\xfa\x36\x7c\xeb\xc3\x8f\xf0\x4c\xf4\x40\x2c\x92\xcd\x53\xcc\ \x3a\xa0\x16\x89\x42\x15\xcd\xc2\xff\x7a\xf4\x55\x6e\x7c\xbc\x22\ \x9d\xd6\xeb\xf3\xfc\xa8\x92\x50\x9e\xbc\xac\xf6\x89\xbc\x12\x57\ \xaf\xd7\x57\x69\x90\x93\x77\x03\x26\x1c\x07\x61\xf9\x72\xec\x69\ \x10\x2a\x13\xaf\xd0\x22\xf1\x9e\xd0\x26\x93\x50\x8f\x7f\x32\x0f\ \xdf\x3e\xf6\x57\xa7\x9d\x65\xe4\xed\xa8\x52\xde\x9b\x97\x95\x18\ \x0f\x57\xfa\xdd\xd4\x1f\x65\x4f\xd9\x4e\x3f\x52\xc6\xab\x92\xd0\ \x7f\xc4\xad\x64\x6e\xb0\x29\x87\xce\x0c\x94\x80\x24\x17\xcb\xe4\ \xed\x13\xb8\x50\x3b\xf7\xf6\xfc\x17\x99\x71\x88\x1d\x8d\xb8\x15\ \xb2\xc6\x02\xe5\x7f\x00\xc6\xe8\x29\x48\xf1\x9e\x42\x5a\x8d\x96\ \xcf\x95\x3d\x45\x58\x48\xd1\x7b\x3b\x0a\x54\x40\x6f\x28\x64\xbe\ \x1c\xb9\xbc\x4e\x38\x25\xa3\x00\xc4\xec\x2f\x42\x76\xfe\xd3\x06\ \x27\x3a\x24\x94\xc2\x9d\x16\xad\x7e\x9c\x31\x22\xea\xd1\x63\xee\ \x13\xb2\x2f\xc7\x8d\x8c\x4e\xc5\xbc\xe8\xc3\x2c\x08\xb1\xed\x59\ \x8c\x88\xa9\x96\x74\xe7\x61\x42\xa0\x18\xd9\x4a\x99\xc0\xaa\x3c\ \xe3\xa3\x03\x5b\x7a\x9e\x12\x62\x11\xec\x53\x38\xa9\xe5\xff\x47\ \x8a\xa8\x96\xa8\x5a\x04\xd8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x0f\x6b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\xf4\x00\x00\x00\x4b\x08\x03\x00\x00\x00\xb1\xe3\x85\xac\ \x00\x00\x00\x42\x50\x4c\x54\x45\xd5\xd5\xff\xf6\xf7\xff\xda\xdb\ \xff\xef\xef\xff\xdf\xe0\xff\xe7\xe7\xff\xea\xea\xff\xea\xeb\xff\ \xeb\xeb\xff\xdf\xdf\xff\xf7\xf7\xff\xfa\xfb\xff\xf3\xf3\xff\xd7\ \xd7\xff\xff\xff\xff\xe6\xe7\xff\xdb\xdb\xff\xe3\xe3\xff\xd5\xd6\ \xff\xf2\xf3\xff\xee\xef\xff\xe5\xe6\xff\x96\xf6\xba\x85\x00\x00\ \x0e\xe4\x49\x44\x41\x54\x78\x5e\xed\x5d\xd9\x92\x24\x37\x08\x1c\ \xa4\x3a\x8f\xbe\x66\x76\xff\xff\x57\x0d\x24\x14\x52\xd7\x4e\xd8\ \x0f\x23\x47\x6c\x84\x52\x05\xd5\xf6\x9b\x9d\x83\x0e\x20\x55\x1f\ \xf7\x1f\x45\xc7\x7e\xdf\x77\x76\xf7\xed\x4e\xf7\x6d\xdf\xb7\x3b\ \x0f\xc1\x2e\x8e\xb6\x63\x3b\x88\x87\x81\x32\x2d\x94\xf9\xf9\xca\ \x05\x96\x3c\x2f\x6a\xcb\x3c\x09\x1e\xd3\x43\x9e\x71\x1c\x1f\x8c\ \xd7\xe3\x35\xb2\x29\x56\x19\x70\xc3\xb0\x0e\x6c\x6b\x5a\x13\x3f\ \xcf\xe7\x73\x65\x4b\x29\x3d\xd3\x2d\xdd\x6e\x1f\xec\x3f\x3e\xf0\ \x30\x7e\x94\x80\x8e\x1d\x9e\x84\xf5\x8d\xf9\xdf\x95\x6d\xf1\x02\ \x12\x53\xde\xc1\xbc\x72\x9e\x29\x33\xc0\xfb\xaf\x99\xc9\x16\xd6\ \xf3\x22\x98\x95\x72\xc6\xfc\x98\x9d\xf4\x51\x59\x07\xed\x41\xbd\ \x93\x9e\xd6\xf5\x29\x8e\xc9\x06\xe9\x37\x19\xcf\xf4\x71\xbb\x81\ \xf0\x06\xa4\xf7\x30\x87\x17\xe3\x58\xdf\xc5\xf1\x6b\x33\x10\xf3\ \x6d\xd1\x2e\xc8\x94\xd9\xd3\x42\xcb\x97\xc5\xfa\xfc\x4b\x1c\xa2\ \xfc\x8f\x91\xfe\x1a\x65\x54\x94\xaf\xaf\xd7\x60\xd1\x9e\x56\x01\ \x07\x79\x5a\x11\xe9\x37\xe6\x3b\xdd\xf0\xdc\x3e\x38\xda\xd9\xb5\ \x21\xbd\xc7\xfa\x2e\x41\x2e\xb1\xce\xcf\xae\xe3\xee\x91\x7e\x90\ \x71\x4e\x94\x65\x1c\x59\xc3\x3d\x30\xcf\x12\xe7\x32\x9c\xf4\x49\ \x49\x9f\x10\xe9\xc6\xbb\xd1\xbe\xca\x33\x30\xe9\x80\x44\x7a\x7a\ \x1a\xe1\x6e\xe9\x79\xbb\xd9\x14\xaf\x9c\x37\x20\xbd\x83\x84\x6d\ \x21\x9f\xd8\x8c\xf3\x3d\xd6\x74\xe7\x1c\x91\x9e\x17\x3a\x98\xf8\ \xaf\xe0\x9c\x1f\xb0\xee\xd3\x3b\xc6\xc8\xcc\x0b\xe9\x55\xa4\xaf\ \x6c\x03\x48\x1f\xd8\x56\x5d\xd3\x95\x78\x7e\x40\xba\x32\xfe\x94\ \x18\x67\x28\xeb\xb7\x9f\x26\xbd\x63\x87\xdb\x09\x3b\x38\x59\xd5\ \x85\x79\x00\x6b\x3a\x06\xf6\x71\x6c\xf9\xf0\x35\x3d\x38\x9f\x75\ \x76\x8f\x48\x9f\x46\x79\xc6\xc7\x0b\xac\x57\x91\xce\x9c\x8b\x07\ \xf1\xe0\x5c\xe7\x77\x4c\xef\x29\xdd\x94\xf7\x60\x9d\x9f\x1f\x26\ \xa0\x53\xbe\xcb\x20\x9d\xde\x39\xde\x69\x33\xec\x14\x6b\x7a\xec\ \xde\x25\xda\x63\x4d\x37\xcc\xc5\xee\x1d\xd0\xa9\x5d\x4d\xf6\x71\ \x3a\x04\x60\xdd\xa6\xf7\x97\xd0\xad\x90\x30\x07\x12\x66\x77\x9b\ \xdf\x99\xef\x26\x6b\x7a\xe7\x1c\x26\x5e\x28\x67\xf3\x75\xdd\xd7\ \x74\x1e\x94\x6d\x8e\x97\x20\xc7\x16\x1e\x98\x84\x70\x7e\x62\xf7\ \xce\x78\xf0\x33\x8a\x8d\x16\xe9\xfc\xc4\xee\x5d\x23\x7d\x78\xad\ \x80\xed\xde\x13\x3b\x90\xce\xb4\x4b\x98\xa7\x9b\x20\xf9\x9a\x3e\ \x01\xf3\xbc\x00\x59\xc7\x9c\x27\xfb\xb5\xe4\x1a\xf8\x67\x6c\x41\ \xf8\xb1\x5d\xe8\xc2\xe3\x50\x6c\x78\x9d\xab\x57\x3e\xb6\x12\x98\ \xf3\xf8\xa1\x8d\xa3\x00\xef\x4d\xd7\x40\x71\x9b\x9c\x71\xe5\x8d\ \xb5\xb1\x0d\x3a\x0a\xd2\x03\x33\x3f\xe0\x5c\x80\x3f\x82\x80\x10\ \x2c\x3e\xfb\x5f\x2a\xce\x1e\x01\x61\x1b\x9e\x0e\xda\xc1\xfe\x76\ \xc1\x5d\x6c\x07\xe5\x4c\x36\x69\x3a\x83\xdf\x08\x16\x62\x93\x7f\ \xe3\x53\x66\x03\x74\xd2\xa7\xe0\x3b\xcb\x5b\xa9\xce\xf3\xac\xaf\ \x12\x87\xbd\x41\xb8\xc4\x37\x58\x3f\x00\xda\xd8\xf0\xd6\x41\x1b\ \x50\x6c\x65\xee\xf8\x67\xb8\xfb\x1d\x26\xf1\x4d\xf8\x4d\x4e\xb9\ \x1f\x79\xf1\x6a\x86\x4e\xfa\x24\x9c\xcf\x59\xdf\xba\xb6\x30\xa6\ \xe0\x5d\x7e\x21\x75\x28\xac\xf3\x0f\x7e\x1f\xfa\xeb\x08\xe4\x63\ \xf3\x41\xf8\x4d\x94\x83\x74\x65\x9b\x30\x9b\x6b\xc4\x13\x29\xf5\ \x32\x24\xb4\xf5\x07\xf1\x60\xd7\x82\xec\x8e\x9f\xdd\xc8\x75\xec\ \x18\xd8\x98\x60\xc7\xe2\x3b\xb9\xcc\xbf\x62\xa7\xa3\x20\x2c\x95\ \xb4\x2c\x6c\x88\x2f\xc6\x82\xcd\xdc\x54\xec\xde\x1f\x23\x36\x72\ \x91\x9b\x79\xd8\xde\x5d\x73\xef\x76\x46\x5f\x93\x3d\x29\x79\xee\ \xfd\xa6\xc7\xb6\x27\xdb\xc7\xf3\x23\x35\x4d\xc3\x76\xea\xc9\x6c\ \x43\x36\x2e\x56\x38\x9c\xd3\xe9\xf0\xdd\x3b\x61\x8f\x54\x16\x5b\ \x2c\x33\x63\xa4\x33\xcf\xec\x41\x7a\x9c\xd3\x1d\xab\xda\xc0\x76\ \xee\xde\x93\xba\x74\xe6\xde\x8d\x79\x1c\xd9\x5a\x64\xe4\x3a\x34\ \x2d\x63\xb9\x77\xec\x4f\xad\xe6\x42\x1b\xc3\xcf\xe9\x9e\x7b\x17\ \x4f\x4c\xbd\x63\x0e\xe2\x05\x73\x04\xfa\x58\xe5\xde\x03\x5e\x65\ \x53\x73\xe2\x53\xe4\xde\xc5\xf0\x30\x9a\xe4\xde\x3b\x88\x0d\xe7\ \x0e\x75\x98\xd9\xeb\x73\x7a\x99\x7b\xb7\xf3\x4f\xce\x14\xbc\x6b\ \x8d\x6d\x2e\x48\x7f\x48\x72\xa6\xce\xbd\x3f\xca\x44\x2c\x58\x2f\ \xcf\xe9\x4c\x38\x22\x5d\x89\xe7\xa3\x3a\xd0\x22\xf7\xde\xb1\xbb\ \x27\xf1\x1b\xdb\xbf\xd4\xd3\x17\x1e\x5f\x19\x83\xf1\xeb\x2d\x0f\ \x3b\xcf\x73\x44\xfa\x03\x69\x58\xb1\xd7\xeb\xf7\x6f\x4b\xcc\xac\ \x2f\xa7\x7c\x18\x12\xc2\xbc\x5a\xd3\x51\x5d\xfd\x3c\x59\x6f\x44\ \x7a\xe7\x5d\x52\x4c\x36\xb3\xff\x5b\x3d\x9d\x07\x18\x07\x9c\x73\ \xcd\x92\xd5\xd3\xfb\x14\x4d\x14\xec\x02\xeb\x8a\x42\x1b\xa3\x5c\ \xd3\xad\xca\xa6\xc9\x38\x75\x40\x9b\x8d\x5c\xcf\xbd\x47\x94\x5b\ \xce\x69\xfb\xae\x9e\x4e\x19\xb9\x77\xe1\xbc\xce\xbd\x83\xf7\xa8\ \xa7\x8f\xbe\x7b\x37\xc6\x7f\x47\xc5\x45\x06\xca\xaa\x8a\x54\xaf\ \xe9\xfc\x28\xe3\x9f\xc5\xfc\xfe\xd9\x8a\xf4\x1e\xea\xc8\xbd\x7f\ \x5f\x4f\x07\xef\xc8\x7a\x44\xac\x4b\x80\x2b\xe3\x58\xd4\x27\xc7\ \xe8\x4d\x14\x0f\xc5\xef\x32\xd4\x6d\x78\x3d\x3d\xbd\xd2\x1a\xeb\ \xb9\x45\xfa\x1a\xab\x7a\x13\xd2\x3b\xe9\xc4\xb6\xe9\x60\xae\x7d\ \x8e\xa7\xa2\x9e\x4e\x45\x0e\xb3\x9e\xdd\x79\x78\x2d\xfd\x0c\xf4\ \xc7\x3c\x71\xa4\xb3\xe9\xb2\xce\x28\xf8\x1e\x94\xef\x24\xbe\xae\ \xa7\x6b\x7b\x1c\xea\xe9\x4a\xbb\xae\xe7\x0d\xce\xe9\x1d\xbb\x97\ \xd9\xb0\x77\xd7\xf4\x32\x69\xfe\x71\x83\xed\x79\x23\xcd\xcd\x90\ \x4c\xed\xb4\xa0\x8f\xc2\x76\x72\x53\x16\x4c\x1a\xe9\xec\x8d\x74\ \x9f\xe0\x1f\x4a\x3a\x12\x33\x30\xc1\x60\x47\x36\x85\xae\xea\x5e\ \x4f\x47\x59\x35\x25\xdf\xc9\xa5\x14\xc9\x99\x09\x98\x97\x05\xa9\ \xd8\x09\x96\xc5\x66\xf5\xfc\x3b\xe7\xd3\xc8\x72\xb2\x07\xbf\x49\ \x72\x49\x3a\x55\xa9\x3f\xc4\x67\x36\xf6\xba\x72\x65\x92\x42\x4b\ \xde\xd9\x9d\x6f\x2a\x4c\xba\xc8\xf8\xd9\x50\x6c\x81\x69\x2d\xda\ \xff\xc7\x01\xf4\x5f\x4b\x2e\x7d\x92\xf9\x6f\x08\xd2\x03\x59\x4d\ \x93\x04\xd1\xb7\x55\x62\xa1\x6c\x75\x60\xab\xb5\xc9\x0b\x20\x31\ \xf5\x36\x93\xc1\xd3\xa5\xbe\xe6\x53\x1f\xce\x34\x9e\xb7\x44\xc7\ \xc9\xc9\x3f\x42\xa7\x31\x7a\xc1\xe5\x5c\x4f\x72\x59\x4f\xbf\x02\ \x89\x05\x78\x79\x88\xad\x00\xc8\xb6\x2a\x9b\xfe\x0c\xc6\x81\xa8\ \xb6\x59\x9b\x01\xc8\x16\x92\xc1\xba\x2d\x90\x0d\x2b\xeb\x9d\x74\ \xd0\x3e\x63\x76\xcf\x66\x5e\x63\x8b\x19\x7e\xc1\xbc\x8e\x5f\xf2\ \xdb\x6a\x6c\x19\xb3\x3c\x3b\xab\xad\x09\xeb\xa8\xb1\xed\x79\xdb\ \x48\x3c\x83\x48\x1c\xaa\x6c\x62\xcc\xb5\xfe\xc2\xec\xce\xcf\x2e\ \x6f\x79\x29\xf9\xf4\x57\x31\xde\xab\x6c\xbd\xfb\x1d\x7f\xcd\xf6\ \x37\xee\xbb\x9a\x83\x34\x12\x32\x91\xac\x89\x1a\x25\xb4\x2c\xe7\ \x3e\x6e\x16\x6f\x3b\x39\x17\x3b\xa8\x63\x58\x72\x46\x53\xb0\xfc\ \x00\xb1\x75\x4f\x2b\x80\x8c\x1c\x12\xb1\xc8\xbd\x27\x6d\x8c\xc4\ \xd6\x1d\xfe\xa7\x09\xe8\xe7\x35\x14\x5d\x4c\xd1\x84\x07\x59\xb9\ \xb2\xe2\xa2\xf8\xbe\xef\x7d\x5e\xea\x1e\x39\x7e\x81\x74\x10\x2e\ \xa3\xca\xbd\xaf\xea\xa2\xd8\xa2\xa7\xf4\x90\x35\x99\xb4\x29\xb5\ \xca\xbd\x77\xf8\x1e\x14\xbb\xd2\x6d\x8f\xce\xc8\xa8\xa7\x1b\xbe\ \xeb\x7b\xaf\xb5\x6c\x28\xaf\x22\xc8\xd5\xd5\x0a\x17\x88\x5b\xd8\ \xa2\x9e\x1e\x5a\x36\x61\x3f\xa1\xbe\x26\x68\x58\x65\xeb\x7d\xef\ \x42\x3c\x1e\x64\xe3\x2e\x7d\xef\x60\xfe\xda\xf7\xbe\xe4\xfc\xa7\ \x6e\xd8\xc7\xe4\x2d\xd0\x4c\xf7\x58\x74\xc3\xae\xa7\x94\x6d\xb8\ \xd4\xd3\x43\xdd\xf2\x2c\xfb\xde\x3f\x7f\x9a\xf4\x9e\x9c\x71\x1d\ \x9b\x98\x32\x4e\x45\x3d\x9d\xa2\x9e\x0e\xfc\xb1\xef\xdd\xa2\xbc\ \x10\x30\x22\x23\xe7\xd9\x19\x70\xee\xb8\x94\xd3\x8b\x1e\xe8\xf4\ \x34\x2d\x5b\xd9\xf7\xde\x86\xf4\x1e\xea\x5a\x65\xd3\x73\xc9\xf7\ \xf5\x74\xf0\x1e\x7d\xef\x45\xe7\xf1\x82\x11\x79\x58\x61\x1c\x91\ \xfe\xe2\x17\x5b\x10\x0e\xc7\xf6\x4d\x3d\xfd\xc6\x3f\xa2\x87\xa2\ \x59\xa4\x77\xd2\x23\xd7\xe4\xeb\xb9\x81\xe8\x40\xfe\xdd\x38\xcf\ \x59\x1d\x31\xc3\x91\x7b\x77\xc1\x43\x31\xbd\x83\x74\x8b\x74\x4d\ \xc5\x7e\xaf\x4f\x4f\xb5\x3e\x1d\xcd\x52\x1f\x09\xe2\xf4\x56\x6b\ \x7a\x5f\xd1\x49\x4d\x13\xcc\xf7\x4d\x5d\x28\x18\x7d\x3d\x07\xe7\ \xe2\xa1\x23\x10\x03\x42\x9d\x5e\xd6\xd3\x99\x79\x44\x7a\x74\xce\ \x5c\xf5\xe9\x6b\x7a\xaf\xa7\x0b\x70\x60\x0b\xce\x9b\x91\xde\xbb\ \x67\x78\xa0\x96\xee\x1d\xfe\x78\xd9\xba\xee\x9b\x77\x21\x9b\x34\ \xb3\xe9\x98\x8b\x1e\xb9\xd9\x54\xab\xde\x23\x87\xc3\xfa\x6b\xbc\ \xe8\xd3\x11\xed\x86\xd7\x59\x4f\xf7\x9e\x48\xb8\x36\xfa\xf4\x0e\ \x57\x66\x10\x8a\x07\xbb\x86\x7a\x71\x4e\xcf\x16\xe5\xfa\xc6\x31\ \x5d\x94\x03\xba\x94\x13\xb4\x6c\xfa\x7b\x42\x39\x7d\x3a\x31\x5a\ \xe3\xcc\xf8\xba\x34\xc3\x96\x7c\x87\x6a\x15\xe2\x45\xc6\x13\xe9\ \x19\x7d\x3c\x37\x53\x15\x5c\x26\xcb\xbd\x87\x96\x6d\xae\x94\x0e\ \x53\xf6\x2e\xbe\x85\x2c\x0b\x4b\x8b\xe9\x1b\xe4\x8d\x5f\x50\x36\ \x65\x36\x7d\x18\x59\x3d\x40\xa1\x70\x21\x8a\x53\xec\xee\x55\x36\ \x79\x21\x4c\x5c\xec\xb0\xc3\xfd\x18\x3a\x2e\xa4\x33\x72\xa1\x65\ \x9b\xc5\x09\xf9\x05\x0e\xa9\xc0\xa1\xd6\x42\x78\x65\xdf\x8c\xea\ \x1b\x75\x35\x2b\xb8\xf0\x6f\x4f\x43\xd6\x40\x51\x8d\x1d\x66\x41\ \x71\x62\xca\x2f\x89\xc3\xef\xff\x05\xbd\xca\x16\x5a\x36\xb6\x77\ \x7c\xd9\xfa\x43\x47\xc6\xc8\x11\xdf\xa8\xa3\x97\x2a\x46\xd4\xd0\ \x0f\x04\x75\x09\x21\xd9\xb5\x6c\xc4\x86\xcb\x59\xc4\xe0\x37\x17\ \x2f\xb6\x97\x36\x75\xd2\x01\x68\xd9\x30\xec\x55\x01\x5a\x36\x0c\ \x53\x2a\x1f\x00\x65\xe5\x9b\x0e\x44\x78\xde\xf3\x81\xdc\xa3\x91\ \x4e\xae\xf3\x61\xb8\x96\x4d\x6c\x27\xaf\xa7\x8b\xe9\x10\x6c\x6c\ \x7f\x89\x6e\xb5\x57\xd9\xfa\xfe\x9d\xde\x7b\xe4\xbc\x6d\x08\x19\ \xb9\x4c\xe7\x39\x3d\x17\x19\xb9\x5f\x93\x9f\xd3\x97\x8b\xc2\xc5\ \x1b\xe4\x90\x7a\x67\xe7\xb0\xbc\x3b\xbf\x79\x58\xdf\xbb\x6f\xe6\ \x90\x8e\x93\xf4\xbb\x0b\x9b\xc4\x5a\x90\xde\x13\x72\xea\xd0\x08\ \x76\x07\xeb\x40\xd9\xf3\x5e\x9f\xd3\x81\x5f\x9e\x7b\xcf\xf5\xe5\ \x81\xd1\xf7\x7e\xd9\xbd\x0f\xc3\x4b\x86\xe6\xe2\xe2\x1e\x39\x88\ \x5b\x40\xba\xeb\x5b\x8c\xf5\x56\xa4\xf7\xbe\x77\xbb\x5d\x6a\xdb\ \x91\x9c\x8b\xdc\xbb\xf1\xfe\x76\x4e\xbf\xf4\xbd\xcf\xcb\x9c\x6b\ \x59\x93\x0b\x18\x85\x77\xa8\x56\x1d\xab\x8f\xb8\x73\x86\xf3\x71\ \x48\xc3\x2a\x6e\xb8\x68\xa8\x75\x95\xad\xe7\xde\x37\x3f\xa7\xa3\ \xfb\xd9\x73\xef\xbe\xc3\x29\xce\xe9\x39\x38\x8f\xbe\x77\xf6\x0a\ \x50\xce\x66\x7d\xef\x3c\xca\xc2\xea\xea\xc9\x77\xc7\x79\x8f\x5c\ \x3a\xef\x9c\xb9\xdd\xd8\xb7\xd3\xb2\x75\xec\x30\x72\x95\x0b\x69\ \x8c\x57\x0a\x97\x4a\xcf\x26\x5b\x62\xfa\x53\xdf\xfb\x8c\x84\x5c\ \x5c\x34\xe4\x55\x36\x49\xc1\x56\xb4\xf3\x03\x7d\x3a\xac\xae\xa7\ \x43\xbc\x28\x9c\xab\x42\x5d\xa2\xbd\xcb\x9a\x9a\xb0\x8e\x7b\x53\ \x38\xca\xd9\x61\x4d\xc7\xa8\x14\x2e\x5e\x56\xfd\x22\xeb\x7a\x0f\ \xe6\x17\x10\xef\xa4\x3f\x66\xb6\xa8\xb2\x5d\x72\xef\x43\xe8\xd3\ \x87\xa1\xca\xbd\x3b\xe9\x89\x4d\xa8\x17\xba\x3f\x1b\x92\xde\xa7\ \x77\x35\xe5\x1a\x3e\x04\x8c\x88\x72\x31\x88\x17\x2b\xc6\xab\xdd\ \xbb\x47\x7a\x90\x2e\x0e\x1b\x39\x36\x60\x88\x82\xfa\x90\xde\xeb\ \xe9\xb0\xe4\x8a\xd5\x67\x2b\x01\x63\xa7\x9c\xe4\xb5\xfb\x9a\x8e\ \x19\x1e\xe6\x33\x3b\x19\xe7\xf4\xc5\x00\xe7\x62\xe0\x3c\xd6\xf4\ \xe9\x84\x57\xd9\x94\x70\x71\x8e\xe1\x1b\x7d\xba\x13\x0e\xf9\x22\ \xc7\xfb\x53\x58\x6f\xd4\x18\xd9\x49\x47\x05\xc1\xef\x7b\x67\xaa\ \xb5\xcd\xfb\x04\xf2\x56\x27\x4c\x41\xe0\x88\xce\x99\x7a\x23\xe7\ \xdd\xb0\xa5\xa4\xc9\xf5\xe9\x75\xeb\x4c\x4a\xa5\x3e\xfd\x5d\xa9\ \xdc\x6a\x23\xd7\xa7\xf6\xb8\xef\x9d\x4c\xcb\xb6\x6d\xea\xf7\x7c\ \x88\xa1\x0f\x9a\xb4\xf9\x99\xc4\x84\x68\x8d\xf4\x49\x09\x57\x35\ \xdb\x3c\x95\xc9\x19\x36\x24\x67\xae\x0a\x75\xe1\x3d\x79\x0f\x74\ \xac\xe9\x02\xbb\x94\x80\x17\x73\xa3\xdd\x0a\xea\x55\x1a\x56\x9c\ \x6b\x1e\x50\xe1\x43\x65\xad\xf4\x4b\x16\x67\x35\x36\xbb\x4b\x8e\ \x32\x65\x54\xd9\x16\x68\xd8\x8e\x83\xd8\x23\xf7\xb4\x6f\x6c\xc8\ \xc2\x8b\xdd\xed\xbf\xff\xd4\xb2\x6d\xa4\xe9\x2b\xcf\xbb\xb3\xdb\ \xed\xb4\xcb\x1e\xef\x86\xe8\xb9\xf7\xa9\xa8\xb9\x54\xb9\xf7\x39\ \x97\x20\x1e\xd9\x55\x4d\xae\xb1\xa6\x23\x40\xa1\x64\xb3\x93\x29\ \xbd\x5f\x22\xe8\x1a\x36\x7e\xe3\x89\x2a\x1b\x3f\x74\x76\xa0\xec\ \x1e\x42\x2d\xd0\x4b\xab\xc0\x1c\x7c\x9b\x3c\x3e\xc3\x3b\x48\x2d\ \xda\xf4\x85\x74\x33\x52\x03\xe2\xc6\x48\x63\x7d\xab\x81\x3c\x15\ \xf8\xd6\x41\xe2\x2c\xd6\xd1\x4b\x4a\xec\x83\xfb\x06\xe8\xa4\x23\ \xd6\x31\xc3\xcf\xa8\xb3\x99\xca\x46\xcd\xfd\x22\xb6\xe0\xd7\x71\ \x2c\xaa\x62\x5b\xec\xc6\x48\xb1\x83\xb2\xdf\x03\x4c\x6a\x1b\xd4\ \x6c\x0a\xbc\xa1\x63\x93\x37\x33\x0e\x2d\x5b\xa8\x95\x77\x36\xd0\ \x2e\xa0\xbf\x81\xed\x5e\x65\xeb\xd8\x31\xb0\x7b\x67\xc3\x2e\x86\ \x47\xde\x37\xca\x3b\x99\x92\x0d\x5a\x36\xb1\x42\xcb\x06\x5b\xf2\ \x6c\x11\x08\x20\x25\xf7\x50\x03\x5e\x27\x92\x9f\xd8\x8a\xdc\x3b\ \x76\xef\xb0\xdb\x99\x7d\x6f\xaa\x70\xe9\xa4\x17\x97\x0d\x6d\xdb\ \x7b\x95\x6d\x0b\xad\x03\xf2\xee\x97\xbe\xf7\x45\x5d\x34\x46\x8a\ \xb1\x03\xe9\x2f\x3c\xd7\x7a\x8b\x21\xc9\x03\x97\xe2\xc8\x26\x8f\ \xa2\xe9\x8d\x91\xbd\xef\x1d\x37\x99\xdb\x5e\xf5\x92\x7b\x37\x44\ \xff\x51\xd5\xf7\x7e\xd5\xb2\x8d\xd6\x19\xf9\x3a\x2f\x0f\x54\x0c\ \xe6\xd0\x04\xeb\x61\x5e\xdd\x2e\x65\xca\x55\xb4\x45\xb6\x8e\xf4\ \xde\xf7\xce\x5c\xbb\x6d\x97\xdc\x3b\xa2\x5d\xb7\x45\xc2\xf9\xa5\ \xef\x3d\xbf\xab\x56\x47\x41\x7c\x96\x8d\x3d\x08\x1f\xca\x48\x8f\ \x7a\x3a\x90\x54\xe2\x82\xc1\x87\xf5\x76\xc9\x99\x9e\x9c\x11\xd0\ \xee\x79\x58\xda\xdf\x72\xef\x31\xbf\x53\x16\xa3\x6a\x7e\x9f\xdf\ \xb5\x6c\xe3\x24\x0e\x78\x08\xe3\x9a\x88\xf5\x50\xff\x8d\x46\x0a\ \xe3\x7d\x88\x7a\x3a\x48\x7f\x5a\xd3\xcc\x67\xfa\x4c\x6d\xd7\xf4\ \xfe\xe5\x1e\xbb\x47\xae\x54\xb7\xa8\x95\x51\x4e\xc6\x37\x46\x5e\ \xa8\xe0\xfc\xa2\x65\x1b\x2d\xd2\x79\x44\xa0\x87\x98\x0d\x64\xa7\ \x61\x88\x7a\xba\x91\x8e\xa2\x2a\x87\xfc\xfa\xe9\x71\xde\x88\xf4\ \xbe\x77\x8f\xc6\xee\xcd\x39\xb7\x48\x0f\xce\x11\xe9\xc6\x79\x66\ \xbb\xce\xef\xbe\xa6\x8f\xe7\x8d\x91\xf2\x44\xa0\x5f\xd4\x0e\xd7\ \x7a\x3a\xae\x92\xfb\xe4\x50\x17\xdf\x3e\xd2\x7b\x79\x15\x92\x65\ \x0c\xdf\xbd\x57\x5a\xb6\x7c\x78\xb4\x57\xf7\xbd\x97\xdf\x65\x63\ \xaa\xc5\xf3\x1b\xbb\xf7\xd0\xa7\x03\xab\x8d\xaa\xca\x66\x4d\x72\ \xc8\xbe\x4b\xa4\x33\xeb\xb7\xf4\xd9\x32\xd2\xfb\x7d\xef\xe8\x93\ \xb3\x1b\xd3\xaa\xdd\x3b\x86\x21\xfb\x70\xcc\xd5\x77\xd9\xae\xf7\ \xbd\xbf\x34\xd2\xe5\x16\xe8\xd7\xb5\x9e\x9e\xd6\xe1\xaa\x4f\xc7\ \x4e\x8e\x29\x57\x7c\xf2\xf8\x79\xd2\xfb\x17\x1d\x00\x66\x1b\xba\ \x0d\x21\x9e\xde\x3b\x62\x61\xc0\xe5\xbe\xf7\xea\x26\x0a\xc1\x58\ \xde\xf7\x3e\x62\xfb\x0e\x0c\x55\x3d\x3d\xbe\xaa\x0c\xc2\x15\xd0\ \xa7\xcb\xec\x0e\xd6\x2f\x5a\xb6\xf2\xbb\x6c\xfa\xf6\x17\x0f\x87\ \x7f\x82\x42\xdf\x4b\x3e\xb5\x6c\x8e\x0d\x2f\xa2\xd0\xb2\x1d\x3c\ \x02\xa5\xce\x01\xfa\x3e\xfc\xf0\x0a\x1b\xf2\xb0\x3c\x14\xbb\x3d\ \xcd\xd0\x0b\x2e\xf5\x77\xd9\xa0\x8e\xbf\x02\xb5\x37\x5c\x14\xe9\ \x5a\xb6\x12\xae\xba\x87\x96\x8d\x30\xaf\x01\xd1\x2f\x86\x14\x65\ \x7c\x97\xed\x4e\x20\x5f\xa3\x03\x34\x6f\xff\x57\xee\xbd\xcb\x9a\ \x2e\x5a\xb6\x77\xde\x43\xcb\x46\xf2\xdb\xdb\xf6\x05\x54\x7d\x97\ \x0d\x5a\xb6\xe3\xd4\xb2\xed\x88\x71\xc0\xd6\xba\x1d\x65\xd5\xb8\ \x31\x92\x47\x68\xd9\x4c\xb9\xda\x94\xf9\x4e\xfa\x5c\x7d\x97\x8d\ \x6d\x62\xe7\xd5\x36\xab\xad\x55\x5a\xb6\xc5\xbf\xba\x69\xdc\xe7\ \xf8\x2e\x1b\xb4\x6c\x5b\x68\xd9\x72\x11\xed\xe4\xbf\xfc\xbb\x6c\ \x88\x70\x92\xf8\x0f\x9a\xb7\xbf\x25\xd2\x7b\x95\xad\x0b\xd9\xd8\ \x61\xde\x52\x49\x5b\x2c\x6f\x94\x91\x7b\x8f\xef\xb2\xe9\x7d\xef\ \x84\x62\x75\x68\xd9\xe2\xbb\x6c\x51\x71\x81\x96\x0d\x1f\x77\xb8\ \x1e\xd9\xce\xf6\x67\x6c\xe4\xd2\x93\x3d\xa4\x0e\xa8\xb4\x7d\x40\ \xdd\xf4\xd1\x44\xd6\xd4\xb1\x63\x47\xaa\xe9\x19\x14\x5c\xc2\x68\ \xb7\x9d\x3b\x1d\xe5\x37\x5c\x16\xca\xec\x4b\x2d\x9b\x7f\x97\x2d\ \xee\x0e\xf4\x4f\x74\x79\xcd\xa5\xbe\x7e\xc4\x53\xb0\xce\x79\x9c\ \xd3\x71\xdd\xfb\x07\x3f\xad\xab\x6c\x9d\x78\xcf\xbd\x13\xfb\x6f\ \x73\xef\x38\x05\xb9\xd2\x41\x49\xff\xd3\x77\xd9\x46\x65\x1d\x55\ \x36\x8b\xf4\xf1\x22\x6b\x7a\xc5\x05\xff\xea\x93\x67\xe4\x20\x58\ \x85\x6b\x15\xe9\x3d\xf5\x1e\x7d\xef\xdb\xbf\xe6\xde\xe3\x6b\x4d\ \x6a\x90\x34\xa9\x03\xe9\xd5\x97\x1d\xe2\x9c\x7e\xf9\x5a\x13\x5b\ \x80\x59\x8f\x2a\x5b\xd9\x03\xfd\xf1\x4c\xcd\x32\x72\x5d\xcb\x26\ \x5e\x0b\x6c\xca\x39\xbe\x24\x1d\xb9\xf7\xc8\xc9\xa1\xb4\x5a\xde\ \x0d\x3b\x63\x78\xeb\xfb\xc9\x39\x3b\xdc\x22\x67\xa3\x84\x7e\xc6\ \xe3\x25\x6e\x4d\x6a\x18\xa8\xac\x6a\xc9\xa5\x90\xa7\x37\x8b\xf4\ \x1e\xed\x68\xf0\xd4\x04\x84\x67\xa2\xea\xdc\xfb\x21\x86\xd4\x3b\ \x3f\x8c\x9a\xf7\xc5\x3f\xd1\x65\x60\xc2\xdd\x5c\xe5\x02\xac\x1e\ \xe9\xf8\x16\x9f\x73\xfe\x4c\xd6\x31\x25\x79\x77\x95\xb7\xa4\x96\ \xaa\xd5\x4e\xb8\x18\x34\x2e\xec\x91\x79\x02\xeb\x00\x73\x4d\xca\ \xb8\x07\xfb\x42\x84\x63\xb1\x60\xae\xd7\xf4\xd0\xb2\xd9\xb7\xd9\ \x4c\xbe\xe8\xac\xaf\x70\x2e\x70\x19\x10\xe9\x4f\x1e\xab\x92\xee\ \x84\xd7\xdd\x52\xff\x00\x0e\x5e\x0c\x4e\xab\x94\x1d\x32\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x58\x32\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\xdc\x00\x00\x01\x7c\x08\x06\x00\x00\x00\xa4\x31\xd5\xdb\ \x00\x00\x57\xf9\x49\x44\x41\x54\x78\x5e\xec\xdd\xc1\x4b\x55\x69\ \x18\xc7\xf1\xdf\xb9\xd7\xeb\x95\x0b\x95\x61\x10\x3a\xad\x24\x50\ \x50\x08\x12\x0a\x71\x56\x21\x83\x25\x48\x10\x11\x2d\x6c\x51\x11\ \x42\x81\x04\xdd\x6a\x46\xbc\xaf\x60\x50\xa3\xb6\x28\x89\x20\x72\ \x71\x21\x5c\xb4\x90\xac\x08\x93\x36\xcd\xb4\x72\x06\x23\x62\x86\ \x1a\x37\x52\xdc\xc8\x82\xb1\xc2\x6c\x91\xf2\xf4\x6c\x82\x10\xbc\ \x48\x59\x69\x7e\x3f\xf0\xe5\xf9\x0b\x7e\xbc\x8b\xb3\x38\xfa\x11\ \x00\x00\x00\x00\x00\x00\x00\x00\x82\xf4\x8b\xb7\x43\x79\x00\x31\ \x7d\x11\x9c\x94\xd6\x06\xa9\x5f\xd2\xed\xa8\xa0\xa0\x45\x5f\x0f\ \x18\x1c\xaf\x5a\x52\x7a\x68\xd2\x9e\x9f\xb6\x6e\x1d\x4a\x4f\x4c\ \x3c\x30\xb3\x94\xe6\x01\x14\xe8\x73\x30\xb4\x94\x49\xbf\x4b\x3a\ \x1c\x4f\x24\x26\xea\xbb\xbb\xfb\x6a\x5b\x5b\x9f\x4a\xba\xeb\xbd\ \xd3\xa2\x01\x18\xdb\x16\xef\x91\x67\xbd\x15\x15\x7f\x4c\x8e\x8f\ \x9f\x36\xb3\xc3\x5e\x99\x16\x07\x80\x43\x52\x22\x48\x1d\x19\xe9\ \x7d\x47\x2c\x36\x39\x7c\xfc\x78\xd6\xcc\x82\xb7\xdd\x2b\xf8\x64\ \x90\x45\xde\x21\xaf\x72\xb7\x14\xf7\x3b\xe4\x1d\xd3\xc2\x00\x08\ \x52\xa5\x37\xe2\x59\x4f\x69\xe9\xdf\xb9\xd1\xd1\xb3\x66\x76\xd4\ \x2b\xd7\x1c\xbf\x4a\xeb\x83\x34\x15\xa2\xe8\x49\x46\xea\x0c\x92\ \xf5\xd5\xd5\x75\x69\x41\x00\xc6\x76\xd0\x9b\xf6\x01\x4d\x0f\x34\ \x37\x5f\x9d\x9d\x9d\xed\x30\xb3\x5d\x5e\x91\xe6\x71\xa7\xad\xad\ \xcb\x5f\xc1\x99\x20\x59\x67\x32\xf9\xf6\xbf\x5b\xb7\xba\x42\x08\ \x31\xe5\x07\xc0\x87\x76\xfd\x4c\x49\xc9\xfd\xb1\xe1\xe1\x73\x66\ \x76\xc2\xab\x56\x1e\xed\x52\xcd\xa9\x54\xea\x5e\x90\x6c\x4e\x37\ \x95\x1f\x00\x33\xab\xf1\x82\xd7\xec\xad\x56\x7e\xca\x48\x17\x7d\ \xa4\x53\x17\xaa\xaa\xfe\x0a\x92\x5d\xae\xad\xbd\xdf\xdf\xd4\x74\ \x63\x60\xdf\xbe\x1e\x33\x4b\x28\x2f\xf0\x59\x00\x8f\xbd\x97\x51\ \x14\x3d\xd1\x02\x1c\x18\x19\xe9\x2e\xdb\xb4\xe9\xc5\x9b\x5c\x2e\ \x71\xbe\xbc\xbc\x26\x59\x5c\xfc\x7a\xef\xe0\xe0\xa0\xa4\x42\x6f\ \x95\xf7\xbf\x56\x2c\x44\x5a\x54\x30\xb3\xa4\xa4\x6a\x6f\x2c\x5b\ \x5f\x9f\xdd\xd8\xd0\x90\xfb\x39\x9d\x3e\xa2\xaf\x0e\x60\x7c\xdb\ \xbc\x16\x7d\x13\x00\x83\x8b\xb4\x52\x01\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\ \x47\x1f\x80\x8c\xd4\x16\xa4\x57\x7e\xc3\xca\x18\x1e\x62\xfa\x6e\ \xb0\x7a\xc3\x86\x7f\x24\xad\x89\x45\x51\x26\x23\xdd\x0b\x52\x8b\ \x96\x13\x30\xb8\x20\x15\xfe\x26\x95\x6a\x19\x98\x7a\xfe\xfc\x48\ \x2c\x1e\x9f\x29\xdd\xbc\xf9\xdf\xd4\xba\x75\x25\x51\x14\xf5\x06\ \x69\x67\xbb\x54\xb7\x5b\x8a\x6b\x29\x02\x32\x52\x3a\x48\x5d\x92\ \x22\xbf\x97\xbc\x67\x5a\xe2\x82\xd4\xe4\xd9\x95\xc6\xc6\x3f\xcd\ \x2c\x5c\xdb\xbf\x7f\x28\x48\xf6\xb1\x8c\x94\xd5\x52\x04\x7c\x68\ \xef\x2a\xa0\xaa\xca\xda\xf6\xbe\xa2\x82\xd9\x1d\x60\x8c\x9d\x63\ \x8d\xdd\xdd\x39\xea\x98\x63\xd7\xd8\x8d\x88\x08\x16\x12\x62\x61\ \xa0\x98\x01\x82\x8d\x05\x82\x01\x8a\x8a\x58\x58\x18\x08\x62\x22\ \x29\x20\xa1\xf2\x3f\xef\x5d\xfb\xac\x75\xbf\xfb\xe3\xcc\xe0\x10\ \xd7\x99\xf7\x59\xeb\x59\x87\xb3\xcf\x61\x3e\xef\xb7\x79\xef\xde\ \xfb\x8d\xe7\x5d\x96\x23\xc7\x7a\xf9\x47\x7a\x08\xd7\xaf\x1b\x6b\ \xd5\xa2\x3f\xe2\xc2\x3a\x6a\x68\x79\xc1\xc9\x60\xa0\x79\xae\x5c\ \x51\xd1\xaf\x5e\x99\x7b\x5b\x5a\x56\x82\x81\x85\xad\x2e\x5a\xf4\ \xbd\xfb\x82\x05\x07\xb6\x36\x6e\xec\x4b\x46\xb7\x2c\x67\xce\xea\ \x42\xd7\xc0\x60\xc4\x85\x85\x35\xb4\x2e\x53\xe6\x95\xb2\x3a\xec\ \xeb\xd1\xc3\x7b\x47\xdb\xb6\xdd\x74\xd4\xe0\x9a\xc0\xb8\xbe\x90\ \x41\xed\xea\xd0\xc1\x17\xab\x5b\x07\xdc\xdb\xd2\xfd\x15\x5b\xdb\ \x3d\xb8\x1f\xb3\xae\x6a\xd5\xeb\xa6\x2a\xd5\xd7\xd7\xfe\xfe\xad\ \x31\x5e\x07\xdc\x6d\x22\x44\x4f\xc1\x60\xe8\xc0\x8a\xf1\x13\x56\ \x87\x5b\xd2\xd8\xb4\xf9\x93\xd0\x41\x5c\xb5\xb5\x5d\x67\x55\xaa\ \xd4\x9b\x35\xa5\x4a\x85\x5a\x97\x2d\x5b\x1b\x06\x95\xb4\xbe\x7a\ \xf5\x07\x30\xb6\x29\x66\xfa\xfa\x6d\xc9\xf8\xb6\xb7\x68\xe1\x8f\ \xfb\xe6\x78\xd6\x50\x63\x9b\x69\x2f\xb2\x12\x0c\x76\x9a\x7c\x11\ \x22\x57\x76\x7d\xfd\x6c\x3f\x75\xe9\xe2\x9a\xa7\x58\xb1\xb0\x7c\ \xa5\x4b\xbf\x1d\xe4\xea\xba\xb9\xd7\xf6\xed\x9b\xe6\x44\x44\xe4\ \x12\x3a\x88\x26\x33\x66\x6c\x9d\xf1\xf2\xa5\xed\x8c\xe7\xcf\x1d\ \x12\xa2\xa3\xcd\x31\x94\x23\x6f\xc9\x92\x71\x31\x61\x61\xee\x5f\ \x13\x13\xad\xb3\xe5\xc8\xf1\xa9\xfb\xa6\x4d\x1e\x18\x7f\x96\xb7\ \x44\x89\x10\x01\xe4\x29\x5e\x3c\xac\xec\x2f\xbf\xe4\x81\x11\xaa\ \xe7\x2c\xcb\x9c\x2a\x0c\x06\x56\x82\xd9\xe0\xc2\x0d\x35\x6a\xf8\ \xaf\xc8\x9f\x3f\x1a\xf7\x5d\xc0\xbe\x60\xa5\xbf\x58\x1d\xab\x61\ \xd5\x70\xc4\xb5\x49\x16\xfc\x9b\x73\x81\xb5\x2e\x59\x59\x55\xd9\ \xd3\xa5\x8b\xb7\xf3\xc0\x81\x47\xb0\x82\x8d\xa3\x95\xcc\x75\xe8\ \x50\x77\x3c\xeb\x25\x57\xf0\xf2\x34\x76\x68\xd0\xa0\xf3\x18\x5b\ \x02\x16\xc1\xbd\x33\x9d\xf9\xc0\x49\x59\x11\xbf\x63\xb0\xc1\x15\ \x02\x73\x7a\x2c\x5c\x38\xe0\xc6\x96\x2d\x8e\xb8\x2f\x2b\xfe\x1c\ \xe4\xcd\x9c\x06\xc6\xe3\xac\x14\xbb\xbd\x79\xf3\x5f\xb3\xf0\xdf\ \x5e\x18\x1c\x06\x1a\xc3\x89\xe2\x44\xc6\x65\x5f\xaf\xde\x5d\xdc\ \xe7\x95\x06\x57\x8b\xc6\x5c\x7e\xfb\xed\x30\xc6\x72\x90\x81\xad\ \x2c\x58\x70\xab\xc6\x36\x73\x8a\xc8\x22\x30\xd8\xf0\xf2\xc9\x3f\ \xde\xc2\x7f\xb2\xaa\x95\xc5\xca\xe0\x8e\x6b\xca\xca\xc2\x85\x03\ \x9e\x5f\xb8\x60\x8b\xf7\x47\xea\xc0\x2a\x9d\x13\xac\xe3\xbf\x7d\ \xfb\xf6\x9b\xdb\xb6\x59\xe2\x3e\xbb\x00\x4c\x84\x68\x4a\x86\x75\ \x74\xec\xd8\x3d\x8b\x85\xa8\x0d\x03\xf3\xa1\x7b\x72\x12\x9d\x9a\ \x31\xe3\xd8\xfd\x23\x47\x86\xcb\xcf\xe3\x02\x56\x14\x3a\x04\x06\ \xc7\xeb\x86\x82\x91\xe4\xa4\xd8\xdf\xb3\xe7\x91\xe4\xc4\x44\x33\ \x18\xdb\x6f\x60\x5e\x1d\x59\xa9\xf5\xc0\xa6\xe0\x10\x30\x87\x34\ \xb8\x8e\x64\x60\x70\xb0\x3c\xc1\x35\x69\xa9\x4a\x15\x77\xb0\x5f\ \x3f\xe7\xe4\x4f\x9f\xe8\xdf\x3e\x09\xec\x62\xae\xaf\xef\x2b\x57\ \xbb\x8f\xb8\x56\x11\x59\x09\x06\x63\x81\x10\x45\x60\x68\xea\xed\ \x9a\x45\xee\xdc\xcf\x03\x9c\x9c\x36\xc2\xc8\x16\x81\x0d\x85\x8e\ \x61\xa1\x10\xc5\xb0\x92\x55\xd7\x58\x91\x27\x2a\xdb\xc7\x35\x25\ \x4b\xde\x7c\xe1\xed\x4d\x2b\xf2\x02\xb0\x11\xa8\x12\x80\xb9\x81\ \xc1\xdb\x55\x85\x0b\x47\x38\x0d\x18\x70\xea\xd1\x99\x33\xd5\x44\ \x16\x82\xc1\x61\x83\x2e\x30\x36\x8a\xd1\x7d\xdd\xf6\xcb\x2f\x67\ \xe2\xc2\xc3\x2d\x28\xd6\xa5\xc3\x81\x71\x17\xf0\x33\xb8\x19\xdc\ \x44\x31\x3b\x9c\xed\x62\xdd\xe7\xcf\x77\xa5\x8c\x14\x70\x10\x98\ \x4f\xe3\xfd\x1a\x60\x0a\x1c\x2f\x57\x2e\x2d\x5f\xbe\x6d\x65\xa1\ \x42\x37\xe4\xd6\xd3\x09\xf4\xa1\x2d\xe9\xb7\x52\xe0\x44\x7a\x81\ \xc1\x98\x0d\x4f\x3a\xfd\xc1\x82\x5f\x91\x89\xf2\xe6\xea\xda\xb5\ \xdb\x60\x64\x26\x60\x2b\x50\x67\xc3\x21\x5e\xa6\xa6\xf5\x90\x29\ \xe3\xaf\xac\x6a\xcb\xf3\xe6\x7d\xf3\xe1\xf1\xe3\xd5\x30\xb2\x59\ \x60\xf5\x54\xb6\xc9\xb3\xe9\xbd\x0d\xd5\xab\x3f\x96\x86\x9a\xb2\ \xb2\x48\x91\x29\xab\x8a\x16\x35\xa1\x71\x32\xd8\xd4\x82\xe6\x78\ \xe6\x09\xee\x98\x2f\x44\x01\xc1\x60\xfc\xd3\x6d\x19\xa5\x4e\x81\ \x29\xc8\xda\xb8\x1c\xf9\xe2\xc5\x4a\x0a\x2a\x83\xa5\x7f\x10\xc7\ \xcf\x78\xf2\xb6\x5a\x95\x2e\xfd\x86\x56\x66\x04\xca\xa7\x61\xcc\ \x40\xa4\x02\x78\x59\x3d\x14\xe3\x34\xcb\x91\x23\x96\xae\xa7\xa7\ \x4f\xdf\x82\xb4\xb0\x17\xb8\x4f\xda\xdd\xa9\xd3\xe5\x8b\x16\x16\ \xbd\x35\xd2\xca\x72\x92\x91\x2d\xd3\xd7\xf7\xc1\xf6\x3a\xc8\x71\ \xe4\x48\x03\xf1\x0f\xc1\xe0\x6d\xa4\xc1\x8a\x02\x05\xce\x21\x4c\ \xb0\x53\x6e\xc3\xba\x82\xd9\x7f\x20\x6f\xab\x0a\xac\x9f\x94\x90\ \x30\xef\x99\xa7\xe7\x3a\x72\xa4\x7c\xeb\x73\xc2\xe0\x12\xd4\xe9\ \x6c\xdd\xbb\x7b\xef\xea\xd4\x49\xed\x3c\xc1\x99\x2e\x0a\xce\x95\ \xc4\x2b\x36\x36\x8e\xf2\xbc\xd7\x5f\xbe\x7f\x17\x2b\x5e\x10\x38\ \x30\x39\x39\xb9\xdf\xdb\x80\x80\x35\xf4\xbf\x23\x18\x8c\x74\x58\ \x29\x86\x83\x33\xc1\x8a\x3f\xf0\x67\x30\x00\x5b\xff\xd9\xca\xec\ \xbe\x70\xe1\xcc\xf3\x26\x26\x87\xf0\xce\x62\x38\x55\xae\x92\xc1\ \x2d\xcd\x96\xed\xf3\xc5\xe5\xcb\x77\x63\x6c\x9a\xe6\x79\xcf\xa1\ \x79\xf3\xd1\x58\xd5\xc2\xe9\x1d\x18\xea\x41\x3c\x6b\x9c\x5e\xdb\ \x6b\x06\x1b\x9c\xfe\x7f\xe4\x73\xd6\x04\x27\x82\x86\x70\xae\xdc\ \x81\xb1\x7d\xf1\x5a\xba\xd4\x09\xf7\x33\xc0\x02\x5a\xef\x56\x76\ \x19\x32\xe4\x2c\x19\x9c\x53\xff\xfe\xb6\x72\x9b\xfa\x3d\x60\x30\ \x18\x2f\x7d\x7d\xdb\xf9\x6d\xdd\xba\x43\x3a\x58\x0a\xa5\xb2\x05\ \x2d\x89\x95\x2d\xc6\xa6\x5c\xb9\xd0\xcf\x49\x49\x73\x28\xd8\x2e\ \xfe\x11\x18\x0c\x4e\x71\xeb\x07\x16\x55\x9c\x47\x32\x0b\x65\x32\ \x98\x1d\x3f\x6f\xc7\xf5\xeb\xad\x9d\x3b\x1d\xf0\x4e\x3d\xf1\x37\ \x20\x43\x0c\xa7\xf1\x7b\x7f\x51\xee\xc4\x60\xb0\xf3\xa8\x20\xb2\ \x50\x02\x64\x78\xe0\x21\xf8\x65\x73\x83\x06\xb7\x60\x6c\xe3\x40\ \x95\xd6\xbb\x55\x64\x22\xf7\x75\x32\x30\x70\xa0\x34\xb8\xea\x66\ \x7a\x7a\xef\xe4\x7f\x63\x9c\xf8\x36\x18\x0c\x46\x62\x6c\xec\xe8\ \xe3\xe3\xc7\xbb\x21\x4c\xf0\x91\x8c\x06\x75\x77\x4f\x8e\x4f\x9e\ \xdc\x42\xbb\x6a\x02\x8c\x90\x31\xcb\x30\x7a\x4f\x72\x86\xa9\x91\ \x91\x01\xb2\x58\x3e\x58\xe4\xc9\x13\xfb\xca\xdf\xbf\xb7\x60\x30\ \x18\x7f\x59\x06\xd4\x2d\xfc\xe9\xd3\x15\xbb\xda\xb7\xbf\x46\x4e\ \x95\x25\xb0\x43\x13\x21\x7a\x6b\x18\xdc\x51\x8c\x27\x5c\x34\x37\ \xdf\x47\x61\x94\x88\x67\xcf\x56\x91\x61\xca\xca\xf4\x93\x60\xca\ \xa9\x69\xd3\x8e\xe1\x59\x27\xf1\xb7\xc0\x60\xb0\xe1\x15\x07\x87\ \x3f\x3e\x71\x62\x23\xca\x7f\x6e\xed\xed\xd9\x73\x94\x90\x40\xcc\ \xee\x93\xad\x91\x51\x88\xf4\x6c\x56\x03\xeb\x86\x3d\x7e\x3c\x1e\ \x21\x04\x75\x20\x7d\x4d\x89\x12\x2f\xe1\x64\x99\x9b\x76\xcf\x2f\ \x83\xc1\x86\x57\x15\xfc\x03\x9c\x24\x24\xb0\xdd\x8c\xa2\xac\x96\ \x57\x01\x01\x86\x1a\xef\x65\xc7\xf9\x2f\x8e\xb6\x99\xe4\xf9\xfc\ \xfe\x00\x39\x83\xc1\x46\x97\x4d\x33\xf3\xc6\xbe\x6e\xdd\x63\xb4\ \x92\xc1\xc0\x76\x2d\x10\xa2\x90\x2c\xd0\x9d\x45\x63\x70\xb2\x04\ \xe0\xdd\x09\xa0\x8a\xb6\xa1\xe4\xf5\x04\xef\xe0\x99\x03\x1c\x2a\ \x55\x45\xda\xc0\x60\x30\x9e\x79\x78\xb4\x44\xce\xe9\x33\x0d\x67\ \xc9\x07\xba\xc2\x3b\x99\x18\x72\xf5\x2a\x05\xc8\x8d\x70\x3f\x55\ \x66\xb1\xc4\x99\x65\xcf\x1e\xa9\xfe\x59\xa5\x7a\x89\x6b\x5a\xf3\ \x53\x19\x0c\x5e\xf1\x12\x3f\x7d\x1a\xeb\x63\x6d\xbd\x77\x4f\xd7\ \xae\xc7\x51\xa1\x40\x86\x94\x02\x7d\xcc\x3b\x78\x36\x80\x92\x9d\ \x71\x9f\x00\x6f\xe5\x0b\xd4\xe3\xad\xc5\x98\xe9\xdd\x7d\xfb\xb6\ \xc2\xf0\x92\x60\x80\x81\xb2\x0a\xbd\xb1\xf8\xdb\x60\x30\xd8\xe8\ \xb2\x83\xed\xc0\xb1\xa8\xab\xdb\x4b\x62\x4c\x6a\x51\xdd\x7a\xf5\ \x5a\x2b\x2a\xd1\xa4\x0e\x2d\xab\xd1\xcb\x83\xf5\xf7\x76\xeb\xe6\ \xa5\xa1\xad\x92\x2c\x6b\xef\xd2\x08\x06\x83\x8d\xaf\xe4\xc7\x77\ \xef\xcc\x7c\xd7\xad\xdb\x99\x98\x98\x58\x1f\x06\xd5\x01\x4c\x39\ \xd0\xa7\xcf\x49\xa1\x01\x24\x4b\xef\x95\x82\xb6\xd7\x8e\x8c\x1a\ \x75\xf2\xd9\x85\x0b\x8d\xc4\x77\x81\xc1\x60\xa3\x2b\x00\xf6\x04\ \x7f\xfa\x43\x08\x7d\xac\x78\x51\x38\xd3\xd1\x2a\xd6\x9f\x72\x32\ \xc1\xc1\x38\xc3\x45\xd3\x78\xec\xfb\xf7\x54\x02\x35\xea\x7d\x60\ \x20\xad\x86\xe3\xb1\xda\x1d\xc1\xf5\x28\xae\x53\x70\xcd\x2f\xd2\ \x06\x06\x83\x81\xf3\xdd\x52\x25\x2e\xa7\x49\x0f\x63\x63\x17\x18\ \x5b\x9b\xf1\x42\xe4\xa0\x94\x30\xe9\x58\x89\x05\xe3\xe5\x3b\x81\ \x7f\xd3\x9b\xc9\xca\xcb\x0c\x06\xad\x6e\xa4\x1c\x56\x6f\xe4\xc8\ \x6d\x93\xee\xdc\xb1\xe9\x64\x65\xb5\xab\x6c\x93\x26\x9e\x02\x28\ \x58\xbe\x7c\x48\x1b\x33\xb3\x2b\x64\x8f\x25\x85\xf8\x4d\x25\x44\ \x17\xbd\x9c\x39\x13\xbb\xad\x5f\xef\x32\x3f\x3c\xdc\xba\xd9\xec\ \xd9\x47\x55\xd9\xb2\x55\xcc\xa1\xa7\x77\x38\x35\xa5\x68\xf2\x70\ \x82\x79\x05\x83\xc1\x50\x8c\x42\x8c\x90\x4e\x91\x9b\xeb\x6b\xd6\ \x1c\x1c\xe0\xec\x3c\xca\xba\x5c\xb9\x07\xd4\x6c\xe4\x9e\xb3\xf3\ \x16\x52\x8f\x96\xef\xed\xc5\x16\xf3\x8b\x65\xc9\x92\xef\xe8\xd9\ \xaa\x22\x45\x0e\x23\xab\x65\xb0\xcb\xd0\xa1\xe7\xe8\xf7\x2d\x8b\ \x15\xeb\x22\x24\x34\x2a\x19\xde\x81\xd6\x72\x88\xc1\x60\xf8\xf9\ \xf9\xe5\x80\xcc\xfa\x61\x24\x35\xc7\x29\xdb\x48\x18\x54\xfc\x99\ \x59\xb3\xa8\xca\x7c\xb4\x90\x80\x5a\xd8\x0e\x7a\x16\xe4\xe5\xb5\ \x16\xc9\xd2\xc7\xf0\x7e\x34\xe9\x64\xae\x2a\x54\xe8\x3c\x8d\xef\ \xef\xd3\x67\xb9\x14\x3d\x1a\x88\x7b\x5f\xf0\x14\x8d\x5f\x58\xb6\ \x0c\x17\x4d\x30\x18\xec\x40\xe9\x0c\xe5\xb0\x55\xc7\xc6\x8c\x39\ \xe9\xd8\xba\xb5\xdb\x03\x57\x57\x8a\xc5\xcd\x01\x4b\x08\x89\xfd\ \x7d\xfb\xf6\xa2\x95\x0d\x4e\x94\x47\x4f\xcf\x9d\x1b\x42\xc9\xd2\ \x3b\x5a\xb5\xba\x80\x31\xb5\x92\x18\x56\xc6\x59\x02\x30\x33\x30\ \x68\xa9\x04\xce\x51\x81\x10\xf3\xe8\xf8\xf1\x25\xe2\xff\x83\xc1\ \xe0\x50\x01\x38\x00\x9c\x0d\x8e\x00\xf3\x69\x3d\xcf\xed\x3a\x6c\ \x98\x1b\x19\x1d\x18\xb1\x3c\x7f\xfe\x9d\x3e\x56\x56\x66\x8f\xdd\ \xdc\x36\x62\x75\xbb\x84\xe7\x7d\xe4\x7b\xf9\xd7\x56\xaa\xf4\x9c\ \x3c\x9e\xa4\xbd\x82\x77\x93\x60\x7c\x56\x73\x85\xc8\x27\xd2\x04\ \x06\x83\x8d\xb2\xd1\x75\x7b\xfb\x9d\xd0\xc8\xbc\x2d\x0d\x29\x05\ \x2b\x9e\xa7\x4c\x96\xfe\x49\x9e\xf5\x06\xd0\x38\xe4\xda\x2f\x04\ \x9e\x39\xb3\x61\x5d\x95\x2a\x8f\xe4\x19\xd1\x5d\xa4\x19\x0c\x06\ \x1b\x5d\x6d\x70\xf6\x87\x27\x4f\x56\xe3\x2c\x77\xf4\xd4\x1f\x7f\ \x2c\xc3\x7d\x2e\x45\xd6\x8f\x64\xfa\x48\x39\x8c\x02\xeb\x18\xff\ \x19\x9c\x0a\x91\xde\xdd\x57\xd7\xad\x5b\xf1\x5f\x28\xff\x51\x89\ \x74\x06\x83\x21\xa5\xf7\x2a\x82\x75\xc0\x62\xe0\x41\x15\x82\xe4\ \x14\x2c\xc7\xfd\x81\xa6\x33\x67\x1e\xeb\x6c\x63\x63\x87\x31\x2f\ \xf9\xee\x2f\xe0\x4f\xa0\x2b\xc6\xe2\xc5\x3f\x07\x83\xc1\x90\x1e\ \xca\x14\xc7\x36\x6d\x2e\x07\x04\x04\x64\xa4\x62\x18\x83\xc1\x08\ \x0c\x0c\xd4\x27\x99\x07\x19\x5e\x78\x01\x03\x5c\x8f\x6b\x8f\xef\ \x6d\x9f\xbc\x58\x88\x9f\xf1\xfb\xfd\xbe\xb1\x53\x63\x30\x18\x90\ \x58\xef\x7a\x62\xf2\xe4\x93\x56\xa5\x4a\xdd\x57\x9a\x8f\x98\x08\ \xd1\xf6\x3b\x83\xf2\xbb\xa5\xf1\x7a\x53\x20\x5d\xa4\x0a\x06\x83\ \xcf\x78\x1d\xc1\x45\xd4\x15\x28\xf8\xca\x15\x2b\xdc\xb7\x11\xdf\ \x81\xb3\xf3\xe7\xb7\xa3\xec\x16\xd4\xe9\x05\x7e\x08\x0c\xfc\x93\ \x24\x69\x06\x83\x8d\x2e\x87\x14\x2c\xea\x00\x96\x15\xdf\x81\xa5\ \x7a\x7a\xfb\xd4\xc2\xb6\xbb\x76\x39\x90\xf0\x91\x48\x3b\x18\x0c\ \x06\x55\x8f\x93\x4a\xb4\xb1\x10\xe5\xfe\xe4\x9d\x26\xe0\xd7\x0d\ \x35\x6a\x3c\x7c\x70\xe4\x88\x89\xf3\xc0\x81\x7a\xe2\xbb\xc0\x60\ \xb0\xc1\xed\x04\x53\xcc\x72\xe6\xdc\x2e\x52\x87\x0a\x06\xa9\x76\ \xbe\x28\xc4\x7d\x30\xae\x15\xb9\x3c\x47\xfd\x7f\x8e\xa0\x6e\x9c\ \xad\xc4\xdf\x00\x83\xd1\xc1\xca\x6a\x7d\xd5\x3e\x7d\x2e\x0f\x3d\ \x75\x2a\xe4\x1b\x06\x39\x5c\x85\x55\xd0\xb0\x55\x2b\xff\xee\x1b\ \x37\x3a\xa0\x74\x68\x97\x5e\x8e\x1c\xc5\x54\x7a\x7a\x67\xfe\xf3\ \x29\x62\xb2\xea\x37\x65\x75\xb1\x62\x4b\x71\xcd\x6f\x2c\x44\x25\ \xc1\x60\xfc\x75\x5f\xbc\x31\xe0\x20\xcd\x71\x2a\x72\x85\xb1\x15\ \xa7\x9e\xed\x10\x3a\xfa\x10\xfb\xe1\x03\x55\x9a\x0f\x04\xfb\x61\ \x4b\xa9\x2e\x03\xb2\x2a\x57\xae\xe3\x7f\x75\x5b\x50\x1f\xac\x02\ \xc6\xa2\x36\x2a\x34\x36\x2c\x6c\x1e\x8c\xcf\x0b\xf7\x97\xc4\xf7\ \x81\xc1\x81\x73\xd2\xcf\x4c\x02\x53\x3c\x97\x2c\x71\xa6\x7e\xed\ \x42\x02\xe9\x62\x97\x28\x21\xfa\xe5\x8d\x1b\x03\xfe\x73\x5b\x4a\ \x18\x15\xb9\x79\x6f\x82\x77\x85\x4a\x65\x80\x65\xdf\x6d\x7f\x8f\ \x1e\xe5\x54\x18\xaf\xde\xb7\x6f\xc4\xf7\xf4\x25\x63\x30\x0c\x9b\ \x35\xdb\xae\x9f\x3f\x7f\x98\x00\x9e\x9e\x39\x63\x84\xcb\x15\x50\ \x98\x08\xd1\x3d\x39\x3e\xbe\x65\xa5\x4e\x9d\xae\x97\x6d\xd8\x30\ \x42\xfc\x17\x61\x5b\xb1\xe2\x75\xe5\x40\x6b\xf7\xd3\x4f\x77\xb0\ \xba\x7d\x42\xb0\xf3\x39\xfa\x56\x1b\xcb\xd2\x8e\xb4\x82\xc1\x5b\ \xcd\xd2\x09\xb1\xb1\x8b\xa8\x1b\xd0\xb9\xb9\x73\xad\x97\xe5\xcb\ \x57\x15\xab\xde\x1a\xf0\x31\xfa\x9a\x47\x47\x86\x84\x58\xe0\x9d\ \xc2\xff\xa5\x6d\x64\x5e\x18\x96\x19\x29\x3b\x21\x46\x92\x00\xbd\ \xfa\xd7\xdb\x5b\xb4\xb8\xa9\x18\xde\x8e\xd6\xad\xfd\x92\x92\x92\ \xfe\x89\x94\x1a\x83\x8d\x2e\x37\xd8\x03\x9c\xba\xb2\x48\x11\x92\ \x5e\x4f\x56\x4b\xb2\xd7\xaf\x7f\x1f\x59\x2c\x9d\xff\x6b\xe7\xb6\ \xf2\xa8\x83\x8a\x52\x0c\xec\xfa\xc6\x8d\x3b\x0f\xf6\xed\x7b\x82\ \xee\x91\x0d\x10\x41\x7b\x6c\xe8\xd7\x57\x10\x40\x2a\xcd\x00\x2f\ \xa6\x55\xbd\x97\xc1\x7d\xdc\xef\xbb\xb8\x6c\xb4\xab\x54\x29\x08\ \x2b\xdc\x27\xc7\x6e\xdd\x4a\x8a\xff\x1a\x76\x77\xea\x74\x52\x31\ \x38\x74\x65\x89\xc3\x35\xc1\xb6\x7c\xf9\x67\x5f\x92\x93\x97\x46\ \x04\x05\xad\xc2\x92\xdf\x44\xbb\x3c\x88\xb4\x0c\x29\x45\x67\x79\ \xbe\x7c\xcb\x44\xda\xc0\x60\xa3\xab\x02\x4e\x8f\x0b\x0b\xb3\xc0\ \xf5\x67\xf1\x5f\x02\xb5\xa7\xc5\x0a\x97\x60\x63\x64\xf4\xf2\xda\ \x86\x0d\xbb\xc8\x88\xd4\x8a\x4d\xc5\x8b\xbf\x7b\x78\xe4\x48\x67\ \x18\x5b\x03\xb0\x80\x3c\xe8\xb6\xc4\xaa\x16\x86\xe7\x4b\xae\x6e\ \xdb\x56\x02\xda\x16\xeb\xe3\xc3\xc3\xe7\xcb\xae\x2e\x69\x05\x83\ \x65\xda\xeb\x81\xb9\xff\x6b\x6e\x5b\x1f\xea\xa4\xf9\xf4\xec\xd9\ \xf5\x10\x9b\xd9\xa7\x6e\x08\xd1\xa4\xc9\x9d\x75\x95\x2b\x07\xee\ \xeb\xd1\xa3\x9a\xb6\x4c\x1a\xb6\x99\xb7\x95\x52\x8d\xc3\xa3\x46\ \x0d\x24\x83\x14\x7f\x0f\x0c\x06\x03\xc1\xc8\x63\xe7\xe6\xcd\x73\ \xf1\xdf\xb1\x63\x11\xb5\xb5\xc5\x56\xf2\xf1\xe7\xcf\x9f\x17\xc1\ \x90\x16\xa7\xd6\xae\x36\x29\x2e\x6e\x0a\x49\x65\x2f\xd3\xd7\x8f\ \xbd\xb0\x6a\x55\x75\x91\x66\x30\x18\x5c\x76\x31\x17\x86\x67\x4b\ \xba\x84\xb2\xb5\x51\x6d\x30\x0f\xa8\x12\x5a\x80\x03\xe5\x0f\x5a\ \xe1\xc8\xcd\x8b\xe7\x5d\xff\x4a\x01\xf8\xff\xab\xf4\x32\x18\xbc\ \x97\xce\xfb\xf0\xe8\xd1\xd2\xef\x1f\x3e\x5c\x8d\xfb\xc1\x5a\xde\ \xc8\x6e\x14\x37\x59\x20\x44\x11\xfc\x5c\x18\xfc\xb0\xba\x48\x91\ \xd7\x49\xf1\xf1\x0b\x14\xa1\x19\xad\xf7\xf3\xcb\x74\x9e\x3a\xb2\ \xeb\x66\x12\x78\x05\x1c\x25\xfe\x07\x0c\x06\x1b\x5e\x4b\x50\x5f\ \xeb\x8c\x37\x57\x66\x76\x87\xe3\x7a\x01\x4c\x81\x5a\xd3\x6e\xbc\ \x97\x5a\x38\x40\x85\xe7\xa1\x14\xd4\xc4\xf5\x2d\xc4\x43\x43\xe0\ \x01\x75\x86\x78\x68\xb0\x3c\xf7\xed\x07\xff\x24\x53\x86\xc1\x60\ \x43\x2c\x4f\xde\x4b\xe8\xcc\xbf\x92\x61\x83\xc4\x8b\x2b\x56\xac\ \xc3\x78\xaa\x86\xb3\xa3\x4d\x9b\xe9\x66\x39\x72\xc4\xd3\xbb\x36\ \xe5\xca\x85\xa2\xee\xc9\x22\x3e\x22\xc2\x74\x67\xbb\x76\xd7\x69\ \xcb\xba\xaa\x54\x29\x43\xf1\xa7\x60\x30\xd8\xe8\x1a\x20\xbd\x6b\ \xc1\x89\x89\x13\x4f\x5a\xe4\xca\x15\xa7\xac\x56\xa9\x09\xc9\x5c\ \x30\x33\xeb\x4a\xc1\x72\x0a\x9a\x23\x73\x85\xf4\x2f\x92\x70\xee\ \xb3\xfa\x9c\x98\x38\x98\xe2\x7a\x30\xd4\xa6\xe2\x2f\xc1\x60\xb0\ \xd1\xe5\x02\xbb\x86\x3f\x7f\xbe\x62\x77\xc7\x8e\x57\xd0\xf0\xe1\ \xbe\x5d\xe3\xc6\xf9\x53\xcd\x0e\x87\x36\x7d\xe0\xa9\x53\x1b\x9e\ \x79\x7a\xae\x83\xa2\xef\x7d\x6c\x2d\xa3\x97\xe7\xc9\x53\x82\x94\ \x7c\xd3\x96\x93\xc9\x60\xb0\xe1\x15\x03\x87\x81\xa6\x60\x03\x19\ \x10\xa7\xfc\xb8\x91\xb8\x76\xa6\xd5\x6f\x67\x87\x0e\x57\xe4\x3b\ \x95\xc0\xc9\xc9\x9f\x3e\x99\x29\x67\x3e\x3c\xef\x03\xfe\x1d\x01\ \x1a\x06\x83\x1b\x32\x42\x65\x37\x0c\xdc\x8b\x9b\xcd\xa0\xbf\xcc\ \xf5\x1a\x05\xee\x04\x4f\xa2\xb9\x5f\x6c\xcf\xad\x5b\x2f\x60\xf8\ \x2c\xde\x7b\x46\xef\x65\x37\x30\x70\xc2\xf5\x1e\x0c\x2d\x27\xae\ \x6b\x41\x4f\xfc\x3c\x55\xde\xa7\x05\x0c\x06\xe3\x43\x50\x50\x93\ \xc3\x23\x46\x9c\x93\xce\x92\xaf\x6b\x2b\x54\xf0\x4a\x4d\x4c\x86\ \x3c\x94\xd8\x8a\x3e\x91\x2d\x6e\x93\x70\xfd\x4c\x5b\xd0\xb4\xc7\ \xea\x18\x0c\x96\x4f\xeb\xf9\x36\x20\xc0\x92\x4a\x7b\xd4\xed\x8f\ \x84\x88\xa1\x3c\x4d\xad\xf3\xdd\x18\x59\x96\x11\xe0\x36\x65\x8a\ \xd3\xc6\xda\xb5\xcf\x90\x81\xc2\xf8\xce\xa7\x3d\x5c\xc0\x60\xb0\ \xe1\x95\x02\x7f\xbf\x7f\xe8\xd0\xe6\x5d\x1d\x3a\x78\xfa\xda\xdb\ \xd7\xd5\x88\xcf\xe5\x07\xdf\xae\x28\x50\x20\xec\x53\x74\x34\x9d\ \xe9\xc6\x83\x13\xa1\x59\x7f\x83\x8c\x10\xc1\xf4\xef\x6c\xe2\xce\ \x60\xb0\xe1\xd5\x02\xa7\x83\xad\xe4\xca\xe6\x46\x01\x71\x30\xe5\ \x82\x85\xc5\x41\x8c\xb7\x10\x12\xd8\x62\x5e\xa7\xd8\xde\x9b\x7b\ \xf7\xda\xfe\x45\xdd\x5e\x3d\xea\x2d\xbd\x48\x88\x32\x42\x57\xc1\ \x60\xc8\x7c\xc6\x1a\x22\x0b\xb1\xa6\x74\xe9\xb9\x54\x4d\x4e\x06\ \x77\x74\xf4\x68\x27\x18\x9c\x9e\x92\x36\x46\x63\x7b\xbb\x76\xf5\ \x21\x23\x94\x63\xa5\x61\x58\xcb\x65\x56\xca\x0a\x6c\x4b\x2b\x2b\ \x5d\x5c\x40\x2a\x1d\x8a\xa5\x32\x21\xa1\x8b\x60\xb0\x97\xb2\xb0\ \x10\x8e\x29\xea\x9c\x46\x91\x65\x75\x47\x73\x5e\xbd\x3a\x33\xc6\ \xc7\x67\xa3\x61\x8b\x16\xfe\x30\xac\xc0\x79\x2a\x55\x6e\xea\xaa\ \x89\x47\x36\xf0\x60\xc6\x74\xdf\xb2\xc5\x0b\x3f\x07\x60\xac\x46\ \x8a\x10\xf7\x55\x42\x2c\xc2\xfd\x10\x70\x21\x3e\x2c\x95\x03\x35\ \x6e\x6b\x6a\x7a\x59\x3f\x6f\xde\x78\xfd\x7c\xf9\x12\xc7\xfb\xfb\ \xc7\x08\x5d\x05\x83\x7b\x7b\x6d\x69\xd0\xe0\x32\xa4\x13\x1a\xe1\ \x67\x5f\xb0\x4a\x16\x6d\x33\x0d\xe5\xb9\x6d\x36\x32\x51\xfa\x2a\ \x15\xe6\x07\xfa\xf6\xbd\x28\xcb\x80\x94\xda\xbc\x78\x94\x0b\x1d\ \xa4\x4a\xf3\x1b\x9b\x37\x3b\xa2\x8a\x21\x0a\x63\x1f\xa4\xb2\xaf\ \x22\xb5\xd6\x5a\xe8\x10\x18\x6c\x68\xd6\x30\xac\x33\xb8\x86\x41\ \xfb\xef\x03\x94\x91\x56\x20\xd3\x83\xee\xbf\xec\xef\xdb\xb7\xbb\ \x0e\x24\x49\xab\xdc\xa6\x4e\x3d\x80\x7f\xd3\x47\xa8\x82\xbd\xc4\ \xbd\xfe\x42\x21\x4a\x90\xc7\x72\x4b\xc3\x86\x77\x65\x13\xf8\x5f\ \xc0\x8e\x77\xf6\xec\xb1\x92\x5e\xcf\x14\x92\x7d\x40\xad\xde\x4c\ \x9d\xaa\x30\x67\x30\xe0\x09\x9c\x43\xee\x76\x30\x05\x8d\x13\x02\ \x77\xb6\x6f\x6f\x4f\x3f\x23\x73\xdf\x9b\x14\x6f\x75\xc4\xb1\xd2\ \x02\x3d\xa3\x97\x45\xbf\x7a\x45\xfd\xa4\xa9\xf4\xa7\x28\x98\xb2\ \xad\x69\xd3\xdb\xb8\x2f\x28\x24\x7c\xd7\xad\xab\x40\xe3\x64\x74\ \x10\x9f\xd9\x8c\x67\x35\x85\x2e\x80\xc1\xa0\x73\x1a\x0e\x3f\xa5\ \x1c\x9a\x37\x27\x83\x4b\x59\x59\xa8\x50\xa4\x86\x38\x50\x2c\xfe\ \xb8\x49\xb4\xa5\xa4\x0e\x79\x33\x0b\x83\x4d\xe4\x8a\xa5\x5a\x53\ \xb2\xe4\x53\xf9\x45\xf1\xab\xc6\x67\x9a\x01\xa6\x6c\x6f\xd5\xea\ \x26\xde\x1b\x25\x75\x58\x6a\x62\xcc\x02\x2b\xb6\x2d\x38\x08\xcf\ \x0d\x44\x16\x80\xc1\x06\xe7\x4c\xe2\xad\xb8\x46\x61\x95\x7b\xf7\ \xf1\xcd\x9b\xe5\x36\x86\x86\xa1\x8a\xd1\xad\xab\x56\xcd\x45\xe8\ \x30\x7c\xac\xac\xa6\xe0\xcc\x16\x43\x46\x07\x43\x7a\x09\xde\x94\ \x5f\x16\xf1\xef\x1f\x3c\xa0\xe2\xd8\x92\x18\x9b\xa0\xac\xde\xca\ \x15\x63\xcf\x32\xdd\x13\xcb\x60\xb8\x8e\x1c\xd9\x84\xfe\x38\xc9\ \xb8\x20\x5f\x17\x63\x57\xa5\xca\x49\xb5\xdb\xbd\x7b\x77\x9f\x33\ \x33\x67\x1e\x45\x5d\xdb\xec\xbf\x30\xd8\x8a\xf3\x85\x28\x90\x85\ \x2b\x5e\xfe\xd7\x37\x6f\x2e\x77\x1d\x36\xec\x2c\x54\xc4\x7c\x10\ \x4a\x20\xe3\x4b\x39\xd8\xbf\xff\x05\xca\x64\x21\x0d\x4d\xf0\x33\ \x6d\x2f\x4f\x4e\x9e\x7c\x0c\x46\x68\x89\xeb\x09\xbc\x97\x04\xc7\ \xca\xbb\x4c\x4d\x11\x63\x30\xb0\x25\x9b\x48\x06\xb6\xa9\x4e\x9d\ \x87\xca\x76\x92\x64\xef\x20\x77\xb7\x01\xab\x43\x6f\x70\x24\xa8\ \x47\xb1\x39\x8a\x65\x81\x6d\x35\xb7\x63\x58\x29\xa2\xc1\x77\xe0\ \xb8\x2c\xde\x66\x0e\x07\x17\x1e\xe8\xd3\xe7\x22\x0c\xe9\x0b\x09\ \x86\xba\x0e\x1d\x5a\x56\x26\x3c\xa7\x90\xb3\x85\x3e\x17\x9c\x28\ \x87\x5f\xf8\xf8\x0c\xf7\x58\xb4\xc8\x49\x76\xfb\x99\xfb\x27\xab\ \x7f\xc1\x74\x4b\x1f\x63\x30\x28\x03\x03\x86\x12\xb9\xb2\x60\xc1\ \xd7\x10\xd8\x5c\xb6\xae\x4a\x95\x40\xfa\x63\xa5\x2c\x0e\xc8\x97\ \x7b\x0b\x09\x18\x59\x7b\x25\xeb\x43\x32\x82\xce\x41\x02\x70\x68\ \xd6\x6c\x25\x8d\x61\x3b\x7a\x5c\x07\xce\x77\x2a\xb0\xe9\xe3\x13\ \x27\x36\xc2\xa3\xe9\x14\xf7\xe1\x43\x19\xd4\xd5\xa9\xbf\x50\x2e\ \x2c\x5b\x76\xf0\xf0\xf0\xe1\x27\x11\x5e\xf8\x48\x9f\xd9\xba\x6c\ \x59\x7b\x1a\xdf\xd2\xa8\xd1\x71\xa1\x01\xd2\x61\xa1\xab\xdc\x86\ \xc6\x4a\x99\x88\xc3\xe9\xb1\xfd\x64\x70\x28\x60\x12\x0c\x2c\xf1\ \xf6\xde\xbd\xdb\x76\xb5\x6f\xbf\x86\x0c\xc7\x69\xe0\x40\x2f\x6a\ \x82\x1e\xfb\xee\xdd\x42\xea\xdf\x85\x31\x43\x90\xe2\x5a\x9f\xa0\ \x39\x79\x6c\x4f\x97\x2e\x9e\x48\xad\x0a\xc5\x6a\x91\x48\x86\x88\ \x6a\x6e\x7f\x64\xfc\x27\x85\x5e\xbb\x66\x83\xf7\x8b\x0a\x1d\x80\ \xec\x29\x3d\x16\xac\xb4\xa9\x61\xc3\xaa\x30\xba\x24\x54\x93\x07\ \x3f\x3e\x7d\x7a\x14\x9d\xeb\xb6\x36\x6e\xec\x4d\xdb\x4c\xa9\x24\ \xe6\xa4\xb1\xa2\xb5\x93\x67\x3c\x7a\x9e\x02\xa3\x3c\x8f\x90\x83\ \x1b\xc5\xf9\xf0\x79\xe3\x30\x36\x58\x7c\x2f\x18\x8c\xdb\xbb\x77\ \xe7\x09\xf6\xf1\xb1\x8c\x78\xf1\x62\x1a\x65\xea\x63\x7b\x15\x82\ \xae\x25\x26\x32\xaf\xb1\x29\x48\x5d\x4d\x17\x92\x21\x5e\xb1\xb5\ \xdd\x83\xfb\xb9\xe0\x64\x64\xf8\xaf\x86\xd1\x45\xe0\x5c\x94\xa4\ \x36\xd2\x01\x03\xbc\x30\xde\x5f\xe8\x28\x60\x54\xce\x6a\x75\x68\ \x95\xea\x3d\x7a\xd8\xad\x0d\x70\x71\x59\xf0\xc0\xd5\xd5\x7e\x43\ \xcd\x9a\x8f\xde\x3d\x78\xb0\x50\xc3\xe0\x72\xa2\xda\xfc\x8c\xb2\ \x92\xe3\xcb\xc5\x3b\xfa\xf5\xeb\x99\x24\x78\x8b\xad\xf7\x6b\xec\ \x04\xce\x08\x06\xe3\x1f\x6e\xc1\x5a\x45\x44\x44\x14\x40\xf0\xd8\ \x3e\xe4\xea\x55\x5b\xad\x9e\x00\x02\x5b\xb0\xcd\x64\x54\x21\x57\ \xae\xcc\x53\xa4\x0e\x70\x35\xd8\xd7\xb3\xe7\x49\x1a\x87\x87\x30\ \x22\xf6\xfd\x7b\x53\x8c\x15\xd0\xe1\xcf\x59\xf3\xea\xda\xb5\xbb\ \xe1\x7d\x55\x87\x10\x88\x70\x10\x5d\x87\x6c\xdf\x2c\x0a\x94\x0b\ \x0d\xec\xea\xd8\x71\x3f\x19\x1b\x04\x90\xde\x4b\xc3\x0b\x45\xf9\ \xd0\xb0\xcf\x49\x49\x33\x65\xc5\x7a\xba\x39\x59\x18\x2c\xee\x3a\ \x50\x5b\xc8\x15\x4e\x86\x25\xd2\xa9\xb2\x5f\x73\x1c\x4e\x88\xa3\ \x34\x7e\xde\xd8\xf8\x10\x7e\xa7\x8d\xd2\xc6\x4a\xc6\xbb\x0c\x75\ \xd1\xe8\xc0\x05\x2f\x2e\x5d\x5a\x0b\xc7\xca\x99\xcd\x3f\xff\x7c\ \x28\x32\x28\xa8\xa0\xa6\xc4\x9f\x4c\x82\xfe\x88\xad\xe4\x8b\x2f\ \x5f\xbe\x2c\xf5\x5a\xba\xd4\x09\x8a\xd1\x61\x30\xce\xa3\x52\x9f\ \xa5\x0a\xa8\x27\x32\x0a\x0c\xc6\xbd\x03\x07\xca\x91\x9a\x96\x8c\ \x73\xed\x01\x49\x45\x79\x37\x98\x82\x66\x8c\xc1\x48\x9b\xa2\x55\ \x82\x44\x5c\xe7\x81\x51\x1a\xb1\x2e\x5f\x13\x21\x1a\xe8\x60\xd1\ \x6b\x6d\xa9\x9d\x62\x0c\x56\x95\x95\x11\x0b\x64\x29\xcf\x2e\xfa\ \x9c\x74\xa6\xc5\xb3\xfa\x60\x4b\xac\x82\xc6\x58\xdd\x4c\x32\x6d\ \x65\x63\x30\x5e\xf9\xf9\x4d\xb7\xaf\x5b\xf7\x01\x9c\x0f\xb1\x64\ \x50\x4a\xda\xd4\x3d\x67\xe7\x2d\x74\xde\xc3\xfd\x68\x1a\x43\x0e\ \xe6\x4b\xac\x1e\x87\xe0\x94\xb8\x88\x77\x3f\xe2\x1d\x8a\xef\xb5\ \xd0\xd1\x15\x3d\x9b\xc6\xaa\x16\x89\xeb\x67\x99\x97\x79\x8b\x1c\ \x2e\x1a\xef\xe5\x03\xab\x89\xcc\x02\x83\x41\xe7\x33\x70\x02\x69\ \x44\x92\x7b\x9d\x8c\x8b\x74\x24\xb1\x9d\xb4\x95\x5b\x31\x7f\x1a\ \x83\x91\x25\xef\xeb\xde\xdd\x1d\x8e\x86\xd9\x10\x73\xb5\x27\x3d\ \x4a\xc4\xc3\xee\x09\x1d\xc7\x93\x73\xe7\x66\xdb\xd7\xab\x77\x97\ \x3e\x03\xc5\xef\xac\xcb\x95\x5b\x4a\xd2\xeb\x22\x0b\xc1\x60\xa3\ \xd3\x03\x0d\xc1\xa6\xd7\x37\x6d\xda\x8c\xb3\x5d\xb0\x43\x8b\x16\ \x2b\x05\x80\xac\x8d\x08\x4a\x07\x43\xd8\xe0\x12\x85\x0b\xc8\xd1\ \x00\x6f\xdf\x34\xc4\xb8\xfc\xc8\x10\x4f\x4e\x9a\x54\xe8\x1b\x61\ \x89\xa1\xa0\x2b\x38\xdd\x58\x88\x0a\x59\xf8\xd9\x4a\x82\x13\x6e\ \x6c\xd9\xe2\x88\x4a\x84\x57\x32\xf5\xcb\xeb\x3b\x53\xe5\x4a\x4b\ \xd9\xf6\xb5\x60\x41\xf1\x4f\xc1\x60\xc8\xf3\xcd\x1c\x70\x81\x00\ \x2c\x4b\x94\xb8\x8d\x56\x54\x09\xf7\x0f\x1f\x9e\x1b\x74\xf1\xa2\ \x1d\x02\xe8\xfe\x72\xdb\x99\x40\x4a\xca\x2f\x7d\x7d\x9b\x68\xf6\ \x1d\x00\xed\xf0\x7c\x83\xcc\x79\x0c\x92\xe7\xc3\x38\x70\x4c\x16\ \x7b\x6c\xeb\x43\x2d\x7a\x1e\xa5\xb4\x1d\xe8\xd7\x6f\x07\xee\xf5\ \xbf\x27\x19\x1c\xab\x7f\xb4\xdc\x7a\xa7\x5f\x1e\x2a\x83\xfb\x2e\ \x2b\xa1\x80\xb3\xf3\xe6\x4d\x40\x70\xf8\x33\xb6\x99\xe1\x28\x5c\ \x9d\x1a\x17\x11\xf1\x07\x4a\x64\x76\x22\x55\xec\xe5\xc6\x5a\xb5\ \x1e\x6b\x86\x1a\xd0\x2b\x40\x1d\x60\x97\xfd\xc0\x43\x48\xf0\x95\ \x32\x43\xd6\x94\x28\xf1\x4a\x8e\xb7\xd2\x81\xcf\xd5\x49\xd6\xd7\ \x95\xf8\x0e\x83\x1b\xa0\x7c\xbe\xad\x8d\x1a\x5d\x26\x47\x8d\x48\ \x67\x30\xd8\xf8\xf2\xa1\x3a\x7c\x1b\x9c\x26\x31\x4a\xea\x17\xb6\ \x9c\x2e\x38\x1b\x59\xbe\xbd\x7b\x77\x0d\x29\x73\x69\xbc\x5b\x4f\ \xb3\x1a\x61\x99\x81\xc1\x53\xa7\xfe\xfd\xc7\xc5\x86\x85\xcd\x25\ \x37\x7c\xd0\x85\x0b\x6d\x7f\xe0\xca\x0b\x03\xac\xd2\x41\x74\xbe\ \x95\x95\xe9\x94\x40\xad\x52\xf2\x32\x97\xe0\x92\x5e\x5b\x67\x06\ \x1b\x5d\xe5\x84\x98\x18\xe3\x0b\xe6\xe6\x07\xd0\x7a\xd8\x8f\xce\ \x72\xc8\xcc\x58\xac\xdd\x88\x43\xca\x96\xa7\xc0\xb9\xe2\x7d\x62\ \xf2\xe4\x93\xd8\x8a\xaa\x4b\x6b\x90\xc9\xd1\x4a\x26\x4b\x37\x14\ \x1a\x30\x11\xa2\x2b\x55\x24\xfc\x20\xa9\x72\xc6\x64\x68\x48\x93\ \xbb\x46\x57\xb4\x57\x3e\x22\x8d\xad\x15\xf8\x42\x9e\x0d\x3f\x81\ \x83\x04\x83\x91\x2e\x59\xfb\x72\x3b\x96\xf8\xf1\xe3\x32\x5c\xa7\ \x08\x80\x3c\x7e\x24\x87\x20\x63\x5e\x4f\xe1\xbd\x8c\x44\x61\xab\ \x39\x9e\xf7\x08\x7f\xfa\x74\xc5\xb9\xf9\xf3\x0f\x45\x05\x07\x37\ \x48\x65\xc5\xc8\x4b\xc9\xc3\x60\x1c\xf5\x0a\xd7\xf5\x44\x70\x19\ \x34\x0f\xf2\x34\x31\xd9\x41\xc6\xe5\xf6\xc7\x1f\x8e\xb8\x5a\x80\ \x9f\x35\xb6\xd1\xef\xb0\xcd\x36\xc7\xfd\x1c\x70\x98\x5a\xf5\x9d\ \xc1\xf8\xa7\x31\x2e\xd9\xf5\xc6\x48\x1a\xce\x66\xf9\xcd\x7e\x9e\ \x56\x80\xb3\x73\xe6\x1c\xc1\xb3\xf6\xf2\xdd\xa2\xe0\xaf\x60\x3d\ \x0d\x43\x1b\x8d\x77\x7f\xc7\x35\x9b\xcb\xb0\x61\x53\x91\xab\x79\ \x8a\x12\x91\x85\x8e\x42\x26\x3d\x1f\x24\xfd\x97\xbb\x07\x0e\x6c\ \x45\x1c\xd2\x54\x86\x18\xa2\xa5\x91\x3d\xc1\xd9\x35\x11\x69\x70\ \x1f\xa3\x43\x43\x57\xc4\x7e\xf8\xb0\x04\x0e\xa5\x00\xb9\xe2\x5d\ \x4c\x57\x75\x34\x06\x63\x7f\xaf\x5e\x3f\xe3\x9b\xff\x81\x52\x6b\ \x77\x7a\xfa\xf4\x03\x81\x81\x81\xdf\xf4\x00\xe2\x9d\xb3\x72\xfb\ \x75\xf3\xe8\xef\xbf\xff\x2e\x93\xa6\x4b\x0a\x1d\x84\xb1\x10\x46\ \x52\xfb\x32\xc5\xb6\x42\x85\xe7\xc8\xbc\x19\x6b\x9a\x2d\xdb\x22\ \x25\x39\x00\x09\xd0\x67\x50\x97\xe7\x4e\xf7\xe4\xfd\xc4\xe7\xe8\ \x0c\xe6\x83\xca\xf4\x5e\x59\x91\xe0\xef\xd8\xad\x9b\xfa\xb3\xc9\ \xde\x79\xff\x1c\x0c\x0e\x9c\xe3\x0f\x71\x9a\x97\x99\x99\x13\x55\ \x19\x48\x63\xba\xaa\x34\xef\xd0\x06\x64\x1e\xda\xec\xee\xdc\xf9\ \x2a\xbd\x87\xd2\x9f\xd3\xba\xae\xb8\x75\x72\xea\xd4\x15\x38\xaf\ \x86\x93\x01\xc1\xdb\x6a\x8d\x1a\xc1\xaa\x0e\x4d\x9b\xde\xba\x6e\ \x6f\xbf\xf3\xed\xbd\x7b\x2b\x11\x1a\x89\xc5\x19\x35\x04\x29\x62\ \x73\x94\x50\x83\x55\x99\x32\xd3\xe9\x7d\x5a\x11\xe9\x9c\x8b\x9f\ \x3b\x81\x51\xe0\x22\xda\x7a\x8b\xf4\x00\x83\xfb\x81\xa3\x95\xb0\ \x89\xcb\x90\x21\x1e\x88\xbf\xc5\xac\x2e\x51\x62\xd0\x37\xde\xcd\ \x69\x5d\xa6\x8c\x1f\xc5\xf0\x9e\xb9\xbb\xdb\xe2\xbe\xa0\x8e\x7f\ \xb6\xba\xf4\xb9\x50\x06\xe4\x86\xaa\x84\xc9\xb8\xcf\x85\x78\xe4\ \x02\xa4\xc4\x2d\x5c\x91\x2f\xdf\x3e\x72\x0a\xf9\x3b\x3a\x6e\xc7\ \xf8\xcf\x42\x02\xdb\xcb\x7e\x64\x70\x90\x7b\x30\xa5\xf3\x2d\x56\ \xc9\x6d\x74\x2f\x57\x76\x57\x91\x5e\x60\x70\x08\x01\xec\x4b\xd9\ \xf8\xb8\x8e\xd4\x38\x07\xd5\x07\x0d\x14\x39\x73\xa5\x1e\x0d\xef\ \x0c\x49\xe5\xcc\x94\x53\x47\x3f\x57\x1f\x70\x84\xfc\x0c\x0f\xc8\ \x89\x02\x7e\x41\x6c\xf2\xb6\x14\xb4\x55\x69\x7c\x86\x66\xea\xf3\ \x5d\xd1\xa2\x8f\x70\x8d\x57\xb6\xa4\x47\xc7\x8e\x3d\x7d\x7a\xe6\ \x4c\x1b\xac\x8a\x4e\x18\x3b\x07\xd6\x11\xe9\x04\x06\x77\xcd\x29\ \x22\xcf\x41\x95\x14\x25\x2d\xa9\xfc\xfc\x88\x1c\x0e\x10\xa3\xb5\ \x50\xde\x51\x40\xed\xac\xe4\x1f\xf2\x65\xbc\xa7\xb3\x49\xc5\x27\ \xa6\x4c\xe9\x8b\x34\xb1\xe7\x64\x48\xc8\xbc\x79\x06\x63\x2b\xa7\ \xe5\x68\x69\x42\xcf\x64\x48\xe4\xaa\xdf\xd6\xad\x9b\x64\xbd\xdd\ \x14\x22\x62\x9a\xe7\xe8\xb9\xec\x87\xb7\x5c\xa4\x27\x18\x0c\xe8\ \x8d\xac\x32\xcf\x95\x2b\x42\xd9\x56\x39\x0f\x1a\xe4\x49\x21\x86\ \xd4\x1a\x34\x22\x76\xf7\x9a\xde\x81\xe7\xef\x24\xae\x5b\xc1\x66\ \x3a\xb8\xe2\x95\xc6\x99\x6d\xb6\xc7\xc2\x85\x2e\xa7\x67\xcc\xd8\ \x47\xdb\x64\x0a\x8f\x28\x31\x45\x18\x11\x49\x37\x24\xdf\xda\xb5\ \xcb\x41\x1a\xda\x68\xb0\xb2\x12\x40\x47\x22\x78\x94\x65\xc9\x92\ \xef\x50\xa5\x71\x0f\xe7\x5e\x3f\x8d\x26\x2b\xe9\x72\x9e\x65\xf0\ \x8a\xd7\x10\xce\x12\xb3\xfd\xbd\x7b\x53\x69\x4f\x32\x79\x33\x61\ \x50\x5b\xb4\x65\xec\x70\x3f\x58\x51\xe1\x5a\x53\xaa\xd4\x13\x2a\ \x01\x92\xba\x9a\xed\x74\xd0\xe8\x72\x82\xed\xc0\x3f\xc0\x22\x24\ \x27\x0f\x26\x83\xc7\xe4\x96\xd9\x47\x6e\x35\x8d\xb4\x3e\xe3\x28\ \x7a\xee\x36\x6d\xda\x71\x38\x9b\x66\xa3\x37\x9e\x39\x85\x59\xf0\ \x7b\xb7\x68\xab\x0a\x76\x11\xe9\x00\x06\x1b\x5d\x41\xf0\xd7\x17\ \xde\xde\x6b\xe9\x9b\x5d\x86\x11\x96\x6b\x26\x06\xc3\xb8\x82\x2d\ \xf2\xe4\x89\x80\xe4\xf9\x72\x5a\x19\x42\xaf\x5f\xb7\x81\x87\x30\ \x12\x46\xfa\x46\xe8\x38\x8e\x8d\x19\xf3\xd3\xfa\x6a\xd5\xfc\x94\ \x55\xdc\xf9\xd7\x5f\x3d\xde\x3c\x7d\x5a\x3c\x95\x8c\x95\x1b\xa4\ \x15\xfa\xe1\xc9\x13\x63\x7c\xfe\x3d\xf8\x6c\x41\x26\x42\xfc\xb2\ \xa9\x6e\xdd\x29\x18\x8f\x91\xdb\xef\x2d\x22\x9d\xc0\x60\xc3\x2b\ \x0f\x4e\x24\xa1\x1f\xe8\xa5\x50\x31\x28\x89\x19\xcd\x07\xf7\x91\ \x11\xba\x2f\x58\xe0\x8a\xe7\xdd\xc1\x22\x60\x05\x78\x34\x5f\x50\ \xed\x5d\x74\x74\x74\x11\x1d\xff\x5c\xb9\xc0\x71\x14\x2e\xc0\xea\ \xfc\x56\x1a\xde\x32\xa1\x01\x32\x2c\x1a\xa7\xb0\x02\x44\x9d\x14\ \xe3\xa4\xea\xfa\x09\xc8\x57\x6d\x4d\x2b\x3b\x09\xf6\x42\xc6\x7d\ \x33\x25\x18\xe0\x59\xe1\xf4\x12\xb3\x65\xb0\xc0\x51\x03\x19\xa3\ \x32\xc0\xd6\xf1\x85\x2c\xe7\x49\x40\x42\xb4\x89\x92\x85\x8f\xb1\ \x36\x34\xbe\xab\x53\x27\x5f\x8c\xd5\xd4\x4c\xb5\x82\x83\xa5\x36\ \x9e\xe5\xd7\xc1\xcf\xd5\x10\x65\x40\xf3\xcf\x9b\x98\x1c\x7a\x74\ \xfc\xf8\x58\xad\xed\xe4\x6e\xe5\x73\x92\x87\x13\x61\x85\x70\xba\ \x0f\x38\x74\xc8\x04\xd7\x4b\x38\xf7\x25\xdd\x3b\x78\x90\x2a\xed\ \x17\x82\x25\x31\x16\xa8\x08\xf1\xa6\x9b\x68\x2d\x83\xf1\xfa\xf6\ \xed\x11\x14\x0c\xa7\x32\xa0\xed\xcd\x9b\x2f\x55\x32\x33\x60\x50\ \xb7\xa9\xe9\x08\xb4\x34\x57\x91\x6b\x7e\x81\x10\x85\xb0\x12\x9e\ \xd0\xe8\x21\x10\x87\xab\x83\xae\xad\x02\xa4\x7c\x26\xb3\x4e\xfa\ \x0a\x09\xca\x17\x85\xd1\x24\x28\x15\xf5\x70\xb8\xec\xb5\xfb\xe9\ \xa7\x67\x54\x85\x6e\x5f\xbf\xbe\x2b\x8d\x1f\x1b\x37\xee\x38\xad\ \x92\x4a\x32\x00\x2a\x2d\x86\xad\x2c\x50\xe0\xb5\x5c\x09\xfd\xd3\ \xb3\xd3\x2b\x83\x65\x1e\x86\x42\xbe\x61\x05\xae\x23\x61\x48\xb3\ \xc1\x68\xd9\x92\xf8\x34\x6d\x31\xe5\xf9\xc7\x8b\xc6\x50\x02\xe4\ \x8b\x1c\x4c\x67\x6c\xc5\xee\xc8\x34\x2b\x7f\x5d\xcf\xe0\x80\xc1\ \x8c\x00\x53\xcc\xf5\xf5\x3f\xd1\xb6\x93\x1c\x26\xa4\x23\x43\x4a\ \xd8\x14\x3e\x40\xd2\x33\x75\x03\x9a\xaf\x99\x08\x40\x5b\xea\x67\ \x9e\x9e\x6b\x94\x7e\x78\x44\xda\x7a\xcf\x16\x22\x8f\x48\x07\x30\ \xd8\xf0\x2a\x81\x46\x96\x65\xca\xd4\x41\xb6\x86\xba\xae\x6e\x77\ \xc7\x8e\x54\xe8\x99\x5b\x4a\xf4\xa5\x10\x21\xf8\x1a\xee\xbe\x70\ \xa1\x3d\xc6\x17\x28\xb9\x8c\x88\x6d\xcd\xd5\xf5\x6c\x9c\x8b\xcb\ \x97\xef\x78\x78\xf4\x28\xc5\xe4\xa6\x20\xdf\xb2\xa1\x62\x44\x28\ \xe6\x7d\x47\x89\xcf\x18\xaf\x2a\xb4\x00\xa3\x3c\x44\x5e\x5d\xd2\ \xde\xdc\xd1\xb2\xe5\x0d\x32\x52\x8b\x02\x05\xea\x89\x74\x04\x83\ \x0d\x2f\x2f\xea\xef\xe6\x9d\x98\x38\xf1\xa4\xaf\x9d\x1d\x95\x02\ \xa9\xc8\x5d\x2e\xdd\xed\x57\xd6\x56\xa8\xf0\x48\x7a\x39\xdd\x2f\ \x5a\x58\x8c\xa2\x2d\x9a\x4d\xf9\xf2\x57\x7e\x00\xdd\x98\xa6\x52\ \xc6\x2f\x17\x0c\xed\x37\x29\xce\x94\x44\xa2\x4c\xa9\xc5\x25\x69\ \x0b\x49\xab\x1f\x19\x9a\xdc\x6a\x8e\x4a\x4e\x4c\x34\xc3\xb5\x8b\ \x4c\x19\x3b\x44\xff\x9d\xf4\x28\x03\x62\xb0\xd1\xe5\x01\x7b\x82\ \x63\xc0\xec\x94\xb9\x4f\xcd\x48\x50\x00\x7b\x3f\xe1\xe3\xc7\x99\ \x30\xb4\xfd\xf0\xea\xbd\xa6\xd8\x17\x9d\xfd\x36\xd7\xaf\x7f\x8f\ \x3c\x7b\x3f\x50\x05\x79\x71\x24\x42\xfb\x9e\x9a\x31\xe3\x98\x0c\ \x8c\x67\xd3\x4e\x02\xa0\x8a\x0a\xc4\x2b\xe3\x94\x5e\x78\x02\x90\ \xa5\x51\xf9\xe8\xf7\xf1\xb9\xdf\xc8\x55\xd2\x1b\x6c\x28\xd2\x13\ \x0c\xc6\x8e\xd6\xad\x3d\x94\x95\xed\xfc\xe2\xc5\xa3\x29\xa9\x18\ \xf1\xae\x53\x08\xa2\x7f\x22\xaf\x20\x6d\x3d\x7f\x30\xa5\xb4\x51\ \xb2\x3c\x29\xbf\x46\x0e\xe6\x00\x5a\xb1\x70\x1d\x0b\xa6\x1c\x19\ \x35\xea\x2c\x7d\xf1\xa4\x62\xb0\xe5\xb1\xb2\x27\xae\x2e\x52\xe4\ \x03\xae\x9f\xc8\xeb\x09\x62\x38\x9d\xc0\x60\x24\xc5\xc5\xfd\xb2\ \xbf\x4f\x1f\x92\xeb\x53\xd7\xa8\x61\x65\xbb\x8f\xb3\x90\x23\x32\ \xf7\xad\x92\x3e\x7d\xfa\x23\x8d\x2b\x4c\x13\x92\xf0\xcb\x6a\x67\ \x0b\xad\x56\x1a\x41\x71\x27\x8d\x15\xeb\x2d\x82\xfe\x6f\x49\xda\ \x82\x56\xfb\x54\x02\xe8\xea\xb3\x1d\x6d\x47\xf1\xf9\xad\x6d\x8d\ \x8c\x14\x99\x87\x99\x22\x1d\xc1\xe0\xf8\x5d\xf7\x37\x77\xee\x58\ \x51\x3f\x38\xfc\x41\x3e\x87\xd1\xc5\x1e\x19\x37\xae\x59\x5a\x15\ \x94\x61\x70\xeb\xa4\xd7\xef\x09\xae\x65\x85\x0e\xe0\x5d\x40\x40\ \x3d\xac\xd8\xe7\x69\xc5\x22\xe3\x59\x5f\xb5\xea\xd3\x07\x87\x0f\ \xf7\x48\xe5\x6c\xd7\x9a\x9e\x3b\xb6\x6e\x7d\x5d\x36\xd5\x2c\x47\ \x0d\x59\x90\xa5\x13\x8b\x5c\xd4\x0f\xe9\x1e\xb3\x63\xb0\xa8\x11\ \x38\x08\x5c\x2c\xf5\x55\xd2\x1c\x9f\x82\xa7\xf3\xa0\xe2\x25\xdc\ \xdf\xbf\x7f\x43\x1d\xca\xcf\xec\x47\x2b\x16\xa4\x1c\xee\x4a\x4d\ \xcf\x68\xe5\x7c\xa6\xc4\x27\x31\x76\x0b\xc5\xbb\xb1\xef\x1f\x3e\ \x5c\xad\xc8\xfd\xe1\xaa\x8f\x33\xe1\x65\x32\xc4\x8b\x56\x56\xe5\ \x04\x83\x91\x41\xe9\x54\x75\xc0\x7c\x22\x0d\x40\x88\xe1\x67\x45\ \x3a\x81\x88\x9e\x78\xbd\x84\x04\x62\x0b\x14\x60\x2f\x92\xc5\x86\ \x57\x0e\x1c\x77\x6b\xe7\x4e\x07\xc8\xb4\xdf\x70\x1e\x38\xb0\x8b\ \x52\x2b\x08\x8e\xd7\x88\x4f\xf6\x10\x1a\xc0\x0a\x77\x9d\x3c\xb6\ \x58\x29\x5b\x68\xac\xe4\x75\xc0\xb1\xd4\xf5\x35\x2b\x56\x72\x06\ \x43\xa5\x4e\xa3\xd2\xd3\x4b\x40\xeb\xe5\x37\xd4\xe1\x95\xdc\xf5\ \x1a\x75\x6c\x4f\x65\x2b\xe2\xb1\x3a\xb0\xe2\xd5\x03\x67\x82\x43\ \x28\xd8\x2d\x6b\x05\x93\xd5\x67\xbb\xd8\xd8\x45\xd2\x49\xa4\x18\ \x56\x49\x6c\xaf\xe3\xa8\x31\x0b\xc6\x1b\x4b\x1d\x4d\x27\x25\x2b\ \x47\xa3\xfe\x6e\x3d\xeb\xab\x30\x32\xd3\x1d\xff\xab\xd2\xd9\xd5\ \xa6\x5c\xb9\x17\xa4\xc3\x12\x1b\x19\x59\x0f\x63\x4b\x28\xc4\xa0\ \xac\x7a\x72\x05\x2c\xad\x0b\xe2\xae\xb2\x6f\x9d\x6a\x7d\x8d\x1a\ \x9b\x28\xdf\x12\xfc\xb2\xb6\x52\x25\x8a\xc1\x15\x97\x45\xbe\x15\ \x60\x48\xf7\x29\x23\xc5\x7f\xfb\xf6\xed\xb1\xb1\xb1\x94\x87\xe9\ \x02\xa6\x20\x91\xfa\x36\x72\x3a\xd7\x93\xbe\x0a\xad\x96\x8a\x4c\ \x3b\x15\x03\x8b\x0c\x06\x83\x8d\x2d\x37\xf8\x02\xf1\xbb\x70\xea\ \xec\x6a\x9e\x3b\x77\x28\xf5\xc7\x43\x96\x8a\x9f\x14\x35\x8a\xa5\ \x2b\x4a\x65\x1e\x52\x73\x47\xbb\x4a\x95\x1c\xa4\x01\x1e\x05\x4b\ \xeb\x80\xe1\xb5\xa2\xfe\x0e\xf4\xef\x93\x86\x93\x40\x82\x4d\x60\ \x38\xdd\xbb\x0e\x1b\x46\x92\x83\x63\x95\x2f\x95\x6d\x4d\x9b\x5e\ \x91\x81\xf2\x81\x60\x5b\x70\x02\x54\xd6\x2e\x2b\x5f\x28\x14\x3c\ \x17\x19\x04\x06\x1b\xdb\x32\xac\x02\x6f\x34\x3b\xbb\x92\xe2\x96\ \xb2\x9a\x41\x51\xf9\x2c\x0c\x4c\x2d\x65\x4e\xc6\x86\xe7\x5d\x1f\ \x9f\x3d\x5b\x8f\x56\x0d\x99\x11\xb2\x55\x47\xce\xad\x15\xc1\x49\ \x74\xbe\x43\xbf\xbb\xab\xe8\xe2\xfa\x00\x32\x0e\x3e\x3e\xd6\xd6\ \x3b\x65\x95\x41\x71\x0a\x2b\xa0\xa4\x29\x3a\x2e\x2c\x8c\x8c\xad\ \x81\xd0\xc0\xd9\xb9\x73\x27\x4b\x63\xa4\xdc\xcd\x46\xf8\x79\x15\ \x8c\x6f\x65\xba\x56\x5e\x30\x18\xab\x8b\x17\xef\x85\x00\xb9\x3a\ \x21\x1a\x5b\x2b\x7f\xe7\xc9\x93\xf3\xae\x2e\x5a\xf4\x1e\x09\xb8\ \x5e\xb5\xb3\xdb\x75\xd1\xdc\x7c\x1f\x3d\x43\x7f\xf3\x4b\xe4\x01\ \x55\xf2\x1f\x91\xcd\x1f\x83\xc2\xd2\xa7\x90\x54\x98\x86\x7b\x15\ \x75\x08\x52\x84\x6c\xb3\x58\x8c\xb7\xa1\xd4\x48\x31\x95\x9c\x04\ \x1a\x51\xe5\x04\xf8\x15\xf1\xc9\x6b\xb8\x6f\x23\xab\x2e\x7a\x51\ \xa5\x85\x52\xb5\x80\x8a\x0c\xef\x88\xe7\xcf\x57\x92\x54\x04\xbe\ \x48\x76\xcb\xd5\xf2\x2d\x38\x3a\x5d\x3e\x17\x83\x41\xee\xf3\xb0\ \xc0\xc0\xe5\x08\x94\xfb\x22\x24\xf0\x1c\xa5\x31\xc5\x92\x93\x93\ \x7b\x51\x85\x42\x5c\x64\xe4\x0c\xac\x6c\x41\x1a\x32\xed\x85\x84\ \x04\x0a\x42\x83\x71\x5e\x7a\x41\x2b\x05\x79\x09\x11\x6c\x56\xb6\ \x73\xbe\x60\x71\x1d\x91\xa0\xcf\xaf\xd1\x58\xc4\x80\x56\x65\xfb\ \x9f\x7f\x0e\x20\x2f\x2e\x25\x7d\xcb\x2c\x94\x30\x3c\x9b\x48\x06\ \x28\xd3\xe5\x3a\xcb\xec\x1d\x2b\x32\x38\xc4\xef\x94\xd5\xfe\x86\ \x89\x10\xcd\x45\x3a\x80\xc1\x46\x57\x0c\x1c\x2e\x57\x84\x26\x58\ \xdd\x5a\xe2\xfc\x16\x08\x27\x84\xab\xb6\x4c\xbb\x02\xa4\x4e\xdd\ \xa6\xea\x04\xd4\xa5\xcd\xc5\x3b\x21\x60\xca\x8a\x02\x05\xa2\xf0\ \xbb\xef\x56\x97\x2c\x49\x92\x7f\x8b\xa5\xe8\xad\xce\x00\x2b\xf2\ \x45\x69\x3c\xa6\x02\x70\x5f\xb4\x68\x35\x79\x36\x15\x83\x52\x56\ \x3b\xba\x92\x21\xe2\x33\xbe\x87\xe6\xcc\xf2\xc3\x23\x46\x9c\xc3\ \x39\x36\x5e\xae\x78\xfb\xd3\xeb\x73\x31\xd8\xf0\x4a\x83\xd9\x48\ \xc2\x0f\xf5\x69\xc1\x64\x44\x38\xcf\x25\xbd\xbc\x7e\x9d\x82\xe8\ \x39\x85\x06\x2c\x8b\x17\x3f\xaf\xd1\x7e\xeb\x39\x2a\x18\xf6\x24\ \xc6\xc5\xd1\x7b\xa6\x10\x02\x32\x53\x0a\x61\x41\x13\x5d\x51\xdd\ \xba\x7b\xf0\x60\x1f\x48\x38\x84\x49\x03\xdb\x75\x70\xc0\x80\x09\ \xa8\xb2\x50\x1b\x21\x2a\x2d\x6e\xec\xed\xd6\x4d\xe9\x0b\xb1\x96\ \xc6\xce\xcc\x9a\x75\x14\xfa\x31\xbd\xae\xae\x5f\x3f\x1d\x15\xf7\ \x96\x78\x27\x88\xc6\x97\x66\xcf\x3e\x5f\x30\x18\xe9\x79\x16\x8a\ \x8f\x8c\x9c\x87\x34\xb1\x73\x70\x3e\x44\x1d\x1e\x39\x72\xa2\x90\ \x50\x56\x00\x6a\xb9\x8c\x7a\xb5\x48\x24\x4b\xef\xa5\x3e\xe8\x32\ \x2e\xd6\x04\x2c\x05\xbd\x95\x81\x64\x70\x08\x38\x2b\xbd\xf3\x26\ \xea\x4a\xed\x5d\xe4\x8b\x17\x73\x51\x41\x11\xa0\x19\x87\x93\x1a\ \x9a\xa6\x60\x2b\xd2\x00\xc5\x58\x92\x74\x08\x25\x52\x58\x01\xbc\ \x15\xe4\xe5\x55\x9e\x1c\x2e\xb4\xaa\x53\xf3\x4d\xbc\xab\x68\xce\ \x0c\x4a\x97\x32\x20\x06\xd7\xde\x81\xbd\xc0\x25\xe0\x10\xd9\x46\ \xeb\xac\x5c\xb1\x36\x83\x29\x54\xfc\x29\xe5\xf0\xea\x83\x7a\x1a\ \x09\xc4\xa7\xc9\xab\x89\xf2\x19\x4b\x92\x3b\x8f\xfb\xf0\x81\x24\ \xce\xab\xd1\xaa\x82\x6b\x7d\x1d\x28\x6f\x1a\xf5\xcc\xc3\x63\x1d\ \x2a\x0e\x4e\x6f\x6f\xd1\xc2\xeb\xb1\x9b\xdb\x46\xa4\xc2\xd5\xa1\ \x95\x98\xfe\xed\x38\x8f\x26\x53\xa3\x4c\x88\xda\xbe\x24\xc3\x83\ \xcc\x85\xc7\x33\x3f\xbf\x02\xb8\x3f\x49\x5e\x50\xfc\x7e\x73\x8c\ \x57\xc1\xbb\x89\xd2\x68\x2f\xa5\xd7\xe7\x62\xb0\xe1\x15\x07\xf3\ \x51\xf5\x00\x9c\x27\x17\x95\x55\x01\xab\x58\x08\xe4\x10\xa6\xa4\ \x52\xaf\x46\x5a\x92\x5f\xb6\x36\x69\x72\x27\xf2\xe5\xcb\xfe\x38\ \x37\x39\xa1\xf1\x07\x69\x4e\x36\x83\x63\x25\x8e\x9e\x49\x21\xdb\ \xdc\x59\xec\xcd\xac\x0d\x8e\x00\x67\x81\xc3\x61\x30\x7b\x49\x98\ \x48\x6d\x60\x9d\x3a\x5d\xc1\xd8\x38\x68\xaa\xdc\xa0\x15\x5e\x3a\ \x8c\x0a\xca\x2f\xa0\x89\x20\x79\x38\x4f\x92\x61\xd2\xbb\x94\x9d\ \x23\xb3\x55\xb6\xa5\x5b\x0c\x8f\xc1\x80\xf7\xb2\x3f\xc5\xea\xa0\ \xaa\x15\x49\x46\x07\x4f\xe5\x65\x52\x56\xd6\x2a\x8f\xb1\xa6\x67\ \x97\x57\xae\xdc\x8f\x70\xc3\x75\xa9\xad\xf2\xc1\xcb\xcb\x2b\x3b\ \xa4\xfe\x9c\xe4\x7d\x92\x59\xce\x9c\x7d\x85\x0e\x01\xd9\x2a\xbd\ \xb0\x65\x54\x9f\xef\xd0\x3a\x3a\xd8\xa1\x55\xab\xb6\x57\xd6\xad\ \x6b\x4c\x1a\xa0\x41\x97\x2f\xf7\x25\xcf\xab\xac\xd5\xcb\x81\x03\ \x5c\x01\x5a\xdd\x70\xe6\xa3\x50\xc9\x6c\xca\xce\xd1\x48\x13\x8b\ \x02\xe7\xa4\x57\x2f\x08\x06\x77\x03\x6a\x43\xd9\x28\x48\x1c\xf6\ \x44\xce\xa5\x1f\xae\x05\x34\x33\x56\xb0\x8a\x45\x22\x46\x17\x8f\ \x95\xe1\x2d\xad\x66\xb2\x9c\x26\xd0\xdb\xd2\xb2\x1e\x56\x82\xb7\ \x64\xac\x48\x8a\x5e\x43\xd9\xff\x26\x42\x34\x92\x0d\x2b\x7b\xe8\ \xc0\x67\x2b\x83\xcf\xb5\x84\x8c\x87\xce\x6e\xb4\x62\xe1\x4b\xc1\ \xf1\xe1\xf1\xe3\xbf\xe1\x33\xdd\xa3\x15\x4d\x68\x00\xa9\x62\xd3\ \x92\xe2\xe3\x4d\x4f\x4e\x9f\x5e\x1d\xde\x5c\xea\x02\xfb\x0a\xbd\ \x12\x76\xc0\x99\xf4\x4a\x1a\xde\x3a\x91\x1e\x60\x30\x64\x7c\x6b\ \x00\x68\xaa\xd9\x9f\x5c\xa9\xc6\x96\x0e\x87\x4f\x54\x9b\x47\xf7\ \x94\x36\x05\xaf\x27\x15\xc8\x26\xcb\x33\xd0\xaf\x60\x71\xd2\xd0\ \xc4\x7b\x8a\xd7\xf0\x2c\xae\x35\x74\x40\x25\xad\x7f\xe8\xb5\x6b\ \x36\x70\xac\xdc\x26\xc7\x8a\x92\x47\xea\x3a\x62\xc4\x4e\x5a\xdd\ \xb4\x4a\xa1\x6a\x49\x39\x42\xa5\x35\x57\x1f\x74\x03\x7a\x4a\x7a\ \x2c\x81\x67\xce\xcc\x90\xe7\xda\xf4\x03\x83\x65\xfc\xb4\xb6\x93\ \xb7\xa4\x77\x32\xf6\xee\xfe\xfd\x5b\xdc\xa6\x4c\xd9\x43\xf7\x48\ \xb1\x7a\x2d\x73\x1a\xdd\xe4\x19\x28\xbb\x92\x7c\x1c\x15\x12\xb2\ \x64\x43\x8d\x1a\x8f\xa5\xa1\x26\xc1\xf0\xec\x68\xcb\x96\xc5\x86\ \x67\x08\x8e\xa7\x84\x67\xcb\x12\x25\x42\xd0\x70\xf2\x25\x44\x6c\ \xe7\x69\x87\x46\xb0\x42\x37\xd0\x68\xcd\x35\x0e\x8e\xa2\xf6\x64\ \x9c\x07\xfb\xf5\xbb\x80\xfb\x0c\x4d\x82\x66\x30\x54\x9b\xea\xd5\ \x5b\x84\xf3\x4f\x08\x5c\xe8\x76\xf4\x07\x8b\xad\xa5\xbd\xb2\xe2\ \xc1\x79\x72\x07\x4e\x96\x85\xda\xad\xb8\x7c\xb7\x6e\x2d\x8b\xb3\ \x53\x38\x55\x27\x6c\xa8\x59\xf3\xbe\x92\x14\xad\x23\x55\xf4\x3f\ \x23\x75\x6d\x2e\x55\xd2\x93\x27\x56\xa3\x9b\x4f\x79\x29\x45\x7f\ \x99\x1c\x26\x74\xce\xa3\x5a\x3d\x8c\xe7\x47\xee\xe9\xb1\xf8\xa8\ \x28\x53\x5a\x2d\xff\x8b\x89\xb9\xad\x44\xa6\x81\x21\xc3\x03\x8b\ \x65\xd6\x4a\x4e\xc5\x69\x42\xc6\x14\x11\x14\xb4\x4a\x91\x65\xd7\ \x5a\x15\xcd\xe9\x1d\x6a\xcd\x8c\xe7\xf3\x6e\x6c\xde\xec\x18\xe0\ \xec\x4c\xa1\x88\x1c\x18\x37\xcc\xea\x74\x2a\xaa\x18\x07\x9b\x69\ \xa4\x88\x6d\x92\x2b\xb1\x1b\x7d\x36\x3a\xcb\xd2\x36\x54\xe3\xfd\ \x51\x60\x13\xf1\x5f\x04\x26\x3c\x48\x5d\x0f\x25\xc4\x2c\x91\x99\ \xe0\x6e\x40\x7a\x52\xae\x41\x1d\x8f\x93\x7d\x01\xba\xa5\xa6\xb0\ \x45\x6d\xb7\x90\xc1\xf1\x04\xcf\xa7\x4b\x29\x85\xc6\xb2\x6c\x86\ \xaa\xb8\x15\xb9\x87\xc3\x60\x45\xa1\x03\x38\xfa\xfb\xef\x35\x90\ \x6f\x7a\x5b\x59\xb9\x91\xf6\xe5\x16\x19\x14\x44\xaa\xd0\x0c\x2a\ \x2d\x41\xae\x9f\x72\x3e\x98\x27\x32\x1b\x6c\x7c\xad\x43\xae\x5e\ \xb5\x95\x62\xad\x7a\xd2\xc8\xf2\xa6\xa6\xb0\x85\xe7\xd5\x85\x16\ \xd6\x55\xab\xb6\x40\xd9\x92\xca\x7e\x78\x4b\xc1\x6c\x3a\x10\x38\ \x9f\x78\xc5\xd6\x76\x0f\x3c\x92\xef\xff\xe9\xdf\x16\xad\xe2\xa4\ \x92\xf6\xaf\xe8\x06\x44\x5b\x14\xc8\xa9\x2d\x41\x90\xf6\x15\xf6\ \xda\xf1\x9c\x82\x93\x25\x01\xe6\xc6\x60\x41\x69\x6c\x0d\x29\x7e\ \x05\xba\x82\x23\xc9\x90\x90\x95\x7f\x4d\xe9\x7b\xae\x40\x31\x4c\ \xc4\xeb\x5e\xa3\x10\x36\x9c\x56\x48\x5a\x05\xa5\xe1\x1d\xd0\x91\ \xcf\xf5\x0b\xc9\x39\x50\x5c\xf2\x99\xbb\xfb\xd0\x7f\x60\x70\x13\ \xa5\xd1\xbe\x06\x7b\x89\x1f\x1d\x81\x81\x81\xfa\xc8\x62\x7f\x09\ \x46\xc5\xc7\xc7\x1b\x8a\x2c\x03\x83\x82\xc1\xeb\xab\x57\x77\x85\ \x21\x7d\x96\xc2\xb5\x5f\x42\x7c\x7c\x6c\xa4\xc2\x96\xf6\xbb\x2b\ \xc0\x14\x28\x49\x1f\xa0\x98\x5d\x42\x74\xf4\x4c\x1b\x23\xa3\x97\ \x34\x66\xa6\xaf\xdf\x56\x47\x56\xf0\xdc\x60\x57\xb0\x9b\xf8\x4e\ \xe0\xef\x72\x86\x6c\xd5\x15\x87\x52\x20\xf2\xf2\x66\x47\xb8\xa4\ \xaa\xf8\x51\x81\xe5\x7a\xb8\x74\x49\xbb\x6b\x1e\xda\xe5\x81\xbc\ \x3d\x29\x55\x89\x4c\x03\x83\x62\x55\x08\x26\x6f\x5a\x5b\xb1\xa2\ \x7a\xc5\x82\x27\x33\x1c\xf3\xd0\x5b\xcb\xd8\x2a\xd2\x16\x12\x95\ \xe6\x81\x78\x7f\x1a\xa8\x47\x84\x33\x65\xb6\xf4\x78\xee\x11\x3a\ \x86\x34\x0b\xe7\x6a\x97\x01\xa1\xbb\xed\xa7\xc8\x48\xb3\x55\x45\ \x8b\x5a\xca\x3a\x3d\x0a\xa9\x94\x14\x3f\x12\x60\x4c\x75\x31\x71\ \xaf\x90\xf5\xf0\x9e\xe4\xbf\xa9\x3f\x99\x54\xa7\x5a\xa7\x04\x34\ \x25\x1f\x64\xaa\xe1\xb1\xd1\x55\x43\x88\x60\xfa\x05\x0b\x8b\x83\ \xa8\x47\x7b\x07\xe7\xd6\x63\x2d\xcf\xa5\x7a\x15\x24\xc3\xd4\x14\ \xb2\x45\xc8\xe1\x17\xf5\x36\xb4\x55\x2b\x2f\xa1\x85\x99\x42\xe4\ \xca\x2a\xd5\x2d\x5a\x95\x40\x6f\x70\x56\x5a\x52\xba\x94\x32\xa0\ \x73\x73\xe7\x1e\xa6\x7a\x43\xf0\xe7\x33\xc6\xc6\xe5\x10\x4e\xf9\ \x28\x53\xe0\xae\xfc\x68\x5b\x98\x14\x8d\x0f\xd4\x42\x4e\xa6\x09\ \x8d\x61\xa2\x9f\x21\x13\xe2\xb0\x43\xf3\xe6\x3e\xd4\x43\x1a\x13\ \x1c\x83\x67\x43\xa8\x3c\x43\xfb\x2c\x41\xab\x24\xf7\x1e\xcb\x90\ \x1e\x02\x2d\x60\x78\x8b\xa0\x31\xb2\x8c\xb6\x95\x58\xe9\x3a\x53\ \x81\x27\x98\xe2\xd8\xb6\xad\x2f\xc6\x46\x08\x40\x3b\x93\xc5\xd3\ \xc4\x64\xb7\xbc\x2f\x0c\x5a\x91\x4c\x9e\x3c\xdf\xbd\x04\xcd\xb3\ \x22\x8f\x31\x3c\x28\xa8\x29\xbc\x97\x54\x25\xee\x87\xcf\xd1\x5d\ \xfc\x05\x94\x32\x20\x29\xd2\x94\x80\x1a\x3b\x63\xdc\x1b\x98\xe7\ \xc9\x33\x84\xc6\xd0\x5e\xf9\x26\x52\xc5\xac\x7e\xa4\xbe\x10\x02\ \xe9\x39\x3e\x54\x56\x0f\x35\x27\x12\x86\xc9\x2e\xcb\x2f\xc2\x20\ \x91\x16\x14\x17\x1e\x6e\x21\xf5\x2e\x66\x51\x79\x06\x2a\x95\x95\ \xda\x2d\x17\xad\x49\xee\xa3\x31\x99\x43\xd9\xf1\x92\xfe\x3d\x04\ \xc0\x06\x60\x0e\x72\xa4\x28\xf9\x97\x48\x0c\xbe\xfc\xe4\xcc\x99\ \x72\x1a\xbb\x95\xaa\x78\x16\x8c\x79\x8a\x46\x3d\xda\x54\x12\xa6\ \xc5\xbd\x5a\xde\x0e\x5b\x32\x7f\xa8\x2b\xbb\xc2\x6b\xf8\x50\xae\ \x0c\x1e\x52\xfc\x47\x95\xc9\xe5\x4c\x7d\x82\x2e\x5d\x9a\x8c\x6a\ \xf9\x03\x32\x4e\x57\xed\x4f\x16\x83\x33\x38\xc3\x52\xc7\x57\x17\ \x38\xf5\x94\xfe\x07\xcf\xc0\x97\xa4\x9e\x86\x2f\x21\xaa\x31\x1c\ \x0c\xe6\xfa\x91\x26\x73\x04\x6d\x4b\xa0\xb8\x3b\x9f\x0c\x8e\x26\ \x49\xc9\xed\x93\xf2\x68\x2a\xf9\x5e\xc9\x2d\x8d\x1a\xf9\xd1\xb3\ \xcb\x96\x96\xf6\x14\x03\xd2\xf4\x48\xa1\xc8\x72\xa7\xa2\x6d\x41\ \xfa\xf5\x22\xc3\xc0\x52\x0f\xa4\x13\x89\x06\x1c\x21\x72\xc5\x0a\ \xc6\x75\x31\xae\x33\xc1\x70\x72\xb2\x5c\xb1\xb1\xd9\x23\x7b\xa0\ \xef\x00\xbf\xee\xeb\xd1\xc3\x53\x4a\xde\xcd\x02\x17\xa1\xda\xfc\ \x38\x6d\x47\x65\xdb\x65\xcb\xac\x48\x82\x06\x47\x5d\x30\x33\x9b\ \x86\xa4\xe6\xcb\x30\x20\x5b\x18\x53\x41\x8d\xed\xf2\x7c\xdc\x87\ \x6a\x94\x01\x8d\xa7\xae\xaf\xe7\xe6\xcd\x3b\xac\xfc\x8d\x91\x11\ \x62\xbc\xcd\x8f\x3a\x89\xb5\xc1\x4e\xb2\x6e\x4b\x85\xf3\xdc\x6b\ \x7c\x03\xc5\x52\x1e\x9c\xd0\x00\x56\xc1\xf9\x94\x29\x4e\xab\x9e\ \xd0\xc2\x55\x5b\xdb\x7e\x08\x2b\x7c\xc6\x61\xfd\x09\x19\xaa\xc8\ \x48\xb0\xd1\xd5\xc4\x36\x73\x16\x4a\x79\x5c\xa1\x1e\xa6\xfe\xe6\ \x97\x5e\xbc\x77\x1e\xc6\xc6\x4e\xe4\x44\xb1\xaa\x50\xa1\x8a\xcc\ \x61\xa4\x9d\x8b\x31\xf8\xb3\xfc\xdd\x1c\x60\x2b\x6c\xed\x9e\xcb\ \x2c\x10\x0b\x5c\x0d\xc0\x1e\x54\x46\x94\xd9\x7f\x77\x30\xa4\x89\ \x3b\xdb\xb7\x5f\x4c\x7d\xc8\xc1\xb1\x52\x9a\xa2\x03\x0c\x4b\x1d\ \xbf\x43\x0e\x69\x60\x4c\x4c\x4c\x31\x0a\xf2\xdf\x77\x71\x19\x84\ \xb3\x6c\x22\xa5\xc6\xd1\xe7\x97\x89\xd2\x3f\x3e\x4e\x4e\x99\xb2\ \x8c\x14\x7a\xe9\xcc\x86\x89\x18\x06\xe6\x54\xfa\x46\x83\x26\x60\ \xf9\x54\x3c\x9d\xc7\x68\xf9\x0f\x3c\x75\x6a\x03\x9e\x57\x11\x19\ \x0a\x86\x34\x9c\xb6\xe0\x22\xca\xcb\x24\x91\x57\xd9\x9c\x64\x36\ \x48\x4d\xf8\xd5\x01\x71\x19\x30\x57\x14\xa0\x55\x42\x02\xca\xd1\ \x9e\xf4\xc7\x0c\xc3\x9d\x61\x9a\x2d\xdb\x60\x69\xb4\x8f\xc0\x6e\ \x59\xf1\x39\xa2\x42\x43\xa7\x38\xb4\x6c\x39\x4a\x59\xc5\x63\xde\ \xbe\x35\x3d\xd8\xbf\xff\x85\x8d\xb5\x6b\xdf\x80\xb7\xd6\x90\x02\ \xe7\xa0\x0b\x1d\x7f\x64\x56\x4e\xed\x7f\xd5\xb6\xe5\xa6\x83\x83\ \x03\x56\xba\x48\x45\x77\x50\xf9\x06\xd2\xce\x06\x27\x28\x2d\x7d\ \x77\x76\xe8\x40\xcb\xff\x30\x91\x99\x60\xc3\x33\x90\x3a\x93\xed\ \xe5\x35\x87\x00\xb0\xdb\x50\x17\xb9\x7e\x78\xfa\xf4\x77\xb9\x4d\ \x5b\x2f\xdb\x6b\xf5\x11\x40\x62\x6c\x6c\x5d\x59\x3a\x54\xd3\xd9\ \xd9\x59\x0f\x19\xff\xea\x2d\x9c\xe4\x29\x3a\x0f\x66\x45\xd9\x0f\ \x98\x5f\x23\xfd\x6d\x20\x68\x0a\x79\xc2\x89\x8a\xbe\x0a\xe2\x8c\ \xc1\x18\x1b\xfd\x6f\x9c\xc8\xaa\x28\xb7\x58\xe8\x63\x65\xb5\x67\ \x43\xf5\xea\x57\xb0\xcc\x5f\x74\x1e\x34\x68\xd4\x37\xdc\xbd\x01\ \xd8\x02\xc4\x84\x3f\x7f\xbe\x82\x8c\x55\x64\x39\x18\x76\x95\x2b\ \x8f\x97\x32\x0f\x27\x70\xcd\x86\x3e\xe6\xbd\x51\x6f\xa7\x7c\x81\ \x7a\xac\xab\x55\xab\x1a\xcd\xb1\x9c\xc3\x0e\x34\xee\xd0\xb4\xe9\ \x2d\x68\x93\x78\x63\x77\x93\x2c\xb5\x48\x6c\xc0\x82\x3a\xa0\x1b\ \xa3\x77\xdd\xde\x7e\x1b\x1c\x79\xea\x12\xa6\x7d\xdd\xbb\x77\xfe\ \xd7\xd6\x72\x81\xed\x64\xd2\xac\x29\x38\x41\xb6\x3d\x9a\xa6\x44\ \xfa\x31\x31\x7f\xd0\x64\x9d\x98\x3c\xf9\x24\x9e\x77\xd1\x32\xc6\ \x2a\xe0\x92\xcc\x6f\xe1\xc4\x88\x8c\x8c\x2c\x48\x32\x08\xd2\xc0\ \x36\x5f\xb6\xb1\xa9\x89\x04\x62\x73\x94\xf9\xc4\xc9\xe2\xd7\x3d\ \x02\x90\x5e\xe9\x7b\x38\xff\xc5\x7e\x78\xfc\x78\x15\x39\xd1\x48\ \x3c\x08\x67\xf1\x07\xca\xee\x86\x6a\xef\x74\xc1\xcf\x80\x32\xa0\ \x79\x4f\xcf\x9e\x5d\x4f\x0e\xa1\xff\x4c\x21\x25\x09\x7c\x52\x4c\ \x47\x29\x84\x04\xc3\x2d\x8b\x15\x7b\x85\xd5\x90\xbc\x9c\x06\x5a\ \x06\x37\x5a\x7a\xd2\xc2\x33\xbf\x84\x84\xf1\xfe\xf1\xe3\x21\x90\ \x66\x7f\x20\xe7\x20\x19\x46\x76\x47\x29\x97\x91\x4e\x07\x32\xb6\ \x29\x32\x9b\x25\x7e\x57\xa7\x4e\x5b\x70\x7f\xcb\x75\xe8\xd0\xbe\ \x57\xac\xad\xd7\xd2\x38\x7a\x10\x90\xb7\xba\xb4\x94\x3d\x6f\xa6\ \x03\x65\x40\xad\xc1\x32\xe2\xbf\x84\x80\x43\x87\xe6\xc3\x1b\xa9\ \x8e\xe7\x10\x31\x51\xbe\x71\x51\x51\x8d\x05\xa0\xa5\x69\x51\x0c\ \xe7\xc0\x68\x78\x3c\xa3\x1e\xba\xb9\xd5\x56\x14\xab\x44\xa6\x81\ \x9b\x4e\xc2\xb0\x46\x52\xb6\x0a\xbc\x92\x01\x58\xc5\xde\xa3\xee\ \x4e\xe9\xfd\x5d\x4f\x06\xc5\x3f\x20\xc1\xe1\x3d\x2a\xce\xdf\x2a\ \xf3\x79\xb0\x6f\xdf\xc1\x70\xa4\x2c\xc1\xbc\x45\x43\xc6\x6f\x35\ \xe9\x68\x6a\x24\x10\x3b\x83\xe5\x45\xa6\x82\x27\xb2\x2c\x38\x05\ \x5d\x57\xf6\x6a\xa8\xf4\xde\xd2\x3e\x68\x63\xcc\x98\x9e\x9d\x9d\ \x3d\x9b\x64\xc0\x3b\xe0\x7e\x88\x9c\xb4\xe3\x78\xb7\xb2\xc8\x2c\ \x70\x35\x42\x2b\x70\x2e\x68\xfa\xe5\xcb\x97\xa5\xd8\x96\x75\xa5\ \x6d\x26\xe6\xe3\x08\xcd\x07\xc5\xed\x5e\x5c\xbc\x68\x2d\x9b\x95\ \x04\x50\x43\x92\xa0\x6b\xd7\x4a\x42\x10\x96\x9a\x76\xf4\x54\xf2\ \x19\x29\x06\x46\x71\x3e\xca\xe1\x04\xcd\x33\x3f\xb3\x88\x27\xb2\ \x09\xbe\x2d\x17\x51\x0b\x5b\xea\x8f\x86\x6f\xca\x45\x42\x82\xb4\ \x07\x69\xeb\x09\xd5\xaa\x60\xec\xbd\xe7\x90\x77\x13\x8d\xdc\x0d\ \x10\xff\xb9\x2e\xcf\x10\x0e\x22\xb3\xc1\x6a\x62\x65\xc0\x1a\x88\ \xdd\x55\x86\xe1\xa8\xbf\x28\x29\xde\xfa\xdc\xd3\x73\xc9\x95\x6d\ \xdb\x0a\xc3\x69\xe2\x25\xd5\xc2\xca\x83\x2a\x59\x36\x94\x43\xa9\ \x38\xa7\xfa\xb6\x87\x47\x8f\x6e\xc2\x4a\x99\x40\xf7\x32\x38\x3d\ \x8c\x33\x8b\x32\xbf\xfc\xa2\x07\x32\x19\x96\xe2\x3a\x4d\xe3\xfc\ \x36\x0d\x4c\xf1\x5e\xb3\x66\x1f\x6d\x5f\xe4\x58\x36\xa4\x18\x3d\ \x83\xb7\xec\xd3\xeb\xdb\xb7\x4d\xc9\x08\xff\xa2\x97\xf6\x90\x8c\ \x29\xa6\x64\xbc\xb9\x7b\x77\xbe\x63\x9b\x36\x37\x68\xc5\x02\xa9\ \x70\x75\x59\x64\x70\xf0\x28\x64\xb1\x8c\xa7\x46\x8d\x9a\x3d\xbd\ \x57\x16\x2d\xda\x0a\x95\x24\x27\x68\x57\xb3\xbb\x63\xc7\x69\x4a\ \xe3\x49\x1c\x17\x94\xdd\xcd\xd5\xac\x11\x77\x65\xf5\xe1\x72\x42\ \x02\x67\x80\x59\x34\x19\x68\x60\xb1\x03\xe3\x2a\x4d\x27\xca\x91\ \x91\x23\xcf\xd2\x56\x45\x29\xbf\xc0\xd8\x54\x70\x19\xd8\x47\xc9\ \x76\xc0\x24\x2a\xe2\x3a\x7e\x19\xd2\x41\x94\xe7\xab\x28\x38\x92\ \x02\xe3\x24\x5b\xa7\x91\x0b\x7b\x93\x44\x68\x0f\xfe\xfa\x6b\x7d\ \x2d\x6f\xf5\xbc\x97\xfe\xfe\x95\xa9\x8f\x39\x56\xc5\x48\x74\xcc\ \x59\x16\xec\xe3\xb3\x9a\x12\x24\x50\x00\xfb\xf4\x43\x60\x60\x56\ \x36\x65\x64\xb8\x9b\x9a\x1a\x62\x3b\xf9\x9a\xb2\x4f\xe8\xcc\x26\ \x35\x37\xa2\xa8\xd4\x44\x1e\xda\xf3\x48\x09\x35\x75\x6c\x48\x21\ \x4d\x38\xe5\x73\x7a\x59\x58\x34\x91\x93\x19\x14\x7c\xf7\x6e\x21\ \x91\x51\x60\xc3\xab\x0e\x4e\xa7\x3e\x01\x50\x89\x0e\x53\x92\xa2\ \xbf\xa1\xaf\xb2\x40\xb3\x35\x17\xce\x74\x3b\x71\xaf\xee\x0d\x2e\ \x53\xc7\x18\x59\x29\xa1\x16\x7a\xe3\xc6\xac\x1d\x2d\x5b\xde\x80\ \xd1\xdc\xa6\x4e\x32\x34\x59\xc8\xf5\x73\x21\x85\x27\xe9\x66\x7e\ \x01\xa3\x8a\x87\x36\xa3\xd3\x8d\x2d\x5b\x1c\x0f\xfd\xf6\x9b\x3b\ \xa5\xee\x60\x8c\xae\xbb\xe9\x7d\x1a\x97\xad\x6f\x33\x16\x7c\xbe\ \x6b\x19\xfb\xe1\xc3\x12\xea\xf3\x16\xfd\xf2\xa5\x39\xee\x0b\x0b\ \x0d\xe0\x70\x4e\x9e\xca\x18\x9c\xc9\x5f\x50\x22\x31\x1d\x07\x70\ \x96\x73\x46\x89\x90\x3a\xb9\x18\xd4\x91\x73\x1c\x9f\xef\xc6\x91\ \x67\x0c\x1d\x58\x6e\xd2\xb7\x21\xca\x81\xae\xcb\x46\x0f\x2d\xc0\ \x14\xa7\x81\x03\xbd\x70\x3f\x07\xec\x0c\x0e\x73\x19\x3a\xf4\x1c\ \x8d\x4b\x8f\xd9\x5d\x0a\xb6\x67\xea\x64\x72\x19\x50\x5f\xb0\x83\ \x5c\xd1\x0a\x82\x1e\xd8\x75\x2c\xc4\x75\x2f\xf8\xf5\xf6\xee\xdd\ \xdb\xf0\xbc\xae\x7c\xbf\x21\xb8\x04\xe4\xe6\x8b\x3a\x98\xb1\xd2\ \x9a\xce\x0b\x61\x0f\x1f\xce\x25\x83\x53\xd2\x89\x8e\x8d\x1b\x47\ \x85\xaf\x79\x85\xc4\x89\x29\x53\x46\x4a\x2f\x66\x12\xb4\x3c\x48\ \xcd\xca\x48\x64\x09\x18\x54\x21\x8e\x80\xf8\x55\x65\xbb\x0f\x39\ \x07\xea\x11\x37\x56\x33\xf1\x58\x87\x8d\x8d\xb7\x98\x60\x5d\xb0\ \x23\xa8\xa2\x06\xed\xd8\x92\x24\x52\x03\x3f\x63\x21\x8c\x34\x62\ \x77\xa6\x34\xb9\x07\xfa\xf6\xbd\x28\xa5\xb0\x95\xec\x96\x31\xe0\ \xb8\xcc\xd5\x5e\x64\x60\xfb\x38\x98\xd4\x00\xa8\xa8\x55\x1d\x46\ \xc8\x9b\xf7\xdc\x3f\xf1\x1c\xd3\xf9\x3c\x8b\xba\xbd\x32\xe0\x6a\ \xde\xaf\x3e\xb3\xa9\x54\xe1\x94\xa1\xae\x28\xf5\xe2\xf0\x1e\x05\ \xc1\x18\x2a\x98\xa4\x2d\xcd\x0c\xa5\xcc\x5e\xf2\xab\x6c\x5a\x68\ \x20\x32\x0b\x5c\x06\xd4\x1e\x5e\x49\xb3\x03\x7d\xfa\x5c\xb4\x2a\ \x5b\xf6\xea\x29\x3b\x3b\x7d\xf1\x1d\x20\x43\x05\xdf\x4b\xe1\xe1\ \x4e\x22\xd3\xc1\x93\x59\x83\xb2\x1c\xec\xeb\xd6\xf5\x43\x6c\xee\ \xa5\x52\x82\xe1\x3e\x7f\xbe\x2b\xd5\x48\x51\xfe\x25\x8d\x91\x5e\ \xa6\xc7\xe2\xc5\xfb\x29\xf0\x8a\x73\xdd\x2d\x29\x1f\xe7\x2a\x32\ \x1b\xac\x16\xfd\x2b\x68\xfa\x4f\x6a\xd1\x10\x52\xb8\xab\x7c\x71\ \x66\x76\xed\x1d\xc0\x90\xdb\xcc\x79\xe4\x58\x51\x34\x15\x91\xe5\ \xfe\x44\xea\xe6\xaf\x93\x06\xf7\x19\x5b\x9a\x08\x97\xdf\x7e\x5b\ \x85\xac\x95\xc9\x70\xc0\xf8\xd3\x7b\xd8\x8e\x36\x14\x99\x0e\x6e\ \xc3\x25\xbe\x13\xca\xb9\x7d\x5b\xd3\xa6\xb7\x4f\x4c\x98\x70\xfc\ \xc1\xb1\x63\x1d\x65\x8b\xe6\x35\x99\x5f\x91\xc0\x13\x59\x04\x15\ \xcb\xc3\xd0\x7a\xf7\x04\x5a\x19\x39\x91\xdb\x19\x07\xf6\xed\x64\ \x70\x7e\x0e\x0e\x3b\xd6\x56\xaa\xa4\x68\xd5\x7b\x6f\x6b\xd6\x4c\ \x1d\x32\x80\x4c\xbb\x89\xc8\x74\x30\x4c\x84\xe8\x89\x79\xf8\x2d\ \x2d\x29\x5d\x4a\xdd\xa4\x46\x19\xd0\xb0\x4f\x1f\x3f\xb6\x35\xcf\ \x95\xeb\x8c\xa2\xaa\x9c\x35\xe2\xae\x5c\xbd\xdc\x05\x9c\x07\x96\ \xda\xda\xa8\xd1\x1f\x32\x8d\xe8\x34\x56\xb6\x29\xd8\x52\xee\x46\ \x3a\x51\x08\x8d\x11\xcf\x9b\x98\x58\x88\x4c\x07\x83\xb2\x83\x90\ \xc0\x40\x3d\xc8\x2f\x50\x87\xd6\xbf\x69\x70\x53\xe5\xae\x24\xee\ \x40\xbf\x7e\xb6\x8a\xe3\x05\x9d\x5f\xcf\xd2\x2e\x06\xbb\x9a\x87\ \x07\x7a\xf7\x6e\x29\xb2\x0e\x8c\xa8\xa8\xa8\x42\x1b\x6b\xd5\x7a\ \xac\xc8\xba\x39\xf5\xef\x3f\x07\x2d\x6f\x17\xa3\x3b\xcb\x71\x2a\ \x27\x81\x4c\xc0\x08\x91\x55\xe0\x2f\xc6\xa1\x7e\xdb\xb7\x4f\x41\ \xf8\x86\xb6\x84\x8e\x14\x18\xff\x13\x63\x2b\x4c\x35\x91\x90\x2c\ \x0f\x43\xb7\xa0\x70\x9a\x4f\x29\xdf\x37\x1e\xd7\x2f\xf8\x62\xbd\ \x2b\xcf\x86\xfd\x44\xd6\x82\x91\x10\x17\xd7\x17\x92\x7d\x97\xa0\ \xd6\x14\x27\x9d\x25\x61\x50\x15\xde\x01\x77\x35\x4d\x50\x23\x91\ \x95\x60\xc3\xab\x02\x8e\x77\x19\x32\x64\x2e\xe6\xe5\x26\xc9\xdb\ \x69\xca\x99\x53\x5e\x2c\xc6\x4c\x35\xcb\x80\x3e\x45\x47\x9b\x41\ \x5c\xf8\x1c\xaa\x4b\xe2\x69\x4c\xa3\x59\xe3\x4f\xa0\x8e\x84\x0b\ \x38\xed\xa8\x0f\x89\xd2\x42\x4d\xd8\x09\x89\xb6\xfe\xd6\x86\x86\ \x3b\x31\x56\x42\x67\x64\xd2\x58\x1d\xba\xe9\xa7\xa8\xa8\xc9\x28\ \x4a\x5e\x4d\xb9\xb0\x8a\x50\x11\xae\x45\xb1\x33\x51\xcb\xdd\x41\ \xb8\xf5\x63\xd8\xe3\xc7\x73\x65\xef\xf3\x5e\x6e\x53\xa7\x1e\xd7\ \x6a\xd6\xa8\x63\xe0\x89\x2d\x0d\x76\x55\x0a\x29\x53\xe9\x26\xc3\ \xc8\xfa\x9e\x70\x3d\xb1\x5a\x4d\xc6\x39\x9b\x9a\x6c\x34\x11\x40\ \x88\xaf\xef\x14\x4a\xeb\xa3\x78\xab\x5d\x95\x2a\x56\x18\xcf\x0f\ \x16\xc6\xca\x16\x4a\xaa\x70\xc8\xdf\x34\x95\x9e\x4f\x5d\x05\x17\ \xbe\xea\xf4\x04\xf1\xfc\x94\x02\x47\x82\xcd\x15\xef\x33\xf8\xfb\ \x2b\x3f\x3f\x6b\x1c\x03\x46\x63\x05\x7c\x08\xaa\x8f\x07\xd4\x37\ \x0e\xcf\xfe\x6d\x2a\xdd\x0c\x92\x02\xa0\x8c\x15\x4c\xf4\xef\xb8\ \xf6\x21\x29\x76\xea\x1a\x84\x31\x43\x4a\x35\xe2\x8a\xe5\x8c\x91\ \xb7\xd3\x4e\x72\x00\x6b\x22\x94\x33\x1a\xdb\x4b\x75\x19\x10\x14\ \x00\x2e\xfd\x4b\xcf\x6d\x0c\xc4\x7f\xb6\xd2\x24\x7f\x83\xb1\x94\ \xaf\x29\x32\x03\x6c\x88\x95\x69\x1b\x49\x8e\x93\xd3\x33\x66\x58\ \xfd\x4b\x2b\x41\x18\xd8\xd2\x74\xa2\x0e\xaf\xd4\x01\x08\x7d\x10\ \xec\xd1\x48\x62\x13\x0e\xee\x5b\x0e\x0d\x1e\xbc\x0d\x9a\x2c\x56\ \x51\xc1\xc1\x15\x05\x20\xeb\xf4\xea\x53\x70\x17\x46\x58\x49\x64\ \x08\x38\x5b\x05\xec\x07\xce\x00\x73\x89\xff\x10\x54\xff\xa5\xb3\ \xdf\x85\xa5\x4b\x6d\x60\x68\xd3\x2b\x74\xe8\xb0\x7f\xa4\xbb\xbb\ \x0b\x86\xf5\xc1\x9c\x60\x76\xd0\x7b\x89\x4a\x55\x06\xd1\x58\x3b\ \xdc\x6b\xe6\x0a\x5e\x04\x07\x98\x09\xf1\x41\xa4\x0d\x0c\x06\xeb\ \xae\x20\x2d\xcc\xdf\x4c\x4f\x2f\x51\x5b\x1f\x13\x2b\x5a\x53\x92\ \x7f\x23\x49\x88\x3d\x5d\xba\xb8\x5c\x5a\xb1\xc2\x01\x9a\xf6\xe7\ \x65\xec\xef\xde\x77\x74\x0e\x65\x30\x18\xc1\x97\x2f\xf7\xa4\x6d\ \x25\xb2\xd6\xbd\x35\x57\x78\x18\xdb\x63\x64\x4d\xc4\x40\xc3\x9e\ \x62\x7c\xf3\x65\x66\xfc\xa8\x6d\x4d\x9a\xa8\x73\x38\x91\x21\xf1\ \x9b\x48\x3b\x18\x0c\x0e\x2b\xa0\xfc\x47\xad\x08\x86\x92\xa0\x2e\ \xb2\xc0\xb5\x92\x54\x18\x3b\x49\x52\x70\x9a\x7a\x1e\xc1\xbe\xbe\ \xbd\x65\x9f\x32\x17\x8d\x96\xbe\x07\xd3\x70\xbe\x63\x30\x38\x88\ \xee\x6d\x65\xb5\xfb\xdd\xc3\x87\x9d\xa5\x11\x8d\x07\x53\x1e\x1c\ \x3e\xbc\x46\xbb\x3f\x02\xda\xf4\xe6\xa3\x67\xdb\x5b\xb6\xf4\x16\ \x00\xb6\x97\x76\x74\x0f\x26\x80\x4b\xff\x5e\xf5\x33\x83\xc1\x46\ \xd7\x04\x6c\x2c\x00\x53\x3d\xbd\x6e\x64\x44\xf0\x5a\x9a\xa4\x92\ \x78\x3b\x40\x4a\xc3\x39\x09\x00\xdb\x51\x1f\xe4\x01\x26\xa1\x1d\ \xd4\x63\x64\x4b\xc4\xa4\xb1\x33\x10\x83\xc1\xf0\xda\xb0\x21\x2f\ \x95\x8d\x58\xe4\xc9\xf3\x8a\x82\xe4\x5a\x05\x93\x11\xa8\xd9\x8a\ \x89\x0c\x09\x99\x8d\xfb\x6a\xe0\x57\x2a\x80\x85\xb1\x2e\x46\x22\ \xae\x39\xae\xa4\xad\x69\x8d\xf1\x2b\x7f\xd1\x5d\x86\xc1\x60\x90\ \xf7\x91\x3c\x94\xd0\xdb\x57\xf7\xbc\x86\x07\xf3\x2a\x0c\x88\x8c\ \x6b\x9d\x6c\xf1\x14\x45\x7a\xfa\xd4\xc0\x9d\xc6\xc0\x94\x7b\x07\ \x0e\x6c\x46\x1b\xdc\x89\x10\xd4\xb9\x67\x63\x68\xd8\x6e\x55\xb1\ \x62\x23\xb1\xda\xc5\x4a\xbd\x95\x6d\xbc\xcd\x64\x30\xbe\x5d\xab\ \xb5\x0a\x4c\x21\x42\x33\xf3\xbe\x75\xd9\xb2\xf7\xd5\xdd\x3f\x55\ \xaa\xd7\x48\xb6\x75\x97\x3d\xb2\xc7\x20\xab\xbd\x30\xc6\x62\xd0\ \x1b\x3b\x74\x4f\xb7\x6e\x07\x15\xfd\x15\x6c\x31\xed\xa2\xde\xbd\ \xab\xb4\xae\x4a\x95\x67\x10\xb0\xfd\x8c\x3a\x3d\x6f\x34\x2c\x49\ \x4d\x64\x87\xc1\x60\x6c\xaa\x5d\xbb\xc1\xa6\x3a\x75\x7c\x50\x6f\ \x47\x46\xf6\x15\x86\xe5\x0e\xc5\xb0\xe5\xa4\xb1\x22\xab\x12\x46\ \x82\xfa\x30\xc2\x49\x52\x51\x2c\x86\xae\x48\x15\xfb\x48\x57\x8f\ \x45\x8b\xf6\xe1\x99\x19\x8d\x1d\x19\x35\xea\xac\xfc\x9d\x3a\x1a\ \x06\xdd\x49\x3a\x57\x72\x0b\x35\x18\x0c\x16\xa9\xfd\x23\x3a\x34\ \x74\xc5\x8e\xd6\xad\xaf\xc8\xda\xad\x9b\x90\xf4\x3e\x74\xc9\xce\ \x4e\xe9\x57\xae\xa2\xb6\xbc\x1a\x8a\xd0\x97\xa9\x09\x25\xdd\x43\ \xea\x6f\x37\x55\x2d\x43\x2a\xe0\x36\xb2\xe1\x17\x6a\x77\xe7\x54\ \x8a\x2f\x4d\x84\xe8\x2b\x14\x30\x18\x82\x0d\xcf\x90\x44\x4f\x49\ \x5b\x1f\x5d\x42\x9f\x41\xc0\xe8\xce\xd6\xc6\x8d\xcb\xca\x55\xaa\ \x89\x62\x6c\xa4\xcd\x48\xd5\xe6\x38\xf3\xdd\xa5\x56\x4f\x58\xe9\ \xa8\xc3\xeb\x5b\xd9\xbc\xb0\xa6\x7c\x7f\x18\x0c\xcd\x1d\x46\xf6\ \x4b\xd8\xa3\x47\xd5\x3c\x16\x2e\x74\x49\x5d\x3e\x80\xc1\x60\xc3\ \x6b\x0f\x9a\x4a\x2a\xb5\x5a\xaa\xe3\x13\x26\x6c\x72\x9b\x36\xed\ \x38\xc6\x8c\xa1\x2e\x56\x13\xe7\xb5\x58\xe9\x64\x49\xbe\x77\xf0\ \xe0\x16\x8c\x77\xd5\xa8\x4c\xe8\x85\xe7\x71\x74\xce\x33\xcb\x99\ \x73\xdf\x9b\x7b\xf7\x06\xe1\x79\x75\x91\x3a\x18\x0c\xae\xe5\x02\ \x0d\xc1\x6c\x1a\x63\x6d\xc0\xd9\xa0\x11\x0c\xa9\x86\xb2\xe2\x1d\ \x9f\x38\xd1\x0d\x63\xe3\x40\x3d\xcd\xde\x6b\x81\x6e\x6e\xeb\xe8\ \x4c\x88\xed\xe9\x73\x2f\x53\xd3\xb4\xaa\x44\x33\x18\x0c\x8d\xc6\ \x92\x45\x71\x66\xbb\xba\xa5\x41\x83\x7b\x32\xef\xb2\xa0\xd0\x02\ \x72\x2f\xb7\x93\x41\x5e\x5d\xbb\x76\x37\x9e\xd7\x17\xff\x08\x0c\ \x06\x1b\xdf\x88\x2f\xc9\xc9\xe4\xc9\xac\x2a\xab\x0d\xfa\x82\x5d\ \x05\x20\x57\xc0\xa4\x0d\x35\x6b\xde\xc7\xf3\xc9\xe0\x5f\xc6\xe5\ \xa4\x63\x86\x3a\x07\xd5\x12\xa9\x82\xc1\xe0\x6e\x40\x86\x1a\xee\ \x7f\x5f\x30\x45\x36\x25\xb9\x88\x33\x5c\xf2\x33\x4f\xcf\x75\x78\ \xa7\x52\x2a\xb1\xbf\xfa\xe0\x62\xbc\x67\xbc\x58\x88\x9a\x8a\x0c\ \x04\xee\xc3\x30\xfe\x19\x5c\x25\xfe\x1c\x0c\x06\x57\x94\x23\x20\ \xee\x4d\x86\x46\x86\x67\x55\xa6\x4c\xe8\xfb\xfb\xf7\x47\x0b\x2d\ \xc0\xa8\x96\x2b\x41\x73\x85\x18\x5b\x28\x80\x9d\xed\xda\xed\xa6\ \x7b\x78\x47\xd7\xfe\xf5\xaa\xc8\x60\xb0\x4c\xdc\x10\x5a\xd5\x14\ \xb5\x68\x18\x5f\x38\xae\x03\xb4\x9b\x59\xa0\x05\xf3\xb3\x5b\x8e\ \x8e\xdb\x2e\xae\x58\x71\x00\x5a\x8e\x0f\x65\x4a\xd8\x74\xbc\x1f\ \x81\x70\x43\x58\x42\x6c\xec\x22\xea\x1e\x2b\xfe\x12\x0c\x06\x1b\ \x5e\x25\x90\xfa\x20\xec\x81\x61\xbd\x46\x42\xf4\x25\x0d\x83\xdb\ \x01\xa6\x84\x5e\xbb\x66\x43\x67\x40\xb0\xd7\xc7\xb7\x6f\x67\x60\ \x35\x7c\x4d\xe3\x44\x9f\x35\x6b\xf6\x62\xbc\x89\x48\x13\x18\x0c\ \xd6\xce\xfc\x05\x0d\x48\x16\x24\x27\x26\x92\x63\xa5\xa8\x00\x10\ \x4c\x3f\x44\xab\x59\x78\x50\xd0\x10\xc5\xe3\x89\xab\xde\x96\x86\ \x0d\x3d\xc9\xd8\xd6\x57\xaf\xfe\x08\xf7\x53\xbf\x6f\x3b\xc9\x60\ \xb0\xe1\xe5\x06\xab\x83\x2a\x99\xb7\xa9\xce\xb9\x5c\x53\xaa\xd4\ \x69\x45\xde\x81\xfa\xa2\x21\x8f\xf3\x3e\x25\x3e\x3f\x75\x77\x5f\ \x4f\x32\x72\xb2\xb5\xd3\x60\x70\x19\x38\x99\xda\x33\x8b\xb4\x81\ \xc1\x60\xbc\xf4\xf5\x2d\x8b\xb6\x4c\xc1\x72\xfb\x18\x80\x73\xdb\ \x3e\xf0\x19\xdd\x43\xb8\xe8\x0a\x8c\xed\x37\x12\xa6\xc5\xd8\x0d\ \x2d\xa7\xca\x3b\x5c\xcb\x8b\xb4\x81\xc1\x60\xc4\x47\x44\x8c\x40\ \xb7\x19\x0f\x24\x47\xdf\xa1\x8a\x71\x32\x28\x14\xb8\xc6\x22\x17\ \x73\x39\xc9\x82\xe3\x7e\x2b\x8d\x6d\xfb\xe5\x97\x0b\x0f\x8f\x1f\ \xdf\x44\x72\xe0\x48\x15\x8b\xc7\xbb\x8f\x30\xbe\xc4\x58\x08\x23\ \xf1\xef\x03\x83\xb6\x35\x22\xa3\xc0\x4d\xea\xfb\x83\x26\xb7\xf7\ \xee\xdd\x06\x63\x52\x97\x05\x1d\xe8\xdb\xd7\x8a\xb6\x92\x48\x88\ \x8e\x46\x4d\x5e\x30\x3d\x07\x7b\x80\x7d\xdc\x17\x2c\xd8\xa7\xb1\ \xe2\xc5\x9b\x08\xf1\x2f\xeb\x36\xc3\xc6\x96\x8d\xb6\x3a\xa0\x17\ \x69\xf0\x8b\x8c\x02\x1b\x9e\xd1\x6b\x7f\xff\x55\xbb\x3b\x77\xbe\ \x7a\x76\xde\xbc\x31\x54\x29\x4e\x15\x08\x1b\xeb\xd4\x21\xe7\x49\ \x35\x21\xb1\xbb\x63\xc7\x81\x64\x6c\xf0\x78\xc6\x22\xa5\xec\x3e\ \xb4\x35\x67\x8a\x7f\x17\x18\xf0\xa8\xf9\x4b\x11\xd4\x67\x22\x23\ \xc1\x86\x57\x06\x1c\x4d\x14\x80\x65\x89\x12\xf7\xc9\xe8\x56\x97\ \x28\xd1\x43\xee\x34\x72\x2a\xe1\x04\xa5\x5a\x01\x9c\x2b\x33\x53\ \x86\x60\x7c\x22\x56\xbc\xe6\x3f\xb6\x8a\x36\xaf\x70\x0d\xa9\xa8\ \x92\x26\x19\x9a\x1d\xc1\xd2\xad\x9d\x09\x60\x78\x2d\x5d\x3a\x09\ \xe1\x83\x78\x18\x1d\x65\xac\x3c\x00\x03\xc1\x14\xab\x52\xa5\x5e\ \x25\x25\x24\xcc\xa3\x00\x3b\x1c\x2f\xad\x30\xf6\x41\xcb\xb1\x72\ \xcb\x58\x88\x0a\x42\xa7\xc1\x48\x2d\xde\xa3\x4a\x11\xc2\x4e\x4f\ \x4f\x2f\x49\x00\x06\x85\x0a\xc5\xd3\x7b\xd2\x10\xf3\x92\x42\x95\ \x4c\xd2\xcd\x00\xf0\xb9\xb9\x8d\xa9\xe9\xde\x41\x47\x8f\xda\x57\ \xe9\xd9\xd3\x3b\x4f\xc9\x92\x31\x2a\x95\xca\x48\x00\x6d\xcc\xcc\ \xce\xe6\xd0\xd7\xf7\x98\xa6\x52\x7d\x8e\x7a\xf1\xc2\x05\x43\x45\ \x2a\x75\xea\xe4\xd1\x77\xef\x5e\x87\xea\xfd\xfa\x9d\xcf\x96\x2d\ \x5b\xed\x1c\x2a\x15\x55\xac\xff\x48\xbd\xf3\xd8\xe0\x30\x61\x43\ \x54\x42\x34\xab\xd4\xa5\x8b\x9f\x00\x72\x15\x2a\x14\x8b\x4b\x1c\ \x8c\xac\x11\xae\xfe\x78\x36\x0b\xbf\x44\x09\xba\x76\x22\x3d\xc1\ \xc6\x46\xbb\x88\xb7\x58\xd9\xf6\x04\xec\xdb\xe7\x32\xe4\xd8\xb1\ \x03\xed\x96\x2d\xbb\x8f\xb1\xec\xa5\x20\x6e\xd4\x60\xdc\xb8\x6b\ \x78\x7e\xab\xb0\x10\xed\x71\x2d\x96\x2d\x7b\xf6\xcf\x41\x9e\x9e\ \xad\x6f\xac\x5f\x9f\xa7\x8b\x9d\x9d\x73\x2b\x63\x63\x57\xac\x7e\ \x25\xf1\x05\x39\x27\x95\xfc\xcd\xb9\x98\xd7\xa3\x42\xb7\xc0\x90\ \xe7\x82\x97\x10\xca\x09\x7b\x74\xec\x98\x5a\x61\x78\x7f\xef\xde\ \x94\xf9\x6e\x4c\xe5\x26\x74\x4f\xb4\x2c\x5e\xfc\xdd\xb6\xa6\x4d\ \x1d\xd2\xb7\xb7\x17\x3b\xaa\xd6\x56\xa8\xe0\x68\x8a\x15\x8c\xe4\ \xf9\x70\x7f\x1b\xd7\xc4\x95\x05\x0a\xbc\x96\x4d\xe7\x8d\xe4\x7b\ \x7d\xc0\x94\xe3\xe3\xc7\xbb\x41\x57\xe5\x3c\x0c\x34\x91\xe6\x0c\ \xd9\x2a\x0b\xe9\xec\x87\xdc\xcc\xcb\x02\xa0\x78\x1e\x85\x11\x4c\ \x84\xe8\x4d\xff\x9d\x35\x25\x4a\x5c\xd1\xa1\xe6\x87\x0c\xda\x26\ \x62\x82\x36\x83\x29\x9e\xa6\xa6\xce\xe7\xe6\xce\x9d\x28\xd5\xa9\ \x12\xe8\xba\xb2\x60\xc1\x27\x2b\xf2\xe5\x8b\x86\x4e\x63\x52\x88\ \x8f\x8f\x2d\x26\x6f\x09\x58\x50\xa4\x27\xd8\x81\xd2\xf1\xb1\x9b\ \xdb\x46\xc4\xe0\xae\x43\x7e\x2f\x18\x72\x7b\x1e\xd1\xaf\x5f\xaf\ \xd0\xd4\x43\x59\x24\x44\x29\x52\x18\xc3\x97\x5e\x10\x2a\x14\xc6\ \x05\x79\x79\xd9\x41\xa2\xef\x16\xcd\x91\x0c\xa0\x7b\x0b\x00\xde\ \xe5\xca\x30\xb4\x8f\xca\xb8\xbf\xa3\xe3\x76\xcc\x57\x59\xa1\x13\ \x60\xa8\x30\x29\x6f\xa5\xeb\x39\x06\xcd\x09\xe7\x43\x89\xb8\xaf\ \x9c\xac\xaf\xdb\x5b\xb5\x3a\x8f\x58\x90\x2b\xdd\x23\x5e\x74\x31\ \x3e\x3c\x7c\x08\x26\x9d\xca\x4c\xa6\xa6\x7b\xbc\x8e\x8d\xae\x0a\ \x38\x05\x34\x95\xec\xa4\x9d\x5b\xe9\xf2\xdb\x6f\xea\x9c\x4c\xac\ \x86\xcf\x37\x54\xaf\xbe\x38\xec\xe1\xc3\xb9\x57\xed\xec\x76\xad\ \x2e\x5e\xfc\xcd\x7d\x17\x97\x8d\x8a\xdc\xc3\xf1\x71\xe3\xf6\xd0\ \x9c\xc9\xc6\x25\x1f\x75\x68\xbe\x18\xd7\xb7\x6c\x19\x8e\xc9\x53\ \x97\x95\x60\x1b\xe3\x8d\xab\x01\x34\x1a\xdd\xbc\xd7\xac\xd9\xf7\ \x29\x32\xd2\x0c\x9e\xb3\xd7\x50\xa7\x8a\x80\x66\xa3\xd9\xd3\xb3\ \x67\x8b\x63\xb2\x43\xa4\x77\xec\x66\x86\x1c\xd4\xd9\xf0\x8a\x81\ \x45\xbe\xf1\xac\x86\xe7\x92\x25\xce\xe8\xe8\x1a\xa6\x34\x16\x81\ \x00\xed\xb9\x98\xb7\x6f\x17\x53\x89\x90\x00\xc6\x0b\x91\x03\xbb\ \x91\x40\xcc\x59\xec\x45\x0b\x8b\x03\x96\xc5\x8a\xbd\x92\xef\xfa\ \x49\x39\xf7\x2c\x06\x4f\x70\x49\x70\xea\xb5\xf5\xeb\x77\xa1\x47\ \x9a\x39\xee\xf5\x1f\x9d\x3c\x39\xc6\x6f\xdb\x36\xeb\x35\xa5\x4b\ \xaf\xa6\xc9\xa2\x55\x0e\xe3\x6d\x05\x00\x37\xf5\xfd\x65\xfa\xfa\ \x09\x08\x1b\xdc\x71\x1d\x3a\xb4\x94\xf8\x06\x32\xac\x91\x21\xcf\ \x57\x03\xc8\xf5\x99\xf8\x6f\xdf\xbe\x7d\x4b\xa3\x46\x97\xa0\xa1\ \xe2\x7b\x76\xf6\xec\x0a\x8a\x91\x52\x7d\x1d\xcd\xd9\xc9\xa9\x53\ \x4f\x60\x6c\x24\x42\x0a\x0b\xa8\x1d\x17\xce\x78\xde\xa7\x16\x2e\ \x2c\xa6\x79\x76\xcc\xda\x86\x24\x5c\x56\xd2\x04\x1c\x0a\xe6\xc6\ \x64\xec\x97\x5b\x92\x24\xd4\x6c\x05\x61\x82\x49\xb5\x2a\x87\x00\ \xb0\xda\x3d\x40\x3e\xe0\x1b\xb9\xed\x69\x29\x83\xb0\x6f\x71\x25\ \xe3\xcc\x2b\x27\xd3\x8a\x0e\xf4\xe0\xd0\x0c\x0b\xcc\x72\xaf\xec\ \x16\xe0\x64\x39\x0f\xcd\x95\xd5\x8d\xe4\x1a\x68\x55\x83\xa1\x91\ \xc8\x91\x01\x98\x0b\xec\x0a\x9a\x80\x0d\x35\x0c\x6e\x34\x18\xa5\ \x03\x39\x9a\x8c\xeb\x0e\x0e\xb5\x1c\x9a\x37\xf7\x25\xef\x17\xa5\ \x15\x85\xdc\xb8\xd1\x58\x48\x20\xe1\x36\x18\x0d\x2d\x5e\xc8\x82\ \x4b\x95\x99\x81\x41\x6b\x0d\xe9\x80\x33\x02\xc0\xef\xac\xa4\x7b\ \x49\xcf\x0c\x95\xfb\x66\xe3\x2b\xa8\xe9\x58\x51\x7a\x25\x24\x25\ \x25\x35\x14\x1a\xd0\xee\x7f\x07\xc7\x4c\x31\x1c\x17\xa2\x70\x66\ \xf7\xd2\x8d\x2f\x45\xae\xe7\x1a\xf9\xc0\xd5\xd5\x1e\x5d\x43\x5d\ \xe9\x5c\xa1\x21\x76\x1a\x06\x55\xaa\xc0\x9b\xfb\xf7\x97\xc6\xe4\ \x5a\x90\xeb\x99\xbc\x67\xe4\x54\xf1\x32\x33\xb3\xc2\xbb\x39\x21\ \x82\x1a\x80\x95\x30\xce\x79\xf0\x60\x0f\x6c\x41\xef\xec\xef\xd9\ \xb3\xc4\x1f\x42\xe8\x67\xf8\x16\x86\xa1\x82\x2e\xca\x39\x32\x3a\ \x9c\xb5\xcf\x90\x1a\xd8\xb7\x6a\xea\x28\xb4\x83\x94\x31\xb5\xa4\ \xdf\xd2\x1c\x39\xc6\x08\x9d\x00\x1b\x5e\x0d\x70\x0c\x68\x24\x24\ \xa0\x38\x1c\x47\xf1\x38\xc4\xe8\x82\x68\xb2\x90\x03\x78\x1d\xe1\ \x02\x6b\xbc\xb3\x80\xde\xb5\x32\x34\x6c\x4f\xe3\xfb\xba\x77\xf7\ \x26\xaf\xdb\x87\x27\x4f\x56\xe3\xda\x14\x63\xce\x60\x0c\xb8\x80\ \x8c\x4f\x64\x08\x18\xc9\xc9\xc9\x6d\xf6\xf7\xea\x75\x09\xde\x64\ \x25\x34\x40\xba\x29\x26\xdf\x98\xdf\xb2\x68\xa9\x1c\x08\x27\x0b\ \xcd\x4b\x69\xa1\x13\xe0\xb0\x41\x0d\x8d\x7d\x7f\x41\x2a\x29\xa1\ \x89\xc4\x24\x45\x9c\x99\x39\x73\xb7\x3c\x43\xfc\x0a\xe6\x93\xef\ \xec\xa7\x77\x9e\x7b\x7a\xda\x60\x35\xdc\x80\x9f\xe3\x61\x9c\xe3\ \x0e\xf4\xee\xdd\x72\x75\x91\x22\x4a\x11\xe6\x5d\x30\xe3\x54\x89\ \x79\x87\xd2\x2d\x31\x2e\x6e\x19\x39\xc2\x0e\xf6\xeb\x77\xf8\xea\ \xba\x75\xc3\x34\xe6\xb0\x22\x58\x0d\x2c\x4b\x55\xe7\x28\x15\x1a\ \x43\x3b\x14\x6c\x2d\x4f\x8b\xac\x05\x43\x3a\x44\x52\x70\x3d\x0d\ \x8e\xc3\xcf\xaf\xc1\xaf\x0e\x4d\x9b\xde\x92\x2b\xd7\x2c\xb0\x9a\ \xc6\x64\x96\xa4\x2d\x26\xce\x07\x41\xb6\x15\x2a\x5c\x55\xce\x71\ \x76\x95\x2a\xd9\xfb\x6c\xd8\x60\x04\x71\x9d\x77\x38\x03\xc6\x63\ \xf5\x3b\xf8\xcc\xcf\xaf\x80\x90\xc8\x98\x33\x04\xf7\x33\x07\xdb\ \x81\x13\xc1\x81\x32\xc9\xa1\x39\xcd\x87\x16\x29\xae\xf7\x55\xaa\ \x8d\x0d\x11\x59\x07\x86\x69\x8d\x1a\x39\x77\xb4\x6c\x79\x42\xd1\ \x5c\x24\x27\xca\x85\x65\xcb\x76\xca\x6c\x93\xee\xa0\xbe\x96\x81\ \x9a\xc8\xd5\x4f\xfd\x3e\xa4\xdf\x42\xe9\x7a\xd1\xdc\x7c\x17\x9e\ \x39\xd1\xe4\x52\x7c\x0f\xbf\x37\x4f\xcb\x50\xc7\x82\x9e\x8b\x85\ \xc8\xe0\xc6\x17\x9c\x46\x06\x89\xbe\x39\x88\xe5\xad\x3f\x39\x69\ \xd2\x96\x83\x03\x06\xec\x74\x6c\xd7\x6e\xbf\x63\x9b\x36\xe7\x90\ \xe4\x70\x13\xce\xb0\x23\x59\x1c\x20\x67\x50\x95\xb2\x5a\x73\xb1\ \x66\xcd\x87\x64\x3c\x10\x3d\x3d\xa5\x28\x0f\x6b\x42\x56\x2d\xbf\ \x52\x0c\xf3\xd8\xd8\xb1\xce\x10\x38\xf5\xa5\x7b\xf4\x5f\x3b\x29\ \xd3\x8f\x3c\xf1\xbb\xd3\x41\x03\xf9\x3b\xca\xd5\x8a\x7e\xc7\xd6\ \xc8\xa8\x8d\xc8\x50\x30\x64\xf8\xa7\x0f\x38\x04\xfc\x1d\x9c\x04\ \xce\x04\x17\x82\xc6\xba\x53\x92\xc5\x9a\x8b\x93\xa9\x3d\x53\xec\ \xfb\xf7\xa3\xbf\xf1\xed\x59\x8f\x12\x6a\x29\xe7\x92\x32\x1c\xa8\ \xd9\x05\xf2\x02\xef\xd2\x76\x85\x56\x48\xeb\x32\x65\x1e\x27\xc5\ \xc7\xd3\xca\x58\x5a\xae\x86\x0b\x29\x0e\x04\xce\x89\x78\xf6\xac\ \xce\x0b\x6f\x6f\x52\x1d\x1e\x26\xb2\x1a\x1c\x8f\xd5\xa1\x15\x8e\ \x27\xa3\x11\xd8\x4c\x7c\x03\x4f\xce\x9c\x31\xbe\xbb\x6f\xdf\x56\ \xfa\xc6\x0c\xbe\x79\xb3\x34\x8c\x2d\x41\x8a\xe5\xc4\xbc\xf2\xf7\ \xb7\xa6\xdf\x17\x12\x6b\xab\x55\xab\x85\x33\xdd\x53\x7a\x0e\x06\ \xde\x39\x78\xb0\x95\x34\xc6\xbf\x09\x06\x83\x8d\xb2\x82\xf4\x58\ \xe6\xc7\x79\xec\x67\x19\x0f\xfa\x0a\x2f\x19\x79\x33\x07\x68\xf7\ \x62\x0b\x3c\x73\x66\x05\x6d\x25\xad\x0d\x0d\x03\xbe\x77\x2b\xc3\ \x60\x30\x64\x2e\xe5\xa1\xc1\x83\x77\x51\x2b\x5f\xa9\x2a\x9c\x53\ \x68\x01\x5b\xcd\xa3\xe0\x97\xc7\x27\x4e\x6c\x94\xed\x9f\xfe\x01\ \x18\x0c\x5e\xf1\x3a\xc8\x80\x78\x09\x79\x6e\x33\xc7\xaa\xb7\x02\ \xcc\x6f\x22\x84\x3a\x40\x4e\x8e\x15\x3c\x1f\xfe\x77\xa5\x08\xc0\ \xcd\xf8\xef\x4c\x4a\x25\x39\x9a\xc1\x60\x68\x86\x0e\xe0\x50\xd9\ \x21\xe3\x7a\x6f\x70\x7d\x8e\xc0\xf8\x47\xc4\xf3\xa8\x29\x7d\x71\ \x2d\xc3\x32\xc0\x3b\x53\xc0\xd3\x44\xdc\x4f\x04\x73\xab\x4b\x4f\ \xf4\xf4\xae\xc9\x73\xdf\x71\xf1\xa7\x60\x30\xd8\xf8\x9a\x5e\x5e\ \xb5\x6a\x3f\xaa\xc8\xdf\xc9\xf6\x4d\x11\xe7\x4d\x4c\xe6\x68\x6f\ \x45\x61\x64\x27\x64\x20\x36\x5e\x43\x9d\xea\x18\x3d\xdb\xda\xa4\ \x89\x2b\xdd\xa3\xe4\xc4\xfa\xaf\x5b\x3b\x31\x18\xdc\x3d\xb4\x69\ \x42\x4c\x8c\xf1\x91\x91\x23\xcf\x52\x5d\x9d\x34\x28\x4b\xed\xec\ \x16\x68\x75\x5c\x8b\x0b\x0b\xb3\xa0\x8c\x16\x14\xc4\x7a\xca\xf8\ \xde\x21\x5c\x13\xd6\x56\xaa\xf4\x9c\xe2\x79\x7f\xdf\x85\xcd\x60\ \x70\x13\xc3\x5e\x6f\x03\x02\x2c\xb7\xb7\x6c\x79\x1d\xc5\x91\x4e\ \x1a\x8d\xeb\x77\x83\x29\xaf\x6e\xde\xb4\x92\xa9\x49\x75\xc1\x9e\ \xf6\xf5\xea\x3d\x50\x82\xea\x0f\x8e\x1c\xb1\xc7\x58\x1a\xb3\x52\ \x18\x0c\x36\xbc\x52\x32\xdb\x61\x89\xe2\x58\x81\x7c\x00\xe9\xe9\ \x7f\xbd\x77\xe0\xc0\x70\xa1\x01\x48\x7d\x9f\x22\x83\x43\x1a\xd2\ \x0d\x2a\x1d\x12\xdf\x0d\x06\x83\x0d\x2f\xaf\x90\x40\x6e\xdf\x28\ \x32\x2c\xd4\xd3\x05\x2a\xb5\x5c\xb8\xaf\x83\x2e\x32\xa1\x28\x98\ \xfc\xf4\xfe\xe1\xc3\xd5\x64\x9c\xc6\x42\x94\xc3\xf8\x3a\xd0\x13\ \xdb\xd0\x03\xb8\xb6\x13\x69\x07\x83\xc1\xf2\x01\x7b\xbb\x75\xbb\ \xac\x64\xb2\x83\x21\x60\x3c\xdd\x1f\x1d\x3d\xfa\x34\x9e\xf7\xc0\ \x7d\x45\xd9\x3b\x2d\x05\x5e\x4b\xa5\xee\x2b\x09\xec\x24\x74\x12\ \x0c\x56\x5e\xd6\x51\x40\xe2\x3b\x66\xa8\x9b\xdb\x92\x9e\x5b\xb7\ \x3a\x56\xe9\xd1\xe3\x54\x9e\x62\xc5\xa2\x30\x9c\x2b\x07\xca\x7a\ \x3a\x58\x5a\xfa\xe0\x67\x4f\xd0\x06\xef\x15\x68\x3a\x6b\x96\xcb\ \x92\xcf\x9f\xad\x26\xde\xba\x65\x9d\xa7\x78\xf1\x28\x55\xb6\x6c\ \x2e\x30\xc4\xb3\xe0\x40\x91\x26\x30\x18\xbc\xd2\x35\x04\xc7\x3c\ \x39\x7b\xd6\x16\x89\xcf\xea\x2a\x04\xb4\xee\x75\x90\xad\x9d\x12\ \x6d\x8c\x8c\x82\xf1\x7c\x8e\x74\xaa\xd4\xf7\xdd\xb0\x61\x95\x56\ \x9d\xd7\x12\x91\x66\x30\x18\x6c\x78\xd9\xd1\xa4\x7e\x3a\x55\x20\ \x04\x5d\xbe\x3c\x5a\x00\x38\xcf\xc5\xa3\x93\x4c\x48\x5c\x5c\x5c\ \x59\x21\x61\x53\xb1\x62\x77\x32\x34\x28\x56\xbd\x77\x19\x3a\xf4\ \x9c\x97\xa9\xe9\x54\xf1\x7d\x60\x30\x38\x5b\x05\x6c\x0f\x76\x15\ \xc0\xba\xaa\x55\x3d\xa4\xaa\xb0\x05\xae\x45\x41\x43\xd0\x9b\xc6\ \xae\xd8\xd8\xec\x91\x55\xce\x24\x1d\xd0\x00\xcb\xdc\x7a\x29\xfb\ \xb7\x00\x4c\xab\xe4\x37\x83\xc1\x78\x78\xe4\x48\x67\x65\x9b\x49\ \x54\x7a\xda\x41\x4d\xec\x91\x94\x0b\xcf\x86\xb1\xe1\x8a\x7c\x1f\ \xe9\xaa\xc8\xf7\x3e\x9a\x08\xd1\x53\x30\x18\xec\x34\xf9\xdb\x32\ \x01\xb5\x2e\x6d\xdc\xe8\x3b\xfe\xe6\x4d\xcb\xce\x36\x36\x7b\x2b\ \x77\xef\xee\xaa\x87\xa2\x57\x95\x9e\xde\x97\xae\x76\x76\xe7\xf0\ \xca\xd9\x05\x2a\x55\x3e\x5c\xb7\x82\xaa\x6a\x90\xef\x5b\x1c\x1f\ \xbf\xa6\xdb\x86\x0d\xbb\xf5\xf3\xe6\xfd\xa2\xa7\x52\x1d\x86\xf1\ \xfd\x24\xb4\x40\x79\x9a\xb2\x75\x14\x83\xc1\x90\xc6\x56\x18\xfc\ \x4c\xaa\xce\x88\xd3\x8d\x7e\x7b\xf7\x6e\x5f\xe7\x5f\x7f\x55\xab\ \x44\xef\xed\xda\xd5\x87\x64\x03\x34\x5b\x3b\x41\x06\x3c\x9c\xae\ \xe8\xfe\x73\x03\x67\xc0\xb1\x0f\x0e\x1f\x5e\x43\xf7\xd0\xe3\x77\ \x4c\xc5\x90\x77\x82\x81\x1a\x43\x0c\x06\xe3\xe8\xef\xbf\x1b\xc3\ \x80\xde\x6b\xc4\xe9\x52\xec\x2a\x57\xbe\x81\x66\x23\xcb\x14\x7d\ \x7d\x13\x21\x3a\x2a\x71\xbb\xcb\x96\x96\x7b\xf1\x7e\x28\x19\xea\ \xf2\x3c\x79\x76\x21\x21\xfa\x33\x52\xc9\xfc\xa5\x91\x95\x06\x3d\ \x40\x4b\x30\x05\xe9\x63\xe7\x29\x0e\x28\x14\x30\x18\x82\x1d\x28\ \xb5\xe2\x23\x22\x4c\x4e\xcf\x9c\x79\x04\x92\xde\x17\x5c\x87\x0d\ \xdb\xf3\xe5\xcb\x97\xa5\x18\x6f\xa1\xb1\x5a\xe5\x46\x45\x42\x24\ \x32\x53\x62\xdc\xa6\x4f\x1f\x97\x10\x1b\xbb\xe8\xf0\xf0\xe1\x27\ \x51\x1e\xa4\x0e\x92\x1f\x1a\x34\x88\x0c\x4b\x8f\x94\xa0\xcd\x72\ \xe4\x78\x40\x63\x44\xa8\x59\x39\x69\x95\x0a\x31\x18\x0c\x12\x9d\ \x05\x7b\x80\xf3\xc1\xb9\x60\x0d\xa1\x05\xc8\xc1\x2d\xa7\x54\x30\ \x29\x6c\xe4\x74\x6a\xda\x34\xd3\x37\x77\xee\xac\x41\x2e\xe6\xf5\ \x60\x6f\xef\x55\x4a\x2f\x35\x84\x10\x76\xc9\x52\xa0\xcf\x52\xa5\ \xf8\x10\xae\xe5\x45\xda\xc0\x60\x70\x1b\xae\xa7\x1e\x1e\xd6\xe8\ \x2a\x7a\x93\xe2\x76\x64\x54\xb8\xbe\x7e\x79\xed\xda\x34\x92\x89\ \x13\x00\x29\x0f\xc3\x83\xf9\x1e\x8a\xd0\xef\x61\x8c\x56\x8e\xad\ \x5b\x5f\xa7\x6a\x04\x18\x5d\x24\xde\xff\x8e\x95\x8e\xc1\xe0\xde\ \x77\x53\x70\xbe\x5b\x8e\x56\xca\x87\x1c\xdb\xb6\x3d\x14\x70\xfc\ \xb8\x21\xc6\x72\x28\x7a\x98\x60\x8a\xcf\x9a\x35\x7b\x31\xd6\x05\ \x1c\x49\xa5\x3f\x38\x27\xba\x84\x87\x86\x96\x13\xdf\x05\x06\x83\ \x0d\xaf\x1c\xd8\x5d\x4a\xb3\xd7\x55\xce\x79\x60\x3c\x64\xd9\x03\ \xa5\xc8\x51\x36\xf9\x6e\x75\x70\x02\x58\x4d\xa4\x0f\x18\x0c\xc6\ \x5c\x21\xf2\x61\x3b\xf9\x19\x9d\x5c\x5f\x3e\x38\x7e\xbc\xbe\xc8\ \x58\x30\x18\x8c\x13\x93\x26\x6d\x20\x99\x3e\x18\x1e\x85\x19\x1c\ \xc0\x3e\x19\xd4\xb7\x9c\xc1\x99\x26\x8c\x1e\x9b\x36\x6d\x6c\xbf\ \x72\xe5\xfe\xc2\x15\x2b\xbe\x43\xb9\x0f\x55\x98\x1f\x01\x57\x88\ \x8c\x03\x83\xc1\x71\x3d\x70\x41\x74\x68\xe8\x8a\x9b\xdb\xb7\x6f\ \x8b\xfd\xf0\x21\xdd\xbb\x81\x32\x18\x2a\x50\x82\x21\x63\x72\xe5\ \xc1\x2a\x60\x14\x56\xbb\xab\xe2\xc7\x00\x83\xc1\x3d\xd8\x32\xe1\ \x0b\x8d\xc1\x60\x50\x20\x1d\x41\xf3\x27\x30\x3a\x3f\x30\x23\x45\ \x6a\x19\x0c\x06\x79\x38\x91\x46\xf6\x1a\xfc\xb4\xad\x49\x93\x9f\ \x44\xc6\x82\xc1\x60\xbc\xbd\x7f\x7f\xe2\x2b\x3f\x3f\x92\x61\x6f\ \x2b\x24\x18\x8c\x0c\x92\x08\x67\x94\xa8\x51\xc3\x19\x97\xfa\xe0\ \x75\x91\xfe\x60\x30\x18\x24\x54\x0b\xda\x64\x42\xc2\x33\x83\x03\ \xdf\x8c\x14\x21\x16\xe2\x32\x53\x2f\x07\x54\x1a\x32\x16\x0c\x06\ \xc3\x7d\xc1\x82\xa6\xa8\x44\xb8\x06\x09\x87\x8c\xd6\xc2\x64\xf0\ \x19\x8e\xd1\x61\xe5\xca\x7b\xb8\xec\x01\xa3\xc5\x0f\x01\x06\x83\ \xcf\x81\x27\xb1\x3c\x5e\xc4\xb5\xa1\xf8\xd7\x81\x41\xba\x8d\x13\ \x48\x1a\x4e\xe8\x04\x18\x79\x4b\x96\xf4\x55\x09\xd1\x4a\xa8\x54\ \x9e\xd4\x09\xc8\x58\x08\x23\xf1\xef\x01\x43\x0a\xa3\x3e\xc4\xb5\ \x8b\xc8\x72\x30\xd0\xff\x6e\x23\xcd\x89\xa6\xb8\x2d\xb8\xef\x5f\ \x92\xb1\xc2\x38\x39\x75\xea\x09\x48\x85\x47\xcb\x09\x3e\xb9\x58\ \x88\xca\x22\x4b\xc0\xa0\x5e\x77\x30\xae\x38\x8b\x5c\xb9\x3e\x9e\ \x9d\x3d\xfb\x08\xfa\x22\x38\x6c\xaa\x53\xe7\xa6\x54\x8d\x3e\x29\ \xfe\x15\xe0\x0c\xf9\x4e\x90\x17\x78\x0e\x61\x9d\xcf\x10\xce\x49\ \xc6\x84\x93\xf1\x15\x9d\x29\x44\x2e\x91\xa9\x60\xc8\xde\x07\x4a\ \xff\xbb\xd9\x60\x8f\xcf\x9f\x3f\x4f\x75\x68\xda\xf4\x16\x8d\x9b\ \xe5\xca\xd5\x48\xfc\xf0\xe0\x49\xee\x07\xa6\xec\xeb\xd1\xc3\xfb\ \xa9\xbb\xfb\xfa\xd3\x33\x66\x1c\x40\xbb\xdf\x3d\xd4\xe8\x10\x1c\ \x37\x50\x08\x3d\x91\xe1\x60\x98\x08\xd1\x5c\x11\xb4\x75\x1e\x38\ \xf0\x38\x35\x2e\x11\x12\x07\xfa\xf5\xb3\xa5\xf1\x3d\x5d\xba\x18\ \xcb\x39\xdb\x8a\xb9\xb1\xc3\xb5\xb0\xf8\xe1\xc0\x06\xf7\xdc\x3c\ \x57\xae\xa8\xe8\x97\x2f\xcd\xa9\xbf\x1a\xf8\xfb\xc9\xc9\x93\x47\ \x91\xce\x87\xdc\x66\xfa\x83\xad\x44\x46\x82\xe7\x80\x9c\x57\x37\ \x20\x46\x1b\xbf\xb1\x56\xad\x47\xe8\xe6\x9a\x8c\xb1\x6e\x78\xa4\ \xc2\xd5\x00\x73\x71\x90\xe6\xe2\xfa\xe6\xcd\x73\x05\xb0\x4c\x5f\ \x7f\xaf\x9c\x9b\x47\x3f\x60\x09\x10\x3b\x4d\xce\xcc\x9a\x75\x14\ \x86\xd6\x41\x48\x58\x95\x2b\x37\x8b\xc6\x37\xd6\xac\xf9\x18\x7f\ \x04\xb1\x52\x18\xd5\x29\x7d\x3d\x66\x0c\xf2\x0e\xc3\xd0\xc6\x80\ \x0b\x69\x1e\x0e\x8f\x18\x71\x2e\xe6\xed\x5b\x63\x9b\x72\xe5\x42\ \xa5\x41\xbd\xc7\xb3\x60\xd9\x11\x88\x54\xc5\xfa\x0b\x00\x5b\xcc\ \x4d\x34\x76\x64\xd4\xa8\xfd\x18\xa3\x36\x5d\x4d\xc0\x36\x42\x03\ \xd2\x58\xe7\x80\x1d\x84\xce\x80\x91\x2d\x5f\xe9\xd2\x21\x1d\x56\ \xad\xf2\xc6\xcd\x65\xa5\x96\x2b\xe6\xe5\xcb\xf9\x06\x05\x0b\x86\ \xfd\xee\xe3\xb3\x7f\xd2\xdd\xbb\x1b\x0d\x5b\xb6\xf4\xcb\xa6\x52\ \x0d\x40\x94\xfc\xe1\x12\x7a\x25\x5d\xc0\x28\x25\x84\x91\x4a\x88\ \x8d\xe0\x0a\xbd\x9c\x39\x13\xda\x9a\x9b\x5f\xc9\x57\xa2\xc4\xfa\ \x81\xce\xce\x96\x95\x3a\x75\xf2\xd1\xcf\x9f\x3f\x29\x67\xee\xdc\ \x02\x3f\x9f\x1f\xe9\xe9\x79\x48\x08\x11\xb0\x50\x88\x12\x21\x57\ \xaf\x0e\x45\xf8\xe0\x4d\xf7\xcd\x9b\xef\x60\x2c\x36\x45\x08\x73\ \x5c\xbd\x60\x5c\x47\xc9\xf1\x22\x57\x4d\x3a\x83\x4f\x03\xdd\x31\ \x67\xdb\x84\x6e\x80\xf1\xcc\xd3\x73\x1d\x56\xb7\x7a\x42\x02\x93\ \x63\x4d\xab\x1b\xf4\xfa\xef\x5f\x5d\xb7\x6e\x10\xd4\x88\xd7\xe3\ \xf9\x28\xe7\x41\x83\x3c\x69\x1c\x0d\x30\xec\x44\xba\x81\xe1\xb7\ \x65\xcb\x12\x5b\x23\xa3\x17\xb4\x62\xc1\x3b\x19\x02\x83\x2a\x86\ \xf9\xc8\x05\xfe\x0e\x9a\x4a\x2e\x06\x5b\x49\x43\x5a\x07\xa6\xdc\ \xd8\xbc\xd9\x11\x63\x0d\x04\xf0\xe8\xf8\xf1\x16\xe8\x22\x14\x47\ \xca\xd2\x1b\xaa\x57\x37\x12\x12\x3b\xdb\xb7\xdf\x2d\x3b\x0a\xd9\ \xe2\xdd\x9c\x42\x27\xc0\x5e\xca\x61\xa0\x4a\x00\x08\x09\x54\x85\ \xc1\x25\x22\x4c\xf0\x49\x23\x06\x94\x88\x43\x7c\x01\xe8\xf3\x07\ \xae\x2a\x5c\x38\x82\x1a\x68\xe0\xfd\x3c\x22\xbd\xc0\x5e\xe2\x4a\ \xf0\x44\xce\xf2\x30\x36\x76\xd9\x58\xbb\xf6\x15\xf7\xf9\xf3\x0d\ \x35\x9e\x15\x96\xe2\xb5\xb9\x85\x04\xce\x73\xaf\xd1\x66\xeb\x35\ \xc6\x26\x2a\xf3\x86\x79\x19\x43\xf3\xe5\x32\x64\x88\x07\xc6\xba\ \x09\x80\x0c\x17\xef\x46\x59\x95\x2e\xfd\x26\x29\x21\x61\x9e\x74\ \xc2\xe8\x02\xb8\x8d\x2f\x75\x8f\xa1\xc0\x37\x78\x92\x9c\x25\x8f\ \xdd\xdc\x36\x3a\x0d\x18\xe0\x45\x93\xb8\xbb\x4b\x97\x4b\xa4\x52\ \xec\x3c\x64\xc8\xef\xcf\x3c\x3c\x68\x35\x6c\x29\xb7\x2c\x9d\x64\ \xc3\x0b\x6f\xd0\x01\x6c\x21\xbe\x17\x3c\x07\x39\xc0\x36\xa0\x31\ \xd8\x4c\xfc\x09\x56\xe4\xcf\xff\x80\x9a\x93\xb8\x0e\x1d\xda\x57\ \xce\x43\x5e\x30\x14\xe3\x61\xf2\xcb\x30\x9f\x1c\xdf\x0c\xa6\xec\ \xea\xd4\xc9\xd7\x75\xc4\x88\x09\x3a\xe4\x6d\x66\xc0\x70\x4c\x94\ \xcc\x86\xad\x8d\x1a\xdd\xc6\xa4\x8d\xd8\xdf\xab\xd7\x62\x7c\x3b\ \xbe\x96\xde\xcb\xc2\x60\x79\x70\x20\xa8\xa7\x6c\x6b\x10\xb7\xfb\ \x88\x6d\x50\x20\x8c\x34\x49\xae\x86\xe3\xc4\x77\x83\xf1\x77\xb6\ \x7d\x37\xec\xed\x47\x58\xe4\xc9\x13\x2b\xe7\xeb\x29\x98\x00\xa6\ \x78\x99\x99\x39\xd1\x97\xa1\xdc\xa9\xd4\xc5\x98\xe2\x65\x56\x18\ \x08\xd6\x11\x59\x0f\xc6\x23\x2f\xaf\xa2\x07\xfb\xf5\x3b\x8b\xe6\ \xf3\x89\xe4\x91\x5c\x9e\x37\xef\xfe\x7d\xdd\xbb\x57\xc4\x04\x2e\ \xf1\xdd\xb0\x61\x34\x0c\xe9\x77\x0d\xaf\xe6\x78\x30\x65\x75\xd1\ \xa2\xcf\x43\xaf\x5f\xb7\xa1\x33\xc6\x87\x27\x4f\x56\xaf\xad\x58\ \x31\x48\x6e\x43\xf7\x60\xc2\x6b\x8a\x8c\x02\x1b\x65\xa1\xe7\x5e\ \x5e\xcb\xb1\x03\x39\x8b\x34\xb0\x53\x34\x17\x38\xbf\xc5\x24\x44\ \x47\x53\xbf\x84\xec\xf2\x1c\xee\x45\xf3\xb8\xab\x43\x07\x5f\x74\ \x7c\xdd\x7f\xa0\x4f\x9f\xf3\x50\x96\x4e\xa6\x2f\x48\x8c\x97\x14\ \x12\x5a\x73\xba\x28\x13\x93\x1d\x58\x8f\x11\xec\x4d\x1a\x1c\xb4\ \xc2\xc9\x30\x40\xb4\xb5\xa1\xe1\x4a\x5c\xef\xd3\xb9\x41\x00\x34\ \x21\x78\x16\x81\x16\xbe\x21\x71\xe1\xe1\x16\xf8\x9d\x41\x60\x19\ \xb0\x72\x54\x68\xe8\x94\x65\x39\x73\x26\xaa\x5b\xfb\x16\x2c\x68\ \x2c\x80\x3f\x84\xc8\x98\x73\x03\xcf\x57\x71\x70\x54\xa8\x9f\x9f\ \xe9\x96\x86\x0d\x6f\x43\xac\x28\xe9\xd8\xf8\xf1\x03\x31\x37\xcd\ \x30\x5f\x43\x69\x0e\xec\xeb\xd6\x7d\x80\x77\x4c\xe4\xae\x64\x1c\ \xfa\xe2\x1d\xa1\x71\xcb\x62\xc5\xd6\x0a\x2d\xc0\x10\xb7\xcb\x55\ \xf0\x05\x7e\x7f\x90\xc8\x34\xf0\x44\x96\x05\xc7\xdd\xda\xb5\xcb\ \x01\xdb\xc9\x60\x65\x3b\x02\xed\xfd\x13\x18\xaf\x88\xfb\x3e\xb2\ \x43\xa8\x33\xc5\xed\xb4\xb7\x43\x58\x19\x3f\x2c\xcf\x97\x2f\x26\ \xfa\xd5\xab\xe9\x78\x2f\xa7\x4c\x8a\xde\x40\x67\x44\x91\x11\xe0\ \xf9\x52\x81\xa3\x3e\x45\x46\x9a\x63\x25\x9b\xaa\xb9\x85\xdc\xdd\ \xb9\xf3\x55\x3c\x33\x12\x12\x8f\x4f\x9e\xfc\x45\xc6\xf3\xae\x0a\ \x2d\x24\x25\x25\x35\x42\x67\xd8\x73\xf4\x1c\x0e\xb3\x0b\x22\xd3\ \xc1\x93\x58\x17\x9e\xb3\x39\x94\x40\x8b\x6d\x4b\x20\xbc\x5c\xf3\ \x31\x66\x80\x09\x99\x01\xa6\x3c\x39\x7b\x76\x29\xbd\x27\xb4\x80\ \x6a\xe7\xb5\x64\xac\x78\xd6\x4e\x06\x5d\x95\x8c\xf7\x70\x5c\xa7\ \x82\x19\x53\xf0\xca\xf3\x55\x03\x2c\x74\x64\xf4\xe8\x0d\xd8\x5e\ \x46\x91\x97\x19\xd9\x43\xf1\xe4\x75\xd6\x48\x1d\xeb\x49\x73\x81\ \xad\xa8\x67\x2a\x73\x9e\x0d\xe7\x75\x6f\x6a\x68\x02\xc3\xdc\x80\ \xfb\x12\x22\xf3\xc1\x07\x78\xb0\xbd\x8c\x01\x35\x14\x00\xb6\x23\ \x03\x69\xd2\xb6\x35\x6b\xb6\xfd\x1b\xbf\xd3\x08\x1c\xbf\xfe\xe7\ \x9f\x4b\xd3\x96\x14\xee\xeb\x90\x6b\xeb\xd7\xef\x82\xdb\xfa\x8d\ \x34\xbe\x00\x6a\x74\x2f\x32\x0a\x3c\x67\x4d\x3f\xbe\x79\xb3\x8c\ \x72\x62\x61\x78\xb1\x30\xa0\x77\x32\x21\x7a\x03\x98\x84\x94\xb0\ \xd8\x60\x1f\x9f\xd5\x64\x60\x42\x03\x34\x27\x6a\x8f\x66\xfb\xf6\ \xb4\x2a\x0e\x17\x59\x0a\x9e\xc4\x82\xca\x6a\xb6\x65\xfc\xf8\x1c\ \x96\x25\x4b\xbe\x93\x49\xb6\x23\xc4\x37\xb0\x48\x88\x32\x70\x5d\ \x87\xde\x73\x76\xde\x92\x9c\x9c\xdc\xcf\xba\x5c\xb9\x60\x72\xc8\ \x60\xc2\x63\xe4\x8a\x77\x0c\xd7\x0c\x12\x48\x65\xa7\x0a\x58\xf7\ \xd6\xce\x9d\x76\xab\x8b\x15\x7b\xad\xec\x32\xb0\xd5\x0f\x92\xbb\ \x8f\x3e\x5a\x0e\x93\xec\x98\x8f\x7b\x58\x15\x3f\x86\x3f\x7d\xba\ \x02\xcf\x8b\xfd\xa9\x7c\x7b\xe6\x82\xe1\xe7\xe0\x30\x77\x65\xc1\ \x82\x91\x14\x06\xc0\x04\x5c\x00\x17\xc8\xec\x14\x03\xad\x89\x9f\ \x00\x8e\xc5\x36\x65\xb8\x12\x94\x8d\x08\x0a\x5a\x45\x8d\x0f\xe9\ \x1e\x71\xa3\xa1\x22\xa3\xc1\x6d\x96\x17\x04\x5d\xbc\x68\xf7\xe2\ \xd2\xa5\xb5\x5f\xbe\x7c\x59\x2a\x83\xe5\x06\x5a\x21\xa1\x29\x34\ \x1f\xc7\x27\x4e\x74\xc3\xb3\xae\xe2\x4f\x20\xe7\xfa\x84\xb1\x10\ \x15\x44\xe6\x81\xdd\xd2\xef\xee\xdd\x5b\xea\xd8\xa6\xcd\x0d\x64\ \xb5\xab\x33\x52\x68\xeb\x82\x42\xc9\x5a\x5a\xef\x15\xc1\x19\xb0\ \xb8\x66\x50\xd6\xd3\xc4\xa4\x39\x3c\x6a\x89\x08\x21\xbc\xc0\x19\ \x31\xe3\x63\x76\x3c\x57\xb9\xc1\xc6\x60\x3b\xb0\x36\x98\x8d\x1c\ \x5f\xb2\x82\xfc\x27\xb0\x30\xf8\x61\x55\xd1\xa2\xaf\x92\xe2\xe3\ \x17\x50\x4a\x99\xd0\x86\xac\x58\x90\xde\x4c\x47\x30\x79\x6d\x85\ \x0a\x99\x1c\xcf\xe3\x89\x2c\x00\x8e\xf9\x14\x1d\x6d\x1e\xe2\xe3\ \x63\x4b\x57\x3a\xef\xa5\xb2\x05\xb1\x00\x53\x2e\x2c\x5b\x76\x90\ \x82\xb2\xb8\x9f\x48\xf1\xa0\x07\xae\xae\xf6\xb8\xcf\x82\x58\x1d\ \x83\x76\x1c\xb2\xf4\x2a\x01\x86\xa7\xae\x26\xa7\x73\x36\x9d\xbf\ \xbf\x91\x14\x61\x2d\xab\x16\x26\xc5\x45\x45\x35\x7a\xe1\xed\xbd\ \x16\xef\xf6\x13\x59\x06\x6e\x52\xdf\x0c\xfc\x05\x34\xd0\x38\x80\ \x0f\x03\x2b\x62\x92\x3e\xe1\xdb\xf0\x09\x9e\x4d\x07\xb3\x43\x32\ \xa0\x20\xbc\x60\x34\x61\xbf\x8b\x2c\x03\x6f\x35\x03\x4f\x9d\xda\ \x60\x57\xb9\xf2\x63\x32\x36\xaa\xbd\x43\x0c\x6f\x37\xe6\x26\x55\ \x0f\x32\xe2\x79\xcd\xb1\x43\x09\x91\x67\xc1\xdb\xaf\x6e\xdf\x6e\ \x41\x25\x41\x42\x67\xc0\x69\x62\x07\xe4\xe4\xc4\x62\xfb\xf1\xe5\ \xe1\xd1\xa3\x9b\x30\x41\xd5\x85\x84\xdc\xde\x14\x14\x59\x09\x36\ \xba\xca\xe0\x1f\x97\x57\xad\xda\x8f\x6a\x90\x0f\xd2\x91\x75\x59\ \x5b\xa8\x48\x49\xa0\x86\x03\x46\x9d\xca\xb7\xae\x4a\x15\x1f\x1d\ \x9b\x3b\x46\x64\x68\x68\x3d\x2a\xa4\xa4\xea\x65\xf2\x66\x52\xa0\ \x75\xae\x10\xf9\x84\x2e\x82\xb3\x8b\x9a\x25\xc4\xc4\x18\x1f\x19\ \x39\xf2\x2c\x4a\x84\x6e\xb8\x0e\x1b\x96\x5a\x4f\x04\x15\xb6\xa1\ \x97\xe9\xec\x1d\x7a\xed\x1a\xa5\xf2\x19\x0a\x9d\x03\x67\xbe\xf7\ \x7c\x7b\xf7\xae\xe5\xf6\x16\x2d\x6e\xd2\x2a\x87\x04\xe7\x81\x42\ \x57\xc1\xf3\x95\x07\xec\x05\x2e\x01\x1b\xcb\x5d\xca\x7a\xd0\x44\ \xa6\xf2\xfd\x2a\x03\xe6\x5e\xb2\xe2\x5c\x47\xc1\x13\x59\x0a\xfc\ \x3d\x32\x24\x64\x25\xae\x3a\x6e\x70\x0c\xa5\xac\x87\x80\xd5\xec\ \x18\x19\x99\x94\x77\x08\x5d\x9e\x27\x4f\x78\xec\xfb\xf7\xa6\xe4\ \x2c\x4b\xc5\x31\x56\x16\xef\xcd\x05\xcd\xa8\x64\x2b\xeb\xcb\x80\ \x78\x22\xab\x83\x65\xc5\x8f\x04\x9e\xb3\xf6\xe7\x8d\x8d\x0f\xa1\ \x0c\x48\x7d\xbe\x43\xc6\xd0\x5b\xaf\xa5\x4b\xc7\xa5\xa2\x34\xd6\ \x9f\x0a\x94\xb5\x84\x6b\x6f\xca\x8a\x84\x34\x80\xc1\xe0\xf3\x5d\ \x6b\x5a\xd5\x9c\x06\x0e\xf4\xc2\x79\x3c\x49\x26\x3a\x2c\xd0\x58\ \xd9\xca\x83\xf1\x78\x16\x85\xc4\xe9\xdd\x14\x5a\x80\x32\xc0\x79\ \x0a\x39\xe0\x18\x11\x84\xf7\x4d\xd3\xde\x27\x8f\xc1\xe0\x78\x6b\ \x7f\x72\x96\x6c\x6d\xdc\xf8\x26\x92\x1b\x36\x0b\x09\x25\x39\x5d\ \xa6\x8b\x4d\x05\xbb\x80\x23\x2e\x98\x99\x1d\xa0\x71\xa2\x4d\xa5\ \x4a\xf5\x45\x9a\xc1\x60\xb0\xe1\x19\x82\xe3\x41\x13\x30\xbf\x00\ \x10\xbf\x5b\x4a\x46\x85\x62\xd8\xb9\x9a\x7a\x29\xde\xd6\xd6\x6d\ \x69\xdc\xbe\x5e\x3d\xaa\xc7\xeb\x2e\xbe\x1b\x0c\x06\x97\x01\xe5\ \x15\x12\x0e\xcd\x9a\x91\x61\x7d\xc5\x39\xef\x89\xe6\x99\x8d\x9c\ \x26\x07\xfb\xf7\xdf\x4d\x2a\x00\x24\xcb\x21\xd2\x07\x0c\x06\x97\ \x6f\x41\x1e\xdf\x4b\x36\x1a\xa1\x4a\x71\x52\x0e\xcb\x3b\x5b\x08\ \x0a\x33\x74\x02\xd3\xb9\x1b\x13\x83\xc1\x46\xd7\xdc\xd3\xd4\xd4\ \x79\x65\xa1\x42\xef\x34\xbc\x94\x89\x24\x56\x2b\x32\x04\x0c\x06\ \x1b\x5d\x23\x54\x7e\x98\xdc\xde\xbb\x77\xdb\xce\x76\xed\x4e\x9c\ \x9a\x3e\x7d\xf5\xa7\xa8\xa8\x8a\xdf\x21\xb9\x9f\x1b\x1c\x0d\x5a\ \xc0\x68\x67\xe3\x5a\x51\xfc\x0b\xa1\x12\xff\x10\x0c\x86\x3c\xdb\ \xd5\x06\xeb\x80\x5f\xc1\xf3\x2a\x95\xea\x79\x1a\x3a\x07\x75\x56\ \x09\xb1\x03\x2c\xad\x31\xfc\x25\x45\x88\x71\xcb\x84\x70\x14\xe9\ \x06\x06\x83\x9b\xc9\xd4\xc3\x8a\xf6\x11\xb1\xbb\xc4\x13\x13\x27\ \x1e\xa4\xcc\x24\x2a\xdf\x42\x91\xf3\x07\xa9\x2c\xd0\x4c\xfc\x6b\ \x90\xc5\x25\xf3\x0c\x06\x56\x31\x13\x3d\x3d\x3d\xd1\x6b\xc7\x8e\ \xbd\x3d\xec\xed\xfd\x0a\x96\x2b\x77\xaa\x7a\xbf\x7e\x7b\xda\x9a\ \x99\xed\x15\x2a\x95\xc8\x5d\xb4\xa8\x89\x90\xf8\x67\x69\x63\x0c\ \x06\xaf\x6e\xd9\x51\x89\x10\x4d\x82\xb5\xd8\x96\x4e\x02\x0b\x6a\ \x2a\x06\xd8\x18\x19\x05\x5b\x96\x28\x11\x8a\x71\x15\xe9\x65\x82\ \x91\xf8\x9d\xc5\xdf\x21\x58\xcb\x60\x30\x16\x0b\xf1\x33\x79\x36\ \xd1\x00\xf4\xb8\x12\xe3\xd3\x04\x74\x4e\x9f\x93\xdc\xbe\xba\x07\ \x9e\x9e\x5e\x37\x7a\x57\xf2\x79\x1a\x45\xa8\x18\x0c\x06\x29\x73\ \x43\xad\x3b\x6e\x63\x9d\x3a\x57\x53\x71\xa4\xa8\x85\x6b\xd1\xe3\ \xe2\x12\x55\x9e\x40\xf5\x6d\x0b\xdd\xbb\xfc\xf6\x9b\x07\x8c\x30\ \xd0\xa1\x65\x4b\x6a\xdf\xa5\x5a\x44\x6d\xf6\xfe\x1e\x18\x0c\x06\ \x8c\xed\x92\x5c\xb5\x7a\x69\x18\x5b\x77\xd2\x35\x25\x59\x45\x28\ \x8e\x59\xed\xee\xdb\xb7\x38\x82\xeb\xb1\xb6\x15\x2a\xbc\xa0\x4a\ \x75\xc8\xf9\x59\xe0\xfa\x2b\xde\x99\x09\x7e\x01\xb7\x50\x7b\x2e\ \x91\x3a\x18\x0c\x06\x29\x81\x81\x63\xa1\x97\x72\x53\x76\x62\x4a\ \xc4\xf5\x0c\x8c\xc7\x1d\xd7\xcf\xa8\xc9\x8b\x86\xb7\x92\xe4\x39\ \xfa\x61\xec\x0f\x7a\x87\x7a\xe8\xd9\xff\xfc\xf3\x3c\x3c\x4f\x40\ \x2e\xe7\xa6\x3d\x9d\x3b\x97\xb2\xab\x54\xc9\x4f\x51\xf7\x96\x4a\ \xd3\x0c\x06\x23\x95\x2d\x63\x6f\xe5\x4c\x66\x5b\xb1\x62\x30\xba\ \x37\x79\xa0\x23\xd3\xb5\xe5\xf9\xf3\x5f\xd9\xdd\xa9\xd3\x4e\xd2\ \xd2\x24\x5d\xd3\xa0\xa0\x20\x03\xea\x51\x01\x25\xe9\x8f\x7b\xba\ \x76\x3d\x43\xa1\x02\xd9\xbd\xc9\xef\xd5\xab\x57\xb9\xd1\x91\xd7\ \x0f\xab\xdf\x57\x04\xdd\x3d\xce\x2f\x5b\x56\x97\x85\x6b\xb5\xc1\ \x60\x48\x17\x3f\x74\x4a\xb7\x6e\xaa\x5b\xf7\x21\x3c\x95\x9f\xb1\ \xd2\xbd\x7d\x72\xfa\xb4\xad\x6c\xb1\x3c\x17\xec\x23\xfb\x59\x74\ \x00\x53\xa8\x43\x10\x5d\x91\x46\xf6\x42\x9e\xed\x2e\xa3\x30\x76\ \xb1\xfa\xe7\x3e\x7d\xbc\x64\x33\xcb\x56\x1a\xc6\x56\x87\x0c\x95\ \x82\xea\xb8\x65\x30\x18\x54\xe4\x0a\xce\x7a\x70\xe4\x88\x3d\x35\ \x21\xa1\xfe\x07\xe8\x53\xfe\x02\xdb\xc5\xf6\x1a\x2a\x70\x47\x94\ \x95\x10\x35\x79\xde\x67\xe7\xcc\x51\xdf\x63\x3b\x79\x99\xde\xb7\ \x29\x57\xee\x21\x9a\xcd\x98\x90\xfc\x9f\xd2\x52\x4d\xfe\xde\x50\ \x18\xf2\x27\xcb\xe2\xc5\x8d\x05\xc0\x60\x30\x64\xe7\x1e\xb0\xda\ \x33\x77\xf7\x55\x68\x02\xea\x61\xf7\xd3\x4f\x67\x4e\xcf\x99\xd3\ \x41\x39\xe7\xc1\x68\xde\x6a\x88\x18\x2d\xc1\xf6\x73\x9f\xd4\xd3\ \xa4\x5e\x15\x11\x10\xab\x5a\x83\xf1\x06\xf2\xfd\x0e\x52\xe0\x76\ \xe3\x91\x09\x13\xca\xbf\xba\x71\x63\x4d\x42\x6c\xec\x7c\xd9\xa8\ \x92\xc1\x60\x68\x06\xba\xc1\x71\xa0\x09\xd8\x5b\x48\xbc\xb9\x7b\ \x77\xa0\x8f\xb5\xf5\x5e\xb9\x65\xac\x0a\x49\x87\xab\xd2\xc9\xf2\ \xe5\xba\xbd\xfd\x4e\x4d\x15\x68\x8c\xe7\x47\x13\x51\xc5\xeb\x19\ \xb1\xb3\x63\xc7\xbe\x7f\xa1\xf0\xcd\x60\xb0\x9e\x4a\x2a\x86\x38\ \x00\x2c\x47\x4e\x10\xac\x78\xf1\x64\x50\x87\x06\x0d\x3a\x8f\xb1\ \x29\xda\x7d\xd1\xd1\x9c\x92\x3c\x9f\x51\xd8\xa2\x46\x3f\x74\x73\ \xab\x2d\xbe\x1f\x0c\x06\xe3\xf8\xf8\xf1\x0b\xd0\xf8\xf3\xc6\xe7\ \xa4\x24\xe3\xd4\x5a\x6b\x99\x66\xcb\x36\x8f\x0c\xf2\xcc\xac\x59\ \x47\x65\x97\x5e\x9d\xc2\x0f\xb5\xb7\x65\x30\x7a\x6e\xd9\xe2\x86\ \x4b\x0a\x78\x06\x25\x40\x61\x94\x63\xa9\x12\xa2\x2b\xee\x97\x26\ \x61\x81\x4b\xf9\xfa\xd5\x38\x1f\x1a\x81\x76\x58\xb5\xca\x1b\x63\ \x97\xfe\x66\x4c\x70\x16\x2e\xc5\xc1\x15\x66\x42\xc4\x68\x3c\x62\ \x30\x18\x9a\xa2\x45\xd8\x62\x8e\xa3\x40\x39\x18\x0f\xe3\xbb\x85\ \xeb\x57\xf4\x42\x20\x25\xb1\x7a\xda\xb5\x9f\x32\xf6\x77\x14\xef\ \x9d\xc7\x75\x89\xa2\xc5\x02\xcf\xe8\x7a\x79\xee\x0b\x01\x0d\xc4\ \x37\xc1\x60\xb0\xf1\x95\xa5\xb0\x02\xd2\xbe\x9e\x92\xd1\x50\xa7\ \xdd\x93\x93\x26\x6d\x37\x35\x35\xcd\xa6\xd5\x64\xc6\x44\x3a\x5b\ \x3e\x49\x8d\xcd\x14\x30\x10\x2c\x8a\x98\xde\x4c\xba\xdf\xd1\xaa\ \x95\xfb\x5f\xf7\x37\x67\x30\xd8\xe8\xaa\x81\xd3\xbd\xcc\xcc\x9c\ \x56\x15\x2a\x14\x41\xc6\x23\x57\xb1\x9c\x02\xa0\x8e\xad\xb4\xf2\ \xa1\xd4\xe7\xc9\x2b\x3f\x3f\xeb\x8f\xef\xde\x2d\xa7\x9e\x85\x14\ \x70\xc7\xea\x76\x1d\xef\x3e\x31\xcf\x95\x2b\x06\xc5\xaf\x16\xe4\ \xa4\x11\x7f\x09\x06\x83\x8d\x2e\x3b\xd8\x92\x3a\xed\x3a\x0f\x1e\ \xec\x81\xd6\xd6\xbe\xe8\x0a\x54\x50\x9e\xd1\x26\x83\x29\x90\x6b\ \x77\xa2\x3e\x17\x60\x0d\xb0\xed\xe1\xe1\xc3\x4f\xd3\x38\xd1\x6d\ \xda\x34\x2a\x11\xea\x24\xd2\x06\x06\x83\x9b\x92\x80\x7d\x41\x53\ \xb0\xbe\x00\xb0\xcd\x1c\x2b\xeb\xee\xb6\x08\x0d\x6c\xfd\xe5\x97\ \xc5\x34\x4e\x35\x77\xc8\x56\x99\x27\xcf\x86\xff\x04\x0c\x06\x77\ \x03\x5a\x5b\xa3\x86\x21\x9d\xed\xc0\x8f\x8b\x85\xa8\x2b\x00\x2a\ \xe7\xc1\x56\xf2\x22\x19\x9c\xdf\xd6\xad\x3b\xc8\x38\xa9\x8f\x21\ \xee\x17\x81\xe7\xf0\xcc\x0d\xd7\x51\x22\xed\x60\x30\x18\x88\xcb\ \xed\x44\x02\x74\xb2\x3c\xdf\x85\x11\xe9\xe7\xcd\xf5\xeb\x07\xc0\ \xd8\x26\xac\x29\x51\x22\x0f\xee\x7d\x69\x0c\x67\xbb\x58\x0d\x9d\ \x4d\x63\x16\x11\x4a\x23\x18\x8c\xce\xd6\xd6\x2b\x87\x9c\x38\x61\ \x5f\x67\xd8\xb0\x93\x45\x2a\x55\x7a\xa4\x12\xa2\x88\x00\x5a\x19\ \x1b\x5f\x26\x7b\x84\x23\x65\x2a\xae\xbf\x54\xea\xd4\xe9\xc2\xc2\ \x8f\x1f\x6d\x66\x85\x86\xae\x2c\xdd\xa0\x41\x00\xde\x33\x87\xe1\ \x79\x52\x0f\x3c\xe9\x84\xf9\x9b\x60\x30\x78\x9b\x59\x01\x1c\x1e\ \x15\x1a\xba\x84\x9a\x8d\xa8\xcf\x6f\x65\xcb\xde\x16\x00\xc2\x05\ \x17\xb1\xb2\x7d\xc1\x59\x8e\x3a\xc1\x36\x03\xeb\x44\x04\x07\x8f\ \xa0\xad\xa8\xc6\x6a\x77\x5a\x7c\x17\x18\x0c\x36\xbe\x01\xfe\xdb\ \xb7\x6f\xbf\x7b\xe0\x80\x39\x39\x4b\x90\x7f\xe9\x8d\xea\x83\x84\ \x97\xbe\xbe\xed\x84\xc4\x86\xd6\xad\xf3\x52\x38\x81\x6a\xf1\x8e\ \x8d\x1d\x7b\xea\xf8\x84\x09\xeb\x28\x77\x93\x53\xbb\xd2\x0e\x06\ \xc3\xf5\xe7\xd1\xa3\x5f\xe0\x5a\x09\x14\xc5\x6a\xd5\xf2\x0a\xbd\ \x72\xa5\xf9\xde\x2e\x5d\x16\x1a\x23\x2e\x07\xc3\x88\x0c\xbb\x78\ \x71\x1d\x1e\xa9\xaa\xf6\xee\x7d\xa5\xd7\xb6\x6d\x6e\x74\x04\x3b\ \xf4\xeb\xaf\x3f\x51\xad\x1d\xc6\x0d\xc1\xb7\x5f\x85\xd8\x6b\x21\ \xc4\x1d\xf1\xf7\xc1\x60\x30\x5e\x05\x04\x18\xa2\xc0\xf5\x8e\x86\ \x14\xdf\x67\xba\x42\xaa\x2f\x22\x2e\x2c\x6c\x29\x35\xa7\x24\x59\ \x3f\x12\x37\x92\x1d\x83\xe2\xe5\x36\xf3\x4b\xda\x1c\x2b\x0c\x06\ \x0b\x1a\x19\x92\xdc\x5e\x72\x72\x72\x3f\x7f\x47\xc7\xed\x90\xe2\ \x73\x5e\x9e\x2f\xdf\x2b\x45\xb8\x08\xc6\xd6\x46\x00\xb2\x7f\x79\ \xca\x86\x1a\x35\x1e\xc5\x85\x87\x5b\x3c\x3c\x7e\x7c\x93\xad\x91\ \xd1\x0b\x69\xa0\x83\xbf\xf1\xdf\x2e\xfd\xbf\x5e\x4a\x06\x83\x71\ \x32\x07\xb6\x91\x16\xfa\xfa\xb5\x72\x15\x2c\x78\xb4\x58\x8d\x1a\ \x4f\xbe\x24\x24\x14\x2d\x58\xbe\x7c\x48\x1b\x33\xb3\x2b\x78\xee\ \x43\x2d\xb8\x54\x42\xd4\x37\x28\x54\x28\xea\xc3\xa3\x47\x95\xad\ \x4b\x97\x1e\x71\x6f\xcf\x9e\xa0\xd1\xde\xde\xb6\x39\xf3\xe6\x8d\ \xd5\xcf\x9f\x7f\x89\xd0\x02\x06\x26\xa4\x08\x11\xa4\x61\x74\x0c\ \x06\xc3\x6d\xfa\xf4\x3e\x56\x65\xca\x3c\xd3\xd8\x4e\x7e\x5d\x91\ \x2f\xdf\x53\xa9\x1c\x56\x4b\x00\xd4\x68\x52\xc6\xed\xee\xd1\xca\ \x66\x5d\xb6\x6c\x80\x8c\xd9\x79\x40\xd8\xe8\x0d\xb6\x9e\x31\x78\ \x97\xf4\x54\x54\x18\x3f\x08\x5a\x91\x34\x3b\x9e\x3d\x8f\x7e\xff\ \xbe\xb2\x00\x00\x06\x83\x41\x02\x44\xe8\x71\x37\xcb\x7b\xcd\x9a\ \x7d\xdb\x9a\x34\xb9\x88\x02\xd7\xc3\xb4\x65\xc4\xf8\x60\xa1\x01\ \xd2\xc0\xa4\xd0\xc1\x96\x06\x0d\xa8\xf8\x75\x1a\x12\xa0\xf7\xa3\ \xe5\xf2\x1b\xb9\xcd\x0c\xc4\x98\x91\x00\xcc\x0d\x0c\x8e\x29\xc6\ \xbb\xb7\x6b\x57\x9f\xc4\xd8\xd8\xfa\xe2\x7f\xc0\x60\xb0\xd1\xe5\ \x90\x2a\x62\x33\xc0\x85\x60\x1b\x50\x25\x34\x70\xd7\xc9\xe9\xd7\ \xd5\xc5\x8a\x85\xd1\x0a\x08\xa7\x89\x07\x8c\xc9\x22\x2c\x30\xd0\ \xdc\x75\xe8\x50\x77\xef\xd5\xab\xf7\x29\xca\x61\x97\x2d\x2d\x27\ \xd0\x3b\xa8\x44\xf8\x2c\x0d\xef\xba\x89\x10\x4d\x45\xda\xc0\x60\ \x70\x5f\xf3\xf0\xe7\xcf\xe7\xef\xed\xde\xdd\xc7\x5c\x5f\x3f\x5c\ \x7a\x2b\x63\xd1\x76\x79\x11\xe9\xab\xc8\xd7\x54\x18\xbb\x40\xb1\ \xbb\xa7\xee\xee\xeb\x51\x91\x70\x0e\xc2\x47\xf1\xb2\x06\xaf\x9d\ \x48\x13\x18\x0c\x36\xba\x3c\xe0\xb0\xe4\x4f\x9f\xcc\xae\xd8\xda\ \xee\x71\x6c\xd3\xc6\xed\xa2\xb9\x79\x2b\x32\x46\xa9\x28\xdd\x9f\ \x0c\xf1\x40\xdf\xbe\x17\x30\x36\x04\xec\x0d\x29\x3f\x4b\xd7\xe1\ \xc3\x4f\x3d\x3e\x71\xa2\xa5\x4a\x7c\x0f\x18\x0c\x36\xbc\xc2\xb8\ \xd4\x05\x6b\x83\x4f\xa0\xaf\x72\x5a\x7a\x26\xaf\xe6\x30\x30\xa8\ \x31\x23\x38\x78\x6d\xde\xe2\xc5\x6d\x31\x1e\x45\xdd\x7f\xf0\xa8\ \x23\x18\x2c\xd2\x0f\x0c\x06\x03\x0e\x93\xfb\xcb\xf3\xe4\xf9\x78\ \x6d\xfd\xfa\x91\x19\x5c\x2d\xc0\x60\x30\xda\x98\x9a\x5a\x93\x9a\ \xf4\xe9\x69\xd3\x36\x99\x0a\x71\x18\x1c\x85\xa0\x7a\x99\x0c\x30\ \x38\x06\x83\xd1\x62\xc1\x82\xe3\x7d\xf7\xec\xd9\x5c\xaa\x7e\xfd\ \x47\x2a\x3d\x3d\xd2\xc5\x74\x44\x50\xfd\x84\xc8\x18\x30\x18\x0c\ \x52\xfe\x02\x67\x24\xc6\xc5\x2d\x23\xc9\xbe\xb0\xc7\x8f\xe7\x2a\ \x15\xe8\x19\xe7\x34\x61\x30\xd8\xf0\x4a\xe3\x52\x4d\xda\x99\x0f\ \x1c\x28\x09\xe2\x5f\x09\x06\x83\xc1\x60\x30\xfe\x0f\x1d\x9b\x1f\ \x99\x66\xa1\x3a\xad\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\x53\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x03\x00\x00\x00\x9d\xb7\x81\xec\ \x00\x00\x02\xeb\x50\x4c\x54\x45\x00\x00\x00\x00\x00\x00\xff\xff\ \xff\xff\xff\xff\x7f\x00\x00\xff\xff\xff\x66\x00\x00\xff\xff\xff\ \x7f\x00\x00\x71\x00\x00\x7f\x00\x00\xff\xff\xff\x73\x00\x00\xff\ \xff\xff\x7f\x00\x00\xff\xff\xff\x75\x00\x00\x7f\x12\x12\xff\xff\ \xff\x77\x00\x00\x78\x00\x00\xff\xff\xff\xff\xff\xff\x79\x00\x00\ \xff\xff\xff\x7f\x00\x00\x7a\x00\x00\xff\xff\xff\x7f\x00\x00\xff\ \xff\xff\x7b\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xff\x7c\x00\x00\x7c\x00\x00\xa3\x47\x47\xff\xff\xff\xff\xff\xff\ \x7f\x00\x00\x7c\x00\x00\x7f\x00\x00\xff\xff\xff\xff\xff\xff\x7f\ \x00\x00\xff\xff\xff\x7d\x00\x00\xff\xff\xff\x7f\x00\x00\xea\xd5\ \xd5\xff\xff\xff\xff\xff\xff\x99\x38\x38\x7d\x00\x00\xff\xff\xff\ \xff\xff\xff\xff\xff\xff\x7d\x00\x00\xff\xff\xff\xff\xff\xff\x7f\ \x00\x00\x7f\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\ \x00\x7e\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \x7e\x00\x00\x7e\x00\x00\xff\xff\xff\x7f\x00\x00\xb7\x70\x70\x7f\ \x00\x00\x7f\x02\x02\x7e\x00\x00\xff\xff\xff\x7e\x00\x00\xff\xff\ \xff\xc5\x8c\x8c\x7f\x00\x00\xff\xff\xff\x7f\x00\x00\xff\xff\xff\ \x7e\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x00\xff\ \xff\xff\xba\x75\x75\x7e\x00\x00\xa8\x51\x51\x7e\x00\x00\xed\xdc\ \xdc\xff\xff\xff\x7f\x00\x00\x7f\x00\x00\xff\xff\xff\x7f\x00\x00\ \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd8\xb2\xb2\xff\ \xff\xff\x7f\x00\x00\xff\xff\xff\x7e\x00\x00\x7f\x00\x00\x7f\x00\ \x00\x7e\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb7\x71\x71\ \x7f\x00\x00\xff\xff\xff\x93\x27\x27\x7f\x00\x00\x7e\x00\x00\xf9\ \xf4\xf4\xc3\x87\x87\xff\xff\xff\xff\xff\xff\x91\x24\x24\xff\xff\ \xff\x8f\x1f\x1f\xff\xff\xff\xec\xd9\xd9\xff\xff\xff\x8c\x1a\x1a\ \x7f\x00\x00\x7f\x00\x00\x7e\x00\x00\xff\xff\xff\xff\xff\xff\x7e\ \x00\x00\x7f\x00\x00\xad\x5c\x5c\xff\xff\xff\x8d\x1b\x1b\x84\x0a\ \x0a\x81\x03\x03\x7f\x00\x00\xff\xff\xff\xff\xff\xff\x80\x02\x02\ \xff\xff\xff\x80\x02\x02\xff\xff\xff\xff\xff\xff\xb1\x63\x63\x7f\ \x00\x00\x7f\x01\x01\xff\xff\xff\x7e\x00\x00\x83\x08\x08\x7e\x00\ \x00\xff\xff\xff\xb6\x6d\x6d\x7e\x00\x00\x87\x10\x10\xd6\xae\xae\ \x7f\x00\x00\x7f\x00\x00\xff\xff\xff\xff\xff\xff\xde\xbd\xbd\xf9\ \xf4\xf4\x7e\x00\x00\x7f\x00\x00\x90\x22\x22\xdf\xc1\xc1\xff\xff\ \xff\xac\x5a\x5a\xc4\x8b\x8b\xff\xff\xff\x7f\x00\x00\xff\xff\xff\ \x90\x22\x22\x80\x01\x01\x98\x32\x32\xa3\x48\x48\xdb\xb7\xb7\xf4\ \xea\xea\xf7\xf0\xf0\xf8\xf2\xf2\xfe\xfe\xfe\x80\x02\x02\xa5\x4c\ \x4c\x8c\x1a\x1a\x81\x04\x04\x92\x26\x26\x93\x27\x27\x82\x05\x05\ \x99\x33\x33\x9a\x35\x35\x9d\x3b\x3b\x9e\x3e\x3e\xa1\x44\x44\x82\ \x06\x06\x8c\x19\x19\xa7\x4f\x4f\xa8\x52\x52\xab\x57\x57\xab\x58\ \x58\xac\x59\x59\xb0\x61\x61\xb0\x62\x62\xb2\x66\x66\xb4\x6a\x6a\ \xb9\x74\x74\xba\x75\x75\xbd\x7b\x7b\xbe\x7e\x7e\xc0\x81\x81\xc7\ \x8f\x8f\xce\x9e\x9e\xcf\x9f\x9f\xd0\xa2\xa2\xd4\xaa\xaa\xd5\xab\ \xab\xd7\xb0\xb0\xd8\xb1\xb1\xd9\xb4\xb4\x84\x09\x09\xde\xbe\xbe\ \xe1\xc4\xc4\xe7\xd0\xd0\xe9\xd4\xd4\xea\xd5\xd5\xed\xdb\xdb\xee\ \xde\xde\xef\xe0\xe0\xf1\xe4\xe4\x85\x0b\x0b\xf5\xec\xec\x86\x0e\ \x0e\x8a\x15\x15\xfb\xf7\xf7\xfd\xfb\xfb\xfd\xfc\xfc\x8a\x16\x16\ \x8b\x17\x17\xd2\x67\xa5\xb8\x00\x00\x00\xb6\x74\x52\x4e\x53\x00\ \x01\x01\x03\x04\x04\x05\x08\x08\x09\x0a\x0a\x0b\x0b\x0c\x0d\x0d\ \x0e\x0f\x0f\x13\x13\x14\x15\x15\x16\x1b\x1b\x1c\x1c\x1d\x1e\x1f\ \x21\x24\x25\x27\x27\x2a\x2b\x2c\x2d\x2e\x2f\x32\x36\x36\x39\x3b\ \x3c\x3d\x40\x41\x44\x45\x48\x4b\x4c\x4d\x4e\x4f\x50\x54\x54\x55\ \x5a\x5c\x5d\x5d\x60\x61\x63\x65\x67\x67\x68\x6b\x6c\x6c\x6d\x70\ \x71\x73\x78\x7c\x7e\x80\x81\x83\x84\x8a\x8b\x8c\x8c\x8d\x91\x93\ \x95\x95\x95\x96\x98\x99\x9c\x9d\x9e\xa4\xa6\xa7\xa7\xa8\xa8\xa9\ \xaa\xac\xad\xad\xb0\xb3\xb3\xb4\xb7\xbb\xbc\xbd\xbd\xc0\xc1\xc4\ \xc6\xca\xcb\xcc\xcd\xcd\xd0\xd2\xd4\xd7\xd8\xd9\xdb\xdc\xdc\xdd\ \xde\xe0\xe1\xe4\xe5\xe6\xe7\xe8\xe9\xe9\xea\xef\xf0\xf0\xf1\xf3\ \xf3\xf5\xf6\xf6\xf7\xf7\xf7\xf8\xfa\xfa\xfb\xfb\xfb\xfb\xfc\xfc\ \xfd\xfd\xfe\xfe\xfe\xa0\xb1\xff\x8a\x00\x00\x02\x61\x49\x44\x41\ \x54\x78\x5e\xdd\xd7\x55\x70\x13\x51\x14\xc7\xe1\xd3\x52\x28\xda\ \x42\xf1\xe2\x5e\xdc\x5b\x28\x10\xdc\xdd\xdd\xdd\x0a\x45\x8a\xb4\ \xb8\x7b\x70\x29\x5e\x24\x50\xa0\xe8\xd9\xa4\x2a\xb8\xbb\xbb\xbb\ \xeb\x23\x93\x3d\x77\xee\xcb\xe6\x66\x98\x93\x17\xa6\xbf\xd7\xff\ \xe6\x9b\x7d\xc8\x9c\x99\x85\x14\x52\xfa\x52\x39\x5d\xfa\xf9\x80\ \x28\xc4\x95\x41\x26\x36\x30\x10\xa9\x19\xd9\x78\x80\xc7\x4e\x14\ \xed\xaa\xca\x02\x72\xa3\xec\x60\x25\x96\xb0\x1e\x65\x1b\x33\x70\ \x80\xfa\x36\x09\xd8\x46\x00\xa7\x5e\x17\xbe\xa0\xe8\x68\x19\x96\ \x50\x7d\xca\xee\x68\x02\xae\xb6\x03\x5e\x9e\x7d\x08\xb0\x8e\x02\ \x66\x45\x09\x38\x61\xe6\x02\x79\x05\x10\xf9\x3f\x03\x6e\x2e\x01\ \x25\x47\x2f\x39\xb0\x2a\x34\x90\x0d\x34\x8f\xa2\x7d\x32\x13\xf0\ \xb3\xa0\x68\x2a\x0f\xe8\x84\x22\xbc\x5c\x97\x05\x8c\x95\x80\x75\ \x3c\x0b\xe8\x2d\x81\x73\x66\x16\x60\x92\xc0\xdd\xe9\x0a\xc0\xd7\ \x29\xe0\x36\x0b\x29\x6b\x7c\x37\x05\x90\x8e\x80\xa4\xfd\x8e\xe7\ \x2c\xcb\x2e\xda\xe7\x2b\x1f\xcd\x3e\xa0\x68\x33\x09\x87\x14\x37\ \xc9\xbb\xdf\xbe\x47\xb1\x9f\xb4\x71\x85\x40\xd5\x42\x02\x62\x5a\ \xa8\xfe\xb1\x39\x2a\x37\x0a\x28\x08\xea\xc2\x50\xb4\xa2\x95\x17\ \x70\xaa\x85\xb2\x6d\xc5\x58\xc2\x3c\x94\xed\xc8\xc7\x01\xca\xa2\ \x2c\xb9\x27\x07\xe8\x81\xb2\x9b\x21\x0c\xc0\x6f\x8f\x04\x6c\xaf\ \x87\x30\x80\x60\x14\xe1\x9f\x27\xc7\xaa\x30\x80\xf9\x04\x1c\xbf\ \xf7\x2e\x71\x5d\x03\x60\xb4\x89\x80\x17\xab\xbb\x96\x70\x07\x46\ \x59\x91\x8a\xab\xe1\xe2\x55\xd6\x72\x39\x9c\xfd\xbb\x88\x9a\x32\ \x8f\x6a\x28\x8a\x26\x34\x63\x01\x5e\x16\xa4\x4e\xfd\x6c\xcc\x02\ \x02\x51\xf4\x74\x51\x6a\x16\xd0\x17\xa9\xe8\xc4\x3a\xc0\x02\x96\ \x22\x15\x3b\xd7\x9d\x05\x14\x41\xea\xbc\x16\x00\x2c\xa0\x35\x52\ \x6f\xa6\x01\x0f\x98\x48\x63\xb2\x56\x81\x07\xa4\xdd\x4e\x17\xfb\ \x6d\x08\xf0\x00\x7f\xda\xae\x1f\x2e\x0d\xea\xca\x13\xf0\x2a\x52\ \x79\x6a\x4e\x7f\x18\x0e\x4e\xea\x40\xc0\xd9\x08\x30\xb6\x40\x9f\ \x6e\xed\x2d\xac\x04\x7c\xeb\x05\x6f\x25\xe0\xf6\x4c\xe3\x9a\x9f\ \xde\xed\xf3\x20\x50\x94\x39\x08\x65\x8f\xfb\x1b\xf7\x26\xfa\x72\ \x27\x22\x8f\x0a\x18\x8c\xb2\xef\x71\x0d\x8d\xfb\x18\xfb\xf2\xed\ \x6b\x77\x50\x94\xc6\x82\xb2\x67\xe1\xc6\x73\xe0\xa1\xdf\xaa\x07\ \x5b\xb2\xff\xc3\xf7\xc2\x35\xad\xb6\x71\xaf\xa8\xbf\x5a\x42\x47\ \x50\xb6\x16\x45\x37\x12\x46\x82\xb1\xb6\xf6\xe9\x61\xb8\xb7\x1a\ \x30\x25\xe9\xc0\xef\xe7\xda\x50\x47\x4f\xb5\x44\xc4\x93\x3f\xda\ \x80\x93\xda\x1f\x39\x13\x73\xff\x65\xfc\x86\x9a\x0e\xd7\x8c\xcb\ \xf1\xd2\xfb\xc5\x9e\xe0\xac\x72\xc3\x66\x4f\xea\x5c\xcd\x47\xb1\ \x66\x9a\xf3\x6b\x4d\x71\x70\xa9\x02\xa9\x20\x25\xf7\x17\x09\xba\ \x39\x39\xea\xb1\x61\x75\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x0e\x25\xb1\xe7\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0e\x26\xb1\xe7\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x33\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x09\xbc\x6f\x27\ \x00\x77\ \x00\x61\x00\x74\x00\x65\x00\x72\x00\x6d\x00\x61\x00\x72\x00\x6b\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x09\xbd\x6f\x27\ \x00\x77\ \x00\x61\x00\x74\x00\x65\x00\x72\x00\x6d\x00\x61\x00\x72\x00\x6b\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x04\xc8\x47\xe7\ \x00\x62\ \x00\x61\x00\x6e\x00\x6e\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x07\x04\x9f\x87\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0e\x24\xb1\xe7\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\ \x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x7f\xaa\ \x00\x00\x00\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x8f\x19\ \x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xae\ \x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x46\xf2\ \x00\x00\x00\xc2\x00\x00\x00\x00\x00\x01\x00\x00\xe7\x4f\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x06\x57\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/classwizard_rc3.py0000644000076500000240000075612212536324427025226 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:30:25 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x06\x53\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x03\x00\x00\x00\x9d\xb7\x81\xec\ \x00\x00\x02\xeb\x50\x4c\x54\x45\x00\x00\x00\xff\x00\x00\xff\xff\ \xff\xff\xff\xff\xbf\x00\x00\xff\xff\xff\x99\x00\x00\xff\xff\xff\ \x9f\x00\x00\xaa\x00\x00\xb2\x00\x00\xff\xff\xff\xb9\x00\x00\xff\ \xff\xff\xaa\x00\x00\xff\xff\xff\xb0\x00\x00\xb6\x12\x12\xff\xff\ \xff\xaa\x00\x00\xae\x00\x00\xff\xff\xff\xff\xff\xff\xaa\x00\x00\ \xff\xff\xff\xad\x00\x00\xb3\x00\x00\xff\xff\xff\xad\x00\x00\xff\ \xff\xff\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xff\xac\x00\x00\xb0\x00\x00\xc4\x47\x47\xff\xff\xff\xff\xff\xff\ \xad\x00\x00\xaf\x00\x00\xb1\x00\x00\xff\xff\xff\xff\xff\xff\xae\ \x00\x00\xff\xff\xff\xae\x00\x00\xff\xff\xff\xae\x00\x00\xf2\xd5\ \xd5\xff\xff\xff\xff\xff\xff\xbf\x38\x38\xad\x00\x00\xff\xff\xff\ \xff\xff\xff\xff\xff\xff\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xaf\ \x00\x00\xb0\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xae\x00\ \x00\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xae\x00\x00\xaf\x00\x00\xff\xff\xff\xae\x00\x00\xd1\x70\x70\xae\ \x00\x00\xae\x02\x02\xaf\x00\x00\xff\xff\xff\xb0\x00\x00\xff\xff\ \xff\xda\x8c\x8c\xae\x00\x00\xff\xff\xff\xaf\x00\x00\xff\xff\xff\ \xaf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xae\x00\x00\xff\ \xff\xff\xd3\x75\x75\xaf\x00\x00\xc9\x51\x51\xae\x00\x00\xf4\xdc\ \xdc\xff\xff\xff\xaf\x00\x00\xae\x00\x00\xff\xff\xff\xae\x00\x00\ \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe6\xb2\xb2\xff\ \xff\xff\xae\x00\x00\xff\xff\xff\xaf\x00\x00\xaf\x00\x00\xae\x00\ \x00\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x71\x71\ \xaf\x00\x00\xff\xff\xff\xba\x27\x27\xae\x00\x00\xaf\x00\x00\xfa\ \xf4\xf4\xd9\x87\x87\xff\xff\xff\xff\xff\xff\xba\x24\x24\xff\xff\ \xff\xb8\x1f\x1f\xff\xff\xff\xf3\xd9\xd9\xff\xff\xff\xb7\x1a\x1a\ \xae\x00\x00\xae\x00\x00\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xae\ \x00\x00\xaf\x00\x00\xcc\x5c\x5c\xff\xff\xff\xb7\x1b\x1b\xb2\x0a\ \x0a\xaf\x03\x03\xae\x00\x00\xff\xff\xff\xff\xff\xff\xaf\x02\x02\ \xff\xff\xff\xb0\x02\x02\xff\xff\xff\xff\xff\xff\xcd\x63\x63\xaf\ \x00\x00\xaf\x01\x01\xff\xff\xff\xaf\x00\x00\xb1\x08\x08\xae\x00\ \x00\xff\xff\xff\xd1\x6d\x6d\xaf\x00\x00\xb4\x10\x10\xe6\xae\xae\ \xae\x00\x00\xaf\x00\x00\xff\xff\xff\xff\xff\xff\xea\xbd\xbd\xfb\ \xf4\xf4\xae\x00\x00\xaf\x00\x00\xba\x22\x22\xeb\xc1\xc1\xff\xff\ \xff\xcb\x5a\x5a\xda\x8b\x8b\xff\xff\xff\xaf\x00\x00\xff\xff\xff\ \xba\x22\x22\xaf\x01\x01\xbf\x32\x32\xc6\x48\x48\xe8\xb7\xb7\xf8\ \xea\xea\xfa\xf0\xf0\xfb\xf2\xf2\xff\xfe\xfe\xb0\x02\x02\xc7\x4c\ \x4c\xb7\x1a\x1a\xb0\x04\x04\xbb\x26\x26\xbb\x27\x27\xb1\x05\x05\ \xbf\x33\x33\xc0\x35\x35\xc2\x3b\x3b\xc2\x3e\x3e\xc4\x44\x44\xb1\ \x06\x06\xb7\x19\x19\xc8\x4f\x4f\xc9\x52\x52\xca\x57\x57\xcb\x58\ \x58\xcb\x59\x59\xcd\x61\x61\xce\x62\x62\xcf\x66\x66\xd0\x6a\x6a\ \xd3\x74\x74\xd4\x75\x75\xd6\x7b\x7b\xd7\x7e\x7e\xd7\x81\x81\xdc\ \x8f\x8f\xe1\x9e\x9e\xe1\x9f\x9f\xe2\xa2\xa2\xe4\xaa\xaa\xe5\xab\ \xab\xe6\xb0\xb0\xe7\xb1\xb1\xe7\xb4\xb4\xb2\x09\x09\xeb\xbe\xbe\ \xec\xc4\xc4\xf0\xd0\xd0\xf2\xd4\xd4\xf2\xd5\xd5\xf4\xdb\xdb\xf5\ \xde\xde\xf5\xe0\xe0\xf7\xe4\xe4\xb2\x0b\x0b\xf9\xec\xec\xb3\x0e\ \x0e\xb6\x15\x15\xfc\xf7\xf7\xfe\xfb\xfb\xfe\xfc\xfc\xb6\x16\x16\ \xb6\x17\x17\xdc\x97\x3c\x09\x00\x00\x00\xb6\x74\x52\x4e\x53\x00\ \x01\x01\x03\x04\x04\x05\x08\x08\x09\x0a\x0a\x0b\x0b\x0c\x0d\x0d\ \x0e\x0f\x0f\x13\x13\x14\x15\x15\x16\x1b\x1b\x1c\x1c\x1d\x1e\x1f\ \x21\x24\x25\x27\x27\x2a\x2b\x2c\x2d\x2e\x2f\x32\x36\x36\x39\x3b\ \x3c\x3d\x40\x41\x44\x45\x48\x4b\x4c\x4d\x4e\x4f\x50\x54\x54\x55\ \x5a\x5c\x5d\x5d\x60\x61\x63\x65\x67\x67\x68\x6b\x6c\x6c\x6d\x70\ \x71\x73\x78\x7c\x7e\x80\x81\x83\x84\x8a\x8b\x8c\x8c\x8d\x91\x93\ \x95\x95\x95\x96\x98\x99\x9c\x9d\x9e\xa4\xa6\xa7\xa7\xa8\xa8\xa9\ \xaa\xac\xad\xad\xb0\xb3\xb3\xb4\xb7\xbb\xbc\xbd\xbd\xc0\xc1\xc4\ \xc6\xca\xcb\xcc\xcd\xcd\xd0\xd2\xd4\xd7\xd8\xd9\xdb\xdc\xdc\xdd\ \xde\xe0\xe1\xe4\xe5\xe6\xe7\xe8\xe9\xe9\xea\xef\xf0\xf0\xf1\xf3\ \xf3\xf5\xf6\xf6\xf7\xf7\xf7\xf8\xfa\xfa\xfb\xfb\xfb\xfb\xfc\xfc\ \xfd\xfd\xfe\xfe\xfe\xa0\xb1\xff\x8a\x00\x00\x02\x61\x49\x44\x41\ \x54\x78\x5e\xdd\xd7\x55\x70\x13\x51\x14\xc7\xe1\xd3\x52\x28\xda\ \x42\xf1\xe2\x5e\xdc\x5b\x28\x10\xdc\xdd\xdd\xdd\x0a\x45\x8a\xb4\ \xb8\x7b\x70\x29\x5e\x24\x50\xa0\xe8\xd9\xa4\x2a\xb8\xbb\xbb\xbb\ \xeb\x23\x93\x3d\x77\xee\xcb\xe6\x66\x98\x93\x17\xa6\xbf\xd7\xff\ \xe6\x9b\x7d\xc8\x9c\x99\x85\x14\x52\xfa\x52\x39\x5d\xfa\xf9\x80\ \x28\xc4\x95\x41\x26\x36\x30\x10\xa9\x19\xd9\x78\x80\xc7\x4e\x14\ \xed\xaa\xca\x02\x72\xa3\xec\x60\x25\x96\xb0\x1e\x65\x1b\x33\x70\ \x80\xfa\x36\x09\xd8\x46\x00\xa7\x5e\x17\xbe\xa0\xe8\x68\x19\x96\ \x50\x7d\xca\xee\x68\x02\xae\xb6\x03\x5e\x9e\x7d\x08\xb0\x8e\x02\ \x66\x45\x09\x38\x61\xe6\x02\x79\x05\x10\xf9\x3f\x03\x6e\x2e\x01\ \x25\x47\x2f\x39\xb0\x2a\x34\x90\x0d\x34\x8f\xa2\x7d\x32\x13\xf0\ \xb3\xa0\x68\x2a\x0f\xe8\x84\x22\xbc\x5c\x97\x05\x8c\x95\x80\x75\ \x3c\x0b\xe8\x2d\x81\x73\x66\x16\x60\x92\xc0\xdd\xe9\x0a\xc0\xd7\ \x29\xe0\x36\x0b\x29\x6b\x7c\x37\x05\x90\x8e\x80\xa4\xfd\x8e\xe7\ \x2c\xcb\x2e\xda\xe7\x2b\x1f\xcd\x3e\xa0\x68\x33\x09\x87\x14\x37\ \xc9\xbb\xdf\xbe\x47\xb1\x9f\xb4\x71\x85\x40\xd5\x42\x02\x62\x5a\ \xa8\xfe\xb1\x39\x2a\x37\x0a\x28\x08\xea\xc2\x50\xb4\xa2\x95\x17\ \x70\xaa\x85\xb2\x6d\xc5\x58\xc2\x3c\x94\xed\xc8\xc7\x01\xca\xa2\ \x2c\xb9\x27\x07\xe8\x81\xb2\x9b\x21\x0c\xc0\x6f\x8f\x04\x6c\xaf\ \x87\x30\x80\x60\x14\xe1\x9f\x27\xc7\xaa\x30\x80\xf9\x04\x1c\xbf\ \xf7\x2e\x71\x5d\x03\x60\xb4\x89\x80\x17\xab\xbb\x96\x70\x07\x46\ \x59\x91\x8a\xab\xe1\xe2\x55\xd6\x72\x39\x9c\xfd\xbb\x88\x9a\x32\ \x8f\x6a\x28\x8a\x26\x34\x63\x01\x5e\x16\xa4\x4e\xfd\x6c\xcc\x02\ \x02\x51\xf4\x74\x51\x6a\x16\xd0\x17\xa9\xe8\xc4\x3a\xc0\x02\x96\ \x22\x15\x3b\xd7\x9d\x05\x14\x41\xea\xbc\x16\x00\x2c\xa0\x35\x52\ \x6f\xa6\x01\x0f\x98\x48\x63\xb2\x56\x81\x07\xa4\xdd\x4e\x17\xfb\ \x6d\x08\xf0\x00\x7f\xda\xae\x1f\x2e\x0d\xea\xca\x13\xf0\x2a\x52\ \x79\x6a\x4e\x7f\x18\x0e\x4e\xea\x40\xc0\xd9\x08\x30\xb6\x40\x9f\ \x6e\xed\x2d\xac\x04\x7c\xeb\x05\x6f\x25\xe0\xf6\x4c\xe3\x9a\x9f\ \xde\xed\xf3\x20\x50\x94\x39\x08\x65\x8f\xfb\x1b\xf7\x26\xfa\x72\ \x27\x22\x8f\x0a\x18\x8c\xb2\xef\x71\x0d\x8d\xfb\x18\xfb\xf2\xed\ \x6b\x77\x50\x94\xc6\x82\xb2\x67\xe1\xc6\x73\xe0\xa1\xdf\xaa\x07\ \x5b\xb2\xff\xc3\xf7\xc2\x35\xad\xb6\x71\xaf\xa8\xbf\x5a\x42\x47\ \x50\xb6\x16\x45\x37\x12\x46\x82\xb1\xb6\xf6\xe9\x61\xb8\xb7\x1a\ \x30\x25\xe9\xc0\xef\xe7\xda\x50\x47\x4f\xb5\x44\xc4\x93\x3f\xda\ \x80\x93\xda\x1f\x39\x13\x73\xff\x65\xfc\x86\x9a\x0e\xd7\x8c\xcb\ \xf1\xd2\xfb\xc5\x9e\xe0\xac\x72\xc3\x66\x4f\xea\x5c\xcd\x47\xb1\ \x66\x9a\xf3\x6b\x4d\x71\x70\xa9\x02\xa9\x20\x25\xf7\x17\x09\xba\ \x39\x39\xea\xb1\x61\x75\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x53\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x03\x00\x00\x00\x9d\xb7\x81\xec\ \x00\x00\x02\xeb\x50\x4c\x54\x45\x00\x00\x00\xff\x00\x00\xff\xff\ \xff\xff\xff\xff\xbf\x00\x00\xff\xff\xff\xcc\x00\x00\xff\xff\xff\ \xdf\x00\x00\xe2\x00\x00\xe5\x00\x00\xff\xff\xff\xe7\x00\x00\xff\ \xff\xff\xd4\x00\x00\xff\xff\xff\xd7\x00\x00\xda\x12\x12\xff\xff\ \xff\xdd\x00\x00\xe4\x00\x00\xff\xff\xff\xff\xff\xff\xda\x00\x00\ \xff\xff\xff\xdc\x00\x00\xe2\x00\x00\xff\xff\xff\xda\x00\x00\xff\ \xff\xff\xdb\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xff\xdc\x00\x00\xde\x00\x00\xe4\x47\x47\xff\xff\xff\xff\xff\xff\ \xdc\x00\x00\xdd\x00\x00\xdd\x00\x00\xff\xff\xff\xff\xff\xff\xdd\ \x00\x00\xff\xff\xff\xdf\x00\x00\xff\xff\xff\xdd\x00\x00\xfa\xd5\ \xd5\xff\xff\xff\xff\xff\xff\xe4\x38\x38\xdd\x00\x00\xff\xff\xff\ \xff\xff\xff\xff\xff\xff\xdd\x00\x00\xff\xff\xff\xff\xff\xff\xdf\ \x00\x00\xdd\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdd\x00\ \x00\xde\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xde\x00\x00\xde\x00\x00\xff\xff\xff\xdf\x00\x00\xeb\x70\x70\xdd\ \x00\x00\xe0\x02\x02\xde\x00\x00\xff\xff\xff\xdf\x00\x00\xff\xff\ \xff\xf0\x8c\x8c\xde\x00\x00\xff\xff\xff\xdf\x00\x00\xff\xff\xff\ \xdf\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xde\x00\x00\xff\ \xff\xff\xec\x75\x75\xdf\x00\x00\xe8\x51\x51\xde\x00\x00\xf9\xdc\ \xdc\xff\xff\xff\xde\x00\x00\xdf\x00\x00\xff\xff\xff\xde\x00\x00\ \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\xb2\xb2\xff\ \xff\xff\xdf\x00\x00\xff\xff\xff\xdf\x00\x00\xdf\x00\x00\xde\x00\ \x00\xde\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\x71\x71\ \xde\x00\x00\xff\xff\xff\xe3\x27\x27\xde\x00\x00\xde\x00\x00\xfd\ \xf4\xf4\xf0\x87\x87\xff\xff\xff\xff\xff\xff\xe3\x24\x24\xff\xff\ \xff\xe3\x1f\x1f\xff\xff\xff\xfa\xd9\xd9\xff\xff\xff\xe2\x1a\x1a\ \xdf\x00\x00\xde\x00\x00\xde\x00\x00\xff\xff\xff\xff\xff\xff\xdf\ \x00\x00\xde\x00\x00\xea\x5c\x5c\xff\xff\xff\xe2\x1b\x1b\xe0\x0a\ \x0a\xdf\x03\x03\xde\x00\x00\xff\xff\xff\xff\xff\xff\xde\x02\x02\ \xff\xff\xff\xdf\x02\x02\xff\xff\xff\xff\xff\xff\xeb\x63\x63\xdf\ \x00\x00\xdf\x01\x01\xff\xff\xff\xdf\x00\x00\xe0\x08\x08\xde\x00\ \x00\xff\xff\xff\xec\x6d\x6d\xde\x00\x00\xe1\x10\x10\xf4\xae\xae\ \xdf\x00\x00\xdf\x00\x00\xff\xff\xff\xff\xff\xff\xf6\xbd\xbd\xfd\ \xf4\xf4\xdf\x00\x00\xde\x00\x00\xe3\x22\x22\xf6\xc1\xc1\xff\xff\ \xff\xe9\x5a\x5a\xf0\x8b\x8b\xff\xff\xff\xdf\x00\x00\xff\xff\xff\ \xe3\x22\x22\xdf\x01\x01\xe5\x32\x32\xe8\x48\x48\xf6\xb7\xb7\xfc\ \xea\xea\xfd\xf0\xf0\xfd\xf2\xf2\xff\xfe\xfe\xdf\x02\x02\xe9\x4c\ \x4c\xe2\x1a\x1a\xe0\x04\x04\xe4\x26\x26\xe4\x27\x27\xe0\x05\x05\ \xe5\x33\x33\xe6\x35\x35\xe6\x3b\x3b\xe7\x3e\x3e\xe8\x44\x44\xe0\ \x06\x06\xe2\x19\x19\xe9\x4f\x4f\xe9\x52\x52\xea\x57\x57\xea\x58\ \x58\xea\x59\x59\xeb\x61\x61\xeb\x62\x62\xec\x66\x66\xec\x6a\x6a\ \xee\x74\x74\xee\x75\x75\xee\x7b\x7b\xef\x7e\x7e\xef\x81\x81\xf1\ \x8f\x8f\xf3\x9e\x9e\xf3\x9f\x9f\xf3\xa2\xa2\xf4\xaa\xaa\xf4\xab\ \xab\xf5\xb0\xb0\xf5\xb1\xb1\xf6\xb4\xb4\xe0\x09\x09\xf7\xbe\xbe\ \xf8\xc4\xc4\xf9\xd0\xd0\xfa\xd4\xd4\xfa\xd5\xd5\xfa\xdb\xdb\xfb\ \xde\xde\xfb\xe0\xe0\xfc\xe4\xe4\xe0\x0b\x0b\xfd\xec\xec\xe1\x0e\ \x0e\xe2\x15\x15\xfe\xf7\xf7\xfe\xfb\xfb\xff\xfc\xfc\xe2\x16\x16\ \xe2\x17\x17\x66\xee\x72\x60\x00\x00\x00\xb6\x74\x52\x4e\x53\x00\ \x01\x01\x03\x04\x04\x05\x08\x08\x09\x0a\x0a\x0b\x0b\x0c\x0d\x0d\ \x0e\x0f\x0f\x13\x13\x14\x15\x15\x16\x1b\x1b\x1c\x1c\x1d\x1e\x1f\ \x21\x24\x25\x27\x27\x2a\x2b\x2c\x2d\x2e\x2f\x32\x36\x36\x39\x3b\ \x3c\x3d\x40\x41\x44\x45\x48\x4b\x4c\x4d\x4e\x4f\x50\x54\x54\x55\ \x5a\x5c\x5d\x5d\x60\x61\x63\x65\x67\x67\x68\x6b\x6c\x6c\x6d\x70\ \x71\x73\x78\x7c\x7e\x80\x81\x83\x84\x8a\x8b\x8c\x8c\x8d\x91\x93\ \x95\x95\x95\x96\x98\x99\x9c\x9d\x9e\xa4\xa6\xa7\xa7\xa8\xa8\xa9\ \xaa\xac\xad\xad\xb0\xb3\xb3\xb4\xb7\xbb\xbc\xbd\xbd\xc0\xc1\xc4\ \xc6\xca\xcb\xcc\xcd\xcd\xd0\xd2\xd4\xd7\xd8\xd9\xdb\xdc\xdc\xdd\ \xde\xe0\xe1\xe4\xe5\xe6\xe7\xe8\xe9\xe9\xea\xef\xf0\xf0\xf1\xf3\ \xf3\xf5\xf6\xf6\xf7\xf7\xf7\xf8\xfa\xfa\xfb\xfb\xfb\xfb\xfc\xfc\ \xfd\xfd\xfe\xfe\xfe\xa0\xb1\xff\x8a\x00\x00\x02\x61\x49\x44\x41\ \x54\x78\x5e\xdd\xd7\x55\x70\x13\x51\x14\xc7\xe1\xd3\x52\x28\xda\ \x42\xf1\xe2\x5e\xdc\x5b\x28\x10\xdc\xdd\xdd\xdd\x0a\x45\x8a\xb4\ \xb8\x7b\x70\x29\x5e\x24\x50\xa0\xe8\xd9\xa4\x2a\xb8\xbb\xbb\xbb\ \xeb\x23\x93\x3d\x77\xee\xcb\xe6\x66\x98\x93\x17\xa6\xbf\xd7\xff\ \xe6\x9b\x7d\xc8\x9c\x99\x85\x14\x52\xfa\x52\x39\x5d\xfa\xf9\x80\ \x28\xc4\x95\x41\x26\x36\x30\x10\xa9\x19\xd9\x78\x80\xc7\x4e\x14\ \xed\xaa\xca\x02\x72\xa3\xec\x60\x25\x96\xb0\x1e\x65\x1b\x33\x70\ \x80\xfa\x36\x09\xd8\x46\x00\xa7\x5e\x17\xbe\xa0\xe8\x68\x19\x96\ \x50\x7d\xca\xee\x68\x02\xae\xb6\x03\x5e\x9e\x7d\x08\xb0\x8e\x02\ \x66\x45\x09\x38\x61\xe6\x02\x79\x05\x10\xf9\x3f\x03\x6e\x2e\x01\ \x25\x47\x2f\x39\xb0\x2a\x34\x90\x0d\x34\x8f\xa2\x7d\x32\x13\xf0\ \xb3\xa0\x68\x2a\x0f\xe8\x84\x22\xbc\x5c\x97\x05\x8c\x95\x80\x75\ \x3c\x0b\xe8\x2d\x81\x73\x66\x16\x60\x92\xc0\xdd\xe9\x0a\xc0\xd7\ \x29\xe0\x36\x0b\x29\x6b\x7c\x37\x05\x90\x8e\x80\xa4\xfd\x8e\xe7\ \x2c\xcb\x2e\xda\xe7\x2b\x1f\xcd\x3e\xa0\x68\x33\x09\x87\x14\x37\ \xc9\xbb\xdf\xbe\x47\xb1\x9f\xb4\x71\x85\x40\xd5\x42\x02\x62\x5a\ \xa8\xfe\xb1\x39\x2a\x37\x0a\x28\x08\xea\xc2\x50\xb4\xa2\x95\x17\ \x70\xaa\x85\xb2\x6d\xc5\x58\xc2\x3c\x94\xed\xc8\xc7\x01\xca\xa2\ \x2c\xb9\x27\x07\xe8\x81\xb2\x9b\x21\x0c\xc0\x6f\x8f\x04\x6c\xaf\ \x87\x30\x80\x60\x14\xe1\x9f\x27\xc7\xaa\x30\x80\xf9\x04\x1c\xbf\ \xf7\x2e\x71\x5d\x03\x60\xb4\x89\x80\x17\xab\xbb\x96\x70\x07\x46\ \x59\x91\x8a\xab\xe1\xe2\x55\xd6\x72\x39\x9c\xfd\xbb\x88\x9a\x32\ \x8f\x6a\x28\x8a\x26\x34\x63\x01\x5e\x16\xa4\x4e\xfd\x6c\xcc\x02\ \x02\x51\xf4\x74\x51\x6a\x16\xd0\x17\xa9\xe8\xc4\x3a\xc0\x02\x96\ \x22\x15\x3b\xd7\x9d\x05\x14\x41\xea\xbc\x16\x00\x2c\xa0\x35\x52\ \x6f\xa6\x01\x0f\x98\x48\x63\xb2\x56\x81\x07\xa4\xdd\x4e\x17\xfb\ \x6d\x08\xf0\x00\x7f\xda\xae\x1f\x2e\x0d\xea\xca\x13\xf0\x2a\x52\ \x79\x6a\x4e\x7f\x18\x0e\x4e\xea\x40\xc0\xd9\x08\x30\xb6\x40\x9f\ \x6e\xed\x2d\xac\x04\x7c\xeb\x05\x6f\x25\xe0\xf6\x4c\xe3\x9a\x9f\ \xde\xed\xf3\x20\x50\x94\x39\x08\x65\x8f\xfb\x1b\xf7\x26\xfa\x72\ \x27\x22\x8f\x0a\x18\x8c\xb2\xef\x71\x0d\x8d\xfb\x18\xfb\xf2\xed\ \x6b\x77\x50\x94\xc6\x82\xb2\x67\xe1\xc6\x73\xe0\xa1\xdf\xaa\x07\ \x5b\xb2\xff\xc3\xf7\xc2\x35\xad\xb6\x71\xaf\xa8\xbf\x5a\x42\x47\ \x50\xb6\x16\x45\x37\x12\x46\x82\xb1\xb6\xf6\xe9\x61\xb8\xb7\x1a\ \x30\x25\xe9\xc0\xef\xe7\xda\x50\x47\x4f\xb5\x44\xc4\x93\x3f\xda\ \x80\x93\xda\x1f\x39\x13\x73\xff\x65\xfc\x86\x9a\x0e\xd7\x8c\xcb\ \xf1\xd2\xfb\xc5\x9e\xe0\xac\x72\xc3\x66\x4f\xea\x5c\xcd\x47\xb1\ \x66\x9a\xf3\x6b\x4d\x71\x70\xa9\x02\xa9\x20\x25\xf7\x17\x09\xba\ \x39\x39\xea\xb1\x61\x75\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x3a\x40\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\xa8\x00\x00\x01\x77\x08\x03\x00\x00\x00\x06\x8a\xf0\xc8\ \x00\x00\x02\xd9\x50\x4c\x54\x45\xad\xac\xff\xc4\x90\xc4\xe2\x5a\ \x63\xe6\xc1\xd5\xe9\x9c\xa7\xb8\xb6\xfe\xc8\xc6\xfe\xcb\xcb\xfe\ \xbb\xbb\xff\xc0\xbe\xfe\xc3\xc3\xfe\xd2\xd2\xff\xd8\xd7\xff\xdc\ \xdb\xfe\xb3\xb3\xfe\xe2\xe2\xfe\xb0\xae\xfe\xd0\xce\xfe\xeb\xeb\ \xfe\xf3\xf3\xfe\xfc\xfb\xfe\xdd\x06\x08\xda\x22\x2c\xdc\x0d\x12\ \xb7\x8f\xd1\xe0\xde\xfe\xea\x5a\x5a\xdd\x09\x0b\xdd\x19\x1e\xfc\ \xec\xec\xde\x00\x00\xf0\xef\xfd\xe1\x13\x13\xbf\xa1\xde\xbb\xb2\ \xf4\xe3\x23\x23\xe5\x32\x32\xe6\x3a\x3a\xe6\x41\x42\xcc\xc3\xf4\ \xe9\x53\x53\xdc\x14\x1a\xbd\x81\xbb\xec\x6c\x6c\xed\x72\x72\xee\ \x7b\x7b\xf2\x9b\x9b\xf2\xa2\xa2\xd2\x81\xa2\xf4\xac\xac\xf6\xb9\ \xb9\xfa\xdb\xdb\xfa\xf5\xfa\xfb\xe2\xe2\xdd\x10\x15\xbd\xab\xeb\ \xfd\xf2\xf3\xe4\x2c\x2c\xeb\x63\x63\xf0\x8b\x8b\xf5\xcd\xd1\xd6\ \x2b\x3c\xd8\x2d\x3b\xd8\x46\x58\xca\x56\x7b\xd9\x25\x31\xd9\x34\ \x43\xd9\x42\x52\xd9\x6d\x83\xda\x1b\x25\xca\x75\x9e\xda\x31\x3d\ \xda\x52\x64\xdb\x1a\x22\xdb\x85\x9d\xb2\xa9\xf5\xdc\xd3\xf5\xcc\ \x69\x8d\xcc\x84\xad\xcc\x8b\xb4\xbb\xa3\xe3\xcd\x4a\x69\xdd\x50\ \x5e\xb7\xb0\xf7\xdf\x30\x37\xcd\x5a\x7b\xcd\xa1\xcd\xe2\x1a\x1a\ \xce\x71\x94\xce\xc0\xef\xe4\xaa\xbd\xcf\x39\x54\xcf\x40\x5b\xcf\ \xba\xe7\xd0\x5f\x7e\xe8\x45\x45\xe8\x4c\x4c\xd0\xad\xd8\xe9\x6f\ \x74\xbe\x8a\xc3\xd1\x56\x71\xea\xe6\xfb\xd2\x7a\x9a\xc4\xab\xe3\ \xd2\x89\xab\xec\x76\x78\xd2\xcb\xf7\xc5\x83\xb4\xee\x8f\x91\xef\ \x81\x81\xf0\x84\x84\xf8\xcb\xcb\xd3\x44\x5c\xf1\x93\x93\xd3\x53\ \x6d\xd4\x35\x49\xd4\x4b\x62\xd4\x69\x84\xf4\xe2\xe9\xf5\xb3\xb3\ \xe0\x0b\x0b\xd4\xc2\xeb\xf6\xd8\xdc\xf7\xc3\xc3\xd5\x62\x7b\xf9\ \xd4\xd4\xc8\xbd\xf3\xd5\xa5\xc8\xd6\x27\x37\xbe\x9a\xd5\xd7\x49\ \x5d\xd4\x5a\x73\xca\x86\xb2\xcb\x74\x9b\xf8\xc5\xc5\xd6\x39\x4c\ \xce\x80\xa6\xcb\x61\x85\xcd\x9a\xc4\xdf\xa8\xc0\xd3\x9a\xbe\xcb\ \x7a\xa2\xe4\x79\x84\xd4\x4e\x67\xd5\x40\x54\xe6\x73\x7c\xc4\xba\ \xf4\xe6\xc6\xda\xe7\x6a\x70\xe7\xb8\xc9\xc5\x66\x92\xe8\x5e\x60\ \xe8\x84\x8c\xc5\x73\xa1\xcd\x92\xbb\xb6\x9b\xe0\xcd\xb0\xde\xeb\ \xad\xb7\xeb\xe2\xf4\xc5\x8a\xbb\xd7\xb5\xd8\xcd\xac\xda\xc5\xa0\ \xd5\xed\xa3\xaa\xcd\xba\xea\xce\x55\x76\xc6\x5c\x86\xc8\x92\xc1\ \xd9\x59\x6d\xf0\xac\xb1\xc8\xb3\xe8\xd9\x87\xa1\xf1\x9e\xa1\xc0\ \xb6\xf4\xb9\x87\xc6\xf2\xbf\xc5\xda\x29\x35\xc2\x9b\xd3\xca\x5c\ \x81\xf4\xe9\xf1\xd0\x6d\x8d\xdb\x4b\x5a\xd0\xa6\xd0\xca\x64\x8c\ \xdc\x3a\x46\xc2\xa2\xda\xde\x98\xaf\xd1\x8d\xb1\xd1\xc5\xf1\xb9\ \xa6\xe9\xd2\xbb\xe5\xd2\x9d\xc2\xcc\xa5\xd2\xde\xb1\xcc\xd3\x74\ \x92\xe1\x3c\x42\xe3\x48\x4e\xcb\x9d\xcb\xe4\x64\x6d\xe2\x4e\x56\ \xc4\x7b\xac\xcb\xb2\xe2\xd4\x31\x44\xbf\x94\xce\xbc\x9c\xdb\xca\ \xa8\xd8\xd5\x93\xb4\xcd\x45\x63\xc5\x6c\x98\xb9\x8e\xce\xd0\x6f\ \x90\xc4\x7f\xb0\xda\x3d\x4c\xb7\xab\xf2\xda\x73\x89\xf4\xc6\xcb\ \xca\x6c\x93\xd8\x78\x92\xd4\x70\x8d\xc3\xb2\xec\xec\x92\x97\xec\ \xd3\xe3\xf6\xde\xe3\xc5\x88\xba\xd1\x86\xa9\xe1\x82\x92\xf8\xd3\ \xd5\xe1\x9b\xaf\xe1\x9c\xb0\xd3\x2e\x42\xd0\xaa\xd3\xdb\x93\xac\ \xdb\xc7\xe9\xe2\xdb\xf7\xc7\x79\xa7\xdb\x61\x74\xe1\xbd\xd5\xd1\ \x46\x61\xe4\x54\x5a\xc9\x7e\xa9\xd2\x3a\x52\xe8\xcf\xe2\xc2\x95\ \xcc\xbd\x3d\xa6\xd0\x00\x00\x37\x22\x49\x44\x41\x54\x78\x5e\x94\ \x5d\xe3\xa3\x6d\xbb\xae\x5f\x5f\x06\xa7\xb5\x8c\x6d\xdb\x38\xb6\ \x6d\xdb\xb6\x8d\x4b\xdb\xb6\x6d\x1b\xcf\xb6\xed\xf7\x17\xbc\x36\ \x0d\x9a\xb6\xf3\xec\xfb\x32\x30\xc7\x39\x9f\x7e\x3b\x6a\x92\xa6\ \x59\x13\x8d\x46\xb3\x21\xd4\x33\x4f\x51\x98\xc7\x5e\xe6\x06\xc2\ \x9f\x1c\x1e\xf3\xae\xeb\xc2\x5c\xf6\xd7\x7e\xd5\x79\x5e\x0b\x55\ \x95\x79\x95\xf6\x2a\xcd\xaf\xa2\xb6\xbd\xe1\x81\xbb\xdd\xc6\x17\ \xd1\x04\xde\xe6\x32\xb7\x7d\x14\x35\x9a\x4d\x0b\xb5\xc9\x48\x0d\ \x4c\xc1\x09\x1f\x44\xb9\x45\x57\xd4\x16\x2a\x80\x74\x6f\x86\x59\ \xd9\x57\x89\x77\x09\x28\xe1\x3b\xa0\xb6\x80\x84\x87\xde\x02\xb6\ \x6b\x91\x9a\x4b\x93\x05\x69\x51\x36\x89\xa3\x8c\x14\xa0\xf6\x0a\ \x26\x00\x68\x2e\x8b\x37\x37\x2f\xe0\x26\x22\x65\xac\x15\x20\x23\ \xa4\xfc\x12\x94\x02\x55\xa1\x14\xa8\x70\x75\x3d\x84\xd3\xee\x87\ \x50\x32\x4e\x07\xd5\x62\xec\x99\x87\x05\x2f\x84\x38\x9d\x0a\xe4\ \x9a\xa1\x55\x55\x02\x5f\xe1\x42\xcc\x4c\x22\x7a\x7a\x29\x98\x5d\ \x80\x08\xfc\xc4\x6f\xf3\xd5\xf5\x44\x6f\x2f\x0f\x29\x0a\xbc\x41\ \x52\xef\x11\x53\x73\x50\x51\x44\x59\xd7\x80\x95\x18\x5a\xe5\x16\ \x68\xe5\xae\x4a\x31\x34\xa2\x76\x3b\x33\x44\xf2\xcf\x80\xab\x88\ \xb4\x0b\x00\x01\x62\x2c\xfa\xd0\x9a\x0a\x78\x03\x4a\x78\x31\x59\ \x84\xcc\x49\x03\xba\xce\x45\x4b\xf3\xaa\x26\x9c\xc0\x55\xd4\x4e\ \xf3\x25\x5c\xcd\x32\x10\x37\x7c\x65\x1e\x3f\xb3\x0c\x65\x0e\x60\ \x01\x24\x50\x37\x30\x26\x43\xc8\x50\x11\x7e\xd1\x13\xa3\x6f\x30\ \x47\xf9\x05\x1c\x35\x6f\xa0\x9c\xde\x15\xca\xbf\x34\x1c\xa5\x4b\ \x11\x8b\x3d\x03\x8c\x09\x1d\xed\x76\x01\x30\x1a\x13\x21\x26\x1d\ \x4d\xb9\x27\x23\x6f\xf8\x70\xc2\x17\x9e\x8a\x73\xaa\xdd\x6f\x0e\ \x97\x11\x3d\x19\x93\x98\x3d\x72\x52\xc3\xcd\x58\x53\xdb\xb1\x92\ \x12\x47\xe1\x01\x07\xd5\x15\x83\x6a\x92\xe4\x9b\xca\x3d\x59\x96\ \xba\x47\x48\xbc\x28\xfe\xb2\xdc\xf3\xdc\x09\x1d\x59\x4a\x30\xe1\ \xb7\xaa\xc4\x90\x18\xa1\xe1\x2a\x50\x3b\xd3\x48\xbb\xe4\x9d\x62\ \x1d\x05\x27\xca\x68\xc5\xe8\x41\x3f\x01\xab\x46\x8a\x9c\x25\xbe\ \x16\x06\x65\x85\x1c\x05\xfd\xb4\xf0\x1c\xd8\x5a\x98\x29\x18\xf9\ \xdb\x82\x6c\xdb\x9b\xd9\xda\x15\xd3\x07\x90\xf4\x9a\x4e\x19\x53\ \x4f\x7c\xbd\x05\x0b\x62\x17\x1d\x65\x63\xd2\xc2\xd7\xeb\x52\x69\ \x11\x03\x4c\xb8\x2b\x73\x31\x3a\x7e\x80\xa3\x68\xfd\x9a\xa5\xa2\ \x9f\x11\x47\x09\x6a\xec\x49\xc1\x90\x64\x01\x45\xf7\xe4\x50\xb2\ \xe8\x11\x68\x2e\xa2\x07\x69\x03\xcc\x94\x8a\xb2\x5b\x02\x9e\x66\ \x4a\x43\xb5\x2d\x85\x40\xc5\xdd\xdb\x0b\x17\xa4\x1e\x72\xd4\x17\ \x7d\x8d\x70\x59\xec\xc0\x50\x54\xd3\xca\x88\x9f\x78\xa9\x04\xcf\ \xfe\x29\x63\x96\x66\x4c\x6d\x65\xf9\x5d\xb8\x49\x41\xbb\x91\x1f\ \x25\xac\x42\x80\x17\x48\x61\xcd\x79\xbd\x17\x99\xc3\x0f\x9a\x53\ \x55\x3b\xab\x27\xb0\xf0\x1d\x53\x1b\x31\x02\x47\x05\x25\x3a\x7c\ \x44\x1a\xc5\x25\xca\x92\x88\xa1\x12\x96\x68\xca\x91\x9f\xf6\x8d\ \xbe\x34\x17\xc1\xa3\xf4\x79\x0d\x0d\x9c\x13\xf9\xd0\x8c\x89\x25\ \x2f\xb6\x84\x3a\xda\x0e\x84\x3f\x8d\xc6\xa4\xa3\x12\x40\x09\x70\ \xc9\xea\x1b\x8e\x9b\x68\xf4\xa2\xa6\x20\x75\x74\xf6\x39\x30\x14\ \xf8\xa9\x38\xaa\xbc\x53\x66\x6e\x7b\x39\xfd\x7c\xfb\x51\x67\x31\ \x47\xc5\x3d\xbd\x94\x31\x01\x89\x9e\x5a\xa2\x30\x4f\xcc\x3e\x87\ \xa7\x66\xd1\x13\x54\xa2\xca\x3e\x3e\x59\x8c\x62\xf2\x80\x90\x19\ \xba\xe2\x97\x4f\x2f\xff\xbd\xc5\xc5\x1f\x35\x30\xdc\x63\x96\x2a\ \x66\xe2\xcf\x34\xeb\xa8\x8a\x9f\x7a\x40\x18\xe6\x11\x4c\xc4\xea\ \x0b\x1f\x03\x67\x85\x15\x97\x7c\x21\x34\x26\xc2\xea\xd8\x79\xeb\ \x65\x7b\x46\x8b\x8e\x0e\x2b\xfd\x10\x0f\x71\xb2\x23\x8d\xe3\x51\ \xa1\x1e\x42\xb5\x30\x5d\xb4\xe7\xa1\xe4\x98\x94\x3c\xbe\xc0\x44\ \xef\x54\x05\x30\x2b\x01\x59\x66\xee\x3e\x7f\xfd\xa2\xd0\xcd\x4d\ \xe0\xa7\x04\x25\x14\xe2\x27\xdc\x53\xe0\xf2\x99\xa3\x8c\x50\xa0\ \xe2\x2d\x4b\x28\xad\xf6\xc4\x50\x67\xfb\x08\x12\xde\x9a\xb2\x72\ \xf9\x53\x8b\x3e\xad\x19\xa8\xa8\x59\x8c\x3e\x62\x29\x58\x12\x43\ \xed\x21\x4f\x0b\x5c\xf3\x7b\x70\x19\xac\x80\x10\x43\xd1\x42\x2c\ \x49\x67\x23\xd6\x97\x32\x47\x61\x51\x52\x3a\x6a\x9f\xa7\xa7\x14\ \xce\xd1\xfe\x61\x2a\xc2\x4f\xaf\xf5\x9a\xa1\x05\xf2\x14\xf5\x13\ \x6d\x89\x29\x47\x5b\xa2\x74\x84\xd9\x59\x29\xc9\x2b\x8e\x3e\x7d\ \x96\x48\xff\x70\x87\x6f\x76\xcb\x8e\xc3\xb6\x1e\x30\x5f\x57\x19\ \xa0\x19\x61\x9c\x50\x09\x1e\x39\x7c\xb4\xa7\x26\xc5\xf7\x82\x15\ \x90\xe2\x12\x8a\x30\x45\x49\xc5\xe6\x49\xf2\xb5\xc7\x4f\x73\xb9\ \x20\x9f\xc3\xa6\xaa\x7c\xfb\xe2\xe8\x1b\x35\x1a\xfd\xcf\x00\xe6\ \xe6\x85\x41\xab\x32\xea\x7a\xe6\x9a\x4d\xc3\x3e\x02\x25\xb0\x88\ \x36\x4e\xef\xd8\xe6\x65\x0d\x35\x18\x1d\x47\x25\x28\x01\x80\x51\ \xb2\x0c\xaf\x5c\x59\x3d\x46\xf8\x10\x3b\xdf\xf8\xa5\xbb\x3e\x37\ \x35\x7f\xf4\xd4\x68\xb4\xaa\x8f\x2c\x3d\xdf\x02\xdd\x3c\x6c\x64\ \x48\x8d\x06\xc1\x9c\xc0\x47\x74\x34\xe0\xaa\x4b\x96\x15\xd4\x1e\ \x7b\xfc\x84\x31\xb9\x24\xc4\x3c\xe8\x9e\x04\xa5\x76\x4c\xe5\x19\ \x2f\x82\x0b\x72\x7e\xe8\x85\xdc\x39\xa7\x0f\x5b\xa0\xab\xff\xee\ \xd6\xe7\xbf\x7a\xd4\xd9\x97\xbd\x78\xef\xd9\x5f\xfd\x76\xdb\x13\ \xbd\xb9\xd3\xf1\x68\xda\xe1\xcb\x32\x8a\x3c\xed\x31\x37\x73\x90\ \xbc\x35\xaa\x1c\xd7\x26\xed\xa0\x6a\x5a\xa0\xaa\x4f\xbf\xa8\x8c\ \xe6\x8e\x19\xc7\xd1\x3f\x5e\x0c\x68\xee\xb8\x73\x55\x56\xdf\xd6\ \xf1\x68\x9b\x34\x94\x96\xd0\xa6\x06\x0a\x2f\x61\xaa\xcf\x51\x5c\ \xe1\x41\x07\x48\x49\x73\xc9\xec\xd0\x9a\x96\x9f\x0c\x30\x98\xa5\ \x9b\xfa\xce\xea\x57\xec\x09\x91\x8e\x56\xe7\xed\x8c\xc5\xae\x63\ \xbc\x50\x47\xa3\x15\x14\x74\x14\x73\x7a\x6d\x4e\x94\xdb\x81\xc3\ \x87\x5b\x17\x4b\x48\xf8\x47\x3b\x89\xaf\x9c\xdd\xbc\xf9\x2a\xeb\ \xdf\x37\xf6\xd1\xea\x6f\x9d\x5b\x0c\x69\x7b\xed\xfb\xa6\xb1\xf1\ \x28\x46\x24\x02\x14\xdd\x53\xc0\xce\xf7\x3f\x7f\xd7\x15\x3d\xa8\ \x92\x60\x18\x9a\xe7\x90\xd9\x6b\xb9\x13\xce\x8b\x00\xe7\xba\x1d\ \xc3\x7e\xb3\x91\x3f\xbc\x7a\xf1\xaa\x7d\x04\xb4\xbc\xf1\xa4\xfd\ \x96\xc7\x7b\x56\xae\x5a\xb3\x6e\x16\x9c\xea\x85\x7d\x01\xda\x65\ \x55\x65\xd2\x05\x08\xe5\x9b\xd8\xea\x71\x05\x7d\xff\xb6\x23\xd7\ \x1b\x0e\xad\x1a\x48\xa5\x04\x90\xe6\x58\xd5\xb9\xe0\xb9\x8b\x9e\ \xbd\xe8\x97\x4f\x38\x8e\xe6\x16\xed\x89\x16\xc0\xed\xc3\x99\x1c\ \xfc\x53\x79\x4b\xbf\xe3\xd6\x79\x78\x17\xa7\xfd\xcf\x17\x07\xfd\ \x4e\x67\xa6\xd9\x7c\x78\xde\x0a\x7f\x58\x8b\x86\x8a\x82\xb6\xbb\ \xda\xa0\x08\x24\xfe\xaa\x95\x09\x60\x6d\x9b\x74\xba\x34\x9a\x5b\ \x28\x0a\xd4\x50\x20\xe7\x98\x7e\x7c\x0f\xaa\xdd\xdc\x29\xe8\x42\ \x0d\x81\x5b\xdf\xda\x5a\x71\xe3\xe7\x3f\x7a\xeb\x09\xa7\x3f\xff\ \xde\xe5\xfe\xe2\xe4\xd1\xb7\x2d\x4b\x97\x01\x50\xb5\x2c\x49\x68\ \x72\x48\xf7\xc4\x1c\xfd\x26\x29\xfd\x68\xf4\xee\x16\x31\x94\xa8\ \x3e\xc3\x5b\xb9\x47\xb3\x05\x09\xff\x5e\x31\xa3\x91\xfd\x19\x9d\ \x73\x23\x85\x79\x4f\x1f\x7e\xcc\x72\x0a\x9b\xff\xf5\x78\xcb\x82\ \x2b\x87\xa5\x30\x94\x0b\x3a\x49\xd1\x7b\x2e\x1f\x82\x7b\x0a\x4a\ \xec\xf3\xa7\x82\x64\x63\x3f\xcf\x61\xbd\x27\x98\xef\x38\x5a\x9b\ \xc5\x8e\x1c\x79\x7a\x46\x64\x31\x73\xff\x04\x1c\x05\x1e\x5e\x78\ \xca\x59\x59\x76\xee\xaf\x8e\x5a\xef\x24\xb1\x73\xe0\x67\x77\x6c\ \x47\x71\x98\x17\x97\x9e\x70\x09\x05\xac\x17\x5b\x30\x93\x6f\xdd\ \xbf\xe8\x94\x54\x60\xe6\xf5\x0d\x23\xc6\xb1\x6c\x19\x78\xf2\x3e\ \xad\xf6\x27\x46\x48\x2f\x7c\x0f\xf0\x74\xb9\xc3\x3d\x3f\xc5\xce\ \xeb\xe0\xb0\x6a\x67\x5e\x72\xa7\xd7\xcf\xb6\x02\xca\x72\x77\x84\ \x25\x1d\x27\xfc\xde\xe5\x7f\xbf\x63\xf7\xb0\xff\x1a\x0b\x64\xa1\ \x47\x09\x09\xa8\xe8\xe1\x0e\xc2\xfe\x3f\x5f\x18\xf4\xaf\xff\xa9\ \xfd\x7c\x3c\xc7\x20\xbf\x3c\x4e\xfe\x11\x0f\x39\x8f\xb4\xb9\x61\ \x65\xff\x07\x81\x17\x9d\xda\x3e\x6c\x20\x4c\x0e\xf0\x83\xca\xb3\ \x88\x1e\xee\x66\xe0\x49\x29\xb9\xeb\x39\x47\xfa\x0a\x8b\xe3\xc1\ \x16\xc0\x24\xba\xc2\x0a\x6e\xf6\x85\x61\xbf\x61\x60\x7f\xc0\x02\ \xd8\xd2\xaa\x2a\x84\x9a\xbf\xf1\x83\x5b\xb6\xef\xb8\xf3\x91\x07\ \x06\xfd\xf7\xfc\x0d\xb0\x7b\x50\x5a\x3a\x59\xe1\xbc\x6a\xf7\x00\ \xfc\x3d\x33\xb4\x8b\x0b\x52\x4c\x41\xfd\xa1\xa0\xb5\xbe\xd0\x25\ \xb2\xb5\x73\xb0\xbe\x00\x37\xc9\xe6\xeb\xc7\x7e\x7a\x70\x61\xd0\ \xc9\xf3\x1b\xcf\x3c\xfd\xb5\x20\xec\xd9\x7e\x55\x8a\xd7\xaf\xf2\ \xda\x65\x4d\x7b\x17\x21\xa0\x83\xea\xc3\xf9\x02\x73\xf2\xb6\x07\ \x06\xad\xb2\x2d\x40\x4d\x0e\xda\x25\x63\x4a\xc5\xa3\x51\x94\x07\ \x69\x88\xc3\xca\x75\xdc\x63\xac\x90\x07\x06\xa5\x8f\xb5\xd1\x32\ \xcc\x3c\xf3\x17\xcc\xa1\xf9\x21\x55\xa0\xce\x3a\xff\xd5\x1c\x91\ \x7e\x1d\x6c\xee\xc0\x10\xbc\xd3\x59\x7b\x16\xe7\x6f\x3b\xb8\x79\ \xd3\x6d\x3b\x76\xef\xea\x14\x92\x31\x8b\x41\x71\xf0\xf4\x92\x0e\ \xbf\xc0\xb5\x1e\x55\x14\xa2\x67\xb8\xef\xb7\x40\xf6\xf5\x1c\x44\ \x11\xff\x13\x5f\x52\xb2\xdc\x59\xd4\x50\x26\xfb\x80\xf1\xe4\xd7\ \x3c\x01\x01\xe9\xad\xc7\x38\xe3\xde\xdd\xcf\xc0\x91\xee\xbd\x64\ \x61\x00\xf1\x17\x96\x71\xb9\x92\xdb\x05\xd9\x8b\x7e\xa6\x45\xaf\ \xa2\x12\x4c\xeb\x54\x75\xf4\xbb\xa8\xa4\xc0\x4f\x96\xfe\xf7\x0c\ \x20\x9f\xee\x6e\xb9\xfa\xe8\x09\xa0\x81\x27\xde\xf3\xba\xa7\x70\ \x39\x18\xdd\x36\xcc\x33\x8b\x14\x88\xb7\x46\xb2\x92\x2d\x5e\x72\ \x3b\x4a\xee\xe2\x4a\x89\x4e\x46\x5c\x1e\xfa\x9b\xbf\xff\xac\x4e\ \xee\x46\xa4\xa4\x9e\x96\x5e\x30\x85\x99\xcf\xec\xe6\xad\x77\x5e\ \x08\x4a\xea\x2a\x7a\x2f\x63\xe8\x8c\xb3\x99\x61\xed\x81\xb1\x96\ \xc8\x51\x4f\x49\x55\xe0\x6c\x50\x2b\xa0\xd1\x96\xd8\xc5\x4f\x5e\ \xf0\xbe\x8b\x0d\xae\xed\x06\x36\xc2\x64\x25\x05\x98\x44\x6b\x27\ \xc1\xfd\x6c\xde\x3d\xec\xb4\x1a\xc5\x5d\xe6\x7b\xfd\xd0\x19\xd2\ \x72\x8d\x73\xe5\x9d\xc3\x1e\xae\x4c\xee\x41\x69\x03\x5f\xe1\x9b\ \xcd\x9e\xd7\x25\xf3\xf9\x52\x79\xfd\x2d\x9f\x3c\xc6\x09\x0b\x60\ \xf5\x84\xa3\xa0\xa4\xa3\x85\xc2\x07\x7a\xba\x05\xb1\xea\x91\x61\ \xc3\xe6\x4a\x4f\x80\x2e\x1e\x7c\xec\xba\xbd\x46\xf6\xd5\xbc\x44\ \xa3\xa3\x75\x0f\xee\xea\xe7\x94\xdd\x59\xc2\xdd\x06\x45\xac\xa5\ \x13\xe4\x48\x85\xb4\xe8\x9b\x86\x97\x0f\x1f\xb7\x5e\x99\x46\x83\ \xac\x5e\x3c\x29\x21\xad\xcd\x6d\x19\x3a\xbf\x7b\x60\xff\xa3\xfa\ \x8d\x49\xc0\x65\xa3\xac\xd3\x0c\x57\x4f\x37\xe6\x73\xd5\xea\xfd\ \xfb\xd7\xdd\xbc\x75\x61\x57\xab\xa6\xea\x13\x70\x95\x44\x0f\x37\ \x9b\x12\xe0\xa4\x5d\x11\x7a\xd2\x79\x7d\xf3\x55\x41\x54\xbb\x75\ \xc6\x4f\x95\xd1\x93\x8a\x7b\xba\xd1\x65\x6a\x36\x7a\xae\xce\x9c\ \x12\x7d\x7c\xb4\x61\x84\x7f\xc3\xcd\x3b\x87\xcd\x56\xa7\xd3\xea\ \xe5\x54\x25\x13\xc1\x13\x47\xc1\x94\x32\xcd\x52\x85\x34\xad\xa3\ \x88\x53\xe8\xc0\x12\x30\x94\x3d\x29\x2c\xf7\x39\xd3\xbb\x20\x3a\ \xbe\xbe\xce\xdf\x70\x03\xb0\x13\x69\xfd\x42\xcb\xba\xcf\xbc\x97\ \x73\x2d\x4f\x28\xcb\xd8\xf0\x41\x3f\xe1\x42\x94\x8c\xd3\x7c\xcb\ \x5a\x1f\xeb\xe8\x93\x0e\xe7\xfc\xcd\x5b\x1f\x7d\x61\xeb\x95\x50\ \x6f\x19\xfa\x1c\x7d\x0c\x94\xb4\x27\x46\xff\x06\xa7\xc9\x5f\x3b\ \x62\xca\x33\xef\xf5\x9b\x76\x0e\x73\x48\x9b\x21\xab\x57\x48\x7d\ \xbb\xa7\x4d\xc6\x4c\x6b\x28\xd7\x47\xa3\xb5\x9e\xdd\x68\x6f\x19\ \x18\xd0\xd6\xe1\xd2\x4c\xd3\xb8\xa8\x2f\x1b\x54\xab\x86\x45\x41\ \xf5\xdc\x1c\x95\xb4\xe9\xb1\xf4\x3e\x6d\xda\x5b\xd6\xaf\xbb\xfb\ \x71\x93\x7d\xd4\x5c\xc6\xab\xec\x55\x97\x42\x82\x54\xf6\x98\x32\ \x65\x4e\x2c\xfa\x90\x38\x65\xfa\x4d\xf0\x23\x0b\x03\xfb\x5d\x18\ \xa4\xe7\x2d\xee\x79\x74\x48\x69\x93\x5e\xee\x89\x7e\xbe\x07\x02\ \x6a\xc7\xca\x8d\xfb\x96\x8a\x7e\xab\xa8\xad\xcd\xfb\x65\x9d\x40\ \xf2\x58\xc6\xe7\xed\x30\xb5\x19\x2a\xdb\x37\xdd\x08\x28\xc7\xf7\ \x47\x1a\x18\x53\x3b\x87\x16\x26\xac\x4e\xb7\xbc\xef\x81\x5d\xba\ \x82\xef\x94\x34\x5f\xfe\xb2\x67\x26\xe7\x4f\x82\xbd\xd0\x4f\xfc\ \x68\xd1\xe1\x5c\xb6\xf1\xb0\x61\xab\x76\x05\x9d\xaa\x74\xaf\x52\ \xa0\x0a\x33\x19\x26\x60\xa3\x5f\x5e\x95\xba\xe8\xf0\xbb\x00\x18\ \x49\xd7\xf0\xbf\x35\x67\x38\x33\x3b\xb4\x3a\x80\x64\x3f\xd4\xde\ \x32\x28\xe9\xec\xbc\x83\x76\x5b\x03\xd6\xa6\x27\xdf\xb6\x6e\xcd\ \x4f\xae\xf9\xf8\xae\xa5\x26\x55\xca\x4a\xfb\x01\x18\xe9\xf2\x4c\ \x8a\xb7\x41\x4b\xf7\xab\xc5\x2e\x85\xbc\x74\x21\x17\x6e\x58\xcb\ \x77\x0c\xdc\xe6\x32\x52\x61\x6f\x66\xe9\xbb\x9e\x65\x75\x04\x1d\ \x40\x67\x5a\xb4\x3a\xcd\x46\x4f\x2a\x7a\x75\x49\xc2\x47\xb6\x2a\ \x8b\xf7\x77\x42\x33\x78\x48\xee\xba\x09\x42\xa0\xea\x42\x2e\xaa\ \xe8\x9d\x1d\x17\x3f\x29\xa4\x00\xf2\x86\x67\xe6\x75\x66\xb1\xb3\ \x9f\xe3\x6e\x98\x6a\xd6\xb0\x46\x54\x0b\x4a\x8d\xb4\x24\xa0\x60\ \xf3\x8c\x30\xf3\xc2\x51\x00\xa9\xb2\xa6\x30\xc2\x7f\x12\x38\xda\ \x81\x22\x3e\xd1\xe5\x27\x3d\xf6\x70\xcf\xc2\xfc\xda\x48\xa1\x9c\ \x9f\xdd\x3a\xec\xf7\x20\xb1\xcf\x0b\x5d\x23\xb3\xbf\x65\x45\x84\ \x20\x2b\x56\x52\x14\xbd\x28\x40\x68\xf4\xdd\x20\x6b\x12\xa3\xa2\ \xc2\xd3\x77\x60\xa5\xee\xcb\xb6\x48\xaf\xb8\xda\x18\xf5\x89\x1d\ \xe3\xf0\xef\x1b\xc9\xc2\x3d\x3f\xbb\x65\xe7\xb0\x3f\xd3\xe0\x30\ \x9f\x8b\x4f\xf6\x26\xa0\x22\x77\x36\x25\x78\x89\x31\xc1\x0d\xec\ \xf4\x63\x12\xe5\x9d\xda\x69\xf7\x64\x45\xbb\x72\x09\x34\xd4\x81\ \xbd\x7a\xbd\xc5\xb6\xaf\x59\x14\xaf\x23\x79\x9f\x83\x20\x11\x25\ \x3c\xb5\x47\x95\x88\xbe\x64\xb0\x0a\x2a\xb9\x27\xe1\xa8\xc7\x54\ \xde\xb9\x83\x8f\x71\x65\xc7\x3f\x84\x32\x4c\x0b\xf9\x59\x7c\xf7\ \xcb\x73\xb0\x00\x0c\x0d\xd0\xcb\x8d\x7e\x1e\xff\xd6\x2d\x3b\x07\ \x4b\x9d\x06\x78\x51\x42\x4a\xdc\x14\xaa\x70\xd7\x8e\xc0\xaa\x45\ \x94\x8c\x09\xe0\x91\xd5\xc7\x1b\xf6\x91\x86\x4e\x73\x84\x0f\xfe\ \xe9\x21\x28\x5b\x7c\xff\x5b\xbd\xc6\x77\x5e\x75\x1c\x26\x18\x0f\ \xbd\x30\xb4\xe6\xf4\xa1\x37\x9a\x64\xb2\xd3\xc0\xfd\x86\x00\xa9\ \x7b\x4a\x2c\xe7\x61\x77\x0e\xa4\x75\xf0\x28\x0d\x45\x33\x02\xb8\ \x98\x85\xa4\x71\xb6\x13\x56\x8f\x57\xe3\x31\x0a\x2a\x24\x36\x19\ \x6d\x1d\x36\xf5\x5e\x83\x20\x05\x53\x8a\x38\x5a\xd6\xdc\xf8\xc0\ \x18\x2b\x96\x3c\x00\x25\xd9\x3b\x8e\x66\x71\x3c\xaa\xeb\x8e\xba\ \xb1\x00\x5e\xe7\x2c\x06\xb4\xe6\xf1\x61\x8b\x20\x4a\xcd\x59\xb1\ \xd4\xdb\x65\xc2\xce\x07\x44\x0b\x38\xb5\xc3\xa7\x95\x49\xb4\xd3\ \x92\x4a\xeb\x39\xc2\x8f\x3b\x75\xfc\x12\xd9\xc7\x14\xcc\xd5\xdb\ \x4d\x69\x41\x73\x53\x65\x4c\x96\x22\x7e\x52\x37\x51\x4d\x1a\x0a\ \x38\xc5\x96\xd0\xdf\x67\xa2\xa6\xf1\x16\x23\x2f\x4e\xe3\x77\xee\ \x3e\xb9\x9f\x50\xae\x3a\x68\xec\xbb\x09\x05\xbd\x90\xa7\x92\xd7\ \xe3\x25\x30\x81\x2a\xe4\x28\x1b\x53\x15\x59\x53\x96\xd1\x2a\x0f\ \xfc\x65\xd1\x23\xdc\xe4\x6e\x83\xce\x41\x9b\x6f\xbe\x7b\xe3\xc6\ \x4d\x07\x77\x98\x6a\x52\x93\x3a\xca\x98\x04\xa4\x92\xbd\x90\x34\ \xbe\x40\xed\x21\x82\x09\x37\xb0\x51\xae\x52\x5b\x93\x94\x74\x92\ \xc6\xa4\xa8\x35\x33\x03\xc8\x99\x9b\x0d\xda\x68\xd2\xb2\x67\x94\ \x9a\x70\xbb\xbe\x2a\x45\x49\x85\x9f\x2c\x7b\xbd\xcc\x97\x58\x78\ \xf2\x9a\x4a\xe2\x1a\x7e\x5c\x29\x91\xa0\x44\xc2\x3c\xa1\x9a\x2f\ \x59\x3d\x0b\xf6\xf7\x68\x4d\xd2\x9d\x17\xb6\x40\xf0\x4b\xc1\x14\ \xa2\x08\x3f\x1d\x8f\x2a\xac\x02\x53\x6f\x84\xe6\x82\x8f\x36\xeb\ \xe1\xd2\xed\x8e\x28\x7a\xba\x3c\xca\xbc\x9e\xa2\x44\xbf\x23\x32\ \x51\xfd\xb4\x3d\xff\x04\x38\x83\x5d\x50\x07\x53\xda\x47\xf5\x36\ \x38\x35\x42\x8c\x93\x7a\x55\xd9\x07\x41\xd6\x9a\xa1\xa0\xa4\x6d\ \xe6\x68\x92\xc4\x87\xc6\x05\x88\x40\x4b\x7b\x08\xb7\x30\x17\x48\ \x5f\x70\x52\xd7\x28\x77\x96\x08\xe2\xaa\x62\xab\xb7\xdf\x2c\x76\ \xc2\x9c\xb1\x7b\x2a\x69\xed\x04\xbc\x21\x53\xc7\xaf\x4c\x7a\x9f\ \x09\x75\x94\xf7\xc2\x74\x3b\x11\xf4\x8f\x32\x3e\xe5\x9e\x2a\xb8\ \x4a\x04\x6a\x11\xea\x4e\xd7\x36\xbe\xb3\x52\xf0\x65\x8a\x93\xa2\ \xa4\x09\x6a\x46\x9b\xa1\xb2\x7b\x47\x85\x47\xd1\x51\x7b\xe7\xac\ \xa9\x45\x91\x0a\x49\x80\x91\xc0\x61\x0f\x25\x1b\x7b\x09\xcc\xa4\ \x4e\x52\x88\x4c\x05\x2a\x5f\xd1\xe6\xcd\x34\xea\xa8\xaa\x3a\x02\ \x35\x02\x25\xad\xf1\x45\x1c\xe5\x1e\xe7\x42\x47\xf8\xd2\x39\x9c\ \x68\xca\x04\x80\xe0\x4e\xa9\x40\x96\xb0\x79\xb5\x2d\x12\x17\x72\ \xd1\x75\xba\x08\x9f\x37\x1b\xe2\x1e\xe7\x3a\xd6\xce\xdc\x13\x3d\ \xf7\x91\x51\x6c\x02\x97\x47\x80\xd2\x01\x0e\x31\xa2\xf0\x59\x49\ \x35\xe9\x8d\x06\x78\x73\xda\xa4\x76\x6c\x69\x1b\x5c\x50\xc2\x43\ \x70\x75\x76\xc7\x62\xaf\x6b\x95\x2f\x65\x28\xf1\x64\xa3\xeb\x04\ \xde\x02\x52\x73\x54\x59\x53\x51\x30\x4f\x0d\x46\xf3\x08\x4b\x45\ \x51\x2d\x4c\x81\xaa\x71\x02\x36\x88\x4c\x04\x64\x9d\x6a\x77\x2c\ \xd3\x2e\x5f\xdc\x28\xfc\x26\x5a\xde\x84\x40\xea\xc8\x4f\x6c\xd4\ \x02\xdd\x74\x0f\x5e\x8e\xab\xa0\xa3\xd1\xb9\x06\x30\xfd\x9a\x20\ \x46\x59\x28\x94\xc4\xa9\x92\x57\x0a\x3b\x25\x9d\x4f\xd5\x75\x02\ \x5b\xe2\xe6\x51\x92\x7d\x44\x0c\xb2\xce\xfd\x0e\x88\x92\x8c\xc9\ \x57\x51\x78\x2b\xb3\x07\x4b\x02\x37\x1a\xf7\x63\x33\x64\x42\x19\ \xaf\xf5\xc0\x55\x61\xa7\x18\xbc\x94\x1f\x74\xf7\xa0\xbc\x74\x34\ \x4a\x1c\xc5\x64\x04\x81\xc6\x8b\xbd\x4a\xef\xe2\x45\x29\xf6\xa4\ \xa1\xe8\x0b\x7c\xa0\x4e\x86\x15\x7c\xc1\x49\xbf\x04\x98\x48\x15\ \x20\xd8\x39\x55\xe2\xee\x85\x50\x37\xd5\xaa\xc4\xd2\x57\xeb\x53\ \x2a\x5d\x16\x12\x93\x4a\x72\xd4\xf7\xa7\xfc\xa1\xa1\x02\x91\x6e\ \xd6\x31\x4a\xf9\x48\x49\x1d\x10\xa6\x33\x7b\xcc\xed\xd8\xdd\x5b\ \x88\xa8\xa5\x88\x56\x88\xd7\x7a\xf7\x26\xb2\xa0\xd1\xe8\x49\xde\ \x74\x0a\x03\x38\x2b\xe8\x32\x4f\xec\xca\x37\x95\x7e\xd7\x53\x8a\ \xa1\xd3\xe1\x7e\x3d\x8b\x1f\x2e\xe0\xac\x8e\x45\xc1\x99\xe2\x8a\ \x24\xf6\xa4\xe2\x12\xdf\x8c\xea\xb4\xe0\xe1\x8a\xce\x08\x09\x50\ \xe4\x67\xc8\x51\x45\xc4\x50\xca\x97\x84\x72\x56\x50\x8a\xf3\xc2\ \xe4\x8e\xac\x5e\xae\x04\x58\xc1\xe9\x70\xeb\xc5\x9e\x1d\xe9\xa1\ \xdb\xdb\x85\x9f\xda\x96\x30\x22\x09\xda\xdb\x45\x07\x38\xb8\xa7\ \x57\x2a\xc2\xcf\xda\x5e\xe8\x9c\x0e\x45\xe9\x15\x10\xad\xf4\x68\ \xea\xa8\x9e\x80\x13\xff\x87\xa1\x86\x1f\x8f\xb2\x97\xd2\xba\x5a\ \xe2\x8b\x78\x89\x77\x50\x1a\x0f\xdc\x53\x49\x76\x1f\x83\x8d\x9a\ \xb1\x05\xa7\xb8\x27\x87\x91\x20\x36\x24\x70\x16\xa4\xc2\xd2\x42\ \xbb\x52\x11\x3d\xac\x4e\xc2\x4c\xbd\x84\xea\xf5\x53\x3c\x7d\xd2\ \x95\x4e\x8b\xe8\x63\x3d\xa5\x48\x4f\xf5\x8e\x4a\x2c\x2a\x50\x35\ \x4e\x0f\x69\x85\xa2\xaf\xb5\x72\xf2\xaf\xc2\x7b\xc8\x46\x9d\xc8\ \x94\x50\xd6\xcc\x51\x9f\x1c\x52\x12\x7b\x1a\x66\x70\x48\xa8\x4a\ \xe4\xa0\x9e\xe0\x43\xb9\x13\x4f\x63\xa8\x0d\xed\x48\x7b\x08\x17\ \xfd\xa8\x40\xad\xa3\x65\x94\x6f\x8d\x95\x71\x92\x13\xad\x62\xaf\ \x9f\x54\x4e\xd5\x8e\x1b\x53\xea\xf8\x45\x41\xbe\x54\x13\xb5\x65\ \x32\x52\xfa\x12\x9c\x64\x4d\x5e\x72\x57\x7b\x6b\x91\x58\x13\xfb\ \xfc\x90\xa5\x11\xa5\x39\xea\x4c\x5e\x4e\x0b\xe1\xe5\x91\xc4\xa3\ \x31\x2f\x45\xf4\x08\x14\x9e\xf8\x80\x98\x68\x67\xe2\x00\xeb\x38\ \x0a\x63\x51\xdf\xe3\x17\x72\xde\x92\x97\x4e\xfc\xc0\x28\x2f\xc2\ \x2b\xa2\x27\xf1\x87\x82\x47\x2f\x9a\xce\xed\xd3\x52\x9f\xe6\x54\ \x44\xa3\x05\x98\x12\x98\x68\xaa\x95\xf0\xe3\x45\x49\x5e\x88\xb6\ \xf2\xc5\xdf\x26\xac\xc4\x4e\x7e\x4f\xa4\x81\x8e\x5f\x99\xe4\xec\ \x4d\x4f\x67\xf5\x12\x34\x49\x5e\x2f\x4b\x68\xec\x45\xeb\x14\x4b\ \xdb\x1c\xe5\x27\xad\xe9\x10\x1c\x85\x5b\x05\x25\xe8\x9f\xe0\x1d\ \x87\xa3\x79\x8d\xa0\x31\x38\xd1\x3a\xca\x58\x2b\x78\x02\x94\x0e\ \x9f\xb2\x7d\x71\xf8\x87\xe4\x68\x4c\x64\x4c\x31\x47\xc9\x90\x88\ \xa7\xf0\x0e\xd9\x2a\xc2\xaf\xf4\x5a\x2f\x2a\x10\x1b\x53\xda\xec\ \xd3\x6b\x3d\xf3\x13\xcc\x1e\xef\x98\x28\xa9\x8b\x32\xd1\xb2\x14\ \xa6\xf2\x86\x7d\x1c\xe6\x89\xe0\x15\xcc\xd8\xe8\xd3\x7e\x54\x83\ \x25\xa4\xee\x75\x8b\x57\xcc\x8b\x30\xea\x42\x49\x29\x77\x2a\x1a\ \x95\xf3\xf5\x78\x4b\xdc\xcc\xfe\x3e\xbd\x17\x1a\x55\x72\xf5\x15\ \x14\xc6\x59\x3f\x51\x0d\x04\xaf\x6c\x83\xfb\x71\x53\x25\x58\x35\ \x57\x05\xa6\x66\xea\xf8\xf3\x4c\xc2\x4e\xc1\x2a\x20\x75\xc6\x9c\ \xf3\x52\x9f\x0a\x4a\x2a\x08\x98\x08\x27\x20\x56\x06\xc5\x62\xd7\ \x09\x09\x92\x62\x29\xfc\x26\x0f\xb5\x08\x44\x85\x14\x50\x22\xd4\ \x5c\x4a\x7a\x3e\xcc\x20\xbb\x2b\xc9\xa2\x38\xb9\xab\x12\xf1\xbd\ \xc0\xa4\x97\xf2\xa5\x63\x8b\x64\x4c\x92\x2b\x93\xcb\x27\xe1\xcb\ \x81\x2b\xf0\x50\xb9\x64\xf6\x01\xd1\x22\x4f\x1f\x1a\x24\x3f\x2a\ \x74\x8e\x65\x1f\xbb\x54\xda\xb8\xd3\x3a\xca\x87\x03\xd1\x90\x98\ \x10\x1f\x97\x1e\x85\xa7\x60\x48\xc2\xd1\x32\x26\x02\xa8\xa3\x91\ \x38\x6a\x86\x57\xca\xea\x79\x09\x2d\x84\xab\x3d\x8c\x48\xb4\x31\ \x49\x2e\x4f\xfe\x29\xd4\x51\x0c\x9f\x88\xa7\xc2\xe0\x76\x60\x4c\ \xa1\x6f\x4a\x6f\x8a\xa4\x83\x12\x01\x8b\x28\x1d\x43\xb7\xcd\x9f\ \x7c\x52\xa3\xc8\xd5\x09\x31\x92\x3a\x7c\x85\x35\xe7\xf4\x29\x5b\ \x11\x39\x6b\xa8\xe4\xcc\x41\x40\x0a\x37\xe7\x23\xd3\x52\x1f\x4d\ \xa4\xcb\x54\x24\x5b\xfb\x39\xbb\xcb\xfc\xc1\x46\x78\xda\xb2\xe0\ \x1d\xf0\x42\x2f\xa1\xbc\xc5\xcc\xbb\xa0\x55\x00\x58\x6c\x3e\xb4\ \x7a\x25\xf9\x76\xcc\xd1\xc8\x9c\x0a\x00\x0a\xce\xe9\x58\xb7\x1d\ \xde\xc7\x42\x2e\x9f\xb9\x23\xb4\xbe\x1b\x2d\xf9\x06\xab\xc7\xae\ \x0d\x0f\x29\xaf\xf3\x82\x36\xb2\xfa\x34\xce\x69\x0e\x4a\x84\x7a\ \x00\x16\x39\xfa\x8f\x8b\x96\xce\xdb\xdd\xc7\x14\x14\x80\xfa\xbb\ \x22\x4c\xc2\x4e\xb1\xf6\x38\x28\x01\xa0\x5e\x8c\x1f\xc5\x79\x41\ \xcf\x78\x3b\x88\xf0\xe3\x68\x14\x9b\x89\xfe\xcd\xf2\x73\xd3\xbe\ \xa5\x1e\xc0\x44\xd1\x73\x6a\x1f\xc3\xac\x18\x2c\xbc\x75\x3b\x11\ \x82\x44\x94\xfc\xa1\x84\x3f\xd6\x3f\x05\x82\xc7\x62\x0e\x6f\x86\ \x9d\x64\xb7\xc4\x77\x75\xa4\x88\x5f\xa3\x49\xd5\x29\x37\x2a\xce\ \x5e\xf8\x2a\x6c\x55\xc6\xa4\xf3\xfa\xd8\x96\x22\x8e\xb6\x7c\x96\ \x16\x08\x56\x36\x6d\x6d\xaf\xc1\xca\x81\x3e\xba\x0c\x9a\x29\x0b\ \x53\xa1\x22\x7c\x78\xe8\x5b\x3a\xf3\x62\xeb\x97\xd0\x24\x61\x4e\ \xf0\x95\xce\xeb\xb5\xe8\x01\x64\xcf\xfa\x26\xab\xa2\xbb\x1b\xfe\ \x12\xea\xa5\x4d\xc0\xda\x20\x17\xf1\xfd\x3d\x4a\x1f\x49\xe2\xa6\ \xf1\x79\x3d\x8b\x5f\x9d\x0c\xe4\x63\x42\x1a\x26\x00\xc5\x54\xe4\ \x6a\x77\x84\x4a\xf6\xeb\x83\xe8\x9e\xa9\x0c\xda\x89\xf0\x57\x82\ \x12\xc1\xaa\x33\x91\xb4\x86\x26\x2a\xce\xad\x56\xe0\x9e\xf4\x78\ \xa2\x29\xdb\x42\xdc\x47\x98\xf0\xca\xe1\x85\x2a\x9a\xee\x29\xa0\ \x10\x5f\x93\xb6\x79\xb8\xd3\x05\x9d\xf4\xbc\xa7\x98\xa4\x36\xda\ \x70\x5d\x64\x2b\x87\x80\x53\xf5\xe8\x58\xae\x26\x49\x71\xb3\x4e\ \x54\xc5\x03\x96\x96\x41\x22\xe2\x7e\xc2\x28\x8f\x3a\x20\xe2\x7c\ \x99\xe0\xfe\x40\x94\x14\x91\x3a\x2a\x38\xcd\x47\xc8\xa5\x2e\x92\ \x0a\x51\x41\x5f\x62\x92\x30\x38\x89\x1d\xbe\x72\xa3\xe9\x02\x44\ \x11\x8c\xd0\x02\x8f\xbf\xb5\xa3\xfa\x9e\xdc\xb9\xab\x74\xe5\x01\ \xb0\x62\x47\xd9\xd8\x15\x1f\x39\xaa\x1c\x14\xd9\x3c\xde\xb1\x1f\ \xb5\x2a\x1a\xa4\x4b\xea\x94\xed\x1e\xe8\x6a\x2d\x42\x96\xd2\x18\ \x00\x41\x5b\xaa\x28\x9f\xca\x0f\xda\x94\x10\xa0\xd8\x51\xa9\x94\ \x54\xb0\xb6\x63\x8e\x2a\xa3\xd7\x11\x3e\x7c\xd8\xa0\x64\xdd\x40\ \xb8\x89\x48\xbd\xa9\x54\x85\x40\xad\xb0\x43\x4b\xf2\x26\x79\xda\ \x71\x8c\x5f\xa6\xa3\x3c\x0d\x76\x5a\x38\x9a\x36\x26\xc7\xd0\x27\ \xad\xd9\xcf\x0e\x91\x9f\x62\x4e\x32\xb5\x40\x2f\xa1\x25\x3c\x20\ \x74\x6e\x70\x1f\x9f\x30\x87\x86\xaf\x58\x1a\x59\x7d\x0b\x1f\x01\ \x2a\x11\xa9\xeb\x2c\xdc\x3e\x28\xc4\x37\x01\xa1\x8e\x86\x8a\x5a\ \x09\x44\x29\x3a\x56\xc9\x6c\xb9\x8c\x4d\x49\xe7\xa1\x01\xd6\xd4\ \xd6\xb2\xa8\xe8\xd3\x23\x00\x3a\x7b\x3d\x00\x65\x6e\xe2\x71\x60\ \xf2\xfa\x9a\xd2\x85\x27\x5f\xee\x29\x98\xb2\xce\x27\x19\x3a\x0d\ \x79\x7d\x94\x87\x16\x04\xf7\x95\x73\x38\xa5\xc3\xf3\x4f\xcc\xd4\ \x90\x9d\x62\xe8\xfc\x23\xad\x3a\xa4\x9b\x48\x64\x46\xd1\x72\xcf\ \x2c\x8d\x37\xc4\x62\x12\xb0\xc5\x7f\x3b\xa0\x53\xfb\xd8\x94\x04\ \x64\x2e\xf3\xd3\xf4\xa6\xad\x18\x7b\xcc\xd4\xb6\x96\x7c\x7a\x70\ \x5e\xbc\x86\x2a\x87\xdf\x2c\x18\xa2\x38\xd2\xf7\x7d\xfc\x00\x9e\ \x11\x21\x6b\x42\xf1\x53\xef\xa8\x22\xe9\xc3\xaf\xb5\x0f\xad\x54\ \xaa\x9c\x2c\x3e\x01\x32\x42\xaa\xc5\xae\xf3\x7a\xfe\x2d\xd4\x5e\ \x68\xef\x5b\x6e\xb9\xa7\x45\x94\xdc\x13\x3c\x2a\x19\xad\xd0\x9a\ \x58\xe2\x22\xf6\xa4\x67\x2a\x23\x77\x8f\x97\xc3\x9b\x6e\x7e\x11\ \x90\x8c\x92\xfb\x74\x8e\xc5\xe5\x3e\xea\x75\x35\x97\xe6\x25\xde\ \xe2\xf1\xe3\x3a\x2e\x82\x64\xc4\x21\xe9\x13\x18\xf1\xf8\x8f\x74\ \x79\xd4\x71\x15\x97\x7b\x03\x30\x6e\xc5\xd6\x06\x25\x39\x88\x54\ \x20\xd3\x2e\x54\xf3\x53\x48\x2d\x4a\x11\x47\x23\x88\x64\x4c\xae\ \xf2\xf4\x15\x77\xac\x8d\x26\xaa\x68\xac\x51\x44\xaa\xf6\xc3\xd2\ \x2d\x5a\x0a\xb3\x80\x65\xa1\x27\x9a\x72\xa7\x13\x7e\xb4\x47\x65\ \x1d\xae\x8f\xed\x41\x25\x05\xe2\x11\x10\x45\xbc\x11\x5e\x55\x15\ \x3e\xd8\x5f\x10\x28\x28\x1f\x18\x80\x83\x57\xf8\x28\x76\xa6\xe3\ \x51\x89\xf0\x9b\xd2\x98\xc9\xfb\x4c\xe6\x17\x93\x51\x50\xd2\x5d\ \x34\x77\xd4\xfe\x00\xce\x31\xed\xed\x95\x01\x08\x0f\xad\xf5\x95\ \x9a\xa0\x25\x7e\x89\xe6\xe6\x69\x76\x2a\x3d\x55\xee\x89\x2d\xde\ \x81\xf4\x5a\x35\x80\x50\x49\x47\x3b\x1b\x7e\x83\x1e\x1b\x3b\x43\ \x2d\xcb\xa8\x15\x1f\xde\x75\xb8\x0f\xae\x7c\x69\x16\x6a\x28\xbd\ \xe2\xf9\xa3\xa1\x31\xe9\xe0\x09\xa4\xff\x3d\x38\xae\xf8\xca\xf7\ \x17\x82\x93\x43\x66\x04\x5b\xe9\x6c\x44\x69\xa9\x6a\x2a\xd1\x79\ \x53\x74\x8e\x55\xc7\xa3\x71\xff\x68\x6a\x9f\xc9\xde\x68\x4e\x38\ \xeb\x61\xcf\x77\x84\x9d\xbc\xd5\x14\xee\x34\x45\xbb\x4c\x71\xda\ \x34\x2e\xca\x53\x21\x1e\x7e\xa4\xfd\x68\x41\x0c\x15\xb8\x60\x4f\ \x37\x2d\xe2\x01\xc0\x0e\x67\x20\xb2\xdb\x90\x27\x12\xbc\xd8\x8f\ \xb2\xa5\x8b\x92\x86\x6b\xfd\x84\x02\x2b\xa4\x37\x1b\xd2\xdb\xf6\ \x54\x1a\x7f\xcc\x01\xbd\x79\x00\xc2\x0f\xba\xf3\x94\x6e\x0a\x5b\ \x4b\xd2\xd4\x80\xb0\x37\x8f\x8e\xb3\xfd\xba\xf1\x68\x33\xa1\xa0\ \xe2\xa2\x78\x36\x11\x9c\x79\x58\xbd\xbb\x0f\x56\x0f\x28\x99\x99\ \x9a\xa5\xf1\x26\xa3\x40\x95\xea\x43\x86\xef\x2c\x53\xec\x1c\x1b\ \x8f\x4e\xf3\x86\x98\xc0\x0c\x92\x3b\x6e\x7b\xfb\xe7\x3f\x3a\x6c\ \xd0\x07\x86\xb2\xf8\x35\x4c\x01\x18\xe6\xca\x71\xa9\x24\xcd\x50\ \xd9\x0f\x39\xd4\x74\x22\x81\x9b\xde\x66\xa2\xf2\x78\x54\x23\x8b\ \xcd\x69\xfc\x1c\x67\xf7\xc2\xf3\xcb\x31\x8d\x8f\x47\xd5\x06\x0e\ \x71\xd2\x37\xfc\x9e\x6e\x7b\xd2\x00\x8b\x78\xdb\x96\x64\xae\x0d\ \x4a\x62\x66\x39\xff\x1f\x99\xbd\xea\x78\x8c\xfb\x47\x63\xe2\x31\ \x4a\x8a\xa7\xb2\x73\x27\x3b\x63\x22\x7e\x4e\xe5\x25\x8e\x4a\xda\ \xbd\x70\x54\x77\x3b\xea\xca\x78\xba\x2d\x53\x8f\x4c\xf4\xb6\x6b\ \xb1\x7d\x98\xa8\x06\x7c\xaa\x0f\x1f\x5f\x7a\xe8\x34\xa2\xc4\x77\ \xe5\xc5\xf6\x19\x3c\x08\x94\x6d\x49\x80\x8e\x8f\x47\xc3\xce\xe1\ \x82\x9b\x72\xa9\x4b\x4b\xb1\x35\x57\xeb\x52\x11\x04\x25\x78\xe4\ \x8a\xa2\xbd\xa8\x40\x8a\x53\x20\xc0\x41\x65\xee\x56\x91\xf3\xf8\ \x99\xe8\x41\xed\xa9\x90\x5e\x22\xb7\xd5\xe4\x71\xb4\x96\xd8\xa9\ \x66\x73\xf2\x4f\x32\x96\x12\x92\xaa\xc1\xe8\x55\x32\x0b\x35\x10\ \x11\xa7\x0f\xd5\x73\x4b\xc4\xd3\xe9\x74\x3c\x5a\xa8\xa1\x3f\x21\ \xd5\x61\x54\x02\x4f\x72\x7a\x7b\xca\x43\xb5\xd9\xe4\x65\xaa\xeb\ \x98\xcc\x3e\xb5\x0d\x8e\x97\x82\x2a\x91\xb3\x3e\xc9\x86\x56\x2f\ \x77\x6a\xf9\x14\xb4\x31\xb5\x79\xe6\x30\xcd\xf2\x55\xe7\xd6\xbb\ \x80\xb2\x0b\x34\xbe\xe5\x2d\x91\xdb\xab\x09\xa4\xb9\xbf\x73\x07\ \x4f\xc8\xd4\x60\x82\xb3\x70\x36\x6c\xd2\xe2\x59\xbe\xf6\x46\x94\ \x48\x30\xa1\xc4\xe0\x0c\xe3\xbc\xa6\xee\xd2\x61\xff\xc9\x20\x1b\ \x7a\x84\x37\x0a\x9f\x26\x64\x27\x59\xea\xa0\x92\x8e\x2a\xc1\x67\ \x3c\x55\x03\x60\x66\xda\x41\x75\xbd\xb1\x2f\xe9\x95\xa9\x99\x5e\ \x9b\x74\x57\x01\x59\xbd\x3f\x70\x5a\x3c\x54\xdc\x49\x88\x20\xa3\ \x71\x15\xe9\x69\xbe\xfe\x18\xe7\xe9\xb7\x5c\x1a\xe5\x23\xa0\x9e\ \xda\xe8\x0b\xde\xaf\x8f\x67\x63\x87\x4b\x68\x28\x77\x40\xc9\x9e\ \xb4\xc6\x4b\x9d\xad\x4f\xe3\xec\x32\xd2\x53\x2f\x9d\x32\x15\xaf\ \xcf\xd6\xe9\x31\x4a\xf1\xca\x14\x2e\x4a\x78\xfb\xfb\xf5\x48\x85\ \x7f\x5e\xa0\x44\x9f\x1f\x13\xc3\x25\x8c\xf0\xf6\x8d\x09\x8f\x04\ \x9f\x3c\x32\x40\xef\x68\x06\x76\x9f\xd8\xb7\xf3\xc7\x7a\x2a\xe1\ \x13\x52\x9c\x91\x8b\xac\x8d\xd2\x7a\xf9\xd2\x31\x09\x8f\xc5\x2e\ \x15\x47\x23\xe1\xff\x16\x9c\xf6\xee\x27\xe2\xd1\x68\xb3\x01\xd7\ \x7a\x8a\x48\x7b\x08\x53\x82\x27\xae\xe4\x45\x2e\x2a\xda\xaf\xaf\ \x3d\x98\x99\xaf\xa5\x6d\xb8\x4a\xb1\x24\x1a\xf9\xb2\xc1\xc6\xe8\ \xe7\x0d\xdb\xc9\x41\x00\x7a\x9c\x2f\x13\x32\x94\x81\xaa\x6d\xf0\ \x9c\x57\x50\xbd\x15\x26\x47\x82\x6b\x3e\x65\xcd\xc1\x93\xa7\x9f\ \x40\xb2\x2e\xd1\x14\xef\xee\x3b\x8f\xde\xb8\x7d\x61\xd0\x31\x9f\ \xf1\x68\x05\x0d\x93\x36\x6d\x81\x95\x7a\x40\x32\x2f\x4c\xbc\x82\ \x0a\x54\x9d\x92\x00\xbe\xb0\x40\xc6\x0e\x0a\xe8\xd4\x6b\x8f\xba\ \x36\x8c\xf2\x00\x6b\x33\xcf\x92\x87\xac\x35\x52\x2a\x3c\xf4\x0a\ \x16\xbb\x6e\x27\x92\x43\x18\xda\x37\x55\x5e\xfe\x41\x0e\x2a\xdc\ \x0c\x65\xa0\xe7\x6e\x38\xff\x1f\x4c\x95\xf8\x27\x33\x08\x52\xd6\ \xa6\x36\x7b\x7b\x5d\x71\xd6\xee\x9e\x66\x3b\xf2\xf4\x0f\xe5\xee\ \xd1\x96\x08\xac\xee\x22\xd3\xbd\x1a\x08\x52\x9f\xbc\x62\xfd\xdc\ \x70\xef\x68\x84\xc3\xaf\x3c\xab\x77\x77\xd7\xca\x7c\xc3\x17\x0e\ \x3f\xbb\x54\xa2\x6f\x69\x63\x2a\x88\xa1\x05\x5e\xc2\xd2\x9c\xa7\ \xf9\xca\x39\x31\x40\x1c\x9e\x67\x2a\x69\xe6\x4f\x5c\x25\x41\xa8\ \xbf\x2d\x33\x11\x16\xca\x8c\x5b\x20\x1c\x37\x4f\xdd\x70\xd4\xe1\ \x23\xa8\x74\x0a\x43\xdf\xc9\x8d\x05\xe1\xf0\x34\x22\x6d\x4a\x20\ \x79\x75\x78\x59\x53\x45\x27\x42\x69\x8a\x7b\x5c\xcb\x03\xab\xbf\ \x6b\x91\xe9\xc1\x86\x96\x7d\xf7\x0b\x3c\xc4\xeb\x2f\xcb\xb8\x23\ \x57\x5b\x93\x93\xbc\xb0\x15\x89\x4c\x09\xde\x14\x94\x84\x58\x01\ \xe8\xb8\x92\x0e\x99\xfd\x5f\xb9\xe9\xb8\x73\xe6\xbd\xb1\xe3\xa3\ \xec\x76\x7f\xe6\x0d\xf0\xea\x75\xe3\xf1\xc8\x2a\x6e\x26\x05\x05\ \xa4\xb1\xe8\x45\xe6\x45\x98\x89\x94\xfa\xc8\x00\x2c\xa5\x02\x52\ \xbc\xe8\xad\xaf\xb9\x7d\xc7\xbe\xc1\xb1\xa0\xa4\x8a\xa3\x13\xa2\ \x15\x8b\x07\x3a\x8c\x72\x7c\x0d\x3f\x15\x96\x00\x50\xbc\xf3\xc4\ \xe1\x30\xe9\x7b\xc3\x29\x25\xf0\x1b\x85\x24\xf0\x54\x45\x9e\x65\ \x5f\x85\x11\x9c\xda\x9a\x4e\xb5\x03\x18\x57\x6f\x5e\x6d\xde\x93\ \xa2\xa4\xf1\x78\xe4\xa2\x60\xa4\x78\x2b\xd1\x4b\x75\xbc\x8e\x04\ \x0f\xf8\xc0\xa2\x90\xca\x4f\x6f\xd8\x80\x7d\x3a\x82\xd3\xde\x14\ \xe6\xfd\x0e\x28\x69\xcf\x83\xd9\x35\x48\x2f\x38\xec\x8b\x4b\xad\ \x8b\xac\x6e\xec\xce\x14\x47\xd3\xe5\xfb\x18\x66\xa1\x36\x9a\xd8\ \x9e\x94\x83\x2a\x2b\xda\xbc\xa9\x36\x5c\x61\x6c\x17\x66\x77\x57\ \x3a\xb5\x93\xa5\xfe\x5c\x54\xd2\x4c\x8d\xff\x98\xb0\xdf\xd3\xa0\ \xa4\x85\xe2\xa8\x30\x34\x4c\x47\x10\x2a\xa3\xcd\x55\x63\x41\x2e\ \x1c\xd5\x33\x92\x2d\x3d\x7d\xb4\x9d\x01\x36\x1a\xed\xab\x83\x61\ \x15\x7e\x40\x92\xdd\x0b\x33\xb9\xa2\xf1\x69\x5d\x43\x53\xa1\x92\ \x6a\x8c\x85\xdc\x32\x85\xb2\xe7\xf3\x53\x80\x06\xc9\x32\x1f\x60\ \x05\xa4\x97\xd1\xd8\xdc\x86\x8f\x13\x63\x27\x46\xfa\x72\xa7\xa4\ \x99\x72\xf8\xf0\x74\x2f\x85\x3e\x26\xd5\x01\x91\x4c\x46\xa8\xee\ \xa8\x55\x14\x58\x2a\x3a\x0a\x48\x99\x9b\x70\x13\x47\xef\xc3\xa9\ \xc3\xaf\xef\x28\x97\x1f\xcc\x47\xbe\x16\xb6\xae\xc9\x93\xca\xe4\ \x17\x03\xf4\x2d\xb0\x67\x94\x29\x8e\xa6\xcb\x64\xc4\x50\xae\x3c\ \x22\x52\xad\xa3\xb9\xea\xc4\x16\x43\x5a\x31\xb9\x38\x37\x85\x03\ \x67\x2b\x07\x72\xc5\x0a\x67\x4c\xa8\xa4\x10\x37\x5b\x25\xbd\x66\ \x46\x80\xf2\x90\x37\x51\x52\xed\xf0\x95\x6a\x8a\xd5\xa7\xdc\x13\ \xf0\x94\x74\x14\xb5\x34\x97\xe3\x96\x78\x55\x2b\x4e\x5b\x7a\x3d\ \xcc\x8b\xca\x0d\xc8\xff\xfd\x8f\xc9\xf5\x46\x63\x8f\x3d\x61\x45\ \x99\x50\xd2\x25\xc8\x44\xbb\x5d\x1e\x50\x04\x61\x49\xa8\xa4\x02\ \x53\x6b\x6a\xaa\x46\xa6\x9a\x1f\x64\x6b\xb9\xd0\xe7\xd6\x79\x44\ \xee\x7b\x47\x4e\x49\xff\x6b\x52\x26\x10\xff\x89\x75\xfd\x02\xf5\ \xe5\x6e\xb9\x67\x86\xe2\x3d\x61\x80\x1a\x25\x1d\x4d\x0e\x26\x3e\ \xf3\x91\x7b\xa7\xe6\x8e\x59\x11\x0e\x4a\x05\x78\x52\x7b\x12\xc1\ \x4b\x4f\x09\x22\xd5\x7d\x3a\xc2\x51\x91\x7e\xbd\x02\x66\xab\x76\ \x2c\x18\xa1\xd7\x03\x50\x42\x7a\xed\xc8\x2a\x69\x4f\x1b\x93\xd1\ \x53\x52\xd2\x2b\xb1\x5f\x60\x73\x09\x1c\xc5\x08\x8a\x48\x4a\x0f\ \x52\xc5\x07\x62\xb8\x1c\x3c\xeb\xe2\x78\xc5\xa3\x3f\x2a\x1e\x39\ \xbe\xfa\x4d\xc1\x6c\xd7\x73\x6a\x51\x51\xe7\x49\x37\x75\xb4\xcb\ \x87\x22\xc9\x67\x20\x73\x92\xa1\xdc\x13\x89\xde\x51\xd6\x51\xc5\ \x52\xd5\x54\x02\x6e\x1e\xf5\x54\xac\x1e\xed\x9e\x07\x7d\xc9\x28\ \xe4\xb9\x75\x77\x6c\xd9\x7a\x60\x19\xb8\x82\x4f\xe5\xa5\xa4\x76\ \xbf\x90\xe5\xbe\x4b\x50\x27\xa6\x3f\x62\x62\x6a\x9f\x56\x3e\x72\ \xbd\xf3\xa3\x71\x43\x11\x7c\x44\x89\x08\x4d\x2a\x81\x07\xf3\x10\ \x86\xfa\x06\x74\xf8\x7b\x9f\xbb\xee\x3a\x54\x52\xc2\x69\x86\xd3\ \xb6\x8a\xba\x5c\x7b\x0e\xc4\xca\x7d\x96\xbc\x53\x52\x59\xee\x41\ \x41\x7f\xf5\x94\x96\xc1\xaa\x8d\x97\x2c\xb5\xda\x10\x38\xc7\x5d\ \x84\xe1\xc0\x69\xed\x9f\xc0\xd7\x03\xd2\xa8\x55\x63\xc3\x87\x8f\ \x36\x4c\x9b\xdb\x55\xc3\x5a\x8f\x63\xec\xb6\x0c\xd1\xed\x67\xf7\ \xc1\xea\x9e\xa3\xe8\x4b\xf2\xa4\x3d\xe4\x27\x5c\x24\x73\xc8\x45\ \x6d\x9a\xd7\xa2\xbe\xa7\xa6\x67\x4f\x85\x84\x4f\xa4\xa3\x31\x4f\ \x81\xab\x2a\xb3\x43\xb8\x9f\x7e\x0a\xa1\xdd\xd9\x03\x96\x1e\x01\ \x38\x37\x01\x4e\x58\x99\xf6\x5a\x91\xae\xe9\x78\x39\x3d\x2e\xf7\ \xdd\x0d\x2f\xbf\xec\xd2\x0d\xb0\x80\x9e\x4d\x9c\xdc\xf4\xa0\x9d\ \xbb\x4d\x8b\xd3\x98\x52\x1e\xfd\xc6\x1c\x35\xa0\x98\xa3\x05\x49\ \xbe\xda\xb0\xd7\x02\x7d\xd9\x08\x81\x1e\x9c\xa9\x4a\x56\xd2\xdd\ \x1d\x09\x9f\xee\xb1\x9d\x34\x43\x1e\x96\xda\xce\xac\x92\x4e\xbe\ \xed\x70\xd0\xc9\xa9\x7f\xb7\x48\x4f\x9d\x34\xea\xb1\xd1\x80\x6c\ \x15\xed\x78\x1b\x3c\x79\x6c\x3d\x5d\x2a\xf1\x7b\xb4\x40\xfa\xcf\ \x5d\x67\x1c\xe5\x29\x4d\x03\xf4\xcc\x45\x04\x7a\x55\x1f\xac\xe9\ \x1d\xc0\x99\x61\x21\x61\xde\xe9\xa0\x93\x35\xb3\xb4\xab\x8c\x7b\ \x4b\xb3\x6b\x91\x5e\xdc\xef\xb7\x7a\x89\xd2\xb8\x40\x8c\x5a\xde\ \x14\x54\x04\xa9\xdb\x35\xaa\x57\x2f\x03\x68\xeb\xfa\xd6\xe4\xef\ \xdf\x73\xe1\x95\xab\xad\x63\x77\x4a\x0a\x9e\x74\xf5\x50\x46\xa7\ \xb9\xb4\x6e\xa1\xe7\x18\x6a\x22\x41\x65\xdd\x73\x0b\x2d\xa9\x97\ \xa4\x67\x8d\xfb\x0e\x5f\xd6\x26\x65\xf5\xb9\x1e\x46\xc7\xc6\x84\ \x3c\x5c\x36\x04\xff\x54\xf4\x3b\xdf\x70\x4a\x0a\xd5\x87\xc3\x61\ \x98\x61\x25\x63\x3d\x2d\x03\x47\xc3\xc2\xc0\x5c\x7e\xf6\xdc\x68\ \xa4\xac\xfb\x8e\x85\x41\x09\x6e\x34\x1e\x57\x91\x5e\x42\x8b\x02\ \x1f\xed\x47\xa5\xed\xe9\xe7\xaf\x38\x73\xdb\x45\xaf\x00\x98\xf9\ \x5a\xe2\xc9\xe3\x05\x3a\xd2\x3f\x1b\x81\x92\x8a\x27\xbd\x33\x2f\ \x89\x56\xcc\xc1\xc0\x79\x23\x7a\xf0\xa0\x40\x68\x38\xfb\x96\x5a\ \x39\xcd\x75\x4d\x8e\xff\x48\xf7\xe3\x8a\xdd\x93\xec\x73\xb4\xf9\ \xb5\xdf\x3c\x06\x87\x7b\x9e\x64\xb0\x1a\x03\x32\xdc\x74\xf3\xd0\ \x6b\x4c\x96\x26\x9d\x92\x96\xe4\x49\xd7\x75\x38\x6c\x86\x3c\xf9\ \xe3\x4b\xb6\x36\xbe\x9e\xfe\xfa\x84\x05\x39\x98\x29\x64\x84\xbb\ \x54\xf0\xd3\xed\x44\x5a\xf4\x28\xf8\x86\x4a\x43\x0d\xc1\x04\x6c\ \xa4\xd1\x6b\xac\xfc\xd7\xfe\xc5\x60\x25\x28\x29\x46\x4f\xb5\xb5\ \xec\xb9\x61\xc5\x4a\xba\xb8\xa9\xc6\x40\xef\xb5\x4e\x49\x1a\xd6\ \x83\xbe\xdd\x26\x00\xe7\x5d\x43\x20\x61\xec\xa8\xe0\xec\xf2\x1f\ \xb7\x4c\x9f\xb9\x13\x1b\x22\x1d\x15\xb9\x7f\xe8\xa6\x7b\x26\xbf\ \x72\xf5\x7a\xc4\x88\x19\xed\xda\x3a\x37\xe0\x5e\x8b\x4a\xea\x22\ \xd2\x33\x58\x49\x61\xb9\x37\xb4\xe6\xaf\xf7\x96\x2b\x3e\x7f\xbe\ \x9b\xf7\x7c\xc7\xd0\x85\x7a\x1b\x3e\xf8\xd9\x7d\xfd\x4e\x51\xea\ \x02\xa9\xcb\x9c\x20\x30\xd5\x50\xc5\x94\xb4\xf8\x03\x1d\xbd\xfc\ \xfe\x49\x8b\x6e\x13\x95\x31\xf6\x20\xd2\xd9\x86\xed\xd6\xd8\x26\ \x4a\x6a\xa0\xee\x05\x25\x6d\x55\x86\x78\xb9\x1f\xb1\x79\x6f\x1c\ \xb6\x32\x47\x86\xc9\xfe\xc0\xcc\x2e\x2a\xa8\xa3\x64\x07\x44\x9c\ \xd4\x73\x44\x8a\xb4\x76\xd2\x0f\x11\x6e\x7f\x7c\xd7\xe0\x3d\x6f\ \xfe\x21\x00\x78\xc4\xfa\xfc\x4f\x24\x95\xd4\x50\xf9\xdc\x62\x40\ \x07\x86\x33\x3c\xbb\x9f\x07\x93\x65\xac\x9e\xbc\x17\x9a\xee\x24\ \x6b\x0a\x4e\x65\xf9\x05\xe9\xe8\x05\x9e\x23\xb9\x7d\xd8\x6f\xe5\ \x96\x8e\x03\xe1\xcf\x58\xa4\xc7\x83\x92\x82\xd9\xe7\x55\x39\x09\ \x9e\xd4\xc0\xfc\xfc\x5d\x23\x0d\x73\xfe\x8e\x61\x87\x0b\xb8\xe1\ \x0c\x6f\x44\x8b\x08\xe3\xde\xbc\x56\x28\x76\xb9\x00\xa8\xbd\xd6\ \x1e\xcd\x38\xef\x1e\xce\xe4\x48\x5f\x83\x2a\x81\x05\x4a\x4a\x5a\ \xd9\xeb\x0a\x60\xf5\xe6\x1b\xbe\x4e\x7f\x8d\xe9\xa1\xd5\x38\x7f\ \xd3\xce\x00\xa6\x94\xa9\x1c\x37\xd6\xd3\x5e\xdd\x78\x78\x7f\x58\ \x19\x2f\xf4\x81\x01\xa2\xcb\xcf\x79\xd3\xed\xae\xa0\x39\xec\xc8\ \x5f\x42\x70\x07\x49\x8c\x96\xbe\xda\x7e\x1d\xd6\x03\x9c\x1f\x25\ \x2e\x5e\xf8\x7d\xd4\xcf\x87\xf6\x9d\xf6\xee\xdb\xb6\x3f\xfa\xc0\ \xb0\x53\x64\x44\x96\x95\xc0\x50\x01\x0a\x0f\x25\x24\xd1\x96\x18\ \x80\x6c\xc5\x7e\x34\xca\x45\x9a\x2d\xd0\xd3\x4f\x0d\x65\x00\xe9\ \x13\xa0\x09\x7d\x52\xd2\x75\x1d\xbb\x6f\x73\xc2\xbc\x94\xe3\xce\ \x81\xa2\xdd\xcd\x3b\x76\x15\x65\x96\xd7\x54\xd0\x29\x4b\xa7\xa3\ \x6a\xfa\x2c\xf1\x14\x29\xde\x06\x4f\x77\x91\xe1\x1c\x15\x9d\x86\ \x3e\x03\x15\x85\x7e\xce\x54\x43\x50\xdc\xb7\xb2\x7f\x1d\x20\xbd\ \xe9\x8c\xfb\x09\x26\x74\xc9\xfd\xcb\x0f\xb6\xec\x30\x2e\xa8\x51\ \xa3\xbf\xf7\x4a\x25\x24\xf5\x0c\x7f\xd9\x93\x22\x4b\x63\x1d\x6d\ \x79\xc9\xb2\xb6\xfc\x30\x28\x39\x05\x80\x76\xa4\x25\xf7\x9b\xa0\ \xb3\x00\xf4\xc7\x2a\x73\xb8\xdb\xc2\xbc\xca\x0c\x7f\xaf\xf2\x3c\ \x18\x94\x4a\x24\x47\x5a\x44\x4d\x27\x88\xa5\x13\x29\xf7\xa4\xfb\ \x89\xc6\xc7\xa3\x66\xaa\x3c\xb8\xc1\x19\x89\x9e\x8e\x00\x63\xea\ \xd4\x96\x5e\x14\x9c\x53\x8f\x3f\x70\xc4\x66\x53\xfe\x9c\xd1\x6d\ \x99\x99\x7f\xc9\x9f\xeb\x10\x1d\x45\xac\x70\x75\x0f\x1d\x94\x14\ \x2a\xb1\x57\x7f\x7c\xd7\x8a\x75\xee\x11\x2e\x3c\x1e\x69\x51\xfd\ \xe7\xae\x9e\x6b\x7d\xf9\x18\xc5\x42\xf3\x3b\x86\x79\xdd\x6c\x24\ \x6b\xe3\xd1\x9f\xb0\x2f\xc7\xcd\x1f\x4d\x6f\xdf\x8c\x3d\xb6\xae\ \x07\xe2\x43\xc6\xb3\xfe\x92\x1c\xe8\x1d\x27\x02\xac\xcf\x0e\x6a\ \xa4\x9b\xd6\x3c\x64\xb2\xa5\x55\x5b\x87\x4b\x05\xef\x87\x6b\xd2\ \xa7\x42\x01\x62\x6a\xfe\x68\xfa\xfc\x4d\x4b\xa7\x76\x02\x50\x7e\ \x18\x28\xfe\xfd\x95\x1f\x3e\xb6\xed\x4b\xcf\xe2\x52\x35\x3b\x68\ \xd5\x4c\xa7\x99\xb9\xd4\x4b\x9d\xc2\x95\xf1\xd3\x27\xac\x43\x46\ \x66\x63\x1b\xb4\xa2\xf6\xf6\x06\x99\x53\x2c\xff\x70\xd2\xd7\xbb\ \x9c\x31\x8f\xfc\x05\xb1\x13\x96\x9c\x2b\xda\x08\xaf\xea\x74\xa3\ \xab\xcf\xd9\x2c\x3a\x6f\xc9\x57\xba\xa7\x24\x92\x7c\xd8\x54\xd2\ \x80\x18\xef\x78\xc4\x27\x01\x46\x27\x2a\x3d\x01\x58\xfa\xab\xe0\ \xf6\x43\x13\xfa\xcf\x2c\x71\xe4\xee\x50\xf3\x47\xc5\x3d\x05\x79\ \x48\xbc\x65\x0f\x4a\x4a\x0c\x1d\xcd\x1e\x66\x56\x29\xcd\x4e\xc0\ \x2a\xfa\x69\x91\x0a\xd4\x4c\xba\xdb\xb3\x8c\x60\xfe\x3f\xe6\x8f\ \xaa\xb2\x93\x7f\xb1\x2f\x65\xa0\xa0\xa4\x77\xbe\x7b\xe3\xca\x95\ \xab\xd7\xdd\xbe\x30\x9c\xe1\x3a\xa9\xae\x39\x3b\x91\xcb\xb0\x71\ \xbd\x85\x63\xc1\xa2\x7b\x4a\xd9\xfc\xb8\x5e\x7c\xa9\x3e\x68\x0d\ \x45\xa4\x7a\x32\x36\x28\xe9\xdd\x9d\xbc\xd1\xe9\x77\x66\x1a\xc1\ \xbc\xe9\x2a\x9a\x3e\x6b\x6f\xe9\x7d\x51\x23\xbc\xc5\xee\x7f\xfd\ \xf9\xa3\x96\x5a\x0a\xa5\x62\xa9\x20\xad\x9d\x27\x9d\xf5\x17\x51\ \x9f\x2a\x2c\xe5\x12\xc9\x66\x7d\xdc\x44\x8a\x5c\xcd\x12\x83\xa9\ \xa4\x2d\x33\x0c\xf3\x30\x72\x4e\xfb\x51\x45\xf5\x33\x26\xd1\xd9\ \x33\x2c\xb8\xfe\x10\x9e\xaf\xaf\x62\xa4\x95\xc6\xa8\x8e\x08\x65\ \x89\x39\x35\xda\xdd\xeb\x29\x6f\xcd\xf4\x36\x53\x02\xe9\x36\x6b\ \x49\x7f\xdb\x90\xbc\x3e\x3c\x80\x81\x30\x65\x76\x7b\xd2\xec\x05\ \x6a\x3c\x22\x55\x4b\x3e\xfe\x2b\x18\x61\xb1\x24\x6d\xfa\xcb\x2d\ \xd0\x2d\x1d\x84\xa9\xaa\xce\xfc\x87\x25\x34\x4b\x45\xf2\xd8\x3a\ \xe8\x9d\x63\x55\xf3\x9e\xb4\xed\x87\xb2\x8f\x39\x4a\xf8\xd8\x8e\ \xf4\xd4\xe1\x79\xc8\x39\x5e\xf5\xbb\x57\xdc\x94\xe7\xaa\x3c\xca\ \xc2\xb7\x54\x0b\x57\xd3\xc7\x57\xe5\xe0\x95\x66\x29\x5f\xe3\xfd\ \x68\x32\x67\x6a\x44\x4a\x6a\x3d\xe9\x9c\xcd\x28\x47\x97\x80\xe4\ \x73\x0f\x24\xf2\x95\x51\x8a\xc7\x97\x4d\x26\xb6\x7a\xff\xef\xdf\ \xc4\xcd\x8e\x81\x3d\xa5\x47\x2b\x44\x03\x7f\x04\xec\x13\xdb\x64\ \x6d\x9a\xed\xa7\x8e\x33\x45\x62\xd7\x27\x9a\x32\xf6\xa5\x6c\x4e\ \x91\xdd\x8f\x9f\xed\xa8\xa2\xd1\xa8\xdd\x51\xb0\xd6\xf5\xd4\x68\ \xe4\x25\x79\xa9\x33\x77\x25\xfe\x45\x21\x0d\x56\x4f\xf3\xf5\x54\ \x34\xd3\xf3\x47\xf5\x21\x0c\x7d\x9e\x29\xb2\x25\xbd\xdd\xa0\x6a\ \x64\xcf\x73\x40\x32\x5a\xb3\x7d\x38\x43\x38\x8b\xc4\x80\xbf\x0a\ \xa7\xb8\x07\x6d\x99\xed\xd0\x47\xbd\xe4\xfc\xd1\x43\x8e\xfa\x4a\ \xeb\x67\x6e\xb2\xfb\xd1\x08\xaa\x5a\x3b\x16\x06\xd7\xf7\xf2\xe8\ \x28\x9b\x34\x3a\xa2\x6e\x02\x47\x43\x12\xa4\x40\xbf\xee\xfc\x51\ \xd8\x64\x8a\xfb\xf0\xc9\x43\x31\x4b\x73\x7b\xdd\x74\xe4\xba\x4d\ \x26\xc7\xe8\xcb\xdf\xe7\xfa\xbf\xca\xce\xdd\x55\xb2\xac\x0a\xe3\ \xbe\xea\x3c\x76\x75\xdd\xe6\xf6\xbd\xed\x5c\x54\x1a\xbb\x07\xc4\ \x99\x40\xc5\x69\x1d\x75\x50\x26\x52\x04\x15\x44\xc4\x89\xd4\x44\ \x06\xf1\x89\x18\x34\x46\x62\x20\x9a\x75\x64\x24\x18\x0a\xc2\x80\ \x99\x68\x26\x9a\x75\xa0\xe1\x04\x82\x30\xa1\x88\x7f\x83\x5d\xfb\ \x7c\xac\xc7\xf9\xed\x25\xed\xa9\x5b\x75\x1a\x3a\x59\xac\xbd\xd7\ \xf3\xf1\xad\x1d\x95\x4d\x2e\xc9\x22\x8b\x4f\x78\x5c\x49\xba\x8f\ \xe1\x14\xd0\x44\xc4\x71\x1e\x3e\x81\x9f\xb9\xbe\x7c\xfb\xf6\x69\ \x8e\x86\x49\x1c\x05\xd4\x57\x6b\x40\xf8\x8b\xb8\x79\xd6\xd7\x5e\ \xe1\x8f\x12\xd7\xf3\xc4\x4e\x57\xf1\x34\x8d\x8a\x5c\x76\x32\xe3\ \xec\x32\x14\xbe\xce\x9d\xc3\xc0\x6b\xda\x73\xa7\x63\x97\x4a\x3d\ \xd4\xf8\xa3\x41\x92\x14\x85\x96\x58\x15\x11\xc8\x79\x12\xa5\xf6\ \xc0\x84\xae\x69\xb0\x65\x3c\x77\x65\xc8\xd8\x52\x4e\x87\x1a\x7f\ \x94\xe1\xb2\x17\xc2\xe7\x84\x38\x3d\xc7\x51\x11\x14\x6e\x6d\x2e\ \x94\xa0\xae\xa2\xd6\x31\x8a\x08\xf3\xa6\x04\x44\xe6\x28\xf1\x47\ \x99\x80\xe0\x70\xbd\xde\xa9\xba\x9c\x79\xca\x93\x77\x28\xaa\xd5\ \x26\x99\x9c\xaf\x87\x10\xdf\x05\xc7\xb9\xc6\x1f\xa5\xc2\x67\xb0\ \x5c\xef\xaf\xcf\x1b\x65\x06\xb3\x96\x11\x15\xbd\x98\x61\xe5\x90\ \x35\x81\x08\x6b\xac\xf1\x5b\xc8\x3e\x68\x4d\x30\x8f\xdd\x4b\x62\ \x9d\xa5\x9c\xb1\x6e\x24\xd7\xa7\x6b\x9d\x58\xce\xd9\x82\xd2\x74\ \xf4\x27\x78\x79\xb5\xd2\x4f\x8b\x4d\xdd\x32\x71\x0e\x43\x7c\x64\ \xb4\x9c\x31\x6a\xe8\x91\xf2\x91\xd4\xe3\xe4\xfb\xc7\x19\x6a\x39\ \x1d\xce\x82\xbb\xad\x17\x75\x59\x45\x61\x38\xf0\xe0\x98\x9e\x8a\ \x98\x0f\x0b\x86\x6f\x6a\x8e\xa2\xbb\x5d\x74\xc6\xfc\xc3\x65\x98\ \x17\x30\x96\x5a\x5b\x09\x9a\x86\x45\xa5\xc8\xb4\x11\x31\x0c\xde\ \x01\x2c\xb5\x26\x54\x1c\xf5\xb3\x9f\x93\xd6\x8f\xdd\xc3\xa2\x71\ \xce\x87\xcf\xc7\x85\x29\xba\x79\xa2\x6e\x87\x88\xff\xff\x40\xcf\ \x92\xa1\xe2\xa4\x84\xdf\x1f\x0d\x87\x61\x2d\x57\xf2\x47\xf2\x1e\ \x04\x22\xba\x66\xf0\xf6\x24\x4d\x84\xa3\xa2\x7a\x82\x0d\x15\x47\ \x01\x43\x39\xe7\xe5\x5c\x40\xff\xc8\x92\x8f\x87\xe0\xed\xba\xa1\ \xcf\x06\x8f\x9c\xb0\x67\x85\x8f\xdb\x7f\x37\x32\x8f\x49\x8f\x8a\ \xd2\x61\xf7\xb0\xa2\x65\xc1\x64\x6e\xdc\xc5\xa0\x25\x70\x9c\x31\ \x72\x37\x1e\x65\x2b\xa6\x18\x6d\x67\x07\xcd\xa7\x1f\xfd\xdc\xa6\ \x1d\x9d\x4d\x74\xae\x46\x22\x60\xde\x00\x00\x11\x79\x9a\xe3\x25\ \xc6\x4c\xbe\xb8\x3e\x36\x3a\x52\x8d\xba\x7e\x1a\xe2\xe6\xad\xd6\ \x4a\x76\x7e\x75\xa9\x82\xa9\x27\x50\xaa\xfe\x65\x14\x8e\x13\x7a\ \x58\x0d\x6e\x01\x93\xc8\x34\xa1\xcf\x4d\x84\x36\xc5\xa8\xe6\x27\ \x39\x50\xfd\xe3\x6e\x73\x95\x7f\xc8\x60\xa9\xcc\x93\x10\x42\x8b\ \xeb\x3a\x66\xbd\x33\xa4\xab\x34\xa8\x9b\xd0\xd6\x49\xdd\xab\x51\ \x3f\xf6\xed\xcf\xfb\xf1\x2f\x28\x4b\x05\x84\x92\x18\x5b\x2d\x36\ \xa5\xcc\xd3\x84\x6a\xe6\xae\xa3\xbe\xcc\xb6\x87\x11\xf9\xbc\x04\ \xa2\x04\x66\x8a\x8f\xf1\x93\x9e\x67\xc3\xcd\xbb\x94\x5d\x2a\x3a\ \x33\x9b\x06\x04\x03\x30\x15\x12\x7a\xf2\x44\x8d\x9b\x75\x26\x9f\ \x20\x4a\x3a\xf6\xf8\x43\xf5\x94\x9e\x64\xe5\x2f\xf3\x26\x84\xd6\ \x8f\x5f\x93\x77\xda\x1c\x19\xb2\xa3\x4d\xa7\xcf\x11\x46\xfd\x45\ \x86\x22\x0a\xd5\x37\x07\x77\x37\xd5\xba\x0e\x89\x7c\x9c\xb9\xd3\ \xa3\x9b\xa9\x37\x2d\x67\x5b\x0c\xe5\x2d\xce\x2f\xc3\xd4\x8b\xbc\ \x3a\x0a\x2d\xb6\x04\xa7\x15\x3d\x9e\x2f\x41\x17\xbe\xff\x13\x5b\ \xf9\x88\x53\x03\x99\xcf\xbe\xa8\x43\x7d\x29\x4f\x92\x57\x49\x21\ \x41\x3a\x2a\xdd\x04\x33\x8f\x4d\x77\x2d\xaf\x91\x9a\x87\x70\x3a\ \x74\x9b\xf5\x74\xd2\xdc\x85\x1e\xca\xd2\x60\xbc\xbe\xc4\xc3\xd7\ \x0c\xa3\x87\xcc\xde\xdf\x1e\x81\xd1\x47\xbc\x74\x81\x0a\x35\x11\ \xf0\xb5\x5e\x7f\x12\x24\xca\x5e\xe5\xf4\x4d\xa8\x35\xc5\x99\x50\ \xfd\xf8\x48\x8b\x1a\xc7\xa7\x9c\x76\xf2\x08\x14\x04\x26\xb6\xba\ \xc5\x87\xb1\x47\x8c\x47\x3c\x7c\xd9\x79\xf3\x9d\x30\x28\x64\x18\ \xde\x6d\xca\x30\x25\x04\x01\x91\x83\xbf\xae\x69\x2c\xd8\xee\x69\ \xa2\x92\x63\xeb\x35\x1e\xfe\x25\x86\xc1\xa5\xa5\xb2\xa1\x6f\x3e\ \x1c\x98\x57\x73\x65\xf4\x7e\x63\xa8\x11\x49\xc7\x99\x00\x10\x22\ \x35\xe9\xd3\x9b\x72\xe3\x95\xd0\x15\x2e\x15\x33\x61\x67\x64\xb3\ \xa5\x67\x50\xf8\x21\x06\xa5\x97\x87\x64\x9e\xf4\x14\x00\x55\xe0\ \x3a\x0d\xf1\xf0\xf3\x9c\x10\xb6\x09\xb5\x16\x6f\x69\x23\xfa\xb0\ \x52\xf8\x1a\xbc\xc2\x93\x72\xf8\x2c\x89\xd9\x35\xa5\x65\x2a\xba\ \x08\xb9\x55\x64\xd2\x37\x0a\x52\xf6\x48\x17\xc7\x7b\x5a\x85\xf7\ \x04\xe3\x74\x91\x6d\x3e\xcf\x7e\x68\x3f\x6f\xd0\x9b\x67\x5a\x14\ \xa5\xbb\x84\xa1\x34\x4d\xb8\xa3\xf9\xf8\x97\x0a\xef\x49\xb2\x24\ \x62\xc7\xb5\xd0\xb1\x1e\x55\x1a\x17\x35\x11\x6f\xd5\x70\x1a\x13\ \xdc\x7c\x9b\xc1\xd1\x12\xef\x49\xc4\x65\x04\x2d\xc2\x94\xf8\x1f\ \x8d\x28\xb3\x8e\x8c\xeb\xb1\x46\xcc\x91\x32\xe7\x12\xda\xd1\x7f\ \x28\xf7\xb1\x7a\xc7\xbc\x38\xd5\x68\x8d\x58\x20\x62\x71\xf0\x36\ \x0c\x2c\xf4\x97\xf0\xb8\xac\x1b\xb5\xdc\x7b\xc3\x12\x23\x61\xfb\ \x81\x3f\x59\xe0\xe1\xcf\x73\x59\xb2\x8d\x14\x37\x61\x2c\x60\x5b\ \xa8\xb3\xb4\xae\x83\xba\x81\x22\x92\x8e\xe7\x9d\x89\x91\x4b\x76\ \xe6\x0b\x90\x59\x6a\x7c\xa5\xef\xec\xed\x0f\x32\xfb\x9c\xaf\xf7\ \x2a\x23\x59\xea\x5a\x34\x52\x59\x03\x53\x01\x26\x37\x90\x9a\xa4\ \x9e\xab\x25\x44\x62\xfc\x5b\x4d\x96\x52\xd3\x93\x47\xcc\x3c\x78\ \x46\x4d\x37\xaa\x2e\xb3\x6a\x0b\xa1\x37\xb1\x57\x5a\xa7\xd1\x36\ \x89\xa3\x7e\xfa\xc0\x20\x4c\x29\x47\x64\x47\x51\x0e\xaf\xd1\x89\ \xdc\x75\x66\x70\x27\x69\x0f\x80\x3f\x9d\xa3\x96\x21\x5d\x7c\x5e\ \x3d\x2e\x3b\x5b\x17\xc0\xcc\x77\x22\x89\x36\x8e\x06\x2d\x10\x5a\ \x44\x23\xde\x5b\xc0\xfd\x4c\x21\x56\x86\xb5\x77\xa1\xe7\xe8\x3a\ \x8a\xb6\x94\x28\x7d\xa8\x9e\x4e\xf5\x72\x89\xac\x9f\xb8\x39\x50\ \x93\x81\x53\x26\x72\x75\x8b\xd4\xe2\x9c\xfd\x21\xa5\x74\x10\x2b\ \x9b\x2c\x11\x28\x15\xdb\x2d\x3d\x58\x22\x7e\x96\xee\x67\xb4\xa2\ \x63\xd8\xbc\x18\x82\x72\x43\xb0\x2b\x7c\xe3\x25\x3d\x52\x7b\x71\ \x7f\x3d\x05\x49\x92\x14\x48\xc5\x5a\x53\x28\x7c\xc4\x4c\x5c\xcf\ \x74\x10\x53\x9d\x54\xaa\x52\x5a\x7b\x9a\x50\xc2\xbc\x65\xae\x36\ \xf7\x9e\x68\xea\x33\x82\x52\x86\xd2\x71\xb4\x4c\x2e\xe4\x83\x83\ \x3f\xdc\x82\x91\xf1\xf0\x75\xea\x65\xf3\x4b\xd3\x07\x4b\x9a\xe8\ \x94\x64\x2b\xba\xa6\xdc\x83\x9b\xf9\x25\xd2\x19\x22\x65\x7a\x7b\ \x63\x6c\xe4\x44\x21\xed\x68\xab\xf1\xf0\x93\xc6\x27\x04\x44\x94\ \x79\x56\xc3\x76\x8d\xae\xc0\xcd\x3b\xf1\xd4\x1d\x22\x37\x05\x76\ \x93\x4e\xde\x62\xa7\xd1\x52\x3e\xa7\xaf\x9b\x2a\x7a\xf7\x7e\xec\ \x20\x57\x7a\xb4\xde\x7d\xc3\xdc\xd3\xd1\xd4\x28\x21\x6a\x6a\x2c\ \x9d\x33\x71\xb1\x72\x4b\xae\x8a\xa1\xd8\x64\xfd\x36\xe7\xa8\x7d\ \x50\xb4\x45\x24\x62\xd2\x0f\x8e\xb6\x04\xef\x98\x1b\x9f\x44\x9f\ \x23\xd2\x29\xf5\xc8\x45\x9c\xe2\x2a\xf3\x8d\x75\x83\x16\x92\xa3\ \x49\xec\x47\xf9\xf1\xe0\x2e\x03\x13\x5d\x12\xbf\xae\x4b\x81\x91\ \xea\xae\x5e\x11\x35\x45\x97\x84\x96\xc9\x1c\xd2\xa8\xe8\xf3\x1d\ \xa5\x8a\x02\x7a\xfb\xe2\xc4\xea\xdb\x92\xad\xbf\xb0\x9a\x48\xb1\ \xd5\x96\x7b\x4d\x89\x87\x4f\xc1\xf7\xdc\x63\x34\xf2\xa2\x52\x31\ \x13\x8f\x5d\x2f\xe6\xf3\x12\xb5\xb1\xe7\x2d\xb5\x3d\x39\x95\xe3\ \x94\x0e\xd4\x68\x60\xed\x11\x71\x3d\xe0\xfd\x26\x64\x20\xf4\xb2\ \x95\x91\x74\x49\xa3\xa5\x5f\x90\xc5\xa7\xe8\x1b\x1e\x3e\xc5\x09\ \xc2\xa4\xaf\x3b\x25\x4a\x91\x45\xa7\xc4\x39\xba\x3a\x86\x33\x61\ \xbc\xb1\xcd\x1a\x71\x3d\xa4\x89\x24\x46\x90\x5c\xa2\xa5\xb6\x94\ \xd2\x11\x91\xd0\xa5\xbe\x71\x9d\x5b\x9a\x9c\xa3\x34\xf3\xbc\x9f\ \x84\x4c\x4c\xdd\xe3\xfa\xc6\x48\x44\x1b\xac\x0d\xdd\x4f\x25\x26\ \x63\xa8\x5b\x4f\x47\xcd\x23\x7c\x7b\x56\x4d\x14\xa8\xa4\x50\xfd\ \x61\x75\x99\x78\xf8\xd5\x96\xe0\xfe\x07\x27\x2f\x06\x77\x63\x2b\ \x9a\x6a\x22\x5c\x69\x6b\xf2\x34\xdc\xb6\x0e\xb7\x84\xce\x3d\x43\ \x12\xd9\xa5\x28\xf7\xdc\x67\xdc\x82\x28\x65\xfd\xc4\xd0\x2e\x6d\ \xb8\xd4\x2f\x12\x10\x84\xc2\x07\xa5\xb2\xed\x0d\xbb\xac\x27\xb2\ \x74\xd1\x6f\x10\x7a\x56\x6d\x4d\xe9\xb3\x7c\x03\x13\x5a\xf9\xa3\ \xfa\x83\x59\x72\x34\xba\x9c\x18\xf7\x44\x6e\x0c\xf1\xea\x26\xc2\ \x48\x2d\xb6\x09\xf5\x2f\x9e\x21\xfa\x68\x59\x5f\x6e\xc1\x32\x59\ \x85\xd1\xde\x2b\x6a\xa1\x0d\x2b\x1b\xcc\x86\x9a\x19\x85\x7a\x02\ \x33\xb9\x8b\x11\x6d\xae\x26\xf5\x99\xad\xcd\x5c\xbe\x69\xce\x9d\ \x0f\xab\x1d\xfc\x28\x35\x0e\xd3\x44\xe3\xa9\x37\xf3\x79\x1c\xbb\ \x4a\x10\xa4\xf4\x9e\x24\x4c\xc6\x49\x6a\x51\xe3\x69\x94\xaa\x8b\ \x24\x52\xce\x55\xda\xa6\x02\xce\xf7\x08\x5c\x4f\x80\xd4\xd0\x1f\ \x4d\xe4\xce\x11\xf6\xa5\x39\x81\x65\xbd\x56\xa2\x24\xc6\xc2\xcb\ \x63\xf6\x49\x7a\x14\x93\xcb\xc1\xc9\x23\x47\x13\x9d\x1e\x2d\x4f\ \x86\xa7\xb2\xae\xa6\xfa\x09\xdd\x0e\x41\x42\x74\x07\x7e\x16\x99\ \x12\x20\x92\x51\x9e\x1c\x1f\x95\x81\xbd\xfa\x5e\x1c\x83\x90\x86\ \xc9\x55\x54\x08\x9a\x19\x37\x81\xd2\x4a\x3d\x1d\x4b\x7f\xd4\x02\ \x66\x38\x4f\xab\xfe\x42\xe7\x4b\x63\xc5\x16\x23\x18\x00\x6f\xf7\ \x10\x94\x47\x7f\x2b\x49\x92\x91\x6a\x32\x6f\x21\x48\xf4\x9e\xf4\ \x71\xc8\x1f\xc7\xf6\x34\xc1\x87\x36\xc5\x8a\x9e\x65\xc8\x4c\xe6\ \x9e\xf2\x25\x35\x32\x4b\x7f\xd4\x93\x0f\x8c\xee\x44\x69\xd8\x61\ \x0e\x43\x8f\xbd\xf0\x7a\x11\x18\x9d\x52\x3f\x3a\xfb\xca\x1f\xd5\ \x91\xfb\x6f\x7a\x24\x48\x1e\x8c\x30\xa6\x4f\xf5\xda\x05\xf9\x66\ \xb0\x12\xe5\x9b\xa1\x22\x75\x60\x15\xab\xdd\xe8\xdf\xc4\xa1\x74\ \x86\x46\xef\x7e\xcd\xc2\x94\xd4\x3d\x15\x3e\xb1\xe6\x2f\x2a\xa7\ \x64\x06\xde\x53\x1a\x66\x9b\xe2\xc2\xc8\xe4\x3b\x2f\x46\xa9\x40\ \x1d\x45\xab\x9f\x3f\x23\xbc\xe0\xe6\x61\xe7\x36\x1e\x6c\x35\xd5\ \x17\xc5\x9b\x48\x2c\xfd\x51\xdf\x6b\xea\x61\x93\xaa\x77\x2b\x89\ \xcc\xb7\x94\x69\x47\x90\x4a\x30\x5f\x17\x27\x16\x6e\x25\xf4\x42\ \x4f\xcb\x3a\x74\xb6\xd5\x5c\xd9\x36\xb5\xe2\x92\xa6\x2c\x3e\x59\ \x5a\xb4\x13\x55\x0b\xf9\x98\xc9\x75\xc9\x97\xec\x4f\x33\x90\xe6\ \xf3\x76\x89\x62\x8a\x11\xd9\xbc\x68\xe9\xf5\x2e\x3d\x7c\x96\x99\ \xce\x5f\x3a\xf7\x41\x98\xd8\xeb\x28\x41\xd2\x0b\x2b\x1b\xf4\x66\ \xad\xc1\x45\x49\xe7\x4e\x0f\xbf\x1a\x63\xac\x23\x11\x3f\xfa\xcd\ \xe7\x33\x5e\xea\x92\x6e\xe5\xfa\x35\x44\xcb\x2c\x85\x22\x2f\x5e\ \x57\x1a\x7c\x6c\x9d\xe5\x50\x3a\x7a\x4e\x9e\xd7\xee\x82\xd0\x7b\ \x76\x4c\xf5\x06\x81\x4d\xaf\x68\x22\x14\x3f\x99\x1c\x4f\xa5\x86\ \xba\x68\x9b\x75\xbd\xe7\xf3\x79\xf4\x22\xb9\x70\x48\x3d\xe1\xbc\ \x9e\xbf\xc5\x66\xae\xc3\x41\x54\x82\xa9\xa5\x30\x9d\xb0\xd3\xd6\ \x19\x0a\x15\x15\xf1\xf0\x27\x75\xea\xa4\x4c\x49\x8e\x41\x1b\x05\ \xa9\x0f\x33\xd9\x34\x38\x69\xd4\x67\x34\x78\x05\xb1\x17\x43\xe3\ \xb1\x1f\xa3\x51\x8a\x51\xe8\x20\x08\x8d\x6d\x2f\x8d\x93\x0d\xa2\ \xf6\x4c\x2c\x2d\xbd\xf2\xf8\x6c\xd0\xaa\x27\x6d\xed\x86\x0e\x02\ \xe6\x14\x87\x92\xcc\x58\xc4\xb1\x1e\x67\x9b\x0c\x73\xd9\xdf\xc6\ \x31\xe0\xdf\xfb\x30\x9b\xd7\xc3\x6e\x1c\x14\x9d\xbe\x68\x65\x9b\ \xb0\x5a\xc0\x49\x15\x71\xbe\x77\x7b\xcd\x2b\x8f\xf2\xf0\x4d\x3f\ \xfd\x83\x28\x65\x0e\xaa\xb0\x4c\xd8\xd5\x21\x99\x02\x3b\xfd\x2d\ \x8b\x0f\x79\xf2\x15\xeb\xab\x46\x2e\xe9\xe3\x4b\x8a\x80\x01\xe1\ \xe3\xab\x85\x9b\x77\x0b\xf5\x7a\x54\xc4\x9c\xd6\xa0\xa4\x72\xfb\ \x70\x6c\x75\xd3\xec\x32\x5c\x3d\xcd\xb1\x99\x65\x2a\x7a\x09\x19\ \x38\x11\x52\x83\x1d\x4f\xd4\xf7\xda\x86\xc0\x1c\xbe\xf5\xe6\x89\ \xab\x1a\x6a\xa1\x40\xe9\xb3\x1b\x07\x4f\x43\xeb\x4c\x8d\x9b\x38\ \x89\x40\xd1\xaa\x1f\xe6\x49\x3c\x18\x41\x12\xd7\x24\x49\x13\xc1\ \x99\x42\xed\xe4\xca\x90\x2a\xf5\xd2\x6d\x36\x63\x9f\xea\x7a\x3d\ \x7b\x5f\x5a\x0c\xed\xf4\xda\x69\x52\x41\x40\xf4\x4f\xc6\x1a\x8f\ \x75\x50\x09\x16\x32\x64\x91\x4e\x17\x7d\xa6\xf2\xf6\xd9\xa7\xf4\ \xf8\xb9\x5b\xd1\x36\x64\xc9\xd4\xee\xa6\x1d\xac\xc2\xc5\xe7\xb9\ \xdb\x86\x43\x56\x6d\x77\x6d\xce\x8c\x42\x8b\xd1\xe5\x0c\xfb\x63\ \x42\x64\xed\x99\xad\x71\x93\x94\xfa\x07\xd3\xd9\xb3\xda\x20\xcd\ \xb4\x8c\x43\xbb\xa2\xdb\xf1\x04\x41\xaa\xc6\x05\x4c\xf6\x7d\x28\ \x10\x60\x00\x5e\x14\x03\x99\xd6\xf9\x10\x91\x2a\xb8\xdf\x70\x98\ \x20\xad\xca\x4c\xac\x89\xb5\x9c\x20\x55\x97\x3b\xd5\x93\xad\xeb\ \x00\x44\x0d\x3c\x67\xf8\x4e\xc1\x84\xb2\x55\xa3\xc6\x4e\x63\x3f\ \x11\xb7\x48\xcd\xbb\x59\xf0\x08\x02\x20\x40\x15\x0c\x07\x1a\x6f\ \x19\x34\xf1\xe1\x28\x1b\xf3\xa3\x76\x4f\xb3\x7a\x82\xd4\xcf\xc9\ \x2a\x25\x52\xa5\x45\x25\x46\xae\xeb\xdd\x92\xee\xc5\x89\x4f\x9d\ \xc3\xc7\x0d\x8d\xa4\xb2\x37\x8f\x26\xb4\x3f\xdb\x2b\xf2\x53\x13\ \xd6\x46\x24\xe0\xfd\x4a\x9e\xf2\xe8\x47\xc0\x89\xb9\x83\x30\xf5\ \x0e\xa7\x47\x11\xa8\xb1\xd4\x00\x6a\x56\x27\xd5\xc0\x69\x96\x0b\ \xec\x0b\x85\x13\x5a\xdb\xfa\x5c\x0a\x8d\xfe\xfd\xd1\xbb\x5c\x27\ \xf3\x47\x0d\xbc\x3f\x77\xbc\xad\xc6\xd3\x65\xd1\xaf\x6f\x42\xe8\ \x72\xa4\x3d\xb1\x0b\x36\x2f\xd7\xc7\x2f\x37\x8f\x0f\xc1\x3f\x7c\ \xf2\xca\x8e\x1e\xae\x93\x64\x5e\xd0\x44\x4e\xa5\x33\xd4\x4c\xa8\ \xbc\xfc\xe4\x93\xa2\x7f\xb4\xb8\xa3\x73\xc2\xf8\x42\x72\xdc\xe6\ \x42\xd3\xa9\xcf\xee\x8b\x3a\xa9\x01\x4c\x67\x7f\x4b\xc3\x28\x23\ \x9e\xaa\x12\x7a\x83\xf2\x0d\xba\x74\x8a\x42\x93\xb2\x8f\xec\xd4\ \xf9\xca\x8f\x1e\x3f\x7e\xed\xe5\xc5\xe4\x9e\xc0\x79\x0a\x96\x0c\ \x2b\x13\xe9\xd1\x82\xa3\xa2\xf1\x64\x14\x02\x45\x89\x88\x3a\xa2\ \x90\x64\xb6\x07\x1d\x48\xf5\xd1\x9f\x24\xf9\x62\xab\x29\xd1\xdf\ \xfc\xed\x87\x2f\xba\x72\x02\x53\x73\xb5\x9e\x43\xd6\x05\x4a\x09\ \x98\x69\xce\xa8\xc5\xf5\x70\xf5\x5e\x14\xe0\xca\xbb\x9a\xa1\xbe\ \xf8\xe1\x3f\xf8\xf1\xd3\xff\x7d\xf4\x6f\x07\xad\x40\xc6\xb9\x9e\ \x5f\x16\xaa\x06\xac\x28\x3c\x27\x27\x36\x2e\x0a\x86\xa1\xff\x9d\ \x10\x47\x9f\xff\x96\xd8\x19\x19\xfa\x5a\xc7\x8c\xf9\xe4\x6d\xf9\ \xf5\x00\x2d\x28\xc6\x05\x6e\x52\xe5\xee\x84\x0e\xfc\xed\x27\x68\ \x52\x21\xb7\xeb\x82\x86\x40\x24\x12\xfb\xdb\x77\xfc\xe5\xf9\x8e\ \xe8\x79\x5c\x44\xa9\xcb\xfd\x57\x3b\xa1\xef\xbf\x5a\xcd\x75\x46\ \x02\xdf\xff\x51\x78\xf8\x3c\x7a\x9c\xbc\x0f\xb3\xa5\xde\x3c\x5f\ \xd7\xd1\xbf\xeb\x74\xfc\xc2\x73\x1d\xbb\x28\xa0\x92\xe9\x79\x72\ \xc6\xb7\x79\x8a\x09\xd8\xb6\x0d\xac\x66\xf1\x79\x49\x41\x27\x51\ \x35\xd8\x89\x8f\xd5\x5c\x76\x49\x5b\x7e\x0c\x90\xec\x8c\x53\xfa\ \xbe\x2b\xc5\x4c\x6b\x90\xa5\x37\xef\xde\x7b\xf4\xdd\x87\xb7\xb5\ \x4b\x8c\x7e\x5e\x8c\x9a\xa0\x9f\xf6\x64\x9a\xa4\x0f\xbc\x92\xb6\ \x6f\xc8\xf5\x70\x39\x56\x70\x3a\xba\xde\x4f\xe6\x81\x0d\x7d\xfd\ \x9d\x1f\xbb\xba\xdc\x36\xb0\xe6\x98\x9e\x25\xc6\x91\x7a\x2a\xba\ \x35\x8c\xe4\xfe\xab\x73\x9f\x82\x9b\x87\xbd\x37\x42\xcf\xba\xdf\ \x11\xe3\x4f\xe2\x68\x76\xf2\x0e\x86\x3d\x5a\x0e\x36\x80\x4e\xe4\ \xf0\x2f\x6d\xa7\xed\xf9\xa5\xb1\xab\xfd\x74\xfd\x3c\xc7\xe9\x1b\ \x75\x13\x19\xa9\x1b\x94\xca\xe7\xcf\xb8\xa4\x77\x88\x9b\x27\x90\ \x54\x3d\x02\x9e\xad\xf3\xa3\x8c\x99\x9c\x58\x11\xa9\x55\x77\x9a\ \x0d\x3c\xb2\x73\x78\x9a\x94\xca\xcb\x11\x93\xf2\xb9\x67\x2c\xf9\ \x17\xae\xbb\xce\xdf\x91\xd9\xa9\x14\xa9\x22\x16\x4c\x35\x05\x55\ \x97\xc1\x6d\x7f\xbd\x45\x4e\xd8\x10\xac\xbf\xa6\x2b\xd0\x59\xeb\ \xc4\xca\x73\xfa\xec\x59\x0d\xbd\x35\xeb\xe0\xa3\xbd\x17\xa9\x4e\ \x27\x2b\xb6\x64\x29\xfd\x51\x51\x3a\x1b\xb1\x45\xb8\xec\xdb\x57\ \x9d\xa3\x71\xc0\xbe\x43\x40\x7e\xfb\x24\x9d\x5f\x70\x54\x6b\x82\ \x29\xf3\xec\xcb\x24\x62\x81\x4f\x36\x14\xb9\x71\xff\xb3\x70\x39\ \x5d\x52\xb9\xcd\xbf\xef\x26\xe8\xf1\x2f\x37\x56\xda\x82\x01\xad\ \x67\x7a\x72\xff\xfc\xda\xc8\x04\x8e\x52\xe9\x3d\x23\x7d\x5f\x86\ \xcb\x2d\x2a\x7b\xe7\xaa\xb3\xd4\xe5\xfe\x4d\x21\xc1\xfd\x63\x52\ \x30\x62\xa4\x3e\xf9\xd5\xe3\xe7\xee\xfd\xf9\xf2\xec\x40\x77\x3a\ \xd9\xe5\x5a\x4e\x36\x88\xa5\xd5\x76\x26\x90\x1a\x15\x29\x82\x26\ \xa9\xfc\x37\x3e\xb7\x39\x27\x9f\xba\xb3\x4b\x92\x3c\xe9\xf0\xc9\ \xd7\x67\x42\x75\xfa\x50\xf9\x7e\xf0\xd9\xe5\xbb\x55\x8e\x30\xa2\ \x5d\x83\x86\x69\x6a\x50\x4e\xdb\x35\x7d\xf0\x68\xc3\xf0\xbe\x8a\ \x8e\xde\xd9\xcf\xeb\xbb\x3c\xae\x57\x41\xcf\x16\xf9\xd1\xa1\x71\ \x62\xc7\x5b\x6e\x2c\x61\x58\x1f\xb2\xb9\x54\x4e\xda\x6d\x78\xff\ \x6c\xd6\x3f\xfe\xd1\xeb\x5b\xb9\x72\xd7\x57\x06\xde\xfd\xfe\x55\ \xc0\xc3\x87\x19\xad\xb2\x4f\xb0\x4a\x44\x6e\xcf\xb4\xb6\xd0\x9f\ \x83\x2b\xaa\xa4\x78\xeb\xdb\x10\xde\xba\x9a\xbb\xca\x0f\xd2\xf4\ \x9d\x8e\x5d\x7b\x5b\x10\xde\x05\x9a\x4a\x91\x1f\x25\x84\x56\x74\ \xf6\x98\xc3\x4d\x3b\xf6\x5d\xea\x57\x31\x75\x3b\xfe\xb7\x77\x42\ \x8f\x4e\xa6\x48\xfd\x57\x87\xf4\x3f\x9e\x69\xce\x33\x62\x7a\xa1\ \x0e\x5a\x83\x50\xce\x9e\x2c\x2b\x0a\x62\x7e\xf4\x91\xa5\x0e\x01\ \x71\xbe\x96\xaf\x6f\xe6\x5e\xc6\xde\x95\xfd\xd9\x14\xfc\xf5\xba\ \x53\x67\xe1\x1d\x2a\x23\xbe\xc6\x1c\x60\x15\xd1\xdc\xcf\x97\x12\ \x25\xe4\x1d\xf3\x2a\x63\x53\xa2\x7e\xf4\x61\x8d\xd4\x06\xa6\x2b\ \xf8\x34\x27\xf5\xef\xe7\x45\xc5\x57\xb6\xbf\xbe\x68\x28\xe1\x15\ \xe5\x1d\xe5\x16\x0c\xc2\xd4\xe4\xfd\xf5\xce\x50\x1d\x7d\x5b\xe5\ \x93\x7e\xed\x5a\x25\x46\x0f\x95\xcf\x8b\xc1\x7e\x7e\x5b\x10\xa4\ \x16\x86\x64\xe7\xbe\x94\xfa\xec\x95\xd8\xfe\x7a\xd1\x28\x6a\xeb\ \xfd\xf5\x59\xdb\x0b\x4f\xa7\x9b\xfb\x7b\x2f\x4d\x39\x41\xda\xf7\ \x59\xde\xbd\x3e\x3a\xa8\x0a\xfd\xe6\x90\x1f\xad\x11\x5d\xad\xb4\ \xb8\xed\xb5\x65\x21\xbc\xa5\x38\x94\xfd\x59\x0e\x3a\xfc\x47\xbf\ \xa4\xcb\xea\x0a\xff\xe9\xde\x89\x0f\x5c\xb7\x8d\xcc\x03\xda\x32\ \x55\xb1\xf7\x4b\x4a\x24\x42\x7f\x72\x60\x8f\x26\x42\xee\xaf\x0f\ \xcd\xd8\x01\xa1\x46\x97\x74\xd9\x59\xd0\x57\xcf\xdb\x3e\xcc\x27\ \x59\x08\xa8\x52\xcf\xdf\x88\x4a\x0c\x0d\x14\x30\x4a\xd8\x5f\x4f\ \xb8\xc4\xad\xd9\xf5\x67\x7d\x33\xe9\xbe\x17\xff\xd5\x4d\x8b\xca\ \x85\xaa\x0a\x38\x2c\x2f\x4b\x98\x88\xf4\x95\xb1\xde\x9c\xa5\xd8\ \x5f\x9f\xf7\x19\x7b\x6b\x73\xfb\x62\xdf\xd4\xb3\xbb\xa4\xcb\xfd\ \x9f\xbe\x72\x3d\x8b\xc8\x43\x17\x7d\xd8\xa4\x7a\xe6\x0e\xf1\x92\ \x1f\x3d\x19\x8a\xfd\xf5\xc0\xa0\x54\x26\xf7\xcb\x7d\x63\xd4\x24\ \x2c\x25\x4f\xe3\x9e\x8e\x9b\x3f\xea\xd0\xd8\x34\xa0\xb5\x7a\xc2\ \x25\x1d\x2e\x62\x8c\x66\x74\x32\xf3\x34\x65\x85\xbf\xa1\x67\xbd\ \xdc\xf7\xb1\x7d\xe3\x13\x93\xc8\x0c\xb3\x96\xf2\x9b\xe5\x90\x70\ \xc2\x1e\x57\xd4\x38\x0a\xa0\x0a\x27\x96\x52\x2f\x65\xaf\x37\xe2\ \x7a\x81\x7d\xb5\x17\xde\xbb\x39\x4f\xec\x26\x32\xf7\x7e\x39\x14\ \x08\x10\xfe\xad\x27\x1b\xc8\x54\x91\xea\xd9\x66\xdb\x5f\xcf\xb8\ \xde\x37\xc5\x3e\xe8\xa0\xbf\x1f\x7c\x78\xb2\x46\x52\x2f\x37\x78\ \x1c\xd2\xcf\x7e\x21\xe0\x74\x51\xaf\xd7\x4a\x99\xb2\x5e\xaf\xdf\ \x96\xf2\xa3\x64\xa8\x88\xdc\x08\x5d\x9e\xee\xdd\xbd\xfb\x9e\x87\ \x77\xf6\x33\x2d\x87\x0b\x0b\x99\x95\x2e\xa1\x83\x57\x21\xa8\xd1\ \xbb\x77\x79\x2a\xbb\xde\x9a\x2d\x8d\xcc\xf4\x1a\xee\xc7\x1b\x1f\ \x79\xe5\xa5\xab\x93\xcd\xb0\xe6\xda\x9d\x09\x13\x8c\x68\xbc\xa8\ \xe0\x28\x53\x25\xe8\x7d\x81\x9f\x97\x5b\xf3\xe6\xec\x3a\x6f\x95\ \xdb\x69\xb6\x3e\x67\x3e\x5a\x7b\x84\xe6\xf6\xac\xed\x19\xd7\x57\ \x68\x4f\xe8\x78\xd3\xd1\x63\x44\x2c\x59\xfb\xb8\xc0\x5a\xe5\x70\ \xcc\x09\x6d\x17\x94\xaa\x09\xa1\x1d\xd4\x13\xbd\xd1\xf3\x0b\xf5\ \xfa\xc9\xea\xf5\xc3\xb8\x49\x97\x74\xe9\x6f\x2b\x80\x4b\x91\xaa\ \x06\x2a\x3b\xdf\xdf\x1e\xdc\xb1\x7f\x94\x8d\xae\x27\x48\x3c\x56\ \xdf\x8c\xb3\xf8\x7a\xed\xa2\x7a\x81\x50\x12\xa4\xc4\x9b\xb1\xad\ \x51\x0b\xde\x3d\xfa\x47\x11\xd7\xbb\x22\xd5\x9b\x30\x10\xaa\xd1\ \xbb\xcc\x03\xaf\x42\xca\x29\xf6\x93\x8d\xc8\x5c\xa4\x97\x3a\x8f\ \x2b\xe4\x61\xde\x51\x1f\x0a\x4d\x34\x8a\xaf\x7c\x9a\xb3\x73\x10\ \xd3\x37\x6c\xd8\xef\xa6\x3f\xe3\x64\x02\x94\x0a\x53\x8c\xbb\x7a\ \xfd\x8d\x7a\xf3\x28\x4e\xf2\x45\x3a\xd1\x28\x34\x58\x06\xdf\xc4\ \x29\x7b\xf8\x19\xef\x29\xc6\x4c\x89\x60\xb4\xe1\x47\xc7\x84\x92\ \xcf\x04\xae\x11\xeb\x1b\x04\x81\x9b\x67\x4e\x49\xd1\x3f\x2a\x86\ \xb6\x90\x20\x65\x87\xd6\x52\xb0\x74\x1c\x86\x9e\x50\xbd\x71\x45\ \x0f\xa7\xc4\x4d\xe9\xe4\x0e\x7e\x1e\x10\xd2\x4b\xd8\xfd\xfd\xe3\ \x34\x9a\x30\xd9\xe1\x8f\xd3\x8e\xa0\x53\x1c\x2d\xea\xf5\x43\xa7\ \x44\x31\x9d\xcf\xd7\x4f\xec\x1f\x8d\xa8\x64\xae\x47\xe3\x40\x4b\ \x48\x8b\x2f\x35\x92\xf3\x2e\x5c\x3e\x0d\xc1\x89\x52\xc0\x4c\x4c\ \x32\xd9\x4e\xf0\xb4\x13\x9a\x67\xc4\x78\xf4\xe5\x8c\x98\x0e\xbe\ \x1c\xc1\x18\x91\x59\x78\xa4\x56\x06\xf7\xfd\xf5\x6c\xcc\x14\xa9\ \x00\x9c\xde\xcd\x88\x1d\x46\xb4\xa6\x81\xa6\x1a\x5a\xc1\x13\x79\ \x9c\x67\x9a\xbc\x56\x1b\x00\xc9\x26\x00\x2b\x44\xa9\x4f\x11\x93\ \x84\x88\x50\xa9\xc4\x72\x05\x3f\xb1\xc4\x3c\xdf\xd4\xc2\x2e\xb9\ \x63\x92\x39\x2a\xe2\xd4\x51\x26\xb6\x8a\xd6\x74\x45\x87\x20\x84\ \x2e\xf8\xcf\x84\xa5\x43\xa4\x27\x24\x20\x4c\x8a\xe6\x56\xf7\x8f\ \xb6\x15\xe3\x02\xd4\xa2\xba\xa8\x98\x62\x24\x4f\x7d\xb1\x29\x45\ \x89\x71\x7d\x8b\x80\x9e\x04\xcd\x0b\xe0\xf2\xba\x02\x9c\x0a\x15\ \x1e\xba\x1c\xe7\x71\x11\x3c\x4e\x5f\x71\x55\x6c\x76\x44\xeb\xdd\ \x22\x2d\xc3\x29\x0d\x31\x33\xc3\xdc\x95\xaa\x77\xf4\x47\x47\x46\ \xd4\xef\x67\x51\xb9\xf3\xb3\xa7\x61\xd2\x27\xb1\xd5\xef\xa8\x53\ \xba\xa4\xaf\x9c\x27\xb1\x14\xfe\x68\x36\x9f\x85\x22\x65\x92\x0c\ \x91\x08\x2c\x53\xc2\xcd\xf3\x3b\x9a\x06\x6d\xd9\x3f\xba\xec\xfb\ \xb1\x13\x0a\xa1\x42\x26\xf8\xa3\xe5\xaa\x58\x1a\x26\x23\x15\xfe\ \x68\x86\x4e\x6b\x2d\x61\x2b\x2c\xa1\x7f\xd4\xf9\xe9\x98\x64\x19\ \xfe\x45\x49\x12\xfa\xa3\x59\x3b\x5d\x40\x3d\x39\xb1\x28\x8b\x50\ \x43\x21\x57\x82\xfe\x51\x71\xd6\xb9\x19\x7d\xbc\x94\x1f\x5d\xea\ \xfe\xd1\x0b\xa8\xa7\x2a\xa8\xd7\xf1\xc7\x00\x14\xf5\x30\x59\xfb\ \x0c\xfe\xe1\xa3\xe0\xfa\xb8\xd8\x67\x8c\x37\x50\xc9\xfc\x28\xd1\ \x32\x59\xc0\x01\x3f\x89\xea\x49\x50\x32\xfd\x09\x3a\x8d\x8f\x1b\ \x27\xce\xdc\xb9\x09\xc5\xe3\xf3\xab\x1c\x06\x67\x18\xea\xb8\x79\ \xfa\x62\x67\xc3\x1a\x9e\x86\x56\xb2\x43\x46\x4a\xa5\x9f\x57\x3f\ \x5e\x6a\xe0\xba\x0e\x76\x67\x05\xdc\x3c\x22\x78\x63\x81\x5c\x08\ \x41\x45\xa5\xda\x34\xf4\x41\xc8\x4c\x05\x5a\x17\x6d\xe9\x98\x88\ \x64\x8e\xb2\xc9\xbf\x07\x47\x8d\x54\x6a\xa7\xc3\x12\xd6\x70\x16\ \x3e\x7e\xf1\x70\xa3\x2d\x87\x03\x79\x47\xcd\x86\x4e\xe1\x9b\x39\ \xba\xed\x0c\x15\x4b\x39\xd6\x50\x68\x7b\xf0\x14\x63\x42\x99\x4e\ \x68\x7c\xb1\x52\x62\xef\x74\x22\x8b\xbb\x8a\x52\x55\x6e\x30\xdd\ \xb0\x1b\x0c\x1d\xfa\xce\xd5\xd1\x0f\x4c\x93\x28\x06\xad\x31\x49\ \x36\x8f\x51\x9c\x5d\x94\x56\xd8\x50\x15\x16\xb1\xa3\xc7\x98\x09\ \x93\xf4\xac\xc0\xfd\x3c\x7d\x29\x51\x8e\x83\x77\x2a\x9d\xa3\xb6\ \xf4\x88\xa0\x1a\xfe\xa1\xbe\x2f\x39\xfa\x5f\xc1\x2a\xd8\xa0\xc5\ \x51\x93\x08\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x38\xb4\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\xa8\x00\x00\x01\x77\x08\x03\x00\x00\x00\x06\x8a\xf0\xc8\ \x00\x00\x02\xc1\x50\x4c\x54\x45\x7f\x00\x00\xa3\x6d\x93\xa4\x75\ \xa1\xae\x96\xd0\xbb\xb2\xec\xcb\x9d\xa4\xd7\xcd\xed\xbb\xbb\xfe\ \xcb\xcb\xfe\xd0\xce\xfe\xd2\xd2\xff\xc8\xc6\xfe\xc3\xc3\xfe\xdc\ \xdb\xfe\xc0\xbe\xfe\xb8\xb6\xfe\xd8\xd7\xff\xb3\xb3\xfe\xe2\xe2\ \xfe\xeb\xeb\xfe\xf3\xf3\xfe\xfc\xfb\xfe\xb0\xae\xfe\xf0\xef\xfd\ \xad\x80\xa3\xf9\xf7\xfb\xaa\x9b\xe0\xad\xac\xfe\xa4\x62\x7b\xbc\ \x7b\x7b\xbd\xb9\xf5\xbf\x80\x80\x91\x31\x3d\xa7\x50\x50\xa9\x53\ \x53\xca\xc4\xf2\x95\x2c\x2c\x96\x40\x53\xcc\x9b\x9b\xcf\xcb\xf7\ \xae\xa6\xf1\x9c\x53\x6d\xdc\xb9\xb9\xe0\xdf\xff\x9c\x5a\x7b\xb5\ \xb0\xf4\xee\xe0\xe1\xb7\x70\x70\x9e\x41\x42\xf5\xec\xec\xbb\x83\ \x8f\x8f\x20\x21\xbe\xb1\xe4\xd5\xac\xac\xce\xa0\xa1\xbe\xa8\xd3\ \xb2\x6c\x72\xd7\xb0\xb0\xdd\xc2\xc8\xed\xe3\xeb\xa9\x76\x99\x8b\ \x22\x2c\xb6\xa9\xe4\x9d\x6a\x98\x89\x13\x14\xb9\x73\x73\xb9\x76\ \x78\xb9\x9f\xcc\x9f\x68\x90\xa3\x81\xbb\xbc\xa2\xcb\xbc\xaa\xdb\ \x9c\x3a\x3a\xa6\x71\x94\xc1\xbb\xf3\xa6\x88\xc2\xc4\x91\x98\xc5\ \xba\xea\xc6\xba\xe5\xc6\xc0\xf4\x95\x4a\x69\xa8\x85\xb9\x96\x30\ \x31\xcb\xaa\xbd\xb5\x6c\x6c\xaa\x84\xb3\xcd\xa3\xaa\xb5\xa0\xd5\ \x8b\x1a\x1b\xd0\xa2\xa2\xac\x5a\x5b\xd1\xac\xb5\xac\x5e\x62\xac\ \x84\xad\xad\x64\x6d\x97\x56\x7d\x98\x33\x33\xb6\x99\xc4\xdf\xdb\ \xf7\x99\x46\x59\x9a\x3d\x44\xe4\xcd\xd1\xe6\xd0\xd2\xe8\xe6\xfb\ \xea\xd7\xd8\xaf\x60\x60\xec\xda\xdb\xb3\x92\xbb\xaf\x8a\xb5\x9b\ \x4a\x5c\xf1\xe3\xe3\xf3\xed\xf3\xb1\x63\x63\xb1\xa3\xe2\xf7\xf0\ \xf0\xf8\xf3\xf3\x8c\x26\x32\xb3\x89\xab\xba\xaf\xe8\x8d\x2c\x3b\ \xb6\x84\x9a\xac\x8a\xbb\xba\xb4\xf4\x89\x1a\x22\xa1\x50\x5c\xcb\ \xc1\xec\xd9\xb3\xb3\x85\x10\x13\x95\x43\x5c\xc1\x83\x83\xa3\x54\ \x61\xc2\xb4\xe2\xb0\x9e\xdb\x99\x43\x52\xb1\x86\xa9\xc7\xa8\xc0\ \xb1\x8b\xb3\xa3\x87\xc6\xb2\x9c\xd3\xa5\x4c\x4c\xa5\x68\x84\xb4\ \x73\x7c\xb4\xa1\xdb\xb4\xae\xf3\x9a\x4c\x62\x94\x45\x62\xa6\x8e\ \xce\xd5\xb8\xc5\xd6\xc1\xd5\xb6\x78\x83\xa6\x8f\xd1\xd8\xd3\xf5\ \xb6\x90\xb2\x9b\x57\x78\xd9\xc6\xda\xa7\x60\x70\xa7\x90\xd1\x9b\ \x64\x91\xdd\xcf\xe2\x8d\x30\x44\x8e\x38\x52\xe1\xc4\xc4\xb9\x8b\ \xa3\xe4\xcb\xcb\xa9\x8b\xc3\x8b\x27\x39\xe6\xe1\xf4\x9d\x60\x85\ \x90\x2e\x3b\xea\xe4\xf2\xbb\x9a\xbe\x90\x35\x49\x9f\x45\x4d\x96\ \x49\x64\xa1\x44\x44\xad\x90\xc7\xa1\x4d\x56\xae\x72\x86\x92\x34\ \x43\xa3\x6a\x8d\x91\x2c\x34\xc0\x86\x8a\x83\x0a\x0b\x9f\x52\x66\ \xbc\x93\xac\xc4\x8b\x8b\xc3\x9c\xb0\x89\x16\x1a\xcf\xc2\xe5\xe9\ \xd4\xd4\xb1\xa6\xe9\xb5\xab\xeb\xc9\x94\x94\xa1\x6e\x98\xae\x99\ \xd4\x9e\x58\x73\xd5\xbc\xcc\xbf\xa1\xc3\xae\xa9\xf5\x9b\x55\x73\ \xaf\x78\x92\xc1\xab\xd4\xc1\xb7\xec\x87\x19\x23\xb6\x9b\xcb\xa4\ \x72\x9d\xaa\x6c\x83\xb7\x7b\x87\xaa\x72\x8d\xc4\xa9\xc9\x92\x3d\ \x53\xaa\x98\xdc\xb1\x92\xc1\xc7\x91\x92\xa4\x7a\xab\xba\x95\xb5\ \xe8\xda\xe3\xba\x9c\xc3\xca\xb1\xcc\xba\xab\xe2\x94\x3b\x4c\x9a\ \x5c\x82\xae\x95\xcd\x95\x39\x46\xa2\x59\x6d\xcf\xbb\xd7\xb4\x85\ \xa1\x9d\x63\x8c\xbc\xa5\xd1\x99\x4f\x6d\xa6\x78\xa3\x91\x24\x24\ \x9f\x6f\xa1\x86\x14\x1a\x8e\x29\x35\x0d\x87\x2a\x70\x00\x00\x35\ \xae\x49\x44\x41\x54\x78\x5e\x84\x5d\x53\xb7\x2c\xcd\xb2\xed\xb7\ \x72\xb5\x17\xb6\x6d\x1b\x1f\x6d\xdb\xb6\x8d\x63\xdb\xb6\x6d\xeb\ \xda\xb6\x6d\xfd\x8a\x9b\x19\xe8\x59\x51\x51\x3d\x4e\x76\x65\x56\ \xed\x97\x3d\xe6\x08\x67\x44\x64\xae\x5e\x9e\x0f\x72\x8c\x2c\x4f\ \xc3\x1a\x66\x1a\x7f\xfc\xe8\x28\x75\x2d\x69\xca\xab\x2c\x4a\x19\ \x75\x9c\x35\x3d\x65\x12\x9e\x32\xb1\xa3\x1f\x9e\xb8\x0c\x87\xf2\ \xc4\xa5\x1f\x7e\x3a\x56\xc6\x67\x65\x7c\xe2\x57\x5c\x57\xf2\x58\ \x11\x66\x2f\x1f\x0c\xf2\x01\xd0\x66\x39\x43\x15\xb0\xad\x51\xd2\ \x14\xa8\x61\xa5\x59\x16\x0a\x97\x41\xd6\x34\x02\xb2\x32\xfe\x04\ \x70\xcd\x50\xfb\x01\x5d\x12\x27\x23\x0d\x33\xe0\xec\xf7\x81\x34\ \x0c\x8b\x52\xb1\xf6\x22\xc8\x30\x05\x69\x46\x33\x8d\x38\xe9\xc9\ \x2c\x45\x89\x8c\xf4\x13\x7a\x82\xa2\xb5\x3c\x34\x93\x00\x34\xac\ \x34\x4a\x4b\xd6\x00\x92\xa0\x0a\x41\xe9\xb1\x34\x25\xa2\x3a\xac\ \x3d\xa0\x04\x3d\x99\x98\x59\x78\xe2\xa2\x58\x2d\x60\xb0\xde\x30\ \x9f\xa9\x19\x49\x9b\xcc\xa8\x39\xa3\x28\x91\x53\x99\x1e\x66\xe0\ \x3b\x51\xb3\xcf\x28\x01\x95\xb8\x6f\x70\x46\xd6\xc7\x5f\x03\x69\ \x84\x45\x88\x09\x2d\x81\xcd\x0d\x44\x85\x09\x82\x02\x28\x43\x8d\ \x13\x1c\xa7\x85\xc9\x29\xbc\x0f\x0c\x27\xa2\x32\x5a\x82\x89\x21\ \x10\x15\x25\x28\xda\xa5\x4d\x59\x26\x8a\x94\x1b\x42\x42\x99\xf8\ \xc5\x98\x0b\x03\x53\xa5\x94\xe8\x19\x95\x0a\x5c\xe7\x49\x48\x03\ \x38\x61\xbf\xd1\x25\xd6\x23\x20\x35\x14\x8d\x9c\x07\xd4\x8c\x39\ \x4f\x22\xaa\x04\x4d\x31\x3c\x69\x0b\xa1\x6b\x0d\xc5\xa7\x51\x92\ \x74\xd6\x80\x09\x6d\x1a\x8a\x9c\x86\xc1\x7a\xaf\xac\x5f\xa9\x6f\ \x91\x55\xa8\x12\xc9\xa8\xa2\x04\xeb\x55\x4a\x9d\xe6\xab\x61\x4a\ \xe5\x4d\xb3\x28\x9a\xe6\x09\x14\x55\xa4\xa5\xa5\x68\x44\x09\xf3\ \x04\x5d\x02\x58\x50\x73\x08\xa4\xbd\x81\x72\x7e\x00\xd6\x8b\x0d\ \x0d\xdf\x2c\x02\x96\xff\x05\x01\x55\xde\x2b\xd0\x24\x4e\x5a\x09\ \x24\xc1\x34\x4a\xcf\x04\x15\x19\x4d\x48\x8d\xc4\x88\xb6\xb8\xcf\ \x60\xa1\xf6\x50\x26\x36\xa5\xe0\x7c\x2a\x4f\x06\xbe\x03\x27\xa3\ \xb4\x56\x14\x43\x84\x94\x91\xd2\x1b\x28\x85\xa2\x42\xcc\x7e\x18\ \xc0\x6a\xa1\x0e\x41\xce\x79\xca\xd4\x74\x49\xf2\x4a\xed\x00\xdb\ \xf9\xdb\x23\x65\xb5\x67\xe3\x54\x1b\xa2\xf6\x1b\xbc\x6f\xe0\xa4\ \x09\x0b\x4a\x53\xe1\x82\xf5\xa4\x49\x46\x99\x94\xa8\xaa\xf5\x59\ \x1b\x26\xa0\x1a\x82\x12\x32\x75\xa2\x35\x19\xfd\xba\x05\x53\x3c\ \x13\x53\x94\xb0\x0e\x3d\x4d\xa1\xf3\xde\x8e\x02\x66\x26\x1e\x29\ \x63\x55\x92\x91\x33\xd7\xc1\x76\x5e\x5a\x86\x34\x01\x41\xc5\x33\ \xb1\x0c\x60\xb0\x79\x02\x39\x69\xf6\x0d\xd3\xe1\x42\xe9\x31\x2e\ \x54\xb1\x66\xca\xfd\x68\x48\x19\x25\x78\xef\x6d\x13\x7f\x59\xa8\ \x49\xc9\x5a\x6f\xe1\xc1\xdc\xb3\x0b\x25\xa0\x82\xd5\x8e\xee\x98\ \x84\x29\xda\x22\xa9\x38\xfa\x8c\x45\x35\xf3\x40\x4b\xc3\x7a\xb8\ \x50\x98\x7d\x55\x26\xa2\x71\x0b\xab\x78\x51\xa5\x28\x3f\x0d\xae\ \xcb\x2b\x4c\xef\xeb\x19\x69\x98\x50\x7b\xfc\x2c\x44\x88\xa8\x13\ \x52\xe5\xbe\xb8\x4f\x60\x74\xae\x29\xda\x7b\xa6\xe7\xff\xec\x7a\ \x92\x11\x12\x56\x8b\x72\xd8\x2d\xa3\x83\xa6\x94\x66\x71\xcc\xf4\ \x29\x53\x65\x2a\xc2\x13\x66\x6a\xd4\x3d\x2d\x8c\x2a\x89\x01\x85\ \x32\x19\x17\x4a\x3f\x26\xe8\xee\x8f\xff\xda\x93\xe7\xf6\x7a\xdf\ \xce\x2d\xf3\x05\x2a\xd8\x0f\xd6\x2b\xe3\xc1\xfb\x8c\x46\xca\x30\ \xdb\xa3\x80\x6f\x22\xb0\x88\x47\x31\x94\xaa\x50\x7b\x8b\xb5\xbc\ \xf8\xcf\x7a\x3a\xee\x4d\x34\xd4\x53\x8b\x84\xe8\xd9\xc6\xa3\x4c\ \x4d\x80\xcd\x04\x6a\x9e\x6a\x00\x9d\xcd\x40\x16\xec\x95\x6c\x08\ \x65\x21\x26\x09\xcf\x40\x49\x82\x89\xc8\x49\xd6\x61\x79\x7a\xaf\ \x31\xce\xaa\x08\xa6\xa3\x28\x2d\x9e\xf5\xc6\xdd\xf3\x68\x00\x4c\ \xc1\x7b\xb0\x9e\x41\x42\x99\x12\x4c\x62\x3f\x13\xb4\x76\xf4\xfc\ \xa5\x9e\x19\xfb\x26\x00\x8a\x40\x94\x40\x3a\x17\x2a\x24\x85\x88\ \x0a\x5d\x49\x40\xad\xbd\x2f\x14\x29\x82\x92\x96\x2e\xa9\xb0\x12\ \xcb\x09\xa9\x25\xe9\xbb\x7a\x76\x5c\x35\x31\xa4\xd4\x37\x7d\xb6\ \x28\xda\x26\x28\x64\x34\xe2\xcc\x32\x13\x8f\x14\xd8\x2f\x15\x85\ \x0b\x9d\x19\xa4\x2e\x24\xa5\x71\x7d\xfd\x93\xa0\xaa\xe0\xbb\xe5\ \xe6\x1d\xf7\x5d\xf7\x44\xf8\x58\x3f\x85\x0f\x05\x48\xeb\xee\xd5\ \xe0\x0f\x80\x15\x5a\xaf\x76\x14\x34\x05\xeb\xc3\xa0\x57\x41\x70\ \x0d\xd8\x5a\x41\xd2\x9b\xc3\xd2\x2b\x7b\xbd\xbf\x2e\x25\x1e\xbd\ \x95\x60\xae\xdd\x3f\x19\xd4\xc1\xa6\x3e\xbc\xef\xac\xe5\x91\x41\ \x09\x62\x1a\x4f\x0f\xd6\x03\x65\x84\x19\x27\xe1\x44\xdc\x5c\x28\ \x52\x0e\xf4\x09\xab\xc0\x2c\x14\x25\xbb\x25\x25\x69\x52\x9f\x76\ \xce\xab\xbf\xd0\x5b\x47\x0c\x1e\x0b\xf7\x77\x11\xce\x49\x4e\x66\ \x34\xcc\x3c\x1f\x26\x80\x09\xa2\x7a\xcd\x37\x14\x65\xc6\xe7\x02\ \x94\x21\xd2\x9a\x41\x44\x05\xa8\x62\x65\xa0\x30\x4b\x60\xfe\xad\ \xff\xd0\xc3\xf8\x5c\xc9\x40\x6f\x27\x05\x7a\xd3\x95\x4b\x9f\xb8\ \xfd\x8a\xf7\x6c\xde\x7e\xfb\x39\xef\x4a\xa0\x4b\x82\x71\x6e\x50\ \x62\xed\xa8\x1a\xd2\x48\x4d\x11\xd3\xa6\x26\x15\xc2\x7a\x46\xe9\ \xa3\x3c\x41\x5a\xef\x8e\x30\x31\x0e\x8c\x12\x1a\x6a\x9a\x30\xbe\ \xb3\xdb\xda\x26\x15\x00\xa0\x5d\xa1\x14\xb5\x66\x54\x79\x4f\x2e\ \x29\x07\x39\x0b\x36\xa3\x08\xf2\x18\xa7\xb5\xa1\xb2\xd4\xf5\xf5\ \xbf\x6f\xe1\xec\x1d\x4b\x80\xdf\x73\xe3\x82\xd4\x9b\x51\x81\x68\ \xa3\x27\x63\x47\x33\x86\x29\xac\x6f\x3a\xd0\xac\xc8\xd8\x87\x96\ \x4d\x67\x5f\x20\x26\x49\xb0\xd4\xc9\x33\x0c\x62\xd3\x4d\x67\x1d\ \x78\x22\x7e\x5c\xb3\x38\x64\xde\xdf\xea\x91\x5e\x57\x8b\xda\x43\ \xe3\xbb\xf7\xf5\xb4\x17\xb1\x04\x4d\x89\xf5\x6a\xf4\xe3\x72\xfe\ \xd2\xdd\xab\xc2\x1b\x91\xbd\x4d\x40\x14\x8a\x96\x35\xea\x14\x42\ \xb0\x61\xc7\xf2\xa8\xaa\xd2\x57\xdc\xd3\x5b\xff\xd4\x38\x91\xb1\ \xfb\x63\x9b\x18\xdf\xd7\xbf\xb9\x61\x03\x7d\xdc\x30\x36\xd4\xd4\ \xe7\xe7\xed\xeb\xc3\x24\x9a\x6a\xd8\x1c\xbe\x5e\xb7\x74\x37\xdb\ \x66\x44\x51\xd8\x91\x14\x69\x7d\xf6\xad\x17\x7e\xe4\x94\x3b\xd7\ \xd4\x1a\x3a\x27\xf5\x77\x49\xb9\xa7\xa3\xa2\xa4\x2c\xce\xd6\xf1\ \x28\x41\xa6\x24\xad\x3e\xf9\x95\xf1\x78\x3c\x1a\xe5\x83\x94\x90\ \x4e\x4b\xe8\x3c\x76\x4c\x6e\x5f\xaf\x30\xa1\xf7\x6a\x47\x19\xea\ \xd2\xf3\xca\xa3\xc7\x4d\x9a\x4c\x74\xea\xfa\x5f\x57\x16\xbe\x20\ \x24\x0d\x14\x25\x9b\x74\x63\xf5\xd2\x69\x6f\xfd\xd6\x23\x4b\xa7\ \x2f\x5d\x79\x1a\x12\x4e\xc3\xb4\x0e\xb2\xca\x23\xd9\x1d\x71\x9e\ \x41\x40\x87\x76\xdf\xe4\x2c\xa9\x33\x4f\x44\x4f\x44\x4f\xf9\x87\ \x21\x4c\x37\x0f\x40\x4e\x11\xd5\xbf\x68\x0a\xdb\x6b\x67\xfc\xff\ \x54\x5b\x0e\x7f\x14\xa0\xf2\x78\x7d\xef\xd3\x4f\x6a\x7c\x7f\x2e\ \xbb\xfb\x69\xdd\x54\x79\x65\x3c\x4d\xc5\x29\xac\x77\x9e\x49\x47\ \x10\xcf\x03\x00\x72\xe6\x98\x14\xbf\x90\xa1\x30\x31\x76\xa4\xbc\ \xaf\xeb\x52\x99\x1f\xb3\xbb\xff\xe5\xf0\x79\xf0\xc7\xbb\x93\x7a\ \xf7\x8a\x25\x21\xc0\x9e\x45\xb7\xb1\x77\x76\x74\x5b\x60\xbd\x17\ \x51\x1e\x9a\xcd\x23\x08\xc7\xee\x09\xcb\x1d\x13\x42\xa9\x50\xb3\ \x17\x01\xe3\x8c\x33\xc8\xd2\xdc\xaf\x26\xff\x79\x8f\xf4\x8b\xa4\ \xf6\x2b\x9c\xd2\xff\xa5\x72\x7e\x61\xb8\x10\x96\xe6\x86\x19\x03\ \x5b\x11\xe5\xbb\xb8\x51\x80\xcd\x2e\xfa\xe9\x8e\x3d\x93\x31\x11\ \xf6\xa9\x8c\x02\x13\x1d\x82\x60\xd3\x96\xfd\xcb\xe3\xfb\xbf\x1d\ \x3f\x1f\x48\xc5\xe0\x27\x7f\x04\x24\x3f\xfc\x21\xbd\x5e\x93\x26\ \x09\x51\xd4\x8e\xe3\xd3\x1c\x04\x5d\x58\x20\x80\x08\xf3\x9c\xd6\ \x0f\x8c\x6f\x02\xce\x2c\x95\x38\xff\x4e\xfa\x4f\x2b\xa1\x28\xbd\ \xca\x55\x11\xc0\x4d\x27\xa6\xf7\xe7\x45\x50\xaa\x08\x60\x4b\x55\ \x27\xb2\xbf\x2b\xdf\x7f\xdd\x96\xe3\x3b\xee\x7b\xe8\xe4\x64\x72\ \xff\x0b\x1c\x79\xd2\xe6\xce\xc2\x7c\xdb\x63\xcb\x85\x31\xf7\x0b\ \x8c\xb3\x53\xeb\x01\x94\x68\x09\xa0\xc4\x7a\xc6\x99\x6e\x64\x21\ \x0d\x08\x31\xca\xa5\xd7\x1e\xd8\xbf\x1c\xc0\xff\xfd\x23\xdf\xdb\ \xbe\x8e\x50\x8f\x69\xb7\x9c\xd4\x75\x9c\x65\x51\x72\x94\xff\x1c\ \x61\x9a\x92\x6f\xfa\x55\xa0\x3c\xf5\x07\x27\x17\x2b\xda\x88\xd0\ \xf4\x32\x0a\xac\xc6\x85\x7a\x5d\xca\x1a\xa9\xf1\xcd\x64\x49\x49\ \x87\x18\x65\x78\xd2\xbc\xaa\x8a\xf2\x11\xb2\x9a\x6c\xbb\xa7\xb4\ \x07\x09\xcb\x69\xbb\x96\x02\x44\x42\x9c\xbc\xf3\xfb\x11\xd6\x13\ \x93\x80\x93\x2c\xd2\xa6\x03\x07\x5e\x73\xe6\x25\x41\xa0\x46\xa9\ \xc9\x94\x04\xf9\x5c\x30\x7b\x65\x1f\x3d\x59\x75\x02\xca\x38\x65\ \xbc\x9d\x84\x34\x67\x7d\x8f\x93\x23\xe7\x4b\x2f\x7c\x99\xa2\x54\ \x21\xad\xa3\xaf\xff\xdf\x5e\xef\x1d\x97\x53\x78\x7f\xed\xd7\x44\ \xb9\xc7\xa2\xf7\x47\xf7\x4f\xa2\x65\x2b\xc8\xaa\x82\xe7\xf2\x32\ \x32\xea\x5d\x28\xd0\x32\xeb\x81\x95\x06\x84\x14\x14\x25\x5b\x7a\ \xa8\x87\x21\x42\x4a\x16\xea\xbf\x08\xdb\xba\xed\x9b\x9f\x7f\x95\ \x10\xfb\xb3\xd3\x82\x92\x64\x7d\xb5\xfc\x92\xc7\x6f\xa6\xc6\x23\ \x45\x11\x3e\x03\xaf\xa7\x28\x74\x3f\x7b\x78\xf3\xc7\x08\xa9\xb2\ \x7e\xab\x58\x52\x72\xf1\x45\x41\xef\xf2\x39\x8d\x80\x6e\x5a\x7d\ \xe3\x89\x97\x91\x90\xf2\x56\xd9\x19\xd2\x5f\x59\x1e\x04\x94\x0c\ \x95\x3c\x53\xb3\xd4\x34\x33\x4f\xe1\x51\x19\x0d\xb3\x9d\xcd\x73\ \xe5\x86\x8d\xe7\x9d\xf7\xba\x57\xc4\xb0\x26\xe0\x45\xb2\xec\xbb\ \x6c\x49\x69\x6f\xaf\x14\x65\x10\x6b\xf7\x4c\x47\x55\x9e\xde\x4d\ \x42\xca\x99\xfc\xb7\x5a\x98\xff\x7d\xef\x34\xd7\xb4\x23\xe3\xec\ \x2b\x49\x59\x95\x84\xf5\x90\x51\x10\x14\xac\xb7\x35\xa6\x67\x37\ \x63\x87\xb8\x98\x21\xf7\x94\xad\x22\x77\x9f\xb1\xf3\xe4\x5d\x1e\ \xf9\x96\x3b\x1e\x9a\x0e\xca\x30\x2e\xfa\x1a\x51\x6e\xd5\x47\x4e\ \x8b\x44\x6d\x4a\xee\xfa\xe3\xcb\xe3\x72\x96\x72\x8e\xf5\x05\x7a\ \x09\xce\x26\x45\x45\x46\x5d\x8a\x0c\xac\x17\xac\xaf\xf8\x8e\x21\ \xc4\x9e\x1c\x42\x5a\x9c\xc7\x42\xca\x51\x49\xa0\xa8\x10\xf4\x86\ \x93\x8b\xe4\xe2\xcf\x3f\x75\xb6\x03\xfe\x50\x40\xfa\xbd\x68\x90\ \x2e\xd8\xb4\x69\xfd\x59\x47\xf6\x4f\xab\x82\x04\x13\x65\xc6\x21\ \x51\x94\xa0\xda\x4d\xa8\xca\xa8\x53\x7b\xeb\x42\x7f\xb3\x67\xc7\ \x8d\xa3\x14\xe1\x5e\xc9\x91\x3a\xe1\x64\xad\x27\x4d\x5a\x3d\xa5\ \x48\xea\x91\x1e\xc6\x89\x3c\x88\xe9\xd2\xea\x87\xa6\x55\x35\x0a\ \x32\x51\x24\x32\xa0\x45\xfa\x21\x39\x7c\x50\x54\xed\xfd\x42\x7b\ \x27\xba\x4d\x5c\x28\xf1\x5f\x70\x62\x3c\xb8\xd8\xc8\x3d\x64\x9b\ \x23\x9f\xd9\xb2\x84\xa1\xaa\xb4\x61\x5c\x96\x6b\x4e\x79\xa6\x87\ \x71\xc6\xe3\x15\x29\x54\x5a\xa0\x20\x46\x04\xc5\x40\x85\x11\x30\ \x69\x51\x5f\xbf\xd0\x99\x71\x96\x71\x54\xd3\x41\x47\x3e\xf3\x99\ \xeb\xde\x46\x5e\x6f\x39\xcd\x80\x94\x85\x94\x08\x4a\x23\x5d\xc3\ \xae\x7e\x73\x70\x4a\x18\x3f\xdb\xfb\xd0\xb4\xd0\xf2\x8d\x24\xa0\ \x0c\x46\xc9\x3b\x6a\x51\xcc\x72\xde\xc8\xa8\x37\xf8\x71\xe6\xd9\ \x41\x8a\x30\x6e\x9e\x2e\x8e\x06\x79\xba\xf5\xdb\x91\x7e\x53\x78\ \xa6\x22\x3b\x9b\x22\xb9\x8a\x71\x92\x8b\x8a\xd0\x31\x36\x1d\xe9\ \xdd\x74\xc9\x03\xd3\x71\x55\xa2\x20\x46\xe4\xac\x81\x92\x9f\x28\ \xa3\x02\x32\x7c\x01\x26\x3d\x5d\xbb\xa6\x6d\xdb\xb6\x21\x01\xf1\ \x55\x52\xe1\xa7\xa6\x03\xb1\xf5\xc1\xef\x7d\x6e\xda\xd8\xd3\x73\ \xc0\xb7\x3a\x5a\x52\x0d\xf5\x8c\xb9\xdf\xfb\xf4\xb8\x18\x57\x99\ \xd6\x42\xc9\xe1\xd7\x60\x3d\x8a\x0d\xc0\x0b\x7d\xc2\xb0\xe9\x07\ \x0c\xe4\xf0\xef\x26\x3d\x9f\xcc\x7c\xd3\xd6\x8f\x7e\x65\xc2\x45\ \x11\x45\xfa\xcf\x51\x1a\xc6\x61\x9f\xf7\xe8\xa9\xbd\x55\x59\xdc\ \xd4\x1d\x7a\xb9\xc2\x3c\x16\x54\xc7\x54\xee\x08\x64\x0d\xd6\x0b\ \x56\xd5\x76\x7d\x68\xf2\x40\x1c\xca\xd3\x85\x79\x62\x99\x28\x77\ \xb5\x3c\x68\x79\xd0\xb0\x08\x54\xe1\xf4\x6d\x9a\x52\xc8\x29\x30\ \x39\xef\xc0\x86\x6f\xde\xf2\x8e\xe3\x8f\x2f\x0e\x0a\x94\xc1\x6b\ \xa1\xa8\xe2\x04\x49\xd5\x81\x0a\x3a\x55\xa7\xbe\xef\x2b\xb0\x96\ \x14\x75\xa6\x01\xa9\xfc\x2b\x27\xad\x40\x4f\x02\xfd\xad\x11\xe7\ \xf9\xbb\x4c\x06\x76\x12\x60\xd2\x36\xbf\x1a\x55\x83\x54\x6b\xa1\ \xa6\x66\x9f\xc8\xaf\x49\x51\x29\xd9\xa3\xca\x0c\xc6\x23\xa5\x03\ \xb4\x7e\xbb\x4c\x40\xef\x1b\xe5\xb9\x21\x69\xf8\x2c\x22\x41\x0f\ \xf1\x8e\x19\xe3\x86\x07\x26\x05\x67\x1f\x52\x64\x73\xa4\x76\x23\ \x93\xb3\xa3\x80\xc9\x5e\x9e\x50\x8a\x32\xc1\x92\xa2\xd0\xe4\xd8\ \x8e\x4c\x09\x47\xce\x6f\x22\x9d\x1e\x35\x70\xe6\xf9\x65\xdb\x57\ \x5d\x1a\x53\x24\x87\xd8\xad\x62\xdc\x74\xe3\xf2\x24\x2f\x09\xa9\ \x1d\x35\xff\x98\xeb\xed\xec\x38\x94\x29\x60\x66\x4b\x0a\xbd\xb7\ \xbc\xf7\xfa\x34\xcb\xe1\xff\x02\x09\xde\x38\xe2\x53\xf9\xbc\x2c\ \xe6\x33\x76\x86\xcf\xed\x4d\x90\xb7\x6c\x79\x68\x3a\x1e\x65\x9c\ \x22\x61\xa4\x29\x83\x44\xfb\x03\x98\x0f\xc5\x27\x4d\x52\xd6\x53\ \xf4\x34\xa7\x0e\xae\x30\x69\xfa\x12\xe3\x20\x82\x38\xb8\xd8\x60\ \x3c\x1b\x9f\xa7\xf3\x22\xfb\xd1\x8c\x92\x01\xe4\x64\x94\xab\x25\ \x2d\xc9\xe5\x5b\x7a\x32\x41\xc5\xe2\x03\x25\xa9\x11\x94\xa9\xaf\ \xda\x9e\x98\x7a\x58\x78\x80\xd5\x87\x79\x5c\x07\x7f\x81\xd3\x83\ \xba\x19\xf9\x5b\x46\xb7\x69\x9a\xa7\xe9\x65\x31\x16\x3a\x76\xe4\ \x6f\x26\x8b\xa3\x9c\x73\x10\x0a\xd3\xd7\xc0\x13\xc9\x3a\x93\x75\ \x72\xc6\x89\x78\xcf\x5c\x77\xca\x24\x30\xc5\x46\x79\x3b\xaa\xa1\ \xe8\x46\xde\x16\xfe\xdd\xd6\x2c\xbb\xec\xab\x6f\x3f\x28\x5b\xdd\ \x13\xd3\x28\x04\x97\x7e\xf4\xe4\x64\x1c\x41\xc6\x78\x19\x4e\x94\ \xb8\x6f\x68\x8a\x7c\xb3\x58\x28\x57\x66\x12\x3b\xaf\x20\x55\x99\ \x7c\x7e\xb4\xbb\x41\x2b\x8e\x55\xaa\xd0\xcd\xf8\x69\x9a\x77\x55\ \x45\xc0\x7b\xc9\x94\xa2\xc6\x44\x5f\xa4\x48\x4a\xd1\x12\x7e\x09\ \x7e\x34\x82\x12\x21\xb0\xb5\x50\x48\x29\x70\xc2\x33\xd1\xb3\x55\ \xdc\x0c\xc6\xbe\xe0\x6e\x2c\x4a\x49\x8f\x96\x02\x92\x16\x85\xa9\ \x6f\x26\x67\x84\x0c\x9c\x02\x55\xab\xcb\xfa\xb3\xd4\x04\x5c\x6b\ \xf2\x7d\xf9\xe6\x63\x36\x15\x7c\x78\x3a\x96\xbd\xbd\x1d\xa5\x08\ \xa9\xc1\x89\xa2\x98\x56\x97\x5b\xb5\x70\x54\x42\x15\x25\x87\x51\ \xc6\x8c\x1a\x11\x05\x50\x57\x15\xf9\xec\x55\x8a\xf2\x8e\x9f\xec\ \x99\x8e\x07\x06\x64\x64\x32\xd9\x77\x12\x55\x61\xbe\x11\x50\xc6\ \x19\x16\xfd\x91\xe6\x0b\xeb\x51\x06\x67\x9a\xd2\xe2\xcd\x13\x83\ \xec\xd4\x7a\xd3\x57\xf0\x1b\x97\x5c\x73\xcd\xde\x9f\xec\x08\xd9\ \xa4\x4a\x7d\x7d\x06\xa4\xba\x0a\x4a\xb1\xa3\xbe\x6e\xc7\xe0\x4a\ \x9a\x2d\xbd\x47\x13\x21\x33\xde\x34\x11\x82\xac\x1d\x76\x14\xf9\ \x51\x0e\x9c\x06\xd5\xce\xaa\x6a\xc6\x24\x88\xa0\xd0\xeb\x48\x20\ \x1d\x45\x59\x99\x6a\x53\x10\xb7\x6d\x1a\xca\x7a\x6f\x9e\xe0\x98\ \x1c\xdb\x91\x1f\x35\x05\x46\x7a\x78\x47\x6f\x4a\x62\xbe\x89\x2c\ \x4c\x6f\xee\x23\x3d\xc1\x77\x5a\x7c\xdc\xcc\x93\x17\x87\x13\x24\ \x9d\x93\x76\x74\x39\xe7\x0c\x45\x5b\xa8\x91\xab\xd7\x03\xac\x36\ \xe3\x99\x1f\xc0\x02\x2d\x07\x25\x02\xd2\x82\x85\x1d\x85\xf2\xaf\ \xe0\x7a\xbd\x2b\x34\x69\x2a\x8f\xcb\x37\x60\x3c\x06\x68\x4a\xb0\ \x0d\xf3\x99\xf7\xec\x41\xc1\x7a\xd8\x27\x8d\x9e\x34\xd4\x03\x4e\ \xdb\xab\xd1\x59\x15\x19\x18\x9c\x0c\x35\x7c\x13\x46\xcf\xf8\x30\ \xc1\xfb\xc6\xa8\xf5\x45\xe1\xc8\x1c\xd6\xf7\x35\x7a\x02\x40\xe3\ \x40\x81\xd3\x67\x9c\x6d\x0d\x5c\xa1\x6a\x37\xae\xd7\x79\x74\xe5\ \xa6\x62\x49\xd1\xec\xc6\x32\x2a\x54\x05\x41\x4b\xeb\x42\x79\x12\ \x71\x15\x30\x94\xde\xb5\x11\x8a\x32\x71\x44\x02\xb4\xb3\xf2\xa2\ \xd6\xec\xad\x29\xd5\x89\x56\x22\x29\xdc\x83\xaa\xc9\xcc\xd9\x83\ \xa8\x44\xc5\x30\x89\xfd\x8a\x14\x86\xc9\x08\xa9\x4e\x57\x5d\x36\ \x20\x69\x65\xd6\x13\x50\xb5\xa4\xa0\x66\x9c\x8e\xf5\xd0\xfa\xe8\ \xf0\xd1\x44\xe8\x34\x09\xec\xc7\x9e\x29\x31\x30\x31\x7d\x02\xc2\ \xb2\x5f\x0b\x62\xda\xe7\xec\x6d\x13\xd4\xdf\x1b\xa8\x08\x13\x7d\ \x4f\x3c\x1d\xd4\xe1\xec\x65\x38\x6f\x18\xef\xf2\xa3\xcc\x78\xf8\ \xa6\x94\x58\xaf\xed\x59\xb0\x50\xa8\x85\x81\xa2\xbc\x00\x28\xfc\ \x7c\x6d\x8c\x93\xb3\xf8\x0a\x31\xf1\x3a\xef\xeb\xf5\x68\x79\x33\ \xea\xc4\x2f\x6d\xcc\x14\x94\x76\x28\x5c\x87\xb5\xe6\x45\x03\x13\ \x4f\xcd\x3e\xda\x1d\x81\xd2\x6f\x44\xf4\xab\xb3\xd8\xe0\x1b\xde\ \xe2\xc8\x2d\x4e\x70\x5d\x80\x5a\x9c\xe8\x29\x89\x8f\xa5\xe7\xb0\ \x0f\xd6\x4b\x82\x84\x16\x97\x86\x50\x80\x06\x2b\x32\xce\x68\x22\ \x94\x27\x95\xaa\xad\x89\x4a\x4a\x7e\x19\xd6\x17\x66\xbb\x2c\xbd\ \x4f\x08\x49\xbc\x17\xa5\x1f\x7d\x1a\xeb\x84\xbe\x17\xb7\xaf\x67\ \xcf\xe4\xdb\xdb\x09\x67\x06\x19\x05\x2d\xad\xa4\x3a\xbe\x87\x07\ \xca\x94\x04\xe4\x5d\xee\x93\x1f\x24\xc5\x13\x63\xee\x8d\x15\xb5\ \xad\x1a\xae\xdb\x91\xbb\xc5\x33\x18\x7c\xab\xf7\x82\x4f\xdf\xfc\ \x82\xd6\xab\x79\xf2\x32\x0a\xb4\xba\x57\xa6\x6f\x2f\xa8\x70\xf9\ \x36\x1e\xb5\x03\xfd\xcd\x99\x97\x51\x90\x35\x55\x74\xa9\xd1\xa3\ \x1a\xa6\x49\x56\x6b\x99\xb0\x9f\x77\x18\xfd\xbe\xde\xfb\xfa\x2e\ \xb4\x71\x69\xf9\x50\xeb\xe8\x49\x54\x5d\x96\xc4\x91\xd4\xb5\x0e\ \xc3\x86\xd2\x62\x15\xc9\x1f\x6c\x98\xaf\x4c\xaa\xf8\xa0\xa8\x0b\ \x4a\x8a\xb8\xfa\x6e\x4c\x75\xa1\x82\x12\x40\xed\x90\xe8\x09\x35\ \x26\x40\xed\x6e\x78\x5b\xd1\xdd\x3f\x4a\x20\x55\xf3\xa1\xf5\x08\ \x4c\x0a\xae\xde\xd0\xce\xd9\x84\xf8\x89\xb2\x1e\xb3\x9d\x77\x62\ \x96\x73\x61\x84\xd4\x3e\x71\xbe\xc9\x24\x9b\x87\x36\x35\xee\xb8\ \xce\xab\xb7\xf6\x08\x99\x71\x5a\x20\xc5\xae\x5e\x95\x49\xe3\x51\ \xc8\xa9\xed\xc3\xc7\x61\x26\x43\x4d\x79\xe4\xe5\x73\x4f\xf2\x44\ \x68\x99\x60\xcd\x54\xa7\x28\x84\x76\x68\x5b\x6d\xce\x18\x6a\x43\ \x6b\x5a\x15\x6c\x9c\x84\x11\x38\x01\xd6\x0c\xa3\x46\x78\x7b\x8a\ \xa6\xba\x46\xe9\x54\x19\x05\x54\xf6\x45\xea\x3b\xfd\x56\x84\x57\ \x06\x5b\xf3\x0b\xc3\x22\xf5\x81\x33\x76\xa1\xde\xdb\xfb\xde\x3c\ \x36\x4c\xcd\x63\x6c\x99\xe1\x3a\x3e\xbd\xa7\x07\x4a\xa4\x49\x8c\ \x98\x82\x9a\x32\x05\x2d\x6c\x3e\x0c\x3e\x2d\x7e\x5f\xef\x3c\x13\ \xc3\xf5\x5b\x50\x21\xa8\x85\xe9\x73\x3a\x25\xa4\xd3\xf8\x7b\x17\ \xe5\x81\xb0\x4e\xef\xbd\x79\x32\x7d\x4f\x30\xa2\x19\x93\x15\xbc\ \x77\xa7\x9a\x64\x5a\xf9\x04\xf3\x91\xd7\x61\x90\x16\x2e\x60\x26\ \xde\x27\xe9\xea\xca\x37\xc6\x8e\x52\xef\xa0\xc0\xc5\xe0\x04\x59\ \x31\xe3\xba\x4c\x4b\x57\x44\xf7\x6e\x6f\x87\xed\x08\x40\x5a\xdb\ \x04\xc5\x9f\xd7\x01\xe1\x07\xe1\xe4\x98\xc4\xb0\xbf\x40\xa0\xd7\ \x86\x09\xe1\xa4\xc5\x9f\x6d\xe8\xc3\xd3\xeb\x6a\xa0\x76\x07\x25\ \xa0\x68\x65\xa5\x54\x39\x8f\xc0\x99\x61\x02\x69\x89\xc0\xd9\x31\ \x5e\xd9\x5e\x93\x7d\x42\x58\x0a\xa2\xca\xe2\x72\x25\x40\xab\x7c\ \x6f\x6b\x7d\x6b\x08\x4a\x9c\xc0\x70\x91\x93\x22\x2d\x60\x9c\x7c\ \xea\xb1\x4c\x40\x52\x83\x12\x91\x13\x62\xd1\x44\x20\xfa\x5a\x18\ \xa0\xba\xb6\x4c\x06\xca\x10\xad\x6f\x2a\x79\x16\x66\x17\x2a\xae\ \x09\x3e\x54\xa5\x14\xd9\x92\x76\x80\x07\x39\xb5\x81\xb3\x8f\x97\ \x3b\x3d\x13\xcc\x3d\xbf\x52\xdd\x88\xba\x5c\x49\x81\x93\x0d\xc6\ \xd5\x1b\x51\x85\x57\x72\x4a\x4f\xe0\xd0\xa7\xd1\xd2\xa6\xb9\x40\ \x2b\xbb\x5b\x96\xed\x27\x0c\x7e\x6e\xad\x28\x07\x25\x90\x53\xd4\ \x99\x12\x5e\x98\xe3\x3c\xbb\xe3\xe6\x59\xc1\xa1\xa5\xf8\x5e\x34\ \x7d\x7e\x94\x16\x2f\xa7\x80\x69\xad\xe8\xbc\x13\x2d\x00\x8b\x30\ \xaf\x34\xd1\x93\x2a\x13\x60\x7a\x5d\x72\xe2\x49\xb3\x57\x0d\x2c\ \xcc\x54\x81\x32\x3d\x69\x31\x32\x8a\x04\xa9\x1b\x7c\x88\x8d\xb0\ \x39\x9c\xf0\xf3\xb6\x58\xef\x8f\xaf\xce\x73\xa1\x79\x05\x21\x85\ \xb7\x87\xbd\xf7\x81\x33\xa6\x09\x9f\x6a\x9a\x20\xab\x97\x53\x8d\ \xef\xb1\x5b\x02\x5d\x11\xe1\xe1\xa0\xb5\x09\x9c\x09\xa7\x0f\x47\ \x89\x90\x58\xad\x29\xb5\xb9\xd1\xd4\xee\x43\x15\x62\x39\x67\x63\ \x87\xd0\x49\x00\xfb\x5a\x83\x37\x53\x28\xda\x02\xa7\xe1\x7f\x66\ \x37\xa2\x88\x43\xc3\x37\x12\x79\xc0\x89\x5d\xa8\xb8\x7a\x53\x6c\ \xe8\x13\xf3\x01\x18\x3a\x6f\x63\x92\xee\x3e\xfc\xca\xf0\x3d\x15\ \x8c\x10\x53\x9f\x23\x73\x1b\x7b\x79\xd5\xb0\xf8\x9a\xd2\x49\xb0\ \xf6\x85\xf9\xb6\x5e\x6f\x30\x9a\xca\x9d\xa7\xa8\x69\x76\x84\x2a\ \xe9\x23\x0b\x52\xb9\xcd\x9f\x19\x30\xa0\x51\xa9\xcc\xe6\x1e\x15\ \x31\x5f\xaf\x4f\x3a\x14\xaa\x33\xf7\x34\xb0\x28\xf1\x9b\x01\x06\ \x54\xd5\xfc\x19\x4a\x9f\x7e\x12\x5f\xef\x6c\xa8\x60\xb5\xf5\x7a\ \x07\x53\xa0\x82\x9c\xd0\x7a\x2b\xa2\x78\x29\x35\x37\x86\xfa\xf8\ \xaa\x5c\x83\x7b\x73\x30\xd4\x2a\xbd\xf8\x78\xe3\x9c\x4a\x13\x3b\ \x71\xab\x86\xad\xd7\xeb\xb2\xd2\xe2\x0c\x6f\x77\xd2\x16\xa3\x83\ \xf7\xe9\xc6\x2f\xd3\xc1\x13\xb0\x9f\x51\xf2\x2c\xe0\x99\x8c\x88\ \xaa\x69\xd2\xa9\x58\x35\xed\x88\x82\x18\xc2\x67\xa8\x92\x77\xf9\ \x62\x9e\x2a\x30\x1f\x8c\x17\xb4\x5b\x37\x73\x39\x7c\xdc\x14\x52\ \x41\x29\xd3\x46\xa4\xc6\x3d\x41\xe5\xe7\xd5\xeb\xbd\xd6\xbb\x1a\ \x23\x7c\x3d\xf4\x09\x04\x55\xaa\x1e\xe5\x12\xee\x63\xa3\x66\x36\ \x0f\xfe\x93\x26\x06\xec\xa8\x2c\xf4\xc0\xd8\xbb\x7a\xbd\x7e\x43\ \x8f\x90\x18\xf7\xad\xc3\xde\x85\xc2\xd1\xaf\xa2\x8e\xe1\xe5\x09\ \xf6\xa2\x4e\x4a\x4d\x1c\x0a\x3b\x2a\x4f\x93\xf5\x7d\x5f\xaf\xc7\ \x00\x54\xb0\xde\x36\x68\xf9\x34\x09\x9c\x68\x1a\x3b\x4b\xae\x5a\ \x1e\x29\x4c\x94\xeb\x95\xb0\x96\x9a\xb0\xa3\x8a\xd6\x0c\x5f\xaf\ \x87\x4a\x81\xef\xfa\xb6\x5a\x2f\x45\x11\xbb\x15\x81\xce\xc7\x5e\ \x83\x83\x13\x77\x63\x41\x51\xc0\xe2\x5b\xb4\x33\x3b\xaa\x7a\x54\ \xfa\xf3\xf5\x88\x9f\x00\xd2\x15\x1a\x7c\xd1\xd6\x88\xa7\x2e\x02\ \x75\x2b\xf5\xee\x3c\x96\x2b\x44\x28\x94\x4d\x8f\x5a\x01\x80\x6c\ \xaa\x36\x01\x6b\xbb\x5e\xef\x93\x8e\x0c\xd5\xda\x52\x5f\x15\x01\ \xeb\x19\xe9\xef\x92\x71\xaa\x2c\xeb\x51\x5f\x2e\x9c\x8c\xf2\x5b\ \x9f\xba\xfb\x7c\x3d\xcc\x93\x13\x52\xa0\xf5\x9e\xc9\xe0\x6c\x7b\ \x7a\x3a\x3d\x31\x46\xf3\x8b\xb4\x8e\x42\x46\x7d\xcc\xac\x3f\x7d\ \xe9\x30\x81\xb3\xa2\xf5\x5e\x49\x81\x9a\xcc\x38\xf6\x4c\x6d\xa4\ \x02\x35\x7f\x77\x6c\xa3\x9f\x36\x1b\x75\x78\xf8\x44\x1e\x10\x9b\ \x94\x8e\x2b\x36\xb5\xc2\xe6\xc4\xd9\xd0\xee\x4e\x32\x5b\xb2\x85\ \x69\xd2\x68\xf4\x14\x11\x52\x82\x08\x9c\x85\xfa\x28\x0b\x18\xa7\ \xab\xe3\x8b\xbf\x91\x26\xd1\x0f\xd4\xeb\x15\xa7\x05\xeb\xec\xa8\ \xdf\x33\xf9\xf8\xf9\x28\x9f\xf3\x4b\xcd\x29\x56\xdf\x9e\x93\xb2\ \xb3\x47\x4b\x11\x74\xde\xd7\x43\x50\xaf\x57\xbd\x07\xeb\xe7\x1f\ \xb7\xf4\xca\x84\x6b\x3f\xf2\xad\x69\x46\x5d\xad\xe3\x8c\x71\x42\ \x4c\x39\x90\x2a\x3a\x7a\x9e\x12\x6c\x46\x6b\x7f\xf3\x0b\xaa\xe0\ \x1a\x45\x81\x98\x4d\x29\xed\xcc\x38\x2b\xf3\x53\x03\x97\x99\x9f\ \xfd\x5f\x6c\xb6\x9f\x10\xc2\xd4\xb0\x5e\xea\xf5\x5e\x52\xa5\xa3\ \x40\x45\xc0\x2a\xfe\x90\xa6\xb6\x64\x3a\xd6\x03\x9f\x0f\x4a\x8c\ \xb1\x87\x19\x15\xda\xd2\xc9\x8b\x07\xa7\x50\xa5\xd4\x68\xbd\xf3\ \xf5\x4c\x4a\x7e\x9b\xce\x76\xc8\x69\xbf\xa1\xee\x5c\x1d\x01\x4a\ \xb4\x3c\x7a\x3b\xea\x92\xe3\x30\xa3\xf9\xe5\x7c\x26\xf2\xf0\x22\ \x36\x76\x50\xa6\x00\x95\x24\xc0\xb4\x91\x41\x04\x5c\x46\x47\xcd\ \x28\x32\xb9\x3e\x6a\x06\xeb\x8d\x07\xa5\xed\x32\x50\xfa\xfb\x89\ \x8e\xca\x59\x0c\x75\xf6\x50\x78\x28\x7b\x6a\x23\x67\x95\x50\x18\ \x51\xb7\xb7\x77\xbe\xde\x27\x72\x7d\xff\x68\xd5\xd0\xfa\xd4\x15\ \x1c\xbe\xaa\x3d\xe2\x83\x34\x85\xc6\x23\x5f\x42\x20\x4d\xe0\x0c\ \x88\xde\xdd\x0f\x55\x93\x6c\xae\x84\x96\x95\x4e\x4c\xb1\x20\x1e\ \xad\x2c\xeb\x61\x47\x53\x39\xcf\xff\xaa\x09\xb4\xbe\x48\x29\x7a\ \x72\x22\x0a\xad\x47\xd5\x0e\x2e\x14\x04\x35\xe6\xb3\xef\xe2\x7b\ \x20\xf5\xc5\x06\xe7\x42\x53\x28\xd3\x2f\xdc\xbc\x97\x0e\x32\x0d\ \x44\xeb\xc9\x34\xa5\x85\xb4\x91\x5a\xde\x9b\xbd\x28\x40\x22\x24\ \x21\xa4\x90\x50\xef\xeb\x51\x17\x69\x83\x85\x8c\x0e\x5c\x86\x8c\ \x66\x96\x6d\x14\x77\xcf\x8c\xe7\x08\xaf\x19\xe5\xa5\xa6\xb1\x00\ \xed\x83\xbc\xd2\x34\x46\x94\xe5\x13\xf5\x7a\x97\x26\x01\x46\x13\ \x38\x07\xde\xd3\xec\xa8\x2e\x0b\xde\x37\x50\x53\x36\xeb\x92\x20\ \x55\x8d\xc2\x40\xec\x6c\xfc\xbc\xa3\x28\x2a\x4c\x88\xa0\xbd\x42\ \x79\xc5\xef\x59\x80\x88\x98\x91\xc7\xcb\xfe\x84\x8f\xb5\x89\xd6\ \x4b\x69\x59\xf5\x08\x68\x6b\xa3\x51\xdd\xf7\x3d\x59\x5f\x6a\x82\ \x7b\x73\x08\x83\x5e\x6e\x73\xd7\x41\x53\x64\xf3\x32\x71\xf7\x47\ \xaa\x54\x98\xcf\xda\xd4\x11\xdc\xd7\xa8\x81\x32\x4c\x9f\xcb\xe3\ \x60\xc4\x86\x79\xbe\x6c\xdb\x7d\x65\xa2\x2b\x88\x65\xd4\xa7\xa1\ \x89\xfc\x0c\x31\x29\xc1\x94\x5a\x53\xe7\x26\x34\x61\x8a\x92\xeb\ \x94\xc9\x87\x06\x90\x17\x23\xa0\x8a\x54\x13\x26\x18\xf3\x4f\x8b\ \xf4\xda\x7d\x64\xa9\x1c\x0a\xd6\xd6\xac\x38\x1f\x8d\x31\x29\x1b\ \x28\x34\xe7\xf1\xbb\xb0\x4a\xaf\x31\x09\xa7\x74\xf4\xe4\x8d\xbd\ \x4c\x09\x38\x09\xa9\x93\x4e\xab\x4f\xbe\xba\xec\xbb\x4a\x22\x55\ \x09\xea\x29\x10\x52\x51\x77\x5a\x0d\x45\x7d\x17\x21\x2f\x35\x3d\ \x2e\xca\xc7\xdd\x9e\x3f\x37\x1e\x85\x1d\x95\x27\x45\x2d\x14\x11\ \x3e\x01\x25\x21\x5d\xff\xa6\x43\x24\x9e\xa6\x74\x8b\x74\x6e\x22\ \x13\x45\x31\xbf\xc1\x23\x6c\x66\x25\xc6\x03\xa1\x8b\x47\x3d\x45\ \xad\x12\xc1\x96\x32\x52\x3d\x4d\xf9\x21\xa9\xdc\x35\xda\x88\x5c\ \xed\xce\x10\x14\x22\x6a\xb7\x4c\x48\x96\x00\x28\xaf\x2e\x1e\x45\ \x83\x56\x77\x87\x0e\x4f\x69\x7e\x79\xa3\x00\xbd\x6d\x14\x94\xc9\ \xd2\xb3\x9c\x53\xb0\xef\xa2\x28\x94\xca\x44\x24\xa6\x82\x03\x7c\ \x00\x69\x1b\xb4\xa0\xf6\x30\xf6\xaa\x51\x7a\xb0\x72\xf5\x04\xc5\ \x30\x6f\x9e\x92\x04\x38\xf9\xa3\x2d\xa1\x0c\x0a\xde\xc9\x27\xf0\ \x5d\x3c\x3a\xaf\x5e\xcf\x4c\xf7\x1d\x10\xff\x16\xcf\x3c\xec\xdb\ \x33\x2e\xb4\xd8\x10\xde\x04\xd5\x53\x15\x22\x0a\x9d\xf7\xea\xa4\ \x67\xeb\xbd\x71\xf2\xf1\x28\x6e\xd0\xf2\xd9\xbc\xf8\x12\xdd\x17\ \xb0\xff\x7a\xe2\xbe\xc9\x38\x2b\x1a\x09\x7c\xa3\x4c\x2d\x5d\x42\ \xfc\xe4\xa2\x7c\x98\xa7\x2e\xcd\xf7\xf1\x28\x28\xda\x1d\x39\xbb\ \xb6\x27\x71\xf5\xf3\x65\x14\x05\x46\x5d\x69\x76\x75\x11\xce\x2d\ \x88\xcd\x8f\x47\x73\x9b\x24\x4b\x79\xb5\x5a\x8f\x41\x04\x85\x81\ \xf2\xaa\x64\x3c\x3d\x6f\xef\xc0\xfd\x21\xd2\x63\x50\x7b\x9f\x27\ \xf1\xe4\x5c\x21\x11\xbe\xdf\xd0\xe3\x2e\x1d\x53\x06\x67\x8a\xa2\ \x5e\xef\x7b\x89\xd0\x55\x22\x37\x0e\x03\x25\x16\x93\xc9\xe3\xcf\ \x9f\x1f\x8f\x56\xad\xb3\x22\xec\xde\x19\xaf\xf8\xfa\xcc\x92\x14\ \x62\x5a\xd2\x3f\xac\xaf\xa7\xc9\x42\x0a\x82\xf2\x00\xcb\x91\x23\ \xa3\xb0\xcf\x5f\xf7\xe4\xc2\x51\xc9\x94\x54\xd6\x3c\x19\xbe\x9b\ \x7e\x5c\x8a\xf2\x05\xa9\xab\x82\xab\x07\xc5\xa1\x16\x1c\x08\xae\ \x51\xaf\xf7\xbe\xde\xb0\x7f\x7e\x3c\xea\x7b\x4a\xe0\xef\x6d\x0b\ \x21\x6a\xf5\xb6\x5e\x6f\xbb\x20\xa0\x4e\xa5\x3f\x66\xad\x12\x0a\ \xe6\xfb\x02\x23\xae\x4b\xf5\x09\x08\xb7\xfd\x24\xe9\x0c\xd3\x75\ \xe2\xf3\x52\xb8\xbe\x3c\xc8\xa7\x46\x4f\xa2\xf5\xf3\xce\xd7\x1b\ \x5f\xef\xfb\xf0\x01\xd2\x1a\x7c\x0c\xa8\xbc\x70\xbf\x68\x5f\x97\ \x09\x19\xa5\xd5\x94\xc1\x21\x9d\xb8\xdf\xd1\x07\x4e\xfa\x78\xee\ \x83\xf7\x18\xae\xc7\x19\x03\x38\xa1\xf5\x2c\x9f\xa6\x5e\x5f\xf2\ \xe2\x8f\x36\x98\x0c\xa9\x73\xf5\x4a\xd5\x46\x82\x5c\x41\x02\x63\ \x2b\x93\xcb\x05\xb1\xbc\x4d\x50\x6c\xee\xe4\x4a\x9d\x22\x33\xf7\ \x7a\x02\x61\xd1\x2a\xd7\x1b\x6f\xef\x60\x12\xb3\x91\x23\x0d\x08\ \x69\xb1\x66\xc9\xd7\x99\x7c\x75\x19\x9a\xc4\x0b\x43\xe4\x29\x8f\ \xb2\x5e\x2a\x77\xae\x57\xc3\xd5\xeb\x25\xd2\xc3\xd0\x3e\x6c\x36\ \x4e\xf1\xed\x38\xff\xc1\xd3\xaf\xb0\x06\x0a\xf5\x7a\x0c\x25\x24\ \x7d\xc4\x2f\x08\x29\x8b\xa8\xd6\x99\x8c\xd6\xab\x12\xb9\x7a\x7d\ \xc0\x6d\xf8\x8e\x32\xb8\x37\x50\x42\xce\x4f\xd3\x65\x27\x65\xd7\ \x35\xf3\xe1\xb1\x15\xb1\x2c\x6b\xb5\x12\x21\x8d\xab\x75\x26\x5f\ \x0f\xa3\xc5\xd5\xeb\xad\x74\x9a\xd4\x38\x28\xab\xb4\xa4\x37\x5d\ \xb7\xf8\x83\xdc\xd0\xd4\xd6\xeb\x81\x15\xdd\x59\x7a\x9c\xa9\xc8\ \x54\xe9\x71\x62\xc4\xf6\x95\xf0\x9d\x54\x73\xeb\xf5\xc0\x8b\xd4\ \xb8\xc2\xb4\x29\xb2\x2b\x22\xd0\x6f\xde\xa5\xfa\xb4\xc2\x9b\x27\ \x98\x52\x65\x3d\x88\x9a\x05\x94\x71\xe2\x46\xf4\xce\xb6\xcc\xba\ \x95\x22\x87\x84\x22\x26\x51\x8a\x12\x68\x6f\xf0\xf9\x3a\xbd\x0b\ \xc6\x1d\xbe\xde\x3a\x26\x46\x8a\x03\x8c\xe4\xef\x35\x35\xae\x51\ \xb3\xf6\xe1\x03\x66\x82\xb7\xf8\xfb\xda\x79\x26\x01\xaa\x77\xcc\ \xf3\xe3\x62\xbd\x15\xbd\x63\xc7\xf7\x8f\xef\x72\x7d\x4f\x83\xf9\ \xfd\x8e\xb8\x7e\x14\xca\xc4\x24\x45\x1f\xbe\xad\x82\xf2\xca\xb9\ \x71\xa7\xef\xa8\x86\x09\xd2\x8b\x77\x7d\xbe\x79\x2d\xba\xd6\xc1\ \x93\x2a\xed\xab\x31\x85\xd6\x0f\x9a\xea\x94\x32\x31\xf5\x95\xb5\ \xc2\xe6\xd4\xee\x42\x11\x94\x80\x9a\x6a\x4b\x6b\xb9\xac\x02\x37\ \x95\x08\xb3\x59\x3e\x77\x07\x90\xf1\x62\xc5\x63\xa3\xbe\x6f\xc3\ \x1f\x76\x27\x20\xaa\xbc\xeb\x70\x83\xdc\x9a\x07\x92\x82\xa2\x08\ \x9e\x3b\x2b\x22\x04\x51\x6f\xd6\xf0\x09\x88\x7e\x5c\xae\xdd\xac\ \xa7\xce\xc7\x96\xf1\xba\x0d\xb9\xf8\xf6\xe7\xaf\x48\x6c\x4f\x89\ \x17\xd0\x94\x4f\x04\xd3\x84\x3a\xb1\x8c\x0a\xc0\x02\x6a\xef\xa0\ \xea\x20\x88\xae\xbf\x9d\xd8\xdf\xb8\x3c\x6f\xbf\x9e\x1a\x00\x21\ \x2f\x3e\x87\x2f\xb8\x1b\x1b\x17\x8a\x2c\x2e\x86\x22\x05\x48\x90\ \x54\x6e\x56\x80\xde\xe3\xa0\x90\x9e\x69\x00\xd2\x12\xc4\x44\x16\ \x3f\x08\xe5\xab\x01\xf4\x78\xde\xb7\x61\xf3\x3f\xf6\x74\x3c\x96\ \xb4\x33\x25\x95\xcb\x37\x66\x34\x5a\x91\x73\x01\x8a\x3a\x98\x6a\ \xec\x81\x12\xc2\x59\x8b\x95\x47\x7f\xc1\xc5\x04\xe4\x9e\x1e\x09\ \xa9\xb9\x76\x78\xe5\xb9\x20\xf6\x75\xb9\xeb\x1a\x77\x22\xca\x12\ \x8a\xab\xb1\x0b\x5a\x94\xa2\xa6\x0f\xdf\x79\x7b\x60\x25\x6d\x52\ \xa8\xa0\x68\x18\xd7\x7e\xe0\xc0\x8e\xa7\x27\x94\xca\x5e\x34\xac\ \x5f\xb9\x04\xa0\x0f\x8e\xda\x14\x35\x26\x1f\xe7\x99\xb0\x1b\xa1\ \xa0\xb4\x68\xe6\xc6\xad\x80\xa6\xba\xa9\xaf\xe5\xd6\x61\x04\xce\ \xfe\xa2\x92\x3e\x3d\xf1\x26\xc2\x2f\xd1\xed\x86\x14\x97\x20\x70\ \x5e\x17\xad\xfd\xea\x0b\x28\xd3\x89\xeb\x47\xdd\xbe\x1e\x09\x1d\ \xc6\xcc\x8c\x27\xa7\x94\x15\x85\x6d\x1b\x86\x73\xc2\x10\xb8\x12\ \x94\xbc\xf8\x22\x45\x7a\x48\x8e\x0a\x4e\x89\xee\xde\x4b\x42\x9a\ \x5a\x9d\xff\xad\xb3\xef\x7d\x7c\xb1\xba\x90\x85\x74\x61\x06\x15\ \xcd\x2f\x66\xe0\xcc\x65\x26\x38\xc5\x7f\x4a\x49\xa4\x2c\x70\xaa\ \x0d\x5c\x97\x6c\x33\x53\xf4\x9d\xab\x82\x9d\xfc\xfe\xd8\x18\xfd\ \xbe\x50\x54\x0d\x3e\xdd\xbc\x35\x6a\x02\xd5\xe7\xe3\x54\x7d\x4f\ \xe7\xc9\xa8\xed\x7e\xd0\x02\x8e\x70\x3e\x43\xdc\x2c\xb5\x26\x37\ \x12\x5e\x03\xce\xeb\xf5\x02\x60\x44\xf9\x52\x65\x8a\x00\x13\xf1\ \xa0\xeb\x70\xd1\x3c\x33\x1e\xc9\x51\x08\xa9\x95\x51\x8b\x35\x55\ \x17\x0a\x19\x15\xa5\xb7\x94\x94\xd4\x38\x30\xd6\xba\x0d\x79\x54\ \x80\xbe\x2f\x67\x98\x8a\x93\x40\x92\x52\x45\xdf\xf9\xef\x6a\x49\ \xa1\xf9\xfc\x5b\x58\x78\x4f\x00\xfa\xcc\xd4\x50\xd4\x85\xf8\x80\ \x2b\xa9\xf1\x82\x63\x67\x68\x3f\xf6\xf5\xce\xda\xcb\x66\xf9\x1b\ \x02\x74\xf5\x68\x16\x94\xf4\x31\xd5\xdb\x7f\x1c\x42\x6a\xfb\x9b\ \x17\x16\x4e\x87\x25\xc5\x76\x79\x00\x90\xe8\x28\x41\x12\x42\x29\ \x4a\x53\x8c\x13\x81\xe5\x37\x46\x8d\x2a\xe3\x4b\x5f\x96\xeb\x63\ \x26\x33\x65\x7a\x89\xb0\x69\x88\x47\xbc\x37\x42\xaa\x50\x99\xa2\ \x1f\x84\x90\xce\xef\x29\x81\x94\x42\xeb\xd5\x90\xc6\x51\x32\xe0\ \x8e\xa3\x6c\x38\x24\xb2\xa6\x1a\x7f\x80\xac\x4f\x14\xd2\x7f\xfa\ \xc6\x33\x3f\x0b\xdf\x6f\x58\xda\xdd\xd7\xab\x20\x58\x9b\x3e\x45\ \xb7\x1b\x5a\x65\x62\x8a\x92\x90\x3e\x31\x32\x5b\x91\xaa\x6a\xb3\ \xdd\x1c\x6a\xa1\xa7\x60\x88\x92\x79\x40\x25\xd4\xed\x96\x25\x1e\ \x89\x9f\x74\x7d\xf2\x8e\x2c\xf9\xab\xc6\x85\x8a\xbf\xa3\xd1\x28\ \x9f\x0c\xfc\x12\x0b\xa9\x6f\xd6\x58\x58\xf9\x69\xb6\xa4\x6f\xf9\ \x44\x88\x5f\x36\x0f\x29\x70\xf6\xaa\x84\xba\xc8\xcc\x3e\x21\x3d\ \x6a\x4e\x89\xb5\x46\xd3\xd5\x27\x7d\xaa\xf4\xef\xb4\xf7\x15\x1e\ \x13\xef\xc4\x3d\xd9\x6c\x49\x33\x90\x13\x8d\xae\x24\xa4\x5f\x57\ \x51\xaf\x11\xe1\x9b\xae\x71\x34\x37\x67\x7a\xc5\xbc\xf0\x9e\x21\ \x16\x90\x4d\xc0\xd5\xea\x72\xad\x5e\x34\x32\xf6\x82\x63\x3d\x3b\ \x5e\x5e\x0a\x49\xfb\x43\x15\xd2\x9d\x4d\xe9\x8c\x6c\x0f\x60\xdf\ \x12\x76\x4e\x18\xd7\x8c\x7b\xa8\x82\x3b\x6b\x2f\x66\x94\x70\x66\ \xda\xa3\xa3\x77\xe9\xe8\xde\xbe\x9d\xd2\x61\xaf\xc4\x40\x77\x01\ \xde\x86\xb5\x5b\x0e\xdf\x76\x06\x7d\x1e\x29\x84\xf5\x11\xf0\xa7\ \xc8\x92\xc2\xd9\xd3\xa5\xae\x1f\xfc\x52\xeb\xb2\xf2\x53\xf7\x8c\ \x18\xa8\xab\x34\xb5\x94\x09\x96\x09\x59\x3c\x6c\xf2\x8c\xbd\xaf\ \xd3\xf2\xca\x55\xbb\x98\xa4\x9f\x57\x98\xab\x1f\x5b\xae\xb2\x32\ \xe1\xab\xaf\x36\x8d\x59\xfb\x89\xaa\x46\x48\xf9\x3a\xdf\x3f\xff\ \x82\x45\x79\xd5\x35\x57\x4f\x46\xc3\xee\x7a\x3d\xc3\x74\xa9\xf1\ \xc2\x16\x43\x8d\xd6\x27\xfc\xf9\x4e\xbe\x75\x7e\x42\x57\xd1\xad\ \x11\x9c\x47\xa6\x03\xb1\xa4\xef\xa6\xfb\x0e\x23\x49\xc5\x94\xbe\ \x28\x96\x14\xe5\x9b\x68\xea\x01\x72\xef\xcd\xfb\x17\x2b\x57\xaf\ \x77\xd6\xd4\x50\x94\x7d\xbd\x3f\x2d\x80\x91\x28\xb2\xde\xe7\x52\ \x0a\x48\x99\x83\x67\x4e\x73\xf6\xf3\x72\x01\xfe\xbe\x51\x40\x28\ \x82\xba\x40\x0a\xb6\x33\xec\xf3\x6e\xff\xc6\xe6\x73\x57\x46\x8a\ \x5e\x31\x03\x79\x78\xff\x64\x67\x3a\xa4\x5b\x3d\xb5\x5e\x3f\x98\ \xd3\x98\xe9\x8b\x0d\xa0\x66\x13\xf0\x9a\x47\x9e\x8b\xaf\xa5\xc6\ \x5f\xbd\x08\x40\x45\x48\xf7\xdc\x8f\xb0\xe4\x3f\x63\x27\xcd\x34\ \xc1\x1f\xe6\x22\x2b\x74\x40\x64\xf2\xfd\x91\xa2\xdb\x9e\x21\x4a\ \x3e\x35\xe1\xbd\xe8\xfc\xde\xbc\x14\x40\xfd\x5e\x44\x3b\xc9\x70\ \xc1\x5f\x51\x5e\xfb\xdb\xc1\x50\xbe\x90\x07\xa0\x2f\x2a\xd0\xf5\ \x13\xa2\x28\xfd\xfb\x8e\x69\x8a\xd8\xe9\x1c\x8a\x54\x88\xf7\x71\ \x0e\x87\x46\xb9\xb7\xe4\x24\x01\x1b\xc7\xe3\x9d\x01\xa4\xbf\x93\ \x0c\x01\x54\x96\x81\xf9\x0c\xd5\x6e\xec\x0b\x45\x89\x1b\xfe\x96\ \x5e\xc5\xd0\xc6\x01\x68\x11\x0a\xe6\x37\xed\x23\x21\xe5\xdd\x1d\ \x79\xd1\x29\xc2\x3c\xde\xd6\x3d\x95\xf6\x69\xbc\x77\x57\x4b\xbb\ \x4f\x56\x6c\x43\x17\x16\x16\x3a\xb6\xcb\xce\x3a\x29\x35\xe9\x87\ \xe4\x78\x21\x50\x2d\xd2\x8b\xf4\x0a\xdf\x65\x2e\xe0\x8f\x47\x3f\ \xa5\x7b\x37\x33\x4a\x91\xac\xa3\xbe\x99\x1a\xcd\x2f\x44\xc0\x49\ \x04\xfa\x4b\x86\x96\x91\xf2\x6b\x9f\x9e\x24\xac\xf9\x61\xf8\x23\ \xc1\xb8\xa0\x86\x67\x6a\xf4\xa9\xb5\x05\x65\x98\x87\xce\x7b\xf8\ \x8d\x17\xde\x59\x16\xf1\x57\x28\x35\x7e\x31\xe3\x10\x8f\x75\x7d\ \x4b\x55\xce\x84\xf4\x5e\xec\x98\x77\x13\xf1\x97\x4b\x71\xf3\x00\ \x79\xe6\x2b\xa3\x4c\xaa\xd1\x0f\xc3\xa5\xc6\x5d\x1f\xbe\xad\x2e\ \x2b\xef\x81\x76\xeb\x23\xeb\xe4\x7e\xe1\xed\x11\x6b\x7a\x6b\xa0\ \x26\xdd\x7a\xfe\x45\x89\x4a\x6a\x2a\x98\x8f\xeb\x44\x2d\xe9\x86\ \x91\x6e\x98\x78\x9f\x7c\x7c\x1c\x4d\x93\x01\x39\x1e\x15\x62\xf4\ \xc9\x37\x85\xa5\x41\xcd\x6d\xb8\x55\xc3\x67\xf0\x81\x35\xb3\x3a\ \x7f\xb4\x79\x39\xf7\x1f\x93\x00\x7c\x72\x72\x30\xc2\x59\xd4\x90\ \x74\xbb\x58\x52\x15\xd2\xde\xde\x52\x02\x3d\xe6\xf6\xf2\x20\x9a\ \xfb\x25\x92\xdf\xb3\x5e\xf9\xf4\xe2\x28\x4d\x9a\x95\xf0\x05\xa2\ \x28\x80\x76\xfe\xa5\x16\x45\x87\x56\x57\x18\xa8\x43\xcf\x6e\x3f\ \xf5\xe8\xf9\x56\xae\x6e\xe1\x0d\xc9\x76\x12\xd2\x22\x29\xf1\x37\ \x30\xee\x4d\x69\xaf\x2c\x77\x2f\x3e\xbb\x3b\x79\xe9\xf5\xbb\x58\ \xed\x0e\x4c\x6b\x32\xa1\xef\xbd\xee\x7d\x8f\x8f\x03\xc8\x7e\x03\ \x25\xc2\x3c\x73\x3b\x72\xcb\x3c\xf9\xed\x08\x28\x7a\xe9\x39\x07\ \x89\x36\x7a\x43\xa5\xbe\x1f\xcc\x23\xd2\x25\xd6\x1f\xa9\x37\xec\ \x66\x4b\x1a\x63\xbd\xf2\x0f\x7b\xed\xb1\x77\x5a\x69\xd7\x63\x42\ \xfe\xa9\xe3\x7c\x58\x97\xd6\x9b\xba\x9d\x6f\x77\xe3\x94\x5e\xba\ \xf1\xd4\x1e\xc6\xc1\xb5\x0f\x4c\x26\x5f\xbc\x7a\x1f\x01\x78\x20\ \x02\x7d\x8e\xf5\x47\xa3\x92\x18\x7f\xbe\x6d\x91\x0c\xd4\xb5\xee\ \x5a\xf0\xe9\x4e\x89\xf4\x13\x7f\x09\x25\x8e\xb4\xb8\x23\x03\xdd\ \x27\x1b\x04\x24\x3c\xd3\xd1\x1e\xc6\xda\xe9\x62\x45\x96\xff\x3b\ \x14\x84\x57\x51\xf7\x4f\xe5\x4b\xfb\x19\x29\x01\xed\x2d\x07\x98\ \x6f\x45\x92\x49\x18\xb1\x76\x3a\x22\x9c\x0c\x4f\x36\x79\x18\x9d\ \x17\x7d\x6d\x73\x49\x32\x75\xa0\xfa\x03\xd2\xcb\xaf\x82\xf7\x98\ \x56\x85\x8c\xcd\xe4\x20\x23\x49\x29\xd8\x98\xca\x95\x44\xec\x38\ \xd7\x2e\x5d\x5f\x2b\xbe\x7b\x64\x03\x75\xe3\xf2\x38\x27\x98\x26\ \x87\xcf\x13\x52\x1a\x9e\x28\xa2\xc0\x89\x5a\xa8\x27\xaa\xd8\x7b\ \x68\xd2\x6b\xf7\xae\xed\xb1\x9f\xa9\x52\x35\xf7\x67\x53\xff\x73\ \xa5\x42\x7a\x2f\x97\x1c\xbe\x35\x13\x91\xf7\xeb\xd7\xf4\xae\xab\ \x0f\x1c\x3e\xb1\x67\x3a\x2a\x24\x05\x81\x3f\x19\x4b\x20\x5d\xd9\ \x76\x41\x4a\x62\xe6\x08\x46\x3b\xc2\x47\xb1\xde\xdc\x04\x50\x55\ \x2f\xe3\x90\x2d\x55\xaf\x54\x5c\x44\x94\x1b\x15\x22\xa4\x1b\x76\ \x96\x65\x91\x2c\x35\xd2\x71\x8f\x12\x1d\x57\xef\x58\x4e\x93\xb2\ \xa8\x93\xa1\xfa\x27\xa1\x28\x85\x7a\x40\xea\xae\xcb\xc4\x30\x32\ \xea\xcf\xdf\xcc\xcc\xd3\x56\x7a\x13\x7f\x77\x8c\xe0\x41\x4b\x02\ \x1a\xed\x67\x41\xc2\xb8\xfe\xd9\x6b\x4f\xf9\xfd\x1e\xc6\x43\x77\ \x2d\x6d\xd9\xf1\xd4\xe2\x28\xab\x4d\x52\x87\x86\xb4\xe9\xe8\x03\ \x90\xdd\x2d\x5a\xdb\xa8\x55\xa3\xb3\xd4\x94\x3a\x83\xbf\xc4\x40\ \xc9\x8f\x12\x45\xdf\x4c\x7f\xa5\x61\x1c\x85\xf4\x0f\x7a\x4d\xb3\ \xb0\x85\x60\x7f\x66\x39\x5d\x13\x34\xad\x91\xcb\xa3\x85\x07\x71\ \xde\xd7\x96\x2d\x3e\x6b\x47\xfd\x31\x5b\x98\x28\x13\x3e\x1d\x22\ \x2d\x07\x45\x0b\xf2\xa5\x8f\x8d\xc8\xe6\x93\x62\xa9\xdb\x3f\xb9\ \x2e\xb0\x7b\x71\x27\xe7\x1c\xeb\xda\x24\xf3\x84\xaa\x8d\x7b\x7f\ \xfa\x8e\xf3\xb0\x4d\xa0\x68\x17\xe7\x81\xd3\x8c\x92\xd3\x5e\x7a\ \xdf\x74\x4a\x0e\xf1\xe5\x93\xbc\x8c\xe3\xf2\x7f\x11\x94\x74\x8d\ \x7e\x52\xe5\xd2\x9d\x87\xb6\xb7\xa1\xb9\xd1\x95\x81\x26\x5d\x7f\ \x6b\x1d\x34\xf5\xf5\x7a\x4f\x54\xa8\x15\x00\xf3\x7e\xe8\x4f\xf9\ \x4f\x06\xde\xc9\x34\x3c\x31\x2e\x65\x7c\x98\x3c\xc0\x1d\x87\x27\ \x93\x4c\xfe\x2c\xbc\x1f\x80\xe9\xee\x7d\x41\x46\xcf\x1d\x0c\x5d\ \xe1\x32\xce\x2e\x22\xb1\x64\x7d\x56\xac\xe2\xae\xa5\x03\xba\x13\ \x7e\x62\x5c\x61\xcf\x34\xf8\xe8\xc9\xc5\xc9\x28\xd3\xb4\xb8\x69\ \x72\x16\xe6\xa3\x67\x1c\x50\x9d\xc1\x9f\xd3\x91\x5b\xe5\x08\x9e\ \x53\xdb\xad\x61\x39\x4f\x42\x6a\xc7\x6d\x93\x11\xce\xac\x9b\x14\ \xbe\xf0\x5d\xd8\x0e\xa8\xee\x26\xc2\xc4\xdd\xe0\x0d\xdf\xe4\xef\ \xd2\xf1\xe6\x1e\x09\x5d\xa8\x7d\xde\xc6\x79\xcd\x74\x94\xba\x0c\ \x44\x78\x11\x50\x73\xe5\x30\x14\x5f\xcf\x31\xa1\x29\xd7\x88\xa8\ \xa7\x27\xfa\x47\x6d\xbd\x5e\xa7\xd7\xa5\x34\xdf\x6e\xe3\x8b\xfb\ \xa6\x23\x86\x98\xa2\xff\x41\x29\xaa\xcd\x44\xad\x1a\x93\xb0\x1e\ \xa7\x83\x1c\xeb\x65\xb5\x48\xfd\x91\x60\xa7\x44\x26\x72\xe6\x48\ \xf3\xe6\x63\xbd\x7b\xee\xd9\xb0\x76\xff\x72\x55\x94\x85\xbb\xe1\ \x8d\x50\xb2\x8c\x72\xe9\xd6\xda\x51\xd3\x44\x98\x00\xad\x3f\x19\ \x4a\x0b\x4e\x36\x18\x6a\xba\x14\x04\x04\x15\x96\xf4\x92\x51\x3a\ \xa0\x3f\xfc\x47\x76\xdf\xe4\xc8\x78\x36\x65\xb4\xf6\x77\x95\xa0\ \xe3\x4d\x86\x7e\x18\x62\xfa\xb3\x22\xf0\xf4\x96\xf7\xc0\x88\x51\ \x90\x4b\x1f\x93\x15\xc5\x5d\xe3\xb6\xb6\xac\x09\x52\x1c\xb8\x83\ \x6f\xb2\x76\x34\xce\x3e\x50\x6a\xe2\x11\x54\xb5\x8d\xae\x1d\xda\ \x94\x42\x4c\x2d\xda\x22\x5a\xd2\x1b\x26\x05\x0d\x45\x9a\x5a\xa8\ \x8d\x12\x63\x69\x19\x4f\xab\xc2\x44\xe8\x64\xd8\xef\x49\xe9\x6f\ \x22\xb4\xe7\x2c\x9d\x6b\x2a\xe3\xf2\x30\x05\xf5\xb9\xa0\x2c\xdd\ \x1d\xde\x5c\xb8\x53\xb0\xd0\x7a\x7b\x86\x51\x2d\x3d\x90\x7a\x17\ \xea\xa2\x27\xd0\xd3\xc7\x4f\x5e\x48\x7f\x8f\x42\xe7\x91\xa6\x21\ \xd0\x58\x80\xa1\x76\x54\x7e\xfe\xcc\x1d\x9a\x72\xfd\x31\x46\x14\ \x70\xa0\x4f\x5e\xeb\x53\x2c\xc2\x7e\x7f\x41\x0d\x0b\xe9\x9d\xa7\ \xac\x7a\xb3\xb0\x9e\x50\xda\xcb\x89\x94\xf5\x65\xe7\xa1\x16\x6d\ \x7e\xe9\xf2\xf5\xf0\x9d\x9e\xa2\xb6\x71\x58\x57\xa5\xa3\xbc\xd1\ \xab\x83\x24\xf2\xd5\x8c\xd4\x8f\x5a\x86\xf3\xf7\x4d\x3b\xda\x77\ \x67\x6f\x0c\x5e\x50\xd3\xdc\xde\xee\xf2\xcd\xfc\xe9\x39\x8f\xbc\ \x62\xdc\xcb\x05\xa0\x4e\xed\x13\x75\xa2\xa0\x64\xd7\x4d\x84\x08\ \x43\xbd\x25\x75\xd7\xd1\xa1\x23\x97\xa7\x33\xfa\xce\xd9\xaf\x31\ \x29\xc2\x49\x4b\xeb\x13\xd0\x33\xac\xe8\x1d\xef\xf0\xa0\xb2\xb2\ \x75\x82\x2a\xf9\x4b\x5f\x86\xad\x30\xaf\x72\x59\x5c\xd5\x7c\x93\ \x78\x6a\xd0\x73\xdf\xe1\xe5\x9d\x0c\xd4\xf6\xe8\xf8\x6b\x52\x95\ \xfd\x43\x7b\xe4\x92\x1e\x47\x51\x1f\x35\xc3\xd7\x57\x4e\xe5\x9b\ \x09\x08\xf3\xb7\xac\xff\x83\x30\x52\xc2\x28\x44\x73\x5e\x46\x71\ \x54\xdd\x5d\x4a\xe5\x6e\xee\xa7\xe1\x5d\xa8\xe2\xf4\xd7\x7a\xce\ \x2f\x35\xd8\x9b\x67\x29\xd3\xfc\xec\x1b\xd6\x9f\xb5\x63\x79\x3a\ \x1e\xa4\xb3\x44\xee\xff\x37\x76\x36\xad\xb6\x1d\x45\x18\xbe\xd1\ \xab\x6b\x7f\xac\xbd\xd6\x59\xd7\xbb\xb9\xde\x13\x50\x07\x5e\x41\ \x49\x40\x74\x20\x38\x88\xa0\x01\x11\x27\x89\xa0\x44\xf1\x6b\x92\ \x20\x19\x29\x82\x1f\x71\x60\x06\x8e\x1c\x38\xf0\x27\x38\x53\x34\ \x19\x38\x0a\xfe\x80\x8c\xfc\x05\x01\x41\x32\x50\xfc\x15\xe6\x74\ \xd7\x5e\x4f\x57\xbf\x55\x6b\xdf\x3e\x7b\x9f\x73\x86\x45\x77\x57\ \x75\x7d\xbd\x6f\x09\xa4\x6d\x70\x16\xa0\x13\xd4\x31\x16\xe8\x2d\ \x85\x1e\x59\x89\x00\x20\xd0\x42\x9f\x14\xdd\xb0\x4a\xfb\xe0\x41\ \x15\x92\xd9\x12\x09\x59\x85\x4e\x17\x98\x61\x2c\xe0\xf4\xe5\xe4\ \x5b\x1b\xda\x4d\xb2\xa6\xbd\xdd\x67\x73\x6c\x47\x91\x92\x9d\xad\ \x2b\x18\x81\x51\x8f\x5c\xb0\xcb\xa3\x5d\x51\x2b\xd5\x83\x15\xd1\ \x14\x99\x42\xee\x34\x91\xab\x45\x5b\x28\xfe\xa0\xa1\x3b\xb2\x2a\ \x99\x8e\x48\x6b\xa2\x29\xf5\x2c\xc4\x3f\xf6\x90\xf6\x72\x2a\x55\ \x85\xe2\xeb\x63\x92\x1a\x65\xc9\xed\x73\xf8\x5e\xcc\x2a\x9a\x9a\ \xa6\x5e\xe3\x57\x4c\xd3\x2c\x2a\x05\xda\x4e\xba\x1d\xb9\xa3\x44\ \xf5\x48\xca\x00\xb9\x75\xba\x21\x62\x0a\x17\x04\xf6\x89\x7b\xca\ \x66\xfa\x99\x0d\x4c\x42\xe8\xb7\x14\x6e\x0d\x01\xb0\xb2\x9c\xa0\ \xc2\x96\x39\x56\x08\x86\x69\x92\x37\xa3\x0e\x59\x5f\x3e\x8a\x5b\ \x07\xd1\x14\xb2\xfe\x84\x2c\x00\x66\x47\xb1\x4f\xf2\xd6\x77\xef\ \x27\x0d\xe3\x91\x3e\x79\x81\xb9\xa1\x4a\xe6\x4c\x02\x42\x19\x13\ \xf9\x46\xdc\x8e\x8a\x05\x0f\xcd\x13\x72\x72\xf8\xc4\x76\x81\xcd\ \x47\xab\xc8\x3c\x39\xfe\xee\x61\x96\xfc\x83\x28\xbc\x8c\x3d\x92\ \xc2\x88\xea\x13\xd2\x16\x7d\x2f\xa2\x0a\xda\xb2\x01\x09\xc6\x7e\ \x09\x18\x21\x21\x20\x05\xd5\xa0\x3b\x0a\x5b\x41\xaf\x4d\x7d\x8e\ \xcc\xda\x85\xa1\x23\xcb\xfc\x3c\x30\x77\xfc\x76\xfe\x68\xc3\x94\ \x99\xf2\x8f\xaa\xd6\x73\x49\xdd\x35\x45\x5c\xb7\x56\x49\x19\x24\ \xd5\x8e\xe6\x02\xc2\xca\x93\xaf\x0e\x29\x89\x07\xf5\xf3\xb2\x85\ \xa0\x27\x54\x1e\x07\x5f\xa9\x9c\x4d\x99\xd8\xd1\x9e\x97\x8a\xa3\ \x57\x62\x2a\xc0\xe0\x8c\x39\x74\xea\xbe\x49\x94\xaa\x3e\x89\xaf\ \x84\xea\xcc\x86\x0a\x1c\x30\x5d\x2a\x92\x0e\x1e\x67\x8b\x21\x95\ \x67\x29\x99\x81\x91\x6f\xe9\x75\x7c\xfd\x8e\xc9\x0d\x32\x4f\x06\ \xe4\xb2\xea\xfc\x80\xb8\x42\x8c\xcd\x3e\x22\xaa\x52\x92\x09\x3e\ \x2c\xc7\xd7\x17\x61\x2f\x9b\x79\x10\xde\x61\xb0\xa1\x29\xdf\x93\ \xba\xa4\x4b\x8b\x15\x22\x60\x42\x4a\xa1\x44\xbf\x8e\xaf\xb7\xec\ \xbd\x94\x6c\xab\x94\x34\xe4\x06\x31\x13\xa0\xf0\xee\x8a\x22\x2f\ \x96\x34\xe1\x1f\xe5\xae\x2e\x80\xac\x43\x7c\x3d\x68\x4b\xc9\xe9\ \x15\x4d\x32\xc3\x1f\x3c\xf5\xe0\xea\x95\xe8\xcb\x65\x9c\xc5\x3a\ \x21\x2a\x1f\xcc\x53\x8c\xaf\x27\x00\x65\x4b\x57\x64\x35\x58\x11\ \xe9\x1b\x1f\x1a\xc5\x4f\xa3\x91\x35\x5c\xe2\x9b\xf2\x8f\x7a\xc6\ \x02\xc4\x54\x30\x63\x67\x9f\x7a\xac\xc8\x18\xa2\x97\xb1\xa3\x91\ \x2a\xa1\x48\xa2\xf7\x19\xff\x68\x82\xaf\xa7\x81\x30\xec\x80\x30\ \x5d\x32\xc8\xe5\x31\x47\xad\x23\x35\x0b\x6d\xf2\xa0\x70\x30\x22\ \xc2\x3f\xba\x85\xaf\xe7\x97\xb3\xa3\x7e\xbe\x80\xe8\x12\xd8\x45\ \xec\xa8\xc8\x88\x7d\x8a\x9d\x3c\x9f\xd8\xe9\x76\x74\x0b\x5f\x2f\ \x6c\xd3\x15\xc6\xc6\xfd\x54\x6d\x52\x43\xaa\x53\xa4\x70\xf2\x52\ \xfe\x51\xdd\xd1\xd8\x3c\x91\x76\x3a\xe8\x6b\x0f\x7f\xbf\x5a\x27\ \xaf\xee\xd0\xbf\x2c\x28\x3f\x31\xd3\x36\xff\xa8\x32\x68\xdd\x64\ \xf8\x7a\x35\x4d\x3c\x4f\x0e\xd9\xa0\x7b\x89\xa1\x52\xbd\x07\x13\ \x1e\xf3\x8f\x2e\x82\x0b\xbd\x8e\xaf\xc7\x6b\xc6\x79\xe2\x5d\xb2\ \xdf\xba\xb3\x3c\xf6\xa2\xf7\x68\x51\xca\x3f\x9a\x95\x18\x73\x7c\ \x3d\xaf\x13\xac\xc3\x20\xc1\x81\x30\xf6\xd6\x89\x0f\x82\x32\x1a\ \x3a\xcf\x95\x64\xfc\xa3\xd7\xf1\xf5\x09\xdb\xb8\x32\x16\x0c\x6e\ \x47\x11\xd2\xbf\x4d\x20\x6d\x49\x43\x39\x19\x73\xfe\xd1\xd3\x35\ \x7c\x3d\x0b\x0a\xd2\x11\x0f\x4a\xd5\x1d\xa5\x4f\xea\xb6\xc4\xf6\ \x3a\xf4\x48\x11\xcc\x78\xf8\x57\xf0\xf5\xe5\x83\xb0\x63\xcb\x3a\ \xdc\xc9\x29\xa1\x88\xb8\x79\x38\x79\xc2\x46\x17\x33\x3e\x51\x5d\ \x3e\x65\xf8\xfa\xb0\xcf\xf5\x68\xc2\xa2\x4c\x89\x26\x11\xd6\xcb\ \x02\x5f\x1f\xb3\x62\x13\xdb\x6b\xda\x31\xc7\xd7\x6b\x52\x07\x5a\ \x85\xf5\x2b\x03\x8d\x45\xe7\xf5\x61\x6a\xe4\x65\x09\x6d\x3f\x8b\ \x44\x6e\x88\xaf\x07\x6e\x8b\x88\xf6\x3f\x6c\x99\x6e\x61\x41\x75\ \xe4\x15\x0a\xa5\x15\x7b\xf6\x14\x9a\x79\xc9\x3d\x6d\xe1\xeb\x19\ \x84\x50\x17\x47\x0f\x5b\x26\x79\x71\x0d\xf0\x9a\x25\x49\x12\xf4\ \x09\x31\x91\xb6\x1d\xc2\xb9\x8d\xaf\x4f\xde\xfa\x31\x65\x28\xaa\ \x82\x21\x6a\x08\x05\xef\x08\x9f\x9e\x8e\x7f\xf4\xf6\x2a\xbe\x3e\ \x19\x10\x0d\xe7\xb4\x2e\x94\x49\x3d\x7c\x1d\xc1\xfb\x94\xfc\xa3\ \xd7\xf1\xf5\x88\x39\xd6\x0f\x14\xc9\x86\x1b\x91\xe5\x67\x72\x65\ \x44\xbe\x5a\x6f\x50\xfe\x51\x84\x4e\xf1\xf5\x07\x18\xb4\x5c\x80\ \x67\xd2\x9a\x88\xfe\x71\xa2\x1a\xe2\x42\xd1\x60\x63\x79\x9b\xae\ \xf1\x8f\xe6\x50\x36\x2a\xe0\x46\xa8\x81\xa4\xe8\xfe\x51\xe8\x0a\ \xe4\x7d\x92\xf8\x0e\x63\xef\x72\xce\xd7\xf8\x47\x29\x31\x26\xf8\ \x7a\x26\x33\xf9\xa8\xde\xe6\xdc\x31\x4d\x4a\xa7\xd7\x63\xa2\xc2\ \xe5\xa7\xb4\xd8\x7f\x39\xff\x28\xc1\x1d\x06\x9f\x00\x84\x1d\x45\ \xd4\x51\x20\xeb\x5e\x48\xd8\x1c\xc5\x8b\x72\x42\xfa\x51\xd6\x29\ \xff\x68\xee\xe6\xb1\xe0\x24\xdb\xa3\xf5\x58\x53\x62\x26\x2d\x85\ \xea\x70\xcb\x51\xc3\x7a\xe4\xcc\x38\x72\x23\xfe\xd1\x80\x00\xa2\ \xda\x51\xdb\x53\x84\x84\x7b\xd2\xb8\x4a\xdc\x08\x56\x2d\x88\xe6\ \x47\x8f\x42\xd9\x52\xbe\xa7\x04\x82\x71\xea\xb6\x73\xbf\x87\xfb\ \xe3\xd0\xe7\x75\x72\x98\x50\xfd\x10\x86\x28\x53\x89\x67\xcf\x0a\ \x1f\xfb\x96\x48\x69\x03\x5f\x7f\x01\xd8\x83\x13\x41\xcc\xe6\xd8\ \xa3\x34\xd9\x80\xb4\x81\x09\xf5\xe2\xf2\x1b\x09\x95\x7f\x54\xf1\ \xf5\x6a\xf2\xed\xe8\xfb\xb3\xf7\x13\x9a\xb4\x70\x47\x58\x2f\xe6\ \xc9\xf4\x28\xa8\xdf\x0c\x79\x63\x26\x51\xa8\x89\x99\xe2\xeb\xf7\ \xba\x9d\x8c\xba\xd3\x01\xd1\xae\x6c\x0b\xc0\x1a\x74\x3d\xd1\x9d\ \xbb\x00\xd2\x49\x18\xbc\x4c\x37\x31\xbe\x1e\xa7\x44\xf6\x15\x6a\ \x4f\x65\x2b\xc0\x77\xa2\x3d\xcb\x67\x9c\x39\xf8\x84\xe1\x2d\xb9\ \xa3\xf8\x79\x62\xf3\xd9\x52\x3f\x6e\x3b\x87\xaf\x32\x7e\x53\xed\ \xe8\xdc\xcc\x10\xa3\x6b\x3c\x0d\x45\x58\x4f\x8d\xaf\x97\xe7\xc9\ \xc4\xcc\x20\xc1\xe5\xeb\x58\xbe\x26\x47\xde\xbf\xb8\xae\x71\xcd\ \x38\x73\xec\xdb\x06\x1f\x2c\xf8\x7a\xf2\x92\x25\x73\x23\x8d\x8f\ \x9d\xa4\x45\x46\xb6\xd2\x75\xb6\xb7\xf9\xfb\xb9\x4f\x3c\xf1\x41\ \x9f\x32\xa7\x64\xa7\xf8\xfa\x4e\x9b\x50\xa6\xf0\x8a\x32\xb1\x85\ \xc1\x7c\xed\x1d\x75\x53\x06\xe2\x61\x2d\xf6\xc1\xc7\x07\x78\x25\ \x9e\x53\xd4\xf3\xc4\x8e\x3a\xe6\xbc\x60\x98\xb1\x9a\x51\x74\xa9\ \x2e\x2c\x68\xc7\x44\x48\x10\x9a\xb0\xb7\xe7\xf8\x7a\x74\x1e\xfb\ \x24\x05\x1c\xa4\x15\xdf\xc4\x98\x08\x69\x7c\x72\xbc\xd8\x02\x12\ \x42\xca\x65\x91\x28\xf4\x14\x46\x76\x72\xf4\x08\x8b\x98\xa2\xf6\ \xd8\x51\x98\x54\x58\x45\xe3\x7d\x0e\x7f\x50\xea\x51\xfb\x2f\xc3\ \x8a\xb0\xc0\xd7\xfb\x58\x04\xd3\xc4\x0f\x02\x73\xf8\x75\x2b\xe1\ \x79\x34\xbd\x72\x7c\x15\x4e\x46\x79\x45\xa9\x31\x0b\x83\xd6\x4d\ \x8c\xaf\xc7\x3a\x89\xa7\xc7\xd1\x87\x73\xee\xca\x9a\x64\x06\x06\ \x7e\xbe\xcc\xb5\x55\xe0\x55\x0e\xb7\x44\xa3\x28\xd6\xb3\xad\x44\ \x76\xeb\x8f\xef\x19\x77\xf3\x99\xb8\xa0\xee\x09\x75\x1e\xbe\xef\ \x73\x25\x99\x9b\xf3\xe1\x67\xf8\xfa\x68\x2b\x19\x1a\x29\xec\xed\ \x2d\x6f\x9e\xce\x35\x75\x43\x0e\xab\xcc\x01\xf1\x6c\x92\xc3\xdf\ \xc6\xd7\x7b\x07\x1f\x0b\xda\x19\x27\x64\x85\x37\xcf\xcf\x3c\xe3\ \xf0\xcd\x69\xae\x60\x3b\xa5\xc3\xc7\xde\xb3\x36\xf0\xf5\xf6\xe5\ \xec\xdd\x4a\x95\x1e\x65\x12\x97\x64\xb6\xdf\x0b\x3f\xb3\x28\x93\ \x7d\xc8\xe2\x67\x7c\xf8\x8a\xaf\x57\x7f\x74\x64\x5f\x51\xfb\x89\ \x69\xeb\x8d\x5f\xca\x20\x0c\x2e\x29\xf1\xb2\x9a\x27\x0d\x42\xf3\ \xf9\xf5\xdb\xf8\xfa\x91\xbe\xa7\xc2\x8f\xab\xed\xa3\x13\x75\x11\ \xb6\xd5\x5d\x52\x57\xb3\x4b\x4e\x5e\xfa\xc9\x6e\x25\xae\x8f\xf1\ \xf5\xda\xaa\x01\xf1\x6c\x3c\x4d\x4a\x03\x26\x3d\x7a\x64\xf5\xa2\ \x6e\xd7\xeb\x73\x7c\xfd\x6e\x0f\xe7\x2c\xe3\x8c\xd5\xc9\x23\xa5\ \xe3\xcc\x92\x6f\xc8\xf5\x6c\xf8\x45\x9f\xd4\x8a\xea\x24\x46\x9d\ \x5f\xaf\xf8\xfa\xbd\xb8\x7a\x8e\xca\x55\x75\xaa\x6a\x7d\x5f\x11\ \x25\xe9\xe8\x5e\x7b\xc5\x06\x02\x0a\x8e\x76\x34\xc7\xd7\xab\x4b\ \x42\x68\x6f\xdf\xee\x65\xba\x44\x23\x38\xa6\xed\xc2\x1f\x9d\x3b\ \x7f\x34\x8f\xf0\xd4\xc3\x57\x34\x1b\x62\x6e\x9b\x27\xb8\xf3\xcc\ \x86\xc2\xe3\xac\x61\x72\x5c\xbc\x21\x45\x66\x9f\xed\x7a\x7d\xab\ \xf5\x7e\x36\x38\xde\x28\x5e\xbe\x8c\x5d\x9e\x68\xce\xe2\x09\x95\ \x45\x70\xa7\x0b\x9f\x64\xd9\xe4\xc3\x6f\xb5\x5e\x0d\xa9\x7b\xeb\ \x35\xe5\x8c\x87\x3f\xb4\xc9\x52\x15\x90\x70\x19\x4b\x9a\xcc\x6c\ \xb8\xed\xf8\xf0\xc3\x51\x08\xbb\x36\x91\x7b\x84\x7e\x74\x54\xb5\ \x67\x49\x26\x4f\x94\xc9\x61\xee\x74\x54\x8b\x1e\x3c\x5a\x1f\xe3\ \xeb\xe3\x72\x28\x6f\x93\x32\x68\x91\xbc\x67\x2f\x35\x3b\x4e\xbc\ \xa4\x45\x26\x01\x38\x08\x1f\x7e\x8c\xaf\x4f\x1a\x5f\x98\x79\x84\ \xdf\x5c\xfd\xbc\x2a\xe2\xe4\xa0\x96\x62\x48\x17\x18\x0b\x36\x07\ \x1a\x2b\x1f\x7e\x8e\xaf\x97\xc4\x73\x11\x96\x9f\x78\xfe\x49\x55\ \xfc\xde\x3a\xe1\x2d\xd3\xde\x8e\xf2\x83\x6a\xc8\xb5\x9e\xe5\xf1\ \xf5\x28\x13\x05\x3b\x52\x10\xb5\x20\x26\x64\xe3\xf8\xf8\x2e\xad\ \xb7\xac\x6f\x3d\xde\x53\x94\x79\x92\xfd\xbc\xd5\x7a\xbd\xe2\xeb\ \xf5\x8e\xc2\x3a\x1d\x28\xfe\xd4\x06\xcc\x7a\x47\x81\x34\x30\x2a\ \x18\x95\xf7\x61\x68\x7f\xf8\xd4\xeb\x63\x7c\x7d\x18\x2a\x37\xb9\ \xa7\xa3\x97\x72\x98\xf0\x46\xd0\xa6\xa8\xce\x98\x03\x58\xb3\x29\ \xc1\xdb\xf8\x7a\x5b\xea\x3d\x51\x60\x74\xc3\xb9\xa4\x75\x78\x0c\ \xcc\x13\x08\x56\x9f\x7c\x22\x89\x2f\x4a\x2f\xf5\x7a\xe2\xfa\x48\ \xce\xa6\xa5\x24\x9e\x69\x3b\x55\x8d\xaf\x5a\xb4\x62\x43\xe9\x28\ \xd1\x66\xc7\x00\xd3\x12\xbd\xa2\x32\xbf\x5e\xeb\xf5\x87\x5e\x4a\ \xbe\x91\xb0\x36\xf8\xaa\xe2\x81\xa7\xbc\x2d\xd3\xa1\x2e\x63\xd8\ \x7a\x3e\xbf\x9e\xb0\x8e\xc8\x49\x56\x3f\x6c\x9d\x3a\x38\x4f\x28\ \xda\xef\x82\x11\x92\xb8\x33\x9d\x25\x12\x87\x6a\x6d\x39\x9f\x5f\ \xcf\xe9\x87\x99\x32\x24\x0d\x0a\x77\xae\xed\x69\xf2\x31\xe8\x52\ \x23\x27\xd0\xe0\x9a\xd0\x63\x3f\x7d\x5b\x89\xcc\xaf\x37\x01\xa3\ \x1d\x1d\x11\xf0\x78\x64\x47\xb5\x7f\x94\x87\x14\x8b\x8f\xb0\xbe\ \x55\x43\x79\x1d\xa9\x8c\x64\x7c\xf8\xfa\xd8\xdb\x57\x63\xbc\xe3\ \x31\xf6\x48\x10\x51\x03\x3b\x90\x57\x46\xfc\x81\x83\x2f\xea\xf4\ \xb4\xf5\x7a\x8f\x61\xf5\x7b\x6a\xed\x3a\x91\x8c\x48\x6a\x2f\xbe\ \x3f\x7a\x86\xb2\xb1\xa7\xf3\x90\x95\xc1\x89\x9c\xf2\x7a\xbd\x05\ \x77\xa2\xf3\x48\x7b\xf4\xbd\x3a\x5a\x67\xb2\x2b\xca\xd1\x0b\x58\ \x04\x84\xd8\x80\x94\x00\x58\xd1\x27\x66\x83\x07\xd3\x25\x08\x98\ \xa5\x99\xc8\x3e\xcc\xb9\x0b\xdb\xc9\xc6\x15\x66\x2d\x34\xf3\x94\ \xc3\xb2\xc7\xe9\xea\xd1\x6b\x4d\x4c\x22\x50\x7f\x09\xdc\x63\x0f\ \xe6\xc6\x8e\xbd\xc8\xaa\x3b\xca\xe3\x04\x7e\x99\x52\x18\xe9\x87\ \x64\xd8\x19\xf5\x7a\xbc\x3c\x1a\xc7\x15\xdb\x20\x73\xee\x48\x90\ \x18\x24\xbc\x27\xab\x30\xd3\x04\x9d\x4a\x6c\x45\xf1\xa1\x94\xfe\ \x43\xd1\xb6\x80\x58\x3d\x4e\x88\xa4\x53\x3e\x97\xed\x52\x0b\x99\ \x78\x9a\xc0\x58\xf7\x75\x50\x11\x96\x3b\x2a\xe5\x1b\x89\x97\x70\ \x4b\xe4\xec\xed\x57\x6b\x45\x11\xd5\xde\xf9\x89\x70\x69\x05\x85\ \x03\x0e\x64\x8e\xd0\x1c\xbe\xf5\x18\x7c\x85\xad\x37\x7b\x8a\xd2\ \x67\x75\x26\x9d\x1b\xa8\x6f\x3d\xe6\x74\xc2\x3e\x61\x46\xcb\xd7\ \xfc\x66\x9d\x72\xc7\x9e\xea\xfc\x7a\xa4\x24\x58\x0a\x10\x77\xa3\ \x26\x75\x1a\xcc\xdd\xc0\xae\xe2\xe8\x4d\xbd\x94\x33\xe9\x31\x9d\ \x6c\xa9\xe0\x0b\xc1\xd7\xfb\x85\xb9\x2f\x29\x09\xd6\x88\x32\xa5\ \x13\xee\x7c\xbc\x3c\xf1\x42\x31\xdb\x32\xe6\x80\x78\x36\x68\x2a\ \xda\xe2\xc3\x17\x0a\x4a\xcd\xe1\x73\xf4\xbd\x8f\x37\xc1\x3a\x8c\ \xb1\x0f\xa1\x6c\xb6\xb9\x71\x04\xba\x28\xbe\x3e\x8c\xeb\x31\xf7\ \x87\xd0\x71\x8e\xb5\x7e\x6a\xae\xa8\x09\x8a\x3a\xa1\xf5\xeb\x0f\ \x88\x60\xcd\x8d\xcb\x12\x12\x4a\x21\xa7\x41\xf3\x47\x37\x05\x41\ \x94\xde\xc4\x2c\xa2\x32\x5c\xa2\x88\xea\x41\x77\xe4\x47\xa3\x6d\ \x15\x35\xca\xd1\x37\x88\x9b\x5d\x00\x24\xf5\xe5\xfa\xfa\xb1\x93\ \x9f\x2c\x1c\xd1\xa2\xed\x42\xe1\x4e\xd3\xa3\x32\xe0\x32\xe7\xc8\ \x45\xf1\x99\xcb\x26\xba\xe4\x8d\x53\x2b\x2e\xbb\x39\x51\xb0\x35\ \x39\xa9\xd7\x03\xb2\x57\x65\x52\x31\xf1\x9e\xc2\xa2\x18\xcb\x67\ \x1d\xe3\x7a\x3d\x83\x10\x6c\x43\xcd\x71\x9e\x92\x27\x94\x08\x54\ \x23\x26\x56\xc6\x87\x6f\x1f\xea\xa1\x7e\x80\x1c\xb2\x2a\xe1\xb4\ \xb2\xa9\x90\x7c\x42\xe5\xbd\x53\xa2\x4b\x04\x25\x53\xa2\xe6\x89\ \x8a\x6d\x14\x8c\x60\xf1\x11\x16\x40\xc3\x1b\x9f\x7d\xf2\xe4\x1b\ \xf7\xab\x9c\xb0\x68\x45\x3d\x3a\x14\xc5\x00\x5e\xc5\x37\x14\xc0\ \xc0\xa9\x8f\x42\x9c\xa8\x72\xfe\x48\x28\xe3\xce\xee\xdf\x2b\xeb\ \x2f\xc5\x1d\x2d\x1f\x77\xf4\xdf\x7c\xe9\xcd\x97\x8b\x26\xcd\x92\ \x1c\x97\xa8\xbe\xc3\xd7\x4b\x36\x0f\x71\x23\x98\x90\x3f\xf8\xde\ \xd5\x1b\xc6\xdf\xdf\xab\xeb\x23\xa3\x79\x79\x45\x54\x9b\x81\xf1\ \x7c\x61\x04\xfc\x77\xa1\x4d\x4c\x30\xd6\xd8\xd2\x7e\xc5\x7c\xf8\ \x76\xe4\xf6\x4d\xeb\xf5\x9a\xd1\xfb\xc5\x85\xdd\xf1\x51\x51\x25\ \xbf\xa3\xcf\x54\x92\xe1\x93\xd9\x4e\x53\xa8\x6e\x57\xd3\x82\xd8\ \x21\x63\x9c\x0e\x71\x2d\xbe\x5e\xbf\x8a\xca\x25\xfd\xda\xf7\xdf\ \xfa\x74\x1d\xb0\x33\xc8\xcc\xab\x1f\xdd\x33\x66\xf7\x36\x66\x1a\ \xe2\xa2\xed\x76\x92\x4c\x93\x0f\xb6\x0e\x54\xee\xc8\x38\x33\x3c\ \xd0\xf9\xf8\x87\x8f\xc2\xe3\x6c\x9a\x64\x9d\x2f\xff\xaa\xdc\x85\ \x67\xd7\xfb\xa0\x6f\x68\x24\xe8\xf5\xf9\xf5\xfa\xdc\xfb\x1c\x3e\ \x27\x8f\xc1\xff\xdb\x85\x6c\x7c\xe8\x02\xbc\x8f\x17\x52\xa3\x42\ \x3f\x5d\x58\x32\x87\x5e\x46\x9f\x2b\x61\x5d\x9f\x5f\xdf\xc7\xf5\ \x5a\x10\x43\x4c\x6b\x29\x18\x2b\xa7\xeb\xeb\xc7\xa2\x4b\xbe\x57\ \xe3\xfe\x97\xff\xfc\x70\x37\xd3\x03\xa1\xfe\x7d\x9e\x1f\xdd\x9e\ \x5f\xaf\x3a\x2f\xf5\x7a\xdd\x51\x23\x4b\x9e\x6c\x4f\x7b\xa3\x3f\ \xcf\x02\x69\xd1\x0c\xc4\xd6\x5b\x0f\x6c\xfd\xee\xcb\x6c\x4b\x87\ \x67\xb2\x23\x67\x28\xe3\xc8\xc6\xae\xa8\xb0\xdf\x14\x82\xad\x22\ \xa4\xd8\xd2\xc5\x66\x49\x2d\xf6\x9a\x46\x31\x13\x9f\x56\x50\x6a\ \x8c\xfb\xf2\x29\x7f\xee\xe4\xdd\xfb\x3e\x32\xa4\xb5\xe4\xbd\x10\ \xaa\xac\xec\x1f\x77\x97\xf4\x1f\xe7\x6e\x86\x18\x84\x44\x8c\xeb\ \xd0\xb6\x12\xe2\x7a\x96\x8b\x42\x29\x31\xc2\x46\x46\x0d\x5c\x3b\ \x08\x99\x6e\xa9\x47\x3f\x7d\xa8\xb0\xeb\xed\x64\xac\x29\x72\x56\ \x92\x5c\x62\x11\xc5\xdf\x5c\x2d\xda\xf2\x34\x61\xa3\x92\x44\x2e\ \x1b\xcb\x2a\xde\xd3\x7b\x65\x44\xcb\xa9\xa4\xca\xb1\xa4\xf3\xfa\ \xb7\xca\xc9\x0c\xce\x84\xa4\x46\x47\x21\xa8\x61\x0a\xbb\x9e\xf4\ \xfd\x64\x1d\x1b\x96\xb7\x69\xfa\x5f\x99\x62\xf1\xe4\x7d\x0b\x46\ \xea\x5a\x2c\x14\x99\x7e\xf7\xb3\x32\x5c\xc2\xec\x3d\x3b\x4a\xa0\ \x1c\x2b\x13\x5b\xea\x61\x8c\xcc\x42\xd0\xc8\x3e\xec\x72\xc6\xd1\ \x7b\xc6\x5e\xd2\x3f\xed\x70\x9d\xcb\x9a\x3f\xfc\xe2\x07\xd4\xba\ \x5f\xda\x17\x3a\x4a\xf6\xd3\x61\xc3\x42\x60\x0b\x50\xb6\xc8\xe0\ \x87\x78\x26\xd7\x5d\xd2\x63\x58\x87\xea\x36\x7f\xe2\x53\xc6\xa0\ \xfb\xa8\x33\xa4\x7f\xac\xcc\xfd\xfb\x9a\xc5\xcd\xd1\x0d\x51\x89\ \x31\xe9\x71\xb6\xed\x54\x3c\x13\x47\xaf\x1c\x10\x83\x45\x77\xd3\ \x1b\x95\xa3\xff\xbb\x8f\x07\x3f\x16\xbe\xcc\xef\xf8\xeb\x79\xb4\ \x4b\xea\x5d\x12\x0f\x63\xd3\x3b\x1a\x61\xeb\x09\xeb\x38\x7a\x69\ \xd4\x22\x72\x12\x24\xdb\x1f\x0a\xa7\xfc\xe7\xce\x37\x93\x77\xf2\ \x5f\x2e\x9c\xfe\x0f\xe7\xcb\xd2\x70\x24\x62\x2c\x40\xeb\x91\x54\ \x19\x5d\xb3\x0e\x7c\x5c\x3d\xdf\x4e\x50\xc2\xd1\xc2\x51\xfb\xda\ \xc3\x5d\x51\x25\xdc\x92\xca\xe3\xff\xea\x83\x8b\x90\x72\x49\x1b\ \xca\x44\x0d\x45\x58\x32\x9a\x49\x6b\xa1\xf4\xe1\xfb\x6c\x33\xe2\ \x16\x8b\xf4\x76\x11\xf4\xd0\x45\xa1\x73\x75\x03\xce\x87\x99\x2d\ \x1d\xb6\xc8\x5f\x34\xb8\xf3\x3b\x6a\xd4\x2f\x1c\xbd\x80\xaf\x8e\ \x61\x9f\xc6\xb0\xde\xd3\xf7\xea\x73\x6f\x2e\x3e\xeb\xbf\x77\x63\ \x75\xcf\xf6\x34\x95\x2f\x42\x3a\x9c\x48\x8c\xb9\xe3\xe8\xf7\x9e\ \x9d\xe8\x70\x79\x9a\xc8\x8b\x96\xdf\x9a\x71\x46\xd4\x3a\x81\xb1\ \x3e\xf7\xc0\x05\xa6\x9a\xd0\xf9\x4a\x19\xa5\xd0\xdc\xd0\x39\x76\ \x4b\x78\x9b\xf0\x9e\xa2\x54\x89\xdb\x4e\x09\xf0\xa9\xd7\xdb\xff\ \xca\xe8\x3b\xbd\x79\xa7\x4c\x67\xfc\x51\x63\x78\x7b\xf1\x8e\x9d\ \xbc\xb9\xa2\xb3\xc4\x4b\xe8\x7c\x5e\x62\x84\x9e\xc8\x54\x89\x1e\ \x67\x28\x4a\xbc\xc6\x7b\xa7\x84\x01\x72\xd3\x3f\xab\x4f\xda\xb7\ \x3d\xbd\x6f\xf3\x4f\xea\xc1\x9b\xa0\x2c\x5f\x6d\xd0\xe0\x4e\x5a\ \x5f\xaa\xab\x27\x58\x70\x8c\xfe\x51\xf3\xa3\x53\x5b\x69\x9a\xbe\ \x5e\x2f\x69\x75\x9d\x79\xeb\x9f\xfb\x80\x10\xf4\x3c\xb6\x47\xef\ \x02\x3b\xef\xe0\xe7\x5d\x3a\x18\x27\x25\xa6\x52\x4c\x53\x92\xc7\ \xb5\xee\x2c\x0b\x9c\x3a\x3a\xd7\xe7\xb8\xa2\x28\x53\x67\x4a\x13\ \x56\x8d\x38\xe1\x0c\xa8\x6d\x6f\xb2\x82\x07\xf6\x20\xeb\x84\xf0\ \xa9\xf8\xa4\xff\x39\xfb\xdc\x78\x09\x44\x5f\x7b\xb0\x8e\xe1\x64\ \x43\x11\x31\x88\x45\x6e\x5d\x63\x01\x62\x62\x49\xc3\x77\xc9\x1e\ \x23\xcb\xe1\x53\x5f\x1e\xec\xf0\xad\x24\xfa\xf7\x62\x31\x77\x1d\ \x79\xda\xed\x2f\xdf\x39\xef\x6d\x0c\x27\x73\x25\x70\xee\xed\x77\ \xc6\x3f\x9a\x00\xaf\x76\xa0\x6d\x25\xe5\xcc\x7e\x76\x8f\x93\xd9\ \xa7\xe1\xa5\x8b\xa0\x1d\x64\xe0\x74\x53\xe0\x42\xb6\xe2\x17\x94\ \xd3\xef\x94\x09\xf1\x72\x7c\x3d\xe6\x9e\xc9\x81\x81\xcd\xb7\xce\ \xac\x17\x8a\x4f\xf2\xd6\xe3\x63\xc7\xe7\x59\x65\x34\xad\xc7\x3c\ \x21\x63\x18\x2c\xd3\x44\x88\xa8\xbc\x4c\xda\xe3\x3c\x12\xd7\xdb\ \xa0\x7d\xaf\x49\x40\xee\xc6\x7b\xd5\x79\x7a\xe8\x4f\x9e\xd9\xbb\ \x68\x7d\xca\xe6\xab\x5d\xe3\x91\x12\x01\x10\x91\xfb\x59\xe4\xc5\ \xbf\xeb\x14\xca\x10\x0d\x95\xe9\xf9\xf1\x09\x31\xdd\x00\x14\xc6\ \xad\x0b\x9e\x09\xac\x88\x94\x6f\x42\x1c\x23\x95\x5b\xcd\xe4\xea\ \x9c\x3b\x22\x26\xb3\xa6\xef\xde\xc9\xf9\xf3\x8f\xb5\xa0\x01\x3b\ \xfa\x22\xe7\xe2\xcd\x53\xd8\x98\x29\xa3\x10\x0e\x5d\x78\x47\x8f\ \x8e\x43\x83\x8f\x1a\x8b\x50\x11\xdd\xad\x95\x06\xab\x2e\x3f\xff\ \xab\x77\x5e\x7f\x74\x1a\x46\x6f\x9c\x96\x15\x7a\x65\x82\x72\xf2\ \x2e\x54\x0e\xe3\x7a\x38\x28\x95\x08\xc0\x36\xd3\x07\x23\x00\xd9\ \x34\x52\xa6\xdd\x71\xa8\x26\x8b\xe5\xc0\x0d\xee\x8e\xca\x0a\xac\ \x93\xd9\x51\x4c\x29\x09\x7c\x84\xed\x72\xf7\xc0\x59\xec\x8f\x0a\ \x0a\xee\x86\x2d\xf5\x09\x1d\xf6\x94\x30\x54\x77\xd5\x1b\x7c\x1d\ \x17\x4a\x0c\x9a\x06\x22\xf6\xc3\x3b\xca\xd1\x2b\x6e\x7d\x6c\xd1\ \x22\xeb\x2d\x5d\xea\xd9\x3b\xfa\x51\xa9\xd6\x2f\xb1\x79\x02\x76\ \xb7\x07\x0d\x8e\xa4\x0e\xd3\x40\xcb\x9b\x13\x75\x6a\xfa\x74\x82\ \x2b\xca\x80\x1e\x3d\xfa\x67\xb5\x01\x66\x1b\x69\x6b\xf0\x7a\x53\ \x27\x0f\x5f\x1d\x31\x53\x31\x26\x18\xb6\xa7\xa0\x7b\x14\xad\x2f\ \x3b\x5a\xbe\xea\x38\xa3\xf2\x89\x53\xa2\xe9\x92\xbd\x3c\xa1\xf8\ \xf9\x75\x73\xa5\x68\x3b\xd5\x73\xa6\x20\xde\xc2\xae\x30\xf9\xb6\ \xa7\xbc\xf5\xe2\x36\x2b\xab\x06\xe3\x8c\x7d\x58\x6f\x1a\x9f\xb4\ \xbe\xf8\x3d\xa5\x1d\x9b\x36\x2d\xf4\x49\x86\x98\xdb\x9e\xb2\xa5\ \x51\x7e\x54\xe3\xfa\x28\xf5\x44\x35\x4c\xc0\xb6\x88\xaa\x0c\x5a\ \x0e\x22\x16\x15\xeb\xd9\xd0\xbc\x5e\xaf\x95\x70\x85\xad\x63\x48\ \x3d\xf0\xea\xa0\x05\x46\xc5\x5b\x4e\xbc\xa0\x40\x9a\x5a\x7a\xaa\ \x75\x34\xd7\x56\xbd\x9e\x4e\xa2\x25\x05\x0c\x28\x24\x58\x8b\x37\ \x98\x52\x9c\xbc\x76\x01\xbd\x91\x46\x42\xd4\x09\x7c\xbd\x6c\x6b\ \x95\x8f\x0b\xa0\x43\x7a\x34\x4b\xe2\xc9\x15\x50\x78\xb5\x4f\x8d\ \xe5\x74\xdd\x79\x32\x46\x0a\xdf\x69\xc8\xea\xf5\x4b\x52\x0e\xb5\ \xb7\x3e\xc5\xd7\xb3\xa9\x31\xbe\x5e\x82\x26\x85\x8a\xe0\x93\x98\ \xa8\x36\x4d\x26\x64\x55\x91\x2c\x2e\x3b\xaa\x16\x9f\x17\x4a\x63\ \x7a\xad\xd7\xab\xac\xd0\xd5\xe8\x53\x6f\xea\x04\x2e\x54\x18\x4a\ \x36\xfd\xd1\x7c\x7e\xbd\xc2\x57\x3b\x88\x75\x44\xf9\xd3\x1e\xbc\ \x1c\x3e\xa8\x9b\xd9\x89\xa9\x59\x67\xbd\xa3\x58\x28\xc5\xd7\x2b\ \xa3\x4a\x06\xbb\x63\x2b\x51\x25\x7e\xd1\xaa\xe1\xe1\xd5\x82\x67\ \xca\xb0\x22\x87\x78\x11\xd9\x13\x2f\x6b\x2b\xb6\x89\xaa\x2d\xce\ \xd0\x3d\x89\x29\x75\x97\x33\xc6\x33\x51\x63\xee\xb2\x79\x27\x73\ \xa0\x76\xd1\xfc\x7a\xd4\x9e\x0d\x15\x30\xb8\x13\x11\x28\x5b\xf0\ \x32\x0d\x34\x8d\x67\xe6\x9e\xb7\x7e\xdb\x29\x21\x49\x4a\x17\x61\ \x5a\xaf\xf7\x0b\x29\x95\xe7\x4b\x47\xca\x00\x69\xda\x86\x0c\x10\ \x2e\xc7\x53\xd9\x0e\x1a\x86\x6a\xbd\x5e\x7a\xdb\x31\x50\xad\x94\ \xd0\xcc\xb7\xf7\x33\xae\xd7\x9b\x90\x5a\x15\xf1\xf5\x5a\xc1\x33\ \xe9\x56\x86\x50\x5b\xb8\x1f\xc8\x93\xcb\x0d\xcd\x40\x18\xca\xec\ \xa9\x99\x12\x13\xf3\xe6\x3a\xbe\x9e\xce\x66\x14\x5f\x2d\x69\xf6\ \x7e\xfa\x36\x7c\xeb\xc3\x8f\xf0\x4c\xf4\x40\x2c\x92\xcd\x53\xcc\ \x3a\xa0\x16\x89\x42\x15\xcd\xc2\xff\x7a\xf4\x55\x6e\x7c\xbc\x22\ \x9d\xd6\xeb\xf3\xfc\xa8\x92\x50\x9e\xbc\xac\xf6\x89\xbc\x12\x57\ \xaf\xd7\x57\x69\x90\x93\x77\x03\x26\x1c\x07\x61\xf9\x72\xec\x69\ \x10\x2a\x13\xaf\xd0\x22\xf1\x9e\xd0\x26\x93\x50\x8f\x7f\x32\x0f\ \xdf\x3e\xf6\x57\xa7\x9d\x65\xe4\xed\xa8\x52\xde\x9b\x97\x95\x18\ \x0f\x57\xfa\xdd\xd4\x1f\x65\x4f\xd9\x4e\x3f\x52\xc6\xab\x92\xd0\ \x7f\xc4\xad\x64\x6e\xb0\x29\x87\xce\x0c\x94\x80\x24\x17\xcb\xe4\ \xed\x13\xb8\x50\x3b\xf7\xf6\xfc\x17\x99\x71\x88\x1d\x8d\xb8\x15\ \xb2\xc6\x02\xe5\x7f\x00\xc6\xe8\x29\x48\xf1\x9e\x42\x5a\x8d\x96\ \xcf\x95\x3d\x45\x58\x48\xd1\x7b\x3b\x0a\x54\x40\x6f\x28\x64\xbe\ \x1c\xb9\xbc\x4e\x38\x25\xa3\x00\xc4\xec\x2f\x42\x76\xfe\xd3\x06\ \x27\x3a\x24\x94\xc2\x9d\x16\xad\x7e\x9c\x31\x22\xea\xd1\x63\xee\ \x13\xb2\x2f\xc7\x8d\x8c\x4e\xc5\xbc\xe8\xc3\x2c\x08\xb1\xed\x59\ \x8c\x88\xa9\x96\x74\xe7\x61\x42\xa0\x18\xd9\x4a\x99\xc0\xaa\x3c\ \xe3\xa3\x03\x5b\x7a\x9e\x12\x62\x11\xec\x53\x38\xa9\xe5\xff\x47\ \x8a\xa8\x96\xa8\x5a\x04\xd8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x0f\x6b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\xf4\x00\x00\x00\x4b\x08\x03\x00\x00\x00\xb1\xe3\x85\xac\ \x00\x00\x00\x42\x50\x4c\x54\x45\xd5\xd5\xff\xf6\xf7\xff\xda\xdb\ \xff\xef\xef\xff\xdf\xe0\xff\xe7\xe7\xff\xea\xea\xff\xea\xeb\xff\ \xeb\xeb\xff\xdf\xdf\xff\xf7\xf7\xff\xfa\xfb\xff\xf3\xf3\xff\xd7\ \xd7\xff\xff\xff\xff\xe6\xe7\xff\xdb\xdb\xff\xe3\xe3\xff\xd5\xd6\ \xff\xf2\xf3\xff\xee\xef\xff\xe5\xe6\xff\x96\xf6\xba\x85\x00\x00\ \x0e\xe4\x49\x44\x41\x54\x78\x5e\xed\x5d\xd9\x92\x24\x37\x08\x1c\ \xa4\x3a\x8f\xbe\x66\x76\xff\xff\x57\x0d\x24\x14\x52\xd7\x4e\xd8\ \x0f\x23\x47\x6c\x84\x52\x05\xd5\xf6\x9b\x9d\x83\x0e\x20\x55\x1f\ \xf7\x1f\x45\xc7\x7e\xdf\x77\x76\xf7\xed\x4e\xf7\x6d\xdf\xb7\x3b\ \x0f\xc1\x2e\x8e\xb6\x63\x3b\x88\x87\x81\x32\x2d\x94\xf9\xf9\xca\ \x05\x96\x3c\x2f\x6a\xcb\x3c\x09\x1e\xd3\x43\x9e\x71\x1c\x1f\x8c\ \xd7\xe3\x35\xb2\x29\x56\x19\x70\xc3\xb0\x0e\x6c\x6b\x5a\x13\x3f\ \xcf\xe7\x73\x65\x4b\x29\x3d\xd3\x2d\xdd\x6e\x1f\xec\x3f\x3e\xf0\ \x30\x7e\x94\x80\x8e\x1d\x9e\x84\xf5\x8d\xf9\xdf\x95\x6d\xf1\x02\ \x12\x53\xde\xc1\xbc\x72\x9e\x29\x33\xc0\xfb\xaf\x99\xc9\x16\xd6\ \xf3\x22\x98\x95\x72\xc6\xfc\x98\x9d\xf4\x51\x59\x07\xed\x41\xbd\ \x93\x9e\xd6\xf5\x29\x8e\xc9\x06\xe9\x37\x19\xcf\xf4\x71\xbb\x81\ \xf0\x06\xa4\xf7\x30\x87\x17\xe3\x58\xdf\xc5\xf1\x6b\x33\x10\xf3\ \x6d\xd1\x2e\xc8\x94\xd9\xd3\x42\xcb\x97\xc5\xfa\xfc\x4b\x1c\xa2\ \xfc\x8f\x91\xfe\x1a\x65\x54\x94\xaf\xaf\xd7\x60\xd1\x9e\x56\x01\ \x07\x79\x5a\x11\xe9\x37\xe6\x3b\xdd\xf0\xdc\x3e\x38\xda\xd9\xb5\ \x21\xbd\xc7\xfa\x2e\x41\x2e\xb1\xce\xcf\xae\xe3\xee\x91\x7e\x90\ \x71\x4e\x94\x65\x1c\x59\xc3\x3d\x30\xcf\x12\xe7\x32\x9c\xf4\x49\ \x49\x9f\x10\xe9\xc6\xbb\xd1\xbe\xca\x33\x30\xe9\x80\x44\x7a\x7a\ \x1a\xe1\x6e\xe9\x79\xbb\xd9\x14\xaf\x9c\x37\x20\xbd\x83\x84\x6d\ \x21\x9f\xd8\x8c\xf3\x3d\xd6\x74\xe7\x1c\x91\x9e\x17\x3a\x98\xf8\ \xaf\xe0\x9c\x1f\xb0\xee\xd3\x3b\xc6\xc8\xcc\x0b\xe9\x55\xa4\xaf\ \x6c\x03\x48\x1f\xd8\x56\x5d\xd3\x95\x78\x7e\x40\xba\x32\xfe\x94\ \x18\x67\x28\xeb\xb7\x9f\x26\xbd\x63\x87\xdb\x09\x3b\x38\x59\xd5\ \x85\x79\x00\x6b\x3a\x06\xf6\x71\x6c\xf9\xf0\x35\x3d\x38\x9f\x75\ \x76\x8f\x48\x9f\x46\x79\xc6\xc7\x0b\xac\x57\x91\xce\x9c\x8b\x07\ \xf1\xe0\x5c\xe7\x77\x4c\xef\x29\xdd\x94\xf7\x60\x9d\x9f\x1f\x26\ \xa0\x53\xbe\xcb\x20\x9d\xde\x39\xde\x69\x33\xec\x14\x6b\x7a\xec\ \xde\x25\xda\x63\x4d\x37\xcc\xc5\xee\x1d\xd0\xa9\x5d\x4d\xf6\x71\ \x3a\x04\x60\xdd\xa6\xf7\x97\xd0\xad\x90\x30\x07\x12\x66\x77\x9b\ \xdf\x99\xef\x26\x6b\x7a\xe7\x1c\x26\x5e\x28\x67\xf3\x75\xdd\xd7\ \x74\x1e\x94\x6d\x8e\x97\x20\xc7\x16\x1e\x98\x84\x70\x7e\x62\xf7\ \xce\x78\xf0\x33\x8a\x8d\x16\xe9\xfc\xc4\xee\x5d\x23\x7d\x78\xad\ \x80\xed\xde\x13\x3b\x90\xce\xb4\x4b\x98\xa7\x9b\x20\xf9\x9a\x3e\ \x01\xf3\xbc\x00\x59\xc7\x9c\x27\xfb\xb5\xe4\x1a\xf8\x67\x6c\x41\ \xf8\xb1\x5d\xe8\xc2\xe3\x50\x6c\x78\x9d\xab\x57\x3e\xb6\x12\x98\ \xf3\xf8\xa1\x8d\xa3\x00\xef\x4d\xd7\x40\x71\x9b\x9c\x71\xe5\x8d\ \xb5\xb1\x0d\x3a\x0a\xd2\x03\x33\x3f\xe0\x5c\x80\x3f\x82\x80\x10\ \x2c\x3e\xfb\x5f\x2a\xce\x1e\x01\x61\x1b\x9e\x0e\xda\xc1\xfe\x76\ \xc1\x5d\x6c\x07\xe5\x4c\x36\x69\x3a\x83\xdf\x08\x16\x62\x93\x7f\ \xe3\x53\x66\x03\x74\xd2\xa7\xe0\x3b\xcb\x5b\xa9\xce\xf3\xac\xaf\ \x12\x87\xbd\x41\xb8\xc4\x37\x58\x3f\x00\xda\xd8\xf0\xd6\x41\x1b\ \x50\x6c\x65\xee\xf8\x67\xb8\xfb\x1d\x26\xf1\x4d\xf8\x4d\x4e\xb9\ \x1f\x79\xf1\x6a\x86\x4e\xfa\x24\x9c\xcf\x59\xdf\xba\xb6\x30\xa6\ \xe0\x5d\x7e\x21\x75\x28\xac\xf3\x0f\x7e\x1f\xfa\xeb\x08\xe4\x63\ \xf3\x41\xf8\x4d\x94\x83\x74\x65\x9b\x30\x9b\x6b\xc4\x13\x29\xf5\ \x32\x24\xb4\xf5\x07\xf1\x60\xd7\x82\xec\x8e\x9f\xdd\xc8\x75\xec\ \x18\xd8\x98\x60\xc7\xe2\x3b\xb9\xcc\xbf\x62\xa7\xa3\x20\x2c\x95\ \xb4\x2c\x6c\x88\x2f\xc6\x82\xcd\xdc\x54\xec\xde\x1f\x23\x36\x72\ \x91\x9b\x79\xd8\xde\x5d\x73\xef\x76\x46\x5f\x93\x3d\x29\x79\xee\ \xfd\xa6\xc7\xb6\x27\xdb\xc7\xf3\x23\x35\x4d\xc3\x76\xea\xc9\x6c\ \x43\x36\x2e\x56\x38\x9c\xd3\xe9\xf0\xdd\x3b\x61\x8f\x54\x16\x5b\ \x2c\x33\x63\xa4\x33\xcf\xec\x41\x7a\x9c\xd3\x1d\xab\xda\xc0\x76\ \xee\xde\x93\xba\x74\xe6\xde\x8d\x79\x1c\xd9\x5a\x64\xe4\x3a\x34\ \x2d\x63\xb9\x77\xec\x4f\xad\xe6\x42\x1b\xc3\xcf\xe9\x9e\x7b\x17\ \x4f\x4c\xbd\x63\x0e\xe2\x05\x73\x04\xfa\x58\xe5\xde\x03\x5e\x65\ \x53\x73\xe2\x53\xe4\xde\xc5\xf0\x30\x9a\xe4\xde\x3b\x88\x0d\xe7\ \x0e\x75\x98\xd9\xeb\x73\x7a\x99\x7b\xb7\xf3\x4f\xce\x14\xbc\x6b\ \x8d\x6d\x2e\x48\x7f\x48\x72\xa6\xce\xbd\x3f\xca\x44\x2c\x58\x2f\ \xcf\xe9\x4c\x38\x22\x5d\x89\xe7\xa3\x3a\xd0\x22\xf7\xde\xb1\xbb\ \x27\xf1\x1b\xdb\xbf\xd4\xd3\x17\x1e\x5f\x19\x83\xf1\xeb\x2d\x0f\ \x3b\xcf\x73\x44\xfa\x03\x69\x58\xb1\xd7\xeb\xf7\x6f\x4b\xcc\xac\ \x2f\xa7\x7c\x18\x12\xc2\xbc\x5a\xd3\x51\x5d\xfd\x3c\x59\x6f\x44\ \x7a\xe7\x5d\x52\x4c\x36\xb3\xff\x5b\x3d\x9d\x07\x18\x07\x9c\x73\ \xcd\x92\xd5\xd3\xfb\x14\x4d\x14\xec\x02\xeb\x8a\x42\x1b\xa3\x5c\ \xd3\xad\xca\xa6\xc9\x38\x75\x40\x9b\x8d\x5c\xcf\xbd\x47\x94\x5b\ \xce\x69\xfb\xae\x9e\x4e\x19\xb9\x77\xe1\xbc\xce\xbd\x83\xf7\xa8\ \xa7\x8f\xbe\x7b\x37\xc6\x7f\x47\xc5\x45\x06\xca\xaa\x8a\x54\xaf\ \xe9\xfc\x28\xe3\x9f\xc5\xfc\xfe\xd9\x8a\xf4\x1e\xea\xc8\xbd\x7f\ \x5f\x4f\x07\xef\xc8\x7a\x44\xac\x4b\x80\x2b\xe3\x58\xd4\x27\xc7\ \xe8\x4d\x14\x0f\xc5\xef\x32\xd4\x6d\x78\x3d\x3d\xbd\xd2\x1a\xeb\ \xb9\x45\xfa\x1a\xab\x7a\x13\xd2\x3b\xe9\xc4\xb6\xe9\x60\xae\x7d\ \x8e\xa7\xa2\x9e\x4e\x45\x0e\xb3\x9e\xdd\x79\x78\x2d\xfd\x0c\xf4\ \xc7\x3c\x71\xa4\xb3\xe9\xb2\xce\x28\xf8\x1e\x94\xef\x24\xbe\xae\ \xa7\x6b\x7b\x1c\xea\xe9\x4a\xbb\xae\xe7\x0d\xce\xe9\x1d\xbb\x97\ \xd9\xb0\x77\xd7\xf4\x32\x69\xfe\x71\x83\xed\x79\x23\xcd\xcd\x90\ \x4c\xed\xb4\xa0\x8f\xc2\x76\x72\x53\x16\x4c\x1a\xe9\xec\x8d\x74\ \x9f\xe0\x1f\x4a\x3a\x12\x33\x30\xc1\x60\x47\x36\x85\xae\xea\x5e\ \x4f\x47\x59\x35\x25\xdf\xc9\xa5\x14\xc9\x99\x09\x98\x97\x05\xa9\ \xd8\x09\x96\xc5\x66\xf5\xfc\x3b\xe7\xd3\xc8\x72\xb2\x07\xbf\x49\ \x72\x49\x3a\x55\xa9\x3f\xc4\x67\x36\xf6\xba\x72\x65\x92\x42\x4b\ \xde\xd9\x9d\x6f\x2a\x4c\xba\xc8\xf8\xd9\x50\x6c\x81\x69\x2d\xda\ \xff\xc7\x01\xf4\x5f\x4b\x2e\x7d\x92\xf9\x6f\x08\xd2\x03\x59\x4d\ \x93\x04\xd1\xb7\x55\x62\xa1\x6c\x75\x60\xab\xb5\xc9\x0b\x20\x31\ \xf5\x36\x93\xc1\xd3\xa5\xbe\xe6\x53\x1f\xce\x34\x9e\xb7\x44\xc7\ \xc9\xc9\x3f\x42\xa7\x31\x7a\xc1\xe5\x5c\x4f\x72\x59\x4f\xbf\x02\ \x89\x05\x78\x79\x88\xad\x00\xc8\xb6\x2a\x9b\xfe\x0c\xc6\x81\xa8\ \xb6\x59\x9b\x01\xc8\x16\x92\xc1\xba\x2d\x90\x0d\x2b\xeb\x9d\x74\ \xd0\x3e\x63\x76\xcf\x66\x5e\x63\x8b\x19\x7e\xc1\xbc\x8e\x5f\xf2\ \xdb\x6a\x6c\x19\xb3\x3c\x3b\xab\xad\x09\xeb\xa8\xb1\xed\x79\xdb\ \x48\x3c\x83\x48\x1c\xaa\x6c\x62\xcc\xb5\xfe\xc2\xec\xce\xcf\x2e\ \x6f\x79\x29\xf9\xf4\x57\x31\xde\xab\x6c\xbd\xfb\x1d\x7f\xcd\xf6\ \x37\xee\xbb\x9a\x83\x34\x12\x32\x91\xac\x89\x1a\x25\xb4\x2c\xe7\ \x3e\x6e\x16\x6f\x3b\x39\x17\x3b\xa8\x63\x58\x72\x46\x53\xb0\xfc\ \x00\xb1\x75\x4f\x2b\x80\x8c\x1c\x12\xb1\xc8\xbd\x27\x6d\x8c\xc4\ \xd6\x1d\xfe\xa7\x09\xe8\xe7\x35\x14\x5d\x4c\xd1\x84\x07\x59\xb9\ \xb2\xe2\xa2\xf8\xbe\xef\x7d\x5e\xea\x1e\x39\x7e\x81\x74\x10\x2e\ \xa3\xca\xbd\xaf\xea\xa2\xd8\xa2\xa7\xf4\x90\x35\x99\xb4\x29\xb5\ \xca\xbd\x77\xf8\x1e\x14\xbb\xd2\x6d\x8f\xce\xc8\xa8\xa7\x1b\xbe\ \xeb\x7b\xaf\xb5\x6c\x28\xaf\x22\xc8\xd5\xd5\x0a\x17\x88\x5b\xd8\ \xa2\x9e\x1e\x5a\x36\x61\x3f\xa1\xbe\x26\x68\x58\x65\xeb\x7d\xef\ \x42\x3c\x1e\x64\xe3\x2e\x7d\xef\x60\xfe\xda\xf7\xbe\xe4\xfc\xa7\ \x6e\xd8\xc7\xe4\x2d\xd0\x4c\xf7\x58\x74\xc3\xae\xa7\x94\x6d\xb8\ \xd4\xd3\x43\xdd\xf2\x2c\xfb\xde\x3f\x7f\x9a\xf4\x9e\x9c\x71\x1d\ \x9b\x98\x32\x4e\x45\x3d\x9d\xa2\x9e\x0e\xfc\xb1\xef\xdd\xa2\xbc\ \x10\x30\x22\x23\xe7\xd9\x19\x70\xee\xb8\x94\xd3\x8b\x1e\xe8\xf4\ \x34\x2d\x5b\xd9\xf7\xde\x86\xf4\x1e\xea\x5a\x65\xd3\x73\xc9\xf7\ \xf5\x74\xf0\x1e\x7d\xef\x45\xe7\xf1\x82\x11\x79\x58\x61\x1c\x91\ \xfe\xe2\x17\x5b\x10\x0e\xc7\xf6\x4d\x3d\xfd\xc6\x3f\xa2\x87\xa2\ \x59\xa4\x77\xd2\x23\xd7\xe4\xeb\xb9\x81\xe8\x40\xfe\xdd\x38\xcf\ \x59\x1d\x31\xc3\x91\x7b\x77\xc1\x43\x31\xbd\x83\x74\x8b\x74\x4d\ \xc5\x7e\xaf\x4f\x4f\xb5\x3e\x1d\xcd\x52\x1f\x09\xe2\xf4\x56\x6b\ \x7a\x5f\xd1\x49\x4d\x13\xcc\xf7\x4d\x5d\x28\x18\x7d\x3d\x07\xe7\ \xe2\xa1\x23\x10\x03\x42\x9d\x5e\xd6\xd3\x99\x79\x44\x7a\x74\xce\ \x5c\xf5\xe9\x6b\x7a\xaf\xa7\x0b\x70\x60\x0b\xce\x9b\x91\xde\xbb\ \x67\x78\xa0\x96\xee\x1d\xfe\x78\xd9\xba\xee\x9b\x77\x21\x9b\x34\ \xb3\xe9\x98\x8b\x1e\xb9\xd9\x54\xab\xde\x23\x87\xc3\xfa\x6b\xbc\ \xe8\xd3\x11\xed\x86\xd7\x59\x4f\xf7\x9e\x48\xb8\x36\xfa\xf4\x0e\ \x57\x66\x10\x8a\x07\xbb\x86\x7a\x71\x4e\xcf\x16\xe5\xfa\xc6\x31\ \x5d\x94\x03\xba\x94\x13\xb4\x6c\xfa\x7b\x42\x39\x7d\x3a\x31\x5a\ \xe3\xcc\xf8\xba\x34\xc3\x96\x7c\x87\x6a\x15\xe2\x45\xc6\x13\xe9\ \x19\x7d\x3c\x37\x53\x15\x5c\x26\xcb\xbd\x87\x96\x6d\xae\x94\x0e\ \x53\xf6\x2e\xbe\x85\x2c\x0b\x4b\x8b\xe9\x1b\xe4\x8d\x5f\x50\x36\ \x65\x36\x7d\x18\x59\x3d\x40\xa1\x70\x21\x8a\x53\xec\xee\x55\x36\ \x79\x21\x4c\x5c\xec\xb0\xc3\xfd\x18\x3a\x2e\xa4\x33\x72\xa1\x65\ \x9b\xc5\x09\xf9\x05\x0e\xa9\xc0\xa1\xd6\x42\x78\x65\xdf\x8c\xea\ \x1b\x75\x35\x2b\xb8\xf0\x6f\x4f\x43\xd6\x40\x51\x8d\x1d\x66\x41\ \x71\x62\xca\x2f\x89\xc3\xef\xff\x05\xbd\xca\x16\x5a\x36\xb6\x77\ \x7c\xd9\xfa\x43\x47\xc6\xc8\x11\xdf\xa8\xa3\x97\x2a\x46\xd4\xd0\ \x0f\x04\x75\x09\x21\xd9\xb5\x6c\xc4\x86\xcb\x59\xc4\xe0\x37\x17\ \x2f\xb6\x97\x36\x75\xd2\x01\x68\xd9\x30\xec\x55\x01\x5a\x36\x0c\ \x53\x2a\x1f\x00\x65\xe5\x9b\x0e\x44\x78\xde\xf3\x81\xdc\xa3\x91\ \x4e\xae\xf3\x61\xb8\x96\x4d\x6c\x27\xaf\xa7\x8b\xe9\x10\x6c\x6c\ \x7f\x89\x6e\xb5\x57\xd9\xfa\xfe\x9d\xde\x7b\xe4\xbc\x6d\x08\x19\ \xb9\x4c\xe7\x39\x3d\x17\x19\xb9\x5f\x93\x9f\xd3\x97\x8b\xc2\xc5\ \x1b\xe4\x90\x7a\x67\xe7\xb0\xbc\x3b\xbf\x79\x58\xdf\xbb\x6f\xe6\ \x90\x8e\x93\xf4\xbb\x0b\x9b\xc4\x5a\x90\xde\x13\x72\xea\xd0\x08\ \x76\x07\xeb\x40\xd9\xf3\x5e\x9f\xd3\x81\x5f\x9e\x7b\xcf\xf5\xe5\ \x81\xd1\xf7\x7e\xd9\xbd\x0f\xc3\x4b\x86\xe6\xe2\xe2\x1e\x39\x88\ \x5b\x40\xba\xeb\x5b\x8c\xf5\x56\xa4\xf7\xbe\x77\xbb\x5d\x6a\xdb\ \x91\x9c\x8b\xdc\xbb\xf1\xfe\x76\x4e\xbf\xf4\xbd\xcf\xcb\x9c\x6b\ \x59\x93\x0b\x18\x85\x77\xa8\x56\x1d\xab\x8f\xb8\x73\x86\xf3\x71\ \x48\xc3\x2a\x6e\xb8\x68\xa8\x75\x95\xad\xe7\xde\x37\x3f\xa7\xa3\ \xfb\xd9\x73\xef\xbe\xc3\x29\xce\xe9\x39\x38\x8f\xbe\x77\xf6\x0a\ \x50\xce\x66\x7d\xef\x3c\xca\xc2\xea\xea\xc9\x77\xc7\x79\x8f\x5c\ \x3a\xef\x9c\xb9\xdd\xd8\xb7\xd3\xb2\x75\xec\x30\x72\x95\x0b\x69\ \x8c\x57\x0a\x97\x4a\xcf\x26\x5b\x62\xfa\x53\xdf\xfb\x8c\x84\x5c\ \x5c\x34\xe4\x55\x36\x49\xc1\x56\xb4\xf3\x03\x7d\x3a\xac\xae\xa7\ \x43\xbc\x28\x9c\xab\x42\x5d\xa2\xbd\xcb\x9a\x9a\xb0\x8e\x7b\x53\ \x38\xca\xd9\x61\x4d\xc7\xa8\x14\x2e\x5e\x56\xfd\x22\xeb\x7a\x0f\ \xe6\x17\x10\xef\xa4\x3f\x66\xb6\xa8\xb2\x5d\x72\xef\x43\xe8\xd3\ \x87\xa1\xca\xbd\x3b\xe9\x89\x4d\xa8\x17\xba\x3f\x1b\x92\xde\xa7\ \x77\x35\xe5\x1a\x3e\x04\x8c\x88\x72\x31\x88\x17\x2b\xc6\xab\xdd\ \xbb\x47\x7a\x90\x2e\x0e\x1b\x39\x36\x60\x88\x82\xfa\x90\xde\xeb\ \xe9\xb0\xe4\x8a\xd5\x67\x2b\x01\x63\xa7\x9c\xe4\xb5\xfb\x9a\x8e\ \x19\x1e\xe6\x33\x3b\x19\xe7\xf4\xc5\x00\xe7\x62\xe0\x3c\xd6\xf4\ \xe9\x84\x57\xd9\x94\x70\x71\x8e\xe1\x1b\x7d\xba\x13\x0e\xf9\x22\ \xc7\xfb\x53\x58\x6f\xd4\x18\xd9\x49\x47\x05\xc1\xef\x7b\x67\xaa\ \xb5\xcd\xfb\x04\xf2\x56\x27\x4c\x41\xe0\x88\xce\x99\x7a\x23\xe7\ \xdd\xb0\xa5\xa4\xc9\xf5\xe9\x75\xeb\x4c\x4a\xa5\x3e\xfd\x5d\xa9\ \xdc\x6a\x23\xd7\xa7\xf6\xb8\xef\x9d\x4c\xcb\xb6\x6d\xea\xf7\x7c\ \x88\xa1\x0f\x9a\xb4\xf9\x99\xc4\x84\x68\x8d\xf4\x49\x09\x57\x35\ \xdb\x3c\x95\xc9\x19\x36\x24\x67\xae\x0a\x75\xe1\x3d\x79\x0f\x74\ \xac\xe9\x02\xbb\x94\x80\x17\x73\xa3\xdd\x0a\xea\x55\x1a\x56\x9c\ \x6b\x1e\x50\xe1\x43\x65\xad\xf4\x4b\x16\x67\x35\x36\xbb\x4b\x8e\ \x32\x65\x54\xd9\x16\x68\xd8\x8e\x83\xd8\x23\xf7\xb4\x6f\x6c\xc8\ \xc2\x8b\xdd\xed\xbf\xff\xd4\xb2\x6d\xa4\xe9\x2b\xcf\xbb\xb3\xdb\ \xed\xb4\xcb\x1e\xef\x86\xe8\xb9\xf7\xa9\xa8\xb9\x54\xb9\xf7\x39\ \x97\x20\x1e\xd9\x55\x4d\xae\xb1\xa6\x23\x40\xa1\x64\xb3\x93\x29\ \xbd\x5f\x22\xe8\x1a\x36\x7e\xe3\x89\x2a\x1b\x3f\x74\x76\xa0\xec\ \x1e\x42\x2d\xd0\x4b\xab\xc0\x1c\x7c\x9b\x3c\x3e\xc3\x3b\x48\x2d\ \xda\xf4\x85\x74\x33\x52\x03\xe2\xc6\x48\x63\x7d\xab\x81\x3c\x15\ \xf8\xd6\x41\xe2\x2c\xd6\xd1\x4b\x4a\xec\x83\xfb\x06\xe8\xa4\x23\ \xd6\x31\xc3\xcf\xa8\xb3\x99\xca\x46\xcd\xfd\x22\xb6\xe0\xd7\x71\ \x2c\xaa\x62\x5b\xec\xc6\x48\xb1\x83\xb2\xdf\x03\x4c\x6a\x1b\xd4\ \x6c\x0a\xbc\xa1\x63\x93\x37\x33\x0e\x2d\x5b\xa8\x95\x77\x36\xd0\ \x2e\xa0\xbf\x81\xed\x5e\x65\xeb\xd8\x31\xb0\x7b\x67\xc3\x2e\x86\ \x47\xde\x37\xca\x3b\x99\x92\x0d\x5a\x36\xb1\x42\xcb\x06\x5b\xf2\ \x6c\x11\x08\x20\x25\xf7\x50\x03\x5e\x27\x92\x9f\xd8\x8a\xdc\x3b\ \x76\xef\xb0\xdb\x99\x7d\x6f\xaa\x70\xe9\xa4\x17\x97\x0d\x6d\xdb\ \x7b\x95\x6d\x0b\xad\x03\xf2\xee\x97\xbe\xf7\x45\x5d\x34\x46\x8a\ \xb1\x03\xe9\x2f\x3c\xd7\x7a\x8b\x21\xc9\x03\x97\xe2\xc8\x26\x8f\ \xa2\xe9\x8d\x91\xbd\xef\x1d\x37\x99\xdb\x5e\xf5\x92\x7b\x37\x44\ \xff\x51\xd5\xf7\x7e\xd5\xb2\x8d\xd6\x19\xf9\x3a\x2f\x0f\x54\x0c\ \xe6\xd0\x04\xeb\x61\x5e\xdd\x2e\x65\xca\x55\xb4\x45\xb6\x8e\xf4\ \xde\xf7\xce\x5c\xbb\x6d\x97\xdc\x3b\xa2\x5d\xb7\x45\xc2\xf9\xa5\ \xef\x3d\xbf\xab\x56\x47\x41\x7c\x96\x8d\x3d\x08\x1f\xca\x48\x8f\ \x7a\x3a\x90\x54\xe2\x82\xc1\x87\xf5\x76\xc9\x99\x9e\x9c\x11\xd0\ \xee\x79\x58\xda\xdf\x72\xef\x31\xbf\x53\x16\xa3\x6a\x7e\x9f\xdf\ \xb5\x6c\xe3\x24\x0e\x78\x08\xe3\x9a\x88\xf5\x50\xff\x8d\x46\x0a\ \xe3\x7d\x88\x7a\x3a\x48\x7f\x5a\xd3\xcc\x67\xfa\x4c\x6d\xd7\xf4\ \xfe\xe5\x1e\xbb\x47\xae\x54\xb7\xa8\x95\x51\x4e\xc6\x37\x46\x5e\ \xa8\xe0\xfc\xa2\x65\x1b\x2d\xd2\x79\x44\xa0\x87\x98\x0d\x64\xa7\ \x61\x88\x7a\xba\x91\x8e\xa2\x2a\x87\xfc\xfa\xe9\x71\xde\x88\xf4\ \xbe\x77\x8f\xc6\xee\xcd\x39\xb7\x48\x0f\xce\x11\xe9\xc6\x79\x66\ \xbb\xce\xef\xbe\xa6\x8f\xe7\x8d\x91\xf2\x44\xa0\x5f\xd4\x0e\xd7\ \x7a\x3a\xae\x92\xfb\xe4\x50\x17\xdf\x3e\xd2\x7b\x79\x15\x92\x65\ \x0c\xdf\xbd\x57\x5a\xb6\x7c\x78\xb4\x57\xf7\xbd\x97\xdf\x65\x63\ \xaa\xc5\xf3\x1b\xbb\xf7\xd0\xa7\x03\xab\x8d\xaa\xca\x66\x4d\x72\ \xc8\xbe\x4b\xa4\x33\xeb\xb7\xf4\xd9\x32\xd2\xfb\x7d\xef\xe8\x93\ \xb3\x1b\xd3\xaa\xdd\x3b\x86\x21\xfb\x70\xcc\xd5\x77\xd9\xae\xf7\ \xbd\xbf\x34\xd2\xe5\x16\xe8\xd7\xb5\x9e\x9e\xd6\xe1\xaa\x4f\xc7\ \x4e\x8e\x29\x57\x7c\xf2\xf8\x79\xd2\xfb\x17\x1d\x00\x66\x1b\xba\ \x0d\x21\x9e\xde\x3b\x62\x61\xc0\xe5\xbe\xf7\xea\x26\x0a\xc1\x58\ \xde\xf7\x3e\x62\xfb\x0e\x0c\x55\x3d\x3d\xbe\xaa\x0c\xc2\x15\xd0\ \xa7\xcb\xec\x0e\xd6\x2f\x5a\xb6\xf2\xbb\x6c\xfa\xf6\x17\x0f\x87\ \x7f\x82\x42\xdf\x4b\x3e\xb5\x6c\x8e\x0d\x2f\xa2\xd0\xb2\x1d\x3c\ \x02\xa5\xce\x01\xfa\x3e\xfc\xf0\x0a\x1b\xf2\xb0\x3c\x14\xbb\x3d\ \xcd\xd0\x0b\x2e\xf5\x77\xd9\xa0\x8e\xbf\x02\xb5\x37\x5c\x14\xe9\ \x5a\xb6\x12\xae\xba\x87\x96\x8d\x30\xaf\x01\xd1\x2f\x86\x14\x65\ \x7c\x97\xed\x4e\x20\x5f\xa3\x03\x34\x6f\xff\x57\xee\xbd\xcb\x9a\ \x2e\x5a\xb6\x77\xde\x43\xcb\x46\xf2\xdb\xdb\xf6\x05\x54\x7d\x97\ \x0d\x5a\xb6\xe3\xd4\xb2\xed\x88\x71\xc0\xd6\xba\x1d\x65\xd5\xb8\ \x31\x92\x47\x68\xd9\x4c\xb9\xda\x94\xf9\x4e\xfa\x5c\x7d\x97\x8d\ \x6d\x62\xe7\xd5\x36\xab\xad\x55\x5a\xb6\xc5\xbf\xba\x69\xdc\xe7\ \xf8\x2e\x1b\xb4\x6c\x5b\x68\xd9\x72\x11\xed\xe4\xbf\xfc\xbb\x6c\ \x88\x70\x92\xf8\x0f\x9a\xb7\xbf\x25\xd2\x7b\x95\xad\x0b\xd9\xd8\ \x61\xde\x52\x49\x5b\x2c\x6f\x94\x91\x7b\x8f\xef\xb2\xe9\x7d\xef\ \x84\x62\x75\x68\xd9\xe2\xbb\x6c\x51\x71\x81\x96\x0d\x1f\x77\xb8\ \x1e\xd9\xce\xf6\x67\x6c\xe4\xd2\x93\x3d\xa4\x0e\xa8\xb4\x7d\x40\ \xdd\xf4\xd1\x44\xd6\xd4\xb1\x63\x47\xaa\xe9\x19\x14\x5c\xc2\x68\ \xb7\x9d\x3b\x1d\xe5\x37\x5c\x16\xca\xec\x4b\x2d\x9b\x7f\x97\x2d\ \xee\x0e\xf4\x4f\x74\x79\xcd\xa5\xbe\x7e\xc4\x53\xb0\xce\x79\x9c\ \xd3\x71\xdd\xfb\x07\x3f\xad\xab\x6c\x9d\x78\xcf\xbd\x13\xfb\x6f\ \x73\xef\x38\x05\xb9\xd2\x41\x49\xff\xd3\x77\xd9\x46\x65\x1d\x55\ \x36\x8b\xf4\xf1\x22\x6b\x7a\xc5\x05\xff\xea\x93\x67\xe4\x20\x58\ \x85\x6b\x15\xe9\x3d\xf5\x1e\x7d\xef\xdb\xbf\xe6\xde\xe3\x6b\x4d\ \x6a\x90\x34\xa9\x03\xe9\xd5\x97\x1d\xe2\x9c\x7e\xf9\x5a\x13\x5b\ \x80\x59\x8f\x2a\x5b\xd9\x03\xfd\xf1\x4c\xcd\x32\x72\x5d\xcb\x26\ \x5e\x0b\x6c\xca\x39\xbe\x24\x1d\xb9\xf7\xc8\xc9\xa1\xb4\x5a\xde\ \x0d\x3b\x63\x78\xeb\xfb\xc9\x39\x3b\xdc\x22\x67\xa3\x84\x7e\xc6\ \xe3\x25\x6e\x4d\x6a\x18\xa8\xac\x6a\xc9\xa5\x90\xa7\x37\x8b\xf4\ \x1e\xed\x68\xf0\xd4\x04\x84\x67\xa2\xea\xdc\xfb\x21\x86\xd4\x3b\ \x3f\x8c\x9a\xf7\xc5\x3f\xd1\x65\x60\xc2\xdd\x5c\xe5\x02\xac\x1e\ \xe9\xf8\x16\x9f\x73\xfe\x4c\xd6\x31\x25\x79\x77\x95\xb7\xa4\x96\ \xaa\xd5\x4e\xb8\x18\x34\x2e\xec\x91\x79\x02\xeb\x00\x73\x4d\xca\ \xb8\x07\xfb\x42\x84\x63\xb1\x60\xae\xd7\xf4\xd0\xb2\xd9\xb7\xd9\ \x4c\xbe\xe8\xac\xaf\x70\x2e\x70\x19\x10\xe9\x4f\x1e\xab\x92\xee\ \x84\xd7\xdd\x52\xff\x00\x0e\x5e\x0c\x4e\xab\x94\x1d\x32\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x58\x32\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\xdc\x00\x00\x01\x7c\x08\x06\x00\x00\x00\xa4\x31\xd5\xdb\ \x00\x00\x57\xf9\x49\x44\x41\x54\x78\x5e\xec\xdd\xc1\x4b\x55\x69\ \x18\xc7\xf1\xdf\xb9\xd7\xeb\x95\x0b\x95\x61\x10\x3a\xad\x24\x50\ \x50\x08\x12\x0a\x71\x56\x21\x83\x25\x48\x10\x11\x2d\x6c\x51\x11\ \x42\x81\x04\xdd\x6a\x46\xbc\xaf\x60\x50\xa3\xb6\x28\x89\x20\x72\ \x71\x21\x5c\xb4\x90\xac\x08\x93\x36\xcd\xb4\x72\x06\x23\x62\x86\ \x1a\x37\x52\xdc\xc8\x82\xb1\xc2\x6c\x91\xf2\xf4\x6c\x82\x10\xbc\ \x48\x59\x69\x7e\x3f\xf0\xe5\xf9\x0b\x7e\xbc\x8b\xb3\x38\xfa\x11\ \x00\x00\x00\x00\x00\x00\x00\x00\x82\xf4\x8b\xb7\x43\x79\x00\x31\ \x7d\x11\x9c\x94\xd6\x06\xa9\x5f\xd2\xed\xa8\xa0\xa0\x45\x5f\x0f\ \x18\x1c\xaf\x5a\x52\x7a\x68\xd2\x9e\x9f\xb6\x6e\x1d\x4a\x4f\x4c\ \x3c\x30\xb3\x94\xe6\x01\x14\xe8\x73\x30\xb4\x94\x49\xbf\x4b\x3a\ \x1c\x4f\x24\x26\xea\xbb\xbb\xfb\x6a\x5b\x5b\x9f\x4a\xba\xeb\xbd\ \xd3\xa2\x01\x18\xdb\x16\xef\x91\x67\xbd\x15\x15\x7f\x4c\x8e\x8f\ \x9f\x36\xb3\xc3\x5e\x99\x16\x07\x80\x43\x52\x22\x48\x1d\x19\xe9\ \x7d\x47\x2c\x36\x39\x7c\xfc\x78\xd6\xcc\x82\xb7\xdd\x2b\xf8\x64\ \x90\x45\xde\x21\xaf\x72\xb7\x14\xf7\x3b\xe4\x1d\xd3\xc2\x00\x08\ \x52\xa5\x37\xe2\x59\x4f\x69\xe9\xdf\xb9\xd1\xd1\xb3\x66\x76\xd4\ \x2b\xd7\x1c\xbf\x4a\xeb\x83\x34\x15\xa2\xe8\x49\x46\xea\x0c\x92\ \xf5\xd5\xd5\x75\x69\x41\x00\xc6\x76\xd0\x9b\xf6\x01\x4d\x0f\x34\ \x37\x5f\x9d\x9d\x9d\xed\x30\xb3\x5d\x5e\x91\xe6\x71\xa7\xad\xad\ \xcb\x5f\xc1\x99\x20\x59\x67\x32\xf9\xf6\xbf\x5b\xb7\xba\x42\x08\ \x31\xe5\x07\xc0\x87\x76\xfd\x4c\x49\xc9\xfd\xb1\xe1\xe1\x73\x66\ \x76\xc2\xab\x56\x1e\xed\x52\xcd\xa9\x54\xea\x5e\x90\x6c\x4e\x37\ \x95\x1f\x00\x33\xab\xf1\x82\xd7\xec\xad\x56\x7e\xca\x48\x17\x7d\ \xa4\x53\x17\xaa\xaa\xfe\x0a\x92\x5d\xae\xad\xbd\xdf\xdf\xd4\x74\ \x63\x60\xdf\xbe\x1e\x33\x4b\x28\x2f\xf0\x59\x00\x8f\xbd\x97\x51\ \x14\x3d\xd1\x02\x1c\x18\x19\xe9\x2e\xdb\xb4\xe9\xc5\x9b\x5c\x2e\ \x71\xbe\xbc\xbc\x26\x59\x5c\xfc\x7a\xef\xe0\xe0\xa0\xa4\x42\x6f\ \x95\xf7\xbf\x56\x2c\x44\x5a\x54\x30\xb3\xa4\xa4\x6a\x6f\x2c\x5b\ \x5f\x9f\xdd\xd8\xd0\x90\xfb\x39\x9d\x3e\xa2\xaf\x0e\x60\x7c\xdb\ \xbc\x16\x7d\x13\x00\x83\x8b\xb4\x52\x01\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\ \x47\x1f\x80\x8c\xd4\x16\xa4\x57\x7e\xc3\xca\x18\x1e\x62\xfa\x6e\ \xb0\x7a\xc3\x86\x7f\x24\xad\x89\x45\x51\x26\x23\xdd\x0b\x52\x8b\ \x96\x13\x30\xb8\x20\x15\xfe\x26\x95\x6a\x19\x98\x7a\xfe\xfc\x48\ \x2c\x1e\x9f\x29\xdd\xbc\xf9\xdf\xd4\xba\x75\x25\x51\x14\xf5\x06\ \x69\x67\xbb\x54\xb7\x5b\x8a\x6b\x29\x02\x32\x52\x3a\x48\x5d\x92\ \x22\xbf\x97\xbc\x67\x5a\xe2\x82\xd4\xe4\xd9\x95\xc6\xc6\x3f\xcd\ \x2c\x5c\xdb\xbf\x7f\x28\x48\xf6\xb1\x8c\x94\xd5\x52\x04\x7c\x68\ \xef\x2a\xa0\xaa\xca\xda\xf6\xbe\xa2\x82\xd9\x1d\x60\x8c\x9d\x63\ \x8d\xdd\xdd\x39\xea\x98\x63\xd7\xd8\x8d\x88\x08\x16\x12\x62\x61\ \xa0\x98\x01\x82\x8d\x05\x82\x01\x8a\x8a\x58\x58\x18\x08\x62\x22\ \x29\x20\xa1\xf2\x3f\xef\x5d\xfb\xac\x75\xbf\xfb\xe3\xcc\xe0\x10\ \xd7\x99\xf7\x59\xeb\x59\x87\xb3\xcf\x61\x3e\xef\xb7\x79\xef\xde\ \xfb\x8d\xe7\x5d\x96\x23\xc7\x7a\xf9\x47\x7a\x08\xd7\xaf\x1b\x6b\ \xd5\xa2\x3f\xe2\xc2\x3a\x6a\x68\x79\xc1\xc9\x60\xa0\x79\xae\x5c\ \x51\xd1\xaf\x5e\x99\x7b\x5b\x5a\x56\x82\x81\x85\xad\x2e\x5a\xf4\ \xbd\xfb\x82\x05\x07\xb6\x36\x6e\xec\x4b\x46\xb7\x2c\x67\xce\xea\ \x42\xd7\xc0\x60\xc4\x85\x85\x35\xb4\x2e\x53\xe6\x95\xb2\x3a\xec\ \xeb\xd1\xc3\x7b\x47\xdb\xb6\xdd\x74\xd4\xe0\x9a\xc0\xb8\xbe\x90\ \x41\xed\xea\xd0\xc1\x17\xab\x5b\x07\xdc\xdb\xd2\xfd\x15\x5b\xdb\ \x3d\xb8\x1f\xb3\xae\x6a\xd5\xeb\xa6\x2a\xd5\xd7\xd7\xfe\xfe\xad\ \x31\x5e\x07\xdc\x6d\x22\x44\x4f\xc1\x60\xe8\xc0\x8a\xf1\x13\x56\ \x87\x5b\xd2\xd8\xb4\xf9\x93\xd0\x41\x5c\xb5\xb5\x5d\x67\x55\xaa\ \xd4\x9b\x35\xa5\x4a\x85\x5a\x97\x2d\x5b\x1b\x06\x95\xb4\xbe\x7a\ \xf5\x07\x30\xb6\x29\x66\xfa\xfa\x6d\xc9\xf8\xb6\xb7\x68\xe1\x8f\ \xfb\xe6\x78\xd6\x50\x63\x9b\x69\x2f\xb2\x12\x0c\x76\x9a\x7c\x11\ \x22\x57\x76\x7d\xfd\x6c\x3f\x75\xe9\xe2\x9a\xa7\x58\xb1\xb0\x7c\ \xa5\x4b\xbf\x1d\xe4\xea\xba\xb9\xd7\xf6\xed\x9b\xe6\x44\x44\xe4\ \x12\x3a\x88\x26\x33\x66\x6c\x9d\xf1\xf2\xa5\xed\x8c\xe7\xcf\x1d\ \x12\xa2\xa3\xcd\x31\x94\x23\x6f\xc9\x92\x71\x31\x61\x61\xee\x5f\ \x13\x13\xad\xb3\xe5\xc8\xf1\xa9\xfb\xa6\x4d\x1e\x18\x7f\x96\xb7\ \x44\x89\x10\x01\xe4\x29\x5e\x3c\xac\xec\x2f\xbf\xe4\x81\x11\xaa\ \xe7\x2c\xcb\x9c\x2a\x0c\x06\x56\x82\xd9\xe0\xc2\x0d\x35\x6a\xf8\ \xaf\xc8\x9f\x3f\x1a\xf7\x5d\xc0\xbe\x60\xa5\xbf\x58\x1d\xab\x61\ \xd5\x70\xc4\xb5\x49\x16\xfc\x9b\x73\x81\xb5\x2e\x59\x59\x55\xd9\ \xd3\xa5\x8b\xb7\xf3\xc0\x81\x47\xb0\x82\x8d\xa3\x95\xcc\x75\xe8\ \x50\x77\x3c\xeb\x25\x57\xf0\xf2\x34\x76\x68\xd0\xa0\xf3\x18\x5b\ \x02\x16\xc1\xbd\x33\x9d\xf9\xc0\x49\x59\x11\xbf\x63\xb0\xc1\x15\ \x02\x73\x7a\x2c\x5c\x38\xe0\xc6\x96\x2d\x8e\xb8\x2f\x2b\xfe\x1c\ \xe4\xcd\x9c\x06\xc6\xe3\xac\x14\xbb\xbd\x79\xf3\x5f\xb3\xf0\xdf\ \x5e\x18\x1c\x06\x1a\xc3\x89\xe2\x44\xc6\x65\x5f\xaf\xde\x5d\xdc\ \xe7\x95\x06\x57\x8b\xc6\x5c\x7e\xfb\xed\x30\xc6\x72\x90\x81\xad\ \x2c\x58\x70\xab\xc6\x36\x73\x8a\xc8\x22\x30\xd8\xf0\xf2\xc9\x3f\ \xde\xc2\x7f\xb2\xaa\x95\xc5\xca\xe0\x8e\x6b\xca\xca\xc2\x85\x03\ \x9e\x5f\xb8\x60\x8b\xf7\x47\xea\xc0\x2a\x9d\x13\xac\xe3\xbf\x7d\ \xfb\xf6\x9b\xdb\xb6\x59\xe2\x3e\xbb\x00\x4c\x84\x68\x4a\x86\x75\ \x74\xec\xd8\x3d\x8b\x85\xa8\x0d\x03\xf3\xa1\x7b\x72\x12\x9d\x9a\ \x31\xe3\xd8\xfd\x23\x47\x86\xcb\xcf\xe3\x02\x56\x14\x3a\x04\x06\ \xc7\xeb\x86\x82\x91\xe4\xa4\xd8\xdf\xb3\xe7\x91\xe4\xc4\x44\x33\ \x18\xdb\x6f\x60\x5e\x1d\x59\xa9\xf5\xc0\xa6\xe0\x10\x30\x87\x34\ \xb8\x8e\x64\x60\x70\xb0\x3c\xc1\x35\x69\xa9\x4a\x15\x77\xb0\x5f\ \x3f\xe7\xe4\x4f\x9f\xe8\xdf\x3e\x09\xec\x62\xae\xaf\xef\x2b\x57\ \xbb\x8f\xb8\x56\x11\x59\x09\x06\x63\x81\x10\x45\x60\x68\xea\xed\ \x9a\x45\xee\xdc\xcf\x03\x9c\x9c\x36\xc2\xc8\x16\x81\x0d\x85\x8e\ \x61\xa1\x10\xc5\xb0\x92\x55\xd7\x58\x91\x27\x2a\xdb\xc7\x35\x25\ \x4b\xde\x7c\xe1\xed\x4d\x2b\xf2\x02\xb0\x11\xa8\x12\x80\xb9\x81\ \xc1\xdb\x55\x85\x0b\x47\x38\x0d\x18\x70\xea\xd1\x99\x33\xd5\x44\ \x16\x82\xc1\x61\x83\x2e\x30\x36\x8a\xd1\x7d\xdd\xf6\xcb\x2f\x67\ \xe2\xc2\xc3\x2d\x28\xd6\xa5\xc3\x81\x71\x17\xf0\x33\xb8\x19\xdc\ \x44\x31\x3b\x9c\xed\x62\xdd\xe7\xcf\x77\xa5\x8c\x14\x70\x10\x98\ \x4f\xe3\xfd\x1a\x60\x0a\x1c\x2f\x57\x2e\x2d\x5f\xbe\x6d\x65\xa1\ \x42\x37\xe4\xd6\xd3\x09\xf4\xa1\x2d\xe9\xb7\x52\xe0\x44\x7a\x81\ \xc1\x98\x0d\x4f\x3a\xfd\xc1\x82\x5f\x91\x89\xf2\xe6\xea\xda\xb5\ \xdb\x60\x64\x26\x60\x2b\x50\x67\xc3\x21\x5e\xa6\xa6\xf5\x90\x29\ \xe3\xaf\xac\x6a\xcb\xf3\xe6\x7d\xf3\xe1\xf1\xe3\xd5\x30\xb2\x59\ \x60\xf5\x54\xb6\xc9\xb3\xe9\xbd\x0d\xd5\xab\x3f\x96\x86\x9a\xb2\ \xb2\x48\x91\x29\xab\x8a\x16\x35\xa1\x71\x32\xd8\xd4\x82\xe6\x78\ \xe6\x09\xee\x98\x2f\x44\x01\xc1\x60\xfc\xd3\x6d\x19\xa5\x4e\x81\ \x29\xc8\xda\xb8\x1c\xf9\xe2\xc5\x4a\x0a\x2a\x83\xa5\x7f\x10\xc7\ \xcf\x78\xf2\xb6\x5a\x95\x2e\xfd\x86\x56\x66\x04\xca\xa7\x61\xcc\ \x40\xa4\x02\x78\x59\x3d\x14\xe3\x34\xcb\x91\x23\x96\xae\xa7\xa7\ \x4f\xdf\x82\xb4\xb0\x17\xb8\x4f\xda\xdd\xa9\xd3\xe5\x8b\x16\x16\ \xbd\x35\xd2\xca\x72\x92\x91\x2d\xd3\xd7\xf7\xc1\xf6\x3a\xc8\x71\ \xe4\x48\x03\xf1\x0f\xc1\xe0\x6d\xa4\xc1\x8a\x02\x05\xce\x21\x4c\ \xb0\x53\x6e\xc3\xba\x82\xd9\x7f\x20\x6f\xab\x0a\xac\x9f\x94\x90\ \x30\xef\x99\xa7\xe7\x3a\x72\xa4\x7c\xeb\x73\xc2\xe0\x12\xd4\xe9\ \x6c\xdd\xbb\x7b\xef\xea\xd4\x49\xed\x3c\xc1\x99\x2e\x0a\xce\x95\ \xc4\x2b\x36\x36\x8e\xf2\xbc\xd7\x5f\xbe\x7f\x17\x2b\x5e\x10\x38\ \x30\x39\x39\xb9\xdf\xdb\x80\x80\x35\xf4\xbf\x23\x18\x8c\x74\x58\ \x29\x86\x83\x33\xc1\x8a\x3f\xf0\x67\x30\x00\x5b\xff\xd9\xca\xec\ \xbe\x70\xe1\xcc\xf3\x26\x26\x87\xf0\xce\x62\x38\x55\xae\x92\xc1\ \x2d\xcd\x96\xed\xf3\xc5\xe5\xcb\x77\x63\x6c\x9a\xe6\x79\xcf\xa1\ \x79\xf3\xd1\x58\xd5\xc2\xe9\x1d\x18\xea\x41\x3c\x6b\x9c\x5e\xdb\ \x6b\x06\x1b\x9c\xfe\x7f\xe4\x73\xd6\x04\x27\x82\x86\x70\xae\xdc\ \x81\xb1\x7d\xf1\x5a\xba\xd4\x09\xf7\x33\xc0\x02\x5a\xef\x56\x76\ \x19\x32\xe4\x2c\x19\x9c\x53\xff\xfe\xb6\x72\x9b\xfa\x3d\x60\x30\ \x18\x2f\x7d\x7d\xdb\xf9\x6d\xdd\xba\x43\x3a\x58\x0a\xa5\xb2\x05\ \x2d\x89\x95\x2d\xc6\xa6\x5c\xb9\xd0\xcf\x49\x49\x73\x28\xd8\x2e\ \xfe\x11\x18\x0c\x4e\x71\xeb\x07\x16\x55\x9c\x47\x32\x0b\x65\x32\ \x98\x1d\x3f\x6f\xc7\xf5\xeb\xad\x9d\x3b\x1d\xf0\x4e\x3d\xf1\x37\ \x20\x43\x0c\xa7\xf1\x7b\x7f\x51\xee\xc4\x60\xb0\xf3\xa8\x20\xb2\ \x50\x02\x64\x78\xe0\x21\xf8\x65\x73\x83\x06\xb7\x60\x6c\xe3\x40\ \x95\xd6\xbb\x55\x64\x22\xf7\x75\x32\x30\x70\xa0\x34\xb8\xea\x66\ \x7a\x7a\xef\xe4\x7f\x63\x9c\xf8\x36\x18\x0c\x46\x62\x6c\xec\xe8\ \xe3\xe3\xc7\xbb\x21\x4c\xf0\x91\x8c\x06\x75\x77\x4f\x8e\x4f\x9e\ \xdc\x42\xbb\x6a\x02\x8c\x90\x31\xcb\x30\x7a\x4f\x72\x86\xa9\x91\ \x91\x01\xb2\x58\x3e\x58\xe4\xc9\x13\xfb\xca\xdf\xbf\xb7\x60\x30\ \x18\x7f\x59\x06\xd4\x2d\xfc\xe9\xd3\x15\xbb\xda\xb7\xbf\x46\x4e\ \x95\x25\xb0\x43\x13\x21\x7a\x6b\x18\xdc\x51\x8c\x27\x5c\x34\x37\ \xdf\x47\x61\x94\x88\x67\xcf\x56\x91\x61\xca\xca\xf4\x93\x60\xca\ \xa9\x69\xd3\x8e\xe1\x59\x27\xf1\xb7\xc0\x60\xb0\xe1\x15\x07\x87\ \x3f\x3e\x71\x62\x23\xca\x7f\x6e\xed\xed\xd9\x73\x94\x90\x40\xcc\ \xee\x93\xad\x91\x51\x88\xf4\x6c\x56\x03\xeb\x86\x3d\x7e\x3c\x1e\ \x21\x04\x75\x20\x7d\x4d\x89\x12\x2f\xe1\x64\x99\x9b\x76\xcf\x2f\ \x83\xc1\x86\x57\x15\xfc\x03\x9c\x24\x24\xb0\xdd\x8c\xa2\xac\x96\ \x57\x01\x01\x86\x1a\xef\x65\xc7\xf9\x2f\x8e\xb6\x99\xe4\xf9\xfc\ \xfe\x00\x39\x83\xc1\x46\x97\x4d\x33\xf3\xc6\xbe\x6e\xdd\x63\xb4\ \x92\xc1\xc0\x76\x2d\x10\xa2\x90\x2c\xd0\x9d\x45\x63\x70\xb2\x04\ \xe0\xdd\x09\xa0\x8a\xb6\xa1\xe4\xf5\x04\xef\xe0\x99\x03\x1c\x2a\ \x55\x45\xda\xc0\x60\x30\x9e\x79\x78\xb4\x44\xce\xe9\x33\x0d\x67\ \xc9\x07\xba\xc2\x3b\x99\x18\x72\xf5\x2a\x05\xc8\x8d\x70\x3f\x55\ \x66\xb1\xc4\x99\x65\xcf\x1e\xa9\xfe\x59\xa5\x7a\x89\x6b\x5a\xf3\ \x53\x19\x0c\x5e\xf1\x12\x3f\x7d\x1a\xeb\x63\x6d\xbd\x77\x4f\xd7\ \xae\xc7\x51\xa1\x40\x86\x94\x02\x7d\xcc\x3b\x78\x36\x80\x92\x9d\ \x71\x9f\x00\x6f\xe5\x0b\xd4\xe3\xad\xc5\x98\xe9\xdd\x7d\xfb\xb6\ \xc2\xf0\x92\x60\x80\x81\xb2\x0a\xbd\xb1\xf8\xdb\x60\x30\xd8\xe8\ \xb2\x83\xed\xc0\xb1\xa8\xab\xdb\x4b\x62\x4c\x6a\x51\xdd\x7a\xf5\ \x5a\x2b\x2a\xd1\xa4\x0e\x2d\xab\xd1\xcb\x83\xf5\xf7\x76\xeb\xe6\ \xa5\xa1\xad\x92\x2c\x6b\xef\xd2\x08\x06\x83\x8d\xaf\xe4\xc7\x77\ \xef\xcc\x7c\xd7\xad\xdb\x99\x98\x98\x58\x1f\x06\xd5\x01\x4c\x39\ \xd0\xa7\xcf\x49\xa1\x01\x24\x4b\xef\x95\x82\xb6\xd7\x8e\x8c\x1a\ \x75\xf2\xd9\x85\x0b\x8d\xc4\x77\x81\xc1\x60\xa3\x2b\x00\xf6\x04\ \x7f\xfa\x43\x08\x7d\xac\x78\x51\x38\xd3\xd1\x2a\xd6\x9f\x72\x32\ \xc1\xc1\x38\xc3\x45\xd3\x78\xec\xfb\xf7\x54\x02\x35\xea\x7d\x60\ \x20\xad\x86\xe3\xb1\xda\x1d\xc1\xf5\x28\xae\x53\x70\xcd\x2f\xd2\ \x06\x06\x83\x81\xf3\xdd\x52\x25\x2e\xa7\x49\x0f\x63\x63\x17\x18\ \x5b\x9b\xf1\x42\xe4\xa0\x94\x30\xe9\x58\x89\x05\xe3\xe5\x3b\x81\ \x7f\xd3\x9b\xc9\xca\xcb\x0c\x06\xad\x6e\xa4\x1c\x56\x6f\xe4\xc8\ \x6d\x93\xee\xdc\xb1\xe9\x64\x65\xb5\xab\x6c\x93\x26\x9e\x02\x28\ \x58\xbe\x7c\x48\x1b\x33\xb3\x2b\x64\x8f\x25\x85\xf8\x4d\x25\x44\ \x17\xbd\x9c\x39\x13\xbb\xad\x5f\xef\x32\x3f\x3c\xdc\xba\xd9\xec\ \xd9\x47\x55\xd9\xb2\x55\xcc\xa1\xa7\x77\x38\x35\xa5\x68\xf2\x70\ \x82\x79\x05\x83\xc1\x50\x8c\x42\x8c\x90\x4e\x91\x9b\xeb\x6b\xd6\ \x1c\x1c\xe0\xec\x3c\xca\xba\x5c\xb9\x07\xd4\x6c\xe4\x9e\xb3\xf3\ \x16\x52\x8f\x96\xef\xed\xc5\x16\xf3\x8b\x65\xc9\x92\xef\xe8\xd9\ \xaa\x22\x45\x0e\x23\xab\x65\xb0\xcb\xd0\xa1\xe7\xe8\xf7\x2d\x8b\ \x15\xeb\x22\x24\x34\x2a\x19\xde\x81\xd6\x72\x88\xc1\x60\xf8\xf9\ \xf9\xe5\x80\xcc\xfa\x61\x24\x35\xc7\x29\xdb\x48\x18\x54\xfc\x99\ \x59\xb3\xa8\xca\x7c\xb4\x90\x80\x5a\xd8\x0e\x7a\x16\xe4\xe5\xb5\ \x16\xc9\xd2\xc7\xf0\x7e\x34\xe9\x64\xae\x2a\x54\xe8\x3c\x8d\xef\ \xef\xd3\x67\xb9\x14\x3d\x1a\x88\x7b\x5f\xf0\x14\x8d\x5f\x58\xb6\ \x0c\x17\x4d\x30\x18\xec\x40\xe9\x0c\xe5\xb0\x55\xc7\xc6\x8c\x39\ \xe9\xd8\xba\xb5\xdb\x03\x57\x57\x8a\xc5\xcd\x01\x4b\x08\x89\xfd\ \x7d\xfb\xf6\xa2\x95\x0d\x4e\x94\x47\x4f\xcf\x9d\x1b\x42\xc9\xd2\ \x3b\x5a\xb5\xba\x80\x31\xb5\x92\x18\x56\xc6\x59\x02\x30\x33\x30\ \x68\xa9\x04\xce\x51\x81\x10\xf3\xe8\xf8\xf1\x25\xe2\xff\x83\xc1\ \xe0\x50\x01\x38\x00\x9c\x0d\x8e\x00\xf3\x69\x3d\xcf\xed\x3a\x6c\ \x98\x1b\x19\x1d\x18\xb1\x3c\x7f\xfe\x9d\x3e\x56\x56\x66\x8f\xdd\ \xdc\x36\x62\x75\xbb\x84\xe7\x7d\xe4\x7b\xf9\xd7\x56\xaa\xf4\x9c\ \x3c\x9e\xa4\xbd\x82\x77\x93\x60\x7c\x56\x73\x85\xc8\x27\xd2\x04\ \x06\x83\x8d\xb2\xd1\x75\x7b\xfb\x9d\xd0\xc8\xbc\x2d\x0d\x29\x05\ \x2b\x9e\xa7\x4c\x96\xfe\x49\x9e\xf5\x06\xd0\x38\xe4\xda\x2f\x04\ \x9e\x39\xb3\x61\x5d\x95\x2a\x8f\xe4\x19\xd1\x5d\xa4\x19\x0c\x06\ \x1b\x5d\x6d\x70\xf6\x87\x27\x4f\x56\xe3\x2c\x77\xf4\xd4\x1f\x7f\ \x2c\xc3\x7d\x2e\x45\xd6\x8f\x64\xfa\x48\x39\x8c\x02\xeb\x18\xff\ \x19\x9c\x0a\x91\xde\xdd\x57\xd7\xad\x5b\xf1\x5f\x28\xff\x51\x89\ \x74\x06\x83\x21\xa5\xf7\x2a\x82\x75\xc0\x62\xe0\x41\x15\x82\xe4\ \x14\x2c\xc7\xfd\x81\xa6\x33\x67\x1e\xeb\x6c\x63\x63\x87\x31\x2f\ \xf9\xee\x2f\xe0\x4f\xa0\x2b\xc6\xe2\xc5\x3f\x07\x83\xc1\x90\x1e\ \xca\x14\xc7\x36\x6d\x2e\x07\x04\x04\x64\xa4\x62\x18\x83\xc1\x08\ \x0c\x0c\xd4\x27\x99\x07\x19\x5e\x78\x01\x03\x5c\x8f\x6b\x8f\xef\ \x6d\x9f\xbc\x58\x88\x9f\xf1\xfb\xfd\xbe\xb1\x53\x63\x30\x18\x90\ \x58\xef\x7a\x62\xf2\xe4\x93\x56\xa5\x4a\xdd\x57\x9a\x8f\x98\x08\ \xd1\xf6\x3b\x83\xf2\xbb\xa5\xf1\x7a\x53\x20\x5d\xa4\x0a\x06\x83\ \xcf\x78\x1d\xc1\x45\xd4\x15\x28\xf8\xca\x15\x2b\xdc\xb7\x11\xdf\ \x81\xb3\xf3\xe7\xb7\xa3\xec\x16\xd4\xe9\x05\x7e\x08\x0c\xfc\x93\ \x24\x69\x06\x83\x8d\x2e\x87\x14\x2c\xea\x00\x96\x15\xdf\x81\xa5\ \x7a\x7a\xfb\xd4\xc2\xb6\xbb\x76\x39\x90\xf0\x91\x48\x3b\x18\x0c\ \x06\x55\x8f\x93\x4a\xb4\xb1\x10\xe5\xfe\xe4\x9d\x26\xe0\xd7\x0d\ \x35\x6a\x3c\x7c\x70\xe4\x88\x89\xf3\xc0\x81\x7a\xe2\xbb\xc0\x60\ \xb0\xc1\xed\x04\x53\xcc\x72\xe6\xdc\x2e\x52\x87\x0a\x06\xa9\x76\ \xbe\x28\xc4\x7d\x30\xae\x15\xb9\x3c\x47\xfd\x7f\x8e\xa0\x6e\x9c\ \xad\xc4\xdf\x00\x83\xd1\xc1\xca\x6a\x7d\xd5\x3e\x7d\x2e\x0f\x3d\ \x75\x2a\xe4\x1b\x06\x39\x5c\x85\x55\xd0\xb0\x55\x2b\xff\xee\x1b\ \x37\x3a\xa0\x74\x68\x97\x5e\x8e\x1c\xc5\x54\x7a\x7a\x67\xfe\xf3\ \x29\x62\xb2\xea\x37\x65\x75\xb1\x62\x4b\x71\xcd\x6f\x2c\x44\x25\ \xc1\x60\xfc\x75\x5f\xbc\x31\xe0\x20\xcd\x71\x2a\x72\x85\xb1\x15\ \xa7\x9e\xed\x10\x3a\xfa\x10\xfb\xe1\x03\x55\x9a\x0f\x04\xfb\x61\ \x4b\xa9\x2e\x03\xb2\x2a\x57\xae\xe3\x7f\x75\x5b\x50\x1f\xac\x02\ \xc6\xa2\x36\x2a\x34\x36\x2c\x6c\x1e\x8c\xcf\x0b\xf7\x97\xc4\xf7\ \x81\xc1\x81\x73\xd2\xcf\x4c\x02\x53\x3c\x97\x2c\x71\xa6\x7e\xed\ \x42\x02\xe9\x62\x97\x28\x21\xfa\xe5\x8d\x1b\x03\xfe\x73\x5b\x4a\ \x18\x15\xb9\x79\x6f\x82\x77\x85\x4a\x65\x80\x65\xdf\x6d\x7f\x8f\ \x1e\xe5\x54\x18\xaf\xde\xb7\x6f\xc4\xf7\xf4\x25\x63\x30\x0c\x9b\ \x35\xdb\xae\x9f\x3f\x7f\x98\x00\x9e\x9e\x39\x63\x84\xcb\x15\x50\ \x98\x08\xd1\x3d\x39\x3e\xbe\x65\xa5\x4e\x9d\xae\x97\x6d\xd8\x30\ \x42\xfc\x17\x61\x5b\xb1\xe2\x75\xe5\x40\x6b\xf7\xd3\x4f\x77\xb0\ \xba\x7d\x42\xb0\xf3\x39\xfa\x56\x1b\xcb\xd2\x8e\xb4\x82\xc1\x5b\ \xcd\xd2\x09\xb1\xb1\x8b\xa8\x1b\xd0\xb9\xb9\x73\xad\x97\xe5\xcb\ \x57\x15\xab\xde\x1a\xf0\x31\xfa\x9a\x47\x47\x86\x84\x58\xe0\x9d\ \xc2\xff\xa5\x6d\x64\x5e\x18\x96\x19\x29\x3b\x21\x46\x92\x00\xbd\ \xfa\xd7\xdb\x5b\xb4\xb8\xa9\x18\xde\x8e\xd6\xad\xfd\x92\x92\x92\ \xfe\x89\x94\x1a\x83\x8d\x2e\x37\xd8\x03\x9c\xba\xb2\x48\x11\x92\ \x5e\x4f\x56\x4b\xb2\xd7\xaf\x7f\x1f\x59\x2c\x9d\xff\x6b\xe7\xb6\ \xf2\xa8\x83\x8a\x52\x0c\xec\xfa\xc6\x8d\x3b\x0f\xf6\xed\x7b\x82\ \xee\x91\x0d\x10\x41\x7b\x6c\xe8\xd7\x57\x10\x40\x2a\xcd\x00\x2f\ \xa6\x55\xbd\x97\xc1\x7d\xdc\xef\xbb\xb8\x6c\xb4\xab\x54\x29\x08\ \x2b\xdc\x27\xc7\x6e\xdd\x4a\x8a\xff\x1a\x76\x77\xea\x74\x52\x31\ \x38\x74\x65\x89\xc3\x35\xc1\xb6\x7c\xf9\x67\x5f\x92\x93\x97\x46\ \x04\x05\xad\xc2\x92\xdf\x44\xbb\x3c\x88\xb4\x0c\x29\x45\x67\x79\ \xbe\x7c\xcb\x44\xda\xc0\x60\xa3\xab\x02\x4e\x8f\x0b\x0b\xb3\xc0\ \xf5\x67\xf1\x5f\x02\xb5\xa7\xc5\x0a\x97\x60\x63\x64\xf4\xf2\xda\ \x86\x0d\xbb\xc8\x88\xd4\x8a\x4d\xc5\x8b\xbf\x7b\x78\xe4\x48\x67\ \x18\x5b\x03\xb0\x80\x3c\xe8\xb6\xc4\xaa\x16\x86\xe7\x4b\xae\x6e\ \xdb\x56\x02\xda\x16\xeb\xe3\xc3\xc3\xe7\xcb\xae\x2e\x69\x05\x83\ \x65\xda\xeb\x81\xb9\xff\x6b\x6e\x5b\x1f\xea\xa4\xf9\xf4\xec\xd9\ \xf5\x10\x9b\xd9\xa7\x6e\x08\xd1\xa4\xc9\x9d\x75\x95\x2b\x07\xee\ \xeb\xd1\xa3\x9a\xb6\x4c\x1a\xb6\x99\xb7\x95\x52\x8d\xc3\xa3\x46\ \x0d\x24\x83\x14\x7f\x0f\x0c\x06\x03\xc1\xc8\x63\xe7\xe6\xcd\x73\ \xf1\xdf\xb1\x63\x11\xb5\xb5\xc5\x56\xf2\xf1\xe7\xcf\x9f\x17\xc1\ \x90\x16\xa7\xd6\xae\x36\x29\x2e\x6e\x0a\x49\x65\x2f\xd3\xd7\x8f\ \xbd\xb0\x6a\x55\x75\x91\x66\x30\x18\x5c\x76\x31\x17\x86\x67\x4b\ \xba\x84\xb2\xb5\x51\x6d\x30\x0f\xa8\x12\x5a\x80\x03\xe5\x0f\x5a\ \xe1\xc8\xcd\x8b\xe7\x5d\xff\x4a\x01\xf8\xff\xab\xf4\x32\x18\xbc\ \x97\xce\xfb\xf0\xe8\xd1\xd2\xef\x1f\x3e\x5c\x8d\xfb\xc1\x5a\xde\ \xc8\x6e\x14\x37\x59\x20\x44\x11\xfc\x5c\x18\xfc\xb0\xba\x48\x91\ \xd7\x49\xf1\xf1\x0b\x14\xa1\x19\xad\xf7\xf3\xcb\x74\x9e\x3a\xb2\ \xeb\x66\x12\x78\x05\x1c\x25\xfe\x07\x0c\x06\x1b\x5e\x4b\x50\x5f\ \xeb\x8c\x37\x57\x66\x76\x87\xe3\x7a\x01\x4c\x81\x5a\xd3\x6e\xbc\ \x97\x5a\x38\x40\x85\xe7\xa1\x14\xd4\xc4\xf5\x2d\xc4\x43\x43\xe0\ \x01\x75\x86\x78\x68\xb0\x3c\xf7\xed\x07\xff\x24\x53\x86\xc1\x60\ \x43\x2c\x4f\xde\x4b\xe8\xcc\xbf\x92\x61\x83\xc4\x8b\x2b\x56\xac\ \xc3\x78\xaa\x86\xb3\xa3\x4d\x9b\xe9\x66\x39\x72\xc4\xd3\xbb\x36\ \xe5\xca\x85\xa2\xee\xc9\x22\x3e\x22\xc2\x74\x67\xbb\x76\xd7\x69\ \xcb\xba\xaa\x54\x29\x43\xf1\xa7\x60\x30\xd8\xe8\x1a\x20\xbd\x6b\ \xc1\x89\x89\x13\x4f\x5a\xe4\xca\x15\xa7\xac\x56\xa9\x09\xc9\x5c\ \x30\x33\xeb\x4a\xc1\x72\x0a\x9a\x23\x73\x85\xf4\x2f\x92\x70\xee\ \xb3\xfa\x9c\x98\x38\x98\xe2\x7a\x30\xd4\xa6\xe2\x2f\xc1\x60\xb0\ \xd1\xe5\x02\xbb\x86\x3f\x7f\xbe\x62\x77\xc7\x8e\x57\xd0\xf0\xe1\ \xbe\x5d\xe3\xc6\xf9\x53\xcd\x0e\x87\x36\x7d\xe0\xa9\x53\x1b\x9e\ \x79\x7a\xae\x83\xa2\xef\x7d\x6c\x2d\xa3\x97\xe7\xc9\x53\x82\x94\ \x7c\xd3\x96\x93\xc9\x60\xb0\xe1\x15\x03\x87\x81\xa6\x60\x03\x19\ \x10\xa7\xfc\xb8\x91\xb8\x76\xa6\xd5\x6f\x67\x87\x0e\x57\xe4\x3b\ \x95\xc0\xc9\xc9\x9f\x3e\x99\x29\x67\x3e\x3c\xef\x03\xfe\x1d\x01\ \x1a\x06\x83\x1b\x32\x42\x65\x37\x0c\xdc\x8b\x9b\xcd\xa0\xbf\xcc\ \xf5\x1a\x05\xee\x04\x4f\xa2\xb9\x5f\x6c\xcf\xad\x5b\x2f\x60\xf8\ \x2c\xde\x7b\x46\xef\x65\x37\x30\x70\xc2\xf5\x1e\x0c\x2d\x27\xae\ \x6b\x41\x4f\xfc\x3c\x55\xde\xa7\x05\x0c\x06\xe3\x43\x50\x50\x93\ \xc3\x23\x46\x9c\x93\xce\x92\xaf\x6b\x2b\x54\xf0\x4a\x4d\x4c\x86\ \x3c\x94\xd8\x8a\x3e\x91\x2d\x6e\x93\x70\xfd\x4c\x5b\xd0\xb4\xc7\ \xea\x18\x0c\x96\x4f\xeb\xf9\x36\x20\xc0\x92\x4a\x7b\xd4\xed\x8f\ \x84\x88\xa1\x3c\x4d\xad\xf3\xdd\x18\x59\x96\x11\xe0\x36\x65\x8a\ \xd3\xc6\xda\xb5\xcf\x90\x81\xc2\xf8\xce\xa7\x3d\x5c\xc0\x60\xb0\ \xe1\x95\x02\x7f\xbf\x7f\xe8\xd0\xe6\x5d\x1d\x3a\x78\xfa\xda\xdb\ \xd7\xd5\x88\xcf\xe5\x07\xdf\xae\x28\x50\x20\xec\x53\x74\x34\x9d\ \xe9\xc6\x83\x13\xa1\x59\x7f\x83\x8c\x10\xc1\xf4\xef\x6c\xe2\xce\ \x60\xb0\xe1\xd5\x02\xa7\x83\xad\xe4\xca\xe6\x46\x01\x71\x30\xe5\ \x82\x85\xc5\x41\x8c\xb7\x10\x12\xd8\x62\x5e\xa7\xd8\xde\x9b\x7b\ \xf7\xda\xfe\x45\xdd\x5e\x3d\xea\x2d\xbd\x48\x88\x32\x42\x57\xc1\ \x60\xc8\x7c\xc6\x1a\x22\x0b\xb1\xa6\x74\xe9\xb9\x54\x4d\x4e\x06\ \x77\x74\xf4\x68\x27\x18\x9c\x9e\x92\x36\x46\x63\x7b\xbb\x76\xf5\ \x21\x23\x94\x63\xa5\x61\x58\xcb\x65\x56\xca\x0a\x6c\x4b\x2b\x2b\ \x5d\x5c\x40\x2a\x1d\x8a\xa5\x32\x21\xa1\x8b\x60\xb0\x97\xb2\xb0\ \x10\x8e\x29\xea\x9c\x46\x91\x65\x75\x47\x73\x5e\xbd\x3a\x33\xc6\ \xc7\x67\xa3\x61\x8b\x16\xfe\x30\xac\xc0\x79\x2a\x55\x6e\xea\xaa\ \x89\x47\x36\xf0\x60\xc6\x74\xdf\xb2\xc5\x0b\x3f\x07\x60\xac\x46\ \x8a\x10\xf7\x55\x42\x2c\xc2\xfd\x10\x70\x21\x3e\x2c\x95\x03\x35\ \x6e\x6b\x6a\x7a\x59\x3f\x6f\xde\x78\xfd\x7c\xf9\x12\xc7\xfb\xfb\ \xc7\x08\x5d\x05\x83\x7b\x7b\x6d\x69\xd0\xe0\x32\xa4\x13\x1a\xe1\ \x67\x5f\xb0\x4a\x16\x6d\x33\x0d\xe5\xb9\x6d\x36\x32\x51\xfa\x2a\ \x15\xe6\x07\xfa\xf6\xbd\x28\xcb\x80\x94\xda\xbc\x78\x94\x0b\x1d\ \xa4\x4a\xf3\x1b\x9b\x37\x3b\xa2\x8a\x21\x0a\x63\x1f\xa4\xb2\xaf\ \x22\xb5\xd6\x5a\xe8\x10\x18\x6c\x68\xd6\x30\xac\x33\xb8\x86\x41\ \xfb\xef\x03\x94\x91\x56\x20\xd3\x83\xee\xbf\xec\xef\xdb\xb7\xbb\ \x0e\x24\x49\xab\xdc\xa6\x4e\x3d\x80\x7f\xd3\x47\xa8\x82\xbd\xc4\ \xbd\xfe\x42\x21\x4a\x90\xc7\x72\x4b\xc3\x86\x77\x65\x13\xf8\x5f\ \xc0\x8e\x77\xf6\xec\xb1\x92\x5e\xcf\x14\x92\x7d\x40\xad\xde\x4c\ \x9d\xaa\x30\x67\x30\xe0\x09\x9c\x43\xee\x76\x30\x05\x8d\x13\x02\ \x77\xb6\x6f\x6f\x4f\x3f\x23\x73\xdf\x9b\x14\x6f\x75\xc4\xb1\xd2\ \x02\x3d\xa3\x97\x45\xbf\x7a\x45\xfd\xa4\xa9\xf4\xa7\x28\x98\xb2\ \xad\x69\xd3\xdb\xb8\x2f\x28\x24\x7c\xd7\xad\xab\x40\xe3\x64\x74\ \x10\x9f\xd9\x8c\x67\x35\x85\x2e\x80\xc1\xa0\x73\x1a\x0e\x3f\xa5\ \x1c\x9a\x37\x27\x83\x4b\x59\x59\xa8\x50\xa4\x86\x38\x50\x2c\xfe\ \xb8\x49\xb4\xa5\xa4\x0e\x79\x33\x0b\x83\x4d\xe4\x8a\xa5\x5a\x53\ \xb2\xe4\x53\xf9\x45\xf1\xab\xc6\x67\x9a\x01\xa6\x6c\x6f\xd5\xea\ \x26\xde\x1b\x25\x75\x58\x6a\x62\xcc\x02\x2b\xb6\x2d\x38\x08\xcf\ \x0d\x44\x16\x80\xc1\x06\xe7\x4c\xe2\xad\xb8\x46\x61\x95\x7b\xf7\ \xf1\xcd\x9b\xe5\x36\x86\x86\xa1\x8a\xd1\xad\xab\x56\xcd\x45\xe8\ \x30\x7c\xac\xac\xa6\xe0\xcc\x16\x43\x46\x07\x43\x7a\x09\xde\x94\ \x5f\x16\xf1\xef\x1f\x3c\xa0\xe2\xd8\x92\x18\x9b\xa0\xac\xde\xca\ \x15\x63\xcf\x32\xdd\x13\xcb\x60\xb8\x8e\x1c\xd9\x84\xfe\x38\xc9\ \xb8\x20\x5f\x17\x63\x57\xa5\xca\x49\xb5\xdb\xbd\x7b\x77\x9f\x33\ \x33\x67\x1e\x45\x5d\xdb\xec\xbf\x30\xd8\x8a\xf3\x85\x28\x90\x85\ \x2b\x5e\xfe\xd7\x37\x6f\x2e\x77\x1d\x36\xec\x2c\x54\xc4\x7c\x10\ \x4a\x20\xe3\x4b\x39\xd8\xbf\xff\x05\xca\x64\x21\x0d\x4d\xf0\x33\ \x6d\x2f\x4f\x4e\x9e\x7c\x0c\x46\x68\x89\xeb\x09\xbc\x97\x04\xc7\ \xca\xbb\x4c\x4d\x11\x63\x30\xb0\x25\x9b\x48\x06\xb6\xa9\x4e\x9d\ \x87\xca\x76\x92\x64\xef\x20\x77\xb7\x01\xab\x43\x6f\x70\x24\xa8\ \x47\xb1\x39\x8a\x65\x81\x6d\x35\xb7\x63\x58\x29\xa2\xc1\x77\xe0\ \xb8\x2c\xde\x66\x0e\x07\x17\x1e\xe8\xd3\xe7\x22\x0c\xe9\x0b\x09\ \x86\xba\x0e\x1d\x5a\x56\x26\x3c\xa7\x90\xb3\x85\x3e\x17\x9c\x28\ \x87\x5f\xf8\xf8\x0c\xf7\x58\xb4\xc8\x49\x76\xfb\x99\xfb\x27\xab\ \x7f\xc1\x74\x4b\x1f\x63\x30\x28\x03\x03\x86\x12\xb9\xb2\x60\xc1\ \xd7\x10\xd8\x5c\xb6\xae\x4a\x95\x40\xfa\x63\xa5\x2c\x0e\xc8\x97\ \x7b\x0b\x09\x18\x59\x7b\x25\xeb\x43\x32\x82\xce\x41\x02\x70\x68\ \xd6\x6c\x25\x8d\x61\x3b\x7a\x5c\x07\xce\x77\x2a\xb0\xe9\xe3\x13\ \x27\x36\xc2\xa3\xe9\x14\xf7\xe1\x43\x19\xd4\xd5\xa9\xbf\x50\x2e\ \x2c\x5b\x76\xf0\xf0\xf0\xe1\x27\x11\x5e\xf8\x48\x9f\xd9\xba\x6c\ \x59\x7b\x1a\xdf\xd2\xa8\xd1\x71\xa1\x01\xd2\x61\xa1\xab\xdc\x86\ \xc6\x4a\x99\x88\xc3\xe9\xb1\xfd\x64\x70\x28\x60\x12\x0c\x2c\xf1\ \xf6\xde\xbd\xdb\x76\xb5\x6f\xbf\x86\x0c\xc7\x69\xe0\x40\x2f\x6a\ \x82\x1e\xfb\xee\xdd\x42\xea\xdf\x85\x31\x43\x90\xe2\x5a\x9f\xa0\ \x39\x79\x6c\x4f\x97\x2e\x9e\x48\xad\x0a\xc5\x6a\x91\x48\x86\x88\ \x6a\x6e\x7f\x64\xfc\x27\x85\x5e\xbb\x66\x83\xf7\x8b\x0a\x1d\x80\ \xec\x29\x3d\x16\xac\xb4\xa9\x61\xc3\xaa\x30\xba\x24\x54\x93\x07\ \x3f\x3e\x7d\x7a\x14\x9d\xeb\xb6\x36\x6e\xec\x4d\xdb\x4c\xa9\x24\ \xe6\xa4\xb1\xa2\xb5\x93\x67\x3c\x7a\x9e\x02\xa3\x3c\x8f\x90\x83\ \x1b\xc5\xf9\xf0\x79\xe3\x30\x36\x58\x7c\x2f\x18\x8c\xdb\xbb\x77\ \xe7\x09\xf6\xf1\xb1\x8c\x78\xf1\x62\x1a\x65\xea\x63\x7b\x15\x82\ \xae\x25\x26\x32\xaf\xb1\x29\x48\x5d\x4d\x17\x92\x21\x5e\xb1\xb5\ \xdd\x83\xfb\xb9\xe0\x64\x64\xf8\xaf\x86\xd1\x45\xe0\x5c\x94\xa4\ \x36\xd2\x01\x03\xbc\x30\xde\x5f\xe8\x28\x60\x54\xce\x6a\x75\x68\ \x95\xea\x3d\x7a\xd8\xad\x0d\x70\x71\x59\xf0\xc0\xd5\xd5\x7e\x43\ \xcd\x9a\x8f\xde\x3d\x78\xb0\x50\xc3\xe0\x72\xa2\xda\xfc\x8c\xb2\ \x92\xe3\xcb\xc5\x3b\xfa\xf5\xeb\x99\x24\x78\x8b\xad\xf7\x6b\xec\ \x04\xce\x08\x06\xe3\x1f\x6e\xc1\x5a\x45\x44\x44\x14\x40\xf0\xd8\ \x3e\xe4\xea\x55\x5b\xad\x9e\x00\x02\x5b\xb0\xcd\x64\x54\x21\x57\ \xae\xcc\x53\xa4\x0e\x70\x35\xd8\xd7\xb3\xe7\x49\x1a\x87\x87\x30\ \x22\xf6\xfd\x7b\x53\x8c\x15\xd0\xe1\xcf\x59\xf3\xea\xda\xb5\xbb\ \xe1\x7d\x55\x87\x10\x88\x70\x10\x5d\x87\x6c\xdf\x2c\x0a\x94\x0b\ \x0d\xec\xea\xd8\x71\x3f\x19\x1b\x04\x90\xde\x4b\xc3\x0b\x45\xf9\ \xd0\xb0\xcf\x49\x49\x33\x65\xc5\x7a\xba\x39\x59\x18\x2c\xee\x3a\ \x50\x5b\xc8\x15\x4e\x86\x25\xd2\xa9\xb2\x5f\x73\x1c\x4e\x88\xa3\ \x34\x7e\xde\xd8\xf8\x10\x7e\xa7\x8d\xd2\xc6\x4a\xc6\xbb\x0c\x75\ \xd1\xe8\xc0\x05\x2f\x2e\x5d\x5a\x0b\xc7\xca\x99\xcd\x3f\xff\x7c\ \x28\x32\x28\xa8\xa0\xa6\xc4\x9f\x4c\x82\xfe\x88\xad\xe4\x8b\x2f\ \x5f\xbe\x2c\xf5\x5a\xba\xd4\x09\x8a\xd1\x61\x30\xce\xa3\x52\x9f\ \xa5\x0a\xa8\x27\x32\x0a\x0c\xc6\xbd\x03\x07\xca\x91\x9a\x96\x8c\ \x73\xed\x01\x49\x45\x79\x37\x98\x82\x66\x8c\xc1\x48\x9b\xa2\x55\ \x82\x44\x5c\xe7\x81\x51\x1a\xb1\x2e\x5f\x13\x21\x1a\xe8\x60\xd1\ \x6b\x6d\xa9\x9d\x62\x0c\x56\x95\x95\x11\x0b\x64\x29\xcf\x2e\xfa\ \x9c\x74\xa6\xc5\xb3\xfa\x60\x4b\xac\x82\xc6\x58\xdd\x4c\x32\x6d\ \x65\x63\x30\x5e\xf9\xf9\x4d\xb7\xaf\x5b\xf7\x01\x9c\x0f\xb1\x64\ \x50\x4a\xda\xd4\x3d\x67\xe7\x2d\x74\xde\xc3\xfd\x68\x1a\x43\x0e\ \xe6\x4b\xac\x1e\x87\xe0\x94\xb8\x88\x77\x3f\xe2\x1d\x8a\xef\xb5\ \xd0\xd1\x15\x3d\x9b\xc6\xaa\x16\x89\xeb\x67\x99\x97\x79\x8b\x1c\ \x2e\x1a\xef\xe5\x03\xab\x89\xcc\x02\x83\x41\xe7\x33\x70\x02\x69\ \x44\x92\x7b\x9d\x8c\x8b\x74\x24\xb1\x9d\xb4\x95\x5b\x31\x7f\x1a\ \x83\x91\x25\xef\xeb\xde\xdd\x1d\x8e\x86\xd9\x10\x73\xb5\x27\x3d\ \x4a\xc4\xc3\xee\x09\x1d\xc7\x93\x73\xe7\x66\xdb\xd7\xab\x77\x97\ \x3e\x03\xc5\xef\xac\xcb\x95\x5b\x4a\xd2\xeb\x22\x0b\xc1\x60\xa3\ \xd3\x03\x0d\xc1\xa6\xd7\x37\x6d\xda\x8c\xb3\x5d\xb0\x43\x8b\x16\ \x2b\x05\x80\xac\x8d\x08\x4a\x07\x43\xd8\xe0\x12\x85\x0b\xc8\xd1\ \x00\x6f\xdf\x34\xc4\xb8\xfc\xc8\x10\x4f\x4e\x9a\x54\xe8\x1b\x61\ \x89\xa1\xa0\x2b\x38\xdd\x58\x88\x0a\x59\xf8\xd9\x4a\x82\x13\x6e\ \x6c\xd9\xe2\x88\x4a\x84\x57\x32\xf5\xcb\xeb\x3b\x53\xe5\x4a\x4b\ \xd9\xf6\xb5\x60\x41\xf1\x4f\xc1\x60\xc8\xf3\xcd\x1c\x70\x81\x00\ \x2c\x4b\x94\xb8\x8d\x56\x54\x09\xf7\x0f\x1f\x9e\x1b\x74\xf1\xa2\ \x1d\x02\xe8\xfe\x72\xdb\x99\x40\x4a\xca\x2f\x7d\x7d\x9b\x68\xf6\ \x1d\x00\xed\xf0\x7c\x83\xcc\x79\x0c\x92\xe7\xc3\x38\x70\x4c\x16\ \x7b\x6c\xeb\x43\x2d\x7a\x1e\xa5\xb4\x1d\xe8\xd7\x6f\x07\xee\xf5\ \xbf\x27\x19\x1c\xab\x7f\xb4\xdc\x7a\xa7\x5f\x1e\x2a\x83\xfb\x2e\ \x2b\xa1\x80\xb3\xf3\xe6\x4d\x40\x70\xf8\x33\xb6\x99\xe1\x28\x5c\ \x9d\x1a\x17\x11\xf1\x07\x4a\x64\x76\x22\x55\xec\xe5\xc6\x5a\xb5\ \x1e\x6b\x86\x1a\xd0\x2b\x40\x1d\x60\x97\xfd\xc0\x43\x48\xf0\x95\ \x32\x43\xd6\x94\x28\xf1\x4a\x8e\xb7\xd2\x81\xcf\xd5\x49\xd6\xd7\ \x95\xf8\x0e\x83\x1b\xa0\x7c\xbe\xad\x8d\x1a\x5d\x26\x47\x8d\x48\ \x67\x30\xd8\xf8\xf2\xa1\x3a\x7c\x1b\x9c\x26\x31\x4a\xea\x17\xb6\ \x9c\x2e\x38\x1b\x59\xbe\xbd\x7b\x77\x0d\x29\x73\x69\xbc\x5b\x4f\ \xb3\x1a\x61\x99\x81\xc1\x53\xa7\xfe\xfd\xc7\xc5\x86\x85\xcd\x25\ \x37\x7c\xd0\x85\x0b\x6d\x7f\xe0\xca\x0b\x03\xac\xd2\x41\x74\xbe\ \x95\x95\xe9\x94\x40\xad\x52\xf2\x32\x97\xe0\x92\x5e\x5b\x67\x06\ \x1b\x5d\xe5\x84\x98\x18\xe3\x0b\xe6\xe6\x07\xd0\x7a\xd8\x8f\xce\ \x72\xc8\xcc\x58\xac\xdd\x88\x43\xca\x96\xa7\xc0\xb9\xe2\x7d\x62\ \xf2\xe4\x93\xd8\x8a\xaa\x4b\x6b\x90\xc9\xd1\x4a\x26\x4b\x37\x14\ \x1a\x30\x11\xa2\x2b\x55\x24\xfc\x20\xa9\x72\xc6\x64\x68\x48\x93\ \xbb\x46\x57\xb4\x57\x3e\x22\x8d\xad\x15\xf8\x42\x9e\x0d\x3f\x81\ \x83\x04\x83\x91\x2e\x59\xfb\x72\x3b\x96\xf8\xf1\xe3\x32\x5c\xa7\ \x08\x80\x3c\x7e\x24\x87\x20\x63\x5e\x4f\xe1\xbd\x8c\x44\x61\xab\ \x39\x9e\xf7\x08\x7f\xfa\x74\xc5\xb9\xf9\xf3\x0f\x45\x05\x07\x37\ \x48\x65\xc5\xc8\x4b\xc9\xc3\x60\x1c\xf5\x0a\xd7\xf5\x44\x70\x19\ \x34\x0f\xf2\x34\x31\xd9\x41\xc6\xe5\xf6\xc7\x1f\x8e\xb8\x5a\x80\ \x9f\x35\xb6\xd1\xef\xb0\xcd\x36\xc7\xfd\x1c\x70\x98\x5a\xf5\x9d\ \xc1\xf8\xa7\x31\x2e\xd9\xf5\xc6\x48\x1a\xce\x66\xf9\xcd\x7e\x9e\ \x56\x80\xb3\x73\xe6\x1c\xc1\xb3\xf6\xf2\xdd\xa2\xe0\xaf\x60\x3d\ \x0d\x43\x1b\x8d\x77\x7f\xc7\x35\x9b\xcb\xb0\x61\x53\x91\xab\x79\ \x8a\x12\x91\x85\x8e\x42\x26\x3d\x1f\x24\xfd\x97\xbb\x07\x0e\x6c\ \x45\x1c\xd2\x54\x86\x18\xa2\xa5\x91\x3d\xc1\xd9\x35\x11\x69\x70\ \x1f\xa3\x43\x43\x57\xc4\x7e\xf8\xb0\x04\x0e\xa5\x00\xb9\xe2\x5d\ \x4c\x57\x75\x34\x06\x63\x7f\xaf\x5e\x3f\xe3\x9b\xff\x81\x52\x6b\ \x77\x7a\xfa\xf4\x03\x81\x81\x81\xdf\xf4\x00\xe2\x9d\xb3\x72\xfb\ \x75\xf3\xe8\xef\xbf\xff\x2e\x93\xa6\x4b\x0a\x1d\x84\xb1\x10\x46\ \x52\xfb\x32\xc5\xb6\x42\x85\xe7\xc8\xbc\x19\x6b\x9a\x2d\xdb\x22\ \x25\x39\x00\x09\xd0\x67\x50\x97\xe7\x4e\xf7\xe4\xfd\xc4\xe7\xe8\ \x0c\xe6\x83\xca\xf4\x5e\x59\x91\xe0\xef\xd8\xad\x9b\xfa\xb3\xc9\ \xde\x79\xff\x1c\x0c\x0e\x9c\xe3\x0f\x71\x9a\x97\x99\x99\x13\x55\ \x19\x48\x63\xba\xaa\x34\xef\xd0\x06\x64\x1e\xda\xec\xee\xdc\xf9\ \x2a\xbd\x87\xd2\x9f\xd3\xba\xae\xb8\x75\x72\xea\xd4\x15\x38\xaf\ \x86\x93\x01\xc1\xdb\x6a\x8d\x1a\xc1\xaa\x0e\x4d\x9b\xde\xba\x6e\ \x6f\xbf\xf3\xed\xbd\x7b\x2b\x11\x1a\x89\xc5\x19\x35\x04\x29\x62\ \x73\x94\x50\x83\x55\x99\x32\xd3\xe9\x7d\x5a\x11\xe9\x9c\x8b\x9f\ \x3b\x81\x51\xe0\x22\xda\x7a\x8b\xf4\x00\x83\xfb\x81\xa3\x95\xb0\ \x89\xcb\x90\x21\x1e\x88\xbf\xc5\xac\x2e\x51\x62\xd0\x37\xde\xcd\ \x69\x5d\xa6\x8c\x1f\xc5\xf0\x9e\xb9\xbb\xdb\xe2\xbe\xa0\x8e\x7f\ \xb6\xba\xf4\xb9\x50\x06\xe4\x86\xaa\x84\xc9\xb8\xcf\x85\x78\xe4\ \x02\xa4\xc4\x2d\x5c\x91\x2f\xdf\x3e\x72\x0a\xf9\x3b\x3a\x6e\xc7\ \xf8\xcf\x42\x02\xdb\xcb\x7e\x64\x70\x90\x7b\x30\xa5\xf3\x2d\x56\ \xc9\x6d\x74\x2f\x57\x76\x57\x91\x5e\x60\x70\x08\x01\xec\x4b\xd9\ \xf8\xb8\x8e\xd4\x38\x07\xd5\x07\x0d\x14\x39\x73\xa5\x1e\x0d\xef\ \x0c\x49\xe5\xcc\x94\x53\x47\x3f\x57\x1f\x70\x84\xfc\x0c\x0f\xc8\ \x89\x02\x7e\x41\x6c\xf2\xb6\x14\xb4\x55\x69\x7c\x86\x66\xea\xf3\ \x5d\xd1\xa2\x8f\x70\x8d\x57\xb6\xa4\x47\xc7\x8e\x3d\x7d\x7a\xe6\ \x4c\x1b\xac\x8a\x4e\x18\x3b\x07\xd6\x11\xe9\x04\x06\x77\xcd\x29\ \x22\xcf\x41\x95\x14\x25\x2d\xa9\xfc\xfc\x88\x1c\x0e\x10\xa3\xb5\ \x50\xde\x51\x40\xed\xac\xe4\x1f\xf2\x65\xbc\xa7\xb3\x49\xc5\x27\ \xa6\x4c\xe9\x8b\x34\xb1\xe7\x64\x48\xc8\xbc\x79\x06\x63\x2b\xa7\ \xe5\x68\x69\x42\xcf\x64\x48\xe4\xaa\xdf\xd6\xad\x9b\x64\xbd\xdd\ \x14\x22\x62\x9a\xe7\xe8\xb9\xec\x87\xb7\x5c\xa4\x27\x18\x0c\xe8\ \x8d\xac\x32\xcf\x95\x2b\x42\xd9\x56\x39\x0f\x1a\xe4\x49\x21\x86\ \xd4\x1a\x34\x22\x76\xf7\x9a\xde\x81\xe7\xef\x24\xae\x5b\xc1\x66\ \x3a\xb8\xe2\x95\xc6\x99\x6d\xb6\xc7\xc2\x85\x2e\xa7\x67\xcc\xd8\ \x47\xdb\x64\x0a\x8f\x28\x31\x45\x18\x11\x49\x37\x24\xdf\xda\xb5\ \xcb\x41\x1a\xda\x68\xb0\xb2\x12\x40\x47\x22\x78\x94\x65\xc9\x92\ \xef\x50\xa5\x71\x0f\xe7\x5e\x3f\x8d\x26\x2b\xe9\x72\x9e\x65\xf0\ \x8a\xd7\x10\xce\x12\xb3\xfd\xbd\x7b\x53\x69\x4f\x32\x79\x33\x61\ \x50\x5b\xb4\x65\xec\x70\x3f\x58\x51\xe1\x5a\x53\xaa\xd4\x13\x2a\ \x01\x92\xba\x9a\xed\x74\xd0\xe8\x72\x82\xed\xc0\x3f\xc0\x22\x24\ \x27\x0f\x26\x83\xc7\xe4\x96\xd9\x47\x6e\x35\x8d\xb4\x3e\xe3\x28\ \x7a\xee\x36\x6d\xda\x71\x38\x9b\x66\xa3\x37\x9e\x39\x85\x59\xf0\ \x7b\xb7\x68\xab\x0a\x76\x11\xe9\x00\x06\x1b\x5d\x41\xf0\xd7\x17\ \xde\xde\x6b\xe9\x9b\x5d\x86\x11\x96\x6b\x26\x06\xc3\xb8\x82\x2d\ \xf2\xe4\x89\x80\xe4\xf9\x72\x5a\x19\x42\xaf\x5f\xb7\x81\x87\x30\ \x12\x46\xfa\x46\xe8\x38\x8e\x8d\x19\xf3\xd3\xfa\x6a\xd5\xfc\x94\ \x55\xdc\xf9\xd7\x5f\x3d\xde\x3c\x7d\x5a\x3c\x95\x8c\x95\x1b\xa4\ \x15\xfa\xe1\xc9\x13\x63\x7c\xfe\x3d\xf8\x6c\x41\x26\x42\xfc\xb2\ \xa9\x6e\xdd\x29\x18\x8f\x91\xdb\xef\x2d\x22\x9d\xc0\x60\xc3\x2b\ \x0f\x4e\x24\xa1\x1f\xe8\xa5\x50\x31\x28\x89\x19\xcd\x07\xf7\x91\ \x11\xba\x2f\x58\xe0\x8a\xe7\xdd\xc1\x22\x60\x05\x78\x34\x5f\x50\ \xed\x5d\x74\x74\x74\x11\x1d\xff\x5c\xb9\xc0\x71\x14\x2e\xc0\xea\ \xfc\x56\x1a\xde\x32\xa1\x01\x32\x2c\x1a\xa7\xb0\x02\x44\x9d\x14\ \xe3\xa4\xea\xfa\x09\xc8\x57\x6d\x4d\x2b\x3b\x09\xf6\x42\xc6\x7d\ \x33\x25\x18\xe0\x59\xe1\xf4\x12\xb3\x65\xb0\xc0\x51\x03\x19\xa3\ \x32\xc0\xd6\xf1\x85\x2c\xe7\x49\x40\x42\xb4\x89\x92\x85\x8f\xb1\ \x36\x34\xbe\xab\x53\x27\x5f\x8c\xd5\xd4\x4c\xb5\x82\x83\xa5\x36\ \x9e\xe5\xd7\xc1\xcf\xd5\x10\x65\x40\xf3\xcf\x9b\x98\x1c\x7a\x74\ \xfc\xf8\x58\xad\xed\xe4\x6e\xe5\x73\x92\x87\x13\x61\x85\x70\xba\ \x0f\x38\x74\xc8\x04\xd7\x4b\x38\xf7\x25\xdd\x3b\x78\x90\x2a\xed\ \x17\x82\x25\x31\x16\xa8\x08\xf1\xa6\x9b\x68\x2d\x83\xf1\xfa\xf6\ \xed\x11\x14\x0c\xa7\x32\xa0\xed\xcd\x9b\x2f\x55\x32\x33\x60\x50\ \xb7\xa9\xe9\x08\xb4\x34\x57\x91\x6b\x7e\x81\x10\x85\xb0\x12\x9e\ \xd0\xe8\x21\x10\x87\xab\x83\xae\xad\x02\xa4\x7c\x26\xb3\x4e\xfa\ \x0a\x09\xca\x17\x85\xd1\x24\x28\x15\xf5\x70\xb8\xec\xb5\xfb\xe9\ \xa7\x67\x54\x85\x6e\x5f\xbf\xbe\x2b\x8d\x1f\x1b\x37\xee\x38\xad\ \x92\x4a\x32\x00\x2a\x2d\x86\xad\x2c\x50\xe0\xb5\x5c\x09\xfd\xd3\ \xb3\xd3\x2b\x83\x65\x1e\x86\x42\xbe\x61\x05\xae\x23\x61\x48\xb3\ \xc1\x68\xd9\x92\xf8\x34\x6d\x31\xe5\xf9\xc7\x8b\xc6\x50\x02\xe4\ \x8b\x1c\x4c\x67\x6c\xc5\xee\xc8\x34\x2b\x7f\x5d\xcf\xe0\x80\xc1\ \x8c\x00\x53\xcc\xf5\xf5\x3f\xd1\xb6\x93\x1c\x26\xa4\x23\x43\x4a\ \xd8\x14\x3e\x40\xd2\x33\x75\x03\x9a\xaf\x99\x08\x40\x5b\xea\x67\ \x9e\x9e\x6b\x94\x7e\x78\x44\xda\x7a\xcf\x16\x22\x8f\x48\x07\x30\ \xd8\xf0\x2a\x81\x46\x96\x65\xca\xd4\x41\xb6\x86\xba\xae\x6e\x77\ \xc7\x8e\x54\xe8\x99\x5b\x4a\xf4\xa5\x10\x21\xf8\x1a\xee\xbe\x70\ \xa1\x3d\xc6\x17\x28\xb9\x8c\x88\x6d\xcd\xd5\xf5\x6c\x9c\x8b\xcb\ \x97\xef\x78\x78\xf4\x28\xc5\xe4\xa6\x20\xdf\xb2\xa1\x62\x44\x28\ \xe6\x7d\x47\x89\xcf\x18\xaf\x2a\xb4\x00\xa3\x3c\x44\x5e\x5d\xd2\ \xde\xdc\xd1\xb2\xe5\x0d\x32\x52\x8b\x02\x05\xea\x89\x74\x04\x83\ \x0d\x2f\x2f\xea\xef\xe6\x9d\x98\x38\xf1\xa4\xaf\x9d\x1d\x95\x02\ \xa9\xc8\x5d\x2e\xdd\xed\x57\xd6\x56\xa8\xf0\x48\x7a\x39\xdd\x2f\ \x5a\x58\x8c\xa2\x2d\x9a\x4d\xf9\xf2\x57\x7e\x00\xdd\x98\xa6\x52\ \xc6\x2f\x17\x0c\xed\x37\x29\xce\x94\x44\xa2\x4c\xa9\xc5\x25\x69\ \x0b\x49\xab\x1f\x19\x9a\xdc\x6a\x8e\x4a\x4e\x4c\x34\xc3\xb5\x8b\ \x4c\x19\x3b\x44\xff\x9d\xf4\x28\x03\x62\xb0\xd1\xe5\x01\x7b\x82\ \x63\xc0\xec\x94\xb9\x4f\xcd\x48\x50\x00\x7b\x3f\xe1\xe3\xc7\x99\ \x30\xb4\xfd\xf0\xea\xbd\xa6\xd8\x17\x9d\xfd\x36\xd7\xaf\x7f\x8f\ \x3c\x7b\x3f\x50\x05\x79\x71\x24\x42\xfb\x9e\x9a\x31\xe3\x98\x0c\ \x8c\x67\xd3\x4e\x02\xa0\x8a\x0a\xc4\x2b\xe3\x94\x5e\x78\x02\x90\ \xa5\x51\xf9\xe8\xf7\xf1\xb9\xdf\xc8\x55\xd2\x1b\x6c\x28\xd2\x13\ \x0c\xc6\x8e\xd6\xad\x3d\x94\x95\xed\xfc\xe2\xc5\xa3\x29\xa9\x18\ \xf1\xae\x53\x08\xa2\x7f\x22\xaf\x20\x6d\x3d\x7f\x30\xa5\xb4\x51\ \xb2\x3c\x29\xbf\x46\x0e\xe6\x00\x5a\xb1\x70\x1d\x0b\xa6\x1c\x19\ \x35\xea\x2c\x7d\xf1\xa4\x62\xb0\xe5\xb1\xb2\x27\xae\x2e\x52\xe4\ \x03\xae\x9f\xc8\xeb\x09\x62\x38\x9d\xc0\x60\x24\xc5\xc5\xfd\xb2\ \xbf\x4f\x1f\x92\xeb\x53\xd7\xa8\x61\x65\xbb\x8f\xb3\x90\x23\x32\ \xf7\xad\x92\x3e\x7d\xfa\x23\x8d\x2b\x4c\x13\x92\xf0\xcb\x6a\x67\ \x0b\xad\x56\x1a\x41\x71\x27\x8d\x15\xeb\x2d\x82\xfe\x6f\x49\xda\ \x82\x56\xfb\x54\x02\xe8\xea\xb3\x1d\x6d\x47\xf1\xf9\xad\x6d\x8d\ \x8c\x14\x99\x87\x99\x22\x1d\xc1\xe0\xf8\x5d\xf7\x37\x77\xee\x58\ \x51\x3f\x38\xfc\x41\x3e\x87\xd1\xc5\x1e\x19\x37\xae\x59\x5a\x15\ \x94\x61\x70\xeb\xa4\xd7\xef\x09\xae\x65\x85\x0e\xe0\x5d\x40\x40\ \x3d\xac\xd8\xe7\x69\xc5\x22\xe3\x59\x5f\xb5\xea\xd3\x07\x87\x0f\ \xf7\x48\xe5\x6c\xd7\x9a\x9e\x3b\xb6\x6e\x7d\x5d\x36\xd5\x2c\x47\ \x0d\x59\x90\xa5\x13\x8b\x5c\xd4\x0f\xe9\x1e\xb3\x63\xb0\xa8\x11\ \x38\x08\x5c\x2c\xf5\x55\xd2\x1c\x9f\x82\xa7\xf3\xa0\xe2\x25\xdc\ \xdf\xbf\x7f\x43\x1d\xca\xcf\xec\x47\x2b\x16\xa4\x1c\xee\x4a\x4d\ \xcf\x68\xe5\x7c\xa6\xc4\x27\x31\x76\x0b\xc5\xbb\xb1\xef\x1f\x3e\ \x5c\xad\xc8\xfd\xe1\xaa\x8f\x33\xe1\x65\x32\xc4\x8b\x56\x56\xe5\ \x04\x83\x91\x41\xe9\x54\x75\xc0\x7c\x22\x0d\x40\x88\xe1\x67\x45\ \x3a\x81\x88\x9e\x78\xbd\x84\x04\x62\x0b\x14\x60\x2f\x92\xc5\x86\ \x57\x0e\x1c\x77\x6b\xe7\x4e\x07\xc8\xb4\xdf\x70\x1e\x38\xb0\x8b\ \x52\x2b\x08\x8e\xd7\x88\x4f\xf6\x10\x1a\xc0\x0a\x77\x9d\x3c\xb6\ \x58\x29\x5b\x68\xac\xe4\x75\xc0\xb1\xd4\xf5\x35\x2b\x56\x72\x06\ \x43\xa5\x4e\xa3\xd2\xd3\x4b\x40\xeb\xe5\x37\xd4\xe1\x95\xdc\xf5\ \x1a\x75\x6c\x4f\x65\x2b\xe2\xb1\x3a\xb0\xe2\xd5\x03\x67\x82\x43\ \x28\xd8\x2d\x6b\x05\x93\xd5\x67\xbb\xd8\xd8\x45\xd2\x49\xa4\x18\ \x56\x49\x6c\xaf\xe3\xa8\x31\x0b\xc6\x1b\x4b\x1d\x4d\x27\x25\x2b\ \x47\xa3\xfe\x6e\x3d\xeb\xab\x30\x32\xd3\x1d\xff\xab\xd2\xd9\xd5\ \xa6\x5c\xb9\x17\xa4\xc3\x12\x1b\x19\x59\x0f\x63\x4b\x28\xc4\xa0\ \xac\x7a\x72\x05\x2c\xad\x0b\xe2\xae\xb2\x6f\x9d\x6a\x7d\x8d\x1a\ \x9b\x28\xdf\x12\xfc\xb2\xb6\x52\x25\x8a\xc1\x15\x97\x45\xbe\x15\ \x60\x48\xf7\x29\x23\xc5\x7f\xfb\xf6\xed\xb1\xb1\xb1\x94\x87\xe9\ \x02\xa6\x20\x91\xfa\x36\x72\x3a\xd7\x93\xbe\x0a\xad\x96\x8a\x4c\ \x3b\x15\x03\x8b\x0c\x06\x83\x8d\x2d\x37\xf8\x02\xf1\xbb\x70\xea\ \xec\x6a\x9e\x3b\x77\x28\xf5\xc7\x43\x96\x8a\x9f\x14\x35\x8a\xa5\ \x2b\x4a\x65\x1e\x52\x73\x47\xbb\x4a\x95\x1c\xa4\x01\x1e\x05\x4b\ \xeb\x80\xe1\xb5\xa2\xfe\x0e\xf4\xef\x93\x86\x93\x40\x82\x4d\x60\ \x38\xdd\xbb\x0e\x1b\x46\x92\x83\x63\x95\x2f\x95\x6d\x4d\x9b\x5e\ \x91\x81\xf2\x81\x60\x5b\x70\x02\x54\xd6\x2e\x2b\x5f\x28\x14\x3c\ \x17\x19\x04\x06\x1b\xdb\x32\xac\x02\x6f\x34\x3b\xbb\x92\xe2\x96\ \xb2\x9a\x41\x51\xf9\x2c\x0c\x4c\x2d\x65\x4e\xc6\x86\xe7\x5d\x1f\ \x9f\x3d\x5b\x8f\x56\x0d\x99\x11\xb2\x55\x47\xce\xad\x15\xc1\x49\ \x74\xbe\x43\xbf\xbb\xab\xe8\xe2\xfa\x00\x32\x0e\x3e\x3e\xd6\xd6\ \x3b\x65\x95\x41\x71\x0a\x2b\xa0\xa4\x29\x3a\x2e\x2c\x8c\x8c\xad\ \x81\xd0\xc0\xd9\xb9\x73\x27\x4b\x63\xa4\xdc\xcd\x46\xf8\x79\x15\ \x8c\x6f\x65\xba\x56\x5e\x30\x18\xab\x8b\x17\xef\x85\x00\xb9\x3a\ \x21\x1a\x5b\x2b\x7f\xe7\xc9\x93\xf3\xae\x2e\x5a\xf4\x1e\x09\xb8\ \x5e\xb5\xb3\xdb\x75\xd1\xdc\x7c\x1f\x3d\x43\x7f\xf3\x4b\xe4\x01\ \x55\xf2\x1f\x91\xcd\x1f\x83\xc2\xd2\xa7\x90\x54\x98\x86\x7b\x15\ \x75\x08\x52\x84\x6c\xb3\x58\x8c\xb7\xa1\xd4\x48\x31\x95\x9c\x04\ \x1a\x51\xe5\x04\xf8\x15\xf1\xc9\x6b\xb8\x6f\x23\xab\x2e\x7a\x51\ \xa5\x85\x52\xb5\x80\x8a\x0c\xef\x88\xe7\xcf\x57\x92\x54\x04\xbe\ \x48\x76\xcb\xd5\xf2\x2d\x38\x3a\x5d\x3e\x17\x83\x41\xee\xf3\xb0\ \xc0\xc0\xe5\x08\x94\xfb\x22\x24\xf0\x1c\xa5\x31\xc5\x92\x93\x93\ \x7b\x51\x85\x42\x5c\x64\xe4\x0c\xac\x6c\x41\x1a\x32\xed\x85\x84\ \x04\x0a\x42\x83\x71\x5e\x7a\x41\x2b\x05\x79\x09\x11\x6c\x56\xb6\ \x73\xbe\x60\x71\x1d\x91\xa0\xcf\xaf\xd1\x58\xc4\x80\x56\x65\xfb\ \x9f\x7f\x0e\x20\x2f\x2e\x25\x7d\xcb\x2c\x94\x30\x3c\x9b\x48\x06\ \x28\xd3\xe5\x3a\xcb\xec\x1d\x2b\x32\x38\xc4\xef\x94\xd5\xfe\x86\ \x89\x10\xcd\x45\x3a\x80\xc1\x46\x57\x0c\x1c\x2e\x57\x84\x26\x58\ \xdd\x5a\xe2\xfc\x16\x08\x27\x84\xab\xb6\x4c\xbb\x02\xa4\x4e\xdd\ \xa6\xea\x04\xd4\xa5\xcd\xc5\x3b\x21\x60\xca\x8a\x02\x05\xa2\xf0\ \xbb\xef\x56\x97\x2c\x49\x92\x7f\x8b\xa5\xe8\xad\xce\x00\x2b\xf2\ \x45\x69\x3c\xa6\x02\x70\x5f\xb4\x68\x35\x79\x36\x15\x83\x52\x56\ \x3b\xba\x92\x21\xe2\x33\xbe\x87\xe6\xcc\xf2\xc3\x23\x46\x9c\xc3\ \x39\x36\x5e\xae\x78\xfb\xd3\xeb\x73\x31\xd8\xf0\x4a\x83\xd9\x48\ \xc2\x0f\xf5\x69\xc1\x64\x44\x38\xcf\x25\xbd\xbc\x7e\x9d\x82\xe8\ \x39\x85\x06\x2c\x8b\x17\x3f\xaf\xd1\x7e\xeb\x39\x2a\x18\xf6\x24\ \xc6\xc5\xd1\x7b\xa6\x10\x02\x32\x53\x0a\x61\x41\x13\x5d\x51\xdd\ \xba\x7b\xf0\x60\x1f\x48\x38\x84\x49\x03\xdb\x75\x70\xc0\x80\x09\ \xa8\xb2\x50\x1b\x21\x2a\x2d\x6e\xec\xed\xd6\x4d\xe9\x0b\xb1\x96\ \xc6\xce\xcc\x9a\x75\x14\xfa\x31\xbd\xae\xae\x5f\x3f\x1d\x15\xf7\ \x96\x78\x27\x88\xc6\x97\x66\xcf\x3e\x5f\x30\x18\xe9\x79\x16\x8a\ \x8f\x8c\x9c\x87\x34\xb1\x73\x70\x3e\x44\x1d\x1e\x39\x72\xa2\x90\ \x50\x56\x00\x6a\xb9\x8c\x7a\xb5\x48\x24\x4b\xef\xa5\x3e\xe8\x32\ \x2e\xd6\x04\x2c\x05\xbd\x95\x81\x64\x70\x08\x38\x2b\xbd\xf3\x26\ \xea\x4a\xed\x5d\xe4\x8b\x17\x73\x51\x41\x11\xa0\x19\x87\x93\x1a\ \x9a\xa6\x60\x2b\xd2\x00\xc5\x58\x92\x74\x08\x25\x52\x58\x01\xbc\ \x15\xe4\xe5\x55\x9e\x1c\x2e\xb4\xaa\x53\xf3\x4d\xbc\xab\x68\xce\ \x0c\x4a\x97\x32\x20\x06\xd7\xde\x81\xbd\xc0\x25\xe0\x10\xd9\x46\ \xeb\xac\x5c\xb1\x36\x83\x29\x54\xfc\x29\xe5\xf0\xea\x83\x7a\x1a\ \x09\xc4\xa7\xc9\xab\x89\xf2\x19\x4b\x92\x3b\x8f\xfb\xf0\x81\x24\ \xce\xab\xd1\xaa\x82\x6b\x7d\x1d\x28\x6f\x1a\xf5\xcc\xc3\x63\x1d\ \x2a\x0e\x4e\x6f\x6f\xd1\xc2\xeb\xb1\x9b\xdb\x46\xa4\xc2\xd5\xa1\ \x95\x98\xfe\xed\x38\x8f\x26\x53\xa3\x4c\x88\xda\xbe\x24\xc3\x83\ \xcc\x85\xc7\x33\x3f\xbf\x02\xb8\x3f\x49\x5e\x50\xfc\x7e\x73\x8c\ \x57\xc1\xbb\x89\xd2\x68\x2f\xa5\xd7\xe7\x62\xb0\xe1\x15\x07\xf3\ \x51\xf5\x00\x9c\x27\x17\x95\x55\x01\xab\x58\x08\xe4\x10\xa6\xa4\ \x52\xaf\x46\x5a\x92\x5f\xb6\x36\x69\x72\x27\xf2\xe5\xcb\xfe\x38\ \x37\x39\xa1\xf1\x07\x69\x4e\x36\x83\x63\x25\x8e\x9e\x49\x21\xdb\ \xdc\x59\xec\xcd\xac\x0d\x8e\x00\x67\x81\xc3\x61\x30\x7b\x49\x98\ \x48\x6d\x60\x9d\x3a\x5d\xc1\xd8\x38\x68\xaa\xdc\xa0\x15\x5e\x3a\ \x8c\x0a\xca\x2f\xa0\x89\x20\x79\x38\x4f\x92\x61\xd2\xbb\x94\x9d\ \x23\xb3\x55\xb6\xa5\x5b\x0c\x8f\xc1\x80\xf7\xb2\x3f\xc5\xea\xa0\ \xaa\x15\x49\x46\x07\x4f\xe5\x65\x52\x56\xd6\x2a\x8f\xb1\xa6\x67\ \x97\x57\xae\xdc\x8f\x70\xc3\x75\xa9\xad\xf2\xc1\xcb\xcb\x2b\x3b\ \xa4\xfe\x9c\xe4\x7d\x92\x59\xce\x9c\x7d\x85\x0e\x01\xd9\x2a\xbd\ \xb0\x65\x54\x9f\xef\xd0\x3a\x3a\xd8\xa1\x55\xab\xb6\x57\xd6\xad\ \x6b\x4c\x1a\xa0\x41\x97\x2f\xf7\x25\xcf\xab\xac\xd5\xcb\x81\x03\ \x5c\x01\x5a\xdd\x70\xe6\xa3\x50\xc9\x6c\xca\xce\xd1\x48\x13\x8b\ \x02\xe7\xa4\x57\x2f\x08\x06\x77\x03\x6a\x43\xd9\x28\x48\x1c\xf6\ \x44\xce\xa5\x1f\xae\x05\x34\x33\x56\xb0\x8a\x45\x22\x46\x17\x8f\ \x95\xe1\x2d\xad\x66\xb2\x9c\x26\xd0\xdb\xd2\xb2\x1e\x56\x82\xb7\ \x64\xac\x48\x8a\x5e\x43\xd9\xff\x26\x42\x34\x92\x0d\x2b\x7b\xe8\ \xc0\x67\x2b\x83\xcf\xb5\x84\x8c\x87\xce\x6e\xb4\x62\xe1\x4b\xc1\ \xf1\xe1\xf1\xe3\xbf\xe1\x33\xdd\xa3\x15\x4d\x68\x00\xa9\x62\xd3\ \x92\xe2\xe3\x4d\x4f\x4e\x9f\x5e\x1d\xde\x5c\xea\x02\xfb\x0a\xbd\ \x12\x76\xc0\x99\xf4\x4a\x1a\xde\x3a\x91\x1e\x60\x30\x64\x7c\x6b\ \x00\x68\xaa\xd9\x9f\x5c\xa9\xc6\x96\x0e\x87\x4f\x54\x9b\x47\xf7\ \x94\x36\x05\xaf\x27\x15\xc8\x26\xcb\x33\xd0\xaf\x60\x71\xd2\xd0\ \xc4\x7b\x8a\xd7\xf0\x2c\xae\x35\x74\x40\x25\xad\x7f\xe8\xb5\x6b\ \x36\x70\xac\xdc\x26\xc7\x8a\x92\x47\xea\x3a\x62\xc4\x4e\x5a\xdd\ \xb4\x4a\xa1\x6a\x49\x39\x42\xa5\x35\x57\x1f\x74\x03\x7a\x4a\x7a\ \x2c\x81\x67\xce\xcc\x90\xe7\xda\xf4\x03\x83\x65\xfc\xb4\xb6\x93\ \xb7\xa4\x77\x32\xf6\xee\xfe\xfd\x5b\xdc\xa6\x4c\xd9\x43\xf7\x48\ \xb1\x7a\x2d\x73\x1a\xdd\xe4\x19\x28\xbb\x92\x7c\x1c\x15\x12\xb2\ \x64\x43\x8d\x1a\x8f\xa5\xa1\x26\xc1\xf0\xec\x68\xcb\x96\xc5\x86\ \x67\x08\x8e\xa7\x84\x67\xcb\x12\x25\x42\xd0\x70\xf2\x25\x44\x6c\ \xe7\x69\x87\x46\xb0\x42\x37\xd0\x68\xcd\x35\x0e\x8e\xa2\xf6\x64\ \x9c\x07\xfb\xf5\xbb\x80\xfb\x0c\x4d\x82\x66\x30\x54\x9b\xea\xd5\ \x5b\x84\xf3\x4f\x08\x5c\xe8\x76\xf4\x07\x8b\xad\xa5\xbd\xb2\xe2\ \xc1\x79\x72\x07\x4e\x96\x85\xda\xad\xb8\x7c\xb7\x6e\x2d\x8b\xb3\ \x53\x38\x55\x27\x6c\xa8\x59\xf3\xbe\x92\x14\xad\x23\x55\xf4\x3f\ \x23\x75\x6d\x2e\x55\xd2\x93\x27\x56\xa3\x9b\x4f\x79\x29\x45\x7f\ \x99\x1c\x26\x74\xce\xa3\x5a\x3d\x8c\xe7\x47\xee\xe9\xb1\xf8\xa8\ \x28\x53\x5a\x2d\xff\x8b\x89\xb9\xad\x44\xa6\x81\x21\xc3\x03\x8b\ \x65\xd6\x4a\x4e\xc5\x69\x42\xc6\x14\x11\x14\xb4\x4a\x91\x65\xd7\ \x5a\x15\xcd\xe9\x1d\x6a\xcd\x8c\xe7\xf3\x6e\x6c\xde\xec\x18\xe0\ \xec\x4c\xa1\x88\x1c\x18\x37\xcc\xea\x74\x2a\xaa\x18\x07\x9b\x69\ \xa4\x88\x6d\x92\x2b\xb1\x1b\x7d\x36\x3a\xcb\xd2\x36\x54\xe3\xfd\ \x51\x60\x13\xf1\x5f\x04\x26\x3c\x48\x5d\x0f\x25\xc4\x2c\x91\x99\ \xe0\x6e\x40\x7a\x52\xae\x41\x1d\x8f\x93\x7d\x01\xba\xa5\xa6\xb0\ \x45\x6d\xb7\x90\xc1\xf1\x04\xcf\xa7\x4b\x29\x85\xc6\xb2\x6c\x86\ \xaa\xb8\x15\xb9\x87\xc3\x60\x45\xa1\x03\x38\xfa\xfb\xef\x35\x90\ \x6f\x7a\x5b\x59\xb9\x91\xf6\xe5\x16\x19\x14\x44\xaa\xd0\x0c\x2a\ \x2d\x41\xae\x9f\x72\x3e\x98\x27\x32\x1b\x6c\x7c\xad\x43\xae\x5e\ \xb5\x95\x62\xad\x7a\xd2\xc8\xf2\xa6\xa6\xb0\x85\xe7\xd5\x85\x16\ \xd6\x55\xab\xb6\x40\xd9\x92\xca\x7e\x78\x4b\xc1\x6c\x3a\x10\x38\ \x9f\x78\xc5\xd6\x76\x0f\x3c\x92\xef\xff\xe9\xdf\x16\xad\xe2\xa4\ \x92\xf6\xaf\xe8\x06\x44\x5b\x14\xc8\xa9\x2d\x41\x90\xf6\x15\xf6\ \xda\xf1\x9c\x82\x93\x25\x01\xe6\xc6\x60\x41\x69\x6c\x0d\x29\x7e\ \x05\xba\x82\x23\xc9\x90\x90\x95\x7f\x4d\xe9\x7b\xae\x40\x31\x4c\ \xc4\xeb\x5e\xa3\x10\x36\x9c\x56\x48\x5a\x05\xa5\xe1\x1d\xd0\x91\ \xcf\xf5\x0b\xc9\x39\x50\x5c\xf2\x99\xbb\xfb\xd0\x7f\x60\x70\x13\ \xa5\xd1\xbe\x06\x7b\x89\x1f\x1d\x81\x81\x81\xfa\xc8\x62\x7f\x09\ \x46\xc5\xc7\xc7\x1b\x8a\x2c\x03\x83\x82\xc1\xeb\xab\x57\x77\x85\ \x21\x7d\x96\xc2\xb5\x5f\x42\x7c\x7c\x6c\xa4\xc2\x96\xf6\xbb\x2b\ \xc0\x14\x28\x49\x1f\xa0\x98\x5d\x42\x74\xf4\x4c\x1b\x23\xa3\x97\ \x34\x66\xa6\xaf\xdf\x56\x47\x56\xf0\xdc\x60\x57\xb0\x9b\xf8\x4e\ \xe0\xef\x72\x86\x6c\xd5\x15\x87\x52\x20\xf2\xf2\x66\x47\xb8\xa4\ \xaa\xf8\x51\x81\xe5\x7a\xb8\x74\x49\xbb\x6b\x1e\xda\xe5\x81\xbc\ \x3d\x29\x55\x89\x4c\x03\x83\x62\x55\x08\x26\x6f\x5a\x5b\xb1\xa2\ \x7a\xc5\x82\x27\x33\x1c\xf3\xd0\x5b\xcb\xd8\x2a\xd2\x16\x12\x95\ \xe6\x81\x78\x7f\x1a\xa8\x47\x84\x33\x65\xb6\xf4\x78\xee\x11\x3a\ \x86\x34\x0b\xe7\x6a\x97\x01\xa1\xbb\xed\xa7\xc8\x48\xb3\x55\x45\ \x8b\x5a\xca\x3a\x3d\x0a\xa9\x94\x14\x3f\x12\x60\x4c\x75\x31\x71\ \xaf\x90\xf5\xf0\x9e\xe4\xbf\xa9\x3f\x99\x54\xa7\x5a\xa7\x04\x34\ \x25\x1f\x64\xaa\xe1\xb1\xd1\x55\x43\x88\x60\xfa\x05\x0b\x8b\x83\ \xa8\x47\x7b\x07\xe7\xd6\x63\x2d\xcf\xa5\x7a\x15\x24\xc3\xd4\x14\ \xb2\x45\xc8\xe1\x17\xf5\x36\xb4\x55\x2b\x2f\xa1\x85\x99\x42\xe4\ \xca\x2a\xd5\x2d\x5a\x95\x40\x6f\x70\x56\x5a\x52\xba\x94\x32\xa0\ \x73\x73\xe7\x1e\xa6\x7a\x43\xf0\xe7\x33\xc6\xc6\xe5\x10\x4e\xf9\ \x28\x53\xe0\xae\xfc\x68\x5b\x98\x14\x8d\x0f\xd4\x42\x4e\xa6\x09\ \x8d\x61\xa2\x9f\x21\x13\xe2\xb0\x43\xf3\xe6\x3e\xd4\x43\x1a\x13\ \x1c\x83\x67\x43\xa8\x3c\x43\xfb\x2c\x41\xab\x24\xf7\x1e\xcb\x90\ \x1e\x02\x2d\x60\x78\x8b\xa0\x31\xb2\x8c\xb6\x95\x58\xe9\x3a\x53\ \x81\x27\x98\xe2\xd8\xb6\xad\x2f\xc6\x46\x08\x40\x3b\x93\xc5\xd3\ \xc4\x64\xb7\xbc\x2f\x0c\x5a\x91\x4c\x9e\x3c\xdf\xbd\x04\xcd\xb3\ \x22\x8f\x31\x3c\x28\xa8\x29\xbc\x97\x54\x25\xee\x87\xcf\xd1\x5d\ \xfc\x05\x94\x32\x20\x29\xd2\x94\x80\x1a\x3b\x63\xdc\x1b\x98\xe7\ \xc9\x33\x84\xc6\xd0\x5e\xf9\x26\x52\xc5\xac\x7e\xa4\xbe\x10\x02\ \xe9\x39\x3e\x54\x56\x0f\x35\x27\x12\x86\xc9\x2e\xcb\x2f\xc2\x20\ \x91\x16\x14\x17\x1e\x6e\x21\xf5\x2e\x66\x51\x79\x06\x2a\x95\x95\ \xda\x2d\x17\xad\x49\xee\xa3\x31\x99\x43\xd9\xf1\x92\xfe\x3d\x04\ \xc0\x06\x60\x0e\x72\xa4\x28\xf9\x97\x48\x0c\xbe\xfc\xe4\xcc\x99\ \x72\x1a\xbb\x95\xaa\x78\x16\x8c\x79\x8a\x46\x3d\xda\x54\x12\xa6\ \xc5\xbd\x5a\xde\x0e\x5b\x32\x7f\xa8\x2b\xbb\xc2\x6b\xf8\x50\xae\ \x0c\x1e\x52\xfc\x47\x95\xc9\xe5\x4c\x7d\x82\x2e\x5d\x9a\x8c\x6a\ \xf9\x03\x32\x4e\x57\xed\x4f\x16\x83\x33\x38\xc3\x52\xc7\x57\x17\ \x38\xf5\x94\xfe\x07\xcf\xc0\x97\xa4\x9e\x86\x2f\x21\xaa\x31\x1c\ \x0c\xe6\xfa\x91\x26\x73\x04\x6d\x4b\xa0\xb8\x3b\x9f\x0c\x8e\x26\ \x49\xc9\xed\x93\xf2\x68\x2a\xf9\x5e\xc9\x2d\x8d\x1a\xf9\xd1\xb3\ \xcb\x96\x96\xf6\x14\x03\xd2\xf4\x48\xa1\xc8\x72\xa7\xa2\x6d\x41\ \xfa\xf5\x22\xc3\xc0\x52\x0f\xa4\x13\x89\x06\x1c\x21\x72\xc5\x0a\ \xc6\x75\x31\xae\x33\xc1\x70\x72\xb2\x5c\xb1\xb1\xd9\x23\x7b\xa0\ \xef\x00\xbf\xee\xeb\xd1\xc3\x53\x4a\xde\xcd\x02\x17\xa1\xda\xfc\ \x38\x6d\x47\x65\xdb\x65\xcb\xac\x48\x82\x06\x47\x5d\x30\x33\x9b\ \x86\xa4\xe6\xcb\x30\x20\x5b\x18\x53\x41\x8d\xed\xf2\x7c\xdc\x87\ \x6a\x94\x01\x8d\xa7\xae\xaf\xe7\xe6\xcd\x3b\xac\xfc\x8d\x91\x11\ \x62\xbc\xcd\x8f\x3a\x89\xb5\xc1\x4e\xb2\x6e\x4b\x85\xf3\xdc\x6b\ \x7c\x03\xc5\x52\x1e\x9c\xd0\x00\x56\xc1\xf9\x94\x29\x4e\xab\x9e\ \xd0\xc2\x55\x5b\xdb\x7e\x08\x2b\x7c\xc6\x61\xfd\x09\x19\xaa\xc8\ \x48\xb0\xd1\xd5\xc4\x36\x73\x16\x4a\x79\x5c\xa1\x1e\xa6\xfe\xe6\ \x97\x5e\xbc\x77\x1e\xc6\xc6\x4e\xe4\x44\xb1\xaa\x50\xa1\x8a\xcc\ \x61\xa4\x9d\x8b\x31\xf8\xb3\xfc\xdd\x1c\x60\x2b\x6c\xed\x9e\xcb\ \x2c\x10\x0b\x5c\x0d\xc0\x1e\x54\x46\x94\xd9\x7f\x77\x30\xa4\x89\ \x3b\xdb\xb7\x5f\x4c\x7d\xc8\xc1\xb1\x52\x9a\xa2\x03\x0c\x4b\x1d\ \xbf\x43\x0e\x69\x60\x4c\x4c\x4c\x31\x0a\xf2\xdf\x77\x71\x19\x84\ \xb3\x6c\x22\xa5\xc6\xd1\xe7\x97\x89\xd2\x3f\x3e\x4e\x4e\x99\xb2\ \x8c\x14\x7a\xe9\xcc\x86\x89\x18\x06\xe6\x54\xfa\x46\x83\x26\x60\ \xf9\x54\x3c\x9d\xc7\x68\xf9\x0f\x3c\x75\x6a\x03\x9e\x57\x11\x19\ \x0a\x86\x34\x9c\xb6\xe0\x22\xca\xcb\x24\x91\x57\xd9\x9c\x64\x36\ \x48\x4d\xf8\xd5\x01\x71\x19\x30\x57\x14\xa0\x55\x42\x02\xca\xd1\ \x9e\xf4\xc7\x0c\xc3\x9d\x61\x9a\x2d\xdb\x60\x69\xb4\x8f\xc0\x6e\ \x59\xf1\x39\xa2\x42\x43\xa7\x38\xb4\x6c\x39\x4a\x59\xc5\x63\xde\ \xbe\x35\x3d\xd8\xbf\xff\x85\x8d\xb5\x6b\xdf\x80\xb7\xd6\x90\x02\ \xe7\xa0\x0b\x1d\x7f\x64\x56\x4e\xed\x7f\xd5\xb6\xe5\xa6\x83\x83\ \x03\x56\xba\x48\x45\x77\x50\xf9\x06\xd2\xce\x06\x27\x28\x2d\x7d\ \x77\x76\xe8\x40\xcb\xff\x30\x91\x99\x60\xc3\x33\x90\x3a\x93\xed\ \xe5\x35\x87\x00\xb0\xdb\x50\x17\xb9\x7e\x78\xfa\xf4\x77\xb9\x4d\ \x5b\x2f\xdb\x6b\xf5\x11\x40\x62\x6c\x6c\x5d\x59\x3a\x54\xd3\xd9\ \xd9\x59\x0f\x19\xff\xea\x2d\x9c\xe4\x29\x3a\x0f\x66\x45\xd9\x0f\ \x98\x5f\x23\xfd\x6d\x20\x68\x0a\x79\xc2\x89\x8a\xbe\x0a\xe2\x8c\ \xc1\x18\x1b\xfd\x6f\x9c\xc8\xaa\x28\xb7\x58\xe8\x63\x65\xb5\x67\ \x43\xf5\xea\x57\xb0\xcc\x5f\x74\x1e\x34\x68\xd4\x37\xdc\xbd\x01\ \xd8\x02\xc4\x84\x3f\x7f\xbe\x82\x8c\x55\x64\x39\x18\x76\x95\x2b\ \x8f\x97\x32\x0f\x27\x70\xcd\x86\x3e\xe6\xbd\x51\x6f\xa7\x7c\x81\ \x7a\xac\xab\x55\xab\x1a\xcd\xb1\x9c\xc3\x0e\x34\xee\xd0\xb4\xe9\ \x2d\x68\x93\x78\x63\x77\x93\x2c\xb5\x48\x6c\xc0\x82\x3a\xa0\x1b\ \xa3\x77\xdd\xde\x7e\x1b\x1c\x79\xea\x12\xa6\x7d\xdd\xbb\x77\xfe\ \xd7\xd6\x72\x81\xed\x64\xd2\xac\x29\x38\x41\xb6\x3d\x9a\xa6\x44\ \xfa\x31\x31\x7f\xd0\x64\x9d\x98\x3c\xf9\x24\x9e\x77\xd1\x32\xc6\ \x2a\xe0\x92\xcc\x6f\xe1\xc4\x88\x8c\x8c\x2c\x48\x32\x08\xd2\xc0\ \x36\x5f\xb6\xb1\xa9\x89\x04\x62\x73\x94\xf9\xc4\xc9\xe2\xd7\x3d\ \x02\x90\x5e\xe9\x7b\x38\xff\xc5\x7e\x78\xfc\x78\x15\x39\xd1\x48\ \x3c\x08\x67\xf1\x07\xca\xee\x86\x6a\xef\x74\xc1\xcf\x80\x32\xa0\ \x79\x4f\xcf\x9e\x5d\x4f\x0e\xa1\xff\x4c\x21\x25\x09\x7c\x52\x4c\ \x47\x29\x84\x04\xc3\x2d\x8b\x15\x7b\x85\xd5\x90\xbc\x9c\x06\x5a\ \x06\x37\x5a\x7a\xd2\xc2\x33\xbf\x84\x84\xf1\xfe\xf1\xe3\x21\x90\ \x66\x7f\x20\xe7\x20\x19\x46\x76\x47\x29\x97\x91\x4e\x07\x32\xb6\ \x29\x32\x9b\x25\x7e\x57\xa7\x4e\x5b\x70\x7f\xcb\x75\xe8\xd0\xbe\ \x57\xac\xad\xd7\xd2\x38\x7a\x10\x90\xb7\xba\xb4\x94\x3d\x6f\xa6\ \x03\x65\x40\xad\xc1\x32\xe2\xbf\x84\x80\x43\x87\xe6\xc3\x1b\xa9\ \x8e\xe7\x10\x31\x51\xbe\x71\x51\x51\x8d\x05\xa0\xa5\x69\x51\x0c\ \xe7\xc0\x68\x78\x3c\xa3\x1e\xba\xb9\xd5\x56\x14\xab\x44\xa6\x81\ \x9b\x4e\xc2\xb0\x46\x52\xb6\x0a\xbc\x92\x01\x58\xc5\xde\xa3\xee\ \x4e\xe9\xfd\x5d\x4f\x06\xc5\x3f\x20\xc1\xe1\x3d\x2a\xce\xdf\x2a\ \xf3\x79\xb0\x6f\xdf\xc1\x70\xa4\x2c\xc1\xbc\x45\x43\xc6\x6f\x35\ \xe9\x68\x6a\x24\x10\x3b\x83\xe5\x45\xa6\x82\x27\xb2\x2c\x38\x05\ \x5d\x57\xf6\x6a\xa8\xf4\xde\xd2\x3e\x68\x63\xcc\x98\x9e\x9d\x9d\ \x3d\x9b\x64\xc0\x3b\xe0\x7e\x88\x9c\xb4\xe3\x78\xb7\xb2\xc8\x2c\ \x70\x35\x42\x2b\x70\x2e\x68\xfa\xe5\xcb\x97\xa5\xd8\x96\x75\xa5\ \x6d\x26\xe6\xe3\x08\xcd\x07\xc5\xed\x5e\x5c\xbc\x68\x2d\x9b\x95\ \x04\x50\x43\x92\xa0\x6b\xd7\x4a\x42\x10\x96\x9a\x76\xf4\x54\xf2\ \x19\x29\x06\x46\x71\x3e\xca\xe1\x04\xcd\x33\x3f\xb3\x88\x27\xb2\ \x09\xbe\x2d\x17\x51\x0b\x5b\xea\x8f\x86\x6f\xca\x45\x42\x82\xb4\ \x07\x69\xeb\x09\xd5\xaa\x60\xec\xbd\xe7\x90\x77\x13\x8d\xdc\x0d\ \x10\xff\xb9\x2e\xcf\x10\x0e\x22\xb3\xc1\x6a\x62\x65\xc0\x1a\x88\ \xdd\x55\x86\xe1\xa8\xbf\x28\x29\xde\xfa\xdc\xd3\x73\xc9\x95\x6d\ \xdb\x0a\xc3\x69\xe2\x25\xd5\xc2\xca\x83\x2a\x59\x36\x94\x43\xa9\ \x38\xa7\xfa\xb6\x87\x47\x8f\x6e\xc2\x4a\x99\x40\xf7\x32\x38\x3d\ \x8c\x33\x8b\x32\xbf\xfc\xa2\x07\x32\x19\x96\xe2\x3a\x4d\xe3\xfc\ \x36\x0d\x4c\xf1\x5e\xb3\x66\x1f\x6d\x5f\xe4\x58\x36\xa4\x18\x3d\ \x83\xb7\xec\xd3\xeb\xdb\xb7\x4d\xc9\x08\xff\xa2\x97\xf6\x90\x8c\ \x29\xa6\x64\xbc\xb9\x7b\x77\xbe\x63\x9b\x36\x37\x68\xc5\x02\xa9\ \x70\x75\x59\x64\x70\xf0\x28\x64\xb1\x8c\xa7\x46\x8d\x9a\x3d\xbd\ \x57\x16\x2d\xda\x0a\x95\x24\x27\x68\x57\xb3\xbb\x63\xc7\x69\x4a\ \xe3\x49\x1c\x17\x94\xdd\xcd\xd5\xac\x11\x77\x65\xf5\xe1\x72\x42\ \x02\x67\x80\x59\x34\x19\x68\x60\xb1\x03\xe3\x2a\x4d\x27\xca\x91\ \x91\x23\xcf\xd2\x56\x45\x29\xbf\xc0\xd8\x54\x70\x19\xd8\x47\xc9\ \x76\xc0\x24\x2a\xe2\x3a\x7e\x19\xd2\x41\x94\xe7\xab\x28\x38\x92\ \x02\xe3\x24\x5b\xa7\x91\x0b\x7b\x93\x44\x68\x0f\xfe\xfa\x6b\x7d\ \x2d\x6f\xf5\xbc\x97\xfe\xfe\x95\xa9\x8f\x39\x56\xc5\x48\x74\xcc\ \x59\x16\xec\xe3\xb3\x9a\x12\x24\x50\x00\xfb\xf4\x43\x60\x60\x56\ \x36\x65\x64\xb8\x9b\x9a\x1a\x62\x3b\xf9\x9a\xb2\x4f\xe8\xcc\x26\ \x35\x37\xa2\xa8\xd4\x44\x1e\xda\xf3\x48\x09\x35\x75\x6c\x48\x21\ \x4d\x38\xe5\x73\x7a\x59\x58\x34\x91\x93\x19\x14\x7c\xf7\x6e\x21\ \x91\x51\x60\xc3\xab\x0e\x4e\xa7\x3e\x01\x50\x89\x0e\x53\x92\xa2\ \xbf\xa1\xaf\xb2\x40\xb3\x35\x17\xce\x74\x3b\x71\xaf\xee\x0d\x2e\ \x53\xc7\x18\x59\x29\xa1\x16\x7a\xe3\xc6\xac\x1d\x2d\x5b\xde\x80\ \xd1\xdc\xa6\x4e\x32\x34\x59\xc8\xf5\x73\x21\x85\x27\xe9\x66\x7e\ \x01\xa3\x8a\x87\x36\xa3\xd3\x8d\x2d\x5b\x1c\x0f\xfd\xf6\x9b\x3b\ \xa5\xee\x60\x8c\xae\xbb\xe9\x7d\x1a\x97\xad\x6f\x33\x16\x7c\xbe\ \x6b\x19\xfb\xe1\xc3\x12\xea\xf3\x16\xfd\xf2\xa5\x39\xee\x0b\x0b\ \x0d\xe0\x70\x4e\x9e\xca\x18\x9c\xc9\x5f\x50\x22\x31\x1d\x07\x70\ \x96\x73\x46\x89\x90\x3a\xb9\x18\xd4\x91\x73\x1c\x9f\xef\xc6\x91\ \x67\x0c\x1d\x58\x6e\xd2\xb7\x21\xca\x81\xae\xcb\x46\x0f\x2d\xc0\ \x14\xa7\x81\x03\xbd\x70\x3f\x07\xec\x0c\x0e\x73\x19\x3a\xf4\x1c\ \x8d\x4b\x8f\xd9\x5d\x0a\xb6\x67\xea\x64\x72\x19\x50\x5f\xb0\x83\ \x5c\xd1\x0a\x82\x1e\xd8\x75\x2c\xc4\x75\x2f\xf8\xf5\xf6\xee\xdd\ \xdb\xf0\xbc\xae\x7c\xbf\x21\xb8\x04\xe4\xe6\x8b\x3a\x98\xb1\xd2\ \x9a\xce\x0b\x61\x0f\x1f\xce\x25\x83\x53\xd2\x89\x8e\x8d\x1b\x47\ \x85\xaf\x79\x85\xc4\x89\x29\x53\x46\x4a\x2f\x66\x12\xb4\x3c\x48\ \xcd\xca\x48\x64\x09\x18\x54\x21\x8e\x80\xf8\x55\x65\xbb\x0f\x39\ \x07\xea\x11\x37\x56\x33\xf1\x58\x87\x8d\x8d\xb7\x98\x60\x5d\xb0\ \x23\xa8\xa2\x06\xed\xd8\x92\x24\x52\x03\x3f\x63\x21\x8c\x34\x62\ \x77\xa6\x34\xb9\x07\xfa\xf6\xbd\x28\xa5\xb0\x95\xec\x96\x31\xe0\ \xb8\xcc\xd5\x5e\x64\x60\xfb\x38\x98\xd4\x00\xa8\xa8\x55\x1d\x46\ \xc8\x9b\xf7\xdc\x3f\xf1\x1c\xd3\xf9\x3c\x8b\xba\xbd\x32\xe0\x6a\ \xde\xaf\x3e\xb3\xa9\x54\xe1\x94\xa1\xae\x28\xf5\xe2\xf0\x1e\x05\ \xc1\x18\x2a\x98\xa4\x2d\xcd\x0c\xa5\xcc\x5e\xf2\xab\x6c\x5a\x68\ \x20\x32\x0b\x5c\x06\xd4\x1e\x5e\x49\xb3\x03\x7d\xfa\x5c\xb4\x2a\ \x5b\xf6\xea\x29\x3b\x3b\x7d\xf1\x1d\x20\x43\x05\xdf\x4b\xe1\xe1\ \x4e\x22\xd3\xc1\x93\x59\x83\xb2\x1c\xec\xeb\xd6\xf5\x43\x6c\xee\ \xa5\x52\x82\xe1\x3e\x7f\xbe\x2b\xd5\x48\x51\xfe\x25\x8d\x91\x5e\ \xa6\xc7\xe2\xc5\xfb\x29\xf0\x8a\x73\xdd\x2d\x29\x1f\xe7\x2a\x32\ \x1b\xac\x16\xfd\x2b\x68\xfa\x4f\x6a\xd1\x10\x52\xb8\xab\x7c\x71\ \x66\x76\xed\x1d\xc0\x90\xdb\xcc\x79\xe4\x58\x51\x34\x15\x91\xe5\ \xfe\x44\xea\xe6\xaf\x93\x06\xf7\x19\x5b\x9a\x08\x97\xdf\x7e\x5b\ \x85\xac\x95\xc9\x70\xc0\xf8\xd3\x7b\xd8\x8e\x36\x14\x99\x0e\x6e\ \xc3\x25\xbe\x13\xca\xb9\x7d\x5b\xd3\xa6\xb7\x4f\x4c\x98\x70\xfc\ \xc1\xb1\x63\x1d\x65\x8b\xe6\x35\x99\x5f\x91\xc0\x13\x59\x04\x15\ \xcb\xc3\xd0\x7a\xf7\x04\x5a\x19\x39\x91\xdb\x19\x07\xf6\xed\x64\ \x70\x7e\x0e\x0e\x3b\xd6\x56\xaa\xa4\x68\xd5\x7b\x6f\x6b\xd6\x4c\ \x1d\x32\x80\x4c\xbb\x89\xc8\x74\x30\x4c\x84\xe8\x89\x79\xf8\x2d\ \x2d\x29\x5d\x4a\xdd\xa4\x46\x19\xd0\xb0\x4f\x1f\x3f\xb6\x35\xcf\ \x95\xeb\x8c\xa2\xaa\x9c\x35\xe2\xae\x5c\xbd\xdc\x05\x9c\x07\x96\ \xda\xda\xa8\xd1\x1f\x32\x8d\xe8\x34\x56\xb6\x29\xd8\x52\xee\x46\ \x3a\x51\x08\x8d\x11\xcf\x9b\x98\x58\x88\x4c\x07\x83\xb2\x83\x90\ \xc0\x40\x3d\xc8\x2f\x50\x87\xd6\xbf\x69\x70\x53\xe5\xae\x24\xee\ \x40\xbf\x7e\xb6\x8a\xe3\x05\x9d\x5f\xcf\xd2\x2e\x06\xbb\x9a\x87\ \x07\x7a\xf7\x6e\x29\xb2\x0e\x8c\xa8\xa8\xa8\x42\x1b\x6b\xd5\x7a\ \xac\xc8\xba\x39\xf5\xef\x3f\x07\x2d\x6f\x17\xa3\x3b\xcb\x71\x2a\ \x27\x81\x4c\xc0\x08\x91\x55\xe0\x2f\xc6\xa1\x7e\xdb\xb7\x4f\x41\ \xf8\x86\xb6\x84\x8e\x14\x18\xff\x13\x63\x2b\x4c\x35\x91\x90\x2c\ \x0f\x43\xb7\xa0\x70\x9a\x4f\x29\xdf\x37\x1e\xd7\x2f\xf8\x62\xbd\ \x2b\xcf\x86\xfd\x44\xd6\x82\x91\x10\x17\xd7\x17\x92\x7d\x97\xa0\ \xd6\x14\x27\x9d\x25\x61\x50\x15\xde\x01\x77\x35\x4d\x50\x23\x91\ \x95\x60\xc3\xab\x02\x8e\x77\x19\x32\x64\x2e\xe6\xe5\x26\xc9\xdb\ \x69\xca\x99\x53\x5e\x2c\xc6\x4c\x35\xcb\x80\x3e\x45\x47\x9b\x41\ \x5c\xf8\x1c\xaa\x4b\xe2\x69\x4c\xa3\x59\xe3\x4f\xa0\x8e\x84\x0b\ \x38\xed\xa8\x0f\x89\xd2\x42\x4d\xd8\x09\x89\xb6\xfe\xd6\x86\x86\ \x3b\x31\x56\x42\x67\x64\xd2\x58\x1d\xba\xe9\xa7\xa8\xa8\xc9\x28\ \x4a\x5e\x4d\xb9\xb0\x8a\x50\x11\xae\x45\xb1\x33\x51\xcb\xdd\x41\ \xb8\xf5\x63\xd8\xe3\xc7\x73\x65\xef\xf3\x5e\x6e\x53\xa7\x1e\xd7\ \x6a\xd6\xa8\x63\xe0\x89\x2d\x0d\x76\x55\x0a\x29\x53\xe9\x26\xc3\ \xc8\xfa\x9e\x70\x3d\xb1\x5a\x4d\xc6\x39\x9b\x9a\x6c\x34\x11\x40\ \x88\xaf\xef\x14\x4a\xeb\xa3\x78\xab\x5d\x95\x2a\x56\x18\xcf\x0f\ \x16\xc6\xca\x16\x4a\xaa\x70\xc8\xdf\x34\x95\x9e\x4f\x5d\x05\x17\ \xbe\xea\xf4\x04\xf1\xfc\x94\x02\x47\x82\xcd\x15\xef\x33\xf8\xfb\ \x2b\x3f\x3f\x6b\x1c\x03\x46\x63\x05\x7c\x08\xaa\x8f\x07\xd4\x37\ \x0e\xcf\xfe\x6d\x2a\xdd\x0c\x92\x02\xa0\x8c\x15\x4c\xf4\xef\xb8\ \xf6\x21\x29\x76\xea\x1a\x84\x31\x43\x4a\x35\xe2\x8a\xe5\x8c\x91\ \xb7\xd3\x4e\x72\x00\x6b\x22\x94\x33\x1a\xdb\x4b\x75\x19\x10\x14\ \x00\x2e\xfd\x4b\xcf\x6d\x0c\xc4\x7f\xb6\xd2\x24\x7f\x83\xb1\x94\ \xaf\x29\x32\x03\x6c\x88\x95\x69\x1b\x49\x8e\x93\xd3\x33\x66\x58\ \xfd\x4b\x2b\x41\x18\xd8\xd2\x74\xa2\x0e\xaf\xd4\x01\x08\x7d\x10\ \xec\xd1\x48\x62\x13\x0e\xee\x5b\x0e\x0d\x1e\xbc\x0d\x9a\x2c\x56\ \x51\xc1\xc1\x15\x05\x20\xeb\xf4\xea\x53\x70\x17\x46\x58\x49\x64\ \x08\x38\x5b\x05\xec\x07\xce\x00\x73\x89\xff\x10\x54\xff\xa5\xb3\ \xdf\x85\xa5\x4b\x6d\x60\x68\xd3\x2b\x74\xe8\xb0\x7f\xa4\xbb\xbb\ \x0b\x86\xf5\xc1\x9c\x60\x76\xd0\x7b\x89\x4a\x55\x06\xd1\x58\x3b\ \xdc\x6b\xe6\x0a\x5e\x04\x07\x98\x09\xf1\x41\xa4\x0d\x0c\x06\xeb\ \xae\x20\x2d\xcc\xdf\x4c\x4f\x2f\x51\x5b\x1f\x13\x2b\x5a\x53\x92\ \x7f\x23\x49\x88\x3d\x5d\xba\xb8\x5c\x5a\xb1\xc2\x01\x9a\xf6\xe7\ \x65\xec\xef\xde\x77\x74\x0e\x65\x30\x18\xc1\x97\x2f\xf7\xa4\x6d\ \x25\xb2\xd6\xbd\x35\x57\x78\x18\xdb\x63\x64\x4d\xc4\x40\xc3\x9e\ \x62\x7c\xf3\x65\x66\xfc\xa8\x6d\x4d\x9a\xa8\x73\x38\x91\x21\xf1\ \x9b\x48\x3b\x18\x0c\x0e\x2b\xa0\xfc\x47\xad\x08\x86\x92\xa0\x2e\ \xb2\xc0\xb5\x92\x54\x18\x3b\x49\x52\x70\x9a\x7a\x1e\xc1\xbe\xbe\ \xbd\x65\x9f\x32\x17\x8d\x96\xbe\x07\xd3\x70\xbe\x63\x30\x38\x88\ \xee\x6d\x65\xb5\xfb\xdd\xc3\x87\x9d\xa5\x11\x8d\x07\x53\x1e\x1c\ \x3e\xbc\x46\xbb\x3f\x02\xda\xf4\xe6\xa3\x67\xdb\x5b\xb6\xf4\x16\ \x00\xb6\x97\x76\x74\x0f\x26\x80\x4b\xff\x5e\xf5\x33\x83\xc1\x46\ \xd7\x04\x6c\x2c\x00\x53\x3d\xbd\x6e\x64\x44\xf0\x5a\x9a\xa4\x92\ \x78\x3b\x40\x4a\xc3\x39\x09\x00\xdb\x51\x1f\xe4\x01\x26\xa1\x1d\ \xd4\x63\x64\x4b\xc4\xa4\xb1\x33\x10\x83\xc1\xf0\xda\xb0\x21\x2f\ \x95\x8d\x58\xe4\xc9\xf3\x8a\x82\xe4\x5a\x05\x93\x11\xa8\xd9\x8a\ \x89\x0c\x09\x99\x8d\xfb\x6a\xe0\x57\x2a\x80\x85\xb1\x2e\x46\x22\ \xae\x39\xae\xa4\xad\x69\x8d\xf1\x2b\x7f\xd1\x5d\x86\xc1\x60\x90\ \xf7\x91\x3c\x94\xd0\xdb\x57\xf7\xbc\x86\x07\xf3\x2a\x0c\x88\x8c\ \x6b\x9d\x6c\xf1\x14\x45\x7a\xfa\xd4\xc0\x9d\xc6\xc0\x94\x7b\x07\ \x0e\x6c\x46\x1b\xdc\x89\x10\xd4\xb9\x67\x63\x68\xd8\x6e\x55\xb1\ \x62\x23\xb1\xda\xc5\x4a\xbd\x95\x6d\xbc\xcd\x64\x30\xbe\x5d\xab\ \xb5\x0a\x4c\x21\x42\x33\xf3\xbe\x75\xd9\xb2\xf7\xd5\xdd\x3f\x55\ \xaa\xd7\x48\xb6\x75\x97\x3d\xb2\xc7\x20\xab\xbd\x30\xc6\x62\xd0\ \x1b\x3b\x74\x4f\xb7\x6e\x07\x15\xfd\x15\x6c\x31\xed\xa2\xde\xbd\ \xab\xb4\xae\x4a\x95\x67\x10\xb0\xfd\x8c\x3a\x3d\x6f\x34\x2c\x49\ \x4d\x64\x87\xc1\x60\x6c\xaa\x5d\xbb\xc1\xa6\x3a\x75\x7c\x50\x6f\ \x47\x46\xf6\x15\x86\xe5\x0e\xc5\xb0\xe5\xa4\xb1\x22\xab\x12\x46\ \x82\xfa\x30\xc2\x49\x52\x51\x2c\x86\xae\x48\x15\xfb\x48\x57\x8f\ \x45\x8b\xf6\xe1\x99\x19\x8d\x1d\x19\x35\xea\xac\xfc\x9d\x3a\x1a\ \x06\xdd\x49\x3a\x57\x72\x0b\x35\x18\x0c\x16\xa9\xfd\x23\x3a\x34\ \x74\xc5\x8e\xd6\xad\xaf\xc8\xda\xad\x9b\x90\xf4\x3e\x74\xc9\xce\ \x4e\xe9\x57\xae\xa2\xb6\xbc\x1a\x8a\xd0\x97\xa9\x09\x25\xdd\x43\ \xea\x6f\x37\x55\x2d\x43\x2a\xe0\x36\xb2\xe1\x17\x6a\x77\xe7\x54\ \x8a\x2f\x4d\x84\xe8\x2b\x14\x30\x18\x82\x0d\xcf\x90\x44\x4f\x49\ \x5b\x1f\x5d\x42\x9f\x41\xc0\xe8\xce\xd6\xc6\x8d\xcb\xca\x55\xaa\ \x89\x62\x6c\xa4\xcd\x48\xd5\xe6\x38\xf3\xdd\xa5\x56\x4f\x58\xe9\ \xa8\xc3\xeb\x5b\xd9\xbc\xb0\xa6\x7c\x7f\x18\x0c\xcd\x1d\x46\xf6\ \x4b\xd8\xa3\x47\xd5\x3c\x16\x2e\x74\x49\x5d\x3e\x80\xc1\x60\xc3\ \x6b\x0f\x9a\x4a\x2a\xb5\x5a\xaa\xe3\x13\x26\x6c\x72\x9b\x36\xed\ \x38\xc6\x8c\xa1\x2e\x56\x13\xe7\xb5\x58\xe9\x64\x49\xbe\x77\xf0\ \xe0\x16\x8c\x77\xd5\xa8\x4c\xe8\x85\xe7\x71\x74\xce\x33\xcb\x99\ \x73\xdf\x9b\x7b\xf7\x06\xe1\x79\x75\x91\x3a\x18\x0c\xae\xe5\x02\ \x0d\xc1\x6c\x1a\x63\x6d\xc0\xd9\xa0\x11\x0c\xa9\x86\xb2\xe2\x1d\ \x9f\x38\xd1\x0d\x63\xe3\x40\x3d\xcd\xde\x6b\x81\x6e\x6e\xeb\xe8\ \x4c\x88\xed\xe9\x73\x2f\x53\xd3\xb4\xaa\x44\x33\x18\x0c\x8d\xc6\ \x92\x45\x71\x66\xbb\xba\xa5\x41\x83\x7b\x32\xef\xb2\xa0\xd0\x02\ \x72\x2f\xb7\x93\x41\x5e\x5d\xbb\x76\x37\x9e\xd7\x17\xff\x08\x0c\ \x06\x1b\xdf\x88\x2f\xc9\xc9\xe4\xc9\xac\x2a\xab\x0d\xfa\x82\x5d\ \x05\x20\x57\xc0\xa4\x0d\x35\x6b\xde\xc7\xf3\xc9\xe0\x5f\xc6\xe5\ \xa4\x63\x86\x3a\x07\xd5\x12\xa9\x82\xc1\xe0\x6e\x40\x86\x1a\xee\ \x7f\x5f\x30\x45\x36\x25\xb9\x88\x33\x5c\xf2\x33\x4f\xcf\x75\x78\ \xa7\x52\x2a\xb1\xbf\xfa\xe0\x62\xbc\x67\xbc\x58\x88\x9a\x8a\x0c\ \x04\xee\xc3\x30\xfe\x19\x5c\x25\xfe\x1c\x0c\x06\x57\x94\x23\x20\ \xee\x4d\x86\x46\x86\x67\x55\xa6\x4c\xe8\xfb\xfb\xf7\x47\x0b\x2d\ \xc0\xa8\x96\x2b\x41\x73\x85\x18\x5b\x28\x80\x9d\xed\xda\xed\xa6\ \x7b\x78\x47\xd7\xfe\xf5\xaa\xc8\x60\xb0\x4c\xdc\x10\x5a\xd5\x14\ \xb5\x68\x18\x5f\x38\xae\x03\xb4\x9b\x59\xa0\x05\xf3\xb3\x5b\x8e\ \x8e\xdb\x2e\xae\x58\x71\x00\x5a\x8e\x0f\x65\x4a\xd8\x74\xbc\x1f\ \x81\x70\x43\x58\x42\x6c\xec\x22\xea\x1e\x2b\xfe\x12\x0c\x06\x1b\ \x5e\x25\x90\xfa\x20\xec\x81\x61\xbd\x46\x42\xf4\x25\x0d\x83\xdb\ \x01\xa6\x84\x5e\xbb\x66\x43\x67\x40\xb0\xd7\xc7\xb7\x6f\x67\x60\ \x35\x7c\x4d\xe3\x44\x9f\x35\x6b\xf6\x62\xbc\x89\x48\x13\x18\x0c\ \xd6\xce\xfc\x05\x0d\x48\x16\x24\x27\x26\x92\x63\xa5\xa8\x00\x10\ \x4c\x3f\x44\xab\x59\x78\x50\xd0\x10\xc5\xe3\x89\xab\xde\x96\x86\ \x0d\x3d\xc9\xd8\xd6\x57\xaf\xfe\x08\xf7\x53\xbf\x6f\x3b\xc9\x60\ \xb0\xe1\xe5\x06\xab\x83\x2a\x99\xb7\xa9\xce\xb9\x5c\x53\xaa\xd4\ \x69\x45\xde\x81\xfa\xa2\x21\x8f\xf3\x3e\x25\x3e\x3f\x75\x77\x5f\ \x4f\x32\x72\xb2\xb5\xd3\x60\x70\x19\x38\x99\xda\x33\x8b\xb4\x81\ \xc1\x60\xbc\xf4\xf5\x2d\x8b\xb6\x4c\xc1\x72\xfb\x18\x80\x73\xdb\ \x3e\xf0\x19\xdd\x43\xb8\xe8\x0a\x8c\xed\x37\x12\xa6\xc5\xd8\x0d\ \x2d\xa7\xca\x3b\x5c\xcb\x8b\xb4\x81\xc1\x60\xc4\x47\x44\x8c\x40\ \xb7\x19\x0f\x24\x47\xdf\xa1\x8a\x71\x32\x28\x14\xb8\xc6\x22\x17\ \x73\x39\xc9\x82\xe3\x7e\x2b\x8d\x6d\xfb\xe5\x97\x0b\x0f\x8f\x1f\ \xdf\x44\x72\xe0\x48\x15\x8b\xc7\xbb\x8f\x30\xbe\xc4\x58\x08\x23\ \xf1\xef\x03\x83\xb6\x35\x22\xa3\xc0\x4d\xea\xfb\x83\x26\xb7\xf7\ \xee\xdd\x06\x63\x52\x97\x05\x1d\xe8\xdb\xd7\x8a\xb6\x92\x48\x88\ \x8e\x46\x4d\x5e\x30\x3d\x07\x7b\x80\x7d\xdc\x17\x2c\xd8\xa7\xb1\ \xe2\xc5\x9b\x08\xf1\x2f\xeb\x36\xc3\xc6\x96\x8d\xb6\x3a\xa0\x17\ \x69\xf0\x8b\x8c\x02\x1b\x9e\xd1\x6b\x7f\xff\x55\xbb\x3b\x77\xbe\ \x7a\x76\xde\xbc\x31\x54\x29\x4e\x15\x08\x1b\xeb\xd4\x21\xe7\x49\ \x35\x21\xb1\xbb\x63\xc7\x81\x64\x6c\xf0\x78\xc6\x22\xa5\xec\x3e\ \xb4\x35\x67\x8a\x7f\x17\x18\xf0\xa8\xf9\x4b\x11\xd4\x67\x22\x23\ \xc1\x86\x57\x06\x1c\x4d\x14\x80\x65\x89\x12\xf7\xc9\xe8\x56\x97\ \x28\xd1\x43\xee\x34\x72\x2a\xe1\x04\xa5\x5a\x01\x9c\x2b\x33\x53\ \x86\x60\x7c\x22\x56\xbc\xe6\x3f\xb6\x8a\x36\xaf\x70\x0d\xa9\xa8\ \x92\x26\x19\x9a\x1d\xc1\xd2\xad\x9d\x09\x60\x78\x2d\x5d\x3a\x09\ \xe1\x83\x78\x18\x1d\x65\xac\x3c\x00\x03\xc1\x14\xab\x52\xa5\x5e\ \x25\x25\x24\xcc\xa3\x00\x3b\x1c\x2f\xad\x30\xf6\x41\xcb\xb1\x72\ \xcb\x58\x88\x0a\x42\xa7\xc1\x48\x2d\xde\xa3\x4a\x11\xc2\x4e\x4f\ \x4f\x2f\x49\x00\x06\x85\x0a\xc5\xd3\x7b\xd2\x10\xf3\x92\x42\x95\ \x4c\xd2\xcd\x00\xf0\xb9\xb9\x8d\xa9\xe9\xde\x41\x47\x8f\xda\x57\ \xe9\xd9\xd3\x3b\x4f\xc9\x92\x31\x2a\x95\xca\x48\x00\x6d\xcc\xcc\ \xce\xe6\xd0\xd7\xf7\x98\xa6\x52\x7d\x8e\x7a\xf1\xc2\x05\x43\x45\ \x2a\x75\xea\xe4\xd1\x77\xef\x5e\x87\xea\xfd\xfa\x9d\xcf\x96\x2d\ \x5b\xed\x1c\x2a\x15\x55\xac\xff\x48\xbd\xf3\xd8\xe0\x30\x61\x43\ \x54\x42\x34\xab\xd4\xa5\x8b\x9f\x00\x72\x15\x2a\x14\x8b\x4b\x1c\ \x8c\xac\x11\xae\xfe\x78\x36\x0b\xbf\x44\x09\xba\x76\x22\x3d\xc1\ \xc6\x46\xbb\x88\xb7\x58\xd9\xf6\x04\xec\xdb\xe7\x32\xe4\xd8\xb1\ \x03\xed\x96\x2d\xbb\x8f\xb1\xec\xa5\x20\x6e\xd4\x60\xdc\xb8\x6b\ \x78\x7e\xab\xb0\x10\xed\x71\x2d\x96\x2d\x7b\xf6\xcf\x41\x9e\x9e\ \xad\x6f\xac\x5f\x9f\xa7\x8b\x9d\x9d\x73\x2b\x63\x63\x57\xac\x7e\ \x25\xf1\x05\x39\x27\x95\xfc\xcd\xb9\x98\xd7\xa3\x42\xb7\xc0\x90\ \xe7\x82\x97\x10\xca\x09\x7b\x74\xec\x98\x5a\x61\x78\x7f\xef\xde\ \x94\xf9\x6e\x4c\xe5\x26\x74\x4f\xb4\x2c\x5e\xfc\xdd\xb6\xa6\x4d\ \x1d\xd2\xb7\xb7\x17\x3b\xaa\xd6\x56\xa8\xe0\x68\x8a\x15\x8c\xe4\ \xf9\x70\x7f\x1b\xd7\xc4\x95\x05\x0a\xbc\x96\x4d\xe7\x8d\xe4\x7b\ \x7d\xc0\x94\xe3\xe3\xc7\xbb\x41\x57\xe5\x3c\x0c\x34\x91\xe6\x0c\ \xd9\x2a\x0b\xe9\xec\x87\xdc\xcc\xcb\x02\xa0\x78\x1e\x85\x11\x4c\ \x84\xe8\x4d\xff\x9d\x35\x25\x4a\x5c\xd1\xa1\xe6\x87\x0c\xda\x26\ \x62\x82\x36\x83\x29\x9e\xa6\xa6\xce\xe7\xe6\xce\x9d\x28\xd5\xa9\ \x12\xe8\xba\xb2\x60\xc1\x27\x2b\xf2\xe5\x8b\x86\x4e\x63\x52\x88\ \x8f\x8f\x2d\x26\x6f\x09\x58\x50\xa4\x27\xd8\x81\xd2\xf1\xb1\x9b\ \xdb\x46\xc4\xe0\xae\x43\x7e\x2f\x18\x72\x7b\x1e\xd1\xaf\x5f\xaf\ \xd0\xd4\x43\x59\x24\x44\x29\x52\x18\xc3\x97\x5e\x10\x2a\x14\xc6\ \x05\x79\x79\xd9\x41\xa2\xef\x16\xcd\x91\x0c\xa0\x7b\x0b\x00\xde\ \xe5\xca\x30\xb4\x8f\xca\xb8\xbf\xa3\xe3\x76\xcc\x57\x59\xa1\x13\ \x60\xa8\x30\x29\x6f\xa5\xeb\x39\x06\xcd\x09\xe7\x43\x89\xb8\xaf\ \x9c\xac\xaf\xdb\x5b\xb5\x3a\x8f\x58\x90\x2b\xdd\x23\x5e\x74\x31\ \x3e\x3c\x7c\x08\x26\x9d\xca\x4c\xa6\xa6\x7b\xbc\x8e\x8d\xae\x0a\ \x38\x05\x34\x95\xec\xa4\x9d\x5b\xe9\xf2\xdb\x6f\xea\x9c\x4c\xac\ \x86\xcf\x37\x54\xaf\xbe\x38\xec\xe1\xc3\xb9\x57\xed\xec\x76\xad\ \x2e\x5e\xfc\xcd\x7d\x17\x97\x8d\x8a\xdc\xc3\xf1\x71\xe3\xf6\xd0\ \x9c\xc9\xc6\x25\x1f\x75\x68\xbe\x18\xd7\xb7\x6c\x19\x8e\xc9\x53\ \x97\x95\x60\x1b\xe3\x8d\xab\x01\x34\x1a\xdd\xbc\xd7\xac\xd9\xf7\ \x29\x32\xd2\x0c\x9e\xb3\xd7\x50\xa7\x8a\x80\x66\xa3\xd9\xd3\xb3\ \x67\x8b\x63\xb2\x43\xa4\x77\xec\x66\x86\x1c\xd4\xd9\xf0\x8a\x81\ \x45\xbe\xf1\xac\x86\xe7\x92\x25\xce\xe8\xe8\x1a\xa6\x34\x16\x81\ \x00\xed\xb9\x98\xb7\x6f\x17\x53\x89\x90\x00\xc6\x0b\x91\x03\xbb\ \x91\x40\xcc\x59\xec\x45\x0b\x8b\x03\x96\xc5\x8a\xbd\x92\xef\xfa\ \x49\x39\xf7\x2c\x06\x4f\x70\x49\x70\xea\xb5\xf5\xeb\x77\xa1\x47\ \x9a\x39\xee\xf5\x1f\x9d\x3c\x39\xc6\x6f\xdb\x36\xeb\x35\xa5\x4b\ \xaf\xa6\xc9\xa2\x55\x0e\xe3\x6d\x05\x00\x37\xf5\xfd\x65\xfa\xfa\ \x09\x08\x1b\xdc\x71\x1d\x3a\xb4\x94\xf8\x06\x32\xac\x91\x21\xcf\ \x57\x03\xc8\xf5\x99\xf8\x6f\xdf\xbe\x7d\x4b\xa3\x46\x97\xa0\xa1\ \xe2\x7b\x76\xf6\xec\x0a\x8a\x91\x52\x7d\x1d\xcd\xd9\xc9\xa9\x53\ \x4f\x60\x6c\x24\x42\x0a\x0b\xa8\x1d\x17\xce\x78\xde\xa7\x16\x2e\ \x2c\xa6\x79\x76\xcc\xda\x86\x24\x5c\x56\xd2\x04\x1c\x0a\xe6\xc6\ \x64\xec\x97\x5b\x92\x24\xd4\x6c\x05\x61\x82\x49\xb5\x2a\x87\x00\ \xb0\xda\x3d\x40\x3e\xe0\x1b\xb9\xed\x69\x29\x83\xb0\x6f\x71\x25\ \xe3\xcc\x2b\x27\xd3\x8a\x0e\xf4\xe0\xd0\x0c\x0b\xcc\x72\xaf\xec\ \x16\xe0\x64\x39\x0f\xcd\x95\xd5\x8d\xe4\x1a\x68\x55\x83\xa1\x91\ \xc8\x91\x01\x98\x0b\xec\x0a\x9a\x80\x0d\x35\x0c\x6e\x34\x18\xa5\ \x03\x39\x9a\x8c\xeb\x0e\x0e\xb5\x1c\x9a\x37\xf7\x25\xef\x17\xa5\ \x15\x85\xdc\xb8\xd1\x58\x48\x20\xe1\x36\x18\x0d\x2d\x5e\xc8\x82\ \x4b\x95\x99\x81\x41\x6b\x0d\xe9\x80\x33\x02\xc0\xef\xac\xa4\x7b\ \x49\xcf\x0c\x95\xfb\x66\xe3\x2b\xa8\xe9\x58\x51\x7a\x25\x24\x25\ \x25\x35\x14\x1a\xd0\xee\x7f\x07\xc7\x4c\x31\x1c\x17\xa2\x70\x66\ \xf7\xd2\x8d\x2f\x45\xae\xe7\x1a\xf9\xc0\xd5\xd5\x1e\x5d\x43\x5d\ \xe9\x5c\xa1\x21\x76\x1a\x06\x55\xaa\xc0\x9b\xfb\xf7\x97\xc6\xe4\ \x5a\x90\xeb\x99\xbc\x67\xe4\x54\xf1\x32\x33\xb3\xc2\xbb\x39\x21\ \x82\x1a\x80\x95\x30\xce\x79\xf0\x60\x0f\x6c\x41\xef\xec\xef\xd9\ \xb3\xc4\x1f\x42\xe8\x67\xf8\x16\x86\xa1\x82\x2e\xca\x39\x32\x3a\ \x9c\xb5\xcf\x90\x1a\xd8\xb7\x6a\xea\x28\xb4\x83\x94\x31\xb5\xa4\ \xdf\xd2\x1c\x39\xc6\x08\x9d\x00\x1b\x5e\x0d\x70\x0c\x68\x24\x24\ \xa0\x38\x1c\x47\xf1\x38\xc4\xe8\x82\x68\xb2\x90\x03\x78\x1d\xe1\ \x02\x6b\xbc\xb3\x80\xde\xb5\x32\x34\x6c\x4f\xe3\xfb\xba\x77\xf7\ \x26\xaf\xdb\x87\x27\x4f\x56\xe3\xda\x14\x63\xce\x60\x0c\xb8\x80\ \x8c\x4f\x64\x08\x18\xc9\xc9\xc9\x6d\xf6\xf7\xea\x75\x09\xde\x64\ \x25\x34\x40\xba\x29\x26\xdf\x98\xdf\xb2\x68\xa9\x1c\x08\x27\x0b\ \xcd\x4b\x69\xa1\x13\xe0\xb0\x41\x0d\x8d\x7d\x7f\x41\x2a\x29\xa1\ \x89\xc4\x24\x45\x9c\x99\x39\x73\xb7\x3c\x43\xfc\x0a\xe6\x93\xef\ \xec\xa7\x77\x9e\x7b\x7a\xda\x60\x35\xdc\x80\x9f\xe3\x61\x9c\xe3\ \x0e\xf4\xee\xdd\x72\x75\x91\x22\x4a\x11\xe6\x5d\x30\xe3\x54\x89\ \x79\x87\xd2\x2d\x31\x2e\x6e\x19\x39\xc2\x0e\xf6\xeb\x77\xf8\xea\ \xba\x75\xc3\x34\xe6\xb0\x22\x58\x0d\x2c\x4b\x55\xe7\x28\x15\x1a\ \x43\x3b\x14\x6c\x2d\x4f\x8b\xac\x05\x43\x3a\x44\x52\x70\x3d\x0d\ \x8e\xc3\xcf\xaf\xc1\xaf\x0e\x4d\x9b\xde\x92\x2b\xd7\x2c\xb0\x9a\ \xc6\x64\x96\xa4\x2d\x26\xce\x07\x41\xb6\x15\x2a\x5c\x55\xce\x71\ \x76\x95\x2a\xd9\xfb\x6c\xd8\x60\x04\x71\x9d\x77\x38\x03\xc6\x63\ \xf5\x3b\xf8\xcc\xcf\xaf\x80\x90\xc8\x98\x33\x04\xf7\x33\x07\xdb\ \x81\x13\xc1\x81\x32\xc9\xa1\x39\xcd\x87\x16\x29\xae\xf7\x55\xaa\ \x8d\x0d\x11\x59\x07\x86\x69\x8d\x1a\x39\x77\xb4\x6c\x79\x42\xd1\ \x5c\x24\x27\xca\x85\x65\xcb\x76\xca\x6c\x93\xee\xa0\xbe\x96\x81\ \x9a\xc8\xd5\x4f\xfd\x3e\xa4\xdf\x42\xe9\x7a\xd1\xdc\x7c\x17\x9e\ \x39\xd1\xe4\x52\x7c\x0f\xbf\x37\x4f\xcb\x50\xc7\x82\x9e\x8b\x85\ \xc8\xe0\xc6\x17\x9c\x46\x06\x89\xbe\x39\x88\xe5\xad\x3f\x39\x69\ \xd2\x96\x83\x03\x06\xec\x74\x6c\xd7\x6e\xbf\x63\x9b\x36\xe7\x90\ \xe4\x70\x13\xce\xb0\x23\x59\x1c\x20\x67\x50\x95\xb2\x5a\x73\xb1\ \x66\xcd\x87\x64\x3c\x10\x3d\x3d\xa5\x28\x0f\x6b\x42\x56\x2d\xbf\ \x52\x0c\xf3\xd8\xd8\xb1\xce\x10\x38\xf5\xa5\x7b\xf4\x5f\x3b\x29\ \xd3\x8f\x3c\xf1\xbb\xd3\x41\x03\xf9\x3b\xca\xd5\x8a\x7e\xc7\xd6\ \xc8\xa8\x8d\xc8\x50\x30\x64\xf8\xa7\x0f\x38\x04\xfc\x1d\x9c\x04\ \xce\x04\x17\x82\xc6\xba\x53\x92\xc5\x9a\x8b\x93\xa9\x3d\x53\xec\ \xfb\xf7\xa3\xbf\xf1\xed\x59\x8f\x12\x6a\x29\xe7\x92\x32\x1c\xa8\ \xd9\x05\xf2\x02\xef\xd2\x76\x85\x56\x48\xeb\x32\x65\x1e\x27\xc5\ \xc7\xd3\xca\x58\x5a\xae\x86\x0b\x29\x0e\x04\xce\x89\x78\xf6\xac\ \xce\x0b\x6f\x6f\x52\x1d\x1e\x26\xb2\x1a\x1c\x8f\xd5\xa1\x15\x8e\ \x27\xa3\x11\xd8\x4c\x7c\x03\x4f\xce\x9c\x31\xbe\xbb\x6f\xdf\x56\ \xfa\xc6\x0c\xbe\x79\xb3\x34\x8c\x2d\x41\x8a\xe5\xc4\xbc\xf2\xf7\ \xb7\xa6\xdf\x17\x12\x6b\xab\x55\xab\x85\x33\xdd\x53\x7a\x0e\x06\ \xde\x39\x78\xb0\x95\x34\xc6\xbf\x09\x06\x83\x8d\xb2\x82\xf4\x58\ \xe6\xc7\x79\xec\x67\x19\x0f\xfa\x0a\x2f\x19\x79\x33\x07\x68\xf7\ \x62\x0b\x3c\x73\x66\x05\x6d\x25\xad\x0d\x0d\x03\xbe\x77\x2b\xc3\ \x60\x30\x64\x2e\xe5\xa1\xc1\x83\x77\x51\x2b\x5f\xa9\x2a\x9c\x53\ \x68\x01\x5b\xcd\xa3\xe0\x97\xc7\x27\x4e\x6c\x94\xed\x9f\xfe\x01\ \x18\x0c\x5e\xf1\x3a\xc8\x80\x78\x09\x79\x6e\x33\xc7\xaa\xb7\x02\ \xcc\x6f\x22\x84\x3a\x40\x4e\x8e\x15\x3c\x1f\xfe\x77\xa5\x08\xc0\ \xcd\xf8\xef\x4c\x4a\x25\x39\x9a\xc1\x60\x68\x86\x0e\xe0\x50\xd9\ \x21\xe3\x7a\x6f\x70\x7d\x8e\xc0\xf8\x47\xc4\xf3\xa8\x29\x7d\x71\ \x2d\xc3\x32\xc0\x3b\x53\xc0\xd3\x44\xdc\x4f\x04\x73\xab\x4b\x4f\ \xf4\xf4\xae\xc9\x73\xdf\x71\xf1\xa7\x60\x30\xd8\xf8\x9a\x5e\x5e\ \xb5\x6a\x3f\xaa\xc8\xdf\xc9\xf6\x4d\x11\xe7\x4d\x4c\xe6\x68\x6f\ \x45\x61\x64\x27\x64\x20\x36\x5e\x43\x9d\xea\x18\x3d\xdb\xda\xa4\ \x89\x2b\xdd\xa3\xe4\xc4\xfa\xaf\x5b\x3b\x31\x18\xdc\x3d\xb4\x69\ \x42\x4c\x8c\xf1\x91\x91\x23\xcf\x52\x5d\x9d\x34\x28\x4b\xed\xec\ \x16\x68\x75\x5c\x8b\x0b\x0b\xb3\xa0\x8c\x16\x14\xc4\x7a\xca\xf8\ \xde\x21\x5c\x13\xd6\x56\xaa\xf4\x9c\xe2\x79\x7f\xdf\x85\xcd\x60\ \x70\x13\xc3\x5e\x6f\x03\x02\x2c\xb7\xb7\x6c\x79\x1d\xc5\x91\x4e\ \x1a\x8d\xeb\x77\x83\x29\xaf\x6e\xde\xb4\x92\xa9\x49\x75\xc1\x9e\ \xf6\xf5\xea\x3d\x50\x82\xea\x0f\x8e\x1c\xb1\xc7\x58\x1a\xb3\x52\ \x18\x0c\x36\xbc\x52\x32\xdb\x61\x89\xe2\x58\x81\x7c\x00\xe9\xe9\ \x7f\xbd\x77\xe0\xc0\x70\xa1\x01\x48\x7d\x9f\x22\x83\x43\x1a\xd2\ \x0d\x2a\x1d\x12\xdf\x0d\x06\x83\x0d\x2f\xaf\x90\x40\x6e\xdf\x28\ \x32\x2c\xd4\xd3\x05\x2a\xb5\x5c\xb8\xaf\x83\x2e\x32\xa1\x28\x98\ \xfc\xf4\xfe\xe1\xc3\xd5\x64\x9c\xc6\x42\x94\xc3\xf8\x3a\xd0\x13\ \xdb\xd0\x03\xb8\xb6\x13\x69\x07\x83\xc1\xf2\x01\x7b\xbb\x75\xbb\ \xac\x64\xb2\x83\x21\x60\x3c\xdd\x1f\x1d\x3d\xfa\x34\x9e\xf7\xc0\ \x7d\x45\xd9\x3b\x2d\x05\x5e\x4b\xa5\xee\x2b\x09\xec\x24\x74\x12\ \x0c\x56\x5e\xd6\x51\x40\xe2\x3b\x66\xa8\x9b\xdb\x92\x9e\x5b\xb7\ \x3a\x56\xe9\xd1\xe3\x54\x9e\x62\xc5\xa2\x30\x9c\x2b\x07\xca\x7a\ \x3a\x58\x5a\xfa\xe0\x67\x4f\xd0\x06\xef\x15\x68\x3a\x6b\x96\xcb\ \x92\xcf\x9f\xad\x26\xde\xba\x65\x9d\xa7\x78\xf1\x28\x55\xb6\x6c\ \x2e\x30\xc4\xb3\xe0\x40\x91\x26\x30\x18\xbc\xd2\x35\x04\xc7\x3c\ \x39\x7b\xd6\x16\x89\xcf\xea\x2a\x04\xb4\xee\x75\x90\xad\x9d\x12\ \x6d\x8c\x8c\x82\xf1\x7c\x8e\x74\xaa\xd4\xf7\xdd\xb0\x61\x95\x56\ \x9d\xd7\x12\x91\x66\x30\x18\x6c\x78\xd9\xd1\xa4\x7e\x3a\x55\x20\ \x04\x5d\xbe\x3c\x5a\x00\x38\xcf\xc5\xa3\x93\x4c\x48\x5c\x5c\x5c\ \x59\x21\x61\x53\xb1\x62\x77\x32\x34\x28\x56\xbd\x77\x19\x3a\xf4\ \x9c\x97\xa9\xe9\x54\xf1\x7d\x60\x30\x38\x5b\x05\x6c\x0f\x76\x15\ \xc0\xba\xaa\x55\x3d\xa4\xaa\xb0\x05\xae\x45\x41\x43\xd0\x9b\xc6\ \xae\xd8\xd8\xec\x91\x55\xce\x24\x1d\xd0\x00\xcb\xdc\x7a\x29\xfb\ \xb7\x00\x4c\xab\xe4\x37\x83\xc1\x78\x78\xe4\x48\x67\x65\x9b\x49\ \x54\x7a\xda\x41\x4d\xec\x91\x94\x0b\xcf\x86\xb1\xe1\x8a\x7c\x1f\ \xe9\xaa\xc8\xf7\x3e\x9a\x08\xd1\x53\x30\x18\xec\x34\xf9\xdb\x32\ \x01\xb5\x2e\x6d\xdc\xe8\x3b\xfe\xe6\x4d\xcb\xce\x36\x36\x7b\x2b\ \x77\xef\xee\xaa\x87\xa2\x57\x95\x9e\xde\x97\xae\x76\x76\xe7\xf0\ \xca\xd9\x05\x2a\x55\x3e\x5c\xb7\x82\xaa\x6a\x90\xef\x5b\x1c\x1f\ \xbf\xa6\xdb\x86\x0d\xbb\xf5\xf3\xe6\xfd\xa2\xa7\x52\x1d\x86\xf1\ \xfd\x24\xb4\x40\x79\x9a\xb2\x75\x14\x83\xc1\x90\xc6\x56\x18\xfc\ \x4c\xaa\xce\x88\xd3\x8d\x7e\x7b\xf7\x6e\x5f\xe7\x5f\x7f\x55\xab\ \x44\xef\xed\xda\xd5\x87\x64\x03\x34\x5b\x3b\x41\x06\x3c\x9c\xae\ \xe8\xfe\x73\x03\x67\xc0\xb1\x0f\x0e\x1f\x5e\x43\xf7\xd0\xe3\x77\ \x4c\xc5\x90\x77\x82\x81\x1a\x43\x0c\x06\xe3\xe8\xef\xbf\x1b\xc3\ \x80\xde\x6b\xc4\xe9\x52\xec\x2a\x57\xbe\x81\x66\x23\xcb\x14\x7d\ \x7d\x13\x21\x3a\x2a\x71\xbb\xcb\x96\x96\x7b\xf1\x7e\x28\x19\xea\ \xf2\x3c\x79\x76\x21\x21\xfa\x33\x52\xc9\xfc\xa5\x91\x95\x06\x3d\ \x40\x4b\x30\x05\xe9\x63\xe7\x29\x0e\x28\x14\x30\x18\x82\x1d\x28\ \xb5\xe2\x23\x22\x4c\x4e\xcf\x9c\x79\x04\x92\xde\x17\x5c\x87\x0d\ \xdb\xf3\xe5\xcb\x97\xa5\x18\x6f\xa1\xb1\x5a\xe5\x46\x45\x42\x24\ \x32\x53\x62\xdc\xa6\x4f\x1f\x97\x10\x1b\xbb\xe8\xf0\xf0\xe1\x27\ \x51\x1e\xa4\x0e\x92\x1f\x1a\x34\x88\x0c\x4b\x8f\x94\xa0\xcd\x72\ \xe4\x78\x40\x63\x44\xa8\x59\x39\x69\x95\x0a\x31\x18\x0c\x12\x9d\ \x05\x7b\x80\xf3\xc1\xb9\x60\x0d\xa1\x05\xc8\xc1\x2d\xa7\x54\x30\ \x29\x6c\xe4\x74\x6a\xda\x34\xd3\x37\x77\xee\xac\x41\x2e\xe6\xf5\ \x60\x6f\xef\x55\x4a\x2f\x35\x84\x10\x76\xc9\x52\xa0\xcf\x52\xa5\ \xf8\x10\xae\xe5\x45\xda\xc0\x60\x70\x1b\xae\xa7\x1e\x1e\xd6\xe8\ \x2a\x7a\x93\xe2\x76\x64\x54\xb8\xbe\x7e\x79\xed\xda\x34\x92\x89\ \x13\x00\x29\x0f\xc3\x83\xf9\x1e\x8a\xd0\xef\x61\x8c\x56\x8e\xad\ \x5b\x5f\xa7\x6a\x04\x18\x5d\x24\xde\xff\x8e\x95\x8e\xc1\xe0\xde\ \x77\x53\x70\xbe\x5b\x8e\x56\xca\x87\x1c\xdb\xb6\x3d\x14\x70\xfc\ \xb8\x21\xc6\x72\x28\x7a\x98\x60\x8a\xcf\x9a\x35\x7b\x31\xd6\x05\ \x1c\x49\xa5\x3f\x38\x27\xba\x84\x87\x86\x96\x13\xdf\x05\x06\x83\ \x0d\xaf\x1c\xd8\x5d\x4a\xb3\xd7\x55\xce\x79\x60\x3c\x64\xd9\x03\ \xa5\xc8\x51\x36\xf9\x6e\x75\x70\x02\x58\x4d\xa4\x0f\x18\x0c\xc6\ \x5c\x21\xf2\x61\x3b\xf9\x19\x9d\x5c\x5f\x3e\x38\x7e\xbc\xbe\xc8\ \x58\x30\x18\x8c\x13\x93\x26\x6d\x20\x99\x3e\x18\x1e\x85\x19\x1c\ \xc0\x3e\x19\xd4\xb7\x9c\xc1\x99\x26\x8c\x1e\x9b\x36\x6d\x6c\xbf\ \x72\xe5\xfe\xc2\x15\x2b\xbe\x43\xb9\x0f\x55\x98\x1f\x01\x57\x88\ \x8c\x03\x83\xc1\x71\x3d\x70\x41\x74\x68\xe8\x8a\x9b\xdb\xb7\x6f\ \x8b\xfd\xf0\x21\xdd\xbb\x81\x32\x18\x2a\x50\x82\x21\x63\x72\xe5\ \xc1\x2a\x60\x14\x56\xbb\xab\xe2\xc7\x00\x83\xc1\x3d\xd8\x32\xe1\ \x0b\x8d\xc1\x60\x50\x20\x1d\x41\xf3\x27\x30\x3a\x3f\x30\x23\x45\ \x6a\x19\x0c\x06\x79\x38\x91\x46\xf6\x1a\xfc\xb4\xad\x49\x93\x9f\ \x44\xc6\x82\xc1\x60\xbc\xbd\x7f\x7f\xe2\x2b\x3f\x3f\x92\x61\x6f\ \x2b\x24\x18\x8c\x0c\x92\x08\x67\x94\xa8\x51\xc3\x19\x97\xfa\xe0\ \x75\x91\xfe\x60\x30\x18\x24\x54\x0b\xda\x64\x42\xc2\x33\x83\x03\ \xdf\x8c\x14\x21\x16\xe2\x32\x53\x2f\x07\x54\x1a\x32\x16\x0c\x06\ \xc3\x7d\xc1\x82\xa6\xa8\x44\xb8\x06\x09\x87\x8c\xd6\xc2\x64\xf0\ \x19\x8e\xd1\x61\xe5\xca\x7b\xb8\xec\x01\xa3\xc5\x0f\x01\x06\x83\ \xcf\x81\x27\xb1\x3c\x5e\xc4\xb5\xa1\xf8\xd7\x81\x41\xba\x8d\x13\ \x48\x1a\x4e\xe8\x04\x18\x79\x4b\x96\xf4\x55\x09\xd1\x4a\xa8\x54\ \x9e\xd4\x09\xc8\x58\x08\x23\xf1\xef\x01\x43\x0a\xa3\x3e\xc4\xb5\ \x8b\xc8\x72\x30\xd0\xff\x6e\x23\xcd\x89\xa6\xb8\x2d\xb8\xef\x5f\ \x92\xb1\xc2\x38\x39\x75\xea\x09\x48\x85\x47\xcb\x09\x3e\xb9\x58\ \x88\xca\x22\x4b\xc0\xa0\x5e\x77\x30\xae\x38\x8b\x5c\xb9\x3e\x9e\ \x9d\x3d\xfb\x08\xfa\x22\x38\x6c\xaa\x53\xe7\xa6\x54\x8d\x3e\x29\ \xfe\x15\xe0\x0c\xf9\x4e\x90\x17\x78\x0e\x61\x9d\xcf\x10\xce\x49\ \xc6\x84\x93\xf1\x15\x9d\x29\x44\x2e\x91\xa9\x60\xc8\xde\x07\x4a\ \xff\xbb\xd9\x60\x8f\xcf\x9f\x3f\x4f\x75\x68\xda\xf4\x16\x8d\x9b\ \xe5\xca\xd5\x48\xfc\xf0\xe0\x49\xee\x07\xa6\xec\xeb\xd1\xc3\xfb\ \xa9\xbb\xfb\xfa\xd3\x33\x66\x1c\x40\xbb\xdf\x3d\xd4\xe8\x10\x1c\ \x37\x50\x08\x3d\x91\xe1\x60\x98\x08\xd1\x5c\x11\xb4\x75\x1e\x38\ \xf0\x38\x35\x2e\x11\x12\x07\xfa\xf5\xb3\xa5\xf1\x3d\x5d\xba\x18\ \xcb\x39\xdb\x8a\xb9\xb1\xc3\xb5\xb0\xf8\xe1\xc0\x06\xf7\xdc\x3c\ \x57\xae\xa8\xe8\x97\x2f\xcd\xa9\xbf\x1a\xf8\xfb\xc9\xc9\x93\x47\ \x91\xce\x87\xdc\x66\xfa\x83\xad\x44\x46\x82\xe7\x80\x9c\x57\x37\ \x20\x46\x1b\xbf\xb1\x56\xad\x47\xe8\xe6\x9a\x8c\xb1\x6e\x78\xa4\ \xc2\xd5\x00\x73\x71\x90\xe6\xe2\xfa\xe6\xcd\x73\x05\xb0\x4c\x5f\ \x7f\xaf\x9c\x9b\x47\x3f\x60\x09\x10\x3b\x4d\xce\xcc\x9a\x75\x14\ \x86\xd6\x41\x48\x58\x95\x2b\x37\x8b\xc6\x37\xd6\xac\xf9\x18\x7f\ \x04\xb1\x52\x18\xd5\x29\x7d\x3d\x66\x0c\xf2\x0e\xc3\xd0\xc6\x80\ \x0b\x69\x1e\x0e\x8f\x18\x71\x2e\xe6\xed\x5b\x63\x9b\x72\xe5\x42\ \xa5\x41\xbd\xc7\xb3\x60\xd9\x11\x88\x54\xc5\xfa\x0b\x00\x5b\xcc\ \x4d\x34\x76\x64\xd4\xa8\xfd\x18\xa3\x36\x5d\x4d\xc0\x36\x42\x03\ \xd2\x58\xe7\x80\x1d\x84\xce\x80\x91\x2d\x5f\xe9\xd2\x21\x1d\x56\ \xad\xf2\xc6\xcd\x65\xa5\x96\x2b\xe6\xe5\xcb\xf9\x06\x05\x0b\x86\ \xfd\xee\xe3\xb3\x7f\xd2\xdd\xbb\x1b\x0d\x5b\xb6\xf4\xcb\xa6\x52\ \x0d\x40\x94\xfc\xe1\x12\x7a\x25\x5d\xc0\x28\x25\x84\x91\x4a\x88\ \x8d\xe0\x0a\xbd\x9c\x39\x13\xda\x9a\x9b\x5f\xc9\x57\xa2\xc4\xfa\ \x81\xce\xce\x96\x95\x3a\x75\xf2\xd1\xcf\x9f\x3f\x29\x67\xee\xdc\ \x02\x3f\x9f\x1f\xe9\xe9\x79\x48\x08\x11\xb0\x50\x88\x12\x21\x57\ \xaf\x0e\x45\xf8\xe0\x4d\xf7\xcd\x9b\xef\x60\x2c\x36\x45\x08\x73\ \x5c\xbd\x60\x5c\x47\xc9\xf1\x22\x57\x4d\x3a\x83\x4f\x03\xdd\x31\ \x67\xdb\x84\x6e\x80\xf1\xcc\xd3\x73\x1d\x56\xb7\x7a\x42\x02\x93\ \x63\x4d\xab\x1b\xf4\xfa\xef\x5f\x5d\xb7\x6e\x10\xd4\x88\xd7\xe3\ \xf9\x28\xe7\x41\x83\x3c\x69\x1c\x0d\x30\xec\x44\xba\x81\xe1\xb7\ \x65\xcb\x12\x5b\x23\xa3\x17\xb4\x62\xc1\x3b\x19\x02\x83\x2a\x86\ \xf9\xc8\x05\xfe\x0e\x9a\x4a\x2e\x06\x5b\x49\x43\x5a\x07\xa6\xdc\ \xd8\xbc\xd9\x11\x63\x0d\x04\xf0\xe8\xf8\xf1\x16\xe8\x22\x14\x47\ \xca\xd2\x1b\xaa\x57\x37\x12\x12\x3b\xdb\xb7\xdf\x2d\x3b\x0a\xd9\ \xe2\xdd\x9c\x42\x27\xc0\x5e\xca\x61\xa0\x4a\x00\x08\x09\x54\x85\ \xc1\x25\x22\x4c\xf0\x49\x23\x06\x94\x88\x43\x7c\x01\xe8\xf3\x07\ \xae\x2a\x5c\x38\x82\x1a\x68\xe0\xfd\x3c\x22\xbd\xc0\x5e\xe2\x4a\ \xf0\x44\xce\xf2\x30\x36\x76\xd9\x58\xbb\xf6\x15\xf7\xf9\xf3\x0d\ \x35\x9e\x15\x96\xe2\xb5\xb9\x85\x04\xce\x73\xaf\xd1\x66\xeb\x35\ \xc6\x26\x2a\xf3\x86\x79\x19\x43\xf3\xe5\x32\x64\x88\x07\xc6\xba\ \x09\x80\x0c\x17\xef\x46\x59\x95\x2e\xfd\x26\x29\x21\x61\x9e\x74\ \xc2\xe8\x02\xb8\x8d\x2f\x75\x8f\xa1\xc0\x37\x78\x92\x9c\x25\x8f\ \xdd\xdc\x36\x3a\x0d\x18\xe0\x45\x93\xb8\xbb\x4b\x97\x4b\xa4\x52\ \xec\x3c\x64\xc8\xef\xcf\x3c\x3c\x68\x35\x6c\x29\xb7\x2c\x9d\x64\ \xc3\x0b\x6f\xd0\x01\x6c\x21\xbe\x17\x3c\x07\x39\xc0\x36\xa0\x31\ \xd8\x4c\xfc\x09\x56\xe4\xcf\xff\x80\x9a\x93\xb8\x0e\x1d\xda\x57\ \xce\x43\x5e\x30\x14\xe3\x61\xf2\xcb\x30\x9f\x1c\xdf\x0c\xa6\xec\ \xea\xd4\xc9\xd7\x75\xc4\x88\x09\x3a\xe4\x6d\x66\xc0\x70\x4c\x94\ \xcc\x86\xad\x8d\x1a\xdd\xc6\xa4\x8d\xd8\xdf\xab\xd7\x62\x7c\x3b\ \xbe\x96\xde\xcb\xc2\x60\x79\x70\x20\xa8\xa7\x6c\x6b\x10\xb7\xfb\ \x88\x6d\x50\x20\x8c\x34\x49\xae\x86\xe3\xc4\x77\x83\xf1\x77\xb6\ \x7d\x37\xec\xed\x47\x58\xe4\xc9\x13\x2b\xe7\xeb\x29\x98\x00\xa6\ \x78\x99\x99\x39\xd1\x97\xa1\xdc\xa9\xd4\xc5\x98\xe2\x65\x56\x18\ \x08\xd6\x11\x59\x0f\xc6\x23\x2f\xaf\xa2\x07\xfb\xf5\x3b\x8b\xe6\ \xf3\x89\xe4\x91\x5c\x9e\x37\xef\xfe\x7d\xdd\xbb\x57\xc4\x04\x2e\ \xf1\xdd\xb0\x61\x34\x0c\xe9\x77\x0d\xaf\xe6\x78\x30\x65\x75\xd1\ \xa2\xcf\x43\xaf\x5f\xb7\xa1\x33\xc6\x87\x27\x4f\x56\xaf\xad\x58\ \x31\x48\x6e\x43\xf7\x60\xc2\x6b\x8a\x8c\x02\x1b\x65\xa1\xe7\x5e\ \x5e\xcb\xb1\x03\x39\x8b\x34\xb0\x53\x34\x17\x38\xbf\xc5\x24\x44\ \x47\x53\xbf\x84\xec\xf2\x1c\xee\x45\xf3\xb8\xab\x43\x07\x5f\x74\ \x7c\xdd\x7f\xa0\x4f\x9f\xf3\x50\x96\x4e\xa6\x2f\x48\x8c\x97\x14\ \x12\x5a\x73\xba\x28\x13\x93\x1d\x58\x8f\x11\xec\x4d\x1a\x1c\xb4\ \xc2\xc9\x30\x40\xb4\xb5\xa1\xe1\x4a\x5c\xef\xd3\xb9\x41\x00\x34\ \x21\x78\x16\x81\x16\xbe\x21\x71\xe1\xe1\x16\xf8\x9d\x41\x60\x19\ \xb0\x72\x54\x68\xe8\x94\x65\x39\x73\x26\xaa\x5b\xfb\x16\x2c\x68\ \x2c\x80\x3f\x84\xc8\x98\x73\x03\xcf\x57\x71\x70\x54\xa8\x9f\x9f\ \xe9\x96\x86\x0d\x6f\x43\xac\x28\xe9\xd8\xf8\xf1\x03\x31\x37\xcd\ \x30\x5f\x43\x69\x0e\xec\xeb\xd6\x7d\x80\x77\x4c\xe4\xae\x64\x1c\ \xfa\xe2\x1d\xa1\x71\xcb\x62\xc5\xd6\x0a\x2d\xc0\x10\xb7\xcb\x55\ \xf0\x05\x7e\x7f\x90\xc8\x34\xf0\x44\x96\x05\xc7\xdd\xda\xb5\xcb\ \x01\xdb\xc9\x60\x65\x3b\x02\xed\xfd\x13\x18\xaf\x88\xfb\x3e\xb2\ \x43\xa8\x33\xc5\xed\xb4\xb7\x43\x58\x19\x3f\x2c\xcf\x97\x2f\x26\ \xfa\xd5\xab\xe9\x78\x2f\xa7\x4c\x8a\xde\x40\x67\x44\x91\x11\xe0\ \xf9\x52\x81\xa3\x3e\x45\x46\x9a\x63\x25\x9b\xaa\xb9\x85\xdc\xdd\ \xb9\xf3\x55\x3c\x33\x12\x12\x8f\x4f\x9e\xfc\x45\xc6\xf3\xae\x0a\ \x2d\x24\x25\x25\x35\x42\x67\xd8\x73\xf4\x1c\x0e\xb3\x0b\x22\xd3\ \xc1\x93\x58\x17\x9e\xb3\x39\x94\x40\x8b\x6d\x4b\x20\xbc\x5c\xf3\ \x31\x66\x80\x09\x99\x01\xa6\x3c\x39\x7b\x76\x29\xbd\x27\xb4\x80\ \x6a\xe7\xb5\x64\xac\x78\xd6\x4e\x06\x5d\x95\x8c\xf7\x70\x5c\xa7\ \x82\x19\x53\xf0\xca\xf3\x55\x03\x2c\x74\x64\xf4\xe8\x0d\xd8\x5e\ \x46\x91\x97\x19\xd9\x43\xf1\xe4\x75\xd6\x48\x1d\xeb\x49\x73\x81\ \xad\xa8\x67\x2a\x73\x9e\x0d\xe7\x75\x6f\x6a\x68\x02\xc3\xdc\x80\ \xfb\x12\x22\xf3\xc1\x07\x78\xb0\xbd\x8c\x01\x35\x14\x00\xb6\x23\ \x03\x69\xd2\xb6\x35\x6b\xb6\xfd\x1b\xbf\xd3\x08\x1c\xbf\xfe\xe7\ \x9f\x4b\xd3\x96\x14\xee\xeb\x90\x6b\xeb\xd7\xef\x82\xdb\xfa\x8d\ \x34\xbe\x00\x6a\x74\x2f\x32\x0a\x3c\x67\x4d\x3f\xbe\x79\xb3\x8c\ \x72\x62\x61\x78\xb1\x30\xa0\x77\x32\x21\x7a\x03\x98\x84\x94\xb0\ \xd8\x60\x1f\x9f\xd5\x64\x60\x42\x03\x34\x27\x6a\x8f\x66\xfb\xf6\ \xb4\x2a\x0e\x17\x59\x0a\x9e\xc4\x82\xca\x6a\xb6\x65\xfc\xf8\x1c\ \x96\x25\x4b\xbe\x93\x49\xb6\x23\xc4\x37\xb0\x48\x88\x32\x70\x5d\ \x87\xde\x73\x76\xde\x92\x9c\x9c\xdc\xcf\xba\x5c\xb9\x60\x72\xc8\ \x60\xc2\x63\xe4\x8a\x77\x0c\xd7\x0c\x12\x48\x65\xa7\x0a\x58\xf7\ \xd6\xce\x9d\x76\xab\x8b\x15\x7b\xad\xec\x32\xb0\xd5\x0f\x92\xbb\ \x8f\x3e\x5a\x0e\x93\xec\x98\x8f\x7b\x58\x15\x3f\x86\x3f\x7d\xba\ \x02\xcf\x8b\xfd\xa9\x7c\x7b\xe6\x82\xe1\xe7\xe0\x30\x77\x65\xc1\ \x82\x91\x14\x06\xc0\x04\x5c\x00\x17\xc8\xec\x14\x03\xad\x89\x9f\ \x00\x8e\xc5\x36\x65\xb8\x12\x94\x8d\x08\x0a\x5a\x45\x8d\x0f\xe9\ \x1e\x71\xa3\xa1\x22\xa3\xc1\x6d\x96\x17\x04\x5d\xbc\x68\xf7\xe2\ \xd2\xa5\xb5\x5f\xbe\x7c\x59\x2a\x83\xe5\x06\x5a\x21\xa1\x29\x34\ \x1f\xc7\x27\x4e\x74\xc3\xb3\xae\xe2\x4f\x20\xe7\xfa\x84\xb1\x10\ \x15\x44\xe6\x81\xdd\xd2\xef\xee\xdd\x5b\xea\xd8\xa6\xcd\x0d\x64\ \xb5\xab\x33\x52\x68\xeb\x82\x42\xc9\x5a\x5a\xef\x15\xc1\x19\xb0\ \xb8\x66\x50\xd6\xd3\xc4\xa4\x39\x3c\x6a\x89\x08\x21\xbc\xc0\x19\ \x31\xe3\x63\x76\x3c\x57\xb9\xc1\xc6\x60\x3b\xb0\x36\x98\x8d\x1c\ \x5f\xb2\x82\xfc\x27\xb0\x30\xf8\x61\x55\xd1\xa2\xaf\x92\xe2\xe3\ \x17\x50\x4a\x99\xd0\x86\xac\x58\x90\xde\x4c\x47\x30\x79\x6d\x85\ \x0a\x99\x1c\xcf\xe3\x89\x2c\x00\x8e\xf9\x14\x1d\x6d\x1e\xe2\xe3\ \x63\x4b\x57\x3a\xef\xa5\xb2\x05\xb1\x00\x53\x2e\x2c\x5b\x76\x90\ \x82\xb2\xb8\x9f\x48\xf1\xa0\x07\xae\xae\xf6\xb8\xcf\x82\x58\x1d\ \x83\x76\x1c\xb2\xf4\x2a\x01\x86\xa7\xae\x26\xa7\x73\x36\x9d\xbf\ \xbf\x91\x14\x61\x2d\xab\x16\x26\xc5\x45\x45\x35\x7a\xe1\xed\xbd\ \x16\xef\xf6\x13\x59\x06\x6e\x52\xdf\x0c\xfc\x05\x34\xd0\x38\x80\ \x0f\x03\x2b\x62\x92\x3e\xe1\xdb\xf0\x09\x9e\x4d\x07\xb3\x43\x32\ \xa0\x20\xbc\x60\x34\x61\xbf\x8b\x2c\x03\x6f\x35\x03\x4f\x9d\xda\ \x60\x57\xb9\xf2\x63\x32\x36\xaa\xbd\x43\x0c\x6f\x37\xe6\x26\x55\ \x0f\x32\xe2\x79\xcd\xb1\x43\x09\x91\x67\xc1\xdb\xaf\x6e\xdf\x6e\ \x41\x25\x41\x42\x67\xc0\x69\x62\x07\xe4\xe4\xc4\x62\xfb\xf1\xe5\ \xe1\xd1\xa3\x9b\x30\x41\xd5\x85\x84\xdc\xde\x14\x14\x59\x09\x36\ \xba\xca\xe0\x1f\x97\x57\xad\xda\x8f\x6a\x90\x0f\xd2\x91\x75\x59\ \x5b\xa8\x48\x49\xa0\x86\x03\x46\x9d\xca\xb7\xae\x4a\x15\x1f\x1d\ \x9b\x3b\x46\x64\x68\x68\x3d\x2a\xa4\xa4\xea\x65\xf2\x66\x52\xa0\ \x75\xae\x10\xf9\x84\x2e\x82\xb3\x8b\x9a\x25\xc4\xc4\x18\x1f\x19\ \x39\xf2\x2c\x4a\x84\x6e\xb8\x0e\x1b\x96\x5a\x4f\x04\x15\xb6\xa1\ \x97\xe9\xec\x1d\x7a\xed\x1a\xa5\xf2\x19\x0a\x9d\x03\x67\xbe\xf7\ \x7c\x7b\xf7\xae\xe5\xf6\x16\x2d\x6e\xd2\x2a\x87\x04\xe7\x81\x42\ \x57\xc1\xf3\x95\x07\xec\x05\x2e\x01\x1b\xcb\x5d\xca\x7a\xd0\x44\ \xa6\xf2\xfd\x2a\x03\xe6\x5e\xb2\xe2\x5c\x47\xc1\x13\x59\x0a\xfc\ \x3d\x32\x24\x64\x25\xae\x3a\x6e\x70\x0c\xa5\xac\x87\x80\xd5\xec\ \x18\x19\x99\x94\x77\x08\x5d\x9e\x27\x4f\x78\xec\xfb\xf7\xa6\xe4\ \x2c\x4b\xc5\x31\x56\x16\xef\xcd\x05\xcd\xa8\x64\x2b\xeb\xcb\x80\ \x78\x22\xab\x83\x65\xc5\x8f\x04\x9e\xb3\xf6\xe7\x8d\x8d\x0f\xa1\ \x0c\x48\x7d\xbe\x43\xc6\xd0\x5b\xaf\xa5\x4b\xc7\xa5\xa2\x34\xd6\ \x9f\x0a\x94\xb5\x84\x6b\x6f\xca\x8a\x84\x34\x80\xc1\xe0\xf3\x5d\ \x6b\x5a\xd5\x9c\x06\x0e\xf4\xc2\x79\x3c\x49\x26\x3a\x2c\xd0\x58\ \xd9\xca\x83\xf1\x78\x16\x85\xc4\xe9\xdd\x14\x5a\x80\x32\xc0\x79\ \x0a\x39\xe0\x18\x11\x84\xf7\x4d\xd3\xde\x27\x8f\xc1\xe0\x78\x6b\ \x7f\x72\x96\x6c\x6d\xdc\xf8\x26\x92\x1b\x36\x0b\x09\x25\x39\x5d\ \xa6\x8b\x4d\x05\xbb\x80\x23\x2e\x98\x99\x1d\xa0\x71\xa2\x4d\xa5\ \x4a\xf5\x45\x9a\xc1\x60\xb0\xe1\x19\x82\xe3\x41\x13\x30\xbf\x00\ \x10\xbf\x5b\x4a\x46\x85\x62\xd8\xb9\x9a\x7a\x29\xde\xd6\xd6\x6d\ \x69\xdc\xbe\x5e\x3d\xaa\xc7\xeb\x2e\xbe\x1b\x0c\x06\x97\x01\xe5\ \x15\x12\x0e\xcd\x9a\x91\x61\x7d\xc5\x39\xef\x89\xe6\x99\x8d\x9c\ \x26\x07\xfb\xf7\xdf\x4d\x2a\x00\x24\xcb\x21\xd2\x07\x0c\x06\x97\ \x6f\x41\x1e\xdf\x4b\x36\x1a\xa1\x4a\x71\x52\x0e\xcb\x3b\x5b\x08\ \x0a\x33\x74\x02\xd3\xb9\x1b\x13\x83\xc1\x46\xd7\xdc\xd3\xd4\xd4\ \x79\x65\xa1\x42\xef\x34\xbc\x94\x89\x24\x56\x2b\x32\x04\x0c\x06\ \x1b\x5d\x23\x54\x7e\x98\xdc\xde\xbb\x77\xdb\xce\x76\xed\x4e\x9c\ \x9a\x3e\x7d\xf5\xa7\xa8\xa8\x8a\xdf\x21\xb9\x9f\x1b\x1c\x0d\x5a\ \xc0\x68\x67\xe3\x5a\x51\xfc\x0b\xa1\x12\xff\x10\x0c\x86\x3c\xdb\ \xd5\x06\xeb\x80\x5f\xc1\xf3\x2a\x95\xea\x79\x1a\x3a\x07\x75\x56\ \x09\xb1\x03\x2c\xad\x31\xfc\x25\x45\x88\x71\xcb\x84\x70\x14\xe9\ \x06\x06\x83\x9b\xc9\xd4\xc3\x8a\xf6\x11\xb1\xbb\xc4\x13\x13\x27\ \x1e\xa4\xcc\x24\x2a\xdf\x42\x91\xf3\x07\xa9\x2c\xd0\x4c\xfc\x6b\ \x90\xc5\x25\xf3\x0c\x06\x56\x31\x13\x3d\x3d\x3d\xd1\x6b\xc7\x8e\ \xbd\x3d\xec\xed\xfd\x0a\x96\x2b\x77\xaa\x7a\xbf\x7e\x7b\xda\x9a\ \x99\xed\x15\x2a\x95\xc8\x5d\xb4\xa8\x89\x90\xf8\x67\x69\x63\x0c\ \x06\xaf\x6e\xd9\x51\x89\x10\x4d\x82\xb5\xd8\x96\x4e\x02\x0b\x6a\ \x2a\x06\xd8\x18\x19\x05\x5b\x96\x28\x11\x8a\x71\x15\xe9\x65\x82\ \x91\xf8\x9d\xc5\xdf\x21\x58\xcb\x60\x30\x16\x0b\xf1\x33\x79\x36\ \xd1\x00\xf4\xb8\x12\xe3\xd3\x04\x74\x4e\x9f\x93\xdc\xbe\xba\x07\ \x9e\x9e\x5e\x37\x7a\x57\xf2\x79\x1a\x45\xa8\x18\x0c\x06\x29\x73\ \x43\xad\x3b\x6e\x63\x9d\x3a\x57\x53\x71\xa4\xa8\x85\x6b\xd1\xe3\ \xe2\x12\x55\x9e\x40\xf5\x6d\x0b\xdd\xbb\xfc\xf6\x9b\x07\x8c\x30\ \xd0\xa1\x65\x4b\x6a\xdf\xa5\x5a\x44\x6d\xf6\xfe\x1e\x18\x0c\x06\ \x8c\xed\x92\x5c\xb5\x7a\x69\x18\x5b\x77\xd2\x35\x25\x59\x45\x28\ \x8e\x59\xed\xee\xdb\xb7\x38\x82\xeb\xb1\xb6\x15\x2a\xbc\xa0\x4a\ \x75\xc8\xf9\x59\xe0\xfa\x2b\xde\x99\x09\x7e\x01\xb7\x50\x7b\x2e\ \x91\x3a\x18\x0c\x06\x29\x81\x81\x63\xa1\x97\x72\x53\x76\x62\x4a\ \xc4\xf5\x0c\x8c\xc7\x1d\xd7\xcf\xa8\xc9\x8b\x86\xb7\x92\xe4\x39\ \xfa\x61\xec\x0f\x7a\x87\x7a\xe8\xd9\xff\xfc\xf3\x3c\x3c\x4f\x40\ \x2e\xe7\xa6\x3d\x9d\x3b\x97\xb2\xab\x54\xc9\x4f\x51\xf7\x96\x4a\ \xd3\x0c\x06\x23\x95\x2d\x63\x6f\xe5\x4c\x66\x5b\xb1\x62\x30\xba\ \x37\x79\xa0\x23\xd3\xb5\xe5\xf9\xf3\x5f\xd9\xdd\xa9\xd3\x4e\xd2\ \xd2\x24\x5d\xd3\xa0\xa0\x20\x03\xea\x51\x01\x25\xe9\x8f\x7b\xba\ \x76\x3d\x43\xa1\x02\xd9\xbd\xc9\xef\xd5\xab\x57\xb9\xd1\x91\xd7\ \x0f\xab\xdf\x57\x04\xdd\x3d\xce\x2f\x5b\x56\x97\x85\x6b\xb5\xc1\ \x60\x48\x17\x3f\x74\x4a\xb7\x6e\xaa\x5b\xf7\x21\x3c\x95\x9f\xb1\ \xd2\xbd\x7d\x72\xfa\xb4\xad\x6c\xb1\x3c\x17\xec\x23\xfb\x59\x74\ \x00\x53\xa8\x43\x10\x5d\x91\x46\xf6\x42\x9e\xed\x2e\xa3\x30\x76\ \xb1\xfa\xe7\x3e\x7d\xbc\x64\x33\xcb\x56\x1a\xc6\x56\x87\x0c\x95\ \x82\xea\xb8\x65\x30\x18\x54\xe4\x0a\xce\x7a\x70\xe4\x88\x3d\x35\ \x21\xa1\xfe\x07\xe8\x53\xfe\x02\xdb\xc5\xf6\x1a\x2a\x70\x47\x94\ \x95\x10\x35\x79\xde\x67\xe7\xcc\x51\xdf\x63\x3b\x79\x99\xde\xb7\ \x29\x57\xee\x21\x9a\xcd\x98\x90\xfc\x9f\xd2\x52\x4d\xfe\xde\x50\ \x18\xf2\x27\xcb\xe2\xc5\x8d\x05\xc0\x60\x30\x64\xe7\x1e\xb0\xda\ \x33\x77\xf7\x55\x68\x02\xea\x61\xf7\xd3\x4f\x67\x4e\xcf\x99\xd3\ \x41\x39\xe7\xc1\x68\xde\x6a\x88\x18\x2d\xc1\xf6\x73\x9f\xd4\xd3\ \xa4\x5e\x15\x11\x10\xab\x5a\x83\xf1\x06\xf2\xfd\x0e\x52\xe0\x76\ \xe3\x91\x09\x13\xca\xbf\xba\x71\x63\x4d\x42\x6c\xec\x7c\xd9\xa8\ \x92\xc1\x60\x68\x06\xba\xc1\x71\xa0\x09\xd8\x5b\x48\xbc\xb9\x7b\ \x77\xa0\x8f\xb5\xf5\x5e\xb9\x65\xac\x0a\x49\x87\xab\xd2\xc9\xf2\ \xe5\xba\xbd\xfd\x4e\x4d\x15\x68\x8c\xe7\x47\x13\x51\xc5\xeb\x19\ \xb1\xb3\x63\xc7\xbe\x7f\xa1\xf0\xcd\x60\xb0\x9e\x4a\x2a\x86\x38\ \x00\x2c\x47\x4e\x10\xac\x78\xf1\x64\x50\x87\x06\x0d\x3a\x8f\xb1\ \x29\xda\x7d\xd1\xd1\x9c\x92\x3c\x9f\x51\xd8\xa2\x46\x3f\x74\x73\ \xab\x2d\xbe\x1f\x0c\x06\xe3\xf8\xf8\xf1\x0b\xd0\xf8\xf3\xc6\xe7\ \xa4\x24\xe3\xd4\x5a\x6b\x99\x66\xcb\x36\x8f\x0c\xf2\xcc\xac\x59\ \x47\x65\x97\x5e\x9d\xc2\x0f\xb5\xb7\x65\x30\x7a\x6e\xd9\xe2\x86\ \x4b\x0a\x78\x06\x25\x40\x61\x94\x63\xa9\x12\xa2\x2b\xee\x97\x26\ \x61\x81\x4b\xf9\xfa\xd5\x38\x1f\x1a\x81\x76\x58\xb5\xca\x1b\x63\ \x97\xfe\x66\x4c\x70\x16\x2e\xc5\xc1\x15\x66\x42\xc4\x68\x3c\x62\ \x30\x18\x9a\xa2\x45\xd8\x62\x8e\xa3\x40\x39\x18\x0f\xe3\xbb\x85\ \xeb\x57\xf4\x42\x20\x25\xb1\x7a\xda\xb5\x9f\x32\xf6\x77\x14\xef\ \x9d\xc7\x75\x89\xa2\xc5\x02\xcf\xe8\x7a\x79\xee\x0b\x01\x0d\xc4\ \x37\xc1\x60\xb0\xf1\x95\xa5\xb0\x02\xd2\xbe\x9e\x92\xd1\x50\xa7\ \xdd\x93\x93\x26\x6d\x37\x35\x35\xcd\xa6\xd5\x64\xc6\x44\x3a\x5b\ \x3e\x49\x8d\xcd\x14\x30\x10\x2c\x8a\x98\xde\x4c\xba\xdf\xd1\xaa\ \x95\xfb\x5f\xf7\x37\x67\x30\xd8\xe8\xaa\x81\xd3\xbd\xcc\xcc\x9c\ \x56\x15\x2a\x14\x41\xc6\x23\x57\xb1\x9c\x02\xa0\x8e\xad\xb4\xf2\ \xa1\xd4\xe7\xc9\x2b\x3f\x3f\xeb\x8f\xef\xde\x2d\xa7\x9e\x85\x14\ \x70\xc7\xea\x76\x1d\xef\x3e\x31\xcf\x95\x2b\x06\xc5\xaf\x16\xe4\ \xa4\x11\x7f\x09\x06\x83\x8d\x2e\x3b\xd8\x92\x3a\xed\x3a\x0f\x1e\ \xec\x81\xd6\xd6\xbe\xe8\x0a\x54\x50\x9e\xd1\x26\x83\x29\x90\x6b\ \x77\xa2\x3e\x17\x60\x0d\xb0\xed\xe1\xe1\xc3\x4f\xd3\x38\xd1\x6d\ \xda\x34\x2a\x11\xea\x24\xd2\x06\x06\x83\x9b\x92\x80\x7d\x41\x53\ \xb0\xbe\x00\xb0\xcd\x1c\x2b\xeb\xee\xb6\x08\x0d\x6c\xfd\xe5\x97\ \xc5\x34\x4e\x35\x77\xc8\x56\x99\x27\xcf\x86\xff\x04\x0c\x06\x77\ \x03\x5a\x5b\xa3\x86\x21\x9d\xed\xc0\x8f\x8b\x85\xa8\x2b\x00\x2a\ \xe7\xc1\x56\xf2\x22\x19\x9c\xdf\xd6\xad\x3b\xc8\x38\xa9\x8f\x21\ \xee\x17\x81\xe7\xf0\xcc\x0d\xd7\x51\x22\xed\x60\x30\x18\x88\xcb\ \xed\x44\x02\x74\xb2\x3c\xdf\x85\x11\xe9\xe7\xcd\xf5\xeb\x07\xc0\ \xd8\x26\xac\x29\x51\x22\x0f\xee\x7d\x69\x0c\x67\xbb\x58\x0d\x9d\ \x4d\x63\x16\x11\x4a\x23\x18\x8c\xce\xd6\xd6\x2b\x87\x9c\x38\x61\ \x5f\x67\xd8\xb0\x93\x45\x2a\x55\x7a\xa4\x12\xa2\x88\x00\x5a\x19\ \x1b\x5f\x26\x7b\x84\x23\x65\x2a\xae\xbf\x54\xea\xd4\xe9\xc2\xc2\ \x8f\x1f\x6d\x66\x85\x86\xae\x2c\xdd\xa0\x41\x00\xde\x33\x87\xe1\ \x79\x52\x0f\x3c\xe9\x84\xf9\x9b\x60\x30\x78\x9b\x59\x01\x1c\x1e\ \x15\x1a\xba\x84\x9a\x8d\xa8\xcf\x6f\x65\xcb\xde\x16\x00\xc2\x05\ \x17\xb1\xb2\x7d\xc1\x59\x8e\x3a\xc1\x36\x03\xeb\x44\x04\x07\x8f\ \xa0\xad\xa8\xc6\x6a\x77\x5a\x7c\x17\x18\x0c\x36\xbe\x01\xfe\xdb\ \xb7\x6f\xbf\x7b\xe0\x80\x39\x39\x4b\x90\x7f\xe9\x8d\xea\x83\x84\ \x97\xbe\xbe\xed\x84\xc4\x86\xd6\xad\xf3\x52\x38\x81\x6a\xf1\x8e\ \x8d\x1d\x7b\xea\xf8\x84\x09\xeb\x28\x77\x93\x53\xbb\xd2\x0e\x06\ \xc3\xf5\xe7\xd1\xa3\x5f\xe0\x5a\x09\x14\xc5\x6a\xd5\xf2\x0a\xbd\ \x72\xa5\xf9\xde\x2e\x5d\x16\x1a\x23\x2e\x07\xc3\x88\x0c\xbb\x78\ \x71\x1d\x1e\xa9\xaa\xf6\xee\x7d\xa5\xd7\xb6\x6d\x6e\x74\x04\x3b\ \xf4\xeb\xaf\x3f\x51\xad\x1d\xc6\x0d\xc1\xb7\x5f\x85\xd8\x6b\x21\ \xc4\x1d\xf1\xf7\xc1\x60\x30\x5e\x05\x04\x18\xa2\xc0\xf5\x8e\x86\ \x14\xdf\x67\xba\x42\xaa\x2f\x22\x2e\x2c\x6c\x29\x35\xa7\x24\x59\ \x3f\x12\x37\x92\x1d\x83\xe2\xe5\x36\xf3\x4b\xda\x1c\x2b\x0c\x06\ \x0b\x1a\x19\x92\xdc\x5e\x72\x72\x72\x3f\x7f\x47\xc7\xed\x90\xe2\ \x73\x5e\x9e\x2f\xdf\x2b\x45\xb8\x08\xc6\xd6\x46\x00\xb2\x7f\x79\ \xca\x86\x1a\x35\x1e\xc5\x85\x87\x5b\x3c\x3c\x7e\x7c\x93\xad\x91\ \xd1\x0b\x69\xa0\x83\xbf\xf1\xdf\x2e\xfd\xbf\x5e\x4a\x06\x83\x71\ \x32\x07\xb6\x91\x16\xfa\xfa\xb5\x72\x15\x2c\x78\xb4\x58\x8d\x1a\ \x4f\xbe\x24\x24\x14\x2d\x58\xbe\x7c\x48\x1b\x33\xb3\x2b\x78\xee\ \x43\x2d\xb8\x54\x42\xd4\x37\x28\x54\x28\xea\xc3\xa3\x47\x95\xad\ \x4b\x97\x1e\x71\x6f\xcf\x9e\xa0\xd1\xde\xde\xb6\x39\xf3\xe6\x8d\ \xd5\xcf\x9f\x7f\x89\xd0\x02\x06\x26\xa4\x08\x11\xa4\x61\x74\x0c\ \x06\xc3\x6d\xfa\xf4\x3e\x56\x65\xca\x3c\xd3\xd8\x4e\x7e\x5d\x91\ \x2f\xdf\x53\xa9\x1c\x56\x4b\x00\xd4\x68\x52\xc6\xed\xee\xd1\xca\ \x66\x5d\xb6\x6c\x80\x8c\xd9\x79\x40\xd8\xe8\x0d\xb6\x9e\x31\x78\ \x97\xf4\x54\x54\x18\x3f\x08\x5a\x91\x34\x3b\x9e\x3d\x8f\x7e\xff\ \xbe\xb2\x00\x00\x06\x83\x41\x02\x44\xe8\x71\x37\xcb\x7b\xcd\x9a\ \x7d\xdb\x9a\x34\xb9\x88\x02\xd7\xc3\xb4\x65\xc4\xf8\x60\xa1\x01\ \xd2\xc0\xa4\xd0\xc1\x96\x06\x0d\xa8\xf8\x75\x1a\x12\xa0\xf7\xa3\ \xe5\xf2\x1b\xb9\xcd\x0c\xc4\x98\x91\x00\xcc\x0d\x0c\x8e\x29\xc6\ \xbb\xb7\x6b\x57\x9f\xc4\xd8\xd8\xfa\xe2\x7f\xc0\x60\xb0\xd1\xe5\ \x90\x2a\x62\x33\xc0\x85\x60\x1b\x50\x25\x34\x70\xd7\xc9\xe9\xd7\ \xd5\xc5\x8a\x85\xd1\x0a\x08\xa7\x89\x07\x8c\xc9\x22\x2c\x30\xd0\ \xdc\x75\xe8\x50\x77\xef\xd5\xab\xf7\x29\xca\x61\x97\x2d\x2d\x27\ \xd0\x3b\xa8\x44\xf8\x2c\x0d\xef\xba\x89\x10\x4d\x45\xda\xc0\x60\ \x70\x5f\xf3\xf0\xe7\xcf\xe7\xef\xed\xde\xdd\xc7\x5c\x5f\x3f\x5c\ \x7a\x2b\x63\xd1\x76\x79\x11\xe9\xab\xc8\xd7\x54\x18\xbb\x40\xb1\ \xbb\xa7\xee\xee\xeb\x51\x91\x70\x0e\xc2\x47\xf1\xb2\x06\xaf\x9d\ \x48\x13\x18\x0c\x36\xba\x3c\xe0\xb0\xe4\x4f\x9f\xcc\xae\xd8\xda\ \xee\x71\x6c\xd3\xc6\xed\xa2\xb9\x79\x2b\x32\x46\xa9\x28\xdd\x9f\ \x0c\xf1\x40\xdf\xbe\x17\x30\x36\x04\xec\x0d\x29\x3f\x4b\xd7\xe1\ \xc3\x4f\x3d\x3e\x71\xa2\xa5\x4a\x7c\x0f\x18\x0c\x36\xbc\xc2\xb8\ \xd4\x05\x6b\x83\x4f\xa0\xaf\x72\x5a\x7a\x26\xaf\xe6\x30\x30\xa8\ \x31\x23\x38\x78\x6d\xde\xe2\xc5\x6d\x31\x1e\x45\xdd\x7f\xf0\xa8\ \x23\x18\x2c\xd2\x0f\x0c\x06\x03\x0e\x93\xfb\xcb\xf3\xe4\xf9\x78\ \x6d\xfd\xfa\x91\x19\x5c\x2d\xc0\x60\x30\xda\x98\x9a\x5a\x93\x9a\ \xf4\xe9\x69\xd3\x36\x99\x0a\x71\x18\x1c\x85\xa0\x7a\x99\x0c\x30\ \x38\x06\x83\xd1\x62\xc1\x82\xe3\x7d\xf7\xec\xd9\x5c\xaa\x7e\xfd\ \x47\x2a\x3d\x3d\xd2\xc5\x74\x44\x50\xfd\x84\xc8\x18\x30\x18\x0c\ \x52\xfe\x02\x67\x24\xc6\xc5\x2d\x23\xc9\xbe\xb0\xc7\x8f\xe7\x2a\ \x15\xe8\x19\xe7\x34\x61\x30\xd8\xf0\x4a\xe3\x52\x4d\xda\x99\x0f\ \x1c\x28\x09\xe2\x5f\x09\x06\x83\xc1\x60\x30\xfe\x0f\x1d\x9b\x1f\ \x99\x66\xa1\x3a\xad\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\x53\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x03\x00\x00\x00\x9d\xb7\x81\xec\ \x00\x00\x02\xeb\x50\x4c\x54\x45\x00\x00\x00\x00\x00\x00\xff\xff\ \xff\xff\xff\xff\x7f\x00\x00\xff\xff\xff\x66\x00\x00\xff\xff\xff\ \x7f\x00\x00\x71\x00\x00\x7f\x00\x00\xff\xff\xff\x73\x00\x00\xff\ \xff\xff\x7f\x00\x00\xff\xff\xff\x75\x00\x00\x7f\x12\x12\xff\xff\ \xff\x77\x00\x00\x78\x00\x00\xff\xff\xff\xff\xff\xff\x79\x00\x00\ \xff\xff\xff\x7f\x00\x00\x7a\x00\x00\xff\xff\xff\x7f\x00\x00\xff\ \xff\xff\x7b\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \xff\x7c\x00\x00\x7c\x00\x00\xa3\x47\x47\xff\xff\xff\xff\xff\xff\ \x7f\x00\x00\x7c\x00\x00\x7f\x00\x00\xff\xff\xff\xff\xff\xff\x7f\ \x00\x00\xff\xff\xff\x7d\x00\x00\xff\xff\xff\x7f\x00\x00\xea\xd5\ \xd5\xff\xff\xff\xff\xff\xff\x99\x38\x38\x7d\x00\x00\xff\xff\xff\ \xff\xff\xff\xff\xff\xff\x7d\x00\x00\xff\xff\xff\xff\xff\xff\x7f\ \x00\x00\x7f\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\ \x00\x7e\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ \x7e\x00\x00\x7e\x00\x00\xff\xff\xff\x7f\x00\x00\xb7\x70\x70\x7f\ \x00\x00\x7f\x02\x02\x7e\x00\x00\xff\xff\xff\x7e\x00\x00\xff\xff\ \xff\xc5\x8c\x8c\x7f\x00\x00\xff\xff\xff\x7f\x00\x00\xff\xff\xff\ \x7e\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x00\xff\ \xff\xff\xba\x75\x75\x7e\x00\x00\xa8\x51\x51\x7e\x00\x00\xed\xdc\ \xdc\xff\xff\xff\x7f\x00\x00\x7f\x00\x00\xff\xff\xff\x7f\x00\x00\ \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd8\xb2\xb2\xff\ \xff\xff\x7f\x00\x00\xff\xff\xff\x7e\x00\x00\x7f\x00\x00\x7f\x00\ \x00\x7e\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb7\x71\x71\ \x7f\x00\x00\xff\xff\xff\x93\x27\x27\x7f\x00\x00\x7e\x00\x00\xf9\ \xf4\xf4\xc3\x87\x87\xff\xff\xff\xff\xff\xff\x91\x24\x24\xff\xff\ \xff\x8f\x1f\x1f\xff\xff\xff\xec\xd9\xd9\xff\xff\xff\x8c\x1a\x1a\ \x7f\x00\x00\x7f\x00\x00\x7e\x00\x00\xff\xff\xff\xff\xff\xff\x7e\ \x00\x00\x7f\x00\x00\xad\x5c\x5c\xff\xff\xff\x8d\x1b\x1b\x84\x0a\ \x0a\x81\x03\x03\x7f\x00\x00\xff\xff\xff\xff\xff\xff\x80\x02\x02\ \xff\xff\xff\x80\x02\x02\xff\xff\xff\xff\xff\xff\xb1\x63\x63\x7f\ \x00\x00\x7f\x01\x01\xff\xff\xff\x7e\x00\x00\x83\x08\x08\x7e\x00\ \x00\xff\xff\xff\xb6\x6d\x6d\x7e\x00\x00\x87\x10\x10\xd6\xae\xae\ \x7f\x00\x00\x7f\x00\x00\xff\xff\xff\xff\xff\xff\xde\xbd\xbd\xf9\ \xf4\xf4\x7e\x00\x00\x7f\x00\x00\x90\x22\x22\xdf\xc1\xc1\xff\xff\ \xff\xac\x5a\x5a\xc4\x8b\x8b\xff\xff\xff\x7f\x00\x00\xff\xff\xff\ \x90\x22\x22\x80\x01\x01\x98\x32\x32\xa3\x48\x48\xdb\xb7\xb7\xf4\ \xea\xea\xf7\xf0\xf0\xf8\xf2\xf2\xfe\xfe\xfe\x80\x02\x02\xa5\x4c\ \x4c\x8c\x1a\x1a\x81\x04\x04\x92\x26\x26\x93\x27\x27\x82\x05\x05\ \x99\x33\x33\x9a\x35\x35\x9d\x3b\x3b\x9e\x3e\x3e\xa1\x44\x44\x82\ \x06\x06\x8c\x19\x19\xa7\x4f\x4f\xa8\x52\x52\xab\x57\x57\xab\x58\ \x58\xac\x59\x59\xb0\x61\x61\xb0\x62\x62\xb2\x66\x66\xb4\x6a\x6a\ \xb9\x74\x74\xba\x75\x75\xbd\x7b\x7b\xbe\x7e\x7e\xc0\x81\x81\xc7\ \x8f\x8f\xce\x9e\x9e\xcf\x9f\x9f\xd0\xa2\xa2\xd4\xaa\xaa\xd5\xab\ \xab\xd7\xb0\xb0\xd8\xb1\xb1\xd9\xb4\xb4\x84\x09\x09\xde\xbe\xbe\ \xe1\xc4\xc4\xe7\xd0\xd0\xe9\xd4\xd4\xea\xd5\xd5\xed\xdb\xdb\xee\ \xde\xde\xef\xe0\xe0\xf1\xe4\xe4\x85\x0b\x0b\xf5\xec\xec\x86\x0e\ \x0e\x8a\x15\x15\xfb\xf7\xf7\xfd\xfb\xfb\xfd\xfc\xfc\x8a\x16\x16\ \x8b\x17\x17\xd2\x67\xa5\xb8\x00\x00\x00\xb6\x74\x52\x4e\x53\x00\ \x01\x01\x03\x04\x04\x05\x08\x08\x09\x0a\x0a\x0b\x0b\x0c\x0d\x0d\ \x0e\x0f\x0f\x13\x13\x14\x15\x15\x16\x1b\x1b\x1c\x1c\x1d\x1e\x1f\ \x21\x24\x25\x27\x27\x2a\x2b\x2c\x2d\x2e\x2f\x32\x36\x36\x39\x3b\ \x3c\x3d\x40\x41\x44\x45\x48\x4b\x4c\x4d\x4e\x4f\x50\x54\x54\x55\ \x5a\x5c\x5d\x5d\x60\x61\x63\x65\x67\x67\x68\x6b\x6c\x6c\x6d\x70\ \x71\x73\x78\x7c\x7e\x80\x81\x83\x84\x8a\x8b\x8c\x8c\x8d\x91\x93\ \x95\x95\x95\x96\x98\x99\x9c\x9d\x9e\xa4\xa6\xa7\xa7\xa8\xa8\xa9\ \xaa\xac\xad\xad\xb0\xb3\xb3\xb4\xb7\xbb\xbc\xbd\xbd\xc0\xc1\xc4\ \xc6\xca\xcb\xcc\xcd\xcd\xd0\xd2\xd4\xd7\xd8\xd9\xdb\xdc\xdc\xdd\ \xde\xe0\xe1\xe4\xe5\xe6\xe7\xe8\xe9\xe9\xea\xef\xf0\xf0\xf1\xf3\ \xf3\xf5\xf6\xf6\xf7\xf7\xf7\xf8\xfa\xfa\xfb\xfb\xfb\xfb\xfc\xfc\ \xfd\xfd\xfe\xfe\xfe\xa0\xb1\xff\x8a\x00\x00\x02\x61\x49\x44\x41\ \x54\x78\x5e\xdd\xd7\x55\x70\x13\x51\x14\xc7\xe1\xd3\x52\x28\xda\ \x42\xf1\xe2\x5e\xdc\x5b\x28\x10\xdc\xdd\xdd\xdd\x0a\x45\x8a\xb4\ \xb8\x7b\x70\x29\x5e\x24\x50\xa0\xe8\xd9\xa4\x2a\xb8\xbb\xbb\xbb\ \xeb\x23\x93\x3d\x77\xee\xcb\xe6\x66\x98\x93\x17\xa6\xbf\xd7\xff\ \xe6\x9b\x7d\xc8\x9c\x99\x85\x14\x52\xfa\x52\x39\x5d\xfa\xf9\x80\ \x28\xc4\x95\x41\x26\x36\x30\x10\xa9\x19\xd9\x78\x80\xc7\x4e\x14\ \xed\xaa\xca\x02\x72\xa3\xec\x60\x25\x96\xb0\x1e\x65\x1b\x33\x70\ \x80\xfa\x36\x09\xd8\x46\x00\xa7\x5e\x17\xbe\xa0\xe8\x68\x19\x96\ \x50\x7d\xca\xee\x68\x02\xae\xb6\x03\x5e\x9e\x7d\x08\xb0\x8e\x02\ \x66\x45\x09\x38\x61\xe6\x02\x79\x05\x10\xf9\x3f\x03\x6e\x2e\x01\ \x25\x47\x2f\x39\xb0\x2a\x34\x90\x0d\x34\x8f\xa2\x7d\x32\x13\xf0\ \xb3\xa0\x68\x2a\x0f\xe8\x84\x22\xbc\x5c\x97\x05\x8c\x95\x80\x75\ \x3c\x0b\xe8\x2d\x81\x73\x66\x16\x60\x92\xc0\xdd\xe9\x0a\xc0\xd7\ \x29\xe0\x36\x0b\x29\x6b\x7c\x37\x05\x90\x8e\x80\xa4\xfd\x8e\xe7\ \x2c\xcb\x2e\xda\xe7\x2b\x1f\xcd\x3e\xa0\x68\x33\x09\x87\x14\x37\ \xc9\xbb\xdf\xbe\x47\xb1\x9f\xb4\x71\x85\x40\xd5\x42\x02\x62\x5a\ \xa8\xfe\xb1\x39\x2a\x37\x0a\x28\x08\xea\xc2\x50\xb4\xa2\x95\x17\ \x70\xaa\x85\xb2\x6d\xc5\x58\xc2\x3c\x94\xed\xc8\xc7\x01\xca\xa2\ \x2c\xb9\x27\x07\xe8\x81\xb2\x9b\x21\x0c\xc0\x6f\x8f\x04\x6c\xaf\ \x87\x30\x80\x60\x14\xe1\x9f\x27\xc7\xaa\x30\x80\xf9\x04\x1c\xbf\ \xf7\x2e\x71\x5d\x03\x60\xb4\x89\x80\x17\xab\xbb\x96\x70\x07\x46\ \x59\x91\x8a\xab\xe1\xe2\x55\xd6\x72\x39\x9c\xfd\xbb\x88\x9a\x32\ \x8f\x6a\x28\x8a\x26\x34\x63\x01\x5e\x16\xa4\x4e\xfd\x6c\xcc\x02\ \x02\x51\xf4\x74\x51\x6a\x16\xd0\x17\xa9\xe8\xc4\x3a\xc0\x02\x96\ \x22\x15\x3b\xd7\x9d\x05\x14\x41\xea\xbc\x16\x00\x2c\xa0\x35\x52\ \x6f\xa6\x01\x0f\x98\x48\x63\xb2\x56\x81\x07\xa4\xdd\x4e\x17\xfb\ \x6d\x08\xf0\x00\x7f\xda\xae\x1f\x2e\x0d\xea\xca\x13\xf0\x2a\x52\ \x79\x6a\x4e\x7f\x18\x0e\x4e\xea\x40\xc0\xd9\x08\x30\xb6\x40\x9f\ \x6e\xed\x2d\xac\x04\x7c\xeb\x05\x6f\x25\xe0\xf6\x4c\xe3\x9a\x9f\ \xde\xed\xf3\x20\x50\x94\x39\x08\x65\x8f\xfb\x1b\xf7\x26\xfa\x72\ \x27\x22\x8f\x0a\x18\x8c\xb2\xef\x71\x0d\x8d\xfb\x18\xfb\xf2\xed\ \x6b\x77\x50\x94\xc6\x82\xb2\x67\xe1\xc6\x73\xe0\xa1\xdf\xaa\x07\ \x5b\xb2\xff\xc3\xf7\xc2\x35\xad\xb6\x71\xaf\xa8\xbf\x5a\x42\x47\ \x50\xb6\x16\x45\x37\x12\x46\x82\xb1\xb6\xf6\xe9\x61\xb8\xb7\x1a\ \x30\x25\xe9\xc0\xef\xe7\xda\x50\x47\x4f\xb5\x44\xc4\x93\x3f\xda\ \x80\x93\xda\x1f\x39\x13\x73\xff\x65\xfc\x86\x9a\x0e\xd7\x8c\xcb\ \xf1\xd2\xfb\xc5\x9e\xe0\xac\x72\xc3\x66\x4f\xea\x5c\xcd\x47\xb1\ \x66\x9a\xf3\x6b\x4d\x71\x70\xa9\x02\xa9\x20\x25\xf7\x17\x09\xba\ \x39\x39\xea\xb1\x61\x75\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x0e\x25\xb1\xe7\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0e\x26\xb1\xe7\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x33\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x09\xbc\x6f\x27\ \x00\x77\ \x00\x61\x00\x74\x00\x65\x00\x72\x00\x6d\x00\x61\x00\x72\x00\x6b\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x09\xbd\x6f\x27\ \x00\x77\ \x00\x61\x00\x74\x00\x65\x00\x72\x00\x6d\x00\x61\x00\x72\x00\x6b\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x04\xc8\x47\xe7\ \x00\x62\ \x00\x61\x00\x6e\x00\x6e\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x07\x04\x9f\x87\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0e\x24\xb1\xe7\ \x00\x6c\ \x00\x6f\x00\x67\x00\x6f\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x02\ \x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x7f\xaa\ \x00\x00\x00\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x8f\x19\ \x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xae\ \x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x46\xf2\ \x00\x00\x00\xc2\x00\x00\x00\x00\x00\x01\x00\x00\xe7\x4f\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x06\x57\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/images/0000755000076500000240000000000012536324427023007 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/images/background.png0000644000076500000240000005406212536324427025643 0ustar philstaff00000000000000‰PNG  IHDRÜ|¤1ÕÛWùIDATx^ìÝÁKUiÇñß¹×ë• •a:­$PP qV!ƒ%H-lQBÝjF¼¯`P£¶(‰ rq!\´¬“6Í´r#b†7RÜÈ‚±Âl‘òôl‚¼HYi~?ðåù ~¼‹³8ú‚ô‹·Cy1}œ”Ö©_Òí¨  E_¯ZRzhÒžŸ¶nJOL<0³”æès0´”I¿K:O$&ê»»ûj[[ŸJºë½Ó¢Ûï‘g½LŽŸ6³Ã^™€CR"Hé}G,69|üxÖÌ‚·Ý+ødEÞ!¯r·÷;äÓÂR¥7âYOiéß¹ÑѳfvÔ+׿Jëƒ4¢èIFê ’õÕÕuiAÆvЛöM47_í0³]^‘æq§­­Ë_Á™ Yg2ùö¿[·ºB1åÀ‡výLIÉý±áásfv«VíRÍ©Tê^lN7•3«ñ‚×ì­V~ÊH}¤Sªªþ ’]®­½ßßÔtc`ß¾3K(/ðY½—Q=Ñé.Û´éÅ›\.q¾¼¼&Y\üzïàà ¤Bo•÷¿V,DZT0³¤¤jo,[_ŸÝØÐû9>¢¯`|Û¼}ƒ‹´RøG€ŒÔ¤W~ÃÊbún°zÆ$­‰EQ&#Ý R‹–0¸ þ&•j˜zþüH,Ÿ)ݼùßÔºu%Qõig»T·[Šk)2R:H]’"¿—¼gZâ‚ÔäÙ•ÆÆ?Í,\Û¿(Hö±Œ”ÕR|hï* ªÊÚö¾¢‚Ù`ŒcÝÝ9ê˜cרˆba ˜‚‚ŠŠXXb") ¡ò?ï]û¬u¿ûãÌà×™÷YëY‡³Ïa>ï·yïÞûç]–#ÇzùGzׯkÕ¢?âÂ:jhyÁÉ` y®\Qѯ^™{[ZV‚…­.Zô½û‚¶6nìKF·,gÎêB×À`Ä……5´.S敲:ìëÑÃ{GÛ¶ÝtÔàšÀ¸¾AíêÐÁ«[ÜÛÒý[Û=¸³®jÕë¦*Õ××þþ­1^Üm"DOÁ`èÀŠñV‡[ÒØ´ù“ÐA\µµ]gUªÔ›5¥J…Z—-[•´¾zõ0¶)fúúmÉø¶·háûæxÖPc›i/² vš|"Wv}ýl?uéâš§X±°|¥K¿ä꺹×öí›æDDä:ˆ&3flñò¥íŒçÏ¢£Í1”#oÉ’q1aaî_­³åÈñ©û¦M–·D‰ä)^<¬ì/¿äªç,Ëœ* V‚Ùà 5jø¯ÈŸ?÷]À¾`¥¿X«aÕpĵIü›sµ.YYUÙÓ¥‹·óÀG°‚£•ÌuèPw<ë%Wðò4vhРó[Á½3ùÀIY¿c°Ász,\8àÆ–-ޏ/+þäÍœÆã¬»½yó_³ðß^ÉâDÆe_¯Þ]Üç•W‹Æ\~ûí0Ær­,Xp«Æ6sŠÈ"0ØðòÉ?Þ²ª•ÅÊàŽkÊÊÂ…ž_¸`‹÷GêÀ*¬ã¿}ûö›Û¶Yâ>»L„hJ†utìØ=‹…¨ ó¡{rš1ãØý#G†ËÏãV:Ç놂‘䤨߳ç‘äÄD3Ûo`^Y©õÀ¦à0‡4¸Žd`p°<Á5i©Jw°_?çäOŸèß> ìb®¯ï+W»¸VY cE`hêíšEîÜÏœœ6ÂÈ …Ža¡Ű’U×X‘'*ÛÇ5%KÞ|áíM+ò°¨€¹ÁÛU… G8 pêÑ™3ÕD‚Áaƒ.06ŠÑ}ÝöË/gâÂÃ-(Ö¥Ãqð3¸ÜD1;œíbÝçÏw¥Œp˜Oãý` /W.-_¾me¡B7äÖÓ ô¡-é·RàDzÁ˜ O:ýÁ‚_‘‰òæêÚµÛ`d&`+PgÃ!^¦¦õ)㯬jËóæ}óáñãÕ0²Y`õT¶É³é½ Õ«?–†š²²H‘)«Š5¡q2ØÔ‚æxæ î˜/DÁ`üÓm¥N)ÈÚ¸ùâÅJ *ƒ¥ÇÏxò¶Z•.ý†VfʧaÌ@¤xY=ã4Ë‘#–®§§Oß‚´°¸OÚÝ©Ó勽5ÒÊr’‘-Ó×÷Áö:ÈqäHñÁàm¤ÁŠÎ!L°Snú‚Ù o« ¬Ÿ”0ï™§ç:r¤|ësÂàÔélÝ»{ïêÔIí<Á™. ΕÄ+66Žò¼×_¾+^8099¹ßÛ€€5ô¿#ŒtX)†ƒ3ÁŠ?ðg0[ÿÙÊì¾páÌó&&‡ðÎb8U®’Á-Í–íóÅåËwclšæyÏ¡yóÑXÕÂéêAXäÉûÊß¿·`0YÔ-üéÓ»Ú·¿FN•%°C!zkÜQŒ'\47ßGa”ˆgÏV‘aÊÊô“`Ê©iÓŽáY'ñ·À`°á‡?>qb#ÊnííÙs”@Ìî“­‘QˆôlVë†=~<!u }M‰/ád™›vÏ/ƒÁ†Wüœ$$°ÝŒ¢¬–W†ïeÇù/޶™äùüþ9ƒÁF—M3óƾnÝc´’ÁÀv-¢,ÐEcp²àÝ  Š¶¡äõïà™*UEÚÀ`0žyx´DÎé3 gɺÂ;™rõ*Èp?Uf±Ä™eÏ©þY¥z‰kZóS ^ñ?}ëcm½wO×®ÇQ¡@†”}Ì;x6€’qŸoå Ôã­Å˜éÝ}û¶Âð’`€² ½±øÛ`0Øè²ƒíÀ±¨«ÛKbLjQÝzõZ+*Ѥ-«Ñ˃õ÷vëæ¥¡­’,kïÒƒ¯äÇwïÌ|×­Û™˜˜XÕL9ЧÏI¡$Kï•‚¶×ŽŒuòÙ… ÄwÁ`£+öúC}¬xQ8ÓÑ*ÖŸr2ÁÁ8ÃEÓxìû÷T5ê}` ­†ã±ÚÁõ(®SpÍ/ÒƒóÝR%.§Icc[›ñBä ”0éX‰ãå;Ó›ÉÊË ­n¤VoäÈm“îܱédeµ«l“&ž(X¾|H3³+d%…øM%D½œ9»­_ï2?<ܺÙìÙGUÙ²UÌ¡§w85¥hòp‚yƒÁPŒBŒN‘›ëkÖàì<ʺ\¹Ôläž³óR–ïíÅó‹eÉ’ïèÙª"E#«e°ËСçè÷-‹ë"$4*ÞÖrˆÁ`øùùå€Ìúa$5Ç)ÛHTü™Y³¨Ê|´€ZØzäåµÉÒÇð~4éd®*Tè<ïïÓg¹=ˆ{_ð_X¶ M0ì@é å°UÇÆŒ9éØºµÛWWŠÅÍK‰ý}ûö¢• N”GOÏBÉÒ;Zµº€1µ’VÆY030h©ÎQóèøñ%âÿƒÁàP8œ Žói=Ïí:l˜±<þ>VVfÝÜ6bu»„ç}ä{ù×Vªôœ<ž¤½‚w“`|Vs…È'Òƒ²Ñu{ûÐȼ- )+ž§L–þIžõÐ8äÚ/ž9³a]•*äÑ]¤ ]mpö‡'OVã,wôÔ,Ã}.EÖdúH9Œëÿœ ‘ÞÝW×­[ñ_(ÿQ‰tƒ!¥÷*‚uÀbàA‚ä,Çý¦3gëlcc‡1/ùî/àO +ÆâÅ?ƒÁÊÇ6m.d¤bƒÁ Ô'™^x\kïmŸ¼XˆŸñûý¾±Sc0Xïzbòä“V¥JÝWš˜Ñö;ƒò»¥ñzS ]¤ ƒÏxÁEÔ(øÊ+Ü·ß³óç·£ìÔé~ ü“$iƒ.‡,ê–ߥzzûÔ¶»v9ð‘H; U“J´±åþä&à× 5j<|p䈉óÀzâ»À`°ÁíSÌræÜ.R‡ ©v¾(Ä}0®¹}.=u*ä9\…UаU+ÿî7: th—^ŽÅTzzgþó)b²ê7eu±bKqÍo,D%Á`üu_¼1à Íq*r…±§ží:úûáUšûaK©.²*W®ãu[P¬Æ¢6*46,lŒÏ ÷—Ä÷ÁsÒÏLS<—,q¦~íBéb—(!úåþs[J¹yo‚w…Je€eßmåT¯Þ·oÄ÷ô%c0 ›5Û®Ÿ?˜žž9c„ËP˜Ñ=9>¾e¥N®—mØ0Büa[±âuå@k÷ÓOw°º}B°ó9úVËÒŽ´‚Á[ÍÒ ±±‹¨й¹s­—åËW«Þð1úšGG†„XàÂÿ¥md^–);!F’½ú×Û[´¸©ÞŽÖ­ý’’’þ‰”ƒ.7Øœº²H’^OVK²×¯Y,ÿkç¶ò¨ƒŠR ìúÆ;öí{‚î‘ A{lè×W@*Í/¦U½—Á}Üﻸl´«T)+Ü'ÇnÝJŠÿvwêtR18te‰Ã5Á¶|ùg_’“—F­Â’ßD»<ˆ´ )Egy¾|ËDÚÀ`£«N ³Àõgñ_µ§Å —`cdôòÚ† »ÈˆÔŠMÅ‹¿{xäHg[°€<è¶Äª†çK®nÛVÚëãÃÃçË®.iƒeÚë¹ÿkn[ê¤ùôìÙõ›Ù§nѤÉu•+îëÑ£š¶L¶™·•RãF $ƒ ÁÈcçæÍsñß±cµµÅVòñçÏŸÁ§Ö®6).n Ie/Ó×½°jUu‘f0\v1†gKº„²µQm0¨Z€åZáÈÍ‹ç]ÿJøÿ«ô2¼—ÎûðèÑÒï>\ûÁZÞÈn7Y Dü\ü°ºH‘×Iññ ¡­÷óËtž:²ëfx%þ ^KP_ëŒ7Wfv‡ãzLZÓn¼—Z8@…ç¡ÔÄõ-ÄCCàu†xh°<÷íÿ$S†Á`C,OÞKèÌ¿’aƒÄ‹+V¬Ãxª†³£M›éf9rÄÓ»6åÊ…¢îÉ">"Âtg»v×i˺ªT)Cñ§`0Øè ½kÁ‰‰OZäʧ¬V© É\03ëJÁr š#s…ô/’pî³úœ˜8˜âz0Ô¦â/Á`°Ñ廆?¾bwÇŽWÐðá¾]ãÆùS͇6}à©Sžyz®ƒ¢ï}l-£—çÉS‚”|Ó–“É`°á‡¦`§ü¸‘¸v¦Õog‡Wä;•ÀÉÉŸ>™)g><ïþƒ2Be7 Ü‹›Í ¿ÌõîO¢¹_lÏ­[/`ø,Þ{Fïe70pÂõ -'®kAOü‘-n“pýL[дÇê –Oëù6 À’J{Ô턈¡,•5nkjzY?oÞxý|ùÇûûÇ]ƒ{{miÐà2¤ág_°Jm3 å¹m62Qú*æúö½(Ë€”Ú¼x” ¤Jó›7;¢Š! c¤²¯"µÖZèlhÖ0¬3¸†AûV Óƒî¿ìïÛ·»$I«Ü¦N=€ÓG¨‚½Ä½þB!JÇrKÆweø_ÀŽwöì±’^Ï’}@­ÞLª0g0à œCîv0w¶ooO?#sß›ouıÒ=£—E¿zEý¤©ô§(˜²­iÓÛ¸/($|×­«@ãdtŸÙŒg5….€Á s?¥š7'ƒKYY¨P¤†8P,þ¸I´¥¤y3 ƒM䊥ZS²äSùEñ«Ægš¦loÕê&Þ%uXjbÌ+¶-8Ï D€ÁçLâ­¸Fa•{÷ñÍ›å6††¡ŠÑ­«VÍEè0|¬¬¦àÌCFCz Þ”_ñï< âØ’› ¬ÞÊcÏ2ÝË`¸ŽÙ„þ8ɸ _cW¥ÊIµÛ½{wŸ33gE]Ûì¿0ØŠó…(…+^þ×7o.w6ì,TÄ|J ãK9Ø¿ÿÊd! Mð3m/ONž| Fh‰ë ¼—ÇÊ»LMc0°%›H¶©N‡Êv’dï w·«Cop$¨G±9Šem5·cX)¢Áwà¸,ÞfèÓç" é †ºZV&<§³…>œ(‡_øø ÷X´ÈIvû™û'«ÁtKc0(†¹²`Áר\¶®J•@úc¥,È—{ Y{%ëC2‚ÎAphÖl%a;z\Îw*°éã'6£é÷áCÔÕ©¿P.,[vðððá'^øHŸÙºlY{ßÒ¨Ñq¡Òa¡«Ü†ÆJ™ˆÃé±ýdp(` ,ñöÞ½Ûvµo¿† Çià@/j‚ûîÝBêß…1CâZŸ 9ylO—.žH­ Åj‘H†ˆjndü'…^»fƒ÷‹ €ì)=¬´©aê0º$T“?>}zë¶6nìMÛL©$椱¢µ“gäêU[­ž[°ÍdT!W®ÌS¤p5Ø×³çI‡‡0"öý{SŒÐáÏYóêÚµ»á}U‡ˆp]‡lß, ” ìêØq?ÞKà EùаÏII3eÅzº9Y,î:P[ÈN†%Ò©²_sNˆ£4~ÞØø~§ÒÆJÆ» uÑèÀ/.]Z ÇÊ™Í?ÿ|(2(¨ ¦ÄŸL‚þˆ­ä‹/_¾,õZºÔ ŠÑa0ΣRŸ¥ ¨'2 ƽÊ‘š–ŒsíIEy7˜‚fŒÁH›¢U‚D\çQ±._!è`Ñkm©b V•• d)Ï.úœt¦Å³ú`K¬‚ÆXÝL2mec0^ùùM·¯[÷œ±dPJÚÔ=gç-tÞÃýhCæK¬‡à”¸ˆw?âŠïµÐÑ=›Æª‰ëg™—y‹.ï嫉̃Aç3piD’{Œ‹t$±´•[1ƒ‘%ïëÞÝކÙsµ'=JÄÃî Ç“sçfÛ׫w—>Åï¬Ë•[JÒë" Á`£Ó Á¦×7mÚŒ³]°C‹+€¬JCØà… ÈÑoß4ĸüÈONšTèa‰¡ +8ÝXˆ YøÙJ‚nlÙâˆJ„W2õËë;SåJKÙöµ`AñOÁ`ÈóÍp,K”¸VT ÷žtñ¢èþrÛ™@JÊ/}}›höíð|ƒÌy ’çÃ8pL{lëC-z¥´è×oîõ¿'«´Üz§_*ƒû.+¡€³óæM@pø3¶™á(\ñJdv"UìåÆZµk†Ð+@`—ýÀCHð•2CÖ”(ñJŽ·ÒÏÕIÖוøƒ |¾­]&GHg0Øøò¡:|œ&1Jê¶œ.8Y¾½{w )si¼[O³a™ÁS§þýÇņ…Í%7|Ð… màÊ ¬ÒAt¾••é”@­Rò2—à’^[g]儘ã ææÐzØÎrÈÌX¬ÝˆCÊ–§À¹â}bòä“ØŠªKkÉÑJ&K70¢+U$ü ©rÆdhH“»FW´W>"­øBž ?ƒƒ‘.Yûr;–øñã2\§€<~$‡ c^OὌDa«9ž÷útŹùóE7HeÅÈKÉÃ`õ ×õDp4ò41ÙAÆåöÇޏZ€Ÿ5¶Ñï°Í6Çýp˜ZõÁø§1.ÙõÆHÎfùÍ~žV€³sæÁ³öòÝ¢à¯`= CwÇ5›Ë°aS‘«yŠ‘…ŽB&=$ý—»lEÒT†¢¥‘=ÁÙ5ip£CCWÄ~ø°¥¹â]LWu4c¯^?ã›ÿRkwzúôßôâ³rûuóèï¿ÿ.“¦K „±FRû2ŶB…çȼkš-Û"%9 ÐgP—çN÷äýÄçè æƒÊô^Y‘àïØ­›ú³ÉÞyÿ œãqš—™™UHcºª4ïÐdÚìîÜù*½‡ÒŸÓº®¸urêÔ8¯†“ÁÛjÁªM›Þºno¿óí½{+‰Å5)bs”PƒU™2Óé}Z霋Ÿ;Qà"Úz‹ôƒû£•°‰Ë!ˆ¿Å¬.QbÐ7ÞÍi]¦ŒÅðž¹»Ûâ¾ Ž¶ºô¹P䆪„ɸυxä¤Ä-\‘/ß>r ù;:nÇøÏBÛË~dp{0¥ó-VÉmt/WvW‘^`pìKÙø¸ŽÔ8Õ 9s¥ ï IåÌ”SG?Wp„ü ȉ~Alò¶´Ui|†fêó]Ñ¢pW¶¤GÇŽ=}zæL¬ŠN;ÖéwÍ)"ÏA•%-©üüˆ£µPÞQ@í¬äòe¼§³IÅ'¦Lé‹4±çdHȼyc+§åhiBÏdHäªßÖ­›d½Ý"bšçè¹ì‡·\¤' è¬2Ï•+BÙV9äI!†Ô4"v÷šÞçï$®[Áf:¸â•Æ™m¶ÇÂ….§gÌØGÛd (1EI7$ßÚµËAÚh°²@G"x”eÉ’ïP¥qç^?&+éržeðŠ×γý½{SiO2y3aP[´eìp?XQáZSªÔ*’ºšítÐèr‚íÀ?À"$'&ƒÇä–ÙGn5´>ã(zî6mÚq8›f£7ž9…Yð{·h« vé]Að×ÞÞké›]†–k&ø‚-ò䉀äùrZB¯_·‡0FúFè8ŽóÓújÕü”UÜù×_=Þ<}Z<•Œ•¤úáÉc|þ=ølA&Bü²©nÝ)‘Ûï-"À`Ã+N$¡è¥P1(‰Í÷‘º/XàŠçÝÁ"`x4_Pí]tttÿ\¹Àq.ÀêüVÞ2¡2,§°Dã¤êú ÈWmM+; öBÆ}3%àYáô³e°ÀQ£2ÀÖñ…,çI@B´‰’…±64¾«S'_ŒÕÔLµ‚ƒ¥6žå×ÁÏÕe@óÏ›˜ztüøX­íänås’‡a…pº8tÈ×K8÷%Ý;x*í‚%1¨ñ¦›h-ƒñúöí §2 íÍ›/U23`P·©é´4W‘k~…°žÐè!‡«ƒ®­¤|&³Nú Ê…Ñ$(õp¸ìµûé§gT…n_¿¾+7î8­’J2*-†­,Pàµ\ ýÓ³Ó+ƒe†B¾a®#aH³ÁhÙ’ø4m1åùÇ‹ÆPä‹LglÅîÈ4+]Ïà€ÁŒSÌõõ?Ѷ“&¤#CJØ>@Ò3uš¯™@[êgžžk”~xDÚzÏ"H0Øð*F–eÊÔA¶†º®nwÇŽTè™[Jô¥!øî¾p¡=Æ(¹ŒˆmÍÕõlœ‹Ë—ïxxô(Åä¦ ß²¡bD(æ}G‰Ï¯*´£}ú#+L’ðËjg ­VAq'ë-‚þoIÚ‚VûTèê³mGñù­mŒ™‡™"Áàø]÷7wîXQ?8üA>‡ÑÅ7®YZ”apë¤×ï ®e…à]@@=¬ØçiÅ"ãY_µêÓ‡÷Hålךž;¶n}]6Õ,G Y¥‹\Ôé³c°¨8\,õUÒŸ‚§ó â%Üß¿CÊÏìG+¤îJMÏhå|¦Ä'1v Å»±ï>\­Èýáª3áe2Ä‹VV僑AéTuÀ|" @ˆágE:ˆžx½„b `/’ņWwkçNÈ´ßp8°‹R+Ž×ˆOöÀ w<¶X)[h¬äuÀ±Ôõ5+VrC¥N£ÒÓK@ëå7Ôá•ÜõulOe+â±:°âÕg‚C(Ø-k“Õg»ØØEÒI¤VIl¯ã¨1 ÆKM'%+G£þn=ë«02Óÿ«ÒÙÕ¦\¹¤ÃYcK(Ä ¬zr,­ ⮲oj}›(ßü²¶R%ŠÁ—E¾`H÷)#Åûöí±±±”‡é¦ ‘ú6r:ד¾ ­–ŠL;‹ ƒ-7øñ»pêìjž;w(õÇC–ŠŸ5Š¥+JeRsG»J•¤Kë€áµ¢þô“@‚M`8Ý»F’ƒc•/•mM›^‘ò`[pTÖ.+_(<Û2¬o4;»’â–²šAQù, L-eNƆç]Ÿ=[V ™²UGέÁIt¾C¿»«èâú2>>ÖÖ;e•Aq + ¤):.,ŒŒ­ÐÀÙ¹s'Kc¤ÜÍFøyŒoeºV^0«‹ï…¹:![+çÉ“ó®.Zô ¸^µ³ÛuÑÜ|=CóKäUò‘̓ÂÒ§T˜†{uR„l³XŒ·¡ÔH1•œQåøñÉk¸o#«.zQ¥…Rµ€Š ïˆçÏW’T¾HvËÕò-8:]>ƒAîó°ÀÀå”û"$ð¥1Å’““{Q…B\dä ¬lA2í…„ Bƒq^zA+y lV¶s¾`q‘ Ï¯ÑXÄ€VeûŸ /.%}Ë,”0<›H(Óå:Ëì+28Äï”Õþ†‰ÍE:€ÁFW .W„&XÝZâü'„«¶L»¤NݦêÔ¥ÍÅ;!`ÊŠ¢ð»ïV—,I’‹¥è­Î+òEi<¦p_´h5y6ƒRV;º’!â3¾‡æÌòÃ#FœÃ96^®xûÓës1ØðJƒÙHÂõiÁdD8Ï%½¼~‚è9…,‹?¯Ñ~ë9*ö$ÆÅÑ{¦2S aA]Qݺ{ð`H8„IÛupÀ€ ¨²P!*-nìíÖMé ±–ÆÎÌšuú1½®®_?÷–x'ˆÆ—fÏ>_0éyŠŒœ‡4±sp>D9r¢PVj¹ŒzµH$Kï¥>è2.Ö,½•dp8+½ó&êJí]ä‹sQA ‡“š¦`+ÒÅX’t%RX¼äåUž.´ªSóM¼«hÎ J—2 ×Þ½À%àÙFë¬\±6ƒ)Tü)åðêƒz ħɫ‰òK’;ûð$ΫѪ‚k}(oõÌÃc*NooÑÂë±›ÛF¤ÂÕ¡•˜þí8&S£LˆÚ¾$Ã̅Ç3?¿¸?I^Pü~sŒWÁ»‰Òh/¥×çb°áóQõœ'•U«X䦤R¯FZ’_¶6ir'òåËþ879¡ñiN6ƒc%ŽžI!ÛÜYìͬ ŽgÃa0{I˜Hm`:]ÁØ8hªÜ ^:Œ Ê/ ‰ y8O’aÒ»”#³U¶¥[ Á€÷²?Åê ªIFOåeRVÖ*±¦g—W®ÜpÃu©­òÁËË+;¤þœä}’YΜ}…Ù*½°eTŸïÐ::Ø¡U«¶WÖ­kL A—/÷%Ï«¬ÕË\ZÝpæ£PÉlÊÎÑH‹ç¤W/wjCÙ(HöDÎ¥®43V°ŠE"F•á-­f²œ&ÐÛÒ²V‚·d¬HŠ^CÙÿ&B4’ +{èÀg+ƒÏµ„Œ‡În´báKÁñáñã¿á3Ý£Mh©bÓ’âãMONŸ^Þ\êû ½vÀ™ôJÞ:‘`0d|khªÙŸ\©Æ–‡OT›G÷”6¯'È&Ë3Я`qÒÐÄ{Š×ð,®5t@%­èµk6p¬Ü&ÇŠ’Gê:bÄNZÝ´J¡jI9B¥5WtzJz,gÎÌçÚôƒeü´¶“·¤w2öîþý[ܦLÙC÷H±z-sÝä(»’|²dC¥¡&Áðìh˖ņgާ„gË%BÐpò%Dlçi‡F°B7ÐhÍ5Ž¢ödœûõ»€û M‚f0T›êÕ[„óO\èvô‹­¥½²âÁyrN–…Ú­¸|·n-‹³S8U'l¨Yó¾’­#Uô?#um.UÒ“'V£›Oy)E™&tΣZ=ŒçGîé±ø¨(SZ-ÿ‹‰¹­D¦!ËeÖJNÅiBÆ´J‘e×ZÍéjÍŒçónlÞìàìL¡ˆ7Ìêt*ª›i¤ˆm’+±}6:ËÒ6TãýQ`ñ_&˜'2l|­C®^µ•b­zÒÈò¦¦°…çÕ…ÖU«¶@Ù’Ê~xKÁl:8ŸxÅÖv<’ïÿé߭⤒ö¯èD[È©-AööÚñœ‚“%æÆ`Ail )~º‚#É•Mé{®@1LÄë^£6œVHZ¥áБÏõ É9P\ò™»ûÐ`p¥Ñ¾{‰úÈb FÅÇÇŠ,ƒ‚Áë«Ww…!}–µ_B||l¤Â–ö»+À(I ˜]BtôL#£—4f¦¯ßVGVðÜ`W°›øNàïr†lÕ‡R òòfG¸¤ªøQåz¸tI»kÚå¼=)U‰LƒbU&oZ[±¢zÅ‚'3óÐ[ËØ*Ò•æx¨G„3e¶ôxî:†4 çj—¡»í§ÈH³UE‹ZÊ:= ©”?`Lu1q¯õðžä¿©?™T§Z§4%dªá±ÑUCˆ`ú ‹ƒ¨G{çÖc-Ï¥z$ÃÔ²EÈáõ6´U+/¡…™BäÊ*Õ-Z•@opVZRº”2 ssç¦zCðç3ÆÆåNù(Sà®üh[˜ÔBN¦ a¢Ÿ!â°Cóæ>ÔCƒgC¨TV5'†É.Ë/ ‘n!õ.fQy*••Ú-­Iî£1™CÙñ’þ=À`r¤(ù—H ¾üäÌ™r»•ªxŒyŠF=ÚT¦Å½ZÞ[2¨+»ÂkøP® RüG•ÉåL}‚.]šŒjù2NWíOƒ38ÃRÇW8õ”þÏÀ—¤ž†/!ª1 æú‘&smK ¸;Ÿ Ž&IÉí“òh*ù^É-ùѳ˖–öÒôH¡Èr§¢mAúõ"ÃÀR¤‰!rÅ Æu1®3Ápr²\±±Ù#{ ï¿îëÑÃSJÞÍ¡Úü8mGeÛeˬH‚G]03›†¤æË0 [SAíò|܇j”§®¯çæÍ;¬ü‘b¼Í:‰µÁN²nK…óÜk|ÅRœÐVÁù”)N«žÐÂU[Û~+|Æaý ªÈH°ÑÕÄ6sJy\¡¦þæ—^¼wÆÆNäD±ªP¡ŠÌa¤‹1ø³üÝ`+lížË, \ ÀTF”Ùw0¤‰;Û·_L}ÈÁ±Rš¢ K¿Ci`LLL1 òßwq„³l"¥ÆÑç—‰Ò?>NN™²Œzé̆‰æTúFƒ&`ùT<Çhùæ½Qo§|z¬«U«ͱœÃ4îдé-h“xcw“,µHlÀ‚: £wÝÞ~yê¦}Ý»wþ×ÖrídÒ¬)8A¶=š¦Dú11Ðd˜<ù$žwÑ2Æ*à’ÌoáĈŒŒ,H2ÒÀ6_¶±©‰bs”ùÄÉâ×=^é{8ÿÅ~xüx9ÑH<gñÊî†jïtÁÏ€2 yOÏž]O¡ÿL!% |RLG)„Ã-‹{…Õ¼œZ7ZzÒÂ3¿„„ñþñã!f ç FvG)—‘N2¶)2›%~W§N[pËuèоW¬­×Ò8z·º´”=o¦e@­Á2â¿„€C‡æÃ©Žç1Q¾qQQ ¥iQ çÀhx<£º¹ÕV«D¦›N°FR¶ ¼’XÅÞ£îNéý]OÅ? Áá=*Îß*óy°oßÁp¤,Á¼ECÆo5éhj$;ƒåE¦‚'²,8]Wöj¨ôÞÒ>hc̘ž=›dÀ;à~ˆœ´ãx·²È,p5B+p.húåË—¥Ø–u¥m&æãÍÅí^\¼h-›•PC’ k×JB–švôTò)Fq>ÊáÍ3?³ˆ'² ¾-Q [ê†oÊEB‚´ië Õª`ì½çwÜ ÿ¹.Ï"³ÁjbeÀˆÝU†á¨¿()ÞúÜÓsÉ•mÛ Ãiâ%ÕÂʃ*Y6”C©8§ú¶‡GnÂJ™@÷28=Œ3‹2¿ü¢2–â:Mãü6 Lñ^³fm_äX6¤=ƒ·ìÓëÛ·MÉÿ¢—öŒ)¦d¼¹{w¾c›67hÅ©puYdpð(d±Œ§Fš=½W-Ú •$'hW³»cÇiJãI”ÝÍÕ¬weõárBg€Y4h`±ã*M'Ê‘‘#ÏÒVE)¿ÀØTpØGÉvÀ$*â:~ÒA”ç«(8’ã$[§‘ {“Dhþúk}-oõ¼—þþ•©9VÅHtÌYì㳚$PûôC``V6ed¸›šb;ùš²OèÌ&57¢¨ÔDÚóH 5ulH!M8åszYX4‘“|÷n!‘Q`ëN§>P‰S’¢¿¡¯²@³5Ît;q¯î .SÇY)¡zãÆ¬-[Þ€ÑܦN24YÈõs!…'éf~£Š‡6£Ó-[ýö›;¥î`Œ®»é}—­o3|¾kûáÃêóýò¥9î àpNžÊœÉ_P"1p–sF‰:¹Ô‘sŸïÆ‘g XnÒ·!Ê®ËF-À§½p?ì s:ôKÙ] ¶gêdrP_°ƒ\Ñ ‚Øu,Äu/øõöîÝÛð¼®|¿!¸äæ‹:˜±ÒšÎ aÎ%ƒSÒ‰ŽG…¯y…ĉ)SFJ/f´³©Tᔡ®(õâðÁ*˜¤-Í ¥Ì^ò«lZh 2 \Ô^I³}ú\´*[öê);;}ñ CßKááN"ÓÁ“Yƒ²ìëÖõClî¥R‚á>¾+ÕHQþ%‘^¦ÇâÅû)ðŠsÝ-)ç*2¬ý+húOjÑR¸«|qfvíÀÛÌyäXQ4‘åþDêæ¯“÷[š—ß~[…¬•ÉpÀøÓ{ØŽ6™nÃ%¾ʹ}[Ó¦·OL˜püÁ±ce‹æ5™_‘ÀYËÃÐz÷Z9‘Ûöídp~;ÖVª¤hÕ{okÖL2€L»‰Èt0L„è‰yø--)]JݤFаO?¶5ϕ댢ªœ5â®\½Üœ–ÚÚ¨Ñ2è4V¶)ØRîF:QÏ›˜XˆLƒ²ƒÀ@=È/P‡Ö¿ipSå®$î@¿~¶Šã_ÏÒ.»š‡z÷n)²Œ¨¨¨BkÕz¬Èº9õï?-o£;Ëq*'LÀ‘Uà/Æ¡~Û·OAø†¶„Žÿc+L5‘,C· pšO)ß7×/øb½+φýDÖ‚‘×’}— Ö'%aPÞw5MP#‘•`ëŽw2d.æå&ÉÛiÊ™S^,ÆL5Ë€>EG›A\øªKâiL£YãO Ž„ 8í¨‰ÒBMØ ‰¶þÖ††;1VBgdÒXºé§¨¨É(J^M¹°ŠP®E±3QËÝA¸õcØãÇseïó^nS§×jÖ¨cà‰- vU )Sé&ÃÈúžp=±ZMÆ9›šl4@ˆ¯ïJë£x«]•*VÏÆÊJªpÈß4•žO]¾êôñü”G‚Íï3øû+??kFc|ªÔ7Ïþm*Ý ’ ŒLôï¸ö!)vê„1CJ5âŠåŒ‘·ÓNrk"”3ÛKu.ýKÏm ĶÒ$ƒ±”¯)2lˆ•iIŽ“Ó3fXýK+AØÒt¢¯Ô}ìÑHbî[ ¼ š,VQÁÁ ëôêSpFXId8[ìÎs‰ÿTÿ¥³ß…¥Km`hÓ+tè°¤»» †õÁœ`vÐ{‰JUÑX;Ükæ ^˜ ñA¤ ë® -ÌßLO/Q[+ZS’#Iˆ=]º¸\Z±ÂšöçeìïÞwte0Á—/÷¤m%²Ö½5WxÛcdMÄ@Þb|óefü¨mMš¨s8‘!ñ›H; + üG­†’ .²Àµ’T;IRpšzÁ¾¾½eŸ2–¾Óp¾c08ˆîmeµûÝÇ¥S>¼F»?Úôæ£gÛ[¶ô¶—vt&€Kÿ^õ3ƒÁF×l,S=½ndDðZš¤’x;@JÃ9 ÛQä&¡ÔcdKĤ±3ƒÁðÚ°!/•XäÉóŠ‚äZ“¨ÙЉ ™ûjàW*€…±.F"®9®¤­iñ+Ñ]†Á`÷‘<”ÐÛW÷¼†ó* ˆŒklñEzúÔÀÆÀ”{lF܉Ô¹gchØnU±b#±ÚÅJ½•m¼Íd0¾]«µ L!B3ó¾uÙ²÷ÕÝ?Uª×H¶u—=²Ç «½0ÆbÐ;tO·nýl1í¢Þ½«´®J•g°ýŒ:=o4,IMd‡Á`lª]»Á¦:u|PoGFö†åŰ失"«F‚ú0ÂIRQ,†®HûHWE‹öá™5ê¬ü:ÝI:Wr 5 ©ý#:4tÅŽÖ­¯ÈÚ­›ô>tÉÎNéW®¢¶¼ŠÐ—© %ÝCêo7U-C*à6²ájwçTŠ/M„è+0‚ ÏDOI[]BŸAÀèÎÖÆËÊUª‰bl¤ÍHÕæ8óÝ¥VOXé¨Ãë[Ù¼°¦| ÍFöKØ£GÕ<.tI]>€Á`ÃkšJ*µZªã&lr›6í8ÆŒ¡.VçµXédI¾wðàŒwÕ¨Lè…çqtÎ3Ë™sß›{÷áyu‘: ®å ÁlcmÀÙ  ©†²âŸ8Ñ cã@=ÍÞknnëèLˆíés/SÓ´ªD3 Æ’Eqf»º¥Aƒ{2ï² Ðr/·“A^]»v7ž×ÿ ߈/ÉÉäɬ*« ú‚] WÀ¤ 5kÞÇóÉà_Æå¤c†:Õ©‚Áàn@†î_0E6%¹ˆ3\ò3OÏux§R*±¿úàb¼g¼XˆšŠ îÃ0þ\%þ W”# îM†F†gU¦Lèûû÷G -À¨–+As…[(€íÚí¦{xG×þõªÈ`°LÜZÕµh_8®´›Y ó³[ŽŽÛ.®XqZŽeJØt¼pCXBlì"ê+þ ^%ú ìa½FBô% ƒÛ¦„^»fCg@°×Ç·og`5|MãDŸ5köb¼‰H ÖÎü H$'&’c¥¨L?D«YxPÐÅ㉫ޖ† =ÉØÖW¯þ÷S¿o;É`°á嫃*™·©Î¹\SªÔiEÞú¢!ó>%>?uw_O2r²µÓ`p8™Ú3‹´Á`¼ôõ-‹¶LÁrû€sÛ>ðÝC¸è Œí7¦ÅØ -§Ê;\Ë‹´Á`ÄGDŒ@·$Gß¡Šq2(¸Æ"s9É‚ã~+mûå— ßDràH‹Ç»0¾ÄX#ñ5"£ÀMêûƒ&·÷îÝcR—èÛ׊¶’HˆŽFM^0={€}Ü,ا±âÅ›ñ/ë6ÃÆ–¶: ið‹ŒžÑkÿU»;w¾zvÞ¼1T)NëÔ!çI5!±»cÇdlðxÆ"¥ì>´5gŠð¨ùKÔg"#Á†WM€e‰÷ÉèV—(ÑCî4r*á¥Zœ+3S†`|"V¼æ?¶Š6¯p ©¨’&šÁÒ­ `x-]: áƒxe¬<Á«R¥^%%$Ì£;/­0öA˱rËXˆ B§ÁH-Þ£JÂNOO/I… ÅÓ{Òó’B•LÒÍ𹹩éÞAGÚWéÙÓ;OÉ’1*•ÊHmÌÌÎæÐ×÷˜¦R}ŽzñÂCE*uêäÑwï^‡êýúÏ–-[í*U¬ÿH½óØà0aCTB4«Ô¥‹Ÿr*‹KŒ¬®þx6 ¿D ºv"=ÁÆF»ˆ·XÙöìÛç2䨱í–-»±ì¥ nÔ`ܸkx~«°íq-–-{öÏAžž­o¬_Ÿ§‹s+ccW¬~%ñ9'•ü͹˜×£B·Àç‚—Ê {tì˜ZaxïÞ”ùnLå&tO´,^üݶ¦MÒ··;ªÖV¨àhŠŒäùp×Ä• ¼–Mçä{}À”ããÇ»AWå< 4‘æ Ù* éì‡ÜÌË x…L„èMÿ5%J\Ñ¡æ‡ Ú&b‚6ƒ)ž¦¦ÎçæÎ(Õ©躲`Á'+ò勆NcRˆ-&o XP¤'ØÒñ±›ÛFÄà®C~/r{ѯ_¯ÐÔCY$D)R×^*ÆyyÙA¢ïÍ‘  { ÞåÊ0´Ê¸¿£ãvÌWY¡`¨0)o¥ë9Í çC‰¸¯œ¬¯Û[µ:X+Ý#^t1><|&ÊL¦¦{¼Ž® 84•ì¤[éòÛoêœL¬†Ï7T¯¾8ìáùWíìv­.^üÍ}—ŠÜÃñqãöÐœÉÆ%uh¾×·lŽÉS—•`ã«4ݼ׬Ù÷)2Ò ž³×P§Š€f£ÙÓ³g‹c²C¤wìf†ÔÙðŠE¾ñ¬†ç’%Îèè¦4í¹˜·oS‰Æ ‘»‘@ÌYìE ‹–ÅŠ½’ïúI9÷,OpIpêµõëw¡Gš9îõ<9ÆoÛ6ë5¥K¯¦É¢Uãm7õýeúú Üq:´”ø2¬‘!ÏWÈõ™øoß¾}K£F— ¡â{vöì Š‘R}ÍÙÉ©SO`l$B ¨ÎxÞ§.,¦yvÌÚ†$\VÒ æÆdì—[’$Ôla‚Iµ*‡°Ú=@>à¹íi)ƒ°oq%ãÌ+'ÓŠôàÐ Ìr¯ìàd9Í•ÕähUƒ¡‘È‘˜ ì š€ 5 n4¥9šŒëµš7÷%聾ܸÑXH á6 -^È‚K•™Ak é€3Àﬤ{IÏ •ûfã+¨éXQz%$%%5ÐîÇL1¢pf÷Ò/E®çùÀÕÕ]C]é\¡!vUªÀ›û÷—ÆäZ뙼gäTñ23³Â»9!‚€•0Îyð`lAïìïÙ³ÄBègø†¡‚.Ê92:œµÏØ·jê(´ƒ”1µ¤ßÒ9Æ^ p h$$ 8Gñ8Äè‚h²xák¼³€Þµ24lOãûºw÷&¯Û‡'OVãÚcÎ` ¸€ŒOdÉÉÉmö÷êu Þd%4@º)&ߘ߲h©' ÍKi¡à°A }A*)¡‰Ä$Eœ™9s·¤ßBézÑÜ|ž9ÑäR|¿7OËPÇ‚ž‹…ÈàÆœF‰¾9ˆå­?9iÒ–ƒìtl×n¿c›6çäpΰ#Y gP•²Zs±f͇d<==¥(kBV-¿R 󨨱Î8õ¥{ô_;)Ó<ñ»ÓAù;ÊÕŠ~ÇÖȨÈP0dø§8üœÎ‚ƺS’Åš‹“©=Sìû÷£¿ñíYj)ç’2¨ÙòïÒv…VHë2e'ÅÇÓÊXZ®† )Ήxö¬Î ooR&²Õ¡Ž'£ØL|OΜ1¾»oßVúÆ ¾y³4Œ-AŠåļò÷·¦ßk«U«…3ÝSzÞ9x°•4Æ¿ ƒ²‚ôXæÇyìgú /y3h÷b šÑS0ì4ùÛ2µ.mÜè;þæMËÎ66{+wï¢W•žÞ—®vvçðÊÙ*U>\·‚ªjï[¿¦Û† »õóæý¢§R†ñý$´@yš²uƒÁÆVüLªÎˆÓ~{÷n_ç_U«DïíÚÕ‡d4[;A<œ®èþsgÀ±^C÷ÐãwLÅw‚C ãèï¿ÀÞkÄéRì*W¾f#Ë}}!:*q»Ë––{ñ~(êò8~¼¾ÈX0Œ“&m ™>…À>Ô·œÁ™&Œ›6ml¿råþÂ+¾C¹U˜WˆŒƒÁq=pAth芛۷o‹ýð!Ý»2*P‚!cråÁ*`V»«âǃÁ=Ø2á Á`P Aó'0:?0#Ej y8‘Föü´­I“ŸDÆ‚Á`¼½â+??’ao+$Œ ’g”¨Q×úàu‘þ`0$T ÚdBÂ3ƒߌ!â2S/T2 Ã}Á‚¦¨D¸ ‡ŒÖÂdðŽÑaåÊ{¸ì£ÅƒÏ'±<^ĵ¡ø×AºHNèyK–ôU ÑJ¨TžÔ ÈX#ñïC £>ĵ‹Èr0Ðÿn#͉¦¸-¸ï_’±Â89uê H…GË >¹XˆÊ"KÀ ^w0®8‹\¹>ž=ûú"8lªSç¦T>)þà ùNxaÏÎIÆ„“ñ)D.‘©`ÈÞJÿ»Ù`ÏŸ?OuhÚô›åÊÕHüðàIî¦ìëÑÃû©»ûúÓ3f@»ß=Ôè7P=‘á`˜Ñ\´u8ð85.úõ³¥ñ=]ºË9ÛŠ¹±Ãµ°øáÀ÷ܲC¨3Åí´·CX?,Ï—/&úÕ«éx/§LŠÞ@gD‘àùR£>EFšc%›ª¹…ÜݹóU<3OžüEÆó® -$%%5BgØsô³ "ÓÁ“Xž³9”@‹mK ¼\ó1f€ ™¦<9{v)½'´€jçµd¬xÖN]•Œ÷p\§‚SðÊóU,tdôè Ø^F‘—ÙCñäuÖHëIs­¨g*sž çuojhÃÜ€û"óÁx°½Œ5¶#iÒ¶5k¶ý¿Ó¿þçŸKÓ–îëkë×ï‚Ûú4¾jt/2 Z“ì˜{X?†?}ºÏ‹ý©|{æ‚áçà0weÁ‚‘À\Èì­‰ŸŽÅ6e¸” ZEéq£¡"£Ám–]¼h÷âÒ¥µ_¾|Y*ƒåZ!¡)4Ç'Ntó®âO çú„±DæÝÒïîÝ[êØ¦Í dµ«3Rhë‚BÉZZïÁ°¸fPÖÓĤ9áÛð žM³C2  ¼`4a¿‹,o5OÚ`W¹òc26ª½C o7æ&U2âyͱC ‘gÁÛ¯nßnA%ABgÀibääÄbûñåáÑ£›0AÕ…„ÜÞY 6ºÊà—W­ÚjÒ‘uY[¨HI †FÊ·®J›;Fdhh=*¤¤êeòfR u®ù„.‚³‹š%ÄÄ9ò,J„n¸–ZO¶¡—éìzí¥ò g¾÷|{÷®åö-nÒ*‡çBWÁó•ì.Ë]ÊzÐD¦òý*æ^²â\GÁY ü=2$d%®:np ¥¬‡€Õì™”w]ž'Oxìû÷¦ä,KÅ1VïÍͨd+ëË€x"«ƒeÅž³öç¡ H}¾CÆÐ[¯¥KÇ¥¢4ÖŸ ”µ„koÊŠ„4€Áàó]kZÕœôÂy}õ§¨¨Šß!¹Ÿ ZÀhgãZQü ¡ÿ †<ÛÕë€_Áó*•êy:uV ±,­1ü%EˆqË„p郛ÉÔÊö±»Ä'¤Ì$*ßB‘ó©,ÐLükÅ%ó V1===ÑkÇŽ½=ìíý –+wªz¿~{Úš™í*•È]´¨‰øgic ¯nÙQ‰M‚µØ–N j*Ø[–(Šqée‚‘øÅß!XË`0 ñ3y6Ñô¸ãÓtNŸ“ܾºžž^7zWòyE¨ )sC­;nc:WSq¤¨…kÑãâUž@õm Ý»üö›Œ0СeKjߥZDmöþ Œí’\µzi[wÒ5%YE(ŽYíîÛ·8‚ë±¶*¼ JuÈùYàú+Þ™ ~·P{.‘: )c¡—rSvbJÄõ ŒÇ×Ϩɋ†·’ä9úaìz‡zèÙÿüó<}¼d3ËVÆV‡ •‚ê¸e0Tä Îzpäˆ=5!¡þèSþÛÅö*pG”•5yÞgçÌQßc;y™Þ·)Wî!šÍ˜üŸÒRMþÞPò'ËâÅÀ`0dç°Ú3w÷Uhêa÷ÓOgNÏ™ÓA9çÁhÞjˆ-ÁösŸÔÓ¤^«ZƒñòýRàvã‘ Ê¿ºqcMBlì|Ù¨’Á`hºÁq  Ø[H¼¹{w µõ^¹e¬ I‡«ÒÉò庽ýNMhŒçGQÅë±³cǾ¡ðÍ`°žJ*†8,GN¬xñdP‡ :±)Ú}ÑÑœ’<ŸQØ¢F?ts«-¾ ãøøñ ÐøóÆç¤$ãÔZk™fË6 ò̬YGe—^µ·e0znÙâ†K x%@a”c©¢+î—&aKùúÕ8vXµÊc—þfLp.ÅÁfBÄhIÍ0,Š˜ÞLºßѪ•û_÷7g0ØèªÓ½ÌÌœV*AÆ#W±œ Ž­´ò¡ÔçÉ+??ëïÞ-§ž…pÇêvï>1Ï•+ůä¤ ƒ.;Ø’:í:ìÖÖ¾è TPžÑ&ƒ)kw¢>` °íááÃOÓ8ÑmÚ4*ê$Òƒ›’€}AS°¾°Í+ëî¶ lýå—Å4N5wÈV™'φÿ wZ[£†!íÀ‹…¨+*çÁVò"œßÖ­;È8©!îçðÌ ×Q"í`0ˆËíDt²<ß…éçÍõëÀØ&¬)Q"î}i g»X McJ#ŒÎÖÖ+‡œ8a_gذ“E*Uz¤¢ˆZ_&{„#e*®¿TêÔéÂÂmf…†®,Ý AÞ3‡áyR<é„ù›`0x›Yº„š¨ÏoeËÞ±²}ÁYŽ:Á6ëD ­¨ÆjwZ| 6¾þÛ·o¿{à€99Kéꃄ—¾¾í„Ć֭óR8jñŽ{êø„ ë(w“S»ÒÃõçÑ£_àZ ÅjÕò ½r¥ùÞ.]#.È »xq©ªöî}¥×¶mnt;ôë¯?Q­Æ Á·_…Øk!Äñ÷Á`0^¢ÀõކßgºBª/".,l)5§$Y?7’ƒâå6óKÚ+  ’Ü^rrr?GÇíâs^ž/ß+E¸ÆÖF²yʆ5Å…‡[<<~|“­‘Ñ i ƒ¿ñß.ý¿^Jƒq2¶‘úúµr,x´XO¾$$-X¾|H3³+xîC-¸TBÔ7(T(êãG•­K—qoÏž ÑÞÞ¶9óæÕÏŸ‰Ð&¤¤at Ãmúô>VeÊ<ÓØN~]‘/ßS©VKÔhRÆíîÑÊf]¶l€ŒÙy@Øè ¶ž1x—ôTT?Z‘4;ž=~ÿ¾²ƒADèq7Ë{Íš}Ûš4¹ˆ×ôeÄø`¡ÒÀ¤ÐÁ– ¨øu ÷£åò¹Í Ę‘Ì Ž)Æ»·kWŸÄØØúâÀ`°Ñå*b3À…`P%4p×Éé×ÕÅŠ…Ñ §‰ŒÉ",0ÐÜuèPwïÕ«÷)Êa—--'Ð;¨Dø, ﺉMEÚÀ`p_óðçÏçïíÞÝÇ\_?\z+cÑvyé«È×T»@±»§îîëQ‘pÂGñ²¯H 6º<à°äOŸÌ®ØÚîqlÓÆí¢¹y+2F©(ÝŸ ñ@ß¾06ì )?K×áÃO=>q¢¥J| 6¼Â¸ÔkƒO ¯rZz&¯æ00¨1#8xmÞâÅm1EÝð¨#,Ò “ûËóäùxmýú‘\-À`0Ú˜šZ“šôéiÓ6™ q… z™ 08ƒÑbÁ‚ã}÷ìÙ\ª~ýG*==ÒÅtDPý„È0 Rþg$ÆÅ-#ɾ°Çç*èç4a0ØðJãRMÚ™( â_ ƒÁ`0þ›™f¡:­IEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/images/banner.png0000644000076500000240000000755312536324427024774 0ustar philstaff00000000000000‰PNG  IHDRôK±ã…¬BPLTEÕÕÿö÷ÿÚÛÿïïÿßàÿççÿêêÿêëÿëëÿßßÿ÷÷ÿúûÿóóÿ××ÿÿÿÿæçÿÛÛÿããÿÕÖÿòóÿîïÿåæÿ–öº…äIDATx^í]Ù’$7¤:¾fvÿÿW $R×NØ#Gl„RÕö›ƒ U÷EÇ~ßwv÷íN÷mß·;Á.޶c;ˆ‡2-”ùùÊ–ð0~”€Žž„õùß•mñSÞÁ¼rž)3Àû¯™ÉÖó"˜•rÆü˜ôQYíA½“žÖõ)ŽÉé7Ïôq»ð¤÷0‡ãXßÅñk3ómÑ.È”ÙÓBË—ÅúüK¢ü‘þeT”¯¯×`ÑžVyZé7æ;ÝðÜ>8ÚÙµ!½Çú.A.±ÎÏ®ãî‘~qN”eYÃ=0Ïç2œôIIŸéƻѾÊ30é€Dzzánéy»Ù¯œ7 ½ƒ„m!ŸØŒó=Öt瑞:˜ø¯àœ°îÓ;ÆÈÌ éU¤¯lHØV]Ó•x~@º2þ”g(ë·Ÿ&½c‡Û ;8YÕ…yk:öqlùð5=8ŸuvHŸFyÆÇ ¬W‘Μ‹ñà\çwLï)Ý”÷`Ÿ& S¾Ë Þ9Þi3ìkzìÞ%ÚcM7ÌÅîЩ]Möq:`ݦ÷—Э0fw›ß™ï&kzç&^(góuÝ×t”mŽ— ǘ„p~b÷Îxð3ŠéüÄî]#}x­€íÞ;δK˜§› ùš>ó¼YÇœ'ûµäøglAø±]èÂãPlx«W>¶˜óø¡£ïM×@q›œqåµ± : Ò3?à\€?‚€,>û_*ÎažÚÁþvÁ]låL6i:ƒßb“ãSftÒ§à;Ë[©Î󬯇½A¸Ä7X?ÚØðÖAPleîøg¸û&ñMøMN¹yñj†Nú$œÏYߺ¶0¦à]~!u(¬ó~úëäcóAøM”ƒte›0›kÄ)õ2$´õñ`ׂ쎟ÝÈuìؘ`Çâ;¹Ì¿b§£ ,•´,lˆ/Æ‚ÍÜTìÞ#6r‘›yØÞ]sïvF_“=)yîý¦Ç¶'ÛÇó#5MÃvêÉlC6.V8œÓéðÝ;aT[,3c¤3ÏìAzœÓ«ÚÀvîÞ“ºtæÞyÙZdä:4-c¹wìO­æBÃÏéž{OL½câsúXåÞ^eSsâSäÞÅð0šäÞ;ˆ çu˜Ùësz™{·óOμkm.HHr¦Î½?ÊD,X/ÏéL8"]‰ç£:Ð"÷Þ±»'ñÛ¿ÔÓ_ƒñë-;ÏsDúiX±×ë÷oK̬/§|¼ZÓQ]ýcvÏf^c‹~Á¼Ž_òÛjl³<;«­ 먱íyÛH<ƒHªlb̵þÂìÎÏ.oy)ùôW1Þ«l½ûÍö7ƒ42‘¬‰%´,ç>no;9;¨cXrFS°ü±uO+€Œ±È½'mŒÄÖþ§ èç5]LÑ„Y¹²â¢ø¾ï}^ê9~t.£Ê½¯ê¢Ø¢§ô5™´)µÊ½wø»ÒmÎȨ§¾ë{¯µl(¯"ÈÕÕ ˆ[Ø¢žZ6a?¡¾&hXeë}ïB<dã.}ï`þÚ÷¾äü§nØÇä-ÐL÷Xtî§”m¸ÔÓCÝò,ûÞ?šôžœq›˜2NE=¢žü±ïÝ¢¼0"#çÙpӋèô4-[Ù÷Þ†ôêZeÓsÉ÷õtð}ïEçñ‚yXa‘þâ[ÇöM=ýÆ?¢‡¢Y¤wÒ#×äë¹è@þÝ8ÏY1Ñ{wÁC1½ƒt‹tMÅ~¯OOµ>ÍR âôVkz_ÑIMÌ÷M](}=çâ¡#B^ÖÓ™yDztÎ\õékz¯§ p` Λ‘Þ»gx –îþxÙºî›w!›4³é˜‹¹ÙT«Þ#‡Ãúk¼èÓí†×YO÷žH¸6úôWfŠ»†zqNÏåúÆ1]”º”´lú{B9}:1ZãÌøº4Ö|‡jâEÆé}<7S\&˽‡–m®”Sö.¾…, K‹éä_P6e6}Y=@¡p!ŠSìîU6y!L\ì°Ãý:.¤3r¡e›Å ù©À¡ÖBxeߌêu5+¸ðoOCÖ@QfAqbÊ/‰Ãïÿ½ÊZ6¶w|ÙúCGÆÈߨ£—*FÔÐu !ÙµlĆËYÄà7/¶—6uÒhÙ0ìUZ6 S*eå›DxÞóÜ£‘N®óa¸–Ml'¯§‹éll‰nµWÙúþÞ{ä¼m¹Lç9=¹_“ŸÓ—‹ÂÅäzgç°¼;¿yXß»o掓ô» ›ÄZÞrêÐvë@Ùó^ŸÓ_ž{ÏõåÑ÷~Ù½ÃK†æââ9ˆ[@ºë[ŒõV¤÷¾w»]jÛ‘œ‹Ü»ñþvN¿ô½ÏËœkY“ …w¨V«¸s†óqHÃ*n¸h¨u•­çÞ7?§£ûÙsï¾Ã)Îé98¾wö PÎf}ï<ÊÂêêÉwÇy\:ïœ¹ÝØ·Ó²uì0r• iŒW —JÏ&[búSßûŒ„\\4äU6IÁV´ó}:¬®§C¼(œ«B]¢½Ëšš°Ž{S8ÊÙaMǨ.^Vý"ëzæï¤?f¶¨²]rïCèÓ‡¡Ê½;é‰M¨º?’Þ§w5å>Œˆr1ˆ+ƫݻGz.96`ˆ‚úÞëé°äŠÕg+c§œäµûšŽæ3;çôÅçbà<Öôé„WÙ”pqŽá}ºù"ÇûSXoÔÙIGÁï{gªµÍûòV'LAàˆÎ™z#çݰ¥¤ÉõéuëLJ¥>ý]©Üj#×§ö¸ïL˶mê÷|ˆ¡š´ù™Ä„hôI W5Û<•É6$g® uá=yt¬é»”€s£Ý êUVœkPáCe­ôKg56»KŽ2eTÙhØŽƒØ#÷´olÈ‹Ýí¿ÿÔ²m¤é+Ï»³Ûí´Ëï†è¹÷©¨¹T¹÷9— ÙUM®±¦#@¡d³“)½_"è6~ã‰*?tv ìB-ÐK«À|›<>Ã;H-Úô…t3RâÆHc}«<øÖAâ,ÖÑKJìƒûè¤#Ö1ÃϨ³™ÊFÍý"¶à×q,ªb[ìÆH±ƒ²ßLjÔl ¼¡c“73-[¨•w6Ð. ¿í^eëØ1°{gÃ.†GÞ7Ê;™’ Z6±BË[òl %÷P^'’ŸØŠÜ;vï°Û™}oªp餗 mÛ{•m ­òî—¾÷E]4Fбé/<×z‹!É—âÈ&¢é‘½ï7™Û^õ’{7DÿQÕ÷~Õ²Öù:/T æÐëa^Ý.eÊU´E¶ŽôÞ÷Î\»m—Ü;¢]·EÂù¥ï=¿«VGA|–=ÊHz:Tâ‚Á‡õvÉ™žœÐîyXÚßrï1¿S£j~Ÿßµlã$x㚈õPÿF ã}ˆz:HZÓÌgúLm×ôþå»G®T·¨•QNÆ7F^¨àü¢e-ÒyD ‡˜ d§aˆzº‘Ž¢*‡üúéqÞˆô¾wÆîÍ9·HÎéÆyf»Îᆭç‘òD _Ô×z:®’ûäPß>Ò{y’e ß½WZ¶|x´W÷½—ßecªÅó»÷Ч«ªÊfMrȾK¤3ë·ôÙ2Òû}ï蓳ÓªÝ;†!ûpÌÕwÙ®÷½¿4Òåè×µžžÖáªOÇNŽ)W|òøyÒûfº !žÞ;baÀå¾÷ê& ÁXÞ÷>bû U==¾ª ÂЧËìÖ/Z¶ò»lúö‡‚BßK>µlŽ /¢Ð²<¥Îú>üð ò°<»=ÍÐ .õwÙ Ž¿µ7\éZ¶®º‡–0¯Ñ/†e|—íN _£4oÿWî½Ëš.Z¶wÞCËFòÛÛöT}— Z¶ãÔ²íˆqÀÖºeÕ¸1’GhÙL¹Ú”ùNú\}—mbçÕ6«­UZ¶Å¿ºiÜçø.´l[hÙríä¿ü»lˆp’øš·¿%Ò{•­ ÙØaÞRI[,o”‘{ï²é}ï„buhÙâ»lQq– w¸ÙÎögläÒ“=¤¨´}@ÝôÑDÖÔ±cGªé\Âh·;å7\ÊìK-›—-îôOtyÍ¥¾~ÄS°ÎyœÓqÝû?­«lxϽûosï8¹ÒAIÿÓwÙFeU6‹ôñ"kzÅÿê“gä X…ké=õ}ïÛ¿æÞãkMj4©éÕ—âœ~ùZ[€Y*[ÙýñLÍ2r]Ë&^ lÊ9¾$¹÷ÈÉ¡´ZÞ ;cxëûÉ9;Ü"g£„~Æã%nMj¨¬jÉ¥§7‹ôíhðÔ„g¢êÜû!†Ô;?Œš÷Å?Ñe`ÂÝ\å¬éøŸsþLÖ1%yw•·¤–ªÕN¸4.ì‘yësMʸûB„c±`®×ôвٷÙL¾è¬¯p.péO«’î„×ÝRÿ^ N«”2IEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/images/logo1.png0000644000076500000240000000312312536324427024535 0ustar philstaff00000000000000‰PNG  IHDR@@·ìëPLTEÿÿÿÿÿÿÿÿÿfÿÿÿqÿÿÿsÿÿÿÿÿÿuÿÿÿwxÿÿÿÿÿÿyÿÿÿzÿÿÿÿÿÿ{ÿÿÿÿÿÿÿÿÿÿÿÿ||£GGÿÿÿÿÿÿ|ÿÿÿÿÿÿÿÿÿ}ÿÿÿêÕÕÿÿÿÿÿÿ™88}ÿÿÿÿÿÿÿÿÿ}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~ÿÿÿÿÿÿÿÿÿÿÿÿ~~ÿÿÿ·pp~ÿÿÿ~ÿÿÿÅŒŒÿÿÿÿÿÿ~ÿÿÿÿÿÿÿÿÿÿÿÿºuu~¨QQ~íÜÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿز²ÿÿÿÿÿÿ~~ÿÿÿÿÿÿÿÿÿ·qqÿÿÿ“''~ùôôLJÿÿÿÿÿÿ‘$$ÿÿÿÿÿÿìÙÙÿÿÿŒ~ÿÿÿÿÿÿ~­\\ÿÿÿ„ ÿÿÿÿÿÿ€ÿÿÿ€ÿÿÿÿÿÿ±ccÿÿÿ~ƒ~ÿÿÿ¶mm~‡Ö®®ÿÿÿÿÿÿÞ½½ùôô~""ßÁÁÿÿÿ¬ZZÄ‹‹ÿÿÿÿÿÿ""€˜22£HHÛ··ôêê÷ððøòòþþþ€¥LLŒ’&&“''‚™33š55;;ž>>¡DD‚Œ§OO¨RR«WW«XX¬YY°aa°bb²ff´jj¹ttºuu½{{¾~~ÀÇΞžÏŸŸÐ¢¢ÔªªÕ««×°°Ø±±Ù´´„ Þ¾¾áÄÄçÐÐéÔÔêÕÕíÛÛîÞÞïààñää… õì솊û÷÷ýûûýüüŠ‹Òg¥¸¶tRNS !$%''*+,-./2669;<=@ADEHKLMNOPTTUZ\]]`acegghkllmpqsx|~€ƒ„Š‹ŒŒ‘“•••–˜™œž¤¦§§¨¨©ª¬­­°³³´·»¼½½ÀÁÄÆÊËÌÍÍÐÒÔרÙÛÜÜÝÞàáäåæçèééêïððñóóõöö÷÷÷øúúûûûûüüýýþþþ ±ÿŠaIDATx^Ý×UpQÇáÓR(ÚBñâ^Ü[(ÜÝÝÝ EŠ´¸{p)^$P èÙ¤*¸»»»ë#“=wîËæf˜“¦¿×ÿæ›}Èœ™…RúR9]úù€(Ä•A&60©Ùx€ÇNíªÊr£ì`%–°e3p€ú6 ØF§^¾ èh–P}Êîh®¶^ž}°ŽfE 8aæyù?n.%G/9°*4 4¢}2ð³ h*è„"¼\—Œ•€u< è-sf`’ÀÝé À×)à6 )k|7Ž€¤ýŽç,Ë.Úç+Í> h3 ‡7ɻ߾G±Ÿ´q…@ÕBbZ¨þ±9*7 (êÂP´¢•pª…²mÅXÂ<”íÈÇÊ¢,¹'è²›! Àol¯‡0€`áŸ'Ǫ0€ù¿÷.q]`´‰€«»–pFY‘Š«áâUÖr9œý»ˆš2j(Š&4c^¤NýlÌQôtQjЩèÄ:À–";×Aê¼, 5Ro¦˜Hc²V¤ÝNûmðÚ®. êÊð*RyjNNê@ÀÙ0¶@Ÿní-¬|ëo%àöL㚟Þíó P”9eû÷&úr'" Œ²ïq ûûòíkwP”Æ‚²gáÆsà¡ßª[²ÿÃ÷Â5­¶q¯¨¿ZBGP¶E7F‚±¶öéa¸·0%éÀïçÚPGOµDÄ“?Ú€“Ú9sÿeü†š׌ËñÒûÅžà¬rÃfOê\ÍG±fšókMqp©© %÷ º99ê±auIEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/images/logo2.png0000644000076500000240000000312312536324427024536 0ustar philstaff00000000000000‰PNG  IHDR@@·ìëPLTEÿÿÿÿÿÿÿ¿ÿÿÿ™ÿÿÿŸª²ÿÿÿ¹ÿÿÿªÿÿÿ°¶ÿÿÿª®ÿÿÿÿÿÿªÿÿÿ­³ÿÿÿ­ÿÿÿ¯ÿÿÿÿÿÿÿÿÿÿÿÿ¬°ÄGGÿÿÿÿÿÿ­¯±ÿÿÿÿÿÿ®ÿÿÿ®ÿÿÿ®òÕÕÿÿÿÿÿÿ¿88­ÿÿÿÿÿÿÿÿÿ¯ÿÿÿÿÿÿ¯°ÿÿÿÿÿÿÿÿÿ®¯ÿÿÿÿÿÿÿÿÿÿÿÿ®¯ÿÿÿ®Ñpp®®¯ÿÿÿ°ÿÿÿÚŒŒ®ÿÿÿ¯ÿÿÿ¯ÿÿÿÿÿÿÿÿÿ®ÿÿÿÓuu¯ÉQQ®ôÜÜÿÿÿ¯®ÿÿÿ®ÿÿÿÿÿÿÿÿÿÿÿÿæ²²ÿÿÿ®ÿÿÿ¯¯®¯ÿÿÿÿÿÿÿÿÿÒqq¯ÿÿÿº''®¯úôôÙ‡‡ÿÿÿÿÿÿº$$ÿÿÿ¸ÿÿÿóÙÙÿÿÿ·®®¯ÿÿÿÿÿÿ®¯Ì\\ÿÿÿ·² ¯®ÿÿÿÿÿÿ¯ÿÿÿ°ÿÿÿÿÿÿÍcc¯¯ÿÿÿ¯±®ÿÿÿÑmm¯´æ®®®¯ÿÿÿÿÿÿê½½ûôô®¯º""ëÁÁÿÿÿËZZÚ‹‹ÿÿÿ¯ÿÿÿº""¯¿22ÆHHè··øêêúððûòòÿþþ°ÇLL·°»&&»''±¿33À55Â;;Â>>ÄDD±·ÈOOÉRRÊWWËXXËYYÍaaÎbbÏffÐjjÓttÔuuÖ{{×~~×Üឞ៟⢢䪪嫫氰籱紴² ë¾¾ìÄÄðÐÐòÔÔòÕÕôÛÛõÞÞõàà÷ää² ùìì³¶ü÷÷þûûþüü¶¶Ü—< ¶tRNS !$%''*+,-./2669;<=@ADEHKLMNOPTTUZ\]]`acegghkllmpqsx|~€ƒ„Š‹ŒŒ‘“•••–˜™œž¤¦§§¨¨©ª¬­­°³³´·»¼½½ÀÁÄÆÊËÌÍÍÐÒÔרÙÛÜÜÝÞàáäåæçèééêïððñóóõöö÷÷÷øúúûûûûüüýýþþþ ±ÿŠaIDATx^Ý×UpQÇáÓR(ÚBñâ^Ü[(ÜÝÝÝ EŠ´¸{p)^$P èÙ¤*¸»»»ë#“=wîËæf˜“¦¿×ÿæ›}Èœ™…RúR9]úù€(Ä•A&60©Ùx€ÇNíªÊr£ì`%–°e3p€ú6 ØF§^¾ èh–P}Êîh®¶^ž}°ŽfE 8aæyù?n.%G/9°*4 4¢}2ð³ h*è„"¼\—Œ•€u< è-sf`’ÀÝé À×)à6 )k|7Ž€¤ýŽç,Ë.Úç+Í> h3 ‡7ɻ߾G±Ÿ´q…@ÕBbZ¨þ±9*7 (êÂP´¢•pª…²mÅXÂ<”íÈÇÊ¢,¹'è²›! Àol¯‡0€`áŸ'Ǫ0€ù¿÷.q]`´‰€«»–pFY‘Š«áâUÖr9œý»ˆš2j(Š&4c^¤NýlÌQôtQjЩèÄ:À–";×Aê¼, 5Ro¦˜Hc²V¤ÝNûmðÚ®. êÊð*RyjNNê@ÀÙ0¶@Ÿní-¬|ëo%àöL㚟Þíó P”9eû÷&úr'" Œ²ïq ûûòíkwP”Æ‚²gáÆsà¡ßª[²ÿÃ÷Â5­¶q¯¨¿ZBGP¶E7F‚±¶öéa¸·0%éÀïçÚPGOµDÄ“?Ú€“Ú9sÿeü†š׌ËñÒûÅžà¬rÃfOê\ÍG±fšókMqp©© %÷ º99ê±auIEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/images/logo3.png0000644000076500000240000000312312536324427024537 0ustar philstaff00000000000000‰PNG  IHDR@@·ìëPLTEÿÿÿÿÿÿÿ¿ÿÿÿÌÿÿÿßâåÿÿÿçÿÿÿÔÿÿÿ×ÚÿÿÿÝäÿÿÿÿÿÿÚÿÿÿÜâÿÿÿÚÿÿÿÛÿÿÿÿÿÿÿÿÿÿÿÿÜÞäGGÿÿÿÿÿÿÜÝÝÿÿÿÿÿÿÝÿÿÿßÿÿÿÝúÕÕÿÿÿÿÿÿä88ÝÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿÿßÝÿÿÿÿÿÿÿÿÿÝÞÿÿÿÿÿÿÿÿÿÿÿÿÞÞÿÿÿßëppÝàÞÿÿÿßÿÿÿðŒŒÞÿÿÿßÿÿÿßÿÿÿÿÿÿÿÿÿÞÿÿÿìuußèQQÞùÜÜÿÿÿÞßÿÿÿÞÿÿÿÿÿÿÿÿÿÿÿÿõ²²ÿÿÿßÿÿÿßßÞÞÿÿÿÿÿÿÿÿÿíqqÞÿÿÿã''ÞÞýôôð‡‡ÿÿÿÿÿÿã$$ÿÿÿãÿÿÿúÙÙÿÿÿâßÞÞÿÿÿÿÿÿßÞê\\ÿÿÿâà ßÞÿÿÿÿÿÿÞÿÿÿßÿÿÿÿÿÿëccßßÿÿÿßàÞÿÿÿìmmÞáô®®ßßÿÿÿÿÿÿö½½ýôôßÞã""öÁÁÿÿÿéZZð‹‹ÿÿÿßÿÿÿã""ßå22èHHö··üêêýððýòòÿþþßéLLâàä&&ä''àå33æ55æ;;ç>>èDDàâéOOéRRêWWêXXêYYëaaëbbìffìjjîttîuuî{{ï~~ïñóžžóŸŸó¢¢ôªªô««õ°°õ±±ö´´à ÷¾¾øÄÄùÐÐúÔÔúÕÕúÛÛûÞÞûààüääà ýììáâþ÷÷þûûÿüüââfîr`¶tRNS !$%''*+,-./2669;<=@ADEHKLMNOPTTUZ\]]`acegghkllmpqsx|~€ƒ„Š‹ŒŒ‘“•••–˜™œž¤¦§§¨¨©ª¬­­°³³´·»¼½½ÀÁÄÆÊËÌÍÍÐÒÔרÙÛÜÜÝÞàáäåæçèééêïððñóóõöö÷÷÷øúúûûûûüüýýþþþ ±ÿŠaIDATx^Ý×UpQÇáÓR(ÚBñâ^Ü[(ÜÝÝÝ EŠ´¸{p)^$P èÙ¤*¸»»»ë#“=wîËæf˜“¦¿×ÿæ›}Èœ™…RúR9]úù€(Ä•A&60©Ùx€ÇNíªÊr£ì`%–°e3p€ú6 ØF§^¾ èh–P}Êîh®¶^ž}°ŽfE 8aæyù?n.%G/9°*4 4¢}2ð³ h*è„"¼\—Œ•€u< è-sf`’ÀÝé À×)à6 )k|7Ž€¤ýŽç,Ë.Úç+Í> h3 ‡7ɻ߾G±Ÿ´q…@ÕBbZ¨þ±9*7 (êÂP´¢•pª…²mÅXÂ<”íÈÇÊ¢,¹'è²›! Àol¯‡0€`áŸ'Ǫ0€ù¿÷.q]`´‰€«»–pFY‘Š«áâUÖr9œý»ˆš2j(Š&4c^¤NýlÌQôtQjЩèÄ:À–";×Aê¼, 5Ro¦˜Hc²V¤ÝNûmðÚ®. êÊð*RyjNNê@ÀÙ0¶@Ÿní-¬|ëo%àöL㚟Þíó P”9eû÷&úr'" Œ²ïq ûûòíkwP”Æ‚²gáÆsà¡ßª[²ÿÃ÷Â5­¶q¯¨¿ZBGP¶E7F‚±¶öéa¸·0%éÀïçÚPGOµDÄ“?Ú€“Ú9sÿeü†š׌ËñÒûÅžà¬rÃfOê\ÍG±fšókMqp©© %÷ º99ê±auIEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/images/watermark1.png0000644000076500000240000003426412536324427025604 0ustar philstaff00000000000000‰PNG  IHDR¨wŠðÈÁPLTE£m“¤u¡®–л²ìˤ×Íí»»þËËþÐÎþÒÒÿÈÆþÃÃþÜÛþÀ¾þ¸¶þØ×ÿ³³þââþëëþóóþüûþ°®þðïý­€£ù÷ûª›à­¬þ¤b{¼{{½¹õ¿€€‘1=§PP©SSÊÄò•,,–@SÌ››ÏË÷®¦ñœSmܹ¹àßÿœZ{µ°ôîàá·ppžABõì컃 !¾±äÕ¬¬Î ¡¾¨Ó²lr×°°ÝÂÈíãë©v™‹",¶©äj˜‰¹ss¹vx¹ŸÌŸh£»¼¢Ë¼ªÛœ::¦q”Á»ó¦ˆÂÄ‘˜ÅºêƺåÆÀô•Ji¨…¹–01˪½µllª„³Í£ªµ Õ‹Т¢¬Z[Ѭµ¬^b¬„­­dm—V}˜33¶™ÄßÛ÷™FYš=DäÍÑæÐÒèæûêר¯``ìÚÛ³’»¯Šµ›J\ñããóíó±cc±£â÷ððøóóŒ&2³‰«º¯è,;¶„š¬Š»º´ô‰"¡P\ËÁìÙ³³…•C\Áƒƒ£Ta´ⰞۙCR±†©Ç¨À±‹³£‡Æ²œÓ¥LL¥h„´s|´¡Û´®óšLb”Eb¦ŽÎÕ¸ÅÖÁÕ¶xƒ¦ÑØÓõ¶²›WxÙÆÚ§`p§Ñ›d‘ÝÏâ0DŽ8RáÄĹ‹£äËË©‹Ã‹'9æáô`….;êäò»š¾5IŸEM–Id¡DD­Ç¡MV®r†’4C£j‘,4À†Šƒ ŸRf¼“¬Ä‹‹Ãœ°‰ÏÂåéÔÔ±¦éµ«ëÉ””¡n˜®™ÔžXsռ̿¡Ã®©õ›Us¯x’Á«ÔÁ·ì‡#¶›Ë¤rªlƒ·{‡ªrĩɒ=Sª˜Ü±’ÁÇ‘’¤z«º•µèÚ㺜Ãʱ̺«â”;Lš\‚®•Í•9F¢YmÏ»×´…¡cŒ¼¥Ñ™Om¦x£‘$$Ÿo¡†Ž)5 ‡*p5®IDATx^„]S·,Ͳí·rµ¶mmÛ¶cÛ¶mëÚ¶mýŠ›èYQQ=NveVí—=ægDd®^žrŒ,OÃfüè(u-iÊ«,Juœ5=ež2±£ž¸ ‡òÄ¥~:VÆge|âW\WòXf/ òÐf9C°­QÒ¨a¥Y —AÖ4²2þpÍPû]'# 3àì÷4 ‹R±ö"È0iF38éÉ,E‰Œôz‚¢µ<4“4¬4JKÖ’  Aé±4%¢:¬= =™˜Yxâ¢X-`°Þ0Ÿ©I›Ì¨9£(‘S™fà;Q³Ï(•¸opFÖÇ_i„Eˆ -Í D… ‚(C§…É)¼ '¢2Z‚‰!%(Ú¥MY&Š”BB™øÅ˜ S¥”è• \çIH8a¿Ñ%Ö# 5œÔŒ9O"ªM1¼ï¬å‘A bOÖe„'áDÜ\(Rô «À,%»%%iRŸvΫ¿Ð[G  ÷wÎINf4Ì<&€ ¢zÍ7eÆç”!ÒšAD¨be 0K`þ­ÿÐÃø\É@o'zÓ•KŸ¸ýŠ÷lÞ~û9ïJ K‚qnPbí¨ÒHMÓ¦&ÂzFé£ù•ñx<僔NK诧(t?{xóÇ©²~«XRrñEAïò9€nZ}㉗‘òVÙÒ_Y” •ó™ëÞF^o9Í€”…”J#]î~spJ?ÛûдÐò$  FÉ;jQÌrÞȨ7øqæÙAŠ0nž.ŽyºõÛ‘~Sx¦";›"¹Šq’‹ŠÐ16éÝtÉÓqU¢ F䬒Ÿ(£2|&=]»¦mÛ¶!ñUR᧦±õÁï}nÚØÓsÀ·:ZR õŒ¹ßûô¸W™ÖBÉá×`=Š À }°é äðï&=ŸÌ|ÓÖ~eÂEEúÏQÆaŸ÷詽UYÜÔz¹Â<TÇTîd Ö VÕv}hò@ÊÓ…yb™(wµÚÒoDô«³ØàÞâÈ-Np]€Zœè)‰¥ç°ÖK‚„—†P€+2Îh"”'•ª­‰JJ~Öf»,½OI¼¥}넾·¯gÏäÛÛ g-­¤:¾‡Ê”ä]î“$Åcîµ­®Û‘»Å3|«÷‚Oßü‚Ö«yò2 ´ºW¦o/¨pù6µýÍ™—Q5Ut©Ñ£¦IVk™°Ÿwý¾Þûú.´qiùPëèIT]–đԵÆÒbÉl˜¯Lªø ¨ JЏúnLu¡‚@íè 5&@ínx[ÑÝ?J Uó¡õL ®ÞÐÎÙ„ø‰²³wb–sa„Ô>q¾É$›‡65î¸Î«·ö™qZ Å®^•IãQÈ©íÃÇa&CMyäåsOòDh™`ÍT§(„vh[mÎjCkZlœ„8Ö £Fx{ЦºFéTTöEê;ýV„W[ó Ã"õ3v¡ÞÛûÞ<6LÍcl™á:>½§J¤IŒ˜‚š2-l> >-~_ï<Ãõ[P!¨…és:%¤Óø{å°Nï½y2}O0¢“¼w§šdZùó‘×a.`&Þ'éêÊ7ÆŽRï ÀÅàY1ãºLKWD÷no‡í@ZÛÅŸ×ááä˜Ä°¿@ ×† á¤ÅŸmèÃÓëj v% he¥T9À™ai‰ÀÙ1^Ù^“}BX ¢Êâr%@«|ok}kJœÀp‘“"-`œ|ê±L@Rƒ‘bÑD úZ º¶LÊ­o*yf*® >T¥Ù’v€9µ³—;=Ì=¿R݈º\I“ ÆÕQ…WrJOàЧÑÒ¦¹@+»[–í' ~n­(%SÔ™^˜ã<»ãæYÁ¡¥ø^4}~”/§€i­è¼-‹0¯4Ñ“*`z]râI³W ,ÌT2=i12Š©|ˆ°9œðó¶Xï¯Îs¡y!…·‡½÷3¦ Ÿjš «—Sï±[]áá µ œ §G‰X­)µ¹ÑÔîCb9gc‡ÐIûZƒ7S(Ú§áf7¢ˆCÃ7yÀ‰]¨¸zSlèó:oc’î>üÊð=ŒSŸ#s{yÕ°øšÒI°ö…ù¶^o0šÊ§¨iv„*é# R¹ÍŸ0 Q©Ìæ1_¯O:ª3÷4°(ñ›TÕüJŸ~_ïl¨`µõzS ‚œÐz+¢x)57†úøª\ƒ{s0Ô*½øxãœJ;q«†­×ë²Òâ owÒ£ƒ÷éÆ/ÓÁ°ŸQò,à™ŒˆªiÒ©X5툂Âg¨’wùbž*0Œ´[7s9|ÜRA)ÓF¤Æ=AåçÕë½Ö»#|=ô Uªåîc£f6þ“&ì¨,ôÀØ»z½~C÷­ÃÞ…Âѯ¢Žáå ö¢NJM ;*O“õ}_¯ÇT°Þ6hù4 œh;K®Z)L”ë•°–š°£ŠÖ _¯‡Jïú¶Z/E»ÎÇ^ƒƒwcAQÀâ[´3;ªzTúóõˆŸÒ|ÑÖˆ§.u+õî<–+D(”MZ€lª6k»^ ÕÚR_ëéï’qª,ëQ_.œŒò[Ÿºû|=Ì“R õžÉàl{z:=1Fó‹´ŽBF}̬?}é0³¢õ^IšÌ8öLm¤5wl£Ÿ6uxøD›”Ž+6µÂæÄÙÐîN2[²…iÒhôR‚œ…ú( §«ã‹¿‘&ÑÔë§ëì¨ß3ùøù(ŸóKÍ)Vßž“²³GKtÞ×CP¯W½ëç·ôÊ„k?ò­iF]­ãŒqBL9*:zžlFkó ªàE˜M)íÌ8+óS—™Ÿý_l¶ŸÂÔ°^êõ^R¥£@EÀ*þ¦¶d:ÖŸJŒ±‡ÚÒÉ‹§P¥Ôh½óõLJ~›ÎvÈi¿¡î\J´jë¥í2Púû‰ŽÊY uöPx({j#g•PQ··w¾Þ'r}ÿhÕÐúÔ¾ª=âƒ4…Æ#_B Mà ˆÞÝU“l®„–•NL± ­,ëaGS9Ïÿª ´¾H)zr" ­GÕ.5æ³ïâ{ õÅçBS(Ó/ܼ—2 DëÉ4¥…´‘ZÞ›½(@"$!¤PïëQiƒ…Œ\†Œf–mwÏŒç¯奦±íƒ¼Ò4F”åõz—&F8ÞÓì¨. Þ7PS6ë’ UÂ@ìlü¼£(*Lˆ ½ByÅïY€ˆ˜‘ÇËþ„µ‰ÖKiYõhk£QÝ÷=Y_j‚{sƒ^ns×ASdó2q÷GªT˜ÏÚÔÜר2LŸËã`Ćy¾lÛ}e¢+ˆeÔ§¡‰ü 1)Á”ZSç&4aŠ’ë”ɇ# ŠT&óO‹ôÚ}d© ÖÖ¬81)(4çñ»°J¯1 §tôä½L 8 ©“N«O¾ºì»J"U ê)RQwZ E}!/5=.ÊÇÝž?7…•'E->%!]ÿ¦C$ž¦t‹tn"E1¿Á#lf%Æ¡‹G=E­Á–2R=Mù!©Ü5Úˆ\íÎ"j·LH–(¯.EƒVw‡Oi~y£½m”ÉÒ³œS°ï¢(”ÊD$¦‚|i´ ö0öªQz°rõÅ0ož’8ù£-¡ ÞÉ'ð]<:¯^ÏL÷ÿÏ<ìÛ3.´ØÞÕS" ÷ê¤gë½qòñ(nÐòÙ¼øÝ°ÿzâ¾É8+ |£L-]Büä¢|˜§.Í÷ñ((Ú9»¶'qõóeF]ivuÎ-ˆÍGs›$KyµZA…òªd<=oïÀý!ÒcP{Ÿ'ñä\!¾ßÐã.SgŠ¢^ï{‰ÐU"7%“ÉãÏŸV­³"ìÞ¯øúÌ’bZÒ?¬¯§ÉB ‚òË‘#£°Ï_÷äÂQÉ”TÖ<¾›~\Šò©«‚«Å¡®Q¯÷¾Þ°~<ê{Jàïm !jõ¶^o»  N¥?f­ æû#®Kõ ·ý$é ÓuâóR¸¾<ȧFO¢õóÎ×_ïûðÒ| ¨¼p¿h_— ¥Õ”Á!¸ßÑNúxîƒ÷®Ç8¡õ,Ÿ¦^_òâ6˜ ©sõJÕF‚\Ac+“˱¼MPlîäJ"3÷zaÑ*×oï`³‘# i±fÉ×™|ušÄ Cä)²^*w®WÃÕë%ÒÃÐ>l6Nñí8ÿÁÓ¯° õz %$}Ä/)‹¨Ö™ŒÖ«¹z}ÀmøŽ2¸7PBÎOÓe'e×5óá±±,kµ!«u&_£ÅÕë­tšÔ8(«´¤7]·øƒÜÐÔÖëÝYzœ©ÈTéqbÄö•ðTsëõÀ‹Ô¸Â´)²+"ÐoÞ¥ú´Â›'˜Re=ˆš”qâFôζ̺•"‡„"&QŠhoðù:½ ƾÞ:&FŠŒäï55®Q³öáf‚·øûÚy&ªwÌóãb½½cÇ÷ïr}Oƒùýޏ~ÊÄ$E¾­‚òʹq§ï¨† Ò‹w}¾y-ºÖÁ“*í«1…Öšê”21õ•µÂæÔîB”€šjKk¹¬7•³Y>wñbÅc£¾oÃv' ª¼ëpƒÜš’‚¢ž;+"QoÖð ˆ~\®Ý¬§ÎÇ–ñº ¹øöç¯HlO‰ДOÓ„:±Œ Àjï ê ˆ®¿Øß¸‡/¸Š,.†"HTnV€Þã žiÒÄD?å«ôxÞ·aó?öt<–´3%•Ë7f4Z‘sŠ:˜jìÂY‹•GÁÅäž ©¹vxå¹ öu¹ëw"ÊŠ«± Z”¢¦ßy{`%mR¨ h×~àÀާ'”Ê^4¬_¹ ŽÚ5&ç™°¡ ´hæÆ­€¦º©¯åÖaÎþ¢’>=ñ&Â/Ñ톗 p^­ýê (Ó‰ëGݾ ÆÌŒ'§”…m†s¸”¼ø"EzHŽ N‰îÞKBšZÿ­³ï}|±º…taÍ/fàÌe&8ÅJI¤,pª \—l3Sô«‚üþØý¾PT >ݼ5jÕçãT}Oçɨí~ÐŽp>CÜ,µ&7^Îëõ`DùReŠñ ëpÑ<3ÉQ©•Q‹5U ¥·””Ô80Öº yT€¾/g˜Š“@’REßùïjI¡ùü[XxOúÌÔPÔ…ø€+©ñ‚cgh?öõÎÚËfùtõh”ô1ÕÛBjû›N‡%Åvyè(AB)JSŒå7F*ãK_–ëc&3ez‰°iˆG¼7BªP™¢„Îï)”BëÕÆQ2àŽ£l8$²¦€¬OÒúÆ3? ßoXÚÝ׫ X›>E·ZebŠ’>12[‘ªj³Ýj¡§`ˆ’y@%Ôí–%‰Ÿt}òŽ,ù«Æ…Š¿£Ñ(Ÿ ü ©oÖXXùi¶¤oùDˆ_6)pöª„ºÈÌ>!=jN‰µFÓÕ'}ªôï´÷ïÄ=ÙlI3®$¤_WQ¯á›®q47gzżðž!MÀÕêr­^42ö‚c=;^^ IûCÒMéŒl`ßvN׌{¨‚;k/f”pfÚ££wéèÞ¾Òa¯Ä@wÞ†µ[ßv})„õð§È’ÂÙÓ¥®üRë²òS÷Œ¨«4µ” – Y5á½èüÞ¼@ý^D;ÉpÁ_Q^ûÛÁP¾ /*Ðõ¢(ýûŽiŠØéŠTˆ÷q‡F¹·ä$Ç㤿“ T–ù Õnì E‰þ–^ÅÐÆh æ7í#!åÝyÑ)Â<ÞÖ=•öi¼wWK»OVlC:¶ËÎ:)5é‡äx!P-Ò‹ô ße.àG?¥{73J‘¬£¾™Í/DÀIúK†–‘òkŸž$¬ùaø#Á¸ †gjô©µe˜‡Î{øÞYñW(5~1ãu}KU΄ô^ì˜wñ—Kqóyæ+£LªÑÃ¥Æ]¾­.+ïvë#ëä~áíkzk &ÝzþE‰Jj*˜ëD-醑n˜xŸ||M“9bôÉ7…¥AÍm¸UÃgð5³:´y9÷“|rr0ÂYÔt»XRÒÞÞR=æöò šû%’ß³^ùôâ(Mš•ð¢(€vþ¥E‡VW¨CÏn?õèùV®ná ÉvÒ")ñ70îMi¯,w/>»;yéõ»XíLk2¡ï½î}È~%±g:*$?K ]ÙvAJbæF;ÂG±ÞÜPU/ã-U¯T\D”"¤v–e‘,5ÒqWïXN“²¨“¡ú'¡(…z@ê®ËÄ02êÏßÌÌÓVzwŒàAKígA¸þÙkOùýÆCw-mÙñÔâ(«MR‡†´éèÝ-ZÛ¨U£³Ô”:ƒ¿Ä@ÉEßL¥a…ôzM³°…`f9]4­‘Ë£…qÞ×–->kGý1[˜(>"-E ò¥Èæ“b©Û?¹.°{q'çëÚ$ó„ª{úŽó°M hçÓŒ’Ó^zßtJñ哼Œãò”t~RåÒ‡¶·¡¹Ñ•&]k4õõzOT¨ó~èOùOÞÉ4<1.e|˜<À‡'“Lþ,¼€éî}AFÏ ]á2Î."±d}V¬â®¥º~b\aÏ4øèÉÅÉ(Ó´¸iræ£gPÁŸÓ‘[åžSÛ­a9OBjÇm“ά›¾ð]بî&ÂÄÝà ßäïÒñæ ]¨}ÞÆyÍt”º DxPså0_Ï1¡)׈¨§'úGm½^§×¥4ßnã‹û¦#†˜¢ÿA)ªÍD­“°§ƒëeµHý‘`§D&ræHóæc½{îÙ°vÿrU”…»áP²ŒréÖÚQÓD˜­?J N6jº–ô’Q: ?üGvßäÈx6e´öw• ãM†~bú³"ðô–÷ÀˆQK“Å]ã¶¶¬ R¸ƒo²v4Î>PjâTµ®Ú”BL-Ú"ZÒ& EšZ¨ciO«ÂDèdØïIéo"´ç,k*ãò0õ¹ ,ÝÞ\¸S°Ðz{†Q-=zê¢'ÐÓÇO^HB瑦!ÐX€¡vT~þÌšrý1Fp O^ëS,Â~A 駬z³°žPÚˉ”õeç¡m~éòõ𞢶qXW¥£¼Ñ«ƒ$òÕŒÔZ†ó÷M;Úwgo ^PÓÜÞîòÍüé9¼bÜË Níu¢ d×M„C½%u×Ñ¡#—§3úÎÙ¯1)ÂIKëÐ3¬èïð ²²u‚*ùK_†­0¯rY\Õ|“xjÐsßáå ÔöèøkR•ýC{ä’GQ5Ã×WNå› ó·¬ÿƒ0RÂ(Ds^FqTÝ]Jånî§á]¨âô×zÎ/5Ø›g)ÓüìÖŸµcy:¤³Dîÿ7v6­¶E¾Ñ«k¬½ÖY×»¹ÞP^AI@t 8ˆ '‰ Dñk’ )‚q`Ž8ð'8S48 þ€ŒüA2Püæt×^OW¿Ukß>{Ÿs†EwWu}½o ¤mp Ô1è-…Y‰ ÐBŸݰJûàA’Ù Y…N˜a,àôåä[ÚM²¦½ÝgslG‘’­+Q\°Ë£]Q+ՃљBî4‘«E[(þ ¡;²*™ŽHk¢)õ,Ä?öör*U…âëc’eÉísø^Ì*šš¦^ãWLÓ,*ÚNº¹£DõHʹuº!b ö‰{Êfú™ LBè·n °²œ Â–9V†i’7£Y_>Š[Ѳþ„,fG±OòÖwï' ã‘>y¹¡JæLBùFÜŽŠÍrrøÄvÍG«È<9þîa–üƒ(¼Œ=’ˆêÒ}/¢ Ú² Æ~ !! Õ ; [A¯M}ŽÌÚ…¡#Ëü<0wüvþhÔ™òªÖsIÝ5E\·VI$ÕŽæÂÊ“¯)‰õó²… 'T_©œM™ØÑž—Š£Wb*ÀàŒ9tê¾I”ª>‰¯„ê̆ 0]*’g‹!•g)™‘oéu|ýŽÉ 2Oä²êü€¸BŒÍ>"ªR’ >,Ç×a/›yÞa°¡)ß“º¤K‹"`BJ¡D¿Ž¯·ì½”l«”4ä1 ðîŠ"/–4áå®.€¬C|=hKÉéM2Ã<õàê•èËeœÅ:!*ÌSŒ¯'eKWd5XéÅO£‘5\â›òzÆÄT0cgŸz¬È¢—±£‘*¡H¢÷ÿh‚¯§0ì€0]2Èå1G­#5 mò p0"Â?º…¯ç—³£~¾€èØEì¨Èˆ}Š<ŸØévt _/lÓÆÆýTmRCªS¤pòRþQÝÑØ<‘v:èk¿Z'¯îп,(?1Ó6ÿ¨2hÝdøz5MQ]>eøú°Ïõh¢L‰&ÖË_³bÛkÚ1Ç×kRZ…õ+Eçõajäe m?‹Dnˆ¯n‹ˆö?l™naAuä ¥{öšyÉ=máë„PG[&yq ðš%Iô 1‘¶¹¯OÞú1e(ª‚!jŽôö*¾> ç´.”I=|Áû”ü£×ñõˆ9ÖɆ‘ågreD¾ZoPþQ„Nñõ´\€gÒšˆþq¢âBÑ`cy›®ñæP6*àF¨¤èþQè ä}’øcïrÎ×øG)1&øz&3ù¨ÞæÜ1MJ§×c¢Âå§´Ø9ÿ(ÁŸ„EÔQ ë^HØÅ‹rBúQÖ)ÿhîæ±à$Û£õXSb&-…êpËQÃzäÌ8r#þÑ€¢ÚQÛS„„{Ò¸JÜV-ˆæGBÙR¾§‚qê¶s¿‡ûãÐçur˜Pý†(S‰gÏ û–Hi_؃AÌæØ£4Ù€´ õâò •Tñõjòíèû³÷š´pGX/æÉô(¨ß yc&Q¨‰™âë÷ºŒºÓÑ®l Àt=Ñ»ÒI¼L71¾§DöjOe+Àw¢=Ëgœ9ø„á-¹£øybóÙR?n;‡¯2~SíèÜÌ£k< EXO¯—çÉÄÌ ÁåëX¾&GÞ¿¸®qÍ8sìÛ,øzò’%s#¤EF¶Òu¶·ùû¹O<ñAŸ2§d§øúN›P¦ðŠ2±…Á|íuSâa-öÁÇx%žSÔóÄŽ:æ¼`˜±šQt©.,hÇDHš°·çøztû$¤ßĘi|r¼ØBÊe‘(ôFvrô‹˜¢öØQ˜TXEã}PêQû/ʰÀ×ûXÓÄsøu+áy4½r|NFyE©1 ƒÖMŒ¯Ç:‰§ÇчsîÊšd~¾ÌµUàU·D£(Ö³­Dvëïw󙸠î u¾ïs%™›óágøúh+)ìí-ožÎ5uC«Ìñl’Ã߯×{ Ú'd…7ÏÏ<ãðÍi®`;¥ÃÇÞ³6ðõöåìÝJ•e—d¶ß ?³(“}Èâg|øŠ¯Wtd_Qû‰ië_Ê .)ñ²š' BóùõÛøú‘¾§Â«í£u¶Õ]RW³KN^úÉn%®ñõÚªñl¿ž°ŽÈIV?l:8O(Úï‚’¸3%‡jm9Ÿ_Ï釙2$ w®íiò1èR#'ÐàšÐc?}[‰Ì¯7£ðxdGµ”‡‹°¾UCy©Œd|øúØÛWc¼ã1öHQ;WFüƒ/êô´õzaõ{jí:‘ŒHj/¾?z†²±§ó•Á‰œòz½w¢óH{ô½:Zg²+ÊÑ X„Ø€”XÑ'fƒÓ%˜¥™È>̹ ÛÉÆf-4ó”òÇéêÑkML"P ÜcæÆŽ½Èª;Êã~™Ré‡dØõz¼<ÇÛ sîH$¼'«0ÓJlEñ¡”þCѶ€X=Nˆ¤S>—íR ™xšÀX÷uP–;*剗pKäìíWkEÕÞù‰pi…dŽÐ¾õ|…­7{ŠÒgu&¨o=ætÂ>aFË×üfrÇžêüz¤$X w£&uÌÝÀ®âèM½”3é1l©à Á×û…¹/) Öˆ2¥î|¼<ñB1Û2æ€x6h*Úâà JÍásô½7Á:Œ±¡l¶¹qº(¾>Œë1÷‡Ðq޵~j®¨ Š:¡õëˆ`ÍËJ!§AóG7A”ÞÄ,¢2\¢ˆêAwäG£m5ÊÑ7ˆ›]$õåúú±“Ÿ,Ñ¢íBáNÓ£2à2çÈEñ™Ë&ºäS+.»9Q°59©×²WeR1ñžÂ¢Ëgãz=ƒlCÍqž’'”T#&VƇoê¡~€²*á´²©|Bå½S¢K%S¢æ‰ŠmŒ`ñ@ß}òä÷«œ°hE=:Å^Å7ÀÀ©Bœ¨rþH(ãÎîß+ë/Å-wôß|éÍ—‹&Í’—¨¾Ã×K6q#˜?øÞÕÆßß«ë#£yyET›ñ|aüw¡ML0ÖØÒ~Å|øväöMëõšÑûÅ…ÝñQQ%¿£ÏT’á“ÙNS¨nWÓ‚Ø!cœq-¾^¿ŠÊ%ýÚ÷ßút°3ÈÌ«Ý3f÷6fâ¢ív’L“¶TîÈ83<Ðùø‡Âãlšd/ÿªÜ…g×û oh$èõùõúÜû>'ÁÿÛ…l|è¼R£B?]X2‡^FŸ+a]Ÿ_ßÇõZCLk)+§ëëÇ¢K¾Wãþ—ÿüp7Ó¡þ}žÝž_¯:/õzÝQ#KžlO{£?ÏiÑ ÄÖ[lýîËlK‡g²#g(ãÈÆ®¨°ß‚­"¤ØÒÅfI-öšF1ŸVPjŒûò)îäÝû>2¤µä½ª¬ìw—ôçn†„DŒëжâz–‹B)1ÂFF \;™n©G?}¨°ëíd¬)rV’\bÅß\-Úò4a£’D.Ë*ÞÓ{eDË©¤Ê±¤óú·ÊÉ Î„¤FG!¨a »žôýd–·iú_™bñä} FêZ,™~÷³2\Âì=;J +[êaŒÌBÐÈ>ìrÆÑ{Æ^Ò?ípËš?üâÔº_Ú:JöÓaÃB` P¶Èà‡x&×]ÒcX‡ê6âSÆ û¨3¤¬ÌýûšÅÍÑ Q‰1éq¶íT<G¯ƒEwÓ•£ÿ»?¾Ìïøëy´Kê]cÓ;aë ë8ziÔ"r$Û §üçÎ7“wò_.œþçËÒp$b,@ë‘T]³|\=ßNPÂÑÂQûÚÃ]Q%Ü’ÊãÿꃋrIÊD EX2šIk¡ôáûl3â‹ôvôÐE¡su·™-¶È_4¸ó;jÔ/½€¯ŽaŸÆ°ÞÓ÷êso.>ë¿wcuÏö4•/B:œHŒ¹ãè÷žèpyšÈ‹–ßšqFÔ:±>÷À¦šÐùJ¥ÐÜÐ9vKx›ðž¢T‰ÛN ð©×ÛÿÊè;½y§LgüQcx{ñ޼¹¢³ÄKè|^b„žÈT‰g(J¼Æ{§„rÓ?«OÚ·=½oóOêÁ› ,_mÐàNZ_ª«'XpŒþQó£S[iš¾^/iuyëŸû€ô<¶Gï;ïàç]:'%¦RLS’ǵî, œ::×縢(SgJV8á ¨mo²‚ö ë„ð©ø¤ÿ9ûÜx D_{°ŽádC1ˆEn]cbbIÃwÉ#ËáS_ìð­$ú÷b1wyÚí/ß9ïm 's%pîíwÆ?š¯v m%åÌ~v“٧᥋ dàtSàB¶â”Óï” ñr|=æžÉͷάŠOòÖãcÇçYe4­ÇÅ׳©1¾^‚&…Šà“˜¨6M&dU‘,.;ªŸJcz­×«¬ÐÕèSoê.TJ6ýÑ|~½ÂW;ˆuDùÓ¼>¨›Ù‰©Yg½£X(Å×+£J»c+Q%~ѪááÕ‚gʰ"‡xÙ/k+¶‰ª-ÎÐ=‰)u—3Æ3Qcî²y's vÑüzÔž 0¸([ð2 4gæž·~Û)!IJaZ¯÷ )•çKGÊiÚ† .ÇSÙ†j½^zÛ1P­”ÐÌ·÷3®×›ZñõZÁ3éV†P[¸È“Ë Í@Êì©™óæ:¾žÎf_-iö~ú6|ëÃðLô@,’ÍSÌ: ‰BÍÂÿzôUn|¼"Öëóü¨’Pž¼¬ö‰¼W¯×Wi“w&aùrìi*¯Ð"ñžÐ&“P2ß>öW§eäí¨RÞ›—•WúÝÔeOÙN?RÆ«’ÐÄ­dn°)‡Î ”€$Ëäí¸P;÷öü™qˆ¸²ÆåÆè)HñžBZ–Ï•=EXHÑ{; T@o(d¾¹¼N8%£Äì/BvþÓ':$”­~œ1"êÑcî²/ÇŒNżèÃ,±íYŒˆ©–tçaB ÙJ™Àª<ã£[zžbìS8©åÿGЍ–¨ZØIEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/classwizard/images/watermark2.png0000644000076500000240000003510012536324427025573 0ustar philstaff00000000000000‰PNG  IHDR¨wŠðÈÙPLTE­¬ÿÄÄâZcæÁÕ霧¸¶þÈÆþËËþ»»ÿÀ¾þÃÃþÒÒÿØ×ÿÜÛþ³³þââþ°®þÐÎþëëþóóþüûþÝÚ",Ü ·ÑàÞþêZZÝ ÝüììÞðïýá¿¡Þ»²ôã##å22æ::æABÌÃôéSSܽ»ìllírrî{{ò››ò¢¢Ò¢ô¬¬ö¹¹úÛÛúõúûââݽ«ëýòóä,,ëccð‹‹õÍÑÖ+<Ø-;ØFXÊV{Ù%1Ù4CÙBRÙmƒÚ%ÊužÚ1=ÚRdÛ"Û…²©õÜÓõÌiÌ„­Ì‹´»£ãÍJiÝP^·°÷ß07ÍZ{Í¡ÍâÎq”ÎÀï䪽Ï9TÏ@[ϺçÐ_~èEEèLLЭØéot¾ŠÃÑVqêæûÒzšÄ«ãÒ‰«ìvxÒË÷Ń´î‘ïð„„øËËÓD\ñ““ÓSmÔ5IÔKbÔi„ôâéõ³³à ÔÂëöØÜ÷ÃÃÕb{ùÔÔȽóÕ¥ÈÖ'7¾šÕ×I]ÔZsʆ²Ët›øÅÅÖ9L΀¦Ëa…ÍšÄߨÀÓš¾Ëz¢äy„ÔNgÕ@Tæs|ĺôæÆÚçjpç¸ÉÅf’è^`脌Ås¡Í’»¶›àͰÞë­·ëâôÅŠ»×µØÍ¬ÚÅ Õí£ªÍºêÎUvÆ\†È’ÁÙYmð¬±È³èÙ‡¡ñž¡À¶ô¹‡Æò¿ÅÚ)5›ÓÊ\ôéñÐmÛKZЦÐÊdŒÜ:F¢ÚÞ˜¯Ñ±ÑÅñ¹¦éÒ»åÒÂÌ¥ÒÞ±ÌÓt’ᇧfÑT¢Ê>>YŒbò€ºâ—O/ÿ½ÅÅ50Üc–*fâÏ4먊Ÿz@æLÄê g…—|!4&ÂêØyëe{F‹Ž+ýq²#ãQ¡Bµ0]´ç¡ä˜”<¾ÀDïT0+Yfî>ý¢ÐÍMà§%â'ÜSàò™£ŒP â-K(­öÄPgûÞš²rùS‹>­¨¨YŒ>b)XCí!O \ó{p¬€CÑB,Ig#Ö—2GaQR:jŸ§§ÎÑþa*ÂO¯õš¡òõm‰)G[¢t„ÙY)É+Ž>}–Hÿp‡ovˎö0_W aœP 9|´§&Å÷‚âŠ0EIÅæIòµÇOs¹ ŸÃ¦ª|ûâè5ýÏææ…A«2êzæšMÃ>%°ˆ6NïØæe 5G%(€Q² ¯\Y=Fø;ßø¥»>75ôÔh´ª,=ßÝÃ[¹G³ ÿ^1£‘ýs#…yO~Ìr ›ÿõxË‚+‡¥0” :IÑ{.‚{ Jìó§‚dc?Ïa½'˜ï8Z›ÅŽyzFd1sÿ^xÊYYvZï$±sàgwlGq˜—žp ¬[0“oÝ¿è”T`æõ #Ʊlxò>­ö'FH/|ðt¹Ã=?ÅÎëà°jg^r§×϶Êrw„%'üÞå¿c÷°ÿ d¡G ¨èáÂþ?_ô¯ÿ©ý|<Ç ¿l LðƒÊ³ˆîfàI)¹ë9Gú ‹ãÁÀ$ºÂ nö…a¿a`ÀØÒª*„š¿ñƒ[¶ï¸ó‘ý÷ü °{PZ:Yá¼j÷ü=3´‹ RLAý¡ µ¾Ð%²µs°¾7ÉæëÇ~zpaÐÉóÏ<ýµ ìÙ~UŠ×¯òÚeM{! ƒêÃùsò¶­²-@MÚ%cJÅ£Q”iˆÃÊuÜc¬¥µÑ2Ì<óÌ¡ù!U Î:ÿÕ‘~lîÀ¼ÓY{ço;¸yÓm;vïê’1‹Aqðô’¿ÀµU¢g¸ï·@öõDÿ_R²ÜYÔP&û€ñä×<é­Ç8ãÞÝÏÀ‘î½dañ–q¹’ÛÙ‹~¦E¯¢LëTuô»¨¤ÀO–þ÷ Ÿîn¹úè  'Þóº§p9Ý6Ì3‹ˆ·F²’-^r;JîâJ‰NF\ú›¿ÿ¬NîF¤¤ž–^0…™Ïìæ­w^Jê*z/c茳™aí±–ÈQOIUàlP+ Ñ–ØÅO^𾋠®í6Âd%˜Dk'ÁýlÞ=ì´Å]æ{ýÐÒrsåîLîAi_á›Íž×%óùRyý-Ÿ<Æ `õ„£ ¤£…Âzº±ê‘aÃæJO€.|캽FöÕ¼D££uîêç”ÝYÂÝE¬¥äH…´è›†—·^™Fƒ¬^<)!­Ím:¿{`ÿ£úIÀe£¬Ó WO7æsÕêýû×ݼuaW«¦êp•D7›à¤]zÒy}óUAT»uÆO•Ñ“Š{ºÑej6z®Îœ}|´a„ÃÍ;‡ÍV§ÓêåT%ÁGÁ”2ÍR…4­£ˆSèÀ0”=),÷9Ó» :¾¾Îßp°iýB˺ϼ—s-O(ËØðA?áB”ŒÓ|ËZëè“çüÍ[}aë•Poú} ”´'Fÿ§É_;bÊ3ïõ›vsH›!«WH}»§MÆLk(×G£µžÝhoÐÖáÒLÓ¸¨/T«†EAõÜ•´é±ô>mÚ[Ö¯»ûq“}Ô\Æ«ìU—B‚Tö˜2eN,ú8eúMð# û]¤ç-îytHi“^î‰~¾jÇÊû–Š~«¨­Íûe@òXÆçí0µ*Û7Ý(Ç÷GS;‡&¬N·¼ï]º‚ï”4_þ²g&çO‚½ÐOühÑá\¶ñ°a«vªt¯R  3&`£_^•ºèð»I×ð¿5g83;´:€d?ÔÞ2(é켃v[Ö¦'ß¶nÍO®ùø®¥&UÊJûéòLŠ·AK÷«Å.…¼t!nXËw Üæ2Raof點eu@gZ´:ÍFO*zuIÂG¶*‹÷wB3xHîº B êB.ªè?)¤ò†gæuf±³Ÿãn˜jÖ°FT J´$ `óŒ0óÂQ©²¦0Â8Ú">Ñå'=öpÏÂüÚH¡œŸÝ:ì÷ ±Ï ]#³¿eE„ +VR½(@hôÝ k£¢ÂÓw`¥î˶H¯¸Úõ‰ãðïÉÂ=?»eç°?Óà0Ÿ‹Oö& "w6%x‰1Á ìôcåÚi÷dE»r 4Ô½z½Å¶¯Y¯#yŸƒ %<µG•ˆ¾d° *¹'á¨ÇTÞ¹ƒqeÇ?„2L ùY|÷Ës° ÐË~ÿÖ-;KxQBJܪp׎ÀªE”Œ à‘ÕÇö‘†Ns„þé!([|ÿ[½Æw^u&½0´æô¡7šd²ÓÀý†©{J,çaw¤uð( E3¸˜…¤q¶VWã1 *$6m6õ^ƒ SŠ8ZÖÜøÀ+–<%Ù;Žfq<ªëŽº±^ç,´æña‹ JÍY±ÔÛeÂÎD 8µÃ§•I´Ó’Jë9Â;uüÙÇÌÕÛMiAsSeL–"~R7QM 8Å–Ðßg¢¦ñ#/Nãwî>¹ŸP®:hì» ½§’×ã%0*ä(SYS–Ñ*üeÑ#ÜänƒÎA›o¾{ãÆMw˜jR“:ʘ¤’½4¾@í!‚ 7°Q®R[“”t’Ƥ¨53È™› ÚhÒ²g”šp»¾*EI…Ÿ,{½Ì—XxòšJâ~\)‘ DÂ<¡š/Y= ö÷hMÒ¶@ðKÁ¢?*¬So„æ‚6ëáÒíŽ(zº<ʼž¢D¿#2Qý´=ÿ8ƒ]PSÚGõ685BŒ“zUÙAÖš¡ ¤mæh’ćÆˆ@K{·0H_pR×(w–âªb«·ß,vœ±{*ií¼!SǯLzŸ u”÷Ât;ô2>åž*¸JjêN×6¾³RðeŠ“¢¤ jF›¡²{G…GÑQ{笩E‘ I€‘Àa%{ ̤NRˆL*_ÑæÍ4ꨪ:5%­ñEåçBGøÒ9œhÊ€àN©@–°yµ-rÑuºŸ7âç:ÖÎÜ=÷‘Ql—G€Ò1¢ðYI5éxsÚ¤vli\PÂCpuvÇb¯k•/e(ñd£ëÞRsTYSQ0O FóKEQ-Lªq6ˆLdjw,Ó._Ü(ü&ZÞ„@êÈOlÔÝt^Ž« £Ñ¹0ýš FY(”Ä©’W ;%OÕu[âæQ’}D ²Îýˆ’ŒÉWQx+³K7÷c3dB¯õÀUa§¼”t÷ ¼t4JÅdÆ‹½JïâE)ö¤¡è | N†|ÁI¿˜H Ø9Uâî…P7ÕªÄÒWëS*]“JrÔ÷§ü¡¡‘nÖ1JùHI¦3{ÌíØÝ[ˆ¨¥ˆVˆ×z÷&² ÑèIÞt 8+è2OìÊ7•~×SŠ¡Óá~=‹.଎EÁ™âŠ$ö¤âߌê´àáŠÎ PägÈQEÄPÊ—„rVPŠóÂ䎬^®XÁépëÅžé¡ÛÛ…ŸÚ–0" ÚÛE8¸§W*ÂÏÚ^èœEé­ôhꨞ€ÿ‡¡†²—ÒºZâ‹x‰wPÜSIvƒš±§¸'‡‘ 6$p¤ÂÒB»R=¬NÂL½„êõS<}Ò•N‹èc=¥HOõŽJ,*P5Ni…¢¯µrò¯Â{ÈFÈ”PÖÌQŸR{fpH¨Jä žàC¹Oc¨ íH{ý¨@­£e”o•q’­b¯ŸTNÕŽSêøEA¾Tµe2RúœdM^rW{k‘Xûü¥¥9êL^N áå‘Ä£1/Eôžø€˜hgâë8 cQßãrÞ’—NüÀ(/Â+¢'ñ‡‚G/šÎíÓRŸæTD£˜˜hª•ðãEI^ˆ¶òÅß&¬ÄN~O¤Ž_™äìMOgõ4I^/KhìEëKÛå'­é…[%èŸà‡£y 18Ñ:ÊX+x”Ÿ²}qø‡ähLdL1GɈ§ðÙ*¯ôZ/*SÚìÓk=óÌï˜(©‹2Ѳ¦ò†}æ‰àÌØèÓ~Tƒ%¤îu‹WÌ‹0êBI)w*•óõxKÜÌþ>½UrõÆY?Q ¯lƒûqS%X5W¦fêøóLÂNÁ* uÆœóRŸ J*˜' VÅb× ’b)ü&µD…P"Ô\Jz>Ì »+É¢8¹«ñ½À¤—ò¥c‹dL’+“Ë'áË+ðP¹döÑ"O$?*tŽe»TÚ¸Ó:ʇј—…§`HÂÑ2&¨£‘8j†WÊêy -„«=ŒH´1I.Oþ)ÔQ Ÿˆ§Âàv`L¡oJoФƒ‹(C·ÍŸ|R£ÈÕ 1’:|…5çô)[9k¨äÌA@ 7ç#ÓRM¤ËT$[û9»ËüÁFxÚ²àðB/¡¼ÅÌ» UXl>´z%ùvÌÑÈœ ÎéX·ÞÇB.Ÿ¹#´¾-ù«Ç® )¯ó‚6²ú4ÎiJ„z9ú‹–ÎÛÝÇ€ú»"LÂN±ö8( ^ŒÅyAÏx;ˆðãh›‰þÍòsÓ¾¥ÀDÑsjì,¼u;‚D”ü¡„?Ö?‚Çbo†d·Äwu¤ˆ_£IÕ)7*Î^ø*lUƤóúØ–"޶|–V6mm¯ÁÊ>º š) S¡"|xè[:óbë—Ð$aNð•ÎëµèdÏú&«¢»þê¥MÀÚ ñý=JIâ¦ñy=‹_ äcB&ÅTäjw„Jöëƒèž© Ú‰ðW‚Áª3‘´†&*έVàžôx¢)ÛBÜG˜ðÊá…*šî) _“¶y¸Óô¼§˜¤6Úp]d+‡€SõèX®&Iq³NTÅ––A"â~Â(: â|™àþ@”‘:*8ÍGÈ¥.’ QA_b’08‰¾r£éDŒÐ¿µ£úžÜ¹«tå°bGÙØ9ªÙ<Þ±µ*¤Kê”íèj-B–ÒA[ª(ŸÊÚ” ØQ©”T°¶cŽ*£×>|Ø dÝ@¸‰H½©T…@­°CKò&yÚqŒ_¦£< vZ8š6&ÇÐ'­ÙÏ‘ŸbN2µ@/¡%< tnpŸ0‡†¯XY} *©ë,Ü>(Ä7¡Ž†ŠZ D):VÉl¹ŒMIç¡ÖÔÖ²¨èÓ#:{=enâq`òúšÒ…'_î)˜²Î': y}”‡÷•s8¥ÃóOÌÔbèü#­:¤›HdFÑrÏ,7Äb°Å; SûØ”d.óÓô¦­{ÌÔ¶–|zp^¼†*‡ß,¢8Ò÷}üž!kBñSï¨"éïµ­Tªœ,>2BªÅ®ózþ-Ô^hï[n¹§E”Ü<*­ÐšXâ"ö¤g*#w—Ûn~Œ’ûtŽÅå>êu5—æ%Þâñã:.‚dÄ!éñøtyÔq—{0nÅÖ%9ˆT Ó.TóSH-JG#ˆdL®òôw¬&ªh¬QDªöÃÒ-Z ³€e¡'šr§~´Ge®íA%âE¼^U>Ø_((€ƒWø(v¦ãQ‰ð›Ò˜ÉûLæ“QPÒ]4wÔþÎ1íí•­õ•š %~‰ææiv*=Uî‰-ÞôZ5€PIG;~ƒ;C-˨Þu¸®|ij(½âù£¡1éà ¤ÿ=8®øÊ÷‚“Cf[élDi©j*ÑyStŽUÇ£qÿhjŸÉÞhN8ëaÏw„¼Õî4E»LqÚ4.ÊS!~¤ýhA ¸`O7-âÀg ²Û'¼Ø²¥‹’†ký„+¤7ÒÛöT̽yºó”n [KÒÔ€°7޳ýºñh3¡ â¢x6œyX½»V(™™š¥ñ&£@•êC†ï,SìNó†˜À ’;n{ûç?:lІ²ø5LæÊq©$ÍPÙ9Ôt"›Þf¢òxT#‹Íiüg÷ÂóË1GÕqÒ7üžn{Ò‹xÛ–d® Jbf9ÿ™½êxŒûGcâ1JЧ²s';c"~Nå%ŽJÚ½pTw;êÊxº-SLô¶k±}˜¨|ª_zè4¢ÄwåÅö<”mI€ŽGÃÎá‚›r©KK±5WëR%x䊢½¨@ŠS ÀAeîV‘óø™èAí©^"·Õäq´–Ø©fsòO2–’ªÁèU2 5§ÕsKÄÓétµ Ž—‚*‘³>ɆV/wjù´1µyæ0ÍòUçÖ»€² 4¾å-‘Û« ¤¹¿sOÈÔ`‚³p6lÒâY¾öF”H0¡Äà 㼦îÒaÿÉ z„7 Ÿ&d'Yê ’Ž*ÁgeÍÁ“§Ÿ@².Ñïî;Þ¸}aÐ1Ÿñh “6m•z@2/L¼‚ T’¾°@Æ èÔkº6Œòk3Ï’‡¬5R*<ô »n'’CÚ7U^þA*Ü e çn8ÿL•ø'3RÖ¦6{{]qÖîžf;òôåîÑ–¬î"Ó½RŸ¼býÜpïh„ï<«ww×Ê|Ã?»T¢oic*ˆ¡^ÂÒœ§ùÊ91@žg*iæO\%A¨¿-3ÊŒ[ 7OÝpÔá#¨t CßÉáð4"mJ yuxYSE'BiŠ{\Ë«¿k‘éÁ†–}÷ <Äë/˸#W[““¼°‰L Þ”„X踒™ý_¹é¸sæ½±ã£ìvæ ðêuãñÈ*n&¤±èEæE˜‰”úÈ,¥R¼è­¯¹}ǾÁ± ¤Š£¢‹:Œr| ?–P¼óÄá0é{Ã)%ð…$ðTEže_…œÚšNµWo^mÞ“¢¤ñxä¢`¤x+ÑKu¼ŽøÀ¢ÊOoØ€}:‚ÓÞæý(iσÙ5H/8ì‹K­‹¬nìÎGÓåûf¡6šØž”ƒ*+Ú¼©6\alfwW:µ“¥þ\TÒLÿ˜°ßÓ ¤…â¨04LG*£ÍUcA.Õ3’-=}´6í«ƒa~@’Ý 3¹¢ñi]CS¡’jŒ…Ü2…²çóS€É2`¤—ÑØÜ†c'Fúr§¤™røðt/…>&Õ‘LF¨î¨UX*: H™›pGïéïï(—ÌG¾¶®É“Êäô-°g”)ަËdÄP®<"R­£¹êÄCZ1¹87…g+rÅ gL¨¤7[%½fF€ò7QRíð•jŠÕ§Üð”tµ4—ã–xU+N[z=Ì‹Ê ÈÿýÉõFc=aE™PÒ%ÈD»]PaI¨¤SkjªF¦šdk¹ÐçÖyDî{GNIÿkR&ÿ‰uýõån¹g†â=a€%M&>ó‘{§æŽYJxR{ÁKO "Õ}:ÂQ‘~½f«v,¡×PBzíÈ*iO“ÑSRÒ+±_`s ÅŠHJRÅb¸<ëâxÅ£?*9¾úMÁl×sjQQçI7u´Ë‡"Ég s’¡Ü‰ÞQÖQÅRÕTnõT¬íž}É(ä¹uwlÙz`¸‚O奤v¿å¾KP'¦?bbjŸV>r½ó£qC|D‰M*ó†útø{Ÿ»î:TRÂi†Ó¶Šº\{ÄÊ}–¼SRYîAAõ”–Áª—,µÚ8Ç]„áÀiíŸÀ×Ò¨UcÇ6L›ÛUÃZcì¶ Ñíg÷ÁꞣèKò¤=ä'\$sÈEmš×¢¾§¦gO…„O¤£1O«*³C¸Ÿ~ ¡ÝÙ–87NX™öZ‘®éx9=.÷Ý /¿ìÒ °€žMœÜô »M‹Ó˜RýÆ5 ˜£I¾Ú°×}Ùœ©JVÒÝ Ÿî±4C–Úά’N¾ípÐÉ©·HO4ê±Ñ€líx¾›÷|ÇÐ…z>øÙ}ýNQê©Ëœ 0ÕPÅ”´ø½üþI‹n•1ö ÒÙ†íÖØ&Jj î%mU†x¹±yo¶2G†ÉþÀÌ.*¨£dDœÔsDŠ´vÒn|×à=oþ!xÄúüO$•ÔPùÜb@†3<»Ÿ“e¬ž¼šî$k Neùéèž#¹}Øoå–ŽáÏX¤Çƒ’‚ÙçU9 žÔÀüü]# sþŽa‡ ¸á oD‹ãÞ¼V(v¹¨½ÖÍ8ïÎäH_ƒ*JJZÙë `õæ¾Né¡Õ8ÓΦ”©7ÖÓ^ÝxxX/ô¢ËÏyÓí® 9ìÈ_BpIŒ–¾Ú~Öœ%.^ø}ÔχööîÛ¶?úÀ°SdD–•ÀP %$Ñ–€lÅ~4ÊEš-ÐÓO eé  }RÒu»os¼”ã΢ÝÍ;ve–×TÐ)K§£jú,ñ)ÞOw‘á†>…~ÎTCPÜ·² ½éŒû &tÉý˶ì0.¨Q£¿÷J%$õ Ù“"Kcmyɲ¶ü0(9€v¤%÷› ³ôÇ*s¸ÛÂ¼Ê ¯ò<”J$GZDM'ˆ¥)÷¤û‰ÆÇ£fª<¸Á‰žŽcêÔ–^œS?pÄfSþœÑm™™ÉŸëE¬pu”*±W|׊uî.<iQý箞k}ùÅBó;†yÝl$kãÑŸ°/ÇÍMoߌ=¶®âCƳþ’è'¬Ïj¤›Ö¶íKÏâR5;hÕL§™¹ÔK•ñÓ'¬CFfc´¢öö™S,ÿpÒ×»œ1ü±–œ+Ú¯êt£«ÏÙ,:oÉWº§$’|ØTÒ€ïxÄ'F'*=Xú«àöCúÏ,qäîPóGÅ=yH¼eJJ ÍfV)ÍNÀ*úi‘ ÔLºÛ³Œ`þ?檲“±/e  ¤w¾{ãÊ•«×ݾ0œá:©®9;‘˰q½…cÁ¢{JÙü¸^|©>h E¤z26(éݼÑéwfÁ¼é*š>koé}Q#¼Åîýù£–Z ¥b© ­'õQŸ*,åÉf}ÜDŠ\̓©¤-3 ó0rNûQEõ3&ÑÙ3,¸þž¯¯b¤•ƨŽe‰95ÚÝë)oÍô6Sé6kIÛ¼><€0ev{Òìj<"UK>þ+a±$múË-Ð-„©ªÎü‡%4KEòØ:ècUóž´í‡²9JøØŽôÔáyÈ9^õ»WÜ”çª<Ê·T WÓÇWåà•f)_ãýh2gjDJj=éœÍ(G—€äs$ò•QŠÇ—M&¶zÿïßÄÍŽ=¥G+DìÛdmší§Ž3Eb×'š2ö¥lN‘ÝŸí¨¢Ñ¨ÝQ°ÖõÔhä%y©3w%þE! VOóõT4ÓóGõ! }ž)²%½Ý jdÏs@2Z³}8C8‹Ä€¿ §¸m™íÐG½äüÑCŽúJëgn²ûѪZ;×÷òè(›4:¢nGC¤@¿îüQØdŠûðÉC1Ks{ÝtäºM&ÇèËßçú¿ÊÎÝU²¬ ã¾êŸ¹¾|ûöiކIÔWk@ø‹¸yÖ×^á×óÄNWñ4Š\v2ãì2¾ÎÃÀkÚs§c—J=Ôø£A’…–XÈy¥öÀ„®i°ehM0ÝKb¥œ±n$×§kXÎÙ‚Òtô'xyµÒO‹MÝ2qC|d´œ1jè‘ò‘ÔãäûÇj9΂»­uYEa8ðà˜žŠ˜ †ojŽ¢»]tÆüÃe˜0–Z[ š†E¥È´1 Þ,µ&Tõ³Ÿ“ÖÝâq·ÏÇ…)ºy¢n‡ˆÿÿ@Ï’¡â¤„ß ‡a-WòGò"ºfðö$M„£¢z‚ GC9çå\@ÿÈ’‡àíº¡Ïœ°g…Û72IŠÒa÷°¢eÁdnÜÅ %pœ1r7e+¦mgͧýܦMt®F"`Þyšã%ÆL¾¸>6:Rº~âæ­ÖJv~u©‚©'PªþeŽzX n“È4¡ÏM„6Ũæ'9Pýãns•È`©Ì“B‹ë:f½3¤«4¨›ÐÖIÝ«Q?öíÏûñ/(K„’[-6¥ÌÓ„j殣¾Ì¶‡ù¼¢fŠñ“žgÃÍ»”]*:3›0zòD›u&Ÿ J:öøCõ”ždå/ó&„Ö_“wÚ²£M§ÏFýE†" Õ7w7Õº‰|œ¹Ó£›©7-g[ å-Î/ÃÔ‹¼: -¶§=ž/A¾ÿ[ùˆS™Ï¾¨C})O’WI!A:*Ý3Mw-¯‘š‡p:t›õtÒÜ…ÊÒ`¼¾ÄÃ× £‡ÌÞßÑG¼t 5ðµ^$Ê^åôM¨5Å™PýøH‹ǧœvò&¶ºÅ‡±GŒG<|Ùyó0(dÞmÊ0%‘ƒ¿®i,Øîi¢’cë5þ%†Á¥¥²¡o>˜Wseô~c¨IÇ™"5éÓ›rã•Ð.3agd³¥gPø!¥—‡džôUà: ñðóœ¶ µoi#ú°Rø¼Â“rø,‰Ù5¥e*º¹UdÒ7 RöHÇ{Z…÷ãt‘m>Ï~h?oЛgZ¥»„¡4M¸£ùø— ïI²$bǵбU5oÕpÜ|›ÁÑïIÄe-”ø(³ŽŒë±FÌ‘2çÚÑ(÷±zǼ8ÕhX bqð6 ,ô—𸬵Ü{Ã#aû?YàáÏsY²7a,`[¨³´®ƒº"’Žç‰‘Kvæ Yj|¥ïìí2ûœ¯÷*#YêZ4RYS&7š¤ž«%Dbü[M–Rӓ̝›*z÷~ì Wz´Þ}ÃÜÓÑÔ(!jj,3q±rK®Š¡Ødý6ç¨}P´E$bÒ޶DŸ#Ò)õÈEœâ*óuƒ’£IìGùñà.]¿®K‘ê®^5E—„–ÉÒ¨èó¥ŠzûâÄêÛ’­¿°šH±Õ–{M‰‡OÁ÷Üc4ò¢R1]/æóµ±ç-µ=9•ã”Ôh`íq=àý&d ô²•‘tI£¥_ŧè>Ф¯;%J‘E§Ä9º:†3a¼±Íq=¤‰$F\¢¥¶”Ò‘Ð¥¾q[šœ£4󼟄LLÝãúÆHD¬ ÝO%&c¨[OGÍ#|{VM¨¤Pýau™xøÕ–àþ'/wc+šj"\ikò4ܶ·„Î=CÙ¥(÷ÜgÜ‚(eýÄÐ.m¸Ô/„Â¥²í »¬'²tÑozVmMé³|Zù£úƒYr4ºœ÷Dn ñê&ÂH-¶ õ/ž!úhY_nÁ2Y…ÑÞ+j¡ +̆š…z3¹‹m®&õ™­Í\¾iΫü(5ÓDã©7óy»J¤ôž$LÆIjQãi”ª‹$RÎUÚ¦Î÷\O€ÔÐMäÎö¥9e½V¢$ÆÂËcöIz“ËÁÉ#G-O†§²®¦ú ÝABt~™ ’Qž•½ú^ƒ†ÉUTš7ÒJ=KÔf8O«þBçKcÅ#o÷”G+I’‘j2o!HôžôqÈÇö4Á‡6ÅŠžeÈLæžò%52KÔ“ŒîDiØaC½ðzR?:ûÊÕ‘ûoz$HŒ0¦OõÚùf°囡"u`«ÝèßÄ¡t†Fï~Í”Ô=>±æ/*§dÞSf›âÂÈä;/F©@E«Ÿ?#¼àæaç6l5ÕÅ›H,ýQßkêa“ªw+‰Ì·”iGJ0_'n%ôBOË:t¶Õ\Ù6µâ’¦,>YZ´U ù˜ÉuÉ—ìO3æóv‰bŠÙ¼héõ.=|–™Î_:÷A˜Øë(AÒ +ôf­ÁEIçN¿c¬#?úÍç3^ê’nåú5DË,…"/^W|låP:zNž×î‚Ð{vLõM¯h"?™O¥†ºh›u½çóyô"¹pH=἞¿Åf®ÃAT‚©¥0°ÓÖ ñð'uê¤LIŽA©3Ù48iÔg4x±Cã±£QŠQè m/“ ¢öL,-½òølЪ'mí†æ‡’ÌXıg› sÙ߯1àßû0›×Ãn¾he›°ZÀIq¾w{Í+òðM?ýƒ(eª°LØÕ!™;ý-‹yòë«F.éãKŠ€áã«…›w õzTĜ֠¤rûpluÓì2\=ͱ™e*z 8RƒOÔ÷Ú†À¾õ扫j¡@é³OCëL›8‰@ѪæI<A×$IÁ™BíäÊ*õÒm6cŸêz={_Z íôÚiRA@ôOÆuP 2d‘N}¦òöÙ§ôø¹[Ñ6dÉÔÂÅç¹Û†CVmwmÎŒB‹Ñå ûcBdí™­q“”úÓÙ³Ú Í´ŒC»¢ÛñAªÆLö}(`^™Öù‘*¸ßp˜ ­ÊL¬‰µœ U—;Õ“­ëD ùÕãçîýùòì@w:ÙåZN6ˆ¥Õv&)‚&©ü7>·9'Ÿº³K’<éðÉ×gBuúPù~ðÙå»UŽ0¢]ƒ†ijPNÛ5}ðhÃ𾊎ÞÙÏë»<®WAÏùÑ¡qbÇ[n,aX²¹TNÚmxÿlÖ?þÑë[¹r×WÞýþUÀÇ­²O°JDnÏ´¶ÐŸƒ+ª¤xëÛÞºš»ÊÒôŽ]{[ÞšJ‘%„Vtö˜ÃM;ö]êW1u;þ·wBN¦HýW‡ô?žiÎ3bz¡ZƒPΞ,+ b~ô‘¥q¾–¯oæ^ÆÞ•ýÙüõºSgá*#¾Æ`ÑÜÏ—%äó*cS¢~ôaÔ¦+ø4'õïçEÅW¶¿¾h(áåå ÂÔäýõÎP}[å“~íZ%F•Ï‹Á~~[¤†dç¾”úì•ØþzÑ(jëýõYÛ O§›û{/M9AÚ÷YÞ½>:¨ ýæ­]­´¸íµe!¼¥8”ýY:üG¿¤Ëê ÿéÞ‰\·ÌÚ2U±÷KJ$Br`&Bî¯ÍØ¡F—tÙYÐWÏÛ>Ì'Y¨RÏ߈J 0JØ_O¸Ä­Ùõg}3é¾ÿÕM‹Ê…ª 8,/K˜ˆô•±Þœ¥Ø_Ÿ÷{ksûbßÔ³»¤ËýŸ¾r=‹ÈC}ؤzæñ’=ŠýõÀ T&÷Ë}cÔ$,%O㞎›?êÐØ4 µzÂ%.bŒft2ó4e…¿¡g½Ü÷±}ã“È ³–ò›åpÂWÔ8   '–R/e¯7âz}µÞ»9Oì&2÷~9þ­'ÈT‘êÙfÛ_ϸÞ7Å>è ¿|x²FR/7xÒÏ~!àtQ¯×J™²^¯ß–ò£d¨ˆÜ]žîݽûž‡wö3-‡ ™•.¡ƒW!¨Ñ»wy*»Þš-ÌôîÇy奫“ͰæÚ Œh¼¨à(S%è}Ÿ—[óæì:o•Ûi¶>g>Z{„æö¬í×WhOèxÓÑcD,Yû¸ÀZåpÌ m”ª ¡Ô½Ñó õúÉêõøI—téo+€K‘ª*;ßßܱ”®'H Á‰RÀLL2ÙNð´šgÄxô匘¾Á‘Yx¤V÷ýõlÌ©œÞ͈F´¦¦ZÁyœgš¼VÉ&+D©O“„ˆP©Är?±Ä<ßÔÂ.¹c’9*âÔQ&¶ŠÖtE‡ „.øÏ„¥C¤'$ LŠæV÷¶ãÔ¢º¨˜b$O}±)E‰q}‹€žÍ àòºœ ºçq~ñp£-‡yG͆Ná›9ºí K9ÖPh{ðcB™Nh|±Rbït"‹»ŠRUn0ݰ úÎÕÑL“(­1I6Qœ]”VØP±£Ç˜ “ô¬Àý<})QŽƒw*£¶ôˆ þ¡¾/9ú_Á*Ø ÅQ“IEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/configdialog/0000755000076500000240000000000012536324427021641 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dialogs/configdialog/configdialog.py0000755000076500000240000002134112536324427024644 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui try: import configdialog_rc3 except ImportError: import configdialog_rc2 class ConfigurationPage(QtGui.QWidget): def __init__(self, parent=None): super(ConfigurationPage, self).__init__(parent) configGroup = QtGui.QGroupBox("Server configuration") serverLabel = QtGui.QLabel("Server:") serverCombo = QtGui.QComboBox() serverCombo.addItem("Trolltech (Australia)") serverCombo.addItem("Trolltech (Germany)") serverCombo.addItem("Trolltech (Norway)") serverCombo.addItem("Trolltech (People's Republic of China)") serverCombo.addItem("Trolltech (USA)") serverLayout = QtGui.QHBoxLayout() serverLayout.addWidget(serverLabel) serverLayout.addWidget(serverCombo) configLayout = QtGui.QVBoxLayout() configLayout.addLayout(serverLayout) configGroup.setLayout(configLayout) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(configGroup) mainLayout.addStretch(1) self.setLayout(mainLayout) class UpdatePage(QtGui.QWidget): def __init__(self, parent=None): super(UpdatePage, self).__init__(parent) updateGroup = QtGui.QGroupBox("Package selection") systemCheckBox = QtGui.QCheckBox("Update system") appsCheckBox = QtGui.QCheckBox("Update applications") docsCheckBox = QtGui.QCheckBox("Update documentation") packageGroup = QtGui.QGroupBox("Existing packages") packageList = QtGui.QListWidget() qtItem = QtGui.QListWidgetItem(packageList) qtItem.setText("Qt") qsaItem = QtGui.QListWidgetItem(packageList) qsaItem.setText("QSA") teamBuilderItem = QtGui.QListWidgetItem(packageList) teamBuilderItem.setText("Teambuilder") startUpdateButton = QtGui.QPushButton("Start update") updateLayout = QtGui.QVBoxLayout() updateLayout.addWidget(systemCheckBox) updateLayout.addWidget(appsCheckBox) updateLayout.addWidget(docsCheckBox) updateGroup.setLayout(updateLayout) packageLayout = QtGui.QVBoxLayout() packageLayout.addWidget(packageList) packageGroup.setLayout(packageLayout) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(updateGroup) mainLayout.addWidget(packageGroup) mainLayout.addSpacing(12) mainLayout.addWidget(startUpdateButton) mainLayout.addStretch(1) self.setLayout(mainLayout) class QueryPage(QtGui.QWidget): def __init__(self, parent=None): super(QueryPage, self).__init__(parent) packagesGroup = QtGui.QGroupBox("Look for packages") nameLabel = QtGui.QLabel("Name:") nameEdit = QtGui.QLineEdit() dateLabel = QtGui.QLabel("Released after:") dateEdit = QtGui.QDateTimeEdit(QtCore.QDate.currentDate()) releasesCheckBox = QtGui.QCheckBox("Releases") upgradesCheckBox = QtGui.QCheckBox("Upgrades") hitsSpinBox = QtGui.QSpinBox() hitsSpinBox.setPrefix("Return up to ") hitsSpinBox.setSuffix(" results") hitsSpinBox.setSpecialValueText("Return only the first result") hitsSpinBox.setMinimum(1) hitsSpinBox.setMaximum(100) hitsSpinBox.setSingleStep(10) startQueryButton = QtGui.QPushButton("Start query") packagesLayout = QtGui.QGridLayout() packagesLayout.addWidget(nameLabel, 0, 0) packagesLayout.addWidget(nameEdit, 0, 1) packagesLayout.addWidget(dateLabel, 1, 0) packagesLayout.addWidget(dateEdit, 1, 1) packagesLayout.addWidget(releasesCheckBox, 2, 0) packagesLayout.addWidget(upgradesCheckBox, 3, 0) packagesLayout.addWidget(hitsSpinBox, 4, 0, 1, 2) packagesGroup.setLayout(packagesLayout) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(packagesGroup) mainLayout.addSpacing(12) mainLayout.addWidget(startQueryButton) mainLayout.addStretch(1) self.setLayout(mainLayout) class ConfigDialog(QtGui.QDialog): def __init__(self, parent=None): super(ConfigDialog, self).__init__(parent) self.contentsWidget = QtGui.QListWidget() self.contentsWidget.setViewMode(QtGui.QListView.IconMode) self.contentsWidget.setIconSize(QtCore.QSize(96, 84)) self.contentsWidget.setMovement(QtGui.QListView.Static) self.contentsWidget.setMaximumWidth(128) self.contentsWidget.setSpacing(12) self.pagesWidget = QtGui.QStackedWidget() self.pagesWidget.addWidget(ConfigurationPage()) self.pagesWidget.addWidget(UpdatePage()) self.pagesWidget.addWidget(QueryPage()) closeButton = QtGui.QPushButton("Close") self.createIcons() self.contentsWidget.setCurrentRow(0) closeButton.clicked.connect(self.close) horizontalLayout = QtGui.QHBoxLayout() horizontalLayout.addWidget(self.contentsWidget) horizontalLayout.addWidget(self.pagesWidget, 1) buttonsLayout = QtGui.QHBoxLayout() buttonsLayout.addStretch(1) buttonsLayout.addWidget(closeButton) mainLayout = QtGui.QVBoxLayout() mainLayout.addLayout(horizontalLayout) mainLayout.addStretch(1) mainLayout.addSpacing(12) mainLayout.addLayout(buttonsLayout) self.setLayout(mainLayout) self.setWindowTitle("Config Dialog") def changePage(self, current, previous): if not current: current = previous self.pagesWidget.setCurrentIndex(self.contentsWidget.row(current)) def createIcons(self): configButton = QtGui.QListWidgetItem(self.contentsWidget) configButton.setIcon(QtGui.QIcon(':/images/config.png')) configButton.setText("Configuration") configButton.setTextAlignment(QtCore.Qt.AlignHCenter) configButton.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) updateButton = QtGui.QListWidgetItem(self.contentsWidget) updateButton.setIcon(QtGui.QIcon(':/images/update.png')) updateButton.setText("Update") updateButton.setTextAlignment(QtCore.Qt.AlignHCenter) updateButton.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) queryButton = QtGui.QListWidgetItem(self.contentsWidget) queryButton.setIcon(QtGui.QIcon(':/images/query.png')) queryButton.setText("Query") queryButton.setTextAlignment(QtCore.Qt.AlignHCenter) queryButton.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.contentsWidget.currentItemChanged.connect(self.changePage) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) dialog = ConfigDialog() sys.exit(dialog.exec_()) PyQt-x11-gpl-4.11.4/examples/dialogs/configdialog/configdialog.qrc0000644000076500000240000000024712536324427025000 0ustar philstaff00000000000000 images/config.png images/query.png images/update.png PyQt-x11-gpl-4.11.4/examples/dialogs/configdialog/configdialog_rc2.py0000644000076500000240000022044312536324427025413 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:31:25 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x1b\x93\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x60\x00\x00\x00\x54\x08\x02\x00\x00\x00\xf2\x11\xa5\xd4\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\x0b\x12\ \x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd5\x03\ \x03\x0f\x27\x36\xc5\x11\x92\xc3\x00\x00\x00\x06\x62\x4b\x47\x44\ \x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x1b\x20\x49\x44\ \x41\x54\x78\xda\xed\x5c\x77\x90\x1d\x45\x7a\xef\x9e\x7d\x9b\x77\ \x25\xad\x24\x24\x84\x84\x04\x16\xc8\x46\x27\x8b\x24\x1d\x20\x71\ \x08\xec\x13\xb1\x10\xa7\x33\x20\xce\x1c\xa6\x08\x55\xa4\x32\x45\ \xce\xc9\x84\x3a\x52\x99\x60\xe0\x70\x51\x47\xb0\xe0\x4c\x2c\x63\ \x62\x95\x39\x71\x87\x41\x75\x60\x81\xc8\x06\xc3\x01\x26\x0a\x09\ \xa5\xd5\xe6\xdd\xf7\xa6\xfd\x9b\xfe\xba\xbf\xfe\xa6\x67\xde\xc2\ \x7f\xe7\xb2\x69\xa8\xa7\x79\xbd\xf3\x66\xba\x7f\xfd\xe5\xef\xeb\ \xd6\x69\x9a\xaa\xef\x5b\xfd\x96\x68\xad\x8d\x31\xf4\x89\x86\x2e\ \xbe\xa0\xc6\x9d\xfc\x59\xaf\x73\x94\xeb\xe2\xd3\x8a\xbf\x2d\x3e\ \x59\x76\x16\xdf\x28\x1f\x55\x6c\xd1\x0f\xa3\x47\x95\x8e\xad\xb4\ \x39\x5c\x18\xa6\xef\x49\x86\x1b\x78\x2b\x49\x92\x0a\x81\x0a\x68\ \x6a\xb5\x5a\x5f\x5f\x5f\xb5\x5a\x23\x6c\x19\x2c\xfb\x57\x7c\x2a\ \xfb\x69\xb4\xd2\xfc\x93\x22\xb2\xf5\xae\xe5\x02\xd2\x4f\xe8\x15\ \xc5\x7b\x4a\x57\x2b\xba\x3f\xfa\x2c\x5f\x79\xad\xe5\x0f\x8b\x74\ \x3d\x0a\x35\x34\x36\x56\x3a\x3a\x3a\xe8\xe1\x15\x26\xb9\x17\x5e\ \x78\xe1\xc4\x13\x8f\x9f\x34\x71\xfc\x48\xb5\xaa\xed\x03\xbe\x3b\ \xd8\xee\x65\xf6\xd5\x0e\xc2\xef\xf4\x33\xfb\x93\x3a\x2f\xd2\xdf\ \xf6\xca\x6c\xd1\x94\x76\x0f\x09\x4f\x8b\x16\x44\x7d\xd7\xd1\x78\ \x9c\x75\xa2\xbf\xf9\x66\xe3\x8a\x15\xcf\x6f\xbf\xfd\xf6\x19\x40\ \x0c\xea\xda\x75\x1b\xe6\xfc\xe9\xb4\xfb\xee\xba\x7a\xdd\x37\x9b\ \x1a\x2a\x15\xed\xa7\x9d\x01\xe9\x31\x70\x40\x64\xa3\xca\x2e\x0d\ \x5d\x65\xd7\xf4\x45\x65\xc4\x26\xfe\xb3\xdd\x61\x39\xed\x7d\xf8\ \x27\x29\x79\xaa\xbd\xd5\xd8\x6b\x42\x98\xee\x55\xf6\x3e\xf7\x0a\ \xd1\x89\x1e\x23\xa8\xc0\x5f\xe0\x15\x89\x98\xae\x76\x0b\x66\x1c\ \x7c\xc6\xa3\xa9\x3d\x72\x91\xb4\x42\x6b\x69\x6b\x3d\xf0\xa0\xe3\ \xba\xbb\x7b\xf0\x4c\x70\x59\x45\xfb\x06\x7e\x6b\x6d\x6d\x1d\x3b\ \xa6\x73\x60\x70\xa4\x52\xa9\x90\x00\xa7\x97\x1b\x71\x2d\x81\x4b\ \x6d\xbf\xfb\xab\x71\x3d\x58\x01\x5c\x27\x09\xe8\x33\xfb\x4c\x0d\ \xf5\x98\x24\x71\xf7\x18\x37\x5f\x4f\x3c\xf6\x83\xee\xf7\x13\x74\ \x30\x19\xed\x26\xa9\xc3\x8d\xfe\x4f\x8c\x71\x09\x4c\xee\x4e\x4f\ \x19\x86\x09\xdc\x78\x5c\x74\x41\xe1\x78\x8c\xd2\xc6\xd6\x36\xe0\ \xe0\xe4\x89\xd6\x95\x48\x2c\x55\xab\x69\xad\x96\x42\x22\x65\x5f\ \xfd\xb8\x8c\xbd\x16\x03\xcd\xf7\x6b\x95\xda\x2f\x86\xba\x53\x6d\ \x1f\x95\x7d\xa9\xa5\x16\xcf\xcc\x90\x30\xd4\x63\xef\x49\x04\xf9\ \xb8\x4f\xfc\xd5\x10\x65\xa4\xbe\xdf\xbf\x22\xbc\x54\x30\x23\x01\ \xad\x75\x10\x4c\x16\x35\x4f\x82\x8c\x8b\x11\xec\x9a\x75\x19\x4f\ \x41\x56\x41\x65\x5d\x39\x0d\x9e\x91\x4c\x5a\xb3\xa6\x8f\x71\x14\ \x24\x20\x34\x62\xfa\x61\xf0\xc6\x91\xbc\xe8\xd2\x9e\xcd\x78\x79\ \x59\xa4\xd2\x90\xc5\xed\xc6\xc1\xe2\xd8\x48\xf4\x28\x9e\xb6\x93\ \x27\x39\x3e\x0a\x64\x90\xeb\xcc\xa3\xeb\xfe\x94\x11\x27\x4d\x3b\ \x61\x2c\x12\xba\x76\x34\xc3\x84\xe3\xc9\x8a\x9e\x61\x69\x59\x79\ \x85\x60\x81\x4e\xf8\x0e\xfa\xb7\x22\xde\x4d\xec\x4d\x58\x1a\x02\ \xb8\x96\xe2\x2a\x55\xee\x67\x26\x40\xe4\xc8\xdb\x09\x15\x5a\x3b\ \x93\x23\x32\xea\x0e\x02\xdc\x0b\x20\xe5\x7e\xe0\xf0\x65\x2a\x20\ \x9b\x23\x2c\x01\xdd\x94\xe8\x88\xd4\x40\xa0\x8e\x2a\x92\x44\x6b\ \xc9\x4b\x9e\x8f\xfc\x12\xfa\x6b\xb7\x7a\xda\xcb\x9e\x94\x96\xd1\ \x51\x86\x13\x7f\xbc\xc2\x29\x2d\x1a\x33\x6f\xd0\x62\x44\x6e\xca\ \xcf\x12\x8c\xd6\xd6\xd6\xd2\xdc\xd4\x94\x34\x24\xb0\x00\xbc\xf0\ \x8c\x28\xcb\x4d\x8f\xbe\x18\x1d\x09\xa9\xc4\x38\xa1\x92\x26\x6e\ \xb6\xda\xbd\x9f\x49\x8e\x3f\x8d\xb8\x96\x9f\x61\xe1\xb5\xe0\x96\ \x46\xb0\x2f\xb8\x76\xb0\xaf\xaf\xa1\xa1\xa1\x44\x9f\x06\x50\x8c\ \xd7\x76\x1e\x22\x52\x06\x7e\x9a\xd9\xc4\x13\x42\x8e\x78\x2a\x23\ \x70\xe2\x28\x62\xac\x20\xa4\xed\x7c\x2d\x1d\x00\x9d\x34\x1d\x37\ \xb6\xf3\x83\x0f\x3f\xfe\xe4\xbf\xbf\x5a\xb3\x6e\x43\x47\x47\xe7\ \xe7\x5f\xac\x1d\xa9\xd6\x82\x02\x96\xba\xd9\x09\x5c\x65\x98\x86\ \xb5\x54\xe2\x42\x99\x93\x98\x16\x6a\x3c\x6f\x12\xc8\x07\x97\x3e\ \x27\xbb\x9e\x39\x73\x7a\x6f\x5f\xdf\xd4\x29\x5b\x4d\x9d\x36\xf9\ \xcf\x77\x99\x3b\xd2\xdf\x47\x7c\x2d\x9e\xc6\xe4\x60\x98\xcc\xe9\ \x4f\xa9\xb5\xe3\x9c\x74\x33\x29\x31\xb5\x14\xd2\x56\x92\x59\xbb\ \xcf\x4b\xb7\x4a\x64\x33\x90\xc5\x38\x71\x5c\xd7\xfd\x0f\x3e\xb9\ \xf2\xd5\x4f\x97\x2d\xfb\xeb\xd9\x53\x3b\xb6\xde\x7a\xeb\x1f\x35\ \x35\xd7\xb3\x4f\x82\x51\x67\x0a\x46\x45\xfe\x07\x34\x02\x1a\xb8\ \xbf\x70\xbc\x5c\x6a\x2e\x3a\xf9\x61\x82\x69\x95\x51\x79\x6a\xbe\ \xfc\xf2\x8b\x6a\x75\xe4\xf6\x7f\x7c\x74\x87\xed\x57\x9e\x73\xce\ \xa9\x43\x83\xbd\x09\x1b\x20\xe2\x51\xcc\x29\x26\x18\x39\x76\x29\ \x9d\xbe\xf4\x1c\xad\xd8\xc0\x28\xa8\x40\x92\x41\x72\x26\x69\x6a\ \x5a\x5b\x5b\xde\xff\xe0\xa3\xdf\xfd\xfe\x0f\xcb\xef\xff\xe7\xc6\ \x4a\xc3\xff\x42\x27\x60\xd6\xac\x99\xf8\x5c\xbc\xf8\xc7\x67\x9c\ \x71\xc6\x6b\xaf\xbe\xb6\xdb\xbc\xdd\x87\x07\xfb\x1a\x92\x84\x65\ \xbf\x09\x64\x9d\xd3\x27\x4c\x52\x16\x74\xe7\x1b\x38\x7d\x16\x16\ \xcc\xc8\x15\xae\x44\xf6\x29\x14\x5b\x5b\x6b\xcb\xef\xff\xe3\xcd\ \xc3\x7e\xf2\x57\x40\x07\xce\x47\x63\x63\x63\xa9\x57\x51\x74\x0b\ \x4a\xff\x3a\x8a\x9f\x51\xcf\x1d\x29\xf5\x2d\x82\xc8\xb0\x0d\x64\ \xde\xdc\xdc\xbc\xf4\xa7\x87\xff\xfb\x8b\xcf\xec\xfe\xc3\xbd\x8c\ \xe9\xb5\xe2\x2e\x9b\x66\x9a\xb7\x8c\x9c\x78\xf5\xac\xc7\xbe\xa7\ \x57\x9c\x10\x65\xd6\x42\x10\x1a\x9c\x64\x77\x00\x88\xd5\x3c\x2b\ \xaf\xa1\xa1\xda\x36\x53\xb6\xc9\x38\xb0\x52\x49\x92\x84\xdf\x94\ \xa6\xe9\x1f\x11\x20\xc8\x63\x0c\xc6\x59\x3d\xb6\x6d\xb3\xcd\x36\ \x2f\xf4\x0e\x1b\x33\x4c\xf6\x83\x12\xd2\x8a\x5f\x91\x49\xf1\x44\ \x13\xaf\x3a\x0e\x4a\x61\xeb\xd5\x58\xba\x39\x40\xb2\xd9\xa7\xc6\ \x3f\x80\x20\xcd\xcb\x20\xcf\xa9\xe8\x5d\xbf\xbe\xbb\xad\xbd\x43\ \x0e\x9d\x56\x0c\xd4\xf4\xc7\x65\xae\xe1\xe1\x61\xc2\xc8\x2d\x6f\ \x63\xa5\xa9\xc9\x79\x45\x04\xb8\x72\xae\x46\x50\xb7\x7d\x43\x43\ \x43\x23\x23\x9a\xbd\x89\x5a\xad\xd2\xd0\xd0\xd1\xde\xee\xe5\x51\ \x6a\x21\xd3\x19\xf3\x38\x4d\x6c\x02\x77\xe2\x15\x21\xaa\xe2\x74\ \x8c\xa9\x55\xab\xad\x6d\x6d\x13\x26\x4c\x30\x4e\xf3\x41\xf6\x1b\ \xa0\xf3\xf1\xc7\x1f\xaf\x58\xb1\xe2\xcb\x2f\xbf\x8c\x1c\xe8\x88\ \x04\x22\x7b\xb7\xae\x67\x5b\xdf\xe3\x8f\x68\xcd\x3a\x22\xc9\x56\ \x5b\x6d\xb5\xe7\x9e\x7b\xee\xbc\xf3\xce\x98\x6f\xf0\x75\x6a\x59\ \x44\xc2\x38\xc6\xb1\x36\xa4\xb3\xf6\xb2\x61\x37\x34\x75\xae\x7c\ \xe9\xa5\x5f\x5e\x7e\xdb\x8c\xad\x27\x8f\xc0\x6c\x6a\x6a\x4c\x1a\ \x1b\x9b\x3b\x3a\xd6\x6e\xda\xbc\x68\xf1\xbc\x65\x3f\x3b\x72\x78\ \x60\x73\xa5\x21\xf1\x53\x27\x15\x90\x91\x93\x15\x44\xce\xb6\xce\ \x6b\x31\xad\x89\x7e\xc1\x4c\x96\x08\x1d\xc7\x82\x70\x5e\x7f\xfd\ \xf5\x63\x8f\x3d\x76\xc6\x8c\x19\x63\xc6\x8c\xc1\x57\xd0\x6d\xc5\ \x36\xba\xc8\xe2\x26\xf6\x9a\xb8\x80\x2e\xa8\x9f\x7b\x12\xdf\xc8\ \xef\x63\xd7\xa1\x18\x8b\xa0\x97\xa6\xf9\xb6\x76\xed\x5a\x88\xe4\ \xf3\xce\x3b\xef\x80\x03\x0e\x00\x46\x44\x47\x78\xea\x17\x5f\xac\ \x51\xa6\x6a\xad\xad\x20\x3a\xbc\xa0\x69\xd8\xb0\xb9\x7b\x61\x5b\ \xd7\x31\x0b\x16\xf5\x34\xb7\xb4\x74\x75\x35\x8c\x1d\x3b\x76\xfa\ \xf4\x17\xdf\x7c\xe7\x9d\xf5\xef\xd2\x4f\x28\x90\xe3\xcc\x22\x8b\ \x8f\x57\x58\x6e\x6c\x15\x41\x8d\x86\x4d\x64\xe3\x98\x9f\x48\xb2\ \xd6\xd2\xd2\xb2\x7c\xf9\xf2\x1d\x76\xd8\x61\xf7\xdd\x77\x07\x91\ \x57\xf2\x8d\xe0\x00\x6a\x0c\x13\x77\xd2\x45\x11\xa6\x52\x8c\x18\ \x1d\xa2\x59\x89\x4e\x15\x44\xdd\xda\x3a\x6d\xda\xb4\x07\x1f\x7c\ \x10\x00\x49\xe7\x7b\xfd\xfa\x4d\xda\xcb\x65\x0c\x38\x35\x89\xf6\ \x7e\x9a\x45\xb0\xc1\x54\x1a\x06\x4d\x3a\x94\xd6\x54\xad\xda\x50\ \x1d\x69\x1b\x1e\xaa\xd6\xaa\x18\x97\x23\x5e\xcf\x9a\x19\xb3\x19\ \x1d\x44\xb5\x5f\xb5\x8a\x90\xb2\x56\x34\xb1\xcd\xef\x47\x80\x99\ \x00\xa3\x75\xeb\xd6\xc1\x1a\xda\xb2\x65\x4b\xf6\x4a\xd1\x30\x74\ \x42\x07\xf7\xe0\x02\x9f\xb8\xe6\xe9\xd1\x05\xfa\xf9\x93\x60\xd2\ \xa2\xe5\xd4\x8d\x98\x39\x1e\x45\x9f\xa9\x95\xa9\x9b\x36\x6d\xc2\ \x00\x70\x8d\x91\x4c\x9c\x38\x11\xeb\x84\xce\x31\x9d\x63\xa6\x4e\ \x9d\x5a\x1b\xa9\x42\x91\xb8\x91\xb3\xae\x76\x71\x3e\xf2\x0f\x54\ \xf8\x5f\x28\x07\xcf\x4c\x4e\x82\x5b\xce\x31\x41\xf7\xb3\xb3\x1a\ \x7c\x31\x0b\xa4\x16\xd6\x9d\x14\x43\x11\xa7\x10\xbd\x74\x76\x76\ \xe2\x82\x98\x8e\x0c\x02\xd0\x7f\x3d\x22\x92\x14\x44\x44\x54\x64\ \x31\x23\x16\x86\x00\x75\x8e\x8e\x52\x4d\x4d\x4d\x6d\x6d\x6d\x03\ \x03\x03\xf4\x15\xfd\xe8\x69\x6f\x6f\xcf\x6e\xd3\x0d\xc1\x1e\xb6\ \x3e\x8d\x0c\x01\xe8\x62\x23\x61\x2c\x8d\x1e\xcd\x9a\x50\xba\x77\ \x3a\xa8\x79\xa3\x0c\x87\x4a\xc8\x7e\x95\xc1\x6d\x9a\x8f\x94\x23\ \x98\x39\xc6\xfa\xe2\x8b\x2f\x76\x75\x75\x0d\x0e\x0e\xe2\x2b\x3a\ \x27\x4d\x9a\xb4\xcf\x3e\xfb\xf4\xf7\xf7\x37\xf8\x26\xa1\xa1\x4f\ \xdc\x46\x44\x44\xd7\x11\x05\x31\xdd\x45\x24\x46\x90\xb9\xd9\x89\ \xe8\x44\xea\xc2\x28\xc6\x4f\x3a\x21\x1b\xc7\xd2\x0d\xf9\x98\x8e\ \x33\xfc\x34\xbd\x31\xe3\xfd\x54\xcb\x99\x19\x19\x38\x93\x91\xac\ \x4d\x56\x94\xc1\x96\x09\x4e\xbe\xe4\xb0\xcc\x14\xda\xbc\x79\xf3\ \xa7\x9f\x7e\x3a\x65\xca\x14\x52\x28\x44\x3b\x18\x19\x44\xde\xd7\ \x5f\x7f\xbd\x7e\xfd\xfa\xa3\x8f\x3e\xba\xbb\xbb\x1b\xd4\xf4\xc4\ \x13\x4f\xf4\xf6\xf6\x1e\x71\xc4\x11\xf8\x5a\xc4\x88\xa0\x91\x48\ \x45\x10\x48\x80\x88\xb3\xc2\x92\x5b\x81\xc2\xe8\xf8\x96\x2a\x0f\ \x8f\x0b\x69\x78\x14\x9c\x03\xee\xfc\xf5\x60\x08\xf8\x88\x82\x9f\ \xa0\x4a\x8c\x61\x53\xc8\x06\xae\x0c\x05\x34\xdc\x82\x89\xb4\x0f\ \x85\x49\x82\x67\x6f\x58\x9b\x00\x0e\x50\x32\xaf\x21\x3e\x47\x46\ \x46\x20\x35\x31\x81\x93\x4e\x3a\x09\x7a\xed\xb3\xcf\x3e\x5b\xb8\ \x70\xe1\xec\xd9\xb3\x2f\xbe\xf8\x62\x58\x03\x4f\x3d\xf5\x14\xb0\ \x23\x34\x25\x67\x45\xba\xaf\xb4\x81\x4f\x99\x3d\x23\x8e\x66\x43\ \x31\x8c\xcd\xfd\xab\x69\xbc\x2c\x83\x48\x5e\x58\xb5\xe3\x04\x8d\ \x5c\x73\x1f\x58\x33\xec\xf9\x53\xb4\x46\xa8\x26\x17\xe5\xcd\xa6\ \x1c\xb4\x18\x45\x2c\xb4\x0f\xce\xf9\x06\x31\x0c\xce\x07\xef\x00\ \x0e\x1a\x1f\xc0\x42\x84\xff\xd9\x67\x9f\x05\x34\x40\xea\x90\x43\ \x0e\x79\xe0\x81\x07\xd6\xac\x59\x83\x6b\xc8\xce\x4b\x2e\xb9\xe4\ \xdd\x77\xdf\xfd\xfc\xf3\xcf\x81\xa0\x9c\x58\x51\x30\x8d\x02\x8d\ \xbc\x81\x51\x26\x0a\x2a\xc6\xf6\xb3\xa9\xfa\xd4\x4b\x10\x44\xec\ \x7c\x19\x1d\x22\x79\x3e\x6e\xe1\x6f\xd0\xc6\x8b\x5d\x6f\x23\xc4\ \xee\x6e\x22\x0c\x45\xe3\xfd\x65\x0a\xfa\x06\x19\x44\xaa\x84\x99\ \x02\xd7\xe3\xc6\x8d\x03\x73\x3d\xff\xfc\xf3\x98\xd5\x3d\xf7\xdc\ \x73\xca\x29\xa7\x40\xc5\xd0\x9f\x90\x30\x99\x3b\x77\x2e\x3b\x71\ \x91\x9a\xaf\x87\x4e\xd1\x74\x28\xa5\x23\xe6\x41\x11\xc6\xb2\x91\ \x54\x1f\x7d\x64\x1b\xd6\x73\x42\x3e\xa0\xe2\x22\x3d\xca\xb9\x68\ \x1e\x47\xcf\x9d\x84\xb2\xf3\xc5\x02\x8b\x71\x00\x53\xb9\x28\x58\ \x79\x96\x92\x55\x0f\x85\x44\x4e\x3f\xfd\x74\xd0\xcb\xd5\x57\x5f\ \xbd\x64\xc9\x92\xfd\xf6\xdb\x8f\xe4\x34\x2d\x38\x88\x4e\x5a\x89\ \xf4\xab\x06\xd1\x46\xc7\x48\xa2\x53\x34\x32\xa3\x0c\xb0\x63\x09\ \xa3\x83\x23\xee\x94\xb4\x71\x26\x5d\x08\x49\x73\x1c\x4e\x09\xc1\ \xcb\x94\xe1\x48\x82\xa2\x7f\xec\xd3\x05\x2d\xc6\x21\x49\x23\xc8\ \x47\x0e\x45\xe6\x3f\xb0\x8c\x60\xa8\xe3\x8f\x3f\x1e\x3a\x6b\x97\ \x5d\x76\x81\x7d\x44\x9a\x3e\x7b\xa2\xf7\x6f\x79\x4a\x72\x86\x0d\ \xf9\x26\x6d\x45\x16\x79\xb4\x00\xf4\x5e\x32\xbb\xa4\x6d\x19\x2d\ \x9e\x76\xb8\x38\x9f\xdd\xbb\xe3\x6e\xf2\x6c\x14\x29\x99\xc3\xf0\ \x4e\xaa\x8b\x2f\xeb\xe0\x03\xa5\xa9\x51\x79\xb3\xa3\x52\xe2\x4c\ \x89\xe1\x32\x40\x51\x52\x81\x97\x7a\xce\x9c\x39\x50\xea\x84\x0e\ \x4f\x06\xe6\x09\x99\x8b\x8c\x69\x3d\x8c\x98\x71\x84\x2f\x59\xe3\ \xaf\xfc\x40\x69\x3d\x15\xd3\xf0\x71\x44\x21\xcb\x2f\x79\x49\x4b\ \xf3\x0d\xa9\x04\xef\xaa\xeb\x20\x4d\x98\xf5\x88\x1c\xd9\xb0\x74\ \x32\x28\xf2\x11\x59\x3c\x8f\xc2\x65\x18\x37\x40\x81\x0c\x82\xb8\ \xc1\x05\x59\x40\x3c\x79\x40\x83\x3f\x41\xd9\x43\xb4\x93\xe4\xe2\ \xf5\x2f\x62\x54\xea\xb5\x44\xca\x4b\x1a\x96\xa6\x0c\x1e\x17\x96\ \x34\x3e\x25\x68\x9c\x9a\xae\x9b\xe7\xd5\x2e\xa8\xc8\xfa\x5e\x07\ \xcb\x40\x0b\xc1\x6e\xfd\xe4\x5c\xb8\xc3\x46\x21\x4d\x14\x32\xcd\ \x7b\xe1\x18\x25\x44\xcf\x82\x05\x0b\x1e\x7e\xf8\x61\x68\xab\xc9\ \x93\x27\x03\x11\x28\x2c\xf8\x6b\xf8\xc4\x35\x2c\xe9\xa5\x4b\x97\ \x3e\xf2\xc8\x23\x50\x64\x50\x73\xd2\xe4\xfb\x56\x8c\x22\xe2\x8a\ \x7e\x58\x1e\x1b\xf0\xdc\xc5\x01\x0d\x1f\xfc\x66\xb9\x22\xa6\xe3\ \x85\x34\xa7\x40\x94\x47\xc7\x27\x36\x28\xbd\xa7\x59\x1f\x26\x26\ \x97\xd6\xd0\xe4\xdf\x1a\x5d\xba\x54\xae\x41\x06\x23\x18\x72\xe4\ \x91\x47\xde\x71\xc7\x1d\xaf\xbc\xf2\x0a\xbc\x24\xe8\x78\x50\x0d\ \x22\x21\xe4\x70\x41\x2a\xc1\xed\xbe\xee\xba\xeb\x36\x6c\xd8\x00\ \xd4\xa4\x11\x2c\x27\xcc\x58\x34\xda\x16\xe1\x12\xfd\x84\xe9\xb7\ \x6c\x60\x21\x3a\xa1\x3d\x45\x68\x6f\x45\x07\xe2\xf0\x3e\x5a\x90\ \xaa\x85\x5a\x1c\xdf\x6b\xd8\x24\xac\xc8\x31\x90\xe4\x27\x57\x25\ \x92\x41\x32\x76\x83\xa1\x83\xb3\x10\xa0\x39\xfc\xf0\xc3\x9f\x7e\ \xfa\x69\x90\x09\x05\xee\x30\x49\x20\x72\xd5\x55\x57\xc1\x05\x99\ \x3f\x7f\xfe\xb9\xe7\x9e\x0b\x1d\x77\xc3\x0d\x37\x20\x96\x04\xd4\ \x48\xeb\x47\x8d\x61\x8a\x84\x5d\x3d\x6f\xb6\x14\x20\xc9\x62\xf9\ \xa2\x0e\xe3\xd3\x03\xb1\x1f\xa6\xbd\xed\x1d\xe5\xe6\x49\x87\x6b\ \x31\x8c\x28\x68\xef\x93\xfb\xc2\x50\x95\xe3\xe6\x21\x62\xb6\x40\ \x01\x18\xc1\xc9\x40\x0f\xd9\x78\x70\x35\x56\xad\x5a\x75\xc5\x15\ \x57\xdc\x7c\xf3\xcd\xd0\x6b\x50\x70\x60\xc6\xeb\xaf\xbf\xfe\x9a\ \x6b\xae\x81\xca\xa3\x52\xb6\x28\x42\xc6\xd4\x54\xf4\xbf\xbe\x33\ \xf9\x94\x42\xe3\x3b\x95\x09\x39\x0a\x9f\xee\xd2\x21\x6f\x6a\xa2\ \x08\x6f\x0a\x6f\xc3\x65\x86\x4c\x2c\x83\x1c\xbf\x92\xfc\x2f\xcb\ \xed\xc8\xd1\x10\xd7\x80\xd7\x20\x8c\x07\x7c\x83\x53\xb6\xd7\x5e\ \x7b\xcd\x9c\x39\xf3\xac\xb3\xce\x82\x07\x0b\xd6\x83\x91\xbd\xc7\ \x1e\x7b\xc0\xff\x00\x76\xa5\x15\x3d\x84\x0b\x19\xa2\x91\x4e\x28\ \xfd\x1a\x8b\x21\xe3\x92\x42\xa6\xbc\xb8\xcd\x33\x0c\x27\x33\x54\ \xc8\xc9\xc7\xf1\x6f\xbe\x9b\x12\x8b\xfe\xef\x41\x06\x59\x9b\x93\ \x49\x53\x95\x16\xb5\x45\x30\x49\x63\x87\x3c\x58\xb0\x18\xf8\x6e\ \xfa\xf4\xe9\x88\xfe\x21\x6a\x83\xaf\x00\x6b\xb7\xdd\x76\xbb\xe8\ \xa2\x8b\x60\x7c\x47\x28\xb0\x47\x8a\x06\xac\x8b\x30\x45\xc5\x74\ \x25\x14\xe4\xd6\xd3\xa5\x4f\xf3\xf7\x2b\xc3\x56\x8e\x0e\xae\x93\ \xb3\x1d\x85\x0c\xd1\x02\x1d\x67\x03\xaa\x30\xc7\xa4\xac\x2c\x8b\ \x7e\xaf\x22\x4a\x8e\x84\x51\xb1\x6a\x91\x2c\x17\xc4\x46\xc1\x77\ \xa0\xa0\x33\xcf\x3c\x13\x3a\x0e\xf1\xad\x0b\x2e\xb8\x60\xd6\xac\ \x59\xa0\xa3\xf1\xe3\xc7\x13\x0a\x4c\x35\x04\x0d\x18\x90\x00\xe2\ \xbf\x72\xbc\xad\x54\x14\xe6\xbc\x55\x1f\xdd\xf0\x5a\x9b\x61\x72\ \x6b\x4d\x20\xb2\xaa\x12\xf9\x09\x27\x9f\x72\x91\x90\x5c\x5a\xc4\ \x32\x4a\x24\x0c\x85\x26\x2b\x5f\xc9\xa8\x0e\xb2\x38\x07\xc2\xe8\ \x84\x13\x4e\x80\x60\x3a\xfb\xec\xb3\x21\xa7\xc0\x7a\x97\x5e\x7a\ \x29\x52\x34\x97\x5f\x7e\x39\x30\x62\x62\x61\xc2\xa9\xfa\x16\x61\ \x14\xd1\x5a\x09\x7d\xb9\x90\xa1\x62\xf3\x99\xd5\xb6\x11\x35\x59\ \xb2\x50\xc4\x57\x1e\xe5\x74\x5f\xae\x34\x8f\x4d\x05\x52\x23\x11\ \x3f\x07\xa8\xeb\xb7\x51\x30\xe2\x60\x20\x08\xe7\xd4\x53\x4f\x85\ \xcb\x0a\x09\x0d\x5e\x43\x78\xe8\xca\x2b\xaf\x84\x61\x09\x99\x8d\ \xc0\x00\x6c\xa5\x9a\x6f\x44\x3e\xa5\x18\xf1\x45\x69\xed\x2a\x2b\ \x65\xe7\xb1\x4a\x99\xe2\x53\x13\x0e\xaa\x9c\xc8\xe1\xbc\x60\xb0\ \x06\x73\x30\xf9\x68\x8f\xa3\xa0\xf0\x67\x56\xf0\x21\x52\x32\x5a\ \x05\xef\xe8\x28\xe2\x49\xc0\x08\x02\xe8\xa3\x8f\x3e\xba\xf7\xde\ \x7b\x11\x1e\x82\x65\x70\xed\xb5\xd7\x42\xaf\xdd\x77\xdf\x7d\xc0\ \x08\xce\x2d\xd3\xce\x88\x6d\x11\x46\x11\xbb\x31\x4c\xb1\x90\x8e\ \x94\x4c\xd0\xc7\x2e\x40\x48\x7a\x5b\x09\x44\xb9\xc4\xa7\xbc\x66\ \x58\x2b\x19\xed\x91\x51\x61\xed\x0c\x4a\x65\xd4\xa8\x65\xc7\x1c\ \xf4\x8b\xee\x29\xae\x36\x84\xf4\x69\xa7\x9d\xf6\xd0\x43\x0f\xc1\ \xb0\x86\xe7\x01\x50\x60\x19\x21\xb9\xf6\xe8\xa3\x8f\x82\xac\xa0\ \xf8\x24\x7f\x31\x3a\x74\xc1\xf2\xbb\x9e\x54\x12\x1c\x65\xa4\x2b\ \x9f\x23\x6e\x57\xff\x20\xe2\xd2\x14\x0b\x0b\x91\xb5\x42\xf1\x34\ \xfb\x2c\x1c\x0f\x62\x43\x5a\x19\xcf\x82\x05\x35\x36\x0a\x5b\x95\ \xea\x26\xea\xa4\xa9\x82\xb9\xee\xba\xeb\xae\x27\x9f\x7c\x12\xee\ \x08\x3a\x11\x3f\x7a\xec\xb1\xc7\x60\x61\x42\x1e\x81\xac\xaa\x85\ \xc6\x7a\x8d\x31\xa2\x0c\x47\xa9\x8e\xd3\x41\xbe\xd6\x29\x3f\xe7\ \x60\x4f\x5e\x74\x49\x22\xca\xd9\x3a\xbe\x74\x36\xae\x0f\x22\xfb\ \xc8\x05\x84\x74\x09\x1c\x3c\x3e\xba\x90\xb1\xab\xb4\x4e\x83\x30\ \x02\xd5\x80\x76\x80\x11\x22\x8d\x10\xdb\x07\x1e\x78\x20\xfa\xef\ \xbe\xfb\xee\x63\x8e\x39\x06\x5f\x17\x2d\x5a\x04\x11\x4e\x19\xed\ \x52\xf5\x2f\x25\x51\x39\x11\xf9\xb5\x8d\xec\x0f\x5f\x6a\xe3\x4a\ \x3e\x8b\xc6\x39\xa7\x77\x62\xfe\x32\xce\x2f\x8b\xeb\x83\xb8\x12\ \xcb\x18\x5f\x89\x57\xd0\xaf\x64\xec\xf2\x1c\x38\x33\x53\x4a\x41\ \x34\x37\x18\x47\x20\x13\x88\x67\x58\xd8\x97\x5d\x76\x19\x81\x82\ \x7e\xd0\xd4\x71\xc7\x1d\x87\xbf\xce\x9b\x37\x0f\x49\x01\x5c\x14\ \x9f\x10\x09\x6c\x0e\x12\xe5\x49\xc8\x95\x1d\xc4\x26\x24\xfb\xa5\ \xaa\xe0\xac\x86\xd0\x7e\x5e\x7f\x39\x6b\x28\x8d\x65\x50\x88\x01\ \xf8\xe0\xa3\x56\xc6\xd4\x11\xc1\x52\x00\x15\x49\x46\xae\x36\x73\ \x07\x1e\x0e\x75\x06\x8f\x0c\x00\x41\xa9\xbd\xf3\xce\x3b\x80\x03\ \x90\xdd\x76\xdb\x6d\xb7\xdc\x72\xcb\x7b\xef\xbd\x07\x87\x16\x84\ \x56\x14\x43\xb5\x42\x2b\xb1\x2d\x4c\x48\x6a\xe4\x7b\xdd\x74\x95\ \x74\x35\x42\xfd\x1a\x33\x65\x2e\xdd\xe8\x73\x5e\xba\x04\x20\xc3\ \x9e\x98\x11\xe2\x2b\xef\x13\x44\xe8\x44\x48\x45\xe8\x44\x2b\x0f\ \xa7\x04\x6e\xed\x39\xe7\x9c\x73\xfe\xf9\xe7\xc3\xfb\xc7\xfc\x21\ \xa7\xa1\xf5\x6f\xbd\xf5\x56\xe2\x32\x5b\x85\x31\x42\x91\x7f\x36\ \x1d\x8b\xa2\x3a\xd2\x62\x9a\x22\x3f\x69\x08\x6c\x84\x30\xaa\x96\ \xda\x3f\x57\x36\xc8\x79\x10\x0e\x92\xf0\xbe\x95\xbc\x51\xa0\x92\ \xa8\x3e\x48\x3b\x4b\x51\xd7\xb3\x7d\x8a\xaa\x37\x92\x14\x52\x76\ \x70\xc3\x6c\xf1\x04\xb0\x12\x92\x6b\x88\x93\x20\x59\xd4\xd3\xd3\ \x03\xaa\xd9\x6e\xbb\xed\x20\x8c\x2e\xbc\xf0\x42\xb0\x21\x44\x15\ \xe5\x36\x10\x90\xa4\x00\x40\x91\x88\x4a\xb4\x18\x19\x3c\xd6\x4f\ \xd2\xdc\xe1\xcd\x19\x76\xbb\xf8\x5e\x4e\x92\x46\xe5\xe4\x4a\x09\ \xe7\x5e\x44\x0d\x65\x7d\x90\xcf\x81\xf8\xa0\x74\x5a\x06\x8d\x94\ \x41\xdc\xc3\x9f\x94\xea\xe3\x64\x71\xbc\xf7\x2a\x49\xa0\xf8\x11\ \x09\x01\xb1\x00\xa3\x3b\xef\xbc\x13\xc4\x02\x91\x04\xd7\x1f\xce\ \x1a\x8c\x6f\x10\x0e\x8f\x18\x4e\x2f\xae\xa9\x87\x20\x26\x91\x57\ \x12\x0d\x12\x51\x30\x2d\xa4\x84\x8f\x3c\x2b\x59\xa0\xc8\xa9\x09\ \xa5\xeb\x6f\xbd\x12\x5f\x2b\xe2\x26\xe3\x64\x8f\x36\xa5\x4e\x50\ \x11\x0e\xd9\xc3\x49\x74\xfe\x2c\x6a\x5c\xf2\x6c\x11\x5a\x43\x40\ \x12\xe4\x03\x53\xfb\xf6\xdb\x6f\x07\x59\xed\xbf\xff\xfe\xe8\x7f\ \xf9\xe5\x97\x41\x41\x04\xc4\xc6\x8d\x1b\x1f\x7f\xfc\x71\xd8\x99\ \x80\x52\xea\xfb\xa2\x0c\xd2\xb2\xfe\xc0\xa8\x7c\x70\x42\x99\xbc\ \x59\xac\x44\x69\x43\xe9\x66\x37\xf9\x93\x62\x7d\x90\xab\x96\x35\ \xba\x64\x07\x8e\x14\xd2\x04\x81\xcc\x0e\x33\xc9\x94\xa2\x13\x01\ \x04\x67\x0d\x32\x68\xdf\x7d\xf7\x05\x46\xc8\x1d\x21\xa2\x06\x38\ \x00\xd9\xde\x7b\xef\x4d\x3c\x05\xaa\x01\x97\x41\xcd\x41\x42\x21\ \x2a\x00\x8c\xd8\x71\x2b\xd9\xfc\xc4\x01\xb3\xfc\xa8\xdd\x8a\x1b\ \xc3\x2a\x3e\xbf\x55\xc0\x48\x5a\x11\x4e\x78\xd8\x1f\x12\x82\xf6\ \x62\xab\x88\x77\xe2\xca\xdc\x88\x74\xd4\xc6\x32\x28\x12\x1c\x45\ \x07\x02\xf3\xc7\x1b\x81\x11\x08\x07\x29\xc6\x9b\x6e\xba\x09\x1a\ \x0d\x74\x04\xee\x43\x08\x09\x60\xe1\xfa\xab\xaf\xbe\x82\x6c\x42\ \x32\x12\x6e\x0a\xe4\x11\x7e\xc2\xa2\xad\xc4\x9b\xd7\x4a\x9a\x7f\ \x52\xa4\xfa\xe0\x57\x08\xf0\x70\xb9\xb6\x8c\x0c\x3a\x2d\xee\x2c\ \x1d\xa3\x85\x43\x9f\xe4\x73\x26\x1c\xbb\x57\x45\xa3\xb9\xe8\x22\ \x45\x3d\x91\xde\x91\xce\x7a\xd1\xa5\xc0\x93\xe1\xac\x21\xa3\x8f\ \x0b\x48\xe8\x28\xad\x84\x06\xd5\x76\xd8\x61\x87\xe1\x4f\x30\x11\ \xf8\xe7\xf5\xac\x44\x97\xef\xd4\xf9\xf0\x9e\xf1\x8a\x9d\x02\xc9\ \x21\x30\xc4\x81\x1f\xbe\xc3\xe9\x2f\xad\x83\x4f\x17\x0c\xc5\x42\ \xd1\xac\xb4\x13\x63\x19\xc4\x17\x5c\x7a\x21\x45\x32\x5f\x73\x78\ \xa8\x34\xbd\x45\xb9\x30\x48\x1c\x88\x67\x96\xee\xbc\x06\x59\x29\ \x72\x5b\x1b\x2e\x20\xad\xc0\x6b\x4c\x7d\x24\xa4\x4b\xbd\x79\xde\ \xee\x14\x2a\x38\x74\x70\xcf\xa5\xa8\x16\x5b\x1f\x72\xfe\x89\x0e\ \x31\x55\x51\x26\x24\xeb\x83\x9c\x59\xe1\x37\x63\xd5\x53\xf0\x04\ \x90\x14\x3d\x2c\x74\x18\x26\xde\x3f\x51\x44\x47\x02\x44\x80\x4a\ \x15\x4e\xf2\x18\xe8\xdc\x78\xe3\x8d\xa8\x87\x3c\xe8\xa0\x83\xa0\ \xe6\x98\x43\xb9\x94\x2b\xcf\x68\x32\x14\x9d\x33\x91\x95\xe3\x2f\ \xad\xf2\x51\x31\x57\x7b\xe0\x92\x14\x85\x7d\xc3\x2e\xa5\xa1\xe2\ \xfa\x20\x1f\xe0\xe5\x00\x66\x2c\x62\xd9\xf0\xd1\x3a\xde\x82\xa3\ \x0a\xdb\x5c\xe5\x3a\x73\xd5\x1e\x57\x40\x30\x40\x98\x39\xbe\x92\ \x59\x48\x37\x40\x1e\x01\x1d\x60\xf4\xc1\x07\x1f\x90\x8f\x02\x8c\ \x88\x7f\xeb\xec\x50\x75\x49\x67\x23\x77\x66\x0a\x3b\x0e\x71\x78\ \xa0\x5e\xb3\xff\xd3\x82\x60\x79\xbd\x9e\x2a\xd1\xf1\x4a\x40\x1a\ \xd5\x28\x12\xdd\x58\x4f\x35\xcf\x62\xac\xa1\x98\xce\x8b\xea\x9c\ \xf2\x65\x04\x07\xbe\x62\xce\x9c\xcf\x91\x14\x14\xa5\x2e\xf0\x13\ \xe2\x32\x92\x4a\x60\x28\x18\xd6\x60\xbd\x65\xcb\x96\x41\xf4\x20\ \x3b\x02\x74\x16\x2f\x5e\x0c\x2b\x9c\x1e\x52\x2e\x83\x72\xa6\xaf\ \x50\xde\xb6\x66\xac\xb3\xb9\x79\x42\x7b\x3b\x8a\x5c\x5b\xc6\x8c\ \x41\x95\x6b\x63\x57\xd7\x38\xe4\xa9\xbe\x89\xed\x1f\x11\xe7\x0f\ \x69\x9f\xb8\x46\xd1\x28\x5f\xfd\x21\x62\xd2\x7e\x27\x62\x95\x25\ \x45\x71\x0b\x64\x29\x67\x49\x16\x93\xb4\x23\x13\x90\x08\xa4\x41\ \xd9\x3f\xf3\xcc\x33\x87\x1e\x7a\x28\xf4\x1a\x3a\x11\xae\x45\x31\ \x34\x3a\x41\x3e\xf0\x66\x57\xaf\x5e\x8d\xb0\x91\x34\xb8\x0a\x32\ \xc8\xe5\x20\x74\x7e\x8f\x33\x8d\x73\x78\x68\xf8\xb9\x0f\x3f\xdc\ \x54\x49\x06\x92\x86\x4a\x5b\x5b\xd2\xd2\xd2\x31\x61\xfc\x1f\xbe\ \x5a\x3b\x7d\xa7\x09\x56\xf9\xa5\xc6\xe8\xd8\x60\xc8\xd7\x28\x26\ \xd2\x50\xd4\x6e\x9f\x47\x88\x9f\xd0\xc4\x10\x30\x45\x1e\x99\x8a\ \x58\xeb\x39\x13\x91\xe6\x8a\x22\xaa\x45\xad\x4f\x0d\x28\xa0\x5e\ \xef\xb9\xe7\x9e\x43\x14\x0d\x71\x7e\xbc\x11\x51\x91\xb7\xde\x7a\ \xeb\x8d\x37\xde\x20\x64\x51\x3c\x4e\x05\xad\x1c\x45\x2b\xb7\xa4\ \x4d\x8e\x04\x54\xe6\xdc\xeb\xc1\x81\xc1\x5d\xe7\xcc\x7a\xbf\xa5\ \x92\x2e\xdc\xbb\x71\xfe\x7c\x3d\x7b\x76\x75\xc6\x8c\xc1\x09\x5b\ \xbd\xf2\xfe\xbb\x7b\xce\x9f\x33\x3c\x30\x24\x76\x12\x6a\x2f\xcb\ \xec\x85\x50\x4d\x15\x59\x1f\xe4\x6c\xab\x3c\x7f\x61\x4c\xf0\xb6\ \x91\x6b\xa6\x0a\xe9\xd1\xab\xe8\xa5\x00\x92\x45\x73\x32\x31\x2f\ \x73\x81\x98\x33\x9c\xaf\xa3\x8e\x3a\x0a\x21\x47\xe0\x82\x57\x80\ \xcb\xd0\x8f\x20\xe4\xc9\x27\x9f\x8c\x52\x36\xa9\xe6\xea\xa5\x55\ \x5d\xf9\x9c\xf6\x01\x7b\x5f\x45\xd6\xdf\x3f\x30\x7b\xe7\x9d\x7e\ \xbc\x70\x6e\xb3\x49\xfe\x72\xff\xc5\xdd\xdd\x5b\x20\xda\xfe\xf3\ \xbd\xff\x5a\xf0\xc3\x9d\xe6\xcf\xdf\x79\xd3\xc6\xee\x24\x5b\x83\ \x90\x23\xb4\x3a\x30\xb5\x9b\x0e\x55\x4e\xcd\xe7\x4d\x74\xc5\xa5\ \xc0\x72\x97\x06\x32\x7f\x94\x1d\xe5\x2c\x6b\x3d\x73\x99\xd5\x56\ \xa4\xbf\x64\x8d\x9a\x6c\xe0\x26\xc8\x07\x64\x8a\x60\x25\xd2\x63\ \xc1\x62\x58\x09\xa2\x3e\x26\x19\x0e\x06\x15\x17\x24\x8b\xe0\xd8\ \x5a\x4c\x4d\x1b\x83\xbd\x2b\x8a\xd7\x0d\xf5\x0e\x2c\x3b\xf2\xc0\ \x2b\x7f\xb1\x7c\x9f\x45\x7b\x83\x92\x51\x29\xf1\x9b\xdf\xfc\xdb\ \xdf\x1c\x85\xeb\x54\x89\x4d\x77\x89\x71\x85\xbd\x76\xeb\x4f\x28\ \xee\x88\xed\x20\xb6\x2c\x64\x56\x8c\x30\xc2\x58\x69\xd0\x45\x8b\ \xae\x28\x77\x8a\xe8\x70\xed\x53\x94\x4a\x96\x5b\x54\x10\x0c\x91\ \x81\x4a\x2a\x15\x65\xa5\x4e\xe2\x0f\x77\xc6\x32\xc8\x55\x8a\xa5\ \xb4\xb0\xe4\xd6\x5b\x01\x9d\x3d\xbf\xaf\xb7\x7f\xd7\xdd\xe6\x4e\ \x9d\xd2\xb1\x6a\xd5\xea\x03\xf6\xff\x8b\xd5\xaf\xbf\xd5\xd2\x34\ \xb4\x60\xc1\x3c\x6c\x8b\x07\x71\xfb\x70\xad\xfb\x87\xca\x5c\x49\ \x02\xe7\xec\x20\xb1\x55\xc3\xc7\x21\xf3\xc4\x0c\xb2\x07\x97\x91\ \xbd\x5b\x1a\xd6\xa3\x42\x7a\x96\x59\x5c\x54\x5f\xba\x3f\xa3\x58\ \x98\xc0\x6b\x50\x52\x6b\xe1\x01\xa2\x12\x75\xb0\x24\x55\x8e\x5a\ \x04\xf5\x96\x9e\x1e\x08\x75\xec\xf9\x19\x1a\xae\x6a\x0e\xfa\x39\ \x13\x28\x25\x8f\x61\x78\x70\xf0\xe7\xcb\x0e\xba\xf9\x97\x4f\x1e\ \x7d\xf4\xcf\x7e\xfb\xdb\x15\x4b\x0e\x5e\xe8\xf6\xe6\x1a\x63\x4c\ \x6e\x53\x28\x3b\xb3\x5a\x95\x45\x14\x4d\xa8\x1c\x51\xc5\xc9\x83\ \xec\x11\x09\xc4\x02\x16\xab\x58\xa2\x52\xf1\x62\x21\xe2\xb7\x16\ \x25\x36\xfa\x26\xcb\x5d\x65\x23\x70\x57\xae\x5c\x89\x18\x08\x52\ \xd8\xec\xb5\xe2\x02\x1c\x1a\x85\xa2\x8d\x0f\x25\x12\x88\xbd\x3d\ \xbd\x7b\xec\xb9\xeb\xa4\x09\x4d\xf7\xdc\xbb\xbc\x31\xe9\xdf\xe7\ \x47\xf3\xb7\x6c\xe9\xc9\x24\xa3\x8a\x67\xea\x7f\xad\xa5\x60\xaa\ \x98\xa8\x74\xc6\x10\x23\x24\xfc\x63\xd2\x62\xd0\x35\x70\x20\xdf\ \x7e\xfb\x6d\x62\x07\x0a\xee\x48\xba\x28\x25\x90\x62\x85\x46\xc4\ \x5c\xa5\xa7\x9f\x14\x33\xda\x74\x1b\x12\xd9\xa8\x8a\x84\x4d\xc4\ \x88\xd4\xaa\xb5\x3f\xd9\x7e\xdb\x4a\x43\x45\xa5\x43\xaa\x41\x07\ \xab\xc8\x09\x6d\x37\x4f\x28\xfb\x63\x7f\xbe\xe4\xe0\x9f\xfc\xed\ \xa3\xbf\xbe\x1e\x9b\x16\xd2\xd4\x88\x64\x7d\xd0\xeb\x21\x55\xa4\ \x83\xeb\x1b\xd7\x07\x79\x62\x1e\x66\x82\xe7\x08\x19\xe2\x7e\x1b\ \x6d\xe3\xd1\x73\xfc\xcc\x9f\x9e\x90\xe6\xb6\x8a\xe4\xed\xcc\xe2\ \x3e\xc2\x52\xa1\x5b\x6f\x27\x22\xe2\xb3\xd0\xa4\xb0\x89\xc8\xa4\ \xe4\x01\xb4\xb4\x34\xdb\xb2\x15\x27\x7e\x78\x0b\xb9\x0f\x13\x19\ \x5b\xcd\x34\xb4\xe3\x0e\x33\xfe\xe1\xef\xcf\xfd\xc1\x0f\x76\xec\ \xeb\x1f\x00\xad\x7b\x44\x52\xc1\x43\xc6\x17\x00\x1b\x2d\xaa\x94\ \x72\x11\x45\xb2\xb6\xb2\x43\x3c\x5a\x2a\x70\xa6\x77\xfa\xb3\x59\ \x52\x4e\x23\x0a\x01\xe2\xdf\x76\xdb\x6d\xa3\x3d\x98\xd1\x6c\x8b\ \xdb\x30\xa3\x32\x4d\x56\xfc\xdf\xba\xa1\x2e\x7f\x66\x46\x15\x84\ \xcc\xc2\xde\xed\xf1\xce\xf6\xd4\xd5\xfc\xb6\x68\x13\x42\xa9\xda\ \x57\x27\x7a\x47\x15\x76\xdb\xd2\x25\x8b\xfb\xfa\xfb\x53\xca\x7f\ \x38\xeb\xc9\x09\x2d\xde\xb3\x9d\x3d\x20\xf5\x85\xb1\xd1\xa6\x5e\ \xa3\x43\xb8\x7a\xec\x98\xf6\xe1\xa1\xa1\x28\xaf\x46\xaa\x1a\x3c\ \xff\xad\x00\x45\x29\xaa\x88\x82\x46\x3f\xdf\xa7\x14\x20\x57\x89\ \xe2\x0b\xc9\x5d\x54\x53\xa9\xee\xee\xcd\x80\x8e\xf4\x03\x17\xcd\ \x5b\x03\x19\x84\xe1\x26\xcb\x16\xce\x96\x9e\xde\x24\xf1\xa7\x2a\ \x50\xd2\x5d\xe5\x23\x91\x5e\xf6\xc8\xc8\x49\x45\x3a\xc5\x78\x24\ \x4a\x68\x87\x6b\x66\xca\xe4\xf1\x2f\xbd\xb6\xfa\xa7\x4b\x0f\xdb\ \xd2\xbd\xc5\xa6\x11\x6c\x46\x4c\xf1\x81\x0d\x8a\x92\x0b\xd6\x58\ \x0f\x47\xf4\x98\x5c\x5e\x45\xf1\xcd\xc6\x67\x22\xd2\xe0\xe8\x66\ \x4f\x08\x47\x6b\x14\x8f\xfd\x71\xbb\xdd\xe4\x14\xe8\x28\x00\x7a\ \x66\xb6\x54\xe3\xbb\xc6\xc3\xa1\xdd\x71\xe6\x34\xa9\x82\x74\x38\ \x01\x87\x4f\x79\x71\xb1\x6a\xda\x37\x1e\x16\x49\xeb\x28\x4c\x1b\ \x2a\x18\xc5\x81\x03\x95\xa2\x08\xe8\xe9\xe9\xdd\xf7\x47\xf3\x1f\ \x7f\xe6\xe6\xbb\x7e\x75\xdf\xc1\x07\x1f\x90\x55\x46\x65\xf5\x87\ \x15\xeb\x97\xa4\x14\x84\xac\x77\xba\x94\xaf\xca\xd1\xa5\xe7\x1d\ \xf9\xc3\x0e\xc8\x2d\x4e\xf9\x81\xfc\x58\x25\x8e\xf5\x91\x50\x3b\ \xbd\x61\x1f\x0e\xd7\x25\x3b\x02\xaa\x96\xfe\xcb\xbf\x3e\xb5\xea\ \x95\xdf\x1d\x7f\xeb\x85\x5b\xb6\xf4\xea\x24\x09\x79\x51\x2d\xd2\ \x15\x5c\x3f\xe4\x4f\x10\x32\x26\xde\xe0\x18\x8d\x9f\xcb\x38\x9d\ \xa1\x18\x6b\x19\xbf\x83\xe1\xef\x2e\x3c\xf1\x57\xff\xf4\xc4\xc3\ \xbf\xfe\xac\xb7\x6f\x18\x35\x3e\xbd\x7d\x83\x23\x4e\x3a\xfa\x62\ \xd9\x42\x9d\x9e\x74\xaa\xb5\xdb\xac\xaf\xa3\x1b\xb8\xdf\x88\x03\ \xa8\x9c\x10\xd1\xf9\x2c\x68\x38\x17\x2c\xec\x63\xc3\xf7\x89\x13\ \xc6\xae\xfd\xfa\xeb\x71\xe3\x3a\x36\x6e\x58\x73\xd5\xa5\x27\x75\ \x76\xb4\x0f\x0c\x0c\x3a\x31\x97\xdd\x9f\xe6\xdc\x0e\x4b\xfd\x1c\ \xe5\x0a\x96\x8e\xdf\x07\x5c\xc8\xc7\xe6\x8f\xc1\x91\x42\x9a\x69\ \x0b\x7c\x0a\x5d\xde\xd9\xd9\x71\xe9\xf9\x27\xc2\x12\xeb\xe9\xe9\ \x03\x3d\x6f\xd8\xd8\x2d\x75\x16\xbd\x21\x3a\xbb\x27\x3a\xf1\x48\ \xe7\xcf\xf7\x50\xf5\x0e\x43\xe2\xa3\x10\x7c\xa5\x93\x32\xf9\x63\ \x80\xfc\x99\x1e\x14\xea\x9b\x38\xb1\xab\xb1\xa9\xb1\xbd\xad\x6d\ \x5c\xd7\xb8\xc1\x81\x21\x38\x5c\x09\x93\x8f\x88\xe5\xa8\x3a\xe5\ \x0c\x85\x32\x58\x1f\x67\x65\x1b\xca\x59\x3a\x62\xdf\x7c\xc8\x2b\ \x86\xd0\x6c\x02\xf7\x79\xfd\xc6\x6e\x30\x17\x22\x12\x78\xe8\xe4\ \xc9\x93\xf8\xf8\x17\xe3\x76\x5b\x05\x1f\x91\x8f\x94\xf1\x7f\x55\ \x7c\xf2\x06\x5f\x28\xd9\x13\x9d\x7c\x26\xa3\xe4\xf9\xfd\x39\xf2\ \x1e\x9a\xd1\x48\xad\x9a\x05\xc1\xb0\x66\x1b\x36\xc3\x5b\x20\x93\ \x2f\xf1\xd9\x54\x3e\x57\xc9\x17\x13\xba\xca\x27\x25\x22\x87\x9a\ \x37\xb6\x98\x20\x9b\x85\xaa\xcf\x95\xd2\x57\xe4\x81\x46\x81\xf0\ \xec\x0d\x95\xcc\x5e\x30\x1c\xf4\xcb\xef\x76\x08\x87\x63\xc8\xe9\ \xe6\xfa\xf3\x40\x14\xcf\x44\x08\x50\x16\xb1\xa8\xb7\x17\xdf\x1d\ \xf8\x65\xbd\xa4\x84\x8e\x50\x32\x3a\x1c\x65\x42\x4a\xcc\xe8\xb0\ \x89\x25\x7f\x64\x47\x20\x4f\xef\x52\x18\xa1\x51\xb8\xb4\x8a\x83\ \xdb\xf2\xfc\x20\xa2\x1f\x87\x91\x2a\x64\xfb\x8b\x47\x74\x89\x23\ \x6b\xc2\x4e\x0e\xfb\xaa\xa4\x8c\xa1\x74\x01\x23\xad\xcb\xce\x22\ \x48\x74\xb1\xa6\x34\x7c\x0d\xdb\x8f\x4d\x70\xb9\xbc\x9f\xa4\x45\ \xdc\xde\x1f\xea\xe2\xe1\xf3\x9e\x01\xef\xa2\xe3\x84\xac\x51\x74\ \x84\x10\x6b\xb8\x50\x50\x94\xab\x0f\xb2\xaa\x37\x1d\xc9\x82\x5b\ \x90\x35\x55\xbf\xdf\xd5\x1b\xa8\x9e\xb3\xe4\x71\x5d\x8a\xfb\x43\ \x2c\xd8\xf3\x5c\xa2\x4d\x38\x03\x2a\x20\xc2\x0f\x31\xa6\x70\x2c\ \x5b\x38\x33\x8f\x8d\xbd\xfc\x5e\x64\x95\x3f\xa0\x88\xce\x8b\x8a\ \xf6\xac\x98\xc0\xcb\x2a\x6c\xcf\x54\x2a\x36\xdc\x59\xc4\xd9\x7b\ \xd3\x60\xc7\x62\x57\xbd\xf2\x25\x69\xd1\xf9\x41\xaa\xa3\xbd\x6d\ \xfc\xe4\x89\xa4\xd7\xb5\x14\x37\x7e\x43\x91\xc4\x28\x09\xa7\x74\ \xb9\xd3\x65\x58\x54\xeb\x70\x24\x90\x16\x87\x66\xf1\xf1\x7e\xc6\ \x1d\x1e\x16\x86\x5a\xe6\x9a\x89\x7e\x93\xff\x1a\x12\x80\xca\xa8\ \x1c\x62\x05\xcd\x67\x4c\x4e\xae\x99\x42\xb1\x47\x48\xfa\x90\x1d\ \x62\x74\x5b\x2b\x55\xc2\x05\x3b\x88\x73\x26\x2f\xbc\xb4\xea\xe2\ \x8b\x6f\x84\xda\x62\xe7\x20\x1c\xd0\x66\x0a\x87\x0f\x71\x86\xc8\ \x27\xdc\x74\xfe\xac\x22\x41\xc7\x12\x02\x3e\xae\x47\x8b\x19\xe9\ \x78\xe2\x65\xe7\x33\x69\x79\x48\x92\x2a\x48\x81\xf8\xfc\xca\xd8\ \x68\x50\x75\x76\x31\x45\x65\x0b\xcd\x4d\x8d\xab\x5e\x7d\x93\x36\ \xfb\xa5\xf6\x70\x3e\x17\xc4\xf9\xe4\x93\x4f\x96\xdf\xff\x40\x7f\ \xff\xa0\x12\x34\x6b\x72\x95\x43\xf2\xb3\xce\x39\x97\xb2\xc7\x94\ \x1e\x57\xc5\x47\x3e\x29\x3e\xab\x30\xd6\xc4\x4c\x80\x26\x67\x61\ \x09\x1b\x2a\xf7\x59\xe7\x20\x4f\x2d\x7f\x58\x34\xd6\xea\x1d\x18\ \x8a\x1b\xc6\x74\x76\x9c\x76\xda\xa9\xb4\x71\x5b\x97\xef\x81\xf8\ \xbe\x95\x1e\x76\xcb\x81\xf1\xc2\x61\xb7\xba\xf4\x2c\xa5\xff\xab\ \x87\xdd\x52\x5a\xdc\xbd\x82\x03\x9a\xf1\x46\xa2\xff\xdf\x00\x85\ \x4d\x60\xdf\x9f\x48\x3e\x7a\x4b\xbe\x87\x60\xf4\xf6\x3f\x17\x5c\ \x8a\xe5\x6a\xba\xb8\x51\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x20\x68\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x60\x00\x00\x00\x54\x08\x02\x00\x00\x00\xf2\x11\xa5\xd4\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\x0b\x12\ \x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd5\x03\ \x03\x0f\x29\x0a\x74\xfd\xc3\xca\x00\x00\x00\x06\x62\x4b\x47\x44\ \x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x1f\xf5\x49\x44\ \x41\x54\x78\xda\xed\x5c\x09\xb8\x14\xd5\x95\xae\x5b\xbd\xbc\x7e\ \xfb\xc6\x5b\x58\x1e\xbb\x6c\x42\x82\x80\x28\x51\x31\xe2\x46\x40\ \x05\x07\x51\xa2\x66\xe2\x12\x10\x9d\x44\xcc\x0c\x44\x13\x17\x70\ \x41\x8d\x4b\x12\xe7\xcb\xa2\x49\x8c\xc6\x49\x26\x8e\x1a\xa3\x64\ \x12\x26\x01\x13\xe5\x53\x42\x08\x71\x62\x36\x0d\x10\x40\xe1\xf1\ \xf6\xfd\xf5\xeb\xb7\x74\xf7\x9d\xff\xde\x73\xef\xad\x5b\x55\xfd\ \x88\xe6\xd3\x2f\xc9\x37\x96\xd8\xaf\xba\xba\xea\x56\xd5\xa9\xb3\ \xfc\xe7\x3f\xe7\x16\xcb\x66\xb3\x8e\xe3\xa4\xd3\x69\xd7\x75\x39\ \xe7\x58\x67\x8c\x39\x7a\xc1\x16\xfb\xab\xd9\x48\x2b\xe6\x27\xb3\ \x5b\x78\x7f\x7b\xcb\x3f\xd6\xf8\x58\x8f\x44\x22\x2c\x93\xc9\x40\ \x34\xce\xfb\x4b\xae\x45\xc8\x0b\x1a\x34\x34\x34\xb4\x7e\xfd\x86\ \x68\x34\xce\x79\x16\xb2\x65\xf8\xcf\x21\x19\x33\xee\x70\xf9\xd5\ \x7f\x98\xfc\x55\x6e\x65\x66\x8b\xfe\xca\xad\x4f\x79\x0a\x35\xa0\ \xde\xd1\xdb\xed\xef\x76\x7c\x07\x1a\x93\xce\x64\x2a\x2b\xcb\x6f\ \xbd\xe5\x96\x28\x34\xaa\xa7\xa7\xbb\xbb\x27\x75\xed\x75\xd7\xf5\ \xf7\xa7\x84\x82\x31\x07\x82\x12\xc7\x30\x97\xe1\x6f\x4e\x15\x65\ \xde\x09\xb8\xdc\x84\xbd\xf4\xbe\xa4\xa4\xcc\x68\xb3\xf8\xce\xcd\ \xb5\x8b\x9d\xb4\x92\x8b\x0b\xf2\x59\x04\xdd\x93\x93\x6b\x7c\x39\ \x70\x50\x40\xef\xc1\xf8\x38\x34\x12\x71\x93\xc9\xbe\xa7\x9f\x7a\ \x1c\xc7\x46\xc9\xea\x4a\x4b\x4b\xcb\xcb\xcb\xfa\xfb\xf3\xe8\xfe\ \xe2\xb1\x68\x24\x16\xe7\x99\x6c\x26\x93\x66\x96\x01\xc2\x5d\xb9\ \xf2\x04\xfa\xa4\xea\x04\xd0\x43\x1c\x16\x8b\xc7\xd3\x69\xa8\x23\ \xa4\x0f\x8f\x16\xf1\x84\xc9\xcc\x75\xa8\x1b\x90\xba\x8b\x6b\x95\ \xb7\x9a\xeb\x06\x82\xe3\xd3\x0d\xb3\x5c\x1a\xf4\x6e\x8f\x4f\x02\ \x8a\xc7\xf3\x4a\x8a\x8b\xb1\x2d\x4a\xa3\x43\x12\x99\x74\x06\xae\ \x3a\x1a\x89\x42\x22\x47\x8e\xd4\x37\xb7\x34\x15\x17\x95\x14\x14\ \x14\x64\x49\xba\xea\x04\x2c\x74\x02\xa5\xe4\x99\xf4\x50\x5b\x7b\ \x5b\x45\x45\x65\x55\x55\x75\x7e\x41\x7e\x7f\x7f\xbf\xcb\x5c\xf5\ \xb4\xe8\x20\x47\x3e\x4e\xf3\x84\xe5\x0d\xf0\x61\x9e\x70\xe0\x06\ \x86\xd3\xa0\xf7\x62\x7c\x71\x3f\x9c\x43\x1a\x58\x84\x80\x8c\xeb\ \xc6\x80\xb8\x25\x7c\xfd\xe2\x17\xee\x2e\x2b\x2d\x6a\x6b\x6b\x2d\ \x2e\x2e\x2e\x2c\x2c\x82\x93\x0a\x07\x02\x1a\x8d\x73\xf3\xc9\x20\ \xdc\xc6\xc6\x86\xda\xda\x91\x10\xee\xaa\x8f\x5e\x35\x6d\xda\x0c\ \x61\xb0\x42\xfb\xbc\x4b\xd4\x7a\xcd\xf4\x17\x16\x08\x3a\xcc\x1a\ \xdc\x7c\xd3\x6a\x40\xba\xc0\x02\x3b\xbe\x07\xe3\x4b\x69\x30\x35\ \x58\x94\xcc\x95\x4b\xb9\x42\x1c\xbf\xf8\xc5\xcb\xe5\x65\x85\x0f\ \x3c\x70\xff\x5f\xed\xf9\xb7\x6e\xfd\xd1\x4f\xb7\x6d\x9f\x33\x67\ \x5e\x2a\x95\x74\x85\x45\x7a\x97\xae\x1e\x37\x7d\xe7\xc6\x6f\xf8\ \xfd\x9b\x72\x94\xcc\x3c\x72\x63\x3d\xe1\xa7\xe4\x79\xe3\xf7\x60\ \x7c\x31\x02\xe7\x51\x5b\xa4\x08\xfb\x70\xd8\x33\x67\xce\x84\xd6\ \x3c\xf6\xd8\x63\xbb\x77\xef\x86\x5e\xd0\x43\x70\xe5\x22\xff\x32\ \xfd\xa9\x16\x1a\x00\x9b\x8a\x8a\x8a\x36\x6c\xd8\x50\x53\x53\x5b\ \x58\x58\x08\xf7\x65\x7e\x25\x27\xaa\x6e\x48\x1f\x60\x3d\x4c\xe6\ \xf8\x6c\x20\xb0\x31\xd7\x8e\xdc\xb1\x43\xd3\xbb\x3e\x3e\x5d\x39\ \x79\x96\xa8\xde\xc4\x49\xa9\x24\x26\x82\x7c\xb2\x8f\x3f\xfe\xf8\ \x39\xe7\x9c\x53\x52\x52\x92\x48\x24\xf2\xe5\x42\x2b\x79\x79\x79\ \xf4\x89\x25\x1e\x8f\x47\xa3\xc2\x8b\x0d\x0e\x0e\xc2\x1e\x37\x6f\ \xde\xfc\xca\x2b\x3b\xc7\x8c\x19\x25\x61\x67\xc4\x92\x8f\xe7\x35\ \x48\xf1\x85\x77\x70\xe9\xa1\x73\xfb\x57\x13\x91\xac\x8d\xcc\xe8\ \x03\xb3\x7d\x10\xf3\x54\xe0\x6d\x8c\x1f\x10\xe6\x5f\x18\xdf\x7e\ \xf6\x51\xbd\x26\x47\xd5\x36\x0e\xff\x34\x72\xe4\xc8\xaa\xaa\xaa\ \x58\x2c\x96\xaf\x17\x12\x50\xc2\xbf\x18\x01\xc1\x9d\xcf\x9b\x37\ \xaf\xb3\xb3\x63\x6c\xdd\x18\x69\xc6\x5c\x9c\x55\xc6\x15\x11\x5a\ \x18\xb7\x40\xac\x44\x11\x59\x2e\x51\x04\x9e\x93\x2b\x1d\x99\x00\ \xf4\xd8\xee\x2a\xc7\xe1\x2a\xbc\xa2\xfc\x89\x89\x14\xf2\x78\x66\ \xbe\xe5\x18\x9f\xf4\x89\xa9\x98\xcf\x6d\x5d\xd3\xa0\x88\x1b\x8b\ \xcc\x39\xbe\x43\x17\x2f\x85\x2b\x7c\x90\x74\xd2\x9e\xdc\x70\xad\ \x84\x1e\x21\x26\xdc\x3f\xa7\xef\xd9\x2c\xd7\x8b\xb1\x29\x2c\x50\ \x22\x1c\x42\x70\x1c\x87\x40\xa0\xc6\xb8\x7c\x26\x26\xd4\x52\x0c\ \x14\x8d\xc6\xa0\x79\xb1\x58\x1c\x01\x01\x98\x40\x9a\x39\xcf\x66\ \xb2\xb1\x78\x4c\x98\x6e\x24\x02\xe1\x61\x9c\x81\x81\x7e\xa8\x21\ \x2e\xd2\x8d\x32\xcb\x9b\x7a\xd6\x63\xc3\x3f\xbf\x55\x31\xc6\xbc\ \x9d\x82\x26\x16\xd8\xc9\x78\x74\xdf\xf8\x5a\x14\x22\xfa\x73\xd2\ \x20\x85\x1b\x54\xd8\x53\x22\x0b\x5f\x81\x13\xd8\x42\xe3\x90\x43\ \xa2\xaf\x4a\x8c\x5a\x15\xf1\xa3\xb8\xfd\x4c\x06\x3b\xc1\x31\xc5\ \xa3\xb1\x8e\xce\x8e\x83\x07\x0e\x1f\x3a\x74\xa0\xa1\xe1\x68\x47\ \x57\x27\x76\x84\xd2\xa5\xfa\x52\xc0\x07\x03\xfd\x29\x04\xc1\x9a\ \xaa\x9a\xd1\x63\xea\x26\x4e\x9a\x52\x5e\x51\x81\x01\x93\xc9\x5e\ \xc8\x8b\x01\x99\x68\xad\xe0\xf4\xbc\xb5\x50\x08\x2b\x13\xf2\x73\ \xb3\x58\xc9\xe2\xaf\xd0\x45\x28\xa6\xe3\xb8\xb4\x8f\xb6\x48\x5c\ \xa0\xd4\x54\x6c\xc1\x15\x79\x9e\x0b\xda\x6c\xc6\xd4\xd0\x9c\x51\ \x30\x8b\x6a\x3b\x95\xa6\xcb\xd4\x4d\xe2\x96\xb8\x7f\x31\x82\xa3\ \x05\x0a\x25\x90\x53\x3a\x0d\xe3\xa2\x5c\x57\x1f\x22\xc5\xa1\x55\ \x32\x2d\x74\x30\x52\x51\x51\x01\xf4\xf8\xda\x6b\xaf\xbe\xf8\xe2\ \x0b\xcd\x6d\x2d\xed\x1d\x6d\xc5\x65\xe5\x23\xaa\x6b\x26\x4c\x9d\ \x82\x71\xa6\x94\x95\x97\x57\x8e\x80\x42\x75\x77\x75\xb5\x34\x35\ \x1e\x68\x3c\xba\x63\xcf\x2e\x9e\x4e\x8f\xae\x1d\x39\x73\xfa\xcc\ \x13\xe7\x2f\xa8\xae\x1d\x99\xec\xed\x49\xa5\xfa\xa0\x7d\x8e\xca\ \x09\x5c\x65\x2a\x52\x36\x8e\x14\x89\x30\x37\xd7\x51\x32\x11\x66\ \xab\xa0\x22\xb3\xb5\x84\xbb\x24\x04\xf2\x36\x9c\x29\x68\xe5\x7a\ \x6a\xaa\xf5\x53\x23\xa4\xa8\xf2\xd0\x8e\xd6\x2a\x6d\x62\x61\x89\ \x18\x5b\x23\xd1\xe0\xc1\x42\x77\x84\x38\x18\xc3\x3a\x8c\x11\x1b\ \x61\x3b\x84\x9b\x68\x04\x78\xb1\x8e\x8e\xf6\xaf\x7e\xe5\x4b\xcf\ \x3e\xfb\x14\x74\x07\xa2\x58\x74\xe6\xb9\x93\x26\x4c\x82\x58\x71\ \xc3\x47\xde\x78\x03\xb8\xf4\x28\xe7\x2d\x6d\x2d\xa5\x95\x55\x13\ \xa6\x4e\x9d\x3e\x7b\xce\x29\x95\xe7\xf4\x25\x93\xcd\x4d\x8d\xcd\ \x8d\x0d\xaf\xec\xd9\xbd\x65\xeb\x0f\xa7\x4f\x9e\x72\xde\xf9\x17\ \x1e\x37\x65\x5a\x67\x67\x67\x26\x3d\x18\x11\x62\x0a\x45\x31\xeb\ \xe6\x2c\x83\x0c\x1a\x63\xf8\x10\x7f\xcc\x0b\x98\x98\xc6\x41\x5c\ \x7a\x02\x21\x2f\x2e\xdd\x9a\x25\x14\x12\x07\x16\xb3\x62\x44\x23\ \x45\xc9\x69\x05\x5b\x00\x11\x8c\xde\x61\xa5\xb4\xa4\xb4\x3f\xd5\ \x0f\xd1\x7c\xfb\xdb\xdf\x00\x2a\x5d\xb1\x62\xd5\xc2\x85\x67\x8c\ \x1a\x3d\x06\xa6\x94\xc8\x4b\x88\x87\x1d\x75\xe9\x0a\x80\xb9\xeb\ \x8f\x1c\x3e\xf0\xe7\x7d\x87\xde\x3a\xf4\xc8\x0f\x9f\xaf\x1c\x5d\ \x37\x67\xc1\xa9\x93\xa7\x4e\x2b\x28\x2c\x9e\x38\x65\x5a\x57\x67\ \xc7\x6b\x7b\x76\x6f\xda\xbc\x71\xf6\x8c\x99\x9f\x58\x7d\x5d\x79\ \xc5\x88\x8e\xf6\x76\x89\x38\x88\x9c\xb1\xb0\x8e\x46\xd3\xe4\x9c\ \xfd\xd9\xa9\x95\x95\x9a\xec\xd4\x24\x08\xdc\x8f\x83\xb8\xf7\xcf\ \xc6\x41\x64\x5f\x42\xf7\x70\x9b\x59\xbd\x18\xd1\xa4\xf5\x42\xbe\ \x99\xf4\xcb\x50\x25\x52\x77\x62\x10\x13\xf6\x85\x76\x94\x97\x95\ \xbf\xf2\xca\x8e\x1b\x3f\xb3\x0e\xc8\xe8\xf6\xdb\xef\x3d\xe5\xd4\ \xd3\x85\xbc\x06\xfa\x87\x86\x06\xf1\x5f\x5f\x5f\x52\xe7\x05\x52\ \xc4\x91\xc8\xd8\xf1\x13\xa6\x4c\x9d\x06\x87\xd5\xd2\xdc\xb8\x63\ \xc7\xcf\x5e\xdc\xf2\xfd\x97\x12\xf9\x1f\x59\xb1\xaa\xbc\xbc\x02\ \x17\x7f\xca\xa2\xb3\xe7\x7e\xe8\xb4\xed\xff\xfd\xdc\xf5\x37\x5c\ \xbb\xf2\xc2\x95\xe7\x2f\x5b\xd1\xdd\xdd\x8d\x13\x09\x24\x41\x89\ \x8e\x36\x37\xd7\xe4\xf3\xc2\xc2\x28\xdb\x08\x26\xfb\xcc\x00\x67\ \xe5\x54\xb4\xf7\xd5\x08\x52\x8b\xc2\x09\xe0\x20\x66\x45\x31\x65\ \x50\x24\x1d\x23\x1a\xa3\x38\x66\x1f\x68\x0d\x09\x08\x7b\x42\x40\ \xd0\x85\xca\xca\xca\xea\xea\x9a\x27\xfe\xe3\x5b\x55\x5b\x7f\xb8\ \xee\x86\x0d\x4b\x96\x5c\x00\xaf\x98\xec\xed\x6d\x6d\x6d\x41\xe0\ \x76\x29\xf1\x45\xa8\x62\xda\x73\xca\xcf\xa1\x41\x44\xad\x14\xae\ \x2f\xbf\xa0\x60\xc5\xca\x4b\x2f\x58\x76\xd1\xb3\xcf\x7c\xef\xf1\ \x07\xef\x9e\x71\xd2\x29\x67\x2e\x5d\x06\x95\xc1\xe9\x96\x5e\xf4\ \xd1\x96\xc6\x86\xef\x7f\xf7\xf1\x5d\xbf\xdc\x79\xcb\xad\x77\xba\ \x91\xbc\xbe\x64\x2f\xec\xda\x67\x2f\x8e\x6d\x5d\xcc\x78\x66\x27\ \x14\xc6\x4c\xaa\xc1\x1c\xe6\xf8\xfd\x8f\x25\x0d\xc7\xb8\x34\xa5\ \x66\x7a\x55\x05\xf5\xb4\xb5\x0c\xe9\x65\x50\x2f\x03\x72\x81\x50\ \x52\xa9\x14\x3e\x7b\x7b\xc5\xe5\x1e\x3c\x78\xf0\x9a\x6b\xae\x19\ \x3f\x6e\xe2\x7f\x7e\xef\xb9\x25\x4b\xce\x47\x84\xea\xee\xea\x16\ \xcf\x01\xbe\x1a\x11\x1b\x76\x41\x0e\x8f\x00\x8c\xe1\x28\x18\xc2\ \x14\x96\x28\xce\xda\xd9\xde\x9e\xec\x4b\x5e\x7a\xf9\x95\x0f\x7f\ \xf9\x9b\xbc\xbd\xe5\x9b\x5f\xb8\x57\xe8\x58\x2c\x0e\x97\x94\x28\ \x28\x58\xb3\xfe\x73\xac\xa2\x72\xed\xda\x2b\x1b\x8f\xd6\x97\x57\ \x54\x22\x36\x48\xc4\x64\x82\x34\xe3\x0a\xec\xf8\xc6\xb7\xa5\xc3\ \xb8\xe7\x7c\x98\x45\x0c\x71\x29\x02\xce\xfc\x96\x29\x75\x31\xb8\ \x40\x38\x64\x5f\x01\xe9\x18\xa1\x90\x5c\xe8\x93\x56\x20\x23\xdc\ \x5f\x5f\x5f\xdf\x93\x4f\x3e\xb9\x60\xc1\xc9\x67\x9e\x75\x36\xbe\ \xb6\xb5\xb5\x09\xb9\x44\x22\xec\x9d\x2c\x52\x94\x2e\x52\xe5\xc2\ \xa2\xa2\xfb\x1f\xfc\xca\x05\x67\x9c\xf9\xf0\xdd\x1b\x9b\x9b\x9b\ \xf3\x0a\x8a\xc0\xd1\x34\x35\x36\x9e\xbb\x7c\xe5\x89\x8b\xcf\xfb\ \xd4\xa7\xaf\xdb\xf9\xf2\x4b\x95\x23\xaa\x70\x75\xec\xbd\x5c\x74\ \xb2\x1a\x32\x31\xc2\x8a\x3a\x05\x63\x86\xb2\x95\x90\x2f\x4b\x77\ \x6e\x5c\x35\xe0\xe2\x4b\x2f\xbd\xf4\xd0\x43\x0f\x3d\xf0\xc0\x83\ \x33\x67\xce\x78\xea\xe9\x2d\xa4\x35\xf2\x41\x65\xd5\x43\xce\xaa\ \x38\x2b\xbe\x00\xb0\xb8\x12\xaa\x70\x7f\xb6\x9d\x75\xb2\xae\x70\ \x9f\xb1\x58\x14\x67\x69\x6a\x38\x7a\xf9\x15\xab\xc7\x8c\x19\x7b\ \xcf\x17\x3f\x7f\xfe\x95\xd7\x8e\x1c\x3d\xa6\x1f\x01\xae\xb1\x69\ \xda\xac\x13\x46\x8d\x1d\xb7\xf9\x81\xbb\xff\xad\x2f\x75\xee\xd2\ \xf3\x5b\x9a\x9b\x61\xe0\xef\x68\x7c\x01\xf4\x61\x3d\x84\x99\x8c\ \x07\xc7\x85\x66\x19\xfd\x2c\x0f\x75\x14\x50\x14\x7e\x8a\x7b\xbe\ \xdb\x44\xf4\x9c\x02\x12\xc7\xc8\xc5\x38\x20\x32\x46\xe8\xcb\x92\ \x25\x4b\xf0\xad\xa3\xa3\x43\x6a\x0d\x9d\x91\x20\x3c\x3d\x03\x0d\ \x58\xc8\xa1\x1a\x12\xc1\x56\x6a\x91\xfe\x9b\xa0\x02\x31\xc5\x9b\ \x9b\x1a\x4e\x5f\x74\x56\x65\xd5\x88\x75\xeb\xd7\x5d\xb8\x66\x5d\ \xed\xa8\x51\x50\xd7\xce\x8e\x8e\xa2\xa2\xe2\x35\x37\x6d\x7c\xf0\ \xde\x4d\x91\x58\x64\xd1\x59\x8b\xdb\xdb\x5a\x81\x92\xb8\x18\xe0\ \xed\x8e\x2f\xd1\xa2\x2f\x0f\x71\xd5\xff\x5c\xfe\xe5\x12\xcd\x19\ \x03\xce\xa5\x41\x83\xfe\xc5\x18\x17\x2d\x29\xbd\x60\xbd\xab\xab\ \x6b\xc1\x82\x05\x23\x46\x8c\xc0\x0e\x42\xa0\xfe\x01\xff\xea\x05\ \x97\x0f\xdd\x6c\x6d\x69\x9e\x3e\x63\xd6\xfd\x9b\xef\x7b\xf6\xeb\ \x0f\x35\x1e\x3d\x0a\x1c\x04\x22\xab\xa7\xb7\x37\x16\xcb\xfb\xc4\ \x86\xdb\x3e\xff\xa5\x07\xf6\xec\xfe\x05\xe2\x5d\x26\xf3\x2e\xdb\ \x1a\x79\x72\x97\xe4\xcd\x7d\x4e\x9a\x1b\x0d\xb2\x5d\x4f\xc0\x07\ \x05\x96\xd6\xd6\x56\xf8\x69\x48\x46\xa0\x21\x5b\xab\x79\x20\x80\ \x70\x0f\x6d\x84\x10\x9c\xab\xc9\x3e\x6e\xc5\x8d\x78\x5e\xbc\xb3\ \xb3\xfd\x84\x79\x27\xdd\x7b\xfb\xe6\x2d\x8f\x7d\xad\xaf\xbf\x9f\ \xec\x35\x99\x4c\x22\xea\x5d\xf1\xe9\x1b\xef\xb9\xff\xee\x86\xa3\ \x47\xf2\xf3\x0b\xb9\xc0\xa8\xef\x78\x7c\x8b\xea\x77\xec\x8c\x55\ \x01\x06\x91\x39\x51\x8a\xef\xfa\x92\x55\x22\x09\xc3\x1a\x14\x50\ \x22\xb3\x8e\x1d\x08\x19\xc8\x01\xb9\xa7\x03\xe6\x89\xb8\x06\xab\ \xdb\x1b\x7c\x51\x42\x78\x10\xef\x01\xaa\x2f\xb8\xb8\x78\x2c\xde\ \xde\xd6\x72\xca\xc2\x45\x6b\xaf\xb8\xea\xf9\x27\xbe\x11\x4b\x14\ \xe0\xc9\x71\x51\x6e\xe8\xa9\x1c\x51\xbd\x60\xc9\xb2\x4d\x9b\x6e\ \x06\xfd\x42\x3b\xbf\xd3\xf1\xc5\x3e\x8e\xa5\x36\xd6\x35\x0a\x98\ \x26\xff\xd8\x6a\x05\x15\x10\xb2\x83\x46\xc0\x9b\x40\x04\x7d\xa1\ \xc5\x6c\x0c\xfc\x8a\x18\x0f\x3a\x84\x92\x0f\xdf\x09\xb5\xc2\xb2\ \xc0\x85\x0c\xab\xda\xc1\x75\x5c\x0f\xfc\x51\x53\x63\xc3\xc5\xab\ \x3e\x36\x6b\x6c\xdd\x8b\x5b\xb7\x14\x96\x94\x41\xb7\x1d\x37\xd2\ \xde\xde\x3e\xf7\xe4\x53\xe3\x55\x35\xf7\xdd\x7b\x47\x55\x75\xb5\ \x0c\xfc\x8c\x31\xfe\x8e\xc6\xf7\x5f\x9b\x27\x1e\x95\xac\x12\xf5\ \xce\x88\x46\x92\x79\x28\x78\x9f\x65\xcb\x96\xed\xda\xb5\x0b\xf1\ \xd5\x30\x8a\x81\xc4\x3d\x40\x44\xc1\x65\x03\x25\x9e\x70\xc2\x09\ \xfb\xf7\xef\x8b\xc6\xa2\x84\x48\x38\x33\xd8\x9e\x6b\x82\xc6\x67\ \x68\x61\x0a\x15\x67\x57\xd9\x31\xf3\x88\x1d\x4d\xce\x3b\xad\x6d\ \x2d\x37\x7e\xf6\xd6\xcb\x3f\x76\xc9\xbe\x09\x93\xc7\x4f\x9c\x84\ \x18\x1f\x8b\x46\xdb\x5a\x5a\x96\x5f\x76\xc5\x57\xee\xbc\xe5\x47\ \x5b\x9e\x3d\x67\xf1\x79\x00\xa5\x88\x12\x74\x91\xc3\x55\xad\x2c\ \x22\x92\xe9\xba\x98\xb8\x3b\x85\x5d\x1d\xae\x2a\x59\x16\x69\x4f\ \xc3\xf1\x82\xc2\x42\x28\x02\xa2\xe6\xba\x75\xeb\xd6\xae\x5d\x0b\ \xcf\xa3\x80\x3c\xf7\xee\x0a\x51\x2e\xcc\x0f\xe3\x58\xd4\x8e\x70\ \xe0\x9e\x3d\x7b\xa0\x4d\x06\xfe\x84\x92\x49\x3b\x51\xb4\x93\x4b\ \x47\x66\x76\xac\xa4\xb8\x8c\xb9\x11\x65\x2b\x9a\xfe\xd2\xa9\x09\ \x28\xa4\x74\x71\x49\xc1\x83\xf7\x7d\x71\xc3\xc6\x5b\xea\xd6\x5c\ \x4f\x88\x16\x7e\x34\xd5\x97\xbc\xec\xba\x1b\x1e\xf9\xda\x97\xe6\ \x9f\xb4\x60\xd4\xa8\xd1\x82\x4b\x62\x3a\xd3\x08\x61\x3f\x35\x9e\ \x57\x63\x16\xdf\x01\xfe\x06\x07\x06\xfb\x52\x7d\x9e\x0d\xca\x7b\ \x96\x75\x31\x3a\xb9\x1b\x81\xdb\x9b\x37\x6f\xfe\x8f\x7f\xb4\x65\ \xd3\xa6\x4d\x08\x4c\x35\x35\x35\xe5\xe5\xe5\x64\x32\xe1\x92\x86\ \x25\x1a\x87\x48\xc5\x7d\xfb\xf6\x8d\x1a\x35\x6a\xef\xde\x7d\xab\ \xd7\x7c\x12\x8e\x4a\xa5\x94\x1a\x0b\x89\xd8\x29\x98\x50\x6e\xd0\ \xac\x4a\x97\x08\xb8\x64\xb3\x08\x58\x38\x6a\xdb\xf6\x6d\x8d\x0d\ \xf5\x28\x41\x39\x8e\x55\x36\x91\x24\x2a\x05\x65\xdc\x3c\x54\x95\ \x27\x7b\x76\x6e\xff\x9f\x45\x4b\x97\xa7\x7a\xbb\x5d\x71\xe0\x40\ \x65\x55\xf5\xec\xd3\xce\xb8\xf9\x73\x1b\xce\x3e\x77\x49\x7b\x5b\ \x9b\x82\x20\x41\x4e\x5a\x17\x7e\xa4\xf8\x70\xba\xb8\xf0\x5c\x62\ \xbd\xa4\xac\x6c\xea\x94\x69\xd3\xa6\x4d\x47\xa8\x31\x56\xa7\x70\ \x10\x61\x02\x22\x3e\xa1\x02\xb7\xdd\x76\xe7\x5b\x6f\xbd\xd9\xd0\ \x50\x8f\x54\x6c\x98\x82\xb5\x7a\xba\x46\x52\xa4\x5f\x93\x27\x1f\ \x5f\x5d\x5d\xfb\xf1\x8f\x8f\x1a\x31\xa2\x0a\x0e\x1c\x48\x89\x00\ \xbf\xd0\x5e\xad\x0a\x54\x4e\x8c\xa8\x94\xd1\x55\x55\x06\x9c\x37\ \x1a\xed\xed\xed\xb9\xf9\x73\xeb\x17\x2c\x98\x7f\xfc\x8c\xe3\x23\ \xd1\x88\xa9\xc0\x70\x53\x0a\x54\x58\x4c\x48\xf3\xce\xbb\x6e\xbf\ \xe3\x9e\xfb\x60\x4d\x25\x45\x85\x50\x22\x9c\x0b\x39\xca\x69\x67\ \x9d\x7b\xef\xb6\xad\xa7\xf4\xb6\xce\x9b\xf7\x01\x22\x18\x02\x26\ \x66\x05\x6b\x31\x98\x34\x05\x55\x0b\x83\xc3\xfd\xc6\xd7\xff\x7d\ \xe1\xc2\xb3\x57\xac\x58\x09\xdf\xcf\x08\x27\x29\x1f\x64\x71\x83\ \x78\x3e\x91\x68\x14\x55\xad\x59\x1f\xf8\x00\x71\x8e\x8a\x1e\x0e\ \x35\x54\x58\x02\x62\xa6\xad\x82\x80\x81\xcc\x3c\xdc\x10\xfd\x18\ \x2c\x48\x69\xfe\x46\x20\x03\xd0\x20\x4f\x3e\xf9\xdd\xc5\x8b\xcf\ \x5e\xbd\x7a\xcd\xdb\xac\x2f\x21\x3b\xfb\xfa\x33\x3f\x58\x79\xf5\ \xda\x54\x4f\x57\x56\xa2\x7a\x30\xb5\xff\xf4\xcf\x9f\xd8\xfb\xbb\ \x5f\xad\xbb\xe1\x5f\xff\x8a\x82\xd5\xf2\xe5\xcb\xd7\xac\xb9\xf6\ \xac\xb3\xce\x05\xb0\x80\x6f\xa1\x6b\x35\x75\x31\x26\xd3\x48\x26\ \x79\x02\x2e\xc2\x53\x2a\x6b\xcc\x27\x6c\xc3\x54\x67\x33\x2c\x38\ \xb7\xea\x07\xe2\x4a\x65\xbe\x4e\xec\x3a\xd1\x76\xfa\x2b\x93\xd5\ \x6b\x47\x7d\x3a\xca\xc6\x1c\xc9\x3d\x76\x74\xb4\x2d\x5f\x7e\xb9\ \xa1\x0d\x0c\x6a\xd7\xcf\x83\x07\xfa\x5a\x56\x5d\x7a\xe9\x53\xcf\ \x3e\x77\x60\xef\x9f\xc6\x8d\x9f\x80\x4a\x28\x4e\x0a\x7e\x76\xc6\ \x07\x67\xef\xfa\xf9\xf6\xef\x3f\xf3\xf4\x8a\x8b\x56\x2a\xd4\xea\ \x3f\x4a\x3b\x6f\x4e\xac\x1e\x39\x10\x22\xd4\x41\x0a\x4f\x9a\x34\ \xe1\xad\xc3\x6f\x1e\x7f\xfc\xcc\xde\xde\x24\x27\x13\x53\x4f\x98\ \xc9\x28\xe6\xe8\xfe\x9a\x08\x8c\xc2\xd5\x4e\x80\xf9\xe5\x63\x1c\ \x3c\xf3\x51\x51\xde\x6d\x38\x06\xa3\x29\xff\xa1\xb9\x6e\xe9\x87\ \x1c\xf5\xc9\x55\x69\x41\xbb\xe3\x0c\x00\x96\xcc\xe0\x22\x54\xf3\ \x45\xc9\x04\x9f\xf0\xf7\x01\xeb\xa0\x15\x02\x5c\xd7\x5c\x7d\xe5\ \x1d\x0f\x3d\x3c\xf9\x53\x1b\x06\x92\x02\x85\x41\x46\x7d\x3d\x3d\ \x4b\x57\x7e\xf4\x89\xef\x3e\x7a\xd6\xd9\xe7\x0c\xd7\x1c\x44\xec\ \x15\x65\x8b\xa2\x84\x27\x59\x1d\x7a\x24\x00\x53\xd2\xc1\x4b\xa0\ \xc0\xb9\xbf\xf4\x1c\x28\x45\x0c\x53\x15\x08\x71\x9b\x2c\xcc\xe4\ \xfb\x19\x51\x7f\x95\xce\x5f\x9a\xd0\x05\x12\x80\xd2\xcc\xa1\x43\ \x87\xe4\x55\x0a\x8b\x43\x11\xe9\x85\x17\x5e\x78\xe4\x91\x47\x48\ \x83\x94\x62\x5a\x35\x02\x5a\x20\xc4\xde\xe6\xfa\xe6\xc6\xa3\xc2\ \x6d\x4b\x3a\x1e\xb4\xdc\x98\xb1\x63\xf3\x2b\xaa\x2e\xb9\xf8\xe2\ \xd9\x73\xe6\x00\xa7\x85\x95\x88\xaa\x2f\xd8\x0e\x15\x43\x75\xeb\ \xfa\xeb\xaf\xc7\x38\x26\x0f\xa7\xdd\x3d\xca\x55\x03\x02\x1e\x2e\ \xe9\xe6\x2c\xf5\xea\xd0\xe0\xf2\x00\xa6\x61\x9e\x86\x31\xaf\xf9\ \x22\xa0\x7d\x2a\x16\x05\xc6\x97\xa8\x7d\xa8\xae\xae\x0e\x29\x15\ \x5d\x7d\x63\x63\xe3\xad\xb7\xde\x3a\x7f\xfe\x7c\xdc\x80\x20\x8a\ \xd0\xbc\x24\x8b\x94\x58\x62\x7a\xc1\x1d\x0a\x7e\x6e\x44\xe5\xce\ \x6d\x5b\x57\x5e\x75\x4d\x7f\x6f\x97\x70\xff\x6e\xa4\xaf\xb7\xf7\ \x8c\x8f\x9c\xf7\xfc\x63\x0f\xff\xcb\x75\xd7\x11\xf1\x10\x96\x11\ \xd1\x38\x18\xf3\xbe\xfb\xee\x7b\xf4\xd1\x47\x6f\xb8\xe1\x06\x78\ \x95\xa0\xae\x91\xc7\x30\xb5\xec\x61\xd1\x66\x68\x81\x43\xcc\xea\ \x4a\x88\x07\x42\x9d\xdc\xf8\x34\x37\x8c\x0d\xfd\x20\x9e\x55\x4c\ \xdc\x09\xdc\x02\x6e\xfe\xf0\xe1\xc3\xa8\x85\x4c\x9e\x3c\x99\x18\ \x22\x22\x0f\x48\x52\xb4\x82\x3d\xb1\x1b\x0c\xf0\xd4\xd3\x4e\xeb\ \x6b\xad\x6f\x6b\x69\x86\x0c\x85\xb5\x4a\xbd\x18\x37\x61\x62\xf9\ \xc8\xba\x5d\x3b\x77\x96\x96\x95\x11\x71\x6e\x16\xe3\x28\x69\xb9\ \xf8\xe2\x8b\x8f\x1c\x39\x62\xf5\xee\x71\xfb\x9a\x54\x36\xaf\xe2\ \x76\xe0\x46\x5c\x53\xdb\xe2\x36\x6e\xc6\x93\xfb\xf3\xc1\x8e\xb6\ \x36\x14\x61\x5c\x4f\xae\xae\x9d\xf8\x38\x5e\xc2\x23\xaa\xf9\x66\ \x1f\xc1\xb8\xda\xe3\x07\x13\x25\x45\xd4\x09\xdf\xdc\xd4\xd4\x84\ \xfb\x24\x67\x94\xa3\xf8\xe7\x71\x7b\xd9\xb2\x8a\xca\x0f\xcd\x9b\ \xf3\xeb\x97\x5f\x2c\x40\xbc\x47\x0a\x29\x3b\x0c\x06\xfb\xfb\x3f\ \xb4\xe8\xec\x1f\x6c\xd9\xe2\x0a\xf9\xc6\x6c\xbd\xa3\x85\x84\x4e\ \x43\x91\xb3\x33\x4d\x1c\x96\x7c\xb8\x4a\x56\x15\x76\xb2\xfe\x71\ \xe9\xa2\x20\x02\x59\x58\x26\xa4\x20\xb6\x43\x3a\x07\x0f\x76\x36\ \x37\x77\xca\x94\x47\x57\x00\xa4\x83\xe7\x7a\x5d\xd5\x46\x74\x91\ \xc4\x30\x4d\x2a\x08\x30\x6f\x7c\xc7\x09\xfc\x23\x22\x41\xb8\x12\ \x54\x78\x90\xee\xd8\x58\x7c\x38\xfa\x11\x35\xa2\x85\x0b\x17\x36\ \xec\x7f\x1d\xcc\xb7\x81\xef\x40\x61\xd3\xa6\xcf\xe8\xcb\x38\xff\ \xfb\xea\xaf\x4b\xcb\x4a\xa1\x29\x46\x46\xb6\x3e\x92\x26\xda\x55\ \x3f\xc7\x54\x3d\x28\xbd\xa1\x64\x95\xcc\x2d\x70\x6e\x1c\xd9\xd3\ \x33\xd0\xdb\x8b\x42\x85\x23\xf5\xd9\xcd\x8b\x47\x0f\x1c\xec\x44\ \x0e\x5b\x5e\xe6\xa6\xfa\x87\x4c\x80\x7b\xf7\x18\x18\x6e\x8a\xba\ \xb8\x07\xf8\x69\x13\x3d\x02\x8a\x63\xc2\x13\x21\xf8\xb1\x63\xc7\ \x1f\x37\x6e\xcc\x1b\xbf\xfd\x0d\x58\x5a\x95\x36\xc9\x92\xd2\x89\ \xa7\x9e\xfe\x93\x9f\xfe\x14\xdd\x04\x64\x8f\x46\x40\x36\x0b\x48\ \x80\xdb\x8c\xe9\xd3\x20\x29\x13\x8a\x11\x9c\xf9\x54\x4b\xfc\x84\ \xba\x55\x32\x39\x74\xe0\x20\xda\xa8\x62\xe0\xdb\xf3\x0b\xe2\xa8\ \xa4\x23\xff\x28\x29\x76\x07\x87\x78\x7a\x28\xc3\x15\xe1\x2d\x93\ \x07\xd7\xf1\xca\x08\x42\xcd\x85\x50\x55\xde\x26\x8d\x49\x37\xf0\ \x09\xd2\x53\x04\x2d\xf1\x97\xbb\xfe\xea\xb6\xa4\x49\x7c\x25\x39\ \x73\xdd\x4c\xb7\x1d\x06\x44\x46\xde\x04\xb5\xa4\x13\xe7\xce\xd9\ \xfa\xf2\xee\x53\x3e\xbc\x88\x52\x6e\xb8\x6a\x64\x67\x1f\x9c\x33\ \xf7\x5b\x3b\x5e\x68\x6b\x6d\x29\x2a\x2e\x21\xa1\x98\x41\x28\xae\ \x9b\xf6\x5e\xaf\x80\x6c\x05\x74\xa2\xc9\x5c\xbb\x17\xc6\x36\x78\ \x24\xd5\x23\x6b\x8b\x8b\x8b\xf2\x98\x03\x88\x91\xea\xea\xec\x4c\ \xf6\x75\x17\x15\xb9\x99\x2c\xd0\x86\x33\x38\x24\xbc\x43\x3c\x1e\ \x31\x05\x25\x53\x2d\x80\xc0\xb8\xcb\x7c\x91\x40\x91\x9f\xd2\xe0\ \x98\xd5\x5e\xe1\x07\x09\x96\x9e\xfb\x40\x83\x51\x2b\x5b\x52\x36\ \xfa\x87\xab\x9e\x33\x77\xee\x40\x57\x7b\x6b\x73\x13\x7a\x0b\xc9\ \xb7\x65\x44\x9b\xea\x88\xea\x31\xe3\x76\xee\xdc\x89\x68\x45\x4d\ \xcf\x36\x44\xb0\x83\x1a\x79\x3e\x85\x6c\x3d\xaa\x4f\x8e\x1f\x38\ \xbd\xed\xa2\x90\x54\xd7\xd6\x96\xa6\xfa\x85\x63\x4e\x24\x22\xf9\ \x09\xd7\x10\xfc\x3c\x9b\x7e\xfd\xf5\x96\xce\xce\x7e\xc8\x48\xfa\ \xa9\x77\xc1\xd0\xe8\x52\x0d\xe0\x0c\xab\x8c\xb9\x54\x62\xe6\xcc\ \x02\x77\x5e\x50\x58\x34\x61\xec\xe8\xbd\x7f\xf8\x1d\xd8\x08\xf1\ \x1c\x04\x98\x77\xd1\x36\x39\xeb\x84\xb9\xdb\x5f\xf8\x39\x8e\x25\ \xce\x4f\xd0\x6c\xfe\xc5\x33\xec\x90\x89\xd1\x05\xb9\xba\x7f\x4a\ \xb7\xf3\xa8\x7f\x4c\xa2\xd5\x6c\x55\x55\x61\x41\x41\xfe\xe0\x20\ \xf4\x05\xd7\xe4\x10\xa1\x09\xb3\x81\x03\x1d\x1a\xea\x7d\xfd\x8d\ \xa3\xaf\xbf\xd1\xdc\xdb\x3b\x68\xc0\xb2\xb4\x38\xee\x7a\x94\x0a\ \x97\xec\x39\x55\x05\xc4\x0f\x6a\xbb\xc2\x44\xde\x9e\x9a\x46\xf7\ \x5d\xba\xad\x41\x36\x58\x87\x22\x94\x95\x95\xa1\x65\x0b\xfd\x5d\ \x58\x01\x20\xc8\xcf\x2f\x58\x76\xc1\x05\x87\xde\xf8\x83\x23\xdb\ \x8d\x5c\x59\x68\x03\x4a\xfc\xe0\xec\x39\x2d\x1d\x9d\x92\xe4\x2f\ \x82\x1e\x01\x28\x9b\x82\x68\xce\xbe\x0c\x3b\x74\x90\x36\x45\x0d\ \x63\xe1\xfa\x82\xbc\x6a\xad\x8e\xc7\xdd\xca\x8a\xa2\xfa\xfa\x3e\ \x40\x73\xd5\x3c\xaa\x3b\xf6\xf3\xf3\xa3\xf9\xf9\xbc\xab\xb3\xab\ \xb9\x39\x39\xf3\xf8\x9a\xca\xca\x02\x9c\xd7\x58\xab\xd7\x38\xa0\ \x9c\x39\x53\xc1\x52\xb5\xb2\xa9\x35\x63\x6b\xd2\xad\x0e\xdb\x4c\ \x12\xc8\x93\x01\xea\xb6\x6d\xdb\x26\x3c\x0b\x73\x90\xb9\xa1\xfd\ \x58\x58\x0f\x73\xf7\xfd\xfe\x37\xed\xcd\xcd\x95\xe8\x9b\x91\x0e\ \x0e\x3b\xc3\x47\xd4\x4d\x98\x74\xd3\x4d\x37\x9e\x74\xf2\x02\x1c\ \x05\x01\x2d\x5d\xba\x94\xd2\x0b\xe3\xec\x7c\xe7\xb2\x15\x88\x6b\ \xd2\xfe\x18\x6a\x9f\x4e\xf3\xd6\xd6\x24\x9a\xa4\x34\xd1\x4c\x19\ \x95\x90\x43\x2a\x95\xee\xee\xe1\x15\x15\x65\x73\xe7\x8c\xae\x28\ \xcf\xc7\x23\x71\xdd\x77\x29\x8c\x1d\xb3\xf3\x06\xf7\x06\xae\x1e\ \x81\xfc\xb1\x27\xbe\xd3\x8e\xc7\x34\x6e\xda\x40\x61\x65\xba\xa4\ \x26\x53\x5a\x73\xe9\xb5\xeb\xf2\x25\xa8\x11\xd2\x62\x2e\xa0\x77\ \x6f\x4f\xcf\xf9\x17\xae\x98\xbb\xf0\xcc\xa1\x68\x22\x51\x36\xe2\ \xc9\xa7\x9e\x86\xa1\xd9\xe6\x19\x3e\x5d\x10\xbe\x6a\xe2\x82\x33\ \xaf\x63\x4f\x35\xed\xc5\x62\x91\xa6\xa6\x64\x7f\x7f\x5f\x49\x49\ \x04\x82\x86\x6f\x96\x40\x4c\x3c\x78\x54\x16\x12\xf9\xc5\xc7\xd5\ \x95\x95\x95\x26\xd4\x73\x10\x86\x2f\xac\xcf\x0d\x67\xcf\x9e\xc7\ \x36\xf9\x9b\x69\x42\xd5\x78\x8c\xfc\xf8\x30\x5a\x13\x58\xa0\x35\ \x1f\xbf\xe2\x8a\xb9\xf3\xe6\xfe\xd7\xb3\xcf\xd7\x5d\x74\xd9\xc2\ \xe5\x2b\x7a\x3a\x3b\x71\xb5\x02\xe2\x0f\x0d\x0a\x6e\xde\x95\x1a\ \x25\x0b\x50\x79\x89\xc4\xe9\x67\x2c\x2a\x2b\x2d\xfd\xfd\x6f\x5f\ \x3b\x79\xfe\x89\xb5\xb5\xb5\xa0\xdb\x4d\xba\x1b\x90\x91\x2d\x07\ \xba\x60\xd5\x44\x12\xf0\xb2\xf4\x10\x70\xec\x91\xfa\x0e\x3c\x12\ \x74\x6d\xf4\xf7\x67\x52\xa9\x8c\x71\x0a\x40\x5e\xb3\x66\xd4\x94\ \x97\x25\x80\x18\x29\x1e\xdb\x21\x39\x94\x5a\x38\x26\x6e\x1c\xa3\ \x10\x1d\x30\xb1\x9c\x56\x66\x14\x0a\x64\x39\xd8\xbf\x75\xd7\xae\ \x79\xf1\x99\xef\x7c\xfb\xab\x0f\xc5\xe3\xb1\x21\xf4\x3f\x48\x32\ \x30\x22\xc5\x13\xd1\xa9\x05\x76\xef\xe9\xee\x02\x9d\xfa\xe2\xf6\ \x6d\xd3\xa6\x4e\x15\x33\x01\x64\xbb\x17\x7d\xfa\x05\x94\xf5\xe7\ \x14\x26\xcc\x2b\xf2\xcc\x61\x5e\x67\x95\x80\xd1\x47\x1b\xba\x3b\ \xbb\x52\x28\x2c\x33\x37\xbf\x12\x96\x5d\x51\xd1\xdb\x2b\x48\x12\ \x78\x6b\x64\x8e\x10\x32\x4e\x01\x24\x41\xf5\x67\xa6\x8a\x47\xa6\ \x7a\xc1\xcd\x8a\x49\x7e\x11\xef\xda\xda\xb2\x03\x03\x9c\xd8\x71\ \xff\x6e\x8a\x36\xcc\x69\x62\xa6\x1d\xc7\x84\x64\xdc\x3a\x9a\x60\ \x8a\x4b\x4a\x6f\xbf\x7d\x53\x62\xa0\xe7\xa1\xbb\x6e\xc3\x0f\x20\ \x88\xd1\xe1\x16\x91\xc2\x91\x32\x62\xf2\x9f\x8b\xaa\x11\x4c\xb2\ \xfe\xad\x37\x67\xcf\x9e\x0d\x28\x67\x3a\x30\x21\x23\xdb\x07\x65\ \xb3\x46\x57\x54\x5f\x8c\x6e\xe2\x54\xb7\x67\xe3\x20\xa1\x3e\xa5\ \xa5\x89\xf9\xf3\xc6\x25\x12\xc0\x9f\x32\x2e\x44\x19\xc0\xf4\xe1\ \xfa\x96\x44\x1e\x8a\xf1\x80\xa4\xae\xac\x4d\x79\xec\x85\xeb\x3a\ \x26\x5c\xd2\x16\x59\x82\x16\x5f\x70\x19\x90\x4e\x7b\x47\xb6\xa9\ \x25\x33\xb6\xce\x35\xec\xa2\xe9\xeb\x56\xa5\xf3\x2c\x0f\xb4\xb5\ \xd1\x62\xf8\xb3\xac\xb5\x20\x4e\xa1\x1e\x87\x9b\xc4\x34\x9c\x9f\ \xbd\xb0\xfd\x0b\x1b\x6f\xba\xec\x9a\x4f\x9e\x38\xff\x64\x70\xaf\ \x91\x68\xc4\xce\x4e\xe1\x95\xff\xf4\xfa\x1f\x0b\xf3\xf3\xc0\xb2\ \x23\xa6\x51\x12\x47\x23\xe0\xf0\xd0\xe3\xf0\x91\x47\x54\x9b\xcf\ \x91\x5b\xc3\x21\x94\x96\x24\x64\xbb\x2e\x2e\xcb\x41\x53\xd5\x60\ \x9a\x23\x49\x1e\x1c\x4a\x1f\x7a\xb3\xb9\xb2\x32\x66\xaa\x74\x21\ \x26\x5f\xd1\x27\xb8\xb6\xee\x1e\xa1\x2f\x89\x04\x4b\xe4\x31\x50\ \x74\xed\xed\xe9\x92\x22\x8e\x0a\x23\xa1\xeb\x50\x9f\xe8\xb0\x8e\ \xd9\xee\x01\xb4\x5b\xdf\xc8\xae\x91\xd9\x7e\xf8\x8c\x45\x48\xfd\ \xbf\xfc\xd5\xaf\x1d\xda\xb7\xf7\xb2\x2b\xae\x4a\x0a\x52\x99\x47\ \xa4\x1b\xc2\x40\x85\x05\x85\xaf\xee\xd9\x3d\x7d\xfa\xf4\x21\xa9\ \x35\x86\x4b\xcc\xed\x83\xfc\xfe\xc1\x75\x34\xcd\x4f\x94\x2b\xe9\ \x92\x48\x1f\x00\x46\xd1\xcd\x29\xd5\x4e\x80\x0b\xf9\x48\xe0\x8c\ \xa6\x4c\xa9\xaa\xa9\xae\x8c\x89\xca\x17\xcd\x22\xd1\x29\xa9\xec\ \x05\x90\xc7\x8a\x20\x4b\x47\xc1\x6d\xb6\xb6\xa1\xaf\x61\xf0\x48\ \xfd\x50\x6b\x6b\xba\xb8\x48\x76\xb0\x09\x7f\xaf\x40\x17\x19\xb7\ \xfa\xc7\x73\x9b\x58\xf6\x2f\x2d\xb8\x0c\xf8\xdd\xaa\xea\xda\xcd\ \x77\xdd\xd5\xb8\xff\x8f\x77\xdf\xfa\x59\x24\x5c\x08\xf0\xa2\xeb\ \x18\x59\x58\x34\x8a\xfe\x9c\x03\x7b\xf7\xce\x9a\x39\x13\xf9\x00\ \x24\x62\xbb\xa1\xb0\x06\x99\xeb\x31\xd1\xc3\xe1\xaa\x70\xa8\x43\ \x98\x10\x9b\x17\xfe\x5d\xbb\xbc\x25\xa4\xe6\xcc\x9a\x05\x55\x2d\ \xc2\xc8\x8e\xa9\x26\x3b\xae\xb2\x5c\x32\x06\x11\x47\xc0\xec\x38\ \xc5\xc5\x6e\x69\x69\x34\x1e\xe3\xa0\x22\x0a\x0b\xb2\xb2\xbe\xe8\ \xf4\x25\xb3\x5d\x5d\xc2\xc7\x41\x4c\xba\x91\x49\x77\x31\x0d\x23\ \x1a\xd3\x57\x6b\x30\xb4\xdd\x3f\x49\xaa\x04\x42\x1a\x39\xc7\xfa\ \x0d\x9f\x39\x7e\xf2\xf8\xcf\x5e\xbf\xf6\xd0\x81\x03\xb8\x4a\xc8\ \xa0\xa8\xb0\xf0\xcf\xfb\xf6\xa1\x86\x50\x53\x5b\x8b\x1d\xec\x8e\ \x27\x12\x93\x0f\x28\x32\x4f\x0e\x54\xeb\x8c\x6a\xa9\x05\x4d\x2c\ \x40\xa1\xfa\x4b\x27\x5c\x14\x2d\x18\x63\xb9\xa8\x55\xbb\x53\x1b\ \xbb\x96\x97\x47\x1a\x1b\xc0\x36\xa8\x59\x59\x50\xf9\x78\x2c\xd3\ \xd4\x94\xed\xea\x8e\x54\x94\x03\x9c\xb0\x63\x98\x98\x2d\x08\x29\ \xf1\xac\x69\xa1\x35\x05\x6e\x53\xb6\xa3\x36\x5b\x50\x91\xcb\x96\ \x2d\x3f\x6e\xf2\x71\x0f\xde\x79\xdb\x85\xab\x2e\xbb\x64\xd5\xa5\ \xe0\x36\x7e\xb5\x7b\xd7\xe4\x89\x13\xb3\x92\x6c\xb5\xdd\x19\x1d\ \x1e\xd0\xa0\x00\x2e\xd3\x51\xcc\x97\x67\xe4\x24\x6b\x94\x31\xb9\ \x86\x4c\x65\x3a\x51\xf0\x66\x1d\x58\xc4\x10\xa1\x75\xee\xe4\x09\ \x9e\xcf\x95\x73\x3d\x15\x5b\x0b\x50\x5e\x58\xc0\xbb\xbb\xd3\xed\ \x1d\x19\xd7\x8a\x9b\x01\xb7\x63\xbb\x1b\xbb\x9d\xd4\x56\x9c\xf0\ \x82\xbb\x81\x8c\x26\x4c\x9c\x78\xfb\xc6\x8d\x2f\xfd\xe4\xc7\x77\ \xde\x76\x33\xda\xa4\xf6\xff\xe9\x8d\xe9\x33\x66\xf4\x88\xd6\xcf\ \xac\x1d\xe3\x73\x99\x98\x47\x66\x11\xe8\x77\xed\xcc\xd5\xea\x82\ \xb0\x68\x40\x9b\x22\x75\x54\x03\x96\xd8\xce\x75\x7b\x35\x39\x30\ \xb9\x25\xc0\x1c\x46\x23\xc2\x4f\xa3\x9b\x3a\x12\x35\xc1\x8e\xf7\ \x26\x59\xff\x60\x74\xc2\xf8\xc4\xd8\xba\x18\x67\x26\x2f\x77\xc3\ \x26\x66\x34\x28\x20\xa6\x9c\x32\xa2\x7b\x86\x8e\x60\x40\xc4\x72\ \xec\x77\xf3\xcd\x37\x17\xe6\x45\x2f\xf8\xc8\xe2\x81\x54\x1f\x4a\ \xbe\x28\x99\x1a\xfb\x32\x9f\x01\x01\xf9\xf2\x0a\xee\xf5\x49\x1f\ \xd3\xc4\x82\xd3\x86\xfc\xf3\x23\x3c\x6c\xec\x2b\x54\x38\xb2\xd0\ \x0e\x87\xd5\xd9\x99\x8e\x47\x79\xaa\x5f\xcc\x5c\xc9\x8b\x3b\xa8\ \xc7\xc5\xf3\xa2\xe3\xc6\xc6\xa5\x76\x38\xa6\x2a\x19\x36\x31\xdb\ \xb8\x6c\xfb\xd2\x65\x19\x66\xd7\xc4\xcd\x81\x64\x41\x54\xb1\x00\ \x98\xbc\xe4\x92\x55\x23\x6b\x47\x02\x4c\x13\x81\x6b\xdb\xaf\x99\ \x0f\x3f\x6c\xaa\xe1\x58\x7d\xd2\x3c\x47\x55\xc3\x6e\xc7\x60\xde\ \xdc\x1a\x83\x5e\xbc\x0c\xc2\x4c\x98\x91\xda\xc4\x54\x3b\x00\x7c\ \x70\x5b\x5b\x66\x70\x00\xfe\x38\x06\xb6\x24\xd5\x9f\x05\x0f\x89\ \xeb\x17\x0c\x1f\x73\x86\x32\x5a\x28\x3e\xce\x2c\xb7\x93\xf6\xb7\ \xd4\x30\x9a\xc5\x16\x2e\x78\x11\xe9\x63\xb3\xf4\x0d\x0d\x0d\xa0\ \x8a\x30\x02\xaa\xc9\x34\x2f\x20\x2c\x20\x1f\x61\x66\x4f\xd3\x34\ \xdd\x1d\x04\x61\x42\x1a\x14\x6a\x3f\xf6\xcd\x7a\xf4\x26\x36\x2b\ \xd3\xcb\x72\x6b\x9e\x8d\x6c\x58\xc8\x32\x10\x6c\x53\xa6\x24\x20\ \x29\x04\x2f\x84\x8b\x43\x87\x78\x5f\x2a\x5d\x5a\xe6\x72\x5d\x06\ \xf1\xc6\x75\x59\xd8\xfb\xd8\x26\x66\x64\x14\x2e\xb7\xd9\xa2\xb1\ \xa5\x43\x74\x1a\xe8\xed\x9c\xf5\x55\x5b\x83\xfc\x81\xcc\x5c\x9b\ \x37\x57\x83\xbc\x07\x37\xc0\x5f\x4c\x96\x61\x66\x0e\x2d\xf7\x37\ \xaa\x83\x55\xe7\xba\x99\x5d\xd8\x11\x80\x5f\x7a\xc8\x29\x28\x60\ \x59\x3d\xfb\x4b\x36\x8f\x52\xf7\xab\x2a\xe1\xe3\x32\xb0\x67\x5d\ \x5d\x7c\xef\x3e\x28\x94\xec\x68\x30\x50\x83\xd1\x68\x3e\xee\x8a\ \x6e\x80\x9c\x8b\xa1\x01\x8d\x4d\x19\x3d\xa2\xca\x44\xc0\xbe\xac\ \xf9\x91\xcc\xf4\xe1\x06\xca\xbf\xe6\x2c\x7e\x13\xcb\x6a\x61\xc8\ \x1c\x88\xdb\x1a\xc4\xb9\x9d\xcc\x73\x3d\x55\xc8\x3f\x31\x9f\x26\ \xdd\xb1\x88\x4e\x0b\xe4\x05\x39\x6f\xbe\x95\xc5\x04\xea\xa2\x62\ \x37\x9b\x56\x84\x88\x01\x51\x7a\x86\xbd\x6a\x25\xc1\x2c\x31\x28\ \x94\xa4\xac\x99\x13\x98\xd3\x36\x0c\x08\xb2\x05\x14\x7e\xed\x84\ \x29\xde\x1b\x01\x19\xb2\xd9\x08\x28\x8c\x54\xcc\x03\xa0\x0a\xa2\ \x75\x46\xd5\xb9\xa5\xe3\x96\x63\xe8\x8e\xe1\x9c\xb4\x13\x9e\x35\ \x9c\xce\x38\x03\x82\x84\x05\x19\x22\x6e\xbb\xbe\x3e\x93\x9f\x00\ \xa6\xcf\xda\x45\x0e\x5f\x07\x91\x57\x6d\x86\xee\xa1\xdb\x90\x29\ \x2a\x9f\xf9\x1a\x53\x08\x54\x1d\x43\x83\xc2\x4e\xc7\xa8\x8f\x91\ \x51\xa0\x40\x98\xb3\x1f\xce\x5f\xe4\x71\x42\x51\x2c\x98\x6a\x78\ \x8d\xe4\x76\x35\xd8\xa5\xea\x94\x23\x11\xb5\xe6\x60\xc9\xa0\xf0\ \xa7\xfe\x68\x36\x91\x27\x26\x07\x82\xea\x88\x47\xdd\x82\x42\xb7\ \x37\x69\xa6\x8e\x4b\xfd\x31\x9c\x3c\x22\x7e\x96\x93\xb2\x52\xe3\ \x14\x3d\x22\xd7\xb1\xc6\xcf\xf2\x9c\xcc\x8f\x8d\x7a\x7c\x55\x7f\ \x4b\x58\xc6\xef\x50\x91\x2b\xa0\x3e\xe1\x47\x1e\x3e\x4d\x88\xa5\ \xf6\x5a\x73\xe9\x71\x45\x0d\x66\x94\x54\x2e\x35\xc0\xc8\x36\x74\ \xa2\x4b\xb9\x87\x97\x69\xaa\x1f\xa8\xfb\x0a\x41\x2a\xb8\xc8\x3f\ \xd3\x19\x3c\x3d\x61\x9d\x08\x05\xc9\x24\x47\x45\x08\x9e\x58\x4d\ \xe9\x57\x55\x0a\x87\x48\x62\xb5\xca\x34\x2d\x69\x8d\x4f\x83\xbb\ \x8a\x7f\xc9\x06\x04\x64\xfb\xe6\x70\x50\xb7\x7d\x33\x49\xc7\x88\ \x29\x3c\x27\x34\xec\x86\x0c\x6d\x66\x6b\x10\x91\x37\xae\x2e\x28\ \xdb\x38\x88\xfb\x07\xcd\x3d\x1d\x53\x66\x0f\xee\x51\x28\x51\x42\ \x14\x32\x89\x69\x2d\x2c\x8c\x34\x36\x66\x30\xcd\xa9\xa2\x32\x82\ \x8a\x34\x77\x72\x84\x1b\xe6\xef\x0a\x61\xa1\x39\x6c\x76\x5d\xcc\ \x36\xb1\xb0\x81\x04\xfa\xb9\x49\x7d\x8c\xdb\x0a\xcc\x5c\x0f\xbf\ \x06\xc7\x58\x59\x2e\x13\x73\x98\xe6\x37\x64\x42\xa1\x35\x48\x3b\ \x27\x9d\x63\x33\x3e\xcc\xab\x16\x44\xaf\x76\x7e\x42\x4c\x6b\x1a\ \x18\x04\xf0\x73\xe5\xd4\x05\x91\x4f\xe4\x57\xc5\x9a\x5b\xd2\x6d\ \x1d\x43\x53\x26\x83\xfb\x74\x74\xa3\x90\x69\xf9\x50\x84\xbf\x96\ \x0e\x0f\x76\x56\x5a\xa9\x86\x21\xb1\x08\x1c\x0f\x67\x23\x14\xb3\ \x8c\x68\x8c\xfa\x04\xe7\xf5\xbf\x33\x13\xf3\x1c\x0e\x69\x8c\xdd\ \x82\xe7\x84\x86\xf3\xa8\x2f\xab\x92\xc9\xfa\x07\x30\x2e\x12\x74\ \xa6\xb3\x3b\xd4\x11\x79\x32\x89\xa6\x1e\x67\x44\x65\x4c\x1a\x9d\ \xf4\x56\x54\x4e\x52\x05\xd4\xe0\x8b\x58\x2c\x6c\x68\xfc\xa8\xa3\ \xe3\x08\x48\xde\x21\x64\x06\x94\x3a\xd9\x45\xb1\x9c\xc6\x65\xfc\ \x4e\x58\x7d\x72\xe6\xdb\x01\x0d\x0a\x00\x45\xd3\xd7\xc1\xb9\xf5\ \x6a\x8a\x40\x2c\xe3\x3c\x3c\xdd\x5a\xf9\x57\x98\x55\x77\x37\x1a\ \xa9\xc1\x0f\x09\x74\x83\x6c\x0b\x08\xb1\x37\x99\xa9\xae\x72\xcb\ \xcb\x22\xa8\xc7\x66\xb2\x81\x2e\x6a\x66\x63\x51\xaf\x6f\xd5\x09\ \x12\x66\x06\x22\x42\x3a\x98\xf6\x41\x1d\x8f\x86\x15\xcb\x89\x9b\ \x4d\x62\x11\x0e\x5e\x81\x18\x6f\xbf\x60\x2a\x90\xee\x05\x78\x15\ \x4b\x14\x3a\xd5\xb0\x32\x14\xc7\xf7\x5a\x97\x50\x17\x36\xa4\x03\ \xcb\x02\xaf\x8c\x18\x0f\xd1\x43\x40\x08\x67\x48\x1d\x40\x9f\x95\ \x95\x46\x28\x01\x70\x5d\x66\xdd\x8e\xd7\xa9\x6a\x95\xa2\x59\xce\ \xf1\xe5\xcb\x1a\x14\xcb\x81\x8a\x20\x3e\x69\x1e\xac\xe9\x74\x09\ \x1b\x4b\xd8\x64\xec\x27\x1d\x38\xc4\x08\xda\x2b\xe9\x44\xa3\x34\ \x89\xc2\x70\x20\x39\xc0\x44\x00\xf2\x84\x4c\x2c\x94\xa6\x72\x67\ \xd4\x28\x70\x60\x4e\x5e\x9e\x78\x3e\x87\xde\x1c\x4c\x27\xc1\xe1\ \x93\x56\x66\x73\x92\x48\xc1\x29\xc6\xa1\xd7\x65\x10\x21\x85\x89\ \x86\x98\x9d\x87\x17\xac\xa0\xc2\x37\x7e\xfc\x78\xc8\xe8\xd5\x57\ \x5f\x45\x95\x86\xc2\x39\x4a\xa3\x31\x51\xd9\x89\x90\xaf\x31\x2b\ \x6e\x68\x09\x7b\xe8\x80\x93\x46\xe2\x6a\x74\x73\xc7\x8e\x1d\xab\ \x57\xaf\xb6\x69\x33\xeb\x28\xc7\xbc\x9a\xc2\xe1\x5e\xdf\x22\xf7\ \x9a\x59\x91\x2f\x58\x6f\x0f\x62\x02\x0e\x0a\xdd\x29\xcb\x93\xf4\ \x8f\xec\xe0\x18\x3f\x3e\xf6\xc7\xd7\x07\xe3\x79\x28\x25\x70\xd5\ \x56\x6d\x19\x84\x00\x3e\xf4\x12\x21\x57\xbf\x46\xc2\x9e\x9e\x2c\ \xc7\x77\x64\xeb\x14\x74\x13\x49\x13\x68\x8a\xea\xea\x6a\x3c\x52\ \x94\x40\xd1\x1c\xf7\xf4\xd3\x4f\x63\x2a\x06\x25\x19\x2d\x2d\x2d\ \x01\x93\x09\x83\xa3\x30\xd5\x17\xee\xe3\xc4\x57\x94\x43\x20\x6b\ \x74\xfc\x61\xd8\xab\xaf\xbe\x7a\xf1\xe2\xc5\x38\xaf\x17\xfb\x19\ \x35\x8d\x71\xab\xaa\xc1\xd5\x8f\x16\xed\xe3\x78\x78\xc6\xee\x35\ \x71\x94\x68\xd4\x6b\x0c\xb2\x82\x39\x9d\x3c\x29\x2e\x43\x81\x71\ \x6e\x62\x36\x1b\xd3\x2d\xac\xae\x6e\x76\xa7\x17\x1f\x69\x6f\xe4\ \x1b\x9f\xae\x6c\xea\xd4\xa9\x6a\xb2\x90\x7c\xc8\x98\x73\xbf\x7e\ \xfd\x7a\xe3\x83\xc2\xed\xae\xe1\xc8\x1d\x7e\xf9\x5d\xb8\x79\x98\ \x6e\x10\x02\xa2\x97\x6a\x60\x8b\x68\x1b\x97\xf6\xe8\x0d\xa5\xe0\ \x99\x01\x8a\xef\x88\x72\xf5\xbf\xd7\x08\x66\x5e\x50\xe0\x52\x91\ \x5a\x58\xb2\xfd\x0e\x96\x1c\x73\xfd\x43\xd5\x0f\x4b\x17\x24\x1d\ \x91\x26\xdf\x4c\x4d\x2d\x34\x2b\xc0\xf4\x01\x0d\xe7\x80\xc2\x6f\ \xfb\x1b\xee\xad\x81\x76\xa3\x2b\xe6\x5d\xd0\x0e\x06\x28\x60\x1d\ \xd6\x5d\x88\xf0\x1c\x98\xb3\x4a\xea\xc4\xad\x7c\x95\x29\xd3\x0a\ \x90\xce\xf6\x24\x7e\x95\x9b\x08\x97\x2c\xe7\x79\xaa\x79\x86\x34\ \xed\x31\xab\x5b\x44\x65\xd7\x14\xf3\xbd\x62\x85\x94\xc6\x37\x3e\ \x5d\xca\xac\x99\xb3\x9e\x7b\xee\xb9\x39\x73\xe6\xda\xdd\x96\x76\ \x0c\x79\x3b\x02\xf2\xb7\x8b\xf1\xe1\x62\xbc\xdd\xca\x49\x09\x0d\ \x1c\x36\xa6\xe1\x74\xf7\xf4\x8c\x19\x35\x0a\x29\x94\xac\x17\x19\ \xa0\xc8\x99\xe6\x5c\x7d\x2c\x84\x7a\x6b\x8e\x93\x4b\x44\xcc\xea\ \x00\x76\x95\x3a\x1a\x3a\xc8\xf4\x49\x91\x58\xac\xed\xba\x09\xdd\ \x3f\x3e\x9e\x21\xe8\x4f\xf4\x5d\xfc\xf2\x97\xbb\xee\xb8\xe3\x0e\ \x54\x23\xf4\xdb\x20\x1c\x34\xfa\xa2\xa1\x30\x9b\xab\x25\x3c\x20\ \x91\x00\x62\x1e\xce\x07\x99\x5f\x21\x11\x50\x8e\xf0\x3e\x70\xff\ \x54\x41\xdc\xbf\x7f\xff\x8d\x37\xdd\x24\x44\x96\xf5\x38\xe9\xa8\ \x89\xee\x36\x0e\x1a\x3e\x86\xe5\xa6\x5c\x99\x93\x03\xd7\x0c\xf7\ \xf2\x98\xf0\xf8\xea\x05\x03\x2e\xbb\xe7\x9e\x7b\x1a\x9b\x9a\x0e\ \xbf\xf5\x16\x62\x8c\x2b\x7b\x31\x8f\x36\x34\x38\x16\xd2\x0f\xbf\ \x80\x8a\x3b\xf6\x0b\xff\x72\xbc\x7c\x8b\xe5\xb2\x00\x3a\x3b\x7a\ \x8b\x20\x1a\x30\xfc\xb4\x3e\x69\xd2\x24\xc0\x5c\x3c\x2a\xdd\x0c\ \x6a\x80\x22\x23\x7e\x07\xc9\x4f\x56\xbd\x54\xce\xea\x1b\xb6\xdf\ \x50\x64\x66\x8d\xa9\x92\x21\x57\x49\x03\xb7\x5e\xd7\xe7\x0c\xbb\ \x1e\xf4\xa9\x81\xf1\x31\xc8\xd0\x60\xba\xa6\xba\xa6\xb6\xa6\xe6\ \x6f\xf2\xde\x4d\x24\x36\x68\x42\x93\xcd\x94\x62\x5a\x1f\x19\x49\ \x54\xbd\xa9\x45\x33\x06\x7f\xdb\x57\x83\xca\x19\x14\x7f\xb3\x25\ \x2a\xe6\x60\x29\x09\x14\xc9\xae\x6b\xe1\x83\x64\x1b\x56\x31\x66\ \x19\x6e\xdc\xb8\xd1\x9b\x09\xc9\x7d\x2f\x02\x0c\x64\xf3\xe1\xf7\ \x61\x84\xe6\x8e\xe5\x58\xb7\x66\xdf\xfd\xbd\x8f\x0f\xf8\x89\x9a\ \x10\xc2\xa8\x87\xc7\x11\xf3\xe4\xa4\x6e\x5f\x1b\x42\x2e\xe4\xed\ \x84\xe6\x75\x04\xb7\x07\x2e\x7d\xb8\x9d\xff\xbe\xc7\x17\xff\xd3\ \x0b\xee\x58\x4e\x3e\xe1\xfd\xc5\xf7\x36\xe0\x63\x20\xab\xff\xcf\ \xef\x93\x36\xec\x33\x7f\x5f\x53\x8e\xb1\xf8\x34\xe8\xfd\x25\xbc\ \xb8\x61\x96\x37\xa7\x36\xe6\xe4\x5f\xc2\xbb\xe5\x64\xb6\xfe\xa1\ \xc7\xff\x3f\x1e\x9f\x29\xce\x54\xe0\x9c\xcf\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\xdd\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x60\x00\x00\x00\x55\x08\x00\x00\x00\x00\x93\x44\xbe\xfa\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\x0b\x12\ \x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd5\x03\ \x03\x0f\x28\x2b\x21\x8f\xe2\xd5\x00\x00\x00\x02\x62\x4b\x47\x44\ \x00\xff\x87\x8f\xcc\xbf\x00\x00\x08\x6e\x49\x44\x41\x54\x68\xde\ \xb5\x59\x5b\x88\x24\x57\x19\xfe\xbe\xff\x54\x4f\x4f\xcf\x65\x67\ \x76\x76\xa2\x4b\x82\x6c\x92\x85\x44\x9f\x64\x4d\x34\x3b\xe3\x85\ \x40\x1e\x5c\x21\x0f\x01\x03\x89\x20\x08\x21\x5e\x30\xd3\x1b\xf0\ \xb2\xa2\x71\x46\x10\x82\xf8\x20\x28\x44\x1f\x0c\x98\x18\x42\x0c\ \x2e\xae\x04\x0c\x84\x3c\x24\x2f\x31\x18\x44\xcc\x4c\x54\x96\xc4\ \xfb\x0d\x13\x33\xbb\xd3\x3b\x97\xde\x9e\xae\x3a\x9f\x0f\xa7\xaa\ \xba\xab\xbb\xfa\xb2\x93\xf8\x33\x33\x7d\xea\xfc\xf5\xf5\xd4\xf9\ \xcf\xff\xfd\x97\x53\xa6\x5c\x92\x44\x49\x36\x90\x92\x70\x9d\x24\ \xc9\x5b\xd2\xcb\x20\xc8\x7b\xef\xbd\x97\xbc\xb2\x81\xf7\x0a\xd7\ \x52\xaa\x3d\x90\x1e\x90\x89\xa2\x99\x99\x99\x73\xe6\xb2\x81\x99\ \x0b\xd7\xce\x85\xb9\x83\xe9\x4d\x34\x8a\x3b\xe7\xd7\x37\x36\x36\ \x36\xd6\xd7\x37\xd6\x37\xd2\xc1\xc6\xc6\x7a\xb8\x5e\x5f\x0f\x73\ \x07\xd1\xbf\x7c\x7e\x9b\x32\x24\xf8\xc9\xa9\x2f\xaf\xd4\xeb\xf5\ \xfa\xe9\x7a\xbd\x5e\x5f\x59\xa9\xd7\x4f\xd7\xeb\x2b\xa7\xc3\xcc\ \xe9\xd3\xa7\x57\xea\x2b\x2b\xf5\x83\xe8\xcf\x9c\x7a\x12\x89\x41\ \xd8\xba\xf3\xd9\x73\x4f\xbd\xfd\x72\xee\xd9\x3b\xb7\xc2\x1e\x58\ \xbc\xbf\x37\x9e\x34\x9b\xcd\x66\xb3\x39\xe6\xcd\x7b\xfb\xb1\x89\ \x46\x10\xcc\xf7\x29\xec\x10\xd3\x09\xa6\xbf\xd9\xd6\x51\x89\xf7\ \x5e\x64\xba\xb5\x05\x7d\x19\x1e\x84\x49\x02\x47\x08\x40\xaa\xb5\ \x7b\xa9\xd1\xb8\xd4\x68\x34\x1a\x8d\x4b\xdb\xcd\x98\xe4\x48\x1c\ \x21\x19\x49\x8d\x12\x5a\xbc\xb3\xb5\x7d\x39\xf6\x22\x49\xf9\xb8\ \xb5\x7b\xa9\xd1\xc2\x68\xa0\x48\x03\x80\xe2\xa3\xa0\xf3\x37\x0c\ \x4d\x3b\x8d\xcb\x32\x23\x99\xde\x6c\x86\xf6\x76\x23\x71\xa5\x6b\ \xe8\xe0\x01\xc0\x7a\xbf\xbe\x5b\x2c\xdc\xd9\xdc\xba\x0c\xa3\x84\ \x5c\x24\x99\xc5\x8d\x3d\x03\x2c\xdc\x35\xd0\xb8\x96\xde\x3f\x64\ \x95\xbb\xdb\x22\xa5\xf0\x40\xc8\x56\x2c\x11\x3b\xbb\x84\x86\xa1\ \x01\x18\x84\x61\x9b\x05\x22\xee\xfd\xfa\xf4\x7f\x08\x6e\x77\xcf\ \xa0\xa1\x0b\x90\x09\x12\x01\x08\x00\x18\x3e\x49\x20\x9b\x33\x88\ \x22\x52\x03\xa9\xeb\x81\x29\xd8\xee\xbe\x41\x18\x84\xa7\x04\x23\ \x49\x65\xf6\x16\x33\x8b\x1a\x49\x9a\x91\xf0\x1e\x0c\x98\x00\x25\ \x08\x12\xa4\x28\x62\x17\xe9\xdd\x65\x78\x91\x1c\xcd\x83\xc4\x53\ \xa2\xf2\x30\x0c\x28\x35\x97\x28\xdb\xbf\xec\xde\x22\x0f\x18\x4b\ \xa4\xe7\xe4\xcc\xdc\xfc\xe1\xf9\x99\x09\x8a\xcc\xfd\x89\xe0\x65\ \xc9\x8f\xe4\xc1\xd0\x3d\x6e\x13\x52\x6d\x61\x6e\x66\x72\x62\x62\ \x72\xe6\xf0\x42\xd5\x83\x12\x25\x52\x12\xdb\x89\x0d\xdb\xe4\x94\ \x07\xdd\xdc\x42\x11\xe0\x63\x52\xb5\xf9\x28\xdd\x5c\x54\x0e\xcf\ \x2a\x20\xc2\x83\xf9\x36\x07\xe1\xd1\xe1\xc1\x20\x5f\x86\xd8\x4e\ \x20\x4e\xc9\xa7\x76\xa7\xd7\xcc\x8c\xef\x70\x4e\xf4\x03\xe1\xc8\ \x79\x50\x34\x12\x3a\x51\x4c\xe4\xbe\xa0\x89\x8a\xd2\xc7\x53\x92\ \xc4\xed\x5a\xa4\x9c\xd6\x44\x12\xbc\xa5\x04\x0f\xe4\x3c\x50\xb6\ \x65\x99\x27\x76\x76\xb1\x4d\xa2\xc6\xe0\xa9\x09\x27\x0f\x1d\xb9\ \x6a\x7e\x76\x36\x16\x0b\x74\x65\x29\x5e\x39\x0f\xc0\x01\x2b\x20\ \xdb\x6d\x2a\xaa\x0a\x24\x63\x5b\xac\xfd\xe3\xc5\xc7\x7f\xf4\xd4\ \x2b\x5a\x9c\x4a\xc9\x31\xc0\x31\xba\xc2\x9e\x49\xc3\xa2\x09\x5b\ \x09\xfc\xa4\x13\x21\x2d\xb4\xbe\xf7\xd1\x0f\xdc\x76\xcf\x67\xee\ \x3a\xf9\xa1\x33\x2f\xcf\x77\xd8\x30\x2c\x16\xa5\x3c\xe8\x0d\xb5\ \x61\x60\xa4\xa9\x32\x65\x6e\x4a\x24\x10\x9d\xfb\xc8\x17\x7e\xb9\ \x0b\x73\xa6\xbf\x3d\x71\xe7\xb7\xab\x10\x04\x08\x8e\x34\x94\xe1\ \x53\x66\xa7\xc6\x1b\x20\xaa\x2d\x5c\xb5\x18\x91\xf4\xb5\xd7\xee\ \x7e\x2d\xaa\x44\x0e\x89\x07\x9d\x1e\xfa\xca\x74\x88\xb1\x72\xc3\ \x48\x94\xf2\x60\xb0\x91\xe0\xbd\x45\x92\xa4\xe8\xdf\x8c\xe2\x76\ \x9c\x78\x18\x94\x28\xfa\xd9\xcf\xe7\x12\x11\x62\x65\x88\x81\x32\ \x1e\x0c\x0f\xd8\x22\x49\x54\x5e\x55\x5c\x5d\xfa\xd4\x27\x4f\xd0\ \x13\x40\x82\xef\xef\x3a\x01\xaa\x54\x34\x84\xc7\x59\x3e\xc8\x8d\ \x64\x34\x18\x0d\x85\xa0\x48\x12\xf4\x2f\xe1\xe6\x97\x9f\x7b\xe4\ \xb1\x17\x5e\x7c\x9f\x08\x08\x7f\x3c\x3f\x29\x51\x35\xd7\x6d\xfc\ \x02\x1e\x79\x3e\x18\x43\x2a\x9b\xbf\xc2\x03\xef\x6e\x6c\x6e\xee\ \xdd\xf4\xcc\x8d\x61\xe9\xe7\x27\x44\x5f\x99\xf6\xc3\x73\x9a\x71\ \x2c\xd1\xd4\x6f\xfe\x79\xc3\xad\x17\x2a\x51\xe4\x2e\x1c\xb9\x17\ \x04\x88\x2d\x93\x70\xc8\x69\x38\x32\xe4\x03\xa5\xb6\x40\x2f\x4d\ \x72\x73\x46\x2f\xe1\xde\x79\x6f\x04\xaa\xaf\xdf\x08\x0f\x08\x15\ \xd1\xcf\x4e\xcb\x82\x65\xfa\xf1\x21\x11\x86\x7c\x30\xaa\xc2\x81\ \xbb\xf4\xb9\xe7\xef\xda\x89\x24\xb9\x66\x73\x3f\x04\xc8\x6b\x13\ \x3f\x33\xe7\x87\x60\xa9\x1e\x1e\x80\x25\x8c\xcb\x9e\x66\xfa\x83\ \xf3\x31\x29\x8b\x37\xab\xbf\x85\x01\x98\x7e\xcf\xde\xec\x61\x05\ \x6c\x39\x3e\xe7\x41\x27\xb2\x15\xc7\x9d\x6b\x81\x7e\xc7\x13\x30\ \x5e\xd0\xde\x59\x08\x91\x3e\xfe\xae\x89\xc5\x3c\x55\x97\xe2\x91\ \x15\x5e\xe3\xac\x80\x74\x04\x60\x8d\xed\xc5\x27\x5e\x35\xb9\xf8\ \x58\x3d\x5a\x14\xfa\x8b\xc1\xfe\x15\x68\x18\x93\x7b\xc4\xed\x5d\ \x9c\xfb\xc3\x77\xe8\x5d\x72\xf5\x8f\x8f\x4f\x69\x44\x75\x0a\x31\ \xcf\x07\x19\xab\x42\x8c\x83\x15\xc9\x93\x2f\xa2\xbd\x19\xb5\xef\ \xdf\x86\x4b\x8e\x3f\x7e\x33\xb3\x95\x5b\x57\xa5\x59\xc0\xe7\xf9\ \x60\x74\xfd\x9e\xad\xfb\x42\x3c\xb7\xfa\x7b\xc7\xe4\xe4\xb9\x5b\ \xda\x63\x30\x08\x0a\x3c\xe0\x98\x06\xb2\xc6\xce\xc2\x63\x67\x9d\ \xfc\x1d\x4f\x1e\xdf\xb7\x71\xcc\xca\xc0\x03\x14\x36\x08\xbd\xad\ \x47\x16\x7a\x5d\x6b\x6b\xfa\xaf\x0f\x9a\xfc\xe7\x1f\x3e\x12\x5b\ \x9f\xbe\x0c\x8f\xde\x7c\x60\xec\xa2\x65\x5f\x70\x6f\x24\xb5\xef\ \xee\x9a\xff\xe6\xb7\xaa\xde\x86\xd4\xfb\x39\x3e\xe7\x81\xc6\xf2\ \x22\xdb\xdb\x9d\xfe\xd3\x2f\x18\x9f\xf9\x52\x5a\x73\x8d\x14\x48\ \x69\xc2\xe9\x2b\x5b\xca\x76\x5d\x3b\xbe\xba\xde\xd2\xf2\x57\xdb\ \x23\xda\xb3\x1c\x0f\x30\xf0\x40\xc5\xda\x9f\xe8\x6b\x06\x00\x58\ \xdc\x32\xdb\x02\xeb\xf3\xdd\xc5\x69\x99\x74\xf0\x54\xe0\x01\x8a\ \x4d\xc4\x80\x15\xb4\x12\x26\xef\xc4\xc4\xfb\xdb\xc6\xe1\x11\x3a\ \xc7\x0b\xc8\xfb\x03\xa8\xa7\x7c\x09\x13\x5d\x33\x68\xcb\xf6\x6e\ \x79\x47\xeb\xc5\x8a\x17\x4a\xf4\xfd\x78\xe4\xfd\x41\xe6\xae\xa1\ \x7d\x30\x4b\x29\x49\x2a\xb4\x96\xc1\xe6\x09\xd9\x5e\xfc\xf4\x0d\ \x93\xed\x32\x3d\x4b\xf0\x81\x60\x63\x66\x34\x92\x06\xb9\xad\xcf\ \xbe\x74\x47\xd3\xf1\x4a\x24\xad\xae\xa9\x4e\x64\x05\x40\x18\x40\ \x58\x57\xd0\x65\x24\x02\x47\xe7\x2b\x87\x7c\x70\x8e\x82\x1e\xa5\ \xf8\x6c\x52\x69\x0b\x97\x56\xac\x04\xd3\xa2\x4d\x59\x67\x07\x51\ \x11\xbd\x9b\x78\xf8\x9e\xfb\x9e\x9b\x91\xd0\xab\x47\x29\x1e\x2a\ \x36\x20\xc1\x39\xf2\xe0\xda\x55\xc3\x93\x52\xd5\x11\xf7\xdf\xf7\ \xc8\x0f\x6e\x7b\x68\xc6\x17\x78\xa0\xe2\xa0\x83\x4f\x1b\x90\xd0\ \x27\xe4\x19\x2c\x53\x04\xfe\xe5\x4f\x68\xaa\x56\x67\x7f\xf8\x4c\ \xc5\x45\xac\xff\xba\x26\xf6\xea\x4b\xf0\xa1\xb3\x31\x21\xf5\xa7\ \x3c\x2f\x81\xa5\x67\x17\x3a\x72\xf1\xa7\x6c\x27\xb1\xc3\xc3\xce\ \x97\x26\xbf\x5e\xbc\xd8\xe1\xc1\x18\x91\x37\x99\xe5\x7f\x05\x40\ \xfc\x8b\x6c\xac\xf0\xde\xcd\x83\xee\xb3\x8f\x9e\x46\x22\xab\xcd\ \xac\x75\xc3\x71\x3a\xc0\x74\x13\xd3\x28\x5f\xd0\xf7\xe1\x79\x85\ \x3c\xa0\xaf\x7e\x51\x89\x59\x7b\x61\xa5\xed\xae\x98\x07\xe3\x04\ \x5f\xdb\xbb\xe7\xc1\x59\xef\xdf\xfb\xf4\x35\xed\xf1\x4c\xd4\xe1\ \x41\x5f\xf4\x45\x4f\xf5\x11\x4c\x51\x69\x7d\xed\x77\x4f\x3f\xff\ \xc2\xc9\xa6\xa9\x44\x5f\x76\x26\x55\x9e\x0f\xfa\x12\x54\xf0\x0d\ \xb7\xff\xc6\xbf\xce\xf3\xc3\xb7\x4e\xee\xb9\x42\xbd\x61\xc3\x8e\ \xfa\x52\x1e\x8c\x61\x22\xf0\xcd\xbf\x5f\x6c\xc6\x5b\x7f\x7e\xe5\ \x8d\x08\x63\xd6\x51\x50\x0f\x0f\x38\x70\x29\x04\xff\xf3\x26\x9d\ \x59\x34\xe1\x36\x5f\x1f\x7e\x3c\xd9\xed\x45\xc8\xfb\xe4\xfc\x18\ \xab\xa7\x11\xcf\x48\x1a\x5d\x6c\x44\x14\x20\x21\xda\x6a\xb8\x3e\ \x7d\x29\x3e\xef\x93\x35\x72\x05\xd6\xba\xe0\x20\x42\xa4\x60\x9b\ \x6d\xd3\x78\x2b\xc8\x78\x30\x92\xc9\xdc\x8e\x99\x66\x6e\xca\xe2\ \x5d\x62\x7c\x26\x17\xaa\x6b\x4b\x9f\xc2\xc2\xea\x3a\x4e\x77\x39\ \x14\xc8\x0c\xfe\xd0\x64\x41\xdf\xa9\x83\x8a\xf8\x4e\x5d\x84\x51\ \xc5\xa9\xe2\xfc\xa0\x16\x04\xe3\xf1\x8a\xd9\x4e\x3e\x18\xe5\x76\ \x85\x8d\x14\xc0\x71\xdd\xb4\x53\x17\xa5\x2b\x85\xa5\x47\x8d\x9d\ \xca\x32\x90\x38\x52\xf7\x81\xe9\x04\x8b\xfa\xdc\x52\xbd\xf8\x3e\ \x1e\x0c\x94\xe9\x8e\x1f\x00\x9c\x1d\xcf\x44\x63\xe7\x03\x28\x39\ \x34\xe9\x99\x9d\x08\x24\xd3\x53\x1e\x57\x96\x0f\x3a\xe1\x0e\xa5\ \x5c\x30\xb8\xa3\xf0\x69\x58\x4b\xdc\xd1\x92\x5b\xca\xf0\x42\x5f\ \x3e\xb0\xbe\x51\xfa\xe9\x67\xae\x61\x2c\x00\x3e\x9e\x38\x36\x89\ \x3e\xfd\x40\xfc\xb8\xf9\x80\xc9\xdc\xf5\x0b\xe6\xbd\xaf\x2c\x5e\ \x57\x4b\xc6\x6c\x89\x3a\xc5\x12\x86\x56\xcb\x41\x7c\xf5\xea\xeb\ \x8e\x5d\x7b\xec\xfa\xa3\x96\x8c\x73\x7b\xfe\xad\xe1\x1f\x64\x27\ \x26\x3e\x0d\xdd\x69\x2d\xec\x25\xc9\xfb\x74\xa3\xdb\xd1\x54\x6d\ \x0a\x6d\x0d\xd0\xf7\xe1\xe5\xb3\xf3\x22\x4d\xba\x5a\x14\x45\x95\ \xf4\xa7\x52\x89\x82\x54\x2a\x51\x14\x55\x2a\x61\x3e\x8a\x26\x9c\ \x39\x8b\x26\x06\xea\x7b\xf1\x35\x37\x99\xf2\x60\xf6\xd1\xdb\x4f\ \x7d\xec\xed\x97\x53\xb7\x3f\x3a\x2b\x18\x23\x7e\xe2\xec\xd7\xbf\ \xb1\xb6\xb6\xb6\xba\xba\xb6\xba\xb6\x16\x06\x6b\x6b\xab\xe1\x7a\ \x75\x35\xcc\x1d\x40\xbf\xf6\xc0\xd9\xbb\x19\x99\xa8\xb9\x13\x27\ \x97\x96\x96\x96\x96\x97\x97\x96\x97\xd2\xc1\xd2\xd2\x72\xb8\x5e\ \x5e\x0e\x73\x07\xd1\x2f\x9d\x98\x0f\x6f\x63\x95\x24\x49\x92\x24\ \x71\x9c\xc4\xd9\x20\x49\xe2\x70\x1d\xc7\x61\xee\x60\x7a\x4f\x19\ \x08\x3a\xe7\x9c\x73\xe1\x1d\x70\x18\x84\x77\xc3\xe1\x05\xb1\x73\ \x07\xd6\x03\xb4\x42\x42\xcd\x5f\xd4\xa4\xbd\x62\xfe\xba\xed\xc0\ \xfa\xc2\x81\xd4\xff\x45\xfe\x07\x6b\x56\xad\xc0\xb4\x6e\x5e\x96\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0a\ \x0c\xf7\x1b\xc7\ \x00\x63\ \x00\x6f\x00\x6e\x00\x66\x00\x69\x00\x67\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x08\xab\xda\x07\ \x00\x75\ \x00\x70\x00\x64\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0c\x9c\xa6\x27\ \x00\x71\ \x00\x75\x00\x65\x00\x72\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x1b\x97\ \x00\x00\x00\x46\x00\x00\x00\x00\x00\x01\x00\x00\x3c\x03\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/dialogs/configdialog/configdialog_rc3.py0000644000076500000240000022044612536324427025417 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 12:31:25 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x1b\x93\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x60\x00\x00\x00\x54\x08\x02\x00\x00\x00\xf2\x11\xa5\xd4\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\x0b\x12\ \x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd5\x03\ \x03\x0f\x27\x36\xc5\x11\x92\xc3\x00\x00\x00\x06\x62\x4b\x47\x44\ \x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x1b\x20\x49\x44\ \x41\x54\x78\xda\xed\x5c\x77\x90\x1d\x45\x7a\xef\x9e\x7d\x9b\x77\ \x25\xad\x24\x24\x84\x84\x04\x16\xc8\x46\x27\x8b\x24\x1d\x20\x71\ \x08\xec\x13\xb1\x10\xa7\x33\x20\xce\x1c\xa6\x08\x55\xa4\x32\x45\ \xce\xc9\x84\x3a\x52\x99\x60\xe0\x70\x51\x47\xb0\xe0\x4c\x2c\x63\ \x62\x95\x39\x71\x87\x41\x75\x60\x81\xc8\x06\xc3\x01\x26\x0a\x09\ \xa5\xd5\xe6\xdd\xf7\xa6\xfd\x9b\xfe\xba\xbf\xfe\xa6\x67\xde\xc2\ \x7f\xe7\xb2\x69\xa8\xa7\x79\xbd\xf3\x66\xba\x7f\xfd\xe5\xef\xeb\ \xd6\x69\x9a\xaa\xef\x5b\xfd\x96\x68\xad\x8d\x31\xf4\x89\x86\x2e\ \xbe\xa0\xc6\x9d\xfc\x59\xaf\x73\x94\xeb\xe2\xd3\x8a\xbf\x2d\x3e\ \x59\x76\x16\xdf\x28\x1f\x55\x6c\xd1\x0f\xa3\x47\x95\x8e\xad\xb4\ \x39\x5c\x18\xa6\xef\x49\x86\x1b\x78\x2b\x49\x92\x0a\x81\x0a\x68\ \x6a\xb5\x5a\x5f\x5f\x5f\xb5\x5a\x23\x6c\x19\x2c\xfb\x57\x7c\x2a\ \xfb\x69\xb4\xd2\xfc\x93\x22\xb2\xf5\xae\xe5\x02\xd2\x4f\xe8\x15\ \xc5\x7b\x4a\x57\x2b\xba\x3f\xfa\x2c\x5f\x79\xad\xe5\x0f\x8b\x74\ \x3d\x0a\x35\x34\x36\x56\x3a\x3a\x3a\xe8\xe1\x15\x26\xb9\x17\x5e\ \x78\xe1\xc4\x13\x8f\x9f\x34\x71\xfc\x48\xb5\xaa\xed\x03\xbe\x3b\ \xd8\xee\x65\xf6\xd5\x0e\xc2\xef\xf4\x33\xfb\x93\x3a\x2f\xd2\xdf\ \xf6\xca\x6c\xd1\x94\x76\x0f\x09\x4f\x8b\x16\x44\x7d\xd7\xd1\x78\ \x9c\x75\xa2\xbf\xf9\x66\xe3\x8a\x15\xcf\x6f\xbf\xfd\xf6\x19\x40\ \x0c\xea\xda\x75\x1b\xe6\xfc\xe9\xb4\xfb\xee\xba\x7a\xdd\x37\x9b\ \x1a\x2a\x15\xed\xa7\x9d\x01\xe9\x31\x70\x40\x64\xa3\xca\x2e\x0d\ \x5d\x65\xd7\xf4\x45\x65\xc4\x26\xfe\xb3\xdd\x61\x39\xed\x7d\xf8\ \x27\x29\x79\xaa\xbd\xd5\xd8\x6b\x42\x98\xee\x55\xf6\x3e\xf7\x0a\ \xd1\x89\x1e\x23\xa8\xc0\x5f\xe0\x15\x89\x98\xae\x76\x0b\x66\x1c\ \x7c\xc6\xa3\xa9\x3d\x72\x91\xb4\x42\x6b\x69\x6b\x3d\xf0\xa0\xe3\ \xba\xbb\x7b\xf0\x4c\x70\x59\x45\xfb\x06\x7e\x6b\x6d\x6d\x1d\x3b\ \xa6\x73\x60\x70\xa4\x52\xa9\x90\x00\xa7\x97\x1b\x71\x2d\x81\x4b\ \x6d\xbf\xfb\xab\x71\x3d\x58\x01\x5c\x27\x09\xe8\x33\xfb\x4c\x0d\ \xf5\x98\x24\x71\xf7\x18\x37\x5f\x4f\x3c\xf6\x83\xee\xf7\x13\x74\ \x30\x19\xed\x26\xa9\xc3\x8d\xfe\x4f\x8c\x71\x09\x4c\xee\x4e\x4f\ \x19\x86\x09\xdc\x78\x5c\x74\x41\xe1\x78\x8c\xd2\xc6\xd6\x36\xe0\ \xe0\xe4\x89\xd6\x95\x48\x2c\x55\xab\x69\xad\x96\x42\x22\x65\x5f\ \xfd\xb8\x8c\xbd\x16\x03\xcd\xf7\x6b\x95\xda\x2f\x86\xba\x53\x6d\ \x1f\x95\x7d\xa9\xa5\x16\xcf\xcc\x90\x30\xd4\x63\xef\x49\x04\xf9\ \xb8\x4f\xfc\xd5\x10\x65\xa4\xbe\xdf\xbf\x22\xbc\x54\x30\x23\x01\ \xad\x75\x10\x4c\x16\x35\x4f\x82\x8c\x8b\x11\xec\x9a\x75\x19\x4f\ \x41\x56\x41\x65\x5d\x39\x0d\x9e\x91\x4c\x5a\xb3\xa6\x8f\x71\x14\ \x24\x20\x34\x62\xfa\x61\xf0\xc6\x91\xbc\xe8\xd2\x9e\xcd\x78\x79\ \x59\xa4\xd2\x90\xc5\xed\xc6\xc1\xe2\xd8\x48\xf4\x28\x9e\xb6\x93\ \x27\x39\x3e\x0a\x64\x90\xeb\xcc\xa3\xeb\xfe\x94\x11\x27\x4d\x3b\ \x61\x2c\x12\xba\x76\x34\xc3\x84\xe3\xc9\x8a\x9e\x61\x69\x59\x79\ \x85\x60\x81\x4e\xf8\x0e\xfa\xb7\x22\xde\x4d\xec\x4d\x58\x1a\x02\ \xb8\x96\xe2\x2a\x55\xee\x67\x26\x40\xe4\xc8\xdb\x09\x15\x5a\x3b\ \x93\x23\x32\xea\x0e\x02\xdc\x0b\x20\xe5\x7e\xe0\xf0\x65\x2a\x20\ \x9b\x23\x2c\x01\xdd\x94\xe8\x88\xd4\x40\xa0\x8e\x2a\x92\x44\x6b\ \xc9\x4b\x9e\x8f\xfc\x12\xfa\x6b\xb7\x7a\xda\xcb\x9e\x94\x96\xd1\ \x51\x86\x13\x7f\xbc\xc2\x29\x2d\x1a\x33\x6f\xd0\x62\x44\x6e\xca\ \xcf\x12\x8c\xd6\xd6\xd6\xd2\xdc\xd4\x94\x34\x24\xb0\x00\xbc\xf0\ \x8c\x28\xcb\x4d\x8f\xbe\x18\x1d\x09\xa9\xc4\x38\xa1\x92\x26\x6e\ \xb6\xda\xbd\x9f\x49\x8e\x3f\x8d\xb8\x96\x9f\x61\xe1\xb5\xe0\x96\ \x46\xb0\x2f\xb8\x76\xb0\xaf\xaf\xa1\xa1\xa1\x44\x9f\x06\x50\x8c\ \xd7\x76\x1e\x22\x52\x06\x7e\x9a\xd9\xc4\x13\x42\x8e\x78\x2a\x23\ \x70\xe2\x28\x62\xac\x20\xa4\xed\x7c\x2d\x1d\x00\x9d\x34\x1d\x37\ \xb6\xf3\x83\x0f\x3f\xfe\xe4\xbf\xbf\x5a\xb3\x6e\x43\x47\x47\xe7\ \xe7\x5f\xac\x1d\xa9\xd6\x82\x02\x96\xba\xd9\x09\x5c\x65\x98\x86\ \xb5\x54\xe2\x42\x99\x93\x98\x16\x6a\x3c\x6f\x12\xc8\x07\x97\x3e\ \x27\xbb\x9e\x39\x73\x7a\x6f\x5f\xdf\xd4\x29\x5b\x4d\x9d\x36\xf9\ \xcf\x77\x99\x3b\xd2\xdf\x47\x7c\x2d\x9e\xc6\xe4\x60\x98\xcc\xe9\ \x4f\xa9\xb5\xe3\x9c\x74\x33\x29\x31\xb5\x14\xd2\x56\x92\x59\xbb\ \xcf\x4b\xb7\x4a\x64\x33\x90\xc5\x38\x71\x5c\xd7\xfd\x0f\x3e\xb9\ \xf2\xd5\x4f\x97\x2d\xfb\xeb\xd9\x53\x3b\xb6\xde\x7a\xeb\x1f\x35\ \x35\xd7\xb3\x4f\x82\x51\x67\x0a\x46\x45\xfe\x07\x34\x02\x1a\xb8\ \xbf\x70\xbc\x5c\x6a\x2e\x3a\xf9\x61\x82\x69\x95\x51\x79\x6a\xbe\ \xfc\xf2\x8b\x6a\x75\xe4\xf6\x7f\x7c\x74\x87\xed\x57\x9e\x73\xce\ \xa9\x43\x83\xbd\x09\x1b\x20\xe2\x51\xcc\x29\x26\x18\x39\x76\x29\ \x9d\xbe\xf4\x1c\xad\xd8\xc0\x28\xa8\x40\x92\x41\x72\x26\x69\x6a\ \x5a\x5b\x5b\xde\xff\xe0\xa3\xdf\xfd\xfe\x0f\xcb\xef\xff\xe7\xc6\ \x4a\xc3\xff\x42\x27\x60\xd6\xac\x99\xf8\x5c\xbc\xf8\xc7\x67\x9c\ \x71\xc6\x6b\xaf\xbe\xb6\xdb\xbc\xdd\x87\x07\xfb\x1a\x92\x84\x65\ \xbf\x09\x64\x9d\xd3\x27\x4c\x52\x16\x74\xe7\x1b\x38\x7d\x16\x16\ \xcc\xc8\x15\xae\x44\xf6\x29\x14\x5b\x5b\x6b\xcb\xef\xff\xe3\xcd\ \xc3\x7e\xf2\x57\x40\x07\xce\x47\x63\x63\x63\xa9\x57\x51\x74\x0b\ \x4a\xff\x3a\x8a\x9f\x51\xcf\x1d\x29\xf5\x2d\x82\xc8\xb0\x0d\x64\ \xde\xdc\xdc\xbc\xf4\xa7\x87\xff\xfb\x8b\xcf\xec\xfe\xc3\xbd\x8c\ \xe9\xb5\xe2\x2e\x9b\x66\x9a\xb7\x8c\x9c\x78\xf5\xac\xc7\xbe\xa7\ \x57\x9c\x10\x65\xd6\x42\x10\x1a\x9c\x64\x77\x00\x88\xd5\x3c\x2b\ \xaf\xa1\xa1\xda\x36\x53\xb6\xc9\x38\xb0\x52\x49\x92\x84\xdf\x94\ \xa6\xe9\x1f\x11\x20\xc8\x63\x0c\xc6\x59\x3d\xb6\x6d\xb3\xcd\x36\ \x2f\xf4\x0e\x1b\x33\x4c\xf6\x83\x12\xd2\x8a\x5f\x91\x49\xf1\x44\ \x13\xaf\x3a\x0e\x4a\x61\xeb\xd5\x58\xba\x39\x40\xb2\xd9\xa7\xc6\ \x3f\x80\x20\xcd\xcb\x20\xcf\xa9\xe8\x5d\xbf\xbe\xbb\xad\xbd\x43\ \x0e\x9d\x56\x0c\xd4\xf4\xc7\x65\xae\xe1\xe1\x61\xc2\xc8\x2d\x6f\ \x63\xa5\xa9\xc9\x79\x45\x04\xb8\x72\xae\x46\x50\xb7\x7d\x43\x43\ \x43\x23\x23\x9a\xbd\x89\x5a\xad\xd2\xd0\xd0\xd1\xde\xee\xe5\x51\ \x6a\x21\xd3\x19\xf3\x38\x4d\x6c\x02\x77\xe2\x15\x21\xaa\xe2\x74\ \x8c\xa9\x55\xab\xad\x6d\x6d\x13\x26\x4c\x30\x4e\xf3\x41\xf6\x1b\ \xa0\xf3\xf1\xc7\x1f\xaf\x58\xb1\xe2\xcb\x2f\xbf\x8c\x1c\xe8\x88\ \x04\x22\x7b\xb7\xae\x67\x5b\xdf\xe3\x8f\x68\xcd\x3a\x22\xc9\x56\ \x5b\x6d\xb5\xe7\x9e\x7b\xee\xbc\xf3\xce\x98\x6f\xf0\x75\x6a\x59\ \x44\xc2\x38\xc6\xb1\x36\xa4\xb3\xf6\xb2\x61\x37\x34\x75\xae\x7c\ \xe9\xa5\x5f\x5e\x7e\xdb\x8c\xad\x27\x8f\xc0\x6c\x6a\x6a\x4c\x1a\ \x1b\x9b\x3b\x3a\xd6\x6e\xda\xbc\x68\xf1\xbc\x65\x3f\x3b\x72\x78\ \x60\x73\xa5\x21\xf1\x53\x27\x15\x90\x91\x93\x15\x44\xce\xb6\xce\ \x6b\x31\xad\x89\x7e\xc1\x4c\x96\x08\x1d\xc7\x82\x70\x5e\x7f\xfd\ \xf5\x63\x8f\x3d\x76\xc6\x8c\x19\x63\xc6\x8c\xc1\x57\xd0\x6d\xc5\ \x36\xba\xc8\xe2\x26\xf6\x9a\xb8\x80\x2e\xa8\x9f\x7b\x12\xdf\xc8\ \xef\x63\xd7\xa1\x18\x8b\xa0\x97\xa6\xf9\xb6\x76\xed\x5a\x88\xe4\ \xf3\xce\x3b\xef\x80\x03\x0e\x00\x46\x44\x47\x78\xea\x17\x5f\xac\ \x51\xa6\x6a\xad\xad\x20\x3a\xbc\xa0\x69\xd8\xb0\xb9\x7b\x61\x5b\ \xd7\x31\x0b\x16\xf5\x34\xb7\xb4\x74\x75\x35\x8c\x1d\x3b\x76\xfa\ \xf4\x17\xdf\x7c\xe7\x9d\xf5\xef\xd2\x4f\x28\x90\xe3\xcc\x22\x8b\ \x8f\x57\x58\x6e\x6c\x15\x41\x8d\x86\x4d\x64\xe3\x98\x9f\x48\xb2\ \xd6\xd2\xd2\xb2\x7c\xf9\xf2\x1d\x76\xd8\x61\xf7\xdd\x77\x07\x91\ \x57\xf2\x8d\xe0\x00\x6a\x0c\x13\x77\xd2\x45\x11\xa6\x52\x8c\x18\ \x1d\xa2\x59\x89\x4e\x15\x44\xdd\xda\x3a\x6d\xda\xb4\x07\x1f\x7c\ \x10\x00\x49\xe7\x7b\xfd\xfa\x4d\xda\xcb\x65\x0c\x38\x35\x89\xf6\ \x7e\x9a\x45\xb0\xc1\x54\x1a\x06\x4d\x3a\x94\xd6\x54\xad\xda\x50\ \x1d\x69\x1b\x1e\xaa\xd6\xaa\x18\x97\x23\x5e\xcf\x9a\x19\xb3\x19\ \x1d\x44\xb5\x5f\xb5\x8a\x90\xb2\x56\x34\xb1\xcd\xef\x47\x80\x99\ \x00\xa3\x75\xeb\xd6\xc1\x1a\xda\xb2\x65\x4b\xf6\x4a\xd1\x30\x74\ \x42\x07\xf7\xe0\x02\x9f\xb8\xe6\xe9\xd1\x05\xfa\xf9\x93\x60\xd2\ \xa2\xe5\xd4\x8d\x98\x39\x1e\x45\x9f\xa9\x95\xa9\x9b\x36\x6d\xc2\ \x00\x70\x8d\x91\x4c\x9c\x38\x11\xeb\x84\xce\x31\x9d\x63\xa6\x4e\ \x9d\x5a\x1b\xa9\x42\x91\xb8\x91\xb3\xae\x76\x71\x3e\xf2\x0f\x54\ \xf8\x5f\x28\x07\xcf\x4c\x4e\x82\x5b\xce\x31\x41\xf7\xb3\xb3\x1a\ \x7c\x31\x0b\xa4\x16\xd6\x9d\x14\x43\x11\xa7\x10\xbd\x74\x76\x76\ \xe2\x82\x98\x8e\x0c\x02\xd0\x7f\x3d\x22\x92\x14\x44\x44\x54\x64\ \x31\x23\x16\x86\x00\x75\x8e\x8e\x52\x4d\x4d\x4d\x6d\x6d\x6d\x03\ \x03\x03\xf4\x15\xfd\xe8\x69\x6f\x6f\xcf\x6e\xd3\x0d\xc1\x1e\xb6\ \x3e\x8d\x0c\x01\xe8\x62\x23\x61\x2c\x8d\x1e\xcd\x9a\x50\xba\x77\ \x3a\xa8\x79\xa3\x0c\x87\x4a\xc8\x7e\x95\xc1\x6d\x9a\x8f\x94\x23\ \x98\x39\xc6\xfa\xe2\x8b\x2f\x76\x75\x75\x0d\x0e\x0e\xe2\x2b\x3a\ \x27\x4d\x9a\xb4\xcf\x3e\xfb\xf4\xf7\xf7\x37\xf8\x26\xa1\xa1\x4f\ \xdc\x46\x44\x44\xd7\x11\x05\x31\xdd\x45\x24\x46\x90\xb9\xd9\x89\ \xe8\x44\xea\xc2\x28\xc6\x4f\x3a\x21\x1b\xc7\xd2\x0d\xf9\x98\x8e\ \x33\xfc\x34\xbd\x31\xe3\xfd\x54\xcb\x99\x19\x19\x38\x93\x91\xac\ \x4d\x56\x94\xc1\x96\x09\x4e\xbe\xe4\xb0\xcc\x14\xda\xbc\x79\xf3\ \xa7\x9f\x7e\x3a\x65\xca\x14\x52\x28\x44\x3b\x18\x19\x44\xde\xd7\ \x5f\x7f\xbd\x7e\xfd\xfa\xa3\x8f\x3e\xba\xbb\xbb\x1b\xd4\xf4\xc4\ \x13\x4f\xf4\xf6\xf6\x1e\x71\xc4\x11\xf8\x5a\xc4\x88\xa0\x91\x48\ \x45\x10\x48\x80\x88\xb3\xc2\x92\x5b\x81\xc2\xe8\xf8\x96\x2a\x0f\ \x8f\x0b\x69\x78\x14\x9c\x03\xee\xfc\xf5\x60\x08\xf8\x88\x82\x9f\ \xa0\x4a\x8c\x61\x53\xc8\x06\xae\x0c\x05\x34\xdc\x82\x89\xb4\x0f\ \x85\x49\x82\x67\x6f\x58\x9b\x00\x0e\x50\x32\xaf\x21\x3e\x47\x46\ \x46\x20\x35\x31\x81\x93\x4e\x3a\x09\x7a\xed\xb3\xcf\x3e\x5b\xb8\ \x70\xe1\xec\xd9\xb3\x2f\xbe\xf8\x62\x58\x03\x4f\x3d\xf5\x14\xb0\ \x23\x34\x25\x67\x45\xba\xaf\xb4\x81\x4f\x99\x3d\x23\x8e\x66\x43\ \x31\x8c\xcd\xfd\xab\x69\xbc\x2c\x83\x48\x5e\x58\xb5\xe3\x04\x8d\ \x5c\x73\x1f\x58\x33\xec\xf9\x53\xb4\x46\xa8\x26\x17\xe5\xcd\xa6\ \x1c\xb4\x18\x45\x2c\xb4\x0f\xce\xf9\x06\x31\x0c\xce\x07\xef\x00\ \x0e\x1a\x1f\xc0\x42\x84\xff\xd9\x67\x9f\x05\x34\x40\xea\x90\x43\ \x0e\x79\xe0\x81\x07\xd6\xac\x59\x83\x6b\xc8\xce\x4b\x2e\xb9\xe4\ \xdd\x77\xdf\xfd\xfc\xf3\xcf\x81\xa0\x9c\x58\x51\x30\x8d\x02\x8d\ \xbc\x81\x51\x26\x0a\x2a\xc6\xf6\xb3\xa9\xfa\xd4\x4b\x10\x44\xec\ \x7c\x19\x1d\x22\x79\x3e\x6e\xe1\x6f\xd0\xc6\x8b\x5d\x6f\x23\xc4\ \xee\x6e\x22\x0c\x45\xe3\xfd\x65\x0a\xfa\x06\x19\x44\xaa\x84\x99\ \x02\xd7\xe3\xc6\x8d\x03\x73\x3d\xff\xfc\xf3\x98\xd5\x3d\xf7\xdc\ \x73\xca\x29\xa7\x40\xc5\xd0\x9f\x90\x30\x99\x3b\x77\x2e\x3b\x71\ \x91\x9a\xaf\x87\x4e\xd1\x74\x28\xa5\x23\xe6\x41\x11\xc6\xb2\x91\ \x54\x1f\x7d\x64\x1b\xd6\x73\x42\x3e\xa0\xe2\x22\x3d\xca\xb9\x68\ \x1e\x47\xcf\x9d\x84\xb2\xf3\xc5\x02\x8b\x71\x00\x53\xb9\x28\x58\ \x79\x96\x92\x55\x0f\x85\x44\x4e\x3f\xfd\x74\xd0\xcb\xd5\x57\x5f\ \xbd\x64\xc9\x92\xfd\xf6\xdb\x8f\xe4\x34\x2d\x38\x88\x4e\x5a\x89\ \xf4\xab\x06\xd1\x46\xc7\x48\xa2\x53\x34\x32\xa3\x0c\xb0\x63\x09\ \xa3\x83\x23\xee\x94\xb4\x71\x26\x5d\x08\x49\x73\x1c\x4e\x09\xc1\ \xcb\x94\xe1\x48\x82\xa2\x7f\xec\xd3\x05\x2d\xc6\x21\x49\x23\xc8\ \x47\x0e\x45\xe6\x3f\xb0\x8c\x60\xa8\xe3\x8f\x3f\x1e\x3a\x6b\x97\ \x5d\x76\x81\x7d\x44\x9a\x3e\x7b\xa2\xf7\x6f\x79\x4a\x72\x86\x0d\ \xf9\x26\x6d\x45\x16\x79\xb4\x00\xf4\x5e\x32\xbb\xa4\x6d\x19\x2d\ \x9e\x76\xb8\x38\x9f\xdd\xbb\xe3\x6e\xf2\x6c\x14\x29\x99\xc3\xf0\ \x4e\xaa\x8b\x2f\xeb\xe0\x03\xa5\xa9\x51\x79\xb3\xa3\x52\xe2\x4c\ \x89\xe1\x32\x40\x51\x52\x81\x97\x7a\xce\x9c\x39\x50\xea\x84\x0e\ \x4f\x06\xe6\x09\x99\x8b\x8c\x69\x3d\x8c\x98\x71\x84\x2f\x59\xe3\ \xaf\xfc\x40\x69\x3d\x15\xd3\xf0\x71\x44\x21\xcb\x2f\x79\x49\x4b\ \xf3\x0d\xa9\x04\xef\xaa\xeb\x20\x4d\x98\xf5\x88\x1c\xd9\xb0\x74\ \x32\x28\xf2\x11\x59\x3c\x8f\xc2\x65\x18\x37\x40\x81\x0c\x82\xb8\ \xc1\x05\x59\x40\x3c\x79\x40\x83\x3f\x41\xd9\x43\xb4\x93\xe4\xe2\ \xf5\x2f\x62\x54\xea\xb5\x44\xca\x4b\x1a\x96\xa6\x0c\x1e\x17\x96\ \x34\x3e\x25\x68\x9c\x9a\xae\x9b\xe7\xd5\x2e\xa8\xc8\xfa\x5e\x07\ \xcb\x40\x0b\xc1\x6e\xfd\xe4\x5c\xb8\xc3\x46\x21\x4d\x14\x32\xcd\ \x7b\xe1\x18\x25\x44\xcf\x82\x05\x0b\x1e\x7e\xf8\x61\x68\xab\xc9\ \x93\x27\x03\x11\x28\x2c\xf8\x6b\xf8\xc4\x35\x2c\xe9\xa5\x4b\x97\ \x3e\xf2\xc8\x23\x50\x64\x50\x73\xd2\xe4\xfb\x56\x8c\x22\xe2\x8a\ \x7e\x58\x1e\x1b\xf0\xdc\xc5\x01\x0d\x1f\xfc\x66\xb9\x22\xa6\xe3\ \x85\x34\xa7\x40\x94\x47\xc7\x27\x36\x28\xbd\xa7\x59\x1f\x26\x26\ \x97\xd6\xd0\xe4\xdf\x1a\x5d\xba\x54\xae\x41\x06\x23\x18\x72\xe4\ \x91\x47\xde\x71\xc7\x1d\xaf\xbc\xf2\x0a\xbc\x24\xe8\x78\x50\x0d\ \x22\x21\xe4\x70\x41\x2a\xc1\xed\xbe\xee\xba\xeb\x36\x6c\xd8\x00\ \xd4\xa4\x11\x2c\x27\xcc\x58\x34\xda\x16\xe1\x12\xfd\x84\xe9\xb7\ \x6c\x60\x21\x3a\xa1\x3d\x45\x68\x6f\x45\x07\xe2\xf0\x3e\x5a\x90\ \xaa\x85\x5a\x1c\xdf\x6b\xd8\x24\xac\xc8\x31\x90\xe4\x27\x57\x25\ \x92\x41\x32\x76\x83\xa1\x83\xb3\x10\xa0\x39\xfc\xf0\xc3\x9f\x7e\ \xfa\x69\x90\x09\x05\xee\x30\x49\x20\x72\xd5\x55\x57\xc1\x05\x99\ \x3f\x7f\xfe\xb9\xe7\x9e\x0b\x1d\x77\xc3\x0d\x37\x20\x96\x04\xd4\ \x48\xeb\x47\x8d\x61\x8a\x84\x5d\x3d\x6f\xb6\x14\x20\xc9\x62\xf9\ \xa2\x0e\xe3\xd3\x03\xb1\x1f\xa6\xbd\xed\x1d\xe5\xe6\x49\x87\x6b\ \x31\x8c\x28\x68\xef\x93\xfb\xc2\x50\x95\xe3\xe6\x21\x62\xb6\x40\ \x01\x18\xc1\xc9\x40\x0f\xd9\x78\x70\x35\x56\xad\x5a\x75\xc5\x15\ \x57\xdc\x7c\xf3\xcd\xd0\x6b\x50\x70\x60\xc6\xeb\xaf\xbf\xfe\x9a\ \x6b\xae\x81\xca\xa3\x52\xb6\x28\x42\xc6\xd4\x54\xf4\xbf\xbe\x33\ \xf9\x94\x42\xe3\x3b\x95\x09\x39\x0a\x9f\xee\xd2\x21\x6f\x6a\xa2\ \x08\x6f\x0a\x6f\xc3\x65\x86\x4c\x2c\x83\x1c\xbf\x92\xfc\x2f\xcb\ \xed\xc8\xd1\x10\xd7\x80\xd7\x20\x8c\x07\x7c\x83\x53\xb6\xd7\x5e\ \x7b\xcd\x9c\x39\xf3\xac\xb3\xce\x82\x07\x0b\xd6\x83\x91\xbd\xc7\ \x1e\x7b\xc0\xff\x00\x76\xa5\x15\x3d\x84\x0b\x19\xa2\x91\x4e\x28\ \xfd\x1a\x8b\x21\xe3\x92\x42\xa6\xbc\xb8\xcd\x33\x0c\x27\x33\x54\ \xc8\xc9\xc7\xf1\x6f\xbe\x9b\x12\x8b\xfe\xef\x41\x06\x59\x9b\x93\ \x49\x53\x95\x16\xb5\x45\x30\x49\x63\x87\x3c\x58\xb0\x18\xf8\x6e\ \xfa\xf4\xe9\x88\xfe\x21\x6a\x83\xaf\x00\x6b\xb7\xdd\x76\xbb\xe8\ \xa2\x8b\x60\x7c\x47\x28\xb0\x47\x8a\x06\xac\x8b\x30\x45\xc5\x74\ \x25\x14\xe4\xd6\xd3\xa5\x4f\xf3\xf7\x2b\xc3\x56\x8e\x0e\xae\x93\ \xb3\x1d\x85\x0c\xd1\x02\x1d\x67\x03\xaa\x30\xc7\xa4\xac\x2c\x8b\ \x7e\xaf\x22\x4a\x8e\x84\x51\xb1\x6a\x91\x2c\x17\xc4\x46\xc1\x77\ \xa0\xa0\x33\xcf\x3c\x13\x3a\x0e\xf1\xad\x0b\x2e\xb8\x60\xd6\xac\ \x59\xa0\xa3\xf1\xe3\xc7\x13\x0a\x4c\x35\x04\x0d\x18\x90\x00\xe2\ \xbf\x72\xbc\xad\x54\x14\xe6\xbc\x55\x1f\xdd\xf0\x5a\x9b\x61\x72\ \x6b\x4d\x20\xb2\xaa\x12\xf9\x09\x27\x9f\x72\x91\x90\x5c\x5a\xc4\ \x32\x4a\x24\x0c\x85\x26\x2b\x5f\xc9\xa8\x0e\xb2\x38\x07\xc2\xe8\ \x84\x13\x4e\x80\x60\x3a\xfb\xec\xb3\x21\xa7\xc0\x7a\x97\x5e\x7a\ \x29\x52\x34\x97\x5f\x7e\x39\x30\x62\x62\x61\xc2\xa9\xfa\x16\x61\ \x14\xd1\x5a\x09\x7d\xb9\x90\xa1\x62\xf3\x99\xd5\xb6\x11\x35\x59\ \xb2\x50\xc4\x57\x1e\xe5\x74\x5f\xae\x34\x8f\x4d\x05\x52\x23\x11\ \x3f\x07\xa8\xeb\xb7\x51\x30\xe2\x60\x20\x08\xe7\xd4\x53\x4f\x85\ \xcb\x0a\x09\x0d\x5e\x43\x78\xe8\xca\x2b\xaf\x84\x61\x09\x99\x8d\ \xc0\x00\x6c\xa5\x9a\x6f\x44\x3e\xa5\x18\xf1\x45\x69\xed\x2a\x2b\ \x65\xe7\xb1\x4a\x99\xe2\x53\x13\x0e\xaa\x9c\xc8\xe1\xbc\x60\xb0\ \x06\x73\x30\xf9\x68\x8f\xa3\xa0\xf0\x67\x56\xf0\x21\x52\x32\x5a\ \x05\xef\xe8\x28\xe2\x49\xc0\x08\x02\xe8\xa3\x8f\x3e\xba\xf7\xde\ \x7b\x11\x1e\x82\x65\x70\xed\xb5\xd7\x42\xaf\xdd\x77\xdf\x7d\xc0\ \x08\xce\x2d\xd3\xce\x88\x6d\x11\x46\x11\xbb\x31\x4c\xb1\x90\x8e\ \x94\x4c\xd0\xc7\x2e\x40\x48\x7a\x5b\x09\x44\xb9\xc4\xa7\xbc\x66\ \x58\x2b\x19\xed\x91\x51\x61\xed\x0c\x4a\x65\xd4\xa8\x65\xc7\x1c\ \xf4\x8b\xee\x29\xae\x36\x84\xf4\x69\xa7\x9d\xf6\xd0\x43\x0f\xc1\ \xb0\x86\xe7\x01\x50\x60\x19\x21\xb9\xf6\xe8\xa3\x8f\x82\xac\xa0\ \xf8\x24\x7f\x31\x3a\x74\xc1\xf2\xbb\x9e\x54\x12\x1c\x65\xa4\x2b\ \x9f\x23\x6e\x57\xff\x20\xe2\xd2\x14\x0b\x0b\x91\xb5\x42\xf1\x34\ \xfb\x2c\x1c\x0f\x62\x43\x5a\x19\xcf\x82\x05\x35\x36\x0a\x5b\x95\ \xea\x26\xea\xa4\xa9\x82\xb9\xee\xba\xeb\xae\x27\x9f\x7c\x12\xee\ \x08\x3a\x11\x3f\x7a\xec\xb1\xc7\x60\x61\x42\x1e\x81\xac\xaa\x85\ \xc6\x7a\x8d\x31\xa2\x0c\x47\xa9\x8e\xd3\x41\xbe\xd6\x29\x3f\xe7\ \x60\x4f\x5e\x74\x49\x22\xca\xd9\x3a\xbe\x74\x36\xae\x0f\x22\xfb\ \xc8\x05\x84\x74\x09\x1c\x3c\x3e\xba\x90\xb1\xab\xb4\x4e\x83\x30\ \x02\xd5\x80\x76\x80\x11\x22\x8d\x10\xdb\x07\x1e\x78\x20\xfa\xef\ \xbe\xfb\xee\x63\x8e\x39\x06\x5f\x17\x2d\x5a\x04\x11\x4e\x19\xed\ \x52\xf5\x2f\x25\x51\x39\x11\xf9\xb5\x8d\xec\x0f\x5f\x6a\xe3\x4a\ \x3e\x8b\xc6\x39\xa7\x77\x62\xfe\x32\xce\x2f\x8b\xeb\x83\xb8\x12\ \xcb\x18\x5f\x89\x57\xd0\xaf\x64\xec\xf2\x1c\x38\x33\x53\x4a\x41\ \x34\x37\x18\x47\x20\x13\x88\x67\x58\xd8\x97\x5d\x76\x19\x81\x82\ \x7e\xd0\xd4\x71\xc7\x1d\x87\xbf\xce\x9b\x37\x0f\x49\x01\x5c\x14\ \x9f\x10\x09\x6c\x0e\x12\xe5\x49\xc8\x95\x1d\xc4\x26\x24\xfb\xa5\ \xaa\xe0\xac\x86\xd0\x7e\x5e\x7f\x39\x6b\x28\x8d\x65\x50\x88\x01\ \xf8\xe0\xa3\x56\xc6\xd4\x11\xc1\x52\x00\x15\x49\x46\xae\x36\x73\ \x07\x1e\x0e\x75\x06\x8f\x0c\x00\x41\xa9\xbd\xf3\xce\x3b\x80\x03\ \x90\xdd\x76\xdb\x6d\xb7\xdc\x72\xcb\x7b\xef\xbd\x07\x87\x16\x84\ \x56\x14\x43\xb5\x42\x2b\xb1\x2d\x4c\x48\x6a\xe4\x7b\xdd\x74\x95\ \x74\x35\x42\xfd\x1a\x33\x65\x2e\xdd\xe8\x73\x5e\xba\x04\x20\xc3\ \x9e\x98\x11\xe2\x2b\xef\x13\x44\xe8\x44\x48\x45\xe8\x44\x2b\x0f\ \xa7\x04\x6e\xed\x39\xe7\x9c\x73\xfe\xf9\xe7\xc3\xfb\xc7\xfc\x21\ \xa7\xa1\xf5\x6f\xbd\xf5\x56\xe2\x32\x5b\x85\x31\x42\x91\x7f\x36\ \x1d\x8b\xa2\x3a\xd2\x62\x9a\x22\x3f\x69\x08\x6c\x84\x30\xaa\x96\ \xda\x3f\x57\x36\xc8\x79\x10\x0e\x92\xf0\xbe\x95\xbc\x51\xa0\x92\ \xa8\x3e\x48\x3b\x4b\x51\xd7\xb3\x7d\x8a\xaa\x37\x92\x14\x52\x76\ \x70\xc3\x6c\xf1\x04\xb0\x12\x92\x6b\x88\x93\x20\x59\xd4\xd3\xd3\ \x03\xaa\xd9\x6e\xbb\xed\x20\x8c\x2e\xbc\xf0\x42\xb0\x21\x44\x15\ \xe5\x36\x10\x90\xa4\x00\x40\x91\x88\x4a\xb4\x18\x19\x3c\xd6\x4f\ \xd2\xdc\xe1\xcd\x19\x76\xbb\xf8\x5e\x4e\x92\x46\xe5\xe4\x4a\x09\ \xe7\x5e\x44\x0d\x65\x7d\x90\xcf\x81\xf8\xa0\x74\x5a\x06\x8d\x94\ \x41\xdc\xc3\x9f\x94\xea\xe3\x64\x71\xbc\xf7\x2a\x49\xa0\xf8\x11\ \x09\x01\xb1\x00\xa3\x3b\xef\xbc\x13\xc4\x02\x91\x04\xd7\x1f\xce\ \x1a\x8c\x6f\x10\x0e\x8f\x18\x4e\x2f\xae\xa9\x87\x20\x26\x91\x57\ \x12\x0d\x12\x51\x30\x2d\xa4\x84\x8f\x3c\x2b\x59\xa0\xc8\xa9\x09\ \xa5\xeb\x6f\xbd\x12\x5f\x2b\xe2\x26\xe3\x64\x8f\x36\xa5\x4e\x50\ \x11\x0e\xd9\xc3\x49\x74\xfe\x2c\x6a\x5c\xf2\x6c\x11\x5a\x43\x40\ \x12\xe4\x03\x53\xfb\xf6\xdb\x6f\x07\x59\xed\xbf\xff\xfe\xe8\x7f\ \xf9\xe5\x97\x41\x41\x04\xc4\xc6\x8d\x1b\x1f\x7f\xfc\x71\xd8\x99\ \x80\x52\xea\xfb\xa2\x0c\xd2\xb2\xfe\xc0\xa8\x7c\x70\x42\x99\xbc\ \x59\xac\x44\x69\x43\xe9\x66\x37\xf9\x93\x62\x7d\x90\xab\x96\x35\ \xba\x64\x07\x8e\x14\xd2\x04\x81\xcc\x0e\x33\xc9\x94\xa2\x13\x01\ \x04\x67\x0d\x32\x68\xdf\x7d\xf7\x05\x46\xc8\x1d\x21\xa2\x06\x38\ \x00\xd9\xde\x7b\xef\x4d\x3c\x05\xaa\x01\x97\x41\xcd\x41\x42\x21\ \x2a\x00\x8c\xd8\x71\x2b\xd9\xfc\xc4\x01\xb3\xfc\xa8\xdd\x8a\x1b\ \xc3\x2a\x3e\xbf\x55\xc0\x48\x5a\x11\x4e\x78\xd8\x1f\x12\x82\xf6\ \x62\xab\x88\x77\xe2\xca\xdc\x88\x74\xd4\xc6\x32\x28\x12\x1c\x45\ \x07\x02\xf3\xc7\x1b\x81\x11\x08\x07\x29\xc6\x9b\x6e\xba\x09\x1a\ \x0d\x74\x04\xee\x43\x08\x09\x60\xe1\xfa\xab\xaf\xbe\x82\x6c\x42\ \x32\x12\x6e\x0a\xe4\x11\x7e\xc2\xa2\xad\xc4\x9b\xd7\x4a\x9a\x7f\ \x52\xa4\xfa\xe0\x57\x08\xf0\x70\xb9\xb6\x8c\x0c\x3a\x2d\xee\x2c\ \x1d\xa3\x85\x43\x9f\xe4\x73\x26\x1c\xbb\x57\x45\xa3\xb9\xe8\x22\ \x45\x3d\x91\xde\x91\xce\x7a\xd1\xa5\xc0\x93\xe1\xac\x21\xa3\x8f\ \x0b\x48\xe8\x28\xad\x84\x06\xd5\x76\xd8\x61\x87\xe1\x4f\x30\x11\ \xf8\xe7\xf5\xac\x44\x97\xef\xd4\xf9\xf0\x9e\xf1\x8a\x9d\x02\xc9\ \x21\x30\xc4\x81\x1f\xbe\xc3\xe9\x2f\xad\x83\x4f\x17\x0c\xc5\x42\ \xd1\xac\xb4\x13\x63\x19\xc4\x17\x5c\x7a\x21\x45\x32\x5f\x73\x78\ \xa8\x34\xbd\x45\xb9\x30\x48\x1c\x88\x67\x96\xee\xbc\x06\x59\x29\ \x72\x5b\x1b\x2e\x20\xad\xc0\x6b\x4c\x7d\x24\xa4\x4b\xbd\x79\xde\ \xee\x14\x2a\x38\x74\x70\xcf\xa5\xa8\x16\x5b\x1f\x72\xfe\x89\x0e\ \x31\x55\x51\x26\x24\xeb\x83\x9c\x59\xe1\x37\x63\xd5\x53\xf0\x04\ \x90\x14\x3d\x2c\x74\x18\x26\xde\x3f\x51\x44\x47\x02\x44\x80\x4a\ \x15\x4e\xf2\x18\xe8\xdc\x78\xe3\x8d\xa8\x87\x3c\xe8\xa0\x83\xa0\ \xe6\x98\x43\xb9\x94\x2b\xcf\x68\x32\x14\x9d\x33\x91\x95\xe3\x2f\ \xad\xf2\x51\x31\x57\x7b\xe0\x92\x14\x85\x7d\xc3\x2e\xa5\xa1\xe2\ \xfa\x20\x1f\xe0\xe5\x00\x66\x2c\x62\xd9\xf0\xd1\x3a\xde\x82\xa3\ \x0a\xdb\x5c\xe5\x3a\x73\xd5\x1e\x57\x40\x30\x40\x98\x39\xbe\x92\ \x59\x48\x37\x40\x1e\x01\x1d\x60\xf4\xc1\x07\x1f\x90\x8f\x02\x8c\ \x88\x7f\xeb\xec\x50\x75\x49\x67\x23\x77\x66\x0a\x3b\x0e\x71\x78\ \xa0\x5e\xb3\xff\xd3\x82\x60\x79\xbd\x9e\x2a\xd1\xf1\x4a\x40\x1a\ \xd5\x28\x12\xdd\x58\x4f\x35\xcf\x62\xac\xa1\x98\xce\x8b\xea\x9c\ \xf2\x65\x04\x07\xbe\x62\xce\x9c\xcf\x91\x14\x14\xa5\x2e\xf0\x13\ \xe2\x32\x92\x4a\x60\x28\x18\xd6\x60\xbd\x65\xcb\x96\x41\xf4\x20\ \x3b\x02\x74\x16\x2f\x5e\x0c\x2b\x9c\x1e\x52\x2e\x83\x72\xa6\xaf\ \x50\xde\xb6\x66\xac\xb3\xb9\x79\x42\x7b\x3b\x8a\x5c\x5b\xc6\x8c\ \x41\x95\x6b\x63\x57\xd7\x38\xe4\xa9\xbe\x89\xed\x1f\x11\xe7\x0f\ \x69\x9f\xb8\x46\xd1\x28\x5f\xfd\x21\x62\xd2\x7e\x27\x62\x95\x25\ \x45\x71\x0b\x64\x29\x67\x49\x16\x93\xb4\x23\x13\x90\x08\xa4\x41\ \xd9\x3f\xf3\xcc\x33\x87\x1e\x7a\x28\xf4\x1a\x3a\x11\xae\x45\x31\ \x34\x3a\x41\x3e\xf0\x66\x57\xaf\x5e\x8d\xb0\x91\x34\xb8\x0a\x32\ \xc8\xe5\x20\x74\x7e\x8f\x33\x8d\x73\x78\x68\xf8\xb9\x0f\x3f\xdc\ \x54\x49\x06\x92\x86\x4a\x5b\x5b\xd2\xd2\xd2\x31\x61\xfc\x1f\xbe\ \x5a\x3b\x7d\xa7\x09\x56\xf9\xa5\xc6\xe8\xd8\x60\xc8\xd7\x28\x26\ \xd2\x50\xd4\x6e\x9f\x47\x88\x9f\xd0\xc4\x10\x30\x45\x1e\x99\x8a\ \x58\xeb\x39\x13\x91\xe6\x8a\x22\xaa\x45\xad\x4f\x0d\x28\xa0\x5e\ \xef\xb9\xe7\x9e\x43\x14\x0d\x71\x7e\xbc\x11\x51\x91\xb7\xde\x7a\ \xeb\x8d\x37\xde\x20\x64\x51\x3c\x4e\x05\xad\x1c\x45\x2b\xb7\xa4\ \x4d\x8e\x04\x54\xe6\xdc\xeb\xc1\x81\xc1\x5d\xe7\xcc\x7a\xbf\xa5\ \x92\x2e\xdc\xbb\x71\xfe\x7c\x3d\x7b\x76\x75\xc6\x8c\xc1\x09\x5b\ \xbd\xf2\xfe\xbb\x7b\xce\x9f\x33\x3c\x30\x24\x76\x12\x6a\x2f\xcb\ \xec\x85\x50\x4d\x15\x59\x1f\xe4\x6c\xab\x3c\x7f\x61\x4c\xf0\xb6\ \x91\x6b\xa6\x0a\xe9\xd1\xab\xe8\xa5\x00\x92\x45\x73\x32\x31\x2f\ \x73\x81\x98\x33\x9c\xaf\xa3\x8e\x3a\x0a\x21\x47\xe0\x82\x57\x80\ \xcb\xd0\x8f\x20\xe4\xc9\x27\x9f\x8c\x52\x36\xa9\xe6\xea\xa5\x55\ \x5d\xf9\x9c\xf6\x01\x7b\x5f\x45\xd6\xdf\x3f\x30\x7b\xe7\x9d\x7e\ \xbc\x70\x6e\xb3\x49\xfe\x72\xff\xc5\xdd\xdd\x5b\x20\xda\xfe\xf3\ \xbd\xff\x5a\xf0\xc3\x9d\xe6\xcf\xdf\x79\xd3\xc6\xee\x24\x5b\x83\ \x90\x23\xb4\x3a\x30\xb5\x9b\x0e\x55\x4e\xcd\xe7\x4d\x74\xc5\xa5\ \xc0\x72\x97\x06\x32\x7f\x94\x1d\xe5\x2c\x6b\x3d\x73\x99\xd5\x56\ \xa4\xbf\x64\x8d\x9a\x6c\xe0\x26\xc8\x07\x64\x8a\x60\x25\xd2\x63\ \xc1\x62\x58\x09\xa2\x3e\x26\x19\x0e\x06\x15\x17\x24\x8b\xe0\xd8\ \x5a\x4c\x4d\x1b\x83\xbd\x2b\x8a\xd7\x0d\xf5\x0e\x2c\x3b\xf2\xc0\ \x2b\x7f\xb1\x7c\x9f\x45\x7b\x83\x92\x51\x29\xf1\x9b\xdf\xfc\xdb\ \xdf\x1c\x85\xeb\x54\x89\x4d\x77\x89\x71\x85\xbd\x76\xeb\x4f\x28\ \xee\x88\xed\x20\xb6\x2c\x64\x56\x8c\x30\xc2\x58\x69\xd0\x45\x8b\ \xae\x28\x77\x8a\xe8\x70\xed\x53\x94\x4a\x96\x5b\x54\x10\x0c\x91\ \x81\x4a\x2a\x15\x65\xa5\x4e\xe2\x0f\x77\xc6\x32\xc8\x55\x8a\xa5\ \xb4\xb0\xe4\xd6\x5b\x01\x9d\x3d\xbf\xaf\xb7\x7f\xd7\xdd\xe6\x4e\ \x9d\xd2\xb1\x6a\xd5\xea\x03\xf6\xff\x8b\xd5\xaf\xbf\xd5\xd2\x34\ \xb4\x60\xc1\x3c\x6c\x8b\x07\x71\xfb\x70\xad\xfb\x87\xca\x5c\x49\ \x02\xe7\xec\x20\xb1\x55\xc3\xc7\x21\xf3\xc4\x0c\xb2\x07\x97\x91\ \xbd\x5b\x1a\xd6\xa3\x42\x7a\x96\x59\x5c\x54\x5f\xba\x3f\xa3\x58\ \x98\xc0\x6b\x50\x52\x6b\xe1\x01\xa2\x12\x75\xb0\x24\x55\x8e\x5a\ \x04\xf5\x96\x9e\x1e\x08\x75\xec\xf9\x19\x1a\xae\x6a\x0e\xfa\x39\ \x13\x28\x25\x8f\x61\x78\x70\xf0\xe7\xcb\x0e\xba\xf9\x97\x4f\x1e\ \x7d\xf4\xcf\x7e\xfb\xdb\x15\x4b\x0e\x5e\xe8\xf6\xe6\x1a\x63\x4c\ \x6e\x53\x28\x3b\xb3\x5a\x95\x45\x14\x4d\xa8\x1c\x51\xc5\xc9\x83\ \xec\x11\x09\xc4\x02\x16\xab\x58\xa2\x52\xf1\x62\x21\xe2\xb7\x16\ \x25\x36\xfa\x26\xcb\x5d\x65\x23\x70\x57\xae\x5c\x89\x18\x08\x52\ \xd8\xec\xb5\xe2\x02\x1c\x1a\x85\xa2\x8d\x0f\x25\x12\x88\xbd\x3d\ \xbd\x7b\xec\xb9\xeb\xa4\x09\x4d\xf7\xdc\xbb\xbc\x31\xe9\xdf\xe7\ \x47\xf3\xb7\x6c\xe9\xc9\x24\xa3\x8a\x67\xea\x7f\xad\xa5\x60\xaa\ \x98\xa8\x74\xc6\x10\x23\x24\xfc\x63\xd2\x62\xd0\x35\x70\x20\xdf\ \x7e\xfb\x6d\x62\x07\x0a\xee\x48\xba\x28\x25\x90\x62\x85\x46\xc4\ \x5c\xa5\xa7\x9f\x14\x33\xda\x74\x1b\x12\xd9\xa8\x8a\x84\x4d\xc4\ \x88\xd4\xaa\xb5\x3f\xd9\x7e\xdb\x4a\x43\x45\xa5\x43\xaa\x41\x07\ \xab\xc8\x09\x6d\x37\x4f\x28\xfb\x63\x7f\xbe\xe4\xe0\x9f\xfc\xed\ \xa3\xbf\xbe\x1e\x9b\x16\xd2\xd4\x88\x64\x7d\xd0\xeb\x21\x55\xa4\ \x83\xeb\x1b\xd7\x07\x79\x62\x1e\x66\x82\xe7\x08\x19\xe2\x7e\x1b\ \x6d\xe3\xd1\x73\xfc\xcc\x9f\x9e\x90\xe6\xb6\x8a\xe4\xed\xcc\xe2\ \x3e\xc2\x52\xa1\x5b\x6f\x27\x22\xe2\xb3\xd0\xa4\xb0\x89\xc8\xa4\ \xe4\x01\xb4\xb4\x34\xdb\xb2\x15\x27\x7e\x78\x0b\xb9\x0f\x13\x19\ \x5b\xcd\x34\xb4\xe3\x0e\x33\xfe\xe1\xef\xcf\xfd\xc1\x0f\x76\xec\ \xeb\x1f\x00\xad\x7b\x44\x52\xc1\x43\xc6\x17\x00\x1b\x2d\xaa\x94\ \x72\x11\x45\xb2\xb6\xb2\x43\x3c\x5a\x2a\x70\xa6\x77\xfa\xb3\x59\ \x52\x4e\x23\x0a\x01\xe2\xdf\x76\xdb\x6d\xa3\x3d\x98\xd1\x6c\x8b\ \xdb\x30\xa3\x32\x4d\x56\xfc\xdf\xba\xa1\x2e\x7f\x66\x46\x15\x84\ \xcc\xc2\xde\xed\xf1\xce\xf6\xd4\xd5\xfc\xb6\x68\x13\x42\xa9\xda\ \x57\x27\x7a\x47\x15\x76\xdb\xd2\x25\x8b\xfb\xfa\xfb\x53\xca\x7f\ \x38\xeb\xc9\x09\x2d\xde\xb3\x9d\x3d\x20\xf5\x85\xb1\xd1\xa6\x5e\ \xa3\x43\xb8\x7a\xec\x98\xf6\xe1\xa1\xa1\x28\xaf\x46\xaa\x1a\x3c\ \xff\xad\x00\x45\x29\xaa\x88\x82\x46\x3f\xdf\xa7\x14\x20\x57\x89\ \xe2\x0b\xc9\x5d\x54\x53\xa9\xee\xee\xcd\x80\x8e\xf4\x03\x17\xcd\ \x5b\x03\x19\x84\xe1\x26\xcb\x16\xce\x96\x9e\xde\x24\xf1\xa7\x2a\ \x50\xd2\x5d\xe5\x23\x91\x5e\xf6\xc8\xc8\x49\x45\x3a\xc5\x78\x24\ \x4a\x68\x87\x6b\x66\xca\xe4\xf1\x2f\xbd\xb6\xfa\xa7\x4b\x0f\xdb\ \xd2\xbd\xc5\xa6\x11\x6c\x46\x4c\xf1\x81\x0d\x8a\x92\x0b\xd6\x58\ \x0f\x47\xf4\x98\x5c\x5e\x45\xf1\xcd\xc6\x67\x22\xd2\xe0\xe8\x66\ \x4f\x08\x47\x6b\x14\x8f\xfd\x71\xbb\xdd\xe4\x14\xe8\x28\x00\x7a\ \x66\xb6\x54\xe3\xbb\xc6\xc3\xa1\xdd\x71\xe6\x34\xa9\x82\x74\x38\ \x01\x87\x4f\x79\x71\xb1\x6a\xda\x37\x1e\x16\x49\xeb\x28\x4c\x1b\ \x2a\x18\xc5\x81\x03\x95\xa2\x08\xe8\xe9\xe9\xdd\xf7\x47\xf3\x1f\ \x7f\xe6\xe6\xbb\x7e\x75\xdf\xc1\x07\x1f\x90\x55\x46\x65\xf5\x87\ \x15\xeb\x97\xa4\x14\x84\xac\x77\xba\x94\xaf\xca\xd1\xa5\xe7\x1d\ \xf9\xc3\x0e\xc8\x2d\x4e\xf9\x81\xfc\x58\x25\x8e\xf5\x91\x50\x3b\ \xbd\x61\x1f\x0e\xd7\x25\x3b\x02\xaa\x96\xfe\xcb\xbf\x3e\xb5\xea\ \x95\xdf\x1d\x7f\xeb\x85\x5b\xb6\xf4\xea\x24\x09\x79\x51\x2d\xd2\ \x15\x5c\x3f\xe4\x4f\x10\x32\x26\xde\xe0\x18\x8d\x9f\xcb\x38\x9d\ \xa1\x18\x6b\x19\xbf\x83\xe1\xef\x2e\x3c\xf1\x57\xff\xf4\xc4\xc3\ \xbf\xfe\xac\xb7\x6f\x18\x35\x3e\xbd\x7d\x83\x23\x4e\x3a\xfa\x62\ \xd9\x42\x9d\x9e\x74\xaa\xb5\xdb\xac\xaf\xa3\x1b\xb8\xdf\x88\x03\ \xa8\x9c\x10\xd1\xf9\x2c\x68\x38\x17\x2c\xec\x63\xc3\xf7\x89\x13\ \xc6\xae\xfd\xfa\xeb\x71\xe3\x3a\x36\x6e\x58\x73\xd5\xa5\x27\x75\ \x76\xb4\x0f\x0c\x0c\x3a\x31\x97\xdd\x9f\xe6\xdc\x0e\x4b\xfd\x1c\ \xe5\x0a\x96\x8e\xdf\x07\x5c\xc8\xc7\xe6\x8f\xc1\x91\x42\x9a\x69\ \x0b\x7c\x0a\x5d\xde\xd9\xd9\x71\xe9\xf9\x27\xc2\x12\xeb\xe9\xe9\ \x03\x3d\x6f\xd8\xd8\x2d\x75\x16\xbd\x21\x3a\xbb\x27\x3a\xf1\x48\ \xe7\xcf\xf7\x50\xf5\x0e\x43\xe2\xa3\x10\x7c\xa5\x93\x32\xf9\x63\ \x80\xfc\x99\x1e\x14\xea\x9b\x38\xb1\xab\xb1\xa9\xb1\xbd\xad\x6d\ \x5c\xd7\xb8\xc1\x81\x21\x38\x5c\x09\x93\x8f\x88\xe5\xa8\x3a\xe5\ \x0c\x85\x32\x58\x1f\x67\x65\x1b\xca\x59\x3a\x62\xdf\x7c\xc8\x2b\ \x86\xd0\x6c\x02\xf7\x79\xfd\xc6\x6e\x30\x17\x22\x12\x78\xe8\xe4\ \xc9\x93\xf8\xf8\x17\xe3\x76\x5b\x05\x1f\x91\x8f\x94\xf1\x7f\x55\ \x7c\xf2\x06\x5f\x28\xd9\x13\x9d\x7c\x26\xa3\xe4\xf9\xfd\x39\xf2\ \x1e\x9a\xd1\x48\xad\x9a\x05\xc1\xb0\x66\x1b\x36\xc3\x5b\x20\x93\ \x2f\xf1\xd9\x54\x3e\x57\xc9\x17\x13\xba\xca\x27\x25\x22\x87\x9a\ \x37\xb6\x98\x20\x9b\x85\xaa\xcf\x95\xd2\x57\xe4\x81\x46\x81\xf0\ \xec\x0d\x95\xcc\x5e\x30\x1c\xf4\xcb\xef\x76\x08\x87\x63\xc8\xe9\ \xe6\xfa\xf3\x40\x14\xcf\x44\x08\x50\x16\xb1\xa8\xb7\x17\xdf\x1d\ \xf8\x65\xbd\xa4\x84\x8e\x50\x32\x3a\x1c\x65\x42\x4a\xcc\xe8\xb0\ \x89\x25\x7f\x64\x47\x20\x4f\xef\x52\x18\xa1\x51\xb8\xb4\x8a\x83\ \xdb\xf2\xfc\x20\xa2\x1f\x87\x91\x2a\x64\xfb\x8b\x47\x74\x89\x23\ \x6b\xc2\x4e\x0e\xfb\xaa\xa4\x8c\xa1\x74\x01\x23\xad\xcb\xce\x22\ \x48\x74\xb1\xa6\x34\x7c\x0d\xdb\x8f\x4d\x70\xb9\xbc\x9f\xa4\x45\ \xdc\xde\x1f\xea\xe2\xe1\xf3\x9e\x01\xef\xa2\xe3\x84\xac\x51\x74\ \x84\x10\x6b\xb8\x50\x50\x94\xab\x0f\xb2\xaa\x37\x1d\xc9\x82\x5b\ \x90\x35\x55\xbf\xdf\xd5\x1b\xa8\x9e\xb3\xe4\x71\x5d\x8a\xfb\x43\ \x2c\xd8\xf3\x5c\xa2\x4d\x38\x03\x2a\x20\xc2\x0f\x31\xa6\x70\x2c\ \x5b\x38\x33\x8f\x8d\xbd\xfc\x5e\x64\x95\x3f\xa0\x88\xce\x8b\x8a\ \xf6\xac\x98\xc0\xcb\x2a\x6c\xcf\x54\x2a\x36\xdc\x59\xc4\xd9\x7b\ \xd3\x60\xc7\x62\x57\xbd\xf2\x25\x69\xd1\xf9\x41\xaa\xa3\xbd\x6d\ \xfc\xe4\x89\xa4\xd7\xb5\x14\x37\x7e\x43\x91\xc4\x28\x09\xa7\x74\ \xb9\xd3\x65\x58\x54\xeb\x70\x24\x90\x16\x87\x66\xf1\xf1\x7e\xc6\ \x1d\x1e\x16\x86\x5a\xe6\x9a\x89\x7e\x93\xff\x1a\x12\x80\xca\xa8\ \x1c\x62\x05\xcd\x67\x4c\x4e\xae\x99\x42\xb1\x47\x48\xfa\x90\x1d\ \x62\x74\x5b\x2b\x55\xc2\x05\x3b\x88\x73\x26\x2f\xbc\xb4\xea\xe2\ \x8b\x6f\x84\xda\x62\xe7\x20\x1c\xd0\x66\x0a\x87\x0f\x71\x86\xc8\ \x27\xdc\x74\xfe\xac\x22\x41\xc7\x12\x02\x3e\xae\x47\x8b\x19\xe9\ \x78\xe2\x65\xe7\x33\x69\x79\x48\x92\x2a\x48\x81\xf8\xfc\xca\xd8\ \x68\x50\x75\x76\x31\x45\x65\x0b\xcd\x4d\x8d\xab\x5e\x7d\x93\x36\ \xfb\xa5\xf6\x70\x3e\x17\xc4\xf9\xe4\x93\x4f\x96\xdf\xff\x40\x7f\ \xff\xa0\x12\x34\x6b\x72\x95\x43\xf2\xb3\xce\x39\x97\xb2\xc7\x94\ \x1e\x57\xc5\x47\x3e\x29\x3e\xab\x30\xd6\xc4\x4c\x80\x26\x67\x61\ \x09\x1b\x2a\xf7\x59\xe7\x20\x4f\x2d\x7f\x58\x34\xd6\xea\x1d\x18\ \x8a\x1b\xc6\x74\x76\x9c\x76\xda\xa9\xb4\x71\x5b\x97\xef\x81\xf8\ \xbe\x95\x1e\x76\xcb\x81\xf1\xc2\x61\xb7\xba\xf4\x2c\xa5\xff\xab\ \x87\xdd\x52\x5a\xdc\xbd\x82\x03\x9a\xf1\x46\xa2\xff\xdf\x00\x85\ \x4d\x60\xdf\x9f\x48\x3e\x7a\x4b\xbe\x87\x60\xf4\xf6\x3f\x17\x5c\ \x8a\xe5\x6a\xba\xb8\x51\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x20\x68\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x60\x00\x00\x00\x54\x08\x02\x00\x00\x00\xf2\x11\xa5\xd4\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\x0b\x12\ \x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd5\x03\ \x03\x0f\x29\x0a\x74\xfd\xc3\xca\x00\x00\x00\x06\x62\x4b\x47\x44\ \x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x1f\xf5\x49\x44\ \x41\x54\x78\xda\xed\x5c\x09\xb8\x14\xd5\x95\xae\x5b\xbd\xbc\x7e\ \xfb\xc6\x5b\x58\x1e\xbb\x6c\x42\x82\x80\x28\x51\x31\xe2\x46\x40\ \x05\x07\x51\xa2\x66\xe2\x12\x10\x9d\x44\xcc\x0c\x44\x13\x17\x70\ \x41\x8d\x4b\x12\xe7\xcb\xa2\x49\x8c\xc6\x49\x26\x8e\x1a\xa3\x64\ \x12\x26\x01\x13\xe5\x53\x42\x08\x71\x62\x36\x0d\x10\x40\xe1\xf1\ \xf6\xfd\xf5\xeb\xb7\x74\xf7\x9d\xff\xde\x73\xef\xad\x5b\x55\xfd\ \x88\xe6\xd3\x2f\xc9\x37\x96\xd8\xaf\xba\xba\xea\x56\xd5\xa9\xb3\ \xfc\xe7\x3f\xe7\x16\xcb\x66\xb3\x8e\xe3\xa4\xd3\x69\xd7\x75\x39\ \xe7\x58\x67\x8c\x39\x7a\xc1\x16\xfb\xab\xd9\x48\x2b\xe6\x27\xb3\ \x5b\x78\x7f\x7b\xcb\x3f\xd6\xf8\x58\x8f\x44\x22\x2c\x93\xc9\x40\ \x34\xce\xfb\x4b\xae\x45\xc8\x0b\x1a\x34\x34\x34\xb4\x7e\xfd\x86\ \x68\x34\xce\x79\x16\xb2\x65\xf8\xcf\x21\x19\x33\xee\x70\xf9\xd5\ \x7f\x98\xfc\x55\x6e\x65\x66\x8b\xfe\xca\xad\x4f\x79\x0a\x35\xa0\ \xde\xd1\xdb\xed\xef\x76\x7c\x07\x1a\x93\xce\x64\x2a\x2b\xcb\x6f\ \xbd\xe5\x96\x28\x34\xaa\xa7\xa7\xbb\xbb\x27\x75\xed\x75\xd7\xf5\ \xf7\xa7\x84\x82\x31\x07\x82\x12\xc7\x30\x97\xe1\x6f\x4e\x15\x65\ \xde\x09\xb8\xdc\x84\xbd\xf4\xbe\xa4\xa4\xcc\x68\xb3\xf8\xce\xcd\ \xb5\x8b\x9d\xb4\x92\x8b\x0b\xf2\x59\x04\xdd\x93\x93\x6b\x7c\x39\ \x70\x50\x40\xef\xc1\xf8\x38\x34\x12\x71\x93\xc9\xbe\xa7\x9f\x7a\ \x1c\xc7\x46\xc9\xea\x4a\x4b\x4b\xcb\xcb\xcb\xfa\xfb\xf3\xe8\xfe\ \xe2\xb1\x68\x24\x16\xe7\x99\x6c\x26\x93\x66\x96\x01\xc2\x5d\xb9\ \xf2\x04\xfa\xa4\xea\x04\xd0\x43\x1c\x16\x8b\xc7\xd3\x69\xa8\x23\ \xa4\x0f\x8f\x16\xf1\x84\xc9\xcc\x75\xa8\x1b\x90\xba\x8b\x6b\x95\ \xb7\x9a\xeb\x06\x82\xe3\xd3\x0d\xb3\x5c\x1a\xf4\x6e\x8f\x4f\x02\ \x8a\xc7\xf3\x4a\x8a\x8b\xb1\x2d\x4a\xa3\x43\x12\x99\x74\x06\xae\ \x3a\x1a\x89\x42\x22\x47\x8e\xd4\x37\xb7\x34\x15\x17\x95\x14\x14\ \x14\x64\x49\xba\xea\x04\x2c\x74\x02\xa5\xe4\x99\xf4\x50\x5b\x7b\ \x5b\x45\x45\x65\x55\x55\x75\x7e\x41\x7e\x7f\x7f\xbf\xcb\x5c\xf5\ \xb4\xe8\x20\x47\x3e\x4e\xf3\x84\xe5\x0d\xf0\x61\x9e\x70\xe0\x06\ \x86\xd3\xa0\xf7\x62\x7c\x71\x3f\x9c\x43\x1a\x58\x84\x80\x8c\xeb\ \xc6\x80\xb8\x25\x7c\xfd\xe2\x17\xee\x2e\x2b\x2d\x6a\x6b\x6b\x2d\ \x2e\x2e\x2e\x2c\x2c\x82\x93\x0a\x07\x02\x1a\x8d\x73\xf3\xc9\x20\ \xdc\xc6\xc6\x86\xda\xda\x91\x10\xee\xaa\x8f\x5e\x35\x6d\xda\x0c\ \x61\xb0\x42\xfb\xbc\x4b\xd4\x7a\xcd\xf4\x17\x16\x08\x3a\xcc\x1a\ \xdc\x7c\xd3\x6a\x40\xba\xc0\x02\x3b\xbe\x07\xe3\x4b\x69\x30\x35\ \x58\x94\xcc\x95\x4b\xb9\x42\x1c\xbf\xf8\xc5\xcb\xe5\x65\x85\x0f\ \x3c\x70\xff\x5f\xed\xf9\xb7\x6e\xfd\xd1\x4f\xb7\x6d\x9f\x33\x67\ \x5e\x2a\x95\x74\x85\x45\x7a\x97\xae\x1e\x37\x7d\xe7\xc6\x6f\xf8\ \xfd\x9b\x72\x94\xcc\x3c\x72\x63\x3d\xe1\xa7\xe4\x79\xe3\xf7\x60\ \x7c\x31\x02\xe7\x51\x5b\xa4\x08\xfb\x70\xd8\x33\x67\xce\x84\xd6\ \x3c\xf6\xd8\x63\xbb\x77\xef\x86\x5e\xd0\x43\x70\xe5\x22\xff\x32\ \xfd\xa9\x16\x1a\x00\x9b\x8a\x8a\x8a\x36\x6c\xd8\x50\x53\x53\x5b\ \x58\x58\x08\xf7\x65\x7e\x25\x27\xaa\x6e\x48\x1f\x60\x3d\x4c\xe6\ \xf8\x6c\x20\xb0\x31\xd7\x8e\xdc\xb1\x43\xd3\xbb\x3e\x3e\x5d\x39\ \x79\x96\xa8\xde\xc4\x49\xa9\x24\x26\x82\x7c\xb2\x8f\x3f\xfe\xf8\ \x39\xe7\x9c\x53\x52\x52\x92\x48\x24\xf2\xe5\x42\x2b\x79\x79\x79\ \xf4\x89\x25\x1e\x8f\x47\xa3\xc2\x8b\x0d\x0e\x0e\xc2\x1e\x37\x6f\ \xde\xfc\xca\x2b\x3b\xc7\x8c\x19\x25\x61\x67\xc4\x92\x8f\xe7\x35\ \x48\xf1\x85\x77\x70\xe9\xa1\x73\xfb\x57\x13\x91\xac\x8d\xcc\xe8\ \x03\xb3\x7d\x10\xf3\x54\xe0\x6d\x8c\x1f\x10\xe6\x5f\x18\xdf\x7e\ \xf6\x51\xbd\x26\x47\xd5\x36\x0e\xff\x34\x72\xe4\xc8\xaa\xaa\xaa\ \x58\x2c\x96\xaf\x17\x12\x50\xc2\xbf\x18\x01\xc1\x9d\xcf\x9b\x37\ \xaf\xb3\xb3\x63\x6c\xdd\x18\x69\xc6\x5c\x9c\x55\xc6\x15\x11\x5a\ \x18\xb7\x40\xac\x44\x11\x59\x2e\x51\x04\x9e\x93\x2b\x1d\x99\x00\ \xf4\xd8\xee\x2a\xc7\xe1\x2a\xbc\xa2\xfc\x89\x89\x14\xf2\x78\x66\ \xbe\xe5\x18\x9f\xf4\x89\xa9\x98\xcf\x6d\x5d\xd3\xa0\x88\x1b\x8b\ \xcc\x39\xbe\x43\x17\x2f\x85\x2b\x7c\x90\x74\xd2\x9e\xdc\x70\xad\ \x84\x1e\x21\x26\xdc\x3f\xa7\xef\xd9\x2c\xd7\x8b\xb1\x29\x2c\x50\ \x22\x1c\x42\x70\x1c\x87\x40\xa0\xc6\xb8\x7c\x26\x26\xd4\x52\x0c\ \x14\x8d\xc6\xa0\x79\xb1\x58\x1c\x01\x01\x98\x40\x9a\x39\xcf\x66\ \xb2\xb1\x78\x4c\x98\x6e\x24\x02\xe1\x61\x9c\x81\x81\x7e\xa8\x21\ \x2e\xd2\x8d\x32\xcb\x9b\x7a\xd6\x63\xc3\x3f\xbf\x55\x31\xc6\xbc\ \x9d\x82\x26\x16\xd8\xc9\x78\x74\xdf\xf8\x5a\x14\x22\xfa\x73\xd2\ \x20\x85\x1b\x54\xd8\x53\x22\x0b\x5f\x81\x13\xd8\x42\xe3\x90\x43\ \xa2\xaf\x4a\x8c\x5a\x15\xf1\xa3\xb8\xfd\x4c\x06\x3b\xc1\x31\xc5\ \xa3\xb1\x8e\xce\x8e\x83\x07\x0e\x1f\x3a\x74\xa0\xa1\xe1\x68\x47\ \x57\x27\x76\x84\xd2\xa5\xfa\x52\xc0\x07\x03\xfd\x29\x04\xc1\x9a\ \xaa\x9a\xd1\x63\xea\x26\x4e\x9a\x52\x5e\x51\x81\x01\x93\xc9\x5e\ \xc8\x8b\x01\x99\x68\xad\xe0\xf4\xbc\xb5\x50\x08\x2b\x13\xf2\x73\ \xb3\x58\xc9\xe2\xaf\xd0\x45\x28\xa6\xe3\xb8\xb4\x8f\xb6\x48\x5c\ \xa0\xd4\x54\x6c\xc1\x15\x79\x9e\x0b\xda\x6c\xc6\xd4\xd0\x9c\x51\ \x30\x8b\x6a\x3b\x95\xa6\xcb\xd4\x4d\xe2\x96\xb8\x7f\x31\x82\xa3\ \x05\x0a\x25\x90\x53\x3a\x0d\xe3\xa2\x5c\x57\x1f\x22\xc5\xa1\x55\ \x32\x2d\x74\x30\x52\x51\x51\x01\xf4\xf8\xda\x6b\xaf\xbe\xf8\xe2\ \x0b\xcd\x6d\x2d\xed\x1d\x6d\xc5\x65\xe5\x23\xaa\x6b\x26\x4c\x9d\ \x82\x71\xa6\x94\x95\x97\x57\x8e\x80\x42\x75\x77\x75\xb5\x34\x35\ \x1e\x68\x3c\xba\x63\xcf\x2e\x9e\x4e\x8f\xae\x1d\x39\x73\xfa\xcc\ \x13\xe7\x2f\xa8\xae\x1d\x99\xec\xed\x49\xa5\xfa\xa0\x7d\x8e\xca\ \x09\x5c\x65\x2a\x52\x36\x8e\x14\x89\x30\x37\xd7\x51\x32\x11\x66\ \xab\xa0\x22\xb3\xb5\x84\xbb\x24\x04\xf2\x36\x9c\x29\x68\xe5\x7a\ \x6a\xaa\xf5\x53\x23\xa4\xa8\xf2\xd0\x8e\xd6\x2a\x6d\x62\x61\x89\ \x18\x5b\x23\xd1\xe0\xc1\x42\x77\x84\x38\x18\xc3\x3a\x8c\x11\x1b\ \x61\x3b\x84\x9b\x68\x04\x78\xb1\x8e\x8e\xf6\xaf\x7e\xe5\x4b\xcf\ \x3e\xfb\x14\x74\x07\xa2\x58\x74\xe6\xb9\x93\x26\x4c\x82\x58\x71\ \xc3\x47\xde\x78\x03\xb8\xf4\x28\xe7\x2d\x6d\x2d\xa5\x95\x55\x13\ \xa6\x4e\x9d\x3e\x7b\xce\x29\x95\xe7\xf4\x25\x93\xcd\x4d\x8d\xcd\ \x8d\x0d\xaf\xec\xd9\xbd\x65\xeb\x0f\xa7\x4f\x9e\x72\xde\xf9\x17\ \x1e\x37\x65\x5a\x67\x67\x67\x26\x3d\x18\x11\x62\x0a\x45\x31\xeb\ \xe6\x2c\x83\x0c\x1a\x63\xf8\x10\x7f\xcc\x0b\x98\x98\xc6\x41\x5c\ \x7a\x02\x21\x2f\x2e\xdd\x9a\x25\x14\x12\x07\x16\xb3\x62\x44\x23\ \x45\xc9\x69\x05\x5b\x00\x11\x8c\xde\x61\xa5\xb4\xa4\xb4\x3f\xd5\ \x0f\xd1\x7c\xfb\xdb\xdf\x00\x2a\x5d\xb1\x62\xd5\xc2\x85\x67\x8c\ \x1a\x3d\x06\xa6\x94\xc8\x4b\x88\x87\x1d\x75\xe9\x0a\x80\xb9\xeb\ \x8f\x1c\x3e\xf0\xe7\x7d\x87\xde\x3a\xf4\xc8\x0f\x9f\xaf\x1c\x5d\ \x37\x67\xc1\xa9\x93\xa7\x4e\x2b\x28\x2c\x9e\x38\x65\x5a\x57\x67\ \xc7\x6b\x7b\x76\x6f\xda\xbc\x71\xf6\x8c\x99\x9f\x58\x7d\x5d\x79\ \xc5\x88\x8e\xf6\x76\x89\x38\x88\x9c\xb1\xb0\x8e\x46\xd3\xe4\x9c\ \xfd\xd9\xa9\x95\x95\x9a\xec\xd4\x24\x08\xdc\x8f\x83\xb8\xf7\xcf\ \xc6\x41\x64\x5f\x42\xf7\x70\x9b\x59\xbd\x18\xd1\xa4\xf5\x42\xbe\ \x99\xf4\xcb\x50\x25\x52\x77\x62\x10\x13\xf6\x85\x76\x94\x97\x95\ \xbf\xf2\xca\x8e\x1b\x3f\xb3\x0e\xc8\xe8\xf6\xdb\xef\x3d\xe5\xd4\ \xd3\x85\xbc\x06\xfa\x87\x86\x06\xf1\x5f\x5f\x5f\x52\xe7\x05\x52\ \xc4\x91\xc8\xd8\xf1\x13\xa6\x4c\x9d\x06\x87\xd5\xd2\xdc\xb8\x63\ \xc7\xcf\x5e\xdc\xf2\xfd\x97\x12\xf9\x1f\x59\xb1\xaa\xbc\xbc\x02\ \x17\x7f\xca\xa2\xb3\xe7\x7e\xe8\xb4\xed\xff\xfd\xdc\xf5\x37\x5c\ \xbb\xf2\xc2\x95\xe7\x2f\x5b\xd1\xdd\xdd\x8d\x13\x09\x24\x41\x89\ \x8e\x36\x37\xd7\xe4\xf3\xc2\xc2\x28\xdb\x08\x26\xfb\xcc\x00\x67\ \xe5\x54\xb4\xf7\xd5\x08\x52\x8b\xc2\x09\xe0\x20\x66\x45\x31\x65\ \x50\x24\x1d\x23\x1a\xa3\x38\x66\x1f\x68\x0d\x09\x08\x7b\x42\x40\ \xd0\x85\xca\xca\xca\xea\xea\x9a\x27\xfe\xe3\x5b\x55\x5b\x7f\xb8\ \xee\x86\x0d\x4b\x96\x5c\x00\xaf\x98\xec\xed\x6d\x6d\x6d\x41\xe0\ \x76\x29\xf1\x45\xa8\x62\xda\x73\xca\xcf\xa1\x41\x44\xad\x14\xae\ \x2f\xbf\xa0\x60\xc5\xca\x4b\x2f\x58\x76\xd1\xb3\xcf\x7c\xef\xf1\ \x07\xef\x9e\x71\xd2\x29\x67\x2e\x5d\x06\x95\xc1\xe9\x96\x5e\xf4\ \xd1\x96\xc6\x86\xef\x7f\xf7\xf1\x5d\xbf\xdc\x79\xcb\xad\x77\xba\ \x91\xbc\xbe\x64\x2f\xec\xda\x67\x2f\x8e\x6d\x5d\xcc\x78\x66\x27\ \x14\xc6\x4c\xaa\xc1\x1c\xe6\xf8\xfd\x8f\x25\x0d\xc7\xb8\x34\xa5\ \x66\x7a\x55\x05\xf5\xb4\xb5\x0c\xe9\x65\x50\x2f\x03\x72\x81\x50\ \x52\xa9\x14\x3e\x7b\x7b\xc5\xe5\x1e\x3c\x78\xf0\x9a\x6b\xae\x19\ \x3f\x6e\xe2\x7f\x7e\xef\xb9\x25\x4b\xce\x47\x84\xea\xee\xea\x16\ \xcf\x01\xbe\x1a\x11\x1b\x76\x41\x0e\x8f\x00\x8c\xe1\x28\x18\xc2\ \x14\x96\x28\xce\xda\xd9\xde\x9e\xec\x4b\x5e\x7a\xf9\x95\x0f\x7f\ \xf9\x9b\xbc\xbd\xe5\x9b\x5f\xb8\x57\xe8\x58\x2c\x0e\x97\x94\x28\ \x28\x58\xb3\xfe\x73\xac\xa2\x72\xed\xda\x2b\x1b\x8f\xd6\x97\x57\ \x54\x22\x36\x48\xc4\x64\x82\x34\xe3\x0a\xec\xf8\xc6\xb7\xa5\xc3\ \xb8\xe7\x7c\x98\x45\x0c\x71\x29\x02\xce\xfc\x96\x29\x75\x31\xb8\ \x40\x38\x64\x5f\x01\xe9\x18\xa1\x90\x5c\xe8\x93\x56\x20\x23\xdc\ \x5f\x5f\x5f\xdf\x93\x4f\x3e\xb9\x60\xc1\xc9\x67\x9e\x75\x36\xbe\ \xb6\xb5\xb5\x09\xb9\x44\x22\xec\x9d\x2c\x52\x94\x2e\x52\xe5\xc2\ \xa2\xa2\xfb\x1f\xfc\xca\x05\x67\x9c\xf9\xf0\xdd\x1b\x9b\x9b\x9b\ \xf3\x0a\x8a\xc0\xd1\x34\x35\x36\x9e\xbb\x7c\xe5\x89\x8b\xcf\xfb\ \xd4\xa7\xaf\xdb\xf9\xf2\x4b\x95\x23\xaa\x70\x75\xec\xbd\x5c\x74\ \xb2\x1a\x32\x31\xc2\x8a\x3a\x05\x63\x86\xb2\x95\x90\x2f\x4b\x77\ \x6e\x5c\x35\xe0\xe2\x4b\x2f\xbd\xf4\xd0\x43\x0f\x3d\xf0\xc0\x83\ \x33\x67\xce\x78\xea\xe9\x2d\xa4\x35\xf2\x41\x65\xd5\x43\xce\xaa\ \x38\x2b\xbe\x00\xb0\xb8\x12\xaa\x70\x7f\xb6\x9d\x75\xb2\xae\x70\ \x9f\xb1\x58\x14\x67\x69\x6a\x38\x7a\xf9\x15\xab\xc7\x8c\x19\x7b\ \xcf\x17\x3f\x7f\xfe\x95\xd7\x8e\x1c\x3d\xa6\x1f\x01\xae\xb1\x69\ \xda\xac\x13\x46\x8d\x1d\xb7\xf9\x81\xbb\xff\xad\x2f\x75\xee\xd2\ \xf3\x5b\x9a\x9b\x61\xe0\xef\x68\x7c\x01\xf4\x61\x3d\x84\x99\x8c\ \x07\xc7\x85\x66\x19\xfd\x2c\x0f\x75\x14\x50\x14\x7e\x8a\x7b\xbe\ \xdb\x44\xf4\x9c\x02\x12\xc7\xc8\xc5\x38\x20\x32\x46\xe8\xcb\x92\ \x25\x4b\xf0\xad\xa3\xa3\x43\x6a\x0d\x9d\x91\x20\x3c\x3d\x03\x0d\ \x58\xc8\xa1\x1a\x12\xc1\x56\x6a\x91\xfe\x9b\xa0\x02\x31\xc5\x9b\ \x9b\x1a\x4e\x5f\x74\x56\x65\xd5\x88\x75\xeb\xd7\x5d\xb8\x66\x5d\ \xed\xa8\x51\x50\xd7\xce\x8e\x8e\xa2\xa2\xe2\x35\x37\x6d\x7c\xf0\ \xde\x4d\x91\x58\x64\xd1\x59\x8b\xdb\xdb\x5a\x81\x92\xb8\x18\xe0\ \xed\x8e\x2f\xd1\xa2\x2f\x0f\x71\xd5\xff\x5c\xfe\xe5\x12\xcd\x19\ \x03\xce\xa5\x41\x83\xfe\xc5\x18\x17\x2d\x29\xbd\x60\xbd\xab\xab\ \x6b\xc1\x82\x05\x23\x46\x8c\xc0\x0e\x42\xa0\xfe\x01\xff\xea\x05\ \x97\x0f\xdd\x6c\x6d\x69\x9e\x3e\x63\xd6\xfd\x9b\xef\x7b\xf6\xeb\ \x0f\x35\x1e\x3d\x0a\x1c\x04\x22\xab\xa7\xb7\x37\x16\xcb\xfb\xc4\ \x86\xdb\x3e\xff\xa5\x07\xf6\xec\xfe\x05\xe2\x5d\x26\xf3\x2e\xdb\ \x1a\x79\x72\x97\xe4\xcd\x7d\x4e\x9a\x1b\x0d\xb2\x5d\x4f\xc0\x07\ \x05\x96\xd6\xd6\x56\xf8\x69\x48\x46\xa0\x21\x5b\xab\x79\x20\x80\ \x70\x0f\x6d\x84\x10\x9c\xab\xc9\x3e\x6e\xc5\x8d\x78\x5e\xbc\xb3\ \xb3\xfd\x84\x79\x27\xdd\x7b\xfb\xe6\x2d\x8f\x7d\xad\xaf\xbf\x9f\ \xec\x35\x99\x4c\x22\xea\x5d\xf1\xe9\x1b\xef\xb9\xff\xee\x86\xa3\ \x47\xf2\xf3\x0b\xb9\xc0\xa8\xef\x78\x7c\x8b\xea\x77\xec\x8c\x55\ \x01\x06\x91\x39\x51\x8a\xef\xfa\x92\x55\x22\x09\xc3\x1a\x14\x50\ \x22\xb3\x8e\x1d\x08\x19\xc8\x01\xb9\xa7\x03\xe6\x89\xb8\x06\xab\ \xdb\x1b\x7c\x51\x42\x78\x10\xef\x01\xaa\x2f\xb8\xb8\x78\x2c\xde\ \xde\xd6\x72\xca\xc2\x45\x6b\xaf\xb8\xea\xf9\x27\xbe\x11\x4b\x14\ \xe0\xc9\x71\x51\x6e\xe8\xa9\x1c\x51\xbd\x60\xc9\xb2\x4d\x9b\x6e\ \x06\xfd\x42\x3b\xbf\xd3\xf1\xc5\x3e\x8e\xa5\x36\xd6\x35\x0a\x98\ \x26\xff\xd8\x6a\x05\x15\x10\xb2\x83\x46\xc0\x9b\x40\x04\x7d\xa1\ \xc5\x6c\x0c\xfc\x8a\x18\x0f\x3a\x84\x92\x0f\xdf\x09\xb5\xc2\xb2\ \xc0\x85\x0c\xab\xda\xc1\x75\x5c\x0f\xfc\x51\x53\x63\xc3\xc5\xab\ \x3e\x36\x6b\x6c\xdd\x8b\x5b\xb7\x14\x96\x94\x41\xb7\x1d\x37\xd2\ \xde\xde\x3e\xf7\xe4\x53\xe3\x55\x35\xf7\xdd\x7b\x47\x55\x75\xb5\ \x0c\xfc\x8c\x31\xfe\x8e\xc6\xf7\x5f\x9b\x27\x1e\x95\xac\x12\xf5\ \xce\x88\x46\x92\x79\x28\x78\x9f\x65\xcb\x96\xed\xda\xb5\x0b\xf1\ \xd5\x30\x8a\x81\xc4\x3d\x40\x44\xc1\x65\x03\x25\x9e\x70\xc2\x09\ \xfb\xf7\xef\x8b\xc6\xa2\x84\x48\x38\x33\xd8\x9e\x6b\x82\xc6\x67\ \x68\x61\x0a\x15\x67\x57\xd9\x31\xf3\x88\x1d\x4d\xce\x3b\xad\x6d\ \x2d\x37\x7e\xf6\xd6\xcb\x3f\x76\xc9\xbe\x09\x93\xc7\x4f\x9c\x84\ \x18\x1f\x8b\x46\xdb\x5a\x5a\x96\x5f\x76\xc5\x57\xee\xbc\xe5\x47\ \x5b\x9e\x3d\x67\xf1\x79\x00\xa5\x88\x12\x74\x91\xc3\x55\xad\x2c\ \x22\x92\xe9\xba\x98\xb8\x3b\x85\x5d\x1d\xae\x2a\x59\x16\x69\x4f\ \xc3\xf1\x82\xc2\x42\x28\x02\xa2\xe6\xba\x75\xeb\xd6\xae\x5d\x0b\ \xcf\xa3\x80\x3c\xf7\xee\x0a\x51\x2e\xcc\x0f\xe3\x58\xd4\x8e\x70\ \xe0\x9e\x3d\x7b\xa0\x4d\x06\xfe\x84\x92\x49\x3b\x51\xb4\x93\x4b\ \x47\x66\x76\xac\xa4\xb8\x8c\xb9\x11\x65\x2b\x9a\xfe\xd2\xa9\x09\ \x28\xa4\x74\x71\x49\xc1\x83\xf7\x7d\x71\xc3\xc6\x5b\xea\xd6\x5c\ \x4f\x88\x16\x7e\x34\xd5\x97\xbc\xec\xba\x1b\x1e\xf9\xda\x97\xe6\ \x9f\xb4\x60\xd4\xa8\xd1\x82\x4b\x62\x3a\xd3\x08\x61\x3f\x35\x9e\ \x57\x63\x16\xdf\x01\xfe\x06\x07\x06\xfb\x52\x7d\x9e\x0d\xca\x7b\ \x96\x75\x31\x3a\xb9\x1b\x81\xdb\x9b\x37\x6f\xfe\x8f\x7f\xb4\x65\ \xd3\xa6\x4d\x08\x4c\x35\x35\x35\xe5\xe5\xe5\x64\x32\xe1\x92\x86\ \x25\x1a\x87\x48\xc5\x7d\xfb\xf6\x8d\x1a\x35\x6a\xef\xde\x7d\xab\ \xd7\x7c\x12\x8e\x4a\xa5\x94\x1a\x0b\x89\xd8\x29\x98\x50\x6e\xd0\ \xac\x4a\x97\x08\xb8\x64\xb3\x08\x58\x38\x6a\xdb\xf6\x6d\x8d\x0d\ \xf5\x28\x41\x39\x8e\x55\x36\x91\x24\x2a\x05\x65\xdc\x3c\x54\x95\ \x27\x7b\x76\x6e\xff\x9f\x45\x4b\x97\xa7\x7a\xbb\x5d\x71\xe0\x40\ \x65\x55\xf5\xec\xd3\xce\xb8\xf9\x73\x1b\xce\x3e\x77\x49\x7b\x5b\ \x9b\x82\x20\x41\x4e\x5a\x17\x7e\xa4\xf8\x70\xba\xb8\xf0\x5c\x62\ \xbd\xa4\xac\x6c\xea\x94\x69\xd3\xa6\x4d\x47\xa8\x31\x56\xa7\x70\ \x10\x61\x02\x22\x3e\xa1\x02\xb7\xdd\x76\xe7\x5b\x6f\xbd\xd9\xd0\ \x50\x8f\x54\x6c\x98\x82\xb5\x7a\xba\x46\x52\xa4\x5f\x93\x27\x1f\ \x5f\x5d\x5d\xfb\xf1\x8f\x8f\x1a\x31\xa2\x0a\x0e\x1c\x48\x89\x00\ \xbf\xd0\x5e\xad\x0a\x54\x4e\x8c\xa8\x94\xd1\x55\x55\x06\x9c\x37\ \x1a\xed\xed\xed\xb9\xf9\x73\xeb\x17\x2c\x98\x7f\xfc\x8c\xe3\x23\ \xd1\x88\xa9\xc0\x70\x53\x0a\x54\x58\x4c\x48\xf3\xce\xbb\x6e\xbf\ \xe3\x9e\xfb\x60\x4d\x25\x45\x85\x50\x22\x9c\x0b\x39\xca\x69\x67\ \x9d\x7b\xef\xb6\xad\xa7\xf4\xb6\xce\x9b\xf7\x01\x22\x18\x02\x26\ \x66\x05\x6b\x31\x98\x34\x05\x55\x0b\x83\xc3\xfd\xc6\xd7\xff\x7d\ \xe1\xc2\xb3\x57\xac\x58\x09\xdf\xcf\x08\x27\x29\x1f\x64\x71\x83\ \x78\x3e\x91\x68\x14\x55\xad\x59\x1f\xf8\x00\x71\x8e\x8a\x1e\x0e\ \x35\x54\x58\x02\x62\xa6\xad\x82\x80\x81\xcc\x3c\xdc\x10\xfd\x18\ \x2c\x48\x69\xfe\x46\x20\x03\xd0\x20\x4f\x3e\xf9\xdd\xc5\x8b\xcf\ \x5e\xbd\x7a\xcd\xdb\xac\x2f\x21\x3b\xfb\xfa\x33\x3f\x58\x79\xf5\ \xda\x54\x4f\x57\x56\xa2\x7a\x30\xb5\xff\xf4\xcf\x9f\xd8\xfb\xbb\ \x5f\xad\xbb\xe1\x5f\xff\x8a\x82\xd5\xf2\xe5\xcb\xd7\xac\xb9\xf6\ \xac\xb3\xce\x05\xb0\x80\x6f\xa1\x6b\x35\x75\x31\x26\xd3\x48\x26\ \x79\x02\x2e\xc2\x53\x2a\x6b\xcc\x27\x6c\xc3\x54\x67\x33\x2c\x38\ \xb7\xea\x07\xe2\x4a\x65\xbe\x4e\xec\x3a\xd1\x76\xfa\x2b\x93\xd5\ \x6b\x47\x7d\x3a\xca\xc6\x1c\xc9\x3d\x76\x74\xb4\x2d\x5f\x7e\xb9\ \xa1\x0d\x0c\x6a\xd7\xcf\x83\x07\xfa\x5a\x56\x5d\x7a\xe9\x53\xcf\ \x3e\x77\x60\xef\x9f\xc6\x8d\x9f\x80\x4a\x28\x4e\x0a\x7e\x76\xc6\ \x07\x67\xef\xfa\xf9\xf6\xef\x3f\xf3\xf4\x8a\x8b\x56\x2a\xd4\xea\ \x3f\x4a\x3b\x6f\x4e\xac\x1e\x39\x10\x22\xd4\x41\x0a\x4f\x9a\x34\ \xe1\xad\xc3\x6f\x1e\x7f\xfc\xcc\xde\xde\x24\x27\x13\x53\x4f\x98\ \xc9\x28\xe6\xe8\xfe\x9a\x08\x8c\xc2\xd5\x4e\x80\xf9\xe5\x63\x1c\ \x3c\xf3\x51\x51\xde\x6d\x38\x06\xa3\x29\xff\xa1\xb9\x6e\xe9\x87\ \x1c\xf5\xc9\x55\x69\x41\xbb\xe3\x0c\x00\x96\xcc\xe0\x22\x54\xf3\ \x45\xc9\x04\x9f\xf0\xf7\x01\xeb\xa0\x15\x02\x5c\xd7\x5c\x7d\xe5\ \x1d\x0f\x3d\x3c\xf9\x53\x1b\x06\x92\x02\x85\x41\x46\x7d\x3d\x3d\ \x4b\x57\x7e\xf4\x89\xef\x3e\x7a\xd6\xd9\xe7\x0c\xd7\x1c\x44\xec\ \x15\x65\x8b\xa2\x84\x27\x59\x1d\x7a\x24\x00\x53\xd2\xc1\x4b\xa0\ \xc0\xb9\xbf\xf4\x1c\x28\x45\x0c\x53\x15\x08\x71\x9b\x2c\xcc\xe4\ \xfb\x19\x51\x7f\x95\xce\x5f\x9a\xd0\x05\x12\x80\xd2\xcc\xa1\x43\ \x87\xe4\x55\x0a\x8b\x43\x11\xe9\x85\x17\x5e\x78\xe4\x91\x47\x48\ \x83\x94\x62\x5a\x35\x02\x5a\x20\xc4\xde\xe6\xfa\xe6\xc6\xa3\xc2\ \x6d\x4b\x3a\x1e\xb4\xdc\x98\xb1\x63\xf3\x2b\xaa\x2e\xb9\xf8\xe2\ \xd9\x73\xe6\x00\xa7\x85\x95\x88\xaa\x2f\xd8\x0e\x15\x43\x75\xeb\ \xfa\xeb\xaf\xc7\x38\x26\x0f\xa7\xdd\x3d\xca\x55\x03\x02\x1e\x2e\ \xe9\xe6\x2c\xf5\xea\xd0\xe0\xf2\x00\xa6\x61\x9e\x86\x31\xaf\xf9\ \x22\xa0\x7d\x2a\x16\x05\xc6\x97\xa8\x7d\xa8\xae\xae\x0e\x29\x15\ \x5d\x7d\x63\x63\xe3\xad\xb7\xde\x3a\x7f\xfe\x7c\xdc\x80\x20\x8a\ \xd0\xbc\x24\x8b\x94\x58\x62\x7a\xc1\x1d\x0a\x7e\x6e\x44\xe5\xce\ \x6d\x5b\x57\x5e\x75\x4d\x7f\x6f\x97\x70\xff\x6e\xa4\xaf\xb7\xf7\ \x8c\x8f\x9c\xf7\xfc\x63\x0f\xff\xcb\x75\xd7\x11\xf1\x10\x96\x11\ \xd1\x38\x18\xf3\xbe\xfb\xee\x7b\xf4\xd1\x47\x6f\xb8\xe1\x06\x78\ \x95\xa0\xae\x91\xc7\x30\xb5\xec\x61\xd1\x66\x68\x81\x43\xcc\xea\ \x4a\x88\x07\x42\x9d\xdc\xf8\x34\x37\x8c\x0d\xfd\x20\x9e\x55\x4c\ \xdc\x09\xdc\x02\x6e\xfe\xf0\xe1\xc3\xa8\x85\x4c\x9e\x3c\x99\x18\ \x22\x22\x0f\x48\x52\xb4\x82\x3d\xb1\x1b\x0c\xf0\xd4\xd3\x4e\xeb\ \x6b\xad\x6f\x6b\x69\x86\x0c\x85\xb5\x4a\xbd\x18\x37\x61\x62\xf9\ \xc8\xba\x5d\x3b\x77\x96\x96\x95\x11\x71\x6e\x16\xe3\x28\x69\xb9\ \xf8\xe2\x8b\x8f\x1c\x39\x62\xf5\xee\x71\xfb\x9a\x54\x36\xaf\xe2\ \x76\xe0\x46\x5c\x53\xdb\xe2\x36\x6e\xc6\x93\xfb\xf3\xc1\x8e\xb6\ \x36\x14\x61\x5c\x4f\xae\xae\x9d\xf8\x38\x5e\xc2\x23\xaa\xf9\x66\ \x1f\xc1\xb8\xda\xe3\x07\x13\x25\x45\xd4\x09\xdf\xdc\xd4\xd4\x84\ \xfb\x24\x67\x94\xa3\xf8\xe7\x71\x7b\xd9\xb2\x8a\xca\x0f\xcd\x9b\ \xf3\xeb\x97\x5f\x2c\x40\xbc\x47\x0a\x29\x3b\x0c\x06\xfb\xfb\x3f\ \xb4\xe8\xec\x1f\x6c\xd9\xe2\x0a\xf9\xc6\x6c\xbd\xa3\x85\x84\x4e\ \x43\x91\xb3\x33\x4d\x1c\x96\x7c\xb8\x4a\x56\x15\x76\xb2\xfe\x71\ \xe9\xa2\x20\x02\x59\x58\x26\xa4\x20\xb6\x43\x3a\x07\x0f\x76\x36\ \x37\x77\xca\x94\x47\x57\x00\xa4\x83\xe7\x7a\x5d\xd5\x46\x74\x91\ \xc4\x30\x4d\x2a\x08\x30\x6f\x7c\xc7\x09\xfc\x23\x22\x41\xb8\x12\ \x54\x78\x90\xee\xd8\x58\x7c\x38\xfa\x11\x35\xa2\x85\x0b\x17\x36\ \xec\x7f\x1d\xcc\xb7\x81\xef\x40\x61\xd3\xa6\xcf\xe8\xcb\x38\xff\ \xfb\xea\xaf\x4b\xcb\x4a\xa1\x29\x46\x46\xb6\x3e\x92\x26\xda\x55\ \x3f\xc7\x54\x3d\x28\xbd\xa1\x64\x95\xcc\x2d\x70\x6e\x1c\xd9\xd3\ \x33\xd0\xdb\x8b\x42\x85\x23\xf5\xd9\xcd\x8b\x47\x0f\x1c\xec\x44\ \x0e\x5b\x5e\xe6\xa6\xfa\x87\x4c\x80\x7b\xf7\x18\x18\x6e\x8a\xba\ \xb8\x07\xf8\x69\x13\x3d\x02\x8a\x63\xc2\x13\x21\xf8\xb1\x63\xc7\ \x1f\x37\x6e\xcc\x1b\xbf\xfd\x0d\x58\x5a\x95\x36\xc9\x92\xd2\x89\ \xa7\x9e\xfe\x93\x9f\xfe\x14\xdd\x04\x64\x8f\x46\x40\x36\x0b\x48\ \x80\xdb\x8c\xe9\xd3\x20\x29\x13\x8a\x11\x9c\xf9\x54\x4b\xfc\x84\ \xba\x55\x32\x39\x74\xe0\x20\xda\xa8\x62\xe0\xdb\xf3\x0b\xe2\xa8\ \xa4\x23\xff\x28\x29\x76\x07\x87\x78\x7a\x28\xc3\x15\xe1\x2d\x93\ \x07\xd7\xf1\xca\x08\x42\xcd\x85\x50\x55\xde\x26\x8d\x49\x37\xf0\ \x09\xd2\x53\x04\x2d\xf1\x97\xbb\xfe\xea\xb6\xa4\x49\x7c\x25\x39\ \x73\xdd\x4c\xb7\x1d\x06\x44\x46\xde\x04\xb5\xa4\x13\xe7\xce\xd9\ \xfa\xf2\xee\x53\x3e\xbc\x88\x52\x6e\xb8\x6a\x64\x67\x1f\x9c\x33\ \xf7\x5b\x3b\x5e\x68\x6b\x6d\x29\x2a\x2e\x21\xa1\x98\x41\x28\xae\ \x9b\xf6\x5e\xaf\x80\x6c\x05\x74\xa2\xc9\x5c\xbb\x17\xc6\x36\x78\ \x24\xd5\x23\x6b\x8b\x8b\x8b\xf2\x98\x03\x88\x91\xea\xea\xec\x4c\ \xf6\x75\x17\x15\xb9\x99\x2c\xd0\x86\x33\x38\x24\xbc\x43\x3c\x1e\ \x31\x05\x25\x53\x2d\x80\xc0\xb8\xcb\x7c\x91\x40\x91\x9f\xd2\xe0\ \x98\xd5\x5e\xe1\x07\x09\x96\x9e\xfb\x40\x83\x51\x2b\x5b\x52\x36\ \xfa\x87\xab\x9e\x33\x77\xee\x40\x57\x7b\x6b\x73\x13\x7a\x0b\xc9\ \xb7\x65\x44\x9b\xea\x88\xea\x31\xe3\x76\xee\xdc\x89\x68\x45\x4d\ \xcf\x36\x44\xb0\x83\x1a\x79\x3e\x85\x6c\x3d\xaa\x4f\x8e\x1f\x38\ \xbd\xed\xa2\x90\x54\xd7\xd6\x96\xa6\xfa\x85\x63\x4e\x24\x22\xf9\ \x09\xd7\x10\xfc\x3c\x9b\x7e\xfd\xf5\x96\xce\xce\x7e\xc8\x48\xfa\ \xa9\x77\xc1\xd0\xe8\x52\x0d\xe0\x0c\xab\x8c\xb9\x54\x62\xe6\xcc\ \x02\x77\x5e\x50\x58\x34\x61\xec\xe8\xbd\x7f\xf8\x1d\xd8\x08\xf1\ \x1c\x04\x98\x77\xd1\x36\x39\xeb\x84\xb9\xdb\x5f\xf8\x39\x8e\x25\ \xce\x4f\xd0\x6c\xfe\xc5\x33\xec\x90\x89\xd1\x05\xb9\xba\x7f\x4a\ \xb7\xf3\xa8\x7f\x4c\xa2\xd5\x6c\x55\x55\x61\x41\x41\xfe\xe0\x20\ \xf4\x05\xd7\xe4\x10\xa1\x09\xb3\x81\x03\x1d\x1a\xea\x7d\xfd\x8d\ \xa3\xaf\xbf\xd1\xdc\xdb\x3b\x68\xc0\xb2\xb4\x38\xee\x7a\x94\x0a\ \x97\xec\x39\x55\x05\xc4\x0f\x6a\xbb\xc2\x44\xde\x9e\x9a\x46\xf7\ \x5d\xba\xad\x41\x36\x58\x87\x22\x94\x95\x95\xa1\x65\x0b\xfd\x5d\ \x58\x01\x20\xc8\xcf\x2f\x58\x76\xc1\x05\x87\xde\xf8\x83\x23\xdb\ \x8d\x5c\x59\x68\x03\x4a\xfc\xe0\xec\x39\x2d\x1d\x9d\x92\xe4\x2f\ \x82\x1e\x01\x28\x9b\x82\x68\xce\xbe\x0c\x3b\x74\x90\x36\x45\x0d\ \x63\xe1\xfa\x82\xbc\x6a\xad\x8e\xc7\xdd\xca\x8a\xa2\xfa\xfa\x3e\ \x40\x73\xd5\x3c\xaa\x3b\xf6\xf3\xf3\xa3\xf9\xf9\xbc\xab\xb3\xab\ \xb9\x39\x39\xf3\xf8\x9a\xca\xca\x02\x9c\xd7\x58\xab\xd7\x38\xa0\ \x9c\x39\x53\xc1\x52\xb5\xb2\xa9\x35\x63\x6b\xd2\xad\x0e\xdb\x4c\ \x12\xc8\x93\x01\xea\xb6\x6d\xdb\x26\x3c\x0b\x73\x90\xb9\xa1\xfd\ \x58\x58\x0f\x73\xf7\xfd\xfe\x37\xed\xcd\xcd\x95\xe8\x9b\x91\x0e\ \x0e\x3b\xc3\x47\xd4\x4d\x98\x74\xd3\x4d\x37\x9e\x74\xf2\x02\x1c\ \x05\x01\x2d\x5d\xba\x94\xd2\x0b\xe3\xec\x7c\xe7\xb2\x15\x88\x6b\ \xd2\xfe\x18\x6a\x9f\x4e\xf3\xd6\xd6\x24\x9a\xa4\x34\xd1\x4c\x19\ \x95\x90\x43\x2a\x95\xee\xee\xe1\x15\x15\x65\x73\xe7\x8c\xae\x28\ \xcf\xc7\x23\x71\xdd\x77\x29\x8c\x1d\xb3\xf3\x06\xf7\x06\xae\x1e\ \x81\xfc\xb1\x27\xbe\xd3\x8e\xc7\x34\x6e\xda\x40\x61\x65\xba\xa4\ \x26\x53\x5a\x73\xe9\xb5\xeb\xf2\x25\xa8\x11\xd2\x62\x2e\xa0\x77\ \x6f\x4f\xcf\xf9\x17\xae\x98\xbb\xf0\xcc\xa1\x68\x22\x51\x36\xe2\ \xc9\xa7\x9e\x86\xa1\xd9\xe6\x19\x3e\x5d\x10\xbe\x6a\xe2\x82\x33\ \xaf\x63\x4f\x35\xed\xc5\x62\x91\xa6\xa6\x64\x7f\x7f\x5f\x49\x49\ \x04\x82\x86\x6f\x96\x40\x4c\x3c\x78\x54\x16\x12\xf9\xc5\xc7\xd5\ \x95\x95\x95\x26\xd4\x73\x10\x86\x2f\xac\xcf\x0d\x67\xcf\x9e\xc7\ \x36\xf9\x9b\x69\x42\xd5\x78\x8c\xfc\xf8\x30\x5a\x13\x58\xa0\x35\ \x1f\xbf\xe2\x8a\xb9\xf3\xe6\xfe\xd7\xb3\xcf\xd7\x5d\x74\xd9\xc2\ \xe5\x2b\x7a\x3a\x3b\x71\xb5\x02\xe2\x0f\x0d\x0a\x6e\xde\x95\x1a\ \x25\x0b\x50\x79\x89\xc4\xe9\x67\x2c\x2a\x2b\x2d\xfd\xfd\x6f\x5f\ \x3b\x79\xfe\x89\xb5\xb5\xb5\xa0\xdb\x4d\xba\x1b\x90\x91\x2d\x07\ \xba\x60\xd5\x44\x12\xf0\xb2\xf4\x10\x70\xec\x91\xfa\x0e\x3c\x12\ \x74\x6d\xf4\xf7\x67\x52\xa9\x8c\x71\x0a\x40\x5e\xb3\x66\xd4\x94\ \x97\x25\x80\x18\x29\x1e\xdb\x21\x39\x94\x5a\x38\x26\x6e\x1c\xa3\ \x10\x1d\x30\xb1\x9c\x56\x66\x14\x0a\x64\x39\xd8\xbf\x75\xd7\xae\ \x79\xf1\x99\xef\x7c\xfb\xab\x0f\xc5\xe3\xb1\x21\xf4\x3f\x48\x32\ \x30\x22\xc5\x13\xd1\xa9\x05\x76\xef\xe9\xee\x02\x9d\xfa\xe2\xf6\ \x6d\xd3\xa6\x4e\x15\x33\x01\x64\xbb\x17\x7d\xfa\x05\x94\xf5\xe7\ \x14\x26\xcc\x2b\xf2\xcc\x61\x5e\x67\x95\x80\xd1\x47\x1b\xba\x3b\ \xbb\x52\x28\x2c\x33\x37\xbf\x12\x96\x5d\x51\xd1\xdb\x2b\x48\x12\ \x78\x6b\x64\x8e\x10\x32\x4e\x01\x24\x41\xf5\x67\xa6\x8a\x47\xa6\ \x7a\xc1\xcd\x8a\x49\x7e\x11\xef\xda\xda\xb2\x03\x03\x9c\xd8\x71\ \xff\x6e\x8a\x36\xcc\x69\x62\xa6\x1d\xc7\x84\x64\xdc\x3a\x9a\x60\ \x8a\x4b\x4a\x6f\xbf\x7d\x53\x62\xa0\xe7\xa1\xbb\x6e\xc3\x0f\x20\ \x88\xd1\xe1\x16\x91\xc2\x91\x32\x62\xf2\x9f\x8b\xaa\x11\x4c\xb2\ \xfe\xad\x37\x67\xcf\x9e\x0d\x28\x67\x3a\x30\x21\x23\xdb\x07\x65\ \xb3\x46\x57\x54\x5f\x8c\x6e\xe2\x54\xb7\x67\xe3\x20\xa1\x3e\xa5\ \xa5\x89\xf9\xf3\xc6\x25\x12\xc0\x9f\x32\x2e\x44\x19\xc0\xf4\xe1\ \xfa\x96\x44\x1e\x8a\xf1\x80\xa4\xae\xac\x4d\x79\xec\x85\xeb\x3a\ \x26\x5c\xd2\x16\x59\x82\x16\x5f\x70\x19\x90\x4e\x7b\x47\xb6\xa9\ \x25\x33\xb6\xce\x35\xec\xa2\xe9\xeb\x56\xa5\xf3\x2c\x0f\xb4\xb5\ \xd1\x62\xf8\xb3\xac\xb5\x20\x4e\xa1\x1e\x87\x9b\xc4\x34\x9c\x9f\ \xbd\xb0\xfd\x0b\x1b\x6f\xba\xec\x9a\x4f\x9e\x38\xff\x64\x70\xaf\ \x91\x68\xc4\xce\x4e\xe1\x95\xff\xf4\xfa\x1f\x0b\xf3\xf3\xc0\xb2\ \x23\xa6\x51\x12\x47\x23\xe0\xf0\xd0\xe3\xf0\x91\x47\x54\x9b\xcf\ \x91\x5b\xc3\x21\x94\x96\x24\x64\xbb\x2e\x2e\xcb\x41\x53\xd5\x60\ \x9a\x23\x49\x1e\x1c\x4a\x1f\x7a\xb3\xb9\xb2\x32\x66\xaa\x74\x21\ \x26\x5f\xd1\x27\xb8\xb6\xee\x1e\xa1\x2f\x89\x04\x4b\xe4\x31\x50\ \x74\xed\xed\xe9\x92\x22\x8e\x0a\x23\xa1\xeb\x50\x9f\xe8\xb0\x8e\ \xd9\xee\x01\xb4\x5b\xdf\xc8\xae\x91\xd9\x7e\xf8\x8c\x45\x48\xfd\ \xbf\xfc\xd5\xaf\x1d\xda\xb7\xf7\xb2\x2b\xae\x4a\x0a\x52\x99\x47\ \xa4\x1b\xc2\x40\x85\x05\x85\xaf\xee\xd9\x3d\x7d\xfa\xf4\x21\xa9\ \x35\x86\x4b\xcc\xed\x83\xfc\xfe\xc1\x75\x34\xcd\x4f\x94\x2b\xe9\ \x92\x48\x1f\x00\x46\xd1\xcd\x29\xd5\x4e\x80\x0b\xf9\x48\xe0\x8c\ \xa6\x4c\xa9\xaa\xa9\xae\x8c\x89\xca\x17\xcd\x22\xd1\x29\xa9\xec\ \x05\x90\xc7\x8a\x20\x4b\x47\xc1\x6d\xb6\xb6\xa1\xaf\x61\xf0\x48\ \xfd\x50\x6b\x6b\xba\xb8\x48\x76\xb0\x09\x7f\xaf\x40\x17\x19\xb7\ \xfa\xc7\x73\x9b\x58\xf6\x2f\x2d\xb8\x0c\xf8\xdd\xaa\xea\xda\xcd\ \x77\xdd\xd5\xb8\xff\x8f\x77\xdf\xfa\x59\x24\x5c\x08\xf0\xa2\xeb\ \x18\x59\x58\x34\x8a\xfe\x9c\x03\x7b\xf7\xce\x9a\x39\x13\xf9\x00\ \x24\x62\xbb\xa1\xb0\x06\x99\xeb\x31\xd1\xc3\xe1\xaa\x70\xa8\x43\ \x98\x10\x9b\x17\xfe\x5d\xbb\xbc\x25\xa4\xe6\xcc\x9a\x05\x55\x2d\ \xc2\xc8\x8e\xa9\x26\x3b\xae\xb2\x5c\x32\x06\x11\x47\xc0\xec\x38\ \xc5\xc5\x6e\x69\x69\x34\x1e\xe3\xa0\x22\x0a\x0b\xb2\xb2\xbe\xe8\ \xf4\x25\xb3\x5d\x5d\xc2\xc7\x41\x4c\xba\x91\x49\x77\x31\x0d\x23\ \x1a\xd3\x57\x6b\x30\xb4\xdd\x3f\x49\xaa\x04\x42\x1a\x39\xc7\xfa\ \x0d\x9f\x39\x7e\xf2\xf8\xcf\x5e\xbf\xf6\xd0\x81\x03\xb8\x4a\xc8\ \xa0\xa8\xb0\xf0\xcf\xfb\xf6\xa1\x86\x50\x53\x5b\x8b\x1d\xec\x8e\ \x27\x12\x93\x0f\x28\x32\x4f\x0e\x54\xeb\x8c\x6a\xa9\x05\x4d\x2c\ \x40\xa1\xfa\x4b\x27\x5c\x14\x2d\x18\x63\xb9\xa8\x55\xbb\x53\x1b\ \xbb\x96\x97\x47\x1a\x1b\xc0\x36\xa8\x59\x59\x50\xf9\x78\x2c\xd3\ \xd4\x94\xed\xea\x8e\x54\x94\x03\x9c\xb0\x63\x98\x98\x2d\x08\x29\ \xf1\xac\x69\xa1\x35\x05\x6e\x53\xb6\xa3\x36\x5b\x50\x91\xcb\x96\ \x2d\x3f\x6e\xf2\x71\x0f\xde\x79\xdb\x85\xab\x2e\xbb\x64\xd5\xa5\ \xe0\x36\x7e\xb5\x7b\xd7\xe4\x89\x13\xb3\x92\x6c\xb5\xdd\x19\x1d\ \x1e\xd0\xa0\x00\x2e\xd3\x51\xcc\x97\x67\xe4\x24\x6b\x94\x31\xb9\ \x86\x4c\x65\x3a\x51\xf0\x66\x1d\x58\xc4\x10\xa1\x75\xee\xe4\x09\ \x9e\xcf\x95\x73\x3d\x15\x5b\x0b\x50\x5e\x58\xc0\xbb\xbb\xd3\xed\ \x1d\x19\xd7\x8a\x9b\x01\xb7\x63\xbb\x1b\xbb\x9d\xd4\x56\x9c\xf0\ \x82\xbb\x81\x8c\x26\x4c\x9c\x78\xfb\xc6\x8d\x2f\xfd\xe4\xc7\x77\ \xde\x76\x33\xda\xa4\xf6\xff\xe9\x8d\xe9\x33\x66\xf4\x88\xd6\xcf\ \xac\x1d\xe3\x73\x99\x98\x47\x66\x11\xe8\x77\xed\xcc\xd5\xea\x82\ \xb0\x68\x40\x9b\x22\x75\x54\x03\x96\xd8\xce\x75\x7b\x35\x39\x30\ \xb9\x25\xc0\x1c\x46\x23\xc2\x4f\xa3\x9b\x3a\x12\x35\xc1\x8e\xf7\ \x26\x59\xff\x60\x74\xc2\xf8\xc4\xd8\xba\x18\x67\x26\x2f\x77\xc3\ \x26\x66\x34\x28\x20\xa6\x9c\x32\xa2\x7b\x86\x8e\x60\x40\xc4\x72\ \xec\x77\xf3\xcd\x37\x17\xe6\x45\x2f\xf8\xc8\xe2\x81\x54\x1f\x4a\ \xbe\x28\x99\x1a\xfb\x32\x9f\x01\x01\xf9\xf2\x0a\xee\xf5\x49\x1f\ \xd3\xc4\x82\xd3\x86\xfc\xf3\x23\x3c\x6c\xec\x2b\x54\x38\xb2\xd0\ \x0e\x87\xd5\xd9\x99\x8e\x47\x79\xaa\x5f\xcc\x5c\xc9\x8b\x3b\xa8\ \xc7\xc5\xf3\xa2\xe3\xc6\xc6\xa5\x76\x38\xa6\x2a\x19\x36\x31\xdb\ \xb8\x6c\xfb\xd2\x65\x19\x66\xd7\xc4\xcd\x81\x64\x41\x54\xb1\x00\ \x98\xbc\xe4\x92\x55\x23\x6b\x47\x02\x4c\x13\x81\x6b\xdb\xaf\x99\ \x0f\x3f\x6c\xaa\xe1\x58\x7d\xd2\x3c\x47\x55\xc3\x6e\xc7\x60\xde\ \xdc\x1a\x83\x5e\xbc\x0c\xc2\x4c\x98\x91\xda\xc4\x54\x3b\x00\x7c\ \x70\x5b\x5b\x66\x70\x00\xfe\x38\x06\xb6\x24\xd5\x9f\x05\x0f\x89\ \xeb\x17\x0c\x1f\x73\x86\x32\x5a\x28\x3e\xce\x2c\xb7\x93\xf6\xb7\ \xd4\x30\x9a\xc5\x16\x2e\x78\x11\xe9\x63\xb3\xf4\x0d\x0d\x0d\xa0\ \x8a\x30\x02\xaa\xc9\x34\x2f\x20\x2c\x20\x1f\x61\x66\x4f\xd3\x34\ \xdd\x1d\x04\x61\x42\x1a\x14\x6a\x3f\xf6\xcd\x7a\xf4\x26\x36\x2b\ \xd3\xcb\x72\x6b\x9e\x8d\x6c\x58\xc8\x32\x10\x6c\x53\xa6\x24\x20\ \x29\x04\x2f\x84\x8b\x43\x87\x78\x5f\x2a\x5d\x5a\xe6\x72\x5d\x06\ \xf1\xc6\x75\x59\xd8\xfb\xd8\x26\x66\x64\x14\x2e\xb7\xd9\xa2\xb1\ \xa5\x43\x74\x1a\xe8\xed\x9c\xf5\x55\x5b\x83\xfc\x81\xcc\x5c\x9b\ \x37\x57\x83\xbc\x07\x37\xc0\x5f\x4c\x96\x61\x66\x0e\x2d\xf7\x37\ \xaa\x83\x55\xe7\xba\x99\x5d\xd8\x11\x80\x5f\x7a\xc8\x29\x28\x60\ \x59\x3d\xfb\x4b\x36\x8f\x52\xf7\xab\x2a\xe1\xe3\x32\xb0\x67\x5d\ \x5d\x7c\xef\x3e\x28\x94\xec\x68\x30\x50\x83\xd1\x68\x3e\xee\x8a\ \x6e\x80\x9c\x8b\xa1\x01\x8d\x4d\x19\x3d\xa2\xca\x44\xc0\xbe\xac\ \xf9\x91\xcc\xf4\xe1\x06\xca\xbf\xe6\x2c\x7e\x13\xcb\x6a\x61\xc8\ \x1c\x88\xdb\x1a\xc4\xb9\x9d\xcc\x73\x3d\x55\xc8\x3f\x31\x9f\x26\ \xdd\xb1\x88\x4e\x0b\xe4\x05\x39\x6f\xbe\x95\xc5\x04\xea\xa2\x62\ \x37\x9b\x56\x84\x88\x01\x51\x7a\x86\xbd\x6a\x25\xc1\x2c\x31\x28\ \x94\xa4\xac\x99\x13\x98\xd3\x36\x0c\x08\xb2\x05\x14\x7e\xed\x84\ \x29\xde\x1b\x01\x19\xb2\xd9\x08\x28\x8c\x54\xcc\x03\xa0\x0a\xa2\ \x75\x46\xd5\xb9\xa5\xe3\x96\x63\xe8\x8e\xe1\x9c\xb4\x13\x9e\x35\ \x9c\xce\x38\x03\x82\x84\x05\x19\x22\x6e\xbb\xbe\x3e\x93\x9f\x00\ \xa6\xcf\xda\x45\x0e\x5f\x07\x91\x57\x6d\x86\xee\xa1\xdb\x90\x29\ \x2a\x9f\xf9\x1a\x53\x08\x54\x1d\x43\x83\xc2\x4e\xc7\xa8\x8f\x91\ \x51\xa0\x40\x98\xb3\x1f\xce\x5f\xe4\x71\x42\x51\x2c\x98\x6a\x78\ \x8d\xe4\x76\x35\xd8\xa5\xea\x94\x23\x11\xb5\xe6\x60\xc9\xa0\xf0\ \xa7\xfe\x68\x36\x91\x27\x26\x07\x82\xea\x88\x47\xdd\x82\x42\xb7\ \x37\x69\xa6\x8e\x4b\xfd\x31\x9c\x3c\x22\x7e\x96\x93\xb2\x52\xe3\ \x14\x3d\x22\xd7\xb1\xc6\xcf\xf2\x9c\xcc\x8f\x8d\x7a\x7c\x55\x7f\ \x4b\x58\xc6\xef\x50\x91\x2b\xa0\x3e\xe1\x47\x1e\x3e\x4d\x88\xa5\ \xf6\x5a\x73\xe9\x71\x45\x0d\x66\x94\x54\x2e\x35\xc0\xc8\x36\x74\ \xa2\x4b\xb9\x87\x97\x69\xaa\x1f\xa8\xfb\x0a\x41\x2a\xb8\xc8\x3f\ \xd3\x19\x3c\x3d\x61\x9d\x08\x05\xc9\x24\x47\x45\x08\x9e\x58\x4d\ \xe9\x57\x55\x0a\x87\x48\x62\xb5\xca\x34\x2d\x69\x8d\x4f\x83\xbb\ \x8a\x7f\xc9\x06\x04\x64\xfb\xe6\x70\x50\xb7\x7d\x33\x49\xc7\x88\ \x29\x3c\x27\x34\xec\x86\x0c\x6d\x66\x6b\x10\x91\x37\xae\x2e\x28\ \xdb\x38\x88\xfb\x07\xcd\x3d\x1d\x53\x66\x0f\xee\x51\x28\x51\x42\ \x14\x32\x89\x69\x2d\x2c\x8c\x34\x36\x66\x30\xcd\xa9\xa2\x32\x82\ \x8a\x34\x77\x72\x84\x1b\xe6\xef\x0a\x61\xa1\x39\x6c\x76\x5d\xcc\ \x36\xb1\xb0\x81\x04\xfa\xb9\x49\x7d\x8c\xdb\x0a\xcc\x5c\x0f\xbf\ \x06\xc7\x58\x59\x2e\x13\x73\x98\xe6\x37\x64\x42\xa1\x35\x48\x3b\ \x27\x9d\x63\x33\x3e\xcc\xab\x16\x44\xaf\x76\x7e\x42\x4c\x6b\x1a\ \x18\x04\xf0\x73\xe5\xd4\x05\x91\x4f\xe4\x57\xc5\x9a\x5b\xd2\x6d\ \x1d\x43\x53\x26\x83\xfb\x74\x74\xa3\x90\x69\xf9\x50\x84\xbf\x96\ \x0e\x0f\x76\x56\x5a\xa9\x86\x21\xb1\x08\x1c\x0f\x67\x23\x14\xb3\ \x8c\x68\x8c\xfa\x04\xe7\xf5\xbf\x33\x13\xf3\x1c\x0e\x69\x8c\xdd\ \x82\xe7\x84\x86\xf3\xa8\x2f\xab\x92\xc9\xfa\x07\x30\x2e\x12\x74\ \xa6\xb3\x3b\xd4\x11\x79\x32\x89\xa6\x1e\x67\x44\x65\x4c\x1a\x9d\ \xf4\x56\x54\x4e\x52\x05\xd4\xe0\x8b\x58\x2c\x6c\x68\xfc\xa8\xa3\ \xe3\x08\x48\xde\x21\x64\x06\x94\x3a\xd9\x45\xb1\x9c\xc6\x65\xfc\ \x4e\x58\x7d\x72\xe6\xdb\x01\x0d\x0a\x00\x45\xd3\xd7\xc1\xb9\xf5\ \x6a\x8a\x40\x2c\xe3\x3c\x3c\xdd\x5a\xf9\x57\x98\x55\x77\x37\x1a\ \xa9\xc1\x0f\x09\x74\x83\x6c\x0b\x08\xb1\x37\x99\xa9\xae\x72\xcb\ \xcb\x22\xa8\xc7\x66\xb2\x81\x2e\x6a\x66\x63\x51\xaf\x6f\xd5\x09\ \x12\x66\x06\x22\x42\x3a\x98\xf6\x41\x1d\x8f\x86\x15\xcb\x89\x9b\ \x4d\x62\x11\x0e\x5e\x81\x18\x6f\xbf\x60\x2a\x90\xee\x05\x78\x15\ \x4b\x14\x3a\xd5\xb0\x32\x14\xc7\xf7\x5a\x97\x50\x17\x36\xa4\x03\ \xcb\x02\xaf\x8c\x18\x0f\xd1\x43\x40\x08\x67\x48\x1d\x40\x9f\x95\ \x95\x46\x28\x01\x70\x5d\x66\xdd\x8e\xd7\xa9\x6a\x95\xa2\x59\xce\ \xf1\xe5\xcb\x1a\x14\xcb\x81\x8a\x20\x3e\x69\x1e\xac\xe9\x74\x09\ \x1b\x4b\xd8\x64\xec\x27\x1d\x38\xc4\x08\xda\x2b\xe9\x44\xa3\x34\ \x89\xc2\x70\x20\x39\xc0\x44\x00\xf2\x84\x4c\x2c\x94\xa6\x72\x67\ \xd4\x28\x70\x60\x4e\x5e\x9e\x78\x3e\x87\xde\x1c\x4c\x27\xc1\xe1\ \x93\x56\x66\x73\x92\x48\xc1\x29\xc6\xa1\xd7\x65\x10\x21\x85\x89\ \x86\x98\x9d\x87\x17\xac\xa0\xc2\x37\x7e\xfc\x78\xc8\xe8\xd5\x57\ \x5f\x45\x95\x86\xc2\x39\x4a\xa3\x31\x51\xd9\x89\x90\xaf\x31\x2b\ \x6e\x68\x09\x7b\xe8\x80\x93\x46\xe2\x6a\x74\x73\xc7\x8e\x1d\xab\ \x57\xaf\xb6\x69\x33\xeb\x28\xc7\xbc\x9a\xc2\xe1\x5e\xdf\x22\xf7\ \x9a\x59\x91\x2f\x58\x6f\x0f\x62\x02\x0e\x0a\xdd\x29\xcb\x93\xf4\ \x8f\xec\xe0\x18\x3f\x3e\xf6\xc7\xd7\x07\xe3\x79\x28\x25\x70\xd5\ \x56\x6d\x19\x84\x00\x3e\xf4\x12\x21\x57\xbf\x46\xc2\x9e\x9e\x2c\ \xc7\x77\x64\xeb\x14\x74\x13\x49\x13\x68\x8a\xea\xea\x6a\x3c\x52\ \x94\x40\xd1\x1c\xf7\xf4\xd3\x4f\x63\x2a\x06\x25\x19\x2d\x2d\x2d\ \x01\x93\x09\x83\xa3\x30\xd5\x17\xee\xe3\xc4\x57\x94\x43\x20\x6b\ \x74\xfc\x61\xd8\xab\xaf\xbe\x7a\xf1\xe2\xc5\x38\xaf\x17\xfb\x19\ \x35\x8d\x71\xab\xaa\xc1\xd5\x8f\x16\xed\xe3\x78\x78\xc6\xee\x35\ \x71\x94\x68\xd4\x6b\x0c\xb2\x82\x39\x9d\x3c\x29\x2e\x43\x81\x71\ \x6e\x62\x36\x1b\xd3\x2d\xac\xae\x6e\x76\xa7\x17\x1f\x69\x6f\xe4\ \x1b\x9f\xae\x6c\xea\xd4\xa9\x6a\xb2\x90\x7c\xc8\x98\x73\xbf\x7e\ \xfd\x7a\xe3\x83\xc2\xed\xae\xe1\xc8\x1d\x7e\xf9\x5d\xb8\x79\x98\ \x6e\x10\x02\xa2\x97\x6a\x60\x8b\x68\x1b\x97\xf6\xe8\x0d\xa5\xe0\ \x99\x01\x8a\xef\x88\x72\xf5\xbf\xd7\x08\x66\x5e\x50\xe0\x52\x91\ \x5a\x58\xb2\xfd\x0e\x96\x1c\x73\xfd\x43\xd5\x0f\x4b\x17\x24\x1d\ \x91\x26\xdf\x4c\x4d\x2d\x34\x2b\xc0\xf4\x01\x0d\xe7\x80\xc2\x6f\ \xfb\x1b\xee\xad\x81\x76\xa3\x2b\xe6\x5d\xd0\x0e\x06\x28\x60\x1d\ \xd6\x5d\x88\xf0\x1c\x98\xb3\x4a\xea\xc4\xad\x7c\x95\x29\xd3\x0a\ \x90\xce\xf6\x24\x7e\x95\x9b\x08\x97\x2c\xe7\x79\xaa\x79\x86\x34\ \xed\x31\xab\x5b\x44\x65\xd7\x14\xf3\xbd\x62\x85\x94\xc6\x37\x3e\ \x5d\xca\xac\x99\xb3\x9e\x7b\xee\xb9\x39\x73\xe6\xda\xdd\x96\x76\ \x0c\x79\x3b\x02\xf2\xb7\x8b\xf1\xe1\x62\xbc\xdd\xca\x49\x09\x0d\ \x1c\x36\xa6\xe1\x74\xf7\xf4\x8c\x19\x35\x0a\x29\x94\xac\x17\x19\ \xa0\xc8\x99\xe6\x5c\x7d\x2c\x84\x7a\x6b\x8e\x93\x4b\x44\xcc\xea\ \x00\x76\x95\x3a\x1a\x3a\xc8\xf4\x49\x91\x58\xac\xed\xba\x09\xdd\ \x3f\x3e\x9e\x21\xe8\x4f\xf4\x5d\xfc\xf2\x97\xbb\xee\xb8\xe3\x0e\ \x54\x23\xf4\xdb\x20\x1c\x34\xfa\xa2\xa1\x30\x9b\xab\x25\x3c\x20\ \x91\x00\x62\x1e\xce\x07\x99\x5f\x21\x11\x50\x8e\xf0\x3e\x70\xff\ \x54\x41\xdc\xbf\x7f\xff\x8d\x37\xdd\x24\x44\x96\xf5\x38\xe9\xa8\ \x89\xee\x36\x0e\x1a\x3e\x86\xe5\xa6\x5c\x99\x93\x03\xd7\x0c\xf7\ \xf2\x98\xf0\xf8\xea\x05\x03\x2e\xbb\xe7\x9e\x7b\x1a\x9b\x9a\x0e\ \xbf\xf5\x16\x62\x8c\x2b\x7b\x31\x8f\x36\x34\x38\x16\xd2\x0f\xbf\ \x80\x8a\x3b\xf6\x0b\xff\x72\xbc\x7c\x8b\xe5\xb2\x00\x3a\x3b\x7a\ \x8b\x20\x1a\x30\xfc\xb4\x3e\x69\xd2\x24\xc0\x5c\x3c\x2a\xdd\x0c\ \x6a\x80\x22\x23\x7e\x07\xc9\x4f\x56\xbd\x54\xce\xea\x1b\xb6\xdf\ \x50\x64\x66\x8d\xa9\x92\x21\x57\x49\x03\xb7\x5e\xd7\xe7\x0c\xbb\ \x1e\xf4\xa9\x81\xf1\x31\xc8\xd0\x60\xba\xa6\xba\xa6\xb6\xa6\xe6\ \x6f\xf2\xde\x4d\x24\x36\x68\x42\x93\xcd\x94\x62\x5a\x1f\x19\x49\ \x54\xbd\xa9\x45\x33\x06\x7f\xdb\x57\x83\xca\x19\x14\x7f\xb3\x25\ \x2a\xe6\x60\x29\x09\x14\xc9\xae\x6b\xe1\x83\x64\x1b\x56\x31\x66\ \x19\x6e\xdc\xb8\xd1\x9b\x09\xc9\x7d\x2f\x02\x0c\x64\xf3\xe1\xf7\ \x61\x84\xe6\x8e\xe5\x58\xb7\x66\xdf\xfd\xbd\x8f\x0f\xf8\x89\x9a\ \x10\xc2\xa8\x87\xc7\x11\xf3\xe4\xa4\x6e\x5f\x1b\x42\x2e\xe4\xed\ \x84\xe6\x75\x04\xb7\x07\x2e\x7d\xb8\x9d\xff\xbe\xc7\x17\xff\xd3\ \x0b\xee\x58\x4e\x3e\xe1\xfd\xc5\xf7\x36\xe0\x63\x20\xab\xff\xcf\ \xef\x93\x36\xec\x33\x7f\x5f\x53\x8e\xb1\xf8\x34\xe8\xfd\x25\xbc\ \xb8\x61\x96\x37\xa7\x36\xe6\xe4\x5f\xc2\xbb\xe5\x64\xb6\xfe\xa1\ \xc7\xff\x3f\x1e\x9f\x29\xce\x54\xe0\x9c\xcf\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\xdd\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x60\x00\x00\x00\x55\x08\x00\x00\x00\x00\x93\x44\xbe\xfa\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\x0b\x12\ \x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd5\x03\ \x03\x0f\x28\x2b\x21\x8f\xe2\xd5\x00\x00\x00\x02\x62\x4b\x47\x44\ \x00\xff\x87\x8f\xcc\xbf\x00\x00\x08\x6e\x49\x44\x41\x54\x68\xde\ \xb5\x59\x5b\x88\x24\x57\x19\xfe\xbe\xff\x54\x4f\x4f\xcf\x65\x67\ \x76\x76\xa2\x4b\x82\x6c\x92\x85\x44\x9f\x64\x4d\x34\x3b\xe3\x85\ \x40\x1e\x5c\x21\x0f\x01\x03\x89\x20\x08\x21\x5e\x30\xd3\x1b\xf0\ \xb2\xa2\x71\x46\x10\x82\xf8\x20\x28\x44\x1f\x0c\x98\x18\x42\x0c\ \x2e\xae\x04\x0c\x84\x3c\x24\x2f\x31\x18\x44\xcc\x4c\x54\x96\xc4\ \xfb\x0d\x13\x33\xbb\xd3\x3b\x97\xde\x9e\xae\x3a\x9f\x0f\xa7\xaa\ \xba\xab\xbb\xfa\xb2\x93\xf8\x33\x33\x7d\xea\xfc\xf5\xf5\xd4\xf9\ \xcf\xff\xfd\x97\x53\xa6\x5c\x92\x44\x49\x36\x90\x92\x70\x9d\x24\ \xc9\x5b\xd2\xcb\x20\xc8\x7b\xef\xbd\x97\xbc\xb2\x81\xf7\x0a\xd7\ \x52\xaa\x3d\x90\x1e\x90\x89\xa2\x99\x99\x99\x73\xe6\xb2\x81\x99\ \x0b\xd7\xce\x85\xb9\x83\xe9\x4d\x34\x8a\x3b\xe7\xd7\x37\x36\x36\ \x36\xd6\xd7\x37\xd6\x37\xd2\xc1\xc6\xc6\x7a\xb8\x5e\x5f\x0f\x73\ \x07\xd1\xbf\x7c\x7e\x9b\x32\x24\xf8\xc9\xa9\x2f\xaf\xd4\xeb\xf5\ \xfa\xe9\x7a\xbd\x5e\x5f\x59\xa9\xd7\x4f\xd7\xeb\x2b\xa7\xc3\xcc\ \xe9\xd3\xa7\x57\xea\x2b\x2b\xf5\x83\xe8\xcf\x9c\x7a\x12\x89\x41\ \xd8\xba\xf3\xd9\x73\x4f\xbd\xfd\x72\xee\xd9\x3b\xb7\xc2\x1e\x58\ \xbc\xbf\x37\x9e\x34\x9b\xcd\x66\xb3\x39\xe6\xcd\x7b\xfb\xb1\x89\ \x46\x10\xcc\xf7\x29\xec\x10\xd3\x09\xa6\xbf\xd9\xd6\x51\x89\xf7\ \x5e\x64\xba\xb5\x05\x7d\x19\x1e\x84\x49\x02\x47\x08\x40\xaa\xb5\ \x7b\xa9\xd1\xb8\xd4\x68\x34\x1a\x8d\x4b\xdb\xcd\x98\xe4\x48\x1c\ \x21\x19\x49\x8d\x12\x5a\xbc\xb3\xb5\x7d\x39\xf6\x22\x49\xf9\xb8\ \xb5\x7b\xa9\xd1\xc2\x68\xa0\x48\x03\x80\xe2\xa3\xa0\xf3\x37\x0c\ \x4d\x3b\x8d\xcb\x32\x23\x99\xde\x6c\x86\xf6\x76\x23\x71\xa5\x6b\ \xe8\xe0\x01\xc0\x7a\xbf\xbe\x5b\x2c\xdc\xd9\xdc\xba\x0c\xa3\x84\ \x5c\x24\x99\xc5\x8d\x3d\x03\x2c\xdc\x35\xd0\xb8\x96\xde\x3f\x64\ \x95\xbb\xdb\x22\xa5\xf0\x40\xc8\x56\x2c\x11\x3b\xbb\x84\x86\xa1\ \x01\x18\x84\x61\x9b\x05\x22\xee\xfd\xfa\xf4\x7f\x08\x6e\x77\xcf\ \xa0\xa1\x0b\x90\x09\x12\x01\x08\x00\x18\x3e\x49\x20\x9b\x33\x88\ \x22\x52\x03\xa9\xeb\x81\x29\xd8\xee\xbe\x41\x18\x84\xa7\x04\x23\ \x49\x65\xf6\x16\x33\x8b\x1a\x49\x9a\x91\xf0\x1e\x0c\x98\x00\x25\ \x08\x12\xa4\x28\x62\x17\xe9\xdd\x65\x78\x91\x1c\xcd\x83\xc4\x53\ \xa2\xf2\x30\x0c\x28\x35\x97\x28\xdb\xbf\xec\xde\x22\x0f\x18\x4b\ \xa4\xe7\xe4\xcc\xdc\xfc\xe1\xf9\x99\x09\x8a\xcc\xfd\x89\xe0\x65\ \xc9\x8f\xe4\xc1\xd0\x3d\x6e\x13\x52\x6d\x61\x6e\x66\x72\x62\x62\ \x72\xe6\xf0\x42\xd5\x83\x12\x25\x52\x12\xdb\x89\x0d\xdb\xe4\x94\ \x07\xdd\xdc\x42\x11\xe0\x63\x52\xb5\xf9\x28\xdd\x5c\x54\x0e\xcf\ \x2a\x20\xc2\x83\xf9\x36\x07\xe1\xd1\xe1\xc1\x20\x5f\x86\xd8\x4e\ \x20\x4e\xc9\xa7\x76\xa7\xd7\xcc\x8c\xef\x70\x4e\xf4\x03\xe1\xc8\ \x79\x50\x34\x12\x3a\x51\x4c\xe4\xbe\xa0\x89\x8a\xd2\xc7\x53\x92\ \xc4\xed\x5a\xa4\x9c\xd6\x44\x12\xbc\xa5\x04\x0f\xe4\x3c\x50\xb6\ \x65\x99\x27\x76\x76\xb1\x4d\xa2\xc6\xe0\xa9\x09\x27\x0f\x1d\xb9\ \x6a\x7e\x76\x36\x16\x0b\x74\x65\x29\x5e\x39\x0f\xc0\x01\x2b\x20\ \xdb\x6d\x2a\xaa\x0a\x24\x63\x5b\xac\xfd\xe3\xc5\xc7\x7f\xf4\xd4\ \x2b\x5a\x9c\x4a\xc9\x31\xc0\x31\xba\xc2\x9e\x49\xc3\xa2\x09\x5b\ \x09\xfc\xa4\x13\x21\x2d\xb4\xbe\xf7\xd1\x0f\xdc\x76\xcf\x67\xee\ \x3a\xf9\xa1\x33\x2f\xcf\x77\xd8\x30\x2c\x16\xa5\x3c\xe8\x0d\xb5\ \x61\x60\xa4\xa9\x32\x65\x6e\x4a\x24\x10\x9d\xfb\xc8\x17\x7e\xb9\ \x0b\x73\xa6\xbf\x3d\x71\xe7\xb7\xab\x10\x04\x08\x8e\x34\x94\xe1\ \x53\x66\xa7\xc6\x1b\x20\xaa\x2d\x5c\xb5\x18\x91\xf4\xb5\xd7\xee\ \x7e\x2d\xaa\x44\x0e\x89\x07\x9d\x1e\xfa\xca\x74\x88\xb1\x72\xc3\ \x48\x94\xf2\x60\xb0\x91\xe0\xbd\x45\x92\xa4\xe8\xdf\x8c\xe2\x76\ \x9c\x78\x18\x94\x28\xfa\xd9\xcf\xe7\x12\x11\x62\x65\x88\x81\x32\ \x1e\x0c\x0f\xd8\x22\x49\x54\x5e\x55\x5c\x5d\xfa\xd4\x27\x4f\xd0\ \x13\x40\x82\xef\xef\x3a\x01\xaa\x54\x34\x84\xc7\x59\x3e\xc8\x8d\ \x64\x34\x18\x0d\x85\xa0\x48\x12\xf4\x2f\xe1\xe6\x97\x9f\x7b\xe4\ \xb1\x17\x5e\x7c\x9f\x08\x08\x7f\x3c\x3f\x29\x51\x35\xd7\x6d\xfc\ \x02\x1e\x79\x3e\x18\x43\x2a\x9b\xbf\xc2\x03\xef\x6e\x6c\x6e\xee\ \xdd\xf4\xcc\x8d\x61\xe9\xe7\x27\x44\x5f\x99\xf6\xc3\x73\x9a\x71\ \x2c\xd1\xd4\x6f\xfe\x79\xc3\xad\x17\x2a\x51\xe4\x2e\x1c\xb9\x17\ \x04\x88\x2d\x93\x70\xc8\x69\x38\x32\xe4\x03\xa5\xb6\x40\x2f\x4d\ \x72\x73\x46\x2f\xe1\xde\x79\x6f\x04\xaa\xaf\xdf\x08\x0f\x08\x15\ \xd1\xcf\x4e\xcb\x82\x65\xfa\xf1\x21\x11\x86\x7c\x30\xaa\xc2\x81\ \xbb\xf4\xb9\xe7\xef\xda\x89\x24\xb9\x66\x73\x3f\x04\xc8\x6b\x13\ \x3f\x33\xe7\x87\x60\xa9\x1e\x1e\x80\x25\x8c\xcb\x9e\x66\xfa\x83\ \xf3\x31\x29\x8b\x37\xab\xbf\x85\x01\x98\x7e\xcf\xde\xec\x61\x05\ \x6c\x39\x3e\xe7\x41\x27\xb2\x15\xc7\x9d\x6b\x81\x7e\xc7\x13\x30\ \x5e\xd0\xde\x59\x08\x91\x3e\xfe\xae\x89\xc5\x3c\x55\x97\xe2\x91\ \x15\x5e\xe3\xac\x80\x74\x04\x60\x8d\xed\xc5\x27\x5e\x35\xb9\xf8\ \x58\x3d\x5a\x14\xfa\x8b\xc1\xfe\x15\x68\x18\x93\x7b\xc4\xed\x5d\ \x9c\xfb\xc3\x77\xe8\x5d\x72\xf5\x8f\x8f\x4f\x69\x44\x75\x0a\x31\ \xcf\x07\x19\xab\x42\x8c\x83\x15\xc9\x93\x2f\xa2\xbd\x19\xb5\xef\ \xdf\x86\x4b\x8e\x3f\x7e\x33\xb3\x95\x5b\x57\xa5\x59\xc0\xe7\xf9\ \x60\x74\xfd\x9e\xad\xfb\x42\x3c\xb7\xfa\x7b\xc7\xe4\xe4\xb9\x5b\ \xda\x63\x30\x08\x0a\x3c\xe0\x98\x06\xb2\xc6\xce\xc2\x63\x67\x9d\ \xfc\x1d\x4f\x1e\xdf\xb7\x71\xcc\xca\xc0\x03\x14\x36\x08\xbd\xad\ \x47\x16\x7a\x5d\x6b\x6b\xfa\xaf\x0f\x9a\xfc\xe7\x1f\x3e\x12\x5b\ \x9f\xbe\x0c\x8f\xde\x7c\x60\xec\xa2\x65\x5f\x70\x6f\x24\xb5\xef\ \xee\x9a\xff\xe6\xb7\xaa\xde\x86\xd4\xfb\x39\x3e\xe7\x81\xc6\xf2\ \x22\xdb\xdb\x9d\xfe\xd3\x2f\x18\x9f\xf9\x52\x5a\x73\x8d\x14\x48\ \x69\xc2\xe9\x2b\x5b\xca\x76\x5d\x3b\xbe\xba\xde\xd2\xf2\x57\xdb\ \x23\xda\xb3\x1c\x0f\x30\xf0\x40\xc5\xda\x9f\xe8\x6b\x06\x00\x58\ \xdc\x32\xdb\x02\xeb\xf3\xdd\xc5\x69\x99\x74\xf0\x54\xe0\x01\x8a\ \x4d\xc4\x80\x15\xb4\x12\x26\xef\xc4\xc4\xfb\xdb\xc6\xe1\x11\x3a\ \xc7\x0b\xc8\xfb\x03\xa8\xa7\x7c\x09\x13\x5d\x33\x68\xcb\xf6\x6e\ \x79\x47\xeb\xc5\x8a\x17\x4a\xf4\xfd\x78\xe4\xfd\x41\xe6\xae\xa1\ \x7d\x30\x4b\x29\x49\x2a\xb4\x96\xc1\xe6\x09\xd9\x5e\xfc\xf4\x0d\ \x93\xed\x32\x3d\x4b\xf0\x81\x60\x63\x66\x34\x92\x06\xb9\xad\xcf\ \xbe\x74\x47\xd3\xf1\x4a\x24\xad\xae\xa9\x4e\x64\x05\x40\x18\x40\ \x58\x57\xd0\x65\x24\x02\x47\xe7\x2b\x87\x7c\x70\x8e\x82\x1e\xa5\ \xf8\x6c\x52\x69\x0b\x97\x56\xac\x04\xd3\xa2\x4d\x59\x67\x07\x51\ \x11\xbd\x9b\x78\xf8\x9e\xfb\x9e\x9b\x91\xd0\xab\x47\x29\x1e\x2a\ \x36\x20\xc1\x39\xf2\xe0\xda\x55\xc3\x93\x52\xd5\x11\xf7\xdf\xf7\ \xc8\x0f\x6e\x7b\x68\xc6\x17\x78\xa0\xe2\xa0\x83\x4f\x1b\x90\xd0\ \x27\xe4\x19\x2c\x53\x04\xfe\xe5\x4f\x68\xaa\x56\x67\x7f\xf8\x4c\ \xc5\x45\xac\xff\xba\x26\xf6\xea\x4b\xf0\xa1\xb3\x31\x21\xf5\xa7\ \x3c\x2f\x81\xa5\x67\x17\x3a\x72\xf1\xa7\x6c\x27\xb1\xc3\xc3\xce\ \x97\x26\xbf\x5e\xbc\xd8\xe1\xc1\x18\x91\x37\x99\xe5\x7f\x05\x40\ \xfc\x8b\x6c\xac\xf0\xde\xcd\x83\xee\xb3\x8f\x9e\x46\x22\xab\xcd\ \xac\x75\xc3\x71\x3a\xc0\x74\x13\xd3\x28\x5f\xd0\xf7\xe1\x79\x85\ \x3c\xa0\xaf\x7e\x51\x89\x59\x7b\x61\xa5\xed\xae\x98\x07\xe3\x04\ \x5f\xdb\xbb\xe7\xc1\x59\xef\xdf\xfb\xf4\x35\xed\xf1\x4c\xd4\xe1\ \x41\x5f\xf4\x45\x4f\xf5\x11\x4c\x51\x69\x7d\xed\x77\x4f\x3f\xff\ \xc2\xc9\xa6\xa9\x44\x5f\x76\x26\x55\x9e\x0f\xfa\x12\x54\xf0\x0d\ \xb7\xff\xc6\xbf\xce\xf3\xc3\xb7\x4e\xee\xb9\x42\xbd\x61\xc3\x8e\ \xfa\x52\x1e\x8c\x61\x22\xf0\xcd\xbf\x5f\x6c\xc6\x5b\x7f\x7e\xe5\ \x8d\x08\x63\xd6\x51\x50\x0f\x0f\x38\x70\x29\x04\xff\xf3\x26\x9d\ \x59\x34\xe1\x36\x5f\x1f\x7e\x3c\xd9\xed\x45\xc8\xfb\xe4\xfc\x18\ \xab\xa7\x11\xcf\x48\x1a\x5d\x6c\x44\x14\x20\x21\xda\x6a\xb8\x3e\ \x7d\x29\x3e\xef\x93\x35\x72\x05\xd6\xba\xe0\x20\x42\xa4\x60\x9b\ \x6d\xd3\x78\x2b\xc8\x78\x30\x92\xc9\xdc\x8e\x99\x66\x6e\xca\xe2\ \x5d\x62\x7c\x26\x17\xaa\x6b\x4b\x9f\xc2\xc2\xea\x3a\x4e\x77\x39\ \x14\xc8\x0c\xfe\xd0\x64\x41\xdf\xa9\x83\x8a\xf8\x4e\x5d\x84\x51\ \xc5\xa9\xe2\xfc\xa0\x16\x04\xe3\xf1\x8a\xd9\x4e\x3e\x18\xe5\x76\ \x85\x8d\x14\xc0\x71\xdd\xb4\x53\x17\xa5\x2b\x85\xa5\x47\x8d\x9d\ \xca\x32\x90\x38\x52\xf7\x81\xe9\x04\x8b\xfa\xdc\x52\xbd\xf8\x3e\ \x1e\x0c\x94\xe9\x8e\x1f\x00\x9c\x1d\xcf\x44\x63\xe7\x03\x28\x39\ \x34\xe9\x99\x9d\x08\x24\xd3\x53\x1e\x57\x96\x0f\x3a\xe1\x0e\xa5\ \x5c\x30\xb8\xa3\xf0\x69\x58\x4b\xdc\xd1\x92\x5b\xca\xf0\x42\x5f\ \x3e\xb0\xbe\x51\xfa\xe9\x67\xae\x61\x2c\x00\x3e\x9e\x38\x36\x89\ \x3e\xfd\x40\xfc\xb8\xf9\x80\xc9\xdc\xf5\x0b\xe6\xbd\xaf\x2c\x5e\ \x57\x4b\xc6\x6c\x89\x3a\xc5\x12\x86\x56\xcb\x41\x7c\xf5\xea\xeb\ \x8e\x5d\x7b\xec\xfa\xa3\x96\x8c\x73\x7b\xfe\xad\xe1\x1f\x64\x27\ \x26\x3e\x0d\xdd\x69\x2d\xec\x25\xc9\xfb\x74\xa3\xdb\xd1\x54\x6d\ \x0a\x6d\x0d\xd0\xf7\xe1\xe5\xb3\xf3\x22\x4d\xba\x5a\x14\x45\x95\ \xf4\xa7\x52\x89\x82\x54\x2a\x51\x14\x55\x2a\x61\x3e\x8a\x26\x9c\ \x39\x8b\x26\x06\xea\x7b\xf1\x35\x37\x99\xf2\x60\xf6\xd1\xdb\x4f\ \x7d\xec\xed\x97\x53\xb7\x3f\x3a\x2b\x18\x23\x7e\xe2\xec\xd7\xbf\ \xb1\xb6\xb6\xb6\xba\xba\xb6\xba\xb6\x16\x06\x6b\x6b\xab\xe1\x7a\ \x75\x35\xcc\x1d\x40\xbf\xf6\xc0\xd9\xbb\x19\x99\xa8\xb9\x13\x27\ \x97\x96\x96\x96\x96\x97\x97\x96\x97\xd2\xc1\xd2\xd2\x72\xb8\x5e\ \x5e\x0e\x73\x07\xd1\x2f\x9d\x98\x0f\x6f\x63\x95\x24\x49\x92\x24\ \x71\x9c\xc4\xd9\x20\x49\xe2\x70\x1d\xc7\x61\xee\x60\x7a\x4f\x19\ \x08\x3a\xe7\x9c\x73\xe1\x1d\x70\x18\x84\x77\xc3\xe1\x05\xb1\x73\ \x07\xd6\x03\xb4\x42\x42\xcd\x5f\xd4\xa4\xbd\x62\xfe\xba\xed\xc0\ \xfa\xc2\x81\xd4\xff\x45\xfe\x07\x6b\x56\xad\xc0\xb4\x6e\x5e\x96\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0a\ \x0c\xf7\x1b\xc7\ \x00\x63\ \x00\x6f\x00\x6e\x00\x66\x00\x69\x00\x67\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x08\xab\xda\x07\ \x00\x75\ \x00\x70\x00\x64\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0c\x9c\xa6\x27\ \x00\x71\ \x00\x75\x00\x65\x00\x72\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x1b\x97\ \x00\x00\x00\x46\x00\x00\x00\x00\x00\x01\x00\x00\x3c\x03\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/dialogs/configdialog/images/0000755000076500000240000000000012536324427023106 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/dialogs/configdialog/images/config.png0000644000076500000240000001562312536324427025070 0ustar philstaff00000000000000‰PNG  IHDR`Tò¥Ô pHYs  ÒÝ~ütIMEÕ'6Å’ÃbKGDÿÿÿ ½§“ IDATxÚí\wEzïž}›w%­$$„„ÈF'‹$ qì±§3 ΦU¤2EÎÉ„:R™`àpQG°àL,cb•9q‡Au`ÈÃ& ¥ÕæÝ÷¦ý›þº¿þ¦gÞÂç²i¨§y½ófºýåïëÖišªï[ý–h­1ô‰†.¾ ÆüY¯s”ëâÓŠ¿->Yvß(UlÑ£G•Ž­´9\¦ïI†x+I’ hjµZ___µZ#l,ûW|*ûi´Òü“"²õ®åÒOèÅ{JW+º?ú,_y­å‹t= 546V:::èá&¹^xáÄŸ4qüHµªí¾;ØîeöÕÂïô3û“:/ÒßöÊlÑ”v O‹D}×Ñxœu¢¿ùfãŠÏo¿ýö@ êÚuæüé´ûîºzÝ7›*í§é1p@d£Ê. ]e×ôEeÄ&þ³Ýa9í}ø')yª½ÕØkB˜îUö>÷ щ#¨À_à‰˜®v f|Æ£©=r‘´Bkik=ð ãº»{ðLpYEû~kmm;¦s`p¤R©§—q-Km¿û«q=X\' è3ûL õ˜$q÷7_O<öƒî÷t0í&©ÃþOŒq LîNO† Üx\tAáxŒÒÆÖ6ààä‰Ö•H,U«i­–B"e_ý¸Œ½Í÷k•Ú/†ºSm•}©¥ÏÌ0ÔcïIù¸OüÕe¤¾ß¿"¼T0#­uL5O‚Œ‹ìšuOAVAe]9 ž‘LZ³¦q$ 4búaðÆ‘¼èÒžÍxyY¤ÒÅíÆÁâØHô(ž¶“'9> dëÌ£ëþ”'M;a,ºv4ÄãÉŠžaiYy…`Nøú·"ÞMìMX¸–â*Uîg&@äÈÛ Z;“#2êÜ å~àðe* ›#,Ý”èˆÔ@ Ž*’DkÉKžüúk·zÚËž”–ÑQ†¼Â)-3oÐbDnÊÏŒÖÖÖÒÜÔ”4$°¼ðŒ(ËM¾ ©Ä8¡’&n¶Ú½ŸIŽ?¸–Ÿaáµà–F°/¸v°¯¯¡¡¡DŸPŒ×v"R~šÙÄBŽx*#pâ(b¬ ¤í|-47¶óƒ?þä¿¿Z³nCGGçç_¬©Ö‚–ºÙ \e˜†µTâB™“˜j'»ž9szo_ßÔ)[M6ùÏw™;ÒßG|-žÆä`˜ÌéO©µãœt3)1µÒV’Y»ÏK·Jd3Å8q\×ý>¹òÕO—-ûëÙS;¶Þzë55׳O‚Qg FEþ4¸¿p¼\j.:ùa‚i•Qyj¾üò‹juäö|t‡íWžsΩCƒ½  âQÌ)&9v)¾ô­ØÀ(¨@’Ar&ijZ[[Þÿà£ßýþËïÿçÆJÃÿB'`Ö¬™ø\¼øÇgœqÆk¯¾¶Û¼Ý‡û’„e¿ dÓ'LRtç8}ÌÈ®Dö)[[kËïÿãÍÃ~òW@ÎGccc©WQt Jÿ:ŠŸQÏ)õ-‚Ȱ dÞÜܼô§‡ÿû‹ÏìþýŒéµâ.›fš·Œœxõ¬Ç¾§WœeÖBœdwˆÕ<+¯¡¡Ú6S¶É8°RI’„ß”¦é Èc ÆY=¶m³Í6/ô3LöƒÒŠ_‘IñD¯:JaëÕXº9@²Ù§Æ?€ ÍË Ï©è]¿¾»­½CV ÔôÇe®ááaÂÈ-oc¥©ÉyE¸r®FP·}CCC##š½‰Z­ÒÐÐÑÞîåQj!Óó8Mlwâ!ªâtŒ©U«­mm&L0NóAö óñǯX±âË/¿Œèˆ"{·®g[ßãhÍ:"ÉV[mµçž{î¼óΘoðujYDÂ8Ʊ6¤³ö²a74u®|é¥_^~ÛŒ­'ÀljjL›;:ÖnÚ¼hñ¼e?;rx`s¥!ñS'‘“DζÎk1­‰~ÁL–Ç‚p^ýõc=vÆŒcÆŒÁWÐmÅ6ºÈâ&öš¸€.¨Ÿ{ßÈïcס‹ —¦ù¶víZˆäóÎ;ï€FDGxê_¬Q¦j­­ :¼ iذ¹{a[×1 õ4·´tu5Œ;vúôß|çõïÒO(ãÌ"‹WXnlA†Md㘟H²ÖÒÒ²|ùòvØa÷Ýw‘Wòàj wÒE¦RŒ¢Y‰NDÝÚ:mÚ´|Iç{ýúMÚËe 85‰ö~šE°ÁTM:”ÖT­ÚPiªÖª—#^Ïš³Dµ_µŠ²V4±ÍïG€™£uëÖÁÚ²eKöJÑ0tB÷àŸ¸æéÑúù“`Ò¢åÔ˜9EŸ©•©›6mÂp‘Lœ8ë„Î1c¦NZ©B‘¸‘³®vq>òTø_(ÏLN‚[Î1A÷³³|1 ¤ÖC§½tvvâ‚˜Ž Ð="’DDTd1#†uŽŽRMMMmmmôýèiooÏnÓ Á¶> èb#a,ÍšPºw:¨y£ ‡JÈ~•Ámš”#˜9Æúâ‹/vuu â+:'Mš´Ï>ûô÷÷7ø&¡¡OÜFDD×1ÝE$F¹Ù‰èDêÂ(ÆO:!ÇÒ ù˜Ž3ü4½1ãýTË™8“‘¬MV”Á– N¾ä°ÌÚ¼yó§Ÿ~:eÊR(D;DÞ×_½~ýú£>º»»ÔôÄOôööqÄøZĈ ‘HEH€ˆ³Â’[Âèø–* ixœîüõ`øˆ‚Ÿ JŒaSÈ® 4Ü‚‰´…I‚goX›P2¯!>GFF 51“N: zí³Ï>[¸páìÙ³/¾øbXO=õ°#4%gEº¯´O™=#ŽfC1ŒÍý«i¼,ƒH^Xµã\sX3ìùS´F¨&åͦ´E,´Îù1 ÎïÀB„ÿÙgŸ4@êCyàÖ¬YƒkÈÎK.¹äÝwßýüóÏ œXQ0¼Q& *Æö³©úÔKDì|"y>náoÐÆ‹]o#Äîn" Eãýe úDª„™×ãÆs=ÿüó˜Õ=÷ÜsÊ)§@ÅП0™;w.;q‘š¯‡NÑt(¥#æAƲ‘T}dÖsB> â"=ʹhGÏ„²óÅ‹qS¹(Xy–’U…DN?ýtÐËÕW_½dÉ’ýöÛä4-8ˆNZ‰ô«ÑFÇH¢S42£ °c £ƒ#î”´q&]IsN ÁË”áH‚¢ìÓ-Æ!I#ÈGEæ?°Œ`¨ã?:k—]v}Dš>{¢÷oyJr† ù&mEy´ô^2»¤m-žv¸8ŸÝ»ãnòl)™ÃðNª‹/ë३Qy³£RâL‰á2@QR—zΜ9Pê„Oæ ™‹Œi=Œ˜q„/Yã¯ü@i=ÓðqD!Ë/yIKó ©ïªë M˜õˆÙ°t2(òY<Âe7@ ‚¸ÁY@%hœš®›çÕ.¨Èú^Ë@ Ánýä\¸ÃF!M2Í{á%DÏ‚ ~øah«É“'(,økøÄ5,é¥K—>òÈ#PdPsÒäûVŒ"âŠ~XðÜÅ üf¹"¦ã…4§@”GÇ'6(½§Y&&—ÖÐäß]ºT®A#rä‘GÞqǯ¼ò ¼$èxP "!äpA*Áí¾îºë6lØÔ¤,'ÌX4Úáý„é·l`!:¡=EhoEâð>Zª…ZßkØ$¬È1ä'W%’A2vƒ¡ƒ³ 9üðß~úi î0I rÕUWÁ™?þ¹çž wà 7 –ÔHëGaŠ„]=o¶ Ébù¢ãÓ±¦½íåæI‡k1Œ(hï“ûÂP•ãæ!b¶@ÁÉ@Ùxp5V­ZuÅWÜ|óÍÐkPp`Æë¯¿þšk®Ê£R¶(BÆÔTô¿¾3ù”Bã;• 9 ŸîÒ!oj¢o oÃe†L,ƒ¿’ü/ËíÈÑ×€× Œ|ƒS¶×^{Íœ9ó¬³Î‚ Öƒ‘½Ç{Àÿv¥=„ ¢‘N(ý‹!ã’B¦¼¸Í3 '3TÈÉÇño¾›‹þïAY›“IS•µE0Ic‡¥ñEií*+eç±J™âSªœÈá¼`°s0ùh£ ðgVð!R2Zïè(âIÀè£>º÷Þ{‚epíµ×B¯Ýwß}ÀÎ-ÓΈmF»1L±Ž”LÐÇ.@Hz[ D¹Ä§¼fX+í‘Qaí JeÔ¨eÇô‹î)®6„ôi§öÐCÁ°†çP`!¹ö裂¬ ø$1:tÁò»žTe¤+Ÿ#nWÿ âÒ ‘µBñ4û,bCZÏ‚56 [•ê&ꤩ‚¹îºë®'Ÿ|î:?zì±Ç`aB¬ª…Æz1¢ G©ŽÓA¾Ö)?ç`O^tI"ÊÙ:¾t6®"ûÈ„t <>º±«´Nƒ0Õ€v€"Ûx úï¾ûîcŽ9_-ZNíRõ/%Q9ùµì_jãJ>‹Æ9§wbþ2Î/‹ëƒ¸Ë_‰WЯdìò83SJA47G ˆgXØ—]v‚~ÐÔqLJ¿Î›7I\Ÿ låIÈ•Ä&$û¥ªà¬†Ð~^9k(ePˆøà£VÆÔÁRIF®6su A©½óÎ;€ÝvÛm·ÜrË{g„VCµB+±-LHjä{Ýt•t5Bý3e.Ýès^º Þ˜â+ïDèDHEèD+§ní9çœsþùçÃûÇü!§¡õo½õVâ2[…1B‘6‹¢:Òbš"?il„0ª–Ú?W6Èy’𾕼Q ’¨>H;KQ׳}Šª7’RvpÃlñ°’kˆ“ YÔÓÓªÙn»í Œ.¼ðB°!Då6¤@‘ˆJ´<ÖOÒÜáÍv»ø^N’FåäJ ç^D e}Ïø tZ”AÜß”êãdq¼÷*I ø ±£;ï¼Ä‘×ÎŒoN/®©‡ &‘W Q0-¤„<+Y È© ¥ëo½_+â&ãd6¥NPÙÃItþ,j\òlZC@äSûöÛoYí¿ÿþèùå—AAÄÆüqØ™€Rêû¢ Ò²þÀ¨|pB™¼Y¬DiCéf7ù“b}«–5ºdŽÒÌ3É”¢g 2hß}÷FÈ!¢8ÙÞ{ïM<ª—AÍAB!*ŒØq+Ùüijü¨ÝŠÃ*>¿UÀHZNxØ‚öb«ˆwâÊ܈tÔÆ2(EóÇ)Æ›nº  tîC `áú«¯¾‚lB2n ä~¢­Ä›×JšR¤úàWðp¹¶Œ :-î,£…CŸäs&»WE£¹è"E=‘Þ‘ÎzÑ¥À“á¬!£ Hè(­„ÕvØa‡áO0øçõ¬D—ïÔùðžñŠÉ!0ľÃé/­ƒO ÅBѬ´cÄ\z!E2_sx¨4½E¹0Hˆg–î¼Y)r[. ­ÀkL}$¤K½yÞî*8tpÏ¥¨[rþ‰1UQ&$냜Yá7cÕSð=,t&Þ?QDGD€JNòèÜx㨇<è ƒ æ˜C¹”+Ïh23‘•ã/­òQ1W{à’…}Ã.¥¡âú àåf,bÙðÑ:Þ‚£ Û\å:sÕW@0@˜9¾’YH7@`ôÁŒˆëìPuIg#wf ;qx ^³ÿÓ‚`y½ž*ÑñJ@Õ(ÝXO5Ïb¬¡˜Î‹êœòe¾bΜϑ¥.ðâ2’J`(Ö`½eË–Aô ;t/^ +œR.ƒr¦¯PÞ¶f¬³¹yB{;Š\[ÆŒA•kcW×8䩾‰íçiŸ¸FÑ(_ý!bÒ~'b•%Eq d)gI“´#¤AÙ?óÌ3‡z(ô:®E14:A>ðfW¯^°‘4¸ 2Èå t~3sxhø¹?ÜTI’†J[[ÒÒÒ1aü¾Z;}§ Vù¥ÆèØ`È×(&ÒPÔnŸGˆŸÐÄ0E™ŠXë9‘æŠ"ªE­O ( ^ï¹çžC q~¼Q‘·Þzë7Þ dQ&$‹àØZLMƒ½+Š× õ,;òÀ+±|ŸE{ƒ’Q)ñ›ßüÛß…ëT‰Mw‰q…½vëO(îˆí ¶,dVŒ0ÂXiÐE‹®(wŠèpíS”J–[T ‘J*e¥NâwÆ2ÈUŠ¥´°äÖ[=¿¯·×ÝæNÒ±jÕêöÿ‹Õ¯¿ÕÒ4´`ÁÂR¡[o'"â³Ð¤°‰È¤ä´´4Û²'~x ¹[Í4´ã3þáïÏýÁvìë­{DRÁCÆ-ª”rE²¶²Cµê•ßë…[¶ôê$ yQ-Ò\?äO2&ÞàŸË8¡k¿ƒáï.<ñWÿôÄÿþ¬·o5>½}ƒ#N:úbÙBžtªµÛ¬¯£¸ßˆ¨œÑù,h8,ìcÃ÷‰Æ®ýúëqã:6nXsÕ¥'uv´ :1—ÝŸæÜKýå –Žß\ÈÇæÁ‘Bši | ]ÞÙÙqéù'Âëéé=oØØ-u½!:»':ñHçÏ÷PõCâ£|¥“2ùc€ü™ê›8±«±©±½­m\׸Á!8\ “ˆå¨:å …2XgeÊY:bß|È+†Ðl÷yýÆn0"xèäÉ“øøãv[‘”ñU|ò_(Ù|&£äùý9òšÑH­šÁ°f6Ã[ “/ñÙT>WɺÊ'%"‡š7¶˜ ›…ªÏ•ÒWäFðì •Ì^0ôËïv‡cÈéæúó@ÏDP±¨·ßøe½¤„ŽP2:eBJÌè°‰%dG OïR¡Q¸´ŠƒÛòü ¢‡‘*dû‹Gt‰#kÂNûª¤Œ¡t#­ËÎ"Ht±¦4| ÛMp¹¼Ÿ¤EÜÞêâáóžï¢ã„¬Qt„k¸PP”«²ª7É‚[5U¿ßÕ¨ž³äq]ŠûC,Øó\¢M8* Â1¦p,[83½ü^d•? ˆÎ‹Šö¬˜ÀË*lÏT*6ÜYÄÙ{Ó`ÇbW½ò%iÑùAª£½mü䉤׵7~C‘Ä( §t¹ÓeXTëp$‡fññ~ƆZ暉~“ÿ€Ê¨bÍgLN®™B±GHúbt[+UÂ;ˆs&/¼´êâ‹o„Úbç Ðf ‡q†È'Ütþ¬"AÇ>®G‹éxâeç3iyH’*HøüÊØhPuv1Ee ÍM«^}“6û¥öp>Äùä“O–ßÿ@ÿ 4kr•Cò³Î9—²Ç”WÅG>)>«0ÖÄL€&ga *÷Yç O-X4ÖêŠÆtvœvÚ©´q[—ïø¾•vËñÂa·ºô,¥ÿ«‡ÝRZܽ‚šñF¢ÿß…M`ߟH>zK¾‡`ôö?\Šåjº¸QIEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/configdialog/images/query.png0000644000076500000240000000433512536324427024766 0ustar philstaff00000000000000‰PNG  IHDR`U“D¾ú pHYs  ÒÝ~ütIMEÕ(+!âÕbKGDÿ‡Ì¿nIDAThÞµY[ˆ$Wþ¾ÿTOOÏegvv¢K‚l’…DŸdM4;ã…@\!‰ !^0Óð²¢qF‚ø (D ˜B .® „<$/1DÌLT–Äû 3»Ó;—Þž®:Ÿ§ªº«»ú²“ø33}êüõõÔùÏÿý—S¦\’DI6’p$É[ÒË È{ï½—¼²÷ ×Rª=‰¢™™™sæ²™ ×Î…¹ƒéM4Š;ç×7666Ö×7Ö7ÒÁÆÆz¸^_sÑ¿|~›2$øÉ©/¯Ôëõúéz½^_Y©×O×ë+§ÃÌéÓ§Wê++õƒèÏœz‰AغóÙsO½ýrîÙ;·ÂX¼¿7ž4›Íf³9æÍ{û±‰FÌ÷)ìÓ ¦¿ÙÖQ‰÷^dºµ}„IG@ªµ{©Ñ¸Ôh4KÛ͘äH!IZ¼³µ}9ö"Iù¸µ{©ÑÂh H€â£ ó7 M;Ë2#™Þl†öv#q¥kèàÀz¿¾[,ÜÙܺ £„\$™Å=,Ü5и–Þ?d•»Û"¥ð@ÈV,;»„†¡„a›"îýúônwÏ ¡ >I ›3ˆ"R©ë)Øî¾A„§#Ieö3‹Iš‘ð ˜%¤(béÝex‘̓ÄS¢ò0 (5—(Û¿ìÞ"K¤çäÌÜüáù™ ŠÌý‰àeÉäÁÐ=nRmanfrbbræðBÕƒ%RÛ‰ Ûä”ÝÜBàcRµù(Ý\TÏ* ƒù6áÑáÁ _†ØN Nɧv§×ÌŒïpNôáÈyP4:QLä¾ ‰ŠÒÇS’ÄíZ¤œÖD¼¥äÈd4 … Hô/áæ—Ÿ{ä±^|ŸC*›¿ÂïnlnîÝôÌaéç'D_™öÃsšq,ÑÔoþyí*Qä.¹ˆ-“pÈi82䥶@/MrsF/áÞyoª¯ßÑÏNË‚eúñ!†|0ªÂ»ô¹çïÚ‰$¹fs?Èk?3ç‡`©€%ŒËžfúƒó1)‹7«¿…˜~ÏÞìal9>çA'²Çk~Ç0^ÐÞY‘>þ®‰Å[Ÿ¾ Þ|`ì¢e_po$µïîšÿæ·ªÞ†Ôû9>çÆò"ÛÛþÓ/ŸùRZsHiÂé+[Êv];¾ºÞÒòWÛ#Ú³0ð@ÅÚŸèkXÜ2ÛëóÝÅi™tðTàŠMÄ€´&ïÄÄûÛÆá:Ç Èû¨§| ]3hËönyGëÅŠJôýxäýA殡}0K)I*´–Áæ Ù^üô “í2=Kð`cf4’¹­Ï¾tGÓñJ$­®©Nd@@XWÐe$Gç+‡|pŽ‚¥ølRi —V¬Ó¢MYgQ½›xøžûž›‘ЫG)*6 Á9òàÚUÓRÕ÷ß÷Èn{hÆx â ƒOÐ'ä,SþåOhªVgøLÅE¬ÿº&öêKð¡³1!õ§})>ï“5rÖºà B¤`›mÓx+Èx0’ÉÜŽ™fnÊâ]b|&ªkKŸÂÂê:Nw9È þÐdAß©ƒŠøN]„QÅ©âü ãñŠÙN>åv…ÀqÝ´S¥+…¥GÊ28R÷é‹úÜR½ø> ”鎜ÏDcç(94é™$ÓSW–:á¥\0¸£ðiXKÜÑ’[ÊðB_>°¾Qúég®a,>ž86‰>ý@ü¸ù€ÉÜõ 潯,^WKÆl‰:ņVËA|õêëŽ]{ìú£–Œs{þ­ád'&> Ýi-ì%Éût£ÛÑTm m Ð÷áå³ó"MºZE•ô§R‰‚T*QU*a>Š&œ9‹&ê{ñ57™ò`öÑÛO}ìí—S·?:+#~âì׿±¶¶¶ºº¶º¶kk«ázu5Ì@¿öÀÙ»™¨¹'—––––——–—ÒÁÒÒr¸^^sÑ/˜oc•$I’$qœÄÙ IâpÇaî`zO:çœsáp„wÃá±sÖ´BBÍ_Ô¤½bþºíÀúÂÔÿEþkV­À´n^–IEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/configdialog/images/update.png0000644000076500000240000002015012536324427025074 0ustar philstaff00000000000000‰PNG  IHDR`Tò¥Ô pHYs  ÒÝ~ütIMEÕ) týÃÊbKGDÿÿÿ ½§“õIDATxÚí\ ¸Õ•®[½¼~ûÆ[X»lB‚€(Q1âF@Q¢fâDÌ DpAKçË¢IŒÆI&Ž£d&åSBqb6 @áñöýõë·t÷ÿÞsï­[UýˆæÓ/É7–دººêVÕ©³üç?çËf³Žã¤Ói×u9çXgŒ9zÁû«ÙH+æ'³[x{Ë?ÖøXD",“É@4ÎûK®EÈ 444´~ý†h4Îy²eøÏ!3îpùÕ˜üUnef‹þÊ­Oy 5 ÞÑÛíïv|“Îd*+Ëo½å–(4ª§§»»'uíu×õ÷§„‚1‚Ç0—áoNeÞ ¸Ü„½ô¾¤¤Ìh³øÎ͵‹´’‹ òYÝ““k|9pP@ïÁø84q“ɾ§ŸzÇFÉêJKKËËËúûóèþâ±h$ç™l&“f–Â]¹òú¤êÐC‹ÇÓi¨#¤ñ„ÉÌu¨º‹k•·šë‚ãÓ ³\ônOŠÇóJŠ‹±-J£C™t®:‰B"GŽÔ7·4•dIºê,t¥ä™ôP[{[EEeUUu~A~¿Ë\õ´è G>Nó„å ðažpà†Ó ÷b|q?œCX„€ŒëÆ€¸%|ýâî.+-jkk-...,,‚“ sóÉ ÜÆÆ†ÚÚ‘îª^5mÚ a°Bû¼KÔzÍô:ÌÜ|Ój@ºÀ;¾ãKi05X”Ì•K¹B¿øÅËåe…>]9y–¨ÞÄI©$&‚|²?þø9çœSRR’H$òåB+yyyô‰%G£Â‹ Â7oÞüÊ+;ÇŒ%agÄ’ç5Hñ…wpé¡sûW‘¬Ìè³}óTàmŒæ_ß~öQ½&GÕ6ÿ4räȪªªX,–¯P¿ÁÏ›7¯³³clÝiÆ\œUÆZ·@¬DY.Qž“+™ôØî*Çá*¼¢ü‰‰òxf¾åŸô‰©˜Ïm]Ó ˆ‹Ì9¾C/…+|tÒžÜp­„!&Ü?§ïÙ,׋±),P"Bp‡@ Æ¸|&&ÔR Æ y±X˜@š9Ïf²±xL˜n$áaœ~¨!.Ò2Ë›zÖcÃ?¿U1Ƽ‚&ØÉxtßøZ"úsÒ …TØS" _ØBãC¢¯JŒZñ£¸ýL;Á1Å£±ŽÎŽƒ:t ¡áhGW'v„Ò¥úRÀý)ÁšªšÑcê&NšR^Q“É^È‹™h­àô¼µP+òs³XÉâ¯ÐE(¦ã¸´¶H\ ÔTlÁyž ÚlÆÔМQ0‹j;•¦ËÔMâ–¸1‚£ %S: ã¢\W"Å¡U2-t0RQQôøÚk¯¾øâ Ím-ímÅeå#ªk&L‚q¦”•—WŽ€Buwuµ45h<ºcÏ.žN®9súÌç/¨®™ìíI¥ú }ŽÊ \e*R6މ07×Q2f« "³µ„»$ò6œ)håzjªõS#¤¨òÐŽÖ*mba‰[#ÑàÁBw„8Ã:Œa;„›hx±ŽŽö¯~åKÏ>ût¢Xt湓&L‚XqÃGÞx¸ô(ç-m-¥•U¦N>{Î)•çô%“ÍMÍ ¯ìÙ½eë§OžrÞù7eZggg&=b E1ëæ,ƒ cøÌ ˜˜ÆA\z!/.Ýš%³bD#EÉi[ŒÞa¥´¤´?ÕÑ|ûÛß*]±bÕÂ…gŒ=¦”ÈKˆ‡ué €¹ë>ðç}‡Þ:ôÈŸ¯]7gÁ©“§N+(,ž8eZWgÇk{voÚ¼qöŒ™ŸX}]yňŽöv‰8ˆœ±°ŽFÓäœýÙ©••šìÔ$܃¸÷ÏÆAd_B÷p›Y½ѤõB¾™ôËP%Rwbö…v”—•¿òÊŽ?³ÈèöÛï=åÔÓ…¼ú‡†ñ___RçRÄ‘ÈØñ¦L‡ÕÒܸcÇÏ^Üòý—ùY±ª¼¼Ê¢³ç~è´íÿýÜõ7\»ò•ç/[ÑÝÝ $A‰Ž67×äóÂÂ(Û&ûÌgåT´÷ÕR‹Â à fE1eP$#£8fh {B@Ð…ÊÊÊêêš'þã[U[¸î† K–\¯˜ìímmmAàv)ñE¨bÚsÊÏ¡AD­®/¿ `ÅÊK/XvѳÏ|ïñïžqÒ)g.]•Áé–^ôіƆï÷ñ]¿ÜyË­wº‘¼¾d/ìÚg/Žm]Ìxf'ÆLªÁæøý% Ǹ4¥fzUõ´µ éeP/rPR©>{{Åå¹`ÁÉgžu6¾¶µµ ¹D"ì,R”.R墢ûüÊgœùðÝ›››ó ŠÀÑ456ž»|剋ÏûÔ§¯ÛùòK•#ªpuì½\t²21Š:c†²•/Kwn\5àâK/½ôÐC=ðÀƒ3gÎxêé-¤5òAeÕCΪ8+¾°¸ªp¶u²®pŸ±Xgij8zù«ÇŒ{Ï?þ•׎=¦®±iÚ¬F·ù»ÿ­/uîÒó[š›aàïh|ôa=„™ŒÇ…fý,uP~Š{¾ÛDôœÇÈÅ8 2FèË’%Kð­££Cj ‘ <= XÈ¡ÁVj‘þ› 1Å››N_tVeÕˆuë×]¸f]í¨QP×ÎŽŽ¢¢â57m|ðÞM‘XdÑY‹ÛÛZ’¸àíŽ/Ñ¢/qÕÿ\þåÍÎ¥AƒþÅ-)½`½««kÁ‚#FŒÀB þÿê—Ýlmiž>cÖý›ï{öë5= "«§·7ËûĆÛ>ÿ¥öìþâ]&ó.Ûyr—äÍ}Nš ²]OÀ–ÖÖVøiHF ![«y €pm„œ«É>nÅx^¼³³ý„y'Ý{ûæ-}­¯¿Ÿì5™L"ê]ñéï¹ÿGòó ¹À¨ïx|‹êwìŒU‘9QŠïú’U" ÃP"³ŽÈ¹§扸«Û|QBxïª/¸¸x,ÞÞÖrÊÂEk¯¸êù'¾KàÉqQnè©Q½`ɲM›nýB;¿ÓñÅ>Ž¥6Ö5 ˜&ÿØj²ƒFÀ›@}¡Ål üŠ:„’ß µÂ²À… «ÚÁu\üQScÃÅ«>6klÝ‹[·–”A·7ÒÞÞ>÷äSãU5÷Ý{GUuµ üŒ1þŽÆ÷_›'•¬õΈF’y(xŸeË–íÚµ ñÕ0ŠÄ=@DÁe%žp û÷ï‹Æ¢„H83Øžk‚Ægha gWÙ1óˆMÎ;­m-7~öÖË?vɾ “ÇOœ„‹FÛZZ–_vÅWî¼åG[ž=gñy¥ˆt‘ÃU­,"’麘¸;…]®*YiOÃñ‚ÂB(¢æºuëÖ®] Ï£€<÷î Q.ÌãXÔŽpàž={ Mþ„’I;Q´“KGfv¬¤¸Œ¹e+šþÒ© (¤tqIÁƒ÷}qÃÆ[êÖ\Oˆ~4Õ—¼ìºùڗ柴`ԨтKb:Óa?5žWcßþûR}ž Ê{–u1:¹Û›7oþ´eÓ¦ML555åååd2á’†%‡HÅ}ûö5jïÞ}«×|ŽJ¥” ‰Ø)˜PnЬJ—¸d³X8jÛöm õ(A9ŽU6‘$*eÜwI{[›‚ ANZ~¤øpº¸ð\b½¤¬lê”iÓ¦MG¨1V§pa">¡·Ývç[o½ÙÐPTl˜‚µzºFR¤_“'_]]ûñ1¢ H‰¿Ð^­ TNŒ¨”ÑUUœ7ííí¹ùsë,˜üŒã#ш©ÀpS TXLHóλn¿ãžû`M%E…P"œ 9Êig{ï¶­§ô¶Î›÷"&fk1˜4U ƒÃýÆ×ÿ}á³W¬X ßÏ')dqƒx>‘hU­YøqŽŠ5TXb¦­‚€Ì<Üý,HiþF Ð O>ùÝÅ‹Ï^½zÍÛ¬/!;ûú3?XyõÚTOWV¢z0µÿôÏŸØû»_­»á_ÿŠ‚ÕòåË׬¹ö¬³Î°€o¡k5u1&ÓH&y.ÂS*kÌ'lÃTg3,8·êâJe¾Nì:Ñvú+“ÕkG}:ÊÆÉ=vt´-_~¹¡ j×σúZV]zéSÏ>w`ïŸÆŸ€J(N ~vÆgïúùöï?óôŠ‹V*Ôê?J;oN¬9"ÔA Oš4á­ÃoüÌÞÞ$'SO˜É(æèþšŒÂÕN€ùåc<óQQÞm8£)ÿ¡¹né‡õÉUiA»ã –Ìà"TóEÉŸð÷ë \×\}å=<ùS’…AF}==KW~ô‰ï>zÖÙç ×Dìe‹¢„'Yz$SÒÁK À¹¿ô(E Sq›,ÌäûQ•Î_šÐ€ÒÌ¡C‡äU ‹Cé…^xä‘GHƒ”bZ5Z ÄÞæúæÆ£ÂmK:´Ü˜±có+ª.¹øâÙsæ§…•ˆª/ØCuëúë¯Ç8&§Ý=ÊU.éæ,õêÐàò¦až†1¯ù" }*Æ—¨}¨®®)]}ccã­·Þ:þ|Ü€ ŠÐ¼$‹”XbzÁ ~nDåÎm[W^uMo—pÿn¤¯·÷Œœ÷ücÿËu×ñ–Ñ8ó¾ûî{ôÑGo¸áx• ®‘Ç0µìaÑfhCÌêJˆBÜø47Œ ý žULÜ Ünþðáè…Lž<™""HR´‚=± ðÔÓNëk­oki† …µJ½7abùȺ];w––•qnã(i¹øâ‹9bõîqûšT6¯âvàF\SÛâ6nÆ“ûóÁ޶6a\O®®ø8^Â#ªùfÁ¸Úã%EÔ ßÜÔÔ„û$g”£øçq{Ù²ŠÊÍ›óë—_,@¼G ); ûû?´èìlÙâ ùÆl½£…„NC‘³3M–|¸JVv²þqé¢ YX&¤ ¶C:v67wÊ”GW¤ƒçz]ÕFt‘Ä0M*0o|Ç ü#"A¸TxîØX|8ú5¢… 6ìÌ·ï@aÓ¦ÏèË8ÿûê¯KËJ¡)FF¶>’&ÚU?ÇT=(½¡d•Ì-pnÙÓ3ÐÛ‹B…#õÙÍ‹GìD[^æ¦ú‡L€{÷nŠº¸øi=ŠcÂ!ø±cÇ7nÌ¿ý XZ•6É’Ò‰§žþ“ŸþÝdF@6 H€ÛŒéÓ )ŠœùTKü„ºU29tà Ú¨bàÛó ⨤#ÿ()v‡xz(Ãá-“×ñÊBÍ…PUÞ&I7ð ÒS-ñ—»þ궤I|%9sÝL·DFÞµ¤çÎÙúòîS>¼ˆRn¸jdgœ3÷[;^hkm)*.!¡˜A(®›ö^¯€lt¢É\»Æ6x$Õ#k‹‹‹ò˜ˆ‘êêìLöu¹™,І38$¼C<1%S-€À¸Ë|‘@‘ŸÒà˜Õ^á –žû@ƒQ+[R6ú‡«ž3wî@W{ksz É·eD›êˆê1ãvî܉hEMÏ6D°ƒy>…l=ªOŽ8½í¢T×Ö–¦ú…cN$"ù ×ü<›~ýõ–ÎÎ~ÈHú©wÁÐèR à «Œ¹TbæÌw^PX4aìè½øØñ˜wÑ69넹Û_ø9Ž%ÎOÐlþÅ3ì‰Ñ¹ºJ·ó¨L¢ÕlUUaAAþà ô×ä¡ ³ê}ý£¯¿ÑÜÛ;hÀ²´8îz” —ì9UÄj»ÂDÞžšF÷]º­A6X‡"”••¡e ý]X ÈÏ/XvÁ‡Þøƒ#Û\YhJüàì9-’ä/‚(›‚hξ ;t6E cáú‚¼j­ŽÇÝÊŠ¢úú>@sÕ<ª;öóó£ùù¼«³«¹99óøšÊÊœ×X«×8 œ9SÁRµ²©5ckÒ­ÛLÈ“ê¶mÛ&< s¹¡ýXXs÷ýþ7íÍ͕蛑;ÃGÔM˜tÓM7žtò-]º”Ò ãì|粈kÒþjŸNóÖÖ$š¤4ÑL•C*•îîáes献(ÏÇ#qÝw)Œ³ó÷®ü±'¾ÓŽÇ4nÚ@aeº¤&SZséµëò%¨Òb. woOÏù®˜»ðÌ¡h"Q6âɧž†¡Ùæ>]¾jâ‚3¯cO5íÅb‘¦¦d_II‚†o–@L¥¥‰ùóÆ%ÀŸ2.DÀôáú–DŠñ€¤®¬Myì…ë:&\ÒY‚_pN{G¶©%3¶Î5ì¢éëV¥ó,´µÑbø³¬µ N¡‡›Ä4œŸ½°ý oºìšOž8ÿdp¯‘hÄÎNá•ÿôú óóÀ²#¦QG#àðÐãð‘GT›Ï‘[Ã!”–$d»..ËASÕ`š#IJz³¹²2fªt!&_Ñ'¸¶î¡/‰Kä1Ptííé’"Ž #¡ëPŸè°ŽÙî´[ßÈ®‘Ù~øŒEHý¿üÕ¯Ú·÷²+®J R™G¤Â@……¯îÙ=}úô!©5†KÌíƒüþÁu4ÍO”+é’HFÑÍ)ÕN€ ùHàŒ¦L©ª©®Œ‰ÊÍ"Ñ)©ìÇŠ KGÁm¶¶¡¯aðHýPkkº¸Hv° ¯@·úÇs›Xö/-¸ øÝªêÚÍwÝÕ¸ÿwßúY$\ð¢ëYX4Šþœ{÷Κ9ù$b»¡°™ë1ÑÃáªp¨C˜›þ]»¼%¤æÌšU-ÂÈŽ©&;®²\2GÀì8ÅÅnii4ã " ²²¾èô%³]]ÂÇALº‘Iw1 #ÓWk0´Ý?IªB9Çú Ÿ9~òøÏ^¿öиJÈ ¨°ðÏûö¡†PS[‹ìŽ'“(2OTëŒj©M,@¡úK'\-c¹¨U»S»–—GÀ6¨YYPùx,ÓÔ”íêŽT”œ°c˜˜-)ñ¬i¡5nS¶£6[P‘Ë–-?nòqÞyÛ…«.»dÕ¥à6~µ{×䉳’lµÝР.ÓQÌ—gä$k”1¹†Le:QðfXÄ¡uîä žÏ•s=[ P^XÀ»»Óí׊›·c»»ÔVœð‚»Œ&LœxûÆ/ýäÇwÞv3Ú¤öÿéé3fôˆÖϬãs™˜GfèwíÌÕê‚°h@›"uT–ØÎu{590¹%ÀF#ÂO£›:5ÁŽ÷&Yÿ`tÂøÄØºg&/wÃ&f4( ¦œ2¢{†Ž`@ÄrìwóÍ7æE/øÈâTJ¾(™û2Ÿùò îõIÓĂӆüó#Î,·“ö·Ô0šÅ.xéc³ô  Š0ªÉ4/ , afOÓ4ÝaBj?öÍzô&6+ÓËrkžlXÈ2lS¦$ )/„‹C‡x_*]Zær]ñÆuYØûØ&fd.·Ù¢±¥CtèíœõU[ƒüÌ\›7Wƒ¼7À_L–af-÷7ªƒU纙]Ø€_zÈ)(`Y=ûK6R÷«*áã2°g]]|ï>(”ìh0PƒÑh>îŠn€œ‹¡M=¢ÊDÀ¾¬ù‘ÌôáÊ¿æ,~ËjaȈÛĹÌs=UÈ?1Ÿ&ݱˆN ä9o¾•Åê¢b7›V„ˆQz†½j%Á,1(”¤¬™˜Ó6 ²~í„)Þ²Ù(ŒTÌ  ¢uFÕ¹¥ã–cèŽáœ´ž5œÎ8‚„"n»¾>“Ÿ¦ÏÚE_‘Wm†î¡Û)*ŸùSTCƒÂNǨ‘Q @˜³Î_äqBQ,˜jxäv5Ø¥ê”#µæ`É ð§þh6‘'&‚êˆGÝ‚B·7i¦ŽKý1œ<"~–“²Rã="×±ÆÏòœÌz|UKXÆïP‘+ >áG>Mˆ¥öZséqE f”T.5ÀÈ6t¢K¹‡—iª¨û A*¸È?Ó<=aÉ$GEžXMéWU ‡HbµÊ4-iOƒ»ŠÉdûæpP·}3ILj)<'4ì† mfk‘7®.(Û8ˆûÍ=SfîQ(QB2‰i-,Œ46f0Í©¢2‚Š4wr„æï a¡9lv]Ì6±°ú¹I}ŒÛ Ì\¿ÇXY.s˜æ7dB¡5H;'c3>Ì«D¯v~BLkðsåÔ‘OäWÅš[ÒmCS&ƒûtt£iùP„¿–vVZ©†!±g#³ŒhŒúçõ¿3óiŒÝ‚焆ó¨/«’Éú0.t¦³;Ôy2‰¦gDeLôVTNRÔà‹X,lhü¨£ãHÞ!d”:ÙE±œÆeüNX}ræÛ EÓ×Á¹õjŠ@,ã<<ÝZùW˜Uw7©Á tƒl ±7™©®rËË"¨Çf².jfcQ¯oÕ f"B:˜öA†ˉ›Mb^o¿`*îxK:Õ°2Ç÷Z—P6¤Ë¯ŒÑC@gH@Ÿ••F(p]fݎשj•¢YÎñåËËŠ >i¬ét KØdì'8ÄÚ+éD£4‰Âp 9ÀDò„L,”¦rgÔ(p`N^žx>‡ÞL'Áá“Vfs’HÁ)Æ¡×e!…‰†˜‡¬ Â7~üxÈèÕW_E•†Â9J£1QÙ‰¯1+nh {耓FâjtsÇŽ«W¯¶i3ë(ǼšÂá^ß"÷šY‘/Xob Ý)Ë“ôìà?>öÇ×ãy(%pÕVm„>ô!W¿Fžž,ÇwdëtIhŠêêj]ʬ™³ž{î¹9sæÚÝ–v y;ò·‹ñáb¼ÝÊI 6¦át÷ôŒ5 )”¬ È™æ\},„zkŽ“KDÌêv•::ÈôI‘X¬íº Ý?>ž!èOô]üò—»î¸ãT#ôÛ 4ú¢¡0›«%< ‘bΙ_!PŽð>pÿTAÜ¿ÿ7Ý$D–õ8騉î6>†å¦\™“× ÷ò˜ðøê.»çž{›š¿õbŒ+{1648Ò¿€Š;ö ÿr¼|‹å²:;z‹ 0ü´>iÒ$À\<*Ý j€"#~ÉOV½TÎê¶ßPdf©’!WI·^×ç »ô©ñ1ÈÐ`º¦º¦¶¦æoòÞM$6hB“Í”bZIT½©E3ÛWƒÊ³%*æ`) É®káƒdV1fnܸћ É}/ dóá÷a„æŽåX·fßý½ø‰š¨‡Çóä¤n_B.äí„æu·.}¸ÿ¾ÇÿÓ îXN>áýÅ÷6àc «ÿÏï“6ì3_Sޱø4èý%¼¸a–7§6æä_»åd¶þ¡Çÿ?Ÿ)ÎTàœÏIEND®B`‚PyQt-x11-gpl-4.11.4/examples/dialogs/extension.py0000755000076500000240000001035412536324427021610 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class FindDialog(QtGui.QDialog): def __init__(self, parent=None): super(FindDialog, self).__init__(parent) label = QtGui.QLabel("Find &what:") lineEdit = QtGui.QLineEdit() label.setBuddy(lineEdit) caseCheckBox = QtGui.QCheckBox("Match &case") fromStartCheckBox = QtGui.QCheckBox("Search from &start") fromStartCheckBox.setChecked(True) findButton = QtGui.QPushButton("&Find") findButton.setDefault(True) moreButton = QtGui.QPushButton("&More") moreButton.setCheckable(True) moreButton.setAutoDefault(False) buttonBox = QtGui.QDialogButtonBox(QtCore.Qt.Vertical) buttonBox.addButton(findButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(moreButton, QtGui.QDialogButtonBox.ActionRole) extension = QtGui.QWidget() wholeWordsCheckBox = QtGui.QCheckBox("&Whole words") backwardCheckBox = QtGui.QCheckBox("Search &backward") searchSelectionCheckBox = QtGui.QCheckBox("Search se&lection") moreButton.toggled.connect(extension.setVisible) extensionLayout = QtGui.QVBoxLayout() extensionLayout.setMargin(0) extensionLayout.addWidget(wholeWordsCheckBox) extensionLayout.addWidget(backwardCheckBox) extensionLayout.addWidget(searchSelectionCheckBox) extension.setLayout(extensionLayout) topLeftLayout = QtGui.QHBoxLayout() topLeftLayout.addWidget(label) topLeftLayout.addWidget(lineEdit) leftLayout = QtGui.QVBoxLayout() leftLayout.addLayout(topLeftLayout) leftLayout.addWidget(caseCheckBox) leftLayout.addWidget(fromStartCheckBox) leftLayout.addStretch(1) mainLayout = QtGui.QGridLayout() mainLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize) mainLayout.addLayout(leftLayout, 0, 0) mainLayout.addWidget(buttonBox, 0, 1) mainLayout.addWidget(extension, 1, 0, 1, 2) self.setLayout(mainLayout) self.setWindowTitle("Extension") extension.hide() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) dialog = FindDialog() sys.exit(dialog.exec_()) PyQt-x11-gpl-4.11.4/examples/dialogs/findfiles.py0000755000076500000240000001745612536324427021551 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class Window(QtGui.QDialog): def __init__(self, parent=None): super(Window, self).__init__(parent) browseButton = self.createButton("&Browse...", self.browse) findButton = self.createButton("&Find", self.find) self.fileComboBox = self.createComboBox("*") self.textComboBox = self.createComboBox() self.directoryComboBox = self.createComboBox(QtCore.QDir.currentPath()) fileLabel = QtGui.QLabel("Named:") textLabel = QtGui.QLabel("Containing text:") directoryLabel = QtGui.QLabel("In directory:") self.filesFoundLabel = QtGui.QLabel() self.createFilesTable() buttonsLayout = QtGui.QHBoxLayout() buttonsLayout.addStretch() buttonsLayout.addWidget(findButton) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(fileLabel, 0, 0) mainLayout.addWidget(self.fileComboBox, 0, 1, 1, 2) mainLayout.addWidget(textLabel, 1, 0) mainLayout.addWidget(self.textComboBox, 1, 1, 1, 2) mainLayout.addWidget(directoryLabel, 2, 0) mainLayout.addWidget(self.directoryComboBox, 2, 1) mainLayout.addWidget(browseButton, 2, 2) mainLayout.addWidget(self.filesTable, 3, 0, 1, 3) mainLayout.addWidget(self.filesFoundLabel, 4, 0) mainLayout.addLayout(buttonsLayout, 5, 0, 1, 3) self.setLayout(mainLayout) self.setWindowTitle("Find Files") self.resize(700, 300) def browse(self): directory = QtGui.QFileDialog.getExistingDirectory(self, "Find Files", QtCore.QDir.currentPath()) if directory: if self.directoryComboBox.findText(directory) == -1: self.directoryComboBox.addItem(directory) self.directoryComboBox.setCurrentIndex(self.directoryComboBox.findText(directory)) @staticmethod def updateComboBox(comboBox): if comboBox.findText(comboBox.currentText()) == -1: comboBox.addItem(comboBox.currentText()) def find(self): self.filesTable.setRowCount(0) fileName = self.fileComboBox.currentText() text = self.textComboBox.currentText() path = self.directoryComboBox.currentText() self.updateComboBox(self.fileComboBox) self.updateComboBox(self.textComboBox) self.updateComboBox(self.directoryComboBox) self.currentDir = QtCore.QDir(path) if not fileName: fileName = "*" files = self.currentDir.entryList([fileName], QtCore.QDir.Files | QtCore.QDir.NoSymLinks) if text: files = self.findFiles(files, text) self.showFiles(files) def findFiles(self, files, text): progressDialog = QtGui.QProgressDialog(self) progressDialog.setCancelButtonText("&Cancel") progressDialog.setRange(0, files.count()) progressDialog.setWindowTitle("Find Files") foundFiles = [] for i in range(files.count()): progressDialog.setValue(i) progressDialog.setLabelText("Searching file number %d of %d..." % (i, files.count())) QtGui.qApp.processEvents() if progressDialog.wasCanceled(): break inFile = QtCore.QFile(self.currentDir.absoluteFilePath(files[i])) if inFile.open(QtCore.QIODevice.ReadOnly): stream = QtCore.QTextStream(inFile) while not stream.atEnd(): if progressDialog.wasCanceled(): break line = stream.readLine() if text in line: foundFiles.append(files[i]) break progressDialog.close() return foundFiles def showFiles(self, files): for fn in files: file = QtCore.QFile(self.currentDir.absoluteFilePath(fn)) size = QtCore.QFileInfo(file).size() fileNameItem = QtGui.QTableWidgetItem(fn) fileNameItem.setFlags(fileNameItem.flags() ^ QtCore.Qt.ItemIsEditable) sizeItem = QtGui.QTableWidgetItem("%d KB" % (int((size + 1023) / 1024))) sizeItem.setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight) sizeItem.setFlags(sizeItem.flags() ^ QtCore.Qt.ItemIsEditable) row = self.filesTable.rowCount() self.filesTable.insertRow(row) self.filesTable.setItem(row, 0, fileNameItem) self.filesTable.setItem(row, 1, sizeItem) self.filesFoundLabel.setText("%d file(s) found (Double click on a file to open it)" % len(files)) def createButton(self, text, member): button = QtGui.QPushButton(text) button.clicked.connect(member) return button def createComboBox(self, text=""): comboBox = QtGui.QComboBox() comboBox.setEditable(True) comboBox.addItem(text) comboBox.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) return comboBox def createFilesTable(self): self.filesTable = QtGui.QTableWidget(0, 2) self.filesTable.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.filesTable.setHorizontalHeaderLabels(("File Name", "Size")) self.filesTable.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch) self.filesTable.verticalHeader().hide() self.filesTable.setShowGrid(False) self.filesTable.cellActivated.connect(self.openFileOfItem) def openFileOfItem(self, row, column): item = self.filesTable.item(row, 0) QtGui.QDesktopServices.openUrl(QtCore.QUrl(self.currentDir.absoluteFilePath(item.text()))) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/dialogs/README0000644000076500000240000000144612536324427020101 0ustar philstaff00000000000000PyQt includes standard dialogs for many common operations, such as file selection, printing, and color selection. Custom dialogs can also be created for specialized modal or modeless interactions with users. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/dialogs/standarddialogs.py0000755000076500000240000003345312536324427022744 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) import sys from PyQt4 import QtCore, QtGui class Dialog(QtGui.QDialog): MESSAGE = "

      Message boxes have a caption, a text, and up to three " \ "buttons, each with standard or custom texts.

      " \ "

      Click a button to close the message box. Pressing the Esc " \ "button will activate the detected escape button (if any).

      " def __init__(self, parent=None): super(Dialog, self).__init__(parent) self.openFilesPath = '' self.errorMessageDialog = QtGui.QErrorMessage(self) frameStyle = QtGui.QFrame.Sunken | QtGui.QFrame.Panel self.integerLabel = QtGui.QLabel() self.integerLabel.setFrameStyle(frameStyle) self.integerButton = QtGui.QPushButton("QInputDialog.get&Integer()") self.doubleLabel = QtGui.QLabel() self.doubleLabel.setFrameStyle(frameStyle) self.doubleButton = QtGui.QPushButton("QInputDialog.get&Double()") self.itemLabel = QtGui.QLabel() self.itemLabel.setFrameStyle(frameStyle) self.itemButton = QtGui.QPushButton("QInputDialog.getIte&m()") self.textLabel = QtGui.QLabel() self.textLabel.setFrameStyle(frameStyle) self.textButton = QtGui.QPushButton("QInputDialog.get&Text()") self.colorLabel = QtGui.QLabel() self.colorLabel.setFrameStyle(frameStyle) self.colorButton = QtGui.QPushButton("QColorDialog.get&Color()") self.fontLabel = QtGui.QLabel() self.fontLabel.setFrameStyle(frameStyle) self.fontButton = QtGui.QPushButton("QFontDialog.get&Font()") self.directoryLabel = QtGui.QLabel() self.directoryLabel.setFrameStyle(frameStyle) self.directoryButton = QtGui.QPushButton("QFileDialog.getE&xistingDirectory()") self.openFileNameLabel = QtGui.QLabel() self.openFileNameLabel.setFrameStyle(frameStyle) self.openFileNameButton = QtGui.QPushButton("QFileDialog.get&OpenFileName()") self.openFileNamesLabel = QtGui.QLabel() self.openFileNamesLabel.setFrameStyle(frameStyle) self.openFileNamesButton = QtGui.QPushButton("QFileDialog.&getOpenFileNames()") self.saveFileNameLabel = QtGui.QLabel() self.saveFileNameLabel.setFrameStyle(frameStyle) self.saveFileNameButton = QtGui.QPushButton("QFileDialog.get&SaveFileName()") self.criticalLabel = QtGui.QLabel() self.criticalLabel.setFrameStyle(frameStyle) self.criticalButton = QtGui.QPushButton("QMessageBox.critica&l()") self.informationLabel = QtGui.QLabel() self.informationLabel.setFrameStyle(frameStyle) self.informationButton = QtGui.QPushButton("QMessageBox.i&nformation()") self.questionLabel = QtGui.QLabel() self.questionLabel.setFrameStyle(frameStyle) self.questionButton = QtGui.QPushButton("QMessageBox.&question()") self.warningLabel = QtGui.QLabel() self.warningLabel.setFrameStyle(frameStyle) self.warningButton = QtGui.QPushButton("QMessageBox.&warning()") self.errorLabel = QtGui.QLabel() self.errorLabel.setFrameStyle(frameStyle) self.errorButton = QtGui.QPushButton("QErrorMessage.show&M&essage()") self.integerButton.clicked.connect(self.setInteger) self.doubleButton.clicked.connect(self.setDouble) self.itemButton.clicked.connect(self.setItem) self.textButton.clicked.connect(self.setText) self.colorButton.clicked.connect(self.setColor) self.fontButton.clicked.connect(self.setFont) self.directoryButton.clicked.connect(self.setExistingDirectory) self.openFileNameButton.clicked.connect(self.setOpenFileName) self.openFileNamesButton.clicked.connect(self.setOpenFileNames) self.saveFileNameButton.clicked.connect(self.setSaveFileName) self.criticalButton.clicked.connect(self.criticalMessage) self.informationButton.clicked.connect(self.informationMessage) self.questionButton.clicked.connect(self.questionMessage) self.warningButton.clicked.connect(self.warningMessage) self.errorButton.clicked.connect(self.errorMessage) self.native = QtGui.QCheckBox() self.native.setText("Use native file dialog.") self.native.setChecked(True) if sys.platform not in ("win32", "darwin"): self.native.hide() layout = QtGui.QGridLayout() layout.setColumnStretch(1, 1) layout.setColumnMinimumWidth(1, 250) layout.addWidget(self.integerButton, 0, 0) layout.addWidget(self.integerLabel, 0, 1) layout.addWidget(self.doubleButton, 1, 0) layout.addWidget(self.doubleLabel, 1, 1) layout.addWidget(self.itemButton, 2, 0) layout.addWidget(self.itemLabel, 2, 1) layout.addWidget(self.textButton, 3, 0) layout.addWidget(self.textLabel, 3, 1) layout.addWidget(self.colorButton, 4, 0) layout.addWidget(self.colorLabel, 4, 1) layout.addWidget(self.fontButton, 5, 0) layout.addWidget(self.fontLabel, 5, 1) layout.addWidget(self.directoryButton, 6, 0) layout.addWidget(self.directoryLabel, 6, 1) layout.addWidget(self.openFileNameButton, 7, 0) layout.addWidget(self.openFileNameLabel, 7, 1) layout.addWidget(self.openFileNamesButton, 8, 0) layout.addWidget(self.openFileNamesLabel, 8, 1) layout.addWidget(self.saveFileNameButton, 9, 0) layout.addWidget(self.saveFileNameLabel, 9, 1) layout.addWidget(self.criticalButton, 10, 0) layout.addWidget(self.criticalLabel, 10, 1) layout.addWidget(self.informationButton, 11, 0) layout.addWidget(self.informationLabel, 11, 1) layout.addWidget(self.questionButton, 12, 0) layout.addWidget(self.questionLabel, 12, 1) layout.addWidget(self.warningButton, 13, 0) layout.addWidget(self.warningLabel, 13, 1) layout.addWidget(self.errorButton, 14, 0) layout.addWidget(self.errorLabel, 14, 1) layout.addWidget(self.native, 15, 0) self.setLayout(layout) self.setWindowTitle("Standard Dialogs") def setInteger(self): i, ok = QtGui.QInputDialog.getInteger(self, "QInputDialog.getInteger()", "Percentage:", 25, 0, 100, 1) if ok: self.integerLabel.setText("%d%%" % i) def setDouble(self): d, ok = QtGui.QInputDialog.getDouble(self, "QInputDialog.getDouble()", "Amount:", 37.56, -10000, 10000, 2) if ok: self.doubleLabel.setText("$%g" % d) def setItem(self): items = ("Spring", "Summer", "Fall", "Winter") item, ok = QtGui.QInputDialog.getItem(self, "QInputDialog.getItem()", "Season:", items, 0, False) if ok and item: self.itemLabel.setText(item) def setText(self): text, ok = QtGui.QInputDialog.getText(self, "QInputDialog.getText()", "User name:", QtGui.QLineEdit.Normal, QtCore.QDir.home().dirName()) if ok and text != '': self.textLabel.setText(text) def setColor(self): color = QtGui.QColorDialog.getColor(QtCore.Qt.green, self) if color.isValid(): self.colorLabel.setText(color.name()) self.colorLabel.setPalette(QtGui.QPalette(color)) self.colorLabel.setAutoFillBackground(True) def setFont(self): font, ok = QtGui.QFontDialog.getFont(QtGui.QFont(self.fontLabel.text()), self) if ok: self.fontLabel.setText(font.key()) self.fontLabel.setFont(font) def setExistingDirectory(self): options = QtGui.QFileDialog.DontResolveSymlinks | QtGui.QFileDialog.ShowDirsOnly directory = QtGui.QFileDialog.getExistingDirectory(self, "QFileDialog.getExistingDirectory()", self.directoryLabel.text(), options) if directory: self.directoryLabel.setText(directory) def setOpenFileName(self): options = QtGui.QFileDialog.Options() if not self.native.isChecked(): options |= QtGui.QFileDialog.DontUseNativeDialog fileName = QtGui.QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()", self.openFileNameLabel.text(), "All Files (*);;Text Files (*.txt)", options) if fileName: self.openFileNameLabel.setText(fileName) def setOpenFileNames(self): options = QtGui.QFileDialog.Options() if not self.native.isChecked(): options |= QtGui.QFileDialog.DontUseNativeDialog files = QtGui.QFileDialog.getOpenFileNames(self, "QFileDialog.getOpenFileNames()", self.openFilesPath, "All Files (*);;Text Files (*.txt)", options) if files: self.openFilesPath = files[0] self.openFileNamesLabel.setText("[%s]" % ', '.join(files)) def setSaveFileName(self): options = QtGui.QFileDialog.Options() if not self.native.isChecked(): options |= QtGui.QFileDialog.DontUseNativeDialog fileName = QtGui.QFileDialog.getSaveFileName(self, "QFileDialog.getSaveFileName()", self.saveFileNameLabel.text(), "All Files (*);;Text Files (*.txt)", options) if fileName: self.saveFileNameLabel.setText(fileName) def criticalMessage(self): reply = QtGui.QMessageBox.critical(self, "QMessageBox.critical()", Dialog.MESSAGE, QtGui.QMessageBox.Abort | QtGui.QMessageBox.Retry | QtGui.QMessageBox.Ignore) if reply == QtGui.QMessageBox.Abort: self.criticalLabel.setText("Abort") elif reply == QtGui.QMessageBox.Retry: self.criticalLabel.setText("Retry") else: self.criticalLabel.setText("Ignore") def informationMessage(self): reply = QtGui.QMessageBox.information(self, "QMessageBox.information()", Dialog.MESSAGE) if reply == QtGui.QMessageBox.Ok: self.informationLabel.setText("OK") else: self.informationLabel.setText("Escape") def questionMessage(self): reply = QtGui.QMessageBox.question(self, "QMessageBox.question()", Dialog.MESSAGE, QtGui.QMessageBox.Yes | QtGui.QMessageBox.No | QtGui.QMessageBox.Cancel) if reply == QtGui.QMessageBox.Yes: self.questionLabel.setText("Yes") elif reply == QtGui.QMessageBox.No: self.questionLabel.setText("No") else: self.questionLabel.setText("Cancel") def warningMessage(self): msgBox = QtGui.QMessageBox(QtGui.QMessageBox.Warning, "QMessageBox.warning()", Dialog.MESSAGE, QtGui.QMessageBox.NoButton, self) msgBox.addButton("Save &Again", QtGui.QMessageBox.AcceptRole) msgBox.addButton("&Continue", QtGui.QMessageBox.RejectRole) if msgBox.exec_() == QtGui.QMessageBox.AcceptRole: self.warningLabel.setText("Save Again") else: self.warningLabel.setText("Continue") def errorMessage(self): self.errorMessageDialog.showMessage("This dialog shows and remembers " "error messages. If the checkbox is checked (as it is by " "default), the shown message will be shown again, but if the " "user unchecks the box the message will not appear again if " "QErrorMessage.showMessage() is called with the same message.") self.errorLabel.setText("If the box is unchecked, the message won't " "appear again.") if __name__ == '__main__': app = QtGui.QApplication(sys.argv) dialog = Dialog() sys.exit(dialog.exec_()) PyQt-x11-gpl-4.11.4/examples/dialogs/tabdialog.py0000755000076500000240000001637212536324427021530 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class TabDialog(QtGui.QDialog): def __init__(self, fileName, parent=None): super(TabDialog, self).__init__(parent) fileInfo = QtCore.QFileInfo(fileName) tabWidget = QtGui.QTabWidget() tabWidget.addTab(GeneralTab(fileInfo), "General") tabWidget.addTab(PermissionsTab(fileInfo), "Permissions") tabWidget.addTab(ApplicationsTab(fileInfo), "Applications") buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(tabWidget) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.setWindowTitle("Tab Dialog") class GeneralTab(QtGui.QWidget): def __init__(self, fileInfo, parent=None): super(GeneralTab, self).__init__(parent) fileNameLabel = QtGui.QLabel("File Name:") fileNameEdit = QtGui.QLineEdit(fileInfo.fileName()) pathLabel = QtGui.QLabel("Path:") pathValueLabel = QtGui.QLabel(fileInfo.absoluteFilePath()) pathValueLabel.setFrameStyle(QtGui.QFrame.Panel | QtGui.QFrame.Sunken) sizeLabel = QtGui.QLabel("Size:") size = fileInfo.size() // 1024 sizeValueLabel = QtGui.QLabel("%d K" % size) sizeValueLabel.setFrameStyle(QtGui.QFrame.Panel | QtGui.QFrame.Sunken) lastReadLabel = QtGui.QLabel("Last Read:") lastReadValueLabel = QtGui.QLabel(fileInfo.lastRead().toString()) lastReadValueLabel.setFrameStyle(QtGui.QFrame.Panel | QtGui.QFrame.Sunken) lastModLabel = QtGui.QLabel("Last Modified:") lastModValueLabel = QtGui.QLabel(fileInfo.lastModified().toString()) lastModValueLabel.setFrameStyle(QtGui.QFrame.Panel | QtGui.QFrame.Sunken) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(fileNameLabel) mainLayout.addWidget(fileNameEdit) mainLayout.addWidget(pathLabel) mainLayout.addWidget(pathValueLabel) mainLayout.addWidget(sizeLabel) mainLayout.addWidget(sizeValueLabel) mainLayout.addWidget(lastReadLabel) mainLayout.addWidget(lastReadValueLabel) mainLayout.addWidget(lastModLabel) mainLayout.addWidget(lastModValueLabel) mainLayout.addStretch(1) self.setLayout(mainLayout) class PermissionsTab(QtGui.QWidget): def __init__(self, fileInfo, parent=None): super(PermissionsTab, self).__init__(parent) permissionsGroup = QtGui.QGroupBox("Permissions") readable = QtGui.QCheckBox("Readable") if fileInfo.isReadable(): readable.setChecked(True) writable = QtGui.QCheckBox("Writable") if fileInfo.isWritable(): writable.setChecked(True) executable = QtGui.QCheckBox("Executable") if fileInfo.isExecutable(): executable.setChecked(True) ownerGroup = QtGui.QGroupBox("Ownership") ownerLabel = QtGui.QLabel("Owner") ownerValueLabel = QtGui.QLabel(fileInfo.owner()) ownerValueLabel.setFrameStyle(QtGui.QFrame.Panel | QtGui.QFrame.Sunken) groupLabel = QtGui.QLabel("Group") groupValueLabel = QtGui.QLabel(fileInfo.group()) groupValueLabel.setFrameStyle(QtGui.QFrame.Panel | QtGui.QFrame.Sunken) permissionsLayout = QtGui.QVBoxLayout() permissionsLayout.addWidget(readable) permissionsLayout.addWidget(writable) permissionsLayout.addWidget(executable) permissionsGroup.setLayout(permissionsLayout) ownerLayout = QtGui.QVBoxLayout() ownerLayout.addWidget(ownerLabel) ownerLayout.addWidget(ownerValueLabel) ownerLayout.addWidget(groupLabel) ownerLayout.addWidget(groupValueLabel) ownerGroup.setLayout(ownerLayout) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(permissionsGroup) mainLayout.addWidget(ownerGroup) mainLayout.addStretch(1) self.setLayout(mainLayout) class ApplicationsTab(QtGui.QWidget): def __init__(self, fileInfo, parent=None): super(ApplicationsTab, self).__init__(parent) topLabel = QtGui.QLabel("Open with:") applicationsListBox = QtGui.QListWidget() applications = [] for i in range(1, 31): applications.append("Application %d" % i) applicationsListBox.insertItems(0, applications) alwaysCheckBox = QtGui.QCheckBox() if fileInfo.suffix(): alwaysCheckBox = QtGui.QCheckBox("Always use this application to " "open files with the extension '%s'" % fileInfo.suffix()) else: alwaysCheckBox = QtGui.QCheckBox("Always use this application to " "open this type of file") layout = QtGui.QVBoxLayout() layout.addWidget(topLabel) layout.addWidget(applicationsListBox) layout.addWidget(alwaysCheckBox) self.setLayout(layout) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) if len(sys.argv) >= 2: fileName = sys.argv[1] else: fileName = "." tabdialog = TabDialog(fileName) sys.exit(tabdialog.exec_()) PyQt-x11-gpl-4.11.4/examples/dialogs/trivialwizard.py0000755000076500000240000000703012536324427022464 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtGui def createIntroPage(): page = QtGui.QWizardPage() page.setTitle("Introduction") label = QtGui.QLabel("This wizard will help you register your copy of " "Super Product Two.") label.setWordWrap(True) layout = QtGui.QVBoxLayout() layout.addWidget(label) page.setLayout(layout) return page def createRegistrationPage(): page = QtGui.QWizardPage() page.setTitle("Registration") page.setSubTitle("Please fill both fields.") nameLabel = QtGui.QLabel("Name:") nameLineEdit = QtGui.QLineEdit() emailLabel = QtGui.QLabel("Email address:") emailLineEdit = QtGui.QLineEdit() layout = QtGui.QGridLayout() layout.addWidget(nameLabel, 0, 0) layout.addWidget(nameLineEdit, 0, 1) layout.addWidget(emailLabel, 1, 0) layout.addWidget(emailLineEdit, 1, 1) page.setLayout(layout) return page def createConclusionPage(): page = QtGui.QWizardPage() page.setTitle("Conclusion") label = QtGui.QLabel("You are now successfully registered. Have a nice day!") label.setWordWrap(True) layout = QtGui.QVBoxLayout() layout.addWidget(label) page.setLayout(layout) return page if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) wizard = QtGui.QWizard() wizard.addPage(createIntroPage()) wizard.addPage(createRegistrationPage()) wizard.addPage(createConclusionPage()) wizard.setWindowTitle("Trivial Wizard") wizard.show() sys.exit(wizard.exec_()) PyQt-x11-gpl-4.11.4/examples/draganddrop/0000755000076500000240000000000012536324427020057 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/draganddrop/delayedencoding/0000755000076500000240000000000012536324427023175 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/draganddrop/delayedencoding/delayedencoding.py0000755000076500000240000001134612536324427026675 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui, QtSvg try: import delayedencoding_rc3 except ImportError: import delayedencoding_rc2 class MimeData(QtCore.QMimeData): dataRequested = QtCore.pyqtSignal(str) def formats(self): formats = QtCore.QMimeData.formats(self) formats.append('image/png') return formats def retrieveData(self, mimeType, qvtype): self.dataRequested.emit(mimeType) return QtCore.QMimeData.retrieveData(self, mimeType, qvtype) class SourceWidget(QtGui.QWidget): def __init__(self, parent=None): super(SourceWidget, self).__init__(parent) self.mimeData = None imageFile = QtCore.QFile(':/images/example.svg') imageFile.open(QtCore.QIODevice.ReadOnly) self.imageData = imageFile.readAll() imageFile.close() imageArea = QtGui.QScrollArea() self.imageLabel = QtSvg.QSvgWidget() self.imageLabel.renderer().load(self.imageData) imageArea.setWidget(self.imageLabel) instructTopLabel = QtGui.QLabel("This is an SVG drawing:") instructBottomLabel = QtGui.QLabel("Drag the icon to copy the drawing as a PNG file:") dragIcon = QtGui.QPushButton("Export") dragIcon.setIcon(QtGui.QIcon(':/images/drag.png')) dragIcon.pressed.connect(self.startDrag) layout = QtGui.QGridLayout() layout.addWidget(instructTopLabel, 0, 0, 1, 2) layout.addWidget(imageArea, 1, 0, 2, 2) layout.addWidget(instructBottomLabel, 3, 0) layout.addWidget(dragIcon, 3, 1) self.setLayout(layout) self.setWindowTitle("Delayed Encoding") def createData(self, mimeType): if mimeType != 'image/png': return image = QtGui.QImage(self.imageLabel.size(), QtGui.QImage.Format_RGB32) painter = QtGui.QPainter() painter.begin(image) self.imageLabel.renderer().render(painter) painter.end() data = QtCore.QByteArray() buffer = QtCore.QBuffer(data) buffer.open(QtCore.QIODevice.WriteOnly) image.save(buffer, 'PNG') buffer.close() self.mimeData.setData('image/png', data) def startDrag(self): self.mimeData = MimeData() self.mimeData.dataRequested.connect(self.createData, QtCore.Qt.DirectConnection) drag = QtGui.QDrag(self) drag.setMimeData(self.mimeData) drag.setPixmap(QtGui.QPixmap(':/images/drag.png')) drag.exec_(QtCore.Qt.CopyAction) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = SourceWidget() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/draganddrop/delayedencoding/delayedencoding.qrc0000644000076500000240000000021712536324427027022 0ustar philstaff00000000000000 images/drag.png images/example.svg PyQt-x11-gpl-4.11.4/examples/draganddrop/delayedencoding/delayedencoding_rc2.py0000644000076500000240000003757512536324427027454 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:33:35 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x03\xd1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x03\x63\x49\x44\x41\x54\x58\xc3\xc5\ \x97\xcd\x6f\x1b\x55\x14\xc5\x7f\x77\x66\x92\x89\xd3\x7c\xd4\xad\ \x17\x09\x20\xd2\x4d\x55\x51\x10\x08\x51\x84\xca\x0a\x09\xd8\x20\ \xc4\xa2\x52\x17\x2c\x2a\x24\x28\x6b\x36\x2c\x90\xfa\x1f\xc0\x82\ \x0d\xa8\x3b\x04\x2c\xd8\x82\x10\xaa\xda\x45\x05\x64\x07\x08\x04\ \xa1\x34\x40\x85\x11\x6e\x21\xb5\x13\x9c\xe6\xc3\xb5\xd3\x79\xef\ \x5d\x16\xf3\xec\x8c\x9d\xc4\xa6\xf5\x54\x1d\xe9\x4a\x1e\x69\x3c\ \xe7\xdc\x73\xce\xbb\xef\x8d\xa8\x2a\xf7\xf2\x0a\xb8\xc7\x57\xf4\ \x7f\x1e\x7a\xff\x35\x79\xf2\xe6\x16\x91\x55\xa4\x30\xca\x13\xc6\ \x12\xaa\x22\x00\x51\xc0\x4c\x18\x30\xeb\x94\xc0\x3a\x1a\xd5\x35\ \x3e\x7b\xfb\x73\xe6\x81\xa6\xaa\xba\x41\xef\x96\x41\x16\x9c\x7d\ \x5d\xce\x3c\xf8\xc8\x0b\xaf\x3a\xa7\xa1\xaa\x06\x0f\x1c\x7d\x76\ \xdc\x39\x15\x54\x05\x60\xaa\x34\x17\x8d\x17\xef\x1f\x09\xc2\x82\ \x98\xad\x86\x7e\xf1\xde\x89\xea\x77\x8b\xff\xbe\xfb\xe1\x57\x7c\ \x02\xd4\x55\xd5\xf6\x05\x50\xd5\xbe\x75\xf6\x34\x3f\xaa\xaa\xaa\ \x3a\x5f\xb6\xab\x9c\x5a\x6d\xb5\x6e\x6a\xb5\xba\xa4\xc6\x18\xbd\ \xb2\xf0\x75\xf2\xe6\x8b\x7c\xfb\xfc\xa3\xbc\x02\x14\xdb\x4d\xee\ \x55\x03\x33\xe0\x94\x10\x2c\x60\x7c\x39\xd2\xfb\xb4\x04\x8b\x31\ \xb7\x58\x5e\xae\x11\x86\x21\x87\x1e\x7a\x3a\x3a\xf9\xc6\x07\x8f\ \x1d\x9e\xe1\xe5\x97\x8e\xf1\x1c\x30\x21\x22\x72\xc7\x21\x4c\xbd\ \xd6\x2e\xd0\xb4\x1c\xe0\x50\x2c\xaa\x09\xcd\x66\x23\x0d\x55\x14\ \xf1\xf0\xf1\x93\xa3\xa7\xdf\xfa\xf8\x99\xb9\x12\xa7\x80\x43\x40\ \x61\xc8\x55\x90\x02\x81\x45\x31\x9e\x40\x02\x18\xc4\x93\xc9\xe6\ \x6d\xdf\xbe\x09\x8e\x3c\x75\x22\x2e\x4d\x72\x1c\x38\x0a\x4c\x0e\ \xb5\x0a\x14\x87\x60\xd2\xd4\x6e\xe7\x97\x54\x19\x08\x02\xc5\x98\ \x16\x17\x2f\x5e\x60\x6d\x6d\x83\x20\x80\xfd\xfb\x8b\x68\x54\x8c\ \x61\x75\x0e\x98\x00\xaa\x77\xac\x80\x64\x2c\xd0\x4e\x1e\x12\xda\ \xd9\x18\x1d\x15\x66\x66\x0f\xd2\x6c\xd6\xd9\xdc\xac\x61\xcc\x26\ \x85\xc2\x08\xad\xe6\x2a\x5e\xfe\x68\x48\x05\xac\x57\x40\x3b\x7d\ \x4b\x46\x85\x20\x54\xee\x9b\x2d\x31\x35\xf9\x38\xc6\x18\xa2\x28\ \x22\x8e\x0f\x70\x7e\x04\xcd\x65\x10\x09\xce\x77\x4c\xc6\x06\x45\ \x11\x04\x25\x10\x21\x8e\x85\x38\xce\x5a\x3d\x46\x18\x74\xa4\xd3\ \x1c\x32\x90\xf8\xb7\xa4\xa0\xda\x87\x6e\x4a\xce\xe5\x37\x8a\xdb\ \x5e\xb7\x3b\x6f\x83\x48\x4f\x2c\xb7\x1b\x15\xff\x9f\x9c\x08\x08\ \x0e\xcd\x58\xd0\x26\xa1\x3b\xd6\xc3\x36\x1d\xc9\x57\x81\xd4\x82\ \xfe\x24\x7b\xe9\xe5\x48\x40\xfd\xe0\x91\x2e\x03\xba\x41\xe9\x49\ \x9a\xe6\x69\x41\x56\x01\xd9\xa5\x63\x7a\x08\xe5\xae\x40\x9a\x01\ \xd3\xe9\x51\x76\x89\x1c\x3e\x96\xd2\x09\xa7\xcd\xdf\x82\xde\x5e\ \xa5\x13\xc6\x14\x7a\xfb\x79\xbd\x1b\x0a\x24\x3b\xe4\xee\xf6\x5c\ \xbb\x16\x67\xce\x0a\xec\x9c\x84\xba\xeb\x73\xd9\xdd\x43\xf3\x1f\ \x44\x83\x62\xd7\xfd\xfb\x2e\x0c\xa2\xac\xf3\xfd\x94\x68\x0f\xec\ \x5c\x97\x61\xba\x15\x0f\x3a\xe1\xc7\xc0\x38\x50\x64\x6d\x25\x70\ \x1b\x4d\x5a\xb9\x6d\x46\x3b\x2d\x80\xf4\x48\x39\x86\x30\x8d\x52\ \xa4\x56\x59\xb1\x95\xc5\xcb\xf6\xa7\x2f\x3f\x4a\xae\x2c\xfe\xd0\ \xb8\x74\x95\x3f\x80\x55\x60\x6b\x48\x05\xd4\x1f\x40\x15\x25\x04\ \x0a\x08\x53\x28\x07\xa8\x55\x56\xed\xc2\xfc\xb9\xe4\xd7\x6f\x3e\ \x35\xe5\x72\x79\xfd\xef\x3a\xcb\xdf\xff\xc9\x6f\xe5\x2a\x65\xe0\ \x1a\x70\x19\x58\x1f\x32\x03\xa0\x8c\xa1\x4c\x03\x07\x3d\xe8\x85\ \x0e\xe8\x2f\xd7\xa8\x5c\xaa\xf0\xfb\xd2\x0d\xfe\x02\x6a\xc0\x12\ \xf0\x8f\x3f\x86\xd5\x81\xcd\x21\x15\x38\x42\xad\xb2\x6c\x17\xe6\ \xcf\xef\x05\x7a\x1d\xb8\xea\x41\xeb\xc0\x86\x07\xdd\xd2\x01\x5f\ \x3e\x03\x09\xac\x37\x39\xf7\xce\xa9\xc2\xf4\xf5\x1b\xd8\x9f\x2b\ \x2c\xed\x01\xba\xe2\x65\x6e\x00\x89\xde\xc6\x17\xef\xc0\x4f\x33\ \x11\x29\x01\xc7\x80\xc3\xc0\x2d\x0f\x38\x14\xe8\xed\x12\x18\x01\ \xa6\xfd\xd1\xda\x7a\x69\x87\x02\xcd\x5e\xff\x01\xf9\x68\x10\x8e\ \x11\x57\x76\x24\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x0a\x81\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ \x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x0a\x2a\x2a\x0a\x2a\x2a\x20\x43\x6f\x70\x79\x72\x69\x67\x68\ \x74\x20\x28\x43\x29\x20\x32\x30\x31\x30\x20\x4e\x6f\x6b\x69\x61\ \x20\x43\x6f\x72\x70\x6f\x72\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\ \x2f\x6f\x72\x20\x69\x74\x73\x20\x73\x75\x62\x73\x69\x64\x69\x61\ \x72\x79\x28\x2d\x69\x65\x73\x29\x2e\x0a\x2a\x2a\x20\x41\x6c\x6c\ \x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\ \x2e\x0a\x2a\x2a\x20\x43\x6f\x6e\x74\x61\x63\x74\x3a\x20\x4e\x6f\ \x6b\x69\x61\x20\x43\x6f\x72\x70\x6f\x72\x61\x74\x69\x6f\x6e\x20\ \x28\x71\x74\x2d\x69\x6e\x66\x6f\x40\x6e\x6f\x6b\x69\x61\x2e\x63\ \x6f\x6d\x29\x0a\x2a\x2a\x0a\x2a\x2a\x20\x54\x68\x69\x73\x20\x66\ \x69\x6c\x65\x20\x69\x73\x20\x70\x61\x72\x74\x20\x6f\x66\x20\x74\ \x68\x65\x20\x65\x78\x61\x6d\x70\x6c\x65\x73\x20\x6f\x66\x20\x74\ \x68\x65\x20\x51\x74\x20\x54\x6f\x6f\x6c\x6b\x69\x74\x2e\x0a\x2a\ \x2a\x0a\x2a\x2a\x20\x24\x51\x54\x5f\x42\x45\x47\x49\x4e\x5f\x4c\ \x49\x43\x45\x4e\x53\x45\x3a\x4c\x47\x50\x4c\x24\x0a\x2a\x2a\x20\ \x43\x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\x55\x73\x61\x67\x65\ \x0a\x2a\x2a\x20\x4c\x69\x63\x65\x6e\x73\x65\x65\x73\x20\x68\x6f\ \x6c\x64\x69\x6e\x67\x20\x76\x61\x6c\x69\x64\x20\x51\x74\x20\x43\ \x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\x6c\x69\x63\x65\x6e\x73\ \x65\x73\x20\x6d\x61\x79\x20\x75\x73\x65\x20\x74\x68\x69\x73\x20\ \x66\x69\x6c\x65\x20\x69\x6e\x0a\x2a\x2a\x20\x61\x63\x63\x6f\x72\ \x64\x61\x6e\x63\x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x51\ \x74\x20\x43\x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\x4c\x69\x63\ \x65\x6e\x73\x65\x20\x41\x67\x72\x65\x65\x6d\x65\x6e\x74\x20\x70\ \x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\ \x0a\x2a\x2a\x20\x53\x6f\x66\x74\x77\x61\x72\x65\x20\x6f\x72\x2c\ \x20\x61\x6c\x74\x65\x72\x6e\x61\x74\x69\x76\x65\x6c\x79\x2c\x20\ \x69\x6e\x20\x61\x63\x63\x6f\x72\x64\x61\x6e\x63\x65\x20\x77\x69\ \x74\x68\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\x20\x63\x6f\x6e\ \x74\x61\x69\x6e\x65\x64\x20\x69\x6e\x0a\x2a\x2a\x20\x61\x20\x77\ \x72\x69\x74\x74\x65\x6e\x20\x61\x67\x72\x65\x65\x6d\x65\x6e\x74\ \x20\x62\x65\x74\x77\x65\x65\x6e\x20\x79\x6f\x75\x20\x61\x6e\x64\ \x20\x4e\x6f\x6b\x69\x61\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x47\x4e\ \x55\x20\x4c\x65\x73\x73\x65\x72\x20\x47\x65\x6e\x65\x72\x61\x6c\ \x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\x63\x65\x6e\x73\x65\x20\ \x55\x73\x61\x67\x65\x0a\x2a\x2a\x20\x41\x6c\x74\x65\x72\x6e\x61\ \x74\x69\x76\x65\x6c\x79\x2c\x20\x74\x68\x69\x73\x20\x66\x69\x6c\ \x65\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x75\x6e\ \x64\x65\x72\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\x20\x6f\x66\ \x20\x74\x68\x65\x20\x47\x4e\x55\x20\x4c\x65\x73\x73\x65\x72\x0a\ \x2a\x2a\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\ \x63\x20\x4c\x69\x63\x65\x6e\x73\x65\x20\x76\x65\x72\x73\x69\x6f\ \x6e\x20\x32\x2e\x31\x20\x61\x73\x20\x70\x75\x62\x6c\x69\x73\x68\ \x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x46\x72\x65\x65\x20\x53\ \x6f\x66\x74\x77\x61\x72\x65\x0a\x2a\x2a\x20\x46\x6f\x75\x6e\x64\ \x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x20\x61\x70\x70\x65\x61\x72\ \x69\x6e\x67\x20\x69\x6e\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\ \x4c\x49\x43\x45\x4e\x53\x45\x2e\x4c\x47\x50\x4c\x20\x69\x6e\x63\ \x6c\x75\x64\x65\x64\x20\x69\x6e\x20\x74\x68\x65\x0a\x2a\x2a\x20\ \x70\x61\x63\x6b\x61\x67\x69\x6e\x67\x20\x6f\x66\x20\x74\x68\x69\ \x73\x20\x66\x69\x6c\x65\x2e\x20\x20\x50\x6c\x65\x61\x73\x65\x20\ \x72\x65\x76\x69\x65\x77\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\ \x77\x69\x6e\x67\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\ \x20\x74\x6f\x0a\x2a\x2a\x20\x65\x6e\x73\x75\x72\x65\x20\x74\x68\ \x65\x20\x47\x4e\x55\x20\x4c\x65\x73\x73\x65\x72\x20\x47\x65\x6e\ \x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\x63\x65\ \x6e\x73\x65\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x32\x2e\x31\x20\ \x72\x65\x71\x75\x69\x72\x65\x6d\x65\x6e\x74\x73\x0a\x2a\x2a\x20\ \x77\x69\x6c\x6c\x20\x62\x65\x20\x6d\x65\x74\x3a\x20\x68\x74\x74\ \x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6e\x75\x2e\x6f\x72\x67\x2f\ \x6c\x69\x63\x65\x6e\x73\x65\x73\x2f\x6f\x6c\x64\x2d\x6c\x69\x63\ \x65\x6e\x73\x65\x73\x2f\x6c\x67\x70\x6c\x2d\x32\x2e\x31\x2e\x68\ \x74\x6d\x6c\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x49\x6e\x20\x61\x64\ \x64\x69\x74\x69\x6f\x6e\x2c\x20\x61\x73\x20\x61\x20\x73\x70\x65\ \x63\x69\x61\x6c\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x2c\x20\ \x4e\x6f\x6b\x69\x61\x20\x67\x69\x76\x65\x73\x20\x79\x6f\x75\x20\ \x63\x65\x72\x74\x61\x69\x6e\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\ \x61\x6c\x0a\x2a\x2a\x20\x72\x69\x67\x68\x74\x73\x2e\x20\x20\x54\ \x68\x65\x73\x65\x20\x72\x69\x67\x68\x74\x73\x20\x61\x72\x65\x20\ \x64\x65\x73\x63\x72\x69\x62\x65\x64\x20\x69\x6e\x20\x74\x68\x65\ \x20\x4e\x6f\x6b\x69\x61\x20\x51\x74\x20\x4c\x47\x50\x4c\x20\x45\ \x78\x63\x65\x70\x74\x69\x6f\x6e\x0a\x2a\x2a\x20\x76\x65\x72\x73\ \x69\x6f\x6e\x20\x31\x2e\x31\x2c\x20\x69\x6e\x63\x6c\x75\x64\x65\ \x64\x20\x69\x6e\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x4c\x47\ \x50\x4c\x5f\x45\x58\x43\x45\x50\x54\x49\x4f\x4e\x2e\x74\x78\x74\ \x20\x69\x6e\x20\x74\x68\x69\x73\x20\x70\x61\x63\x6b\x61\x67\x65\ \x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x47\x4e\x55\x20\x47\x65\x6e\x65\ \x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\x63\x65\x6e\ \x73\x65\x20\x55\x73\x61\x67\x65\x0a\x2a\x2a\x20\x41\x6c\x74\x65\ \x72\x6e\x61\x74\x69\x76\x65\x6c\x79\x2c\x20\x74\x68\x69\x73\x20\ \x66\x69\x6c\x65\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x73\x65\x64\ \x20\x75\x6e\x64\x65\x72\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\ \x20\x6f\x66\x20\x74\x68\x65\x20\x47\x4e\x55\x0a\x2a\x2a\x20\x47\ \x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\ \x63\x65\x6e\x73\x65\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x33\x2e\ \x30\x20\x61\x73\x20\x70\x75\x62\x6c\x69\x73\x68\x65\x64\x20\x62\ \x79\x20\x74\x68\x65\x20\x46\x72\x65\x65\x20\x53\x6f\x66\x74\x77\ \x61\x72\x65\x0a\x2a\x2a\x20\x46\x6f\x75\x6e\x64\x61\x74\x69\x6f\ \x6e\x20\x61\x6e\x64\x20\x61\x70\x70\x65\x61\x72\x69\x6e\x67\x20\ \x69\x6e\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x4c\x49\x43\x45\ \x4e\x53\x45\x2e\x47\x50\x4c\x20\x69\x6e\x63\x6c\x75\x64\x65\x64\ \x20\x69\x6e\x20\x74\x68\x65\x0a\x2a\x2a\x20\x70\x61\x63\x6b\x61\ \x67\x69\x6e\x67\x20\x6f\x66\x20\x74\x68\x69\x73\x20\x66\x69\x6c\ \x65\x2e\x20\x20\x50\x6c\x65\x61\x73\x65\x20\x72\x65\x76\x69\x65\ \x77\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\ \x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x20\x74\x6f\x0a\x2a\ \x2a\x20\x65\x6e\x73\x75\x72\x65\x20\x74\x68\x65\x20\x47\x4e\x55\ \x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\ \x4c\x69\x63\x65\x6e\x73\x65\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\ \x33\x2e\x30\x20\x72\x65\x71\x75\x69\x72\x65\x6d\x65\x6e\x74\x73\ \x20\x77\x69\x6c\x6c\x20\x62\x65\x0a\x2a\x2a\x20\x6d\x65\x74\x3a\ \x20\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6e\x75\x2e\ \x6f\x72\x67\x2f\x63\x6f\x70\x79\x6c\x65\x66\x74\x2f\x67\x70\x6c\ \x2e\x68\x74\x6d\x6c\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x49\x66\x20\ \x79\x6f\x75\x20\x68\x61\x76\x65\x20\x71\x75\x65\x73\x74\x69\x6f\ \x6e\x73\x20\x72\x65\x67\x61\x72\x64\x69\x6e\x67\x20\x74\x68\x65\ \x20\x75\x73\x65\x20\x6f\x66\x20\x74\x68\x69\x73\x20\x66\x69\x6c\ \x65\x2c\x20\x70\x6c\x65\x61\x73\x65\x20\x63\x6f\x6e\x74\x61\x63\ \x74\x0a\x2a\x2a\x20\x4e\x6f\x6b\x69\x61\x20\x61\x74\x20\x71\x74\ \x2d\x69\x6e\x66\x6f\x40\x6e\x6f\x6b\x69\x61\x2e\x63\x6f\x6d\x2e\ \x0a\x2a\x2a\x20\x24\x51\x54\x5f\x45\x4e\x44\x5f\x4c\x49\x43\x45\ \x4e\x53\x45\x24\x0a\x2a\x2a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x77\x69\x64\x74\x68\x3d\ \x22\x38\x63\x6d\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x38\x63\ \x6d\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\ \x34\x30\x30\x20\x34\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x78\x6d\ \x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\ \x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\ \x20\x62\x61\x73\x65\x50\x72\x6f\x66\x69\x6c\x65\x3d\x22\x74\x69\ \x6e\x79\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\ \x22\x3e\x0a\x20\x20\x3c\x74\x69\x74\x6c\x65\x3e\x53\x70\x68\x65\ \x72\x65\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x3c\x64\x65\ \x73\x63\x3e\x41\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x20\x66\x69\ \x6c\x6c\x65\x64\x20\x73\x70\x68\x65\x72\x65\x2e\x3c\x2f\x64\x65\ \x73\x63\x3e\x0a\x20\x20\x3c\x67\x3e\x0a\x20\x20\x20\x20\x3c\x64\ \x65\x66\x73\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x72\x61\x64\x69\ \x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x20\x69\x64\x3d\x22\x62\ \x6c\x75\x65\x53\x70\x68\x65\x72\x65\x22\x20\x67\x72\x61\x64\x69\ \x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ \x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x63\x78\x3d\x22\x32\x30\x30\x22\x20\x63\x79\x3d\x22\x32\x30\x30\ \x22\x20\x72\x3d\x22\x31\x30\x30\x22\x20\x66\x78\x3d\x22\x31\x35\ \x30\x22\x20\x66\x79\x3d\x22\x31\x35\x30\x22\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x20\x6f\x66\x66\x73\x65\ \x74\x3d\x22\x30\x25\x22\x20\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\ \x72\x3d\x22\x77\x68\x69\x74\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x20\x6f\x66\x66\x73\x65\ \x74\x3d\x22\x37\x35\x25\x22\x20\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ \x6f\x72\x3d\x22\x62\x6c\x75\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x20\x6f\x66\x66\x73\x65\ \x74\x3d\x22\x31\x30\x30\x25\x22\x20\x73\x74\x6f\x70\x2d\x63\x6f\ \x6c\x6f\x72\x3d\x22\x62\x6c\x61\x63\x6b\x22\x20\x2f\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x3c\x2f\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ \x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x64\x65\x66\ \x73\x3e\x0a\x20\x20\x20\x20\x3c\x72\x65\x63\x74\x20\x66\x69\x6c\ \x6c\x3d\x22\x6c\x69\x67\x68\x74\x62\x6c\x75\x65\x22\x20\x78\x3d\ \x22\x30\x22\x20\x79\x3d\x22\x30\x22\x20\x77\x69\x64\x74\x68\x3d\ \x22\x34\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x34\x30\ \x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x63\x69\x72\x63\x6c\ \x65\x20\x66\x69\x6c\x6c\x3d\x22\x75\x72\x6c\x28\x23\x62\x6c\x75\ \x65\x53\x70\x68\x65\x72\x65\x29\x22\x20\x73\x74\x72\x6f\x6b\x65\ \x3d\x22\x62\x6c\x61\x63\x6b\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\ \x77\x69\x64\x74\x68\x3d\x22\x32\x22\x20\x20\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x32\x30\x30\x22\x20\x63\ \x79\x3d\x22\x32\x30\x30\x22\x20\x72\x3d\x22\x31\x30\x30\x22\x2f\ \x3e\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ \ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x08\ \x08\x7a\x5a\x27\ \x00\x64\ \x00\x72\x00\x61\x00\x67\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x08\x01\x8a\x47\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ \x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x03\xd5\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/delayedencoding/delayedencoding_rc3.py0000644000076500000240000003760012536324427027442 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:33:35 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x03\xd1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x03\x63\x49\x44\x41\x54\x58\xc3\xc5\ \x97\xcd\x6f\x1b\x55\x14\xc5\x7f\x77\x66\x92\x89\xd3\x7c\xd4\xad\ \x17\x09\x20\xd2\x4d\x55\x51\x10\x08\x51\x84\xca\x0a\x09\xd8\x20\ \xc4\xa2\x52\x17\x2c\x2a\x24\x28\x6b\x36\x2c\x90\xfa\x1f\xc0\x82\ \x0d\xa8\x3b\x04\x2c\xd8\x82\x10\xaa\xda\x45\x05\x64\x07\x08\x04\ \xa1\x34\x40\x85\x11\x6e\x21\xb5\x13\x9c\xe6\xc3\xb5\xd3\x79\xef\ \x5d\x16\xf3\xec\x8c\x9d\xc4\xa6\xf5\x54\x1d\xe9\x4a\x1e\x69\x3c\ \xe7\xdc\x73\xce\xbb\xef\x8d\xa8\x2a\xf7\xf2\x0a\xb8\xc7\x57\xf4\ \x7f\x1e\x7a\xff\x35\x79\xf2\xe6\x16\x91\x55\xa4\x30\xca\x13\xc6\ \x12\xaa\x22\x00\x51\xc0\x4c\x18\x30\xeb\x94\xc0\x3a\x1a\xd5\x35\ \x3e\x7b\xfb\x73\xe6\x81\xa6\xaa\xba\x41\xef\x96\x41\x16\x9c\x7d\ \x5d\xce\x3c\xf8\xc8\x0b\xaf\x3a\xa7\xa1\xaa\x06\x0f\x1c\x7d\x76\ \xdc\x39\x15\x54\x05\x60\xaa\x34\x17\x8d\x17\xef\x1f\x09\xc2\x82\ \x98\xad\x86\x7e\xf1\xde\x89\xea\x77\x8b\xff\xbe\xfb\xe1\x57\x7c\ \x02\xd4\x55\xd5\xf6\x05\x50\xd5\xbe\x75\xf6\x34\x3f\xaa\xaa\xaa\ \x3a\x5f\xb6\xab\x9c\x5a\x6d\xb5\x6e\x6a\xb5\xba\xa4\xc6\x18\xbd\ \xb2\xf0\x75\xf2\xe6\x8b\x7c\xfb\xfc\xa3\xbc\x02\x14\xdb\x4d\xee\ \x55\x03\x33\xe0\x94\x10\x2c\x60\x7c\x39\xd2\xfb\xb4\x04\x8b\x31\ \xb7\x58\x5e\xae\x11\x86\x21\x87\x1e\x7a\x3a\x3a\xf9\xc6\x07\x8f\ \x1d\x9e\xe1\xe5\x97\x8e\xf1\x1c\x30\x21\x22\x72\xc7\x21\x4c\xbd\ \xd6\x2e\xd0\xb4\x1c\xe0\x50\x2c\xaa\x09\xcd\x66\x23\x0d\x55\x14\ \xf1\xf0\xf1\x93\xa3\xa7\xdf\xfa\xf8\x99\xb9\x12\xa7\x80\x43\x40\ \x61\xc8\x55\x90\x02\x81\x45\x31\x9e\x40\x02\x18\xc4\x93\xc9\xe6\ \x6d\xdf\xbe\x09\x8e\x3c\x75\x22\x2e\x4d\x72\x1c\x38\x0a\x4c\x0e\ \xb5\x0a\x14\x87\x60\xd2\xd4\x6e\xe7\x97\x54\x19\x08\x02\xc5\x98\ \x16\x17\x2f\x5e\x60\x6d\x6d\x83\x20\x80\xfd\xfb\x8b\x68\x54\x8c\ \x61\x75\x0e\x98\x00\xaa\x77\xac\x80\x64\x2c\xd0\x4e\x1e\x12\xda\ \xd9\x18\x1d\x15\x66\x66\x0f\xd2\x6c\xd6\xd9\xdc\xac\x61\xcc\x26\ \x85\xc2\x08\xad\xe6\x2a\x5e\xfe\x68\x48\x05\xac\x57\x40\x3b\x7d\ \x4b\x46\x85\x20\x54\xee\x9b\x2d\x31\x35\xf9\x38\xc6\x18\xa2\x28\ \x22\x8e\x0f\x70\x7e\x04\xcd\x65\x10\x09\xce\x77\x4c\xc6\x06\x45\ \x11\x04\x25\x10\x21\x8e\x85\x38\xce\x5a\x3d\x46\x18\x74\xa4\xd3\ \x1c\x32\x90\xf8\xb7\xa4\xa0\xda\x87\x6e\x4a\xce\xe5\x37\x8a\xdb\ \x5e\xb7\x3b\x6f\x83\x48\x4f\x2c\xb7\x1b\x15\xff\x9f\x9c\x08\x08\ \x0e\xcd\x58\xd0\x26\xa1\x3b\xd6\xc3\x36\x1d\xc9\x57\x81\xd4\x82\ \xfe\x24\x7b\xe9\xe5\x48\x40\xfd\xe0\x91\x2e\x03\xba\x41\xe9\x49\ \x9a\xe6\x69\x41\x56\x01\xd9\xa5\x63\x7a\x08\xe5\xae\x40\x9a\x01\ \xd3\xe9\x51\x76\x89\x1c\x3e\x96\xd2\x09\xa7\xcd\xdf\x82\xde\x5e\ \xa5\x13\xc6\x14\x7a\xfb\x79\xbd\x1b\x0a\x24\x3b\xe4\xee\xf6\x5c\ \xbb\x16\x67\xce\x0a\xec\x9c\x84\xba\xeb\x73\xd9\xdd\x43\xf3\x1f\ \x44\x83\x62\xd7\xfd\xfb\x2e\x0c\xa2\xac\xf3\xfd\x94\x68\x0f\xec\ \x5c\x97\x61\xba\x15\x0f\x3a\xe1\xc7\xc0\x38\x50\x64\x6d\x25\x70\ \x1b\x4d\x5a\xb9\x6d\x46\x3b\x2d\x80\xf4\x48\x39\x86\x30\x8d\x52\ \xa4\x56\x59\xb1\x95\xc5\xcb\xf6\xa7\x2f\x3f\x4a\xae\x2c\xfe\xd0\ \xb8\x74\x95\x3f\x80\x55\x60\x6b\x48\x05\xd4\x1f\x40\x15\x25\x04\ \x0a\x08\x53\x28\x07\xa8\x55\x56\xed\xc2\xfc\xb9\xe4\xd7\x6f\x3e\ \x35\xe5\x72\x79\xfd\xef\x3a\xcb\xdf\xff\xc9\x6f\xe5\x2a\x65\xe0\ \x1a\x70\x19\x58\x1f\x32\x03\xa0\x8c\xa1\x4c\x03\x07\x3d\xe8\x85\ \x0e\xe8\x2f\xd7\xa8\x5c\xaa\xf0\xfb\xd2\x0d\xfe\x02\x6a\xc0\x12\ \xf0\x8f\x3f\x86\xd5\x81\xcd\x21\x15\x38\x42\xad\xb2\x6c\x17\xe6\ \xcf\xef\x05\x7a\x1d\xb8\xea\x41\xeb\xc0\x86\x07\xdd\xd2\x01\x5f\ \x3e\x03\x09\xac\x37\x39\xf7\xce\xa9\xc2\xf4\xf5\x1b\xd8\x9f\x2b\ \x2c\xed\x01\xba\xe2\x65\x6e\x00\x89\xde\xc6\x17\xef\xc0\x4f\x33\ \x11\x29\x01\xc7\x80\xc3\xc0\x2d\x0f\x38\x14\xe8\xed\x12\x18\x01\ \xa6\xfd\xd1\xda\x7a\x69\x87\x02\xcd\x5e\xff\x01\xf9\x68\x10\x8e\ \x11\x57\x76\x24\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x0a\x81\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ \x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x0a\x2a\x2a\x0a\x2a\x2a\x20\x43\x6f\x70\x79\x72\x69\x67\x68\ \x74\x20\x28\x43\x29\x20\x32\x30\x31\x30\x20\x4e\x6f\x6b\x69\x61\ \x20\x43\x6f\x72\x70\x6f\x72\x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\ \x2f\x6f\x72\x20\x69\x74\x73\x20\x73\x75\x62\x73\x69\x64\x69\x61\ \x72\x79\x28\x2d\x69\x65\x73\x29\x2e\x0a\x2a\x2a\x20\x41\x6c\x6c\ \x20\x72\x69\x67\x68\x74\x73\x20\x72\x65\x73\x65\x72\x76\x65\x64\ \x2e\x0a\x2a\x2a\x20\x43\x6f\x6e\x74\x61\x63\x74\x3a\x20\x4e\x6f\ \x6b\x69\x61\x20\x43\x6f\x72\x70\x6f\x72\x61\x74\x69\x6f\x6e\x20\ \x28\x71\x74\x2d\x69\x6e\x66\x6f\x40\x6e\x6f\x6b\x69\x61\x2e\x63\ \x6f\x6d\x29\x0a\x2a\x2a\x0a\x2a\x2a\x20\x54\x68\x69\x73\x20\x66\ \x69\x6c\x65\x20\x69\x73\x20\x70\x61\x72\x74\x20\x6f\x66\x20\x74\ \x68\x65\x20\x65\x78\x61\x6d\x70\x6c\x65\x73\x20\x6f\x66\x20\x74\ \x68\x65\x20\x51\x74\x20\x54\x6f\x6f\x6c\x6b\x69\x74\x2e\x0a\x2a\ \x2a\x0a\x2a\x2a\x20\x24\x51\x54\x5f\x42\x45\x47\x49\x4e\x5f\x4c\ \x49\x43\x45\x4e\x53\x45\x3a\x4c\x47\x50\x4c\x24\x0a\x2a\x2a\x20\ \x43\x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\x55\x73\x61\x67\x65\ \x0a\x2a\x2a\x20\x4c\x69\x63\x65\x6e\x73\x65\x65\x73\x20\x68\x6f\ \x6c\x64\x69\x6e\x67\x20\x76\x61\x6c\x69\x64\x20\x51\x74\x20\x43\ \x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\x6c\x69\x63\x65\x6e\x73\ \x65\x73\x20\x6d\x61\x79\x20\x75\x73\x65\x20\x74\x68\x69\x73\x20\ \x66\x69\x6c\x65\x20\x69\x6e\x0a\x2a\x2a\x20\x61\x63\x63\x6f\x72\ \x64\x61\x6e\x63\x65\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x51\ \x74\x20\x43\x6f\x6d\x6d\x65\x72\x63\x69\x61\x6c\x20\x4c\x69\x63\ \x65\x6e\x73\x65\x20\x41\x67\x72\x65\x65\x6d\x65\x6e\x74\x20\x70\ \x72\x6f\x76\x69\x64\x65\x64\x20\x77\x69\x74\x68\x20\x74\x68\x65\ \x0a\x2a\x2a\x20\x53\x6f\x66\x74\x77\x61\x72\x65\x20\x6f\x72\x2c\ \x20\x61\x6c\x74\x65\x72\x6e\x61\x74\x69\x76\x65\x6c\x79\x2c\x20\ \x69\x6e\x20\x61\x63\x63\x6f\x72\x64\x61\x6e\x63\x65\x20\x77\x69\ \x74\x68\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\x20\x63\x6f\x6e\ \x74\x61\x69\x6e\x65\x64\x20\x69\x6e\x0a\x2a\x2a\x20\x61\x20\x77\ \x72\x69\x74\x74\x65\x6e\x20\x61\x67\x72\x65\x65\x6d\x65\x6e\x74\ \x20\x62\x65\x74\x77\x65\x65\x6e\x20\x79\x6f\x75\x20\x61\x6e\x64\ \x20\x4e\x6f\x6b\x69\x61\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x47\x4e\ \x55\x20\x4c\x65\x73\x73\x65\x72\x20\x47\x65\x6e\x65\x72\x61\x6c\ \x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\x63\x65\x6e\x73\x65\x20\ \x55\x73\x61\x67\x65\x0a\x2a\x2a\x20\x41\x6c\x74\x65\x72\x6e\x61\ \x74\x69\x76\x65\x6c\x79\x2c\x20\x74\x68\x69\x73\x20\x66\x69\x6c\ \x65\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x73\x65\x64\x20\x75\x6e\ \x64\x65\x72\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\x20\x6f\x66\ \x20\x74\x68\x65\x20\x47\x4e\x55\x20\x4c\x65\x73\x73\x65\x72\x0a\ \x2a\x2a\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\ \x63\x20\x4c\x69\x63\x65\x6e\x73\x65\x20\x76\x65\x72\x73\x69\x6f\ \x6e\x20\x32\x2e\x31\x20\x61\x73\x20\x70\x75\x62\x6c\x69\x73\x68\ \x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x46\x72\x65\x65\x20\x53\ \x6f\x66\x74\x77\x61\x72\x65\x0a\x2a\x2a\x20\x46\x6f\x75\x6e\x64\ \x61\x74\x69\x6f\x6e\x20\x61\x6e\x64\x20\x61\x70\x70\x65\x61\x72\ \x69\x6e\x67\x20\x69\x6e\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\ \x4c\x49\x43\x45\x4e\x53\x45\x2e\x4c\x47\x50\x4c\x20\x69\x6e\x63\ \x6c\x75\x64\x65\x64\x20\x69\x6e\x20\x74\x68\x65\x0a\x2a\x2a\x20\ \x70\x61\x63\x6b\x61\x67\x69\x6e\x67\x20\x6f\x66\x20\x74\x68\x69\ \x73\x20\x66\x69\x6c\x65\x2e\x20\x20\x50\x6c\x65\x61\x73\x65\x20\ \x72\x65\x76\x69\x65\x77\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\ \x77\x69\x6e\x67\x20\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\ \x20\x74\x6f\x0a\x2a\x2a\x20\x65\x6e\x73\x75\x72\x65\x20\x74\x68\ \x65\x20\x47\x4e\x55\x20\x4c\x65\x73\x73\x65\x72\x20\x47\x65\x6e\ \x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\x63\x65\ \x6e\x73\x65\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x32\x2e\x31\x20\ \x72\x65\x71\x75\x69\x72\x65\x6d\x65\x6e\x74\x73\x0a\x2a\x2a\x20\ \x77\x69\x6c\x6c\x20\x62\x65\x20\x6d\x65\x74\x3a\x20\x68\x74\x74\ \x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6e\x75\x2e\x6f\x72\x67\x2f\ \x6c\x69\x63\x65\x6e\x73\x65\x73\x2f\x6f\x6c\x64\x2d\x6c\x69\x63\ \x65\x6e\x73\x65\x73\x2f\x6c\x67\x70\x6c\x2d\x32\x2e\x31\x2e\x68\ \x74\x6d\x6c\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x49\x6e\x20\x61\x64\ \x64\x69\x74\x69\x6f\x6e\x2c\x20\x61\x73\x20\x61\x20\x73\x70\x65\ \x63\x69\x61\x6c\x20\x65\x78\x63\x65\x70\x74\x69\x6f\x6e\x2c\x20\ \x4e\x6f\x6b\x69\x61\x20\x67\x69\x76\x65\x73\x20\x79\x6f\x75\x20\ \x63\x65\x72\x74\x61\x69\x6e\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\ \x61\x6c\x0a\x2a\x2a\x20\x72\x69\x67\x68\x74\x73\x2e\x20\x20\x54\ \x68\x65\x73\x65\x20\x72\x69\x67\x68\x74\x73\x20\x61\x72\x65\x20\ \x64\x65\x73\x63\x72\x69\x62\x65\x64\x20\x69\x6e\x20\x74\x68\x65\ \x20\x4e\x6f\x6b\x69\x61\x20\x51\x74\x20\x4c\x47\x50\x4c\x20\x45\ \x78\x63\x65\x70\x74\x69\x6f\x6e\x0a\x2a\x2a\x20\x76\x65\x72\x73\ \x69\x6f\x6e\x20\x31\x2e\x31\x2c\x20\x69\x6e\x63\x6c\x75\x64\x65\ \x64\x20\x69\x6e\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x4c\x47\ \x50\x4c\x5f\x45\x58\x43\x45\x50\x54\x49\x4f\x4e\x2e\x74\x78\x74\ \x20\x69\x6e\x20\x74\x68\x69\x73\x20\x70\x61\x63\x6b\x61\x67\x65\ \x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x47\x4e\x55\x20\x47\x65\x6e\x65\ \x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\x63\x65\x6e\ \x73\x65\x20\x55\x73\x61\x67\x65\x0a\x2a\x2a\x20\x41\x6c\x74\x65\ \x72\x6e\x61\x74\x69\x76\x65\x6c\x79\x2c\x20\x74\x68\x69\x73\x20\ \x66\x69\x6c\x65\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x73\x65\x64\ \x20\x75\x6e\x64\x65\x72\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\ \x20\x6f\x66\x20\x74\x68\x65\x20\x47\x4e\x55\x0a\x2a\x2a\x20\x47\ \x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\ \x63\x65\x6e\x73\x65\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x33\x2e\ \x30\x20\x61\x73\x20\x70\x75\x62\x6c\x69\x73\x68\x65\x64\x20\x62\ \x79\x20\x74\x68\x65\x20\x46\x72\x65\x65\x20\x53\x6f\x66\x74\x77\ \x61\x72\x65\x0a\x2a\x2a\x20\x46\x6f\x75\x6e\x64\x61\x74\x69\x6f\ \x6e\x20\x61\x6e\x64\x20\x61\x70\x70\x65\x61\x72\x69\x6e\x67\x20\ \x69\x6e\x20\x74\x68\x65\x20\x66\x69\x6c\x65\x20\x4c\x49\x43\x45\ \x4e\x53\x45\x2e\x47\x50\x4c\x20\x69\x6e\x63\x6c\x75\x64\x65\x64\ \x20\x69\x6e\x20\x74\x68\x65\x0a\x2a\x2a\x20\x70\x61\x63\x6b\x61\ \x67\x69\x6e\x67\x20\x6f\x66\x20\x74\x68\x69\x73\x20\x66\x69\x6c\ \x65\x2e\x20\x20\x50\x6c\x65\x61\x73\x65\x20\x72\x65\x76\x69\x65\ \x77\x20\x74\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\ \x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x20\x74\x6f\x0a\x2a\ \x2a\x20\x65\x6e\x73\x75\x72\x65\x20\x74\x68\x65\x20\x47\x4e\x55\ \x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\ \x4c\x69\x63\x65\x6e\x73\x65\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\ \x33\x2e\x30\x20\x72\x65\x71\x75\x69\x72\x65\x6d\x65\x6e\x74\x73\ \x20\x77\x69\x6c\x6c\x20\x62\x65\x0a\x2a\x2a\x20\x6d\x65\x74\x3a\ \x20\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6e\x75\x2e\ \x6f\x72\x67\x2f\x63\x6f\x70\x79\x6c\x65\x66\x74\x2f\x67\x70\x6c\ \x2e\x68\x74\x6d\x6c\x2e\x0a\x2a\x2a\x0a\x2a\x2a\x20\x49\x66\x20\ \x79\x6f\x75\x20\x68\x61\x76\x65\x20\x71\x75\x65\x73\x74\x69\x6f\ \x6e\x73\x20\x72\x65\x67\x61\x72\x64\x69\x6e\x67\x20\x74\x68\x65\ \x20\x75\x73\x65\x20\x6f\x66\x20\x74\x68\x69\x73\x20\x66\x69\x6c\ \x65\x2c\x20\x70\x6c\x65\x61\x73\x65\x20\x63\x6f\x6e\x74\x61\x63\ \x74\x0a\x2a\x2a\x20\x4e\x6f\x6b\x69\x61\x20\x61\x74\x20\x71\x74\ \x2d\x69\x6e\x66\x6f\x40\x6e\x6f\x6b\x69\x61\x2e\x63\x6f\x6d\x2e\ \x0a\x2a\x2a\x20\x24\x51\x54\x5f\x45\x4e\x44\x5f\x4c\x49\x43\x45\ \x4e\x53\x45\x24\x0a\x2a\x2a\x0a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\x2a\ \x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x77\x69\x64\x74\x68\x3d\ \x22\x38\x63\x6d\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x38\x63\ \x6d\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\ \x34\x30\x30\x20\x34\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x78\x6d\ \x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\ \x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\ \x20\x62\x61\x73\x65\x50\x72\x6f\x66\x69\x6c\x65\x3d\x22\x74\x69\ \x6e\x79\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\ \x22\x3e\x0a\x20\x20\x3c\x74\x69\x74\x6c\x65\x3e\x53\x70\x68\x65\ \x72\x65\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x3c\x64\x65\ \x73\x63\x3e\x41\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x20\x66\x69\ \x6c\x6c\x65\x64\x20\x73\x70\x68\x65\x72\x65\x2e\x3c\x2f\x64\x65\ \x73\x63\x3e\x0a\x20\x20\x3c\x67\x3e\x0a\x20\x20\x20\x20\x3c\x64\ \x65\x66\x73\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x72\x61\x64\x69\ \x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x20\x69\x64\x3d\x22\x62\ \x6c\x75\x65\x53\x70\x68\x65\x72\x65\x22\x20\x67\x72\x61\x64\x69\ \x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ \x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x63\x78\x3d\x22\x32\x30\x30\x22\x20\x63\x79\x3d\x22\x32\x30\x30\ \x22\x20\x72\x3d\x22\x31\x30\x30\x22\x20\x66\x78\x3d\x22\x31\x35\ \x30\x22\x20\x66\x79\x3d\x22\x31\x35\x30\x22\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x20\x6f\x66\x66\x73\x65\ \x74\x3d\x22\x30\x25\x22\x20\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\ \x72\x3d\x22\x77\x68\x69\x74\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x20\x6f\x66\x66\x73\x65\ \x74\x3d\x22\x37\x35\x25\x22\x20\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ \x6f\x72\x3d\x22\x62\x6c\x75\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x20\x6f\x66\x66\x73\x65\ \x74\x3d\x22\x31\x30\x30\x25\x22\x20\x73\x74\x6f\x70\x2d\x63\x6f\ \x6c\x6f\x72\x3d\x22\x62\x6c\x61\x63\x6b\x22\x20\x2f\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x3c\x2f\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ \x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x64\x65\x66\ \x73\x3e\x0a\x20\x20\x20\x20\x3c\x72\x65\x63\x74\x20\x66\x69\x6c\ \x6c\x3d\x22\x6c\x69\x67\x68\x74\x62\x6c\x75\x65\x22\x20\x78\x3d\ \x22\x30\x22\x20\x79\x3d\x22\x30\x22\x20\x77\x69\x64\x74\x68\x3d\ \x22\x34\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x34\x30\ \x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x63\x69\x72\x63\x6c\ \x65\x20\x66\x69\x6c\x6c\x3d\x22\x75\x72\x6c\x28\x23\x62\x6c\x75\ \x65\x53\x70\x68\x65\x72\x65\x29\x22\x20\x73\x74\x72\x6f\x6b\x65\ \x3d\x22\x62\x6c\x61\x63\x6b\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\ \x77\x69\x64\x74\x68\x3d\x22\x32\x22\x20\x20\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x32\x30\x30\x22\x20\x63\ \x79\x3d\x22\x32\x30\x30\x22\x20\x72\x3d\x22\x31\x30\x30\x22\x2f\ \x3e\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ \ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x08\ \x08\x7a\x5a\x27\ \x00\x64\ \x00\x72\x00\x61\x00\x67\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x08\x01\x8a\x47\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ \x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x03\xd5\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/delayedencoding/images/0000755000076500000240000000000012536324427024442 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/draganddrop/delayedencoding/images/drag.png0000644000076500000240000000172112536324427026066 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<cIDATXÃÅ—ÍoUÅwf’‰Ó|Ô­ ÒMUQQ„Ê Ø Ä¢R,*$(k6,úÀ‚ ¨;,Ø‚ªÚEd¡4@…n!µœæÃµÓyï]óìŒÄ¦õTéJi<çÜsλï¨*÷ò ¸ÇWôzÿ5yòæ‘U¤0ÊÆª"QÀL0ë”À:Õ5>{ûs榪ºAï–Aœ}]Î<øÈ ¯:§¡ª}vÜ9T`ª4ï ‚˜­†~ñÞ‰êw‹ÿ¾ûáW|ÔUÕöPÕ¾uö4?ªªª:_¶«œZmµnjµº¤Æ½²ðuòæ‹|ûü£¼ÛMîU3à”,`|9Òû´‹1·X^®†!‡z::ùÆžáå—Žñ0!"rÇ!L½Ö.дàP,ª Íf# Uñðñ“£§ßúø™¹§€C@aÈUE1ž@ēɿmß¾ Ž–Ò §Íß‚Þ^¥Æzûy½ $;äîö\»gΠ위ºësÙÝCóDƒb×ýû. ¢¬óý”hì\—aº:áÇÀ8Pdm%pMZ¹mF;-€ôH9†0R¤VY±•ÅËö§/?J®,þиt•?€U`kHÔ@% S(¨UVíÂü¹ä×o>5åryýï:ËßÿÉoå*eàpX2 Œ¡L=è…è/ר\ªðûÒ þjÀð?†ÕÍ!8B­²læÏïz¸êAëÀ†ÝÒ_> ¬79÷ΩÂôõØŸ+,íºâen‰ÞÆïÀO3)Ç€ÃÀ-8èí¦ýÑÚzi‡Í^ÿùhŽWv$IEND®B`‚PyQt-x11-gpl-4.11.4/examples/draganddrop/delayedencoding/images/example.svg0000644000076500000240000000520112536324427026614 0ustar philstaff00000000000000 Sphere A gradient filled sphere. PyQt-x11-gpl-4.11.4/examples/draganddrop/draggableicons/0000755000076500000240000000000012536324427023023 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/draganddrop/draggableicons/draggableicons.py0000755000076500000240000001323212536324427026345 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui try: import draggableicons_rc3 except ImportError: import draggableicons_rc2 class DragWidget(QtGui.QFrame): def __init__(self, parent=None): super(DragWidget, self).__init__(parent) self.setMinimumSize(200, 200) self.setFrameStyle(QtGui.QFrame.Sunken | QtGui.QFrame.StyledPanel) self.setAcceptDrops(True) boatIcon = QtGui.QLabel(self) boatIcon.setPixmap(QtGui.QPixmap(':/images/boat.png')) boatIcon.move(20, 20) boatIcon.show() boatIcon.setAttribute(QtCore.Qt.WA_DeleteOnClose) carIcon = QtGui.QLabel(self) carIcon.setPixmap(QtGui.QPixmap(':/images/car.png')) carIcon.move(120, 20) carIcon.show() carIcon.setAttribute(QtCore.Qt.WA_DeleteOnClose) houseIcon = QtGui.QLabel(self) houseIcon.setPixmap(QtGui.QPixmap(':/images/house.png')) houseIcon.move(20, 120) houseIcon.show() houseIcon.setAttribute(QtCore.Qt.WA_DeleteOnClose) def dragEnterEvent(self, event): if event.mimeData().hasFormat('application/x-dnditemdata'): if event.source() == self: event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: event.acceptProposedAction() else: event.ignore() dragMoveEvent = dragEnterEvent def dropEvent(self, event): if event.mimeData().hasFormat('application/x-dnditemdata'): itemData = event.mimeData().data('application/x-dnditemdata') dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.ReadOnly) pixmap = QtGui.QPixmap() offset = QtCore.QPoint() dataStream >> pixmap >> offset newIcon = QtGui.QLabel(self) newIcon.setPixmap(pixmap) newIcon.move(event.pos() - offset) newIcon.show() newIcon.setAttribute(QtCore.Qt.WA_DeleteOnClose) if event.source() == self: event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: event.acceptProposedAction() else: event.ignore() def mousePressEvent(self, event): child = self.childAt(event.pos()) if not child: return pixmap = QtGui.QPixmap(child.pixmap()) itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) dataStream << pixmap << QtCore.QPoint(event.pos() - child.pos()) mimeData = QtCore.QMimeData() mimeData.setData('application/x-dnditemdata', itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.setHotSpot(event.pos() - child.pos()) tempPixmap = QtGui.QPixmap(pixmap) painter = QtGui.QPainter() painter.begin(tempPixmap) painter.fillRect(pixmap.rect(), QtGui.QColor(127, 127, 127, 127)) painter.end() child.setPixmap(tempPixmap) if drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction, QtCore.Qt.CopyAction) == QtCore.Qt.MoveAction: child.close() else: child.show() child.setPixmap(pixmap) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWidget = QtGui.QWidget() horizontalLayout = QtGui.QHBoxLayout() horizontalLayout.addWidget(DragWidget()) horizontalLayout.addWidget(DragWidget()) mainWidget.setLayout(horizontalLayout) mainWidget.setWindowTitle(QtCore.QObject.tr(mainWidget, "Draggable Icons")) mainWidget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/draganddrop/draggableicons/draggableicons.qrc0000644000076500000240000000025412536324427026477 0ustar philstaff00000000000000 images/boat.png images/car.png images/house.png PyQt-x11-gpl-4.11.4/examples/draganddrop/draggableicons/draggableicons_rc2.py0000644000076500000240000011316512536324427027116 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:34:14 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x0b\x93\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x4b\x00\x00\x00\x36\x08\x02\x00\x00\x00\x00\x90\xf3\xa2\ \x00\x00\x0b\x5a\x49\x44\x41\x54\x78\x5e\xdc\x93\x41\x0a\x45\x21\ \x0c\xc4\x5a\x79\xf7\xbf\xb1\xfa\x8b\x42\x36\x01\xff\xbe\x59\x0c\ \x71\x68\xbb\x33\xd6\x61\xef\x5d\x89\x83\x9f\xe4\x15\x27\xf8\xc2\ \x02\x95\x9e\x44\x1e\xbd\x77\x81\xb1\xb1\xbb\x13\xf3\x50\x56\x89\ \x83\x9f\xe4\x15\x27\xf8\xc2\x04\x95\x9e\x44\x1e\xbd\x77\x81\xb1\ \x2f\x33\xe3\x80\x80\xcb\x7a\x92\x88\xd3\x2b\x76\x95\x88\x4b\xf8\ \xdf\xfb\xf8\x88\xee\x8c\xe8\x4e\xff\x7f\x18\xab\x3b\x31\x0f\x65\ \x95\x38\xf8\x49\x5e\x71\x82\x2f\x4c\x50\xe9\x49\xe4\xd1\x7b\x17\ \x18\x1b\xd1\x9d\x2f\x33\x7f\xbc\x97\x4d\x4c\x54\x57\x14\xc7\xcb\ \xbc\xc7\x0c\xcc\x0c\x98\xa0\xc5\x05\x51\xab\x26\x2c\x74\xd1\xc6\ \x9a\x26\x04\x01\x29\x30\x6a\x62\x63\xd2\xc4\xc6\x8f\x85\x8d\x4d\ \x9b\x18\x6b\x93\x6e\xaa\x4d\x64\xc7\x82\xb4\x4d\xa3\xb1\x5d\xb8\ \xb1\x8b\xee\x9c\xc6\xfa\x41\x04\x09\x50\x48\x4d\x20\x68\xc4\x26\ \x8d\x90\xb6\x09\x51\x44\x10\x82\x30\xdf\x9f\x40\x7f\x7d\x27\x9e\ \x79\xcc\x20\x85\xa0\xde\xdc\xbc\x39\xf7\xdc\x73\xef\xf9\x9f\x8f\ \x7b\xee\x9d\xdc\x4a\xbd\xfc\x0b\xc3\xde\xd2\xe9\x34\xa9\x9f\x25\ \x09\x47\x85\x73\x67\x95\xc9\x30\x4b\x32\x3f\x3f\x5f\x25\x97\x80\ \x67\x87\xf4\x4a\x2a\x4d\xe6\xe9\xf4\x0a\x9a\x3d\x33\x5f\xf7\x8d\ \x6f\xf7\x3d\x3a\x0c\xc3\x48\x26\x93\x8d\x8d\x8d\x93\x93\x93\x12\ \x8d\x45\x37\x04\xa8\xd7\xe3\xc9\x73\x3a\x23\xa9\x14\xb3\x2e\xc3\ \xc8\x9f\x9b\x0b\x86\x42\xd0\xf6\x18\x42\xac\x5b\xb7\xae\xa9\xa9\ \x89\x30\x02\xd1\xe1\x70\x68\x2e\xac\xf8\xc6\xa7\xa1\x75\x35\x59\ \xce\x72\x10\x80\xa3\xba\xba\x7a\x62\x62\xe2\xd0\xa1\x43\x91\x48\ \x04\x8e\x18\x29\x5f\x4d\x16\xaf\xd7\xfb\xcb\xb5\x6b\x89\x07\x0f\ \x0e\x6c\xdd\x4a\x5c\xee\x3c\x7e\xfc\x57\x71\xf1\x67\xc7\x8f\xb3\ \x44\x6d\x03\x0f\x62\x7e\xbf\xbf\xac\xac\xac\xbb\xbb\xdb\x34\x4d\ \x38\x78\x90\xa9\xd7\x77\x1f\x6a\xda\x70\xf0\x20\x52\xa9\x54\x45\ \x45\xc5\xf6\xed\xdb\x01\xba\x74\xca\x41\x7c\x79\xf6\xec\xa7\x9b\ \x37\xcf\x9d\x3a\x95\x3c\x79\xf2\xdc\xce\x9d\x7b\x0e\x1c\x80\x99\ \x48\x24\xd8\x84\x2c\x80\x88\xc7\xe3\x6c\x3b\x36\x36\x56\x5e\x5e\ \xce\xb6\xf0\x59\x08\x47\x76\x78\x4d\x59\xaa\xc9\xc9\x57\xa2\x17\ \x0c\x06\xfb\xfa\xfa\xf0\xf4\xb3\x67\xcf\x60\xaa\x02\x11\x16\x1a\ \xac\xa5\xa5\xa5\xa1\x40\x20\x92\x48\x8c\x85\x42\xf8\x66\x26\x1e\ \x8f\xe2\x95\x50\x68\x72\x6a\x8a\xb5\xba\x04\x58\x6e\xb7\xbb\xab\ \xab\xab\xb6\xb6\xb6\xa6\xa6\xa6\xa7\xa7\x47\xd2\x44\x64\x56\x9a\ \xa5\xe6\x4a\x63\x8e\x0e\x35\x0f\x1a\xf3\x02\x81\x40\x7f\x7f\x3f\ \xea\x71\x3f\x27\x47\x81\xea\x57\x89\x7c\xd3\x94\xb3\x64\x5a\x47\ \xcb\xb0\x68\xc3\x34\x0d\xab\xa9\x98\x6c\xe5\x72\xb9\x3a\x3b\x3b\ \xeb\xea\xea\xec\x46\xf2\x15\x00\xaf\xea\x5d\x8a\x7a\x39\xba\x62\ \x5e\x55\x55\x95\x9a\x47\x82\xd9\x7d\x6c\x37\x32\x63\x27\x5d\xc1\ \xc1\xa4\x33\xb4\x49\xaa\x30\x96\x60\x24\xdf\x8e\x8e\x0e\x8e\xf7\ \xee\xdd\xbb\x45\xa9\xaa\x5e\x81\x85\x4b\x1c\x9b\xd9\x9c\x26\xa7\ \x4e\x62\x58\x59\x59\x49\x4e\xf6\xf6\xf6\x32\x8c\xc5\x62\x7c\xe5\ \x58\xaa\x64\xee\x72\x79\x25\x62\xc1\xac\xd5\xc5\x66\x95\xcf\x5a\ \x02\xb8\x68\x34\xca\xb7\xbd\xbd\x9d\x63\x49\xb2\x48\xe2\x00\xe0\ \x45\xd8\x16\x35\x24\xfb\xc6\xd7\x28\xe1\xbf\x17\x16\xa7\x74\x7a\ \xef\x9e\x3d\x88\x0e\x0d\x0d\x31\xa4\x0e\xb8\x0b\x0b\x59\x88\x06\ \x98\x59\x11\x54\x4d\x20\x33\x48\x62\x97\x2b\xdf\xe1\x58\xe3\x74\ \xe2\x0c\xb7\x61\x38\x4d\xd3\x53\x54\x44\xfc\xc9\x55\x64\x54\x1a\ \xfb\x01\x24\xa5\xa2\xc0\xeb\xed\xeb\xed\xf5\xf9\x7c\xfb\xf6\xee\ \xbd\xd5\xd6\xc6\x1e\x4b\x17\xf6\xac\xbb\xca\xcc\x4a\x2a\xbd\xdf\ \xc2\xe1\xf0\x1f\x83\x83\x9a\x37\xac\x90\xc8\x42\x9c\x39\x7d\xba\ \xff\xce\x9d\x96\x96\x96\x9e\xde\xde\x78\x2c\x26\xe0\x68\x2e\x87\ \x23\x61\x39\x33\xab\xd8\xc8\x0f\x7e\x59\x5b\x52\xf2\x68\x64\x84\ \x25\x1d\x23\x23\xd8\xf0\xe7\xcc\xcc\x63\xd3\xec\xe8\xe9\x99\x09\ \x04\x40\xa6\xd2\x7c\x0a\x0c\x83\x92\x8a\xcb\x24\x35\x0a\x0a\x0a\ \xbe\x6a\x6c\x3c\x7a\xf4\x68\xb5\xcf\xd7\xdc\xdc\x8c\xa0\x03\x03\ \xe8\x56\x83\x86\xf3\xf6\xb6\x6d\x5c\x33\x02\xde\x5e\xe7\xf4\x3e\ \xcc\x98\xc7\x15\xf4\xf4\xe9\xd3\xaa\xf7\xdf\x9f\x7b\xf8\x90\x22\ \x00\x62\xfb\xb9\x96\x68\x94\x94\x94\x44\x63\xb1\x74\x2a\xa5\xa1\ \x46\xe6\x9f\x70\x78\xa3\xdb\x5d\xe4\x74\x8a\x91\xd9\x67\xd8\x82\ \xf2\x24\x1a\x05\x59\x19\x50\xb8\xe5\x2c\xb3\x30\x40\xb0\xea\x3e\ \x18\x3f\x14\x0c\xbe\xe5\xf1\x10\x6d\x41\x85\x30\x55\x0a\x3b\xa7\ \xa7\xa7\x89\x21\x1c\xe0\xcb\x1a\x08\xf6\x49\x53\x84\x36\x6d\xfa\ \xbd\xab\x6b\xfd\xfa\xf5\x6c\x88\x09\x6a\xa1\xa9\x08\xd4\xbc\xc9\ \x89\x89\x9d\x55\x55\x0d\xa9\x54\xd3\xc1\x83\xd1\x64\x52\xde\x11\ \x12\x46\x01\x0a\x30\x02\x02\x9b\xa6\x5e\x07\x4d\x7d\x4b\xcb\x4f\ \xb5\xb5\x95\x1b\x36\x70\xaf\x39\x10\xb3\xe4\xe7\x20\x2c\x99\xe4\ \xfc\x3c\xf9\xf6\x79\x7b\x3b\xa3\x1f\x1a\x1a\xe2\x91\x08\x4b\xa0\ \xe5\x2d\xa3\xa5\x86\x32\x3b\x9d\x48\xbc\xeb\xf7\xff\x5c\x5f\xbf\ \xd1\xeb\x4d\x00\x5d\xf4\x5a\x0d\x8f\x13\x58\x81\x01\x57\x13\xc4\ \xed\x74\x9e\xed\xee\x06\xf6\xbd\xdb\xb7\xdf\x2c\x2d\x55\x23\x33\ \xb5\x54\xce\x9e\x98\xb7\x63\xd7\x2e\x5f\x2a\xf5\x6d\x7d\x7d\x20\ \x16\x4b\xcd\xce\x72\xae\x93\xb3\xb3\x49\xeb\x2b\x3d\x9e\x4a\x71\ \x01\x0b\xdf\xde\xd1\x05\x93\xa0\xc8\x30\x41\x5f\x48\x30\x45\x34\ \xe8\xf3\xba\x4a\xa6\x72\x3a\xd0\x52\x0b\x39\xa8\x43\x29\xaa\xed\ \x4c\x01\xc6\x14\x50\x01\x0c\x6c\xc0\x63\x02\x86\x48\x59\xca\xd4\ \x52\xa9\xc2\xa3\xa3\xa3\xef\x55\x57\x13\xbd\x6f\xea\xea\xc6\x83\ \x41\x09\x9a\x16\x8f\xe5\xdc\x25\x22\xb6\xfa\xb6\xfc\xfb\x40\x35\ \x02\x18\xd8\x80\xc7\x04\x0c\x91\x98\x01\xc9\x61\xaf\x42\x9f\x9c\ \x38\xf1\xce\xd4\xd4\xf7\x3e\xdf\x78\x28\x64\x30\xc6\xc2\x97\xdb\ \x74\xc3\xe5\xed\xbc\x7c\xf5\xd8\x03\x5e\x60\x03\x1e\x13\x30\x84\ \xa1\x94\x18\x07\x73\xfa\xb4\x0f\x85\xc3\x0d\x5b\xb6\x70\xf6\x32\ \x7f\xd8\x20\xa4\x29\x91\xdb\x04\x8a\x90\x8b\x4a\xe6\x4c\x89\xfc\ \xd2\x62\x10\x74\x15\x7c\x21\x8c\x85\xff\x2d\x01\x8f\x09\x18\x22\ \x1c\x9a\x69\x7f\x7c\x50\x67\x23\xc9\xa4\xae\x11\xe7\x28\x61\xcf\ \x40\x28\x6d\x9a\xcc\x3a\x25\x5d\x38\x10\xb9\x99\x27\xb3\xca\x50\ \xc9\x0c\xad\x1c\x05\xa0\xba\x54\x91\x8d\xa3\x46\x02\x05\x13\x8c\ \xe2\x62\x2d\x4e\x99\x18\x6a\x09\x56\x17\xdb\x09\xe5\x33\x56\x85\ \x99\xa1\xae\xa2\x8b\xf0\xa2\xbe\xd7\x45\xf6\x59\x5d\xa2\xda\x95\ \xaf\x3b\xdb\xdc\xa4\x30\x68\x4a\xab\x98\xb0\xe6\x6d\xda\x6d\x0f\ \x17\x55\x90\xd3\xec\xfe\xa6\x12\xce\xda\xbc\xc8\xd3\x24\xeb\x85\ \xbd\xfa\x96\xf5\x5e\x47\x85\xee\x8b\x6a\x00\x2c\x55\xd8\xc4\xb6\ \x65\xbd\xbc\x17\x3e\xc1\x58\x25\x3a\xd7\xb8\x5c\xa5\x1e\x4f\x21\ \xcf\x2f\xd3\xf4\x3a\x9d\xd0\xbc\x3f\x00\xa1\x47\xf7\xa5\x98\x27\ \x20\xd9\xb6\xc0\x34\x51\x81\x22\xd4\xa1\x14\x1a\x00\xe8\x90\xe7\ \x8e\x28\x53\x9c\xff\xff\xf2\x66\x3c\xa7\xce\x93\x4e\x93\xc7\x80\ \x95\xd0\x45\x2e\xd7\xad\xe1\xe1\x8f\xaf\x5f\x6f\xf0\xfb\xf7\x5d\ \xbd\xea\xbb\x7c\xf9\xeb\xce\xce\x47\xe1\xf0\x5a\xde\xa5\x22\x2c\ \xab\x56\xd1\x44\xb5\x50\x6c\xfb\x28\x18\x3c\xd3\xd9\x89\x22\xd4\ \xa1\xf4\xd8\x8d\x1b\x6d\xc3\xc3\xc0\x30\x2d\x48\xea\x77\xcd\x1f\ \x79\x1e\x0b\x91\x7d\x0e\xc5\x62\x7c\x26\x49\x60\x3f\x84\xac\xe1\ \xfd\x01\xff\x58\x6b\xeb\x17\xf7\xef\x6f\x38\x72\xa4\xd9\xef\xbf\ \xd8\xde\x7e\xe6\xd2\xa5\xb1\x1d\x3b\xf6\xb7\xb6\x9e\x1f\x18\xf0\ \xba\x5c\xe4\x03\xf1\x94\xab\x55\xd3\x5e\x93\x7f\x91\xe3\xad\x53\ \xb6\xb3\x44\x12\xba\x4d\x93\xbf\x8e\x1e\xa7\xf3\xdc\xbd\x7b\x1f\ \xb4\xb5\xa1\x02\x45\xa8\x43\x29\xaa\x01\x00\x0c\xc0\xe4\x5b\xc0\ \x14\xba\xec\x00\x1f\x13\x20\x54\x57\x26\x86\x0c\x52\xe9\xf4\xd0\ \xd4\x54\xb1\xf5\xb0\x14\x8e\xb8\xc4\x61\x95\xd9\x8f\x5a\x5a\x66\ \xca\xcb\xff\x1e\x1c\xbc\x78\xfe\xfc\x87\xfb\xf7\xd7\x54\x54\x1c\ \x3b\x7c\xf8\xe6\x95\x2b\xbf\xde\xbc\xf9\xe3\xf8\xf8\x77\x77\xef\ \x3a\x0c\x63\x68\x66\xc6\xe0\x7f\x83\x18\x29\xa5\x4b\x33\x4f\x2b\ \x21\x5d\x13\x4c\xa7\x04\x00\x69\x59\x58\xf8\xdb\xe8\x68\x28\x9d\ \xbe\x30\x30\x70\xe1\xc9\x13\x36\x47\x05\x8a\x50\x87\x52\x54\x03\ \x00\x18\x80\x01\x52\x9e\x04\x5c\xbc\x63\x1d\x51\xc0\x63\x02\x86\ \xe8\xeb\xdf\xf1\x6f\xbb\x66\x13\x12\xd7\x15\xc5\xf1\x18\x26\xc9\ \x8c\x89\xbe\x29\x6f\x1e\x31\x91\x38\x05\x29\x82\xbb\x30\xa6\x10\ \x78\x69\xc1\xa4\x1f\x09\x42\x90\xe8\xd4\xac\xaa\xce\x60\x18\x64\ \x32\x01\x75\x93\xac\x8d\x55\x4a\x40\x5c\x64\x13\x82\x18\xad\x2b\ \x37\xda\x45\xc7\x96\xa4\x13\x42\xc4\x44\x4d\xa8\x50\x17\x92\x21\ \x42\x16\x89\x88\x69\x0d\xa9\x49\x27\xed\xf4\xc7\x1c\x72\x73\x79\ \x8f\xea\x50\x5d\x4d\x7a\xb8\x8b\xf3\xee\x3d\xe7\x7f\xfe\xe7\xdd\ \x7b\xdf\x83\x73\x2f\x9a\x08\xef\xbe\xbf\xaf\xef\xc6\xea\xea\xd5\ \xb9\xb9\x83\xa5\xa5\x19\x49\x32\xb7\x6e\x0d\xaf\xf7\x9b\xa9\xa9\ \xb5\x8a\x8a\xbb\x93\x93\x07\xcb\xcb\x29\xa8\x48\x81\x84\xc2\x04\ \x95\x95\xcf\x4e\x9c\x98\x1c\x1f\xef\x5f\x58\xf8\xa8\xa4\xe4\x5c\ \x2a\x35\xf9\xe8\x91\x51\x5c\x8c\xbb\x4c\x8a\xfe\xf3\xa0\xb9\x75\ \xc9\x5c\xd2\x2b\x2d\x2e\xfe\x31\x9d\x3e\x93\x4c\xd6\x04\x02\xdf\ \x3d\x7e\xfc\xc3\xf8\x38\xe0\x84\xa3\x4e\x23\x11\xd1\x21\x00\x0d\ \xc8\xf4\x4e\x4d\x7d\xe0\xf3\x41\x8f\x54\xc4\x1d\xda\x90\x27\x05\ \x12\x91\xa5\x84\xbc\x3b\xe5\x96\x6a\xcf\xfd\xd9\x59\x6f\x49\x49\ \x5f\x4d\xcd\x4a\x24\xf2\x4b\x63\xe3\x7c\x38\xfc\x6b\x53\xd3\xc3\ \x70\x78\xef\xce\x9d\xb7\x52\x29\xa9\x1a\x39\x6a\xec\x54\x1c\xe8\ \xff\x3a\x16\x3b\x69\x9a\x97\x8f\x1e\x85\x70\xb2\xae\x2e\x1b\x8f\ \xff\xd6\xda\xfa\x22\x1a\x5d\x8b\x46\x5f\xd0\x22\x91\xd5\xd6\xd6\ \x4c\x3c\x7e\xae\xba\x9a\x86\xc2\x23\xfd\x32\x84\x82\x31\x2e\x38\ \xe2\x0e\xc8\x29\xd3\x6c\x8e\xc5\x80\x05\x9c\x10\xba\x40\x80\xfe\ \x9f\x53\xa9\x3d\x45\x45\xf7\x1b\x1a\x16\x9a\x9a\x20\x09\x55\x08\ \x43\x1b\xf2\xa4\xa0\xd2\xd1\xce\x2d\x72\xc2\xe4\xd0\x3b\xf3\x36\ \xc9\xb5\xb6\xb6\x27\xcd\xcd\xeb\xb1\xd8\xe0\xb1\x63\xe5\xc1\x20\ \x3e\xee\x33\x09\xc1\x42\x79\x30\x3f\x6f\x7a\xbd\x2f\xdb\xda\xae\ \xd8\x36\x73\x7e\xab\xbe\x3e\xdb\xd1\x91\x4d\x24\xb2\x17\x2e\xd0\ \x50\xb2\xe7\xcf\x67\x2f\x5e\xec\x38\x7c\x98\x86\xc2\xa3\x1a\xa2\ \x61\x8c\x0b\x8e\xb8\x03\x02\x14\x80\xc0\x0a\xb8\xfb\xe4\x83\x81\ \x03\xc1\xe0\x75\xdb\x86\x1e\x24\xa1\x2a\xe9\x41\x1e\x4a\x92\x88\ \xd8\xef\xd0\x9d\x55\x92\xf7\x66\x66\x0c\xc3\xb0\x0d\xe3\x13\xbf\ \xff\x73\xcb\x0a\x7a\x3c\x8d\x67\xcf\x4a\x09\x43\xd9\x3b\x1c\x9f\ \x2d\x2f\x9b\x86\xf1\xf1\xbe\x7d\x75\x96\x25\xfb\xeb\x94\x65\x7d\ \x19\x08\xd0\x4e\xd2\x4c\xf3\x0b\xd3\xac\xdb\xbf\x9f\x31\x1a\x0a\ \x8f\xf4\xd3\xc4\x06\x63\xf1\xc2\x1d\x10\xa0\x00\x74\x9f\xcc\x20\ \x8a\x06\x94\x3e\xf4\x78\xa0\x07\x49\xdb\xef\x87\x30\xb4\xf5\xf4\ \x44\x3c\x7a\x7d\x1a\x9d\x0a\x2c\x73\x72\x24\x14\x9a\x9e\x9e\xfe\ \xe9\xce\x1d\xf9\x55\xdc\xbe\x79\x73\xf5\xe9\x53\xdd\x4c\x57\x54\ \x69\xc3\xe3\xf3\x35\x5e\xba\xb4\xdb\xe7\x6b\xd8\xb5\x8b\xde\xdf\ \x33\x19\xf7\xb9\xc5\xe9\xdc\x87\xee\x0f\xbe\x04\x5a\xa7\xec\xd8\ \xaf\xa8\xd3\xe5\xbc\xfe\x5c\x5f\xff\xb6\xbb\x1b\xc0\x7f\xfb\x55\ \x8a\xef\xf3\xe5\xe5\x23\xe1\xf0\xa7\xc7\x8f\x4b\x0a\xd7\x6c\xbb\ \xaa\xaa\x0a\xf2\x52\xef\x53\xf6\xef\xf6\xa1\x63\xe1\x65\x35\x99\ \x9b\x9d\xb5\x2c\xcb\xb1\x4a\x55\x1d\x96\x89\x65\x88\x7a\x51\xc5\ \xa1\x43\xd9\x6d\x12\xa0\x00\x04\x16\x70\x9d\xa1\x22\xc0\x10\x94\ \x20\xa6\x5c\x14\x6d\x65\xef\xdc\x87\xee\x3d\xa6\xea\xd0\x94\xd2\ \xca\xca\xca\x06\x07\x07\x65\xeb\x4b\x62\xca\x4c\xbe\x34\x14\x36\ \x5b\x5a\x5a\x88\x41\x81\x0c\x2f\x04\x77\x44\x14\xa5\x8b\xb8\x3b\ \x95\x25\xee\x80\x00\x55\x5b\x5b\xbb\x41\x38\xc8\x40\x09\x62\xd0\ \x13\x04\x61\xee\x90\xbc\xce\x80\x89\x0a\xe2\xd0\xd0\x10\x93\xbe\ \xb8\xb8\x88\xae\xd8\x80\x2e\xe1\x47\x46\x46\x18\x4d\xa7\xd3\x52\ \x81\xff\xfb\xbf\x8a\xfa\x6e\x01\xc5\x7e\x19\x1e\x1e\x96\x95\xa2\ \xbf\x2f\x7a\x96\x96\x96\x08\x07\x25\x21\xb3\x31\xe6\x26\x77\xa2\ \x40\x57\x49\x76\x76\x76\x52\x6c\x4f\x26\x93\x8e\x85\xd1\xd3\xd3\ \x43\xbc\xd1\xd1\x51\x79\xdc\xca\x9d\x28\x51\x24\xdc\xd8\xd8\x18\ \xb0\x80\x3b\xb6\x0c\x04\xfc\x7e\x3f\x64\xc4\x72\xd3\x3b\x51\x79\ \x9d\xcc\xa8\x24\x7b\x7b\x7b\x39\xf7\x0a\x85\x42\xed\xed\xed\x5d\ \x5d\x5d\x91\x48\xa4\xb2\xb2\x32\x18\x0c\x72\x48\xa4\xe2\x6d\xf1\ \xa6\x82\x9e\x24\xb0\x80\x13\x82\x40\x84\x23\x28\xa1\x21\x40\xda\ \x62\xa3\xb6\xd5\x06\x27\x33\x9b\xcc\xa1\x3e\x2a\xef\x72\x65\x65\ \x65\x60\x60\x20\x9a\x93\x44\x22\x41\xd5\x54\x15\x7c\x05\x71\x2b\ \x73\xa8\xdb\xa8\xa9\x9b\x98\x98\x20\x90\x44\x24\x34\x04\x24\x9c\ \xca\x6d\xa3\x39\xcc\xff\xa6\x82\x58\xcb\x36\x70\x88\xda\x7b\xdb\ \x7b\x53\x41\xd6\xbc\x9b\xba\x9e\x5e\x3e\x37\x15\xf2\x3d\x3f\xd4\ \xd9\x90\x27\x22\x9f\x59\x48\xe8\x31\xb6\xeb\x3e\x8d\xfb\x93\xae\ \x44\x86\xf2\x3f\x3f\x7c\x0f\x6e\x9b\x14\x15\xb4\xfc\x7f\x73\xaf\ \x20\xa4\xf0\xef\x08\x17\xfe\x3e\x2c\xfc\xdb\x97\xff\x00\xfb\x6b\ \xc0\x37\xb1\x10\x1f\x8c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x0a\xd4\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x4b\x00\x00\x00\x36\x08\x02\x00\x00\x00\x00\x90\xf3\xa2\ \x00\x00\x0a\x9b\x49\x44\x41\x54\x68\xde\xdd\x9a\x0b\x50\x54\xd7\ \x19\xc7\x2f\x46\xf0\x81\x28\xf1\xad\xe5\xd1\x56\x66\xd2\xc4\x4e\ \x1b\x33\x11\x47\x10\x15\x48\x10\x34\x3e\x20\x4b\x80\x05\x44\x01\ \x83\x84\x19\x47\x1e\x19\xeb\xb4\x55\x5b\xd1\xb1\x06\xd4\xa9\x11\ \x14\xc4\x68\x66\x92\xce\xf4\x15\x9f\x4d\xad\x02\xc2\xb2\xbc\x41\ \x44\x44\x79\x28\xa2\x8e\xaf\xc6\x94\x71\x04\x15\x48\xed\x6f\xef\ \x89\x77\xb6\x0b\xc2\xee\x72\x61\x92\x7c\xf3\xcd\xce\x77\xce\xf9\ \xce\xf7\xfd\xff\xf7\x9c\x7b\xce\xbd\xe7\xae\xf4\x8d\x2c\xff\xfd\ \xe1\x8a\x34\x34\x69\x9e\x3d\x7b\xc6\xaf\x72\x29\x85\x21\x2a\x7f\ \x38\x0c\x61\xd5\xd5\xd5\xd5\xdd\xdd\xad\xfc\x76\x76\x76\x62\x18\ \x5f\x82\x41\x61\x38\x34\xb3\xf4\x45\x83\x26\x98\x77\xca\x22\xd8\ \xaa\x8e\x67\x28\x18\x82\x1e\x26\x47\x8e\x1c\x7e\x7d\xd6\x1b\xf3\ \xbc\x16\x78\x78\x7a\x79\x7a\xce\x0b\xd6\x6a\x0f\x7e\xf6\x59\x43\ \x73\x33\xa3\x29\x98\x2b\x6c\x19\x5e\x01\x49\x15\x60\x43\xc1\xf0\ \xe9\xd3\xa7\xa0\x4f\xf9\x70\xc3\x9b\x33\x9d\xb3\x76\xc4\x67\xa6\ \xae\xf1\x99\xff\xfa\x24\x49\xfa\x99\x8d\x8d\x83\xad\xed\x4f\x5e\ \x7b\x55\x13\x1d\x9d\xf5\xe9\xa7\xcd\xb0\xed\xee\x56\xc6\x59\x2d\ \x54\x43\x71\x1f\x8a\x31\x5c\xb7\x3e\x79\x65\x90\x57\x5b\xfd\x5f\ \xda\x6a\xff\x14\x1d\xb3\x4c\x23\xd9\xd5\x3b\xbb\x1d\x9d\x30\x7d\ \xcf\xa8\x71\xe1\xd2\x30\x27\x49\x92\x6c\x6c\xa6\x4e\x9d\xba\x7c\ \xf9\xf2\x9c\x9c\x9c\xf6\xf6\x76\xb5\xee\xcc\xc1\x1d\x43\x11\x59\ \x8c\xe1\xfa\xc4\x14\x8d\xff\xec\x6b\xfa\x9c\xe6\x82\x03\xa1\x61\ \x7e\xcb\xa4\x97\xf2\x26\xfe\x68\xe7\x08\x87\x18\x69\x98\xa7\x24\ \x39\x0d\x1f\xee\xe2\xec\xbc\x78\xf1\xe2\x2d\x5b\xb6\xe4\xe6\xe6\ \x3e\x79\xf2\x44\xb5\x59\x3a\x04\x9b\x84\x60\x18\xa4\x09\x09\x7d\ \x67\x6e\x4b\xc9\x27\xcd\xba\xec\xd8\x88\x80\x11\x92\xf4\x8a\xa3\ \xe3\x34\x17\x97\x45\x1a\xcd\xf6\xbd\x7b\x4b\xab\xab\x3b\x1e\x77\ \x0c\xc6\x8a\x2a\x0d\x2a\x3d\xb1\x72\x60\x6c\xda\xf4\x5b\xa6\x61\ \xfc\xca\x25\x4d\xba\xac\x46\x5d\xd6\x07\x51\x4b\x28\x86\x85\x6b\ \x0d\x94\x8c\x96\x59\xe3\x2d\xe4\x3b\x3d\x4b\x95\x95\x50\xd0\x4b\ \x4c\x4c\x9c\x3a\x75\x8a\xb7\xaf\x5f\x64\xe0\xfc\xab\x45\xd9\x68\ \x44\xa0\x97\xaf\xaf\x9f\xab\x8b\x73\x52\x52\x12\x0e\x1d\x1d\x1d\ \xea\xae\x9f\x83\xcb\xd0\x84\x5e\x72\x72\x32\xc3\x75\xa3\xb5\x75\ \xc3\xc6\x5f\x07\xf9\xbd\x79\x4d\x7f\x08\xc5\xa0\x78\xbd\xa5\x85\ \x26\x1c\x70\xc3\xf9\xfb\xc1\xd0\x84\xde\xfa\xf5\xeb\x87\x0f\x1f\ \x5e\x56\x56\x86\x1d\xb3\x26\x2e\x78\xf1\x9c\x66\xfd\x21\x14\x83\ \x22\x95\x34\xe1\x80\xdb\xe0\x91\x54\x93\xa1\x09\xbd\x75\xeb\xd6\ \xd9\xda\xda\x56\x55\x55\x31\x09\xd9\xd6\xe3\xd6\x26\x68\x02\xdc\ \x9b\x8a\x72\x50\x0c\x8a\x54\xd2\x84\x03\x6e\x38\x0f\x12\x49\x69\ \x90\x96\x96\x84\x84\x04\x3b\x3b\x3b\xd0\x3f\x7e\xfc\xb8\xb5\xb5\ \x95\x45\x63\x4d\xdc\x07\x32\xc3\x83\x28\x06\x45\x2a\x69\xc2\x01\ \x37\x9c\xe9\xa2\x90\x54\x71\x51\x55\x67\x0c\x4d\x46\x2f\x3e\x3e\ \x7e\xe4\xc8\x91\xe0\x7e\xf4\xe8\xd1\xcd\x9b\x37\x6f\xdd\xba\xc5\ \x93\x76\xec\xfb\xf1\x9a\x80\x39\x8d\xba\x1c\x14\x83\x22\x95\x34\ \xe1\x80\x1b\xce\x74\xa1\xa3\xea\x23\x29\xa9\x3e\x7a\x71\x71\x71\ \xa3\x46\x8d\x02\xf1\xc3\x87\x0f\xaf\x5f\xbf\x7e\xfb\xf6\xed\x1b\ \x37\x6e\x74\x76\x3e\x8d\x59\xb3\xf6\xdd\x00\xf7\x86\xa2\x83\x28\ \x06\x45\x2a\x69\xc2\x01\x37\x9c\xe9\x42\x47\xba\xab\x3b\x92\x92\ \x5a\xf4\xba\xe4\x07\xe8\xd8\xd8\xd8\xd1\xa3\x47\x83\xb5\xad\xad\ \xad\xa5\xa5\x45\x0c\x11\x04\x9e\x3c\x79\x1c\x13\x1b\x07\xb1\x2b\ \xba\x6c\xd4\xc0\x30\x36\x8e\x4a\x9a\xc4\x20\xe3\x4c\x17\x3a\xd2\ \x9d\x20\x84\x12\xfb\xc7\xc0\x49\x4a\x2a\xd2\x8b\x8e\x8e\xb6\xb7\ \xb7\x07\xe5\x83\x07\x0f\xae\x5e\xbd\xca\xf8\xb4\xca\x72\xed\xda\ \xb5\x8e\xf6\xf6\xe8\x98\xf7\x0d\x0c\x0b\xb3\x51\x0c\x8a\x54\xd2\ \x24\x7c\x70\xa6\x0b\x1d\xe9\x4e\x10\x42\xa9\x45\x52\x52\x8b\x5e\ \x54\x54\xd4\x98\x31\x63\x2a\x2b\x2b\xef\xdf\xbf\xdf\xd4\xd4\xc4\ \x98\x80\xbe\x45\x16\x8a\x4c\xc2\x55\xd1\xb1\x10\xbb\x5c\x98\x85\ \x62\x50\xa4\x52\x78\x2a\xce\x14\xe9\x4e\x10\x42\x11\x50\x15\x92\ \x56\xae\x34\xca\x4a\x20\xe8\x45\x44\x44\x38\x38\x38\x80\xec\xce\ \x9d\x3b\x57\xae\x5c\x61\x34\x9a\x65\xb9\x2a\x4b\x43\x43\x43\x5b\ \xdb\x7f\xa2\x56\xc7\x40\xac\xbe\xf0\x00\x8a\x41\x91\x4a\x9a\x84\ \x8f\xe2\x4f\x77\x82\x10\x8a\x80\x84\x55\x48\x5a\xbd\xf0\x58\xc3\ \xd0\x84\x9e\x56\xab\x1d\x3b\x76\x6c\x45\x45\x05\xb7\x53\x7d\x7d\ \x3d\xe3\xd0\x28\x4b\xd3\x73\xb9\x7c\xf9\xf2\xd7\x5f\x3f\x58\xb9\ \x2a\x3a\x28\x60\xce\xa5\x82\x2c\x14\x83\x22\x95\x34\x29\x6e\x4a\ \x2f\x82\x10\x8a\x80\x84\x25\xf8\x00\x49\x4a\x03\x9c\x9c\x21\x21\ \x21\x8e\x8e\x8e\xa0\xe1\x46\xaa\xab\xab\x63\x4c\xae\xc8\xd2\x60\ \x24\x97\x2e\x5d\xfa\xea\xab\x7f\x47\x46\xad\x0e\xf2\x77\xaf\xcb\ \x3f\x80\x62\x50\xa4\x92\x26\x63\x4f\xa5\x2f\xa1\x08\x48\x58\x82\ \x93\x62\x20\xd3\x55\x1a\x08\xbd\xe0\xe0\x60\x10\x94\x97\x97\x73\ \x0b\xd5\xd6\xd6\x72\xed\x41\x5c\xdf\x43\x68\xba\x77\xf7\x6e\x44\ \xe4\xaa\xa0\x00\xf7\x8b\xf9\xfb\x51\x0c\x8a\x54\x8a\x5e\x26\x22\ \x82\xd0\x44\x58\x82\x93\x82\x44\x56\x93\xb4\x60\x96\x0a\xb7\x6e\ \x59\x0c\xef\x7b\x41\x41\xe3\xc7\x8f\x07\x01\xf7\x4f\x4d\x4d\x0d\ \x57\xfd\xe2\xc5\x8b\x75\xbd\x09\xad\x77\x6e\xdf\x0e\x8f\x88\x62\ \x72\xd6\xe6\x1f\x40\x31\x28\x52\x29\x3a\xf6\x14\x11\x8a\x56\x82\ \x93\x82\x44\xa4\x23\xa9\xc8\x6e\xd1\x74\x35\x97\xa1\x09\x3d\xce\ \x1a\x26\x4c\x98\xc0\x73\x33\x77\x4e\x75\x75\x35\xd7\xfb\x82\x2c\ \xb5\xbd\x09\x0e\xdc\x57\xda\xf0\x95\x81\xfe\xee\x17\xf2\xf6\xa3\ \x18\x14\xa9\x14\x7d\x7b\x8a\x12\x0d\x07\x52\x90\x88\x74\x24\xb5\ \x82\xa4\x64\xfe\xe4\x54\xe8\x2d\x5d\xba\x74\xe2\xc4\x89\xa5\xa5\ \xa5\xac\x13\x2c\x7a\x5c\xe9\xf3\xb2\xd4\xbc\x40\xf0\x61\x6b\x0c\ \xd3\x46\x42\xac\x26\x37\x13\xc5\xa0\x48\xa5\xe8\xde\xab\x28\x31\ \xf1\x21\x11\xe9\x48\x4a\x6a\x63\x24\xaa\x31\x34\x0e\xba\x64\xc9\ \x92\x49\x93\x26\x95\x94\x94\x30\x8b\xb8\xb4\x6c\xd0\x95\xfd\x09\ \x6e\x6c\x78\xa1\x61\x11\xc6\x0c\x29\x52\x49\x53\xbf\xdd\x49\x81\ \x1b\xe9\x48\x4a\x6a\x00\x58\x44\xb2\x9f\x59\xaa\x4c\x4e\x71\x8b\ \xfb\xfb\xfb\x4f\x9e\x3c\xb9\xb8\xb8\x98\xf9\x43\x3e\xd6\x3a\x6e\ \x92\x8a\xfe\x04\x4f\x36\xbc\x90\xd0\x70\x88\x9d\xcf\xcd\x3c\x2f\ \x33\xa4\x48\xa5\x08\xd2\xb7\x88\x14\x78\x92\x94\xd4\x00\x00\x86\ \x58\xf0\xcc\x99\xae\x7d\x31\x34\xa6\x87\xe1\xe7\xe7\x37\x65\xca\ \x14\x72\x30\x79\xf4\x7a\x3d\xd7\x95\x99\x53\x66\x86\xe0\xcc\x66\ \xf7\x5e\x88\x36\x30\xc0\xbd\x3a\x37\x03\xc5\xa0\x48\xa5\x88\xd3\ \xaf\x88\x44\x38\x93\x1a\x00\xc0\x00\x8c\x40\xd8\x2f\xc9\x17\x32\ \x34\xa6\x87\xf8\xfa\xfa\x72\x98\x59\x54\x54\xc4\xb4\xd1\xe9\x74\ \xa4\x21\x5f\xb1\x79\x52\x58\x58\xc8\x8d\xa4\x09\x0e\x5d\xe1\x3f\ \xa7\xea\x6c\x26\x8a\x41\x91\x4a\x9a\xcc\x0c\x22\xd2\x91\x1a\x00\ \xc0\x00\x0c\x90\x04\xb6\xbe\x49\xf6\xce\x50\xa1\x27\x7e\xbd\xbd\ \xbd\xa7\x4f\x9f\x4e\x5c\x66\x0b\x98\x48\x86\xad\x37\x5b\x0a\x0a\ \x0a\xd8\xdf\x64\x86\xee\x95\x67\x32\x50\x0c\x8a\x54\xd2\x64\x7e\ \x1c\x91\x14\x00\xc0\xc0\x06\x12\xc0\x14\x90\x2f\x22\x29\xf5\xbd\ \xc0\xf0\x9e\xc6\xa5\x72\x72\x72\xe2\xe2\x31\x55\xce\x9d\x3b\x87\ \x41\x0e\x9d\x25\x92\x9f\x9f\xcf\x0e\xf7\xae\x26\x44\x66\xb8\x0f\ \xc5\xa0\x48\x25\x4d\x16\x85\x12\xa9\x81\x01\x18\x0c\x80\x01\x4f\ \xbc\x97\x5a\x36\x4b\x95\x31\xe4\x10\x9a\xe3\x30\x57\x57\xd7\x19\ \x33\x66\x10\x0e\xc3\xc5\xc5\xc5\xd5\x42\xa1\x8b\x9b\xdb\x0c\x9b\ \x61\xb6\x11\x1a\xdf\xd2\x2f\xf7\xa2\x18\x14\xa9\xb4\x2e\x1a\xbf\ \x80\x01\x12\x06\xf0\x00\x69\xd6\x18\x1a\x7f\x12\x11\x2b\x27\x1f\ \x0f\xc4\x86\xcb\xa6\x84\x21\xf6\xa8\x1a\xcb\x45\xec\x87\xda\xf0\ \xc8\x65\x8b\x66\x97\xff\x6b\x1f\x8a\x41\xb1\xef\xfd\xb0\x0f\x11\ \x30\x04\x24\xf1\xc8\x21\xbe\x73\x18\x8f\x96\x42\x47\xea\x79\x08\ \x6f\xfc\x1d\x53\x95\xb3\xe7\x6f\xcf\x85\x93\x3e\x0c\xf0\x99\x55\ \xf2\xcf\x8f\x51\x0c\x8a\xe2\x2e\x50\xe5\xc3\x81\xf1\x87\x57\x13\ \xcc\x52\x4f\x57\xd5\x3f\x1e\x28\x0c\x03\x17\xbb\xd7\x17\x1f\x42\ \x31\xd4\x62\xd8\xeb\xc3\xc9\xff\x8d\xe1\x37\xcf\x45\x70\x3b\x7c\ \xf8\xb0\x87\x87\x87\xb7\x8f\x4f\x60\xe0\x0a\xe6\xf7\xbc\xf9\x0b\ \xe7\x2f\xf4\x59\xe8\xed\xbb\x60\xa1\xcf\x02\x6f\x0c\x6b\x74\xfe\ \x02\xef\xb7\xfd\xfc\x9d\x9c\x5d\x5f\x1e\x67\xff\xcb\x9f\xff\x14\ \xc5\xa0\x48\x25\x4d\xd6\xc5\x04\xcc\x02\x19\x18\xf0\x00\x09\x54\ \x00\x03\x1b\xf0\x50\x10\x3c\xc5\x8c\x35\x9d\xa5\x8c\xf2\x91\x23\ \x47\xa6\x4d\x9b\xce\x1d\xcc\xc7\xb0\xfd\xdb\xd7\xee\xd8\x10\xfe\ \xbb\xc4\xf7\x52\x53\x42\xb7\xa5\x84\xa5\x26\x87\xa6\x26\x87\x6d\ \xb3\x54\x53\xc2\xb6\x26\x85\xa4\xff\x66\xf5\xee\xcd\x6b\x76\xfc\ \x2a\x0a\xc5\xa0\x48\x25\x4d\x96\x46\x4b\x35\xa8\x0c\x26\x25\x14\ \x60\xc0\x03\x24\x50\x01\x0c\x6c\xc0\x77\x3d\xff\xa8\xfc\xc2\x95\ \x06\x83\xcf\x77\xa9\xdb\xb6\x39\x8e\x73\x08\x5a\xe4\x7e\xe1\x4c\ \xc6\x83\xba\x3f\x37\xe9\x0e\x36\x14\x66\x37\xeb\x73\x9a\xf4\x86\ \x23\x5d\x0c\xf3\x55\xf8\x37\xea\xb2\x1b\x0b\xb3\x9a\xb1\x8b\x0e\ \x62\x50\x54\x9a\x2c\x0a\x05\x00\x0c\xc0\x00\x09\x60\xc0\x03\x24\ \x50\x01\x0c\x6c\x63\x16\xfd\xac\x34\xd8\x9c\x9a\xf8\xbe\xb5\x68\ \x98\x24\x25\x44\x05\xd4\x9e\xcd\xa8\xcb\xcb\xd4\x1f\x4d\x2b\x39\ \x9e\x5e\x76\x72\x77\xe9\x89\x5d\x68\xd9\x89\xdd\x43\xa6\xdf\x66\ \x3c\xb9\x1b\x00\xc0\x00\x0c\x90\x00\x06\x3c\x40\x02\x55\xcc\xcc\ \xbe\x56\x1a\x85\xa4\x72\xbc\x2b\x8a\xa7\x4e\xfd\xc3\xc9\xe5\xc7\ \x53\x26\x8c\xd9\xbf\x23\xa1\xb9\xf8\xd0\xf9\xd3\x7b\x8b\x8f\xa7\ \x97\x9f\xda\x83\x92\x4f\x18\x83\xad\x4a\x22\x52\x03\x00\x18\x80\ \x01\x12\xc0\x80\x27\xf8\x28\x87\xc8\x26\x2b\x65\x2f\x3b\xbe\x52\ \xc3\x25\x11\xcb\x20\x87\xd3\xbf\xdf\xba\x6d\xd8\x4b\xb6\x73\xdf\ \x70\x3b\xfd\x79\x6a\x63\x51\x4e\xe9\xc9\x5d\xc5\xf2\x60\x96\x0d\ \xf2\x60\xca\xc1\x0d\x43\x47\x3a\x92\x92\x1a\x00\xc0\x00\x0c\x90\ \x00\x26\x16\xe4\x3e\xfe\xa9\xd2\xcf\x93\xb7\x98\xb4\xe2\xde\xe5\ \xfc\x7a\xd9\xf2\x20\x1b\x49\x8a\x0d\x7b\xab\xea\xf4\xc7\x17\xf3\ \x32\x75\x47\xd3\xf4\xc7\xd3\x4b\x4e\x90\x7e\x77\xf1\x89\x5d\x18\ \x2a\x2a\x01\x09\x8b\x41\x0a\x12\x91\x8e\xa4\xa4\x06\x00\x30\x00\ \x23\xd6\x45\x31\x2d\x2d\x7e\xf2\xee\xf5\xe0\x50\xcc\x81\xdc\xdc\ \xbc\x19\x6e\xaf\x8c\x1f\x37\x2a\x7d\x73\x6c\x7d\x61\x76\xc5\x97\ \x7f\x2c\xf8\xe2\x23\x40\x00\x88\x5f\xfd\xf1\x5d\x06\x64\x03\x53\ \x82\x28\x01\x09\x4e\x0a\x12\x91\x8e\xa4\xa4\x06\x80\x72\x1a\x66\ \xce\x11\xa3\x64\xe9\x73\x83\xe1\x86\xee\xea\x4a\x4b\xdf\x65\x37\ \x62\xe4\xac\x99\xae\x47\x3f\xd9\x4c\xfa\xa2\x63\x06\x28\xfc\x16\ \x1d\x4f\xd3\x1d\x4b\xd3\x71\xd5\xad\xd6\x63\x69\x04\x51\x02\x12\ \x9c\x14\x24\x22\x1d\x49\xc5\xdf\x8b\x2c\x7a\xde\xb2\xec\x24\xca\ \x78\xd2\xde\xbb\x77\x97\xf7\x74\x76\x21\xed\x0a\xaf\xe2\x93\x7b\ \xce\x9f\xcd\xc8\xff\xfb\xce\x73\x5f\x7c\xa4\x3b\x96\x5e\x78\x34\ \x0d\xc5\xb0\x48\x95\x5e\x04\x21\x14\x01\x09\x4b\x70\x52\x90\x88\ \x74\x66\x4e\xcb\x01\x9d\x79\x1b\x7f\x27\x14\x93\x96\xf7\xd2\xd7\ \x66\xfe\xc2\xc1\xde\x6e\xeb\x86\x48\x0e\xd1\x4a\x4f\xed\xc9\xfd\ \xeb\x1f\xc0\x87\xe6\xfd\x6d\xa7\x30\xcc\x51\xc5\x99\xee\x04\x21\ \x14\x01\x09\x4b\x70\x52\x28\xcb\xbb\x15\x27\xdf\x16\x9f\xea\xf7\ \x5c\x69\x29\xee\xcb\xc8\x1c\x6d\xef\xf0\xaa\xdb\xb4\xcf\x33\x37\ \x5e\x38\x77\xa0\x42\x7e\x09\xac\x3a\x9b\x51\x69\xb6\x1a\x9c\xcf\ \xec\xa3\x23\xdd\x09\x42\x28\x02\x12\x56\x5c\xc7\x81\xfc\xaf\xcf\ \xfa\x2f\x33\xa2\x97\x32\x69\xf9\x30\xb6\x6a\x75\x0c\x33\x6a\xf9\ \xa2\xd9\xdb\x37\x46\x6e\x4a\x0a\xd9\x9c\x1c\xba\x25\x39\xcc\x4c\ \xc5\x99\x2e\x74\xa4\x3b\x41\x08\x45\x40\xe3\x69\x69\xf5\xb7\x6a\ \x49\x95\x97\x17\xfe\xe8\x23\x1e\x83\x38\x2f\xf2\xf1\x79\x7b\xee\ \x5c\x4f\x4f\x4f\x2f\x0f\x8f\x79\x1e\x1e\x5e\x66\xeb\x3c\xba\xd0\ \x91\xee\xe2\xbf\x1b\xf2\xc2\xd6\x39\xf0\xd7\x37\x15\xbe\xe3\x9b\ \x7c\x8a\x1a\x20\x20\x11\x41\xc5\x3f\x10\x49\x2a\xbe\x98\x99\xbc\ \x89\x76\x5b\x28\xaa\xbf\x79\x0f\xc5\x7f\x13\xbf\x0b\xf2\x3f\x84\ \xe7\xbe\xe1\x71\xc1\x1b\xd4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x0c\xdc\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x4b\x00\x00\x00\x36\x08\x02\x00\x00\x00\x00\x90\xf3\xa2\ \x00\x00\x0c\xa3\x49\x44\x41\x54\x78\x5e\xdd\x5a\xdb\x93\x55\xc5\ \xd5\xef\xee\x7d\xce\x99\x1b\x03\xcc\x30\x37\x44\x19\x18\x2e\x2f\ \xc6\x38\x58\xca\xc5\x19\x14\x98\xa4\x2c\x35\x98\x08\x09\x65\xe5\ \x42\xb4\xb4\x0c\x65\x12\x1f\xe2\xc3\xf7\x96\xbf\x20\x79\xc8\x05\ \xa2\x46\x0a\x43\x88\xa6\x4c\x82\x31\x26\xb1\x2c\x22\x20\x8a\x90\ \xd2\x12\x92\x54\xe5\x01\x74\xb8\x49\xf8\x64\xe0\x38\xc3\xdc\x3c\ \x67\xef\xdd\x9d\x75\xd6\x3a\xdd\xab\xf7\xd9\xce\xcc\xa9\xf1\x24\ \x0f\x69\xfa\x6c\x56\xef\xbe\xad\x5f\xaf\x5b\x77\xcf\x16\x31\x26\ \x8d\x89\x08\xa6\xf9\x0d\x17\xb9\xfd\xd4\xef\x99\x4e\xa5\xd8\x4b\ \xe9\xaa\x4f\x6c\x9c\x6a\x93\x26\xb8\x98\x66\x2c\x23\xa5\x14\x42\ \xc0\xd3\x18\x63\x69\x7e\xa6\x8b\xd4\xd2\xaf\x82\x22\xbf\xac\x65\ \xe2\xb9\x98\xc0\x54\xd1\x86\x39\xe4\xc4\xc5\xcc\xa7\x99\x5e\x63\ \x22\xc2\xa1\x85\xc4\xeb\x95\x4a\x8e\x51\xa2\xfd\x66\x8e\xf6\x09\ \x1a\x5c\x61\x9a\xdd\x22\xce\x5e\x4b\xa3\x28\x02\x02\x90\x00\xcd\ \x4f\x2f\x11\x00\x47\xf8\xb5\xe9\x97\xe9\x96\x3e\x01\x13\xc1\x74\ \xb3\xd4\xd2\xd9\x49\xaf\xd4\x33\x93\x39\x77\xee\xec\x43\x8f\xec\ \x18\x1f\x1f\x0f\x82\x00\x85\x23\x05\xca\x40\x18\x09\x4f\x49\x45\ \x7c\x6d\x25\x88\xff\xa8\x9d\xb4\x72\xf3\xab\xa5\x34\xf4\xc0\x11\ \x68\xa2\xa6\xa6\xa6\x3d\xcf\x3c\xd9\xdd\xbd\x04\x40\xe2\x44\x28\ \xe1\xaa\x53\x66\xd6\xf0\xfe\x75\xf1\xe2\xba\xf5\x03\x9f\x69\xbc\ \xfc\xbd\x81\x95\x63\x93\xa1\x94\x64\x2e\x84\x8f\x71\x38\x68\x8c\ \x09\xdb\xd1\x60\x54\xb2\x4d\xd8\x1d\x18\x53\x6e\x3a\xa7\x21\xbb\ \xfb\xb5\x93\x30\xd1\x3b\xc7\x8e\x5c\xb7\x68\x91\x03\x59\x3d\xc2\ \x92\x96\x7f\xa2\xff\x48\xdb\x06\x55\xc1\x1c\x08\xef\x83\x55\x6b\ \xd6\xaf\x6b\x1b\xff\xf5\x13\x9f\x27\x45\xb2\x23\x10\x3a\x96\xa1\ \xc5\x66\x04\x23\x64\xf4\xde\x04\x56\x86\xd0\x1e\x68\xc9\x95\x4a\ \xa9\x07\x7e\x78\xe0\xd8\x95\xa6\x13\x7f\x7d\xe3\xba\x45\xd7\x13\ \x03\x3e\xc8\xe9\xcd\x3e\xd1\x94\x19\x4d\xd0\x5c\x15\x86\x61\x36\ \x9b\xbd\xf8\xc1\x05\x80\xd7\xd7\x3e\xf9\xdc\xe3\x03\xf9\xfc\x78\ \x64\x8c\x72\xda\x45\x60\x48\x8a\x2c\x43\x42\x60\x81\x90\x14\x79\ \x58\xaa\xa4\xd7\xb6\xbb\xe5\x59\x03\x8b\x52\x3e\xff\xf8\xc0\x57\ \x7f\x7c\xb0\x77\x75\x3f\x80\x5c\x74\xfd\x0d\xc0\x06\x82\x64\x0e\ \x19\x45\x0a\xcb\xcc\x32\x44\x82\xa5\xf7\xc1\x85\xf3\xab\xd6\xae\ \x5f\xdf\x5e\xd8\xf7\xed\x4d\x1f\x8d\x4e\x42\xb5\x52\x64\x37\xd2\ \x08\x36\xa1\xe4\x38\x8c\x91\x59\xf1\x6a\x3d\xb4\xd2\xb2\x46\xab\ \x44\xbe\xb4\x44\xb6\x34\x37\x7c\x7d\xe7\xc1\x37\x86\xea\x4e\x1c\ \x7f\xe3\xfa\x1b\x16\xb3\x24\x67\x94\xa1\x98\x39\x31\xbc\x0b\xe7\ \x01\x5e\xff\x9d\xed\xe1\x2f\x77\x0c\xe4\x87\x27\xa0\xa6\x04\x2f\ \x82\xd1\x15\x73\x5b\xc2\xa0\x08\x10\x49\x34\xe5\x6f\x58\xb4\x56\ \xe0\x3c\x13\x09\xd0\x56\x2a\x03\x3f\xa9\x00\x64\x7e\x78\x72\xdf\ \x8e\x81\x6f\xfc\xec\x60\xef\x9a\xfe\x13\xc7\xdf\xbc\x61\x31\x83\ \x9c\xde\x2c\x4b\x6e\xa3\x22\x76\x57\x48\x99\xe0\x81\x72\x5e\x38\ \x77\xae\x77\x6d\xff\xc6\x8e\x68\xef\xa3\x9b\xf2\xa3\x13\x25\x1c\ \xd8\x80\xb4\xd1\xb0\x2d\x91\xa6\x4d\x21\x43\xaa\x22\x30\x0c\x9c\ \x28\xfc\x59\x88\xcc\x07\xc5\x5e\xd4\x8d\xd6\xe6\xc6\xed\x4f\x1f\ \x3c\x74\x39\x73\x12\x40\x76\x77\x3b\x75\x25\x08\x69\x2d\x9d\x41\ \x86\x3e\xbc\xf3\x67\xcf\x02\xbc\x81\x4e\xfd\x8b\x87\x37\x5e\x1d\ \x46\x78\x34\x2b\x30\xed\x77\xa1\x82\xb3\xa6\xf4\x98\xf8\xb3\xae\ \xc4\xf6\x65\x3b\x64\xa1\x1a\x3b\x1a\x59\x23\x81\x84\xa9\xf7\x3e\ \xbc\xf1\x9b\xbb\x0f\xdf\xbc\xa6\x0f\x40\x2e\x5e\xb2\x84\x41\xce\ \x22\x5a\x38\x78\xe7\xce\x9e\x01\xe5\xfc\x5c\x87\xd9\xf3\x20\xc1\ \x93\xaa\x2c\x5e\xc5\x50\xac\xc1\xa2\x18\x94\x15\x66\x4a\x4b\x81\ \x70\xc0\x65\x22\x8e\x10\x6e\x8b\x95\xf5\xd9\x45\x11\x25\x15\x82\ \x9c\x7c\xf6\xc1\x8d\x0f\xed\x39\xd4\xbb\xb6\x0f\xd4\xb5\x7b\xc9\ \x52\xdf\xf1\x54\x8b\xd0\x97\xde\xd9\x33\x00\xaf\xef\xae\x4e\xb9\ \x7b\xfb\x26\x80\x27\x84\x62\x78\x1e\x13\xcc\x34\xfc\x38\xfa\x57\ \x4c\xc9\x2d\xa9\x01\xa3\x67\x84\x64\xc6\xde\x72\x48\x6a\x9d\x00\ \xb9\x67\xfb\xa6\x87\xf7\x1e\xea\x5d\x03\x20\x8f\x2e\x59\x9a\x00\ \x39\x43\x3c\xa4\xe4\x02\xc3\x99\xc1\x41\x80\x77\x77\x67\xf0\xcc\ \xd7\x36\x5c\x19\x43\xd7\xe2\x3b\xae\xa4\xca\xa5\x8c\x87\x62\x3a\ \x11\x54\x4d\x55\x1c\x10\xc9\xd3\x03\xe5\x3c\x27\x05\x13\x6b\xab\ \xd4\x89\x93\xb1\xea\x0a\x64\xdb\x9c\xc6\x47\x7e\x75\xf8\x95\x0f\ \x63\x00\xb9\xb4\xa7\x87\x18\x66\x9b\x9c\x2a\x1e\xfa\xf0\x06\x07\ \xdf\xbf\x65\x6d\xdf\x3d\x1d\x99\xa7\x1f\xd8\x30\x34\x32\x01\x9d\ \x54\x49\x3c\x9a\x16\xd4\x77\x20\x4c\x7a\x50\xa8\x59\x9a\x47\xd6\ \x57\xc9\x26\x48\xb4\xed\xad\xd9\xeb\xd2\x4b\xde\xf7\xc0\x88\x1a\ \x5d\x80\x00\x96\x7e\xfe\xc0\x86\x47\x9f\x3f\xbc\x6a\xed\xed\xef\ \x1e\x3f\xda\xd3\xb3\xcc\x49\x72\xba\x78\xc8\xf0\xde\x7f\x0f\xa4\ \xf7\x85\xce\xdc\x53\xdb\xee\xbc\x32\x3a\x29\xa4\xf5\x9c\x1c\x32\ \x19\x17\x1b\x94\xbf\xf9\x4c\x6b\xa9\x15\x21\xcb\xd0\xe0\xc3\x6d\ \xf7\xa4\x64\xaf\xca\x0a\x92\xd2\x71\x27\x49\x23\xda\x9a\x1b\xbe\ \xf5\xc2\xeb\x7f\xfc\xb0\x78\x02\x40\x2e\x5b\xee\x4b\x92\x7d\x69\ \x5a\x7a\xef\xbf\x77\xfa\x96\x75\x7d\x9b\x3b\xea\x9f\xdc\x7a\xe7\ \xd0\xf0\x04\xbc\x27\x78\x2c\x3b\x86\x58\xc6\x9c\x8c\x6f\xdc\x86\ \x40\x24\xe4\xcc\x12\x16\x95\x56\xc7\xca\x2f\x13\x12\xe6\xf7\x14\ \x9c\x94\xb3\xc9\xa1\xe1\xc9\xa7\xb6\x6e\xd8\xf1\xdb\xd7\x4b\x92\ \x3c\x76\x74\xd9\xf2\x15\x0e\x24\x24\xb6\x43\x1f\xde\xe9\x53\xa7\ \x6e\xb9\xbd\xff\x8b\x1d\xf5\xbb\xee\xbf\x63\x68\x0c\x94\x53\xf2\ \xa6\x81\xe3\x93\x48\x25\xe6\xc4\xdf\x09\x79\xec\x55\x56\xd9\x2e\ \x56\x60\xa9\x83\xe5\xb4\x53\xc0\x83\xda\x03\x69\xda\xe7\x34\x3e\ \xf6\xe2\x91\x97\x2e\x7f\xfc\xee\x5b\x6f\xae\x58\xb9\x92\x80\x30\ \x42\x77\x62\x08\x82\xe0\xbd\xd3\xa7\x6e\xeb\xbb\x63\xdb\xc2\xa6\ \x5d\x5f\xda\x30\x34\x3a\x4e\xd2\xd3\x46\x43\x6b\xa5\x52\x5a\x4a\ \xb2\x48\xc6\x6d\xc1\x18\x04\x57\x32\x42\x16\x22\xe9\x26\x95\x24\ \x6f\x57\x19\x09\xe9\x83\x1d\x41\x56\x2c\x90\xd6\x25\x84\x24\x49\ \x48\xed\xcd\x4d\x8f\xfd\xfe\xf0\x0b\x97\xc6\xdf\x3e\x7a\x64\xf9\ \x8a\x95\x04\xa7\xec\x69\x1c\xbc\xbf\x9f\x3c\xd9\xb7\x71\xa0\x37\ \x17\x6f\xbf\xf1\xa6\x3f\xfd\xed\x94\xb4\xaa\x9c\xcd\x66\x82\x20\ \x57\x28\x6a\x29\xd9\xe2\x18\xa2\xcf\x15\x81\xb0\x41\xcc\xbd\x64\ \x55\xe6\xb3\x03\xf7\xf1\xfd\xa4\xed\x4f\x0e\x96\x7a\x7a\xef\x25\ \x6f\x62\xeb\x72\x2a\x8e\x8b\x61\x18\x59\x49\x8a\xed\x37\xf6\xfc\ \xf3\xff\xdf\x5e\xb5\x7a\xdd\xd1\x43\xaf\x7d\xb6\xb7\x17\x40\x29\ \xa5\x24\x9d\xd3\x01\x5e\x3e\x9f\xdf\xb2\x65\xcb\xe0\xe0\xe0\xc2\ \xb6\x05\x23\x13\x1f\x4b\x69\x2d\x35\x13\x0c\x0d\xe5\x47\x47\x2f\ \x2d\x5e\x54\x1f\xc5\x5a\x54\x1c\xfc\xac\xd1\xb0\xa3\x04\x04\x2e\ \xae\x3b\x2d\xe5\x98\x87\x95\x54\xc7\x76\x6b\x29\xc9\x32\xf7\xc6\ \x13\x32\xa5\xe4\x99\x40\x9d\xbf\xf8\x71\x73\xf3\xc2\xf6\xf6\xd6\ \x28\x8a\x09\x24\x54\xce\x6b\xac\xbf\x74\xe5\x6a\x4f\x4f\xcf\xfe\ \xfd\xfb\x5b\x5b\x5b\x01\x1d\x6b\x69\xa1\x58\x14\xb0\x30\x75\x75\ \xda\x18\x8b\x4e\xd0\x61\xf7\x27\x3f\x7d\xf6\x0f\xbf\x7b\xe8\x95\ \xfd\xab\x3e\xbc\x5c\x08\x82\xca\x6b\x22\xb6\x1c\x2a\x01\x6d\x52\ \x07\x79\x4c\x86\xe0\xb2\xaa\xfb\x12\x25\x68\xac\x03\xac\xc3\x86\ \x91\x13\xc2\x38\x16\x9d\x1d\x75\x77\x6f\x39\x71\xdf\xd6\x3d\xdf\ \xfd\xce\x83\x74\x2c\xc6\x81\x71\x3f\x05\x58\x0a\x05\x40\x50\x97\ \xcb\x25\xf6\xa5\xb9\x6c\x96\x86\x87\x16\x09\x63\x73\x4b\xaf\x65\ \x29\xcb\x72\x95\xd6\xd0\x02\x37\x38\x0a\xd1\x12\x5f\xd4\x27\x75\ \x3c\x05\x45\xd1\x1a\x41\x6a\x04\xe2\xe4\xe7\xed\x5a\x08\xbf\xdd\ \xbd\x2b\xa3\x11\x14\x9e\x36\x8c\x0b\x87\xf4\xd4\x90\x25\x15\x2a\ \xae\xd7\x68\x2c\x90\x93\x7b\x5b\xd5\x09\x98\x9a\x00\x73\xa5\x4c\ \xa6\x66\x6d\x7d\x6c\x34\x06\x25\xa1\xc6\xc8\x01\x4b\x89\x04\x4b\ \x26\xd0\xd0\x10\x64\x32\x42\x6b\xb7\x19\xf0\xdc\xae\xa5\xed\x4c\ \x18\xf2\x01\x01\xb6\x34\x1a\x01\x7a\x9a\x6c\x11\x32\x63\x2e\x30\ \x54\x7f\xb6\x48\x27\xe2\x4a\x42\x76\x01\x0d\xf4\xe2\x6a\x3e\xbe\ \x67\xdb\x60\x14\x37\xe4\x72\x4a\x6b\x52\x4f\x14\x1a\x2f\xb8\xc8\ \x64\xd4\xa5\x4b\xa3\xbb\x7e\xd0\xb5\x65\x73\xcb\xf0\x48\xac\x14\ \x75\x97\x89\x18\x68\x52\x6e\x87\x82\xa4\xe1\xc6\xdc\x9e\x99\xa9\ \x8a\xf1\x69\x6f\x84\x99\x16\xa6\xbc\x72\x65\xaf\x42\x3b\xb7\x62\ \x21\x32\x62\xee\xab\x07\x8e\x81\xb9\xa3\x4f\xb3\x97\x4b\xde\x55\ \x65\x5b\x5b\xeb\x5d\x77\xdd\x3f\x34\xf4\x56\xa0\xda\xb5\x8e\x11\ \x81\x3b\x13\x31\x28\xe7\x74\xac\xa9\x22\x2c\x57\xb4\x3c\x60\x22\ \x4e\xb8\xaf\xc4\xf4\x69\x6f\x84\x25\x3a\x35\xcc\x54\x04\x42\x01\ \x50\xa5\x64\x67\x67\xdb\x82\xd6\xf9\x5a\xeb\xf4\xa5\x2d\x39\xaa\ \x86\x86\x3a\x80\x52\xee\x6e\xad\xd5\x68\x19\x28\x13\x64\x94\xb7\ \xe9\x97\xbc\x7b\x43\xbc\x74\xc6\xd6\x1a\xc6\x31\xd0\x1e\xe3\x31\ \xad\x22\x32\x33\x2d\xc3\xb3\xb1\x43\x5a\x73\x5e\x4f\xcc\xf0\x20\ \x6f\x4c\xcf\x24\x42\x5b\x85\x87\x59\xce\x58\x52\x52\x14\x0a\x66\ \xe4\x5a\x14\xdb\xfb\x72\xc1\x57\xa5\x64\x79\x65\xb4\xb9\xac\x9a\ \x3f\x57\x29\x85\xb6\xe7\x74\xb5\xc6\x76\x08\x88\xd8\x97\x92\xaf\ \x40\xda\x54\xea\x33\x30\xe2\x70\x72\x95\xc0\xbe\x94\xb1\x14\x6b\ \xd1\x32\x2f\xf8\xf3\xcb\x1f\xed\x78\xe2\x42\x77\x57\x7d\x18\xf1\ \x0d\xa3\xa1\x13\x17\xc2\x53\x4a\x16\x43\x6d\x02\x7d\xe0\x37\xcb\ \xdb\x5a\x33\xc5\x58\x48\xd6\x52\x6a\x55\xd3\x1b\x61\xc0\x83\x19\ \xed\xdc\x16\xab\xf6\x53\xd2\x75\x17\xb8\x6f\x0e\x94\x1a\x1e\x8b\ \x6e\xed\x6e\x7f\xf1\xff\xfa\xae\x8e\x16\x54\x59\x8e\xd2\xbf\x73\ \xcc\x66\xd4\x95\x91\xc2\x57\x76\x1e\x29\x46\xd4\x4b\xd3\xea\x42\ \x15\x4f\x5d\x1b\x84\xc4\xa3\xcd\xe4\x69\x88\xae\x32\x71\x5f\x1e\ \x4a\x02\xc3\xd9\x40\x2d\x68\xca\xe9\x18\x00\xb3\x22\xf8\x08\xa3\ \xd0\x28\xbf\xbb\xe1\xd1\x6a\xea\x4b\x05\xab\x3b\xcb\x10\x93\xdf\ \x52\x29\xe5\xbf\x61\x42\x0a\xe3\x92\x86\x2a\x8d\x3a\xaf\x31\xdc\ \x99\x62\x51\x87\x61\xc9\x16\xbd\x7b\x70\x6b\x84\x5a\x44\x21\x5a\ \xb1\x4d\x2c\x43\x9a\x48\x4c\xeb\x4b\xab\xf7\x34\xf4\xd3\xbe\x1d\ \x42\x8e\x25\xb2\x2b\x5c\x7b\x5d\xe2\x93\xdf\x30\x81\x4a\xc5\x5b\ \x22\xa3\x70\xf3\xa0\xca\x66\xac\x31\x97\x48\xfb\x24\xa7\x63\xab\ \x84\x67\xc6\x2e\x6e\x69\x4d\x1b\x8c\x99\x3d\x4d\x75\x32\x44\x4c\ \x0a\x26\x20\x08\xb8\xc2\x12\x8b\xa2\xaa\xc4\xed\xb1\x83\xa5\x8d\ \xe0\xcd\xa0\x85\x88\xac\x29\x94\x60\xb9\x4a\x60\x5f\xca\xc4\x28\ \xc0\x56\x40\xd7\x36\x1e\xfa\x5a\x4a\x6b\x4c\x05\x0e\x09\x36\x1e\ \xb2\xf0\xb1\x8a\xb7\x5a\x86\xf5\xda\xd2\x28\xdb\x18\x33\x72\x04\ \x4f\xea\x8d\xdd\xd0\xdc\x62\xe9\x4d\x8d\x3b\x02\xd6\xd2\x9a\x7a\ \x1a\x83\x5a\x8a\xca\x66\xed\x50\x4b\xa1\xa5\x92\x22\xc0\xe3\x06\ \x3c\xa7\xfa\x33\x6d\xa0\xa0\xa3\xa7\xd5\x4e\xeb\xd0\xc3\x8a\xc8\ \x88\x18\x28\xff\x04\xe9\xfc\x0d\x56\x09\x56\x72\x72\xa6\x96\x99\ \x5a\x47\x7c\xde\x97\x92\xb9\x6b\x40\x95\x1d\x1e\x1e\xbd\x77\xf3\ \x97\x1b\xea\x73\x25\x23\x24\x06\x65\x62\xe7\x56\x57\x97\x3d\x72\ \xe4\xf8\x7d\xb7\x37\xeb\x18\x59\xf7\x37\x96\x84\x24\x96\x90\xd9\ \x10\x11\x03\xef\x48\x35\x3e\x6d\x7b\xac\xa4\x22\xc9\xb6\xa6\x76\ \x58\x5a\x4e\x6d\xdc\xbd\x76\x1c\xea\xe6\xc6\xe0\x47\xdf\x5f\x98\ \xcf\x9f\x84\xde\xc8\x07\xc3\xf7\xcf\x16\x5b\xfb\x1b\x57\xdf\x3c\ \x6f\x6c\x2c\x0c\xd0\x3d\x96\x92\x76\x3b\x24\x24\x74\x52\x86\x04\ \x89\xa2\x0a\x35\xd3\xb6\x19\xe1\xd7\xc8\xcc\x7f\xc0\x0e\xcb\x19\ \x87\x96\xb1\x36\x99\x40\xde\xbb\xa1\x25\x93\x69\xb3\xf7\x16\xc2\ \x1d\x62\xfd\xa9\x8c\x8e\xc7\x27\xa2\x30\x74\x97\xb9\x76\x1c\x22\ \x50\x86\x50\x67\x6f\xb8\x9c\x03\xf7\xed\x90\xbb\xb8\x62\xcd\x23\ \x3e\x64\xe5\xd4\x0c\x20\x91\x43\x18\x19\xc1\x4d\x31\xdf\x79\xb3\ \x7a\x90\xf4\x09\x86\x0a\xa8\xbd\x37\x9a\x26\x9d\x97\x15\xbe\x94\ \x9a\x3b\x3d\x33\x15\x5a\x8a\x8d\x2c\x33\xb5\x45\x48\x26\xa1\x6d\ \x8c\x25\x99\x91\xc2\x2a\x23\x13\xea\xa5\x68\xdf\xcc\xb7\x39\x92\ \x2c\x90\xf0\x3b\x2d\x25\x8e\x53\x9e\x06\xab\x2d\xf7\x58\x05\xb4\ \xe6\xd9\xb9\xbb\xa8\x2a\x56\x29\x63\x13\xc7\xee\xe4\xf7\x1e\x5e\ \xac\xa0\x37\x4c\x10\x8d\xfb\x60\x57\x10\x58\x2b\xa8\xc2\x8d\xcd\ \xfd\x88\xe4\x0a\x61\x62\x9b\x35\x12\x91\x10\x8e\x46\x02\x27\x4f\ \x27\xed\x34\x35\x5d\xe7\xf3\x5f\x9d\x0c\x49\x3c\x5a\x39\x19\xba\ \xe5\xe3\x53\xaa\xb6\xe2\x12\xca\xba\x04\x29\xfc\x4b\x7a\x4a\x3a\ \x29\x43\x63\x85\xe3\x69\xa9\x30\x8a\x8f\xfc\x34\xa3\x49\xcb\x50\ \x91\x4d\xd4\xd2\x0e\x79\x0e\x3a\x75\x73\x85\x72\x31\xc0\xa2\x42\ \x64\xd8\x0c\x11\x26\xff\xfc\xc9\x08\xc9\x45\x63\x66\x2d\x4d\xb2\ \x1d\x13\xa4\x34\xc2\x1a\xde\x62\x60\xc1\x53\x2f\x91\xba\xc6\xd6\ \xde\x75\x20\xdd\xa9\xb9\x4d\x32\x89\x90\x6a\x0c\xef\x6f\x20\xe3\ \x8f\xb9\x97\x1c\xeb\x88\xa0\x79\x11\x09\x9b\x48\xe2\xec\x8d\x6b\ \x57\x9b\x9d\x37\x9e\xc6\x92\xe7\x97\x84\xfe\xd2\x4b\xbe\x42\x32\ \x9a\x45\x22\xd3\xba\x40\x43\x71\xb4\xc0\xec\x3a\xf0\xb5\x29\xed\ \xef\xfd\xc3\x57\xfa\x20\x66\x6a\x76\xc6\xd7\x46\x44\xa1\x8c\x22\ \x69\x94\x95\x2c\x0f\xa4\x3c\xb4\x08\xd6\x5e\xe9\x12\x1e\xbe\xf4\ \xb6\x37\xc0\xb1\x16\x61\x28\xf1\x7c\x60\xe2\x50\xc7\x91\x36\x56\ \x1a\x24\x73\x12\xb9\x32\x02\xaa\x80\x80\x79\x29\xd3\x48\xd0\x1d\ \x98\xd1\x35\x3d\xe3\xcb\xfa\xba\x4c\xcb\xbc\x5c\x18\xe9\x40\x09\ \x66\xc5\x9d\xac\xf8\xa2\x45\xb8\xc3\x1d\xdf\x4a\x24\x97\x56\x20\ \xc2\xd6\x79\xd9\xa6\xc6\x6c\x2e\x23\x5a\x1b\x1a\x63\x5d\x8a\x97\ \x76\xe5\xf8\x72\x3b\x1b\xa8\x30\x52\xd9\x6c\x30\x7f\x6e\x0e\x66\ \x2f\x84\x68\x88\xd8\x1d\x8a\xc0\x12\xb4\xac\x0d\xc2\x4c\x46\x9e\ \x39\x1f\x3e\xf7\xd2\xe0\xf0\x68\x51\x91\x1f\xf5\xa5\xe8\x0a\xce\ \x7b\x3b\x4b\x9a\xe2\xaf\x6b\xda\x88\xb9\x8d\xc1\xdb\x27\x47\x2f\ \x8d\xc8\x7d\xc7\xff\x71\xad\x18\x29\xcf\x76\xdc\xe5\x7f\xa0\xe4\ \xb5\x42\x74\x6d\xbc\xf0\xf2\x5f\x2e\xb4\xcc\x09\x22\xdc\x85\x53\ \xf7\xf9\xcd\x39\x60\x09\x18\x9b\xbd\xa7\xf1\x6f\x96\x56\x2c\x5d\ \xd4\xd4\x75\xdb\xae\x57\xe7\xba\x0b\x35\xd6\x53\xfe\x4a\xcb\x46\ \x6d\xff\x9b\xa8\xd4\xc7\x18\x89\xbf\xce\x06\xb2\xeb\x56\xb1\xb3\ \x10\x5b\x64\x2e\xb0\x98\xf2\x61\x37\x36\x32\x2b\x6f\x5a\xbd\xfe\ \xc5\x77\x8c\xf7\xa9\x54\x99\xb1\xa6\xae\x2e\x60\x8c\xe8\x29\x3c\ \xcd\xcc\xdf\x97\x32\x91\xfe\x10\x94\x88\xff\xc2\xf7\xa5\xa9\xf7\ \x4c\x54\xf3\x7d\x69\x55\xdf\x26\x52\x1f\xff\x86\x82\xe8\x74\x71\ \xc6\x3f\xe5\xa6\xbb\xa7\x68\x26\x2a\xe8\x74\x95\xff\xed\xf0\x54\ \xd3\xfd\xef\x7f\xc9\xfe\x6f\xe7\xf8\x01\xc3\x58\x74\x3a\x3f\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x09\x85\x57\x87\ \x00\x63\ \x00\x61\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x05\x87\x5a\x67\ \x00\x62\ \x00\x6f\x00\x61\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0c\x98\x89\x87\ \x00\x68\ \x00\x6f\x00\x75\x00\x73\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x97\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x16\x6f\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/draggableicons/draggableicons_rc3.py0000644000076500000240000011317012536324427027113 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:34:14 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x0b\x93\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x4b\x00\x00\x00\x36\x08\x02\x00\x00\x00\x00\x90\xf3\xa2\ \x00\x00\x0b\x5a\x49\x44\x41\x54\x78\x5e\xdc\x93\x41\x0a\x45\x21\ \x0c\xc4\x5a\x79\xf7\xbf\xb1\xfa\x8b\x42\x36\x01\xff\xbe\x59\x0c\ \x71\x68\xbb\x33\xd6\x61\xef\x5d\x89\x83\x9f\xe4\x15\x27\xf8\xc2\ \x02\x95\x9e\x44\x1e\xbd\x77\x81\xb1\xb1\xbb\x13\xf3\x50\x56\x89\ \x83\x9f\xe4\x15\x27\xf8\xc2\x04\x95\x9e\x44\x1e\xbd\x77\x81\xb1\ \x2f\x33\xe3\x80\x80\xcb\x7a\x92\x88\xd3\x2b\x76\x95\x88\x4b\xf8\ \xdf\xfb\xf8\x88\xee\x8c\xe8\x4e\xff\x7f\x18\xab\x3b\x31\x0f\x65\ \x95\x38\xf8\x49\x5e\x71\x82\x2f\x4c\x50\xe9\x49\xe4\xd1\x7b\x17\ \x18\x1b\xd1\x9d\x2f\x33\x7f\xbc\x97\x4d\x4c\x54\x57\x14\xc7\xcb\ \xbc\xc7\x0c\xcc\x0c\x98\xa0\xc5\x05\x51\xab\x26\x2c\x74\xd1\xc6\ \x9a\x26\x04\x01\x29\x30\x6a\x62\x63\xd2\xc4\xc6\x8f\x85\x8d\x4d\ \x9b\x18\x6b\x93\x6e\xaa\x4d\x64\xc7\x82\xb4\x4d\xa3\xb1\x5d\xb8\ \xb1\x8b\xee\x9c\xc6\xfa\x41\x04\x09\x50\x48\x4d\x20\x68\xc4\x26\ \x8d\x90\xb6\x09\x51\x44\x10\x82\x30\xdf\x9f\x40\x7f\x7d\x27\x9e\ \x79\xcc\x20\x85\xa0\xde\xdc\xbc\x39\xf7\xdc\x73\xef\xf9\x9f\x8f\ \x7b\xee\x9d\xdc\x4a\xbd\xfc\x0b\xc3\xde\xd2\xe9\x34\xa9\x9f\x25\ \x09\x47\x85\x73\x67\x95\xc9\x30\x4b\x32\x3f\x3f\x5f\x25\x97\x80\ \x67\x87\xf4\x4a\x2a\x4d\xe6\xe9\xf4\x0a\x9a\x3d\x33\x5f\xf7\x8d\ \x6f\xf7\x3d\x3a\x0c\xc3\x48\x26\x93\x8d\x8d\x8d\x93\x93\x93\x12\ \x8d\x45\x37\x04\xa8\xd7\xe3\xc9\x73\x3a\x23\xa9\x14\xb3\x2e\xc3\ \xc8\x9f\x9b\x0b\x86\x42\xd0\xf6\x18\x42\xac\x5b\xb7\xae\xa9\xa9\ \x89\x30\x02\xd1\xe1\x70\x68\x2e\xac\xf8\xc6\xa7\xa1\x75\x35\x59\ \xce\x72\x10\x80\xa3\xba\xba\x7a\x62\x62\xe2\xd0\xa1\x43\x91\x48\ \x04\x8e\x18\x29\x5f\x4d\x16\xaf\xd7\xfb\xcb\xb5\x6b\x89\x07\x0f\ \x0e\x6c\xdd\x4a\x5c\xee\x3c\x7e\xfc\x57\x71\xf1\x67\xc7\x8f\xb3\ \x44\x6d\x03\x0f\x62\x7e\xbf\xbf\xac\xac\xac\xbb\xbb\xdb\x34\x4d\ \x38\x78\x90\xa9\xd7\x77\x1f\x6a\xda\x70\xf0\x20\x52\xa9\x54\x45\ \x45\xc5\xf6\xed\xdb\x01\xba\x74\xca\x41\x7c\x79\xf6\xec\xa7\x9b\ \x37\xcf\x9d\x3a\x95\x3c\x79\xf2\xdc\xce\x9d\x7b\x0e\x1c\x80\x99\ \x48\x24\xd8\x84\x2c\x80\x88\xc7\xe3\x6c\x3b\x36\x36\x56\x5e\x5e\ \xce\xb6\xf0\x59\x08\x47\x76\x78\x4d\x59\xaa\xc9\xc9\x57\xa2\x17\ \x0c\x06\xfb\xfa\xfa\xf0\xf4\xb3\x67\xcf\x60\xaa\x02\x11\x16\x1a\ \xac\xa5\xa5\xa5\xa1\x40\x20\x92\x48\x8c\x85\x42\xf8\x66\x26\x1e\ \x8f\xe2\x95\x50\x68\x72\x6a\x8a\xb5\xba\x04\x58\x6e\xb7\xbb\xab\ \xab\xab\xb6\xb6\xb6\xa6\xa6\xa6\xa7\xa7\x47\xd2\x44\x64\x56\x9a\ \xa5\xe6\x4a\x63\x8e\x0e\x35\x0f\x1a\xf3\x02\x81\x40\x7f\x7f\x3f\ \xea\x71\x3f\x27\x47\x81\xea\x57\x89\x7c\xd3\x94\xb3\x64\x5a\x47\ \xcb\xb0\x68\xc3\x34\x0d\xab\xa9\x98\x6c\xe5\x72\xb9\x3a\x3b\x3b\ \xeb\xea\xea\xec\x46\xf2\x15\x00\xaf\xea\x5d\x8a\x7a\x39\xba\x62\ \x5e\x55\x55\x95\x9a\x47\x82\xd9\x7d\x6c\x37\x32\x63\x27\x5d\xc1\ \xc1\xa4\x33\xb4\x49\xaa\x30\x96\x60\x24\xdf\x8e\x8e\x0e\x8e\xf7\ \xee\xdd\xbb\x45\xa9\xaa\x5e\x81\x85\x4b\x1c\x9b\xd9\x9c\x26\xa7\ \x4e\x62\x58\x59\x59\x49\x4e\xf6\xf6\xf6\x32\x8c\xc5\x62\x7c\xe5\ \x58\xaa\x64\xee\x72\x79\x25\x62\xc1\xac\xd5\xc5\x66\x95\xcf\x5a\ \x02\xb8\x68\x34\xca\xb7\xbd\xbd\x9d\x63\x49\xb2\x48\xe2\x00\xe0\ \x45\xd8\x16\x35\x24\xfb\xc6\xd7\x28\xe1\xbf\x17\x16\xa7\x74\x7a\ \xef\x9e\x3d\x88\x0e\x0d\x0d\x31\xa4\x0e\xb8\x0b\x0b\x59\x88\x06\ \x98\x59\x11\x54\x4d\x20\x33\x48\x62\x97\x2b\xdf\xe1\x58\xe3\x74\ \xe2\x0c\xb7\x61\x38\x4d\xd3\x53\x54\x44\xfc\xc9\x55\x64\x54\x1a\ \xfb\x01\x24\xa5\xa2\xc0\xeb\xed\xeb\xed\xf5\xf9\x7c\xfb\xf6\xee\ \xbd\xd5\xd6\xc6\x1e\x4b\x17\xf6\xac\xbb\xca\xcc\x4a\x2a\xbd\xdf\ \xc2\xe1\xf0\x1f\x83\x83\x9a\x37\xac\x90\xc8\x42\x9c\x39\x7d\xba\ \xff\xce\x9d\x96\x96\x96\x9e\xde\xde\x78\x2c\x26\xe0\x68\x2e\x87\ \x23\x61\x39\x33\xab\xd8\xc8\x0f\x7e\x59\x5b\x52\xf2\x68\x64\x84\ \x25\x1d\x23\x23\xd8\xf0\xe7\xcc\xcc\x63\xd3\xec\xe8\xe9\x99\x09\ \x04\x40\xa6\xd2\x7c\x0a\x0c\x83\x92\x8a\xcb\x24\x35\x0a\x0a\x0a\ \xbe\x6a\x6c\x3c\x7a\xf4\x68\xb5\xcf\xd7\xdc\xdc\x8c\xa0\x03\x03\ \xe8\x56\x83\x86\xf3\xf6\xb6\x6d\x5c\x33\x02\xde\x5e\xe7\xf4\x3e\ \xcc\x98\xc7\x15\xf4\xf4\xe9\xd3\xaa\xf7\xdf\x9f\x7b\xf8\x90\x22\ \x00\x62\xfb\xb9\x96\x68\x94\x94\x94\x44\x63\xb1\x74\x2a\xa5\xa1\ \x46\xe6\x9f\x70\x78\xa3\xdb\x5d\xe4\x74\x8a\x91\xd9\x67\xd8\x82\ \xf2\x24\x1a\x05\x59\x19\x50\xb8\xe5\x2c\xb3\x30\x40\xb0\xea\x3e\ \x18\x3f\x14\x0c\xbe\xe5\xf1\x10\x6d\x41\x85\x30\x55\x0a\x3b\xa7\ \xa7\xa7\x89\x21\x1c\xe0\xcb\x1a\x08\xf6\x49\x53\x84\x36\x6d\xfa\ \xbd\xab\x6b\xfd\xfa\xf5\x6c\x88\x09\x6a\xa1\xa9\x08\xd4\xbc\xc9\ \x89\x89\x9d\x55\x55\x0d\xa9\x54\xd3\xc1\x83\xd1\x64\x52\xde\x11\ \x12\x46\x01\x0a\x30\x02\x02\x9b\xa6\x5e\x07\x4d\x7d\x4b\xcb\x4f\ \xb5\xb5\x95\x1b\x36\x70\xaf\x39\x10\xb3\xe4\xe7\x20\x2c\x99\xe4\ \xfc\x3c\xf9\xf6\x79\x7b\x3b\xa3\x1f\x1a\x1a\xe2\x91\x08\x4b\xa0\ \xe5\x2d\xa3\xa5\x86\x32\x3b\x9d\x48\xbc\xeb\xf7\xff\x5c\x5f\xbf\ \xd1\xeb\x4d\x00\x5d\xf4\x5a\x0d\x8f\x13\x58\x81\x01\x57\x13\xc4\ \xed\x74\x9e\xed\xee\x06\xf6\xbd\xdb\xb7\xdf\x2c\x2d\x55\x23\x33\ \xb5\x54\xce\x9e\x98\xb7\x63\xd7\x2e\x5f\x2a\xf5\x6d\x7d\x7d\x20\ \x16\x4b\xcd\xce\x72\xae\x93\xb3\xb3\x49\xeb\x2b\x3d\x9e\x4a\x71\ \x01\x0b\xdf\xde\xd1\x05\x93\xa0\xc8\x30\x41\x5f\x48\x30\x45\x34\ \xe8\xf3\xba\x4a\xa6\x72\x3a\xd0\x52\x0b\x39\xa8\x43\x29\xaa\xed\ \x4c\x01\xc6\x14\x50\x01\x0c\x6c\xc0\x63\x02\x86\x48\x59\xca\xd4\ \x52\xa9\xc2\xa3\xa3\xa3\xef\x55\x57\x13\xbd\x6f\xea\xea\xc6\x83\ \x41\x09\x9a\x16\x8f\xe5\xdc\x25\x22\xb6\xfa\xb6\xfc\xfb\x40\x35\ \x02\x18\xd8\x80\xc7\x04\x0c\x91\x98\x01\xc9\x61\xaf\x42\x9f\x9c\ \x38\xf1\xce\xd4\xd4\xf7\x3e\xdf\x78\x28\x64\x30\xc6\xc2\x97\xdb\ \x74\xc3\xe5\xed\xbc\x7c\xf5\xd8\x03\x5e\x60\x03\x1e\x13\x30\x84\ \xa1\x94\x18\x07\x73\xfa\xb4\x0f\x85\xc3\x0d\x5b\xb6\x70\xf6\x32\ \x7f\xd8\x20\xa4\x29\x91\xdb\x04\x8a\x90\x8b\x4a\xe6\x4c\x89\xfc\ \xd2\x62\x10\x74\x15\x7c\x21\x8c\x85\xff\x2d\x01\x8f\x09\x18\x22\ \x1c\x9a\x69\x7f\x7c\x50\x67\x23\xc9\xa4\xae\x11\xe7\x28\x61\xcf\ \x40\x28\x6d\x9a\xcc\x3a\x25\x5d\x38\x10\xb9\x99\x27\xb3\xca\x50\ \xc9\x0c\xad\x1c\x05\xa0\xba\x54\x91\x8d\xa3\x46\x02\x05\x13\x8c\ \xe2\x62\x2d\x4e\x99\x18\x6a\x09\x56\x17\xdb\x09\xe5\x33\x56\x85\ \x99\xa1\xae\xa2\x8b\xf0\xa2\xbe\xd7\x45\xf6\x59\x5d\xa2\xda\x95\ \xaf\x3b\xdb\xdc\xa4\x30\x68\x4a\xab\x98\xb0\xe6\x6d\xda\x6d\x0f\ \x17\x55\x90\xd3\xec\xfe\xa6\x12\xce\xda\xbc\xc8\xd3\x24\xeb\x85\ \xbd\xfa\x96\xf5\x5e\x47\x85\xee\x8b\x6a\x00\x2c\x55\xd8\xc4\xb6\ \x65\xbd\xbc\x17\x3e\xc1\x58\x25\x3a\xd7\xb8\x5c\xa5\x1e\x4f\x21\ \xcf\x2f\xd3\xf4\x3a\x9d\xd0\xbc\x3f\x00\xa1\x47\xf7\xa5\x98\x27\ \x20\xd9\xb6\xc0\x34\x51\x81\x22\xd4\xa1\x14\x1a\x00\xe8\x90\xe7\ \x8e\x28\x53\x9c\xff\xff\xf2\x66\x3c\xa7\xce\x93\x4e\x93\xc7\x80\ \x95\xd0\x45\x2e\xd7\xad\xe1\xe1\x8f\xaf\x5f\x6f\xf0\xfb\xf7\x5d\ \xbd\xea\xbb\x7c\xf9\xeb\xce\xce\x47\xe1\xf0\x5a\xde\xa5\x22\x2c\ \xab\x56\xd1\x44\xb5\x50\x6c\xfb\x28\x18\x3c\xd3\xd9\x89\x22\xd4\ \xa1\xf4\xd8\x8d\x1b\x6d\xc3\xc3\xc0\x30\x2d\x48\xea\x77\xcd\x1f\ \x79\x1e\x0b\x91\x7d\x0e\xc5\x62\x7c\x26\x49\x60\x3f\x84\xac\xe1\ \xfd\x01\xff\x58\x6b\xeb\x17\xf7\xef\x6f\x38\x72\xa4\xd9\xef\xbf\ \xd8\xde\x7e\xe6\xd2\xa5\xb1\x1d\x3b\xf6\xb7\xb6\x9e\x1f\x18\xf0\ \xba\x5c\xe4\x03\xf1\x94\xab\x55\xd3\x5e\x93\x7f\x91\xe3\xad\x53\ \xb6\xb3\x44\x12\xba\x4d\x93\xbf\x8e\x1e\xa7\xf3\xdc\xbd\x7b\x1f\ \xb4\xb5\xa1\x02\x45\xa8\x43\x29\xaa\x01\x00\x0c\xc0\xe4\x5b\xc0\ \x14\xba\xec\x00\x1f\x13\x20\x54\x57\x26\x86\x0c\x52\xe9\xf4\xd0\ \xd4\x54\xb1\xf5\xb0\x14\x8e\xb8\xc4\x61\x95\xd9\x8f\x5a\x5a\x66\ \xca\xcb\xff\x1e\x1c\xbc\x78\xfe\xfc\x87\xfb\xf7\xd7\x54\x54\x1c\ \x3b\x7c\xf8\xe6\x95\x2b\xbf\xde\xbc\xf9\xe3\xf8\xf8\x77\x77\xef\ \x3a\x0c\x63\x68\x66\xc6\xe0\x7f\x83\x18\x29\xa5\x4b\x33\x4f\x2b\ \x21\x5d\x13\x4c\xa7\x04\x00\x69\x59\x58\xf8\xdb\xe8\x68\x28\x9d\ \xbe\x30\x30\x70\xe1\xc9\x13\x36\x47\x05\x8a\x50\x87\x52\x54\x03\ \x00\x18\x80\x01\x52\x9e\x04\x5c\xbc\x63\x1d\x51\xc0\x63\x02\x86\ \xe8\xeb\xdf\xf1\x6f\xbb\x66\x13\x12\xd7\x15\xc5\xf1\x18\x26\xc9\ \x8c\x89\xbe\x29\x6f\x1e\x31\x91\x38\x05\x29\x82\xbb\x30\xa6\x10\ \x78\x69\xc1\xa4\x1f\x09\x42\x90\xe8\xd4\xac\xaa\xce\x60\x18\x64\ \x32\x01\x75\x93\xac\x8d\x55\x4a\x40\x5c\x64\x13\x82\x18\xad\x2b\ \x37\xda\x45\xc7\x96\xa4\x13\x42\xc4\x44\x4d\xa8\x50\x17\x92\x21\ \x42\x16\x89\x88\x69\x0d\xa9\x49\x27\xed\xf4\xc7\x1c\x72\x73\x79\ \x8f\xea\x50\x5d\x4d\x7a\xb8\x8b\xf3\xee\x3d\xe7\x7f\xfe\xe7\xdd\ \x7b\xdf\x83\x73\x2f\x9a\x08\xef\xbe\xbf\xaf\xef\xc6\xea\xea\xd5\ \xb9\xb9\x83\xa5\xa5\x19\x49\x32\xb7\x6e\x0d\xaf\xf7\x9b\xa9\xa9\ \xb5\x8a\x8a\xbb\x93\x93\x07\xcb\xcb\x29\xa8\x48\x81\x84\xc2\x04\ \x95\x95\xcf\x4e\x9c\x98\x1c\x1f\xef\x5f\x58\xf8\xa8\xa4\xe4\x5c\ \x2a\x35\xf9\xe8\x91\x51\x5c\x8c\xbb\x4c\x8a\xfe\xf3\xa0\xb9\x75\ \xc9\x5c\xd2\x2b\x2d\x2e\xfe\x31\x9d\x3e\x93\x4c\xd6\x04\x02\xdf\ \x3d\x7e\xfc\xc3\xf8\x38\xe0\x84\xa3\x4e\x23\x11\xd1\x21\x00\x0d\ \xc8\xf4\x4e\x4d\x7d\xe0\xf3\x41\x8f\x54\xc4\x1d\xda\x90\x27\x05\ \x12\x91\xa5\x84\xbc\x3b\xe5\x96\x6a\xcf\xfd\xd9\x59\x6f\x49\x49\ \x5f\x4d\xcd\x4a\x24\xf2\x4b\x63\xe3\x7c\x38\xfc\x6b\x53\xd3\xc3\ \x70\x78\xef\xce\x9d\xb7\x52\x29\xa9\x1a\x39\x6a\xec\x54\x1c\xe8\ \xff\x3a\x16\x3b\x69\x9a\x97\x8f\x1e\x85\x70\xb2\xae\x2e\x1b\x8f\ \xff\xd6\xda\xfa\x22\x1a\x5d\x8b\x46\x5f\xd0\x22\x91\xd5\xd6\xd6\ \x4c\x3c\x7e\xae\xba\x9a\x86\xc2\x23\xfd\x32\x84\x82\x31\x2e\x38\ \xe2\x0e\xc8\x29\xd3\x6c\x8e\xc5\x80\x05\x9c\x10\xba\x40\x80\xfe\ \x9f\x53\xa9\x3d\x45\x45\xf7\x1b\x1a\x16\x9a\x9a\x20\x09\x55\x08\ \x43\x1b\xf2\xa4\xa0\xd2\xd1\xce\x2d\x72\xc2\xe4\xd0\x3b\xf3\x36\ \xc9\xb5\xb6\xb6\x27\xcd\xcd\xeb\xb1\xd8\xe0\xb1\x63\xe5\xc1\x20\ \x3e\xee\x33\x09\xc1\x42\x79\x30\x3f\x6f\x7a\xbd\x2f\xdb\xda\xae\ \xd8\x36\x73\x7e\xab\xbe\x3e\xdb\xd1\x91\x4d\x24\xb2\x17\x2e\xd0\ \x50\xb2\xe7\xcf\x67\x2f\x5e\xec\x38\x7c\x98\x86\xc2\xa3\x1a\xa2\ \x61\x8c\x0b\x8e\xb8\x03\x02\x14\x80\xc0\x0a\xb8\xfb\xe4\x83\x81\ \x03\xc1\xe0\x75\xdb\x86\x1e\x24\xa1\x2a\xe9\x41\x1e\x4a\x92\x88\ \xd8\xef\xd0\x9d\x55\x92\xf7\x66\x66\x0c\xc3\xb0\x0d\xe3\x13\xbf\ \xff\x73\xcb\x0a\x7a\x3c\x8d\x67\xcf\x4a\x09\x43\xd9\x3b\x1c\x9f\ \x2d\x2f\x9b\x86\xf1\xf1\xbe\x7d\x75\x96\x25\xfb\xeb\x94\x65\x7d\ \x19\x08\xd0\x4e\xd2\x4c\xf3\x0b\xd3\xac\xdb\xbf\x9f\x31\x1a\x0a\ \x8f\xf4\xd3\xc4\x06\x63\xf1\xc2\x1d\x10\xa0\x00\x74\x9f\xcc\x20\ \x8a\x06\x94\x3e\xf4\x78\xa0\x07\x49\xdb\xef\x87\x30\xb4\xf5\xf4\ \x44\x3c\x7a\x7d\x1a\x9d\x0a\x2c\x73\x72\x24\x14\x9a\x9e\x9e\xfe\ \xe9\xce\x1d\xf9\x55\xdc\xbe\x79\x73\xf5\xe9\x53\xdd\x4c\x57\x54\ \x69\xc3\xe3\xf3\x35\x5e\xba\xb4\xdb\xe7\x6b\xd8\xb5\x8b\xde\xdf\ \x33\x19\xf7\xb9\xc5\xe9\xdc\x87\xee\x0f\xbe\x04\x5a\xa7\xec\xd8\ \xaf\xa8\xd3\xe5\xbc\xfe\x5c\x5f\xff\xb6\xbb\x1b\xc0\x7f\xfb\x55\ \x8a\xef\xf3\xe5\xe5\x23\xe1\xf0\xa7\xc7\x8f\x4b\x0a\xd7\x6c\xbb\ \xaa\xaa\x0a\xf2\x52\xef\x53\xf6\xef\xf6\xa1\x63\xe1\x65\x35\x99\ \x9b\x9d\xb5\x2c\xcb\xb1\x4a\x55\x1d\x96\x89\x65\x88\x7a\x51\xc5\ \xa1\x43\xd9\x6d\x12\xa0\x00\x04\x16\x70\x9d\xa1\x22\xc0\x10\x94\ \x20\xa6\x5c\x14\x6d\x65\xef\xdc\x87\xee\x3d\xa6\xea\xd0\x94\xd2\ \xca\xca\xca\x06\x07\x07\x65\xeb\x4b\x62\xca\x4c\xbe\x34\x14\x36\ \x5b\x5a\x5a\x88\x41\x81\x0c\x2f\x04\x77\x44\x14\xa5\x8b\xb8\x3b\ \x95\x25\xee\x80\x00\x55\x5b\x5b\xbb\x41\x38\xc8\x40\x09\x62\xd0\ \x13\x04\x61\xee\x90\xbc\xce\x80\x89\x0a\xe2\xd0\xd0\x10\x93\xbe\ \xb8\xb8\x88\xae\xd8\x80\x2e\xe1\x47\x46\x46\x18\x4d\xa7\xd3\x52\ \x81\xff\xfb\xbf\x8a\xfa\x6e\x01\xc5\x7e\x19\x1e\x1e\x96\x95\xa2\ \xbf\x2f\x7a\x96\x96\x96\x08\x07\x25\x21\xb3\x31\xe6\x26\x77\xa2\ \x40\x57\x49\x76\x76\x76\x52\x6c\x4f\x26\x93\x8e\x85\xd1\xd3\xd3\ \x43\xbc\xd1\xd1\x51\x79\xdc\xca\x9d\x28\x51\x24\xdc\xd8\xd8\x18\ \xb0\x80\x3b\xb6\x0c\x04\xfc\x7e\x3f\x64\xc4\x72\xd3\x3b\x51\x79\ \x9d\xcc\xa8\x24\x7b\x7b\x7b\x39\xf7\x0a\x85\x42\xed\xed\xed\x5d\ \x5d\x5d\x91\x48\xa4\xb2\xb2\x32\x18\x0c\x72\x48\xa4\xe2\x6d\xf1\ \xa6\x82\x9e\x24\xb0\x80\x13\x82\x40\x84\x23\x28\xa1\x21\x40\xda\ \x62\xa3\xb6\xd5\x06\x27\x33\x9b\xcc\xa1\x3e\x2a\xef\x72\x65\x65\ \x65\x60\x60\x20\x9a\x93\x44\x22\x41\xd5\x54\x15\x7c\x05\x71\x2b\ \x73\xa8\xdb\xa8\xa9\x9b\x98\x98\x20\x90\x44\x24\x34\x04\x24\x9c\ \xca\x6d\xa3\x39\xcc\xff\xa6\x82\x58\xcb\x36\x70\x88\xda\x7b\xdb\ \x7b\x53\x41\xd6\xbc\x9b\xba\x9e\x5e\x3e\x37\x15\xf2\x3d\x3f\xd4\ \xd9\x90\x27\x22\x9f\x59\x48\xe8\x31\xb6\xeb\x3e\x8d\xfb\x93\xae\ \x44\x86\xf2\x3f\x3f\x7c\x0f\x6e\x9b\x14\x15\xb4\xfc\x7f\x73\xaf\ \x20\xa4\xf0\xef\x08\x17\xfe\x3e\x2c\xfc\xdb\x97\xff\x00\xfb\x6b\ \xc0\x37\xb1\x10\x1f\x8c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x0a\xd4\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x4b\x00\x00\x00\x36\x08\x02\x00\x00\x00\x00\x90\xf3\xa2\ \x00\x00\x0a\x9b\x49\x44\x41\x54\x68\xde\xdd\x9a\x0b\x50\x54\xd7\ \x19\xc7\x2f\x46\xf0\x81\x28\xf1\xad\xe5\xd1\x56\x66\xd2\xc4\x4e\ \x1b\x33\x11\x47\x10\x15\x48\x10\x34\x3e\x20\x4b\x80\x05\x44\x01\ \x83\x84\x19\x47\x1e\x19\xeb\xb4\x55\x5b\xd1\xb1\x06\xd4\xa9\x11\ \x14\xc4\x68\x66\x92\xce\xf4\x15\x9f\x4d\xad\x02\xc2\xb2\xbc\x41\ \x44\x44\x79\x28\xa2\x8e\xaf\xc6\x94\x71\x04\x15\x48\xed\x6f\xef\ \x89\x77\xb6\x0b\xc2\xee\x72\x61\x92\x7c\xf3\xcd\xce\x77\xce\xf9\ \xce\xf7\xfd\xff\xf7\x9c\x7b\xce\xbd\xe7\xae\xf4\x8d\x2c\xff\xfd\ \xe1\x8a\x34\x34\x69\x9e\x3d\x7b\xc6\xaf\x72\x29\x85\x21\x2a\x7f\ \x38\x0c\x61\xd5\xd5\xd5\xd5\xdd\xdd\xad\xfc\x76\x76\x76\x62\x18\ \x5f\x82\x41\x61\x38\x34\xb3\xf4\x45\x83\x26\x98\x77\xca\x22\xd8\ \xaa\x8e\x67\x28\x18\x82\x1e\x26\x47\x8e\x1c\x7e\x7d\xd6\x1b\xf3\ \xbc\x16\x78\x78\x7a\x79\x7a\xce\x0b\xd6\x6a\x0f\x7e\xf6\x59\x43\ \x73\x33\xa3\x29\x98\x2b\x6c\x19\x5e\x01\x49\x15\x60\x43\xc1\xf0\ \xe9\xd3\xa7\xa0\x4f\xf9\x70\xc3\x9b\x33\x9d\xb3\x76\xc4\x67\xa6\ \xae\xf1\x99\xff\xfa\x24\x49\xfa\x99\x8d\x8d\x83\xad\xed\x4f\x5e\ \x7b\x55\x13\x1d\x9d\xf5\xe9\xa7\xcd\xb0\xed\xee\x56\xc6\x59\x2d\ \x54\x43\x71\x1f\x8a\x31\x5c\xb7\x3e\x79\x65\x90\x57\x5b\xfd\x5f\ \xda\x6a\xff\x14\x1d\xb3\x4c\x23\xd9\xd5\x3b\xbb\x1d\x9d\x30\x7d\ \xcf\xa8\x71\xe1\xd2\x30\x27\x49\x92\x6c\x6c\xa6\x4e\x9d\xba\x7c\ \xf9\xf2\x9c\x9c\x9c\xf6\xf6\x76\xb5\xee\xcc\xc1\x1d\x43\x11\x59\ \x8c\xe1\xfa\xc4\x14\x8d\xff\xec\x6b\xfa\x9c\xe6\x82\x03\xa1\x61\ \x7e\xcb\xa4\x97\xf2\x26\xfe\x68\xe7\x08\x87\x18\x69\x98\xa7\x24\ \x39\x0d\x1f\xee\xe2\xec\xbc\x78\xf1\xe2\x2d\x5b\xb6\xe4\xe6\xe6\ \x3e\x79\xf2\x44\xb5\x59\x3a\x04\x9b\x84\x60\x18\xa4\x09\x09\x7d\ \x67\x6e\x4b\xc9\x27\xcd\xba\xec\xd8\x88\x80\x11\x92\xf4\x8a\xa3\ \xe3\x34\x17\x97\x45\x1a\xcd\xf6\xbd\x7b\x4b\xab\xab\x3b\x1e\x77\ \x0c\xc6\x8a\x2a\x0d\x2a\x3d\xb1\x72\x60\x6c\xda\xf4\x5b\xa6\x61\ \xfc\xca\x25\x4d\xba\xac\x46\x5d\xd6\x07\x51\x4b\x28\x86\x85\x6b\ \x0d\x94\x8c\x96\x59\xe3\x2d\xe4\x3b\x3d\x4b\x95\x95\x50\xd0\x4b\ \x4c\x4c\x9c\x3a\x75\x8a\xb7\xaf\x5f\x64\xe0\xfc\xab\x45\xd9\x68\ \x44\xa0\x97\xaf\xaf\x9f\xab\x8b\x73\x52\x52\x12\x0e\x1d\x1d\x1d\ \xea\xae\x9f\x83\xcb\xd0\x84\x5e\x72\x72\x32\xc3\x75\xa3\xb5\x75\ \xc3\xc6\x5f\x07\xf9\xbd\x79\x4d\x7f\x08\xc5\xa0\x78\xbd\xa5\x85\ \x26\x1c\x70\xc3\xf9\xfb\xc1\xd0\x84\xde\xfa\xf5\xeb\x87\x0f\x1f\ \x5e\x56\x56\x86\x1d\xb3\x26\x2e\x78\xf1\x9c\x66\xfd\x21\x14\x83\ \x22\x95\x34\xe1\x80\xdb\xe0\x91\x54\x93\xa1\x09\xbd\x75\xeb\xd6\ \xd9\xda\xda\x56\x55\x55\x31\x09\xd9\xd6\xe3\xd6\x26\x68\x02\xdc\ \x9b\x8a\x72\x50\x0c\x8a\x54\xd2\x84\x03\x6e\x38\x0f\x12\x49\x69\ \x90\x96\x96\x84\x84\x04\x3b\x3b\x3b\xd0\x3f\x7e\xfc\xb8\xb5\xb5\ \x95\x45\x63\x4d\xdc\x07\x32\xc3\x83\x28\x06\x45\x2a\x69\xc2\x01\ \x37\x9c\xe9\xa2\x90\x54\x71\x51\x55\x67\x0c\x4d\x46\x2f\x3e\x3e\ \x7e\xe4\xc8\x91\xe0\x7e\xf4\xe8\xd1\xcd\x9b\x37\x6f\xdd\xba\xc5\ \x93\x76\xec\xfb\xf1\x9a\x80\x39\x8d\xba\x1c\x14\x83\x22\x95\x34\ \xe1\x80\x1b\xce\x74\xa1\xa3\xea\x23\x29\xa9\x3e\x7a\x71\x71\x71\ \xa3\x46\x8d\x02\xf1\xc3\x87\x0f\xaf\x5f\xbf\x7e\xfb\xf6\xed\x1b\ \x37\x6e\x74\x76\x3e\x8d\x59\xb3\xf6\xdd\x00\xf7\x86\xa2\x83\x28\ \x06\x45\x2a\x69\xc2\x01\x37\x9c\xe9\x42\x47\xba\xab\x3b\x92\x92\ \x5a\xf4\xba\xe4\x07\xe8\xd8\xd8\xd8\xd1\xa3\x47\x83\xb5\xad\xad\ \xad\xa5\xa5\x45\x0c\x11\x04\x9e\x3c\x79\x1c\x13\x1b\x07\xb1\x2b\ \xba\x6c\xd4\xc0\x30\x36\x8e\x4a\x9a\xc4\x20\xe3\x4c\x17\x3a\xd2\ \x9d\x20\x84\x12\xfb\xc7\xc0\x49\x4a\x2a\xd2\x8b\x8e\x8e\xb6\xb7\ \xb7\x07\xe5\x83\x07\x0f\xae\x5e\xbd\xca\xf8\xb4\xca\x72\xed\xda\ \xb5\x8e\xf6\xf6\xe8\x98\xf7\x0d\x0c\x0b\xb3\x51\x0c\x8a\x54\xd2\ \x24\x7c\x70\xa6\x0b\x1d\xe9\x4e\x10\x42\xa9\x45\x52\x52\x8b\x5e\ \x54\x54\xd4\x98\x31\x63\x2a\x2b\x2b\xef\xdf\xbf\xdf\xd4\xd4\xc4\ \x98\x80\xbe\x45\x16\x8a\x4c\xc2\x55\xd1\xb1\x10\xbb\x5c\x98\x85\ \x62\x50\xa4\x52\x78\x2a\xce\x14\xe9\x4e\x10\x42\x11\x50\x15\x92\ \x56\xae\x34\xca\x4a\x20\xe8\x45\x44\x44\x38\x38\x38\x80\xec\xce\ \x9d\x3b\x57\xae\x5c\x61\x34\x9a\x65\xb9\x2a\x4b\x43\x43\x43\x5b\ \xdb\x7f\xa2\x56\xc7\x40\xac\xbe\xf0\x00\x8a\x41\x91\x4a\x9a\x84\ \x8f\xe2\x4f\x77\x82\x10\x8a\x80\x84\x55\x48\x5a\xbd\xf0\x58\xc3\ \xd0\x84\x9e\x56\xab\x1d\x3b\x76\x6c\x45\x45\x05\xb7\x53\x7d\x7d\ \x3d\xe3\xd0\x28\x4b\xd3\x73\xb9\x7c\xf9\xf2\xd7\x5f\x3f\x58\xb9\ \x2a\x3a\x28\x60\xce\xa5\x82\x2c\x14\x83\x22\x95\x34\x29\x6e\x4a\ \x2f\x82\x10\x8a\x80\x84\x25\xf8\x00\x49\x4a\x03\x9c\x9c\x21\x21\ \x21\x8e\x8e\x8e\xa0\xe1\x46\xaa\xab\xab\x63\x4c\xae\xc8\xd2\x60\ \x24\x97\x2e\x5d\xfa\xea\xab\x7f\x47\x46\xad\x0e\xf2\x77\xaf\xcb\ \x3f\x80\x62\x50\xa4\x92\x26\x63\x4f\xa5\x2f\xa1\x08\x48\x58\x82\ \x93\x62\x20\xd3\x55\x1a\x08\xbd\xe0\xe0\x60\x10\x94\x97\x97\x73\ \x0b\xd5\xd6\xd6\x72\xed\x41\x5c\xdf\x43\x68\xba\x77\xf7\x6e\x44\ \xe4\xaa\xa0\x00\xf7\x8b\xf9\xfb\x51\x0c\x8a\x54\x8a\x5e\x26\x22\ \x82\xd0\x44\x58\x82\x93\x82\x44\x56\x93\xb4\x60\x96\x0a\xb7\x6e\ \x59\x0c\xef\x7b\x41\x41\xe3\xc7\x8f\x07\x01\xf7\x4f\x4d\x4d\x0d\ \x57\xfd\xe2\xc5\x8b\x75\xbd\x09\xad\x77\x6e\xdf\x0e\x8f\x88\x62\ \x72\xd6\xe6\x1f\x40\x31\x28\x52\x29\x3a\xf6\x14\x11\x8a\x56\x82\ \x93\x82\x44\xa4\x23\xa9\xc8\x6e\xd1\x74\x35\x97\xa1\x09\x3d\xce\ \x1a\x26\x4c\x98\xc0\x73\x33\x77\x4e\x75\x75\x35\xd7\xfb\x82\x2c\ \xb5\xbd\x09\x0e\xdc\x57\xda\xf0\x95\x81\xfe\xee\x17\xf2\xf6\xa3\ \x18\x14\xa9\x14\x7d\x7b\x8a\x12\x0d\x07\x52\x90\x88\x74\x24\xb5\ \x82\xa4\x64\xfe\xe4\x54\xe8\x2d\x5d\xba\x74\xe2\xc4\x89\xa5\xa5\ \xa5\xac\x13\x2c\x7a\x5c\xe9\xf3\xb2\xd4\xbc\x40\xf0\x61\x6b\x0c\ \xd3\x46\x42\xac\x26\x37\x13\xc5\xa0\x48\xa5\xe8\xde\xab\x28\x31\ \xf1\x21\x11\xe9\x48\x4a\x6a\x63\x24\xaa\x31\x34\x0e\xba\x64\xc9\ \x92\x49\x93\x26\x95\x94\x94\x30\x8b\xb8\xb4\x6c\xd0\x95\xfd\x09\ \x6e\x6c\x78\xa1\x61\x11\xc6\x0c\x29\x52\x49\x53\xbf\xdd\x49\x81\ \x1b\xe9\x48\x4a\x6a\x00\x58\x44\xb2\x9f\x59\xaa\x4c\x4e\x71\x8b\ \xfb\xfb\xfb\x4f\x9e\x3c\xb9\xb8\xb8\x98\xf9\x43\x3e\xd6\x3a\x6e\ \x92\x8a\xfe\x04\x4f\x36\xbc\x90\xd0\x70\x88\x9d\xcf\xcd\x3c\x2f\ \x33\xa4\x48\xa5\x08\xd2\xb7\x88\x14\x78\x92\x94\xd4\x00\x00\x86\ \x58\xf0\xcc\x99\xae\x7d\x31\x34\xa6\x87\xe1\xe7\xe7\x37\x65\xca\ \x14\x72\x30\x79\xf4\x7a\x3d\xd7\x95\x99\x53\x66\x86\xe0\xcc\x66\ \xf7\x5e\x88\x36\x30\xc0\xbd\x3a\x37\x03\xc5\xa0\x48\xa5\x88\xd3\ \xaf\x88\x44\x38\x93\x1a\x00\xc0\x00\x8c\x40\xd8\x2f\xc9\x17\x32\ \x34\xa6\x87\xf8\xfa\xfa\x72\x98\x59\x54\x54\xc4\xb4\xd1\xe9\x74\ \xa4\x21\x5f\xb1\x79\x52\x58\x58\xc8\x8d\xa4\x09\x0e\x5d\xe1\x3f\ \xa7\xea\x6c\x26\x8a\x41\x91\x4a\x9a\xcc\x0c\x22\xd2\x91\x1a\x00\ \xc0\x00\x0c\x90\x04\xb6\xbe\x49\xf6\xce\x50\xa1\x27\x7e\xbd\xbd\ \xbd\xa7\x4f\x9f\x4e\x5c\x66\x0b\x98\x48\x86\xad\x37\x5b\x0a\x0a\ \x0a\xd8\xdf\x64\x86\xee\x95\x67\x32\x50\x0c\x8a\x54\xd2\x64\x7e\ \x1c\x91\x14\x00\xc0\xc0\x06\x12\xc0\x14\x90\x2f\x22\x29\xf5\xbd\ \xc0\xf0\x9e\xc6\xa5\x72\x72\x72\xe2\xe2\x31\x55\xce\x9d\x3b\x87\ \x41\x0e\x9d\x25\x92\x9f\x9f\xcf\x0e\xf7\xae\x26\x44\x66\xb8\x0f\ \xc5\xa0\x48\x25\x4d\x16\x85\x12\xa9\x81\x01\x18\x0c\x80\x01\x4f\ \xbc\x97\x5a\x36\x4b\x95\x31\xe4\x10\x9a\xe3\x30\x57\x57\xd7\x19\ \x33\x66\x10\x0e\xc3\xc5\xc5\xc5\xd5\x42\xa1\x8b\x9b\xdb\x0c\x9b\ \x61\xb6\x11\x1a\xdf\xd2\x2f\xf7\xa2\x18\x14\xa9\xb4\x2e\x1a\xbf\ \x80\x01\x12\x06\xf0\x00\x69\xd6\x18\x1a\x7f\x12\x11\x2b\x27\x1f\ \x0f\xc4\x86\xcb\xa6\x84\x21\xf6\xa8\x1a\xcb\x45\xec\x87\xda\xf0\ \xc8\x65\x8b\x66\x97\xff\x6b\x1f\x8a\x41\xb1\xef\xfd\xb0\x0f\x11\ \x30\x04\x24\xf1\xc8\x21\xbe\x73\x18\x8f\x96\x42\x47\xea\x79\x08\ \x6f\xfc\x1d\x53\x95\xb3\xe7\x6f\xcf\x85\x93\x3e\x0c\xf0\x99\x55\ \xf2\xcf\x8f\x51\x0c\x8a\xe2\x2e\x50\xe5\xc3\x81\xf1\x87\x57\x13\ \xcc\x52\x4f\x57\xd5\x3f\x1e\x28\x0c\x03\x17\xbb\xd7\x17\x1f\x42\ \x31\xd4\x62\xd8\xeb\xc3\xc9\xff\x8d\xe1\x37\xcf\x45\x70\x3b\x7c\ \xf8\xb0\x87\x87\x87\xb7\x8f\x4f\x60\xe0\x0a\xe6\xf7\xbc\xf9\x0b\ \xe7\x2f\xf4\x59\xe8\xed\xbb\x60\xa1\xcf\x02\x6f\x0c\x6b\x74\xfe\ \x02\xef\xb7\xfd\xfc\x9d\x9c\x5d\x5f\x1e\x67\xff\xcb\x9f\xff\x14\ \xc5\xa0\x48\x25\x4d\xd6\xc5\x04\xcc\x02\x19\x18\xf0\x00\x09\x54\ \x00\x03\x1b\xf0\x50\x10\x3c\xc5\x8c\x35\x9d\xa5\x8c\xf2\x91\x23\ \x47\xa6\x4d\x9b\xce\x1d\xcc\xc7\xb0\xfd\xdb\xd7\xee\xd8\x10\xfe\ \xbb\xc4\xf7\x52\x53\x42\xb7\xa5\x84\xa5\x26\x87\xa6\x26\x87\x6d\ \xb3\x54\x53\xc2\xb6\x26\x85\xa4\xff\x66\xf5\xee\xcd\x6b\x76\xfc\ \x2a\x0a\xc5\xa0\x48\x25\x4d\x96\x46\x4b\x35\xa8\x0c\x26\x25\x14\ \x60\xc0\x03\x24\x50\x01\x0c\x6c\xc0\x77\x3d\xff\xa8\xfc\xc2\x95\ \x06\x83\xcf\x77\xa9\xdb\xb6\x39\x8e\x73\x08\x5a\xe4\x7e\xe1\x4c\ \xc6\x83\xba\x3f\x37\xe9\x0e\x36\x14\x66\x37\xeb\x73\x9a\xf4\x86\ \x23\x5d\x0c\xf3\x55\xf8\x37\xea\xb2\x1b\x0b\xb3\x9a\xb1\x8b\x0e\ \x62\x50\x54\x9a\x2c\x0a\x05\x00\x0c\xc0\x00\x09\x60\xc0\x03\x24\ \x50\x01\x0c\x6c\x63\x16\xfd\xac\x34\xd8\x9c\x9a\xf8\xbe\xb5\x68\ \x98\x24\x25\x44\x05\xd4\x9e\xcd\xa8\xcb\xcb\xd4\x1f\x4d\x2b\x39\ \x9e\x5e\x76\x72\x77\xe9\x89\x5d\x68\xd9\x89\xdd\x43\xa6\xdf\x66\ \x3c\xb9\x1b\x00\xc0\x00\x0c\x90\x00\x06\x3c\x40\x02\x55\xcc\xcc\ \xbe\x56\x1a\x85\xa4\x72\xbc\x2b\x8a\xa7\x4e\xfd\xc3\xc9\xe5\xc7\ \x53\x26\x8c\xd9\xbf\x23\xa1\xb9\xf8\xd0\xf9\xd3\x7b\x8b\x8f\xa7\ \x97\x9f\xda\x83\x92\x4f\x18\x83\xad\x4a\x22\x52\x03\x00\x18\x80\ \x01\x12\xc0\x80\x27\xf8\x28\x87\xc8\x26\x2b\x65\x2f\x3b\xbe\x52\ \xc3\x25\x11\xcb\x20\x87\xd3\xbf\xdf\xba\x6d\xd8\x4b\xb6\x73\xdf\ \x70\x3b\xfd\x79\x6a\x63\x51\x4e\xe9\xc9\x5d\xc5\xf2\x60\x96\x0d\ \xf2\x60\xca\xc1\x0d\x43\x47\x3a\x92\x92\x1a\x00\xc0\x00\x0c\x90\ \x00\x26\x16\xe4\x3e\xfe\xa9\xd2\xcf\x93\xb7\x98\xb4\xe2\xde\xe5\ \xfc\x7a\xd9\xf2\x20\x1b\x49\x8a\x0d\x7b\xab\xea\xf4\xc7\x17\xf3\ \x32\x75\x47\xd3\xf4\xc7\xd3\x4b\x4e\x90\x7e\x77\xf1\x89\x5d\x18\ \x2a\x2a\x01\x09\x8b\x41\x0a\x12\x91\x8e\xa4\xa4\x06\x00\x30\x00\ \x23\xd6\x45\x31\x2d\x2d\x7e\xf2\xee\xf5\xe0\x50\xcc\x81\xdc\xdc\ \xbc\x19\x6e\xaf\x8c\x1f\x37\x2a\x7d\x73\x6c\x7d\x61\x76\xc5\x97\ \x7f\x2c\xf8\xe2\x23\x40\x00\x88\x5f\xfd\xf1\x5d\x06\x64\x03\x53\ \x82\x28\x01\x09\x4e\x0a\x12\x91\x8e\xa4\xa4\x06\x80\x72\x1a\x66\ \xce\x11\xa3\x64\xe9\x73\x83\xe1\x86\xee\xea\x4a\x4b\xdf\x65\x37\ \x62\xe4\xac\x99\xae\x47\x3f\xd9\x4c\xfa\xa2\x63\x06\x28\xfc\x16\ \x1d\x4f\xd3\x1d\x4b\xd3\x71\xd5\xad\xd6\x63\x69\x04\x51\x02\x12\ \x9c\x14\x24\x22\x1d\x49\xc5\xdf\x8b\x2c\x7a\xde\xb2\xec\x24\xca\ \x78\xd2\xde\xbb\x77\x97\xf7\x74\x76\x21\xed\x0a\xaf\xe2\x93\x7b\ \xce\x9f\xcd\xc8\xff\xfb\xce\x73\x5f\x7c\xa4\x3b\x96\x5e\x78\x34\ \x0d\xc5\xb0\x48\x95\x5e\x04\x21\x14\x01\x09\x4b\x70\x52\x90\x88\ \x74\x66\x4e\xcb\x01\x9d\x79\x1b\x7f\x27\x14\x93\x96\xf7\xd2\xd7\ \x66\xfe\xc2\xc1\xde\x6e\xeb\x86\x48\x0e\xd1\x4a\x4f\xed\xc9\xfd\ \xeb\x1f\xc0\x87\xe6\xfd\x6d\xa7\x30\xcc\x51\xc5\x99\xee\x04\x21\ \x14\x01\x09\x4b\x70\x52\x28\xcb\xbb\x15\x27\xdf\x16\x9f\xea\xf7\ \x5c\x69\x29\xee\xcb\xc8\x1c\x6d\xef\xf0\xaa\xdb\xb4\xcf\x33\x37\ \x5e\x38\x77\xa0\x42\x7e\x09\xac\x3a\x9b\x51\x69\xb6\x1a\x9c\xcf\ \xec\xa3\x23\xdd\x09\x42\x28\x02\x12\x56\x5c\xc7\x81\xfc\xaf\xcf\ \xfa\x2f\x33\xa2\x97\x32\x69\xf9\x30\xb6\x6a\x75\x0c\x33\x6a\xf9\ \xa2\xd9\xdb\x37\x46\x6e\x4a\x0a\xd9\x9c\x1c\xba\x25\x39\xcc\x4c\ \xc5\x99\x2e\x74\xa4\x3b\x41\x08\x45\x40\xe3\x69\x69\xf5\xb7\x6a\ \x49\x95\x97\x17\xfe\xe8\x23\x1e\x83\x38\x2f\xf2\xf1\x79\x7b\xee\ \x5c\x4f\x4f\x4f\x2f\x0f\x8f\x79\x1e\x1e\x5e\x66\xeb\x3c\xba\xd0\ \x91\xee\xe2\xbf\x1b\xf2\xc2\xd6\x39\xf0\xd7\x37\x15\xbe\xe3\x9b\ \x7c\x8a\x1a\x20\x20\x11\x41\xc5\x3f\x10\x49\x2a\xbe\x98\x99\xbc\ \x89\x76\x5b\x28\xaa\xbf\x79\x0f\xc5\x7f\x13\xbf\x0b\xf2\x3f\x84\ \xe7\xbe\xe1\x71\xc1\x1b\xd4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x0c\xdc\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x4b\x00\x00\x00\x36\x08\x02\x00\x00\x00\x00\x90\xf3\xa2\ \x00\x00\x0c\xa3\x49\x44\x41\x54\x78\x5e\xdd\x5a\xdb\x93\x55\xc5\ \xd5\xef\xee\x7d\xce\x99\x1b\x03\xcc\x30\x37\x44\x19\x18\x2e\x2f\ \xc6\x38\x58\xca\xc5\x19\x14\x98\xa4\x2c\x35\x98\x08\x09\x65\xe5\ \x42\xb4\xb4\x0c\x65\x12\x1f\xe2\xc3\xf7\x96\xbf\x20\x79\xc8\x05\ \xa2\x46\x0a\x43\x88\xa6\x4c\x82\x31\x26\xb1\x2c\x22\x20\x8a\x90\ \xd2\x12\x92\x54\xe5\x01\x74\xb8\x49\xf8\x64\xe0\x38\xc3\xdc\x3c\ \x67\xef\xdd\x9d\x75\xd6\x3a\xdd\xab\xf7\xd9\xce\xcc\xa9\xf1\x24\ \x0f\x69\xfa\x6c\x56\xef\xbe\xad\x5f\xaf\x5b\x77\xcf\x16\x31\x26\ \x8d\x89\x08\xa6\xf9\x0d\x17\xb9\xfd\xd4\xef\x99\x4e\xa5\xd8\x4b\ \xe9\xaa\x4f\x6c\x9c\x6a\x93\x26\xb8\x98\x66\x2c\x23\xa5\x14\x42\ \xc0\xd3\x18\x63\x69\x7e\xa6\x8b\xd4\xd2\xaf\x82\x22\xbf\xac\x65\ \xe2\xb9\x98\xc0\x54\xd1\x86\x39\xe4\xc4\xc5\xcc\xa7\x99\x5e\x63\ \x22\xc2\xa1\x85\xc4\xeb\x95\x4a\x8e\x51\xa2\xfd\x66\x8e\xf6\x09\ \x1a\x5c\x61\x9a\xdd\x22\xce\x5e\x4b\xa3\x28\x02\x02\x90\x00\xcd\ \x4f\x2f\x11\x00\x47\xf8\xb5\xe9\x97\xe9\x96\x3e\x01\x13\xc1\x74\ \xb3\xd4\xd2\xd9\x49\xaf\xd4\x33\x93\x39\x77\xee\xec\x43\x8f\xec\ \x18\x1f\x1f\x0f\x82\x00\x85\x23\x05\xca\x40\x18\x09\x4f\x49\x45\ \x7c\x6d\x25\x88\xff\xa8\x9d\xb4\x72\xf3\xab\xa5\x34\xf4\xc0\x11\ \x68\xa2\xa6\xa6\xa6\x3d\xcf\x3c\xd9\xdd\xbd\x04\x40\xe2\x44\x28\ \xe1\xaa\x53\x66\xd6\xf0\xfe\x75\xf1\xe2\xba\xf5\x03\x9f\x69\xbc\ \xfc\xbd\x81\x95\x63\x93\xa1\x94\x64\x2e\x84\x8f\x71\x38\x68\x8c\ \x09\xdb\xd1\x60\x54\xb2\x4d\xd8\x1d\x18\x53\x6e\x3a\xa7\x21\xbb\ \xfb\xb5\x93\x30\xd1\x3b\xc7\x8e\x5c\xb7\x68\x91\x03\x59\x3d\xc2\ \x92\x96\x7f\xa2\xff\x48\xdb\x06\x55\xc1\x1c\x08\xef\x83\x55\x6b\ \xd6\xaf\x6b\x1b\xff\xf5\x13\x9f\x27\x45\xb2\x23\x10\x3a\x96\xa1\ \xc5\x66\x04\x23\x64\xf4\xde\x04\x56\x86\xd0\x1e\x68\xc9\x95\x4a\ \xa9\x07\x7e\x78\xe0\xd8\x95\xa6\x13\x7f\x7d\xe3\xba\x45\xd7\x13\ \x03\x3e\xc8\xe9\xcd\x3e\xd1\x94\x19\x4d\xd0\x5c\x15\x86\x61\x36\ \x9b\xbd\xf8\xc1\x05\x80\xd7\xd7\x3e\xf9\xdc\xe3\x03\xf9\xfc\x78\ \x64\x8c\x72\xda\x45\x60\x48\x8a\x2c\x43\x42\x60\x81\x90\x14\x79\ \x58\xaa\xa4\xd7\xb6\xbb\xe5\x59\x03\x8b\x52\x3e\xff\xf8\xc0\x57\ \x7f\x7c\xb0\x77\x75\x3f\x80\x5c\x74\xfd\x0d\xc0\x06\x82\x64\x0e\ \x19\x45\x0a\xcb\xcc\x32\x44\x82\xa5\xf7\xc1\x85\xf3\xab\xd6\xae\ \x5f\xdf\x5e\xd8\xf7\xed\x4d\x1f\x8d\x4e\x42\xb5\x52\x64\x37\xd2\ \x08\x36\xa1\xe4\x38\x8c\x91\x59\xf1\x6a\x3d\xb4\xd2\xb2\x46\xab\ \x44\xbe\xb4\x44\xb6\x34\x37\x7c\x7d\xe7\xc1\x37\x86\xea\x4e\x1c\ \x7f\xe3\xfa\x1b\x16\xb3\x24\x67\x94\xa1\x98\x39\x31\xbc\x0b\xe7\ \x01\x5e\xff\x9d\xed\xe1\x2f\x77\x0c\xe4\x87\x27\xa0\xa6\x04\x2f\ \x82\xd1\x15\x73\x5b\xc2\xa0\x08\x10\x49\x34\xe5\x6f\x58\xb4\x56\ \xe0\x3c\x13\x09\xd0\x56\x2a\x03\x3f\xa9\x00\x64\x7e\x78\x72\xdf\ \x8e\x81\x6f\xfc\xec\x60\xef\x9a\xfe\x13\xc7\xdf\xbc\x61\x31\x83\ \x9c\xde\x2c\x4b\x6e\xa3\x22\x76\x57\x48\x99\xe0\x81\x72\x5e\x38\ \x77\xae\x77\x6d\xff\xc6\x8e\x68\xef\xa3\x9b\xf2\xa3\x13\x25\x1c\ \xd8\x80\xb4\xd1\xb0\x2d\x91\xa6\x4d\x21\x43\xaa\x22\x30\x0c\x9c\ \x28\xfc\x59\x88\xcc\x07\xc5\x5e\xd4\x8d\xd6\xe6\xc6\xed\x4f\x1f\ \x3c\x74\x39\x73\x12\x40\x76\x77\x3b\x75\x25\x08\x69\x2d\x9d\x41\ \x86\x3e\xbc\xf3\x67\xcf\x02\xbc\x81\x4e\xfd\x8b\x87\x37\x5e\x1d\ \x46\x78\x34\x2b\x30\xed\x77\xa1\x82\xb3\xa6\xf4\x98\xf8\xb3\xae\ \xc4\xf6\x65\x3b\x64\xa1\x1a\x3b\x1a\x59\x23\x81\x84\xa9\xf7\x3e\ \xbc\xf1\x9b\xbb\x0f\xdf\xbc\xa6\x0f\x40\x2e\x5e\xb2\x84\x41\xce\ \x22\x5a\x38\x78\xe7\xce\x9e\x01\xe5\xfc\x5c\x87\xd9\xf3\x20\xc1\ \x93\xaa\x2c\x5e\xc5\x50\xac\xc1\xa2\x18\x94\x15\x66\x4a\x4b\x81\ \x70\xc0\x65\x22\x8e\x10\x6e\x8b\x95\xf5\xd9\x45\x11\x25\x15\x82\ \x9c\x7c\xf6\xc1\x8d\x0f\xed\x39\xd4\xbb\xb6\x0f\xd4\xb5\x7b\xc9\ \x52\xdf\xf1\x54\x8b\xd0\x97\xde\xd9\x33\x00\xaf\xef\xae\x4e\xb9\ \x7b\xfb\x26\x80\x27\x84\x62\x78\x1e\x13\xcc\x34\xfc\x38\xfa\x57\ \x4c\xc9\x2d\xa9\x01\xa3\x67\x84\x64\xc6\xde\x72\x48\x6a\x9d\x00\ \xb9\x67\xfb\xa6\x87\xf7\x1e\xea\x5d\x03\x20\x8f\x2e\x59\x9a\x00\ \x39\x43\x3c\xa4\xe4\x02\xc3\x99\xc1\x41\x80\x77\x77\x67\xf0\xcc\ \xd7\x36\x5c\x19\x43\xd7\xe2\x3b\xae\xa4\xca\xa5\x8c\x87\x62\x3a\ \x11\x54\x4d\x55\x1c\x10\xc9\xd3\x03\xe5\x3c\x27\x05\x13\x6b\xab\ \xd4\x89\x93\xb1\xea\x0a\x64\xdb\x9c\xc6\x47\x7e\x75\xf8\x95\x0f\ \x63\x00\xb9\xb4\xa7\x87\x18\x66\x9b\x9c\x2a\x1e\xfa\xf0\x06\x07\ \xdf\xbf\x65\x6d\xdf\x3d\x1d\x99\xa7\x1f\xd8\x30\x34\x32\x01\x9d\ \x54\x49\x3c\x9a\x16\xd4\x77\x20\x4c\x7a\x50\xa8\x59\x9a\x47\xd6\ \x57\xc9\x26\x48\xb4\xed\xad\xd9\xeb\xd2\x4b\xde\xf7\xc0\x88\x1a\ \x5d\x80\x00\x96\x7e\xfe\xc0\x86\x47\x9f\x3f\xbc\x6a\xed\xed\xef\ \x1e\x3f\xda\xd3\xb3\xcc\x49\x72\xba\x78\xc8\xf0\xde\x7f\x0f\xa4\ \xf7\x85\xce\xdc\x53\xdb\xee\xbc\x32\x3a\x29\xa4\xf5\x9c\x1c\x32\ \x19\x17\x1b\x94\xbf\xf9\x4c\x6b\xa9\x15\x21\xcb\xd0\xe0\xc3\x6d\ \xf7\xa4\x64\xaf\xca\x0a\x92\xd2\x71\x27\x49\x23\xda\x9a\x1b\xbe\ \xf5\xc2\xeb\x7f\xfc\xb0\x78\x02\x40\x2e\x5b\xee\x4b\x92\x7d\x69\ \x5a\x7a\xef\xbf\x77\xfa\x96\x75\x7d\x9b\x3b\xea\x9f\xdc\x7a\xe7\ \xd0\xf0\x04\xbc\x27\x78\x2c\x3b\x86\x58\xc6\x9c\x8c\x6f\xdc\x86\ \x40\x24\xe4\xcc\x12\x16\x95\x56\xc7\xca\x2f\x13\x12\xe6\xf7\x14\ \x9c\x94\xb3\xc9\xa1\xe1\xc9\xa7\xb6\x6e\xd8\xf1\xdb\xd7\x4b\x92\ \x3c\x76\x74\xd9\xf2\x15\x0e\x24\x24\xb6\x43\x1f\xde\xe9\x53\xa7\ \x6e\xb9\xbd\xff\x8b\x1d\xf5\xbb\xee\xbf\x63\x68\x0c\x94\x53\xf2\ \xa6\x81\xe3\x93\x48\x25\xe6\xc4\xdf\x09\x79\xec\x55\x56\xd9\x2e\ \x56\x60\xa9\x83\xe5\xb4\x53\xc0\x83\xda\x03\x69\xda\xe7\x34\x3e\ \xf6\xe2\x91\x97\x2e\x7f\xfc\xee\x5b\x6f\xae\x58\xb9\x92\x80\x30\ \x42\x77\x62\x08\x82\xe0\xbd\xd3\xa7\x6e\xeb\xbb\x63\xdb\xc2\xa6\ \x5d\x5f\xda\x30\x34\x3a\x4e\xd2\xd3\x46\x43\x6b\xa5\x52\x5a\x4a\ \xb2\x48\xc6\x6d\xc1\x18\x04\x57\x32\x42\x16\x22\xe9\x26\x95\x24\ \x6f\x57\x19\x09\xe9\x83\x1d\x41\x56\x2c\x90\xd6\x25\x84\x24\x49\ \x48\xed\xcd\x4d\x8f\xfd\xfe\xf0\x0b\x97\xc6\xdf\x3e\x7a\x64\xf9\ \x8a\x95\x04\xa7\xec\x69\x1c\xbc\xbf\x9f\x3c\xd9\xb7\x71\xa0\x37\ \x17\x6f\xbf\xf1\xa6\x3f\xfd\xed\x94\xb4\xaa\x9c\xcd\x66\x82\x20\ \x57\x28\x6a\x29\xd9\xe2\x18\xa2\xcf\x15\x81\xb0\x41\xcc\xbd\x64\ \x55\xe6\xb3\x03\xf7\xf1\xfd\xa4\xed\x4f\x0e\x96\x7a\x7a\xef\x25\ \x6f\x62\xeb\x72\x2a\x8e\x8b\x61\x18\x59\x49\x8a\xed\x37\xf6\xfc\ \xf3\xff\xdf\x5e\xb5\x7a\xdd\xd1\x43\xaf\x7d\xb6\xb7\x17\x40\x29\ \xa5\x24\x9d\xd3\x01\x5e\x3e\x9f\xdf\xb2\x65\xcb\xe0\xe0\xe0\xc2\ \xb6\x05\x23\x13\x1f\x4b\x69\x2d\x35\x13\x0c\x0d\xe5\x47\x47\x2f\ \x2d\x5e\x54\x1f\xc5\x5a\x54\x1c\xfc\xac\xd1\xb0\xa3\x04\x04\x2e\ \xae\x3b\x2d\xe5\x98\x87\x95\x54\xc7\x76\x6b\x29\xc9\x32\xf7\xc6\ \x13\x32\xa5\xe4\x99\x40\x9d\xbf\xf8\x71\x73\xf3\xc2\xf6\xf6\xd6\ \x28\x8a\x09\x24\x54\xce\x6b\xac\xbf\x74\xe5\x6a\x4f\x4f\xcf\xfe\ \xfd\xfb\x5b\x5b\x5b\x01\x1d\x6b\x69\xa1\x58\x14\xb0\x30\x75\x75\ \xda\x18\x8b\x4e\xd0\x61\xf7\x27\x3f\x7d\xf6\x0f\xbf\x7b\xe8\x95\ \xfd\xab\x3e\xbc\x5c\x08\x82\xca\x6b\x22\xb6\x1c\x2a\x01\x6d\x52\ \x07\x79\x4c\x86\xe0\xb2\xaa\xfb\x12\x25\x68\xac\x03\xac\xc3\x86\ \x91\x13\xc2\x38\x16\x9d\x1d\x75\x77\x6f\x39\x71\xdf\xd6\x3d\xdf\ \xfd\xce\x83\x74\x2c\xc6\x81\x71\x3f\x05\x58\x0a\x05\x40\x50\x97\ \xcb\x25\xf6\xa5\xb9\x6c\x96\x86\x87\x16\x09\x63\x73\x4b\xaf\x65\ \x29\xcb\x72\x95\xd6\xd0\x02\x37\x38\x0a\xd1\x12\x5f\xd4\x27\x75\ \x3c\x05\x45\xd1\x1a\x41\x6a\x04\xe2\xe4\xe7\xed\x5a\x08\xbf\xdd\ \xbd\x2b\xa3\x11\x14\x9e\x36\x8c\x0b\x87\xf4\xd4\x90\x25\x15\x2a\ \xae\xd7\x68\x2c\x90\x93\x7b\x5b\xd5\x09\x98\x9a\x00\x73\xa5\x4c\ \xa6\x66\x6d\x7d\x6c\x34\x06\x25\xa1\xc6\xc8\x01\x4b\x89\x04\x4b\ \x26\xd0\xd0\x10\x64\x32\x42\x6b\xb7\x19\xf0\xdc\xae\xa5\xed\x4c\ \x18\xf2\x01\x01\xb6\x34\x1a\x01\x7a\x9a\x6c\x11\x32\x63\x2e\x30\ \x54\x7f\xb6\x48\x27\xe2\x4a\x42\x76\x01\x0d\xf4\xe2\x6a\x3e\xbe\ \x67\xdb\x60\x14\x37\xe4\x72\x4a\x6b\x52\x4f\x14\x1a\x2f\xb8\xc8\ \x64\xd4\xa5\x4b\xa3\xbb\x7e\xd0\xb5\x65\x73\xcb\xf0\x48\xac\x14\ \x75\x97\x89\x18\x68\x52\x6e\x87\x82\xa4\xe1\xc6\xdc\x9e\x99\xa9\ \x8a\xf1\x69\x6f\x84\x99\x16\xa6\xbc\x72\x65\xaf\x42\x3b\xb7\x62\ \x21\x32\x62\xee\xab\x07\x8e\x81\xb9\xa3\x4f\xb3\x97\x4b\xde\x55\ \x65\x5b\x5b\xeb\x5d\x77\xdd\x3f\x34\xf4\x56\xa0\xda\xb5\x8e\x11\ \x81\x3b\x13\x31\x28\xe7\x74\xac\xa9\x22\x2c\x57\xb4\x3c\x60\x22\ \x4e\xb8\xaf\xc4\xf4\x69\x6f\x84\x25\x3a\x35\xcc\x54\x04\x42\x01\ \x50\xa5\x64\x67\x67\xdb\x82\xd6\xf9\x5a\xeb\xf4\xa5\x2d\x39\xaa\ \x86\x86\x3a\x80\x52\xee\x6e\xad\xd5\x68\x19\x28\x13\x64\x94\xb7\ \xe9\x97\xbc\x7b\x43\xbc\x74\xc6\xd6\x1a\xc6\x31\xd0\x1e\xe3\x31\ \xad\x22\x32\x33\x2d\xc3\xb3\xb1\x43\x5a\x73\x5e\x4f\xcc\xf0\x20\ \x6f\x4c\xcf\x24\x42\x5b\x85\x87\x59\xce\x58\x52\x52\x14\x0a\x66\ \xe4\x5a\x14\xdb\xfb\x72\xc1\x57\xa5\x64\x79\x65\xb4\xb9\xac\x9a\ \x3f\x57\x29\x85\xb6\xe7\x74\xb5\xc6\x76\x08\x88\xd8\x97\x92\xaf\ \x40\xda\x54\xea\x33\x30\xe2\x70\x72\x95\xc0\xbe\x94\xb1\x14\x6b\ \xd1\x32\x2f\xf8\xf3\xcb\x1f\xed\x78\xe2\x42\x77\x57\x7d\x18\xf1\ \x0d\xa3\xa1\x13\x17\xc2\x53\x4a\x16\x43\x6d\x02\x7d\xe0\x37\xcb\ \xdb\x5a\x33\xc5\x58\x48\xd6\x52\x6a\x55\xd3\x1b\x61\xc0\x83\x19\ \xed\xdc\x16\xab\xf6\x53\xd2\x75\x17\xb8\x6f\x0e\x94\x1a\x1e\x8b\ \x6e\xed\x6e\x7f\xf1\xff\xfa\xae\x8e\x16\x54\x59\x8e\xd2\xbf\x73\ \xcc\x66\xd4\x95\x91\xc2\x57\x76\x1e\x29\x46\xd4\x4b\xd3\xea\x42\ \x15\x4f\x5d\x1b\x84\xc4\xa3\xcd\xe4\x69\x88\xae\x32\x71\x5f\x1e\ \x4a\x02\xc3\xd9\x40\x2d\x68\xca\xe9\x18\x00\xb3\x22\xf8\x08\xa3\ \xd0\x28\xbf\xbb\xe1\xd1\x6a\xea\x4b\x05\xab\x3b\xcb\x10\x93\xdf\ \x52\x29\xe5\xbf\x61\x42\x0a\xe3\x92\x86\x2a\x8d\x3a\xaf\x31\xdc\ \x99\x62\x51\x87\x61\xc9\x16\xbd\x7b\x70\x6b\x84\x5a\x44\x21\x5a\ \xb1\x4d\x2c\x43\x9a\x48\x4c\xeb\x4b\xab\xf7\x34\xf4\xd3\xbe\x1d\ \x42\x8e\x25\xb2\x2b\x5c\x7b\x5d\xe2\x93\xdf\x30\x81\x4a\xc5\x5b\ \x22\xa3\x70\xf3\xa0\xca\x66\xac\x31\x97\x48\xfb\x24\xa7\x63\xab\ \x84\x67\xc6\x2e\x6e\x69\x4d\x1b\x8c\x99\x3d\x4d\x75\x32\x44\x4c\ \x0a\x26\x20\x08\xb8\xc2\x12\x8b\xa2\xaa\xc4\xed\xb1\x83\xa5\x8d\ \xe0\xcd\xa0\x85\x88\xac\x29\x94\x60\xb9\x4a\x60\x5f\xca\xc4\x28\ \xc0\x56\x40\xd7\x36\x1e\xfa\x5a\x4a\x6b\x4c\x05\x0e\x09\x36\x1e\ \xb2\xf0\xb1\x8a\xb7\x5a\x86\xf5\xda\xd2\x28\xdb\x18\x33\x72\x04\ \x4f\xea\x8d\xdd\xd0\xdc\x62\xe9\x4d\x8d\x3b\x02\xd6\xd2\x9a\x7a\ \x1a\x83\x5a\x8a\xca\x66\xed\x50\x4b\xa1\xa5\x92\x22\xc0\xe3\x06\ \x3c\xa7\xfa\x33\x6d\xa0\xa0\xa3\xa7\xd5\x4e\xeb\xd0\xc3\x8a\xc8\ \x88\x18\x28\xff\x04\xe9\xfc\x0d\x56\x09\x56\x72\x72\xa6\x96\x99\ \x5a\x47\x7c\xde\x97\x92\xb9\x6b\x40\x95\x1d\x1e\x1e\xbd\x77\xf3\ \x97\x1b\xea\x73\x25\x23\x24\x06\x65\x62\xe7\x56\x57\x97\x3d\x72\ \xe4\xf8\x7d\xb7\x37\xeb\x18\x59\xf7\x37\x96\x84\x24\x96\x90\xd9\ \x10\x11\x03\xef\x48\x35\x3e\x6d\x7b\xac\xa4\x22\xc9\xb6\xa6\x76\ \x58\x5a\x4e\x6d\xdc\xbd\x76\x1c\xea\xe6\xc6\xe0\x47\xdf\x5f\x98\ \xcf\x9f\x84\xde\xc8\x07\xc3\xf7\xcf\x16\x5b\xfb\x1b\x57\xdf\x3c\ \x6f\x6c\x2c\x0c\xd0\x3d\x96\x92\x76\x3b\x24\x24\x74\x52\x86\x04\ \x89\xa2\x0a\x35\xd3\xb6\x19\xe1\xd7\xc8\xcc\x7f\xc0\x0e\xcb\x19\ \x87\x96\xb1\x36\x99\x40\xde\xbb\xa1\x25\x93\x69\xb3\xf7\x16\xc2\ \x1d\x62\xfd\xa9\x8c\x8e\xc7\x27\xa2\x30\x74\x97\xb9\x76\x1c\x22\ \x50\x86\x50\x67\x6f\xb8\x9c\x03\xf7\xed\x90\xbb\xb8\x62\xcd\x23\ \x3e\x64\xe5\xd4\x0c\x20\x91\x43\x18\x19\xc1\x4d\x31\xdf\x79\xb3\ \x7a\x90\xf4\x09\x86\x0a\xa8\xbd\x37\x9a\x26\x9d\x97\x15\xbe\x94\ \x9a\x3b\x3d\x33\x15\x5a\x8a\x8d\x2c\x33\xb5\x45\x48\x26\xa1\x6d\ \x8c\x25\x99\x91\xc2\x2a\x23\x13\xea\xa5\x68\xdf\xcc\xb7\x39\x92\ \x2c\x90\xf0\x3b\x2d\x25\x8e\x53\x9e\x06\xab\x2d\xf7\x58\x05\xb4\ \xe6\xd9\xb9\xbb\xa8\x2a\x56\x29\x63\x13\xc7\xee\xe4\xf7\x1e\x5e\ \xac\xa0\x37\x4c\x10\x8d\xfb\x60\x57\x10\x58\x2b\xa8\xc2\x8d\xcd\ \xfd\x88\xe4\x0a\x61\x62\x9b\x35\x12\x91\x10\x8e\x46\x02\x27\x4f\ \x27\xed\x34\x35\x5d\xe7\xf3\x5f\x9d\x0c\x49\x3c\x5a\x39\x19\xba\ \xe5\xe3\x53\xaa\xb6\xe2\x12\xca\xba\x04\x29\xfc\x4b\x7a\x4a\x3a\ \x29\x43\x63\x85\xe3\x69\xa9\x30\x8a\x8f\xfc\x34\xa3\x49\xcb\x50\ \x91\x4d\xd4\xd2\x0e\x79\x0e\x3a\x75\x73\x85\x72\x31\xc0\xa2\x42\ \x64\xd8\x0c\x11\x26\xff\xfc\xc9\x08\xc9\x45\x63\x66\x2d\x4d\xb2\ \x1d\x13\xa4\x34\xc2\x1a\xde\x62\x60\xc1\x53\x2f\x91\xba\xc6\xd6\ \xde\x75\x20\xdd\xa9\xb9\x4d\x32\x89\x90\x6a\x0c\xef\x6f\x20\xe3\ \x8f\xb9\x97\x1c\xeb\x88\xa0\x79\x11\x09\x9b\x48\xe2\xec\x8d\x6b\ \x57\x9b\x9d\x37\x9e\xc6\x92\xe7\x97\x84\xfe\xd2\x4b\xbe\x42\x32\ \x9a\x45\x22\xd3\xba\x40\x43\x71\xb4\xc0\xec\x3a\xf0\xb5\x29\xed\ \xef\xfd\xc3\x57\xfa\x20\x66\x6a\x76\xc6\xd7\x46\x44\xa1\x8c\x22\ \x69\x94\x95\x2c\x0f\xa4\x3c\xb4\x08\xd6\x5e\xe9\x12\x1e\xbe\xf4\ \xb6\x37\xc0\xb1\x16\x61\x28\xf1\x7c\x60\xe2\x50\xc7\x91\x36\x56\ \x1a\x24\x73\x12\xb9\x32\x02\xaa\x80\x80\x79\x29\xd3\x48\xd0\x1d\ \x98\xd1\x35\x3d\xe3\xcb\xfa\xba\x4c\xcb\xbc\x5c\x18\xe9\x40\x09\ \x66\xc5\x9d\xac\xf8\xa2\x45\xb8\xc3\x1d\xdf\x4a\x24\x97\x56\x20\ \xc2\xd6\x79\xd9\xa6\xc6\x6c\x2e\x23\x5a\x1b\x1a\x63\x5d\x8a\x97\ \x76\xe5\xf8\x72\x3b\x1b\xa8\x30\x52\xd9\x6c\x30\x7f\x6e\x0e\x66\ \x2f\x84\x68\x88\xd8\x1d\x8a\xc0\x12\xb4\xac\x0d\xc2\x4c\x46\x9e\ \x39\x1f\x3e\xf7\xd2\xe0\xf0\x68\x51\x91\x1f\xf5\xa5\xe8\x0a\xce\ \x7b\x3b\x4b\x9a\xe2\xaf\x6b\xda\x88\xb9\x8d\xc1\xdb\x27\x47\x2f\ \x8d\xc8\x7d\xc7\xff\x71\xad\x18\x29\xcf\x76\xdc\xe5\x7f\xa0\xe4\ \xb5\x42\x74\x6d\xbc\xf0\xf2\x5f\x2e\xb4\xcc\x09\x22\xdc\x85\x53\ \xf7\xf9\xcd\x39\x60\x09\x18\x9b\xbd\xa7\xf1\x6f\x96\x56\x2c\x5d\ \xd4\xd4\x75\xdb\xae\x57\xe7\xba\x0b\x35\xd6\x53\xfe\x4a\xcb\x46\ \x6d\xff\x9b\xa8\xd4\xc7\x18\x89\xbf\xce\x06\xb2\xeb\x56\xb1\xb3\ \x10\x5b\x64\x2e\xb0\x98\xf2\x61\x37\x36\x32\x2b\x6f\x5a\xbd\xfe\ \xc5\x77\x8c\xf7\xa9\x54\x99\xb1\xa6\xae\x2e\x60\x8c\xe8\x29\x3c\ \xcd\xcc\xdf\x97\x32\x91\xfe\x10\x94\x88\xff\xc2\xf7\xa5\xa9\xf7\ \x4c\x54\xf3\x7d\x69\x55\xdf\x26\x52\x1f\xff\x86\x82\xe8\x74\x71\ \xc6\x3f\xe5\xa6\xbb\xa7\x68\x26\x2a\xe8\x74\x95\xff\xed\xf0\x54\ \xd3\xfd\xef\x7f\xc9\xfe\x6f\xe7\xf8\x01\xc3\x58\x74\x3a\x3f\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x09\x85\x57\x87\ \x00\x63\ \x00\x61\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x05\x87\x5a\x67\ \x00\x62\ \x00\x6f\x00\x61\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0c\x98\x89\x87\ \x00\x68\ \x00\x6f\x00\x75\x00\x73\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x97\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x16\x6f\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/draggableicons/images/0000755000076500000240000000000012536324427024270 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/draganddrop/draggableicons/images/boat.png0000644000076500000240000000532412536324427025727 0ustar philstaff00000000000000‰PNG  IHDRK6ó¢ ›IDAThÞÝš PT×Ç/Fð(ñ­åÑVfÒÄN3GH4> K€Dƒ„Gë´U[ѱÔ©Ähf’ÎôŸM­²¼ADDy(¢Ž¯Æ”qHíoï‰w¶ Âîra’|óÍÎwÎùÎ÷ýÿ÷œ{νç®ô,ÿýáŠ44iž={Ưr)…!*8 aÕÕÕÕÝÝ­üvvvb_‚Aa84³ôEƒ&˜wÊ"تŽg(‚&GŽ~}Öó¼xxzyzÎ Öj~öYCs3£)˜+l^I`CÁðéÓ§ OùpÛ3³vÄg¦®ñ™ÿú$Iú™ƒ­íO^{Uõé§Í°íîVÆY-TCqŠ1\·>yeW[ý_Újÿ³L#ÙÕ;»0}ϨqáÒ0'I’ll¦Nº|ùòœœœöövµîÌÁCYŒáúÄÿìkúœæ‚¡a~ˤ—ò&þhç‡i˜§$9 îâì¼xñâ-[¶äææ>yòDµY:›„`¤ }gnKÉ'ÍºìØˆ€’ôŠ£ã4—EÍö½{K««;w ÆŠ* *=±r`lÚô[¦aüÊ%Mº¬F]ÖQK(†…k ”Œ–Yã-ä;=K••PÐKLLœ:uŠ·¯_dàü«EÙhD —¯¯Ÿ«‹sRRꮟƒËЄ^rr2Ãu£µuÃÆ_ù½yMÅ x½¥…&pÃùûÁЄÞúõë‡^VV†³&.xñœfý!ƒ"•4á€Ûà‘T“¡ ½uëÖÙÚÚVUU1 ÙÖãÖ&hÜ›ŠrP ŠTÒ„n8Ii––„„;;;Ð?~ü¸µµ•EcMÜ2Ã(E*iÂ7œé¢TqQUg MF/>>~äÈ‘à~ôèÑÍ›7oݺœvìûñš€9ºƒ"•4á€Ît¡£ê#)©>zqqq£Fñǯ_¿~ûöí7ntv>Y³öÝ÷†¢ƒ(E*iÂ7œéBGº«;’’ZôºäèØØØÑ£Gƒµ­­­¥¥E žÖ:n’ŠþO6¼ÐpˆÏÍ ð™UòÏQ Šâ.PåÃñ‡WÌROWÕ?( »×B1ÔbØëÃÉÿá7ÏEp;|ø°‡‡‡·O`à æ÷¼ù ç/ôYèí»`¡Ïo ktþï·ýüœ]_gÿËŸÿÅ H%MÖÅÌð TðP<ÅŒ5¥Œò‘#G¦M›ÎÌǰýÛ×îØþ»Ä÷RSB·¥„¥&‡¦&‡m³TS¶&…¤ÿfõîÍkvü* Å H%M–FK5¨ &%`À$P lÀw=ÿ¨ü•ƒÏw©Û¶9ŽsZä~áLƃº?7é6f7ësšô†#] óUø7ê² ³š±‹bPTš,  À `À$P lcý¬4Øœšø¾µh˜$%DԞͨËËÔM+9ž^vrwé‰]hÙ‰ÝC¦ßf<¹À <@UÌ̾V…¤r¼+ЧNýÃÉåÇS&ŒÙ¿#¡¹øÐùÓ{‹§—ŸÚƒ’Oƒ­J"R€À€'ø(‡È&+e/;¾RÃ%Ë ‡Ó¿ßºmØK¶sßp;ýyjcQNéÉ]Åò`– ò`ÊÁ CG:’’À &ä>þ©ÒÏ“·˜´âÞåüzÙò IŠ {«êôÇó2uGÓôÇÓKN~wñ‰]** ‹A ‘ޤ¤0#ÖE1--~òîõàPÌÜܼn¯Œ7*}sl}avÅ—,øâ#@ˆ_ýñ]dS‚( N ‘ޤ¤€rfΣdésƒá†îêJKße7b䬙®G?ÙLú¢c(üOÓKÓqÕ­ÖciQœ$"IÅß‹,zÞ²ì$ÊxÒÞ»w—÷tv!í ¯â“{ΟÍÈÿûÎs_|¤;–^x4 ŰH•^! KpRˆtfNËy'“–÷Ò×fþÂÁÞnë†HÑJOíÉýëÀ‡æým§0ÌQÅ™î! KpR(Ë»'ߟê÷\i)îËÈmïðªÛ´Ï37^8w B~ ¬:›Qi¶œÏì£#Ý B(V\Çü¯Ïú/3¢—2iù0¶ju 3jù¢ÙÛ7FnJ Ùœº%9ÌLÅ™.t¤;AE@ãiiõ·jI•—þè#ƒ8/òñy{î\OOO/y^fë<ºÐ‘îâ¿òÂÖ9ð×7¾ã›|Š AÅ?I*¾˜™¼‰v[(ª¿yÅ¿ ò?„ç¾áqÁÔIEND®B`‚PyQt-x11-gpl-4.11.4/examples/draganddrop/draggableicons/images/car.png0000644000076500000240000000562312536324427025551 0ustar philstaff00000000000000‰PNG  IHDRK6ó¢ ZIDATx^Ü“A E! ÄZy÷¿±ú‹B6ÿ¾Y qh»3Öaï]‰ƒŸä'øÂ•žD½w±±»óPV‰ƒŸä'øÂ•žD½w±/3 Ëz’ˆÓ+v•ˆKøßûøˆîŒèNÿ«;1e•8øI^q‚/LPéIäÑ{Ñ/3¼—MLTWÇË¼Ç Ì ˜ ÅQ«&,tÑÆš&)0jbcÒÄÆ…M›k“nªMdÇ‚´M£±]¸±‹îœÆúA PHM hÄ&¶ QD‚0ߟ@}'žyÌ … Þܼ9÷ÜsïùŸ{îÜJ½ü ÃÞÒé4©Ÿ% G…sg•É0K2??_%—€g‡ôJ*Mæéô š=3_÷o÷=: ÃH&““““E7¨×ãÉs:#©³.ÃÈŸ› †BÐöB¬[·®©©‰0Ñáph.¬øÆ§¡u5YÎr€£ººzbbâСC‘HŽ)_M¯×û˵k‰lÝJ\î<~üWqñgdzDmb~¿¿¬¬¬»»Û4M8x©×wjÚpð R©TEEÅöíÛºtÊA|yöì§›7Ï:•̘ÇôôéÓª÷ߟ{ø"bû¹–h”””Dc±t*¥¡FæŸpx£Û]ätŠ‘ÙgØ‚ò$YP¸å,³0@°ê>? ¾åñmA…0U ;§§§‰!àËöIS„6mú½«kýúõlˆ j¡©Լɉ‰UU ©TÓÁƒÑdRÞF 0›¦^M}KËOµµ•6p¯9³äç ,™äü<ùöy{;£â‘K å-£¥†2;H¼ë÷ÿ\_¿ÑëM]ôZ XWÄítžíîö½Û·ß,-U#3µTΞ˜·c×._*õm}} KÍÎr®“³³Ië+=žJq ßÞÑ“ È0A_H0E4èóºJ¦r:ÐR 9¨C)ªíLÆP lÀc†HYÊÔR©Â£££ïUW½oêêÆƒA šåÜ%"¶ú¶üû@5Ø€Ç ‘˜Éa¯BŸœ8ñÎÔÔ÷>ßx(d0ÆÂ—ÛtÃåí¼|õØ^`0„¡”sú´…à [¶pö2Ø ¤)‘ÛŠ‹JæL‰üÒbt|!Œ…ÿ- "ši|Pg#ɤ®ç(aÏ@(mšÌ:%]8¹™'³ÊPÉ ­ ºT‘£FŒâb-N™j VÛ å3V…™¡®¢‹ð¢¾×EöY]¢Ú•¯;Ûܤ0hJ«˜°æmÚmUÓìþ¦ÎÚ¼ÈÓ$ë…½ú–õ^G…î‹j,UØÄ¶e½¼>ÁX%:׸\¥O!Ï/Óô:м?¡G÷¥˜' Ù¶À4Q"Ô¡èçŽ(Sœÿÿòf<§Î“N“Ç€•ÐE.×­áá¯_oðû÷]½ê»|ùëÎÎGáðZÞ¥",«VÑDµPlû(<ÓÙ‰"Ô¡ôØmÃÃÀ0-HêwÍy ‘}Åb|&I`?„¬áýÿXkë÷ïo8r¤Ùï¿ØÞ~æÒ¥±;ö·¶žðº\äñ”«UÓ^“‘ã­S¶³DºM“¿Ž§óܽ{´µ¡E¨C)ª Àä[Àºì TW&† RéôÐÔT±õ°ޏÄa•ÙZZfÊËÿ¼xþü‡û÷×TT;|øæ•+¿Þ¼ùãøøwwï: chfÆàƒ)¥K3O+!]L§iYXøÛèh(¾00páÉ6GŠP‡RT€Rž\¼cQÀc†èëßño»f×Åñ&ÉŒ‰¾)o1‘8)‚»0¦xiÁ¤ BèÔ¬ªÎ`d2u“¬UJ@\d‚­+7ÚEÇ–¤BÄDM¨P’!B‰ˆi ©I'íôÇrsyêP]Mz¸‹óî=çþçÝ{߃s/š﾿¯ïÆêêÕ¹¹ƒ¥¥I2·n ¯÷›©©µŠŠ»““ËË)¨H„••ÏNœ˜ï_Xø¨¤ä\*5ùè‘Q\Œ»LŠþó ¹uÉ\Ò+-.þ1>“LÖß=~üÃø8à„£N#Ñ! ÈôNM}àóATÄÚ'‘¥„¼;å–jÏýÙYoII_MÍJ$òKcã|8ükSÓÃpxïηR)©9jìTèÿ:;iš—…p²®.ÿÖÚú"]‹F_Ð"‘ÕÖÖL<~®ºš†Â#ý2„‚1.8âÈ)ÓlŽÅ€œº@€þŸS©=EE÷šš UCò¤ ÒÑÎ-rÂäÐ;ó6ɵ¶¶'ÍÍë±Øà±cåÁ >î3 ÁBy0?oz½/ÛÚ®Ø6s~«¾>ÛÑ‘M$².ÐP²çÏg/^ì8|˜†Â£¢aŒ ޏ€À ¸ûäƒÁàuÛ†$¡*éAJ’ˆØïÐU’÷ff ð ã¿ÿsË zôx IÛï‡0´õôD*ïreee`` š“D"AÕT|q+s¨Û¨©›˜˜ D$4$œÊm£9Ìÿ¦‚XË6pˆÚ{Û{SAÖ¼›ºž^>7ò=?ÔÙ'"ŸYHè1¶ë>û“®D†ò??|n›´üs¯ ¤ðïþ>,üÛ—ÿûkÀ7±ŒIEND®B`‚PyQt-x11-gpl-4.11.4/examples/draganddrop/draggableicons/images/house.png0000644000076500000240000000633412536324427026127 0ustar philstaff00000000000000‰PNG  IHDRK6ó¢ £IDATx^ÝZÛ“UÅÕïî}ΙÌ07D./Æ8XÊؤ,5˜ eåB´´ eâÃ÷–¿ yÈ¢F Cˆ¦L‚1&±," ŠÒ’Tåt¸Iødà8ÃÜÁt³ÔÒÙI¯Ô3“9wîìCì‚…#Ê@ OIE|m%ˆÿ¨´ró«¥4ôÀh¢¦¦¦=Ï<Ùݽ@âD(áªSfÖðþuñâºõŸi¼ü½•c“¡”d.„q8hŒ ÛÑ`T²MØSn:§!»ûµ“0Ñ;ÇŽ\·h‘Y=Â’–¢ÿHÛUÁïƒUkÖ¯kÿõŸ'E²#:–¡Åf#dôÞV†ÐhÉ•J©~xàØ•¦}ãºE×>ÈéÍ>Ñ”MÐ\†a6›½øÁ€××>ùÜãùüxdŒrÚE`HŠ,CB`yXª¤×¶»åY‹R>ÿøÀW|°wu?€\tý À‚dE ËÌ2D‚¥÷Á…ó«Ö®_ß^Ø÷íMNBµRd7Ò6¡ä8Œ‘Yñj=´Ò²F«D¾´D¶47|}çÁ7†êNãú³$g”¡˜91¼ ç^ÿíá/w ä‡' ¦/‚Ñs[ I4åoX´Và< ÐV*?©d~xrߎoüì`ïšþÇß¼a1ƒœÞ,Kn£"vWH™àr^8w®wmÿÆŽhò£%Ø€´Ñ°-‘¦M!Cª"0 œ(üYˆÌÅ^ÔÖæÆíO¼ógϼNý‹‡7^Fx4+0íw¡‚³¦ô˜ø³®Äöe;d¡;Y#„©÷>¼ñ›»ß¼¦@.^²„AÎ"Z8xçΞåü\‡Ùó Á“ª,^ÅP¬Á¢”fJKpÀe"Žn‹•õÙE%‚œ|öÁí9Ô»¶Ôµ{ÉRßñT‹Ð—ÞÙ3¯ï®N¹{û&€'„bxÌ4ü8úWLÉ-©£g„dÆÞrHj¹gû¦‡÷ê] .Yš9C<¤äÙÁA€wwgðÌ×6\C×â;®¤Ê¥Œ‡b:TMUÉÓå<'k«Ô‰“±ê dÛœÆG~uø•c¹´§‡f›œ*úðß¿emß=™§Ø042TI<šÔw LzP¨YšGÖWÉ&H´í­ÙëÒKÞ÷Àˆ]€–~þÀ†GŸ?¼jííï?ÚÓ³ÌIrºxÈðÞ¤÷…ÎÜSÛî¼2:)¤õœ2”¿ùLk©!ËÐàÃm÷¤d¯Ê ’Òq'I#Úš¾õÂëü°x@.[îK’}iZzï¿wú–u}›;êŸÜzçÐð¼'x,;†XÆœŒo܆@$äÌ•VÇÊ/æ÷œ”³É¡áɧ¶nØñÛ×K’öâ‘—.üî[o®X¹’€0Bwb‚à½Ó§në»cÛ¦]_Ú04:NÒÓFCk¥RZJ²HÆmÁW2B"é&•$oW éƒAV,Ö%„$IHíÍMýþð —Æß>zdùŠ•§ìi¼¿Ÿ<Ù·q 7o¿ñ¦?ýí”´ªœÍf‚ W(j)Ùâ¢Ï°A̽dUæ³÷ñý¤íO–zzï%obër*Ž‹aYIŠí7öüóÿß^µzÝÑC¯}¶·@)¥$Ó^>Ÿß²eËààà¶#Ki-5 åGG/-^TÅZTü¬Ñ°£.®;-嘇•TÇvk)É2÷Æ2¥ä™@¿øqsóÂööÖ(Š $TÎk¬¿tåjOOÏþýû[[[ki¡X°0uuÚ‹NÐa÷'?}ö¿{è•ý«>¼\‚Êk"¶*mRyL†à²ªû%h¬¬Ã†‘Â8uwo9qßÖ=ßý΃t,Æq?X @P—Ë%ö¥¹l–†‡ csK¯e)Ër•ÖÐ78 Ñ_Ô'u<EÑAjâäçíZ¿Ý½+£ž6Œ ‡ôÔ%*®×h,“{[Õ ˜šs¥L¦fm}l4%¡ÆÈK‰K&ÐÐd2Bk·ðÜ®¥íLò¶4zšl2c.0T¶H'âJBv ôâj>¾gÛ`7ärJkRO/¸ÈdÔ¥K£»~еesËðH¬u—‰hRn‡‚¤áÆÜž™©Šñio„™¦¼re¯B;·b!2bî«޹£O³—KÞUe[[ë]wÝ?4ôV ÚµŽ;1(çt¬©",W´<`"N¸¯Äôio„%:5ÌTBP¥dggÛ‚ÖùZëô¥-9ª††:€Rîn­Õh(d”·é—¼{C¼tÆÖÆ1Ðã1­"23-ó±CZs^OÌð oLÏ$B[…‡YÎXRR fäZÛûrÁW¥dye´¹¬š?W)…¶çtµÆvˆØ—’¯@ÚTê30âpr•À¾”±kÑ2/øóËíxâBwW}ñ £¡ÂSJCm}à7ËÛZ3ÅXHÖRjUÓaÀƒíÜ«öSÒu¸o”‹nínñÿú®ŽTYŽÒ¿sÌfÔ•‘ÂWv)FÔKÓêBO]„Ä£Íäiˆ®2q_JÃÙ@-hÊé³"ø£Ð(¿»áÑjêK«;Ë“ßR)å¿aB ã’†*:¯1Ü™bQ‡aɽ{pk„ZD!Z±M,CšHLëK«÷4ôÓ¾BŽ%²+\{]â“ß0JÅ["£pó Êf¬1—Hû$§c«„gÆ.niMŒ™=Mu2DL & ¸Â‹¢ªÄí±ƒ¥àÍ …ˆ¬)”`¹J`_ÊÄ(ÀV@×6úZJkL 6²ð±Š·Z†õÚÒ(Û3rOêÝÐÜbéM;ÖÒšzƒZŠÊfíPK¡¥’"Àã<§ú3m  £§ÕNëÐÊȈ(ÿéü V Vrr¦–™ZG|Þ—’¹k@•½wó—ês%#$ebçVW—=räø}·7ëY÷7–„$–ÙïH5>m{¬¤"ɶ¦vXZNmܽvêæÆàGß_˜ÏŸ„ÞÈÃ÷Ï[ûWßdåÔ ‘CÁM1ßy³zô † ¨½7š&—¾”š;=3ZŠ,3µEH&¡mŒ%™‘Â*#ê¥hßÌ·9’,ð;-%ŽSž«-÷X´æÙ¹»¨*V)cÇîä÷^¬ 7Lû`WX+¨ÂÍýˆä ab›5‘ŽF'O'í45]çó_ I÷ÒàðhQ‘õ¥è Î{;Kšâ¯kÚˆ¹ÁÛ'G/È}Çÿq­)ÏvÜå äµBtm¼ðò_.´Ì "Ü…S÷ùÍ9` ›½§ño–V,]ÔÔuÛ®Wçº 5ÖSþJËFmÿ›¨Ôlj¿Î²ëV±³[d.°˜òa762+oZ½þÅwŒ÷©T™±¦®.`Œè)<ÍÌß—2‘þ”ˆÿÂ÷¥©÷LTó}iUß&Rÿ†‚ètqÆ?妻§h&*èt•ÿíðTÓýïÉþoçøÃXt:?IEND®B`‚PyQt-x11-gpl-4.11.4/examples/draganddrop/draggabletext/0000755000076500000240000000000012536324427022674 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/draganddrop/draggabletext/draggabletext.py0000755000076500000240000001247312536324427026075 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui try: import draggabletext_rc3 except ImportError: import draggabletext_rc2 class DragLabel(QtGui.QLabel): def __init__(self, text, parent): super(DragLabel, self).__init__(text, parent) self.setAutoFillBackground(True) self.setFrameShape(QtGui.QFrame.Panel) self.setFrameShadow(QtGui.QFrame.Raised) def mousePressEvent(self, event): hotSpot = event.pos() mimeData = QtCore.QMimeData() mimeData.setText(self.text()) mimeData.setData('application/x-hotspot', '%d %d' % (hotSpot.x(), hotSpot.y())) pixmap = QtGui.QPixmap(self.size()) self.render(pixmap) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setPixmap(pixmap) drag.setHotSpot(hotSpot) dropAction = drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction, QtCore.Qt.CopyAction) if dropAction == QtCore.Qt.MoveAction: self.close() self.update() class DragWidget(QtGui.QWidget): def __init__(self, parent=None): super(DragWidget, self).__init__(parent) dictionaryFile = QtCore.QFile(':/dictionary/words.txt') dictionaryFile.open(QtCore.QIODevice.ReadOnly) x = 5 y = 5 for word in QtCore.QTextStream(dictionaryFile).readAll().split(): wordLabel = DragLabel(word, self) wordLabel.move(x, y) wordLabel.show() x += wordLabel.width() + 2 if x >= 195: x = 5 y += wordLabel.height() + 2 newPalette = self.palette() newPalette.setColor(QtGui.QPalette.Window, QtCore.Qt.white) self.setPalette(newPalette) self.setAcceptDrops(True) self.setMinimumSize(400, max(200, y)) self.setWindowTitle("Draggable Text") def dragEnterEvent(self, event): if event.mimeData().hasText(): if event.source() in self.children(): event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: event.acceptProposedAction() else: event.ignore() def dropEvent(self, event): if event.mimeData().hasText(): mime = event.mimeData() pieces = mime.text().split() position = event.pos() hotSpot = QtCore.QPoint() hotSpotPos = mime.data('application/x-hotspot').split(' ') if len(hotSpotPos) == 2: hotSpot.setX(hotSpotPos[0].toInt()[0]) hotSpot.setY(hotSpotPos[1].toInt()[0]) for piece in pieces: newLabel = DragLabel(piece, self) newLabel.move(position - hotSpot) newLabel.show() position += QtCore.QPoint(newLabel.width(), 0) if event.source() in self.children(): event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: event.acceptProposedAction() else: event.ignore() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = DragWidget() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/draganddrop/draggabletext/draggabletext.qrc0000644000076500000240000000016112536324427026216 0ustar philstaff00000000000000 words.txt PyQt-x11-gpl-4.11.4/examples/draganddrop/draggabletext/draggabletext_rc2.py0000644000076500000240000000370512536324427026636 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:34:56 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x00\xf7\ \x51\ \x74\x0a\x51\x75\x61\x72\x74\x65\x72\x6c\x79\x0a\x69\x73\x0a\x61\ \x0a\x70\x61\x70\x65\x72\x0a\x62\x61\x73\x65\x64\x0a\x6e\x65\x77\ \x73\x6c\x65\x74\x74\x65\x72\x0a\x65\x78\x63\x6c\x75\x73\x69\x76\ \x65\x6c\x79\x0a\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x0a\x74\x6f\ \x0a\x51\x74\x0a\x63\x75\x73\x74\x6f\x6d\x65\x72\x73\x0a\x45\x76\ \x65\x72\x79\x0a\x71\x75\x61\x72\x74\x65\x72\x0a\x77\x65\x0a\x6d\ \x61\x69\x6c\x0a\x6f\x75\x74\x0a\x61\x6e\x0a\x69\x73\x73\x75\x65\ \x0a\x74\x68\x61\x74\x0a\x77\x65\x0a\x68\x6f\x70\x65\x0a\x77\x69\ \x6c\x6c\x0a\x62\x72\x69\x6e\x67\x0a\x61\x64\x64\x65\x64\x0a\x69\ \x6e\x73\x69\x67\x68\x74\x0a\x61\x6e\x64\x0a\x70\x6c\x65\x61\x73\ \x75\x72\x65\x0a\x74\x6f\x0a\x79\x6f\x75\x72\x0a\x51\x74\x0a\x70\ \x72\x6f\x67\x72\x61\x6d\x6d\x69\x6e\x67\x0a\x77\x69\x74\x68\x0a\ \x68\x69\x67\x68\x0a\x71\x75\x61\x6c\x69\x74\x79\x0a\x74\x65\x63\ \x68\x6e\x69\x63\x61\x6c\x0a\x61\x72\x74\x69\x63\x6c\x65\x73\x0a\ \x77\x72\x69\x74\x74\x65\x6e\x0a\x62\x79\x0a\x51\x74\x0a\x65\x78\ \x70\x65\x72\x74\x73\x0a\ " qt_resource_name = "\ \x00\x0a\ \x0b\x0b\x17\xd9\ \x00\x64\ \x00\x69\x00\x63\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x61\x00\x72\x00\x79\ \x00\x09\ \x08\xb6\xa7\x34\ \x00\x77\ \x00\x6f\x00\x72\x00\x64\x00\x73\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/draggabletext/draggabletext_rc3.py0000644000076500000240000000371012536324427026633 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:34:56 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x00\xf7\ \x51\ \x74\x0a\x51\x75\x61\x72\x74\x65\x72\x6c\x79\x0a\x69\x73\x0a\x61\ \x0a\x70\x61\x70\x65\x72\x0a\x62\x61\x73\x65\x64\x0a\x6e\x65\x77\ \x73\x6c\x65\x74\x74\x65\x72\x0a\x65\x78\x63\x6c\x75\x73\x69\x76\ \x65\x6c\x79\x0a\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x0a\x74\x6f\ \x0a\x51\x74\x0a\x63\x75\x73\x74\x6f\x6d\x65\x72\x73\x0a\x45\x76\ \x65\x72\x79\x0a\x71\x75\x61\x72\x74\x65\x72\x0a\x77\x65\x0a\x6d\ \x61\x69\x6c\x0a\x6f\x75\x74\x0a\x61\x6e\x0a\x69\x73\x73\x75\x65\ \x0a\x74\x68\x61\x74\x0a\x77\x65\x0a\x68\x6f\x70\x65\x0a\x77\x69\ \x6c\x6c\x0a\x62\x72\x69\x6e\x67\x0a\x61\x64\x64\x65\x64\x0a\x69\ \x6e\x73\x69\x67\x68\x74\x0a\x61\x6e\x64\x0a\x70\x6c\x65\x61\x73\ \x75\x72\x65\x0a\x74\x6f\x0a\x79\x6f\x75\x72\x0a\x51\x74\x0a\x70\ \x72\x6f\x67\x72\x61\x6d\x6d\x69\x6e\x67\x0a\x77\x69\x74\x68\x0a\ \x68\x69\x67\x68\x0a\x71\x75\x61\x6c\x69\x74\x79\x0a\x74\x65\x63\ \x68\x6e\x69\x63\x61\x6c\x0a\x61\x72\x74\x69\x63\x6c\x65\x73\x0a\ \x77\x72\x69\x74\x74\x65\x6e\x0a\x62\x79\x0a\x51\x74\x0a\x65\x78\ \x70\x65\x72\x74\x73\x0a\ " qt_resource_name = b"\ \x00\x0a\ \x0b\x0b\x17\xd9\ \x00\x64\ \x00\x69\x00\x63\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x61\x00\x72\x00\x79\ \x00\x09\ \x08\xb6\xa7\x34\ \x00\x77\ \x00\x6f\x00\x72\x00\x64\x00\x73\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/draggabletext/words.txt0000644000076500000240000000036712536324427024601 0ustar philstaff00000000000000Qt Quarterly is a paper based newsletter exclusively available to Qt customers Every quarter we mail out an issue that we hope will bring added insight and pleasure to your Qt programming with high quality technical articles written by Qt experts PyQt-x11-gpl-4.11.4/examples/draganddrop/dropsite.py0000755000076500000240000001504012536324427022265 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class DropArea(QtGui.QLabel): changed = QtCore.pyqtSignal(QtCore.QMimeData) def __init__(self, parent = None): super(DropArea, self).__init__(parent) self.setMinimumSize(200, 200) self.setFrameStyle(QtGui.QFrame.Sunken | QtGui.QFrame.StyledPanel) self.setAlignment(QtCore.Qt.AlignCenter) self.setAcceptDrops(True) self.setAutoFillBackground(True) self.clear() def dragEnterEvent(self, event): self.setText("") self.setBackgroundRole(QtGui.QPalette.Highlight) event.acceptProposedAction() self.changed.emit(event.mimeData()) def dragMoveEvent(self, event): event.acceptProposedAction() def dropEvent(self, event): mimeData = event.mimeData() if mimeData.hasImage(): self.setPixmap(QtGui.QPixmap(mimeData.imageData())) elif mimeData.hasHtml(): self.setText(mimeData.html()) self.setTextFormat(QtCore.Qt.RichText) elif mimeData.hasText(): self.setText(mimeData.text()) self.setTextFormat(QtCore.Qt.PlainText) elif mimeData.hasUrls(): self.setText("\n".join([url.path() for url in mimeData.urls()])) else: self.setText("Cannot display data") self.setBackgroundRole(QtGui.QPalette.Dark) event.acceptProposedAction() def dragLeaveEvent(self, event): self.clear() event.accept() def clear(self): self.setText("") self.setBackgroundRole(QtGui.QPalette.Dark) self.changed.emit(None) class DropSiteWindow(QtGui.QWidget): def __init__(self): super(DropSiteWindow, self).__init__() self.abstractLabel = QtGui.QLabel( "This example accepts drags from other applications and " "displays the MIME types provided by the drag object.") self.abstractLabel.setWordWrap(True) self.abstractLabel.adjustSize() self.dropArea = DropArea() self.dropArea.changed.connect(self.updateFormatsTable) self.formatsTable = QtGui.QTableWidget() self.formatsTable.setColumnCount(2) self.formatsTable.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.formatsTable.setHorizontalHeaderLabels(["Format", "Content"]) self.formatsTable.horizontalHeader().setStretchLastSection(True) self.clearButton = QtGui.QPushButton("Clear") self.quitButton = QtGui.QPushButton("Quit") self.buttonBox = QtGui.QDialogButtonBox() self.buttonBox.addButton(self.clearButton, QtGui.QDialogButtonBox.ActionRole) self.buttonBox.addButton(self.quitButton, QtGui.QDialogButtonBox.RejectRole) self.quitButton.pressed.connect(self.close) self.clearButton.pressed.connect(self.dropArea.clear) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.abstractLabel) mainLayout.addWidget(self.dropArea) mainLayout.addWidget(self.formatsTable) mainLayout.addWidget(self.buttonBox) self.setLayout(mainLayout) self.setWindowTitle("Drop Site") self.setMinimumSize(350, 500) def updateFormatsTable(self, mimeData=None): self.formatsTable.setRowCount(0) if mimeData is None: return for format in mimeData.formats(): formatItem = QtGui.QTableWidgetItem(format) formatItem.setFlags(QtCore.Qt.ItemIsEnabled) formatItem.setTextAlignment(QtCore.Qt.AlignTop | QtCore.Qt.AlignLeft) if format == 'text/plain': text = mimeData.text().strip() elif format == 'text/html': text = mimeData.html().strip() elif format == 'text/uri-list': text = " ".join([url.toString() for url in mimeData.urls()]) else: text = " ".join(["%02X" % ord(datum) for datum in mimeData.data(format)]) row = self.formatsTable.rowCount() self.formatsTable.insertRow(row) self.formatsTable.setItem(row, 0, QtGui.QTableWidgetItem(format)) self.formatsTable.setItem(row, 1, QtGui.QTableWidgetItem(text)) self.formatsTable.resizeColumnToContents(0) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = DropSiteWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/draganddrop/fridgemagnets/0000755000076500000240000000000012536324427022676 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/draganddrop/fridgemagnets/fridgemagnets.py0000755000076500000240000001545512536324427026104 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui try: import fridgemagnets_rc3 except ImportError: import fridgemagnets_rc2 class DragLabel(QtGui.QLabel): def __init__(self, text, parent): super(DragLabel, self).__init__(parent) metric = QtGui.QFontMetrics(self.font()) size = metric.size(QtCore.Qt.TextSingleLine, text) image = QtGui.QImage(size.width() + 12, size.height() + 12, QtGui.QImage.Format_ARGB32_Premultiplied) image.fill(QtGui.qRgba(0, 0, 0, 0)) font = QtGui.QFont() font.setStyleStrategy(QtGui.QFont.ForceOutline) painter = QtGui.QPainter() painter.begin(image) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setBrush(QtCore.Qt.white) painter.drawRoundedRect(QtCore.QRectF(0.5, 0.5, image.width()-1, image.height()-1), 25, 25, QtCore.Qt.RelativeSize) painter.setFont(font) painter.setBrush(QtCore.Qt.black) painter.drawText(QtCore.QRect(QtCore.QPoint(6, 6), size), QtCore.Qt.AlignCenter, text) painter.end() self.setPixmap(QtGui.QPixmap.fromImage(image)) self.labelText = text def mousePressEvent(self, event): itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) dataStream << QtCore.QByteArray(self.labelText) << QtCore.QPoint(event.pos() - self.rect().topLeft()) mimeData = QtCore.QMimeData() mimeData.setData('application/x-fridgemagnet', itemData) mimeData.setText(self.labelText) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - self.rect().topLeft()) drag.setPixmap(self.pixmap()) self.hide() if drag.exec_(QtCore.Qt.MoveAction | QtCore.Qt.CopyAction, QtCore.Qt.CopyAction) == QtCore.Qt.MoveAction: self.close() else: self.show() class DragWidget(QtGui.QWidget): def __init__(self, parent=None): super(DragWidget, self).__init__(parent) dictionaryFile = QtCore.QFile(':/dictionary/words.txt') dictionaryFile.open(QtCore.QFile.ReadOnly) x = 5 y = 5 for word in QtCore.QTextStream(dictionaryFile).readAll().split(): wordLabel = DragLabel(word, self) wordLabel.move(x, y) wordLabel.show() x += wordLabel.width() + 2 if x >= 245: x = 5 y += wordLabel.height() + 2 newPalette = self.palette() newPalette.setColor(QtGui.QPalette.Window, QtCore.Qt.white) self.setPalette(newPalette) self.setMinimumSize(400, max(200, y)) self.setWindowTitle("Fridge Magnets") self.setAcceptDrops(True) def dragEnterEvent(self, event): if event.mimeData().hasFormat('application/x-fridgemagnet'): if event.source() in self.children(): event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: event.acceptProposedAction() elif event.mimeData().hasText(): event.acceptProposedAction() else: event.ignore() dragMoveEvent = dragEnterEvent def dropEvent(self, event): if event.mimeData().hasFormat('application/x-fridgemagnet'): mime = event.mimeData() itemData = mime.data('application/x-fridgemagnet') dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.ReadOnly) text = QtCore.QByteArray() offset = QtCore.QPoint() dataStream >> text >> offset try: # Python v3. text = str(text, encoding='latin1') except TypeError: # Python v2. text = str(text) newLabel = DragLabel(text, self) newLabel.move(event.pos() - offset) newLabel.show() if event.source() in self.children(): event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: event.acceptProposedAction() elif event.mimeData().hasText(): pieces = event.mimeData().text().split() position = event.pos() for piece in pieces: newLabel = DragLabel(piece, self) newLabel.move(position) newLabel.show() position += QtCore.QPoint(newLabel.width(), 0) event.acceptProposedAction() else: event.ignore() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = DragWidget() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/draganddrop/fridgemagnets/fridgemagnets.qrc0000644000076500000240000000016112536324427026222 0ustar philstaff00000000000000 words.txt PyQt-x11-gpl-4.11.4/examples/draganddrop/fridgemagnets/fridgemagnets_rc2.py0000644000076500000240000000410512536324427026635 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:35:33 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x01\x16\ \x43\ \x6f\x6c\x6f\x72\x6c\x65\x73\x73\x0a\x67\x72\x65\x65\x6e\x0a\x69\ \x64\x65\x61\x73\x0a\x73\x6c\x65\x65\x70\x0a\x66\x75\x72\x69\x6f\ \x75\x73\x6c\x79\x0a\x41\x0a\x63\x6f\x6c\x6f\x72\x6c\x65\x73\x73\ \x0a\x67\x72\x65\x65\x6e\x0a\x69\x64\x65\x61\x0a\x69\x73\x0a\x61\ \x0a\x6e\x65\x77\x0a\x75\x6e\x74\x72\x69\x65\x64\x0a\x69\x64\x65\ \x61\x0a\x74\x68\x61\x74\x0a\x69\x73\x0a\x77\x69\x74\x68\x6f\x75\ \x74\x0a\x76\x69\x76\x69\x64\x6e\x65\x73\x73\x0a\x64\x75\x6c\x6c\ \x0a\x61\x6e\x64\x0a\x75\x6e\x65\x78\x63\x69\x74\x69\x6e\x67\x0a\ \x54\x6f\x0a\x73\x6c\x65\x65\x70\x0a\x66\x75\x72\x69\x6f\x75\x73\ \x6c\x79\x0a\x6d\x61\x79\x0a\x73\x65\x65\x6d\x0a\x61\x0a\x70\x75\ \x7a\x7a\x6c\x69\x6e\x67\x0a\x74\x75\x72\x6e\x0a\x6f\x66\x0a\x70\ \x68\x72\x61\x73\x65\x0a\x62\x75\x74\x0a\x74\x68\x65\x0a\x6d\x69\ \x6e\x64\x0a\x69\x6e\x0a\x73\x6c\x65\x65\x70\x0a\x6f\x66\x74\x65\ \x6e\x0a\x69\x6e\x64\x65\x65\x64\x0a\x6d\x6f\x76\x65\x73\x0a\x66\ \x75\x72\x69\x6f\x75\x73\x6c\x79\x0a\x77\x69\x74\x68\x0a\x69\x64\ \x65\x61\x73\x0a\x61\x6e\x64\x0a\x69\x6d\x61\x67\x65\x73\x0a\x66\ \x6c\x69\x63\x6b\x65\x72\x69\x6e\x67\x0a\x69\x6e\x0a\x61\x6e\x64\ \x0a\x6f\x75\x74\x0a\ " qt_resource_name = "\ \x00\x0a\ \x0b\x0b\x17\xd9\ \x00\x64\ \x00\x69\x00\x63\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x61\x00\x72\x00\x79\ \x00\x09\ \x08\xb6\xa7\x34\ \x00\x77\ \x00\x6f\x00\x72\x00\x64\x00\x73\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/fridgemagnets/fridgemagnets_rc3.py0000644000076500000240000000411012536324427026632 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:35:33 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x01\x16\ \x43\ \x6f\x6c\x6f\x72\x6c\x65\x73\x73\x0a\x67\x72\x65\x65\x6e\x0a\x69\ \x64\x65\x61\x73\x0a\x73\x6c\x65\x65\x70\x0a\x66\x75\x72\x69\x6f\ \x75\x73\x6c\x79\x0a\x41\x0a\x63\x6f\x6c\x6f\x72\x6c\x65\x73\x73\ \x0a\x67\x72\x65\x65\x6e\x0a\x69\x64\x65\x61\x0a\x69\x73\x0a\x61\ \x0a\x6e\x65\x77\x0a\x75\x6e\x74\x72\x69\x65\x64\x0a\x69\x64\x65\ \x61\x0a\x74\x68\x61\x74\x0a\x69\x73\x0a\x77\x69\x74\x68\x6f\x75\ \x74\x0a\x76\x69\x76\x69\x64\x6e\x65\x73\x73\x0a\x64\x75\x6c\x6c\ \x0a\x61\x6e\x64\x0a\x75\x6e\x65\x78\x63\x69\x74\x69\x6e\x67\x0a\ \x54\x6f\x0a\x73\x6c\x65\x65\x70\x0a\x66\x75\x72\x69\x6f\x75\x73\ \x6c\x79\x0a\x6d\x61\x79\x0a\x73\x65\x65\x6d\x0a\x61\x0a\x70\x75\ \x7a\x7a\x6c\x69\x6e\x67\x0a\x74\x75\x72\x6e\x0a\x6f\x66\x0a\x70\ \x68\x72\x61\x73\x65\x0a\x62\x75\x74\x0a\x74\x68\x65\x0a\x6d\x69\ \x6e\x64\x0a\x69\x6e\x0a\x73\x6c\x65\x65\x70\x0a\x6f\x66\x74\x65\ \x6e\x0a\x69\x6e\x64\x65\x65\x64\x0a\x6d\x6f\x76\x65\x73\x0a\x66\ \x75\x72\x69\x6f\x75\x73\x6c\x79\x0a\x77\x69\x74\x68\x0a\x69\x64\ \x65\x61\x73\x0a\x61\x6e\x64\x0a\x69\x6d\x61\x67\x65\x73\x0a\x66\ \x6c\x69\x63\x6b\x65\x72\x69\x6e\x67\x0a\x69\x6e\x0a\x61\x6e\x64\ \x0a\x6f\x75\x74\x0a\ " qt_resource_name = b"\ \x00\x0a\ \x0b\x0b\x17\xd9\ \x00\x64\ \x00\x69\x00\x63\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x61\x00\x72\x00\x79\ \x00\x09\ \x08\xb6\xa7\x34\ \x00\x77\ \x00\x6f\x00\x72\x00\x64\x00\x73\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/fridgemagnets/words.txt0000644000076500000240000000042612536324427024577 0ustar philstaff00000000000000Colorless green ideas sleep furiously A colorless green idea is a new untried idea that is without vividness dull and unexciting To sleep furiously may seem a puzzling turn of phrase but the mind in sleep often indeed moves furiously with ideas and images flickering in and out PyQt-x11-gpl-4.11.4/examples/draganddrop/puzzle/0000755000076500000240000000000012536324427021410 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/draganddrop/puzzle/example.jpg0000644000076500000240000012323612536324427023554 0ustar philstaff00000000000000ÿØÿàJFIFHHÿáExifMM*ÿÛC  !"$"$ÿÛCÿÀ¨¨"ÿÄ ÿÄT !1"AQaq2‘#B¡±3RbÁÑð$47Ccrtu‚’³´áñ6Ss”¢²%“ Dƒ£ÂÒâÿÄÿÄ5!1A"Qaq¡ð2‘ÁÑá#±ñBRbc$ÿÚ ?ìº(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ +-)îi3óÙhr±PÚ[€®Šb¨âENçBî¥?2Ëê6ŸýeêÜ“œcí8þ4§ˆ¦¹ö&ôU|z§¥‡}Alþpšß©ZnI jûlR‰ÆÑ%þt{D 'TS4[ìgÒIAÈ?/fk.vX«Æ¤g³"âª+­*ìk*¹!EPEPEPEPEPEPEPEPEs†²ë¨¸õ6ï§4Ķí6»ª!ï½!䨥CÎ Rœ…p3žFÅê~²e{œ¸5 eÈÈÿ´\¼OKáðõ8r½ûŒ2é JMjt%KAëÙûm¢ÿü¥©¿çºŸ õŠÊàe²{þ,¥À?ˆþU4úc?ó·ËÇF\Ë.ЉAê>—€.Á…Ýy¥£øãÆ¥1ÞjDvä0â]eÔ¡i9 IlVêUéU÷$Ÿƒ4F¤'î»›(¢Šip¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢‚@¤²¥!¤’To[‰HäÓeÆï+jRÜJBFI'T¨½J´i˜«T™).ØW?µrþ¼ê†¡ÖKZ#Èû%´(‚½Ûÿ±¬µq +A´¨N«Óbü×ýsÓ:}·R%‰'#Ãa\gþWùW=k?Ò;V]^r=…±£<$î_çÉþUýY NøÓœ/©GqyÂJJ}Ђ¯ÇíÎl}0íøéQHRŠ› Ç >ÞüÖGZúÚþ'B8Grr½uøã’%IœB¹%ÅyúóL2àêIrD…¸9PÝŒU¡s-Ì”á—6DÅ’0–µ”( `¨wüh• µ¡–[`xŽx~2Ò; »¼¹øÂªcŠ×„‹\ýy"¢_Ò²‚·÷à+8­N‹Ë.Kq²9óVË\±Å8Û¥¦ˆ#ík(*ú%8¡÷$ÊHR£Ú›q ÉñkyüIÍi…w>fZ˜eq^˜ê>±ÓR¶ë̦¶ŽR—Ôv5sh_Ò–ëHgQÃD”¯"þ§ÐþUΫD§?uŃè@àüZ<(” ”œ)%8P>Æ™(B{™{¤})êîžÖ‘<[]Å+q#ÏÓµÔ~£äU£æÄ„«òbÓ2éj}3m;ÖÕÈYII5{ô·ô•¾Y\jߪ[Tøã?œ:‘õìΡg†Ú¯2Ž lwúV85•Uý8êuƒVÄCÖ›‹R8Ê›'#êžõbŘ۩(ÓaQOb‚º+ĨÕí\¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ˆ¡¿'Q?é©?ø‡jg¢¬—-e«\°ÚVÔv¡´—®3]AZXJ³± H#rÕ‚FHyíPÈ_ïÉÔ_újOþ!Ú¾¿E8[Q\ÖÛÌ¿>‚²9-´”!#è0¯ÌטŽž‘š¨®—àó˜jJ­l¯mO ô;·w4´=Q'úBÛ%ß â“¸qŸ(H ŒóUÅÎÕ:ݬàiY btË‚!¤ƒ”¤(xŸ) ¨DÉ êþ–» «íj ÒÕŸÜx-+ˆ5n_WÁý"´ø‘lnc÷k[¢3ë_û‰Èá§’T´8H#„Žõ4°Xll#R1Ë­š\Ñ¡S§]]+YÛàTú–ÒíŽù*Ôó¨uqÔV€@9ÿt†ŠÿÜÛ'ýþí5Nõ–ço‘¨%[š³5dw’\š—2§ÆÎÅ8î=Oj¸´WþæÙ?èøÿ÷i«ôM(ÒÅÕ„Òûì? ÓŠ袊ôgP(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+¨$Pµ„ŒÓ ½G·Äu÷ÞKm¶’¥©G zšI]€¢ïuf*[Ž%!#$“€sïXzçÔӬΙ2Ôv%Hä§ùÕgמ¶½z}û=…å&0%%@à¸}ÏÇÇç\ÿ&âì¥øM-KZÁºO'ñô¿JÇRr“±²Ž{Õ>Dšó¨¯Úšö¥¼£1â²PÒ•–Ò=IôÀõ9¥¶¶ÜrK^ÎCjðüWû•ý†›ø|œj+ky ?fŽNÁÊÔ@^=Èùöü9æŸXšµ%!•ã²Hqô€ «MŽÀzŸOUkHë©Õ¤ô´Gù ¶Ã˜‘!r\;œwhò¤u½ôsÚš§ÜÒ…ܿŷ0¬©M¯—ãÈO {1ñOš[§Úã_¥Ûcu óöù -¥Ìq”æW×㌠·´o@t•­œÞEâj€R䤟zêÛ^š¶[ã°b°Ë !-¥9ø$ ^Íž2T” åá?AÚ¬¤ÿÅ[ÌS©ò×Ézøœÿ±ÝJ”‡\˜êÉ^IYDz’sÁÇ¿©Þ–ê£5KÈD„ŒP<0¼z«ääŽ{â»Em.§€"¼\( ªm£žÙ‘¢õ?ØZéüœ‡£wéJSm†üPwí£'‘ßÞ›µL/Ñæ»T4ø!J%\(c?À×e}‘¶PRÞÜ|Ô–e¾ß)Y“6’G|Õ3Ô_äK©NZ8èp”½32$w·6µ-’ŸN2>yíL-Ž$©!¢6ò°psë]ésÑö)¹XކÜÁ󄌂}sQ{×ItýÂ!oà Ÿí6~¿ë½28Ê‘Ý\T°ô'³hã]1}½é©­ÜíSŒëjà¡D]AÑÿÒYÉOǴꆛiÕ”ÊO”(ÿxvü±P Ñ[­—µ„½‚¯ä¯ã8ªfãmµJjS*e{°ž1ÛæµÆ´+­7ó1UÂ8jõ]§Ôý-¨cÜã!hq*Ü20sš’¶­Â¹ôVÖ.K°C‡)õ, @žàv?•umª@u”œç"Ÿ†¨ç¥º0´âÜX¾Š(§€QEQEQEQEQEÄP¿ß“¨¿ôÔŸüCµ}þŠr·éAjý¬MA$í>ˆq(q'ñÜ#T$/÷äê/ý5'ÿíMô£—¡ut›Ûœ›m¸2–îqPŒìu¼àH)$dùæiâ¡C¤§Ù?ÁçpµU*ùžÚ‰Ìw“Õ+9ñ‘©[*O÷[ÞUùb­]fúúLèã›¶Ü®´ßÿóNp¡hy…Ž°Û¡Kœâ¢©ØÞ>]þU¨7À <…Øfªkž¢¸¿ÔØ:å BfAua1œÉB™Z<57žàíÆî3ƒÚŸ”ú60¥Qîïð4醊MÞí?€¿ªÿï…vÿæ'ÿÁ5|è¯ýͲÑñÿîÓTFºÕíJ´ÉcNÆ·ÍZ’¹BÂÜs ÀNí íáÚ¯}ÿ¹¶Oú>?ýÚi}á,]YBWO_›ƒqu¦âî˜ïEW£:EPEPEPEPEPEPX¸ ‘šÈœ Ó]ÞbXiDšC©oq­^“%ô2ÓH*ZÔp­pï_úÕ7S\Ý´ÙÞ[vÖ×´ÿZ}Ï¿øT‹ô»ê{ÏËþ‰Zeˆ9˜¤ÞþÉøÌüW-8á^HY(ïžê?åJmËQ”Ò]f.%Nº´©ÎÿÖc“ô¤eâñØïVq‘ò}¿'*[žDySëJíÑ_˜ûPá²ã®º°”¡ Ü¥«éQ•A]R•YYzî`¸†˜SIqa£€ „ùÝ>€{{]Ñ~ŒIuµµŽ”$%*…hq>T'ºK£øìüM;ô£´Äx·ÝG2ïe!ÆX õÇï/äöô«±[Î嬨ä“ë\ºµTÞ›ˆ^”r­ÿƒØí'i8Ç H`=¥qØ ã—àà Ö)B6opa¿ãKY\‚­ 2ŸãUŠ&*bŠ|éCiþ5ꛂŽàQ­haÇUæZ–G¹í[[€ÉÁûÓ’ìBvݘ BÇ+ðÍju‹zÿáÎñ§ã6Œ'Ç|÷¬„frAŒT¸¶‚ãB™†ÜûóZ]m¢ѺžÜ‹a>QŽ{ÒeGaíRGãK”K) Ëe¬¦ŸB8¤«Ž‚½¬­HW8 âŸÖÃ}‚ÂI瓚E.9Ør yÆ)r€Å!–CD ¶êv¨ŒŽª»«=5µjH¸ÓI‹=) ¥[*Rš² ÛþÊ?¤èuNG;Oª~ !èô›[ÁÑ·¥õ“¶{’Œy(! ©G td‘ø×l苈“£»œs\§×(¹Pw„‰q2IG|Æ}ñÍM¿EΠ¿}´ˆ—'ó:.á=Ö=],5Hï۹ÉÅÓ´³L…e5•"·È´9È¥µÒ3Q@Q@Q@Q@Q@Kµ·Ön¢%Ä)Þd( p_tƒø‚ãR*é{¾ˆÒ·kÚ¯W +\ÚZ[Û”’´§;B€ +îsǺž±AÇØìð#÷’Âw~xÍyÌ_BÔÄW•LÉ&qÿL›“ëhP-¼ê½- vÍ? ë­n­Öâ.2Ü )D•Ôœ’£œŒ“Œf· ¬ïßš«*˜2S‹ñ–ÂJ‰'…ãšè|QZ_Cñ"£Z«’^ îhXâ£96‘JYúAwrCjºÏˆÃIJ¢·1ê@üóWÿ(3džÂ¸côÃÖK™~jÆÂÎØƒ+à­\ÿŠ]W´IŒsJÌ¡¯÷îWß}Õ-n(­å©Y*$çÕˇ¾ÔZÏb¨ûš_h´Mº]"ÛØl‡RR9JTG›C𛍫²îóz­0$Üç5 y甆Ð9Q®»è/L-ÚF wk“-ɾ8Œî#rc;'çæ«~”idÛ.iðÚX%âÊ%HÉÏ÷±É™Åt½)m A (vÓæ¸ø¬C©S"Ù¼=,ßäüé{~oÞ#r³ïJÛÜ£¸Ž}µh'ÝØžõ¥1°R7wìqTH«b–“€ ³øsJÙQ$€3ÜÖ⌓ŒX?qƒÈã©+$g·Ö˜¢)ß°qh©YÅvç·8”ð·0=ÕLɽÆCIwzXJòV¤§wÓ>Ÿ5›wHOc¸GwqÁ(>Ü~•tC„»-G•’k,+’GãZTµµ) )ôù­˜ã¸>ø©Ô‹›J¹Ãæ«ûÇZ4UºwØî3®ƒÍ«-œwç±?LÒe$˜ØÓ”¶DùõåqüŠoy;£ò=é¶&µ²NKe¹ ©.c mÀâN{d§±úÓ©SKHR0¡À¾Ô§il]ÆQÝ wÈ-ÊŠâ@)Zp}ù®lLù=.êK®­ 0^{z¶v)'ŸÇºðRèAû§<Õ×Û+ReÆuMxŠ(sŸ»Ç¯"™N¦Mö* ­âΤÐ7è÷+s2ò\mÄ¡`ð¤‘jrÊ·$W$~‹Z­ßÔâÃ5dI¶¯Áñ½²r“á]Qha$Jìáæå=ѳ‹qc•QN$(¢Š(¢Š(­Rä±3’dº–™lekQà ¬u–»¾9oyë#H¶C"d„n[Ÿ)Ià~9«Ó§*ŽÈUZѤ¯"Ó¢¹×OYv.J›¬/Á° ËRÔÐ? 1M79Ú¡‰kB5V¤ðÒx?¬œÉiö)ö™=½©ÔW4éÙ÷©—†X‘¬5Y*Á?¬\çßؚ֮y*ˆ‡£Ô rLÜÿ….®TÒlu,W´‘)¢ª‹ƒSD÷<-I}Ki8À˜ª~ÒöI’b—äêꂾîfñ3ÃJÌÙXbóË*D技jˆ—Ýöô” wûYÿ*®ž»^þÒBu%äöÕãùÕ¡ƒœ•È–61v±Ð”Ua¥Þ—.3k~÷vR‡ ÿj<þu,›hqP‹¬Þ.Á[r1+ÿ*\ðòƒIó/ Jšm-‰Yæâ‡ Uyº§Ÿö¥v©m¶Ú!‡ÒãœsþÑÿ•M\4©«°¥ŠU’誣SÝ'1pZb].ICg2T?•7E»]^ ®õqGÇÚWÏñ¦,ÚñÑOb被XóäH‹á¦ï<:rú»þt§JÜ›ƒŒÉŸ,´“Á/¨ÿ:‰`åvÉŽ22vH°h¤)…µ$ªd³óâšM8!¨î-¤ÛŬñƒ“²4ÊyUØïEBݹ¼Ã"åÈ#üCM’o·B?dó €K‡üëO±LÍí°ì,zÅÄP+Uús‹ðßyÍÞ‡yÿ:XýåöšYq×1Ž<Æb™+'×’ÔÜE„žOók«×sz××i{÷!IJ» ã?ʺ÷¯šåÛV‘¹KL…%ß ²ÈÜr\_×Ðdþ KÛ½¨€IÈϨ?5Ž­,•lÓB§6ŒR!Å$+aÂ{îja¡®,ZE»™=µ+*K¾­§ƒœð=“óQ4¶Ëî¡ô2”޹‘ÿ:ÉiXm~e„í;‰ôÀÇriSŽecM9ä•΃é¸ÔÛõÂZ!Z­Šn4rò‚@QȼHÎqîjıõ‹¦qb©RõŒd:´lŒò¼¸øOÖ¹ó©Z}ûIíLȈb¾.)S¬÷SAM(¤,ÿhá\zWHi)¦btkNj½(ÑÓß~ÕŽ6Œ\Z°’µsÉäýk›C N½ê§¥ß‘՝Д§eËÌÍ]yé HIÕÎ=E¶Aÿü+yëÿHiE­Xµ«õt€N>¨¥kÓ75F/Úô'MYi •<4ãMGN?ã\àþ†—ÐÚŸS;#h誛ŠR™(‰ajbš*ä„§<ÄÓaJ“÷[~¼ÊSJò²!Óúõ¦îa_e¼FŒŽK-©E vÜHÀÏãPÍMÖìÄj¯ìòd-²âfVRÚ`UÎO®3ùWLµÐ-,üOÿTµi)/žê¦Xa9ú$çøÔ#Xþ½=[n—cÛ­ÎðâaHa¼ü¼¤çð¡a#{ÊþE½¾Ë,-ð¿ÔåèSµêC’%Ýæ¼óÊ *[™ó„þ5%Ò6ºVµéççµ! S®4BÞJxV{ýG ÷6—ú99n|HÒº¹´8Ÿ0L[¸m`ü%ħ?ö«(íõB8]š!ßÛS›Û8%.îÛì’w{’>*³„oÕ’þ tqm%x¶þ’æèû×5ØvÈšô¦Ò”­’øÂÛ¼ =ûv÷Áõ©ô7pò Àùª?Dõ·J91¶ur¿dóÒq"…YP<ŠÏ>dŽÃ5zé²Ì¶6ü£Mˆ´å§âº—Z#áI$¼i¸¤™’µE)9ÛYÎÑȃí^8HŽ¢‘ÂGb)|¸®‚ “Ç$rÀ¦¼¶í0_™s•V¼Ï?-Ô´ÚG®T£UšH\zÅ+ÖH³îW“…¸Ôynb[ÉW™-€0óïõª¦ó¦¢ÛRãQ ‚†ÃiñÈT•û {“Ž1ë“VN²ëf–ýdä ¦®æä®¦[SQs“’ž Üú€ÍVÚšG\uZ˲ ÄÓ±TBD;{hC‰Çlò§çÔ¥'„ã«ixâ"â¢à߯‘MÖ~•»®e†j­«%GìÎ…-—’Hò©8À>¹øâ¬­Öpc¨Ê— Y)!—ß‚½R ûÈùïþ0áÑM[1Ã"å2*QÊ—6~åçä$M×n™Â´ƒöý[§™P$cÁ±Ç±æ¯%†¨¬å¯pˆûLdòÂñìz3«]=Ÿ?«­1_HÆÞ{8ô Ô'ª:ÛDL™Ëv§´ÏWçKnçË‚9lüÕÞšˆæ…Ò³ÊÕµå4¿¦H¥ô[±Tò¢0éNv<ÒÛè¼þ9«ÇNoÞfhœuÑ_Ç™/éî©fÁÔ†rs3ùaçŸ x‘ЗWµ[°‚BB›ˆˆ«ôivg_Ȇ‹¼øÑÕŬ2ú“œãøÖ§ÁçƒÐæâa8§7ÈúNÃis[jœÓ‘åIŒŒê[ø?ùTÚž[ÑÒâµ¢Î9Äß_Ê·Ê‹ŒT»LñëKõçQêeh«\ék´ÛRV•¾¥—¸•£ýåqŽIø® ýôl=-¦î¢<Ç%}½Öœt«Ü”‘ÁDZ=¾j§èƆ\{ÅÒçu(VûƒªiÁ'qäû×FX¥·lmÝŒ¥HY[NÜ`U¨TÕöÆÅeÊ·&! $ Ø a×6¿Öv%Ç%”¥[ʉõì?-µÞí×þÏ!%INT’~ï¿4Ë­õ~›´ZÈŸrˆCŽ”8'8JÙ+8œÈ)FjËR«ºèp°µ&{N 8"£²­÷Û6ôµ9Ô²¡…´èñYXö)­gººïC -©:Š5úîÓNÚ nßhq¶Ûuµ#ÄR*a Ø¢•eHûÀá&õ £ZƒOk½)/J[-WÆÛ¬mB“!¥,nRAoÃÊr=Í;_‘ôÌŒÙJã¼µ3·Èûdù’¡Ø‚2?„̵jKçVѶÝG1¸:n(…×ÝPTDŒ-M‚í ryÚ„ÚŸCÁ¤ãmyS *õÔÔì¬ï~IxkÌ×úXh{ÜX,j™v ˜Cm¥µµl”¤žI $Õ'c–-¡k¾Y¿X!lå¥Kt¸Ú7BðI²A®À™Ó[ÅæÔ"ê¨j‹‹J©•)*hãÜ+9úÔHô¾ÕwÖ—>žÝç•Ö.LÈn0Y¸BBWc8A ØB‡#rÇ àh†*NiIhü þÏS”£Ríodö¾ú’?ÑãGÜ¥ôew™°oûRÞu•8€“!’¬¶¼ (Œda\` sI’û6Ie«ÃôKcjSøÕÒZ© 3¥¥ÅŽ C)i m vT½t²Y£xw;¤XaGþÀÐ$Ÿ®{ÕqXX;_â'©yI+öFúq1ä•É–>˜"‘]:WLU°·ƒƒœîOÿ…J\Ôvi3•Ýw€ó¡9)jX N1Üó[X½.:ƒr-“ŽGùŠçº4àΗµâš½üŽKê—J.:js’#£ívâÜWºnðÔ½7 2^TypR¦èQ$"¾£ ñ]w|íqÝi¶¶”‹$`ãÚ¸³_é§´ÕÎånm.Û|© ';¬ùŠÙN¬§h7àÌU5ª£â¾¦û«ê¿Ù¥ÝC?l„èfaa!(w#‡³Œî3ëJº‰ÓI×Û&;PËJ_¦õ¨mOÔàŸÂ™úz^‹ÓýqtJr˜©ƒ‚´·JqùVFmB8öĺêÜûDŒˆOà8üëªãFœwØàbk~ËO™Ôº%pšN’?!V¬sà°G'ÈWú)e†Ü ´v7æÂ”/õÍuk¬©C°æa£epb#M,¬ žçÞ·n à¨r84!µ“ÊŠSÀ<÷¬CIÿã' }xúVVï»4¥m:àJ¸àzû®h¤ò­Ëí`>dƒœÑM‡Ú±râ_DVý!` ?k‡ Apr¾ª˜»ºjÊÜÉ@å)Ï£];JS¢à``#ý⹩KL¼ò³»Ãl{b¶;%sŸJùTLm¡´ä{VĸÊRµx‰HùôïXº«[>GVsÏ›šÌ.Í' …mÜ1Ÿo¥U¾æ5+sG?ß/ºšå¥î>Ût”åüj9#Hñ ž #2¬ç?տŸí©÷XÖ¹¶çʃzEË”¦„…2yݨ@R’ INÇÈ EI-ý8™iêÜÝgCZ]–XI>"d”!µ8F1ˆÇœ¨ö¤:3G?¤-:±'Å|Ü–ëvíªQðbåÅ6…ä §WÀÎ= ¥Ü•£±›‡8¾·®Á•½i¨ÛGMÛ¶ÿdºZymΘ·Zši89°“à‚9'9a²õ]æ×[Ý„4ηBºøŽ%©+J ”¶¤p9ä§½:?a¿">Šû3–÷ŸÓŠâò‡|FЂR ‚x(Ï#œúV‹†¸½aÖp’ô0íîAr1RÔ”ìJp¿/)=³LŒ$—®ÂÉïëA˨××ì:áz„Au¦’Y*­IJN=pT Dã]5—¹h‰R5ë›:‡k3X” ¤¬#j›ÀpWÃäÔþ~˜F¤ÒRìsÄH`4HÎÅŒ«ÁÔ/NX¯·> Ytö¬ a:E ¸e¨îm¸`$%Ï£nÔdg9ç©|Ȭ¯qOOﺦï¯u+7ñÌ(²’ÉKäý˜„¨´n )É'YŒ‚•¥Ä+j‡b;æ îiÍQ£.šÂÿ Û„Š—5¦€qR|@•ì@@N+Pîíš™ZŒ³nŽg¥‘7ÃOჷÄÇ›o'Œçö«S½¬ËG¼™ØnÈy aå¿BN)ý+VÒÓ©ÞƒÆHÍVøP!Ä(v#Þ¤–;èJC2ð>sU©Nú£M*¶ÑŽ2íêaá2"ü òŠrƒ)ÇÛ±P={ ´<¿´†‡ñ¬ßž„±ÚϹ"³ÊN][]ŒTzײ6‚þ?« c'šõ. ùÒG8äw¤ÉŸ(cŽâ”75 ;@N}©n\†Æq|̾è(îÙÉwˆ¤6´ãÊ®E?©±È9B»Ö—š¶R{zšU2»‘Vžeb`ì8àò+9(zýktèë(ûÍ`ñÂ2?Zè§sšÕ·5 ío?ÔwP$­—\#“À§ñ’`÷õ¦­T͹~åë!+ÈShÜHïáÆ”j …Âý}žl¡+Yj3 4€xHüù¤¬:˜Xy¦Ð¥ç.Fíü¹§½òÕdÈa ->"N'>€÷'Žj*Z7©m‘4œ£E½Ùgh>^n-%éËn"1ÈW*Éø©.žÑ×= ÔËâ*Táƒ)22„VŒáiãÝ$Æ®½2#ÈŽÛñÛ eM „íÇÓ?8ÅH’Ã.) -$¨ú‘Ú¸²sžªZž‡Ú²u2¬¦ùøö뛫·€cËý³*‚• Œ~ÈÖw™F·Ÿ Z‚ ?ÚÇä ­ø_«ÝZC¨ýJýÕ÷°=DZúÖm  àƒ‘ƒZ“Nís9–iÙò+ 'vÕ¦û-WHβÙe•à žT}ÅEçÙõKÛLاìQçL‡ÞˆÜ–ÜmiRSû%ðHÈÀ÷íÍ^‚Î~ûo#̓… Òô°êÛm6Ë©iaÄsÈìi´ªN*Ì+ðª;Ú×*ˆÚVåqUÞ5Íõ¦0ŒòÌr•HX9I-ç òœþ4©V_¸"V“³¿jRä‘!¤ûåHÎÓ“íƒV”ø«zBžRJ”0¬'q8íñI×I¼ÉÇ5YC2´†P®¨¼ÔÖ¯·aìRåÆL)®2üÉJCnèÂôHÏzǰ³_þ¿b|Ik»L”îØêß±ÀIRûgnÀR;–êë‹ÚrÐÒâ%³{¸nidœò<òUì”'$ëPþé¶,‚Rc-N0Û¥ (¯ ‚µèTBsô®~&Τ!ÛúõØoé*SªÝ®š·ooÁ;xÙö‹ )À)ÀÊ»OµDcZÆÔNº¸î."í¼…µ§ü‰YǪ]-þ⤶²<2—'c9¨·T­îIÓ2Xmo%;‡„¢•V2=ð8úSª6¢¤¹jd¤¯<—²z|㲯OË•UöLÈ))ØÛ©ò %Dädr03žõ\õGM?p¼F™¦ô²Ð˜ˆoÃûk!ÖTétø¼•”8£#Œ0– \e VT”Œ’sOzÙëÖ“Õ.9¤-š…zQ!)1'(¾B@ œ¨\ë]-ùkeI“(«¶½9¼ö¤RÐô¤¶ö€rJ]f庇©JÊïãøô íCb‹"Êд ¨¤§n@ªËô€°m׋‚Ú Xeý•Ž>¸5kÛmI²>W„°µï-`{ãÛéM}Fëf— bœCá—¢AÜãðïéYZËgØÃ2ÎòìÎN·([ºBÝä7TÝØ|¤ðS¢ mÇŒúf¬Ž…Æz\¶.©!L¼â÷s€@ÍDºe›|êy·H‘eÿ²ÅJ~ãm¥¾žÝ½Ïç5&Ñ¥)¨`Ú­òZR‡ì^ É óÏbAõü«³CÎ2íÔãc::£ ä¹ ¥ðF;þî=ê\…¡”ÉW§Ç^èiaPPT°\úzÔâ7 -G'¾+¹Uª‹7#‡FZºëÎgz¶€{V)oîQV;úÖÒH9çØW€ùÏ'Ž'æ—{-ZïS¸ë ÞÚŠ‡n{š+5á8!Gð}(¢Éî‰M­™ é°Cz6 ïçb|Lÿ¨ªp›5é‰)mE¶Àãæ£ÚÕÈÒ[ó%¶üL=|E?!)Ç9Éúq[¡dÙÍSê¤:AGq=ùí[Ô„*>}«Ôî#¸­¨RJ{gÔ~=é¥E6yêj@Šó‰(sî'ýw¨†²+MÙIL¦–´¤(b=Á¨÷KãÀw¿].LF‘¨¾ÈiN<€§˜BU†’‚yJ6`Œpr}ê³T1ú+¥.½†ã*+7‰JR·®*dmR»„„§)´³%¸q[ŠLµšm‚ÚI>\zþT'öÁ(B· íQ#Ž V³­1äjmO§lR[µA•gcÆû8 m™JqA>Q€7 qŒƒJ,öWu¦uŽ=¾Çi¼Y®L.C-#0.Ü”/’)9 ¤gÚ¯öÌ]VˆÂ6–ñœ‚îÕ²R›ûS›–Œ•mÆ{Ç×â¢zíxºé»|#eÓöˆá÷šŸཡŵE’Ð P$(äŽI¨>£hz·p¸´ÒäÅXûŽr¦^û:Ke³Ý*+ä`œjŽ'0rÑ4[ ÞãËÕtÒ"¬? RÔîFÕ©I ¾FÓùÒ)ë .Ëyô"3 —UÂ1ß>ݪ oBÉ|ÔWký½SË:6Û"‘ýjŠ–•!YÏ’AÀÍ5ȆÚu>«·ý†É3Ú?íõŒÇ…/bˆÀ`óÆÓPª=ˆÎLnºÆÕÅlºÅÿlGYfM­(+SƒrrTFÐ'=½©þ\”Æ/5öwÝsJXQIõýÅTÓ,ö”h^—Õ°OÚ.6âé  ïß[¸ç%#9ïžÕ®ôÕ½zo_].)i7ØWGQ òpüpŸeKGºAco|š8nFftÓï"4"¥Ô¥D$žyíZØSg JТFxVr3ÏþµXXíì^zÓq•zŒ™`ÚmÒJŽPÌ‚¹a=·yqžàgÍAãYíÒ4>œ¸=*›+\oHçÅTuIqµ3¿¿†PHÛœsۚΥdi•W{ÛÒ:1 BÒÚ’¤žÅ'"¶‚€HíUÇLâ1oê7P­n,òá8ÌfRÓjr*JÊR8<œUŽr>joqÐy‘œwTÉÇtàÒ³ƒ…Œyö¤¡*PÁæ½Ü¦þ÷#ùRä®ÇEÙjh½Ä3â$ŽõÊRGcRæv¼Ê“ƨÅͯ³HRHàžkFâùñ0ÿ%ÌÂÞÉuÃǵEúŠéLgâ§–¦6ÃS§ÛÖ«^¦¼¤°àO±«NWR·"™mûJ«H[™~EÂäûIqmìÜ2Q*&uw¤ÍÝáÅ»$¼Ä ‚¢ãJÞ­¾ÀÿO©©?Mÿoi¼²µÏ³%cà¤í5hÙYUÂÇÅ6 öħ>U'øòXºmÖÍgÈ÷¸J¼<$SÖ<×ÃîpUÇHu¶RÖ–7•ã…òœzc·Ö™,ðd±qiï3a²{0qõí])ÔÛEu!vØ1>ÉÈgs«%ׂ²8ù¿!TôØ­‰ †Äs³Åý©ÚF¸‚Ÿ§±ßº©Êñ–£±x +%Jj×ÖßÁÕÝ/mæô¹ùa^3È óýàŸLý{ÔÒ;™9#¿™-í&-®,tðÛ,6„sÀJRü±N¶ÎR’R@>n{­g‹×A^fÙåÆò©Ì£{‰['þ{V»n¢†ãâ,§DwóýSÇjÓñÏÞòâ ’N{L}h‘j·Íc› ™ œâÅ1A§x²Šp’´×È{¶*3­¥KB’0<ÛrƒÿX>Ch)q“ô"«ætœ,ª#÷kj»ƒàâ~™Å.kFIHÊu–­Ø=>Þñ)­E¼|ÄNµKx¯³dÊLdJ1„òH©íP‹¾«€‰FžŒ5Ý'hj9ÌföŸty@÷A&”=¢ì`x“v½`ýÛ…ÁÇPOÊ þéèÖØ>H±âFi9e°„lQ'7½—›û/2i”5Ö^Kùmùx‘HjJ%J½_e~²¼ÍG‡!ò0†›ÿá4?q?ÄÒo²D¶Ãa 6Ê ÚI9úžI§ió¦\ÞÚÒŠ=Ç•6ðÞV¼¯“’7ê£S«9{ÏáË»åÈÝ-´ù0 9çšWu‚§¢-<ŽÄR«#q֦еs‚®ôór¡hm;©ª’”ng•L²H¦íúrä«õ`fÙvŒâ”ÛÈO•à{¡Áê“òæ¤ð5Cˆ·ß™U¾qmYÎÿ”žÎ‘æ÷O­!¿á@Qo;ræ úT¢Æä;í©pnq™”÷ÐëaI?P}k-4Ó´^¾FªÒRŠuךû®ï•µîb3åcœÒñœíXúƒÚÉ“#y:+TãéHþtºãÓË’¤4äøÍ«€„=¹ úçݧqmà·Lö[Zÿ2š¼•[ë“ûجU{ÿ4þ—\Ô(T‹,go*ΈÊ# ÿyÒ1윚ñ›{¬¸©×I™p)ÂV„á¦u¤úuM=ÎÓÓI vÿ1ƒÚüíIZ‹%Zy.ŒyNÜgéŠÏ%-š%Ê Ýg>k»q={Š[sÀß²[%GÊVÎ=ÉÀòžoZk¶ÇY¿Ûßq¶›ÉSÛÍÃñô§~´º•ožÁÊá»A) G*ùôÁ¦},¿´ÜÕ)J+lË'° w5ziÎP^·7æ.ÄT}–ù¤Ž›é«åÈͬÇlU­@4•,Œc¶j¤é¸Ra´„Ú­›t@[Üá*$ÕíT)E3ço²7xÈÈ9üŠÉ8<ƒ€yàf”Œ­?sà Jücîlá9ä{RT¢Ý‘¥ÆKVf¾Sß}(¤W ƒ1⓸nô”S¡JMX'©Ð*m­#'+ì}7«šy2T¢64Oíšm镽OéHO>¯)ñ8Ïübªh˜ÈO´‚?hâÆ)#-:R”S# ’ ¿Ú$ d`‘ÇúïJRêUÊ3‚08þTó&#4B’®=*)pœ‹;êaÁœŸ/5xMOb'd»}Œ]™»È¶ÀUÁ B%)”SÆ0ŒŽ>j7ujÜL(pb±´–ѦR–‚y$´IãYõ?U_µ•¼Ê¶À-ÚâOj¦ %öˆHN6îòýìòN1RK¶¤›g‘|q–%1aCj¸%†œ;Ó»kIÚw¤…‘Üñ☬ȒZ4µ¤BTuZ "‡râ¦:j?)Æ zz u:kO›b-£OÚ— ܘæ" I8îŒgµ‘¯Ìšr`»;L» ^>Ö—›ËG·^SëÚê¥N€åÓìÖÖnÎÓK¸“3b·);”††Ó»jNNHöïSš!tYöeÆ1#Çi” mBH ØÀü)¦É¡¬Ñµ×Pʉlû„„ÈJߌ….1JRœ!X$´­VnêW,š×Uß$ºó°¢Ú"HJ²wãhì ¸•K"uéoš‹uþÊÌI2`=2jQu*-VÒÉBp FG~j­Å’¤žäØÁ€Ì™»mˆã²ð^uL¤©ÆÆp…2SÉàñÉ­‹%¢*·Z`Cl%Hb:U‚¡ÀàGÅWöž ÝnÏé÷fZ‹þJb-2ŠÜC› €Zv€€8Á?=øF×Qo‰·Cº7§Òä9WCjl ¸pÈܤ¤í)ÆÂ¤ã9ÈÎqÇ3š;‘™#zwO´Ãq˜²[Xi·þÒÒZˆ„„:2€Âù>nüšO6ÇmUʲmpž”Þ<9GJœGÑDdzTeEr$-D›Í± ϲ<Ë*f<è}O–¶©IN2TÈã½.:¾th¡7Kl1:ÃoMÇÃ3Æiö”Œ(¡$RAÈö>´9Án ÄÆÜäd®X‰JPä”¶ã‰Nv‚¬d“€{dÓ¤{5‰Qa»M¸Gf@”ÓB26¶þâ¯# ÜIÜ9ÉÎj¿…t¼9ƒg“i‹Ûµ±Ë…°ý´¸ͧcÞA°ùÒ|»‡qÏrtZû©îÚ Þò#º‰iRÚq¥²ÔìÛ¨J7’~® ÊÐíhVâSŒqJ_|6ÑPâ›"8’’¯Å#½L-„¶ÐÜéá)´þ"ŠÃÍ+K– #$¬öH¬.L-ûkÑããÅ)Êr{šÓ´ÃAyõÈ_*#Óà{R)“вZR”S÷³ÈUÖÕKU—ËQB޵D’’Ü–øqµp }±UoZug]¡ÏBt–šD+R‡ìžDtÈußùDä'鯭–'6‚üD, €’¡• vç¾iΕøÿdÛ,on¥ªRO} צ¯ÕõÝý2¦èŸRµ§ë˜¶^¢ØÓn™4‘ ci؇Ö|5¤¢ÁÏlUÍ«uKNœŸx–ï‡ yâNÔŒ>OaóLºMµ1´ÊŒ†q [x!@ðR}ꪠޮP•c“ CÍÈP.d„ž~8íT©9Âú¨Ñ¯(¸»[{úD§zÖù~•7R\åE…iyÓ–!3~‡yïóî{UÅÓMëtûy.CKþ) 9ÉN{ŠˆA°[¢CLyÖ¦%'bã#ÃìF?:”Øî1#²ÌVØi¡ýZ[B@I#Û¿ò¤R¤ã,Í۸ו‘´#ÙëIJ¡ÊjBO­j•“ʶ}i–Ÿ0R8ãÔSºJ›îI'·µmRº³8N]Ä’›Üœ>†¢w„¡“½CjB‡sSPRЉ<üTGT©(ŒéÂ1&ïcYëi—…ïcúÊÏ룻Äl"x™ + Þ• \ÿèEE-7/^ÚôØð‹lGWŠP€2ò““œœŒñÎjouûï]Èý§ˆD§Cxó•¡ 2;ŒŒßФ-iu4MR›BÓ9YÁãïôªàäßa«¿øø_íôGqt¸§ì“Éã½[°6çTONç¥-`»Èæ¬+f£ðç¶­­«ŽüW²Qu©)efO³ŒgùV2Fæ“ÜÍijc HXp$}k\¹IR|6°ªÊ¡,Ûœã—q‰›X[¥ÉNe!^PsE<¶ÐCxîsEju[{™¥±éó­1¢ ­Â¿´ãñª© CÍ…!GÏ«X“oC[£4¬)[ý{~ÑTã§õ"â6#¾R9 5xѼ.·Ö²{²Óœ­Cµ Xò¯­­ÛyÇÍ.¹gŠ PàÑ¥)eÅâ+¹Å2”uejÍKDU·]©W§/zbØý¡«…ÏõƒN¾V—šË©xµ´$‚7§…nȱ§ù:^l]gx½±dÓW¦nþŽ"êŒ.;ˆFÂR¯ {’@IÛåç<úTÕjm¼…:ÚHà«{ý+Ò¤…¡*R|ü’9Àü*](½Ä%b5­ºr­]¬l׋s°"Ú›e¶n‘Õ¹+u,¹â±°$`áy$qïÚ¡7Í.Ϭ.ó"ÙìWV®µ©7$¶”í%'b÷$€8ãœóVå§PÛ-ú¢-ŠDÔ·.[Ku¦”q” ¤OaÊÓŒ÷ç©F°D4ÌWޤ#)Ê”®1óšLZŽ·8Fpâ-ï©PÜôН/ê”Iv;0ï6¸Ðãøi%l­¢¢S€6‚SÀ>‡µ!»Xo“&·zÔ@Ýn¶Hf3Q¥xŽ8á%#o HÏ~õe&ÚñìËB›<‚ZÅ0C¨ñÖóeÀ^ñŒçÐýkFH™ò•ÇLl·Yv}*îÌX°¬ÌÙeµ­O<ï…±%ÀRŸhRŽÑ»$kÖ4mõ:~ÓkCSµ"nεm-Ôæ—ïa]Ž}jo¬î(ÒºjMæBTøŽZ a gÄu-ϦUü*E 1#n>*V°vðsƒíP¡ElD›éD»ãZÖLÙÙMíÈ/ÛÔ \𜎄ÿZ’ÚTœ ÊIìiÊó¦nW=¨¬ŒØt¥Ž\ø*ŠÓ–â­‹$(áð’Bs´…cžOse0ëfÐKJsƒþD´£ªtl HÌuEfbT´¡ÕS…”àŸÂ±+JM³l©Â Es^¿‘©Jâ5Ž–¼ªDoÓkzéÞ­êZÃ` ¸)òäzqXôÇOÝôމfÃv0]fÚ…$EqkS¨+R‰R Ó‚8Yæ¦é'=©“Bê8Ú¯IÇÔ 0äV^SÉØê)ðÜ[d“ÛA?2öw+Ãûÿ¢¼µé¹ºÆ½Vb}¶÷]¶D¦V†žTt4y’œò3ŠšÛ4æ«kXݵtÁc2§[†Ü$¾êšl¶²Nç `¨¥íàcÖõÚÛ`¶*çq–˜ÑÂØQç*Z‚RõÉPþuµ™¯:“±ä­'!%*È5NwtÉ‹=ÿßÝ•µË§W'tGU¢ÐåþLIíñµÃˆ¶…“»bN\(óØqW¥s]·4»›˜– |Fã¼]m<œ¥%$ñÝÄA''“ëOÖÅ—#\TV¤¡Ñ|3YŸ¯[‰¥$µ!$zö§xç,§Ö‘ÍkÄo=ˆõ¥Q §éI©,ÑFºk,ØÓ©ä¢4R·„Þ«O{†¨%@­°àòø¨(Ýÿkdjx¯¡+ûƒš«º³á®Øê@h¨$í NàHôÅl¥%N•Ù†¾µÍÚ¶ûÝÕËÖB‡Bs‚ÞòA'à“ô®®±Û›Šœ†ãŒ¡Öó-´«Ê²{{+çö¶¹?2ìü+‚Ôp¢ƒê¤ðõ5Ô_¢—X-·È éE1˜·è©KqÔó›DÖÒ6ŒÝ`ÝÏÏ5ç«k<ÜWƒƒ†SO_^¿¢Þë.—{Wh§íL-Jm ¯j•„äOžk’“»sï[ä´K(T„/ÊZR'8çhÉù'Ö»ˆ£Å^âFHÚww®Hë5…zc_ÏC©W…1*SJ$¨9œsϹÜôçâ¹Ø˜8¼Ë™Óèê—ƒ¢ÞÚ¯©$ÐòWö1]Y@üE!Dän'ʯœr@Ç5eéÒ E uÅ£v}‰åU&ˆœ©SÜ^ÆÂnM&B€Våø ;ßûÙâ­›-$-@') dûûÖZk¬„Iã$6…%8ÊŽN9Í(Œ ÛJ‚F;ΑÅä¹XNU»8"œ`’´Ž=ûÖ´`½…«¦³÷3Lìº#•ÍwÏ%ÂCiþÀÇoƒóO²ÑºSÉ PÜ=Å1¾”ø†CÛœ©'ßÐ}9ïS-ïØwB7\~yK‰;Óǹõ“6ô…y€ØWÉ*õ¾¼ÔW]õ3OiGK2d¥RÖ*çúJhÒWM_­®ómP£ªÐ˜­6ò•5¥Bó´¡9Ô:°†²zù(`+:\YuaÚË-† !ÂÑÒUŒ•wÏ4©•ÁS¡–å3Æ{þ5²tÃ\ɺʃZ.*õb áÄŸ^GNiÎÑÒ½Gúîku³‹†ØIŽDT•œç;û8íZ!Y=_¯ˆº”°‘½ë§eØþÄ•¦|UŸ æÖ—3ÆsšEqˆÚT—×!¸¤üéžgLu_ëvX¨`;m«ÅqØÊK‰Ç`6«œÖ© ¿¦L³j´–”²—RZQPIîä‘ßÞ‡4׺þ_’±öDîë/“má”%·›-ž0U¸÷÷ù¦÷íŒxaèê '(÷ÿ<Ódþšëço/Ç©ZT6šÆu”ò²xNÐ;bªˆ}@¼XïŽZ¯©¥¶áH 'jûã‘YåVylÓïGF†8„Þ¢“ìññ±wØåºÛéC™ÀY öíS sž+gýˆî*¤]]î:JQâ-¶=¿–éT8êÉB‰ðÏ#Üÿ ¤Z3—ˆ†Y4÷B©jHVÕpsœ …ê¹ Et« I%GÓ/¼-¤)Ò´à¤wWcš¬z“4CÓZÂVRKdŸUpô<šN"NÖ+E^H«ºlüKýSü5–¢%Û£©9IXÝNxÈü+›-«K—õ¯yý£ŠpÝÎE\«W¶i9ÚwJ/íËŒwÿYºÚ¼6Xd'{»r~ùHÆÑÛÓ’*—io·áÉy•á( PÂ{p?.kn‹P“í'¤+ÅÕ‚ÿ]ΫÑ:£ìö˜/:°%¤íÁûØ‘RÉúµ”N²AedÈ( %=ÃiåK#ÛÒ¹>Í­·[|6ÒeÍj^JPŒð”AœñÇ>õbôžá$ÜWt’—n7Ù>Dr#¶aèŸÆ·UÅU¥EAzübxyTÞ(ëëTå>†ØJÎN3ϦvôšNrN9&ª¾oÔ­Îçoaô«>+©ÆIôù®ì3JŒnréhõI’–Z <š)9GÚœ9¥#‘ïE4ºÃܪ7x•=¡Å9h‚3„ /þâ©D¾c·}OúïItð&ÏøsÓþ1TªPÜ„ŒäŸãZ¡î£ ØiH¡¸ÅÍ™*ïNï¹á4¥œ€;|Ö«3ay)¬$aÉ)c;ž;U‰9ëR=o“£u]Æíà F5„‡GŽ”øèJ[IûÞœÄf¦·ˆöYú‹¨îj”Ç[Ð"4a*GxÑü ¶‰û¤¹’Tžw=Hõ/MÛÔU)ùêy¥<—i1YBÖ ¤¶]ÜP‘ÆsÇz•KÒÑf¸Ô›Ýª §å§Ž•©¿ù$Ž;úV|ºêQR“ÖÅo¡a³sêV†•©aD~cºMNÉT–’T·SáaJÈåc“ñÍHúÏt‡*õf³¹h·ÜŸ¸JR#ý¿geHmJ+<62$žâ¤7´Ú'¡†äZ`Lr2ŠÙrDt8ZQîPTÓò)ûl ¤oé,Öwnðä4—¸v8P#51¤Ôœ†7hdD/¡Ò%3§.ì´ëJù1–Ê‚†Âòß÷9ãàÔfçËŒ+·N¢©Ä=m¸Ï¼2')oÁÇüàsI§ìfÆl¦Íný\’OÙ>Ì$•³y$“ÇrM/4_ºÇË-/¥¿ ©cC:7VÄa˜îØ`눷‚¦ØÊÙñÞxJ”¡ÀÉz¦H(mˆ,1:Je(O<€šÛÑiU˜ÙÕl‚mÅ; BÂ<3œlÆÜgâ²r H™‰+#46¶Ó-„!Ø$p*Ôú³!R²¹ŽÔ‘NVs„(zSzSå§BxUMgÔc¨®ºÊ!-ük|p|çëšM0ùB}Í+J`8â±KÝFØû̈ëF®ÓáZäG‡Îû¨+Ú?º=þµQõ6Ø÷êw#®L©êÚw+! _À `Uíud®1m#äš„jkb†¡³¦™k«•ƒq‘FN鵂ݯSµ:éç^$e´K©sŠtT]ù\ßN4q5#Ç“I|¿+«‡^:Ô»¼ûí“BÚÍŽBRÔ’›[޵Œád ¤’¬ò1Ž;aŒ~’ÝuÒ²§N¿Ù-ó˜PDËrÚn6Üù[ØRH9çqQàsït[l––Òëè*‡ŽC|àxÅ.Ÿf»†Ê'À·Ý[ (‡Ù*B»úÆ1O$µ^¼ÍŒ ¼°Ñø¯ªú”¥GZ.öo1-C3+J¡" ……¥Xó¬ïß‘ŽPžkF½ý!ú¹¯ôÓºa›U¬Éy¥ý¢Ø—Û’……¤!E÷̑È«Ù6{’˜q¨¬Á´C<-¨Q@}Ù¦÷ôÄ%[3âp NO¸ pj\]½}ËQè¼%ºíß¹¯¶Ÿ2´ÑŸ¥ºÓÓƒZÛ_¹Ì[imÕ´Êá@yTxY#öæ¥ÓàZú™z‡vM–|l8•~Ý’ÊÊ„¥^ÅX*øÈ©•Ñ­·r3„Ò•y_qO-?Ù*>aïíSø­¡ %–[(·zŒzÖL°„®¾ëáÙü¸xJ­Ów|šÓçmßËSVœ´¦Ð\C(û6æÃm +w·>õ*³0ÜVÞSyJIÎ~idîqhŽ{j_=Ôµ¡…c'>”·kÜåÖ©)½wdgT>§@., };ðj£ëìÈÈÒïÄS… BTžO ÜOÀÀ?•Ye¥Én( )¶¢”÷É÷‡¥P_¤­×ÂêRùRÔ9߈5†]y¤¹³M•Ýò)=Qµj+»a„É– H@>Bò­¾Ù8ǺjQÞä­4œ‡§çJRáø€¹ FÕú”§žÄðj.ܦä35ô¥h.¹GªÂ=¿•H'ÜwõTd¹iBÛ÷J‚H*PŽ~A®ƒI¤¿ÖÂæéSMÚ÷OîW–ÉBÕ9ø×rd–mD¡Ä(ÝPìAúqV}‡¨qÙe˜Ñn C(@NÇá¥'êÙúâ£×.»ê•$,µ9]ԮΟ“ïóëëZlZæfÎ+ŠØýå#?…mÅÒ§ž[œœ<•xpåkÞ„êM¾j‘&xSh‡øj̳õjË7ÃiR·Àe†’\u~ÞTçhùV*‘ÑÝ?Ór\LkƒÒf6OÜkö@Ÿ’95ÐZNY,PPÍ’Ï UŒ©´ êú¨ò:¬1x§hÓ‹9ªXX6¡&Éö—“*L`ó­–¹ =è§ŽÊùÑ]¼ÎË>âéÁ¨•‘°Õ’„g!Ãÿ÷[¤ î@à€ri|¥ZÛ)Ÿ8ñЦ÷TV”¬€0sÀ­ÔÝàŒ X™ÛIL&É'„ñǪÝ1dzœqÈäW–—íÉ;Ž@äf‹w w>l|Õ€Š3Ô›…²ß¨5Ó•k±]ÿVËX›µå¨¸”4˜Wõ“¹Iî}³OWÞ¢I‚½KmÔv– ?g¶¢äUY}´½ÃnJ……'olƒÅ7½Ó‹Ü®›ë+#r­É•~Ô)ºERœXBÇVÕ¹ Ã*à9÷Â]¡ß¾j-S>d¦[·^lMÛØIu·µ«yIÀÜçœzW6ò•L݆ŸÝ…;v¯¿àZµ5Àß­–›å™¸+»0·¡©™^6 R›s(N´ç# óϦû7Q&IÑÌji6ãÇš¦#ÀlÌäHq{'n€¬ùŽN8ô§–4^¥“³^¯’-‰Mš;ˆ`DRÔ_qÄ‘°mÊ7}ãÍ1@éÅÙ}+´iy.ÁTû[è’ÚÔ’äu­„¨ A ñëëëºò{Ú‘'Òº™wi×k\¸ñã϶8Ú]Ly3N!ÄîBÒ­©<ò0GôÍW=¥îC¹M‚óߪSowÃLÕ- iÍɤ€Ú¶ò@È'×Ö¥Ú'M½Hve–ÉlRÊp‹j·žT|4vÉÇdÔYè Íçú~ˆOÀHÔ1 5ÅZdžXÎòæpxÆ~qT¨ÛŽ…­$“^´b§õEéQ6Çp²C‰pýTnqvLS­”…l(pøi)PQ•º¶’Ú“Šz„ððÊ{S}ÛjBˆ#µh¢²ÊÂ*Jë2(~¬[Ùð\uÍ¡#9ÉÀ#ÔW]íLÅ:‹IJ„,‚;¤ÿÚ»¨í2üWRF1œ×!õM‹{w"Ûj@ÂŽPÊ•'œ(\úRzFêIèÙ®#i[Ë´Á.6Ú³»wf«$ü=©DÂ’¬““ê~}©2sœþ5–;*{Ö,>†^UP.Þ©uôŸjì’Ïæ?>+±ôÜÅJ‰xJ–Ëa‚x*ÆOoõÅpµ×ã]£É†¥%Р¦Ïc»¾+®úg©ÄËL Œd¼ÿŠ Ž‚™iIÏÐžØø®F:žJªkfuðSâPÉÎ%ÍRRPè !Ð Iõîǧ"œ–âPÆæÅ(…y½*1m}d;[+J ǘ÷àqOJy)K™AS‰O ÎHWö¾žÿ¨Ë@šÔuƒ(!ä©K@'¶}…;¯.4WIÁ*ËàÔ.DÂá@7€µ…qßÛçéO‘día»Ÿ¾SÇp;S ò)(µ¨à¤+‘» …$ò3ŽN;f” •%!^SŽÁ@î¬xócõÅ5;0N榜k*RÆÐ‘æÜ=>+ȆÙHRAãžr>Mlu-¥%nÞ˜é¾Ae*ËM•‚œ}ãZ#'ÈºÔØãÑ w¸ÀÎýªÞõŠ&GR@eŸ.NqíîkJvç†Äóº°+G*ØœçƒÀÍD™tfBKêJRÇzõ´¡-Ø“éé^‡Ôp<ÇœúVÄáŸLšÍ23޲ÛiNHãÚ‘j{ˆð‘;”H׿çÞ’»tGˆ —0ÚJGbxäóíQ¸sEÁó&Få6‰ldƒžG"³T©¦TLawwÈÛs’ˆPœ8Øáܵ‚?ô®Eý#îÎMê PPêÌxèRƒ•«$ƒø`þ"º+YêÐb¿&D¥3´\X ŽcñÛS\ct¸®é~™vxï\© pƒÇð?ÇáLÀC=W>Kù#,”ÔyËø&:E˜2­¯Ç}aµ’ŒöW‚}xÏÍ*±¹n‹Sø2c¨–R±É ÛÎ}qƒùša°-Å5M,î[Ÿg)ǺOãŒTïJZ­÷™©DæT•Çå2­«I<Ç|V¨Ú2•ûneÇUjœoîØ°ô–›jdT‚TE?§F¾ÄŒ‚ ƒK´ ³srR0— Pàdw«v%—ípÀYNà;צÃÊ–.š”ã±å%&¥dî@4Æžf+èP@ïÍZp¡%1RR¤0-m´TÙ(v8© ¤¤´¦W÷½kšŒUƒ»³í©NZ8?¢½†vmIýÓÍ̪›‘Ñ¥+"#Óô¢O¢0  °æ}ÿ¬UGäG\i Œ³Œ)çNª.•„èå*ß‘ŸøÅSÆ¡„ÔÈâTp ÁÎ9ù®5—Àåß4æ†Ý6öP¶{)Â)}Ä’xø¨û©§¼@)àŒ÷§¦Þ)$䑃Í4¡6aYµ¤÷òúSUÄä!òšSj} ‚¶óØR9O!‡w¤(ŒƒžAÇð9¬Tâã6n«%(# kB#ìøô¤ñQâ­ ©[sߊÁŇe~Óî'Þ†ä6»€e—§P7)°¡¸$ž=¾kRVFVîÅ4ä2zßÀÃAk*=«%¶´¬,¤ŽExRXã¤9fZŽK+Ð+ Ilgulû2 ¥,î¯Q¸7°GlÖKmi„Ê5Fù K˜‘YàÒ¼¥mŒR(râÉmiaö¤m% -¬(;ŒZQy€B¶úf¦Z¢±£ÁZÙ=CÊ;Ö¨áHÚœzÖ©o…8@?•Fò5¹Z´•+Ò´çrʈ¯^Äãæ·Ä`¬ó÷E?H«³>²vFû{=ÜWá[ÝVåcÐw¯°Äp+ăžæ³»·viJÊÈØ•š*=éO޲µv­³I+ ÅhyA†O"­e~l¬Ý¹!®ñ1»x.)a)¤Õmªº³¦¡´â\¹³â à¶Ùúf›:÷¼x¶Y‡CÇ+‘%Í¡¤ûêO5ÌêÓ/´©’ï¦<Ð|Æ4b¢P< €sXñXþ”VäPÃ*×r•‘3êVpmØÖDKÚx\Á|gŠ¡.ÓŸxå÷Ã;•“€NŽü÷'Þ¬‹œ;+p¶\%"|$º’¢HŸð¼OÓ 3%ØT×Ö[ujRÔžsœœùͳ®óIZ1¡Ad§{½ÙR¶‹«%?ÙÏuíX œ~ím“%Éø‹;q©OaZR¢„(ûŠÒ¯mLóµô°|)L>Gïãñ«¿¦Wg¼¢Î@ð]t?Yò炤ýxÏþ•Vêël+eÅ›ZV ò-ì—T¥d‡Š”žOžÞ˜«Eˆj¸è{UÕµ”;á´Tâ@Ü•§Œãçük™•áÉúGo¢bœ§~®_v{Ë)uå­Ð¶øJAãÞÞÙõ©#RÛVw'j U´ßhÁÜ~=+ž´–£uI\I ð%íx+¶3œƒíM[ºrúĈÏÄZÒâŽINAQH''ñàñ\ØÏ+Ê͵°í+¢b·û9[Û|@7£•ëôãùÖ6’RBYd¬ç'q88>™ô¦¶n-)…H>d «*ããßéñMÎb%â8j>^q{|$¯ +ÆFï| ~ulöi£&KèË6CËKÈpá¦i ¬’ŸSÇÏàÜê!8=ñéõ¨žïâºÒšN[˘åH×ð<ÓÛo#xÈ*y„$àg?>Õ®:êŒí[F,uǤ«+=Åhb0t‚§•ŽHÏ5µ—ѱº´¯jÊJGt‘Ç>õ¾*Úh ¹…gÌ0Gµ>©é¡Šboó¥;гøãùM"*ZR„§¹9'š[ÀB––Ôwɽ'}ckj ”úp{¯ÅYØœÍ1³†Þp$þÍ'p<xÿCæ´È¹%¦}KF[É Qî+uÙôÆaÙ-ÈJä“ßÓÓéQk¼ïm©M-•+—Á§!Cß·ñ¬u^Q«¬7jë«¿©Ô¶Õ—TæÖO‹œÿÏùÖ¶f¥¸>GGŠ”à `déèxÅC/w.7VŽ„©¶Nõ­ûùþŸÆ‘ëL»D3.OSHC ¶9Vâì09>•Ï“nZ#KDŠÓô‹Õqãé¸ÉB\} vVÕy‘…$þ@Õ.ÇÜòžAɬ®ÓäÝ.’.SV~C…kPíŸað+Ô6´FSÛxHÇÿJôXz …%Sƒˆ¯ÇªåÉmà=ÚV¡fy¦É;ÜmH)î¤ò>@?ƧZTEûS(œÿÙ¤?y?¶ >‡[EVØÙo%%Yq?ÙHç#ùVk*¸Ea)p…ë Üžß½íõªºiO0Ê–­G†ýz¹ÛúJìÓq˜t¤- …$ä‘GÖñ\¿±`¶¼™7[-Þ ~«YwàI"¸¿Né­c," ¿¢e•®_L$“ŸŠé®„X,úVØaÛÝ%¾wK˜¯¼ò½ÂGµ=cêM¨Rwð8œÃß;×°¿Zi©QR¶Ô€sžæ’Ÿ‡r RSßæ·ZÂVØR È—¸¤myñÁ®ìe(«HË“2¹©‰ˆQ äñŲÉjm· …dƒØ+5ZÐŒ¬‘ª•Ê7lƒh&öixm9÷ráçÔxЧ’UYFPµhØEîŸ[$#Ì´‡ ×öŠ¥)Väù»ŽüÖÊSS‰†PpHA2yaN0Bƒ”ÓLfç7,DCj;½»T‰L$€´ùqëNš^[…÷FìsV©5¹0„䢊«£v;díWª—r²¿.àÆ¥’#ÜÄj9Cm­ «#VHêõ––ÔWK&‰´µkƒeDˆµ‘eyB:ÒÉÜ^ËÛ7•gzR¢Ü€RÎE­¡ô¿ôezbwÚ¿\^^ºàìð|D¡>s»>÷ÏjŽÆé‡ƒnµÄ7ÌýƒU/Pîû'õ›‹‡ÁûüY÷ùí÷y®Dª9;›#†”"¬µ×ùC×[Ý­,êËTè¶É׋MÊ /4ÊÙeó1(-•§rˆØs…sLæ¼ÑÖˤ.»ê.raÌy6(ªK±ØS)R ®wIZ°s‘÷§Ò¤·¾™1vŸ«e=xu¥ß¤A•M2 ½ J $/% àÁ#æœt¾ŸoÖsõ]Úú‹”é°›†´5ìí!-¨©%#z©ÎIäú(Ud¹“ìòsM®~ZþÝÚõ¨çëùš_N=oˆmЗ!ù¬-зR‚ JÓ„á*É<àZC§µôëÜþŸ)¨ŒGcPǸ™Íœ©M»jp…{oÝèr1RÝO¢æ?©ßÔúzö-W “Pv }§•!a;’C‰ÜprF Ó+8n,-*Õ‚î¨s4Èy =&?Úú_=â$)¨Ù`ûö¦ñ•ÅÊ•Hɯ[¯¥Èn¨Ôú¢ífeQ®L[”ÏPÅ”˜>fQ ÷y†{y‡eŽ*{ÔFîѺE¨Ö‹Š?X1fâå! ”´¢¢”îò’äàyÆ)­}0_êZãê Á¨“¨[–ô@ $…%D)CrJ‚<=2g—ë÷ sÓ²f¶‰{ÐÜ”†0”©ÆÊ ÃeYÀÎvîüj®n+^e©Ñœ¯~³éû—XˆÓz2ÁúŠ$·tãW‰“\·¾¶¶ÒHZw+ îYWaÛ&”·Ô}Ipµé–mpmq¯K¤ËD°øZØeæ7eÄà…)8FàœŒçêOý•U’çd¾ˆW[m6‡zŒÌ–Ò ›Þ’À…q’Eh·ôÎ,¥{»ª6)ò'¾ãÌ….k¯%{É €žVOcÀæ’äÞã#J¤t^¶ü“˜H}0˜DŶ섶òÛFÔ©xó2p Ï5¦t â ›áXïK~†Dfâî’‚’³cGÚIy\JX #hMl”ØKÁ^õà­.yµ3Ft=JvŠÚÈÆV®Õ­ +PÒ•:)™>C¢¹³°· “ÏÔrÝâ¹{NÑîj@¥“Jê%¥SZ2ÉÆÑ2ÔwÕ=µýÏ]ë­a$9\‡‘“öv’ †0@ö<}i².Õ‰l»q¶>ÓAa8ÝÁ'ñ®ë F´â_¼Çm¶d~Ñ@—rG”ŸsTÍòú‹öyøJRd2âV¦Ö¬-$oQô®5IÎíMXèaj·—$tØoÕöin†£·f|Éw!'+Q$wô¨3Újóâa§ÎNÐ<ŸƒW%ÕqË–ìÆZia/6âÝ ÚHÎFO±ªÏPjuí¶%Iݽîã$‘ø­6Œ§šû¯2Ë*ÍEÇb+‚ä¶b¯ SŽ%ÏlœrkÉQœjCŒã[Qú]§/‘ÈR›l—]$œàsÉù8o½6|W$8p\<$zãÖ›Û}Á'ØÑy”åÞîô§7;5×P€Ó e*! qùp=k¡z 3ú|ê[kÅØ¢6w%¼ä?x {W>Û.&Ý5¹m6‘"0C­¨~ê’ ¡üÖºôj’㨻¬µàfŒ@ÆÄ¸7=¾{W?Ö§gÊßc§ÑíÆnHd×ÚjL)Iz:Ñ”(-§32p}é«Oê),ø^VBJiKÚR¬…“ߟÊè­Qd‹&#¥–ßR ”ã `ï§ü@öâ¨mq¢Wh–e°è*O)RFJÒqÀçßø×&*ÝY|A ÜN²ß™7´k•ñ¼D«…yQŒö=óéØ`jMöæä#([{Ùˉڳ• ˆ=óéÏ5EÛ „,¡â*tà ÇáR]™ ø»›dìX+ó,wôÏÍ.I§dÉ–ÕhXÌ]d¸C‹iÉ)R€HÇÉ$‘ùT¦Õ¬ZŒÚyÓÄå§@G§—Ÿ1ÂH8õÍRÓ®JZTc‰ ©h@n:ŽÕgƒ’£û½±ë[g\Q(Åjj2äpTÒ7©`zŒóߟ­Z%3ÂFEÿmÕpÒC‰~¸B–p+zIÀ'Ø÷ç⤺%N6c¾Ó­(¼«žÙ>¼GÅrãÖÈÒÚS±$OKÅd-²6ì à©@3Šw¶Á¾ÓѵÒÊR Œ4U´¥8Nùþtèⲫ12èôõLé(÷XªR’âÐÚJJ‰žÿáZß½AФ“! Q÷Ýc#àòEs«‚øÓ súE!‡VCÍ´ö·8ø&š.—=E!öa¢BŒ åvQÁ!XìqœU–1²Gw–Ö¯Ö±æ¿%¨ÏöV›YÜxÞJ»Ÿs´þu^ê}i.å0Á·(¾–ò£œÉû`T0E»Ë¹¦*¥‰#±’¶Õ“¹GÔŽ2¯Îœ-öw#<©.ÉXe¼’qG'rVGÔÒgUnÙ¦ž.B¸2LVK]7IÇ—•ØsÆ}xâ¼vÖYµÉ»\·'†)IÂAPÆýÐ~¹Ïém¶&B¶2ØnûéVxWsë‚r{|Òý|ÃÍé9ëHQeQ =Ò'…Ô¼’\Íq´YÊW(Â=Ál©%IÝ\ŸåNZ…"8S © )³‘€Ú}~ Wãšu×v—”Ô Ó <¨×ÿÙÖ£’¢È#Ødô¦?ɹ´¥—9û©á?Èõ”ªªR<}Z\:’‡kÓÁž´–ši˜›†÷ˆRÈ?wžãßò§TXä}‘™hCûâàIÁàöø¬dZ$8( ]ý³‹GNp3íÀþUc@·É”ÄYl¾ã;R’;¥D ¯b@=¹¬¸ŒFDœMøL*“j¢Ûb/£Xš™Àþ¯jhPáRÞá÷T9üë¨zRËÏ6•:ÚBÆ20Óâ©X¯:™hLhÊŒ‡奷Ò£ê}+¡:>…8ÛA(ÊOsŠßÑ ‹.&ÇŸé—ûÙ-±kØB¶$g§ƒƒ„Òf ©¤xŒNÕ°;•ŽA®ÔÚ›º9±N ̰–Rµ2 ¦R®ÜQ\·¹Ô[Ž•] ¹¢­Ñ ˜ZC€‚ãN¨;¥öG÷ÅW*·?*ÏoY*B2¼ÿ}Ur¦:LPÒÈVo“Tk™Í¢ž"Ÿ"•nA#?AéRm:öxúâš.ö·#¬ºÈÊ äJQ¦f$f:Ô³À4ÊíT¥x• :¶‘œ­[§Ú³7unë ÈN;à!ä¸6)ÍþÀ}÷¸÷¦‡µ¥³õÂm*½[›¸¨€˜Š’€é'°Ûœä÷ÅTâ+­õýP¡%õÍH6Ž*l) ˜'þ¯Ò™ç'¦×Ý&âHÕò5Ž0Áløîº©IR$$w(ÁÞ8ñJ§Æ7µÅÕÅTm­¬_Õðv⇧ǪÐöÁÇnçŠqéËQÿö³auøì¼[ÐP”ÙZŠ y\cóóQVœe²³-K5+2í‹©4ô»Ã–h—Ël‹‹{‚â·% u%?xƒœQéÆ{ÓBµ5ŽCÓ¿RÞm· RÝf<”8¤c#“œdõwX٤ͷ ®‡Ð—¸Ú’Ïqµ\¤Ã[)û<•¤!Ç‚ÖáÛ» Nøè˜P'ÀӳƬ·¹>Ï`v"­ A He iM¿••…$w''Ö³Sv•‡N¼¤´^¾£Ì.«-vMàf×íª§1)õ%ˆÈJTrp ŽH Hã“VºîQcʃo*; ©Qeüº¤$ìÏ$sôª'§ƒ tü þu=ëÃè²ÚlZÍAA:~îËï©#$Gtú8áU“ÌËP©(Órok ¿ä”HÕº}®R¼CSV·Ôõ‡F#-#Ì•ŸÝ#æ¡òú™m…U\§H„`XVI‹1.ºòö[R8ؽéR@'œUUÛ&Ê×¥ä!AÍvÌ)Ó@I#ÅCë~`ÏËjH$ûS¶³mÉ®,ÇiÇ\TxP„•ˆ‰ôå«AÄÎJûMý‰íÇ©ö¸—í.Ó3àMå¹jzc¯„†TÊ! öÉ+Æ>˜ïVŠío½[Z¸ZæÇ›Ñ”<ÃhWÐŽ*Ÿ›:ÕyêgJæ[åEžÂb\Ê]iai ÙìG¨ÏáOý!¸:Å#ÊÛzºæ”¤vHñØU&®‡P«.&Vî¿—?ªtÓ×±dfÿkr椉”‚èZ~òvç;‡r;NIÉ8š 5V¦ºj‹ÅírØŒô-q£gf)ñb2™>^yy$oÜ9ÂRw€3ÍtS ÇÍʆRŸO°ñ µœdúÒg%-`€1KŽæ‘<ÀVT8ªÁ¦õ4M4´ Éõ¤³cdž)r”ùHí[_@-Sóåbc ”V-¶“l’ýí1¾ÀÚ ž/ýÀŸšâ­SrÓꧦ\q¨*YÜ?³<þîAV ÷®ú꾓‡ª´ì«<òøŒøü%íQÚB‡>Ùª†s¤šbƵ6d-}¼IÄ?NJʼnNsÒ-ßäZ…U‡“•Ît»ZÚ–â·‡ß+8KiA;Õì)¶n’ÔÂ@mëÁ¥g0¤cþ×j¿õEž,{jãËe¶£#*#ilÞIUwÍz¦ž1áÈ]ÝIN"@RUÿXgÍõâ•U)<²6TŬF´â7GµEÓÖÒ—å7ö×› –sÃiÜ0ïÛ'ßôÇrÜéì¾¶œjÚ••¨`­#ïcÜüW¯´åÑçî ‚]yx'h+ç°qð§¤h‰6Ü‹óÿeŒ–Â’ÑXÞ{%^‰'ž=*TÔoõ~´#‡Ã´æDnF•!p¼dÅqÅC¼¨#w©Æ3ó] Ð+ÜIòa;W‹0Ân=Á• ) kʃò }}ÅRšâtY Œ!¶ËHe>im >¿Z›þŠéÕÁ¥”€äÙPìC‰ÇóÇãHÆÓ\,Ï‘«Qº©.g[‚Ò#ƒEkÀQÛžç×S¤¶4‚dÆe ÁOˆ´!° ¼žJIì=À÷ø©!±  ‚IGãZåÆ[Éu´:[_*o' ÉîÁ…r-tuã,¬®e‡qCI}·]p·¹XN2œŸ\vÁ?•{tÐY‚–Ø‘û- 1ÉNG¨ó늚rÖÞöRrò–½ð=RN*GbL/ºÒR¶ðIÏsî>qU…$ôcž*pÕ\í pŒ”Ém¿ „ ‰#ãœùÒ-.CI\¶e>ê”<H¹½y®ž0£È(%-FBGïŸõšÑ?HÙ&Ç[bC$á²@ç¾G¯­ÂKx²Ðé4½ôssÊ’r%ÁµA$î9Èõ9ã=«lIW$ ¨ÛKž8ðÀ_Ž1Î{ŸŒUÙuÑ¶ÇØ\ð°?!ÿ•GgiÅ1½KŽ”…a’O=¾ë4éÔ†èÓ U)­ ÅÈ÷§Zð^ #x+tJF23Æ8ö5‚ôóNÉ̉.º¢µ·«jNqÇ€ò©Ô»jØeiLrúW”¨-8ç$¨û}>)ÑÛSKLr’U€¢=¿ò÷¤9IlhUØŽ8Ëq_û4vZh8Gˆ¦¼¥*Îpµ“ëY±n*|;2;ëÝ’†[@R²?xœñœzÔ‘˜(,xˆÚóå( §Ë‘êOjrµÛ„s”!´ ¯§4½YWQ$7YíªC C­ÿðM}Â}3ê~kÍsk-h‹³Î ”·Î¶ÞÕ4´[_YíåÜ0 ¤ÝNe ÒS¡©)R^eHq%E ¤ðFG#jthÚ9™’Uúé#’t•ýK£fÀEÝÆîćàBu%AäùƒgºTœìGÒ¡ScHƒ|u/´¶žR²æäöÏÞù9©\Ó/Jk;­¾ëqû\¥UŸ2Ò…´ãÝ* ýMIæÛíW«•ÆYwˆï†ãsû2æR õ!'ùW^¥N¥Ò¼eªøØÈèÓ«Û³oÈѤ[l7!m$¡h]JS•Ÿlð F=½ê@ã ~2˜ˆúmïlÃ[ÜØãpÏ÷'ŸOjk[LÚâ–Z2I!+Ït÷£æ±‹v™dU¸çõEE ôq )'Ø‘ØúÒ+FQ†kjÇÓš«ZÐ’²û Q*T-BˆW††éP'$¥+W²UÛ$rc]]Ñu±ö&ÂFÞÝûŠæm@ë–xVä¶\iÀìÉiYó2¯t㑟lWKtͦâ´ÊwCi¼rk³ÑR”ZŒyžS¦$e;Yó.ø+BqXK€‡<í*‘ÛÀ,ƒž;ÓŒ²JÊŽß@k«+Á¶™•55fPqŸØ<œ{)ÁHB™ ÑI”ÔÆÆ*×+Τ3¢íêmwÄÇÿ¸ª–‰ï…~U\è;“ËÒpbEG?´Ê‡=ÜUMà%ƘËË V;WBTÖTäs(ÔvJ#’g)j 8€søÖ©Vd8àÁð–9Àõ¢Œ¥EçV”Çzq.<€|'öÁ¬Òr¦ïkŠEi² «$ ~¡~`’ä›Ì¤Ÿ´Ë.:–R‚’|¨É'éÏjyc¸ FÁêMsþœvõeÔ½[×þ¤v±> Ûï@Üâ]ó ÔU–ѳrJGpGT·Ìbà BWœ‚3“ž ØÌô¨9âÒƒMvùqú„ý)5Ìùô¦=-.áhéúgêIŒLz$EHyØÌ–Ò[JJ€ *<íüš¦lpºÝ¯:iɲ´Úâj Їú²!Y™n%{SŠ*![Ž3åÚ¢:OQÕq„{²öÇ{ñKÄT–†+ŸìÝUÕS4ìkzÙ·§V+U‹†TB*wiVxŽþ©×ª}X½è›¤‰,j#ujY~ÌÃ.M²TySÂè@÷©7¥„ÃMEÉì[é .S‘–Êä4q °V{;JZÔbÚ£ÅPso34ïYzÍ}€2àY">Èu;“¹1›###"¤HêV¢SÝ%ALjÖœ]ËöG‚”4¡áù¼¼¬÷Ï¥-Ô“/ ÔÓwíúظP„¡$$V°TIÕ¬z»zÓ²IÔ:Jûû² É·AaÀüVÔ£…x¾!IX9=‡¦¸SµµËô•ÔVø7ø ·Ô߆‡¢­m†T¤©) X+å~¸ì*{²ÒÅÂöŠÖö/&ßaÔ•4òHQI(P pG úViPÛÁÍsv…ê;Ñßµ[l–†¯7mRå¶3m6´Gñ–—–7éØ(zcRHÕš~N²Ó—¡i“y²ÙMÚ ¸¬­ <Ž mJ8!JƒÈ©JèªÆBɲétä§½dÙ*oo­RV¦k¨ô*îñìêµk&Ý,±·Ñv¥$²¬+;Á#hõ™.Ÿ£±yZ£©Þ:Ü>©IÂw¯gÒ¬ÝCÍ%ÏírǸÅÞ’•õ¾YPZQÙ’{UˆâêO½4Üc$‚)ÔªXmH\âÒYqöle’›RŽTôpWãŸec°Çןj©tÇM55Ô)ùl‹s)íö¤©%AŠú¨,ÉuEA'5 Ÿ¦ «ó$‘óYeGRvÓÄ![‡$r-×Aj´FŒ„HlÈO¾i½2êd˜óX—5Ð2–šQðÐ3ÝK5Ö’´“c>\SLÛ, ‚­£Ôf™S£ê%¹hô„¡ºLåk®»!EapÓžÈBÉÀúâ¤eZg¨qÖ¹Iy2S ÷ ägÐ*Þ¾Û¢!²®0{÷¨¡2G Èì'Ç2w„á[}F*Ez1Tey-‡`ñsž".ÜΡ±:]Œ„¬€´à œä¬Ò×™VóÏìñþ¹¦í€õ±øÃˆ<¯Â¤% -»§€¿Cñ^~1º=¥iCälpùÒ JˆçQßJñˆêŠÆ×KÈY#Z“Ç©‡ùóK~̤¸62¾;})TU­¡æ<‘ŽxÿB¯®¥\´<·Ét+nÉÈó'œü‘ÜSû¶Zòãpǯze’Ìw¦FÿE§Ê¡øŽõ“)+@l­ÕÆJ³Å5JÂ%õÉyJVÔg9É8•èîH> ýäÄ{qJ¡Ba¤ðÒJ}wçäÒðPÚœöÂ{QkîVöØ‹¹§Xqh[¬©d2ê¸ÏÂ}©$­% Å8•!½ªVJRÏÂ¥k <í]²kÀÐ|gߥº0|‡F´ã̉³¥ÛhlB@àû£Ò–F°²ÁÎç"¤)(Ýà+¡dç´ûžOáTT`¹¯7»”È@J‚Tyvæ¢zퟣ$•©Õ$'¾wߦ²¿d…%i?x«¹úÔy؉zJtžÝù¤×ãd2Œ¬ó3ú™¥®ús¨’”Óób\ÞrDi °Ú£Á ìB³ÇcH¤K• oïÄRò"ðv8xò‘ñ€Gå]ss³ÐÞˆHJŠNì}ÇÏz :«£ÛÓ2}¹8Ô{sH%¸í$…I{8Ïñü ? U¹$Ö¶²‰o'WkÝ®ÒÔ7æ²ÀSrRëƒr’ãdcØû{·Øå¡h+ignœJÙ õ ²êçÚ!¦T€ Œ¼àJ}{÷5vé¸öëŒd$ò H þ5èðô(NžI½O1_V5¶ek¥´|tÜÌÀ‡ÒꕹEG…¯ù×Bèh1â0Ùpå@Se²ÈÛo¥°ß‚*gµÅŽÒJÀ'µ¿„§…‹·3%JÕ+Ï4Øûïe*oîŠÅûÑdøm·Û½d܆Úo  \dŸk •4é)·™hZ¥WÕz’Û]Íð6«ØÑQ8¬ 8•mWÖŠ¤ði»Åصi)S„[±jqs–^ßìo»è›–¢Ð—m9®5"o-NB<7c[Ó°Rw¹Y;‚O'cÓ~‹±ê{6¼êÖï1cÁi¿Õ©ayÈ”°³¸€ì3œš°îŽá¨wô¦FV¤#=ë6u[5ׄTÕ·!NÑ7Çd±Ô ÿ…«­±¶„©¹(ò…nãp QÔ€=°Óléd—CßÒò¹ÚæÝÞûtéYA|JÞ *BU´§Ê]Žs’jëhxQÀíLw·IN2rNiTãÄ™5h 7vƽ-k–0l×û›W’ãJeÇQ0•¶S·nУŽ3Î}j1¤z¨tdxÖ»v¶T7å-˜-ˆSÉmJ*ðü}ý²O;síŽÕ1³=–Sîšw}!Æ Dã’c¡Ô‚|ÑR[:OY]ê nêSN8·‘mû?•- Úœß¿’|ÇîúüR·A™c¿Xcë7£Ù®×\ÓÛµ· ÿiÍÙZ”mä{æÖ§ð§HÊÞÐ5UµE)áéJé¯Or¨¸t鹚Ç[]¦Ý[¢pކv©„¥¤·¸/qÜ|¹û£ñ¦»Jî0¦i9^åÀig1oh@KI ”¤,’£„yóÙÛÎjÛº0R¿#Šm)^íÙ8­Œ&®"¥%j½^ÿÉP³ÑE±gfÂ^ñ´Å»&é ƒèPψ½Ùs˹#îãvNpN#h9¬õYíwjÔb™¨ó¡9;â¶‚“„¯pÙ3ƒŽj\ËAyVsŠÝD;´wÍVqV²&E§b¶ƒÑ(MôíÍ)#P<¹(¼*ï àÔP…G{¾B¥ÎyϦ+{$~TmQ2õ©Õr¾ê êõNCMÆg C!gÔ|Ü‘éÍYÅEë-üšF¨Ñìô¶±[EéIôñÓ}ãF¡hÇÙ?Ý›’Ú·û?¹ýîõ)Ñú~ãb›{~v§¸Þ›¸Í2cµ(ùa çöHäñϦÎ_{h5¥O94(·©*àôõ¥…{y­2JV“Ï4éÍ ¬qL×óLöXÏÅ3%µa*É &!¬¼SÉø­ç%5Wõw®ZG-QZ®,gìqÖ?gÿÌ_d}9?Íú³¯zúüêÑo}›Dup>V¬ŸÄb¨ñy}ÔèU­î£¨z¬lšfÜ©wYÌÄAÈ@Yó¬ÿu#“\ÏԸϛp,iv mchzB”¯žÉüsøUYp•>âë“®’äLyÃ÷YR–~¦§½ éâ5¦©¥"Û )~àòÞNp–ôÜxúYkâ¤ÕæÎž¡õ¼Ù–„éî²ê Õ»\e1lÜOÚIS§Ô6ùíõ«_NèxÖ›œT£ÆsÃ9S¸Vµzf®Iìlj ˜qC,¡;m¡ `=G^g2ÛtsÆáî+Ïâq5*;r;(S†±D¶ÈÒQ!# ÀÍ?´P7„­#¸?^ 1Ø <Ÿ2}qÞ¤m¤- åÇÇze=Pº›ˆÌe ’ÈÞŸìw‡¨­­¥¾’9È 8"”œoÌÞìzäÿmaÑÈqþ¦$-ɘ5c$!YÆ8·°ÖP¡’žáJò}x¥m¥²Õ+Üð>”¥ ³êêÿ ¾Qnb&””§O¹Mx®xPÈ>ƒÒœvFï‚çÆkb@I„¥[)Ææšu_q“ê®mp y@ü&—¥Œ«çšÖãXó)X˜¡¢3ÔØÆÔ$$c¶8­ J³¸ÒÇR””üšDòŠ•µ$äþB—&Y&nRü&À'cíóIÎ<¨ ã>çÞ”ÁY ³æ=Éÿ_Ω>±õÆ×¦þŸÑ®G»_)~`!q¡`{8çÀàzçµ-ÁÉšhSY(ÁjIú…®tÆ‚iµ_$©SŸATx, ºî=ý“ý¥qõ®Kê6´ºkÛâ®÷rPÓj)‹ ?ÔÆo=ýãŽêõ?•1j ÅÊç>MÒë%ùÓžXSÒ\;‰??àvÍ1çd¨pBAòóÇåZèaÔ5gQFž´„—â'ÀXR‰ó`üÓÿOµÞ Ð÷¾<5(xÑœ9m_Ocò)•*ã!8<‘þ_5‹å*!)HŒ…VÞVg+†…[¾ÞGcôç¬gR²ÒcMDi؉!A ϲIá‡?mÀÔ ¸‘Ü/Ôâ¾i)‡çˆÒ”ž`RjÆÐ]lÖZcÂb[é»ÛÛÀ ÊÉZG÷V<Ã|ŠÓKRž›£Îâ:.Pwß­Ë.ÇñwÅ!aEçŠsÇš¡tÇ^´µú"ûzí39f_'Ø,qùâ¬[&±Š–’´>Ì‚¡Ì¸—ÿi5¶úOIhÎ]J3ƒë"tàmµ’}¨¦H—Ö&((“Ͷ3Œ•ÓbQÓ[jÑ–µ}ï·§íOOZÚ„ÒÞmðžØ¨§M.2™Òp£”e‡íV —¢…wJ…s¤êS³oC¡AR« ¨®hÊœ·6$*²º$€ÒÆô­÷u„Nq”aÝ“HFÁ Q>§šé­QÏz;šY (?–*}¥žiP‚R0@Á¨>*Ï­K4ÂÞp}î@5Ÿ¯LÑ…•ª ïO<ëËKE×÷”ù@àÒ©IîTqO±P˜±€Ï8¤Týºj+sE?ܨäö2šî´Nj5p•:T®É:R‘“Î)›œvø+HªgXu³HXÛP›¨b—@Èf2¼eŸŒ' ~$U!«IçRÛ°ØÊŽN×f¸Oÿbΰñ£¼UÍQUj{¨ë¹ÚŠ:@XíïQËÆµµ­o!¦Ó÷–âÂR>¤× _ºÓÔK«ŠZo „ڇ܊€Øê9þ5 Ÿt½\Õ¾}ÊTÊʼWйüMQâ*r²Ž«?zG]kž¿é»A[q盓éÿ‚‹Êíž?,Õ®úã«õ1\[kŸª!,PÁ;Ô?¼çËZ7±P*#Ú”6ÛMà¯ÊAÓñ¤ÊNNíÜëaú"œ5—˜¶ûÅÇœñI󣜚V[JÔ$‘‘é[vá­Ê!'Ë„÷¯v„¤“Œ(ãƒÏÓéUnììÓ ¡$&˜µ—X@H)IR°;ñÛ?tèo.*íÚ–Ü ‘8-‰õSXPÆ> þ5ή%&[8l”¬(;ž3þ<ýµ"4¯U­2e:– ÎÌeG%΢~Í*´o“S×ÁÖ÷&²ùó`cà∉q²Þ6îÁ ÷§™l©R6Œ¥[TíŽÆ²b)(ŒÇÉtî̪vB[F[V×R7$í ŽGÏçš’´´¡ $œ߸¦e6!•'pyO=½9¶…)…6(8X ñèGÐÓ ²èRm=EÁͪGˆN6’”ƒžÝø¥¬¥$‚È ÷ǧÒêØ ’ ü” ­I)ãœUïb–R@XÁgÊ?×4¡*B”P àF)39q–¼-…çwï'ëZ|T¼·±”ŒvÎsÍZåw:ÿ‡Ê·;%=Íc ¬ŒœcëÚ°‚±â)*ÁÝÜžß•k¾\-–KjîW»”Kd$ —¥<–Óøg¹úTo¨[[ ÆäòBGjeÕ·û“³.ï¨îlÛ`§;TáË+û- rµ|Æ©~¥~“öˆeËwO-ª»JÚ@¹MAm„t6p¥ãÝX¹«V_õ­»»wÔWI7IÄ`ºòð†ÿº€8HøHÅJ¦ÙÒÃtuJiè¼ýz±eõ›¯·]âØtÊa°¨”¸µ+ý¦XöZ‡ÝIþÊjžq)`¶ÚÜPTP€6Ƶ¼àIHi°p~ñε$)jñ”KŠ=ñßäóZ!¡ÓŽJIÂ+×Ôг)õ™ ÊF0Fx÷5‚Ò·HÀî3ƒÆ})bˆCKÚ ’p'Þ“Èy t@ôOñLB*F)jÝÙ­ ²Ró©NÓ’ /­`擹cJ»þµBS¡;ÒR9pÉHDzf-¤)Õx¤Œî$d~Z›öŠtÜžX+zæ"YQX( P϶1éY9J9p§€N{Rå-¤êä(züR'ä(ò‚Aõ(úÔ¦ÞÂçNMÉÜFìfÂÆÓ’yÖp¤\mï"L)oÅu)RR  P’Œ©*Qì=³š w¤)@àc8< µÌrÃÆE£:ç|µ-¦5$Ape<}¡³±ì{ŸE~?QÎm)ÁÁííEBŠå¡Ê¯‚¥ŸÝõð:ÃMj óv(ÈnõrJAVe¬æ>™©3Z£R5 é ØqÛíŽBtªwZc’x¿ü=x‡'îŠñUëUr¶góÒr+ÑÚ—Ç«oyüÃ4»I3:«RCvùÿlsüè{Sj%ŒÿH.¹ÿž9þuC¥£ŸJ–œ…R³Ö½ÔŸÌº©'¥Ç—5v¤lAvþxçùÓtÍi|e¥-z†ä„•)SVúœÔ?Rê"”G vL׎Øð㤭ç”{¤sɪŸª±z‹Q¿¥Ö ½Ž$‚~Êܘ«eµã¾2å ŒúŒúWO†ÄW×3K¶ìÛ…ÂU®ï{"y«ºß:1SÛÕÊàðãz¥8Ç*ÿ\ÕM©už©Ô®•ÝoS¤#ѵ<­‰ÀgÂ÷äŸZÍ vó¯AG KK·ÚÎþ nc‡|Î/ñ5êAO9Vk#»¥.vÕsfÒÅáû\Æ­²\SLL[ º´ýä¥xÚHõñOm›â0\ì¿Î½BÖõèkÀ2}½«ßLŠ­Ë«ö™ž$nyÃøšÉ/;»—\?õ«ú‘éÆ+$ƒÅ5 ºrí3Sï)D\?Uš«Á×>y5¥Dcô¬À~POMîfãï…‡W”`§Ì‡ñ¯VóޤeÕ”‘ßqæ°só^pÙ ò…sÿ$ÐJœ—2úé§PïËz`ʾÜÎ*V“)yu À óèçS4_/[ÍËvûRÿιÇEXµF ¾´}ºá>çJS¢·@!%X†T‘øŠ´ÞÔ£J¦;GÒ7‹2Þòµ1PÔÚ>¹HõÚ àcpTœéj»;N/ W6jný×&Ò/·½¤›ÝÉ'ßíKíù֨׫»i)zñt$e\J_#ß½F°Òò@ ß"y†k¹¼}r)SW­;".åÞmdC%žø¥µ¡m()¾Ý8൹žßZ¤¤uuM©_c²‡¢y}ÍŸÁ9¦+ŸT5lÝéŠôkrãììÀÊVOåŠ|:7=ôñcc€ÅÉÙéñû#R_oÅ‘¨®l6ÉrzГù«¼õª5¥N¤êë¬ç±áC”âÆåñ®p¸M™qŸL“1dåEç®N¢´ß×ò­ôº&ÚԨ߆†Ú}g×›~íûô…×›²Î¸@A<<ôÇp}vƒø­õ£Ô:šh™¨¯·+¬÷.JÜ)øNOéMeKÇ•8ÕUá9Zãg·á]JT)ÒVŠú*4£GÜ^¼OKÎýÐâÉ퀣ƒõ¬¼i*FÒó¥¸Þqǽ`®Þ€Ð²Ÿ\žôáªRÞæÅK‘»;˜²£Zœèìê‡o1âµùÖ¢ïñY% AûÀŸ‘Sku'-Ù‰%ÕeO81î£Y¤”ÉZÁg5"…¢µTþŸ\uä;Ný9l’"Ì™ö†‡†é-€Ÿ «yåæù #Í߃ˆ©%\äš›1nvÙÜP©oäuÁÏöÍjvKêR²òÉWÍÞµ$äŒcòíAõõ5)X¤ªÊKsÒã«P+qdš7+$îVO®Mx@à•`~uêöç9ûT•»Ý°ñï÷«ÏÃÿáœ×ƒ9Çñ¯B;îV>H©¹VÙ¥õ¨ŽV¢>M›é@+𢬙IE·¹Õºg‹$p8lÿÚ4ê”r£„Óf˜õ3 Wnÿò4¹N2;'ØW‚©w6xvl/2ß NãSn†&õ$6Ù2ëÍ…z¬ ÄdŸÂ <߯–Ùn×â%æÐãh›eM‡P°AJ’  ‚GñŠvÂhÎ[&2…E ‘”¶L{µEwUuF¹Ïšã³îKñ·¼¢”€U”“„á ¤qÀ©t;eŽý¨õ^–gNF·~©aÅÛæ4úÔê”ÑØ¯qÁ $Ÿ^j zÕfuѫųKF°]Ú˜&*[wÈCŽ ’<"”„‚£“Éöõ4ºïÔƒÑ.Ï[ô¼ MÆðÑb}Å–îä+ïøm”€Ù>ù5Ó§: ˉ%+¿«l´í6B¥%|Í=~hv}};£4uÁÍ=ï&ý :û²Z<&B“€ÞÒ0¬)8>àçÓ­E§"_ºÇ¨äÍŽ%µlµ5!1”ï„—œÙäJ•‘„ðrr¿V[µÄˆúZŸ¸ix¦ín—m’˜¶K9Ú∜úe<>iS½H¾/XÉÕª ©Sa&ë{¯µ%°…m$‘‘ÁÆqÍh…l2‚‹µ´ÒÝÜþ##Z†TžÚinîÇ^Úí¨ÒVKÂcZm—§][| É}´ýò…Œ-X(ÏÞò)~•! Ö‹Wa-’6ª%ë,•7ú£F1§¶ä­I¸®RœƒÌ”€Пšx‰©dÀÑ·}&‹Rbìâ\³+agiOû;{îë'”qz%•­;mà„*U\¹Y¯/Y‹Ñö[=êݧOê×­¾$묋’ZÜ“»VܤG›¿1íg¶NÒ·&¬Vû=÷UÄš¤9á!I„œ6”¨dùÎ3‘žF'j¦¯LBF¨ÑëôØQÓ™ÿ¬WJi'Ê€•n9$äÜö­sSDÓS!OgCC™u‚VcÎ7W *Ü9ka VÞã {ÖŽ6ÔVµ¼ùwoóêÐέkzîßæJ4E²ÏMÞ›·Ùmõ›?T\_[imFBN9'¸äúwêî­›§§J†ÜD@¹8ó¡Q°Hˆˆ)Y'Ê3íVŒM×~F¢¸è¨—kú%¹)¹âèät¥Å•ê‚T±ŒŒÎj—Öýdþ‘éÝ_cºi ,»öì&¢ó·ÅJJf€A8Â0ဵä٧СFºŽÚyøš0´)×qîõ©;ýÙEéš“QNeÊßeqØž7œ…©`\ãËôYµýÙWSzëÙ¯dJÔ&"cï71å-%ÂÒ•¼ ààñì*Ѿ¢^ú]­YÔöFØya¥G“òvHeX%ŽAÊRAô pFAšé®±èý-ÔÛn¸ÒÝ)M©èÿi2c&üã‰]AO”©¼4”’H'Û]ukXîd˲'=3Ðz#\õ3SÂcEÆgБ$4ˆŸoPUÖB\R[\‡TFÜøj'$dÖΰôþÆ4¦…Ô–#h‡ªfÜĶ—³ÜĦß%K-íðÜYNä·ÉIãÄ9^è.®ÜôwQ¯úª-¢$È:rqµIp”:ËË+(ÞAÆì{ñÍ{¨ÚVÁ¬l:£@té­;.Õ,ÈX‘yzp’ K~d¤ `ž@'žô]X2ÊåÜçKm—¾’ké:«¦úsFÞôí´Ï€l÷Oôìi×6>€êñØnû‰Ö\ºÛžýúmŒÓèUøºÄfö¸×2 ­a_x©D’¬òjpý! “­ÑféÌk`Ö–Ùî®~¶qçW!Ä)x#8|0‘’¿¼00Ië §Gmû¢›Ÿ*ÆÛ©´Ýº8Á޵µÅ4BÊr €;GênˆË.g@ËèŸO­·éå¦l°ìÂÊÞ©“yB'ço»\mÛÆ9¹‡ ÖX޵é›%êS ȸ¥‰ ,å'œƒƒÈâ¥:ìzc\ˆ÷-uÒÈ—JÔDÅUÎ=å輪[(IÉÉ<…øà*¾éާþ…ëë6«ûÛ²Jd}›Åð¼\åݵXúàÕ[EãYÜê †éUÂóÕ)#§ñÄmЖÄÄNxJ’R•­iZÀI(Ú@ÂO¿5¾ôóI뮓t»VÙôü=-qÔš‰6i@ZË^}ÀZ˜23ßqœ †ÚzômÚ“¨÷¯è wúoL–¿Xãì9JÓœø_´ûùÆÚšë ÑÑ#Óûu¡Peé‹À»Æ» {ŠÜ>´ g—áÎã÷;sÀÚ§¡uÂÐ0Ô½cÔÝ¡£ÛµÛ7Á¾5%ÕLûBRÑ+^UµI˧ŒåíÈÛ´ií¥¿F['Q/Z& úôÍÖM½M¾úÛiÒ§VœÛÊö%²?½ŸAM“?H›ÛUÚt¶×®.ð)wÆî.-;RíÇ#VŒÇîŒçœÂ§uGí·ô£õBaÜ•;õ—Û3¿*pìð¶qýg}Þ¨º ³æ_š/¤ZKO鮟³yÑÖ[ÛŠ!—¨.×Âc9 +m*m, º’Bwà”‚N;ò1ËýK²BÓ}A¿X­ÒÓ2 9Î5ô¬+Äh!ÈàùHíS–º½f¼hK–êOXÕ#O´cZæµur ­3€kÚ•€éÂG®Id·õ Ñ@j½%@ÙÀ¾NûLI‹qN=mlRÊ T°0•æQ;³C³- éêYÿÿ$©=j»Œ‡N>BO§ûLjÙÓ{”ÍQúõ.¥•"kVylÉ€ä· Šed á ™ö}»œi{÷l^qáãýîüR_Õ˜Ó:p¾žè½IéÙ2„¹ÉÌ‘-iÁN('Ê RqÜO=ó è/>ÇC·Ñ] §¯6mÒV7­R¬…뮣—yC3šwá¶] Ø 0‚Ÿ0É8Vk=¤4VýïzÒë¥àj½‡S; ‚óªC2RÛ@9±YRå(y8É#5¼õ‹OjëU¤u¦Qµ-â×0™¹5xzq¤ò⓸䓡É8ÆjiÓ­a ­_¢=âÕ©"[ï/.ÿã :/?d’ê ™Ú¡Œ¹µ8'!<„žjt{ýÅ«,-!¢ôΜý&:oÒ¶´ZajM="jà¡eIeϳ’vçZF;d€IÓ:[MèM{՛曋©®njÙVø庴Çe>9 Z’‚ ‰Ê½}ŒsQHÿ¤%ÌužÓÔZr3‘,ðo·Ù£Ê-6Ë% H!B²|Ù'o8ŒSmƒ¬Éfשôî¥Ñìê /¨.®]UoTõÇv+Ê^ï#éIã„çËÎ=2r]’w.(=<é¬N®tÖê½3:w¨V7ýY!Å8ˆ’¼&žIIÎFw¡g“Øv¯5¶€²hˆjYk[._¦êÇmV·ÜÉ[1XW™iôólRsÞƒ<Þ£_:‘Õ]-2+ÚHFÓ©i6hóg–bEC$,%o,r¥lJsœ$bž¿LN£ÁÖº†Åh³Ïƒ2=ž3·¯tG&¼A{ÂWï¤mWÉù¨v³-Ù’f¿ÑŸ§­K¥õ~°¸Úc_ß±²†íÖÙSxÏHX's«*@ H ਓì*~î‡é­»«=6~Vž°·TFrêÈÄäÊf݉-© JÕ÷– ž8õ&¨Þ’u*N„‹{´K²DÔ:~ýG¹Û$:¦|D§ 8J”3ƒÜàÓ¨õ>7ÛU×Dh㥷:®ŽÌSŽ¥IR R‚ví)ì;ò{T&¬ZpžvËcPôÞˤºw­ÄûT7o3µˆÓú}׉%–’­åÔŒö(QN}hÊè·Oí·ù ã¦l°ìÂÊÞ¨“yB'ço»¸#×vùq’ P_¤'\$õaÛ?Ùôò4ëź÷†ÜϼòöÚ0@@ƒÜó[µX´ÎºD{–»élKƤf"c*çòôFÞ ûª[(IÉÉ<…øà*ÝQmTi2ZåCé?ÑwGõã¢`ß/’g̶,=!HijSò0êÂ~ùB#íHíçÏ8(ƒÒ­¬/ÔV›(–KÄ]¿2ÞCEØí…¨+žÅah㪾õDÝ:§zRlIe6kŠç~²7xÛ•![<-ƒoû£¾ã÷{sų¢ºˆÖý®–;†¦Ó¦Ïˆ´X"Û§}¦tc)'Å Qá…“Ïïnñ‘X‰fZól@æ•Ò=Gè…êñ£´ä}ê±LFV¼ÃðC #<ã vÏìÉ©î·èÞ€»u§?Ñ ,f­½ÍµßZÚê₵%ÎN2twçpíT?èïÖwºI"òU§¨"\ÃQÕ3ÀðÜeJR†¼Ÿ1ô‡®ôÑëgê[V¥²ªçtƒÕ ´,¥²NFâ´¤ãG5IØzžmÔ=(6ð½\Q;õÛ6–vª9Ùál;¿Üý÷½ÛŽd7¯Òðõó@^ì–&m³4txÒ¼tMB›CjÜ„xã=ø©Ìˆp’dϬ=>ÒJ飼-§ô† ±Ý6ÛX·Þ[’¹Ð·¡q!ÕùÀQQÏ›ÉØdÒ®¶è- lÖºc§ºwGC‰?Y¢ ܺ—×›zK¨B¼ó´d!eDäÿ©®£kM ª£Î“hé{v Ôçüw§·{uô%e[—±’„¥!G<@ŽÂœzÁÖ9ÚïXé­Qo³~¡›§£2Ôb%ý£.4áq.}ÄãœqƒÛ½  P•‘{kN’h6¡ë],擱iøÖ{j]Ó÷¯×h\ÙrÖåZ.•y•Æ1ÛÓi´ [½Dꦑ×ky¼ô¢0Õ“bøNÝcÞŸmèob^û8N7'ÊpVAÚ3žs×Zî¥ÐÚWM±£íVw¬,)—n‡íf’Ü®2Fã’¬¨’1œTI®E¡%ª ¹R~æsSX­A\ã?ZØãÓ“AJ½ª·CYå®·;Ä+k@—eHm„9*Z‚Gñ4UõútÚF®êœ}M)ÿEÓ˲8r@²@ãœ9úz)±ØËSGbO§TUfŽ‘Ønÿò4ä; í+‡.ƒ»¾/ÉÃý'þü¿'+šñ'WiQUý ÿO/ɤߗäâÓê=(qs]¥E¡éåùÒïËòpúN5± T­Ç°®Ü¢¯ú/ýù~Côûòüœ\ʶðMmqYPµÙ”U@Ý߉åù'ôŸûòüœdÙÚ³Z&/ƒž1]©E  ¬ïÄòü‡é?÷åù>wk©ßc¶Ê’m³©à:¡•:¥zçÖ¾ÆQ]L.aâÕïs¡„ °ê×¹ñì‚q€sô¯ïÅ}…¢´d7ñµ½gŒc<ó^‚ïæ¯°tQ8ýÇǬq@IÅ}…¢§ q»„dppkÐ }9>•ö ŠŽ<~ããî 8×è'€¯°4QÃ'Ú;$}ÐMy´ûsé_`(¨á÷ƒÄ'Èøÿ´wüëÌmŒsŠûEO¼=£¸øüŒœÁùè•ÂR3_`(£† nGÈ cOö«Â“ÿ+ŽþµõþŠŽy/~GÈ!»Oo|ö£‚ Gð=ëëíp»ÃÚ{$”œûóï^åX ŠúûE>ðöžãä T@áG¿?aJõÇÍhÎrNkì <>ò=£¸ùyñžÆ±R”}AöŠ8`ñä|}ÿªkД“Ÿ~=ëì pûÈöŽãä8àò¬R<¹8Å}¢Ž/Ü|d ŒwÅb§ÂsÇÒ¾ÁQG ‡ˆ}‡È[|•ÍðŲ ¹ÎåLvá'è3WHEÍ{«æ3/SFwKÙ² ×$bK‰ã„5ÜdêÇÐ×К*T+*Í¡‹Aé+ˆÒñ4曂˜vøÃʑʖ£Ýk?¼£êh§Ú*âBŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ÿÙPyQt-x11-gpl-4.11.4/examples/draganddrop/puzzle/puzzle.py0000755000076500000240000003047412536324427023326 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) import random from PyQt4 import QtCore, QtGui try: import puzzle_rc3 except ImportError: import puzzle_rc2 class PuzzleWidget(QtGui.QWidget): puzzleCompleted = QtCore.pyqtSignal() def __init__(self, parent=None): super(PuzzleWidget, self).__init__(parent) self.piecePixmaps = [] self.pieceRects = [] self.pieceLocations = [] self.highlightedRect = QtCore.QRect() self.inPlace = 0 self.setAcceptDrops(True) self.setMinimumSize(400, 400) self.setMaximumSize(400, 400) def clear(self): self.pieceLocations = [] self.piecePixmaps = [] self.pieceRects = [] self.highlightedRect = QtCore.QRect() self.inPlace = 0 self.update() def dragEnterEvent(self, event): if event.mimeData().hasFormat('image/x-puzzle-piece'): event.accept() else: event.ignore() def dragLeaveEvent(self, event): updateRect = self.highlightedRect self.highlightedRect = QtCore.QRect() self.update(updateRect) event.accept() def dragMoveEvent(self, event): updateRect = self.highlightedRect.unite(self.targetSquare(event.pos())) if event.mimeData().hasFormat('image/x-puzzle-piece') and self.findPiece(self.targetSquare(event.pos())) == -1: self.highlightedRect = self.targetSquare(event.pos()) event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: self.highlightedRect = QtCore.QRect() event.ignore() self.update(updateRect) def dropEvent(self, event): if event.mimeData().hasFormat('image/x-puzzle-piece') and self.findPiece(self.targetSquare(event.pos())) == -1: pieceData = event.mimeData().data('image/x-puzzle-piece') dataStream = QtCore.QDataStream(pieceData, QtCore.QIODevice.ReadOnly) square = self.targetSquare(event.pos()) pixmap = QtGui.QPixmap() location = QtCore.QPoint() dataStream >> pixmap >> location self.pieceLocations.append(location) self.piecePixmaps.append(pixmap) self.pieceRects.append(square) self.hightlightedRect = QtCore.QRect() self.update(square) event.setDropAction(QtCore.Qt.MoveAction) event.accept() if location == QtCore.QPoint(square.x() / 80, square.y() / 80): self.inPlace += 1 if self.inPlace == 25: self.puzzleCompleted.emit() else: self.highlightedRect = QtCore.QRect() event.ignore() def findPiece(self, pieceRect): try: return self.pieceRects.index(pieceRect) except ValueError: return -1 def mousePressEvent(self, event): square = self.targetSquare(event.pos()) found = self.findPiece(square) if found == -1: return location = self.pieceLocations[found] pixmap = self.piecePixmaps[found] del self.pieceLocations[found] del self.piecePixmaps[found] del self.pieceRects[found] if location == QtCore.QPoint(square.x() / 80, square.y() / 80): self.inPlace -= 1 self.update(square) itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) dataStream << pixmap << location mimeData = QtCore.QMimeData() mimeData.setData('image/x-puzzle-piece', itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - square.topLeft()) drag.setPixmap(pixmap) if drag.exec_(QtCore.Qt.MoveAction) != QtCore.Qt.MoveAction: self.pieceLocations.insert(found, location) self.piecePixmaps.insert(found, pixmap) self.pieceRects.insert(found, square) self.update(self.targetSquare(event.pos())) if location == QtCore.QPoint(square.x() / 80, square.y() / 80): self.inPlace += 1 def paintEvent(self, event): painter = QtGui.QPainter() painter.begin(self) painter.fillRect(event.rect(), QtCore.Qt.white) if self.highlightedRect.isValid(): painter.setBrush(QtGui.QColor("#ffcccc")) painter.setPen(QtCore.Qt.NoPen) painter.drawRect(self.highlightedRect.adjusted(0, 0, -1, -1)) for rect, pixmap in zip(self.pieceRects, self.piecePixmaps): painter.drawPixmap(rect, pixmap) painter.end() def targetSquare(self, position): return QtCore.QRect(position.x() // 80 * 80, position.y() // 80 * 80, 80, 80) class PiecesList(QtGui.QListWidget): def __init__(self, parent=None): super(PiecesList, self).__init__(parent) self.setDragEnabled(True) self.setViewMode(QtGui.QListView.IconMode) self.setIconSize(QtCore.QSize(60, 60)) self.setSpacing(10) self.setAcceptDrops(True) self.setDropIndicatorShown(True) def dragEnterEvent(self, event): if event.mimeData().hasFormat('image/x-puzzle-piece'): event.accept() else: event.ignore() def dragMoveEvent(self, event): if event.mimeData().hasFormat('image/x-puzzle-piece'): event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: event.ignore() def dropEvent(self, event): if event.mimeData().hasFormat('image/x-puzzle-piece'): pieceData = event.mimeData().data('image/x-puzzle-piece') dataStream = QtCore.QDataStream(pieceData, QtCore.QIODevice.ReadOnly) pixmap = QtGui.QPixmap() location = QtCore.QPoint() dataStream >> pixmap >> location self.addPiece(pixmap, location) event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: event.ignore() def addPiece(self, pixmap, location): pieceItem = QtGui.QListWidgetItem(self) pieceItem.setIcon(QtGui.QIcon(pixmap)) pieceItem.setData(QtCore.Qt.UserRole, pixmap) pieceItem.setData(QtCore.Qt.UserRole+1, location) pieceItem.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsDragEnabled) def startDrag(self, supportedActions): item = self.currentItem() itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) pixmap = QtGui.QPixmap(item.data(QtCore.Qt.UserRole)) location = item.data(QtCore.Qt.UserRole+1) dataStream << pixmap << location mimeData = QtCore.QMimeData() mimeData.setData('image/x-puzzle-piece', itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(QtCore.QPoint(pixmap.width()/2, pixmap.height()/2)) drag.setPixmap(pixmap) if drag.exec_(QtCore.Qt.MoveAction) == QtCore.Qt.MoveAction: self.takeItem(self.row(item)) class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.puzzleImage = QtGui.QPixmap() self.setupMenus() self.setupWidgets() self.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)) self.setWindowTitle("Puzzle") def openImage(self, path=None): if not path: path = QtGui.QFileDialog.getOpenFileName(self, "Open Image", '', "Image Files (*.png *.jpg *.bmp)") if path: newImage = QtGui.QPixmap() if not newImage.load(path): QtGui.QMessageBox.warning(self, "Open Image", "The image file could not be loaded.", QtGui.QMessageBox.Cancel) return self.puzzleImage = newImage self.setupPuzzle() def setCompleted(self): QtGui.QMessageBox.information(self, "Puzzle Completed", "Congratulations! You have completed the puzzle!\nClick OK " "to start again.", QtGui.QMessageBox.Ok) self.setupPuzzle() def setupPuzzle(self): size = min(self.puzzleImage.width(), self.puzzleImage.height()) self.puzzleImage = self.puzzleImage.copy( (self.puzzleImage.width() - size)/2, (self.puzzleImage.height() - size)/2, size, size).scaled(400, 400, QtCore.Qt.IgnoreAspectRatio, QtCore.Qt.SmoothTransformation) self.piecesList.clear() for y in range(5): for x in range(5): pieceImage = self.puzzleImage.copy(x*80, y*80, 80, 80) self.piecesList.addPiece(pieceImage, QtCore.QPoint(x,y)) random.seed(QtGui.QCursor.pos().x() ^ QtGui.QCursor.pos().y()) for i in range(self.piecesList.count()): if random.random() < 0.5: item = self.piecesList.takeItem(i) self.piecesList.insertItem(0, item) self.puzzleWidget.clear() def setupMenus(self): fileMenu = self.menuBar().addMenu("&File") openAction = fileMenu.addAction("&Open...") openAction.setShortcut("Ctrl+O") exitAction = fileMenu.addAction("E&xit") exitAction.setShortcut("Ctrl+Q") gameMenu = self.menuBar().addMenu("&Game") restartAction = gameMenu.addAction("&Restart") openAction.triggered.connect(self.openImage) exitAction.triggered.connect(QtGui.qApp.quit) restartAction.triggered.connect(self.setupPuzzle) def setupWidgets(self): frame = QtGui.QFrame() frameLayout = QtGui.QHBoxLayout(frame) self.piecesList = PiecesList() self.puzzleWidget = PuzzleWidget() self.puzzleWidget.puzzleCompleted.connect(self.setCompleted, QtCore.Qt.QueuedConnection) frameLayout.addWidget(self.piecesList) frameLayout.addWidget(self.puzzleWidget) self.setCentralWidget(frame) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.openImage(':/images/example.jpg') window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/draganddrop/puzzle/puzzle.qrc0000644000076500000240000000015712536324427023453 0ustar philstaff00000000000000 example.jpg PyQt-x11-gpl-4.11.4/examples/draganddrop/puzzle/puzzle_rc2.py0000644000076500000240000053140512536324427024071 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:36:36 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\xa6\x9e\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x01\x00\x48\x00\ \x48\x00\x00\xff\xe1\x00\x16\x45\x78\x69\x66\x00\x00\x4d\x4d\x00\ \x2a\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\xff\xdb\x00\x43\x00\ \x05\x03\x04\x04\x04\x03\x05\x04\x04\x04\x05\x05\x05\x06\x07\x0c\ \x08\x07\x07\x07\x07\x0f\x0b\x0b\x09\x0c\x11\x0f\x12\x12\x11\x0f\ \x11\x11\x13\x16\x1c\x17\x13\x14\x1a\x15\x11\x11\x18\x21\x18\x1a\ \x1d\x1d\x1f\x1f\x1f\x13\x17\x22\x24\x22\x1e\x24\x1c\x1e\x1f\x1e\ \xff\xdb\x00\x43\x01\x05\x05\x05\x07\x06\x07\x0e\x08\x08\x0e\x1e\ \x14\x11\x14\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\xff\xc0\x00\x11\x08\x01\xa8\x01\xa8\x03\x01\ \x22\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1d\x00\x00\x01\x04\ \x03\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x05\ \x06\x07\x02\x03\x08\x01\x09\xff\xc4\x00\x54\x10\x00\x01\x03\x03\ \x03\x02\x05\x01\x04\x06\x07\x01\x0d\x07\x02\x07\x01\x02\x03\x04\ \x00\x05\x11\x06\x12\x21\x07\x31\x13\x22\x41\x51\x61\x71\x14\x32\ \x81\x91\x08\x15\x23\x42\xa1\xb1\x16\x33\x52\x62\xc1\xd1\xf0\x24\ \x34\x37\x43\x63\x72\x74\x75\x82\x92\xb3\xb4\xe1\xf1\x17\x36\x53\ \x73\x94\xa2\xb2\x25\x93\x09\x44\x83\xa3\xc2\xd2\xe2\xff\xc4\x00\ \x1b\x01\x00\x02\x03\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x03\x01\x02\x04\x05\x06\x07\xff\xc4\x00\x35\x11\x00\ \x02\x01\x02\x04\x02\x07\x07\x04\x03\x01\x01\x00\x00\x00\x00\x00\ \x01\x02\x03\x11\x04\x12\x21\x31\x13\x41\x05\x22\x51\x61\x71\xa1\ \xf0\x14\x32\x81\x91\xc1\xd1\xe1\x15\x23\xb1\xf1\x42\x52\x62\x63\ \x24\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xec\ \xba\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x2b\x15\x2d\ \x29\xee\x69\x33\xf3\xd9\x68\x72\xb1\x50\xda\x5b\x80\xae\x8a\x62\ \x9d\xa8\xe2\x45\x4e\xe7\x1d\x42\x13\xee\xa5\x00\x3f\x8d\x32\xcb\ \xea\x36\x9f\x8f\xfd\x65\xea\xdc\x93\x9c\x63\xed\x08\x38\xfe\x34\ \xa7\x88\xa6\xb9\x90\x9d\xf6\x26\xf4\x55\x7c\x7a\xa7\xa5\x87\x7d\ \x41\x6c\x07\xfe\x70\x9a\xdf\x13\xa9\x5a\x6e\x49\x09\x6a\xfb\x6c\ \x52\x89\xc6\xd1\x25\x19\xfe\x74\x7b\x44\x09\x27\x54\x53\x34\x5b\ \xec\x67\xd2\x14\x1c\x49\x07\x90\x41\xc8\x3f\x8d\x2f\x66\x6b\x2e\ \x76\x58\xab\xc6\xa4\x67\xb3\x22\xe2\xaa\x2b\x14\xad\x2a\xec\x6b\ \x2a\xb9\x21\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\ \x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\ \x14\x50\x01\x45\x73\x86\xb2\xeb\x1e\xa8\xb8\xf5\x36\xef\xa7\x34\ \xc4\xb6\xed\x36\xbb\x1b\xaa\x8f\x21\xef\x01\x0e\xbd\x21\xe4\xa8\ \xa5\x43\xce\x0a\x52\x9c\x85\x0e\x06\x70\x33\x9e\x46\x15\xc5\xea\ \x7e\xb2\x65\x7b\x9c\xb8\x35\x20\x7f\x65\xc8\xc8\x03\xff\x00\xb4\ \x03\x5c\xbc\x4f\x4b\xe1\xf0\xf5\x38\x72\xbd\xfb\x8c\x32\xe9\x0a\ \x4a\x4d\x6a\x74\x25\x15\x4b\x41\xeb\x1d\xd9\x18\xfb\x6d\xa2\x13\ \xff\x00\xfc\xa5\xa9\xbf\xe7\xba\x9f\xa0\xf5\x8a\xca\xe0\x02\x65\ \xb2\x7b\x07\xfe\x2c\xa5\xc0\x3f\x88\xfe\x55\x34\xfa\x63\x07\x3f\ \xf3\xb7\x8d\xcb\xc7\x1b\x46\x5c\xcb\x2e\x8a\x89\x41\xea\x3e\x8f\ \x97\x80\x2e\xc1\x85\x1f\xdd\x79\xa5\xa3\xf8\xe3\x1f\xc6\xa5\x31\ \xde\x6a\x44\x76\xe4\x30\xe2\x5d\x65\xd4\x05\xa1\x69\x39\x0a\x49\ \x19\x04\x1f\x6c\x56\xea\x55\xe9\x55\xf7\x24\x9f\x83\x34\x46\xa4\ \x27\xee\xbb\x9b\x28\xa2\x8a\x69\x70\xa2\x8a\x28\x00\xa2\x8a\x28\ \x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\ \x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x82\x40\xa4\xb2\xa5\x21\ \xa4\x92\x54\x05\x00\x6f\x5b\x89\x48\xe4\xd3\x65\xc6\xef\x1e\x2b\ \x6a\x52\xdc\x4a\x42\x46\x49\x27\x00\x54\x1b\xa8\xbd\x4a\xb4\x69\ \x98\xab\x54\x99\x29\x2e\x81\x90\xd8\x57\x3f\x8f\xb5\x72\xfe\xbc\ \xea\x86\xa1\xd6\x4b\x5a\x23\xc8\xfb\x25\xb4\x28\x82\xbd\xdb\x1a\ \x1f\xff\x00\xb1\xac\xb5\x71\x0a\x2b\x41\xb4\xa8\x4e\xab\xd3\x62\ \xfc\xd7\xfd\x73\xd3\x3a\x7d\xb7\x52\x25\x89\x8f\x27\x23\xc3\x61\ \x5c\x67\xfe\x57\xf9\x57\x3d\x6b\x3f\xd2\x3b\x56\x5d\x5e\x72\x3d\ \x85\xb1\x11\xa3\x90\x3c\x24\xee\x5f\xe7\xc9\xfe\x55\x08\xfd\x59\ \x09\x4e\xf8\xd3\x9c\x2f\xa9\x47\x71\x79\xc2\x4a\x4a\x7d\xd0\x81\ \x82\xaf\xc7\x02\x9d\xed\xce\x6c\x7d\x30\xed\x16\xf8\xe9\x51\x48\ \x52\x8a\x9b\x09\x18\xc7\x0a\x3e\xde\xfc\xd6\x47\x5a\xfa\xda\xfe\ \x27\x42\x38\x18\x47\x72\x1d\x72\xbd\x75\x02\xf8\xe3\x92\x25\x49\ \x9c\x42\xb9\x25\xc5\x12\x79\xfa\xf3\x4c\x32\xe0\xea\x1f\x15\x49\ \x72\x44\x85\xb8\x39\x50\xdd\x8c\x55\xa1\x73\x2d\xcc\x94\xe1\x97\ \x36\x44\xc5\x92\x30\x96\x13\xb5\x94\x28\x0c\x60\xa8\x77\xfc\x68\ \x95\x0d\x05\xb5\xa1\x96\x5b\x0e\x60\x78\x8e\x78\x7e\x32\xd2\x3b\ \x0d\xbb\xbc\xb9\xf8\xc2\xaa\x63\x8a\x90\xd7\x84\x8b\x5c\xfd\x79\ \x15\x22\xa2\x5f\xd2\xb2\x82\xb7\xf7\x0e\xe0\x2b\x38\xad\x4e\x8b\ \xcb\x07\x2e\x4b\x71\xb2\x39\xf3\x13\x56\x14\xcb\x5c\xb1\x19\xc5\ \x38\xdb\xa5\xa6\x88\x23\xed\x6b\x28\x2a\xfa\x25\x38\x1f\xc2\xa1\ \xf7\x24\xca\x48\x52\xa3\xda\x9b\x71\x09\xc9\xf1\x1a\x6b\x79\xfc\ \x49\xcd\x69\x85\x77\x3e\x66\x5a\x98\x65\x05\x71\x5e\x98\xea\x3e\ \xb1\xd3\x52\x03\xb6\xeb\xcc\xa6\xb6\x8e\x52\x97\x0e\x0f\xd4\x76\ \x35\x73\x68\x5f\xd2\x96\xeb\x15\x48\x67\x51\xc3\x44\x94\x81\x8f\ \x15\xaf\x22\xfe\xa7\xd0\xfe\x55\xce\xab\x44\xa7\x3f\x75\xc5\x83\ \xe8\x40\xe0\xfc\x81\x5a\x3c\x05\x28\x12\x94\x20\x94\x9c\x29\x25\ \x38\x50\x3e\xc6\x99\x28\x42\x7b\x99\x1c\x7b\x8f\xa4\x7d\x29\xea\ \xee\x9e\xd6\x91\x3c\x5b\x5d\xc5\x2b\x71\x23\xcf\x1d\xd3\xb5\xd4\ \x7e\x1e\xa3\xe4\x55\xa3\x06\xe6\xc4\x84\x8d\xab\x15\xf2\x62\xd3\ \x32\xe9\x6a\x7d\x33\x6d\x8f\x3b\x15\xd6\xd5\x9d\xc8\x59\x49\x49\ \x1f\x35\x7b\xf4\xb7\xf4\x95\xbe\x59\x5c\x6a\xdf\xaa\x5b\x54\xf8\ \xe3\x00\x3f\x9c\x3a\x91\xf5\xec\x7f\x1f\xce\xa1\x67\x86\xda\xaf\ \x32\x8e\x0d\x6c\x77\xfa\x56\x14\x38\x35\x95\x55\xfd\x38\xea\x75\ \x83\x56\xc4\x43\xd6\x9b\x8b\x52\x38\xca\x9b\x27\x0e\x23\xea\x9e\ \xf5\x62\xc5\x98\xdb\xa9\x04\x28\x1c\xd3\x61\x51\x4f\x62\x82\xba\ \x2b\xc4\xa8\x1e\xd5\xed\x5c\x90\xa2\x8a\x28\x00\xa2\x8a\x28\x00\ \xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x03\ \x88\xa1\x7f\xbf\x27\x51\x3f\xe9\xa9\x3f\xf8\x87\x6a\x67\xa2\xac\ \x97\x2d\x65\xab\x5c\xb0\xda\x56\xd4\x76\xa1\xb4\x97\xae\x33\x5d\ \x41\x5a\x58\x4a\xb3\xb1\x09\x48\x23\x72\xd5\x82\x46\x48\x00\x02\ \x79\xed\x50\xc8\x5f\xef\xc9\xd4\x5f\xfa\x6a\x4f\xfe\x21\xda\xbe\ \xbf\x45\x38\x81\x1a\x5b\x51\x5c\xd6\x8f\xdb\xcc\xbf\x3e\x82\xb2\ \x39\x2d\xb4\x94\x21\x23\xe8\x30\xaf\xcc\xd7\x98\x8e\x12\x18\x9e\ \x91\x9a\xa8\xae\x97\xe0\xf3\x98\x6a\x4a\xad\x6c\xaf\x6d\x4f\x17\ \xa0\xf4\x3b\xb7\x77\x34\xb4\x3d\x51\x27\xfa\x42\xdb\x25\xdf\x09\ \xe2\x93\xb8\x71\x9f\x28\x48\x07\x1e\xa0\x1c\x8c\xf3\x55\xc5\xce\ \xd5\x3a\xdd\xac\xe0\x69\x59\x0d\x62\x74\xcb\x82\x21\xa4\x83\x94\ \xa4\x28\x15\x78\x9f\x29\x09\x1b\xa8\x44\xc9\x09\xea\xfe\x96\xbb\ \x20\xab\xed\x0e\x6a\x20\xd2\xd5\x9f\xdc\x78\x2d\x2b\x1f\x88\x35\ \x6e\x5f\x7f\x57\xc1\xfd\x22\xb4\xf8\x91\x6c\x6e\x63\xf7\x6b\x5b\ \xa2\x33\xeb\x5f\xfb\x89\xc8\xe1\xc2\xa7\x12\x92\x0e\x54\xb4\x38\ \x10\x48\x23\x84\x8e\xf5\x34\xb0\x58\x6c\x6c\x23\x52\x31\xcb\xad\ \x9a\x5c\xd1\xa1\x53\xa7\x5d\x5d\x2b\x59\xdb\xe0\x54\xfa\x96\xd2\ \xed\x8e\xf9\x2a\xd4\xf3\xa8\x75\x71\xd4\x12\x56\x80\x40\x39\x00\ \xff\x00\x8d\x74\x86\x8a\xff\x00\xdc\xdb\x27\xfd\x1f\x1f\xfe\xed\ \x35\x4e\xf5\x96\xe7\x6f\x91\xa8\x25\x5b\x9a\xb3\x35\x1e\x64\x77\ \x92\x5c\x9a\x97\x32\xa7\xc6\xce\xc5\x38\x18\xee\x3d\x4f\x6a\xb8\ \xb4\x57\xfe\xe6\xd9\x3f\xe8\xf8\xff\x00\xf7\x69\xab\xf4\x4d\x28\ \xd2\xc5\xd5\x84\x1d\xd2\xfb\xec\x3f\x05\x05\x0a\xd3\x8a\x1d\xe8\ \xa2\x8a\xf4\x67\x50\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\ \x00\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\ \x00\x2b\x15\xa8\x24\x50\xb5\x84\x8c\xd3\x0e\xa0\xbd\x47\xb7\xc4\ \x75\xf7\xde\x4b\x6d\xb6\x92\xa5\xa9\x47\x01\x20\x7a\x9a\x1b\x49\ \x5d\x80\xa2\xef\x75\x66\x1b\x2a\x5b\x8e\x25\x21\x23\x24\x93\x80\ \x05\x73\xef\x58\x7a\xe7\x06\xd4\xd3\x90\xac\xce\x99\x32\xd4\x76\ \x25\x48\xe4\x0f\xa7\xf9\xd5\x67\xd7\x9e\xb6\xbd\x7a\x7d\xfb\x3d\ \x85\xe5\x26\x30\x25\x25\x40\xe0\xb8\x7d\xcf\xc7\xc7\xe7\x5c\xff\ \x00\x26\xe2\xec\xa5\xf8\x4d\x2d\x4b\x5a\xc1\x0e\xba\x4f\x27\xf1\ \xf4\x1f\x1e\xbf\x4a\xc7\x52\x72\x93\xb1\xb2\x8e\x19\x7b\xd5\x3e\ \x44\x9a\xf3\xa8\xaf\xda\x9a\xf6\xa5\xbc\xa3\x31\xe2\xb2\x50\xd2\ \x95\x96\xd2\x3d\x49\xf4\xc0\xf5\x39\xa5\xb6\xb6\xdc\x72\x4b\x5e\ \x1a\x05\xce\x43\x6a\xf0\xfc\x57\x13\xfb\x16\x95\xfd\x86\x9b\x1c\ \x13\xf8\x7c\x9c\x0e\x6a\x2b\x6b\x79\x0b\x3f\x66\x8e\x4e\xc1\xca\ \xd4\x14\x40\x5e\x3d\xc8\xf9\xf6\xfc\x39\xe6\x9f\x58\x9a\xb5\x25\ \x21\x95\x06\xe3\xb2\x48\x71\xf4\x80\x0a\x8f\xab\x4d\x8e\xc0\x7a\ \x9f\x4f\x55\x12\x6b\x1d\x48\xeb\xa9\xd5\xa4\xf4\xb4\x47\xf9\x0c\ \xb6\xc3\x98\x91\x21\x72\x5c\x3b\x9c\x77\x68\xf2\xa4\x0f\x75\x0f\ \xbd\xf4\x1c\x1f\x73\xda\x9a\xa7\xdc\xd2\x85\x15\xdc\xe6\xc5\xb7\ \x30\xac\xa9\x4d\xaf\x97\x1e\xe3\x8d\xc8\x4f\x20\x7b\x02\x31\xf1\ \x4f\x9a\x5b\xa7\xda\xe3\x5f\xa5\x0f\xdb\x63\x1b\x75\xa0\xf3\xf6\ \xf9\x0b\x2d\xa5\xcc\x71\x94\x03\xe6\x57\xd7\x18\xe3\x8c\x0a\xb7\ \xb4\x6f\x40\x74\x95\xad\x9c\xde\x19\x45\xe2\x6a\x80\x52\xe4\x3c\ \x54\xbe\x7e\x01\x38\x03\xd7\x9a\x5a\x69\x6e\x5e\x7d\x5d\x9f\xaf\ \x5e\x07\x3c\xc6\xd4\x53\x2e\x0e\x2a\x3d\x92\xdb\x74\xbb\xac\x79\ \x50\x0e\xe6\xa3\xa4\x7b\xe1\x18\x51\xfc\x54\x3b\xd4\x92\xdf\xa2\ \xfa\x9f\x7b\x86\xa7\x54\xf7\xea\xa6\x00\x4e\xe6\x63\xfe\xc7\x8e\ \xc3\x71\xee\x4f\x3e\xa4\x9f\x7a\xea\xdb\x5e\x9a\xb6\x5b\xe3\x08\ \xb0\x62\xb0\xcb\x09\x18\x21\x2d\xa5\x39\xf8\x24\x0a\x5e\xcd\x9e\ \x32\x54\x14\x94\x0c\x01\xe5\x18\xe1\x3f\x41\xda\xac\xa4\xff\x00\ \xc5\x5b\xcc\x53\xa9\x0f\xf2\xd7\xc9\x7a\xf8\x9c\x8f\xff\x00\xb1\ \xdd\x4a\x94\x87\x5c\x98\xea\xc9\x5e\x00\x49\x59\xc7\xb2\x92\x73\ \xc1\x1e\xc7\xbf\x15\xa9\xde\x96\xea\xa3\x35\x08\x4b\xc8\x44\x84\ \x8c\x07\x50\x3c\x30\xbc\x7a\xab\xe4\xe4\x8e\x7b\xe2\xbb\x18\x45\ \x6d\x2e\x15\x14\xa7\x80\x07\x22\xbc\x5c\x28\x0e\x0d\xaa\x6d\xa3\ \x9e\xd9\x19\x1f\x91\xa2\xf5\x3f\xd8\x15\x5a\x7f\xe9\xfc\x9c\x87\ \x0f\xa3\x77\xe9\x4a\x53\x6d\x86\xfc\x50\x77\x17\x0e\xed\xa3\x27\ \x03\x91\xdf\xde\x9b\xb5\x1f\x4c\x2f\xd1\xe6\xbb\x1e\x54\x34\xf8\ \x8d\x21\x4a\x0f\x25\x5c\x28\x63\x19\x3f\xc0\xd7\x65\x7d\x91\xb6\ \x50\x52\xde\xdc\x7c\x0e\xd4\x96\x65\xbe\xdf\x29\x59\x93\x1d\x0e\ \x12\x36\x92\x47\x04\x7c\xd5\x33\xd4\x5f\xe4\x4b\xa9\x4e\x5a\x38\ \xe8\x70\x94\xbd\x33\x32\x24\x77\xb7\x36\xb5\x2d\x04\x04\x92\x9f\ \x4e\x32\x3e\x79\xed\x4c\x13\x2d\x8e\x24\xa9\x21\xa2\x36\xf2\xb0\ \x7f\x70\x73\xeb\x5d\xe9\x73\xd1\xf6\x29\xb9\x58\x8e\x86\xdc\xc1\ \xf3\x84\x8c\x82\x7d\x73\x51\x7b\xd7\x49\x74\xfd\xc2\x21\x6f\xc3\ \x0d\x9f\xed\x36\x90\x0e\x7e\xbf\xeb\xbd\x32\x38\xca\x91\xdd\x5c\ \x54\xb0\xf4\x27\xb3\x68\xe3\x5d\x31\x7d\xbd\xe9\xa9\xad\xdc\xed\ \x53\x1f\x8c\xeb\x6a\xe0\xa1\x44\x11\x5d\x41\xd1\xff\x00\xd2\x59\ \xc9\x4f\xc7\xb4\xea\x86\x9b\x69\xd5\x00\x94\xca\x4f\x94\x28\xff\ \x00\x78\x76\xfc\xb1\x50\x0d\x7f\xd1\x5b\x8d\xad\x97\x8d\xb5\x84\ \xbd\x1c\x82\xaf\x10\xe4\xaf\xe3\x38\xaa\x66\xe3\x02\x6d\xb5\x4a\ \x6a\x53\x2a\x65\x7b\xb0\x9e\x31\xdb\xe6\xb5\xc6\xb4\x2b\xad\x37\ \xf3\x31\x55\xc2\x38\x6a\xf5\x5d\xa7\xd4\xfd\x2d\xa8\x63\xdc\xe3\ \x21\x68\x71\x2a\xdc\x32\x30\x73\x9a\x92\xb6\xad\xc2\xb9\x17\xf4\ \x56\xd6\x2e\x4b\xb0\x43\x87\x29\xf5\x19\x2c\x0f\x0d\x40\x9e\xe0\ \x76\x3f\x95\x75\x6d\xaa\x40\x75\x94\x9c\xe7\x22\x9f\x86\xa8\xe7\ \x16\xa5\xba\x30\xb4\xe2\xdc\x58\xbe\x8a\x28\xa7\x80\x51\x45\x14\ \x00\x51\x45\x14\x00\x51\x45\x14\x00\x51\x45\x14\x00\x51\x45\x14\ \x01\xc4\x50\xbf\xdf\x93\xa8\xbf\xf4\xd4\x9f\xfc\x43\xb5\x7d\xfe\ \x8a\x72\xb7\xe9\x1d\x41\x01\x6a\xfd\xac\x4d\x41\x24\xed\x3e\x88\ \x71\x28\x71\x27\xf1\xdc\x7f\x23\x54\x24\x2f\xf7\xe4\xea\x2f\xfd\ \x35\x27\xff\x00\x10\xed\x4d\xf4\x06\xa3\x97\xa1\x75\x74\x9b\xdb\ \x11\x9c\x9b\x6d\xb8\x32\x96\xee\x71\x1b\x50\x0e\x12\x8c\xec\x75\ \xbc\xe0\x15\x00\x48\x29\x24\x64\x1e\xf9\x15\xe6\x69\xe2\xa1\x43\ \xa4\xa7\x9d\xd9\x3f\xc1\xe7\x70\xb5\x55\x2a\xf9\x9e\xda\x89\xcc\ \x77\x93\xd5\x8d\x2b\x01\x39\xf1\x91\xa9\x5b\x2a\x4f\xf7\x5b\xde\ \x55\xf9\x62\xad\x5d\x66\xfa\x15\xfa\x4c\xe8\x18\xe3\x1b\x9b\xb6\ \xdc\x14\xae\x7f\xb4\xdf\xff\x00\xf3\x4e\x70\xa1\x68\x79\x85\x8e\ \xb0\xdb\xa1\x4b\x9c\xe2\xa2\xa9\xd8\xde\x18\x3e\x5d\xfe\x55\xa8\ \x37\xc0\x0b\x3c\x85\x13\xd8\x66\xaa\x6b\x9e\xa2\xb8\xbf\xd4\xd8\ \x3a\xe5\x09\x42\x66\x41\x75\x61\x31\x9c\xc9\x42\x99\x5a\x3c\x35\ \x37\x9e\xe0\xed\xc6\x15\xee\x33\x83\xda\x9f\x1a\x94\xfa\x36\x30\ \xa5\x51\xee\xef\xf0\x34\xe9\x86\x8a\x4d\xde\xed\x3f\x80\xbf\xaa\ \xff\x00\xef\x85\x76\xff\x00\xe6\x27\xff\x00\xc1\x35\x7c\xe8\xaf\ \xfd\xcd\xb2\x7f\xd1\xf1\xff\x00\xee\xd3\x54\x46\xba\xd5\x16\xed\ \x4a\xb4\xc9\x63\x4e\xc6\xb7\xcd\x5a\x92\xb9\x12\x42\xc2\xdc\x73\ \x09\xc0\x4e\xed\xa0\xed\x1f\xe1\xda\xaf\x7d\x15\xff\x00\xb9\xb6\ \x4f\xfa\x3e\x3f\xfd\xda\x69\x7d\x14\xe1\x2c\x5d\x59\x42\x57\x4f\ \x5f\x9b\x1b\x83\x71\x75\xa6\xe2\xee\x98\xef\x45\x14\x57\xa3\x3a\ \x81\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\ \x01\x45\x14\x50\x01\x45\x14\x50\x01\x58\xb8\xa0\x91\x9a\xc8\x9c\ \x0c\xd3\x5d\xde\x62\x58\x69\x44\x9a\x00\x43\xa9\x6f\x71\xad\x90\ \x5e\x93\x25\xf4\x32\xd3\x48\x2a\x5a\xd4\x70\x12\x07\xad\x70\xef\ \x5f\xfa\xd5\x37\x53\x5c\xdd\xb4\xd9\xde\x5b\x76\xd6\xd7\x81\xb4\ \xff\x00\x5a\x7d\xcf\xbf\xf8\x54\x8b\xf4\xbb\xea\x7b\xcf\xcb\xfe\ \x89\x5a\x65\x1d\x88\x39\x98\xa4\x1f\xde\xfe\xc9\xf8\x1f\xcc\xfc\ \x57\x2d\x38\xe1\x5e\x48\x59\x28\x07\xef\x9e\xea\x3f\xe5\x4a\x6d\ \xcb\x51\x94\xd2\x5d\x66\x2e\x9d\x25\x4e\xba\xb4\xa9\xce\xff\x00\ \xd6\x63\x93\xf4\xa4\x65\xe2\xf1\x11\xd8\x18\x1c\xef\x56\x71\x91\ \xf2\x7d\xbf\x9d\x27\x2a\x5b\x9e\x44\x79\x53\xeb\x4a\xed\xd1\x5f\ \x98\xfb\x50\xe1\xb2\xe3\xae\xba\xb0\x94\xa1\x09\xdc\xa5\xab\xe9\ \x51\x95\x41\x5d\x8d\x52\x95\x59\x59\x7a\xee\x1d\x60\xb8\x86\x98\ \x53\x49\x71\x61\xa3\x80\xa0\x84\xf9\xdd\x3e\x80\x7b\x7b\x01\x5d\ \x1d\xd1\x7e\x8c\x49\x75\x11\xb5\x0e\xb5\x8e\x94\x24\x25\x2a\x85\ \x68\x71\x3e\x54\x27\xba\x4b\xa3\xf8\xec\xfc\x4d\x3b\xf4\x1f\xa3\ \x90\xb4\xc4\x78\xb7\xdd\x47\x19\x32\xef\x65\x21\xc6\x18\x58\x05\ \x11\x09\xf5\xc7\xef\x2f\xe4\xf6\xf4\xab\xb1\x5b\xce\xe5\xac\xa8\ \x1c\xe4\x93\xeb\x5c\xba\xb5\x54\xde\x9b\x1d\x88\x5e\x94\x72\xad\ \xff\x00\x83\xd8\xed\x04\x27\x03\x69\x38\xc7\x09\x09\x48\x00\x60\ \x00\x3d\x00\xa5\x71\xd8\x0b\xe3\x97\x08\xe0\xe0\x7f\x0c\xd6\x29\ \x42\x36\x6f\x70\x1c\x1c\x61\x03\xbf\xe3\x4b\x59\x5c\x82\x9d\xad\ \xa0\x32\x9f\xe3\x55\x8a\x11\x26\x2a\x62\x02\x8a\x7c\xe9\x43\x69\ \xfe\x35\xea\x9b\x82\x8e\x14\xe0\x51\xad\x68\x61\xc7\x55\xe6\x5a\ \x96\x47\xb9\xed\x5b\x5b\x80\x08\xc9\xc1\x1d\xfb\xd3\x92\xec\x42\ \x76\xdd\x98\x20\x42\xc7\x2b\x03\xf0\xcd\x6a\x75\x8b\x7a\xff\x00\ \xe1\x07\xce\x07\xf1\xa7\x06\xe3\x36\x8c\x27\x18\xc7\x7c\xf7\xac\ \x84\x66\x72\x41\x03\x8f\x8c\x54\xb8\xb6\x82\xe3\x42\x99\x86\x01\ \x01\xdc\xfb\xf3\x5a\x5d\x6d\xa2\x0e\xd1\xba\x9e\xdc\x8b\x1b\x61\ \x3e\x51\x8e\x7b\xd2\x65\x47\x61\x00\xed\x52\x47\xe3\x4b\x94\x4b\ \x29\x0c\xcb\x65\xac\x02\xa6\x17\x9f\x42\x38\xa4\xab\x8e\x82\xbd\ \xac\xad\x48\x57\x38\x0b\xe2\x9f\xd6\xc3\x7d\x82\xc2\x49\xe7\x93\ \x9a\x45\x2e\x39\xd8\x72\x90\xa0\x79\xc6\x29\x72\x80\xc5\x21\x96\ \x43\x44\x20\xb6\xea\x76\xa8\x8c\x13\x8e\x08\xaa\xbb\xab\x3d\x35\ \xb5\x6a\x48\x0f\xb8\xd3\x49\x8b\x3d\x00\x29\x0a\x1c\x03\x8f\xa5\ \x5b\x2a\x52\x9a\x05\xb2\x0a\xdb\xfe\xca\x8f\x3f\x81\xa4\x17\x08\ \xe8\x75\x1e\x4e\x47\x3b\x4f\xaa\x7e\x0d\x21\xe8\xf4\x1a\x9b\x5b\ \x1c\xc1\xd1\xb7\x17\xa5\xf5\x93\xb6\x7b\x92\x8c\x79\x28\x21\x0d\ \xa9\x47\x09\x74\x64\x91\xf8\xd7\x6c\xe8\x8b\x88\x93\x05\xa3\xbb\ \x9c\x73\x5c\xa7\xd7\x8d\x28\xb9\x50\x13\x77\x84\x16\x89\x71\x32\ \x49\x47\x7c\x03\xc6\x7d\xf1\xcd\x4d\xbf\x45\xce\xa0\xbf\x7d\xb4\ \x88\x97\x27\xf3\x3a\x2e\x10\xe1\x3d\xd6\x3d\x15\x5d\x2c\x35\x48\ \xc3\xaf\xdb\xb9\xc9\xc5\xd3\xb4\xb3\x9d\x4c\x85\x65\x35\x95\x22\ \xb7\xc8\x0e\xb4\x08\x39\xc8\xa5\xb5\xd2\x33\x05\x14\x51\x40\x05\ \x14\x51\x40\x05\x14\x51\x40\x05\x14\x51\x40\x05\x14\x51\x40\x1c\ \x4b\x19\xb5\xb7\xd6\x6e\xa2\x25\xc4\x29\x04\xde\x64\x28\x05\x0c\ \x70\x5f\x74\x83\xf8\x82\x0f\xe3\x52\x2a\xe9\x7b\xbe\x88\xd2\xb7\ \x6b\xda\xaf\x57\x0b\x2b\x0f\x5c\x16\xda\x5a\x5b\xdb\x94\x92\xb4\ \xa7\x3b\x42\x80\x20\x2b\x19\xee\x73\xc7\x14\xba\x06\x9e\xb1\x41\ \xc7\xd8\xec\xf0\x19\x23\xf7\x92\xc2\x77\x7e\x78\xcd\x79\xcc\x5f\ \x42\xd4\xc4\x57\x95\x4c\xc9\x26\x71\xff\x00\x4c\x9b\x93\xeb\x68\ \x50\x9d\x2d\xbc\xea\xbd\x2d\x09\x76\xcd\x3f\x09\xeb\x8d\xad\x6e\ \xad\xd6\xe2\x2e\x32\xdc\x0c\x29\x44\x95\x06\xd4\x9c\x10\x92\xa3\ \x9c\x1c\x8c\x93\x8c\x66\xb7\x9d\x0b\xac\xef\x13\xdf\x9a\xab\x2a\ \x98\x32\x1d\x53\x8b\xf1\x16\x96\xc2\x4a\x89\x27\x85\x1c\xe3\x9a\ \xe8\x7c\x51\x5a\x5f\x43\xf1\x22\xa3\x5a\xab\x92\x5e\x0b\xee\x68\ \x58\x04\xe2\xa3\x39\x36\x91\x4a\x59\xfa\x41\x77\x72\x43\x6a\xba\ \xcf\x88\xc3\x19\x05\xc4\xb2\xa2\xb7\x31\xea\x06\x40\x00\xfc\xf3\ \x57\x3c\x56\x1a\x8b\x19\xa8\xcc\x20\x21\xa6\x90\x10\x84\x8f\x44\ \x81\x80\x2b\x65\x15\xbb\x09\x81\xa3\x84\x4f\x86\xb7\x34\xd1\xc3\ \xc2\x8f\xba\x14\x51\x45\x6c\x1e\x14\x51\x45\x00\x14\x51\x45\x00\ \x14\x51\x45\x00\x14\x51\x45\x00\x14\x51\x45\x00\x14\x51\x41\xed\ \x40\x1a\x64\xb8\x10\x82\x73\x54\xe7\x5e\xb5\xba\x74\xbe\x91\x9d\ \x3d\x0b\x1f\x68\xdb\xe1\xc7\x4f\xbb\x87\xb7\xe5\xdf\xf0\xab\x3e\ \xff\x00\x28\x33\x1d\x64\x9e\xc2\xb8\x63\xf4\xc3\xd6\x4b\x99\x7e\ \x6a\xc6\xc2\xce\xd8\x83\x2b\x19\xe0\xad\x5c\xff\x00\x01\x8a\x5d\ \x57\xb4\x49\x8c\x73\x4a\xcc\xa1\xaf\xf7\x17\xee\x57\x07\xdf\x7d\ \xd5\x2d\x6e\x28\xad\xe5\xa9\x59\x2a\x24\xe7\x14\xd5\xcb\x87\xbe\ \xd4\x0f\x5a\xcf\x03\x1e\x62\x08\x1c\xa8\xfb\x9a\x5f\x68\xb4\x4d\ \xba\x5d\x22\xdb\xd8\x6c\x87\x1f\x52\x52\x06\x39\x4a\x54\x47\x9b\ \x1f\x43\x9a\x9b\xa8\xab\xb2\xee\xf3\x7a\x1a\xad\x30\x24\xdc\xe7\ \x35\x02\x0b\x0b\x79\xe7\x94\x12\x86\xd0\x39\x51\xae\xbb\xe8\x2f\ \x4c\x2d\xda\x46\x0b\x77\x6b\x93\x2d\xc9\xbe\x38\x8c\xee\x23\x72\ \x63\x02\x3b\x27\xe7\xe6\xab\x7e\x94\x69\x64\xdb\x2e\x69\xf0\xda\ \x58\x25\xe2\xca\x1f\x18\x25\x48\xc9\x19\xcf\xf7\xb1\xc9\x1e\x99\ \xc5\x74\xbd\x81\x29\x6d\x01\xa0\x41\x09\x01\x28\x00\x76\x03\xd3\ \xe6\xb8\xf8\xac\x43\xa9\x53\x22\xd9\x1d\xbc\x3d\x0e\x05\x2c\xdf\ \xe4\xfc\x90\xe9\x17\x7b\x7e\x6f\xde\x23\x72\xb3\xef\x4a\xdb\xdc\ \xa3\xb8\x8e\x7d\x0f\xb5\x68\x27\x19\xdd\xd8\x9e\x00\xf5\xa5\x31\ \xb0\x52\x37\x77\xec\x71\x54\x48\xab\x62\x96\x93\x80\x0a\xb3\xf8\ \x73\x4a\xd9\x51\x24\x81\x80\x33\xdc\xd6\x90\xe2\x11\x8c\x10\x93\ \x8c\x01\x58\x3f\x71\x83\x17\xc8\xe3\xa9\x2b\x03\x24\x67\xb7\xd6\ \x98\xa2\x29\xdf\xb0\x71\x68\xa9\x59\x05\xc5\x76\xe7\x06\xb7\x15\ \x38\x94\xf0\xb7\x30\x3d\xd5\x4c\xc9\xbd\xc6\x43\x49\x77\x7a\x58\ \x4a\xf2\x12\x56\xa4\xa7\x77\xd3\x3e\x9f\x35\x9b\x77\x48\x4f\x63\ \xc2\xb8\x47\x77\x71\xc1\x28\x90\x0f\x3e\xdc\x1e\x7e\x95\x74\x43\ \x84\xbb\x07\x15\x2d\x47\x95\x1c\x8f\x92\x6b\x15\x2c\x2b\x92\x47\ \xe3\x5a\x54\xb5\x1e\x12\xb5\x29\x20\x8f\x29\xf4\xf9\xad\x98\xe3\ \xb8\x3e\xf8\xa9\xd4\x8b\x02\x9b\x4a\xb9\x3c\x67\x8c\x56\xa2\x10\ \x14\x46\x33\x8a\xcc\xa4\x02\x40\x04\x7f\x8d\x01\x04\x05\x64\x10\ \x31\xeb\xcd\x55\xa2\xcb\x43\x4a\x92\x7b\x14\x12\x0f\x6e\x2b\x5b\ \x9e\x22\x06\x52\x4a\x7e\x94\x92\xf7\x72\x8b\x05\x4d\xb2\xe3\xe8\ \xf1\x94\x37\x10\x55\xf7\x52\x06\x49\x3e\xc3\xe6\xab\xfb\xc7\x5a\ \x34\x55\xba\x77\xd8\x8d\xee\x33\xae\x83\x8d\xcd\xab\x2d\x9c\x77\ \xe7\xb1\x3f\x4c\xd2\x65\x24\x98\xd8\xd3\x94\xb6\x44\xf9\xf5\x13\ \xe5\x71\x00\xfc\x8a\x6f\x79\x18\x3b\x90\xa3\xf2\x3d\xe9\xb6\x26\ \xb5\xb2\x4e\x4b\x65\xb9\x0d\xa9\x2e\x63\x0b\x6d\xc0\xe2\x4e\x7b\ \x64\xa7\xb1\xfa\xd3\xa9\x53\x4b\x48\x52\x16\x30\xa1\xc0\x1e\xbe\ \xd4\xa7\x69\x6c\x5d\xc6\x51\xdd\x0c\x77\xc8\x2d\xca\x8a\xe2\x1c\ \x40\x29\x5a\x70\x7d\xf9\xae\x6c\x4c\xf9\x3d\x2e\xea\x4b\xae\xad\ \x0b\x30\x5e\x7b\x7a\xb6\x76\x29\x27\x9f\xc7\x06\xba\x8d\xf0\x52\ \xe8\x41\xfb\xa7\x3c\xd5\x1f\xd7\xdb\x2b\x52\x65\xc6\x75\x4d\x05\ \x78\x8a\x28\x73\x9f\xbb\xc7\x7f\xaf\x22\x99\x4e\xa6\x4d\xf6\x17\ \x2a\x0a\xad\xe2\xce\xa4\xd0\x37\xe8\xf7\x2b\x73\x0f\x32\xf2\x5c\ \x6d\xc4\x05\xa1\x60\xf0\xa4\x91\x90\x6a\x72\xca\xb7\x24\x57\x24\ \x7e\x8b\x5a\xad\xdf\xd4\xe2\xc3\x35\x64\x49\xb6\xaf\xc1\x04\xf1\ \xbd\xb2\x72\x93\x8f\xe1\x5d\x51\x68\x90\x1e\x61\x24\x1f\x4a\xec\ \xe1\xe6\xe5\x1b\x3d\xd1\xc2\xb3\x8b\x71\x63\x95\x14\x51\x4e\x24\ \x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xad\x52\xe4\xb1\x12\x33\x92\ \x64\xba\x96\x99\x6c\x65\x6b\x51\xe0\x0a\xac\x75\x96\xbb\xbe\x39\ \x6f\x79\xeb\x23\x48\xb6\x43\x1c\x22\x64\x84\x6e\x5b\x9f\x29\x49\ \xe0\x7e\x39\xab\xd3\xa7\x2a\x8e\xc8\x55\x5a\xd1\xa4\xaf\x22\xd3\ \xa2\xb9\xd7\x4f\x1d\x59\x76\x2e\x4a\x9b\xac\x2f\xc1\xb0\x09\xcb\ \x52\xd4\xd0\x3f\x20\x0e\x31\x4d\x37\x39\xda\xa1\x89\x6b\x42\x35\ \x56\xa4\xf0\xd2\x78\x3f\xac\x9c\xc9\x1f\x9d\x69\xf6\x29\xf6\x99\ \x3d\xbd\x7f\xa9\xd4\x14\x57\x34\xe9\xd9\xf7\xa9\x97\x86\x58\x91\ \xac\x35\x12\x59\x2a\xc1\x3f\xac\x5c\xe7\xdf\xd6\xae\xd8\x9a\x79\ \x2a\x88\x87\x06\xa3\xd4\x0a\x04\x72\x4c\xdc\xff\x00\x85\x2e\xae\ \x1e\x54\xd2\x6c\x75\x2c\x57\x11\xb4\x91\x29\xa2\xaa\x8b\x83\x53\ \x44\xf7\x3c\x2d\x49\x7d\x4b\x69\x38\xc0\x98\xaa\x7e\xd2\xf6\x49\ \x92\x62\x97\xe4\xea\x1b\xea\x82\xbe\xee\x66\x1f\xf1\x15\x33\xc3\ \x4a\x11\xcc\xd9\x58\x62\xf3\xcb\x2a\x44\xe6\x8a\x80\x6a\x06\x1c\ \x88\x97\x16\xdd\xf6\xf4\x94\xa0\x77\xfb\x59\xff\x00\x2a\xae\x9e\ \xbb\x5e\xfe\xd2\x42\x75\x25\xe4\x05\x13\x8f\xf6\xd5\xe3\xf9\xd5\ \xa1\x83\x9c\x95\xc8\x96\x36\x31\x76\xb1\xd0\x94\x55\x61\xa5\xde\ \x97\x2e\x33\x6b\x7e\xf7\x76\x52\x87\x0a\xff\x00\x6a\x3c\xfe\x75\ \x2c\x9b\x68\x71\x50\x8b\xac\xde\x2e\xc1\x5b\x72\x31\x2b\xff\x00\ \x2a\x5c\xf0\xf2\x83\x49\xf3\x2f\x0c\x4a\x9a\x6d\x2d\x89\x1d\x15\ \x59\xe6\xe2\x87\x0a\x55\x79\xba\x1d\xa7\x9f\xf6\xa5\x76\xa9\x6d\ \xb6\x1f\xda\x21\x87\x8d\xd2\xe3\x9c\x73\xfe\xd1\xff\x00\x95\x4d\ \x5c\x34\xa9\xab\xb0\xa5\x8a\x55\x1d\x92\x1f\xe8\xaa\xa3\x53\xdd\ \x27\x31\x70\x5a\x62\x5d\x2e\x49\x43\x67\x07\x32\x54\x3f\x95\x37\ \x45\xbb\x5d\x5e\x20\xae\xf5\x71\x47\xc7\xda\x57\xcf\xf1\xa6\x2c\ \x14\xda\x16\xf1\xd1\x4f\x62\xe8\xa2\xab\x58\xf3\xe4\x48\x8b\xe1\ \xa6\xef\x3c\x3a\x07\x72\xfa\xbb\xfe\x74\xa7\x4a\x1b\xdc\x9b\x83\ \x8c\xc9\x9f\x2c\xb4\x93\xc1\x2f\xa8\xff\x00\x3a\x89\x60\xe5\x15\ \x76\xc9\x8e\x32\x32\x76\x48\xb0\x68\xa4\x29\x85\xb5\x24\xaa\x64\ \xb3\xf3\xe2\x9a\x4d\x38\x21\xa8\xee\x2d\x13\xa4\x05\x01\xdb\xc5\ \xac\xf1\x83\x93\xb2\x34\xca\x79\x55\xd8\xef\x45\x42\xdd\xb9\xbc\ \xc3\x1e\x22\xe5\xc8\x23\x1f\xfc\x43\x4d\x92\x6f\xb7\x42\x3f\x64\ \xf3\xa0\x13\x80\x4b\x87\xfc\xeb\x4f\xb1\x4c\xcd\xed\xb0\xec\x2c\ \x7a\xc5\xc3\x84\x13\x50\x2b\x55\xfa\x73\x8b\xf0\xdf\x79\xcd\xde\ \x87\x79\xff\x00\x3a\x58\xfd\xe5\xf6\x9a\x59\x71\xd7\x31\x8e\x3c\ \xc6\x8f\x62\x99\x2b\x1b\x06\x27\xd7\x92\xd4\xdc\x45\x84\x9e\x4f\ \x15\xf3\x6b\xab\xd7\x73\x7a\xd7\xd7\x69\x7b\xf7\x03\x21\x49\x4a\ \xbb\x8d\xa0\xe3\x3f\xca\xba\xf7\xaf\x9a\xe5\xdb\x56\x91\xb9\x4b\ \x4c\x85\x25\xdf\x0c\xb2\xc8\xdc\x72\x5c\x5f\x03\xd7\xd0\x64\xfe\ \x15\xc3\xaf\x87\x97\x20\x4b\xdb\xbd\x0f\xa8\x80\x49\xc8\xcf\xa8\ \x3f\x35\x8e\xad\x2c\x95\x1b\x6c\xd3\x42\xa7\x11\x36\x8c\x18\x52\ \x1b\x21\xc5\x24\x2b\x61\xc2\x10\x7b\x13\xee\x6a\x61\xa1\xae\x2c\ \x5a\x1c\x17\x45\xbb\x99\x8f\x3d\xb5\x2b\x03\x2a\x4b\x7f\xbe\xad\ \xa7\x83\x9c\xf0\x3d\x93\xf3\x51\x34\xb6\xcb\xee\x14\xa1\xf4\x32\ \x94\x8e\x03\xb9\x1f\x91\xff\x00\x3a\xc9\x69\x58\x90\x19\x6d\x7e\ \x65\x00\x84\xed\x3b\x89\xf4\xc0\xc7\x72\x69\x53\x8e\x65\x63\x4d\ \x39\xe4\x95\xce\x83\xe9\xee\xa8\xb6\xb8\xd4\xdb\xf5\xc2\x5a\x21\ \x5a\xad\x8a\x6e\x34\x72\xf2\x82\x40\x51\xc8\x03\x8f\xbc\x48\xce\ \x71\xee\x6a\xc4\xb1\xf5\x8b\xa6\x71\x62\xa9\x52\xf5\x8c\x64\x3a\ \x15\xb4\x6c\x8c\xf2\xbc\xb8\xf8\x4f\xd6\xb9\xf3\xa9\x5a\x7d\xfb\ \x1f\x49\xed\x4c\xc8\x88\x62\xbe\x2e\x29\x53\xac\xf7\x53\x41\x4d\ \x28\xa4\x2c\xff\x00\x68\xe1\x5c\x7a\x57\x48\x69\x1d\x29\xa6\x62\ \x74\x6b\x4e\x6a\x18\xbd\x28\xd1\xd3\xdf\x7e\xd5\x1d\xc5\xbd\x36\ \x0f\x8c\x5c\x5a\xb0\x92\xb5\x12\x73\xc9\xe4\xfd\x6b\x9b\x43\x0b\ \x4e\xbd\xea\xa7\xa5\xdf\x91\xd5\xaf\x8a\x94\x1a\xa7\x65\xcb\xcc\ \xcd\x5d\x79\xe9\x0a\x48\x49\xd5\xce\x10\x3d\x45\xb6\x41\xff\x00\ \xfc\x2b\x79\xeb\xff\x00\x48\x1b\x69\x45\xad\x58\xb5\xab\x19\x03\ \xf5\x74\x80\x4e\x3e\xa8\xa5\x6b\xd3\x37\x35\x46\x2f\xda\xf4\x27\ \x4d\x59\x69\x20\x95\x3c\x34\xe3\x4d\x47\x4e\x3f\xe3\x5c\xe0\xfe\ \x15\x86\x97\xd0\xda\x9f\x53\x3b\x23\x68\xe8\xaa\x9b\x8a\x52\x99\ \x28\x89\x61\x6a\x62\x9a\x2a\xe4\x05\x10\x84\xa7\x3c\x1e\xc4\xd3\ \x61\x4a\x93\xf7\x5b\x7e\xbc\x05\xca\x53\x4a\xf2\xb2\x21\xd3\xfa\ \xf5\xa6\xee\x61\x5f\x65\xbc\x46\x8c\x8e\x4b\x2d\xa9\x45\x0a\x20\ \x76\xdc\x48\xc0\xcf\xe3\x50\xcd\x4d\xd6\x18\xec\xc4\x6a\x05\xaf\ \xec\xf2\x64\x2d\xb2\xe2\x9d\x66\x56\x52\xda\x8f\x60\x55\xce\x4f\ \xae\x33\xf9\x57\x4c\xb5\xd0\x2d\x2c\xfc\x4f\xff\x00\x54\xb5\x69\ \x29\x2f\x9e\xea\x8d\xa6\x58\x61\x39\xfa\x24\xe7\xf8\xd4\x23\x58\ \xfe\x8d\xbd\x3d\x5b\x6e\x97\x63\xdb\xad\xce\xf0\x12\xe2\x61\x48\ \x61\xbc\xfc\x14\xbc\xa4\xe7\xf0\xa1\x61\x23\x7b\xca\xfe\x45\xbd\ \xbe\xcb\x2c\x2d\xf0\xbf\xd4\xe5\xe8\x53\xb5\x05\xea\x43\x92\x25\ \xdd\xe6\xbc\xf3\xca\x09\x05\x2a\x5b\x99\x04\xf3\x84\x0e\x00\xfe\ \x35\x25\xd2\x36\x1b\xba\x56\xb5\xe9\xe7\xe7\xb5\x21\x0a\x53\xae\ \x34\x14\x42\xde\x4a\x78\x56\x10\x7b\xfd\x47\x20\xf7\x15\x36\x97\ \xfa\x39\x39\x6e\x7c\x48\xd2\xba\xb9\xb4\x38\x9f\x30\x4c\x5b\xb8\ \x6d\x60\xfc\x25\xc4\xa7\x3f\xf6\xab\x28\xed\xf5\x8f\x42\x38\x5d\ \x9a\x21\xdf\xdb\x53\x9b\xdb\x17\x38\x25\x2e\x03\xee\xdb\xec\x92\ \x77\x1e\x7b\x92\x3e\x2a\xb3\x84\x6f\xd5\x92\xfe\x0d\x74\x71\x6d\ \x25\x78\xb6\xfe\x7f\x92\xe6\xe8\xfb\xd7\x35\xd8\x76\xc8\x9a\xf4\ \xa6\xd2\x94\xad\x92\xf8\xc2\xdb\x1f\xbc\x09\x3d\xfb\x76\xf7\xc1\ \xf5\xa9\xf4\x37\x1a\x70\x16\xf2\x0a\x81\xc0\xf9\xaa\x3f\x44\xf5\ \xb7\x4a\x39\x31\xb6\x75\x3c\x59\xfa\x3e\x72\xbf\x64\xf3\xd2\x71\ \x22\x13\x85\x59\x00\x17\x50\x3c\x8a\xcf\x3e\x64\x8e\xc3\x35\x7a\ \xe9\x8f\xb2\xcc\xb6\x36\xfc\x07\xa3\x4d\x88\xb4\xe5\xa7\xe2\xba\ \x97\x5a\x23\xe1\x49\x24\x1a\xbc\x69\xb8\xa4\x99\x92\xb5\x45\x29\ \x39\x02\xdb\x59\xce\xd1\xc8\x1c\x83\xed\x5e\x38\x48\x8e\xa2\x91\ \xc2\x47\x62\x29\x7c\xb8\xae\x82\x0b\x0d\x93\xc7\x24\x72\x0f\xc0\ \xa6\x1b\xbc\xb6\xed\x30\x5f\x99\x73\x95\x1a\x04\x56\xbc\xcf\x3f\ \x2d\xd4\xb4\xda\x47\xae\x54\xa3\x81\x55\x9a\x48\x5c\x7a\xc5\x2b\ \xd6\x48\xb3\xee\x57\x93\x01\x85\xb8\xd4\x79\x6e\x62\x5b\xc9\x57\ \x99\x2d\x80\x30\x81\xf3\xef\xf5\xaa\xa6\xf3\xa6\xa2\xdb\x52\xe3\ \x51\xa0\x82\x86\xc3\x69\xf1\xc8\x1b\x54\x95\x03\xfb\x20\x7b\x93\ \x8e\x0e\x31\xeb\x93\x56\x4e\xb2\xeb\x66\x96\xfd\x64\xe4\x0d\x11\ \xa6\xae\x1a\xe6\xe4\xae\x10\xa6\x5b\x53\x51\x73\x93\x92\x9e\x0a\ \xdc\xfa\x80\x07\xcd\x56\xda\x9a\x47\x5c\x75\x5a\xcb\xb2\x20\xc4\ \xd3\xb1\x54\x42\x44\x3b\x7b\x68\x43\x89\xc7\x6c\xf2\xa7\x01\xe7\ \xd4\x8f\xa5\x27\x84\xe3\xab\x69\x78\x9d\x18\xe2\x22\xe2\xa2\xe0\ \xdf\xaf\x91\x00\x4d\xd6\x7e\x95\xbb\xae\x65\x86\x6a\xad\xab\x25\ \x47\xec\xce\x85\x2d\x97\x92\x48\xf2\xa9\x38\xc0\x3e\xb9\xf8\xe2\ \xac\xad\x17\xd6\x70\x63\xa8\xca\x97\x1a\x0a\x59\x29\x21\x97\xdf\ \xc2\x82\xbd\x52\x09\xfb\xc8\xf9\xef\xfe\x30\xe1\xd1\x4d\x5b\x31\ \xc3\x22\xe5\x32\x03\x2a\x51\xca\x97\x36\x7e\xe5\xe7\xe4\x24\x13\ \x4d\xd7\x6e\x99\xc2\xb4\x83\xf6\xfd\x5b\xa7\x99\x50\x24\x63\xc1\ \x90\xb1\xc7\xb1\x08\xe6\xaf\x25\x86\xa8\xac\xe5\xaf\x70\x88\xfb\ \x4c\x64\xf2\xc2\xf1\xec\x7a\x9d\x33\x03\xab\x5d\x3d\x9f\x01\x0e\ \x3f\xab\xad\x31\x5f\x48\x01\xc6\xde\x7b\x18\x38\xf4\x20\x1c\xd4\ \x27\xaa\x3a\xdb\x44\x4c\x99\x05\xcb\x76\xa7\xb4\xcf\x57\x8f\xe7\ \x4b\x6e\xe7\xcb\x82\x08\x39\x1d\x8f\x6c\xfc\xd5\x02\xde\x9a\x88\ \xe6\x1b\x85\x7f\xd2\xb3\xca\xd5\x81\xb5\xe5\x34\xbf\xa6\x1c\x48\ \xa5\x12\xf4\x5b\xb1\x54\x10\xf2\xa2\x30\xe9\x4e\x76\x3c\xd2\xdb\ \x03\xe8\xbc\x14\xfe\x39\xab\xc7\x07\x4e\x6f\xde\x66\x7f\x68\x9c\ \x75\xd1\x5f\xc7\x99\x2f\xe9\xee\xa9\x66\xc1\xd4\x86\x1c\x72\x73\ \x02\x33\xf9\x61\xe7\x3c\x51\x82\x41\xf2\xab\xfc\x3f\x1a\xee\x1d\ \x01\xa8\x63\xce\x82\xd2\x9a\x90\xd3\xc9\x20\x79\x9b\x58\x50\xfc\ \xc5\x7c\xd5\x99\x62\x79\xb5\x3e\x9f\x0c\x78\x91\xd0\x97\x57\xb5\ \x5b\xb0\x82\x42\x42\x81\x1e\x9b\x88\x1f\x88\xab\x07\xf4\x69\x9d\ \x76\x67\x5f\xc8\x86\x8b\xbc\xf8\xd1\xd5\x05\xc5\xac\x32\xfa\x93\ \x9c\x14\xe3\xf8\xd6\xa7\x18\xc1\xe7\x83\xd0\xe6\xe2\x61\x38\xa7\ \x37\xc8\xfa\x4e\xc3\x81\x69\x04\x73\x5b\x6a\x9c\xd3\x91\xe5\x49\ \x8c\x8c\xea\x5b\xf8\x3f\x13\x8f\xf9\x54\xda\x0e\x9e\x5b\xd1\xd2\ \xe2\xb5\x0e\xa2\xce\x39\xc4\xdf\x5f\xca\xb7\xca\x8b\x8c\x54\xbb\ \x4c\x14\xf1\x3c\x47\x64\x89\x6d\x15\x54\xdd\xed\x57\x25\x5c\xd6\ \xc4\x2d\x4d\xa9\x0e\x0f\x00\x4f\x56\x0f\xe5\x4a\x22\xe9\x1b\xf3\ \xa8\x0a\x5e\xaa\xd4\x88\x2a\xec\x3f\x58\xab\xfc\xa9\x8f\x0a\xd2\ \xbb\x65\x16\x32\xee\xca\x2d\x96\x75\x15\x59\x4b\xd2\x17\xe6\xdb\ \xcb\x5a\xbb\x51\x9e\x7d\x6e\x0a\xed\x45\x0b\x0a\xde\xd2\x40\xf1\ \x8d\x6f\x06\x38\x5c\xae\x0c\x6a\x6d\x6e\xbb\x0a\x9c\x3f\xab\xed\ \x8a\x49\x90\x9c\xe0\x3c\xf7\x70\x9f\xa0\xff\x00\x3a\x70\xea\x0d\ \xae\x1c\xcb\x0a\xc3\xcd\xa5\x28\x64\x0c\x01\xc6\x38\xff\x00\xca\ \xa0\x7d\x38\x75\x4e\xbb\xfa\xc7\x0a\x2f\x4d\x92\xe3\xab\x23\xb9\ \xca\x8f\xf9\x54\xff\x00\xa8\x72\x54\xce\x9b\x75\x29\x04\xad\xc1\ \x80\x07\xae\x69\xd1\xa5\xc3\x9c\x2d\xcc\x44\x6a\xf1\x69\xcd\xcb\ \xd7\x61\x4d\x4a\xb9\x94\xb1\xf6\x68\x00\x25\xb1\x91\x90\x3b\xff\ \x00\xae\x29\xad\xc4\xb8\xf8\x52\x54\xf2\x89\x58\xed\x9e\xd5\x25\ \xb0\xe8\xc9\xd3\x50\x1d\x92\x4b\x49\x56\x49\x1d\x8d\x49\x5a\xd0\ \x30\x83\x61\x2a\x52\xc3\x87\x80\x73\xeb\xdf\xfc\x6b\x7b\x92\x5b\ \x98\xd4\x5b\xd8\xae\x2d\xd1\x56\xca\xd0\x5a\xc1\x5e\xf1\x91\xeb\ \xf3\x57\x93\x13\x1c\x85\xa5\x5a\x0f\x0f\xda\x94\x0e\xff\x00\xe3\ \x51\x3b\x46\x95\x8b\x6c\xbb\x89\x13\x1c\x2b\x6c\x72\x02\xbb\x8a\ \x76\xba\xca\x55\xc2\x50\x66\x33\x79\x69\x3c\x24\x01\xc7\xa1\xaa\ \x4e\x39\xda\x5c\x8b\xc2\x4e\x09\xbe\x7b\x09\x6d\xb1\x5c\x9d\x39\ \x29\x09\x27\x72\xc1\x51\x1d\xbf\xd7\x61\x53\x67\x9c\x6e\x14\x14\ \x30\xd8\x19\x09\xc7\xe5\xcd\x23\xb3\x47\x6a\xd9\x10\x3a\xf7\x2e\ \xa8\x6e\x38\xa6\xdd\x43\x73\x11\xd9\x5b\xce\x2b\xce\x7e\xe8\x3f\ \xeb\xe9\x48\x95\xea\xce\xdc\x90\xf8\x7e\xcc\x2f\xcd\x91\xcd\x67\ \x3b\x9f\xb3\x36\xac\x2b\x39\x5e\x2a\x22\x8b\x72\x9e\x06\x4e\x00\ \x09\x38\xa5\xcf\xac\xbc\xa5\xbe\xbc\x92\xbe\xc0\x0e\xde\xd4\xe7\ \x69\x0d\xa2\xd8\xa6\xca\x48\x52\xff\x00\xb5\x5a\xd1\x91\xea\x6b\ \xd3\xb3\x4c\x39\x6d\xef\x50\xf0\xd5\x81\x92\x7b\xfc\xd5\x9b\x68\ \x98\x14\x03\x2a\xe5\x04\x00\x2a\xa3\x42\x36\xad\x6d\xf2\x36\x92\ \x47\xc5\x4a\xf4\xa5\xd4\x2b\x11\x9c\xfb\xc3\xee\x92\x3b\x0a\x55\ \x6a\x6a\x71\xb0\xda\x35\x1c\x25\x71\xfb\x51\xdb\x8b\x2f\x2a\x53\ \x5f\x71\x5f\x7b\x15\xb3\x4d\x4c\xd8\x55\x15\x67\x85\x0c\x27\x26\ \x9c\x58\x7d\x32\x1a\x2c\x48\x39\x49\x1c\x1a\x61\xb9\x40\x72\x04\ \x8f\x19\xbc\xa9\xb1\xca\x7e\x94\x98\x3c\xf1\xe1\xcf\x71\xd3\x59\ \x25\xc4\x86\xc4\x7f\x54\x41\x72\x2d\xc1\xd5\x3a\x83\xb1\x67\x8c\ \xfe\x54\xdf\x15\x95\xa8\x61\xb6\x54\x46\x78\xe2\xa6\xaa\x90\xcd\ \xdf\xc3\x62\x42\x02\xd4\x93\xdc\x8a\x76\x8f\x06\x2b\x0d\x84\x86\ \x86\x3b\x76\xa6\xba\xb9\x12\xcc\xb5\x14\xa9\x67\x6d\xc5\xe8\x57\ \x2e\x27\x0a\x2a\xd8\xa6\xd5\xee\x46\x31\x53\x2e\x9d\xba\x56\xcb\ \x9b\xc8\x52\x87\xaf\xad\x3a\x49\xb7\x45\x90\x8c\x29\xa4\x80\x07\ \xa0\xa4\x76\x9b\x69\xb5\x4f\x53\x8c\x92\x50\xaf\x4c\xd2\xea\x55\ \x8d\x48\x35\xcc\x6d\x3a\x52\xa7\x35\x2e\x43\x9d\xfe\x42\xdb\x65\ \x2d\x20\x94\x95\x1f\x6a\x65\x53\x45\x63\x0a\x51\x27\xd4\x9f\x6a\ \x77\xbe\xa3\xc7\x61\x0e\xa3\x38\x4f\x71\x8a\x68\x79\xd0\xd4\x72\ \xe6\x4f\x94\x55\x70\xfa\x41\x58\x9c\x46\xb3\x77\x19\xef\x69\xd8\ \x50\xd0\x18\x4e\x79\xad\x0b\x18\x40\x4f\x6a\xf2\x53\xee\x4a\x90\ \x83\xb3\xcb\xef\x5b\x1e\x42\x8a\x02\xb9\xad\x88\xc6\xcd\x24\x61\ \xf6\xdc\xc1\x27\x38\xa5\x57\xa7\x52\x88\xa4\x9e\x4e\x31\x9a\xd0\ \xa6\x96\xe2\x40\x1c\x1e\x79\xf6\xa6\x9b\xcc\x97\x50\xd3\x8d\xad\ \x5b\x86\x3f\x2a\x3b\xc1\x1c\xc9\xfa\x59\x5c\x40\xb7\xc0\x88\x92\ \x37\x39\x21\xc7\x0f\xd1\x29\x03\xfc\x4d\x73\xf5\xa6\x73\xd6\xc7\ \x94\xbf\x05\xb9\x0c\xba\x8d\xae\x32\xe8\x3b\x56\x3d\xc1\x07\x29\ \x50\xee\x14\x39\x1f\x98\x36\xb7\xe9\x44\xfa\xdf\xd4\x90\x93\xce\ \x13\x18\xe3\x27\x8e\x56\xac\xff\x00\x85\x56\xf6\x6b\x63\x73\x90\ \xe9\x5b\xa1\x88\x8c\x00\x5e\x90\xae\x71\xf0\x91\xea\x49\xc0\x03\ \xdc\xd7\x9f\xad\x34\xdb\x6c\xee\xe0\xe2\xd5\x35\x61\xa9\x48\x53\ \xee\x2d\x6d\x78\xcb\x27\x24\xf8\x87\x25\x23\xdc\xab\xfc\x6b\xa0\ \xbf\x47\x6e\x9b\x08\x52\x60\x5f\xaf\xe9\x30\xe6\x4d\x4f\x8f\x6a\ \x74\x29\x0e\x61\xb0\x33\xb9\x23\x90\x95\xe7\xbe\x79\x03\x18\x1d\ \xea\x98\xb2\xfd\x9e\xe7\xa9\x20\xdb\x62\xb1\xe0\x41\x5c\x96\xfc\ \x64\xf7\x51\x40\x50\xce\x4f\xa9\xc6\x4e\x3d\xea\xea\x8f\xac\xda\ \xd1\x70\x0e\x54\x1e\x66\x14\x99\x0a\xb3\xb6\x71\x95\x87\x37\x24\ \x10\x3b\x8c\xa4\x83\xed\xd8\xf1\x58\x31\x75\x5a\xb4\x17\x33\xa3\ \x87\xa4\x9a\x73\xec\x1b\x3a\xfb\x0d\x85\xd8\xde\x8e\x2e\x6f\xcd\ \xb9\xc8\x9e\x97\x59\x65\xc0\x54\xea\x90\xda\x56\x16\xa3\x8c\x01\ \x9d\xd9\xc6\x2b\xa6\x3a\x57\x32\x72\x3f\x46\x3d\x11\x2e\xdb\x2b\ \x6d\xc9\xf8\x0d\xc2\x88\xe1\x20\x21\x95\x6e\x50\x53\x87\x3c\x1d\ \x88\x42\x95\x8f\x52\x90\x3d\x6b\x8a\x65\x5d\xa6\x4e\xb9\xbb\x73\ \x9c\xf1\x7a\x5b\xe7\xce\xbc\xf0\x91\xe8\x84\x7c\x0f\x7f\x53\xcd\ \x5e\x5f\xa2\x9e\xb9\xd4\x72\xaf\xb6\xde\x96\x48\x98\xda\xac\x66\ \x3d\xc1\xdb\x7b\x65\xa1\xe2\xb6\xe2\x99\x70\x86\xf7\x7a\xa4\x6e\ \x71\x40\x77\xe7\xd8\x0a\xa6\x0d\x3a\x34\xf8\x6f\x7f\xa9\xb3\x15\ \x85\x75\x12\xaa\xbe\x3e\x08\x8d\xeb\x4b\xf5\xe7\x51\xea\x65\x68\ \xab\x5c\xe9\x6b\xb4\xdb\x1d\x52\x56\x95\xbe\xa5\x97\x17\xb8\x95\ \x12\xa3\xfd\xe5\x12\x71\x8e\x49\xf8\xae\xa0\xfd\x16\xf4\x6c\x3d\ \x2d\xa6\xee\xa2\x3c\xc7\x25\x7d\xbd\xd6\x9c\x74\xab\x18\xdc\x94\ \x91\xc1\xc7\xb1\x19\x19\x3d\xbe\x6a\xa7\xe8\xc6\x86\x5c\x7b\xc5\ \xd2\xe7\x75\x28\x56\xfb\x83\xaa\x69\x18\xc1\x27\x71\xe4\xfb\xd7\ \x46\x58\xa5\xb7\x6c\x6d\xdd\x8c\xa5\x48\x59\x05\x5b\x4e\xdc\x60\ \x55\xa8\x54\xd5\xf6\x15\xc6\xc5\x65\xca\xb7\x26\x21\x09\x00\x24\ \x0c\x01\xd8\x0a\x61\xd7\x36\xbf\xd6\x76\x25\xc7\x0f\x25\x94\xa5\ \x5b\xca\x89\xf5\xec\x3f\x9d\x2d\xb5\xde\xed\xd7\x01\xfe\xcf\x21\ \x25\x49\x4e\x54\x92\x7e\xef\xbf\x34\xcb\xad\xf5\x7e\x9b\xb4\x5a\ \xc8\x9f\x72\x88\x43\x8e\x04\x14\x07\x02\x94\x38\x27\x38\x1f\x4a\ \xd9\x2b\x38\x9c\xc8\x29\x46\x6a\xcb\x52\xab\xba\xe8\x70\xb0\xb5\ \x26\x7b\x4e\x10\x09\x03\x38\x22\xa3\xb2\xad\xf7\xdb\x36\xf4\xb5\ \x39\xd4\xb2\xa1\x85\xb4\xe8\xf1\x59\x58\xf6\x29\x3c\x54\x86\x67\ \x51\x34\xa4\x97\x1e\x16\xf9\xc9\x71\x0d\xed\x4a\xd6\xb6\x54\x13\ \xb8\x8e\xd9\xc5\x37\xa2\xe8\xc4\xf5\xb6\x94\x2f\xf6\x4e\x61\x4d\ \xba\x9f\x32\x01\xf6\xcf\x6a\xe0\xe2\x28\xc2\x2f\xaa\xf5\x3d\x3e\ \x1a\xad\x67\x1e\xba\xba\xef\x43\x0c\x0b\x2d\xa9\x3a\x8a\x35\xfa\ \xee\xd3\x4e\xda\x0b\x6e\xc3\x9f\x1f\x68\x71\xb6\xdb\x75\xb5\x23\ \xc4\x52\x8f\x2a\x61\x0a\xd8\xa2\x95\x65\x48\xfb\xc0\xe1\x26\x90\ \xf5\x0b\xa3\x5a\x83\x4f\x6b\xbd\x29\x2f\x4a\x5b\x2d\x57\x18\xc6\ \xdb\x1a\x1b\xac\x6d\x42\x19\x93\x21\xa5\x2c\x6e\x52\x0e\x12\x41\ \x6f\xc3\xca\x8f\x72\x3d\xcd\x3b\x5f\x18\x91\x15\xf4\xcc\x8c\xd9\ \x4a\xe3\xbc\x8f\xb5\x33\xb7\xc8\xfb\x64\xf9\x92\xa1\xd8\x82\x32\ \x3f\x1a\x84\xcc\xb5\x6a\x4b\xe7\x56\x1b\xd1\xb6\xdd\x47\x31\xb8\ \x3a\x6e\x28\x85\x05\xd7\xdd\x50\x54\x44\x8c\x2d\x4d\x82\x0f\xed\ \x0a\x72\x90\x14\x79\xda\x84\x03\xda\x9f\x43\x13\xc1\xa4\xe3\x6d\ \x79\x11\x53\x09\x2a\xf5\xd4\xd4\xec\xac\xef\x7e\x49\x78\x6b\xcc\ \xd7\xfa\x58\x68\x7b\xdc\x58\x2c\x6a\x99\x76\x0b\x0e\x98\x43\x6d\ \xa5\xb5\xb5\x6c\x94\xa4\x07\x15\x9e\x49\x09\x01\x24\xd5\x27\x63\ \x96\x2d\xa1\x6b\xbe\x59\xbf\x58\x21\x6c\xe5\xa5\x4b\x74\xb8\xda\ \x37\x00\x42\xf0\x49\x1d\xb2\x41\xae\xc0\x99\xd3\x5b\xc5\xe6\xd4\ \x22\xea\x0e\xa8\x6a\x8b\x8b\x4a\x00\xa9\x95\x29\x2a\x68\xe3\xdc\ \x2b\x39\xfa\xd4\x1f\x48\xf4\xbe\xd5\x77\xd6\x97\x3e\x9e\xdd\xe7\ \x06\x95\x11\xd6\x2e\x4c\xc8\x6e\x30\x59\xb8\x42\x42\x90\x57\x1d\ \x63\x38\x41\x0a\xd8\x42\x87\x23\x72\xc7\x20\xe0\x68\x86\x2a\x4e\ \x69\x49\x68\xfc\x0c\xfe\xcf\x08\x53\x94\xa3\x52\xed\x6f\x64\xf6\ \xbe\xfa\x92\x3f\xd1\xe3\x47\xdc\xa5\xf4\x65\x77\x99\xb0\x15\x6f\ \xfb\x52\xde\x75\x95\x38\x80\x93\x21\x92\xac\xb6\xbc\x0c\x28\x8c\ \x64\x61\x5c\x60\x0c\x0e\x73\x49\x05\x92\xfb\x36\x49\x65\x0f\xab\ \xc3\xf4\x4b\x63\x6a\x53\xf8\x0e\xd5\xd2\x5a\xa9\x0d\x33\xa5\xa5\ \xc5\x8e\x03\x09\x43\x29\x69\x09\x6d\x20\x04\x0e\x00\x00\x76\x03\ \x15\x54\xbd\x74\xb2\x59\xa3\x78\x77\x3b\xa4\x58\x61\x47\xfe\x19\ \xc0\xd0\x24\x9f\xae\x7b\xd5\x71\x58\x58\x3b\x5f\xe2\x27\x05\x8d\ \xa9\x79\x49\x2b\xf6\x11\x46\xfa\x71\x31\xe4\x95\xc9\x96\x1a\x3e\ \x98\x19\x22\x91\x5d\x3a\x57\x1a\x4c\x55\xb0\xb7\x83\x83\x9c\xee\ \x4f\x04\xff\x00\x85\x4a\x5c\xd4\x76\x69\x33\x95\x12\xdd\x77\x80\ \xf3\xa1\x39\x29\x6a\x58\x0b\x4e\x31\xdc\x13\xf3\x5b\x58\xbd\x2e\ \x3a\x83\x72\x81\x2d\x93\x8f\x10\x8e\x47\xf9\x8a\xe7\xba\x34\xe0\ \xce\x97\xb5\xe2\x9a\xbd\xfc\x8e\x4b\xea\x97\x4a\x2e\x3a\x6a\x73\ \x92\x23\xa3\xed\x76\xe2\x3c\x4c\x8e\x16\x9c\xf7\xc8\x3e\xdc\x57\ \xba\x6e\xf0\xd4\xbd\x37\x0d\x32\x5e\x54\x79\x70\x52\xa6\x16\xe8\ \x51\x04\x24\x0f\x22\xbe\xa3\x20\x11\xf1\x5d\x77\x7c\x81\x0e\xed\ \x05\x71\xdd\x69\x0e\xb6\xb6\x94\x9d\x8b\x19\x05\x24\x60\xe3\xda\ \xb8\xb3\x5f\xe9\xa7\xb4\xd5\xce\xe5\x6e\x6d\x2e\x06\xdb\x7c\xa9\ \x0a\x27\x3b\x90\xac\x81\xf9\x1c\x8a\xd9\x4e\xac\xa7\x68\x37\xe0\ \xcc\x55\x14\x35\xaa\xa3\xe2\xbe\xa6\xfb\xab\xea\xbf\xd9\xa5\xdd\ \x1b\x43\x3f\x6c\x84\xe8\x66\x61\x61\x21\x28\x77\x23\x87\x00\x1d\ \xb3\x8c\x11\xee\x33\xeb\x4a\xba\x04\x89\x1f\xd3\x49\xd7\x16\xdb\ \x26\x3b\x50\xcb\x4a\x5f\xa6\xf5\xa8\x6d\x4f\xd4\xe0\x9f\xc2\x99\ \xfa\x7a\x5e\x8b\xd3\xfd\x71\x74\x4a\x72\x98\xa9\x83\x82\x7f\xb4\ \xb7\x4a\x71\xf9\x13\x56\x1f\x46\x6d\x42\x1c\x38\xf6\xc4\xba\x16\ \xea\xdc\xfb\x44\x8c\x0e\x02\x88\x18\x4f\xe0\x38\xfc\xeb\xaa\xe3\ \x9d\x46\x9c\x77\xd8\xe0\x62\x6b\x7e\xcb\x4f\x99\xd4\xba\x11\x25\ \x70\x9a\x4e\x15\x92\x3f\x21\x56\xac\x73\xe0\xb0\x1a\x47\x27\x18\ \xc8\x1d\x8d\x57\xfa\x0e\x29\x65\x86\xdc\x20\xef\x03\x81\x8a\x9f\ \xb4\x76\x37\xe6\xc2\x94\x7f\x2f\xf5\xcd\x75\x6b\xac\xa9\x43\xb0\ \xe6\x61\xa3\x65\x70\x62\x23\x4d\x2c\xac\x20\x15\x9e\xe7\xde\xb7\ \x6e\x09\xe0\xa8\x8f\x72\x38\x34\x21\xb5\x93\xca\x8a\x53\xc0\x3c\ \xf7\xac\x43\x49\xff\x00\xe3\x27\x20\x7d\x78\xfa\x56\x56\xef\xbb\ \x34\xa5\x6d\x90\x3a\xe0\x4a\x15\xb8\xe0\x7a\xfb\x7f\xae\x68\xa4\ \xf2\xad\xcb\x7f\x1f\xed\x07\x60\x3e\x64\x83\x9c\xd1\x4d\x87\x0e\ \xda\xb1\x72\xe2\x5f\x44\x56\xfd\x21\x60\x0d\x3f\x12\x6b\x87\x09\ \x41\x70\x72\x7f\xbe\xaa\x98\xbb\xba\x6a\xca\xdc\xc9\x40\xe5\x29\ \xcf\x06\xa3\x5d\x3b\x4a\x53\xa2\xe0\x60\x60\x23\x7f\xfd\xe2\xb9\ \xa9\x4b\x4c\xbc\xf2\xb3\xbb\xc3\x6c\x1c\x12\x7b\x62\xb6\x3b\x25\ \x73\x9f\x4a\xf9\x54\x4c\x00\x6d\xa1\xb4\x14\xe4\x7b\x56\xc4\xb8\ \xca\x52\xb5\x78\x89\x48\xf9\xf4\xef\x58\xba\xab\x5b\x3e\x47\x56\ \x16\x73\xcf\x9b\x9a\xcc\x2e\xcd\x27\x0d\x85\x6d\xdc\x31\x9f\x8f\ \x6f\xa5\x55\xbe\xe6\x35\x2b\x73\x47\x3f\xdf\x2f\xba\x9a\xe5\xa5\ \xee\x1a\x3e\xdb\x74\x94\xe5\xfc\x6a\x39\x10\x23\x48\xf1\x0a\x9e\ \x0d\x23\x32\x12\xac\xe7\x3f\xd5\x8d\xbf\xc2\x9f\xed\x17\xa9\xf7\ \x58\xd6\xb9\xb6\xe7\xca\x83\x7a\x45\xcb\x94\xa6\x84\x85\x32\x1d\ \x79\xdd\xa8\x40\x52\x92\x09\x49\x4e\xc7\xc8\x20\x1e\x45\x49\x2d\ \xfd\x38\x99\x69\xea\xdc\xdd\x67\x1a\x43\x0e\x5a\x5d\x8f\x96\x58\ \x49\x3e\x22\x64\x94\x21\xb5\x38\x46\x31\x8d\x88\xc7\x04\x9c\xa8\ \xf6\xa4\x3a\x33\x47\x3f\xa4\x2d\x3a\xb1\x13\x27\xc5\x7c\xdc\x96\ \xeb\x76\xed\xaa\x51\xf0\x62\xe5\xc5\x36\x85\xe4\x0c\x10\xa7\x57\ \xc0\xce\x3d\x0f\xa0\xa5\xdc\x95\xa3\xb1\x9b\x87\x38\xbe\xb7\xae\ \xc1\x95\xbd\x69\xa8\xdb\x47\x4d\xdb\xb6\x18\xff\x00\x64\xba\x5a\ \x9d\x79\x6d\xce\x98\xb7\x1c\x5a\x9a\x69\x38\x0e\x39\xb0\x93\x8d\ \xe0\x82\x39\x27\x39\x00\x0e\x61\xb2\xf5\x5d\xe6\x05\xd7\x5b\xdd\ \x84\x34\xce\xb7\x42\xba\xf8\x8e\x07\x25\xa9\x2b\x4a\x0a\x11\x94\ \xb6\x9d\xa4\x70\x39\xe4\xa7\xbd\x3a\x3f\x61\xbf\x22\x3e\x8a\xfb\ \x33\x96\xf7\x9f\xd3\x90\x9d\x8a\xe2\x16\xf2\x90\x87\x7c\x46\xd0\ \x82\x52\xa0\x82\x78\x28\xcf\x23\x9c\xfa\x56\x8b\x86\x90\xb8\xbd\ \x61\xd6\x70\x92\xf4\x30\xed\xee\x41\x72\x31\x52\xd4\x12\x94\xec\ \x4a\x70\xbf\x2f\x07\x29\x3d\xb3\x4c\x8c\x24\x97\xae\xc2\x8d\xc9\ \xef\xeb\x41\xcb\xa8\xd7\xd7\xec\x3a\x1a\xe1\x7a\x84\x41\x75\xa6\ \x92\x59\x2a\x19\x00\xad\x49\x4a\x4e\x3d\x70\x54\x0d\x44\xe3\x5d\ \x35\x0e\x97\xb9\x68\x89\x52\x35\x04\xeb\x9b\x3a\x87\x6b\x33\x58\ \x94\xa0\xa4\x05\xac\x23\x6a\x9b\xc0\x1b\x70\x57\x8f\xc3\xe4\xd4\ \xfe\x7e\x98\x46\xa4\xd2\x52\xec\x73\x0e\xc4\x48\x60\x34\x1d\x48\ \xce\xc5\x8c\x14\xab\x07\x19\xc1\x00\xd4\x2f\x4e\x58\xaf\xb7\x3e\ \xa0\x59\x74\xf6\xac\x09\x61\x3a\x45\xa0\xb8\x65\xa8\xee\x6d\xb8\ \x60\x24\x25\xcf\x10\x8d\xa3\x6e\xd4\x64\x67\x39\x07\xe7\x17\xa9\ \x7c\xc8\xac\xaf\x71\x4f\x4f\xef\xba\xa6\xef\xaf\x75\x2b\x37\x18\ \xf1\xcc\x28\xb2\x92\xc3\x89\x4b\xe4\xfd\x98\x84\xa8\x00\x81\xb4\ \x6e\x0a\x29\xc9\x27\x1f\x8d\x59\x8c\x82\x95\xa5\xc4\x2b\x6a\x87\ \x62\x3b\xe6\xa0\xee\x69\xcd\x51\xa3\x2e\x9a\xc2\xff\x00\x09\x16\ \xdb\x84\x1b\x8a\x97\x35\xa6\x80\x71\x52\x7c\x40\x95\xec\x40\x40\ \x4e\x08\x2b\x50\x04\xee\xed\x9a\x99\x5a\x8c\xb3\x6e\x8e\x67\xa5\ \x91\x37\xc3\x4f\x8f\xe1\x83\xb7\xc4\xc7\x9b\x6f\x27\x8c\xe7\x1c\ \xf6\xab\x53\xbd\xac\xcb\x47\xbc\x99\xd8\x6e\xc8\x79\x09\x61\xe5\ \x10\xbf\x42\x4e\x29\xfd\x2b\x56\xd2\xd3\xa9\xde\x83\xc6\x48\xcd\ \x56\xf8\x50\x21\xc4\x1c\x28\x76\x23\xde\xa4\x96\x3b\xe8\x4a\x43\ \x32\xf0\x3e\x73\x55\xa9\x4e\xfa\xa3\x4d\x2a\xb6\xd1\x8e\x32\xed\ \xea\x61\xe1\x32\x22\xfc\xa0\xf2\x8a\x72\x83\x29\xc7\xdb\x1f\xb1\ \x50\x3d\x8d\x7b\x09\xb4\x3c\xbf\xb4\x13\x86\x87\xf1\xac\xdf\x9e\ \x84\x1d\xb1\xda\xcf\xb9\x22\xb3\xca\x4e\x5d\x5b\x5d\x8f\x8c\x54\ \x7a\xd7\xb2\x36\x82\xfe\x3f\xab\x20\x63\x27\x9a\xf5\x2e\x0c\xf9\ \xd2\x47\x38\xe4\x77\xa4\xc9\x9f\x28\x63\x81\x8e\xe2\x94\x37\x35\ \x0b\x3b\x1f\x40\x4e\x7d\xa9\x6e\x12\x5c\x86\xc6\x71\x7c\xcc\xbe\ \xe8\x28\xee\xd9\x14\xc9\x77\x88\xa4\x36\xb4\xe3\xca\xae\x45\x3f\ \xa9\xb1\x8d\xc8\x39\x42\xbb\xd6\x97\x9a\x0e\xb6\x52\x7b\x7a\x1a\ \x9a\x55\x32\xbb\x91\x56\x9e\x65\x62\x17\x1c\x60\xec\x38\xe0\xf2\ \x2b\x39\x19\x28\x1c\x1c\x7a\xfd\x6b\x74\xe8\xeb\x8d\x28\xfb\x13\ \xcd\x60\xf1\xc2\x32\x3f\x1f\x5a\xe8\xa7\x73\x9a\xd5\xb7\x35\xa0\ \xed\x6f\x3f\x1c\xd4\x77\x50\x24\xad\x97\x5c\x23\x93\xc0\xa7\xf1\ \x92\x03\x60\xf7\xf5\xa6\xad\x54\x90\xcd\xb9\x7e\xe5\x3c\x50\xf6\ \x64\xa3\x8d\x3f\x49\x30\x1c\xd4\xb0\x18\x42\x16\xe3\x82\x39\xc2\ \x10\x92\x4a\xcf\x88\xac\x0f\xe1\x55\x94\xa7\xd4\xd4\x44\x32\xe2\ \x42\x4a\xb9\x5a\x7b\x04\x01\xd8\x11\xfd\xae\xff\x00\x9d\x74\x2d\ \xfa\xe4\xc4\x3d\x64\xe5\xc5\xc6\xf2\xeb\x08\x2c\x32\x52\x8d\xca\ \x5e\x4e\x54\x33\xe8\x32\xa2\x3f\x0a\xa0\xb5\x5d\xbd\xe6\xb5\x7d\ \xc5\x97\x12\xa4\x07\x5f\x53\xa0\x3c\xad\xa7\x0a\x39\xef\xeb\x5e\ \x62\x75\x22\xeb\x64\x7c\xb5\x3d\x56\x1f\x09\x51\x60\xa3\x59\x2d\ \x1b\xb0\x97\x4b\xcb\x89\x12\xea\x87\xa4\x3e\xeb\x21\x2b\xc8\x53\ \x68\xdc\x48\xef\x8f\xe1\x8f\xc6\x94\x6a\x0b\x85\xc2\xfd\x7d\x12\ \x9e\x6c\xa1\x2b\x59\x6a\x33\x09\x1c\x34\x80\x78\x48\xfc\xf9\xa4\ \xac\x3a\x98\x58\x79\xa6\xd0\xa5\xe7\x8f\x2e\x46\x01\xed\xfc\xb9\ \xa7\xbd\x06\xf2\x1e\xd5\x11\x64\xc8\x61\x0f\x20\x2d\x3e\x22\x4e\ \x01\x27\x3e\x80\xf7\x27\x8e\x6a\x2a\x5a\x37\xa9\x6d\x91\x34\x13\ \x9c\xa3\x45\xbd\xd9\x67\x68\x3e\x90\x5e\x6e\x2d\x25\xe9\xcb\x6e\ \x22\x31\xc8\x57\x2a\xc9\xf8\xa9\x2e\x9e\xd1\xd7\x3d\x0b\xd4\xcb\ \x05\xe2\x2a\x54\xe1\x83\x29\x32\x32\x84\x90\x56\x8c\xe1\x69\xe3\ \xdd\x24\x8f\xc6\xae\xbd\x32\x23\xc8\x8e\xdb\xf1\xdb\x09\x65\x4d\ \x20\x84\xed\xc7\xd3\x3f\x38\xc5\x48\x92\xc3\x2e\x29\x0b\x2d\x24\ \xa8\xfa\x91\xda\xb8\xb2\x73\x9e\xaa\x5a\x9e\x87\xda\xb2\x75\x32\ \xac\xa6\xf9\x16\xf8\xf6\xeb\x9b\xab\xb7\x80\x63\xcb\xfd\xb3\x2a\ \x07\x82\x95\x0c\x8c\x7e\x1f\xc8\xd6\x77\x99\x0e\x46\xb7\x9f\x0d\ \x0a\x5a\x82\x09\x01\x3f\xda\xc7\x15\xe4\x09\xad\xf8\x5f\xab\xdd\ \x5a\x43\x8d\xa8\xfd\x9d\x4a\xfd\xd5\x13\xf7\x0f\xb0\x3d\xc7\xb1\ \xfa\xd6\x6d\x07\x1d\x0b\x0a\x18\x20\xe0\x83\x91\x83\x5a\x93\x4e\ \xed\x73\x39\x96\x69\xd9\xf2\x2b\x0d\x27\x76\xd5\xa6\xfb\x2d\x57\ \x48\xce\x08\x01\xb2\xd9\x65\x95\xe0\x0c\x9e\x54\x7d\xc5\x45\xe7\ \xd9\xf5\x4b\x17\xdb\x4c\xd8\xa7\xec\x51\x04\xe7\x4c\x87\xde\x88\ \xdc\x96\xdc\x6d\x69\x52\x53\xfb\x25\xf0\x48\xc8\xc0\xf7\xed\xcd\ \x5e\x82\xce\x7e\xfb\x6f\x23\xcd\x83\x85\x0c\xd2\xf4\xb0\xea\xdb\ \x6d\x0f\x36\xcb\xa9\x69\x61\xc4\x05\x73\xc8\xec\x69\xb4\xaa\x4e\ \x2a\xcc\x2b\xf0\xaa\x3b\xda\xd7\x2a\x1e\x8d\x88\xda\x56\xe5\x71\ \x55\xde\x35\xcd\xf5\xa6\x30\x8c\xf2\xcc\x72\x95\x48\x58\x39\x49\ \x2d\xe7\x09\xf2\x9c\xfe\x34\xa9\x56\x07\x5f\xb8\x22\x56\x93\xb3\ \xbf\x6a\x52\xe4\x91\x21\x0e\xa4\x04\x16\xfb\xe5\x48\xce\xd3\x93\ \xed\x83\x56\x94\xf8\xab\x7a\x42\x9e\x52\x1a\x4a\x94\x30\xac\x27\ \x71\x38\xed\xf1\x49\xd7\x19\x49\x00\x90\xbc\x11\xc9\xc7\x35\x59\ \x43\x32\xb4\x86\x50\xae\xa8\xbc\xd4\xd6\xaf\xb7\x61\x8f\xec\x52\ \xe5\xc6\x4c\x29\xae\x32\xfc\xc9\x4a\x43\x6e\x18\xe8\xc2\x01\xf4\ \x48\xcf\x7a\x8f\xc7\xb0\xb3\x0f\x5f\xfe\xbf\x62\x7c\x49\x6b\xbb\ \x4c\x94\xee\xd8\xea\xdf\xb1\x08\xc0\x49\x52\xfb\x67\x6e\xc0\x52\ \x3b\x1a\x96\xea\xeb\x8b\xda\x72\xd0\xd2\xe2\x25\xb3\x7b\xb8\x6e\ \x8d\x69\x64\x9c\x16\xf2\x3c\xf2\x55\xec\x94\x27\x24\x13\xeb\x50\ \xfe\x9d\xe9\xb6\x2c\x82\x52\x63\x2d\x4e\x30\xdb\xa5\x0d\x28\xaf\ \x20\x13\x82\xb5\x01\xe8\x54\x42\x73\xf4\xae\x7e\x26\xce\xa4\x21\ \x1e\xdb\xfa\xf5\xd8\x6f\xc3\xa9\x2a\x53\xaa\xdd\xae\x9a\xb7\x6f\ \x6f\xc1\x3b\x78\xd9\xf6\x16\x1b\x1b\x8b\x0b\x29\xc0\x29\xc0\xca\ \xbb\x1a\x8d\x4f\xb5\x44\x63\x5a\xc6\xd4\x4e\xba\xb8\xee\x2e\x22\ \xed\x8f\xbc\x85\x11\xb5\xa7\xfc\x89\x59\xc7\xaa\x5d\x2d\xfe\x07\ \xe2\xa4\xb6\xb2\x3c\x32\x97\x00\x27\x04\x63\x39\xa8\xb7\x54\xad\ \xee\x49\xd3\x32\x58\x6d\x6f\x25\x05\x3b\x87\x84\xa2\x95\x12\x08\ \x56\x32\x3d\xf0\x38\xfa\x53\xaa\x36\xa2\xa4\xb9\x6a\x64\xa4\xaf\ \x3c\x97\xb2\x7a\x7c\x19\xe3\xb2\xaf\x4f\xcb\x95\x06\x55\xf6\x4c\ \xc8\x29\x29\xd8\xdb\x1c\xa9\xf2\x09\x0a\x25\x44\xe4\x64\x72\x30\ \x33\x9e\xf5\x5c\xf5\x47\x4d\x3f\x70\xbc\x46\x99\xa6\xf4\xb2\xd0\ \x98\x88\x6f\xc3\xfb\x6b\x21\xd6\x54\xe9\x74\x15\xf8\xbc\x95\x94\ \x90\x00\x38\x3c\x8f\x6a\x97\x74\xfa\xf1\x17\x50\xdb\x00\x5a\x9a\ \x4d\xc5\x18\x54\xa4\xa4\xf2\xa5\x1c\xe1\x78\xfe\xf6\x09\xfa\x85\ \x0f\x4a\x98\xc7\x6a\x7b\x44\xa5\x25\x4a\x47\x04\x07\x46\x41\x1f\ \xce\xb4\xc2\xb7\x12\x2a\x48\x5d\x4a\x4e\x8c\x9c\x25\xa5\xbe\x1e\ \xbb\x8e\x5c\x56\x88\x72\x3f\x51\xdd\x93\x7d\xb5\x2d\xdb\x7b\xf7\ \x94\x3e\xa3\x0e\x23\x8c\x30\x96\x14\xa0\x5c\x65\x09\x56\x54\x94\ \x8c\x90\x92\x73\x4f\x7a\xd9\xeb\xd6\x93\xd5\x2e\x39\xa4\x2d\x9a\ \x85\x7a\x51\x21\x29\x31\x27\x28\xbe\x42\x40\x19\x20\x9c\xa8\x0f\ \x5c\x13\xeb\x5d\x19\x2d\xf9\x6b\x65\x49\x93\x14\x28\xab\xb6\x17\ \xbd\x39\x1e\xbc\xf6\xa4\x52\xd0\xf4\xa4\x00\xb6\xf6\x11\x80\x72\ \x8f\x4a\x5d\x66\xe5\xba\x1d\x87\xa9\x1a\x4a\xca\xef\xe3\xf8\x18\ \xf4\x0d\xed\x8d\x43\x62\x8b\x22\x12\xca\xd0\xb4\x0c\xa8\xa4\xa7\ \x8f\x6e\x40\xaa\xcb\xf4\x80\xb0\x07\x6d\xd7\x8b\x82\xda\x0b\x58\ \x65\x0e\x05\x01\xfd\x95\x8e\x3e\xb8\x35\x6b\xdb\x6d\x49\xb2\x3e\ \x57\x10\x84\xb0\xb5\xef\x2d\x60\x00\x14\x7b\xe3\xdb\xe9\x4d\x7d\ \x46\x81\x12\xeb\x66\x97\x0a\x62\x9c\x43\x13\x11\xe1\x1f\x0f\x97\ \x14\xa2\x41\x01\x03\xdc\xe3\xf0\xef\xe9\x59\x5a\xcb\x67\xd8\xc3\ \x32\xce\xf2\xec\xce\x4e\xb7\x28\x5b\xba\x42\xdd\x9d\xe4\x11\x37\ \x54\xdd\xd8\x7c\xa4\xf0\x53\x19\xa2\xa0\x15\x8f\x6d\xc7\x8c\xfa\ \x66\xac\x8e\x85\xc6\x7a\x5c\xb6\x2e\xa9\x21\x4c\xbc\xe2\xf7\x10\ \x73\x80\x14\x40\xcd\x44\xba\x8d\x65\x9b\x7c\xea\x79\xb7\x48\x91\ \x1e\x01\x65\xff\x00\xb2\xc5\x4a\x7e\xe3\x6d\xa5\xbe\x10\x9e\xdd\ \xbd\xcf\x04\xe7\x35\x26\xd1\xa5\x8d\x29\xa8\x60\xda\xad\xf2\x5a\ \x52\x87\xec\x5e\x09\xc9\x0e\x0c\xf3\xcf\x62\x41\xf5\xfc\xab\xb3\ \x43\x19\x08\xce\x32\xed\xd4\xe3\x63\x3a\x3a\xa3\xa0\xe4\xb9\x7f\ \x09\x1d\x81\xa5\xf0\x18\x46\x3b\xfe\xee\x3d\xea\x5c\x85\xa1\x94\ \x03\xc9\x57\xa7\xc7\x15\x5e\xe8\x69\x61\x50\x50\x54\xb0\x5c\xfa\ \x7a\xd4\xe2\x37\x20\x2d\x47\x27\xbe\x2b\xb9\x55\xaa\x8b\x37\x23\ \x87\x46\x5a\x19\xba\xeb\xce\x67\x7a\xb6\x80\x7b\x56\x29\x6f\x1c\ \xee\x51\x56\x3b\xfa\xd6\xd2\x48\x39\xe7\xd8\x57\x80\xf9\xcf\x27\ \x8e\x00\x27\xe6\x97\x7b\x2d\x06\x5a\xef\x53\x04\xb8\xeb\x0a\xde\ \xda\x8a\x87\x6e\x7b\x9a\x2b\x35\xe1\x38\x21\x47\xf0\x1c\x7d\x28\ \xa2\xc9\xee\x89\x4d\xad\x99\x0a\xe9\xb0\x43\x7a\x36\x0b\xef\xe7\ \x62\x7c\x4c\x0f\xff\x00\xa8\xaa\x70\x9b\x35\xe9\x89\x29\x6d\x45\ \xb6\xc0\xe3\x07\xe6\xa3\xda\x15\xd5\xc8\xd2\x90\x5b\xf3\x25\xb6\ \xfc\x4c\x10\x3d\x7c\x45\x7f\x9d\x3f\x21\x29\xc7\x39\x18\xc9\xfa\ \x71\x5b\xa1\x15\x64\xd9\xcd\x53\xea\xa4\x8d\x02\x3a\x41\x05\x47\ \x71\x3d\xf9\xed\x5b\xd4\x84\x1f\x2a\x06\x3e\x7d\xab\x15\x00\x0e\ \xd4\xee\x23\xb8\xad\xa8\x52\x4a\x7b\x67\xd4\x0f\x7e\x3d\xe9\xa5\ \x45\x36\x79\xea\x6a\x40\x8a\xf3\x89\x28\x73\xee\x27\xfd\x77\xa8\ \x86\xb2\x2b\x4d\xd9\x49\x4c\x90\xa6\x96\x90\xb4\xa4\x28\x1e\x0f\ \x62\x3d\xc1\xa8\xf7\x4b\xe3\xc0\x9d\x77\xbf\x5d\x2e\x4c\x46\x91\ \xa8\x18\xbe\xc8\x69\x4e\x3c\x80\xa7\x98\x42\x55\x86\x92\x82\x79\ \x4a\x36\x60\x8c\x70\x72\x7d\xea\xb3\x54\x08\x31\xfa\x2b\xa5\x2e\ \x05\xbd\x86\xe3\x2a\x2b\x37\x89\x4a\x52\xb7\xae\x2a\x64\x14\x6d\ \x52\xbb\x84\x04\x84\xa7\x03\x00\x0e\x29\x17\xb4\xb3\x25\xb8\x71\ \x5b\x8a\x4c\xb5\x9a\x01\x6d\x82\xda\x81\x49\x3e\x5c\x7a\xfe\x54\ \x27\xf6\xc1\x28\x42\xb7\x0c\xed\x51\x07\x23\x8e\x0d\x56\xb3\xad\ \x31\xe4\x6a\x6d\x4f\xa7\x6c\x52\x5b\xb5\x41\x95\x67\x63\xc6\xfb\ \x38\x09\x6d\x99\x4a\x71\x41\x3e\x51\x80\x37\x20\x00\x71\x8c\x83\ \x4a\x2c\xf6\x57\x75\x15\xa6\x75\x8e\x3d\xbe\xc7\x69\xbc\x59\xae\ \x4c\x2e\x43\x2d\x23\x30\x2e\x05\x08\xdc\x94\x2f\x00\x12\x92\x0f\ \x29\x39\x20\xa4\x67\xda\xaf\x9d\xf6\x15\xcc\x5d\x56\x08\x88\xc2\ \x36\x14\x96\xf1\x9c\x82\x0e\xee\xd5\xb2\x52\x9b\xfb\x53\x9b\x96\ \x8c\x95\x6d\xc6\x7f\x7b\x19\xc7\xd7\x1c\xe2\xa2\x7a\x06\xed\x78\ \xba\xe9\xbb\x7c\x8d\x23\x65\xd3\xf6\x88\xe1\xf7\x9a\x9f\x19\xe0\ \xbd\xa1\xc4\xb9\xb5\x45\x92\xd0\x09\x50\x24\x28\xe4\x8e\x49\xa8\ \x3e\xa3\x81\x68\x90\x7a\xb7\x70\xb8\xb4\xd2\xe4\xc5\x58\xfb\x13\ \x8e\x72\xa6\x5e\xfb\x3a\x4b\x65\xb3\xdd\x2a\x2b\x08\xe4\x60\x9c\ \x0f\x6a\x8e\x27\x30\x72\xd1\x34\x5b\x0c\xde\xe3\xcb\xd5\x12\x74\ \xd2\x22\xac\x3f\x12\x0b\x52\xd4\xee\x46\xd5\x05\xa9\x49\x09\x03\ \xbe\x46\xd3\xf9\xd2\x29\xeb\x8d\x0d\x2e\xcb\x79\xf4\x22\x33\x20\ \x97\x16\x55\xc2\x31\xdf\x3e\xdd\xaa\x0a\x6f\x42\xc9\x7c\xd4\x57\ \x6b\xfd\xbd\x53\xcb\x3a\x36\x1f\xdb\x22\x91\xfd\x6a\x8a\x96\x95\ \x21\x59\xcf\x04\x92\x0e\x41\xc0\xcd\x35\xc8\x86\xda\x75\x3e\xab\ \xb7\xfd\x86\xc9\x16\x33\xda\x3f\xed\x0e\xc3\xb5\x8c\xc7\x0e\x85\ \x2f\x62\x88\xc0\x05\x60\x14\xf3\x81\xc6\xd3\x50\xaa\x3d\x88\xce\ \x4c\x6e\xba\xc6\xd5\x12\xc5\x6c\xba\xc5\xff\x00\x6c\x17\x47\x59\ \x66\x13\x4d\xad\x28\x2b\x53\x83\x72\x72\x54\x46\xd0\x07\x27\x3d\ \xbd\xa9\xfe\x19\x5c\x94\xc6\x2f\x35\xf6\x77\xdd\x03\x73\x4a\x58\ \x51\x49\xf5\x19\x1c\x1e\xfd\xc5\x54\xd3\x2c\xf6\x94\x68\x5e\x97\ \x1f\xd5\xb0\x4f\xda\x2e\x36\xe2\xe9\x0c\xa0\xef\xdf\x19\x5b\xc2\ \xb8\xe7\x25\x23\x39\xef\x81\x9e\xd5\xae\xf4\xd5\xbd\x7a\x6f\x5f\ \x5d\x2e\x29\x69\x37\xd8\x57\x47\x51\x0d\xf2\x70\xfc\x70\x9d\x9f\ \x65\x4b\x47\xba\x41\x04\x63\x6f\x7c\x9a\x38\x8d\x6e\x46\x66\x74\ \xd3\xef\x22\x34\x06\x22\xa5\xd4\xa5\x44\x24\x11\x9e\x79\xed\x5a\ \xd8\x53\x67\x09\x4a\xd0\xa2\x46\x78\x56\x72\x33\xcf\xfe\xb5\x58\ \x58\xed\xec\x5e\x7a\xd3\x71\x95\x7a\x8c\x99\x12\x60\xda\x6d\xd2\ \x1a\x4a\x8e\x50\xcc\x82\x17\xb9\x61\x3d\xb7\x79\x71\x9e\xe0\x67\ \x1d\xcd\x41\xe3\x59\xed\xd2\x34\x3e\x9c\xb8\x3d\x15\x2a\x9b\x2b\ \x5c\x08\x6f\x48\xe7\xc5\x54\x75\x49\x71\xb5\x33\xbf\xbf\x86\x50\ \x48\xdb\x9c\x73\xdb\x9a\xce\xa5\x64\x69\x95\x57\x7b\xdb\xd2\x3a\ \x31\x0b\x42\xd2\x14\xda\x92\xa4\x9e\xc5\x27\x22\xb6\x14\x82\x80\ \x48\xed\x55\xc7\x4c\xe2\x31\x6f\xea\x37\x50\xad\x10\x19\x6e\x2c\ \x08\xf2\xe1\x38\xcc\x66\x52\x10\xd3\x6a\x72\x2a\x4a\xca\x52\x38\ \x19\x3c\x9c\x55\x8e\x06\x72\x3e\x6a\x6f\x71\xd0\x79\x91\x9c\x77\ \x54\xc9\xc7\x74\x1e\xe0\xd2\xb3\x83\x85\x8c\x10\x79\xf6\xa4\xa1\ \x2a\x50\xc1\xe6\xbd\xdc\xa6\xfe\xf7\x23\xf9\x52\xe4\xae\xc7\x45\ \xd9\x6a\x68\xbd\xc4\x0f\x33\xe2\x24\x1c\x8e\xf5\x1f\x03\xca\x52\ \x47\x63\x52\xe6\x76\xbc\xca\x93\xc6\x08\xa8\xc5\xcd\xaf\xb3\x48\ \x52\x48\xe0\x9e\x6b\x46\x1e\x7f\xe2\xf9\x19\xf1\x30\xff\x00\x25\ \xcc\xc2\xde\xc9\x75\xc3\xc7\x03\xb5\x45\xfa\x8a\xe9\x4c\x67\x10\ \x0e\x00\x18\xe2\xa7\x96\xa6\x36\xc3\x53\xa7\xdb\xd6\xab\x5e\xa6\ \xbc\xa4\xb0\xe0\x4f\xb1\xab\x4e\x57\x52\xb7\x22\x99\x6d\x04\xfb\ \x4a\xab\x48\x5b\x99\x7e\x45\xc2\xe4\xfb\x49\x71\x6d\x04\xec\xdc\ \x32\x01\x51\x2a\x26\x90\x75\x77\xa4\xcd\xdd\xe1\xc5\xbb\x24\xbc\ \xc4\xa0\x82\xa2\xe3\x4a\xde\xad\xbe\xc0\x1e\xff\x00\x4f\xa9\xa9\ \x3f\x4d\xff\x00\x6f\x69\xbc\xb2\x17\xb5\xcf\xb3\x25\x63\x1c\xe0\ \xa4\xed\x35\x68\xd9\x59\x55\xc2\xc7\x15\xc5\x36\x0a\xf6\x8d\xc4\ \xa7\x3e\x55\x27\x07\xf8\x1a\xf2\x58\xba\x6d\xd6\xcd\x17\x67\xc8\ \xf7\xb8\x4a\xbc\x3c\x24\x53\xd6\x3c\xd7\xc3\xee\x70\x55\xc7\x48\ \x16\x1b\x75\xb6\x9d\x52\xd6\x96\x37\x95\xe3\x85\x1c\xf2\x9c\x7a\ \x63\xb7\xd6\x99\x2c\xf0\x64\xb1\x71\x69\xef\x33\x61\xb2\x16\x16\ \x7b\x12\x30\x71\xf5\xed\x5d\x29\xd4\xdb\x45\x90\x75\x21\x76\xd8\ \x31\x3e\xc9\x19\xc8\x67\x73\xab\x04\x25\xd7\x82\xb2\x38\xf9\xc2\ \xbf\x21\x54\xf4\xd8\xad\x89\x0a\x86\xc4\x73\xb3\xc5\xfd\xa9\xda\ \x46\x13\xb8\x82\x9f\xa7\xb1\x1e\xdf\x14\xba\x18\xa9\xca\xf1\x96\ \xa3\xb1\x78\x0a\x2b\x25\x4a\x6a\xd7\xd6\xdf\xc1\xd5\xdd\x2f\x6d\ \xe6\xf4\x15\xb9\xf9\x61\x5e\x33\xc8\x0a\xf3\xfd\xe0\x9f\x4c\xfd\ \x7b\xd4\xd2\x3b\x99\x39\x23\xbf\x02\x99\x2d\xed\x26\x2d\xae\x2c\ \x74\xf0\xdb\x2c\x36\x84\x73\xc0\x4a\x52\x00\xfc\xb1\x4e\xb6\xce\ \x52\x92\x52\x40\x3e\x6e\x7b\x0f\xad\x67\x8b\xd7\x41\x15\x5e\x66\ \xd9\xe5\xc6\x02\xf2\xa9\xcc\xa3\x7b\x89\x18\x5b\x27\xfe\x14\x7b\ \x56\xbb\x6e\xa2\x86\xe3\xe2\x2c\xa7\x44\x77\xf3\xfd\x53\xc7\x6a\ \xd3\xf1\xcf\xde\x14\xf2\x0e\xe2\xa0\x92\x4e\x7b\x1f\x4c\x7d\x68\ \x91\x6a\xb7\xcd\x63\xc2\x9b\x0d\x99\x20\x9c\x00\xe2\x01\xc5\x31\ \x41\xa7\x78\xb2\x8a\x70\x92\xb4\xd7\xc8\x7b\xb6\x2a\x33\xad\xa5\ \x4b\x42\x92\x30\x3c\xdb\x72\x83\xff\x00\x58\x7f\x8d\x3e\x43\x8f\ \x13\x68\x29\x71\x93\xf4\x22\xab\xe6\x74\x15\x9c\x2c\xaa\x23\xf7\ \x6b\x6a\xbb\x83\x0e\xe0\xe2\x06\x7e\x99\xc5\x2e\x6b\x46\x49\x48\ \xca\x75\x96\xad\xd8\x3d\x3e\xde\x0f\xf1\x29\xad\x11\x9d\x45\xbc\ \x7c\xc4\x4e\x8d\x17\xb5\x4b\x78\xaf\xb3\x64\xca\x4c\x64\x10\x4a\ \x31\x84\xf2\x48\x1c\x0f\xa9\xed\x50\x8b\xbe\xab\x80\x89\x46\x06\ \x9e\x8c\x35\x15\xdd\x27\x68\x6a\x39\xcc\x66\x0f\xf6\x9f\x74\x79\ \x40\x07\xf7\x41\x26\x94\x3d\xa2\xec\x60\x03\x78\x93\x76\xbd\x60\ \xfd\xdb\x85\xc1\xc7\x50\x4f\xca\x01\x09\xfe\x14\xe9\x19\xe8\xd6\ \xd8\x3e\x04\x48\xb1\xe2\x46\x69\x39\x08\x65\xb0\x84\x0f\x6c\x01\ \x51\x27\x37\xbd\x97\x9b\xfb\x2f\x32\x69\xc2\x94\x35\xd6\x5e\x4b\ \xf9\x6d\xf9\x78\x91\x48\x1a\x6a\x4a\x25\x4a\xbd\x5f\x65\x7e\xb2\ \xbc\xcd\x47\x87\x21\xf2\x30\x86\x9b\xff\x00\xe1\x34\x3f\x71\x3f\ \xc4\xd2\x6f\xb2\x44\xb6\xc3\x10\x61\xa0\x36\xca\x09\xda\x90\x49\ \x39\xfa\x9e\x49\xa7\x69\xf3\xa6\x5c\xde\xda\xd2\x8a\x00\x3d\xc7\ \x14\x95\x36\xf0\xde\x56\xbc\xaf\x06\x93\x92\x37\xea\xa3\x53\xab\ \x39\x7b\xcf\xe1\xcb\xbb\xe5\xc8\xdd\x08\x2d\x05\xb4\x04\xf9\x30\ \x09\x39\xe7\x9a\x57\x75\x82\xa7\xa2\x2d\x3c\x1c\x8e\xc4\x52\xab\ \x23\x71\xd6\xa6\xd0\xb5\x15\x73\x82\xae\xf4\xf3\x72\x8f\x1c\xa1\ \x68\x6d\x3b\xa9\xaa\x92\x94\x6e\x67\x95\x4c\xb2\x48\xa6\xed\xfa\ \x72\x12\xe4\xab\xf5\x60\x66\xd9\x76\x8c\xe2\x94\xdb\xc8\x4f\x95\ \xe0\x7b\xa1\xc1\xea\x93\x81\xf2\x0e\x08\xe6\xa4\xf0\x35\x01\x43\ \x88\xb7\xdf\x99\x55\xbe\x71\x00\x6d\x59\xce\xff\x00\x94\x9e\xce\ \x0f\x91\xe6\xf7\x4f\xad\x21\xbf\xe1\x9d\x40\x51\x18\x6f\x3b\x72\ \xe6\x0f\x20\xfa\x54\xa2\xc6\xe4\x3b\xed\xa9\x70\x6e\x71\x99\x94\ \x13\xf7\xd0\xeb\x61\x49\x3f\x50\x7d\x6b\x2d\x34\xd3\xb4\x5e\xbe\ \x46\xaa\xd2\x52\x8a\x75\x15\xd7\x9a\xfb\xae\xef\x95\xb5\x1b\xee\ \x62\x33\xe5\x1f\x63\x9c\xd2\xf1\x9c\xed\x58\x18\xfa\x83\xda\x90\ \xc9\x93\x1a\x23\x79\x9d\x3a\x2b\x00\x0e\x54\xe3\xe9\x48\xfe\x74\ \xba\xe3\xd3\xcb\x14\x92\xa4\x34\xe4\xf8\xcd\xab\x80\x84\x3d\xb9\ \x09\xfa\x05\xe7\x14\xdd\x1f\xa7\x71\x6d\xe0\x18\xb7\x4c\x14\xf6\ \x5b\x90\x18\x5a\xff\x00\x32\x9a\xbc\x95\x5b\xeb\x1f\x93\xfb\xd8\ \xac\x55\x1b\x7b\xff\x00\x34\xfe\x97\x19\x5c\xd4\x28\x90\x54\x8b\ \x2c\x67\x6f\x2a\xce\x03\x88\xca\x23\x20\xff\x00\x79\xd2\x31\x81\ \xec\x9c\x9a\xf1\x9b\x7b\xac\xb8\xa9\xd7\x19\x49\x99\x70\x29\xc2\ \x56\x84\xe1\xa6\x12\x7f\x75\xa4\xfa\x0f\x75\x1e\x4d\x3d\xce\xd3\ \xd3\x49\x0b\x76\xff\x00\x31\xc2\x83\x90\x14\xda\x00\xfc\x00\xed\ \x49\x5a\x8b\x25\x08\x5a\x1d\x79\x2e\x8c\x79\x4e\xdc\x67\xe9\x8a\ \xcf\x25\x2d\x9a\x25\xca\x0b\xdd\x67\x3e\x6b\xbb\x71\x3d\x7b\x8a\ \x5b\x73\xc0\xdf\xb2\x5b\x25\x47\xca\x56\x13\xce\x3d\xc9\xc0\xf2\ \x9e\x0f\x6f\x5a\x6b\xb6\xc7\x59\xbf\xdb\xdf\x71\xb6\x9b\xc9\x53\ \xdb\x1b\x18\x03\xcd\x8f\xc3\xf1\xf4\xa7\x7e\xb4\x19\x11\xba\x95\ \x6f\x9e\xc1\xca\xe1\x04\x1d\xbb\x41\x29\x0a\x47\x2a\xf9\x00\x81\ \xf4\xc1\xa6\x7d\x2c\xbf\xb4\xdc\xd5\x29\x4a\x2b\x6c\x10\xcb\x27\ \xb0\x20\x77\x35\x7a\x69\xce\x50\x5e\xb7\x37\xe6\x8d\x2e\x8d\xc4\ \x54\x7d\x96\xf9\xa4\x8e\x9b\xe9\xab\xe5\xc8\xcd\xac\x81\xc7\x6c\ \x55\xad\x15\x40\x34\x95\x2c\x8c\x63\xb6\x6a\xa4\xe9\xb8\x52\x61\ \xb4\x84\x03\xda\xad\x9b\x74\x40\x5b\xdc\xe1\x2a\x24\x1e\xd5\xed\ \x1c\x54\x29\x45\x33\xe7\x14\x6f\xb2\x37\x78\xc8\xc8\x39\x04\xfc\ \x0f\x8a\xc9\x38\x3c\x83\x80\x79\xe0\x66\x94\x08\x8c\xad\x3f\x73\ \xe0\x0a\x4a\xfc\x63\x1c\xee\x6c\xe1\x39\xe4\x7b\x52\x54\xa2\xdd\ \x91\xa5\xc6\x4b\x56\x66\xbe\x53\x81\xdf\x04\x7d\x28\xa4\x57\x0b\ \x83\x31\xe2\x93\xb8\x6e\xf4\x1e\x94\x53\xa1\x4a\x4d\x08\x9d\x58\ \x27\xa9\x05\xd0\x2a\x6d\xad\x1d\x07\x23\x27\x2b\xec\x7d\x37\xab\ \x9a\x79\x32\x54\xa2\x36\x34\x4f\x18\xed\x9a\x6d\xe9\x95\xbd\x4f\ \xe9\x48\x4f\x3e\xaf\x29\xf1\x38\xcf\xfc\x62\xaa\x68\x98\xc8\x4f\ \x01\xb4\x82\x3f\x9d\x68\xe2\xc6\x29\x23\x2d\x3a\x52\x94\x53\x23\ \x09\x92\xa0\xbf\xda\x24\xa0\x64\x60\x91\xc7\xfa\xef\x4a\x52\xea\ \x55\xca\x33\x82\x30\x38\xfe\x54\xf3\x26\x23\x0f\x34\x42\x92\x02\ \x8f\xae\x3d\x2a\x29\x70\x9c\x8b\x3b\xea\x61\xc1\x9c\x9f\x2f\x35\ \x78\x4d\x4f\x62\x27\x07\x03\x64\xbb\x7d\x8c\x5d\x99\xbb\xc8\xb6\ \xc0\x55\xc1\xa0\x42\x25\x29\x94\x17\x53\xc6\x30\x17\x8c\x8e\x3e\ \x6a\x37\x75\x6a\xdc\x1b\x4c\x28\x70\x62\xb1\x01\xb4\x96\xd1\x15\ \xa6\x52\x96\x82\x79\x24\x04\x81\xb4\x02\x49\xe3\x15\x59\xf5\x3f\ \x55\x5f\xb5\x0e\x95\xbc\xca\xb6\xc0\x2d\xda\xe2\x4f\x6a\x1a\xa6\ \x09\x05\x0e\x15\x25\xf6\xc2\x88\x48\x4e\x36\xee\xf2\xfd\xec\xf2\ \x4e\x31\x52\x4b\xb6\xa4\x9b\x67\x91\x7c\x71\x16\x96\x25\x31\x61\ \x43\x6a\xb8\x17\x25\x86\x9c\x3b\xd3\xbb\x6b\x49\xda\x77\x14\xa4\ \x85\x1c\x91\xdc\x01\xf1\x19\xe2\x98\xac\xc8\x92\x5a\x34\xb5\xa4\ \x42\x54\x75\x5a\x20\x22\x1b\x87\x72\xe2\xa6\x3a\x03\x6a\x3f\x29\ \xc6\x0f\x20\x7a\x7a\x0a\x75\x3a\x6b\x4f\x9b\x62\x2d\xa3\x4f\xda\ \x97\x11\x0a\xdc\x98\xe6\x22\x0b\x49\x38\xee\x13\x8c\x67\x1e\xb5\ \x16\x91\xaf\xcc\x08\x9a\x9d\x72\x60\x00\xbb\x3b\x4c\xbb\x15\x09\ \x5e\x3e\xd6\x97\x9b\xcb\x47\xb7\x19\x5e\x53\xeb\xda\x90\xea\x0e\ \xa5\x4e\x80\xe5\xd3\xec\xd6\xd6\x1e\x6e\xce\xd3\x4b\xb8\x93\x33\ \x62\xb7\x29\x3b\x94\x86\x86\xd3\xbb\x6a\x4e\x4e\x48\xf6\xef\x53\ \x9a\x21\x74\x59\xf6\x65\xc6\x81\x01\x31\x23\xc7\x69\x94\x20\x6d\ \x42\x1b\x48\x09\x03\xd8\x01\xc0\xfc\x29\xa6\xc9\xa1\xac\xd1\xb5\ \x15\xd7\x50\xca\x89\x1a\x6c\xfb\x84\x84\xc8\x4a\xdf\x8c\x85\x2e\ \x31\x4a\x52\x9c\x21\x58\x24\x03\xb4\x1f\xad\x56\x6e\xea\x57\x2c\ \x9a\xd7\x55\xdf\x24\xba\xf3\xb0\xa2\xda\x22\x48\x08\x4a\xb2\x0e\ \x77\xe3\x68\xec\x0a\xb8\x1f\x95\x4b\x22\x75\x0e\xe9\x6f\x9a\x8b\ \x75\xfe\xca\xcc\x49\x32\x60\x3d\x32\x19\x6a\x51\x75\x2a\x2d\x00\ \x56\xd2\xc9\x42\x70\xa0\x14\x0e\x46\x47\x7e\x6a\xad\xc5\x92\xa4\ \x9e\xe4\xd8\xc1\x80\xcc\x99\x0f\xbb\x6d\x88\xe3\xb2\x19\xf0\x5e\ \x75\x4c\xa4\xa9\xc6\xc6\x70\x85\x12\x32\x53\xc9\xe0\xf1\xc9\xad\ \x16\x8b\x25\xa2\x08\x2a\xb7\x5a\x60\x43\x6c\x25\x48\x08\x62\x3a\ \x10\x02\x55\x82\xa1\xc0\xe0\x12\x06\x47\xc5\x57\xf6\x9e\xa0\xdd\ \x6e\xcf\xe9\xf7\x66\x5a\x1b\x8b\x02\xfe\x4a\x62\x2d\x32\x8a\xdc\ \x43\x9b\x0a\x80\x5a\x76\x80\x02\x80\x38\xc1\x3f\x3d\xf8\x46\xd7\ \x51\x6f\x89\xb7\x43\xba\x37\xa7\xd2\xe4\x39\x57\x43\x6a\x6c\x09\ \xb8\x70\xc8\xdc\xa4\xa4\xed\x29\xc6\xc2\xa4\xe3\x39\xc8\xce\x71\ \xc7\x33\x9a\x3b\x91\x99\x16\x23\x7a\x77\x4f\xb4\xc3\x71\x98\xb2\ \x5b\x58\x69\xb7\xfe\xd2\xd2\x5a\x88\x84\x84\x3a\x32\x03\x80\x01\ \xc2\xf9\x3e\x6e\xfc\x9a\x4f\x36\xc7\x6d\x55\xc5\xb9\xb2\x6d\x70\ \x9e\x94\xde\x3c\x39\x0e\x47\x4a\x9c\x47\xd1\x44\x64\x7a\x54\x65\ \x1d\x45\x72\x24\x2d\x44\x9b\xcd\xb1\x0d\xcf\xb2\x3c\xcb\x2a\x66\ \x3c\x8d\xe8\x7d\x4f\x04\x96\xb6\xa9\x49\x4e\x32\x54\x01\xc8\xe3\ \xbd\x2e\x3a\xbe\x74\x68\x1a\xa1\x37\x4b\x6c\x31\x3a\xc3\x6f\x4d\ \xc7\xc3\x8f\x33\xc6\x69\xf6\x94\x15\x8c\x28\xa1\x24\x10\x52\x41\ \xc8\xf6\x3e\xb4\x39\xc1\x6e\x0a\xc4\xc6\xdc\xe4\x06\x64\xae\x58\ \x89\x1d\x13\x1e\x4a\x50\xe4\x94\xb6\x90\xe3\x89\x4e\x76\x82\xac\ \x64\x81\x93\x80\x7b\x64\xd3\xa4\x7b\x35\x89\x51\x19\x61\xbb\x4d\ \xb8\x47\x66\x40\x94\xd3\x42\x32\x36\xb6\xfe\xe2\xaf\x11\x23\x18\ \x0b\xdc\x49\xdc\x39\xc9\xce\x6a\xbf\x85\x74\xbc\x39\x7f\x83\x67\ \x93\x69\x8b\x15\xdb\xb5\xb1\xcb\x85\xb0\xfd\xb4\xb8\x06\xcd\xa7\ \x63\xde\x41\xb0\xf9\xd2\x7c\xbb\x87\x71\xcf\x72\x74\x5a\xfb\xa9\ \xee\xda\x1e\x0d\xde\xf2\x23\xba\x89\x69\x52\xda\x71\xa5\x12\xb2\ \x3c\x45\x82\x14\x36\x80\x9c\x60\x01\x82\x73\x4b\x79\x2a\x7b\xa3\ \x61\x53\x2b\xb3\x45\x8d\x1a\xdf\x19\x13\xa4\xca\x89\x0e\x3b\x52\ \x25\x14\x2a\x43\xed\xb4\x94\xad\xe2\x91\xb5\x3b\xd4\x06\x55\x81\ \xc0\xce\x70\x38\xa7\x04\xc2\x51\x39\x2b\x39\xf5\x15\x53\x5a\xf5\ \xac\xbd\x3c\x8d\x63\x39\xfb\x7a\x9f\x93\x1a\xff\x00\x12\x22\x9b\ \x5d\xc1\x6e\xb5\x87\xbc\x34\x85\x20\x29\x23\x60\x09\x50\x25\x20\ \x11\x9c\xf3\x8c\x54\xbb\x51\xf5\x07\xf5\x15\xfb\x51\xc1\x7e\xd8\ \xe4\x86\x2c\x96\x44\x5d\x0a\x99\x5e\x5c\x74\xa9\x4b\x05\x18\xc6\ \x00\x1b\x73\x9c\xfb\xd6\x59\xd5\x69\xd9\x1a\xa9\xca\x9b\x57\x97\ \xad\xfe\xc4\xa5\x71\xdf\x68\x64\x28\xa8\x0e\xfc\x57\xa7\x0e\x23\ \x6a\xb8\x35\x5d\xeb\xdd\x67\xaa\xe3\xf4\x86\x5e\xa9\xb6\xb3\x62\ \x61\x4e\x18\xa6\x3b\xd1\x2e\x2a\x94\x03\x6e\xb8\x94\x12\x09\x69\ \x23\x70\x2a\x48\xf5\x18\x2a\x3c\x10\x01\xb0\x62\xb5\x70\x5c\x06\ \x9e\xb8\xa2\x33\x53\x79\xf1\x53\x15\xc5\x2d\xb1\xc9\xc6\x0a\x92\ \x09\xe3\x19\xe0\x72\x6a\x23\x52\xef\x52\xfa\x37\x68\x9b\x2d\xca\ \x2d\xaf\x61\x3d\x8f\x1f\x15\xaa\xff\x00\x04\x3a\xf2\x54\x79\xcd\ \x64\xca\xb0\xf8\x51\xfa\x1a\x72\x9a\xcf\x8c\xd2\x76\xf7\x06\xac\ \xe7\x92\xa2\x91\x68\xc3\x3d\x37\x11\x0b\x8d\x86\xad\xa1\x3d\x8e\ \x3d\x6a\xad\xea\x04\x70\xb8\xaf\x15\x0e\x4d\x5b\x17\x4c\xa6\x38\ \x18\xc6\x07\x35\x5c\x6b\x36\xc3\x91\x95\x81\xc0\xef\x5a\x30\xdd\ \x64\xef\xcc\x4e\x21\x59\xa4\x51\x3a\x5e\xe6\xfd\x9b\x51\xcb\x8e\ \xd9\xc7\x8a\xd2\xc0\x1e\xe0\x8e\x7f\x8e\x0d\x74\x96\x91\x2c\xb5\ \xa4\x21\x3b\xb4\x1d\xcc\x25\x5f\xc2\xb9\x86\x79\x0a\xea\x84\x28\ \x28\x20\x78\xb1\x1c\x52\x47\xf7\xb7\x63\xf9\x57\x42\x69\xb9\x92\ \x1c\xd2\xf0\xd2\xd3\x4a\x79\x0d\xb2\x1b\x73\xc3\xee\x85\x27\x83\ \x9f\xca\xb8\x18\xac\xaa\xa6\x87\xa4\xc0\x66\x9e\x12\x29\xf6\x90\ \x6e\xa2\xdb\x2d\x31\x51\x3b\x50\xdc\x22\x46\x54\x85\x61\x4c\x25\ \x4a\xe4\xed\xc9\xed\xec\x9c\x02\x4f\xcf\x35\x46\xda\x5b\x6a\xe0\ \xf2\xda\x91\x19\x4c\xb7\x3d\x2a\x5b\x4a\x4a\xf2\x16\xde\xe5\x2b\ \x23\x3d\xc8\xdc\xa1\xcf\x1d\xea\xe0\xfd\x24\xee\xae\x42\xd3\xb6\ \x4b\x78\x8c\x8d\xb3\x56\xf2\x14\xeb\xec\x12\x84\xa3\xca\x92\x9d\ \xde\xe4\x2b\x38\x1c\x9c\x7c\x55\x25\x6d\x75\x2f\xcc\x8d\x0d\xe0\ \xd0\x54\x64\xa5\x2e\xb9\xbf\x07\x6e\xe2\x02\x07\xf6\x46\x55\x8e\ \x7e\x6b\x8b\x51\x24\xda\x3d\x05\x2c\xd2\xa5\x19\xcb\xd7\x23\xa0\ \xf4\xfc\xd7\x5f\xd3\x16\xc7\xdf\x42\x10\x4c\x74\x21\x41\x27\x39\ \x21\x23\xf8\x1c\xd4\xb2\xd0\xbd\x91\xc0\x5a\x81\x07\x8e\xd5\x5d\ \xd8\x5e\x77\xf5\x5c\x78\xc5\xb7\x37\x8e\x77\xa9\x7c\x0f\x4e\xde\ \xfc\x7e\x15\x3d\xb4\x2f\xc4\x84\x56\x94\x85\x0d\xa7\x8f\x5c\x1a\ \xad\x39\x5d\x98\xab\x44\x7e\x88\x77\x1d\xd8\x4e\xe3\xc1\x03\xb6\ \x29\xca\x37\x86\x4e\xdd\xc4\x28\x77\x09\xef\xf9\xd3\x3c\x65\x2d\ \x6c\xa5\x68\x4f\x95\x49\x03\x69\xe0\xfe\x3e\xd4\xec\xdb\xa8\x4a\ \x37\x92\x00\x00\x7e\x15\xae\x0c\xca\xd0\xed\x1b\x68\x56\xe2\x53\ \x8c\x71\x4a\x5f\x7c\x36\xd1\x50\x19\xe2\x9b\x22\x38\x92\x92\x07\ \xaf\xc5\x23\xbd\x4c\x2d\x84\xb6\xd0\xdc\xe9\xe1\x29\x1e\xb4\xfe\ \x22\x8a\x17\xc3\xcd\x2b\x19\x4b\x96\x15\x20\x23\x24\xac\xf6\x48\ \xac\x2e\x4c\x2d\xfb\x6b\xd1\xe3\xe3\xc5\x29\xca\x72\x7b\x9a\xd3\ \x19\xb4\xc3\x41\x79\xf5\x05\xc8\x5f\x2a\x23\xd3\xe0\x7b\x52\x29\ \x93\xd0\xb2\x5a\x52\x94\x90\x53\xf7\xb3\xc8\x1f\x15\x55\xd6\xd5\ \x8f\x4b\x55\x97\x90\xcb\x03\x51\x42\x8e\xb5\x44\x92\x92\xdc\x96\ \xf8\x71\xb5\x70\xa0\x7d\xb1\x55\x6f\x5a\x75\x67\x5d\xa1\xcf\x42\ \x74\x96\x9a\x44\x2b\x52\x87\xec\x9e\x44\x74\xc8\x75\xdf\xf9\x44\ \xe4\x27\xe9\x8f\xc6\xad\x15\x96\x27\x36\x82\xfc\x44\x2c\xa0\x80\ \x92\xa1\x95\x0c\x76\xe7\xbe\x69\xce\x04\x95\xf8\xff\x00\x64\xdb\ \x2c\x6f\x19\x1c\x6e\x18\xa5\xaa\x52\x4f\x7d\x0d\xd7\xa6\xaf\xd5\ \xf5\xdd\xfd\x32\xa6\xe8\x9f\x52\xb5\xa7\xeb\x98\xb6\x5e\xa2\xd8\ \xd3\x6e\x99\x34\x91\x0a\x63\x69\xd8\x87\xd6\x06\x7c\x35\xa4\x12\ \x12\xa2\x01\xc1\x18\xcf\x6c\x55\xcd\xab\x75\x1c\x4b\x4e\x9c\x9f\ \x78\x96\xef\x87\x1a\x1b\x0a\x79\xe2\x0e\x4e\xd4\x8c\x90\x3e\x4f\ \x61\xf3\x4c\xba\x8f\x4d\xb5\x31\xb4\xca\x8c\x86\x1e\x71\x0a\x0b\ \x09\x5b\x78\x21\x40\xf0\x52\x7d\xea\x17\xaa\xa0\xde\xae\x50\x95\ \x63\x93\x0a\x43\xcd\xc8\x50\x2e\x64\x8d\x84\x03\x9e\x7e\x38\xed\ \x54\xa9\x39\xc2\xfa\x12\xa8\xd1\xaf\x28\xb8\xbb\x5b\x7b\xfa\x44\ \x1f\xa7\x7a\xd6\xf9\x7e\x95\x37\x52\x5c\xe5\x45\x85\x69\x79\xd3\ \x96\x1d\x21\x02\x33\x7e\x87\x79\xef\xf3\xee\x7b\x55\xc5\xd3\x1d\ \x4d\x0e\xeb\x16\x74\xfb\x79\x2e\x43\x4b\xfe\x1a\x1d\x29\x20\x39\ \x81\xc9\x4e\x7b\x8a\x88\x41\xb0\x5b\xa2\x43\x4c\x79\x16\xd6\xa6\ \x25\x27\x62\x10\xe3\x23\xc3\x07\x19\xec\x46\x3f\x3a\x94\xd8\xee\ \x31\x23\xb2\xcc\x56\xd8\x69\xa1\xfd\x5a\x5b\x42\x40\x49\x23\xdb\ \x1d\xbf\xf2\xa4\x52\xa4\xe3\x2c\xcd\xdb\xb8\xd7\x8d\x95\x1a\x91\ \xb4\x23\xd9\xeb\xc4\xb2\xa1\xca\x6a\x42\x4f\xad\x6a\x95\x93\xca\ \x12\x0f\xb6\x7d\x69\x96\x14\x9f\x30\x52\x14\x38\x1c\xe3\xd4\x53\ \xba\x1d\x4a\x9b\xee\x49\x27\xb7\xb5\x6d\x52\xba\xb3\x38\x4e\x19\ \x5d\xc4\x92\x9b\xdc\x9c\x90\x01\x3e\x86\xa2\x77\x84\xa1\x93\xbd\ \x43\x6a\x42\x87\x73\x53\x07\x16\x08\x50\x52\x8a\x89\x3c\xfc\x54\ \x47\x54\xa9\x28\x8c\xe9\xc2\x31\x8f\x26\xef\x7f\x63\x59\xeb\x69\ \x1b\x97\x85\xef\x63\x9d\xfa\xca\xcf\xeb\x0e\xa3\xbb\x1b\xc4\x6c\ \x17\x22\x78\x1e\x13\x99\x0a\x2b\x09\xde\x95\x20\x8f\x5c\xff\x00\ \xe8\x45\x45\x2d\x37\x2f\x07\x5e\xda\xf4\xd8\xf0\x8b\x6c\x47\x57\ \x8a\x50\x80\x32\xf2\x93\x93\x9c\x13\x9c\x11\x8c\xf1\xce\x6a\x6f\ \x75\xfb\x15\xef\x5d\xc8\xfd\xa7\x88\x44\xa7\x1b\x43\x78\xf3\x95\ \xa1\x20\x00\x32\x3b\x8c\x8c\x11\xdf\x07\x8a\xa4\x2d\x17\x69\x0e\ \x75\x34\x4d\x52\x9b\x42\xd3\x39\x59\xc1\xe3\xef\x10\x7f\xf4\xaa\ \xe0\x9d\xe4\xdf\x61\xab\x1c\xbf\xf8\xf8\x5f\xed\xf4\x47\x71\x74\ \xb8\xa7\xec\x8d\x93\xc9\xe3\xbd\x5b\xb0\x16\x36\x00\x0f\xe7\x54\ \x4f\x4e\xe7\xa5\x2d\x60\x1f\xbb\xc8\xe6\xac\x2b\x66\xa3\xf0\xe7\ \xb6\x16\xad\xad\xab\x8e\xfc\x57\xb2\x51\x75\xa9\x29\x1e\x0e\x9d\ \x65\x07\x66\x4f\xb3\x8c\x67\xf9\x56\x32\x46\xe6\x17\x93\xdc\x11\ \xcd\x69\x6a\x63\x0b\x48\x58\x70\x24\x7d\x6b\x5c\xb9\x49\x52\x7c\ \x36\xb0\xaa\xca\xa1\x2c\xdb\x1b\x9c\xe3\x97\x71\x89\x9b\x58\x5b\ \xa5\xc9\x4e\x65\x21\x5e\x50\x73\x45\x3c\xb6\xd0\x43\x78\xee\x73\ \x45\x6a\x75\x5b\x7b\x99\x15\x18\xa5\xb1\x18\xe9\xf3\xad\x31\xa2\ \x20\xad\xc2\x9d\xbf\xb4\xe3\x1f\xf1\xaa\xa9\x1b\x0b\x43\xcd\x85\ \x21\x47\x18\xcf\x06\xab\x58\x93\x1c\x6f\x43\x5b\xa3\x34\xac\x29\ \x5b\xfd\x7b\x7e\xd1\x54\xe3\xa7\xf5\x22\xe2\x36\x23\xbe\x14\x52\ \x39\x0a\x35\x78\xd1\xbc\x2e\xb7\x15\x1a\xd6\xb2\x7b\x13\xb2\x0e\ \xd3\x9c\x1f\xad\x43\xb5\x0c\x58\xf2\xaf\x00\xad\xad\xdb\x79\xc7\ \xcd\x2e\x1a\x8d\xb9\x67\xc2\x8a\x09\x50\xe0\xd1\x1d\xa5\x29\x65\ \xc5\x11\xe2\x2b\xb9\xc5\x32\x94\x1c\x75\x65\x6a\xcd\x4b\x44\x55\ \xb7\x5d\x07\xa9\x57\xa7\x2f\x7a\x62\xd8\xfd\xa1\x16\xab\x85\xcf\ \xf5\x83\x4e\xbe\x56\x97\x9a\xcb\xa9\x78\xb5\xb4\x24\x82\x37\xa7\ \x85\x6e\xc8\x07\xb1\xa7\xf9\x3a\x5e\x6c\x5d\x67\x78\xbd\xb1\x64\ \xd3\x57\xa6\x6e\xfe\x13\x8e\x22\xea\x8c\x2e\x3b\x88\x46\xc2\x52\ \xaf\x0d\x7b\x92\x40\x49\xdb\xe5\xe7\x3c\xfa\x54\xd5\x6a\x6d\xbc\ \x85\x3a\xda\x48\x04\xe0\xab\x1c\x7b\xfd\x2b\xd2\xa4\x85\xa1\x2a\ \x52\x7c\xfc\x0f\x92\x39\xc0\xfc\x2a\x5d\x28\xbd\xc4\x25\x62\x35\ \xad\xba\x72\xad\x5d\xac\x6c\xd7\x8b\x73\xb0\x22\xda\x9b\x65\xb6\ \x6e\x91\xd5\xb9\x2b\x75\x2c\xb9\xe2\xb1\xb0\x24\x60\xe1\x79\x07\ \x24\x71\xef\xda\xa1\x37\xcd\x19\x2e\xcf\xac\x2e\xf3\x22\xd9\xec\ \x57\x56\xae\x05\xb5\xa9\x37\x24\x10\xb6\x16\x94\xed\x25\x27\x62\ \xf7\x24\x80\x38\xe3\x9c\xf3\x56\xe5\xa7\x50\xdb\x2d\xfa\xa2\x2d\ \x8a\x44\xd4\xb7\x2e\x5b\x4b\x75\xa6\x94\x71\x94\x20\xa4\x12\x4f\ \x61\xca\xd3\x8c\xf7\xe7\x1d\xa9\x46\xb0\x44\x34\xcc\x57\x8e\xa4\ \x23\x29\xca\x94\xae\x31\xf3\x9a\x4c\x16\x5a\x8e\x1c\xb7\x1f\x38\ \x46\x70\xe2\x2d\xef\xa9\x50\xdc\xf4\x8a\xaf\x2f\xea\x94\x49\x76\ \x3b\x30\xef\x36\xb8\xd0\xe3\xf8\x69\x25\x6c\xad\xa2\xa2\x14\x53\ \x80\x36\x82\x53\xc0\x3e\x87\xb5\x21\xbb\x58\x6f\x93\x26\xb7\x7a\ \xd4\x0e\x40\xdd\x6e\xb6\x48\x66\x33\x51\x14\xa5\x78\x8e\x38\x90\ \x16\xe1\x25\x23\x6f\x09\x18\x48\xcf\x7e\xf5\x65\x26\xda\xf1\x07\ \xec\xcb\x42\x9b\x3c\x82\x0f\x1f\x5a\xc5\x30\x43\xa8\xf1\xd6\xf3\ \x65\x19\xc0\x5e\xf1\x8c\xe7\xd0\xfd\x6b\x46\x48\x99\xf2\x95\xc7\ \x4c\x6c\xb7\x59\x76\x7d\x17\x2a\xee\xcc\x58\xb0\xac\xcc\x07\xd9\ \x65\xb5\xad\x4f\x3c\xef\x85\xb1\x25\xc0\x52\x9f\x0f\x68\x52\x8e\ \xd1\xbb\x24\x0e\x6b\xd6\x34\x6d\xf5\x3a\x7e\xd3\x6b\x0f\x43\x53\ \x90\xb5\x22\x6e\xce\x10\xb5\x6d\x2d\x07\xd4\xe6\x07\x97\xef\x61\ \x5d\x8e\x06\x7d\x6a\x6f\xac\xee\x28\xd2\xba\x6a\x4d\xe6\x42\x54\ \xf8\x8e\x5a\x0a\x61\x0a\x01\x67\xc4\x75\x2d\x03\xcf\xa6\x55\xfc\ \x2a\x45\x0d\x31\x23\x6e\x3e\x2a\x56\xb0\x76\xf0\x73\x83\xed\x50\ \xa1\x1d\x81\x45\x6c\x44\x9b\xe9\x44\xbb\xe3\x5a\xd6\x4c\xd9\x10\ \xd9\x4d\xed\xc8\x2f\xdb\xd4\xa0\x5c\xf0\x9c\x8e\x84\xff\x00\x5a\ \x92\x00\xda\x54\x9c\x10\x09\xca\x49\xec\x69\xca\xf3\xa6\x6e\x57\ \x3d\x1d\xa8\xac\x8c\xd8\x74\xa5\x8e\x5c\xf8\x2a\x8a\xd3\x96\xe2\ \xad\x8b\x24\x28\x12\xe1\xf0\x92\x42\x73\xb4\x81\x85\x63\x9e\x4f\ \x73\x65\x30\xeb\x66\xd0\x4b\x4a\x07\x1c\x1c\x73\x83\xfe\x8d\x44\ \xb4\x1e\xa3\x8d\xaa\x74\x6c\x0d\x48\xcc\x75\x45\x66\x62\x54\xb4\ \xa1\xd5\x02\x53\x85\x94\xe0\x9f\xc2\xb1\x2b\x4a\x4d\xb3\x6c\xa9\ \xc2\x09\x45\x73\x5e\xbf\x91\xa9\x1a\x4a\xe2\x35\x8e\x96\xbc\xaa\ \x44\x6f\x02\xd3\x6b\x7a\x1b\xe9\xde\xad\xea\x5a\xc3\x60\x14\x0d\ \xb8\x29\xf2\x1e\xe4\x7a\x71\x58\xf4\xc7\x4f\xdd\xf4\x8e\x89\x66\ \xc3\x76\x30\x5d\x66\xda\x85\x06\x24\x45\x71\x6b\x53\xa8\x2b\x52\ \x89\x52\x0a\x06\xd3\x82\x38\x05\x59\xe6\xa6\xe9\x04\x27\x3d\xa9\ \x93\x42\xea\x38\xda\xaf\x49\xc7\xd4\x0c\x30\xe4\x56\x5e\x53\xc9\ \xd8\xea\x81\x29\xf0\xdc\x5b\x64\x93\xdb\x19\x41\x3f\x8d\x32\xf6\ \x77\x2b\xc3\x8d\xfb\xff\x00\xa2\xbc\xb5\xe9\xb9\xba\xc6\x1e\xbd\ \x10\x56\x62\x7d\xb6\xf7\x0e\x5d\xb6\x44\xa6\x56\x86\x9e\x54\x74\ \x34\x79\x04\x05\x14\x12\x92\x9c\x81\xf2\x33\x8a\x9a\xdb\x34\xe6\ \xab\x6b\x58\xdd\xb5\x74\xc1\x63\x32\xa7\x5b\x19\x86\xdc\x24\xbe\ \xea\x9a\x6c\xb6\xb2\x4e\xe7\x0b\x60\xa8\x10\xa5\x1c\xed\x18\xe0\ \x63\xd6\x9d\xf5\x1d\xda\xdb\x60\xb6\x2a\xe7\x71\x96\x98\xd1\xc2\ \x90\xd8\x51\xe7\x2a\x5a\x82\x52\x00\xf5\xc9\x50\xfe\x75\xb5\x99\ \xaf\x3a\x93\xb1\xe4\xad\x27\x21\x25\x2a\xc8\x35\x4e\x0e\x77\x74\ \xc9\x8b\x8d\x3d\x1e\xff\x00\xdf\xdd\x95\xb5\xcb\xa7\x57\x27\x74\ \xee\xaf\xb6\x47\x55\xa2\xd0\xe5\xfe\x4c\x49\x11\xed\xf1\x16\xb5\ \xc3\x88\xb6\x16\x85\x93\xbb\x62\x4e\x5c\x28\xf3\x10\x81\xd8\x71\ \x57\x1d\xa5\x73\x5d\xb7\x34\xbb\x9b\x11\x98\x96\xa0\x7c\x46\xe3\ \xbc\x5d\x6d\x3c\x9c\x00\xa5\x25\x24\xf1\x8f\xdd\x14\xc4\x41\x27\ \x27\x93\xeb\x4f\xd6\xc5\x97\x23\x8f\x5c\x54\x56\xa4\xa1\x14\xd1\ \x7c\x33\x59\x9f\xaf\x5b\x89\xa5\x24\xb5\x21\x24\x7a\xf6\xa7\x78\ \xe7\x2c\xa7\xd6\x91\xcd\x6b\xc4\x6f\x3d\x88\xf5\xa5\x51\x01\x0c\ \xa7\xe9\x49\xa9\x2c\xd1\x46\xba\x6b\x2c\xd8\xd3\xa9\xe4\xa2\x34\ \x52\xb7\x15\x84\x81\xde\xab\x1d\x4f\x7b\x86\xa8\x25\x40\xad\xb0\ \xe0\xf2\xf8\xa8\x28\xdd\xff\x00\x6b\x15\x64\x6a\x14\x78\xaf\xa1\ \x2b\xfb\x83\x9a\xab\xba\xb3\xe1\xae\xd8\xea\x40\x68\xa8\x24\xed\ \x0b\x4e\xe0\x48\xf4\xc5\x6c\xa5\x25\x4e\x95\xd9\x86\xbe\xb5\x19\ \xcd\xda\xb6\xfb\x1a\xdd\xd5\xcb\x15\xd6\x42\x81\x87\x1e\x42\x1a\ \x90\x73\x82\xde\xf2\x41\x27\xe0\x12\x93\xf4\xae\xae\xb1\xdb\x90\ \x9b\x8a\x9c\x86\xe3\x8c\xa1\xd6\xf3\x2d\xb4\xab\xca\xb2\x7b\x1c\ \x7b\x90\x2b\xe7\xf6\xb6\xb9\x3f\x32\xec\xfc\x2b\x82\xd4\x70\xa2\ \x83\xea\xa4\x1c\xf0\x01\xf5\x1f\x35\xd4\x5f\xa2\x97\x58\x2d\xb7\ \xc8\x0d\xe9\x1d\x45\x31\x98\xb7\xe8\xa9\x4b\x71\xd4\xf3\x9b\x44\ \xd6\xd2\x36\x8c\x13\xdd\x60\x0e\xdd\xcf\xcf\x35\xe7\xab\x6b\x3c\ \xdc\x8f\x57\x83\x83\x86\x1d\x53\x4f\x5f\x5e\xbf\xa2\xde\xeb\x2e\ \x97\x7b\x57\x68\xa7\xed\x4c\x1c\x2d\x01\x4a\x6d\x0d\xaf\x6a\x95\ \x84\xe4\x00\x4f\x03\x90\x9e\x6b\x92\x93\x19\xbb\x73\xef\x5b\xe4\ \xb4\x4b\x81\x28\x54\x84\x2f\xca\x5a\x52\x07\x27\x38\xe7\x68\xc9\ \xf9\x27\xd6\xbb\x88\xa3\xc5\x5e\xe2\x46\x48\xda\x77\x77\xae\x48\ \xeb\x35\x85\x7a\x63\x5f\xcf\x43\xa9\x57\x85\x31\x2a\x53\x4a\x24\ \xa8\x39\x9c\x73\xcf\xb9\xdc\x08\xf4\xe7\xe2\xb9\xd8\x98\x38\xbc\ \xcb\x99\xd3\xe8\xea\x97\x83\xa2\xde\xda\xaf\xa9\x24\xd0\xf2\x57\ \xf6\x19\x31\x5d\x59\x40\x12\xfc\x45\x21\x44\xe4\x6e\x27\xca\xaf\ \x9c\x72\x40\xc7\x35\x65\xe9\xd2\x0b\x45\x09\x75\xc5\xa3\x76\x7d\ \x89\x1f\xe5\x55\x26\x88\x9c\xa9\x53\xdc\x5e\xc6\xc2\x6e\x4d\x26\ \x42\x80\x56\xe5\xf8\xa0\x04\x3b\xdf\xfb\xd9\xe2\xad\x9b\x11\x2d\ \x24\x2d\x40\x05\x27\x29\x20\x7f\x64\xfb\xfb\xd6\x5a\x6b\xac\x18\ \x84\x49\xe3\x24\x36\x85\x25\x38\xca\x8e\x4e\x07\x39\xcd\x28\x8c\ \x0a\xdb\x4a\x82\x46\x3b\x8f\xce\x91\xc5\xe4\x11\xb9\x58\x4e\x55\ \xbb\x07\x38\x22\x9c\x60\x92\x12\x12\xb4\x8e\x3d\xfb\x1c\xd6\xb4\ \x60\xbd\x85\xab\x05\xa6\x14\xb3\xf7\x12\x33\x4c\xec\xba\x23\x95\ \xcd\x77\xcf\x25\xc2\x43\x69\xfe\xc0\xc7\x6f\x83\xf3\x4f\xb2\xd1\ \xba\x1a\x53\xc9\x0a\x50\xdc\x3d\xc5\x31\xbe\x94\xf8\x86\x43\xdb\ \x90\x9c\x04\xa9\x27\xdf\xd0\x7d\x39\xef\x53\x2d\xef\xd8\x10\x77\ \x42\x37\x5c\x7e\x79\x4b\x89\x3b\x02\xd3\xc7\xb9\x1e\xf5\x93\x36\ \xf4\x85\x79\x80\xd8\x57\xc9\x2a\xf5\x1d\xbe\xbc\xd4\x57\x5d\xf5\ \x33\x4f\x69\x47\x4b\x32\x64\xa5\x52\xd6\x8f\x2a\x00\xe7\x1c\xfa\ \x0f\x4a\x68\xd2\x57\x4d\x5f\xad\xae\xf3\x6d\x50\xa3\xaa\xd0\x98\ \xad\x36\xf2\x95\x35\xa5\x00\x42\xf3\xb4\xa1\x39\x1e\xd4\x3a\xb0\ \x86\xb2\x7a\xf9\x9d\x28\x60\x2b\x3a\x5c\x59\x75\x61\xda\xcb\x2d\ \x86\xa0\x21\xc2\xd1\x90\xd2\x55\x8c\x95\x77\xcf\x34\xa9\x95\xc1\ \x53\xa1\x96\xe5\x0e\x33\xc6\x7b\xfe\x35\x03\xb2\x74\xc3\x5c\xc9\ \xba\xca\x1a\x83\x5a\x2e\x2a\x07\xf5\x62\x13\x0d\xe1\xc4\x9f\x5e\ \x47\x1f\x4e\x69\xce\xd1\xd2\xbd\x47\xfa\xee\x6b\x12\x75\xb3\x8b\ \x86\xd8\x49\x8e\x44\x54\x95\x9c\xe7\x3b\xfb\x0e\x38\xed\x5a\x21\ \x59\x3d\x14\x5f\xaf\x88\xba\x94\xb0\x91\xbd\xeb\xa7\x65\xd8\xfe\ \xc4\x95\xa6\x7c\x55\x9f\x09\xe6\xd6\x1b\x00\x10\x97\x33\xc6\x73\ \x9a\x45\x71\x88\xda\x9d\x54\x97\xd7\x1d\x21\x03\x81\xb8\xa4\x1f\ \xfc\xe9\x9e\x67\x4c\x75\x5f\xeb\x76\x58\x8d\xa8\x60\x3b\x15\x6d\ \xab\xc5\x71\xd8\xca\x4b\x89\xc7\x60\x36\xab\x9c\xd6\xa9\x9d\x20\ \xbf\xa6\x4c\x7f\xb3\x6a\xb4\x96\x94\xb2\x97\x52\x5a\x51\x50\x49\ \x07\xee\xe4\x91\xdf\xde\x87\x34\xd7\xba\xfe\x5f\x92\xb1\xf6\x44\ \xee\xeb\x2f\x93\x17\x07\x6d\xe1\x94\x25\xb7\x9b\x2d\x9e\x30\x55\ \xc2\xb8\xf7\xf7\xf9\xa6\xf7\xed\x8c\x78\x61\xe8\xea\x0a\x03\x27\ \x28\x19\x1c\xf7\xff\x00\x3c\xd3\x64\xfe\x9a\xeb\xe7\x6f\x2f\xc7\ \x81\xa9\x5a\x54\x36\x9a\x07\xc6\x75\x94\xf2\xb2\x78\x4e\xd0\x3b\ \x62\xaa\x88\x7d\x40\xbc\x58\xef\x8e\x5a\xaf\xa9\x11\xa5\xb6\xe1\ \x48\x09\x27\x6a\xfb\xe3\x8f\x91\x59\xe5\x56\x12\x79\x6c\xd3\xef\ \x47\x46\x86\x06\x38\x84\xde\x1e\xa2\x93\xec\xf1\xf1\xb1\x77\xd8\ \xe5\xba\xdb\xe9\x43\x99\xc0\x59\x0a\xf6\xed\x53\x0b\x73\x9e\x2b\ \x67\x1d\xfd\x88\xee\x2a\x07\xa4\x5d\x5d\xee\x3a\x1e\x4a\x02\x14\ \x51\xe2\x2d\x03\xb6\x3d\xbf\x1a\x96\xe9\x54\x38\xea\xc9\x42\x89\ \xf0\xcf\x23\x18\xdc\x08\xff\x00\x0a\xa4\x1b\x5a\x33\x97\x88\x86\ \x59\x34\xf7\x42\xa9\x6a\x48\x56\xd5\x70\x73\x9c\x0a\x85\xea\xb9\ \xa0\x45\x74\xab\x01\x09\x49\x25\x47\xd3\x15\x2f\xbc\x2d\xa4\x29\ \xd2\xb4\xe0\xa4\x77\x57\x63\x9a\xac\x7a\x93\x34\x43\xd3\x13\x9d\ \x5a\xc2\x56\x52\x4b\x64\x9f\x55\x70\x08\xf4\x3c\x9a\x4e\x22\x4e\ \xd6\x2b\x45\x5e\x48\xab\xba\x6c\xfc\x4b\x9d\xfd\x53\xfc\x35\x96\ \xa2\x25\xdb\xa3\x8f\xa9\x39\x49\x58\xdd\x8f\x4e\x78\xc8\xfc\x2b\ \x9b\x2d\xab\x4b\x97\xf5\xaf\x79\xfd\xa3\x8a\x70\x1e\xdd\xce\x45\ \x5c\x1a\xab\x57\xc2\xb6\x69\x39\xda\x77\x4a\x2f\xed\x17\xcb\x8c\ \x77\xff\x00\x59\xba\xda\xbc\x36\x58\x64\x27\x7b\xbb\x72\x7e\xf9\ \x48\xc6\xd1\xdb\xd3\x92\x2a\x97\x69\x6f\xb7\xe1\xc9\x79\x95\xe1\ \x01\x28\x0a\x50\xc2\x7b\x70\x3f\x2e\x6b\x6e\x06\x8b\x50\x93\xed\ \x27\xa4\x2b\xc5\xd5\x82\xff\x00\x5d\xce\xab\xd1\x3a\xa3\xec\xf6\ \x98\x2f\x3a\xb0\x15\x25\xa4\xed\xc1\xfb\xd8\x1c\x91\x52\xc9\xfa\ \xb5\x94\x4e\xb2\x41\x65\x64\xc8\x9d\x28\x20\x25\x3d\xc3\x69\xe5\ \x4b\x23\xdb\xd2\xb9\x3e\xcd\xad\x1e\xb7\x5b\x7c\x36\xd2\x65\xcd\ \x07\x6a\x1c\x5e\x4a\x50\x8c\xf0\x94\x8f\x41\x9c\xf1\xc7\x3e\xf5\ \x62\xf4\x9e\xe1\x24\xdc\x57\x74\x92\x97\x6e\x37\xd9\x3e\x44\x04\ \x72\x23\xb6\x0f\x61\xe8\x9f\xc6\xb7\x55\xc5\x55\xa5\x45\x41\x7a\ \xfc\x1e\x62\x78\x05\x79\x54\xde\x28\xeb\xeb\x54\xe5\x3e\x86\xd8\ \x4a\xce\x4e\x33\xcf\x02\xa6\x76\xf4\x06\x9a\x4e\x72\x4e\x39\x26\ \xaa\xbe\x9d\x6f\x0e\x0f\x1d\xd4\xad\xce\xe7\x6f\x61\xf4\xab\x3e\ \x2b\xa9\xc6\x49\xf4\x1d\xf9\xae\xec\x33\x4a\x8c\x6e\x72\xe9\x68\ \xf5\x16\x49\x92\x96\x5a\x0a\x3c\x9a\x29\x39\x47\xda\x9c\x39\x00\ \xa5\x23\x91\xef\x45\x11\x8d\x34\xba\xc3\xdc\xaa\x37\x78\x95\x3d\ \xa1\xc5\x39\x68\x82\x33\x84\xa0\x2f\x1f\xfe\xe2\xa9\x44\x8d\xbe\ \x63\xb7\x1c\x7d\x4f\xfa\xef\x49\x74\xf0\x26\xcf\x18\x0e\xf8\x73\ \xd3\xfe\x31\x54\xaa\x50\xdc\x84\x8c\xe4\x9f\xe3\x5a\xa1\xee\xa3\ \x0a\xd8\x90\x69\x48\xa1\xb8\xc5\xcd\x99\x2a\xef\x4e\xef\xb9\xe1\ \x34\xa5\x9c\x80\x3b\x7c\xd6\xab\x33\x61\x10\x90\x12\x79\x29\xac\ \x24\x61\xc9\x29\x63\x90\x3b\x9e\x3b\x55\x89\x39\xeb\x52\x3d\x6f\ \x93\xa3\x75\x5d\xc6\xed\xe0\x0d\x46\x35\x1f\x84\x87\x16\x47\x8e\ \x94\xf8\xe8\x4a\x5b\x49\xfb\xde\x1f\x81\x9c\x0e\xc4\x66\xa6\xb7\ \x88\xf6\x59\xfa\x8b\xa8\xee\x6a\x94\xc7\x5b\xd0\x22\x34\x61\x2a\ \x47\x78\xd1\xfc\x00\xa0\xb6\x89\xfb\xa4\xb9\x92\x54\x9e\x77\x00\ \x3d\x05\x48\xf5\x2f\x4d\xdb\xd4\x17\x55\x29\xf9\xea\x79\xa5\x3c\ \x97\x1c\x69\x31\x59\x42\xd6\x10\xa0\xa4\xb6\x5d\x08\xdc\x50\x14\ \x91\xc6\x73\xc7\x7a\x95\x4b\xd2\xd1\x66\xb8\xd4\x9b\xdd\xaa\x0c\ \xa7\x18\xe5\xa7\x1e\x8e\x95\xa9\xbf\xf9\x24\x8e\x3b\xfa\x56\x7c\ \xba\xea\x51\x52\x93\xd6\xc5\x6f\xa1\x61\xb3\x73\xea\x56\x86\x95\ \xa9\x61\x44\x7e\x63\xba\x4d\x4e\xc9\x54\x96\x92\x54\xb7\x53\xe1\ \x61\x4a\xc8\xe5\x63\x93\xf1\xcd\x48\xfa\xcf\x74\x87\x2a\xf5\x66\ \xb3\xb9\x68\xb7\xdc\x9f\xb8\x4a\x52\x23\xfd\xbf\x1f\x67\x65\x48\ \x6d\x4a\x2b\x3c\x1f\x36\x32\x12\x07\x24\x9e\xe2\xa4\x37\xb4\xda\ \x27\xa1\x86\xe4\x5a\x60\x4c\x72\x32\x8a\xd9\x72\x44\x74\x38\x5a\ \x51\xee\x50\x54\x0e\xd3\xf2\x29\x04\xfb\x6c\x0b\xa4\x6f\x06\xe9\ \x06\x2c\xd6\x77\x6e\xf0\xe4\x34\x97\x13\xb8\x76\x38\x50\x23\x35\ \x31\xa4\xd4\x9c\x86\x37\x68\x64\x44\x2f\xa1\xd2\x25\x33\xa7\x2e\ \xec\xb4\xeb\x4a\x8f\x1a\xf9\x31\x96\x10\xca\x8f\x82\x86\xc2\xf2\ \x12\xdf\xf7\x39\xe3\xe0\xd4\x66\xe7\x19\xcb\x8c\x2b\xb7\x4e\xa2\ \xa9\xc4\x3d\x6d\xb8\xcf\xbc\x32\x1b\x27\x29\x6f\xc1\x0e\xc7\xfc\ \x3c\x69\x23\x8f\x5f\x0f\xeb\x57\x0c\x68\x71\x62\x21\x48\x8b\x19\ \x98\xe9\x70\x82\xb4\xb6\xd8\x48\x2a\xc0\x19\x38\xf8\x00\x67\xe0\ \x52\xad\x3b\x6a\xb7\xa6\x74\x8b\x92\x61\xc7\x13\x1d\x40\x6d\xc9\ \x01\xa4\xf8\x8a\x48\xec\x92\xae\xe4\x0f\x6a\xb4\xa9\xf5\x52\x65\ \x14\x2f\x64\x51\xfa\xda\xe4\x8d\x5b\xa0\x75\x76\xae\x6c\xe6\x3c\ \xe3\x6b\x84\xc1\x07\x90\x84\x38\xca\xd6\x07\xb7\xed\x5e\x70\x7d\ \x51\x4b\xb5\x94\x25\x69\xed\x51\xaa\xa2\xe9\x88\xe8\x80\x4e\x8c\ \x12\x7c\x28\xa8\xd8\x0b\x89\x79\x68\xf1\x00\x1f\xbc\x10\x3b\xf7\ \xe2\xad\x56\x74\xed\x8d\x98\x8e\x5a\x51\x68\x80\x9b\x76\xed\xc6\ \x20\x8c\x8f\x07\x21\x41\x40\xec\xc6\xdc\xee\x00\xf6\xef\xcd\x2f\ \x4c\x18\x5f\xac\x0d\xc0\xc4\x8f\xf6\xc2\xc8\x64\xbf\xe1\x8f\x10\ \xb6\x0e\x42\x37\x63\x3b\x72\x49\xc6\x71\x93\x51\xc2\x2a\xe1\x72\ \x17\xa4\x9a\xb2\xc2\xd7\x7a\x05\x8d\x26\x88\xcc\xa6\x6d\xb2\x51\ \xb8\x88\xa7\x1f\x68\x8e\x1a\x4a\x9b\x71\xdc\x7d\xe5\x78\xa4\x61\ \x4a\xe4\x95\x2a\xa1\x1a\x11\xb9\x73\x6c\x9d\x32\xb4\xbb\x0e\xd9\ \x36\x03\xb6\xd9\xeb\x6a\x3d\xcd\x65\x31\xde\x90\x1d\xc7\x20\x25\ \x5b\x96\x94\x12\x52\x08\xf5\x26\xae\xcb\x45\xaa\xd9\x68\x92\xec\ \xab\x55\xb2\x14\x27\x9e\x20\xba\xa8\xec\x25\xb2\xe1\xfe\xf1\x03\ \x9f\xc6\x97\xc7\xb3\x69\xfb\x85\xa9\xbb\x13\xd6\x0b\x59\xb7\xb5\ \xfd\x54\x43\x11\x05\x94\x77\xec\x8c\x6d\x1d\xcf\x61\xea\x69\x33\ \xa2\xe2\xdc\xb9\x0e\x8c\x73\x59\x7a\xe5\xf6\x1b\xfa\x63\x6a\x9d\ \x60\xd0\xf1\x2d\x17\x29\x91\xa5\xb9\x1c\xba\x96\xdc\x8e\xe2\x96\ \x80\xd1\x71\x45\x08\x0a\x57\x27\x68\x21\x3f\xf5\x6a\xa0\xd0\x4d\ \xb5\x22\xc3\xd3\x28\x17\x64\xa1\xdb\x1c\xbb\x8d\xdb\xc7\x65\xee\ \x59\x75\xf4\xba\xe9\x61\x2b\x1d\x8f\x3b\xc8\x07\x82\x40\xae\x88\ \x8b\xa7\xa3\x43\x88\x86\x22\x34\xd4\x76\x1b\xe1\xb6\x9a\x40\x4a\ \x12\x3e\x00\xe0\x73\x49\x17\xa7\xec\x66\xc6\x6c\xa6\xcd\x6e\xfd\ \x5c\x92\x4f\xd9\x3e\xcc\x8f\x07\x24\x95\x13\xb3\x1b\x79\x24\x93\ \xc7\x72\x4d\x2f\x34\x5f\xba\xc7\xcb\x0f\x2d\x2f\xa5\xbf\x05\x0b\ \xa9\x63\x43\x3a\x37\x56\xc4\x61\x98\xee\xd8\x60\xeb\x08\x88\xb7\ \x82\x90\xa6\xd8\xca\xd9\xf1\x90\xde\x78\x4a\x02\x94\xa1\x81\xc0\ \xc9\x15\x7a\xa6\x14\x48\x28\x6d\x88\x2c\x31\x1a\x3a\x01\x4a\x1a\ \x65\x01\x28\x4f\x3c\x80\x07\x03\x9a\xdb\x1e\xd1\x69\x55\x98\xd9\ \xd5\x6c\x82\x6d\xc5\x3b\x0c\x42\xc2\x3c\x12\x33\x9c\x6c\xc6\xdc\ \x67\xe2\xb2\x72\x0c\x48\x10\x99\x89\x06\x2b\x11\x23\x34\x36\xb6\ \xd3\x2d\x84\x21\x03\xd8\x24\x70\x2a\xd4\xfa\xb3\x21\x52\xb2\xb9\ \x8e\xd4\x91\x4e\x56\x73\x84\x28\x7a\x53\x7a\x53\xe5\x19\xa7\x1b\ \x42\x78\x55\x4d\x67\xd4\x63\xa8\xae\xba\x15\xca\x21\x2d\x13\xfc\ \x6b\x7c\x70\x7c\x04\xe7\xeb\x9a\x4d\x30\xf9\x42\x7d\xcd\x2b\x4a\ \x7f\x60\x12\x38\xe2\xb1\x4b\xdd\x46\xd8\xfb\xcc\x88\xeb\x46\xae\ \xd3\x11\xe1\x5a\xe4\x47\x87\xce\x16\xfb\xa8\x2b\xda\x3f\xba\x3d\ \xfe\xb5\x51\xf5\x36\xd8\xf7\xea\x77\x23\xae\x4c\xa9\xea\xda\x77\ \x2b\x21\x0a\x5f\xc0\x20\x60\x55\xed\x75\x64\xae\x31\x6d\x23\x19\ \xe4\x9a\x84\x6a\x6b\x62\x1c\x86\xa1\xb3\x3c\x56\xc8\xae\x25\x2c\ \xa8\xc3\x56\x0f\x3d\xcf\x9f\x7d\x44\xb4\x48\x62\xe0\xf3\xe6\xd9\ \x2e\x3a\x4a\xb1\x87\xdd\x4b\x8a\x19\xf9\x00\x1f\x4a\x85\x38\x95\ \x15\x01\xe7\x42\xc7\x21\x47\x23\x9f\xf5\xeb\x5d\x45\xd6\x2b\x3b\ \xa9\x87\x39\x29\x04\xe5\x95\x29\x3c\x76\x29\x1b\x87\xf2\xae\x5f\ \x59\x90\xb7\x08\x5b\x8b\x21\x4a\xc0\xca\xb8\x15\xcc\x95\x19\x52\ \x76\x91\xd6\xa7\x5d\x56\x85\xd2\xd5\x16\x2e\x87\xeb\xc7\x54\xb4\ \x7a\x5a\x8f\x13\x50\xb9\x70\x88\xd8\xc2\x63\x5c\xd0\x24\x20\x0f\ \x60\xa5\x79\xc0\xf8\x0a\x15\x2d\xbf\x75\xe9\x7d\x44\x81\x1e\xd1\ \xa9\xf4\xfb\x11\x2e\x09\x75\x02\x34\xd8\x6e\xa8\x21\x27\x70\xdd\ \xb9\x0a\xc9\xec\x38\xc1\xaa\x42\x42\x1a\xd8\x95\x36\xa4\x9e\x3b\ \x81\xdc\xe3\xd6\x93\xef\x53\x4b\x0a\x6d\x5e\x1a\xb7\x02\x0f\xaa\ \x48\xe4\x7f\x1a\x44\xf0\xf4\xea\x2d\xac\x69\x86\x2a\xa5\x29\xa7\ \x7b\xfa\xed\x3a\x67\xa6\x45\x2f\x6a\x47\xd8\x43\xe8\x41\x8d\xbc\ \x84\xf0\x0b\x4e\x28\x85\x67\x8e\x30\xa3\x93\xb7\xd3\x15\x7f\x59\ \x10\x50\xd8\x04\x27\x05\x1b\xbb\xf2\xa5\x1a\xe5\x2e\x83\xc8\x4c\ \xfb\xf1\xb8\xc8\x79\x6d\x36\xb4\x12\xf3\x69\xe4\x15\x8e\x0a\x86\ \x7d\x87\x38\xf8\xae\xa5\xd3\x24\x22\x33\x7e\x33\xbb\xbc\x4f\x38\ \xcf\xb6\x3f\xca\xb8\xb2\x86\x4a\xb9\x4e\xd5\x49\xf1\x20\xa4\xb6\ \x25\x50\x0a\xca\x96\x16\x52\xb5\x63\x00\x03\xda\x97\x46\x52\x10\ \xb1\xfb\x5d\xe1\x7c\xe0\xfc\x7b\x53\x5c\x22\xd2\xdd\x29\x28\x29\ \x46\xd0\x06\x13\x80\x41\xe7\x03\xf9\xd2\x97\x4a\x9b\x53\x7e\x1b\ \x5b\x92\xa3\xb4\x2f\x3c\x53\x91\x85\xad\x49\x2b\x23\xc4\x8c\x53\ \xc8\x23\x04\x53\x25\xf9\x97\x14\xd1\x4b\x27\x6a\xd2\xad\xe8\x1e\ \x83\xde\x97\xdb\x24\x00\xda\x71\xb4\x92\x39\xc1\xfb\xd5\xb6\x72\ \x42\xd4\xac\xa7\xb6\x3e\xa6\x99\x6b\xab\x95\x83\x71\x91\x46\x4e\ \xe9\xb5\x82\xdd\xaf\xef\x9a\xbb\x53\xb5\x3a\xe9\x0e\xe7\x19\x5e\ \x24\x65\xb4\x1c\x4b\x3c\x64\x84\x6d\xe5\x3f\x74\x04\xe3\xb6\x69\ \xce\x77\xe9\x2d\xd3\xb8\x71\xac\x1f\xab\x2d\xb7\x6b\x95\xd5\x6c\ \x84\xcd\x86\xcc\x52\x87\xa0\x36\x13\x85\x21\xd2\xb0\x01\x21\x40\ \x70\x32\x3b\x9c\xf2\x33\x69\x49\x6d\x0e\xb4\xa6\xdc\x47\x88\x95\ \x27\x18\x20\x62\xab\xed\x53\xd3\xf6\x1d\x92\x6e\x16\xc0\x84\xaf\ \xb1\x49\x47\x21\x3e\xa9\x04\x73\x8f\x8a\x74\x54\x5d\xf9\x5c\xdf\ \x4e\x34\x71\x35\x23\xc7\x93\x49\x7c\xbf\x17\x2b\xab\x87\x5e\x3a\ \xd4\xbb\xbc\xfb\xed\x93\x42\xda\xcd\x8e\x42\x52\xd4\x18\x92\x9b\ \x5b\x8e\xb5\x8c\xe1\x64\xa0\xa4\x92\xac\xf2\x31\x8e\x06\x3b\x12\ \x61\x8c\x7e\x92\xdd\x75\xd2\xb2\xa7\x4e\xbf\xd9\x2d\xf3\x1a\x98\ \x50\x19\x44\xcb\x72\xda\x6e\x36\xdc\xf9\x5b\xd8\x52\x48\x39\xe7\ \x71\x51\xe0\x73\xef\x74\x5b\x6c\x17\x96\x96\xd2\x90\xeb\xe8\x2a\ \x07\x87\x8e\x43\x7c\xe0\x10\x78\xc5\x2e\x9f\x66\xbb\x86\xca\x27\ \xc0\xb7\xdd\x5b\x20\x28\x87\xd9\x2a\x42\xbb\xfa\x03\xc6\x31\x4f\ \x8d\x24\xb5\x5e\xbc\xcd\x18\x8c\x0e\x0d\xbc\xb0\xd1\xf8\xaf\xaa\ \xfa\x94\x13\x1f\xa5\x47\x5a\x2e\x17\xf6\x6f\x31\x2d\x16\x43\x16\ \x33\x2b\x4a\xa1\x22\x0b\x85\x85\xa5\x58\xf3\xac\xef\xdf\x91\x8e\ \x08\x50\x1c\x9e\x0e\x6b\x46\xbd\xfd\x21\xfa\xb9\xaf\xf4\xd3\xba\ \x61\x16\x9b\x55\xac\xc9\x79\xa5\xfd\xa2\xd8\x97\xdb\x92\x14\x85\ \x85\xa4\x21\x45\xc3\xb7\xcc\x91\xc8\x19\xab\xd9\x36\x7b\x92\x98\ \x71\xa8\xac\xc1\xb4\x43\x3c\x2d\xa8\x51\x40\x04\x1f\x7d\xd9\xa6\ \xf7\xf4\xc4\x25\x02\x5b\x33\x14\xe2\x70\x12\x1b\x09\x4e\x4f\xb8\ \x20\x70\x6a\x5c\x5d\xbd\x7d\xcb\x51\xe8\xbc\x25\xba\xed\xdf\xb9\ \xaf\xb6\x9f\x32\xb4\xd1\x9f\xa5\x06\xba\xd3\xd3\x05\x83\x5a\xdb\ \x5f\xb9\xcc\x5b\x69\x6d\xd5\xb4\xca\x03\xe1\x40\x79\x54\x02\x78\ \x59\x23\x04\xf6\xe6\xa5\xd3\xe0\x5a\xfa\x99\x7a\x87\x76\x4d\x96\ \x7c\x6c\x38\x95\x7e\xdd\x92\xca\xca\x10\x90\x84\xa5\x5e\xc5\x58\ \x2a\xf8\xc8\xa9\x1e\x95\xd1\xad\xb7\x72\x33\x1f\x84\xd2\x16\x95\ \x79\x5f\x71\x01\x4f\x2d\x3f\xd9\x2a\x3e\x61\xef\xed\x53\xf8\xad\ \xa1\x0d\x25\x96\x5b\x28\x1d\xb7\x7a\x8c\x7a\xd6\x4c\xb0\x84\xae\ \xbe\xeb\xe1\xd9\xfc\x04\xb8\x78\x4a\xad\xd3\x77\x7c\x9a\xd3\xe7\ \x6d\xdf\xcb\x53\x56\x9c\xb4\xa6\xd0\x5c\x43\x28\xfb\x36\xe6\xc3\ \x6d\xa0\x2b\x77\x03\xb7\x3e\xf5\x2a\xb3\x30\xdc\x56\xde\x53\x79\ \x4a\x49\xce\x7e\x69\x14\x64\xee\x71\x03\x68\x0e\x01\x8e\x7b\x1f\ \x6a\x5f\x3d\xd4\xb5\x04\x10\xa1\x85\x63\x27\x3e\x94\xb7\x6b\xdc\ \xe5\xd6\xa9\x29\xbd\x77\x64\x67\x54\x3e\xa7\x0e\x12\x40\x2e\x2c\ \x20\x7d\x3b\xf0\x6a\xa3\xeb\xec\xc8\xc8\xd2\xef\xc4\x53\x85\x0d\ \x17\x1a\x42\x54\x9e\x4f\x0a\xdc\x4f\xc0\xc0\x3f\x95\x59\x12\x65\ \xa5\xc9\x6e\x28\x20\x29\xb6\x12\xa2\x94\xf7\xc9\xf7\x1f\x87\xa5\ \x50\x5f\xa4\xad\xd7\xc2\x8d\x11\x90\xea\x52\x14\xf9\x52\xd4\x39\ \x07\x00\x0e\xdf\x88\x35\x86\x5d\x79\xa4\xb9\xb3\x4d\x15\x95\xdd\ \xf2\x29\x3d\x51\x01\xb5\x6a\x2b\xbb\x61\x84\x15\xc9\x96\x0a\x48\ \x40\x3e\x12\x42\xf2\xad\xbe\xd9\x38\xc7\xba\x6a\x51\x1a\xde\xe4\ \xad\x04\x34\x9c\x87\x12\xa7\xe7\x4a\x52\xe1\xf8\x80\x00\xb9\x03\ \x09\x46\xd5\xfa\x03\x94\xa7\x9e\xc4\x1c\xf0\x6a\x2e\xdc\xa6\xe4\ \x33\x35\xf4\xa5\x68\x2e\xb9\x90\x47\x00\x1d\xaa\xc2\x7f\x3d\xbf\ \x95\x48\x27\xdc\x1c\x77\xf5\x54\x64\x04\xb9\x1d\x69\x42\xdb\xf7\ \x4a\x82\x48\x2a\x1f\x50\x8e\x7e\x41\xae\x83\x8d\x49\xa4\xbf\xd6\ \xc2\xe6\xe9\x53\x4d\xda\xf7\x4f\xee\x57\x96\xc9\x42\xd5\x39\xf8\ \xd7\x1b\x72\x64\x01\x96\x9d\x6d\x44\xa1\xc4\x28\x1f\xdd\x50\xec\ \x41\xfa\x8f\x71\x56\x7d\x87\xa8\x71\xd9\x65\x98\xd1\x6e\x0b\x43\ \x28\x40\x4e\xc7\xe1\xa5\x05\x27\xea\xd9\x19\xfa\xe2\xa3\xd7\x1d\ \x2e\xbb\xea\x95\x24\x2c\xb5\x39\x5d\xd4\xae\xce\x9f\x93\xef\xf3\ \xeb\xeb\x5a\x6c\x5a\x1a\xe6\x66\x04\xce\x2b\x8a\xd8\xfd\xe5\x23\ \x3f\x85\x6d\xc5\xd2\xa7\x17\x9e\x5b\x9c\x9c\x3c\x95\x78\x70\xe5\ \x6b\x17\xde\x84\xea\x4d\xbe\x1b\x6a\x91\x26\x78\x53\x68\x1c\x9d\ \x87\xf8\x0e\x6a\xcc\xb3\xf5\x6a\xcb\x37\xc3\x69\x13\x52\xb7\x1c\ \xc0\x65\x86\x92\x5c\x75\x7e\xde\x54\xe7\x68\xf9\x56\x2a\x91\xd1\ \xdd\x3f\xd3\x72\x5c\x4c\x6b\x83\xd2\x66\x36\x4f\xdc\x6b\xf6\x40\ \x9f\x92\x39\x35\xd0\x5a\x1f\x4e\x59\x2c\x50\x50\xcd\x92\xcf\x12\ \x0a\x55\x8c\xa9\xb4\x0d\xea\xfa\xa8\xf2\x7f\x3a\xac\x31\x78\xa7\ \x68\xd3\x8b\x39\x18\xaa\x58\x58\x36\xa1\x26\xc9\xf6\x97\x93\x2a\ \x4c\x60\xf3\xad\x96\xc2\xb9\x09\x3d\xe8\xa7\x1b\x5b\x78\x8e\xca\ \x07\x07\xf9\xd1\x5d\xbc\xce\xcb\x3e\xe2\xe9\xc1\xa8\x95\x8d\x91\ \xb0\xd5\x92\x13\x84\x67\x21\xc3\xff\x00\xf7\x15\x5b\xa4\xa0\xee\ \x40\xe0\x80\x72\x69\x7c\x08\xa5\x5a\x1e\xdb\x29\x00\x12\x9f\x13\ \x38\x1f\xf1\x8a\xa6\xf7\x54\x56\x94\xac\x80\x30\x73\xc0\xad\xd4\ \xdd\xe0\x8c\x0d\x58\x99\xdb\x49\x4c\x26\xc9\x27\x84\xf1\xc7\x15\ \xaa\x18\xdd\x31\xc7\xb3\x9c\x71\xc8\xe4\x57\x96\x97\x02\xed\xc9\ \x3b\x8e\x40\xe4\x66\x8b\x77\x09\x77\x18\x3e\x6c\x7c\xd5\x80\x8a\ \x33\xd4\x9b\x85\xb2\xdf\xa8\x35\x08\xd3\x08\x95\x6b\xb1\x5d\xff\ \x00\x56\xcb\x58\x9b\xb5\xe5\xa8\xb8\x94\x05\x34\x8d\x98\x57\xf5\ \x8d\x93\xb9\x49\xee\x7d\xb3\x4f\x57\xde\xa2\x49\x82\xbd\x4b\x6d\ \xd4\x76\x96\x20\x3f\x67\xb6\xa2\xe4\x55\x12\x59\x7d\x0e\xb4\xbd\ \xc3\x6e\x4a\x11\x85\x85\x27\x6f\x6c\x1c\x83\xc5\x37\xbd\xd3\x8b\ \xdc\xae\x9b\xeb\x2b\x23\x72\xad\xc9\x95\x7e\xd4\x29\xba\x45\x52\ \x9c\x58\x42\x1a\x0e\xc7\x56\xd5\x9d\xb9\x0a\xc3\x2a\xe0\x02\x39\ \x1c\xf7\xc2\x8d\x5d\xa1\xdf\xbe\x6a\x2d\x53\x3e\x64\xa6\x5b\xb7\ \x5e\x6c\x4d\xdb\x1b\xd8\x49\x75\xb7\x12\xb5\xab\x79\x49\x18\xc0\ \xdc\x08\xe7\x9c\x7a\x57\x36\xf2\x95\x4c\xdd\x86\x9f\xdd\x85\x3b\ \x76\xaf\xbf\xe0\x8d\x5a\xb5\x35\xc0\xdf\xad\x96\x9b\xe5\x99\xb8\ \x2b\xbb\x30\xb7\xa1\xa9\x99\x5e\x36\x0a\x00\x52\x9b\x73\x28\x4e\ \x15\xb4\xe7\x23\x20\xf3\xcf\x19\xa6\xfb\x37\x51\x26\x49\xd1\xcc\ \x6a\x69\x36\x16\xe3\xc7\x9a\xa6\x23\xc0\x6c\xcc\x1b\xe4\x48\x71\ \x7b\x08\x27\x6e\x10\x80\xac\xf9\x8e\x4e\x01\x38\xf4\xa7\x96\x34\ \x5e\xa5\x93\x7f\xb3\x5e\xaf\x92\x2d\x89\x4d\x9a\x3b\x88\x60\x44\ \x52\xd4\x5f\x71\xc4\x04\x17\x14\x14\x91\xb0\x6d\x07\xca\x37\x7d\ \xe3\xcd\x31\x40\xe9\xc5\xd9\x7d\x2b\xb4\x69\x79\x2e\xc1\x54\xfb\ \x5b\xe8\x92\xda\xd4\x92\xe4\x75\xad\x0e\x15\x84\xa8\x10\x0a\x90\ \x41\x20\xf1\xeb\xeb\xeb\xba\xf2\x7b\x18\xda\x91\x27\xd2\xba\x99\ \x77\x69\xd7\x6b\x5c\xb8\xf1\xe3\xcf\xb6\x38\xda\x5d\x4c\x79\x1e\ \x33\x4e\x21\xc4\xee\x42\xd2\xad\xa9\x3c\xf2\x30\x47\x04\x1e\xf4\ \xcd\x17\x57\x3d\xa5\xee\x1d\x43\xb9\x4d\x82\xf3\xdf\xaa\x53\x6f\ \x77\xc3\x4c\xd5\x2d\x0b\x69\xcd\xc9\x1b\x10\xa4\x80\xda\xb6\xf2\ \x40\xc8\x27\xd7\xd6\xa5\xda\x27\x4d\xbd\x00\x48\x76\x65\x96\xc9\ \x6c\x52\xca\x70\x8b\x6a\xb7\x05\x81\x9e\x54\x7c\x34\x76\xc9\xc7\ \x1c\x64\xd4\x7f\x59\xe8\x0b\xcd\xe7\xfa\x7e\x88\x4f\xc0\x48\xd4\ \x31\xa0\x35\x13\xc5\x5a\xc7\x86\x58\xce\xf2\xe6\x12\x70\x0e\x78\ \xc6\x7e\x71\x54\xa8\xdb\x8e\x85\xad\x24\x93\x5e\xb4\x62\xa7\xf5\ \x45\xe9\x8d\x51\x36\xc7\x70\xb2\x43\x89\x70\xfd\x54\x6e\x71\x76\ \x4c\x53\xad\x94\x85\x6c\x28\x70\xf8\x69\x29\x50\x51\x1d\x81\x18\ \x3c\x76\xa6\x1d\x25\xad\xef\x4d\xe8\x3d\x39\x36\xee\xcc\x19\x97\ \x1b\xd3\x88\x66\x17\xfb\x41\x6c\x2c\x90\xa5\x2d\x6e\x9d\x98\x42\ \x52\x13\xfb\xa1\x5e\x82\xa7\x57\x0d\x2b\x2e\xe1\xd4\x8f\xe9\x1a\ \xde\x8e\x88\x46\xc0\xe5\xb0\xa3\x71\xf1\x43\xaa\x79\x2b\xdd\x8c\ \x63\x6e\x01\xf5\xce\x7d\x3d\x6a\x14\xd7\x4b\xef\xc9\xd2\x5a\x7e\ \xd5\x2c\xd9\x1f\x93\xa7\xa4\x05\xc6\x0b\x5a\xdd\x62\x5b\x78\x52\ \x54\x97\x12\x50\x36\x12\x95\x0c\x63\x7e\x08\xa8\x53\x90\x4e\x13\ \x4e\xe8\x5b\x23\xa9\x2e\x33\x64\x2f\xfe\xa6\x4b\xd7\x16\xef\x89\ \xb2\xbb\x11\x99\x61\x49\x53\xaa\x4e\x50\xa4\x2c\x81\x94\xa8\x94\ \x72\x40\xc6\x4f\xb5\x38\x7f\x4d\xae\xb0\xae\x2e\xc1\x6a\xcf\x6e\ \x7a\xe9\x02\xd9\xfa\xc6\xe0\xd2\xee\x45\xb6\xd0\x32\xad\xad\x36\ \xaf\x0c\xef\x59\xda\x4f\x21\x23\xdc\xf3\x49\xee\x5a\x1a\xeb\x72\ \x85\x65\x8e\xd5\xba\xc3\x67\x5c\x4b\xec\x5b\x8b\xcd\x44\x52\xbc\ \x35\x36\xd2\xb2\xac\x10\xda\x77\x2f\xd0\x65\x20\x76\xe4\x53\xad\ \xe7\x42\x3a\xde\xb9\x5e\xa5\x85\x6b\xb0\xdd\xd1\x2e\x1a\x22\xc8\ \x89\x76\x04\x04\x29\x0a\x25\x2e\x36\xa0\xda\xfd\x14\x41\x4e\x06\ \x70\x39\x15\x15\x27\x24\xad\x72\xd0\x84\xef\x71\xda\x27\x53\x1c\ \xbc\x5e\xad\x76\x7d\x39\x6e\x80\xeb\xf3\xec\xed\x5d\x9a\x55\xca\ \xe0\x62\xa5\xd4\x38\x78\x69\xbd\xad\xac\xa9\x63\x07\x77\x18\x4f\ \xcd\x37\x45\xbd\xeb\x29\x9d\x53\xd6\x76\x38\xed\xda\xdc\x85\x6d\ \x8d\x10\x47\x6d\xd9\x2b\x6f\x69\x71\xb7\x94\x95\x6e\x4b\x64\xe5\ \x44\x24\x2b\xfb\x21\x3c\x66\xb7\x75\x07\x45\x5d\x75\x55\x89\x8b\ \x03\x16\xad\x37\x09\x94\x36\xd1\x8b\x3d\x2e\xb8\x97\xad\xce\x0d\ \xa5\x4a\x61\x09\x6c\x76\xc7\x1e\x74\x7a\x67\xda\x9d\x23\xe9\x9b\ \xd5\xa7\xa9\xb7\xad\x42\xc3\x90\x65\x5b\x6f\x4c\x44\x43\xc5\xd7\ \x94\x89\x0c\xae\x3a\x16\x9e\x12\x10\x52\xb0\xad\xd9\xfb\xc9\xc7\ \xb1\xac\x11\xd2\x46\xf9\x71\x25\xbf\x27\xf4\x7f\x82\x13\xa0\xf5\ \xcc\xb6\xf4\x9e\x84\x89\x6f\xb4\xbb\x36\x4e\xa1\x6e\x4a\x19\x13\ \x6e\x2a\x51\x6c\xb4\x4a\x89\x71\xd2\x92\x54\x36\x85\x1c\xed\xcf\ \x00\x01\x4e\x8b\xea\x43\xcf\x59\x4a\x5c\xb2\xb6\x2f\x89\xd4\x0a\ \xb0\x08\x68\x94\x4b\x2a\x90\x90\x14\x56\x1c\xd9\x90\xde\xcf\x36\ \x76\x64\x76\xc6\x69\x26\x8a\xe9\xd5\xea\xcc\x9e\x9d\xb7\x2a\x55\ \xb9\x6a\xd3\x3f\x6d\xfb\x6f\x86\xe2\xc8\x73\xc6\x6d\x69\x4f\x87\ \x94\x8c\xe0\xa8\x67\x3b\x7f\x1a\x43\xa8\x74\x7c\xcb\x3c\x69\xf7\ \x59\x17\x08\xac\xcb\xfe\x98\x2e\xfb\x6f\x52\x59\x79\xe6\xca\x16\ \xda\x51\xe1\xbc\x10\x82\x51\x94\x85\xe5\x40\x10\x0e\xde\x69\xea\ \xf7\x46\x5b\xd4\x50\xd7\xd6\x88\x96\x68\xad\x51\x3a\xf5\x7c\xbf\ \xd9\x6e\x36\xb6\xa0\xcb\xb2\x2d\x86\x9e\x2d\xbe\x5d\x43\x85\xc4\ \x15\x85\x24\x94\xa4\xe3\x6e\xd3\xc8\x07\x92\x3d\x39\x9f\xdb\x9b\ \x21\x9d\xde\xf5\x4a\x74\xfa\x36\xb1\x9d\x71\xd7\x77\xeb\x6a\x20\ \x35\x3a\xe9\x2a\x28\xb7\x3f\x32\x3b\xc8\x8a\xe0\x69\xb0\x85\x10\ \x08\x0b\x52\x40\xca\x42\xb0\x37\x11\x9c\x7a\x55\xe2\xdf\xec\xa3\ \x80\xac\x6e\x03\x9c\x0a\xad\x59\x5d\x58\xd3\x84\xbb\xd5\x9a\x5e\ \xf3\xc8\x48\xc7\x00\xd2\xe5\x28\x21\x19\x24\x62\x92\x46\x49\x53\ \xbb\x8d\x63\x73\x77\xcb\xe1\x8e\x29\x4e\x39\xa4\xa2\x6b\x52\xca\ \x9c\x8c\xe5\x79\x9b\xde\x80\x08\x3e\x95\x1c\xba\xb6\x92\xda\x93\ \x8a\x7a\x84\xf0\xf0\xca\x14\x7b\x53\x7d\xdb\x6a\x42\x88\x23\xb5\ \x68\xa2\xb2\xca\xc2\x2a\x4a\xeb\x32\x28\x7e\xac\x5b\xd9\xf0\x5c\ \x75\xcd\xa1\x23\x39\xc9\xc0\x23\xd4\x57\x1e\x5d\xed\x4c\xc5\x9d\ \x3a\x1b\x8b\x49\x4a\x17\x84\x2c\x11\x82\x3b\xa4\xff\x00\x01\xda\ \xbb\x8f\xa8\xed\x32\xfc\x57\x12\x52\x15\x90\x46\x31\x9c\xd7\x21\ \xf5\x4d\x8b\x7b\x77\x22\xdb\x6a\x40\x90\xc2\x8e\x50\xca\x07\x95\ \x27\x9c\x28\x8f\x5c\xfa\x52\x7a\x46\xea\x49\x8d\xe8\xd9\xae\x23\ \x8f\x69\x5b\xcb\x01\xb4\x16\xc1\x2e\x36\xda\xb3\xbb\x1b\x77\x66\ \x90\xab\x24\x03\xfc\x3d\xa9\x44\xc2\x92\xac\x93\x93\xea\x7e\x7d\ \xa9\x32\x73\x9c\xfe\x35\x96\x3b\x1b\x2a\x7b\xd6\x2c\x3e\x86\x5e\ \x55\x07\x50\x2e\xde\x9d\xa9\x75\xf4\x9f\x05\x6a\xec\x92\x01\xcf\ \xe6\x3f\x3e\x2b\xb1\xf4\xdc\xc5\x4a\x89\x1d\x78\x4a\x96\xcb\x61\ \x0e\x82\x78\x2a\xc6\x4f\x6f\xf5\xc5\x70\x15\xb5\xd7\xe3\x5d\xa3\ \xc9\x86\xa5\x25\xd0\xa0\xa6\xcf\x63\xbb\xbe\x2b\xae\xfa\x67\xa9\ \xc4\xcb\x4c\x0b\x8c\x64\xbc\xff\x00\x8a\x0b\x8e\x82\x07\x99\x69\ \x49\xcf\xd0\x9e\xd8\xf8\xae\x46\x3a\x9e\x4a\xaa\x6b\x66\x75\xf0\ \x53\xe2\x50\xc9\xce\x25\xcd\x16\x52\x52\x50\xe8\x20\x21\xd0\x0a\ \x49\xf5\xee\x08\xc7\xa7\x22\x9c\x96\xe2\x50\xc6\x14\xe6\xc5\x28\ \x85\x79\xbd\x0e\x2a\x31\x6d\x7d\x1f\x64\x3b\x5b\x07\x01\x2b\x4a\ \x09\xc7\x98\xf7\x03\xe0\x71\x4f\x4a\x79\x29\x4b\x99\x41\x53\x89\ \x4f\x09\xce\x48\x57\xf6\xbe\x9e\xff\x00\x14\xa8\xcb\x40\x9a\xd4\ \x75\x83\x28\x21\xe4\xa9\x4b\x40\x07\x18\x27\xb6\x7d\x85\x3b\xaf\ \x2e\x34\x57\x90\x49\xc1\x2a\x1f\xcb\xe0\xd4\x2e\x44\xc2\xc3\xa1\ \x01\x40\x37\x80\xb5\x85\x71\xdf\xdb\xe7\xe9\x4f\x91\x64\xed\x61\ \x05\x04\xbb\x9f\xbe\x53\xc7\x70\x3b\x81\x53\x09\xf2\x29\x28\xb5\ \xa8\xe0\xa4\x2b\x07\x91\xbb\x18\x15\xa0\x85\x24\xf2\x33\x8e\x4e\ \x3b\x66\x94\xa0\x95\x25\x21\x5e\x53\x8e\xc1\x40\xee\xac\x78\xf3\ \x63\x18\xf5\xc5\x35\x3b\x30\x4e\xe6\xa6\x9c\x6b\x2a\x52\xc6\xd0\ \x91\xe6\xdc\x3d\x3e\x2b\x15\xc8\x86\xd9\x48\x52\x41\xe3\x00\x9e\ \x72\x3e\x4d\x6c\x75\x2d\xa5\x25\x6e\x1d\xde\x98\x1d\xe9\xbe\x41\ \x65\x2a\xcb\x4d\x95\x82\x9c\x7d\x0f\xe3\x5a\x23\x27\xc8\xba\xd4\ \xd8\xe3\xd1\x0a\x77\xb8\xc0\xce\xfd\xaa\x1e\xde\xf5\x8a\x26\x47\ \x52\x40\x65\x9f\x2e\x4e\x71\xed\xee\x6b\x4a\x76\xe7\x7f\x86\x9d\ \xc4\xf3\xba\xb0\x2b\x47\x2a\xd8\x9c\xe7\x83\xc0\xcd\x44\x99\x74\ \x66\x42\x4b\xea\x4a\x52\x13\xc7\x7a\xf5\xb4\xa1\x2d\x03\xd8\x93\ \xe9\xe9\x5e\x87\x02\xd4\x70\x3c\xc7\x9c\xfa\x56\xc4\xe1\x03\x9f\ \x4c\x9a\xcd\x32\x1b\x33\x8e\xb2\xdb\x81\x69\x4e\x48\x1c\xe3\xda\ \x91\x6a\x7b\x88\xf0\x91\x19\x05\x3b\x94\x00\x48\x07\xd7\xbf\xe7\ \xde\x92\xbb\x74\x47\x88\xa0\x97\x30\xda\x81\x4a\x47\x62\x78\xe4\ \xf3\xed\x51\xb8\x73\x45\xc1\xf3\x26\x46\xe5\x36\xc2\x89\x6c\x64\ \x83\x9e\x47\x22\xb3\x54\xa9\xa6\x54\x4c\x61\x77\x77\xc8\xdb\x73\ \x92\x88\x50\x9c\x38\xd8\xe1\xdc\xb5\x0f\x82\x3f\xf4\xae\x45\xfd\ \x23\xee\xce\x4d\xea\x0b\x50\x50\xea\x14\xcc\x78\xe8\x52\x90\x83\ \x90\x95\xab\x24\x83\xf8\x60\xfe\x22\xba\x2b\x59\xea\x08\xd0\x62\ \xbf\x26\x44\xa5\x33\x19\xb4\x17\x5c\x58\x20\x8e\x07\x63\xf1\xdb\ \x1f\x53\x5c\x63\x74\xb8\xae\xe9\x7e\x99\x76\x78\xef\x5c\xa9\x0b\ \x70\x83\xc7\x04\xf0\x3f\x01\xc7\xe1\x4c\xc0\x43\x3d\x57\x3e\x4b\ \xf9\x23\x15\x2c\x94\xd4\x79\xcb\xf8\x26\x3a\x45\x98\x32\xad\xaf\ \xc7\x7d\x61\xb5\x12\x92\x8c\xf6\x57\x03\x82\x7d\x06\x78\xcf\xcd\ \x2a\xb1\xb9\x19\x6e\x8b\x53\x8d\xf8\x32\x63\xa8\x96\x52\xb1\xc9\ \x0a\xdb\xce\x7d\x71\x83\xf9\x9a\x61\xb0\x2d\xc5\x35\x15\x4d\x2c\ \xee\x5b\x9f\x67\x29\x00\x1d\xc7\xba\x4f\xe3\x8c\x54\xef\x4a\x5a\ \xad\xf7\x99\xa9\x44\xe6\x54\x95\xc7\xe5\x0f\x32\xad\xab\x49\x3c\ \x00\x0f\xc7\x7c\x56\xa8\xda\x32\x95\xfb\x6e\x65\xc7\x55\x6a\x9c\ \x6f\xee\xd8\xb0\xf4\x96\x9b\x6a\x64\x54\x82\x90\x54\x45\x3f\xa7\ \x46\xbe\xc4\x8c\x82\xa0\x83\x4b\xb4\x16\x9d\x9d\x0c\x20\xb3\x73\ \x72\x52\x06\x30\x97\x1b\x09\x50\x19\xe0\x64\x77\xab\x76\x25\x97\ \xed\x70\xc0\x59\x4e\xe0\x3b\xd7\xa6\xc3\xca\x96\x2e\x9a\x94\xe3\ \xb1\xe5\x25\x26\xa5\x64\xee\x40\x34\xc6\x9e\x66\x2b\xe8\x50\x40\ \xef\xcd\x5a\x70\xa1\x25\x31\x52\x52\x00\x18\xa4\x30\x2d\x6d\xb4\ \x54\xd9\x00\x28\x76\x38\xa9\x0d\xa4\xa4\xb4\xa6\x57\xf7\xbd\x05\ \x6b\x9a\x8c\x17\x55\x15\x83\xbb\xb3\x1c\xed\xa9\x4e\x5a\x38\x3f\ \x18\xa2\xbd\x86\x76\x6d\x49\xfd\xd3\xcd\x15\xcc\xaa\x9b\x91\xd1\ \xa5\x2b\x22\x23\xd3\xf4\xa2\x7f\x4f\xa2\x30\xa0\x0a\xb0\xe6\x7d\ \xff\x00\xac\x55\x47\xe4\x47\x5c\x69\x0b\x8c\xb3\x8c\x1e\x29\xc3\ \xa7\x4e\xaa\x2e\x95\x84\xe8\xe5\x2a\xdf\x91\x9f\xf8\xc5\x53\xc6\ \xa1\x84\xd4\xc8\xe2\x54\x70\x0a\xc1\xce\x12\x39\xf9\xae\x8d\x35\ \x97\xc0\xe5\xdf\x34\x13\xe6\x86\xdd\x36\xf6\x50\xb6\x16\x7b\x1e\ \x29\xc2\x18\x29\x7d\xc4\x92\x78\xf8\xa8\xfb\x0e\xa9\xa7\xbc\x40\ \x08\x29\xe0\x8c\xf7\xa7\xa6\xde\x0e\x29\x0f\x24\xe4\x91\x83\xcd\ \x34\xa1\x36\x61\x59\xb5\xa4\xf7\xf2\xfa\x53\x55\xc4\xe4\x21\x19\ \xf2\x9a\x53\x6a\x7d\x0b\x82\xb6\xf3\xd8\x52\x39\x4f\x21\xc2\x87\ \x10\x77\xa4\x28\x8c\x83\x9e\x41\xc7\xf0\x39\xac\x54\xe2\xe3\x36\ \x6e\xab\x25\x28\x23\x09\x6b\x42\x23\xec\xf8\xf4\xa4\xf1\x51\xe2\ \xad\x0d\xa9\x5b\x73\xdf\x8a\xc1\xc5\x87\x65\x7e\xd3\xee\x27\xde\ \x86\xe4\x36\xbb\x80\x65\x97\x10\xa7\x50\x37\x29\xb0\xa1\xb8\x24\ \x9e\x0e\x3d\xbe\x6b\x52\x56\x46\x56\xee\xc5\x8f\x34\xe4\x7f\x32\ \x14\x14\x07\x7a\xdf\x15\xc0\xc3\x41\x6b\x18\x2a\x3d\xab\x25\xb6\ \xb4\xac\x2c\x1c\xa4\x8e\x45\x78\x52\x1d\x58\xe3\x18\xa4\x39\x66\ \x5a\x8e\x4b\x2b\xd0\x1f\x2b\x0b\x49\x6c\x67\x75\x6c\xfb\x32\x0a\ \x14\xa5\x2c\xee\xaf\x51\xb8\x37\xb0\x0e\x47\x6c\xd6\x4b\x6d\x69\ \x8d\x84\x9d\xca\x35\x46\xf9\x0c\x4b\x98\x91\x59\x1b\x14\x01\xe0\ \xd2\xbc\xa5\x6d\x05\x03\x8c\x52\x28\x72\xe2\xc9\x6d\x69\x61\xf6\ \xa4\x6d\x25\x0a\x2d\xac\x28\x02\x3b\x8c\x8f\x5a\x51\x19\x0f\x79\ \x80\x42\xb6\xfa\x66\xa6\x5a\xa2\xb1\x1c\xa3\x9d\xc1\x1f\x5a\xd9\ \x3d\x43\xca\x3b\xd6\xa8\xe1\x48\xda\x14\x9c\x7a\xd6\xa9\x6f\x85\ \x38\x40\x3f\x15\x95\x46\xf2\x35\xb9\x5a\x06\xb4\x11\x95\x2b\xd2\ \xb4\xe7\x72\xca\x88\xaf\x1d\x5e\x06\xc4\xe3\xe6\xb7\xc4\x60\xac\ \xf3\xf7\x45\x3f\x48\xab\xb3\x3e\xb2\x76\x46\xfb\x7b\x3d\xdc\x57\ \xe1\x5b\xdd\x56\xe5\x63\xd0\x77\xaf\x14\xb0\x06\xc4\x70\x2b\xc4\ \x83\x90\x9e\xe6\xb3\xbb\xb7\x76\x69\x4a\xca\xc8\xd8\x95\x06\x9a\ \x2a\x3d\xe9\x08\x4f\x8e\xb2\xb5\x76\xad\xb3\x49\x2b\x0d\x03\xc5\ \x68\x79\x41\x86\x4f\x22\xad\x05\x65\x7e\x6c\xac\x9d\xdd\xb9\x21\ \xae\xf1\x31\xbb\x78\x2e\x29\x61\x29\x1e\xa4\xd5\x6d\xaa\xba\xb3\ \xa6\xa1\xb4\xe2\x5c\xb9\xb3\xe2\x20\xe0\xb6\x16\x9d\xd9\xfa\x66\ \x9b\x3a\xf7\x7f\xbc\x1b\x78\xb6\x59\x1f\x87\x1a\x43\xc7\x2b\x91\ \x25\xcd\xa1\xa4\xfb\x81\xea\x4f\x35\xcc\xea\xd3\x2f\xb4\xa9\x92\ \xef\x1a\xa6\x3c\xd0\x7c\xc6\x34\x62\xa2\x1d\x50\x3c\x0c\x80\x06\ \x73\x58\xf1\x58\xfe\x1c\x94\x56\xe4\x50\xc3\x2a\xd7\x72\x95\x91\ \x33\xea\x8f\x56\x15\x70\x6d\xd8\xd6\x44\x4b\xda\x78\x5c\x8d\xc1\ \x00\x7c\x05\x67\x8a\xa1\x2e\xd3\x9f\x78\xe5\xf7\xc3\x3b\x95\x93\ \x80\x4e\x13\x8e\xfc\xf7\x27\xde\xac\x8b\x9c\x3b\x2b\x70\xb6\x5c\ \x25\x22\x12\x10\x90\x7c\x24\xba\x92\xa2\x48\x04\x1c\x9f\xf0\x15\ \x06\xbc\x4f\xd3\x0c\x33\x25\x11\xd8\x54\xd7\xd6\x02\x5b\x75\x6a\ \x52\xd4\x9e\x73\x9c\x9c\x01\xf9\x1a\xcd\x1a\xb3\xae\xf3\x49\x1d\ \x5a\x31\xa1\x41\x64\xa7\x7b\xbd\xd9\x11\x52\x14\xb6\x8b\xab\x25\ \x3f\xd9\xcf\x75\x13\xed\x58\x0c\x11\x9c\x7e\xed\x6d\x93\x25\xc9\ \x0e\xf8\x8b\x3b\x71\x9d\xa9\x4f\x61\x5a\x52\xa2\x84\x28\xfb\x8a\ \xd2\xaf\x6d\x4c\xf3\xb5\xf4\x14\xb0\x7c\x29\x4c\x3e\x47\xef\x05\ \xe3\xf1\xab\xbf\xa6\x12\x57\x67\xbc\xa2\xce\x40\xf0\x5d\x74\x3f\ \x1d\x59\xf2\xe7\x82\xa4\xfd\x78\xcf\xfe\x95\x56\xea\xeb\x6c\x2b\ \x65\xc5\x9b\x5a\x56\xa0\xf2\x2d\xec\x97\x54\xa5\x64\x87\x8a\x02\ \x94\x9e\x4f\x03\x9e\xde\x98\xab\x45\x88\x6a\xb8\xe8\x7b\x55\xd5\ \xb5\x94\x3b\xe1\xb4\x54\xe2\x40\xdc\x95\xa7\x8c\xe3\xe7\x18\xfc\ \x6b\x99\x8f\x95\xe1\x17\xc9\xfa\x47\x6f\xa2\x62\x9c\xa7\x0e\x7e\ \xae\x5f\x76\x7b\xcb\x29\x75\xe5\xad\xd0\xb6\xf8\x4a\x41\xe3\x9d\ \xde\xde\xd9\xf5\xa9\x23\x52\xdb\x56\x77\x27\x6a\x0a\x55\xb4\x13\ \xdf\x68\xc1\xdc\x7e\x3d\x2b\x9e\xb4\x96\xa3\x75\x49\x5c\x49\x0a\ \xf0\x25\x05\xed\x78\x2b\xb6\x33\x9c\x83\xed\x90\x4d\x5b\xba\x72\ \xfa\xc4\x88\xcf\xc4\x5a\xd2\xe2\x8e\x49\x4e\x41\x51\x48\x27\x27\ \xf1\xe0\xf1\x5c\xd8\xcf\x2b\xca\xcd\xb5\xb0\xed\x2b\xa2\x62\xb7\ \x1a\xfb\x39\x5b\xdb\x7c\x40\x37\x00\xa3\x95\x03\xeb\xf4\xe3\xf9\ \xd6\x36\x1b\x92\x52\x1d\x42\x1d\x59\x64\xac\xe7\x27\x71\x38\x38\ \x18\x3e\x99\xf4\xa6\xb6\x6e\x2d\x29\x85\x48\x3e\x11\x64\xa0\xab\ \x07\x2a\xe3\xe3\xdf\xe9\xf1\x4d\x0f\xce\x62\x25\xe2\x38\x6a\x3e\ \x5e\x71\x7b\x7c\x24\xaf\x0a\x2b\xc6\x46\xef\x7c\x0c\x7e\x75\x6c\ \xf6\x69\xa3\x26\x4b\xe8\xcb\x36\x43\xcb\x4b\xc8\x70\xe1\xa6\x90\ \x00\x69\xa0\xac\x92\x9f\x53\xc7\xcf\x14\xe0\xdc\x9d\xea\x05\x21\ \x38\x3d\xf1\xe9\xf5\xa8\x8d\x9e\xef\xe2\xba\x8d\xd2\x9a\x4e\x5b\ \xcb\x98\xe5\x48\x03\xd7\xf0\x3c\xd3\xdb\x6f\x17\x23\x78\xc8\x2a\ \x79\x0e\x04\x84\x24\x0e\xe0\x1c\x67\x3f\x3e\xd5\xae\x3a\xea\x8c\ \xed\x5b\x46\x2c\x75\xc7\x14\x14\x12\xa4\xab\x1c\x2b\x3d\xc5\x68\ \x62\x30\x74\x82\xa7\x95\x8e\x48\xcf\x35\xb5\x97\xd1\xb1\x0e\xba\ \xb4\xaf\x6a\xca\x4a\x47\x74\x91\xc7\x3e\xf5\xbe\x2a\xda\x01\x68\ \x20\xb9\x85\x67\xcc\x30\x47\xb5\x3e\x04\xa9\xe9\xa1\x8a\x62\x6f\ \xf3\xa5\x3b\x8a\xb3\xf8\xe3\xf9\x1a\x4d\x22\x2a\x9d\x5a\x90\x52\ \x84\xa7\x1b\xb9\x39\x27\x07\x9a\x5b\x1d\xc0\x42\x96\x96\xd4\x0e\ \x77\x04\x13\xc9\x07\xbd\x27\x7d\x63\x6b\x6a\x0a\x04\x94\xfa\x1e\ \x70\x7b\x8f\xaf\xc5\x59\xd8\x9c\xcd\x31\xb3\x86\xde\x70\x24\xfe\ \xcd\x05\x27\x70\x3c\x12\x78\xff\x00\x43\xe6\xb4\xc8\xb9\x25\xa6\ \x1c\x7d\x4b\x46\x5b\xc9\x20\x1f\x51\xee\x2b\x75\xd9\xf4\xc6\x61\ \xd9\x2d\xc8\x4a\x08\xe4\x93\xdf\xd3\xd3\xe9\x51\x6b\xbc\xef\x05\ \x6d\xa9\x4d\x2d\x95\x2b\x97\xc1\x19\x1c\xa7\x21\x43\xdf\xb7\xf1\ \xac\x75\x5e\x51\xab\xac\x37\x6a\xeb\xab\xbf\xa9\xd4\xb6\xd5\x97\ \x54\xe6\xd6\x4f\x8b\x9c\x05\x0e\xff\x00\xcf\xf9\xd6\xb6\x66\xa5\ \xb8\x3e\x47\x47\x8a\x94\x02\xe0\x20\x60\x64\x11\xe9\xe8\x78\xc5\ \x43\x2f\x77\x17\x2e\x37\x56\x19\x8e\x84\xa9\xb6\x4e\xf5\xad\x18\ \xfb\xf9\x00\xfe\x1c\x9f\xc6\x91\xeb\x9d\x4c\xbb\x44\x05\x33\x0f\ \x2e\x4f\x53\x48\x43\x0c\xb6\x39\x56\x0e\xe2\x15\xec\x30\x39\x3e\ \x95\xcf\x93\x6e\x5a\x1b\x23\x4b\x44\x8a\xd3\xf4\x8b\xd5\x81\x71\ \xe3\xe9\xb8\xc9\x42\x5c\x7d\x09\x76\x56\xd5\x79\x91\x85\x1c\x24\ \xfe\x40\xd5\x2e\xc7\xdc\xf2\x9e\x41\xc9\xac\xae\xd3\xe4\xdd\x2e\ \x92\x2e\x53\x56\x1c\x7e\x43\x85\x6b\x50\xed\x9f\x61\xf0\x2b\xd4\ \x36\xb4\x46\x53\xdb\x78\x48\x1f\xc7\xff\x00\x4a\xf4\x58\x7a\x0a\ \x85\x25\x1e\x7f\x53\x83\x88\xaf\xc7\xaa\xe5\xc9\x6d\xe0\x3d\xda\ \x56\xa1\x66\x79\xa6\xc9\x3b\xdc\x6d\x48\x29\xee\x9d\xa4\xf2\x3e\ \x40\x3f\xc6\xa7\x5a\x1f\x54\x45\xfb\x53\x28\x9c\xff\x00\xd9\xa4\ \x17\x3f\x79\x3f\x7f\xb6\x09\x3e\x87\x15\x5b\x45\x56\xd8\xd9\x6f\ \x25\x25\x59\x71\x3f\xd9\x48\xe7\x23\xf9\x56\x6b\x2a\xb8\x45\x61\ \x29\x70\x05\x85\x1f\xeb\x09\xdc\x9e\xdf\xbd\xed\xf5\xaa\xba\x69\ \x4f\x30\xca\x96\xad\x47\x86\xfd\x7a\xb9\xdb\xfa\x4a\xec\xd3\x71\ \x98\x74\x10\xa4\x2d\x20\x85\x24\xe4\x1a\x91\x47\xd6\xf1\x5c\xbf\ \xb1\x60\xb6\xbc\x99\x37\x07\x12\x1c\x5b\x2d\x9d\xde\x0b\x7e\xab\ \x59\x1f\x77\xe0\x1e\x49\x22\xb8\xbf\x4e\xe9\xad\x63\x2c\x22\x09\ \xbf\xa2\x04\x65\x01\x95\xae\x5f\x00\x0f\x4c\x24\x93\x9f\x8a\xe9\ \xae\x84\x58\x2c\xfa\x56\xd8\x61\xdb\xdd\x12\x25\xbe\x77\x4b\x98\ \xaf\xbc\xf2\xbd\x07\xc2\x47\xb5\x3d\x63\xea\x4d\xa8\x52\x77\xf0\ \x38\x18\x9c\x1a\xc3\xdf\x3b\xd7\xb0\xbf\x5a\x69\xa9\x51\x52\xb6\ \xd4\x03\x80\x73\x9e\xe6\x92\x9f\x15\x87\x72\xa0\x52\x53\xdf\xe6\ \xb7\x5a\xc2\x56\xd8\x52\x09\xc8\x02\x97\xb8\x12\xa4\x6d\x79\x00\ \xf1\xc1\xae\xec\x65\x28\xab\x48\xcb\x93\x32\xb9\xa9\x89\x88\x51\ \x05\x20\xe4\xf1\xc5\x14\xb2\xc9\x6a\x6d\xb7\x0c\x85\x64\x83\xd8\ \x1a\x2b\x35\x5a\xd0\x8c\xac\x91\xaa\x95\x19\xca\x37\x6c\x83\x68\ \x26\xf6\x69\x78\x6d\x39\xf7\x72\xe1\xe7\xd4\x78\x8a\xa7\x92\x55\ \x1d\x59\x46\x14\x8f\x50\x07\x06\xb5\x68\xd8\x45\xee\x9f\x5b\x24\ \x23\xcc\xb4\x87\x09\x03\xd7\xf6\x8a\xa5\x29\x56\xe4\xf9\xbb\x8e\ \xfc\xd6\xca\x53\x53\x89\x86\x50\x70\x48\x41\x32\x14\x79\x61\x4e\ \x30\x42\x17\x83\x94\xd3\x4c\x66\xe7\x37\x2c\x44\x43\x6a\x3b\xbd\ \xbb\x54\x89\x4c\x24\x80\xb4\xf9\x71\xeb\x4e\x9a\x5e\x08\x5b\x85\ \xf7\x46\xec\x1c\x73\x56\xa9\x35\x08\xb9\x30\x84\x1c\xe4\xa2\x8a\ \xab\xa3\x76\x3b\x64\xed\x57\xaa\x97\x72\xb2\xbf\x2e\xe0\xc6\xa5\ \x92\x23\xdc\x17\x1f\xc4\x6a\x39\x43\x6d\xad\x20\xab\x23\x18\x56\ \x48\x1e\xea\x1e\xf5\x96\x96\xd4\x57\x4b\x26\x89\xb4\xb5\x6b\x83\ \x65\x44\xcb\x86\xb5\x91\x65\x79\x42\x3a\xd2\xc9\xdc\x5e\xcb\xdb\ \x37\x95\x67\x7a\x52\xa2\x9d\xdc\x80\x52\x08\xce\x45\xad\xa1\xf4\ \xbf\xf4\x65\x7a\x81\x62\x77\xda\xbf\x5c\x5e\x5e\xba\x01\xe0\xec\ \xf0\x7c\x44\xa1\x3e\x1f\x73\xbb\x1b\x3e\xf7\x19\xcf\x6a\x8e\xc6\ \xe9\x87\x83\x6e\xb5\xc4\x37\xcc\xfd\x83\x55\x2f\x50\xee\xfb\x27\ \xf5\x9b\x8b\x87\xc1\xfb\xfc\x7f\x59\xf7\xf9\xed\xf7\x79\xae\x44\ \xaa\x39\x3b\x9b\x23\x86\x94\x22\xac\xb5\xd7\xf9\x43\x05\xd7\x5b\ \xdd\xad\x2c\xea\xcb\x54\xe8\xb6\xc9\xd7\x8b\x4d\xca\x0c\x08\x2f\ \x34\xca\xd9\x65\xf3\x31\x28\x2d\x95\xa7\x72\x88\xd8\x14\x73\x85\ \x73\x8f\x4c\xe6\xbc\xd1\xd6\xcb\xa4\x2e\xbb\xea\x16\x2e\x72\x61\ \xcc\x79\x36\x28\xaa\x4b\xb1\xd8\x53\x29\x52\x0b\xae\x77\x49\x5a\ \xb0\x73\x91\xf7\x8f\xa7\xd2\xa4\xb7\xbe\x99\x31\x76\x9f\xab\x65\ \x3d\x78\x75\xa5\xdf\xa4\x41\x95\x1d\x4d\x32\x02\xa0\xbd\x15\x09\ \x4a\x14\x09\x24\x2f\x25\x20\xe0\x81\xc1\x23\xe6\x9c\x74\xbe\x8f\ \x9f\x6f\xd6\x73\xf5\x5d\xda\xfa\x8b\x94\xe9\xb0\x9b\x86\xb4\x35\ \x0f\xec\xed\x21\x2d\xa8\xa9\x25\x23\x7a\x8f\xa9\xce\x49\xe4\xfa\ \x0e\x28\x55\x64\xb9\x93\xec\xf2\x73\x4d\xae\x7e\x5a\xfe\x08\xdd\ \xda\xf5\xa8\xe7\xeb\xf9\x9a\x5f\x4e\x3d\x6f\x88\x6d\xd0\x1b\x97\ \x21\xf9\xac\x2d\xd0\xb7\x1c\x52\x82\x1b\x09\x4a\xd3\x84\xe1\x19\ \x2a\xc9\x3c\xe0\x0f\x5a\x43\xa7\xb5\xf4\xeb\xdc\xfe\x9f\x29\xa8\ \x8c\x47\x63\x50\xc7\xb8\x99\xcd\x9c\xa9\x4d\xbb\x1b\x6a\x70\x85\ \x7b\x6f\xdd\xe8\x72\x31\x52\xdd\x4f\xa2\xe6\x3f\xa9\xdf\xd4\xfa\ \x7a\xf6\x2d\x57\x09\x10\x93\x0e\x50\x76\x20\x7d\xa7\x10\x95\x15\ \x21\x61\x3b\x92\x43\x89\xdc\x70\x72\x46\x0f\x20\xd3\x2b\x1d\x38\ \x6e\x2c\x2d\x2a\xd5\x82\xee\xa8\x73\x34\xc8\x79\x0c\x3d\x26\x3f\ \xda\x12\xfa\x5f\x00\x3d\xe2\x24\x29\x1c\xa8\x8d\xd9\x04\x60\xfb\ \xf6\xa6\xf1\x1c\x95\xc5\xca\x95\x48\xc9\xaf\x5b\xaf\xa5\xc8\x6e\ \xa8\xd4\xfa\xa2\xed\x66\x65\x51\xae\x4c\x5b\x94\xcf\x50\xc5\x94\ \x16\x98\x3e\x66\x51\x20\x06\xf7\x79\x86\x7b\x79\x87\x65\x03\x8e\ \x2a\x7b\xd4\x46\xee\xd1\xba\x45\xa8\xd6\x8b\x8a\x3f\x58\x31\x66\ \x90\xe2\xe5\x21\x9d\xa0\x94\xb4\xa2\xa2\x94\xee\xf2\x92\x01\x00\ \xe4\xe0\x90\x79\xc6\x29\xad\x7d\x30\x5f\xea\x15\x5a\xe3\xea\x07\ \x0c\xc1\xa8\x93\xa8\x5b\x96\xf4\x40\xa0\x24\x85\x25\x44\x29\x01\ \x43\x72\x4a\x82\x8f\x05\x3c\x10\x3d\x32\x67\x97\xeb\x13\xf7\x9d\ \x0d\x73\xd3\xb2\x66\xb6\x89\x17\x1b\x7b\xd0\xdc\x94\x86\x30\x94\ \xa9\xc6\xca\x0a\xc3\x65\x59\xc0\xce\x76\xee\xfc\x6a\xae\x6e\x2b\ \x5e\x65\xa9\xd1\x9c\xaf\x7e\xc2\xb3\xe9\xfb\x97\x58\x88\xd3\x7a\ \x32\xc1\xfa\x8a\x24\xb7\x74\xe3\x57\x89\x93\x5c\xb7\x1d\xbe\x1a\ \xb6\xb6\xd2\x03\x48\x5a\x77\x2b\x20\xee\x59\x57\x61\xdb\x26\x94\ \xb7\xd4\x7d\x49\x70\xb5\xe9\x96\x6d\x70\x6d\x71\xaf\x17\x4b\xa4\ \xcb\x44\xb0\xf8\x5a\xd8\x65\xe6\x37\x65\xc4\xe0\x85\x29\x38\x46\ \xe0\x9c\x8c\xe7\x19\x1d\xea\x4f\xfd\x03\x95\x0e\x55\x92\xe7\x64\ \xbe\x88\x57\x5b\x6d\x9d\x36\x87\x1e\x7a\x1f\x8c\xcc\x96\x06\xd2\ \x0a\x9b\xde\x92\x14\x14\x9d\xc0\x85\x71\x92\x0e\x45\x68\xb7\xf4\ \xce\x2c\x01\xa5\x04\x7b\xbb\xaa\x36\x29\xf2\x27\xbe\xe3\xcc\x85\ \x2e\x6b\xaf\x25\x7b\xc9\x20\x80\x9e\x56\x4f\x63\xc0\x03\xe6\x92\ \xe4\xde\xe3\x23\x4a\xa4\x74\x5e\xb6\xfc\x93\x98\x48\x7d\x30\x98\ \x44\xc5\xb6\xec\x84\xb6\x90\xf2\xdb\x46\xd4\xa9\x78\xf3\x10\x32\ \x70\x09\xcf\x19\x35\xa6\x74\x20\xe2\x0a\x9b\xe1\x58\xef\x4b\x7e\ \x86\x81\x44\x66\xe2\xee\x8d\x92\x82\x92\xb3\x18\x63\x47\xda\x49\ \x79\x5c\x8f\x4a\x58\x09\x23\x68\x18\x4d\x6c\x94\xd8\x4b\xc1\x5e\ \xf5\xe0\xad\x2e\x79\xb5\x33\x46\x19\x74\x3d\x4a\x76\x8a\xda\xc8\ \xc6\x56\xae\xd5\xad\x09\x2b\x50\x03\xd2\x95\x3a\x90\x19\x29\x14\ \x99\x3e\x43\xa2\xb9\x8d\xb3\xb0\xb7\x0a\x93\xcf\x15\x1c\xd4\x72\ \xdd\x8d\x01\xe2\x81\xb9\x7b\x4e\xd1\xee\x6a\x40\xa5\x14\x93\x8f\ \x4a\x8f\xea\x16\x17\x25\xa5\x0f\x53\x5a\x32\xc9\xc6\xd1\x32\xd4\ \x77\xd5\x1f\x3d\xb5\xfd\xcf\x5d\xeb\xad\x61\x24\x39\x0e\x5c\x87\ \x91\x93\xf6\x76\x92\xa0\x86\x12\x0e\x30\x40\xf6\x3c\x12\x7d\x69\ \xb2\x2e\x9d\xd5\x16\x89\x6c\xbb\x71\xb6\x3e\xd3\x41\x61\x38\xdd\ \xc1\x27\xf1\xae\x90\xeb\x0c\x46\xb4\xe2\x5f\xbc\xc7\x6d\xb6\x64\ \x15\x7e\xd1\x40\x04\x97\x72\x47\x94\x9f\x73\x54\xcd\xf2\xfa\x8b\ \xf6\x9d\x79\xf8\x4a\x52\x64\x32\xe2\x56\xa6\xd6\xac\x2d\x24\x1f\ \x6f\x51\xf4\xae\x35\x49\xce\xed\x4d\x58\xe8\x61\x6a\xb7\x97\x24\ \x74\xd8\x6f\xd5\xf6\x69\x6e\x86\xa3\xb7\x66\x7c\xc9\x77\x21\x00\ \x27\x2b\x51\x03\x24\x77\xf4\x19\xa8\x33\xda\x6a\xf3\xe2\x61\x16\ \xa7\xce\x4e\xd0\x0f\x07\x3c\x9f\x7f\x83\x57\x25\xd5\x71\xcb\x08\ \x96\xec\xc6\x5a\x69\x61\x2f\x36\xe2\xdd\x09\xda\x48\xce\x46\x4f\ \xb1\xaa\xcf\x50\x6a\x75\x15\xed\xb6\x05\x25\x49\xdd\xbd\xee\xe3\ \x24\x11\x91\xf8\x13\x8f\xad\x36\x8c\x1a\xa7\x9a\xfb\xaf\x32\xcb\ \x13\x2a\xcd\x45\xc7\x62\x2b\x1d\x82\xe4\xb6\x62\xaf\x09\x53\x8e\ \x25\x18\xcf\x6c\x9c\x72\x6b\xc9\x51\x9c\x6a\x43\x8c\xe3\x1b\x16\ \x5b\x51\xfa\x1c\x1a\x5d\xa7\x19\x13\x2f\x91\xc3\x88\x52\x9b\x6c\ \x97\x5d\x24\x9c\xe0\x73\xc9\xf9\x38\x1f\x8d\x6f\xbd\x36\x7c\x57\ \x24\x38\x70\x5c\x3c\x24\x7a\xe3\xd6\x9b\x14\xdb\x7d\xc1\x27\x1b\ \xd8\xd1\x79\x94\xe5\xde\xee\xf4\xa7\x37\x3b\x35\xd7\x50\x80\xd3\ \x0d\x65\x2a\x21\x20\x71\xf9\x70\x3d\x6b\xa1\x7a\x0f\x0d\x33\xfa\ \x7c\xea\x5b\x6b\xc5\xd8\xa2\x36\x77\x25\xbc\xe4\x1e\x3f\x78\x12\ \x7f\x0c\x7b\x57\x3e\xdb\x2e\x26\xdd\x35\xb9\x6d\x36\x91\x22\x30\ \x43\xad\xa8\x7e\xea\x92\xa0\xa1\xfc\x06\x0f\xd6\xba\x17\xf4\x6a\ \x92\xe3\xa8\xbb\xac\xb5\xe0\x66\x7f\x8c\x1b\x40\xc6\xc4\xb8\x37\ \x0e\x3d\xbe\x7b\x57\x3f\x1f\xd6\xa7\x67\xca\xdf\x63\xa7\xd1\xed\ \xc6\x6e\x48\x64\xd7\xda\x6a\x4c\x29\x49\x7a\x3a\xd1\x94\x28\x2d\ \xa7\x14\x33\x90\x32\x70\x7d\xe9\xab\x4f\xea\x29\x2c\xf8\x5e\x02\ \x56\x42\x4a\x81\x69\x4b\xda\x52\xac\x85\x10\x93\xdf\x07\x9f\xc3\ \x8a\xe8\xad\x51\x64\x8b\x26\x23\x8f\xa5\x96\xdf\x52\x0a\x94\xe3\ \x09\x1e\x60\x0f\xef\xa7\xfc\x40\xf6\xe2\xa8\x6d\x71\xa2\x57\x68\ \x96\x65\xb0\xe8\x2a\x4f\x29\x52\x46\x4a\xd2\x71\xc0\xe7\xdf\xf8\ \xd7\x26\x2a\xdd\x59\x7c\x0f\x41\x0a\xdc\x4e\xb2\xdf\x99\x37\xb4\ \x6b\x95\x18\xf1\xbc\x44\xab\x85\x79\x51\x8c\xf6\x3d\xf3\xe9\xd8\ \x60\x1e\x6a\x4d\xf6\xe6\xe4\x23\x28\x5b\x7b\xd9\xcb\x89\xda\xb3\ \x95\x1e\x0a\x88\x3d\xf3\xe9\xcf\x07\x35\x45\xdb\x11\x20\x90\x84\ \x2c\xa1\xe2\x00\x2a\x74\x14\xe0\x1e\x09\xc7\xe1\x52\x07\x5d\x99\ \x0d\xf8\xbb\x9b\x12\x1b\x64\xec\x58\x2b\xf3\x2c\x77\xf4\xcf\xcd\ \x2e\x49\xa7\x64\xc9\x96\x1e\x13\xd5\x68\x58\xcc\x5d\x1a\x64\xb8\ \x43\x8b\x69\xc9\x18\x29\x52\x80\x1e\x1a\x14\x48\xc7\xc9\x24\x91\ \xf9\x54\xa6\xd5\xac\x5a\x8c\xda\x1d\x79\xd3\x15\xc4\xe5\x05\xa7\ \x10\x40\x47\xa7\x97\x9f\x31\xc2\x48\x38\xf5\xcd\x52\xd3\xae\x4a\ \x5a\x54\x63\x89\x0c\xa9\x68\x40\x6e\x3a\x8e\xd5\x67\x83\x92\xa3\ \xfb\xbd\xb1\xeb\x5b\x67\x5c\x51\x28\xc5\x6a\x6a\x32\xe4\x70\x54\ \xd2\x37\xa9\x60\x7a\x11\x8c\xf3\xdf\x9f\xad\x5a\x15\x25\x11\x33\ \xc2\x46\x45\xff\x00\x6d\xd5\x70\xd2\x43\x89\x7e\x13\x8d\xb8\x42\ \x96\x19\x70\x2b\x7a\x49\xc0\x27\xd8\xf7\xe7\xe2\xa4\x08\xba\x25\ \x4e\x36\x63\xbe\xd3\xad\x28\x00\xbc\xab\x9e\xd9\x07\x3e\xbc\x1e\ \x47\xc5\x72\xe3\xd6\xc8\xd2\xda\x53\xb1\x24\x4f\x4b\xc5\x64\x2d\ \xb2\x36\xec\x09\xe0\xa9\x40\x1c\x00\x33\x81\x8f\x8a\x77\xb6\xc1\ \xbe\x90\xd3\xd1\xb5\x1c\xd2\xca\x52\xa0\x8c\x34\x55\xb4\xa5\x38\ \x4e\x01\xf9\xfe\x74\xe8\xe2\xb2\xab\x31\x32\xe8\xf4\xf5\x4c\xe9\ \x28\xf7\x58\xaa\x52\x92\x14\xe2\xd0\xda\x4a\x4a\x89\x00\x13\x9e\ \xff\x00\xe1\x5a\xdf\xbd\x41\x8a\xa4\x93\x21\xa0\x51\xf7\xdd\x1c\ \x63\x23\x03\xe0\xf2\x45\x73\xab\x82\xf8\xd3\x0b\x73\xfa\x45\x21\ \x87\x56\x43\xcd\xb4\xf6\x08\x07\xb7\x38\xf8\x26\x9a\x2e\x97\x3d\ \x45\x21\xf6\x61\xa2\x42\x12\x8c\x8f\x0d\xe5\x76\x51\xc1\x21\x58\ \xec\x14\x71\x9c\x55\x96\x31\xb2\x1f\x47\x77\x96\xd6\xaf\xd6\xb1\ \xe6\xbf\x25\xa8\xcf\x0f\xf6\x56\x9b\x59\xdc\x78\xde\x4a\xbb\x9f\ \x73\xb4\xfe\x75\x5e\xea\x7d\x69\x2e\xe5\x30\xc1\xb7\x28\xbe\x96\ \xf2\x90\xa3\x9c\x01\xc9\x00\xfb\x60\x54\x30\x45\xbb\xcb\xb9\xa6\ \x2a\xa5\x89\x13\x23\xb1\x92\xb6\xd5\x93\xb9\x47\xd4\x01\x8e\x32\ \xaf\xce\x9c\x2d\xf6\x77\x23\x3c\xa9\x2e\xc9\x58\x65\xbc\x92\x90\ \x08\x71\x47\x27\x72\x56\x47\xd4\xd2\x67\x55\x6e\xd9\xa6\x9e\x15\ \x2e\x42\xb8\x32\x4c\x56\x1a\x4b\x1b\x5d\x90\x37\x07\x49\x18\xc7\ \x97\x95\x13\xd8\x73\xc6\x7d\x78\xe2\xbc\x76\xd6\x59\xb5\xc9\xbb\ \x5c\x14\xb7\x27\x86\x1c\x0e\x29\x49\xc2\x41\x50\xc6\x11\xfd\xd0\ \x14\x7e\xb9\xcf\x14\xe9\x6d\xb6\x26\x42\xb6\x32\xd8\x6e\x18\xfb\ \xe9\x56\x78\x57\x73\xeb\x82\x72\x7b\x7c\xd2\xfd\x7c\xc3\xcd\xe9\ \x39\xeb\x48\x51\x1f\x65\x51\x09\x3d\xd2\x00\x27\x15\x85\xd4\xbc\ \x92\x5c\xcd\x71\xb4\x59\xca\x57\x28\xc2\x3d\xc1\x6c\xa9\x25\x08\ \x49\xdd\x8f\x5c\x11\x9f\xe5\x4e\x5a\x85\x22\x38\x53\x0d\xa9\x1e\ \x19\x0d\x29\x01\xb3\x91\x80\xda\x7d\x7e\x09\x57\xe3\x9a\x75\xd7\ \x76\x97\x94\xd4\x0b\xd3\x0d\x3c\xa8\xd7\x16\xff\x00\xd9\xd6\xa3\ \x92\xa2\x00\xc8\x23\xd8\x64\x01\xf4\xa6\x3f\x1c\xc9\xb9\xb4\xa5\ \x90\x12\x97\x39\x18\xfb\xa9\xe1\x3f\xc8\x7f\x1a\xf5\x94\xaa\xaa\ \x90\x52\x3c\x7d\x5a\x5c\x3a\x92\x87\x6b\xd3\xc1\x9e\xb4\x96\x9a\ \x69\x98\x9b\x86\xf7\x88\x52\xc8\x3f\x77\x9e\x07\xe3\xdf\xf2\xa7\ \x54\x58\xe4\x7d\x91\x99\x68\x43\xfb\x06\xe2\xe0\x49\x07\x19\xc1\ \x03\xe0\xf6\xf8\xac\x64\x5a\x24\x38\x13\x28\x20\x06\x5d\xfd\xb3\ \x8b\x04\x05\x47\x4e\x70\x33\xed\xc0\xfe\x55\x63\x40\xb7\xc9\x94\ \xc4\x59\x6c\xbe\xe3\x3b\x19\x52\x92\x3b\xa5\x44\x0c\x10\xaf\x62\ \x40\x07\x3d\xb9\xac\xb8\x8c\x46\x44\x9c\x4d\xf8\x4c\x2a\x93\x6a\ \xa2\xdb\x62\x2f\xa3\x58\x9a\x99\xc0\xfe\xaf\x6a\x68\x50\xe1\x52\ \xde\xe1\x1c\xf7\x1b\x54\x39\xfc\xeb\xa8\x7a\x52\xcb\xcf\x36\x95\ \x3a\xda\x42\xc6\x32\x12\x30\x07\xd3\xe2\xa9\x58\xaf\x3a\x99\x68\ \x4c\x68\xca\x8c\x87\x0e\xe5\xa5\xb7\x02\xd2\xa3\xea\x7d\x2b\xa1\ \x3a\x3e\x85\x38\xdb\x41\x28\xca\x4f\x73\x8a\xdf\xd1\x0b\x8b\x2e\ \x26\xc7\x9f\xe9\x97\xfb\xd9\x2d\xb1\x6b\xd8\x42\xb6\x24\x67\x18\ \xa7\x83\x83\x84\xd2\x66\xa0\xa9\xa4\x78\x8c\x8f\x4e\xd5\xb0\x3b\ \x95\x03\x8e\x41\x19\xae\xd4\xda\x9b\xba\x39\xb1\x4e\x0a\xcc\x90\ \xb0\x90\x96\x52\x07\xb5\x14\x32\xa0\xa6\x52\xae\xdc\x51\x5c\xb7\ \xb9\xd4\x5b\x10\x8e\x95\x5d\xa0\xb9\xa2\xad\xd1\x0b\x98\x5a\x43\ \x80\x82\x7f\xe3\x15\x4e\x17\xa8\x06\x3b\xa5\xf6\x47\x90\xf7\xc5\ \x57\x9d\x2a\xb7\x3f\x2a\xcf\x6f\x59\x2a\x42\x32\xbc\x1c\xff\x00\ \x7d\x55\x72\xa6\x3a\x4c\x50\xd2\xc8\x56\x05\x6f\x93\x54\x1a\x6b\ \x99\xcd\xa2\x9e\x22\x9d\x9f\x22\x18\x95\x6e\x41\x23\x3f\x41\xe9\ \x52\x6d\x3a\x13\xf6\x00\x78\xfa\xe2\x9a\x2e\xf6\xb7\x23\xac\xba\ \xc8\xca\x09\xe4\x0f\x4a\x51\xa6\x66\x24\x66\x3a\xd4\x02\xb3\xc0\ \x34\xca\xed\x54\xa5\x78\x95\xa0\x9d\x3a\xb6\x91\x9c\xad\x5b\xa7\ \xda\xb3\x37\x75\x6e\xeb\x0d\xc8\x4e\x3b\xe0\x21\xe4\xb8\x36\x29\ \xcd\xfe\x1e\xc0\x7d\xf7\x8d\xb8\xf7\xa6\x87\xb5\xa5\xb3\xf5\xc2\ \x6d\x2a\xbd\x5b\x9b\xb8\xa8\x80\x98\x8a\x92\x80\xe9\x27\xb0\xdb\ \x9c\xe4\xf7\xc5\x54\xe2\x2b\xad\xf5\x81\xfd\x04\x50\xa1\x06\x25\ \xf5\xcd\x48\x36\x8e\x03\x2a\x6c\x29\x09\x1e\x98\x12\x1c\x27\xfe\ \xaf\xd2\x99\xe7\x04\x27\xa6\xd7\xdd\x26\xe2\x48\xd5\xf2\x35\x03\ \x8e\x30\xc1\x6c\xf8\xee\xba\xa9\x49\x52\x24\x24\x77\x28\x08\xc1\ \xde\x38\x00\x11\xf1\x4a\xa7\x08\xc6\x37\xb5\xc5\xd5\xc5\x54\x6d\ \xad\xac\x5f\x08\xd5\xf0\x18\x76\xe2\x87\xa7\xc7\x1f\xaa\xd0\x17\ \x3c\x6f\x19\x8e\x92\x8d\xe0\xaf\xdb\xcb\xcf\xd2\x9c\x7f\xa6\x1a\ \x65\x28\x63\xc7\xbe\x5b\xd9\x2f\xa5\x85\xb2\x97\x1f\x4a\x4b\x81\ \xe2\x52\xd6\xd0\x4f\x3b\x8a\x55\x8c\x77\xda\x7d\xaa\x89\xd4\xf3\ \x23\xc1\xbe\x75\x6e\xdf\x2d\x65\xa9\x97\x8b\x6b\x22\xda\xc6\xd2\ \x57\x2f\xfd\x88\xb5\xfb\x30\x3e\xf6\x17\xc1\xc7\x6e\xe7\x8a\x71\ \xe9\xcb\x51\xff\x00\xf6\xb3\x61\x75\xf8\xec\xbc\x5b\xd0\x50\x94\ \xd9\x5a\x02\x8a\x09\x79\x5c\x8f\x63\xf3\xf3\x51\x56\x9c\x65\xb2\ \xb3\x2d\x4b\x17\x35\x2b\x32\xed\x8b\xa9\x34\xf4\xbb\xc3\x96\x68\ \x97\xcb\x6c\x8b\x8b\x7b\x82\xe2\xb7\x25\x0a\x75\x25\x3f\x78\x14\ \x83\x9c\x8f\x51\xe9\xc6\x7b\xd3\x42\xb5\x35\x8e\x43\xd3\xbf\x52\ \xde\x6d\xb7\x09\x11\x1b\x52\xdd\x66\x3c\x94\x38\xa4\x63\x23\x90\ \x93\x9c\x64\x11\xf5\x04\x77\x15\x58\xd9\xa4\xcd\xb7\x0b\xae\x87\ \xd0\x97\xb8\xda\x92\xcf\x71\xb5\x5c\xa4\xc3\x5b\x29\x05\xfb\x3c\ \x95\x02\xa4\x21\xc7\x13\xc2\x82\xd6\xe1\xdb\xbb\x0b\x1f\x4e\xf8\ \xe8\x98\x50\x27\xc0\xd3\xb3\xc6\xac\xb7\xb9\x3e\xcf\x60\x76\x22\ \xad\x0c\x41\x0c\x48\x65\x0a\x69\x01\x4d\xbf\x95\x95\x02\x85\x24\ \x77\x03\x27\x27\xd6\xb3\x53\x76\x95\x87\x4e\xbc\xa4\xb4\x5e\xbe\ \xa3\xcc\x2e\xab\x2d\x76\x4d\x18\xe0\x66\xd7\x1e\xed\xaa\x12\xa7\ \x31\x29\xf5\x25\x88\xc8\x4a\x54\x72\x70\x0a\x8e\x48\x09\x48\xe3\ \x93\x56\xba\xee\x51\x63\xca\x83\x6f\x9d\x2a\x3b\x17\x09\xa9\x51\ \x65\x8d\xfc\xba\xa4\x24\x15\xec\xcf\x24\x00\x73\xf4\xaa\x27\xa7\ \x83\x0d\x74\x1f\x1f\xfc\x0b\x8f\xfe\x11\x75\x3d\xeb\xc3\xe8\xb2\ \xda\x6c\x5a\xcd\x41\x41\x3a\x7e\xee\xcb\xef\xa9\x23\x24\x47\x74\ \x16\x1d\x18\xfa\x38\x0f\xe1\x55\x93\xcc\xcb\x50\xa9\x28\xd3\x72\ \x6f\x6b\x7f\x09\xbf\xe4\x94\x48\xd5\xba\x7d\x11\xae\x52\x1b\xbc\ \x43\x53\x56\xb7\x14\xd4\xf5\x87\x46\x23\x2d\x23\xcc\x95\x9f\xdd\ \x23\xe6\xa1\xf2\xfa\x99\x6d\x85\x17\x55\x5c\xa7\x48\x84\x60\x58\ \x56\x1b\x49\x8b\x31\x2e\xba\xf2\xf6\x12\x5b\x52\x38\xd8\xbd\xe9\ \x52\x40\x27\x9c\x55\x55\x1e\xdb\x26\x15\xca\xd7\xa5\xe4\x21\x41\ \xcd\x76\xcc\x29\xd3\x40\x49\x23\xc5\x43\xeb\x7e\x60\xcf\xcb\x6a\ \x48\x24\xfb\x53\xb6\xb3\x6d\xc9\x07\xae\x2c\xc7\x69\xc7\x5c\x54\ \x78\x1b\x50\x84\x95\x13\x88\x89\xf4\x1f\x14\xe5\x1c\xab\x41\x13\ \xc4\xce\x4a\xfb\x7f\x4d\xfd\x89\xed\xc7\xa9\xf6\xb8\x97\xed\x2e\ \xd3\x33\xe0\x1b\x4d\xe5\xb9\x6a\x7a\x63\xaf\x84\x86\x54\xca\x1b\ \x21\x20\xf6\xc9\x2b\xc6\x3e\x98\xef\x56\x1d\x8a\xed\x6f\xbd\x5b\ \x5a\xb8\x5a\xe6\xc7\x9b\x15\xd1\x94\x3c\xc3\x81\x68\x57\xd0\x8e\ \x2a\x9f\x9b\x3a\xd5\x79\xea\x67\x4a\xe6\x5b\xe5\x45\x9e\xc2\x62\ \x5c\xca\x5d\x69\x61\x69\x0a\x11\xd9\xec\x47\xa8\xcf\xe1\x4f\xfd\ \x01\x21\xb8\x3a\xc5\x23\xca\xdb\x7a\xba\xe6\x94\xa4\x76\x48\xf1\ \x07\x03\xd8\x55\x26\xae\x87\x50\xab\x2e\x26\x56\xee\xbf\x08\x97\ \x3f\xaa\x74\xd3\xd7\xb1\x64\x66\xff\x00\x6b\x72\xe6\x14\xa4\x18\ \x89\x94\x82\xe8\x5a\x7e\xf2\x76\xe7\x3b\x87\x72\x3b\x81\x4e\x49\ \xc9\x38\x03\x9a\xa0\x35\x56\xa6\xba\x6a\x8b\xc5\x8f\xed\x72\xd8\ \x8c\xf4\x2d\x71\x15\xa3\x67\x66\x29\xf1\x62\x32\x99\x3e\x1a\x5e\ \x79\x79\x24\x6f\xdc\x39\xc2\x52\x77\x80\x33\xcd\x74\x53\x0d\x06\ \xc7\xcd\x17\xca\x86\x52\x9f\x16\x4f\xb0\xf1\x09\x0c\xb5\x9c\x64\ \xfa\xd2\x67\x25\x2d\x60\x80\x31\x4b\x8e\x08\xe6\x91\x3c\xc0\x56\ \x54\x38\xaa\xc1\xa6\xf5\x34\x4d\x34\xb4\x13\x00\x09\xc9\xf5\xa4\ \xb3\x63\x64\x9e\x29\x72\x12\x94\xf9\x48\xed\x5b\x5f\x40\x2d\x53\ \xf3\xe5\x62\x63\x0b\x94\x8f\x56\x2d\xb6\x93\x6c\x92\xfd\xed\x31\ \xbe\xc0\xda\x0a\x9e\x2f\xfd\xc0\x9f\x9a\xe2\xad\x53\x72\xd3\x8d\ \xea\xa7\x13\xa6\x5c\x71\xa8\x2a\x59\xdc\x1d\x3f\xb3\x3c\xfe\xee\ \x41\x56\x09\xf7\xae\xfa\xea\xbe\x93\x87\xaa\xb4\xec\xab\x3c\xf2\ \xf8\x8c\xf8\x1b\xfc\x25\xed\x51\xda\x42\x87\x3e\xd9\x1d\xaa\x86\ \x73\xa4\x9a\x62\xc6\xb5\x18\x36\x64\x2d\x7d\xbc\x49\x07\xc4\x3f\ \xc7\x8a\xc5\x89\x4e\x73\xd2\x2d\xdf\xe4\x5a\x85\x55\x87\x93\x95\ \xce\x74\xbb\x5a\xda\x96\xe2\x1d\xb7\x87\xdf\x2b\x38\x4b\x69\x41\ \x3b\xd5\xec\x90\x29\xb6\x6e\x92\xd4\xc2\x40\x6d\xeb\x1d\xc1\xa5\ \x67\x01\x0e\x30\xa4\x63\xfe\xd7\x6a\xbf\xf5\x45\x9e\x2c\x7b\x6a\ \xe3\xcb\x65\xb6\xa3\x23\x2a\x05\x23\x69\x6c\x8f\xde\x49\x1d\x8d\ \x55\x77\xcd\x7a\xa6\x9e\x31\xe1\xc8\x5d\xdd\x49\x4e\x13\x22\x40\ \x52\x55\xff\x00\x58\x67\xcd\xf5\xe2\x95\x1a\x55\x29\x3c\xb2\x36\ \x54\xc5\xac\x46\xb4\xe2\x37\x47\xb5\x45\xd3\xd6\xd2\x97\xe5\x37\ \xf6\xd7\x9b\x0b\x96\x73\xc3\x69\xdc\x30\x81\xef\xdb\x27\xdf\x03\ \x1e\xf4\xc7\x72\x90\xdc\xe9\xec\xbe\xb6\x9c\x6a\xda\x95\x12\x95\ \xa8\x60\xad\x23\xef\x63\xdc\xfc\x57\xaf\xb4\xe5\xd1\xe7\xee\x17\ \x0b\x82\x5d\x79\x78\x27\x68\x2b\xe7\xb0\x1c\x71\xf0\x00\xa7\xa4\ \x68\x89\x8d\x36\xdc\x8b\xf3\xff\x00\x65\x8c\x96\xc2\x92\xd1\x58\ \xde\x12\x7b\x25\x5e\x89\x27\x9e\x3d\x2a\x54\xd4\x6f\x14\xf5\x7e\ \xb4\x23\x87\xc3\xb4\xe6\x44\x6e\x46\x19\x95\x21\x70\xbc\x64\xc5\ \x71\xc5\x16\x43\xbc\xa8\x23\x77\x1b\x8f\xa9\xc6\x33\xf3\x5d\x09\ \xd0\x2b\xdc\x49\xf2\x61\x3b\x1e\x57\x8b\x30\xc2\x6e\x3d\xc1\x95\ \x0c\x29\x0a\x6b\xca\x83\xf2\x0a\x7d\x7d\xc5\x52\x9a\xe2\x74\x59\ \x0a\x8c\x21\xb6\xcb\x48\x65\x3e\x1b\x69\x6d\x20\x00\x90\x06\x3e\ \xbf\x5a\x9b\xfe\x8a\x8f\x1f\xe9\xd5\xc1\xa5\x94\x80\xe4\x1d\xd9\ \x50\xec\x43\x89\xc7\xf3\xc7\xe3\x48\xc6\xd3\x5c\x2c\xcf\x91\xab\ \x03\x51\xba\xa9\x2e\x67\x5b\x82\xd2\x23\x07\x83\x45\x6b\xc0\x1e\ \x51\xdb\x9e\xe7\xd7\x1c\x53\x16\xa4\xb6\x34\x82\x64\xc6\x65\xa0\ \xc1\x4f\x88\xb4\x21\xb0\xa0\xbc\x9e\x4a\x49\xec\x3d\xc0\xf7\xf8\ \xa9\x1c\x21\xb1\xa0\xa0\x82\x49\x47\xe3\x5a\xe5\xc6\x5b\xc9\x75\ \xb4\x3a\x5b\x5f\x2a\x6f\x27\x09\xc9\xee\x0f\xc1\x1f\x85\x72\x2d\ \x74\x75\xe3\x2c\xac\xae\x11\x65\x87\x71\x43\x49\x7d\xb7\x5d\x70\ \xb7\xb9\x58\x4e\x32\x9c\x9f\x5c\x76\xc1\x3f\x95\x7b\x74\xd0\x59\ \x82\x96\xd8\x91\xfb\x2d\xa0\x05\x31\xc9\x4e\x47\xa8\x1d\xf3\xeb\ \x8a\x9a\x16\x03\x72\xd6\x10\xde\xf6\x52\x72\xf2\x14\x13\x96\xbd\ \xf0\x3d\x52\x4e\x2a\x47\x62\x4c\x2f\xba\xd2\x52\xb6\xf0\x49\xcf\ \x73\xee\x3e\x71\x55\x85\x24\xf4\x63\x9e\x2a\x70\xd5\x14\x5c\xed\ \x0b\x70\x8c\x94\xc9\x6d\xbf\x15\x0c\x84\xa0\x06\x89\x19\x23\xe3\ \x9c\x11\xf9\xd2\x17\x2d\x2e\x43\x49\x5c\xb6\x65\x3e\xea\x94\x3c\ \x13\x90\x48\x1e\xb9\x1e\x9d\xbd\x79\xae\x9e\x30\xa3\xc8\x28\x25\ \x2d\x00\x46\x42\x47\xef\x1f\x9f\xf5\x9a\xd1\x3f\x48\xd9\x26\xc7\ \x5b\x1f\x62\x43\x24\x1c\xe1\xb2\x40\xe7\xbe\x47\xaf\xad\x12\xc2\ \x4b\x78\xb2\xd0\xe9\x34\xbd\xf4\x73\x73\xca\x92\x72\x11\x18\x04\ \x25\xc1\xb5\x41\x24\xee\x18\x39\xc8\xf5\x39\xe3\x3d\xab\x6c\x49\ \x57\x24\x20\xa8\xdb\x1f\x4b\x9e\x38\xf0\xc0\x5f\x07\x00\x8e\x31\ \xce\x06\x7b\x9f\x8c\x55\xd9\x75\xd1\x01\xb6\xc7\xd8\x5c\xf0\xb0\ \x0e\x06\x3f\x21\xff\x00\x95\x47\x67\x69\xc5\x31\xbd\x4b\x8e\x94\ \x85\x61\x1b\x92\x0e\x4f\x3d\xbe\x9d\xeb\x34\xe9\xd4\x86\xe8\xd3\ \x0c\x55\x29\xad\x0a\xc5\xc8\xf7\xa7\x5a\xf0\x5e\x0c\x23\x78\x2b\ \x74\x00\x4a\x46\x14\x32\x33\xc6\x38\xf6\x35\x82\xf4\xf3\x4e\xc9\ \xcc\x89\x2e\xba\xa2\xb5\x06\xb7\xab\x6a\x06\x4e\x71\xc7\x07\x80\ \x07\xf2\xa9\xd4\xbb\x6a\xd8\x65\x69\x4c\x72\xfa\x57\x94\xa8\x2d\ \x38\x00\xe7\x24\xa8\xfb\x7d\x3e\x29\x13\xd1\xdb\x53\x4b\x4c\x72\ \x92\x55\x80\xa2\x3d\xbf\xf2\xf7\xa4\x39\x49\x6c\x68\x55\x13\xd8\ \x8e\x38\xcb\x71\x5f\xfb\x34\x76\x5a\x68\x38\x47\x88\xa6\xbc\xa5\ \x2a\xce\x70\x7f\xb5\x93\xeb\x59\xb1\x6e\x2a\x7c\x3b\x32\x3b\xeb\ \xdd\x92\x86\x5b\x40\x52\xb2\x3f\x78\x9c\xf1\x9c\x7a\xd4\x91\x98\ \x28\x2c\x78\x88\xda\xf3\xe5\x01\x28\x0d\xa7\xcb\x91\xea\x4f\x6a\ \x72\xb5\xdb\x84\x73\x94\x21\xb4\x12\x09\xc2\x07\xaf\xa7\x34\xbd\ \x59\x57\x51\x24\x37\x59\xed\xaa\x43\x0a\x43\x81\xad\xff\x00\xf0\ \x4d\x04\x7d\xc2\x7d\x33\xea\x7e\x6b\xcd\x73\x6b\x2d\x68\x8b\xb3\ \xce\x20\x94\xb7\x11\xce\x0f\xb6\xde\xd5\x34\xb4\x5b\x5f\x59\x0e\ \xed\x04\x81\xe5\xdc\x30\x09\xa4\xdd\x4e\x65\x0a\xd2\x53\xa1\xa9\ \x29\x52\x5e\x65\x48\x71\x25\x45\x20\xa4\xf0\x46\x47\x23\x8f\x6a\ \x74\x68\xda\x39\x99\x92\x55\xfa\xe9\x23\x92\x74\x8d\x95\xfd\x4b\ \xa3\x66\xc0\x45\xdd\xc6\xee\x16\xc4\x87\xe0\x42\x75\x25\x41\xe4\ \x14\xf9\x83\x67\xba\x54\x9c\x13\xec\x47\xd2\xa1\x53\x63\x48\x83\ \x7c\x75\x2f\xb4\xb6\x9e\x52\xb2\xe6\xe4\xf6\xcf\xde\x18\xf9\x39\ \xa9\x5c\xd3\x2f\x4a\x6b\x3b\xad\xbe\x13\xeb\x71\xfb\x5c\xa5\x16\ \x55\x9f\x32\xd2\x85\x03\xb4\xe3\xdd\x2a\x20\xfd\x4d\x49\xe6\xdb\ \xed\x57\xab\x95\xc6\x59\x77\x88\xef\x86\xe3\x15\x73\xfb\x32\xe6\ \x52\x09\xf5\x21\x27\xf9\x57\x5e\x15\xa5\x4e\xa5\xd2\xbc\x65\xaa\ \xf8\xd8\xc8\xe8\xd3\xab\x04\xdb\xb3\x8f\x6f\xc8\xd1\xa4\x5b\x6c\ \x37\x21\x6d\x24\xa1\x68\x1b\x5d\x4a\x53\x95\x14\x9f\x6c\xf0\xa0\ \x06\x46\x3d\xbd\xea\x40\xe3\x0b\x7e\x32\x98\x88\xfa\x6d\xef\x6c\ \xc3\x5b\x1b\xdc\xd8\xe3\x70\xcf\xf7\x08\x27\x9f\x4f\x6a\x6b\x5b\ \x4c\xda\xe2\x96\x5a\x01\x32\x49\x21\x2b\xcf\x74\xf7\x19\x1e\xa3\ \xe6\xb1\x8b\x76\x99\x16\x64\x55\xb8\xe7\xf5\x45\x45\x0b\xf4\x71\ \x0a\x18\x29\x27\xd8\x91\xd8\xfa\xd2\x2b\x46\x51\x86\x6b\x6a\xc7\ \xd3\x9a\xab\x5a\xd0\x92\xb2\xfb\x09\x51\x2a\x54\x2d\x42\x88\x57\ \x86\x19\x86\xe9\x50\x27\x24\xa5\x2b\x57\xb2\x55\xdb\x24\x72\x0f\ \x63\x5d\x5d\xd1\x75\xb1\xf6\x26\xc2\x46\xde\xdd\xfb\x8a\xe6\x6d\ \x40\xeb\x1a\x96\x04\x78\x56\xe4\xb6\x5c\x69\xc0\xec\x17\x15\xc9\ \x69\x59\xf3\x32\xaf\x74\xe3\x91\x9f\x6c\x57\x4b\x74\xcd\xa6\xe2\ \xb4\xca\x77\x02\x43\x69\x07\x1e\xbc\x72\x6b\xb3\xd1\x52\x94\x5a\ \x8c\x79\x9e\x53\xa6\x24\x9d\x65\x3b\x59\xf3\x2e\xf8\x2b\x42\x90\ \x12\x71\x58\x4b\x80\x87\x3c\xed\x1c\x2a\x91\xdb\xc0\x2c\x83\x9e\ \x3b\xd3\x8c\x10\xb2\x4a\xca\x8e\xdf\x40\x6b\xab\x2b\xc1\xb6\x99\ \x95\x35\x35\x66\x8d\x50\x9d\x71\x9f\xd8\x3c\x9c\x7b\x1a\x29\xc1\ \x48\x42\x8f\x99\x20\xd1\x49\x94\xd4\x9d\xc6\xc6\x0e\x2a\xd7\x2b\ \xce\x9d\xa4\x33\xa2\xed\xea\x6d\x1f\x77\xc4\xc7\xff\x00\xb8\xaa\ \x96\x89\xef\x1e\x12\x85\x7e\x55\x5c\xe8\x3b\x93\xcb\xd2\x70\x62\ \x45\x47\x3f\xb4\xca\x87\x3d\xdc\x55\x4d\xe0\x25\xc6\x98\xcb\xcb\ \x0a\x56\x3b\x57\x42\x54\xd6\x54\xe4\x73\x28\xd4\x76\x4a\x23\x92\ \x67\x29\x6a\x0d\x38\x80\x73\xf8\xd6\xa9\x56\x64\x38\xe0\x90\xc1\ \xf0\x96\x39\xc0\xf5\xa2\x13\x8c\xa5\x45\xe7\x56\x94\x81\xc7\x7a\ \x71\x8f\x2e\x3c\x80\x7c\x27\x01\xf6\xc1\xac\xd2\x72\xa6\xef\x04\ \x6b\x8a\x8d\x45\x69\xb2\x0a\xab\x24\x0b\x7e\xa1\x7e\x60\x92\xe4\ \x9b\xcc\xa4\x04\x9f\xb4\xcb\x2e\x3a\x96\x81\x52\x82\x10\x92\x7c\ \xa8\xc9\x27\x81\xe9\xcf\x6a\x79\x8d\x12\x63\xb8\x0a\x46\xc1\xea\ \x4d\x73\xfe\x9c\x76\xf5\x65\xd4\xbd\x5b\xd7\x0f\xfe\xa4\x9d\x76\ \xb1\x3e\xa0\xdb\xef\x40\xdc\xe2\x5d\xf3\x20\x16\xd4\x55\x96\xd1\ \xb3\x72\x4a\x47\x70\x47\x3c\x54\xf6\xfb\xd5\x1d\x4d\x61\xd0\x16\ \x4d\x43\x74\x6e\xc0\xc4\x8d\x51\x2a\x38\xb5\xa4\xf8\x9e\x04\x08\ \xee\xa0\x2b\xc4\x90\xa2\x41\x59\x4a\x4a\x49\xc6\xd1\xc9\xf6\xa9\ \x58\x96\xa3\x64\x8c\x71\xe1\xbb\xca\x57\x5f\xdd\x8b\x46\x5d\xb8\ \x33\x18\x2d\x3c\xac\x77\x34\x8b\xef\x24\x28\x0a\xaa\xe1\xf5\xc5\ \xd6\x34\x86\xb6\x7e\xe6\xab\x5d\xe6\x5e\x9d\x5b\x29\x8b\x2a\xdb\ \xb9\x11\xe7\xa5\xe3\xb5\x07\x04\xab\x6e\xd3\xf7\xb9\xfa\x76\xad\ \x7d\x32\xea\x5c\xfb\xce\xb8\xfe\x8b\x5c\xa7\xd8\xae\xa2\x45\xb8\ \x4e\x66\x55\xa4\x29\x28\x65\x7b\xb0\xb6\x16\x14\xa5\x64\x81\x93\ \x9c\xfb\x67\xbf\x17\xa3\x55\xc9\x75\xb7\x26\xa5\x5a\x59\x96\x5e\ \x7f\xd1\x7b\x5b\x17\xbe\x2a\x6b\xdb\x8f\x2c\x7b\x73\xde\xa8\xeb\ \xd2\x46\xb2\xfd\x21\x62\xe8\x9b\xd3\xd2\x5c\xb0\x41\xb2\xaa\x61\ \x84\xd4\x85\xb4\x87\xde\x2a\xfb\xcb\x28\x20\x9c\x05\x0c\x73\xc6\ \xdf\x93\x9a\xfa\xe9\xa9\xf5\x54\x7e\x84\xeb\x3b\x53\x37\xb7\x96\ \xdd\x8f\x50\x1b\x7a\x24\x3e\x54\xb7\xcc\x62\xe0\x09\x42\x57\x9c\ \x82\x14\x33\x93\x9e\x09\x1e\xd8\xcc\xf4\xa8\x39\xe2\xd2\x83\x4d\ \x76\xf9\x1d\x71\x1f\xfa\x84\xfd\x29\x35\xcc\xf9\x00\xf4\xa6\x3d\ \x2d\x2e\xe1\x68\xe9\xfa\x67\xea\x49\x8c\x4c\x7a\x24\x45\x48\x79\ \xd8\xcc\x96\xd2\x5b\x4a\x4a\x80\x09\x2a\x3c\xed\x1e\xfc\x9a\xa6\ \x6c\x1d\x70\xba\xdd\xaf\x3a\x69\xc9\xb2\xb4\xda\xe2\x6a\x09\x8a\ \x87\xfa\xb2\x21\x59\x99\x6e\x25\x7b\x1a\x53\x8a\x2a\x21\x5b\x8e\ \x33\xe5\x1c\x11\xda\xa2\x3a\x4f\x51\xd5\x71\x11\x84\x12\x7b\xb2\ \xf6\xc7\x00\x7b\xf1\x4b\xc4\x54\x96\x86\x06\x0e\x2b\x9f\xec\xdd\ \x55\xd5\x53\x34\xec\x6b\x7a\xd9\xb7\xa7\x56\x2b\x55\x8b\x13\x8d\ \x86\x54\x1b\x42\x07\x2a\x77\x69\x56\x78\x00\x8e\xfe\x9d\xa9\xd7\ \xaa\x7d\x58\xbd\xe8\x9b\xa4\x89\x2c\x6a\x1d\x23\x75\x8f\x16\x6a\ \x59\x7e\xcc\xc3\x2e\x19\x4d\xb2\x54\x79\x53\x81\xc2\x90\xe8\x03\ \x90\x40\x1f\x1e\xf7\xa9\x37\xa5\x84\xc3\x11\x4d\x45\xc9\xec\x5b\ \xe9\x0d\x2e\x53\x91\x1a\x96\xca\xe4\x34\x01\x71\xa0\xb0\x56\x90\ \x7b\x12\x3b\x8f\x4a\x5a\xd4\x62\x1b\xda\xa3\xc5\x50\x73\x6f\x33\ \x34\xef\x59\x7a\xcd\x7d\x80\x1a\x32\xe0\x59\x22\x3e\xc8\x75\x3b\ \x93\xb9\x31\x9b\x23\x23\x23\x22\xa4\x48\xea\x56\xa2\x53\xdd\x25\ \x41\x4c\x1c\x6a\xd6\x9c\x5d\xcb\xf6\x47\x82\x94\x34\xa1\xe1\xf9\ \xbc\xbc\xac\xf7\xcf\xa5\x2d\xd4\x93\x2f\x0a\xd4\xd3\x77\xed\xfa\ \xd8\xb8\x50\x84\xa1\x24\x24\x56\xb0\x54\x49\x04\xd5\x1d\xac\x7a\ \xbb\x7a\xd3\x1a\xb2\x13\x49\xd4\x3a\x4a\xfb\x11\xfb\xb2\x20\xc9\ \xb7\x41\x61\xc0\xfc\x56\xd4\xa3\x85\x78\xbe\x21\x49\x58\x03\x04\ \x10\x39\x3d\x87\xa6\xb8\x53\xb5\xb5\xcb\xf4\x95\xd4\x56\xf8\x37\ \xf8\x0c\xb7\x12\xd4\xdf\x86\x87\xa2\xad\x6d\x86\x54\xa4\xa9\x29\ \x09\x0b\x18\x58\x2b\xe5\x7e\xb8\xec\x2a\x12\x7b\xb2\xd2\xc5\xc2\ \xf6\x8a\xd6\xf6\x2f\x26\xdf\x61\xd4\x95\x34\xf2\x1c\x48\x51\x49\ \x28\x50\x20\x10\x70\x47\x1e\xa0\xfa\x56\x69\x50\xdb\xc1\xcd\x73\ \x76\x85\xea\x1c\x8d\x3b\xd1\xdf\xb5\x5b\x6c\x96\x86\xaf\x37\x6d\ \x52\xe5\xb6\x33\x6d\x36\xb4\x47\xf1\x96\x13\x97\x96\x37\x13\xe9\ \xd8\x28\x7a\x63\x81\x52\x19\x9d\x48\xd5\x9a\x7e\x4e\xb2\xd3\x97\ \xa1\x69\x93\x79\xb2\xd9\x4d\xda\x0c\xb8\xac\xad\x0d\x3c\x8e\x01\ \x0b\x6d\x4a\x38\x21\x4a\x03\x83\xc8\xa9\x4a\xe8\xaa\xc6\x42\xc9\ \xb2\xe9\x74\x05\xe4\xa7\xbd\x64\xd9\x2a\x6f\x6f\xad\x52\x56\x0e\ \xa6\x6b\x13\xa8\xf4\x2a\xee\xf1\xec\xea\xb5\x6b\x26\xdd\x2c\xb1\ \x1d\xb7\x03\xd1\x76\xa5\x24\x12\xb2\xac\x2b\x3b\xc1\x23\x68\xf5\ \x1e\x99\x2e\x9f\xa3\xb1\x79\x5a\xa3\xa9\xde\x3a\xdc\x3e\x1e\xa9\ \x90\x12\x16\x49\xc2\x77\xaf\x00\x67\xd2\xac\xdd\x90\x43\x11\x19\ \xcd\x25\xcf\xed\x72\xc7\xb8\xc5\xde\x92\x95\x0e\xf5\x11\xbe\x59\ \x50\x5a\x51\xd9\x92\x7b\x55\x88\xe2\x12\xea\x4f\xbd\x34\xdc\x63\ \x05\x24\x82\x29\xd4\xaa\x58\x6d\x48\x5c\xe2\x0f\xd2\x59\x9d\x71\ \xf6\x81\x6c\x81\x65\x92\x9b\x52\x8e\x54\xf4\x70\x57\xe3\x9f\x65\ \x63\xb0\x1e\xc7\xd7\x9f\x6a\xa9\x74\xc7\x4d\x35\x35\xd4\x29\xf9\ \x6c\x8b\x73\x29\xed\xf6\xa4\xa9\x25\x7f\x41\x8a\xfa\x07\xa8\x2c\ \xc9\x75\x45\x41\x27\x35\x0d\x9f\xa6\x0b\xab\xf3\x24\x91\xf3\x59\ \x65\x47\x11\x52\x76\xd3\xc4\x21\x5b\x87\x1b\x24\x72\x2d\xd7\x41\ \x6a\x02\xb4\x46\x8c\x84\x48\x6c\x01\xc8\x1b\x02\x4f\xbe\x69\xbd\ \x1a\x32\xea\x64\x98\xf3\x58\x97\x35\xd0\x32\x96\x9a\x51\xf0\xd0\ \x33\xdd\x4b\x35\xd6\x92\xb4\x93\x63\x3e\x5c\x53\x4c\xdb\x03\x2c\ \x20\x82\xad\xa3\xd4\x66\x99\x53\xa3\xea\x25\xb9\x68\xf4\x84\xa1\ \xba\x4c\xe5\x6b\xae\x81\xbb\x21\x45\x61\x70\xd3\x9e\xc8\x42\xc9\ \xc0\xfa\xe2\xa4\x1d\x1b\x65\x5a\x67\xa8\x71\xd6\xb9\x49\x79\x32\ \x19\x53\x0b\x00\x14\xf7\x20\xe4\x67\xd0\x10\x2a\xde\xbe\xdb\xa2\ \x21\xb2\xae\x30\x7b\x1c\xf7\xa8\x02\xa1\x32\x9d\x47\x0d\xc8\xec\ \x27\xc7\x32\x02\x77\x84\xe1\x5b\x7d\x46\x7f\x2a\x45\x7a\x31\x54\ \x65\x79\x2d\x87\x60\xf1\x73\x9e\x22\x2e\xdc\xce\xa1\xb1\x3a\x5d\ \x8c\x84\xac\x80\xb4\xe0\x0c\x9c\xe4\x7f\xac\xd2\xd7\x99\x56\xf3\ \xcf\xec\xf1\xfe\xb9\xa6\xed\x1c\x80\xf5\xb1\x90\xf8\xc3\x88\x18\ \x3c\x7f\xaf\xc2\xa4\x25\x05\x0a\x2d\xbb\x8d\xa7\x80\xbf\x43\xf1\ \x5e\x7e\x31\xba\x3d\x14\xa5\x69\x08\x43\x01\xe4\x6c\x70\xf9\xd2\ \x0a\x4a\x88\xe7\x1f\x51\xdf\x8f\x4a\xf1\x88\xea\x8a\xc6\xd7\x4b\ \xc8\x59\x23\x12\x5a\x1b\x93\xc7\xa9\x1e\x87\xf9\xf3\x4b\x7e\xcc\ \xa4\xb8\x36\x1f\x32\xbe\x3b\x7d\x29\x54\x55\xad\xa1\xe6\x3c\x91\ \x8e\x78\xff\x00\x42\xaf\x15\xae\xa5\x5c\xb4\x3c\xb7\xc9\x74\x2b\ \x6e\x03\xc9\xc8\xf3\x27\x9c\xfc\x91\xdc\x53\xfb\x0f\xb6\x5a\xf2\ \xe3\x70\xc7\xaf\x7a\x65\x92\xcc\x77\x16\x14\xa6\x46\xff\x00\x45\ \xa7\xca\xa1\xf8\x8e\xf5\x93\x29\x2b\x40\x6c\xad\xd5\x03\xc6\x4a\ \xb3\xc5\x35\x4a\xc2\x25\x14\xf5\x16\xc9\x79\x4a\x56\xd4\x05\x67\ \x39\xc9\x38\x14\x95\xe8\xee\x48\x3e\x7f\x0d\x1c\xfd\xe4\x8d\xc4\ \x7b\x71\x4a\xa1\x42\x61\xa4\xf0\xd2\x4a\x7d\x77\x1c\xe7\xe4\xd2\ \xf0\x50\x1b\xda\x9c\x04\xf6\xc2\x7b\x51\x6b\xee\x56\xf6\xd8\x8b\ \xb9\xa7\x58\x71\x68\x5b\xac\xa9\x64\x02\x32\xea\xb8\xcf\xc2\x7d\ \xa9\x24\xad\x25\x09\xc5\x38\x95\x21\xbd\xaa\x56\x4a\x52\x00\xcf\ \x1e\xc2\xa5\x6b\x0a\x3c\xed\x01\x5d\xb2\x6b\xc0\xd0\x1f\x7c\x67\ \xdf\x03\x19\xa5\xba\x30\x7c\x87\x46\xb4\xe3\xcc\x89\xb3\xa5\xdb\ \x68\x6c\x42\x01\x40\xe0\x01\xfb\xa3\xd2\x96\x46\xb0\xb2\xc1\xce\ \x01\xe7\x22\xa4\x29\x28\xdd\x8f\xe0\x2b\x05\xa1\x64\xe7\x01\xb4\ \xfb\x9e\x4f\xe1\x54\x54\x60\xb9\x03\xaf\x37\xbb\x1a\x94\xc8\x40\ \x4a\x10\x82\x54\x79\x00\x76\x03\xe6\xa2\x7a\xed\x9f\x16\x1a\xa3\ \x24\x95\xa9\xd5\x24\x15\x27\xbe\x77\x0e\xdf\x02\xa6\xb2\xbf\x64\ \x85\x25\x03\x69\x3f\x78\xab\xb9\xfa\xd4\x79\xd8\x89\x7a\x4a\x9d\ \x74\x12\x12\x9e\xdd\xf9\xa4\xd7\x8d\xe3\x64\x32\x8c\xac\xf3\x33\ \x8f\xfa\x99\xa5\xae\xfa\x73\xa8\x92\x1e\x94\xd3\xf3\x62\x5c\xde\ \x72\x44\x69\x0c\xb0\x7f\xda\x16\xa3\x90\xc1\x09\xec\x42\xb3\xc7\ \x63\x48\xa4\x4b\x95\x09\x6f\xef\x07\xc4\x52\xc3\xb2\x22\xf0\x76\ \x38\x78\xf2\x91\xf1\x80\x47\xe5\x5d\x73\x73\xb3\x19\xd0\xde\x88\ \x48\x4a\x8a\x4e\x17\xec\x7d\xc7\xcf\x7a\xa0\x3a\xab\xa3\xdb\xd3\ \x32\x17\x7d\xb9\x38\xd4\x7b\x73\x48\x25\xb8\xed\x24\x85\x49\x7b\ \x38\x08\xcf\xf1\xfc\x0d\x3f\x0d\x55\xb9\x24\xd6\xb6\xb2\x17\x89\ \x6f\x27\x57\x6b\xdd\xae\xd2\x1e\xd4\x37\xe6\xb2\xc0\x53\x72\x52\ \xeb\x83\x72\x92\xe3\x64\x14\x63\xd8\xfb\x1a\x7b\xb7\xd8\xe5\xa1\ \x68\x2b\x69\x67\x1c\x6e\x03\x9c\x1f\x4a\xd9\xa0\xf5\x0d\xb2\xea\ \xe7\xda\x11\x21\xa6\x54\x80\x0b\x8c\xbc\xe0\x4a\x90\x7d\x7b\xf7\ \x1f\x35\x76\xe9\xb8\xf6\xeb\x8c\x64\x00\x1b\x24\xf2\x0a\x48\x20\ \xfe\x35\xe8\xf0\xf4\x28\x4e\x9e\x49\xbd\x4f\x31\x5f\x13\x56\x35\ \x1c\xb6\x65\x6b\xa5\xb4\x7c\x74\xdc\xcc\xc0\x87\xd2\xea\x95\xb9\ \x45\x47\x85\x1f\x7f\xaf\xf9\xd7\x42\xe8\x68\x31\xe2\x30\xd9\x70\ \xe5\x40\x53\x65\xb2\xc8\xdb\x6f\xa5\xb0\x81\xdf\x82\x2a\x7f\x67\ \xb5\xc5\x8e\xd2\x4a\xc0\x27\x1e\xb5\xbf\x0f\x84\xa7\x85\x8b\xb7\ \x33\x25\x4a\xd5\x2b\xcf\x34\x9d\xd8\xfb\x18\xef\x65\x2a\x6f\xee\ \x8a\xc5\xfb\xd1\x64\xf8\x6d\xb7\xdb\xbd\x64\xdc\x86\xda\x6f\x09\ \x1c\x0a\x8f\x5c\x64\x9f\x19\x6b\x09\x18\x1e\x95\x34\xe9\x29\xb7\ \x99\x68\x5a\xa5\x57\x05\xd5\x7a\x92\xdb\x5d\xcd\x12\xf0\x14\x36\ \xab\xd8\xd1\x51\x38\x8f\xac\x20\x38\x95\x6d\x57\xd6\x8a\xa4\xf0\ \x69\xbb\xc5\xd8\xb5\x3c\x6b\x4a\xd2\x57\x21\x9d\x33\x8b\x39\xcd\ \x3d\x13\xec\xe0\x84\x9d\xfe\x6f\xfa\xea\xab\x16\xd8\xcc\x86\x41\ \x12\x5c\xdc\x7d\x78\xed\x4c\x7d\x33\x4a\x63\xe8\xa8\x29\x40\x4e\ \x47\x88\x09\x3f\xfc\xc5\x53\xcb\xcf\x24\xa8\xec\x39\x34\xf4\xdc\ \x95\x91\x9a\x9a\x51\x8a\x6c\x41\xa8\x4a\x50\xe2\x42\x57\x84\x9f\ \x4c\xd2\x0b\x64\xe5\x46\x92\x97\x1a\x59\x29\x07\xcc\x33\x58\x5d\ \x1d\xf1\x64\x60\x9c\xed\x14\x89\xa6\x5c\x65\x4a\xc0\x38\x3c\xe4\ \xd3\x92\xd2\xcc\x5b\x96\xb7\x43\x03\xfa\x31\x4b\x87\xaf\x22\xb7\ \x79\x38\xd5\xef\x97\x54\xaf\xb2\xff\x00\xb9\x79\x51\xc6\x37\xf9\ \xfe\xf7\x7f\x2d\x39\x5c\x34\x82\x6f\xda\x2f\x4d\x69\x65\xdc\x5f\ \x8b\x3b\x4f\x26\x32\xad\xf7\x36\x1b\x1b\xda\x75\x84\x25\x21\x7b\ \x09\x23\x07\x19\xdb\x9e\xf8\xe7\x8a\x70\x65\xc7\x8b\x9c\x8f\x2d\ \x4a\xb4\x74\x55\x2d\xd5\x48\x5a\x30\x3e\x69\x15\x29\x53\x84\x5b\ \xb1\x6a\x71\x73\x96\x5e\xdf\xec\x6f\xbb\xe8\x9b\x96\xa2\xd0\x97\ \x6d\x39\xae\x35\x22\x6f\x2d\x4e\x42\x3c\x37\x63\x5b\xd3\x10\xb0\ \x52\x77\x05\x01\xb9\x59\x3b\x82\x4f\x27\x1c\x63\x1c\xd3\x7e\x8b\ \xb1\xea\x7b\x36\x1a\xbc\xea\xd6\xef\x31\x1a\x63\xc1\x69\xbf\xd5\ \xa9\x61\x79\xc8\xc2\x94\xb0\xb3\xb8\x80\x08\xec\x33\x9c\x9a\xb0\ \xee\x8e\x06\xe1\xa8\x77\xf4\xa6\x46\x90\x56\xa4\x23\x3d\xeb\x36\ \x1d\x75\x5b\x35\xd7\x84\x54\xd5\xb7\x21\x9d\x4e\xd1\x37\xc7\x64\ \xb1\xd4\x0d\x08\xff\x00\x85\xab\xad\xb1\x15\x1d\xb6\x14\x84\xa9\ \xb9\x8d\x28\xf2\x85\x6e\xe3\x70\x0a\x51\x07\xd4\x80\x3d\xb0\xd3\ \x6c\xe9\x64\x1b\x97\x43\xdf\xd2\xf2\x1e\xb9\xda\xe6\xdd\xde\xfb\ \x74\xe9\x13\x59\x41\x7c\x4a\xde\x09\x2a\x42\x55\xb4\xa7\xca\x00\ \x01\x5d\x8e\x73\x92\x6a\xeb\x68\x78\x51\xc0\xed\x81\x4c\x77\xb7\ \x49\x4e\x32\x72\x4e\x69\x54\xe3\xc4\x99\x35\x68\xc2\x0b\x37\x76\ \xc6\xbd\x2d\x6b\x96\x8d\x30\x6c\xd7\xfb\x9b\x57\x92\xe3\x4a\x65\ \xc7\x51\x18\x30\x95\xb6\x53\xb7\x6e\xd0\xa3\x8e\x33\xce\x7d\x6a\ \x31\xa4\x7a\x7f\xa8\x74\x64\x78\xd6\xbb\x76\xb6\x54\x8d\x37\x11\ \xe5\x2d\x98\x12\x2d\x88\x53\xc9\x6d\x4a\x2a\xf0\xfc\x7d\xfd\xb2\ \x4f\x3b\x73\xed\x8e\xd5\x31\xb3\x3d\x96\x53\xee\x9a\x77\x7d\x21\ \xc6\x0d\x44\xe3\x92\x63\xa1\x08\xd4\x82\x7c\xd1\x52\x5b\x3a\x4f\ \x1a\x1f\x59\x5d\xea\x0a\x6e\xea\x53\x4e\x38\xb7\x91\x6d\xfb\x3f\ \x95\x0f\x2d\xa0\xda\x9c\xdf\xbf\x92\x7c\xc7\xee\xfa\xfc\x52\x1b\ \xb7\x41\x9d\x99\x63\xbf\x58\x63\xeb\x37\xa3\xd9\xae\xd7\x15\x5c\ \xd3\x18\xdb\x90\xb5\xb7\x20\xff\x00\x69\xcd\xd9\x5a\x06\x07\x94\ \x6d\xe4\x0e\x7b\xe6\xd6\x00\xa7\xf0\xa7\x48\xca\xde\xd0\x35\x15\ \x55\xb5\x45\x29\xe1\xe9\x4a\xe9\xaf\x4f\x72\xa8\xb8\x74\xe9\xb9\ \x9a\xc7\x5b\x5d\xa6\xdd\x1c\x5b\x1a\xa2\x03\x70\x9d\x8e\x86\x76\ \xa9\x84\xa5\xa4\xb7\xb8\x2f\x71\xdc\x7c\xb9\xfb\xa3\xf1\xa6\xbb\ \x1f\x4a\xee\x30\xa6\x69\x39\x17\x1d\x5e\xe5\xc0\x69\x67\x31\x6f\ \x68\x40\x4b\x49\x0c\x94\x90\xa4\x1c\x2c\x92\xa3\x84\x79\xf3\xd9\ \x18\xdb\xce\x6a\xdb\xba\x30\x52\xbf\x15\x23\x8a\x6d\x29\x5e\xed\ \xd9\x38\xad\x10\x8c\x26\xae\x22\xa5\x25\x19\x6a\xbd\x5e\xff\x00\ \xc9\x50\xb3\xd1\x45\xb1\x67\x66\xc2\x9d\x5e\xf1\xb4\xc5\xbb\x26\ \xe9\x09\x83\x01\x1b\x90\xe8\x50\xcf\x88\xbd\xd9\x73\xcb\xb9\x23\ \xee\xe3\x76\x4e\x70\x05\x4e\x23\x68\x39\xac\xf5\x59\xed\x77\x6a\ \xd4\x62\x18\x99\x1d\xa8\xf3\xa1\x39\x04\x3b\xe2\xb6\x82\x93\x84\ \xaf\x70\xd9\x90\x90\x33\x83\x8e\x6a\x5c\xcb\x41\x79\x56\x73\x8a\ \xdd\x19\x44\x3b\xb4\x77\xcd\x56\x71\x56\xb2\x26\x9d\x18\x45\xa7\ \x62\xb6\x83\xd1\x28\x4d\xf4\xed\xcd\x29\x23\x50\x3c\xb9\x28\xbc\ \x2a\xef\x0a\xe0\xd4\x50\x85\x47\x7b\x8d\xbe\x42\xa5\x05\x01\xce\ \x79\x19\xcf\xa6\x2b\x7b\x9d\x24\x7e\x54\x6d\x51\x32\xf5\xa9\xd5\ \x72\xbe\xea\x0b\x7f\xea\xf5\x4e\x10\x43\x4d\xc6\x67\x18\x09\x43\ \x21\x67\xd4\x02\x7c\xdc\x91\xe9\xcd\x59\xc5\x45\x1d\xeb\x2d\xfc\ \x0f\x9a\x46\xa8\xd1\xec\xf4\xb6\xb1\x5b\x45\xe9\x49\x0e\xf4\xf1\ \xd3\x7d\xe3\x46\xa1\x68\xc7\xd9\x3f\xdd\x9b\x92\xda\x7f\xb7\xfb\ \x3f\xb9\xfd\xee\xf5\x29\xd1\xfa\x7e\xe3\x62\x9b\x7b\x7e\x76\xa7\ \xb8\xde\x9b\xb8\xcd\x32\x63\xb5\x28\xf9\x61\xa0\xe7\xf6\x48\xe4\ \xf1\xcf\xa6\x07\x03\x81\xce\x5f\x9d\x7b\x03\x68\x35\xa5\x4f\x00\ \x39\x34\x28\xb7\xa9\x2a\x14\xe0\xf4\xf5\xa5\x85\x01\x7b\x79\xad\ \x32\x4a\x56\x93\xcf\x34\x8d\xe9\xcd\xa0\x1c\xac\x71\x4c\xd7\x1b\ \xf3\x4c\xf6\x58\xcf\xc5\x33\x25\xb5\x61\x2a\xc9\x0b\x26\x21\xac\ \x12\xbc\x53\x05\xc9\xf8\xad\xe7\x25\x35\x57\xf5\x77\xae\x5a\x7f\ \x47\x2d\x51\x1c\x5a\xae\x17\x2c\x67\xec\x71\xd6\x3f\x67\xff\x00\ \xcc\x5f\x64\x7d\x39\x3f\x15\xcd\xfa\xb3\xaf\x7a\xfa\xfc\xea\xd1\ \x6f\x7d\x9b\x44\x75\x1e\x13\x11\x1e\x70\x3e\x56\xac\x9f\xc4\x62\ \xa8\xf1\x79\x7d\xd4\x14\xe8\x55\xad\xee\xa3\xa8\x7a\x81\xac\x6c\ \x9a\x66\xdc\xa9\x77\x59\xcc\xc4\x41\xc8\x40\x59\xf3\xac\xff\x00\ \x75\x23\x93\x5c\xcf\xd4\x1e\xb8\xcf\x9b\x70\x2c\x69\x76\x0b\x6d\ \x63\x68\x7a\x42\x02\x94\xaf\x90\x9e\xc9\xfc\x73\xf8\x55\x59\x70\ \x95\x3e\xe2\xeb\x93\xae\x92\xe4\x4c\x79\xc3\xf7\x9d\x59\x52\x96\ \x7e\xa6\xa7\xbd\x0b\xe9\xe2\x35\xa6\xa9\x11\xa5\x05\x22\xdb\x0d\ \x29\x7e\xe0\xf2\x0f\xde\x4e\x70\x96\x81\xf4\xdc\x78\xfa\x03\x59\ \x6b\xe2\xa4\xd5\xe6\xce\x9e\x1b\xa1\xf5\xbc\xd9\x96\x84\xe9\xee\ \xb2\xea\x0a\xd5\x7f\xbb\x5c\x65\x31\x6c\xdc\x4f\xda\x16\x49\x53\ \xa7\xd4\x36\x0f\x18\xf9\xed\xf5\xab\x5f\x4e\xe8\x78\xd6\x9b\x9c\ \x54\xa3\xc6\x73\xc3\x39\x53\x8f\xb8\x56\xb5\x7a\x66\xae\x49\xec\ \xc7\x89\x09\x98\x71\x18\x43\x2c\xa1\x3b\x1b\x6d\x00\x04\xa1\x20\ \x60\x00\x3d\x05\x47\x5e\x67\x32\xdb\x74\x02\x73\xc6\xe1\xee\x2b\ \xcf\xe2\x71\x35\x2a\x3b\x72\x3b\x14\x28\x53\x86\xb1\x44\xb6\xc8\ \xd2\x51\x1d\x21\x23\x09\xc0\xcd\x3f\xb4\x90\x50\x37\x84\xad\x23\ \xb8\x3f\x5e\x0d\x31\xd8\x14\x0b\x3c\x9f\x32\x7d\x71\xde\xa4\x6d\ \xa4\x2d\xa0\x15\xe5\xc7\xc7\x7a\x65\x3d\x50\xba\x9b\x88\xcc\x65\ \xa0\x92\xc8\xde\x9f\xec\x77\x1f\x87\xa8\xad\xad\xa5\xbe\x13\x92\ \x39\xc8\x0a\x38\x22\x94\x16\x9c\x6f\xcc\xde\xec\x7a\xe4\xff\x00\ \x8d\x6d\x61\xd1\xc8\x71\x04\xfe\x19\xa6\x24\x2d\xc9\x98\x35\x15\ \x63\x24\x21\x59\xc6\x38\x02\xb7\xb0\xd6\x50\xa1\x92\x9e\xe1\x4a\ \x00\xf2\x7d\x78\xa5\x6d\xa5\xb2\x06\xd5\x2b\x07\xdc\xf0\x3e\x94\ \xa5\x0c\xb3\xea\xea\xff\x00\x0a\xbe\x51\x6e\x62\x26\x94\x94\xa7\ \x1b\x14\x4f\xb9\x4d\x78\xae\x78\x50\xc8\x3e\x83\xd2\x9c\x76\x46\ \xef\x82\xe7\xc6\x6b\x62\x40\x49\xc2\x10\x84\x0f\xa5\x5b\x29\x19\ \xc6\xe6\x9a\x75\x5f\x71\x93\x81\xea\xae\x05\x6d\x11\x70\x09\x79\ \x40\xfc\x26\x97\x10\xa5\x8c\x14\xab\xe7\x9a\xd6\xe3\x58\xf3\x29\ \x58\x1e\x98\xa1\xa2\x33\x08\xd4\xd8\xc6\xd4\x24\x24\x63\xb6\x38\ \xad\x0b\x4a\xb3\xb8\xd2\xc7\x16\x0e\x52\x94\x94\xfc\x9a\x44\xf2\ \x8a\x95\xb5\x24\xe4\xfe\x42\x97\x26\x59\x08\x26\x6e\x52\xfc\x26\ \xc0\x27\x1e\x63\xed\xf3\x49\x14\xce\x3c\xa8\x19\x09\xe3\x3e\xe7\ \xde\x9d\x94\xc1\x59\x0d\xb3\xe6\x3d\xc9\xff\x00\x5f\xce\xa9\x3e\ \xb1\xf5\xc6\xd7\xa6\x14\xfe\x9f\xd1\xae\x47\xbb\x5f\x00\x29\x7e\ \x60\x21\x71\xa1\x1f\x60\x7b\x38\xe7\xc0\xe0\x7a\xe7\xb5\x2d\xc1\ \xc9\x9a\x68\x53\x9d\x59\x28\xc1\x6a\x49\xfa\x85\xae\x74\xc6\x82\ \x69\xb5\x5f\x24\xa9\x53\x9f\x41\x54\x78\x2c\x0c\xba\xee\x3d\xfd\ \x12\x93\xfd\xa5\x71\xf5\xae\x4b\xea\x36\xb4\xba\x6b\xdb\xe2\xae\ \xf7\x72\x50\xd3\x6a\x29\x8b\x09\x3f\xd4\xc6\x6f\x3d\x81\xfd\xe3\ \x8e\xea\xf5\x3f\x95\x31\x6a\x0b\xc5\xca\xe7\x3e\x4d\xd2\xeb\x25\ \xf9\xd3\x9e\x58\x53\xd2\x5c\x3b\x89\x3f\x3f\x81\xe0\x76\x14\xcd\ \x31\xe7\x64\xa8\x70\x42\x41\xf2\xf3\xc7\xe5\x5a\xe8\x61\xd4\x35\ \x67\x51\x46\x9e\x1d\x7f\xb4\x84\x97\x16\x13\xe2\x27\xc0\x58\x52\ \x89\xf3\x60\xfc\xd3\xff\x00\x4f\xb5\xde\xa0\xd0\xf7\x0f\x1a\x1b\ \xbe\x3c\x35\x28\x78\xd1\x9c\x39\x6d\x5f\x4f\x63\xf2\x29\x95\x2a\ \x08\xe3\x21\x38\x3c\x91\xfe\x5f\x35\x8b\x8d\xe5\x2a\x21\x29\x48\ \x03\x8c\x03\x85\x56\xde\x56\x67\x2b\x11\x86\x85\x5b\xbe\xde\x47\ \x63\xf4\xe7\xac\x1a\x67\x52\xb2\xd2\x63\x4d\x44\x69\xd8\x19\x89\ \x21\x41\x0b\xcf\xb2\x49\xe1\x7f\x87\x3f\x15\x6d\xc0\xd4\x0d\xb8\ \x91\xdc\x2f\xd4\x1e\xe2\xbe\x69\x29\x87\x10\xe7\x88\xd2\x94\x8d\ \x9e\x60\x52\x6a\xc6\xd0\x5d\x6c\xd6\x5a\x63\xc2\x62\x5b\xe9\xbb\ \xdb\xdb\xc0\x0c\xca\xc9\x5a\x47\xf7\x56\x3c\xc3\x8f\x7c\x8f\x8a\ \xd3\x4b\x13\x52\x9e\x9b\xa3\xce\xe2\x3a\x2e\x50\x77\x81\xdf\xad\ \xcb\x2e\xc7\xf1\x77\x01\xc5\x21\x61\x45\xe7\x8a\x73\x9d\xc7\x9a\ \xa1\x74\xc7\x5e\xb4\xb5\xfa\x22\x18\xfb\x7a\xed\x33\x14\x39\x66\ \x5f\x08\x27\xd8\x2c\x71\xf9\xe2\xac\x5b\x26\xb1\x8a\x96\x92\xb4\ \x3e\xcc\x82\xa1\x9d\xcc\xb8\x97\x07\xff\x00\x69\x35\xb6\x18\xfa\ \x4f\x49\x68\xce\x5d\x4a\x33\x83\xeb\x22\x74\xe0\x6d\xb5\x14\x13\ \x92\x7d\xa8\xa6\x48\x97\xd6\x26\x28\x28\x11\x93\xcd\x15\xb6\x33\ \x8c\x95\xd3\x13\x62\x51\xd3\x5b\x6a\x1c\xd1\x90\x96\xb5\x7d\xef\ \x13\xb7\xa7\xed\x15\x4f\x4f\x5a\xda\x84\xd2\xde\x6d\x1b\xf0\x9e\ \xd8\xa8\xa7\x4d\x2e\x32\x99\xd2\x70\x12\xa3\x94\x65\x7f\x87\xed\ \x15\x56\x0a\x16\x97\xa2\x85\x77\x4a\x85\x73\xa4\xea\x53\xb3\x6f\ \x43\xa1\x41\x52\xab\x0d\x16\xa8\xae\x19\x68\xca\x9c\xb7\x14\x36\ \x24\x2a\xb2\xba\x24\x15\x80\xd2\xc6\x00\xf4\xad\xf7\x75\x84\x4e\ \x71\x94\x61\x08\xdd\x93\x48\x46\xc1\x90\x09\x51\x3e\xa7\x9a\xe9\ \xad\x51\xcf\x7a\x3b\x1a\x9a\x59\x0a\x28\x3f\x96\x2a\x7d\xa5\x9e\ \x69\x50\x82\x52\x30\x40\xc1\xa8\x3e\x1b\x2a\xcf\xad\x4b\x34\xc2\ \x17\x1a\x12\xde\x70\x7d\xee\x40\x35\x9f\x12\xaf\x4c\xd1\x85\x95\ \xaa\x0a\xef\x4f\x05\x3c\x1a\x1e\x9d\xeb\xcb\x4b\x45\xd7\xf7\x94\ \xf9\x40\xe0\xd2\x17\x14\xa9\x12\x49\xee\x54\x71\x4f\xb1\x50\x98\ \xb1\x80\xcf\x38\xa4\x54\xfd\xba\x6a\x2b\x73\x45\x3f\xdc\xa8\xe4\ \xf6\x32\x9a\xee\x13\xb4\x1f\x4e\x6a\x35\x70\x90\x95\x3a\x54\xae\ \xc9\x3c\x52\xfb\xa4\x9d\xa8\x23\xf7\x95\x4d\x29\x6f\xc5\x77\x67\ \x24\xd3\x30\xd4\xf2\xab\xb1\x78\x9a\x99\x9d\x90\xb6\xd4\xf0\x4b\ \x83\x04\x61\x55\x23\x8a\xb0\xa4\x6d\x35\x13\x09\xf0\x97\xb7\xb1\ \x1f\x14\xf7\x6f\x91\xbd\xb1\xcf\x98\x55\x31\x34\xef\xaa\x2f\x85\ \xa9\x6e\xab\x37\x4a\x6f\xc3\x70\x9f\x43\x5b\xa0\x2f\x04\xa0\x9f\ \xa5\x6d\x71\x29\x7d\x9e\x3b\xd2\x24\x95\x36\xbe\xf8\x22\xb3\x2e\ \xbc\x6c\xcd\x2f\xa9\x2b\xa1\x45\xd1\xd0\x96\xb6\x7a\x9e\x29\x97\ \x3c\xed\x39\xc7\xc5\x3a\x5c\x47\x8c\xce\xf4\xe3\x8a\x68\x53\x9e\ \xc9\xe6\x9f\x87\x8f\x54\x46\x21\xf5\x85\xac\xb8\xdb\x43\xb7\x06\ \xbc\x5a\xb7\x3a\x14\xda\xbb\xd3\x4c\xb9\xbe\x12\x72\xae\x00\xa6\ \x19\xba\x9e\x3c\x57\x0a\x94\xea\x52\x90\x7c\xca\x52\xb0\x07\xd4\ \x9e\x2a\xd3\xcb\x4d\x66\x93\x13\xc5\xe4\x58\x3e\x3a\x52\x91\x93\ \xce\x29\x1c\x9b\x9c\x76\xf8\x2b\x48\xaa\x67\x58\x75\xb3\x48\x58\ \xdb\x50\x9b\xa8\x62\x97\x40\xc8\x66\x32\xbc\x65\x9f\x8c\x27\x20\ \x7e\x24\x55\x21\xab\x7f\x49\xe7\x1c\x52\xdb\xb0\xd8\xca\x8e\x4e\ \xd7\x66\xb8\x4f\xff\x00\x62\x7f\xce\xb0\xf1\xa3\xbc\x55\xcd\x51\ \x55\x6a\x7b\xa8\xeb\xb9\xda\x8a\x3a\x16\x40\x58\xed\xef\x51\xcb\ \xc6\xb5\x8f\x19\xb5\xad\x6f\x21\xa6\xd3\xf7\x96\xe2\xc2\x52\x3e\ \xa4\xd7\x0c\x5f\xba\xd3\xd4\x4b\xab\x8a\x5a\x6f\x0b\x84\xda\x87\ \xdc\x8a\x80\xd8\x03\xea\x39\xfe\x35\x0d\x9f\x74\xbd\x5c\xd5\xbe\ \x7d\xca\x54\x8d\xca\xca\xbc\x57\x8a\xb9\xfc\x4d\x51\xe2\x2a\x72\ \xb2\x1d\x1e\x8e\xab\x3f\x7a\x47\x5d\x6b\x9e\xbf\xe9\xbb\x41\x5b\ \x71\xe7\x9b\x93\xe9\xff\x00\x82\x8b\xca\x7f\xed\x9e\x3f\x2c\xd5\ \x1b\xae\xfa\xe3\xab\xf5\x31\x5c\x5b\x6b\x9f\xaa\x21\x2c\x10\x50\ \xc1\x3b\xd4\x3f\xbc\xe7\x7f\xcb\x15\x5a\x37\x17\xb1\x50\x2a\x23\ \xda\x94\x36\xdb\x4d\xe0\xaf\x03\xca\x41\x03\xd3\xf1\xa4\xca\x4e\ \x4e\xed\xdc\xeb\x61\xfa\x22\x9c\x35\x97\x98\x9d\xb6\x16\xfb\xc5\ \xc7\x9c\xf1\x49\xf3\x12\xa3\x9c\x9a\x56\x5b\x4a\x06\xd4\x24\x91\ \x91\xe9\x5b\x76\xe1\xad\xca\x04\x21\x27\xcb\x84\xf7\xaf\x76\x84\ \xa4\x93\x8c\x28\xe3\x83\xcf\xd3\xe9\x55\x6e\xec\xec\xd3\xa0\xa1\ \x1b\x24\x26\x98\xb5\x97\x58\x40\x48\x29\x49\x52\xb0\x3b\xf1\xdb\ \x3f\x9d\x74\x7f\xe8\x6f\x2e\x2a\xed\xda\x96\xdc\xa0\x91\x38\x2d\ \x89\x19\xf5\x53\x58\x50\xc6\x3e\x09\xfe\x35\xce\xae\x25\x26\x5b\ \x38\x6c\x94\xac\x28\x10\x3b\x9e\x33\xfe\x15\x3c\xfd\x1f\xb5\x22\ \x34\xaf\x55\xad\x32\x65\x3a\x96\xa0\xce\xcc\x19\x65\x47\x00\x25\ \xce\x12\xa2\x7e\x14\x13\xcd\x2a\xb4\x6f\x02\x1a\x93\x53\xd7\x7f\ \xc1\xd6\xf7\x26\xb2\xf9\xf3\x60\x63\x03\xe0\xe2\x90\x88\x89\x71\ \xb2\xde\x36\xee\xc1\x1f\x0a\xf7\xa7\x99\x6c\xa9\x52\x14\x36\x8c\ \xa5\x5b\x54\x01\xed\x8e\xc6\xb2\x62\x29\x28\x03\x8c\x0e\xc7\x15\ \xc9\x74\xee\xcc\xaa\x76\x42\x5b\x46\x5b\x56\xd7\x52\x37\x24\xed\ \x20\x8e\x47\xcf\xe7\x9a\x92\xb4\xb4\xa1\x09\x24\x9c\x11\xdf\xb8\ \xa6\x65\x36\x1b\x21\xc2\x95\x15\x27\x1e\x70\x79\x4f\x3d\x8f\xbd\ \x39\xb6\x85\x29\x85\x05\x36\x01\x28\x38\x58\x20\xf1\xe8\x47\xd0\ \xd3\x20\xb2\xe8\x52\x6d\x3d\x45\xc1\xcd\xaa\x47\x88\x4e\x36\x92\ \x94\x83\x9e\xdd\xf8\xa5\xac\xa5\x24\x02\x10\x82\x15\xc8\x20\xf7\ \x14\xc7\xa7\xd2\xea\xd8\x0b\x92\xa0\xfc\x94\x1f\x0c\xad\x49\x29\ \xe3\x3c\x63\xda\x9e\xe3\x29\x28\x07\x6a\xb2\xd9\x3c\xa7\xfb\x3f\ \x4a\x6c\x1d\xd5\xc4\xd4\x56\x76\x37\x00\xd2\x55\x84\x95\x6d\x23\ \xf7\x78\xe4\x7d\x7e\xb4\xa1\x94\xb6\x13\x93\x95\x28\x93\xca\x8e\ \x3f\x2f\x8a\x43\x25\x5b\x43\x6b\x24\x25\x5d\x81\x48\xc8\xcf\xcf\ \xe1\x43\x6a\x71\x45\x59\x75\xb2\xa5\xe4\x20\x81\x85\x24\x0f\x5c\ \x76\x3e\x9c\x55\xef\x62\x96\x1c\x52\x40\x58\xc1\x1c\x67\xca\x3f\ \xd7\x34\xa1\x2a\x42\x94\x50\x09\xe0\x02\x46\x29\x33\x39\x71\x96\ \xbc\x2d\x85\x04\xe7\x77\xef\x27\x1d\xeb\x5a\x7c\x54\xbc\xb7\x12\ \xb1\x94\x8c\x76\xce\x73\xcd\x5a\xe5\x77\x15\x3a\xff\x00\x87\xca\ \x10\xb7\x14\x3b\x25\x3d\xcd\x63\x20\xac\x8c\x9c\x63\xeb\xda\xb0\ \x82\x14\xb1\xe2\x29\x2a\x1d\xc1\xdd\xdc\x9e\xdf\x95\x6b\xbe\x5c\ \x2d\x96\x4b\x6a\xee\x57\xbb\x94\x4b\x64\x24\x0c\x97\xa5\x3c\x96\ \xd3\xf8\x67\xb9\xfa\x54\x6f\xa8\x5b\x5b\x20\xc6\xe4\xf2\x42\x47\ \x6a\x65\xd5\xb7\xfb\x16\x93\xb3\x2e\xef\xa8\xee\x6c\xdb\x60\xa7\ \x3b\x54\xe1\xcb\x8f\x2b\xfb\x2d\xa0\x72\xb5\x7c\x0f\xc6\xa9\x7e\ \xa5\x7e\x93\xf6\x88\x65\xcb\x77\x4f\x2d\xaa\xbb\x4a\xda\x40\xb9\ \x4d\x41\x6d\x84\x1f\x74\x36\x70\xa5\xe3\xdd\x58\x1f\x06\xb9\xab\ \x56\x5f\xf5\x16\xad\xbb\xbb\x77\xd4\x57\x49\x37\x49\xc4\x60\xba\ \xf2\xf0\x86\xff\x00\xba\x80\x38\x48\xf8\x48\xc5\x4a\xa6\xd9\xd2\ \xc3\x74\x75\x4a\x9d\x69\xe8\xbc\xfd\x7a\xb1\x65\xf5\x9b\xaf\xb7\ \x8d\x5d\xe2\xd8\x74\xca\x17\x61\xb0\xa8\x94\xb8\xb5\x2b\xfd\xa6\ \x58\xf6\x5a\x87\xdd\x49\xfe\xca\x7f\x12\x6a\x9e\x71\x29\x60\xb6\ \xda\xdc\x50\x1b\x54\x50\x80\x36\x9d\xc6\xb5\xbc\xe0\x49\x48\x69\ \xb0\x70\x7e\xf1\x1f\xce\xb5\x24\x29\x6a\xf1\x94\x4b\x8a\x3d\xf1\ \xdf\xe4\xf3\x5a\x21\x05\x15\xa1\xd3\x8e\x4a\x49\xc2\x2b\xd7\xd4\ \xd0\xb3\x29\xf5\x99\x0a\xca\x46\x30\x02\x46\x78\xf7\x35\x82\xd2\ \xb7\x1b\x48\xc0\xee\x33\x83\xc6\x7d\x29\x62\x88\x43\x4b\xda\xa0\ \x92\x0e\x70\x0f\x27\xde\x93\xc8\x79\x0a\x74\x00\x14\x40\xf4\x4f\ \x00\xf1\x4c\x42\x2a\x46\x29\x6a\xdd\xd9\xad\x0c\xb2\x12\x52\xf3\ \xa9\x4e\xd3\x92\x0a\x7f\x2f\xad\x60\xe6\x12\x93\xb9\x63\x1d\x81\ \x4a\xbb\xfe\x15\xb5\x42\x53\xa1\x3b\xd2\x52\x39\x03\x70\xc9\x48\ \xc7\x02\xb2\x66\x13\x2d\xa4\x29\xd5\x78\xa4\x8c\xee\x24\x64\x7e\ \x1f\x5a\x9b\xf6\x8a\x74\xdc\x9e\x58\x2b\x7a\xe6\x22\x59\x51\x58\ \x28\x0b\x50\xcf\xb6\x31\xe9\x59\x39\x15\x4a\x39\x70\xa7\x80\x4e\ \x7b\x52\xe5\x2d\xa4\x12\x10\xea\x90\x01\xe4\x28\x7a\xfc\x52\x27\ \xe4\x28\xf2\x82\x41\xf5\x28\x18\xfa\xd4\xa6\xde\xc2\xe7\x4e\x10\ \x4d\xc9\xdc\x46\xec\x66\xc2\xc6\xd3\x92\x79\x1c\xd6\x70\xa4\x5c\ \x6d\xef\x22\x4c\x29\x6f\xc5\x75\x07\x29\x52\x16\x52\xa0\x7f\x0a\ \x50\x92\x8c\xa9\x2a\x51\xec\x3d\xb3\x9a\x0a\x77\xa4\x29\x40\xe0\ \x63\x38\x3c\x0a\xb5\xcc\x72\xc3\xc6\x45\x9d\xa3\x3a\xe7\x7c\xb5\ \x2d\xa6\x35\x24\x41\x70\x65\x3c\x7d\xa1\xb3\xb1\xec\x7b\x9f\x45\ \x7e\x3f\x9d\x15\x51\xce\x6d\x29\x19\xc1\xc1\xed\xed\x45\x42\x8a\ \xe5\xa1\xca\xaf\x82\xa5\x9f\xdd\xf5\xf0\x3a\xc3\x4d\x6a\x0b\xf3\ \x76\x28\xc8\x6e\xf5\x72\x4a\x41\x56\x02\x65\xac\x01\xe6\x3e\x99\ \xa9\x33\x5a\xa3\x52\x35\x0c\x0f\xe9\x0d\xd8\x71\xdb\xed\x8e\x7f\ \x9d\x42\x74\xaa\x77\x5a\x63\x92\x78\x1b\xbf\xfc\x8d\x3d\x15\x78\ \x87\x27\xee\x8a\xf1\x55\xeb\x55\x72\xb6\x67\xf3\x3c\x6a\x9c\x93\ \x76\x66\x62\xeb\xa8\x5f\x90\xa7\x5d\xbe\x5c\xce\x4f\x73\x29\x7f\ \xe7\x4a\xdb\xba\xde\x12\x9c\x7e\xb9\xb9\x7f\xf5\x4b\xff\x00\x3a\ \x40\x54\x01\xe2\xbd\x6d\x4a\x52\x82\x52\x82\x49\x3c\x01\xeb\x55\ \x78\xaa\xef\x69\x3f\x9b\x21\x36\x2c\x76\xe9\x78\x24\x2c\x5e\x6e\ \x5c\x73\xfe\xea\x5f\xf9\xd6\x6b\xd5\x7a\x89\x6d\x86\x91\x7e\xba\ \xed\x1e\x9f\x6c\x73\xfc\xeb\x0b\xd5\x9a\xfb\x6d\x88\xdb\xf3\xec\ \xf3\xa2\x30\xf2\xb6\x21\xc7\xd8\x52\x12\x49\x19\x03\x24\x77\xc0\ \x27\x1f\x06\x90\x47\x65\x2c\xa7\x72\xf9\x51\xab\x4a\xb5\x78\xfb\ \xf2\x77\xf1\x64\xbc\xd1\x76\xd8\x7a\x89\x7f\xd4\x2d\x8f\x11\x57\ \xeb\xa8\x57\xfc\xf1\xcf\xf3\xac\x9f\xd5\x7a\x90\x82\xa5\x6a\x1b\ \xb6\x3f\xe7\x8e\x7f\x9d\x35\x0d\xce\x38\x84\x24\x65\x4b\x50\x4a\ \x52\x4e\x32\x49\xc0\xaf\x35\x3d\xaa\xe7\x64\xba\xae\xd9\x76\x8c\ \x23\x49\x42\x52\xa5\x37\xe2\x25\x78\x04\x64\x1c\xa4\x91\x54\x8c\ \xeb\xcf\xac\xe4\xed\xf1\x2d\x9a\x6a\x37\x57\xb1\xb5\x7a\x97\x50\ \xba\xb2\xa5\xdf\xae\x87\xeb\x2d\xcf\xf3\xaf\x58\xd4\x9a\x85\x2b\ \xdc\x2f\xb7\x4f\xfe\xad\xcf\xf3\xa6\x62\x78\xed\x4e\xd0\x6c\x17\ \x69\x76\x19\x77\xc8\xf1\x82\xed\xf0\xd4\x11\x21\xef\x15\x03\x62\ \x8e\x30\x36\x93\x93\xf7\x87\x61\xeb\x4f\x55\x6b\x4b\x48\xc9\xfc\ \xd8\xb8\xe7\x93\xd0\xda\xe6\xa4\xd4\x3b\xf7\x7e\xbe\xba\x7f\xf5\ \x8e\x7f\x9d\x66\xd6\xa7\xd4\x6d\xab\x72\x6f\xf7\x51\xf4\x98\xe7\ \xf9\xd3\x3e\xd2\x72\x2b\xd1\xda\x97\xc7\xab\x6f\x79\xfc\xc3\x34\ \xbb\x49\x33\x3a\xab\x52\x10\x14\x9d\x43\x76\xf9\xff\x00\x6c\x73\ \xfc\xe8\x7b\x53\x6a\x25\x8c\xff\x00\x48\x2e\xb9\xff\x00\x9e\x39\ \xfe\x75\x1b\x43\xa5\xa3\x9f\x4a\x1e\x96\x90\x9c\x85\x52\xb3\xd6\ \xbd\xd4\x9f\xcc\xba\xa9\x27\xa5\xc7\x97\x35\x76\xa4\x6c\x14\x9d\ \x41\x76\x03\xfe\x78\xe7\xf9\xd3\x74\xcd\x69\x7c\x65\xa5\x2d\x7a\ \x86\xe4\x84\x81\x95\x29\x53\x56\x00\xfa\x9c\xd4\x3f\x52\xea\x16\ \x22\x94\x47\x09\x76\x4c\xd7\x8e\xd8\xf0\xe3\xa4\xad\xe7\x94\x7b\ \x04\xa4\x73\xc9\xaa\x9f\xaa\xb1\x7a\x8b\x05\x51\xbf\xa5\xd6\x0b\ \xbd\x8e\x24\x82\x7e\xca\xdc\x98\xab\x65\xb5\xe3\xbe\x32\x06\xe5\ \x0c\x8c\xfa\x8c\xfa\x57\x4f\x07\x86\xc4\x57\xd7\x33\x4b\xb6\xec\ \xdb\x85\xc2\x55\xae\xef\x7b\x22\x79\xab\xba\xdf\x3a\x31\x53\x16\ \xdb\xd5\xca\xe0\xf0\xe3\x7a\xa5\x38\x1a\x1f\xc7\x2a\xff\x00\x5c\ \xd5\x4d\xa9\x75\x9e\xa9\xd4\xae\x95\xdd\x6f\x53\xa4\x23\xd1\xb5\ \x3c\xad\x89\x1e\xc0\x67\x14\xc2\x1b\xf7\xe4\x9f\x5a\xcd\x20\x76\ \x07\xf3\xaf\x41\x47\x0f\x0a\x4b\x4b\xb7\xda\xce\xfe\x1f\x07\x0a\ \x1b\x6e\x63\x87\x14\x7c\xce\x2f\xf1\x35\xea\x41\x4f\x39\x56\x6b\ \x23\xbb\x8f\xa5\x2e\x76\xd5\x73\x66\xd2\xc5\xe1\xfb\x5c\xc6\xad\ \xb2\x5c\x53\x4c\x4c\x5b\x0a\x0c\xba\xb4\xfd\xe4\xa5\x78\xda\x48\ \xf5\x00\xf1\x4f\x6d\x9b\x16\xe2\x30\x5c\xec\x16\xbf\xce\xbd\x42\ \xd6\x14\x0e\xf5\x03\xe8\x6b\xc0\x32\x7d\xbd\xab\xdf\x4c\x11\x8a\ \xad\xcb\xab\xf6\x99\x17\x9e\x24\x6e\x79\xc3\xf8\x9a\xc9\x2f\x3b\ \xbb\x97\x5c\x3f\xf5\xab\x04\xfa\x91\xe9\xc6\x2b\x24\x83\x9d\xc5\ \x35\x0c\xba\x72\xed\x33\x53\xef\x29\x44\x17\x5c\x3f\x55\x9a\x03\ \xab\xc1\x05\xd7\x3e\x79\x35\xa5\x44\x15\x63\x18\xf4\xac\x81\xc0\ \x04\x7e\x00\x50\x4f\x12\x4d\xee\x66\xe3\xef\x04\x85\x87\x57\x94\ \x60\xa7\xcc\x7f\x87\xf1\xaf\x56\xf3\x8e\xa4\x65\xd5\x94\x91\xdf\ \x71\xe6\xb0\x1c\x73\xf3\x5e\x70\xd9\x20\xf2\x85\x73\xff\x00\x24\ \xd0\x4a\x9c\x97\x32\xfa\xe9\xa7\x50\xef\x17\xcb\x7a\x60\xca\xbe\ \xdc\x05\xce\x2a\x02\x56\x93\x29\x79\x75\x09\xc0\x0b\x1c\xf3\xe8\ \x0f\xe7\x53\x34\x5f\x2f\x81\x1e\x5b\xcd\xcb\x00\x76\xfb\x52\xff\ \x00\xce\xb9\xc7\x45\x58\xb5\x46\xa0\xbe\x06\xb4\x7d\xba\xe1\x3e\ \xe7\x19\x06\x4a\x53\x05\xa2\xb7\x1b\x40\x21\x25\x58\x1d\x86\x54\ \x91\xf8\x8a\xb4\xde\xd4\x1a\xa3\x4a\xa6\x3b\x1d\x47\xd2\x37\x8b\ \x32\xde\xf2\xb5\x31\x50\xd4\xda\x1d\x3e\xb9\x04\x00\x48\xf5\xda\ \x7f\x0a\xe0\x63\x70\x15\x54\x9c\xe9\x6a\xbb\x3b\x0e\x4e\x2f\x0d\ \x57\x36\x6a\x6e\xfd\xd7\x26\xd2\x2f\xb7\xbd\xa4\x9b\xdd\xc9\x27\ \xdf\xed\x4b\xed\xf9\xd6\xa8\xd7\xab\xbb\x69\x29\x7a\xf1\x74\x24\ \x65\x5c\x4a\x5f\x23\xdf\xbd\x46\x06\xb0\xd2\xf2\x40\x0c\xdf\x22\ \x79\x86\x7f\x6b\xb9\xbc\x7d\x72\x29\x53\x57\xad\x3b\x22\x2e\xe5\ \xde\x6d\x64\x0f\x43\x25\x03\x18\x3c\x7a\xd7\x2d\xc6\xb2\x5a\xa7\ \xe6\x62\xfd\xf8\xab\x3b\xf9\x92\x78\xda\x8a\xfc\xeb\xcb\x75\x9d\ \x47\x74\x2d\x29\x20\x28\x7d\xa9\xc1\x83\xf9\xf7\xf4\xa5\x82\xfd\ \x7e\x40\x0d\x1b\xcd\xd1\x1e\x5e\xe9\x94\xb1\x81\xe9\xeb\xfc\x2a\ \x39\xa4\x52\xce\xad\xd4\x0c\x58\xb4\xfd\xca\x1c\xeb\xab\xe1\x61\ \x31\xd9\x90\x90\x56\x94\x24\xa8\x9e\x48\x48\xc6\x0f\xad\x31\x5e\ \xba\x83\x67\xb1\x5e\x65\x5b\xa5\x17\xdc\x9b\x11\xc5\xc6\x90\xdb\ \x2d\x6e\xc2\xd0\xa2\x15\xc9\x38\x3c\xe4\x67\x9e\xd5\x2a\x86\x26\ \x7e\xea\x7e\x64\x70\xf1\x13\x7d\x54\xfc\xcb\x11\x5a\x87\x51\x16\ \x83\xa2\xf7\x73\x78\x00\x7f\xfe\x6d\x79\x3e\x9e\xf8\xa5\x11\xb5\ \x16\xa1\x6d\x28\x29\xbe\xdd\x38\xe0\x1f\xb5\xb9\x9e\xdf\x5a\xa4\ \xa4\x75\x75\x4d\xa9\x5f\x63\xb2\x87\x90\xa2\x79\x7d\xcd\x9f\xc1\ \x39\xa6\x2b\x9f\x54\x35\x6c\xdd\xe9\x8a\xf4\x6b\x72\x08\xe3\xec\ \xec\x8d\xc0\x7f\xca\x56\x4f\xe5\x8a\x7c\x3a\x37\x19\x3d\xf4\xf1\ \x63\x63\x80\xc5\xc9\xd9\xe9\xf1\xfb\x1d\x19\x23\x52\x5f\x1b\x6f\ \xc5\x91\xa8\xae\x6c\x36\x15\xc9\x72\x7a\xd0\x93\xf9\xab\x15\x15\ \xbc\xf5\xaa\x35\xa5\x4e\xa4\xea\xeb\xac\xe7\xc2\xb1\xe1\x43\x94\ \xe2\xc6\x7f\xe5\x12\x07\xf1\xae\x70\xb8\x4d\x99\x71\x7f\xc5\xb8\ \x4c\x93\x31\x64\xe5\x45\xe7\x14\xae\x7f\x1a\x4e\x02\x12\xa2\x13\ \xb4\x01\xdf\xd7\xf2\xad\xf4\xba\x26\xda\xd4\xa8\xdf\x86\x86\xda\ \x7d\x17\x67\xd7\x9b\x7e\x1a\x16\xed\xfb\xf4\x85\xd7\x12\x02\x9b\ \xb2\xce\xb8\x40\x41\x3c\x3c\xf4\xc7\x1d\x70\x7d\x06\x76\x83\xf8\ \x1a\xad\xf5\x0e\xa3\xd4\x3a\x9a\x68\x99\xa8\xaf\xb7\x2b\xac\x81\ \xf7\x17\x2e\x4a\xdc\x29\xf8\x4e\x4f\x03\xe9\x4d\x65\x4b\xc7\x95\ \x38\x03\xd5\x55\xe1\x19\x39\x5a\x81\xe3\x00\x67\xb7\xe1\x5d\x4a\ \x54\x29\xd2\x56\x8a\xfa\x9d\x2a\x34\xa3\x47\xdc\x5e\xbc\x4f\x4b\ \xce\xfd\xd0\xe2\xc9\xed\x80\xa3\x83\xf5\xac\xbc\x69\x2a\x46\xd2\ \xf3\xa5\x07\xb8\xde\x71\xc7\xbd\x60\x08\x00\x00\xae\xde\x80\xd0\ \xb2\x10\x08\x1c\x9f\x5c\x9e\xf4\xe1\xaa\x52\xde\xe6\xc5\x4b\x91\ \xbb\x1e\x3b\x98\x1d\xb2\xa3\x5a\x9c\x90\xe8\xec\xea\xc2\x87\x6f\ \x31\xe2\xb5\xf9\xd6\xa2\x12\x14\x00\xef\xf1\x59\x25\x09\x41\xfb\ \xc0\x9f\x91\x53\x6b\x15\x75\x27\x2d\xd9\x8f\x89\x25\xd5\x65\x4f\ \x38\x31\xee\xa3\x59\xa4\x94\x1d\xc9\x5a\xc1\x1c\x67\x35\x22\x85\ \xa2\xb5\x54\xfe\x9f\x5c\x75\xe4\x3b\x4e\xfd\x39\x6c\x92\x22\xcc\ \x99\xf6\x86\x87\x86\xe9\x2d\x80\x9f\x0c\xab\x79\xe5\xe6\xf9\x09\ \x23\xcd\xdf\x83\x88\xa9\x25\x5c\xe4\x9a\x9b\x31\x6e\x76\xd9\xdc\ \x50\xa9\x6f\x81\xe4\x75\xc1\xcf\xf6\xcd\x6a\x76\x4b\xea\x52\xb2\ \xf2\xc9\x57\x07\xcd\xde\xb5\x24\xe4\x8c\x63\xf2\xed\x41\xf5\xf5\ \x35\x29\x58\xa4\xaa\xca\x4b\x73\xd2\xe3\xab\x50\x2b\x71\x64\x8f\ \x9a\x37\x2b\x24\xee\x56\x4f\xae\x4d\x78\x40\xe0\x95\x60\x7e\x75\ \xea\xf6\xe7\x39\x1c\xfb\x54\x95\xbb\xdd\xb0\xf1\x1c\x1c\x07\x17\ \xef\xf7\xab\xcf\x11\xc3\xff\x00\x08\xe1\x1e\x9c\xd7\x83\x39\xc7\ \xf1\xaf\x42\x3b\xee\x56\x3e\x48\xa9\xb9\x56\xd9\xa5\xf5\xa8\x8e\ \x56\xa2\x3e\x4d\x15\x9b\xe9\x40\x1c\x2b\xf0\xa2\xac\x99\x49\x45\ \xb7\xb9\xd5\xba\x67\x8b\x24\x70\x38\x1e\x6c\xff\x00\xda\x34\xea\ \x94\x15\x72\xa3\x84\xd3\x66\x98\x03\xf5\x33\x0a\x57\x00\x6e\xff\ \x00\xf2\x34\xb9\x4e\x17\x32\x3b\x27\xd8\x57\x82\xa9\x77\x36\x78\ \x76\x6c\x2f\x32\xdf\x09\x4e\xe3\x53\x6e\x86\x06\x26\xf5\x1e\x12\ \x24\x36\x8f\xd9\x32\xeb\xcd\x85\x7a\xac\x0c\x0f\xc4\x64\x9f\xc2\ \xa0\x3c\x0e\xdf\xc6\x96\xd9\x6e\xd7\x1b\x15\xe2\x25\xe6\xd0\xe3\ \x68\x9b\x11\x65\x4d\x87\x06\x50\xb0\x41\x4a\x92\xa0\x0f\x20\x82\ \x47\xf1\x1c\x8a\x76\x15\xc2\x9d\x68\xce\x5b\x26\x32\x85\x45\x0a\ \x91\x94\xb6\x4c\x7b\xb5\x45\x77\x55\x75\x10\x46\xb9\xcf\x9a\xe3\ \xb3\xee\x4b\xf1\xb7\xbc\xa2\x94\x80\x55\x90\x94\x93\x84\xe1\x20\ \xa4\x71\xc0\xa9\x74\x3b\x65\x8e\xfd\xa8\xf5\x5e\x96\x67\x4e\x46\ \xb7\x7e\xa9\x61\xc5\xdb\xe6\x34\xfa\xd4\xea\x94\xd1\xd8\xaf\x13\ \x71\xc1\x0a\x24\x1f\x81\x9f\x5e\x6a\x0b\x7a\xd5\x66\x75\xd1\xab\ \xc5\xb3\x4b\x46\xb0\x5d\xda\x98\x26\x2a\x5b\x77\x05\xc8\x43\x8e\ \x0c\x92\x3c\x22\x94\x84\x82\xa3\x93\xc9\xf6\xf5\x34\xba\xef\xd4\ \x1b\x83\xd1\x2e\xcf\x5b\xf4\xbc\x0b\x4d\xc6\xf0\xd1\x62\x7d\xc5\ \x13\x96\xee\xe4\x2b\xef\xf8\x6d\x94\x80\xd9\x3e\xf9\x35\xd3\xa7\ \x3a\x09\xcb\x89\x25\x2b\xbf\x1b\xab\x6c\xb4\xed\x36\x42\xa5\x25\ \x7c\xcd\x3d\x7e\x68\x76\x7d\x16\x7d\x3b\xa3\x34\x75\xc1\xcd\x3d\ \x16\xef\x26\xfd\x20\x3a\xfb\xb2\x1e\x5a\x3c\x26\x42\x93\x80\xde\ \xd2\x30\xac\x29\x38\x3e\xe0\xe7\xd3\x12\xad\x45\xa7\x22\x5f\xba\ \xc7\xa8\xe4\xcd\x8e\x25\xb5\x6c\xb5\x35\x21\x31\x94\xef\x84\x97\ \x9c\xd9\xe4\x4a\x95\x91\x84\xf0\x72\x72\x07\xbf\x15\x56\x5b\xb5\ \xc4\x88\xfa\x5a\x06\x9f\xb8\x69\x78\x17\xa6\xed\x6e\x97\x6d\x92\ \x1d\x98\xb6\x4b\x07\x39\xda\xe2\x12\x0f\x88\x9c\xfa\x65\x3c\x00\ \x3e\x69\x53\xbd\x48\xbe\x2f\x58\xc9\xd5\x1f\xaa\x20\xa9\x53\x61\ \x26\x14\xeb\x7b\xaf\x15\xb5\x25\xb0\x90\x15\x85\x6d\x05\x24\x91\ \x91\xc1\xc6\x71\xcd\x68\x85\x6c\x32\x82\x8b\xb5\xb4\xd2\xdd\xdc\ \xfe\x23\x23\x5a\x86\x54\x9e\xda\x69\x6e\xee\x7f\x11\xc7\x5e\xda\ \xed\xa8\xd2\x56\x4b\xc2\x63\x5a\x6d\x97\xa7\x5d\x5b\x17\x1b\x7c\ \x09\xc9\x7d\xb4\xfd\xf2\x85\x8c\x2d\x58\x05\x28\xcf\x7f\xde\x00\ \xf2\x29\x7e\x95\x21\x1d\x0a\xd6\x8b\x57\x61\x2d\x92\x7f\x36\xaa\ \x07\x25\xeb\x2c\x95\x37\xfa\xa3\x46\x31\xa7\xb6\xe4\xad\x49\xb8\ \xae\x52\x9c\x1e\x83\xcc\x94\x80\x07\xd0\x9f\x9a\x78\x89\xa9\x64\ \xc0\xd1\xb7\x7d\x26\x8b\x52\x1f\x62\xec\xe2\x1c\x5c\xb3\x2b\x61\ \x67\x69\x4f\x1e\x1e\xc3\xbb\x3b\x7b\xee\x1d\xeb\x27\x1e\x94\x71\ \x12\x7a\x25\x95\xad\x3b\x6d\xe0\x84\x2a\x90\x55\x5c\xb9\x59\xaf\ \x2f\x04\x59\x8b\xd1\xf6\x5b\x3d\xea\xdd\xa7\xee\x96\x9b\x4f\xea\ \xd7\xad\xbe\x24\xeb\xac\x8b\x92\x5a\x90\xdc\x93\xbb\x1b\x10\x56\ \x0e\xdc\xa4\x0e\x12\x47\x9b\xbf\x07\x31\xed\x19\x67\xb6\x4e\xd2\ \xb7\x26\xac\x56\xfb\x3d\xf7\x55\xc4\x9a\xa4\x39\x12\xe1\x21\x49\ \x05\x84\x9c\x05\x36\x94\xa8\x64\x1e\xf9\xce\x33\x91\x9e\x05\x46\ \x27\x6a\xa6\xaf\x4c\x42\x46\xa8\xd1\x16\xeb\xf4\xd8\x51\xd3\x19\ \x99\xff\x00\xac\x57\x1d\x4a\x69\x27\xca\x16\x80\x95\x6e\x39\x24\ \xe4\x11\xdc\xf6\xad\x1a\x73\x53\x44\xd3\x53\x21\x4f\x67\x43\x43\ \x99\x75\x82\x56\x63\xce\x37\x57\x1a\x09\x2a\xdc\x39\x6b\x61\x07\ \x09\x56\xde\xe3\x20\x7b\xd6\x8e\x36\x15\xd4\x56\xb5\xbc\xf9\x77\ \x6f\xf3\x1c\xea\xd0\xce\xad\x6b\x7a\xee\xdf\xe6\x4a\x34\x45\xb2\ \x05\xcf\x4d\xde\x9b\xb7\xd9\x6d\x13\xf5\x9b\x13\x14\x3f\x54\x5c\ \x5f\x5b\x69\x6d\x90\x46\x42\x13\x90\x4e\x39\x19\x27\xb8\xe4\xfa\ \x1e\x77\xea\xee\xad\x9b\xa7\xa7\x4a\x86\xdc\x44\x40\xb9\x38\xf3\ \xa1\x51\xb0\x48\x88\x02\x88\x29\x01\x59\x27\x07\xca\x33\xed\x56\ \x8c\x4d\x7f\x1e\xd7\x7e\x46\xa2\xb8\xe8\xa8\x97\x6b\xfa\x25\xb9\ \x29\xb9\xe2\xe8\xe4\x74\xa5\xc5\x95\x1f\xea\x82\x54\x08\x1b\xb1\ \x8c\x8c\x81\xce\x6a\x97\xd6\xfd\x64\xfe\x91\xe9\xdd\x5f\x63\xba\ \x69\x0b\x2c\xbb\x8d\xf6\xec\x26\xa2\xf3\xb7\x0e\xc5\x4a\x4a\x7f\ \x66\x80\x41\x38\xc2\x30\x0e\xe1\x80\xb5\xe4\x1d\xd9\xa7\xd0\xa1\ \x46\xba\x8e\xda\x79\xf8\x9a\x30\xb4\x29\xd7\x71\xee\xf5\xa9\x3b\ \xfd\x02\xd9\x45\xc3\xa9\x9a\x93\x51\x4e\x02\x65\xca\xdf\x65\x71\ \xd8\x9e\x37\x9c\x85\xa9\x60\x15\x8f\x5c\xe3\xcb\xf4\x59\x1e\xb5\ \x15\xfd\x1a\xd9\x57\x53\x7a\xeb\x02\xd9\xaf\x64\x4a\xd4\x11\x26\ \x22\x63\xef\x37\x31\xe5\x2d\x25\xc2\xd2\x95\xbc\x0c\xe0\x1c\xe0\ \xf1\xec\x2a\x15\xd1\xbe\xa2\x5e\xfa\x5d\xad\x59\xd4\xf6\x46\xd8\ \x79\x61\xa5\x47\x93\x19\xf2\x76\x48\x65\x58\x25\x04\x8e\x41\xca\ \x52\x41\xf4\x20\x70\x46\x41\x9a\xe9\xae\xb1\xe8\xfd\x2d\xd4\xdb\ \x6e\xb8\xd2\xdd\x29\x4d\xa9\xe8\xff\x00\x69\x32\x63\x26\xfc\xe3\ \x89\x90\x5d\x41\x4f\x94\xa9\xbc\x34\x94\x92\x48\x01\x27\xdb\x81\ \x5d\x75\x6b\x58\xee\x64\xcb\xb2\x27\x3d\x33\xd0\x7a\x23\x5c\xf5\ \x33\x53\xc2\x63\x45\xc6\x8d\x67\xd0\x91\x24\x34\x88\x9f\x6f\x50\ \x55\xd6\x42\x5c\x52\x5b\x5c\x87\x54\x46\xdc\xf8\x6a\x27\x04\x24\ \x64\x0e\xc3\x96\xce\xb0\xf4\xfe\xc6\x34\xa6\x85\xd4\x96\x9d\x23\ \x68\x87\xaa\x66\xdc\xc4\x1b\xb6\x97\xb3\xdc\xc4\xa6\xdf\x25\x4b\ \x2d\xed\xf0\xdc\x59\x4e\xe4\xb7\xc9\x49\xe3\xc4\x19\x39\x15\x5e\ \xe8\x2e\xae\xdc\xf4\x77\x51\xaf\xfa\xaa\x2d\xa2\x24\xc8\x3a\x81\ \x72\x13\x71\xb5\x49\x70\x94\x3a\xcb\xcb\x2b\x28\xde\x06\x41\x19\ \xc6\xec\x7b\xf1\xcd\x7b\x1b\xa8\xda\x56\xc1\xac\x6c\x3a\xa3\x40\ \x74\xe9\xad\x3b\x2e\xd5\x2c\xc8\x58\x91\x79\x7a\x70\x90\x92\x0a\ \x4b\x7e\x64\xa4\x20\x60\x9e\x40\x27\x9e\xf4\x5d\x58\x32\xca\xe5\ \xdc\xe7\x4b\x6d\x97\xbe\x92\x6b\xe9\x3a\xab\xa6\xfa\x73\x46\xde\ \xf4\xed\xb4\xcf\x80\x6c\xf7\x4f\x1d\xf4\xec\x69\xd7\x36\x3e\x80\ \xea\xf1\x90\xd8\x1e\x6e\xfb\x89\x00\x14\xd6\x1d\x5c\xba\xdb\x9e\ \xfd\x18\xfa\x6d\x0e\x1e\x8c\xd3\xe8\x55\xf8\xba\xc4\x66\xf6\xb8\ \x11\x01\xd7\x32\x0b\xad\x61\x5f\x78\xa9\x44\x92\xac\xf2\x6a\x03\ \x70\xfd\x21\xa0\x93\xad\xd1\x66\xe9\xcc\x6b\x60\xd6\x96\xd9\x11\ \xee\xae\x7e\xb6\x71\xe7\x57\x21\xc4\x29\x08\x78\x15\x23\x01\x08\ \x0e\x38\x7c\x30\x91\x92\xbf\xbc\x30\x05\x30\x49\xeb\x04\x0b\xa7\ \x47\x6d\x1a\x06\xfb\xa2\x9b\x9f\x2a\xc6\xdb\xa9\xb4\xdd\x1a\xba\ \x38\xc1\x8e\xb5\x03\xb5\xc5\x34\x12\x42\xca\x72\x0e\x0a\x80\x3b\ \x47\x1d\xea\x6e\x88\xcb\x2e\x67\x40\xcb\xe8\x9f\x4f\xad\xb7\xe9\ \x1a\x02\xe5\xa6\x6c\xb0\xec\xc2\xca\x14\xde\xa9\x93\x79\x42\x27\ \x19\xe7\x1e\x6f\x04\xbb\x90\x8f\x5c\x6d\xdb\xc6\x39\x06\xb9\x87\ \xa0\xd6\x58\x17\x8e\xb5\xe9\x9b\x25\xea\x1b\x53\x20\xc8\xb8\xa5\ \x89\x0c\x2c\xe5\x0e\x27\x9c\x83\x83\xc8\xe2\xa5\x3a\xc3\xac\x7a\ \x63\x5c\x88\xf7\x2d\x75\xd2\xc8\x97\x8d\x4a\xd4\x44\xc5\x55\xce\ \x3d\xe5\xe8\x8d\xbc\x13\x9d\xaa\x5b\x28\x49\xc9\xc9\x3c\x85\x0e\ \xf8\xe0\x00\x2a\xbe\xe9\x8e\xa7\xfe\x85\xeb\xeb\x36\xab\xfb\x07\ \xdb\x8d\xb2\x4a\x64\x7d\x9b\xc5\xf0\xbc\x5c\x03\xe5\xdd\xb5\x58\ \xfa\xe0\xd5\x5b\x45\xe3\x19\x59\xdc\xea\x0b\x16\x86\xe9\x55\xc2\ \xf3\xd5\x1d\x29\x23\xa7\xf1\xc4\x6d\x18\xd0\x96\xc4\xc4\x4e\x78\ \x4a\x92\x52\x95\xad\x69\x5a\x81\xc0\x49\x28\xda\x02\x40\xc2\x4f\ \xbf\x35\x19\xbe\xf4\xf3\x49\xeb\xae\x93\x74\xbb\x56\xd9\xf4\xfc\ \x3d\x2d\x71\xd4\x9a\x89\x36\x69\x8d\x40\x5a\xcb\x5e\x1a\x9d\x7d\ \x1b\xc0\x5a\x8f\x98\x06\x32\x33\xdf\x71\x04\x9c\x0a\x86\xda\x7a\ \xf4\x6d\xda\x93\xa8\xf7\xaf\xe8\xa0\x77\xfa\x6f\x1d\x4c\x96\xbf\ \x58\xe3\xec\x39\x4a\xd3\x9c\xf8\x5f\xb4\xfb\xf9\xc6\x13\xda\x9a\ \x1f\xeb\x0c\xd1\xd1\x9d\x23\xd3\xfb\x75\xa1\x50\x65\xe9\x8b\xc0\ \xbb\xc6\xbb\x09\x7b\x8a\xdc\x0e\x3e\xb4\x8f\x0b\x67\x97\x05\xe1\ \xce\xe3\xf7\x3b\x73\xc0\xda\x05\x19\xa7\xa1\x75\xc2\xd0\x9d\x30\ \xd4\xbd\x63\xd4\xdd\x10\x8f\xa1\xa3\xdb\x1b\xb5\xdb\x37\xc1\xbe\ \x35\x25\xd5\x4c\xfb\x42\x52\xd1\x2b\x5e\x55\xb5\x49\xcb\xa7\x8c\ \x11\xe5\xed\xc8\xdb\x10\xb4\x69\xed\x0f\xa5\xbf\x46\x5b\x27\x51\ \x2f\x5a\x26\x0d\xfa\xf4\xcd\xd6\x4d\xbd\x4d\xbe\xfa\xdb\x69\xd2\ \xa7\x56\x02\x9c\xdb\xca\xf6\x25\xb2\x12\x3f\xbd\x9f\x41\x4d\x93\ \x3f\x48\xc2\x9b\x8d\xdb\x55\xda\x74\x05\xb6\xd7\xae\x2e\xf0\x04\ \x29\x77\xc6\xee\x2e\x2d\x01\x3b\x52\x9d\xed\xc7\x23\x08\x56\x10\ \x8c\x1d\xc7\xee\x8c\xe7\x9c\xc2\xa7\x75\x47\xed\x1d\x01\xb7\xf4\ \xa3\xf5\x10\x42\x61\xdc\x95\x3b\xf5\x97\xdb\x33\xbf\x2a\x70\xec\ \xf0\xb6\x71\xfd\x67\x7d\xde\x9d\xa8\xba\x0c\xb3\xe6\x5f\x9a\x2f\ \xa4\x5a\x4b\x4f\xe9\xae\x9f\xb3\x79\xd1\xd6\x5b\xdb\x1a\x8a\x21\ \x97\xa8\x2e\xd7\x1b\xc2\x63\x39\x09\x2b\x6d\x2a\x6d\x2c\x20\xba\ \x92\x42\x77\xe0\x94\x82\x4e\x3b\xf2\x31\xcb\xfd\x4b\xb2\x42\xd3\ \x7d\x41\xbf\x58\xad\xd2\xd3\x32\x0c\x39\xce\x35\x19\xf4\xac\x2b\ \xc4\x68\x1f\x21\xc8\xe0\xf9\x48\xed\x53\x96\xba\xbd\x66\xbc\x68\ \x4b\x16\x96\xea\x1f\x4f\x58\xd5\x23\x4f\xb4\x63\x5a\xe6\xb5\x75\ \x72\x0b\xad\x33\x80\x03\x6b\xda\x95\x05\x80\x12\x81\xe9\xc2\x47\ \xae\x49\x64\xb7\xf5\x0a\xd1\x07\x40\x6a\xbd\x25\x1b\x40\xd9\xc0\ \xbe\x4e\xfb\x4c\x49\x8b\x71\x4e\x3d\x6d\x6c\x10\x52\xca\x14\xa0\ \x54\xb0\x90\x30\x95\x15\x03\xe6\x51\x3b\xb3\x43\xb3\x2d\x0c\xe9\ \xea\x59\xff\x00\xff\x00\x0f\x24\xa9\x3d\x6a\xbb\x8c\x9d\x87\x4e\ \x3e\x42\x4f\xa7\xfb\x4c\x6a\xd9\xd3\x7b\x94\xcd\x51\xfa\x1d\xf5\ \x16\x2e\xa5\x95\x22\x6b\x56\x79\x6c\xc9\x80\xe4\xb7\x0b\x8a\x65\ \x64\xa0\xe1\x0a\x3c\x81\x90\x78\x1f\xdb\x57\xbd\x56\x9f\xa3\xe7\ \x54\x4f\x48\xf5\xa4\xad\x48\x9b\x18\xbe\x7d\xaa\xdc\xb8\x3e\x01\ \x99\xf6\x7d\xbb\x9c\x69\x7b\xf7\x6c\x5e\x71\xe1\xe3\x18\xfd\xee\ \xfc\x52\x9d\x5f\xd5\x98\xd3\x3a\x70\xbe\x9e\xe8\xbd\x1f\x1f\x49\ \xe9\xd9\x32\x84\xb9\xc9\x17\x05\xcc\x91\x2d\x69\xc1\x01\x4e\x28\ \x27\xca\x0a\x52\x71\x8f\xdc\x4f\x3d\xf3\x09\xe8\x0e\x2f\x3e\x9d\ \xc7\x43\xb7\xd1\x5d\x0b\xa7\xaf\x36\x6d\x13\x7f\xd2\x56\x37\xad\ \x52\xac\x85\xeb\xae\xa3\x97\x79\x43\x33\x1a\x9a\x77\x01\xe1\xb6\ \x5d\x0a\xd8\x0a\x06\x30\x82\x9f\x30\xc9\x38\x56\x6b\x8d\x3d\xa4\ \x34\x56\x9d\xfd\x1c\xef\x7a\xd2\xeb\xa5\xe0\x6a\x1b\xbd\x87\x53\ \x3b\x09\x82\xf3\xaa\x43\x32\x52\x16\xdb\x40\x39\xb1\x59\x52\x06\ \xe5\x28\x00\x79\x38\xc9\x23\x35\x11\xbc\xf5\x8b\x4f\x6a\xeb\x55\ \xa4\x75\x13\xa6\x51\xb5\x2d\xe2\xd7\x11\x30\x99\xb9\x35\x78\x7a\ \x11\x71\xa4\xf2\x90\xe2\x10\x93\xb8\xe4\x93\x90\xa1\xc9\x38\xc6\ \x6a\x69\xd3\xad\x61\xa0\xad\x5f\xa2\x3d\xe2\xd5\xa9\x22\x5b\xef\ \x2f\x2e\xff\x00\xe3\x0d\x3a\x2f\x3f\x64\x92\xea\x0a\x99\xda\xa1\ \x8c\xb9\xb5\x38\x27\x21\x3c\x84\x9e\x6a\x74\x7b\x15\xfd\xc5\xab\ \x2c\x2d\x21\xa2\xf4\xce\x9c\xfd\x26\x3a\x6f\x7f\xd2\xb6\xb4\x5a\ \x61\x6a\x4d\x3d\x22\x6a\xe0\xa1\x65\x49\x65\xcf\xb3\x92\x76\xe7\ \x90\x08\x5a\x46\x3b\x64\x1a\x80\x49\xd3\x3a\x5b\x4d\xe8\x4d\x7b\ \xd5\x9b\xe6\x9b\x8b\xa9\xae\x6e\x6a\xd9\x56\xf8\x10\xe5\xba\xb4\ \xc7\x65\x3e\x39\x0a\x5a\x92\x82\x0a\x89\xca\xbd\x7d\x13\x8c\x73\ \x51\x48\xff\x00\xa4\x25\xcc\x75\x9e\xd3\xd4\x19\x5a\x72\x33\x91\ \x2c\xf0\x17\x6f\xb7\xd9\xa3\xca\x2d\x36\xcb\x25\x0a\x48\x1e\x21\ \x42\xb2\x7c\xd9\x27\x6f\x38\x03\x8c\x53\x6d\x83\xac\xc9\x66\xd7\ \xa9\xf4\xee\xa5\xd1\xec\xea\x0d\x2f\xa8\x2e\xae\x5d\x55\x6f\x54\ \xf5\xc7\x76\x2b\xca\x5e\xef\x23\xe9\x49\xe3\x84\xe7\xcb\xce\x3d\ \x32\x72\x5d\x13\x92\x77\x2e\x28\x3d\x3c\xe9\xac\x4e\xae\x74\xd6\ \xea\xbd\x33\x1d\x3a\x77\xa8\x56\x37\x1d\xfd\x59\x21\xc5\x38\x88\ \x92\xbc\x26\x9e\x49\x49\xce\x46\x77\xa1\x00\x67\x00\x93\xd8\x76\ \xaf\x35\xb6\x80\xb2\x68\x1e\x88\x6a\x59\x17\x6b\x5b\x2e\x5f\xa6\ \xea\xc7\x6d\x56\xb7\xdc\xc9\x5b\x31\x58\x57\x99\x69\xf4\xf3\x6c\ \x52\x73\x8f\xde\x1f\x83\x3c\xde\xa3\x5f\x3a\x91\xd5\x5d\x2d\x32\ \x2b\xda\x7f\x48\x46\xd3\xa9\x69\x36\x68\xf3\x67\x96\x62\x45\x43\ \x24\x2c\x25\x6f\x2c\x72\xa5\x6c\x4a\x73\x81\x9c\x24\x62\x9e\xbf\ \x4c\x4e\xa3\xc1\xd6\xba\x86\xc5\x68\xb3\xcf\x83\x32\x3d\x9e\x19\ \x33\x1e\xb7\xaf\x74\x47\x26\xbc\x41\x7b\xc2\x57\xef\xa4\x6d\x18\ \x57\xc9\xf9\xa8\x76\xb3\x2d\x1c\xd9\x92\x66\xbf\xd1\x9f\xa7\x16\ \xad\x4b\xa5\xf5\x7e\xb0\xb8\xda\x63\x5f\xdf\xb1\xb2\x86\xed\xd6\ \xd9\x53\x04\x78\xcf\x48\x58\x27\x73\xab\x2a\x40\x09\x48\x09\xe0\ \xa8\x03\x93\xec\x2a\x7e\xee\x87\xe9\xad\xbb\xab\x3d\x36\x7e\x56\ \x9e\xb0\xb7\x1b\x54\x46\x72\x15\xea\xc8\xc4\xe4\xca\x66\x14\xdd\ \x89\x2d\xa9\x0a\x4a\xd5\xf7\x96\xa0\x9e\x0e\x38\xf5\x26\xa8\xde\ \x92\x75\x2a\x4e\x84\x8b\x7b\xb4\x4b\xb2\x44\xd4\x3a\x7e\xfd\x1c\ \x47\xb9\xdb\x24\x3a\xa6\x7c\x44\xa7\x20\x14\x38\x90\x4a\x14\x02\ \x94\x33\x83\xdc\x1e\xe0\x10\xd3\xa8\xf5\x3e\x9d\x37\xdb\x55\xd7\ \x44\x68\xe3\xa5\x1c\xb7\x3a\x1f\x1b\xae\x8e\xcc\x53\x8e\xa5\x49\ \x52\x09\x52\x82\x76\xed\x29\xec\x90\x3b\xf2\x7b\x54\x26\xac\x5a\ \x70\x9e\x76\xcb\x63\x50\xf4\xde\xcb\xa4\xba\x77\xad\xc4\xfb\x54\ \x37\x6f\x33\xb5\x88\xd3\xfa\x7d\xd7\x89\x25\x96\x92\xad\xe5\xd4\ \x8c\xf6\x28\x51\x4e\x7d\x08\x1f\x15\x68\xca\xe8\xb7\x4f\xed\xb7\ \xf9\x1a\x0a\xe3\xa6\x6c\xb0\xec\xc2\xca\x14\xde\xa8\x93\x79\x42\ \x27\x19\xe7\x1e\x6f\x04\xbb\xb8\x23\xd7\x1b\x76\xf9\x71\x92\x0d\ \x50\x5f\xa4\x27\x5c\x24\xf5\x61\xdb\x3f\xd9\xf4\xf2\x34\xeb\x16\ \xc5\xba\xf7\x86\xdc\xcf\x1c\xbc\xf2\xf6\x8f\x10\x90\xda\x30\x40\ \x40\x03\x83\xdc\xf3\x5b\xb5\x7f\x58\xb4\xce\xba\x44\x7b\x96\xbb\ \xe9\x6c\x4b\xc6\xa4\x66\x22\x63\x2a\xe7\x1e\xf2\xf4\x46\xde\x09\ \xfb\xaa\x5b\x28\x49\xc9\xc9\x3c\x85\x0e\xf8\xe0\x00\x2a\xdd\x51\ \x6d\x54\x69\x32\x5a\xe5\x8f\x43\xe9\x3f\xd1\x77\x47\xf5\x12\xe3\ \xa2\x60\xdf\x2f\x92\x67\xcc\xb6\x2c\x3d\x21\x48\x69\x6a\x53\xf2\ \x30\xea\xc2\x7e\xf9\x42\x23\xed\x48\xed\xe7\xcf\x38\x15\x28\x83\ \xd2\xad\x1f\xac\x2f\x9d\x19\xd4\x56\x9b\x04\x28\x96\x4b\xc4\x17\ \x5d\xbf\x32\xde\x43\x45\xd8\xed\x85\xa8\x2b\x9e\xc5\x61\x68\xe3\ \x1d\xaa\x8f\xbe\xf5\x44\xdd\x3a\x03\xa7\x7a\x52\x6c\x49\x65\x36\ \x6b\x8a\xe7\x7e\xb2\x13\x37\x78\xdb\x95\x21\x5b\x3c\x2d\x83\x6f\ \xfb\xa3\xbe\xe3\xf7\x7b\x73\xc5\xb3\xa2\xba\x88\xd6\x81\xfd\x16\ \xae\x96\x3b\x86\xa6\xd3\x13\xa6\xcf\x88\xb4\x58\x22\xdb\xa7\x7d\ \xa6\x74\x63\x29\x27\xc5\x0f\x20\x7f\x51\xe1\x85\x93\xcf\xef\x6e\ \x1c\xf1\x91\x58\x89\x66\x5a\xf3\x6c\x40\xe6\x95\xd2\x3d\x47\xe8\ \x85\xea\xf1\xa3\xb4\xe4\x1b\x7d\xea\x06\xb1\x4c\x46\x56\xc2\x15\ \xbc\xc3\x90\xf0\x43\x09\x23\x3c\x81\xe3\xa0\x76\xcf\xec\xc9\xa9\ \xee\xb7\xe8\xde\x80\xbb\x75\x0f\xa7\x3f\xd1\x0b\x2c\x66\xad\x08\ \xbd\xcd\xb5\xdf\x5a\x19\xda\xea\xe2\x82\xb5\x25\xce\x4e\x32\x18\ \x74\x77\xe7\x70\xed\x54\x3f\xe8\xef\xd6\x77\xba\x49\x22\xf2\x55\ \xa7\x13\xa8\x22\x5c\xc3\x05\x51\xd5\x33\xc0\xf0\xdc\x65\x4a\x52\ \x16\x0f\x86\xbc\x9f\x31\xf4\x1e\x87\x3c\x53\x9f\x4f\x7f\x48\x3b\ \xce\x93\xd0\x9a\x9f\x4e\xbf\x63\x45\xc6\x6d\xea\x54\xa9\xac\x5c\ \x15\x2c\xb6\x60\xbf\x21\xa2\x85\xad\x28\x28\x56\xee\x49\x56\x37\ \x0e\xe7\xde\x84\xe3\xcc\x24\xa7\xc8\xb4\xf4\x9d\xef\x4d\x46\xfd\ \x15\xba\xad\x7b\x89\xa6\x60\xce\xd3\xe8\xd6\x2a\x54\x2b\x5a\x9c\ \x5a\x18\x53\x5e\x24\x14\xb0\x14\x50\x42\xb0\x3c\x8a\x20\x1e\x70\ \x47\xad\x25\xbf\xf4\x43\x44\xea\x3e\xae\xf4\xd1\x16\xeb\x67\xea\ \x5b\x56\xa5\xb2\xaa\xe7\x74\x83\x19\xd5\x14\x0f\x0d\xb4\x2c\xa5\ \xb2\x4e\x46\xe2\xb4\xa4\xe3\x1c\x02\x47\x35\x49\xd8\x7a\x9e\x6d\ \x1d\x01\xd4\x3d\x28\x36\x10\xf0\xbd\x5c\x51\x3b\xf5\x8f\xdb\x36\ \x96\x76\xaa\x39\xd9\xe1\x6c\x3b\xbf\xdc\xfd\xf7\x0f\xbd\xdb\x8e\ \x64\x37\xaf\xd2\x12\xf0\xf5\xf3\x40\x5e\xec\x96\x26\x6d\xb3\x34\ \x74\x03\x08\x78\xd2\xbc\x74\x4d\x42\x9b\x43\x6a\xdc\x90\x84\x14\ \x02\x12\x78\x04\xe3\x3d\xf8\xa9\xcc\x88\x70\x92\x64\xcf\xac\x3d\ \x3e\xd2\x4a\xe9\x0e\xa3\xbc\x8d\x2d\xa7\xf4\x86\xa0\xb1\xdd\x36\ \xdb\x58\xb7\xde\x5b\x92\xb9\xd0\xb7\xa1\x19\x71\x21\xd5\xf9\xc0\ \x51\x51\xcf\x9b\xc9\xd8\x64\xd2\xae\xb6\xe8\x2d\x0d\x6c\xd6\xba\ \x63\xa7\xba\x77\x47\x43\x89\x3f\x59\xa2\x0a\xdc\xba\x97\xd7\x9b\ \x7a\x4b\xa8\x42\xbc\x16\xf3\xb4\x64\x21\x65\x44\xe4\x9d\xff\x00\ \x02\xa9\xae\xa3\x6b\x4d\x0b\xaa\xa3\xce\x93\x68\xe9\x7b\x76\x0b\ \xd4\xe7\xfc\x77\xa7\xb7\x7b\x75\xf4\x25\x65\x5b\x97\xb1\x92\x84\ \xa5\x21\x47\x3c\x12\x40\x07\x8e\xc2\x9c\x7a\xc1\xd6\x39\xda\xef\ \x58\xe9\xad\x51\x6f\xb3\x7e\xa1\x9b\xa7\xa3\x32\xd4\x62\x25\xfd\ \xa3\x2e\x34\xe1\x71\x2e\x7d\xc4\xe3\x9c\x71\x83\xdb\xbd\x0d\xa0\ \x50\x95\x91\x7b\x6b\x4e\x92\x68\x36\xa1\xeb\x5d\x2c\xe6\x93\xb1\ \x69\xf8\xd6\x7b\x6a\x5d\xd3\xf7\xaf\xd7\x68\x5c\xd9\x72\x12\xd6\ \xe5\x07\x5a\x2e\x95\x79\x95\xc6\x14\x90\x31\xdb\xd3\x1c\x69\xb4\ \x0c\x1c\x0e\x7f\x8d\x5b\xbd\x44\xea\xa6\x91\xd7\x6b\x9d\x79\xbc\ \xf4\xa2\x30\xd5\x93\x62\xf8\x4e\xdd\x63\xde\x9f\x6d\x90\xe8\x6f\ \x62\x5e\xfb\x38\x4e\x37\x27\xca\x70\x56\x41\xda\x33\x9e\x73\x1c\ \xd7\x5a\xee\x0e\xa5\xd0\xda\x57\x4d\xb1\xa3\xed\x56\x77\xac\x2c\ \x29\x97\x6e\x11\x87\xed\x66\x92\x00\xdc\xae\x06\x32\x46\xe3\x92\ \xac\xa8\x92\x31\x9c\x54\x49\xae\x45\xa1\x19\x25\xaa\x20\xb9\x52\ \x7e\xe6\x73\x8f\x53\x58\xad\x41\x5c\xe3\x3f\x5a\xd8\x1b\xe3\xd3\ \x93\x41\x4a\x02\xbd\xaa\xb7\x43\x1c\x59\xe5\xae\x03\xb7\x3b\xc4\ \x2b\x6b\x40\x97\x65\x48\x6d\x84\x00\x39\x2a\x5a\x82\x47\xf1\x34\ \x55\xf5\xfa\x14\x74\xda\x46\xae\xea\x9c\x7d\x4d\x29\x8f\xff\x00\ \x45\xd3\xcb\x12\x16\xb2\x38\x72\x40\x1f\xb2\x40\xe3\x9c\x1f\x39\ \xfa\x0f\x7a\x29\xb1\xd8\xcb\x53\x47\x62\x4f\xa7\x54\x55\x66\x8e\ \x91\xd8\x6e\xff\x00\xf2\x34\xe4\x3b\x0a\xed\x1a\x2b\x87\x2e\x83\ \xbb\xbe\x7f\x2f\xc9\xc3\xfd\x27\xfe\xfc\xbf\x27\x17\x2b\x9a\xf1\ \x27\x1c\x57\x69\x51\x55\xfd\x0b\xff\x00\x4f\x2f\xc9\x1f\xa4\x7f\ \xdf\x97\xe4\xe2\xd3\xea\x3d\x28\x90\x71\x08\x8f\x73\x5d\xa5\x45\ \x1f\xa1\x7f\xe9\xe5\xf9\x0f\xd2\x7f\xef\xcb\xf2\x70\xfa\x4e\x07\ \x35\xb1\xa0\x54\xad\xc7\xb0\xae\xdc\xa2\xaf\xfa\x2f\xfd\xf9\x7e\ \x43\xf4\x8f\xfb\xf2\xfc\x9c\x5c\xca\xb6\xf0\x06\x4d\x6d\x71\x59\ \x50\x1e\xb5\xd9\x94\x55\x1f\x40\xdd\xdf\x89\xe5\xf9\x27\xf4\x9f\ \xfb\xf2\xfc\x9c\x64\xd9\xda\xb3\x5a\x26\x2f\x83\x9e\x31\x5d\xa9\ \x45\x0b\xa0\xac\xef\xc4\xf2\xfc\x87\xe9\x3f\xf7\xe5\xf9\x3e\x77\ \x6b\xa9\xdf\x63\xb6\xca\x92\x14\x01\x6d\xb3\x8f\xa9\xe0\x7f\x3a\ \xa1\x11\x95\x3a\xa5\x7a\xe7\xd6\xbe\xc6\x51\x5d\x4c\x2e\x11\x61\ \xe2\xd5\xef\x73\xa1\x84\xa0\xb0\xea\xd7\xb9\xf1\xec\x82\x71\x80\ \x73\xf4\xaf\x12\x15\xef\xc5\x7d\x85\xa2\xb4\x64\x37\xf1\xb5\xbd\ \x8f\x8f\x67\x8c\x1c\x63\x3c\xf3\x5e\x82\x08\xef\xe6\xaf\xb0\x74\ \x51\x90\x38\xfd\xc7\xc7\xac\x71\x40\x49\xc5\x7d\x85\xa2\xa7\x20\ \x71\xbb\x8f\x8f\x84\x64\x70\x70\x6b\xd0\x09\x1c\x02\x7d\x39\x3e\ \x95\xf6\x0a\x8a\x8e\x19\x3c\x7e\xe3\xe3\xee\x14\x08\x0a\x38\x03\ \xd7\x15\xe8\x27\x80\x08\xaf\xb0\x34\x51\xc3\x27\xda\x3b\x8f\x90\ \x18\x24\x7d\xd0\x4d\x79\xb4\xfb\x1f\x73\xe9\x5f\x60\x28\xa8\xe1\ \xf7\x83\xc4\x27\xc8\xf8\xff\x00\xb4\x15\x77\xfc\xeb\xcc\x6d\x00\ \x03\x8c\x73\x8a\xfb\x03\x45\x4f\x0f\xbc\x3d\xa3\xb8\xf8\xfc\x8c\ \x9c\x11\xc1\xf9\x15\xe8\xc2\x95\xc2\x52\x33\x5f\x60\x28\xa3\x86\ \x0b\x11\x6e\x47\xc8\x15\x0c\x63\x90\x4f\xf6\xab\xc2\x93\xff\x00\ \x2b\x8e\xfe\xb5\xf5\xfe\x8a\x8e\x1f\x79\x2f\x13\x7e\x47\xc8\x21\ \xbb\x1b\x4f\x6f\x7c\xf6\xa3\x82\x0a\x47\xf0\x3d\xeb\xeb\xed\x14\ \x70\xbb\xc3\xda\x7b\x8f\x90\x24\x01\x94\x9c\xfb\xf3\xef\x5e\xe5\ \x58\x20\x13\x8a\xfa\xfb\x45\x1c\x3e\xf0\xf6\x9e\xe3\xe4\x0a\x54\ \x40\xe1\x47\xbf\x3c\x56\x1b\x95\x93\xc7\x7f\x5e\x6b\xec\x0d\x14\ \x70\xc3\xda\x7b\x8f\x8f\xe0\x10\xac\xf6\x3d\xfb\x77\xaf\x54\xae\ \x30\x09\xcf\xc8\xaf\xaf\xf4\x51\xc3\xef\x0f\x69\xee\x3e\x3f\x61\ \x4a\xf5\xc7\xcd\x03\x68\xce\x72\x4e\x6b\xec\x0d\x15\x3c\x3e\xf2\ \x3d\xa3\xb8\xf9\x00\x79\x1d\xf1\x9e\xc6\xb1\x52\x94\x7d\x41\x15\ \xf6\x06\x8a\x38\x60\xf1\x17\xe4\x7c\x7d\xff\x00\xaa\x6b\xd0\x94\ \x93\x9f\x7e\x3d\xeb\xec\x0d\x14\x70\xfb\xc8\xf6\x8e\xe3\xe4\x07\ \x38\xe0\x8f\xf2\xac\x52\x3c\xb9\x38\xc5\x7d\x81\xa2\x8e\x19\x2f\ \x11\xdc\x7c\x7f\x1c\x64\x0c\x8c\x77\x19\xc5\x62\xa7\x01\xc2\x73\ \xc7\xd2\xbe\xc1\x51\x47\x0c\x87\x88\x7d\x87\xc8\x5b\x7c\x1b\x95\ \xcd\xf0\xc5\xb2\x0c\xb9\xce\x13\xe5\x4c\x76\x14\xe1\x27\xe8\x33\ \x57\x8f\x48\x7f\x45\xcd\x7b\xab\xe6\x33\x2f\x53\x46\x77\x4b\xd9\ \xb2\x0a\xd7\x24\x62\x4b\x89\xe3\x84\x35\xdc\x64\x1e\xea\xc7\xd0\ \xd7\xd0\x9a\x2a\x54\x12\x2b\x2a\xcd\xa1\x8b\x41\xe9\x2b\x0e\x88\ \xd2\xf1\x34\xe6\x9b\x82\x98\x76\xf8\xc3\xca\x91\xca\x96\xa3\xdd\ \x6b\x3f\xbc\xa3\xea\x68\xa7\xda\x2a\xe2\x42\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x0f\xff\xd9\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0b\ \x08\x01\x81\xe7\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x2e\x00\x6a\x00\x70\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/puzzle/puzzle_rc3.py0000644000076500000240000053141012536324427024066 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:36:36 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\xa6\x9e\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x01\x00\x48\x00\ \x48\x00\x00\xff\xe1\x00\x16\x45\x78\x69\x66\x00\x00\x4d\x4d\x00\ \x2a\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\xff\xdb\x00\x43\x00\ \x05\x03\x04\x04\x04\x03\x05\x04\x04\x04\x05\x05\x05\x06\x07\x0c\ \x08\x07\x07\x07\x07\x0f\x0b\x0b\x09\x0c\x11\x0f\x12\x12\x11\x0f\ \x11\x11\x13\x16\x1c\x17\x13\x14\x1a\x15\x11\x11\x18\x21\x18\x1a\ \x1d\x1d\x1f\x1f\x1f\x13\x17\x22\x24\x22\x1e\x24\x1c\x1e\x1f\x1e\ \xff\xdb\x00\x43\x01\x05\x05\x05\x07\x06\x07\x0e\x08\x08\x0e\x1e\ \x14\x11\x14\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\xff\xc0\x00\x11\x08\x01\xa8\x01\xa8\x03\x01\ \x22\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1d\x00\x00\x01\x04\ \x03\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x05\ \x06\x07\x02\x03\x08\x01\x09\xff\xc4\x00\x54\x10\x00\x01\x03\x03\ \x03\x02\x05\x01\x04\x06\x07\x01\x0d\x07\x02\x07\x01\x02\x03\x04\ \x00\x05\x11\x06\x12\x21\x07\x31\x13\x22\x41\x51\x61\x71\x14\x32\ \x81\x91\x08\x15\x23\x42\xa1\xb1\x16\x33\x52\x62\xc1\xd1\xf0\x24\ \x34\x37\x43\x63\x72\x74\x75\x82\x92\xb3\xb4\xe1\xf1\x17\x36\x53\ \x73\x94\xa2\xb2\x25\x93\x09\x44\x83\xa3\xc2\xd2\xe2\xff\xc4\x00\ \x1b\x01\x00\x02\x03\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x03\x01\x02\x04\x05\x06\x07\xff\xc4\x00\x35\x11\x00\ \x02\x01\x02\x04\x02\x07\x07\x04\x03\x01\x01\x00\x00\x00\x00\x00\ \x01\x02\x03\x11\x04\x12\x21\x31\x13\x41\x05\x22\x51\x61\x71\xa1\ \xf0\x14\x32\x81\x91\xc1\xd1\xe1\x15\x23\xb1\xf1\x42\x52\x62\x63\ \x24\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xec\ \xba\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x2b\x15\x2d\ \x29\xee\x69\x33\xf3\xd9\x68\x72\xb1\x50\xda\x5b\x80\xae\x8a\x62\ \x9d\xa8\xe2\x45\x4e\xe7\x1d\x42\x13\xee\xa5\x00\x3f\x8d\x32\xcb\ \xea\x36\x9f\x8f\xfd\x65\xea\xdc\x93\x9c\x63\xed\x08\x38\xfe\x34\ \xa7\x88\xa6\xb9\x90\x9d\xf6\x26\xf4\x55\x7c\x7a\xa7\xa5\x87\x7d\ \x41\x6c\x07\xfe\x70\x9a\xdf\x13\xa9\x5a\x6e\x49\x09\x6a\xfb\x6c\ \x52\x89\xc6\xd1\x25\x19\xfe\x74\x7b\x44\x09\x27\x54\x53\x34\x5b\ \xec\x67\xd2\x14\x1c\x49\x07\x90\x41\xc8\x3f\x8d\x2f\x66\x6b\x2e\ \x76\x58\xab\xc6\xa4\x67\xb3\x22\xe2\xaa\x2b\x14\xad\x2a\xec\x6b\ \x2a\xb9\x21\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\ \x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\ \x14\x50\x01\x45\x73\x86\xb2\xeb\x1e\xa8\xb8\xf5\x36\xef\xa7\x34\ \xc4\xb6\xed\x36\xbb\x1b\xaa\x8f\x21\xef\x01\x0e\xbd\x21\xe4\xa8\ \xa5\x43\xce\x0a\x52\x9c\x85\x0e\x06\x70\x33\x9e\x46\x15\xc5\xea\ \x7e\xb2\x65\x7b\x9c\xb8\x35\x20\x7f\x65\xc8\xc8\x03\xff\x00\xb4\ \x03\x5c\xbc\x4f\x4b\xe1\xf0\xf5\x38\x72\xbd\xfb\x8c\x32\xe9\x0a\ \x4a\x4d\x6a\x74\x25\x15\x4b\x41\xeb\x1d\xd9\x18\xfb\x6d\xa2\x13\ \xff\x00\xfc\xa5\xa9\xbf\xe7\xba\x9f\xa0\xf5\x8a\xca\xe0\x02\x65\ \xb2\x7b\x07\xfe\x2c\xa5\xc0\x3f\x88\xfe\x55\x34\xfa\x63\x07\x3f\ \xf3\xb7\x8d\xcb\xc7\x1b\x46\x5c\xcb\x2e\x8a\x89\x41\xea\x3e\x8f\ \x97\x80\x2e\xc1\x85\x1f\xdd\x79\xa5\xa3\xf8\xe3\x1f\xc6\xa5\x31\ \xde\x6a\x44\x76\xe4\x30\xe2\x5d\x65\xd4\x05\xa1\x69\x39\x0a\x49\ \x19\x04\x1f\x6c\x56\xea\x55\xe9\x55\xf7\x24\x9f\x83\x34\x46\xa4\ \x27\xee\xbb\x9b\x28\xa2\x8a\x69\x70\xa2\x8a\x28\x00\xa2\x8a\x28\ \x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\ \x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x82\x40\xa4\xb2\xa5\x21\ \xa4\x92\x54\x05\x00\x6f\x5b\x89\x48\xe4\xd3\x65\xc6\xef\x1e\x2b\ \x6a\x52\xdc\x4a\x42\x46\x49\x27\x00\x54\x1b\xa8\xbd\x4a\xb4\x69\ \x98\xab\x54\x99\x29\x2e\x81\x90\xd8\x57\x3f\x8f\xb5\x72\xfe\xbc\ \xea\x86\xa1\xd6\x4b\x5a\x23\xc8\xfb\x25\xb4\x28\x82\xbd\xdb\x1a\ \x1f\xff\x00\xb1\xac\xb5\x71\x0a\x2b\x41\xb4\xa8\x4e\xab\xd3\x62\ \xfc\xd7\xfd\x73\xd3\x3a\x7d\xb7\x52\x25\x89\x8f\x27\x23\xc3\x61\ \x5c\x67\xfe\x57\xf9\x57\x3d\x6b\x3f\xd2\x3b\x56\x5d\x5e\x72\x3d\ \x85\xb1\x11\xa3\x90\x3c\x24\xee\x5f\xe7\xc9\xfe\x55\x08\xfd\x59\ \x09\x4e\xf8\xd3\x9c\x2f\xa9\x47\x71\x79\xc2\x4a\x4a\x7d\xd0\x81\ \x82\xaf\xc7\x02\x9d\xed\xce\x6c\x7d\x30\xed\x16\xf8\xe9\x51\x48\ \x52\x8a\x9b\x09\x18\xc7\x0a\x3e\xde\xfc\xd6\x47\x5a\xfa\xda\xfe\ \x27\x42\x38\x18\x47\x72\x1d\x72\xbd\x75\x02\xf8\xe3\x92\x25\x49\ \x9c\x42\xb9\x25\xc5\x12\x79\xfa\xf3\x4c\x32\xe0\xea\x1f\x15\x49\ \x72\x44\x85\xb8\x39\x50\xdd\x8c\x55\xa1\x73\x2d\xcc\x94\xe1\x97\ \x36\x44\xc5\x92\x30\x96\x13\xb5\x94\x28\x0c\x60\xa8\x77\xfc\x68\ \x95\x0d\x05\xb5\xa1\x96\x5b\x0e\x60\x78\x8e\x78\x7e\x32\xd2\x3b\ \x0d\xbb\xbc\xb9\xf8\xc2\xaa\x63\x8a\x90\xd7\x84\x8b\x5c\xfd\x79\ \x15\x22\xa2\x5f\xd2\xb2\x82\xb7\xf7\x0e\xe0\x2b\x38\xad\x4e\x8b\ \xcb\x07\x2e\x4b\x71\xb2\x39\xf3\x13\x56\x14\xcb\x5c\xb1\x19\xc5\ \x38\xdb\xa5\xa6\x88\x23\xed\x6b\x28\x2a\xfa\x25\x38\x1f\xc2\xa1\ \xf7\x24\xca\x48\x52\xa3\xda\x9b\x71\x09\xc9\xf1\x1a\x6b\x79\xfc\ \x49\xcd\x69\x85\x77\x3e\x66\x5a\x98\x65\x05\x71\x5e\x98\xea\x3e\ \xb1\xd3\x52\x03\xb6\xeb\xcc\xa6\xb6\x8e\x52\x97\x0e\x0f\xd4\x76\ \x35\x73\x68\x5f\xd2\x96\xeb\x15\x48\x67\x51\xc3\x44\x94\x81\x8f\ \x15\xaf\x22\xfe\xa7\xd0\xfe\x55\xce\xab\x44\xa7\x3f\x75\xc5\x83\ \xe8\x40\xe0\xfc\x81\x5a\x3c\x05\x28\x12\x94\x20\x94\x9c\x29\x25\ \x38\x50\x3e\xc6\x99\x28\x42\x7b\x99\x1c\x7b\x8f\xa4\x7d\x29\xea\ \xee\x9e\xd6\x91\x3c\x5b\x5d\xc5\x2b\x71\x23\xcf\x1d\xd3\xb5\xd4\ \x7e\x1e\xa3\xe4\x55\xa3\x06\xe6\xc4\x84\x8d\xab\x15\xf2\x62\xd3\ \x32\xe9\x6a\x7d\x33\x6d\x8f\x3b\x15\xd6\xd5\x9d\xc8\x59\x49\x49\ \x1f\x35\x7b\xf4\xb7\xf4\x95\xbe\x59\x5c\x6a\xdf\xaa\x5b\x54\xf8\ \xe3\x00\x3f\x9c\x3a\x91\xf5\xec\x7f\x1f\xce\xa1\x67\x86\xda\xaf\ \x32\x8e\x0d\x6c\x77\xfa\x56\x14\x38\x35\x95\x55\xfd\x38\xea\x75\ \x83\x56\xc4\x43\xd6\x9b\x8b\x52\x38\xca\x9b\x27\x0e\x23\xea\x9e\ \xf5\x62\xc5\x98\xdb\xa9\x04\x28\x1c\xd3\x61\x51\x4f\x62\x82\xba\ \x2b\xc4\xa8\x1e\xd5\xed\x5c\x90\xa2\x8a\x28\x00\xa2\x8a\x28\x00\ \xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x03\ \x88\xa1\x7f\xbf\x27\x51\x3f\xe9\xa9\x3f\xf8\x87\x6a\x67\xa2\xac\ \x97\x2d\x65\xab\x5c\xb0\xda\x56\xd4\x76\xa1\xb4\x97\xae\x33\x5d\ \x41\x5a\x58\x4a\xb3\xb1\x09\x48\x23\x72\xd5\x82\x46\x48\x00\x02\ \x79\xed\x50\xc8\x5f\xef\xc9\xd4\x5f\xfa\x6a\x4f\xfe\x21\xda\xbe\ \xbf\x45\x38\x81\x1a\x5b\x51\x5c\xd6\x8f\xdb\xcc\xbf\x3e\x82\xb2\ \x39\x2d\xb4\x94\x21\x23\xe8\x30\xaf\xcc\xd7\x98\x8e\x12\x18\x9e\ \x91\x9a\xa8\xae\x97\xe0\xf3\x98\x6a\x4a\xad\x6c\xaf\x6d\x4f\x17\ \xa0\xf4\x3b\xb7\x77\x34\xb4\x3d\x51\x27\xfa\x42\xdb\x25\xdf\x09\ \xe2\x93\xb8\x71\x9f\x28\x48\x07\x1e\xa0\x1c\x8c\xf3\x55\xc5\xce\ \xd5\x3a\xdd\xac\xe0\x69\x59\x0d\x62\x74\xcb\x82\x21\xa4\x83\x94\ \xa4\x28\x15\x78\x9f\x29\x09\x1b\xa8\x44\xc9\x09\xea\xfe\x96\xbb\ \x20\xab\xed\x0e\x6a\x20\xd2\xd5\x9f\xdc\x78\x2d\x2b\x1f\x88\x35\ \x6e\x5f\x7f\x57\xc1\xfd\x22\xb4\xf8\x91\x6c\x6e\x63\xf7\x6b\x5b\ \xa2\x33\xeb\x5f\xfb\x89\xc8\xe1\xc2\xa7\x12\x92\x0e\x54\xb4\x38\ \x10\x48\x23\x84\x8e\xf5\x34\xb0\x58\x6c\x6c\x23\x52\x31\xcb\xad\ \x9a\x5c\xd1\xa1\x53\xa7\x5d\x5d\x2b\x59\xdb\xe0\x54\xfa\x96\xd2\ \xed\x8e\xf9\x2a\xd4\xf3\xa8\x75\x71\xd4\x12\x56\x80\x40\x39\x00\ \xff\x00\x8d\x74\x86\x8a\xff\x00\xdc\xdb\x27\xfd\x1f\x1f\xfe\xed\ \x35\x4e\xf5\x96\xe7\x6f\x91\xa8\x25\x5b\x9a\xb3\x35\x1e\x64\x77\ \x92\x5c\x9a\x97\x32\xa7\xc6\xce\xc5\x38\x18\xee\x3d\x4f\x6a\xb8\ \xb4\x57\xfe\xe6\xd9\x3f\xe8\xf8\xff\x00\xf7\x69\xab\xf4\x4d\x28\ \xd2\xc5\xd5\x84\x1d\xd2\xfb\xec\x3f\x05\x05\x0a\xd3\x8a\x1d\xe8\ \xa2\x8a\xf4\x67\x50\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\ \x00\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\ \x00\x2b\x15\xa8\x24\x50\xb5\x84\x8c\xd3\x0e\xa0\xbd\x47\xb7\xc4\ \x75\xf7\xde\x4b\x6d\xb6\x92\xa5\xa9\x47\x01\x20\x7a\x9a\x1b\x49\ \x5d\x80\xa2\xef\x75\x66\x1b\x2a\x5b\x8e\x25\x21\x23\x24\x93\x80\ \x05\x73\xef\x58\x7a\xe7\x06\xd4\xd3\x90\xac\xce\x99\x32\xd4\x76\ \x25\x48\xe4\x0f\xa7\xf9\xd5\x67\xd7\x9e\xb6\xbd\x7a\x7d\xfb\x3d\ \x85\xe5\x26\x30\x25\x25\x40\xe0\xb8\x7d\xcf\xc7\xc7\xe7\x5c\xff\ \x00\x26\xe2\xec\xa5\xf8\x4d\x2d\x4b\x5a\xc1\x0e\xba\x4f\x27\xf1\ \xf4\x1f\x1e\xbf\x4a\xc7\x52\x72\x93\xb1\xb2\x8e\x19\x7b\xd5\x3e\ \x44\x9a\xf3\xa8\xaf\xda\x9a\xf6\xa5\xbc\xa3\x31\xe2\xb2\x50\xd2\ \x95\x96\xd2\x3d\x49\xf4\xc0\xf5\x39\xa5\xb6\xb6\xdc\x72\x4b\x5e\ \x1a\x05\xce\x43\x6a\xf0\xfc\x57\x13\xfb\x16\x95\xfd\x86\x9b\x1c\ \x13\xf8\x7c\x9c\x0e\x6a\x2b\x6b\x79\x0b\x3f\x66\x8e\x4e\xc1\xca\ \xd4\x14\x40\x5e\x3d\xc8\xf9\xf6\xfc\x39\xe6\x9f\x58\x9a\xb5\x25\ \x21\x95\x06\xe3\xb2\x48\x71\xf4\x80\x0a\x8f\xab\x4d\x8e\xc0\x7a\ \x9f\x4f\x55\x12\x6b\x1d\x48\xeb\xa9\xd5\xa4\xf4\xb4\x47\xf9\x0c\ \xb6\xc3\x98\x91\x21\x72\x5c\x3b\x9c\x77\x68\xf2\xa4\x0f\x75\x0f\ \xbd\xf4\x1c\x1f\x73\xda\x9a\xa7\xdc\xd2\x85\x15\xdc\xe6\xc5\xb7\ \x30\xac\xa9\x4d\xaf\x97\x1e\xe3\x8d\xc8\x4f\x20\x7b\x02\x31\xf1\ \x4f\x9a\x5b\xa7\xda\xe3\x5f\xa5\x0f\xdb\x63\x1b\x75\xa0\xf3\xf6\ \xf9\x0b\x2d\xa5\xcc\x71\x94\x03\xe6\x57\xd7\x18\xe3\x8c\x0a\xb7\ \xb4\x6f\x40\x74\x95\xad\x9c\xde\x19\x45\xe2\x6a\x80\x52\xe4\x3c\ \x54\xbe\x7e\x01\x38\x03\xd7\x9a\x5a\x69\x6e\x5e\x7d\x5d\x9f\xaf\ \x5e\x07\x3c\xc6\xd4\x53\x2e\x0e\x2a\x3d\x92\xdb\x74\xbb\xac\x79\ \x50\x0e\xe6\xa3\xa4\x7b\xe1\x18\x51\xfc\x54\x3b\xd4\x92\xdf\xa2\ \xfa\x9f\x7b\x86\xa7\x54\xf7\xea\xa6\x00\x4e\xe6\x63\xfe\xc7\x8e\ \xc3\x71\xee\x4f\x3e\xa4\x9f\x7a\xea\xdb\x5e\x9a\xb6\x5b\xe3\x08\ \xb0\x62\xb0\xcb\x09\x18\x21\x2d\xa5\x39\xf8\x24\x0a\x5e\xcd\x9e\ \x32\x54\x14\x94\x0c\x01\xe5\x18\xe1\x3f\x41\xda\xac\xa4\xff\x00\ \xc5\x5b\xcc\x53\xa9\x0f\xf2\xd7\xc9\x7a\xf8\x9c\x8f\xff\x00\xb1\ \xdd\x4a\x94\x87\x5c\x98\xea\xc9\x5e\x00\x49\x59\xc7\xb2\x92\x73\ \xc1\x1e\xc7\xbf\x15\xa9\xde\x96\xea\xa3\x35\x08\x4b\xc8\x44\x84\ \x8c\x07\x50\x3c\x30\xbc\x7a\xab\xe4\xe4\x8e\x7b\xe2\xbb\x18\x45\ \x6d\x2e\x15\x14\xa7\x80\x07\x22\xbc\x5c\x28\x0e\x0d\xaa\x6d\xa3\ \x9e\xd9\x19\x1f\x91\xa2\xf5\x3f\xd8\x15\x5a\x7f\xe9\xfc\x9c\x87\ \x0f\xa3\x77\xe9\x4a\x53\x6d\x86\xfc\x50\x77\x17\x0e\xed\xa3\x27\ \x03\x91\xdf\xde\x9b\xb5\x1f\x4c\x2f\xd1\xe6\xbb\x1e\x54\x34\xf8\ \x8d\x21\x4a\x0f\x25\x5c\x28\x63\x19\x3f\xc0\xd7\x65\x7d\x91\xb6\ \x50\x52\xde\xdc\x7c\x0e\xd4\x96\x65\xbe\xdf\x29\x59\x93\x1d\x0e\ \x12\x36\x92\x47\x04\x7c\xd5\x33\xd4\x5f\xe4\x4b\xa9\x4e\x5a\x38\ \xe8\x70\x94\xbd\x33\x32\x24\x77\xb7\x36\xb5\x2d\x04\x04\x92\x9f\ \x4e\x32\x3e\x79\xed\x4c\x13\x2d\x8e\x24\xa9\x21\xa2\x36\xf2\xb0\ \x7f\x70\x73\xeb\x5d\xe9\x73\xd1\xf6\x29\xb9\x58\x8e\x86\xdc\xc1\ \xf3\x84\x8c\x82\x7d\x73\x51\x7b\xd7\x49\x74\xfd\xc2\x21\x6f\xc3\ \x0d\x9f\xed\x36\x90\x0e\x7e\xbf\xeb\xbd\x32\x38\xca\x91\xdd\x5c\ \x54\xb0\xf4\x27\xb3\x68\xe3\x5d\x31\x7d\xbd\xe9\xa9\xad\xdc\xed\ \x53\x1f\x8c\xeb\x6a\xe0\xa1\x44\x11\x5d\x41\xd1\xff\x00\xd2\x59\ \xc9\x4f\xc7\xb4\xea\x86\x9b\x69\xd5\x00\x94\xca\x4f\x94\x28\xff\ \x00\x78\x76\xfc\xb1\x50\x0d\x7f\xd1\x5b\x8d\xad\x97\x8d\xb5\x84\ \xbd\x1c\x82\xaf\x10\xe4\xaf\xe3\x38\xaa\x66\xe3\x02\x6d\xb5\x4a\ \x6a\x53\x2a\x65\x7b\xb0\x9e\x31\xdb\xe6\xb5\xc6\xb4\x2b\xad\x37\ \xf3\x31\x55\xc2\x38\x6a\xf5\x5d\xa7\xd4\xfd\x2d\xa8\x63\xdc\xe3\ \x21\x68\x71\x2a\xdc\x32\x30\x73\x9a\x92\xb6\xad\xc2\xb9\x17\xf4\ \x56\xd6\x2e\x4b\xb0\x43\x87\x29\xf5\x19\x2c\x0f\x0d\x40\x9e\xe0\ \x76\x3f\x95\x75\x6d\xaa\x40\x75\x94\x9c\xe7\x22\x9f\x86\xa8\xe7\ \x16\xa5\xba\x30\xb4\xe2\xdc\x58\xbe\x8a\x28\xa7\x80\x51\x45\x14\ \x00\x51\x45\x14\x00\x51\x45\x14\x00\x51\x45\x14\x00\x51\x45\x14\ \x01\xc4\x50\xbf\xdf\x93\xa8\xbf\xf4\xd4\x9f\xfc\x43\xb5\x7d\xfe\ \x8a\x72\xb7\xe9\x1d\x41\x01\x6a\xfd\xac\x4d\x41\x24\xed\x3e\x88\ \x71\x28\x71\x27\xf1\xdc\x7f\x23\x54\x24\x2f\xf7\xe4\xea\x2f\xfd\ \x35\x27\xff\x00\x10\xed\x4d\xf4\x06\xa3\x97\xa1\x75\x74\x9b\xdb\ \x11\x9c\x9b\x6d\xb8\x32\x96\xee\x71\x1b\x50\x0e\x12\x8c\xec\x75\ \xbc\xe0\x15\x00\x48\x29\x24\x64\x1e\xf9\x15\xe6\x69\xe2\xa1\x43\ \xa4\xa7\x9d\xd9\x3f\xc1\xe7\x70\xb5\x55\x2a\xf9\x9e\xda\x89\xcc\ \x77\x93\xd5\x8d\x2b\x01\x39\xf1\x91\xa9\x5b\x2a\x4f\xf7\x5b\xde\ \x55\xf9\x62\xad\x5d\x66\xfa\x15\xfa\x4c\xe8\x18\xe3\x1b\x9b\xb6\ \xdc\x14\xae\x7f\xb4\xdf\xff\x00\xf3\x4e\x70\xa1\x68\x79\x85\x8e\ \xb0\xdb\xa1\x4b\x9c\xe2\xa2\xa9\xd8\xde\x18\x3e\x5d\xfe\x55\xa8\ \x37\xc0\x0b\x3c\x85\x13\xd8\x66\xaa\x6b\x9e\xa2\xb8\xbf\xd4\xd8\ \x3a\xe5\x09\x42\x66\x41\x75\x61\x31\x9c\xc9\x42\x99\x5a\x3c\x35\ \x37\x9e\xe0\xed\xc6\x15\xee\x33\x83\xda\x9f\x1a\x94\xfa\x36\x30\ \xa5\x51\xee\xef\xf0\x34\xe9\x86\x8a\x4d\xde\xed\x3f\x80\xbf\xaa\ \xff\x00\xef\x85\x76\xff\x00\xe6\x27\xff\x00\xc1\x35\x7c\xe8\xaf\ \xfd\xcd\xb2\x7f\xd1\xf1\xff\x00\xee\xd3\x54\x46\xba\xd5\x16\xed\ \x4a\xb4\xc9\x63\x4e\xc6\xb7\xcd\x5a\x92\xb9\x12\x42\xc2\xdc\x73\ \x09\xc0\x4e\xed\xa0\xed\x1f\xe1\xda\xaf\x7d\x15\xff\x00\xb9\xb6\ \x4f\xfa\x3e\x3f\xfd\xda\x69\x7d\x14\xe1\x2c\x5d\x59\x42\x57\x4f\ \x5f\x9b\x1b\x83\x71\x75\xa6\xe2\xee\x98\xef\x45\x14\x57\xa3\x3a\ \x81\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\ \x01\x45\x14\x50\x01\x45\x14\x50\x01\x58\xb8\xa0\x91\x9a\xc8\x9c\ \x0c\xd3\x5d\xde\x62\x58\x69\x44\x9a\x00\x43\xa9\x6f\x71\xad\x90\ \x5e\x93\x25\xf4\x32\xd3\x48\x2a\x5a\xd4\x70\x12\x07\xad\x70\xef\ \x5f\xfa\xd5\x37\x53\x5c\xdd\xb4\xd9\xde\x5b\x76\xd6\xd7\x81\xb4\ \xff\x00\x5a\x7d\xcf\xbf\xf8\x54\x8b\xf4\xbb\xea\x7b\xcf\xcb\xfe\ \x89\x5a\x65\x1d\x88\x39\x98\xa4\x1f\xde\xfe\xc9\xf8\x1f\xcc\xfc\ \x57\x2d\x38\xe1\x5e\x48\x59\x28\x07\xef\x9e\xea\x3f\xe5\x4a\x6d\ \xcb\x51\x94\xd2\x5d\x66\x2e\x9d\x25\x4e\xba\xb4\xa9\xce\xff\x00\ \xd6\x63\x93\xf4\xa4\x65\xe2\xf1\x11\xd8\x18\x1c\xef\x56\x71\x91\ \xf2\x7d\xbf\x9d\x27\x2a\x5b\x9e\x44\x79\x53\xeb\x4a\xed\xd1\x5f\ \x98\xfb\x50\xe1\xb2\xe3\xae\xba\xb0\x94\xa1\x09\xdc\xa5\xab\xe9\ \x51\x95\x41\x5d\x8d\x52\x95\x59\x59\x7a\xee\x1d\x60\xb8\x86\x98\ \x53\x49\x71\x61\xa3\x80\xa0\x84\xf9\xdd\x3e\x80\x7b\x7b\x01\x5d\ \x1d\xd1\x7e\x8c\x49\x75\x11\xb5\x0e\xb5\x8e\x94\x24\x25\x2a\x85\ \x68\x71\x3e\x54\x27\xba\x4b\xa3\xf8\xec\xfc\x4d\x3b\xf4\x1f\xa3\ \x90\xb4\xc4\x78\xb7\xdd\x47\x19\x32\xef\x65\x21\xc6\x18\x58\x05\ \x11\x09\xf5\xc7\xef\x2f\xe4\xf6\xf4\xab\xb1\x5b\xce\xe5\xac\xa8\ \x1c\xe4\x93\xeb\x5c\xba\xb5\x54\xde\x9b\x1d\x88\x5e\x94\x72\xad\ \xff\x00\x83\xd8\xed\x04\x27\x03\x69\x38\xc7\x09\x09\x48\x00\x60\ \x00\x3d\x00\xa5\x71\xd8\x0b\xe3\x97\x08\xe0\xe0\x7f\x0c\xd6\x29\ \x42\x36\x6f\x70\x1c\x1c\x61\x03\xbf\xe3\x4b\x59\x5c\x82\x9d\xad\ \xa0\x32\x9f\xe3\x55\x8a\x11\x26\x2a\x62\x02\x8a\x7c\xe9\x43\x69\ \xfe\x35\xea\x9b\x82\x8e\x14\xe0\x51\xad\x68\x61\xc7\x55\xe6\x5a\ \x96\x47\xb9\xed\x5b\x5b\x80\x08\xc9\xc1\x1d\xfb\xd3\x92\xec\x42\ \x76\xdd\x98\x20\x42\xc7\x2b\x03\xf0\xcd\x6a\x75\x8b\x7a\xff\x00\ \xe1\x07\xce\x07\xf1\xa7\x06\xe3\x36\x8c\x27\x18\xc7\x7c\xf7\xac\ \x84\x66\x72\x41\x03\x8f\x8c\x54\xb8\xb6\x82\xe3\x42\x99\x86\x01\ \x01\xdc\xfb\xf3\x5a\x5d\x6d\xa2\x0e\xd1\xba\x9e\xdc\x8b\x1b\x61\ \x3e\x51\x8e\x7b\xd2\x65\x47\x61\x00\xed\x52\x47\xe3\x4b\x94\x4b\ \x29\x0c\xcb\x65\xac\x02\xa6\x17\x9f\x42\x38\xa4\xab\x8e\x82\xbd\ \xac\xad\x48\x57\x38\x0b\xe2\x9f\xd6\xc3\x7d\x82\xc2\x49\xe7\x93\ \x9a\x45\x2e\x39\xd8\x72\x90\xa0\x79\xc6\x29\x72\x80\xc5\x21\x96\ \x43\x44\x20\xb6\xea\x76\xa8\x8c\x13\x8e\x08\xaa\xbb\xab\x3d\x35\ \xb5\x6a\x48\x0f\xb8\xd3\x49\x8b\x3d\x00\x29\x0a\x1c\x03\x8f\xa5\ \x5b\x2a\x52\x9a\x05\xb2\x0a\xdb\xfe\xca\x8f\x3f\x81\xa4\x17\x08\ \xe8\x75\x1e\x4e\x47\x3b\x4f\xaa\x7e\x0d\x21\xe8\xf4\x1a\x9b\x5b\ \x1c\xc1\xd1\xb7\x17\xa5\xf5\x93\xb6\x7b\x92\x8c\x79\x28\x21\x0d\ \xa9\x47\x09\x74\x64\x91\xf8\xd7\x6c\xe8\x8b\x88\x93\x05\xa3\xbb\ \x9c\x73\x5c\xa7\xd7\x8d\x28\xb9\x50\x13\x77\x84\x16\x89\x71\x32\ \x49\x47\x7c\x03\xc6\x7d\xf1\xcd\x4d\xbf\x45\xce\xa0\xbf\x7d\xb4\ \x88\x97\x27\xf3\x3a\x2e\x10\xe1\x3d\xd6\x3d\x15\x5d\x2c\x35\x48\ \xc3\xaf\xdb\xb9\xc9\xc5\xd3\xb4\xb3\x9d\x4c\x85\x65\x35\x95\x22\ \xb7\xc8\x0e\xb4\x08\x39\xc8\xa5\xb5\xd2\x33\x05\x14\x51\x40\x05\ \x14\x51\x40\x05\x14\x51\x40\x05\x14\x51\x40\x05\x14\x51\x40\x1c\ \x4b\x19\xb5\xb7\xd6\x6e\xa2\x25\xc4\x29\x04\xde\x64\x28\x05\x0c\ \x70\x5f\x74\x83\xf8\x82\x0f\xe3\x52\x2a\xe9\x7b\xbe\x88\xd2\xb7\ \x6b\xda\xaf\x57\x0b\x2b\x0f\x5c\x16\xda\x5a\x5b\xdb\x94\x92\xb4\ \xa7\x3b\x42\x80\x20\x2b\x19\xee\x73\xc7\x14\xba\x06\x9e\xb1\x41\ \xc7\xd8\xec\xf0\x19\x23\xf7\x92\xc2\x77\x7e\x78\xcd\x79\xcc\x5f\ \x42\xd4\xc4\x57\x95\x4c\xc9\x26\x71\xff\x00\x4c\x9b\x93\xeb\x68\ \x50\x9d\x2d\xbc\xea\xbd\x2d\x09\x76\xcd\x3f\x09\xeb\x8d\xad\x6e\ \xad\xd6\xe2\x2e\x32\xdc\x0c\x29\x44\x95\x06\xd4\x9c\x10\x92\xa3\ \x9c\x1c\x8c\x93\x8c\x66\xb7\x9d\x0b\xac\xef\x13\xdf\x9a\xab\x2a\ \x98\x32\x1d\x53\x8b\xf1\x16\x96\xc2\x4a\x89\x27\x85\x1c\xe3\x9a\ \xe8\x7c\x51\x5a\x5f\x43\xf1\x22\xa3\x5a\xab\x92\x5e\x0b\xee\x68\ \x58\x04\xe2\xa3\x39\x36\x91\x4a\x59\xfa\x41\x77\x72\x43\x6a\xba\ \xcf\x88\xc3\x19\x05\xc4\xb2\xa2\xb7\x31\xea\x06\x40\x00\xfc\xf3\ \x57\x3c\x56\x1a\x8b\x19\xa8\xcc\x20\x21\xa6\x90\x10\x84\x8f\x44\ \x81\x80\x2b\x65\x15\xbb\x09\x81\xa3\x84\x4f\x86\xb7\x34\xd1\xc3\ \xc2\x8f\xba\x14\x51\x45\x6c\x1e\x14\x51\x45\x00\x14\x51\x45\x00\ \x14\x51\x45\x00\x14\x51\x45\x00\x14\x51\x45\x00\x14\x51\x41\xed\ \x40\x1a\x64\xb8\x10\x82\x73\x54\xe7\x5e\xb5\xba\x74\xbe\x91\x9d\ \x3d\x0b\x1f\x68\xdb\xe1\xc7\x4f\xbb\x87\xb7\xe5\xdf\xf0\xab\x3e\ \xff\x00\x28\x33\x1d\x64\x9e\xc2\xb8\x63\xf4\xc3\xd6\x4b\x99\x7e\ \x6a\xc6\xc2\xce\xd8\x83\x2b\x19\xe0\xad\x5c\xff\x00\x01\x8a\x5d\ \x57\xb4\x49\x8c\x73\x4a\xcc\xa1\xaf\xf7\x17\xee\x57\x07\xdf\x7d\ \xd5\x2d\x6e\x28\xad\xe5\xa9\x59\x2a\x24\xe7\x14\xd5\xcb\x87\xbe\ \xd4\x0f\x5a\xcf\x03\x1e\x62\x08\x1c\xa8\xfb\x9a\x5f\x68\xb4\x4d\ \xba\x5d\x22\xdb\xd8\x6c\x87\x1f\x52\x52\x06\x39\x4a\x54\x47\x9b\ \x1f\x43\x9a\x9b\xa8\xab\xb2\xee\xf3\x7a\x1a\xad\x30\x24\xdc\xe7\ \x35\x02\x0b\x0b\x79\xe7\x94\x12\x86\xd0\x39\x51\xae\xbb\xe8\x2f\ \x4c\x2d\xda\x46\x0b\x77\x6b\x93\x2d\xc9\xbe\x38\x8c\xee\x23\x72\ \x63\x02\x3b\x27\xe7\xe6\xab\x7e\x94\x69\x64\xdb\x2e\x69\xf0\xda\ \x58\x25\xe2\xca\x1f\x18\x25\x48\xc9\x19\xcf\xf7\xb1\xc9\x1e\x99\ \xc5\x74\xbd\x81\x29\x6d\x01\xa0\x41\x09\x01\x28\x00\x76\x03\xd3\ \xe6\xb8\xf8\xac\x43\xa9\x53\x22\xd9\x1d\xbc\x3d\x0e\x05\x2c\xdf\ \xe4\xfc\x90\xe9\x17\x7b\x7e\x6f\xde\x23\x72\xb3\xef\x4a\xdb\xdc\ \xa3\xb8\x8e\x7d\x0f\xb5\x68\x27\x19\xdd\xd8\x9e\x00\xf5\xa5\x31\ \xb0\x52\x37\x77\xec\x71\x54\x48\xab\x62\x96\x93\x80\x0a\xb3\xf8\ \x73\x4a\xd9\x51\x24\x81\x80\x33\xdc\xd6\x90\xe2\x11\x8c\x10\x93\ \x8c\x01\x58\x3f\x71\x83\x17\xc8\xe3\xa9\x2b\x03\x24\x67\xb7\xd6\ \x98\xa2\x29\xdf\xb0\x71\x68\xa9\x59\x05\xc5\x76\xe7\x06\xb7\x15\ \x38\x94\xf0\xb7\x30\x3d\xd5\x4c\xc9\xbd\xc6\x43\x49\x77\x7a\x58\ \x4a\xf2\x12\x56\xa4\xa7\x77\xd3\x3e\x9f\x35\x9b\x77\x48\x4f\x63\ \xc2\xb8\x47\x77\x71\xc1\x28\x90\x0f\x3e\xdc\x1e\x7e\x95\x74\x43\ \x84\xbb\x07\x15\x2d\x47\x95\x1c\x8f\x92\x6b\x15\x2c\x2b\x92\x47\ \xe3\x5a\x54\xb5\x1e\x12\xb5\x29\x20\x8f\x29\xf4\xf9\xad\x98\xe3\ \xb8\x3e\xf8\xa9\xd4\x8b\x02\x9b\x4a\xb9\x3c\x67\x8c\x56\xa2\x10\ \x14\x46\x33\x8a\xcc\xa4\x02\x40\x04\x7f\x8d\x01\x04\x05\x64\x10\ \x31\xeb\xcd\x55\xa2\xcb\x43\x4a\x92\x7b\x14\x12\x0f\x6e\x2b\x5b\ \x9e\x22\x06\x52\x4a\x7e\x94\x92\xf7\x72\x8b\x05\x4d\xb2\xe3\xe8\ \xf1\x94\x37\x10\x55\xf7\x52\x06\x49\x3e\xc3\xe6\xab\xfb\xc7\x5a\ \x34\x55\xba\x77\xd8\x8d\xee\x33\xae\x83\x8d\xcd\xab\x2d\x9c\x77\ \xe7\xb1\x3f\x4c\xd2\x65\x24\x98\xd8\xd3\x94\xb6\x44\xf9\xf5\x13\ \xe5\x71\x00\xfc\x8a\x6f\x79\x18\x3b\x90\xa3\xf2\x3d\xe9\xb6\x26\ \xb5\xb2\x4e\x4b\x65\xb9\x0d\xa9\x2e\x63\x0b\x6d\xc0\xe2\x4e\x7b\ \x64\xa7\xb1\xfa\xd3\xa9\x53\x4b\x48\x52\x16\x30\xa1\xc0\x1e\xbe\ \xd4\xa7\x69\x6c\x5d\xc6\x51\xdd\x0c\x77\xc8\x2d\xca\x8a\xe2\x1c\ \x40\x29\x5a\x70\x7d\xf9\xae\x6c\x4c\xf9\x3d\x2e\xea\x4b\xae\xad\ \x0b\x30\x5e\x7b\x7a\xb6\x76\x29\x27\x9f\xc7\x06\xba\x8d\xf0\x52\ \xe8\x41\xfb\xa7\x3c\xd5\x1f\xd7\xdb\x2b\x52\x65\xc6\x75\x4d\x05\ \x78\x8a\x28\x73\x9f\xbb\xc7\x7f\xaf\x22\x99\x4e\xa6\x4d\xf6\x17\ \x2a\x0a\xad\xe2\xce\xa4\xd0\x37\xe8\xf7\x2b\x73\x0f\x32\xf2\x5c\ \x6d\xc4\x05\xa1\x60\xf0\xa4\x91\x90\x6a\x72\xca\xb7\x24\x57\x24\ \x7e\x8b\x5a\xad\xdf\xd4\xe2\xc3\x35\x64\x49\xb6\xaf\xc1\x04\xf1\ \xbd\xb2\x72\x93\x8f\xe1\x5d\x51\x68\x90\x1e\x61\x24\x1f\x4a\xec\ \xe1\xe6\xe5\x1b\x3d\xd1\xc2\xb3\x8b\x71\x63\x95\x14\x51\x4e\x24\ \x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xad\x52\xe4\xb1\x12\x33\x92\ \x64\xba\x96\x99\x6c\x65\x6b\x51\xe0\x0a\xac\x75\x96\xbb\xbe\x39\ \x6f\x79\xeb\x23\x48\xb6\x43\x1c\x22\x64\x84\x6e\x5b\x9f\x29\x49\ \xe0\x7e\x39\xab\xd3\xa7\x2a\x8e\xc8\x55\x5a\xd1\xa4\xaf\x22\xd3\ \xa2\xb9\xd7\x4f\x1d\x59\x76\x2e\x4a\x9b\xac\x2f\xc1\xb0\x09\xcb\ \x52\xd4\xd0\x3f\x20\x0e\x31\x4d\x37\x39\xda\xa1\x89\x6b\x42\x35\ \x56\xa4\xf0\xd2\x78\x3f\xac\x9c\xc9\x1f\x9d\x69\xf6\x29\xf6\x99\ \x3d\xbd\x7f\xa9\xd4\x14\x57\x34\xe9\xd9\xf7\xa9\x97\x86\x58\x91\ \xac\x35\x12\x59\x2a\xc1\x3f\xac\x5c\xe7\xdf\xd6\xae\xd8\x9a\x79\ \x2a\x88\x87\x06\xa3\xd4\x0a\x04\x72\x4c\xdc\xff\x00\x85\x2e\xae\ \x1e\x54\xd2\x6c\x75\x2c\x57\x11\xb4\x91\x29\xa2\xaa\x8b\x83\x53\ \x44\xf7\x3c\x2d\x49\x7d\x4b\x69\x38\xc0\x98\xaa\x7e\xd2\xf6\x49\ \x92\x62\x97\xe4\xea\x1b\xea\x82\xbe\xee\x66\x1f\xf1\x15\x33\xc3\ \x4a\x11\xcc\xd9\x58\x62\xf3\xcb\x2a\x44\xe6\x8a\x80\x6a\x06\x1c\ \x88\x97\x16\xdd\xf6\xf4\x94\xa0\x77\xfb\x59\xff\x00\x2a\xae\x9e\ \xbb\x5e\xfe\xd2\x42\x75\x25\xe4\x05\x13\x8f\xf6\xd5\xe3\xf9\xd5\ \xa1\x83\x9c\x95\xc8\x96\x36\x31\x76\xb1\xd0\x94\x55\x61\xa5\xde\ \x97\x2e\x33\x6b\x7e\xf7\x76\x52\x87\x0a\xff\x00\x6a\x3c\xfe\x75\ \x2c\x9b\x68\x71\x50\x8b\xac\xde\x2e\xc1\x5b\x72\x31\x2b\xff\x00\ \x2a\x5c\xf0\xf2\x83\x49\xf3\x2f\x0c\x4a\x9a\x6d\x2d\x89\x1d\x15\ \x59\xe6\xe2\x87\x0a\x55\x79\xba\x1d\xa7\x9f\xf6\xa5\x76\xa9\x6d\ \xb6\x1f\xda\x21\x87\x8d\xd2\xe3\x9c\x73\xfe\xd1\xff\x00\x95\x4d\ \x5c\x34\xa9\xab\xb0\xa5\x8a\x55\x1d\x92\x1f\xe8\xaa\xa3\x53\xdd\ \x27\x31\x70\x5a\x62\x5d\x2e\x49\x43\x67\x07\x32\x54\x3f\x95\x37\ \x45\xbb\x5d\x5e\x20\xae\xf5\x71\x47\xc7\xda\x57\xcf\xf1\xa6\x2c\ \x14\xda\x16\xf1\xd1\x4f\x62\xe8\xa2\xab\x58\xf3\xe4\x48\x8b\xe1\ \xa6\xef\x3c\x3a\x07\x72\xfa\xbb\xfe\x74\xa7\x4a\x1b\xdc\x9b\x83\ \x8c\xc9\x9f\x2c\xb4\x93\xc1\x2f\xa8\xff\x00\x3a\x89\x60\xe5\x15\ \x76\xc9\x8e\x32\x32\x76\x48\xb0\x68\xa4\x29\x85\xb5\x24\xaa\x64\ \xb3\xf3\xe2\x9a\x4d\x38\x21\xa8\xee\x2d\x13\xa4\x05\x01\xdb\xc5\ \xac\xf1\x83\x93\xb2\x34\xca\x79\x55\xd8\xef\x45\x42\xdd\xb9\xbc\ \xc3\x1e\x22\xe5\xc8\x23\x1f\xfc\x43\x4d\x92\x6f\xb7\x42\x3f\x64\ \xf3\xa0\x13\x80\x4b\x87\xfc\xeb\x4f\xb1\x4c\xcd\xed\xb0\xec\x2c\ \x7a\xc5\xc3\x84\x13\x50\x2b\x55\xfa\x73\x8b\xf0\xdf\x79\xcd\xde\ \x87\x79\xff\x00\x3a\x58\xfd\xe5\xf6\x9a\x59\x71\xd7\x31\x8e\x3c\ \xc6\x8f\x62\x99\x2b\x1b\x06\x27\xd7\x92\xd4\xdc\x45\x84\x9e\x4f\ \x15\xf3\x6b\xab\xd7\x73\x7a\xd7\xd7\x69\x7b\xf7\x03\x21\x49\x4a\ \xbb\x8d\xa0\xe3\x3f\xca\xba\xf7\xaf\x9a\xe5\xdb\x56\x91\xb9\x4b\ \x4c\x85\x25\xdf\x0c\xb2\xc8\xdc\x72\x5c\x5f\x03\xd7\xd0\x64\xfe\ \x15\xc3\xaf\x87\x97\x20\x4b\xdb\xbd\x0f\xa8\x80\x49\xc8\xcf\xa8\ \x3f\x35\x8e\xad\x2c\x95\x1b\x6c\xd3\x42\xa7\x11\x36\x8c\x18\x52\ \x1b\x21\xc5\x24\x2b\x61\xc2\x10\x7b\x13\xee\x6a\x61\xa1\xae\x2c\ \x5a\x1c\x17\x45\xbb\x99\x8f\x3d\xb5\x2b\x03\x2a\x4b\x7f\xbe\xad\ \xa7\x83\x9c\xf0\x3d\x93\xf3\x51\x34\xb6\xcb\xee\x14\xa1\xf4\x32\ \x94\x8e\x03\xb9\x1f\x91\xff\x00\x3a\xc9\x69\x58\x90\x19\x6d\x7e\ \x65\x00\x84\xed\x3b\x89\xf4\xc0\xc7\x72\x69\x53\x8e\x65\x63\x4d\ \x39\xe4\x95\xce\x83\xe9\xee\xa8\xb6\xb8\xd4\xdb\xf5\xc2\x5a\x21\ \x5a\xad\x8a\x6e\x34\x72\xf2\x82\x40\x51\xc8\x03\x8f\xbc\x48\xce\ \x71\xee\x6a\xc4\xb1\xf5\x8b\xa6\x71\x62\xa9\x52\xf5\x8c\x64\x3a\ \x15\xb4\x6c\x8c\xf2\xbc\xb8\xf8\x4f\xd6\xb9\xf3\xa9\x5a\x7d\xfb\ \x1f\x49\xed\x4c\xc8\x88\x62\xbe\x2e\x29\x53\xac\xf7\x53\x41\x4d\ \x28\xa4\x2c\xff\x00\x68\xe1\x5c\x7a\x57\x48\x69\x1d\x29\xa6\x62\ \x74\x6b\x4e\x6a\x18\xbd\x28\xd1\xd3\xdf\x7e\xd5\x1d\xc5\xbd\x36\ \x0f\x8c\x5c\x5a\xb0\x92\xb5\x12\x73\xc9\xe4\xfd\x6b\x9b\x43\x0b\ \x4e\xbd\xea\xa7\xa5\xdf\x91\xd5\xaf\x8a\x94\x1a\xa7\x65\xcb\xcc\ \xcd\x5d\x79\xe9\x0a\x48\x49\xd5\xce\x10\x3d\x45\xb6\x41\xff\x00\ \xfc\x2b\x79\xeb\xff\x00\x48\x1b\x69\x45\xad\x58\xb5\xab\x19\x03\ \xf5\x74\x80\x4e\x3e\xa8\xa5\x6b\xd3\x37\x35\x46\x2f\xda\xf4\x27\ \x4d\x59\x69\x20\x95\x3c\x34\xe3\x4d\x47\x4e\x3f\xe3\x5c\xe0\xfe\ \x15\x86\x97\xd0\xda\x9f\x53\x3b\x23\x68\xe8\xaa\x9b\x8a\x52\x99\ \x28\x89\x61\x6a\x62\x9a\x2a\xe4\x05\x10\x84\xa7\x3c\x1e\xc4\xd3\ \x61\x4a\x93\xf7\x5b\x7e\xbc\x05\xca\x53\x4a\xf2\xb2\x21\xd3\xfa\ \xf5\xa6\xee\x61\x5f\x65\xbc\x46\x8c\x8e\x4b\x2d\xa9\x45\x0a\x20\ \x76\xdc\x48\xc0\xcf\xe3\x50\xcd\x4d\xd6\x18\xec\xc4\x6a\x05\xaf\ \xec\xf2\x64\x2d\xb2\xe2\x9d\x66\x56\x52\xda\x8f\x60\x55\xce\x4f\ \xae\x33\xf9\x57\x4c\xb5\xd0\x2d\x2c\xfc\x4f\xff\x00\x54\xb5\x69\ \x29\x2f\x9e\xea\x8d\xa6\x58\x61\x39\xfa\x24\xe7\xf8\xd4\x23\x58\ \xfe\x8d\xbd\x3d\x5b\x6e\x97\x63\xdb\xad\xce\xf0\x12\xe2\x61\x48\ \x61\xbc\xfc\x14\xbc\xa4\xe7\xf0\xa1\x61\x23\x7b\xca\xfe\x45\xbd\ \xbe\xcb\x2c\x2d\xf0\xbf\xd4\xe5\xe8\x53\xb5\x05\xea\x43\x92\x25\ \xdd\xe6\xbc\xf3\xca\x09\x05\x2a\x5b\x99\x04\xf3\x84\x0e\x00\xfe\ \x35\x25\xd2\x36\x1b\xba\x56\xb5\xe9\xe7\xe7\xb5\x21\x0a\x53\xae\ \x34\x14\x42\xde\x4a\x78\x56\x10\x7b\xfd\x47\x20\xf7\x15\x36\x97\ \xfa\x39\x39\x6e\x7c\x48\xd2\xba\xb9\xb4\x38\x9f\x30\x4c\x5b\xb8\ \x6d\x60\xfc\x25\xc4\xa7\x3f\xf6\xab\x28\xed\xf5\x8f\x42\x38\x5d\ \x9a\x21\xdf\xdb\x53\x9b\xdb\x17\x38\x25\x2e\x03\xee\xdb\xec\x92\ \x77\x1e\x7b\x92\x3e\x2a\xb3\x84\x6f\xd5\x92\xfe\x0d\x74\x71\x6d\ \x25\x78\xb6\xfe\x7f\x92\xe6\xe8\xfb\xd7\x35\xd8\x76\xc8\x9a\xf4\ \xa6\xd2\x94\xad\x92\xf8\xc2\xdb\x1f\xbc\x09\x3d\xfb\x76\xf7\xc1\ \xf5\xa9\xf4\x37\x1a\x70\x16\xf2\x0a\x81\xc0\xf9\xaa\x3f\x44\xf5\ \xb7\x4a\x39\x31\xb6\x75\x3c\x59\xfa\x3e\x72\xbf\x64\xf3\xd2\x71\ \x22\x13\x85\x59\x00\x17\x50\x3c\x8a\xcf\x3e\x64\x8e\xc3\x35\x7a\ \xe9\x8f\xb2\xcc\xb6\x36\xfc\x07\xa3\x4d\x88\xb4\xe5\xa7\xe2\xba\ \x97\x5a\x23\xe1\x49\x24\x1a\xbc\x69\xb8\xa4\x99\x92\xb5\x45\x29\ \x39\x02\xdb\x59\xce\xd1\xc8\x1c\x83\xed\x5e\x38\x48\x8e\xa2\x91\ \xc2\x47\x62\x29\x7c\xb8\xae\x82\x0b\x0d\x93\xc7\x24\x72\x0f\xc0\ \xa6\x1b\xbc\xb6\xed\x30\x5f\x99\x73\x95\x1a\x04\x56\xbc\xcf\x3f\ \x2d\xd4\xb4\xda\x47\xae\x54\xa3\x81\x55\x9a\x48\x5c\x7a\xc5\x2b\ \xd6\x48\xb3\xee\x57\x93\x01\x85\xb8\xd4\x79\x6e\x62\x5b\xc9\x57\ \x99\x2d\x80\x30\x81\xf3\xef\xf5\xaa\xa6\xf3\xa6\xa2\xdb\x52\xe3\ \x51\xa0\x82\x86\xc3\x69\xf1\xc8\x1b\x54\x95\x03\xfb\x20\x7b\x93\ \x8e\x0e\x31\xeb\x93\x56\x4e\xb2\xeb\x66\x96\xfd\x64\xe4\x0d\x11\ \xa6\xae\x1a\xe6\xe4\xae\x10\xa6\x5b\x53\x51\x73\x93\x92\x9e\x0a\ \xdc\xfa\x80\x07\xcd\x56\xda\x9a\x47\x5c\x75\x5a\xcb\xb2\x20\xc4\ \xd3\xb1\x54\x42\x44\x3b\x7b\x68\x43\x89\xc7\x6c\xf2\xa7\x01\xe7\ \xd4\x8f\xa5\x27\x84\xe3\xab\x69\x78\x9d\x18\xe2\x22\xe2\xa2\xe0\ \xdf\xaf\x91\x00\x4d\xd6\x7e\x95\xbb\xae\x65\x86\x6a\xad\xab\x25\ \x47\xec\xce\x85\x2d\x97\x92\x48\xf2\xa9\x38\xc0\x3e\xb9\xf8\xe2\ \xac\xad\x17\xd6\x70\x63\xa8\xca\x97\x1a\x0a\x59\x29\x21\x97\xdf\ \xc2\x82\xbd\x52\x09\xfb\xc8\xf9\xef\xfe\x30\xe1\xd1\x4d\x5b\x31\ \xc3\x22\xe5\x32\x03\x2a\x51\xca\x97\x36\x7e\xe5\xe7\xe4\x24\x13\ \x4d\xd7\x6e\x99\xc2\xb4\x83\xf6\xfd\x5b\xa7\x99\x50\x24\x63\xc1\ \x90\xb1\xc7\xb1\x08\xe6\xaf\x25\x86\xa8\xac\xe5\xaf\x70\x88\xfb\ \x4c\x64\xf2\xc2\xf1\xec\x7a\x9d\x33\x03\xab\x5d\x3d\x9f\x01\x0e\ \x3f\xab\xad\x31\x5f\x48\x01\xc6\xde\x7b\x18\x38\xf4\x20\x1c\xd4\ \x27\xaa\x3a\xdb\x44\x4c\x99\x05\xcb\x76\xa7\xb4\xcf\x57\x8f\xe7\ \x4b\x6e\xe7\xcb\x82\x08\x39\x1d\x8f\x6c\xfc\xd5\x02\xde\x9a\x88\ \xe6\x1b\x85\x7f\xd2\xb3\xca\xd5\x81\xb5\xe5\x34\xbf\xa6\x1c\x48\ \xa5\x12\xf4\x5b\xb1\x54\x10\xf2\xa2\x30\xe9\x4e\x76\x3c\xd2\xdb\ \x03\xe8\xbc\x14\xfe\x39\xab\xc7\x07\x4e\x6f\xde\x66\x7f\x68\x9c\ \x75\xd1\x5f\xc7\x99\x2f\xe9\xee\xa9\x66\xc1\xd4\x86\x1c\x72\x73\ \x02\x33\xf9\x61\xe7\x3c\x51\x82\x41\xf2\xab\xfc\x3f\x1a\xee\x1d\ \x01\xa8\x63\xce\x82\xd2\x9a\x90\xd3\xc9\x20\x79\x9b\x58\x50\xfc\ \xc5\x7c\xd5\x99\x62\x79\xb5\x3e\x9f\x0c\x78\x91\xd0\x97\x57\xb5\ \x5b\xb0\x82\x42\x42\x81\x1e\x9b\x88\x1f\x88\xab\x07\xf4\x69\x9d\ \x76\x67\x5f\xc8\x86\x8b\xbc\xf8\xd1\xd5\x05\xc5\xac\x32\xfa\x93\ \x9c\x14\xe3\xf8\xd6\xa7\x18\xc1\xe7\x83\xd0\xe6\xe2\x61\x38\xa7\ \x37\xc8\xfa\x4e\xc3\x81\x69\x04\x73\x5b\x6a\x9c\xd3\x91\xe5\x49\ \x8c\x8c\xea\x5b\xf8\x3f\x13\x8f\xf9\x54\xda\x0e\x9e\x5b\xd1\xd2\ \xe2\xb5\x0e\xa2\xce\x39\xc4\xdf\x5f\xca\xb7\xca\x8b\x8c\x54\xbb\ \x4c\x14\xf1\x3c\x47\x64\x89\x6d\x15\x54\xdd\xed\x57\x25\x5c\xd6\ \xc4\x2d\x4d\xa9\x0e\x0f\x00\x4f\x56\x0f\xe5\x4a\x22\xe9\x1b\xf3\ \xa8\x0a\x5e\xaa\xd4\x88\x2a\xec\x3f\x58\xab\xfc\xa9\x8f\x0a\xd2\ \xbb\x65\x16\x32\xee\xca\x2d\x96\x75\x15\x59\x4b\xd2\x17\xe6\xdb\ \xcb\x5a\xbb\x51\x9e\x7d\x6e\x0a\xed\x45\x0b\x0a\xde\xd2\x40\xf1\ \x8d\x6f\x06\x38\x5c\xae\x0c\x6a\x6d\x6e\xbb\x0a\x9c\x3f\xab\xed\ \x8a\x49\x90\x9c\xe0\x3c\xf7\x70\x9f\xa0\xff\x00\x3a\x70\xea\x0d\ \xae\x1c\xcb\x0a\xc3\xcd\xa5\x28\x64\x0c\x01\xc6\x38\xff\x00\xca\ \xa0\x7d\x38\x75\x4e\xbb\xfa\xc7\x0a\x2f\x4d\x92\xe3\xab\x23\xb9\ \xca\x8f\xf9\x54\xff\x00\xa8\x72\x54\xce\x9b\x75\x29\x04\xad\xc1\ \x80\x07\xae\x69\xd1\xa5\xc3\x9c\x2d\xcc\x44\x6a\xf1\x69\xcd\xcb\ \xd7\x61\x4d\x4a\xb9\x94\xb1\xf6\x68\x00\x25\xb1\x91\x90\x3b\xff\ \x00\xae\x29\xad\xc4\xb8\xf8\x52\x54\xf2\x89\x58\xed\x9e\xd5\x25\ \xb0\xe8\xc9\xd3\x50\x1d\x92\x4b\x49\x56\x49\x1d\x8d\x49\x5a\xd0\ \x30\x83\x61\x2a\x52\xc3\x87\x80\x73\xeb\xdf\xfc\x6b\x7b\x92\x5b\ \x98\xd4\x5b\xd8\xae\x2d\xd1\x56\xca\xd0\x5a\xc1\x5e\xf1\x91\xeb\ \xf3\x57\x93\x13\x1c\x85\xa5\x5a\x0f\x0f\xda\x94\x0e\xff\x00\xe3\ \x51\x3b\x46\x95\x8b\x6c\xbb\x89\x13\x1c\x2b\x6c\x72\x02\xbb\x8a\ \x76\xba\xca\x55\xc2\x50\x66\x33\x79\x69\x3c\x24\x01\xc7\xa1\xaa\ \x4e\x39\xda\x5c\x8b\xc2\x4e\x09\xbe\x7b\x09\x6d\xb1\x5c\x9d\x39\ \x29\x09\x27\x72\xc1\x51\x1d\xbf\xd7\x61\x53\x67\x9c\x6e\x14\x14\ \x30\xd8\x19\x09\xc7\xe5\xcd\x23\xb3\x47\x6a\xd9\x10\x3a\xf7\x2e\ \xa8\x6e\x38\xa6\xdd\x43\x73\x11\xd9\x5b\xce\x2b\xce\x7e\xe8\x3f\ \xeb\xe9\x48\x95\xea\xce\xdc\x90\xf8\x7e\xcc\x2f\xcd\x91\xcd\x67\ \x3b\x9f\xb3\x36\xac\x2b\x39\x5e\x2a\x22\x8b\x72\x9e\x06\x4e\x00\ \x09\x38\xa5\xcf\xac\xbc\xa5\xbe\xbc\x92\xbe\xc0\x0e\xde\xd4\xe7\ \x69\x0d\xa2\xd8\xa6\xca\x48\x52\xff\x00\xb5\x5a\xd1\x91\xea\x6b\ \xd3\xb3\x4c\x39\x6d\xef\x50\xf0\xd5\x81\x92\x7b\xfc\xd5\x9b\x68\ \x98\x14\x03\x2a\xe5\x04\x00\x2a\xa3\x42\x36\xad\x6d\xf2\x36\x92\ \x47\xc5\x4a\xf4\xa5\xd4\x2b\x11\x9c\xfb\xc3\xee\x92\x3b\x0a\x55\ \x6a\x6a\x71\xb0\xda\x35\x1c\x25\x71\xfb\x51\xdb\x8b\x2f\x2a\x53\ \x5f\x71\x5f\x7b\x15\xb3\x4d\x4c\xd8\x55\x15\x67\x85\x0c\x27\x26\ \x9c\x58\x7d\x32\x1a\x2c\x48\x39\x49\x1c\x1a\x61\xb9\x40\x72\x04\ \x8f\x19\xbc\xa9\xb1\xca\x7e\x94\x98\x3c\xf1\xe1\xcf\x71\xd3\x59\ \x25\xc4\x86\xc4\x7f\x54\x41\x72\x2d\xc1\xd5\x3a\x83\xb1\x67\x8c\ \xfe\x54\xdf\x15\x95\xa8\x61\xb6\x54\x46\x78\xe2\xa6\xaa\x90\xcd\ \xdf\xc3\x62\x42\x02\xd4\x93\xdc\x8a\x76\x8f\x06\x2b\x0d\x84\x86\ \x86\x3b\x76\xa6\xba\xb9\x12\xcc\xb5\x14\xa9\x67\x6d\xc5\xe8\x57\ \x2e\x27\x0a\x2a\xd8\xa6\xd5\xee\x46\x31\x53\x2e\x9d\xba\x56\xcb\ \x9b\xc8\x52\x87\xaf\xad\x3a\x49\xb7\x45\x90\x8c\x29\xa4\x80\x07\ \xa0\xa4\x76\x9b\x69\xb5\x4f\x53\x8c\x92\x50\xaf\x4c\xd2\xea\x55\ \x8d\x48\x35\xcc\x6d\x3a\x52\xa7\x35\x2e\x43\x9d\xfe\x42\xdb\x65\ \x2d\x20\x94\x95\x1f\x6a\x65\x53\x45\x63\x0a\x51\x27\xd4\x9f\x6a\ \x77\xbe\xa3\xc7\x61\x0e\xa3\x38\x4f\x71\x8a\x68\x79\xd0\xd4\x72\ \xe6\x4f\x94\x55\x70\xfa\x41\x58\x9c\x46\xb3\x77\x19\xef\x69\xd8\ \x50\xd0\x18\x4e\x79\xad\x0b\x18\x40\x4f\x6a\xf2\x53\xee\x4a\x90\ \x83\xb3\xcb\xef\x5b\x1e\x42\x8a\x02\xb9\xad\x88\xc6\xcd\x24\x61\ \xf6\xdc\xc1\x27\x38\xa5\x57\xa7\x52\x88\xa4\x9e\x4e\x31\x9a\xd0\ \xa6\x96\xe2\x40\x1c\x1e\x79\xf6\xa6\x9b\xcc\x97\x50\xd3\x8d\xad\ \x5b\x86\x3f\x2a\x3b\xc1\x1c\xc9\xfa\x59\x5c\x40\xb7\xc0\x88\x92\ \x37\x39\x21\xc7\x0f\xd1\x29\x03\xfc\x4d\x73\xf5\xa6\x73\xd6\xc7\ \x94\xbf\x05\xb9\x0c\xba\x8d\xae\x32\xe8\x3b\x56\x3d\xc1\x07\x29\ \x50\xee\x14\x39\x1f\x98\x36\xb7\xe9\x44\xfa\xdf\xd4\x90\x93\xce\ \x13\x18\xe3\x27\x8e\x56\xac\xff\x00\x85\x56\xf6\x6b\x63\x73\x90\ \xe9\x5b\xa1\x88\x8c\x00\x5e\x90\xae\x71\xf0\x91\xea\x49\xc0\x03\ \xdc\xd7\x9f\xad\x34\xdb\x6c\xee\xe0\xe2\xd5\x35\x61\xa9\x48\x53\ \xee\x2d\x6d\x78\xcb\x27\x24\xf8\x87\x25\x23\xdc\xab\xfc\x6b\xa0\ \xbf\x47\x6e\x9b\x08\x52\x60\x5f\xaf\xe9\x30\xe6\x4d\x4f\x8f\x6a\ \x74\x29\x0e\x61\xb0\x33\xb9\x23\x90\x95\xe7\xbe\x79\x03\x18\x1d\ \xea\x98\xb2\xfd\x9e\xe7\xa9\x20\xdb\x62\xb1\xe0\x41\x5c\x96\xfc\ \x64\xf7\x51\x40\x50\xce\x4f\xa9\xc6\x4e\x3d\xea\xea\x8f\xac\xda\ \xd1\x70\x0e\x54\x1e\x66\x14\x99\x0a\xb3\xb6\x71\x95\x87\x37\x24\ \x10\x3b\x8c\xa4\x83\xed\xd8\xf1\x58\x31\x75\x5a\xb4\x17\x33\xa3\ \x87\xa4\x9a\x73\xec\x1b\x3a\xfb\x0d\x85\xd8\xde\x8e\x2e\x6f\xcd\ \xb9\xc8\x9e\x97\x59\x65\xc0\x54\xea\x90\xda\x56\x16\xa3\x8c\x01\ \x9d\xd9\xc6\x2b\xa6\x3a\x57\x32\x72\x3f\x46\x3d\x11\x2e\xdb\x2b\ \x6d\xc9\xf8\x0d\xc2\x88\xe1\x20\x21\x95\x6e\x50\x53\x87\x3c\x1d\ \x88\x42\x95\x8f\x52\x90\x3d\x6b\x8a\x65\x5d\xa6\x4e\xb9\xbb\x73\ \x9c\xf1\x7a\x5b\xe7\xce\xbc\xf0\x91\xe8\x84\x7c\x0f\x7f\x53\xcd\ \x5e\x5f\xa2\x9e\xb9\xd4\x72\xaf\xb6\xde\x96\x48\x98\xda\xac\x66\ \x3d\xc1\xdb\x7b\x65\xa1\xe2\xb6\xe2\x99\x70\x86\xf7\x7a\xa4\x6e\ \x71\x40\x77\xe7\xd8\x0a\xa6\x0d\x3a\x34\xf8\x6f\x7f\xa9\xb3\x15\ \x85\x75\x12\xaa\xbe\x3e\x08\x8d\xeb\x4b\xf5\xe7\x51\xea\x65\x68\ \xab\x5c\xe9\x6b\xb4\xdb\x1d\x52\x56\x95\xbe\xa5\x97\x17\xb8\x95\ \x12\xa3\xfd\xe5\x12\x71\x8e\x49\xf8\xae\xa0\xfd\x16\xf4\x6c\x3d\ \x2d\xa6\xee\xa2\x3c\xc7\x25\x7d\xbd\xd6\x9c\x74\xab\x18\xdc\x94\ \x91\xc1\xc7\xb1\x19\x19\x3d\xbe\x6a\xa7\xe8\xc6\x86\x5c\x7b\xc5\ \xd2\xe7\x75\x28\x56\xfb\x83\xaa\x69\x18\xc1\x27\x71\xe4\xfb\xd7\ \x46\x58\xa5\xb7\x6c\x6d\xdd\x8c\xa5\x48\x59\x05\x5b\x4e\xdc\x60\ \x55\xa8\x54\xd5\xf6\x15\xc6\xc5\x65\xca\xb7\x26\x21\x09\x00\x24\ \x0c\x01\xd8\x0a\x61\xd7\x36\xbf\xd6\x76\x25\xc7\x0f\x25\x94\xa5\ \x5b\xca\x89\xf5\xec\x3f\x9d\x2d\xb5\xde\xed\xd7\x01\xfe\xcf\x21\ \x25\x49\x4e\x54\x92\x7e\xef\xbf\x34\xcb\xad\xf5\x7e\x9b\xb4\x5a\ \xc8\x9f\x72\x88\x43\x8e\x04\x14\x07\x02\x94\x38\x27\x38\x1f\x4a\ \xd9\x2b\x38\x9c\xc8\x29\x46\x6a\xcb\x52\xab\xba\xe8\x70\xb0\xb5\ \x26\x7b\x4e\x10\x09\x03\x38\x22\xa3\xb2\xad\xf7\xdb\x36\xf4\xb5\ \x39\xd4\xb2\xa1\x85\xb4\xe8\xf1\x59\x58\xf6\x29\x3c\x54\x86\x67\ \x51\x34\xa4\x97\x1e\x16\xf9\xc9\x71\x0d\xed\x4a\xd6\xb6\x54\x13\ \xb8\x8e\xd9\xc5\x37\xa2\xe8\xc4\xf5\xb6\x94\x2f\xf6\x4e\x61\x4d\ \xba\x9f\x32\x01\xf6\xcf\x6a\xe0\xe2\x28\xc2\x2f\xaa\xf5\x3d\x3e\ \x1a\xad\x67\x1e\xba\xba\xef\x43\x0c\x0b\x2d\xa9\x3a\x8a\x35\xfa\ \xee\xd3\x4e\xda\x0b\x6e\xc3\x9f\x1f\x68\x71\xb6\xdb\x75\xb5\x23\ \xc4\x52\x8f\x2a\x61\x0a\xd8\xa2\x95\x65\x48\xfb\xc0\xe1\x26\x90\ \xf5\x0b\xa3\x5a\x83\x4f\x6b\xbd\x29\x2f\x4a\x5b\x2d\x57\x18\xc6\ \xdb\x1a\x1b\xac\x6d\x42\x19\x93\x21\xa5\x2c\x6e\x52\x0e\x12\x41\ \x6f\xc3\xca\x8f\x72\x3d\xcd\x3b\x5f\x18\x91\x15\xf4\xcc\x8c\xd9\ \x4a\xe3\xbc\x8f\xb5\x33\xb7\xc8\xfb\x64\xf9\x92\xa1\xd8\x82\x32\ \x3f\x1a\x84\xcc\xb5\x6a\x4b\xe7\x56\x1b\xd1\xb6\xdd\x47\x31\xb8\ \x3a\x6e\x28\x85\x05\xd7\xdd\x50\x54\x44\x8c\x2d\x4d\x82\x0f\xed\ \x0a\x72\x90\x14\x79\xda\x84\x03\xda\x9f\x43\x13\xc1\xa4\xe3\x6d\ \x79\x11\x53\x09\x2a\xf5\xd4\xd4\xec\xac\xef\x7e\x49\x78\x6b\xcc\ \xd7\xfa\x58\x68\x7b\xdc\x58\x2c\x6a\x99\x76\x0b\x0e\x98\x43\x6d\ \xa5\xb5\xb5\x6c\x94\xa4\x07\x15\x9e\x49\x09\x01\x24\xd5\x27\x63\ \x96\x2d\xa1\x6b\xbe\x59\xbf\x58\x21\x6c\xe5\xa5\x4b\x74\xb8\xda\ \x37\x00\x42\xf0\x49\x1d\xb2\x41\xae\xc0\x99\xd3\x5b\xc5\xe6\xd4\ \x22\xea\x0e\xa8\x6a\x8b\x8b\x4a\x00\xa9\x95\x29\x2a\x68\xe3\xdc\ \x2b\x39\xfa\xd4\x1f\x48\xf4\xbe\xd5\x77\xd6\x97\x3e\x9e\xdd\xe7\ \x06\x95\x11\xd6\x2e\x4c\xc8\x6e\x30\x59\xb8\x42\x42\x90\x57\x1d\ \x63\x38\x41\x0a\xd8\x42\x87\x23\x72\xc7\x20\xe0\x68\x86\x2a\x4e\ \x69\x49\x68\xfc\x0c\xfe\xcf\x08\x53\x94\xa3\x52\xed\x6f\x64\xf6\ \xbe\xfa\x92\x3f\xd1\xe3\x47\xdc\xa5\xf4\x65\x77\x99\xb0\x15\x6f\ \xfb\x52\xde\x75\x95\x38\x80\x93\x21\x92\xac\xb6\xbc\x0c\x28\x8c\ \x64\x61\x5c\x60\x0c\x0e\x73\x49\x05\x92\xfb\x36\x49\x65\x0f\xab\ \xc3\xf4\x4b\x63\x6a\x53\xf8\x0e\xd5\xd2\x5a\xa9\x0d\x33\xa5\xa5\ \xc5\x8e\x03\x09\x43\x29\x69\x09\x6d\x20\x04\x0e\x00\x00\x76\x03\ \x15\x54\xbd\x74\xb2\x59\xa3\x78\x77\x3b\xa4\x58\x61\x47\xfe\x19\ \xc0\xd0\x24\x9f\xae\x7b\xd5\x71\x58\x58\x3b\x5f\xe2\x27\x05\x8d\ \xa9\x79\x49\x2b\xf6\x11\x46\xfa\x71\x31\xe4\x95\xc9\x96\x1a\x3e\ \x98\x19\x22\x91\x5d\x3a\x57\x1a\x4c\x55\xb0\xb7\x83\x83\x9c\xee\ \x4f\x04\xff\x00\x85\x4a\x5c\xd4\x76\x69\x33\x95\x12\xdd\x77\x80\ \xf3\xa1\x39\x29\x6a\x58\x0b\x4e\x31\xdc\x13\xf3\x5b\x58\xbd\x2e\ \x3a\x83\x72\x81\x2d\x93\x8f\x10\x8e\x47\xf9\x8a\xe7\xba\x34\xe0\ \xce\x97\xb5\xe2\x9a\xbd\xfc\x8e\x4b\xea\x97\x4a\x2e\x3a\x6a\x73\ \x92\x23\xa3\xed\x76\xe2\x3c\x4c\x8e\x16\x9c\xf7\xc8\x3e\xdc\x57\ \xba\x6e\xf0\xd4\xbd\x37\x0d\x32\x5e\x54\x79\x70\x52\xa6\x16\xe8\ \x51\x04\x24\x0f\x22\xbe\xa3\x20\x11\xf1\x5d\x77\x7c\x81\x0e\xed\ \x05\x71\xdd\x69\x0e\xb6\xb6\x94\x9d\x8b\x19\x05\x24\x60\xe3\xda\ \xb8\xb3\x5f\xe9\xa7\xb4\xd5\xce\xe5\x6e\x6d\x2e\x06\xdb\x7c\xa9\ \x0a\x27\x3b\x90\xac\x81\xf9\x1c\x8a\xd9\x4e\xac\xa7\x68\x37\xe0\ \xcc\x55\x14\x35\xaa\xa3\xe2\xbe\xa6\xfb\xab\xea\xbf\xd9\xa5\xdd\ \x1b\x43\x3f\x6c\x84\xe8\x66\x61\x61\x21\x28\x77\x23\x87\x00\x1d\ \xb3\x8c\x11\xee\x33\xeb\x4a\xba\x04\x89\x1f\xd3\x49\xd7\x16\xdb\ \x26\x3b\x50\xcb\x4a\x5f\xa6\xf5\xa8\x6d\x4f\xd4\xe0\x9f\xc2\x99\ \xfa\x7a\x5e\x8b\xd3\xfd\x71\x74\x4a\x72\x98\xa9\x83\x82\x7f\xb4\ \xb7\x4a\x71\xf9\x13\x56\x1f\x46\x6d\x42\x1c\x38\xf6\xc4\xba\x16\ \xea\xdc\xfb\x44\x8c\x0e\x02\x88\x18\x4f\xe0\x38\xfc\xeb\xaa\xe3\ \x9d\x46\x9c\x77\xd8\xe0\x62\x6b\x7e\xcb\x4f\x99\xd4\xba\x11\x25\ \x70\x9a\x4e\x15\x92\x3f\x21\x56\xac\x73\xe0\xb0\x1a\x47\x27\x18\ \xc8\x1d\x8d\x57\xfa\x0e\x29\x65\x86\xdc\x20\xef\x03\x81\x8a\x9f\ \xb4\x76\x37\xe6\xc2\x94\x7f\x2f\xf5\xcd\x75\x6b\xac\xa9\x43\xb0\ \xe6\x61\xa3\x65\x70\x62\x23\x4d\x2c\xac\x20\x15\x9e\xe7\xde\xb7\ \x6e\x09\xe0\xa8\x8f\x72\x38\x34\x21\xb5\x93\xca\x8a\x53\xc0\x3c\ \xf7\xac\x43\x49\xff\x00\xe3\x27\x20\x7d\x78\xfa\x56\x56\xef\xbb\ \x34\xa5\x6d\x90\x3a\xe0\x4a\x15\xb8\xe0\x7a\xfb\x7f\xae\x68\xa4\ \xf2\xad\xcb\x7f\x1f\xed\x07\x60\x3e\x64\x83\x9c\xd1\x4d\x87\x0e\ \xda\xb1\x72\xe2\x5f\x44\x56\xfd\x21\x60\x0d\x3f\x12\x6b\x87\x09\ \x41\x70\x72\x7f\xbe\xaa\x98\xbb\xba\x6a\xca\xdc\xc9\x40\xe5\x29\ \xcf\x06\xa3\x5d\x3b\x4a\x53\xa2\xe0\x60\x60\x23\x7f\xfd\xe2\xb9\ \xa9\x4b\x4c\xbc\xf2\xb3\xbb\xc3\x6c\x1c\x12\x7b\x62\xb6\x3b\x25\ \x73\x9f\x4a\xf9\x54\x4c\x00\x6d\xa1\xb4\x14\xe4\x7b\x56\xc4\xb8\ \xca\x52\xb5\x78\x89\x48\xf9\xf4\xef\x58\xba\xab\x5b\x3e\x47\x56\ \x16\x73\xcf\x9b\x9a\xcc\x2e\xcd\x27\x0d\x85\x6d\xdc\x31\x9f\x8f\ \x6f\xa5\x55\xbe\xe6\x35\x2b\x73\x47\x3f\xdf\x2f\xba\x9a\xe5\xa5\ \xee\x1a\x3e\xdb\x74\x94\xe5\xfc\x6a\x39\x10\x23\x48\xf1\x0a\x9e\ \x0d\x23\x32\x12\xac\xe7\x3f\xd5\x8d\xbf\xc2\x9f\xed\x17\xa9\xf7\ \x58\xd6\xb9\xb6\xe7\xca\x83\x7a\x45\xcb\x94\xa6\x84\x85\x32\x1d\ \x79\xdd\xa8\x40\x52\x92\x09\x49\x4e\xc7\xc8\x20\x1e\x45\x49\x2d\ \xfd\x38\x99\x69\xea\xdc\xdd\x67\x1a\x43\x0e\x5a\x5d\x8f\x96\x58\ \x49\x3e\x22\x64\x94\x21\xb5\x38\x46\x31\x8d\x88\xc7\x04\x9c\xa8\ \xf6\xa4\x3a\x33\x47\x3f\xa4\x2d\x3a\xb1\x13\x27\xc5\x7c\xdc\x96\ \xeb\x76\xed\xaa\x51\xf0\x62\xe5\xc5\x36\x85\xe4\x0c\x10\xa7\x57\ \xc0\xce\x3d\x0f\xa0\xa5\xdc\x95\xa3\xb1\x9b\x87\x38\xbe\xb7\xae\ \xc1\x95\xbd\x69\xa8\xdb\x47\x4d\xdb\xb6\x18\xff\x00\x64\xba\x5a\ \x9d\x79\x6d\xce\x98\xb7\x1c\x5a\x9a\x69\x38\x0e\x39\xb0\x93\x8d\ \xe0\x82\x39\x27\x39\x00\x0e\x61\xb2\xf5\x5d\xe6\x05\xd7\x5b\xdd\ \x84\x34\xce\xb7\x42\xba\xf8\x8e\x07\x25\xa9\x2b\x4a\x0a\x11\x94\ \xb6\x9d\xa4\x70\x39\xe4\xa7\xbd\x3a\x3f\x61\xbf\x22\x3e\x8a\xfb\ \x33\x96\xf7\x9f\xd3\x90\x9d\x8a\xe2\x16\xf2\x90\x87\x7c\x46\xd0\ \x82\x52\xa0\x82\x78\x28\xcf\x23\x9c\xfa\x56\x8b\x86\x90\xb8\xbd\ \x61\xd6\x70\x92\xf4\x30\xed\xee\x41\x72\x31\x52\xd4\x12\x94\xec\ \x4a\x70\xbf\x2f\x07\x29\x3d\xb3\x4c\x8c\x24\x97\xae\xc2\x8d\xc9\ \xef\xeb\x41\xcb\xa8\xd7\xd7\xec\x3a\x1a\xe1\x7a\x84\x41\x75\xa6\ \x92\x59\x2a\x19\x00\xad\x49\x4a\x4e\x3d\x70\x54\x0d\x44\xe3\x5d\ \x35\x0e\x97\xb9\x68\x89\x52\x35\x04\xeb\x9b\x3a\x87\x6b\x33\x58\ \x94\xa0\xa4\x05\xac\x23\x6a\x9b\xc0\x1b\x70\x57\x8f\xc3\xe4\xd4\ \xfe\x7e\x98\x46\xa4\xd2\x52\xec\x73\x0e\xc4\x48\x60\x34\x1d\x48\ \xce\xc5\x8c\x14\xab\x07\x19\xc1\x00\xd4\x2f\x4e\x58\xaf\xb7\x3e\ \xa0\x59\x74\xf6\xac\x09\x61\x3a\x45\xa0\xb8\x65\xa8\xee\x6d\xb8\ \x60\x24\x25\xcf\x10\x8d\xa3\x6e\xd4\x64\x67\x39\x07\xe7\x17\xa9\ \x7c\xc8\xac\xaf\x71\x4f\x4f\xef\xba\xa6\xef\xaf\x75\x2b\x37\x18\ \xf1\xcc\x28\xb2\x92\xc3\x89\x4b\xe4\xfd\x98\x84\xa8\x00\x81\xb4\ \x6e\x0a\x29\xc9\x27\x1f\x8d\x59\x8c\x82\x95\xa5\xc4\x2b\x6a\x87\ \x62\x3b\xe6\xa0\xee\x69\xcd\x51\xa3\x2e\x9a\xc2\xff\x00\x09\x16\ \xdb\x84\x1b\x8a\x97\x35\xa6\x80\x71\x52\x7c\x40\x95\xec\x40\x40\ \x4e\x08\x2b\x50\x04\xee\xed\x9a\x99\x5a\x8c\xb3\x6e\x8e\x67\xa5\ \x91\x37\xc3\x4f\x8f\xe1\x83\xb7\xc4\xc7\x9b\x6f\x27\x8c\xe7\x1c\ \xf6\xab\x53\xbd\xac\xcb\x47\xbc\x99\xd8\x6e\xc8\x79\x09\x61\xe5\ \x10\xbf\x42\x4e\x29\xfd\x2b\x56\xd2\xd3\xa9\xde\x83\xc6\x48\xcd\ \x56\xf8\x50\x21\xc4\x1c\x28\x76\x23\xde\xa4\x96\x3b\xe8\x4a\x43\ \x32\xf0\x3e\x73\x55\xa9\x4e\xfa\xa3\x4d\x2a\xb6\xd1\x8e\x32\xed\ \xea\x61\xe1\x32\x22\xfc\xa0\xf2\x8a\x72\x83\x29\xc7\xdb\x1f\xb1\ \x50\x3d\x8d\x7b\x09\xb4\x3c\xbf\xb4\x13\x86\x87\xf1\xac\xdf\x9e\ \x84\x1d\xb1\xda\xcf\xb9\x22\xb3\xca\x4e\x5d\x5b\x5d\x8f\x8c\x54\ \x7a\xd7\xb2\x36\x82\xfe\x3f\xab\x20\x63\x27\x9a\xf5\x2e\x0c\xf9\ \xd2\x47\x38\xe4\x77\xa4\xc9\x9f\x28\x63\x81\x8e\xe2\x94\x37\x35\ \x0b\x3b\x1f\x40\x4e\x7d\xa9\x6e\x12\x5c\x86\xc6\x71\x7c\xcc\xbe\ \xe8\x28\xee\xd9\x14\xc9\x77\x88\xa4\x36\xb4\xe3\xca\xae\x45\x3f\ \xa9\xb1\x8d\xc8\x39\x42\xbb\xd6\x97\x9a\x0e\xb6\x52\x7b\x7a\x1a\ \x9a\x55\x32\xbb\x91\x56\x9e\x65\x62\x17\x1c\x60\xec\x38\xe0\xf2\ \x2b\x39\x19\x28\x1c\x1c\x7a\xfd\x6b\x74\xe8\xeb\x8d\x28\xfb\x13\ \xcd\x60\xf1\xc2\x32\x3f\x1f\x5a\xe8\xa7\x73\x9a\xd5\xb7\x35\xa0\ \xed\x6f\x3f\x1c\xd4\x77\x50\x24\xad\x97\x5c\x23\x93\xc0\xa7\xf1\ \x92\x03\x60\xf7\xf5\xa6\xad\x54\x90\xcd\xb9\x7e\xe5\x3c\x50\xf6\ \x64\xa3\x8d\x3f\x49\x30\x1c\xd4\xb0\x18\x42\x16\xe3\x82\x39\xc2\ \x10\x92\x4a\xcf\x88\xac\x0f\xe1\x55\x94\xa7\xd4\xd4\x44\x32\xe2\ \x42\x4a\xb9\x5a\x7b\x04\x01\xd8\x11\xfd\xae\xff\x00\x9d\x74\x2d\ \xfa\xe4\xc4\x3d\x64\xe5\xc5\xc6\xf2\xeb\x08\x2c\x32\x52\x8d\xca\ \x5e\x4e\x54\x33\xe8\x32\xa2\x3f\x0a\xa0\xb5\x5d\xbd\xe6\xb5\x7d\ \xc5\x97\x12\xa4\x07\x5f\x53\xa0\x3c\xad\xa7\x0a\x39\xef\xeb\x5e\ \x62\x75\x22\xeb\x64\x7c\xb5\x3d\x56\x1f\x09\x51\x60\xa3\x59\x2d\ \x1b\xb0\x97\x4b\xcb\x89\x12\xea\x87\xa4\x3e\xeb\x21\x2b\xc8\x53\ \x68\xdc\x48\xef\x8f\xe1\x8f\xc6\x94\x6a\x0b\x85\xc2\xfd\x7d\x12\ \x9e\x6c\xa1\x2b\x59\x6a\x33\x09\x1c\x34\x80\x78\x48\xfc\xf9\xa4\ \xac\x3a\x98\x58\x79\xa6\xd0\xa5\xe7\x8f\x2e\x46\x01\xed\xfc\xb9\ \xa7\xbd\x06\xf2\x1e\xd5\x11\x64\xc8\x61\x0f\x20\x2d\x3e\x22\x4e\ \x01\x27\x3e\x80\xf7\x27\x8e\x6a\x2a\x5a\x37\xa9\x6d\x91\x34\x13\ \x9c\xa3\x45\xbd\xd9\x67\x68\x3e\x90\x5e\x6e\x2d\x25\xe9\xcb\x6e\ \x22\x31\xc8\x57\x2a\xc9\xf8\xa9\x2e\x9e\xd1\xd7\x3d\x0b\xd4\xcb\ \x05\xe2\x2a\x54\xe1\x83\x29\x32\x32\x84\x90\x56\x8c\xe1\x69\xe3\ \xdd\x24\x8f\xc6\xae\xbd\x32\x23\xc8\x8e\xdb\xf1\xdb\x09\x65\x4d\ \x20\x84\xed\xc7\xd3\x3f\x38\xc5\x48\x92\xc3\x2e\x29\x0b\x2d\x24\ \xa8\xfa\x91\xda\xb8\xb2\x73\x9e\xaa\x5a\x9e\x87\xda\xb2\x75\x32\ \xac\xa6\xf9\x16\xf8\xf6\xeb\x9b\xab\xb7\x80\x63\xcb\xfd\xb3\x2a\ \x07\x82\x95\x0c\x8c\x7e\x1f\xc8\xd6\x77\x99\x0e\x46\xb7\x9f\x0d\ \x0a\x5a\x82\x09\x01\x3f\xda\xc7\x15\xe4\x09\xad\xf8\x5f\xab\xdd\ \x5a\x43\x8d\xa8\xfd\x9d\x4a\xfd\xd5\x13\xf7\x0f\xb0\x3d\xc7\xb1\ \xfa\xd6\x6d\x07\x1d\x0b\x0a\x18\x20\xe0\x83\x91\x83\x5a\x93\x4e\ \xed\x73\x39\x96\x69\xd9\xf2\x2b\x0d\x27\x76\xd5\xa6\xfb\x2d\x57\ \x48\xce\x08\x01\xb2\xd9\x65\x95\xe0\x0c\x9e\x54\x7d\xc5\x45\xe7\ \xd9\xf5\x4b\x17\xdb\x4c\xd8\xa7\xec\x51\x04\xe7\x4c\x87\xde\x88\ \xdc\x96\xdc\x6d\x69\x52\x53\xfb\x25\xf0\x48\xc8\xc0\xf7\xed\xcd\ \x5e\x82\xce\x7e\xfb\x6f\x23\xcd\x83\x85\x0c\xd2\xf4\xb0\xea\xdb\ \x6d\x0f\x36\xcb\xa9\x69\x61\xc4\x05\x73\xc8\xec\x69\xb4\xaa\x4e\ \x2a\xcc\x2b\xf0\xaa\x3b\xda\xd7\x2a\x1e\x8d\x88\xda\x56\xe5\x71\ \x55\xde\x35\xcd\xf5\xa6\x30\x8c\xf2\xcc\x72\x95\x48\x58\x39\x49\ \x2d\xe7\x09\xf2\x9c\xfe\x34\xa9\x56\x07\x5f\xb8\x22\x56\x93\xb3\ \xbf\x6a\x52\xe4\x91\x21\x0e\xa4\x04\x16\xfb\xe5\x48\xce\xd3\x93\ \xed\x83\x56\x94\xf8\xab\x7a\x42\x9e\x52\x1a\x4a\x94\x30\xac\x27\ \x71\x38\xed\xf1\x49\xd7\x19\x49\x00\x90\xbc\x11\xc9\xc7\x35\x59\ \x43\x32\xb4\x86\x50\xae\xa8\xbc\xd4\xd6\xaf\xb7\x61\x8f\xec\x52\ \xe5\xc6\x4c\x29\xae\x32\xfc\xc9\x4a\x43\x6e\x18\xe8\xc2\x01\xf4\ \x48\xcf\x7a\x8f\xc7\xb0\xb3\x0f\x5f\xfe\xbf\x62\x7c\x49\x6b\xbb\ \x4c\x94\xee\xd8\xea\xdf\xb1\x08\xc0\x49\x52\xfb\x67\x6e\xc0\x52\ \x3b\x1a\x96\xea\xeb\x8b\xda\x72\xd0\xd2\xe2\x25\xb3\x7b\xb8\x6e\ \x8d\x69\x64\x9c\x16\xf2\x3c\xf2\x55\xec\x94\x27\x24\x13\xeb\x50\ \xfe\x9d\xe9\xb6\x2c\x82\x52\x63\x2d\x4e\x30\xdb\xa5\x0d\x28\xaf\ \x20\x13\x82\xb5\x01\xe8\x54\x42\x73\xf4\xae\x7e\x26\xce\xa4\x21\ \x1e\xdb\xfa\xf5\xd8\x6f\xc3\xa9\x2a\x53\xaa\xdd\xae\x9a\xb7\x6f\ \x6f\xc1\x3b\x78\xd9\xf6\x16\x1b\x1b\x8b\x0b\x29\xc0\x29\xc0\xca\ \xbb\x1a\x8d\x4f\xb5\x44\x63\x5a\xc6\xd4\x4e\xba\xb8\xee\x2e\x22\ \xed\x8f\xbc\x85\x11\xb5\xa7\xfc\x89\x59\xc7\xaa\x5d\x2d\xfe\x07\ \xe2\xa4\xb6\xb2\x3c\x32\x97\x00\x27\x04\x63\x39\xa8\xb7\x54\xad\ \xee\x49\xd3\x32\x58\x6d\x6f\x25\x05\x3b\x87\x84\xa2\x95\x12\x08\ \x56\x32\x3d\xf0\x38\xfa\x53\xaa\x36\xa2\xa4\xb9\x6a\x64\xa4\xaf\ \x3c\x97\xb2\x7a\x7c\x19\xe3\xb2\xaf\x4f\xcb\x95\x06\x55\xf6\x4c\ \xc8\x29\x29\xd8\xdb\x1c\xa9\xf2\x09\x0a\x25\x44\xe4\x64\x72\x30\ \x33\x9e\xf5\x5c\xf5\x47\x4d\x3f\x70\xbc\x46\x99\xa6\xf4\xb2\xd0\ \x98\x88\x6f\xc3\xfb\x6b\x21\xd6\x54\xe9\x74\x15\xf8\xbc\x95\x94\ \x90\x00\x38\x3c\x8f\x6a\x97\x74\xfa\xf1\x17\x50\xdb\x00\x5a\x9a\ \x4d\xc5\x18\x54\xa4\xa4\xf2\xa5\x1c\xe1\x78\xfe\xf6\x09\xfa\x85\ \x0f\x4a\x98\xc7\x6a\x7b\x44\xa5\x25\x4a\x47\x04\x07\x46\x41\x1f\ \xce\xb4\xc2\xb7\x12\x2a\x48\x5d\x4a\x4e\x8c\x9c\x25\xa5\xbe\x1e\ \xbb\x8e\x5c\x56\x88\x72\x3f\x51\xdd\x93\x7d\xb5\x2d\xdb\x7b\xf7\ \x94\x3e\xa3\x0e\x23\x8c\x30\x96\x14\xa0\x5c\x65\x09\x56\x54\x94\ \x8c\x90\x92\x73\x4f\x7a\xd9\xeb\xd6\x93\xd5\x2e\x39\xa4\x2d\x9a\ \x85\x7a\x51\x21\x29\x31\x27\x28\xbe\x42\x40\x19\x20\x9c\xa8\x0f\ \x5c\x13\xeb\x5d\x19\x2d\xf9\x6b\x65\x49\x93\x14\x28\xab\xb6\x17\ \xbd\x39\x1e\xbc\xf6\xa4\x52\xd0\xf4\xa4\x00\xb6\xf6\x11\x80\x72\ \x8f\x4a\x5d\x66\xe5\xba\x1d\x87\xa9\x1a\x4a\xca\xef\xe3\xf8\x18\ \xf4\x0d\xed\x8d\x43\x62\x8b\x22\x12\xca\xd0\xb4\x0c\xa8\xa4\xa7\ \x8f\x6e\x40\xaa\xcb\xf4\x80\xb0\x07\x6d\xd7\x8b\x82\xda\x0b\x58\ \x65\x0e\x05\x01\xfd\x95\x8e\x3e\xb8\x35\x6b\xdb\x6d\x49\xb2\x3e\ \x57\x10\x84\xb0\xb5\xef\x2d\x60\x00\x14\x7b\xe3\xdb\xe9\x4d\x7d\ \x46\x81\x12\xeb\x66\x97\x0a\x62\x9c\x43\x13\x11\xe1\x1f\x0f\x97\ \x14\xa2\x41\x01\x03\xdc\xe3\xf0\xef\xe9\x59\x5a\xcb\x67\xd8\xc3\ \x32\xce\xf2\xec\xce\x4e\xb7\x28\x5b\xba\x42\xdd\x9d\xe4\x11\x37\ \x54\xdd\xd8\x7c\xa4\xf0\x53\x19\xa2\xa0\x15\x8f\x6d\xc7\x8c\xfa\ \x66\xac\x8e\x85\xc6\x7a\x5c\xb6\x2e\xa9\x21\x4c\xbc\xe2\xf7\x10\ \x73\x80\x14\x40\xcd\x44\xba\x8d\x65\x9b\x7c\xea\x79\xb7\x48\x91\ \x1e\x01\x65\xff\x00\xb2\xc5\x4a\x7e\xe3\x6d\xa5\xbe\x10\x9e\xdd\ \xbd\xcf\x04\xe7\x35\x26\xd1\xa5\x8d\x29\xa8\x60\xda\xad\xf2\x5a\ \x52\x87\xec\x5e\x09\xc9\x0e\x0c\xf3\xcf\x62\x41\xf5\xfc\xab\xb3\ \x43\x19\x08\xce\x32\xed\xd4\xe3\x63\x3a\x3a\xa3\xa0\xe4\xb9\x7f\ \x09\x1d\x81\xa5\xf0\x18\x46\x3b\xfe\xee\x3d\xea\x5c\x85\xa1\x94\ \x03\xc9\x57\xa7\xc7\x15\x5e\xe8\x69\x61\x50\x50\x54\xb0\x5c\xfa\ \x7a\xd4\xe2\x37\x20\x2d\x47\x27\xbe\x2b\xb9\x55\xaa\x8b\x37\x23\ \x87\x46\x5a\x19\xba\xeb\xce\x67\x7a\xb6\x80\x7b\x56\x29\x6f\x1c\ \xee\x51\x56\x3b\xfa\xd6\xd2\x48\x39\xe7\xd8\x57\x80\xf9\xcf\x27\ \x8e\x00\x27\xe6\x97\x7b\x2d\x06\x5a\xef\x53\x04\xb8\xeb\x0a\xde\ \xda\x8a\x87\x6e\x7b\x9a\x2b\x35\xe1\x38\x21\x47\xf0\x1c\x7d\x28\ \xa2\xc9\xee\x89\x4d\xad\x99\x0a\xe9\xb0\x43\x7a\x36\x0b\xef\xe7\ \x62\x7c\x4c\x0f\xff\x00\xa8\xaa\x70\x9b\x35\xe9\x89\x29\x6d\x45\ \xb6\xc0\xe3\x07\xe6\xa3\xda\x15\xd5\xc8\xd2\x90\x5b\xf3\x25\xb6\ \xfc\x4c\x10\x3d\x7c\x45\x7f\x9d\x3f\x21\x29\xc7\x39\x18\xc9\xfa\ \x71\x5b\xa1\x15\x64\xd9\xcd\x53\xea\xa4\x8d\x02\x3a\x41\x05\x47\ \x71\x3d\xf9\xed\x5b\xd4\x84\x1f\x2a\x06\x3e\x7d\xab\x15\x00\x0e\ \xd4\xee\x23\xb8\xad\xa8\x52\x4a\x7b\x67\xd4\x0f\x7e\x3d\xe9\xa5\ \x45\x36\x79\xea\x6a\x40\x8a\xf3\x89\x28\x73\xee\x27\xfd\x77\xa8\ \x86\xb2\x2b\x4d\xd9\x49\x4c\x90\xa6\x96\x90\xb4\xa4\x28\x1e\x0f\ \x62\x3d\xc1\xa8\xf7\x4b\xe3\xc0\x9d\x77\xbf\x5d\x2e\x4c\x46\x91\ \xa8\x18\xbe\xc8\x69\x4e\x3c\x80\xa7\x98\x42\x55\x86\x92\x82\x79\ \x4a\x36\x60\x8c\x70\x72\x7d\xea\xb3\x54\x08\x31\xfa\x2b\xa5\x2e\ \x05\xbd\x86\xe3\x2a\x2b\x37\x89\x4a\x52\xb7\xae\x2a\x64\x14\x6d\ \x52\xbb\x84\x04\x84\xa7\x03\x00\x0e\x29\x17\xb4\xb3\x25\xb8\x71\ \x5b\x8a\x4c\xb5\x9a\x01\x6d\x82\xda\x81\x49\x3e\x5c\x7a\xfe\x54\ \x27\xf6\xc1\x28\x42\xb7\x0c\xed\x51\x07\x23\x8e\x0d\x56\xb3\xad\ \x31\xe4\x6a\x6d\x4f\xa7\x6c\x52\x5b\xb5\x41\x95\x67\x63\xc6\xfb\ \x38\x09\x6d\x99\x4a\x71\x41\x3e\x51\x80\x37\x20\x00\x71\x8c\x83\ \x4a\x2c\xf6\x57\x75\x15\xa6\x75\x8e\x3d\xbe\xc7\x69\xbc\x59\xae\ \x4c\x2e\x43\x2d\x23\x30\x2e\x05\x08\xdc\x94\x2f\x00\x12\x92\x0f\ \x29\x39\x20\xa4\x67\xda\xaf\x9d\xf6\x15\xcc\x5d\x56\x08\x88\xc2\ \x36\x14\x96\xf1\x9c\x82\x0e\xee\xd5\xb2\x52\x9b\xfb\x53\x9b\x96\ \x8c\x95\x6d\xc6\x7f\x7b\x19\xc7\xd7\x1c\xe2\xa2\x7a\x06\xed\x78\ \xba\xe9\xbb\x7c\x8d\x23\x65\xd3\xf6\x88\xe1\xf7\x9a\x9f\x19\xe0\ \xbd\xa1\xc4\xb9\xb5\x45\x92\xd0\x09\x50\x24\x28\xe4\x8e\x49\xa8\ \x3e\xa3\x81\x68\x90\x7a\xb7\x70\xb8\xb4\xd2\xe4\xc5\x58\xfb\x13\ \x8e\x72\xa6\x5e\xfb\x3a\x4b\x65\xb3\xdd\x2a\x2b\x08\xe4\x60\x9c\ \x0f\x6a\x8e\x27\x30\x72\xd1\x34\x5b\x0c\xde\xe3\xcb\xd5\x12\x74\ \xd2\x22\xac\x3f\x12\x0b\x52\xd4\xee\x46\xd5\x05\xa9\x49\x09\x03\ \xbe\x46\xd3\xf9\xd2\x29\xeb\x8d\x0d\x2e\xcb\x79\xf4\x22\x33\x20\ \x97\x16\x55\xc2\x31\xdf\x3e\xdd\xaa\x0a\x6f\x42\xc9\x7c\xd4\x57\ \x6b\xfd\xbd\x53\xcb\x3a\x36\x1f\xdb\x22\x91\xfd\x6a\x8a\x96\x95\ \x21\x59\xcf\x04\x92\x0e\x41\xc0\xcd\x35\xc8\x86\xda\x75\x3e\xab\ \xb7\xfd\x86\xc9\x16\x33\xda\x3f\xed\x0e\xc3\xb5\x8c\xc7\x0e\x85\ \x2f\x62\x88\xc0\x05\x60\x14\xf3\x81\xc6\xd3\x50\xaa\x3d\x88\xce\ \x4c\x6e\xba\xc6\xd5\x12\xc5\x6c\xba\xc5\xff\x00\x6c\x17\x47\x59\ \x66\x13\x4d\xad\x28\x2b\x53\x83\x72\x72\x54\x46\xd0\x07\x27\x3d\ \xbd\xa9\xfe\x19\x5c\x94\xc6\x2f\x35\xf6\x77\xdd\x03\x73\x4a\x58\ \x51\x49\xf5\x19\x1c\x1e\xfd\xc5\x54\xd3\x2c\xf6\x94\x68\x5e\x97\ \x1f\xd5\xb0\x4f\xda\x2e\x36\xe2\xe9\x0c\xa0\xef\xdf\x19\x5b\xc2\ \xb8\xe7\x25\x23\x39\xef\x81\x9e\xd5\xae\xf4\xd5\xbd\x7a\x6f\x5f\ \x5d\x2e\x29\x69\x37\xd8\x57\x47\x51\x0d\xf2\x70\xfc\x70\x9d\x9f\ \x65\x4b\x47\xba\x41\x04\x63\x6f\x7c\x9a\x38\x8d\x6e\x46\x66\x74\ \xd3\xef\x22\x34\x06\x22\xa5\xd4\xa5\x44\x24\x11\x9e\x79\xed\x5a\ \xd8\x53\x67\x09\x4a\xd0\xa2\x46\x78\x56\x72\x33\xcf\xfe\xb5\x58\ \x58\xed\xec\x5e\x7a\xd3\x71\x95\x7a\x8c\x99\x12\x60\xda\x6d\xd2\ \x1a\x4a\x8e\x50\xcc\x82\x17\xb9\x61\x3d\xb7\x79\x71\x9e\xe0\x67\ \x1d\xcd\x41\xe3\x59\xed\xd2\x34\x3e\x9c\xb8\x3d\x15\x2a\x9b\x2b\ \x5c\x08\x6f\x48\xe7\xc5\x54\x75\x49\x71\xb5\x33\xbf\xbf\x86\x50\ \x48\xdb\x9c\x73\xdb\x9a\xce\xa5\x64\x69\x95\x57\x7b\xdb\xd2\x3a\ \x31\x0b\x42\xd2\x14\xda\x92\xa4\x9e\xc5\x27\x22\xb6\x14\x82\x80\ \x48\xed\x55\xc7\x4c\xe2\x31\x6f\xea\x37\x50\xad\x10\x19\x6e\x2c\ \x08\xf2\xe1\x38\xcc\x66\x52\x10\xd3\x6a\x72\x2a\x4a\xca\x52\x38\ \x19\x3c\x9c\x55\x8e\x06\x72\x3e\x6a\x6f\x71\xd0\x79\x91\x9c\x77\ \x54\xc9\xc7\x74\x1e\xe0\xd2\xb3\x83\x85\x8c\x10\x79\xf6\xa4\xa1\ \x2a\x50\xc1\xe6\xbd\xdc\xa6\xfe\xf7\x23\xf9\x52\xe4\xae\xc7\x45\ \xd9\x6a\x68\xbd\xc4\x0f\x33\xe2\x24\x1c\x8e\xf5\x1f\x03\xca\x52\ \x47\x63\x52\xe6\x76\xbc\xca\x93\xc6\x08\xa8\xc5\xcd\xaf\xb3\x48\ \x52\x48\xe0\x9e\x6b\x46\x1e\x7f\xe2\xf9\x19\xf1\x30\xff\x00\x25\ \xcc\xc2\xde\xc9\x75\xc3\xc7\x03\xb5\x45\xfa\x8a\xe9\x4c\x67\x10\ \x0e\x00\x18\xe2\xa7\x96\xa6\x36\xc3\x53\xa7\xdb\xd6\xab\x5e\xa6\ \xbc\xa4\xb0\xe0\x4f\xb1\xab\x4e\x57\x52\xb7\x22\x99\x6d\x04\xfb\ \x4a\xab\x48\x5b\x99\x7e\x45\xc2\xe4\xfb\x49\x71\x6d\x04\xec\xdc\ \x32\x01\x51\x2a\x26\x90\x75\x77\xa4\xcd\xdd\xe1\xc5\xbb\x24\xbc\ \xc4\xa0\x82\xa2\xe3\x4a\xde\xad\xbe\xc0\x1e\xff\x00\x4f\xa9\xa9\ \x3f\x4d\xff\x00\x6f\x69\xbc\xb2\x17\xb5\xcf\xb3\x25\x63\x1c\xe0\ \xa4\xed\x35\x68\xd9\x59\x55\xc2\xc7\x15\xc5\x36\x0a\xf6\x8d\xc4\ \xa7\x3e\x55\x27\x07\xf8\x1a\xf2\x58\xba\x6d\xd6\xcd\x17\x67\xc8\ \xf7\xb8\x4a\xbc\x3c\x24\x53\xd6\x3c\xd7\xc3\xee\x70\x55\xc7\x48\ \x16\x1b\x75\xb6\x9d\x52\xd6\x96\x37\x95\xe3\x85\x1c\xf2\x9c\x7a\ \x63\xb7\xd6\x99\x2c\xf0\x64\xb1\x71\x69\xef\x33\x61\xb2\x16\x16\ \x7b\x12\x30\x71\xf5\xed\x5d\x29\xd4\xdb\x45\x90\x75\x21\x76\xd8\ \x31\x3e\xc9\x19\xc8\x67\x73\xab\x04\x25\xd7\x82\xb2\x38\xf9\xc2\ \xbf\x21\x54\xf4\xd8\xad\x89\x0a\x86\xc4\x73\xb3\xc5\xfd\xa9\xda\ \x46\x13\xb8\x82\x9f\xa7\xb1\x1e\xdf\x14\xba\x18\xa9\xca\xf1\x96\ \xa3\xb1\x78\x0a\x2b\x25\x4a\x6a\xd7\xd6\xdf\xc1\xd5\xdd\x2f\x6d\ \xe6\xf4\x15\xb9\xf9\x61\x5e\x33\xc8\x0a\xf3\xfd\xe0\x9f\x4c\xfd\ \x7b\xd4\xd2\x3b\x99\x39\x23\xbf\x02\x99\x2d\xed\x26\x2d\xae\x2c\ \x74\xf0\xdb\x2c\x36\x84\x73\xc0\x4a\x52\x00\xfc\xb1\x4e\xb6\xce\ \x52\x92\x52\x40\x3e\x6e\x7b\x0f\xad\x67\x8b\xd7\x41\x15\x5e\x66\ \xd9\xe5\xc6\x02\xf2\xa9\xcc\xa3\x7b\x89\x18\x5b\x27\xfe\x14\x7b\ \x56\xbb\x6e\xa2\x86\xe3\xe2\x2c\xa7\x44\x77\xf3\xfd\x53\xc7\x6a\ \xd3\xf1\xcf\xde\x14\xf2\x0e\xe2\xa0\x92\x4e\x7b\x1f\x4c\x7d\x68\ \x91\x6a\xb7\xcd\x63\xc2\x9b\x0d\x99\x20\x9c\x00\xe2\x01\xc5\x31\ \x41\xa7\x78\xb2\x8a\x70\x92\xb4\xd7\xc8\x7b\xb6\x2a\x33\xad\xa5\ \x4b\x42\x92\x30\x3c\xdb\x72\x83\xff\x00\x58\x7f\x8d\x3e\x43\x8f\ \x13\x68\x29\x71\x93\xf4\x22\xab\xe6\x74\x15\x9c\x2c\xaa\x23\xf7\ \x6b\x6a\xbb\x83\x0e\xe0\xe2\x06\x7e\x99\xc5\x2e\x6b\x46\x49\x48\ \xca\x75\x96\xad\xd8\x3d\x3e\xde\x0f\xf1\x29\xad\x11\x9d\x45\xbc\ \x7c\xc4\x4e\x8d\x17\xb5\x4b\x78\xaf\xb3\x64\xca\x4c\x64\x10\x4a\ \x31\x84\xf2\x48\x1c\x0f\xa9\xed\x50\x8b\xbe\xab\x80\x89\x46\x06\ \x9e\x8c\x35\x15\xdd\x27\x68\x6a\x39\xcc\x66\x0f\xf6\x9f\x74\x79\ \x40\x07\xf7\x41\x26\x94\x3d\xa2\xec\x60\x03\x78\x93\x76\xbd\x60\ \xfd\xdb\x85\xc1\xc7\x50\x4f\xca\x01\x09\xfe\x14\xe9\x19\xe8\xd6\ \xd8\x3e\x04\x48\xb1\xe2\x46\x69\x39\x08\x65\xb0\x84\x0f\x6c\x01\ \x51\x27\x37\xbd\x97\x9b\xfb\x2f\x32\x69\xc2\x94\x35\xd6\x5e\x4b\ \xf9\x6d\xf9\x78\x91\x48\x1a\x6a\x4a\x25\x4a\xbd\x5f\x65\x7e\xb2\ \xbc\xcd\x47\x87\x21\xf2\x30\x86\x9b\xff\x00\xe1\x34\x3f\x71\x3f\ \xc4\xd2\x6f\xb2\x44\xb6\xc3\x10\x61\xa0\x36\xca\x09\xda\x90\x49\ \x39\xfa\x9e\x49\xa7\x69\xf3\xa6\x5c\xde\xda\xd2\x8a\x00\x3d\xc7\ \x14\x95\x36\xf0\xde\x56\xbc\xaf\x06\x93\x92\x37\xea\xa3\x53\xab\ \x39\x7b\xcf\xe1\xcb\xbb\xe5\xc8\xdd\x08\x2d\x05\xb4\x04\xf9\x30\ \x09\x39\xe7\x9a\x57\x75\x82\xa7\xa2\x2d\x3c\x1c\x8e\xc4\x52\xab\ \x23\x71\xd6\xa6\xd0\xb5\x15\x73\x82\xae\xf4\xf3\x72\x8f\x1c\xa1\ \x68\x6d\x3b\xa9\xaa\x92\x94\x6e\x67\x95\x4c\xb2\x48\xa6\xed\xfa\ \x72\x12\xe4\xab\xf5\x60\x66\xd9\x76\x8c\xe2\x94\xdb\xc8\x4f\x95\ \xe0\x7b\xa1\xc1\xea\x93\x81\xf2\x0e\x08\xe6\xa4\xf0\x35\x01\x43\ \x88\xb7\xdf\x99\x55\xbe\x71\x00\x6d\x59\xce\xff\x00\x94\x9e\xce\ \x0f\x91\xe6\xf7\x4f\xad\x21\xbf\xe1\x9d\x40\x51\x18\x6f\x3b\x72\ \xe6\x0f\x20\xfa\x54\xa2\xc6\xe4\x3b\xed\xa9\x70\x6e\x71\x99\x94\ \x13\xf7\xd0\xeb\x61\x49\x3f\x50\x7d\x6b\x2d\x34\xd3\xb4\x5e\xbe\ \x46\xaa\xd2\x52\x8a\x75\x15\xd7\x9a\xfb\xae\xef\x95\xb5\x1b\xee\ \x62\x33\xe5\x1f\x63\x9c\xd2\xf1\x9c\xed\x58\x18\xfa\x83\xda\x90\ \xc9\x93\x1a\x23\x79\x9d\x3a\x2b\x00\x0e\x54\xe3\xe9\x48\xfe\x74\ \xba\xe3\xd3\xcb\x14\x92\xa4\x34\xe4\xf8\xcd\xab\x80\x84\x3d\xb9\ \x09\xfa\x05\xe7\x14\xdd\x1f\xa7\x71\x6d\xe0\x18\xb7\x4c\x14\xf6\ \x5b\x90\x18\x5a\xff\x00\x32\x9a\xbc\x95\x5b\xeb\x1f\x93\xfb\xd8\ \xac\x55\x1b\x7b\xff\x00\x34\xfe\x97\x19\x5c\xd4\x28\x90\x54\x8b\ \x2c\x67\x6f\x2a\xce\x03\x88\xca\x23\x20\xff\x00\x79\xd2\x31\x81\ \xec\x9c\x9a\xf1\x9b\x7b\xac\xb8\xa9\xd7\x19\x49\x99\x70\x29\xc2\ \x56\x84\xe1\xa6\x12\x7f\x75\xa4\xfa\x0f\x75\x1e\x4d\x3d\xce\xd3\ \xd3\x49\x0b\x76\xff\x00\x31\xc2\x83\x90\x14\xda\x00\xfc\x00\xed\ \x49\x5a\x8b\x25\x08\x5a\x1d\x79\x2e\x8c\x79\x4e\xdc\x67\xe9\x8a\ \xcf\x25\x2d\x9a\x25\xca\x0b\xdd\x67\x3e\x6b\xbb\x71\x3d\x7b\x8a\ \x5b\x73\xc0\xdf\xb2\x5b\x25\x47\xca\x56\x13\xce\x3d\xc9\xc0\xf2\ \x9e\x0f\x6f\x5a\x6b\xb6\xc7\x59\xbf\xdb\xdf\x71\xb6\x9b\xc9\x53\ \xdb\x1b\x18\x03\xcd\x8f\xc3\xf1\xf4\xa7\x7e\xb4\x19\x11\xba\x95\ \x6f\x9e\xc1\xca\xe1\x04\x1d\xbb\x41\x29\x0a\x47\x2a\xf9\x00\x81\ \xf4\xc1\xa6\x7d\x2c\xbf\xb4\xdc\xd5\x29\x4a\x2b\x6c\x10\xcb\x27\ \xb0\x20\x77\x35\x7a\x69\xce\x50\x5e\xb7\x37\xe6\x8d\x2e\x8d\xc4\ \x54\x7d\x96\xf9\xa4\x8e\x9b\xe9\xab\xe5\xc8\xcd\xac\x81\xc7\x6c\ \x55\xad\x15\x40\x34\x95\x2c\x8c\x63\xb6\x6a\xa4\xe9\xb8\x52\x61\ \xb4\x84\x03\xda\xad\x9b\x74\x40\x5b\xdc\xe1\x2a\x24\x1e\xd5\xed\ \x1c\x54\x29\x45\x33\xe7\x14\x6f\xb2\x37\x78\xc8\xc8\x39\x04\xfc\ \x0f\x8a\xc9\x38\x3c\x83\x80\x79\xe0\x66\x94\x08\x8c\xad\x3f\x73\ \xe0\x0a\x4a\xfc\x63\x1c\xee\x6c\xe1\x39\xe4\x7b\x52\x54\xa2\xdd\ \x91\xa5\xc6\x4b\x56\x66\xbe\x53\x81\xdf\x04\x7d\x28\xa4\x57\x0b\ \x83\x31\xe2\x93\xb8\x6e\xf4\x1e\x94\x53\xa1\x4a\x4d\x08\x9d\x58\ \x27\xa9\x05\xd0\x2a\x6d\xad\x1d\x07\x23\x27\x2b\xec\x7d\x37\xab\ \x9a\x79\x32\x54\xa2\x36\x34\x4f\x18\xed\x9a\x6d\xe9\x95\xbd\x4f\ \xe9\x48\x4f\x3e\xaf\x29\xf1\x38\xcf\xfc\x62\xaa\x68\x98\xc8\x4f\ \x01\xb4\x82\x3f\x9d\x68\xe2\xc6\x29\x23\x2d\x3a\x52\x94\x53\x23\ \x09\x92\xa0\xbf\xda\x24\xa0\x64\x60\x91\xc7\xfa\xef\x4a\x52\xea\ \x55\xca\x33\x82\x30\x38\xfe\x54\xf3\x26\x23\x0f\x34\x42\x92\x02\ \x8f\xae\x3d\x2a\x29\x70\x9c\x8b\x3b\xea\x61\xc1\x9c\x9f\x2f\x35\ \x78\x4d\x4f\x62\x27\x07\x03\x64\xbb\x7d\x8c\x5d\x99\xbb\xc8\xb6\ \xc0\x55\xc1\xa0\x42\x25\x29\x94\x17\x53\xc6\x30\x17\x8c\x8e\x3e\ \x6a\x37\x75\x6a\xdc\x1b\x4c\x28\x70\x62\xb1\x01\xb4\x96\xd1\x15\ \xa6\x52\x96\x82\x79\x24\x04\x81\xb4\x02\x49\xe3\x15\x59\xf5\x3f\ \x55\x5f\xb5\x0e\x95\xbc\xca\xb6\xc0\x2d\xda\xe2\x4f\x6a\x1a\xa6\ \x09\x05\x0e\x15\x25\xf6\xc2\x88\x48\x4e\x36\xee\xf2\xfd\xec\xf2\ \x4e\x31\x52\x4b\xb6\xa4\x9b\x67\x91\x7c\x71\x16\x96\x25\x31\x61\ \x43\x6a\xb8\x17\x25\x86\x9c\x3b\xd3\xbb\x6b\x49\xda\x77\x14\xa4\ \x85\x1c\x91\xdc\x01\xf1\x19\xe2\x98\xac\xc8\x92\x5a\x34\xb5\xa4\ \x42\x54\x75\x5a\x20\x22\x1b\x87\x72\xe2\xa6\x3a\x03\x6a\x3f\x29\ \xc6\x0f\x20\x7a\x7a\x0a\x75\x3a\x6b\x4f\x9b\x62\x2d\xa3\x4f\xda\ \x97\x11\x0a\xdc\x98\xe6\x22\x0b\x49\x38\xee\x13\x8c\x67\x1e\xb5\ \x16\x91\xaf\xcc\x08\x9a\x9d\x72\x60\x00\xbb\x3b\x4c\xbb\x15\x09\ \x5e\x3e\xd6\x97\x9b\xcb\x47\xb7\x19\x5e\x53\xeb\xda\x90\xea\x0e\ \xa5\x4e\x80\xe5\xd3\xec\xd6\xd6\x1e\x6e\xce\xd3\x4b\xb8\x93\x33\ \x62\xb7\x29\x3b\x94\x86\x86\xd3\xbb\x6a\x4e\x4e\x48\xf6\xef\x53\ \x9a\x21\x74\x59\xf6\x65\xc6\x81\x01\x31\x23\xc7\x69\x94\x20\x6d\ \x42\x1b\x48\x09\x03\xd8\x01\xc0\xfc\x29\xa6\xc9\xa1\xac\xd1\xb5\ \x15\xd7\x50\xca\x89\x1a\x6c\xfb\x84\x84\xc8\x4a\xdf\x8c\x85\x2e\ \x31\x4a\x52\x9c\x21\x58\x24\x03\xb4\x1f\xad\x56\x6e\xea\x57\x2c\ \x9a\xd7\x55\xdf\x24\xba\xf3\xb0\xa2\xda\x22\x48\x08\x4a\xb2\x0e\ \x77\xe3\x68\xec\x0a\xb8\x1f\x95\x4b\x22\x75\x0e\xe9\x6f\x9a\x8b\ \x75\xfe\xca\xcc\x49\x32\x60\x3d\x32\x19\x6a\x51\x75\x2a\x2d\x00\ \x56\xd2\xc9\x42\x70\xa0\x14\x0e\x46\x47\x7e\x6a\xad\xc5\x92\xa4\ \x9e\xe4\xd8\xc1\x80\xcc\x99\x0f\xbb\x6d\x88\xe3\xb2\x19\xf0\x5e\ \x75\x4c\xa4\xa9\xc6\xc6\x70\x85\x12\x32\x53\xc9\xe0\xf1\xc9\xad\ \x16\x8b\x25\xa2\x08\x2a\xb7\x5a\x60\x43\x6c\x25\x48\x08\x62\x3a\ \x10\x02\x55\x82\xa1\xc0\xe0\x12\x06\x47\xc5\x57\xf6\x9e\xa0\xdd\ \x6e\xcf\xe9\xf7\x66\x5a\x1b\x8b\x02\xfe\x4a\x62\x2d\x32\x8a\xdc\ \x43\x9b\x0a\x80\x5a\x76\x80\x02\x80\x38\xc1\x3f\x3d\xf8\x46\xd7\ \x51\x6f\x89\xb7\x43\xba\x37\xa7\xd2\xe4\x39\x57\x43\x6a\x6c\x09\ \xb8\x70\xc8\xdc\xa4\xa4\xed\x29\xc6\xc2\xa4\xe3\x39\xc8\xce\x71\ \xc7\x33\x9a\x3b\x91\x99\x16\x23\x7a\x77\x4f\xb4\xc3\x71\x98\xb2\ \x5b\x58\x69\xb7\xfe\xd2\xd2\x5a\x88\x84\x84\x3a\x32\x03\x80\x01\ \xc2\xf9\x3e\x6e\xfc\x9a\x4f\x36\xc7\x6d\x55\xc5\xb9\xb2\x6d\x70\ \x9e\x94\xde\x3c\x39\x0e\x47\x4a\x9c\x47\xd1\x44\x64\x7a\x54\x65\ \x1d\x45\x72\x24\x2d\x44\x9b\xcd\xb1\x0d\xcf\xb2\x3c\xcb\x2a\x66\ \x3c\x8d\xe8\x7d\x4f\x04\x96\xb6\xa9\x49\x4e\x32\x54\x01\xc8\xe3\ \xbd\x2e\x3a\xbe\x74\x68\x1a\xa1\x37\x4b\x6c\x31\x3a\xc3\x6f\x4d\ \xc7\xc3\x8f\x33\xc6\x69\xf6\x94\x15\x8c\x28\xa1\x24\x10\x52\x41\ \xc8\xf6\x3e\xb4\x39\xc1\x6e\x0a\xc4\xc6\xdc\xe4\x06\x64\xae\x58\ \x89\x1d\x13\x1e\x4a\x50\xe4\x94\xb6\x90\xe3\x89\x4e\x76\x82\xac\ \x64\x81\x93\x80\x7b\x64\xd3\xa4\x7b\x35\x89\x51\x19\x61\xbb\x4d\ \xb8\x47\x66\x40\x94\xd3\x42\x32\x36\xb6\xfe\xe2\xaf\x11\x23\x18\ \x0b\xdc\x49\xdc\x39\xc9\xce\x6a\xbf\x85\x74\xbc\x39\x7f\x83\x67\ \x93\x69\x8b\x15\xdb\xb5\xb1\xcb\x85\xb0\xfd\xb4\xb8\x06\xcd\xa7\ \x63\xde\x41\xb0\xf9\xd2\x7c\xbb\x87\x71\xcf\x72\x74\x5a\xfb\xa9\ \xee\xda\x1e\x0d\xde\xf2\x23\xba\x89\x69\x52\xda\x71\xa5\x12\xb2\ \x3c\x45\x82\x14\x36\x80\x9c\x60\x01\x82\x73\x4b\x79\x2a\x7b\xa3\ \x61\x53\x2b\xb3\x45\x8d\x1a\xdf\x19\x13\xa4\xca\x89\x0e\x3b\x52\ \x25\x14\x2a\x43\xed\xb4\x94\xad\xe2\x91\xb5\x3b\xd4\x06\x55\x81\ \xc0\xce\x70\x38\xa7\x04\xc2\x51\x39\x2b\x39\xf5\x15\x53\x5a\xf5\ \xac\xbd\x3c\x8d\x63\x39\xfb\x7a\x9f\x93\x1a\xff\x00\x12\x22\x9b\ \x5d\xc1\x6e\xb5\x87\xbc\x34\x85\x20\x29\x23\x60\x09\x50\x25\x20\ \x11\x9c\xf3\x8c\x54\xbb\x51\xf5\x07\xf5\x15\xfb\x51\xc1\x7e\xd8\ \xe4\x86\x2c\x96\x44\x5d\x0a\x99\x5e\x5c\x74\xa9\x4b\x05\x18\xc6\ \x00\x1b\x73\x9c\xfb\xd6\x59\xd5\x69\xd9\x1a\xa9\xca\x9b\x57\x97\ \xad\xfe\xc4\xa5\x71\xdf\x68\x64\x28\xa8\x0e\xfc\x57\xa7\x0e\x23\ \x6a\xb8\x35\x5d\xeb\xdd\x67\xaa\xe3\xf4\x86\x5e\xa9\xb6\xb3\x62\ \x61\x4e\x18\xa6\x3b\xd1\x2e\x2a\x94\x03\x6e\xb8\x94\x12\x09\x69\ \x23\x70\x2a\x48\xf5\x18\x2a\x3c\x10\x01\xb0\x62\xb5\x70\x5c\x06\ \x9e\xb8\xa2\x33\x53\x79\xf1\x53\x15\xc5\x2d\xb1\xc9\xc6\x0a\x92\ \x09\xe3\x19\xe0\x72\x6a\x23\x52\xef\x52\xfa\x37\x68\x9b\x2d\xca\ \x2d\xaf\x61\x3d\x8f\x1f\x15\xaa\xff\x00\x04\x3a\xf2\x54\x79\xcd\ \x64\xca\xb0\xf8\x51\xfa\x1a\x72\x9a\xcf\x8c\xd2\x76\xf7\x06\xac\ \xe7\x92\xa2\x91\x68\xc3\x3d\x37\x11\x0b\x8d\x86\xad\xa1\x3d\x8e\ \x3d\x6a\xad\xea\x04\x70\xb8\xaf\x15\x0e\x4d\x5b\x17\x4c\xa6\x38\ \x18\xc6\x07\x35\x5c\x6b\x36\xc3\x91\x95\x81\xc0\xef\x5a\x30\xdd\ \x64\xef\xcc\x4e\x21\x59\xa4\x51\x3a\x5e\xe6\xfd\x9b\x51\xcb\x8e\ \xd9\xc7\x8a\xd2\xc0\x1e\xe0\x8e\x7f\x8e\x0d\x74\x96\x91\x2c\xb5\ \xa4\x21\x3b\xb4\x1d\xcc\x25\x5f\xc2\xb9\x86\x79\x0a\xea\x84\x28\ \x28\x20\x78\xb1\x1c\x52\x47\xf7\xb7\x63\xf9\x57\x42\x69\xb9\x92\ \x1c\xd2\xf0\xd2\xd3\x4a\x79\x0d\xb2\x1b\x73\xc3\xee\x85\x27\x83\ \x9f\xca\xb8\x18\xac\xaa\xa6\x87\xa4\xc0\x66\x9e\x12\x29\xf6\x90\ \x6e\xa2\xdb\x2d\x31\x51\x3b\x50\xdc\x22\x46\x54\x85\x61\x4c\x25\ \x4a\xe4\xed\xc9\xed\xec\x9c\x02\x4f\xcf\x35\x46\xda\x5b\x6a\xe0\ \xf2\xda\x91\x19\x4c\xb7\x3d\x2a\x5b\x4a\x4a\xf2\x16\xde\xe5\x2b\ \x23\x3d\xc8\xdc\xa1\xcf\x1d\xea\xe0\xfd\x24\xee\xae\x42\xd3\xb6\ \x4b\x78\x8c\x8d\xb3\x56\xf2\x14\xeb\xec\x12\x84\xa3\xca\x92\x9d\ \xde\xe4\x2b\x38\x1c\x9c\x7c\x55\x25\x6d\x75\x2f\xcc\x8d\x0d\xe0\ \xd0\x54\x64\xa5\x2e\xb9\xbf\x07\x6e\xe2\x02\x07\xf6\x46\x55\x8e\ \x7e\x6b\x8b\x51\x24\xda\x3d\x05\x2c\xd2\xa5\x19\xcb\xd7\x23\xa0\ \xf4\xfc\xd7\x5f\xd3\x16\xc7\xdf\x42\x10\x4c\x74\x21\x41\x27\x39\ \x21\x23\xf8\x1c\xd4\xb2\xd0\xbd\x91\xc0\x5a\x81\x07\x8e\xd5\x5d\ \xd8\x5e\x77\xf5\x5c\x78\xc5\xb7\x37\x8e\x77\xa9\x7c\x0f\x4e\xde\ \xfc\x7e\x15\x3d\xb4\x2f\xc4\x84\x56\x94\x85\x0d\xa7\x8f\x5c\x1a\ \xad\x39\x5d\x98\xab\x44\x7e\x88\x77\x1d\xd8\x4e\xe3\xc1\x03\xb6\ \x29\xca\x37\x86\x4e\xdd\xc4\x28\x77\x09\xef\xf9\xd3\x3c\x65\x2d\ \x6c\xa5\x68\x4f\x95\x49\x03\x69\xe0\xfe\x3e\xd4\xec\xdb\xa8\x4a\ \x37\x92\x00\x00\x7e\x15\xae\x0c\xca\xd0\xed\x1b\x68\x56\xe2\x53\ \x8c\x71\x4a\x5f\x7c\x36\xd1\x50\x19\xe2\x9b\x22\x38\x92\x92\x07\ \xaf\xc5\x23\xbd\x4c\x2d\x84\xb6\xd0\xdc\xe9\xe1\x29\x1e\xb4\xfe\ \x22\x8a\x17\xc3\xcd\x2b\x19\x4b\x96\x15\x20\x23\x24\xac\xf6\x48\ \xac\x2e\x4c\x2d\xfb\x6b\xd1\xe3\xe3\xc5\x29\xca\x72\x7b\x9a\xd3\ \x19\xb4\xc3\x41\x79\xf5\x05\xc8\x5f\x2a\x23\xd3\xe0\x7b\x52\x29\ \x93\xd0\xb2\x5a\x52\x94\x90\x53\xf7\xb3\xc8\x1f\x15\x55\xd6\xd5\ \x8f\x4b\x55\x97\x90\xcb\x03\x51\x42\x8e\xb5\x44\x92\x92\xdc\x96\ \xf8\x71\xb5\x70\xa0\x7d\xb1\x55\x6f\x5a\x75\x67\x5d\xa1\xcf\x42\ \x74\x96\x9a\x44\x2b\x52\x87\xec\x9e\x44\x74\xc8\x75\xdf\xf9\x44\ \xe4\x27\xe9\x8f\xc6\xad\x15\x96\x27\x36\x82\xfc\x44\x2c\xa0\x80\ \x92\xa1\x95\x0c\x76\xe7\xbe\x69\xce\x04\x95\xf8\xff\x00\x64\xdb\ \x2c\x6f\x19\x1c\x6e\x18\xa5\xaa\x52\x4f\x7d\x0d\xd7\xa6\xaf\xd5\ \xf5\xdd\xfd\x32\xa6\xe8\x9f\x52\xb5\xa7\xeb\x98\xb6\x5e\xa2\xd8\ \xd3\x6e\x99\x34\x91\x0a\x63\x69\xd8\x87\xd6\x06\x7c\x35\xa4\x12\ \x12\xa2\x01\xc1\x18\xcf\x6c\x55\xcd\xab\x75\x1c\x4b\x4e\x9c\x9f\ \x78\x96\xef\x87\x1a\x1b\x0a\x79\xe2\x0e\x4e\xd4\x8c\x90\x3e\x4f\ \x61\xf3\x4c\xba\x8f\x4d\xb5\x31\xb4\xca\x8c\x86\x1e\x71\x0a\x0b\ \x09\x5b\x78\x21\x40\xf0\x52\x7d\xea\x17\xaa\xa0\xde\xae\x50\x95\ \x63\x93\x0a\x43\xcd\xc8\x50\x2e\x64\x8d\x84\x03\x9e\x7e\x38\xed\ \x54\xa9\x39\xc2\xfa\x12\xa8\xd1\xaf\x28\xb8\xbb\x5b\x7b\xfa\x44\ \x1f\xa7\x7a\xd6\xf9\x7e\x95\x37\x52\x5c\xe5\x45\x85\x69\x79\xd3\ \x96\x1d\x21\x02\x33\x7e\x87\x79\xef\xf3\xee\x7b\x55\xc5\xd3\x1d\ \x4d\x0e\xeb\x16\x74\xfb\x79\x2e\x43\x4b\xfe\x1a\x1d\x29\x20\x39\ \x81\xc9\x4e\x7b\x8a\x88\x41\xb0\x5b\xa2\x43\x4c\x79\x16\xd6\xa6\ \x25\x27\x62\x10\xe3\x23\xc3\x07\x19\xec\x46\x3f\x3a\x94\xd8\xee\ \x31\x23\xb2\xcc\x56\xd8\x69\xa1\xfd\x5a\x5b\x42\x40\x49\x23\xdb\ \x1d\xbf\xf2\xa4\x52\xa4\xe3\x2c\xcd\xdb\xb8\xd7\x8d\x95\x1a\x91\ \xb4\x23\xd9\xeb\xc4\xb2\xa1\xca\x6a\x42\x4f\xad\x6a\x95\x93\xca\ \x12\x0f\xb6\x7d\x69\x96\x14\x9f\x30\x52\x14\x38\x1c\xe3\xd4\x53\ \xba\x1d\x4a\x9b\xee\x49\x27\xb7\xb5\x6d\x52\xba\xb3\x38\x4e\x19\ \x5d\xc4\x92\x9b\xdc\x9c\x90\x01\x3e\x86\xa2\x77\x84\xa1\x93\xbd\ \x43\x6a\x42\x87\x73\x53\x07\x16\x08\x50\x52\x8a\x89\x3c\xfc\x54\ \x47\x54\xa9\x28\x8c\xe9\xc2\x31\x8f\x26\xef\x7f\x63\x59\xeb\x69\ \x1b\x97\x85\xef\x63\x9d\xfa\xca\xcf\xeb\x0e\xa3\xbb\x1b\xc4\x6c\ \x17\x22\x78\x1e\x13\x99\x0a\x2b\x09\xde\x95\x20\x8f\x5c\xff\x00\ \xe8\x45\x45\x2d\x37\x2f\x07\x5e\xda\xf4\xd8\xf0\x8b\x6c\x47\x57\ \x8a\x50\x80\x32\xf2\x93\x93\x9c\x13\x9c\x11\x8c\xf1\xce\x6a\x6f\ \x75\xfb\x15\xef\x5d\xc8\xfd\xa7\x88\x44\xa7\x1b\x43\x78\xf3\x95\ \xa1\x20\x00\x32\x3b\x8c\x8c\x11\xdf\x07\x8a\xa4\x2d\x17\x69\x0e\ \x75\x34\x4d\x52\x9b\x42\xd3\x39\x59\xc1\xe3\xef\x10\x7f\xf4\xaa\ \xe0\x9d\xe4\xdf\x61\xab\x1c\xbf\xf8\xf8\x5f\xed\xf4\x47\x71\x74\ \xb8\xa7\xec\x8d\x93\xc9\xe3\xbd\x5b\xb0\x16\x36\x00\x0f\xe7\x54\ \x4f\x4e\xe7\xa5\x2d\x60\x1f\xbb\xc8\xe6\xac\x2b\x66\xa3\xf0\xe7\ \xb6\x16\xad\xad\xab\x8e\xfc\x57\xb2\x51\x75\xa9\x29\x1e\x0e\x9d\ \x65\x07\x66\x4f\xb3\x8c\x67\xf9\x56\x32\x46\xe6\x17\x93\xdc\x11\ \xcd\x69\x6a\x63\x0b\x48\x58\x70\x24\x7d\x6b\x5c\xb9\x49\x52\x7c\ \x36\xb0\xaa\xca\xa1\x2c\xdb\x1b\x9c\xe3\x97\x71\x89\x9b\x58\x5b\ \xa5\xc9\x4e\x65\x21\x5e\x50\x73\x45\x3c\xb6\xd0\x43\x78\xee\x73\ \x45\x6a\x75\x5b\x7b\x99\x15\x18\xa5\xb1\x18\xe9\xf3\xad\x31\xa2\ \x20\xad\xc2\x9d\xbf\xb4\xe3\x1f\xf1\xaa\xa9\x1b\x0b\x43\xcd\x85\ \x21\x47\x18\xcf\x06\xab\x58\x93\x1c\x6f\x43\x5b\xa3\x34\xac\x29\ \x5b\xfd\x7b\x7e\xd1\x54\xe3\xa7\xf5\x22\xe2\x36\x23\xbe\x14\x52\ \x39\x0a\x35\x78\xd1\xbc\x2e\xb7\x15\x1a\xd6\xb2\x7b\x13\xb2\x0e\ \xd3\x9c\x1f\xad\x43\xb5\x0c\x58\xf2\xaf\x00\xad\xad\xdb\x79\xc7\ \xcd\x2e\x1a\x8d\xb9\x67\xc2\x8a\x09\x50\xe0\xd1\x1d\xa5\x29\x65\ \xc5\x11\xe2\x2b\xb9\xc5\x32\x94\x1c\x75\x65\x6a\xcd\x4b\x44\x55\ \xb7\x5d\x07\xa9\x57\xa7\x2f\x7a\x62\xd8\xfd\xa1\x16\xab\x85\xcf\ \xf5\x83\x4e\xbe\x56\x97\x9a\xcb\xa9\x78\xb5\xb4\x24\x82\x37\xa7\ \x85\x6e\xc8\x07\xb1\xa7\xf9\x3a\x5e\x6c\x5d\x67\x78\xbd\xb1\x64\ \xd3\x57\xa6\x6e\xfe\x13\x8e\x22\xea\x8c\x2e\x3b\x88\x46\xc2\x52\ \xaf\x0d\x7b\x92\x40\x49\xdb\xe5\xe7\x3c\xfa\x54\xd5\x6a\x6d\xbc\ \x85\x3a\xda\x48\x04\xe0\xab\x1c\x7b\xfd\x2b\xd2\xa4\x85\xa1\x2a\ \x52\x7c\xfc\x0f\x92\x39\xc0\xfc\x2a\x5d\x28\xbd\xc4\x25\x62\x35\ \xad\xba\x72\xad\x5d\xac\x6c\xd7\x8b\x73\xb0\x22\xda\x9b\x65\xb6\ \x6e\x91\xd5\xb9\x2b\x75\x2c\xb9\xe2\xb1\xb0\x24\x60\xe1\x79\x07\ \x24\x71\xef\xda\xa1\x37\xcd\x19\x2e\xcf\xac\x2e\xf3\x22\xd9\xec\ \x57\x56\xae\x05\xb5\xa9\x37\x24\x10\xb6\x16\x94\xed\x25\x27\x62\ \xf7\x24\x80\x38\xe3\x9c\xf3\x56\xe5\xa7\x50\xdb\x2d\xfa\xa2\x2d\ \x8a\x44\xd4\xb7\x2e\x5b\x4b\x75\xa6\x94\x71\x94\x20\xa4\x12\x4f\ \x61\xca\xd3\x8c\xf7\xe7\x1d\xa9\x46\xb0\x44\x34\xcc\x57\x8e\xa4\ \x23\x29\xca\x94\xae\x31\xf3\x9a\x4c\x16\x5a\x8e\x1c\xb7\x1f\x38\ \x46\x70\xe2\x2d\xef\xa9\x50\xdc\xf4\x8a\xaf\x2f\xea\x94\x49\x76\ \x3b\x30\xef\x36\xb8\xd0\xe3\xf8\x69\x25\x6c\xad\xa2\xa2\x14\x53\ \x80\x36\x82\x53\xc0\x3e\x87\xb5\x21\xbb\x58\x6f\x93\x26\xb7\x7a\ \xd4\x0e\x40\xdd\x6e\xb6\x48\x66\x33\x51\x14\xa5\x78\x8e\x38\x90\ \x16\xe1\x25\x23\x6f\x09\x18\x48\xcf\x7e\xf5\x65\x26\xda\xf1\x07\ \xec\xcb\x42\x9b\x3c\x82\x0f\x1f\x5a\xc5\x30\x43\xa8\xf1\xd6\xf3\ \x65\x19\xc0\x5e\xf1\x8c\xe7\xd0\xfd\x6b\x46\x48\x99\xf2\x95\xc7\ \x4c\x6c\xb7\x59\x76\x7d\x17\x2a\xee\xcc\x58\xb0\xac\xcc\x07\xd9\ \x65\xb5\xad\x4f\x3c\xef\x85\xb1\x25\xc0\x52\x9f\x0f\x68\x52\x8e\ \xd1\xbb\x24\x0e\x6b\xd6\x34\x6d\xf5\x3a\x7e\xd3\x6b\x0f\x43\x53\ \x90\xb5\x22\x6e\xce\x10\xb5\x6d\x2d\x07\xd4\xe6\x07\x97\xef\x61\ \x5d\x8e\x06\x7d\x6a\x6f\xac\xee\x28\xd2\xba\x6a\x4d\xe6\x42\x54\ \xf8\x8e\x5a\x0a\x61\x0a\x01\x67\xc4\x75\x2d\x03\xcf\xa6\x55\xfc\ \x2a\x45\x0d\x31\x23\x6e\x3e\x2a\x56\xb0\x76\xf0\x73\x83\xed\x50\ \xa1\x1d\x81\x45\x6c\x44\x9b\xe9\x44\xbb\xe3\x5a\xd6\x4c\xd9\x10\ \xd9\x4d\xed\xc8\x2f\xdb\xd4\xa0\x5c\xf0\x9c\x8e\x84\xff\x00\x5a\ \x92\x00\xda\x54\x9c\x10\x09\xca\x49\xec\x69\xca\xf3\xa6\x6e\x57\ \x3d\x1d\xa8\xac\x8c\xd8\x74\xa5\x8e\x5c\xf8\x2a\x8a\xd3\x96\xe2\ \xad\x8b\x24\x28\x12\xe1\xf0\x92\x42\x73\xb4\x81\x85\x63\x9e\x4f\ \x73\x65\x30\xeb\x66\xd0\x4b\x4a\x07\x1c\x1c\x73\x83\xfe\x8d\x44\ \xb4\x1e\xa3\x8d\xaa\x74\x6c\x0d\x48\xcc\x75\x45\x66\x62\x54\xb4\ \xa1\xd5\x02\x53\x85\x94\xe0\x9f\xc2\xb1\x2b\x4a\x4d\xb3\x6c\xa9\ \xc2\x09\x45\x73\x5e\xbf\x91\xa9\x1a\x4a\xe2\x35\x8e\x96\xbc\xaa\ \x44\x6f\x02\xd3\x6b\x7a\x1b\xe9\xde\xad\xea\x5a\xc3\x60\x14\x0d\ \xb8\x29\xf2\x1e\xe4\x7a\x71\x58\xf4\xc7\x4f\xdd\xf4\x8e\x89\x66\ \xc3\x76\x30\x5d\x66\xda\x85\x06\x24\x45\x71\x6b\x53\xa8\x2b\x52\ \x89\x52\x0a\x06\xd3\x82\x38\x05\x59\xe6\xa6\xe9\x04\x27\x3d\xa9\ \x93\x42\xea\x38\xda\xaf\x49\xc7\xd4\x0c\x30\xe4\x56\x5e\x53\xc9\ \xd8\xea\x81\x29\xf0\xdc\x5b\x64\x93\xdb\x19\x41\x3f\x8d\x32\xf6\ \x77\x2b\xc3\x8d\xfb\xff\x00\xa2\xbc\xb5\xe9\xb9\xba\xc6\x1e\xbd\ \x10\x56\x62\x7d\xb6\xf7\x0e\x5d\xb6\x44\xa6\x56\x86\x9e\x54\x74\ \x34\x79\x04\x05\x14\x12\x92\x9c\x81\xf2\x33\x8a\x9a\xdb\x34\xe6\ \xab\x6b\x58\xdd\xb5\x74\xc1\x63\x32\xa7\x5b\x19\x86\xdc\x24\xbe\ \xea\x9a\x6c\xb6\xb2\x4e\xe7\x0b\x60\xa8\x10\xa5\x1c\xed\x18\xe0\ \x63\xd6\x9d\xf5\x1d\xda\xdb\x60\xb6\x2a\xe7\x71\x96\x98\xd1\xc2\ \x90\xd8\x51\xe7\x2a\x5a\x82\x52\x00\xf5\xc9\x50\xfe\x75\xb5\x99\ \xaf\x3a\x93\xb1\xe4\xad\x27\x21\x25\x2a\xc8\x35\x4e\x0e\x77\x74\ \xc9\x8b\x8d\x3d\x1e\xff\x00\xdf\xdd\x95\xb5\xcb\xa7\x57\x27\x74\ \xee\xaf\xb6\x47\x55\xa2\xd0\xe5\xfe\x4c\x49\x11\xed\xf1\x16\xb5\ \xc3\x88\xb6\x16\x85\x93\xbb\x62\x4e\x5c\x28\xf3\x10\x81\xd8\x71\ \x57\x1d\xa5\x73\x5d\xb7\x34\xbb\x9b\x11\x98\x96\xa0\x7c\x46\xe3\ \xbc\x5d\x6d\x3c\x9c\x00\xa5\x25\x24\xf1\x8f\xdd\x14\xc4\x41\x27\ \x27\x93\xeb\x4f\xd6\xc5\x97\x23\x8f\x5c\x54\x56\xa4\xa1\x14\xd1\ \x7c\x33\x59\x9f\xaf\x5b\x89\xa5\x24\xb5\x21\x24\x7a\xf6\xa7\x78\ \xe7\x2c\xa7\xd6\x91\xcd\x6b\xc4\x6f\x3d\x88\xf5\xa5\x51\x01\x0c\ \xa7\xe9\x49\xa9\x2c\xd1\x46\xba\x6b\x2c\xd8\xd3\xa9\xe4\xa2\x34\ \x52\xb7\x15\x84\x81\xde\xab\x1d\x4f\x7b\x86\xa8\x25\x40\xad\xb0\ \xe0\xf2\xf8\xa8\x28\xdd\xff\x00\x6b\x15\x64\x6a\x14\x78\xaf\xa1\ \x2b\xfb\x83\x9a\xab\xba\xb3\xe1\xae\xd8\xea\x40\x68\xa8\x24\xed\ \x0b\x4e\xe0\x48\xf4\xc5\x6c\xa5\x25\x4e\x95\xd9\x86\xbe\xb5\x19\ \xcd\xda\xb6\xfb\x1a\xdd\xd5\xcb\x15\xd6\x42\x81\x87\x1e\x42\x1a\ \x90\x73\x82\xde\xf2\x41\x27\xe0\x12\x93\xf4\xae\xae\xb1\xdb\x90\ \x9b\x8a\x9c\x86\xe3\x8c\xa1\xd6\xf3\x2d\xb4\xab\xca\xb2\x7b\x1c\ \x7b\x90\x2b\xe7\xf6\xb6\xb9\x3f\x32\xec\xfc\x2b\x82\xd4\x70\xa2\ \x83\xea\xa4\x1c\xf0\x01\xf5\x1f\x35\xd4\x5f\xa2\x97\x58\x2d\xb7\ \xc8\x0d\xe9\x1d\x45\x31\x98\xb7\xe8\xa9\x4b\x71\xd4\xf3\x9b\x44\ \xd6\xd2\x36\x8c\x13\xdd\x60\x0e\xdd\xcf\xcf\x35\xe7\xab\x6b\x3c\ \xdc\x8f\x57\x83\x83\x86\x1d\x53\x4f\x5f\x5e\xbf\xa2\xde\xeb\x2e\ \x97\x7b\x57\x68\xa7\xed\x4c\x1c\x2d\x01\x4a\x6d\x0d\xaf\x6a\x95\ \x84\xe4\x00\x4f\x03\x90\x9e\x6b\x92\x93\x19\xbb\x73\xef\x5b\xe4\ \xb4\x4b\x81\x28\x54\x84\x2f\xca\x5a\x52\x07\x27\x38\xe7\x68\xc9\ \xf9\x27\xd6\xbb\x88\xa3\xc5\x5e\xe2\x46\x48\xda\x77\x77\xae\x48\ \xeb\x35\x85\x7a\x63\x5f\xcf\x43\xa9\x57\x85\x31\x2a\x53\x4a\x24\ \xa8\x39\x9c\x73\xcf\xb9\xdc\x08\xf4\xe7\xe2\xb9\xd8\x98\x38\xbc\ \xcb\x99\xd3\xe8\xea\x97\x83\xa2\xde\xda\xaf\xa9\x24\xd0\xf2\x57\ \xf6\x19\x31\x5d\x59\x40\x12\xfc\x45\x21\x44\xe4\x6e\x27\xca\xaf\ \x9c\x72\x40\xc7\x35\x65\xe9\xd2\x0b\x45\x09\x75\xc5\xa3\x76\x7d\ \x89\x1f\xe5\x55\x26\x88\x9c\xa9\x53\xdc\x5e\xc6\xc2\x6e\x4d\x26\ \x42\x80\x56\xe5\xf8\xa0\x04\x3b\xdf\xfb\xd9\xe2\xad\x9b\x11\x2d\ \x24\x2d\x40\x05\x27\x29\x20\x7f\x64\xfb\xfb\xd6\x5a\x6b\xac\x18\ \x84\x49\xe3\x24\x36\x85\x25\x38\xca\x8e\x4e\x07\x39\xcd\x28\x8c\ \x0a\xdb\x4a\x82\x46\x3b\x8f\xce\x91\xc5\xe4\x11\xb9\x58\x4e\x55\ \xbb\x07\x38\x22\x9c\x60\x92\x12\x12\xb4\x8e\x3d\xfb\x1c\xd6\xb4\ \x60\xbd\x85\xab\x05\xa6\x14\xb3\xf7\x12\x33\x4c\xec\xba\x23\x95\ \xcd\x77\xcf\x25\xc2\x43\x69\xfe\xc0\xc7\x6f\x83\xf3\x4f\xb2\xd1\ \xba\x1a\x53\xc9\x0a\x50\xdc\x3d\xc5\x31\xbe\x94\xf8\x86\x43\xdb\ \x90\x9c\x04\xa9\x27\xdf\xd0\x7d\x39\xef\x53\x2d\xef\xd8\x10\x77\ \x42\x37\x5c\x7e\x79\x4b\x89\x3b\x02\xd3\xc7\xb9\x1e\xf5\x93\x36\ \xf4\x85\x79\x80\xd8\x57\xc9\x2a\xf5\x1d\xbe\xbc\xd4\x57\x5d\xf5\ \x33\x4f\x69\x47\x4b\x32\x64\xa5\x52\xd6\x8f\x2a\x00\xe7\x1c\xfa\ \x0f\x4a\x68\xd2\x57\x4d\x5f\xad\xae\xf3\x6d\x50\xa3\xaa\xd0\x98\ \xad\x36\xf2\x95\x35\xa5\x00\x42\xf3\xb4\xa1\x39\x1e\xd4\x3a\xb0\ \x86\xb2\x7a\xf9\x9d\x28\x60\x2b\x3a\x5c\x59\x75\x61\xda\xcb\x2d\ \x86\xa0\x21\xc2\xd1\x90\xd2\x55\x8c\x95\x77\xcf\x34\xa9\x95\xc1\ \x53\xa1\x96\xe5\x0e\x33\xc6\x7b\xfe\x35\x03\xb2\x74\xc3\x5c\xc9\ \xba\xca\x1a\x83\x5a\x2e\x2a\x07\xf5\x62\x13\x0d\xe1\xc4\x9f\x5e\ \x47\x1f\x4e\x69\xce\xd1\xd2\xbd\x47\xfa\xee\x6b\x12\x75\xb3\x8b\ \x86\xd8\x49\x8e\x44\x54\x95\x9c\xe7\x3b\xfb\x0e\x38\xed\x5a\x21\ \x59\x3d\x14\x5f\xaf\x88\xba\x94\xb0\x91\xbd\xeb\xa7\x65\xd8\xfe\ \xc4\x95\xa6\x7c\x55\x9f\x09\xe6\xd6\x1b\x00\x10\x97\x33\xc6\x73\ \x9a\x45\x71\x88\xda\x9d\x54\x97\xd7\x1d\x21\x03\x81\xb8\xa4\x1f\ \xfc\xe9\x9e\x67\x4c\x75\x5f\xeb\x76\x58\x8d\xa8\x60\x3b\x15\x6d\ \xab\xc5\x71\xd8\xca\x4b\x89\xc7\x60\x36\xab\x9c\xd6\xa9\x9d\x20\ \xbf\xa6\x4c\x7f\xb3\x6a\xb4\x96\x94\xb2\x97\x52\x5a\x51\x50\x49\ \x07\xee\xe4\x91\xdf\xde\x87\x34\xd7\xba\xfe\x5f\x92\xb1\xf6\x44\ \xee\xeb\x2f\x93\x17\x07\x6d\xe1\x94\x25\xb7\x9b\x2d\x9e\x30\x55\ \xc2\xb8\xf7\xf7\xf9\xa6\xf7\xed\x8c\x78\x61\xe8\xea\x0a\x03\x27\ \x28\x19\x1c\xf7\xff\x00\x3c\xd3\x64\xfe\x9a\xeb\xe7\x6f\x2f\xc7\ \x81\xa9\x5a\x54\x36\x9a\x07\xc6\x75\x94\xf2\xb2\x78\x4e\xd0\x3b\ \x62\xaa\x88\x7d\x40\xbc\x58\xef\x8e\x5a\xaf\xa9\x11\xa5\xb6\xe1\ \x48\x09\x27\x6a\xfb\xe3\x8f\x91\x59\xe5\x56\x12\x79\x6c\xd3\xef\ \x47\x46\x86\x06\x38\x84\xde\x1e\xa2\x93\xec\xf1\xf1\xb1\x77\xd8\ \xe5\xba\xdb\xe9\x43\x99\xc0\x59\x0a\xf6\xed\x53\x0b\x73\x9e\x2b\ \x67\x1d\xfd\x88\xee\x2a\x07\xa4\x5d\x5d\xee\x3a\x1e\x4a\x02\x14\ \x51\xe2\x2d\x03\xb6\x3d\xbf\x1a\x96\xe9\x54\x38\xea\xc9\x42\x89\ \xf0\xcf\x23\x18\xdc\x08\xff\x00\x0a\xa4\x1b\x5a\x33\x97\x88\x86\ \x59\x34\xf7\x42\xa9\x6a\x48\x56\xd5\x70\x73\x9c\x0a\x85\xea\xb9\ \xa0\x45\x74\xab\x01\x09\x49\x25\x47\xd3\x15\x2f\xbc\x2d\xa4\x29\ \xd2\xb4\xe0\xa4\x77\x57\x63\x9a\xac\x7a\x93\x34\x43\xd3\x13\x9d\ \x5a\xc2\x56\x52\x4b\x64\x9f\x55\x70\x08\xf4\x3c\x9a\x4e\x22\x4e\ \xd6\x2b\x45\x5e\x48\xab\xba\x6c\xfc\x4b\x9d\xfd\x53\xfc\x35\x96\ \xa2\x25\xdb\xa3\x8f\xa9\x39\x49\x58\xdd\x8f\x4e\x78\xc8\xfc\x2b\ \x9b\x2d\xab\x4b\x97\xf5\xaf\x79\xfd\xa3\x8a\x70\x1e\xdd\xce\x45\ \x5c\x1a\xab\x57\xc2\xb6\x69\x39\xda\x77\x4a\x2f\xed\x17\xcb\x8c\ \x77\xff\x00\x59\xba\xda\xbc\x36\x58\x64\x27\x7b\xbb\x72\x7e\xf9\ \x48\xc6\xd1\xdb\xd3\x92\x2a\x97\x69\x6f\xb7\xe1\xc9\x79\x95\xe1\ \x01\x28\x0a\x50\xc2\x7b\x70\x3f\x2e\x6b\x6e\x06\x8b\x50\x93\xed\ \x27\xa4\x2b\xc5\xd5\x82\xff\x00\x5d\xce\xab\xd1\x3a\xa3\xec\xf6\ \x98\x2f\x3a\xb0\x15\x25\xa4\xed\xc1\xfb\xd8\x1c\x91\x52\xc9\xfa\ \xb5\x94\x4e\xb2\x41\x65\x64\xc8\x9d\x28\x20\x25\x3d\xc3\x69\xe5\ \x4b\x23\xdb\xd2\xb9\x3e\xcd\xad\x1e\xb7\x5b\x7c\x36\xd2\x65\xcd\ \x07\x6a\x1c\x5e\x4a\x50\x8c\xf0\x94\x8f\x41\x9c\xf1\xc7\x3e\xf5\ \x62\xf4\x9e\xe1\x24\xdc\x57\x74\x92\x97\x6e\x37\xd9\x3e\x44\x04\ \x72\x23\xb6\x0f\x61\xe8\x9f\xc6\xb7\x55\xc5\x55\xa5\x45\x41\x7a\ \xfc\x1e\x62\x78\x05\x79\x54\xde\x28\xeb\xeb\x54\xe5\x3e\x86\xd8\ \x4a\xce\x4e\x33\xcf\x02\xa6\x76\xf4\x06\x9a\x4e\x72\x4e\x39\x26\ \xaa\xbe\x9d\x6f\x0e\x0f\x1d\xd4\xad\xce\xe7\x6f\x61\xf4\xab\x3e\ \x2b\xa9\xc6\x49\xf4\x1d\xf9\xae\xec\x33\x4a\x8c\x6e\x72\xe9\x68\ \xf5\x16\x49\x92\x96\x5a\x0a\x3c\x9a\x29\x39\x47\xda\x9c\x39\x00\ \xa5\x23\x91\xef\x45\x11\x8d\x34\xba\xc3\xdc\xaa\x37\x78\x95\x3d\ \xa1\xc5\x39\x68\x82\x33\x84\xa0\x2f\x1f\xfe\xe2\xa9\x44\x8d\xbe\ \x63\xb7\x1c\x7d\x4f\xfa\xef\x49\x74\xf0\x26\xcf\x18\x0e\xf8\x73\ \xd3\xfe\x31\x54\xaa\x50\xdc\x84\x8c\xe4\x9f\xe3\x5a\xa1\xee\xa3\ \x0a\xd8\x90\x69\x48\xa1\xb8\xc5\xcd\x99\x2a\xef\x4e\xef\xb9\xe1\ \x34\xa5\x9c\x80\x3b\x7c\xd6\xab\x33\x61\x10\x90\x12\x79\x29\xac\ \x24\x61\xc9\x29\x63\x90\x3b\x9e\x3b\x55\x89\x39\xeb\x52\x3d\x6f\ \x93\xa3\x75\x5d\xc6\xed\xe0\x0d\x46\x35\x1f\x84\x87\x16\x47\x8e\ \x94\xf8\xe8\x4a\x5b\x49\xfb\xde\x1f\x81\x9c\x0e\xc4\x66\xa6\xb7\ \x88\xf6\x59\xfa\x8b\xa8\xee\x6a\x94\xc7\x5b\xd0\x22\x34\x61\x2a\ \x47\x78\xd1\xfc\x00\xa0\xb6\x89\xfb\xa4\xb9\x92\x54\x9e\x77\x00\ \x3d\x05\x48\xf5\x2f\x4d\xdb\xd4\x17\x55\x29\xf9\xea\x79\xa5\x3c\ \x97\x1c\x69\x31\x59\x42\xd6\x10\xa0\xa4\xb6\x5d\x08\xdc\x50\x14\ \x91\xc6\x73\xc7\x7a\x95\x4b\xd2\xd1\x66\xb8\xd4\x9b\xdd\xaa\x0c\ \xa7\x18\xe5\xa7\x1e\x8e\x95\xa9\xbf\xf9\x24\x8e\x3b\xfa\x56\x7c\ \xba\xea\x51\x52\x93\xd6\xc5\x6f\xa1\x61\xb3\x73\xea\x56\x86\x95\ \xa9\x61\x44\x7e\x63\xba\x4d\x4e\xc9\x54\x96\x92\x54\xb7\x53\xe1\ \x61\x4a\xc8\xe5\x63\x93\xf1\xcd\x48\xfa\xcf\x74\x87\x2a\xf5\x66\ \xb3\xb9\x68\xb7\xdc\x9f\xb8\x4a\x52\x23\xfd\xbf\x1f\x67\x65\x48\ \x6d\x4a\x2b\x3c\x1f\x36\x32\x12\x07\x24\x9e\xe2\xa4\x37\xb4\xda\ \x27\xa1\x86\xe4\x5a\x60\x4c\x72\x32\x8a\xd9\x72\x44\x74\x38\x5a\ \x51\xee\x50\x54\x0e\xd3\xf2\x29\x04\xfb\x6c\x0b\xa4\x6f\x06\xe9\ \x06\x2c\xd6\x77\x6e\xf0\xe4\x34\x97\x13\xb8\x76\x38\x50\x23\x35\ \x31\xa4\xd4\x9c\x86\x37\x68\x64\x44\x2f\xa1\xd2\x25\x33\xa7\x2e\ \xec\xb4\xeb\x4a\x8f\x1a\xf9\x31\x96\x10\xca\x8f\x82\x86\xc2\xf2\ \x12\xdf\xf7\x39\xe3\xe0\xd4\x66\xe7\x19\xcb\x8c\x2b\xb7\x4e\xa2\ \xa9\xc4\x3d\x6d\xb8\xcf\xbc\x32\x1b\x27\x29\x6f\xc1\x0e\xc7\xfc\ \x3c\x69\x23\x8f\x5f\x0f\xeb\x57\x0c\x68\x71\x62\x21\x48\x8b\x19\ \x98\xe9\x70\x82\xb4\xb6\xd8\x48\x2a\xc0\x19\x38\xf8\x00\x67\xe0\ \x52\xad\x3b\x6a\xb7\xa6\x74\x8b\x92\x61\xc7\x13\x1d\x40\x6d\xc9\ \x01\xa4\xf8\x8a\x48\xec\x92\xae\xe4\x0f\x6a\xb4\xa9\xf5\x52\x65\ \x14\x2f\x64\x51\xfa\xda\xe4\x8d\x5b\xa0\x75\x76\xae\x6c\xe6\x3c\ \xe3\x6b\x84\xc1\x07\x90\x84\x38\xca\xd6\x07\xb7\xed\x5e\x70\x7d\ \x51\x4b\xb5\x94\x25\x69\xed\x51\xaa\xa2\xe9\x88\xe8\x80\x4e\x8c\ \x12\x7c\x28\xa8\xd8\x0b\x89\x79\x68\xf1\x00\x1f\xbc\x10\x3b\xf7\ \xe2\xad\x56\x74\xed\x8d\x98\x8e\x5a\x51\x68\x80\x9b\x76\xed\xc6\ \x20\x8c\x8f\x07\x21\x41\x40\xec\xc6\xdc\xee\x00\xf6\xef\xcd\x2f\ \x4c\x18\x5f\xac\x0d\xc0\xc4\x8f\xf6\xc2\xc8\x64\xbf\xe1\x8f\x10\ \xb6\x0e\x42\x37\x63\x3b\x72\x49\xc6\x71\x93\x51\xc2\x2a\xe1\x72\ \x17\xa4\x9a\xb2\xc2\xd7\x7a\x05\x8d\x26\x88\xcc\xa6\x6d\xb2\x51\ \xb8\x88\xa7\x1f\x68\x8e\x1a\x4a\x9b\x71\xdc\x7d\xe5\x78\xa4\x61\ \x4a\xe4\x95\x2a\xa1\x1a\x11\xb9\x73\x6c\x9d\x32\xb4\xbb\x0e\xd9\ \x36\x03\xb6\xd9\xeb\x6a\x3d\xcd\x65\x31\xde\x90\x1d\xc7\x20\x25\ \x5b\x96\x94\x12\x52\x08\xf5\x26\xae\xcb\x45\xaa\xd9\x68\x92\xec\ \xab\x55\xb2\x14\x27\x9e\x20\xba\xa8\xec\x25\xb2\xe1\xfe\xf1\x03\ \x9f\xc6\x97\xc7\xb3\x69\xfb\x85\xa9\xbb\x13\xd6\x0b\x59\xb7\xb5\ \xfd\x54\x43\x11\x05\x94\x77\xec\x8c\x6d\x1d\xcf\x61\xea\x69\x33\ \xa2\xe2\xdc\xb9\x0e\x8c\x73\x59\x7a\xe5\xf6\x1b\xfa\x63\x6a\x9d\ \x60\xd0\xf1\x2d\x17\x29\x91\xa5\xb9\x1c\xba\x96\xdc\x8e\xe2\x96\ \x80\xd1\x71\x45\x08\x0a\x57\x27\x68\x21\x3f\xf5\x6a\xa0\xd0\x4d\ \xb5\x22\xc3\xd3\x28\x17\x64\xa1\xdb\x1c\xbb\x8d\xdb\xc7\x65\xee\ \x59\x75\xf4\xba\xe9\x61\x2b\x1d\x8f\x3b\xc8\x07\x82\x40\xae\x88\ \x8b\xa7\xa3\x43\x88\x86\x22\x34\xd4\x76\x1b\xe1\xb6\x9a\x40\x4a\ \x12\x3e\x00\xe0\x73\x49\x17\xa7\xec\x66\xc6\x6c\xa6\xcd\x6e\xfd\ \x5c\x92\x4f\xd9\x3e\xcc\x8f\x07\x24\x95\x13\xb3\x1b\x79\x24\x93\ \xc7\x72\x4d\x2f\x34\x5f\xba\xc7\xcb\x0f\x2d\x2f\xa5\xbf\x05\x0b\ \xa9\x63\x43\x3a\x37\x56\xc4\x61\x98\xee\xd8\x60\xeb\x08\x88\xb7\ \x82\x90\xa6\xd8\xca\xd9\xf1\x90\xde\x78\x4a\x02\x94\xa1\x81\xc0\ \xc9\x15\x7a\xa6\x14\x48\x28\x6d\x88\x2c\x31\x1a\x3a\x01\x4a\x1a\ \x65\x01\x28\x4f\x3c\x80\x07\x03\x9a\xdb\x1e\xd1\x69\x55\x98\xd9\ \xd5\x6c\x82\x6d\xc5\x3b\x0c\x42\xc2\x3c\x12\x33\x9c\x6c\xc6\xdc\ \x67\xe2\xb2\x72\x0c\x48\x10\x99\x89\x06\x2b\x11\x23\x34\x36\xb6\ \xd3\x2d\x84\x21\x03\xd8\x24\x70\x2a\xd4\xfa\xb3\x21\x52\xb2\xb9\ \x8e\xd4\x91\x4e\x56\x73\x84\x28\x7a\x53\x7a\x53\xe5\x19\xa7\x1b\ \x42\x78\x55\x4d\x67\xd4\x63\xa8\xae\xba\x15\xca\x21\x2d\x13\xfc\ \x6b\x7c\x70\x7c\x04\xe7\xeb\x9a\x4d\x30\xf9\x42\x7d\xcd\x2b\x4a\ \x7f\x60\x12\x38\xe2\xb1\x4b\xdd\x46\xd8\xfb\xcc\x88\xeb\x46\xae\ \xd3\x11\xe1\x5a\xe4\x47\x87\xce\x16\xfb\xa8\x2b\xda\x3f\xba\x3d\ \xfe\xb5\x51\xf5\x36\xd8\xf7\xea\x77\x23\xae\x4c\xa9\xea\xda\x77\ \x2b\x21\x0a\x5f\xc0\x20\x60\x55\xed\x75\x64\xae\x31\x6d\x23\x19\ \xe4\x9a\x84\x6a\x6b\x62\x1c\x86\xa1\xb3\x3c\x56\xc8\xae\x25\x2c\ \xa8\xc3\x56\x0f\x3d\xcf\x9f\x7d\x44\xb4\x48\x62\xe0\xf3\xe6\xd9\ \x2e\x3a\x4a\xb1\x87\xdd\x4b\x8a\x19\xf9\x00\x1f\x4a\x85\x38\x95\ \x15\x01\xe7\x42\xc7\x21\x47\x23\x9f\xf5\xeb\x5d\x45\xd6\x2b\x3b\ \xa9\x87\x39\x29\x04\xe5\x95\x29\x3c\x76\x29\x1b\x87\xf2\xae\x5f\ \x59\x90\xb7\x08\x5b\x8b\x21\x4a\xc0\xca\xb8\x15\xcc\x95\x19\x52\ \x76\x91\xd6\xa7\x5d\x56\x85\xd2\xd5\x16\x2e\x87\xeb\xc7\x54\xb4\ \x7a\x5a\x8f\x13\x50\xb9\x70\x88\xd8\xc2\x63\x5c\xd0\x24\x20\x0f\ \x60\xa5\x79\xc0\xf8\x0a\x15\x2d\xbf\x75\xe9\x7d\x44\x81\x1e\xd1\ \xa9\xf4\xfb\x11\x2e\x09\x75\x02\x34\xd8\x6e\xa8\x21\x27\x70\xdd\ \xb9\x0a\xc9\xec\x38\xc1\xaa\x42\x42\x1a\xd8\x95\x36\xa4\x9e\x3b\ \x81\xdc\xe3\xd6\x93\xef\x53\x4b\x0a\x6d\x5e\x1a\xb7\x02\x0f\xaa\ \x48\xe4\x7f\x1a\x44\xf0\xf4\xea\x2d\xac\x69\x86\x2a\xa5\x29\xa7\ \x7b\xfa\xed\x3a\x67\xa6\x45\x2f\x6a\x47\xd8\x43\xe8\x41\x8d\xbc\ \x84\xf0\x0b\x4e\x28\x85\x67\x8e\x30\xa3\x93\xb7\xd3\x15\x7f\x59\ \x10\x50\xd8\x04\x27\x05\x1b\xbb\xf2\xa5\x1a\xe5\x2e\x83\xc8\x4c\ \xfb\xf1\xb8\xc8\x79\x6d\x36\xb4\x12\xf3\x69\xe4\x15\x8e\x0a\x86\ \x7d\x87\x38\xf8\xae\xa5\xd3\x24\x22\x33\x7e\x33\xbb\xbc\x4f\x38\ \xcf\xb6\x3f\xca\xb8\xb2\x86\x4a\xb9\x4e\xd5\x49\xf1\x20\xa4\xb6\ \x25\x50\x0a\xca\x96\x16\x52\xb5\x63\x00\x03\xda\x97\x46\x52\x10\ \xb1\xfb\x5d\xe1\x7c\xe0\xfc\x7b\x53\x5c\x22\xd2\xdd\x29\x28\x29\ \x46\xd0\x06\x13\x80\x41\xe7\x03\xf9\xd2\x97\x4a\x9b\x53\x7e\x1b\ \x5b\x92\xa3\xb4\x2f\x3c\x53\x91\x85\xad\x49\x2b\x23\xc4\x8c\x53\ \xc8\x23\x04\x53\x25\xf9\x97\x14\xd1\x4b\x27\x6a\xd2\xad\xe8\x1e\ \x83\xde\x97\xdb\x24\x00\xda\x71\xb4\x92\x39\xc1\xfb\xd5\xb6\x72\ \x42\xd4\xac\xa7\xb6\x3e\xa6\x99\x6b\xab\x95\x83\x71\x91\x46\x4e\ \xe9\xb5\x82\xdd\xaf\xef\x9a\xbb\x53\xb5\x3a\xe9\x0e\xe7\x19\x5e\ \x24\x65\xb4\x1c\x4b\x3c\x64\x84\x6d\xe5\x3f\x74\x04\xe3\xb6\x69\ \xce\x77\xe9\x2d\xd3\xb8\x71\xac\x1f\xab\x2d\xb7\x6b\x95\xd5\x6c\ \x84\xcd\x86\xcc\x52\x87\xa0\x36\x13\x85\x21\xd2\xb0\x01\x21\x40\ \x70\x32\x3b\x9c\xf2\x33\x69\x49\x6d\x0e\xb4\xa6\xdc\x47\x88\x95\ \x27\x18\x20\x62\xab\xed\x53\xd3\xf6\x1d\x92\x6e\x16\xc0\x84\xaf\ \xb1\x49\x47\x21\x3e\xa9\x04\x73\x8f\x8a\x74\x54\x5d\xf9\x5c\xdf\ \x4e\x34\x71\x35\x23\xc7\x93\x49\x7c\xbf\x17\x2b\xab\x87\x5e\x3a\ \xd4\xbb\xbc\xfb\xed\x93\x42\xda\xcd\x8e\x42\x52\xd4\x18\x92\x9b\ \x5b\x8e\xb5\x8c\xe1\x64\xa0\xa4\x92\xac\xf2\x31\x8e\x06\x3b\x12\ \x61\x8c\x7e\x92\xdd\x75\xd2\xb2\xa7\x4e\xbf\xd9\x2d\xf3\x1a\x98\ \x50\x19\x44\xcb\x72\xda\x6e\x36\xdc\xf9\x5b\xd8\x52\x48\x39\xe7\ \x71\x51\xe0\x73\xef\x74\x5b\x6c\x17\x96\x96\xd2\x90\xeb\xe8\x2a\ \x07\x87\x8e\x43\x7c\xe0\x10\x78\xc5\x2e\x9f\x66\xbb\x86\xca\x27\ \xc0\xb7\xdd\x5b\x20\x28\x87\xd9\x2a\x42\xbb\xfa\x03\xc6\x31\x4f\ \x8d\x24\xb5\x5e\xbc\xcd\x18\x8c\x0e\x0d\xbc\xb0\xd1\xf8\xaf\xaa\ \xfa\x94\x13\x1f\xa5\x47\x5a\x2e\x17\xf6\x6f\x31\x2d\x16\x43\x16\ \x33\x2b\x4a\xa1\x22\x0b\x85\x85\xa5\x58\xf3\xac\xef\xdf\x91\x8e\ \x08\x50\x1c\x9e\x0e\x6b\x46\xbd\xfd\x21\xfa\xb9\xaf\xf4\xd3\xba\ \x61\x16\x9b\x55\xac\xc9\x79\xa5\xfd\xa2\xd8\x97\xdb\x92\x14\x85\ \x85\xa4\x21\x45\xc3\xb7\xcc\x91\xc8\x19\xab\xd9\x36\x7b\x92\x98\ \x71\xa8\xac\xc1\xb4\x43\x3c\x2d\xa8\x51\x40\x04\x1f\x7d\xd9\xa6\ \xf7\xf4\xc4\x25\x02\x5b\x33\x14\xe2\x70\x12\x1b\x09\x4e\x4f\xb8\ \x20\x70\x6a\x5c\x5d\xbd\x7d\xcb\x51\xe8\xbc\x25\xba\xed\xdf\xb9\ \xaf\xb6\x9f\x32\xb4\xd1\x9f\xa5\x06\xba\xd3\xd3\x05\x83\x5a\xdb\ \x5f\xb9\xcc\x5b\x69\x6d\xd5\xb4\xca\x03\xe1\x40\x79\x54\x02\x78\ \x59\x23\x04\xf6\xe6\xa5\xd3\xe0\x5a\xfa\x99\x7a\x87\x76\x4d\x96\ \x7c\x6c\x38\x95\x7e\xdd\x92\xca\xca\x10\x90\x84\xa5\x5e\xc5\x58\ \x2a\xf8\xc8\xa9\x1e\x95\xd1\xad\xb7\x72\x33\x1f\x84\xd2\x16\x95\ \x79\x5f\x71\x01\x4f\x2d\x3f\xd9\x2a\x3e\x61\xef\xed\x53\xf8\xad\ \xa1\x0d\x25\x96\x5b\x28\x1d\xb7\x7a\x8c\x7a\xd6\x4c\xb0\x84\xae\ \xbe\xeb\xe1\xd9\xfc\x04\xb8\x78\x4a\xad\xd3\x77\x7c\x9a\xd3\xe7\ \x6d\xdf\xcb\x53\x56\x9c\xb4\xa6\xd0\x5c\x43\x28\xfb\x36\xe6\xc3\ \x6d\xa0\x2b\x77\x03\xb7\x3e\xf5\x2a\xb3\x30\xdc\x56\xde\x53\x79\ \x4a\x49\xce\x7e\x69\x14\x64\xee\x71\x03\x68\x0e\x01\x8e\x7b\x1f\ \x6a\x5f\x3d\xd4\xb5\x04\x10\xa1\x85\x63\x27\x3e\x94\xb7\x6b\xdc\ \xe5\xd6\xa9\x29\xbd\x77\x64\x67\x54\x3e\xa7\x0e\x12\x40\x2e\x2c\ \x20\x7d\x3b\xf0\x6a\xa3\xeb\xec\xc8\xc8\xd2\xef\xc4\x53\x85\x0d\ \x17\x1a\x42\x54\x9e\x4f\x0a\xdc\x4f\xc0\xc0\x3f\x95\x59\x12\x65\ \xa5\xc9\x6e\x28\x20\x29\xb6\x12\xa2\x94\xf7\xc9\xf7\x1f\x87\xa5\ \x50\x5f\xa4\xad\xd7\xc2\x8d\x11\x90\xea\x52\x14\xf9\x52\xd4\x39\ \x07\x00\x0e\xdf\x88\x35\x86\x5d\x79\xa4\xb9\xb3\x4d\x15\x95\xdd\ \xf2\x29\x3d\x51\x01\xb5\x6a\x2b\xbb\x61\x84\x15\xc9\x96\x0a\x48\ \x40\x3e\x12\x42\xf2\xad\xbe\xd9\x38\xc7\xba\x6a\x51\x1a\xde\xe4\ \xad\x04\x34\x9c\x87\x12\xa7\xe7\x4a\x52\xe1\xf8\x80\x00\xb9\x03\ \x09\x46\xd5\xfa\x03\x94\xa7\x9e\xc4\x1c\xf0\x6a\x2e\xdc\xa6\xe4\ \x33\x35\xf4\xa5\x68\x2e\xb9\x90\x47\x00\x1d\xaa\xc2\x7f\x3d\xbf\ \x95\x48\x27\xdc\x1c\x77\xf5\x54\x64\x04\xb9\x1d\x69\x42\xdb\xf7\ \x4a\x82\x48\x2a\x1f\x50\x8e\x7e\x41\xae\x83\x8d\x49\xa4\xbf\xd6\ \xc2\xe6\xe9\x53\x4d\xda\xf7\x4f\xee\x57\x96\xc9\x42\xd5\x39\xf8\ \xd7\x1b\x72\x64\x01\x96\x9d\x6d\x44\xa1\xc4\x28\x1f\xdd\x50\xec\ \x41\xfa\x8f\x71\x56\x7d\x87\xa8\x71\xd9\x65\x98\xd1\x6e\x0b\x43\ \x28\x40\x4e\xc7\xe1\xa5\x05\x27\xea\xd9\x19\xfa\xe2\xa3\xd7\x1d\ \x2e\xbb\xea\x95\x24\x2c\xb5\x39\x5d\xd4\xae\xce\x9f\x93\xef\xf3\ \xeb\xeb\x5a\x6c\x5a\x1a\xe6\x66\x04\xce\x2b\x8a\xd8\xfd\xe5\x23\ \x3f\x85\x6d\xc5\xd2\xa7\x17\x9e\x5b\x9c\x9c\x3c\x95\x78\x70\xe5\ \x6b\x17\xde\x84\xea\x4d\xbe\x1b\x6a\x91\x26\x78\x53\x68\x1c\x9d\ \x87\xf8\x0e\x6a\xcc\xb3\xf5\x6a\xcb\x37\xc3\x69\x13\x52\xb7\x1c\ \xc0\x65\x86\x92\x5c\x75\x7e\xde\x54\xe7\x68\xf9\x56\x2a\x91\xd1\ \xdd\x3f\xd3\x72\x5c\x4c\x6b\x83\xd2\x66\x36\x4f\xdc\x6b\xf6\x40\ \x9f\x92\x39\x35\xd0\x5a\x1f\x4e\x59\x2c\x50\x50\xcd\x92\xcf\x12\ \x0a\x55\x8c\xa9\xb4\x0d\xea\xfa\xa8\xf2\x7f\x3a\xac\x31\x78\xa7\ \x68\xd3\x8b\x39\x18\xaa\x58\x58\x36\xa1\x26\xc9\xf6\x97\x93\x2a\ \x4c\x60\xf3\xad\x96\xc2\xb9\x09\x3d\xe8\xa7\x1b\x5b\x78\x8e\xca\ \x07\x07\xf9\xd1\x5d\xbc\xce\xcb\x3e\xe2\xe9\xc1\xa8\x95\x8d\x91\ \xb0\xd5\x92\x13\x84\x67\x21\xc3\xff\x00\xf7\x15\x5b\xa4\xa0\xee\ \x40\xe0\x80\x72\x69\x7c\x08\xa5\x5a\x1e\xdb\x29\x00\x12\x9f\x13\ \x38\x1f\xf1\x8a\xa6\xf7\x54\x56\x94\xac\x80\x30\x73\xc0\xad\xd4\ \xdd\xe0\x8c\x0d\x58\x99\xdb\x49\x4c\x26\xc9\x27\x84\xf1\xc7\x15\ \xaa\x18\xdd\x31\xc7\xb3\x9c\x71\xc8\xe4\x57\x96\x97\x02\xed\xc9\ \x3b\x8e\x40\xe4\x66\x8b\x77\x09\x77\x18\x3e\x6c\x7c\xd5\x80\x8a\ \x33\xd4\x9b\x85\xb2\xdf\xa8\x35\x08\xd3\x08\x95\x6b\xb1\x5d\xff\ \x00\x56\xcb\x58\x9b\xb5\xe5\xa8\xb8\x94\x05\x34\x8d\x98\x57\xf5\ \x8d\x93\xb9\x49\xee\x7d\xb3\x4f\x57\xde\xa2\x49\x82\xbd\x4b\x6d\ \xd4\x76\x96\x20\x3f\x67\xb6\xa2\xe4\x55\x12\x59\x7d\x0e\xb4\xbd\ \xc3\x6e\x4a\x11\x85\x85\x27\x6f\x6c\x1c\x83\xc5\x37\xbd\xd3\x8b\ \xdc\xae\x9b\xeb\x2b\x23\x72\xad\xc9\x95\x7e\xd4\x29\xba\x45\x52\ \x9c\x58\x42\x1a\x0e\xc7\x56\xd5\x9d\xb9\x0a\xc3\x2a\xe0\x02\x39\ \x1c\xf7\xc2\x8d\x5d\xa1\xdf\xbe\x6a\x2d\x53\x3e\x64\xa6\x5b\xb7\ \x5e\x6c\x4d\xdb\x1b\xd8\x49\x75\xb7\x12\xb5\xab\x79\x49\x18\xc0\ \xdc\x08\xe7\x9c\x7a\x57\x36\xf2\x95\x4c\xdd\x86\x9f\xdd\x85\x3b\ \x76\xaf\xbf\xe0\x8d\x5a\xb5\x35\xc0\xdf\xad\x96\x9b\xe5\x99\xb8\ \x2b\xbb\x30\xb7\xa1\xa9\x99\x5e\x36\x0a\x00\x52\x9b\x73\x28\x4e\ \x15\xb4\xe7\x23\x20\xf3\xcf\x19\xa6\xfb\x37\x51\x26\x49\xd1\xcc\ \x6a\x69\x36\x16\xe3\xc7\x9a\xa6\x23\xc0\x6c\xcc\x1b\xe4\x48\x71\ \x7b\x08\x27\x6e\x10\x80\xac\xf9\x8e\x4e\x01\x38\xf4\xa7\x96\x34\ \x5e\xa5\x93\x7f\xb3\x5e\xaf\x92\x2d\x89\x4d\x9a\x3b\x88\x60\x44\ \x52\xd4\x5f\x71\xc4\x04\x17\x14\x14\x91\xb0\x6d\x07\xca\x37\x7d\ \xe3\xcd\x31\x40\xe9\xc5\xd9\x7d\x2b\xb4\x69\x79\x2e\xc1\x54\xfb\ \x5b\xe8\x92\xda\xd4\x92\xe4\x75\xad\x0e\x15\x84\xa8\x10\x0a\x90\ \x41\x20\xf1\xeb\xeb\xeb\xba\xf2\x7b\x18\xda\x91\x27\xd2\xba\x99\ \x77\x69\xd7\x6b\x5c\xb8\xf1\xe3\xcf\xb6\x38\xda\x5d\x4c\x79\x1e\ \x33\x4e\x21\xc4\xee\x42\xd2\xad\xa9\x3c\xf2\x30\x47\x04\x1e\xf4\ \xcd\x17\x57\x3d\xa5\xee\x1d\x43\xb9\x4d\x82\xf3\xdf\xaa\x53\x6f\ \x77\xc3\x4c\xd5\x2d\x0b\x69\xcd\xc9\x1b\x10\xa4\x80\xda\xb6\xf2\ \x40\xc8\x27\xd7\xd6\xa5\xda\x27\x4d\xbd\x00\x48\x76\x65\x96\xc9\ \x6c\x52\xca\x70\x8b\x6a\xb7\x05\x81\x9e\x54\x7c\x34\x76\xc9\xc7\ \x1c\x64\xd4\x7f\x59\xe8\x0b\xcd\xe7\xfa\x7e\x88\x4f\xc0\x48\xd4\ \x31\xa0\x35\x13\xc5\x5a\xc7\x86\x58\xce\xf2\xe6\x12\x70\x0e\x78\ \xc6\x7e\x71\x54\xa8\xdb\x8e\x85\xad\x24\x93\x5e\xb4\x62\xa7\xf5\ \x45\xe9\x8d\x51\x36\xc7\x70\xb2\x43\x89\x70\xfd\x54\x6e\x71\x76\ \x4c\x53\xad\x94\x85\x6c\x28\x70\xf8\x69\x29\x50\x51\x1d\x81\x18\ \x3c\x76\xa6\x1d\x25\xad\xef\x4d\xe8\x3d\x39\x36\xee\xcc\x19\x97\ \x1b\xd3\x88\x66\x17\xfb\x41\x6c\x2c\x90\xa5\x2d\x6e\x9d\x98\x42\ \x52\x13\xfb\xa1\x5e\x82\xa7\x57\x0d\x2b\x2e\xe1\xd4\x8f\xe9\x1a\ \xde\x8e\x88\x46\xc0\xe5\xb0\xa3\x71\xf1\x43\xaa\x79\x2b\xdd\x8c\ \x63\x6e\x01\xf5\xce\x7d\x3d\x6a\x14\xd7\x4b\xef\xc9\xd2\x5a\x7e\ \xd5\x2c\xd9\x1f\x93\xa7\xa4\x05\xc6\x0b\x5a\xdd\x62\x5b\x78\x52\ \x54\x97\x12\x50\x36\x12\x95\x0c\x63\x7e\x08\xa8\x53\x90\x4e\x13\ \x4e\xe8\x5b\x23\xa9\x2e\x33\x64\x2f\xfe\xa6\x4b\xd7\x16\xef\x89\ \xb2\xbb\x11\x99\x61\x49\x53\xaa\x4e\x50\xa4\x2c\x81\x94\xa8\x94\ \x72\x40\xc6\x4f\xb5\x38\x7f\x4d\xae\xb0\xae\x2e\xc1\x6a\xcf\x6e\ \x7a\xe9\x02\xd9\xfa\xc6\xe0\xd2\xee\x45\xb6\xd0\x32\xad\xad\x36\ \xaf\x0c\xef\x59\xda\x4f\x21\x23\xdc\xf3\x49\xee\x5a\x1a\xeb\x72\ \x85\x65\x8e\xd5\xba\xc3\x67\x5c\x4b\xec\x5b\x8b\xcd\x44\x52\xbc\ \x35\x36\xd2\xb2\xac\x10\xda\x77\x2f\xd0\x65\x20\x76\xe4\x53\xad\ \xe7\x42\x3a\xde\xb9\x5e\xa5\x85\x6b\xb0\xdd\xd1\x2e\x1a\x22\xc8\ \x89\x76\x04\x04\x29\x0a\x25\x2e\x36\xa0\xda\xfd\x14\x41\x4e\x06\ \x70\x39\x15\x15\x27\x24\xad\x72\xd0\x84\xef\x71\xda\x27\x53\x1c\ \xbc\x5e\xad\x76\x7d\x39\x6e\x80\xeb\xf3\xec\xed\x5d\x9a\x55\xca\ \xe0\x62\xa5\xd4\x38\x78\x69\xbd\xad\xac\xa9\x63\x07\x77\x18\x4f\ \xcd\x37\x45\xbd\xeb\x29\x9d\x53\xd6\x76\x38\xed\xda\xdc\x85\x6d\ \x8d\x10\x47\x6d\xd9\x2b\x6f\x69\x71\xb7\x94\x95\x6e\x4b\x64\xe5\ \x44\x24\x2b\xfb\x21\x3c\x66\xb7\x75\x07\x45\x5d\x75\x55\x89\x8b\ \x03\x16\xad\x37\x09\x94\x36\xd1\x8b\x3d\x2e\xb8\x97\xad\xce\x0d\ \xa5\x4a\x61\x09\x6c\x76\xc7\x1e\x74\x7a\x67\xda\x9d\x23\xe9\x9b\ \xd5\xa7\xa9\xb7\xad\x42\xc3\x90\x65\x5b\x6f\x4c\x44\x43\xc5\xd7\ \x94\x89\x0c\xae\x3a\x16\x9e\x12\x10\x52\xb0\xad\xd9\xfb\xc9\xc7\ \xb1\xac\x11\xd2\x46\xf9\x71\x25\xbf\x27\xf4\x7f\x82\x13\xa0\xf5\ \xcc\xb6\xf4\x9e\x84\x89\x6f\xb4\xbb\x36\x4e\xa1\x6e\x4a\x19\x13\ \x6e\x2a\x51\x6c\xb4\x4a\x89\x71\xd2\x92\x54\x36\x85\x1c\xed\xcf\ \x00\x01\x4e\x8b\xea\x43\xcf\x59\x4a\x5c\xb2\xb6\x2f\x89\xd4\x0a\ \xb0\x08\x68\x94\x4b\x2a\x90\x90\x14\x56\x1c\xd9\x90\xde\xcf\x36\ \x76\x64\x76\xc6\x69\x26\x8a\xe9\xd5\xea\xcc\x9e\x9d\xb7\x2a\x55\ \xb9\x6a\xd3\x3f\x6d\xfb\x6f\x86\xe2\xc8\x73\xc6\x6d\x69\x4f\x87\ \x94\x8c\xe0\xa8\x67\x3b\x7f\x1a\x43\xa8\x74\x7c\xcb\x3c\x69\xf7\ \x59\x17\x08\xac\xcb\xfe\x98\x2e\xfb\x6f\x52\x59\x79\xe6\xca\x16\ \xda\x51\xe1\xbc\x10\x82\x51\x94\x85\xe5\x40\x10\x0e\xde\x69\xea\ \xf7\x46\x5b\xd4\x50\xd7\xd6\x88\x96\x68\xad\x51\x3a\xf5\x7c\xbf\ \xd9\x6e\x36\xb6\xa0\xcb\xb2\x2d\x86\x9e\x2d\xbe\x5d\x43\x85\xc4\ \x15\x85\x24\x94\xa4\xe3\x6e\xd3\xc8\x07\x92\x3d\x39\x9f\xdb\x9b\ \x21\x9d\xde\xf5\x4a\x74\xfa\x36\xb1\x9d\x71\xd7\x77\xeb\x6a\x20\ \x35\x3a\xe9\x2a\x28\xb7\x3f\x32\x3b\xc8\x8a\xe0\x69\xb0\x85\x10\ \x08\x0b\x52\x40\xca\x42\xb0\x37\x11\x9c\x7a\x55\xe2\xdf\xec\xa3\ \x80\xac\x6e\x03\x9c\x0a\xad\x59\x5d\x58\xd3\x84\xbb\xd5\x9a\x5e\ \xf3\xc8\x48\xc7\x00\xd2\xe5\x28\x21\x19\x24\x62\x92\x46\x49\x53\ \xbb\x8d\x63\x73\x77\xcb\xe1\x8e\x29\x4e\x39\xa4\xa2\x6b\x52\xca\ \x9c\x8c\xe5\x79\x9b\xde\x80\x08\x3e\x95\x1c\xba\xb6\x92\xda\x93\ \x8a\x7a\x84\xf0\xf0\xca\x14\x7b\x53\x7d\xdb\x6a\x42\x88\x23\xb5\ \x68\xa2\xb2\xca\xc2\x2a\x4a\xeb\x32\x28\x7e\xac\x5b\xd9\xf0\x5c\ \x75\xcd\xa1\x23\x39\xc9\xc0\x23\xd4\x57\x1e\x5d\xed\x4c\xc5\x9d\ \x3a\x1b\x8b\x49\x4a\x17\x84\x2c\x11\x82\x3b\xa4\xff\x00\x01\xda\ \xbb\x8f\xa8\xed\x32\xfc\x57\x12\x52\x15\x90\x46\x31\x9c\xd7\x21\ \xf5\x4d\x8b\x7b\x77\x22\xdb\x6a\x40\x90\xc2\x8e\x50\xca\x07\x95\ \x27\x9c\x28\x8f\x5c\xfa\x52\x7a\x46\xea\x49\x8d\xe8\xd9\xae\x23\ \x8f\x69\x5b\xcb\x01\xb4\x16\xc1\x2e\x36\xda\xb3\xbb\x1b\x77\x66\ \x90\xab\x24\x03\xfc\x3d\xa9\x44\xc2\x92\xac\x93\x93\xea\x7e\x7d\ \xa9\x32\x73\x9c\xfe\x35\x96\x3b\x1b\x2a\x7b\xd6\x2c\x3e\x86\x5e\ \x55\x07\x50\x2e\xde\x9d\xa9\x75\xf4\x9f\x05\x6a\xec\x92\x01\xcf\ \xe6\x3f\x3e\x2b\xb1\xf4\xdc\xc5\x4a\x89\x1d\x78\x4a\x96\xcb\x61\ \x0e\x82\x78\x2a\xc6\x4f\x6f\xf5\xc5\x70\x15\xb5\xd7\xe3\x5d\xa3\ \xc9\x86\xa5\x25\xd0\xa0\xa6\xcf\x63\xbb\xbe\x2b\xae\xfa\x67\xa9\ \xc4\xcb\x4c\x0b\x8c\x64\xbc\xff\x00\x8a\x0b\x8e\x82\x07\x99\x69\ \x49\xcf\xd0\x9e\xd8\xf8\xae\x46\x3a\x9e\x4a\xaa\x6b\x66\x75\xf0\ \x53\xe2\x50\xc9\xce\x25\xcd\x16\x52\x52\x50\xe8\x20\x21\xd0\x0a\ \x49\xf5\xee\x08\xc7\xa7\x22\x9c\x96\xe2\x50\xc6\x14\xe6\xc5\x28\ \x85\x79\xbd\x0e\x2a\x31\x6d\x7d\x1f\x64\x3b\x5b\x07\x01\x2b\x4a\ \x09\xc7\x98\xf7\x03\xe0\x71\x4f\x4a\x79\x29\x4b\x99\x41\x53\x89\ \x4f\x09\xce\x48\x57\xf6\xbe\x9e\xff\x00\x14\xa8\xcb\x40\x9a\xd4\ \x75\x83\x28\x21\xe4\xa9\x4b\x40\x07\x18\x27\xb6\x7d\x85\x3b\xaf\ \x2e\x34\x57\x90\x49\xc1\x2a\x1f\xcb\xe0\xd4\x2e\x44\xc2\xc3\xa1\ \x01\x40\x37\x80\xb5\x85\x71\xdf\xdb\xe7\xe9\x4f\x91\x64\xed\x61\ \x05\x04\xbb\x9f\xbe\x53\xc7\x70\x3b\x81\x53\x09\xf2\x29\x28\xb5\ \xa8\xe0\xa4\x2b\x07\x91\xbb\x18\x15\xa0\x85\x24\xf2\x33\x8e\x4e\ \x3b\x66\x94\xa0\x95\x25\x21\x5e\x53\x8e\xc1\x40\xee\xac\x78\xf3\ \x63\x18\xf5\xc5\x35\x3b\x30\x4e\xe6\xa6\x9c\x6b\x2a\x52\xc6\xd0\ \x91\xe6\xdc\x3d\x3e\x2b\x15\xc8\x86\xd9\x48\x52\x41\xe3\x00\x9e\ \x72\x3e\x4d\x6c\x75\x2d\xa5\x25\x6e\x1d\xde\x98\x1d\xe9\xbe\x41\ \x65\x2a\xcb\x4d\x95\x82\x9c\x7d\x0f\xe3\x5a\x23\x27\xc8\xba\xd4\ \xd8\xe3\xd1\x0a\x77\xb8\xc0\xce\xfd\xaa\x1e\xde\xf5\x8a\x26\x47\ \x52\x40\x65\x9f\x2e\x4e\x71\xed\xee\x6b\x4a\x76\xe7\x7f\x86\x9d\ \xc4\xf3\xba\xb0\x2b\x47\x2a\xd8\x9c\xe7\x83\xc0\xcd\x44\x99\x74\ \x66\x42\x4b\xea\x4a\x52\x13\xc7\x7a\xf5\xb4\xa1\x2d\x03\xd8\x93\ \xe9\xe9\x5e\x87\x02\xd4\x70\x3c\xc7\x9c\xfa\x56\xc4\xe1\x03\x9f\ \x4c\x9a\xcd\x32\x1b\x33\x8e\xb2\xdb\x81\x69\x4e\x48\x1c\xe3\xda\ \x91\x6a\x7b\x88\xf0\x91\x19\x05\x3b\x94\x00\x48\x07\xd7\xbf\xe7\ \xde\x92\xbb\x74\x47\x88\xa0\x97\x30\xda\x81\x4a\x47\x62\x78\xe4\ \xf3\xed\x51\xb8\x73\x45\xc1\xf3\x26\x46\xe5\x36\xc2\x89\x6c\x64\ \x83\x9e\x47\x22\xb3\x54\xa9\xa6\x54\x4c\x61\x77\x77\xc8\xdb\x73\ \x92\x88\x50\x9c\x38\xd8\xe1\xdc\xb5\x0f\x82\x3f\xf4\xae\x45\xfd\ \x23\xee\xce\x4d\xea\x0b\x50\x50\xea\x14\xcc\x78\xe8\x52\x90\x83\ \x90\x95\xab\x24\x83\xf8\x60\xfe\x22\xba\x2b\x59\xea\x08\xd0\x62\ \xbf\x26\x44\xa5\x33\x19\xb4\x17\x5c\x58\x20\x8e\x07\x63\xf1\xdb\ \x1f\x53\x5c\x63\x74\xb8\xae\xe9\x7e\x99\x76\x78\xef\x5c\xa9\x0b\ \x70\x83\xc7\x04\xf0\x3f\x01\xc7\xe1\x4c\xc0\x43\x3d\x57\x3e\x4b\ \xf9\x23\x15\x2c\x94\xd4\x79\xcb\xf8\x26\x3a\x45\x98\x32\xad\xaf\ \xc7\x7d\x61\xb5\x12\x92\x8c\xf6\x57\x03\x82\x7d\x06\x78\xcf\xcd\ \x2a\xb1\xb9\x19\x6e\x8b\x53\x8d\xf8\x32\x63\xa8\x96\x52\xb1\xc9\ \x0a\xdb\xce\x7d\x71\x83\xf9\x9a\x61\xb0\x2d\xc5\x35\x15\x4d\x2c\ \xee\x5b\x9f\x67\x29\x00\x1d\xc7\xba\x4f\xe3\x8c\x54\xef\x4a\x5a\ \xad\xf7\x99\xa9\x44\xe6\x54\x95\xc7\xe5\x0f\x32\xad\xab\x49\x3c\ \x00\x0f\xc7\x7c\x56\xa8\xda\x32\x95\xfb\x6e\x65\xc7\x55\x6a\x9c\ \x6f\xee\xd8\xb0\xf4\x96\x9b\x6a\x64\x54\x82\x90\x54\x45\x3f\xa7\ \x46\xbe\xc4\x8c\x82\xa0\x83\x4b\xb4\x16\x9d\x9d\x0c\x20\xb3\x73\ \x72\x52\x06\x30\x97\x1b\x09\x50\x19\xe0\x64\x77\xab\x76\x25\x97\ \xed\x70\xc0\x59\x4e\xe0\x3b\xd7\xa6\xc3\xca\x96\x2e\x9a\x94\xe3\ \xb1\xe5\x25\x26\xa5\x64\xee\x40\x34\xc6\x9e\x66\x2b\xe8\x50\x40\ \xef\xcd\x5a\x70\xa1\x25\x31\x52\x52\x00\x18\xa4\x30\x2d\x6d\xb4\ \x54\xd9\x00\x28\x76\x38\xa9\x0d\xa4\xa4\xb4\xa6\x57\xf7\xbd\x05\ \x6b\x9a\x8c\x17\x55\x15\x83\xbb\xb3\x1c\xed\xa9\x4e\x5a\x38\x3f\ \x18\xa2\xbd\x86\x76\x6d\x49\xfd\xd3\xcd\x15\xcc\xaa\x9b\x91\xd1\ \xa5\x2b\x22\x23\xd3\xf4\xa2\x7f\x4f\xa2\x30\xa0\x0a\xb0\xe6\x7d\ \xff\x00\xac\x55\x47\xe4\x47\x5c\x69\x0b\x8c\xb3\x8c\x1e\x29\xc3\ \xa7\x4e\xaa\x2e\x95\x84\xe8\xe5\x2a\xdf\x91\x9f\xf8\xc5\x53\xc6\ \xa1\x84\xd4\xc8\xe2\x54\x70\x0a\xc1\xce\x12\x39\xf9\xae\x8d\x35\ \x97\xc0\xe5\xdf\x34\x13\xe6\x86\xdd\x36\xf6\x50\xb6\x16\x7b\x1e\ \x29\xc2\x18\x29\x7d\xc4\x92\x78\xf8\xa8\xfb\x0e\xa9\xa7\xbc\x40\ \x08\x29\xe0\x8c\xf7\xa7\xa6\xde\x0e\x29\x0f\x24\xe4\x91\x83\xcd\ \x34\xa1\x36\x61\x59\xb5\xa4\xf7\xf2\xfa\x53\x55\xc4\xe4\x21\x19\ \xf2\x9a\x53\x6a\x7d\x0b\x82\xb6\xf3\xd8\x52\x39\x4f\x21\xc2\x87\ \x10\x77\xa4\x28\x8c\x83\x9e\x41\xc7\xf0\x39\xac\x54\xe2\xe3\x36\ \x6e\xab\x25\x28\x23\x09\x6b\x42\x23\xec\xf8\xf4\xa4\xf1\x51\xe2\ \xad\x0d\xa9\x5b\x73\xdf\x8a\xc1\xc5\x87\x65\x7e\xd3\xee\x27\xde\ \x86\xe4\x36\xbb\x80\x65\x97\x10\xa7\x50\x37\x29\xb0\xa1\xb8\x24\ \x9e\x0e\x3d\xbe\x6b\x52\x56\x46\x56\xee\xc5\x8f\x34\xe4\x7f\x32\ \x14\x14\x07\x7a\xdf\x15\xc0\xc3\x41\x6b\x18\x2a\x3d\xab\x25\xb6\ \xb4\xac\x2c\x1c\xa4\x8e\x45\x78\x52\x1d\x58\xe3\x18\xa4\x39\x66\ \x5a\x8e\x4b\x2b\xd0\x1f\x2b\x0b\x49\x6c\x67\x75\x6c\xfb\x32\x0a\ \x14\xa5\x2c\xee\xaf\x51\xb8\x37\xb0\x0e\x47\x6c\xd6\x4b\x6d\x69\ \x8d\x84\x9d\xca\x35\x46\xf9\x0c\x4b\x98\x91\x59\x1b\x14\x01\xe0\ \xd2\xbc\xa5\x6d\x05\x03\x8c\x52\x28\x72\xe2\xc9\x6d\x69\x61\xf6\ \xa4\x6d\x25\x0a\x2d\xac\x28\x02\x3b\x8c\x8f\x5a\x51\x19\x0f\x79\ \x80\x42\xb6\xfa\x66\xa6\x5a\xa2\xb1\x1c\xa3\x9d\xc1\x1f\x5a\xd9\ \x3d\x43\xca\x3b\xd6\xa8\xe1\x48\xda\x14\x9c\x7a\xd6\xa9\x6f\x85\ \x38\x40\x3f\x15\x95\x46\xf2\x35\xb9\x5a\x06\xb4\x11\x95\x2b\xd2\ \xb4\xe7\x72\xca\x88\xaf\x1d\x5e\x06\xc4\xe3\xe6\xb7\xc4\x60\xac\ \xf3\xf7\x45\x3f\x48\xab\xb3\x3e\xb2\x76\x46\xfb\x7b\x3d\xdc\x57\ \xe1\x5b\xdd\x56\xe5\x63\xd0\x77\xaf\x14\xb0\x06\xc4\x70\x2b\xc4\ \x83\x90\x9e\xe6\xb3\xbb\xb7\x76\x69\x4a\xca\xc8\xd8\x95\x06\x9a\ \x2a\x3d\xe9\x08\x4f\x8e\xb2\xb5\x76\xad\xb3\x49\x2b\x0d\x03\xc5\ \x68\x79\x41\x86\x4f\x22\xad\x05\x65\x7e\x6c\xac\x9d\xdd\xb9\x21\ \xae\xf1\x31\xbb\x78\x2e\x29\x61\x29\x1e\xa4\xd5\x6d\xaa\xba\xb3\ \xa6\xa1\xb4\xe2\x5c\xb9\xb3\xe2\x20\xe0\xb6\x16\x9d\xd9\xfa\x66\ \x9b\x3a\xf7\x7f\xbc\x1b\x78\xb6\x59\x1f\x87\x1a\x43\xc7\x2b\x91\ \x25\xcd\xa1\xa4\xfb\x81\xea\x4f\x35\xcc\xea\xd3\x2f\xb4\xa9\x92\ \xef\x1a\xa6\x3c\xd0\x7c\xc6\x34\x62\xa2\x1d\x50\x3c\x0c\x80\x06\ \x73\x58\xf1\x58\xfe\x1c\x94\x56\xe4\x50\xc3\x2a\xd7\x72\x95\x91\ \x33\xea\x8f\x56\x15\x70\x6d\xd8\xd6\x44\x4b\xda\x78\x5c\x8d\xc1\ \x00\x7c\x05\x67\x8a\xa1\x2e\xd3\x9f\x78\xe5\xf7\xc3\x3b\x95\x93\ \x80\x4e\x13\x8e\xfc\xf7\x27\xde\xac\x8b\x9c\x3b\x2b\x70\xb6\x5c\ \x25\x22\x12\x10\x90\x7c\x24\xba\x92\xa2\x48\x04\x1c\x9f\xf0\x15\ \x06\xbc\x4f\xd3\x0c\x33\x25\x11\xd8\x54\xd7\xd6\x02\x5b\x75\x6a\ \x52\xd4\x9e\x73\x9c\x9c\x01\xf9\x1a\xcd\x1a\xb3\xae\xf3\x49\x1d\ \x5a\x31\xa1\x41\x64\xa7\x7b\xbd\xd9\x11\x52\x14\xb6\x8b\xab\x25\ \x3f\xd9\xcf\x75\x13\xed\x58\x0c\x11\x9c\x7e\xed\x6d\x93\x25\xc9\ \x0e\xf8\x8b\x3b\x71\x9d\xa9\x4f\x61\x5a\x52\xa2\x84\x28\xfb\x8a\ \xd2\xaf\x6d\x4c\xf3\xb5\xf4\x14\xb0\x7c\x29\x4c\x3e\x47\xef\x05\ \xe3\xf1\xab\xbf\xa6\x12\x57\x67\xbc\xa2\xce\x40\xf0\x5d\x74\x3f\ \x1d\x59\xf2\xe7\x82\xa4\xfd\x78\xcf\xfe\x95\x56\xea\xeb\x6c\x2b\ \x65\xc5\x9b\x5a\x56\xa0\xf2\x2d\xec\x97\x54\xa5\x64\x87\x8a\x02\ \x94\x9e\x4f\x03\x9e\xde\x98\xab\x45\x88\x6a\xb8\xe8\x7b\x55\xd5\ \xb5\x94\x3b\xe1\xb4\x54\xe2\x40\xdc\x95\xa7\x8c\xe3\xe7\x18\xfc\ \x6b\x99\x8f\x95\xe1\x17\xc9\xfa\x47\x6f\xa2\x62\x9c\xa7\x0e\x7e\ \xae\x5f\x76\x7b\xcb\x29\x75\xe5\xad\xd0\xb6\xf8\x4a\x41\xe3\x9d\ \xde\xde\xd9\xf5\xa9\x23\x52\xdb\x56\x77\x27\x6a\x0a\x55\xb4\x13\ \xdf\x68\xc1\xdc\x7e\x3d\x2b\x9e\xb4\x96\xa3\x75\x49\x5c\x49\x0a\ \xf0\x25\x05\xed\x78\x2b\xb6\x33\x9c\x83\xed\x90\x4d\x5b\xba\x72\ \xfa\xc4\x88\xcf\xc4\x5a\xd2\xe2\x8e\x49\x4e\x41\x51\x48\x27\x27\ \xf1\xe0\xf1\x5c\xd8\xcf\x2b\xca\xcd\xb5\xb0\xed\x2b\xa2\x62\xb7\ \x1a\xfb\x39\x5b\xdb\x7c\x40\x37\x00\xa3\x95\x03\xeb\xf4\xe3\xf9\ \xd6\x36\x1b\x92\x52\x1d\x42\x1d\x59\x64\xac\xe7\x27\x71\x38\x38\ \x18\x3e\x99\xf4\xa6\xb6\x6e\x2d\x29\x85\x48\x3e\x11\x64\xa0\xab\ \x07\x2a\xe3\xe3\xdf\xe9\xf1\x4d\x0f\xce\x62\x25\xe2\x38\x6a\x3e\ \x5e\x71\x7b\x7c\x24\xaf\x0a\x2b\xc6\x46\xef\x7c\x0c\x7e\x75\x6c\ \xf6\x69\xa3\x26\x4b\xe8\xcb\x36\x43\xcb\x4b\xc8\x70\xe1\xa6\x90\ \x00\x69\xa0\xac\x92\x9f\x53\xc7\xcf\x14\xe0\xdc\x9d\xea\x05\x21\ \x38\x3d\xf1\xe9\xf5\xa8\x8d\x9e\xef\xe2\xba\x8d\xd2\x9a\x4e\x5b\ \xcb\x98\xe5\x48\x03\xd7\xf0\x3c\xd3\xdb\x6f\x17\x23\x78\xc8\x2a\ \x79\x0e\x04\x84\x24\x0e\xe0\x1c\x67\x3f\x3e\xd5\xae\x3a\xea\x8c\ \xed\x5b\x46\x2c\x75\xc7\x14\x14\x12\xa4\xab\x1c\x2b\x3d\xc5\x68\ \x62\x30\x74\x82\xa7\x95\x8e\x48\xcf\x35\xb5\x97\xd1\xb1\x0e\xba\ \xb4\xaf\x6a\xca\x4a\x47\x74\x91\xc7\x3e\xf5\xbe\x2a\xda\x01\x68\ \x20\xb9\x85\x67\xcc\x30\x47\xb5\x3e\x04\xa9\xe9\xa1\x8a\x62\x6f\ \xf3\xa5\x3b\x8a\xb3\xf8\xe3\xf9\x1a\x4d\x22\x2a\x9d\x5a\x90\x52\ \x84\xa7\x1b\xb9\x39\x27\x07\x9a\x5b\x1d\xc0\x42\x96\x96\xd4\x0e\ \x77\x04\x13\xc9\x07\xbd\x27\x7d\x63\x6b\x6a\x0a\x04\x94\xfa\x1e\ \x70\x7b\x8f\xaf\xc5\x59\xd8\x9c\xcd\x31\xb3\x86\xde\x70\x24\xfe\ \xcd\x05\x27\x70\x3c\x12\x78\xff\x00\x43\xe6\xb4\xc8\xb9\x25\xa6\ \x1c\x7d\x4b\x46\x5b\xc9\x20\x1f\x51\xee\x2b\x75\xd9\xf4\xc6\x61\ \xd9\x2d\xc8\x4a\x08\xe4\x93\xdf\xd3\xd3\xe9\x51\x6b\xbc\xef\x05\ \x6d\xa9\x4d\x2d\x95\x2b\x97\xc1\x19\x1c\xa7\x21\x43\xdf\xb7\xf1\ \xac\x75\x5e\x51\xab\xac\x37\x6a\xeb\xab\xbf\xa9\xd4\xb6\xd5\x97\ \x54\xe6\xd6\x4f\x8b\x9c\x05\x0e\xff\x00\xcf\xf9\xd6\xb6\x66\xa5\ \xb8\x3e\x47\x47\x8a\x94\x02\xe0\x20\x60\x64\x11\xe9\xe8\x78\xc5\ \x43\x2f\x77\x17\x2e\x37\x56\x19\x8e\x84\xa9\xb6\x4e\xf5\xad\x18\ \xfb\xf9\x00\xfe\x1c\x9f\xc6\x91\xeb\x9d\x4c\xbb\x44\x05\x33\x0f\ \x2e\x4f\x53\x48\x43\x0c\xb6\x39\x56\x0e\xe2\x15\xec\x30\x39\x3e\ \x95\xcf\x93\x6e\x5a\x1b\x23\x4b\x44\x8a\xd3\xf4\x8b\xd5\x81\x71\ \xe3\xe9\xb8\xc9\x42\x5c\x7d\x09\x76\x56\xd5\x79\x91\x85\x1c\x24\ \xfe\x40\xd5\x2e\xc7\xdc\xf2\x9e\x41\xc9\xac\xae\xd3\xe4\xdd\x2e\ \x92\x2e\x53\x56\x1c\x7e\x43\x85\x6b\x50\xed\x9f\x61\xf0\x2b\xd4\ \x36\xb4\x46\x53\xdb\x78\x48\x1f\xc7\xff\x00\x4a\xf4\x58\x7a\x0a\ \x85\x25\x1e\x7f\x53\x83\x88\xaf\xc7\xaa\xe5\xc9\x6d\xe0\x3d\xda\ \x56\xa1\x66\x79\xa6\xc9\x3b\xdc\x6d\x48\x29\xee\x9d\xa4\xf2\x3e\ \x40\x3f\xc6\xa7\x5a\x1f\x54\x45\xfb\x53\x28\x9c\xff\x00\xd9\xa4\ \x17\x3f\x79\x3f\x7f\xb6\x09\x3e\x87\x15\x5b\x45\x56\xd8\xd9\x6f\ \x25\x25\x59\x71\x3f\xd9\x48\xe7\x23\xf9\x56\x6b\x2a\xb8\x45\x61\ \x29\x70\x05\x85\x1f\xeb\x09\xdc\x9e\xdf\xbd\xed\xf5\xaa\xba\x69\ \x4f\x30\xca\x96\xad\x47\x86\xfd\x7a\xb9\xdb\xfa\x4a\xec\xd3\x71\ \x98\x74\x10\xa4\x2d\x20\x85\x24\xe4\x1a\x91\x47\xd6\xf1\x5c\xbf\ \xb1\x60\xb6\xbc\x99\x37\x07\x12\x1c\x5b\x2d\x9d\xde\x0b\x7e\xab\ \x59\x1f\x77\xe0\x1e\x49\x22\xb8\xbf\x4e\xe9\xad\x63\x2c\x22\x09\ \xbf\xa2\x04\x65\x01\x95\xae\x5f\x00\x0f\x4c\x24\x93\x9f\x8a\xe9\ \xae\x84\x58\x2c\xfa\x56\xd8\x61\xdb\xdd\x12\x25\xbe\x77\x4b\x98\ \xaf\xbc\xf2\xbd\x07\xc2\x47\xb5\x3d\x63\xea\x4d\xa8\x52\x77\xf0\ \x38\x18\x9c\x1a\xc3\xdf\x3b\xd7\xb0\xbf\x5a\x69\xa9\x51\x52\xb6\ \xd4\x03\x80\x73\x9e\xe6\x92\x9f\x15\x87\x72\xa0\x52\x53\xdf\xe6\ \xb7\x5a\xc2\x56\xd8\x52\x09\xc8\x02\x97\xb8\x12\xa4\x6d\x79\x00\ \xf1\xc1\xae\xec\x65\x28\xab\x48\xcb\x93\x32\xb9\xa9\x89\x88\x51\ \x05\x20\xe4\xf1\xc5\x14\xb2\xc9\x6a\x6d\xb7\x0c\x85\x64\x83\xd8\ \x1a\x2b\x35\x5a\xd0\x8c\xac\x91\xaa\x95\x19\xca\x37\x6c\x83\x68\ \x26\xf6\x69\x78\x6d\x39\xf7\x72\xe1\xe7\xd4\x78\x8a\xa7\x92\x55\ \x1d\x59\x46\x14\x8f\x50\x07\x06\xb5\x68\xd8\x45\xee\x9f\x5b\x24\ \x23\xcc\xb4\x87\x09\x03\xd7\xf6\x8a\xa5\x29\x56\xe4\xf9\xbb\x8e\ \xfc\xd6\xca\x53\x53\x89\x86\x50\x70\x48\x41\x32\x14\x79\x61\x4e\ \x30\x42\x17\x83\x94\xd3\x4c\x66\xe7\x37\x2c\x44\x43\x6a\x3b\xbd\ \xbb\x54\x89\x4c\x24\x80\xb4\xf9\x71\xeb\x4e\x9a\x5e\x08\x5b\x85\ \xf7\x46\xec\x1c\x73\x56\xa9\x35\x08\xb9\x30\x84\x1c\xe4\xa2\x8a\ \xab\xa3\x76\x3b\x64\xed\x57\xaa\x97\x72\xb2\xbf\x2e\xe0\xc6\xa5\ \x92\x23\xdc\x17\x1f\xc4\x6a\x39\x43\x6d\xad\x20\xab\x23\x18\x56\ \x48\x1e\xea\x1e\xf5\x96\x96\xd4\x57\x4b\x26\x89\xb4\xb5\x6b\x83\ \x65\x44\xcb\x86\xb5\x91\x65\x79\x42\x3a\xd2\xc9\xdc\x5e\xcb\xdb\ \x37\x95\x67\x7a\x52\xa2\x9d\xdc\x80\x52\x08\xce\x45\xad\xa1\xf4\ \xbf\xf4\x65\x7a\x81\x62\x77\xda\xbf\x5c\x5e\x5e\xba\x01\xe0\xec\ \xf0\x7c\x44\xa1\x3e\x1f\x73\xbb\x1b\x3e\xf7\x19\xcf\x6a\x8e\xc6\ \xe9\x87\x83\x6e\xb5\xc4\x37\xcc\xfd\x83\x55\x2f\x50\xee\xfb\x27\ \xf5\x9b\x8b\x87\xc1\xfb\xfc\x7f\x59\xf7\xf9\xed\xf7\x79\xae\x44\ \xaa\x39\x3b\x9b\x23\x86\x94\x22\xac\xb5\xd7\xf9\x43\x05\xd7\x5b\ \xdd\xad\x2c\xea\xcb\x54\xe8\xb6\xc9\xd7\x8b\x4d\xca\x0c\x08\x2f\ \x34\xca\xd9\x65\xf3\x31\x28\x2d\x95\xa7\x72\x88\xd8\x14\x73\x85\ \x73\x8f\x4c\xe6\xbc\xd1\xd6\xcb\xa4\x2e\xbb\xea\x16\x2e\x72\x61\ \xcc\x79\x36\x28\xaa\x4b\xb1\xd8\x53\x29\x52\x0b\xae\x77\x49\x5a\ \xb0\x73\x91\xf7\x8f\xa7\xd2\xa4\xb7\xbe\x99\x31\x76\x9f\xab\x65\ \x3d\x78\x75\xa5\xdf\xa4\x41\x95\x1d\x4d\x32\x02\xa0\xbd\x15\x09\ \x4a\x14\x09\x24\x2f\x25\x20\xe0\x81\xc1\x23\xe6\x9c\x74\xbe\x8f\ \x9f\x6f\xd6\x73\xf5\x5d\xda\xfa\x8b\x94\xe9\xb0\x9b\x86\xb4\x35\ \x0f\xec\xed\x21\x2d\xa8\xa9\x25\x23\x7a\x8f\xa9\xce\x49\xe4\xfa\ \x0e\x28\x55\x64\xb9\x93\xec\xf2\x73\x4d\xae\x7e\x5a\xfe\x08\xdd\ \xda\xf5\xa8\xe7\xeb\xf9\x9a\x5f\x4e\x3d\x6f\x88\x6d\xd0\x1b\x97\ \x21\xf9\xac\x2d\xd0\xb7\x1c\x52\x82\x1b\x09\x4a\xd3\x84\xe1\x19\ \x2a\xc9\x3c\xe0\x0f\x5a\x43\xa7\xb5\xf4\xeb\xdc\xfe\x9f\x29\xa8\ \x8c\x47\x63\x50\xc7\xb8\x99\xcd\x9c\xa9\x4d\xbb\x1b\x6a\x70\x85\ \x7b\x6f\xdd\xe8\x72\x31\x52\xdd\x4f\xa2\xe6\x3f\xa9\xdf\xd4\xfa\ \x7a\xf6\x2d\x57\x09\x10\x93\x0e\x50\x76\x20\x7d\xa7\x10\x95\x15\ \x21\x61\x3b\x92\x43\x89\xdc\x70\x72\x46\x0f\x20\xd3\x2b\x1d\x38\ \x6e\x2c\x2d\x2a\xd5\x82\xee\xa8\x73\x34\xc8\x79\x0c\x3d\x26\x3f\ \xda\x12\xfa\x5f\x00\x3d\xe2\x24\x29\x1c\xa8\x8d\xd9\x04\x60\xfb\ \xf6\xa6\xf1\x1c\x95\xc5\xca\x95\x48\xc9\xaf\x5b\xaf\xa5\xc8\x6e\ \xa8\xd4\xfa\xa2\xed\x66\x65\x51\xae\x4c\x5b\x94\xcf\x50\xc5\x94\ \x16\x98\x3e\x66\x51\x20\x06\xf7\x79\x86\x7b\x79\x87\x65\x03\x8e\ \x2a\x7b\xd4\x46\xee\xd1\xba\x45\xa8\xd6\x8b\x8a\x3f\x58\x31\x66\ \x90\xe2\xe5\x21\x9d\xa0\x94\xb4\xa2\xa2\x94\xee\xf2\x92\x01\x00\ \xe4\xe0\x90\x79\xc6\x29\xad\x7d\x30\x5f\xea\x15\x5a\xe3\xea\x07\ \x0c\xc1\xa8\x93\xa8\x5b\x96\xf4\x40\xa0\x24\x85\x25\x44\x29\x01\ \x43\x72\x4a\x82\x8f\x05\x3c\x10\x3d\x32\x67\x97\xeb\x13\xf7\x9d\ \x0d\x73\xd3\xb2\x66\xb6\x89\x17\x1b\x7b\xd0\xdc\x94\x86\x30\x94\ \xa9\xc6\xca\x0a\xc3\x65\x59\xc0\xce\x76\xee\xfc\x6a\xae\x6e\x2b\ \x5e\x65\xa9\xd1\x9c\xaf\x7e\xc2\xb3\xe9\xfb\x97\x58\x88\xd3\x7a\ \x32\xc1\xfa\x8a\x24\xb7\x74\xe3\x57\x89\x93\x5c\xb7\x1d\xbe\x1a\ \xb6\xb6\xd2\x03\x48\x5a\x77\x2b\x20\xee\x59\x57\x61\xdb\x26\x94\ \xb7\xd4\x7d\x49\x70\xb5\xe9\x96\x6d\x70\x6d\x71\xaf\x17\x4b\xa4\ \xcb\x44\xb0\xf8\x5a\xd8\x65\xe6\x37\x65\xc4\xe0\x85\x29\x38\x46\ \xe0\x9c\x8c\xe7\x19\x1d\xea\x4f\xfd\x03\x95\x0e\x55\x92\xe7\x64\ \xbe\x88\x57\x5b\x6d\x9d\x36\x87\x1e\x7a\x1f\x8c\xcc\x96\x06\xd2\ \x0a\x9b\xde\x92\x14\x14\x9d\xc0\x85\x71\x92\x0e\x45\x68\xb7\xf4\ \xce\x2c\x01\xa5\x04\x7b\xbb\xaa\x36\x29\xf2\x27\xbe\xe3\xcc\x85\ \x2e\x6b\xaf\x25\x7b\xc9\x20\x80\x9e\x56\x4f\x63\xc0\x03\xe6\x92\ \xe4\xde\xe3\x23\x4a\xa4\x74\x5e\xb6\xfc\x93\x98\x48\x7d\x30\x98\ \x44\xc5\xb6\xec\x84\xb6\x90\xf2\xdb\x46\xd4\xa9\x78\xf3\x10\x32\ \x70\x09\xcf\x19\x35\xa6\x74\x20\xe2\x0a\x9b\xe1\x58\xef\x4b\x7e\ \x86\x81\x44\x66\xe2\xee\x8d\x92\x82\x92\xb3\x18\x63\x47\xda\x49\ \x79\x5c\x8f\x4a\x58\x09\x23\x68\x18\x4d\x6c\x94\xd8\x4b\xc1\x5e\ \xf5\xe0\xad\x2e\x79\xb5\x33\x46\x19\x74\x3d\x4a\x76\x8a\xda\xc8\ \xc6\x56\xae\xd5\xad\x09\x2b\x50\x03\xd2\x95\x3a\x90\x19\x29\x14\ \x99\x3e\x43\xa2\xb9\x8d\xb3\xb0\xb7\x0a\x93\xcf\x15\x1c\xd4\x72\ \xdd\x8d\x01\xe2\x81\xb9\x7b\x4e\xd1\xee\x6a\x40\xa5\x14\x93\x8f\ \x4a\x8f\xea\x16\x17\x25\xa5\x0f\x53\x5a\x32\xc9\xc6\xd1\x32\xd4\ \x77\xd5\x1f\x3d\xb5\xfd\xcf\x5d\xeb\xad\x61\x24\x39\x0e\x5c\x87\ \x91\x93\xf6\x76\x92\xa0\x86\x12\x0e\x30\x40\xf6\x3c\x12\x7d\x69\ \xb2\x2e\x9d\xd5\x16\x89\x6c\xbb\x71\xb6\x3e\xd3\x41\x61\x38\xdd\ \xc1\x27\xf1\xae\x90\xeb\x0c\x46\xb4\xe2\x5f\xbc\xc7\x6d\xb6\x64\ \x15\x7e\xd1\x40\x04\x97\x72\x47\x94\x9f\x73\x54\xcd\xf2\xfa\x8b\ \xf6\x9d\x79\xf8\x4a\x52\x64\x32\xe2\x56\xa6\xd6\xac\x2d\x24\x1f\ \x6f\x51\xf4\xae\x35\x49\xce\xed\x4d\x58\xe8\x61\x6a\xb7\x97\x24\ \x74\xd8\x6f\xd5\xf6\x69\x6e\x86\xa3\xb7\x66\x7c\xc9\x77\x21\x00\ \x27\x2b\x51\x03\x24\x77\xf4\x19\xa8\x33\xda\x6a\xf3\xe2\x61\x16\ \xa7\xce\x4e\xd0\x0f\x07\x3c\x9f\x7f\x83\x57\x25\xd5\x71\xcb\x08\ \x96\xec\xc6\x5a\x69\x61\x2f\x36\xe2\xdd\x09\xda\x48\xce\x46\x4f\ \xb1\xaa\xcf\x50\x6a\x75\x15\xed\xb6\x05\x25\x49\xdd\xbd\xee\xe3\ \x24\x11\x91\xf8\x13\x8f\xad\x36\x8c\x1a\xa7\x9a\xfb\xaf\x32\xcb\ \x13\x2a\xcd\x45\xc7\x62\x2b\x1d\x82\xe4\xb6\x62\xaf\x09\x53\x8e\ \x25\x18\xcf\x6c\x9c\x72\x6b\xc9\x51\x9c\x6a\x43\x8c\xe3\x1b\x16\ \x5b\x51\xfa\x1c\x1a\x5d\xa7\x19\x13\x2f\x91\xc3\x88\x52\x9b\x6c\ \x97\x5d\x24\x9c\xe0\x73\xc9\xf9\x38\x1f\x8d\x6f\xbd\x36\x7c\x57\ \x24\x38\x70\x5c\x3c\x24\x7a\xe3\xd6\x9b\x14\xdb\x7d\xc1\x27\x1b\ \xd8\xd1\x79\x94\xe5\xde\xee\xf4\xa7\x37\x3b\x35\xd7\x50\x80\xd3\ \x0d\x65\x2a\x21\x20\x71\xf9\x70\x3d\x6b\xa1\x7a\x0f\x0d\x33\xfa\ \x7c\xea\x5b\x6b\xc5\xd8\xa2\x36\x77\x25\xbc\xe4\x1e\x3f\x78\x12\ \x7f\x0c\x7b\x57\x3e\xdb\x2e\x26\xdd\x35\xb9\x6d\x36\x91\x22\x30\ \x43\xad\xa8\x7e\xea\x92\xa0\xa1\xfc\x06\x0f\xd6\xba\x17\xf4\x6a\ \x92\xe3\xa8\xbb\xac\xb5\xe0\x66\x7f\x8c\x1b\x40\xc6\xc4\xb8\x37\ \x0e\x3d\xbe\x7b\x57\x3f\x1f\xd6\xa7\x67\xca\xdf\x63\xa7\xd1\xed\ \xc6\x6e\x48\x64\xd7\xda\x6a\x4c\x29\x49\x7a\x3a\xd1\x94\x28\x2d\ \xa7\x14\x33\x90\x32\x70\x7d\xe9\xab\x4f\xea\x29\x2c\xf8\x5e\x02\ \x56\x42\x4a\x81\x69\x4b\xda\x52\xac\x85\x10\x93\xdf\x07\x9f\xc3\ \x8a\xe8\xad\x51\x64\x8b\x26\x23\x8f\xa5\x96\xdf\x52\x0a\x94\xe3\ \x09\x1e\x60\x0f\xef\xa7\xfc\x40\xf6\xe2\xa8\x6d\x71\xa2\x57\x68\ \x96\x65\xb0\xe8\x2a\x4f\x29\x52\x46\x4a\xd2\x71\xc0\xe7\xdf\xf8\ \xd7\x26\x2a\xdd\x59\x7c\x0f\x41\x0a\xdc\x4e\xb2\xdf\x99\x37\xb4\ \x6b\x95\x18\xf1\xbc\x44\xab\x85\x79\x51\x8c\xf6\x3d\xf3\xe9\xd8\ \x60\x1e\x6a\x4d\xf6\xe6\xe4\x23\x28\x5b\x7b\xd9\xcb\x89\xda\xb3\ \x95\x1e\x0a\x88\x3d\xf3\xe9\xcf\x07\x35\x45\xdb\x11\x20\x90\x84\ \x2c\xa1\xe2\x00\x2a\x74\x14\xe0\x1e\x09\xc7\xe1\x52\x07\x5d\x99\ \x0d\xf8\xbb\x9b\x12\x1b\x64\xec\x58\x2b\xf3\x2c\x77\xf4\xcf\xcd\ \x2e\x49\xa7\x64\xc9\x96\x1e\x13\xd5\x68\x58\xcc\x5d\x1a\x64\xb8\ \x43\x8b\x69\xc9\x18\x29\x52\x80\x1e\x1a\x14\x48\xc7\xc9\x24\x91\ \xf9\x54\xa6\xd5\xac\x5a\x8c\xda\x1d\x79\xd3\x15\xc4\xe5\x05\xa7\ \x10\x40\x47\xa7\x97\x9f\x31\xc2\x48\x38\xf5\xcd\x52\xd3\xae\x4a\ \x5a\x54\x63\x89\x0c\xa9\x68\x40\x6e\x3a\x8e\xd5\x67\x83\x92\xa3\ \xfb\xbd\xb1\xeb\x5b\x67\x5c\x51\x28\xc5\x6a\x6a\x32\xe4\x70\x54\ \xd2\x37\xa9\x60\x7a\x11\x8c\xf3\xdf\x9f\xad\x5a\x15\x25\x11\x33\ \xc2\x46\x45\xff\x00\x6d\xd5\x70\xd2\x43\x89\x7e\x13\x8d\xb8\x42\ \x96\x19\x70\x2b\x7a\x49\xc0\x27\xd8\xf7\xe7\xe2\xa4\x08\xba\x25\ \x4e\x36\x63\xbe\xd3\xad\x28\x00\xbc\xab\x9e\xd9\x07\x3e\xbc\x1e\ \x47\xc5\x72\xe3\xd6\xc8\xd2\xda\x53\xb1\x24\x4f\x4b\xc5\x64\x2d\ \xb2\x36\xec\x09\xe0\xa9\x40\x1c\x00\x33\x81\x8f\x8a\x77\xb6\xc1\ \xbe\x90\xd3\xd1\xb5\x1c\xd2\xca\x52\xa0\x8c\x34\x55\xb4\xa5\x38\ \x4e\x01\xf9\xfe\x74\xe8\xe2\xb2\xab\x31\x32\xe8\xf4\xf5\x4c\xe9\ \x28\xf7\x58\xaa\x52\x92\x14\xe2\xd0\xda\x4a\x4a\x89\x00\x13\x9e\ \xff\x00\xe1\x5a\xdf\xbd\x41\x8a\xa4\x93\x21\xa0\x51\xf7\xdd\x1c\ \x63\x23\x03\xe0\xf2\x45\x73\xab\x82\xf8\xd3\x0b\x73\xfa\x45\x21\ \x87\x56\x43\xcd\xb4\xf6\x08\x07\xb7\x38\xf8\x26\x9a\x2e\x97\x3d\ \x45\x21\xf6\x61\xa2\x42\x12\x8c\x8f\x0d\xe5\x76\x51\xc1\x21\x58\ \xec\x14\x71\x9c\x55\x96\x31\xb2\x1f\x47\x77\x96\xd6\xaf\xd6\xb1\ \xe6\xbf\x25\xa8\xcf\x0f\xf6\x56\x9b\x59\xdc\x78\xde\x4a\xbb\x9f\ \x73\xb4\xfe\x75\x5e\xea\x7d\x69\x2e\xe5\x30\xc1\xb7\x28\xbe\x96\ \xf2\x90\xa3\x9c\x01\xc9\x00\xfb\x60\x54\x30\x45\xbb\xcb\xb9\xa6\ \x2a\xa5\x89\x13\x23\xb1\x92\xb6\xd5\x93\xb9\x47\xd4\x01\x8e\x32\ \xaf\xce\x9c\x2d\xf6\x77\x23\x3c\xa9\x2e\xc9\x58\x65\xbc\x92\x90\ \x08\x71\x47\x27\x72\x56\x47\xd4\xd2\x67\x55\x6e\xd9\xa6\x9e\x15\ \x2e\x42\xb8\x32\x4c\x56\x1a\x4b\x1b\x5d\x90\x37\x07\x49\x18\xc7\ \x97\x95\x13\xd8\x73\xc6\x7d\x78\xe2\xbc\x76\xd6\x59\xb5\xc9\xbb\ \x5c\x14\xb7\x27\x86\x1c\x0e\x29\x49\xc2\x41\x50\xc6\x11\xfd\xd0\ \x14\x7e\xb9\xcf\x14\xe9\x6d\xb6\x26\x42\xb6\x32\xd8\x6e\x18\xfb\ \xe9\x56\x78\x57\x73\xeb\x82\x72\x7b\x7c\xd2\xfd\x7c\xc3\xcd\xe9\ \x39\xeb\x48\x51\x1f\x65\x51\x09\x3d\xd2\x00\x27\x15\x85\xd4\xbc\ \x92\x5c\xcd\x71\xb4\x59\xca\x57\x28\xc2\x3d\xc1\x6c\xa9\x25\x08\ \x49\xdd\x8f\x5c\x11\x9f\xe5\x4e\x5a\x85\x22\x38\x53\x0d\xa9\x1e\ \x19\x0d\x29\x01\xb3\x91\x80\xda\x7d\x7e\x09\x57\xe3\x9a\x75\xd7\ \x76\x97\x94\xd4\x0b\xd3\x0d\x3c\xa8\xd7\x16\xff\x00\xd9\xd6\xa3\ \x92\xa2\x00\xc8\x23\xd8\x64\x01\xf4\xa6\x3f\x1c\xc9\xb9\xb4\xa5\ \x90\x12\x97\x39\x18\xfb\xa9\xe1\x3f\xc8\x7f\x1a\xf5\x94\xaa\xaa\ \x90\x52\x3c\x7d\x5a\x5c\x3a\x92\x87\x6b\xd3\xc1\x9e\xb4\x96\x9a\ \x69\x98\x9b\x86\xf7\x88\x52\xc8\x3f\x77\x9e\x07\xe3\xdf\xf2\xa7\ \x54\x58\xe4\x7d\x91\x99\x68\x43\xfb\x06\xe2\xe0\x49\x07\x19\xc1\ \x03\xe0\xf6\xf8\xac\x64\x5a\x24\x38\x13\x28\x20\x06\x5d\xfd\xb3\ \x8b\x04\x05\x47\x4e\x70\x33\xed\xc0\xfe\x55\x63\x40\xb7\xc9\x94\ \xc4\x59\x6c\xbe\xe3\x3b\x19\x52\x92\x3b\xa5\x44\x0c\x10\xaf\x62\ \x40\x07\x3d\xb9\xac\xb8\x8c\x46\x44\x9c\x4d\xf8\x4c\x2a\x93\x6a\ \xa2\xdb\x62\x2f\xa3\x58\x9a\x99\xc0\xfe\xaf\x6a\x68\x50\xe1\x52\ \xde\xe1\x1c\xf7\x1b\x54\x39\xfc\xeb\xa8\x7a\x52\xcb\xcf\x36\x95\ \x3a\xda\x42\xc6\x32\x12\x30\x07\xd3\xe2\xa9\x58\xaf\x3a\x99\x68\ \x4c\x68\xca\x8c\x87\x0e\xe5\xa5\xb7\x02\xd2\xa3\xea\x7d\x2b\xa1\ \x3a\x3e\x85\x38\xdb\x41\x28\xca\x4f\x73\x8a\xdf\xd1\x0b\x8b\x2e\ \x26\xc7\x9f\xe9\x97\xfb\xd9\x2d\xb1\x6b\xd8\x42\xb6\x24\x67\x18\ \xa7\x83\x83\x84\xd2\x66\xa0\xa9\xa4\x78\x8c\x8f\x4e\xd5\xb0\x3b\ \x95\x03\x8e\x41\x19\xae\xd4\xda\x9b\xba\x39\xb1\x4e\x0a\xcc\x90\ \xb0\x90\x96\x52\x07\xb5\x14\x32\xa0\xa6\x52\xae\xdc\x51\x5c\xb7\ \xb9\xd4\x5b\x10\x8e\x95\x5d\xa0\xb9\xa2\xad\xd1\x0b\x98\x5a\x43\ \x80\x82\x7f\xe3\x15\x4e\x17\xa8\x06\x3b\xa5\xf6\x47\x90\xf7\xc5\ \x57\x9d\x2a\xb7\x3f\x2a\xcf\x6f\x59\x2a\x42\x32\xbc\x1c\xff\x00\ \x7d\x55\x72\xa6\x3a\x4c\x50\xd2\xc8\x56\x05\x6f\x93\x54\x1a\x6b\ \x99\xcd\xa2\x9e\x22\x9d\x9f\x22\x18\x95\x6e\x41\x23\x3f\x41\xe9\ \x52\x6d\x3a\x13\xf6\x00\x78\xfa\xe2\x9a\x2e\xf6\xb7\x23\xac\xba\ \xc8\xca\x09\xe4\x0f\x4a\x51\xa6\x66\x24\x66\x3a\xd4\x02\xb3\xc0\ \x34\xca\xed\x54\xa5\x78\x95\xa0\x9d\x3a\xb6\x91\x9c\xad\x5b\xa7\ \xda\xb3\x37\x75\x6e\xeb\x0d\xc8\x4e\x3b\xe0\x21\xe4\xb8\x36\x29\ \xcd\xfe\x1e\xc0\x7d\xf7\x8d\xb8\xf7\xa6\x87\xb5\xa5\xb3\xf5\xc2\ \x6d\x2a\xbd\x5b\x9b\xb8\xa8\x80\x98\x8a\x92\x80\xe9\x27\xb0\xdb\ \x9c\xe4\xf7\xc5\x54\xe2\x2b\xad\xf5\x81\xfd\x04\x50\xa1\x06\x25\ \xf5\xcd\x48\x36\x8e\x03\x2a\x6c\x29\x09\x1e\x98\x12\x1c\x27\xfe\ \xaf\xd2\x99\xe7\x04\x27\xa6\xd7\xdd\x26\xe2\x48\xd5\xf2\x35\x03\ \x8e\x30\xc1\x6c\xf8\xee\xba\xa9\x49\x52\x24\x24\x77\x28\x08\xc1\ \xde\x38\x00\x11\xf1\x4a\xa7\x08\xc6\x37\xb5\xc5\xd5\xc5\x54\x6d\ \xad\xac\x5f\x08\xd5\xf0\x18\x76\xe2\x87\xa7\xc7\x1f\xaa\xd0\x17\ \x3c\x6f\x19\x8e\x92\x8d\xe0\xaf\xdb\xcb\xcf\xd2\x9c\x7f\xa6\x1a\ \x65\x28\x63\xc7\xbe\x5b\xd9\x2f\xa5\x85\xb2\x97\x1f\x4a\x4b\x81\ \xe2\x52\xd6\xd0\x4f\x3b\x8a\x55\x8c\x77\xda\x7d\xaa\x89\xd4\xf3\ \x23\xc1\xbe\x75\x6e\xdf\x2d\x65\xa9\x97\x8b\x6b\x22\xda\xc6\xd2\ \x57\x2f\xfd\x88\xb5\xfb\x30\x3e\xf6\x17\xc1\xc7\x6e\xe7\x8a\x71\ \xe9\xcb\x51\xff\x00\xf6\xb3\x61\x75\xf8\xec\xbc\x5b\xd0\x50\x94\ \xd9\x5a\x02\x8a\x09\x79\x5c\x8f\x63\xf3\xf3\x51\x56\x9c\x65\xb2\ \xb3\x2d\x4b\x17\x35\x2b\x32\xed\x8b\xa9\x34\xf4\xbb\xc3\x96\x68\ \x97\xcb\x6c\x8b\x8b\x7b\x82\xe2\xb7\x25\x0a\x75\x25\x3f\x78\x14\ \x83\x9c\x8f\x51\xe9\xc6\x7b\xd3\x42\xb5\x35\x8e\x43\xd3\xbf\x52\ \xde\x6d\xb7\x09\x11\x1b\x52\xdd\x66\x3c\x94\x38\xa4\x63\x23\x90\ \x93\x9c\x64\x11\xf5\x04\x77\x15\x58\xd9\xa4\xcd\xb7\x0b\xae\x87\ \xd0\x97\xb8\xda\x92\xcf\x71\xb5\x5c\xa4\xc3\x5b\x29\x05\xfb\x3c\ \x95\x02\xa4\x21\xc7\x13\xc2\x82\xd6\xe1\xdb\xbb\x0b\x1f\x4e\xf8\ \xe8\x98\x50\x27\xc0\xd3\xb3\xc6\xac\xb7\xb9\x3e\xcf\x60\x76\x22\ \xad\x0c\x41\x0c\x48\x65\x0a\x69\x01\x4d\xbf\x95\x95\x02\x85\x24\ \x77\x03\x27\x27\xd6\xb3\x53\x76\x95\x87\x4e\xbc\xa4\xb4\x5e\xbe\ \xa3\xcc\x2e\xab\x2d\x76\x4d\x18\xe0\x66\xd7\x1e\xed\xaa\x12\xa7\ \x31\x29\xf5\x25\x88\xc8\x4a\x54\x72\x70\x0a\x8e\x48\x09\x48\xe3\ \x93\x56\xba\xee\x51\x63\xca\x83\x6f\x9d\x2a\x3b\x17\x09\xa9\x51\ \x65\x8d\xfc\xba\xa4\x24\x15\xec\xcf\x24\x00\x73\xf4\xaa\x27\xa7\ \x83\x0d\x74\x1f\x1f\xfc\x0b\x8f\xfe\x11\x75\x3d\xeb\xc3\xe8\xb2\ \xda\x6c\x5a\xcd\x41\x41\x3a\x7e\xee\xcb\xef\xa9\x23\x24\x47\x74\ \x16\x1d\x18\xfa\x38\x0f\xe1\x55\x93\xcc\xcb\x50\xa9\x28\xd3\x72\ \x6f\x6b\x7f\x09\xbf\xe4\x94\x48\xd5\xba\x7d\x11\xae\x52\x1b\xbc\ \x43\x53\x56\xb7\x14\xd4\xf5\x87\x46\x23\x2d\x23\xcc\x95\x9f\xdd\ \x23\xe6\xa1\xf2\xfa\x99\x6d\x85\x17\x55\x5c\xa7\x48\x84\x60\x58\ \x56\x1b\x49\x8b\x31\x2e\xba\xf2\xf6\x12\x5b\x52\x38\xd8\xbd\xe9\ \x52\x40\x27\x9c\x55\x55\x1e\xdb\x26\x15\xca\xd7\xa5\xe4\x21\x41\ \xcd\x76\xcc\x29\xd3\x40\x49\x23\xc5\x43\xeb\x7e\x60\xcf\xcb\x6a\ \x48\x24\xfb\x53\xb6\xb3\x6d\xc9\x07\xae\x2c\xc7\x69\xc7\x5c\x54\ \x78\x1b\x50\x84\x95\x13\x88\x89\xf4\x1f\x14\xe5\x1c\xab\x41\x13\ \xc4\xce\x4a\xfb\x7f\x4d\xfd\x89\xed\xc7\xa9\xf6\xb8\x97\xed\x2e\ \xd3\x33\xe0\x1b\x4d\xe5\xb9\x6a\x7a\x63\xaf\x84\x86\x54\xca\x1b\ \x21\x20\xf6\xc9\x2b\xc6\x3e\x98\xef\x56\x1d\x8a\xed\x6f\xbd\x5b\ \x5a\xb8\x5a\xe6\xc7\x9b\x15\xd1\x94\x3c\xc3\x81\x68\x57\xd0\x8e\ \x2a\x9f\x9b\x3a\xd5\x79\xea\x67\x4a\xe6\x5b\xe5\x45\x9e\xc2\x62\ \x5c\xca\x5d\x69\x61\x69\x0a\x11\xd9\xec\x47\xa8\xcf\xe1\x4f\xfd\ \x01\x21\xb8\x3a\xc5\x23\xca\xdb\x7a\xba\xe6\x94\xa4\x76\x48\xf1\ \x07\x03\xd8\x55\x26\xae\x87\x50\xab\x2e\x26\x56\xee\xbf\x08\x97\ \x3f\xaa\x74\xd3\xd7\xb1\x64\x66\xff\x00\x6b\x72\xe6\x14\xa4\x18\ \x89\x94\x82\xe8\x5a\x7e\xf2\x76\xe7\x3b\x87\x72\x3b\x81\x4e\x49\ \xc9\x38\x03\x9a\xa0\x35\x56\xa6\xba\x6a\x8b\xc5\x8f\xed\x72\xd8\ \x8c\xf4\x2d\x71\x15\xa3\x67\x66\x29\xf1\x62\x32\x99\x3e\x1a\x5e\ \x79\x79\x24\x6f\xdc\x39\xc2\x52\x77\x80\x33\xcd\x74\x53\x0d\x06\ \xc7\xcd\x17\xca\x86\x52\x9f\x16\x4f\xb0\xf1\x09\x0c\xb5\x9c\x64\ \xfa\xd2\x67\x25\x2d\x60\x80\x31\x4b\x8e\x08\xe6\x91\x3c\xc0\x56\ \x54\x38\xaa\xc1\xa6\xf5\x34\x4d\x34\xb4\x13\x00\x09\xc9\xf5\xa4\ \xb3\x63\x64\x9e\x29\x72\x12\x94\xf9\x48\xed\x5b\x5f\x40\x2d\x53\ \xf3\xe5\x62\x63\x0b\x94\x8f\x56\x2d\xb6\x93\x6c\x92\xfd\xed\x31\ \xbe\xc0\xda\x0a\x9e\x2f\xfd\xc0\x9f\x9a\xe2\xad\x53\x72\xd3\x8d\ \xea\xa7\x13\xa6\x5c\x71\xa8\x2a\x59\xdc\x1d\x3f\xb3\x3c\xfe\xee\ \x41\x56\x09\xf7\xae\xfa\xea\xbe\x93\x87\xaa\xb4\xec\xab\x3c\xf2\ \xf8\x8c\xf8\x1b\xfc\x25\xed\x51\xda\x42\x87\x3e\xd9\x1d\xaa\x86\ \x73\xa4\x9a\x62\xc6\xb5\x18\x36\x64\x2d\x7d\xbc\x49\x07\xc4\x3f\ \xc7\x8a\xc5\x89\x4e\x73\xd2\x2d\xdf\xe4\x5a\x85\x55\x87\x93\x95\ \xce\x74\xbb\x5a\xda\x96\xe2\x1d\xb7\x87\xdf\x2b\x38\x4b\x69\x41\ \x3b\xd5\xec\x90\x29\xb6\x6e\x92\xd4\xc2\x40\x6d\xeb\x1d\xc1\xa5\ \x67\x01\x0e\x30\xa4\x63\xfe\xd7\x6a\xbf\xf5\x45\x9e\x2c\x7b\x6a\ \xe3\xcb\x65\xb6\xa3\x23\x2a\x05\x23\x69\x6c\x8f\xde\x49\x1d\x8d\ \x55\x77\xcd\x7a\xa6\x9e\x31\xe1\xc8\x5d\xdd\x49\x4e\x13\x22\x40\ \x52\x55\xff\x00\x58\x67\xcd\xf5\xe2\x95\x1a\x55\x29\x3c\xb2\x36\ \x54\xc5\xac\x46\xb4\xe2\x37\x47\xb5\x45\xd3\xd6\xd2\x97\xe5\x37\ \xf6\xd7\x9b\x0b\x96\x73\xc3\x69\xdc\x30\x81\xef\xdb\x27\xdf\x03\ \x1e\xf4\xc7\x72\x90\xdc\xe9\xec\xbe\xb6\x9c\x6a\xda\x95\x12\x95\ \xa8\x60\xad\x23\xef\x63\xdc\xfc\x57\xaf\xb4\xe5\xd1\xe7\xee\x17\ \x0b\x82\x5d\x79\x78\x27\x68\x2b\xe7\xb0\x1c\x71\xf0\x00\xa7\xa4\ \x68\x89\x8d\x36\xdc\x8b\xf3\xff\x00\x65\x8c\x96\xc2\x92\xd1\x58\ \xde\x12\x7b\x25\x5e\x89\x27\x9e\x3d\x2a\x54\xd4\x6f\x14\xf5\x7e\ \xb4\x23\x87\xc3\xb4\xe6\x44\x6e\x46\x19\x95\x21\x70\xbc\x64\xc5\ \x71\xc5\x16\x43\xbc\xa8\x23\x77\x1b\x8f\xa9\xc6\x33\xf3\x5d\x09\ \xd0\x2b\xdc\x49\xf2\x61\x3b\x1e\x57\x8b\x30\xc2\x6e\x3d\xc1\x95\ \x0c\x29\x0a\x6b\xca\x83\xf2\x0a\x7d\x7d\xc5\x52\x9a\xe2\x74\x59\ \x0a\x8c\x21\xb6\xcb\x48\x65\x3e\x1b\x69\x6d\x20\x00\x90\x06\x3e\ \xbf\x5a\x9b\xfe\x8a\x8f\x1f\xe9\xd5\xc1\xa5\x94\x80\xe4\x1d\xd9\ \x50\xec\x43\x89\xc7\xf3\xc7\xe3\x48\xc6\xd3\x5c\x2c\xcf\x91\xab\ \x03\x51\xba\xa9\x2e\x67\x5b\x82\xd2\x23\x07\x83\x45\x6b\xc0\x1e\ \x51\xdb\x9e\xe7\xd7\x1c\x53\x16\xa4\xb6\x34\x82\x64\xc6\x65\xa0\ \xc1\x4f\x88\xb4\x21\xb0\xa0\xbc\x9e\x4a\x49\xec\x3d\xc0\xf7\xf8\ \xa9\x1c\x21\xb1\xa0\xa0\x82\x49\x47\xe3\x5a\xe5\xc6\x5b\xc9\x75\ \xb4\x3a\x5b\x5f\x2a\x6f\x27\x09\xc9\xee\x0f\xc1\x1f\x85\x72\x2d\ \x74\x75\xe3\x2c\xac\xae\x11\x65\x87\x71\x43\x49\x7d\xb7\x5d\x70\ \xb7\xb9\x58\x4e\x32\x9c\x9f\x5c\x76\xc1\x3f\x95\x7b\x74\xd0\x59\ \x82\x96\xd8\x91\xfb\x2d\xa0\x05\x31\xc9\x4e\x47\xa8\x1d\xf3\xeb\ \x8a\x9a\x16\x03\x72\xd6\x10\xde\xf6\x52\x72\xf2\x14\x13\x96\xbd\ \xf0\x3d\x52\x4e\x2a\x47\x62\x4c\x2f\xba\xd2\x52\xb6\xf0\x49\xcf\ \x73\xee\x3e\x71\x55\x85\x24\xf4\x63\x9e\x2a\x70\xd5\x14\x5c\xed\ \x0b\x70\x8c\x94\xc9\x6d\xbf\x15\x0c\x84\xa0\x06\x89\x19\x23\xe3\ \x9c\x11\xf9\xd2\x17\x2d\x2e\x43\x49\x5c\xb6\x65\x3e\xea\x94\x3c\ \x13\x90\x48\x1e\xb9\x1e\x9d\xbd\x79\xae\x9e\x30\xa3\xc8\x28\x25\ \x2d\x00\x46\x42\x47\xef\x1f\x9f\xf5\x9a\xd1\x3f\x48\xd9\x26\xc7\ \x5b\x1f\x62\x43\x24\x1c\xe1\xb2\x40\xe7\xbe\x47\xaf\xad\x12\xc2\ \x4b\x78\xb2\xd0\xe9\x34\xbd\xf4\x73\x73\xca\x92\x72\x11\x18\x04\ \x25\xc1\xb5\x41\x24\xee\x18\x39\xc8\xf5\x39\xe3\x3d\xab\x6c\x49\ \x57\x24\x20\xa8\xdb\x1f\x4b\x9e\x38\xf0\xc0\x5f\x07\x00\x8e\x31\ \xce\x06\x7b\x9f\x8c\x55\xd9\x75\xd1\x01\xb6\xc7\xd8\x5c\xf0\xb0\ \x0e\x06\x3f\x21\xff\x00\x95\x47\x67\x69\xc5\x31\xbd\x4b\x8e\x94\ \x85\x61\x1b\x92\x0e\x4f\x3d\xbe\x9d\xeb\x34\xe9\xd4\x86\xe8\xd3\ \x0c\x55\x29\xad\x0a\xc5\xc8\xf7\xa7\x5a\xf0\x5e\x0c\x23\x78\x2b\ \x74\x00\x4a\x46\x14\x32\x33\xc6\x38\xf6\x35\x82\xf4\xf3\x4e\xc9\ \xcc\x89\x2e\xba\xa2\xb5\x06\xb7\xab\x6a\x06\x4e\x71\xc7\x07\x80\ \x07\xf2\xa9\xd4\xbb\x6a\xd8\x65\x69\x4c\x72\xfa\x57\x94\xa8\x2d\ \x38\x00\xe7\x24\xa8\xfb\x7d\x3e\x29\x13\xd1\xdb\x53\x4b\x4c\x72\ \x92\x55\x80\xa2\x3d\xbf\xf2\xf7\xa4\x39\x49\x6c\x68\x55\x13\xd8\ \x8e\x38\xcb\x71\x5f\xfb\x34\x76\x5a\x68\x38\x47\x88\xa6\xbc\xa5\ \x2a\xce\x70\x7f\xb5\x93\xeb\x59\xb1\x6e\x2a\x7c\x3b\x32\x3b\xeb\ \xdd\x92\x86\x5b\x40\x52\xb2\x3f\x78\x9c\xf1\x9c\x7a\xd4\x91\x98\ \x28\x2c\x78\x88\xda\xf3\xe5\x01\x28\x0d\xa7\xcb\x91\xea\x4f\x6a\ \x72\xb5\xdb\x84\x73\x94\x21\xb4\x12\x09\xc2\x07\xaf\xa7\x34\xbd\ \x59\x57\x51\x24\x37\x59\xed\xaa\x43\x0a\x43\x81\xad\xff\x00\xf0\ \x4d\x04\x7d\xc2\x7d\x33\xea\x7e\x6b\xcd\x73\x6b\x2d\x68\x8b\xb3\ \xce\x20\x94\xb7\x11\xce\x0f\xb6\xde\xd5\x34\xb4\x5b\x5f\x59\x0e\ \xed\x04\x81\xe5\xdc\x30\x09\xa4\xdd\x4e\x65\x0a\xd2\x53\xa1\xa9\ \x29\x52\x5e\x65\x48\x71\x25\x45\x20\xa4\xf0\x46\x47\x23\x8f\x6a\ \x74\x68\xda\x39\x99\x92\x55\xfa\xe9\x23\x92\x74\x8d\x95\xfd\x4b\ \xa3\x66\xc0\x45\xdd\xc6\xee\x16\xc4\x87\xe0\x42\x75\x25\x41\xe4\ \x14\xf9\x83\x67\xba\x54\x9c\x13\xec\x47\xd2\xa1\x53\x63\x48\x83\ \x7c\x75\x2f\xb4\xb6\x9e\x52\xb2\xe6\xe4\xf6\xcf\xde\x18\xf9\x39\ \xa9\x5c\xd3\x2f\x4a\x6b\x3b\xad\xbe\x13\xeb\x71\xfb\x5c\xa5\x16\ \x55\x9f\x32\xd2\x85\x03\xb4\xe3\xdd\x2a\x20\xfd\x4d\x49\xe6\xdb\ \xed\x57\xab\x95\xc6\x59\x77\x88\xef\x86\xe3\x15\x73\xfb\x32\xe6\ \x52\x09\xf5\x21\x27\xf9\x57\x5e\x15\xa5\x4e\xa5\xd2\xbc\x65\xaa\ \xf8\xd8\xc8\xe8\xd3\xab\x04\xdb\xb3\x8f\x6f\xc8\xd1\xa4\x5b\x6c\ \x37\x21\x6d\x24\xa1\x68\x1b\x5d\x4a\x53\x95\x14\x9f\x6c\xf0\xa0\ \x06\x46\x3d\xbd\xea\x40\xe3\x0b\x7e\x32\x98\x88\xfa\x6d\xef\x6c\ \xc3\x5b\x1b\xdc\xd8\xe3\x70\xcf\xf7\x08\x27\x9f\x4f\x6a\x6b\x5b\ \x4c\xda\xe2\x96\x5a\x01\x32\x49\x21\x2b\xcf\x74\xf7\x19\x1e\xa3\ \xe6\xb1\x8b\x76\x99\x16\x64\x55\xb8\xe7\xf5\x45\x45\x0b\xf4\x71\ \x0a\x18\x29\x27\xd8\x91\xd8\xfa\xd2\x2b\x46\x51\x86\x6b\x6a\xc7\ \xd3\x9a\xab\x5a\xd0\x92\xb2\xfb\x09\x51\x2a\x54\x2d\x42\x88\x57\ \x86\x19\x86\xe9\x50\x27\x24\xa5\x2b\x57\xb2\x55\xdb\x24\x72\x0f\ \x63\x5d\x5d\xd1\x75\xb1\xf6\x26\xc2\x46\xde\xdd\xfb\x8a\xe6\x6d\ \x40\xeb\x1a\x96\x04\x78\x56\xe4\xb6\x5c\x69\xc0\xec\x17\x15\xc9\ \x69\x59\xf3\x32\xaf\x74\xe3\x91\x9f\x6c\x57\x4b\x74\xcd\xa6\xe2\ \xb4\xca\x77\x02\x43\x69\x07\x1e\xbc\x72\x6b\xb3\xd1\x52\x94\x5a\ \x8c\x79\x9e\x53\xa6\x24\x9d\x65\x3b\x59\xf3\x2e\xf8\x2b\x42\x90\ \x12\x71\x58\x4b\x80\x87\x3c\xed\x1c\x2a\x91\xdb\xc0\x2c\x83\x9e\ \x3b\xd3\x8c\x10\xb2\x4a\xca\x8e\xdf\x40\x6b\xab\x2b\xc1\xb6\x99\ \x95\x35\x35\x66\x8d\x50\x9d\x71\x9f\xd8\x3c\x9c\x7b\x1a\x29\xc1\ \x48\x42\x8f\x99\x20\xd1\x49\x94\xd4\x9d\xc6\xc6\x0e\x2a\xd7\x2b\ \xce\x9d\xa4\x33\xa2\xed\xea\x6d\x1f\x77\xc4\xc7\xff\x00\xb8\xaa\ \x96\x89\xef\x1e\x12\x85\x7e\x55\x5c\xe8\x3b\x93\xcb\xd2\x70\x62\ \x45\x47\x3f\xb4\xca\x87\x3d\xdc\x55\x4d\xe0\x25\xc6\x98\xcb\xcb\ \x0a\x56\x3b\x57\x42\x54\xd6\x54\xe4\x73\x28\xd4\x76\x4a\x23\x92\ \x67\x29\x6a\x0d\x38\x80\x73\xf8\xd6\xa9\x56\x64\x38\xe0\x90\xc1\ \xf0\x96\x39\xc0\xf5\xa2\x13\x8c\xa5\x45\xe7\x56\x94\x81\xc7\x7a\ \x71\x8f\x2e\x3c\x80\x7c\x27\x01\xf6\xc1\xac\xd2\x72\xa6\xef\x04\ \x6b\x8a\x8d\x45\x69\xb2\x0a\xab\x24\x0b\x7e\xa1\x7e\x60\x92\xe4\ \x9b\xcc\xa4\x04\x9f\xb4\xcb\x2e\x3a\x96\x81\x52\x82\x10\x92\x7c\ \xa8\xc9\x27\x81\xe9\xcf\x6a\x79\x8d\x12\x63\xb8\x0a\x46\xc1\xea\ \x4d\x73\xfe\x9c\x76\xf5\x65\xd4\xbd\x5b\xd7\x0f\xfe\xa4\x9d\x76\ \xb1\x3e\xa0\xdb\xef\x40\xdc\xe2\x5d\xf3\x20\x16\xd4\x55\x96\xd1\ \xb3\x72\x4a\x47\x70\x47\x3c\x54\xf6\xfb\xd5\x1d\x4d\x61\xd0\x16\ \x4d\x43\x74\x6e\xc0\xc4\x8d\x51\x2a\x38\xb5\xa4\xf8\x9e\x04\x08\ \xee\xa0\x2b\xc4\x90\xa2\x41\x59\x4a\x4a\x49\xc6\xd1\xc9\xf6\xa9\ \x58\x96\xa3\x64\x8c\x71\xe1\xbb\xca\x57\x5f\xdd\x8b\x46\x5d\xb8\ \x33\x18\x2d\x3c\xac\x77\x34\x8b\xef\x24\x28\x0a\xaa\xe1\xf5\xc5\ \xd6\x34\x86\xb6\x7e\xe6\xab\x5d\xe6\x5e\x9d\x5b\x29\x8b\x2a\xdb\ \xb9\x11\xe7\xa5\xe3\xb5\x07\x04\xab\x6e\xd3\xf7\xb9\xfa\x76\xad\ \x7d\x32\xea\x5c\xfb\xce\xb8\xfe\x8b\x5c\xa7\xd8\xae\xa2\x45\xb8\ \x4e\x66\x55\xa4\x29\x28\x65\x7b\xb0\xb6\x16\x14\xa5\x64\x81\x93\ \x9c\xfb\x67\xbf\x17\xa3\x55\xc9\x75\xb7\x26\xa5\x5a\x59\x96\x5e\ \x7f\xd1\x7b\x5b\x17\xbe\x2a\x6b\xdb\x8f\x2c\x7b\x73\xde\xa8\xeb\ \xd2\x46\xb2\xfd\x21\x62\xe8\x9b\xd3\xd2\x5c\xb0\x41\xb2\xaa\x61\ \x84\xd4\x85\xb4\x87\xde\x2a\xfb\xcb\x28\x20\x9c\x05\x0c\x73\xc6\ \xdf\x93\x9a\xfa\xe9\xa9\xf5\x54\x7e\x84\xeb\x3b\x53\x37\xb7\x96\ \xdd\x8f\x50\x1b\x7a\x24\x3e\x54\xb7\xcc\x62\xe0\x09\x42\x57\x9c\ \x82\x14\x33\x93\x9e\x09\x1e\xd8\xcc\xf4\xa8\x39\xe2\xd2\x83\x4d\ \x76\xf9\x1d\x71\x1f\xfa\x84\xfd\x29\x35\xcc\xf9\x00\xf4\xa6\x3d\ \x2d\x2e\xe1\x68\xe9\xfa\x67\xea\x49\x8c\x4c\x7a\x24\x45\x48\x79\ \xd8\xcc\x96\xd2\x5b\x4a\x4a\x80\x09\x2a\x3c\xed\x1e\xfc\x9a\xa6\ \x6c\x1d\x70\xba\xdd\xaf\x3a\x69\xc9\xb2\xb4\xda\xe2\x6a\x09\x8a\ \x87\xfa\xb2\x21\x59\x99\x6e\x25\x7b\x1a\x53\x8a\x2a\x21\x5b\x8e\ \x33\xe5\x1c\x11\xda\xa2\x3a\x4f\x51\xd5\x71\x11\x84\x12\x7b\xb2\ \xf6\xc7\x00\x7b\xf1\x4b\xc4\x54\x96\x86\x06\x0e\x2b\x9f\xec\xdd\ \x55\xd5\x53\x34\xec\x6b\x7a\xd9\xb7\xa7\x56\x2b\x55\x8b\x13\x8d\ \x86\x54\x1b\x42\x07\x2a\x77\x69\x56\x78\x00\x8e\xfe\x9d\xa9\xd7\ \xaa\x7d\x58\xbd\xe8\x9b\xa4\x89\x2c\x6a\x1d\x23\x75\x8f\x16\x6a\ \x59\x7e\xcc\xc3\x2e\x19\x4d\xb2\x54\x79\x53\x81\xc2\x90\xe8\x03\ \x90\x40\x1f\x1e\xf7\xa9\x37\xa5\x84\xc3\x11\x4d\x45\xc9\xec\x5b\ \xe9\x0d\x2e\x53\x91\x1a\x96\xca\xe4\x34\x01\x71\xa0\xb0\x56\x90\ \x7b\x12\x3b\x8f\x4a\x5a\xd4\x62\x1b\xda\xa3\xc5\x50\x73\x6f\x33\ \x34\xef\x59\x7a\xcd\x7d\x80\x1a\x32\xe0\x59\x22\x3e\xc8\x75\x3b\ \x93\xb9\x31\x9b\x23\x23\x23\x22\xa4\x48\xea\x56\xa2\x53\xdd\x25\ \x41\x4c\x1c\x6a\xd6\x9c\x5d\xcb\xf6\x47\x82\x94\x34\xa1\xe1\xf9\ \xbc\xbc\xac\xf7\xcf\xa5\x2d\xd4\x93\x2f\x0a\xd4\xd3\x77\xed\xfa\ \xd8\xb8\x50\x84\xa1\x24\x24\x56\xb0\x54\x49\x04\xd5\x1d\xac\x7a\ \xbb\x7a\xd3\x1a\xb2\x13\x49\xd4\x3a\x4a\xfb\x11\xfb\xb2\x20\xc9\ \xb7\x41\x61\xc0\xfc\x56\xd4\xa3\x85\x78\xbe\x21\x49\x58\x03\x04\ \x10\x39\x3d\x87\xa6\xb8\x53\xb5\xb5\xcb\xf4\x95\xd4\x56\xf8\x37\ \xf8\x0c\xb7\x12\xd4\xdf\x86\x87\xa2\xad\x6d\x86\x54\xa4\xa9\x29\ \x09\x0b\x18\x58\x2b\xe5\x7e\xb8\xec\x2a\x12\x7b\xb2\xd2\xc5\xc2\ \xf6\x8a\xd6\xf6\x2f\x26\xdf\x61\xd4\x95\x34\xf2\x1c\x48\x51\x49\ \x28\x50\x20\x10\x70\x47\x1e\xa0\xfa\x56\x69\x50\xdb\xc1\xcd\x73\ \x76\x85\xea\x1c\x8d\x3b\xd1\xdf\xb5\x5b\x6c\x96\x86\xaf\x37\x6d\ \x52\xe5\xb6\x33\x6d\x36\xb4\x47\xf1\x96\x13\x97\x96\x37\x13\xe9\ \xd8\x28\x7a\x63\x81\x52\x19\x9d\x48\xd5\x9a\x7e\x4e\xb2\xd3\x97\ \xa1\x69\x93\x79\xb2\xd9\x4d\xda\x0c\xb8\xac\xad\x0d\x3c\x8e\x01\ \x0b\x6d\x4a\x38\x21\x4a\x03\x83\xc8\xa9\x4a\xe8\xaa\xc6\x42\xc9\ \xb2\xe9\x74\x05\xe4\xa7\xbd\x64\xd9\x2a\x6f\x6f\xad\x52\x56\x0e\ \xa6\x6b\x13\xa8\xf4\x2a\xee\xf1\xec\xea\xb5\x6b\x26\xdd\x2c\xb1\ \x1d\xb7\x03\xd1\x76\xa5\x24\x12\xb2\xac\x2b\x3b\xc1\x23\x68\xf5\ \x1e\x99\x2e\x9f\xa3\xb1\x79\x5a\xa3\xa9\xde\x3a\xdc\x3e\x1e\xa9\ \x90\x12\x16\x49\xc2\x77\xaf\x00\x67\xd2\xac\xdd\x90\x43\x11\x19\ \xcd\x25\xcf\xed\x72\xc7\xb8\xc5\xde\x92\x95\x0e\xf5\x11\xbe\x59\ \x50\x5a\x51\xd9\x92\x7b\x55\x88\xe2\x12\xea\x4f\xbd\x34\xdc\x63\ \x05\x24\x82\x29\xd4\xaa\x58\x6d\x48\x5c\xe2\x0f\xd2\x59\x9d\x71\ \xf6\x81\x6c\x81\x65\x92\x9b\x52\x8e\x54\xf4\x70\x57\xe3\x9f\x65\ \x63\xb0\x1e\xc7\xd7\x9f\x6a\xa9\x74\xc7\x4d\x35\x35\xd4\x29\xf9\ \x6c\x8b\x73\x29\xed\xf6\xa4\xa9\x25\x7f\x41\x8a\xfa\x07\xa8\x2c\ \xc9\x75\x45\x41\x27\x35\x0d\x9f\xa6\x0b\xab\xf3\x24\x91\xf3\x59\ \x65\x47\x11\x52\x76\xd3\xc4\x21\x5b\x87\x1b\x24\x72\x2d\xd7\x41\ \x6a\x02\xb4\x46\x8c\x84\x48\x6c\x01\xc8\x1b\x02\x4f\xbe\x69\xbd\ \x1a\x32\xea\x64\x98\xf3\x58\x97\x35\xd0\x32\x96\x9a\x51\xf0\xd0\ \x33\xdd\x4b\x35\xd6\x92\xb4\x93\x63\x3e\x5c\x53\x4c\xdb\x03\x2c\ \x20\x82\xad\xa3\xd4\x66\x99\x53\xa3\xea\x25\xb9\x68\xf4\x84\xa1\ \xba\x4c\xe5\x6b\xae\x81\xbb\x21\x45\x61\x70\xd3\x9e\xc8\x42\xc9\ \xc0\xfa\xe2\xa4\x1d\x1b\x65\x5a\x67\xa8\x71\xd6\xb9\x49\x79\x32\ \x19\x53\x0b\x00\x14\xf7\x20\xe4\x67\xd0\x10\x2a\xde\xbe\xdb\xa2\ \x21\xb2\xae\x30\x7b\x1c\xf7\xa8\x02\xa1\x32\x9d\x47\x0d\xc8\xec\ \x27\xc7\x32\x02\x77\x84\xe1\x5b\x7d\x46\x7f\x2a\x45\x7a\x31\x54\ \x65\x79\x2d\x87\x60\xf1\x73\x9e\x22\x2e\xdc\xce\xa1\xb1\x3a\x5d\ \x8c\x84\xac\x80\xb4\xe0\x0c\x9c\xe4\x7f\xac\xd2\xd7\x99\x56\xf3\ \xcf\xec\xf1\xfe\xb9\xa6\xed\x1c\x80\xf5\xb1\x90\xf8\xc3\x88\x18\ \x3c\x7f\xaf\xc2\xa4\x25\x05\x0a\x2d\xbb\x8d\xa7\x80\xbf\x43\xf1\ \x5e\x7e\x31\xba\x3d\x14\xa5\x69\x08\x43\x01\xe4\x6c\x70\xf9\xd2\ \x0a\x4a\x88\xe7\x1f\x51\xdf\x8f\x4a\xf1\x88\xea\x8a\xc6\xd7\x4b\ \xc8\x59\x23\x12\x5a\x1b\x93\xc7\xa9\x1e\x87\xf9\xf3\x4b\x7e\xcc\ \xa4\xb8\x36\x1f\x32\xbe\x3b\x7d\x29\x54\x55\xad\xa1\xe6\x3c\x91\ \x8e\x78\xff\x00\x42\xaf\x15\xae\xa5\x5c\xb4\x3c\xb7\xc9\x74\x2b\ \x6e\x03\xc9\xc8\xf3\x27\x9c\xfc\x91\xdc\x53\xfb\x0f\xb6\x5a\xf2\ \xe3\x70\xc7\xaf\x7a\x65\x92\xcc\x77\x16\x14\xa6\x46\xff\x00\x45\ \xa7\xca\xa1\xf8\x8e\xf5\x93\x29\x2b\x40\x6c\xad\xd5\x03\xc6\x4a\ \xb3\xc5\x35\x4a\xc2\x25\x14\xf5\x16\xc9\x79\x4a\x56\xd4\x05\x67\ \x39\xc9\x38\x14\x95\xe8\xee\x48\x3e\x7f\x0d\x1c\xfd\xe4\x8d\xc4\ \x7b\x71\x4a\xa1\x42\x61\xa4\xf0\xd2\x4a\x7d\x77\x1c\xe7\xe4\xd2\ \xf0\x50\x1b\xda\x9c\x04\xf6\xc2\x7b\x51\x6b\xee\x56\xf6\xd8\x8b\ \xb9\xa7\x58\x71\x68\x5b\xac\xa9\x64\x02\x32\xea\xb8\xcf\xc2\x7d\ \xa9\x24\xad\x25\x09\xc5\x38\x95\x21\xbd\xaa\x56\x4a\x52\x00\xcf\ \x1e\xc2\xa5\x6b\x0a\x3c\xed\x01\x5d\xb2\x6b\xc0\xd0\x1f\x7c\x67\ \xdf\x03\x19\xa5\xba\x30\x7c\x87\x46\xb4\xe3\xcc\x89\xb3\xa5\xdb\ \x68\x6c\x42\x01\x40\xe0\x01\xfb\xa3\xd2\x96\x46\xb0\xb2\xc1\xce\ \x01\xe7\x22\xa4\x29\x28\xdd\x8f\xe0\x2b\x05\xa1\x64\xe7\x01\xb4\ \xfb\x9e\x4f\xe1\x54\x54\x60\xb9\x03\xaf\x37\xbb\x1a\x94\xc8\x40\ \x4a\x10\x82\x54\x79\x00\x76\x03\xe6\xa2\x7a\xed\x9f\x16\x1a\xa3\ \x24\x95\xa9\xd5\x24\x15\x27\xbe\x77\x0e\xdf\x02\xa6\xb2\xbf\x64\ \x85\x25\x03\x69\x3f\x78\xab\xb9\xfa\xd4\x79\xd8\x89\x7a\x4a\x9d\ \x74\x12\x12\x9e\xdd\xf9\xa4\xd7\x8d\xe3\x64\x32\x8c\xac\xf3\x33\ \x8f\xfa\x99\xa5\xae\xfa\x73\xa8\x92\x1e\x94\xd3\xf3\x62\x5c\xde\ \x72\x44\x69\x0c\xb0\x7f\xda\x16\xa3\x90\xc1\x09\xec\x42\xb3\xc7\ \x63\x48\xa4\x4b\x95\x09\x6f\xef\x07\xc4\x52\xc3\xb2\x22\xf0\x76\ \x38\x78\xf2\x91\xf1\x80\x47\xe5\x5d\x73\x73\xb3\x19\xd0\xde\x88\ \x48\x4a\x8a\x4e\x17\xec\x7d\xc7\xcf\x7a\xa0\x3a\xab\xa3\xdb\xd3\ \x32\x17\x7d\xb9\x38\xd4\x7b\x73\x48\x25\xb8\xed\x24\x85\x49\x7b\ \x38\x08\xcf\xf1\xfc\x0d\x3f\x0d\x55\xb9\x24\xd6\xb6\xb2\x17\x89\ \x6f\x27\x57\x6b\xdd\xae\xd2\x1e\xd4\x37\xe6\xb2\xc0\x53\x72\x52\ \xeb\x83\x72\x92\xe3\x64\x14\x63\xd8\xfb\x1a\x7b\xb7\xd8\xe5\xa1\ \x68\x2b\x69\x67\x1c\x6e\x03\x9c\x1f\x4a\xd9\xa0\xf5\x0d\xb2\xea\ \xe7\xda\x11\x21\xa6\x54\x80\x0b\x8c\xbc\xe0\x4a\x90\x7d\x7b\xf7\ \x1f\x35\x76\xe9\xb8\xf6\xeb\x8c\x64\x00\x1b\x24\xf2\x0a\x48\x20\ \xfe\x35\xe8\xf0\xf4\x28\x4e\x9e\x49\xbd\x4f\x31\x5f\x13\x56\x35\ \x1c\xb6\x65\x6b\xa5\xb4\x7c\x74\xdc\xcc\xc0\x87\xd2\xea\x95\xb9\ \x45\x47\x85\x1f\x7f\xaf\xf9\xd7\x42\xe8\x68\x31\xe2\x30\xd9\x70\ \xe5\x40\x53\x65\xb2\xc8\xdb\x6f\xa5\xb0\x81\xdf\x82\x2a\x7f\x67\ \xb5\xc5\x8e\xd2\x4a\xc0\x27\x1e\xb5\xbf\x0f\x84\xa7\x85\x8b\xb7\ \x33\x25\x4a\xd5\x2b\xcf\x34\x9d\xd8\xfb\x18\xef\x65\x2a\x6f\xee\ \x8a\xc5\xfb\xd1\x64\xf8\x6d\xb7\xdb\xbd\x64\xdc\x86\xda\x6f\x09\ \x1c\x0a\x8f\x5c\x64\x9f\x19\x6b\x09\x18\x1e\x95\x34\xe9\x29\xb7\ \x99\x68\x5a\xa5\x57\x05\xd5\x7a\x92\xdb\x5d\xcd\x12\xf0\x14\x36\ \xab\xd8\xd1\x51\x38\x8f\xac\x20\x38\x95\x6d\x57\xd6\x8a\xa4\xf0\ \x69\xbb\xc5\xd8\xb5\x3c\x6b\x4a\xd2\x57\x21\x9d\x33\x8b\x39\xcd\ \x3d\x13\xec\xe0\x84\x9d\xfe\x6f\xfa\xea\xab\x16\xd8\xcc\x86\x41\ \x12\x5c\xdc\x7d\x78\xed\x4c\x7d\x33\x4a\x63\xe8\xa8\x29\x40\x4e\ \x47\x88\x09\x3f\xfc\xc5\x53\xcb\xcf\x24\xa8\xec\x39\x34\xf4\xdc\ \x95\x91\x9a\x9a\x51\x8a\x6c\x41\xa8\x4a\x50\xe2\x42\x57\x84\x9f\ \x4c\xd2\x0b\x64\xe5\x46\x92\x97\x1a\x59\x29\x07\xcc\x33\x58\x5d\ \x1d\xf1\x64\x60\x9c\xed\x14\x89\xa6\x5c\x65\x4a\xc0\x38\x3c\xe4\ \xd3\x92\xd2\xcc\x5b\x96\xb7\x43\x03\xfa\x31\x4b\x87\xaf\x22\xb7\ \x79\x38\xd5\xef\x97\x54\xaf\xb2\xff\x00\xb9\x79\x51\xc6\x37\xf9\ \xfe\xf7\x7f\x2d\x39\x5c\x34\x82\x6f\xda\x2f\x4d\x69\x65\xdc\x5f\ \x8b\x3b\x4f\x26\x32\xad\xf7\x36\x1b\x1b\xda\x75\x84\x25\x21\x7b\ \x09\x23\x07\x19\xdb\x9e\xf8\xe7\x8a\x70\x65\xc7\x8b\x9c\x8f\x2d\ \x4a\xb4\x74\x55\x2d\xd5\x48\x5a\x30\x3e\x69\x15\x29\x53\x84\x5b\ \xb1\x6a\x71\x73\x96\x5e\xdf\xec\x6f\xbb\xe8\x9b\x96\xa2\xd0\x97\ \x6d\x39\xae\x35\x22\x6f\x2d\x4e\x42\x3c\x37\x63\x5b\xd3\x10\xb0\ \x52\x77\x05\x01\xb9\x59\x3b\x82\x4f\x27\x1c\x63\x1c\xd3\x7e\x8b\ \xb1\xea\x7b\x36\x1a\xbc\xea\xd6\xef\x31\x1a\x63\xc1\x69\xbf\xd5\ \xa9\x61\x79\xc8\xc2\x94\xb0\xb3\xb8\x80\x08\xec\x33\x9c\x9a\xb0\ \xee\x8e\x06\xe1\xa8\x77\xf4\xa6\x46\x90\x56\xa4\x23\x3d\xeb\x36\ \x1d\x75\x5b\x35\xd7\x84\x54\xd5\xb7\x21\x9d\x4e\xd1\x37\xc7\x64\ \xb1\xd4\x0d\x08\xff\x00\x85\xab\xad\xb1\x15\x1d\xb6\x14\x84\xa9\ \xb9\x8d\x28\xf2\x85\x6e\xe3\x70\x0a\x51\x07\xd4\x80\x3d\xb0\xd3\ \x6c\xe9\x64\x1b\x97\x43\xdf\xd2\xf2\x1e\xb9\xda\xe6\xdd\xde\xfb\ \x74\xe9\x13\x59\x41\x7c\x4a\xde\x09\x2a\x42\x55\xb4\xa7\xca\x00\ \x01\x5d\x8e\x73\x92\x6a\xeb\x68\x78\x51\xc0\xed\x81\x4c\x77\xb7\ \x49\x4e\x32\x72\x4e\x69\x54\xe3\xc4\x99\x35\x68\xc2\x0b\x37\x76\ \xc6\xbd\x2d\x6b\x96\x8d\x30\x6c\xd7\xfb\x9b\x57\x92\xe3\x4a\x65\ \xc7\x51\x18\x30\x95\xb6\x53\xb7\x6e\xd0\xa3\x8e\x33\xce\x7d\x6a\ \x31\xa4\x7a\x7f\xa8\x74\x64\x78\xd6\xbb\x76\xb6\x54\x8d\x37\x11\ \xe5\x2d\x98\x12\x2d\x88\x53\xc9\x6d\x4a\x2a\xf0\xfc\x7d\xfd\xb2\ \x4f\x3b\x73\xed\x8e\xd5\x31\xb3\x3d\x96\x53\xee\x9a\x77\x7d\x21\ \xc6\x0d\x44\xe3\x92\x63\xa1\x08\xd4\x82\x7c\xd1\x52\x5b\x3a\x4f\ \x1a\x1f\x59\x5d\xea\x0a\x6e\xea\x53\x4e\x38\xb7\x91\x6d\xfb\x3f\ \x95\x0f\x2d\xa0\xda\x9c\xdf\xbf\x92\x7c\xc7\xee\xfa\xfc\x52\x1b\ \xb7\x41\x9d\x99\x63\xbf\x58\x63\xeb\x37\xa3\xd9\xae\xd7\x15\x5c\ \xd3\x18\xdb\x90\xb5\xb7\x20\xff\x00\x69\xcd\xd9\x5a\x06\x07\x94\ \x6d\xe4\x0e\x7b\xe6\xd6\x00\xa7\xf0\xa7\x48\xca\xde\xd0\x35\x15\ \x55\xb5\x45\x29\xe1\xe9\x4a\xe9\xaf\x4f\x72\xa8\xb8\x74\xe9\xb9\ \x9a\xc7\x5b\x5d\xa6\xdd\x1c\x5b\x1a\xa2\x03\x70\x9d\x8e\x86\x76\ \xa9\x84\xa5\xa4\xb7\xb8\x2f\x71\xdc\x7c\xb9\xfb\xa3\xf1\xa6\xbb\ \x1f\x4a\xee\x30\xa6\x69\x39\x17\x1d\x5e\xe5\xc0\x69\x67\x31\x6f\ \x68\x40\x4b\x49\x0c\x94\x90\xa4\x1c\x2c\x92\xa3\x84\x79\xf3\xd9\ \x18\xdb\xce\x6a\xdb\xba\x30\x52\xbf\x15\x23\x8a\x6d\x29\x5e\xed\ \xd9\x38\xad\x10\x8c\x26\xae\x22\xa5\x25\x19\x6a\xbd\x5e\xff\x00\ \xc9\x50\xb3\xd1\x45\xb1\x67\x66\xc2\x9d\x5e\xf1\xb4\xc5\xbb\x26\ \xe9\x09\x83\x01\x1b\x90\xe8\x50\xcf\x88\xbd\xd9\x73\xcb\xb9\x23\ \xee\xe3\x76\x4e\x70\x05\x4e\x23\x68\x39\xac\xf5\x59\xed\x77\x6a\ \xd4\x62\x18\x99\x1d\xa8\xf3\xa1\x39\x04\x3b\xe2\xb6\x82\x93\x84\ \xaf\x70\xd9\x90\x90\x33\x83\x8e\x6a\x5c\xcb\x41\x79\x56\x73\x8a\ \xdd\x19\x44\x3b\xb4\x77\xcd\x56\x71\x56\xb2\x26\x9d\x18\x45\xa7\ \x62\xb6\x83\xd1\x28\x4d\xf4\xed\xcd\x29\x23\x50\x3c\xb9\x28\xbc\ \x2a\xef\x0a\xe0\xd4\x50\x85\x47\x7b\x8d\xbe\x42\xa5\x05\x01\xce\ \x79\x19\xcf\xa6\x2b\x7b\x9d\x24\x7e\x54\x6d\x51\x32\xf5\xa9\xd5\ \x72\xbe\xea\x0b\x7f\xea\xf5\x4e\x10\x43\x4d\xc6\x67\x18\x09\x43\ \x21\x67\xd4\x02\x7c\xdc\x91\xe9\xcd\x59\xc5\x45\x1d\xeb\x2d\xfc\ \x0f\x9a\x46\xa8\xd1\xec\xf4\xb6\xb1\x5b\x45\xe9\x49\x0e\xf4\xf1\ \xd3\x7d\xe3\x46\xa1\x68\xc7\xd9\x3f\xdd\x9b\x92\xda\x7f\xb7\xfb\ \x3f\xb9\xfd\xee\xf5\x29\xd1\xfa\x7e\xe3\x62\x9b\x7b\x7e\x76\xa7\ \xb8\xde\x9b\xb8\xcd\x32\x63\xb5\x28\xf9\x61\xa0\xe7\xf6\x48\xe4\ \xf1\xcf\xa6\x07\x03\x81\xce\x5f\x9d\x7b\x03\x68\x35\xa5\x4f\x00\ \x39\x34\x28\xb7\xa9\x2a\x14\xe0\xf4\xf5\xa5\x85\x01\x7b\x79\xad\ \x32\x4a\x56\x93\xcf\x34\x8d\xe9\xcd\xa0\x1c\xac\x71\x4c\xd7\x1b\ \xf3\x4c\xf6\x58\xcf\xc5\x33\x25\xb5\x61\x2a\xc9\x0b\x26\x21\xac\ \x12\xbc\x53\x05\xc9\xf8\xad\xe7\x25\x35\x57\xf5\x77\xae\x5a\x7f\ \x47\x2d\x51\x1c\x5a\xae\x17\x2c\x67\xec\x71\xd6\x3f\x67\xff\x00\ \xcc\x5f\x64\x7d\x39\x3f\x15\xcd\xfa\xb3\xaf\x7a\xfa\xfc\xea\xd1\ \x6f\x7d\x9b\x44\x75\x1e\x13\x11\x1e\x70\x3e\x56\xac\x9f\xc4\x62\ \xa8\xf1\x79\x7d\xd4\x14\xe8\x55\xad\xee\xa3\xa8\x7a\x81\xac\x6c\ \x9a\x66\xdc\xa9\x77\x59\xcc\xc4\x41\xc8\x40\x59\xf3\xac\xff\x00\ \x75\x23\x93\x5c\xcf\xd4\x1e\xb8\xcf\x9b\x70\x2c\x69\x76\x0b\x6d\ \x63\x68\x7a\x42\x02\x94\xaf\x90\x9e\xc9\xfc\x73\xf8\x55\x59\x70\ \x95\x3e\xe2\xeb\x93\xae\x92\xe4\x4c\x79\xc3\xf7\x9d\x59\x52\x96\ \x7e\xa6\xa7\xbd\x0b\xe9\xe2\x35\xa6\xa9\x11\xa5\x05\x22\xdb\x0d\ \x29\x7e\xe0\xf2\x0f\xde\x4e\x70\x96\x81\xf4\xdc\x78\xfa\x03\x59\ \x6b\xe2\xa4\xd5\xe6\xce\x9e\x1b\xa1\xf5\xbc\xd9\x96\x84\xe9\xee\ \xb2\xea\x0a\xd5\x7f\xbb\x5c\x65\x31\x6c\xdc\x4f\xda\x16\x49\x53\ \xa7\xd4\x36\x0f\x18\xf9\xed\xf5\xab\x5f\x4e\xe8\x78\xd6\x9b\x9c\ \x54\xa3\xc6\x73\xc3\x39\x53\x8f\xb8\x56\xb5\x7a\x66\xae\x49\xec\ \xc7\x89\x09\x98\x71\x18\x43\x2c\xa1\x3b\x1b\x6d\x00\x04\xa1\x20\ \x60\x00\x3d\x05\x47\x5e\x67\x32\xdb\x74\x02\x73\xc6\xe1\xee\x2b\ \xcf\xe2\x71\x35\x2a\x3b\x72\x3b\x14\x28\x53\x86\xb1\x44\xb6\xc8\ \xd2\x51\x1d\x21\x23\x09\xc0\xcd\x3f\xb4\x90\x50\x37\x84\xad\x23\ \xb8\x3f\x5e\x0d\x31\xd8\x14\x0b\x3c\x9f\x32\x7d\x71\xde\xa4\x6d\ \xa4\x2d\xa0\x15\xe5\xc7\xc7\x7a\x65\x3d\x50\xba\x9b\x88\xcc\x65\ \xa0\x92\xc8\xde\x9f\xec\x77\x1f\x87\xa8\xad\xad\xa5\xbe\x13\x92\ \x39\xc8\x0a\x38\x22\x94\x16\x9c\x6f\xcc\xde\xec\x7a\xe4\xff\x00\ \x8d\x6d\x61\xd1\xc8\x71\x04\xfe\x19\xa6\x24\x2d\xc9\x98\x35\x15\ \x63\x24\x21\x59\xc6\x38\x02\xb7\xb0\xd6\x50\xa1\x92\x9e\xe1\x4a\ \x00\xf2\x7d\x78\xa5\x6d\xa5\xb2\x06\xd5\x2b\x07\xdc\xf0\x3e\x94\ \xa5\x0c\xb3\xea\xea\xff\x00\x0a\xbe\x51\x6e\x62\x26\x94\x94\xa7\ \x1b\x14\x4f\xb9\x4d\x78\xae\x78\x50\xc8\x3e\x83\xd2\x9c\x76\x46\ \xef\x82\xe7\xc6\x6b\x62\x40\x49\xc2\x10\x84\x0f\xa5\x5b\x29\x19\ \xc6\xe6\x9a\x75\x5f\x71\x93\x81\xea\xae\x05\x6d\x11\x70\x09\x79\ \x40\xfc\x26\x97\x10\xa5\x8c\x14\xab\xe7\x9a\xd6\xe3\x58\xf3\x29\ \x58\x1e\x98\xa1\xa2\x33\x08\xd4\xd8\xc6\xd4\x24\x24\x63\xb6\x38\ \xad\x0b\x4a\xb3\xb8\xd2\xc7\x16\x0e\x52\x94\x94\xfc\x9a\x44\xf2\ \x8a\x95\xb5\x24\xe4\xfe\x42\x97\x26\x59\x08\x26\x6e\x52\xfc\x26\ \xc0\x27\x1e\x63\xed\xf3\x49\x14\xce\x3c\xa8\x19\x09\xe3\x3e\xe7\ \xde\x9d\x94\xc1\x59\x0d\xb3\xe6\x3d\xc9\xff\x00\x5f\xce\xa9\x3e\ \xb1\xf5\xc6\xd7\xa6\x14\xfe\x9f\xd1\xae\x47\xbb\x5f\x00\x29\x7e\ \x60\x21\x71\xa1\x1f\x60\x7b\x38\xe7\xc0\xe0\x7a\xe7\xb5\x2d\xc1\ \xc9\x9a\x68\x53\x9d\x59\x28\xc1\x6a\x49\xfa\x85\xae\x74\xc6\x82\ \x69\xb5\x5f\x24\xa9\x53\x9f\x41\x54\x78\x2c\x0c\xba\xee\x3d\xfd\ \x12\x93\xfd\xa5\x71\xf5\xae\x4b\xea\x36\xb4\xba\x6b\xdb\xe2\xae\ \xf7\x72\x50\xd3\x6a\x29\x8b\x09\x3f\xd4\xc6\x6f\x3d\x81\xfd\xe3\ \x8e\xea\xf5\x3f\x95\x31\x6a\x0b\xc5\xca\xe7\x3e\x4d\xd2\xeb\x25\ \xf9\xd3\x9e\x58\x53\xd2\x5c\x3b\x89\x3f\x3f\x81\xe0\x76\x14\xcd\ \x31\xe7\x64\xa8\x70\x42\x41\xf2\xf3\xc7\xe5\x5a\xe8\x61\xd4\x35\ \x67\x51\x46\x9e\x1d\x7f\xb4\x84\x97\x16\x13\xe2\x27\xc0\x58\x52\ \x89\xf3\x60\xfc\xd3\xff\x00\x4f\xb5\xde\xa0\xd0\xf7\x0f\x1a\x1b\ \xbe\x3c\x35\x28\x78\xd1\x9c\x39\x6d\x5f\x4f\x63\xf2\x29\x95\x2a\ \x08\xe3\x21\x38\x3c\x91\xfe\x5f\x35\x8b\x8d\xe5\x2a\x21\x29\x48\ \x03\x8c\x03\x85\x56\xde\x56\x67\x2b\x11\x86\x85\x5b\xbe\xde\x47\ \x63\xf4\xe7\xac\x1a\x67\x52\xb2\xd2\x63\x4d\x44\x69\xd8\x19\x89\ \x21\x41\x0b\xcf\xb2\x49\xe1\x7f\x87\x3f\x15\x6d\xc0\xd4\x0d\xb8\ \x91\xdc\x2f\xd4\x1e\xe2\xbe\x69\x29\x87\x10\xe7\x88\xd2\x94\x8d\ \x9e\x60\x52\x6a\xc6\xd0\x5d\x6c\xd6\x5a\x63\xc2\x62\x5b\xe9\xbb\ \xdb\xdb\xc0\x0c\xca\xc9\x5a\x47\xf7\x56\x3c\xc3\x8f\x7c\x8f\x8a\ \xd3\x4b\x13\x52\x9e\x9b\xa3\xce\xe2\x3a\x2e\x50\x77\x81\xdf\xad\ \xcb\x2e\xc7\xf1\x77\x01\xc5\x21\x61\x45\xe7\x8a\x73\x9d\xc7\x9a\ \xa1\x74\xc7\x5e\xb4\xb5\xfa\x22\x18\xfb\x7a\xed\x33\x14\x39\x66\ \x5f\x08\x27\xd8\x2c\x71\xf9\xe2\xac\x5b\x26\xb1\x8a\x96\x92\xb4\ \x3e\xcc\x82\xa1\x9d\xcc\xb8\x97\x07\xff\x00\x69\x35\xb6\x18\xfa\ \x4f\x49\x68\xce\x5d\x4a\x33\x83\xeb\x22\x74\xe0\x6d\xb5\x14\x13\ \x92\x7d\xa8\xa6\x48\x97\xd6\x26\x28\x28\x11\x93\xcd\x15\xb6\x33\ \x8c\x95\xd3\x13\x62\x51\xd3\x5b\x6a\x1c\xd1\x90\x96\xb5\x7d\xef\ \x13\xb7\xa7\xed\x15\x4f\x4f\x5a\xda\x84\xd2\xde\x6d\x1b\xf0\x9e\ \xd8\xa8\xa7\x4d\x2e\x32\x99\xd2\x70\x12\xa3\x94\x65\x7f\x87\xed\ \x15\x56\x0a\x16\x97\xa2\x85\x77\x4a\x85\x73\xa4\xea\x53\xb3\x6f\ \x43\xa1\x41\x52\xab\x0d\x16\xa8\xae\x19\x68\xca\x9c\xb7\x14\x36\ \x24\x2a\xb2\xba\x24\x15\x80\xd2\xc6\x00\xf4\xad\xf7\x75\x84\x4e\ \x71\x94\x61\x08\xdd\x93\x48\x46\xc1\x90\x09\x51\x3e\xa7\x9a\xe9\ \xad\x51\xcf\x7a\x3b\x1a\x9a\x59\x0a\x28\x3f\x96\x2a\x7d\xa5\x9e\ \x69\x50\x82\x52\x30\x40\xc1\xa8\x3e\x1b\x2a\xcf\xad\x4b\x34\xc2\ \x17\x1a\x12\xde\x70\x7d\xee\x40\x35\x9f\x12\xaf\x4c\xd1\x85\x95\ \xaa\x0a\xef\x4f\x05\x3c\x1a\x1e\x9d\xeb\xcb\x4b\x45\xd7\xf7\x94\ \xf9\x40\xe0\xd2\x17\x14\xa9\x12\x49\xee\x54\x71\x4f\xb1\x50\x98\ \xb1\x80\xcf\x38\xa4\x54\xfd\xba\x6a\x2b\x73\x45\x3f\xdc\xa8\xe4\ \xf6\x32\x9a\xee\x13\xb4\x1f\x4e\x6a\x35\x70\x90\x95\x3a\x54\xae\ \xc9\x3c\x52\xfb\xa4\x9d\xa8\x23\xf7\x95\x4d\x29\x6f\xc5\x77\x67\ \x24\xd3\x30\xd4\xf2\xab\xb1\x78\x9a\x99\x9d\x90\xb6\xd4\xf0\x4b\ \x83\x04\x61\x55\x23\x8a\xb0\xa4\x6d\x35\x13\x09\xf0\x97\xb7\xb1\ \x1f\x14\xf7\x6f\x91\xbd\xb1\xcf\x98\x55\x31\x34\xef\xaa\x2f\x85\ \xa9\x6e\xab\x37\x4a\x6f\xc3\x70\x9f\x43\x5b\xa0\x2f\x04\xa0\x9f\ \xa5\x6d\x71\x29\x7d\x9e\x3b\xd2\x24\x95\x36\xbe\xf8\x22\xb3\x2e\ \xbc\x6c\xcd\x2f\xa9\x2b\xa1\x45\xd1\xd0\x96\xb6\x7a\x9e\x29\x97\ \x3c\xed\x39\xc7\xc5\x3a\x5c\x47\x8c\xce\xf4\xe3\x8a\x68\x53\x9e\ \xc9\xe6\x9f\x87\x8f\x54\x46\x21\xf5\x85\xac\xb8\xdb\x43\xb7\x06\ \xbc\x5a\xb7\x3a\x14\xda\xbb\xd3\x4c\xb9\xbe\x12\x72\xae\x00\xa6\ \x19\xba\x9e\x3c\x57\x0a\x94\xea\x52\x90\x7c\xca\x52\xb0\x07\xd4\ \x9e\x2a\xd3\xcb\x4d\x66\x93\x13\xc5\xe4\x58\x3e\x3a\x52\x91\x93\ \xce\x29\x1c\x9b\x9c\x76\xf8\x2b\x48\xaa\x67\x58\x75\xb3\x48\x58\ \xdb\x50\x9b\xa8\x62\x97\x40\xc8\x66\x32\xbc\x65\x9f\x8c\x27\x20\ \x7e\x24\x55\x21\xab\x7f\x49\xe7\x1c\x52\xdb\xb0\xd8\xca\x8e\x4e\ \xd7\x66\xb8\x4f\xff\x00\x62\x7f\xce\xb0\xf1\xa3\xbc\x55\xcd\x51\ \x55\x6a\x7b\xa8\xeb\xb9\xda\x8a\x3a\x16\x40\x58\xed\xef\x51\xcb\ \xc6\xb5\x8f\x19\xb5\xad\x6f\x21\xa6\xd3\xf7\x96\xe2\xc2\x52\x3e\ \xa4\xd7\x0c\x5f\xba\xd3\xd4\x4b\xab\x8a\x5a\x6f\x0b\x84\xda\x87\ \xdc\x8a\x80\xd8\x03\xea\x39\xfe\x35\x0d\x9f\x74\xbd\x5c\xd5\xbe\ \x7d\xca\x54\x8d\xca\xca\xbc\x57\x8a\xb9\xfc\x4d\x51\xe2\x2a\x72\ \xb2\x1d\x1e\x8e\xab\x3f\x7a\x47\x5d\x6b\x9e\xbf\xe9\xbb\x41\x5b\ \x71\xe7\x9b\x93\xe9\xff\x00\x82\x8b\xca\x7f\xed\x9e\x3f\x2c\xd5\ \x1b\xae\xfa\xe3\xab\xf5\x31\x5c\x5b\x6b\x9f\xaa\x21\x2c\x10\x50\ \xc1\x3b\xd4\x3f\xbc\xe7\x7f\xcb\x15\x5a\x37\x17\xb1\x50\x2a\x23\ \xda\x94\x36\xdb\x4d\xe0\xaf\x03\xca\x41\x03\xd3\xf1\xa4\xca\x4e\ \x4e\xed\xdc\xeb\x61\xfa\x22\x9c\x35\x97\x98\x9d\xb6\x16\xfb\xc5\ \xc7\x9c\xf1\x49\xf3\x12\xa3\x9c\x9a\x56\x5b\x4a\x06\xd4\x24\x91\ \x91\xe9\x5b\x76\xe1\xad\xca\x04\x21\x27\xcb\x84\xf7\xaf\x76\x84\ \xa4\x93\x8c\x28\xe3\x83\xcf\xd3\xe9\x55\x6e\xec\xec\xd3\xa0\xa1\ \x1b\x24\x26\x98\xb5\x97\x58\x40\x48\x29\x49\x52\xb0\x3b\xf1\xdb\ \x3f\x9d\x74\x7f\xe8\x6f\x2e\x2a\xed\xda\x96\xdc\xa0\x91\x38\x2d\ \x89\x19\xf5\x53\x58\x50\xc6\x3e\x09\xfe\x35\xce\xae\x25\x26\x5b\ \x38\x6c\x94\xac\x28\x10\x3b\x9e\x33\xfe\x15\x3c\xfd\x1f\xb5\x22\ \x34\xaf\x55\xad\x32\x65\x3a\x96\xa0\xce\xcc\x19\x65\x47\x00\x25\ \xce\x12\xa2\x7e\x14\x13\xcd\x2a\xb4\x6f\x02\x1a\x93\x53\xd7\x7f\ \xc1\xd6\xf7\x26\xb2\xf9\xf3\x60\x63\x03\xe0\xe2\x90\x88\x89\x71\ \xb2\xde\x36\xee\xc1\x1f\x0a\xf7\xa7\x99\x6c\xa9\x52\x14\x36\x8c\ \xa5\x5b\x54\x01\xed\x8e\xc6\xb2\x62\x29\x28\x03\x8c\x0e\xc7\x15\ \xc9\x74\xee\xcc\xaa\x76\x42\x5b\x46\x5b\x56\xd7\x52\x37\x24\xed\ \x20\x8e\x47\xcf\xe7\x9a\x92\xb4\xb4\xa1\x09\x24\x9c\x11\xdf\xb8\ \xa6\x65\x36\x1b\x21\xc2\x95\x15\x27\x1e\x70\x79\x4f\x3d\x8f\xbd\ \x39\xb6\x85\x29\x85\x05\x36\x01\x28\x38\x58\x20\xf1\xe8\x47\xd0\ \xd3\x20\xb2\xe8\x52\x6d\x3d\x45\xc1\xcd\xaa\x47\x88\x4e\x36\x92\ \x94\x83\x9e\xdd\xf8\xa5\xac\xa5\x24\x02\x10\x82\x15\xc8\x20\xf7\ \x14\xc7\xa7\xd2\xea\xd8\x0b\x92\xa0\xfc\x94\x1f\x0c\xad\x49\x29\ \xe3\x3c\x63\xda\x9e\xe3\x29\x28\x07\x6a\xb2\xd9\x3c\xa7\xfb\x3f\ \x4a\x6c\x1d\xd5\xc4\xd4\x56\x76\x37\x00\xd2\x55\x84\x95\x6d\x23\ \xf7\x78\xe4\x7d\x7e\xb4\xa1\x94\xb6\x13\x93\x95\x28\x93\xca\x8e\ \x3f\x2f\x8a\x43\x25\x5b\x43\x6b\x24\x25\x5d\x81\x48\xc8\xcf\xcf\ \xe1\x43\x6a\x71\x45\x59\x75\xb2\xa5\xe4\x20\x81\x85\x24\x0f\x5c\ \x76\x3e\x9c\x55\xef\x62\x96\x1c\x52\x40\x58\xc1\x1c\x67\xca\x3f\ \xd7\x34\xa1\x2a\x42\x94\x50\x09\xe0\x02\x46\x29\x33\x39\x71\x96\ \xbc\x2d\x85\x04\xe7\x77\xef\x27\x1d\xeb\x5a\x7c\x54\xbc\xb7\x12\ \xb1\x94\x8c\x76\xce\x73\xcd\x5a\xe5\x77\x15\x3a\xff\x00\x87\xca\ \x10\xb7\x14\x3b\x25\x3d\xcd\x63\x20\xac\x8c\x9c\x63\xeb\xda\xb0\ \x82\x14\xb1\xe2\x29\x2a\x1d\xc1\xdd\xdc\x9e\xdf\x95\x6b\xbe\x5c\ \x2d\x96\x4b\x6a\xee\x57\xbb\x94\x4b\x64\x24\x0c\x97\xa5\x3c\x96\ \xd3\xf8\x67\xb9\xfa\x54\x6f\xa8\x5b\x5b\x20\xc6\xe4\xf2\x42\x47\ \x6a\x65\xd5\xb7\xfb\x16\x93\xb3\x2e\xef\xa8\xee\x6c\xdb\x60\xa7\ \x3b\x54\xe1\xcb\x8f\x2b\xfb\x2d\xa0\x72\xb5\x7c\x0f\xc6\xa9\x7e\ \xa5\x7e\x93\xf6\x88\x65\xcb\x77\x4f\x2d\xaa\xbb\x4a\xda\x40\xb9\ \x4d\x41\x6d\x84\x1f\x74\x36\x70\xa5\xe3\xdd\x58\x1f\x06\xb9\xab\ \x56\x5f\xf5\x16\xad\xbb\xbb\x77\xd4\x57\x49\x37\x49\xc4\x60\xba\ \xf2\xf0\x86\xff\x00\xba\x80\x38\x48\xf8\x48\xc5\x4a\xa6\xd9\xd2\ \xc3\x74\x75\x4a\x9d\x69\xe8\xbc\xfd\x7a\xb1\x65\xf5\x9b\xaf\xb7\ \x8d\x5d\xe2\xd8\x74\xca\x17\x61\xb0\xa8\x94\xb8\xb5\x2b\xfd\xa6\ \x58\xf6\x5a\x87\xdd\x49\xfe\xca\x7f\x12\x6a\x9e\x71\x29\x60\xb6\ \xda\xdc\x50\x1b\x54\x50\x80\x36\x9d\xc6\xb5\xbc\xe0\x49\x48\x69\ \xb0\x70\x7e\xf1\x1f\xce\xb5\x24\x29\x6a\xf1\x94\x4b\x8a\x3d\xf1\ \xdf\xe4\xf3\x5a\x21\x05\x15\xa1\xd3\x8e\x4a\x49\xc2\x2b\xd7\xd4\ \xd0\xb3\x29\xf5\x99\x0a\xca\x46\x30\x02\x46\x78\xf7\x35\x82\xd2\ \xb7\x1b\x48\xc0\xee\x33\x83\xc6\x7d\x29\x62\x88\x43\x4b\xda\xa0\ \x92\x0e\x70\x0f\x27\xde\x93\xc8\x79\x0a\x74\x00\x14\x40\xf4\x4f\ \x00\xf1\x4c\x42\x2a\x46\x29\x6a\xdd\xd9\xad\x0c\xb2\x12\x52\xf3\ \xa9\x4e\xd3\x92\x0a\x7f\x2f\xad\x60\xe6\x12\x93\xb9\x63\x1d\x81\ \x4a\xbb\xfe\x15\xb5\x42\x53\xa1\x3b\xd2\x52\x39\x03\x70\xc9\x48\ \xc7\x02\xb2\x66\x13\x2d\xa4\x29\xd5\x78\xa4\x8c\xee\x24\x64\x7e\ \x1f\x5a\x9b\xf6\x8a\x74\xdc\x9e\x58\x2b\x7a\xe6\x22\x59\x51\x58\ \x28\x0b\x50\xcf\xb6\x31\xe9\x59\x39\x15\x4a\x39\x70\xa7\x80\x4e\ \x7b\x52\xe5\x2d\xa4\x12\x10\xea\x90\x01\xe4\x28\x7a\xfc\x52\x27\ \xe4\x28\xf2\x82\x41\xf5\x28\x18\xfa\xd4\xa6\xde\xc2\xe7\x4e\x10\ \x4d\xc9\xdc\x46\xec\x66\xc2\xc6\xd3\x92\x79\x1c\xd6\x70\xa4\x5c\ \x6d\xef\x22\x4c\x29\x6f\xc5\x75\x07\x29\x52\x16\x52\xa0\x7f\x0a\ \x50\x92\x8c\xa9\x2a\x51\xec\x3d\xb3\x9a\x0a\x77\xa4\x29\x40\xe0\ \x63\x38\x3c\x0a\xb5\xcc\x72\xc3\xc6\x45\x9d\xa3\x3a\xe7\x7c\xb5\ \x2d\xa6\x35\x24\x41\x70\x65\x3c\x7d\xa1\xb3\xb1\xec\x7b\x9f\x45\ \x7e\x3f\x9d\x15\x51\xce\x6d\x29\x19\xc1\xc1\xed\xed\x45\x42\x8a\ \xe5\xa1\xca\xaf\x82\xa5\x9f\xdd\xf5\xf0\x3a\xc3\x4d\x6a\x0b\xf3\ \x76\x28\xc8\x6e\xf5\x72\x4a\x41\x56\x02\x65\xac\x01\xe6\x3e\x99\ \xa9\x33\x5a\xa3\x52\x35\x0c\x0f\xe9\x0d\xd8\x71\xdb\xed\x8e\x7f\ \x9d\x42\x74\xaa\x77\x5a\x63\x92\x78\x1b\xbf\xfc\x8d\x3d\x15\x78\ \x87\x27\xee\x8a\xf1\x55\xeb\x55\x72\xb6\x67\xf3\x3c\x6a\x9c\x93\ \x76\x66\x62\xeb\xa8\x5f\x90\xa7\x5d\xbe\x5c\xce\x4f\x73\x29\x7f\ \xe7\x4a\xdb\xba\xde\x12\x9c\x7e\xb9\xb9\x7f\xf5\x4b\xff\x00\x3a\ \x40\x54\x01\xe2\xbd\x6d\x4a\x52\x82\x52\x82\x49\x3c\x01\xeb\x55\ \x78\xaa\xef\x69\x3f\x9b\x21\x36\x2c\x76\xe9\x78\x24\x2c\x5e\x6e\ \x5c\x73\xfe\xea\x5f\xf9\xd6\x6b\xd5\x7a\x89\x6d\x86\x91\x7e\xba\ \xed\x1e\x9f\x6c\x73\xfc\xeb\x0b\xd5\x9a\xfb\x6d\x88\xdb\xf3\xec\ \xf3\xa2\x30\xf2\xb6\x21\xc7\xd8\x52\x12\x49\x19\x03\x24\x77\xc0\ \x27\x1f\x06\x90\x47\x65\x2c\xa7\x72\xf9\x51\xab\x4a\xb5\x78\xfb\ \xf2\x77\xf1\x64\xbc\xd1\x76\xd8\x7a\x89\x7f\xd4\x2d\x8f\x11\x57\ \xeb\xa8\x57\xfc\xf1\xcf\xf3\xac\x9f\xd5\x7a\x90\x82\xa5\x6a\x1b\ \xb6\x3f\xe7\x8e\x7f\x9d\x35\x0d\xce\x38\x84\x24\x65\x4b\x50\x4a\ \x52\x4e\x32\x49\xc0\xaf\x35\x3d\xaa\xe7\x64\xba\xae\xd9\x76\x8c\ \x23\x49\x42\x52\xa5\x37\xe2\x25\x78\x04\x64\x1c\xa4\x91\x54\x8c\ \xeb\xcf\xac\xe4\xed\xf1\x2d\x9a\x6a\x37\x57\xb1\xb5\x7a\x97\x50\ \xba\xb2\xa5\xdf\xae\x87\xeb\x2d\xcf\xf3\xaf\x58\xd4\x9a\x85\x2b\ \xdc\x2f\xb7\x4f\xfe\xad\xcf\xf3\xa6\x62\x78\xed\x4e\xd0\x6c\x17\ \x69\x76\x19\x77\xc8\xf1\x82\xed\xf0\xd4\x11\x21\xef\x15\x03\x62\ \x8e\x30\x36\x93\x93\xf7\x87\x61\xeb\x4f\x55\x6b\x4b\x48\xc9\xfc\ \xd8\xb8\xe7\x93\xd0\xda\xe6\xa4\xd4\x3b\xf7\x7e\xbe\xba\x7f\xf5\ \x8e\x7f\x9d\x66\xd6\xa7\xd4\x6d\xab\x72\x6f\xf7\x51\xf4\x98\xe7\ \xf9\xd3\x3e\xd2\x72\x2b\xd1\xda\x97\xc7\xab\x6f\x79\xfc\xc3\x34\ \xbb\x49\x33\x3a\xab\x52\x10\x14\x9d\x43\x76\xf9\xff\x00\x6c\x73\ \xfc\xe8\x7b\x53\x6a\x25\x8c\xff\x00\x48\x2e\xb9\xff\x00\x9e\x39\ \xfe\x75\x1b\x43\xa5\xa3\x9f\x4a\x1e\x96\x90\x9c\x85\x52\xb3\xd6\ \xbd\xd4\x9f\xcc\xba\xa9\x27\xa5\xc7\x97\x35\x76\xa4\x6c\x14\x9d\ \x41\x76\x03\xfe\x78\xe7\xf9\xd3\x74\xcd\x69\x7c\x65\xa5\x2d\x7a\ \x86\xe4\x84\x81\x95\x29\x53\x56\x00\xfa\x9c\xd4\x3f\x52\xea\x16\ \x22\x94\x47\x09\x76\x4c\xd7\x8e\xd8\xf0\xe3\xa4\xad\xe7\x94\x7b\ \x04\xa4\x73\xc9\xaa\x9f\xaa\xb1\x7a\x8b\x05\x51\xbf\xa5\xd6\x0b\ \xbd\x8e\x24\x82\x7e\xca\xdc\x98\xab\x65\xb5\xe3\xbe\x32\x06\xe5\ \x0c\x8c\xfa\x8c\xfa\x57\x4f\x07\x86\xc4\x57\xd7\x33\x4b\xb6\xec\ \xdb\x85\xc2\x55\xae\xef\x7b\x22\x79\xab\xba\xdf\x3a\x31\x53\x16\ \xdb\xd5\xca\xe0\xf0\xe3\x7a\xa5\x38\x1a\x1f\xc7\x2a\xff\x00\x5c\ \xd5\x4d\xa9\x75\x9e\xa9\xd4\xae\x95\xdd\x6f\x53\xa4\x23\xd1\xb5\ \x3c\xad\x89\x1e\xc0\x67\x14\xc2\x1b\xf7\xe4\x9f\x5a\xcd\x20\x76\ \x07\xf3\xaf\x41\x47\x0f\x0a\x4b\x4b\xb7\xda\xce\xfe\x1f\x07\x0a\ \x1b\x6e\x63\x87\x14\x7c\xce\x2f\xf1\x35\xea\x41\x4f\x39\x56\x6b\ \x23\xbb\x8f\xa5\x2e\x76\xd5\x73\x66\xd2\xc5\xe1\xfb\x5c\xc6\xad\ \xb2\x5c\x53\x4c\x4c\x5b\x0a\x0c\xba\xb4\xfd\xe4\xa5\x78\xda\x48\ \xf5\x00\xf1\x4f\x6d\x9b\x16\xe2\x30\x5c\xec\x16\xbf\xce\xbd\x42\ \xd6\x14\x0e\xf5\x03\xe8\x6b\xc0\x32\x7d\xbd\xab\xdf\x4c\x11\x8a\ \xad\xcb\xab\xf6\x99\x17\x9e\x24\x6e\x79\xc3\xf8\x9a\xc9\x2f\x3b\ \xbb\x97\x5c\x3f\xf5\xab\x04\xfa\x91\xe9\xc6\x2b\x24\x83\x9d\xc5\ \x35\x0c\xba\x72\xed\x33\x53\xef\x29\x44\x17\x5c\x3f\x55\x9a\x03\ \xab\xc1\x05\xd7\x3e\x79\x35\xa5\x44\x15\x63\x18\xf4\xac\x81\xc0\ \x04\x7e\x00\x50\x4f\x12\x4d\xee\x66\xe3\xef\x04\x85\x87\x57\x94\ \x60\xa7\xcc\x7f\x87\xf1\xaf\x56\xf3\x8e\xa4\x65\xd5\x94\x91\xdf\ \x71\xe6\xb0\x1c\x73\xf3\x5e\x70\xd9\x20\xf2\x85\x73\xff\x00\x24\ \xd0\x4a\x9c\x97\x32\xfa\xe9\xa7\x50\xef\x17\xcb\x7a\x60\xca\xbe\ \xdc\x05\xce\x2a\x02\x56\x93\x29\x79\x75\x09\xc0\x0b\x1c\xf3\xe8\ \x0f\xe7\x53\x34\x5f\x2f\x81\x1e\x5b\xcd\xcb\x00\x76\xfb\x52\xff\ \x00\xce\xb9\xc7\x45\x58\xb5\x46\xa0\xbe\x06\xb4\x7d\xba\xe1\x3e\ \xe7\x19\x06\x4a\x53\x05\xa2\xb7\x1b\x40\x21\x25\x58\x1d\x86\x54\ \x91\xf8\x8a\xb4\xde\xd4\x1a\xa3\x4a\xa6\x3b\x1d\x47\xd2\x37\x8b\ \x32\xde\xf2\xb5\x31\x50\xd4\xda\x1d\x3e\xb9\x04\x00\x48\xf5\xda\ \x7f\x0a\xe0\x63\x70\x15\x54\x9c\xe9\x6a\xbb\x3b\x0e\x4e\x2f\x0d\ \x57\x36\x6a\x6e\xfd\xd7\x26\xd2\x2f\xb7\xbd\xa4\x9b\xdd\xc9\x27\ \xdf\xed\x4b\xed\xf9\xd6\xa8\xd7\xab\xbb\x69\x29\x7a\xf1\x74\x24\ \x65\x5c\x4a\x5f\x23\xdf\xbd\x46\x06\xb0\xd2\xf2\x40\x0c\xdf\x22\ \x79\x86\x7f\x6b\xb9\xbc\x7d\x72\x29\x53\x57\xad\x3b\x22\x2e\xe5\ \xde\x6d\x64\x0f\x43\x25\x03\x18\x3c\x7a\xd7\x2d\xc6\xb2\x5a\xa7\ \xe6\x62\xfd\xf8\xab\x3b\xf9\x92\x78\xda\x8a\xfc\xeb\xcb\x75\x9d\ \x47\x74\x2d\x29\x20\x28\x7d\xa9\xc1\x83\xf9\xf7\xf4\xa5\x82\xfd\ \x7e\x40\x0d\x1b\xcd\xd1\x1e\x5e\xe9\x94\xb1\x81\xe9\xeb\xfc\x2a\ \x39\xa4\x52\xce\xad\xd4\x0c\x58\xb4\xfd\xca\x1c\xeb\xab\xe1\x61\ \x31\xd9\x90\x90\x56\x94\x24\xa8\x9e\x48\x48\xc6\x0f\xad\x31\x5e\ \xba\x83\x67\xb1\x5e\x65\x5b\xa5\x17\xdc\x9b\x11\xc5\xc6\x90\xdb\ \x2d\x6e\xc2\xd0\xa2\x15\xc9\x38\x3c\xe4\x67\x9e\xd5\x2a\x86\x26\ \x7e\xea\x7e\x64\x70\xf1\x13\x7d\x54\xfc\xcb\x11\x5a\x87\x51\x16\ \x83\xa2\xf7\x73\x78\x00\x7f\xfe\x6d\x79\x3e\x9e\xf8\xa5\x11\xb5\ \x16\xa1\x6d\x28\x29\xbe\xdd\x38\xe0\x1f\xb5\xb9\x9e\xdf\x5a\xa4\ \xa4\x75\x75\x4d\xa9\x5f\x63\xb2\x87\x90\xa2\x79\x7d\xcd\x9f\xc1\ \x39\xa6\x2b\x9f\x54\x35\x6c\xdd\xe9\x8a\xf4\x6b\x72\x08\xe3\xec\ \xec\x8d\xc0\x7f\xca\x56\x4f\xe5\x8a\x7c\x3a\x37\x19\x3d\xf4\xf1\ \x63\x63\x80\xc5\xc9\xd9\xe9\xf1\xfb\x1d\x19\x23\x52\x5f\x1b\x6f\ \xc5\x91\xa8\xae\x6c\x36\x15\xc9\x72\x7a\xd0\x93\xf9\xab\x15\x15\ \xbc\xf5\xaa\x35\xa5\x4e\xa4\xea\xeb\xac\xe7\xc2\xb1\xe1\x43\x94\ \xe2\xc6\x7f\xe5\x12\x07\xf1\xae\x70\xb8\x4d\x99\x71\x7f\xc5\xb8\ \x4c\x93\x31\x64\xe5\x45\xe7\x14\xae\x7f\x1a\x4e\x02\x12\xa2\x13\ \xb4\x01\xdf\xd7\xf2\xad\xf4\xba\x26\xda\xd4\xa8\xdf\x86\x86\xda\ \x7d\x17\x67\xd7\x9b\x7e\x1a\x16\xed\xfb\xf4\x85\xd7\x12\x02\x9b\ \xb2\xce\xb8\x40\x41\x3c\x3c\xf4\xc7\x1d\x70\x7d\x06\x76\x83\xf8\ \x1a\xad\xf5\x0e\xa3\xd4\x3a\x9a\x68\x99\xa8\xaf\xb7\x2b\xac\x81\ \xf7\x17\x2e\x4a\xdc\x29\xf8\x4e\x4f\x03\xe9\x4d\x65\x4b\xc7\x95\ \x38\x03\xd5\x55\xe1\x19\x39\x5a\x81\xe3\x00\x67\xb7\xe1\x5d\x4a\ \x54\x29\xd2\x56\x8a\xfa\x9d\x2a\x34\xa3\x47\xdc\x5e\xbc\x4f\x4b\ \xce\xfd\xd0\xe2\xc9\xed\x80\xa3\x83\xf5\xac\xbc\x69\x2a\x46\xd2\ \xf3\xa5\x07\xb8\xde\x71\xc7\xbd\x60\x08\x00\x00\xae\xde\x80\xd0\ \xb2\x10\x08\x1c\x9f\x5c\x9e\xf4\xe1\xaa\x52\xde\xe6\xc5\x4b\x91\ \xbb\x1e\x3b\x98\x1d\xb2\xa3\x5a\x9c\x90\xe8\xec\xea\xc2\x87\x6f\ \x31\xe2\xb5\xf9\xd6\xa2\x12\x14\x00\xef\xf1\x59\x25\x09\x41\xfb\ \xc0\x9f\x91\x53\x6b\x15\x75\x27\x2d\xd9\x8f\x89\x25\xd5\x65\x4f\ \x38\x31\xee\xa3\x59\xa4\x94\x1d\xc9\x5a\xc1\x1c\x67\x35\x22\x85\ \xa2\xb5\x54\xfe\x9f\x5c\x75\xe4\x3b\x4e\xfd\x39\x6c\x92\x22\xcc\ \x99\xf6\x86\x87\x86\xe9\x2d\x80\x9f\x0c\xab\x79\xe5\xe6\xf9\x09\ \x23\xcd\xdf\x83\x88\xa9\x25\x5c\xe4\x9a\x9b\x31\x6e\x76\xd9\xdc\ \x50\xa9\x6f\x81\xe4\x75\xc1\xcf\xf6\xcd\x6a\x76\x4b\xea\x52\xb2\ \xf2\xc9\x57\x07\xcd\xde\xb5\x24\xe4\x8c\x63\xf2\xed\x41\xf5\xf5\ \x35\x29\x58\xa4\xaa\xca\x4b\x73\xd2\xe3\xab\x50\x2b\x71\x64\x8f\ \x9a\x37\x2b\x24\xee\x56\x4f\xae\x4d\x78\x40\xe0\x95\x60\x7e\x75\ \xea\xf6\xe7\x39\x1c\xfb\x54\x95\xbb\xdd\xb0\xf1\x1c\x1c\x07\x17\ \xef\xf7\xab\xcf\x11\xc3\xff\x00\x08\xe1\x1e\x9c\xd7\x83\x39\xc7\ \xf1\xaf\x42\x3b\xee\x56\x3e\x48\xa9\xb9\x56\xd9\xa5\xf5\xa8\x8e\ \x56\xa2\x3e\x4d\x15\x9b\xe9\x40\x1c\x2b\xf0\xa2\xac\x99\x49\x45\ \xb7\xb9\xd5\xba\x67\x8b\x24\x70\x38\x1e\x6c\xff\x00\xda\x34\xea\ \x94\x15\x72\xa3\x84\xd3\x66\x98\x03\xf5\x33\x0a\x57\x00\x6e\xff\ \x00\xf2\x34\xb9\x4e\x17\x32\x3b\x27\xd8\x57\x82\xa9\x77\x36\x78\ \x76\x6c\x2f\x32\xdf\x09\x4e\xe3\x53\x6e\x86\x06\x26\xf5\x1e\x12\ \x24\x36\x8f\xd9\x32\xeb\xcd\x85\x7a\xac\x0c\x0f\xc4\x64\x9f\xc2\ \xa0\x3c\x0e\xdf\xc6\x96\xd9\x6e\xd7\x1b\x15\xe2\x25\xe6\xd0\xe3\ \x68\x9b\x11\x65\x4d\x87\x06\x50\xb0\x41\x4a\x92\xa0\x0f\x20\x82\ \x47\xf1\x1c\x8a\x76\x15\xc2\x9d\x68\xce\x5b\x26\x32\x85\x45\x0a\ \x91\x94\xb6\x4c\x7b\xb5\x45\x77\x55\x75\x10\x46\xb9\xcf\x9a\xe3\ \xb3\xee\x4b\xf1\xb7\xbc\xa2\x94\x80\x55\x90\x94\x93\x84\xe1\x20\ \xa4\x71\xc0\xa9\x74\x3b\x65\x8e\xfd\xa8\xf5\x5e\x96\x67\x4e\x46\ \xb7\x7e\xa9\x61\xc5\xdb\xe6\x34\xfa\xd4\xea\x94\xd1\xd8\xaf\x13\ \x71\xc1\x0a\x24\x1f\x81\x9f\x5e\x6a\x0b\x7a\xd5\x66\x75\xd1\xab\ \xc5\xb3\x4b\x46\xb0\x5d\xda\x98\x26\x2a\x5b\x77\x05\xc8\x43\x8e\ \x0c\x92\x3c\x22\x94\x84\x82\xa3\x93\xc9\xf6\xf5\x34\xba\xef\xd4\ \x1b\x83\xd1\x2e\xcf\x5b\xf4\xbc\x0b\x4d\xc6\xf0\xd1\x62\x7d\xc5\ \x13\x96\xee\xe4\x2b\xef\xf8\x6d\x94\x80\xd9\x3e\xf9\x35\xd3\xa7\ \x3a\x09\xcb\x89\x25\x2b\xbf\x1b\xab\x6c\xb4\xed\x36\x42\xa5\x25\ \x7c\xcd\x3d\x7e\x68\x76\x7d\x16\x7d\x3b\xa3\x34\x75\xc1\xcd\x3d\ \x16\xef\x26\xfd\x20\x3a\xfb\xb2\x1e\x5a\x3c\x26\x42\x93\x80\xde\ \xd2\x30\xac\x29\x38\x3e\xe0\xe7\xd3\x12\xad\x45\xa7\x22\x5f\xba\ \xc7\xa8\xe4\xcd\x8e\x25\xb5\x6c\xb5\x35\x21\x31\x94\xef\x84\x97\ \x9c\xd9\xe4\x4a\x95\x91\x84\xf0\x72\x72\x07\xbf\x15\x56\x5b\xb5\ \xc4\x88\xfa\x5a\x06\x9f\xb8\x69\x78\x17\xa6\xed\x6e\x97\x6d\x92\ \x1d\x98\xb6\x4b\x07\x39\xda\xe2\x12\x0f\x88\x9c\xfa\x65\x3c\x00\ \x3e\x69\x53\xbd\x48\xbe\x2f\x58\xc9\xd5\x1f\xaa\x20\xa9\x53\x61\ \x26\x14\xeb\x7b\xaf\x15\xb5\x25\xb0\x90\x15\x85\x6d\x05\x24\x91\ \x91\xc1\xc6\x71\xcd\x68\x85\x6c\x32\x82\x8b\xb5\xb4\xd2\xdd\xdc\ \xfe\x23\x23\x5a\x86\x54\x9e\xda\x69\x6e\xee\x7f\x11\xc7\x5e\xda\ \xed\xa8\xd2\x56\x4b\xc2\x63\x5a\x6d\x97\xa7\x5d\x5b\x17\x1b\x7c\ \x09\xc9\x7d\xb4\xfd\xf2\x85\x8c\x2d\x58\x05\x28\xcf\x7f\xde\x00\ \xf2\x29\x7e\x95\x21\x1d\x0a\xd6\x8b\x57\x61\x2d\x92\x7f\x36\xaa\ \x07\x25\xeb\x2c\x95\x37\xfa\xa3\x46\x31\xa7\xb6\xe4\xad\x49\xb8\ \xae\x52\x9c\x1e\x83\xcc\x94\x80\x07\xd0\x9f\x9a\x78\x89\xa9\x64\ \xc0\xd1\xb7\x7d\x26\x8b\x52\x1f\x62\xec\xe2\x1c\x5c\xb3\x2b\x61\ \x67\x69\x4f\x1e\x1e\xc3\xbb\x3b\x7b\xee\x1d\xeb\x27\x1e\x94\x71\ \x12\x7a\x25\x95\xad\x3b\x6d\xe0\x84\x2a\x90\x55\x5c\xb9\x59\xaf\ \x2f\x04\x59\x8b\xd1\xf6\x5b\x3d\xea\xdd\xa7\xee\x96\x9b\x4f\xea\ \xd7\xad\xbe\x24\xeb\xac\x8b\x92\x5a\x90\xdc\x93\xbb\x1b\x10\x56\ \x0e\xdc\xa4\x0e\x12\x47\x9b\xbf\x07\x31\xed\x19\x67\xb6\x4e\xd2\ \xb7\x26\xac\x56\xfb\x3d\xf7\x55\xc4\x9a\xa4\x39\x12\xe1\x21\x49\ \x05\x84\x9c\x05\x36\x94\xa8\x64\x1e\xf9\xce\x33\x91\x9e\x05\x46\ \x27\x6a\xa6\xaf\x4c\x42\x46\xa8\xd1\x16\xeb\xf4\xd8\x51\xd3\x19\ \x99\xff\x00\xac\x57\x1d\x4a\x69\x27\xca\x16\x80\x95\x6e\x39\x24\ \xe4\x11\xdc\xf6\xad\x1a\x73\x53\x44\xd3\x53\x21\x4f\x67\x43\x43\ \x99\x75\x82\x56\x63\xce\x37\x57\x1a\x09\x2a\xdc\x39\x6b\x61\x07\ \x09\x56\xde\xe3\x20\x7b\xd6\x8e\x36\x15\xd4\x56\xb5\xbc\xf9\x77\ \x6f\xf3\x1c\xea\xd0\xce\xad\x6b\x7a\xee\xdf\xe6\x4a\x34\x45\xb2\ \x05\xcf\x4d\xde\x9b\xb7\xd9\x6d\x13\xf5\x9b\x13\x14\x3f\x54\x5c\ \x5f\x5b\x69\x6d\x90\x46\x42\x13\x90\x4e\x39\x19\x27\xb8\xe4\xfa\ \x1e\x77\xea\xee\xad\x9b\xa7\xa7\x4a\x86\xdc\x44\x40\xb9\x38\xf3\ \xa1\x51\xb0\x48\x88\x02\x88\x29\x01\x59\x27\x07\xca\x33\xed\x56\ \x8c\x4d\x7f\x1e\xd7\x7e\x46\xa2\xb8\xe8\xa8\x97\x6b\xfa\x25\xb9\ \x29\xb9\xe2\xe8\xe4\x74\xa5\xc5\x95\x1f\xea\x82\x54\x08\x1b\xb1\ \x8c\x8c\x81\xce\x6a\x97\xd6\xfd\x64\xfe\x91\xe9\xdd\x5f\x63\xba\ \x69\x0b\x2c\xbb\x8d\xf6\xec\x26\xa2\xf3\xb7\x0e\xc5\x4a\x4a\x7f\ \x66\x80\x41\x38\xc2\x30\x0e\xe1\x80\xb5\xe4\x1d\xd9\xa7\xd0\xa1\ \x46\xba\x8e\xda\x79\xf8\x9a\x30\xb4\x29\xd7\x71\xee\xf5\xa9\x3b\ \xfd\x02\xd9\x45\xc3\xa9\x9a\x93\x51\x4e\x02\x65\xca\xdf\x65\x71\ \xd8\x9e\x37\x9c\x85\xa9\x60\x15\x8f\x5c\xe3\xcb\xf4\x59\x1e\xb5\ \x15\xfd\x1a\xd9\x57\x53\x7a\xeb\x02\xd9\xaf\x64\x4a\xd4\x11\x26\ \x22\x63\xef\x37\x31\xe5\x2d\x25\xc2\xd2\x95\xbc\x0c\xe0\x1c\xe0\ \xf1\xec\x2a\x15\xd1\xbe\xa2\x5e\xfa\x5d\xad\x59\xd4\xf6\x46\xd8\ \x79\x61\xa5\x47\x93\x19\xf2\x76\x48\x65\x58\x25\x04\x8e\x41\xca\ \x52\x41\xf4\x20\x70\x46\x41\x9a\xe9\xae\xb1\xe8\xfd\x2d\xd4\xdb\ \x6e\xb8\xd2\xdd\x29\x4d\xa9\xe8\xff\x00\x69\x32\x63\x26\xfc\xe3\ \x89\x90\x5d\x41\x4f\x94\xa9\xbc\x34\x94\x92\x48\x01\x27\xdb\x81\ \x5d\x75\x6b\x58\xee\x64\xcb\xb2\x27\x3d\x33\xd0\x7a\x23\x5c\xf5\ \x33\x53\xc2\x63\x45\xc6\x8d\x67\xd0\x91\x24\x34\x88\x9f\x6f\x50\ \x55\xd6\x42\x5c\x52\x5b\x5c\x87\x54\x46\xdc\xf8\x6a\x27\x04\x24\ \x64\x0e\xc3\x96\xce\xb0\xf4\xfe\xc6\x34\xa6\x85\xd4\x96\x9d\x23\ \x68\x87\xaa\x66\xdc\xc4\x1b\xb6\x97\xb3\xdc\xc4\xa6\xdf\x25\x4b\ \x2d\xed\xf0\xdc\x59\x4e\xe4\xb7\xc9\x49\xe3\xc4\x19\x39\x15\x5e\ \xe8\x2e\xae\xdc\xf4\x77\x51\xaf\xfa\xaa\x2d\xa2\x24\xc8\x3a\x81\ \x72\x13\x71\xb5\x49\x70\x94\x3a\xcb\xcb\x2b\x28\xde\x06\x41\x19\ \xc6\xec\x7b\xf1\xcd\x7b\x1b\xa8\xda\x56\xc1\xac\x6c\x3a\xa3\x40\ \x74\xe9\xad\x3b\x2e\xd5\x2c\xc8\x58\x91\x79\x7a\x70\x90\x92\x0a\ \x4b\x7e\x64\xa4\x20\x60\x9e\x40\x27\x9e\xf4\x5d\x58\x32\xca\xe5\ \xdc\xe7\x4b\x6d\x97\xbe\x92\x6b\xe9\x3a\xab\xa6\xfa\x73\x46\xde\ \xf4\xed\xb4\xcf\x80\x6c\xf7\x4f\x1d\xf4\xec\x69\xd7\x36\x3e\x80\ \xea\xf1\x90\xd8\x1e\x6e\xfb\x89\x00\x14\xd6\x1d\x5c\xba\xdb\x9e\ \xfd\x18\xfa\x6d\x0e\x1e\x8c\xd3\xe8\x55\xf8\xba\xc4\x66\xf6\xb8\ \x11\x01\xd7\x32\x0b\xad\x61\x5f\x78\xa9\x44\x92\xac\xf2\x6a\x03\ \x70\xfd\x21\xa0\x93\xad\xd1\x66\xe9\xcc\x6b\x60\xd6\x96\xd9\x11\ \xee\xae\x7e\xb6\x71\xe7\x57\x21\xc4\x29\x08\x78\x15\x23\x01\x08\ \x0e\x38\x7c\x30\x91\x92\xbf\xbc\x30\x05\x30\x49\xeb\x04\x0b\xa7\ \x47\x6d\x1a\x06\xfb\xa2\x9b\x9f\x2a\xc6\xdb\xa9\xb4\xdd\x1a\xba\ \x38\xc1\x8e\xb5\x03\xb5\xc5\x34\x12\x42\xca\x72\x0e\x0a\x80\x3b\ \x47\x1d\xea\x6e\x88\xcb\x2e\x67\x40\xcb\xe8\x9f\x4f\xad\xb7\xe9\ \x1a\x02\xe5\xa6\x6c\xb0\xec\xc2\xca\x14\xde\xa9\x93\x79\x42\x27\ \x19\xe7\x1e\x6f\x04\xbb\x90\x8f\x5c\x6d\xdb\xc6\x39\x06\xb9\x87\ \xa0\xd6\x58\x17\x8e\xb5\xe9\x9b\x25\xea\x1b\x53\x20\xc8\xb8\xa5\ \x89\x0c\x2c\xe5\x0e\x27\x9c\x83\x83\xc8\xe2\xa5\x3a\xc3\xac\x7a\ \x63\x5c\x88\xf7\x2d\x75\xd2\xc8\x97\x8d\x4a\xd4\x44\xc5\x55\xce\ \x3d\xe5\xe8\x8d\xbc\x13\x9d\xaa\x5b\x28\x49\xc9\xc9\x3c\x85\x0e\ \xf8\xe0\x00\x2a\xbe\xe9\x8e\xa7\xfe\x85\xeb\xeb\x36\xab\xfb\x07\ \xdb\x8d\xb2\x4a\x64\x7d\x9b\xc5\xf0\xbc\x5c\x03\xe5\xdd\xb5\x58\ \xfa\xe0\xd5\x5b\x45\xe3\x19\x59\xdc\xea\x0b\x16\x86\xe9\x55\xc2\ \xf3\xd5\x1d\x29\x23\xa7\xf1\xc4\x6d\x18\xd0\x96\xc4\xc4\x4e\x78\ \x4a\x92\x52\x95\xad\x69\x5a\x81\xc0\x49\x28\xda\x02\x40\xc2\x4f\ \xbf\x35\x19\xbe\xf4\xf3\x49\xeb\xae\x93\x74\xbb\x56\xd9\xf4\xfc\ \x3d\x2d\x71\xd4\x9a\x89\x36\x69\x8d\x40\x5a\xcb\x5e\x1a\x9d\x7d\ \x1b\xc0\x5a\x8f\x98\x06\x32\x33\xdf\x71\x04\x9c\x0a\x86\xda\x7a\ \xf4\x6d\xda\x93\xa8\xf7\xaf\xe8\xa0\x77\xfa\x6f\x1d\x4c\x96\xbf\ \x58\xe3\xec\x39\x4a\xd3\x9c\xf8\x5f\xb4\xfb\xf9\xc6\x13\xda\x9a\ \x1f\xeb\x0c\xd1\xd1\x9d\x23\xd3\xfb\x75\xa1\x50\x65\xe9\x8b\xc0\ \xbb\xc6\xbb\x09\x7b\x8a\xdc\x0e\x3e\xb4\x8f\x0b\x67\x97\x05\xe1\ \xce\xe3\xf7\x3b\x73\xc0\xda\x05\x19\xa7\xa1\x75\xc2\xd0\x9d\x30\ \xd4\xbd\x63\xd4\xdd\x10\x8f\xa1\xa3\xdb\x1b\xb5\xdb\x37\xc1\xbe\ \x35\x25\xd5\x4c\xfb\x42\x52\xd1\x2b\x5e\x55\xb5\x49\xcb\xa7\x8c\ \x11\xe5\xed\xc8\xdb\x10\xb4\x69\xed\x0f\xa5\xbf\x46\x5b\x27\x51\ \x2f\x5a\x26\x0d\xfa\xf4\xcd\xd6\x4d\xbd\x4d\xbe\xfa\xdb\x69\xd2\ \xa7\x56\x02\x9c\xdb\xca\xf6\x25\xb2\x12\x3f\xbd\x9f\x41\x4d\x93\ \x3f\x48\xc2\x9b\x8d\xdb\x55\xda\x74\x05\xb6\xd7\xae\x2e\xf0\x04\ \x29\x77\xc6\xee\x2e\x2d\x01\x3b\x52\x9d\xed\xc7\x23\x08\x56\x10\ \x8c\x1d\xc7\xee\x8c\xe7\x9c\xc2\xa7\x75\x47\xed\x1d\x01\xb7\xf4\ \xa3\xf5\x10\x42\x61\xdc\x95\x3b\xf5\x97\xdb\x33\xbf\x2a\x70\xec\ \xf0\xb6\x71\xfd\x67\x7d\xde\x9d\xa8\xba\x0c\xb3\xe6\x5f\x9a\x2f\ \xa4\x5a\x4b\x4f\xe9\xae\x9f\xb3\x79\xd1\xd6\x5b\xdb\x1a\x8a\x21\ \x97\xa8\x2e\xd7\x1b\xc2\x63\x39\x09\x2b\x6d\x2a\x6d\x2c\x20\xba\ \x92\x42\x77\xe0\x94\x82\x4e\x3b\xf2\x31\xcb\xfd\x4b\xb2\x42\xd3\ \x7d\x41\xbf\x58\xad\xd2\xd3\x32\x0c\x39\xce\x35\x19\xf4\xac\x2b\ \xc4\x68\x1f\x21\xc8\xe0\xf9\x48\xed\x53\x96\xba\xbd\x66\xbc\x68\ \x4b\x16\x96\xea\x1f\x4f\x58\xd5\x23\x4f\xb4\x63\x5a\xe6\xb5\x75\ \x72\x0b\xad\x33\x80\x03\x6b\xda\x95\x05\x80\x12\x81\xe9\xc2\x47\ \xae\x49\x64\xb7\xf5\x0a\xd1\x07\x40\x6a\xbd\x25\x1b\x40\xd9\xc0\ \xbe\x4e\xfb\x4c\x49\x8b\x71\x4e\x3d\x6d\x6c\x10\x52\xca\x14\xa0\ \x54\xb0\x90\x30\x95\x15\x03\xe6\x51\x3b\xb3\x43\xb3\x2d\x0c\xe9\ \xea\x59\xff\x00\xff\x00\x0f\x24\xa9\x3d\x6a\xbb\x8c\x9d\x87\x4e\ \x3e\x42\x4f\xa7\xfb\x4c\x6a\xd9\xd3\x7b\x94\xcd\x51\xfa\x1d\xf5\ \x16\x2e\xa5\x95\x22\x6b\x56\x79\x6c\xc9\x80\xe4\xb7\x0b\x8a\x65\ \x64\xa0\xe1\x0a\x3c\x81\x90\x78\x1f\xdb\x57\xbd\x56\x9f\xa3\xe7\ \x54\x4f\x48\xf5\xa4\xad\x48\x9b\x18\xbe\x7d\xaa\xdc\xb8\x3e\x01\ \x99\xf6\x7d\xbb\x9c\x69\x7b\xf7\x6c\x5e\x71\xe1\xe3\x18\xfd\xee\ \xfc\x52\x9d\x5f\xd5\x98\xd3\x3a\x70\xbe\x9e\xe8\xbd\x1f\x1f\x49\ \xe9\xd9\x32\x84\xb9\xc9\x17\x05\xcc\x91\x2d\x69\xc1\x01\x4e\x28\ \x27\xca\x0a\x52\x71\x8f\xdc\x4f\x3d\xf3\x09\xe8\x0e\x2f\x3e\x9d\ \xc7\x43\xb7\xd1\x5d\x0b\xa7\xaf\x36\x6d\x13\x7f\xd2\x56\x37\xad\ \x52\xac\x85\xeb\xae\xa3\x97\x79\x43\x33\x1a\x9a\x77\x01\xe1\xb6\ \x5d\x0a\xd8\x0a\x06\x30\x82\x9f\x30\xc9\x38\x56\x6b\x8d\x3d\xa4\ \x34\x56\x9d\xfd\x1c\xef\x7a\xd2\xeb\xa5\xe0\x6a\x1b\xbd\x87\x53\ \x3b\x09\x82\xf3\xaa\x43\x32\x52\x16\xdb\x40\x39\xb1\x59\x52\x06\ \xe5\x28\x00\x79\x38\xc9\x23\x35\x11\xbc\xf5\x8b\x4f\x6a\xeb\x55\ \xa4\x75\x13\xa6\x51\xb5\x2d\xe2\xd7\x11\x30\x99\xb9\x35\x78\x7a\ \x11\x71\xa4\xf2\x90\xe2\x10\x93\xb8\xe4\x93\x90\xa1\xc9\x38\xc6\ \x6a\x69\xd3\xad\x61\xa0\xad\x5f\xa2\x3d\xe2\xd5\xa9\x22\x5b\xef\ \x2f\x2e\xff\x00\xe3\x0d\x3a\x2f\x3f\x64\x92\xea\x0a\x99\xda\xa1\ \x8c\xb9\xb5\x38\x27\x21\x3c\x84\x9e\x6a\x74\x7b\x15\xfd\xc5\xab\ \x2c\x2d\x21\xa2\xf4\xce\x9c\xfd\x26\x3a\x6f\x7f\xd2\xb6\xb4\x5a\ \x61\x6a\x4d\x3d\x22\x6a\xe0\xa1\x65\x49\x65\xcf\xb3\x92\x76\xe7\ \x90\x08\x5a\x46\x3b\x64\x1a\x80\x49\xd3\x3a\x5b\x4d\xe8\x4d\x7b\ \xd5\x9b\xe6\x9b\x8b\xa9\xae\x6e\x6a\xd9\x56\xf8\x10\xe5\xba\xb4\ \xc7\x65\x3e\x39\x0a\x5a\x92\x82\x0a\x89\xca\xbd\x7d\x13\x8c\x73\ \x51\x48\xff\x00\xa4\x25\xcc\x75\x9e\xd3\xd4\x19\x5a\x72\x33\x91\ \x2c\xf0\x17\x6f\xb7\xd9\xa3\xca\x2d\x36\xcb\x25\x0a\x48\x1e\x21\ \x42\xb2\x7c\xd9\x27\x6f\x38\x03\x8c\x53\x6d\x83\xac\xc9\x66\xd7\ \xa9\xf4\xee\xa5\xd1\xec\xea\x0d\x2f\xa8\x2e\xae\x5d\x55\x6f\x54\ \xf5\xc7\x76\x2b\xca\x5e\xef\x23\xe9\x49\xe3\x84\xe7\xcb\xce\x3d\ \x32\x72\x5d\x13\x92\x77\x2e\x28\x3d\x3c\xe9\xac\x4e\xae\x74\xd6\ \xea\xbd\x33\x1d\x3a\x77\xa8\x56\x37\x1d\xfd\x59\x21\xc5\x38\x88\ \x92\xbc\x26\x9e\x49\x49\xce\x46\x77\xa1\x00\x67\x00\x93\xd8\x76\ \xaf\x35\xb6\x80\xb2\x68\x1e\x88\x6a\x59\x17\x6b\x5b\x2e\x5f\xa6\ \xea\xc7\x6d\x56\xb7\xdc\xc9\x5b\x31\x58\x57\x99\x69\xf4\xf3\x6c\ \x52\x73\x8f\xde\x1f\x83\x3c\xde\xa3\x5f\x3a\x91\xd5\x5d\x2d\x32\ \x2b\xda\x7f\x48\x46\xd3\xa9\x69\x36\x68\xf3\x67\x96\x62\x45\x43\ \x24\x2c\x25\x6f\x2c\x72\xa5\x6c\x4a\x73\x81\x9c\x24\x62\x9e\xbf\ \x4c\x4e\xa3\xc1\xd6\xba\x86\xc5\x68\xb3\xcf\x83\x32\x3d\x9e\x19\ \x33\x1e\xb7\xaf\x74\x47\x26\xbc\x41\x7b\xc2\x57\xef\xa4\x6d\x18\ \x57\xc9\xf9\xa8\x76\xb3\x2d\x1c\xd9\x92\x66\xbf\xd1\x9f\xa7\x16\ \xad\x4b\xa5\xf5\x7e\xb0\xb8\xda\x63\x5f\xdf\xb1\xb2\x86\xed\xd6\ \xd9\x53\x04\x78\xcf\x48\x58\x27\x73\xab\x2a\x40\x09\x48\x09\xe0\ \xa8\x03\x93\xec\x2a\x7e\xee\x87\xe9\xad\xbb\xab\x3d\x36\x7e\x56\ \x9e\xb0\xb7\x1b\x54\x46\x72\x15\xea\xc8\xc4\xe4\xca\x66\x14\xdd\ \x89\x2d\xa9\x0a\x4a\xd5\xf7\x96\xa0\x9e\x0e\x38\xf5\x26\xa8\xde\ \x92\x75\x2a\x4e\x84\x8b\x7b\xb4\x4b\xb2\x44\xd4\x3a\x7e\xfd\x1c\ \x47\xb9\xdb\x24\x3a\xa6\x7c\x44\xa7\x20\x14\x38\x90\x4a\x14\x02\ \x94\x33\x83\xdc\x1e\xe0\x10\xd3\xa8\xf5\x3e\x9d\x37\xdb\x55\xd7\ \x44\x68\xe3\xa5\x1c\xb7\x3a\x1f\x1b\xae\x8e\xcc\x53\x8e\xa5\x49\ \x52\x09\x52\x82\x76\xed\x29\xec\x90\x3b\xf2\x7b\x54\x26\xac\x5a\ \x70\x9e\x76\xcb\x63\x50\xf4\xde\xcb\xa4\xba\x77\xad\xc4\xfb\x54\ \x37\x6f\x33\xb5\x88\xd3\xfa\x7d\xd7\x89\x25\x96\x92\xad\xe5\xd4\ \x8c\xf6\x28\x51\x4e\x7d\x08\x1f\x15\x68\xca\xe8\xb7\x4f\xed\xb7\ \xf9\x1a\x0a\xe3\xa6\x6c\xb0\xec\xc2\xca\x14\xde\xa8\x93\x79\x42\ \x27\x19\xe7\x1e\x6f\x04\xbb\xb8\x23\xd7\x1b\x76\xf9\x71\x92\x0d\ \x50\x5f\xa4\x27\x5c\x24\xf5\x61\xdb\x3f\xd9\xf4\xf2\x34\xeb\x16\ \xc5\xba\xf7\x86\xdc\xcf\x1c\xbc\xf2\xf6\x8f\x10\x90\xda\x30\x40\ \x40\x03\x83\xdc\xf3\x5b\xb5\x7f\x58\xb4\xce\xba\x44\x7b\x96\xbb\ \xe9\x6c\x4b\xc6\xa4\x66\x22\x63\x2a\xe7\x1e\xf2\xf4\x46\xde\x09\ \xfb\xaa\x5b\x28\x49\xc9\xc9\x3c\x85\x0e\xf8\xe0\x00\x2a\xdd\x51\ \x6d\x54\x69\x32\x5a\xe5\x8f\x43\xe9\x3f\xd1\x77\x47\xf5\x12\xe3\ \xa2\x60\xdf\x2f\x92\x67\xcc\xb6\x2c\x3d\x21\x48\x69\x6a\x53\xf2\ \x30\xea\xc2\x7e\xf9\x42\x23\xed\x48\xed\xe7\xcf\x38\x15\x28\x83\ \xd2\xad\x1f\xac\x2f\x9d\x19\xd4\x56\x9b\x04\x28\x96\x4b\xc4\x17\ \x5d\xbf\x32\xde\x43\x45\xd8\xed\x85\xa8\x2b\x9e\xc5\x61\x68\xe3\ \x1d\xaa\x8f\xbe\xf5\x44\xdd\x3a\x03\xa7\x7a\x52\x6c\x49\x65\x36\ \x6b\x8a\xe7\x7e\xb2\x13\x37\x78\xdb\x95\x21\x5b\x3c\x2d\x83\x6f\ \xfb\xa3\xbe\xe3\xf7\x7b\x73\xc5\xb3\xa2\xba\x88\xd6\x81\xfd\x16\ \xae\x96\x3b\x86\xa6\xd3\x13\xa6\xcf\x88\xb4\x58\x22\xdb\xa7\x7d\ \xa6\x74\x63\x29\x27\xc5\x0f\x20\x7f\x51\xe1\x85\x93\xcf\xef\x6e\ \x1c\xf1\x91\x58\x89\x66\x5a\xf3\x6c\x40\xe6\x95\xd2\x3d\x47\xe8\ \x85\xea\xf1\xa3\xb4\xe4\x1b\x7d\xea\x06\xb1\x4c\x46\x56\xc2\x15\ \xbc\xc3\x90\xf0\x43\x09\x23\x3c\x81\xe3\xa0\x76\xcf\xec\xc9\xa9\ \xee\xb7\xe8\xde\x80\xbb\x75\x0f\xa7\x3f\xd1\x0b\x2c\x66\xad\x08\ \xbd\xcd\xb5\xdf\x5a\x19\xda\xea\xe2\x82\xb5\x25\xce\x4e\x32\x18\ \x74\x77\xe7\x70\xed\x54\x3f\xe8\xef\xd6\x77\xba\x49\x22\xf2\x55\ \xa7\x13\xa8\x22\x5c\xc3\x05\x51\xd5\x33\xc0\xf0\xdc\x65\x4a\x52\ \x16\x0f\x86\xbc\x9f\x31\xf4\x1e\x87\x3c\x53\x9f\x4f\x7f\x48\x3b\ \xce\x93\xd0\x9a\x9f\x4e\xbf\x63\x45\xc6\x6d\xea\x54\xa9\xac\x5c\ \x15\x2c\xb6\x60\xbf\x21\xa2\x85\xad\x28\x28\x56\xee\x49\x56\x37\ \x0e\xe7\xde\x84\xe3\xcc\x24\xa7\xc8\xb4\xf4\x9d\xef\x4d\x46\xfd\ \x15\xba\xad\x7b\x89\xa6\x60\xce\xd3\xe8\xd6\x2a\x54\x2b\x5a\x9c\ \x5a\x18\x53\x5e\x24\x14\xb0\x14\x50\x42\xb0\x3c\x8a\x20\x1e\x70\ \x47\xad\x25\xbf\xf4\x43\x44\xea\x3e\xae\xf4\xd1\x16\xeb\x67\xea\ \x5b\x56\xa5\xb2\xaa\xe7\x74\x83\x19\xd5\x14\x0f\x0d\xb4\x2c\xa5\ \xb2\x4e\x46\xe2\xb4\xa4\xe3\x1c\x02\x47\x35\x49\xd8\x7a\x9e\x6d\ \x1d\x01\xd4\x3d\x28\x36\x10\xf0\xbd\x5c\x51\x3b\xf5\x8f\xdb\x36\ \x96\x76\xaa\x39\xd9\xe1\x6c\x3b\xbf\xdc\xfd\xf7\x0f\xbd\xdb\x8e\ \x64\x37\xaf\xd2\x12\xf0\xf5\xf3\x40\x5e\xec\x96\x26\x6d\xb3\x34\ \x74\x03\x08\x78\xd2\xbc\x74\x4d\x42\x9b\x43\x6a\xdc\x90\x84\x14\ \x02\x12\x78\x04\xe3\x3d\xf8\xa9\xcc\x88\x70\x92\x64\xcf\xac\x3d\ \x3e\xd2\x4a\xe9\x0e\xa3\xbc\x8d\x2d\xa7\xf4\x86\xa0\xb1\xdd\x36\ \xdb\x58\xb7\xde\x5b\x92\xb9\xd0\xb7\xa1\x19\x71\x21\xd5\xf9\xc0\ \x51\x51\xcf\x9b\xc9\xd8\x64\xd2\xae\xb6\xe8\x2d\x0d\x6c\xd6\xba\ \x63\xa7\xba\x77\x47\x43\x89\x3f\x59\xa2\x0a\xdc\xba\x97\xd7\x9b\ \x7a\x4b\xa8\x42\xbc\x16\xf3\xb4\x64\x21\x65\x44\xe4\x9d\xff\x00\ \x02\xa9\xae\xa3\x6b\x4d\x0b\xaa\xa3\xce\x93\x68\xe9\x7b\x76\x0b\ \xd4\xe7\xfc\x77\xa7\xb7\x7b\x75\xf4\x25\x65\x5b\x97\xb1\x92\x84\ \xa5\x21\x47\x3c\x12\x40\x07\x8e\xc2\x9c\x7a\xc1\xd6\x39\xda\xef\ \x58\xe9\xad\x51\x6f\xb3\x7e\xa1\x9b\xa7\xa3\x32\xd4\x62\x25\xfd\ \xa3\x2e\x34\xe1\x71\x2e\x7d\xc4\xe3\x9c\x71\x83\xdb\xbd\x0d\xa0\ \x50\x95\x91\x7b\x6b\x4e\x92\x68\x36\xa1\xeb\x5d\x2c\xe6\x93\xb1\ \x69\xf8\xd6\x7b\x6a\x5d\xd3\xf7\xaf\xd7\x68\x5c\xd9\x72\x12\xd6\ \xe5\x07\x5a\x2e\x95\x79\x95\xc6\x14\x90\x31\xdb\xd3\x1c\x69\xb4\ \x0c\x1c\x0e\x7f\x8d\x5b\xbd\x44\xea\xa6\x91\xd7\x6b\x9d\x79\xbc\ \xf4\xa2\x30\xd5\x93\x62\xf8\x4e\xdd\x63\xde\x9f\x6d\x90\xe8\x6f\ \x62\x5e\xfb\x38\x4e\x37\x27\xca\x70\x56\x41\xda\x33\x9e\x73\x1c\ \xd7\x5a\xee\x0e\xa5\xd0\xda\x57\x4d\xb1\xa3\xed\x56\x77\xac\x2c\ \x29\x97\x6e\x11\x87\xed\x66\x92\x00\xdc\xae\x06\x32\x46\xe3\x92\ \xac\xa8\x92\x31\x9c\x54\x49\xae\x45\xa1\x19\x25\xaa\x20\xb9\x52\ \x7e\xe6\x73\x8f\x53\x58\xad\x41\x5c\xe3\x3f\x5a\xd8\x1b\xe3\xd3\ \x93\x41\x4a\x02\xbd\xaa\xb7\x43\x1c\x59\xe5\xae\x03\xb7\x3b\xc4\ \x2b\x6b\x40\x97\x65\x48\x6d\x84\x00\x39\x2a\x5a\x82\x47\xf1\x34\ \x55\xf5\xfa\x14\x74\xda\x46\xae\xea\x9c\x7d\x4d\x29\x8f\xff\x00\ \x45\xd3\xcb\x12\x16\xb2\x38\x72\x40\x1f\xb2\x40\xe3\x9c\x1f\x39\ \xfa\x0f\x7a\x29\xb1\xd8\xcb\x53\x47\x62\x4f\xa7\x54\x55\x66\x8e\ \x91\xd8\x6e\xff\x00\xf2\x34\xe4\x3b\x0a\xed\x1a\x2b\x87\x2e\x83\ \xbb\xbe\x7f\x2f\xc9\xc3\xfd\x27\xfe\xfc\xbf\x27\x17\x2b\x9a\xf1\ \x27\x1c\x57\x69\x51\x55\xfd\x0b\xff\x00\x4f\x2f\xc9\x1f\xa4\x7f\ \xdf\x97\xe4\xe2\xd3\xea\x3d\x28\x90\x71\x08\x8f\x73\x5d\xa5\x45\ \x1f\xa1\x7f\xe9\xe5\xf9\x0f\xd2\x7f\xef\xcb\xf2\x70\xfa\x4e\x07\ \x35\xb1\xa0\x54\xad\xc7\xb0\xae\xdc\xa2\xaf\xfa\x2f\xfd\xf9\x7e\ \x43\xf4\x8f\xfb\xf2\xfc\x9c\x5c\xca\xb6\xf0\x06\x4d\x6d\x71\x59\ \x50\x1e\xb5\xd9\x94\x55\x1f\x40\xdd\xdf\x89\xe5\xf9\x27\xf4\x9f\ \xfb\xf2\xfc\x9c\x64\xd9\xda\xb3\x5a\x26\x2f\x83\x9e\x31\x5d\xa9\ \x45\x0b\xa0\xac\xef\xc4\xf2\xfc\x87\xe9\x3f\xf7\xe5\xf9\x3e\x77\ \x6b\xa9\xdf\x63\xb6\xca\x92\x14\x01\x6d\xb3\x8f\xa9\xe0\x7f\x3a\ \xa1\x11\x95\x3a\xa5\x7a\xe7\xd6\xbe\xc6\x51\x5d\x4c\x2e\x11\x61\ \xe2\xd5\xef\x73\xa1\x84\xa0\xb0\xea\xd7\xb9\xf1\xec\x82\x71\x80\ \x73\xf4\xaf\x12\x15\xef\xc5\x7d\x85\xa2\xb4\x64\x37\xf1\xb5\xbd\ \x8f\x8f\x67\x8c\x1c\x63\x3c\xf3\x5e\x82\x08\xef\xe6\xaf\xb0\x74\ \x51\x90\x38\xfd\xc7\xc7\xac\x71\x40\x49\xc5\x7d\x85\xa2\xa7\x20\ \x71\xbb\x8f\x8f\x84\x64\x70\x70\x6b\xd0\x09\x1c\x02\x7d\x39\x3e\ \x95\xf6\x0a\x8a\x8e\x19\x3c\x7e\xe3\xe3\xee\x14\x08\x0a\x38\x03\ \xd7\x15\xe8\x27\x80\x08\xaf\xb0\x34\x51\xc3\x27\xda\x3b\x8f\x90\ \x18\x24\x7d\xd0\x4d\x79\xb4\xfb\x1f\x73\xe9\x5f\x60\x28\xa8\xe1\ \xf7\x83\xc4\x27\xc8\xf8\xff\x00\xb4\x15\x77\xfc\xeb\xcc\x6d\x00\ \x03\x8c\x73\x8a\xfb\x03\x45\x4f\x0f\xbc\x3d\xa3\xb8\xf8\xfc\x8c\ \x9c\x11\xc1\xf9\x15\xe8\xc2\x95\xc2\x52\x33\x5f\x60\x28\xa3\x86\ \x0b\x11\x6e\x47\xc8\x15\x0c\x63\x90\x4f\xf6\xab\xc2\x93\xff\x00\ \x2b\x8e\xfe\xb5\xf5\xfe\x8a\x8e\x1f\x79\x2f\x13\x7e\x47\xc8\x21\ \xbb\x1b\x4f\x6f\x7c\xf6\xa3\x82\x0a\x47\xf0\x3d\xeb\xeb\xed\x14\ \x70\xbb\xc3\xda\x7b\x8f\x90\x24\x01\x94\x9c\xfb\xf3\xef\x5e\xe5\ \x58\x20\x13\x8a\xfa\xfb\x45\x1c\x3e\xf0\xf6\x9e\xe3\xe4\x0a\x54\ \x40\xe1\x47\xbf\x3c\x56\x1b\x95\x93\xc7\x7f\x5e\x6b\xec\x0d\x14\ \x70\xc3\xda\x7b\x8f\x8f\xe0\x10\xac\xf6\x3d\xfb\x77\xaf\x54\xae\ \x30\x09\xcf\xc8\xaf\xaf\xf4\x51\xc3\xef\x0f\x69\xee\x3e\x3f\x61\ \x4a\xf5\xc7\xcd\x03\x68\xce\x72\x4e\x6b\xec\x0d\x15\x3c\x3e\xf2\ \x3d\xa3\xb8\xf9\x00\x79\x1d\xf1\x9e\xc6\xb1\x52\x94\x7d\x41\x15\ \xf6\x06\x8a\x38\x60\xf1\x17\xe4\x7c\x7d\xff\x00\xaa\x6b\xd0\x94\ \x93\x9f\x7e\x3d\xeb\xec\x0d\x14\x70\xfb\xc8\xf6\x8e\xe3\xe4\x07\ \x38\xe0\x8f\xf2\xac\x52\x3c\xb9\x38\xc5\x7d\x81\xa2\x8e\x19\x2f\ \x11\xdc\x7c\x7f\x1c\x64\x0c\x8c\x77\x19\xc5\x62\xa7\x01\xc2\x73\ \xc7\xd2\xbe\xc1\x51\x47\x0c\x87\x88\x7d\x87\xc8\x5b\x7c\x1b\x95\ \xcd\xf0\xc5\xb2\x0c\xb9\xce\x13\xe5\x4c\x76\x14\xe1\x27\xe8\x33\ \x57\x8f\x48\x7f\x45\xcd\x7b\xab\xe6\x33\x2f\x53\x46\x77\x4b\xd9\ \xb2\x0a\xd7\x24\x62\x4b\x89\xe3\x84\x35\xdc\x64\x1e\xea\xc7\xd0\ \xd7\xd0\x9a\x2a\x54\x12\x2b\x2a\xcd\xa1\x8b\x41\xe9\x2b\x0e\x88\ \xd2\xf1\x34\xe6\x9b\x82\x98\x76\xf8\xc3\xca\x91\xca\x96\xa3\xdd\ \x6b\x3f\xbc\xa3\xea\x68\xa7\xda\x2a\xe2\x42\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x0f\xff\xd9\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0b\ \x08\x01\x81\xe7\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x2e\x00\x6a\x00\x70\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/draganddrop/README0000644000076500000240000000151412536324427020740 0ustar philstaff00000000000000PyQt supports native drag and drop on all platforms via an extensible MIME-based system that enables applications to send data to each other in the most appropriate formats. Drag and drop can also be implemented for internal use by applications. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/effects/0000755000076500000240000000000012536324427017211 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/effects/lighting.py0000644000076500000240000001206212536324427021371 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import math from PyQt4 import QtCore, QtGui class Lighting(QtGui.QGraphicsView): def __init__(self, parent=None): super(Lighting, self).__init__(parent) self.angle = 0.0 self.m_scene = QtGui.QGraphicsScene() self.m_lightSource = None self.m_items = [] self.setScene(self.m_scene) self.setupScene() timer = QtCore.QTimer(self) timer.timeout.connect(self.animate) timer.setInterval(30) timer.start() self.setRenderHint(QtGui.QPainter.Antialiasing) self.setFrameStyle(QtGui.QFrame.NoFrame) def setupScene(self): self.m_scene.setSceneRect(-300, -200, 600, 460) linearGrad = QtGui.QLinearGradient(QtCore.QPointF(-100, -100), QtCore.QPointF(100, 100)) linearGrad.setColorAt(0, QtGui.QColor(255, 255, 255)) linearGrad.setColorAt(1, QtGui.QColor(192, 192, 255)) self.setBackgroundBrush(linearGrad) radialGrad = QtGui.QRadialGradient(30, 30, 30) radialGrad.setColorAt(0, QtCore.Qt.yellow) radialGrad.setColorAt(0.2, QtCore.Qt.yellow) radialGrad.setColorAt(1, QtCore.Qt.transparent) pixmap = QtGui.QPixmap(60, 60) pixmap.fill(QtCore.Qt.transparent) painter = QtGui.QPainter(pixmap) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(radialGrad) painter.drawEllipse(0, 0, 60, 60) painter.end() self.m_lightSource = self.m_scene.addPixmap(pixmap) self.m_lightSource.setZValue(2) for i in range(-2, 3): for j in range(-2, 3): if (i + j) & 1: item = QtGui.QGraphicsEllipseItem(0, 0, 50, 50) else: item = QtGui.QGraphicsRectItem(0, 0, 50, 50) item.setPen(QtGui.QPen(QtCore.Qt.black, 1)) item.setBrush(QtGui.QBrush(QtCore.Qt.white)) effect = QtGui.QGraphicsDropShadowEffect(self) effect.setBlurRadius(8) item.setGraphicsEffect(effect) item.setZValue(1) item.setPos(i * 80, j * 80) self.m_scene.addItem(item) self.m_items.append(item) def animate(self): self.angle += (math.pi / 30) xs = 200 * math.sin(self.angle) - 40 + 25 ys = 200 * math.cos(self.angle) - 40 + 25 self.m_lightSource.setPos(xs, ys) for item in self.m_items: effect = item.graphicsEffect() delta = QtCore.QPointF(item.x() - xs, item.y() - ys) effect.setOffset(QtCore.QPointF(delta.toPoint() / 30)) dd = math.hypot(delta.x(), delta.y()) color = effect.color() color.setAlphaF(max(0.4, min(1 - dd / 200.0, 0.7))) effect.setColor(color) self.m_scene.update() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) lighting = Lighting() lighting.setWindowTitle("Lighting and Shadows") lighting.resize(640, 480) lighting.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/effects/README0000644000076500000240000000135712536324427020077 0ustar philstaff00000000000000PyQt supports a number of graphics effects including blurring, drop shadows, opacity and colorizing. These examples demonstrate these different effects. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/graphicsview/0000755000076500000240000000000012536324427020265 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/graphicsview/anchorlayout.py0000755000076500000240000001161512536324427023356 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui def createItem(minimum, preferred, maximum, name): w = QtGui.QGraphicsProxyWidget() w.setWidget(QtGui.QPushButton(name)) w.setMinimumSize(minimum) w.setPreferredSize(preferred) w.setMaximumSize(maximum) w.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) return w if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) scene = QtGui.QGraphicsScene() scene.setSceneRect(0, 0, 800, 480) minSize = QtCore.QSizeF(30, 100) prefSize = QtCore.QSizeF(210, 100) maxSize = QtCore.QSizeF(300, 100) a = createItem(minSize, prefSize, maxSize, "A") b = createItem(minSize, prefSize, maxSize, "B") c = createItem(minSize, prefSize, maxSize, "C") d = createItem(minSize, prefSize, maxSize, "D") e = createItem(minSize, prefSize, maxSize, "E") f = createItem(QtCore.QSizeF(30, 50), QtCore.QSizeF(150, 50), maxSize, "F") g = createItem(QtCore.QSizeF(30, 50), QtCore.QSizeF(30, 100), maxSize, "G") l = QtGui.QGraphicsAnchorLayout() l.setSpacing(0) w = QtGui.QGraphicsWidget(None, QtCore.Qt.Window) w.setPos(20, 20) w.setLayout(l) # Vertical. l.addAnchor(a, QtCore.Qt.AnchorTop, l, QtCore.Qt.AnchorTop) l.addAnchor(b, QtCore.Qt.AnchorTop, l, QtCore.Qt.AnchorTop) l.addAnchor(c, QtCore.Qt.AnchorTop, a, QtCore.Qt.AnchorBottom) l.addAnchor(c, QtCore.Qt.AnchorTop, b, QtCore.Qt.AnchorBottom) l.addAnchor(c, QtCore.Qt.AnchorBottom, d, QtCore.Qt.AnchorTop) l.addAnchor(c, QtCore.Qt.AnchorBottom, e, QtCore.Qt.AnchorTop) l.addAnchor(d, QtCore.Qt.AnchorBottom, l, QtCore.Qt.AnchorBottom) l.addAnchor(e, QtCore.Qt.AnchorBottom, l, QtCore.Qt.AnchorBottom) l.addAnchor(c, QtCore.Qt.AnchorTop, f, QtCore.Qt.AnchorTop) l.addAnchor(c, QtCore.Qt.AnchorVerticalCenter, f, QtCore.Qt.AnchorBottom) l.addAnchor(f, QtCore.Qt.AnchorBottom, g, QtCore.Qt.AnchorTop) l.addAnchor(c, QtCore.Qt.AnchorBottom, g, QtCore.Qt.AnchorBottom) # Horizontal. l.addAnchor(l, QtCore.Qt.AnchorLeft, a, QtCore.Qt.AnchorLeft) l.addAnchor(l, QtCore.Qt.AnchorLeft, d, QtCore.Qt.AnchorLeft) l.addAnchor(a, QtCore.Qt.AnchorRight, b, QtCore.Qt.AnchorLeft) l.addAnchor(a, QtCore.Qt.AnchorRight, c, QtCore.Qt.AnchorLeft) l.addAnchor(c, QtCore.Qt.AnchorRight, e, QtCore.Qt.AnchorLeft) l.addAnchor(b, QtCore.Qt.AnchorRight, l, QtCore.Qt.AnchorRight) l.addAnchor(e, QtCore.Qt.AnchorRight, l, QtCore.Qt.AnchorRight) l.addAnchor(d, QtCore.Qt.AnchorRight, e, QtCore.Qt.AnchorLeft) l.addAnchor(l, QtCore.Qt.AnchorLeft, f, QtCore.Qt.AnchorLeft) l.addAnchor(l, QtCore.Qt.AnchorLeft, g, QtCore.Qt.AnchorLeft) l.addAnchor(f, QtCore.Qt.AnchorRight, g, QtCore.Qt.AnchorRight) scene.addItem(w) scene.setBackgroundBrush(QtCore.Qt.darkGreen) view = QtGui.QGraphicsView(scene) view.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/graphicsview/collidingmice/0000755000076500000240000000000012536324427023067 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/graphicsview/collidingmice/collidingmice.py0000755000076500000240000002000612536324427026244 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import math from PyQt4 import QtCore, QtGui try: import mice_rc3 except ImportError: import mice_rc2 class Mouse(QtGui.QGraphicsItem): Pi = math.pi TwoPi = 2.0 * Pi # Create the bounding rectangle once. adjust = 0.5 BoundingRect = QtCore.QRectF(-20 - adjust, -22 - adjust, 40 + adjust, 83 + adjust) def __init__(self): super(Mouse, self).__init__() self.angle = 0.0 self.speed = 0.0 self.mouseEyeDirection = 0.0 self.color = QtGui.QColor(QtCore.qrand() % 256, QtCore.qrand() % 256, QtCore.qrand() % 256) self.rotate(QtCore.qrand() % (360 * 16)) # In the C++ version of this example, this class is also derived from # QObject in order to receive timer events. PyQt does not support # deriving from more than one wrapped class so we just create an # explicit timer instead. self.timer = QtCore.QTimer() self.timer.timeout.connect(self.timerEvent) self.timer.start(1000 / 33) @staticmethod def normalizeAngle(angle): while angle < 0: angle += Mouse.TwoPi while angle > Mouse.TwoPi: angle -= Mouse.TwoPi return angle def boundingRect(self): return Mouse.BoundingRect def shape(self): path = QtGui.QPainterPath() path.addRect(-10, -20, 20, 40) return path; def paint(self, painter, option, widget): # Body. painter.setBrush(self.color) painter.drawEllipse(-10, -20, 20, 40) # Eyes. painter.setBrush(QtCore.Qt.white) painter.drawEllipse(-10, -17, 8, 8) painter.drawEllipse(2, -17, 8, 8) # Nose. painter.setBrush(QtCore.Qt.black) painter.drawEllipse(QtCore.QRectF(-2, -22, 4, 4)) # Pupils. painter.drawEllipse(QtCore.QRectF(-8.0 + self.mouseEyeDirection, -17, 4, 4)) painter.drawEllipse(QtCore.QRectF(4.0 + self.mouseEyeDirection, -17, 4, 4)) # Ears. if self.scene().collidingItems(self): painter.setBrush(QtCore.Qt.red) else: painter.setBrush(QtCore.Qt.darkYellow) painter.drawEllipse(-17, -12, 16, 16) painter.drawEllipse(1, -12, 16, 16) # Tail. path = QtGui.QPainterPath(QtCore.QPointF(0, 20)) path.cubicTo(-5, 22, -5, 22, 0, 25) path.cubicTo(5, 27, 5, 32, 0, 30) path.cubicTo(-5, 32, -5, 42, 0, 35) painter.setBrush(QtCore.Qt.NoBrush) painter.drawPath(path) def timerEvent(self): # Don't move too far away. lineToCenter = QtCore.QLineF(QtCore.QPointF(0, 0), self.mapFromScene(0, 0)) if lineToCenter.length() > 150: angleToCenter = math.acos(lineToCenter.dx() / lineToCenter.length()) if lineToCenter.dy() < 0: angleToCenter = Mouse.TwoPi - angleToCenter; angleToCenter = Mouse.normalizeAngle((Mouse.Pi - angleToCenter) + Mouse.Pi / 2) if angleToCenter < Mouse.Pi and angleToCenter > Mouse.Pi / 4: # Rotate left. self.angle += [-0.25, 0.25][self.angle < -Mouse.Pi / 2] elif angleToCenter >= Mouse.Pi and angleToCenter < (Mouse.Pi + Mouse.Pi / 2 + Mouse.Pi / 4): # Rotate right. self.angle += [-0.25, 0.25][self.angle < Mouse.Pi / 2] elif math.sin(self.angle) < 0: self.angle += 0.25 elif math.sin(self.angle) > 0: self.angle -= 0.25 # Try not to crash with any other mice. dangerMice = self.scene().items(QtGui.QPolygonF([self.mapToScene(0, 0), self.mapToScene(-30, -50), self.mapToScene(30, -50)])) for item in dangerMice: if item is self: continue lineToMouse = QtCore.QLineF(QtCore.QPointF(0, 0), self.mapFromItem(item, 0, 0)) angleToMouse = math.acos(lineToMouse.dx() / lineToMouse.length()) if lineToMouse.dy() < 0: angleToMouse = Mouse.TwoPi - angleToMouse angleToMouse = Mouse.normalizeAngle((Mouse.Pi - angleToMouse) + Mouse.Pi / 2) if angleToMouse >= 0 and angleToMouse < Mouse.Pi / 2: # Rotate right. self.angle += 0.5 elif angleToMouse <= Mouse.TwoPi and angleToMouse > (Mouse.TwoPi - Mouse.Pi / 2): # Rotate left. self.angle -= 0.5 # Add some random movement. if len(dangerMice) > 1 and (QtCore.qrand() % 10) == 0: if QtCore.qrand() % 1: self.angle += (QtCore.qrand() % 100) / 500.0 else: self.angle -= (QtCore.qrand() % 100) / 500.0 self.speed += (-50 + QtCore.qrand() % 100) / 100.0 dx = math.sin(self.angle) * 10 self.mouseEyeDirection = [dx / 5, 0.0][QtCore.qAbs(dx / 5) < 1] self.rotate(dx) self.setPos(self.mapToParent(0, -(3 + math.sin(self.speed) * 3))) if __name__ == '__main__': import sys MouseCount = 7 app = QtGui.QApplication(sys.argv) QtCore.qsrand(QtCore.QTime(0,0,0).secsTo(QtCore.QTime.currentTime())) scene = QtGui.QGraphicsScene() scene.setSceneRect(-300, -300, 600, 600) scene.setItemIndexMethod(QtGui.QGraphicsScene.NoIndex) for i in range(MouseCount): mouse = Mouse() mouse.setPos(math.sin((i * 6.28) / MouseCount) * 200, math.cos((i * 6.28) / MouseCount) * 200) scene.addItem(mouse) view = QtGui.QGraphicsView(scene) view.setRenderHint(QtGui.QPainter.Antialiasing) view.setBackgroundBrush(QtGui.QBrush(QtGui.QPixmap(':/images/cheese.jpg'))) view.setCacheMode(QtGui.QGraphicsView.CacheBackground) view.setViewportUpdateMode(QtGui.QGraphicsView.BoundingRectViewportUpdate) view.setDragMode(QtGui.QGraphicsView.ScrollHandDrag) view.setWindowTitle("Colliding Mice") view.resize(400, 300) view.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/graphicsview/collidingmice/images/0000755000076500000240000000000012536324427024334 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/graphicsview/collidingmice/images/cheese.jpg0000644000076500000240000000572512536324427026303 0ustar philstaff00000000000000ÿØÿàJFIFHHÿîAdobed@ÿÛ„      ÿÀ^^ÿÝ ÿÄ¢  s!1AQa"q2‘¡±B#ÁRÑá3bð$r‚ñ%C4S’¢²csÂ5D'“£³6TdtÃÒâ&ƒ „”EF¤´VÓU(òãóÄÔäôeu…•¥µÅÕåõfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷8HXhxˆ˜¨¸ÈØèø)9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêúm!1AQa"q‘2¡±ðÁÑá#BRbrñ3$4C‚’S%¢c²ÂsÒ5âDƒT“ &6E'dtU7ò£³Ã()Óã󄔤´ÄÔäôeu…•¥µÅÕåõFVfv†–¦¶ÆÖæöGWgw‡—§·Ç×ç÷8HXhxˆ˜¨¸ÈØèø9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêúÿÚ ?ûAÓo¢‡Ç<7‰éÔéâk)n£rM ðÈ‚¥²AZ†úFù"7P¦cåâvù`ä•ÁHØt=F V¤š1`¤ìkã’ ¬I’Q­È‘·ê„4¯ÅŽûwÉlIb:¯ž<¿£Ìmîï+84ha£þU6~§§ïNŸ~eøžž/'‡zÿÑû?JíÔöÏ §¨Qy?Ö=°ˆq-Òš„j{d¼&aÆpJ‘Jt"˜øtŽ0UÔ‡nÛŒ ;@ÞÚ ˆšbJƒÄѨ|ù +|µ=ໞYâäÈbBÿ!%OßÇ,ˆÅÖý̼IŽTôk+[-:Ö+ e¶´€)þQ«îNç!–|g•À§šÝNÊ=NÂæÍ¶€PžÌ7ÊÄD½'«!#a…i¾\’ݽ;‹vJÕÆÿÛ˜Ù#,G„¹-€©Ï ·¨J/çŽÚ9îfqP!yôEI9|HËY²h>Ró'æšõKébÐIÓlQˆÒž«Ýœƒ×Àe>)ŸZr#†1çºqå_>y¢Öîõ‹‡¾µ”"L`R¬v÷ȆíÄ%ÈSé›I–EŠhÛœR…daЩfA ‹ØZ¨=5µ„ 1€{|ˆ34›jzïNMïí<™†¸5 ‘ZW·Ë5µŒ¬ k-©­ð9$.ãN„ø}H%A]ÈÔøø×#JÿÿÔûCÉ)Øðzz…zt ôÉÄð›Ô‹K­´}Ní ¿U”±fŽZ”ÿ`À~'›<ûÆ\'¸Ý|ý+Ò†ÄZ'è«`¾¤«xÊ(!ŒÛ“56ÄiñBbRÉ]"þò@jñrO¯4*³Ü¹øª±<@Ø|€ðrä–Be.e”ˆ ª@?>”Ê:3s1 Ü.ʵýXlõE!Üo°&§¬ z×åŠUÐöë¡} 4ðÚ¸ÄyªrRO]öOL<;Õ£‰ÿÕû8ÀÖ£®x]½B“G^„×¹Ä*€·]Ù¶5ÛÄâ(VH _‰ºøòDŒx‚6ªc¢€6##Í’Ÿ¨T|@úâ`–ê\ñ=ÎB’ºª*¤×ß TJT{cJ»wQ·l•*àkþKxd$ÛÔoô`WÿÖû=Q×–xSÔ/$q$liÓÙRnK‹}Q»³¡º†mÁb4ö­r2‘$&1âºf‡æhîª5;É®9 $2HÅ¢„Ҟ؀@«t¢9=âÔ¹†'‘x4ˆ®ÉàXTŒÈɵ*Ƈ®ô4Êì³RcÇzn{âÔL½‡\°´&жþq¯õ–”¯Ñ€Á"j«)$PŽ»ä¦V¦%#š’y)‘¥ÿ×û;ÐPÇ<*Þ¡PPûõÄ«¤U(A^JÀ†SЂ(AƃanöÑGéÃaF¯Ùgäƒè¥Oß™~.!¿þý¿$LõTS#3™$¶ÔÙ‹“'¾¬€¦…jFÕ4`½ÇÏä”5Á"ƒ¹é’Ç»0/8ùÂÇÊvB{ Ó\KQmj†!jeEz岘€óc—Ïòþsù¦æê–‘Ckk_†10»1©ÊŒæz·Œ1Ròoæ<úÄñXêð¤rÌBÅs*9”“JøŒÌA©5Ï«dа'¥wtã³Tdô–µíN™ŽÜÿÿÐû4ÊÛýÆxCÔ¶ŒAZ‘Ö§$‚¨O&@¯°Û¯øTo@r*´ÍU AÔø{âW§A×®ˆC¼m+- Fãl³c7Ë¿™¶7:šeˆ‚ÖÖ¡bDë@?‰9‹’w77 ÆK,ŠF›uðË,Ä0 [!‡Ë2YÜE…Ò}[.Òi½1!ñ#¾lqJñ‚]|ÅJ“~'Óú2¾­ÿÑû9-üNxCÔ0/2k^e°Ôôû- F‹QŠxÚ{¹¦vP[øþÖÕ©öÆy죌˫?µvx‘ =t=A"´>ã$Fì¹A¹p¶ pU vß׆Q€ì—râ4à ‡™yÃËku¨&«lÞµåw*àSìrYôüQãÇËöì«ÒQZF†„§«â‚”¨Úž,Àã2<7»q¡»'m®\E|˜ìÔO†CI£žLüÞÏö°É©ˆ”ÏÒŠâ´‚ºˆÃÿ7ÄŸ¦™¸ÍÁÃCo–ßo7w=U9ÓM©˜öÝOÿÒûy“§9/Ññîøôa>Ý^ÚêÜeÓL+È$ÔB|wäGß•œÚ~+ž;;ÝHú~‰G-}[{•'ŸP–)¾©d–Öá}麻ñïSÊ´ñ É㙜%áDF5½o*ëw¿¾€ b ÄI>idâÅá”§!ðÔeiÿÙPyQt-x11-gpl-4.11.4/examples/graphicsview/collidingmice/mice.qrc0000644000076500000240000000014112536324427024507 0ustar philstaff00000000000000 images/cheese.jpg PyQt-x11-gpl-4.11.4/examples/graphicsview/collidingmice/mice_rc2.py0000644000076500000240000003220112536324427025122 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:37:39 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x0b\xd5\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x02\x01\x00\x48\x00\ \x48\x00\x00\xff\xee\x00\x0e\x41\x64\x6f\x62\x65\x00\x64\x40\x00\ \x00\x00\x01\xff\xdb\x00\x84\x00\x02\x02\x02\x02\x02\x02\x02\x02\ \x02\x02\x03\x02\x02\x02\x03\x04\x03\x02\x02\x03\x04\x05\x04\x04\ \x04\x04\x04\x05\x06\x05\x05\x05\x05\x05\x05\x06\x06\x07\x07\x08\ \x07\x07\x06\x09\x09\x0a\x0a\x09\x09\x0c\x0c\x0c\x0c\x0c\x0c\x0c\ \x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x01\x03\x03\x03\x05\x04\x05\x09\ \x06\x06\x09\x0d\x0a\x09\x0a\x0d\x0f\x0e\x0e\x0e\x0e\x0f\x0f\x0c\ \x0c\x0c\x0c\x0c\x0f\x0f\x0c\x0c\x0c\x0c\x0c\x0c\x0f\x0c\x0c\x0c\ \x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\ \x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xff\xc0\x00\x11\x08\x00\x5e\ \x00\x5e\x03\x01\x11\x00\x02\x11\x01\x03\x11\x01\xff\xdd\x00\x04\ \x00\x0c\xff\xc4\x01\xa2\x00\x00\x00\x07\x01\x01\x01\x01\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x04\x05\x03\x02\x06\x01\x00\x07\x08\ \x09\x0a\x0b\x01\x00\x02\x02\x03\x01\x01\x01\x01\x01\x00\x00\x00\ \x00\x00\x00\x00\x01\x00\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\ \x10\x00\x02\x01\x03\x03\x02\x04\x02\x06\x07\x03\x04\x02\x06\x02\ \x73\x01\x02\x03\x11\x04\x00\x05\x21\x12\x31\x41\x51\x06\x13\x61\ \x22\x71\x81\x14\x32\x91\xa1\x07\x15\xb1\x42\x23\xc1\x52\xd1\xe1\ \x33\x16\x62\xf0\x24\x72\x82\xf1\x25\x43\x34\x53\x92\xa2\xb2\x63\ \x73\xc2\x35\x44\x27\x93\xa3\xb3\x36\x17\x54\x64\x74\xc3\xd2\xe2\ \x08\x26\x83\x09\x0a\x18\x19\x84\x94\x45\x46\xa4\xb4\x56\xd3\x55\ \x28\x1a\xf2\xe3\xf3\xc4\xd4\xe4\xf4\x65\x75\x85\x95\xa5\xb5\xc5\ \xd5\xe5\xf5\x66\x76\x86\x96\xa6\xb6\xc6\xd6\xe6\xf6\x37\x47\x57\ \x67\x77\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\x38\x48\x58\x68\x78\x88\ \x98\xa8\xb8\xc8\xd8\xe8\xf8\x29\x39\x49\x59\x69\x79\x89\x99\xa9\ \xb9\xc9\xd9\xe9\xf9\x2a\x3a\x4a\x5a\x6a\x7a\x8a\x9a\xaa\xba\xca\ \xda\xea\xfa\x11\x00\x02\x02\x01\x02\x03\x05\x05\x04\x05\x06\x04\ \x08\x03\x03\x6d\x01\x00\x02\x11\x03\x04\x21\x12\x31\x41\x05\x51\ \x13\x61\x22\x06\x71\x81\x91\x32\xa1\xb1\xf0\x14\xc1\xd1\xe1\x23\ \x42\x15\x52\x62\x72\xf1\x33\x24\x34\x43\x82\x16\x92\x53\x25\xa2\ \x63\xb2\xc2\x07\x73\xd2\x35\xe2\x44\x83\x17\x54\x93\x08\x09\x0a\ \x18\x19\x26\x36\x45\x1a\x27\x64\x74\x55\x37\xf2\xa3\xb3\xc3\x28\ \x29\xd3\xe3\xf3\x84\x94\xa4\xb4\xc4\xd4\xe4\xf4\x65\x75\x85\x95\ \xa5\xb5\xc5\xd5\xe5\xf5\x46\x56\x66\x76\x86\x96\xa6\xb6\xc6\xd6\ \xe6\xf6\x47\x57\x67\x77\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\x38\x48\ \x58\x68\x78\x88\x98\xa8\xb8\xc8\xd8\xe8\xf8\x39\x49\x59\x69\x79\ \x89\x99\xa9\xb9\xc9\xd9\xe9\xf9\x2a\x3a\x4a\x5a\x6a\x7a\x8a\x9a\ \xaa\xba\xca\xda\xea\xfa\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\ \x11\x00\x3f\x00\xfb\x41\xd3\x6f\xa2\x87\xc7\x3c\x37\x89\xe9\xd4\ \xe9\xe2\x6b\x90\x29\x6e\xa3\x72\x4d\x0d\x0f\x8f\xf0\xc8\x82\xa5\ \xb2\x41\x5a\x86\xfa\x46\xf9\x22\x37\x50\xa6\x63\xe5\xe2\x76\xf9\ \x60\xe4\x95\xc1\x48\xd8\x74\x3d\x46\x0b\x56\xa4\x9a\x18\x14\x31\ \x60\xa4\xec\x6b\xe3\x92\x1b\xa0\xac\x49\x92\x51\x1b\x02\xad\xc8\ \x91\xb7\xea\xc2\x84\x34\xaf\xc5\x8e\xfb\x77\xc9\x81\x6c\x49\x62\ \x3a\xaf\x9e\x3c\xbf\xa3\xcc\x6d\xee\xef\x2b\x38\x34\x68\x61\x1e\ \xa3\x03\xfe\x55\x36\x1f\x7e\x3c\x51\x09\x11\x94\x91\xfa\x47\x9a\ \xb4\x9d\x6e\xa9\x61\x75\xce\x50\x2a\x60\x70\x51\xe9\xec\x0f\x5f\ \xa3\x11\x38\xc8\xd2\x0c\x65\x16\x48\x25\x3c\x5b\x7f\x0c\x4c\x37\ \x5e\x2d\x9f\xff\xd0\xfb\x3a\xfb\x0a\xee\x4d\x6b\x4c\xf0\xb0\x1e\ \xa1\x6f\x2d\xfa\x6e\x71\x21\x34\xb8\x11\x5e\x9b\xe4\x50\xd3\x53\ \xa7\x8e\xe7\x25\x6a\xda\xd0\xee\x48\x03\xc7\x04\x95\x4e\x59\x12\ \x15\x2e\xce\x02\x81\x52\x7e\x59\x00\x2d\x2f\x9c\xbf\x36\xbc\xc7\ \xa8\x98\xa5\x5d\x1f\xce\x9a\x7e\x8f\x67\x14\x6c\xb7\x36\xf1\xd5\ \xef\x5d\xc8\x20\x08\xe8\x0f\x1a\xd7\xae\xc4\x65\xb8\xf2\x00\x6a\ \x89\xfb\x99\xc6\x16\x37\x67\x9f\x93\xcf\xa8\xdc\xf9\x2a\xda\xe2\ \xfe\x49\xa6\x9d\xee\x65\x58\xee\x2e\x09\x77\x68\xd4\x2d\x0d\x4e\ \xf5\xa9\x3d\x72\x73\x02\xb8\xbb\xda\xe5\xb4\xa9\x96\xf9\xa2\x6b\ \x8b\x2d\x12\xfa\xea\xdc\x11\x3d\x38\x44\x47\x50\x5b\x6a\xfd\x19\ \x5c\xe5\x51\xd9\x61\x1e\x29\x51\x7c\xdf\x17\x97\xda\xf2\x43\x35\ \xc2\x16\x66\x35\x24\xd4\xd0\x93\x95\x44\x97\x22\x42\x99\x5e\x9b\ \xa3\x5c\xe9\x77\x56\xd7\x56\xfc\x97\x83\x06\x53\x4e\x84\x65\x73\ \xca\x8e\x0b\x7b\xbf\xac\x46\x9e\x2f\x3d\x3d\xcc\x3e\xa7\xa7\xef\ \x4e\x9f\x7e\x65\xf8\x9e\x9e\x2f\x27\x13\x87\x7a\x7f\xff\xd1\xfb\ \x3f\x4a\xed\xd4\xf6\xcf\x0b\xa7\xa8\x51\x79\x15\x3f\xd6\x3d\xb0\ \x88\x71\x2d\xd2\x81\x9a\x84\x16\x6a\x7b\x64\xbc\x26\x06\x61\xc6\ \x70\x4a\x91\x4a\x74\x22\x98\xf8\x74\x8e\x30\x55\xd4\x87\x07\x6e\ \xdb\x8c\x8f\x0b\x3b\x40\xde\xda\x0b\x88\x9a\x16\x62\x12\x4a\x83\ \xc4\xd1\xa8\x7c\x0e\xf9\x20\x05\xee\xac\x15\xbf\x2b\x7c\xb5\x3d\ \xe0\xbb\x9e\x59\x1b\xe2\xe4\xc8\x62\x42\xff\x00\x21\x25\x4f\xdf\ \xc7\x2c\x88\xc5\xd6\xfd\xcc\xbc\x49\x8e\x54\xf4\x6b\x2b\x5b\x2d\ \x3a\xd6\x1b\x2b\x0b\x65\xb6\xb4\x80\x11\x1c\x29\xfe\x51\xab\x13\ \xee\x4e\xe7\x21\x96\x7c\x67\x95\x00\xc0\x0e\xa7\x9a\xdd\x4e\xca\ \x3d\x4e\xc2\xe6\xcd\xb6\x12\x80\x50\x9e\xcc\x37\x15\xca\xc4\x44\ \xbd\x27\xab\x21\x23\x13\x61\x85\x69\xbe\x5c\x92\xdd\xbd\x3b\x8b\ \x76\x4a\x1d\xd5\xc6\xff\x00\xdb\x98\xd9\x23\x2c\x47\x84\xb9\x3c\ \x42\x7b\xb2\xdf\xd0\x29\x38\x58\x91\x15\x55\x57\x76\x3f\x65\x47\ \x72\x4f\xb6\x47\x06\x9a\x59\x32\xd0\x3b\x75\x3d\xc1\xae\x79\xc4\ \x42\x61\xe9\xdb\x95\x16\xf4\xff\x00\x47\x54\xf4\xf9\x53\xf6\x69\ \xc7\x95\x3f\x1c\xd8\xdc\x38\xab\xf8\x7f\x43\x8b\x52\xab\xea\xff\ \x00\xff\xd2\xfb\x3e\x0f\x2d\x80\xa9\xcf\x0a\xb7\xa8\x4a\x2f\xe7\ \x8e\xda\x39\xee\x66\x71\x1c\x50\x21\x79\x1c\xf4\x01\x45\x49\x39\ \x7c\x48\x02\xcb\x59\xb2\x68\x3e\x52\xf3\x27\xe6\x7f\x9a\xf5\x4b\ \xe9\x62\xd0\x49\xd3\x6c\x51\x88\x8d\xd2\x9e\xab\x81\xdd\x9c\x83\ \xd7\xc0\x65\x3e\x29\x9f\x5a\x72\x23\x86\x31\xe7\xba\x71\xe5\x5f\ \x3e\x79\xa2\xd6\xee\x08\xf5\x8b\x87\xbe\xb5\x94\x81\x22\x4c\x01\ \x60\x0f\x52\xac\x05\x76\xf7\xc8\x1c\x86\x06\xed\x12\xc4\x25\xc8\ \x53\xe9\x9b\x49\x96\x45\x8a\x68\xdb\x9c\x52\x85\x64\x61\xd0\xa9\ \x1b\x66\x41\x20\x8b\x0e\x3c\x6c\x1a\x4c\x4d\x08\x3b\x74\x39\x53\ \x6a\xd0\xb4\xad\x0d\x3d\xb0\x5a\xb7\xb8\x20\x56\x83\x1b\x55\xe2\ \x4e\x3d\x45\x6a\x30\x91\x6a\xa1\x15\xed\xd4\x44\x8a\x2c\xb1\x8f\ \xb0\x8e\xa1\xa9\xf2\xae\xf9\x31\x9a\x63\x6d\x8f\xbc\x02\xd6\x60\ \x3d\xcb\xa4\xbc\xbc\xb9\xf8\x5d\xb8\x45\xfc\x8a\x02\x83\xf3\x00\ \x63\x3c\xb2\x90\xa3\xb0\xee\x00\x01\xf6\x2c\x71\x81\xc9\xc6\x36\ \xe2\x14\x1d\x89\xf8\xbe\xef\xeb\x95\x58\x6c\xa7\xff\xd3\xfb\x3c\ \xa4\x0e\x9b\x30\xf0\xcf\x07\xb7\xa9\x48\xfc\xc9\x66\xf7\xbe\x5f\ \xd6\xe0\x88\x16\x96\x58\x1b\x8a\x8e\xa4\x0a\x13\xf8\x64\xc8\x33\ \x89\x01\x61\xb4\xc1\x2f\x9e\x34\x6f\x29\x2b\x86\x01\x0a\x90\x76\ \x04\x6f\x53\x98\xd0\x90\xe4\x79\xb9\x99\x3c\x99\xef\xf8\x20\x08\ \x22\x67\x00\x48\xa7\x96\xc3\x31\x67\x9a\xe7\xc3\xd1\x63\x10\x05\ \xbd\x3f\x46\xb2\x7b\x4d\x26\xc6\x19\x3e\xd8\x5a\xa8\x3d\x81\x35\ \x19\xb5\x84\x0c\x31\x80\x7b\x9d\x7c\x88\x33\x34\x9b\x00\x6a\x7a\ \xef\x4e\x4d\xef\xed\x90\x3c\x99\x86\xb8\x35\x09\x00\x91\x5a\x57\ \xb7\xcb\x10\x0f\x35\xb5\x8c\xac\x0d\x6b\x81\x2d\xa9\xad\x01\xf0\ \x39\x24\x2e\xe3\x4e\x84\x0f\x0e\xf8\x15\x7d\x48\x1e\x07\x25\x41\ \x5d\xc8\xd4\xf8\xf8\xd7\x23\x4a\xff\x00\xff\xd4\xfb\x43\xc9\x29\ \xd8\x1c\xf0\x7a\x7a\x85\x1e\x7f\x1f\x7a\x74\x20\xf4\xc9\xc4\xf0\ \x9b\x1c\xd4\x8b\x4b\xad\xb4\x7d\x14\x4e\xed\x0c\xbf\x55\x94\xb1\ \x66\x8e\x5a\x94\xff\x00\x60\xc0\x7e\x07\x27\x9b\x06\x3c\xfb\xc6\ \x5c\x27\xb8\xdd\x7c\x08\xfd\x2b\x1c\xd2\x86\xc4\x5a\x7f\x27\xe8\ \xab\x60\xbe\xa4\xab\x78\xca\x28\x21\x8c\x1a\x13\xdb\x93\x35\x36\ \xc4\x69\xf1\x42\x62\x52\x90\xc9\x5d\x22\x0e\xfe\xf2\x40\x6a\xf1\ \x72\x4f\x90\xaf\x34\x2a\xb3\xdc\xb9\x9d\xf8\xaa\xb1\x3c\x40\xd8\ \x7c\x80\xf0\x18\x72\xe4\x96\x42\x65\x2e\x65\x94\x00\x88\xa0\xaa\ \x40\x3f\x3e\x94\xca\x3a\x33\x73\x31\x20\x06\xdc\x2e\xca\xb5\xfd\ \x58\x6c\xf5\x45\x21\xdc\x6f\xb0\x26\xa7\x14\xac\x0a\x7a\xd7\xe5\ \x8a\x55\x14\x13\xd0\xf6\xeb\x8d\xa1\x7d\x09\x34\x1d\xf0\xda\xb8\ \xc4\x79\xaa\x72\x52\x4f\x5d\xf6\x1f\x4f\x4c\x3c\x3b\xd5\xa3\x89\ \xff\xd5\xfb\x38\xc0\xd6\xa3\xae\x78\x5d\xbd\x42\x93\x47\x5e\x84\ \xd7\xb9\xc4\x2a\x80\xb7\x5d\xd9\xb6\x35\xdb\xc4\xe2\x00\x28\x56\ \x48\xa0\x5f\x89\xba\xf8\x9d\xf2\x44\x1e\x8c\x78\x82\x36\xaa\x63\ \xa2\x80\x05\x36\x23\x23\xcd\x92\x9f\xa8\x54\x7c\x40\x9d\xfa\xe2\ \x60\x96\xea\x5c\xf1\x14\x1f\x3d\xce\x42\x92\xba\xaa\x2a\xa4\xd7\ \xdf\x0f\x0a\x16\x54\x03\x4a\x54\x7b\x63\x4a\xbb\x9d\x77\x51\xb7\ \x6c\x95\x2a\xe0\x6b\xfe\x4b\x78\x64\x24\x15\xdb\xd4\x6f\xf4\x60\ \x57\xff\xd6\xfb\x3d\x51\xd7\x7f\x96\x78\x53\xd4\x2f\x24\x71\x24\ \x6c\x69\xd3\x01\xd9\x52\x8d\x6e\x4b\x8b\x7d\x1b\x51\xbb\xb3\xa1\ \xba\x86\x12\x6d\xc1\x1b\x06\x62\x00\x34\xf6\xad\x72\x32\x91\x11\ \x24\x26\x31\x12\x90\x05\xe2\xba\x66\x87\xe6\x68\xee\x06\xaa\x35\ \x3b\xc9\xae\x39\x09\x24\x32\x48\xc5\x18\x1e\xa2\x84\xd2\x9e\xd8\ \x80\x40\x07\xab\x74\xa2\x39\x3d\xe2\xd4\xb9\x86\x27\x91\x78\x34\ \x88\xae\xc9\xe0\x58\x54\x8c\xc8\xc9\xb5\x17\x16\x2a\xc6\x87\xae\ \xf4\x34\xca\xec\xb3\x52\x63\xc7\x7a\x6e\x7b\xe2\x16\xd4\x4c\xbd\ \x87\x5c\xb0\x06\x04\xb4\x26\x00\xd0\xb6\xfe\x03\x1e\x04\x71\xaf\ \xf5\x96\x94\xaf\xd1\x80\xc1\x22\x6a\xab\x29\x24\x50\x8e\xbb\xe4\ \x08\xa6\x56\xa6\x25\x23\x9a\x92\x79\x12\x29\x91\xa5\x7f\xff\xd7\ \xfb\x3b\xd0\x50\x1a\x0f\xc7\x3c\x2a\xde\xa1\x50\x50\xfb\xf5\xc4\ \xab\xa4\x55\x28\x41\x5e\x4a\xc0\x86\x53\xd0\x82\x28\x41\xc6\x04\ \x83\x61\x05\x0f\x6e\xf6\xd1\x47\xe9\xc3\x61\x46\xaf\xd9\x67\xe4\ \x83\xe8\xa5\x4f\xdf\x99\x7e\x2e\x21\xbf\x0e\xfe\xfd\xbf\x1f\x16\ \x24\x4c\xf5\x54\x53\x23\x33\x99\x00\x24\xb6\xd4\x1e\xd9\x8b\x93\ \x27\x19\xbe\xac\x80\xa6\x85\x6a\x46\xd5\x34\x60\xbd\xc7\xcf\x01\ \xe4\x94\x35\xc1\x22\x83\xb9\xe9\x92\xc7\xbb\x19\x30\x2f\x38\xf9\ \xc2\xc7\xca\x76\x42\x7b\xa0\xd3\x5c\x4b\x51\x6d\x6a\x86\x8d\x21\ \x1d\x6a\x7f\x65\x45\x7a\xe5\xb2\x98\x80\xf3\x63\x08\x19\x97\xcf\ \xf2\xfe\x73\xf9\xa6\xe6\xea\x96\x91\x43\x6b\x6b\x5f\x86\x31\x0f\ \x30\x07\xbb\x31\xa9\xca\x8c\xe6\x7a\xb7\x8c\x31\x0f\x52\xf2\x6f\ \xe6\x3c\xfa\xc4\xf1\x58\xea\xf0\xa4\x72\xcc\x42\xc5\x73\x10\x2a\ \x39\x1e\x81\x94\x93\x4a\xf8\x8c\x11\xcc\x41\xa9\x35\xcf\x10\xab\ \x0f\x64\x8d\x8a\xb0\x27\xa5\x77\x19\x74\xe3\xb3\x54\x64\x8d\xf4\ \x96\xb5\xed\x4e\x99\x8e\xdc\xff\x00\xff\xd0\xfb\x34\xca\xdb\x1e\ \xfd\xc6\x78\x43\xd4\xb6\x8c\x41\x5a\x91\xd6\xa7\x24\x82\xa8\x4f\ \x26\x00\x12\x40\xaf\xb0\xdb\x02\xaf\xf8\x54\x6f\x40\x72\x2a\xb4\ \x02\xcd\x55\x0d\x41\xd4\xf8\x7b\xe2\x02\x57\x15\xa7\x41\xd7\xae\ \x1e\x88\x43\xbc\x6d\x2b\x2d\x0d\x46\xe3\x6c\xb3\x19\x63\x37\xcb\ \xbf\x99\xb6\x37\x3a\x8f\x9a\x65\x88\x82\xd6\xd6\xa1\x62\x44\xeb\ \x40\x00\x3f\x89\x39\x8b\x92\x77\x37\x37\x0c\x00\xc6\x12\x4b\x1f\ \x2c\x8a\x46\x1a\x1d\x9b\x75\xf0\xcb\x2c\xc4\x30\x20\x5b\x21\x87\ \xcb\x32\x59\xdc\x45\x3c\x51\xb2\x0d\x89\xa7\x6a\x66\x2c\xf3\x71\ \x36\x08\x3e\x85\xd2\x7d\x5b\x8d\x2e\xd2\x69\x7f\xbd\x31\x81\x21\ \xf1\x23\xbe\x6c\x71\x4a\xf1\x82\x5d\x7c\xc5\x4a\x93\x7e\x27\xd3\ \xfa\x32\xbe\xad\x8f\xff\xd1\xfb\x39\x2d\x06\xfc\x4e\x78\x43\xd4\ \x30\x2f\x32\x6b\x5e\x65\xb0\xd4\xf4\xfb\x2d\x0b\x46\x8b\x51\x8a\ \x78\xda\x7b\xb9\xa6\x76\x50\x15\x5b\x8f\x08\xf8\xfe\xd6\xd5\xa9\ \xf6\xc6\x79\x04\x06\xec\xa3\x8c\xcb\xab\x3f\xb5\x76\x78\x91\x9d\ \x0a\x3d\x01\x74\x3d\x41\x22\xb4\x3e\xe3\x24\x46\xec\x02\xb9\x41\ \xb9\x1d\x70\x14\xb6\xa0\x70\x55\x0c\x76\xdf\x7f\xd7\x86\x90\xef\ \x87\xa7\x8f\x51\x80\xec\x97\x72\xe2\x00\x34\xc3\x19\x20\x87\x99\ \x79\xc3\xcb\x6b\x75\xa8\x26\xab\x14\x6c\xde\xb5\x04\xe5\x77\x2a\ \xe0\x01\x53\xec\x72\x59\xf4\xfc\x51\xe3\x8f\xc7\xcb\xf6\x16\xec\ \x19\xab\xd2\x51\x5a\x46\x86\x84\xa7\xab\x0e\xe2\x82\x94\xa8\xda\ \x9e\x1f\x2c\xc0\xe3\x32\x3c\x37\xbb\x71\xa1\xbb\x27\x6d\x01\xae\ \x5c\x45\x14\x7c\x98\xec\x06\xd4\x1f\x4f\x86\x43\x49\xa3\x9e\x4c\ \xfc\x11\xde\xcf\xf6\xb0\xc9\xa9\x88\x8d\x94\xcf\xd2\x8a\x08\xe2\ \xb4\x82\x8f\x1d\xba\x88\xc3\xff\x00\x37\x11\xc4\x9f\xa6\x99\xb8\ \xcd\xc1\x13\xc3\x0e\x43\x6f\x96\xdf\x6f\x37\x06\x16\x77\x3d\x55\ \x39\x1a\xd3\x8f\x4d\xa9\x98\xf6\xdd\x4f\xff\xd2\xfb\x3c\x69\xc8\ \xf5\x23\xbe\x78\x4e\xcf\x50\xd0\xe4\x5c\x7a\x5e\xa2\xb5\x0e\xc9\ \xe1\xf4\x54\xe4\xa3\x7d\x11\x2a\xea\xbd\x00\xe3\x50\x41\xf6\xc8\ \xa5\x78\xe7\xe1\x51\xf4\x62\x50\xb8\xd6\x83\xae\x05\x51\x25\xb9\ \x8a\x83\xf3\xed\x85\x2b\x8f\x2a\x0c\x21\x0e\x53\x74\x18\x9b\x55\ \xe4\xc3\xed\x03\x4e\x05\x7b\xf2\xe5\xb5\x3e\x79\x93\xa7\x39\x2f\ \xd1\xf1\xee\xf8\xf4\x61\x3e\x1a\xdd\x5e\xda\xea\xdc\x90\x65\xd3\ \x14\x4c\x2b\xc8\x24\xd4\x42\x7c\x77\xe4\x47\xdf\x95\x9c\xda\x7e\ \x2b\x9e\x3b\x3b\xdd\x48\x81\xfa\x7e\xc2\x89\x47\x2d\x7d\x5b\x7b\ \x95\x27\x9f\x50\x96\x29\xbe\xa9\x64\x96\xd6\xe1\x7f\x7d\xe9\xba\ \xbb\xf1\xef\x53\xca\xb4\xf1\xa0\xc9\xe3\x99\x9c\x25\xe1\x44\x46\ \x35\xbd\x6f\x2a\xeb\x77\xbf\xbe\x80\x0d\x62\x20\x11\xc4\x49\x3e\ \x69\x64\x03\xe2\x1c\x8f\xc5\xe1\x94\x1a\xa7\x21\x19\xf0\xd4\x65\ \x69\x7f\xff\xd9\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0a\ \x0c\x9d\x6c\x07\ \x00\x63\ \x00\x68\x00\x65\x00\x65\x00\x73\x00\x65\x00\x2e\x00\x6a\x00\x70\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/graphicsview/collidingmice/mice_rc3.py0000644000076500000240000003220412536324427025126 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:37:39 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x0b\xd5\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x02\x01\x00\x48\x00\ \x48\x00\x00\xff\xee\x00\x0e\x41\x64\x6f\x62\x65\x00\x64\x40\x00\ \x00\x00\x01\xff\xdb\x00\x84\x00\x02\x02\x02\x02\x02\x02\x02\x02\ \x02\x02\x03\x02\x02\x02\x03\x04\x03\x02\x02\x03\x04\x05\x04\x04\ \x04\x04\x04\x05\x06\x05\x05\x05\x05\x05\x05\x06\x06\x07\x07\x08\ \x07\x07\x06\x09\x09\x0a\x0a\x09\x09\x0c\x0c\x0c\x0c\x0c\x0c\x0c\ \x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x01\x03\x03\x03\x05\x04\x05\x09\ \x06\x06\x09\x0d\x0a\x09\x0a\x0d\x0f\x0e\x0e\x0e\x0e\x0f\x0f\x0c\ \x0c\x0c\x0c\x0c\x0f\x0f\x0c\x0c\x0c\x0c\x0c\x0c\x0f\x0c\x0c\x0c\ \x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\ \x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xff\xc0\x00\x11\x08\x00\x5e\ \x00\x5e\x03\x01\x11\x00\x02\x11\x01\x03\x11\x01\xff\xdd\x00\x04\ \x00\x0c\xff\xc4\x01\xa2\x00\x00\x00\x07\x01\x01\x01\x01\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x04\x05\x03\x02\x06\x01\x00\x07\x08\ \x09\x0a\x0b\x01\x00\x02\x02\x03\x01\x01\x01\x01\x01\x00\x00\x00\ \x00\x00\x00\x00\x01\x00\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\ \x10\x00\x02\x01\x03\x03\x02\x04\x02\x06\x07\x03\x04\x02\x06\x02\ \x73\x01\x02\x03\x11\x04\x00\x05\x21\x12\x31\x41\x51\x06\x13\x61\ \x22\x71\x81\x14\x32\x91\xa1\x07\x15\xb1\x42\x23\xc1\x52\xd1\xe1\ \x33\x16\x62\xf0\x24\x72\x82\xf1\x25\x43\x34\x53\x92\xa2\xb2\x63\ \x73\xc2\x35\x44\x27\x93\xa3\xb3\x36\x17\x54\x64\x74\xc3\xd2\xe2\ \x08\x26\x83\x09\x0a\x18\x19\x84\x94\x45\x46\xa4\xb4\x56\xd3\x55\ \x28\x1a\xf2\xe3\xf3\xc4\xd4\xe4\xf4\x65\x75\x85\x95\xa5\xb5\xc5\ \xd5\xe5\xf5\x66\x76\x86\x96\xa6\xb6\xc6\xd6\xe6\xf6\x37\x47\x57\ \x67\x77\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\x38\x48\x58\x68\x78\x88\ \x98\xa8\xb8\xc8\xd8\xe8\xf8\x29\x39\x49\x59\x69\x79\x89\x99\xa9\ \xb9\xc9\xd9\xe9\xf9\x2a\x3a\x4a\x5a\x6a\x7a\x8a\x9a\xaa\xba\xca\ \xda\xea\xfa\x11\x00\x02\x02\x01\x02\x03\x05\x05\x04\x05\x06\x04\ \x08\x03\x03\x6d\x01\x00\x02\x11\x03\x04\x21\x12\x31\x41\x05\x51\ \x13\x61\x22\x06\x71\x81\x91\x32\xa1\xb1\xf0\x14\xc1\xd1\xe1\x23\ \x42\x15\x52\x62\x72\xf1\x33\x24\x34\x43\x82\x16\x92\x53\x25\xa2\ \x63\xb2\xc2\x07\x73\xd2\x35\xe2\x44\x83\x17\x54\x93\x08\x09\x0a\ \x18\x19\x26\x36\x45\x1a\x27\x64\x74\x55\x37\xf2\xa3\xb3\xc3\x28\ \x29\xd3\xe3\xf3\x84\x94\xa4\xb4\xc4\xd4\xe4\xf4\x65\x75\x85\x95\ \xa5\xb5\xc5\xd5\xe5\xf5\x46\x56\x66\x76\x86\x96\xa6\xb6\xc6\xd6\ \xe6\xf6\x47\x57\x67\x77\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\x38\x48\ \x58\x68\x78\x88\x98\xa8\xb8\xc8\xd8\xe8\xf8\x39\x49\x59\x69\x79\ \x89\x99\xa9\xb9\xc9\xd9\xe9\xf9\x2a\x3a\x4a\x5a\x6a\x7a\x8a\x9a\ \xaa\xba\xca\xda\xea\xfa\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\ \x11\x00\x3f\x00\xfb\x41\xd3\x6f\xa2\x87\xc7\x3c\x37\x89\xe9\xd4\ \xe9\xe2\x6b\x90\x29\x6e\xa3\x72\x4d\x0d\x0f\x8f\xf0\xc8\x82\xa5\ \xb2\x41\x5a\x86\xfa\x46\xf9\x22\x37\x50\xa6\x63\xe5\xe2\x76\xf9\ \x60\xe4\x95\xc1\x48\xd8\x74\x3d\x46\x0b\x56\xa4\x9a\x18\x14\x31\ \x60\xa4\xec\x6b\xe3\x92\x1b\xa0\xac\x49\x92\x51\x1b\x02\xad\xc8\ \x91\xb7\xea\xc2\x84\x34\xaf\xc5\x8e\xfb\x77\xc9\x81\x6c\x49\x62\ \x3a\xaf\x9e\x3c\xbf\xa3\xcc\x6d\xee\xef\x2b\x38\x34\x68\x61\x1e\ \xa3\x03\xfe\x55\x36\x1f\x7e\x3c\x51\x09\x11\x94\x91\xfa\x47\x9a\ \xb4\x9d\x6e\xa9\x61\x75\xce\x50\x2a\x60\x70\x51\xe9\xec\x0f\x5f\ \xa3\x11\x38\xc8\xd2\x0c\x65\x16\x48\x25\x3c\x5b\x7f\x0c\x4c\x37\ \x5e\x2d\x9f\xff\xd0\xfb\x3a\xfb\x0a\xee\x4d\x6b\x4c\xf0\xb0\x1e\ \xa1\x6f\x2d\xfa\x6e\x71\x21\x34\xb8\x11\x5e\x9b\xe4\x50\xd3\x53\ \xa7\x8e\xe7\x25\x6a\xda\xd0\xee\x48\x03\xc7\x04\x95\x4e\x59\x12\ \x15\x2e\xce\x02\x81\x52\x7e\x59\x00\x2d\x2f\x9c\xbf\x36\xbc\xc7\ \xa8\x98\xa5\x5d\x1f\xce\x9a\x7e\x8f\x67\x14\x6c\xb7\x36\xf1\xd5\ \xef\x5d\xc8\x20\x08\xe8\x0f\x1a\xd7\xae\xc4\x65\xb8\xf2\x00\x6a\ \x89\xfb\x99\xc6\x16\x37\x67\x9f\x93\xcf\xa8\xdc\xf9\x2a\xda\xe2\ \xfe\x49\xa6\x9d\xee\x65\x58\xee\x2e\x09\x77\x68\xd4\x2d\x0d\x4e\ \xf5\xa9\x3d\x72\x73\x02\xb8\xbb\xda\xe5\xb4\xa9\x96\xf9\xa2\x6b\ \x8b\x2d\x12\xfa\xea\xdc\x11\x3d\x38\x44\x47\x50\x5b\x6a\xfd\x19\ \x5c\xe5\x51\xd9\x61\x1e\x29\x51\x7c\xdf\x17\x97\xda\xf2\x43\x35\ \xc2\x16\x66\x35\x24\xd4\xd0\x93\x95\x44\x97\x22\x42\x99\x5e\x9b\ \xa3\x5c\xe9\x77\x56\xd7\x56\xfc\x97\x83\x06\x53\x4e\x84\x65\x73\ \xca\x8e\x0b\x7b\xbf\xac\x46\x9e\x2f\x3d\x3d\xcc\x3e\xa7\xa7\xef\ \x4e\x9f\x7e\x65\xf8\x9e\x9e\x2f\x27\x13\x87\x7a\x7f\xff\xd1\xfb\ \x3f\x4a\xed\xd4\xf6\xcf\x0b\xa7\xa8\x51\x79\x15\x3f\xd6\x3d\xb0\ \x88\x71\x2d\xd2\x81\x9a\x84\x16\x6a\x7b\x64\xbc\x26\x06\x61\xc6\ \x70\x4a\x91\x4a\x74\x22\x98\xf8\x74\x8e\x30\x55\xd4\x87\x07\x6e\ \xdb\x8c\x8f\x0b\x3b\x40\xde\xda\x0b\x88\x9a\x16\x62\x12\x4a\x83\ \xc4\xd1\xa8\x7c\x0e\xf9\x20\x05\xee\xac\x15\xbf\x2b\x7c\xb5\x3d\ \xe0\xbb\x9e\x59\x1b\xe2\xe4\xc8\x62\x42\xff\x00\x21\x25\x4f\xdf\ \xc7\x2c\x88\xc5\xd6\xfd\xcc\xbc\x49\x8e\x54\xf4\x6b\x2b\x5b\x2d\ \x3a\xd6\x1b\x2b\x0b\x65\xb6\xb4\x80\x11\x1c\x29\xfe\x51\xab\x13\ \xee\x4e\xe7\x21\x96\x7c\x67\x95\x00\xc0\x0e\xa7\x9a\xdd\x4e\xca\ \x3d\x4e\xc2\xe6\xcd\xb6\x12\x80\x50\x9e\xcc\x37\x15\xca\xc4\x44\ \xbd\x27\xab\x21\x23\x13\x61\x85\x69\xbe\x5c\x92\xdd\xbd\x3b\x8b\ \x76\x4a\x1d\xd5\xc6\xff\x00\xdb\x98\xd9\x23\x2c\x47\x84\xb9\x3c\ \x42\x7b\xb2\xdf\xd0\x29\x38\x58\x91\x15\x55\x57\x76\x3f\x65\x47\ \x72\x4f\xb6\x47\x06\x9a\x59\x32\xd0\x3b\x75\x3d\xc1\xae\x79\xc4\ \x42\x61\xe9\xdb\x95\x16\xf4\xff\x00\x47\x54\xf4\xf9\x53\xf6\x69\ \xc7\x95\x3f\x1c\xd8\xdc\x38\xab\xf8\x7f\x43\x8b\x52\xab\xea\xff\ \x00\xff\xd2\xfb\x3e\x0f\x2d\x80\xa9\xcf\x0a\xb7\xa8\x4a\x2f\xe7\ \x8e\xda\x39\xee\x66\x71\x1c\x50\x21\x79\x1c\xf4\x01\x45\x49\x39\ \x7c\x48\x02\xcb\x59\xb2\x68\x3e\x52\xf3\x27\xe6\x7f\x9a\xf5\x4b\ \xe9\x62\xd0\x49\xd3\x6c\x51\x88\x8d\xd2\x9e\xab\x81\xdd\x9c\x83\ \xd7\xc0\x65\x3e\x29\x9f\x5a\x72\x23\x86\x31\xe7\xba\x71\xe5\x5f\ \x3e\x79\xa2\xd6\xee\x08\xf5\x8b\x87\xbe\xb5\x94\x81\x22\x4c\x01\ \x60\x0f\x52\xac\x05\x76\xf7\xc8\x1c\x86\x06\xed\x12\xc4\x25\xc8\ \x53\xe9\x9b\x49\x96\x45\x8a\x68\xdb\x9c\x52\x85\x64\x61\xd0\xa9\ \x1b\x66\x41\x20\x8b\x0e\x3c\x6c\x1a\x4c\x4d\x08\x3b\x74\x39\x53\ \x6a\xd0\xb4\xad\x0d\x3d\xb0\x5a\xb7\xb8\x20\x56\x83\x1b\x55\xe2\ \x4e\x3d\x45\x6a\x30\x91\x6a\xa1\x15\xed\xd4\x44\x8a\x2c\xb1\x8f\ \xb0\x8e\xa1\xa9\xf2\xae\xf9\x31\x9a\x63\x6d\x8f\xbc\x02\xd6\x60\ \x3d\xcb\xa4\xbc\xbc\xb9\xf8\x5d\xb8\x45\xfc\x8a\x02\x83\xf3\x00\ \x63\x3c\xb2\x90\xa3\xb0\xee\x00\x01\xf6\x2c\x71\x81\xc9\xc6\x36\ \xe2\x14\x1d\x89\xf8\xbe\xef\xeb\x95\x58\x6c\xa7\xff\xd3\xfb\x3c\ \xa4\x0e\x9b\x30\xf0\xcf\x07\xb7\xa9\x48\xfc\xc9\x66\xf7\xbe\x5f\ \xd6\xe0\x88\x16\x96\x58\x1b\x8a\x8e\xa4\x0a\x13\xf8\x64\xc8\x33\ \x89\x01\x61\xb4\xc1\x2f\x9e\x34\x6f\x29\x2b\x86\x01\x0a\x90\x76\ \x04\x6f\x53\x98\xd0\x90\xe4\x79\xb9\x99\x3c\x99\xef\xf8\x20\x08\ \x22\x67\x00\x48\xa7\x96\xc3\x31\x67\x9a\xe7\xc3\xd1\x63\x10\x05\ \xbd\x3f\x46\xb2\x7b\x4d\x26\xc6\x19\x3e\xd8\x5a\xa8\x3d\x81\x35\ \x19\xb5\x84\x0c\x31\x80\x7b\x9d\x7c\x88\x33\x34\x9b\x00\x6a\x7a\ \xef\x4e\x4d\xef\xed\x90\x3c\x99\x86\xb8\x35\x09\x00\x91\x5a\x57\ \xb7\xcb\x10\x0f\x35\xb5\x8c\xac\x0d\x6b\x81\x2d\xa9\xad\x01\xf0\ \x39\x24\x2e\xe3\x4e\x84\x0f\x0e\xf8\x15\x7d\x48\x1e\x07\x25\x41\ \x5d\xc8\xd4\xf8\xf8\xd7\x23\x4a\xff\x00\xff\xd4\xfb\x43\xc9\x29\ \xd8\x1c\xf0\x7a\x7a\x85\x1e\x7f\x1f\x7a\x74\x20\xf4\xc9\xc4\xf0\ \x9b\x1c\xd4\x8b\x4b\xad\xb4\x7d\x14\x4e\xed\x0c\xbf\x55\x94\xb1\ \x66\x8e\x5a\x94\xff\x00\x60\xc0\x7e\x07\x27\x9b\x06\x3c\xfb\xc6\ \x5c\x27\xb8\xdd\x7c\x08\xfd\x2b\x1c\xd2\x86\xc4\x5a\x7f\x27\xe8\ \xab\x60\xbe\xa4\xab\x78\xca\x28\x21\x8c\x1a\x13\xdb\x93\x35\x36\ \xc4\x69\xf1\x42\x62\x52\x90\xc9\x5d\x22\x0e\xfe\xf2\x40\x6a\xf1\ \x72\x4f\x90\xaf\x34\x2a\xb3\xdc\xb9\x9d\xf8\xaa\xb1\x3c\x40\xd8\ \x7c\x80\xf0\x18\x72\xe4\x96\x42\x65\x2e\x65\x94\x00\x88\xa0\xaa\ \x40\x3f\x3e\x94\xca\x3a\x33\x73\x31\x20\x06\xdc\x2e\xca\xb5\xfd\ \x58\x6c\xf5\x45\x21\xdc\x6f\xb0\x26\xa7\x14\xac\x0a\x7a\xd7\xe5\ \x8a\x55\x14\x13\xd0\xf6\xeb\x8d\xa1\x7d\x09\x34\x1d\xf0\xda\xb8\ \xc4\x79\xaa\x72\x52\x4f\x5d\xf6\x1f\x4f\x4c\x3c\x3b\xd5\xa3\x89\ \xff\xd5\xfb\x38\xc0\xd6\xa3\xae\x78\x5d\xbd\x42\x93\x47\x5e\x84\ \xd7\xb9\xc4\x2a\x80\xb7\x5d\xd9\xb6\x35\xdb\xc4\xe2\x00\x28\x56\ \x48\xa0\x5f\x89\xba\xf8\x9d\xf2\x44\x1e\x8c\x78\x82\x36\xaa\x63\ \xa2\x80\x05\x36\x23\x23\xcd\x92\x9f\xa8\x54\x7c\x40\x9d\xfa\xe2\ \x60\x96\xea\x5c\xf1\x14\x1f\x3d\xce\x42\x92\xba\xaa\x2a\xa4\xd7\ \xdf\x0f\x0a\x16\x54\x03\x4a\x54\x7b\x63\x4a\xbb\x9d\x77\x51\xb7\ \x6c\x95\x2a\xe0\x6b\xfe\x4b\x78\x64\x24\x15\xdb\xd4\x6f\xf4\x60\ \x57\xff\xd6\xfb\x3d\x51\xd7\x7f\x96\x78\x53\xd4\x2f\x24\x71\x24\ \x6c\x69\xd3\x01\xd9\x52\x8d\x6e\x4b\x8b\x7d\x1b\x51\xbb\xb3\xa1\ \xba\x86\x12\x6d\xc1\x1b\x06\x62\x00\x34\xf6\xad\x72\x32\x91\x11\ \x24\x26\x31\x12\x90\x05\xe2\xba\x66\x87\xe6\x68\xee\x06\xaa\x35\ \x3b\xc9\xae\x39\x09\x24\x32\x48\xc5\x18\x1e\xa2\x84\xd2\x9e\xd8\ \x80\x40\x07\xab\x74\xa2\x39\x3d\xe2\xd4\xb9\x86\x27\x91\x78\x34\ \x88\xae\xc9\xe0\x58\x54\x8c\xc8\xc9\xb5\x17\x16\x2a\xc6\x87\xae\ \xf4\x34\xca\xec\xb3\x52\x63\xc7\x7a\x6e\x7b\xe2\x16\xd4\x4c\xbd\ \x87\x5c\xb0\x06\x04\xb4\x26\x00\xd0\xb6\xfe\x03\x1e\x04\x71\xaf\ \xf5\x96\x94\xaf\xd1\x80\xc1\x22\x6a\xab\x29\x24\x50\x8e\xbb\xe4\ \x08\xa6\x56\xa6\x25\x23\x9a\x92\x79\x12\x29\x91\xa5\x7f\xff\xd7\ \xfb\x3b\xd0\x50\x1a\x0f\xc7\x3c\x2a\xde\xa1\x50\x50\xfb\xf5\xc4\ \xab\xa4\x55\x28\x41\x5e\x4a\xc0\x86\x53\xd0\x82\x28\x41\xc6\x04\ \x83\x61\x05\x0f\x6e\xf6\xd1\x47\xe9\xc3\x61\x46\xaf\xd9\x67\xe4\ \x83\xe8\xa5\x4f\xdf\x99\x7e\x2e\x21\xbf\x0e\xfe\xfd\xbf\x1f\x16\ \x24\x4c\xf5\x54\x53\x23\x33\x99\x00\x24\xb6\xd4\x1e\xd9\x8b\x93\ \x27\x19\xbe\xac\x80\xa6\x85\x6a\x46\xd5\x34\x60\xbd\xc7\xcf\x01\ \xe4\x94\x35\xc1\x22\x83\xb9\xe9\x92\xc7\xbb\x19\x30\x2f\x38\xf9\ \xc2\xc7\xca\x76\x42\x7b\xa0\xd3\x5c\x4b\x51\x6d\x6a\x86\x8d\x21\ \x1d\x6a\x7f\x65\x45\x7a\xe5\xb2\x98\x80\xf3\x63\x08\x19\x97\xcf\ \xf2\xfe\x73\xf9\xa6\xe6\xea\x96\x91\x43\x6b\x6b\x5f\x86\x31\x0f\ \x30\x07\xbb\x31\xa9\xca\x8c\xe6\x7a\xb7\x8c\x31\x0f\x52\xf2\x6f\ \xe6\x3c\xfa\xc4\xf1\x58\xea\xf0\xa4\x72\xcc\x42\xc5\x73\x10\x2a\ \x39\x1e\x81\x94\x93\x4a\xf8\x8c\x11\xcc\x41\xa9\x35\xcf\x10\xab\ \x0f\x64\x8d\x8a\xb0\x27\xa5\x77\x19\x74\xe3\xb3\x54\x64\x8d\xf4\ \x96\xb5\xed\x4e\x99\x8e\xdc\xff\x00\xff\xd0\xfb\x34\xca\xdb\x1e\ \xfd\xc6\x78\x43\xd4\xb6\x8c\x41\x5a\x91\xd6\xa7\x24\x82\xa8\x4f\ \x26\x00\x12\x40\xaf\xb0\xdb\x02\xaf\xf8\x54\x6f\x40\x72\x2a\xb4\ \x02\xcd\x55\x0d\x41\xd4\xf8\x7b\xe2\x02\x57\x15\xa7\x41\xd7\xae\ \x1e\x88\x43\xbc\x6d\x2b\x2d\x0d\x46\xe3\x6c\xb3\x19\x63\x37\xcb\ \xbf\x99\xb6\x37\x3a\x8f\x9a\x65\x88\x82\xd6\xd6\xa1\x62\x44\xeb\ \x40\x00\x3f\x89\x39\x8b\x92\x77\x37\x37\x0c\x00\xc6\x12\x4b\x1f\ \x2c\x8a\x46\x1a\x1d\x9b\x75\xf0\xcb\x2c\xc4\x30\x20\x5b\x21\x87\ \xcb\x32\x59\xdc\x45\x3c\x51\xb2\x0d\x89\xa7\x6a\x66\x2c\xf3\x71\ \x36\x08\x3e\x85\xd2\x7d\x5b\x8d\x2e\xd2\x69\x7f\xbd\x31\x81\x21\ \xf1\x23\xbe\x6c\x71\x4a\xf1\x82\x5d\x7c\xc5\x4a\x93\x7e\x27\xd3\ \xfa\x32\xbe\xad\x8f\xff\xd1\xfb\x39\x2d\x06\xfc\x4e\x78\x43\xd4\ \x30\x2f\x32\x6b\x5e\x65\xb0\xd4\xf4\xfb\x2d\x0b\x46\x8b\x51\x8a\ \x78\xda\x7b\xb9\xa6\x76\x50\x15\x5b\x8f\x08\xf8\xfe\xd6\xd5\xa9\ \xf6\xc6\x79\x04\x06\xec\xa3\x8c\xcb\xab\x3f\xb5\x76\x78\x91\x9d\ \x0a\x3d\x01\x74\x3d\x41\x22\xb4\x3e\xe3\x24\x46\xec\x02\xb9\x41\ \xb9\x1d\x70\x14\xb6\xa0\x70\x55\x0c\x76\xdf\x7f\xd7\x86\x90\xef\ \x87\xa7\x8f\x51\x80\xec\x97\x72\xe2\x00\x34\xc3\x19\x20\x87\x99\ \x79\xc3\xcb\x6b\x75\xa8\x26\xab\x14\x6c\xde\xb5\x04\xe5\x77\x2a\ \xe0\x01\x53\xec\x72\x59\xf4\xfc\x51\xe3\x8f\xc7\xcb\xf6\x16\xec\ \x19\xab\xd2\x51\x5a\x46\x86\x84\xa7\xab\x0e\xe2\x82\x94\xa8\xda\ \x9e\x1f\x2c\xc0\xe3\x32\x3c\x37\xbb\x71\xa1\xbb\x27\x6d\x01\xae\ \x5c\x45\x14\x7c\x98\xec\x06\xd4\x1f\x4f\x86\x43\x49\xa3\x9e\x4c\ \xfc\x11\xde\xcf\xf6\xb0\xc9\xa9\x88\x8d\x94\xcf\xd2\x8a\x08\xe2\ \xb4\x82\x8f\x1d\xba\x88\xc3\xff\x00\x37\x11\xc4\x9f\xa6\x99\xb8\ \xcd\xc1\x13\xc3\x0e\x43\x6f\x96\xdf\x6f\x37\x06\x16\x77\x3d\x55\ \x39\x1a\xd3\x8f\x4d\xa9\x98\xf6\xdd\x4f\xff\xd2\xfb\x3c\x69\xc8\ \xf5\x23\xbe\x78\x4e\xcf\x50\xd0\xe4\x5c\x7a\x5e\xa2\xb5\x0e\xc9\ \xe1\xf4\x54\xe4\xa3\x7d\x11\x2a\xea\xbd\x00\xe3\x50\x41\xf6\xc8\ \xa5\x78\xe7\xe1\x51\xf4\x62\x50\xb8\xd6\x83\xae\x05\x51\x25\xb9\ \x8a\x83\xf3\xed\x85\x2b\x8f\x2a\x0c\x21\x0e\x53\x74\x18\x9b\x55\ \xe4\xc3\xed\x03\x4e\x05\x7b\xf2\xe5\xb5\x3e\x79\x93\xa7\x39\x2f\ \xd1\xf1\xee\xf8\xf4\x61\x3e\x1a\xdd\x5e\xda\xea\xdc\x90\x65\xd3\ \x14\x4c\x2b\xc8\x24\xd4\x42\x7c\x77\xe4\x47\xdf\x95\x9c\xda\x7e\ \x2b\x9e\x3b\x3b\xdd\x48\x81\xfa\x7e\xc2\x89\x47\x2d\x7d\x5b\x7b\ \x95\x27\x9f\x50\x96\x29\xbe\xa9\x64\x96\xd6\xe1\x7f\x7d\xe9\xba\ \xbb\xf1\xef\x53\xca\xb4\xf1\xa0\xc9\xe3\x99\x9c\x25\xe1\x44\x46\ \x35\xbd\x6f\x2a\xeb\x77\xbf\xbe\x80\x0d\x62\x20\x11\xc4\x49\x3e\ \x69\x64\x03\xe2\x1c\x8f\xc5\xe1\x94\x1a\xa7\x21\x19\xf0\xd4\x65\ \x69\x7f\xff\xd9\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0a\ \x0c\x9d\x6c\x07\ \x00\x63\ \x00\x68\x00\x65\x00\x65\x00\x73\x00\x65\x00\x2e\x00\x6a\x00\x70\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/0000755000076500000240000000000012536324427022707 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/diagramscene.py0000755000076500000240000007656312536324427025727 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) import math from PyQt4 import QtCore, QtGui try: import diagramscene_rc3 except ImportError: import diagramscene_rc2 class Arrow(QtGui.QGraphicsLineItem): def __init__(self, startItem, endItem, parent=None, scene=None): super(Arrow, self).__init__(parent, scene) self.arrowHead = QtGui.QPolygonF() self.myStartItem = startItem self.myEndItem = endItem self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable, True) self.myColor = QtCore.Qt.black self.setPen(QtGui.QPen(self.myColor, 2, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) def setColor(self, color): self.myColor = color def startItem(self): return self.myStartItem def endItem(self): return self.myEndItem def boundingRect(self): extra = (self.pen().width() + 20) / 2.0 p1 = self.line().p1() p2 = self.line().p2() return QtCore.QRectF(p1, QtCore.QSizeF(p2.x() - p1.x(), p2.y() - p1.y())).normalized().adjusted(-extra, -extra, extra, extra) def shape(self): path = super(Arrow, self).shape() path.addPolygon(self.arrowHead) return path def updatePosition(self): line = QtCore.QLineF(self.mapFromItem(self.myStartItem, 0, 0), self.mapFromItem(self.myEndItem, 0, 0)) self.setLine(line) def paint(self, painter, option, widget=None): if (self.myStartItem.collidesWithItem(self.myEndItem)): return myStartItem = self.myStartItem myEndItem = self.myEndItem myColor = self.myColor myPen = self.pen() myPen.setColor(self.myColor) arrowSize = 20.0 painter.setPen(myPen) painter.setBrush(self.myColor) centerLine = QtCore.QLineF(myStartItem.pos(), myEndItem.pos()) endPolygon = myEndItem.polygon() p1 = endPolygon.first() + myEndItem.pos() intersectPoint = QtCore.QPointF() for i in endPolygon: p2 = i + myEndItem.pos() polyLine = QtCore.QLineF(p1, p2) intersectType = polyLine.intersect(centerLine, intersectPoint) if intersectType == QtCore.QLineF.BoundedIntersection: break p1 = p2 self.setLine(QtCore.QLineF(intersectPoint, myStartItem.pos())) line = self.line() angle = math.acos(line.dx() / line.length()) if line.dy() >= 0: angle = (math.pi * 2.0) - angle arrowP1 = line.p1() + QtCore.QPointF(math.sin(angle + math.pi / 3.0) * arrowSize, math.cos(angle + math.pi / 3) * arrowSize) arrowP2 = line.p1() + QtCore.QPointF(math.sin(angle + math.pi - math.pi / 3.0) * arrowSize, math.cos(angle + math.pi - math.pi / 3.0) * arrowSize) self.arrowHead.clear() for point in [line.p1(), arrowP1, arrowP2]: self.arrowHead.append(point) painter.drawLine(line) painter.drawPolygon(self.arrowHead) if self.isSelected(): painter.setPen(QtGui.QPen(myColor, 1, QtCore.Qt.DashLine)) myLine = QtCore.QLineF(line) myLine.translate(0, 4.0) painter.drawLine(myLine) myLine.translate(0,-8.0) painter.drawLine(myLine) class DiagramTextItem(QtGui.QGraphicsTextItem): lostFocus = QtCore.pyqtSignal(QtGui.QGraphicsTextItem) selectedChange = QtCore.pyqtSignal(QtGui.QGraphicsItem) def __init__(self, parent=None, scene=None): super(DiagramTextItem, self).__init__(parent, scene) self.setFlag(QtGui.QGraphicsItem.ItemIsMovable) self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable) def itemChange(self, change, value): if change == QtGui.QGraphicsItem.ItemSelectedChange: self.selectedChange.emit(self) return value def focusOutEvent(self, event): self.setTextInteractionFlags(QtCore.Qt.NoTextInteraction) self.lostFocus.emit(self) super(DiagramTextItem, self).focusOutEvent(event) def mouseDoubleClickEvent(self, event): if self.textInteractionFlags() == QtCore.Qt.NoTextInteraction: self.setTextInteractionFlags(QtCore.Qt.TextEditorInteraction) super(DiagramTextItem, self).mouseDoubleClickEvent(event) class DiagramItem(QtGui.QGraphicsPolygonItem): Step, Conditional, StartEnd, Io = range(4) def __init__(self, diagramType, contextMenu, parent=None, scene=None): super(DiagramItem, self).__init__(parent, scene) self.arrows = [] self.diagramType = diagramType self.contextMenu = contextMenu path = QtGui.QPainterPath() if self.diagramType == self.StartEnd: path.moveTo(200, 50) path.arcTo(150, 0, 50, 50, 0, 90) path.arcTo(50, 0, 50, 50, 90, 90) path.arcTo(50, 50, 50, 50, 180, 90) path.arcTo(150, 50, 50, 50, 270, 90) path.lineTo(200, 25) self.myPolygon = path.toFillPolygon() elif self.diagramType == self.Conditional: self.myPolygon = QtGui.QPolygonF([ QtCore.QPointF(-100, 0), QtCore.QPointF(0, 100), QtCore.QPointF(100, 0), QtCore.QPointF(0, -100), QtCore.QPointF(-100, 0)]) elif self.diagramType == self.Step: self.myPolygon = QtGui.QPolygonF([ QtCore.QPointF(-100, -100), QtCore.QPointF(100, -100), QtCore.QPointF(100, 100), QtCore.QPointF(-100, 100), QtCore.QPointF(-100, -100)]) else: self.myPolygon = QtGui.QPolygonF([ QtCore.QPointF(-120, -80), QtCore.QPointF(-70, 80), QtCore.QPointF(120, 80), QtCore.QPointF(70, -80), QtCore.QPointF(-120, -80)]) self.setPolygon(self.myPolygon) self.setFlag(QtGui.QGraphicsItem.ItemIsMovable, True) self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable, True) def removeArrow(self, arrow): try: self.arrows.remove(arrow) except ValueError: pass def removeArrows(self): for arrow in self.arrows[:]: arrow.startItem().removeArrow(arrow) arrow.endItem().removeArrow(arrow) self.scene().removeItem(arrow) def addArrow(self, arrow): self.arrows.append(arrow) def image(self): pixmap = QtGui.QPixmap(250, 250) pixmap.fill(QtCore.Qt.transparent) painter = QtGui.QPainter(pixmap) painter.setPen(QtGui.QPen(QtCore.Qt.black, 8)) painter.translate(125, 125) painter.drawPolyline(self.myPolygon) return pixmap def contextMenuEvent(self, event): self.scene().clearSelection() self.setSelected(True) self.myContextMenu.exec_(event.screenPos()) def itemChange(self, change, value): if change == QtGui.QGraphicsItem.ItemPositionChange: for arrow in self.arrows: arrow.updatePosition() return value class DiagramScene(QtGui.QGraphicsScene): InsertItem, InsertLine, InsertText, MoveItem = range(4) itemInserted = QtCore.pyqtSignal(DiagramItem) textInserted = QtCore.pyqtSignal(QtGui.QGraphicsTextItem) itemSelected = QtCore.pyqtSignal(QtGui.QGraphicsItem) def __init__(self, itemMenu, parent=None): super(DiagramScene, self).__init__(parent) self.myItemMenu = itemMenu self.myMode = self.MoveItem self.myItemType = DiagramItem.Step self.line = None self.textItem = None self.myItemColor = QtCore.Qt.white self.myTextColor = QtCore.Qt.black self.myLineColor = QtCore.Qt.black self.myFont = QtGui.QFont() def setLineColor(self, color): self.myLineColor = color if self.isItemChange(Arrow): item = self.selectedItems()[0] item.setColor(self.myLineColor) self.update() def setTextColor(self, color): self.myTextColor = color if self.isItemChange(DiagramTextItem): item = self.selectedItems()[0] item.setDefaultTextColor(self.myTextColor) def setItemColor(self, color): self.myItemColor = color if self.isItemChange(DiagramItem): item = self.selectedItems()[0] item.setBrush(self.myItemColor) def setFont(self, font): self.myFont = font if self.isItemChange(DiagramTextItem): item = self.selectedItems()[0] item.setFont(self.myFont) def setMode(self, mode): self.myMode = mode def setItemType(self, type): self.myItemType = type def editorLostFocus(self, item): cursor = item.textCursor() cursor.clearSelection() item.setTextCursor(cursor) if item.toPlainText(): self.removeItem(item) item.deleteLater() def mousePressEvent(self, mouseEvent): if (mouseEvent.button() != QtCore.Qt.LeftButton): return if self.myMode == self.InsertItem: item = DiagramItem(self.myItemType, self.myItemMenu) item.setBrush(self.myItemColor) self.addItem(item) item.setPos(mouseEvent.scenePos()) self.itemInserted.emit(item) elif self.myMode == self.InsertLine: self.line = QtGui.QGraphicsLineItem(QtCore.QLineF(mouseEvent.scenePos(), mouseEvent.scenePos())) self.line.setPen(QtGui.QPen(self.myLineColor, 2)) self.addItem(self.line) elif self.myMode == self.InsertText: textItem = DiagramTextItem() textItem.setFont(self.myFont) textItem.setTextInteractionFlags(QtCore.Qt.TextEditorInteraction) textItem.setZValue(1000.0) textItem.lostFocus.connect(self.editorLostFocus) textItem.selectedChange.connect(self.itemSelected) self.addItem(textItem) textItem.setDefaultTextColor(self.myTextColor) textItem.setPos(mouseEvent.scenePos()) self.textInserted.emit(textItem) super(DiagramScene, self).mousePressEvent(mouseEvent) def mouseMoveEvent(self, mouseEvent): if self.myMode == self.InsertLine and self.line: newLine = QtCore.QLineF(self.line.line().p1(), mouseEvent.scenePos()) self.line.setLine(newLine) elif self.myMode == self.MoveItem: super(DiagramScene, self).mouseMoveEvent(mouseEvent) def mouseReleaseEvent(self, mouseEvent): if self.line and self.myMode == self.InsertLine: startItems = self.items(self.line.line().p1()) if len(startItems) and startItems[0] == self.line: startItems.pop(0) endItems = self.items(self.line.line().p2()) if len(endItems) and endItems[0] == self.line: endItems.pop(0) self.removeItem(self.line) self.line = None if len(startItems) and len(endItems) and \ isinstance(startItems[0], DiagramItem) and \ isinstance(endItems[0], DiagramItem) and \ startItems[0] != endItems[0]: startItem = startItems[0] endItem = endItems[0] arrow = Arrow(startItem, endItem) arrow.setColor(self.myLineColor) startItem.addArrow(arrow) endItem.addArrow(arrow) arrow.setZValue(-1000.0) self.addItem(arrow) arrow.updatePosition() self.line = None super(DiagramScene, self).mouseReleaseEvent(mouseEvent) def isItemChange(self, type): for item in self.selectedItems(): if isinstance(item, type): return True return False class MainWindow(QtGui.QMainWindow): InsertTextButton = 10 def __init__(self): super(MainWindow, self).__init__() self.createActions() self.createMenus() self.createToolBox() self.scene = DiagramScene(self.itemMenu) self.scene.setSceneRect(QtCore.QRectF(0, 0, 5000, 5000)) self.scene.itemInserted.connect(self.itemInserted) self.scene.textInserted.connect(self.textInserted) self.scene.itemSelected.connect(self.itemSelected) self.createToolbars() layout = QtGui.QHBoxLayout() layout.addWidget(self.toolBox) self.view = QtGui.QGraphicsView(self.scene) layout.addWidget(self.view) self.widget = QtGui.QWidget() self.widget.setLayout(layout) self.setCentralWidget(self.widget) self.setWindowTitle("Diagramscene") def backgroundButtonGroupClicked(self, button): buttons = self.backgroundButtonGroup.buttons() for myButton in buttons: if myButton != button: button.setChecked(False) text = button.text() if text == "Blue Grid": self.scene.setBackgroundBrush(QtGui.QBrush(QtGui.QPixmap(':/images/background1.png'))) elif text == "White Grid": self.scene.setBackgroundBrush(QtGui.QBrush(QtGui.QPixmap(':/images/background2.png'))) elif text == "Gray Grid": self.scene.setBackgroundBrush(QtGui.QBrush(QtGui.QPixmap(':/images/background3.png'))) else: self.scene.setBackgroundBrush(QtGui.QBrush(QtGui.QPixmap(':/images/background4.png'))) self.scene.update() self.view.update() def buttonGroupClicked(self, id): buttons = self.buttonGroup.buttons() for button in buttons: if self.buttonGroup.button(id) != button: button.setChecked(False) if id == self.InsertTextButton: self.scene.setMode(DiagramScene.InsertText) else: self.scene.setItemType(id) self.scene.setMode(DiagramScene.InsertItem) def deleteItem(self): for item in self.scene.selectedItems(): if isinstance(item, DiagramItem): item.removeArrows() self.scene.removeItem(item) def pointerGroupClicked(self, i): self.scene.setMode(self.pointerTypeGroup.checkedId()) def bringToFront(self): if not self.scene.selectedItems(): return selectedItem = self.scene.selectedItems()[0] overlapItems = selectedItem.collidingItems() zValue = 0 for item in overlapItems: if (item.zValue() >= zValue and isinstance(item, DiagramItem)): zValue = item.zValue() + 0.1 selectedItem.setZValue(zValue) def sendToBack(self): if not self.scene.selectedItems(): return selectedItem = self.scene.selectedItems()[0] overlapItems = selectedItem.collidingItems() zValue = 0 for item in overlapItems: if (item.zValue() <= zValue and isinstance(item, DiagramItem)): zValue = item.zValue() - 0.1 selectedItem.setZValue(zValue) def itemInserted(self, item): self.pointerTypeGroup.button(DiagramScene.MoveItem).setChecked(True) self.scene.setMode(self.pointerTypeGroup.checkedId()) self.buttonGroup.button(item.diagramType).setChecked(False) def textInserted(self, item): self.buttonGroup.button(self.InsertTextButton).setChecked(False) self.scene.setMode(self.pointerTypeGroup.checkedId()) def currentFontChanged(self, font): self.handleFontChange() def fontSizeChanged(self, font): self.handleFontChange() def sceneScaleChanged(self, scale): newScale = scale.left(scale.indexOf("%")).toDouble()[0] / 100.0 oldMatrix = self.view.matrix() self.view.resetMatrix() self.view.translate(oldMatrix.dx(), oldMatrix.dy()) self.view.scale(newScale, newScale) def textColorChanged(self): self.textAction = self.sender() self.fontColorToolButton.setIcon(self.createColorToolButtonIcon( ':/images/textpointer.png', QtGui.QColor(self.textAction.data()))) self.textButtonTriggered() def itemColorChanged(self): self.fillAction = self.sender() self.fillColorToolButton.setIcon(self.createColorToolButtonIcon( ':/images/floodfill.png', QtGui.QColor(self.fillAction.data()))) self.fillButtonTriggered() def lineColorChanged(self): self.lineAction = self.sender() self.lineColorToolButton.setIcon(self.createColorToolButtonIcon( ':/images/linecolor.png', QtGui.QColor(self.lineAction.data()))) self.lineButtonTriggered() def textButtonTriggered(self): self.scene.setTextColor(QtGui.QColor(self.textAction.data())) def fillButtonTriggered(self): self.scene.setItemColor(QtGui.QColor(self.fillAction.data())) def lineButtonTriggered(self): self.scene.setLineColor(QtGui.QColor(self.lineAction.data())) def handleFontChange(self): font = self.fontCombo.currentFont() font.setPointSize(self.fontSizeCombo.currentText().toInt()[0]) if self.boldAction.isChecked(): font.setWeight(QtGui.QFont.Bold) else: font.setWeight(QtGui.QFont.Normal) font.setItalic(self.italicAction.isChecked()) font.setUnderline(self.underlineAction.isChecked()) self.scene.setFont(font) def itemSelected(self, item): font = item.font() color = item.defaultTextColor() self.fontCombo.setCurrentFont(font) self.fontSizeCombo.setEditText(str(font.pointSize())) self.boldAction.setChecked(font.weight() == QtGui.QFont.Bold) self.italicAction.setChecked(font.italic()) self.underlineAction.setChecked(font.underline()) def about(self): QtGui.QMessageBox.about(self, "About Diagram Scene", "The Diagram Scene example shows use of the graphics framework.") def createToolBox(self): self.buttonGroup = QtGui.QButtonGroup() self.buttonGroup.setExclusive(False) self.buttonGroup.buttonClicked[int].connect(self.buttonGroupClicked) layout = QtGui.QGridLayout() layout.addWidget(self.createCellWidget("Conditional", DiagramItem.Conditional), 0, 0) layout.addWidget(self.createCellWidget("Process", DiagramItem.Step), 0, 1) layout.addWidget(self.createCellWidget("Input/Output", DiagramItem.Io), 1, 0) textButton = QtGui.QToolButton() textButton.setCheckable(True) self.buttonGroup.addButton(textButton, self.InsertTextButton) textButton.setIcon(QtGui.QIcon(QtGui.QPixmap(':/images/textpointer.png') .scaled(30, 30))) textButton.setIconSize(QtCore.QSize(50, 50)) textLayout = QtGui.QGridLayout() textLayout.addWidget(textButton, 0, 0, QtCore.Qt.AlignHCenter) textLayout.addWidget(QtGui.QLabel("Text"), 1, 0, QtCore.Qt.AlignCenter) textWidget = QtGui.QWidget() textWidget.setLayout(textLayout) layout.addWidget(textWidget, 1, 1) layout.setRowStretch(3, 10) layout.setColumnStretch(2, 10) itemWidget = QtGui.QWidget() itemWidget.setLayout(layout) self.backgroundButtonGroup = QtGui.QButtonGroup() self.backgroundButtonGroup.buttonClicked.connect(self.backgroundButtonGroupClicked) backgroundLayout = QtGui.QGridLayout() backgroundLayout.addWidget(self.createBackgroundCellWidget("Blue Grid", ':/images/background1.png'), 0, 0) backgroundLayout.addWidget(self.createBackgroundCellWidget("White Grid", ':/images/background2.png'), 0, 1) backgroundLayout.addWidget(self.createBackgroundCellWidget("Gray Grid", ':/images/background3.png'), 1, 0) backgroundLayout.addWidget(self.createBackgroundCellWidget("No Grid", ':/images/background4.png'), 1, 1) backgroundLayout.setRowStretch(2, 10) backgroundLayout.setColumnStretch(2, 10) backgroundWidget = QtGui.QWidget() backgroundWidget.setLayout(backgroundLayout) self.toolBox = QtGui.QToolBox() self.toolBox.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Ignored)) self.toolBox.setMinimumWidth(itemWidget.sizeHint().width()) self.toolBox.addItem(itemWidget, "Basic Flowchart Shapes") self.toolBox.addItem(backgroundWidget, "Backgrounds") def createActions(self): self.toFrontAction = QtGui.QAction( QtGui.QIcon(':/images/bringtofront.png'), "Bring to &Front", self, shortcut="Ctrl+F", statusTip="Bring item to front", triggered=self.bringToFront) self.sendBackAction = QtGui.QAction( QtGui.QIcon(':/images/sendtoback.png'), "Send to &Back", self, shortcut="Ctrl+B", statusTip="Send item to back", triggered=self.sendToBack) self.deleteAction = QtGui.QAction(QtGui.QIcon(':/images/delete.png'), "&Delete", self, shortcut="Delete", statusTip="Delete item from diagram", triggered=self.deleteItem) self.exitAction = QtGui.QAction("E&xit", self, shortcut="Ctrl+X", statusTip="Quit Scenediagram example", triggered=self.close) self.boldAction = QtGui.QAction(QtGui.QIcon(':/images/bold.png'), "Bold", self, checkable=True, shortcut="Ctrl+B", triggered=self.handleFontChange) self.italicAction = QtGui.QAction(QtGui.QIcon(':/images/italic.png'), "Italic", self, checkable=True, shortcut="Ctrl+I", triggered=self.handleFontChange) self.underlineAction = QtGui.QAction( QtGui.QIcon(':/images/underline.png'), "Underline", self, checkable=True, shortcut="Ctrl+U", triggered=self.handleFontChange) self.aboutAction = QtGui.QAction("A&bout", self, shortcut="Ctrl+B", triggered=self.about) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.exitAction) self.itemMenu = self.menuBar().addMenu("&Item") self.itemMenu.addAction(self.deleteAction) self.itemMenu.addSeparator() self.itemMenu.addAction(self.toFrontAction) self.itemMenu.addAction(self.sendBackAction) self.aboutMenu = self.menuBar().addMenu("&Help") self.aboutMenu.addAction(self.aboutAction) def createToolbars(self): self.editToolBar = self.addToolBar("Edit") self.editToolBar.addAction(self.deleteAction) self.editToolBar.addAction(self.toFrontAction) self.editToolBar.addAction(self.sendBackAction) self.fontCombo = QtGui.QFontComboBox() self.fontCombo.currentFontChanged.connect(self.currentFontChanged) self.fontSizeCombo = QtGui.QComboBox() self.fontSizeCombo.setEditable(True) for i in range(8, 30, 2): self.fontSizeCombo.addItem(str(i)) validator = QtGui.QIntValidator(2, 64, self) self.fontSizeCombo.setValidator(validator) self.fontSizeCombo.currentIndexChanged.connect(self.fontSizeChanged) self.fontColorToolButton = QtGui.QToolButton() self.fontColorToolButton.setPopupMode(QtGui.QToolButton.MenuButtonPopup) self.fontColorToolButton.setMenu( self.createColorMenu(self.textColorChanged, QtCore.Qt.black)) self.textAction = self.fontColorToolButton.menu().defaultAction() self.fontColorToolButton.setIcon( self.createColorToolButtonIcon(':/images/textpointer.png', QtCore.Qt.black)) self.fontColorToolButton.setAutoFillBackground(True) self.fontColorToolButton.clicked.connect(self.textButtonTriggered) self.fillColorToolButton = QtGui.QToolButton() self.fillColorToolButton.setPopupMode(QtGui.QToolButton.MenuButtonPopup) self.fillColorToolButton.setMenu( self.createColorMenu(self.itemColorChanged, QtCore.Qt.white)) self.fillAction = self.fillColorToolButton.menu().defaultAction() self.fillColorToolButton.setIcon( self.createColorToolButtonIcon(':/images/floodfill.png', QtCore.Qt.white)) self.fillColorToolButton.clicked.connect(self.fillButtonTriggered) self.lineColorToolButton = QtGui.QToolButton() self.lineColorToolButton.setPopupMode(QtGui.QToolButton.MenuButtonPopup) self.lineColorToolButton.setMenu( self.createColorMenu(self.lineColorChanged, QtCore.Qt.black)) self.lineAction = self.lineColorToolButton.menu().defaultAction() self.lineColorToolButton.setIcon( self.createColorToolButtonIcon(':/images/linecolor.png', QtCore.Qt.black)) self.lineColorToolButton.clicked.connect(self.lineButtonTriggered) self.textToolBar = self.addToolBar("Font") self.textToolBar.addWidget(self.fontCombo) self.textToolBar.addWidget(self.fontSizeCombo) self.textToolBar.addAction(self.boldAction) self.textToolBar.addAction(self.italicAction) self.textToolBar.addAction(self.underlineAction) self.colorToolBar = self.addToolBar("Color") self.colorToolBar.addWidget(self.fontColorToolButton) self.colorToolBar.addWidget(self.fillColorToolButton) self.colorToolBar.addWidget(self.lineColorToolButton) pointerButton = QtGui.QToolButton() pointerButton.setCheckable(True) pointerButton.setChecked(True) pointerButton.setIcon(QtGui.QIcon(':/images/pointer.png')) linePointerButton = QtGui.QToolButton() linePointerButton.setCheckable(True) linePointerButton.setIcon(QtGui.QIcon(':/images/linepointer.png')) self.pointerTypeGroup = QtGui.QButtonGroup() self.pointerTypeGroup.addButton(pointerButton, DiagramScene.MoveItem) self.pointerTypeGroup.addButton(linePointerButton, DiagramScene.InsertLine) self.pointerTypeGroup.buttonClicked[int].connect(self.pointerGroupClicked) self.sceneScaleCombo = QtGui.QComboBox() self.sceneScaleCombo.addItems(["50%", "75%", "100%", "125%", "150%"]) self.sceneScaleCombo.setCurrentIndex(2) self.sceneScaleCombo.currentIndexChanged[str].connect(self.sceneScaleChanged) self.pointerToolbar = self.addToolBar("Pointer type") self.pointerToolbar.addWidget(pointerButton) self.pointerToolbar.addWidget(linePointerButton) self.pointerToolbar.addWidget(self.sceneScaleCombo) def createBackgroundCellWidget(self, text, image): button = QtGui.QToolButton() button.setText(text) button.setIcon(QtGui.QIcon(image)) button.setIconSize(QtCore.QSize(50, 50)) button.setCheckable(True) self.backgroundButtonGroup.addButton(button) layout = QtGui.QGridLayout() layout.addWidget(button, 0, 0, QtCore.Qt.AlignHCenter) layout.addWidget(QtGui.QLabel(text), 1, 0, QtCore.Qt.AlignCenter) widget = QtGui.QWidget() widget.setLayout(layout) return widget def createCellWidget(self, text, diagramType): item = DiagramItem(diagramType, self.itemMenu) icon = QtGui.QIcon(item.image()) button = QtGui.QToolButton() button.setIcon(icon) button.setIconSize(QtCore.QSize(50, 50)) button.setCheckable(True) self.buttonGroup.addButton(button, diagramType) layout = QtGui.QGridLayout() layout.addWidget(button, 0, 0, QtCore.Qt.AlignHCenter) layout.addWidget(QtGui.QLabel(text), 1, 0, QtCore.Qt.AlignCenter) widget = QtGui.QWidget() widget.setLayout(layout) return widget def createColorMenu(self, slot, defaultColor): colors = [QtCore.Qt.black, QtCore.Qt.white, QtCore.Qt.red, QtCore.Qt.blue, QtCore.Qt.yellow] names = ["black", "white", "red", "blue", "yellow"] colorMenu = QtGui.QMenu(self) for color, name in zip(colors, names): action = QtGui.QAction(self.createColorIcon(color), name, self, triggered=slot) action.setData(QtGui.QColor(color)) colorMenu.addAction(action) if color == defaultColor: colorMenu.setDefaultAction(action) return colorMenu def createColorToolButtonIcon(self, imageFile, color): pixmap = QtGui.QPixmap(50, 80) pixmap.fill(QtCore.Qt.transparent) painter = QtGui.QPainter(pixmap) image = QtGui.QPixmap(imageFile) target = QtCore.QRect(0, 0, 50, 60) source = QtCore.QRect(0, 0, 42, 42) painter.fillRect(QtCore.QRect(0, 60, 50, 80), color) painter.drawPixmap(target, image, source) painter.end() return QtGui.QIcon(pixmap) def createColorIcon(self, color): pixmap = QtGui.QPixmap(20, 20) painter = QtGui.QPainter(pixmap) painter.setPen(QtCore.Qt.NoPen) painter.fillRect(QtCore.QRect(0, 0, 20, 20), color) painter.end() return QtGui.QIcon(pixmap) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWindow = MainWindow() mainWindow.setGeometry(100, 100, 800, 500) mainWindow.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/diagramscene.qrc0000644000076500000240000000120012536324427026031 0ustar philstaff00000000000000 images/pointer.png images/linepointer.png images/textpointer.png images/bold.png images/italic.png images/underline.png images/floodfill.png images/bringtofront.png images/delete.png images/sendtoback.png images/linecolor.png images/background1.png images/background2.png images/background3.png images/background4.png PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/diagramscene_rc2.py0000644000076500000240000005115512536324427026460 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:38:20 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x01\x12\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0b\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x7f\xf5\x94\x3b\ \x00\x00\x00\xd9\x49\x44\x41\x54\x28\x53\x7d\x90\x31\x0e\x45\x40\ \x10\x86\x47\x24\x24\x1a\x0d\x0d\xd1\x22\x51\x70\x80\x6d\x5c\x40\ \xe7\x3c\x0e\x21\x0a\x47\x71\x19\xb5\x4e\xa9\xc1\x78\x33\xb2\x8b\ \xf7\xec\xdb\xe4\xcb\x66\x76\xfe\xf9\x67\x76\xc0\x30\x0c\x04\x80\ \x07\xf4\x66\x59\x16\x26\x49\x82\x9f\x03\xc4\xbe\xef\x94\x3b\x05\ \x69\x9a\x32\x24\x08\xc3\xf0\x51\x58\xd7\x35\x17\x01\x05\x04\x55\ \xde\x5d\xe8\x76\x1c\x87\x73\xb6\x6d\xe3\xc3\x59\x0a\xef\x44\x51\ \xc4\xe2\x20\x08\xf4\xce\xeb\xba\x62\xdb\xb6\x6a\x94\xbe\xef\x4f\ \xb1\x7c\x28\x8a\x82\xc9\xf3\x1c\x7d\xdf\x67\x03\x21\x04\x0e\xc3\ \xa0\x4c\x40\xb7\x0d\xd3\x34\x59\xdc\x75\xdd\x25\xfe\x9e\x79\xdb\ \x36\x9c\xa6\x89\x63\xd9\x21\x8e\x63\x1c\xc7\x11\xd5\xcc\x6f\x1f\ \x24\x64\xbe\xaa\xaa\xff\xdb\x58\x96\x45\x8d\x46\x5d\x5e\xb7\x41\ \xcc\xf3\x8c\x4d\xd3\xa0\xcc\x67\x59\x76\x39\x7b\x9e\xa7\x70\x5d\ \xf7\xe7\xd3\xda\x6d\x48\xa8\xa8\x2c\x4b\xd5\xf1\x00\xd0\xc0\x13\ \xc8\x06\xaf\x16\x28\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x00\xf7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0b\x00\x00\x00\x0c\x08\x06\x00\x00\x00\xb4\xa9\x47\x9e\ \x00\x00\x00\xbe\x49\x44\x41\x54\x28\x53\x85\x91\x31\x0e\x40\x40\ \x10\x45\x57\x4d\x24\x4a\x37\xa1\xa4\x91\x38\x85\x5e\x74\xaa\x3d\ \x8a\x4e\x54\x7b\x80\xad\x75\x6e\xa0\xd1\x6c\xe7\x12\xc4\x97\x19\ \xb1\x21\x59\x51\xfc\x62\xfe\xbc\xfc\x99\xcc\x08\x00\x82\x74\x1c\ \x07\xa6\x69\x82\x10\xc2\x29\xcf\xf3\x2e\xf0\xd6\x38\x8e\xa8\xaa\ \x8a\x55\x14\x05\x03\x49\x92\x58\xef\x05\x3f\xd5\x75\x1d\xc3\x5a\ \x6b\xd0\x54\xf2\x9c\x20\x35\xeb\xba\x66\x78\x5d\x57\xdc\xfe\x67\ \x72\x9a\xa6\x88\xe3\x18\x4f\xcf\x09\x6e\xdb\x06\xdf\xf7\x51\x96\ \xa5\x5d\xc1\x09\x53\x73\x9e\x67\x5e\x41\x4a\xf9\x9f\x3c\x0c\x03\ \xc3\x4a\xa9\xff\xe4\xb6\x6d\x19\x5e\x96\xe5\x3f\x39\xcf\x73\x84\ \x61\x88\x7d\xdf\xdf\xc9\x54\x18\x63\xec\xe1\x49\x41\x10\x20\x8a\ \x22\x5b\x37\x4d\x03\x9b\xdc\xf7\xfd\xf5\xce\x8f\x57\x67\x59\xc6\ \x13\x4e\xfa\x57\x56\x58\xe8\x40\xda\xc6\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x72\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfc\x73\x8f\x50\ \x00\x00\x00\x06\x50\x4c\x54\x45\xff\xff\xff\x00\x00\x00\x55\xc2\ \xd3\x7e\x00\x00\x00\x27\x49\x44\x41\x54\x48\xc7\x63\x60\x80\x82\ \x06\x06\x34\x30\x2a\x30\x2a\x30\x2a\x30\x2a\x80\x2a\xf0\x1f\x15\ \xfc\x1b\x0d\xa0\x51\x81\x51\x81\x51\x01\x22\x05\x00\xd5\x3b\x4e\ \xf0\x73\xe3\x6f\xe9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x01\x25\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\xda\x49\x44\x41\x54\x48\xc7\xed\x94\x41\x0e\ \x82\x30\x10\x45\x1f\x46\x38\x83\x77\xf0\xfe\x87\xf0\x1a\x5e\x40\ \xb1\xa5\x74\xa6\x1a\x5c\xb4\x04\x8c\xa2\x11\xca\xc2\xc4\x49\xd8\ \xd0\xe4\xe5\xf5\xf7\x67\x8a\xb2\x2c\x3b\x16\x4c\x08\xa1\x78\xf5\ \x7f\x0b\xa0\xaa\xb3\xa0\x55\x55\x4d\x9e\x6d\x58\x69\xfe\xe0\x1f\ \x06\x6f\x33\x30\xba\x55\xc0\xdd\xed\x0a\x37\x0f\xa1\x05\x75\x20\ \x96\x62\xb7\xcf\x60\x1c\x5c\x82\x36\xa0\x16\xc4\x66\x8a\x42\xed\ \x00\xf5\x16\xe4\x92\x09\x2c\x97\x68\x29\x26\x7e\x9a\xcb\xd8\xd7\ \xe0\xcd\x08\xdc\x64\x02\xbb\xf3\x60\xaa\x39\xc1\xed\x39\x41\xfb\ \xac\xcd\x00\x7e\xb7\xfe\x3e\x67\x5c\xc7\x8c\x43\x93\xe2\x48\x19\ \x4f\x2d\xea\x57\x95\xed\x8e\x87\x21\x4b\x49\x96\xbe\x8e\xa6\x92\ \x1a\x31\xeb\xf1\xfc\x29\x56\xaa\xef\x6b\xb0\x20\xc9\x54\x47\x0f\ \xf8\x35\xb8\x4d\xd7\x56\x03\xe2\x20\x98\xc7\xaa\xf5\xb7\x98\x05\ \xd6\xde\xd4\x3e\xf7\x57\x1a\xb8\x3a\x00\x8a\xa5\xcb\x66\x6a\xee\ \x91\x61\xa9\x66\xc0\x0f\xb5\x5d\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x00\x74\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfc\x73\x8f\x50\ \x00\x00\x00\x06\x50\x4c\x54\x45\xc0\xc0\xc0\xff\xff\xff\x2b\x69\ \x87\xb4\x00\x00\x00\x29\x49\x44\x41\x54\x48\x4b\x63\xf8\x0f\x05\ \x0d\x0c\x50\x30\x2a\x30\x2a\x30\x2a\x30\x2a\x40\xa4\x00\x0c\xd8\ \x43\xc4\xff\x8d\x0a\x8c\x0a\x8c\x0a\x8c\x0a\x60\x17\x00\x00\x3f\ \x78\xe4\xb7\xe3\x90\x30\x5f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x00\xfa\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0b\x00\x00\x00\x0c\x08\x06\x00\x00\x00\xb4\xa9\x47\x9e\ \x00\x00\x00\xc1\x49\x44\x41\x54\x28\x53\xcd\x90\x31\x0a\x84\x30\ \x10\x45\xc7\xce\x56\xb0\xd3\x46\x10\x6f\x60\xe5\x01\xbc\x42\x40\ \x0b\x9b\x74\x22\x11\xbc\x94\x9d\x27\xd2\x03\x78\x03\x03\x19\xf7\ \x0f\xb8\xd9\x2c\x6c\xbf\x81\x4f\x66\xde\xfc\x7c\xc8\x50\x1c\xc7\ \x4c\x44\xa2\x28\x8a\x38\xcf\x73\x7e\x1d\xc2\xfd\xc9\xd3\x34\x65\ \xd2\x5a\x73\x51\x14\x02\x86\x61\xe0\x79\x9e\xc5\x8c\x1b\x3d\x38\ \xe6\xe3\x38\x32\x61\xa0\x94\x12\x88\xfa\x5b\xe0\x98\x3b\xe7\x42\ \x33\xc0\x2f\x33\xea\x7f\x4a\xee\xba\x4e\xcc\xd7\x75\x05\x0f\xd0\ \x83\xf7\x7d\xef\x93\xb1\x26\xc0\x7d\xdf\x03\xf3\x71\x1c\xc2\x97\ \x65\xf1\xc9\xeb\xba\x0a\x9c\xa6\x29\x30\x3f\x21\xdb\xb6\xf9\x64\ \xa8\xae\x6b\x19\x94\x65\xc9\x6d\xdb\x72\x55\x55\xd2\x37\x4d\xc3\ \xd6\x5a\x9f\xfc\xc8\x18\xc3\x59\x96\x89\x29\x49\x12\xc6\x5f\xce\ \xf3\x7c\x6f\xe9\x06\x33\x20\x38\xcd\x08\x1e\x78\x76\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x60\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfc\x73\x8f\x50\ \x00\x00\x00\x03\x50\x4c\x54\x45\xff\xff\xff\xa7\xc4\x1b\xc8\x00\ \x00\x00\x18\x49\x44\x41\x54\x78\x5e\xed\xc0\x31\x01\x00\x00\x00\ \xc2\x20\xfb\xa7\x36\xc5\x3e\x58\x0b\x00\xe0\x08\x6f\x00\x01\x01\ \x3e\xc3\x31\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x8d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x1b\x00\x00\x00\x1b\x01\x03\x00\x00\x00\xb7\x1a\x66\x16\ \x00\x00\x00\x06\x50\x4c\x54\x45\xff\xff\xff\x00\x00\x00\x55\xc2\ \xd3\x7e\x00\x00\x00\x01\x74\x52\x4e\x53\x00\x40\xe6\xd8\x66\x00\ \x00\x00\x35\x49\x44\x41\x54\x08\x99\x63\x60\xc0\x02\xd8\x1b\x80\ \x04\xff\x01\x4c\x82\xfd\x01\x48\xba\x00\x44\x58\x80\x08\x19\x10\ \xc1\x07\xd6\x02\x22\x98\x41\xfa\x18\x41\x0a\x19\xc0\x0a\xeb\x40\ \x84\x3d\x16\x42\x0e\xdd\x46\x00\xb5\x00\x09\x40\xa3\x31\xbf\x5e\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\x3f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xd1\x49\x44\x41\x54\x38\xcb\x7d\ \x95\x4b\x68\x53\x41\x14\x86\x93\xe6\xd1\x08\x49\x28\x04\x5b\x17\ \x05\x35\xee\x5a\xbb\x50\xb2\xb1\xda\x85\x8f\x5d\xb5\xbe\x16\x76\ \x29\x2d\x42\x49\x57\xed\xce\x8d\x0a\xa2\xe0\xba\xab\x14\x84\x8a\ \x2b\x51\x44\x45\x17\x0a\x8a\x55\xf1\x01\x1a\xb0\x56\x23\xad\xa2\ \xc5\xb6\x92\x6a\x95\xbe\x34\xcd\xc3\xe3\x7f\x6e\xce\x64\xe6\x4e\ \xd2\x16\x3e\xe6\xde\xce\x3f\x7f\x66\xce\x63\xae\x87\x88\x3c\x26\ \xf8\xf3\x01\x7e\xa8\x07\x01\x50\x67\x6b\x0c\x6d\x9d\xa1\x0d\xf2\ \xda\xca\x9c\x21\xf2\x8a\x11\x51\x7f\x7f\x5e\x16\x6c\x04\x61\xe0\ \xaf\x61\xea\x77\xb4\x03\x03\x4a\xdb\x08\x22\xe2\xe1\x35\x85\x8e\ \xe9\xbf\xa1\x21\x2a\x75\x77\x53\xa1\x2c\x66\x36\x83\x28\xcf\x57\ \x69\x53\x29\x2a\xf5\xf4\x50\x29\x18\x54\xda\x38\x68\x70\xe6\xcd\ \xe3\x97\x60\x5a\xec\xed\xa5\x42\x4b\x0b\xe5\xf0\xfe\x5d\x9b\x6f\ \x55\xe6\xca\xb4\x34\x3c\x4c\xc5\x64\x92\x0a\x6d\x6d\xb4\x8c\xf7\ \x71\xad\x8d\x3b\x5a\x31\xa6\xd5\x64\x32\xbf\x8a\x9d\xe6\x5a\x5b\ \xe9\x2f\xde\xff\x80\x05\x30\xed\x5e\x10\xe3\xe7\x02\x4c\xa1\xaf\ \x68\x27\xc1\x65\x70\xd6\xe3\x29\x8a\xb6\x49\x19\x87\xf8\x1f\x4b\ \x60\x51\x46\xc5\x2f\xb7\x39\xe5\x61\x9a\x83\xe9\x0a\x4c\x97\xc4\ \x74\x04\x1c\xd7\x9a\x76\xd0\xac\x8c\x83\x12\x7c\xfa\x0c\xe6\xc4\ \xf0\xb7\x8c\xcc\x62\x22\x41\x2b\x83\x83\xb4\xdc\xd7\x47\x0b\x30\ \xe5\xb9\x8c\xec\xf4\x98\x36\xed\x02\x3b\x1c\x2f\x23\xc6\x61\x49\ \x14\x7d\x04\x33\x20\x2b\x3f\xc2\xfc\x88\xc5\x68\x1e\xf1\xfc\x19\ \x8f\x3b\xef\xef\x40\x0a\x1c\xd1\xa6\xd8\xb4\x67\x97\x78\x84\xed\ \xf2\x89\x4a\xa2\x1c\x73\x0e\xc1\x6c\x0d\xde\x8b\xe9\x61\xb7\x69\ \xbb\x91\x64\xbf\x5d\x9b\x01\x99\xe0\x44\xd1\x0c\x8e\xff\x0d\x3b\ \x9d\xc2\xb3\xc9\x4b\x70\x41\x9b\x9e\x00\x1d\x95\x6a\x90\xb2\xac\ \xd5\x4d\x01\x95\xfd\x2c\x62\xfa\x15\xc7\xff\x84\x67\x13\x0e\xc3\ \x4d\x6d\xdc\x09\xb6\xcb\x9a\x40\x55\xe7\xd9\xc5\x3f\x8f\xec\x4f\ \x23\x51\x13\x88\x69\x46\x12\xa5\xf8\x00\xd2\xe0\x89\x36\x5f\xdf\ \x58\x99\xce\xc1\x74\x0a\x25\x95\x41\xf6\xc7\xc4\xe0\x01\x78\x05\ \xde\x82\x31\x19\xdf\x80\x51\xbb\x31\xec\x50\xa8\xde\xcf\xc2\xf4\ \x0b\x4c\xc7\x61\xca\xbb\xba\x0f\x2e\x81\xd3\xe0\x2a\x78\x2e\x86\ \x69\x19\xf9\xc7\x1e\x55\x77\xa8\xdf\xd5\xd2\xb3\xe8\xfd\x49\x98\ \xa6\x61\xca\x09\xba\x0b\xce\x83\x03\x46\x83\xdc\x03\xcf\xc0\x0b\ \x49\x22\x8f\x8f\xc1\x35\xf7\xdd\x12\xae\xb4\xf4\x04\x6e\xa9\x0c\ \x2e\x94\xd7\x48\x16\x2f\xbc\x0d\xce\x81\xfd\xee\xec\x77\x2a\x73\ \x36\x7b\x2a\x3f\x72\x4b\x36\x90\xd4\x2d\xdd\xe8\x6a\xe9\xd1\x50\ \x88\x1e\x62\xbc\x0e\xce\x80\x7d\xee\x3a\xed\x90\x24\x31\x74\x47\ \xc2\x74\x03\x5c\x04\x87\xb4\x76\xb7\xdd\xd2\x4d\x3c\x71\x45\xe2\ \xb9\xb7\xba\xf8\xd5\x25\x14\x53\x75\x3e\x52\xbe\x78\xe8\xa0\xd6\ \x1e\x05\x09\xf3\x12\xf2\x49\xd0\xb7\xb1\xe0\xa4\x3e\x52\x97\xb4\ \xa9\x7d\x6d\x56\x3a\xf4\x94\xd6\xb2\xe9\x1e\xf1\x88\xda\xa5\xd6\ \xa0\xcc\xe5\x48\x3b\xc1\x96\x35\x2e\xfa\xa8\xcc\x29\x6d\x42\xd6\ \xea\x8b\xde\xfa\x34\xf1\x82\x4d\x4e\x9c\xca\xe1\x89\xac\xf3\x69\ \x8a\x88\xa6\x59\xd6\xa8\x53\x79\x6b\x75\x9e\x4f\x3e\x8e\x1b\xec\ \x0f\xe4\x1a\xda\xa0\x68\xeb\x4d\xed\x7f\x3d\xa9\x97\x96\x02\xf1\ \x2b\x1c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x91\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x2a\x00\x00\x00\x2b\x01\x03\x00\x00\x00\x34\x51\x88\xbd\ \x00\x00\x00\x06\x50\x4c\x54\x45\xff\xff\xff\x00\x00\x00\x55\xc2\ \xd3\x7e\x00\x00\x00\x01\x74\x52\x4e\x53\x00\x40\xe6\xd8\x66\x00\ \x00\x00\x39\x49\x44\x41\x54\x18\x57\x63\x60\xc0\x05\x14\x20\x54\ \x01\x84\xfa\x01\x26\x19\xff\x80\x29\x66\x08\x8f\xfd\x03\x98\xe2\ \x7f\x00\xa6\xe4\x0f\x80\x29\xfb\x06\x30\x55\x0f\xd1\xf6\x6f\x50\ \x6b\xe3\x87\x68\x63\x83\x50\x2c\x0c\x84\x00\x00\x91\xca\x1c\x09\ \xf6\x23\x2a\xfe\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x00\x70\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfc\x73\x8f\x50\ \x00\x00\x00\x06\x50\x4c\x54\x45\x00\xff\xff\xff\xff\xff\xb1\xb8\ \x5e\xa0\x00\x00\x00\x25\x49\x44\x41\x54\x78\x5e\xed\xcc\x21\x12\ \x00\x00\x04\x00\x41\xff\x7f\x34\x82\x11\x64\x75\x2f\x6e\xb8\xd8\ \x6a\xca\x0b\x00\x00\xf0\x9d\x01\x00\x40\x03\x94\x98\xeb\xc0\x19\ \x38\xa1\x84\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xad\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x18\x02\x03\x00\x00\x00\x58\x6b\x4f\xfa\ \x00\x00\x00\x09\x50\x4c\x54\x45\xff\xff\xff\xff\xff\xff\x00\x00\ \x00\x8e\xf4\xc3\xec\x00\x00\x00\x01\x74\x52\x4e\x53\x00\x40\xe6\ \xd8\x66\x00\x00\x00\x52\x49\x44\x41\x54\x08\x1d\x05\xc1\xb1\x0d\ \xc2\x30\x14\x05\xc0\x8b\x04\x1b\xd0\x3c\x4f\xe3\x8a\x9a\xe6\x47\ \x72\x1f\x17\x61\x1a\x57\x9e\x80\x41\xb9\xf3\x82\x40\xeb\xc8\x42\ \x2e\x64\x20\x67\x27\xb5\x48\x5d\xa4\x06\xa9\xb3\x4b\xd5\x92\xfa\ \xfe\x64\xcc\x8f\xdc\x17\xd9\x83\xf6\x1e\xe4\xd8\xdd\xe3\xd8\x1d\ \x73\x61\x2e\xb4\x8e\x27\xf0\x07\xd5\x18\x11\x1b\xed\x4d\x23\xf4\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\xf1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x2a\x00\x00\x00\x2c\x08\x03\x00\x00\x00\x24\x44\xda\x74\ \x00\x00\x01\x32\x50\x4c\x54\x45\xff\xff\xff\xfe\xfe\xfe\x01\x01\ \x01\xbe\xbe\xbe\xfd\xfd\xfd\x00\x00\x00\x64\x64\x64\xd2\xd2\xd2\ \x7c\x7c\x7c\xfb\xfb\xfb\xe7\xe7\xe7\x84\x84\x84\xd7\xd7\xd7\xe0\ \xe0\xe0\xe1\xe1\xe1\x0c\x0c\x0c\x28\x28\x28\xf5\xf5\xf5\xb3\xb3\ \xb3\x02\x02\x02\x95\x95\x95\x2e\x2e\x2e\x11\x11\x11\x6b\x6b\x6b\ \x03\x03\x03\x72\x72\x72\x49\x49\x49\xfc\xfc\xfc\x13\x13\x13\x04\ \x04\x04\x9f\x9f\x9f\xc4\xc4\xc4\xa9\xa9\xa9\x05\x05\x05\x57\x57\ \x57\x17\x17\x17\xf6\xf6\xf6\x16\x16\x16\xa6\xa6\xa6\xa0\xa0\xa0\ \x60\x60\x60\x24\x24\x24\x3e\x3e\x3e\x23\x23\x23\xb7\xb7\xb7\x4d\ \x4d\x4d\xf8\xf8\xf8\xc0\xc0\xc0\x30\x30\x30\x09\x09\x09\xec\xec\ \xec\x20\x20\x20\x8a\x8a\x8a\xda\xda\xda\xf1\xf1\xf1\x0d\x0d\x0d\ \x99\x99\x99\x19\x19\x19\xf9\xf9\xf9\xcd\xcd\xcd\xf4\xf4\xf4\x39\ \x39\x39\x2d\x2d\x2d\x3b\x3b\x3b\x12\x12\x12\x43\x43\x43\xc2\xc2\ \xc2\xa4\xa4\xa4\xdc\xdc\xdc\x55\x55\x55\x68\x68\x68\x5a\x5a\x5a\ \x50\x50\x50\xf0\xf0\xf0\x06\x06\x06\x1f\x1f\x1f\x74\x74\x74\xb1\ \xb1\xb1\x5d\x5d\x5d\x21\x21\x21\x36\x36\x36\x08\x08\x08\xea\xea\ \xea\xdb\xdb\xdb\x81\x81\x81\x9c\x9c\x9c\x8b\x8b\x8b\x75\x75\x75\ \xf2\xf2\xf2\x25\x25\x25\xce\xce\xce\x48\x48\x48\x63\x63\x63\xba\ \xba\xba\x53\x53\x53\x38\x38\x38\xf7\xf7\xf7\xe4\xe4\xe4\xa2\xa2\ \xa2\x4a\x4a\x4a\xf3\xf3\xf3\x5f\x5f\x5f\xf1\x69\x00\xec\x00\x00\ \x00\x01\x74\x52\x4e\x53\x00\x40\xe6\xd8\x66\x00\x00\x01\x6d\x49\ \x44\x41\x54\x78\x5e\xd5\x92\xc5\x76\xc3\x30\x10\x45\x3d\x92\x1d\ \x66\xe6\x94\x99\x99\x99\x99\x99\xe1\xff\x7f\xa1\x9e\x89\x93\x53\ \xa9\xb2\x4e\x76\x6d\xdf\xf2\xea\xfa\xbd\x59\xd8\xf8\x2b\xf1\x30\ \xeb\x5b\x58\xcc\x04\x37\x13\x3c\x96\x10\xc6\xb5\xad\x42\xda\x9a\ \x6f\x6d\x0d\x40\xb3\xad\x2c\xe8\xda\x1a\xe2\xb5\xf4\xd4\xdd\x71\ \xbf\xa1\x0d\x14\x7b\x1b\xed\x09\xd0\xbb\x03\x0d\x93\x0d\xea\x4d\ \xd8\x41\x2b\x33\x82\x6e\x2e\xac\x35\xc3\x39\xbb\x95\xe5\xbb\xa9\ \xdb\xa7\xbd\xc0\x47\xce\x64\x47\x27\x7e\x31\x3b\xa7\x71\x87\xda\ \xd1\x2c\x00\xf8\xe8\xda\x16\xcd\x7e\x17\x19\x09\xc3\x88\x94\xd1\ \x5d\xd5\xb4\xf6\xe1\x6e\xbf\xdf\x36\x36\xe9\x92\x90\xab\xeb\xa5\ \xf7\x09\xdb\x84\x61\xea\xcf\xbb\xee\x67\xd1\x1c\x1d\x43\x60\xa6\ \xd1\x5d\x89\xbb\x98\x53\xd3\xb8\xef\xa9\x81\x19\x5a\xa8\x80\xda\ \x4d\xd1\xeb\x3c\xbd\xc2\x42\x06\xbf\x5b\x54\x9b\xe6\x12\x9a\xcb\ \x4e\x0f\x1c\xd0\xb5\x77\xca\xfd\x35\x7a\x5b\xaf\x83\x8d\x24\xba\ \x5b\xca\x0b\xb6\x71\x5f\x0a\x8b\xee\x2a\xdc\xc0\x9e\xa5\x08\x4b\ \x29\xf6\x83\x96\x32\x69\xf3\x87\xe9\xdf\x67\x6a\xb7\x0a\xb2\x7b\ \xe8\x62\xb2\x23\xd9\x84\x02\xf2\x63\x2e\xe4\x04\xd9\xe9\x99\x64\ \x9e\x53\xc3\x85\x48\x2f\x69\xe9\x0a\x44\x7a\x6d\x53\x96\x8c\x08\ \x14\x6e\xa2\x48\x6f\x8b\x02\x8d\x97\xb0\xf5\x1e\xa4\xad\x07\xda\ \x7a\x14\x58\x45\xfd\xd7\x57\xe9\x82\x27\xa1\xe1\x19\x97\x4a\x2f\ \x72\xab\x19\x43\x5e\x7e\xad\x73\xce\xf9\x1b\x7d\xfd\xce\x31\x1f\ \xe0\x60\xcc\x27\xad\x65\x6d\x4c\xcc\x12\xc2\xbc\x4e\x23\x13\x39\ \x41\x89\x79\xc1\x50\x35\xfc\x7e\xeb\xff\xca\x17\x55\x71\x20\xbb\ \xd7\xbb\x2e\xca\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x01\x1a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x2a\x00\x00\x00\x2b\x02\x03\x00\x00\x00\x73\xf1\xf2\x6d\ \x00\x00\x00\x0c\x50\x4c\x54\x45\xff\xff\xff\x80\x80\x80\x00\x00\ \x00\xff\xff\xff\x45\x4a\x4b\x38\x00\x00\x00\x01\x74\x52\x4e\x53\ \x00\x40\xe6\xd8\x66\x00\x00\x00\xbc\x49\x44\x41\x54\x78\x5e\x4d\ \xcb\xbd\x89\x04\x31\x0c\x86\x61\xa1\xd0\x55\x38\x1c\xdc\x8f\x26\ \xd8\x12\xa6\x0a\xb3\xe1\xe6\x4e\x2e\x32\x07\x02\xdb\x07\x5b\xc0\ \x96\xb4\x55\x9c\x47\x3f\x33\x56\xf4\x21\xde\x07\x42\xcd\xe0\x17\ \x46\xbd\xf6\xb6\xec\x1a\xef\xa6\x41\x02\x34\xb2\x41\x80\x60\x24\ \xcf\x9d\x9a\xee\x38\x8b\x7e\x78\x83\x4f\x7e\x64\xb3\x30\x68\x57\ \x10\x32\x74\x22\x05\x98\x91\x89\x0c\xe4\x50\x88\x0c\xd4\x44\xe4\ \x20\xce\xdc\xc1\x98\x89\x83\x33\x71\x20\x89\x02\xe4\x9d\x1d\x60\ \xa1\x2e\x40\xff\xe9\x02\xfd\xf1\x2a\x0e\xd2\xfe\x7b\x81\x50\xda\ \x02\x8e\xef\x02\x3e\x0b\x78\xb3\x6c\x01\x7f\x5d\x1a\x03\x66\x1d\ \x34\x00\x03\x42\x15\xb0\xe4\x0a\x24\x37\x50\x24\x57\xc0\x92\x2b\ \xe8\x92\x1b\x90\xdc\x80\xe4\x0a\x24\x37\xf0\x73\x6f\x1c\x70\x5f\ \x5b\x76\x3c\xc7\x3f\xd6\x51\x68\x20\x52\x85\xdb\x5f\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x3e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\xf3\x49\x44\x41\x54\x38\xcb\xed\x94\x41\x6e\ \x83\x30\x10\x45\x9f\x25\xe0\x0c\xbd\x43\x2f\xd0\x13\xe5\xfa\x55\ \x62\x9b\xd8\x33\x01\x77\x81\x0d\x24\x85\xaa\x31\xca\xaa\x1d\x89\ \x8d\x0d\x4f\xef\x7b\x06\x37\x6d\xdb\x26\x0e\x94\xaa\x9a\xad\xf5\ \x06\x40\x44\xaa\xa0\x5d\xd7\xed\xee\x35\xbc\xa8\xfe\xc1\x7f\x01\ \x6c\x8c\xd9\xdb\x4a\x87\x8d\x53\xda\x60\x8c\x03\x0c\x01\xf4\x0a\ \xd2\x43\x74\x98\xb7\xf7\x83\x47\x31\x2a\x68\x81\x7a\x10\x07\xd1\ \x1d\x3c\xe3\x41\x26\xa0\xf6\x0b\x34\x38\x88\x97\x4a\x70\x1a\x61\ \x88\x4b\x74\xf5\x93\x65\xb4\xd3\x23\x35\xc6\x69\x80\x5b\x00\x29\ \xd1\x3d\xa8\x83\x60\x57\x60\x5f\x01\x96\x1c\x7d\xb6\x7c\x30\x95\ \x6a\x70\xfe\x70\x06\xba\x15\xd4\xe5\x14\x76\x01\xff\x74\xfd\xdd\ \x55\xb8\xe4\xce\xdb\x05\x5c\x26\x41\xfd\xb2\x06\x34\x7b\x17\xf5\ \xe6\x8f\x10\xce\xdf\xa1\xc5\x34\xe6\x89\xa8\x6a\x5e\xf8\x9c\x46\ \x6a\xb6\x74\x10\xb3\xa9\xac\x1a\xf8\x34\xf8\x7a\xce\xa6\x16\x62\ \x0f\x6a\xef\x1b\x58\x52\x54\x81\xa5\x98\x6e\x4c\x45\xf4\x70\xeb\ \x9f\x07\x9b\x8f\xd3\xaf\xdf\xfd\x02\xd6\xbd\xde\xdf\x70\xdb\x04\ \x83\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x08\ \x06\x27\x5a\x67\ \x00\x62\ \x00\x6f\x00\x6c\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x02\xfc\x42\x47\ \x00\x69\ \x00\x74\x00\x61\x00\x6c\x00\x69\x00\x63\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\x49\xdb\xa7\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x10\ \x0f\x9b\x88\x67\ \x00\x62\ \x00\x72\x00\x69\x00\x6e\x00\x67\x00\x74\x00\x6f\x00\x66\x00\x72\x00\x6f\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\x4a\xdb\xa7\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x33\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x08\xd5\xc4\xe7\ \x00\x75\ \x00\x6e\x00\x64\x00\x65\x00\x72\x00\x6c\x00\x69\x00\x6e\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\x4b\xdb\xa7\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x34\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x03\x4a\x23\xe7\ \x00\x6c\ \x00\x69\x00\x6e\x00\x65\x00\x70\x00\x6f\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x0c\xad\x0f\x07\ \x00\x64\ \x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x05\x6c\x22\xc7\ \x00\x6c\ \x00\x69\x00\x6e\x00\x65\x00\x63\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\x50\xdb\xa7\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x0a\x2b\x97\xe7\ \x00\x70\ \x00\x6f\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x05\xaa\x0c\xc7\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x70\x00\x6f\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x06\x43\xe3\x67\ \x00\x66\ \x00\x6c\x00\x6f\x00\x6f\x00\x64\x00\x66\x00\x69\x00\x6c\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x0f\x0d\x22\x27\ \x00\x73\ \x00\x65\x00\x6e\x00\x64\x00\x74\x00\x6f\x00\x62\x00\x61\x00\x63\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x02\ \x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x02\x11\ \x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x03\xb0\ \x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x05\x26\ \x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\x09\xf3\ \x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x01\x16\ \x00\x00\x00\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x05\x8a\ \x00\x00\x01\x32\x00\x00\x00\x00\x00\x01\x00\x00\x09\x5e\ \x00\x00\x01\x92\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x18\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x0e\x0d\ \x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x04\x28\ \x00\x00\x01\x76\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x67\ \x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x06\x1b\ \x00\x00\x01\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x2b\ \x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x02\x87\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/diagramscene_rc3.py0000644000076500000240000005116012536324427026455 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:38:20 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x01\x12\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0b\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x7f\xf5\x94\x3b\ \x00\x00\x00\xd9\x49\x44\x41\x54\x28\x53\x7d\x90\x31\x0e\x45\x40\ \x10\x86\x47\x24\x24\x1a\x0d\x0d\xd1\x22\x51\x70\x80\x6d\x5c\x40\ \xe7\x3c\x0e\x21\x0a\x47\x71\x19\xb5\x4e\xa9\xc1\x78\x33\xb2\x8b\ \xf7\xec\xdb\xe4\xcb\x66\x76\xfe\xf9\x67\x76\xc0\x30\x0c\x04\x80\ \x07\xf4\x66\x59\x16\x26\x49\x82\x9f\x03\xc4\xbe\xef\x94\x3b\x05\ \x69\x9a\x32\x24\x08\xc3\xf0\x51\x58\xd7\x35\x17\x01\x05\x04\x55\ \xde\x5d\xe8\x76\x1c\x87\x73\xb6\x6d\xe3\xc3\x59\x0a\xef\x44\x51\ \xc4\xe2\x20\x08\xf4\xce\xeb\xba\x62\xdb\xb6\x6a\x94\xbe\xef\x4f\ \xb1\x7c\x28\x8a\x82\xc9\xf3\x1c\x7d\xdf\x67\x03\x21\x04\x0e\xc3\ \xa0\x4c\x40\xb7\x0d\xd3\x34\x59\xdc\x75\xdd\x25\xfe\x9e\x79\xdb\ \x36\x9c\xa6\x89\x63\xd9\x21\x8e\x63\x1c\xc7\x11\xd5\xcc\x6f\x1f\ \x24\x64\xbe\xaa\xaa\xff\xdb\x58\x96\x45\x8d\x46\x5d\x5e\xb7\x41\ \xcc\xf3\x8c\x4d\xd3\xa0\xcc\x67\x59\x76\x39\x7b\x9e\xa7\x70\x5d\ \xf7\xe7\xd3\xda\x6d\x48\xa8\xa8\x2c\x4b\xd5\xf1\x00\xd0\xc0\x13\ \xc8\x06\xaf\x16\x28\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x00\xf7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0b\x00\x00\x00\x0c\x08\x06\x00\x00\x00\xb4\xa9\x47\x9e\ \x00\x00\x00\xbe\x49\x44\x41\x54\x28\x53\x85\x91\x31\x0e\x40\x40\ \x10\x45\x57\x4d\x24\x4a\x37\xa1\xa4\x91\x38\x85\x5e\x74\xaa\x3d\ \x8a\x4e\x54\x7b\x80\xad\x75\x6e\xa0\xd1\x6c\xe7\x12\xc4\x97\x19\ \xb1\x21\x59\x51\xfc\x62\xfe\xbc\xfc\x99\xcc\x08\x00\x82\x74\x1c\ \x07\xa6\x69\x82\x10\xc2\x29\xcf\xf3\x2e\xf0\xd6\x38\x8e\xa8\xaa\ \x8a\x55\x14\x05\x03\x49\x92\x58\xef\x05\x3f\xd5\x75\x1d\xc3\x5a\ \x6b\xd0\x54\xf2\x9c\x20\x35\xeb\xba\x66\x78\x5d\x57\xdc\xfe\x67\ \x72\x9a\xa6\x88\xe3\x18\x4f\xcf\x09\x6e\xdb\x06\xdf\xf7\x51\x96\ \xa5\x5d\xc1\x09\x53\x73\x9e\x67\x5e\x41\x4a\xf9\x9f\x3c\x0c\x03\ \xc3\x4a\xa9\xff\xe4\xb6\x6d\x19\x5e\x96\xe5\x3f\x39\xcf\x73\x84\ \x61\x88\x7d\xdf\xdf\xc9\x54\x18\x63\xec\xe1\x49\x41\x10\x20\x8a\ \x22\x5b\x37\x4d\x03\x9b\xdc\xf7\xfd\xf5\xce\x8f\x57\x67\x59\xc6\ \x13\x4e\xfa\x57\x56\x58\xe8\x40\xda\xc6\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x72\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfc\x73\x8f\x50\ \x00\x00\x00\x06\x50\x4c\x54\x45\xff\xff\xff\x00\x00\x00\x55\xc2\ \xd3\x7e\x00\x00\x00\x27\x49\x44\x41\x54\x48\xc7\x63\x60\x80\x82\ \x06\x06\x34\x30\x2a\x30\x2a\x30\x2a\x30\x2a\x80\x2a\xf0\x1f\x15\ \xfc\x1b\x0d\xa0\x51\x81\x51\x81\x51\x01\x22\x05\x00\xd5\x3b\x4e\ \xf0\x73\xe3\x6f\xe9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x01\x25\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\xda\x49\x44\x41\x54\x48\xc7\xed\x94\x41\x0e\ \x82\x30\x10\x45\x1f\x46\x38\x83\x77\xf0\xfe\x87\xf0\x1a\x5e\x40\ \xb1\xa5\x74\xa6\x1a\x5c\xb4\x04\x8c\xa2\x11\xca\xc2\xc4\x49\xd8\ \xd0\xe4\xe5\xf5\xf7\x67\x8a\xb2\x2c\x3b\x16\x4c\x08\xa1\x78\xf5\ \x7f\x0b\xa0\xaa\xb3\xa0\x55\x55\x4d\x9e\x6d\x58\x69\xfe\xe0\x1f\ \x06\x6f\x33\x30\xba\x55\xc0\xdd\xed\x0a\x37\x0f\xa1\x05\x75\x20\ \x96\x62\xb7\xcf\x60\x1c\x5c\x82\x36\xa0\x16\xc4\x66\x8a\x42\xed\ \x00\xf5\x16\xe4\x92\x09\x2c\x97\x68\x29\x26\x7e\x9a\xcb\xd8\xd7\ \xe0\xcd\x08\xdc\x64\x02\xbb\xf3\x60\xaa\x39\xc1\xed\x39\x41\xfb\ \xac\xcd\x00\x7e\xb7\xfe\x3e\x67\x5c\xc7\x8c\x43\x93\xe2\x48\x19\ \x4f\x2d\xea\x57\x95\xed\x8e\x87\x21\x4b\x49\x96\xbe\x8e\xa6\x92\ \x1a\x31\xeb\xf1\xfc\x29\x56\xaa\xef\x6b\xb0\x20\xc9\x54\x47\x0f\ \xf8\x35\xb8\x4d\xd7\x56\x03\xe2\x20\x98\xc7\xaa\xf5\xb7\x98\x05\ \xd6\xde\xd4\x3e\xf7\x57\x1a\xb8\x3a\x00\x8a\xa5\xcb\x66\x6a\xee\ \x91\x61\xa9\x66\xc0\x0f\xb5\x5d\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x00\x74\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfc\x73\x8f\x50\ \x00\x00\x00\x06\x50\x4c\x54\x45\xc0\xc0\xc0\xff\xff\xff\x2b\x69\ \x87\xb4\x00\x00\x00\x29\x49\x44\x41\x54\x48\x4b\x63\xf8\x0f\x05\ \x0d\x0c\x50\x30\x2a\x30\x2a\x30\x2a\x30\x2a\x40\xa4\x00\x0c\xd8\ \x43\xc4\xff\x8d\x0a\x8c\x0a\x8c\x0a\x8c\x0a\x60\x17\x00\x00\x3f\ \x78\xe4\xb7\xe3\x90\x30\x5f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x00\xfa\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0b\x00\x00\x00\x0c\x08\x06\x00\x00\x00\xb4\xa9\x47\x9e\ \x00\x00\x00\xc1\x49\x44\x41\x54\x28\x53\xcd\x90\x31\x0a\x84\x30\ \x10\x45\xc7\xce\x56\xb0\xd3\x46\x10\x6f\x60\xe5\x01\xbc\x42\x40\ \x0b\x9b\x74\x22\x11\xbc\x94\x9d\x27\xd2\x03\x78\x03\x03\x19\xf7\ \x0f\xb8\xd9\x2c\x6c\xbf\x81\x4f\x66\xde\xfc\x7c\xc8\x50\x1c\xc7\ \x4c\x44\xa2\x28\x8a\x38\xcf\x73\x7e\x1d\xc2\xfd\xc9\xd3\x34\x65\ \xd2\x5a\x73\x51\x14\x02\x86\x61\xe0\x79\x9e\xc5\x8c\x1b\x3d\x38\ \xe6\xe3\x38\x32\x61\xa0\x94\x12\x88\xfa\x5b\xe0\x98\x3b\xe7\x42\ \x33\xc0\x2f\x33\xea\x7f\x4a\xee\xba\x4e\xcc\xd7\x75\x05\x0f\xd0\ \x83\xf7\x7d\xef\x93\xb1\x26\xc0\x7d\xdf\x03\xf3\x71\x1c\xc2\x97\ \x65\xf1\xc9\xeb\xba\x0a\x9c\xa6\x29\x30\x3f\x21\xdb\xb6\xf9\x64\ \xa8\xae\x6b\x19\x94\x65\xc9\x6d\xdb\x72\x55\x55\xd2\x37\x4d\xc3\ \xd6\x5a\x9f\xfc\xc8\x18\xc3\x59\x96\x89\x29\x49\x12\xc6\x5f\xce\ \xf3\x7c\x6f\xe9\x06\x33\x20\x38\xcd\x08\x1e\x78\x76\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x60\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfc\x73\x8f\x50\ \x00\x00\x00\x03\x50\x4c\x54\x45\xff\xff\xff\xa7\xc4\x1b\xc8\x00\ \x00\x00\x18\x49\x44\x41\x54\x78\x5e\xed\xc0\x31\x01\x00\x00\x00\ \xc2\x20\xfb\xa7\x36\xc5\x3e\x58\x0b\x00\xe0\x08\x6f\x00\x01\x01\ \x3e\xc3\x31\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x8d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x1b\x00\x00\x00\x1b\x01\x03\x00\x00\x00\xb7\x1a\x66\x16\ \x00\x00\x00\x06\x50\x4c\x54\x45\xff\xff\xff\x00\x00\x00\x55\xc2\ \xd3\x7e\x00\x00\x00\x01\x74\x52\x4e\x53\x00\x40\xe6\xd8\x66\x00\ \x00\x00\x35\x49\x44\x41\x54\x08\x99\x63\x60\xc0\x02\xd8\x1b\x80\ \x04\xff\x01\x4c\x82\xfd\x01\x48\xba\x00\x44\x58\x80\x08\x19\x10\ \xc1\x07\xd6\x02\x22\x98\x41\xfa\x18\x41\x0a\x19\xc0\x0a\xeb\x40\ \x84\x3d\x16\x42\x0e\xdd\x46\x00\xb5\x00\x09\x40\xa3\x31\xbf\x5e\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\x3f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xd1\x49\x44\x41\x54\x38\xcb\x7d\ \x95\x4b\x68\x53\x41\x14\x86\x93\xe6\xd1\x08\x49\x28\x04\x5b\x17\ \x05\x35\xee\x5a\xbb\x50\xb2\xb1\xda\x85\x8f\x5d\xb5\xbe\x16\x76\ \x29\x2d\x42\x49\x57\xed\xce\x8d\x0a\xa2\xe0\xba\xab\x14\x84\x8a\ \x2b\x51\x44\x45\x17\x0a\x8a\x55\xf1\x01\x1a\xb0\x56\x23\xad\xa2\ \xc5\xb6\x92\x6a\x95\xbe\x34\xcd\xc3\xe3\x7f\x6e\xce\x64\xe6\x4e\ \xd2\x16\x3e\xe6\xde\xce\x3f\x7f\x66\xce\x63\xae\x87\x88\x3c\x26\ \xf8\xf3\x01\x7e\xa8\x07\x01\x50\x67\x6b\x0c\x6d\x9d\xa1\x0d\xf2\ \xda\xca\x9c\x21\xf2\x8a\x11\x51\x7f\x7f\x5e\x16\x6c\x04\x61\xe0\ \xaf\x61\xea\x77\xb4\x03\x03\x4a\xdb\x08\x22\xe2\xe1\x35\x85\x8e\ \xe9\xbf\xa1\x21\x2a\x75\x77\x53\xa1\x2c\x66\x36\x83\x28\xcf\x57\ \x69\x53\x29\x2a\xf5\xf4\x50\x29\x18\x54\xda\x38\x68\x70\xe6\xcd\ \xe3\x97\x60\x5a\xec\xed\xa5\x42\x4b\x0b\xe5\xf0\xfe\x5d\x9b\x6f\ \x55\xe6\xca\xb4\x34\x3c\x4c\xc5\x64\x92\x0a\x6d\x6d\xb4\x8c\xf7\ \x71\xad\x8d\x3b\x5a\x31\xa6\xd5\x64\x32\xbf\x8a\x9d\xe6\x5a\x5b\ \xe9\x2f\xde\xff\x80\x05\x30\xed\x5e\x10\xe3\xe7\x02\x4c\xa1\xaf\ \x68\x27\xc1\x65\x70\xd6\xe3\x29\x8a\xb6\x49\x19\x87\xf8\x1f\x4b\ \x60\x51\x46\xc5\x2f\xb7\x39\xe5\x61\x9a\x83\xe9\x0a\x4c\x97\xc4\ \x74\x04\x1c\xd7\x9a\x76\xd0\xac\x8c\x83\x12\x7c\xfa\x0c\xe6\xc4\ \xf0\xb7\x8c\xcc\x62\x22\x41\x2b\x83\x83\xb4\xdc\xd7\x47\x0b\x30\ \xe5\xb9\x8c\xec\xf4\x98\x36\xed\x02\x3b\x1c\x2f\x23\xc6\x61\x49\ \x14\x7d\x04\x33\x20\x2b\x3f\xc2\xfc\x88\xc5\x68\x1e\xf1\xfc\x19\ \x8f\x3b\xef\xef\x40\x0a\x1c\xd1\xa6\xd8\xb4\x67\x97\x78\x84\xed\ \xf2\x89\x4a\xa2\x1c\x73\x0e\xc1\x6c\x0d\xde\x8b\xe9\x61\xb7\x69\ \xbb\x91\x64\xbf\x5d\x9b\x01\x99\xe0\x44\xd1\x0c\x8e\xff\x0d\x3b\ \x9d\xc2\xb3\xc9\x4b\x70\x41\x9b\x9e\x00\x1d\x95\x6a\x90\xb2\xac\ \xd5\x4d\x01\x95\xfd\x2c\x62\xfa\x15\xc7\xff\x84\x67\x13\x0e\xc3\ \x4d\x6d\xdc\x09\xb6\xcb\x9a\x40\x55\xe7\xd9\xc5\x3f\x8f\xec\x4f\ \x23\x51\x13\x88\x69\x46\x12\xa5\xf8\x00\xd2\xe0\x89\x36\x5f\xdf\ \x58\x99\xce\xc1\x74\x0a\x25\x95\x41\xf6\xc7\xc4\xe0\x01\x78\x05\ \xde\x82\x31\x19\xdf\x80\x51\xbb\x31\xec\x50\xa8\xde\xcf\xc2\xf4\ \x0b\x4c\xc7\x61\xca\xbb\xba\x0f\x2e\x81\xd3\xe0\x2a\x78\x2e\x86\ \x69\x19\xf9\xc7\x1e\x55\x77\xa8\xdf\xd5\xd2\xb3\xe8\xfd\x49\x98\ \xa6\x61\xca\x09\xba\x0b\xce\x83\x03\x46\x83\xdc\x03\xcf\xc0\x0b\ \x49\x22\x8f\x8f\xc1\x35\xf7\xdd\x12\xae\xb4\xf4\x04\x6e\xa9\x0c\ \x2e\x94\xd7\x48\x16\x2f\xbc\x0d\xce\x81\xfd\xee\xec\x77\x2a\x73\ \x36\x7b\x2a\x3f\x72\x4b\x36\x90\xd4\x2d\xdd\xe8\x6a\xe9\xd1\x50\ \x88\x1e\x62\xbc\x0e\xce\x80\x7d\xee\x3a\xed\x90\x24\x31\x74\x47\ \xc2\x74\x03\x5c\x04\x87\xb4\x76\xb7\xdd\xd2\x4d\x3c\x71\x45\xe2\ \xb9\xb7\xba\xf8\xd5\x25\x14\x53\x75\x3e\x52\xbe\x78\xe8\xa0\xd6\ \x1e\x05\x09\xf3\x12\xf2\x49\xd0\xb7\xb1\xe0\xa4\x3e\x52\x97\xb4\ \xa9\x7d\x6d\x56\x3a\xf4\x94\xd6\xb2\xe9\x1e\xf1\x88\xda\xa5\xd6\ \xa0\xcc\xe5\x48\x3b\xc1\x96\x35\x2e\xfa\xa8\xcc\x29\x6d\x42\xd6\ \xea\x8b\xde\xfa\x34\xf1\x82\x4d\x4e\x9c\xca\xe1\x89\xac\xf3\x69\ \x8a\x88\xa6\x59\xd6\xa8\x53\x79\x6b\x75\x9e\x4f\x3e\x8e\x1b\xec\ \x0f\xe4\x1a\xda\xa0\x68\xeb\x4d\xed\x7f\x3d\xa9\x97\x96\x02\xf1\ \x2b\x1c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x91\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x2a\x00\x00\x00\x2b\x01\x03\x00\x00\x00\x34\x51\x88\xbd\ \x00\x00\x00\x06\x50\x4c\x54\x45\xff\xff\xff\x00\x00\x00\x55\xc2\ \xd3\x7e\x00\x00\x00\x01\x74\x52\x4e\x53\x00\x40\xe6\xd8\x66\x00\ \x00\x00\x39\x49\x44\x41\x54\x18\x57\x63\x60\xc0\x05\x14\x20\x54\ \x01\x84\xfa\x01\x26\x19\xff\x80\x29\x66\x08\x8f\xfd\x03\x98\xe2\ \x7f\x00\xa6\xe4\x0f\x80\x29\xfb\x06\x30\x55\x0f\xd1\xf6\x6f\x50\ \x6b\xe3\x87\x68\x63\x83\x50\x2c\x0c\x84\x00\x00\x91\xca\x1c\x09\ \xf6\x23\x2a\xfe\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x00\x70\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x7f\x00\x00\x00\x7f\x01\x03\x00\x00\x00\xfc\x73\x8f\x50\ \x00\x00\x00\x06\x50\x4c\x54\x45\x00\xff\xff\xff\xff\xff\xb1\xb8\ \x5e\xa0\x00\x00\x00\x25\x49\x44\x41\x54\x78\x5e\xed\xcc\x21\x12\ \x00\x00\x04\x00\x41\xff\x7f\x34\x82\x11\x64\x75\x2f\x6e\xb8\xd8\ \x6a\xca\x0b\x00\x00\xf0\x9d\x01\x00\x40\x03\x94\x98\xeb\xc0\x19\ \x38\xa1\x84\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xad\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x18\x02\x03\x00\x00\x00\x58\x6b\x4f\xfa\ \x00\x00\x00\x09\x50\x4c\x54\x45\xff\xff\xff\xff\xff\xff\x00\x00\ \x00\x8e\xf4\xc3\xec\x00\x00\x00\x01\x74\x52\x4e\x53\x00\x40\xe6\ \xd8\x66\x00\x00\x00\x52\x49\x44\x41\x54\x08\x1d\x05\xc1\xb1\x0d\ \xc2\x30\x14\x05\xc0\x8b\x04\x1b\xd0\x3c\x4f\xe3\x8a\x9a\xe6\x47\ \x72\x1f\x17\x61\x1a\x57\x9e\x80\x41\xb9\xf3\x82\x40\xeb\xc8\x42\ \x2e\x64\x20\x67\x27\xb5\x48\x5d\xa4\x06\xa9\xb3\x4b\xd5\x92\xfa\ \xfe\x64\xcc\x8f\xdc\x17\xd9\x83\xf6\x1e\xe4\xd8\xdd\xe3\xd8\x1d\ \x73\x61\x2e\xb4\x8e\x27\xf0\x07\xd5\x18\x11\x1b\xed\x4d\x23\xf4\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\xf1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x2a\x00\x00\x00\x2c\x08\x03\x00\x00\x00\x24\x44\xda\x74\ \x00\x00\x01\x32\x50\x4c\x54\x45\xff\xff\xff\xfe\xfe\xfe\x01\x01\ \x01\xbe\xbe\xbe\xfd\xfd\xfd\x00\x00\x00\x64\x64\x64\xd2\xd2\xd2\ \x7c\x7c\x7c\xfb\xfb\xfb\xe7\xe7\xe7\x84\x84\x84\xd7\xd7\xd7\xe0\ \xe0\xe0\xe1\xe1\xe1\x0c\x0c\x0c\x28\x28\x28\xf5\xf5\xf5\xb3\xb3\ \xb3\x02\x02\x02\x95\x95\x95\x2e\x2e\x2e\x11\x11\x11\x6b\x6b\x6b\ \x03\x03\x03\x72\x72\x72\x49\x49\x49\xfc\xfc\xfc\x13\x13\x13\x04\ \x04\x04\x9f\x9f\x9f\xc4\xc4\xc4\xa9\xa9\xa9\x05\x05\x05\x57\x57\ \x57\x17\x17\x17\xf6\xf6\xf6\x16\x16\x16\xa6\xa6\xa6\xa0\xa0\xa0\ \x60\x60\x60\x24\x24\x24\x3e\x3e\x3e\x23\x23\x23\xb7\xb7\xb7\x4d\ \x4d\x4d\xf8\xf8\xf8\xc0\xc0\xc0\x30\x30\x30\x09\x09\x09\xec\xec\ \xec\x20\x20\x20\x8a\x8a\x8a\xda\xda\xda\xf1\xf1\xf1\x0d\x0d\x0d\ \x99\x99\x99\x19\x19\x19\xf9\xf9\xf9\xcd\xcd\xcd\xf4\xf4\xf4\x39\ \x39\x39\x2d\x2d\x2d\x3b\x3b\x3b\x12\x12\x12\x43\x43\x43\xc2\xc2\ \xc2\xa4\xa4\xa4\xdc\xdc\xdc\x55\x55\x55\x68\x68\x68\x5a\x5a\x5a\ \x50\x50\x50\xf0\xf0\xf0\x06\x06\x06\x1f\x1f\x1f\x74\x74\x74\xb1\ \xb1\xb1\x5d\x5d\x5d\x21\x21\x21\x36\x36\x36\x08\x08\x08\xea\xea\ \xea\xdb\xdb\xdb\x81\x81\x81\x9c\x9c\x9c\x8b\x8b\x8b\x75\x75\x75\ \xf2\xf2\xf2\x25\x25\x25\xce\xce\xce\x48\x48\x48\x63\x63\x63\xba\ \xba\xba\x53\x53\x53\x38\x38\x38\xf7\xf7\xf7\xe4\xe4\xe4\xa2\xa2\ \xa2\x4a\x4a\x4a\xf3\xf3\xf3\x5f\x5f\x5f\xf1\x69\x00\xec\x00\x00\ \x00\x01\x74\x52\x4e\x53\x00\x40\xe6\xd8\x66\x00\x00\x01\x6d\x49\ \x44\x41\x54\x78\x5e\xd5\x92\xc5\x76\xc3\x30\x10\x45\x3d\x92\x1d\ \x66\xe6\x94\x99\x99\x99\x99\x99\xe1\xff\x7f\xa1\x9e\x89\x93\x53\ \xa9\xb2\x4e\x76\x6d\xdf\xf2\xea\xfa\xbd\x59\xd8\xf8\x2b\xf1\x30\ \xeb\x5b\x58\xcc\x04\x37\x13\x3c\x96\x10\xc6\xb5\xad\x42\xda\x9a\ \x6f\x6d\x0d\x40\xb3\xad\x2c\xe8\xda\x1a\xe2\xb5\xf4\xd4\xdd\x71\ \xbf\xa1\x0d\x14\x7b\x1b\xed\x09\xd0\xbb\x03\x0d\x93\x0d\xea\x4d\ \xd8\x41\x2b\x33\x82\x6e\x2e\xac\x35\xc3\x39\xbb\x95\xe5\xbb\xa9\ \xdb\xa7\xbd\xc0\x47\xce\x64\x47\x27\x7e\x31\x3b\xa7\x71\x87\xda\ \xd1\x2c\x00\xf8\xe8\xda\x16\xcd\x7e\x17\x19\x09\xc3\x88\x94\xd1\ \x5d\xd5\xb4\xf6\xe1\x6e\xbf\xdf\x36\x36\xe9\x92\x90\xab\xeb\xa5\ \xf7\x09\xdb\x84\x61\xea\xcf\xbb\xee\x67\xd1\x1c\x1d\x43\x60\xa6\ \xd1\x5d\x89\xbb\x98\x53\xd3\xb8\xef\xa9\x81\x19\x5a\xa8\x80\xda\ \x4d\xd1\xeb\x3c\xbd\xc2\x42\x06\xbf\x5b\x54\x9b\xe6\x12\x9a\xcb\ \x4e\x0f\x1c\xd0\xb5\x77\xca\xfd\x35\x7a\x5b\xaf\x83\x8d\x24\xba\ \x5b\xca\x0b\xb6\x71\x5f\x0a\x8b\xee\x2a\xdc\xc0\x9e\xa5\x08\x4b\ \x29\xf6\x83\x96\x32\x69\xf3\x87\xe9\xdf\x67\x6a\xb7\x0a\xb2\x7b\ \xe8\x62\xb2\x23\xd9\x84\x02\xf2\x63\x2e\xe4\x04\xd9\xe9\x99\x64\ \x9e\x53\xc3\x85\x48\x2f\x69\xe9\x0a\x44\x7a\x6d\x53\x96\x8c\x08\ \x14\x6e\xa2\x48\x6f\x8b\x02\x8d\x97\xb0\xf5\x1e\xa4\xad\x07\xda\ \x7a\x14\x58\x45\xfd\xd7\x57\xe9\x82\x27\xa1\xe1\x19\x97\x4a\x2f\ \x72\xab\x19\x43\x5e\x7e\xad\x73\xce\xf9\x1b\x7d\xfd\xce\x31\x1f\ \xe0\x60\xcc\x27\xad\x65\x6d\x4c\xcc\x12\xc2\xbc\x4e\x23\x13\x39\ \x41\x89\x79\xc1\x50\x35\xfc\x7e\xeb\xff\xca\x17\x55\x71\x20\xbb\ \xd7\xbb\x2e\xca\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x01\x1a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x2a\x00\x00\x00\x2b\x02\x03\x00\x00\x00\x73\xf1\xf2\x6d\ \x00\x00\x00\x0c\x50\x4c\x54\x45\xff\xff\xff\x80\x80\x80\x00\x00\ \x00\xff\xff\xff\x45\x4a\x4b\x38\x00\x00\x00\x01\x74\x52\x4e\x53\ \x00\x40\xe6\xd8\x66\x00\x00\x00\xbc\x49\x44\x41\x54\x78\x5e\x4d\ \xcb\xbd\x89\x04\x31\x0c\x86\x61\xa1\xd0\x55\x38\x1c\xdc\x8f\x26\ \xd8\x12\xa6\x0a\xb3\xe1\xe6\x4e\x2e\x32\x07\x02\xdb\x07\x5b\xc0\ \x96\xb4\x55\x9c\x47\x3f\x33\x56\xf4\x21\xde\x07\x42\xcd\xe0\x17\ \x46\xbd\xf6\xb6\xec\x1a\xef\xa6\x41\x02\x34\xb2\x41\x80\x60\x24\ \xcf\x9d\x9a\xee\x38\x8b\x7e\x78\x83\x4f\x7e\x64\xb3\x30\x68\x57\ \x10\x32\x74\x22\x05\x98\x91\x89\x0c\xe4\x50\x88\x0c\xd4\x44\xe4\ \x20\xce\xdc\xc1\x98\x89\x83\x33\x71\x20\x89\x02\xe4\x9d\x1d\x60\ \xa1\x2e\x40\xff\xe9\x02\xfd\xf1\x2a\x0e\xd2\xfe\x7b\x81\x50\xda\ \x02\x8e\xef\x02\x3e\x0b\x78\xb3\x6c\x01\x7f\x5d\x1a\x03\x66\x1d\ \x34\x00\x03\x42\x15\xb0\xe4\x0a\x24\x37\x50\x24\x57\xc0\x92\x2b\ \xe8\x92\x1b\x90\xdc\x80\xe4\x0a\x24\x37\xf0\x73\x6f\x1c\x70\x5f\ \x5b\x76\x3c\xc7\x3f\xd6\x51\x68\x20\x52\x85\xdb\x5f\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x3e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\xf3\x49\x44\x41\x54\x38\xcb\xed\x94\x41\x6e\ \x83\x30\x10\x45\x9f\x25\xe0\x0c\xbd\x43\x2f\xd0\x13\xe5\xfa\x55\ \x62\x9b\xd8\x33\x01\x77\x81\x0d\x24\x85\xaa\x31\xca\xaa\x1d\x89\ \x8d\x0d\x4f\xef\x7b\x06\x37\x6d\xdb\x26\x0e\x94\xaa\x9a\xad\xf5\ \x06\x40\x44\xaa\xa0\x5d\xd7\xed\xee\x35\xbc\xa8\xfe\xc1\x7f\x01\ \x6c\x8c\xd9\xdb\x4a\x87\x8d\x53\xda\x60\x8c\x03\x0c\x01\xf4\x0a\ \xd2\x43\x74\x98\xb7\xf7\x83\x47\x31\x2a\x68\x81\x7a\x10\x07\xd1\ \x1d\x3c\xe3\x41\x26\xa0\xf6\x0b\x34\x38\x88\x97\x4a\x70\x1a\x61\ \x88\x4b\x74\xf5\x93\x65\xb4\xd3\x23\x35\xc6\x69\x80\x5b\x00\x29\ \xd1\x3d\xa8\x83\x60\x57\x60\x5f\x01\x96\x1c\x7d\xb6\x7c\x30\x95\ \x6a\x70\xfe\x70\x06\xba\x15\xd4\xe5\x14\x76\x01\xff\x74\xfd\xdd\ \x55\xb8\xe4\xce\xdb\x05\x5c\x26\x41\xfd\xb2\x06\x34\x7b\x17\xf5\ \xe6\x8f\x10\xce\xdf\xa1\xc5\x34\xe6\x89\xa8\x6a\x5e\xf8\x9c\x46\ \x6a\xb6\x74\x10\xb3\xa9\xac\x1a\xf8\x34\xf8\x7a\xce\xa6\x16\x62\ \x0f\x6a\xef\x1b\x58\x52\x54\x81\xa5\x98\x6e\x4c\x45\xf4\x70\xeb\ \x9f\x07\x9b\x8f\xd3\xaf\xdf\xfd\x02\xd6\xbd\xde\xdf\x70\xdb\x04\ \x83\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x08\ \x06\x27\x5a\x67\ \x00\x62\ \x00\x6f\x00\x6c\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x02\xfc\x42\x47\ \x00\x69\ \x00\x74\x00\x61\x00\x6c\x00\x69\x00\x63\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\x49\xdb\xa7\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x10\ \x0f\x9b\x88\x67\ \x00\x62\ \x00\x72\x00\x69\x00\x6e\x00\x67\x00\x74\x00\x6f\x00\x66\x00\x72\x00\x6f\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\x4a\xdb\xa7\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x33\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x08\xd5\xc4\xe7\ \x00\x75\ \x00\x6e\x00\x64\x00\x65\x00\x72\x00\x6c\x00\x69\x00\x6e\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\x4b\xdb\xa7\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x34\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x03\x4a\x23\xe7\ \x00\x6c\ \x00\x69\x00\x6e\x00\x65\x00\x70\x00\x6f\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x0c\xad\x0f\x07\ \x00\x64\ \x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x05\x6c\x22\xc7\ \x00\x6c\ \x00\x69\x00\x6e\x00\x65\x00\x63\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x00\x50\xdb\xa7\ \x00\x62\ \x00\x61\x00\x63\x00\x6b\x00\x67\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x0a\x2b\x97\xe7\ \x00\x70\ \x00\x6f\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x05\xaa\x0c\xc7\ \x00\x74\ \x00\x65\x00\x78\x00\x74\x00\x70\x00\x6f\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x06\x43\xe3\x67\ \x00\x66\ \x00\x6c\x00\x6f\x00\x6f\x00\x64\x00\x66\x00\x69\x00\x6c\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x0f\x0d\x22\x27\ \x00\x73\ \x00\x65\x00\x6e\x00\x64\x00\x74\x00\x6f\x00\x62\x00\x61\x00\x63\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x02\ \x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x02\x11\ \x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x03\xb0\ \x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x05\x26\ \x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\x09\xf3\ \x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x00\x01\x16\ \x00\x00\x00\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x05\x8a\ \x00\x00\x01\x32\x00\x00\x00\x00\x00\x01\x00\x00\x09\x5e\ \x00\x00\x01\x92\x00\x00\x00\x00\x00\x01\x00\x00\x0b\x18\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x01\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x0e\x0d\ \x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x04\x28\ \x00\x00\x01\x76\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x67\ \x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x06\x1b\ \x00\x00\x01\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x2b\ \x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x02\x87\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/0000755000076500000240000000000012536324427024154 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/background1.png0000644000076500000240000000016012536324427027057 0ustar philstaff00000000000000‰PNG  IHDRüsPPLTEÿÿÿÿÿ±¸^ %IDATx^íÌ!Aÿ4‚du/n¸ØjÊ ð@”˜ëÀ8¡„IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/background2.png0000644000076500000240000000016212536324427027062 0ustar philstaff00000000000000‰PNG  IHDRüsPPLTEÿÿÿUÂÓ~'IDATHÇc`€‚40*0*0*0*€*ðü  QQQ"Õ;NðsãoéIEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/background3.png0000644000076500000240000000016412536324427027065 0ustar philstaff00000000000000‰PNG  IHDRüsPPLTEÀÀÀÿÿÿ+i‡´)IDATHKcø P0*0*0*0*@¤ ØCÄÿ Œ Œ Œ `?xä·ã0_IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/background4.png0000644000076500000240000000014012536324427027060 0ustar philstaff00000000000000‰PNG  IHDRüsPPLTEÿÿÿ§ÄÈIDATx^íÀ1 û§6Å>X ào>Ã1IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/bold.png0000644000076500000240000000042212536324427025600 0ustar philstaff00000000000000‰PNG  IHDR õ”;ÙIDAT(S}1E@†G$$ Ñ"Qp€m\@ç<! GqµN©Áx3²‹÷ìÛäËfvþùgvÀ0 €ôfY&I‚Ÿľï”;iš2$ÃðQX×5UÞ]èv‡s¶mãÃY ïDQÄâ ôÎëºbÛ¶j”¾ïO±|(Š‚Éó}ßg!àL@· Ó4YÜuÝ%þžyÛ6œ¦‰cÙ!ŽcÇÕÌo$d¾ªªÿÛX–EF]^·AÌóŒMÓ ÌgYv9{ž§p]÷çÓÚmH¨¨,KÕñÐÀȯ(IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/bringtofront.png0000644000076500000240000000044512536324427027402 0ustar philstaff00000000000000‰PNG  IHDRÄ´l;bKGDÿÿÿ ½§“ÚIDATHÇí”A‚0EF8ƒwðþ‡ð^@±¥t¦\´Œ¢ÊÂÄIØÐäåõ÷gв,;L¡xõ  ª³ UUMžmXiþào30ºUÀÝí 7¡u –b·Ï`\‚6 ÄfŠBíõä’ ,—h)&~šËØ×àÍÜd»ó`ª9Áí9Aû¬Í~·þ>g\ÇŒC“âHO-êW•펇!KI–¾Ž¦’1ëñü)Vªïk° ÉTGø5¸M×V⠘Ǫõ·˜ÖÞÔ>÷W¸:Š¥Ëfjî‘a©fÀµ]IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/delete.png0000644000076500000240000000147712536324427026135 0ustar philstaff00000000000000‰PNG  IHDRÄ´l;gAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<ÑIDAT8Ë}•KhSA†“æÑI([5îZ»P²±Ú…]µ¾v)-BIWíÎ ¢àº«„Š+QDE ŠUñ°V#­¢Å¶’j•¾4ÍÃãnÎdæNÒ>æÞÎ?fÎc®‡ˆ<&øó~¨Pgk m¡ òÚÊœ!òŠQ^laà¯aêw´JÛ"âá5…Žé¿¡!*uwS¡,f6ƒ(ÏWiS)*õôP)TÚ8hpæÍã—`Zìí¥BK åðþ]›oUæÊ´4R¾xè Ö óòIз±à¤>R—´©}mV:ô”Ö²éñˆÚ¥Ö ÌåH;Á–5.ú¨Ì)mBÖê‹Þú4ñ‚MNœÊቬóiŠˆ¦YÖ¨SykužO>ŽìäÚ hëMí=©—–ñ+IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/floodfill.png0000644000076500000240000000043212536324427026633 0ustar philstaff00000000000000‰PNG  IHDR*+sñòm PLTEÿÿÿ€€€ÿÿÿEJK8tRNS@æØf¼IDATx^M˽‰1 †a¡ÐU8Ü&ئ ³áæN.2Û[À–´UœG?3Vô!ÞBÍàF½ö¶ìï¦A4²A€`$Ïšî8‹~xƒO~d³0hW2t"˜‘‰ äPˆ ÔDä ÎÜÁ˜‰ƒ3q ‰ä`¡.@ÿéýñ*Òþ{PÚŽï> x³l]f4B°ä $7P$WÀ’+è’Ü€ä $7ðsop_[v<Ç?ÖQh R…Û_IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/italic.png0000644000076500000240000000036712536324427026135 0ustar philstaff00000000000000‰PNG  IHDR ´©Gž¾IDAT(S…‘1@@EWM$J7¡¤‘8…^tª=ŠNT{€­un ÑlçÄ—±!YQübþ¼ü™Ì‚t¦i‚Â)Ïó.ðÖ8ލªŠUI’Xï?ÕuÃZkÐTòœ 5ëºfx]WÜþgrš¦ˆãOÏ nÛß÷Q–¥]Á Ssžg^AJùŸ< ÃJ©ÿä¶m^–å?9Ïs„aˆ}ßßÉTcìáIA Š"[7M›Ü÷ýõÎWgYÆNúWVXè@ÚÆIEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/linecolor.png0000644000076500000240000000022112536324427026643 0ustar philstaff00000000000000‰PNG  IHDR*+4Qˆ½PLTEÿÿÿUÂÓ~tRNS@æØf9IDATWc`À T„ú&ÿ€)fý˜â¦ä€)û0UÑöoPkã‡hcƒP, „‘Ê ö#*þIEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/linepointer.png0000644000076500000240000000021512536324427027210 0ustar philstaff00000000000000‰PNG  IHDR·fPLTEÿÿÿUÂÓ~tRNS@æØf5IDAT™c`ÀØ€ÿL‚ýHºDX€ÁÖ"˜AúA À ë@„=BÝFµ @£1¿^IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/pointer.png0000644000076500000240000000025512536324427026344 0ustar philstaff00000000000000‰PNG  IHDRXkOú PLTEÿÿÿÿÿÿŽôÃìtRNS@æØfRIDATÁ± Â0À‹Ð>>###···MMMøøøÀÀÀ000 ììì ŠŠŠÚÚÚñññ ™™™ùùùÍÍÍôôô999---;;;CCC¤¤¤ÜÜÜUUUhhhZZZPPPðððttt±±±]]]!!!666êêêÛÛÛœœœ‹‹‹uuuòòò%%%ÎÎÎHHHcccºººSSS888÷÷÷ää䢢¢JJJóóó___ñiìtRNS@æØfmIDATx^Õ’ÅvÃ0E=’fæ”™™™™™áÿ¡ž‰“S©²Nvmßòêú½YØø+ñ0ë[XÌ7<–Ƶ­BÚšom @³­,èÚâµôÔÝq¿¡ {í л “ êMØA+3‚n.¬5Ã9»•廩ۧ½ÀGÎdG'~1;§q‡ÚÑ,øèÚÍ~ È”Ñ]Õ´öán¿ß66é’«ë¥÷ Û„aêÏ»îgÑC`¦Ñ]‰»˜SÓ¸ï©Z¨€ÚMÑë<½ÂB¿[T›æšËNеwÊý5z[¯ƒ$º[Ê ¶q_ ‹î*ÜÀž¥K)öƒ–2ió‡éßgj· ²{èb²#Ù„òc.äÙé™džSÃ…H/ié DzmS–Œn¢Ho‹—°õ¤­ÚzXEý×Wé‚'¡á—J/r«C^~­sÎù}ýÎ1à`Ì'­emL̼N#9A‰yÁP5ü~ëÿÊUq »×».ÊIEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/diagramscene/images/underline.png0000644000076500000240000000037212536324427026651 0ustar philstaff00000000000000‰PNG  IHDR ´©GžÁIDAT(SÍ1 „0EÇÎV°ÓFo`å¼B@ ›t"¼”'Òx÷¸Ù,l¿OfÞü|ÈPÇLD¢(Š8Ïs~ÂýÉÓ4eÒZsQ†aàyžÅŒ=8æã82a ”ˆú[à˜;çB3À/3êJîºNÌ×uЃ÷}&À}ßóq—eñÉëº œ¦)0?!Û¶ùd¨®k”eÉmÛrUUÒ7MÃÖZŸüÈÃY–‰)IÆ_Îó|oé3 8ÍxvIEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/dragdroprobot/0000755000076500000240000000000012536324427023135 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/graphicsview/dragdroprobot/dragdroprobot.py0000755000076500000240000002510012536324427026360 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui try: import dragdroprobot_rc3 except ImportError: import dragdroprobot_rc2 class ColorItem(QtGui.QGraphicsItem): n = 0 def __init__(self): super(ColorItem, self).__init__() self.color = QtGui.QColor(QtCore.qrand() % 256, QtCore.qrand() % 256, QtCore.qrand() % 256) self.setToolTip( "QColor(%d, %d, %d)\nClick and drag this color onto the robot!" % (self.color.red(), self.color.green(), self.color.blue()) ) self.setCursor(QtCore.Qt.OpenHandCursor) def boundingRect(self): return QtCore.QRectF(-15.5, -15.5, 34, 34) def paint(self, painter, option, widget): painter.setPen(QtCore.Qt.NoPen) painter.setBrush(QtCore.Qt.darkGray) painter.drawEllipse(-12, -12, 30, 30) painter.setPen(QtGui.QPen(QtCore.Qt.black, 1)) painter.setBrush(QtGui.QBrush(self.color)) painter.drawEllipse(-15, -15, 30, 30) def mousePressEvent(self, event): if event.button() != QtCore.Qt.LeftButton: event.ignore() return self.setCursor(QtCore.Qt.ClosedHandCursor) def mouseMoveEvent(self, event): if QtCore.QLineF(QtCore.QPointF(event.screenPos()), QtCore.QPointF(event.buttonDownScreenPos(QtCore.Qt.LeftButton))).length() < QtGui.QApplication.startDragDistance(): return drag = QtGui.QDrag(event.widget()) mime = QtCore.QMimeData() drag.setMimeData(mime) ColorItem.n += 1 if ColorItem.n > 2 and QtCore.qrand() % 3 == 0: image = QtGui.QImage(':/images/head.png') mime.setImageData(image) drag.setPixmap(QtGui.QPixmap.fromImage(image).scaled(30,40)) drag.setHotSpot(QtCore.QPoint(15, 30)) else: mime.setColorData(self.color) mime.setText("#%02x%02x%02x" % (self.color.red(), self.color.green(), self.color.blue())) pixmap = QtGui.QPixmap(34, 34) pixmap.fill(QtCore.Qt.white) painter = QtGui.QPainter(pixmap) painter.translate(15, 15) painter.setRenderHint(QtGui.QPainter.Antialiasing) self.paint(painter, None, None) painter.end() pixmap.setMask(pixmap.createHeuristicMask()) drag.setPixmap(pixmap) drag.setHotSpot(QtCore.QPoint(15, 20)) drag.exec_() self.setCursor(QtCore.Qt.OpenHandCursor) def mouseReleaseEvent(self, event): self.setCursor(QtCore.Qt.OpenHandCursor) class RobotPart(QtGui.QGraphicsItem): def __init__(self, parent=None): super(RobotPart, self).__init__(parent) self.color = QtGui.QColor(QtCore.Qt.lightGray) self.pixmap = None self.dragOver = False self.setAcceptDrops(True) def dragEnterEvent(self, event): if event.mimeData().hasColor() or \ (isinstance(self, RobotHead) and event.mimeData().hasImage()): event.setAccepted(True) self.dragOver = True self.update() else: event.setAccepted(False) def dragLeaveEvent(self, event): self.dragOver = False self.update() def dropEvent(self, event): self.dragOver = False if event.mimeData().hasColor(): self.color = QtGui.QColor(event.mimeData().colorData()) elif event.mimeData().hasImage(): self.pixmap = QtGui.QPixmap(event.mimeData().imageData()) self.update() class RobotHead(RobotPart): def boundingRect(self): return QtCore.QRectF(-15, -50, 30, 50) def paint(self, painter, option, widget=None): if not self.pixmap: painter.setBrush(self.dragOver and self.color.light(130) or self.color) painter.drawRoundedRect(-10, -30, 20, 30, 25, 25, QtCore.Qt.RelativeSize) painter.setBrush(QtCore.Qt.white) painter.drawEllipse(-7, -3 - 20, 7, 7) painter.drawEllipse(0, -3 - 20, 7, 7) painter.setBrush(QtCore.Qt.black) painter.drawEllipse(-5, -1 - 20, 2, 2) painter.drawEllipse(2, -1 - 20, 2, 2) painter.setPen(QtGui.QPen(QtCore.Qt.black, 2)) painter.setBrush(QtCore.Qt.NoBrush) painter.drawArc(-6, -2 - 20, 12, 15, 190 * 16, 160 * 16) else: painter.scale(.2272, .2824) painter.drawPixmap(QtCore.QPointF(-15*4.4, -50*3.54), self.pixmap) class RobotTorso(RobotPart): def boundingRect(self): return QtCore.QRectF(-30, -20, 60, 60) def paint(self, painter, option, widget=None): painter.setBrush(self.dragOver and self.color.light(130) or self.color) painter.drawRoundedRect(-20, -20, 40, 60, 25, 25, QtCore.Qt.RelativeSize) painter.drawEllipse(-25, -20, 20, 20) painter.drawEllipse(5, -20, 20, 20) painter.drawEllipse(-20, 22, 20, 20) painter.drawEllipse(0, 22, 20, 20) class RobotLimb(RobotPart): def boundingRect(self): return QtCore.QRectF(-5, -5, 40, 10) def paint(self, painter, option, widget=None): painter.setBrush(self.dragOver and self.color.light(130) or self.color) painter.drawRoundedRect(self.boundingRect(), 50, 50, QtCore.Qt.RelativeSize) painter.drawEllipse(-5, -5, 10, 10) class Robot(RobotPart): def __init__(self): super(Robot, self).__init__() self.torsoItem = RobotTorso(self) self.headItem = RobotHead(self.torsoItem) self.upperLeftArmItem = RobotLimb(self.torsoItem) self.lowerLeftArmItem = RobotLimb(self.upperLeftArmItem) self.upperRightArmItem = RobotLimb(self.torsoItem) self.lowerRightArmItem = RobotLimb(self.upperRightArmItem) self.upperRightLegItem = RobotLimb(self.torsoItem) self.lowerRightLegItem = RobotLimb(self.upperRightLegItem) self.upperLeftLegItem = RobotLimb(self.torsoItem) self.lowerLeftLegItem = RobotLimb(self.upperLeftLegItem) self.timeline = QtCore.QTimeLine() settings = [ # item position rotation at # x y time 0 / 1 ( self.headItem, 0, -18, 20, -20 ), ( self.upperLeftArmItem, -15, -10, 190, 180 ), ( self.lowerLeftArmItem, 30, 0, 50, 10 ), ( self.upperRightArmItem, 15, -10, 300, 310 ), ( self.lowerRightArmItem, 30, 0, 0, -70 ), ( self.upperRightLegItem, 10, 32, 40, 120 ), ( self.lowerRightLegItem, 30, 0, 10, 50 ), ( self.upperLeftLegItem, -10, 32, 150, 80 ), ( self.lowerLeftLegItem, 30, 0, 70, 10 ), ( self.torsoItem, 0, 0, 5, -20 ) ] self.animations = [] for item, pos_x, pos_y, rotation1, rotation2 in settings: item.setPos(pos_x,pos_y) animation = QtGui.QGraphicsItemAnimation() animation.setItem(item) animation.setTimeLine(self.timeline) animation.setRotationAt(0, rotation1) animation.setRotationAt(1, rotation2) self.animations.append(animation) self.animations[0].setScaleAt(1, 1.1, 1.1) self.timeline.setUpdateInterval(1000 / 25) self.timeline.setCurveShape(QtCore.QTimeLine.SineCurve) self.timeline.setLoopCount(0) self.timeline.setDuration(2000) self.timeline.start() def boundingRect(self): return QtCore.QRectF() def paint(self, painter, option, widget=None): pass if __name__== '__main__': import sys import math app = QtGui.QApplication(sys.argv) QtCore.qsrand(QtCore.QTime(0, 0, 0).secsTo(QtCore.QTime.currentTime())) scene = QtGui.QGraphicsScene(-200, -200, 400, 400) for i in range(10): item = ColorItem() angle = i*6.28 / 10.0 item.setPos(math.sin(angle)*150, math.cos(angle)*150) scene.addItem(item) robot = Robot() robot.scale(1.2, 1.2) robot.setPos(0, -20) scene.addItem(robot) view = QtGui.QGraphicsView(scene) view.setRenderHint(QtGui.QPainter.Antialiasing) view.setViewportUpdateMode(QtGui.QGraphicsView.BoundingRectViewportUpdate) view.setBackgroundBrush(QtGui.QColor(230, 200, 167)) view.setWindowTitle("Drag and Drop Robot") view.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/graphicsview/dragdroprobot/dragdroprobot.qrc0000644000076500000240000000013712536324427026515 0ustar philstaff00000000000000 images/head.png PyQt-x11-gpl-4.11.4/examples/graphicsview/dragdroprobot/dragdroprobot_rc2.py0000644000076500000240000017234112536324427027135 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:39:06 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x3a\x7c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x84\x00\x00\x00\xb1\x08\x04\x00\x00\x00\xaf\xfa\xdd\x32\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ \x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd6\x03\ \x10\x0a\x31\x18\xc7\xac\x62\xef\x00\x00\x00\x1d\x74\x45\x58\x74\ \x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\ \x77\x69\x74\x68\x20\x54\x68\x65\x20\x47\x49\x4d\x50\xef\x64\x25\ \x6e\x00\x00\x00\x02\x62\x4b\x47\x44\x00\xff\x87\x8f\xcc\xbf\x00\ \x00\x39\xe4\x49\x44\x41\x54\x78\xda\xd5\xbd\xd9\xb2\x5d\xc7\xb5\ \x9e\xf9\x65\xe6\x6c\x57\xbb\xf7\x06\x36\x00\xf6\x24\xa8\xc6\x75\ \x8e\x1d\x61\x59\xf2\x45\xd5\x45\x5d\x54\xd1\xe1\x8b\xba\x26\x1f\ \x81\x7a\x04\xea\x11\xc8\x47\x10\x1f\x41\x7a\x04\x31\xea\xae\xae\ \x7c\x8e\xe3\xd4\x29\x47\x58\x16\x4d\x1c\x51\x02\x89\x6e\x77\xab\ \x9d\x7d\xa6\x2f\x72\xcc\x5c\x73\x2d\x6c\x10\x0d\x49\x85\x0b\x0c\ \x92\x00\x76\xb7\xd6\x98\x99\xa3\xf9\xc7\x3f\xfe\xa1\x56\xfc\xb8\ \xbf\xdc\xe0\xf7\x2a\xfc\x9d\x02\x2c\x4a\x7e\x3f\xfc\x53\x4b\x07\ \xc4\x18\x2a\xda\x8f\xdb\xdf\x72\x19\xfd\x26\xfe\x3c\x46\x63\x9f\ \xf1\x13\x2c\xa0\xe4\xbb\x70\xcd\x4f\x7b\xb1\x5f\xea\x6f\x67\x08\ \xb5\xf7\x37\x8a\x0e\x85\x1a\x18\xa2\xa2\xfd\xb4\xf9\xa4\x43\x61\ \x30\xbf\x57\xf7\x16\x9f\x14\x40\x4e\x0c\x8c\x3e\x9b\xfc\xa6\xa1\ \xc3\xde\x8d\xee\xc5\x68\xc0\xe1\x00\x15\xbe\x9b\xda\x33\xf9\xff\ \xd4\x86\xf0\x2f\xdb\xc9\x5b\x77\x68\x1c\x96\x4e\x8c\xd2\x7c\x7a\ \xf1\x49\x41\x4d\xca\x98\x88\x92\x35\x5b\x1c\x09\x19\x0a\x4b\x42\ \x4e\x8d\x05\x52\x26\xe4\x2a\x12\xf3\x29\xf9\x09\xea\xe0\x27\xbd\ \xbc\x21\x22\xfe\x66\xbf\xfa\x0b\x01\x1a\xb0\x68\x3a\xca\x8f\xb7\ \xbf\xad\xb1\x54\x94\x6c\x51\xa4\x28\x1a\x36\x5c\xb2\x24\x26\xa7\ \xe2\x8a\x0a\x03\xb4\x14\x68\x62\x72\xe6\x1c\xbb\x39\xb9\xca\xe4\ \xad\x2a\x39\x1d\xdf\xef\xd7\xdf\xd0\x10\x6a\x70\x84\x2d\x0d\xd5\ \xdd\xf2\xab\x4b\x2e\xa8\xe8\x68\xd8\x72\xcc\x31\x73\x1c\x0b\xce\ \xd8\x62\xd1\x94\x14\x3c\x62\x43\x06\x14\x18\x12\x32\xb6\x6c\x29\ \xe9\x98\x3b\xad\x22\x8c\x7c\xd7\xff\x5f\x19\xa2\x3f\x17\x16\x47\ \xc3\xd6\x2d\x58\x73\xc6\x25\x30\x22\x22\x26\x05\x0a\x0a\x9e\x70\ \x41\x45\xc4\x15\x0d\x25\x05\x1d\x25\x06\x47\x8c\xc2\x51\x51\x51\ \x53\xb1\xe0\xc4\xa5\x8c\x2f\x47\x27\x11\xfa\xda\xab\xc1\xff\xac\ \x3e\xc2\x7b\x85\x9a\x0e\x28\xdd\x8a\xfb\x6c\x38\xa3\x60\xc2\x29\ \x33\x34\x11\x5b\x56\xac\x28\xa9\x29\x69\x38\x63\x83\xe1\x98\x31\ \x2d\x96\x0c\x87\x01\x6a\x1a\x14\x19\x29\x77\x98\x73\xca\x09\xe3\ \xf7\xd3\x7b\xe6\x7b\x3b\xcb\xe8\xd5\xdf\x9c\x7a\xea\x8d\xf6\xb7\ \xbf\x43\xc9\x53\xe2\xc0\x55\xb6\x34\x1f\x17\xbf\xdd\xb2\xa1\xe4\ \x3e\x1d\x96\x11\x63\x12\x34\x86\x2b\x36\x5c\xb1\x66\xcb\x96\x25\ \x25\x57\x4c\x99\xd3\xf0\x98\x16\x4d\x4c\xd3\xc7\x16\x22\x66\x4c\ \x80\x05\x6b\xd6\xcc\xbf\x9a\x31\x57\x99\x44\x21\xff\x1a\xa0\xc5\ \x1c\x38\xd3\x1f\xe1\x44\xb8\x67\x58\xdc\x49\x36\xe0\x7f\xf5\x41\ \x4e\x0d\x4e\x44\xcd\x85\x5b\x52\x72\xce\x43\x2e\xb0\x8c\xb8\xc1\ \x18\x47\x83\x43\xb3\xe1\x82\x15\x1b\x4a\xb6\x54\x28\x12\x62\x34\ \x1d\x2d\x00\xe7\x00\xc4\xa4\xa4\xc4\x18\x6e\x62\xd1\x44\x64\x9c\ \xf0\x26\xb7\x78\x53\xc5\x98\xf0\xca\xdc\xde\xef\x86\xa1\x5b\xfd\ \x18\x3e\x62\xdf\x24\x3e\x18\x6a\x1c\x0d\xb5\xb3\xe8\xcb\xf4\xa4\ \xf7\xed\x0d\x06\x47\xf5\xe9\x39\xe7\x94\x3c\xe0\x4b\x22\x72\xc6\ \x28\xd6\x2c\x68\x48\x49\xb9\xe2\x21\x17\x94\x34\x58\x2c\x73\x3a\ \x3a\xac\x18\xb8\xa3\xa6\x45\xa1\x18\x13\x63\xd9\xb2\x92\x8f\x6b\ \xe6\x9c\xf1\x0e\xb8\x19\xe3\x5f\xeb\xcf\x15\x86\x18\xb5\xf7\x50\ \x86\x67\xf7\x7a\x63\x7c\xcf\x13\x31\xbc\x97\xed\x20\x2e\x94\x77\ \xb7\x5f\xad\x51\xc4\x8c\x2f\x27\x27\x11\x8e\x0e\x43\xc9\x63\xf7\ \x35\x8f\xd9\xf0\x98\x87\x24\xdc\xe6\x84\x96\x4b\x1a\x26\xcc\xf8\ \x86\x25\x17\xac\xb0\x44\x24\xc4\xa4\x28\x8c\x98\x01\xa0\xa2\xa2\ \x21\x66\x4c\x4c\x4b\xcd\x82\x88\x84\x08\x48\xb9\xcd\x1d\xde\xe1\ \x84\x13\x72\x12\x72\x95\x60\xb0\x72\x55\x86\x79\x86\x1b\xc4\xaf\ \x1f\x25\x6a\xa8\x70\x19\x2c\x0e\x4d\x7a\x4f\xab\x09\x6b\x77\xc1\ \xf9\xf1\xc8\x1d\x33\x55\x31\x9b\x0f\x1e\xfd\xe1\x6b\xce\xb9\xe2\ \x9c\x0d\x13\x40\xb1\xe0\x31\x35\xc7\x38\x9e\xf0\xdf\x68\xb1\x40\ \x42\x8c\x4f\xa9\x33\x72\xa0\xa2\x41\x11\x61\x69\xa9\xd9\xb0\xc1\ \x88\x07\xf2\x97\xa7\xa5\xe6\x9c\x86\x29\x2d\x1d\xc7\x1c\x01\x8e\ \x6e\xcf\x87\xb9\xe7\x86\xd8\xe8\x87\x88\x07\x4a\x6e\xaf\xa5\xb8\ \xbb\xf8\xaa\xc6\xa0\x68\xb9\xf1\x59\xc5\x9a\x05\x09\x25\x85\xcb\ \x78\xcc\x3d\xee\xd3\xb2\xe1\x09\x96\x39\x8e\x2b\xb6\x6c\x99\x10\ \x71\xce\x5f\x29\x31\x24\x68\x1c\x25\x0b\x5a\x26\x8c\xa8\xb1\x6c\ \x28\x81\x08\x47\x4d\x45\x41\x87\x26\x23\x46\xd1\xe1\x48\x71\x40\ \x89\xe1\x4b\x26\x9c\xf2\x3a\x11\x63\x0c\x4a\x2e\xd5\xbe\xb3\xfe\ \x51\x9c\xa5\x93\x3c\xb1\x2f\x86\x62\x2a\xce\xdd\x37\xac\x70\x54\ \x2c\xb9\x43\xc1\x8a\x12\x48\x48\x31\xac\x79\xc2\x0a\x45\xc1\x05\ \x35\x39\x19\x1d\x90\x12\x51\x70\xc9\x92\x11\x96\x96\x8a\x92\x9a\ \x0e\xcb\x1c\x83\xa6\xa5\xa4\x06\x14\x29\x96\x8e\x0e\x87\x26\xc2\ \xe0\x80\x84\x8c\x94\x88\x8c\x9c\x2d\x19\x47\xbc\xc5\xff\xc2\x4f\ \x39\x51\xd1\xc0\x47\xb8\xa7\x6a\x11\xf5\x43\x9e\x08\x9f\xda\xb6\ \x74\x1f\xb7\x9f\xda\x63\xc7\x44\x55\xff\xe0\x1d\x5d\xc7\x15\xdf\ \x72\xc1\x96\x05\x2b\x6a\x14\x31\x31\x13\x1c\xd0\x51\x61\xa9\xd8\ \x70\x8c\xe2\x84\x23\x9e\xf0\x67\x6a\x8e\x68\xd8\xb2\x64\x43\x43\ \x4c\xce\x88\x86\x8a\x8e\x16\x8b\x95\x24\xcc\x07\x68\x03\x34\x54\ \xf2\xd2\x63\x3a\x1c\x2d\x25\x13\xa0\xe4\x9c\xc7\xdc\x20\xfd\x87\ \xd1\xaf\x8c\x44\x2c\xf7\x7d\xf3\x88\xa7\x13\x94\x0e\x27\x5f\xe0\ \xd0\x40\x4d\x71\xd1\x1c\xb7\x94\x94\x74\x94\x6e\xc9\x23\x1e\x71\ \xc6\x86\x0a\xcb\x29\x96\x92\x92\x05\x1b\x6a\x1c\x37\x98\x32\xa1\ \x65\xc9\x96\x88\x11\x0d\xff\x9a\x9c\xff\x8f\x7f\x21\x62\x42\xc9\ \x5f\x68\xa8\x51\x64\x8c\xa4\xe6\xac\x68\x68\x48\xc8\xb0\x54\x74\ \xe4\x44\x38\x22\x32\xa0\x64\x89\xc2\xe2\xe8\x98\x30\x22\x61\x4c\ \x44\x46\xc4\x92\xc7\x8c\x7e\x19\xdd\xcd\xef\xa9\x67\x84\x4a\xf5\ \xaa\x3e\x42\x85\xcc\xc0\xed\xfd\x4d\x7b\x77\x73\x5c\x52\xb3\x61\ \x41\xc1\x92\x4b\x1e\xb3\xa2\x15\xff\xfc\x98\x96\x82\x35\x05\x9a\ \x31\x63\x46\x68\x36\xac\x59\xd1\x31\x22\xe5\x94\x6f\x59\x72\x81\ \xa6\x66\x49\x41\x81\xc3\x61\x29\xe9\xa8\x49\xd8\x62\xe9\xd0\x18\ \x71\x93\x71\x40\x2c\x2a\x14\x8e\x1b\xf2\xd1\x0c\x43\x4b\x87\x22\ \x27\x27\x21\xf1\xce\xf4\x9e\x1b\xbc\x61\xf5\x7d\x4e\x84\xba\xa6\ \x7a\x54\xc1\x03\xb7\x54\x77\x2f\xbf\x7a\xcc\x9a\x8a\x2b\xce\x58\ \xe0\xb8\x62\x41\x4b\x8c\xa2\xa4\xa0\xc0\xd2\xd0\x00\x29\x33\x66\ \x2c\xe9\xc4\x03\x24\xa4\xe4\x38\xfe\xca\x63\x14\x8a\x15\x6b\xc9\ \x0b\x15\x96\x9a\x96\x96\x94\x0c\x7c\x00\x26\xa1\x40\x01\x11\x29\ \xd0\x62\xe9\xb0\x92\xbe\xa5\x80\xc6\xd2\xb1\x65\x2a\xaf\x3b\x25\ \xa5\x71\x77\x54\x44\xf4\xc2\xb9\x65\xf4\x32\x2e\x52\x85\xff\xd6\ \xac\xdd\x43\x2e\x39\x67\x4b\xc1\x25\x67\x6c\x18\x51\xca\x5d\xae\ \x59\xb1\x21\x45\x33\x22\x21\x26\x42\xb1\x61\x25\x3f\xd0\x47\xff\ \x8e\x6f\x59\xd2\xe1\x28\x59\xe2\xc8\x05\xab\xf0\x7e\x40\x03\x39\ \xa0\x88\xc8\x18\x91\x92\xb0\xc0\x90\x12\x53\xb1\xa1\xc5\x52\xd3\ \xa1\x70\x24\xc4\x40\x4b\xcd\x16\x45\xc1\x15\x57\x5c\x72\x83\xad\ \x9b\x32\x23\x57\x26\xa4\xdd\xdf\xdb\x10\xee\xe0\x4f\x1d\x4b\xf7\ \x90\xaf\xd8\x52\x52\xb3\xe6\x92\x15\x0d\x1b\x6a\x1a\x1a\xc9\x03\ \x0d\xa7\x28\x62\x46\xc4\x94\x5c\xb0\x22\xc6\x04\xef\x5d\xd3\xb0\ \x25\x66\xcc\x86\x46\x70\x06\x45\x43\x85\x21\x26\xc6\xa0\x59\x89\ \xd9\xb7\x8c\x88\xe9\xe8\xd8\xd2\x90\xd1\x52\xe1\xe4\xcd\xbb\x41\ \x4d\x33\x25\x92\xef\xdc\xd0\x70\xc9\x82\x37\x78\x8f\xd3\xdf\xe5\ \x1f\x99\x6b\x11\xac\x97\x34\x84\x1b\xfc\xd7\x07\xca\x8e\xb5\x7b\ \xc8\x7d\x2e\xe4\x47\xae\x59\x51\x60\xb9\xa0\x91\x80\x38\x62\x44\ \xca\x2d\x2a\x1a\xf1\xf0\x15\x25\x11\x84\x97\xad\x31\x01\x6c\xcb\ \xc8\x50\x38\x52\xa0\xc3\x11\xcb\x19\x8a\x50\x72\x99\x5a\xc9\x1a\ \x7c\x44\x89\x80\x8c\x29\x5b\x79\x28\x2d\x56\xaa\x92\xfe\x12\x58\ \x36\xb4\x8c\x69\x31\xc4\x1f\x45\xa8\x83\x2a\xe8\x15\x0c\xe1\x06\ \xa6\xd0\x92\x39\x6c\x2e\x1e\xf1\x0d\x17\x74\x14\x6c\x28\xd9\xb0\ \xa1\xa0\xa5\xc4\x61\x18\x71\xcc\x9c\x1c\x43\x22\x61\xb2\xa4\xa6\ \x25\xa1\x23\x26\x23\x0e\x60\x9d\xa6\xc0\x91\x60\x80\x8e\x4e\xae\ \x81\xcf\x12\x22\x34\xb7\x48\x81\x15\x2b\x5a\x34\x8a\x86\x9a\x82\ \x98\x04\x85\xa6\xa6\xa1\x93\xbc\xc2\x31\x26\x61\x2b\x3e\x25\xc3\ \x51\xb2\xe5\x26\xed\xc0\xaf\x7d\xef\xf0\xe9\xc2\xbf\x4a\xfe\x5f\ \x1c\x9f\x71\x41\x85\xa5\xe0\x52\x60\x12\xff\xec\x0d\x23\x6e\x71\ \x9b\x9c\x92\x15\x1d\x0d\x2d\x25\x6b\x1a\x22\x52\x14\x63\x4e\x48\ \xa8\x59\x53\xd2\x62\x68\x80\x8c\x9a\x12\xc5\x98\x92\x98\x44\x0a\ \x37\x30\x6c\x49\x18\x01\x8e\x06\x85\xa1\xc6\x60\x88\x89\xe8\xa8\ \x58\x33\xa1\xa1\xa2\x65\x43\x47\x4d\x4a\x07\x82\x58\x75\x34\x54\ \x7c\x49\xc4\x29\x53\xa7\xd5\xee\xb4\xbc\x72\xd4\xd8\x41\xe5\xfe\ \xd0\x6d\xef\x5e\x7e\xf5\x84\x82\x48\xea\x8a\x8a\x85\xd4\x80\x2d\ \x0d\xb7\x78\x93\x63\x34\x4b\xce\x58\x70\x8b\x86\x92\x12\xc8\x99\ \x30\x66\xc6\x88\x31\xb0\x41\x13\xd3\xb1\x06\x1a\x1a\x34\x39\xe0\ \x88\x50\x18\x22\xa9\x5e\x5b\x14\x5b\x4a\x5a\x2a\x2a\x09\xdd\xb7\ \xd8\xe0\xc8\x58\xb1\x25\x65\x83\x96\x1c\x53\x71\xc5\x86\x39\x9a\ \x44\xa2\x86\x22\x42\x73\xc1\x3d\x32\x22\x37\x57\xec\x5d\x8d\xeb\ \x60\x84\xe8\xc5\xa2\x85\x37\x48\xc3\xfa\xab\x73\x9e\x70\xc9\x9a\ \x86\x42\x52\xe1\x1a\x87\x21\xe7\x16\xb7\xb8\x85\x62\x2d\x29\x8e\ \xcf\x04\x63\x62\xc6\x9c\x70\xc4\x29\x19\x09\x0d\x4b\xb4\x9c\x06\ \x0d\x54\x38\x49\xd5\x54\x00\x63\x41\xa1\x71\x28\x32\x34\x19\x05\ \x15\x2d\x73\x22\x0c\x15\x11\x31\x31\xd0\x61\xe9\x68\xd1\x82\x50\ \x74\x38\x6a\x89\x38\xb1\xc0\xbd\x4b\x2e\x39\x11\x2c\xfc\x7b\x45\ \x0d\x35\xb8\x1a\x96\xea\xd3\x35\x2b\x96\x5c\xb1\xa6\xa1\xa3\x0e\ \xb9\x7f\x4a\xc2\x0d\xa6\xf2\x2c\xbd\x63\xad\x25\xce\x27\xdc\xe0\ \x35\x8e\x99\x13\x11\x51\x4b\x47\xa3\x22\x95\x3a\xa3\xa3\xa5\x93\ \xd4\xbb\xa3\x13\x5c\xa3\xa3\x20\x65\xca\x98\x94\x44\x12\xa6\x8c\ \x84\x05\x8e\x91\x9c\x4f\x25\x91\x43\x91\x32\x66\x85\xa5\xa5\xc0\ \xd2\x92\x12\x49\x0d\x73\xc6\x9c\xd4\x45\x2a\xf9\xbe\x51\x43\x0d\ \xf0\x06\xdf\x7e\x89\x80\x92\x92\x88\x9a\x1a\x48\xc9\xc8\x89\x49\ \xa9\xa9\xe4\x2b\x36\x5c\x91\x63\x48\x49\x98\x72\x93\x1b\x1c\x61\ \x30\x18\x14\x53\x20\xa3\x61\x43\x4a\x4c\x41\x45\x43\x4d\x87\x91\ \x53\xd6\xd2\x61\xb1\x68\x1a\x5a\xa9\x42\x33\x14\x1b\x34\x19\x15\ \x0d\x19\x8e\x82\x58\xaa\xd5\x92\x4e\xea\x93\x86\x5a\x6a\x9d\x96\ \x18\x83\xe3\x82\x87\x8c\x48\x88\xdc\x4c\x99\x57\x2f\xba\xdc\x41\ \x87\xaa\xa1\xa4\x09\x5d\x84\x86\x82\x0a\x18\x33\x25\xc2\x31\x01\ \x1a\x36\x54\x94\x6c\xa8\xc9\x49\x98\x73\xc4\x11\x27\x1c\x33\xa6\ \x22\x12\x18\x25\xa7\xa6\xe3\x31\x63\x72\xc1\x28\x15\x35\x11\x25\ \x6d\xf8\xfe\x8a\x31\x8a\x08\x47\x85\x0d\x7e\x43\x03\x1d\x86\x54\ \x4a\x39\x0f\xf0\x57\xb4\x94\x8c\x70\xe1\xba\xb4\x18\x36\x54\x28\ \x72\x52\x62\x52\xa2\xdf\x4d\x3f\x7a\xc5\x5a\xc3\xed\xfd\xde\xd1\ \x7c\xbc\xe6\x9c\x4b\x96\x14\xb4\x68\x29\xa5\x52\x26\x4c\x71\xd2\ \x7e\x71\x6c\x79\x4c\x4d\xca\x11\x13\x66\xdc\xe1\x94\x19\x53\x46\ \x24\x18\x01\x54\x1c\x09\xad\x3c\xf1\x92\x15\x0b\x96\xac\xa9\x28\ \x71\x74\x40\x14\x20\x3a\x1f\x23\x1c\x25\x96\x96\x88\x0d\x31\x8e\ \x92\x08\x43\x22\xd7\x28\x17\x8f\xe3\x42\x81\xee\x30\x68\xe9\xa3\ \xb5\x6c\xb8\x60\xc4\x09\xb3\x0f\x27\xdf\x99\x68\x47\xcf\xf3\x0f\ \x48\x29\x64\x59\xfc\xf6\x8c\x33\x96\x14\x6c\xd8\xd2\x51\x63\x18\ \x33\x66\xce\x98\x06\xcb\x43\x60\xcb\x25\x15\x19\x47\x4c\x38\xe5\ \x88\x9b\x1c\xf9\xa3\x89\x26\x0b\xd8\x76\x2c\x00\x7d\x47\x4b\xc1\ \x8a\x25\x6b\x1a\xbe\xa5\xa5\xa1\xa6\xa6\xa0\xa0\xa2\x42\x49\x38\ \xf4\x10\x6d\xcb\x8a\x12\xcd\x86\x98\x29\x09\x0d\x2d\x5b\x52\x0c\ \xbe\x01\xe8\xaf\xad\xc1\x4a\x44\xf3\x0e\x73\xcb\x25\x19\x0b\x4e\ \xbf\x8f\xb3\xec\x9b\x69\xde\x79\x5d\x72\xc9\x06\x2b\xdf\xbe\x22\ \x25\x21\x66\xca\x84\x14\x03\xfc\x99\x0d\x6b\x34\xa7\xbc\xc1\x14\ \xcb\xeb\x62\xa4\x48\x7a\xdc\xb9\x54\x11\x4a\x92\x70\x1f\x8d\x26\ \x4c\x98\x0b\x1c\xe7\x6b\xcb\x82\x2b\x2e\xd9\xd2\xa0\x31\x74\x58\ \x0c\x13\x46\x5c\xd0\xd1\xa1\xa9\x70\x38\x12\x14\x5b\x6a\x3a\x12\ \xc0\xa0\xb1\x68\x29\xbf\xac\xb8\x50\x5f\x9a\xd5\x18\x2e\x58\x7f\ \xbf\xa8\xe1\xb0\x18\x0c\x57\xee\x1b\x16\x58\x12\xd6\x3c\xe2\x9c\ \x0a\x85\x62\xc6\x31\x29\x1b\x1e\x70\xce\x9a\x4b\x20\xe1\x98\xdb\ \xdc\xe6\x98\x84\x23\x66\xcc\x88\x68\xb1\x44\xc4\x12\xe3\xfb\x80\ \xec\xdf\xa2\xc2\x90\x4b\x1a\x95\x53\x51\xd0\x60\xa9\x29\x28\xb9\ \x92\xe4\xbc\x93\x40\x1b\xf1\x3a\x35\x25\x9a\x92\x4b\x72\x14\x11\ \x31\x06\x43\x42\x84\x61\x2d\x10\x4e\x43\x23\xc5\x79\x42\x47\x4d\ \x4e\xc9\x7d\x72\x5e\x77\x73\xa5\xf6\x4a\xc7\x97\x0a\x9f\x1a\x47\ \xc5\x15\x0f\xd8\xd2\x50\xb2\xe6\x9c\x2b\x22\x66\xdc\xa6\xe4\x5b\ \x2a\x4a\x2a\x4a\x1a\x0c\x09\x13\x6e\x72\x9b\x53\x8e\x48\xc9\x48\ \x42\xd3\x57\x4b\x5e\xe0\x06\x08\xb2\x1e\x70\x1a\x14\x9a\x13\x6a\ \x2a\x81\x5a\x4a\xc1\xac\x4a\x0a\x4a\x5a\x3a\x1c\x09\x5b\xb6\x24\ \x18\x22\x20\x26\x11\x88\xd6\x10\x91\x62\xa4\x5b\xde\x49\x6e\xea\ \x41\xc4\x1e\xff\x7e\x42\xca\x3b\x70\x31\x3b\x51\x07\xdd\x96\x17\ \x30\x84\x95\x63\xdc\xb2\x76\x4f\xf8\x36\x40\x64\x35\x96\x9c\x9b\ \x64\xac\xb9\x60\x25\x57\x48\x91\x33\xe5\x36\x6f\xf2\x1a\x37\x98\ \x08\x9a\xe0\x3f\xa2\x31\x21\x37\xdd\xfd\xab\xa5\x14\x52\x68\x2c\ \x0e\x45\x44\x22\x65\x5d\x43\xc3\x11\x96\x9a\x2d\x5b\xd6\x14\x12\ \xa8\x63\x0a\x22\x12\x3a\x14\xa9\x64\x31\x8a\x58\x8a\xfb\xde\x9b\ \xb5\x74\xb4\x6c\x71\x74\x8c\x04\x1b\x1d\x71\xc1\xcd\xe3\xe9\x33\ \x0b\xf2\xe7\xe6\x11\x96\xfa\xe3\xad\x60\xc7\x0d\x5b\x5a\x12\x66\ \x4c\xc9\xb9\x60\x8b\x66\x24\x21\xad\x25\xe7\x26\x6f\x73\x87\x63\ \xc6\xe4\x24\xb4\x62\x79\x1f\x2d\x76\x67\x4c\x1d\x9c\xb8\xde\x60\ \xde\xe7\xf7\x6d\x01\x45\x8e\xa3\x63\xcc\x96\x94\x35\x55\xc0\x20\ \x0c\xb1\x74\x40\x8d\x54\x25\xbe\xfb\x11\x0b\x6e\xdd\x52\xd1\xd2\ \x52\x48\xd7\x5d\x33\xe6\x84\xdb\x9c\x32\xfe\xcc\xbc\x8a\x8f\xd0\ \xf2\x8d\xca\xdf\x96\xc0\x84\x35\x57\x2c\x68\x18\xe1\xd0\x2c\x79\ \x82\x22\x11\x1f\x60\x88\x78\x9b\x9b\xbc\xce\x31\xa9\x27\x7e\xd0\ \x02\x9a\x98\x48\x5e\xa8\x0a\xff\xf4\x26\xde\xb1\x5d\xf4\xa0\xa8\ \x73\x52\x76\x39\x34\x5a\xcc\x18\x53\xb1\xa4\x91\xaa\x24\x93\x0b\ \xa9\x89\x04\xcc\xdd\x99\xcf\x49\xf5\xd1\xe7\x14\x8a\x35\x09\x27\ \xfc\x8c\x37\x3f\x9b\xfe\x86\xd0\xf6\x79\x69\x67\xd9\x7d\x5c\x52\ \x48\x82\xe2\xf1\x80\x11\x0d\x1b\x56\x82\x30\x54\x94\x68\x66\xcc\ \xb8\xcb\x8c\x39\x39\x0a\x47\x4d\x23\x2f\x49\x63\xa4\x80\xd7\x03\ \x3c\xa2\x0f\xcb\xc3\xee\x53\xff\x46\xfa\x7c\xa0\x09\x9e\x45\x11\ \xd3\x08\x16\xb5\xa1\x95\xcc\x76\x41\x24\xa7\xa1\x4f\xcd\x3b\x81\ \xed\x1a\x71\xf2\x2d\x8d\x3c\x14\x4d\x46\xf2\x1b\x7f\x5e\xa2\x6b\ \x4d\xf1\x7c\x60\xe6\x6e\xc3\x92\x73\x16\x9c\xe3\x18\x31\xc2\x52\ \x52\xb0\x05\x6a\x2a\x4a\x2c\xc7\xbc\xc9\xdb\xbc\x49\x42\x86\x91\ \x00\xe6\xdf\x9a\xde\x33\x02\x03\x5a\x87\x3b\x00\x82\xa1\x93\x0b\ \xd4\x17\x5d\xf1\x80\x1e\xa4\xa5\xab\x31\x62\x49\x23\x78\x83\x0e\ \xde\xa5\x95\xb3\xd3\x49\x20\x75\x18\x2c\x8e\x8a\x12\xe5\x5b\x8d\ \x3c\xe0\x3d\x77\xa4\xcc\x20\x6e\xbd\x64\xd4\x50\xf7\x5a\x7c\x46\ \x79\xce\x94\x39\x39\x2b\x36\xac\xa9\x49\xa8\xa9\x68\xc8\xb9\xc5\ \x4f\x79\x8f\x4c\xb2\x84\xfe\xc6\xab\x70\x7b\xad\xfc\xee\x90\x50\ \xb6\x9f\xf2\xba\x80\x2d\x1a\x79\xb2\xfd\xdf\xfa\x0e\xc5\x48\xfa\ \x5d\x05\x56\x80\x7c\x8f\x4f\x35\xf2\x3d\xbc\xe1\x7c\x46\xd1\x5f\ \x4e\x7f\xb1\x1a\x1e\x73\x8f\xbf\x23\xff\x78\xfc\xf9\xb3\xe0\xdc\ \xef\xe8\x74\xf9\x4f\xae\xb9\xef\xfe\x89\x2f\x29\x78\xc4\x09\xc7\ \x38\xce\x78\xc2\x96\x8e\x52\x90\xe5\xd7\xf9\x37\xbc\xcf\x8c\x34\ \xf8\x00\x7f\xe8\xe3\x90\xf3\x31\xb8\x14\x4a\x7c\x82\x12\x1c\xba\ \x6f\xdf\x80\x19\x38\xe8\xbe\xf0\xea\x42\x42\x67\xa5\xe4\x2f\xd8\ \x4a\xc5\xb3\x11\xc4\xbb\xa1\xa4\x12\xa6\x95\x93\xf0\xdb\x08\x7e\ \xf5\x10\xcb\xeb\xb4\x74\xbc\xcb\x7f\xe4\xdf\x73\xaa\x90\xcc\xf3\ \x25\x33\xcb\x21\x60\xab\x68\x58\xd3\xb2\xa5\x45\x61\x98\x60\x88\ \x19\xf3\x0e\x77\x98\x92\x0d\x0e\x72\x4f\xd8\xd0\x72\xf3\x19\xb8\ \xc9\xde\x0c\x43\x0e\xc3\x21\x1d\x6c\x98\x5f\xf4\x57\xcc\xca\x53\ \xb7\x58\x69\x09\xfb\xfb\x5e\x0b\x24\xac\xa9\x71\x12\xf2\x7d\x2d\ \xe2\x48\x29\x39\xa7\x24\xa6\xe5\x09\xf7\xf8\x19\x37\x9f\x09\xef\ \xbf\x40\x5f\xa3\x7f\xca\x31\x1d\x5b\x5a\x29\x71\x3d\xe9\x6f\x3c\ \x88\x14\x51\x78\x3b\x7a\xf0\x76\x77\x7d\x72\x73\x60\x90\x3e\x70\ \xda\x70\x86\x76\x89\x8e\x0a\x6f\x5d\x85\x33\xe4\xb3\x0e\x8d\x26\ \x16\x28\xbf\xa3\x21\x11\x40\xb7\xe6\x52\x7e\x72\x84\x21\x07\x1a\ \x8e\x58\x71\x25\xc8\x47\xc5\x57\x9c\xf1\x36\xf1\xab\x60\x96\x7d\ \xc1\x93\x90\x48\x09\xdd\x81\xa0\xce\x8a\x15\x09\x23\x4e\x38\x22\ \x0d\xb4\x8c\x9d\x29\xf4\x81\xd5\xd5\x9e\x11\xd8\x0b\x79\x56\x6e\ \xf5\xfe\x67\x0f\x19\x37\x7d\x62\xe6\x82\x89\x7d\x4f\x34\xa2\x95\ \xd8\x14\xb1\x91\xd8\xa1\x89\x84\x56\x60\x98\x30\xc1\x62\xc9\x18\ \xd1\xd2\xd2\x3d\xf3\x0d\x47\xcf\x6f\xe9\x18\x61\x2c\xf4\x81\xac\ \x27\xf5\xf9\xca\xe2\x88\x31\x69\xe8\x88\x0e\x9f\xe9\xae\x05\xa0\ \x0f\x28\x86\x87\x94\x82\x3e\x03\x75\x83\x7c\x43\x4b\xb7\xb5\xaf\ \x78\x6c\xc8\x3c\x34\x31\x56\x12\xa8\xfe\xc4\x59\x20\x97\xae\x4a\ \x6f\xaa\x9c\x8e\x11\xb7\x39\x63\xc1\x8c\x9b\x1c\x93\x85\xcb\xf3\ \x74\xdc\x78\x01\x84\x4a\xcb\x97\x76\x18\x22\xb1\xbf\xff\x41\x19\ \x53\xa6\xa4\x20\x8c\xb7\xdd\xdb\xfa\x6e\x66\xb4\x1b\x98\xf9\x59\ \x6d\x5a\xff\xfc\x87\x0c\x6c\x2d\xdc\x19\x9f\xb2\xfb\x9a\xb6\xbf\ \x62\x16\x18\xd3\x50\xd2\x06\xbf\x34\xa7\x64\x4e\x4a\xc9\x19\x96\ \x39\x6f\x09\x41\xf1\x15\xf1\x08\x27\x00\x47\x2d\x66\xf0\x07\xd9\ \x60\x88\xc8\x98\x30\x22\x96\x00\xe9\x5f\xaa\x93\xec\x61\x68\x8e\ \xa1\x83\xd4\x07\x3c\x26\x35\x68\x2e\xab\x3d\x6a\x8f\x0b\x27\x03\ \x81\x8f\x11\xc2\xb2\x22\x96\xb3\xd1\xc9\x75\x00\x25\x3c\xba\x3a\ \x5c\xcc\x88\x88\x39\x9a\x05\x4f\xe8\x24\x2b\x1e\x46\xaf\x97\x8e\ \x1a\xde\x0c\x95\xf8\x09\x27\x04\x1f\x43\x4c\xce\x84\x09\x29\x4e\ \x3a\x57\xfd\x5b\xe8\xa9\x3d\x7a\x60\x06\x2d\x4f\x4f\xed\x71\x59\ \xf4\xe0\x59\x5f\x47\xe5\xd8\x77\xad\x8e\x88\x2e\x54\x16\x7d\x55\ \xdb\x9f\x94\x4a\xc0\x98\xfe\xf0\x37\x28\x46\xe4\xdc\xe2\x8c\x15\ \x2d\xe7\x14\xc1\xb0\xaf\xe4\x23\x34\x09\x39\x39\x8d\x54\x0d\x11\ \x9a\x84\x98\x9c\x37\xb8\x81\xc1\x92\xa2\xa9\x49\x06\x1d\xf3\x9d\ \xb3\x53\x21\x54\xea\x01\xbd\x60\xc7\x6b\xda\xfd\x33\xf4\x26\xfe\ \xab\x5a\xc9\x23\x08\xd9\x86\x96\xef\xea\xe1\xb9\xfe\x6d\x45\x02\ \xdf\x44\x74\x81\x7a\xe6\xb0\x82\x6c\xbe\x86\xe2\x1e\x8f\x51\x94\ \xb4\x1f\xa4\x5f\x74\xa1\x5c\x7b\xc9\xbe\x86\xa5\x11\x04\x29\x66\ \x84\xa2\xc5\x11\x11\x0b\xd0\x1e\x85\xb2\xc8\x3d\x15\x1f\x86\x66\ \xe1\xa9\xa2\xeb\xba\x4b\xe0\xf6\x3a\x6c\x87\x83\x0d\x6e\xef\xcf\ \x26\x50\x09\xd8\xfb\x73\xef\x33\x1a\x34\x2d\x63\x32\x2c\x05\x8a\ \x98\x96\xf6\x0f\x4e\xbd\xa2\xb3\x74\x58\x6a\x6a\x4a\x22\xc6\xe4\ \xd2\x7f\x82\x88\x91\x74\xad\xd5\x20\xee\xef\x07\x3f\x75\x60\x98\ \x7d\x33\xec\xa2\x8b\xba\xa6\x02\x3d\x74\xb1\xea\x20\xf5\xea\x83\ \x28\x21\xec\x1a\xb9\xba\x5d\x30\x65\x4d\x2b\x4c\xef\x4a\x1a\xcc\ \x0d\x36\x44\x38\xf5\x72\x3e\xc2\x09\x40\x6e\x31\x64\x4c\xb0\x94\ \xf2\xe3\x23\x71\x8e\x96\x76\x2f\xe2\xab\x80\x4c\xee\x67\x92\x4f\ \x67\x11\xbb\xe6\xf2\xf0\x49\x0e\xa3\xca\xae\xed\xf8\x34\xb3\xd3\ \x60\x31\x82\x59\x7b\xaa\xa1\x23\x11\x9e\x96\xa6\x23\x92\x14\xdc\ \xa2\x89\x89\x49\x25\x0e\xbd\x32\x3f\xa2\x47\x8f\x8e\x38\x66\x46\ \xcb\x46\xf2\xb7\x68\x8f\x71\xab\x0f\x12\xec\xc3\x74\xfa\xe9\xf4\ \xf9\xba\xc2\x4b\x85\xb9\x9c\xde\x99\x76\xe1\x9a\xa8\x6b\xd2\x70\ \x27\xa0\xad\xa1\x45\x13\x85\x41\x98\x36\x60\xd9\x3d\x2e\x12\xc9\ \xe9\xed\xd3\x3e\xfd\xf2\x86\xf0\x00\x6b\x47\x4e\x82\xa1\xa2\x96\ \xaa\x2e\x92\x26\xec\x0e\xdb\x3c\xac\x13\xfa\x68\xc1\x41\x03\xf6\ \xba\x68\xee\x0e\x48\xc2\x87\x79\x86\x1a\x64\xaf\x87\x59\x8e\x7f\ \x1d\xad\x64\x98\x0c\x2e\x97\x12\xd2\x4a\xcc\x88\x9a\x86\xfa\x99\ \xd4\xd3\x17\x32\x44\xcc\x18\x43\x1c\x30\x4b\x27\x00\xaa\x0b\xd4\ \x73\x06\xfc\xaa\xdd\x91\x1f\xba\x4a\x37\xf8\xa8\x3b\xe0\x46\xbb\ \xa7\x38\x9b\xbb\xb3\xa1\xf6\xd0\xad\x5d\x72\xd5\x0d\x4c\x61\x88\ \x24\xae\xf4\xf1\xc0\x05\x3c\x14\x39\x11\x39\x25\x1b\xd6\x34\xa4\ \xd7\x9a\x42\xbf\x88\x21\x22\x12\x72\xb2\x10\xa5\x3d\x0f\xd2\x06\ \xb0\xcd\xc9\x8b\x50\x7b\x6f\xfa\xb0\xbe\xd8\xb5\x93\xdd\x35\xc3\ \x47\x6e\x10\xf8\x5e\x84\xda\xa6\x0e\x9c\xa8\x1e\x94\x7b\xc3\xbc\ \xc5\xd2\xd1\x08\xbe\xbd\x66\x43\xf3\x01\x2f\x8b\x50\x59\xf9\x66\ \x11\x63\x26\x6c\x89\x85\x1a\x94\x61\xc8\xc9\xc9\x48\x42\xc6\xa7\ \xc2\xad\x1b\xbe\xf1\xc3\xcc\x80\x01\x5b\x46\xc9\xed\x77\x52\x4e\ \x69\x6a\x31\x96\x1e\x9c\x10\x04\x01\xdf\x75\x43\xfa\xf6\x90\x95\ \x9c\xa1\xa5\x95\xd7\x35\x24\xb0\x3b\x69\x34\x3b\xc9\x83\x23\x62\ \xe6\x38\xd6\x54\x7f\x98\xa8\x57\xa2\x17\x7a\x32\x4e\x42\x41\x23\ \x00\x98\x96\xbe\xb6\x13\x94\x48\xbd\xf0\xac\x8c\x3b\xf0\x08\x2e\ \x14\x52\xee\x9a\xab\x72\xf8\xa7\x1e\xac\x77\x21\xc7\xf0\x81\xbd\ \x0e\xfd\x8b\xdd\xd5\xda\x65\x90\x56\x00\x1e\x2b\xae\xb3\x09\x90\ \xe0\x4b\x1a\x42\x13\x5f\x66\xc7\x09\x4a\x9c\xa4\x15\x42\xb1\x11\ \x0c\xc9\xed\x11\x3b\xae\x4b\x8f\x87\x6f\x69\x3f\x3f\x19\x5e\x14\ \xb7\x67\x9e\x43\x43\x38\x71\x96\x36\x54\x16\x86\x8e\x8e\x5a\x5a\ \xd1\x5a\x20\xba\x9d\xd7\x70\x72\xea\x5a\xaa\x60\x8a\x56\x98\x57\ \xd7\x3d\x3a\xfd\xdd\x4f\xd0\x01\xd1\x47\x89\xdc\xb5\x96\x46\x0a\ \x2e\x35\x78\x36\xfb\x07\xdf\x1d\x20\x52\xd7\x99\xc1\xed\x99\xc0\ \x0e\x00\x3b\x2b\x7f\xe3\xa4\x1e\xd9\x37\x95\x0b\xe0\x1d\x82\x88\ \x3a\x5a\x5a\xc1\x26\x5c\x38\x2b\x2a\xb4\x8f\x9d\x34\x96\x5b\xb9\ \x4c\xdd\x33\xc9\xa7\x2f\xc0\x8f\xd0\x5f\x68\x2c\x15\x48\xac\xde\ \xa5\x39\x1c\x60\x58\xea\xa9\x13\xa5\x9e\x82\x67\x0e\xcd\xe2\x0e\ \x80\xfd\xe1\xef\xd5\x33\xda\x42\x04\x3a\xba\x11\x6c\x42\x07\xcf\ \x42\xc0\xcc\x3b\xb4\xf4\x48\x9c\x34\xa1\xf4\x5e\xd7\xed\x15\x08\ \xa7\x96\x86\x92\x48\xea\xff\x58\x52\x29\xbd\x97\x33\xee\xa7\xad\ \xea\x19\x66\xd8\x9f\xad\xea\x61\x3a\x75\x70\x1d\xd8\xab\x36\x86\ \x95\xcb\xae\x9d\xe3\x24\x9b\xcc\xa5\xdf\x89\x10\x0d\xf5\xe0\xea\ \xf5\xb5\xb3\x91\xb7\xaf\xbf\x83\x97\xfd\x42\xe0\x6d\x27\xd8\x4f\ \x0b\xc2\x80\x8f\x9e\x42\x1d\x9e\x9e\xa1\x52\xd7\xfc\x59\xed\xa5\ \xd6\x7d\x6c\xb2\x52\x4a\xbb\x41\x0e\xa1\xf6\xfa\x60\x9e\xff\xa0\ \x03\x7c\x67\xe5\x6d\xfb\x8e\x67\x89\xa5\x19\x44\xb0\x5d\x33\xc0\ \x8a\x89\x7a\x44\xbd\x27\x25\xbd\xa2\x21\x7a\x27\xd5\x84\xe7\x12\ \x89\x85\xf5\x53\x9e\xe0\xe9\xa2\x8a\xa7\x4e\x89\xdb\xcb\x00\x86\ \x39\x81\xdb\x23\xa8\xec\x17\x6d\x36\x54\xa8\x7d\x8f\xb3\xef\x7c\ \x6a\x2c\xed\x00\x96\x55\x03\xe7\xb7\xc3\x50\x23\x39\x1f\xf6\x65\ \x33\x4b\x1b\x92\x14\x4b\xc3\x48\x6a\xce\x58\x7c\x71\x2c\x63\x47\ \x5d\xc8\x37\xfc\x8b\xea\x68\x65\xd6\x8a\x81\x2f\x51\x32\xdf\xed\ \xf9\x8f\x56\x2e\x96\x0d\x1f\x69\xa8\xa9\x42\xfe\x21\x4e\x5a\x7a\ \x97\x4a\xee\x7f\x47\x23\x90\xa0\x05\x19\x93\xf6\xf0\x40\x42\x4b\ \x23\x8e\x3c\x06\x69\x15\x23\x7c\x3d\x23\x8c\xfe\x29\x2d\x15\x6b\ \x21\xa8\xbc\x34\x9c\xef\xe8\xee\xfa\x16\x4a\x27\x2d\x5d\x3d\x80\ \xdc\x87\x35\x6a\x86\x13\x9a\xb8\x91\x82\x57\x87\xca\xd0\xec\xc1\ \x76\xfe\x2c\xb5\xa1\xe5\xdb\x33\x6a\x86\x10\xcd\x2e\x67\xd0\xf2\ \xff\x48\x60\x39\x23\x28\x59\x29\x83\xb6\xbe\xac\x8a\x83\x63\x74\ \x12\x23\x08\xdf\xad\x67\x62\x9b\x80\xbf\xaa\x97\xcd\x23\x1c\x96\ \xf6\x77\x95\xb4\xe1\x3d\x21\xa3\x0b\x17\x64\x97\x52\xfb\xe3\xd6\ \xca\x33\x89\xe8\x84\x14\xe0\x06\x35\x43\x2c\x2f\xc7\x0e\xfc\x87\ \x09\xc7\x37\x92\xd6\x9d\x0d\x9f\x5f\x87\xf8\xa1\xa4\x73\xa6\x06\ \x6e\xd6\x9b\x3c\x09\x0d\x67\x2d\x6f\xbd\x1b\xc4\x1d\x1b\xfc\x89\ \x11\xfc\x3a\x7a\xf5\x32\xdc\xe1\x7e\xe9\x6f\x67\x4a\x4c\x24\xbd\ \x81\xec\xe0\x9b\x3a\x2c\x6b\x10\xdf\xd1\x48\x73\x58\x87\x52\x59\ \x63\x48\x50\xd2\x1a\xea\xf1\x84\xde\x23\x34\x92\x58\x77\x83\x48\ \xaf\x42\xbe\xb8\xff\x7b\x27\xcc\x28\x2d\x20\x0c\xf4\x3a\x24\x5a\ \x4a\x70\x27\xa7\xb5\x16\x23\x28\x31\x42\x43\x3e\x98\xfe\x7b\x89\ \xab\xe1\x06\x18\x63\xc2\x58\x80\x8d\x8a\x56\xa6\xfb\x4d\xf8\x11\ \x4a\xe0\x90\x84\x14\x2d\x94\x41\x3f\xd4\xac\x85\x11\x97\x91\x50\ \x91\x30\x62\x2c\x06\x88\x04\x69\xd6\x74\x94\x01\x05\xb7\x83\xe8\ \x61\x07\xa9\xb4\x15\xb2\x80\x91\xb3\x86\xd0\xd4\x7d\xc7\x2b\x0e\ \x4d\x67\xa4\x27\xee\x06\x73\x3e\x04\x94\xdb\x8f\x3e\xb8\x97\x47\ \xa8\x76\x9f\x94\xc9\x45\xf0\xe0\x57\x4a\x4e\x26\x13\x17\x36\x70\ \xe2\x33\xe1\xc1\x9e\xf1\x90\x2b\xc1\xb1\x7a\xb7\x97\x92\xf2\x90\ \x11\x73\x66\x44\x92\xa6\xcf\x88\x99\x32\x16\x27\xaa\x07\x59\x9f\ \xdb\x8b\x19\xfb\x25\x7b\x2b\x97\xae\x93\x39\xd0\x46\x1e\x94\xa1\ \x0c\xaf\xb7\xa3\x91\xec\x62\xe7\xaa\x7d\xf8\x4d\xbe\x0f\x42\x85\ \xf4\x35\x5b\x71\x5d\x09\x53\xa6\x8c\x30\x02\xec\x23\x2e\x71\x8d\ \xa3\xe4\x82\x6f\x79\x42\x25\x2d\x7c\x3f\x01\xe8\x69\x5e\x6b\x12\ \xc6\x8c\x85\xd5\x92\x73\x87\x9c\xdb\xdc\xc4\x50\xa1\x19\xc9\x74\ \xe7\x21\xb6\xb9\x03\x64\x94\x70\x7d\x15\x9a\xad\x0c\xcb\xf8\x41\ \x05\x3f\xf5\xd3\x08\xc8\xbf\x33\x87\x0d\xd7\xc4\xb3\x26\x22\x61\ \x7c\x5e\x97\xa9\x3e\xc7\x59\x0e\x59\x6f\x9d\x1c\xe6\x8c\x31\xb9\ \xb8\x2e\x1b\xfa\x97\x8a\x7b\x14\x5c\xf0\x80\x73\x6a\x91\xc5\xf0\ \xdc\x99\xad\x30\xac\x33\x1a\x61\x36\x39\x12\xc6\x28\x46\xe2\xea\ \xae\xe8\x98\x30\x93\x2e\x6b\x2a\xa0\xb0\x1d\xe4\x95\x08\x3b\x6e\ \x29\xfd\x95\x25\x0f\x78\x80\xc2\xb2\x65\x0b\x8c\x19\x71\x84\x21\ \x13\x98\x06\x14\xd5\x20\x87\xf0\x45\x5a\x14\x62\xde\x77\x46\x0d\ \x7b\x00\x91\x3a\xc9\xd9\x7b\xbe\x41\x24\x93\x38\x53\x32\x0c\x11\ \x0d\x2d\x39\x9a\x9a\x98\x96\x3f\x73\x9f\x0b\x2e\xa8\x88\x39\xe6\ \x84\x09\xb0\xa5\xa1\xe1\xb1\xd0\x4a\x52\x20\x65\x4a\xc1\x9a\x88\ \x91\x50\xda\xad\x28\x44\x4c\x79\x44\xc6\x9c\x13\xe1\xca\x38\x1c\ \x35\x29\x46\x98\x96\x25\x9a\x15\x8f\x59\x12\x63\x38\xe3\x01\x8f\ \x68\x65\x84\xa5\x22\x61\xca\x9c\x88\x29\xb7\x38\x0a\x19\x8a\x1b\ \xcc\x00\x2b\xa6\xd4\x24\xcc\x07\x19\xed\x33\x0c\xa1\x0f\xda\x7d\ \x5a\x32\xb1\x86\x3a\x38\x9d\x28\x24\x52\x9e\x23\xe1\x7f\xe0\x92\ \x4b\x1e\x00\x09\x33\x12\x4e\xb8\xc9\x94\x94\x8a\x9a\x2d\x0d\x6f\ \xf0\x33\x1e\xf2\x84\x2b\x2c\x8a\x8c\x09\x29\x96\x25\xaf\xb1\xe2\ \x42\x32\xbe\x9a\x05\x05\x73\x8c\x74\xaf\xad\xa4\xf0\xc3\xb3\xb9\ \xe2\x8c\x6f\xb9\x40\xa1\x59\x71\x8e\x9f\x2a\xae\xa8\x28\xd8\xb0\ \x62\x49\xc4\x98\x25\x13\x52\x72\xc6\x02\xf4\x37\x32\xc6\xc0\xc1\ \x95\x78\xc1\xab\xe1\x64\x30\xa1\x67\x4f\x1b\x0c\x85\x70\x99\x12\ \xe9\x80\x1a\x8c\xf4\x1b\xcf\xf9\x92\x0b\x12\x22\x6e\x72\x83\x5b\ \xcc\x89\xe8\x18\x13\x51\x53\x11\xa1\x79\xc4\x3d\xbe\xe2\x9c\x73\ \x96\xdc\xe0\x98\x88\x96\x35\x25\x31\x25\x11\x25\x15\x0d\x6b\x32\ \x89\x23\x3b\x6a\x88\x0d\xdd\xae\x96\x15\x57\x3c\xe1\x02\x45\xc4\ \x96\x0d\x2d\x75\x68\x36\x55\x54\x6c\x88\x18\xb3\x25\x23\x63\xc2\ \x94\x19\x63\x22\x0a\xac\xc8\xf4\xc8\x49\xbf\xd4\xcf\x33\x84\x3d\ \xf8\xb0\xc5\x12\xe3\x58\xf3\x2d\x8f\x50\x4c\x25\x06\x18\xa9\x3f\ \x95\xcc\xdf\x44\xac\x79\x02\x8c\x18\x73\xc2\x9c\x29\x09\x2d\x2d\ \x39\x19\x33\xe9\x2c\xdc\x62\xc4\x31\x0f\xf9\x9a\x2b\x20\x66\x44\ \xc7\xa5\x38\xcf\x86\x0e\x4b\x4c\x4a\x4e\x8e\xc1\x49\xc1\xdc\xe7\ \x14\x25\x86\x8e\x82\x0b\xae\x28\xe8\x30\xc2\x74\xd8\xd2\xe2\x48\ \x98\x30\x62\x43\xc9\x45\x80\xf2\x4b\x0a\x56\xb4\x18\x26\x44\x74\ \x32\xf3\x23\xc8\xea\xbd\x57\xe0\x59\x6a\x14\x9b\x0f\xbe\xe4\x3f\ \xb3\x21\xe5\xef\x24\x19\x76\x18\x91\x3c\xb1\x42\x51\xb7\x8c\x19\ \xf1\x2e\x53\xc6\x92\x3c\xf9\x63\xbd\x95\xb4\x67\x4b\xcb\x94\xb7\ \xb9\xc3\xbb\x3c\xa1\x20\x26\xc7\x90\x01\x19\x29\x29\x96\x12\xc8\ \x18\x13\x61\x69\x42\xea\x6d\x05\x95\x74\xb4\x6c\x79\xc0\x05\x25\ \x0e\x47\xc5\x8a\xb5\x38\xc3\x58\x94\x03\x1c\x09\x0d\x05\x2d\x39\ \x29\x85\x24\xe4\xa7\x81\x75\xe9\x06\x88\x85\xbb\x06\x3d\x89\x9e\ \xcd\x60\xf0\xb5\x44\xf9\x87\x07\x14\xcc\x98\x85\x32\xa6\xc7\x05\ \x3c\x63\xc5\x51\x11\xf1\x3a\x13\x6e\x93\xd1\xab\x02\x69\x34\xf7\ \xb9\xc2\x72\x44\xca\x9a\x95\xc0\xea\x0d\x15\x6b\x62\xa6\xdc\xe6\ \x0e\x17\x6c\x51\x8c\x99\xb0\xa1\x20\x66\x44\x1a\xaa\x12\x8f\x2d\ \x69\x29\xb5\x6a\xd6\xac\xd8\x50\xe1\xe8\xd8\xca\xb8\x8b\x21\xc2\ \x90\x91\x32\x25\xc6\xb1\x60\x23\x53\x1f\x09\x96\x15\x1a\xc3\x0d\ \xc6\xa4\xc4\xe4\x92\x6a\xeb\x2f\x9e\xdb\xd7\x50\x21\x43\xf7\xe5\ \x4e\x84\x23\xa6\xa1\x66\xc4\x2d\x92\x41\x72\xbc\xcb\xe2\x13\x5a\ \x0a\x62\x6e\x93\x4a\x89\x5b\x62\xa9\x58\x71\xc1\x5f\x31\x32\x85\ \xb3\x61\xc1\x1a\x45\xc9\x96\x0d\x2b\x14\x5b\x1c\xb7\xc8\x88\x48\ \x49\xe8\x18\x91\x90\x92\x90\x49\xc7\xbd\x11\xd1\x04\x23\x18\x75\ \xc1\x82\x9a\x92\x42\xc2\xa8\x93\x6e\x9b\xcf\x6f\x53\x52\xa6\xcc\ \xb9\xe0\x4a\x26\x02\x7d\xa2\x7f\x85\x61\x4a\x42\x4a\xc6\x44\x46\ \x2c\xcd\x6f\x9e\xcb\x8f\xd8\x4d\x66\x74\x1f\xb7\x9f\xba\x63\xd0\ \xff\xc8\xaf\x2a\xd6\x94\x5c\xb0\xe1\x17\xd2\x6d\x54\x82\x05\x68\ \x2c\x29\x50\xc9\xd8\x51\x19\x22\xff\x86\xff\xce\x1f\x89\xf9\x19\ \xef\xa0\xd9\x92\x32\xa2\x65\xc4\x4a\x38\xb4\x4f\x58\xf1\x80\xbf\ \xe7\x94\x3b\x24\xac\x29\xd1\x4c\xa5\x70\xf2\x67\xae\xa1\x16\x16\ \x54\x4b\x4d\xc4\x86\x25\x35\x5b\x36\x38\x69\xef\x25\xe4\xa4\x18\ \x1c\x89\xd4\x3d\xaf\x71\xc2\x4a\xc6\x6a\x1a\xa0\xa5\x44\x73\x2a\ \x7a\x88\x86\x38\xd0\x0a\xae\xcd\x9a\x56\x7b\xb5\x45\xc7\xe6\x77\ \x97\x1f\x16\x64\x22\x7b\x51\xb1\xe4\x9c\x87\x3c\xe6\x8a\x88\x92\ \x94\xb7\x79\x87\x09\x1d\x25\xb7\x68\x29\x28\x24\xc5\xee\x98\x70\ \xc5\x25\x15\x2b\x96\x18\x66\xac\x79\x8c\xa5\xe0\x3e\x1d\x13\x2a\ \x0c\x39\x9a\x86\x94\x9c\x2d\x4f\x58\xf3\x3a\x7f\xcf\xfb\x4c\xa8\ \x29\x69\x49\x31\xcc\x49\xa8\xe8\x50\xd4\x74\x94\x94\xf2\xaa\x56\ \xac\xf9\x0b\x97\xac\x64\x22\x50\x93\x70\x2c\x95\x8b\x67\xea\x67\ \x52\x5e\x95\xac\x59\xb0\x16\xbd\x02\xc3\x1b\xfc\x8c\xb7\xb9\xcd\ \x9c\x12\xcb\x7b\xfc\x44\xe6\xfd\xbe\xf3\x44\x28\x1c\xd5\x87\x97\ \xac\x99\x93\x48\x17\x23\x62\x4a\x43\xc1\x96\x0c\x87\x0a\x48\x76\ \xce\x7f\xe6\x92\x9c\xbb\xcc\x58\x70\x4e\x4b\xce\x96\x9a\x8a\x25\ \x0b\x52\x12\x0a\x19\x59\x79\x8d\x11\x8a\x07\x94\x6c\x04\x72\xdb\ \xa2\x39\x22\xa6\xe2\x4f\x6c\x79\x9b\x39\xd0\x31\x95\x21\xc7\xad\ \xa8\x0c\x2c\x29\x59\xd3\x01\x15\x57\x2c\xd8\x50\x50\x86\xa6\x70\ \xcb\x8a\x2d\x17\xa1\x24\x1c\x31\xc1\x90\x30\xe7\x06\x57\x3c\x94\ \xc1\x5c\x9f\xd9\x5a\x22\x22\xe2\x50\xca\x3f\x07\xc5\xf6\xb7\x7e\ \xcb\x05\x5b\x92\xe0\x05\x22\x26\x58\x19\x23\x32\xe4\x8c\x88\x25\ \x65\xfd\x67\xbe\xe6\x94\xd7\x98\x73\x9f\x7f\xa2\xa6\x21\x16\x81\ \x9c\x9a\x04\x23\x91\x7b\xca\x84\x88\x88\x1c\xcb\x25\x5b\x5a\xb6\ \x14\x4c\x78\x8d\x9c\x4b\x1e\xb3\xc5\xf2\x1e\x39\xd0\x4a\x92\xa6\ \x45\x84\xab\x95\x72\xbe\x65\xc3\x39\x0b\x39\xf4\x2e\x10\x83\x5a\ \x09\xe4\x86\x96\x8d\x50\xd6\xa7\xdc\x60\xc6\x84\x63\x0c\x4a\x26\ \x00\x17\x94\x81\xec\x94\xbe\x48\xd1\xe5\xa4\x6e\xeb\x24\xdb\x6b\ \xc4\x21\x41\x82\xa1\x65\x45\xce\x31\xb7\x39\x92\x2a\xf4\x26\x17\ \xc4\xb4\xac\x78\xc8\xd7\x14\x3c\x61\xc6\xeb\xbc\xce\x58\x34\x29\ \x6f\xb0\x66\x45\xc3\x25\x17\x1c\xf1\x2e\x2b\x62\x26\x52\x29\x1a\ \x0a\x72\x3a\x2c\x05\xff\x42\xcd\x6b\x8c\xf8\x0b\x8a\x53\x6e\x31\ \xc7\xb2\xe0\xb1\x0c\xb7\x16\x5c\x72\xc1\x25\x1b\x56\x22\xed\xd2\ \x77\x59\x2a\xb4\x88\xed\x28\x5a\x6a\x2e\x88\xb8\x62\xc1\x8c\x0c\ \x45\xc6\x0d\x2a\x0c\x5b\x0a\xb6\x01\x40\x4c\x06\x03\x34\xcf\x34\ \x84\x01\xba\x8f\x3b\x62\x52\x41\x7e\x12\xf9\xb0\x2f\x85\x16\x4c\ \x99\x32\x23\x13\x85\xb0\x7f\xc7\x6d\x3a\x22\x0a\x72\x6e\xb3\x66\ \x49\xc6\x88\x31\x13\x5a\x36\xac\xf9\x13\x6b\x9e\x70\x49\x89\x25\ \x61\x44\xce\x88\x23\xe6\x8c\x48\x29\x58\x90\x30\xc7\xf0\x17\xfe\ \xc4\xd7\xbc\xc3\x1b\x7c\x8b\xe1\x27\x44\xdc\xc2\x72\xc1\x1f\x69\ \x80\x9a\x4b\x1e\x73\x49\x85\x65\x45\x3c\x28\xc8\x3a\x2a\x1c\x15\ \x35\x63\x46\xc4\xc4\x62\xe0\x92\x52\x38\x5e\x13\x20\xa7\x13\xd6\ \xb7\xa2\x93\xb9\xb2\xe7\x1a\x42\x61\xe9\x3e\xb6\xc4\x21\x0f\xeb\ \xe1\x8e\x94\x31\x13\x2a\x72\x32\x01\x4f\x62\x52\x32\x46\x6c\xa9\ \x69\xb8\x43\xc6\x8a\x88\x09\xc7\xe4\xd4\x5c\x70\xc6\x9a\x25\x37\ \xb8\x62\xcb\x98\x77\xd8\x70\x9f\x0d\x11\x67\x4c\x38\xe5\x94\x9c\ \x88\x96\x11\x29\x96\x35\x97\x54\x9c\xf3\x57\x14\x0f\xd8\xf0\x73\ \x12\xfe\x85\x7b\x3c\x14\x91\xcf\x15\x8d\x88\xae\x25\x8c\x49\x50\ \x74\xd4\xd4\xa4\x44\xe4\x4c\xc8\x50\x54\xd4\x42\x5d\x69\xa4\x4b\ \x1b\x09\xf0\x3b\x22\x97\xaa\xb9\x44\x13\xfd\x5e\x89\x54\x97\x7d\ \x76\x42\xe5\x70\xd8\x5f\x76\xa2\xfb\x93\xc9\x13\x81\x9c\x88\x88\ \x4e\x9e\x87\xcf\xcf\x0c\x29\x1b\x72\x34\x1b\x19\x7c\x4e\xb9\xc9\ \x94\x89\xa4\x3b\x05\x35\x53\x6e\xb0\x22\x67\xc6\x98\x25\x25\x77\ \xa8\xe4\xc7\x97\x68\x52\x5a\x5a\x22\x6e\x93\xb0\x61\xc3\x7d\x2c\ \x8a\x96\x8a\x02\xc3\x88\x13\xd6\xac\x58\x70\xc5\x56\x72\xd9\x58\ \x0e\xb7\x17\xee\xeb\x64\xc2\x37\x25\xa2\x1d\x00\xc6\x95\x8c\xee\ \x5b\x16\x18\x32\xc6\x4c\xa4\xf3\xd1\xa1\x89\x3e\x7a\x01\x67\xd9\ \xc9\x29\x50\xc2\x7f\xa8\x68\xa9\x65\xc2\xb2\x11\x18\x3c\x21\x96\ \x9a\x73\x87\x09\x77\x34\x94\xa1\xfd\xae\x88\xe4\x49\xdf\x20\xe2\ \x82\x19\x35\xff\x85\xc7\xd4\x9c\x02\xc7\xfc\x1d\x47\x9c\xb3\x20\ \x66\x8e\x25\xe3\xe7\x4c\x58\xf2\x9f\x38\xe7\xe7\x18\xee\xf2\x6f\ \x79\x8b\x31\x6f\x70\xc2\x4f\xb8\xc7\xff\xcb\x15\xad\x74\x30\x62\ \x20\x23\x66\xc4\x94\x09\x09\xf7\x25\xcd\x8a\x98\x73\x83\x19\x1b\ \x0a\x89\x32\x9e\x1f\x5c\x8a\x50\x57\x4a\x4b\x21\x28\xbc\x79\x91\ \x4e\x57\x24\xa1\x31\x93\x52\x65\x1c\xb4\x80\x7a\x1a\x48\x1c\xf0\ \x49\x3f\x22\xe0\x85\x51\x5a\xf9\xd1\x33\xe1\x6c\x6f\xf1\x3a\x43\ \xc7\xb4\x9c\xf2\x0d\x97\x4c\x99\xb3\xe5\x26\x11\xb7\x79\x9b\x29\ \x29\x17\x38\x32\x1a\x3a\x8e\x78\x8f\x35\xff\x89\x07\xfc\x8c\x11\ \xb7\xb9\xcb\x9b\x58\x52\xa6\x5c\x32\xe2\x4b\x62\x4e\x59\xb2\x41\ \xf3\x96\x0c\xdb\x26\x94\x7c\xcb\x13\x96\x24\xc2\xf6\xcb\xc8\x99\ \x32\xc2\x89\x4e\xae\x57\x4f\xb6\x02\x17\x68\x26\xe4\xc0\x4a\x1e\ \x9a\x0b\x3d\x97\x67\x76\xc3\x55\x38\x82\xbd\x6c\xa2\x15\x3a\x96\ \xd7\x14\x8d\xa5\x35\x67\x03\xbd\xc3\x08\x09\x23\x26\xe5\x88\x63\ \xe6\x4c\x98\x32\x27\xa5\x63\x8d\xe1\x36\x6f\x71\x4c\x42\xc6\x31\ \x25\x31\x6f\xf0\x3e\xaf\x73\x44\x8a\x61\xc4\x5b\x18\x6a\x4e\x19\ \xd3\x31\x67\x45\xc4\x11\x59\x98\xdd\x54\xe4\xcc\x19\x49\x4f\x2d\ \x62\x84\x62\xcb\x05\x17\x6c\xb0\x32\x79\x3a\x95\x57\x51\xb3\xa0\ \xa2\xa1\x0a\x59\xe5\x5a\x06\x16\x3c\xbc\x57\xb2\xe6\xbf\x73\x49\ \xf7\xa9\x83\x01\x0d\xe5\x19\xd5\xa7\xc7\x12\xdb\xc0\xb7\x4e\xc8\ \xa4\xe4\xed\x30\x64\x8c\x64\xb6\xd2\x05\xaa\x71\xff\xdf\x11\xad\ \x8c\xcb\xfb\x03\xb8\xa6\x22\x65\xc4\x9c\x39\xef\xb1\x02\x34\x5b\ \x8e\x78\x8f\x9c\x0a\xc5\x11\x29\xf0\x3a\x57\x34\xcc\x59\xa0\x78\ \x0b\xc3\x4d\x5e\x93\xe2\xc8\x8a\xa0\xeb\x11\x89\x88\xbc\x65\xa4\ \x94\xd4\x64\x1c\x73\xcc\x39\x05\x47\xcc\xb9\xa4\x12\x44\x2b\x21\ \xa6\xa3\x10\x0d\x23\x4d\x21\xe7\xe1\x8a\x11\x11\x73\x52\x2c\x0d\ \xab\x4f\x2e\x3e\xd9\x72\xc4\x0d\x15\x7f\x97\x8f\xb0\xe8\x7f\x4c\ \x7f\x69\x24\xe0\x78\xe0\x7d\x2b\x3e\xba\x63\xca\x28\x08\x66\xea\ \x40\xf3\xf1\x0d\x39\x3f\xc2\x3e\x46\x93\xca\x41\x2b\xb8\x8d\x22\ \xe1\x06\xef\xb1\x66\x45\x29\x99\xdd\x92\x15\x25\x23\x8e\x29\x25\ \xc9\x69\x68\x38\x26\x67\xc2\xcf\x79\x8d\x34\x50\xd5\x62\x66\xdc\ \x26\xa7\xa6\x25\x62\x4a\xcd\x9a\x96\x1b\xfc\x3d\x6f\xf0\x47\x2e\ \x69\x58\xb1\xc5\x91\x92\x61\x98\x73\x83\x35\x4f\xd8\x02\x33\x14\ \x1d\x25\x8e\x9a\x25\x86\x8a\x8a\x29\x1b\x2e\x79\xc4\x13\x9e\xf0\ \x36\xa9\x3b\x51\xee\xd9\xe1\x53\x13\xff\x2a\x76\x36\xa4\xd1\xbe\ \xd5\x87\x94\x2d\x99\x88\x27\x32\x50\xb4\x55\x01\xaa\xc9\x59\x09\ \x0c\x97\xd1\xe1\x18\x91\x0a\xc2\xe5\xb9\xbb\x8d\xa8\x3a\x24\x52\ \x53\xae\x98\xb1\x60\xcc\x11\x4f\x28\xf9\x09\x0b\x7e\xca\xfb\x4c\ \x84\x13\xe9\x95\x28\x46\xbc\xcb\x1b\x3c\xa0\x22\x25\x13\x24\xc4\ \xa0\x30\x9c\xf0\x36\x5f\xb2\x02\x66\x9c\x10\xe3\xc8\xb8\x49\x4a\ \x25\x91\xc9\x49\x3b\xd0\x33\x3b\x1e\xb0\x25\xa6\xe2\x18\x45\xc1\ \x8a\x95\x0c\x70\x3e\x13\xb3\xec\x59\x28\x5e\x83\x70\x4d\xc5\x16\ \xcb\x14\x2d\xe5\xae\x09\x83\x08\x43\x42\xb0\x95\xce\xe3\x29\x8e\ \x25\x23\xd2\xa0\x60\x3b\x22\xc7\xb0\xa6\x26\x65\x42\x4d\x41\x1b\ \x84\x7c\x6b\xa0\xe0\x98\x39\x67\x74\xbc\xcf\x92\x9f\x33\x17\x08\ \x30\xc2\x91\x70\x8e\x66\xc6\x5b\xfc\x15\x87\xa2\x91\xeb\xa4\xf8\ \x9a\x86\x23\x7e\x41\xce\x7d\xb9\xb4\x8e\x29\x27\xc4\x8c\xb8\x45\ \x4a\x11\xf8\x94\x29\x13\x72\x6a\x12\x46\xc4\x14\x6c\xf8\x26\xf4\ \x46\xdd\x77\x23\x54\x3e\xcd\xf6\xdd\x44\x0f\x7f\xa4\x4c\x44\x04\ \xab\x0b\xf4\x9e\xbe\x17\xa9\x03\x2f\xd7\x90\xf0\x0b\xfe\xcc\x9a\ \x96\xa9\xa0\xdd\x0d\x19\x19\x8e\x9c\x44\x78\xd3\x1b\xd6\xb4\x58\ \x81\xe4\x96\x24\x4c\x50\x54\x18\x8e\x38\xe1\x88\x48\x5c\x71\x4d\ \x49\x4d\x4c\x49\xc3\x88\xdb\x68\x0a\x0a\xa9\x14\x12\x4a\x56\xdc\ \xe0\x94\x8c\x8c\x19\x6b\x16\x64\xbc\xcd\x11\x8d\x38\xdb\x25\x57\ \x62\x4e\xcd\x88\x63\x62\x26\xdc\xe6\x04\xc5\x96\x25\x35\xb3\xbd\ \xf9\xe1\x6b\x13\xaa\x2e\x70\x27\x55\xa0\x67\x29\x99\x90\xea\x02\ \x53\xc9\x86\xa4\x6a\x9f\x5a\xfa\x53\x56\x2c\x69\xc3\x90\xe3\x09\ \x9a\x96\x8e\x94\x88\x8a\x25\x05\x8e\x94\x51\x38\xb8\xdf\xf2\x06\ \x89\x74\x28\x15\x37\xe4\xda\xf9\xe2\x6b\xc3\x86\x63\x1e\x53\x01\ \x73\x62\x96\x3c\xa1\x40\x91\x4a\x16\x61\x59\xd1\x30\xe3\x16\x15\ \x5f\x93\x71\x47\x94\xf0\x0c\x39\x25\x8a\x44\x86\x2f\x2d\x8a\x84\ \x39\x6f\xf3\x36\x31\x5f\x72\x0e\xcc\x99\x5f\x33\xe2\xb6\x67\x88\ \x9e\x5d\x5b\xcb\xb7\x84\x96\x84\x1c\x45\x2d\x9d\x22\x85\x15\xe2\ \xd0\x8e\xb2\xd3\xf7\x13\x97\xbc\x4b\xc2\x9f\xb8\xcf\xbb\x9c\xd2\ \xb0\x24\x92\xf9\xbb\x2d\x2d\x1a\xc7\x98\x4c\x5a\x3a\x1d\x5b\x5e\ \x47\x53\x92\x31\x63\xcc\x48\x8c\xa7\x02\xfb\x21\x91\x56\x8e\x62\ \x42\x22\xd5\xa6\xa3\x65\x4d\x42\x46\x4c\x8d\x16\xbd\x02\x47\xc5\ \x23\x22\x2e\xa4\x8d\xec\xd5\x6e\xc0\x31\x21\x27\x23\xa7\xe2\x09\ \x27\xe4\xc4\xdc\x62\x8b\x61\xc6\xe4\xfd\xf6\xc0\x18\x7b\x3e\xa2\ \x07\xcf\xbd\x3f\x68\xc8\x38\x22\x13\xe1\x94\x72\x8f\x4b\x7b\x5d\ \x3f\xb9\xc6\x31\xe3\x5d\xce\x78\xc4\x82\x11\x33\xc1\x0a\x12\x69\ \xca\x7b\xca\xea\x15\x17\x94\x20\xc2\x4c\x23\x46\xa2\x2d\x60\xf6\ \xc0\x80\xbe\xfb\x19\x8b\x5a\x89\x21\x63\x83\x96\x74\xde\x1b\xad\ \x24\x21\xe7\x84\x82\x96\x9a\xf5\x80\x9e\x10\x4b\x7e\x33\x16\x35\ \xe5\x98\x11\x63\xc1\xb1\xbc\x19\xf5\x3d\xf3\xdd\x3e\xa2\xfb\x78\ \x37\xa8\xd4\x0a\xfa\x90\xd2\xd2\xb0\x0d\x33\x76\xea\x19\xed\xc1\ \x84\x9a\x09\x33\xe6\xdc\x63\x89\xe3\x98\x8a\x86\x42\xe6\xc5\x6b\ \x0c\x2d\x05\x8f\x39\x47\x73\xc4\x4c\x84\x37\x46\x64\x72\xa6\xa2\ \x01\x39\xd4\xc9\x30\xdd\x88\x31\x31\x05\x86\x54\x84\x3f\x9d\xa0\ \x14\xbd\x20\x64\xca\x84\x92\x15\xad\xe4\xb8\xad\xcc\x25\x1a\x66\ \x8c\x30\x68\x12\x22\xc6\x8c\x04\x97\xcf\x18\x93\x5d\xc3\x93\x38\ \x48\xa8\xb8\xa7\x05\x91\x8c\x49\x18\xcb\x19\xe8\x84\x98\xe3\x06\ \xbd\xa2\xa7\xf9\xd4\x09\x35\x96\x8c\x5b\xb4\x3c\xa6\xe3\x01\x05\ \x5b\xea\x30\xc8\xf0\xae\x08\x7e\x46\xcc\xb8\xc5\x4c\x44\x5b\x7b\ \xd1\x3e\x27\x1d\x8d\x5e\x86\x4f\x49\xcd\x33\x16\x71\x8d\x98\x89\ \x08\x80\x55\x6c\x88\x25\xd3\x6c\xa5\xfb\x92\x32\x62\x2d\xf5\x8f\ \xef\xa0\xc6\x72\x31\xf5\x80\xbf\xef\x55\x32\x27\x64\xd7\x50\x0c\ \xa3\xfd\xb9\x0c\xf3\x45\x8c\x96\x14\x66\x42\x8e\x15\x03\xf4\x73\ \xbe\xee\xda\x86\x99\x12\x6c\x19\x81\xe1\x66\xa2\x42\xd9\x49\xfe\ \xd0\x33\xa7\x7c\xf9\x1e\x31\x61\x12\xc6\x1c\x74\x98\xf3\xeb\x82\ \x46\x59\xaf\x03\xe1\x03\xe0\x98\x05\xe0\xb8\xc5\x5a\x4e\x85\x57\ \xa4\xf2\x3d\x95\x26\x44\xbb\x4a\x46\x5f\x53\x72\x52\x22\x36\x22\ \xd8\xd5\x33\x7b\xfc\xe4\x57\xca\x8c\xe4\x79\x4d\x60\x87\x22\xba\ \x4c\x8e\xb5\xa8\xce\x26\x82\x29\x7b\xee\xd4\x6e\xc0\x4c\x3d\x35\ \xee\xea\xbb\xcf\x39\xb0\xa5\x24\xe2\x88\x19\x5b\x22\x22\x21\x26\ \xf6\x7d\x68\x07\xa4\x22\xb5\x91\x1c\x4c\x89\x6e\xe5\x27\xec\x8f\ \xa5\x8c\x39\x92\x7e\x45\x42\x22\x6d\xc0\x9a\x0d\xb1\x34\x00\x6c\ \x60\x61\xdd\x1e\xcc\x18\x3a\x2c\x39\x63\x51\xca\xb4\xf2\xf3\x2d\ \x8e\x11\x13\x92\xff\xc0\x77\xe5\x11\x86\x9a\xee\xae\xfe\x22\xfd\ \x70\x24\xc2\xbb\x2e\x8c\x86\x20\x8a\x61\xc3\x59\xbb\xc3\x19\xd1\ \x58\xe4\xf2\xb4\xcc\x56\xa5\x72\xdf\x77\xf4\xe0\x58\x14\x0a\x3d\ \xcf\x2d\x3a\x18\x67\xd9\x5d\x89\x3e\x73\xf5\xc5\xde\x09\x4b\x96\ \x14\x22\xeb\x92\xd1\xb2\x65\x8b\x23\x97\x11\x25\x83\x62\x22\x3d\ \xf9\x4a\x48\xea\x8e\x96\x5b\x4c\x85\xea\xd4\x49\x61\x8e\x60\x2d\ \xc9\x35\x4d\x9e\x83\x06\x4f\xf3\x0f\x5e\x74\xbb\x91\x79\x28\x82\ \x97\x28\x06\xa3\xc9\xd7\x83\x1b\x49\xd0\xb6\xd7\x34\x34\xd2\x47\ \xf0\xd5\x6c\x2b\x45\x54\x24\xe9\x3a\x61\xb0\xda\x49\x2f\xc5\x86\ \xb1\x84\xa1\xac\x82\x23\x66\xcc\x8c\x0c\x43\x8d\x62\xcc\x5c\x62\ \x58\xcd\xa5\x0c\xec\xa7\x4c\x98\xa0\xd9\x08\xa1\x54\x49\xdd\x39\ \x65\x22\x17\x89\x81\xb4\x57\x32\x88\x50\xcf\xbc\x1a\x11\xe6\xf3\ \xe5\x27\x96\x09\x19\x1b\x3a\x1e\x10\x71\x2c\x7a\xb3\x06\x45\x8d\ \x22\x0d\x2c\x7d\x0e\x26\x6c\x6a\x8c\xa0\xc4\x7d\x08\x4e\x43\x48\ \xd3\xe4\xe2\x15\x62\x59\x13\xa1\xa4\xcd\xdb\x89\x6f\xb0\xc2\xaa\ \x26\xf8\x8d\x9e\x91\x9f\x30\xe7\x98\x05\x2b\xd1\xc7\x9e\x71\x07\ \x4b\xc9\x23\x1e\xf3\x95\x6c\xdb\x38\x66\xc4\x39\x15\x0d\x11\x27\ \xbc\xc9\x1b\xcc\x59\x90\xb3\xa0\x90\x86\x94\xe7\x5c\x6c\x51\x8c\ \xdf\x37\xd7\x08\x30\x1d\x14\x5d\xfa\x73\xfd\x89\x95\x09\x4f\x0f\ \xb8\xd5\x1c\xcb\x88\xa0\x67\x2c\xf9\xb7\x13\x5d\xe3\x2c\x4d\xf0\ \x33\xbd\x12\x90\x66\x28\x0d\xea\xbb\x1c\x1a\x25\xc0\x48\x2b\x14\ \x94\x4e\xbe\x4a\x0f\x58\xff\x4a\x1a\x37\x7e\x9e\x74\xcc\x8c\x63\ \xd1\xcb\x36\x54\xc4\x64\xcc\xb8\xc1\x86\x25\x2b\x2a\x1c\x6b\x36\ \xe4\x8c\xc8\x99\x71\xc4\x18\xc5\x86\x0a\x44\x92\xa7\x57\xd8\xed\ \x06\x93\x1d\xea\xbb\xae\x86\xc2\xdc\x8b\x64\x58\x29\xa1\x10\xd7\ \x67\x84\x2d\x77\xc6\x88\xa9\xbc\xdc\x4e\xc6\x8f\x87\x54\x63\x13\ \x46\x9a\x4c\x18\x91\x76\xe1\xb0\x9b\xa0\x13\xd5\xb3\x21\x1b\x5a\ \x1a\x5a\xf9\x0a\x13\x92\xfa\x66\x6f\x14\xbe\x23\x22\x61\xcc\x94\ \x0b\xd6\x54\x28\x32\x1a\x72\x66\xcc\x83\xc2\x88\x57\x63\xd6\xe4\ \xcc\x99\x93\x63\x59\x53\xa2\xa8\xe4\xf5\x67\xd2\xb2\x6e\x7c\xc2\ \x78\x97\x7b\xcf\xa5\x05\x44\xa4\xbf\xe7\x43\x43\xf4\x99\xfe\x7c\ \xf6\x95\x27\x0b\x2a\xb9\xe7\x0b\xe9\x5d\x49\xa0\x7d\x26\xe7\x4a\ \x07\xa5\x97\xdd\xfc\x84\x11\x5a\x49\x2b\xd5\x8a\x17\xdc\x23\x8c\ \x37\xf7\x1c\x5d\x2b\x24\x34\x2b\xd4\xe1\x9d\x86\x44\x44\xca\x15\ \x5b\x22\xc6\x92\x34\x79\x31\xe1\x23\x5a\x69\x19\x6e\x03\xe5\xd0\ \x3b\x4d\x2f\x3a\xef\x0d\x14\x0b\xaa\x62\x51\xa8\x7b\xd7\xcd\x19\ \x46\xfb\xdc\x6b\x43\xfa\x11\xbf\x73\x77\xd5\x3d\x7d\x6f\xfa\xeb\ \x29\xa3\xdf\xae\x24\x11\xf1\x14\xcf\x5e\x52\xd5\x8b\x9b\xb0\x97\ \x6c\xbb\x40\xcf\xd1\x81\x1d\xb9\x53\x18\xf1\x2c\x89\x3a\xa0\x05\ \x9d\x68\x8c\x45\x81\x6a\xee\x67\xc6\x62\xd9\xd5\x55\xc2\x80\x6f\ \xd9\x9f\xa8\x5a\x34\x95\xbd\x66\x9d\x92\x04\xca\xb3\xab\x67\x41\ \x18\xb4\x15\xd2\x50\x1d\x66\xba\xb4\x28\x6d\x6a\x12\xf4\x3d\x9e\ \x3f\xaf\xa1\x88\xb0\x1f\xb5\x9f\xda\x0f\x40\x7d\x11\xdf\xe3\x1e\ \x7f\xf0\x92\xae\x3a\x30\x18\x5d\x80\x73\x87\x53\xdf\xc3\x49\x60\ \x42\x5b\xc5\x89\x1c\x46\x07\xf2\x06\x1a\xc9\x1d\x2d\x91\xac\x84\ \xb0\x81\x50\xda\xd1\x89\x7a\x89\x8f\x53\x43\x53\x46\x02\xc1\x95\ \x2c\x31\x24\x24\x24\xb4\x32\xf9\xab\xf1\xa3\x56\x08\x9e\xe2\xc7\ \x96\x7c\xa9\x88\xc4\xbe\x2d\x0b\x59\x48\x60\x9e\xef\x23\xc2\x44\ \xe6\x5d\xfb\x81\xfd\x80\xe3\xee\xf7\xed\x87\xfe\x09\x1a\x26\xd4\ \x02\x89\xc6\x52\x0d\x46\x83\x45\x74\x6a\x8f\x89\xbf\x3f\xc7\xdd\ \xcf\xe2\x39\x19\x80\xe9\xf5\x08\xc7\x42\xf4\xe8\xbf\xce\x8b\xf8\ \xb8\x30\xe7\xdd\x08\x36\xe6\x6b\x8b\x02\xcb\x98\x8a\x35\xe7\xc0\ \x24\x08\x41\xea\x30\xaa\xf0\x68\x30\xaf\xe1\x85\x40\x5b\x09\xdd\ \x1d\x1d\x1b\x96\x34\x02\x15\xf1\x3c\xa2\x48\x98\xa2\xba\xeb\x8e\ \xa1\xc1\x7e\xd8\x4a\xd9\x1d\x33\xa3\x94\x9e\xe7\x88\x4c\x78\xb2\ \x6e\xf0\x66\x87\x03\x6b\x3a\x70\xe2\x94\x98\xa1\x92\xc3\x6e\xe5\ \xd8\x26\xc4\x92\x6e\xa9\x10\x33\x96\x40\x22\xac\x59\x1b\xe4\xc8\ \x5b\x2a\xb6\x2c\xb8\x92\x55\x34\x4b\xb6\xa4\x34\x83\x8c\xd4\x8a\ \xf6\xd8\x46\x7c\x91\xbf\x46\x48\x03\x49\x89\x8c\x9f\x37\x65\x1c\ \x14\xd5\x9f\x43\x14\x11\x48\xff\x57\xcd\x3f\xd8\x5f\xee\x18\xab\ \x1d\x39\x6f\x50\x49\xc9\xac\x68\x45\x7a\x47\x0d\x38\xfc\x4a\x6e\ \xb3\x15\x38\xc4\x4a\x6b\xad\x13\x55\xca\xde\x39\xf6\xfa\x75\x11\ \x0d\x95\xe8\x9e\xf6\x18\x44\x43\x21\xaa\xd9\x7e\xed\x80\x1f\x48\ \x58\xf2\x0d\xf7\x39\xa7\x25\x13\x7e\xe6\x8a\x33\x26\x28\x34\xb9\ \xcc\xff\xa8\x30\xc6\xe0\x49\xa8\xad\x40\x3c\x15\x19\x19\x23\x60\ \x43\x8d\xe5\x16\xf3\x30\xde\xaf\xbe\xdb\x47\xf8\xab\xe1\x7e\xd9\ \x4a\x3e\x80\x48\x78\xb6\x6c\x64\x6c\xc5\x1d\x0c\xb2\x33\x18\x79\ \xb4\x61\xc8\x44\x85\x3c\xd4\x49\xba\xdc\x05\xef\x1f\xe1\x68\x18\ \x03\x9a\x8a\x0d\x57\x94\x28\x51\xaf\x8d\x84\x9e\xa6\x65\x98\xf1\ \x09\xdf\xf2\x80\x2b\x11\x1a\xf6\xb3\xc8\x25\x0b\x9e\x30\x96\x82\ \xae\x7f\x43\x47\x41\xa7\xdb\x0a\xa3\xc7\xbb\xe5\x94\x18\x47\x41\ \x47\x16\x3c\xc4\x73\xc2\xe7\x21\xf3\xb6\xa7\x9c\x1b\x52\x26\x81\ \xff\x78\x38\xdb\x4d\x50\x88\xda\x5d\x2f\x7f\x5b\x1b\xc1\xb1\x7b\ \xce\xb4\xe7\x44\xe6\x44\xa2\xa1\xde\x51\x70\xc6\x9f\xf8\x8a\x2b\ \x3a\xc6\xdc\xe1\xe7\xbc\xcb\x11\x48\x73\xb9\xe6\x82\xfb\x7c\xcd\ \x19\x05\x8e\x5a\xd6\x0b\x40\xcd\x8a\x0b\x4e\xc9\x28\x84\x18\x6b\ \x80\x29\x95\x44\x8d\x5a\x94\x66\x3c\xf9\xcd\xf7\xef\x37\x28\x8e\ \x39\x21\xf9\xb5\xbe\x76\x68\x37\xba\x4e\x65\xc8\xdc\x33\xbf\x77\ \x1f\x76\x61\x8e\xd6\xff\x6d\xb2\x47\xf8\xe6\xa9\x89\xbd\xc3\xa1\ \xd5\xdd\x3c\xa7\x0f\x7a\x06\x4d\x2a\x50\xae\xc6\x70\xc1\x86\x47\ \x7c\xc9\x7f\xe5\x3e\x25\x86\x9c\x85\x3c\xf3\x84\x42\xf4\xf0\xae\ \x38\xe3\x9c\xc7\x54\x68\x0c\x95\x68\xe9\xf7\x8b\xaa\x52\x72\xf9\ \x0a\x17\x76\x7a\xb5\xb2\x58\x62\x37\xa5\x9e\xc8\xfe\xd0\x13\xee\ \x70\x93\xe4\x73\xf5\x22\x3e\xa2\x97\xe0\x52\x1f\x45\x94\xce\x4f\ \xe0\xd9\xa0\xda\xb1\x1b\x23\xd8\x65\x96\xfd\x84\x94\x1a\x4c\xe6\ \xb8\x60\x2c\x4d\xcd\x56\x18\x2b\x7e\xcf\x8a\xef\x9f\x26\xb2\x27\ \xa3\x64\x03\xdc\x60\xce\x29\xb7\x69\x50\x9c\xd1\x92\x63\xa9\x78\ \xc2\x9a\x0b\x1e\xf1\x0d\xe7\x34\x02\xbc\x19\xaa\x90\x94\x17\x94\ \xb2\xf7\xb1\xd7\x0f\x68\x04\xd9\xf4\xf9\x45\x25\x72\x1a\x19\x0d\ \x6b\x11\x17\x9c\xff\x63\x34\x08\xf5\xcf\x21\x9c\x2a\xf1\xbc\xf5\ \x9e\x3e\x90\x12\x4e\x15\x07\x33\xbf\x3b\x51\x83\xee\x80\xd3\xdf\ \x0a\x93\xa1\xa0\x09\x7a\x03\x59\x88\x12\x31\xc7\x54\xe4\x8c\xb8\ \xc9\x88\x9f\xf0\x1e\x37\x59\x73\xc5\x96\x8a\x73\x2e\x58\x52\x72\ \xc1\x19\xe7\x5c\xb0\xc5\x49\x85\x63\xa5\x83\xb5\x2b\xed\x3b\xc9\ \x44\x7d\x70\xee\x42\xb2\x6f\x28\x04\xe3\x8c\x58\x71\x85\xc2\x30\ \x25\xff\x95\x7a\xbe\x8f\x18\x1e\x19\x8d\x23\x7e\x1f\xcc\xa7\xd1\ \x87\x4e\x9e\x66\x21\x23\xe6\xfb\xcf\x7d\x98\x57\xee\x8f\x44\xd7\ \xa2\xad\xee\x88\x85\x61\xbb\x43\xaa\x3b\x51\x9a\xbc\xc1\x5d\x6e\ \x91\x70\x9b\x29\x1d\x63\x46\x94\x3c\xe6\x09\xf7\x39\xa3\x63\x21\ \x53\x19\xfd\xd5\xf3\x1d\x38\x15\x0a\xbf\x48\xc2\x25\xe2\x8e\xdb\ \xb0\xd9\xa1\x6f\xe1\x68\x32\x0c\xe7\x2c\xb8\x49\x17\x84\xdb\x5e\ \x68\x12\x78\x07\xc6\x8d\xee\x81\xfb\x68\x37\x4f\x7b\xee\xf4\xc0\ \x63\xa8\xa7\x74\x40\xf4\x40\x92\x51\x05\xde\x84\x57\x17\xed\x71\ \xea\x5e\xbb\xba\x11\xec\xeb\x16\xa7\x82\x55\xc4\x94\x02\xd3\x97\ \x2c\xd9\x50\x73\x45\x41\x4b\x02\x68\x09\xd8\x3d\xb5\xd9\x08\xd6\ \x19\x49\xab\xc6\x84\xb8\xe4\x27\xc5\x6b\x01\xf0\x7a\x95\xcb\x2d\ \x85\xcc\x31\xf7\xa3\x57\x2f\x30\xe5\x77\xa8\x24\x67\x42\x9d\x91\ \x0d\x86\x81\x5c\xc0\x13\x76\x9a\x0e\x76\x4f\xa8\xc0\xdf\x61\x4f\ \x46\xcd\x48\xc3\xbc\x56\x9f\x6f\x78\x86\x85\x4f\x81\x0d\x95\x28\ \xa6\x3a\x14\x37\x78\x0f\xc3\x05\x67\x5c\xb1\x09\x13\x7a\xa9\x4c\ \x89\xf8\x81\x83\x29\x73\x4e\xc9\x85\x9a\xd6\x05\xf9\xd7\xbe\xd2\ \xb0\xe2\x33\xee\x70\x0b\x47\xc2\x31\x11\xb1\x68\xa9\xbf\xf4\xb8\ \xe3\xd3\x9f\xda\xf7\xbe\xdc\x30\x0b\x3d\xc8\x2c\xfb\xa3\xd9\x0a\ \x8c\x13\x49\xd3\x68\x28\xed\xe8\x02\x03\xa6\xc7\x3d\xbd\xea\x99\ \x0f\xb3\x8e\x19\x77\x79\x9d\x87\x3c\xe1\x4c\x96\x18\x5a\x52\x69\ \xf8\x65\x18\x8c\x48\x8f\x0f\x05\x7f\x7a\xd1\xdf\xdd\x03\xf1\xe0\ \xaf\x91\x4e\x6c\x7c\xc0\x27\xfd\x1e\xdb\x1d\xa3\xcf\xcc\x27\x26\ \x4c\x59\xed\x9c\xe5\xae\x05\xd8\x0a\x94\xda\x4a\x17\x3d\x91\x9e\ \x05\xb2\x10\x44\x0d\xc6\x67\x9d\xb8\xbe\x4e\x68\x00\x5a\x06\x9d\ \x2a\x3a\x09\x8b\x63\x72\x0c\x57\x42\x15\xf5\x13\x40\x91\x78\x9b\ \x89\x70\x67\xfa\xae\x6c\x27\x86\x70\x83\xa1\xe7\x52\xe4\x60\xda\ \xd0\xb1\xbf\x5e\xef\xe8\x85\x35\x66\x82\x21\x7e\x13\x07\x85\x80\ \xa1\xf4\x81\x3b\x80\xd8\x90\x26\x8c\xa7\x96\x8c\x06\x94\x3e\xf5\ \x94\x3c\x06\x82\x45\x44\xa2\x67\xd4\xc8\x35\xd4\x22\x38\x3e\x63\ \xce\x09\x37\x39\xe5\x26\x13\xc6\xe4\x64\x4c\x98\x33\x11\x9a\x92\ \x09\xc5\x5d\x27\x8f\xa0\x96\x1e\x8c\x15\x10\x27\x91\x93\x68\x18\ \x87\xa7\xee\x5e\x55\x36\xa1\xff\x54\x3d\x50\x12\x1a\x6e\x72\x77\ \xe1\x87\xb9\x90\xdc\x18\x59\x33\xa6\x02\x53\x21\x0a\x43\xd4\xfb\ \x4a\x97\x66\x2f\x18\x6b\xa9\x63\xc0\x31\xe6\x88\x48\x5a\x8e\xc8\ \x38\x63\x24\x30\xbe\xde\xd3\xa2\xe8\xa4\xf4\xaa\x43\x64\xd3\xe4\ \x42\x3c\xdc\xd0\x30\x62\xc4\x0d\xd2\x57\x5b\x2b\x71\xdd\x20\xcb\ \x7e\xa6\xd0\x5f\x92\x9d\xca\x6d\x24\x82\x15\xb1\xec\xe4\x24\xcc\ \x77\x47\x03\x21\x60\xbb\xa7\xfd\xd1\xbf\x0d\x23\xfa\x40\x7e\x39\ \x88\xa6\x63\xc4\x14\x45\x46\x4d\x4d\x23\xac\x59\x27\x88\x85\x6f\ \x08\x74\x81\x9a\xe0\x44\x14\xb8\x0d\x4d\x81\x29\xb9\xa0\x99\x30\ \x61\xce\x4d\x72\xf5\xb4\xb0\xe8\x2b\x18\x62\xe7\x20\xf7\xc7\xdd\ \xbb\x10\x3c\x75\x18\x77\x4b\x24\xde\x74\x03\x01\xb7\x7d\xf5\x11\ \x17\xe6\xc2\x6d\x48\xc8\x9c\x80\x80\x1e\x5f\xc8\x84\x3c\xaa\x44\ \x2f\x24\x16\x77\xba\xbb\x7e\x86\x58\xa2\x9a\x6f\x42\xd7\x41\xea\ \xd3\x60\x18\x73\xc4\x4d\xa6\x1c\x51\x72\xca\x5b\x1c\x7d\x96\x0e\ \x84\x04\xbf\x87\x21\x86\xa5\xba\xda\x83\x60\x5c\x58\xf4\xd1\x1f\ \xd8\x48\xc6\x94\x7b\xc1\x0b\x1f\x24\xd5\x40\x37\x1b\xf9\x8c\x6e\ \x87\xa0\x13\x89\xb4\x93\x47\x13\x46\x74\x6c\x05\x65\xaa\xd1\xb4\ \xc4\x32\x4a\xd5\x85\xc4\xdf\x8a\x80\x4a\x3f\xa2\xdf\xef\x84\xf3\ \x25\xfa\x4d\xde\xe1\x16\x96\x8a\x31\xc7\x2a\x0e\xe9\xf8\x0b\x64\ \x96\xcf\x1a\x6a\xf2\x07\x3a\xfe\x75\xfe\xdb\x22\x80\x74\x51\x20\ \xa8\xea\xb0\x2f\xdc\x05\x1d\x01\x27\x00\xbe\x97\x5f\xcd\x98\x0a\ \x27\xcb\xfb\xfd\x5e\xc3\xde\x85\x69\xf0\xfe\x6a\x39\x99\x1b\x76\ \xa4\x68\xc6\x20\x33\x21\x91\xf0\x40\x7d\xd3\xbf\xa2\x91\x45\xb9\ \x09\x39\x09\x1d\x6b\x5a\xc0\xb2\xc5\x12\x93\x11\x91\xf0\x06\x6f\ \x70\xac\xfc\xf6\x8e\x68\x00\x24\x7e\xcf\x3c\x42\x0d\x26\xb5\xaf\ \xb3\x6c\xbf\x35\xc1\xc8\x3d\x2d\x04\x58\x3b\xa7\xe5\x98\x5b\xbc\ \x87\x96\xbb\xbf\x11\x02\x61\xaf\x5c\xdb\x8a\x30\x67\x22\xfb\xfe\ \x90\x49\x11\x4b\x1e\x26\xcf\x7b\x95\x90\x48\x7e\x8a\xa3\x0e\x72\ \xaf\x7d\x5b\xa0\x0d\x2c\x5d\xdf\x02\x98\x91\xff\x5e\xef\xa9\x52\ \xf1\x43\x38\x4b\x50\x5f\xec\xeb\x56\x5e\x6f\x88\x48\x3a\x57\x5a\ \x66\x6f\x1e\xb2\xe6\x8c\x2b\xf1\xf7\x4a\xf6\x7b\x59\x69\xe4\x1a\ \xe9\x74\xed\x94\xd5\x77\x5d\x57\x2b\x10\x4f\x8a\x93\x8d\x5e\x26\ \x5c\x37\x4b\x5f\x1b\xb7\x52\x67\xb4\x61\xa7\x93\x43\x93\x71\xc4\ \x31\xe3\x8f\x7e\x04\x43\x28\xf4\x3d\xf3\x9c\x45\xa2\x4a\xb8\x2a\ \x48\xdf\x7b\xc6\x5b\xa4\x5c\x61\x18\xf1\x40\x38\x39\x8d\xec\xca\ \xc8\x85\xc1\xd0\xff\xf3\x48\x3c\x8b\x97\x43\xd1\x83\x0e\x18\xd2\ \x18\xb4\x01\x6f\x70\xd2\xf2\x27\xcc\xfb\x76\x01\x97\xea\xe1\xdf\ \x09\x23\xcc\xde\x58\xf4\x0f\x77\x22\x06\x82\xac\xd7\x69\xd2\x0c\ \x83\xa8\x87\xcc\x22\x4e\xb9\x29\x0c\x89\x73\x96\x5c\xb0\xa0\x94\ \xe6\xe1\x2a\xe4\x1c\x29\x63\x32\x8e\xe5\xc0\x37\xb2\xea\xd2\x48\ \xb5\xb9\x73\xc0\xbe\x15\xe0\x67\xfd\x52\xe9\x5e\x79\x3d\x19\x8f\ \x52\x38\xd1\x92\xf0\xad\xc2\x11\xd1\x3f\xb2\xb7\xe7\xe5\x87\x3b\ \x11\x7b\x55\xe7\x75\x31\xa5\x1b\x70\x1e\x32\x01\xe8\x73\xc9\x1e\ \xe7\x2c\x98\xb0\xa4\x11\xcd\x38\x4d\x4b\x21\xa0\xaa\x41\xf1\x84\ \x86\x2d\x05\x55\x90\xd9\xeb\x35\x65\xfc\x36\xcf\x58\x82\x63\xc9\ \x56\x10\x87\x3e\x29\x8b\x06\x5d\x15\x2d\xc5\xf7\x84\x09\xe6\xf3\ \x97\x49\x17\x5f\xea\x97\x1e\x5c\x0d\x77\x4d\xb6\x6e\x07\x93\xa3\ \x51\xd8\xd7\xeb\x4f\x4a\xca\x9c\x98\x93\xa0\x2f\xe8\x04\xaf\x58\ \xb3\xa1\x92\x45\xca\x95\xc0\x70\xbd\x3e\x6d\x8f\x3e\x18\xf9\x0a\ \x23\x73\xe0\x89\xb4\xf4\xac\xd4\x2f\x91\x34\x95\x7b\xc3\x4c\x38\ \x61\x8e\xf9\x7c\xa8\xb8\xfc\x03\x5f\x8d\x67\x7f\x43\x13\x42\xa1\ \x8f\xf3\x3e\x90\x25\x12\x49\x12\x19\x5f\x50\xb2\x6f\xcf\x6b\x90\ \xcc\x89\xb1\x94\xb2\x35\x67\xc5\x13\xce\x59\x4a\x53\xf7\xb1\x30\ \x61\x2a\x69\x0c\xf7\xd4\xa3\x96\x9a\x0c\xcb\x8d\x80\x4f\xf8\x39\ \xaf\x42\xb2\x4d\x88\xc8\x85\x4a\x76\x9d\x3e\xd6\x2b\x19\x62\x5f\ \x6f\x50\x13\xbf\xaf\xbf\x52\xe1\x12\xa8\x00\xc6\xd8\x20\x7c\xb1\ \x13\x66\xb2\x82\x2a\xf5\xbb\x9d\x3a\xd9\x84\xd0\x85\x5c\xb4\xa2\ \x22\x65\xcc\x94\x11\x35\x5b\x40\x73\x2a\xcb\x2f\x4b\x16\x58\x96\ \x9c\xb3\x92\x45\xec\x17\x54\x92\x2b\x28\x26\x68\x96\x1c\x91\xcb\ \x38\x53\xc7\x5a\xf2\x0c\xef\x80\x73\x8e\x38\x51\x6a\xa0\xa5\xf5\ \x3c\x53\xbc\xec\x89\xb8\xa7\x0e\x74\x08\x19\xd0\x8b\x86\x32\xf3\ \xee\x29\x2d\xec\x9e\xd2\x97\x88\xa7\x6f\x43\xc9\xec\xe9\x87\x69\ \xd0\x27\xf2\xe8\x56\x2e\xa3\xd2\x39\x6b\x19\x6c\xac\x64\x80\x1e\ \xe6\xdc\xe4\x26\x73\x26\x41\xb0\xa7\xa3\xc0\x11\x93\x10\x93\x89\ \x84\xcb\xcb\xfc\x7a\xe9\x84\x4a\xb1\x2f\xc1\xb9\x23\x79\x74\x1c\ \x4a\xb9\xee\x84\xbb\x86\x22\x7e\x7d\x6f\xc4\x48\xe4\x6f\x02\xb1\ \x70\x47\x34\xd5\x24\xcc\x85\x99\x63\x85\xc1\x35\x92\xe9\x6e\xdf\ \x80\xbc\xc9\x09\x53\xb2\xf0\xf1\x46\xae\x62\x4c\xc2\x84\x23\x66\ \x5c\xaf\x9b\xf8\x03\x3b\xcb\x43\x45\x73\xb5\x57\x14\xbb\x3d\x49\ \xd7\xfe\x65\x74\x01\xc8\xeb\xcd\xe7\xa4\x17\x6a\x24\x39\x66\x6f\ \xd1\x80\xa5\xa1\xa0\x94\x6d\xf4\x8d\x94\x52\x7e\xbb\x68\x3f\x36\ \x19\x63\x45\xde\xad\x91\xcf\xf0\xdb\x7a\xe6\x4c\x7e\x7f\xbd\xb8\ \xe4\x0f\x74\x35\x74\x20\xef\xf1\x14\xc8\x62\x0f\x8c\x74\x08\xe1\ \xd8\xd0\x1b\x47\x66\x00\xca\x20\x9f\xa4\x82\x08\xdf\x4e\x61\x7d\ \x4d\xcd\x9a\x2b\x2e\xb9\x92\x1d\x7f\x8e\x88\x94\x9c\x99\x9c\x85\ \x2e\x68\x14\xee\x24\x1c\xfd\x10\xf7\x84\xe4\x23\xf5\x52\x97\xe3\ \x25\x37\xc9\xeb\xb0\x16\xd9\xee\xe9\x58\x76\x07\x9b\xb9\xd5\x1e\ \x1f\x13\xc9\x2f\x08\xe2\xbe\x16\x4d\x49\x4d\x23\x0b\x70\x7d\x7f\ \xa2\x15\x2e\x8c\x47\xba\xcf\x28\x44\x66\x61\x43\x8b\x0e\x9c\xaa\ \x8c\x09\x39\x26\x6c\x5d\x42\xa4\x15\x94\x50\x47\xe6\x9c\x32\xdd\ \x23\x2f\xfe\x28\x86\xd0\xbf\xd7\x1f\x22\x44\x0c\x33\x40\xb0\x15\ \x87\xe2\xe0\xd7\xa9\x99\x76\x03\x85\xbb\x3e\x45\x2e\x64\x02\xdc\ \x6b\x0f\xd8\xb0\xdc\x72\x23\x27\xa6\x14\xbe\x5e\x2a\x53\x66\x5e\ \x0c\xcc\x57\x28\x06\x47\xc5\x96\x2d\x85\xd0\x0a\x27\xdc\xe6\x0e\ \x93\x5f\xeb\x17\x48\xab\x5f\xd9\x10\xa0\xd0\x5f\xe8\x0f\x87\x6d\ \x5f\x06\x70\x8d\x0a\xb3\x3d\x6e\x0f\x28\x75\x83\xc9\x52\x17\xe6\ \x7e\xa6\x34\xa2\x49\x50\xe1\x68\x58\xb1\x62\x49\x2d\x0c\xbc\x5a\ \xd2\x6d\x2b\x4a\x32\x31\x23\x19\x75\x8e\x24\xaa\x20\x1f\xf3\xaa\ \x43\x05\x23\xc0\x30\xe6\x98\x39\xe9\xe7\x6a\x0f\x48\x7c\x81\x6b\ \xbf\x7a\x29\x58\xc6\x52\xb1\x72\x57\x2c\x44\xb9\x23\x0a\x44\x9c\ \x7e\x21\x95\x19\x64\x8d\x2a\x38\x57\x7f\xf8\xfb\x55\xb8\x8d\x6c\ \x7d\xee\x64\xf2\xb7\xa4\xa4\x65\xcd\x8a\x73\x16\xa2\x5a\xec\x44\ \xe6\xb9\xef\xc7\xfb\xb9\xb1\xa9\xc8\x05\x26\x61\xbd\x89\x1f\x72\ \x29\x69\x48\x89\x38\xe2\x5f\xf1\x0b\xde\x7d\x7f\x74\xef\x45\xa3\ \xc5\x2b\x46\x0d\x70\x77\x7b\xe7\xd8\x4a\x71\xa5\x06\xad\x20\x78\ \x7a\x99\x04\xa1\x26\x1c\xee\x4f\x71\x54\x72\xae\x22\x69\xff\xb4\ \x34\x8c\xa4\x87\xea\xcb\x29\x42\x87\xd3\xc9\x28\xa6\x9f\x32\xac\ \xe9\x68\xc8\x24\x1d\x2f\x45\xba\x2f\x41\x91\x73\xcc\x8c\xe4\xde\ \xcb\x5d\x8b\x57\x32\xc4\xae\xd6\xac\x65\x3d\x91\x1e\x90\xc9\x7a\ \xfd\x07\x0d\x07\x7b\xba\x86\x86\xf0\x90\x59\x23\xe6\x74\x03\xfc\ \x33\x91\x53\xd6\x0d\xb8\x15\x9d\x2c\x2e\x48\x05\xa1\xb4\xd2\x0f\ \x89\x84\x13\xb3\x11\x36\x44\x42\xe4\x37\x94\xff\x3a\x7e\x85\xf7\ \xf3\xca\x86\x20\x4c\xd8\xc5\xc2\xab\x69\x05\x4c\xd1\xb2\x1f\x67\ \xa8\x83\xbc\xaf\xda\xe0\xeb\xc5\x7e\x59\x54\x2b\x79\x45\x24\x9a\ \xc6\x99\xd0\x8a\x7a\x30\xcf\x67\x13\x0d\x0c\xba\xf3\x0a\x84\x5c\ \x5c\xc9\xd0\x82\x01\x26\xbc\xc6\x2d\xf2\xcf\x79\xe6\xce\x84\x1f\ \xd0\x10\xea\x9e\x0a\x63\x91\x76\x80\x51\xf6\xfb\x90\x5c\x80\xd2\ \xf6\x2b\x54\xb5\x57\x07\x6a\x60\x36\x68\xc9\xb4\x74\xc4\x8c\x85\ \xde\x6a\x64\x67\x43\xbf\x97\x2f\x61\x44\x2b\xe3\x6b\x3b\x31\xd8\ \x2a\x84\xc8\x9e\xf1\x7f\x83\x37\x99\x7f\xa6\x9f\x41\x88\xfd\x41\ \xa3\x06\x83\x89\x70\x5f\x21\xf4\xe9\xb2\x47\x9a\xfb\xb3\x61\x07\ \x7b\x9a\x14\xfb\x8b\xca\x5c\x28\xd9\xd5\x8e\xdb\x49\x47\x1a\xea\ \x52\x9f\x38\xf5\xcc\xcb\x3a\x40\x32\x3d\x89\xb8\x27\x26\x39\xd9\ \xe9\xe7\xab\xdb\x9c\x3b\xdc\x22\xfd\x8d\xbb\x46\xda\xf7\x07\x3f\ \x11\x2a\xd8\x3f\x96\xa1\x14\xff\xc4\xa2\x41\xa6\x61\xd9\x57\x42\ \x1c\x6e\xe3\x73\x83\x31\x07\xcb\x50\xf8\x4b\x09\xf3\xba\x11\xfe\ \x6d\x2c\x86\x68\xc2\xf9\x4a\x43\xfb\xc6\x89\x43\xed\x04\xe2\x51\ \x44\x64\x9c\x48\x22\x45\xd8\x32\xfa\xe3\x5e\x8d\xa0\x62\x6c\xc4\ \x59\x35\x32\x5e\x9c\x0d\xea\x8f\xe1\xda\x4a\xbd\xa7\x8d\xbb\xe3\ \xe0\x45\xec\xd6\xa1\x29\x81\xd9\x6c\x60\x60\xf7\x2a\xc9\xdd\x01\ \x19\xd9\xc9\x89\xb2\x62\x8e\x5a\x96\x1a\xa6\xcc\x99\x91\xa8\x97\ \x6c\xe8\xbe\x6a\xad\xb1\x93\xe8\x8f\x49\xc8\x44\x12\x29\x62\x4a\ \x4e\x21\xf9\x5e\x3f\x3c\xdd\x2b\x9f\xfa\x5e\x44\x24\x29\xd8\xae\ \x8b\xd1\x27\x65\x56\xc0\x7c\x27\xe4\x0f\x47\x25\xd8\x63\xaf\x74\ \xec\xf9\xd4\x1b\x09\xd8\x08\xb8\x57\x07\x66\xb7\x23\xe1\x94\x9f\ \xf2\x9a\x0c\x4d\x1f\x2e\xb0\x50\x3f\x5e\xd4\xe8\x67\x32\x62\xd2\ \x40\x2f\xad\x45\x97\xb8\x17\xed\x4b\x84\xd5\xdf\x4b\xf1\x9a\x70\ \x36\x5c\xd0\xad\x66\xb0\x43\x41\x05\xb2\xea\x90\x4c\x62\x65\xdd\ \x4d\x33\x18\x73\x69\x82\x78\x5b\x3f\xf4\x38\x62\xc2\x9c\xec\x33\ \x33\xd8\xdc\xe3\x7e\xec\xf0\xd9\x17\xd8\x31\x31\x19\x99\x34\xde\ \x4a\x2a\x12\x29\x85\xfd\xbf\xb9\x64\x85\x3b\x3e\x6e\xb4\xb7\x9a\ \x46\x0f\x4c\xd1\x5f\xa9\x36\x0c\xad\x74\xe2\x10\x2b\xa9\x37\x1a\ \x69\x05\xb7\xf2\x7f\x23\x54\xf9\x88\x88\x11\x47\x9c\x70\x4c\xfa\ \x9b\x67\x13\x41\x7e\x50\x43\xb8\x3d\xb4\xb8\x4f\x75\x3b\x4a\x79\ \x79\x6d\xd0\xd4\x37\x18\xe9\x3c\x45\xc1\x11\x12\x98\xb8\xec\x65\ \x99\x0c\x16\x5b\xba\x60\xba\x56\xce\x85\x4f\xbf\xbd\x5a\xaa\x5f\ \xde\x5e\x51\x88\x57\xe9\x48\xd0\xa4\x4c\x38\xe6\x58\xe8\xe6\x1d\ \xea\x15\x62\xc6\x2b\x5e\x8d\x7e\x05\xa5\x97\xfd\x6e\x45\x0e\xd6\ \xc9\xf4\xb6\x93\x37\xee\xe9\x22\x91\xb0\x2a\xa3\xbd\x36\xdd\x4e\ \x65\x12\x38\x58\x80\xb8\xbb\x3a\x48\x17\xa3\xa3\xa1\x60\x45\x25\ \x6c\xfd\x62\xb0\x7f\xc9\x2b\x0b\x4d\x99\x92\xfc\x7e\xc7\xa0\x74\ \x2f\x1d\x37\x5e\xbe\xd6\x08\x75\xa6\x91\xdd\xbb\xde\x3f\xf4\xe6\ \xe9\x04\x52\x6f\x05\x27\xf0\x53\xe6\xbe\xa9\xdb\x53\xce\xa2\xd0\ \xb5\xb4\x92\xa1\xee\x66\x7f\x9c\x9c\xae\xdd\x32\xe4\x35\x50\xb1\ \x65\x2d\x27\xa2\x5f\x26\x60\x24\x6c\x66\xa2\x7f\x13\x7f\xa4\x0e\ \x62\xd4\xdf\x20\xc5\xd6\xc1\x59\x76\x32\x4a\xd0\x0a\x66\x69\x25\ \x9d\xd2\xa1\xfe\xf0\x49\x50\x26\xdb\x12\x9c\xb4\x89\x23\x52\xa9\ \x33\x1a\x59\x73\xde\x27\x69\x8d\x24\xd4\x05\xb0\x61\xcd\x1a\x4d\ \xc9\x5a\x88\x20\x3b\x69\x60\x25\x52\xc4\xa9\x68\x6d\x9a\x01\x26\ \x62\xff\x76\x45\x57\xbf\x33\xcd\x88\x92\x59\x1c\x9a\x3b\x9d\xd4\ \x10\x56\x00\xfc\x3e\xf1\x49\x05\xa1\x56\x02\xed\x2b\x61\x34\x34\ \x72\xe3\x9d\x74\x2a\x6b\xd9\x93\x50\x00\xa5\xb0\xf2\x3d\xac\x57\ \x0b\x60\xe7\x45\x47\x8d\xf8\xa2\xa7\x89\xf2\xee\x60\x01\xef\x0f\ \x60\x88\xa1\x7b\xdc\x29\x9b\xfa\x43\x5c\xa2\x65\x69\xba\x95\xb2\ \xa7\xa6\x46\xcb\x0c\x76\x23\x8a\xb7\x1e\x48\xa9\x65\x54\x35\x15\ \x78\x35\x21\x61\x11\xbe\xd6\xca\x89\x68\xd1\x82\x48\x79\xde\xe4\ \x15\x4b\x6a\x99\xfc\xed\xb3\x58\x9f\x95\xf4\xdb\x04\x73\x51\xcc\ \xcd\xb8\x2d\x43\x94\x4a\x68\xa6\xee\x87\x86\xea\x54\xc0\x79\xf4\ \x60\x25\x25\x03\x8e\xad\x21\x16\xf5\x28\x1d\x6a\x91\x2e\x50\x47\ \x54\x98\xea\xf3\x12\x49\x7d\x83\xb6\x1f\x3b\xb0\x92\x84\x69\x59\ \x6b\x6d\x25\x44\x76\xa2\x6b\xeb\x85\x9e\x0b\x3a\xe9\x86\xd9\x30\ \x2e\xe1\x2f\x52\x27\x2e\x3b\xe6\xfb\xfd\x8a\x9e\xe7\x16\x9f\x3e\ \x21\x84\xbd\x6b\x3d\x01\x3c\x95\x26\x8d\x77\x8d\xad\x88\x26\xfa\ \x99\x2c\x8f\x47\x55\x61\x74\xc0\x61\x44\xbf\xce\x0f\x92\x20\x6a\ \x44\x91\x9c\x26\xa4\xcd\xd7\x70\xc9\x8a\x95\xcc\x73\x55\x58\xaa\ \x81\xe9\xbd\x77\xf0\x17\xc9\xf3\x71\xd3\xff\xf0\xa3\x19\xe2\x90\ \x8c\x2c\x9c\xa8\x4f\x7b\x9c\x40\xef\x7d\x9e\x16\xf9\x95\xbe\x2a\ \x30\x52\x23\x74\x41\x72\x7e\x2b\x25\x92\xe7\x4d\x8c\x38\x0a\xfb\ \xc2\xbd\x21\x12\xa0\xa4\x61\xc5\x15\x2b\x6a\x61\xdd\xd6\x92\x52\ \x39\x69\xfb\x1b\x51\x2b\x8d\xa5\x57\x52\x13\x7b\x1d\x8a\x2f\x7e\ \x34\x43\xec\x17\xdf\x04\xd2\x46\xdf\xb9\xe8\x8f\xb5\x92\xcc\x31\ \x91\x50\xd8\x4f\x73\x69\x31\xc2\x8e\x51\xe9\x27\x34\x3a\xb6\x6c\ \x89\x29\x88\x45\x6a\xd3\x57\x25\x33\x5a\xb6\x2c\xb9\x64\xc1\x46\ \xb6\xce\x56\x92\xa5\xd8\xa0\x33\x61\x84\x4b\x67\xa4\x6d\x68\x84\ \x4d\xa1\xf9\x91\x0d\xc1\x60\x8f\x96\x0e\x3d\x8d\xbe\xba\xec\xd9\ \x29\xb1\xf4\x34\xfb\x1b\x6f\x05\x4a\xab\x83\x06\x80\x96\x36\x7e\ \x2b\xca\xd6\x4a\x9a\xbe\xb1\x78\x0e\xc7\x94\x8a\x25\x4b\x56\x6c\ \xc4\x5d\x36\x61\x72\x18\xd1\x3e\xd2\x03\x95\x81\x26\x94\x76\xd9\ \x8f\x6b\x08\xb7\x47\x1e\xb3\xd4\x1f\x64\x5f\x40\xf7\x49\x23\x47\ \xd4\x0d\x1a\x74\x7e\x9b\xa2\x7e\x4a\x70\xa5\x0e\x07\x1a\x61\xcb\ \x1a\x99\xd6\xea\x58\x8b\x98\x78\x22\x18\x65\x2a\x02\x7b\xb5\xb0\ \x5f\x90\x3c\x03\x21\x94\xf5\x1a\xec\x4a\xce\x99\xef\x8d\xf8\x7a\ \x27\x82\x1f\xd3\x10\x7d\x82\xe2\x6b\xbe\xd5\x1f\xdc\x67\xe6\x37\ \x3d\x10\x12\x53\x85\xd0\xba\x5b\x45\xd9\xc9\x74\xae\x3f\x07\xad\ \x9c\x1f\x23\x88\x55\x5f\xbe\x57\x28\xa9\x1a\x2a\x59\x8e\x57\x0d\ \x56\x0f\xda\xbd\x15\x44\xbb\x2c\xf6\xb0\xb3\xe6\x13\xb0\x5e\x6e\ \xf4\x47\x33\x84\x93\x14\xd8\xa0\xa9\xf9\x8b\xfb\x9a\x2d\xff\xee\ \x93\x63\xa9\xf9\x5a\xd9\xba\xaa\x84\x41\xe7\x24\x7a\x6b\x12\x2a\ \xb6\x28\x51\x83\x4b\x24\x1c\x5a\x3a\xe2\xa0\x20\x13\xcb\x46\x56\ \xbf\x18\xc2\xca\x49\xe8\x85\x76\x86\xab\xb6\x75\xc0\xc3\x34\x3d\ \x4f\xbb\x0f\xd2\x9d\x44\x27\xaf\xaa\xa8\x9f\x8a\x6b\xdf\xcd\xf6\ \x78\xce\x98\x82\x7b\x6a\x99\x6d\xcd\xa5\xfb\x33\x7f\xe2\x5b\x7e\ \x4a\x45\xf5\x89\x0d\x9e\x82\x01\x04\xa7\x43\x36\x69\x44\xf0\xa6\ \x8f\x34\xdd\x80\x07\xd9\x4f\x62\x79\x44\x61\x26\xe2\xbd\x9d\x90\ \xc8\x75\x58\x26\xc1\x80\x4e\x60\x0e\x74\xaf\x76\x25\x7b\x26\x84\ \xb3\x5e\xdc\x75\x58\xb6\xbd\xc2\x89\xd8\x0f\x90\x3b\xce\x91\xc3\ \xb2\x70\x0b\x2e\xf8\x67\xfe\x09\xc5\xbb\xfc\x9c\xe3\x01\xbc\x46\ \xc8\xe4\x7a\xb3\xf4\xb1\x21\x11\xd8\x2d\x92\x1a\x40\xc9\x8a\xed\ \xed\x20\xb8\x36\x02\xb3\x19\x72\xb9\x2e\x5d\xd8\xe5\xea\x06\x68\ \xa6\x19\x0c\x1e\xa9\xbd\xde\x3b\x42\x27\x88\x48\x19\xc9\xc6\xa8\ \xe1\x93\xfe\x1e\x99\xe5\x2e\x3f\xef\x28\x3e\xa8\xfe\x70\xc9\x1f\ \xf9\x92\x33\xfe\xcc\x25\xbf\xe0\x7f\xe5\x5d\x52\xb6\x94\x32\x82\ \x14\x0d\x58\x6c\x04\x69\x1c\x5f\x1a\xa7\x02\xca\x27\xc2\xa0\xf4\ \xdc\x88\x9d\x80\x8f\x4f\xd5\x1f\x61\x84\x79\x5d\xcb\xa2\x80\xbe\ \xfe\x70\x62\xd8\xe1\xe2\xc4\x43\x05\x2c\x47\x25\x9a\x65\x89\x08\ \xba\xb8\x01\x14\x7c\x1d\xf3\xef\xa5\xa8\x43\x16\x47\xc5\xa5\x7b\ \xc8\x39\x5f\xf2\x57\xbe\xe6\x9c\x98\x9f\xf3\xbf\xf1\x26\x0d\x2d\ \x0b\x59\xe6\xa0\x83\x7e\x84\x0a\xab\xb2\x75\xc8\x34\x7a\x8a\x7a\ \x22\x99\x42\x44\xc4\x56\x8a\xea\x2a\xc8\xff\xf5\x88\xb4\xa7\x79\ \x58\xe9\x7c\x31\x70\xc1\xc3\x85\x73\x7a\xef\x74\x20\x9a\xa7\x8a\ \x8a\x52\xe8\xa6\xfa\x80\xc0\xf2\xca\x27\x42\x63\xd9\x7e\xb0\xfe\ \xc3\x05\xdf\xf0\x15\x0f\xb8\xa4\xe2\x92\x4b\x7e\xc2\xff\xc9\xbf\ \x25\x66\x03\x32\x97\xa3\x65\x34\x69\x08\xe9\x32\xe8\x7d\xba\xc0\ \x91\x31\x52\x76\xc5\x14\xc2\x89\x69\xc2\x10\x5a\x3c\x10\x57\xf1\ \x9a\xa8\x2a\x4c\x10\xab\xc1\xe2\x6b\xb5\x17\x3a\x77\xff\xa4\xd2\ \xf4\x6b\xf6\xb6\x52\x3f\x8b\x29\xfe\x12\x86\xa8\x59\xb8\x6f\xf8\ \x0b\x8f\x38\xe3\x9c\x0d\x35\x4f\xd8\xf0\x26\xff\x3b\x3f\x93\x8d\ \xcb\x88\xcc\x8a\xf7\xd6\xf1\xc1\x8f\x8c\xf7\xdc\xd9\xee\x29\x6a\ \xf9\x68\x47\x41\x2a\x93\xfa\x8d\x34\xfd\xeb\x80\x5e\xec\xc8\x24\ \xf6\x29\xb2\xda\xee\x3c\x0c\x77\x91\x97\x72\x36\x5b\x16\x3c\xa4\ \x70\x37\xdf\x4f\xee\xc5\x83\xc7\xfa\xca\x08\xd5\x63\xf7\x0d\xff\ \xcc\x1f\x45\x16\x53\x73\xc1\x97\x8c\xf8\x3f\xf8\xbf\x48\xb8\x12\ \x3c\xb0\x92\x2f\x31\xd2\x89\x3a\xfc\x56\x36\x60\x01\x3b\x49\x0c\ \x2b\xd2\x1b\x37\xa9\x99\x30\x66\xcc\x39\x89\x2c\x1c\xd1\xa2\x38\ \xd5\x84\xb0\x69\xaf\xd9\xd8\xd6\xb7\x15\xf7\x4f\xc4\x56\x46\xe7\ \xd6\xdc\xe3\x02\xf8\x8f\x5f\x4d\x98\xaa\x68\xaf\x0e\x7a\x09\x43\ \xf8\x36\x6b\x73\xd7\x7e\xfc\xff\xf0\x47\xfe\x2c\xd4\xe0\x46\xda\ \xef\x6f\xf3\xaf\x70\xac\x83\xb0\xa7\xef\x53\x44\x68\x6a\xb1\xe1\ \x6e\x3f\x67\x3b\x98\xc1\xe8\x84\x89\xb9\x3b\x11\x09\x15\x23\x66\ \x1c\xb3\xe4\x88\x05\x5b\x1e\xb3\x64\x1b\xe4\xc5\xd5\xde\x4e\x7a\ \xb5\xa7\x4d\xa0\x44\x21\x64\x5f\x46\x32\xa6\xa6\x60\x4e\xc6\x82\ \xff\xca\x37\xac\xf9\x37\xfc\x9d\xbb\xa1\x7a\xe5\x55\x2d\x2a\xb9\ \x2a\xd0\xd2\x77\x5b\x67\xaf\xc9\x23\x2a\x56\xce\x6b\xdd\x3f\x66\ \x41\x49\x1b\x10\x24\x98\x73\x2a\xea\x3e\x26\x88\xa3\x20\xd9\xc2\ \x7e\x57\x0b\x49\x88\x6d\x20\x07\x0c\x57\xd2\xfa\x29\x8d\x2c\x34\ \xf0\xfc\xc0\x5a\xce\x82\x95\x88\x67\x94\xc1\x59\xda\xf0\x3d\x76\ \x6d\xc2\x61\x66\xa9\x42\xae\x59\x0b\xeb\xaa\xa5\xe1\x82\xc7\xfc\ \xdf\x9c\x63\x79\xdf\xcd\x19\xa9\xdd\xf0\x33\xd2\x5e\xec\x88\x04\ \x40\xba\xbe\x17\xf6\x3f\x00\xe1\x00\x14\x01\xde\x26\x16\xb2\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x08\ \x0b\x77\x5a\x87\ \x00\x68\ \x00\x65\x00\x61\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/graphicsview/dragdroprobot/dragdroprobot_rc3.py0000644000076500000240000017234412536324427027141 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:39:06 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x3a\x7c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x84\x00\x00\x00\xb1\x08\x04\x00\x00\x00\xaf\xfa\xdd\x32\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ \x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd6\x03\ \x10\x0a\x31\x18\xc7\xac\x62\xef\x00\x00\x00\x1d\x74\x45\x58\x74\ \x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\x64\x20\ \x77\x69\x74\x68\x20\x54\x68\x65\x20\x47\x49\x4d\x50\xef\x64\x25\ \x6e\x00\x00\x00\x02\x62\x4b\x47\x44\x00\xff\x87\x8f\xcc\xbf\x00\ \x00\x39\xe4\x49\x44\x41\x54\x78\xda\xd5\xbd\xd9\xb2\x5d\xc7\xb5\ \x9e\xf9\x65\xe6\x6c\x57\xbb\xf7\x06\x36\x00\xf6\x24\xa8\xc6\x75\ \x8e\x1d\x61\x59\xf2\x45\xd5\x45\x5d\x54\xd1\xe1\x8b\xba\x26\x1f\ \x81\x7a\x04\xea\x11\xc8\x47\x10\x1f\x41\x7a\x04\x31\xea\xae\xae\ \x7c\x8e\xe3\xd4\x29\x47\x58\x16\x4d\x1c\x51\x02\x89\x6e\x77\xab\ \x9d\x7d\xa6\x2f\x72\xcc\x5c\x73\x2d\x6c\x10\x0d\x49\x85\x0b\x0c\ \x92\x00\x76\xb7\xd6\x98\x99\xa3\xf9\xc7\x3f\xfe\xa1\x56\xfc\xb8\ \xbf\xdc\xe0\xf7\x2a\xfc\x9d\x02\x2c\x4a\x7e\x3f\xfc\x53\x4b\x07\ \xc4\x18\x2a\xda\x8f\xdb\xdf\x72\x19\xfd\x26\xfe\x3c\x46\x63\x9f\ \xf1\x13\x2c\xa0\xe4\xbb\x70\xcd\x4f\x7b\xb1\x5f\xea\x6f\x67\x08\ \xb5\xf7\x37\x8a\x0e\x85\x1a\x18\xa2\xa2\xfd\xb4\xf9\xa4\x43\x61\ \x30\xbf\x57\xf7\x16\x9f\x14\x40\x4e\x0c\x8c\x3e\x9b\xfc\xa6\xa1\ \xc3\xde\x8d\xee\xc5\x68\xc0\xe1\x00\x15\xbe\x9b\xda\x33\xf9\xff\ \xd4\x86\xf0\x2f\xdb\xc9\x5b\x77\x68\x1c\x96\x4e\x8c\xd2\x7c\x7a\ \xf1\x49\x41\x4d\xca\x98\x88\x92\x35\x5b\x1c\x09\x19\x0a\x4b\x42\ \x4e\x8d\x05\x52\x26\xe4\x2a\x12\xf3\x29\xf9\x09\xea\xe0\x27\xbd\ \xbc\x21\x22\xfe\x66\xbf\xfa\x0b\x01\x1a\xb0\x68\x3a\xca\x8f\xb7\ \xbf\xad\xb1\x54\x94\x6c\x51\xa4\x28\x1a\x36\x5c\xb2\x24\x26\xa7\ \xe2\x8a\x0a\x03\xb4\x14\x68\x62\x72\xe6\x1c\xbb\x39\xb9\xca\xe4\ \xad\x2a\x39\x1d\xdf\xef\xd7\xdf\xd0\x10\x6a\x70\x84\x2d\x0d\xd5\ \xdd\xf2\xab\x4b\x2e\xa8\xe8\x68\xd8\x72\xcc\x31\x73\x1c\x0b\xce\ \xd8\x62\xd1\x94\x14\x3c\x62\x43\x06\x14\x18\x12\x32\xb6\x6c\x29\ \xe9\x98\x3b\xad\x22\x8c\x7c\xd7\xff\x5f\x19\xa2\x3f\x17\x16\x47\ \xc3\xd6\x2d\x58\x73\xc6\x25\x30\x22\x22\x26\x05\x0a\x0a\x9e\x70\ \x41\x45\xc4\x15\x0d\x25\x05\x1d\x25\x06\x47\x8c\xc2\x51\x51\x51\ \x53\xb1\xe0\xc4\xa5\x8c\x2f\x47\x27\x11\xfa\xda\xab\xc1\xff\xac\ \x3e\xc2\x7b\x85\x9a\x0e\x28\xdd\x8a\xfb\x6c\x38\xa3\x60\xc2\x29\ \x33\x34\x11\x5b\x56\xac\x28\xa9\x29\x69\x38\x63\x83\xe1\x98\x31\ \x2d\x96\x0c\x87\x01\x6a\x1a\x14\x19\x29\x77\x98\x73\xca\x09\xe3\ \xf7\xd3\x7b\xe6\x7b\x3b\xcb\xe8\xd5\xdf\x9c\x7a\xea\x8d\xf6\xb7\ \xbf\x43\xc9\x53\xe2\xc0\x55\xb6\x34\x1f\x17\xbf\xdd\xb2\xa1\xe4\ \x3e\x1d\x96\x11\x63\x12\x34\x86\x2b\x36\x5c\xb1\x66\xcb\x96\x25\ \x25\x57\x4c\x99\xd3\xf0\x98\x16\x4d\x4c\xd3\xc7\x16\x22\x66\x4c\ \x80\x05\x6b\xd6\xcc\xbf\x9a\x31\x57\x99\x44\x21\xff\x1a\xa0\xc5\ \x1c\x38\xd3\x1f\xe1\x44\xb8\x67\x58\xdc\x49\x36\xe0\x7f\xf5\x41\ \x4e\x0d\x4e\x44\xcd\x85\x5b\x52\x72\xce\x43\x2e\xb0\x8c\xb8\xc1\ \x18\x47\x83\x43\xb3\xe1\x82\x15\x1b\x4a\xb6\x54\x28\x12\x62\x34\ \x1d\x2d\x00\xe7\x00\xc4\xa4\xa4\xc4\x18\x6e\x62\xd1\x44\x64\x9c\ \xf0\x26\xb7\x78\x53\xc5\x98\xf0\xca\xdc\xde\xef\x86\xa1\x5b\xfd\ \x18\x3e\x62\xdf\x24\x3e\x18\x6a\x1c\x0d\xb5\xb3\xe8\xcb\xf4\xa4\ \xf7\xed\x0d\x06\x47\xf5\xe9\x39\xe7\x94\x3c\xe0\x4b\x22\x72\xc6\ \x28\xd6\x2c\x68\x48\x49\xb9\xe2\x21\x17\x94\x34\x58\x2c\x73\x3a\ \x3a\xac\x18\xb8\xa3\xa6\x45\xa1\x18\x13\x63\xd9\xb2\x92\x8f\x6b\ \xe6\x9c\xf1\x0e\xb8\x19\xe3\x5f\xeb\xcf\x15\x86\x18\xb5\xf7\x50\ \x86\x67\xf7\x7a\x63\x7c\xcf\x13\x31\xbc\x97\xed\x20\x2e\x94\x77\ \xb7\x5f\xad\x51\xc4\x8c\x2f\x27\x27\x11\x8e\x0e\x43\xc9\x63\xf7\ \x35\x8f\xd9\xf0\x98\x87\x24\xdc\xe6\x84\x96\x4b\x1a\x26\xcc\xf8\ \x86\x25\x17\xac\xb0\x44\x24\xc4\xa4\x28\x8c\x98\x01\xa0\xa2\xa2\ \x21\x66\x4c\x4c\x4b\xcd\x82\x88\x84\x08\x48\xb9\xcd\x1d\xde\xe1\ \x84\x13\x72\x12\x72\x95\x60\xb0\x72\x55\x86\x79\x86\x1b\xc4\xaf\ \x1f\x25\x6a\xa8\x70\x19\x2c\x0e\x4d\x7a\x4f\xab\x09\x6b\x77\xc1\ \xf9\xf1\xc8\x1d\x33\x55\x31\x9b\x0f\x1e\xfd\xe1\x6b\xce\xb9\xe2\ \x9c\x0d\x13\x40\xb1\xe0\x31\x35\xc7\x38\x9e\xf0\xdf\x68\xb1\x40\ \x42\x8c\x4f\xa9\x33\x72\xa0\xa2\x41\x11\x61\x69\xa9\xd9\xb0\xc1\ \x88\x07\xf2\x97\xa7\xa5\xe6\x9c\x86\x29\x2d\x1d\xc7\x1c\x01\x8e\ \x6e\xcf\x87\xb9\xe7\x86\xd8\xe8\x87\x88\x07\x4a\x6e\xaf\xa5\xb8\ \xbb\xf8\xaa\xc6\xa0\x68\xb9\xf1\x59\xc5\x9a\x05\x09\x25\x85\xcb\ \x78\xcc\x3d\xee\xd3\xb2\xe1\x09\x96\x39\x8e\x2b\xb6\x6c\x99\x10\ \x71\xce\x5f\x29\x31\x24\x68\x1c\x25\x0b\x5a\x26\x8c\xa8\xb1\x6c\ \x28\x81\x08\x47\x4d\x45\x41\x87\x26\x23\x46\xd1\xe1\x48\x71\x40\ \x89\xe1\x4b\x26\x9c\xf2\x3a\x11\x63\x0c\x4a\x2e\xd5\xbe\xb3\xfe\ \x51\x9c\xa5\x93\x3c\xb1\x2f\x86\x62\x2a\xce\xdd\x37\xac\x70\x54\ \x2c\xb9\x43\xc1\x8a\x12\x48\x48\x31\xac\x79\xc2\x0a\x45\xc1\x05\ \x35\x39\x19\x1d\x90\x12\x51\x70\xc9\x92\x11\x96\x96\x8a\x92\x9a\ \x0e\xcb\x1c\x83\xa6\xa5\xa4\x06\x14\x29\x96\x8e\x0e\x87\x26\xc2\ \xe0\x80\x84\x8c\x94\x88\x8c\x9c\x2d\x19\x47\xbc\xc5\xff\xc2\x4f\ \x39\x51\xd1\xc0\x47\xb8\xa7\x6a\x11\xf5\x43\x9e\x08\x9f\xda\xb6\ \x74\x1f\xb7\x9f\xda\x63\xc7\x44\x55\xff\xe0\x1d\x5d\xc7\x15\xdf\ \x72\xc1\x96\x05\x2b\x6a\x14\x31\x31\x13\x1c\xd0\x51\x61\xa9\xd8\ \x70\x8c\xe2\x84\x23\x9e\xf0\x67\x6a\x8e\x68\xd8\xb2\x64\x43\x43\ \x4c\xce\x88\x86\x8a\x8e\x16\x8b\x95\x24\xcc\x07\x68\x03\x34\x54\ \xf2\xd2\x63\x3a\x1c\x2d\x25\x13\xa0\xe4\x9c\xc7\xdc\x20\xfd\x87\ \xd1\xaf\x8c\x44\x2c\xf7\x7d\xf3\x88\xa7\x13\x94\x0e\x27\x5f\xe0\ \xd0\x40\x4d\x71\xd1\x1c\xb7\x94\x94\x74\x94\x6e\xc9\x23\x1e\x71\ \xc6\x86\x0a\xcb\x29\x96\x92\x92\x05\x1b\x6a\x1c\x37\x98\x32\xa1\ \x65\xc9\x96\x88\x11\x0d\xff\x9a\x9c\xff\x8f\x7f\x21\x62\x42\xc9\ \x5f\x68\xa8\x51\x64\x8c\xa4\xe6\xac\x68\x68\x48\xc8\xb0\x54\x74\ \xe4\x44\x38\x22\x32\xa0\x64\x89\xc2\xe2\xe8\x98\x30\x22\x61\x4c\ \x44\x46\xc4\x92\xc7\x8c\x7e\x19\xdd\xcd\xef\xa9\x67\x84\x4a\xf5\ \xaa\x3e\x42\x85\xcc\xc0\xed\xfd\x4d\x7b\x77\x73\x5c\x52\xb3\x61\ \x41\xc1\x92\x4b\x1e\xb3\xa2\x15\xff\xfc\x98\x96\x82\x35\x05\x9a\ \x31\x63\x46\x68\x36\xac\x59\xd1\x31\x22\xe5\x94\x6f\x59\x72\x81\ \xa6\x66\x49\x41\x81\xc3\x61\x29\xe9\xa8\x49\xd8\x62\xe9\xd0\x18\ \x71\x93\x71\x40\x2c\x2a\x14\x8e\x1b\xf2\xd1\x0c\x43\x4b\x87\x22\ \x27\x27\x21\xf1\xce\xf4\x9e\x1b\xbc\x61\xf5\x7d\x4e\x84\xba\xa6\ \x7a\x54\xc1\x03\xb7\x54\x77\x2f\xbf\x7a\xcc\x9a\x8a\x2b\xce\x58\ \xe0\xb8\x62\x41\x4b\x8c\xa2\xa4\xa0\xc0\xd2\xd0\x00\x29\x33\x66\ \x2c\xe9\xc4\x03\x24\xa4\xe4\x38\xfe\xca\x63\x14\x8a\x15\x6b\xc9\ \x0b\x15\x96\x9a\x96\x96\x94\x0c\x7c\x00\x26\xa1\x40\x01\x11\x29\ \xd0\x62\xe9\xb0\x92\xbe\xa5\x80\xc6\xd2\xb1\x65\x2a\xaf\x3b\x25\ \xa5\x71\x77\x54\x44\xf4\xc2\xb9\x65\xf4\x32\x2e\x52\x85\xff\xd6\ \xac\xdd\x43\x2e\x39\x67\x4b\xc1\x25\x67\x6c\x18\x51\xca\x5d\xae\ \x59\xb1\x21\x45\x33\x22\x21\x26\x42\xb1\x61\x25\x3f\xd0\x47\xff\ \x8e\x6f\x59\xd2\xe1\x28\x59\xe2\xc8\x05\xab\xf0\x7e\x40\x03\x39\ \xa0\x88\xc8\x18\x91\x92\xb0\xc0\x90\x12\x53\xb1\xa1\xc5\x52\xd3\ \xa1\x70\x24\xc4\x40\x4b\xcd\x16\x45\xc1\x15\x57\x5c\x72\x83\xad\ \x9b\x32\x23\x57\x26\xa4\xdd\xdf\xdb\x10\xee\xe0\x4f\x1d\x4b\xf7\ \x90\xaf\xd8\x52\x52\xb3\xe6\x92\x15\x0d\x1b\x6a\x1a\x1a\xc9\x03\ \x0d\xa7\x28\x62\x46\xc4\x94\x5c\xb0\x22\xc6\x04\xef\x5d\xd3\xb0\ \x25\x66\xcc\x86\x46\x70\x06\x45\x43\x85\x21\x26\xc6\xa0\x59\x89\ \xd9\xb7\x8c\x88\xe9\xe8\xd8\xd2\x90\xd1\x52\xe1\xe4\xcd\xbb\x41\ \x4d\x33\x25\x92\xef\xdc\xd0\x70\xc9\x82\x37\x78\x8f\xd3\xdf\xe5\ \x1f\x99\x6b\x11\xac\x97\x34\x84\x1b\xfc\xd7\x07\xca\x8e\xb5\x7b\ \xc8\x7d\x2e\xe4\x47\xae\x59\x51\x60\xb9\xa0\x91\x80\x38\x62\x44\ \xca\x2d\x2a\x1a\xf1\xf0\x15\x25\x11\x84\x97\xad\x31\x01\x6c\xcb\ \xc8\x50\x38\x52\xa0\xc3\x11\xcb\x19\x8a\x50\x72\x99\x5a\xc9\x1a\ \x7c\x44\x89\x80\x8c\x29\x5b\x79\x28\x2d\x56\xaa\x92\xfe\x12\x58\ \x36\xb4\x8c\x69\x31\xc4\x1f\x45\xa8\x83\x2a\xe8\x15\x0c\xe1\x06\ \xa6\xd0\x92\x39\x6c\x2e\x1e\xf1\x0d\x17\x74\x14\x6c\x28\xd9\xb0\ \xa1\xa0\xa5\xc4\x61\x18\x71\xcc\x9c\x1c\x43\x22\x61\xb2\xa4\xa6\ \x25\xa1\x23\x26\x23\x0e\x60\x9d\xa6\xc0\x91\x60\x80\x8e\x4e\xae\ \x81\xcf\x12\x22\x34\xb7\x48\x81\x15\x2b\x5a\x34\x8a\x86\x9a\x82\ \x98\x04\x85\xa6\xa6\xa1\x93\xbc\xc2\x31\x26\x61\x2b\x3e\x25\xc3\ \x51\xb2\xe5\x26\xed\xc0\xaf\x7d\xef\xf0\xe9\xc2\xbf\x4a\xfe\x5f\ \x1c\x9f\x71\x41\x85\xa5\xe0\x52\x60\x12\xff\xec\x0d\x23\x6e\x71\ \x9b\x9c\x92\x15\x1d\x0d\x2d\x25\x6b\x1a\x22\x52\x14\x63\x4e\x48\ \xa8\x59\x53\xd2\x62\x68\x80\x8c\x9a\x12\xc5\x98\x92\x98\x44\x0a\ \x37\x30\x6c\x49\x18\x01\x8e\x06\x85\xa1\xc6\x60\x88\x89\xe8\xa8\ \x58\x33\xa1\xa1\xa2\x65\x43\x47\x4d\x4a\x07\x82\x58\x75\x34\x54\ \x7c\x49\xc4\x29\x53\xa7\xd5\xee\xb4\xbc\x72\xd4\xd8\x41\xe5\xfe\ \xd0\x6d\xef\x5e\x7e\xf5\x84\x82\x48\xea\x8a\x8a\x85\xd4\x80\x2d\ \x0d\xb7\x78\x93\x63\x34\x4b\xce\x58\x70\x8b\x86\x92\x12\xc8\x99\ \x30\x66\xc6\x88\x31\xb0\x41\x13\xd3\xb1\x06\x1a\x1a\x34\x39\xe0\ \x88\x50\x18\x22\xa9\x5e\x5b\x14\x5b\x4a\x5a\x2a\x2a\x09\xdd\xb7\ \xd8\xe0\xc8\x58\xb1\x25\x65\x83\x96\x1c\x53\x71\xc5\x86\x39\x9a\ \x44\xa2\x86\x22\x42\x73\xc1\x3d\x32\x22\x37\x57\xec\x5d\x8d\xeb\ \x60\x84\xe8\xc5\xa2\x85\x37\x48\xc3\xfa\xab\x73\x9e\x70\xc9\x9a\ \x86\x42\x52\xe1\x1a\x87\x21\xe7\x16\xb7\xb8\x85\x62\x2d\x29\x8e\ \xcf\x04\x63\x62\xc6\x9c\x70\xc4\x29\x19\x09\x0d\x4b\xb4\x9c\x06\ \x0d\x54\x38\x49\xd5\x54\x00\x63\x41\xa1\x71\x28\x32\x34\x19\x05\ \x15\x2d\x73\x22\x0c\x15\x11\x31\x31\xd0\x61\xe9\x68\xd1\x82\x50\ \x74\x38\x6a\x89\x38\xb1\xc0\xbd\x4b\x2e\x39\x11\x2c\xfc\x7b\x45\ \x0d\x35\xb8\x1a\x96\xea\xd3\x35\x2b\x96\x5c\xb1\xa6\xa1\xa3\x0e\ \xb9\x7f\x4a\xc2\x0d\xa6\xf2\x2c\xbd\x63\xad\x25\xce\x27\xdc\xe0\ \x35\x8e\x99\x13\x11\x51\x4b\x47\xa3\x22\x95\x3a\xa3\xa3\xa5\x93\ \xd4\xbb\xa3\x13\x5c\xa3\xa3\x20\x65\xca\x98\x94\x44\x12\xa6\x8c\ \x84\x05\x8e\x91\x9c\x4f\x25\x91\x43\x91\x32\x66\x85\xa5\xa5\xc0\ \xd2\x92\x12\x49\x0d\x73\xc6\x9c\xd4\x45\x2a\xf9\xbe\x51\x43\x0d\ \xf0\x06\xdf\x7e\x89\x80\x92\x92\x88\x9a\x1a\x48\xc9\xc8\x89\x49\ \xa9\xa9\xe4\x2b\x36\x5c\x91\x63\x48\x49\x98\x72\x93\x1b\x1c\x61\ \x30\x18\x14\x53\x20\xa3\x61\x43\x4a\x4c\x41\x45\x43\x4d\x87\x91\ \x53\xd6\xd2\x61\xb1\x68\x1a\x5a\xa9\x42\x33\x14\x1b\x34\x19\x15\ \x0d\x19\x8e\x82\x58\xaa\xd5\x92\x4e\xea\x93\x86\x5a\x6a\x9d\x96\ \x18\x83\xe3\x82\x87\x8c\x48\x88\xdc\x4c\x99\x57\x2f\xba\xdc\x41\ \x87\xaa\xa1\xa4\x09\x5d\x84\x86\x82\x0a\x18\x33\x25\xc2\x31\x01\ \x1a\x36\x54\x94\x6c\xa8\xc9\x49\x98\x73\xc4\x11\x27\x1c\x33\xa6\ \x22\x12\x18\x25\xa7\xa6\xe3\x31\x63\x72\xc1\x28\x15\x35\x11\x25\ \x6d\xf8\xfe\x8a\x31\x8a\x08\x47\x85\x0d\x7e\x43\x03\x1d\x86\x54\ \x4a\x39\x0f\xf0\x57\xb4\x94\x8c\x70\xe1\xba\xb4\x18\x36\x54\x28\ \x72\x52\x62\x52\xa2\xdf\x4d\x3f\x7a\xc5\x5a\xc3\xed\xfd\xde\xd1\ \x7c\xbc\xe6\x9c\x4b\x96\x14\xb4\x68\x29\xa5\x52\x26\x4c\x71\xd2\ \x7e\x71\x6c\x79\x4c\x4d\xca\x11\x13\x66\xdc\xe1\x94\x19\x53\x46\ \x24\x18\x01\x54\x1c\x09\xad\x3c\xf1\x92\x15\x0b\x96\xac\xa9\x28\ \x71\x74\x40\x14\x20\x3a\x1f\x23\x1c\x25\x96\x96\x88\x0d\x31\x8e\ \x92\x08\x43\x22\xd7\x28\x17\x8f\xe3\x42\x81\xee\x30\x68\xe9\xa3\ \xb5\x6c\xb8\x60\xc4\x09\xb3\x0f\x27\xdf\x99\x68\x47\xcf\xf3\x0f\ \x48\x29\x64\x59\xfc\xf6\x8c\x33\x96\x14\x6c\xd8\xd2\x51\x63\x18\ \x33\x66\xce\x98\x06\xcb\x43\x60\xcb\x25\x15\x19\x47\x4c\x38\xe5\ \x88\x9b\x1c\xf9\xa3\x89\x26\x0b\xd8\x76\x2c\x00\x7d\x47\x4b\xc1\ \x8a\x25\x6b\x1a\xbe\xa5\xa5\xa1\xa6\xa6\xa0\xa0\xa2\x42\x49\x38\ \xf4\x10\x6d\xcb\x8a\x12\xcd\x86\x98\x29\x09\x0d\x2d\x5b\x52\x0c\ \xbe\x01\xe8\xaf\xad\xc1\x4a\x44\xf3\x0e\x73\xcb\x25\x19\x0b\x4e\ \xbf\x8f\xb3\xec\x9b\x69\xde\x79\x5d\x72\xc9\x06\x2b\xdf\xbe\x22\ \x25\x21\x66\xca\x84\x14\x03\xfc\x99\x0d\x6b\x34\xa7\xbc\xc1\x14\ \xcb\xeb\x62\xa4\x48\x7a\xdc\xb9\x54\x11\x4a\x92\x70\x1f\x8d\x26\ \x4c\x98\x0b\x1c\xe7\x6b\xcb\x82\x2b\x2e\xd9\xd2\xa0\x31\x74\x58\ \x0c\x13\x46\x5c\xd0\xd1\xa1\xa9\x70\x38\x12\x14\x5b\x6a\x3a\x12\ \xc0\xa0\xb1\x68\x29\xbf\xac\xb8\x50\x5f\x9a\xd5\x18\x2e\x58\x7f\ \xbf\xa8\xe1\xb0\x18\x0c\x57\xee\x1b\x16\x58\x12\xd6\x3c\xe2\x9c\ \x0a\x85\x62\xc6\x31\x29\x1b\x1e\x70\xce\x9a\x4b\x20\xe1\x98\xdb\ \xdc\xe6\x98\x84\x23\x66\xcc\x88\x68\xb1\x44\xc4\x12\xe3\xfb\x80\ \xec\xdf\xa2\xc2\x90\x4b\x1a\x95\x53\x51\xd0\x60\xa9\x29\x28\xb9\ \x92\xe4\xbc\x93\x40\x1b\xf1\x3a\x35\x25\x9a\x92\x4b\x72\x14\x11\ \x31\x06\x43\x42\x84\x61\x2d\x10\x4e\x43\x23\xc5\x79\x42\x47\x4d\ \x4e\xc9\x7d\x72\x5e\x77\x73\xa5\xf6\x4a\xc7\x97\x0a\x9f\x1a\x47\ \xc5\x15\x0f\xd8\xd2\x50\xb2\xe6\x9c\x2b\x22\x66\xdc\xa6\xe4\x5b\ \x2a\x4a\x2a\x4a\x1a\x0c\x09\x13\x6e\x72\x9b\x53\x8e\x48\xc9\x48\ \x42\xd3\x57\x4b\x5e\xe0\x06\x08\xb2\x1e\x70\x1a\x14\x9a\x13\x6a\ \x2a\x81\x5a\x4a\xc1\xac\x4a\x0a\x4a\x5a\x3a\x1c\x09\x5b\xb6\x24\ \x18\x22\x20\x26\x11\x88\xd6\x10\x91\x62\xa4\x5b\xde\x49\x6e\xea\ \x41\xc4\x1e\xff\x7e\x42\xca\x3b\x70\x31\x3b\x51\x07\xdd\x96\x17\ \x30\x84\x95\x63\xdc\xb2\x76\x4f\xf8\x36\x40\x64\x35\x96\x9c\x9b\ \x64\xac\xb9\x60\x25\x57\x48\x91\x33\xe5\x36\x6f\xf2\x1a\x37\x98\ \x08\x9a\xe0\x3f\xa2\x31\x21\x37\xdd\xfd\xab\xa5\x14\x52\x68\x2c\ \x0e\x45\x44\x22\x65\x5d\x43\xc3\x11\x96\x9a\x2d\x5b\xd6\x14\x12\ \xa8\x63\x0a\x22\x12\x3a\x14\xa9\x64\x31\x8a\x58\x8a\xfb\xde\x9b\ \xb5\x74\xb4\x6c\x71\x74\x8c\x04\x1b\x1d\x71\xc1\xcd\xe3\xe9\x33\ \x0b\xf2\xe7\xe6\x11\x96\xfa\xe3\xad\x60\xc7\x0d\x5b\x5a\x12\x66\ \x4c\xc9\xb9\x60\x8b\x66\x24\x21\xad\x25\xe7\x26\x6f\x73\x87\x63\ \xc6\xe4\x24\xb4\x62\x79\x1f\x2d\x76\x67\x4c\x1d\x9c\xb8\xde\x60\ \xde\xe7\xf7\x6d\x01\x45\x8e\xa3\x63\xcc\x96\x94\x35\x55\xc0\x20\ \x0c\xb1\x74\x40\x8d\x54\x25\xbe\xfb\x11\x0b\x6e\xdd\x52\xd1\xd2\ \x52\x48\xd7\x5d\x33\xe6\x84\xdb\x9c\x32\xfe\xcc\xbc\x8a\x8f\xd0\ \xf2\x8d\xca\xdf\x96\xc0\x84\x35\x57\x2c\x68\x18\xe1\xd0\x2c\x79\ \x82\x22\x11\x1f\x60\x88\x78\x9b\x9b\xbc\xce\x31\xa9\x27\x7e\xd0\ \x02\x9a\x98\x48\x5e\xa8\x0a\xff\xf4\x26\xde\xb1\x5d\xf4\xa0\xa8\ \x73\x52\x76\x39\x34\x5a\xcc\x18\x53\xb1\xa4\x91\xaa\x24\x93\x0b\ \xa9\x89\x04\xcc\xdd\x99\xcf\x49\xf5\xd1\xe7\x14\x8a\x35\x09\x27\ \xfc\x8c\x37\x3f\x9b\xfe\x86\xd0\xf6\x79\x69\x67\xd9\x7d\x5c\x52\ \x48\x82\xe2\xf1\x80\x11\x0d\x1b\x56\x82\x30\x54\x94\x68\x66\xcc\ \xb8\xcb\x8c\x39\x39\x0a\x47\x4d\x23\x2f\x49\x63\xa4\x80\xd7\x03\ \x3c\xa2\x0f\xcb\xc3\xee\x53\xff\x46\xfa\x7c\xa0\x09\x9e\x45\x11\ \xd3\x08\x16\xb5\xa1\x95\xcc\x76\x41\x24\xa7\xa1\x4f\xcd\x3b\x81\ \xed\x1a\x71\xf2\x2d\x8d\x3c\x14\x4d\x46\xf2\x1b\x7f\x5e\xa2\x6b\ \x4d\xf1\x7c\x60\xe6\x6e\xc3\x92\x73\x16\x9c\xe3\x18\x31\xc2\x52\ \x52\xb0\x05\x6a\x2a\x4a\x2c\xc7\xbc\xc9\xdb\xbc\x49\x42\x86\x91\ \x00\xe6\xdf\x9a\xde\x33\x02\x03\x5a\x87\x3b\x00\x82\xa1\x93\x0b\ \xd4\x17\x5d\xf1\x80\x1e\xa4\xa5\xab\x31\x62\x49\x23\x78\x83\x0e\ \xde\xa5\x95\xb3\xd3\x49\x20\x75\x18\x2c\x8e\x8a\x12\xe5\x5b\x8d\ \x3c\xe0\x3d\x77\xa4\xcc\x20\x6e\xbd\x64\xd4\x50\xf7\x5a\x7c\x46\ \x79\xce\x94\x39\x39\x2b\x36\xac\xa9\x49\xa8\xa9\x68\xc8\xb9\xc5\ \x4f\x79\x8f\x4c\xb2\x84\xfe\xc6\xab\x70\x7b\xad\xfc\xee\x90\x50\ \xb6\x9f\xf2\xba\x80\x2d\x1a\x79\xb2\xfd\xdf\xfa\x0e\xc5\x48\xfa\ \x5d\x05\x56\x80\x7c\x8f\x4f\x35\xf2\x3d\xbc\xe1\x7c\x46\xd1\x5f\ \x4e\x7f\xb1\x1a\x1e\x73\x8f\xbf\x23\xff\x78\xfc\xf9\xb3\xe0\xdc\ \xef\xe8\x74\xf9\x4f\xae\xb9\xef\xfe\x89\x2f\x29\x78\xc4\x09\xc7\ \x38\xce\x78\xc2\x96\x8e\x52\x90\xe5\xd7\xf9\x37\xbc\xcf\x8c\x34\ \xf8\x00\x7f\xe8\xe3\x90\xf3\x31\xb8\x14\x4a\x7c\x82\x12\x1c\xba\ \x6f\xdf\x80\x19\x38\xe8\xbe\xf0\xea\x42\x42\x67\xa5\xe4\x2f\xd8\ \x4a\xc5\xb3\x11\xc4\xbb\xa1\xa4\x12\xa6\x95\x93\xf0\xdb\x08\x7e\ \xf5\x10\xcb\xeb\xb4\x74\xbc\xcb\x7f\xe4\xdf\x73\xaa\x90\xcc\xf3\ \x25\x33\xcb\x21\x60\xab\x68\x58\xd3\xb2\xa5\x45\x61\x98\x60\x88\ \x19\xf3\x0e\x77\x98\x92\x0d\x0e\x72\x4f\xd8\xd0\x72\xf3\x19\xb8\ \xc9\xde\x0c\x43\x0e\xc3\x21\x1d\x6c\x98\x5f\xf4\x57\xcc\xca\x53\ \xb7\x58\x69\x09\xfb\xfb\x5e\x0b\x24\xac\xa9\x71\x12\xf2\x7d\x2d\ \xe2\x48\x29\x39\xa7\x24\xa6\xe5\x09\xf7\xf8\x19\x37\x9f\x09\xef\ \xbf\x40\x5f\xa3\x7f\xca\x31\x1d\x5b\x5a\x29\x71\x3d\xe9\x6f\x3c\ \x88\x14\x51\x78\x3b\x7a\xf0\x76\x77\x7d\x72\x73\x60\x90\x3e\x70\ \xda\x70\x86\x76\x89\x8e\x0a\x6f\x5d\x85\x33\xe4\xb3\x0e\x8d\x26\ \x16\x28\xbf\xa3\x21\x11\x40\xb7\xe6\x52\x7e\x72\x84\x21\x07\x1a\ \x8e\x58\x71\x25\xc8\x47\xc5\x57\x9c\xf1\x36\xf1\xab\x60\x96\x7d\ \xc1\x93\x90\x48\x09\xdd\x81\xa0\xce\x8a\x15\x09\x23\x4e\x38\x22\ \x0d\xb4\x8c\x9d\x29\xf4\x81\xd5\xd5\x9e\x11\xd8\x0b\x79\x56\x6e\ \xf5\xfe\x67\x0f\x19\x37\x7d\x62\xe6\x82\x89\x7d\x4f\x34\xa2\x95\ \xd8\x14\xb1\x91\xd8\xa1\x89\x84\x56\x60\x98\x30\xc1\x62\xc9\x18\ \xd1\xd2\xd2\x3d\xf3\x0d\x47\xcf\x6f\xe9\x18\x61\x2c\xf4\x81\xac\ \x27\xf5\xf9\xca\xe2\x88\x31\x69\xe8\x88\x0e\x9f\xe9\xae\x05\xa0\ \x0f\x28\x86\x87\x94\x82\x3e\x03\x75\x83\x7c\x43\x4b\xb7\xb5\xaf\ \x78\x6c\xc8\x3c\x34\x31\x56\x12\xa8\xfe\xc4\x59\x20\x97\xae\x4a\ \x6f\xaa\x9c\x8e\x11\xb7\x39\x63\xc1\x8c\x9b\x1c\x93\x85\xcb\xf3\ \x74\xdc\x78\x01\x84\x4a\xcb\x97\x76\x18\x22\xb1\xbf\xff\x41\x19\ \x53\xa6\xa4\x20\x8c\xb7\xdd\xdb\xfa\x6e\x66\xb4\x1b\x98\xf9\x59\ \x6d\x5a\xff\xfc\x87\x0c\x6c\x2d\xdc\x19\x9f\xb2\xfb\x9a\xb6\xbf\ \x62\x16\x18\xd3\x50\xd2\x06\xbf\x34\xa7\x64\x4e\x4a\xc9\x19\x96\ \x39\x6f\x09\x41\xf1\x15\xf1\x08\x27\x00\x47\x2d\x66\xf0\x07\xd9\ \x60\x88\xc8\x98\x30\x22\x96\x00\xe9\x5f\xaa\x93\xec\x61\x68\x8e\ \xa1\x83\xd4\x07\x3c\x26\x35\x68\x2e\xab\x3d\x6a\x8f\x0b\x27\x03\ \x81\x8f\x11\xc2\xb2\x22\x96\xb3\xd1\xc9\x75\x00\x25\x3c\xba\x3a\ \x5c\xcc\x88\x88\x39\x9a\x05\x4f\xe8\x24\x2b\x1e\x46\xaf\x97\x8e\ \x1a\xde\x0c\x95\xf8\x09\x27\x04\x1f\x43\x4c\xce\x84\x09\x29\x4e\ \x3a\x57\xfd\x5b\xe8\xa9\x3d\x7a\x60\x06\x2d\x4f\x4f\xed\x71\x59\ \xf4\xe0\x59\x5f\x47\xe5\xd8\x77\xad\x8e\x88\x2e\x54\x16\x7d\x55\ \xdb\x9f\x94\x4a\xc0\x98\xfe\xf0\x37\x28\x46\xe4\xdc\xe2\x8c\x15\ \x2d\xe7\x14\xc1\xb0\xaf\xe4\x23\x34\x09\x39\x39\x8d\x54\x0d\x11\ \x9a\x84\x98\x9c\x37\xb8\x81\xc1\x92\xa2\xa9\x49\x06\x1d\xf3\x9d\ \xb3\x53\x21\x54\xea\x01\xbd\x60\xc7\x6b\xda\xfd\x33\xf4\x26\xfe\ \xab\x5a\xc9\x23\x08\xd9\x86\x96\xef\xea\xe1\xb9\xfe\x6d\x45\x02\ \xdf\x44\x74\x81\x7a\xe6\xb0\x82\x6c\xbe\x86\xe2\x1e\x8f\x51\x94\ \xb4\x1f\xa4\x5f\x74\xa1\x5c\x7b\xc9\xbe\x86\xa5\x11\x04\x29\x66\ \x84\xa2\xc5\x11\x11\x0b\xd0\x1e\x85\xb2\xc8\x3d\x15\x1f\x86\x66\ \xe1\xa9\xa2\xeb\xba\x4b\xe0\xf6\x3a\x6c\x87\x83\x0d\x6e\xef\xcf\ \x26\x50\x09\xd8\xfb\x73\xef\x33\x1a\x34\x2d\x63\x32\x2c\x05\x8a\ \x98\x96\xf6\x0f\x4e\xbd\xa2\xb3\x74\x58\x6a\x6a\x4a\x22\xc6\xe4\ \xd2\x7f\x82\x88\x91\x74\xad\xd5\x20\xee\xef\x07\x3f\x75\x60\x98\ \x7d\x33\xec\xa2\x8b\xba\xa6\x02\x3d\x74\xb1\xea\x20\xf5\xea\x83\ \x28\x21\xec\x1a\xb9\xba\x5d\x30\x65\x4d\x2b\x4c\xef\x4a\x1a\xcc\ \x0d\x36\x44\x38\xf5\x72\x3e\xc2\x09\x40\x6e\x31\x64\x4c\xb0\x94\ \xf2\xe3\x23\x71\x8e\x96\x76\x2f\xe2\xab\x80\x4c\xee\x67\x92\x4f\ \x67\x11\xbb\xe6\xf2\xf0\x49\x0e\xa3\xca\xae\xed\xf8\x34\xb3\xd3\ \x60\x31\x82\x59\x7b\xaa\xa1\x23\x11\x9e\x96\xa6\x23\x92\x14\xdc\ \xa2\x89\x89\x49\x25\x0e\xbd\x32\x3f\xa2\x47\x8f\x8e\x38\x66\x46\ \xcb\x46\xf2\xb7\x68\x8f\x71\xab\x0f\x12\xec\xc3\x74\xfa\xe9\xf4\ \xf9\xba\xc2\x4b\x85\xb9\x9c\xde\x99\x76\xe1\x9a\xa8\x6b\xd2\x70\ \x27\xa0\xad\xa1\x45\x13\x85\x41\x98\x36\x60\xd9\x3d\x2e\x12\xc9\ \xe9\xed\xd3\x3e\xfd\xf2\x86\xf0\x00\x6b\x47\x4e\x82\xa1\xa2\x96\ \xaa\x2e\x92\x26\xec\x0e\xdb\x3c\xac\x13\xfa\x68\xc1\x41\x03\xf6\ \xba\x68\xee\x0e\x48\xc2\x87\x79\x86\x1a\x64\xaf\x87\x59\x8e\x7f\ \x1d\xad\x64\x98\x0c\x2e\x97\x12\xd2\x4a\xcc\x88\x9a\x86\xfa\x99\ \xd4\xd3\x17\x32\x44\xcc\x18\x43\x1c\x30\x4b\x27\x00\xaa\x0b\xd4\ \x73\x06\xfc\xaa\xdd\x91\x1f\xba\x4a\x37\xf8\xa8\x3b\xe0\x46\xbb\ \xa7\x38\x9b\xbb\xb3\xa1\xf6\xd0\xad\x5d\x72\xd5\x0d\x4c\x61\x88\ \x24\xae\xf4\xf1\xc0\x05\x3c\x14\x39\x11\x39\x25\x1b\xd6\x34\xa4\ \xd7\x9a\x42\xbf\x88\x21\x22\x12\x72\xb2\x10\xa5\x3d\x0f\xd2\x06\ \xb0\xcd\xc9\x8b\x50\x7b\x6f\xfa\xb0\xbe\xd8\xb5\x93\xdd\x35\xc3\ \x47\x6e\x10\xf8\x5e\x84\xda\xa6\x0e\x9c\xa8\x1e\x94\x7b\xc3\xbc\ \xc5\xd2\xd1\x08\xbe\xbd\x66\x43\xf3\x01\x2f\x8b\x50\x59\xf9\x66\ \x11\x63\x26\x6c\x89\x85\x1a\x94\x61\xc8\xc9\xc9\x48\x42\xc6\xa7\ \xc2\xad\x1b\xbe\xf1\xc3\xcc\x80\x01\x5b\x46\xc9\xed\x77\x52\x4e\ \x69\x6a\x31\x96\x1e\x9c\x10\x04\x01\xdf\x75\x43\xfa\xf6\x90\x95\ \x9c\xa1\xa5\x95\xd7\x35\x24\xb0\x3b\x69\x34\x3b\xc9\x83\x23\x62\ \xe6\x38\xd6\x54\x7f\x98\xa8\x57\xa2\x17\x7a\x32\x4e\x42\x41\x23\ \x00\x98\x96\xbe\xb6\x13\x94\x48\xbd\xf0\xac\x8c\x3b\xf0\x08\x2e\ \x14\x52\xee\x9a\xab\x72\xf8\xa7\x1e\xac\x77\x21\xc7\xf0\x81\xbd\ \x0e\xfd\x8b\xdd\xd5\xda\x65\x90\x56\x00\x1e\x2b\xae\xb3\x09\x90\ \xe0\x4b\x1a\x42\x13\x5f\x66\xc7\x09\x4a\x9c\xa4\x15\x42\xb1\x11\ \x0c\xc9\xed\x11\x3b\xae\x4b\x8f\x87\x6f\x69\x3f\x3f\x19\x5e\x14\ \xb7\x67\x9e\x43\x43\x38\x71\x96\x36\x54\x16\x86\x8e\x8e\x5a\x5a\ \xd1\x5a\x20\xba\x9d\xd7\x70\x72\xea\x5a\xaa\x60\x8a\x56\x98\x57\ \xd7\x3d\x3a\xfd\xdd\x4f\xd0\x01\xd1\x47\x89\xdc\xb5\x96\x46\x0a\ \x2e\x35\x78\x36\xfb\x07\xdf\x1d\x20\x52\xd7\x99\xc1\xed\x99\xc0\ \x0e\x00\x3b\x2b\x7f\xe3\xa4\x1e\xd9\x37\x95\x0b\xe0\x1d\x82\x88\ \x3a\x5a\x5a\xc1\x26\x5c\x38\x2b\x2a\xb4\x8f\x9d\x34\x96\x5b\xb9\ \x4c\xdd\x33\xc9\xa7\x2f\xc0\x8f\xd0\x5f\x68\x2c\x15\x48\xac\xde\ \xa5\x39\x1c\x60\x58\xea\xa9\x13\xa5\x9e\x82\x67\x0e\xcd\xe2\x0e\ \x80\xfd\xe1\xef\xd5\x33\xda\x42\x04\x3a\xba\x11\x6c\x42\x07\xcf\ \x42\xc0\xcc\x3b\xb4\xf4\x48\x9c\x34\xa1\xf4\x5e\xd7\xed\x15\x08\ \xa7\x96\x86\x92\x48\xea\xff\x58\x52\x29\xbd\x97\x33\xee\xa7\xad\ \xea\x19\x66\xd8\x9f\xad\xea\x61\x3a\x75\x70\x1d\xd8\xab\x36\x86\ \x95\xcb\xae\x9d\xe3\x24\x9b\xcc\xa5\xdf\x89\x10\x0d\xf5\xe0\xea\ \xf5\xb5\xb3\x91\xb7\xaf\xbf\x83\x97\xfd\x42\xe0\x6d\x27\xd8\x4f\ \x0b\xc2\x80\x8f\x9e\x42\x1d\x9e\x9e\xa1\x52\xd7\xfc\x59\xed\xa5\ \xd6\x7d\x6c\xb2\x52\x4a\xbb\x41\x0e\xa1\xf6\xfa\x60\x9e\xff\xa0\ \x03\x7c\x67\xe5\x6d\xfb\x8e\x67\x89\xa5\x19\x44\xb0\x5d\x33\xc0\ \x8a\x89\x7a\x44\xbd\x27\x25\xbd\xa2\x21\x7a\x27\xd5\x84\xe7\x12\ \x89\x85\xf5\x53\x9e\xe0\xe9\xa2\x8a\xa7\x4e\x89\xdb\xcb\x00\x86\ \x39\x81\xdb\x23\xa8\xec\x17\x6d\x36\x54\xa8\x7d\x8f\xb3\xef\x7c\ \x6a\x2c\xed\x00\x96\x55\x03\xe7\xb7\xc3\x50\x23\x39\x1f\xf6\x65\ \x33\x4b\x1b\x92\x14\x4b\xc3\x48\x6a\xce\x58\x7c\x71\x2c\x63\x47\ \x5d\xc8\x37\xfc\x8b\xea\x68\x65\xd6\x8a\x81\x2f\x51\x32\xdf\xed\ \xf9\x8f\x56\x2e\x96\x0d\x1f\x69\xa8\xa9\x42\xfe\x21\x4e\x5a\x7a\ \x97\x4a\xee\x7f\x47\x23\x90\xa0\x05\x19\x93\xf6\xf0\x40\x42\x4b\ \x23\x8e\x3c\x06\x69\x15\x23\x7c\x3d\x23\x8c\xfe\x29\x2d\x15\x6b\ \x21\xa8\xbc\x34\x9c\xef\xe8\xee\xfa\x16\x4a\x27\x2d\x5d\x3d\x80\ \xdc\x87\x35\x6a\x86\x13\x9a\xb8\x91\x82\x57\x87\xca\xd0\xec\xc1\ \x76\xfe\x2c\xb5\xa1\xe5\xdb\x33\x6a\x86\x10\xcd\x2e\x67\xd0\xf2\ \xff\x48\x60\x39\x23\x28\x59\x29\x83\xb6\xbe\xac\x8a\x83\x63\x74\ \x12\x23\x08\xdf\xad\x67\x62\x9b\x80\xbf\xaa\x97\xcd\x23\x1c\x96\ \xf6\x77\x95\xb4\xe1\x3d\x21\xa3\x0b\x17\x64\x97\x52\xfb\xe3\xd6\ \xca\x33\x89\xe8\x84\x14\xe0\x06\x35\x43\x2c\x2f\xc7\x0e\xfc\x87\ \x09\xc7\x37\x92\xd6\x9d\x0d\x9f\x5f\x87\xf8\xa1\xa4\x73\xa6\x06\ \x6e\xd6\x9b\x3c\x09\x0d\x67\x2d\x6f\xbd\x1b\xc4\x1d\x1b\xfc\x89\ \x11\xfc\x3a\x7a\xf5\x32\xdc\xe1\x7e\xe9\x6f\x67\x4a\x4c\x24\xbd\ \x81\xec\xe0\x9b\x3a\x2c\x6b\x10\xdf\xd1\x48\x73\x58\x87\x52\x59\ \x63\x48\x50\xd2\x1a\xea\xf1\x84\xde\x23\x34\x92\x58\x77\x83\x48\ \xaf\x42\xbe\xb8\xff\x7b\x27\xcc\x28\x2d\x20\x0c\xf4\x3a\x24\x5a\ \x4a\x70\x27\xa7\xb5\x16\x23\x28\x31\x42\x43\x3e\x98\xfe\x7b\x89\ \xab\xe1\x06\x18\x63\xc2\x58\x80\x8d\x8a\x56\xa6\xfb\x4d\xf8\x11\ \x4a\xe0\x90\x84\x14\x2d\x94\x41\x3f\xd4\xac\x85\x11\x97\x91\x50\ \x91\x30\x62\x2c\x06\x88\x04\x69\xd6\x74\x94\x01\x05\xb7\x83\xe8\ \x61\x07\xa9\xb4\x15\xb2\x80\x91\xb3\x86\xd0\xd4\x7d\xc7\x2b\x0e\ \x4d\x67\xa4\x27\xee\x06\x73\x3e\x04\x94\xdb\x8f\x3e\xb8\x97\x47\ \xa8\x76\x9f\x94\xc9\x45\xf0\xe0\x57\x4a\x4e\x26\x13\x17\x36\x70\ \xe2\x33\xe1\xc1\x9e\xf1\x90\x2b\xc1\xb1\x7a\xb7\x97\x92\xf2\x90\ \x11\x73\x66\x44\x92\xa6\xcf\x88\x99\x32\x16\x27\xaa\x07\x59\x9f\ \xdb\x8b\x19\xfb\x25\x7b\x2b\x97\xae\x93\x39\xd0\x46\x1e\x94\xa1\ \x0c\xaf\xb7\xa3\x91\xec\x62\xe7\xaa\x7d\xf8\x4d\xbe\x0f\x42\x85\ \xf4\x35\x5b\x71\x5d\x09\x53\xa6\x8c\x30\x02\xec\x23\x2e\x71\x8d\ \xa3\xe4\x82\x6f\x79\x42\x25\x2d\x7c\x3f\x01\xe8\x69\x5e\x6b\x12\ \xc6\x8c\x85\xd5\x92\x73\x87\x9c\xdb\xdc\xc4\x50\xa1\x19\xc9\x74\ \xe7\x21\xb6\xb9\x03\x64\x94\x70\x7d\x15\x9a\xad\x0c\xcb\xf8\x41\ \x05\x3f\xf5\xd3\x08\xc8\xbf\x33\x87\x0d\xd7\xc4\xb3\x26\x22\x61\ \x7c\x5e\x97\xa9\x3e\xc7\x59\x0e\x59\x6f\x9d\x1c\xe6\x8c\x31\xb9\ \xb8\x2e\x1b\xfa\x97\x8a\x7b\x14\x5c\xf0\x80\x73\x6a\x91\xc5\xf0\ \xdc\x99\xad\x30\xac\x33\x1a\x61\x36\x39\x12\xc6\x28\x46\xe2\xea\ \xae\xe8\x98\x30\x93\x2e\x6b\x2a\xa0\xb0\x1d\xe4\x95\x08\x3b\x6e\ \x29\xfd\x95\x25\x0f\x78\x80\xc2\xb2\x65\x0b\x8c\x19\x71\x84\x21\ \x13\x98\x06\x14\xd5\x20\x87\xf0\x45\x5a\x14\x62\xde\x77\x46\x0d\ \x7b\x00\x91\x3a\xc9\xd9\x7b\xbe\x41\x24\x93\x38\x53\x32\x0c\x11\ \x0d\x2d\x39\x9a\x9a\x98\x96\x3f\x73\x9f\x0b\x2e\xa8\x88\x39\xe6\ \x84\x09\xb0\xa5\xa1\xe1\xb1\xd0\x4a\x52\x20\x65\x4a\xc1\x9a\x88\ \x91\x50\xda\xad\x28\x44\x4c\x79\x44\xc6\x9c\x13\xe1\xca\x38\x1c\ \x35\x29\x46\x98\x96\x25\x9a\x15\x8f\x59\x12\x63\x38\xe3\x01\x8f\ \x68\x65\x84\xa5\x22\x61\xca\x9c\x88\x29\xb7\x38\x0a\x19\x8a\x1b\ \xcc\x00\x2b\xa6\xd4\x24\xcc\x07\x19\xed\x33\x0c\xa1\x0f\xda\x7d\ \x5a\x32\xb1\x86\x3a\x38\x9d\x28\x24\x52\x9e\x23\xe1\x7f\xe0\x92\ \x4b\x1e\x00\x09\x33\x12\x4e\xb8\xc9\x94\x94\x8a\x9a\x2d\x0d\x6f\ \xf0\x33\x1e\xf2\x84\x2b\x2c\x8a\x8c\x09\x29\x96\x25\xaf\xb1\xe2\ \x42\x32\xbe\x9a\x05\x05\x73\x8c\x74\xaf\xad\xa4\xf0\xc3\xb3\xb9\ \xe2\x8c\x6f\xb9\x40\xa1\x59\x71\x8e\x9f\x2a\xae\xa8\x28\xd8\xb0\ \x62\x49\xc4\x98\x25\x13\x52\x72\xc6\x02\xf4\x37\x32\xc6\xc0\xc1\ \x95\x78\xc1\xab\xe1\x64\x30\xa1\x67\x4f\x1b\x0c\x85\x70\x99\x12\ \xe9\x80\x1a\x8c\xf4\x1b\xcf\xf9\x92\x0b\x12\x22\x6e\x72\x83\x5b\ \xcc\x89\xe8\x18\x13\x51\x53\x11\xa1\x79\xc4\x3d\xbe\xe2\x9c\x73\ \x96\xdc\xe0\x98\x88\x96\x35\x25\x31\x25\x11\x25\x15\x0d\x6b\x32\ \x89\x23\x3b\x6a\x88\x0d\xdd\xae\x96\x15\x57\x3c\xe1\x02\x45\xc4\ \x96\x0d\x2d\x75\x68\x36\x55\x54\x6c\x88\x18\xb3\x25\x23\x63\xc2\ \x94\x19\x63\x22\x0a\xac\xc8\xf4\xc8\x49\xbf\xd4\xcf\x33\x84\x3d\ \xf8\xb0\xc5\x12\xe3\x58\xf3\x2d\x8f\x50\x4c\x25\x06\x18\xa9\x3f\ \x95\xcc\xdf\x44\xac\x79\x02\x8c\x18\x73\xc2\x9c\x29\x09\x2d\x2d\ \x39\x19\x33\xe9\x2c\xdc\x62\xc4\x31\x0f\xf9\x9a\x2b\x20\x66\x44\ \xc7\xa5\x38\xcf\x86\x0e\x4b\x4c\x4a\x4e\x8e\xc1\x49\xc1\xdc\xe7\ \x14\x25\x86\x8e\x82\x0b\xae\x28\xe8\x30\xc2\x74\xd8\xd2\xe2\x48\ \x98\x30\x62\x43\xc9\x45\x80\xf2\x4b\x0a\x56\xb4\x18\x26\x44\x74\ \x32\xf3\x23\xc8\xea\xbd\x57\xe0\x59\x6a\x14\x9b\x0f\xbe\xe4\x3f\ \xb3\x21\xe5\xef\x24\x19\x76\x18\x91\x3c\xb1\x42\x51\xb7\x8c\x19\ \xf1\x2e\x53\xc6\x92\x3c\xf9\x63\xbd\x95\xb4\x67\x4b\xcb\x94\xb7\ \xb9\xc3\xbb\x3c\xa1\x20\x26\xc7\x90\x01\x19\x29\x29\x96\x12\xc8\ \x18\x13\x61\x69\x42\xea\x6d\x05\x95\x74\xb4\x6c\x79\xc0\x05\x25\ \x0e\x47\xc5\x8a\xb5\x38\xc3\x58\x94\x03\x1c\x09\x0d\x05\x2d\x39\ \x29\x85\x24\xe4\xa7\x81\x75\xe9\x06\x88\x85\xbb\x06\x3d\x89\x9e\ \xcd\x60\xf0\xb5\x44\xf9\x87\x07\x14\xcc\x98\x85\x32\xa6\xc7\x05\ \x3c\x63\xc5\x51\x11\xf1\x3a\x13\x6e\x93\xd1\xab\x02\x69\x34\xf7\ \xb9\xc2\x72\x44\xca\x9a\x95\xc0\xea\x0d\x15\x6b\x62\xa6\xdc\xe6\ \x0e\x17\x6c\x51\x8c\x99\xb0\xa1\x20\x66\x44\x1a\xaa\x12\x8f\x2d\ \x69\x29\xb5\x6a\xd6\xac\xd8\x50\xe1\xe8\xd8\xca\xb8\x8b\x21\xc2\ \x90\x91\x32\x25\xc6\xb1\x60\x23\x53\x1f\x09\x96\x15\x1a\xc3\x0d\ \xc6\xa4\xc4\xe4\x92\x6a\xeb\x2f\x9e\xdb\xd7\x50\x21\x43\xf7\xe5\ \x4e\x84\x23\xa6\xa1\x66\xc4\x2d\x92\x41\x72\xbc\xcb\xe2\x13\x5a\ \x0a\x62\x6e\x93\x4a\x89\x5b\x62\xa9\x58\x71\xc1\x5f\x31\x32\x85\ \xb3\x61\xc1\x1a\x45\xc9\x96\x0d\x2b\x14\x5b\x1c\xb7\xc8\x88\x48\ \x49\xe8\x18\x91\x90\x92\x90\x49\xc7\xbd\x11\xd1\x04\x23\x18\x75\ \xc1\x82\x9a\x92\x42\xc2\xa8\x93\x6e\x9b\xcf\x6f\x53\x52\xa6\xcc\ \xb9\xe0\x4a\x26\x02\x7d\xa2\x7f\x85\x61\x4a\x42\x4a\xc6\x44\x46\ \x2c\xcd\x6f\x9e\xcb\x8f\xd8\x4d\x66\x74\x1f\xb7\x9f\xba\x63\xd0\ \xff\xc8\xaf\x2a\xd6\x94\x5c\xb0\xe1\x17\xd2\x6d\x54\x82\x05\x68\ \x2c\x29\x50\xc9\xd8\x51\x19\x22\xff\x86\xff\xce\x1f\x89\xf9\x19\ \xef\xa0\xd9\x92\x32\xa2\x65\xc4\x4a\x38\xb4\x4f\x58\xf1\x80\xbf\ \xe7\x94\x3b\x24\xac\x29\xd1\x4c\xa5\x70\xf2\x67\xae\xa1\x16\x16\ \x54\x4b\x4d\xc4\x86\x25\x35\x5b\x36\x38\x69\xef\x25\xe4\xa4\x18\ \x1c\x89\xd4\x3d\xaf\x71\xc2\x4a\xc6\x6a\x1a\xa0\xa5\x44\x73\x2a\ \x7a\x88\x86\x38\xd0\x0a\xae\xcd\x9a\x56\x7b\xb5\x45\xc7\xe6\x77\ \x97\x1f\x16\x64\x22\x7b\x51\xb1\xe4\x9c\x87\x3c\xe6\x8a\x88\x92\ \x94\xb7\x79\x87\x09\x1d\x25\xb7\x68\x29\x28\x24\xc5\xee\x98\x70\ \xc5\x25\x15\x2b\x96\x18\x66\xac\x79\x8c\xa5\xe0\x3e\x1d\x13\x2a\ \x0c\x39\x9a\x86\x94\x9c\x2d\x4f\x58\xf3\x3a\x7f\xcf\xfb\x4c\xa8\ \x29\x69\x49\x31\xcc\x49\xa8\xe8\x50\xd4\x74\x94\x94\xf2\xaa\x56\ \xac\xf9\x0b\x97\xac\x64\x22\x50\x93\x70\x2c\x95\x8b\x67\xea\x67\ \x52\x5e\x95\xac\x59\xb0\x16\xbd\x02\xc3\x1b\xfc\x8c\xb7\xb9\xcd\ \x9c\x12\xcb\x7b\xfc\x44\xe6\xfd\xbe\xf3\x44\x28\x1c\xd5\x87\x97\ \xac\x99\x93\x48\x17\x23\x62\x4a\x43\xc1\x96\x0c\x87\x0a\x48\x76\ \xce\x7f\xe6\x92\x9c\xbb\xcc\x58\x70\x4e\x4b\xce\x96\x9a\x8a\x25\ \x0b\x52\x12\x0a\x19\x59\x79\x8d\x11\x8a\x07\x94\x6c\x04\x72\xdb\ \xa2\x39\x22\xa6\xe2\x4f\x6c\x79\x9b\x39\xd0\x31\x95\x21\xc7\xad\ \xa8\x0c\x2c\x29\x59\xd3\x01\x15\x57\x2c\xd8\x50\x50\x86\xa6\x70\ \xcb\x8a\x2d\x17\xa1\x24\x1c\x31\xc1\x90\x30\xe7\x06\x57\x3c\x94\ \xc1\x5c\x9f\xd9\x5a\x22\x22\xe2\x50\xca\x3f\x07\xc5\xf6\xb7\x7e\ \xcb\x05\x5b\x92\xe0\x05\x22\x26\x58\x19\x23\x32\xe4\x8c\x88\x25\ \x65\xfd\x67\xbe\xe6\x94\xd7\x98\x73\x9f\x7f\xa2\xa6\x21\x16\x81\ \x9c\x9a\x04\x23\x91\x7b\xca\x84\x88\x88\x1c\xcb\x25\x5b\x5a\xb6\ \x14\x4c\x78\x8d\x9c\x4b\x1e\xb3\xc5\xf2\x1e\x39\xd0\x4a\x92\xa6\ \x45\x84\xab\x95\x72\xbe\x65\xc3\x39\x0b\x39\xf4\x2e\x10\x83\x5a\ \x09\xe4\x86\x96\x8d\x50\xd6\xa7\xdc\x60\xc6\x84\x63\x0c\x4a\x26\ \x00\x17\x94\x81\xec\x94\xbe\x48\xd1\xe5\xa4\x6e\xeb\x24\xdb\x6b\ \xc4\x21\x41\x82\xa1\x65\x45\xce\x31\xb7\x39\x92\x2a\xf4\x26\x17\ \xc4\xb4\xac\x78\xc8\xd7\x14\x3c\x61\xc6\xeb\xbc\xce\x58\x34\x29\ \x6f\xb0\x66\x45\xc3\x25\x17\x1c\xf1\x2e\x2b\x62\x26\x52\x29\x1a\ \x0a\x72\x3a\x2c\x05\xff\x42\xcd\x6b\x8c\xf8\x0b\x8a\x53\x6e\x31\ \xc7\xb2\xe0\xb1\x0c\xb7\x16\x5c\x72\xc1\x25\x1b\x56\x22\xed\xd2\ \x77\x59\x2a\xb4\x88\xed\x28\x5a\x6a\x2e\x88\xb8\x62\xc1\x8c\x0c\ \x45\xc6\x0d\x2a\x0c\x5b\x0a\xb6\x01\x40\x4c\x06\x03\x34\xcf\x34\ \x84\x01\xba\x8f\x3b\x62\x52\x41\x7e\x12\xf9\xb0\x2f\x85\x16\x4c\ \x99\x32\x23\x13\x85\xb0\x7f\xc7\x6d\x3a\x22\x0a\x72\x6e\xb3\x66\ \x49\xc6\x88\x31\x13\x5a\x36\xac\xf9\x13\x6b\x9e\x70\x49\x89\x25\ \x61\x44\xce\x88\x23\xe6\x8c\x48\x29\x58\x90\x30\xc7\xf0\x17\xfe\ \xc4\xd7\xbc\xc3\x1b\x7c\x8b\xe1\x27\x44\xdc\xc2\x72\xc1\x1f\x69\ \x80\x9a\x4b\x1e\x73\x49\x85\x65\x45\x3c\x28\xc8\x3a\x2a\x1c\x15\ \x35\x63\x46\xc4\xc4\x62\xe0\x92\x52\x38\x5e\x13\x20\xa7\x13\xd6\ \xb7\xa2\x93\xb9\xb2\xe7\x1a\x42\x61\xe9\x3e\xb6\xc4\x21\x0f\xeb\ \xe1\x8e\x94\x31\x13\x2a\x72\x32\x01\x4f\x62\x52\x32\x46\x6c\xa9\ \x69\xb8\x43\xc6\x8a\x88\x09\xc7\xe4\xd4\x5c\x70\xc6\x9a\x25\x37\ \xb8\x62\xcb\x98\x77\xd8\x70\x9f\x0d\x11\x67\x4c\x38\xe5\x94\x9c\ \x88\x96\x11\x29\x96\x35\x97\x54\x9c\xf3\x57\x14\x0f\xd8\xf0\x73\ \x12\xfe\x85\x7b\x3c\x14\x91\xcf\x15\x8d\x88\xae\x25\x8c\x49\x50\ \x74\xd4\xd4\xa4\x44\xe4\x4c\xc8\x50\x54\xd4\x42\x5d\x69\xa4\x4b\ \x1b\x09\xf0\x3b\x22\x97\xaa\xb9\x44\x13\xfd\x5e\x89\x54\x97\x7d\ \x76\x42\xe5\x70\xd8\x5f\x76\xa2\xfb\x93\xc9\x13\x81\x9c\x88\x88\ \x4e\x9e\x87\xcf\xcf\x0c\x29\x1b\x72\x34\x1b\x19\x7c\x4e\xb9\xc9\ \x94\x89\xa4\x3b\x05\x35\x53\x6e\xb0\x22\x67\xc6\x98\x25\x25\x77\ \xa8\xe4\xc7\x97\x68\x52\x5a\x5a\x22\x6e\x93\xb0\x61\xc3\x7d\x2c\ \x8a\x96\x8a\x02\xc3\x88\x13\xd6\xac\x58\x70\xc5\x56\x72\xd9\x58\ \x0e\xb7\x17\xee\xeb\x64\xc2\x37\x25\xa2\x1d\x00\xc6\x95\x8c\xee\ \x5b\x16\x18\x32\xc6\x4c\xa4\xf3\xd1\xa1\x89\x3e\x7a\x01\x67\xd9\ \xc9\x29\x50\xc2\x7f\xa8\x68\xa9\x65\xc2\xb2\x11\x18\x3c\x21\x96\ \x9a\x73\x87\x09\x77\x34\x94\xa1\xfd\xae\x88\xe4\x49\xdf\x20\xe2\ \x82\x19\x35\xff\x85\xc7\xd4\x9c\x02\xc7\xfc\x1d\x47\x9c\xb3\x20\ \x66\x8e\x25\xe3\xe7\x4c\x58\xf2\x9f\x38\xe7\xe7\x18\xee\xf2\x6f\ \x79\x8b\x31\x6f\x70\xc2\x4f\xb8\xc7\xff\xcb\x15\xad\x74\x30\x62\ \x20\x23\x66\xc4\x94\x09\x09\xf7\x25\xcd\x8a\x98\x73\x83\x19\x1b\ \x0a\x89\x32\x9e\x1f\x5c\x8a\x50\x57\x4a\x4b\x21\x28\xbc\x79\x91\ \x4e\x57\x24\xa1\x31\x93\x52\x65\x1c\xb4\x80\x7a\x1a\x48\x1c\xf0\ \x49\x3f\x22\xe0\x85\x51\x5a\xf9\xd1\x33\xe1\x6c\x6f\xf1\x3a\x43\ \xc7\xb4\x9c\xf2\x0d\x97\x4c\x99\xb3\xe5\x26\x11\xb7\x79\x9b\x29\ \x29\x17\x38\x32\x1a\x3a\x8e\x78\x8f\x35\xff\x89\x07\xfc\x8c\x11\ \xb7\xb9\xcb\x9b\x58\x52\xa6\x5c\x32\xe2\x4b\x62\x4e\x59\xb2\x41\ \xf3\x96\x0c\xdb\x26\x94\x7c\xcb\x13\x96\x24\xc2\xf6\xcb\xc8\x99\ \x32\xc2\x89\x4e\xae\x57\x4f\xb6\x02\x17\x68\x26\xe4\xc0\x4a\x1e\ \x9a\x0b\x3d\x97\x67\x76\xc3\x55\x38\x82\xbd\x6c\xa2\x15\x3a\x96\ \xd7\x14\x8d\xa5\x35\x67\x03\xbd\xc3\x08\x09\x23\x26\xe5\x88\x63\ \xe6\x4c\x98\x32\x27\xa5\x63\x8d\xe1\x36\x6f\x71\x4c\x42\xc6\x31\ \x25\x31\x6f\xf0\x3e\xaf\x73\x44\x8a\x61\xc4\x5b\x18\x6a\x4e\x19\ \xd3\x31\x67\x45\xc4\x11\x59\x98\xdd\x54\xe4\xcc\x19\x49\x4f\x2d\ \x62\x84\x62\xcb\x05\x17\x6c\xb0\x32\x79\x3a\x95\x57\x51\xb3\xa0\ \xa2\xa1\x0a\x59\xe5\x5a\x06\x16\x3c\xbc\x57\xb2\xe6\xbf\x73\x49\ \xf7\xa9\x83\x01\x0d\xe5\x19\xd5\xa7\xc7\x12\xdb\xc0\xb7\x4e\xc8\ \xa4\xe4\xed\x30\x64\x8c\x64\xb6\xd2\x05\xaa\x71\xff\xdf\x11\xad\ \x8c\xcb\xfb\x03\xb8\xa6\x22\x65\xc4\x9c\x39\xef\xb1\x02\x34\x5b\ \x8e\x78\x8f\x9c\x0a\xc5\x11\x29\xf0\x3a\x57\x34\xcc\x59\xa0\x78\ \x0b\xc3\x4d\x5e\x93\xe2\xc8\x8a\xa0\xeb\x11\x89\x88\xbc\x65\xa4\ \x94\xd4\x64\x1c\x73\xcc\x39\x05\x47\xcc\xb9\xa4\x12\x44\x2b\x21\ \xa6\xa3\x10\x0d\x23\x4d\x21\xe7\xe1\x8a\x11\x11\x73\x52\x2c\x0d\ \xab\x4f\x2e\x3e\xd9\x72\xc4\x0d\x15\x7f\x97\x8f\xb0\xe8\x7f\x4c\ \x7f\x69\x24\xe0\x78\xe0\x7d\x2b\x3e\xba\x63\xca\x28\x08\x66\xea\ \x40\xf3\xf1\x0d\x39\x3f\xc2\x3e\x46\x93\xca\x41\x2b\xb8\x8d\x22\ \xe1\x06\xef\xb1\x66\x45\x29\x99\xdd\x92\x15\x25\x23\x8e\x29\x25\ \xc9\x69\x68\x38\x26\x67\xc2\xcf\x79\x8d\x34\x50\xd5\x62\x66\xdc\ \x26\xa7\xa6\x25\x62\x4a\xcd\x9a\x96\x1b\xfc\x3d\x6f\xf0\x47\x2e\ \x69\x58\xb1\xc5\x91\x92\x61\x98\x73\x83\x35\x4f\xd8\x02\x33\x14\ \x1d\x25\x8e\x9a\x25\x86\x8a\x8a\x29\x1b\x2e\x79\xc4\x13\x9e\xf0\ \x36\xa9\x3b\x51\xee\xd9\xe1\x53\x13\xff\x2a\x76\x36\xa4\xd1\xbe\ \xd5\x87\x94\x2d\x99\x88\x27\x32\x50\xb4\x55\x01\xaa\xc9\x59\x09\ \x0c\x97\xd1\xe1\x18\x91\x0a\xc2\xe5\xb9\xbb\x8d\xa8\x3a\x24\x52\ \x53\xae\x98\xb1\x60\xcc\x11\x4f\x28\xf9\x09\x0b\x7e\xca\xfb\x4c\ \x84\x13\xe9\x95\x28\x46\xbc\xcb\x1b\x3c\xa0\x22\x25\x13\x24\xc4\ \xa0\x30\x9c\xf0\x36\x5f\xb2\x02\x66\x9c\x10\xe3\xc8\xb8\x49\x4a\ \x25\x91\xc9\x49\x3b\xd0\x33\x3b\x1e\xb0\x25\xa6\xe2\x18\x45\xc1\ \x8a\x95\x0c\x70\x3e\x13\xb3\xec\x59\x28\x5e\x83\x70\x4d\xc5\x16\ \xcb\x14\x2d\xe5\xae\x09\x83\x08\x43\x42\xb0\x95\xce\xe3\x29\x8e\ \x25\x23\xd2\xa0\x60\x3b\x22\xc7\xb0\xa6\x26\x65\x42\x4d\x41\x1b\ \x84\x7c\x6b\xa0\xe0\x98\x39\x67\x74\xbc\xcf\x92\x9f\x33\x17\x08\ \x30\xc2\x91\x70\x8e\x66\xc6\x5b\xfc\x15\x87\xa2\x91\xeb\xa4\xf8\ \x9a\x86\x23\x7e\x41\xce\x7d\xb9\xb4\x8e\x29\x27\xc4\x8c\xb8\x45\ \x4a\x11\xf8\x94\x29\x13\x72\x6a\x12\x46\xc4\x14\x6c\xf8\x26\xf4\ \x46\xdd\x77\x23\x54\x3e\xcd\xf6\xdd\x44\x0f\x7f\xa4\x4c\x44\x04\ \xab\x0b\xf4\x9e\xbe\x17\xa9\x03\x2f\xd7\x90\xf0\x0b\xfe\xcc\x9a\ \x96\xa9\xa0\xdd\x0d\x19\x19\x8e\x9c\x44\x78\xd3\x1b\xd6\xb4\x58\ \x81\xe4\x96\x24\x4c\x50\x54\x18\x8e\x38\xe1\x88\x48\x5c\x71\x4d\ \x49\x4d\x4c\x49\xc3\x88\xdb\x68\x0a\x0a\xa9\x14\x12\x4a\x56\xdc\ \xe0\x94\x8c\x8c\x19\x6b\x16\x64\xbc\xcd\x11\x8d\x38\xdb\x25\x57\ \x62\x4e\xcd\x88\x63\x62\x26\xdc\xe6\x04\xc5\x96\x25\x35\xb3\xbd\ \xf9\xe1\x6b\x13\xaa\x2e\x70\x27\x55\xa0\x67\x29\x99\x90\xea\x02\ \x53\xc9\x86\xa4\x6a\x9f\x5a\xfa\x53\x56\x2c\x69\xc3\x90\xe3\x09\ \x9a\x96\x8e\x94\x88\x8a\x25\x05\x8e\x94\x51\x38\xb8\xdf\xf2\x06\ \x89\x74\x28\x15\x37\xe4\xda\xf9\xe2\x6b\xc3\x86\x63\x1e\x53\x01\ \x73\x62\x96\x3c\xa1\x40\x91\x4a\x16\x61\x59\xd1\x30\xe3\x16\x15\ \x5f\x93\x71\x47\x94\xf0\x0c\x39\x25\x8a\x44\x86\x2f\x2d\x8a\x84\ \x39\x6f\xf3\x36\x31\x5f\x72\x0e\xcc\x99\x5f\x33\xe2\xb6\x67\x88\ \x9e\x5d\x5b\xcb\xb7\x84\x96\x84\x1c\x45\x2d\x9d\x22\x85\x15\xe2\ \xd0\x8e\xb2\xd3\xf7\x13\x97\xbc\x4b\xc2\x9f\xb8\xcf\xbb\x9c\xd2\ \xb0\x24\x92\xf9\xbb\x2d\x2d\x1a\xc7\x98\x4c\x5a\x3a\x1d\x5b\x5e\ \x47\x53\x92\x31\x63\xcc\x48\x8c\xa7\x02\xfb\x21\x91\x56\x8e\x62\ \x42\x22\xd5\xa6\xa3\x65\x4d\x42\x46\x4c\x8d\x16\xbd\x02\x47\xc5\ \x23\x22\x2e\xa4\x8d\xec\xd5\x6e\xc0\x31\x21\x27\x23\xa7\xe2\x09\ \x27\xe4\xc4\xdc\x62\x8b\x61\xc6\xe4\xfd\xf6\xc0\x18\x7b\x3e\xa2\ \x07\xcf\xbd\x3f\x68\xc8\x38\x22\x13\xe1\x94\x72\x8f\x4b\x7b\x5d\ \x3f\xb9\xc6\x31\xe3\x5d\xce\x78\xc4\x82\x11\x33\xc1\x0a\x12\x69\ \xca\x7b\xca\xea\x15\x17\x94\x20\xc2\x4c\x23\x46\xa2\x2d\x60\xf6\ \xc0\x80\xbe\xfb\x19\x8b\x5a\x89\x21\x63\x83\x96\x74\xde\x1b\xad\ \x24\x21\xe7\x84\x82\x96\x9a\xf5\x80\x9e\x10\x4b\x7e\x33\x16\x35\ \xe5\x98\x11\x63\xc1\xb1\xbc\x19\xf5\x3d\xf3\xdd\x3e\xa2\xfb\x78\ \x37\xa8\xd4\x0a\xfa\x90\xd2\xd2\xb0\x0d\x33\x76\xea\x19\xed\xc1\ \x84\x9a\x09\x33\xe6\xdc\x63\x89\xe3\x98\x8a\x86\x42\xe6\xc5\x6b\ \x0c\x2d\x05\x8f\x39\x47\x73\xc4\x4c\x84\x37\x46\x64\x72\xa6\xa2\ \x01\x39\xd4\xc9\x30\xdd\x88\x31\x31\x05\x86\x54\x84\x3f\x9d\xa0\ \x14\xbd\x20\x64\xca\x84\x92\x15\xad\xe4\xb8\xad\xcc\x25\x1a\x66\ \x8c\x30\x68\x12\x22\xc6\x8c\x04\x97\xcf\x18\x93\x5d\xc3\x93\x38\ \x48\xa8\xb8\xa7\x05\x91\x8c\x49\x18\xcb\x19\xe8\x84\x98\xe3\x06\ \xbd\xa2\xa7\xf9\xd4\x09\x35\x96\x8c\x5b\xb4\x3c\xa6\xe3\x01\x05\ \x5b\xea\x30\xc8\xf0\xae\x08\x7e\x46\xcc\xb8\xc5\x4c\x44\x5b\x7b\ \xd1\x3e\x27\x1d\x8d\x5e\x86\x4f\x49\xcd\x33\x16\x71\x8d\x98\x89\ \x08\x80\x55\x6c\x88\x25\xd3\x6c\xa5\xfb\x92\x32\x62\x2d\xf5\x8f\ \xef\xa0\xc6\x72\x31\xf5\x80\xbf\xef\x55\x32\x27\x64\xd7\x50\x0c\ \xa3\xfd\xb9\x0c\xf3\x45\x8c\x96\x14\x66\x42\x8e\x15\x03\xf4\x73\ \xbe\xee\xda\x86\x99\x12\x6c\x19\x81\xe1\x66\xa2\x42\xd9\x49\xfe\ \xd0\x33\xa7\x7c\xf9\x1e\x31\x61\x12\xc6\x1c\x74\x98\xf3\xeb\x82\ \x46\x59\xaf\x03\xe1\x03\xe0\x98\x05\xe0\xb8\xc5\x5a\x4e\x85\x57\ \xa4\xf2\x3d\x95\x26\x44\xbb\x4a\x46\x5f\x53\x72\x52\x22\x36\x22\ \xd8\xd5\x33\x7b\xfc\xe4\x57\xca\x8c\xe4\x79\x4d\x60\x87\x22\xba\ \x4c\x8e\xb5\xa8\xce\x26\x82\x29\x7b\xee\xd4\x6e\xc0\x4c\x3d\x35\ \xee\xea\xbb\xcf\x39\xb0\xa5\x24\xe2\x88\x19\x5b\x22\x22\x21\x26\ \xf6\x7d\x68\x07\xa4\x22\xb5\x91\x1c\x4c\x89\x6e\xe5\x27\xec\x8f\ \xa5\x8c\x39\x92\x7e\x45\x42\x22\x6d\xc0\x9a\x0d\xb1\x34\x00\x6c\ \x60\x61\xdd\x1e\xcc\x18\x3a\x2c\x39\x63\x51\xca\xb4\xf2\xf3\x2d\ \x8e\x11\x13\x92\xff\xc0\x77\xe5\x11\x86\x9a\xee\xae\xfe\x22\xfd\ \x70\x24\xc2\xbb\x2e\x8c\x86\x20\x8a\x61\xc3\x59\xbb\xc3\x19\xd1\ \x58\xe4\xf2\xb4\xcc\x56\xa5\x72\xdf\x77\xf4\xe0\x58\x14\x0a\x3d\ \xcf\x2d\x3a\x18\x67\xd9\x5d\x89\x3e\x73\xf5\xc5\xde\x09\x4b\x96\ \x14\x22\xeb\x92\xd1\xb2\x65\x8b\x23\x97\x11\x25\x83\x62\x22\x3d\ \xf9\x4a\x48\xea\x8e\x96\x5b\x4c\x85\xea\xd4\x49\x61\x8e\x60\x2d\ \xc9\x35\x4d\x9e\x83\x06\x4f\xf3\x0f\x5e\x74\xbb\x91\x79\x28\x82\ \x97\x28\x06\xa3\xc9\xd7\x83\x1b\x49\xd0\xb6\xd7\x34\x34\xd2\x47\ \xf0\xd5\x6c\x2b\x45\x54\x24\xe9\x3a\x61\xb0\xda\x49\x2f\xc5\x86\ \xb1\x84\xa1\xac\x82\x23\x66\xcc\x8c\x0c\x43\x8d\x62\xcc\x5c\x62\ \x58\xcd\xa5\x0c\xec\xa7\x4c\x98\xa0\xd9\x08\xa1\x54\x49\xdd\x39\ \x65\x22\x17\x89\x81\xb4\x57\x32\x88\x50\xcf\xbc\x1a\x11\xe6\xf3\ \xe5\x27\x96\x09\x19\x1b\x3a\x1e\x10\x71\x2c\x7a\xb3\x06\x45\x8d\ \x22\x0d\x2c\x7d\x0e\x26\x6c\x6a\x8c\xa0\xc4\x7d\x08\x4e\x43\x48\ \xd3\xe4\xe2\x15\x62\x59\x13\xa1\xa4\xcd\xdb\x89\x6f\xb0\xc2\xaa\ \x26\xf8\x8d\x9e\x91\x9f\x30\xe7\x98\x05\x2b\xd1\xc7\x9e\x71\x07\ \x4b\xc9\x23\x1e\xf3\x95\x6c\xdb\x38\x66\xc4\x39\x15\x0d\x11\x27\ \xbc\xc9\x1b\xcc\x59\x90\xb3\xa0\x90\x86\x94\xe7\x5c\x6c\x51\x8c\ \xdf\x37\xd7\x08\x30\x1d\x14\x5d\xfa\x73\xfd\x89\x95\x09\x4f\x0f\ \xb8\xd5\x1c\xcb\x88\xa0\x67\x2c\xf9\xb7\x13\x5d\xe3\x2c\x4d\xf0\ \x33\xbd\x12\x90\x66\x28\x0d\xea\xbb\x1c\x1a\x25\xc0\x48\x2b\x14\ \x94\x4e\xbe\x4a\x0f\x58\xff\x4a\x1a\x37\x7e\x9e\x74\xcc\x8c\x63\ \xd1\xcb\x36\x54\xc4\x64\xcc\xb8\xc1\x86\x25\x2b\x2a\x1c\x6b\x36\ \xe4\x8c\xc8\x99\x71\xc4\x18\xc5\x86\x0a\x44\x92\xa7\x57\xd8\xed\ \x06\x93\x1d\xea\xbb\xae\x86\xc2\xdc\x8b\x64\x58\x29\xa1\x10\xd7\ \x67\x84\x2d\x77\xc6\x88\xa9\xbc\xdc\x4e\xc6\x8f\x87\x54\x63\x13\ \x46\x9a\x4c\x18\x91\x76\xe1\xb0\x9b\xa0\x13\xd5\xb3\x21\x1b\x5a\ \x1a\x5a\xf9\x0a\x13\x92\xfa\x66\x6f\x14\xbe\x23\x22\x61\xcc\x94\ \x0b\xd6\x54\x28\x32\x1a\x72\x66\xcc\x83\xc2\x88\x57\x63\xd6\xe4\ \xcc\x99\x93\x63\x59\x53\xa2\xa8\xe4\xf5\x67\xd2\xb2\x6e\x7c\xc2\ \x78\x97\x7b\xcf\xa5\x05\x44\xa4\xbf\xe7\x43\x43\xf4\x99\xfe\x7c\ \xf6\x95\x27\x0b\x2a\xb9\xe7\x0b\xe9\x5d\x49\xa0\x7d\x26\xe7\x4a\ \x07\xa5\x97\xdd\xfc\x84\x11\x5a\x49\x2b\xd5\x8a\x17\xdc\x23\x8c\ \x37\xf7\x1c\x5d\x2b\x24\x34\x2b\xd4\xe1\x9d\x86\x44\x44\xca\x15\ \x5b\x22\xc6\x92\x34\x79\x31\xe1\x23\x5a\x69\x19\x6e\x03\xe5\xd0\ \x3b\x4d\x2f\x3a\xef\x0d\x14\x0b\xaa\x62\x51\xa8\x7b\xd7\xcd\x19\ \x46\xfb\xdc\x6b\x43\xfa\x11\xbf\x73\x77\xd5\x3d\x7d\x6f\xfa\xeb\ \x29\xa3\xdf\xae\x24\x11\xf1\x14\xcf\x5e\x52\xd5\x8b\x9b\xb0\x97\ \x6c\xbb\x40\xcf\xd1\x81\x1d\xb9\x53\x18\xf1\x2c\x89\x3a\xa0\x05\ \x9d\x68\x8c\x45\x81\x6a\xee\x67\xc6\x62\xd9\xd5\x55\xc2\x80\x6f\ \xd9\x9f\xa8\x5a\x34\x95\xbd\x66\x9d\x92\x04\xca\xb3\xab\x67\x41\ \x18\xb4\x15\xd2\x50\x1d\x66\xba\xb4\x28\x6d\x6a\x12\xf4\x3d\x9e\ \x3f\xaf\xa1\x88\xb0\x1f\xb5\x9f\xda\x0f\x40\x7d\x11\xdf\xe3\x1e\ \x7f\xf0\x92\xae\x3a\x30\x18\x5d\x80\x73\x87\x53\xdf\xc3\x49\x60\ \x42\x5b\xc5\x89\x1c\x46\x07\xf2\x06\x1a\xc9\x1d\x2d\x91\xac\x84\ \xb0\x81\x50\xda\xd1\x89\x7a\x89\x8f\x53\x43\x53\x46\x02\xc1\x95\ \x2c\x31\x24\x24\x24\xb4\x32\xf9\xab\xf1\xa3\x56\x08\x9e\xe2\xc7\ \x96\x7c\xa9\x88\xc4\xbe\x2d\x0b\x59\x48\x60\x9e\xef\x23\xc2\x44\ \xe6\x5d\xfb\x81\xfd\x80\xe3\xee\xf7\xed\x87\xfe\x09\x1a\x26\xd4\ \x02\x89\xc6\x52\x0d\x46\x83\x45\x74\x6a\x8f\x89\xbf\x3f\xc7\xdd\ \xcf\xe2\x39\x19\x80\xe9\xf5\x08\xc7\x42\xf4\xe8\xbf\xce\x8b\xf8\ \xb8\x30\xe7\xdd\x08\x36\xe6\x6b\x8b\x02\xcb\x98\x8a\x35\xe7\xc0\ \x24\x08\x41\xea\x30\xaa\xf0\x68\x30\xaf\xe1\x85\x40\x5b\x09\xdd\ \x1d\x1d\x1b\x96\x34\x02\x15\xf1\x3c\xa2\x48\x98\xa2\xba\xeb\x8e\ \xa1\xc1\x7e\xd8\x4a\xd9\x1d\x33\xa3\x94\x9e\xe7\x88\x4c\x78\xb2\ \x6e\xf0\x66\x87\x03\x6b\x3a\x70\xe2\x94\x98\xa1\x92\xc3\x6e\xe5\ \xd8\x26\xc4\x92\x6e\xa9\x10\x33\x96\x40\x22\xac\x59\x1b\xe4\xc8\ \x5b\x2a\xb6\x2c\xb8\x92\x55\x34\x4b\xb6\xa4\x34\x83\x8c\xd4\x8a\ \xf6\xd8\x46\x7c\x91\xbf\x46\x48\x03\x49\x89\x8c\x9f\x37\x65\x1c\ \x14\xd5\x9f\x43\x14\x11\x48\xff\x57\xcd\x3f\xd8\x5f\xee\x18\xab\ \x1d\x39\x6f\x50\x49\xc9\xac\x68\x45\x7a\x47\x0d\x38\xfc\x4a\x6e\ \xb3\x15\x38\xc4\x4a\x6b\xad\x13\x55\xca\xde\x39\xf6\xfa\x75\x11\ \x0d\x95\xe8\x9e\xf6\x18\x44\x43\x21\xaa\xd9\x7e\xed\x80\x1f\x48\ \x58\xf2\x0d\xf7\x39\xa7\x25\x13\x7e\xe6\x8a\x33\x26\x28\x34\xb9\ \xcc\xff\xa8\x30\xc6\xe0\x49\xa8\xad\x40\x3c\x15\x19\x19\x23\x60\ \x43\x8d\xe5\x16\xf3\x30\xde\xaf\xbe\xdb\x47\xf8\xab\xe1\x7e\xd9\ \x4a\x3e\x80\x48\x78\xb6\x6c\x64\x6c\xc5\x1d\x0c\xb2\x33\x18\x79\ \xb4\x61\xc8\x44\x85\x3c\xd4\x49\xba\xdc\x05\xef\x1f\xe1\x68\x18\ \x03\x9a\x8a\x0d\x57\x94\x28\x51\xaf\x8d\x84\x9e\xa6\x65\x98\xf1\ \x09\xdf\xf2\x80\x2b\x11\x1a\xf6\xb3\xc8\x25\x0b\x9e\x30\x96\x82\ \xae\x7f\x43\x47\x41\xa7\xdb\x0a\xa3\xc7\xbb\xe5\x94\x18\x47\x41\ \x47\x16\x3c\xc4\x73\xc2\xe7\x21\xf3\xb6\xa7\x9c\x1b\x52\x26\x81\ \xff\x78\x38\xdb\x4d\x50\x88\xda\x5d\x2f\x7f\x5b\x1b\xc1\xb1\x7b\ \xce\xb4\xe7\x44\xe6\x44\xa2\xa1\xde\x51\x70\xc6\x9f\xf8\x8a\x2b\ \x3a\xc6\xdc\xe1\xe7\xbc\xcb\x11\x48\x73\xb9\xe6\x82\xfb\x7c\xcd\ \x19\x05\x8e\x5a\xd6\x0b\x40\xcd\x8a\x0b\x4e\xc9\x28\x84\x18\x6b\ \x80\x29\x95\x44\x8d\x5a\x94\x66\x3c\xf9\xcd\xf7\xef\x37\x28\x8e\ \x39\x21\xf9\xb5\xbe\x76\x68\x37\xba\x4e\x65\xc8\xdc\x33\xbf\x77\ \x1f\x76\x61\x8e\xd6\xff\x6d\xb2\x47\xf8\xe6\xa9\x89\xbd\xc3\xa1\ \xd5\xdd\x3c\xa7\x0f\x7a\x06\x4d\x2a\x50\xae\xc6\x70\xc1\x86\x47\ \x7c\xc9\x7f\xe5\x3e\x25\x86\x9c\x85\x3c\xf3\x84\x42\xf4\xf0\xae\ \x38\xe3\x9c\xc7\x54\x68\x0c\x95\x68\xe9\xf7\x8b\xaa\x52\x72\xf9\ \x0a\x17\x76\x7a\xb5\xb2\x58\x62\x37\xa5\x9e\xc8\xfe\xd0\x13\xee\ \x70\x93\xe4\x73\xf5\x22\x3e\xa2\x97\xe0\x52\x1f\x45\x94\xce\x4f\ \xe0\xd9\xa0\xda\xb1\x1b\x23\xd8\x65\x96\xfd\x84\x94\x1a\x4c\xe6\ \xb8\x60\x2c\x4d\xcd\x56\x18\x2b\x7e\xcf\x8a\xef\x9f\x26\xb2\x27\ \xa3\x64\x03\xdc\x60\xce\x29\xb7\x69\x50\x9c\xd1\x92\x63\xa9\x78\ \xc2\x9a\x0b\x1e\xf1\x0d\xe7\x34\x02\xbc\x19\xaa\x90\x94\x17\x94\ \xb2\xf7\xb1\xd7\x0f\x68\x04\xd9\xf4\xf9\x45\x25\x72\x1a\x19\x0d\ \x6b\x11\x17\x9c\xff\x63\x34\x08\xf5\xcf\x21\x9c\x2a\xf1\xbc\xf5\ \x9e\x3e\x90\x12\x4e\x15\x07\x33\xbf\x3b\x51\x83\xee\x80\xd3\xdf\ \x0a\x93\xa1\xa0\x09\x7a\x03\x59\x88\x12\x31\xc7\x54\xe4\x8c\xb8\ \xc9\x88\x9f\xf0\x1e\x37\x59\x73\xc5\x96\x8a\x73\x2e\x58\x52\x72\ \xc1\x19\xe7\x5c\xb0\xc5\x49\x85\x63\xa5\x83\xb5\x2b\xed\x3b\xc9\ \x44\x7d\x70\xee\x42\xb2\x6f\x28\x04\xe3\x8c\x58\x71\x85\xc2\x30\ \x25\xff\x95\x7a\xbe\x8f\x18\x1e\x19\x8d\x23\x7e\x1f\xcc\xa7\xd1\ \x87\x4e\x9e\x66\x21\x23\xe6\xfb\xcf\x7d\x98\x57\xee\x8f\x44\xd7\ \xa2\xad\xee\x88\x85\x61\xbb\x43\xaa\x3b\x51\x9a\xbc\xc1\x5d\x6e\ \x91\x70\x9b\x29\x1d\x63\x46\x94\x3c\xe6\x09\xf7\x39\xa3\x63\x21\ \x53\x19\xfd\xd5\xf3\x1d\x38\x15\x0a\xbf\x48\xc2\x25\xe2\x8e\xdb\ \xb0\xd9\xa1\x6f\xe1\x68\x32\x0c\xe7\x2c\xb8\x49\x17\x84\xdb\x5e\ \x68\x12\x78\x07\xc6\x8d\xee\x81\xfb\x68\x37\x4f\x7b\xee\xf4\xc0\ \x63\xa8\xa7\x74\x40\xf4\x40\x92\x51\x05\xde\x84\x57\x17\xed\x71\ \xea\x5e\xbb\xba\x11\xec\xeb\x16\xa7\x82\x55\xc4\x94\x02\xd3\x97\ \x2c\xd9\x50\x73\x45\x41\x4b\x02\x68\x09\xd8\x3d\xb5\xd9\x08\xd6\ \x19\x49\xab\xc6\x84\xb8\xe4\x27\xc5\x6b\x01\xf0\x7a\x95\xcb\x2d\ \x85\xcc\x31\xf7\xa3\x57\x2f\x30\xe5\x77\xa8\x24\x67\x42\x9d\x91\ \x0d\x86\x81\x5c\xc0\x13\x76\x9a\x0e\x76\x4f\xa8\xc0\xdf\x61\x4f\ \x46\xcd\x48\xc3\xbc\x56\x9f\x6f\x78\x86\x85\x4f\x81\x0d\x95\x28\ \xa6\x3a\x14\x37\x78\x0f\xc3\x05\x67\x5c\xb1\x09\x13\x7a\xa9\x4c\ \x89\xf8\x81\x83\x29\x73\x4e\xc9\x85\x9a\xd6\x05\xf9\xd7\xbe\xd2\ \xb0\xe2\x33\xee\x70\x0b\x47\xc2\x31\x11\xb1\x68\xa9\xbf\xf4\xb8\ \xe3\xd3\x9f\xda\xf7\xbe\xdc\x30\x0b\x3d\xc8\x2c\xfb\xa3\xd9\x0a\ \x8c\x13\x49\xd3\x68\x28\xed\xe8\x02\x03\xa6\xc7\x3d\xbd\xea\x99\ \x0f\xb3\x8e\x19\x77\x79\x9d\x87\x3c\xe1\x4c\x96\x18\x5a\x52\x69\ \xf8\x65\x18\x8c\x48\x8f\x0f\x05\x7f\x7a\xd1\xdf\xdd\x03\xf1\xe0\ \xaf\x91\x4e\x6c\x7c\xc0\x27\xfd\x1e\xdb\x1d\xa3\xcf\xcc\x27\x26\ \x4c\x59\xed\x9c\xe5\xae\x05\xd8\x0a\x94\xda\x4a\x17\x3d\x91\x9e\ \x05\xb2\x10\x44\x0d\xc6\x67\x9d\xb8\xbe\x4e\x68\x00\x5a\x06\x9d\ \x2a\x3a\x09\x8b\x63\x72\x0c\x57\x42\x15\xf5\x13\x40\x91\x78\x9b\ \x89\x70\x67\xfa\xae\x6c\x27\x86\x70\x83\xa1\xe7\x52\xe4\x60\xda\ \xd0\xb1\xbf\x5e\xef\xe8\x85\x35\x66\x82\x21\x7e\x13\x07\x85\x80\ \xa1\xf4\x81\x3b\x80\xd8\x90\x26\x8c\xa7\x96\x8c\x06\x94\x3e\xf5\ \x94\x3c\x06\x82\x45\x44\xa2\x67\xd4\xc8\x35\xd4\x22\x38\x3e\x63\ \xce\x09\x37\x39\xe5\x26\x13\xc6\xe4\x64\x4c\x98\x33\x11\x9a\x92\ \x09\xc5\x5d\x27\x8f\xa0\x96\x1e\x8c\x15\x10\x27\x91\x93\x68\x18\ \x87\xa7\xee\x5e\x55\x36\xa1\xff\x54\x3d\x50\x12\x1a\x6e\x72\x77\ \xe1\x87\xb9\x90\xdc\x18\x59\x33\xa6\x02\x53\x21\x0a\x43\xd4\xfb\ \x4a\x97\x66\x2f\x18\x6b\xa9\x63\xc0\x31\xe6\x88\x48\x5a\x8e\xc8\ \x38\x63\x24\x30\xbe\xde\xd3\xa2\xe8\xa4\xf4\xaa\x43\x64\xd3\xe4\ \x42\x3c\xdc\xd0\x30\x62\xc4\x0d\xd2\x57\x5b\x2b\x71\xdd\x20\xcb\ \x7e\xa6\xd0\x5f\x92\x9d\xca\x6d\x24\x82\x15\xb1\xec\xe4\x24\xcc\ \x77\x47\x03\x21\x60\xbb\xa7\xfd\xd1\xbf\x0d\x23\xfa\x40\x7e\x39\ \x88\xa6\x63\xc4\x14\x45\x46\x4d\x4d\x23\xac\x59\x27\x88\x85\x6f\ \x08\x74\x81\x9a\xe0\x44\x14\xb8\x0d\x4d\x81\x29\xb9\xa0\x99\x30\ \x61\xce\x4d\x72\xf5\xb4\xb0\xe8\x2b\x18\x62\xe7\x20\xf7\xc7\xdd\ \xbb\x10\x3c\x75\x18\x77\x4b\x24\xde\x74\x03\x01\xb7\x7d\xf5\x11\ \x17\xe6\xc2\x6d\x48\xc8\x9c\x80\x80\x1e\x5f\xc8\x84\x3c\xaa\x44\ \x2f\x24\x16\x77\xba\xbb\x7e\x86\x58\xa2\x9a\x6f\x42\xd7\x41\xea\ \xd3\x60\x18\x73\xc4\x4d\xa6\x1c\x51\x72\xca\x5b\x1c\x7d\x96\x0e\ \x84\x04\xbf\x87\x21\x86\xa5\xba\xda\x83\x60\x5c\x58\xf4\xd1\x1f\ \xd8\x48\xc6\x94\x7b\xc1\x0b\x1f\x24\xd5\x40\x37\x1b\xf9\x8c\x6e\ \x87\xa0\x13\x89\xb4\x93\x47\x13\x46\x74\x6c\x05\x65\xaa\xd1\xb4\ \xc4\x32\x4a\xd5\x85\xc4\xdf\x8a\x80\x4a\x3f\xa2\xdf\xef\x84\xf3\ \x25\xfa\x4d\xde\xe1\x16\x96\x8a\x31\xc7\x2a\x0e\xe9\xf8\x0b\x64\ \x96\xcf\x1a\x6a\xf2\x07\x3a\xfe\x75\xfe\xdb\x22\x80\x74\x51\x20\ \xa8\xea\xb0\x2f\xdc\x05\x1d\x01\x27\x00\xbe\x97\x5f\xcd\x98\x0a\ \x27\xcb\xfb\xfd\x5e\xc3\xde\x85\x69\xf0\xfe\x6a\x39\x99\x1b\x76\ \xa4\x68\xc6\x20\x33\x21\x91\xf0\x40\x7d\xd3\xbf\xa2\x91\x45\xb9\ \x09\x39\x09\x1d\x6b\x5a\xc0\xb2\xc5\x12\x93\x11\x91\xf0\x06\x6f\ \x70\xac\xfc\xf6\x8e\x68\x00\x24\x7e\xcf\x3c\x42\x0d\x26\xb5\xaf\ \xb3\x6c\xbf\x35\xc1\xc8\x3d\x2d\x04\x58\x3b\xa7\xe5\x98\x5b\xbc\ \x87\x96\xbb\xbf\x11\x02\x61\xaf\x5c\xdb\x8a\x30\x67\x22\xfb\xfe\ \x90\x49\x11\x4b\x1e\x26\xcf\x7b\x95\x90\x48\x7e\x8a\xa3\x0e\x72\ \xaf\x7d\x5b\xa0\x0d\x2c\x5d\xdf\x02\x98\x91\xff\x5e\xef\xa9\x52\ \xf1\x43\x38\x4b\x50\x5f\xec\xeb\x56\x5e\x6f\x88\x48\x3a\x57\x5a\ \x66\x6f\x1e\xb2\xe6\x8c\x2b\xf1\xf7\x4a\xf6\x7b\x59\x69\xe4\x1a\ \xe9\x74\xed\x94\xd5\x77\x5d\x57\x2b\x10\x4f\x8a\x93\x8d\x5e\x26\ \x5c\x37\x4b\x5f\x1b\xb7\x52\x67\xb4\x61\xa7\x93\x43\x93\x71\xc4\ \x31\xe3\x8f\x7e\x04\x43\x28\xf4\x3d\xf3\x9c\x45\xa2\x4a\xb8\x2a\ \x48\xdf\x7b\xc6\x5b\xa4\x5c\x61\x18\xf1\x40\x38\x39\x8d\xec\xca\ \xc8\x85\xc1\xd0\xff\xf3\x48\x3c\x8b\x97\x43\xd1\x83\x0e\x18\xd2\ \x18\xb4\x01\x6f\x70\xd2\xf2\x27\xcc\xfb\x76\x01\x97\xea\xe1\xdf\ \x09\x23\xcc\xde\x58\xf4\x0f\x77\x22\x06\x82\xac\xd7\x69\xd2\x0c\ \x83\xa8\x87\xcc\x22\x4e\xb9\x29\x0c\x89\x73\x96\x5c\xb0\xa0\x94\ \xe6\xe1\x2a\xe4\x1c\x29\x63\x32\x8e\xe5\xc0\x37\xb2\xea\xd2\x48\ \xb5\xb9\x73\xc0\xbe\x15\xe0\x67\xfd\x52\xe9\x5e\x79\x3d\x19\x8f\ \x52\x38\xd1\x92\xf0\xad\xc2\x11\xd1\x3f\xb2\xb7\xe7\xe5\x87\x3b\ \x11\x7b\x55\xe7\x75\x31\xa5\x1b\x70\x1e\x32\x01\xe8\x73\xc9\x1e\ \xe7\x2c\x98\xb0\xa4\x11\xcd\x38\x4d\x4b\x21\xa0\xaa\x41\xf1\x84\ \x86\x2d\x05\x55\x90\xd9\xeb\x35\x65\xfc\x36\xcf\x58\x82\x63\xc9\ \x56\x10\x87\x3e\x29\x8b\x06\x5d\x15\x2d\xc5\xf7\x84\x09\xe6\xf3\ \x97\x49\x17\x5f\xea\x97\x1e\x5c\x0d\x77\x4d\xb6\x6e\x07\x93\xa3\ \x51\xd8\xd7\xeb\x4f\x4a\xca\x9c\x98\x93\xa0\x2f\xe8\x04\xaf\x58\ \xb3\xa1\x92\x45\xca\x95\xc0\x70\xbd\x3e\x6d\x8f\x3e\x18\xf9\x0a\ \x23\x73\xe0\x89\xb4\xf4\xac\xd4\x2f\x91\x34\x95\x7b\xc3\x4c\x38\ \x61\x8e\xf9\x7c\xa8\xb8\xfc\x03\x5f\x8d\x67\x7f\x43\x13\x42\xa1\ \x8f\xf3\x3e\x90\x25\x12\x49\x12\x19\x5f\x50\xb2\x6f\xcf\x6b\x90\ \xcc\x89\xb1\x94\xb2\x35\x67\xc5\x13\xce\x59\x4a\x53\xf7\xb1\x30\ \x61\x2a\x69\x0c\xf7\xd4\xa3\x96\x9a\x0c\xcb\x8d\x80\x4f\xf8\x39\ \xaf\x42\xb2\x4d\x88\xc8\x85\x4a\x76\x9d\x3e\xd6\x2b\x19\x62\x5f\ \x6f\x50\x13\xbf\xaf\xbf\x52\xe1\x12\xa8\x00\xc6\xd8\x20\x7c\xb1\ \x13\x66\xb2\x82\x2a\xf5\xbb\x9d\x3a\xd9\x84\xd0\x85\x5c\xb4\xa2\ \x22\x65\xcc\x94\x11\x35\x5b\x40\x73\x2a\xcb\x2f\x4b\x16\x58\x96\ \x9c\xb3\x92\x45\xec\x17\x54\x92\x2b\x28\x26\x68\x96\x1c\x91\xcb\ \x38\x53\xc7\x5a\xf2\x0c\xef\x80\x73\x8e\x38\x51\x6a\xa0\xa5\xf5\ \x3c\x53\xbc\xec\x89\xb8\xa7\x0e\x74\x08\x19\xd0\x8b\x86\x32\xf3\ \xee\x29\x2d\xec\x9e\xd2\x97\x88\xa7\x6f\x43\xc9\xec\xe9\x87\x69\ \xd0\x27\xf2\xe8\x56\x2e\xa3\xd2\x39\x6b\x19\x6c\xac\x64\x80\x1e\ \xe6\xdc\xe4\x26\x73\x26\x41\xb0\xa7\xa3\xc0\x11\x93\x10\x93\x89\ \x84\xcb\xcb\xfc\x7a\xe9\x84\x4a\xb1\x2f\xc1\xb9\x23\x79\x74\x1c\ \x4a\xb9\xee\x84\xbb\x86\x22\x7e\x7d\x6f\xc4\x48\xe4\x6f\x02\xb1\ \x70\x47\x34\xd5\x24\xcc\x85\x99\x63\x85\xc1\x35\x92\xe9\x6e\xdf\ \x80\xbc\xc9\x09\x53\xb2\xf0\xf1\x46\xae\x62\x4c\xc2\x84\x23\x66\ \x5c\xaf\x9b\xf8\x03\x3b\xcb\x43\x45\x73\xb5\x57\x14\xbb\x3d\x49\ \xd7\xfe\x65\x74\x01\xc8\xeb\xcd\xe7\xa4\x17\x6a\x24\x39\x66\x6f\ \xd1\x80\xa5\xa1\xa0\x94\x6d\xf4\x8d\x94\x52\x7e\xbb\x68\x3f\x36\ \x19\x63\x45\xde\xad\x91\xcf\xf0\xdb\x7a\xe6\x4c\x7e\x7f\xbd\xb8\ \xe4\x0f\x74\x35\x74\x20\xef\xf1\x14\xc8\x62\x0f\x8c\x74\x08\xe1\ \xd8\xd0\x1b\x47\x66\x00\xca\x20\x9f\xa4\x82\x08\xdf\x4e\x61\x7d\ \x4d\xcd\x9a\x2b\x2e\xb9\x92\x1d\x7f\x8e\x88\x94\x9c\x99\x9c\x85\ \x2e\x68\x14\xee\x24\x1c\xfd\x10\xf7\x84\xe4\x23\xf5\x52\x97\xe3\ \x25\x37\xc9\xeb\xb0\x16\xd9\xee\xe9\x58\x76\x07\x9b\xb9\xd5\x1e\ \x1f\x13\xc9\x2f\x08\xe2\xbe\x16\x4d\x49\x4d\x23\x0b\x70\x7d\x7f\ \xa2\x15\x2e\x8c\x47\xba\xcf\x28\x44\x66\x61\x43\x8b\x0e\x9c\xaa\ \x8c\x09\x39\x26\x6c\x5d\x42\xa4\x15\x94\x50\x47\xe6\x9c\x32\xdd\ \x23\x2f\xfe\x28\x86\xd0\xbf\xd7\x1f\x22\x44\x0c\x33\x40\xb0\x15\ \x87\xe2\xe0\xd7\xa9\x99\x76\x03\x85\xbb\x3e\x45\x2e\x64\x02\xdc\ \x6b\x0f\xd8\xb0\xdc\x72\x23\x27\xa6\x14\xbe\x5e\x2a\x53\x66\x5e\ \x0c\xcc\x57\x28\x06\x47\xc5\x96\x2d\x85\xd0\x0a\x27\xdc\xe6\x0e\ \x93\x5f\xeb\x17\x48\xab\x5f\xd9\x10\xa0\xd0\x5f\xe8\x0f\x87\x6d\ \x5f\x06\x70\x8d\x0a\xb3\x3d\x6e\x0f\x28\x75\x83\xc9\x52\x17\xe6\ \x7e\xa6\x34\xa2\x49\x50\xe1\x68\x58\xb1\x62\x49\x2d\x0c\xbc\x5a\ \xd2\x6d\x2b\x4a\x32\x31\x23\x19\x75\x8e\x24\xaa\x20\x1f\xf3\xaa\ \x43\x05\x23\xc0\x30\xe6\x98\x39\xe9\xe7\x6a\x0f\x48\x7c\x81\x6b\ \xbf\x7a\x29\x58\xc6\x52\xb1\x72\x57\x2c\x44\xb9\x23\x0a\x44\x9c\ \x7e\x21\x95\x19\x64\x8d\x2a\x38\x57\x7f\xf8\xfb\x55\xb8\x8d\x6c\ \x7d\xee\x64\xf2\xb7\xa4\xa4\x65\xcd\x8a\x73\x16\xa2\x5a\xec\x44\ \xe6\xb9\xef\xc7\xfb\xb9\xb1\xa9\xc8\x05\x26\x61\xbd\x89\x1f\x72\ \x29\x69\x48\x89\x38\xe2\x5f\xf1\x0b\xde\x7d\x7f\x74\xef\x45\xa3\ \xc5\x2b\x46\x0d\x70\x77\x7b\xe7\xd8\x4a\x71\xa5\x06\xad\x20\x78\ \x7a\x99\x04\xa1\x26\x1c\xee\x4f\x71\x54\x72\xae\x22\x69\xff\xb4\ \x34\x8c\xa4\x87\xea\xcb\x29\x42\x87\xd3\xc9\x28\xa6\x9f\x32\xac\ \xe9\x68\xc8\x24\x1d\x2f\x45\xba\x2f\x41\x91\x73\xcc\x8c\xe4\xde\ \xcb\x5d\x8b\x57\x32\xc4\xae\xd6\xac\x65\x3d\x91\x1e\x90\xc9\x7a\ \xfd\x07\x0d\x07\x7b\xba\x86\x86\xf0\x90\x59\x23\xe6\x74\x03\xfc\ \x33\x91\x53\xd6\x0d\xb8\x15\x9d\x2c\x2e\x48\x05\xa1\xb4\xd2\x0f\ \x89\x84\x13\xb3\x11\x36\x44\x42\xe4\x37\x94\xff\x3a\x7e\x85\xf7\ \xf3\xca\x86\x20\x4c\xd8\xc5\xc2\xab\x69\x05\x4c\xd1\xb2\x1f\x67\ \xa8\x83\xbc\xaf\xda\xe0\xeb\xc5\x7e\x59\x54\x2b\x79\x45\x24\x9a\ \xc6\x99\xd0\x8a\x7a\x30\xcf\x67\x13\x0d\x0c\xba\xf3\x0a\x84\x5c\ \x5c\xc9\xd0\x82\x01\x26\xbc\xc6\x2d\xf2\xcf\x79\xe6\xce\x84\x1f\ \xd0\x10\xea\x9e\x0a\x63\x91\x76\x80\x51\xf6\xfb\x90\x5c\x80\xd2\ \xf6\x2b\x54\xb5\x57\x07\x6a\x60\x36\x68\xc9\xb4\x74\xc4\x8c\x85\ \xde\x6a\x64\x67\x43\xbf\x97\x2f\x61\x44\x2b\xe3\x6b\x3b\x31\xd8\ \x2a\x84\xc8\x9e\xf1\x7f\x83\x37\x99\x7f\xa6\x9f\x41\x88\xfd\x41\ \xa3\x06\x83\x89\x70\x5f\x21\xf4\xe9\xb2\x47\x9a\xfb\xb3\x61\x07\ \x7b\x9a\x14\xfb\x8b\xca\x5c\x28\xd9\xd5\x8e\xdb\x49\x47\x1a\xea\ \x52\x9f\x38\xf5\xcc\xcb\x3a\x40\x32\x3d\x89\xb8\x27\x26\x39\xd9\ \xe9\xe7\xab\xdb\x9c\x3b\xdc\x22\xfd\x8d\xbb\x46\xda\xf7\x07\x3f\ \x11\x2a\xd8\x3f\x96\xa1\x14\xff\xc4\xa2\x41\xa6\x61\xd9\x57\x42\ \x1c\x6e\xe3\x73\x83\x31\x07\xcb\x50\xf8\x4b\x09\xf3\xba\x11\xfe\ \x6d\x2c\x86\x68\xc2\xf9\x4a\x43\xfb\xc6\x89\x43\xed\x04\xe2\x51\ \x44\x64\x9c\x48\x22\x45\xd8\x32\xfa\xe3\x5e\x8d\xa0\x62\x6c\xc4\ \x59\x35\x32\x5e\x9c\x0d\xea\x8f\xe1\xda\x4a\xbd\xa7\x8d\xbb\xe3\ \xe0\x45\xec\xd6\xa1\x29\x81\xd9\x6c\x60\x60\xf7\x2a\xc9\xdd\x01\ \x19\xd9\xc9\x89\xb2\x62\x8e\x5a\x96\x1a\xa6\xcc\x99\x91\xa8\x97\ \x6c\xe8\xbe\x6a\xad\xb1\x93\xe8\x8f\x49\xc8\x44\x12\x29\x62\x4a\ \x4e\x21\xf9\x5e\x3f\x3c\xdd\x2b\x9f\xfa\x5e\x44\x24\x29\xd8\xae\ \x8b\xd1\x27\x65\x56\xc0\x7c\x27\xe4\x0f\x47\x25\xd8\x63\xaf\x74\ \xec\xf9\xd4\x1b\x09\xd8\x08\xb8\x57\x07\x66\xb7\x23\xe1\x94\x9f\ \xf2\x9a\x0c\x4d\x1f\x2e\xb0\x50\x3f\x5e\xd4\xe8\x67\x32\x62\xd2\ \x40\x2f\xad\x45\x97\xb8\x17\xed\x4b\x84\xd5\xdf\x4b\xf1\x9a\x70\ \x36\x5c\xd0\xad\x66\xb0\x43\x41\x05\xb2\xea\x90\x4c\x62\x65\xdd\ \x4d\x33\x18\x73\x69\x82\x78\x5b\x3f\xf4\x38\x62\xc2\x9c\xec\x33\ \x33\xd8\xdc\xe3\x7e\xec\xf0\xd9\x17\xd8\x31\x31\x19\x99\x34\xde\ \x4a\x2a\x12\x29\x85\xfd\xbf\xb9\x64\x85\x3b\x3e\x6e\xb4\xb7\x9a\ \x46\x0f\x4c\xd1\x5f\xa9\x36\x0c\xad\x74\xe2\x10\x2b\xa9\x37\x1a\ \x69\x05\xb7\xf2\x7f\x23\x54\xf9\x88\x88\x11\x47\x9c\x70\x4c\xfa\ \x9b\x67\x13\x41\x7e\x50\x43\xb8\x3d\xb4\xb8\x4f\x75\x3b\x4a\x79\ \x79\x6d\xd0\xd4\x37\x18\xe9\x3c\x45\xc1\x11\x12\x98\xb8\xec\x65\ \x99\x0c\x16\x5b\xba\x60\xba\x56\xce\x85\x4f\xbf\xbd\x5a\xaa\x5f\ \xde\x5e\x51\x88\x57\xe9\x48\xd0\xa4\x4c\x38\xe6\x58\xe8\xe6\x1d\ \xea\x15\x62\xc6\x2b\x5e\x8d\x7e\x05\xa5\x97\xfd\x6e\x45\x0e\xd6\ \xc9\xf4\xb6\x93\x37\xee\xe9\x22\x91\xb0\x2a\xa3\xbd\x36\xdd\x4e\ \x65\x12\x38\x58\x80\xb8\xbb\x3a\x48\x17\xa3\xa3\xa1\x60\x45\x25\ \x6c\xfd\x62\xb0\x7f\xc9\x2b\x0b\x4d\x99\x92\xfc\x7e\xc7\xa0\x74\ \x2f\x1d\x37\x5e\xbe\xd6\x08\x75\xa6\x91\xdd\xbb\xde\x3f\xf4\xe6\ \xe9\x04\x52\x6f\x05\x27\xf0\x53\xe6\xbe\xa9\xdb\x53\xce\xa2\xd0\ \xb5\xb4\x92\xa1\xee\x66\x7f\x9c\x9c\xae\xdd\x32\xe4\x35\x50\xb1\ \x65\x2d\x27\xa2\x5f\x26\x60\x24\x6c\x66\xa2\x7f\x13\x7f\xa4\x0e\ \x62\xd4\xdf\x20\xc5\xd6\xc1\x59\x76\x32\x4a\xd0\x0a\x66\x69\x25\ \x9d\xd2\xa1\xfe\xf0\x49\x50\x26\xdb\x12\x9c\xb4\x89\x23\x52\xa9\ \x33\x1a\x59\x73\xde\x27\x69\x8d\x24\xd4\x05\xb0\x61\xcd\x1a\x4d\ \xc9\x5a\x88\x20\x3b\x69\x60\x25\x52\xc4\xa9\x68\x6d\x9a\x01\x26\ \x62\xff\x76\x45\x57\xbf\x33\xcd\x88\x92\x59\x1c\x9a\x3b\x9d\xd4\ \x10\x56\x00\xfc\x3e\xf1\x49\x05\xa1\x56\x02\xed\x2b\x61\x34\x34\ \x72\xe3\x9d\x74\x2a\x6b\xd9\x93\x50\x00\xa5\xb0\xf2\x3d\xac\x57\ \x0b\x60\xe7\x45\x47\x8d\xf8\xa2\xa7\x89\xf2\xee\x60\x01\xef\x0f\ \x60\x88\xa1\x7b\xdc\x29\x9b\xfa\x43\x5c\xa2\x65\x69\xba\x95\xb2\ \xa7\xa6\x46\xcb\x0c\x76\x23\x8a\xb7\x1e\x48\xa9\x65\x54\x35\x15\ \x78\x35\x21\x61\x11\xbe\xd6\xca\x89\x68\xd1\x82\x48\x79\xde\xe4\ \x15\x4b\x6a\x99\xfc\xed\xb3\x58\x9f\x95\xf4\xdb\x04\x73\x51\xcc\ \xcd\xb8\x2d\x43\x94\x4a\x68\xa6\xee\x87\x86\xea\x54\xc0\x79\xf4\ \x60\x25\x25\x03\x8e\xad\x21\x16\xf5\x28\x1d\x6a\x91\x2e\x50\x47\ \x54\x98\xea\xf3\x12\x49\x7d\x83\xb6\x1f\x3b\xb0\x92\x84\x69\x59\ \x6b\x6d\x25\x44\x76\xa2\x6b\xeb\x85\x9e\x0b\x3a\xe9\x86\xd9\x30\ \x2e\xe1\x2f\x52\x27\x2e\x3b\xe6\xfb\xfd\x8a\x9e\xe7\x16\x9f\x3e\ \x21\x84\xbd\x6b\x3d\x01\x3c\x95\x26\x8d\x77\x8d\xad\x88\x26\xfa\ \x99\x2c\x8f\x47\x55\x61\x74\xc0\x61\x44\xbf\xce\x0f\x92\x20\x6a\ \x44\x91\x9c\x26\xa4\xcd\xd7\x70\xc9\x8a\x95\xcc\x73\x55\x58\xaa\ \x81\xe9\xbd\x77\xf0\x17\xc9\xf3\x71\xd3\xff\xf0\xa3\x19\xe2\x90\ \x8c\x2c\x9c\xa8\x4f\x7b\x9c\x40\xef\x7d\x9e\x16\xf9\x95\xbe\x2a\ \x30\x52\x23\x74\x41\x72\x7e\x2b\x25\x92\xe7\x4d\x8c\x38\x0a\xfb\ \xc2\xbd\x21\x12\xa0\xa4\x61\xc5\x15\x2b\x6a\x61\xdd\xd6\x92\x52\ \x39\x69\xfb\x1b\x51\x2b\x8d\xa5\x57\x52\x13\x7b\x1d\x8a\x2f\x7e\ \x34\x43\xec\x17\xdf\x04\xd2\x46\xdf\xb9\xe8\x8f\xb5\x92\xcc\x31\ \x91\x50\xd8\x4f\x73\x69\x31\xc2\x8e\x51\xe9\x27\x34\x3a\xb6\x6c\ \x89\x29\x88\x45\x6a\xd3\x57\x25\x33\x5a\xb6\x2c\xb9\x64\xc1\x46\ \xb6\xce\x56\x92\xa5\xd8\xa0\x33\x61\x84\x4b\x67\xa4\x6d\x68\x84\ \x4d\xa1\xf9\x91\x0d\xc1\x60\x8f\x96\x0e\x3d\x8d\xbe\xba\xec\xd9\ \x29\xb1\xf4\x34\xfb\x1b\x6f\x05\x4a\xab\x83\x06\x80\x96\x36\x7e\ \x2b\xca\xd6\x4a\x9a\xbe\xb1\x78\x0e\xc7\x94\x8a\x25\x4b\x56\x6c\ \xc4\x5d\x36\x61\x72\x18\xd1\x3e\xd2\x03\x95\x81\x26\x94\x76\xd9\ \x8f\x6b\x08\xb7\x47\x1e\xb3\xd4\x1f\x64\x5f\x40\xf7\x49\x23\x47\ \xd4\x0d\x1a\x74\x7e\x9b\xa2\x7e\x4a\x70\xa5\x0e\x07\x1a\x61\xcb\ \x1a\x99\xd6\xea\x58\x8b\x98\x78\x22\x18\x65\x2a\x02\x7b\xb5\xb0\ \x5f\x90\x3c\x03\x21\x94\xf5\x1a\xec\x4a\xce\x99\xef\x8d\xf8\x7a\ \x27\x82\x1f\xd3\x10\x7d\x82\xe2\x6b\xbe\xd5\x1f\xdc\x67\xe6\x37\ \x3d\x10\x12\x53\x85\xd0\xba\x5b\x45\xd9\xc9\x74\xae\x3f\x07\xad\ \x9c\x1f\x23\x88\x55\x5f\xbe\x57\x28\xa9\x1a\x2a\x59\x8e\x57\x0d\ \x56\x0f\xda\xbd\x15\x44\xbb\x2c\xf6\xb0\xb3\xe6\x13\xb0\x5e\x6e\ \xf4\x47\x33\x84\x93\x14\xd8\xa0\xa9\xf9\x8b\xfb\x9a\x2d\xff\xee\ \x93\x63\xa9\xf9\x5a\xd9\xba\xaa\x84\x41\xe7\x24\x7a\x6b\x12\x2a\ \xb6\x28\x51\x83\x4b\x24\x1c\x5a\x3a\xe2\xa0\x20\x13\xcb\x46\x56\ \xbf\x18\xc2\xca\x49\xe8\x85\x76\x86\xab\xb6\x75\xc0\xc3\x34\x3d\ \x4f\xbb\x0f\xd2\x9d\x44\x27\xaf\xaa\xa8\x9f\x8a\x6b\xdf\xcd\xf6\ \x78\xce\x98\x82\x7b\x6a\x99\x6d\xcd\xa5\xfb\x33\x7f\xe2\x5b\x7e\ \x4a\x45\xf5\x89\x0d\x9e\x82\x01\x04\xa7\x43\x36\x69\x44\xf0\xa6\ \x8f\x34\xdd\x80\x07\xd9\x4f\x62\x79\x44\x61\x26\xe2\xbd\x9d\x90\ \xc8\x75\x58\x26\xc1\x80\x4e\x60\x0e\x74\xaf\x76\x25\x7b\x26\x84\ \xb3\x5e\xdc\x75\x58\xb6\xbd\xc2\x89\xd8\x0f\x90\x3b\xce\x91\xc3\ \xb2\x70\x0b\x2e\xf8\x67\xfe\x09\xc5\xbb\xfc\x9c\xe3\x01\xbc\x46\ \xc8\xe4\x7a\xb3\xf4\xb1\x21\x11\xd8\x2d\x92\x1a\x40\xc9\x8a\xed\ \xed\x20\xb8\x36\x02\xb3\x19\x72\xb9\x2e\x5d\xd8\xe5\xea\x06\x68\ \xa6\x19\x0c\x1e\xa9\xbd\xde\x3b\x42\x27\x88\x48\x19\xc9\xc6\xa8\ \xe1\x93\xfe\x1e\x99\xe5\x2e\x3f\xef\x28\x3e\xa8\xfe\x70\xc9\x1f\ \xf9\x92\x33\xfe\xcc\x25\xbf\xe0\x7f\xe5\x5d\x52\xb6\x94\x32\x82\ \x14\x0d\x58\x6c\x04\x69\x1c\x5f\x1a\xa7\x02\xca\x27\xc2\xa0\xf4\ \xdc\x88\x9d\x80\x8f\x4f\xd5\x1f\x61\x84\x79\x5d\xcb\xa2\x80\xbe\ \xfe\x70\x62\xd8\xe1\xe2\xc4\x43\x05\x2c\x47\x25\x9a\x65\x89\x08\ \xba\xb8\x01\x14\x7c\x1d\xf3\xef\xa5\xa8\x43\x16\x47\xc5\xa5\x7b\ \xc8\x39\x5f\xf2\x57\xbe\xe6\x9c\x98\x9f\xf3\xbf\xf1\x26\x0d\x2d\ \x0b\x59\xe6\xa0\x83\x7e\x84\x0a\xab\xb2\x75\xc8\x34\x7a\x8a\x7a\ \x22\x99\x42\x44\xc4\x56\x8a\xea\x2a\xc8\xff\xf5\x88\xb4\xa7\x79\ \x58\xe9\x7c\x31\x70\xc1\xc3\x85\x73\x7a\xef\x74\x20\x9a\xa7\x8a\ \x8a\x52\xe8\xa6\xfa\x80\xc0\xf2\xca\x27\x42\x63\xd9\x7e\xb0\xfe\ \xc3\x05\xdf\xf0\x15\x0f\xb8\xa4\xe2\x92\x4b\x7e\xc2\xff\xc9\xbf\ \x25\x66\x03\x32\x97\xa3\x65\x34\x69\x08\xe9\x32\xe8\x7d\xba\xc0\ \x91\x31\x52\x76\xc5\x14\xc2\x89\x69\xc2\x10\x5a\x3c\x10\x57\xf1\ \x9a\xa8\x2a\x4c\x10\xab\xc1\xe2\x6b\xb5\x17\x3a\x77\xff\xa4\xd2\ \xf4\x6b\xf6\xb6\x52\x3f\x8b\x29\xfe\x12\x86\xa8\x59\xb8\x6f\xf8\ \x0b\x8f\x38\xe3\x9c\x0d\x35\x4f\xd8\xf0\x26\xff\x3b\x3f\x93\x8d\ \xcb\x88\xcc\x8a\xf7\xd6\xf1\xc1\x8f\x8c\xf7\xdc\xd9\xee\x29\x6a\ \xf9\x68\x47\x41\x2a\x93\xfa\x8d\x34\xfd\xeb\x80\x5e\xec\xc8\x24\ \xf6\x29\xb2\xda\xee\x3c\x0c\x77\x91\x97\x72\x36\x5b\x16\x3c\xa4\ \x70\x37\xdf\x4f\xee\xc5\x83\xc7\xfa\xca\x08\xd5\x63\xf7\x0d\xff\ \xcc\x1f\x45\x16\x53\x73\xc1\x97\x8c\xf8\x3f\xf8\xbf\x48\xb8\x12\ \x3c\xb0\x92\x2f\x31\xd2\x89\x3a\xfc\x56\x36\x60\x01\x3b\x49\x0c\ \x2b\xd2\x1b\x37\xa9\x99\x30\x66\xcc\x39\x89\x2c\x1c\xd1\xa2\x38\ \xd5\x84\xb0\x69\xaf\xd9\xd8\xd6\xb7\x15\xf7\x4f\xc4\x56\x46\xe7\ \xd6\xdc\xe3\x02\xf8\x8f\x5f\x4d\x98\xaa\x68\xaf\x0e\x7a\x09\x43\ \xf8\x36\x6b\x73\xd7\x7e\xfc\xff\xf0\x47\xfe\x2c\xd4\xe0\x46\xda\ \xef\x6f\xf3\xaf\x70\xac\x83\xb0\xa7\xef\x53\x44\x68\x6a\xb1\xe1\ \x6e\x3f\x67\x3b\x98\xc1\xe8\x84\x89\xb9\x3b\x11\x09\x15\x23\x66\ \x1c\xb3\xe4\x88\x05\x5b\x1e\xb3\x64\x1b\xe4\xc5\xd5\xde\x4e\x7a\ \xb5\xa7\x4d\xa0\x44\x21\x64\x5f\x46\x32\xa6\xa6\x60\x4e\xc6\x82\ \xff\xca\x37\xac\xf9\x37\xfc\x9d\xbb\xa1\x7a\xe5\x55\x2d\x2a\xb9\ \x2a\xd0\xd2\x77\x5b\x67\xaf\xc9\x23\x2a\x56\xce\x6b\xdd\x3f\x66\ \x41\x49\x1b\x10\x24\x98\x73\x2a\xea\x3e\x26\x88\xa3\x20\xd9\xc2\ \x7e\x57\x0b\x49\x88\x6d\x20\x07\x0c\x57\xd2\xfa\x29\x8d\x2c\x34\ \xf0\xfc\xc0\x5a\xce\x82\x95\x88\x67\x94\xc1\x59\xda\xf0\x3d\x76\ \x6d\xc2\x61\x66\xa9\x42\xae\x59\x0b\xeb\xaa\xa5\xe1\x82\xc7\xfc\ \xdf\x9c\x63\x79\xdf\xcd\x19\xa9\xdd\xf0\x33\xd2\x5e\xec\x88\x04\ \x40\xba\xbe\x17\xf6\x3f\x00\xe1\x00\x14\x01\xde\x26\x16\xb2\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x08\ \x0b\x77\x5a\x87\ \x00\x68\ \x00\x65\x00\x61\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/graphicsview/dragdroprobot/images/0000755000076500000240000000000012536324427024402 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/graphicsview/dragdroprobot/images/head.png0000644000076500000240000003517412536324427026023 0ustar philstaff00000000000000‰PNG  IHDR„±¯úÝ2 pHYs  šœtIMEÖ 1ǬbïtEXtCommentCreated with The GIMPïd%nbKGDÿ‡Ì¿9äIDATxÚÕ½Ù²]ǵžùeælW»÷6ö$¨ÆuŽaYòEÕE]TÑዺ&zêÈGAz1ê®®|ŽãÔ)GXMQ‰nw«}¦/rÌ\s-l I… ’v·Ö˜™£ùÇ?þ¡Vü¸¿Üà÷*ü,J~?üSKÄ*ÚÛßrý&þ›ü¦¡ÃÞîÅhÀá¾›Ú3ùÿÔ†ð/ÛÉ[wh–NŒÒ|zñIAMʘˆ’5[  KBNR&ä*ó)ù êà'½¼!"þf¿ú °h:Ê·¿­±T”lQ¤(6\²$&§âŠ ´hbræ»9¹Êä­*9ßï×ßÐjp„- ÕÝò«K.¨èhØrÌ1s ÎØbÑ”Â{…š(ÝŠûl8£`Â)34[V¬(©)i8cƒá˜1-– ‡j)w˜sÊ ã÷Ó{æ{;ËèÕßœzêö·¿CÉSâÀU¶4¿Ý²¡ä>–c4†+6\±fË–%%WL™Óð˜MLÓÇ"fL€kÖÌ¿š1W™D!ÿ Å8ÓáD¸gXÜI6àõAN NDÍ…[RrÎC.°Œ¸ÁGƒC³á‚J¶T(b4-çĤ¤ÄnbÑDdœð&·xSŘðÊÜÞ[ý>bß$>j µ³èËô¤÷í Gõé9ç”<àK"rÆ(Ö,hHI¹â!”4X,s::¬¸£¦E¡cÙ²’kæœñ¸ã_ëφµ÷P†g÷zc|Ï1¼—í .”w·_­QÄŒ/''ŽCÉc÷5Ùð˜‡$Üæ„–K&Ìø†%¬°D$Ĥ(Œ˜ ¢¢!fLLKÍ‚ˆ„H¹ÍÞá„rr•`°rU†y†į%j¨p,MzO« kwÁùñÈ3U1›ýákι✠@±à15Ç8žðßh±@BŒO©3r ¢Aai©Ù°Áˆò—§¥æœ†)-ÇŽnχ¹ç†Øè‡ˆJn¯¥¸»øªÆ h¹ñYÅš %…ËxÌ=îÓ²á –9Ž+¶l™qÎ_)1$h% Z&Œ¨±l(GMEA‡&#FÑáHq@‰áK&œò:c J.Õ¾³þQœ¥“<±/†b*ÎÝ7¬pT,¹CÁŠHH1¬y EÁ59QpÉ’––Š’šËƒ¦¥¤)–އ&Âà€„Œ”ˆŒœ-G¼ÅÿÂO9QÑÀG¸§jõCžŸÚ¶t·ŸÚcÇDUÿà]ÇßrÁ–+j11ÐQa©ØpŒâ„#žðgjŽhزdCCLΈ†ŠŽ‹•$Ìh4TòÒc:-% äœÇÜ ý‡Ñ¯ŒD,÷}󈧔'_àÐ@MqÑ·””t”nÉ#qƆ Ë)–’’j7˜2¡eÉ–ˆ ÿšœÿ!bBÉ_h¨QdŒ¤æ¬hhHȰTtäD8"2 d‰Ââè˜0"aLDFÄ’ÇŒ~ÝÍï©g„Jõª>B…ÌÀíýM{ws\R³aAÁ’K³¢ÿü˜–‚5š1cFh6¬YÑ1"å”oYr¦fIAÃa)é¨IØbéÐq“q@,*ŽòÑ CK‡"''!ñÎôž¼aõ}N„º¦zTÁ·Tw/¿zÌšŠ+ÎXà¸bAKŒ¢¤ ÀÒÐ)3f,éÄ$¤ä8þÊcŠkÉ –š––” |&¡@)Ðbé°’¾¥€ÆÒ±e*¯;%¥qwTDô¹eô2.R…ÿÖ¬ÝC.9gKÁ%glQÊ]®Y±!E3"!&B±a%?ÐGÿŽoYÒá(YâÈ«ð~@9 ˆÈ‘’°ÀS±¡ÅRÓ¡p$Ä@KÍEÁW\rƒ­›2#W&¤ÝßÛîàOK÷¯ØRR³æ’ jÉ §(bFÄ”\°"Æï]Ó°%f̆FpEC…!&Æ Y‰Ù·ŒˆéèØÒÑRáäÍ»AM3%’ïÜÐpÉ‚7xÓßå™k¬—4„ü×ÊŽµ{È}.äG®YQ`¹ ‘€8bDÊ-*ñð%„—­1lËÈP8R ÃËŠPr™ZÉ|D‰€Œ)[y(-Vª’þX6´Œi1ÄE¨ƒ*è á¦Ð’9l.ñ tl(Ù°¡ ¥ÄaqÌœC"a²¤¦%¡#&#`¦À‘`€ŽN®Ï"4·H+Z4Іš‚˜…¦¦¡“¼Â1&a+>%ÃQ²å&íÀ¯}ïðé¿Jþ_ŸqA…¥àR`ÿì #nq›œ’ -%k"RcNH¨YSÒbh€ŒšŘ’˜D 70lIŽ…¡Æ`ˆ‰è¨X3¡¡¢eCGMJ‚Xu4T|IÄ)S§Õî´¼rÔØAåþÐmï^~õ„‚Hꊊ…Ô€- ·x“c4KÎXp‹†’È™0fƈ1°AÓ±49àˆP"©^[[JZ** Ý·ØàÈX±%eƒ–Sqņ9šD¢†"BsÁ=2"7Wì]ë`„èÅ¢…7HÃú«sžpÉš†BRá‡!ç·¸…b-)ŽÏcbÆœpÄ) K´œ T8IÕTcA¡q(24-s" 11ÐaéhÑ‚Pt8j‰8±À½K.9,ü{E 5¸–êÓ5+–\±¦¡£¹J ¦ò,½c­%Î'Üà5Ž™QKG£"•:££¥“Ô»£\££ eʘ”D¦Œ„Ž‘œO%‘C‘2f…¥¥ÀÒ’I sÆœÔE*ù¾QC ðß~‰€’’ˆšHÉȉI©©ä+6\‘cHI˜r“a0S £aCJLAECM‡‘SÖÒa±hZ©B34 Ž‚XªÕ’N꓆Zj–ƒã‚‡ŒHˆÜL™W/ºÜA‡ª¡¤ ]„†‚ 3%Â16T”l¨ÉI˜sÄ'3¦"%§¦ã1crÁ(5%møþŠ1ŠG… ~C†TJ9ðW´”ŒpẴ6T(rRbR¢ßM?zÅZÃíýÞÑ|¼æœK–´h)¥R&LqÒ~qlyLMÊfÜá”SF$T ­<ñ’ –¬©(qt@ :#%––ˆ 1Ž’C"×(ãBî0h飵l¸`Ä ³'ß™hGÏóH)dYüöŒ3–lØÒQc3fΘËC`Ë%GL8创ù£‰& Øv,}GKÁŠ%k¾¥¥¡¦¦  ¢BI8ômËŠ͆˜) -[R ¾语ÁJDósË% N¿³ì›iÞy]rÉ+ß¾"%!fÊ„ü™ k4§¼ÁËëb¤HzܹTJ’p&L˜ çkË‚+.ÙÒ 1tX F\ÐÑ¡©p8[j:À ±h)¿¬¸P_šÕ.X¿¨á° WîXÖ<✠…bÆ1)pΚK á˜ÛÜæ˜„#f̈h±DÄãû€ìߢÂK•SQÐ`©)(¹’伓@ñ:5%š’Kr1CB„a-NC#ÅyBGMNÉ}r^ws¥öJÇ— ŸGÅØÒP²æœ+"fܦä[*J*J nr›SŽHÉHBÓWK^à²pšj*ZJÁ¬J JZ: [¶$" &ˆÖ‘b¤[ÞInêAÄÿ~BÊ;p1;QÝ–0„•cܲvOø6@d5–œ›d¬¹`%WH‘3å6oò7˜šà?¢1!7Ýý«¥Rh,ED"e]CÖš-[Ö¨c ":©d1ŠXŠûÞ›µt´lqtŒqÁÍãé3 òçæ–úã­`Ç [ZfLɹ`‹f$!­%ç&os‡cÆä$´by-vgLœ¸Þ`Þç÷mEŽ£cÌ–”5UÀ ±t@T%¾û nÝRÑÒRH×]3æ„Ûœ2þ̼ŠÐòÊß–À„5W,háÐ,y‚"`ˆx››¼Î1©'~К˜H^¨ ÿô&Þ±]ô ¨sRv94ZÌS±¤‘ª$“ ©‰ÌÝ™ÏIõÑçŠ5 'üŒ7?›þ†ÐöyigÙ}\RH‚âñ€ V‚0T”hf̸ˌ99 GM#/Ic¤€×<¢ËÃîSÿFú|  žEÓµ¡•ÌvA$§¡OÍ;íqò-<MFò^¢kMñ|`ænÃ’sœã1ÂRR°j*J,ǼÉÛ¼IB†‘æßšÞ3Z‡;‚¡“ Ô]ñ€¤¥«1bI#xƒÞ¥•³ÓI u,ŽŠå[<à=w¤Ì n½dÔP÷Z|FyΔ99+6¬©I¨©hȹÅOyL²„þÆ«p{­üîP¶Ÿòº€-y²ýßúÅHú]V€|O5ò=¼á|FÑ_N±s¿#ÿxüù³àÜïètùO®¹ïþ‰/)xÄ Ç8Îx–ŽRå×ù7¼ÏŒ4øèãó1¸J|‚ºo߀8è¾ðêBBg¥ä/ØJųÄ»¡¤¦•“ðÛ~õËë´t¼ËäßsªÌó%3Ë!`«hXÓ²¥Ea˜`ˆów˜’ rOØÐró¸ÉÞ CÃ!l˜_ôWÌÊS·Xi ûû^ $¬©qò}-âH)9§$¦å ÷ø7Ÿ ï¿@_£Ê1[Z)q=éo<ˆQx;zðvw}rs`>pÚp†v‰Ž o]…3ä³&(¿£!@·æR~r„!ŽXq%ÈGÅWœñ6ñ«`–}Á“H ݠΊ #N8" ´Œ)ôÕÕžØ yVnõþg7}b悉}O4¢•ر‘Ø¡‰„V`˜0ÁbÉÑÒÒ=ó GÏoéa,ô¬'õùÊâˆ1i舟鮠(†‡”‚>uƒ|CK·µ¯xlÈ<41V¨þÄY —®JoªœŽ·9cÁŒ›“…ËótÜx„JË—v"±¿ÿAS¦¤ Œ·ÝÛúnf´˜ùYmZÿü‡ l-ÜŸ²ûš¶¿bÓPÒ¿4§dNJÉ–9o Aññ'G-fðÙ`ˆÈ˜0"–é_ª“ìahŽ¡ƒÔ<&5h.«=j '²"–³ÑÉu%<º:\̈ˆ9šOè$+F¯—ŽÞ •ø 'CL΄ )N:Wý[è©=z`-OOíqYôàY_GåØw­Žˆ.T}UÛŸ”JÀ˜þð7(FäÜâŒ-çÁ°¯ä#4 99T š„˜œ7¸Á’¢©Ió³S!Tê½`ÇkÚý3ô&þ«ZÉ#Ù†–ïêá¹þmEßDtzæ°‚l¾†âQ”´¤_t¡\{ɾ†¥)f„¢Å Ð…²È=†fá©¢ëºKàö:l‡ƒ nïÏ&P Øûsï34-c2,Š˜–öN½¢³tXjjJ"ÆäÒ‚ˆ‘t­Õ îï?u`˜}3좋º¦=t±ê õêƒ(!칺]0eM+LïJÌ 6D8õr> @n1dL°”òã#qŽ–v/â«€Lîg’Og»æòðI£Ê®íø4³Ó`1‚Y{ª¡#ž–¦#’Ü¢‰‰I%½2?¢GŽ8fFËFò·hq«ìÃtúéôùºÂK…¹œÞ™vᚨkÒp' ­¡E…A˜6`Ù=.ÉéíÓ>ýò†ðkGN‚¡¢–ª.’&ìÛ<¬úhÁAöºhîH‡y†d¯‡YŽ­d˜ .—ÒJ̈š†ú™ÔÓ2DÌC0K'ª ÔsüªÝ‘ºJ7ø¨;àF»§8›»³¡öЭ]rÕ Laˆ$®ôñÀ<99%Ö4¤×šB¿ˆ!"r²¥=Ò°ÍÉ‹P{oú°¾Øµ“Ý5ÃGnø^„Ú¦œ¨”{üÅÒѾ½fCó/‹PYùfc&l‰…”aÈÉÉHBƧ­¾ñÃÌ€[FÉíwRNij1–œßuCúö•œ¡¥•×5$°;i4;Ƀ#bæ8ÖT˜¨W¢z2NBA#˜–¾¶”H½ð¬Œ;ð.Rîš«rø§¬w!Çð½ý‹ÝÕÚeV+®³ àKB_fÇ Jœ¤B± Éí;®K‡oi??^·gžCC8q–6T†ŽŽZZÑZ º×prêZª`ŠV˜W×=:ýÝOÐÑG‰Üµ–F .5x6ûß R×™Áí™À;+ã¤Ù7• à‚ˆ:ZZÁ&\8+*´4–[¹LÝ3ɧ/ÀÐ_h,H¬Þ¥9`Xê©¥ž‚gÍâ€ýáïÕ3ÚB:ºlBÏBÀÌ;´ôHœ4¡ô^×í§–†’HêÿXR)½—3î§­êfØŸ­êa:upØ«6†•Ë®ã$›Ì¥ß‰ õàêõµ³‘·¯¿ƒ—ýBàm'ØO €žBžž¡R×üYí¥Ö}l²RJ»A¡öú`žÿ |gåmûŽg‰¥D°]3ÀЉzD½'%½¢!z'Մ牅õSžà颊§N‰Ûˆ9Û#¨ìm6T¨}³ï|j,í–Uç·ÃP#9öe3K’KÃHjÎX|q,cG]È7ü‹êheÖŠ/Q2ßíùV.– i¨©Bþ!NZz—JîG# “öð@BK#Ž<i#|=#Œþ)-k!¨¼4œïèîúJ'-]=€Ü‡5j†š¸‘‚W‡ÊÐìÁvþ,µ¡åÛ3j†Í.gÐòÿH`9#(Y)ƒ¶¾¬Šƒct#ß­gb›€¿ª—Í#–öw•´á=!£ d—RûãÖÊ3‰è„à5C,/Çü‡ Ç7’Ö Ÿ_‡ø¡¤s¦nÖ›< g-o½Äü‰ü:zõ2Üá~éogJL$½ìà›:,kßÑHsX‡RYcHPÒêñ„Þ#4’XwƒH¯B¾¸ÿ{'Ì(- ô:$ZJp'§µ#(1BC>˜þ{‰«ácÂX€ŠV¦ûMøJà„-”A?Ô¬…—‘P‘0b,ˆiÖt”·ƒèa©´²€‘³†ÐÔ}Ç+Mg¤'îs>”Û>¸—G¨vŸ”ÉEðàWJN&6pâ3áÁžñ+Á±z·—’òsfD’¦Ïˆ™2'ªYŸÛ‹û%{+—®“9ÐF”¡ ¯·£‘ìbçª}øM¾B…ô5[q] S¦Œ0ì#.q£ä‚oyB%-|?èi^kÆŒ…Õ’s‡œÛÜÄP¡Étç!¶¹d”p}š­ ËøA?õÓÈ¿3‡ ×ij&"a|^—©>ÇYYoæŒ1¹¸.ú—Š{\ð€sj‘ÅðÜ™­0¬3a69Æ(Fâê®è˜0“.k* °ä•;n)ý•%x€Â²e Œq„!˜Õ ‡ðEZbÞwF {‘:ÉÙ{¾A$“8S2  -9šš˜–?sŸ .¨ˆ9æ„ °¥¡á±ÐJR eJÁšˆ‘PÚ­(DLyDÆœáÊ85)F˜–%šYc8ãhe„¥"aÊœˆ)·8 ŠÌ+¦Ô$Ìí3 ¡Ú}Z2±†:8($Rž#áà’K 3N¸É””Šš- oð3ò„+,ŠŒ )–%¯±âB2¾šsŒt¯­¤ðó¹âŒo¹@¡YqŽŸ*®¨(ذbIĘ%RrÆô72ÆÀÁ•xÁ«ád0¡gO …p™é€ŒôÏù’ "nrƒ[̉èQS¡yÄ=¾âœs–Üà˜ˆ–5%1%% k2‰#;jˆ Ý®–W<áEÄ– -uh6UTlˆ³%#c”c" ¬ÈôÈI¿ÔÏ3„=ø°ÅãXó-PL%©?•ÌßD¬yŒsœ) --93é,ÜbÄ1ùš+ fDÇ¥8φKLJNŽÁIÁÜç%†Ž‚ ®(è0ÂtØÒâH˜0bCÉE€òK V´&Dt2ó#Èê½WàYj›¾ä?³!åï$v‘<±BQ·Œñ.SÆ’<ùc½•´gKË”·¹Ã»<¡ &Ç))–ÈaiBêm•t´lyÀ%GÅŠµ8ÃX” -9)…$ä§u鈅»=‰žÍ`ðµDù‡̘…2¦Ç* 9š†”œ-OXó:ÏûL¨)iI1ÌI¨èPÔt””òªV¬ù —¬d"P“p,•‹gêgR^•¬Y°½ÃüŒ·¹ÍœË{üDæý¾óD(Õ‡—¬™“H#bJCÁ– ‡ HvÎæ’œ»ÌXpNKΖšŠ% R YyŠ”lrÛ¢9"¦âOly›9Ð1•!Ç­¨ ,)YÓW,ØPP†¦pËŠ-¡$1Á0çW<”Á\ŸÙZ""âPÊ?Åö·~Ë[’à"&X#2䌈%eýg¾æ”טsŸ¢¦!œš#‘{Ê„ˆˆË%[Z¶LxœK³Åò9ÐJ’¦E„«•r¾eÃ9 9ô.ƒZ 䆖PÖ§Ü`Æ„c J&”씾HÑå¤në$ÛkÄ!A‚¡eEÎ1·9’*ô&Ä´¬xÈ×¶Ä!ë᎔1*r2ObR2Fl©i¸CÆŠˆ ÇäÔ\pÆš%7¸b˘wØpŸ gL8唜ˆ–)–5—TœóWØðsþ…{<‘ψ®%ŒIPtÔÔ¤DäLÈPTÔB]i¤K ð;"—ª¹Dý^‰T—}vBåpØ_v¢û“ÉœˆˆNž‡ÏÏ )r4|N¹É”‰¤;5Sn°"gƘ%%w¨äÇ—hRZZ"n“°aÃ},Š–ŠÈÖ¬XpÅVrÙX·îëdÂ7%¢Æ•Œî[2ÆL¤óÑ¡‰>zgÙÉ)P¨h©e²¯sDŠaÄ[jNÓ1gEÄY˜ÝTäÌIO-b„bËl°2y:•WQ³ ¢¡ YåZ<¼W²æ¿sI÷©ƒ åÕ§ÇÛÀ·NȤäí0dŒd¶Òªqÿß­ŒËû¸¦"eÄœ9ï±4[Žxœ Å)ð:W4ÌY x ÃM^“âÈŠ ë‰ˆ¼e¤”ÔdsÌ9G̹¤D+!¦£ #M!çáŠsR, «O.>ÙrÄ —°èLi$àxà}+>ºcÊ(fê@óñ 9?Â>F“ÊA+¸"áï±fE)™Ý’%#Ž)%Éih8&gÂÏy4PÕbfÜ&§¦%bJÍš–ü=oðG.iX±Å‘’a˜sƒ5OØ3%Žš%†ŠŠ).yÄžð6©;QîÙáSÿ*v6¤Ñ¾Õ‡”-™ˆ'2P´UªÉY —Ñá‘ Âå¹»¨:$RS®˜±`ÌO(ù ~ÊûL„é•(F¼Ë< "%$Ä 0œð6_²fœãȸIJ%‘ÉI;Ð3;°%¦âEÁŠ• p>³ìY(^ƒpMÅË-å® ƒCB°•Îã)Ž%#Ò `;"ǰ¦&eBMA„|k à˜9gt¼Ï’Ÿ30‘pŽfÆ[ü‡¢‘ë¤øš†#~AÎ}¹´Ž)'ÄŒ¸EJø”)rjFÄlø&ôFÝw#T>ÍöÝD¤LD« ôž¾©/×ð þÌš–© Ý ŽœDxÓÖ´Xä–$LPTŽ8áˆH\qMIMLIÈÛh ©JVÜà”ŒŒkd¼Í8Û%WbN͈cb&ܿŖ%5³½ùákª.p'U g)™êSɆ¤jŸZúSV,iÃã š–Ž”ˆŠ%Ž”Q8¸ßò‰t(7äÚùâkÆcSsb–<¡@‘JaYÑ0ã_“qG”ð 9%ŠD†/-Š„9oó61_rÌ™_3â¶gˆž][Ë·„–„E-"…âÐŽ²Ó÷—¼KŸ¸Ï»œÒ°$’ù»--ǘLZ:[^GS’1cÌHŒ§û!‘VŽbB"Õ¦£eMBFL½GÅ#".¤ìÕnÀ1!'#§â 'äÄÜb‹aÆäýöÀ{>¢Ͻ?hÈ8"á”rK{]?¹Æ1ã]ÎxÄ‚3Á iÊ{Êê” ÂL#F¢-`öÀ€¾û‹Z‰!cƒ–tÞ­$!ç„‚–šõ€žK~35å˜cÁ±¼õ=óÝ>¢ûx7¨Ô úÒÒ° 3vêíÁ„š 3æÜc‰ã˜Š†BæÅk -9GsÄL„7Fdr¦¢9ÔÉ0݈11†T„? ½ dÊ„’­ä¸­Ì%fŒ0h"ÆŒ—Ï“]Ó8H¨¸§‘ŒIË脘ã½¢§ùÔ 5–Œ[´<¦ã[ê0Èð®~F̸ÅLD[{Ñ>'^†OIÍ3q˜‰€Ulˆ%Ól¥û’2b-õï Ær1õ€¿ïU2'd×P £ý¹ óEŒ–fBŽôs¾îÚ†™láf¢BÙIþÐ3§|ù1aÆt˜óë‚FY¯áà˜à¸ÅZN…W¤ò=•&D»JF_SrR"6"ØÕ3{üäWÊŒäyM`‡"ºL޵¨Î&‚){îÔnÀL=5îê»Ï9°¥$âˆ[""!&ö}h¤"µ‘L‰nå'쥌9’~EB"mÀš ±4l`aÝÌ:,9cQÊ´òó-Ž’ÿÀw冚î®þ"ýp$».Œ† ŠaÃY»ÃÑXäò´ÌV¥rßwôàX =Ï-:gÙ]‰>sõÅÞ K–"ë’Ѳe‹#—%ƒb"=ùJHꎖ[L…êÔIaŽ`-É5MžƒOó^t»‘y(‚—(£É׃Iж×44ÒGðÕl+ET$é:a°ÚI/ņ±„¡¬‚#fÌŒ CbÌ\bXÍ¥ ì§L˜ Ù¡TIÝ9e"‰´W2ˆPϼæóå'– :q,z³E" ,}&ljŒ Ä}NCHÓäâbY¡¤ÍÛ‰o°Âª&øž‘Ÿ0ç˜+ÑÇžqKÉ#ó•lÛ8fÄ9 '¼ÉÌY³ †”ç\lQŒß7×0]úsý‰• O¸Õˈ g,ù·]ã,Mð3½f( ê»%ÀH+”N¾JXÿJ7~žtÌŒcÑË6TÄd̸Á†%+*k6äŒÈ™qÄņ D’§WØí“ê»®†ÂÜ‹dX)¡×g„-wƈ©¼ÜNƇTcFšL‘vá°› Õ³!ZZù ’úfo¾#"aÌ” ÖT(2rf̃ˆWcÖäÌ™“cYS¢¨äõgÒ²n|Âx—{Ï¥D¤¿çCCô™þ|ö•' *¹ç é]I }&çJ¥—Ýü„ZI+ÕŠÜ#Œ7÷]+$4+Ôá†DDÊ["Æ’4y1á#ZinåÐ;M/:ï  ªbQ¨{×ÍFûÜkCú¿swÕ=}oúë)£ß®$ñÏ^RÕ‹›°—l»@ÏѹSñ,‰: hŒEjîgÆbÙÕU€oÙŸ¨Z4•½f’ʳ«gA´ÒPfº´(mjô=ž?¯¡ˆ°µŸÚ@}ßãð’®:0]€s‡SßÃI`B[ʼnFòÉ-‘¬„°PÚщz‰SCSFÁ•,1$$$´2ù«ñ£VžâÇ–|©ˆÄ¾- YH`žï#ÂDæ]ûý€ãî÷í‡þ &Ô‰ÆR FƒEtj‰¿?ÇÝÏâ9€éõÇBôè¿Î‹ø¸0çÝ6æk‹˘Š5çÀ$Aê0ªðh0¯á…@[ Ý–4ñ<¢H˜¢ºëŽ¡Á~ØJÙ3£”žçˆLx²nðf‡k:p┘¡’ÃnåØ&Ä’n©3–@"¬YäÈ[*¶,¸’U4K¶¤4ƒŒÔŠöØF|‘¿FHI‰ŒŸ7eÕŸCHÿWÍ?Ø_î«9oPIɬhEzG 8üJn³8ÄJk­UÊÞ9öúu •èžöDC!ªÙ~í€HXò ÷9§%~æŠ3&(4¹Ìÿ¨0ÆàI¨­@<#`Cåó0Þ¯¾ÛGø«á~ÙJ>€Hx¶ldlÅ ²3y´aÈD…<ÔIºÜïáhšŠ W”(Q¯„ž¦e˜ñ ßò€+ö³È% ž0–‚®CGA§Û £Ç»å”GAG<ÄsÂç!ó¶§œR&ÿx8ÛMPˆÚ]/[Á±{δçDæD¢¡ÞQpÆŸøŠ+:ÆÜáç¼ËHs¹æ‚û|ÍŽZÖ @ÍŠ NÉ(„k€)•DZ”f<ùÍ÷ï7(Ž9!ùµ¾vh7ºNeÈÜ3¿wvaŽÖÿm²Gøæ©‰½Ã¡ÕÝ<§zM*P®ÆpÁ†G|Éå>%†œ…<ó„Bôð®8ãœÇTh •hé÷‹ªRrù vzµ²Xb7¥žÈþÐîp“äsõ">¢—àRE”ÎOàÙ Ú±#Øe–ý„”Læ¸`,MÍV+~ÏŠïŸ&²'£dÜ`Î)·iPœÑ’c©xš ñ ç4¼ª””²÷±×hÙôùE%r kœÿc4õÏ!œ*ñ¼õž>N3¿;Qƒî€Óß “¡  zYˆ1ÇT䌸ɈŸð7YsÅ–Šs.XRrÁç\°ÅI…c¥ƒµ+í;ÉD}pîB²o(ãŒXq…Â0%ÿ•z¾#~̧чNžf!#æûÏ}˜WîD×¢­îˆ…a»Cª;Qš¼Á]n‘p›)cF”<æ ÷9£c!SýÕó8 ¿HÂ%âŽÛ°Ù¡oáh2 ç,¸I„Û^hxÆîûh7O{îôÀc¨§t@ô@’QÞ„Wíqê^»ºìë§‚UĔӗ,ÙPsEAKh Ø=µÙÖI«Æ„¸ä'Åkðz•Ë-…Ì1÷£W/0åw¨$gB‘ †\ÀvšvO¨ÀßaOFÍHüVŸox†…O •(¦:7xÃg\± z©L‰øƒ)sNÉ…šÖù×¾Ò°â3îp GÂ1±h©¿ô¸ãÓŸÚ÷¾Ü0 =È,û£Ù ŒIÓh(íè¦Ç=½ê™³Žwy‡<áL–ZRiøeŒHzÑßÝñ௑Nl|À'ýÛ£ÏÌ'&LYíœå®Ø ”ÚJ=‘ž²D Æg¸¾NhZ*: ‹cr WBõ@‘x›‰pgú®l'†pƒ¡çRä`Úб¿^ïè…5f‚!~…€¡ô;€Ø&Œ§–Œ”>õ”<‚ED¢gÔÈ5Ô"8>cÎ 79å&ÆädL˜3š’ Å]' –Œ'‘“h‡§î^U6¡ÿT=PnrwᇹÜY3¦S! CÔûJ—f/k©cÀ1æˆHZŽÈ8c$0¾ÞÓ¢è¤ôªCdÓäB<ÜÐ0bÄ ÒW[+qÝ Ë~¦Ð_’Êm$‚±ìä$ÌwG!`»§ýÑ¿ #ú@~9ˆ¦cÄEFMM#¬Y'ˆ…otšàD¸ M)¹ ™0aÎMrõ´°è+bç ÷ÇÝ»)‹]-Å÷„ æó—I_ê—\ wM¶n“£QØ×ëOJÊœ˜“ /è¯X³¡’EÊ•Àp½>m>ù #sà‰´ô¬Ô/‘4•{ÃL8aŽù|¨¸ü_gCB¡ó>%I_P²oÏk̉±”²5gÅÎYJS÷±0a*i ÷Ô£–š Ë€Oø9¯B²MˆÈ…Jv>Ö+b_oP¿¯¿Rá¨ÆØ |±f²‚*õ»:Ù„Ð…\´¢"eÌ”5[@s*Ë/KX–œ³’EìT’+(&h–‘Ë8SÇZò ï€sŽ8Qj ¥õE.dÜkذÜr#'¦¾^*Sf^ ÌW(GÅ–-…Ð 'Üæ“_ëH«_Ù Ð_è‡m_p ³=n(uƒÉRæ~¦4¢IPáhX±bI- ¼ZÒm+J21#uŽ$ª óªC#À0æ˜9éçjH|k¿z)XÆR±rW,D¹# Dœ~!•d*8WøûU¸l}îdò·¤¤eÍŠs¢ZìDæ¹ïÇû¹±©È&a½‰r)iH‰8â_ñ Þ}tïE£Å+F pw{çØJq¥­ xz™¡&îOqTr®"iÿ´4Œ¤‡êË)B‡ÓÉ(¦Ÿ2¬éhÈ$/Eº/A‘sÌŒäÞË]‹W2Į֬e=‘Ézý {º††ðY#ætü3‘SÖ ¸,.H¡´Ò‰„³6DBä7”ÿ:~…÷óʆ LØÅ«iLѲg¨ƒ¼¯ÚàëÅ~YT+yE$šÆ™ÐŠz0Ïg ºó „\\ÉЂ&¼Æ-òÏyæÎ„Ðêž c‘v€Qöû\€Òö+TµWj`6hÉ´tÄŒ…ÞjdgC¿—/aD+ãk;1Ø*„Èžñƒ7™¦ŸAˆýA£ƒ‰p_!ôé²Gšû³a{šû‹Ê\(ÙÕŽÛIGêRŸ8õÌË:@2=‰¸'&9Ùéç«Ûœ;Ü"ý»FÚ÷?*Ø?–¡ÿÄ¢A¦aÙWBnãsƒ1ËPøK óºþm,†hÂùJCûƉCíâQDdœH"EØ2úã^ blÄY52^œ êáÚJ½§»ãàEìÖ¡)Ùl``÷*ÉÝÙɉ²bŽZ–¦Ì™‘¨—lè¾j­±“èIÈD)bJN!ù^?<Ý+Ÿú^D$)Ø®‹Ñ'eVÀ|'äG%Øc¯tìùÔ Ø¸Wf·#ᔟòš M.°P?^Ôèg2bÒ@/­E—¸íK„ÕßKñšp6\Эf°CA²êLbeÝM3si‚x[?ô8bœì33ØÜã~ìðÙØ11™4ÞJ*)…ý¿¹d…;>n´·šFLÑ_©6 ­tâ+©7i·ò#TùˆˆGœpLú›gA~PC¸=´¸Ou;JyymÐÔ7éñI¡Ví+a44rãt*kÙ“P¥°ò=¬W `çEGø¢§‰òî`ï`ˆ¡{Ü)›úC\¢eiº•²§¦FË v#Š·H©eT5x5!a¾ÖʉhÑ‚HyÞäKj™üí³XŸ•ôÛsQÌ͸-C”Jh¦î‡†êTÀyô`%%Ž­!õ(j‘.PGT˜êóI}ƒ¶;°’„iYkm%Dv¢kë…ž :é†Ù0.á/R'.;æûýŠžçŸ>!„½k=<•&w­ˆ&ú™,GUatÀaD¿Î’ jD‘œ&¤Í×pÉŠ•ÌsUXªé½wðÉóqÓÿð£âŒ,œ¨O{œ@ï}žù•¾*0R#tAr~+%’çMŒ8 û½! ¤aÅ+jaÝÖ’R9iûQ+¥WR{Š/~4CìßÒF߹赒Ì1‘PØOsi1ÂŽQé'4:¶l‰)ˆEjÓW%3Z¶,¹dÁF¶ÎV’¥Ø 3a„Kg¤mh„M¡ù‘ Á`–=¾ºìÙ)±ô4ûoJ«ƒ€–6~+ÊÖJš¾±xÇ”Š%KVlÄ]6arÑ>Ò•&”vÙk·G³Ôd_@÷I#GÔ t~›¢~Jp¥aË™ÖêX‹˜x"e*{µ°_<!”õìJΙïøz'‚Ó}‚âk¾ÕÜgæ7=S…к[EÙÉt®?­œ#ˆU_¾W(©*YŽW VÚ½D»,ö°³æ°^nôG3„“Ø ©ù‹ûš-ÿî“c©ùZÙºª„Aç$zk*¶(QƒK$Z:â  ËFV¿ÂÊIè…v†«¶uÀÃ4=O»ÒD'¯ª¨ŸŠkßÍöxΘ‚{j™mÍ¥û3â[~JEõ‰ ž‚§C6iDð¦4Ý€ÙObyDa&â½ÈuX&Á€N`t¯v%{&„³^ÜuX¶½Â‰Ø;Αòp .øgþ Å»üœã¼FÈäz³ô±!Ø-’@ÉŠíí ¸6³r¹.]Øåêh¦ ©½Þ;B'ˆHÉÆ¨á“þ™å.?ï(>¨þpÉù’3þÌ%¿àå]R¶”2‚ Xli_§Ê' ô܈€OÕa„y]Ë¢€¾þpbØáâÄC,G%še‰º¸|ó泌CGÅ¥{È9_òW¾æœ˜Ÿó¿ñ& - Yæ ƒ~„ «²uÈ4zŠz"™BDÄVŠê*Èÿõˆ´§yXé|1pÁÃ…szït š§ŠŠRè¦ú€ÀòÊ'BcÙ~°þÃßð¸¤â’K~ÂÿÉ¿%f2—£e4ié2è}ºÀ‘1RvʼniÂZ<Wñš¨*L«Áâkµ:wÿ¤Òôkö¶R?‹)þ†¨Y¸oø 8㜠5OØð&ÿ;?“ˈ̊÷ÖñÁŒ÷ÜÙî)jùhGA*“ú4ýë€^ìÈ$ö)²Úî< w‘—r6[<¤p7ßOîŃÇúÊÕc÷ ÿÌESsÁ—Œø?ø¿H¸<°’/1Ò‰:üV6`;I +Ò7©™0fÌ9‰,Ñ¢8Õ„°i¯ÙØÖ·÷OÄVFçÖÜãø_M˜ªh¯z Cø6ks×~üÿðGþ,ÔàFÚïoó¯p¬ƒ°§ïSDhj±án?g;˜Á脉¹; #f³äˆ[³däÅÕÞNzµ§M D!d_F2¦¦`NÆ‚ÿÊ7¬ù7ü»¡zåU-*¹*ÐÒw[g¯É#*VÎkÝ?fAI$˜s*ê>&ˆ£ ÙÂ~W Iˆm  WÒú),4ðüÀZ΂•ˆg”ÁYÚð=vmÂaf©B®Y 몥á‚ÇüßœcyßÍ©Ýð3Ò^ìˆ@º¾ö?áÞ&²IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/elasticnodes.py0000755000076500000240000003544512536324427023332 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import math from PyQt4 import QtCore, QtGui class Edge(QtGui.QGraphicsItem): Pi = math.pi TwoPi = 2.0 * Pi Type = QtGui.QGraphicsItem.UserType + 2 def __init__(self, sourceNode, destNode): super(Edge, self).__init__() self.arrowSize = 10.0 self.sourcePoint = QtCore.QPointF() self.destPoint = QtCore.QPointF() self.setAcceptedMouseButtons(QtCore.Qt.NoButton) self.source = sourceNode self.dest = destNode self.source.addEdge(self) self.dest.addEdge(self) self.adjust() def type(self): return Edge.Type def sourceNode(self): return self.source def setSourceNode(self, node): self.source = node self.adjust() def destNode(self): return self.dest def setDestNode(self, node): self.dest = node self.adjust() def adjust(self): if not self.source or not self.dest: return line = QtCore.QLineF(self.mapFromItem(self.source, 0, 0), self.mapFromItem(self.dest, 0, 0)) length = line.length() self.prepareGeometryChange() if length > 20.0: edgeOffset = QtCore.QPointF((line.dx() * 10) / length, (line.dy() * 10) / length) self.sourcePoint = line.p1() + edgeOffset self.destPoint = line.p2() - edgeOffset else: self.sourcePoint = line.p1() self.destPoint = line.p1() def boundingRect(self): if not self.source or not self.dest: return QtCore.QRectF() penWidth = 1.0 extra = (penWidth + self.arrowSize) / 2.0 return QtCore.QRectF(self.sourcePoint, QtCore.QSizeF(self.destPoint.x() - self.sourcePoint.x(), self.destPoint.y() - self.sourcePoint.y())).normalized().adjusted(-extra, -extra, extra, extra) def paint(self, painter, option, widget): if not self.source or not self.dest: return # Draw the line itself. line = QtCore.QLineF(self.sourcePoint, self.destPoint) if line.length() == 0.0: return painter.setPen(QtGui.QPen(QtCore.Qt.black, 1, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) painter.drawLine(line) # Draw the arrows if there's enough room. angle = math.acos(line.dx() / line.length()) if line.dy() >= 0: angle = Edge.TwoPi - angle sourceArrowP1 = self.sourcePoint + QtCore.QPointF(math.sin(angle + Edge.Pi / 3) * self.arrowSize, math.cos(angle + Edge.Pi / 3) * self.arrowSize) sourceArrowP2 = self.sourcePoint + QtCore.QPointF(math.sin(angle + Edge.Pi - Edge.Pi / 3) * self.arrowSize, math.cos(angle + Edge.Pi - Edge.Pi / 3) * self.arrowSize); destArrowP1 = self.destPoint + QtCore.QPointF(math.sin(angle - Edge.Pi / 3) * self.arrowSize, math.cos(angle - Edge.Pi / 3) * self.arrowSize) destArrowP2 = self.destPoint + QtCore.QPointF(math.sin(angle - Edge.Pi + Edge.Pi / 3) * self.arrowSize, math.cos(angle - Edge.Pi + Edge.Pi / 3) * self.arrowSize) painter.setBrush(QtCore.Qt.black) painter.drawPolygon(QtGui.QPolygonF([line.p1(), sourceArrowP1, sourceArrowP2])) painter.drawPolygon(QtGui.QPolygonF([line.p2(), destArrowP1, destArrowP2])) class Node(QtGui.QGraphicsItem): Type = QtGui.QGraphicsItem.UserType + 1 def __init__(self, graphWidget): super(Node, self).__init__() self.graph = graphWidget self.edgeList = [] self.newPos = QtCore.QPointF() self.setFlag(QtGui.QGraphicsItem.ItemIsMovable) self.setFlag(QtGui.QGraphicsItem.ItemSendsGeometryChanges) self.setCacheMode(QtGui.QGraphicsItem.DeviceCoordinateCache) self.setZValue(1) def type(self): return Node.Type def addEdge(self, edge): self.edgeList.append(edge) edge.adjust() def edges(self): return self.edgeList def calculateForces(self): if not self.scene() or self.scene().mouseGrabberItem() is self: self.newPos = self.pos() return # Sum up all forces pushing this item away. xvel = 0.0 yvel = 0.0 for item in self.scene().items(): if not isinstance(item, Node): continue line = QtCore.QLineF(self.mapFromItem(item, 0, 0), QtCore.QPointF(0, 0)) dx = line.dx() dy = line.dy() l = 2.0 * (dx * dx + dy * dy) if l > 0: xvel += (dx * 150.0) / l yvel += (dy * 150.0) / l # Now subtract all forces pulling items together. weight = (len(self.edgeList) + 1) * 10.0 for edge in self.edgeList: if edge.sourceNode() is self: pos = self.mapFromItem(edge.destNode(), 0, 0) else: pos = self.mapFromItem(edge.sourceNode(), 0, 0) xvel += pos.x() / weight yvel += pos.y() / weight if QtCore.qAbs(xvel) < 0.1 and QtCore.qAbs(yvel) < 0.1: xvel = yvel = 0.0 sceneRect = self.scene().sceneRect() self.newPos = self.pos() + QtCore.QPointF(xvel, yvel) self.newPos.setX(min(max(self.newPos.x(), sceneRect.left() + 10), sceneRect.right() - 10)) self.newPos.setY(min(max(self.newPos.y(), sceneRect.top() + 10), sceneRect.bottom() - 10)) def advance(self): if self.newPos == self.pos(): return False self.setPos(self.newPos) return True def boundingRect(self): adjust = 2.0 return QtCore.QRectF(-10 - adjust, -10 - adjust, 23 + adjust, 23 + adjust) def shape(self): path = QtGui.QPainterPath() path.addEllipse(-10, -10, 20, 20) return path def paint(self, painter, option, widget): painter.setPen(QtCore.Qt.NoPen) painter.setBrush(QtCore.Qt.darkGray) painter.drawEllipse(-7, -7, 20, 20) gradient = QtGui.QRadialGradient(-3, -3, 10) if option.state & QtGui.QStyle.State_Sunken: gradient.setCenter(3, 3) gradient.setFocalPoint(3, 3) gradient.setColorAt(1, QtGui.QColor(QtCore.Qt.yellow).light(120)) gradient.setColorAt(0, QtGui.QColor(QtCore.Qt.darkYellow).light(120)) else: gradient.setColorAt(0, QtCore.Qt.yellow) gradient.setColorAt(1, QtCore.Qt.darkYellow) painter.setBrush(QtGui.QBrush(gradient)) painter.setPen(QtGui.QPen(QtCore.Qt.black, 0)) painter.drawEllipse(-10, -10, 20, 20) def itemChange(self, change, value): if change == QtGui.QGraphicsItem.ItemPositionHasChanged: for edge in self.edgeList: edge.adjust() self.graph.itemMoved() return super(Node, self).itemChange(change, value) def mousePressEvent(self, event): self.update() super(Node, self).mousePressEvent(event) def mouseReleaseEvent(self, event): self.update() super(Node, self).mouseReleaseEvent(event) class GraphWidget(QtGui.QGraphicsView): def __init__(self): super(GraphWidget, self).__init__() self.timerId = 0 scene = QtGui.QGraphicsScene(self) scene.setItemIndexMethod(QtGui.QGraphicsScene.NoIndex) scene.setSceneRect(-200, -200, 400, 400) self.setScene(scene) self.setCacheMode(QtGui.QGraphicsView.CacheBackground) self.setViewportUpdateMode(QtGui.QGraphicsView.BoundingRectViewportUpdate) self.setRenderHint(QtGui.QPainter.Antialiasing) self.setTransformationAnchor(QtGui.QGraphicsView.AnchorUnderMouse) self.setResizeAnchor(QtGui.QGraphicsView.AnchorViewCenter) node1 = Node(self) node2 = Node(self) node3 = Node(self) node4 = Node(self) self.centerNode = Node(self) node6 = Node(self) node7 = Node(self) node8 = Node(self) node9 = Node(self) scene.addItem(node1) scene.addItem(node2) scene.addItem(node3) scene.addItem(node4) scene.addItem(self.centerNode) scene.addItem(node6) scene.addItem(node7) scene.addItem(node8) scene.addItem(node9) scene.addItem(Edge(node1, node2)) scene.addItem(Edge(node2, node3)) scene.addItem(Edge(node2, self.centerNode)) scene.addItem(Edge(node3, node6)) scene.addItem(Edge(node4, node1)) scene.addItem(Edge(node4, self.centerNode)) scene.addItem(Edge(self.centerNode, node6)) scene.addItem(Edge(self.centerNode, node8)) scene.addItem(Edge(node6, node9)) scene.addItem(Edge(node7, node4)) scene.addItem(Edge(node8, node7)) scene.addItem(Edge(node9, node8)) node1.setPos(-50, -50) node2.setPos(0, -50) node3.setPos(50, -50) node4.setPos(-50, 0) self.centerNode.setPos(0, 0) node6.setPos(50, 0) node7.setPos(-50, 50) node8.setPos(0, 50) node9.setPos(50, 50) self.scale(0.8, 0.8) self.setMinimumSize(400, 400) self.setWindowTitle("Elastic Nodes") def itemMoved(self): if not self.timerId: self.timerId = self.startTimer(1000 / 25) def keyPressEvent(self, event): key = event.key() if key == QtCore.Qt.Key_Up: self.centerNode.moveBy(0, -20) elif key == QtCore.Qt.Key_Down: self.centerNode.moveBy(0, 20) elif key == QtCore.Qt.Key_Left: self.centerNode.moveBy(-20, 0) elif key == QtCore.Qt.Key_Right: self.centerNode.moveBy(20, 0) elif key == QtCore.Qt.Key_Plus: self.scaleView(1.2) elif key == QtCore.Qt.Key_Minus: self.scaleView(1 / 1.2) elif key == QtCore.Qt.Key_Space or key == QtCore.Qt.Key_Enter: for item in self.scene().items(): if isinstance(item, Node): item.setPos(-150 + QtCore.qrand() % 300, -150 + QtCore.qrand() % 300) else: super(GraphWidget, self).keyPressEvent(event) def timerEvent(self, event): nodes = [item for item in self.scene().items() if isinstance(item, Node)] for node in nodes: node.calculateForces() itemsMoved = False for node in nodes: if node.advance(): itemsMoved = True if not itemsMoved: self.killTimer(self.timerId) self.timerId = 0 def wheelEvent(self, event): self.scaleView(math.pow(2.0, -event.delta() / 240.0)) def drawBackground(self, painter, rect): # Shadow. sceneRect = self.sceneRect() rightShadow = QtCore.QRectF(sceneRect.right(), sceneRect.top() + 5, 5, sceneRect.height()) bottomShadow = QtCore.QRectF(sceneRect.left() + 5, sceneRect.bottom(), sceneRect.width(), 5) if rightShadow.intersects(rect) or rightShadow.contains(rect): painter.fillRect(rightShadow, QtCore.Qt.darkGray) if bottomShadow.intersects(rect) or bottomShadow.contains(rect): painter.fillRect(bottomShadow, QtCore.Qt.darkGray) # Fill. gradient = QtGui.QLinearGradient(sceneRect.topLeft(), sceneRect.bottomRight()) gradient.setColorAt(0, QtCore.Qt.white) gradient.setColorAt(1, QtCore.Qt.lightGray) painter.fillRect(rect.intersect(sceneRect), QtGui.QBrush(gradient)) painter.setBrush(QtCore.Qt.NoBrush) painter.drawRect(sceneRect) # Text. textRect = QtCore.QRectF(sceneRect.left() + 4, sceneRect.top() + 4, sceneRect.width() - 4, sceneRect.height() - 4) message = "Click and drag the nodes around, and zoom with the " \ "mouse wheel or the '+' and '-' keys" font = painter.font() font.setBold(True) font.setPointSize(14) painter.setFont(font) painter.setPen(QtCore.Qt.lightGray) painter.drawText(textRect.translated(2, 2), message) painter.setPen(QtCore.Qt.black) painter.drawText(textRect, message) def scaleView(self, scaleFactor): factor = self.matrix().scale(scaleFactor, scaleFactor).mapRect(QtCore.QRectF(0, 0, 1, 1)).width() if factor < 0.07 or factor > 100: return self.scale(scaleFactor, scaleFactor) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) QtCore.qsrand(QtCore.QTime(0,0,0).secsTo(QtCore.QTime.currentTime())) widget = GraphWidget() widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/0000755000076500000240000000000012536324427022744 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/backside.ui0000644000076500000240000001242012536324427025047 0ustar philstaff00000000000000 BackSide 0 0 378 385 BackSide Settings true true Title: Pad Navigator Example Modified: Extent 42 Qt::Horizontal 42 Other input true true Widgets On Graphics View QGraphicsProxyWidget QGraphicsWidget QObject QGraphicsItem QGraphicsLayoutItem QGraphicsGridLayout QGraphicsLayout QGraphicsLayoutItem QGraphicsLinearLayout QGraphicsLayout QGraphicsLayoutItem groupBox hostName dateTimeEdit horizontalSlider spinBox groupBox_2 treeWidget horizontalSlider valueChanged(int) spinBox setValue(int) 184 125 275 127 spinBox valueChanged(int) horizontalSlider setValue(int) 272 114 190 126 PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/images/0000755000076500000240000000000012536324427024211 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/images/artsfftscope.png0000644000076500000240000000241612536324427027425 0ustar philstaff00000000000000‰PNG  IHDR00Wù‡ÕIDAThí˜OL\UÆ?ÅD“fl”V)5- c,i)CEÞС °È J[°åO4-ÍÀLgø+(Å&mDhiSÀ>éÄ…I7m ”¨iÜÝ$¦ºpÓ\ÏmÒÂ{öž«qè ù%„ïã¼wr¾{ï›Ä>«à“dÔs À¬Šlà4§KÜÀ¨ÎchêTó9À)Îóð5ÝvÜݶF/ ú<@„Ó%{Sç)¦8=H“œÇÜŒ5°ªxâA8÷80Á‘î@Xç)Ü€žêLp¸Öóuòˆ¤¯Cˆóë¡Û¾oi=ˆ^ÏVD8]4`Šnï6Lq5MÀ‰IÎÓìº=b ¬pKk Þm/§btFTl'8]Rõ4º¢Uá0’âjxSpng":8O¡çé¶ï¿Û@B<²jK0W_ŠYYOa˜Ó%uÅ»z ³yáj|×w¥ð×z>³Ömô1ŠP§^g;EˆÑ%Áƒ¡+ïnŠS#PMÚEb<Íåö5°æØwçaˆ.Ù§K¨ÿø‚£Ü)®†?D¡ ÓœçÕ2Û"ÎÌDr?LŽ’tæçÃ䨬D®Ža ÄÕðx0SSƒN®†ßÓregøu‹F,ÔÔ×S„zi„ Á Eˆ©!ñz)BL@bh“\…[„b ¬tr ˜&ÎÎÌà̽¸t £ååh¯ªÂŽC‡RÕ¸e¼ƒ«QQó­­8.¯©ªqò$ÎY2MàÚÄߨi Àüò[ˆ;ÜËîÃG\ IA1fZ TÔ4@´‡åjŒ›øÝ² É~¥Ýjèæ"œ.|¦ÎSJ öQÜ RŠWãÚ‚m]£ ,[ÏÀýÝ7~RãâN—t¿…èéw†¢R\l9¡BÆ(L{ý_ê/«½Œß, $mãþ÷qAEÉ9]Ry:ÏŽ\ž-ÃYňìkB€«Ñð&,‹8•"ôEèŠPSKâtI+EHçqS„¨–Pq€"ôEˆ«1fP¬•i`irÒAvb‘0CY3‚œ.yñºtžô\„r+Q‘S†ér͵|ï`Ò²¶ÐÚ†èøEÍî0¦8]’?ˆ¨ÎSð&.rúëßCì€Éyz{г4ÐKêj<!N—ì¥éP„b ¬hpásÌá*½õUáÃ{¬.ñã¬ÖÓ†aVÿ×qTs­QÛÛiä ¾†´7×ÓZO͉Ó/c]Ͼ²dk4Bqk½U¼ˆé ûg dbÐÈRR­§ûþu4㳞vòX²5üùÕ˜¦THˆ(2.–§@ÕYP2à B>v<ÕêÊFÒAî»æšÎTPn#ßXqSlÙ]>8§°Ê9 (ѰuÁ¥ûjUˆ94 ´n 2òú‘jCÇ4“Îõ1¾–Ô§OÇš¡È. 7÷¦oB]BÿqyÇšÏ$7¹vò(–óÏ‘RÍó¤°¹v([üh”$¿$pjÌúÜÖoJ`n}TÈ0þŠ~Í7ùEp³U£V„è,ÝéyËKq…£ÎØQóP B»nçö¬J%U \ŸsžÔ6,ç,jç,rMîåb^w­H q*B¹cY·&FËÚ«4òM6•Øð¢¦T†Í=kÆ ÿ–1]1ÇICTfŒÉ+zQç“ö¥YÞí½q¢ú›ÏÉ®ç«\Í¢äöQ¦!q÷Æì|×Y5h¼J«¢1ü±ÜòÔs€+€`TYÂ/&º[1‚ð=Á;ý)÷4¥‡þ ·LuwXÑ-—ˆÆÿ$óûPì‹v~5"¸Î·F‚9ŽKw'èÅúVýÜBH¯ç/ ôåE0¸p<íŠÞ±¹=]O"¸Ö—èwK¦ÊçÝ › ö¬/㾆m¤7ŒÆÛäv§§t’MfV·J¹Žþͺ}à€À'½c)p¾PíòéçÁk+£Ðû©äV·ñwF“§^‘cn¦°Ùs÷¯F6e6Ë`ŰêVõÏæO½&êðÉÿûeu%¼”ïÜy­{u‚ö,¦ÍÝ?â¯B½:÷KibtžÆ–êús—MÑ÷×v²@Ûçƒâº9õ'¥.ê{ø©';ŠV¡”0Á¢O¼ƒÁªVû@Jš$M‘ƒÍYÆ¡Š ­ŠÏ@ô4NcÅ&Èß‘Q8öƒÜ«BÑÆÅZ­y_Qmm¤ž].qËv7 WZ°ÚZE#ë=ÈàPú¥­›Ù¼Ð6=ö5Ÿ.Fz±Œ¾ìc½.75¥ÓâÆ$ažÊ<Ö÷©±¡d†+u„{nkRÂ}]é{=!ê>îßµi$.ìåÊî´¶tûŽ3óÚ•ší&³zTõœ¤w4¼ 4¯éÂ¥Ü÷ñ[ÇÊm¥qz±§¸îx²Cs|ÚÈôã³mŸµ1oÓá¶OÄ_H€Î“À¬î³Ö\ÇoíN6ï[Ænð yiÓ¢1Z€Òp^‘²´¸êR›‹—+9foö¢t®”e_Æ^À<šbòïÖ"WD+ÂŽõ¾'¢Ó4l¢ÞÙtB¿ÿ_&®ƒ©n¾ÂHÞ™´Mr€x¬5&ÀÙJã;fÑÔ5ÉsŒ.ùhv³úç\`,À{“³Š¥ôbxCÄdúGqñ\õê¨÷Sç"·”.§.ãë+†yW_"¶Ò& jÙÂ5®„=s¥5¼˜(öçÍ|ÿ©ÚImtñ:Êq^µ$xäDpÑUþ&µ‹©ôñ{Y?Äýkž?K¯KÛÄ‘“àŠ-¼ëŒà¯"¦æ2¶1¾ÿ…“ÈÙ…wG¡é×°^Åé\ãQÍ©t·„ܵ ú‘ìG"·:GUÊúSn¼ö¬Yg1YŠåF‡_µRTǹNTþÕ·Ôl"™=XO#;v¬‰c’ߨՙJqPÊUäPàãb{Rì%Œó‘[DUªä‡ˆ‚wÅA‘X{5A¹Ò§$óŽÕ…­¼÷0O“ØV†ÚÃÄv»Q¢MtthDkák>êuyß°¬óE/g#ØœŸÚ„‡E³&Ä`Oéÿz¢åÛSraW e“ 6~•­YE­µz—k  $ö(=È*‰dén³Õb³Œ¢RžW,²òºŠk¨^Ái y| ó]C¨O}&+A“×¼˜ÍpNýŠˆ‰Æõ¬0µXÔ(Ú¶lgK.‘ë®K75”ÚHØ`ŽÔy˜ÉÑ4Ý£l‘ñVÍ¡Kûû›Ù±¹Ï +G¡ôu?}í ¸SÚ©ü-èÃi5ÌŠ CµW¨_ÏtpÍ¥;(ⵕ¿ëЉ՝Ëúh4ŸHóKÚ¨-“½‹jH“½5¨(ÀsFµcwæ‡þAÆäÕ¡`#ÒÙ=ÅIÎ"ó£;zˆw^ÔVWõ!Û:{ûS {ƒPè¯îÆ‘Ieš¢MÌcMÊ€ÇmcŸ×Í#Óž/|d2☑?ùT‘ýKþõ0É$¯º3±ûTñ¸ô2Qž7¬ i[\‰ýøÄ {ÀüÃÏÜSZZ^ǩғÁàVmÕÕœŠ¶ÈqÅ]̸»ˆGx¥~— ŠõÈ  ïµyùÿ›mšpCƒÖ½ްÛ.£ªw•™t¶¥ã½V) 2kMÕ¶eóK~,‰Ït&™\2ìrsÃI=rÁA7ŒÆßP¬)â)!Øù¯^à¨*FTò+ªÙ{HQôîµ1ºâ« g:Óf½‘êGí#ê(dr9(H>¬xÔ9k]#O¦uˆýÔ÷­]÷±æ-!(x5ç0³!’-˜}IãíD´ºxÜdGzÆXï¥ÙË»G:FôŸö4›¡S†¶í¯ã™w*þª¼¶ªñæYúXRegÓδ(Néš•Œ(Ù@­v†8{UÏýGþjÑ 5Ú)?;ÿ­kËôŒëË žÕÜÒcS6¦ÜžF4îrXÑçm¾Â´, ŸbîO&¶º?O ¢YF D±}i†ßz§Xê…É·µ`lÏ\ò·+ãnµÕÄGðöžçà‘À¬„L1’fÖç’j‹¥>Éåväù­ãŒÆ ­"Ÿµtw[>˜¡„cSéšÐ`´2n‡Kx5Ñ;E aúŽÄRÅv©Iv;¥ ZÊ–ÓºãùÐj’!G(܃URŽ„ÔìGqP^Pu``08?­ šê©sŸ¤/Üæªòö]óãj é,ˆvr(©Ô%]µ©ûÐ-,®n›Ø¤4ñé0B™¸˜¬[ŠºÞùY€uÐOæ~¢µº\Ñ3zR(:¸>kmíÙuBâHõi$ 4x‚q>Ò5!ñäRêÁ­um£-éÜÔ›FAÕǺù­KY=Xû‘½êØ7º1ƒÜy©ŽvqM36ùoã8þÕu’î †RW¾¡jÒÆ­ÃÍB,ñœG.ßzÞ±¨èO"–AJC9ÀÁÿµ[ªÞ~&\&BšâwÈÙµ/‚Mo dävh¶Ó´gÛÅ !ÅTìk[ØÓGY;¤±‡\Ò’ŠFC±¦¡œ0Á®yaî‡Ö­=}EÓÍgî¬Qæ½]ô 4,§|«Í]Db˜¡©9€~àDМ0æŒ.м`,£êO?"€2ŒX~¢¬Êu  8a¾Õž•h¥xÎ7#¸ñZ·^ÐQÈûRñz]A=¸ŽärÿzY•’B¤qÍ^ѲnƳTgù¬èî™vŠé®˜ ÞšM¨ãÊ+K£YzëK².û÷¡t»6¹“Ô}£Z'V¿~ØáĊͶÝEOYê¡ü5±ÒƒfaÞ³”`` ä^‰•ÁcZ’c =¨©*’ò*â¸%à  Uâ±b2Õ.JËÚ5g>xFšaÄH?½0b ²ð* Š›ØBâêâ5Õé©â¯ewÚîºïµxÃ)g5” ôî .¨‰÷)ªW‰Ñ¶ªYø$Ö­´1\@²ÆuDã+äQ¿ðÔ,bEO9ítÅHÞC€9­n™ÒI¶í½¬6é©€Ú”êL)Àë7+—úúH½80« {‰ï'¹%ŽóA–GšL œ…otNž-Õ”+ÿQZÔÆ¦ÞÑmmb¶¼Ž ~•^¦¾“FAúSv-ë]ƒÀöÇò;šW®6[ËŠ˜öV¯@`ICÀjÖžÞ2ØVÒÞ ct‹–æÿ^”Ç&TïYÊo +ÛMMÆ—ý!,miaƒMÚõ²Ìº¼î¶ÊfL {sWe)3ôcͦôbsUfU]MÀý뤨¡B>Ô×Õe¼Æ >õE_‡·€ÉÅHÊŸ‘U}a—Ü7½è3o(okVw_€Ï‘EI>ÓÅW¨»In{+:—˜1ˆ8ßê]Dmé6GÒßµa¥Õÿ+þ @W±¬qDÎ…Hž#‚7Ú™¾ÍeorÀl©>qI–"ÐŒÎ1v4¬6ãò&OÜÖb‚êYÇÚ¸á*ÌÀ ¢îu7¶§v?ÂZì£f#½%fªJ Ë’G8_h©ŽpUˆæHâ‰ö¨úc]D÷¬â¸š£Yúê°öŽ*å„“uZp{ÓV0){É€>šw£_N!‹ ú5”ÌÌÄ“–<ŸÁEš]´!ÿ©©7› ±b<ÔÜ>–œw5Öñ™F¿­uÇMÔ^9ÃlMRú,yíÑIôØ’<Õ#îNúC_Âs˜ËYÈv;¥oÉ0†ǵy?tS¬‰±Sk}¦3ÔS¾7 sÊr°¯Rê ëŒàx¬¹¤~ÿº|™H'5µÐúhŠ1up2Oе¾1ˆ·DéâÝDó®d;ªžÔÝô…Ïáûßw?Ò*×Sz0™[w; £t u\O¿æb{Ÿ‹}ÕZÄ*ŒM‡ŠÈêÉwžKg÷­~£'´ùŽkYõ IÙv­aù+k¢:¬ä÷Í7ü@¤•n­Þ±ãy#miÇÅ;Sbžœñ_š–s¸Ww.rNàbŒÚçÿNÆ7þ†àýƒ#`AƒRqJ‡eEÔÜ Ïšvº“ H@qÿÕOWœí Ï4•ÄÞ’zQóÜ×D0óÅÒ‹«T3[¿øˆPž gäæˆ’cÚþå4Ð}C®ñ¾µñWŽebAö‘ØÒ*^|LJxñLE,w ío5­Ø-xþ,\Ž~k­®TÒÛ7qRâ:dƒJÞ Ä‘Ÿª¬ý ß Tuðr)iÛl÷¢Ý9|g¹ ¿ºLvš‚`MRGá}íö«M/©+ÊvÔvÈtÛ–á¦?Ùh_Qø©sdð)« W¹m„ê–Víq(U(äÓ½Bå-áÖüþcS+zŒÆ€†þcdÔì£S)f!cñR;e'Ò?­vò˜ö""%˜ ß}ñ["híá ñôŠB-1±(Qáæ¥bg}ÿ°®år«#´òj$ø¡]HziÉæxÂÝt)Ïoé¤Ï´w&˜c²  l7&žDÖøÿÜ~~*:dTÜËÀúsU‘ýIKS,¼® 6Þƒq¡7e®bÁ¢S©t±ÁS=*äÛÌcsˆßcñC¸‹W¹y çcȦ¶êúWY‚ršôvr¤±DãèôÆ><×ý{IϽ´žãÅ=ü;q„019S•ûw©yŠÐ°ˆõ§êo¡[<5è/a´X£jÉþ+—NN@ò lHæÒø"¹åÚ°¯‰iˆà …e½›³“¨W¦º·‚5×pè VUïW³„µ„HÃó7Ó}% ¶W${\þ™¡ÏÔQj´—·÷\HQ>=¢¬©pÐâYˆOêm‡ïÍk®Àmn$IAÖpMj]Ü >£ÊŒšÉ+|%Êíœàþ¸¡ÞÜJÏ¡†œr)dµ,Ù™¦<€¥Àia’k‘K¶3úÓÖk æ´üøÈ#Š û½§ê½m Ö³úœdõT`78ìjÙ ¼R>GqRå5jL©¡31#Ú ÿZ¼pÍ!ö®‘äÔÖƒ–Ó‰§ Íèâ=?æ ÛkŽð#óD½a«cÆM'/!÷oØUa]nüÛ±ð*‚ØòrjíìˆÍ&çàv(‰›\›l£e^ÚšA½RÙÜ*Œ“Z.Éao¥w•¿j–èMÔÉeáá#Ô#Ü|Vil±É'ûÔ;œës–5T [Ôm°r+X`Šƒj¸EÎûýè+ps‚ 1W]B¹Ù¥Þ#éPûTÞÝCm˜ !æÆíÙjóIèt©%AîÇ5“n F,w'Í1ÇÊ‹ãrÌrÇ’h¶Vææò¯5H‘¦”FœšÕ@–¶ºW°Üù­|™jjêr„AíŠR2XéK© ³<ÓÖ o‚íÀ¬N ´Œ°E–Ý’wgmDë¥v–BïßNt›¹” ¥nMMÔ)¬¿"¯"¬‹­Nâ½ç@¶ôÀ¡ñÞ±ú‡Kº³:ÔkOê]ñRe*肱 ‘³ «z匑®ØRÛ½DâæÞÛdÄÒÿQÑö—{w,òûœ»øì(29v+ûµX(ˆaF\Õ“C•}À–äüS·14— €{´ çíC°„4ÁXíõ9ø§l«w,ǰ¦ô6ÓÆ+­Ù–`>w­+É8Îi $2J_[ïϲ¹·Ô Ú¦­æ ,Q¯ é\ïC¡ûW:3ÆýAÛúE/pùc⯬èyO2Ú—9cZ‚Ñ MÀÜÿ°©÷<™ÆIyK9w9$Õ®%y¥Î 3l£z1ÚGê\ÓúiŒ×7µ8ôÿ6^{)ª;zé¯'“V)$ļ‡HñD‹Òr§q[¹k¤ íÁ¢ÛJc|7šéãRгžj XôÍjðäq±¬¸ƒ!h_fCƒF²œÃ }‡ŸŠ¿YŒe/#߳㸬N*‹Ò(}†¡QÔîOÑæi"¤Á³íaƒBê9C<*Yö= $ ê8ËþQB•ÞFõ¿«ÖÅÛ|SP4Ò#ÛØy­É'5éö¯<Ê1œ…{“i©‘€Èýè?Ãý5cŒHã ŒŸQÖ¯2ÞŒ{\²·;¨¥:ÃOpNvÑ%Ìk”9{Ðm×TÀ|ÖÆwⵕÔÑýFÆ+Œ‚ |¥¿â±®#x¤)(ÃÞ½¤G,df³zOš]uÁŠ˜ç:4ó5©ÒîËÆ#cüÄΜþa⓾µ{wþ¥ìÔ%X08 äÒ6X42‰#;gPø=Å!ÖP¬ŽÉÃŒƒMØ\¬é¡þ¾ÿóSs xL}Æéÿß*É…Õ-õ¿XJz®r[zM,ñöäSv„9„s½i fù$Üý» =³-7Ô´’{ËnÎycTË>ÀmàU‘TýÇãµkH«31Üæ»Ccé4PøØjºHxlöªŽßÚ¦HÃ.¤£õ…Å°× n1Ú”ŽBWcÜVe—¡SphÖ³…œ›¡Û~Õ EÊìÔ"85{$F Œdåt57Ù–Ë_皺°–Eù(|’¬ÁÆÇÚâ” ÕµDÕé„¡Iˆ.3¤ W—@aºh¹qö¯]ü$Ÿ…é­w!çek9߯ Vémmý$>â7Å`;bÄäš%ÜÍ<ÆF<Щ†>1 YFÔÇjegGàqYÔkE%²xÊ{XnI`¹l ˜î¢q‚àüƒY—ó dÒ¿Jþô¬¹Œe™WîqXðÙ¶µìÉÔ£¿c÷¬£bð1e§úSv·Î˜Ã‡^ã9GŠá?—Œžc'ý)7‰ÛÎ#20e8"µl®DãI8a¿ëBê68&HAÛêR7„lѸe8"·ÜC=^؆õn9 FÁÀÛó/ßÅiÛL—VåN5cVUÌoo0ÇÊÒ_AèÎ.œf‰hº¦‘˜dꥠ}Q‚¼®ãýÅ3é›#‰ZÔ …Y‚ì§õ¡ÜLs§ö¤ÒàÿjM/;ïK’Ì|æ¤)fßzÓéöb5õ¦ ™e ^ÖÔ$fi†02'xÀ³²ðÛÓ}VèË!DúE$A+ÆELeîªöVú†¹?Ã]ÏÍZæ_Yñ1¯PµËéò Ž*„QþÔñ»A|'§Bÿ­N\Õ$•#\ñþ´¿âL‡ÚŽ@좵1Ðh9c¥·À¢Åk3œ¾TxÒ¨ýCN"hàê?Þ¸[\;‰òvpC`n)ª4âéK2NrvjZ{{›VÄÑ?Ô8¨Iz”di&;²áê+BÏ­Dê ½‰—VÙaµcï­üö_ËÓêAý<‘E¾¶Žé?bAþ¤ŠPâ¢2ñKêÀúcúVîî"ˆÄ6ChŽƒÁ£¼^&.SÑœpëÃR®)t9Áè*AcV•µDvqŸ"¢Sœy ûç™a‡vcŠ ýÍïúˆè]‹é.æVE‚!¦(ÆóóKX–VBÞ?¨æ7ŸŠº+3 “Y×±pM9mfåuýèÖ–éz’îÞ*·lNªX¹ÛÄ]ºÓ›Nj’±)é&@îhò$³9%FÃvì++¬õHmPÃjâIÕ á~Õ{šÔ®a²NCLFÈ;|šÈ %Ó™§bK‹hšVõ¥$äç~ZŸ†<Œ€­É¤)øR‡TeùHîn! ºêÿ2œ½äá?Øy ´—€àù4–·±Î¦÷pþhwö¢Oz¯ñÃ}«7([ ´OL[Þ<^Ù°ËäVuøFxdÈÈaÍ%.á@ø§l[ñ[¶å=ËJ[ °w©²áôŽÔ óêc°­!SÛæ•ºœ`‘Þ·ŽAwýè‘#½ °Õ*JoÈ5 Í¼‚2I5LFÀ¥ÚBxÚ¨w©ãî‰bIÉ©‰ ¶T œ ~Ú/N tîy¦WBÌžŒ–ý©gG¹Îòás¹¼ NGg9cXÆ_bµ @ROj“KÜ>[H;kb¬ÙbíNt‹C3‰æ_`úAïBéÖ­s(gzØšH­ ÔÄ^bÐRU³ª9&²ºSy³ ¦U8/ÜÒ½Bíî[ÞJÆ>”êÅ<«í] äóMlB¬qîÌ3䚺I&¥`@¢'Oc–ù¨ÿÂÖI2O}5x3km©vøàSÖ‚I$šA1‚dÔ¢_š ìY‚/z€7r„¦>pƒÉªô”1Û½ãîòåc?êik×7k[„:Wä÷5«"*ͺý.õ(‚ª°Žy?z£§é‹‹¶‘þ‘NÉ™JÖõÀÍŠíÂé“Ü¿¸ûSky@ò{ÀÂÌJ#ä€)›~dXvÈÛûšÍ¸…šH¥Û*~Æ”¸‰ã÷!8­y:DAN·…ÀmÿaKOaqåH£¶sY™cê®™çÿiaà –ËîNÌ)éáR}ÃAùàÒά£K®Tö=ëz@~ƒƒ†VýêboL„'*~“\ÊP{w^ê{U6#àÔZÊ`¸YÇÅ_¨Æ#ŸZ}îSJBäû‘ÇÍ9õìŒGë‹uûSÞÁ§”ÉIžFÿz]fÆÍSjuÀñwåÿz V±ŒoðhD°ÜWc5Úµj] ×T•aÈ5v,„É¢Is#.œà|Pp|TRˆ®®<×PâL jz}«\K¾tOšëg¹›'éîkFêâ+(t ±°¬Z q46p2µEdK,×sñ¨ö–­S^M­‰Á<ÿÅmØtèàˆ<©Ù|ýë;“±Óºk1ÖØcÝ›Z1ÛÛ ÷–sñ°£¾X ûPp%}r#SgÜyø«½ƒÍ%”{ˆñ–4¬÷ Ѿ@Å+îêbqäÕÔö¨À«1[$žç½5 a'šëxp2{U˜ƒ–?JÒÐ9ŽÉÜÒÒ¿£g-Áä+÷«Ü1ÓòÛš]þ_M†/ê94¢¿Âð—ê:ˆш¹ɧ­ÿĸ'œ_øUÕz³ÄÇ´eWäÑä;™Çùj{ô㦒6gb(± /±ñC¶_NÖ5=—?©§ú|F1®EΑê0?]M‘c,v€j ¬HÔTø¼Ò³_ÊìIÏwbí@ê¬ÿŒ1 ÷18Í.z‹ª9c“ìkÝSŠ›#ÿˆ«­ÌùÔJ1û ÎoR3ï ¿=ªVV9íZñˆÒkˆ¥\Eœ÷Æz^nž’)kyÐÆ€³ç’A¨7 dä|ŠLléJ\ÛÉ …]ø¥¥Z Žâ¶’îãôç‡Ï"—»³¾¥»kN㸫¿U±©‹iJ°uäsU¸‡H×ã¸ñAVÒuÔUù¿•p³Gô¶ãþ+®•uëLiq‘ñT·q$~“wSàÔ! Ûôø5gc“š‘¿ÅEA$Öô.7ذzâ>¥þõEÖÛ­G&?-,`¾sU$bºeeäç>*”׫Äâ<…×7ÚCéD2øÅ-onò¿«pIÎú|ÔÚÅîõ¥Ýö¦¡ $@ä×=‡ºdh:Fßµ5;ël“í4U†-?ÜÒw×xö©ßNJηUÝBïBsþ”€R}ÍÿÝX)úŸ“Ú‹Lí½nM"±¡sŽâœ¶ƒ|½L’ÁTnh÷…mã'Ö~£â¥Ë@ ˆ,"'ɪ]) ]ðwù¦z\%µM m÷¥T†½Î7äÓ|è)!Ëjíª½¶¶ê陂²ŒPd¶š':ã8òW ÐÄhNþšþ¤U¼‹YØGet—SÝô·U^I¢B¦{†frÃÀì*ˆ)ËJ¿þ“ýÍ;RŠ# Å@Ý”aßÕ“W€x¦ä”Ej’ž%—PùUÿ¾iH[»”¶€$…ÛýiâÍ1N-ãú ˆ"×,®ìŠÄºŽK»{—-dyÞ²!‘â|©#èz<‚+ì0ʰ*Gš[ø—¤´ë ·¿).¨­øu 6|â-ªºë·oÓµaÄå㸧ìnž"W¸«fº“*Å]t°óÞ£QÜr<Ôƒð×ñ`çŠZû§MÊ‚GƒIœêš ë×ÿª½¼ÒDu#dEP’§ ‘æ§“w®ö†Å?¾0^êxjϼ·*Å©|Q›c‘±¢¬¢A¦S‚8qþõ‹Žºо–çjiŽ´õÔ>¯šì[R€>Ü­´š[qH §"¡üÔ‘¥¾ͺÖå·8S毨Ð"8Š5[جç+A4Ij^yŒh)q Î5[XZyBŽ;š¬hÒɤnkBB–VÚF5µbÑE%š´ì#X£ÖÃsJXCœÈÜÞ‹<ÄûWsY¢oîNt®äö¥Tl·¹ÏíVE÷a=Îy=…5ml4ëo§»yûUâA 1Öß®i¨c,B Þ¥»„EÛ°­kdµ@ò`¹¬gž»P–´µ.ÃÜEcÎÌÒ–c’MzGAr7áFkÏÜÄK±½OŠîî•¥Ñb/k"&5ÀÍdÞÂÈä!—b)ŽŸxöÒ…m}ù­[‹xºŒ>¤EDÀûV¹Æìyø.gŒûe`>õ·Ó}˜?˜ŠÍŽH¬{ËgØ*G Ñ:5Ø·¸´Ö²››€}b?NP€ì)›`\¨‘LuÛaq¯¸súÒSN %Þ(öÃÖ j†r1…Øžõç?‰$ s;ç©iÖ¥žßÑp£mÍ`õ— #ç&¸|xåçËW 3¦lƒÎâ·z|ñ\Úú(ûý&°ºaÊìi®—0˜œá\sà×LñÜHOø“¤Ig9e\©ñÅeDæ6Ï#¸¯wjRí§ÝãXúוþ#érY\·´ã50Ïþr, Z){˜Š6GÅiu~›-›Ä‘öqþþ)#t¤þÕß‹7RÔº=ªê{ Èb“mÇb*èÚ—#õ«˜`Ñ£9\ÐyhNk}Ü>œ“JNûnM5ÔG·5Ý-Tk•†Ê*Ph•,íõ¶5Z0×™¤ãµDŒ×Sää £p06²šP¨vQB‰KŒ±Ò½üš8Ü`Ó¸vPxŠ@ͼ)§Q]1þíDlÈB¨À(íVE/‚OÆ)ëD†Õ}i†ãéZźþÔn›j¶ñz²qàR×RK5òÆ™9à Ýô³>¡íQÀ­?áSþ'…¤ƒ¥s\ò–MѯÒz×àÄÃønô.¡ÑCüÛSããS÷÷RëR) À¢×®8öÈû× ~NÚáãz¿JšÙ±"jCô¸ïI[ÜÍg Ë>ké~—PŒªéRÃu<ó½øVEÔöË!ïö5ßž^2fÆTRƒ!‚ÌÇÍc^Ú¼2Wv¢K Å•Á0+Êø§¡»·¼„Es…`6oÚogHW£ÞúMèͼm¶õZÓÐ\B5!ç[« U³Öu5hÞý"Ѳ¨?›xÞà\]°@ryÌ®rû|f™ŽIžp>Ñ­l¥‘C¤4dN3ÜVêÏÔ:¡ulŽ+æöwENûÖ­¥Ë) „àן?Š^š”ïñF7-?æCÁ¯1u|\wSùk׋Ⱥ„^…Ð !Ø?c÷¯5Öìå³¹9gcæ·ñ]qJÎÙ—CqÛâ‚3˜#j;á†Gê*’.µùWkH#v©àäP¢b“D«(›¥õ!Èí@·r-eQ±æ˜ŒìTðihÆ™¤CÝM[Ð%·ø#h#2>;hÇùB±Äc8ɬúÿÙPyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/images/kontact_contacts.png0000644000076500000240000001043612536324427030264 0ustar philstaff00000000000000‰PNG  IHDR00Wù‡åIDATx^íšipå™ÇowÏŒFÒè°dɲ$[6’lƒ±±1cÀæÇ®B œ@²IȆì’d©MØd7›„£È&pe³†%Âá§mœØ_Û²äK#æèë=VšnvVåR6{Tªö©úÕóö[ª®çÿ\Ó$Œ1ü9›ÅŸ¹9BÆÔ&_¿ _;#HcJSë{Þ…qaªºæøD*Õ¬•ö}·´[†áÓ–m?p× ‡^Þ7è‘r,|©ùŸ4c GY$èoϪ£b ½â{Ó™úOÍ]¶|Þ1Ç/¢yR©¤ ‹ä³'öíÚ¾xÇ«?ºâHaíÚ-Á\³å­ :iñþ%Í´Ô„ä5£SÚÏÿà¸eg^¾ìÝ×ÓØ5Œ‚ áÊ¥¹³iÇËÉgœRsꆗ.]ôÐÚUÿôäîë7”w3Ö¨±`47ÇWWî6•`« {(š?a’ŽàúS'pÖT©c+tº|͵—Ÿû™Ûiìš ¡¡eƒ±@¡7@XÇœ´˜+®¿:sÓE3ï:¾Å¾†Ø:€Ÿ4À¦xpÜÜ?oè†;`¢ç¿*`Íü¶Û |@€_¸yÑêK/8qÍu  HN Ø)°ÀaVäµ×#3±…³¯\Ã'ÎnÿÖÄj–\ ,OÂÔ ŽÆ¦:Ð(`º€äÛÐQo³ª'–ÊŸÑÑÝ}ã‰ü¨Œ€V`4`Æ›ô}jšZXñ®•Ukæ%ÿHj d §E4˜ÈÛ@•x›VÍH0¡Jã @JžwÆE)+†Ðª"K ó J }Ð!h FE 0Fc€Ð÷˜Ð3›ó–uÖVÍ; €ˆ3ÐfŠœ¢ œ?Â9¦Ä‰BQŸ8ogˆÓ XÜBTY`”N667­ž4s¸9)@DA ŒŽ*¡üÈGBÊ£Ëh­Àrè™Óñ“·¯Ô;y‚#\zÄçêÔÄéKR3{êí¦&L"ûú¶nëè?ò«Ùš;¶Áo”xÚ3‚ŽŒÂ`Y dØÑ4yr—S†°–Ž‚·‚¸h:Øå•}D Ð#SnG«µ‰óêYÙ OV]tñŠÚk>@õ ó±35­A†¯DØß79ùì³WÜqç½Wüdãæ»¾føT ²”€„e¨²$©x• ©¶.“Ä °˜0\˜X@!£ÓZÅD­äjŸÞu{YoßñÀ7I_|ø%L`dü~’˜8†Ë.¢áìwò‰;û{?œÿÁBxá ìù#~‰Á¦ìEôl*Ì€‘Qö…]`•*ø ”Di‰6mÞ|n ï¥ëΟ’X¶B/z‡e#F0# ¬¢=·|ŸüÄǸ¨¥iApÛ7~ö¾Ã¥3% ýÞ!.É4„‚Q, Ù¡nÂB„Œ¨œKh u¼R ÐôõÂyd=ÝŸý<‰e'cJ9ø G©Ð…fÍ¥¬yÿ{]SŸ¸ùn¡¾aè/¶@ʦ/wxÿN7?eTºYŠy.ßK ËÙÑJ¢µ¤–xúU¦ÍYBrõjÌÐh JôAIŒÖ•Ul*€mОq _:ïÚ Çþ^‚u{Àv iÀ5<”{èÈîÍ!2Œ•>‚è^…(9‚’å³ J8p€š½Yλ¤FAËúe¢;Ï ÆP©DHØØÄŒ³WÔ¬j®¾ä~ =¾Þ5 ~ÖêpÙ€ÄÖ|ÿ—Ÿ¸¡é˜¹BX*e7˜xe´Q() ü";Lvï~ºZÓ¦c¼b<;€V Då¬d½õÔ>´ÛÔ¸öçàvßá© ¯·øô°¯«wßÇv®û—{ºO»ÀÑ2Û«& •" =¯ˆïðü<Þ‘2m³ ™‚0ˆúÞèhGó–€x+‰Q‘Gëø½q‚Âj3ôtµvòÂîz ;®lxjn ´âpRpãt‹¶’ª¾´w½ºêií´/|BØq©AkUî{ú„¾K0ŠWÀ Šø¹,©)µqk°4Âhˆ+ D‚´®¯¢6Š*A‚Ѥ35Õ@züªpq¨hP2…Ñß[²øò÷å¨bÝÖÌ{úš§Î fB ÚÔ[½‘ˆÀÃ/äêßÃÁR ©R2Œ3oct¼.T÷?Ï€AGD"”‚Àƒrr‚Œ/àC)H8@ùe)[$îÿÆÊ¯Ÿ\Ë,þþ©¯ÒsÙ—¨îåµ_ÞNzç&2 ˆú ( ³WÀ=p’cðOšN¾§ƒ¡G²Ô¸%L2‰Ðª²:ãøãm3&ëÚÄ^+ðÝH@!ÇöÙ½ÀÐø¬*2z õw¾µúÎÿÈ äkÏÞÊÇN¹ba€–+è›V˃÷ÿ”ã…¹»^Fw&° šÒ!ÍãçžCÕ…-œ4¯ƒR¶Ÿm¹^Ú÷¡§LGÈa c8pF0´Öà{à•0{yr×Áçp|E ª×½ò=']yõG^Ëc;fQçIœ6mú7²oà ¼P²ìäKI·FÏY7й͇X{Æ,¾êz•^ã ¿™¶ÂªOXˆÜô|$@ëÊDfˆPñZFÁ»EŒW"åæÙÿÛÍÃk÷fùýkTÚ4µÔOûÊ_-ÿ0oä·°?¿‡wÏ¿_—XÐv<»³oR <4MÅï:‰·Òqëí¬k¤æ+ñ-ÓØ3l1t¤‰­¬Ò¾ýF&m¯g>"ðFg?òQ 02ߥ¼ÎÎM|ùÉ—î õƶEס¥âàÆïŒ³…<}Í»O?¿µ¥¡ž'_ÿsÚæàª" £¯C,·HzÛ«lhãÑ•÷N™Ý™ÿBmc×gTqÀS~RuíøÃ½¸ú”YÓ¦Íjn¨aç¡­4e&P”y,lÆÇÑ l‘! ÞEæhZ:#%CÁñâ8>þò½r Wž3‘µOH~µð3¬ÉþgÛ#$fv64£„ƒÑ ¤,·KÒÆîïÅߘǜÁ-…3XÒlW-¾¸ëú»ÍÎ •¹DXNÀrjHf&Wà[+{&µYE•# 0©®|˜Å)VG$°G±lFXF(ÇÃ8Š!™ YûÔa{~·_7™-[SO–ù= ÎúÄ}¿œÉ×®›B°c×7}¤› ;4ùA‹þî¥<»l) ‰ÃlØô:I¯€Á"Ÿ©göâÙPSOëD}šåÇ&¨š3çÖõòáËá“—4.ÿË[žü6p5Øô½üMà}Äœ¶dÒõá8ÕäP9ã ,mÔBÎ(QðX1‘ Kç¸ûÎÇ fO…ýüg¼³újÁ♂­{¡«æÛTWOdB×D~½ËCêéiµÂ›‡àw4K; ¦AÒ©¦¯?Ã3¹pY#Ï]ø®«îؼúÑ ÿÑJ‡6U>§‘¶ãJ—¢F‹‚ÌQ’Ãåç¢%GLY\aôù2Y~½n%g³ê´/ns±S Ú;ªòÀIÀœ.›iÍ‚™m0¥Î=®\PÅ{¤9¯:êaþ¸hœ<Û…N û‘w%x²r7äBÖ…¼e¿B¶míµ (Âüy;Ïz *0ö£;¶ß;¼²@ÊVØ:U@Œ £ú?ÞB aI¶¾VÅ„ÆVRصӧµ¹šœŽ€„ÇÇŠžm+ª€Ä˜Ï ÐÔ(¤© Ô`„ ]›â¾–I Z;;ñÐÆº.`w$Àr~‘}SÿnýóƒóŸâ¹ ˆˆ1*+°,,]¢ww-†½(k‰t¢|NÚ°À‰±­Š‹Ê—5Tè·Ä„:U[WEß@À”Î&¶4ˆTǼŠC ìO>÷ûxºN‹™'$ð‚BFÛDZ,¢1QžŒxK Â"¹$=Ó+™ÀSŒ¢+@”‰*  R€£(S*0ޝE¹ÕÒµi,§iúØo!!žEqÕ¿Ý!¿Ý¿’šy§Jêš<Œe#µÅØXú­öXXȰ€WiC®¡*á0ìÇíc`ÇÁ' ÆÐŒpTŒí0èFkãÔU8„€%îÑozuãÓ·¼öTÝ9sÎäŠ mŠšzH¥ÁIl[ FØ u )]Š%II ì„ àÇ™·!¡Æ °Ä˜8Z€ŽDÈJ+Æ^Û69J£$•-Ô—«¼Í÷7±{÷þºm‹wݳçsÏÝzxíÏ?—ýþÏzÙûþ:ôî»94÷}!ä¾/Üÿ倿*Ù¿{ì‘"¡€’„BQ  0>äßÂ|ÁïÇù[_GÉÉöƒ.U*°±NÍ€•¬ ¼er@‰Õ,…Ý"ƒeW#Dc@hßÉ Þ»­ÿÆÙᕬÇý=NÆÎ@\…˜¸…P•  dìÚ+ìÝ>vžß z*Æ’ÇèÝ(ÆXuíÙ¯ôm~ãCûwάkëiÀ8zûµBÇ î_Y§iØùb¹Þõ¯uxS¥…¤‚õÛÀõyû&‚¼û/ßûCy+¢’ÇŒm—£Z(>Û>Q;ú ØóÚ0›Þ€,þëÝ`úÇV N¹oß –Å—û_}sÑ3·=¾ráûO¥¡³–P‚`·Ï8C·O¼J+('òû_<È+ß|ï=÷k¹ù.bsøSMd@8®°.è{içmÙýœvúñvç’éÔu4¬ØX•Ö‰CÅ  c127’Ý5À›Oïdßó¯¸Ò{äNÌ3_²ÿ}Œ‡‘@  d'ízCÅ;·Ü÷Ý«·>ÔyV¦­«+ÓÞf×¶6PÕXC²&…²±N¥T"}‰Ÿ÷p ä ïÝíz6=/ÿ†F< à¿O!…Ÿ&=á[Će[ëüÍzî«ÉíÍ›ÛÛ4š¦Cz2d¡ª,ì*h ¥s0|wÃáíÝ dûÿÿVù¿¶=;Ìñ£²¶GIEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/images/kontact_journal.png0000644000076500000240000000627512536324427030126 0ustar philstaff00000000000000‰PNG  IHDR00Wù‡ „IDATx^í™kŒ\åyÇÏ{.3;3{³×^¼¶×Á.—„º`L A­CD@T–Jiª^H?Ð6Hýâ¨J+Ô¤_šVi¥‚TU©Ä¥Ú(!&&0Wc vl¼»àËz½7ïuîçœ÷} G‡ØÁ¨TEò_zu4Íó›ÿÿyçÑŒ¨*¿Ì2üRëÀ€ >™fff˜››PEiIPPG*ñA½œ‡ñ}@P‹mXœÍŠõ‹!¹5ýê…Ý€€j¢êêDËU±ÍºØF$jˆàTP0"B&T•R©Ä¦M›‘À}÷ÝÇý÷ßOoW¡¿+†JAÐ㉊E$2…°¬1µâæ|°fëpaÍ–ÍÅîþ‹ºzÖõ]Ý@šZuqöÌÙ¥S¯îš{c.Ùô¹-·á†á-¥m½~o!'žïA»¤Úˆ«Ë‹µå………ÙùÙ‰³ïÕMDóãå\eB.6't]¡iò!ùŲ³#åçO/-=ïT In¾ùfzè!‚ hÔ«Uo|eǺÜ×.êw{ùãÁMÈÆÏHïæK̺ehÃoÓ@W0Øg¤¯¥ø†T‘…Ùʵ¼yòV­ÏŸÕáá rõÖ¼ !çƒgX‘UHl/Í*ÑNªÊÔ’åñƒNžx—’y¿üä~ʳËÜÿïµ±wÆË·ÎÕk#dZ\\$ãA20îýæ·>;ñß{Ÿøò­¥ÁÁÿ9±‹Æå»ùãÖ°¶]xB&¥“T…éù:}Ý!ù@°NQM™i;£ó‘YxàGÇø‡á¿aK8Å{'ã=ÏÌ}it~î 2ÝrË-ìÛ·0 [\T*]׳M®Ù¾ž·6ñzןòõO¯aK¿âœÃY%r®½™V.Wñ<$±Ôë ÔԹθ´òmŒÁ—€õ%0ÌQ<$'tçÕÏyÞÀy‡Ø÷X“ T©ÇB>Ò'mÆZ»Òh'9MkÁ:‡µÍ.…óJ#Šð‚J ]9•œgúÏ  šÚsÔâUÐÖt¥¦U Š"8À:hZ%çÀ) íN€€(d&à !F9¥+/¬ üK¶ô¯ýüðö+‡ÇFß~SDÞ´ h8«Xg1XGâ =¶AëÙ¤‘AIœB ‘u-ðVlh‡ŒÖz@e)Q/áJÃÞ48øG}á–Bí¾rúÍ·þ‰ªþ´œSM3kHR¦…Øi ÑîÀj.€°)¸£`ÉET@ÚA2Œ´àr¡Ïr’'IK“–Û}WÉ›_à§ÿøwÈ_ÜrÙgvÞ."ˆ Ö:<,ι q§c¤è „Q°NSð̲$+bDÒbbAàSµy޼6GÑmg°»—WŸzšËŠÆ~ôsRŸàÏ¿F;£ŠªÃh‚[q" ðQ‚fTH¢$ έríº•Æ[Y„" ~ÎçèHÂ'&{ÙqÉåúÁ÷ñ‚Óh0Òlh–—÷ªj;@âœM¬’: Iê@#D!vÙª¬d½Ò>¢ÙÇŽ¸Ó ´¹  ‚@S¡Ø˜"::ÎU×]ÏèsÏÑX^¦ÔÕÅ©©“OÁ_\ §Ú*QÔ´–´qQ—:¹,BVQÕ¶F[´â“¤5Q¬$NpNAYU"íO£P­ÔèùÙ¿ð¥+×0{ì3##ô®]Ë/ÆÇËûá¯'áÅ+W½FQuêpÙãj1ÄYŒT D+Zb‹¬D¨Ý.d/|§Ìî{˜kêgÉ©åØ è`brÒ=ií}ÇàÑŽÛ(*MkŽ'ÃX° ‘ÐÌ:]¥-ªÔµ8P@ÐÖ0“I[ Æ3Œ=ó†?ÏÖµzì1 }},ÍÏóVÔFDöÛz=é N•Dê Y„íüéC L,Bœ8¬kÍJ[‘´;!Æpîí£,íû>7¼‘£?Žˆ4šL*¬ß6äw­©×é ÄÖ©³™êÜ @âÚrÞ®Õâ!i„° è*Ò¬ˆ¡~îg÷þ+7lÞÀø /P}ïu®ÔÍñÊ×üþcxG³u¢s„ˆÕl•ˆ,ˆ´ç¶ó4*­¦È¡ ]‚‹"N>ò]vjccL9Bq`€‘É ¶}yK¶w3>³ìå|Ó÷Ñ‚SUµÖq¨jê€S0J›: ¤ö[‡Sm±ºŠ§÷­óôz†ÃÏ>›6zz–—ßÈg?½„0O>TJa°æ|4K‡cŒ‹h&€FEa•ͲµÆµšržà¬CUIkа ã1õÊÏ)zžK‡9²w/aO‹óó¼ñ©]¼ýEÅ~Ð 0rÒØ“¨MW‰lÑÒ•e Yí>ÔV„|Ö)¤¥­Ùî¿|rŒÆþǸñ›ywß>œµXçøŸ¾!–¿ú÷Øé^ª±(¹ÀÑ“Ë÷ ‚¢«T⨙¸TµøDi„ðLÖŸtŠ‘¶ï7FpP—1BêHsi‘éG¿Ë®ÍƒÌ¼ôå3gðûú©VYÿosbë$3ÓT“UG.„Àh?àvUëÔ%Ù71©–8bOÈbðÑù²8éYmÆÚ„ñï=ÀUyS§™>xüºuŸš¦w÷=¬¿ù7ya ¬R‰ó¨*¯”BÓçÄή$ªØ u ¦‘d”f•›D@Úq ZA5Ý«Úé'gÓôI»ò{úiòŒOO“üÖïrÙFÅ@ìÀš€²íJsíJ! Ç3&;Ûè`Uq©õjMh®D(m¨Õ'íBµC²¡w€Ë†vúõW^y–_Ý<ÄèÃã Ì/.2»ýjv쾇 Ð…Ÿ(V!1>å¤ U‡ïCÎ×n#’–:ý2gg³yÄDA¤=3m/õÃÊ.«<ÏP™8ÍÒ¾G¸îâaÎüøÇĵ ç8ÙÓÏå÷ü-Ý6"ÎÅ¥[L#íyУ÷ý"@'€X!I#ä,Fêå£%ºÚ¢–xÆTËL<úo\»a•W_eùwînFku6ã[\´c'¢M–SÅx÷]Qây®QÁ9›9[XíòQ€Ž`­ïŽ8¶à,§¾¿—Ë%!?yެ[ÇèÔ$ýwïæÒÛn\+~ˆÅPqE¬SÄ(ÅPs¥0왫W;Ī’X« “­‰<0€Áisˆd0‚¶ ßß b˜8ô2=ïc¸·‡±ýûñ×®åôô £»~‡«îø:gl‰À)¡@Î(~=hXX¶Ý$V|àB#ô~ä6 ¨ª#Û‡h:hªÁz†r KMa®çÞ?uXh@9‚ZLúFF¡``mf& ,Çlš;ÎîÛnc|Ͻˆï³P)óLq?¹l7ý°‰I–4!GDAbŠ1]‰è¯Y Þtê@P —«û@ç5“$nÄšX§¨:Ä6)OGìy*!Žª ÕfLÅ8§3K( 9šähÓ5Wa©ywî$j• Woeq㥜úí;~ø§Ž¾Èµ_½žë~å yy‘œIMD Äé ß?Féòcúò¿G47G?—(4:DÖ.Uf66ùazüZá ÂÊ·)6ØRS,Yò¾%çÅøa’&4«$µ qµN³R§^iºÊr³yvÖž™ÏoìÚ²áúMãã3œòrܼh+=tù™— <ãùžç§Ç÷üÀ÷‚ 0 Ä3b¬Uµq¬ S“ÉK§ÌÏçjµ×;Ô“xal¦¹ÿè‰ÞaOÎìx›î(q¤Ôë–ê¼£Z¶Z©8{¶ìË-/Wuq±¦³•SKu{v¹é&ÊM{¶Å“Mdö¦/^ñÏÝÝ›~+~ùåçþëC/}§º8wŠã„ù÷{õ¼% }†Å CÏ„@° Ír”,Î7ê‡+Q4ÛÀ¡œ˜þ§øI­n;ÞX¥Ç9µH«å†›]ªÛ‰Zä&ÊQr¶ÅSõÄžk$ñbä\Ù¡MÀÒCC[>ÿÉOm¿æµ×^>óÄ?øÎèè‘¢¨¹D¦åˆ«öŸ×÷ìÙÃ>ˆïûÆÏyFB@jœ8YUEÛWgD>,Ueýú¡+¶o¿æî‘‘#{Ïœ9q>®¬µìÚµ‹{ï½·ýŽ»îº‹;3LM…&ï-!bîvΪˆð)ß÷ÓpáŸúÿ_]¸pàn©“zõ9þIEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/images/kontact_mail.png0000644000076500000240000000620212536324427027364 0ustar philstaff00000000000000‰PNG  IHDR00Wù‡ IIDATx^íš l\×yFÏ}o6W Iq§HŠ¢¨Ú)S’Û2’ÈRk;N`;ñ»qÓ$mªÖ‰ã´®a#µ“6¨¸iÓÖmí¢ Òik©›ZK—زMY\ÄM¤¸."‡gÈYßr«Á{Æ3¦ðŒÒàÃÿîpfîwþåæBJÉÏóCùø×J€3gÎpòäÉ Üw„džfh{³¦ùÓxþùç¹ùæ›ÿw€H$Bggç‡ØUǾ EµÏ¶4Ô†¼Ž¼|Š'zÇZsÇÛÚµ[EÜ{#ßi½ë÷Ñ/½£ÜóÅ?þäK_+í|ò~ž--É)dë}²ùî‡Y¿{ Â%þÏÍÀ±Ý<¼÷Ðñ¶šw ¨njö|žýŸðß~߯?Ñøéçfò™?ùäÃ_ÿóc'_î-äì¼rËwÈŽ/ü•GŽâ¯XÊÏ`}Å'ø~wÿ'^@'¹?UøÂ[ò;<àû壕ܴ£œ'ïÛÎkOüðÅŽ=ÿÍ'¾ñÐãøFËgÿnÚ{ëKØñ•?¢êc÷“¿iŠG½nwâ™ý·=VVPÚ€)%ßú×)ž}m’ïq ›ÖÑ;§¬ÄOÊTˆj.ܹy´l«âá;·óÒ×ûNÿÙ½»þú»¿ñ+_}ú÷ÿêÖÏ}¯?pôO'ØúÛÿB^Ó YŸBÙhgû>r ásÛ~ ¤d!®óÈ+Ãl)÷ñWÍg c05Ÿ¦¡.·R‚$¦„˜¦"…JEM9UµeÜñ1©øTYqæÇC¿ø›_î\dùR'XsUA|æˆxaÿßv«nRê|óõ)vÖäð‘-‚1…P"1<¿ ¡`›ÿIQ2iS2!öæO¥Ç÷ðàî¶c‡j¶G)À¤{:Îs'j¾’âBÏ"‰´‰ÛãÂ#$n—¤eV8†YÄ«J.\ ,_RkPZ@àö6ßs­w=ÔHiK ……>6çúij,B×%±X!.!-“8P>aÐÑÝ7›ZóÀ=‡xz÷Ç¿RžWX†Ô“H™É~’í•9èR Ú½®ºž"¯mLØÆ­µX{-™ F O÷ ókв=GZÝvÓ—1ÓQf€s£ öÔ”"ÀÊöûÆllgm¤Òy¾gx#Õ—w/$ÜMÝcÚÌšx](w/¶~âÛň#$¼;¥ñÔ.¿Ó*`HV¶H!°l@\Š$o¡ŸOï –Dªò^þê+áÀÜš|tì?|ÛÁªM7b$‚ MÀÌDfâ.Jò\$ é 'Ø}¾"ã¶mV©R^tš‡òß t¤†×OMÕ–©m3‹Æ«Y¬>¸'Z½Ï¶Þù{ñ+HSi™JjV…cZ²Šqa9vª$ìµ-EIû_ 6¹( âv»ÕÍUîCW^Ò×` î3ûŽ=V‘ãób&ç‘Ò[ç&UÔú€*VN§ÇqÚÅÎ:ö¼˜’â·^ÁW† ÷¢ÄNQ8ÏÖêøþÿèIæ¡kع=7î¯tÛ‘Ïc,XƒË¦ryð°U‘ Wi@:@ÎÚ‚²*wþuò×õCÕMPÐ ë¦(/)¤±<´]UXo˜×àV÷æÅ«­ã&1e}iIꀩ‘^ wþ¶®÷`JiçÊ·;¦í*)!ÙßC•~Qßå·&”6QQT@¡_-)/rµL-è}×ðñ]<´÷бƒ• {ÐBÑb£¤;-EzXÒTróΡ* Ì•ÆW?‰¤°ÌG§æÙ0óO(;Ê ö MP 0·¿o@l©öº ðÏ@*+€üríáuõ5„Ï~‰xü-¤¶ •~m»k@¸´« µ]¥ð|ŠŠž¿ÅÓ€’;@ñ€ÔKJ`eÅçÙ\±¼ÿ®X0—@u1ÕS9T–SäûËIFö²"QÅ…¸ªŽÅVfXˆ¿‘o_V~ ™ KŠÞûy‹!°ÜëÃ’Ô-6PY¾>3ÛÁzSf 0>Ϙ¢Ž¤äº‚Í-äln#'2Ž>>Mlá2q_˜.m¿VésVÂ6. cw÷YŠ[P\îZ«mÐAj¶ÒPZIEy>÷¥ü ¥žÖ‘`º –$9åÍðòÜñ©@`3”ìÄU»H¡¤`<ÄÉ”FÞ•A¨ß¼J„]c>b’¤±8ŽØ°Ô"§mdFi[)ÈõPPÒH^~Må‘¶«ßâY qÏ8§oˆŽ—Š¡-‚§Ø’· ±ŽnQ 1ÌÎ'³i/¸½¬öELÂÓ‹lо‡òÑ uœ¶Ñ°ÍÛJ"ü…TÖ5ÒT1»ïߺ– ®à”©‡H&ÉѼàÊ$@xA(ˆâbÔÒjÐ\(ƒíÈ´†YÓ Åå€`!"™ÓÙ0ø¾Û?¤mã¶y>˜ý$˜ 0ãàêºMÔÚ›¼.Q“ÒåLV¿‰ß¢ !ç–AÓAƬ–%@&-™K .!¶6£ìnCMDP;ΠŒtŽLÏC ëU·ÞªneØ´2íÎĸ­ÈeÈ7©.«ÆãRýµ%ÞV@d È‹£œ‰†zÁPÁXs̘­¸­„dDÁ˜AT v·¢”VR8ü&¥Omk3æ‚qÀeG1KærFÖ^¿G%°¾B4•ûnr³èâT4Ô‡I.ha0£¶–A.Û[ VLXѯ ü¼»›©þÔˆú¦ÌsPœ×f´Â´™QŒ8ˆ5·°±4g/P”5@ûgR‰°L,‡ÀÖ&FÄÞdÉÙÔ2agÑVæÚ˜mÒ—VToÙµ¢“#zô4èÈ(5[©(ò6ø=J]ÖÝ#\ŽÄ‰Ìwƒ™g}°·!m÷«b9u QìkœuÔ~ÿ¢­%ÐSŽùŒr%•ëJðx<Þº_ d é˜‡9»8Û b ¥í,-Ù‡¦8[fdÅ߬÷YŠ‚žÍ6ï:>WšÒªºLò²þ=ðN¿<ݶ£ëaS  ¤uPL0UPU(iPTïË(+ò"Ó9:¥aÉ4Áü`ÔÁ0ÀÐ-™:"¤vs úö@hÍêÖb×°üO=×—Ãã ýN–´4Îu ´$hqЖ@·úÙ–µÖ3ÏǬlë)pÞ¿Êgj`ØUP"lhÞIižwCžWÝÀÐ4ó.-\y\ë3Æq”r¢Õ¿Î:íÍÖÊ×;kHs¤r6BÅ!ò倢äû\€+«Ò è’§ê›Ú·Öm=ÑPT[ ʼnBX"±"$vü L0M;€<•à­Bz+ ‡ãŒ÷w3Úû*#=Ý£©ñàRzÙØ§‘yæ–Ù‹¿ª«\†#½ €p„ÀpÌ*x*À[ ¾jb ˜èï`¬ï߯ªƒÅù ñ¤±t9˜èšMttM.ýÈ0e e ð΀<«§Fd~H-v•@rrµì;œ*HìeÆpøj‘¾RzÓ—»™ìÿ/ÆûÏ3?5"i›K^šIt^žM¶O„SÝR2„ìáMd 0’áP” ¡‰·÷7íƒø˜ŽéU* ¨à-ƒœ:ðד¦ˆàÄSío39ð=æ'I$ÒÉñymäÒLªk`:Ù>Jw¥u9ÌÑ5½½þV¯qªvã¹}rïgs§qn/@F€¯ ò6A^#¦¯šùéË\é<ÇÔÀß»H:‘0'CúhßdúâÀtªýr0ÝO™ã@Ð6wj¶Æ÷F»FÌSÇf{×\Åx˜¸‹ ?c¸ Ó_O$<ÇìÐseð;Ì ½M23‚‹ÆLߤv±w2ý^ÿdúÝ¥¤9fŽËY¾v€žQómCOǦ:rËëAzJXŽÅ˜~“Ù7ÿ’àð9â‘  E͹¾ ½ïâ„v¡R;Œ—lÃaÛ°±ÒÀuFdôò´y:ç§aºrs#o[˜d)nF{ÆŒÞî1­³{TwfÑ0L®Ø†—V;5®3€£oýCò—îšîùƒüœ¾ÆÞq£ÿâ˜þîÐÃ>)XøI'Åuhnnæ©§žZµÀý@IK3´À2¸>6o+?÷ÿnó?kv[b]îIEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/images/kontact_notes.png0000644000076500000240000000746512536324427027606 0ustar philstaff00000000000000‰PNG  IHDR00Wù‡üIDATx^í˜ypUešÆ眻$7¹Ù7’“–HØ "‹Ó€Š,:í‚ÚÓj«Ó3êôÐ]mOOOÙ]mwW—MMkOÙ£££Ð,DEC!ìKÈž{s÷ýÜs¾¹MN PLµPSvÕ³‹â!åÔ¿òRÆ ªÑï$UMl4üù–’€ùl2=9Ý"“gv‘wg)æT-ŸmäÂÜùCÃlk^òØs‘vÇ;Èæ\ÀòU5h‹»È¬J'TTÊÑúqbÚÓd§X(ΰ2i™gçU“?bÜdÓ 9v@þƵس?5—‡>Ư†¿Î{ÒLöl\ùkYó_+iø¼™š •Ÿ=:޼’ ß—Sn+¬ß €q”‡½0óŸGÿŽÇzŸgEÛ |öÓƒ,¾ÿ~æÕMãܱ½D»°dN‹ê§ ‘sî~ H”[ «ÉX“¦]jŽã;|‰ü ò‹èèt“SÀ³û4‡á‹=<ÿè$† Ÿð˜){âhÀvËdI¨r$ÒÏ… p±•ô‹|-HGWý.} >+Kž\Bóáf"þó¼ü9iI9ž²ó-Ð>§JQ×;’%Be^””>Å­œ~PÜWÿ[±`áÃâÍ7?Ÿ|Ò$j@XüYûš‰ÿø§¢å¼‹Ÿ|W´|ñ’Þï áyXˆÞéB´Â1[ˆK›ÄonÏÜ Ü$}m§Q1¹¯‚Œ_…W4ë¾s± E…Séè€ÖÖøÝn£•<躠fT5VkŽ®#<ø`=o­kCøÀµ|ÝŽC+d·3¯~vÍD™E+ ßWÎ(w95ÿã jzË)7Ò‘¸J¦¿P¬5¢RˆB…–’Q©d ªR—ŒÏ)Îör…=¹À5ÿàý 32(*žÏá#Ë))BJJ Ng2ii)deÙ7n»voæÙïý€Õë³uw³¦{ hdðo¡lZmòê“;^+|¨&.é:H„tˆÉšÇÑ=Oìt¼²ÆÏi pÍ;±6Z²é’²˜ÁÕÓ¥’A•¢‚ÁREšiPlë%°œzˆ…‚Ìþ!úÛê9¤„Ó-ïR2¸ŸY³¢¨¨ââ\**Šèï÷ðë_ÿšW_ý ;›"¬Xþþý[IM–AU@H ò tÿë2L?ä§€ t t’óát1ÿ4÷Í•¯÷j/N!„*s•ÎÆmo˜¹ì?ÌÞù¸iY°JZÚh ¶«üœÛðù[ð9tâž“Ÿ>³g쇋ÊÊœ8éæðá/C‰Â}8^òò²ÈÎÎ¥µõuÓ3ȼ› ÁªÒ@,9¤ÕÜïÃV„Ï.÷€Ýž„½à섬$̥Ȭ×íÍTƈJHzD#š:ŒH ŽˆoáÐdÂáZ|ÉôöϦ«ã>Jò+¨©¾ÈÙîЬԌúÛwìãìÙãD£Úå -äqþ|3<±xg¦âîV@ dÀ ®ýئՠ¶ö M ”+Æq¸†ØÓu¿kõ­då6àiÐíèÚ@1$)†œp\OIå ðÔ·Y·1õžgyô™71ö^<~ð‡!“³g Æ”1‡½m`ÑŠTU°ž$½¼ïn—ÑFÒUý+8 _®Ü¾g çóÀ\B¿ªp ®€ Ž*ÔMRqûY.õôòGð{Bø\A¢A¿7F‚ë²=ÐäåÀ‚‡êùãædXÀsœô…3‰²âwÐh!¾ ˆ/ïŠ,×·îÂ$W"„ÒÕ \eD×%lI‚E³úp‡/àö UB¾(~o˜ /B0¬ŒB ¡„% &޵“}ÛÖïȳLp ”k¤¥ŽÁsÐf„lÄ ˆý:ÛŽ½÷n»äÙBèækû®k¥HT¡¦2Ê”qmt:z. D %®Ao„€7ð' `’`BÍÖ7Àã0 è2x÷qßLBû"èštÓ„¡msë§4vcIñ£ÐV#Æ+i\ è2󦺉Ë-8\^Bþh$F¢ø„Ap¼ÁÖm.~ñÆI–5\äTOñ(€40ÌÎS¤L+EŠVàj‚l 1Òúòï8VnˆÈj9É–5X”6„0'¬`èºÁVã…9“GµÓÙßN Ä.·RÈCMÜwµúøhõiÖín!µXgt]Je-Ѱt¥$5œ"­|Î]Ϋ†™àlØ´i‡s“ÓH57`·6!K*ºnýº_$BfÞÙY§èêsL@D‚*"åèþó,ßz’nÌžWÎ’¹•üÃìtF͸‡Õ'j@RA)89yêÞ8!ŸÒ±!Ô•®è±í—À2‰6ËarR6“j½ˆ@B×- +qe¨µ¸„Ý&¨¿³w `0†Si§±n€SдvËæÏ9j‡äRÚµ§D$Ð$!Qš‰áÅmXMq„.£ª è2£‡…¸»bÑ‹G¹â—\Apž($)°`zͱi¨Þ$Û s˜m˜RSqtÅ .鿀ØîàûÁ•ŸCÒDêµçÝX2ºšLvš—±åmŒ,ë"35BTU63q¸ƒüا„:{ð{Á4 BàŽ€L({ÉÎGfáïCçÖLÎü¢‰c›ß%F±q˜7 ö榷¶á©“ „ýÚ’"“d‰‘Ÿée\E'C‹ÈD±ØêÆœ@éÛM 7†Ë?àL¸? ç: Ÿãtó!6ü~á lG©:ÍÈgSQ™š¸î0gâÇ[[ß¿{ŸòyæèklÆöF[é ›RÎÀœ‘˰¬ òÒÒiúÂG.!†ø×qôL¶¼ZúíàÀ¦­œÜÞ@Arˆ9c˹"†Þ€˜4b:¨:$+ÈÆˆß ®³®ýƒ†¥¥õw[Pv€&ÙÖ íM‡X6DÒˆô&qÚ‰¸4ÝD{N/\h…éLÁò#:ÏUb2eÒº}zË&¾óHKžZÈ—N“Ò¹ÌI /ýé™pÒƒ'¦Åq³tñ•kÖmYºjÒê~Ñ08­x›ûðœè§»­Oï=@;BŽÇ1§˜±¦Ù°ç¦‘”“š¸O£ü%R/nbù —|àÐyRöi{j“&OàhãAÊv·ÅõTB€@B µªïm=ÙºVÕ?"€vS€öÓXìïv>úÊÙñU#§úb1ùDgGÏ…¯«á_‡ˆ4º ¸ö*'|Áéä삱 †Õ‰i’ €íMÍÝþiïïQ¤$ª=@7à¢×ý/$I_!3 äiF=*1®q@7 I’“‹Šj§ääÔŽ?fTQQAöûï¯h8wnûz rEˆ` &ºY#5,†%@Ã(ܰ0|£Ÿ•diƽÆ“s­ÄÕH‰›WÜpˆÿ»âF+ø‹‘0@ÔHUç+d$ð׫ÿPYÎÅ:­IEND®B`‚PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/images/kopeteavailable.png0000644000076500000240000000451412536324427030053 0ustar philstaff00000000000000‰PNG  IHDR0/¥‚IÉ IDATx^Õš[l冟fgÏÞL6^'>€ó„,  ªJd«ªR *¸BBªz“Zbn®z™F*ô¦R¹k% DêU(¡*U‘*PKOlHÝ’Äàĉc;Nöd¯wggþ¯#ïJÓÕâ ðAâ“^}³²Vú¿ßìþ¯f•ˆðU®·)¥_¤Þ}ŠA-ô d5 €†aFÎ~ûÆù%"Ÿ°\ýã)rÇ­d4—Ú”"žNH'•Ÿ*æÊUf.ßâ͹gN|çβ¼Z>À{G°NY‰h®gÿd¶u!é=臘fÜ"ve J“ì)ï`òâLîâð•ÜŸ¬>/pâá)°ŒR"ò¥Vèý#dÎtïë·{î݉ô>Ý£B€Û\©I  ¯ÃÄ[¸“aFÿù cSÃßüÞm Ddå>8€øíŽûwØîÞ{~‚ŠÞ¸ˆ\òõ1È(È5”L‚\GÉ4¨}À7 ø6\p˜¸pƒ‘w/,B<âC|ƒ/W§ú¾¶ÕNßµµïYTt"£xú5´þ+øHd®á€Tô[àü "s°y”ž­ëéßÙx™¥keF†øiªÇÎÚ[Ò¨»~!ÑF¼×P2æë*ÈÈM Œ¢ ¡5hîG`Ö1ú>eW¶—”<}˜ÁUøp8šÙÛƒ±õ.Tlè·ïUX|b±+™ô5³2P1ÚQ¨°ƒZ‹û{~¹ŸBƒ‰Mvh‡Ùó0ÈuÄ{@0@<  ̃”Q”@æA x&è&DSæº9ìt†hÜ8u¸žýþK ¯&Àx&Ñix¯ d! X€Ñ€ƒb¨€øÒ<#¤±ºïHñÉÇ7au²V2„ißRï  ˆÂQ€q§Ñ5ÍÁÍÀ…²\Ö¥#XÕR5ã¾ô,¸¾ UQ% ˆžm8\7í­Í7±ö\Ä«C} Ü( Pˆj¨9 /‚¡Û¥LÐÚ]#í‚€ç@ÝÆW€ÐÄX"p·¢Ñká€ÀÙÚ­j®^˜ÃJ‡›HS%í.4{+@Ì­Ö©;@aµvæœ\múñ,xQÀiw€¦Z´Ð~ÍB¡F1_CÁÛ« ðzuÆ9V™¾Eªx3ÔÞePE¦éD Í QÔæêÔ«ùÙ:ÀéU¸ûWœÒãNÑÈŸÎì^p¯µÞÀ´¹Ð !*è@áJ‘Ùé:NUNú_bã«í‡æ¯ÔϘ‰Iæ&Ö‘ìêwжEp/´¿R R¬quÜ8±&&ë»ðÁ997î}vï&¹!RH› @P”¦Ê”®—˜ø´Ë3ƒ/1¾f‰ìž_sèÜÉVh`VFqz3ؽ Ó (B[iO3;v“ùé 7fB”òîY? <¿6Çé ÐdÍph ÿžýdv=ÈÜy®ž›¤0Q™¯ƒ´ïTn]Î3ñÞ5æ&*Ø¡¶mÙŽeÿ$Ù5ËÄÃCØ"œÙþ­ýÄúº‘}Ï}`üߎ“ÿðò— ˜ƒpÌ6$7An¡$¢Ršq20Íd†°@W•­›X!ãø«‡±WÚcöæM˜1 ÷1"èwPúO€„4à‚ÔƒD&곎Ðí ›4Ö¸âÎÎ(—¦* +ptÃÎ^°ÃÚÁýPjš,Jtp nÇ CAFØ^Œrqªr4Xæ >ÍÁT_§m%¢Ðwtêo´í‚8 i Á{6ZôÌV—íÀŸf0ÖecZ!Höƒ7õ÷Ákýï·žBUk˜ î…%R™jU&Œ…&3øÝz8½Ä}Buˆ¦ëS¿Ñ`‰,¼„ Á:µÄLˆ@& Ó X.@6Þµ"_^œ)ðÚ×§"iY¡`ðÖ¿ A%CtE€ì²VHAnÑ+ Þíä)Ú¦M­´6S[©U«6ÝÖ­aM»•%`.;mR'6qÁv‚s3Ìgïü*}uΉ{ƒ>Ò£×ï“ã“ÿÿ¹½kÜii{éÀ t`•PFÏ>ù>wH´;x-°Oª½Ì]šQƒè Ñ¡kH¡{^¡‰/€¾ 8 ì+_íaS›òJkê½ CÕ2p.]§tÆGcýƒ„‚’S   èD†î|p8¼i«öÝÍlßࢡ Ö,ƒueä”Ó’ˆ? çF`$4Fß¾–@’8zw¨üîªöU´îÝßÎîM.öA™b3põ¦Tt2§Ôõ+€ñiøhŽ À•‹aNëCDÄDÎß9 |ïÖûÝ>ñöo„ÌÜ‚†áLTÐçëHEŽÈ9i]FJáÁzXYÓ)xõ"ü#˜âäßûøìâ`Ø—O±kªÿ«Ols?ü`?hg|2¯]‘$tpE"›*2-^x|‹$"RŠçÏÀÇ8ÕÓ’Ä[w‚À{Í÷ù:lçP«,ξQx=hH•ƒ´š§ÕükàëM0œ€_~§‰Ó=}  #W:-ɧÛ;‹Ž|ç‡ñdË*Jàì¼Ñš&¡™a~DýÍ,Z¯õ߀àuØU÷VA(]N<6åˆ]‹ocõ#¯}cî" ¾Üµ}ÏæºýUl_Ñ$¼xYÔLàQ6‹*A=kêPŸŒÁîuPë†aÍËÕÁhåÌÔ¬Cx·0*÷;Ÿ8´‹§š—dRçõ~˜˜SžWžVÀÁŒ^[L&ç`0l†9} “Ž•Ï}öß(ô CùPÞ?ÐØR½wïÑ)8¶z3 -›÷ó#1>%ÇG·À¹q'Ó·@¬u‚À1ÉRrKGÝz/õ+ 4 6}¼l—hÒ¶ Ø€´"¡l’,èF'ü9í5ðýûàj¬‰Ë:R¢Í­ÕFni]]ãÁ)iRYŠô®M޶ŒÊ¹ÍjÇf“ªiÊ®F³Z£ø—4­‚õ^;µjšB÷¶û¨¯r1ûo¨,‘¢SÖ(µÅÓF'‡è0L¸Ø¼"%æÙI`²…'J‰€òþ ¢û´Þ/Ø4p–ØQ—ÏE2^¿yKu ©ff¯ÊE";¶™d–&`µE&)s–bÿ]‘:žúñNJJí;n¢z­4XSë™'„®Ö¬ÍGÚ5õ, ëd:šmz ÍávµÈwMn1)“ذ‚ï:ô“=”•»@y’u½lmñ²£ÖÎÏ"Åkö¤œ[[ªfµY£ (¡×J@í{ºžüÑ.ªjÊ ;Ê '<îƒv/|ž„+“9ÒÀ¼½ÀHÂ]¬ìð96úÑ¡±œØW¿¡_£×ð7{`¿N]ƒc#pó¶©ódjÞã€P4™ßáDƒé[òš»àÏF 4+žD`»öÖÀŸ†áêtöTl$¬n¯‚ÐH½Ä•mµ6ÚȤfSÄÆâ9ˆ£[4÷¿ýêæe•SŽ‘)<ñ–( •%’À+=Ö®ót,ì¿0(Á‹«—\m´ãÃãAâãItà°ì ËQ÷;JA_üÁÍph <½ ž¹GzÿÄH{"äNàÒé@gî.$oÈpÈ6Éœß; Ë€…ε‰jŒMÃ[gb™»n9øƒ1žùÕEÛ|&äêû ÙŽQæºEೞÌç_ÑF3+æ<ˆK1h+7S½ß@D‚0ýíãiÏþ"ÀÌtŠb‡–½[±Û‰ßH²Üí2‚Å*Áó\:Lr€Ž¶í>B€pìÌ¥¥IT#Y"Rì´³íÁ&¹´CŸŽÑ|ŸKÆüyyâ>Ì]¹j ûÄñ`â_=tTÊ|:kJ‘ Ò¦Q©ªrΟÀ©¼oøÎ¼íºÿVW¢uPwC‹G÷ÊR÷ÆÖjCN'aG¥$¢™òUݾYUWóÙéÇÞìãéŸîã¶.ÓÓ3×£1º_àgx•÷y¨ù»Ìe)ªÙÛ2üºf°ç$)"¢xñ·=¸Ü.Šö "SæfR¼ù||—Ÿ?ÞÑH<4މs@™gbNÂÌAȦüoz»§ã±mÛm À¥7þðøï‘Ur·ÑP||*@庌@Z·¨ªƒtvð a~}¤;¾í¡f6ÜÛ@Z3·U¤8õÞQ¸q¿áð^`Ü¢sPÆ;ФiŸcéDÖÅîsÑizß¾ÀÐg×ðÖUðÀ·ÛY^æÊ·Œ‚E:LÄ“œ:~q¾ãLü?¢ÐTºhŒ¦©T1еPçÃ|ô^€¡O¯QßâcÏÓ-¬®÷b³‹;­««ÿ‰@—µ]N ëo¯÷uˆ(P¿Þk¹°2Ö°úÄðŸà#,u•Rßì£í›»ïÁ¦¡R%¶ …Ë€n -Ë‘ò[@犲Ò:AÑZ©ceµ sFNĦO¨,³(•®ôP³ÅÇš 5Ø%hl급¦æJÕEÏþìe€ºB'ÓòøU¦hUjOuë·5³ªÖ‹©-ÐJÈD湟¿Œ¯Q ,%—È|ˆBEE¦sØD7­ Jõ,v´WÖ©[·»K@IçøçÄQ//€éEìk7Öør¨têGƬ 5MÕ2âväîPâ¿9žX žWJÝ.Ê*=û¾L‰Ûs©<ÒGÏ+ ^Yw¯ Y¥w40HrG|]âe8ÀËW¹cÜ èñ8€Ë×b5ÊØŒgéãô±¨Ë5hF2®âýÎ1èlsárâ÷1­ÄGq%óP÷¡¾ÀUhWÝqÓíøOìByüïˆ_¾M­‡OÏt ãB ~\aò÷ÁD$hÃjZÿøP‹…WÏ2MãBÀ°;â®ÿìÀ@aLjPæ‹‹Å>þúÃnBÙ$ëħ-𞊜‹UM–êø¸ª²ÄlEô£‚3Öâ›hG€ <΂5FKÓÍo±,Þ`Hm’hJGýGF+6«^ïÊk [ï}1FàŸÂ×u¹Q݈Ôlu”0€*c©«¨a ¦£„k¿È¤UÄyhEPE°QØ÷%éßý‹X ô·“$Ô#i F’,™„ ä2Ôë”Ùkš›Öù˜¾¢bŠ€éÁ™“É·3m>‹1Šˆcfã.´9<ý„‡q!² @ñ^²yÞ~™-ÿ«64`àg{%ú·+df6‘{ÁÇxåÏÃï,Xd«!â’v梊:ò€Íx‡ñ<òx #(a'ÚqxR a&Z1sÅBœ€Dp:ªèVýÖ¶ÿ˜ÎŸÃ-OôX-c„Üu©3V~Òë†4ÅÙøÔ.å%’F½x{Q=T\9WÛã˽cH§Vâ—_Ã…Ä ²Ç°ðø›ÂÓ<Õ!{–÷¨PÎëóß¾0Z׃nìA„à ÄïxYÅ"ÃÄ{îÃíÔZhI¤˜¥§Y˜°·ÇÖŠZZØYõêyë}%tcâ‘÷ÂW¿m½vç…Ûn¿{Éc”sÄИã’Dö4SÎ m‘=ût/ÑÞÆ®ª7ÆŠF7ú~ëEþÆ¢×o¶òœ)î 7­o=‘3 Ô££&A%þr„v¬ÛaÓ=L›ÊC{Üÿ•7­Á º1àŽx„ ûKVÌê´Ê.âõ˜W ‰G+Pg{M„Ö„Ÿî·å>¦wòÐ{¸m£b¶cø¨¯§~Ï·ž»ÚæKN³&°|ò‡žxðbçÝ8ÛÿÔ#³$R‰ŽŠ¹2¡É›«é˜Ê¯¸ù…^›°k,%h˜|~Ÿß8ÌÉ(G*ŽŽ€´F5Õ1‹I)/ôzý؆.¿©ËnœŒ’£€ ú«Z§qp+×L7çÑÝžB ÇD@Ѳt”Ì ~€÷òq”‰§Ð÷Ÿšâ£¿xŽ@ô‡jè@ µÃ_CŠfÔßG¢Ž:©rRÞlCõؼ‘¥–¤tb£c)£Š"¶`+¶¡„eŒ&T*LmršÆÒøÄUØ©³0XDYôcrh"ô£';¢€ †éšAဠS²¦îOí‡Æw`Мr™8EŒ¢ŒÞÅDBJØÀΧØö$~LØ„"jƺ²¢k:ýeþlšßCöØËê)¡ÔQÅf r„=ì_Çà&·ÓÕAÏn¶­!üaç!Wÿ ™6Fª\ÐîBä4^ jI½†VT0Œ7Q% RÞ@ÿ&¦LdkÑK-k]:éIÝ]óbW ï¾Jß³„Ÿú¢Š€6ªU¦åœr¨[’m&°oj„·é‹LJHôžó×-|Þx/eÓü|ús¿´¨×—–yë%Š?"¼EèG9&ä91ëtcƒÜÐ|ñ«B}¹oëw‹ñ1.‡>+––ŠåeâªyîÁE8'£™ë¯öLì>_Üx®—Šñn1þ­¸ó"±{¾¸¸ÕeholF\4’¢BØÇÈ. ­Àú>ÏMú7ŸùÚ¯<Ýx;P@ £×¾æ»S^Ôº7µ¦¥™×¶°ñ ô0£“5>Þn²]dÁgC´Lñ ízè^òŒ»5 CØ‹þ#,¡o°ìŠ)î¹ó?hÉ:mÃO™ÜN-²p¢%ø>2¨5æÝjKñ:1Þ(V¯Sú‹ÙVâ",ÄIhöÛ“ ÿS]»ù\•_™+þbŽœŠ ›b¼E\w±àcø}œ†6Œ& unit.p2().x() or unit.p1().y() > unit.p2().y(): if self.proxyWidget and self.proxyWidget.isVisible(): self.proxyWidget.hide() self.proxyWidget.setGeometry(self.rect()) return if self.proxyWidget and not self.proxyWidget.isVisible(): self.proxyWidget.show() self.proxyWidget.setFocus() if (self.proxyWidget and self.proxyWidget.pos() != QtCore.QPoint()): self.proxyWidget.setGeometry(self.boundingRect().adjusted(25, 25, -25, -25)) painter.setOpacity(self.opacity()) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(QtGui.QColor(0, 0, 0, 64)) painter.drawRoundRect(self.rect().translated(2, 2)) if not self.proxyWidget: gradient= QtGui.QLinearGradient (self.rect().topLeft(), self.rect().bottomRight()) col = self.brush.color() gradient.setColorAt(0, col) gradient.setColorAt(1, col.darker(int(200 + self.lastVal * 50))) painter.setBrush(gradient) else: painter.setBrush(self.brush) painter.setPen(QtGui.QPen(QtCore.Qt.black, 1)) painter.drawRoundRect(self.rect()) if not self.pix.isNull(): painter.scale(1.95, 1.95) painter.drawPixmap(-self.pix.width() / 2, -self.pix.height() / 2, self.pix) def boundingRect(self): penW = 0.5 shadowW = 2.0 return self.rect().adjusted(-penW, -penW, penW + shadowW, penW + shadowW) def setPixmap(self, pixmap): self.pix = pixmap if self.scene() and self.isVisible(): self.update() def opacity(self): parent = self.parentItem() if parent: op = parent.opacity() else: op = 0 return self.opa + op def setOpacity(self, opacity): self.opa = opacity self.update() def keyPressEvent(self, event): if event.isAutoRepeat() or event.key() != QtCore.Qt.Key_Return \ or (self.timeLine.state() == QtCore.QTimeLine.Running and self.timeLine.direction() == QtCore.QTimeLine.Forward): super(RoundRectItem, self).keyPressEvent(event) return self.timeLine.stop() self.timeLine.setDirection(QtCore.QTimeLine.Forward) self.timeLine.start() self.qobject.activated.emit() def keyReleaseEvent(self, event): if event.key() != QtCore.Qt.Key_Return: super(RoundRectItem, self).keyReleaseEvent(event) return self.timeLine.stop() self.timeLine.setDirection(QtCore.QTimeLine.Backward) self.timeLine.start() def updateValue(self, value): self.lastVal = value if not self.proxyWidget: self.setTransform(QtGui.QTransform().scale(1 - value / 10.0, 1 - value / 10.0)) class SplashItem(QtGui.QGraphicsWidget): def __init__(self, parent=None): super(SplashItem, self).__init__(parent) self.opacity = 1.0 self.timeLine = QtCore.QTimeLine(350) self.timeLine.setCurveShape(QtCore.QTimeLine.EaseInCurve) self.timeLine.valueChanged.connect(self.setValue) self.text = "Welcome to the Pad Navigator Example. You can use the " \ "keyboard arrows to navigate the icons, and press enter to " \ "activate an item. Please " "press any key to continue." self.resize(400, 175) def paint(self, painter, qstyleoptiongraphicsitem, qwidget): painter.setOpacity(self.opacity) painter.setPen(QtGui.QPen(QtCore.Qt.black, 2)) painter.setBrush(QtGui.QColor(245, 245, 255, 220)) painter.setClipRect(self.rect()) painter.drawRoundRect(3, -100 + 3, 400 - 6, 250 - 6) textRect = self.rect().adjusted(10, 10, -10, -10) flags = int(QtCore.Qt.AlignTop | QtCore.Qt.AlignLeft) | QtCore.Qt.TextWordWrap font = QtGui.QFont() font.setPixelSize(18) painter.setPen(QtCore.Qt.black) painter.setFont(font) painter.drawText(textRect, flags, self.text) def keyPressEvent(self, event): if self.timeLine.state() == QtCore.QTimeLine.NotRunning: self.timeLine.start() def setValue(self, value): self.opacity = 1 - value self.setPos(self.x(), self.scene().sceneRect().top() - self.rect().height() * value) if value == 1: self.hide() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) panel = Panel(3, 3) panel.setFocus() panel.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/padnavigator.qrc0000644000076500000240000000070412536324427026133 0ustar philstaff00000000000000 images/blue_angle_swirl.jpg images/artsfftscope.png images/kontact_contacts.png images/kontact_journal.png images/kontact_mail.png images/kontact_notes.png images/kopeteavailable.png images/metacontact_online.png images/minitools.png images/blue_angle_swirl.jpg PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/padnavigator_rc2.py0000644000076500000240000057626312536324427026566 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:39:50 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x09\x4c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x2f\x08\x06\x00\x00\x00\xa5\x82\x49\xc9\ \x00\x00\x09\x13\x49\x44\x41\x54\x78\x5e\xd5\x9a\x5b\x6c\x1c\xe5\ \x19\x86\x9f\x7f\x66\x67\xcf\xde\x4c\x36\x5e\x27\x3e\x80\x9d\xf3\ \x81\x84\x2c\xa0\x0a\xaa\x4a\x64\xab\xaa\x52\x0b\x2a\xb8\x42\x42\ \xaa\x7a\x93\x10\x5a\x62\x6e\x12\xae\x7a\x99\x46\x2a\xf4\xa6\x52\ \xb9\x6b\x25\xa0\x44\xea\x55\x11\x28\xa1\x2a\x55\x91\x2a\x12\x50\ \x4b\x4f\x10\x6c\x48\xdd\x92\xc4\xe0\xc4\x89\x63\x3b\x4e\xf6\x64\ \xaf\x77\x67\x67\xfe\xaf\x23\xef\x4a\xd3\xd5\xe2\x20\xf0\x41\xe2\ \x93\x5e\x7d\xb3\xb2\x56\xfa\x1e\xbf\xdf\xec\xfe\xaf\x66\x95\x88\ \xf0\x55\xae\x10\xb7\x29\xa5\x14\x5f\xa4\xde\x7d\x8a\x01\x81\x41\ \x2d\xf4\x0b\x64\x35\x20\x80\x86\x61\x11\x46\x04\xce\x7e\xfb\x05\ \xc6\xf9\x02\x25\x22\x9f\x0f\xb0\x5c\xfd\xe3\x29\x72\x02\xc7\xad\ \x64\x34\x97\xda\x94\x22\x9e\x4e\x90\x48\x27\x11\x1a\x95\x9f\x2a\ \xe6\x16\xca\x55\x66\x2e\xdf\xe2\xcd\x1f\xb9\x67\x05\x4e\x7c\xe7\ \x05\xce\xb2\xbc\x5a\x3e\xc0\x7b\x47\xb0\x05\x4e\x59\x89\x68\xae\ \x67\xff\x9d\x64\xb6\x75\x21\xe9\x3d\x90\xe8\x87\x98\x05\x66\x05\ \xdc\x22\x76\x65\x0c\x4a\x93\xec\x29\xef\x60\xf2\xe2\x4c\xee\xe2\ \xf0\x95\xdc\x1f\x9f\xac\x3e\x2f\x70\xe2\xe1\x17\x29\xb0\x8c\x52\ \x22\xf2\xa5\x56\xe8\xfd\x23\x64\x05\xce\x74\xef\xeb\xb7\x7b\xee\ \xdd\x89\xf4\x3e\x04\xdd\x8f\xa3\x42\x9d\x80\xdb\x90\x5c\x04\xa9\ \x00\x49\xa0\x02\x0b\xaf\xc3\xc4\x5b\xb8\x93\x61\x46\xff\xf9\x09\ \x13\x63\x53\xc3\x02\xdf\xfc\xde\x6d\x20\x44\x64\xe5\x01\x3e\x38\ \xc2\x80\xf8\xed\x8e\xfb\x77\xd8\x1b\xee\xde\x01\x7b\x7e\x82\x8a\ \xde\x07\xb8\x88\x5c\xf2\xf5\x31\xc8\x28\xc8\x35\x94\x4c\x82\x5c\ \x47\xc9\x34\xa8\x7d\xc0\x37\xa0\xf8\x36\x5c\x70\x98\xb8\x70\x83\ \x91\x77\x2f\x2c\x42\x3c\xe2\x43\x7c\x19\x00\x83\x2f\x57\xa7\xfa\ \xbe\xb6\xd5\x4e\xdf\xb5\x15\xb5\xef\x59\x54\x74\x0f\x22\xa3\x78\ \xfa\x35\xb4\xfe\x2b\xf8\x10\x48\x01\x64\xae\xe1\x80\x54\x01\x07\ \xf4\x5b\xe0\xfc\x0c\x22\x73\xb0\x79\x94\x9e\xad\xeb\xe9\xdf\xd9\ \x9d\x15\x78\x99\xa5\x6b\x65\x01\x46\x86\xf8\x69\xaa\xc7\xce\xda\ \x5b\xd2\xa8\xbb\x7e\x08\x21\x1b\xd1\x7f\x46\xbc\xd7\x50\x32\xe6\ \xeb\x2a\xc8\x14\xc8\x4d\x14\x05\xa0\x8c\xa2\x09\xa1\x35\x68\x05\ \xee\x47\x60\xd6\x31\xfa\x3e\x65\x57\xb6\x97\x94\x1d\x1b\x3c\x7d\ \x98\xc1\x55\x07\xf8\x70\x08\x1b\x38\x9a\xd9\xdb\x83\xb1\xf5\x2e\ \x54\x6c\x1f\xe8\xb7\x10\xef\x55\x58\x1c\x7c\x62\xb1\x2b\x99\xf4\ \x35\xb3\x08\x81\x14\x81\x32\x50\x03\x31\x1a\x00\xda\x00\x51\xa8\ \xb0\x83\x5a\x7f\x8b\x1d\xfb\x7b\x01\x7e\xb9\x16\x9f\x42\x83\x89\ \x4d\x1d\x76\x68\x9d\x87\xd9\xf3\x30\xc8\x75\xc4\x7b\x11\x05\x40\ \x18\x30\x40\x3c\xa0\x0a\xcc\x83\x94\x51\x94\x40\xe6\x41\x0b\x78\ \x26\xe8\x26\x44\x53\xe6\xba\x39\xec\x74\x86\x68\xdc\x1a\x38\x75\ \xb8\x9e\xfd\xfe\x4b\x0c\xaf\x26\xc0\x81\x78\x26\x81\xd1\x69\x03\ \x16\x78\xaf\xa0\x64\x1c\x21\x0a\x58\x80\x02\xd1\x80\x83\x62\x01\ \xa8\x80\xf8\xd2\x1a\x3c\x23\x90\x0e\xa4\x14\x18\xb1\x05\xba\xef\ \x48\xf1\xc9\xc7\x37\x07\x61\x75\x01\xb2\x56\x32\x84\x69\xdf\x01\ \x52\x06\xef\x0d\xa0\x88\xc2\x02\x15\x02\x51\x80\x06\x71\x01\xa7\ \xd1\x35\xcd\xc1\xcd\xc0\x81\x16\x08\x85\xb2\x5c\xd6\xa5\x23\x08\ \x1c\x58\xd5\x15\x52\x90\x35\xe3\x06\x18\xbe\xf4\x2c\xb8\xbe\x0c\ \x01\x55\x03\x51\x04\x25\xa0\x15\x88\x01\x9e\x02\x6d\x12\x38\x10\ \x5c\x37\xef\x07\x94\xa9\x11\xed\xad\xcd\x37\xb1\xf6\x5c\xc4\xab\ \x43\x7d\x0c\xdc\x10\x28\x0d\x0a\x50\x12\x00\x88\x6a\xa8\x39\xa0\ \x2f\x82\xa1\xdb\xa5\x4c\xd0\xda\x5d\x23\x00\xed\x82\x0f\x80\xe7\ \x40\xdd\x04\xc3\x08\x86\x57\x80\xd0\x04\x00\xc4\x58\x1a\x22\x70\ \x01\xb7\xa2\xd1\x6b\xe1\x80\xc0\xd9\xda\xad\x6a\xae\x5e\x98\xc3\ \x4a\x87\x9b\x0e\x48\x53\x04\x25\xed\x2e\x34\x7b\x2b\x40\x13\xcc\ \xad\xd6\xa9\x3b\x1e\x40\x61\xb5\x1d\x18\x76\xe6\x9c\x5c\x6d\xfa\ \x12\xf1\x81\x2c\x78\x51\xc0\x69\x77\x80\xa6\x03\x5a\x81\xb4\x02\ \xd0\x7e\xcd\x42\xa1\x46\x31\x5f\x43\xc1\xdb\xab\x0d\xf0\x7a\x75\ \xc6\x39\x56\x99\xbe\x45\xaa\x78\x05\x33\xd4\x07\xde\x65\x50\x04\ \x45\x00\x81\xa6\xe9\x44\x03\xa0\xcd\x0d\x51\xd4\xe6\xea\xd4\xab\ \x0e\xf9\xd9\x3a\xc0\xe9\x55\x05\xb8\xfb\x57\x9c\x1d\x19\xd2\xe3\ \x4e\xd1\x1d\xc8\x9f\x7f\x8f\xce\xec\x5e\x70\xaf\xb5\xde\xc0\xb4\ \xb9\xd0\x0a\x21\x2a\xe8\x40\xe1\x4a\x91\xd9\xe9\x3a\x4e\x55\x4e\ \xfa\x5f\x62\xe3\xab\xed\x00\x02\x87\xe6\xaf\xd4\xcf\x98\x89\x49\ \xe6\x26\xd6\x91\xec\xea\x01\x77\x8a\xb6\x12\x45\x70\x2f\xb4\x0f\ \x0e\x90\xbf\x52\xa0\x52\xac\x71\x75\xdc\x05\x38\xb1\x26\x81\x26\ \xeb\xbb\xf0\xc1\x11\x39\x39\x37\xee\x1d\x14\x7d\x1e\x76\xef\x26\ \xb9\x21\x0e\x52\x03\x05\x48\x9b\x0b\x01\x40\x50\x94\xa6\xca\x94\ \xae\x97\x98\xf8\x04\xb4\xcb\x33\x83\x2f\x31\xbe\x66\x89\xec\x9e\ \x5f\x73\xe8\xdc\x11\xc9\x19\x56\x68\x60\x56\x46\x71\x7a\x33\xd8\ \xbd\x11\x0c\xd3\x20\x28\x05\x42\x5b\x69\x4f\x33\x3b\x76\x93\xf9\ \xe9\x0a\x37\x66\x42\x94\xf2\xee\x59\x3f\x0b\x3c\xbf\x36\xc7\xe9\ \x20\xd0\x64\xcd\x70\x68\xa0\xff\x9e\xfd\x64\x76\x3d\xc8\xdc\x8d\ \x79\xae\x9e\x9b\xa4\x30\x51\xc2\x99\xaf\x83\xb4\x0f\xef\x54\x1c\ \x6e\x5d\xce\x33\xf1\xde\x35\xe6\x26\x2a\xd8\xa1\x1e\xb6\x6d\xd9\ \x8e\x15\x0e\x65\x7f\xff\x24\xd9\x35\xcb\xc4\xc3\x43\xd8\x22\x9c\ \xd9\xfe\xad\xfd\xc4\xfa\xba\x91\x7d\xcf\x11\x7d\x60\x81\xfc\xdf\ \x8e\x93\xff\xf0\x1d\xf2\x97\x0b\x98\x11\x83\x70\x3c\x4c\xb3\xa8\ \x96\xaa\x88\x0b\x86\x01\xf1\xb4\x22\xb1\xcb\x44\xb9\x37\x61\x3c\ \xce\x3d\x7e\x24\xfd\xfb\xfb\x63\x67\xfc\x3c\xb0\xd9\x5f\xa3\xc2\ \xaa\x3b\xa0\xe0\x54\xef\x7d\x5b\xed\x58\x26\x85\x6c\x3f\x84\xb2\ \x76\x63\x46\xee\xa6\x33\xf7\x12\x3d\x8f\x1c\x24\xd5\x73\x3f\xd1\ \xd4\x36\xd0\xeb\x41\x92\x40\x84\x44\x26\x49\xe7\xee\x28\x5d\xf7\ \x1a\x24\x07\xc0\x08\x2b\x54\x4c\x50\x03\x33\xd8\x49\x8b\xbd\x7b\ \x7b\x6d\xe0\xd4\xea\x39\x10\x04\x9a\x63\x89\x2e\x3b\x97\xd9\xd9\ \x07\x9b\x1f\x44\x75\x7c\x17\x58\x00\x99\x41\x7b\xbf\xc5\xea\xab\ \x61\x77\xf6\x53\x9f\x08\xe3\x95\x22\x28\xb5\x00\x46\x05\xc3\x98\ \x07\xe5\x80\x12\x14\xcd\x13\xa8\xa9\x08\x6d\xf4\x30\x32\x25\xb6\ \x5c\x4a\x33\x79\x2d\x9f\x3b\x75\xb8\x72\xcc\xcf\x03\xcf\xaf\x0a\ \xc0\x47\x43\xd8\x02\xc7\xfb\x1e\xd8\x09\xe9\x18\x6c\xfc\x31\xc8\ \x3c\x30\x8d\xb8\x3f\x6f\x9e\xff\x5d\x54\xa4\x4a\x64\x2b\x88\x63\ \xa2\x2b\x1e\xd4\x1c\xc4\x71\x40\xd5\x17\x87\x56\x86\xc2\x08\x1b\ \x7e\x6f\x9e\x4a\x23\xf3\x90\x8a\x70\xef\x9e\x8d\xbc\xf9\x97\x4f\ \x8f\xbf\x76\x98\x93\x8f\xf9\xab\xb4\xe2\x00\x0a\x8e\x77\xed\x1b\ \xb0\xc3\xa9\x30\x6c\xfe\x01\xa0\x9b\xc3\x3f\xdb\x88\x93\x00\x34\ \x73\x00\x55\x94\x55\x21\xb4\xee\xff\x03\xbd\x6a\x3f\x4e\x37\xcf\ \x4a\xf4\xcd\x11\x9f\xed\x60\x77\xbf\x6d\x8f\x5e\x2e\x1c\x03\x7e\ \xba\xa2\x99\xf8\xdf\x43\xd8\x66\x38\x74\x6c\xc3\x8e\x5e\xe8\xb6\ \x21\xf6\x75\xa0\x84\xb8\xcf\x81\x3e\x07\xcc\x36\x24\x37\x41\x6e\ \xa1\x24\x8f\xa2\x08\x52\x06\x16\x9a\x71\x32\x08\x30\xcd\x1e\x64\ \x86\xb0\x40\x57\x95\xad\x9b\x12\x58\x21\xe3\xf8\xab\x87\xb1\x57\ \xda\x81\x63\xf6\xe6\x4d\x98\x31\xa0\xf7\x31\x90\x22\xe8\x77\x50\ \xfa\x4f\x80\x19\x84\x19\x34\xe0\x82\xd4\x83\x44\x26\xea\xb3\x8e\ \xd0\xed\x20\x9b\x34\xd6\xb8\xe2\xce\xce\x28\x97\xa6\x2a\x81\x0b\ \x2b\x04\x70\x74\xc3\xce\x5e\xb0\xc3\x10\xda\x06\x14\xc1\xfd\x05\ \x50\x6a\x9a\x18\x00\x2c\x4a\x74\x70\x0a\x0d\x00\x02\x05\x6e\x04\ \xc7\x0b\x43\x41\x46\xd8\x5e\x8c\x72\x71\xaa\x72\x34\x00\x58\xe6\ \x0a\x8d\x3e\xcd\xc1\x54\x5f\xa7\x6d\x25\xa2\xd0\x77\x00\x74\x19\ \xea\x7f\x00\x6f\x06\xb4\x06\xed\x82\x38\x0d\x69\x0f\x3c\x69\x8d\ \x8f\xae\xd9\xe8\x4b\x25\x32\x31\x02\xd0\x6e\x83\xb8\x29\xf4\xa4\ \x2c\xfb\x95\x27\x38\xb8\x22\x0e\x28\x78\xb4\xa3\x6f\x03\x44\x2b\ \x10\xd9\x05\x7a\x0e\x6a\x6f\x80\x98\x41\x90\x41\x5a\x0f\x70\xa8\ \xb6\x2c\xd0\xda\x83\x55\x6a\x51\xc4\x80\x18\xf4\x26\x4d\xae\x15\ \xeb\x8f\x02\x27\x57\x62\x85\x06\x93\x7d\x9d\x90\xee\x06\x11\xf0\ \xae\x80\x73\x15\x94\xd1\x9e\x85\x59\xe2\x04\xaa\x83\x4c\xd0\xb2\ \x3e\x81\x0b\xc1\x7b\x36\x5a\xf4\xcc\x56\x01\x06\x97\xed\xc0\x7f\ \x9f\x66\x30\xd6\x65\x63\x5a\x21\x48\xf6\x83\x37\x07\xf5\xf7\xc1\ \x6b\xfd\xef\xb7\x9e\x42\x55\x6b\x98\x09\xee\x85\x25\x52\x99\x6a\ \x55\x26\x8c\x85\x26\x13\x33\xf8\xdd\x13\x7a\x10\x38\xbd\x1c\x07\ \x0e\xc4\x7d\x00\x42\x75\x88\xa6\x1b\xeb\x53\xbf\xd1\x00\x60\x89\ \x2c\xbc\x84\x0b\xc1\x3a\xb5\x01\x05\x0e\x01\xc4\x4c\x88\x40\x26\ \x0a\xd3\x0b\x1c\x58\x2e\x40\x36\xde\xb5\x0e\x22\x11\x10\x5f\x5e\ \x05\x9c\x29\xf0\xda\xd7\xa7\x1d\x22\x00\x69\x59\xa1\x60\xf0\xd6\ \xbf\x09\x41\x25\x43\x74\x45\x1c\x80\xec\xb2\x56\x48\x41\x6e\xd1\ \x01\x2b\x0c\xde\x3c\x48\x15\x3c\x09\x56\x08\x5a\x6f\x62\x54\xcb\ \x2a\xb5\x48\xb7\xf7\x60\xf7\x69\xad\x94\x85\x1d\x12\x80\xdc\xca\ \x04\x1a\xf1\xc0\x9d\x07\x6a\xe0\x85\x02\x07\x68\x5b\xa1\x16\x90\ \x76\x88\xf6\xeb\xa5\xca\x32\x56\x32\x0f\x54\x4a\xe0\x4c\x82\x11\ \x05\x49\xb6\x38\x10\xb8\xb0\x74\x9c\x6c\x17\xb7\x1d\x9e\xd9\xea\ \xca\x04\x1a\x81\xd3\xf9\x0b\x57\x07\xd7\xef\xe8\x83\x6b\xe7\x21\ \xdd\x01\x66\xb8\xe9\x80\x00\x7c\x8e\x03\x00\x5f\x60\xf0\xba\x86\ \x8f\xf2\x8b\x00\x17\xca\x00\x9c\x5e\xae\x03\xcf\x4c\x9f\x1b\xcb\ \x89\x27\x76\x7a\xcb\x46\x98\xaf\x40\xac\x0c\x49\x13\x0c\xb9\xfd\ \x4d\x0c\x2d\x03\x7f\xee\xe0\x63\x65\x5f\xa5\xc5\xeb\x8b\x65\x18\ \xc9\x53\x50\xf0\xcc\xb2\x9f\x52\xfe\xe7\x69\x06\xb4\xf0\x72\xbc\ \xb3\x23\x97\x1e\xe8\x22\xd5\x99\x04\xcf\x83\x88\x03\x51\x17\x62\ \x9e\x2f\x01\x73\x09\x17\x96\x1a\xb8\x58\x87\xd9\x6a\x20\xfc\x56\ \x83\xd1\x22\xcc\xd4\x18\x16\xe1\xd0\xe3\xbf\x61\x78\xc5\x9e\x52\ \x9e\x1f\xe2\xa0\x86\xa3\x56\x2c\x9c\xed\xf0\x21\x92\xa9\x18\xc9\ \x8e\x30\xa6\xa2\x01\xe4\x8b\x84\x80\xd6\xb4\x4b\x1a\x5d\x04\x66\ \x9b\xc7\x6b\x69\xe8\x66\x0d\xae\x2f\xc0\xa4\xaf\x79\x97\x71\x81\ \x13\x7e\xa0\x39\xb9\x6a\x8f\x59\x47\x86\xc8\x8a\x30\xa8\xe1\x80\ \x40\x2e\x9a\x08\x63\x18\x8a\x64\x32\x0c\x5a\x13\xb6\x0c\x22\x26\ \xa0\x35\xe2\x0b\x69\x40\xd5\x5d\x4d\xb9\xa6\x11\x11\x6e\x56\x05\ \xc7\x6b\x98\x20\x70\x56\xc3\xdb\x22\x9c\x1e\x0c\x1e\x2f\xb1\x4a\ \x00\xed\xfa\xd7\x11\xb2\x5a\x18\x08\x7e\x1b\xc1\x7e\x01\x5b\x0b\ \x34\x5e\x37\xbb\x50\xd0\x30\x12\xfc\x76\x82\xf1\x87\x5e\x6c\x1f\ \x78\x19\x00\x5f\xcd\xfa\x1f\x35\x30\x04\x37\x1b\x34\xa6\xbe\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x27\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x07\xee\x49\x44\x41\x54\x78\x5e\xd5\xda\x7b\x8c\x5c\xe5\ \x79\xc7\xf1\xcf\x7b\x66\x66\x67\xd6\xeb\xdd\xf5\xe2\xf5\xc6\x36\ \xc6\x60\xca\xd5\x26\x8e\x6d\xea\x62\xdc\xba\x10\xa2\x04\xd2\x8a\ \x04\xc2\x25\xae\x4b\xc3\x2d\x38\x29\x21\x94\x92\x56\xa4\x4e\x1c\ \x51\x88\x93\xa8\x88\x36\x95\x48\x43\x0b\x58\xa0\x12\x89\x06\x63\ \x6e\x49\x90\x0b\xb4\x29\x55\x84\x1b\x27\x34\x5c\x0c\xb6\x31\x6b\ \x7c\xc1\x97\xf5\xde\xed\xd9\xd9\x99\x39\x33\x6f\x23\x65\xff\xa8\ \x2c\x0b\x2b\x66\x2c\xad\xbf\xd2\x4f\xe7\xdf\xe7\xab\xe7\x7d\xf4\ \xbc\x47\xe7\x84\x18\xa3\xe3\x99\xc4\xf1\xcd\xf1\x2f\x20\xc6\xe8\ \x58\x1d\xa3\xb8\x42\x8c\x77\x88\xc7\x65\x07\xe2\x23\xce\xd2\x82\ \x0e\xd6\x5e\xe5\x4f\x51\x38\xae\x04\xf4\x7a\x26\x8e\x62\x98\xcb\ \xcf\xf6\x8f\x68\x46\x72\x5c\x08\xc4\x07\x30\xec\x74\x27\x12\x67\ \x22\x63\xf2\x95\x67\xfa\x08\x9a\x8e\x0b\x01\x07\x3c\x19\x87\x70\ \xf5\xf5\xbf\x49\x2f\xff\xfa\x47\xfe\x1e\xf9\x71\x2f\x10\x1f\xc6\ \xb0\xcb\xd4\xd1\xb1\x9a\x8e\x87\xa8\x51\x68\x36\x7f\x56\xbb\x19\ \x68\x1a\xd7\x02\x86\xac\x8a\x07\x71\xed\x2c\x6c\xc3\xb0\xf8\xb9\ \x93\x19\xe6\xa5\x2b\xdc\x8d\xfc\xf8\x16\xa8\x5a\x61\x00\x0b\x36\ \xe0\x5e\x3c\xc0\x79\x3f\x67\x3f\x33\x26\xbb\x1c\x05\xe4\xc6\xa5\ \x40\x5c\x6d\xa9\x1e\xfc\x31\x4c\x26\x3e\x47\x7c\x16\x5d\xe2\x65\ \x38\xc0\xcb\x57\xb9\x63\xdc\x0a\xe8\xf1\x8d\x38\x80\xcb\xd7\x62\ \x35\xca\xd8\x8c\x7f\x67\xe9\xe3\xf4\xb1\xa8\xcb\x35\x68\x46\x32\ \xae\x04\xe2\xfd\xce\x31\xe8\x6c\x73\xe1\x72\xe2\xf7\x31\x11\xad\ \xc4\x47\x71\x25\xf3\x50\xf7\xa1\x7f\xbe\xc0\x55\x68\x1a\x57\x02\ \x06\xdd\x19\x07\x71\xd3\xed\xf8\x4f\xec\x42\x0e\x79\xfc\x04\xef\ \x88\x5f\xbe\x4d\xad\x87\x4f\xcf\x74\x03\x0a\x08\xe3\x42\x20\x7e\ \x0f\x07\x5c\x61\x12\xf2\xf7\x12\x1f\xc1\x44\x04\x24\x68\xc3\x6a\ \x5a\xff\x81\x13\xf8\x50\x8b\x85\x57\xcf\x32\x0f\x4d\xe3\x42\xc0\ \xb0\x3b\xe2\x10\xae\xff\x03\xec\xc0\x8f\x90\x07\x40\x61\x4c\x6a\ \x50\xe6\x8b\x8b\xc5\x3e\xfe\xfa\xc3\x6e\x42\xd9\x07\x24\xeb\x08\ \xc4\xa7\x2d\xf0\x9e\x8a\x9c\x8b\x55\x4d\x96\xea\x90\xf8\xb8\xaa\ \xb2\xc4\x6c\x45\xf4\xa3\x82\x33\xd6\xe2\x9b\x68\x47\x02\x80\x0c\ \x12\x3c\xce\x82\x35\x46\x4b\xd3\xcd\x6f\xb1\x2c\xde\x60\x19\x48\ \x6d\x92\x68\x4a\x47\xfd\x47\x08\x06\x46\x2b\x36\x16\xab\x5e\xef\ \xca\x6b\x0a\x8f\x5b\xef\x7d\x08\x31\x46\xe0\x9f\xc2\xd7\x75\xb9\ \x51\xdd\x88\xd4\x6c\x75\x94\x30\x80\x12\x2a\x63\xa9\x13\xab\xa8\ \x61\x0a\xa6\xa3\x84\x6b\xbf\xc8\xa4\x55\xc4\x79\x68\x45\x06\x00\ \x50\x45\x9d\xb0\x51\xd8\xf7\x25\xe9\xdf\xfd\x8b\x58\xa0\xf4\x0e\ \x07\xb7\x93\x24\xd4\x23\x69\x20\x46\x92\x2c\x99\x84\x13\x0a\xe4\ \x32\xd4\xeb\x94\xd9\x1c\x6b\x9a\x9b\x12\x8f\x16\xd6\xf9\x1a\xc2\ \x98\x00\xbe\x1d\xa2\x0e\x62\x8a\x80\xe9\x18\xc1\x99\x93\xc9\xb7\ \x33\x6d\x3e\x9d\x8b\x31\x8a\x15\x88\x08\x00\x63\x66\x0f\xe3\x2e\ \xb4\x39\x3c\xfd\x84\x87\x71\x21\xb2\x20\x00\x40\xf1\x5e\xb2\x79\ \xde\x7e\x99\x2d\xff\xab\x36\x34\x60\xe0\x67\x7b\x25\x19\xfa\xb7\ \x12\x2b\x64\x12\x66\x36\x91\x7b\xc1\x14\x14\xc7\x04\x78\xe5\xcf\ \xc3\xef\x2c\x58\x64\xab\x21\xe2\x92\x76\xe6\x0f\xa2\x8a\x3a\xf2\ \x80\xcd\x78\x87\x18\xf1\x3c\xf2\x78\x0d\x23\x28\x61\x27\xda\x90\ \x71\x78\x52\x0c\x61\x26\x5a\x10\x31\x01\x73\x81\x90\xc5\x42\x9c\ \x80\x44\x70\x3a\xaa\xe8\x56\xfd\xd6\x05\xb6\xff\x98\xce\x02\x9f\ \x7f\xc3\x2d\x4f\xf4\x58\x8f\x2d\x63\x02\x84\x10\xdc\x75\xa9\x33\ \x56\x7e\xd2\xeb\x86\x34\xc5\xd9\xf8\xd4\x2e\x3c\x4c\xfc\x3a\x0a\ \xc8\x22\x83\x04\xd9\x43\x9e\x09\x32\x08\xde\x9f\x88\x1a\xea\x88\ \x88\x48\x11\x11\x51\x43\x8d\x10\xa9\x65\x85\x72\xdd\xc0\xcd\x83\ \x7a\x5f\x25\xdf\xa6\x74\xc9\x2f\xdd\xfc\x56\xd1\x76\xbc\x8b\x5d\ \xff\x5f\x00\x7c\xe2\x4c\x93\xd6\xdd\xaa\xc7\xb0\x5c\x9c\x88\x5b\ \x76\xe3\x13\xc4\xbd\x28\x38\xe6\x84\x88\x2c\x7d\x79\xa1\x50\xb5\ \xfb\x33\xdb\x54\x07\xc8\x4e\x50\x3e\xe5\x25\x7f\x92\x46\xbd\x78\ \x17\x7b\x51\x3d\x54\x00\x5c\x39\x57\xdb\xe3\xcb\xbd\x63\x48\xa7\ \x56\xe2\x97\x5f\xc3\x85\xc4\x0c\xb2\xc7\xb0\xf0\xf8\x9b\xc2\xd3\ \x3c\xd5\x21\x7b\x96\xf7\xa8\x0f\x50\xce\xeb\x9d\xf3\xdf\xbe\x30\ \x5a\xd7\x83\x6e\xec\x41\x84\xc3\x0a\x00\xc4\xef\x78\x59\xc5\x22\ \xc3\xc4\x7b\xee\xc3\xed\xd4\x5a\x90\x68\x18\x01\x49\xa4\x98\xa5\ \xa7\x59\x98\x90\xb0\xb7\xc7\xd6\x1b\x8a\x5a\x5a\xd8\x59\xf5\xea\ \x79\xeb\x7d\x05\x25\x74\x63\x1f\xe2\x91\xf7\x00\xc2\x57\x9d\x1f\ \xbf\x6d\xbd\x76\xe7\x85\xdb\x6e\x11\xbf\x7b\x03\xc9\x63\x94\x73\ \xc4\xd0\x98\xe3\x92\x44\xf6\x34\x53\xce\x0a\x6d\x91\x3d\xfb\x74\ \x2f\x1f\xd1\xde\xc6\xae\xaa\x37\xc6\x8a\x1f\x46\x37\xfa\x7e\xeb\ \x45\x16\xfe\xc6\xa2\xd7\x6f\xb6\xf2\x9c\x29\xee\x0a\x37\xad\x16\ \x6f\x3d\x91\x33\x06\x18\x0d\xd4\xa3\xa3\x26\x41\x25\xc3\xbe\x16\ \x72\x84\x76\xac\xdb\x61\xd3\x3d\x4c\x9b\xca\x43\x7b\xdc\xff\x95\ \x37\xad\xc1\x20\xba\x31\xe0\x10\x8e\x78\x84\x00\xa0\xfb\x4b\x56\ \xcc\xea\xb4\xca\x2e\xe2\xf5\x98\x57\xa0\x18\x89\x47\x2b\x50\x67\ \x7b\x1b\x4d\x84\xd6\x84\x9f\xee\xb7\xe5\x3e\xa6\x77\xf2\xd0\x7b\ \x1e\xb8\x6d\xa3\x1f\x62\x1f\xb6\x63\xf8\xa8\xaf\x12\x00\xa7\x7e\ \xcf\xb7\x9e\xbb\xda\xe6\x4b\x4e\xb3\x26\x3c\x48\xbc\x74\x94\x25\ \x09\x65\x47\x47\x26\xa2\x24\xc8\xb0\xf6\x80\xee\xc7\x98\xda\xc9\ \x5f\x6e\xb2\xf2\xc1\x1d\xd6\xe3\x3d\xec\x40\x11\x3e\xb0\x00\x7c\ \xf2\x87\x9e\x78\xf0\x62\xe7\xdd\x38\xdb\xff\xd4\x1e\x23\xb3\x24\ \x52\x89\x8e\x8a\x04\xb9\x32\xa1\xc9\x9b\xab\xe9\x98\xca\x15\xaf\ \xb8\xf9\x85\x5e\x9b\xb0\x6b\x2c\x25\x68\x98\x00\x7c\x7e\x9d\x9f\ \xdf\x38\x8f\xcc\xc9\x28\x47\x2a\x8e\x8e\x80\xb4\x46\x35\xd5\x31\ \x8b\x49\x29\x2f\xf4\x7a\x05\xfd\xd8\x86\x14\x1a\x2e\x10\xbf\xa9\ \xcb\x6e\x9c\x8c\x92\xa3\x17\x80\x0c\xfa\xab\x5a\xa7\x71\x70\x2b\ \xd7\x4c\x37\xe7\xd1\xdd\x9e\x42\x0a\xc7\x44\x40\xd1\xb2\x74\x94\ \xcc\x0c\x14\x1d\x7e\x06\x02\x80\xf7\x1f\xf2\x1c\x71\x94\x89\xa7\ \xd0\xf7\x06\x9f\x9a\xe2\xa3\xbf\x16\x78\x16\x8e\x9d\x40\xf4\x87\ \x6a\xe8\x40\x09\xb5\xc3\x14\x5f\x43\x8a\x66\xd4\xdf\x47\xa2\x8e\ \x1a\x3a\x19\xa9\x72\x52\xde\x6c\x14\x90\x43\xf5\xd8\xbc\x91\xa5\ \x96\xa4\x15\x74\x62\x04\xa3\x63\x29\xa3\x8a\x22\xb6\x60\x2b\xb6\ \xa1\x84\x14\x65\x8c\x1e\x26\x11\x9d\x54\x2a\x4c\x6d\x72\x16\x9a\ \xc6\xd2\xf8\x0e\xc4\x55\xd8\xa9\xb3\x30\x9d\x58\x44\x05\x00\x59\ \xf4\x63\x1f\x72\x68\x22\xf4\xa3\x17\x27\x12\x3b\x90\xa2\x0e\x80\ \x14\x09\x86\xe9\x9a\x41\xe1\x80\x09\x53\xb2\xa6\xee\x4f\xed\x87\ \xc6\x77\x60\xd0\x9c\x72\x99\x38\x15\x45\x8c\xa2\x8c\x1a\xde\xc5\ \x0e\x44\x42\x4a\xd8\xc0\xce\xa7\xd8\xf6\x24\x7e\x4c\xd8\x84\x22\ \x6a\xc6\xba\x81\x12\xb2\x18\xa2\x6b\x3a\xfd\x65\xfe\x6c\x9a\xdf\ \x43\xf6\xd8\x08\x04\xcb\xea\x29\xa1\x05\x15\xd4\x51\xc5\x66\x0c\ \x12\x72\x84\x3d\xec\x5f\xc7\xe0\x1e\x26\xb7\xd3\xd5\x41\xcf\x6e\ \xb6\xad\x21\xfc\x17\x61\xe7\x21\x57\xff\x0a\x11\x99\x36\x46\xaa\ \x5c\xd0\xee\x42\xe4\x90\x34\x5e\xa0\x6a\x49\xbd\x86\x56\x54\x30\ \x8c\x37\x51\x25\x0c\x52\xde\x40\xff\x26\xa6\x4c\x64\x6b\xd1\x4b\ \x2d\x6b\x5d\x3a\xe9\x49\x1f\xdd\x5d\xf3\x62\x57\x0b\xef\xbe\x4a\ \xdf\xb3\x84\x9f\x11\xfa\x90\xa2\x8a\x80\x36\xaa\x55\xa6\xe5\x9c\ \x8d\x02\x72\x8d\x17\xa8\x5b\x92\x6d\x26\x16\xb0\x17\x6f\x13\x6a\ \x84\xb7\xe9\x7f\x8b\x4c\x4a\x48\xf4\x9e\xf3\x13\xd7\x2d\x7c\xde\ \x9d\x78\x2f\x65\xd3\xfc\x17\x7c\xfa\x73\xbf\xb4\xa8\x90\xd7\x97\ \x96\x79\xeb\x25\x8a\x3f\x22\xbc\x45\xe8\x47\x16\x39\x26\xe4\x39\ \x31\xeb\x74\x63\x83\xdc\xd0\x8f\x7c\xf1\xab\x42\x7d\xb9\x18\x6f\ \x15\xeb\x77\x8b\xf1\x0e\x31\x2e\x17\x87\x3e\x2b\x96\x96\x8a\xe5\ \x65\xe2\xaa\x79\xee\xc1\x45\x38\x1f\x27\xa3\x19\x00\x19\x14\x1e\ \x99\xeb\xaf\xf6\x7f\x4c\xec\x3e\x5f\xdc\x78\xae\x18\x97\x8a\xf1\ \x6e\x31\xfe\xad\xb8\xf3\x22\xb1\x7b\xbe\xb8\xb8\xd5\x65\x68\x6f\ \x6c\x07\x46\x5c\x34\x92\xa2\x42\xd8\xc7\xc8\x2e\x0e\x1e\xa0\xad\ \xc0\xfa\x3e\xcf\x4d\xfa\x37\x9f\xf9\xda\xaf\x3c\x8d\xdd\x78\x13\ \x3b\x50\x02\x40\x0d\xa3\xd7\xbe\xe6\xbb\x53\x5e\xd4\xba\x37\xb5\ \xa6\xa5\x99\xd7\xb6\xb0\xf1\x09\xf4\x30\xa3\x93\x03\x35\x3e\xde\ \x6e\x01\xb2\x8d\x5d\x64\xc1\x67\x43\x8d\xb4\x4c\xf1\x20\xed\x05\ \x7a\x0e\xe8\x5e\xf2\x8c\xbb\x7f\x35\xa0\x1b\x43\xd8\x8b\xfe\x23\ \x2c\xa1\x14\x07\x17\x6f\xb0\xec\x8a\x29\xee\xb9\xf3\x14\x3f\x68\ \xc9\x3a\x6d\xc3\x4f\x99\xdc\x4e\x2d\xb2\x70\xa2\x25\xf8\x3e\x32\ \xa8\x35\xe6\x08\xdd\x6a\x4b\xf1\x3a\x31\xde\x28\x56\xaf\x53\xfa\ \x8b\xd9\x56\xe2\x22\x2c\xc4\x49\x68\xf6\xdb\x93\x20\xff\x9d\x53\ \x5d\xbb\xf9\x5c\x95\x8d\x1f\x11\x5f\x99\x2b\xfe\x62\x8e\x1e\x9c\ \x8a\x09\x8d\x9b\x81\x15\x62\xbc\x45\x5c\x77\xb1\x1f\xe0\x63\xf8\ \x7d\x9c\x86\x36\x04\x1f\x8c\x1c\x26\x3c\x73\xa6\xfb\xf7\xcc\x17\ \x8b\xbf\x0e\x16\xa0\xbd\x61\x02\x80\x93\xb0\x18\x1f\x46\x27\x32\ \x1a\x4b\x1e\xd3\xf0\xbb\x38\x17\x6d\x8d\x9b\x01\x12\x0c\x63\x13\ \x8a\x28\x6b\x3c\x65\xf4\xa3\x8c\x1a\x0e\x3a\x02\xc7\xfd\xef\x36\ \xff\x07\xe2\x88\x5c\xa0\xce\x9a\xc4\x5c\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x0e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x04\xd5\x49\x44\x41\x54\x68\x81\xed\x98\x4f\x4c\x5c\x55\ \x14\xc6\x3f\xc5\x44\x93\x66\x6c\x94\x56\x29\x35\x2d\x09\x63\x2c\ \x01\x69\x29\x43\x45\xde\xd0\xa1\x20\x14\xb0\xc8\x20\x4a\x5b\xb0\ \xe5\x4f\x05\x06\x34\x2d\xcd\xc0\x4c\x67\xf8\x2b\x28\x1b\xc5\x26\ \x6d\x44\x68\x69\x53\x18\xc0\x3e\xe9\xc4\x85\x49\x37\x1a\x6d\x17\ \x8d\x7f\x20\x94\xa8\x69\xdc\x19\xdd\x18\x17\x24\xa6\xba\x70\xd3\ \x5c\xcf\x6d\xd2\xc2\x7b\xf6\x9e\xab\x71\x01\xe8\x0c\xf9\x25\x84\ \xef\xe3\xbc\x77\x72\xbe\x7b\xef\x9b\x07\xc4\x3e\xab\xe0\x93\x08\ \x64\xd4\x01\x73\x0d\xc0\xac\x8a\x6c\xe0\x34\xa7\x4b\xdc\xc0\xa8\ \xce\x63\x68\xea\x54\x03\xf3\x39\xc0\x29\xce\xf3\x02\xf0\x35\xdd\ \x76\xdc\xdd\x06\xb6\x00\x46\x2f\x20\xfa\x18\x3c\x40\x84\xd3\x25\ \x7b\x01\x53\xe7\x29\x02\xa6\x38\x3d\x48\x14\x03\x93\x9c\xc7\x07\ \xdc\x8c\x35\xb0\xaa\x1a\x78\xe2\x41\x38\xf7\x38\x30\xc1\x91\xee\ \x40\x58\xe7\x29\xdc\x80\x9e\xea\x04\x4c\x70\xb8\xd6\xf3\x75\xf2\ \x1c\x88\xa4\xaf\x43\x88\xf3\x18\xeb\x10\xa1\xdb\xbe\x6f\x69\x02\ \x0e\x18\x3d\x1e\x88\x5e\x06\xcf\x56\x44\x38\x5d\x12\x34\x60\x8a\ \x6e\x08\x0e\xef\x36\x4c\x71\x35\x02\x06\x4d\xc0\x89\x49\xce\xd3\ \xec\xba\x3d\x81\x07\x62\x0d\xac\x70\x03\x4b\x6b\x20\xde\x81\x6d\ \x2f\xa7\x62\x74\x7f\x1a\x46\x54\x6c\x7f\x1c\x27\x38\x5d\x52\xf5\ \x34\xba\xa2\x55\x18\xe1\x30\x92\x10\xe2\x6a\x78\x53\x70\x6e\x67\ \x22\x3a\x38\x4f\xa1\x13\xe7\xe9\xb6\xef\xbf\xdb\x40\x42\x3c\xb2\ \x6a\x4b\x30\x57\x5f\x8a\x59\x15\x59\x4f\x61\x98\xd3\x25\x75\xc5\ \x18\xbb\x7a\x0a\xb3\x1c\x79\x19\x18\xe1\x6a\x1c\x7c\x0e\xd7\x77\ \xa5\xf0\xd7\x7a\x3e\x07\xb3\xd6\x6d\xf4\x31\x8a\x50\x1d\x8d\xa7\ \x5e\x8d\x67\x3b\x45\x88\xd1\x25\xc1\x83\x14\xa1\x2b\x14\x15\x06\ \xef\x6e\x8a\x10\x53\x23\x50\x4d\x11\xda\x45\x11\x62\x3c\xcd\xe5\ \xf6\x35\xb0\xe6\x1b\xd8\x08\x77\xe7\x61\x88\x2e\x06\xd9\x00\xa7\ \x4b\xa8\x81\x0f\xff\xf8\x04\x82\xa3\xdc\x8d\x29\xae\x86\x7f\x3f\ \x44\xa1\x0b\xd3\x9c\xe7\xd5\x32\xdb\x22\xce\xcc\x44\x72\x7f\x3f\ \x4c\x8e\x92\x12\x74\xe6\xe7\xc3\xe4\xa8\xac\x44\x8f\xae\x8e\x61\ \x20\xc4\xd5\xf0\x78\x30\x53\x53\x83\x4e\xae\x86\xdf\x0f\xd3\x72\ \x90\x65\x67\xc3\xb8\x75\x8b\x46\x2c\xd4\xd4\xd7\x53\x84\x7a\x69\ \x84\x0c\xc1\x20\x45\x88\xa9\x21\xf1\x7a\x29\x42\x4c\x8d\x40\x00\ \x62\x68\x08\x93\x5c\x8d\x85\x05\x5b\x84\x62\x0d\xac\x74\x03\x72\ \x0d\x98\x26\xce\xce\xcc\xe0\xcc\xbd\xb8\x74\x09\xa3\xe5\xe5\x68\ \xaf\xaa\xc2\x19\x8e\x43\x87\x10\x52\xd5\xb8\x03\x65\xbc\x83\xab\ \x51\x51\x81\xf3\xad\xad\x38\x2e\xaf\xa9\xaa\x71\xf2\x24\xce\x59\ \x0e\x32\x17\x4d\xe0\xda\x02\xc4\x17\xdf\xa8\x69\x0b\xc0\xfc\xf2\ \x5b\x88\x3b\xdc\xcb\x13\xee\xc3\x47\x5c\x0d\x49\x41\x31\x66\x1a\ \x5a\x20\x54\xd4\x34\x40\xb4\x87\x11\xe5\x6a\x8c\x9b\xf8\xdd\xb2\ \x0b\xc9\x06\x7e\xa5\x08\xdd\x14\x6a\xe8\xe6\x22\x9c\x2e\x19\x7c\ \x17\xa6\xce\x53\x4a\x11\x0a\xf6\x51\xdc\x14\x1c\x0b\x52\x1d\x8a\ \x10\x57\xe3\xda\x82\x6d\x1b\x5d\xa3\x0d\x2c\x5b\x03\xcf\xc0\xfd\ \xdd\x0f\x10\x37\x7e\x52\xe3\x0f\xe2\x03\x4e\x97\x74\xbf\x85\xe8\ \x8d\x1f\xe9\x77\x86\xa2\x52\x5c\x6c\x39\x0e\xa1\x42\xc6\x28\x4c\ \x7b\xfd\x5f\xea\x2f\xab\x11\xbd\x8c\xdf\x2c\x0d\x24\xef\x84\xb3\ \x6d\x18\xe3\xfe\xf7\x71\x41\x45\xc9\x11\x04\x39\x5d\x52\x79\x14\ \x9d\x3a\xcf\x8e\x5c\x04\x9e\x2d\xc3\x05\x15\x59\xc5\x88\xec\x6b\ \x42\x80\xab\xd1\xf0\x06\x26\x2c\x8b\x38\x95\x22\xf4\x19\x45\xe8\ \x8a\x50\x53\x4b\x11\xe2\x74\x49\x2b\x45\x48\xe7\x71\x53\x84\xa8\ \x96\x50\x71\x80\x22\xf4\x1a\x45\x88\xab\x31\x66\x8f\x50\xac\x81\ \x95\x69\x60\x69\x17\x72\xd2\x41\x76\x62\x1c\x91\x30\x43\x59\x33\ \x82\x9c\x2e\x79\xf1\x18\xba\x74\x9e\xf4\x5c\x84\x72\x2b\x10\x51\ \x91\x53\x86\xe9\x72\xcd\xb5\x7c\xef\x60\xd2\xb2\x06\xb6\xd0\x04\ \xda\x7f\x86\xe8\xf8\x45\xcd\xee\x30\xa6\x38\x5d\x92\x3f\x88\xa8\ \xce\x53\xf0\x26\x2e\x72\xfa\xeb\xdf\x43\xec\x19\x80\xc9\x79\x0e\ \x7f\x7a\x7b\x17\x8a\xb3\x34\xd0\x4b\x11\xea\x13\x6a\x3c\x14\x21\ \x4e\x97\xec\xa5\x08\xe9\x3c\x45\x6f\xd3\x8b\x2d\x46\x0f\x2e\x52\ \x1d\x8d\xc7\x67\x8f\xd0\x7f\xa2\x81\xa6\x39\xfa\xaa\x36\xaf\xc6\ \xa0\x67\x21\x4e\x97\xe4\xd1\xb3\x90\xce\xe3\xe9\xc6\x0c\xa7\xd7\ \xd1\xd7\x4e\x77\x08\x51\xce\xf3\xd2\xb4\xed\x59\xe8\xe1\x1d\x78\ \x32\x95\x9e\xfe\xd2\xa2\x18\x51\x91\xd0\x88\x76\x4e\x97\x6c\x6e\ \x43\x48\xe7\x49\x68\x41\x07\xa7\xa7\x4c\x60\x6c\xb3\x0f\x7e\xce\ \xe3\xb4\x3f\x8d\x3a\x68\x02\x1e\x8a\x90\x47\xa8\xd9\x4a\x11\xe2\ \x74\x49\x32\x45\x48\xe7\x71\x52\x3c\x38\xdd\x58\xd4\x7b\x5c\xf6\ \x73\x60\xd5\x35\x40\xe7\xc0\xff\xab\x81\x87\x92\x90\xb4\xe9\x08\ \x06\x36\x35\xaa\x59\xef\x46\x13\xa7\x4b\xe2\x0b\xd0\x9a\xd8\x84\ \x7e\x8e\x47\x72\xe1\xb3\xff\xcd\x52\xa7\x16\x83\x8f\x7a\xd0\xa8\ \xfa\x7f\xe9\xd9\x78\x00\x83\x58\xfe\x56\x02\xf4\x38\x0d\x9a\x00\ \xfb\x43\x13\xd0\x38\x04\x68\x02\x5a\x0f\x4d\x80\xd5\x17\xff\x86\ \xc7\x3e\x01\x50\x84\x62\x0d\xac\x68\x03\x19\x70\xe1\x73\xcc\xe1\ \x2a\xbd\xf5\x55\xe1\xc3\x7b\xac\x2e\xf1\xe3\xac\xd6\xd3\x86\x61\ \x56\xff\x18\xd7\x71\x54\x73\xad\x51\xdb\xdb\x69\xe4\x20\x8d\x04\ \xbe\x81\x00\x86\xb4\x37\xd7\x8f\xd3\x5a\x4f\x0f\xcd\x89\xd3\x2f\ \x63\x1e\x5d\x1a\xcf\x04\xbe\xb2\x1c\x64\x6b\x34\x42\x71\x6b\xbd\ \x81\x55\xbc\x88\xe9\x20\xfb\x67\x0d\x64\x62\x03\x06\xd0\xc8\x52\ \x8d\x52\xad\xa7\x11\xfb\xfe\x75\x9d\x1e\x34\xe3\x15\x14\xb3\x9e\ \x76\xf2\x58\x0e\xb2\x35\xfc\xf9\x13\xd5\x98\xa6\x54\x48\x88\x3c\ \x6f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x09\xf1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x09\xb8\x49\x44\x41\x54\x78\x5e\xbd\x99\x6b\x6c\x53\xe7\ \x19\xc7\x7f\xc7\x10\xc7\x4e\x0c\xd8\x21\xc4\x21\x24\x21\x71\x80\ \x84\x4b\xd2\x34\xac\x12\x81\x16\xd2\x82\x2a\xb4\x2b\xeb\x85\xee\ \x43\xdb\xb1\x09\xb6\x6a\xfb\xc2\x97\x49\xd3\xf6\x05\x3e\xed\xc3\ \xa4\x29\xda\xa6\x4d\xad\xb4\x36\x53\x5b\xa9\x55\xab\x36\xdd\xd6\ \xad\x1d\x61\x4d\xbb\x95\x02\x25\x60\x2e\x05\x3b\x6d\x52\x27\x36\ \x71\x02\xc1\x76\x82\x73\x33\xcc\x67\xef\xfc\x2a\x7d\x75\xce\x89\ \x1d\x7b\x83\x3e\xd2\xa3\xd7\xef\x93\xe3\x93\xff\xff\xb9\xbd\x17\ \x6b\xdc\x69\x69\x7b\xe9\x1e\xc0\x0d\x74\x60\x95\x50\x46\xcf\x3e\ \xf9\x3e\x77\x48\xb4\x3b\x00\x78\x2d\xb0\x4f\xaa\x04\xbd\xcc\x5d\ \x9a\x51\x83\xe8\xa0\x03\xd1\xa1\x6b\x48\xa1\x7b\x5e\x05\xa1\x89\ \x2f\x8f\x80\x02\xbe\x0b\x38\x0c\xec\x2b\x5f\xed\x61\x53\x9b\x8f\ \xf2\x4a\x0f\x6b\xea\xbd\xa0\x43\xd5\x32\x70\x2e\x05\x5d\x81\xa7\ \x7f\x1c\x74\x1d\xc6\x47\x63\x04\xfd\x83\x84\x82\x11\x92\x13\x53\ \x09\xa0\x0b\xe8\x14\x44\x86\xee\x1e\x01\x05\x7c\x05\x70\x04\x38\ \xbc\x69\xab\x8f\xf6\xdd\xcd\x6c\xdf\xe0\xa2\xa1\x0c\xd6\x2c\x83\ \x75\x65\xe4\x94\x1b\xd3\x92\x88\x3f\x0a\xe7\x46\x60\x24\x34\x46\ \xdf\x07\x17\x18\x1d\xbe\x96\x40\x92\x38\x7a\x77\x08\xa8\xfc\xee\ \xaa\xf6\x55\xb4\xee\xdd\xdf\xce\xee\x4d\x2e\x1e\xf6\x41\x99\x13\ \x00\x62\x33\x70\xf5\xa6\x54\x74\x00\x15\x81\x32\xa7\xd4\xf5\x2b\ \x15\x80\xf1\x69\xf8\x68\x08\x8e\x0d\xc0\x95\x8b\x61\x4e\x1e\xeb\ \x43\x44\xc4\x0f\x1c\x10\x44\xce\xdf\x39\x02\x0a\x7c\xef\xd6\xfb\ \x1b\xdd\x8f\x3e\xf1\x15\xf6\x6f\x84\x06\x0f\xcc\xdc\x82\x7f\x86\ \xe1\x4c\x54\x12\xd0\xe7\x81\xeb\x48\x45\x8e\xc8\x39\x69\x5d\x46\ \x4a\x10\xe1\xc1\x7a\x58\x59\x02\xd3\x29\x78\xf5\x22\xfc\x23\x98\ \xe2\xe4\xdf\xfb\xf8\xec\xe2\x60\x02\xd8\x97\x4f\xb1\x6b\x05\x14\ \xaa\xff\xab\x4f\x6c\x73\x3f\xfc\x60\x03\x3f\x68\x05\x67\x11\x7c\ \x32\x0e\xaf\x5d\x91\x24\x74\x14\x70\x45\x22\x9b\x2a\x32\x2d\x5e\ \x78\x7c\x8b\x24\x22\x52\x8a\xe7\xcf\xc0\xc7\x1f\x06\x38\xd5\xd3\ \x07\x92\xc4\x5b\x77\x82\xc0\x7b\xcd\xf7\xf9\x3a\x0e\x1e\x6c\xe7\ \x50\xab\x2c\xce\xbe\x51\x78\x3d\x68\x48\x95\x05\x81\x83\x05\xb4\ \x9a\xa7\xd5\xfc\x6b\x1b\xe0\xeb\x4d\x30\x9c\x80\x5f\x7e\x00\xa7\ \x05\x89\xd3\x3d\x7d\x09\xa0\x23\x57\x3a\x2d\xc9\xa7\xdb\x14\x3b\ \x8b\x8e\x7c\xe7\x87\x0f\xf1\x64\xcb\x12\x2a\x4a\xe0\xec\x18\xbc\ \xd1\x0f\x9a\x26\x15\xa1\x99\x61\x7e\x44\xfd\xcd\x2c\x5a\x16\xaf\ \xf5\xdf\x80\xe0\x75\xd8\x55\x0f\xf7\x56\x41\x28\x5d\x4e\x3c\x36\ \xe5\x88\x5d\x8b\x6f\x63\xf5\x23\xaf\x10\x7d\x63\xee\x7f\x22\x20\ \xbe\xdc\xb5\x7d\xcf\xe6\xba\xfd\x1d\x55\x6c\x5f\x03\xd1\x24\xbc\ \x78\x59\x01\xd4\x4c\xe0\x51\x36\x8b\x2a\x41\x3d\x6b\xea\x50\x9f\ \x8c\xc1\xee\x75\x50\xeb\x86\x61\xcd\xcb\xd5\xc1\x68\xe5\xcc\xd4\ \xac\x43\x10\x78\xb7\x30\x02\x2a\xf7\x3b\x9f\x38\xb4\x8b\xa7\x9a\ \x97\x64\x52\xe7\xf5\x7e\x98\x98\x53\x9e\x57\x9e\x56\xc0\xc1\x8c\ \x5e\x11\x5b\x4c\x26\xe7\x60\x30\x06\x8f\x6c\x86\x39\x7d\x09\x93\ \x8e\x95\x04\xcf\x7d\xf6\xdf\x28\xf4\x0a\x12\x43\xf9\x11\x50\xde\ \x3f\xd0\xd8\x52\xbd\x77\xef\xee\x06\x1e\xa8\x86\xd1\x29\x38\x1e\ \xb6\x7a\x1f\x33\x09\x2d\x9b\xf7\xf3\x23\x31\x3e\x25\xc7\x47\xb7\ \xc0\xb9\x71\x27\xd3\xb7\x40\xac\x13\x75\x82\xc0\x1f\x31\xc9\x52\ \x72\x4b\x47\xdd\x7a\x2f\xf5\x2b\x00\x20\x34\x09\x36\x05\x00\x7d\ \x1e\xbc\x6c\x97\x68\xd2\xb6\xa0\xd8\x80\xb4\x22\xa1\x6c\x92\x2c\ \xe8\x46\x27\xfc\x39\x00\xed\x35\xf0\xfd\xfb\xe0\x6a\xac\x89\xcb\ \x1f\x07\x3a\x52\xa2\x1e\xcd\xad\xd5\x46\x6e\x69\x5d\x5d\xe3\xc1\ \x29\x69\x52\x59\x8a\xf4\xae\x4d\x8e\xb6\x8c\xca\xb9\xcd\x6a\xc7\ \x66\x93\xaa\x69\xca\xae\x46\xb3\x5a\xa3\xf8\x97\x00\x34\xad\x82\ \xf5\x5e\x3b\xb5\x1b\x6a\x00\x0e\x17\x9a\x42\x9d\xf7\xb6\xfb\xa8\ \xaf\x72\x31\xfb\x6f\xa8\x2c\x91\x00\xa2\x53\xd6\xee\x83\xb9\x28\ \xb5\xc5\xd3\x46\x27\x87\xe8\x30\x3c\x21\xa3\x50\xb4\x04\x82\x09\ \x3b\x62\x81\x6b\x12\x69\x74\xb4\x90\x08\xf8\x35\x0d\x2e\xde\x80\ \xb7\x43\xf0\xfc\x65\x49\xa2\xd1\xa3\x3c\x29\x3d\x2c\xc7\x6c\x9e\ \x7d\xa8\x16\x0e\xb6\xc0\x63\x8d\x50\xe6\xc8\xd1\xbd\xb0\x36\x84\ \xe3\x03\xb2\xad\xae\x5e\xeb\x55\x9b\xc8\x02\x08\xb8\x05\x28\xe6\ \x66\x53\xbc\xf4\xfb\xf7\x39\x77\x36\xcc\x5f\x87\xc1\xed\x50\xe9\ \xb4\x58\x4a\xb4\x97\xa7\x78\xf7\xdd\x00\x47\x9f\xbb\x40\xff\xa5\ \xb0\x5c\x08\x8b\xb2\x3d\x6f\x25\xe1\x8f\x42\x79\x29\x94\x14\x41\ \x65\x6d\x05\x40\xeb\x22\x04\x54\x0b\x75\x38\x8b\xea\xaa\x6a\x3c\ \x9c\xfb\x68\x90\x2b\xfe\x08\x2f\xfd\xee\x03\xce\x9e\x18\xa0\xef\ \x3a\xb8\x8b\x25\x09\x95\xfb\x56\x20\x9e\x62\x08\xc4\xc1\xb1\xb9\ \x89\xda\x1d\x2d\xf4\xe9\x5e\x02\xe1\x24\x3b\xaa\x17\xf6\x36\x56\ \x12\xdc\x98\x91\x5d\xa9\xd6\x0d\xae\x15\x2e\x00\x77\xbe\x11\xe8\ \xde\xb1\xa7\x09\x67\xa9\x9d\xd9\x99\x14\xf3\xf2\xda\x0b\x27\x19\ \x8d\xc4\x18\x98\x84\x54\x5a\x82\xc8\xa6\x13\x29\x98\xd4\xed\x20\ \xe7\x38\x9c\x76\x3e\x4c\xb8\xd8\xbc\x22\x25\xe6\xd9\x49\x60\xb2\ \x85\x27\x00\x10\x04\x4a\x17\x89\x80\xf2\xfe\x0b\xa2\xfb\xb4\xde\ \x2f\x08\xd8\x34\x70\x96\xd8\x51\x02\x97\xcf\x45\x32\x5e\xbf\x79\ \x4b\x75\x20\xa9\x66\x12\x66\xaf\xca\x45\x90\x22\x3b\xb6\x99\x64\ \x96\x26\x60\xb5\x45\x26\x15\x29\x73\x04\x96\x62\x05\xff\x5d\x91\ \x3a\x07\x9e\xfa\xf1\x4e\x4a\x4a\xed\x19\x10\x3b\x1f\x6e\xa2\x7a\ \xad\x07\x34\x58\x53\xeb\x99\x27\x84\xae\xd6\x00\xac\xcd\x47\xda\ \x35\x1d\xf5\x2c\xa0\xeb\x64\x3a\x9a\x6d\x7a\x0a\xcd\xe1\x12\x76\ \xb5\x06\xc8\x77\x19\x17\x14\x4d\x6e\x31\x14\x29\x93\xd8\xb0\x82\ \xef\x3a\xf4\x93\x3d\x94\x95\xbb\x40\x79\x92\x75\x1b\xbd\x6c\x6d\ \xf1\xb2\xa3\xd6\xce\x16\xcf\x22\xc5\x6b\xf6\xa4\x9c\x5b\x5b\xaa\ \x66\xb5\x59\xa3\x20\x09\x28\xa1\xd7\x4a\x40\xed\x7b\xba\x9e\xfc\ \xd1\x2e\xaa\x6a\xca\x0c\x3b\xca\x0a\x27\x3c\xee\x83\x76\x2f\x7c\ \x9e\x84\x2b\x93\x39\xd2\x05\xc0\xbc\xbd\xc0\x48\xc2\x5d\xac\xec\ \x16\xf0\x39\x36\xfa\xd1\xa1\xb1\x9c\x11\xd8\x57\xbf\xa1\x02\x5f\ \xa3\xd7\xf0\x0f\x37\x7b\x60\xbf\x0f\x4e\x5d\x83\x63\x23\x70\xf3\ \xb6\xa9\xf3\x64\x01\x6a\x15\x05\xde\xe3\x80\x50\x34\x99\xdf\xe1\ \x44\x83\xe9\x5b\xf2\x1c\x9d\x9a\xbb\x05\xe0\xcf\x46\x20\x34\x2b\ \x9e\x44\x81\x60\xbb\x17\xf6\xd6\xc0\x9f\x86\xe1\xea\x74\xf6\x54\ \x81\x6c\x24\xac\x1e\x6e\xaf\x82\xd0\x48\x12\xbd\xc4\x95\x6d\xb5\ \x36\xda\x81\xc8\x04\xa4\x66\x53\xc4\xc6\xe2\x39\x08\x88\xa3\x5b\ \x34\x12\xf7\xbf\xfd\xea\x19\xe6\x65\x95\x53\x8e\x91\x29\x03\x06\ \x05\x3c\x0f\xf1\x96\x28\x20\x95\x25\x92\xc0\x2b\x3d\x11\xd6\xae\ \xf3\x16\x74\x2c\xec\xbf\x30\x28\xc1\x8b\xab\x97\x5c\x6d\xb4\xe3\ \xc3\xe3\x41\xe2\xe3\x49\x74\xe0\x9d\xb0\xec\x18\x0d\xcb\x51\xf7\ \x3b\x4a\x41\x5f\x1c\xfc\xc1\xcd\x70\x68\x0b\x3c\xbd\x09\x9e\xb9\ \x47\x7a\xff\xc4\x48\x01\x7b\x22\xe4\x4e\xe0\xd2\xe9\x00\x40\x67\ \xee\x2e\x24\x6f\xc8\x70\xc8\x36\xc9\x9c\x00\xdf\x3b\x02\x0d\xcb\ \x80\x85\xce\xb5\x18\x89\x01\x6a\x0e\x8c\x4d\xc3\x5b\x67\x62\x99\ \x15\xbb\x6e\x39\xf8\x83\x31\x9e\xf9\xd5\x45\x1a\xdb\x7c\x26\xe4\ \xea\xfb\x0b\xd9\xc5\xbd\x51\xe6\xba\x45\xe0\xb3\x9e\x07\xcc\xe7\ \x5f\xd1\x46\x33\x2b\xe6\x3c\x88\x4b\x31\x68\x2b\x37\x02\x53\xbd\ \xdf\x40\x44\x82\x30\xfd\xed\xe3\x69\x17\xcf\xfe\x22\xc0\xcc\x74\ \x8a\x62\x87\x9d\x96\xbd\x5b\xb1\x17\xdb\x89\xdf\x48\xb2\xdc\xed\ \x32\x82\xc5\x2a\xc1\xf3\x03\x5c\x3a\x15\x4c\x00\x07\x00\x72\x13\ \x80\x8e\xb6\xed\x3e\x05\x42\x03\x80\x70\x12\xec\x1a\xcc\xa5\xa5\ \x49\x01\x54\x23\x59\x22\x52\xec\xb4\xb3\xed\xc1\x26\x15\xb9\xb4\ \x1c\x43\x9f\x8e\xd1\x7c\x9f\x4b\x81\xc6\xfc\x0e\x79\x05\x79\xe2\ \x9d\x3e\xcc\x17\x5d\xb9\x6a\xa0\xfb\xc4\xf1\x60\xe2\x5f\x3d\x01\ \x74\x54\xca\x7c\x3a\x01\x6b\x4a\x91\x20\xd2\xa6\x51\xa9\xaa\x0f\ \x72\x10\x03\xce\x9f\x1e\xc0\xa9\xbc\x6f\xf8\xce\xbc\xed\xba\x00\ \xff\x56\x57\x0f\xa2\x75\x1e\x50\x77\x43\x8b\x47\x00\xf7\xca\x52\ \xf7\xc6\xd6\x6a\x43\x4e\x0e\x27\x61\x47\xa5\x24\xa2\x99\xf2\x55\ \xdd\xbe\x59\x55\x01\x57\xf3\xd9\xe9\x14\xc7\xde\xec\xe3\xe9\x9f\ \xee\xe3\xb6\x2e\xd3\x11\xd3\x33\xd7\xa3\x31\xba\x5f\x10\xe0\x67\ \x05\x78\x95\xf7\x79\x11\xa8\x13\xf9\x8f\xbb\xcc\x65\x29\xaa\xd9\ \xdb\x32\xfc\xba\x66\xb0\xe7\x24\x81\x29\x22\xa2\x0e\x78\xf1\xb7\ \x3d\xb8\xdc\x2e\x8a\x1c\xf6\x0c\x81\x22\x53\x04\xe6\x66\x52\xbc\ \xf9\x7c\x06\x7c\x97\x02\x9f\x3f\x81\xde\xd1\x48\x3c\x34\x12\x8e\ \x89\x73\x40\x99\x01\x67\x62\x4e\x81\xc2\xcc\x41\x11\xc8\xa6\x12\ \xfc\x6f\x7a\x18\xbb\x1a\xa7\xe3\xb1\x6d\x19\xdb\x6d\x09\xc0\x10\ \xa5\x37\xfe\xf0\x05\xf8\xef\x91\x55\x72\xb7\xd1\x50\x7c\x7c\x2a\ \x03\x40\xe5\xba\x8c\x40\x5a\xb7\xa8\xaa\x83\x74\x76\xf0\x81\x0b\ \x61\x7e\x7d\xa4\x3b\x03\xbe\xed\xa1\x66\x36\xdc\xdb\x40\x5a\x16\ \x33\xb7\x55\xa4\x38\xf5\xde\x05\x51\xb8\x71\xbf\xe1\xf0\x5e\x60\ \x04\x00\xdc\xa2\x73\x08\x50\xc6\x3b\x9d\xd0\xa4\x69\x9f\x63\xe9\ \x44\xd6\xc5\xee\x73\xd1\x69\x7a\xdf\xbe\xc0\xd0\x67\xd7\xf0\xd6\ \x55\xf0\xc0\xb7\xdb\x59\x5e\xe6\xca\x00\xb7\x81\x8c\x82\x06\x45\ \x3a\x4c\xc4\x93\x9c\x3a\x7e\x71\xbe\xe3\x4c\xfc\x3f\x04\x12\xa2\ \xd0\x54\xba\x68\x12\x8c\xa6\xa9\x54\x31\x8a\xb5\x50\x03\xe7\xc3\ \x7c\xf4\x5e\x80\xa1\x4f\xaf\x51\xdf\xe2\x63\xcf\xd3\x2d\xac\xae\ \xf7\x62\xb3\x19\x8b\x3b\xad\xab\xab\x11\xff\x89\x00\x40\x97\xb5\ \x5d\x16\x4e\xa0\xeb\x6f\xaf\xf7\x75\x88\x28\x50\xbf\xde\x6b\xb9\ \xb0\x32\xd6\xb0\xfa\x10\x8d\xc4\xf0\x9f\x1c\x14\xe0\x23\x2c\x75\ \x95\x52\xdf\xec\xa3\xed\x9b\xbb\x10\xef\xc1\xa6\xa1\x52\x12\x25\ \xb6\x0c\x19\x19\x85\x81\xcb\x11\x80\x6e\x0a\x14\x2d\xcb\x91\xf2\ \x5b\x40\xe7\x8a\xb2\xd2\x3a\x41\x02\xd1\x5a\xa9\x13\x63\x65\xb5\ \x07\x20\x73\x46\x4e\xc4\xa6\x10\x05\x4f\xa8\x7f\x2c\xb3\x28\x95\ \xae\xf4\x50\xb3\xc5\xc7\x9a\x0d\x35\xd8\x25\x68\x6c\xea\xb8\x89\ \xa6\xe6\x4a\xd5\x45\x18\xcf\xfe\xec\x65\x80\xba\x42\x7f\x27\xd3\ \xf2\xf8\x55\xa6\x03\x68\x55\x6a\x14\x4f\x75\x05\xeb\xb7\x35\xb3\ \xaa\xd6\x8b\x04\xa9\x2d\x04\xd0\x4a\xc8\x44\xe6\xb9\x9f\xbf\x8c\ \x00\xaf\x51\xa0\x2c\x25\x97\xc8\x7c\x3c\x6f\xfa\x81\xef\x30\x70\ \x04\x60\x95\xaf\x9a\xd6\x6f\xec\xcc\x00\x50\x85\xa9\xa3\xa3\x91\ \x06\x90\x36\x4b\xce\x03\xd8\xd2\xa0\xdb\x90\x76\xd4\xfb\x65\x01\ \x17\x42\xa0\x10\x91\x2f\x3f\x2a\x88\x74\x03\xbd\x35\xf7\x34\xba\ \x0d\x45\xa9\x2a\x1a\x1b\x1a\xba\xae\xec\x2a\xe7\x91\x2a\x49\x9b\ \x7b\x79\x2b\xf0\x3e\x05\x88\x8d\x42\x45\x45\xa6\x73\xd8\x1f\x44\ \x37\xad\x09\x4a\xf5\x2c\x76\x16\xb4\x57\xd6\xa9\x5b\xb7\xbb\x4b\ \x40\x49\xe7\xf8\xe7\x11\xc4\x51\x2f\x2f\x80\xe9\x45\xec\x6b\x37\ \xd6\x00\x1c\xf8\x72\x08\xa8\x74\xea\x8d\x47\xc6\xac\x00\x0b\x8f\ \x02\x35\x4d\xd5\x32\x02\xe2\x76\xe4\xee\x13\x50\xe2\xbf\x39\x9e\ \x58\x04\xa0\x9e\x57\x14\x4a\xdd\x2e\xca\x2a\x3d\x00\xfb\xbe\x4c\ \x02\x89\xdb\x73\xa9\x3c\xd2\x47\xcf\x2b\x0a\x5e\x59\x07\x1d\x77\ \xaf\x0b\x59\xa5\x77\x34\x30\x48\x72\x3c\x6e\xb9\x4e\xb1\x5e\xad\ \x64\x99\xab\xcf\x88\x73\x2f\x40\x82\x02\xe4\x3f\x98\x19\x4d\xb7\ \xfe\x5c\xef\x7b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x2e\x32\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x01\x00\x48\x00\ \x48\x00\x00\xff\xdb\x00\x43\x00\x04\x02\x03\x03\x03\x02\x04\x03\ \x03\x03\x04\x04\x04\x04\x05\x09\x06\x05\x05\x05\x05\x0b\x08\x08\ \x06\x09\x0d\x0b\x0d\x0d\x0d\x0b\x0c\x0c\x0e\x10\x14\x11\x0e\x0f\ \x13\x0f\x0c\x0c\x12\x18\x12\x13\x15\x16\x17\x17\x17\x0e\x11\x19\ \x1b\x19\x16\x1a\x14\x16\x17\x16\xff\xdb\x00\x43\x01\x04\x04\x04\ \x05\x05\x05\x0a\x06\x06\x0a\x16\x0f\x0c\x0f\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\xff\xfe\x00\ \x12\x42\x6c\x75\x65\x20\x41\x6e\x67\x6c\x65\x20\x53\x77\x69\x72\ \x6c\xff\xc0\x00\x11\x08\x01\x20\x01\x20\x03\x01\x22\x00\x02\x11\ \x01\x03\x11\x01\xff\xc4\x00\x1b\x00\x00\x02\x03\x01\x01\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x04\x01\x02\x05\x00\x06\ \x07\xff\xc4\x00\x3d\x10\x00\x02\x01\x03\x03\x03\x03\x02\x04\x04\ \x05\x02\x06\x03\x01\x00\x01\x02\x03\x00\x04\x11\x12\x21\x31\x05\ \x41\x51\x13\x22\x61\x32\x71\x14\x42\x81\xa1\x06\x23\x52\x91\x33\ \x62\xb1\xc1\xd1\x72\xe1\x15\x24\x34\x43\x53\xf1\x82\x92\xa2\xf0\ \xff\xc4\x00\x19\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x06\xff\xc4\x00\x24\x11\ \x01\x01\x00\x02\x02\x02\x02\x02\x02\x03\x00\x00\x00\x00\x00\x00\ \x00\x01\x02\x11\x21\x31\x12\x41\x03\x22\x51\x61\x04\x71\x13\x32\ \x42\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xf6\ \x3a\x14\xae\xdf\xa5\x74\x5a\x84\x80\x67\xf5\xa2\x45\x83\x10\x14\ \x39\x50\x83\xa8\x57\xde\x6f\x7c\x3c\xad\x7b\x16\x08\xe1\x98\xe4\ \x0d\xea\xd7\x0f\x7b\x79\x27\xb1\x4e\x91\xc1\x63\x81\x4a\x58\xcb\ \xae\x2e\x46\x46\xd4\xcb\x4a\x74\x80\x18\x81\x8e\xd5\xce\xce\x44\ \xc3\x33\xdb\x5c\x8b\x6b\xd8\x90\x29\xdb\x56\x38\xad\x8f\xe1\xeb\ \x48\xa4\x96\xe0\xb3\x65\xed\x70\xf1\x6f\xe7\xbd\x65\xcb\xa2\xfa\ \xdc\x43\x31\xc4\x80\x7b\x1c\xf7\xf8\xaa\x74\x2e\xa1\x2d\x87\x59\ \x81\x67\x38\x5c\xfa\x52\x13\xe0\xd6\x72\x96\xce\x15\xba\x49\x62\ \x4e\x73\x9a\x82\x1b\x1b\x0c\xd7\x5d\x0f\x4a\xe5\xd4\x70\x1b\x6a\ \xbc\x32\x03\x5c\x94\x5b\x1b\xd7\xb7\x71\x9c\x80\x3c\x56\xf5\xbc\ \xd6\x9d\x4a\xdc\xc7\x21\x5d\x64\x63\x71\xcd\x60\xe1\x49\xc1\x00\ \xd0\x3d\x66\xb7\xba\x0d\x1b\x15\xc5\x63\x2c\x3c\xba\x5d\x8b\xd7\ \x7f\x86\xe6\x79\x49\x86\x5c\xaf\xf4\xb1\x27\xfb\x57\x9c\xbf\xe8\ \x1d\x46\x26\xff\x00\xd2\x93\xbf\x2a\x32\x0d\x7b\x15\xeb\x8c\xb1\ \x61\x86\xb3\xe2\x83\x71\xd5\x2f\x25\x1b\x15\xb7\x4f\x20\x02\x6b\ \x78\x7c\x9f\x24\xed\x35\x1e\x41\x3a\x3f\x5a\xcf\xb2\xde\x6c\x0a\ \x66\x2e\x83\x71\xf5\x5e\x5e\x2a\x79\x54\x3a\x9b\xfe\xd5\xb5\x2d\ \xd1\x6c\xeb\x9a\x79\x49\xe7\x2e\x40\x3f\xa0\xa5\x2e\xe6\xd3\x11\ \x27\x00\x78\x1b\x0a\xe9\xfe\x4c\xaa\x68\xb4\x36\xd6\x56\x79\x68\ \x53\x53\x0f\xfd\xc9\xb0\x48\xfb\x0e\x28\x37\x37\x99\x24\x47\xb9\ \x3f\x98\xd2\xd7\x13\x3c\x8d\x96\x3b\x0e\x07\x6a\x0e\xa2\xc4\x84\ \xed\xcb\x1e\x05\x6a\x63\xbe\xcd\xa6\x57\x24\xff\x00\x53\x1a\x5d\ \x08\xfc\x48\x55\xdc\x28\x20\x91\xc6\x6b\x9a\x53\x21\x30\xdb\x9f\ \xfa\xe4\x3f\xed\x47\xb3\x80\x2a\x0f\x03\xf7\xae\xd8\xe2\x8b\x5e\ \x82\xcb\xa8\x72\x30\xc2\xb4\x7a\x04\xe0\xb9\x8c\xf1\x32\xed\xf7\ \xa4\x9b\x06\x45\x5d\xb7\x04\x1a\x1f\x4c\x90\xc6\xec\x3b\xa1\x0c\ \x3f\xde\xb1\xf2\x62\xb0\xff\x00\x4f\x96\x5b\x6b\xd6\x64\x24\x34\ \x6d\xb8\xad\x5e\xbb\x61\x0f\x57\xe9\xdf\x8b\x81\x46\xac\x7b\xc0\ \xec\x7c\xd2\x11\x28\xff\x00\xc7\xb3\x8f\x6c\x8a\x18\x56\x9d\xa4\ \xad\xd3\xaf\xb3\x8c\xc1\x26\xcc\x0f\x02\xb8\x67\x3d\xce\xd6\x3c\ \x05\xf5\xb3\xdb\xce\x54\x82\x08\x3c\xd5\xed\xa7\x0d\xec\x93\x9e\ \xc6\xbd\x97\xf1\x8f\x45\x49\xa1\xfc\x65\xa8\xd4\x8c\x33\xb7\x6a\ \xf0\xf7\x11\x34\x72\x10\x46\x08\xae\x98\x67\x32\x89\x61\xc3\x1b\ \x21\xd4\x99\xda\x8d\x6d\x78\xea\x70\x4d\x29\x65\x75\x8c\x47\x21\ \x38\x1c\x1e\xe2\x98\x96\x2d\x5e\xe0\x46\x4f\x04\x70\xd5\xaf\xed\ \x1a\x50\x5c\xa3\xe3\x7c\x1a\xd0\x70\x9d\x42\xcf\xd1\x94\x81\x22\ \x8f\x6b\x1e\xf5\xe6\x15\x9a\x37\xc3\x0a\xd1\xe9\xf7\x63\x20\x33\ \x7d\x8d\x63\x2c\x3d\xac\x21\x7d\x6f\x25\xad\xc3\x47\x22\x91\x40\ \x35\xb9\xd5\xa0\xf5\xe1\x32\xa9\x2f\x8e\x57\x39\x23\xe4\x56\x23\ \x0c\x1f\x22\xba\xe3\x97\x94\xfd\xa0\x53\x2e\xda\x87\xeb\x53\x0b\ \x67\x63\x57\x3e\x28\x32\x2e\x96\xa7\x40\xd5\x59\x50\x32\x13\xc3\ \x0e\x0d\x42\x3e\x76\x3c\xd5\xea\xca\x15\x46\xd2\x41\xee\x0f\xbb\ \xe6\x9a\xce\x54\x50\x6e\x23\xdf\x58\x1f\x71\x53\x6c\xd9\x5d\x3e\ \x38\xa7\xb0\xca\x39\x0a\x28\xd1\xb0\x75\xc1\xa5\x90\xfb\x6a\x55\ \x88\x39\x15\x34\x0b\x1b\xb4\x12\x1c\x6e\x0d\x32\xf2\xfa\x91\x6a\ \x43\xc7\x34\x90\x93\xce\xf5\x31\xbe\x96\xd4\xa7\x4f\xc7\x9a\xa1\ \xc8\x2e\x08\x20\x37\xf7\xa6\x6f\x42\x5d\x42\x1f\xff\x00\x71\x79\ \xc7\x7f\x9a\xcf\x24\x37\xb9\x76\xf2\x28\x96\xf3\x18\xcf\x91\x52\ \xcd\xf3\x07\xa4\xb0\xb9\x17\x76\x28\x5b\xfc\x68\x94\x24\xbf\x24\ \x70\x6a\xcc\xfa\x06\xdc\xd6\x6f\x4a\x60\x6e\x7d\x54\xc8\x05\x30\ \xfe\x0f\x8a\x7e\x1c\xcd\x37\xf9\x45\x70\xb3\x55\xa3\x56\x84\xe8\ \x2c\xdd\xe9\x79\xcb\x4b\x71\x85\xa3\xce\xd8\x51\x1a\xf3\x50\xa0\ \x42\xbb\x6e\xe7\xf6\xac\x4a\x25\x55\x20\x5c\x9f\x73\x9e\xd4\x36\ \x2c\xe7\x2c\x6a\x0e\xe7\x2c\x72\x4d\x02\xee\xe5\x62\x5e\x77\xad\ \x48\x09\x71\x2a\x42\xb9\x63\x59\x17\xb7\x26\x46\xcb\x1c\x01\xda\ \xab\x34\xf2\x4d\x36\x95\x05\xd8\xf0\xa2\xa6\x54\x86\xcd\x3d\x6b\ \xc6\x0c\xff\x00\x96\x31\x5d\x31\xc7\x49\x43\x54\x66\x8c\xc9\x2b\ \x7a\x51\x0e\xe7\x93\xf6\xa5\x59\xde\xed\xbd\x1b\x71\xa2\x15\xfa\ \x9b\xcf\xc9\xae\x06\xe7\xab\x5c\x12\xcd\xa2\x14\xe4\xf6\x02\x9d\ \x51\x1f\xa6\x21\x81\x71\x12\xf7\xc6\xec\x7c\xd7\x59\x35\x7f\x68\ \x1d\xbc\x4a\xab\xa2\x31\xfc\xb1\xdc\xf2\xd4\x73\x80\x2b\x80\x00\ \x60\x54\x10\x59\xc2\x2f\x26\xba\x5b\x31\x82\xf0\x8d\x11\x3d\xc1\ \x3b\xfd\x29\xf7\x34\xa5\x87\xfe\xa0\xb7\x81\x4c\x75\x77\x58\xd1\ \x2d\x97\x88\xc6\xff\x00\x24\xf3\xfb\x50\xec\x10\x8b\x76\x7e\x35\ \x9d\x22\xb8\xce\xb7\x46\x82\x39\x8e\x4b\x77\x27\xe8\x90\xc5\xfa\ \x56\xfd\xdc\x42\x48\x06\xaf\x15\xe7\x2f\x09\xf4\xe5\x45\x18\x30\ \xb8\x70\x3c\xed\x8a\xde\xb1\xb9\x17\x1d\x3d\x5d\x4f\x22\xb8\xd6\ \x97\xe8\x77\x4b\x04\xa6\xca\xe7\xdd\x0c\x9b\x0c\xf6\xac\x2f\xe3\ \xbe\x86\x6d\xa4\x37\x10\x8c\xc6\xdb\xe4\x76\xa7\xa7\x74\x92\x4d\ \x07\x66\x1c\x56\xb7\x4a\xb9\x8e\xfe\xcd\xba\x7d\xe0\x05\x80\xc0\ \x27\xbd\x63\x29\x70\xbe\x50\xed\xf2\xe9\x10\xe7\xc1\x14\x6b\x2b\ \xa3\x19\xd0\xfb\xa9\xe4\x56\xb7\xf1\x77\x46\x93\xa7\x5e\x91\x8f\ \x63\x6e\xa6\xb0\xd9\x73\xf7\xaf\x46\x36\x65\x36\xcb\x60\xc5\x1c\ \xb0\xea\x56\xf5\x13\xcf\xe6\x4f\xbd\x26\xea\xf0\xc9\xff\x00\xfb\ \x06\x81\x65\x75\x25\xbc\x81\x94\xef\xdc\x79\xad\x7b\x75\x82\xf6\ \x2c\xa6\xcd\xdd\x3f\xe2\xaf\x42\xbd\x3a\xf7\x4b\x69\x62\x74\x9e\ \xc6\x96\xea\x90\xfa\x73\x97\x4d\xd1\xf7\x15\xd7\x76\xb2\x40\xdb\ \xe7\x03\x83\xe2\xba\x39\xf5\x27\xa5\x2e\xea\x7b\xf8\xa9\x27\x3b\ \x8a\x56\xa1\x94\x30\xc1\xa2\x4f\x19\x8d\xbc\x83\xc1\xaa\x56\xfb\ \x40\x1d\x4a\x9a\x24\x4d\x91\x83\xcd\x59\xc6\xa1\x8a\x0b\x02\xad\ \x8a\xcf\x40\xf4\x00\x34\x4e\x07\x63\xc5\x12\x26\xc8\xdf\x91\x51\ \x38\xf6\x83\xdc\x1d\xab\x42\xd1\x1c\xc6\x0f\xc5\x5a\xad\x14\x79\ \x5f\x00\x51\x6d\x6d\xa4\x9e\x5d\x11\x2e\x71\xcb\x76\x15\x37\xa0\ \x1c\x57\x11\x5a\xb0\xda\x5a\x45\x81\x23\xeb\x3d\xc8\xe0\x50\xfa\ \xa5\xad\x9b\xd9\xbc\xd0\x36\x1e\x3d\xf6\x35\x9f\x2e\x46\x7a\xb1\ \x06\x8c\xbe\xec\x63\xbd\x2e\x37\x35\xa5\xd3\xe2\xc6\x24\x61\x9e\ \xca\x3c\xd6\xf7\xa9\xb1\xa1\x64\x86\x2b\x75\x84\x0f\x7b\x6e\x6b\ \x52\x15\x10\xc2\x14\x7d\x5d\xe9\x7b\x08\x3d\x21\xea\x3e\xee\xdf\ \xb5\x1a\x69\x12\x24\x2e\xec\x00\x15\xe5\xca\xee\xb4\xb6\x74\xfb\ \x8e\x33\xf3\xda\x95\x9a\xed\x03\x15\x07\x26\xb3\x7a\x8f\x54\xf5\ \x9c\xa4\x1c\x77\x34\xbc\x0d\x34\xaf\xe9\xc2\xa5\xdc\xf7\xf1\x5b\ \xc7\x0f\xca\x6d\xa5\x71\x7a\xb1\xa7\xb8\xee\x78\x14\xb2\x43\x73\ \x7c\xda\xc8\xf4\xe3\x1c\xb3\x6d\x9f\xb5\x31\x6f\xd3\xe1\xb6\x4f\ \xc4\x5f\x48\x19\x80\xce\x93\xc0\xac\xee\xb3\xd6\x1a\x5c\xc7\x6f\ \xed\x4e\x36\xef\x5b\xc6\x6e\xf0\x0d\x79\x7f\x69\xd3\xa2\x31\x5a\ \x80\xd2\x70\x5e\x91\xb2\xb4\xb8\xea\x52\x9b\x8b\x97\x2b\x10\x39\ \x66\x6f\xf6\xa2\x74\xae\x94\x65\x5f\xc6\x5e\x9d\x10\x8d\xc0\x3c\ \x9a\x62\xf2\xef\xd6\x22\x18\x57\x44\x2b\xc2\x8e\xf5\xbe\x27\x18\ \xa2\xd3\x34\x6c\xa2\xde\xd9\x74\x42\xbf\xff\x00\x5f\x26\xae\x83\ \x02\xa9\x6e\xbe\xc2\x48\xde\x99\xb4\x4d\x72\x80\x78\x15\xac\x35\ \x26\xc0\xd9\x4a\xe3\x3b\x66\x8d\xd1\xd4\x35\xc9\x73\x8c\x2e\xf9\ \x3c\x55\x6f\x94\x89\x08\x1b\xed\xb0\xab\x74\xdf\x74\x72\xc4\x83\ \x2e\xea\x42\xfc\xd6\x7e\x4b\xb8\xb1\x99\x7a\xfa\xe6\x24\xf2\x77\ \x3f\xae\xf4\xef\x4f\x02\x6b\x06\x88\x11\xad\x0e\xa0\x3b\x91\x49\ \xde\xc4\xc9\x21\x6c\x1c\x1f\xda\xa9\x04\xcf\x14\x81\x91\x88\x23\ \xb8\xa5\x9b\x9c\x23\x5d\xd9\x65\x55\x98\xf3\xa4\xa4\xa3\xc7\x83\ \x51\xd1\x6f\x0d\xab\x35\x9c\xa7\x83\x95\x3e\x68\x76\xb3\xfa\xe7\ \x5c\x60\x2c\xc0\x7b\x93\xb3\x8a\xa5\xf4\x62\x78\x43\xc4\x08\x64\ \xfa\x47\x71\xf1\x5c\xf5\xea\xa8\xf7\x53\x7f\xe7\x0e\x0e\x0f\x22\ \x9d\xb7\x94\x9d\x2e\xa7\x12\x2e\xe3\x1d\xeb\x06\x2b\x86\x79\x57\ \x5f\x22\xb6\xd2\x26\x0a\x1d\x6a\xd9\xc2\x35\xae\x84\x3d\x73\xa5\ \x35\xbc\x98\x13\x28\xf6\xe7\xcd\x7c\xff\x00\xa9\xda\x49\x6d\x74\ \xf1\x3a\x90\xca\x71\x5e\xb5\x24\x78\xe4\x13\x44\x70\xc3\x91\x55\ \xfe\x26\xb5\x8b\xa9\xf4\xf1\x7b\x12\x8f\x59\x3f\xc4\x03\xfd\x6b\ \x9e\x3f\x4b\xaf\x4b\xdb\xc4\x91\x93\xe0\x8a\x2d\xbc\x8f\x1b\xeb\ \x8c\xe0\xaf\x22\xa6\xe6\x32\x18\xb6\x31\xbe\xff\x00\x06\x85\x93\ \xc8\xd9\x85\x77\x47\xa1\xe9\xd7\xb0\x5e\xc5\xe9\x5c\xe3\x51\x18\ \xcd\x07\xa9\x74\xb7\x84\x17\x8f\xdc\xb5\x8f\x0b\x1c\xfa\x91\xec\ \x47\x22\xb7\x3a\x47\x55\xca\xfa\x53\x6e\xbc\x1c\xf6\xac\x59\x67\ \x31\x59\x8a\xe5\x46\x87\x19\x5f\x07\xb5\x52\x54\xc7\xb9\x4e\x54\ \xfe\xd5\xb7\xd4\x6c\x22\x99\x3d\x58\x4f\x23\x3b\x76\xac\x89\x63\ \x92\x16\xdf\x8f\xd8\xd5\x99\x4a\x00\x71\x50\xca\x18\x55\xe4\x50\ \xe0\xe3\x62\x7b\x52\xec\x25\x8c\xf3\x91\x5b\x44\x10\x55\xaa\xe4\ \x87\x88\x82\x77\xc5\x41\x91\x58\x7b\x81\x1f\x35\x41\xb9\xd2\xa7\ \x24\xf3\x8e\xd5\x06\x85\xad\xbc\xf7\x0e\x12\x30\x4f\x93\xd8\x56\ \x86\x16\xda\x1f\xc3\xc4\x76\x1b\xbb\x7f\x51\xa2\x4d\x74\x74\x68\ \x8d\x44\x6b\xe1\x6b\x3e\xea\x75\x8d\x79\xdf\xb0\xac\xf3\x45\x2f\ \x67\x23\xd8\x9c\x9f\xda\x84\x87\x45\xb3\x26\x7f\xc4\x60\x4f\xe9\ \xff\x00\x7a\xa2\xe5\xdb\x53\x72\x7f\x61\x57\x0a\x65\x93\x0a\x36\ \x1b\x7e\x95\xad\x02\x59\x45\xad\xb5\x1e\x05\x7a\x0e\x97\x6b\xa0\ \x09\x24\x1b\xf6\x1e\x28\x3d\x16\xc8\x2a\x89\x64\x18\x03\xe9\x15\ \x6e\xb3\xd5\x62\xb3\x8c\xa2\x1d\x52\x9e\x14\x57\x2c\xb2\xf2\xba\ \x8a\x6b\xa8\x5e\xc1\x69\x09\x79\x1c\x7c\x0a\xf3\x5d\x43\xa8\x4f\ \x7d\x26\x01\x2b\x1f\x81\x41\x93\xd7\xbc\x98\xcd\x70\x4e\xfd\x8f\ \x02\x8a\x88\x89\xc6\xf5\xac\x30\x90\xb5\x58\xd4\x28\xda\xb6\x6c\ \x67\x4b\x2e\x91\xeb\xae\x4b\x37\x35\x94\xda\x48\xd8\x60\x8e\xd4\ \x79\x98\xc9\xd1\x1a\x34\xdd\xa3\x6c\x91\xf1\x56\xcd\xa1\x4b\xfb\ \xfb\x9b\xd9\xb1\xb9\xcf\x0a\x2b\x47\xa1\xf4\x75\x8d\x3f\x17\x7d\ \xed\x0b\xb8\x53\xda\xa9\xfc\x2d\xe8\xc3\x69\x35\xcc\x8a\x09\x43\ \xb5\x57\xa8\x5f\xcf\x74\x70\xcd\xa5\x3b\x28\xe2\xb5\x95\xbf\xeb\ \x8a\x89\xd5\xaf\x8d\xcb\xfa\x68\x34\xc2\x9f\x48\xf3\x4b\xda\xa8\ \x2d\x93\xbd\x06\x8b\x6a\x48\x93\x03\xbd\x35\xa8\x8d\x28\xc0\x10\ \x1c\x73\x46\xb5\x1a\x63\x04\x77\xe6\x87\x18\xfe\x41\xc6\xe4\xd5\ \xa1\x60\x23\xd2\xd9\x07\x3d\xc5\x49\xce\x22\xf3\xa3\x3b\x7a\x88\ \x77\x5e\xd4\x04\x56\x57\xf5\x21\xdb\x07\x3a\x7b\x8f\xfb\x53\x0a\ \x7b\x83\x50\xe8\xaf\xee\xc6\x0f\x91\x49\x65\x9a\xa2\x4d\xcc\x17\ \x63\x4d\xca\x80\xc7\x6d\x63\x9f\xd7\xcd\x23\x7f\xd3\x9e\x2f\x7c\ \x64\x32\x1e\x08\xe2\x98\x91\x3f\xf9\x54\x91\xfd\x4b\xfe\xf5\x30\ \xc9\x24\x1b\xaf\xba\x33\xb1\x07\x8f\xfb\x54\xf1\xb8\xf4\x32\x51\ \x9e\x37\x04\x12\xac\x0d\x69\x5b\x5c\x89\xfd\xf8\xc4\xa0\x7b\xc0\ \xfc\xc3\xcf\xdc\x53\x12\x5a\x5a\x5e\xc7\xa9\x1b\xd2\x93\xc1\xe0\ \x56\x6d\xd5\x9d\xd5\x9c\x81\x8a\xb6\x01\xc8\x71\xc5\x5d\xcc\xb8\ \x14\xbb\x88\x47\x78\xa5\x7e\x97\x20\x8a\xf5\x16\xc8\x7f\x0a\xa0\ \xef\xb5\x79\xf9\xff\x00\x9b\x6d\x1c\x9a\x70\x43\x83\x8f\xd6\xbd\ \x1c\x8e\xb0\xdb\x2e\xa3\x8d\xaa\x77\xc2\x95\x99\x74\xb6\xa5\xe3\ \xbd\x56\x29\x0c\x32\x6b\x4d\xd5\xb6\x65\xf3\x4b\x7e\x2c\x89\xcf\ \x74\x26\x99\x5c\x32\xec\x72\x0f\x15\x73\xc3\x49\x19\x3d\x72\xc1\ \x41\x37\x10\x8c\xc6\xdf\x50\xac\x29\xe2\x29\x21\x1f\xd8\xf9\xaf\ \x5e\xe0\xa8\x2a\x46\x54\xf2\x2b\x17\xaa\xd9\x7b\x48\x51\xf4\xee\ \xb5\x31\xba\xe2\xab\x20\x67\x3a\xd3\x66\x1f\xbd\x11\x18\x91\xea\ \x47\xed\x23\xea\x1e\x28\x64\x10\x72\x39\x15\x28\x48\x3e\xac\x78\ \xd4\x39\x1e\x6b\x5d\x23\x4f\xa6\x75\x16\x88\x81\xfd\xd4\xf7\xad\ \x5d\x16\xf7\xb1\xe6\x2d\x21\x8f\x28\x78\x35\xe7\x30\xb3\x21\x92\ \x2d\x98\x7d\x49\xe3\xed\x44\xb4\xba\x78\xdc\x64\x90\x47\x7a\xc6\ \x58\xef\xa5\xd9\xcb\xbb\x07\x47\x3a\x46\x0f\xf4\x9f\xf6\x34\x9b\ \xa1\x53\x86\x04\x1f\x06\xb6\xed\xaf\xe3\x99\x04\x77\x2a\x08\xfe\ \xaa\xbc\xb6\xaa\xf1\xe6\x16\x59\x13\xfa\x58\x03\x52\x65\x67\x14\ \xd3\xce\xb4\x28\x4e\xe9\x9a\x95\x8c\x28\xd9\x40\xad\x76\x86\x04\ \x38\x7b\x55\xcf\xfd\x47\xfe\x6a\xd1\x0b\x35\x1b\xda\x29\x3f\x3b\ \xff\x00\xad\x6b\xcb\xf4\x8c\xeb\xcb\xa0\x9e\xd5\xdc\xd2\x63\x53\ \x36\xa6\xdc\x9e\x05\x46\x34\xee\x72\x58\xd1\x10\x15\x1f\xe7\x6d\ \xbe\xc2\xb4\x2c\xa0\x9f\x62\xee\x4f\x26\xb6\xba\x3f\x4f\x0a\xa2\ \x59\x46\x07\x20\x1a\x17\x44\xb1\x1a\x7d\x69\x86\x00\xdf\x7a\xa7\ \x58\xea\x85\xc9\xb7\xb5\x60\x14\x6c\xcf\x5c\xf2\xb7\x2b\xe3\x14\ \x6e\xb5\xd5\xc4\x47\xf0\xf6\x9e\xe7\xe0\x91\xc0\xac\x84\x4c\x31\ \x92\x66\xd6\xe7\x92\x6a\x8b\xa5\x3e\x9d\xc9\xe5\x8d\x76\xe4\xf9\ \xad\xe3\x8c\xc6\x20\xad\x22\x8f\x9f\xb5\x74\x77\x01\x5b\x3e\x98\ \xa1\x84\x63\x53\xe9\x9a\xd0\x60\xb4\x32\x6e\x87\x4b\x78\x35\xd1\ \x3b\x45\x20\x61\xfa\x8e\xc4\x52\xc5\x18\x76\xa9\x49\x19\x76\x3b\ \x8f\x06\xa5\x0d\x5a\xca\x96\xd3\xba\xe3\xf9\x17\x1b\x7f\xd0\x6a\ \x92\x21\x47\x28\xdc\x83\x55\x52\x8e\x84\x1d\xd4\xec\x47\x71\x50\ \x5e\x50\x00\x75\x12\x60\x60\x30\x38\x3f\xad\x20\x9a\xea\xa9\x73\ \x9f\xa4\x2f\xdc\xe6\xaa\xf2\xf6\x5d\xf3\xe3\x6a\xa0\xe9\x2c\x88\ \x76\x72\x28\xa9\xd4\x25\x5d\xb5\xa9\xfb\xd0\x2d\x2c\xae\x6e\x9b\ \xd8\xa4\x0f\x34\xf1\xe9\x30\x42\x99\xb8\x98\x06\xac\x5b\x8a\xba\ \xde\xf9\x59\x80\x75\xd0\x4f\xe6\x1c\x7e\xa2\xb5\xba\x5c\xd1\x33\ \x7a\x52\x28\x3a\xb8\x3e\x6b\x15\x6d\xed\xd9\x75\x42\xe2\x48\xf5\ \x69\x24\x0c\x15\x34\x78\x01\x82\x71\x10\x3e\xd2\x35\x21\xf1\xe4\ \x52\xea\xc1\xad\x75\x6d\xa3\x2d\x1e\xe9\xdc\x1e\xd4\x9b\x46\x41\ \xd5\x16\xc7\xba\xf9\xad\x4b\x59\x3d\x58\x15\xfb\x91\xbd\x0e\xea\ \xd8\x37\xba\x31\x83\xdc\x79\xa9\x8e\x76\x71\x4d\x33\x15\x03\x36\ \x13\xf9\x6f\xe3\x38\xfe\xd5\x75\x92\xee\x0c\x86\x52\x57\xbe\xa1\ \x90\x6a\xd2\xc6\xad\x90\xc3\x07\xcd\x42\x2c\xf1\x9c\x47\x2e\xdf\ \x7a\xde\xb1\xa8\xe8\x90\x4f\x22\x96\x41\x1c\x4a\x43\x39\x19\xc0\ \xc1\xff\x00\xb5\x5b\xaa\xde\x7e\x26\x5c\x26\x42\x0e\x07\x9a\x1c\ \xe2\x77\x04\xc8\xd9\x03\xb5\x2f\x82\x4d\x6f\x0c\x64\xe4\x76\x68\ \xb6\xd3\xb4\x67\x19\xdb\xc5\x0c\x21\xc5\x54\xec\x6b\x5b\xd8\xd3\ \x47\x59\x13\x3b\x1a\xa4\xb1\x87\x5c\x1f\xd2\x92\x8a\x46\x43\xb1\ \xa6\xa1\x9c\x30\xc1\xae\x79\x61\xee\x11\x87\xd6\xad\x3d\x19\x7d\ \x45\x1e\xd3\xcd\x67\xee\xac\x19\x7f\x51\xe6\xbd\x5d\xf4\x0b\x34\ \x2c\xa7\x7c\x8d\xab\xcd\x5d\x44\x62\x98\xa1\x18\x19\xa9\x39\x80\ \x7e\xe0\x44\xd0\x9c\x30\xe6\x8c\x81\x2e\xd0\xbc\x60\x2c\xa3\xea\ \x4f\x3f\x22\x80\x32\x8c\x58\x7e\xa2\xac\xca\x75\x09\xa0\x38\x61\ \xbe\xd5\x9e\x95\x68\xa5\x78\xce\x37\x23\xb8\xf1\x5a\x16\xb7\x5e\ \xd0\x51\xc8\xfb\x52\xf1\x7a\x5d\x41\x3d\xb8\x8e\xe4\x72\x0f\x0f\ \xff\x00\x7a\x59\x95\x92\x42\xa4\x14\x71\xcd\x5e\xd1\xb2\x6e\x19\ \xc6\x19\xb3\x54\x67\xf9\xac\xe8\xee\x99\x76\x90\x03\x8a\xe9\xae\ \x98\x8d\x09\xde\x9a\x02\x4d\x8f\xa8\xe3\x7f\xca\x2b\x4b\xa3\x59\ \x7a\x8d\xeb\x4b\xb2\x2e\xfb\xf7\xa1\x74\xbb\x36\xb9\x93\xd4\x7d\ \xa3\x5a\x27\x56\xbf\x04\x7e\x16\xd8\xe1\x06\xc4\x8a\xcd\xb6\xdd\ \x45\x4f\x59\xea\x1e\xa1\xfc\x35\xb1\xd2\x83\x66\x61\xde\xb3\x94\ \x60\x60\x0a\xe4\x5e\xc2\x89\x1e\x95\x18\xc1\x63\x5a\x92\x63\x11\ \x09\x19\x3d\xa8\xa9\x1a\x2a\x92\xf2\x2a\xe2\xb8\x25\xc3\x0c\x05\ \x20\x1f\x1b\x55\xe2\xb1\x62\x32\xd5\x2e\x4a\x13\xcb\x18\xda\x35\ \x67\x3e\x78\x15\x46\x9a\x61\xc4\x48\x3f\xbd\x30\x62\x0b\xb2\xf0\ \x2a\x0a\x8a\x9b\xd8\x42\xe2\xea\xe2\x35\xd5\xe9\xa9\x03\xe2\xaf\ \x65\x77\x1d\xda\xee\xba\x1b\xef\xb5\x1a\x78\xc3\x29\x04\x67\x35\ \x94\x0b\xf4\xee\xa0\x1c\x2e\xa8\x89\xf7\x29\xaa\x8d\x57\x89\xd1\ \xb6\x06\xaa\x59\xf8\x24\xd6\xad\xb4\x31\x5c\x40\xb2\xc6\x75\x44\ \xe3\x2b\xe4\x51\xbf\xf0\xd4\x2c\x08\x62\x45\x4f\x39\xed\x74\xc5\ \x48\xde\x43\x80\x39\xad\x6e\x99\xd2\x81\x02\x49\xb6\x14\xed\xbd\ \xac\x36\xe9\xa9\x80\xda\x94\xea\x9d\x4c\x05\x29\x19\xc0\x1d\xeb\ \x37\x2b\x97\x10\x1e\xfa\xfa\x1b\x48\xbd\x38\x30\x08\x1d\xab\x0a\ \x7b\x89\xef\x27\x08\xb9\x25\x8e\x00\xf3\x41\x96\x47\x9a\x4c\x0c\ \x9c\x9d\x85\x6f\x74\x4e\x9e\x2d\x13\xd5\x94\x03\x2b\x0f\xff\x00\ \x51\x5a\xd4\xc6\x1d\xa6\xde\xd1\x6d\x6d\x62\xb6\x1b\xbc\x8e\x0b\ \x7e\x95\x5e\xa6\xbe\x93\x46\x41\xfa\x1c\x53\x76\x2d\xeb\x5d\x1b\ \x83\xc0\xf6\xc7\xf2\x3b\x9a\x57\xae\x36\x5b\x1d\xcb\x8a\x98\xf6\ \x56\xaf\x40\x60\x49\x43\xc0\x6a\xd6\x9e\xde\x32\xd8\x56\xd2\xde\ \x0d\x63\x74\x13\x8b\x96\x1f\xe6\x14\xff\x00\x5e\x94\xc7\x26\x54\ \xef\x59\xca\x6f\x20\x2b\xdb\x4d\x4d\xc6\x97\xfd\x8d\x21\x2c\x6d\ \x1b\x69\x61\x83\x4d\xda\xf5\x13\xb2\xcc\xba\xbc\x1a\xee\xb6\xca\ \x66\x4c\x0c\x7b\x73\x57\x1b\x65\x29\x33\xf4\x63\xcd\x04\xa6\xf4\ \x62\x73\x55\x66\x55\x5d\x4d\xc0\xfd\xeb\xa4\xa8\xa1\x42\x3e\xd4\ \x19\xd7\x1b\xd5\x65\xbc\x19\xc6\xa0\x3e\x06\xf5\x45\x9d\x5f\x87\ \x06\xb7\x05\x80\xc9\xc5\x48\xca\x9f\x91\x55\x15\x7d\x61\x97\xdc\ \x37\x15\xbd\xe8\x33\x6f\x28\x6f\x6b\x56\x77\x5f\x80\x16\xcf\x91\ \x45\x49\x01\x3e\xd3\xc5\x57\xa8\xbb\x49\x6e\x7b\x90\x2b\x3a\x97\ \x98\x31\x88\x38\xdf\xea\x5d\x8d\x44\x6d\xe9\x36\x47\xd2\xdf\xb5\ \x16\x61\xa5\xd5\xff\x00\x2b\x8d\xfe\x0d\x0a\x40\x06\x57\xb1\xac\ \x71\x44\xce\x85\x48\x9e\x23\x82\x37\xda\x99\xbe\x90\xcd\x65\x6f\ \x72\xc0\x07\x6c\xa9\x3e\x71\x49\x96\x22\xd0\x8c\x9d\xce\x05\x31\ \x76\x34\xac\x36\xe3\xf2\x26\x4f\xdc\xd6\x62\x82\xea\x59\xc7\xda\ \xb8\xe1\x06\x2a\xcc\xc0\x0a\xa2\xee\x75\x37\x02\xb6\x8d\x1e\xa7\ \x76\x12\x3f\xc2\x5a\xec\xa3\x66\x23\xbd\x25\x1a\x66\xaa\x4a\xa0\ \xcb\x1a\x19\x92\x47\x38\x5f\x68\xa9\x8e\x1c\x70\x1c\x55\x88\x0f\ \xe6\x48\x17\xe2\x89\x14\xf6\xa8\xfa\x63\x5d\x44\xf7\xac\xe2\xb8\ \x1b\x9a\x7f\xa3\x59\xfa\x8f\xea\xb0\xf6\x8e\x2a\xe5\x84\x93\x75\ \x5a\x70\x7b\xd3\x56\x30\x29\x7b\xc9\x80\x3e\x9a\x77\xa3\x5f\x4e\ \x21\x8b\x0b\xfa\x0f\x35\x94\xcc\xcc\xc4\x93\x96\x3c\x9f\x15\xc1\ \x45\x9a\x5d\xb4\x21\xff\x00\xa9\xa9\x37\x9b\x0d\xb1\x62\x3c\xd4\ \xdc\x3e\x7f\x96\x9c\x77\x35\xd6\xf1\x99\x1c\x46\xbf\xad\x75\xc7\ \x1d\x4d\xd4\x5e\x39\xc3\x6c\x4d\x52\xfa\x11\x2c\x7f\x15\x79\xed\ \xd1\x49\xf4\xd8\x92\x3c\xd5\x23\x90\xee\x8f\x4e\xfa\x43\x5f\xc2\ \x73\x98\xcb\x59\xc8\x76\x3b\xa5\x6f\xc9\x30\x86\x02\xc7\xb5\x79\ \x3f\x74\x53\xac\x89\xb1\x53\x90\x6b\x7d\xa6\x17\x9d\x33\xd4\x53\ \xbe\x37\x1e\x0d\x73\xca\x72\xb0\xaf\x52\xea\x0c\xeb\x8c\xe0\x78\ \xac\xb9\x1d\xa4\x7e\xff\x00\x02\xba\x7c\x99\x48\x27\x35\xb5\xd0\ \xfa\x68\x8a\x31\x75\x70\x32\x4f\xd0\xb5\xbe\x31\x88\xb7\x44\xe9\ \xe2\xdd\x44\xf3\xae\x64\x3b\xaa\x9e\xd4\xdd\xf4\x85\xcf\xe1\x90\ \xfb\xdf\x77\x3f\xd2\x2a\xd7\x53\x7a\x30\x99\x5b\x77\x3b\x20\xa3\ \x74\x0b\x12\x75\x5c\x4f\xbf\xe6\x62\x7b\x9f\x15\x8b\x7d\xd5\x5a\ \x08\xc4\x2a\x18\x8c\x05\x4d\x87\x8a\xc8\xea\x04\xc9\x77\x12\x9e\ \x4b\x67\xf7\xad\x7e\xa3\x27\xb4\x81\xf9\x8e\x6b\x12\x59\x14\xf5\ \x20\x49\xd9\x76\xad\x61\xf9\x2b\x6b\xa2\x3a\xac\xe4\x9d\xf7\xcd\ \x37\xfc\x40\xa4\x95\x90\x6e\xad\xde\xb1\xe3\x79\x23\x6d\x69\xc7\ \xc5\x3b\x1f\x53\x62\x9e\x9c\xf1\x07\x5f\x9a\x96\x73\xb8\x01\x57\ \x77\x2e\x72\x4e\xe0\x62\x8c\x12\xda\xe7\xff\x00\x4e\xc6\x37\xfe\ \x86\xe0\xfd\x8d\x01\x83\x23\x15\x60\x41\x1c\x83\x52\x71\x4a\x87\ \x65\x45\xd4\xdc\x0a\xcf\x9a\x76\xba\x93\x0a\x48\x40\x71\xff\x00\ \xd5\x4f\x57\x9c\xed\x0a\x1d\xcf\x34\x95\xc4\xde\x92\x7a\x51\xf3\ \xdc\xd7\x44\x30\xf3\xc5\x11\xd2\x8b\xab\x1c\x81\x54\x33\x5b\xbf\ \xf8\x88\x50\x9e\x0d\x67\xe4\xe6\x88\x92\x63\xda\xfe\xe5\x34\xd0\ \x7d\x43\xae\xf1\xbe\xb5\xf1\x57\x8e\x65\x62\x41\xf6\x91\xd8\xd2\ \x2a\x5e\x1f\x7c\x4c\x4a\x78\xf1\x4c\x45\x2c\x77\x03\x0d\xed\x6f\ \x35\xad\xd8\x2d\x78\x8d\xfe\x2c\x5c\x8e\x7e\x6b\xad\xae\x16\x54\ \xd2\xdb\x37\x71\x52\x1d\xe2\x3a\x64\x19\x07\x83\x4a\xde\xa0\x8d\ \xc4\x91\x9f\xaa\xac\xfd\x0a\xdf\xa0\x54\x75\xf0\x72\x29\x69\xdb\ \x6c\xf7\xa2\xdd\x39\x7c\x67\xb9\x19\xa0\xbf\xba\x4c\x76\x1b\x9a\ \x82\x60\x4d\x52\x47\x19\xe1\x7d\xed\xf6\xab\x4d\x2f\xa9\x2b\xca\ \x76\xd4\x76\x15\xc8\x74\xdb\x96\xe1\xa6\x3f\xd9\x68\x5f\x51\xf8\ \xa9\x04\x8f\x73\x64\xf0\x29\xab\x0b\x57\xb9\x90\x6d\x84\x1d\xea\ \x96\x56\xed\x71\x28\x55\x04\x28\xe4\xd3\xbd\x42\xe5\x2d\xe1\x16\ \xd6\xfc\xfe\x63\x53\x2b\x7a\x9d\x8c\xc6\x80\x86\xfe\x63\x64\xd4\ \xec\xa3\x15\x53\x29\x66\x21\x01\x63\xf1\x52\x90\x3b\x90\x65\x27\ \x1f\xd2\x0f\x3f\xad\x76\xf2\x98\xf6\x22\x22\x25\x98\x20\xdf\x7d\ \xf1\x5b\x22\x68\xed\xe1\x09\x8d\xf1\xf4\x8a\x42\x2d\x31\x02\xb1\ \x28\x51\xe1\x7f\xe6\xa5\x62\x67\x7d\xff\x00\xb0\xae\x19\xe5\x72\ \xab\x13\x23\xb4\xf2\x6a\x24\xf8\xa1\x5d\x48\x10\x7a\x69\xc9\xe6\ \x8d\x78\xc2\xdd\x74\x29\x05\xcf\x6f\xe9\xa4\xcf\xb4\x12\x77\x26\ \x98\x63\xb2\xa0\x0c\x6c\x37\x26\x9e\x44\x16\xd6\xf8\xff\x00\xdc\ \x7e\x7e\x2a\x3a\x64\x01\x54\xdc\xcb\xc0\xfa\x73\x55\x91\xfd\x49\ \x4b\x53\x2c\xbc\xae\xa0\x90\x36\xde\x83\x71\x16\xa1\x90\x37\x14\ \x65\xae\x62\x01\xc1\xa2\x14\x53\xa9\x74\xb1\xc1\x1c\x53\x3d\x2a\ \xe4\xdb\xcc\x63\x73\x88\xdf\x63\xf1\x43\xb8\x8b\x57\xb9\x79\x14\ \x0c\xe7\x63\xc8\xa6\xb6\x18\xea\x11\xfa\x57\x59\x1b\x82\x72\x0f\ \x9a\xf4\x76\x72\xa4\xb1\x44\xe3\xe8\xf4\xc6\x3e\x3c\xd7\x9d\x8d\ \xfd\x7b\x7f\x49\xcf\xbd\x07\xb4\x9e\xe3\xc5\x3d\xfc\x3b\x71\x84\ \x30\x31\x39\x53\x95\xfb\x77\xa9\x79\x8a\xd0\xb0\x88\xf5\x0e\xa7\ \xea\x6f\xa1\x5b\x08\x3c\x0f\x35\xe8\x2f\x15\x61\xb4\x58\xa3\x18\ \x07\x6a\xc9\xfe\x17\x2b\x14\x97\x08\x4e\x19\x4e\x40\xf2\x0d\x6c\ \x48\x16\xe6\x15\xd2\xf8\x22\xb9\xe5\xda\xb0\xaf\x89\x69\x88\xe0\ \x0d\x85\x65\xbd\x9b\xb3\x93\xa8\x57\xa6\xba\xb7\x82\x35\xd7\x70\ \xe8\xa0\x56\x55\xef\x57\xb3\x84\x14\xb5\x84\x48\xc3\xf3\x37\x15\ \xd3\x1b\x7d\x25\x20\xb6\x57\x24\x7b\x5c\xfe\x99\xa1\xcf\x15\xd4\ \x1f\x51\x6a\xb4\x97\xb7\xf7\x5c\x48\x51\x3e\x3d\xa2\xac\xa9\x70\ \xd0\xe2\x59\x88\x4f\xea\x6d\x87\xef\xcd\x6b\xae\xc0\x6d\x6e\x24\ \x49\x41\xd6\x70\x4d\x6a\x5d\xdc\x0d\x3e\xa3\x9d\xca\x8c\x9a\xc9\ \x2b\x00\x7c\x25\xca\x16\xed\x9c\xe0\xfe\xb8\xa1\xde\xdc\x4a\xcf\ \xa1\x86\x9c\x72\x29\x64\xb5\x13\x2c\xd9\x99\xa6\x3c\x9d\x80\xa5\ \xc0\x69\x1f\x61\x92\x6b\x91\x4b\xb6\x33\xfa\xd3\xd6\x6b\x1a\x0c\ \x0c\x13\xe6\xb4\x16\xfc\x14\xf8\xc8\x23\x8a\x0a\xfb\xbd\xa7\xea\ \x1f\xbd\x6d\x0d\xd6\xb3\xfa\x9c\x1a\x64\xf5\x54\x60\x37\x38\xec\ \x6a\xd9\xa0\xbc\x52\x14\x3e\x47\x71\x52\xe5\x35\x6a\x4c\xa9\xa1\ \x33\x31\x23\xda\x09\xff\x00\x5a\xbc\x70\xcd\x21\xf6\xae\x91\xe4\ \xd4\xd6\x83\x96\xd3\x89\x07\xa7\x20\xcd\x06\xe8\xe2\x3d\x3f\xe6\ \xa0\xdb\x6b\x8e\xf0\x23\xf3\x44\xbd\x61\xab\x63\xc6\x4d\x27\x14\ \x2f\x21\xf7\x6f\xd8\x55\x61\x5d\x6e\x01\xfc\xdb\xb1\xf0\x2a\x1c\ \x82\xd8\xf2\x72\x6a\xed\xec\x88\x8f\xcd\x26\xe7\xe0\x76\x15\x28\ \x89\x9b\x5c\x9b\x6c\xa3\x65\x1e\x05\x5e\xda\x17\x9a\x41\x1a\x0f\ \xbd\x52\x18\xd9\xdc\x2a\x8c\x93\x5a\x2e\xc9\x61\x6f\xa5\x77\x95\ \xbf\x6a\x96\xe8\x4d\xd4\xc9\x65\x07\xe1\xe1\x23\xd4\x23\xdc\x7c\ \x56\x69\x6c\x1c\xb1\xc9\x27\xfb\xd4\x3b\x9c\xeb\x73\x96\x35\x54\ \x0c\x5b\xd4\x6d\xb0\x72\x2b\x58\x60\x1b\x8a\x10\x83\x03\x6a\xb8\ \x45\xce\xfb\xfd\xe8\x2b\x70\x73\x82\x06\x0d\x31\x19\x57\x5d\x42\ \xb9\xd9\xa5\x12\xde\x03\x23\xe9\x50\x07\xfb\x54\xde\xdd\x43\x6d\ \x98\x20\x21\xe6\xc6\xed\xd9\x6a\xf3\x49\xe8\x74\xa9\x25\x41\xee\ \xc7\x35\x93\x6e\xa0\x46\x0f\x2c\x77\x27\xcd\x31\xc7\xca\x8b\xe3\ \x72\xcc\x72\xc7\x92\x68\xb6\x56\xe6\xe6\x7f\xf2\xaf\x35\x48\x91\ \xa6\x94\x46\x9c\x9a\xd5\x40\x96\xb6\xba\x57\xb0\xdc\xf9\xad\x7c\ \x99\x6a\x6a\x12\x16\xea\x72\x84\x41\x12\xed\x8a\x52\x32\x58\xe9\ \x15\x4b\xa9\x0c\xb3\x12\x3c\xd3\x08\x12\xd6\x0d\x6f\x82\xed\xc0\ \xac\x4e\x20\xb4\x8c\xb0\x45\x96\xdd\x8f\x02\x92\x77\x67\x6d\x44\ \x9d\xeb\xa5\x76\x96\x42\xef\xdf\x81\x4e\x74\x9b\x07\xb9\x94\x0c\ \x1c\x7f\xa5\x6e\x4d\x4d\xd4\x29\x1c\xac\xbf\x22\xaf\x22\xac\x8b\ \xad\x4e\xe2\xbd\x15\xe7\x40\xb6\xf4\xc0\x0f\xa1\xf1\xde\xb1\xfa\ \x87\x4b\xba\xb3\x3a\xd4\x6b\x4f\xea\x5d\xf1\x52\x65\x2a\xe8\x82\ \xb1\x0d\x91\xb3\x0a\x3c\x73\x14\x99\x6e\x13\xea\x07\xdc\x3c\xd0\ \x8e\x97\x19\xe1\xaa\xa0\x90\x6a\xa3\xd3\x59\xce\x89\x71\x15\xd2\ \x9f\x63\xae\x97\x3f\x07\x8a\x8e\xa1\x7d\x3d\xaa\x95\x46\x20\xe7\ \x15\x8f\xd2\xae\x82\x66\x09\x0f\xf2\xdf\x8f\x8a\xd0\xbd\x43\x35\ \xb1\x07\x77\x41\xcf\xf5\x0f\x35\x27\x7c\xa9\x66\xfc\x6d\xd8\xd6\ \xe5\xb4\x77\x63\xb0\xa2\xda\xda\x2b\x1f\xe5\xae\xb2\x39\x76\xd9\ \x45\x75\x90\xf5\xbf\x0f\x1b\x13\xa7\x24\x11\x9f\x14\x3e\xab\x7a\ \xe5\x8c\x11\x00\x91\xae\xd8\x1b\x52\xdb\xbd\x44\x16\xe2\xe6\xde\ \xdb\x64\xc4\xd2\xff\x00\x51\x1e\xd1\xf6\x15\x97\x7b\x77\x2c\xf2\ \xfb\x9c\xbb\xf8\xec\x28\x32\x39\x76\x2b\x19\xfb\xb5\x58\x28\x88\ \x61\x46\x5c\xd5\x93\x43\x95\x7d\xc0\x13\x96\xe4\xfc\x53\xb7\x31\ \x34\x97\x0a\x80\x7b\xb4\x0c\xe7\xed\x43\xb0\x84\x34\xc1\x58\xed\ \xf5\x39\xf8\xa7\x6c\x07\xab\x77\x2c\xc7\x81\xb0\xa6\xf4\x12\x36\ \xd3\x01\xc6\x2b\xad\xd9\x96\x60\x3e\x77\xad\x2b\xc9\x16\x38\xce\ \x69\x0b\x24\x32\x4a\x5f\x1b\x03\x5b\xef\x1d\x8d\x18\xcf\xb2\xb9\ \xb7\x1b\xd4\x20\xda\xa6\xad\xe6\x0a\x2c\x51\xaf\x0a\x07\xe9\x5c\ \xc3\x02\xaf\x43\x9d\xc2\xa1\xfb\x57\x3a\x33\xc6\xfd\x41\xdb\xfa\ \x45\x2f\x70\xf9\x63\xe2\xaf\xac\xe8\x79\x4f\x32\x1f\xda\x97\x39\ \x63\x5a\x82\xd1\x0c\x9d\x4d\xc0\xdc\xff\x00\xb0\xa9\xf7\x3c\x99\ \xc6\x49\x3c\x57\x1e\x02\x0f\xd7\xef\x4f\xda\xc4\x96\xd0\xfe\x22\ \x5e\x71\xed\x15\x9b\x74\x2d\x10\x8e\xc6\x0d\x6f\xbc\xac\x36\x1e\ \x2b\x3e\x79\x4b\x39\x77\x39\x24\xd5\xae\x25\x79\xa5\xce\x0b\x33\ \x6c\x00\xa3\x7a\x31\xda\x47\xea\x5c\x10\xd3\x1e\x13\xfa\x69\x8c\ \xd7\x37\xb5\x02\x38\xf4\xff\x00\x36\x5e\x7b\x29\xaa\x3b\x7a\x8d\ \xe9\xaf\x27\x93\x56\x29\x24\xc4\xbc\x87\x48\xf1\x44\x8b\xd2\x8d\ \x72\xa7\x71\x5b\xb9\x6b\xa4\x04\x0c\xed\xc1\xa2\xdb\x4a\x63\x7c\ \x37\x07\x9a\xe9\xe3\x1f\x52\xd0\xb3\x9e\x6a\x0d\x58\xf4\xcd\x6a\ \xf0\xe4\x15\x71\xb1\xac\xb8\x83\x21\x68\x5f\x66\x43\x83\x46\xb2\ \x9c\xc3\x20\x0c\x7d\x87\x9f\x8a\xbf\x59\x8c\x65\x2f\x23\xdf\xb3\ \xe3\xb8\xac\x4e\x2a\x8b\xd2\x18\x28\x7d\x86\xa1\x51\xd4\xee\x4f\ \xd1\xe6\x81\x69\x22\xa4\xc1\xb3\xed\x61\x83\x42\xea\x39\x17\x43\ \x3c\x1e\x2a\x59\xf6\x3d\x09\x0b\x24\x09\xea\x38\xcb\xfe\x51\x42\ \x95\xde\x46\xf5\x1f\xbf\x02\xab\x18\xd6\xc5\xdb\x7c\x53\x16\x50\ \x34\xd2\x06\x23\xdb\xd8\x79\xad\xc9\x27\x35\x16\xe9\xf6\xaf\x3c\ \xca\x31\x9c\x9d\x85\x7b\x1e\x93\x69\x1d\x9d\xa9\x91\x80\xc8\xfd\ \xe8\x3f\xc3\xfd\x35\x63\x8c\x48\xe3\x0d\x8c\x9f\x81\x51\xd6\xaf\ \x32\xde\x8c\x7b\x01\x5c\xb2\xb7\x3b\xa8\xa5\x3a\x8d\xc3\x4f\x70\ \x4e\x76\x15\xd1\x25\xcc\x6b\x94\x39\x07\x90\x7b\xd0\x6d\xd7\x54\ \xc0\x7c\xd6\x90\xc6\x77\xe2\xb5\x95\xd4\xd1\x18\xfd\x46\xc6\x2b\ \x8c\x90\x82\x09\x7c\x8f\xa5\xbf\xe2\xb1\xae\x23\x78\xa4\x29\x28\ \xc3\x0f\xde\xbd\xa4\x90\x47\x2c\x64\x66\xb3\x7a\x8f\x4f\x0e\x9a\ \x5d\x75\x01\xc1\x1c\x8a\x98\xe7\x3a\x34\xf3\x35\xa9\xd2\xee\xcb\ \xc6\x23\x63\xfc\xc4\xce\x9c\xfe\x61\xe2\x93\xbe\xb5\x7b\x77\xfe\ \xa5\xec\xd4\x05\x25\x58\x30\x38\x20\xe4\x1a\xd2\x36\x58\x34\x32\ \x89\x23\x3b\x67\x50\xf8\x3d\xc5\x21\xd6\x50\xac\x8e\xc9\xc3\x8c\ \x83\x4d\xd8\x5c\xac\xe9\xa1\xfe\xbe\xff\x00\xf3\x53\x73\x09\x78\ \x4c\x7d\xc6\xe9\xff\x00\x14\xdf\x2a\xc9\x85\xd5\x2d\xf5\x01\xbf\ \x14\x58\x13\x4a\x7a\xae\x72\x5b\x7a\x01\x4d\x2c\xf1\xf6\xe4\x53\ \x76\x84\x39\x84\x73\xbd\x69\x0c\x7f\x81\x66\x7f\xf9\x24\xdc\xfd\ \xbb\x0a\x3d\xb3\x08\x2d\x37\x3c\x72\x7e\x69\x77\x26\x5b\xa2\x49\ \xce\x9d\xfe\xf5\x17\xcc\x70\xb0\xae\xe4\x6e\x69\x20\xa4\xf2\xb5\ \xc4\x81\x57\x38\xa7\xad\xa3\x11\xc6\x16\x85\x65\x6f\xa0\x6a\x3c\ \xd3\x20\x56\xad\x13\x5d\xda\xa2\x56\x08\x3d\xc7\x7f\x14\x9d\xcd\ \xc1\xf3\x8f\x8a\xce\xed\x06\x9e\xe5\x23\x07\x1b\x9a\x46\x59\x9d\ \xd1\xf3\xcb\x6c\x28\x6c\xc5\x8d\x70\xd8\x67\xfa\x77\xa6\x80\xee\ \x9b\xdf\xa5\x78\x1b\x0a\xa2\x8d\x2b\xf2\x6a\x57\x76\x2c\x69\xbb\ \x28\x06\x9f\x5e\x73\x85\x1b\x80\x7b\xd2\xdd\x09\xb2\x81\x63\x8f\ \xd7\x9b\x60\x38\x06\x85\x3c\xb2\xdd\x4e\x15\x14\xb1\xe1\x54\x51\ \x24\x69\x2f\x26\xd2\x83\x08\xbf\xd8\x0f\x26\xba\x59\x23\xb7\x43\ \x14\x07\x73\xf5\x3f\x73\xf6\xf8\xac\xce\xf7\x7b\x55\xa2\xf4\xed\ \x01\xd3\x87\xb8\xee\xdf\x95\x3e\xd4\xb4\x92\x7b\xcb\x6e\xce\x79\ \x63\x54\xcb\x3e\xc0\x6d\xe0\x55\x91\x54\x1d\xfd\xc7\xe3\xb5\x6b\ \x48\xab\x33\x31\xdc\xe6\xbb\x43\x63\xe9\x34\x50\xf8\xd8\x05\x1f\ \x6a\xba\x48\x78\x6c\x11\xf6\xaa\x07\x1b\x8e\xdf\xda\xa6\x48\xc3\ \x2e\xa4\xa3\xf5\x1b\x07\x85\x8d\xc5\xb0\xd7\x0b\x6e\x31\xda\x94\ \x8e\x42\x0e\x57\x63\xdc\x56\x65\x97\xa1\x53\x90\x70\x68\xd6\xb3\ \x85\x1e\x9c\x9b\xa1\xdb\x7e\xd5\x0c\x16\x45\xca\xec\xd4\x22\x08\ \x38\x35\x7b\x13\x24\x46\x09\x8c\x64\xe5\x1b\x74\x35\x37\xd9\x96\ \xcb\x5f\xe7\x8f\x9a\xba\xb0\x96\x1f\x45\xf9\x07\x28\x7c\x1a\x1a\ \x92\xac\xc1\xc6\xc7\xda\xe2\x94\x0a\xd5\xb5\x44\xd5\xe9\x7f\x84\ \xa1\x49\x88\x2e\x33\xa4\x0c\x57\x97\x40\x61\xba\x68\xb9\x07\x71\ \xf6\xaf\x5d\xfc\x24\x9f\x85\xe9\xad\x77\x21\xe7\x65\x1e\x6b\x39\ \xdf\xaf\x0b\x1b\x1d\x56\xe9\x6d\x6d\xfd\x24\x3e\xe2\x37\xc5\x60\ \x3b\x16\x62\xc4\xe4\x9a\x25\xdc\xcd\x3c\xc6\x46\x3c\xd0\xa9\x86\ \x3e\x31\x0c\x59\x15\x46\xd4\xc7\x6a\x65\x67\x47\xe0\x71\x59\xd4\ \x6b\x45\x25\xb2\x78\x14\xca\x7b\x58\x6e\x49\x04\x60\xb9\x6c\x0a\ \x98\xee\xa2\x71\x82\xe0\xfc\x83\x59\x97\xf3\x09\x64\xd2\xbf\x4a\ \xfe\xf4\xac\xb9\x8c\x65\x99\x57\xee\x71\x58\xf0\xd9\xb6\xb5\xec\ \x11\xc9\x19\xd4\xa3\x07\xbf\x63\xf7\xac\x0e\xa3\x62\xf0\x31\x65\ \x04\xa7\xfa\x53\x76\xb7\xce\x98\xc3\x87\x5e\xe3\x39\x06\x9d\x47\ \x8a\xe1\x3f\x97\x8c\x9e\x63\x27\xfd\x29\x37\x89\xdb\xce\x23\x32\ \x30\x65\x38\x22\xb5\x6c\xae\x44\xe3\x49\x38\x61\xbf\xeb\x42\xea\ \x36\x38\x26\x48\x41\xdb\xea\x52\x37\x14\x84\x6c\xd1\xb8\x65\x38\ \x22\xb7\xdc\x43\x3d\x5e\xd8\x86\xf5\x90\x6e\x39\x14\x0b\x46\xc1\ \xc0\xdb\xf3\x2f\xdf\xc5\x69\xdb\x4c\x97\x56\xe5\x4e\x35\x63\x04\ \x56\x55\xcc\x6f\x6f\x30\xc7\x19\xca\xd2\x5f\x41\xe8\xce\x2e\x01\ \x1f\x9c\x66\x89\x68\xba\xa6\x91\x98\x64\xea\xa5\xa0\x7d\x51\x82\ \xbc\xae\xe3\xfd\xc5\x33\x03\xe9\x9b\x23\x89\x06\x7f\x5a\xd4\x0d\ \x8d\x85\x0e\x59\x82\xec\xa7\xf5\xa1\xdc\x4c\x73\xa7\xf6\x14\xa4\ \xd2\x1c\xe0\xff\x00\x6a\x02\x4d\x2f\x3b\xef\x4b\x92\xcc\x7c\xe6\ \xa4\x29\x66\xdf\x7a\xd3\xe9\xf6\x62\x35\xf5\xa6\x1f\x20\x1a\x99\ \x65\x20\x5e\xd6\xd4\x24\x66\x69\x86\x30\x32\x05\x27\x78\xc0\xb3\ \xb2\xf0\xdb\xd3\x7d\x56\xe8\xcb\x21\x44\xfa\x45\x24\x41\x2b\xc6\ \x45\x4c\x65\xee\xaa\xf6\x56\xfa\x86\xb9\x3f\xc3\x5d\xcf\xcd\x5a\ \xe6\x5f\x59\xf1\x9d\x31\xaf\x00\x50\xb5\xcb\xe9\x08\xf2\x0a\x8e\ \x2a\x84\x7f\x51\xfe\xd4\xf1\xbb\x41\x1e\x7c\x27\xa7\x16\x42\xff\ \x00\xad\x0f\x4e\x0e\x5c\xd5\x24\x95\x23\x5c\xf1\xfe\xb4\xbf\xe2\ \x4c\x87\xda\x8e\x40\xec\xa2\xb5\x31\xd0\x68\x39\x63\xa5\x14\xb7\ \xc0\xa2\xc5\x6b\x33\x9c\xbe\x54\x78\x1c\xd2\xa8\xfd\x43\x4e\x22\ \x68\xe0\x1e\x02\xea\x3f\xde\xb8\x5b\x5c\x3b\x89\x1e\xf2\x76\x90\ \x70\x43\x60\x7f\x6e\x29\xaa\x34\xe2\xe9\x4b\x32\x1f\x4e\x72\x1c\ \x76\x6a\x5a\x7b\x7b\x9b\x56\xc4\xd1\x9d\x3f\xd4\x38\xa8\x49\x7a\ \x94\x64\x1d\x69\x26\x3b\xb2\xe1\x8f\xea\x2b\x42\xcf\xad\x44\xea\ \x20\xbd\x89\x97\x56\xd9\x61\xb5\x63\xef\x14\xad\x8d\xfc\xf6\x5f\ \xcb\xd3\xea\x41\xfd\x3c\x91\x45\xbe\xb6\x8e\xe9\x3f\x15\x62\x41\ \xfe\xa4\x1c\x8a\x50\xe2\xa2\x32\xf1\x4b\xea\xc0\xfa\x1c\x7f\x63\ \xfa\x56\xee\x1c\xee\x22\x88\xc4\x36\x0e\x43\x0e\x68\x8e\x04\x83\ \xc1\xa3\xbc\x90\x5e\x26\x2e\x53\xd1\x9c\x70\xeb\xc3\x52\xae\x1a\ \x29\x74\x39\x07\xc1\x1d\xe8\x2a\x41\x07\x07\x63\x56\x95\xb5\x44\ \x18\x8f\x76\x71\x9f\x22\xa2\x53\x9c\x79\xa0\xfb\xe7\x99\x61\x87\ \x76\x63\x8a\xa0\xfd\x1a\xcd\xef\xfa\x88\x03\xe8\x5d\x8b\x1e\x00\ \x15\xe9\x2e\xe6\x56\x45\x82\x21\xa6\x28\xc6\x00\xf3\xf3\x4b\x58\ \xc2\x96\x56\x42\xde\x3f\xa8\x8f\xe6\x37\x9f\x8a\xba\x2b\x33\x00\ \xa0\x93\x59\xd7\xb1\x00\x12\x70\x06\x4d\x39\x6d\x66\xe5\x75\x11\ \xfd\xe8\xd6\x96\xe9\x02\x7a\x92\xee\xde\x2a\xb7\x17\x6c\x4e\x10\ \xaa\x81\x58\xb9\xdb\xc4\x5d\x14\xba\x8f\xd3\x9b\x4e\x6a\x92\xb1\ \x29\xe9\x26\x40\xee\x68\xf2\x24\xb3\x39\x25\x46\xc3\x76\xec\x2b\ \x2b\xac\xf5\x48\x6d\x50\xc3\x6a\xe2\x49\x8f\xd5\x20\xe1\x7e\xd5\ \x7b\x9a\x13\xd4\xae\x61\xb2\x8f\x4e\x43\x4c\x46\xc8\x3b\x7c\x9a\ \xc8\x09\x25\xd3\x99\xa7\x62\x4b\x1a\x8b\x68\x9a\x56\xf5\xa5\x24\ \xe4\xe7\x7e\x5a\x9f\x86\x3c\x8c\x9d\x80\xad\xc9\xa4\x29\xf8\x52\ \x87\x54\x65\x90\xf9\x14\x48\xee\x6e\x21\x20\xba\xea\xff\x00\x32\ \x9c\x1a\xbd\xe4\xe1\x13\x3f\xd8\x79\xa0\xb4\x97\x18\x19\x80\xe0\ \xf9\x34\x1a\x96\xb7\xb1\xce\x06\xa6\xf7\x70\x1b\xfe\x68\x77\xf6\ \xa2\x4f\x7a\x00\xaf\xf1\xc3\x7d\xab\x37\x28\x5b\x20\xb4\x4f\x4c\ \x5b\xde\x3c\x5e\xd9\xb0\xcb\xe4\x56\x75\xf8\x02\x46\x78\x64\xc8\ \xc8\x61\xcd\x3c\x4c\x77\xb6\xc4\x70\xe2\xa2\x78\x92\xe6\x3d\x68\ \xc0\x9f\x23\x9f\xd6\x92\x05\xe1\x97\x6d\x98\x53\xb1\xd0\x3b\x43\ \x31\x46\xe7\x34\xe4\x47\xdb\xa0\x7d\xd4\xd0\xae\x51\x6e\xe1\xf5\ \x13\x69\x17\x91\xe6\x87\x6b\x21\x65\xd3\x9c\x32\x9d\xaa\xc0\x66\ \x90\x97\x62\x76\x20\x55\x23\x1a\x8f\xcf\xee\x68\xd2\x28\x65\xf5\ \x17\xb8\xc3\x0a\xa5\x89\x1f\x89\x4c\xf1\xa8\x66\xb4\x35\x3a\x65\ \x90\x8d\x04\xf3\x8f\xfa\x54\xd0\xba\xc5\xe6\x47\xa6\xa6\x99\xeb\ \x17\x26\x35\x2a\x2b\x09\xd8\xb3\x12\x7b\xd7\x2c\x66\xfe\xd5\x5c\ \x37\x34\x54\x5c\x2e\x0d\x44\x4b\xdc\xd4\xc8\x74\xae\x6b\xb4\x88\ \x0c\x8b\xb9\x00\xe2\xba\x34\x57\x3a\x58\xe1\xbb\x67\xbd\x4b\x12\ \x4e\x4d\x4c\x41\x58\xe1\x94\x1a\xd5\x82\x45\x8b\x31\xe1\x4f\xdc\ \xd1\x97\xa7\xc8\x17\xf2\x8f\xd4\x54\xc3\x10\x27\x09\x23\x29\xf0\ \x77\xa3\x24\x13\x9e\x4e\xc3\xbd\x62\xec\x0d\x6d\x11\x37\x92\x40\ \x7e\x05\x4b\x98\xd1\x72\xab\xa4\x79\xef\x5d\x70\x56\x2f\xa9\xb5\ \x1f\x8a\x52\x47\x67\x39\x35\x66\x3f\x91\x69\x25\x66\x3b\x6c\x2a\ \x8c\x75\x2e\x96\x01\x87\x83\x57\xb6\x89\xa5\x7c\x0e\x3b\x9a\xb5\ \xcb\xa8\x6d\x11\x81\x85\xf8\xe6\xad\xb3\xa1\x47\x65\x27\x65\x15\ \x42\x01\xf8\xae\xae\xa0\xa4\x84\xae\xd9\xd8\xd5\x5d\xb5\x15\x07\ \xb5\x75\xc3\x70\x3b\xd5\x19\x82\x82\x7b\xd4\xa2\x27\x62\x4e\x95\ \x19\x2c\x70\x00\xef\x5b\x1d\x22\xcc\x5a\xc5\xad\xc0\x32\xb7\x27\ \xc7\xc5\x03\xa2\xd9\x85\x02\xe6\x61\xef\x3f\x40\x3f\x96\xb5\x11\ \x0b\x1f\x8e\xe6\xb3\x47\x46\x85\xdb\x03\xfb\xd3\x70\x98\xe0\x5c\ \x82\xab\xe5\xdc\xe0\x56\x67\x52\xea\x90\x59\xa9\x8e\x3c\x49\x20\ \xfc\xa0\xff\x00\xa9\xac\x5b\xbb\x9b\xcb\xd7\xd5\x34\x87\x1d\x87\ \x61\x59\xd5\xc9\x5e\x9e\x4e\xab\xd3\x52\x5c\x48\xe6\x66\x1d\xfb\ \x0a\x15\xe7\xf1\x0d\x8c\x03\xf9\x10\x29\x3c\xf1\x5e\x55\xe1\x90\ \x6e\x0e\xf5\x06\x30\x83\x54\xad\x92\x78\x1e\x6a\x78\x43\x67\xfa\ \xaf\x5b\xbe\xbf\x52\x9a\xbd\x38\x87\x61\xb5\x2b\x67\x6d\xac\x7a\ \x92\x6c\x9d\x87\x76\xa2\xda\xdb\xe5\x44\x93\x8c\x2f\xe5\x4f\x3f\ \x7a\x6e\x24\x2c\x78\xda\xb7\x24\x9d\x22\x21\x8f\x51\xce\x36\x15\ \x6b\x87\x00\x15\x1b\x79\x34\x49\x59\x63\x4c\x01\xbd\x67\xdd\x33\ \xcb\x2f\xe1\xa3\xdd\xdf\x9f\x8a\x09\xb5\x1e\xbc\xcd\x3b\x0f\xe5\ \xc7\xb2\x8f\x26\x9c\xd0\xa0\x8d\x7e\xe7\x6e\x73\xda\xa2\x14\x48\ \xd4\x22\x8f\xe5\xc5\xff\x00\xf4\x6a\xb9\x26\x4c\x9e\x49\xab\x20\ \x39\xb4\x47\x18\xc7\x3d\xa8\x17\x1d\x36\x45\x24\xc4\x4f\xfd\x27\ \x8a\xdb\xe9\x89\x11\xb8\x60\xec\x03\x01\xed\x07\x6c\xed\x5d\x73\ \xac\x48\xc0\x8c\x6f\xc5\x67\x7c\x8f\x36\xa6\x7b\x57\xc8\x0d\x1f\ \xc7\x63\x4d\x2c\x90\xdd\xa6\x92\x34\xc8\x29\xfb\xa1\x1b\xae\x99\ \x50\x10\x7e\x2b\x3a\xe2\xc1\x87\xf3\x2d\xdf\x20\x6f\x8c\xee\x2a\ \x76\x02\x0c\x96\xf3\x7c\x8f\xde\xa6\xe5\x41\x1f\x89\x8b\x91\xf5\ \x28\xae\x49\x84\xa3\xd3\x9b\xda\xe3\x60\x4d\x40\xd7\x0c\x9b\xf0\ \x7f\xb1\x14\x07\xb5\x94\x11\xa8\x6e\xad\xb1\x15\x07\xd9\x36\xde\ \x76\xa5\xc9\x11\x49\xa9\x77\x8d\xb9\xf8\xa3\x1f\x72\xe7\x92\x3f\ \x7a\xd4\x1a\x3d\x64\xeb\xb6\x8a\x50\x7e\xa0\x2b\x3e\x25\x2e\xe1\ \x40\xf8\xa7\x6c\x5b\xf1\x16\x12\x5b\xb6\xe5\x3d\xcb\x4a\x5b\x9d\ \x17\x0b\x9d\xb0\x77\xa9\x8f\x1c\x02\xb2\xe1\xf4\x8e\xd4\x09\xf3\ \xea\x63\xb0\xad\x19\x21\x02\x53\xdb\xe6\x95\xba\x8f\x9c\x60\x91\ \xde\xb7\x8e\x41\x77\x18\x18\xfd\xe8\x91\x00\x13\x23\xbd\x0c\x1d\ \xb0\xd5\x2a\x4a\x6f\xc8\x35\xa0\xcd\xbc\x82\x32\x49\x07\x35\x17\ \x17\x4c\x46\x01\xc0\xa5\xda\x42\x78\xda\xa8\x77\xa9\xe3\xee\x89\ \x62\x49\xc9\xa9\x89\x0b\xb6\x05\x54\x0c\x9c\x0a\x7e\xda\x2f\x4e\ \x20\x74\xee\x79\xa6\x57\x42\xcc\x9e\x8c\x1a\x17\x96\x1b\xfd\xa9\ \x67\x8d\x47\xb9\xce\x05\x1a\xf2\xe1\x73\xb9\x05\xbc\x0a\x4e\x47\ \x67\x39\x63\x58\xc6\x5f\x62\xb5\x0c\x40\x52\x4f\x6a\x93\x4b\xdc\ \x3e\x5b\x48\x3b\x0e\x6b\x62\xac\xd9\x62\xed\x4e\x74\x8b\x43\x33\ \x89\xe6\x5f\x60\xfa\x41\xef\x42\xe9\xd6\xad\x73\x28\x67\x18\x8d\ \x7f\x7a\xd8\x9a\x48\xad\xa0\xd4\xc4\x05\x5e\x05\x62\xd0\x52\x55\ \x14\xb3\x90\xaa\x39\x26\xb2\xba\x8f\x53\x79\xb3\x0d\xa6\x55\x38\ \x2f\xdc\xd2\xbd\x42\xed\xee\x5b\xde\x4a\xc6\x3e\x94\x1d\xea\x90\ \xc5\x3c\xab\xed\x5d\x0b\xe4\xf3\x4d\x6c\x42\xac\x71\xee\xcc\x33\ \xe4\x9a\xba\x49\x1b\x26\xa5\x60\x40\xa2\x27\x4f\x8f\x19\x63\x96\ \xf9\x19\xa8\xff\x00\xc2\xd6\x49\x32\x06\x4f\x7d\x35\x78\x00\x33\ \x6b\x6d\x10\xa9\x76\xf8\xe0\x53\x16\xd6\x82\x3c\x4d\x39\xd5\x21\ \xdc\x2f\x8a\x69\x23\x86\xd1\x02\x46\xa0\xbe\x3c\x6c\x2a\x8a\x0b\ \x3e\x49\x24\x9a\x41\x31\x82\xef\x93\xbd\x1f\x64\x04\xd4\xa2\x04\ \x5f\x9a\x0c\xec\x59\x82\x2f\x7a\x80\x37\x72\x84\x8d\xa6\x3e\x70\ \x83\xc9\xaa\xf4\x94\x31\xdb\xbd\xe3\xee\xf2\xe5\x63\x3f\xea\x69\ \x6b\xd7\x37\x17\x6b\x04\x5b\x84\x3a\x57\xe4\xf7\x35\xab\x22\x2a\ \xcd\x1d\xba\xfd\x10\x2e\xf5\x28\x1b\x82\xaa\xb0\x8e\x79\x3f\x7a\ \xa3\x02\xa7\x06\x9d\xe9\x90\x8b\x8b\xb6\x91\xfe\x91\x4e\xc9\x05\ \x99\x04\x12\x7f\x4a\xd6\xf5\xc0\xcd\x8a\xed\xc2\xe9\x93\xdc\xbf\ \xb8\xfb\x53\x6b\x79\x11\x40\x19\xf2\x7b\x1a\x8f\xc0\xc2\xcc\x4a\ \x07\x23\xe4\x80\x29\x9b\x7e\x90\x64\x19\x58\x76\x1d\xc8\xdb\xfb\ \x9a\xcd\xb8\x85\x9a\x48\xa5\xdb\x2a\x7e\xc6\x94\xb8\x89\xe3\xf7\ \x21\x38\xad\x79\x3a\x44\x41\x4e\xb7\x85\x1b\xc0\x6d\xff\x00\x61\ \x4b\x4f\x61\x71\x1a\xe5\x1c\x48\xa3\xb6\x73\x59\x99\x63\xea\xae\ \x99\x13\x08\xe7\xff\x00\x10\x69\x61\xc3\x0a\x0b\x96\x8f\x11\xcb\ \xee\x4e\xcc\x29\xe9\xe1\x52\x7d\xc3\x41\xf9\xe0\xd2\xce\xac\xa3\ \x4b\xae\x54\xf6\x3d\xeb\x7a\x40\x7e\x83\x83\x86\x56\xfd\xea\x62\ \x6f\x4c\x84\x27\x2a\x7e\x93\x5c\xca\x50\x7b\x77\x5e\xea\x7b\x55\ \x36\x23\xe0\xd4\x0e\x5a\xca\x60\xb8\x59\x07\x1d\xc7\xc5\x5f\xa8\ \xc6\x23\x9f\x5a\x7d\x0f\xee\x53\x4a\x42\xe4\xfb\x1b\x91\xc7\xcd\ \x39\x19\xf5\xec\x8c\x47\xeb\x8b\x75\xfb\x53\xde\xc1\xa7\x94\xc9\ \x02\x49\x9e\x46\xff\x00\x7a\x5d\x66\xc6\xcd\x53\x6a\x75\xc0\xf1\ \x77\x1e\xe5\xff\x00\x7a\x0b\x56\xb1\x90\x11\x8c\x6f\xf0\x68\x44\ \x11\xb0\xdc\x57\x63\x35\xda\x1b\xb5\x6a\x5d\x0a\xd7\x54\x95\x61\ \xc8\x35\x15\x76\x2c\x84\x06\xc9\xa2\x49\x73\x23\x2e\x9c\xe0\x7c\ \x50\x70\x7c\x54\x81\x52\x88\xae\xae\x3c\xd7\x50\x06\xe2\x4c\x0c\ \x0e\x6a\x7a\x7d\xab\x5c\x4b\xbe\x74\x0e\x4f\x9a\xeb\x1b\x67\xb9\ \x9b\x27\xe9\xee\x6b\x46\xea\xe2\x2b\x28\x74\x20\x05\xb1\xb0\xac\ \x5a\x09\x71\x34\x36\x70\x0e\x32\x07\xb5\x45\x64\x4b\x2c\xd7\x73\ \xf1\xa8\xf6\x1d\x96\xad\x14\x53\x5e\x4d\xad\x89\xc1\x3c\xff\x00\ \xc5\x6d\xd8\x74\xe8\xe0\x88\x3c\xa9\x81\xd9\x7c\xfd\xeb\x3b\x93\ \xb1\x9d\xd3\xba\x6b\x31\xd6\xd8\x63\xdd\x9b\x81\x5a\x31\xdb\xdb\ \xa0\xf7\x96\x73\xf1\xb0\xa3\xbe\x58\x0c\xfb\x50\x70\x05\x25\x7d\ \x72\x23\x53\x1c\x67\xdc\x79\xf8\xab\xbd\x83\xcd\x25\x94\x7b\x88\ \x00\xf1\x96\x34\xac\xf7\x8f\x20\xd1\x10\x08\xbe\x40\xc5\x2b\xee\ \x90\xea\x62\x71\xe4\xd5\xd4\x16\xf6\xa8\xc0\xab\x31\x10\x06\x5b\ \x03\x24\x9e\xe7\xbd\x35\x0c\x61\x13\x27\x9a\xeb\x78\x70\x32\x7b\ \x55\x98\x83\x96\x3f\x4a\xd2\xd0\x39\x8e\x07\xc9\xdc\xd2\xd2\xbf\ \xa3\x67\x2d\xc1\xe4\x8d\x2b\xf7\xab\xdc\x31\xd3\xf2\xdb\x9a\x0f\ \x5d\xfe\x5f\x4d\x86\x2f\xea\x39\x34\xa2\xbf\xc2\xf0\x97\xea\x3a\ \x88\x07\xd1\x88\xb9\x07\xc9\xa7\xad\xff\x00\xc4\xb8\x27\x9c\x1a\ \x5f\xf8\x55\xd5\x7a\xb3\xc4\xc7\x1e\xb4\x65\x57\xe4\xd1\xe4\x06\ \x3b\x99\xc7\xf9\x6a\x7b\x0e\xf4\xc3\xa3\xa6\x92\x36\x67\x62\x28\ \xb1\xa0\x2f\x8f\x1b\xb1\xf1\x43\xb6\x5f\x4e\xd6\x35\x3d\x97\x3f\ \xa9\xa7\xfa\x7c\x46\x31\xae\x45\xce\x91\xea\x30\x3f\x1c\x0f\xef\ \x8a\x99\x5d\x4d\x91\x63\x2c\x76\x80\x6a\x0b\xac\x0e\x48\xd4\x54\ \xf8\x03\x8d\xbc\xd2\xb3\x5f\xca\xec\x49\x19\xcf\x77\x62\x7f\xed\ \x40\xea\xac\xff\x00\x8c\x31\x17\x00\xa0\xf7\x31\x38\x03\xcd\x2e\ \x90\x7a\x8b\xaa\x39\x63\x93\xec\x6b\x13\x19\xdd\x53\x7f\x8a\x9b\ \x23\x05\x07\xff\x00\x88\xab\xad\xcc\xf9\xd4\x4a\x31\xfb\x0a\xce\ \x6f\x52\x33\xef\x0c\xbf\x3d\xaa\x56\x56\x18\x39\x07\xed\x5a\xf1\ \x88\xd2\x6b\x88\xa5\x04\x5c\x45\x9c\xf7\xc6\x7f\x7a\x5e\x6e\x9e\ \x92\x29\x6b\x79\x01\x1f\xd0\xc6\x80\xb3\xe7\x92\x41\xa8\x37\x0d\ \x13\x64\xe4\x7c\x8a\x4c\x6c\xe9\x4a\x5c\xdb\xc9\x0c\x85\x5d\x08\ \xf8\xa5\xa5\x8f\x03\x5a\x0c\x8e\xe2\xb6\x92\xee\x19\xe3\xf4\xe7\ \x01\x87\xcf\x22\x97\xbb\xb3\x08\xbe\xa5\xbb\x6b\x4e\xe3\xb8\xab\ \xbf\x55\x19\x07\xb1\x1d\xa9\x8b\x69\x4a\xb0\x75\xe4\x73\x55\xb8\ \x87\x48\xd7\x1e\xe3\xb8\xf1\x41\x56\xd2\x75\x0f\xd4\x55\x81\xf9\ \xbf\x95\x70\xb3\x47\xf4\xb6\xe3\xfe\x2b\xae\x95\x75\xeb\x4c\x69\ \x71\x91\xf1\x54\xb7\x71\x24\x7e\x93\x1e\x77\x53\xe0\xd4\x21\x20\ \x18\xdb\xf4\xf8\x35\x67\x63\x93\x9a\x91\xbf\xc5\x45\x41\x24\x1c\ \xd6\xf4\x2e\x37\xd8\xb0\x1f\x7a\xe2\x0e\x3e\xa5\xfe\xf5\x45\xd6\ \xdb\xad\x10\x47\x26\x3f\x2d\x2c\x15\x60\xbe\x73\x55\x24\x62\xba\ \x65\x65\xe4\xe7\x3e\x2a\x94\xd7\x03\xab\x8f\x15\xc4\xe2\x81\x3c\ \x9d\x85\x03\xd7\x37\x11\xda\x43\xe9\x44\x32\xf8\xc5\x2d\x6f\x6e\ \xf2\xbf\xab\x70\x49\xce\xfa\x7c\xd4\xda\xc5\xee\xf5\xa5\xdd\x8f\ \x00\xf6\xa6\xa1\x0d\x24\x81\x40\xe4\xd7\x3d\x87\xba\x64\x68\x08\ \x3a\x46\xdf\xb5\x35\x3b\xeb\x6c\x93\xed\x14\x34\x55\x86\x2d\x3f\ \xdc\xd2\x77\xd7\x78\xf6\xa9\xdf\xc7\x8a\xce\xb7\x55\xdd\x42\xef\ \x03\x42\x73\xfe\x94\x80\x52\x7d\xcd\xff\x00\xdd\x58\x29\xfa\x9f\ \x93\xda\x8b\x14\x4c\xed\xbd\x6e\x4d\x22\xb1\xa1\x73\x8e\x00\xe2\ \x9c\xb6\x83\x7c\x01\xbd\x4c\x10\x92\xc1\x54\x6e\x68\xf7\x85\x6d\ \xe3\x11\x27\xd6\x7e\xa3\xe2\xa5\xcb\x9d\x40\x09\x88\x2c\x22\x8f\ \x7f\x27\xc9\xaa\x5d\x29\x0e\x20\x5d\xf0\x77\xf9\xa6\x7a\x5c\x25\ \xb5\x4d\x8f\xa0\x6d\xf7\xa5\x54\x86\xbd\x1a\xce\x37\xe4\xd3\x7c\ \xe8\x29\x21\xcb\x6a\xed\xaa\x9d\xbd\xb6\xb6\xea\x16\xe9\x99\x82\ \xb2\x8c\x50\x64\xb6\x9a\x27\x3a\xe3\x38\xf2\x57\x20\xd0\xc4\x68\ \x4e\xfe\x9a\xfe\xa4\x55\xbc\x8b\x59\xd8\x47\x65\x74\x97\x53\xdd\ \x07\xf4\xb7\x55\x5e\x49\xa2\x42\xa6\x7b\x86\x66\x18\x0e\x72\xc3\ \xc0\xec\x2a\x88\x90\x29\xcb\x4a\xbf\xfe\x00\x93\xfd\xcd\x3b\x00\ \x52\x8a\x23\x18\x0d\xc5\x40\xdd\x94\x61\xdf\xd5\x93\x1a\x57\x80\ \x78\xa6\xe4\x94\x45\x6a\x92\x9e\x25\x97\x50\xf9\x55\xff\x00\xbe\ \x69\x48\x12\x5b\xbb\x94\xb6\x80\x1d\x24\x85\xdb\xfd\x69\x8f\xe2\ \xcd\x31\x4e\x2d\xe3\xfa\x20\x88\x22\xd7\x2c\xae\xec\x8a\xc4\xba\ \x8e\x4b\xbb\x7b\x97\x19\x2d\x8d\x64\x79\xde\xb2\x21\x91\xe2\x7c\ \xa9\x23\x15\xe8\x7a\x3c\x82\x2b\xec\x30\xca\xb0\x2a\x47\x9a\x5b\ \xf8\x97\xa4\xb4\x0f\xeb\xc2\x09\x8d\xb7\x15\xbf\x29\x2e\xa8\xad\ \x9d\xf8\x75\x0b\x36\x19\x7c\xe2\x8d\x2d\xaa\xba\xeb\xb7\x6f\xd3\ \xb5\x61\xc4\xe5\x1b\xe3\xb8\xa7\xec\x6e\x9e\x22\x19\x0e\x57\xb8\ \xab\x66\xba\x04\x93\x2a\xc5\x5d\x74\xb0\xf3\xde\xa3\x51\xdc\x72\ \x3c\x1a\xd4\x83\xf0\xd7\xf1\x60\x90\x1b\xe7\x8a\x5a\xfb\xa7\x4d\ \x01\xca\x82\x47\x83\x49\x9c\xea\x9a\x20\xeb\x8d\xd7\xff\x00\xaa\ \xbd\xbc\xd2\x44\x75\x23\x64\x0e\x45\x50\x92\xa7\x0c\x0a\x91\xe6\ \xa7\x93\x90\x77\xae\x9d\xf6\x86\x18\xc5\x3f\xbe\x30\x12\x5e\xea\ \x78\x6a\xcf\xbc\xb7\x2a\xc5\x90\x11\x8f\xa9\x7c\x51\x9b\x63\x91\ \xb1\xa2\xac\xa2\x41\xa6\x53\x82\x38\x71\xfe\xf5\x8b\x8e\xba\x19\ \xd0\xbe\x96\xe7\x6a\x69\x8e\xb4\xf5\x07\xd4\x3e\xaf\x9a\x15\xec\ \x05\x5b\x52\x80\x3e\xdc\x1a\xad\xb4\x9a\x5b\x07\x71\x48\x0c\xa7\ \x22\xa1\xfc\xd4\x91\xa5\xbe\x0f\x15\xcd\xba\xd6\xe5\x17\xb7\x38\ \x53\xe6\xaf\xa8\xd0\x22\x38\x7f\x8a\x35\x5b\xd8\xac\xe7\x2b\x41\ \x34\x49\x8f\x6a\x5e\x79\x02\x8c\x0e\x68\x29\x71\x20\xce\x07\x35\ \x5b\x58\x5a\x79\x42\x8e\x3b\x9a\xac\x68\xd2\xc9\xa4\x6e\x6b\x42\ \x42\x96\x56\xda\x46\x35\xb5\x62\xd1\x45\x25\x9a\xb4\xec\x23\x58\ \xa3\xd6\xc3\x73\x4a\x58\x43\x9c\xc8\xdc\x0f\xde\x8b\x3c\xc4\xfb\ \x57\x73\x59\xa2\x6f\xee\x4e\x74\xae\xe4\xf6\xa5\x54\x15\x6c\xb7\ \xb9\xcf\xed\x56\x45\xf7\x61\x3d\xce\x79\x3d\x85\x35\x6d\x6c\x34\ \xeb\x6f\xa7\xbb\x79\xfb\x55\xe2\x01\x41\x0b\x31\xd6\xdf\xae\x69\ \xa8\x63\x2c\x42\x20\xde\xa5\x14\xbb\x84\x45\xdb\xb0\xad\x6b\x1b\ \x64\xb5\x40\xf2\x60\xb9\xac\x67\x9e\xbb\x50\x96\x05\xb4\xb5\x2e\ \xc3\xdc\x45\x63\xce\xcc\xd2\x96\x63\x92\x4d\x7a\x47\x41\x72\x37\ \xe1\x46\x6b\xcf\xdc\xc4\x4b\x1d\xb1\xbd\x4f\x8a\xee\xee\x95\xa5\ \xd1\x62\x2f\x6b\x22\x26\x35\x15\xc0\xcd\x64\xde\xc2\xc8\xe4\x15\ \x21\x97\x62\x29\x8e\x9f\x78\xf6\xd2\x85\x6d\x8f\x7d\xf9\xad\x5b\ \x8b\x78\xba\x8c\x3e\xa4\x45\x44\xc0\x7f\xfb\x56\xb9\xc6\xec\x79\ \xf8\x2e\x67\x8c\xfb\x65\x60\x3e\xf5\xb7\xd3\x7d\x1b\x98\x3f\x98\ \x8a\xcd\x8e\x48\xac\x7b\xcb\x67\x8d\xd8\x15\x2a\x47\x20\xd1\x3a\ \x35\xd8\xb7\xb8\x1a\x8f\xb4\xd6\xb2\x9b\x9b\x80\x7d\x62\x3f\x4e\ \x50\x02\x80\x01\xec\x29\x9b\x60\x5c\xa8\x1c\x91\x81\x4c\x75\xdb\ \x61\x71\x17\xaf\x0f\xb8\x73\xfa\xd2\x16\x53\x10\x06\x4e\x1d\x0d\ \x25\xde\x28\xf6\x7f\xc3\xd6\x0b\x6a\x86\x72\x31\x85\xd8\x9e\xf5\ \xe7\x3f\x89\x24\x0d\x73\x3b\x1e\xe7\x15\xa9\x69\xd6\xa5\x9e\xdf\ \xd1\x70\xa3\x6d\xcd\x60\xf5\x97\x0d\x23\x1c\xe7\x26\xb8\x7c\x78\ \xe5\xe7\xcb\x57\xa0\x33\xa6\x6c\x83\xce\xe2\xb7\x7a\x7c\xf1\x5c\ \xda\xfa\x17\x18\x28\xfb\x03\xfd\x26\xb0\x07\xba\x05\x61\xca\xec\ \x69\xae\x97\x30\x12\x98\x9c\xe1\x5c\x73\xe0\xd7\x4c\xf1\xdc\x48\ \x4f\xf8\x93\xa4\x49\x67\x39\x65\x5c\xa9\xf1\xc5\x65\x44\xe6\x36\ \xcf\x23\xb8\xaf\x77\x6a\x52\xed\x1b\xa7\xdd\xe3\x58\xfa\x18\xd7\ \x95\xfe\x23\xe9\x72\x59\x5c\xb7\xb4\xe3\x35\x30\xcf\xfe\x72\x2c\ \x0e\x09\x5a\x3c\x49\x11\xd8\xf2\x2b\x7b\xa3\xf5\x34\x96\x3f\x4a\ \x71\xa9\x7b\x83\xb9\x15\xe5\xad\xa5\x31\xb6\x0f\x06\x9b\x46\x68\ \xdc\x49\x19\xad\xe5\x8e\xcd\xbd\x5d\xc7\x45\x8a\xe9\x3d\x48\x0a\ \xb2\x9e\x01\xff\x00\x9a\xc9\xbd\xe9\x12\x40\xf8\xd0\xc9\xf7\xe0\ \xd1\x3a\x2f\x58\x78\x58\x61\xb0\x7b\xa9\xe0\xd7\xac\xe9\xb7\x96\ \xb7\xf1\x60\xe9\x0d\xc1\x56\xae\x37\x2c\xf0\x5e\xde\x16\x6e\x9f\ \x36\x9d\x4a\xa5\xbe\xd4\x9b\xab\x2b\x61\x81\x07\xe4\x57\xd2\xa5\ \xe9\x90\xf2\xa8\x07\xc8\xa4\x3a\xb7\x47\xb6\x9e\xdf\x12\x47\x83\ \xd9\xd4\x6e\x29\x8f\xf2\x3f\x27\x8b\xc2\xa4\x83\x4f\xa7\x20\xca\ \xf6\x3e\x29\x7b\x98\x8a\x36\x47\x07\xc5\x69\x75\x7e\x9b\x2d\x9b\ \x1d\xc4\x91\xf6\x71\xfe\xfe\x29\x15\x23\x74\x7f\xa4\xfe\xd5\xdf\ \x8b\x37\x19\x52\x17\xd4\xba\x0f\x3d\xaa\xea\x7b\x1a\x0c\xc8\x62\ \x93\x6d\xc7\x62\x2a\xe8\xda\x97\x23\xf5\xab\x05\x98\x60\xd1\xa3\ \x39\x5c\xd0\x79\x15\x68\x4e\x1b\x1e\x6b\x7d\x81\xdc\x3e\x9c\x93\ \x4a\x1d\x4e\xfb\x6e\x4d\x35\xd4\x47\xb7\x35\xdd\x2d\x54\x6b\x95\ \x86\xca\x2a\x50\x68\x95\x2c\xed\xf5\xb6\x35\x1a\x5a\x30\xd7\x12\ \x99\xa4\xe3\xb5\x44\x8c\xd7\x53\xe4\xe4\x20\xa3\x70\x30\x36\x02\ \xb2\x1f\x9a\x50\xa8\x11\x76\x51\x42\x89\x4b\x8c\xb1\xd2\xbd\xfc\ \x9a\x11\x90\x38\xdc\x60\xd3\x16\xb8\x76\x50\x78\x03\x8a\x9d\x40\ \xcd\xbc\x29\xa7\x51\x5d\x31\xfe\xed\x44\x6c\xc8\x42\xa8\xc0\x1c\ \x28\xed\x56\x45\x2f\x82\x4f\xc6\x29\xeb\x44\x86\xd5\x7d\x69\x86\ \xe3\xe9\x5a\xc5\xba\xfe\xd4\x6e\x9b\x6a\xb6\xf1\x7a\xb2\x8f\x71\ \xe0\x52\xd7\x52\x4b\x35\xf2\xc6\x99\x39\xe0\x0a\x1d\xdd\xf4\xb3\ \x3e\xa1\xed\x51\xc0\xad\x3f\xe1\x53\x11\xfe\x27\x85\xa4\x00\x83\ \x0e\xa5\x04\x73\x5c\xf2\x96\x4d\xd1\xaf\xd2\x7a\x15\xd7\xe0\xc4\ \xc3\x00\xf8\x6e\xf4\x2e\xa1\xd1\x12\x43\xfc\xdb\x53\x03\xe3\x1a\ \xe3\x19\x53\xf7\x14\xf7\x52\xeb\x52\x17\x29\x19\x0a\x01\xc0\x02\ \xa2\xd7\xae\x38\xf6\xc8\x01\xfb\xd7\x09\x7e\x4e\xda\xe1\xe3\x7a\ \xbf\x4a\x9a\xd9\xb1\x22\x6a\x43\xf4\xb8\xef\x49\x5b\xdc\xcd\x67\ \x20\xcb\x1d\x3e\x6b\xe9\x7e\x9d\x97\x50\x8c\xaa\xe9\x52\xc3\x75\ \x3c\x1a\xf3\xbd\x7f\xf8\x56\x45\xd4\xf6\xcb\x90\x7f\x21\xef\xf6\ \x35\xdf\x0f\x9e\x5e\x32\x66\xc6\x54\x8d\x07\x52\x83\x21\x82\xcc\ \x06\xc7\xcd\x63\x5e\xda\xbc\x32\x10\x57\x04\x76\xa2\x4b\x0d\xc5\ \x95\xc1\x00\x30\x2b\xca\xf8\xa7\xa1\xbb\xb7\xbc\x84\x45\x73\x85\ \x60\x36\x6f\x15\xda\x6f\x1e\x67\x48\x57\xa3\xde\xfa\x4d\xe8\xcd\ \xbc\x6d\xb6\xf5\x1d\x5a\xd3\xd0\x90\x5c\x42\x35\x21\xe7\x15\x5b\ \xab\x09\x55\xb3\x18\xd6\x0f\x75\x35\x68\xde\xfd\x22\xd1\xb2\xa8\ \x3f\x9b\x15\x78\xde\xe0\x5c\x5d\xb0\x18\x40\x72\x79\x14\x19\xcc\ \xae\x72\xfb\x7c\x66\x99\x9d\x8e\x49\x9e\x70\x3e\x13\x1b\xd1\xad\ \x6c\xa5\x91\x43\xa4\x02\x34\x3c\x49\x29\xe7\xec\x3b\xd6\xb7\x20\ \xa4\x09\xff\x00\x92\x73\xfe\x60\x3f\x6a\x5d\x1f\x43\xe7\xb0\x35\ \xa1\x78\x12\x18\x16\x04\x3c\x6e\x4f\x72\x7c\xd2\x16\xe0\x3b\xba\ \x76\x35\x9c\x79\x1a\xf2\x3b\x49\x6f\x15\xd2\x1f\x7c\x67\x4b\x62\ \xb4\x66\x48\xba\xc7\x4d\x2a\xd8\xf5\xd0\x71\xe6\xbc\xff\x00\x4f\ \x9d\xe1\x9b\x41\x39\xd3\xbf\xdc\x56\x8d\xf3\x35\xbc\xd1\xdd\x5b\ \xb1\x50\xe3\x3b\x57\x1c\xb1\x57\x97\xea\x96\x6f\x69\x70\xc8\xca\ \x40\xce\xd5\x16\x73\x01\xec\x73\xb1\xe0\xd7\xb3\x96\xca\xd7\xad\ \xd8\xb1\xc6\x9b\x85\x19\xdb\xbd\x78\xde\xa7\x63\x2d\x9c\xe5\x1c\ \x1c\x03\xcd\x6f\x0c\xe6\x5c\x5e\xcb\x05\x61\xa4\xea\x4a\x7f\xa7\ \xde\xb2\x91\xb9\x04\x70\x73\xb8\xac\xab\x59\xb3\xec\x63\xbf\x62\ \x68\xac\x0a\xb6\x45\x6e\xcd\xf1\x51\xed\x3a\x3f\x5f\x92\x35\x09\ \x3e\x64\x4e\x33\xdc\x56\xea\xcf\x05\xd4\x3a\xa1\x75\x6c\x8e\x2b\ \xe6\xf6\x77\x45\x4e\x1b\xfb\xd6\xad\xa5\xcb\x29\x0f\x0c\x84\x11\ \xe0\xd7\x9f\x3f\x8a\x5e\x9a\x94\xef\xf1\x1c\x46\x37\x2d\x18\x3f\ \xe6\x43\xc1\xaf\x31\x75\x1a\x1f\x7c\x5c\x77\x53\xf9\x6b\xd7\x8b\ \xc8\xba\x84\x5e\x85\xd0\x09\x21\xd8\x3f\x63\xf7\xaf\x35\xd6\xec\ \xe5\xb3\xb9\x39\x1b\x67\x63\xe6\xb7\xf1\x5d\x71\x4a\xce\xd9\x97\ \x43\x71\xdb\xe2\x82\x33\x14\x98\x23\x6a\x3b\xe1\x86\x47\xea\x2a\ \x92\x2e\xb5\xf9\x1c\x57\x6b\x19\x48\x23\x90\x76\xa9\xe0\xe4\x50\ \xa2\x62\x0e\x93\x44\xab\x28\x9b\xa5\xf5\x21\xc8\xed\x40\xb7\x72\ \x2d\x65\x51\xb1\xe6\x98\x8c\xec\x54\xf0\x69\x68\xc6\x99\xa4\x43\ \xdd\x4d\x5b\xd0\x25\xb7\xf8\x23\x14\x68\x23\x32\x3e\x3b\x0e\x68\ \x16\xc7\xf9\x42\x9d\x0e\xb1\xc4\x14\x63\x38\xc9\xac\xfa\x1f\xff\ \xd9\ \x00\x00\x2e\x32\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x01\x00\x48\x00\ \x48\x00\x00\xff\xdb\x00\x43\x00\x04\x02\x03\x03\x03\x02\x04\x03\ \x03\x03\x04\x04\x04\x04\x05\x09\x06\x05\x05\x05\x05\x0b\x08\x08\ \x06\x09\x0d\x0b\x0d\x0d\x0d\x0b\x0c\x0c\x0e\x10\x14\x11\x0e\x0f\ \x13\x0f\x0c\x0c\x12\x18\x12\x13\x15\x16\x17\x17\x17\x0e\x11\x19\ \x1b\x19\x16\x1a\x14\x16\x17\x16\xff\xdb\x00\x43\x01\x04\x04\x04\ \x05\x05\x05\x0a\x06\x06\x0a\x16\x0f\x0c\x0f\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\xff\xfe\x00\ \x12\x42\x6c\x75\x65\x20\x41\x6e\x67\x6c\x65\x20\x53\x77\x69\x72\ \x6c\xff\xc0\x00\x11\x08\x01\x20\x01\x20\x03\x01\x22\x00\x02\x11\ \x01\x03\x11\x01\xff\xc4\x00\x1b\x00\x00\x02\x03\x01\x01\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x04\x01\x02\x05\x00\x06\ \x07\xff\xc4\x00\x3d\x10\x00\x02\x01\x03\x03\x03\x03\x02\x04\x04\ \x05\x02\x06\x03\x01\x00\x01\x02\x03\x00\x04\x11\x12\x21\x31\x05\ \x41\x51\x13\x22\x61\x32\x71\x14\x42\x81\xa1\x06\x23\x52\x91\x33\ \x62\xb1\xc1\xd1\x72\xe1\x15\x24\x34\x43\x53\xf1\x82\x92\xa2\xf0\ \xff\xc4\x00\x19\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x06\xff\xc4\x00\x24\x11\ \x01\x01\x00\x02\x02\x02\x02\x02\x02\x03\x00\x00\x00\x00\x00\x00\ \x00\x01\x02\x11\x21\x31\x12\x41\x03\x22\x51\x61\x04\x71\x13\x32\ \x42\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xf6\ \x3a\x14\xae\xdf\xa5\x74\x5a\x84\x80\x67\xf5\xa2\x45\x83\x10\x14\ \x39\x50\x83\xa8\x57\xde\x6f\x7c\x3c\xad\x7b\x16\x08\xe1\x98\xe4\ \x0d\xea\xd7\x0f\x7b\x79\x27\xb1\x4e\x91\xc1\x63\x81\x4a\x58\xcb\ \xae\x2e\x46\x46\xd4\xcb\x4a\x74\x80\x18\x81\x8e\xd5\xce\xce\x44\ \xc3\x33\xdb\x5c\x8b\x6b\xd8\x90\x29\xdb\x56\x38\xad\x8f\xe1\xeb\ \x48\xa4\x96\xe0\xb3\x65\xed\x70\xf1\x6f\xe7\xbd\x65\xcb\xa2\xfa\ \xdc\x43\x31\xc4\x80\x7b\x1c\xf7\xf8\xaa\x74\x2e\xa1\x2d\x87\x59\ \x81\x67\x38\x5c\xfa\x52\x13\xe0\xd6\x72\x96\xce\x15\xba\x49\x62\ \x4e\x73\x9a\x82\x1b\x1b\x0c\xd7\x5d\x0f\x4a\xe5\xd4\x70\x1b\x6a\ \xbc\x32\x03\x5c\x94\x5b\x1b\xd7\xb7\x71\x9c\x80\x3c\x56\xf5\xbc\ \xd6\x9d\x4a\xdc\xc7\x21\x5d\x64\x63\x71\xcd\x60\xe1\x49\xc1\x00\ \xd0\x3d\x66\xb7\xba\x0d\x1b\x15\xc5\x63\x2c\x3c\xba\x5d\x8b\xd7\ \x7f\x86\xe6\x79\x49\x86\x5c\xaf\xf4\xb1\x27\xfb\x57\x9c\xbf\xe8\ \x1d\x46\x26\xff\x00\xd2\x93\xbf\x2a\x32\x0d\x7b\x15\xeb\x8c\xb1\ \x61\x86\xb3\xe2\x83\x71\xd5\x2f\x25\x1b\x15\xb7\x4f\x20\x02\x6b\ \x78\x7c\x9f\x24\xed\x35\x1e\x41\x3a\x3f\x5a\xcf\xb2\xde\x6c\x0a\ \x66\x2e\x83\x71\xf5\x5e\x5e\x2a\x79\x54\x3a\x9b\xfe\xd5\xb5\x2d\ \xd1\x6c\xeb\x9a\x79\x49\xe7\x2e\x40\x3f\xa0\xa5\x2e\xe6\xd3\x11\ \x27\x00\x78\x1b\x0a\xe9\xfe\x4c\xaa\x68\xb4\x36\xd6\x56\x79\x68\ \x53\x53\x0f\xfd\xc9\xb0\x48\xfb\x0e\x28\x37\x37\x99\x24\x47\xb9\ \x3f\x98\xd2\xd7\x13\x3c\x8d\x96\x3b\x0e\x07\x6a\x0e\xa2\xc4\x84\ \xed\xcb\x1e\x05\x6a\x63\xbe\xcd\xa6\x57\x24\xff\x00\x53\x1a\x5d\ \x08\xfc\x48\x55\xdc\x28\x20\x91\xc6\x6b\x9a\x53\x21\x30\xdb\x9f\ \xfa\xe4\x3f\xed\x47\xb3\x80\x2a\x0f\x03\xf7\xae\xd8\xe2\x8b\x5e\ \x82\xcb\xa8\x72\x30\xc2\xb4\x7a\x04\xe0\xb9\x8c\xf1\x32\xed\xf7\ \xa4\x9b\x06\x45\x5d\xb7\x04\x1a\x1f\x4c\x90\xc6\xec\x3b\xa1\x0c\ \x3f\xde\xb1\xf2\x62\xb0\xff\x00\x4f\x96\x5b\x6b\xd6\x64\x24\x34\ \x6d\xb8\xad\x5e\xbb\x61\x0f\x57\xe9\xdf\x8b\x81\x46\xac\x7b\xc0\ \xec\x7c\xd2\x11\x28\xff\x00\xc7\xb3\x8f\x6c\x8a\x18\x56\x9d\xa4\ \xad\xd3\xaf\xb3\x8c\xc1\x26\xcc\x0f\x02\xb8\x67\x3d\xce\xd6\x3c\ \x05\xf5\xb3\xdb\xce\x54\x82\x08\x3c\xd5\xed\xa7\x0d\xec\x93\x9e\ \xc6\xbd\x97\xf1\x8f\x45\x49\xa1\xfc\x65\xa8\xd4\x8c\x33\xb7\x6a\ \xf0\xf7\x11\x34\x72\x10\x46\x08\xae\x98\x67\x32\x89\x61\xc3\x1b\ \x21\xd4\x99\xda\x8d\x6d\x78\xea\x70\x4d\x29\x65\x75\x8c\x47\x21\ \x38\x1c\x1e\xe2\x98\x96\x2d\x5e\xe0\x46\x4f\x04\x70\xd5\xaf\xed\ \x1a\x50\x5c\xa3\xe3\x7c\x1a\xd0\x70\x9d\x42\xcf\xd1\x94\x81\x22\ \x8f\x6b\x1e\xf5\xe6\x15\x9a\x37\xc3\x0a\xd1\xe9\xf7\x63\x20\x33\ \x7d\x8d\x63\x2c\x3d\xac\x21\x7d\x6f\x25\xad\xc3\x47\x22\x91\x40\ \x35\xb9\xd5\xa0\xf5\xe1\x32\xa9\x2f\x8e\x57\x39\x23\xe4\x56\x23\ \x0c\x1f\x22\xba\xe3\x97\x94\xfd\xa0\x53\x2e\xda\x87\xeb\x53\x0b\ \x67\x63\x57\x3e\x28\x32\x2e\x96\xa7\x40\xd5\x59\x50\x32\x13\xc3\ \x0e\x0d\x42\x3e\x76\x3c\xd5\xea\xca\x15\x46\xd2\x41\xee\x0f\xbb\ \xe6\x9a\xce\x54\x50\x6e\x23\xdf\x58\x1f\x71\x53\x6c\xd9\x5d\x3e\ \x38\xa7\xb0\xca\x39\x0a\x28\xd1\xb0\x75\xc1\xa5\x90\xfb\x6a\x55\ \x88\x39\x15\x34\x0b\x1b\xb4\x12\x1c\x6e\x0d\x32\xf2\xfa\x91\x6a\ \x43\xc7\x34\x90\x93\xce\xf5\x31\xbe\x96\xd4\xa7\x4f\xc7\x9a\xa1\ \xc8\x2e\x08\x20\x37\xf7\xa6\x6f\x42\x5d\x42\x1f\xff\x00\x71\x79\ \xc7\x7f\x9a\xcf\x24\x37\xb9\x76\xf2\x28\x96\xf3\x18\xcf\x91\x52\ \xcd\xf3\x07\xa4\xb0\xb9\x17\x76\x28\x5b\xfc\x68\x94\x24\xbf\x24\ \x70\x6a\xcc\xfa\x06\xdc\xd6\x6f\x4a\x60\x6e\x7d\x54\xc8\x05\x30\ \xfe\x0f\x8a\x7e\x1c\xcd\x37\xf9\x45\x70\xb3\x55\xa3\x56\x84\xe8\ \x2c\xdd\xe9\x79\xcb\x4b\x71\x85\xa3\xce\xd8\x51\x1a\xf3\x50\xa0\ \x42\xbb\x6e\xe7\xf6\xac\x4a\x25\x55\x20\x5c\x9f\x73\x9e\xd4\x36\ \x2c\xe7\x2c\x6a\x0e\xe7\x2c\x72\x4d\x02\xee\xe5\x62\x5e\x77\xad\ \x48\x09\x71\x2a\x42\xb9\x63\x59\x17\xb7\x26\x46\xcb\x1c\x01\xda\ \xab\x34\xf2\x4d\x36\x95\x05\xd8\xf0\xa2\xa6\x54\x86\xcd\x3d\x6b\ \xc6\x0c\xff\x00\x96\x31\x5d\x31\xc7\x49\x43\x54\x66\x8c\xc9\x2b\ \x7a\x51\x0e\xe7\x93\xf6\xa5\x59\xde\xed\xbd\x1b\x71\xa2\x15\xfa\ \x9b\xcf\xc9\xae\x06\xe7\xab\x5c\x12\xcd\xa2\x14\xe4\xf6\x02\x9d\ \x51\x1f\xa6\x21\x81\x71\x12\xf7\xc6\xec\x7c\xd7\x59\x35\x7f\x68\ \x1d\xbc\x4a\xab\xa2\x31\xfc\xb1\xdc\xf2\xd4\x73\x80\x2b\x80\x00\ \x60\x54\x10\x59\xc2\x2f\x26\xba\x5b\x31\x82\xf0\x8d\x11\x3d\xc1\ \x3b\xfd\x29\xf7\x34\xa5\x87\xfe\xa0\xb7\x81\x4c\x75\x77\x58\xd1\ \x2d\x97\x88\xc6\xff\x00\x24\xf3\xfb\x50\xec\x10\x8b\x76\x7e\x35\ \x9d\x22\xb8\xce\xb7\x46\x82\x39\x8e\x4b\x77\x27\xe8\x90\xc5\xfa\ \x56\xfd\xdc\x42\x48\x06\xaf\x15\xe7\x2f\x09\xf4\xe5\x45\x18\x30\ \xb8\x70\x3c\xed\x8a\xde\xb1\xb9\x17\x1d\x3d\x5d\x4f\x22\xb8\xd6\ \x97\xe8\x77\x4b\x04\xa6\xca\xe7\xdd\x0c\x9b\x0c\xf6\xac\x2f\xe3\ \xbe\x86\x6d\xa4\x37\x10\x8c\xc6\xdb\xe4\x76\xa7\xa7\x74\x92\x4d\ \x07\x66\x1c\x56\xb7\x4a\xb9\x8e\xfe\xcd\xba\x7d\xe0\x05\x80\xc0\ \x27\xbd\x63\x29\x70\xbe\x50\xed\xf2\xe9\x10\xe7\xc1\x14\x6b\x2b\ \xa3\x19\xd0\xfb\xa9\xe4\x56\xb7\xf1\x77\x46\x93\xa7\x5e\x91\x8f\ \x63\x6e\xa6\xb0\xd9\x73\xf7\xaf\x46\x36\x65\x36\xcb\x60\xc5\x1c\ \xb0\xea\x56\xf5\x13\xcf\xe6\x4f\xbd\x26\xea\xf0\xc9\xff\x00\xfb\ \x06\x81\x65\x75\x25\xbc\x81\x94\xef\xdc\x79\xad\x7b\x75\x82\xf6\ \x2c\xa6\xcd\xdd\x3f\xe2\xaf\x42\xbd\x3a\xf7\x4b\x69\x62\x74\x9e\ \xc6\x96\xea\x90\xfa\x73\x97\x4d\xd1\xf7\x15\xd7\x76\xb2\x40\xdb\ \xe7\x03\x83\xe2\xba\x39\xf5\x27\xa5\x2e\xea\x7b\xf8\xa9\x27\x3b\ \x8a\x56\xa1\x94\x30\xc1\xa2\x4f\x19\x8d\xbc\x83\xc1\xaa\x56\xfb\ \x40\x1d\x4a\x9a\x24\x4d\x91\x83\xcd\x59\xc6\xa1\x8a\x0b\x02\xad\ \x8a\xcf\x40\xf4\x00\x34\x4e\x07\x63\xc5\x12\x26\xc8\xdf\x91\x51\ \x38\xf6\x83\xdc\x1d\xab\x42\xd1\x1c\xc6\x0f\xc5\x5a\xad\x14\x79\ \x5f\x00\x51\x6d\x6d\xa4\x9e\x5d\x11\x2e\x71\xcb\x76\x15\x37\xa0\ \x1c\x57\x11\x5a\xb0\xda\x5a\x45\x81\x23\xeb\x3d\xc8\xe0\x50\xfa\ \xa5\xad\x9b\xd9\xbc\xd0\x36\x1e\x3d\xf6\x35\x9f\x2e\x46\x7a\xb1\ \x06\x8c\xbe\xec\x63\xbd\x2e\x37\x35\xa5\xd3\xe2\xc6\x24\x61\x9e\ \xca\x3c\xd6\xf7\xa9\xb1\xa1\x64\x86\x2b\x75\x84\x0f\x7b\x6e\x6b\ \x52\x15\x10\xc2\x14\x7d\x5d\xe9\x7b\x08\x3d\x21\xea\x3e\xee\xdf\ \xb5\x1a\x69\x12\x24\x2e\xec\x00\x15\xe5\xca\xee\xb4\xb6\x74\xfb\ \x8e\x33\xf3\xda\x95\x9a\xed\x03\x15\x07\x26\xb3\x7a\x8f\x54\xf5\ \x9c\xa4\x1c\x77\x34\xbc\x0d\x34\xaf\xe9\xc2\xa5\xdc\xf7\xf1\x5b\ \xc7\x0f\xca\x6d\xa5\x71\x7a\xb1\xa7\xb8\xee\x78\x14\xb2\x43\x73\ \x7c\xda\xc8\xf4\xe3\x1c\xb3\x6d\x9f\xb5\x31\x6f\xd3\xe1\xb6\x4f\ \xc4\x5f\x48\x19\x80\xce\x93\xc0\xac\xee\xb3\xd6\x1a\x5c\xc7\x6f\ \xed\x4e\x36\xef\x5b\xc6\x6e\xf0\x0d\x79\x7f\x69\xd3\xa2\x31\x5a\ \x80\xd2\x70\x5e\x91\xb2\xb4\xb8\xea\x52\x9b\x8b\x97\x2b\x10\x39\ \x66\x6f\xf6\xa2\x74\xae\x94\x65\x5f\xc6\x5e\x9d\x10\x8d\xc0\x3c\ \x9a\x62\xf2\xef\xd6\x22\x18\x57\x44\x2b\xc2\x8e\xf5\xbe\x27\x18\ \xa2\xd3\x34\x6c\xa2\xde\xd9\x74\x42\xbf\xff\x00\x5f\x26\xae\x83\ \x02\xa9\x6e\xbe\xc2\x48\xde\x99\xb4\x4d\x72\x80\x78\x15\xac\x35\ \x26\xc0\xd9\x4a\xe3\x3b\x66\x8d\xd1\xd4\x35\xc9\x73\x8c\x2e\xf9\ \x3c\x55\x6f\x94\x89\x08\x1b\xed\xb0\xab\x74\xdf\x74\x72\xc4\x83\ \x2e\xea\x42\xfc\xd6\x7e\x4b\xb8\xb1\x99\x7a\xfa\xe6\x24\xf2\x77\ \x3f\xae\xf4\xef\x4f\x02\x6b\x06\x88\x11\xad\x0e\xa0\x3b\x91\x49\ \xde\xc4\xc9\x21\x6c\x1c\x1f\xda\xa9\x04\xcf\x14\x81\x91\x88\x23\ \xb8\xa5\x9b\x9c\x23\x5d\xd9\x65\x55\x98\xf3\xa4\xa4\xa3\xc7\x83\ \x51\xd1\x6f\x0d\xab\x35\x9c\xa7\x83\x95\x3e\x68\x76\xb3\xfa\xe7\ \x5c\x60\x2c\xc0\x7b\x93\xb3\x8a\xa5\xf4\x62\x78\x43\xc4\x08\x64\ \xfa\x47\x71\xf1\x5c\xf5\xea\xa8\xf7\x53\x7f\xe7\x0e\x0e\x0f\x22\ \x9d\xb7\x94\x9d\x2e\xa7\x12\x2e\xe3\x1d\xeb\x06\x2b\x86\x79\x57\ \x5f\x22\xb6\xd2\x26\x0a\x1d\x6a\xd9\xc2\x35\xae\x84\x3d\x73\xa5\ \x35\xbc\x98\x13\x28\xf6\xe7\xcd\x7c\xff\x00\xa9\xda\x49\x6d\x74\ \xf1\x3a\x90\xca\x71\x5e\xb5\x24\x78\xe4\x13\x44\x70\xc3\x91\x55\ \xfe\x26\xb5\x8b\xa9\xf4\xf1\x7b\x12\x8f\x59\x3f\xc4\x03\xfd\x6b\ \x9e\x3f\x4b\xaf\x4b\xdb\xc4\x91\x93\xe0\x8a\x2d\xbc\x8f\x1b\xeb\ \x8c\xe0\xaf\x22\xa6\xe6\x32\x18\xb6\x31\xbe\xff\x00\x06\x85\x93\ \xc8\xd9\x85\x77\x47\xa1\xe9\xd7\xb0\x5e\xc5\xe9\x5c\xe3\x51\x18\ \xcd\x07\xa9\x74\xb7\x84\x17\x8f\xdc\xb5\x8f\x0b\x1c\xfa\x91\xec\ \x47\x22\xb7\x3a\x47\x55\xca\xfa\x53\x6e\xbc\x1c\xf6\xac\x59\x67\ \x31\x59\x8a\xe5\x46\x87\x19\x5f\x07\xb5\x52\x54\xc7\xb9\x4e\x54\ \xfe\xd5\xb7\xd4\x6c\x22\x99\x3d\x58\x4f\x23\x3b\x76\xac\x89\x63\ \x92\x16\xdf\x8f\xd8\xd5\x99\x4a\x00\x71\x50\xca\x18\x55\xe4\x50\ \xe0\xe3\x62\x7b\x52\xec\x25\x8c\xf3\x91\x5b\x44\x10\x55\xaa\xe4\ \x87\x88\x82\x77\xc5\x41\x91\x58\x7b\x81\x1f\x35\x41\xb9\xd2\xa7\ \x24\xf3\x8e\xd5\x06\x85\xad\xbc\xf7\x0e\x12\x30\x4f\x93\xd8\x56\ \x86\x16\xda\x1f\xc3\xc4\x76\x1b\xbb\x7f\x51\xa2\x4d\x74\x74\x68\ \x8d\x44\x6b\xe1\x6b\x3e\xea\x75\x8d\x79\xdf\xb0\xac\xf3\x45\x2f\ \x67\x23\xd8\x9c\x9f\xda\x84\x87\x45\xb3\x26\x7f\xc4\x60\x4f\xe9\ \xff\x00\x7a\xa2\xe5\xdb\x53\x72\x7f\x61\x57\x0a\x65\x93\x0a\x36\ \x1b\x7e\x95\xad\x02\x59\x45\xad\xb5\x1e\x05\x7a\x0e\x97\x6b\xa0\ \x09\x24\x1b\xf6\x1e\x28\x3d\x16\xc8\x2a\x89\x64\x18\x03\xe9\x15\ \x6e\xb3\xd5\x62\xb3\x8c\xa2\x1d\x52\x9e\x14\x57\x2c\xb2\xf2\xba\ \x8a\x6b\xa8\x5e\xc1\x69\x09\x79\x1c\x7c\x0a\xf3\x5d\x43\xa8\x4f\ \x7d\x26\x01\x2b\x1f\x81\x41\x93\xd7\xbc\x98\xcd\x70\x4e\xfd\x8f\ \x02\x8a\x88\x89\xc6\xf5\xac\x30\x90\xb5\x58\xd4\x28\xda\xb6\x6c\ \x67\x4b\x2e\x91\xeb\xae\x4b\x37\x35\x94\xda\x48\xd8\x60\x8e\xd4\ \x79\x98\xc9\xd1\x1a\x34\xdd\xa3\x6c\x91\xf1\x56\xcd\xa1\x4b\xfb\ \xfb\x9b\xd9\xb1\xb9\xcf\x0a\x2b\x47\xa1\xf4\x75\x8d\x3f\x17\x7d\ \xed\x0b\xb8\x53\xda\xa9\xfc\x2d\xe8\xc3\x69\x35\xcc\x8a\x09\x43\ \xb5\x57\xa8\x5f\xcf\x74\x70\xcd\xa5\x3b\x28\xe2\xb5\x95\xbf\xeb\ \x8a\x89\xd5\xaf\x8d\xcb\xfa\x68\x34\xc2\x9f\x48\xf3\x4b\xda\xa8\ \x2d\x93\xbd\x06\x8b\x6a\x48\x93\x03\xbd\x35\xa8\x8d\x28\xc0\x10\ \x1c\x73\x46\xb5\x1a\x63\x04\x77\xe6\x87\x18\xfe\x41\xc6\xe4\xd5\ \xa1\x60\x23\xd2\xd9\x07\x3d\xc5\x49\xce\x22\xf3\xa3\x3b\x7a\x88\ \x77\x5e\xd4\x04\x56\x57\xf5\x21\xdb\x07\x3a\x7b\x8f\xfb\x53\x0a\ \x7b\x83\x50\xe8\xaf\xee\xc6\x0f\x91\x49\x65\x9a\xa2\x4d\xcc\x17\ \x63\x4d\xca\x80\xc7\x6d\x63\x9f\xd7\xcd\x23\x7f\xd3\x9e\x2f\x7c\ \x64\x32\x1e\x08\xe2\x98\x91\x3f\xf9\x54\x91\xfd\x4b\xfe\xf5\x30\ \xc9\x24\x1b\xaf\xba\x33\xb1\x07\x8f\xfb\x54\xf1\xb8\xf4\x32\x51\ \x9e\x37\x04\x12\xac\x0d\x69\x5b\x5c\x89\xfd\xf8\xc4\xa0\x7b\xc0\ \xfc\xc3\xcf\xdc\x53\x12\x5a\x5a\x5e\xc7\xa9\x1b\xd2\x93\xc1\xe0\ \x56\x6d\xd5\x9d\xd5\x9c\x81\x8a\xb6\x01\xc8\x71\xc5\x5d\xcc\xb8\ \x14\xbb\x88\x47\x78\xa5\x7e\x97\x20\x8a\xf5\x16\xc8\x7f\x0a\xa0\ \xef\xb5\x79\xf9\xff\x00\x9b\x6d\x1c\x9a\x70\x43\x83\x8f\xd6\xbd\ \x1c\x8e\xb0\xdb\x2e\xa3\x8d\xaa\x77\xc2\x95\x99\x74\xb6\xa5\xe3\ \xbd\x56\x29\x0c\x32\x6b\x4d\xd5\xb6\x65\xf3\x4b\x7e\x2c\x89\xcf\ \x74\x26\x99\x5c\x32\xec\x72\x0f\x15\x73\xc3\x49\x19\x3d\x72\xc1\ \x41\x37\x10\x8c\xc6\xdf\x50\xac\x29\xe2\x29\x21\x1f\xd8\xf9\xaf\ \x5e\xe0\xa8\x2a\x46\x54\xf2\x2b\x17\xaa\xd9\x7b\x48\x51\xf4\xee\ \xb5\x31\xba\xe2\xab\x20\x67\x3a\xd3\x66\x1f\xbd\x11\x18\x91\xea\ \x47\xed\x23\xea\x1e\x28\x64\x10\x72\x39\x15\x28\x48\x3e\xac\x78\ \xd4\x39\x1e\x6b\x5d\x23\x4f\xa6\x75\x16\x88\x81\xfd\xd4\xf7\xad\ \x5d\x16\xf7\xb1\xe6\x2d\x21\x8f\x28\x78\x35\xe7\x30\xb3\x21\x92\ \x2d\x98\x7d\x49\xe3\xed\x44\xb4\xba\x78\xdc\x64\x90\x47\x7a\xc6\ \x58\xef\xa5\xd9\xcb\xbb\x07\x47\x3a\x46\x0f\xf4\x9f\xf6\x34\x9b\ \xa1\x53\x86\x04\x1f\x06\xb6\xed\xaf\xe3\x99\x04\x77\x2a\x08\xfe\ \xaa\xbc\xb6\xaa\xf1\xe6\x16\x59\x13\xfa\x58\x03\x52\x65\x67\x14\ \xd3\xce\xb4\x28\x4e\xe9\x9a\x95\x8c\x28\xd9\x40\xad\x76\x86\x04\ \x38\x7b\x55\xcf\xfd\x47\xfe\x6a\xd1\x0b\x35\x1b\xda\x29\x3f\x3b\ \xff\x00\xad\x6b\xcb\xf4\x8c\xeb\xcb\xa0\x9e\xd5\xdc\xd2\x63\x53\ \x36\xa6\xdc\x9e\x05\x46\x34\xee\x72\x58\xd1\x10\x15\x1f\xe7\x6d\ \xbe\xc2\xb4\x2c\xa0\x9f\x62\xee\x4f\x26\xb6\xba\x3f\x4f\x0a\xa2\ \x59\x46\x07\x20\x1a\x17\x44\xb1\x1a\x7d\x69\x86\x00\xdf\x7a\xa7\ \x58\xea\x85\xc9\xb7\xb5\x60\x14\x6c\xcf\x5c\xf2\xb7\x2b\xe3\x14\ \x6e\xb5\xd5\xc4\x47\xf0\xf6\x9e\xe7\xe0\x91\xc0\xac\x84\x4c\x31\ \x92\x66\xd6\xe7\x92\x6a\x8b\xa5\x3e\x9d\xc9\xe5\x8d\x76\xe4\xf9\ \xad\xe3\x8c\xc6\x20\xad\x22\x8f\x9f\xb5\x74\x77\x01\x5b\x3e\x98\ \xa1\x84\x63\x53\xe9\x9a\xd0\x60\xb4\x32\x6e\x87\x4b\x78\x35\xd1\ \x3b\x45\x20\x61\xfa\x8e\xc4\x52\xc5\x18\x76\xa9\x49\x19\x76\x3b\ \x8f\x06\xa5\x0d\x5a\xca\x96\xd3\xba\xe3\xf9\x17\x1b\x7f\xd0\x6a\ \x92\x21\x47\x28\xdc\x83\x55\x52\x8e\x84\x1d\xd4\xec\x47\x71\x50\ \x5e\x50\x00\x75\x12\x60\x60\x30\x38\x3f\xad\x20\x9a\xea\xa9\x73\ \x9f\xa4\x2f\xdc\xe6\xaa\xf2\xf6\x5d\xf3\xe3\x6a\xa0\xe9\x2c\x88\ \x76\x72\x28\xa9\xd4\x25\x5d\xb5\xa9\xfb\xd0\x2d\x2c\xae\x6e\x9b\ \xd8\xa4\x0f\x34\xf1\xe9\x30\x42\x99\xb8\x98\x06\xac\x5b\x8a\xba\ \xde\xf9\x59\x80\x75\xd0\x4f\xe6\x1c\x7e\xa2\xb5\xba\x5c\xd1\x33\ \x7a\x52\x28\x3a\xb8\x3e\x6b\x15\x6d\xed\xd9\x75\x42\xe2\x48\xf5\ \x69\x24\x0c\x15\x34\x78\x01\x82\x71\x10\x3e\xd2\x35\x21\xf1\xe4\ \x52\xea\xc1\xad\x75\x6d\xa3\x2d\x1e\xe9\xdc\x1e\xd4\x9b\x46\x41\ \xd5\x16\xc7\xba\xf9\xad\x4b\x59\x3d\x58\x15\xfb\x91\xbd\x0e\xea\ \xd8\x37\xba\x31\x83\xdc\x79\xa9\x8e\x76\x71\x4d\x33\x15\x03\x36\ \x13\xf9\x6f\xe3\x38\xfe\xd5\x75\x92\xee\x0c\x86\x52\x57\xbe\xa1\ \x90\x6a\xd2\xc6\xad\x90\xc3\x07\xcd\x42\x2c\xf1\x9c\x47\x2e\xdf\ \x7a\xde\xb1\xa8\xe8\x90\x4f\x22\x96\x41\x1c\x4a\x43\x39\x19\xc0\ \xc1\xff\x00\xb5\x5b\xaa\xde\x7e\x26\x5c\x26\x42\x0e\x07\x9a\x1c\ \xe2\x77\x04\xc8\xd9\x03\xb5\x2f\x82\x4d\x6f\x0c\x64\xe4\x76\x68\ \xb6\xd3\xb4\x67\x19\xdb\xc5\x0c\x21\xc5\x54\xec\x6b\x5b\xd8\xd3\ \x47\x59\x13\x3b\x1a\xa4\xb1\x87\x5c\x1f\xd2\x92\x8a\x46\x43\xb1\ \xa6\xa1\x9c\x30\xc1\xae\x79\x61\xee\x11\x87\xd6\xad\x3d\x19\x7d\ \x45\x1e\xd3\xcd\x67\xee\xac\x19\x7f\x51\xe6\xbd\x5d\xf4\x0b\x34\ \x2c\xa7\x7c\x8d\xab\xcd\x5d\x44\x62\x98\xa1\x18\x19\xa9\x39\x80\ \x7e\xe0\x44\xd0\x9c\x30\xe6\x8c\x81\x2e\xd0\xbc\x60\x2c\xa3\xea\ \x4f\x3f\x22\x80\x32\x8c\x58\x7e\xa2\xac\xca\x75\x09\xa0\x38\x61\ \xbe\xd5\x9e\x95\x68\xa5\x78\xce\x37\x23\xb8\xf1\x5a\x16\xb7\x5e\ \xd0\x51\xc8\xfb\x52\xf1\x7a\x5d\x41\x3d\xb8\x8e\xe4\x72\x0f\x0f\ \xff\x00\x7a\x59\x95\x92\x42\xa4\x14\x71\xcd\x5e\xd1\xb2\x6e\x19\ \xc6\x19\xb3\x54\x67\xf9\xac\xe8\xee\x99\x76\x90\x03\x8a\xe9\xae\ \x98\x8d\x09\xde\x9a\x02\x4d\x8f\xa8\xe3\x7f\xca\x2b\x4b\xa3\x59\ \x7a\x8d\xeb\x4b\xb2\x2e\xfb\xf7\xa1\x74\xbb\x36\xb9\x93\xd4\x7d\ \xa3\x5a\x27\x56\xbf\x04\x7e\x16\xd8\xe1\x06\xc4\x8a\xcd\xb6\xdd\ \x45\x4f\x59\xea\x1e\xa1\xfc\x35\xb1\xd2\x83\x66\x61\xde\xb3\x94\ \x60\x60\x0a\xe4\x5e\xc2\x89\x1e\x95\x18\xc1\x63\x5a\x92\x63\x11\ \x09\x19\x3d\xa8\xa9\x1a\x2a\x92\xf2\x2a\xe2\xb8\x25\xc3\x0c\x05\ \x20\x1f\x1b\x55\xe2\xb1\x62\x32\xd5\x2e\x4a\x13\xcb\x18\xda\x35\ \x67\x3e\x78\x15\x46\x9a\x61\xc4\x48\x3f\xbd\x30\x62\x0b\xb2\xf0\ \x2a\x0a\x8a\x9b\xd8\x42\xe2\xea\xe2\x35\xd5\xe9\xa9\x03\xe2\xaf\ \x65\x77\x1d\xda\xee\xba\x1b\xef\xb5\x1a\x78\xc3\x29\x04\x67\x35\ \x94\x0b\xf4\xee\xa0\x1c\x2e\xa8\x89\xf7\x29\xaa\x8d\x57\x89\xd1\ \xb6\x06\xaa\x59\xf8\x24\xd6\xad\xb4\x31\x5c\x40\xb2\xc6\x75\x44\ \xe3\x2b\xe4\x51\xbf\xf0\xd4\x2c\x08\x62\x45\x4f\x39\xed\x74\xc5\ \x48\xde\x43\x80\x39\xad\x6e\x99\xd2\x81\x02\x49\xb6\x14\xed\xbd\ \xac\x36\xe9\xa9\x80\xda\x94\xea\x9d\x4c\x05\x29\x19\xc0\x1d\xeb\ \x37\x2b\x97\x10\x1e\xfa\xfa\x1b\x48\xbd\x38\x30\x08\x1d\xab\x0a\ \x7b\x89\xef\x27\x08\xb9\x25\x8e\x00\xf3\x41\x96\x47\x9a\x4c\x0c\ \x9c\x9d\x85\x6f\x74\x4e\x9e\x2d\x13\xd5\x94\x03\x2b\x0f\xff\x00\ \x51\x5a\xd4\xc6\x1d\xa6\xde\xd1\x6d\x6d\x62\xb6\x1b\xbc\x8e\x0b\ \x7e\x95\x5e\xa6\xbe\x93\x46\x41\xfa\x1c\x53\x76\x2d\xeb\x5d\x1b\ \x83\xc0\xf6\xc7\xf2\x3b\x9a\x57\xae\x36\x5b\x1d\xcb\x8a\x98\xf6\ \x56\xaf\x40\x60\x49\x43\xc0\x6a\xd6\x9e\xde\x32\xd8\x56\xd2\xde\ \x0d\x63\x74\x13\x8b\x96\x1f\xe6\x14\xff\x00\x5e\x94\xc7\x26\x54\ \xef\x59\xca\x6f\x20\x2b\xdb\x4d\x4d\xc6\x97\xfd\x8d\x21\x2c\x6d\ \x1b\x69\x61\x83\x4d\xda\xf5\x13\xb2\xcc\xba\xbc\x1a\xee\xb6\xca\ \x66\x4c\x0c\x7b\x73\x57\x1b\x65\x29\x33\xf4\x63\xcd\x04\xa6\xf4\ \x62\x73\x55\x66\x55\x5d\x4d\xc0\xfd\xeb\xa4\xa8\xa1\x42\x3e\xd4\ \x19\xd7\x1b\xd5\x65\xbc\x19\xc6\xa0\x3e\x06\xf5\x45\x9d\x5f\x87\ \x06\xb7\x05\x80\xc9\xc5\x48\xca\x9f\x91\x55\x15\x7d\x61\x97\xdc\ \x37\x15\xbd\xe8\x33\x6f\x28\x6f\x6b\x56\x77\x5f\x80\x16\xcf\x91\ \x45\x49\x01\x3e\xd3\xc5\x57\xa8\xbb\x49\x6e\x7b\x90\x2b\x3a\x97\ \x98\x31\x88\x38\xdf\xea\x5d\x8d\x44\x6d\xe9\x36\x47\xd2\xdf\xb5\ \x16\x61\xa5\xd5\xff\x00\x2b\x8d\xfe\x0d\x0a\x40\x06\x57\xb1\xac\ \x71\x44\xce\x85\x48\x9e\x23\x82\x37\xda\x99\xbe\x90\xcd\x65\x6f\ \x72\xc0\x07\x6c\xa9\x3e\x71\x49\x96\x22\xd0\x8c\x9d\xce\x05\x31\ \x76\x34\xac\x36\xe3\xf2\x26\x4f\xdc\xd6\x62\x82\xea\x59\xc7\xda\ \xb8\xe1\x06\x2a\xcc\xc0\x0a\xa2\xee\x75\x37\x02\xb6\x8d\x1e\xa7\ \x76\x12\x3f\xc2\x5a\xec\xa3\x66\x23\xbd\x25\x1a\x66\xaa\x4a\xa0\ \xcb\x1a\x19\x92\x47\x38\x5f\x68\xa9\x8e\x1c\x70\x1c\x55\x88\x0f\ \xe6\x48\x17\xe2\x89\x14\xf6\xa8\xfa\x63\x5d\x44\xf7\xac\xe2\xb8\ \x1b\x9a\x7f\xa3\x59\xfa\x8f\xea\xb0\xf6\x8e\x2a\xe5\x84\x93\x75\ \x5a\x70\x7b\xd3\x56\x30\x29\x7b\xc9\x80\x3e\x9a\x77\xa3\x5f\x4e\ \x21\x8b\x0b\xfa\x0f\x35\x94\xcc\xcc\xc4\x93\x96\x3c\x9f\x15\xc1\ \x45\x9a\x5d\xb4\x21\xff\x00\xa9\xa9\x37\x9b\x0d\xb1\x62\x3c\xd4\ \xdc\x3e\x7f\x96\x9c\x77\x35\xd6\xf1\x99\x1c\x46\xbf\xad\x75\xc7\ \x1d\x4d\xd4\x5e\x39\xc3\x6c\x4d\x52\xfa\x11\x2c\x7f\x15\x79\xed\ \xd1\x49\xf4\xd8\x92\x3c\xd5\x23\x90\xee\x8f\x4e\xfa\x43\x5f\xc2\ \x73\x98\xcb\x59\xc8\x76\x3b\xa5\x6f\xc9\x30\x86\x02\xc7\xb5\x79\ \x3f\x74\x53\xac\x89\xb1\x53\x90\x6b\x7d\xa6\x17\x9d\x33\xd4\x53\ \xbe\x37\x1e\x0d\x73\xca\x72\xb0\xaf\x52\xea\x0c\xeb\x8c\xe0\x78\ \xac\xb9\x1d\xa4\x7e\xff\x00\x02\xba\x7c\x99\x48\x27\x35\xb5\xd0\ \xfa\x68\x8a\x31\x75\x70\x32\x4f\xd0\xb5\xbe\x31\x88\xb7\x44\xe9\ \xe2\xdd\x44\xf3\xae\x64\x3b\xaa\x9e\xd4\xdd\xf4\x85\xcf\xe1\x90\ \xfb\xdf\x77\x3f\xd2\x2a\xd7\x53\x7a\x30\x99\x5b\x77\x3b\x20\xa3\ \x74\x0b\x12\x75\x5c\x4f\xbf\xe6\x62\x7b\x9f\x15\x8b\x7d\xd5\x5a\ \x08\xc4\x2a\x18\x8c\x05\x4d\x87\x8a\xc8\xea\x04\xc9\x77\x12\x9e\ \x4b\x67\xf7\xad\x7e\xa3\x27\xb4\x81\xf9\x8e\x6b\x12\x59\x14\xf5\ \x20\x49\xd9\x76\xad\x61\xf9\x2b\x6b\xa2\x3a\xac\xe4\x9d\xf7\xcd\ \x37\xfc\x40\xa4\x95\x90\x6e\xad\xde\xb1\xe3\x79\x23\x6d\x69\xc7\ \xc5\x3b\x1f\x53\x62\x9e\x9c\xf1\x07\x5f\x9a\x96\x73\xb8\x01\x57\ \x77\x2e\x72\x4e\xe0\x62\x8c\x12\xda\xe7\xff\x00\x4e\xc6\x37\xfe\ \x86\xe0\xfd\x8d\x01\x83\x23\x15\x60\x41\x1c\x83\x52\x71\x4a\x87\ \x65\x45\xd4\xdc\x0a\xcf\x9a\x76\xba\x93\x0a\x48\x40\x71\xff\x00\ \xd5\x4f\x57\x9c\xed\x0a\x1d\xcf\x34\x95\xc4\xde\x92\x7a\x51\xf3\ \xdc\xd7\x44\x30\xf3\xc5\x11\xd2\x8b\xab\x1c\x81\x54\x33\x5b\xbf\ \xf8\x88\x50\x9e\x0d\x67\xe4\xe6\x88\x92\x63\xda\xfe\xe5\x34\xd0\ \x7d\x43\xae\xf1\xbe\xb5\xf1\x57\x8e\x65\x62\x41\xf6\x91\xd8\xd2\ \x2a\x5e\x1f\x7c\x4c\x4a\x78\xf1\x4c\x45\x2c\x77\x03\x0d\xed\x6f\ \x35\xad\xd8\x2d\x78\x8d\xfe\x2c\x5c\x8e\x7e\x6b\xad\xae\x16\x54\ \xd2\xdb\x37\x71\x52\x1d\xe2\x3a\x64\x19\x07\x83\x4a\xde\xa0\x8d\ \xc4\x91\x9f\xaa\xac\xfd\x0a\xdf\xa0\x54\x75\xf0\x72\x29\x69\xdb\ \x6c\xf7\xa2\xdd\x39\x7c\x67\xb9\x19\xa0\xbf\xba\x4c\x76\x1b\x9a\ \x82\x60\x4d\x52\x47\x19\xe1\x7d\xed\xf6\xab\x4d\x2f\xa9\x2b\xca\ \x76\xd4\x76\x15\xc8\x74\xdb\x96\xe1\xa6\x3f\xd9\x68\x5f\x51\xf8\ \xa9\x04\x8f\x73\x64\xf0\x29\xab\x0b\x57\xb9\x90\x6d\x84\x1d\xea\ \x96\x56\xed\x71\x28\x55\x04\x28\xe4\xd3\xbd\x42\xe5\x2d\xe1\x16\ \xd6\xfc\xfe\x63\x53\x2b\x7a\x9d\x8c\xc6\x80\x86\xfe\x63\x64\xd4\ \xec\xa3\x15\x53\x29\x66\x21\x01\x63\xf1\x52\x90\x3b\x90\x65\x27\ \x1f\xd2\x0f\x3f\xad\x76\xf2\x98\xf6\x22\x22\x25\x98\x20\xdf\x7d\ \xf1\x5b\x22\x68\xed\xe1\x09\x8d\xf1\xf4\x8a\x42\x2d\x31\x02\xb1\ \x28\x51\xe1\x7f\xe6\xa5\x62\x67\x7d\xff\x00\xb0\xae\x19\xe5\x72\ \xab\x13\x23\xb4\xf2\x6a\x24\xf8\xa1\x5d\x48\x10\x7a\x69\xc9\xe6\ \x8d\x78\xc2\xdd\x74\x29\x05\xcf\x6f\xe9\xa4\xcf\xb4\x12\x77\x26\ \x98\x63\xb2\xa0\x0c\x6c\x37\x26\x9e\x44\x16\xd6\xf8\xff\x00\xdc\ \x7e\x7e\x2a\x3a\x64\x01\x54\xdc\xcb\xc0\xfa\x73\x55\x91\xfd\x49\ \x4b\x53\x2c\xbc\xae\xa0\x90\x36\xde\x83\x71\x16\xa1\x90\x37\x14\ \x65\xae\x62\x01\xc1\xa2\x14\x53\xa9\x74\xb1\xc1\x1c\x53\x3d\x2a\ \xe4\xdb\xcc\x63\x73\x88\xdf\x63\xf1\x43\xb8\x8b\x57\xb9\x79\x14\ \x0c\xe7\x63\xc8\xa6\xb6\x18\xea\x11\xfa\x57\x59\x1b\x82\x72\x0f\ \x9a\xf4\x76\x72\xa4\xb1\x44\xe3\xe8\xf4\xc6\x3e\x3c\xd7\x9d\x8d\ \xfd\x7b\x7f\x49\xcf\xbd\x07\xb4\x9e\xe3\xc5\x3d\xfc\x3b\x71\x84\ \x30\x31\x39\x53\x95\xfb\x77\xa9\x79\x8a\xd0\xb0\x88\xf5\x0e\xa7\ \xea\x6f\xa1\x5b\x08\x3c\x0f\x35\xe8\x2f\x15\x61\xb4\x58\xa3\x18\ \x07\x6a\xc9\xfe\x17\x2b\x14\x97\x08\x4e\x19\x4e\x40\xf2\x0d\x6c\ \x48\x16\xe6\x15\xd2\xf8\x22\xb9\xe5\xda\xb0\xaf\x89\x69\x88\xe0\ \x0d\x85\x65\xbd\x9b\xb3\x93\xa8\x57\xa6\xba\xb7\x82\x35\xd7\x70\ \xe8\xa0\x56\x55\xef\x57\xb3\x84\x14\xb5\x84\x48\xc3\xf3\x37\x15\ \xd3\x1b\x7d\x25\x20\xb6\x57\x24\x7b\x5c\xfe\x99\xa1\xcf\x15\xd4\ \x1f\x51\x6a\xb4\x97\xb7\xf7\x5c\x48\x51\x3e\x3d\xa2\xac\xa9\x70\ \xd0\xe2\x59\x88\x4f\xea\x6d\x87\xef\xcd\x6b\xae\xc0\x6d\x6e\x24\ \x49\x41\xd6\x70\x4d\x6a\x5d\xdc\x0d\x3e\xa3\x9d\xca\x8c\x9a\xc9\ \x2b\x00\x7c\x25\xca\x16\xed\x9c\xe0\xfe\xb8\xa1\xde\xdc\x4a\xcf\ \xa1\x86\x9c\x72\x29\x64\xb5\x13\x2c\xd9\x99\xa6\x3c\x9d\x80\xa5\ \xc0\x69\x1f\x61\x92\x6b\x91\x4b\xb6\x33\xfa\xd3\xd6\x6b\x1a\x0c\ \x0c\x13\xe6\xb4\x16\xfc\x14\xf8\xc8\x23\x8a\x0a\xfb\xbd\xa7\xea\ \x1f\xbd\x6d\x0d\xd6\xb3\xfa\x9c\x1a\x64\xf5\x54\x60\x37\x38\xec\ \x6a\xd9\xa0\xbc\x52\x14\x3e\x47\x71\x52\xe5\x35\x6a\x4c\xa9\xa1\ \x33\x31\x23\xda\x09\xff\x00\x5a\xbc\x70\xcd\x21\xf6\xae\x91\xe4\ \xd4\xd6\x83\x96\xd3\x89\x07\xa7\x20\xcd\x06\xe8\xe2\x3d\x3f\xe6\ \xa0\xdb\x6b\x8e\xf0\x23\xf3\x44\xbd\x61\xab\x63\xc6\x4d\x27\x14\ \x2f\x21\xf7\x6f\xd8\x55\x61\x5d\x6e\x01\xfc\xdb\xb1\xf0\x2a\x1c\ \x82\xd8\xf2\x72\x6a\xed\xec\x88\x8f\xcd\x26\xe7\xe0\x76\x15\x28\ \x89\x9b\x5c\x9b\x6c\xa3\x65\x1e\x05\x5e\xda\x17\x9a\x41\x1a\x0f\ \xbd\x52\x18\xd9\xdc\x2a\x8c\x93\x5a\x2e\xc9\x61\x6f\xa5\x77\x95\ \xbf\x6a\x96\xe8\x4d\xd4\xc9\x65\x07\xe1\xe1\x23\xd4\x23\xdc\x7c\ \x56\x69\x6c\x1c\xb1\xc9\x27\xfb\xd4\x3b\x9c\xeb\x73\x96\x35\x54\ \x0c\x5b\xd4\x6d\xb0\x72\x2b\x58\x60\x1b\x8a\x10\x83\x03\x6a\xb8\ \x45\xce\xfb\xfd\xe8\x2b\x70\x73\x82\x06\x0d\x31\x19\x57\x5d\x42\ \xb9\xd9\xa5\x12\xde\x03\x23\xe9\x50\x07\xfb\x54\xde\xdd\x43\x6d\ \x98\x20\x21\xe6\xc6\xed\xd9\x6a\xf3\x49\xe8\x74\xa9\x25\x41\xee\ \xc7\x35\x93\x6e\xa0\x46\x0f\x2c\x77\x27\xcd\x31\xc7\xca\x8b\xe3\ \x72\xcc\x72\xc7\x92\x68\xb6\x56\xe6\xe6\x7f\xf2\xaf\x35\x48\x91\ \xa6\x94\x46\x9c\x9a\xd5\x40\x96\xb6\xba\x57\xb0\xdc\xf9\xad\x7c\ \x99\x6a\x6a\x12\x16\xea\x72\x84\x41\x12\xed\x8a\x52\x32\x58\xe9\ \x15\x4b\xa9\x0c\xb3\x12\x3c\xd3\x08\x12\xd6\x0d\x6f\x82\xed\xc0\ \xac\x4e\x20\xb4\x8c\xb0\x45\x96\xdd\x8f\x02\x92\x77\x67\x6d\x44\ \x9d\xeb\xa5\x76\x96\x42\xef\xdf\x81\x4e\x74\x9b\x07\xb9\x94\x0c\ \x1c\x7f\xa5\x6e\x4d\x4d\xd4\x29\x1c\xac\xbf\x22\xaf\x22\xac\x8b\ \xad\x4e\xe2\xbd\x15\xe7\x40\xb6\xf4\xc0\x0f\xa1\xf1\xde\xb1\xfa\ \x87\x4b\xba\xb3\x3a\xd4\x6b\x4f\xea\x5d\xf1\x52\x65\x2a\xe8\x82\ \xb1\x0d\x91\xb3\x0a\x3c\x73\x14\x99\x6e\x13\xea\x07\xdc\x3c\xd0\ \x8e\x97\x19\xe1\xaa\xa0\x90\x6a\xa3\xd3\x59\xce\x89\x71\x15\xd2\ \x9f\x63\xae\x97\x3f\x07\x8a\x8e\xa1\x7d\x3d\xaa\x95\x46\x20\xe7\ \x15\x8f\xd2\xae\x82\x66\x09\x0f\xf2\xdf\x8f\x8a\xd0\xbd\x43\x35\ \xb1\x07\x77\x41\xcf\xf5\x0f\x35\x27\x7c\xa9\x66\xfc\x6d\xd8\xd6\ \xe5\xb4\x77\x63\xb0\xa2\xda\xda\x2b\x1f\xe5\xae\xb2\x39\x76\xd9\ \x45\x75\x90\xf5\xbf\x0f\x1b\x13\xa7\x24\x11\x9f\x14\x3e\xab\x7a\ \xe5\x8c\x11\x00\x91\xae\xd8\x1b\x52\xdb\xbd\x44\x16\xe2\xe6\xde\ \xdb\x64\xc4\xd2\xff\x00\x51\x1e\xd1\xf6\x15\x97\x7b\x77\x2c\xf2\ \xfb\x9c\xbb\xf8\xec\x28\x32\x39\x76\x2b\x19\xfb\xb5\x58\x28\x88\ \x61\x46\x5c\xd5\x93\x43\x95\x7d\xc0\x13\x96\xe4\xfc\x53\xb7\x31\ \x34\x97\x0a\x80\x7b\xb4\x0c\xe7\xed\x43\xb0\x84\x34\xc1\x58\xed\ \xf5\x39\xf8\xa7\x6c\x07\xab\x77\x2c\xc7\x81\xb0\xa6\xf4\x12\x36\ \xd3\x01\xc6\x2b\xad\xd9\x96\x60\x3e\x77\xad\x2b\xc9\x16\x38\xce\ \x69\x0b\x24\x32\x4a\x5f\x1b\x03\x5b\xef\x1d\x8d\x18\xcf\xb2\xb9\ \xb7\x1b\xd4\x20\xda\xa6\xad\xe6\x0a\x2c\x51\xaf\x0a\x07\xe9\x5c\ \xc3\x02\xaf\x43\x9d\xc2\xa1\xfb\x57\x3a\x33\xc6\xfd\x41\xdb\xfa\ \x45\x2f\x70\xf9\x63\xe2\xaf\xac\xe8\x79\x4f\x32\x1f\xda\x97\x39\ \x63\x5a\x82\xd1\x0c\x9d\x4d\xc0\xdc\xff\x00\xb0\xa9\xf7\x3c\x99\ \xc6\x49\x3c\x57\x1e\x02\x0f\xd7\xef\x4f\xda\xc4\x96\xd0\xfe\x22\ \x5e\x71\xed\x15\x9b\x74\x2d\x10\x8e\xc6\x0d\x6f\xbc\xac\x36\x1e\ \x2b\x3e\x79\x4b\x39\x77\x39\x24\xd5\xae\x25\x79\xa5\xce\x0b\x33\ \x6c\x00\xa3\x7a\x31\xda\x47\xea\x5c\x10\xd3\x1e\x13\xfa\x69\x8c\ \xd7\x37\xb5\x02\x38\xf4\xff\x00\x36\x5e\x7b\x29\xaa\x3b\x7a\x8d\ \xe9\xaf\x27\x93\x56\x29\x24\xc4\xbc\x87\x48\xf1\x44\x8b\xd2\x8d\ \x72\xa7\x71\x5b\xb9\x6b\xa4\x04\x0c\xed\xc1\xa2\xdb\x4a\x63\x7c\ \x37\x07\x9a\xe9\xe3\x1f\x52\xd0\xb3\x9e\x6a\x0d\x58\xf4\xcd\x6a\ \xf0\xe4\x15\x71\xb1\xac\xb8\x83\x21\x68\x5f\x66\x43\x83\x46\xb2\ \x9c\xc3\x20\x0c\x7d\x87\x9f\x8a\xbf\x59\x8c\x65\x2f\x23\xdf\xb3\ \xe3\xb8\xac\x4e\x2a\x8b\xd2\x18\x28\x7d\x86\xa1\x51\xd4\xee\x4f\ \xd1\xe6\x81\x69\x22\xa4\xc1\xb3\xed\x61\x83\x42\xea\x39\x17\x43\ \x3c\x1e\x2a\x59\xf6\x3d\x09\x0b\x24\x09\xea\x38\xcb\xfe\x51\x42\ \x95\xde\x46\xf5\x1f\xbf\x02\xab\x18\xd6\xc5\xdb\x7c\x53\x16\x50\ \x34\xd2\x06\x23\xdb\xd8\x79\xad\xc9\x27\x35\x16\xe9\xf6\xaf\x3c\ \xca\x31\x9c\x9d\x85\x7b\x1e\x93\x69\x1d\x9d\xa9\x91\x80\xc8\xfd\ \xe8\x3f\xc3\xfd\x35\x63\x8c\x48\xe3\x0d\x8c\x9f\x81\x51\xd6\xaf\ \x32\xde\x8c\x7b\x01\x5c\xb2\xb7\x3b\xa8\xa5\x3a\x8d\xc3\x4f\x70\ \x4e\x76\x15\xd1\x25\xcc\x6b\x94\x39\x07\x90\x7b\xd0\x6d\xd7\x54\ \xc0\x7c\xd6\x90\xc6\x77\xe2\xb5\x95\xd4\xd1\x18\xfd\x46\xc6\x2b\ \x8c\x90\x82\x09\x7c\x8f\xa5\xbf\xe2\xb1\xae\x23\x78\xa4\x29\x28\ \xc3\x0f\xde\xbd\xa4\x90\x47\x2c\x64\x66\xb3\x7a\x8f\x4f\x0e\x9a\ \x5d\x75\x01\xc1\x1c\x8a\x98\xe7\x3a\x34\xf3\x35\xa9\xd2\xee\xcb\ \xc6\x23\x63\xfc\xc4\xce\x9c\xfe\x61\xe2\x93\xbe\xb5\x7b\x77\xfe\ \xa5\xec\xd4\x05\x25\x58\x30\x38\x20\xe4\x1a\xd2\x36\x58\x34\x32\ \x89\x23\x3b\x67\x50\xf8\x3d\xc5\x21\xd6\x50\xac\x8e\xc9\xc3\x8c\ \x83\x4d\xd8\x5c\xac\xe9\xa1\xfe\xbe\xff\x00\xf3\x53\x73\x09\x78\ \x4c\x7d\xc6\xe9\xff\x00\x14\xdf\x2a\xc9\x85\xd5\x2d\xf5\x01\xbf\ \x14\x58\x13\x4a\x7a\xae\x72\x5b\x7a\x01\x4d\x2c\xf1\xf6\xe4\x53\ \x76\x84\x39\x84\x73\xbd\x69\x0c\x7f\x81\x66\x7f\xf9\x24\xdc\xfd\ \xbb\x0a\x3d\xb3\x08\x2d\x37\x3c\x72\x7e\x69\x77\x26\x5b\xa2\x49\ \xce\x9d\xfe\xf5\x17\xcc\x70\xb0\xae\xe4\x6e\x69\x20\xa4\xf2\xb5\ \xc4\x81\x57\x38\xa7\xad\xa3\x11\xc6\x16\x85\x65\x6f\xa0\x6a\x3c\ \xd3\x20\x56\xad\x13\x5d\xda\xa2\x56\x08\x3d\xc7\x7f\x14\x9d\xcd\ \xc1\xf3\x8f\x8a\xce\xed\x06\x9e\xe5\x23\x07\x1b\x9a\x46\x59\x9d\ \xd1\xf3\xcb\x6c\x28\x6c\xc5\x8d\x70\xd8\x67\xfa\x77\xa6\x80\xee\ \x9b\xdf\xa5\x78\x1b\x0a\xa2\x8d\x2b\xf2\x6a\x57\x76\x2c\x69\xbb\ \x28\x06\x9f\x5e\x73\x85\x1b\x80\x7b\xd2\xdd\x09\xb2\x81\x63\x8f\ \xd7\x9b\x60\x38\x06\x85\x3c\xb2\xdd\x4e\x15\x14\xb1\xe1\x54\x51\ \x24\x69\x2f\x26\xd2\x83\x08\xbf\xd8\x0f\x26\xba\x59\x23\xb7\x43\ \x14\x07\x73\xf5\x3f\x73\xf6\xf8\xac\xce\xf7\x7b\x55\xa2\xf4\xed\ \x01\xd3\x87\xb8\xee\xdf\x95\x3e\xd4\xb4\x92\x7b\xcb\x6e\xce\x79\ \x63\x54\xcb\x3e\xc0\x6d\xe0\x55\x91\x54\x1d\xfd\xc7\xe3\xb5\x6b\ \x48\xab\x33\x31\xdc\xe6\xbb\x43\x63\xe9\x34\x50\xf8\xd8\x05\x1f\ \x6a\xba\x48\x78\x6c\x11\xf6\xaa\x07\x1b\x8e\xdf\xda\xa6\x48\xc3\ \x2e\xa4\xa3\xf5\x1b\x07\x85\x8d\xc5\xb0\xd7\x0b\x6e\x31\xda\x94\ \x8e\x42\x0e\x57\x63\xdc\x56\x65\x97\xa1\x53\x90\x70\x68\xd6\xb3\ \x85\x1e\x9c\x9b\xa1\xdb\x7e\xd5\x0c\x16\x45\xca\xec\xd4\x22\x08\ \x38\x35\x7b\x13\x24\x46\x09\x8c\x64\xe5\x1b\x74\x35\x37\xd9\x96\ \xcb\x5f\xe7\x8f\x9a\xba\xb0\x96\x1f\x45\xf9\x07\x28\x7c\x1a\x1a\ \x92\xac\xc1\xc6\xc7\xda\xe2\x94\x0a\xd5\xb5\x44\xd5\xe9\x7f\x84\ \xa1\x49\x88\x2e\x33\xa4\x0c\x57\x97\x40\x61\xba\x68\xb9\x07\x71\ \xf6\xaf\x5d\xfc\x24\x9f\x85\xe9\xad\x77\x21\xe7\x65\x1e\x6b\x39\ \xdf\xaf\x0b\x1b\x1d\x56\xe9\x6d\x6d\xfd\x24\x3e\xe2\x37\xc5\x60\ \x3b\x16\x62\xc4\xe4\x9a\x25\xdc\xcd\x3c\xc6\x46\x3c\xd0\xa9\x86\ \x3e\x31\x0c\x59\x15\x46\xd4\xc7\x6a\x65\x67\x47\xe0\x71\x59\xd4\ \x6b\x45\x25\xb2\x78\x14\xca\x7b\x58\x6e\x49\x04\x60\xb9\x6c\x0a\ \x98\xee\xa2\x71\x82\xe0\xfc\x83\x59\x97\xf3\x09\x64\xd2\xbf\x4a\ \xfe\xf4\xac\xb9\x8c\x65\x99\x57\xee\x71\x58\xf0\xd9\xb6\xb5\xec\ \x11\xc9\x19\xd4\xa3\x07\xbf\x63\xf7\xac\x0e\xa3\x62\xf0\x31\x65\ \x04\xa7\xfa\x53\x76\xb7\xce\x98\xc3\x87\x5e\xe3\x39\x06\x9d\x47\ \x8a\xe1\x3f\x97\x8c\x9e\x63\x27\xfd\x29\x37\x89\xdb\xce\x23\x32\ \x30\x65\x38\x22\xb5\x6c\xae\x44\xe3\x49\x38\x61\xbf\xeb\x42\xea\ \x36\x38\x26\x48\x41\xdb\xea\x52\x37\x14\x84\x6c\xd1\xb8\x65\x38\ \x22\xb7\xdc\x43\x3d\x5e\xd8\x86\xf5\x90\x6e\x39\x14\x0b\x46\xc1\ \xc0\xdb\xf3\x2f\xdf\xc5\x69\xdb\x4c\x97\x56\xe5\x4e\x35\x63\x04\ \x56\x55\xcc\x6f\x6f\x30\xc7\x19\xca\xd2\x5f\x41\xe8\xce\x2e\x01\ \x1f\x9c\x66\x89\x68\xba\xa6\x91\x98\x64\xea\xa5\xa0\x7d\x51\x82\ \xbc\xae\xe3\xfd\xc5\x33\x03\xe9\x9b\x23\x89\x06\x7f\x5a\xd4\x0d\ \x8d\x85\x0e\x59\x82\xec\xa7\xf5\xa1\xdc\x4c\x73\xa7\xf6\x14\xa4\ \xd2\x1c\xe0\xff\x00\x6a\x02\x4d\x2f\x3b\xef\x4b\x92\xcc\x7c\xe6\ \xa4\x29\x66\xdf\x7a\xd3\xe9\xf6\x62\x35\xf5\xa6\x1f\x20\x1a\x99\ \x65\x20\x5e\xd6\xd4\x24\x66\x69\x86\x30\x32\x05\x27\x78\xc0\xb3\ \xb2\xf0\xdb\xd3\x7d\x56\xe8\xcb\x21\x44\xfa\x45\x24\x41\x2b\xc6\ \x45\x4c\x65\xee\xaa\xf6\x56\xfa\x86\xb9\x3f\xc3\x5d\xcf\xcd\x5a\ \xe6\x5f\x59\xf1\x9d\x31\xaf\x00\x50\xb5\xcb\xe9\x08\xf2\x0a\x8e\ \x2a\x84\x7f\x51\xfe\xd4\xf1\xbb\x41\x1e\x7c\x27\xa7\x16\x42\xff\ \x00\xad\x0f\x4e\x0e\x5c\xd5\x24\x95\x23\x5c\xf1\xfe\xb4\xbf\xe2\ \x4c\x87\xda\x8e\x40\xec\xa2\xb5\x31\xd0\x68\x39\x63\xa5\x14\xb7\ \xc0\xa2\xc5\x6b\x33\x9c\xbe\x54\x78\x1c\xd2\xa8\xfd\x43\x4e\x22\ \x68\xe0\x1e\x02\xea\x3f\xde\xb8\x5b\x5c\x3b\x89\x1e\xf2\x76\x90\ \x70\x43\x60\x7f\x6e\x29\xaa\x34\xe2\xe9\x4b\x32\x1f\x4e\x72\x1c\ \x76\x6a\x5a\x7b\x7b\x9b\x56\xc4\xd1\x9d\x3f\xd4\x38\xa8\x49\x7a\ \x94\x64\x1d\x69\x26\x3b\xb2\xe1\x8f\xea\x2b\x42\xcf\xad\x44\xea\ \x20\xbd\x89\x97\x56\xd9\x61\xb5\x63\xef\x14\xad\x8d\xfc\xf6\x5f\ \xcb\xd3\xea\x41\xfd\x3c\x91\x45\xbe\xb6\x8e\xe9\x3f\x15\x62\x41\ \xfe\xa4\x1c\x8a\x50\xe2\xa2\x32\xf1\x4b\xea\xc0\xfa\x1c\x7f\x63\ \xfa\x56\xee\x1c\xee\x22\x88\xc4\x36\x0e\x43\x0e\x68\x8e\x04\x83\ \xc1\xa3\xbc\x90\x5e\x26\x2e\x53\xd1\x9c\x70\xeb\xc3\x52\xae\x1a\ \x29\x74\x39\x07\xc1\x1d\xe8\x2a\x41\x07\x07\x63\x56\x95\xb5\x44\ \x18\x8f\x76\x71\x9f\x22\xa2\x53\x9c\x79\xa0\xfb\xe7\x99\x61\x87\ \x76\x63\x8a\xa0\xfd\x1a\xcd\xef\xfa\x88\x03\xe8\x5d\x8b\x1e\x00\ \x15\xe9\x2e\xe6\x56\x45\x82\x21\xa6\x28\xc6\x00\xf3\xf3\x4b\x58\ \xc2\x96\x56\x42\xde\x3f\xa8\x8f\xe6\x37\x9f\x8a\xba\x2b\x33\x00\ \xa0\x93\x59\xd7\xb1\x00\x12\x70\x06\x4d\x39\x6d\x66\xe5\x75\x11\ \xfd\xe8\xd6\x96\xe9\x02\x7a\x92\xee\xde\x2a\xb7\x17\x6c\x4e\x10\ \xaa\x81\x58\xb9\xdb\xc4\x5d\x14\xba\x8f\xd3\x9b\x4e\x6a\x92\xb1\ \x29\xe9\x26\x40\xee\x68\xf2\x24\xb3\x39\x25\x46\xc3\x76\xec\x2b\ \x2b\xac\xf5\x48\x6d\x50\xc3\x6a\xe2\x49\x8f\xd5\x20\xe1\x7e\xd5\ \x7b\x9a\x13\xd4\xae\x61\xb2\x8f\x4e\x43\x4c\x46\xc8\x3b\x7c\x9a\ \xc8\x09\x25\xd3\x99\xa7\x62\x4b\x1a\x8b\x68\x9a\x56\xf5\xa5\x24\ \xe4\xe7\x7e\x5a\x9f\x86\x3c\x8c\x9d\x80\xad\xc9\xa4\x29\xf8\x52\ \x87\x54\x65\x90\xf9\x14\x48\xee\x6e\x21\x20\xba\xea\xff\x00\x32\ \x9c\x1a\xbd\xe4\xe1\x13\x3f\xd8\x79\xa0\xb4\x97\x18\x19\x80\xe0\ \xf9\x34\x1a\x96\xb7\xb1\xce\x06\xa6\xf7\x70\x1b\xfe\x68\x77\xf6\ \xa2\x4f\x7a\x00\xaf\xf1\xc3\x7d\xab\x37\x28\x5b\x20\xb4\x4f\x4c\ \x5b\xde\x3c\x5e\xd9\xb0\xcb\xe4\x56\x75\xf8\x02\x46\x78\x64\xc8\ \xc8\x61\xcd\x3c\x4c\x77\xb6\xc4\x70\xe2\xa2\x78\x92\xe6\x3d\x68\ \xc0\x9f\x23\x9f\xd6\x92\x05\xe1\x97\x6d\x98\x53\xb1\xd0\x3b\x43\ \x31\x46\xe7\x34\xe4\x47\xdb\xa0\x7d\xd4\xd0\xae\x51\x6e\xe1\xf5\ \x13\x69\x17\x91\xe6\x87\x6b\x21\x65\xd3\x9c\x32\x9d\xaa\xc0\x66\ \x90\x97\x62\x76\x20\x55\x23\x1a\x8f\xcf\xee\x68\xd2\x28\x65\xf5\ \x17\xb8\xc3\x0a\xa5\x89\x1f\x89\x4c\xf1\xa8\x66\xb4\x35\x3a\x65\ \x90\x8d\x04\xf3\x8f\xfa\x54\xd0\xba\xc5\xe6\x47\xa6\xa6\x99\xeb\ \x17\x26\x35\x2a\x2b\x09\xd8\xb3\x12\x7b\xd7\x2c\x66\xfe\xd5\x5c\ \x37\x34\x54\x5c\x2e\x0d\x44\x4b\xdc\xd4\xc8\x74\xae\x6b\xb4\x88\ \x0c\x8b\xb9\x00\xe2\xba\x34\x57\x3a\x58\xe1\xbb\x67\xbd\x4b\x12\ \x4e\x4d\x4c\x41\x58\xe1\x94\x1a\xd5\x82\x45\x8b\x31\xe1\x4f\xdc\ \xd1\x97\xa7\xc8\x17\xf2\x8f\xd4\x54\xc3\x10\x27\x09\x23\x29\xf0\ \x77\xa3\x24\x13\x9e\x4e\xc3\xbd\x62\xec\x0d\x6d\x11\x37\x92\x40\ \x7e\x05\x4b\x98\xd1\x72\xab\xa4\x79\xef\x5d\x70\x56\x2f\xa9\xb5\ \x1f\x8a\x52\x47\x67\x39\x35\x66\x3f\x91\x69\x25\x66\x3b\x6c\x2a\ \x8c\x75\x2e\x96\x01\x87\x83\x57\xb6\x89\xa5\x7c\x0e\x3b\x9a\xb5\ \xcb\xa8\x6d\x11\x81\x85\xf8\xe6\xad\xb3\xa1\x47\x65\x27\x65\x15\ \x42\x01\xf8\xae\xae\xa0\xa4\x84\xae\xd9\xd8\xd5\x5d\xb5\x15\x07\ \xb5\x75\xc3\x70\x3b\xd5\x19\x82\x82\x7b\xd4\xa2\x27\x62\x4e\x95\ \x19\x2c\x70\x00\xef\x5b\x1d\x22\xcc\x5a\xc5\xad\xc0\x32\xb7\x27\ \xc7\xc5\x03\xa2\xd9\x85\x02\xe6\x61\xef\x3f\x40\x3f\x96\xb5\x11\ \x0b\x1f\x8e\xe6\xb3\x47\x46\x85\xdb\x03\xfb\xd3\x70\x98\xe0\x5c\ \x82\xab\xe5\xdc\xe0\x56\x67\x52\xea\x90\x59\xa9\x8e\x3c\x49\x20\ \xfc\xa0\xff\x00\xa9\xac\x5b\xbb\x9b\xcb\xd7\xd5\x34\x87\x1d\x87\ \x61\x59\xd5\xc9\x5e\x9e\x4e\xab\xd3\x52\x5c\x48\xe6\x66\x1d\xfb\ \x0a\x15\xe7\xf1\x0d\x8c\x03\xf9\x10\x29\x3c\xf1\x5e\x55\xe1\x90\ \x6e\x0e\xf5\x06\x30\x83\x54\xad\x92\x78\x1e\x6a\x78\x43\x67\xfa\ \xaf\x5b\xbe\xbf\x52\x9a\xbd\x38\x87\x61\xb5\x2b\x67\x6d\xac\x7a\ \x92\x6c\x9d\x87\x76\xa2\xda\xdb\xe5\x44\x93\x8c\x2f\xe5\x4f\x3f\ \x7a\x6e\x24\x2c\x78\xda\xb7\x24\x9d\x22\x21\x8f\x51\xce\x36\x15\ \x6b\x87\x00\x15\x1b\x79\x34\x49\x59\x63\x4c\x01\xbd\x67\xdd\x33\ \xcb\x2f\xe1\xa3\xdd\xdf\x9f\x8a\x09\xb5\x1e\xbc\xcd\x3b\x0f\xe5\ \xc7\xb2\x8f\x26\x9c\xd0\xa0\x8d\x7e\xe7\x6e\x73\xda\xa2\x14\x48\ \xd4\x22\x8f\xe5\xc5\xff\x00\xf4\x6a\xb9\x26\x4c\x9e\x49\xab\x20\ \x39\xb4\x47\x18\xc7\x3d\xa8\x17\x1d\x36\x45\x24\xc4\x4f\xfd\x27\ \x8a\xdb\xe9\x89\x11\xb8\x60\xec\x03\x01\xed\x07\x6c\xed\x5d\x73\ \xac\x48\xc0\x8c\x6f\xc5\x67\x7c\x8f\x36\xa6\x7b\x57\xc8\x0d\x1f\ \xc7\x63\x4d\x2c\x90\xdd\xa6\x92\x34\xc8\x29\xfb\xa1\x1b\xae\x99\ \x50\x10\x7e\x2b\x3a\xe2\xc1\x87\xf3\x2d\xdf\x20\x6f\x8c\xee\x2a\ \x76\x02\x0c\x96\xf3\x7c\x8f\xde\xa6\xe5\x41\x1f\x89\x8b\x91\xf5\ \x28\xae\x49\x84\xa3\xd3\x9b\xda\xe3\x60\x4d\x40\xd7\x0c\x9b\xf0\ \x7f\xb1\x14\x07\xb5\x94\x11\xa8\x6e\xad\xb1\x15\x07\xd9\x36\xde\ \x76\xa5\xc9\x11\x49\xa9\x77\x8d\xb9\xf8\xa3\x1f\x72\xe7\x92\x3f\ \x7a\xd4\x1a\x3d\x64\xeb\xb6\x8a\x50\x7e\xa0\x2b\x3e\x25\x2e\xe1\ \x40\xf8\xa7\x6c\x5b\xf1\x16\x12\x5b\xb6\xe5\x3d\xcb\x4a\x5b\x9d\ \x17\x0b\x9d\xb0\x77\xa9\x8f\x1c\x02\xb2\xe1\xf4\x8e\xd4\x09\xf3\ \xea\x63\xb0\xad\x19\x21\x02\x53\xdb\xe6\x95\xba\x8f\x9c\x60\x91\ \xde\xb7\x8e\x41\x77\x18\x18\xfd\xe8\x91\x00\x13\x23\xbd\x0c\x1d\ \xb0\xd5\x2a\x4a\x6f\xc8\x35\xa0\xcd\xbc\x82\x32\x49\x07\x35\x17\ \x17\x4c\x46\x01\xc0\xa5\xda\x42\x78\xda\xa8\x77\xa9\xe3\xee\x89\ \x62\x49\xc9\xa9\x89\x0b\xb6\x05\x54\x0c\x9c\x0a\x7e\xda\x2f\x4e\ \x20\x74\xee\x79\xa6\x57\x42\xcc\x9e\x8c\x1a\x17\x96\x1b\xfd\xa9\ \x67\x8d\x47\xb9\xce\x05\x1a\xf2\xe1\x73\xb9\x05\xbc\x0a\x4e\x47\ \x67\x39\x63\x58\xc6\x5f\x62\xb5\x0c\x40\x52\x4f\x6a\x93\x4b\xdc\ \x3e\x5b\x48\x3b\x0e\x6b\x62\xac\xd9\x62\xed\x4e\x74\x8b\x43\x33\ \x89\xe6\x5f\x60\xfa\x41\xef\x42\xe9\xd6\xad\x73\x28\x67\x18\x8d\ \x7f\x7a\xd8\x9a\x48\xad\xa0\xd4\xc4\x05\x5e\x05\x62\xd0\x52\x55\ \x14\xb3\x90\xaa\x39\x26\xb2\xba\x8f\x53\x79\xb3\x0d\xa6\x55\x38\ \x2f\xdc\xd2\xbd\x42\xed\xee\x5b\xde\x4a\xc6\x3e\x94\x1d\xea\x90\ \xc5\x3c\xab\xed\x5d\x0b\xe4\xf3\x4d\x6c\x42\xac\x71\xee\xcc\x33\ \xe4\x9a\xba\x49\x1b\x26\xa5\x60\x40\xa2\x27\x4f\x8f\x19\x63\x96\ \xf9\x19\xa8\xff\x00\xc2\xd6\x49\x32\x06\x4f\x7d\x35\x78\x00\x33\ \x6b\x6d\x10\xa9\x76\xf8\xe0\x53\x16\xd6\x82\x3c\x4d\x39\xd5\x21\ \xdc\x2f\x8a\x69\x23\x86\xd1\x02\x46\xa0\xbe\x3c\x6c\x2a\x8a\x0b\ \x3e\x49\x24\x9a\x41\x31\x82\xef\x93\xbd\x1f\x64\x04\xd4\xa2\x04\ \x5f\x9a\x0c\xec\x59\x82\x2f\x7a\x80\x37\x72\x84\x8d\xa6\x3e\x70\ \x83\xc9\xaa\xf4\x94\x31\xdb\xbd\xe3\xee\xf2\xe5\x63\x3f\xea\x69\ \x6b\xd7\x37\x17\x6b\x04\x5b\x84\x3a\x57\xe4\xf7\x35\xab\x22\x2a\ \xcd\x1d\xba\xfd\x10\x2e\xf5\x28\x1b\x82\xaa\xb0\x8e\x79\x3f\x7a\ \xa3\x02\xa7\x06\x9d\xe9\x90\x8b\x8b\xb6\x91\xfe\x91\x4e\xc9\x05\ \x99\x04\x12\x7f\x4a\xd6\xf5\xc0\xcd\x8a\xed\xc2\xe9\x93\xdc\xbf\ \xb8\xfb\x53\x6b\x79\x11\x40\x19\xf2\x7b\x1a\x8f\xc0\xc2\xcc\x4a\ \x07\x23\xe4\x80\x29\x9b\x7e\x90\x64\x19\x58\x76\x1d\xc8\xdb\xfb\ \x9a\xcd\xb8\x85\x9a\x48\xa5\xdb\x2a\x7e\xc6\x94\xb8\x89\xe3\xf7\ \x21\x38\xad\x79\x3a\x44\x41\x4e\xb7\x85\x1b\xc0\x6d\xff\x00\x61\ \x4b\x4f\x61\x71\x1a\xe5\x1c\x48\xa3\xb6\x73\x59\x99\x63\xea\xae\ \x99\x13\x08\xe7\xff\x00\x10\x69\x61\xc3\x0a\x0b\x96\x8f\x11\xcb\ \xee\x4e\xcc\x29\xe9\xe1\x52\x7d\xc3\x41\xf9\xe0\xd2\xce\xac\xa3\ \x4b\xae\x54\xf6\x3d\xeb\x7a\x40\x7e\x83\x83\x86\x56\xfd\xea\x62\ \x6f\x4c\x84\x27\x2a\x7e\x93\x5c\xca\x50\x7b\x77\x5e\xea\x7b\x55\ \x36\x23\xe0\xd4\x0e\x5a\xca\x60\xb8\x59\x07\x1d\xc7\xc5\x5f\xa8\ \xc6\x23\x9f\x5a\x7d\x0f\xee\x53\x4a\x42\xe4\xfb\x1b\x91\xc7\xcd\ \x39\x19\xf5\xec\x8c\x47\xeb\x8b\x75\xfb\x53\xde\xc1\xa7\x94\xc9\ \x02\x49\x9e\x46\xff\x00\x7a\x5d\x66\xc6\xcd\x53\x6a\x75\xc0\xf1\ \x77\x1e\xe5\xff\x00\x7a\x0b\x56\xb1\x90\x11\x8c\x6f\xf0\x68\x44\ \x11\xb0\xdc\x57\x63\x35\xda\x1b\xb5\x6a\x5d\x0a\xd7\x54\x95\x61\ \xc8\x35\x15\x76\x2c\x84\x06\xc9\xa2\x49\x73\x23\x2e\x9c\xe0\x7c\ \x50\x70\x7c\x54\x81\x52\x88\xae\xae\x3c\xd7\x50\x06\xe2\x4c\x0c\ \x0e\x6a\x7a\x7d\xab\x5c\x4b\xbe\x74\x0e\x4f\x9a\xeb\x1b\x67\xb9\ \x9b\x27\xe9\xee\x6b\x46\xea\xe2\x2b\x28\x74\x20\x05\xb1\xb0\xac\ \x5a\x09\x71\x34\x36\x70\x0e\x32\x07\xb5\x45\x64\x4b\x2c\xd7\x73\ \xf1\xa8\xf6\x1d\x96\xad\x14\x53\x5e\x4d\xad\x89\xc1\x3c\xff\x00\ \xc5\x6d\xd8\x74\xe8\xe0\x88\x3c\xa9\x81\xd9\x7c\xfd\xeb\x3b\x93\ \xb1\x9d\xd3\xba\x6b\x31\xd6\xd8\x63\xdd\x9b\x81\x5a\x31\xdb\xdb\ \xa0\xf7\x96\x73\xf1\xb0\xa3\xbe\x58\x0c\xfb\x50\x70\x05\x25\x7d\ \x72\x23\x53\x1c\x67\xdc\x79\xf8\xab\xbd\x83\xcd\x25\x94\x7b\x88\ \x00\xf1\x96\x34\xac\xf7\x8f\x20\xd1\x10\x08\xbe\x40\xc5\x2b\xee\ \x90\xea\x62\x71\xe4\xd5\xd4\x16\xf6\xa8\xc0\xab\x31\x10\x06\x5b\ \x03\x24\x9e\xe7\xbd\x35\x0c\x61\x13\x27\x9a\xeb\x78\x70\x32\x7b\ \x55\x98\x83\x96\x3f\x4a\xd2\xd0\x39\x8e\x07\xc9\xdc\xd2\xd2\xbf\ \xa3\x67\x2d\xc1\xe4\x8d\x2b\xf7\xab\xdc\x31\xd3\xf2\xdb\x9a\x0f\ \x5d\xfe\x5f\x4d\x86\x2f\xea\x39\x34\xa2\xbf\xc2\xf0\x97\xea\x3a\ \x88\x07\xd1\x88\xb9\x07\xc9\xa7\xad\xff\x00\xc4\xb8\x27\x9c\x1a\ \x5f\xf8\x55\xd5\x7a\xb3\xc4\xc7\x1e\xb4\x65\x57\xe4\xd1\xe4\x06\ \x3b\x99\xc7\xf9\x6a\x7b\x0e\xf4\xc3\xa3\xa6\x92\x36\x67\x62\x28\ \xb1\xa0\x2f\x8f\x1b\xb1\xf1\x43\xb6\x5f\x4e\xd6\x35\x3d\x97\x3f\ \xa9\xa7\xfa\x7c\x46\x31\xae\x45\xce\x91\xea\x30\x3f\x1c\x0f\xef\ \x8a\x99\x5d\x4d\x91\x63\x2c\x76\x80\x6a\x0b\xac\x0e\x48\xd4\x54\ \xf8\x03\x8d\xbc\xd2\xb3\x5f\xca\xec\x49\x19\xcf\x77\x62\x7f\xed\ \x40\xea\xac\xff\x00\x8c\x31\x17\x00\xa0\xf7\x31\x38\x03\xcd\x2e\ \x90\x7a\x8b\xaa\x39\x63\x93\xec\x6b\x13\x19\xdd\x53\x7f\x8a\x9b\ \x23\x05\x07\xff\x00\x88\xab\xad\xcc\xf9\xd4\x4a\x31\xfb\x0a\xce\ \x6f\x52\x33\xef\x0c\xbf\x3d\xaa\x56\x56\x18\x39\x07\xed\x5a\xf1\ \x88\xd2\x6b\x88\xa5\x04\x5c\x45\x9c\xf7\xc6\x7f\x7a\x5e\x6e\x9e\ \x92\x29\x6b\x79\x01\x1f\xd0\xc6\x80\xb3\xe7\x92\x41\xa8\x37\x0d\ \x13\x64\xe4\x7c\x8a\x4c\x6c\xe9\x4a\x5c\xdb\xc9\x0c\x85\x5d\x08\ \xf8\xa5\xa5\x8f\x03\x5a\x0c\x8e\xe2\xb6\x92\xee\x19\xe3\xf4\xe7\ \x01\x87\xcf\x22\x97\xbb\xb3\x08\xbe\xa5\xbb\x6b\x4e\xe3\xb8\xab\ \xbf\x55\x19\x07\xb1\x1d\xa9\x8b\x69\x4a\xb0\x75\xe4\x73\x55\xb8\ \x87\x48\xd7\x1e\xe3\xb8\xf1\x41\x56\xd2\x75\x0f\xd4\x55\x81\xf9\ \xbf\x95\x70\xb3\x47\xf4\xb6\xe3\xfe\x2b\xae\x95\x75\xeb\x4c\x69\ \x71\x91\xf1\x54\xb7\x71\x24\x7e\x93\x1e\x77\x53\xe0\xd4\x21\x20\ \x18\xdb\xf4\xf8\x35\x67\x63\x93\x9a\x91\xbf\xc5\x45\x41\x24\x1c\ \xd6\xf4\x2e\x37\xd8\xb0\x1f\x7a\xe2\x0e\x3e\xa5\xfe\xf5\x45\xd6\ \xdb\xad\x10\x47\x26\x3f\x2d\x2c\x15\x60\xbe\x73\x55\x24\x62\xba\ \x65\x65\xe4\xe7\x3e\x2a\x94\xd7\x03\xab\x8f\x15\xc4\xe2\x81\x3c\ \x9d\x85\x03\xd7\x37\x11\xda\x43\xe9\x44\x32\xf8\xc5\x2d\x6f\x6e\ \xf2\xbf\xab\x70\x49\xce\xfa\x7c\xd4\xda\xc5\xee\xf5\xa5\xdd\x8f\ \x00\xf6\xa6\xa1\x0d\x24\x81\x40\xe4\xd7\x3d\x87\xba\x64\x68\x08\ \x3a\x46\xdf\xb5\x35\x3b\xeb\x6c\x93\xed\x14\x34\x55\x86\x2d\x3f\ \xdc\xd2\x77\xd7\x78\xf6\xa9\xdf\xc7\x8a\xce\xb7\x55\xdd\x42\xef\ \x03\x42\x73\xfe\x94\x80\x52\x7d\xcd\xff\x00\xdd\x58\x29\xfa\x9f\ \x93\xda\x8b\x14\x4c\xed\xbd\x6e\x4d\x22\xb1\xa1\x73\x8e\x00\xe2\ \x9c\xb6\x83\x7c\x01\xbd\x4c\x10\x92\xc1\x54\x6e\x68\xf7\x85\x6d\ \xe3\x11\x27\xd6\x7e\xa3\xe2\xa5\xcb\x9d\x40\x09\x88\x2c\x22\x8f\ \x7f\x27\xc9\xaa\x5d\x29\x0e\x20\x5d\xf0\x77\xf9\xa6\x7a\x5c\x25\ \xb5\x4d\x8f\xa0\x6d\xf7\xa5\x54\x86\xbd\x1a\xce\x37\xe4\xd3\x7c\ \xe8\x29\x21\xcb\x6a\xed\xaa\x9d\xbd\xb6\xb6\xea\x16\xe9\x99\x82\ \xb2\x8c\x50\x64\xb6\x9a\x27\x3a\xe3\x38\xf2\x57\x20\xd0\xc4\x68\ \x4e\xfe\x9a\xfe\xa4\x55\xbc\x8b\x59\xd8\x47\x65\x74\x97\x53\xdd\ \x07\xf4\xb7\x55\x5e\x49\xa2\x42\xa6\x7b\x86\x66\x18\x0e\x72\xc3\ \xc0\xec\x2a\x88\x90\x29\xcb\x4a\xbf\xfe\x00\x93\xfd\xcd\x3b\x00\ \x52\x8a\x23\x18\x0d\xc5\x40\xdd\x94\x61\xdf\xd5\x93\x1a\x57\x80\ \x78\xa6\xe4\x94\x45\x6a\x92\x9e\x25\x97\x50\xf9\x55\xff\x00\xbe\ \x69\x48\x12\x5b\xbb\x94\xb6\x80\x1d\x24\x85\xdb\xfd\x69\x8f\xe2\ \xcd\x31\x4e\x2d\xe3\xfa\x20\x88\x22\xd7\x2c\xae\xec\x8a\xc4\xba\ \x8e\x4b\xbb\x7b\x97\x19\x2d\x8d\x64\x79\xde\xb2\x21\x91\xe2\x7c\ \xa9\x23\x15\xe8\x7a\x3c\x82\x2b\xec\x30\xca\xb0\x2a\x47\x9a\x5b\ \xf8\x97\xa4\xb4\x0f\xeb\xc2\x09\x8d\xb7\x15\xbf\x29\x2e\xa8\xad\ \x9d\xf8\x75\x0b\x36\x19\x7c\xe2\x8d\x2d\xaa\xba\xeb\xb7\x6f\xd3\ \xb5\x61\xc4\xe5\x1b\xe3\xb8\xa7\xec\x6e\x9e\x22\x19\x0e\x57\xb8\ \xab\x66\xba\x04\x93\x2a\xc5\x5d\x74\xb0\xf3\xde\xa3\x51\xdc\x72\ \x3c\x1a\xd4\x83\xf0\xd7\xf1\x60\x90\x1b\xe7\x8a\x5a\xfb\xa7\x4d\ \x01\xca\x82\x47\x83\x49\x9c\xea\x9a\x20\xeb\x8d\xd7\xff\x00\xaa\ \xbd\xbc\xd2\x44\x75\x23\x64\x0e\x45\x50\x92\xa7\x0c\x0a\x91\xe6\ \xa7\x93\x90\x77\xae\x9d\xf6\x86\x18\xc5\x3f\xbe\x30\x12\x5e\xea\ \x78\x6a\xcf\xbc\xb7\x2a\xc5\x90\x11\x8f\xa9\x7c\x51\x9b\x63\x91\ \xb1\xa2\xac\xa2\x41\xa6\x53\x82\x38\x71\xfe\xf5\x8b\x8e\xba\x19\ \xd0\xbe\x96\xe7\x6a\x69\x8e\xb4\xf5\x07\xd4\x3e\xaf\x9a\x15\xec\ \x05\x5b\x52\x80\x3e\xdc\x1a\xad\xb4\x9a\x5b\x07\x71\x48\x0c\xa7\ \x22\xa1\xfc\xd4\x91\xa5\xbe\x0f\x15\xcd\xba\xd6\xe5\x17\xb7\x38\ \x53\xe6\xaf\xa8\xd0\x22\x38\x7f\x8a\x35\x5b\xd8\xac\xe7\x2b\x41\ \x34\x49\x8f\x6a\x5e\x79\x02\x8c\x0e\x68\x29\x71\x20\xce\x07\x35\ \x5b\x58\x5a\x79\x42\x8e\x3b\x9a\xac\x68\xd2\xc9\xa4\x6e\x6b\x42\ \x42\x96\x56\xda\x46\x35\xb5\x62\xd1\x45\x25\x9a\xb4\xec\x23\x58\ \xa3\xd6\xc3\x73\x4a\x58\x43\x9c\xc8\xdc\x0f\xde\x8b\x3c\xc4\xfb\ \x57\x73\x59\xa2\x6f\xee\x4e\x74\xae\xe4\xf6\xa5\x54\x15\x6c\xb7\ \xb9\xcf\xed\x56\x45\xf7\x61\x3d\xce\x79\x3d\x85\x35\x6d\x6c\x34\ \xeb\x6f\xa7\xbb\x79\xfb\x55\xe2\x01\x41\x0b\x31\xd6\xdf\xae\x69\ \xa8\x63\x2c\x42\x20\xde\xa5\x14\xbb\x84\x45\xdb\xb0\xad\x6b\x1b\ \x64\xb5\x40\xf2\x60\xb9\xac\x67\x9e\xbb\x50\x96\x05\xb4\xb5\x2e\ \xc3\xdc\x45\x63\xce\xcc\xd2\x96\x63\x92\x4d\x7a\x47\x41\x72\x37\ \xe1\x46\x6b\xcf\xdc\xc4\x4b\x1d\xb1\xbd\x4f\x8a\xee\xee\x95\xa5\ \xd1\x62\x2f\x6b\x22\x26\x35\x15\xc0\xcd\x64\xde\xc2\xc8\xe4\x15\ \x21\x97\x62\x29\x8e\x9f\x78\xf6\xd2\x85\x6d\x8f\x7d\xf9\xad\x5b\ \x8b\x78\xba\x8c\x3e\xa4\x45\x44\xc0\x7f\xfb\x56\xb9\xc6\xec\x79\ \xf8\x2e\x67\x8c\xfb\x65\x60\x3e\xf5\xb7\xd3\x7d\x1b\x98\x3f\x98\ \x8a\xcd\x8e\x48\xac\x7b\xcb\x67\x8d\xd8\x15\x2a\x47\x20\xd1\x3a\ \x35\xd8\xb7\xb8\x1a\x8f\xb4\xd6\xb2\x9b\x9b\x80\x7d\x62\x3f\x4e\ \x50\x02\x80\x01\xec\x29\x9b\x60\x5c\xa8\x1c\x91\x81\x4c\x75\xdb\ \x61\x71\x17\xaf\x0f\xb8\x73\xfa\xd2\x16\x53\x10\x06\x4e\x1d\x0d\ \x25\xde\x28\xf6\x7f\xc3\xd6\x0b\x6a\x86\x72\x31\x85\xd8\x9e\xf5\ \xe7\x3f\x89\x24\x0d\x73\x3b\x1e\xe7\x15\xa9\x69\xd6\xa5\x9e\xdf\ \xd1\x70\xa3\x6d\xcd\x60\xf5\x97\x0d\x23\x1c\xe7\x26\xb8\x7c\x78\ \xe5\xe7\xcb\x57\xa0\x33\xa6\x6c\x83\xce\xe2\xb7\x7a\x7c\xf1\x5c\ \xda\xfa\x17\x18\x28\xfb\x03\xfd\x26\xb0\x07\xba\x05\x61\xca\xec\ \x69\xae\x97\x30\x12\x98\x9c\xe1\x5c\x73\xe0\xd7\x4c\xf1\xdc\x48\ \x4f\xf8\x93\xa4\x49\x67\x39\x65\x5c\xa9\xf1\xc5\x65\x44\xe6\x36\ \xcf\x23\xb8\xaf\x77\x6a\x52\xed\x1b\xa7\xdd\xe3\x58\xfa\x18\xd7\ \x95\xfe\x23\xe9\x72\x59\x5c\xb7\xb4\xe3\x35\x30\xcf\xfe\x72\x2c\ \x0e\x09\x5a\x3c\x49\x11\xd8\xf2\x2b\x7b\xa3\xf5\x34\x96\x3f\x4a\ \x71\xa9\x7b\x83\xb9\x15\xe5\xad\xa5\x31\xb6\x0f\x06\x9b\x46\x68\ \xdc\x49\x19\xad\xe5\x8e\xcd\xbd\x5d\xc7\x45\x8a\xe9\x3d\x48\x0a\ \xb2\x9e\x01\xff\x00\x9a\xc9\xbd\xe9\x12\x40\xf8\xd0\xc9\xf7\xe0\ \xd1\x3a\x2f\x58\x78\x58\x61\xb0\x7b\xa9\xe0\xd7\xac\xe9\xb7\x96\ \xb7\xf1\x60\xe9\x0d\xc1\x56\xae\x37\x2c\xf0\x5e\xde\x16\x6e\x9f\ \x36\x9d\x4a\xa5\xbe\xd4\x9b\xab\x2b\x61\x81\x07\xe4\x57\xd2\xa5\ \xe9\x90\xf2\xa8\x07\xc8\xa4\x3a\xb7\x47\xb6\x9e\xdf\x12\x47\x83\ \xd9\xd4\x6e\x29\x8f\xf2\x3f\x27\x8b\xc2\xa4\x83\x4f\xa7\x20\xca\ \xf6\x3e\x29\x7b\x98\x8a\x36\x47\x07\xc5\x69\x75\x7e\x9b\x2d\x9b\ \x1d\xc4\x91\xf6\x71\xfe\xfe\x29\x15\x23\x74\x7f\xa4\xfe\xd5\xdf\ \x8b\x37\x19\x52\x17\xd4\xba\x0f\x3d\xaa\xea\x7b\x1a\x0c\xc8\x62\ \x93\x6d\xc7\x62\x2a\xe8\xda\x97\x23\xf5\xab\x05\x98\x60\xd1\xa3\ \x39\x5c\xd0\x79\x15\x68\x4e\x1b\x1e\x6b\x7d\x81\xdc\x3e\x9c\x93\ \x4a\x1d\x4e\xfb\x6e\x4d\x35\xd4\x47\xb7\x35\xdd\x2d\x54\x6b\x95\ \x86\xca\x2a\x50\x68\x95\x2c\xed\xf5\xb6\x35\x1a\x5a\x30\xd7\x12\ \x99\xa4\xe3\xb5\x44\x8c\xd7\x53\xe4\xe4\x20\xa3\x70\x30\x36\x02\ \xb2\x1f\x9a\x50\xa8\x11\x76\x51\x42\x89\x4b\x8c\xb1\xd2\xbd\xfc\ \x9a\x11\x90\x38\xdc\x60\xd3\x16\xb8\x76\x50\x78\x03\x8a\x9d\x40\ \xcd\xbc\x29\xa7\x51\x5d\x31\xfe\xed\x44\x6c\xc8\x42\xa8\xc0\x1c\ \x28\xed\x56\x45\x2f\x82\x4f\xc6\x29\xeb\x44\x86\xd5\x7d\x69\x86\ \xe3\xe9\x5a\xc5\xba\xfe\xd4\x6e\x9b\x6a\xb6\xf1\x7a\xb2\x8f\x71\ \xe0\x52\xd7\x52\x4b\x35\xf2\xc6\x99\x39\xe0\x0a\x1d\xdd\xf4\xb3\ \x3e\xa1\xed\x51\xc0\xad\x3f\xe1\x53\x11\xfe\x27\x85\xa4\x00\x83\ \x0e\xa5\x04\x73\x5c\xf2\x96\x4d\xd1\xaf\xd2\x7a\x15\xd7\xe0\xc4\ \xc3\x00\xf8\x6e\xf4\x2e\xa1\xd1\x12\x43\xfc\xdb\x53\x03\xe3\x1a\ \xe3\x19\x53\xf7\x14\xf7\x52\xeb\x52\x17\x29\x19\x0a\x01\xc0\x02\ \xa2\xd7\xae\x38\xf6\xc8\x01\xfb\xd7\x09\x7e\x4e\xda\xe1\xe3\x7a\ \xbf\x4a\x9a\xd9\xb1\x22\x6a\x43\xf4\xb8\xef\x49\x5b\xdc\xcd\x67\ \x20\xcb\x1d\x3e\x6b\xe9\x7e\x9d\x97\x50\x8c\xaa\xe9\x52\xc3\x75\ \x3c\x1a\xf3\xbd\x7f\xf8\x56\x45\xd4\xf6\xcb\x90\x7f\x21\xef\xf6\ \x35\xdf\x0f\x9e\x5e\x32\x66\xc6\x54\x8d\x07\x52\x83\x21\x82\xcc\ \x06\xc7\xcd\x63\x5e\xda\xbc\x32\x10\x57\x04\x76\xa2\x4b\x0d\xc5\ \x95\xc1\x00\x30\x2b\xca\xf8\xa7\xa1\xbb\xb7\xbc\x84\x45\x73\x85\ \x60\x36\x6f\x15\xda\x6f\x1e\x67\x48\x57\xa3\xde\xfa\x4d\xe8\xcd\ \xbc\x6d\xb6\xf5\x1d\x5a\xd3\xd0\x90\x5c\x42\x35\x21\xe7\x15\x5b\ \xab\x09\x55\xb3\x18\xd6\x0f\x75\x35\x68\xde\xfd\x22\xd1\xb2\xa8\ \x3f\x9b\x15\x78\xde\xe0\x5c\x5d\xb0\x18\x40\x72\x79\x14\x19\xcc\ \xae\x72\xfb\x7c\x66\x99\x9d\x8e\x49\x9e\x70\x3e\x13\x1b\xd1\xad\ \x6c\xa5\x91\x43\xa4\x02\x34\x3c\x49\x29\xe7\xec\x3b\xd6\xb7\x20\ \xa4\x09\xff\x00\x92\x73\xfe\x60\x3f\x6a\x5d\x1f\x43\xe7\xb0\x35\ \xa1\x78\x12\x18\x16\x04\x3c\x6e\x4f\x72\x7c\xd2\x16\xe0\x3b\xba\ \x76\x35\x9c\x79\x1a\xf2\x3b\x49\x6f\x15\xd2\x1f\x7c\x67\x4b\x62\ \xb4\x66\x48\xba\xc7\x4d\x2a\xd8\xf5\xd0\x71\xe6\xbc\xff\x00\x4f\ \x9d\xe1\x9b\x41\x39\xd3\xbf\xdc\x56\x8d\xf3\x35\xbc\xd1\xdd\x5b\ \xb1\x50\xe3\x3b\x57\x1c\xb1\x57\x97\xea\x96\x6f\x69\x70\xc8\xca\ \x40\xce\xd5\x16\x73\x01\xec\x73\xb1\xe0\xd7\xb3\x96\xca\xd7\xad\ \xd8\xb1\xc6\x9b\x85\x19\xdb\xbd\x78\xde\xa7\x63\x2d\x9c\xe5\x1c\ \x1c\x03\xcd\x6f\x0c\xe6\x5c\x5e\xcb\x05\x61\xa4\xea\x4a\x7f\xa7\ \xde\xb2\x91\xb9\x04\x70\x73\xb8\xac\xab\x59\xb3\xec\x63\xbf\x62\ \x68\xac\x0a\xb6\x45\x6e\xcd\xf1\x51\xed\x3a\x3f\x5f\x92\x35\x09\ \x3e\x64\x4e\x33\xdc\x56\xea\xcf\x05\xd4\x3a\xa1\x75\x6c\x8e\x2b\ \xe6\xf6\x77\x45\x4e\x1b\xfb\xd6\xad\xa5\xcb\x29\x0f\x0c\x84\x11\ \xe0\xd7\x9f\x3f\x8a\x5e\x9a\x94\xef\xf1\x1c\x46\x37\x2d\x18\x3f\ \xe6\x43\xc1\xaf\x31\x75\x1a\x1f\x7c\x5c\x77\x53\xf9\x6b\xd7\x8b\ \xc8\xba\x84\x5e\x85\xd0\x09\x21\xd8\x3f\x63\xf7\xaf\x35\xd6\xec\ \xe5\xb3\xb9\x39\x1b\x67\x63\xe6\xb7\xf1\x5d\x71\x4a\xce\xd9\x97\ \x43\x71\xdb\xe2\x82\x33\x14\x98\x23\x6a\x3b\xe1\x86\x47\xea\x2a\ \x92\x2e\xb5\xf9\x1c\x57\x6b\x19\x48\x23\x90\x76\xa9\xe0\xe4\x50\ \xa2\x62\x0e\x93\x44\xab\x28\x9b\xa5\xf5\x21\xc8\xed\x40\xb7\x72\ \x2d\x65\x51\xb1\xe6\x98\x8c\xec\x54\xf0\x69\x68\xc6\x99\xa4\x43\ \xdd\x4d\x5b\xd0\x25\xb7\xf8\x23\x14\x68\x23\x32\x3e\x3b\x0e\x68\ \x16\xc7\xf9\x42\x9d\x0e\xb1\xc4\x14\x63\x38\xc9\xac\xfa\x1f\xff\ \xd9\ \x00\x00\x0c\x82\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x0c\x49\x49\x44\x41\x54\x78\x5e\xed\x9a\x09\x6c\x5c\xd7\ \x79\x46\xcf\x7d\x6f\x36\x0e\x57\x0d\x49\x71\xa7\x48\x8a\xa2\xa8\ \x8d\xda\x29\x53\x92\x15\xdb\x32\x92\xc8\x52\x6b\x3b\x4e\x60\x3b\ \xf1\x16\xbb\x71\xd3\x24\x6d\xaa\xd6\x89\xe3\xb4\xae\x61\x23\xb5\ \x93\x36\xa8\x8d\xb8\x69\xd3\xd6\x6d\xed\xa2\x0b\xd2\x16\x69\x6b\ \x18\xa9\x9b\x5a\x4b\x97\xd8\xb2\x4d\x59\x5c\xc4\x4d\xa4\xb8\x2e\ \x22\x87\x1c\x0e\x67\xc8\x59\xdf\x72\xab\xc1\x7b\xc6\x33\x08\xa6\ \xf0\x08\x8c\xd2\x00\x1d\xe0\xc3\xff\xee\x70\x66\xee\x77\xfe\xe5\ \x0e\xe6\x81\x42\x4a\xc9\xcf\xf3\x43\xf9\x19\x1b\xf8\x7f\x00\xd7\ \x4a\x80\x33\x67\xce\x70\xf2\xe4\xc9\x0f\x05\x20\x04\xdc\x77\x84\ \xc7\x86\x66\x68\x7f\x7b\x90\xb3\xa6\xf9\xd3\x05\x78\xfe\xf9\xe7\ \xb9\xf9\xe6\x9b\xff\x77\x80\x48\x24\x42\x67\x67\xe7\x87\x02\xd8\ \x55\xc7\xbe\x0d\x45\xb5\xcf\xb6\x34\x04\xd4\x86\xbc\x8e\x1f\xbc\ \x7c\x8a\x27\x7a\xc7\x18\x5a\x73\x00\xc7\xdb\xda\xb5\x90\x5b\x45\ \xdc\x7b\x23\xdf\x69\xbd\xeb\x05\xf7\xd1\x2f\xbd\xa3\xdc\xf3\xc5\ \x3f\xfe\xe4\x4b\x5f\x2b\xed\x7c\xf2\x7e\x9e\x2d\x2d\xc9\x29\x64\ \xeb\x7d\x8f\xb2\xf9\xee\x87\x59\xbf\x7b\x0b\xc2\x25\xfe\xcf\xcd\ \xc0\xb1\xdd\x3c\xbc\xf7\xd0\xf1\xb6\x9a\x1d\x77\xa0\xa8\x6e\x6a\ \xf6\x7c\x9e\xfd\x9f\x1d\xf0\xdf\x7e\xdf\xaf\x3f\xd1\xf8\xe9\xe7\ \x66\x1e\x7f\xf2\x99\x3f\xf9\xe4\xc3\x5f\xff\xf3\x63\x27\x5f\xee\ \x2d\x7f\xe4\xec\xbc\x72\xcb\x77\x7f\xc8\x8e\x2f\xfc\x16\x95\x47\ \x8e\xe2\xaf\x58\x07\xca\xcf\x0e\x60\x7d\x01\xc5\x27\x0e\xf8\x7e\ \x77\xff\x27\x5e\x40\x08\x27\xb9\x3f\x1e\x55\xf8\xc2\x5b\x0f\xf2\ \x3b\x8f\x3c\xe0\xfb\xe5\xa3\x95\xdc\xb4\xa3\x9c\x27\xef\xdb\xce\ \x6b\x4f\x1f\x08\xfc\xf0\xc5\x07\x8e\x3d\xff\xcd\x27\xbe\xf1\xd0\ \xe3\x7f\xf8\x46\xcb\x67\xff\x6e\xda\x7b\xeb\x4b\x17\xd8\xf1\x95\ \x3f\xa2\xea\x63\xf7\x93\xbf\x69\x13\x8a\x47\xbd\x6e\x00\x77\x1f\ \xe2\x99\xfd\xb7\x3d\x56\x56\x50\xda\x08\x80\x29\x25\xdf\xfa\xd7\ \x29\x9e\x7d\x6d\x92\xef\x7f\x71\x0b\x07\x9b\xd6\xd1\x3b\x11\xa7\ \xac\xc4\x4f\xca\x54\x88\x6a\x2e\xdc\xb9\x79\xb4\x6c\xab\xe2\xe1\ \x3b\xb7\xf3\xd2\xd7\x0f\xfb\x4e\xff\xd9\xbd\xbb\xfe\xfa\xbb\xbf\ \xf1\x2b\x5f\x7d\xfa\xf7\xff\xea\xd6\xcf\x7d\xaf\x3f\x70\xf4\x4f\ \x27\xd8\xfa\xdb\xff\x42\x5e\xd3\x0d\x59\x9f\x42\xd9\x68\x67\x1d\ \xfb\x3e\x72\xa0\xe1\x73\xdb\x8f\x7e\x0d\xa4\x64\x21\xae\xf3\xc8\ \x2b\xc3\x6c\x29\xf7\xf1\x8f\x57\xcd\x67\x0c\x07\x63\x30\x35\x9f\ \xa6\xa1\x2e\x17\xb7\x02\x52\x82\x24\x13\x05\xa6\x84\x98\xa6\x22\ \x85\x4a\x45\x4d\x39\x55\xb5\x65\xdc\xf1\x31\xa9\xf8\x54\x59\x71\ \xe6\xc7\x43\xbf\xf8\x9b\x5f\xee\x5c\x64\xf9\x52\x27\x90\x58\x73\ \x00\x55\x41\x7c\xe6\x88\x78\x61\xff\x9d\xdf\x76\xab\x6e\x1f\x52\ \xea\x7c\xf3\xf5\x29\x76\xd6\xe4\xf0\x91\x2d\x01\x82\x31\x13\x13\ \x85\x50\x02\x22\x31\x9d\x3c\xbf\x0b\xa1\x60\x9b\xff\x49\x51\x90\ \x32\x05\x69\x53\x32\x9d\x21\x8f\x8d\xf6\x01\xe6\x4f\xa5\x02\xc7\ \xf7\xf0\xe0\xee\xb6\x63\x87\x6a\xb6\x1d\x47\x1a\x29\xc0\xa4\x7b\ \x3a\xce\x73\x27\x6a\x18\xbe\x92\xe2\x42\xcf\x22\x89\xb4\x89\xdb\ \xe3\xc2\x23\x24\x6e\x97\x00\xa4\x65\x56\x38\x86\x59\x05\xc4\xab\ \x4a\x2e\x5c\x0a\x19\x2c\x0f\x5f\x00\x52\x6b\x0e\x50\x5a\x40\xe0\ \xf6\x36\xdf\x73\xad\x77\x3d\x8f\xd4\x13\x48\x69\x10\x4b\x19\x20\ \x04\x85\x85\x3e\x36\xe7\xfa\x69\x6a\x2c\x42\xd7\x25\xb1\x58\x1a\ \x21\x04\x2e\x21\x2d\x93\x16\x07\x12\x81\x14\x0e\x10\x38\x50\x3e\ \x61\xd0\xd1\xdd\x37\x81\x11\x9b\x5a\xf3\x19\x10\xc0\x3d\x87\x78\ \x7a\xf7\xc7\xbf\x52\x9e\x57\x58\x86\xd4\x93\x48\x99\xc9\x7e\x92\ \xed\x95\x39\xe8\x52\xa0\xda\xbd\xae\xba\x05\x9e\x22\xaf\x6d\x4c\ \x02\xd8\xc6\xad\xb5\x04\x10\x58\x10\x08\x7b\x2d\x99\x09\x46\x09\ \x4f\xf7\x0d\x02\xf3\x6b\x0e\xd0\xb2\x81\x3d\x47\x5a\x1b\x1e\xdd\ \x76\xd3\x97\x31\xd3\x51\x90\x66\x06\x80\x73\xa3\x09\xf6\xd4\x94\ \x22\xc0\xca\xf6\xfb\xc6\x6c\x6c\x67\x6d\x1b\x07\xa4\x03\x04\xd2\ \x79\xbe\x67\x78\x81\x23\xd5\x97\x77\x2f\x24\xdc\x4d\xdd\x63\xda\ \xcc\x9a\x01\x78\x5d\x28\x77\x1f\x16\x2f\xb6\x7e\xe2\xdb\x1e\xc5\ \x88\x23\x8d\x24\x90\x01\x90\xbc\x3b\xa5\xf1\xd4\x2e\xbf\xd3\x2a\ \x60\x1b\x13\x48\x56\xb6\x0f\x48\x21\x90\x12\xb0\x81\x6c\x40\x5c\ \x8a\x24\x6f\xa1\x9f\x4f\xef\x0c\x96\x44\xaa\xf2\x5e\xfe\xea\x2b\ \xe1\x03\xc0\xdc\x9a\x00\x7c\x74\x17\x0f\xec\x3f\x7c\xdb\xc1\xaa\ \x4d\x37\x62\x24\x82\x20\x4d\xc0\xcc\x44\x66\xe2\x2e\x4a\xf2\x5c\ \x24\x0d\xe9\x0c\x27\xd8\x7d\xbe\x22\xe3\xb6\x6d\x56\xa9\x52\x5e\ \x74\x9a\x87\xf2\xdf\x20\x74\xa4\x86\xd7\x4f\x4d\xd5\x96\x17\xa9\ \x6d\x33\x8b\xc6\xab\x59\x02\xac\x3e\xb8\x27\x5a\xbd\xcf\xb6\xde\ \xf9\x7b\x18\xf1\x2b\x48\x53\x03\x69\x99\x1f\x8f\x4a\x6a\x02\x05\ \x56\x06\x85\x63\x5a\xb2\x8a\x71\x61\x39\x76\xaa\x24\xec\xb5\x04\ \x2d\x45\x49\xfb\x5f\xa0\x36\xb9\x28\x09\x16\xe2\x76\xbb\xd5\xcd\ \x55\xee\x43\x57\x01\x5e\x07\xd2\xd7\x0e\x60\x0d\xee\x33\xfb\x8e\ \x3d\x56\x91\xe3\xf3\x62\x26\xe7\x91\xd2\x04\x5b\xe7\x26\x55\x0e\ \xd4\xfa\x11\x80\x2a\x56\x19\x4e\xa7\xc7\x71\xda\xc5\xce\x3a\xf6\ \xbc\x98\x92\xe2\xb7\x5e\xc1\x57\x17\x86\x0d\xf7\xa2\xc4\x4e\x51\ \x16\x38\xcf\xd6\xea\xf8\xfe\xff\xe8\x49\xe6\x03\xa1\x6b\x06\xd8\ \xb9\x81\x3d\x37\xee\xaf\x7f\x74\xdb\x91\xcf\x63\x2c\x8f\x58\x83\ \xcb\x07\x00\xa6\x72\x79\xf0\xb0\x1f\x55\x91\x20\x57\x69\x15\x40\ \x3a\x40\xce\xda\x82\xb2\x2a\x77\xfe\x75\xf2\xd7\xf5\x43\xd5\x4d\ \x50\xd0\x0c\xeb\xa6\x28\x2f\x29\xa4\xb1\x3c\xb4\x5d\x55\x58\x6f\ \x98\xd7\x08\xe0\x56\x11\xf7\x1c\xe6\xc5\xab\xad\xe3\x26\x31\x65\ \x7d\x69\x49\xc3\xaa\x80\xa9\x91\x5e\x1a\xa0\x77\xfe\x06\xb6\xae\ \xf7\x60\x4a\x69\x0f\xe7\xca\x1e\xb7\x8d\x3b\xa6\xed\x2a\x81\x29\ \x21\xd9\xdf\x43\x95\x7e\x16\x51\xdf\x08\xe5\xb7\x00\x26\x94\x36\ \x51\x51\x54\x40\xa1\x5f\x2d\x29\x2f\x72\xb5\x4c\x2d\xe8\x7d\xd7\ \x04\xf0\xf1\x5d\x3c\xb4\xf7\xd0\xb1\x83\x95\x0d\x7b\xd0\x42\x17\ \xd1\x62\xa3\xa4\x17\x3b\x2d\x45\x7a\x58\xd2\x54\x72\xf3\xce\xa1\ \x2a\x20\xcc\x95\xc6\x57\x3f\x89\xa4\x04\xb0\xcc\x47\xa7\xe6\xd9\ \x30\xf3\x4f\x28\x3b\xca\xa0\xf6\x1e\x0b\x4d\x1a\x50\x14\xa0\x30\ \xb7\x12\xbf\x6f\x40\x6c\xa9\xf6\x1e\xba\x0a\xf0\xcf\x40\x2a\x2b\ \x80\xfc\x1c\x72\x8f\xed\xe1\x1b\x75\xf5\x35\x84\xcf\x7e\x89\x78\ \xfc\x2d\xa4\xb6\x08\x08\x10\x0a\x08\x95\x7e\x6d\x0f\xbb\x6b\x03\ \x08\x40\x11\x0e\xb8\xb4\x05\xab\x0c\xb5\x5d\xa5\xf0\x7c\x8a\x8a\ \x9e\xbf\xc5\xd3\x16\x80\x92\x3b\x40\xf1\x80\xd4\x01\x4b\x4a\x60\ \x13\x65\xc5\xe7\xd9\x5c\xb1\xbc\xff\x8d\xae\x58\x01\x30\x97\x15\ \x40\x75\x31\xd5\x53\x39\x54\x96\x19\x53\xe4\xfb\xcb\x49\x46\xf6\ \xb2\x14\x1f\x22\x51\x10\x01\xc5\x85\xb8\xaa\x8e\xc5\x56\x0e\x66\ \x06\x58\x88\x15\xbf\x91\x9d\x6f\x5f\x56\x7e\x07\x20\x99\x0b\x4b\ \x8a\xde\xfb\x01\x79\x07\x8b\x21\xb0\x1f\xdc\xeb\x00\xc3\x92\xd4\ \x2d\x15\x36\x50\x59\xbe\x3e\x33\x07\xdb\x14\xc1\x7a\x53\x66\x09\ \x30\x3e\xcf\x98\xa2\x12\x8e\xa4\xe4\xba\x82\xcd\x2d\xe4\x6c\x6e\ \x23\x27\x32\x8e\x3e\x3e\x4d\x6c\xe1\x32\x71\x5f\x98\x2e\x6d\x17\ \xbf\x56\xe9\x73\x00\x56\x17\xc2\x36\x2e\x20\x63\x1e\x77\xf7\x59\ \x8a\x5b\x02\x50\x5c\x0f\xee\x5a\xab\x6d\xd0\x41\x6a\xb6\xd2\x50\ \x5a\x49\x45\x79\x03\x3e\xf7\xa5\xfc\x0d\xa5\x9e\xd6\x91\x60\xba\ \x17\x90\x1f\x1a\x20\x96\x24\x39\x1b\xe5\xcd\xf0\xf2\xdc\xf1\x1a\ \xa9\x40\x60\x33\x94\xec\xc4\x55\xbb\x48\xa1\x1e\xa4\x60\x3c\xc4\ \xc9\x94\x46\xde\x95\x41\xa8\xdf\xbc\x4a\x15\x84\x5d\x05\x07\x63\ \x3e\x62\x92\x1c\x1e\xa4\xb1\x38\x8e\xd8\xb0\x07\xd4\x22\xa7\x6d\ \x64\x46\x69\x5b\x29\xc8\xf5\x50\x50\xd2\x48\x5e\x7e\x11\x4d\xe5\ \x91\xb6\xab\x00\xdf\x07\xe2\x59\x0d\x71\xcf\x38\xa7\x6f\x88\x8e\ \x1c\x97\x8a\x1f\xa1\x2d\x82\xa7\xd8\x92\xb7\x0a\xb1\x05\x8e\x6e\ \x51\x90\x0b\x31\xcc\xce\x1f\x81\x27\x1f\xb3\x69\x2f\xb8\xbd\xac\ \xf6\x08\x45\x4c\xc2\xd3\x8b\x6c\x8a\xbe\x87\xf2\xd1\x13\x00\x20\ \x75\x9c\xb6\xd1\xb0\xcd\xdb\x4a\x22\xfc\x85\x54\xd6\x35\xd2\x54\ \x31\xbb\xef\xdf\xba\x96\x0a\xae\x05\xe0\x94\xa9\x87\x48\x26\x16\ \xc9\xd1\xbc\xe0\xca\x01\x24\x08\x40\x78\x41\x28\x88\xe2\x62\xd4\ \xd2\x6a\xd0\x5c\x28\x83\xed\xc8\xb4\x86\x59\xd3\x0c\xc5\xe5\x80\ \x00\x60\x21\x22\x99\x9d\xd3\xd9\x30\xf8\x1a\xbe\xdb\x3f\x05\xa4\ \x6d\xe3\xb6\x79\x3e\x98\xfd\x24\x98\x09\x30\xe3\xe0\x81\xea\xba\ \x4d\xd4\x04\xda\x9b\xbc\x2e\x51\x93\xd2\xe5\x4c\x56\xbf\x89\xdf\ \x1b\xa2\x0b\x21\xe7\x96\x17\x07\x41\xd3\x41\xc6\xac\x0f\x96\x19\ \x25\x40\x26\x2d\x99\x4b\xa0\x2e\x21\xb6\x36\xa3\xec\x6e\x43\x4d\ \x44\x50\x3b\xce\xa0\x8c\x74\x13\x8e\x18\x4c\xcf\x43\xa0\xeb\x55\ \x02\xb7\xde\x06\xaa\x6e\x65\xd8\xb4\x32\xed\x18\xce\xc4\xb8\xad\ \x18\xc8\x65\xc8\x37\xa9\x2e\xab\xc6\xe3\x52\xfd\xb5\x25\xde\x56\ \x40\x64\x05\xa0\x1b\xc8\x8b\xa3\x9c\x89\x86\x7a\xc1\x50\xc1\x58\ \x02\x73\x19\xcc\x98\xad\xb8\xad\x84\x05\x64\x44\xc1\x98\x41\x54\ \x15\x20\x76\xb7\xa2\x94\x56\x52\x38\xfc\x26\xa5\x1d\x7f\x4f\x6d\ \x6b\x33\x14\xe6\x82\x19\x71\xc0\x65\x02\x47\x31\x4b\xe6\x72\x46\ \xd6\x5e\x1e\x1d\xbf\x47\x25\xb0\xbe\x42\x34\x95\xfb\x6e\x00\x72\ \xb3\x02\x00\xe8\x18\xe2\x54\x34\xd4\x87\x49\x2e\x68\x61\x30\xa3\ \xb6\x96\x41\x2e\xdb\x1b\x5b\x20\x56\x4c\x58\x15\xd1\xaf\x20\xfc\ \x11\xbc\xbb\x9b\xa9\xfe\xd4\x9d\x88\xfa\xa6\xcc\x73\x19\x50\x9c\ \xd7\x66\xb4\xc2\xb4\x99\x51\x04\x8c\x38\x18\x1a\x88\x04\x35\x1b\ \xb7\xb0\xb1\x34\x67\x2f\x50\x94\x35\x40\xfb\x00\x67\x52\x89\xb0\ \x4c\x2c\x87\xc0\x10\xd6\x26\x46\xc4\xde\x64\xc9\xd9\xd4\x32\x61\ \x67\xd1\x56\xe6\xda\x98\x01\x6d\x00\xd2\x97\x56\x54\x6f\xd9\x02\ \xb5\xa2\x93\x18\x23\x02\x7a\x12\xf4\x34\xe8\x1a\xc8\x28\x35\x8d\ \x5b\xa9\x28\xf2\x36\xf8\x3d\x4a\x5d\xd6\x00\xdd\x23\x5c\x8e\xc4\ \x18\x89\xcc\x77\x83\x99\x67\x7d\xb0\x11\xb7\x21\x16\x6d\x90\xf7\ \xab\x62\x03\x39\x19\x75\x0c\x1a\x51\xec\x6b\x9c\x75\xd4\x7e\xff\ \xa2\xad\x25\xd0\x53\x8e\xf9\x8c\x72\x25\x95\xeb\x4a\xf0\x78\x3c\ \xde\xba\x12\x5f\x1b\xa0\x64\x05\xa0\xe9\x98\x17\x87\x39\xbb\x38\ \xdb\x09\x62\x9d\x05\xa0\xa5\xed\x2c\x2d\xd9\x1b\x87\x1d\x13\xa6\ \x15\x1d\x38\x5b\x66\x64\xc5\xdf\xac\xf7\x59\x8a\x82\x9e\x00\xcd\ \x36\xef\x00\x00\x3a\x3e\x57\x9a\xd2\xaa\xba\x4c\x1b\x1d\x00\xf2\ \xb2\xfe\x3d\xf0\x4e\xbf\x3c\xdd\xb6\xa3\xeb\x61\x53\x0d\xa0\xa4\ \x75\x50\x4c\x30\x55\x50\x55\x10\x06\x28\x69\x50\x54\x10\xef\xcb\ \x05\x28\x2b\xf2\x22\x01\xd3\x39\x3a\xa5\x61\xc9\x34\xc1\xfc\x60\ \xd4\xc1\x30\xc0\xd0\x2d\x99\x3a\x22\x15\xa4\x76\x73\x0b\x0d\x17\ \xfa\xf6\x40\x68\x1d\x10\xcd\xea\xd6\x62\xd7\xb0\xfc\x4f\x3d\x1d\ \xd7\x97\xc3\xe3\x20\xfd\x4e\x96\xb4\x34\xce\x75\x0a\xb4\x24\x68\ \x71\xd0\x96\x40\xb7\xfa\xd9\x96\xb5\xd6\x33\xcf\xc7\xac\x6c\xeb\ \x29\x70\xde\xbf\xca\x67\x6a\x60\xd8\x55\x50\x22\x6c\x68\xde\x49\ \x69\x9e\x77\x43\x9e\x57\xdd\x08\x90\x15\xc0\xd0\x34\x13\xf3\x11\ \x2e\x2d\x5c\x79\x0f\x5c\xeb\x33\xc6\x71\x94\x72\xa2\xd5\xbf\xce\ \x3a\xed\x08\xcd\xd6\xca\xd7\x3b\x6b\x1b\x48\x73\x00\xa4\x17\x72\ \x36\x42\xc5\x21\xf2\x03\xe5\x80\xa2\xe4\xfb\x5c\x8d\x80\x2b\xab\ \x16\xd2\x0d\xe8\x18\x92\xa7\xea\x9b\xda\xb7\xd6\x6d\x3d\x01\xd1\ \x0e\x50\x54\x5b\x0a\x08\xc5\x89\x42\x58\x22\x13\xb1\x22\x12\x24\ \x76\xfc\xa0\x4c\x30\x4d\x3b\x1a\x80\x17\x3c\x95\xe0\xad\x42\x7a\ \x2b\x09\x87\xe3\x8c\xf7\x77\x33\xda\xfb\x2a\x23\x3d\xdd\x04\xa3\ \xa9\xf1\xe0\x52\x7a\x14\x10\xd9\x00\xd8\xa7\x91\x79\xe6\x96\xd9\ \x8b\xbf\xaa\xab\x01\x5c\x86\x04\x23\xbd\x0a\x80\x70\x84\x1d\x01\ \xc0\x81\x70\xcc\x03\x2a\x78\x2a\xc0\x5b\x0d\xbe\x6a\x62\x09\x98\ \xe8\xef\x60\xac\xef\xdf\xaf\xaa\x83\xc5\xf9\x20\xf1\xa4\xb1\x74\ \x39\x98\xe8\x1d\x9a\x4d\x74\x74\x4d\x2e\xfd\xc8\x30\x65\x1f\xa0\ \x65\x0d\xf0\xce\x80\x3c\xab\xa7\x13\x46\x64\x7e\x48\x2d\x76\x95\ \x40\x72\x72\xb5\xec\x3b\x11\x9c\x2a\x48\xec\x65\xc6\x70\x19\xf8\ \x6a\x91\xbe\x1a\x52\x7a\x0e\xd3\x97\xbb\x99\xec\xff\x2f\xc6\xfb\ \xcf\x33\x3f\x35\x22\x13\x69\x19\x1f\x9b\x4b\x0f\x5e\x9a\x49\x74\ \x5e\x9e\x4d\xb6\x4f\x84\x53\xdd\x52\x32\x03\x84\xec\xe1\x4d\x03\ \x64\x0d\x30\x1d\x92\xe1\x50\x94\x0b\xa1\x89\xb7\xf7\x15\x37\xed\ \x83\xf8\x18\x98\x06\x8e\xe9\x55\x2a\xa0\xa8\xe0\x2d\x83\x9c\x3a\ \xf0\xd7\x93\xa6\x88\xe0\xc4\x00\x53\xed\x6f\x33\x39\xf0\x3d\xe6\ \x27\x06\x49\x24\xd2\xc9\xf1\x79\x6d\xe4\xd2\x4c\xaa\x6b\x60\x3a\ \xd9\x3e\x1e\x4a\x77\xa5\x75\x39\x05\xcc\x03\xd1\x35\xbd\xbd\xfe\ \x56\xaf\x71\xaa\x76\xe3\xb9\x7d\x72\xef\x67\x10\x73\xa7\x71\x6e\ \x2f\x1b\x40\x46\x80\xaf\x0c\xf2\x36\x41\x5e\x23\xa6\xaf\x9a\xf9\ \xe9\xcb\x5c\xe9\x3c\xc7\xd4\xc0\xdf\x10\x1c\xbb\x48\x3a\x91\x30\ \x27\x43\xfa\x68\xdf\x64\xfa\xe2\xc0\x74\xaa\xfd\x72\x30\xdd\x11\ \x4f\x99\xe3\x40\xd0\x36\x1c\x77\x6a\xb6\xc6\xf7\x46\xbb\x46\xcc\ \x53\xc7\x66\x7b\x1e\xd7\x5c\xc5\x78\x14\x0f\x98\x1a\xb8\x8b\x20\ \x3f\x63\xb8\x09\xd3\x5f\x4f\x24\x3c\xc7\xec\xd0\x7f\x73\x65\xf0\ \x3b\xcc\x0c\xbd\x4d\x32\x1e\x33\x82\x8b\xc6\x4c\xdf\xa4\x76\xb1\ \x77\x32\xfd\x5e\xff\x64\xfa\xdd\xa5\xa4\x39\x66\x1b\x8e\x00\xcb\ \x59\x1a\xbe\x76\x80\x9e\x51\xf3\x6d\x43\x4f\xc7\x16\xa6\x3a\x72\ \xcb\xeb\x1f\x41\x7a\x4a\x58\x8e\xc5\x98\x1b\x7e\x93\xd9\x37\xff\ \x92\xe0\xf0\x39\xe2\x91\xa0\x0c\x45\xcd\xb9\xbe\x09\xbd\xef\xe2\ \x84\x76\xa1\x7f\x52\x3b\x1f\x8c\x18\x97\x6c\xc3\x61\xdb\xb0\xb1\ \xd2\xc0\x75\x01\x08\x46\x64\xf4\xf2\xb4\x79\x3a\xe7\x8d\xa7\x7f\ \x61\xba\x72\x1f\x73\x23\x6f\x12\x5b\x98\x64\x29\x6e\x46\x7b\xc6\ \x8c\xde\xee\x31\xad\xb3\x7b\x54\x7f\x77\x66\xd1\x18\x30\x4c\xae\ \xd8\x86\x97\x56\x3b\x35\xae\x33\x80\xa3\x6f\xfd\x43\xf2\x97\xee\ \x9a\xee\xf9\x83\xfc\x9c\xbe\xc6\xde\x71\xa3\xff\xe2\x98\xfe\xee\ \xd0\x15\xc3\x3e\x29\x58\xf8\x49\x27\xc5\x75\x07\x68\x6e\x6e\xe6\ \xa9\xa7\x9e\x5a\xb5\x10\xc0\xfd\x40\x49\x4b\x33\xb4\xc0\x32\x90\ \xb8\x3e\x36\x1d\x6f\x2b\x1f\x3f\xf7\xff\x6e\xf3\x3f\x6b\x76\x5b\ \x62\x8d\x5d\xc3\xae\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x0c\xbd\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x0c\x84\x49\x44\x41\x54\x78\x5e\xed\x99\x6b\x8c\x5c\xe5\ \x79\xc7\x7f\xcf\x7b\x2e\x33\x3b\x33\x7b\xb3\xd7\x5e\xbc\xb6\xd7\ \xc1\x2e\x97\x84\xba\x60\x4c\x20\x41\xad\x43\x44\x40\x54\x90\x96\ \x4a\x69\xaa\x5e\x48\x3f\xd0\x36\x11\x48\xfd\xe2\xa8\x4a\x2b\xd4\ \xa4\x5f\x9a\x56\x8d\x69\xa5\x82\x54\x55\xa9\xc4\xa5\x06\xda\x28\ \x21\x26\x16\x81\x26\x01\x1a\x30\x57\x63\x0a\x76\x6c\xbc\xbb\xe0\ \xcb\x7a\xbd\x37\xef\x75\xee\xe7\x9c\xf7\x7d\x0a\x47\x87\x1d\x8d\ \xd8\xc1\x1f\xa8\x54\x45\xf2\x5f\x7a\x75\x34\x1f\x1e\xcd\xf3\x9b\ \xff\xff\x79\xe7\xd1\x8c\xa8\x2a\xbf\xcc\x32\xfc\x52\xeb\x02\xc0\ \x05\x80\x0b\x00\x3e\x99\x66\x66\x66\x98\x9b\x9b\x03\x11\x50\x45\ \x69\x49\x00\x50\x50\x47\x2a\xf1\x00\x41\xbd\x9c\x87\xf1\x7d\x40\ \x50\x1b\x8b\x6d\x58\x9c\xcd\x8a\x04\xf5\x8b\x21\xb9\x35\xfd\xea\ \x85\xdd\x80\x07\x80\x6a\xa2\xea\xea\x44\xcb\x55\xb1\xcd\xba\xd8\ \x46\x24\x6a\x11\x1c\x88\xe0\x54\x50\x04\x14\x10\x30\x02\x22\x42\ \x26\x54\x95\x52\xa9\xc4\xa6\x4d\x9b\x10\x91\x16\xc0\x7d\xf7\xdd\ \xc7\xfd\xf7\xdf\x4f\x6f\x57\xa1\xbf\x2b\x08\x86\x4a\x41\xd0\xe3\ \x89\x8a\x45\x24\x32\x85\xb0\x1e\xac\x31\xb5\xe2\xe6\x7c\xb0\x66\ \xeb\x70\x61\xcd\x96\xcd\xc5\xee\xfe\x8b\xba\x7a\xd6\xf5\x05\x5d\ \xdd\x05\x40\x9a\x8d\x5a\x75\x71\xf6\xcc\xd9\xa5\x53\xaf\x1d\xee\ \x9a\x7b\x63\x2e\xd9\xf4\xb9\x2d\x1b\xb7\x7f\xe1\x86\xe1\x2d\xa5\ \x6d\x03\xbd\x7e\x6f\x21\x27\x9e\xef\x41\x14\xbb\xa4\xda\x88\xab\ \xcb\x8b\xb5\xe5\x85\x85\x85\xd9\xf9\xd9\x89\xb3\xef\xd5\x4d\x44\ \xf3\xe3\xe5\x5c\x65\x42\x2e\x36\x27\x74\x5d\xa1\x69\xf2\x21\xf9\ \xc5\xb2\xb3\x23\x13\xe5\xe7\x4f\x2f\x2d\x3d\xef\x54\x15\x20\x49\ \x12\x6e\xbe\xf9\x66\x1e\x7a\xe8\x21\x82\x20\x68\x01\xd4\xab\x55\ \x6f\x03\x7c\x65\xc7\xba\xdc\xd7\x2e\xea\x77\x17\x7b\x01\xf9\xe3\ \xc1\x4d\xc8\xc6\xcf\x48\xef\xe6\x4b\xcc\xba\x8d\x1b\x65\x68\xc3\ \x1a\x6f\xd3\x40\x57\x30\xd8\x67\xa4\xaf\x00\xa5\x1c\xf8\x86\x54\ \x91\x85\xd9\xca\xb5\xbc\x79\xf2\x56\xad\xcf\x9f\xd5\xe1\xe1\x0d\ \x72\xf5\xd6\xbc\x0c\x14\x21\xe7\x83\x67\x58\x91\x55\x48\x6c\x2f\ \xcd\x04\x2a\xd1\x4e\x16\xaa\xca\xd4\x92\xe5\xf1\x83\x15\x4e\x9e\ \x78\x97\x92\x79\x9d\xbf\xfc\xe4\x7e\xca\xb3\xcb\xdc\xff\xef\xb5\ \xb1\x77\xc6\xcb\xb7\xce\xd5\x6b\x23\x64\x5a\x5c\x5c\x24\xe3\x41\ \x32\x30\xee\xfd\xe6\xb7\x3e\x3b\xf1\xdf\x7b\x9f\xf8\xf2\xad\xa5\ \x81\xc1\xc1\x12\xff\x39\xb1\x8b\xc6\xe5\xbb\xf9\xe3\x1b\xd6\xb0\ \xb6\x08\x5d\x01\x78\x42\x26\xa5\x93\x54\x85\xe9\xf9\x3a\x7d\xdd\ \x21\xf9\x40\xb0\x4e\x51\x4d\x0f\x99\x10\x01\x11\x69\x3b\x00\xa3\ \xf3\xc2\x91\x59\x78\xe0\x47\xc7\xf8\x87\xe1\xbf\x61\x4b\x38\xc5\ \x03\x7b\x27\xe3\x3d\xcf\xcc\x7d\x69\x74\x7e\xee\x09\x32\xdd\x72\ \xcb\x2d\xec\xdb\xb7\x8f\x30\x0c\x5b\x0e\x5c\x54\x2a\x5d\xd7\xb3\ \x4d\x07\xae\xd9\xbe\x9e\xb7\x16\x36\xf1\x7a\xd7\x9f\xf2\xf5\x4f\ \xaf\x61\x4b\xbf\xe2\x9c\xc3\x59\x25\x72\xae\xbd\x99\x56\x2e\x57\ \x1a\xf1\x3c\x8f\x24\xb1\xd4\xeb\x0d\xd4\x1a\xd4\xb9\xce\xb8\xb4\ \xf2\x6d\x8c\xc1\x97\x80\xf5\x25\x8f\x30\xcc\x51\x8d\x3c\x24\x27\ \x74\xe7\xd5\xcf\x79\xde\xc0\x79\x87\xd8\xf7\x58\x93\x0b\x15\x54\ \xa9\xc7\x42\x3e\x17\xd2\x9d\x27\x6d\xc6\x5a\xbb\xd2\x68\x27\x39\ \x4d\x6b\x01\xc1\x3a\x87\xb5\x06\x00\xcd\x2e\x85\xf3\x4a\x15\x23\ \x8a\x11\xf0\x82\x90\x4a\x1c\x20\x02\x5d\x39\x95\x9c\x67\xfa\xcf\ \x0b\xa0\x9a\xda\x8d\x73\x0e\x8f\x04\xd4\xe2\x00\x55\xd0\xd6\x13\ \x14\x74\xa5\xa6\x55\x0b\x8a\x22\x38\xc0\x3a\x68\x5a\x25\xe7\xc0\ \x29\xa0\xed\x4e\x01\x08\x80\x80\x28\x64\x26\xe0\x09\x18\x21\x8d\ \x46\x39\x0e\x00\xa5\x2b\x2f\xac\x0d\xfc\x4b\xb6\xf4\xaf\xfd\xfc\ \xf0\xf6\x2b\x87\xc7\x46\xdf\x7e\x53\x44\xde\x04\xb4\x0d\x00\x68\ \x38\xab\x58\x67\x31\x58\x04\x47\xe2\x20\x3d\xb6\x05\x41\xeb\xd9\ \x06\xa4\x19\x91\x41\x49\x9c\x42\x0c\x91\x03\x75\x2d\xf0\x56\x6c\ \x68\x87\x00\x8c\x90\xd6\x7a\x19\x40\x65\x29\x04\x51\x02\x2f\xe1\ \x4a\xc3\x1f\xde\x34\x38\xf8\x47\x17\x7d\xe1\x96\x42\xed\x0f\xbe\ \x72\xfa\xcd\xb7\x0e\xfe\x89\xaa\xfe\xb4\x1d\x00\x9c\x53\x4d\x33\ \x6b\x48\x52\x90\xa6\x85\xd8\x69\x0a\xd1\xee\xc0\x6a\x2e\x80\x02\ \x06\xb0\x29\xb8\xa3\x60\xc9\x1c\x10\x14\x45\x54\x40\xda\x41\x32\ \x08\x8c\xb4\xe0\x72\xa1\xcf\x72\x92\x27\x49\x1c\x4b\x93\x96\xdb\ \x7f\x7d\x57\xc9\x9b\x5f\xe0\xa7\xff\xf8\x77\xc8\x8d\x5f\xdc\x72\ \xd9\x67\x76\xde\x2e\x22\x1f\x02\x88\x12\x0b\xd6\x3a\x3c\x2c\xce\ \xb9\x14\x20\x71\x10\xa7\x00\x9d\x63\xa4\xe8\x0a\x84\x51\xb0\x4e\ \x53\xf0\xcc\x01\xb2\x12\x24\x2b\x62\x15\x07\x44\xd2\x62\x62\x07\ \x41\xe0\x53\xb5\x79\x8e\xbc\x36\x47\xd1\x6d\x67\xb0\xbb\x97\x57\ \x9f\x7a\x9a\xcb\x8a\x05\xc6\x7e\xf4\x18\x73\x52\x9f\xe0\xcf\xbf\ \x46\x3b\x00\x12\xa3\x8a\xaa\xc3\x68\x82\x5b\x71\x00\x22\x0b\xf0\ \x51\x00\x82\x66\x54\x06\x48\x14\xa2\x24\x8d\x20\xce\xad\x72\xed\ \xba\x95\xc6\x5b\x10\x59\x84\x22\x0b\x7e\xce\xe7\xe8\x48\xc2\x27\ \x26\x7b\xd9\x71\xc9\xe5\x1c\xfa\xc1\xf7\xf1\x82\x00\xd3\x68\x30\ \xd2\x6c\x1e\x68\x96\x97\xf7\xaa\x6a\x3b\x40\xe2\x9c\x4d\xac\x92\ \x3a\x20\x49\xea\x40\x23\x81\x44\x21\x76\xd9\x90\xaa\xac\x64\xbd\ \x05\xd2\x3e\x1f\xa2\xd9\x10\xc7\x8e\xb8\xd3\x0c\xb4\xb9\xa0\x20\ \x82\x00\x81\x40\x53\xa1\xd8\x98\x22\x3a\x3a\xce\x55\xd7\x5d\xcf\ \xe8\x73\xcf\xd1\x58\x5e\xa6\xd4\xd5\xc5\x81\xa9\xa9\x93\x4f\xc1\ \x5f\x5c\x09\xa7\x05\xda\x01\x2a\x51\xd4\xb4\x96\xb4\x71\x51\x97\ \x3a\x10\xb9\x2c\x42\x56\x51\xd5\xb6\x46\x5b\x0e\xb4\xe2\x93\x11\ \xa4\x35\x51\xac\x24\x4e\x70\x4e\x41\x59\x55\x22\xed\x4f\xa3\x50\ \xad\xd4\xe8\xf9\xd9\xbf\xf0\xa5\x2b\xd7\x30\x7b\xec\x18\x33\x23\ \x23\xf4\xae\x5d\xcb\x2f\xc6\xc7\xcb\xfb\xe1\xaf\x27\xe1\xc5\x2b\ \x57\xbd\x46\x51\x75\xea\x70\xd9\x10\xe3\x12\x6a\x31\xc4\x59\x8c\ \x54\x05\xa0\x03\x44\x2b\x5a\x62\x04\x8b\xac\x44\xa8\xdd\x81\x0e\ \x2e\x64\x2f\x7c\xa7\xcc\xee\x7b\x98\x6b\xea\x67\xc9\xa9\xe5\xd8\ \x0b\x07\xe8\x1d\x18\x60\x62\x72\xd2\x3d\x69\xed\x7d\xc7\xe0\xd1\ \x8e\xdb\x28\x2a\x4d\x6b\xc5\xbd\x27\xc3\x07\x0e\x58\xb0\x0a\x91\ \x13\xd0\xcc\x05\x3a\x5d\xa5\x2d\xaa\xd4\xb5\x38\x03\x50\x40\x05\ \xd0\xd6\x30\x93\x49\x5b\x20\xc6\x33\x8c\x3d\xf3\x13\x86\x0e\x3f\ \xcf\xd6\x81\xb5\x1c\x7a\xec\x31\x0a\x7d\x7d\x2c\xcd\xcf\xf3\x56\ \x18\xd4\x46\x44\xf6\xdb\x7a\x3d\xe9\x0c\x00\x4e\x95\x15\x07\x44\ \x13\xea\x09\x59\x84\x00\xed\xfc\xe9\x43\x0b\x4c\x04\x2c\x42\x9c\ \x38\xac\x6b\xcd\x4a\x5b\x91\xb4\x3b\x21\xc6\x70\xee\xed\xa3\x2c\ \xed\xfb\x0f\x3e\x37\xbc\x91\xa3\x8f\x3f\x8e\x88\x90\x34\x9a\x4c\ \x15\x2a\xac\xdf\x36\xe4\x77\x1d\xad\x16\xa9\xd7\xe9\x0c\x20\xc4\ \xd6\xa9\xb3\x99\x03\xea\xdc\x0a\x40\xe2\xda\x72\xde\xae\xd5\xe2\ \x21\x69\x84\xb0\x0a\xe8\x2a\x11\xd2\x16\xac\x88\xa1\x7e\xee\x1c\ \x67\xf7\xfe\x2b\x37\x6c\xde\xc0\xf8\x0b\x2f\x50\x7d\xef\x75\xae\ \xd4\xcd\xf1\xca\x14\xd7\xfc\xfe\x10\x63\x13\x12\x78\x47\xb3\x75\ \xa2\x73\x84\x88\x9d\x13\xd5\x6c\x95\x10\x8d\x88\x2c\x88\xb4\xe7\ \xb6\xf3\x34\x2a\xad\xa6\xc8\x1c\x00\xa1\x1d\xa0\x5d\x82\x8b\x22\ \x4e\x3e\xf2\x5d\x76\x16\x03\x6a\x63\x63\x4c\x1f\x39\x42\x71\x60\ \x80\x91\xc9\x09\xb6\x7d\x79\x90\x4b\xb6\x77\x33\x3e\xb3\xec\xe5\ \x7c\xd3\xf7\xd1\x00\x82\x53\x55\xb5\xd6\x81\x71\xa8\x6a\xea\x80\ \x53\x30\x02\x4a\x9b\x3a\x03\x09\xa4\xf6\x5b\x87\x53\x6d\xb1\x01\ \xba\x8a\x03\xa7\xf7\x7f\x8f\xad\xf3\x13\xf4\x7a\x86\xc3\xcf\x3e\ \x9b\x36\x7f\x7a\x7a\x96\x03\x97\xdf\xc8\x67\x3f\xbd\x84\x30\x4f\ \x3e\x54\x4a\x61\xb0\xe6\x7c\x0e\x34\x9d\x4b\x87\x18\x63\x12\x8c\ \x8b\x68\x26\x80\x08\x46\x04\x45\x61\x95\xcd\xb2\xb5\xc6\xb5\x9a\ \x72\x9e\xe0\xac\x43\x55\x49\x6b\x05\xd0\x16\xb0\x0a\x18\xe3\x31\ \xf5\xca\xcf\x29\x1d\x7a\x9e\x4b\x87\x06\x39\xb2\x77\x2f\x61\x4f\ \x0f\x8b\xf3\xf3\xbc\xf1\xa9\x5d\xbc\xfd\x1b\x7f\x45\xc5\x7e\x13\ \xd0\x14\x20\x30\x72\x1e\x00\xd2\xd8\x93\x02\xa8\x03\x4d\x57\x89\ \x6c\xd1\xd2\x95\x65\x0d\x01\x59\xed\x3e\xd4\x56\x84\x7c\x03\xd6\ \x29\xa4\x00\x06\xa5\x05\xad\xd9\xee\xbf\x7c\x72\x8c\xc6\xfe\xc7\ \xb8\xf1\x13\x9b\x79\x77\xdf\x3e\x9c\xb5\x58\xe7\xf8\x9f\xbe\x21\ \x96\xbf\xfa\xf7\xd8\xe9\x5e\xaa\xb1\x0f\x28\xb9\xc0\xd1\x93\xcb\ \xf7\x0b\x82\xa2\xab\x03\x54\xe2\xa8\x99\xb8\x54\x18\xb5\xf8\x44\ \x69\x84\x14\xf0\x4c\xd6\x9f\x74\x8a\x91\xb6\xef\x37\x46\x70\x1f\ \x00\x18\x50\x97\x31\x42\xea\x48\x73\x69\x91\xe9\x47\xbf\xcb\xae\ \xcd\x83\xcc\xbc\xf4\x12\xe5\x33\x67\xf0\xfb\xfa\x18\xa9\x56\x59\ \xff\x8d\x6f\x73\x62\xeb\x15\x24\x33\xd3\x54\x93\x10\x55\x47\x2e\ \x84\xc0\x68\x3f\xe0\x01\x76\x55\x00\xeb\xd4\x25\xd9\x37\x31\xa9\ \x03\x96\x38\x1b\x62\x4f\xc8\x62\xf0\xd1\xf9\x17\x01\xb2\x38\xe9\ \x07\x00\x59\x6d\xc6\x8f\xda\x84\xf1\xef\x3d\xc0\x55\x79\x81\x53\ \xa7\x99\x3e\x78\x90\xfc\xba\x75\x1c\x9f\x9a\xa6\x77\xf7\x3d\xac\ \xbf\xf9\x37\x79\x61\x0c\xac\x17\x52\x89\xf3\xa8\x2a\x81\xaf\x94\ \x42\xd3\xe7\x1b\x13\xc4\xce\xae\x0e\x00\x24\xaa\xd8\x14\x20\x75\ \x20\xa6\x91\x64\x94\x66\x95\x9b\x44\x40\xda\x71\x20\x1b\x5a\x15\ \x41\x35\xdd\xab\xda\x00\x10\xc3\xa9\x27\x1f\x67\xd3\xf4\x49\x06\ \xbb\xf2\x1c\x7b\xfa\x69\xf2\x03\x03\x8c\x4f\x4f\x93\xfc\xd6\xef\ \x72\xd9\x1d\x7f\x46\xc5\x40\xec\xc0\x9a\x80\xb2\xed\x4a\x73\xed\ \x07\x4a\x21\xa0\xc7\x33\x26\x17\x3b\xdb\xe8\x04\x60\x55\x71\xa9\ \xf5\x6a\x11\x4d\x68\xae\x44\x28\x6d\xa8\xd5\x27\xed\x42\xb5\x8d\ \x43\xb2\xa1\x77\x19\x80\xcb\x86\x76\xfa\xf5\x57\x08\x5e\x79\x96\ \x5f\xdd\x3c\xc4\xe8\xc3\x0f\xe3\x17\x0a\xcc\x2f\x2e\x32\xbb\xfd\ \x6a\x76\xec\xbe\x87\xa0\xd0\x85\x9f\x28\x56\x21\x31\x3e\xe5\xa4\ \x0b\x55\x87\xef\x43\xce\xd7\x6e\x23\x92\x07\x96\x3a\xfd\x32\x67\ \x9d\x13\x67\xb3\x08\x79\xc4\x44\x16\x14\x41\xa4\x3d\x33\x6d\x2f\ \xf5\xc3\x81\xca\x2e\xab\x15\x07\x3c\xcf\x50\x99\x38\xcd\xd2\xbe\ \x47\xb8\xee\xe2\x61\xce\xfc\xf8\xc7\xc4\xb5\x1a\x0d\xe7\x38\xd9\ \xd3\xcf\xe5\xf7\xfc\x2d\xdd\x1b\x36\x22\xce\x11\x18\xc5\xa5\x00\ \x1e\x15\x5b\x4c\x23\xed\x79\xd0\x9d\xa3\x90\xf7\xfd\x22\x40\x27\ \x80\x58\x21\x49\x23\xe4\x2c\x46\x13\xea\x16\x12\xe5\xa3\x25\x00\ \xba\xda\xa2\x96\x02\x78\xc6\x90\x54\xcb\x4c\x3c\xfa\x6f\x5c\xbb\ \x61\x1d\x95\x57\x5f\x65\xf9\x9d\x77\x90\xee\x6e\x46\x6b\x75\x36\ \x7f\xe3\x5b\x5c\xb4\x63\x27\xa2\x16\x11\x08\x04\x10\x4d\x01\x96\ \x53\x00\xc5\x78\x90\xf7\x5d\x51\x90\xe2\x79\xae\x51\xc1\x39\x9b\ \x39\x90\x10\x5b\x58\xed\xf2\x51\x80\x8e\x60\xad\xef\x8e\x38\xb6\ \xe0\x2c\xa7\xbe\xbf\x97\xcb\x25\x21\x3f\x79\x8e\x13\x07\x0e\x10\ \xac\x5b\xc7\xe8\xd4\x24\xfd\x77\xef\xe6\xd2\xdb\x6e\x07\x5c\x2b\ \x7e\x06\x04\x88\xc5\x50\x71\x45\xac\x53\xc4\x28\xc5\x50\x73\xa5\ \x30\xec\x99\xab\x57\x3b\x02\xc4\xaa\x92\x58\xab\xa0\x16\x93\xad\ \x12\x89\x03\x3c\x30\x80\x18\xc1\x08\x69\x73\x88\x64\x30\x82\xb6\ \xa0\x10\x14\xdf\x13\x02\xdf\xa0\x62\x98\x38\xf4\x32\x3d\xef\x1e\ \x63\xb8\xb7\x87\xb1\xfd\xfb\xf1\xd7\xae\xe5\xf4\xf4\x0c\xa3\xbb\ \x7e\x87\xab\xee\xf8\x3a\x67\x6c\x89\xc0\x29\xa1\x40\xce\x28\x7e\ \x1a\x3d\x68\x58\x58\xb6\xdd\x24\x56\x11\x81\x7c\xe0\x42\x23\xf4\ \x7e\xe4\x36\x0a\xa8\xaa\x23\xdb\x87\x68\x3a\x68\xaa\xc1\x7a\x86\ \x72\x0c\x4b\x4d\x61\xae\x01\xe7\xde\x3f\x75\x58\x68\x40\x39\x82\ \x5a\x4c\xfa\x46\x46\xa1\x60\x60\x6d\x0e\x66\x26\x0b\x2c\x8d\xc7\ \x6c\x9a\x3b\xce\xee\xdb\x6e\x63\x7c\xcf\xbd\x88\xef\xb3\x50\x29\ \xf3\x4c\x71\x1b\x3f\xb9\x6c\x37\x0f\xfd\xb0\x89\x49\x96\x08\x34\ \x21\x47\x44\x41\x62\x8a\x12\x31\x5d\x89\xe8\xaf\x59\x0a\xde\x74\ \xea\x40\x50\x1c\x20\x97\xab\xfb\x40\xe7\x08\x35\x93\x24\x6e\xc4\ \x9a\x58\xa7\xa8\x3a\xc4\x36\x29\x4f\x47\xec\x79\x2a\x21\x8e\x13\ \x16\xaa\x09\xd5\x66\x4c\x14\xc5\x38\x1b\xa7\x33\x12\x18\x4b\x28\ \x09\x39\x9a\xe4\x68\x90\xd3\x1a\x35\x57\x61\xa9\x79\x0e\x77\xee\ \x24\x8d\x6a\x95\x0d\x57\x6f\x65\x71\xe3\xa5\x9c\xfa\xed\x3b\x08\ \x7e\xf8\x08\xa7\x8e\xbe\xc8\xb5\x5f\xbd\x9e\xeb\x7e\xe5\x20\x79\ \x79\x91\x9c\x49\x08\x4d\x44\x20\x09\x81\xc4\xe9\x09\xdf\x3f\x46\ \xe9\xf2\x63\xfa\xf2\xbf\x47\x34\x37\x47\x1c\x3f\x97\x28\x34\x3a\ \x02\x44\xd6\x2e\x55\x1b\x66\x36\x36\xf9\x61\x13\x7a\xfc\x5a\xe1\ \x0d\xc2\xca\xb7\x29\x36\x1a\x14\xc3\x98\x52\x18\x53\x2c\x59\xf2\ \xbe\x25\xe7\xc5\xf8\x1a\x61\x92\x26\x34\xab\x24\xb5\x0a\x71\xb5\ \x4e\xb3\x52\xa7\x5e\x69\xba\xca\x72\xb3\x79\x76\xd6\x9e\x99\xcf\ \x6f\xec\xda\xb2\xe1\xfa\x4d\xe3\xe3\x33\x9c\xf2\x72\x1c\x1f\xdc\ \xbc\x68\x16\x07\x2b\x1b\x0f\x3d\x1d\x74\x1d\xf9\x99\x97\x0b\x3c\ \xe3\xf9\x9e\xe7\xa7\xc7\xf7\xfc\xc0\xf7\x82\x20\x90\x30\x0c\xc4\ \x33\x62\xac\x55\xb5\x71\xac\x0b\x53\x93\xc9\x4b\xa7\xcc\xcf\xe7\ \x6a\xb5\xd7\x3b\x02\xd4\x93\x78\x61\x6c\xa6\xb9\xff\xe8\x89\xde\ \x1d\x61\x4f\xce\xec\x1c\x78\x9b\x1d\xee\x28\x71\xa4\xd4\xeb\x96\ \xea\xbc\xa3\x5a\xb6\x5a\xa9\x38\x7b\xb6\xec\x1a\xcb\x15\x2d\x2f\ \x57\x75\x71\xb1\xa6\xb3\x95\x06\x53\x4b\x75\x7b\x76\xb9\xe9\x26\ \xca\x4d\x7b\xb6\x12\xc5\x93\x4d\x64\xf6\xa6\x2f\x5e\xf1\xcf\xdd\ \xdd\x03\x9b\x0e\x1f\x7e\x2b\x7e\xf9\xe5\xe7\xfe\xeb\x8d\x43\x2f\ \x7d\xa7\xba\x38\x77\x8a\xe3\x84\xf9\xf7\x7b\xf5\xbc\x00\x25\x04\ \x0d\x20\x7d\x86\xc5\x20\x08\x43\xcf\x84\x40\x1e\xb0\x0a\xcd\x72\ \x94\x2c\xce\x37\xea\x87\x2b\x51\x34\xdb\x11\xc0\xa1\x1c\x9c\x98\ \xfe\xa7\xf8\x49\xad\x6e\x3b\x18\xde\x58\x08\xa5\xc7\x39\xb5\x8d\ \x48\xab\xe5\x86\x9b\x5d\xaa\xdb\x89\x5a\xe4\x26\xca\x51\x72\xb6\ \x1a\xc5\x53\xf5\xc4\x9e\x6b\x24\xf1\x62\xe4\x5c\xd9\xa1\x4d\xc0\ \xd2\x12\x43\x43\x5b\x3e\xff\xc9\x4f\x6d\xbf\xe6\xb5\xd7\x5e\x3e\ \xf3\xc4\x13\x3f\xf8\xce\xe8\xe8\x91\x07\xa2\xa8\xb9\x44\xa6\xe5\ \x88\x8f\xab\xf6\x9f\xd7\xf7\xec\xd9\xc3\x83\x0f\x3e\x88\xef\xfb\ \x04\xc6\xcf\x79\x46\x42\x40\x9d\x6a\x9c\x38\x1b\x59\x55\x45\xdb\ \x57\x67\x44\x10\x3e\x2c\x55\x65\xfd\xfa\xa1\x2b\xb6\x6f\xbf\xe6\ \xee\x91\x91\x23\x7b\xcf\x9c\x39\x71\x00\x14\x10\x3e\xae\xac\xb5\ \xec\xda\xb5\x8b\x7b\xef\xbd\xb7\xfd\x0f\x8e\xbb\xee\xba\x8b\x3b\ \xef\xbc\x93\x4c\x4d\x85\x26\x1f\xef\x2d\x7f\x21\x62\xee\x76\xce\ \xaa\x88\xf0\x7f\x29\xdf\xf7\xd3\x03\x70\xe1\x9f\xfa\xff\x5f\x5d\ \x00\xb8\x00\x70\x01\xe0\x7f\x01\x6e\xa9\x93\x7a\xf5\x39\xfe\x18\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x0f\x35\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x0e\xfc\x49\x44\x41\x54\x78\x5e\xed\x98\x79\x70\x55\x65\ \x9a\xc6\x7f\xe7\x9c\xbb\x24\x37\xb9\xd9\x37\x92\x90\x18\x93\x10\ \x96\x48\xd8\x09\x22\x8b\x08\x11\xd3\x80\x8a\x2c\x3a\xed\x82\xda\ \xd3\x6a\xab\xd3\x33\xea\xf4\xd0\x5d\x6d\x4f\x4f\x4f\xd9\x5d\x6d\ \x77\x57\x97\x4d\x4d\x6b\x4f\xd9\xa3\xa3\x08\xa3\xd0\x2c\x12\x44\ \x90\x45\x16\x43\x00\x21\xec\x4b\x02\x04\xc8\x9e\x7b\x73\xf7\xfd\ \xdc\x73\xbe\xb9\x4d\x4e\x0d\x50\x4c\xb5\x50\x53\x16\x76\xd5\x3c\ \x55\x4f\x9d\xf3\xd7\xbd\xef\xef\x3c\xef\x7b\xdf\xef\x5c\x49\x08\ \xc1\x5f\xb3\x64\x6e\xad\xfe\x1f\x00\x21\x04\x86\xb9\x11\xfd\x0d\ \x54\x3f\xae\x28\xbf\x79\x31\x2b\xbb\xf9\xbb\x66\xf3\x67\xf3\xe1\ \x1e\xc0\x0a\x48\xb7\xa0\xf6\x9b\x4b\xe0\xdb\xf0\x5c\x69\x61\xd1\ \x9e\xc5\x23\x47\xbe\xf4\xb3\xa5\x4b\x47\xbd\xba\x71\xe3\xcc\x91\ \xd9\x19\xab\x07\xdb\x27\x3c\x42\xd5\x3f\xd6\x00\x26\x40\xfa\x46\ \xb6\xd0\x63\x92\x54\x37\xaa\x72\xc8\xef\x9f\x28\x2b\x49\x1f\x23\ \xfa\x49\x3e\xb3\x8b\xe2\x21\xe5\xd4\xbf\xf2\x52\xc6\xa0\xaa\xd1\ \xef\x24\x55\x4d\x6c\x34\x8d\xfc\xf9\x07\x96\x92\x05\x15\x80\xf9\ \x1b\x07\x90\x6c\x32\x3d\x39\xdd\x22\x93\x67\x76\x91\x77\x67\x29\ \xe6\x54\x0f\x2d\x9f\x6d\xe4\xc2\xdc\x17\xf9\x43\xc3\x1b\x6c\x7f\ \x6b\x5e\xf2\xd8\x05\x73\x16\x91\x76\xc7\x3b\xc8\xe6\x5c\xc0\xf2\ \x8d\x02\x90\x55\x35\x68\x8b\xbb\xc8\xac\x4a\x27\x54\x54\xca\xd1\ \xfa\x1f\x71\x62\xda\xd3\x64\xa7\x58\x28\xce\xb0\x32\x69\x90\x99\ \x67\xe7\x55\x93\x3f\x62\xdc\x64\xd3\xa0\x39\x0f\x00\x76\x40\xfe\ \xc6\x00\x1c\xb5\x8f\xd8\xb3\x3f\x35\x97\x8f\x87\x3e\xc6\xaf\x86\ \xbf\xce\x7b\xd2\x4c\xf6\x6c\x5c\xc3\xb9\x9d\x6b\x59\xf3\x5f\x2b\ \x69\xf8\xbc\x99\x9a\x0c\x95\x9f\x3d\x3a\x8e\xbc\x92\x09\xdf\x97\ \x53\x6e\x2b\x05\xac\xdf\x0c\x80\x71\x7f\x94\x1a\x87\xbd\x30\xf3\ \x9f\x47\xff\x8e\xc7\x7a\x9f\x67\x45\xdb\x20\x0e\x7c\xf6\x19\xc3\ \x93\x83\x2c\xbe\xff\x7e\xe6\xd5\x4d\xe3\xdc\xb1\xbd\x44\xbb\x0e\ \xb0\x64\x4e\x1e\x8b\xea\xa7\x0d\x91\x73\xee\x7e\x0a\x48\x07\x94\ \x5b\x0f\xa0\xab\xc9\x58\x93\xa6\x5d\x6a\x8e\xe3\x3b\x7c\x89\x1e\ \x17\x04\xfc\x1e\x0a\xf2\x8b\xe8\xe8\x74\x93\x9d\x53\xc0\xb3\x7f\ \xfb\x34\x87\x0e\x1d\xe1\x8b\x3d\x8d\x3c\xff\xe8\x24\x86\x0d\x9f\ \xf0\x98\x29\x7b\xe2\x68\xc0\x76\xcb\x01\x64\x49\xa8\x72\x24\xd2\ \xcf\x85\x0b\x70\xb1\x95\xf4\x90\x8b\x7c\x2d\x48\x47\x57\x0f\xfd\ \x2e\x1f\x9d\x9d\x7d\x09\x3e\x2b\x4b\x9e\x5c\x42\xf3\xe1\x66\x22\ \xfe\xf3\xbc\xfc\x9d\x39\x69\x49\x39\x13\x9e\x03\xb2\x00\xf3\x2d\ \x05\xd0\x0f\x3e\xa7\x4a\x51\xd7\x3b\x92\x25\x42\x65\x5e\x94\x07\ \x94\x3e\x06\xc5\xad\x9c\x3c\x73\x86\x68\x34\x8a\xd3\xe9\xc3\xe3\ \x09\x60\xb3\xd9\x98\x3b\x67\x2e\x1b\x36\xac\xe2\xae\xd1\x39\xcc\ \x98\x3a\x6d\x96\x39\x77\xda\x9d\x40\x0a\x20\xdd\xd2\x21\x16\x7d\ \x3b\x97\x9b\x0a\xf4\x96\xe2\x64\x8d\xb8\x2b\x80\x39\xa9\x94\xf6\ \x0e\x27\xbd\xbd\x9d\x78\xbd\x41\xfa\xfa\xbc\xc4\xe3\x1a\xa5\xb7\ \x95\x30\x7c\x44\x35\x3b\xb6\xae\x62\xc9\x43\x93\x93\x32\x06\xd5\ \xbe\x2c\x49\xa6\x5c\xc0\x72\x4b\x01\xf4\x9e\x2d\x1e\x3d\xd2\xf3\ \xda\x59\x4f\xaf\xe8\x77\xfb\x49\x32\xe7\xa1\xc6\x0b\xb9\x74\xe9\ \x2c\x1e\x8f\x0f\x97\xeb\xcf\xf6\x03\x70\xef\xbd\xb3\xe8\x73\x74\ \x61\x57\x7a\x78\xe4\xc1\xfa\xb1\xd6\xe2\xf9\x8f\x03\x69\x80\x7c\ \xcb\x00\x00\x4d\x3b\xf5\xcb\x55\x7d\x21\xc7\xb6\x76\xaf\x93\x70\ \x20\x4c\x8a\x6d\x04\xe7\xce\x9d\xc5\xeb\x75\x25\x1c\xc4\xe1\xf0\ \x12\x89\xc4\x48\x4a\xb2\x24\x20\x66\x73\xe4\xc8\x1e\x1e\x9e\x33\ \x86\x82\xb2\x71\x4f\xa5\xd9\xf2\xcb\x80\x24\xbd\x12\x93\x5a\x4e\ \xa6\x77\x28\x63\xbc\xa3\x52\x1f\x70\x54\x5b\xe6\xee\x2e\xa1\x08\ \x50\xbe\x6e\x00\x80\x68\xd4\x7f\x76\xe9\x05\x5f\x9f\xc7\xd9\xdf\ \x4f\xaa\xad\x82\x96\xd6\xfe\x44\x0a\x2d\x78\x3c\x6e\xdc\xee\xc0\ \x65\x08\x21\x60\xf4\xe8\x91\x98\xcd\x32\x5e\xe7\x31\x9e\x7d\xf2\ \xa1\xc2\xfa\xc1\x35\x6f\xb9\x66\x94\xae\x88\xcd\xbc\x6f\x1f\xdf\ \x7f\xa9\x35\xe5\xe7\xaf\x35\xd9\x97\xbd\xb4\x36\xfb\x0f\xbf\xfa\ \x78\xc2\xec\xba\xfd\x33\x2c\xcc\x07\x6c\x80\xfc\xb5\x9e\x46\x01\ \x0b\x23\xfe\xe5\xb7\x23\xa6\xac\x10\x4f\x3e\x7e\x50\xdc\x57\xff\ \x5b\xb1\x60\xe1\xc3\xe2\xcd\x37\x3f\x14\x9f\x7c\xd2\x24\x0e\x1d\ \x6a\x15\x81\x40\x58\xfc\x59\xfb\x9a\x0e\x89\x1f\xff\xf8\xa7\xa2\ \xe5\xbc\x10\x8b\x9f\x7c\x57\xb4\x7c\xf1\x92\x10\xde\xef\x0a\xe1\ \x79\x58\x88\xde\xe9\x42\xb4\x8f\x14\xc2\x31\x5b\x88\x4b\x9b\xc4\ \x6f\x6e\xcf\xdc\x0b\xdc\x0e\x24\x7d\x6d\xa7\x51\x31\x1c\xb9\xaf\ \x82\x8c\x5f\x85\x57\x34\xeb\xbe\x73\xb1\x0b\x0e\x07\x45\x85\x53\ \xe9\xe8\x80\xd6\xd6\xc3\xb8\xdd\x6e\xa3\x95\x3c\xe8\xba\xa0\x66\ \x54\x35\x56\x6b\x12\x8e\xae\x23\x3c\xf8\x60\x3d\x6f\xad\x6b\x43\ \xf8\x1a\xc0\xb5\x0f\x7c\xdd\x10\x8e\x43\x7f\x2b\x64\xb7\x33\xaf\ \x7e\x76\xcd\x44\x99\x45\x2b\x0b\x18\xdf\x57\xce\x28\x77\x39\x35\ \xff\xe3\x0a\x6a\x7a\xcb\x29\x37\xd2\x91\xb8\x4a\xa6\xbf\x50\xac\ \x35\xa2\x52\x88\x42\x85\x96\x92\x51\xa9\x64\x0d\xaa\x52\x07\x97\ \x8c\xcf\x29\xce\x1c\xf6\x72\x85\x3d\xb9\xc0\x1d\x35\xff\xe0\xfd\ \x0e\x0a\x33\x32\x28\x2a\x9e\xcf\xe1\x23\xcb\x29\x29\x19\x42\x4a\ \x4a\x0a\x4e\x67\x32\x69\x69\x29\x64\x65\xd9\x19\x37\x6e\x1c\xbb\ \x76\x6f\xe6\xd9\xef\xfd\x80\xd5\xeb\x17\xb3\x75\x77\x07\xb3\xa6\ \x7b\x20\x68\x02\x64\x10\x16\xf0\x6f\xa1\x6c\x5a\x6d\xf2\xea\x93\ \x3b\x5e\x2b\x7c\xa8\x26\x2e\xe9\x3a\x48\x02\x84\x00\x74\x00\x88\ \xc9\x9a\x7f\xc7\xd1\x3d\x4f\xec\x74\xbc\xb2\xc6\xcf\x69\x20\x06\ \x70\xcd\x3b\xb1\x36\x5a\xb2\xe9\x92\xb2\x98\xc1\xd5\xd3\xa5\x92\ \x41\x13\x95\xa2\x82\xc1\x52\x45\x9a\x8d\x11\x69\x50\x6c\x01\xeb\ \x25\xb0\x9c\x02\x7a\x88\x85\x82\xcc\x7f\xfe\x21\xfa\xdb\xea\x19\ \x39\xa4\x84\xd3\x2d\xef\x52\x32\xb8\x9f\x59\xb3\x1e\xa2\xa8\xa8\ \x90\xe2\xe2\x5c\x2a\x2a\x8a\xe8\xef\xf7\xf0\xeb\x5f\xff\x9a\x57\ \x5f\xfd\x09\x3b\x9b\x22\xac\x58\xfe\x13\xfe\xfd\x07\x5b\x49\x4d\ \x96\x41\x55\x40\x48\x20\x03\xf2\x0b\x74\xff\xeb\x32\x4c\x3f\x14\ \xe4\x16\xa7\x80\x0a\x08\x19\x74\x09\x74\x1d\x92\xf3\xe1\x74\x31\ \xff\x34\xf7\xcd\x95\xaf\xf7\x6a\x2f\x03\x4e\x21\x84\x2a\x73\x95\ \xce\xc6\x6d\x6f\x98\x7f\xb9\xec\x3f\xcc\x1f\xde\xf9\xb8\x69\x59\ \xb0\x4a\x5a\xda\x68\x13\x0b\xb6\x11\xab\xfc\x9c\x10\xdb\xf0\xf9\ \x5b\xf0\x39\x74\xe2\x9e\x10\x16\x93\x8f\x9f\x3e\xb3\x1d\x67\xec\ \x1c\x0e\x87\x8b\xca\xca\x05\x9c\x38\xe9\xe6\xf0\xe1\x2f\x08\x06\ \x43\x89\xc2\x7d\x38\x9d\x5e\xf2\xf2\xb2\xc8\xce\xce\xa5\xb5\xf5\ \x04\x75\xd3\x33\xc8\x1d\xbc\x90\x15\x9b\x0a\xc1\xaa\x03\xd2\x00\ \x40\x2c\x06\x39\x1d\xa4\xd5\xdc\x8f\xef\xc3\x56\x84\xcf\x05\x2e\ \xf7\x80\xdd\x9e\x84\xbd\xe0\xec\x84\xac\x24\xcc\x16\xa5\x08\xc8\ \x03\xac\xd7\xed\x81\x1e\xcd\x54\xc6\x88\x4a\x48\x7a\x17\x44\x23\ \x9a\x3a\x8c\x48\xa0\x8e\x88\x6f\x1a\xe1\xd0\x64\xc2\xe1\x5a\x7c\ \x81\xc9\xf4\xf6\xcf\xa6\xab\xe3\x3e\x4a\xf2\x2b\xa8\xa9\xbe\xc8\ \xd9\xee\x1e\xd0\xac\xd4\x8c\xfa\x1e\xdb\x77\xec\xe3\xec\xd9\xe3\ \x44\xa3\xda\xe5\x0d\x2d\x04\x14\x14\xe4\x71\xfe\x7c\x1b\x16\x33\ \x3c\xb1\x78\x12\x8d\x67\xa6\xe2\xee\x56\x40\x11\x20\x64\xc0\x0a\ \xae\xfd\xd8\xa6\xd5\xa0\x1c\xb6\x11\xf6\x09\x90\x4d\x20\x94\x2b\ \xc6\x04\x71\x9d\xb8\x86\x04\xd8\x00\xd3\x75\x00\xbf\x6b\xf5\xad\ \x64\xe5\x36\xe0\x69\xd0\xed\xe8\xda\x1d\x40\x1a\x12\x1a\x12\x31\ \x24\x29\x86\x9c\x70\x5c\x4f\x49\x00\xe5\x13\x0c\x15\xf0\xd4\x3c\ \x2f\x9a\xb5\x8d\x8e\x9e\x5e\x52\x6d\xc5\x8c\x1c\xf5\x22\xab\x56\ \xaf\x67\xff\xbe\x44\x6a\x21\x95\x48\x04\x34\x2d\x4e\x44\x95\x00\ \xa8\xae\x32\x31\xb4\x7a\x1e\xcb\x56\x95\x81\xa2\x5f\x19\x45\x7f\ \x27\x52\x69\x1f\xa9\x65\x75\x78\x8f\x78\x41\x91\x07\xe0\x84\x64\ \x5c\x65\xb8\x32\x11\x12\xc0\x75\x00\x5b\xe2\x34\xb4\x7c\xbc\xb6\ \x8b\xe0\x4c\x90\x47\x00\x80\xd0\x00\x8c\xb8\x07\x2c\x21\x90\x64\ \x0d\x55\x15\x0c\xbf\x2d\xc6\xb7\xa6\x77\x70\xd1\xd9\x83\xab\xdf\ \x4d\x6e\x4e\x35\xd5\xa3\x5f\xe0\xa3\x35\x9f\xf2\xf6\xdb\xbf\xe3\ \x0f\x6f\xfd\x1b\x3b\x77\x35\x52\x55\x3d\x89\xb8\x0e\x16\x0b\x2c\ \x7a\xa0\x86\xe3\x5d\x75\x89\xc1\x4f\x01\x8b\x91\x82\x50\x20\x7c\ \x00\xfb\xcc\xfb\xf0\xed\x8d\xa3\x6a\xc6\xf7\xe9\x97\x6d\x40\x30\ \x60\x10\xff\x2b\x40\x00\x9c\x6f\x1f\x3a\xb3\x92\xcd\xe7\x41\xaa\ \x37\xf8\xc4\xf5\xe7\x30\x01\x88\xcb\x18\x44\x63\x32\x0b\x67\x78\ \xc9\xcd\xbf\x40\xb7\xc3\x8b\xc7\xe5\x49\x40\x0c\xa3\xfe\xc1\xd7\ \xe9\x0f\xe6\xd1\xb0\xf5\x00\x77\xdc\x39\x9f\xf4\x9c\x42\xbc\x01\ \x00\x28\x29\x96\xf8\xd6\x9c\xfb\x79\x73\x7d\x25\x42\x05\x24\x40\ \xb2\x80\xfb\x14\xd6\x61\x32\x96\x4b\x85\x78\x2f\x86\x41\xb9\xaa\ \x85\xf4\x01\x20\x21\xfe\xf2\x26\xd6\xd6\x06\xf8\x53\x70\xfd\x27\ \x2a\xfa\x50\x90\x54\xc0\x20\x37\x9e\xfe\xb5\x69\x40\x3c\x2e\x91\ \x69\x17\xdc\x7b\x57\x37\xed\xee\x76\xfc\xfe\x30\x3e\xb7\x1f\x59\ \xb7\x31\xf5\x9e\x67\x79\xf4\x99\x37\x18\x31\xf6\x5e\x3c\x7e\xf0\ \x87\x21\x1c\x03\x93\x02\xb3\x67\x0c\xc6\x94\x31\x87\xbd\x07\x6d\ \x60\xd1\x07\x8a\x54\x55\xb0\x9e\x24\xbd\xbc\x16\xef\x6e\x97\xd1\ \x46\xd2\x55\x06\xfd\x2b\x00\x38\x0b\x5f\xae\xdc\xbe\x67\x0b\xe7\ \xf3\xc0\x5c\x00\x42\xbf\xaa\x70\x0c\x10\xae\x80\x20\x11\x8e\x2a\ \xd4\x4d\x08\x52\x71\xfb\x59\x2e\xf5\xf4\x12\xf2\x47\xf0\x7b\x42\ \xf8\x5c\x41\xa2\x41\x1d\xbf\x37\x46\x82\xeb\xb2\x3d\x01\xd0\x04\ \xe4\xe5\xc0\x82\x87\xea\xf9\xe3\xe6\x1a\x02\x1e\x19\x64\x01\x58\ \xc0\x73\x9c\xf4\x85\x33\x89\x1d\xb2\xe2\x77\x19\x0f\xd0\x68\x21\ \x00\xbe\x0a\x00\x88\x2f\xef\x8a\x2c\xd7\xb7\xee\xc2\x24\x57\x22\ \x84\x0e\xd2\xd5\x09\x5c\x65\x03\x44\xd7\x25\x6c\x49\x82\x45\xb3\ \xfa\x70\x87\x2f\xe0\xf6\x04\x09\x07\x55\x42\xbe\x28\x7e\x6f\x98\ \xa0\x2f\x42\x30\xac\x13\x8c\x42\x20\x02\xa1\x84\x25\x09\x26\x8e\ \xb5\x93\x7d\xdb\x1c\xd6\xef\xc8\x00\xb3\x00\x4c\x10\x70\xa0\x94\ \x6b\xa4\xa5\x8e\xc1\x73\xd0\x05\x66\x05\x84\x6c\x18\xc4\x0d\x00\ \x88\xfd\x3a\xdb\x8e\xbd\xf7\x6e\xbb\xe4\x06\xd9\x14\x42\xe8\xe6\ \x6b\xfb\x1f\xae\x6b\xa5\x48\x54\xa1\xa6\x32\xca\x94\x71\x6d\x74\ \x3a\x7a\x2e\x17\x1d\x0a\x44\x09\x25\xae\x41\x6f\x84\x80\x37\x01\ \x13\x1e\x00\xf0\x27\x0c\x60\x92\x60\x42\xcd\x18\xd6\x37\x8d\xc0\ \xe3\x30\x81\x0c\xe8\x32\x78\xf7\x90\x71\xdf\x4c\x42\xfb\x22\xe8\ \x9a\x74\xd3\x00\x84\xa1\x7f\x6d\x73\xeb\xa7\x34\x76\x63\x49\xf1\ \xa3\xd0\x81\x10\x56\x23\xc6\x2b\x69\x5c\x0b\x02\xe8\x32\xf3\xa6\ \xba\x89\xcb\x2d\x38\x5c\x5e\x42\xfe\x68\x02\x24\x46\xa2\xf8\x84\ \x13\x10\x41\x8d\x70\x1c\xbc\x1e\xc1\xd6\x6d\x2e\x7e\xf1\xc6\x49\ \x96\x35\x5c\xe4\x54\x4f\x06\xf1\x28\x80\x34\x30\xcc\xce\x53\xa4\ \x4c\x2b\x45\x8a\x56\xe0\x6a\x0f\x82\x6c\x0c\x31\xd2\x8d\x01\x00\ \xfa\xf2\x08\xef\x38\x56\x6e\x88\xc8\x6a\x39\xc9\x96\x35\x58\x94\ \x36\x84\x30\x27\xac\x60\xe8\xba\xc1\x56\xe3\x12\x85\x39\x1a\x93\ \x47\xb5\xd3\xd9\xdf\x4e\x20\x01\x10\x0e\xc4\x2e\xb7\x52\xc8\x1f\ \x43\x4d\xdc\x77\xb5\xfa\xf8\x68\xf5\x69\xd6\xed\x6e\x21\xb5\x58\ \x67\x74\x5d\x15\x4a\x65\x2d\xd1\xb0\x74\xa5\x24\x35\x0e\x9c\x22\ \xad\x7c\x02\xce\x5d\xce\xab\x86\x99\x1b\x06\xe0\x1c\x1c\x6c\xd8\ \xb4\x69\x0f\x87\x73\x90\x93\xd3\x48\x35\x37\x60\xb7\x36\x21\x4b\ \x2a\xba\x6e\x06\xfd\xba\x5f\x24\x03\x42\x66\xde\x14\x1f\xd9\x59\ \xa7\xe8\xea\x73\x10\x4c\x40\x44\x82\x2a\x22\x18\xe5\xe8\xfe\xf3\ \x2c\xdf\x7a\x92\x6e\x1b\xcc\x9e\x57\xce\x92\xb9\x95\xfc\xc3\xec\ \x74\x46\xcd\xb8\x87\xd5\x27\x6a\x40\x52\x41\x18\x29\x38\x0e\x90\ \x39\x79\x08\xea\xde\x38\x21\x9f\x06\xd2\x8d\x0f\xb1\x21\xd4\x95\ \xae\xe8\x07\xb1\xed\x97\xc0\x32\x0f\x89\x08\x36\xcb\x61\x72\x52\ \x36\x93\x6a\xbd\x88\x40\x42\xd7\x2d\x09\x2b\x08\x71\x65\xa8\xb5\ \xb8\x84\xdd\x26\xa8\xbf\xb3\x07\x77\xa0\x8d\x60\x30\x86\x1e\x53\ \x69\x3c\x76\x89\x0d\xed\x21\xcc\x95\x25\x0c\xb9\xe3\x36\x32\x73\ \xb3\xb1\x24\x59\x29\xcd\x82\x05\xb5\x0a\x7b\x7d\xf7\x10\xee\x17\ \x20\x63\x6c\x66\x37\xd6\xe1\x66\x6c\x79\x63\xe9\x69\x76\x82\xa2\ \xdc\x5c\x02\x80\xd8\x0e\x6b\xf7\xac\xdb\xd8\x42\x60\x3a\xc8\x29\ \xa0\x9b\x31\x2b\x6e\x72\x52\x1b\x29\xcc\xd8\x43\xb6\xbd\x95\x14\ \xab\x1b\xb3\xa2\xa2\xeb\x32\x30\x00\x12\x55\x65\xc6\x0f\x0f\x33\ \xb4\xac\x95\xf6\xee\x4b\x34\x1d\x3f\xce\x41\x0f\xa4\x96\x54\x91\ \x9a\x99\x4b\x94\x24\x9c\x11\x99\xbe\x10\xe8\x02\xa6\x94\x41\x56\ \xe5\x34\xfe\xb3\xb1\x1c\x94\xb8\xb1\x81\x65\x88\xb4\x92\x33\x67\ \x36\xfe\x2d\xfd\x68\x9a\x31\x03\x88\x1b\x06\x40\x03\xff\xba\x83\ \x87\x37\xb2\xc5\x01\xa9\xb5\x20\xd4\xcb\x10\x08\x85\x64\x8b\x83\ \xbc\xb4\xe3\x94\xe5\x7d\x49\x55\xd1\x7e\x72\xec\x7d\x68\x9a\xe9\ \x72\x1a\x42\x97\x90\x25\x99\xb9\x53\xfa\x48\x49\xda\x41\x4f\xf7\ \x51\xec\xb2\x8c\xac\xd9\xf0\x85\xcd\xb8\x82\x12\x7d\x7e\xe8\x09\ \x80\x2f\x06\xe9\x56\x58\x34\x23\x93\x4d\xbe\x85\xb8\x7b\x74\x90\ \x8d\xcd\xdc\x7d\x0a\xfb\x84\x5c\x4c\xbe\x02\x7c\xed\x01\x50\x64\ \x74\x9d\x1b\x07\x00\xf4\xad\x2a\xeb\x1d\x1f\x6d\xd1\x91\x1e\x00\ \xc4\x55\x5b\xd9\x04\xba\x09\x49\x80\x49\x56\xb9\x2d\xbf\x95\xa2\ \xac\x2e\x40\xba\x9c\x46\x4c\x95\xc9\xcf\x8a\xf3\xf7\xdf\xee\xe2\ \xe9\xfb\xce\x20\x3b\x0e\x13\x71\xfa\xf0\x79\xc1\x1d\x80\xfe\x20\ \xf4\x25\xec\x0c\x83\xaa\x43\xed\x60\x28\xbf\x63\x0a\x1f\x34\x66\ \x83\xa2\x0d\xa4\x10\x0d\x21\x9b\xdb\xc8\x9e\x3d\x17\xc7\x3e\xa7\ \xb1\x8f\x6e\x0e\x80\x53\xd0\xb4\x76\xcb\xe6\xcf\x39\x6a\x87\xe4\ \x52\x10\xda\xb5\xa7\x44\x24\xd0\x15\x24\x21\x51\x9a\x7f\x89\xe1\ \xc5\x6d\x58\x4d\x71\x84\x2e\xa3\xaa\x0a\xe8\x32\xa3\x87\x85\xb8\ \xbb\x62\x17\xd1\x8b\x47\x08\xb9\xe2\x97\x01\x5c\x41\x70\x18\x10\ \x9e\x28\x24\x29\xb0\x60\x7a\x16\xcd\xb1\x69\xa8\xde\x08\x24\xdb\ \x20\x73\x10\x98\x6d\x98\x52\x53\x71\x74\xc5\x20\x2e\x00\xe9\xe6\ \x00\x80\xd8\x07\xee\xe0\xfb\xc1\x95\x9f\x43\xd2\x44\x10\xea\xb5\ \xe7\x13\xdd\x58\x32\xba\x02\x9a\x4c\x76\x9a\x97\xb1\xe5\x6d\x8c\ \x2c\xeb\x22\x33\x35\x42\x54\x55\x12\x36\x33\x71\xb8\x83\xfc\xd8\ \xa7\x84\x3a\x7b\xf0\x7b\xc1\x13\x34\x20\x42\xe0\x8e\x80\x06\x4c\ \x28\x01\x7b\xc9\x04\xce\x47\x66\xe1\xef\x1e\x43\xe7\xd6\x4c\xce\ \xfc\xa2\x89\x63\x9b\xdf\x25\x7f\x46\xb1\x71\x98\x13\x37\x0d\x20\ \xf6\xc3\xa6\xa6\x8f\xb7\xb6\xe1\xa9\x05\x93\x0d\x84\x00\xfd\xda\ \x1d\x00\x92\x01\x22\x93\x64\x89\x91\x9f\xe9\x65\x5c\x45\x27\x43\ \x8b\x9d\xc8\x44\xb1\xd8\x14\xea\xc6\x9c\x40\xe9\xdb\x4d\xa0\x37\ \x86\xcb\x3f\x00\xe0\x4c\xb8\x3f\x0a\xe7\x9d\x3a\x0d\x9f\x1d\xe3\ \x74\xf3\x21\x36\xfc\x7e\x03\x9d\x8d\x1f\xe1\x09\x6c\x47\xa9\x3a\ \xcd\xc8\x67\x06\x53\x51\x99\x05\x9a\xb8\xee\x30\x67\xe2\x06\x14\ \x01\xc7\x1f\x5b\x5b\xdf\xbf\x7b\x9f\xf2\x13\x79\xe6\x04\xe8\x6b\ \x04\x6c\xc6\xf6\x15\x46\x5b\xe9\x20\x19\x11\x9b\x52\x13\xce\xc0\ \x9c\x91\xcb\xb0\xac\x0c\xf2\xd2\xd2\x69\xfa\xc2\x47\x2e\x21\x86\ \xf8\xd7\x71\xf4\x4c\x19\xb6\xbc\x5a\xfa\xed\xe0\x08\xc0\xa6\x9d\ \xad\x9c\xdc\xde\x40\x41\x72\x88\x39\x63\xcb\xb9\x9d\x22\x86\xde\ \x15\x80\x98\x15\x34\x19\x62\x3a\xa8\x3a\x24\x2b\xc8\xc6\x88\xdf\ \x14\x00\xa0\x7f\xae\xb3\xae\xfd\x83\x86\xa5\xa5\xf5\x77\x5b\x50\ \x76\x80\x26\x81\xd9\x0e\xd6\x0c\x90\xed\x10\x4d\x87\x58\x36\x44\ \xd2\x88\xf4\x26\x13\x71\xda\x89\xb8\x34\x02\xdd\x1d\x44\x7b\x4e\ \x90\x2f\x5c\x68\x85\xe9\x4c\x9d\x1e\xc1\x7f\xf2\x23\x3a\xcf\x55\ \x62\x32\x65\xd2\xba\x7d\x1d\x7a\xcb\x26\xbe\xf3\x48\x1d\x4b\x9e\ \x5a\xc8\x97\x07\x4e\x93\xd2\xb9\x01\xcc\x49\x20\x19\x2f\xfd\x16\ \x01\xe9\x99\x70\xd2\x83\x27\xa6\xc5\x00\x71\xb3\x00\x74\xc3\xb1\ \x95\x6b\xd6\x6d\x59\xba\x6a\xd2\x1c\xea\x7e\x08\xd1\x30\x38\xad\ \x78\x9b\xfb\xf0\x9c\xe8\xa7\xbb\xad\x4f\xef\x3d\x7f\x40\x04\x3b\ \x1c\x42\x8e\xc7\x31\xa7\x98\xb1\xa6\xd9\xb0\xe7\xa6\x91\x94\x93\ \x9a\xb8\x4f\xa3\xfc\x02\x14\x07\x25\x52\x2f\x6e\x62\xf9\x09\x97\ \x7c\xe0\xd0\x10\x79\x52\xf6\x69\x1e\x7b\x6a\x01\x93\x26\x4f\x02\ \xe0\x68\xe3\x41\xca\x76\xb7\xc5\xf5\x54\x13\x42\x12\x80\x40\x42\ \x10\x0c\xb5\xaa\xef\x6d\x3d\xd9\xba\x56\xd5\x3f\x05\x22\x80\x76\ \x53\x00\x80\xf6\xd3\x58\xec\xef\x76\x3e\xfa\xca\xd9\xf1\x55\x23\ \xa7\xfa\x62\x31\xf9\x44\x67\x47\xcf\x85\x90\xaf\xab\x17\xe1\x08\ \x81\x5f\x87\x88\x34\x10\xba\x90\x9d\x00\x20\xb8\xf6\x2a\x19\x27\ \x7c\xc1\xe9\xe4\xec\x82\xb1\x0b\x0b\x86\xd5\x8f\x89\x69\x92\x0c\ \x02\x80\xed\x4d\xcd\xdd\x1f\xfe\x69\xef\xef\x81\x90\x51\xa4\x00\ \x24\x01\xaa\x06\x3d\x40\x37\xe0\x00\xa2\xd7\xfd\x2f\x24\x49\x12\ \x5f\x21\x33\x90\x09\xe4\x01\x69\x46\x3d\x2a\x10\x31\xae\x71\x40\ \x07\x04\x37\x20\x49\x92\x93\x8b\x8a\x6a\xa7\xe4\xe4\x14\xd4\x8e\ \x1f\x3f\x66\x54\x51\x51\x41\xf6\xfb\xef\xaf\x68\x38\x77\x6e\xfb\ \x7a\xa0\x13\x08\x72\x45\x02\x88\x1b\x60\x01\x20\x26\x12\xba\x59\ \x00\x23\x35\x2c\x86\x25\x40\xc3\x28\xdc\xb0\x30\x7c\xa3\x9f\x95\ \x02\x64\x00\x69\xc6\xbd\x00\x1c\xc6\x93\x0e\x73\xad\xc4\xd5\x0f\ \x48\x08\x81\x89\x9b\x57\xdc\x70\x88\xff\xbb\xe2\x46\x2b\xf8\x01\ \x8b\x91\x30\x40\xd4\x48\x55\xe7\x2b\x64\x24\xf0\xd7\xab\xff\x06\ \x50\x1c\x59\xce\xc5\x04\x3a\xad\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x11\x1e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x10\xe5\x49\x44\x41\x54\x78\x5e\xed\x9a\x69\x70\x1c\xe5\ \x99\xc7\x7f\x6f\x77\xcf\x8c\x46\xd2\xe8\xb0\x64\xc9\xb2\x24\x5b\ \x36\x92\x0f\x6c\x83\x8d\xb1\xb1\x31\x10\x07\x63\xc0\xe6\x08\xc7\ \x02\xae\x04\x42\x20\x81\x9c\x40\xb2\x49\xc8\x86\xec\x92\x90\x64\ \xa9\x4d\xd8\x1c\x64\x37\x07\x9b\x84\xa3\xc8\x26\x81\x70\x65\xb3\ \x86\x25\x10\xc2\xe1\x14\xa7\x6d\x9c\xd8\x18\x5f\x18\xdb\xb2\xe4\ \x4b\x23\x8d\xe6\xe8\xeb\x3d\x56\x9a\x6e\x76\x56\xe5\x52\x12\x36\ \x7b\x54\xaa\xf6\xa9\xfa\xd5\xf3\xf6\x5b\xaa\xae\xe7\xff\x5c\xd3\ \x1f\x24\x8c\x31\xfc\x39\x9b\xc5\x9f\xb9\x39\x00\x42\x08\xc6\x1a\ \xd4\x26\x05\x5f\xbf\xa0\x15\x5f\x3b\x04\x23\x48\x63\x11\x4a\x53\ \xeb\x7b\xde\x85\x08\x71\x61\xaa\xba\xe6\xf8\x44\x2a\xd5\xac\x95\ \xf6\x7d\xb7\xb4\x5b\x86\xe1\xd3\x96\x6d\x3f\x70\xd7\x0b\x87\x5e\ \xde\x37\xe8\x91\x72\x2c\x7c\xa9\xf9\x9f\x34\x63\x0c\x0e\x47\x59\ \x24\xe8\x6f\xcf\xaa\xa3\x62\x20\xbd\xe2\x7b\xd3\x99\xfa\x4f\xcd\ \x5d\xb6\x7c\xde\x31\xc7\x2f\xa2\x79\x52\x1b\xa9\xa4\x8d\x0a\x8b\ \xe4\xb3\x07\x27\xf6\xed\xda\xbe\x78\xc7\xab\x1b\x3f\xba\xe2\x48\ \x61\xed\xda\x2d\xc1\x17\x07\x5c\xb3\xe5\x7f\xad\x02\x15\xa0\x3a\ \x69\xf1\xfe\x25\xcd\xb4\xd4\x84\xe4\x35\x18\xa3\x53\xda\xcf\xff\ \xe0\xb8\x65\x67\x5e\xbe\xec\xdd\xd7\xd3\xd8\x35\x13\x8c\x82\xa0\ \x08\xe1\x08\xca\xa5\xb9\xb3\x9d\x69\xc7\x1d\xcb\xc9\x67\x9c\x52\ \x73\xea\x86\x97\x2e\x5d\xf4\xd0\xda\x55\xff\xf4\xe4\xee\xeb\x37\ \x1d\x94\x77\x33\xd6\xa8\xb1\x60\x34\x37\xc7\x57\x57\xee\x36\x95\ \x60\xab\x0b\x7b\x03\x28\x9a\x3f\x61\x06\x92\x8e\xe0\xfa\x53\x27\ \x70\xd6\x54\x17\xa9\x01\x63\x1c\x2b\x74\x7f\xba\x7c\xcd\xb5\x97\ \x9f\xfb\x99\xdb\x69\xec\x9a\x0b\xa1\x05\xa1\x00\x65\x83\xb1\x40\ \x01\xa1\x06\x37\x40\x58\x0e\xc7\x9c\xb4\x98\x2b\xae\xbf\x3a\x73\ \xd3\x45\x33\xef\x3a\xbe\xc5\xbe\x86\xd8\x3a\x80\x9f\x34\xc0\xa6\ \x0e\x78\x70\x06\xdc\xdc\x11\x13\x3f\x6f\xe8\x86\x17\x3b\x60\xa2\ \x00\xe7\xbf\x2a\x60\xcd\xfc\x1a\x16\xb6\xdb\xa0\x7c\x40\x80\x5f\ \xb8\x79\xd1\xea\x4b\x2f\x38\x71\xcd\x75\xa0\x0c\x48\x03\x4e\x0d\ \xd8\x29\xb0\x1c\xc0\x06\x61\x01\x56\xe4\xb5\x01\xd7\x23\x33\xb1\ \x85\xb3\xaf\x5c\xc3\x27\xce\x6e\xff\xd6\xc4\x6a\x96\x02\x5c\x0d\ \x2c\x4f\xc2\xd4\x04\xa0\x8e\xc6\x06\xa6\x3a\xd0\x28\x60\xba\x80\ \xe4\xdb\x15\xd0\x51\x6f\xb3\xaa\x27\x81\x96\x01\x06\x01\xca\x9f\ \xd1\xd1\xdd\x7d\xe3\x89\x17\x7f\x00\xfc\x12\xa8\x10\x8c\x02\x1d\ \x80\x56\x60\x34\x60\xc6\x12\x9b\xf4\x7d\x6a\x9a\x5a\x58\xf1\xae\ \x95\x55\x6b\xe6\x25\xff\x0e\x48\x6a\xa0\x64\x20\x18\xa7\x45\x34\ \x10\x98\xc8\xdb\x40\x95\x78\x9b\x02\x56\xcd\x48\x30\xa1\x4a\xe3\ \x08\x09\x40\x4a\x04\x1f\x9e\x77\xc6\x45\x29\x2b\x9d\x86\xd0\x8d\ \xaa\x22\x4b\x20\xf3\xa0\x4a\xa0\x7d\xd0\x21\x68\x09\x46\x45\xa0\ \x30\x46\x63\x80\xd0\xf7\x98\xd0\x33\x9b\xf3\x96\x75\x9d\xd6\x56\ \xcd\x3b\x0c\x80\x88\x33\x16\xd0\x66\x8a\x9c\xa2\x0b\x9c\x3f\xc2\ \x39\xa6\xc4\x89\x42\x51\x8f\x00\x9f\x38\x1d\x6f\x67\x88\xd3\x09\ \x58\xdc\x0e\x42\x07\x54\x59\x60\x94\x4e\x36\x36\x37\xad\x9e\x34\ \x73\x1e\xb8\x39\x10\x29\x40\x44\x41\x0a\x0b\x8c\x8e\x2a\xa1\xfc\ \xc8\x47\x42\xca\x18\xa3\xcb\x68\xad\xc0\x72\xe8\x99\xd3\xc3\xb1\ \x93\xb7\xaf\xd4\x3b\x79\x82\x23\x5c\x7a\xc4\xe7\xea\xd4\xc4\xe9\ \x4b\x52\x33\x7b\xea\xed\xa6\x26\x4c\x18\x22\xfb\xfa\x08\xb6\x6e\ \xeb\x1b\xe8\x3f\xf2\xab\xd9\x9a\x3b\xb6\xc1\x6f\x94\x78\x1b\x02\ \xda\x33\x82\x8e\x8c\xc2\x11\x60\x59\xa0\x64\xd8\xd1\x34\x79\x72\ \x97\x53\x9d\x86\xb0\x04\x96\x8e\x82\xb7\x82\xb8\x68\x3a\x0e\xd8\ \x07\xe5\x95\x7d\x44\x18\x09\xd0\x23\x18\x53\x6e\x47\xab\xb5\x89\ \xf3\xea\x59\xd9\x0d\x4f\x56\x5d\x74\xf1\x8a\xda\x6b\x3e\x40\xf5\ \x09\xf3\xb1\x33\x35\x08\xad\x41\x86\x18\xaf\x44\xd8\xdf\x37\x39\ \xf9\xec\xb3\x57\xdc\x71\xe7\xbd\x57\xfc\x64\xe3\xe6\xbb\xbe\x66\ \xf8\x54\x09\xb2\x7f\x94\x80\x84\x65\xa8\xb2\x24\xa9\x78\x0e\x95\ \xa0\xa9\xb6\x2e\x93\xc4\x04\x20\x03\xb0\x15\x98\x30\x1e\x5c\x01\ \x98\x58\x40\x10\x21\xa3\x16\xd3\x5a\xc5\x44\xad\xe4\x6a\x9f\xde\ \x75\x7b\x59\x9d\x6f\x9d\xdf\xf1\xc0\x37\x49\x5f\x7c\x19\x00\xf8\ \x25\x4c\x18\x60\x64\xfc\x7e\x15\x92\x98\x38\x81\x86\xcb\x2e\xa2\ \xe1\xec\x77\xf2\x89\x3b\xee\xbc\xaa\xfb\x7b\x3f\x9c\xff\xc1\x42\ \x78\xe1\x20\xec\xf9\x23\x7e\x89\xc1\x12\xa6\xec\x45\xf4\x6c\x04\ \x2a\x0e\xcc\x80\x91\x51\xf6\x85\x5d\x11\x60\x14\x95\x2a\xf8\x18\ \x15\xa0\x94\x44\x69\x89\x36\x1a\x6d\x19\xde\x7c\x6e\x0b\x0d\x8f\ \xef\xa5\xeb\xce\x9f\x92\x58\xb6\x1c\x42\x2f\x7a\x87\x65\x23\x46\ \x30\x23\x20\xac\x08\x19\xa2\x3d\xb7\x7c\x9f\xfc\xc4\xc7\xb8\xa8\ \xa5\x69\x41\x70\xdb\x37\x7e\xf6\xbe\xc3\xa5\x33\x25\x0c\xfd\xde\ \x21\x2e\xc9\x11\x34\x84\x02\x82\x51\x2c\x0e\x16\x0b\xd9\x12\xa1\ \x1b\x0f\x6e\x11\xc2\x42\x84\x8c\xa8\x9c\x4b\x68\x15\x20\x75\x14\ \xbc\x52\x0a\xd0\xf4\xf5\x1f\xc2\x79\x64\x3d\xdd\x9f\xfd\x3c\x89\ \x65\x27\x63\x4a\x39\x00\xf8\x8f\xa0\x05\x47\x1b\x18\xa9\xd0\x85\ \x02\x66\xcd\xa5\xac\x79\xff\x7b\x16\x5d\x53\x9f\xb8\xf9\x0f\x6e\ \xa1\xbe\x61\xe8\x2f\x81\xb6\x40\x02\xca\xa6\x2f\x77\x78\xff\x4e\ \x37\x3f\x18\x65\x54\xba\x18\x59\x8a\x03\x8f\x18\x79\x2e\xdf\x4b\ \x19\x20\xcb\xd9\x0f\xd1\x4a\xa2\xb5\xa4\x14\x96\x18\x78\xfa\x55\ \xa6\xcd\x59\x42\x72\xf5\x6a\xcc\xd0\x10\x68\x0d\x4a\x81\xf4\x41\ \x49\x8c\xd6\x95\x55\x6c\x2a\x80\x01\x6d\xd0\x9e\x0f\x7f\x71\x09\ \x1f\x5f\x3a\xef\xda\x09\x16\xc7\xfe\x5e\x01\x81\x82\x75\x7b\xc0\ \x76\x20\x69\xc0\x02\x35\x3c\x94\x7b\xe8\xc8\xee\xcd\x18\x21\x90\ \x32\x8c\x02\x95\x3e\x15\x82\xe8\x5e\x85\x28\x39\x82\x92\xe5\xb3\ \x0c\x4a\x1c\x38\x70\x80\x9a\xbd\x59\x1a\xce\xbb\x00\xa4\x02\x15\ \x46\x41\xcb\x00\x13\xfa\x65\xa2\x3b\x15\x11\xcf\x0c\xc6\x50\xa9\ \x44\x48\xd8\xd8\xc4\x8c\xb3\x57\xd4\xac\x6a\xae\xbe\xe4\x0f\x7e\ \x0b\x3d\xbe\x1d\xde\x35\x0b\x7e\xd6\xea\x70\xd9\x80\xc4\xd6\x7c\ \xff\x8d\x97\x9f\xb8\xa1\xe9\x98\xb9\x8d\x42\x58\x00\x08\x2a\x65\ \x37\x98\x78\x65\x1a\xb4\x51\x28\x29\x09\xfc\x22\x81\x3b\x4c\x76\ \xef\x7e\xba\x1b\x5a\x10\xd3\xa6\x63\xbc\x62\x3c\x3b\x80\x56\x20\ \x44\xe5\xac\x64\x3c\x47\x2a\xc2\xa8\xf2\xfb\x0c\x26\x2a\x4c\x18\ \xc2\x8c\x59\x9c\x3e\xbd\xf5\xd4\x7f\x3e\xb4\xdb\x06\xd4\xb8\x02\ \xf6\xe7\xe0\x76\xdf\xe1\xa9\x09\x09\x1e\xaf\xb7\xf8\xf4\x81\xb0\ \xaf\xab\x77\xdf\xc7\x76\xae\xfb\x97\x7b\xba\x4f\xbb\xc0\xd1\x32\ \x1c\xdb\xab\x26\x12\xa0\x95\x22\x0c\x3d\x02\xaf\x88\xef\x16\xf0\ \xfc\x3c\xde\x91\x01\x32\x6d\xb3\x20\x99\x82\x30\x88\xfa\xde\xe8\ \x68\x47\xf3\x96\x80\x78\x15\x2b\x89\x51\x91\x47\xeb\xf8\xbd\x71\ \x82\xc2\x00\x6a\x33\xf4\x74\xb5\x76\xf2\xc2\xee\x7a\x20\x3b\xae\ \x00\x6c\x78\x6a\x6e\x0a\xb4\xe2\x70\x52\x70\xe3\x74\x8b\xb6\x92\ \xaa\xbe\xb4\x77\xbd\xba\xea\x69\xed\xb4\x2f\x7c\x07\x42\xd8\x71\ \xa9\x41\x6b\x55\xee\x7b\x19\xfa\x84\xbe\x4b\x30\x8a\x57\xc0\x0b\ \x8a\xf8\xb9\x2c\xa9\x29\xb5\x71\x6b\x18\xb0\x34\xc2\x68\x88\x2b\ \x09\x44\x82\xb4\xae\x04\xaf\xa2\x36\x8a\x2a\x1b\x41\x18\x82\xd1\ \xa4\x33\x35\xd5\x40\x7a\xfc\x16\xaa\x13\x70\x71\x15\xa8\x68\x00\ \x50\x32\x85\xd1\xdf\x5b\xb2\xf8\xf2\xf7\xe5\xa8\x62\xdd\xd6\x1d\ \xcc\x7b\xfa\x11\x9a\xa7\xce\xa0\x66\x42\x0b\xda\x18\xd4\x5b\xbd\ \x1f\x06\x91\x88\xc0\xc3\x2f\xe4\x18\xea\xdf\xc3\xc1\x52\x09\xa9\ \x03\x52\x32\x8c\x33\x6f\x63\x74\xbc\x2e\x11\x54\x06\xf7\x3f\xcf\ \x80\x41\x47\x44\x22\x94\x82\xc0\x83\x72\x72\x82\x12\x10\x8c\x2f\ \xe0\x43\x29\x48\x38\x40\xf9\x65\x29\x5b\x24\xee\xff\xc6\xca\xaf\ \x9f\x7f\x5c\xcb\x2c\xfe\xfe\xa9\xaf\xd2\x73\xd9\x97\xa8\x1f\xee\ \xe5\xb5\x5f\xde\x4e\x7a\xe7\x26\x32\x0d\x8d\x88\xfa\x0c\x28\x13\ \x0d\xb3\x57\xc0\x3d\x70\x90\x92\x63\xf0\x4f\x9a\x4e\xbe\xa7\x83\ \xa1\x47\xb2\xd4\xb8\x25\x4c\x32\x89\xd0\xaa\xb2\x3a\xe3\xf8\xe3\ \x6d\x33\x26\xeb\xda\xc4\x5e\x2b\xf0\xdd\x48\x40\x21\xc7\xf6\x03\ \xd9\xbd\xc0\xd0\xf8\x02\xac\x2a\x90\x32\x7a\x0a\xf5\x77\xbe\xb5\ \xfa\x1f\xce\xff\xc8\x09\x1f\xe4\x6b\xcf\xde\xca\xc7\x4e\xb9\x81\ \x62\x61\x80\x96\x19\x2b\xe8\x9b\x56\xcb\x83\xf7\xff\x94\xe3\x1e\ \x7f\x85\xb9\xbb\x5e\x46\x77\x26\xb0\x0a\x9a\xd2\x21\xcd\xe3\xe7\ \x9e\x43\xd5\x85\x2d\x9c\x34\xaf\x83\x52\xb6\x9f\x6d\xb9\x5e\xda\ \x0f\xf7\xa1\xa7\x4c\x47\xc8\x10\x61\x0c\x63\x8d\x38\x70\x46\x30\ \x11\x18\xb4\xd6\xe0\x7b\xe0\x95\x30\x81\x07\x07\x7b\x79\x72\xd7\ \xc1\xe7\x81\x70\x7c\x01\x45\x0b\xaa\x01\xd7\xbd\xf2\x3d\x27\x5d\ \x79\xf5\x47\x16\x5e\xcb\x63\x3b\x1e\x66\x51\xe7\x49\x9c\x36\x6d\ \x05\x1b\xfa\x37\xb2\x6f\xe0\x0d\xbc\x50\xb2\xec\xe4\x4b\x49\xb7\ \x9d\x46\xcf\x59\x37\xd0\xb9\xcd\x87\x01\x58\x7b\xc6\x19\x2c\xbe\ \xea\x7a\x0e\x95\x5e\xe3\xa0\xbf\x99\xb6\xc2\x02\xaa\x4f\x58\x88\ \xdc\xf4\x7c\x24\x40\xeb\xca\x0e\x13\x44\x66\x88\x05\x50\xf1\x5a\ \x46\xc1\xbb\x45\x8c\x57\x22\xe5\xe6\xd9\xff\xdb\xcd\xc3\x6b\xf7\ \x66\x1f\xf9\xfd\x6b\x54\x00\xda\x34\xb5\xd4\x4f\xfb\xca\x5f\x2d\ \xff\x30\x6f\xe4\xb7\xb0\x3f\xbf\x87\x77\xcf\xbf\x1a\x5f\x97\x58\ \xd0\x76\x3c\xbb\xb3\x6f\x52\x0a\x3c\x16\x34\x4d\xc5\xef\x3a\x89\ \x81\x1b\xb7\xd2\x71\xeb\xed\x1c\xac\x6b\xa4\xe6\x2b\x7f\xc3\xb1\ \x2d\xd3\xd8\x33\x6c\x31\x74\xa4\x89\x15\xad\x17\x12\xac\xd2\x1c\ \xbe\xfd\x46\x26\x6d\x7f\x15\xaf\x67\x3e\x22\xf0\x00\x10\x46\x10\ \x67\x3f\xf2\x51\x09\x30\x32\x04\xdf\x1d\xa5\x1c\xbc\x90\x01\xce\ \xce\x4d\x7c\xf9\xc9\x97\xee\x1a\x0a\xf5\xc6\xb6\x45\xd7\xa1\xa5\ \xe2\xe0\xc6\xef\x8c\xb3\x85\x3c\x7d\xcd\xbb\x4f\x3f\xbf\xb5\xa5\ \xa1\x9e\x27\x5f\xff\x15\x73\xda\xe6\xe0\xaa\x3c\x68\x41\xc2\x4e\ \xd1\xde\x30\x89\xf6\xfa\x49\x38\x56\x12\x84\x4d\xe9\xb3\x5f\xe4\ \xb5\x7b\x1f\x46\x5f\x71\x2d\x4b\x4e\x38\x0d\xc7\x84\x74\x36\xb5\ \x22\x8c\x8d\xb2\x02\xd2\x29\x58\xbf\xfc\x02\x82\x07\x7e\x4c\x67\ \xa6\x0e\xaf\xb9\x13\x64\x80\x40\xc4\x23\x60\xe2\x5f\x67\x59\xbe\ \x27\xf0\x21\xf0\x30\xbe\x07\x2a\xa4\x7a\xdf\xeb\x3c\xf4\xec\xde\ \xed\x3f\xd8\x67\x6e\x99\xfa\xce\x5b\xcc\xe4\x25\x37\x11\x7a\xc1\ \x88\x80\xef\x02\x66\xac\x00\x8c\x49\xd7\xa4\x9b\xae\x58\x31\x7b\ \x21\x6f\x0c\xee\xc2\xd5\x05\x26\xd6\x35\x31\xe4\x1f\x21\x61\xa5\ \x48\x98\x24\x9e\x70\x49\x08\x07\x4b\x3b\xd8\xc2\x26\x59\x9b\xc6\ \xb9\xef\x47\xd4\x76\x8d\xb6\x48\x01\x4f\x4b\xb4\x51\x68\xa1\x71\ \x84\xcb\xba\x0d\x47\xb8\x73\xfd\x09\x2c\xec\xe9\xe2\xca\x87\x6f\ \xa3\x69\xd9\x71\x84\xd3\x66\x63\x54\x1c\xb4\x31\xa3\x3e\x22\x0c\ \xa3\x9d\xaf\x43\x2c\xb7\x48\x7a\xdb\xab\x6c\x1c\x68\xe3\xd1\x95\ \xf7\x4e\x99\xdd\x99\xff\x42\x6d\x63\xd7\x67\x54\x71\xc0\x53\x7e\ \x00\x08\x52\x75\xed\xf8\xc3\xbd\x15\x01\xb8\xfa\x94\x59\xd3\xa6\ \xcd\x6a\x6e\xa8\x61\xe7\xa1\xad\x34\x65\x26\x50\x94\x79\x2c\x6c\ \x12\xc6\xc7\xd1\x09\x6c\x91\x1c\x21\x0a\xde\x1a\x45\xe6\x68\x5a\ \x3a\x03\x23\x25\x43\xc1\x00\xf1\x08\xe2\x38\x3e\x0f\xfe\xf2\x08\ \x8f\xbd\x72\x0c\x57\x9e\x33\x91\xb5\x4f\x48\x7e\xb5\xf0\x33\xac\ \xc9\xfe\x18\x67\xdb\x23\x24\x66\x76\x13\x36\x34\xa3\x84\x83\xd1\ \x0a\xa4\x2c\xb7\x4b\xd2\x1d\xc6\xee\xef\xc5\xdf\x7f\x98\x8d\xc7\ \x9c\xc1\x2d\x85\x33\x58\xd2\x6c\x57\x2d\xbe\xb8\xeb\xfa\xbb\x1e\ \xcd\xce\x0d\x95\xb9\x44\x58\x4e\x16\xc0\x72\x6a\x48\x66\x26\x57\ \x04\xe0\x5b\x2b\x7b\x26\xb5\x59\x45\x95\x23\x17\x0c\x30\xa9\xae\ \x8d\x7c\x98\xc5\x11\x29\x12\x56\x12\x47\x24\xb0\x47\xb1\x1c\x6c\ \x46\x05\x58\x08\x46\x28\x0e\xc7\xc3\x38\x8a\x21\x99\x0c\x59\xfb\ \xd4\x61\x1e\x7b\x7e\x0e\xb7\x5f\x37\x99\x2d\x5b\x0e\x53\x4f\x81\ \x96\xf9\x3d\x0c\xce\xfa\x3c\x43\xeb\x9e\x27\xfb\x8b\x27\x69\x56\ \xaf\x33\xb1\xce\x50\x95\x72\x40\x2b\x8a\xc5\x80\x1d\x83\x09\x0a\ \x9d\xc7\x71\xf0\xec\x1b\xd8\xd3\x38\x8d\xa5\x2d\x21\x7d\xbf\xdd\ \xc6\xb9\x27\xa5\xe9\xbe\xbc\xf6\xf4\x9b\xee\x1c\x7a\x70\x78\x68\ \xef\x6a\x30\xae\x9b\xdd\x46\xf7\x39\x77\x55\x04\xa0\x13\xc7\x37\ \xd5\x57\x73\xd8\xed\xc7\xb2\x21\x34\x1e\x52\x86\xe5\xe0\x13\x3a\ \x85\x63\x25\x70\xe2\xf6\xb1\x88\x2b\x20\x44\x65\xa5\x18\x83\x93\ \x84\xdf\x6d\x3e\xc4\x7d\xbf\x9c\xc9\xd7\xae\x9b\x42\x8d\x13\xb0\ \x63\xd7\x10\x37\x7d\xa4\x9b\x0d\x3b\x34\xf9\x41\x8b\xfe\xee\xa5\ \x3c\xbb\x6c\x29\x0d\x89\xc3\x6c\xd8\xf4\x3a\x49\xaf\x80\xc1\x22\ \x9f\xa9\x67\xf6\xe2\xd9\x50\x53\x4f\xeb\x44\x90\x7d\x9a\xe5\xc7\ \x26\xa8\x9a\x33\x9d\xe7\xd6\xf5\xf2\xe1\xcb\x8f\xe1\x93\x97\x34\ \x2e\xff\xcb\x5b\x9e\xfc\x36\x70\x35\xd8\xf4\xbd\xfc\x4d\xe0\x7d\ \xc4\x02\x9c\xb6\x64\xd2\x90\xf5\x0e\xe1\x38\xd5\x14\xe4\x50\x39\ \xe3\x09\x9d\x2c\x0f\x6d\xd4\x42\xce\x28\x51\xf0\x58\x08\x31\x02\ \x91\x09\x4b\x10\x0e\xe7\xb8\xfb\x81\x06\xce\x7f\xc7\x0c\x66\x4f\ \x85\x1f\xfd\xfc\x10\x67\xbc\xb3\x9d\xfa\x6a\xc1\xe2\x99\x82\xad\ \x7b\x15\xa1\x0f\xab\xe6\xdb\x54\x57\x4f\x64\x42\xd7\x44\x7e\xbd\ \xcb\x43\x1b\xc3\xaa\xe9\x69\x16\xb5\xc2\x9b\x87\xe0\x77\x07\x34\ \x4b\x3b\x0c\x0b\xa6\x41\xd2\xa9\xa6\xaf\x3f\xc3\x33\x1b\x06\xb9\ \x70\x59\x23\xcf\x5d\xf8\xae\xab\xee\xd8\xbc\xfa\xd1\xa0\xff\xd1\ \x07\x4a\x87\x36\x55\x3e\xa7\x91\xb6\xe3\x4a\x97\xa2\x1a\x46\x8b\ \x90\x82\xcc\x51\x92\xc3\xe5\xe7\xa2\x1c\x25\x47\x4c\x59\x5c\x61\ \xf4\x1c\xf9\x32\x1e\x59\x7e\xbd\x6e\x08\x25\x67\xb3\xea\xb4\x14\ \x2f\x6e\x73\xb1\x53\x09\xda\x3b\xaa\x19\xf2\xc0\x49\xc0\x9c\x2e\ \x9b\x69\xcd\x82\x99\x6d\x30\xa5\x01\xce\x3d\x06\xae\x5c\x50\xc5\ \x7b\x17\xa4\x39\xaf\x1b\x3a\xea\x61\xfe\x14\xb8\x68\x0e\x9c\x3c\ \xdb\x06\x01\x85\x00\x4e\x3c\x61\x22\xdb\xf6\xba\x1c\x18\x36\x5c\ \x7a\x66\x0d\xdd\x4b\x3f\x7e\x2b\x56\x55\xcd\xd8\x2d\xe4\x59\x85\ \x23\xb9\x41\xa6\x08\x07\x4f\x17\x51\x26\x8c\x33\x1f\xf5\xbf\x53\ \xee\x7d\x07\x4b\x8c\x62\x11\x57\x00\x00\xcb\xb2\x08\x73\xc3\x3c\ \xfb\x5c\x17\x67\xbe\x63\x32\xca\x82\xcd\xbb\x8a\x2c\x9c\xd3\xc4\ \x60\x09\x6c\x20\x50\x90\xb4\x61\x52\x8b\x85\x30\x60\x09\x48\x3a\ \xb0\xb0\x0d\x0c\x90\xb4\x40\x19\x68\x4c\x40\x43\x8d\xc5\xb0\x0f\ \xa1\x8a\xb0\x1c\x41\x7b\x47\x86\x97\xb6\x16\x98\x3f\x37\xc3\xa9\ \xa7\x2d\xea\xd9\xb1\x6e\xf9\x25\xe1\xa1\xc7\xee\xae\x54\x20\xb0\ \xb7\xee\xeb\x1d\x42\x0a\x97\x4a\xe6\x73\x11\x2a\xca\x72\x41\x8d\ \x9e\x87\xa2\x2a\x94\xef\xa2\xb3\x6b\x06\xd9\xbe\x63\x88\x42\x6e\ \x2a\xb3\x66\x55\xb1\xab\x57\x96\xb3\x9f\xae\x71\x18\x76\xa1\x10\ \x44\xe4\x7d\xca\x82\x72\x3e\x0c\xfb\x91\x77\x25\x78\xb2\x72\x37\ \xe4\x42\xd6\x85\xbc\x1f\x65\xbf\x18\x42\xb6\x08\x6d\xed\xb5\x1c\ \x18\x0c\x19\x28\xc2\xfc\x79\x19\x1a\x3b\xcf\x7a\x0f\x20\x2a\x15\ \x30\xf6\xa3\x3b\xb6\x14\xdf\x3b\xbc\xb2\x40\xca\x56\xd8\x3a\x11\ \x55\x40\x8c\xa0\x9d\xa3\xfa\x3f\xde\x42\x20\x20\x61\x49\xb6\xbe\ \x56\xc5\x84\xc6\x56\x52\x19\xd8\xb5\xd3\xa7\xb5\xb9\x9a\x9c\x07\ \x8e\x80\x84\x02\xc7\x06\xc7\x8a\x9e\x6d\x2b\xaa\x80\x00\xc4\x98\ \xcf\x0a\xd0\x06\xd4\x28\x1a\xa4\x01\xa9\x20\xd4\x60\x84\x20\x5d\ \x9b\xe2\x8d\xbe\x90\x96\x49\x09\x5a\x3b\x8f\x3b\xf1\xd0\xc6\xba\ \x2e\x60\x77\x24\xc0\x72\x7e\x91\x7d\x53\xff\x6e\xfd\xf3\x83\xf3\ \x16\x9f\x1e\xe2\xb9\x09\x1c\x9d\x88\x04\x88\x31\x02\x2a\x2b\x14\ \x81\xb0\x2c\x2c\x5d\xa2\x77\x77\x0f\x1d\x2d\x19\x86\xbd\x28\x6b\ \x89\x74\xa2\x7c\x4e\xda\x90\xb0\xc0\x89\xb1\xad\x8a\x00\x8b\xca\ \x97\x35\x54\x04\xe8\xb7\x04\xc4\x84\x3a\x12\x55\x5b\x57\x45\xdf\ \x40\xc0\x94\xce\x04\x13\x26\xb6\x34\x88\x54\xc7\xbc\x8a\x00\x43\ \x09\xec\x4f\x3e\xf7\x90\xfb\x78\xba\x4e\x8b\x99\x27\x24\xf0\x82\ \x04\x42\x46\xdb\xc7\xb1\x1c\x2c\xa2\x1f\x31\x51\x9e\x01\x01\x8c\ \x78\x4b\xa0\xc2\x22\xb9\x81\x24\x3d\xd3\x13\x1c\x1e\x06\x2b\x99\ \xc0\x53\x10\x8c\xa2\x19\x2b\x40\x94\x89\x2a\x20\xa0\x52\x80\xa3\ \x05\x28\x53\x11\x10\x2a\x30\x8e\x8d\xaf\x45\xb9\xd5\xd2\xb5\x69\ \x2c\xa7\x69\xfa\xd8\x6f\x21\x21\x9e\x90\x45\x71\xd5\xbf\xdd\x21\ \xbf\xdd\xbf\x92\x9a\x79\xa7\x4a\xea\x9a\x3c\x8c\x65\x23\xb5\x8d\ \x18\xc5\xd8\x58\xfa\xad\xf6\x11\x58\x58\xc8\xb0\x80\x57\x02\x69\ \x04\x43\xae\xa1\x2a\xe1\x30\xec\xc7\xed\x63\x8d\x60\xc7\xc1\x8f\ \x27\x20\xc6\x18\xd0\x8c\x11\x70\x54\x15\x8c\xed\x30\xe8\x46\x6b\ \x1b\xe3\xd4\x55\x04\x38\x16\x84\x80\x25\xee\xd1\x6f\x1c\x7a\x75\ \xe3\x0f\xd3\xb7\xbc\xf6\x54\xdd\x39\x1d\x73\x13\xce\xe4\x19\x8a\ \x09\x6d\x8a\x9a\x7a\x48\xa5\xc1\x49\x08\x6c\x5b\x20\x46\x05\xd8\ \x20\x75\x09\x29\x5d\x8a\x25\x49\x49\x0a\xec\x84\xa0\xe0\xc7\x99\ \xb7\x21\xa1\xc6\x0a\xb0\xc4\x98\x19\x38\x5a\x80\x8e\x44\xc8\x4a\ \x2b\x11\xc6\x5e\xdb\x36\x39\x17\x4a\x05\x1f\xa3\x24\x95\x2d\xd4\ \x97\xab\xbc\xcd\xf7\x37\xb1\x7b\xf7\x05\xfe\xba\x6d\x8b\x77\xdd\ \xb3\xe7\x73\xcf\xdd\x7a\x78\xed\xcf\x3f\x97\x7f\xfd\xfe\xcf\x7a\ \xd9\xfb\xfe\x3a\xf4\xee\xbb\x39\x34\xf7\x7d\x21\xe4\xbe\x2f\x05\ \xdc\xff\xe5\x80\x07\xbf\x2a\xd9\xbf\x7b\x90\xec\x91\x22\xa1\x80\ \x92\x84\x42\x18\x51\x0c\xa0\x30\x3e\xe4\xdf\xc2\x8f\x7c\xc1\x8f\ \xef\xc7\xf9\x5b\x5f\x47\xc9\xc9\xf6\x0f\x83\x2e\x0e\x55\x2a\xb0\ \xb1\x17\x4e\xcd\x80\x95\xac\x08\x09\xbc\x8d\x65\x72\x40\x1f\x19\ \x89\xd5\x2c\x85\xdd\x08\x22\x83\x65\x57\x23\x44\x02\x63\x40\x68\ \xdf\xc9\x0c\x9d\xde\xbb\xad\xff\xc6\xd9\xe1\x14\x14\x95\xac\xc7\ \xfd\x8f\x3d\x4e\x05\xc6\xce\x40\x5c\x85\x98\xb8\x85\x50\x95\x0a\ \xa0\x04\x64\x07\x02\x0e\xec\xda\x2b\x8d\xec\xdd\x3e\x76\x06\x9e\ \xdf\x0e\x0b\x7a\x2a\x02\xc6\x92\x07\x9d\xc7\xe8\xdd\x00\x28\xc6\ \x58\x75\xed\xd9\xaf\xf4\x6d\x7e\xe3\x43\xfb\x77\xce\xac\x6b\xeb\ \x69\xc0\x0f\x38\x7a\xfb\x1c\xb5\x42\xc7\x0a\x20\xee\x7f\x13\x05\ \x5f\x59\xa7\x15\x10\x69\xd8\xf9\x62\x1f\xb9\xde\xf5\xaf\x1b\x75\ \x78\x53\xa5\x85\x00\xa4\x82\xf5\xdb\xc0\xf5\x79\xfb\x26\x06\x82\ \xbc\xfb\x8f\x2f\xdf\xfb\x02\x43\x79\x8d\x2b\xa2\x92\xc7\x8c\x6d\ \x97\xa3\x5a\x28\x3e\x8f\xdb\x3e\x51\x3b\xfa\x09\xd8\xf3\xda\x30\ \x9b\x1e\xde\x80\x2c\xfe\xeb\xdd\x60\xfa\xc7\x56\x20\x4e\x01\xb9\ \x02\x6f\xdf\x0c\x96\xc5\x97\xfb\x5f\x7d\x73\xd1\x33\xb7\x3d\xbe\ \x72\xe1\xfb\x4f\xa5\xa1\xb3\x96\x50\x82\x90\x60\x13\xb7\xcf\x38\ \x43\x1c\xb7\x4f\xbc\x4a\x2b\x28\x00\x27\xf2\xfb\x5f\x3c\xc8\x2b\ \xdf\x7f\x81\x7c\xef\x3d\xf7\x6b\xb9\xf9\x2e\x62\x73\xf8\x53\x4d\ \x64\x40\x38\x00\xae\x9d\xb0\x2e\xe8\x7b\x69\xe7\x6d\xd9\x1d\xfd\ \x1f\x9c\x76\xfa\xf1\x76\xe7\x92\xe9\xd4\x75\x34\x90\xac\x16\xd8\ \x0e\x58\x95\xd6\x89\x01\x43\xc5\x0c\xa0\x63\x31\x32\x04\x37\x17\ \x92\xdd\x35\xc0\x9b\x4f\xef\x64\xdf\xf3\xaf\xb8\xd2\x7b\xe4\x4e\ \xcc\x33\x5f\x02\xb2\xff\x7d\x02\x8c\x87\x91\x03\x40\x0a\xa0\x64\ \x27\xed\x8f\x7a\x43\xc5\x3b\xb7\xdc\xf7\xdd\xab\xb7\x3e\xd4\x79\ \x56\xa6\xad\xab\x2b\xd3\xde\x66\xd7\xb6\x36\x50\xd5\x58\x43\xb2\ \x26\x85\x9d\xb2\xb1\x13\x4e\xa5\x02\x1a\x54\x10\x22\x7d\x89\x9f\ \xf7\x70\x07\x0a\xe4\x0f\x0c\x90\xef\xdd\x1f\x16\x0f\xed\x7a\x13\ \x36\x3d\x03\x2f\xff\x04\x86\x46\x3c\x0a\xe0\xbf\x4f\x00\x21\x85\ \x03\x9f\x26\x3d\xe1\x5b\xc4\x86\x65\x5b\xeb\x8d\xfc\xcd\x7a\x1d\ \xee\xab\xc9\xed\xcd\x1c\x9b\xdb\xdb\x34\x17\x9a\xa6\x43\x7a\x32\ \x64\x1a\xa1\xaa\x1a\x2c\x07\xec\x2a\x00\x90\x1e\x68\x09\xa5\x12\ \x14\x73\x30\x7c\x00\x06\x77\xc3\xe1\xed\x90\xdd\x0a\x1c\x64\x1c\ \xfb\xff\xff\x56\xf9\xbf\xb6\x7f\x07\x3d\x3b\xcc\xf1\xa3\xb2\xb6\ \x47\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x13\ \x01\x35\x7a\xc7\ \x00\x6b\ \x00\x6f\x00\x70\x00\x65\x00\x74\x00\x65\x00\x61\x00\x76\x00\x61\x00\x69\x00\x6c\x00\x61\x00\x62\x00\x6c\x00\x65\x00\x2e\x00\x70\ \x00\x6e\x00\x67\ \x00\x0d\ \x0e\x40\x40\xc7\ \x00\x6d\ \x00\x69\x00\x6e\x00\x69\x00\x74\x00\x6f\x00\x6f\x00\x6c\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x10\ \x05\xe9\x01\x67\ \x00\x61\ \x00\x72\x00\x74\x00\x73\x00\x66\x00\x66\x00\x74\x00\x73\x00\x63\x00\x6f\x00\x70\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x16\ \x07\xbc\x11\xc7\ \x00\x6d\ \x00\x65\x00\x74\x00\x61\x00\x63\x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x6f\x00\x6e\x00\x6c\x00\x69\x00\x6e\ \x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x14\ \x0a\x34\xf1\x07\ \x00\x62\ \x00\x6c\x00\x75\x00\x65\x00\x5f\x00\x61\x00\x6e\x00\x67\x00\x6c\x00\x65\x00\x5f\x00\x73\x00\x77\x00\x69\x00\x72\x00\x6c\x00\x2e\ \x00\x6a\x00\x70\x00\x67\ \x00\x10\ \x03\x16\x82\x47\ \x00\x6b\ \x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x6d\x00\x61\x00\x69\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x13\ \x09\x2b\x13\x47\ \x00\x6b\ \x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x6a\x00\x6f\x00\x75\x00\x72\x00\x6e\x00\x61\x00\x6c\x00\x2e\x00\x70\ \x00\x6e\x00\x67\ \x00\x11\ \x04\x5b\x0b\x07\ \x00\x6b\ \x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x6e\x00\x6f\x00\x74\x00\x65\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ \ \x00\x14\ \x08\x13\x30\x07\ \x00\x6b\ \x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x63\x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x73\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x7c\xee\ \x00\x00\x01\x36\x00\x00\x00\x00\x00\x01\x00\x00\x96\x35\ \x00\x00\x00\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x11\x7b\ \x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x16\x8d\ \x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x00\xa5\x6e\ \x00\x00\x01\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x89\x74\ \x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x4e\xb8\ \x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x20\x82\ \x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x09\x50\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/padnavigator_rc3.py0000644000076500000240000057626612536324427026572 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:39:49 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x09\x4c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x2f\x08\x06\x00\x00\x00\xa5\x82\x49\xc9\ \x00\x00\x09\x13\x49\x44\x41\x54\x78\x5e\xd5\x9a\x5b\x6c\x1c\xe5\ \x19\x86\x9f\x7f\x66\x67\xcf\xde\x4c\x36\x5e\x27\x3e\x80\x9d\xf3\ \x81\x84\x2c\xa0\x0a\xaa\x4a\x64\xab\xaa\x52\x0b\x2a\xb8\x42\x42\ \xaa\x7a\x93\x10\x5a\x62\x6e\x12\xae\x7a\x99\x46\x2a\xf4\xa6\x52\ \xb9\x6b\x25\xa0\x44\xea\x55\x11\x28\xa1\x2a\x55\x91\x2a\x12\x50\ \x4b\x4f\x10\x6c\x48\xdd\x92\xc4\xe0\xc4\x89\x63\x3b\x4e\xf6\x64\ \xaf\x77\x67\x67\xfe\xaf\x23\xef\x4a\xd3\xd5\xe2\x20\xf0\x41\xe2\ \x93\x5e\x7d\xb3\xb2\x56\xfa\x1e\xbf\xdf\xec\xfe\xaf\x66\x95\x88\ \xf0\x55\xae\x10\xb7\x29\xa5\x14\x5f\xa4\xde\x7d\x8a\x01\x81\x41\ \x2d\xf4\x0b\x64\x35\x20\x80\x86\x61\x11\x46\x04\xce\x7e\xfb\x05\ \xc6\xf9\x02\x25\x22\x9f\x0f\xb0\x5c\xfd\xe3\x29\x72\x02\xc7\xad\ \x64\x34\x97\xda\x94\x22\x9e\x4e\x90\x48\x27\x11\x1a\x95\x9f\x2a\ \xe6\x16\xca\x55\x66\x2e\xdf\xe2\xcd\x1f\xb9\x67\x05\x4e\x7c\xe7\ \x05\xce\xb2\xbc\x5a\x3e\xc0\x7b\x47\xb0\x05\x4e\x59\x89\x68\xae\ \x67\xff\x9d\x64\xb6\x75\x21\xe9\x3d\x90\xe8\x87\x98\x05\x66\x05\ \xdc\x22\x76\x65\x0c\x4a\x93\xec\x29\xef\x60\xf2\xe2\x4c\xee\xe2\ \xf0\x95\xdc\x1f\x9f\xac\x3e\x2f\x70\xe2\xe1\x17\x29\xb0\x8c\x52\ \x22\xf2\xa5\x56\xe8\xfd\x23\x64\x05\xce\x74\xef\xeb\xb7\x7b\xee\ \xdd\x89\xf4\x3e\x04\xdd\x8f\xa3\x42\x9d\x80\xdb\x90\x5c\x04\xa9\ \x00\x49\xa0\x02\x0b\xaf\xc3\xc4\x5b\xb8\x93\x61\x46\xff\xf9\x09\ \x13\x63\x53\xc3\x02\xdf\xfc\xde\x6d\x20\x44\x64\xe5\x01\x3e\x38\ \xc2\x80\xf8\xed\x8e\xfb\x77\xd8\x1b\xee\xde\x01\x7b\x7e\x82\x8a\ \xde\x07\xb8\x88\x5c\xf2\xf5\x31\xc8\x28\xc8\x35\x94\x4c\x82\x5c\ \x47\xc9\x34\xa8\x7d\xc0\x37\xa0\xf8\x36\x5c\x70\x98\xb8\x70\x83\ \x91\x77\x2f\x2c\x42\x3c\xe2\x43\x7c\x19\x00\x83\x2f\x57\xa7\xfa\ \xbe\xb6\xd5\x4e\xdf\xb5\x15\xb5\xef\x59\x54\x74\x0f\x22\xa3\x78\ \xfa\x35\xb4\xfe\x2b\xf8\x10\x48\x01\x64\xae\xe1\x80\x54\x01\x07\ \xf4\x5b\xe0\xfc\x0c\x22\x73\xb0\x79\x94\x9e\xad\xeb\xe9\xdf\xd9\ \x9d\x15\x78\x99\xa5\x6b\x65\x01\x46\x86\xf8\x69\xaa\xc7\xce\xda\ \x5b\xd2\xa8\xbb\x7e\x08\x21\x1b\xd1\x7f\x46\xbc\xd7\x50\x32\xe6\ \xeb\x2a\xc8\x14\xc8\x4d\x14\x05\xa0\x8c\xa2\x09\xa1\x35\x68\x05\ \xee\x47\x60\xd6\x31\xfa\x3e\x65\x57\xb6\x97\x94\x1d\x1b\x3c\x7d\ \x98\xc1\x55\x07\xf8\x70\x08\x1b\x38\x9a\xd9\xdb\x83\xb1\xf5\x2e\ \x54\x6c\x1f\xe8\xb7\x10\xef\x55\x58\x1c\x7c\x62\xb1\x2b\x99\xf4\ \x35\xb3\x08\x81\x14\x81\x32\x50\x03\x31\x1a\x00\xda\x00\x51\xa8\ \xb0\x83\x5a\x7f\x8b\x1d\xfb\x7b\x01\x7e\xb9\x16\x9f\x42\x83\x89\ \x4d\x1d\x76\x68\x9d\x87\xd9\xf3\x30\xc8\x75\xc4\x7b\x11\x05\x40\ \x18\x30\x40\x3c\xa0\x0a\xcc\x83\x94\x51\x94\x40\xe6\x41\x0b\x78\ \x26\xe8\x26\x44\x53\xe6\xba\x39\xec\x74\x86\x68\xdc\x1a\x38\x75\ \xb8\x9e\xfd\xfe\x4b\x0c\xaf\x26\xc0\x81\x78\x26\x81\xd1\x69\x03\ \x16\x78\xaf\xa0\x64\x1c\x21\x0a\x58\x80\x02\xd1\x80\x83\x62\x01\ \xa8\x80\xf8\xd2\x1a\x3c\x23\x90\x0e\xa4\x14\x18\xb1\x05\xba\xef\ \x48\xf1\xc9\xc7\x37\x07\x61\x75\x01\xb2\x56\x32\x84\x69\xdf\x01\ \x52\x06\xef\x0d\xa0\x88\xc2\x02\x15\x02\x51\x80\x06\x71\x01\xa7\ \xd1\x35\xcd\xc1\xcd\xc0\x81\x16\x08\x85\xb2\x5c\xd6\xa5\x23\x08\ \x1c\x58\xd5\x15\x52\x90\x35\xe3\x06\x18\xbe\xf4\x2c\xb8\xbe\x0c\ \x01\x55\x03\x51\x04\x25\xa0\x15\x88\x01\x9e\x02\x6d\x12\x38\x10\ \x5c\x37\xef\x07\x94\xa9\x11\xed\xad\xcd\x37\xb1\xf6\x5c\xc4\xab\ \x43\x7d\x0c\xdc\x10\x28\x0d\x0a\x50\x12\x00\x88\x6a\xa8\x39\xa0\ \x2f\x82\xa1\xdb\xa5\x4c\xd0\xda\x5d\x23\x00\xed\x82\x0f\x80\xe7\ \x40\xdd\x04\xc3\x08\x86\x57\x80\xd0\x04\x00\xc4\x58\x1a\x22\x70\ \x01\xb7\xa2\xd1\x6b\xe1\x80\xc0\xd9\xda\xad\x6a\xae\x5e\x98\xc3\ \x4a\x87\x9b\x0e\x48\x53\x04\x25\xed\x2e\x34\x7b\x2b\x40\x13\xcc\ \xad\xd6\xa9\x3b\x1e\x40\x61\xb5\x1d\x18\x76\xe6\x9c\x5c\x6d\xfa\ \x12\xf1\x81\x2c\x78\x51\xc0\x69\x77\x80\xa6\x03\x5a\x81\xb4\x02\ \xd0\x7e\xcd\x42\xa1\x46\x31\x5f\x43\xc1\xdb\xab\x0d\xf0\x7a\x75\ \xc6\x39\x56\x99\xbe\x45\xaa\x78\x05\x33\xd4\x07\xde\x65\x50\x04\ \x45\x00\x81\xa6\xe9\x44\x03\xa0\xcd\x0d\x51\xd4\xe6\xea\xd4\xab\ \x0e\xf9\xd9\x3a\xc0\xe9\x55\x05\xb8\xfb\x57\x9c\x1d\x19\xd2\xe3\ \x4e\xd1\x1d\xc8\x9f\x7f\x8f\xce\xec\x5e\x70\xaf\xb5\xde\xc0\xb4\ \xb9\xd0\x0a\x21\x2a\xe8\x40\xe1\x4a\x91\xd9\xe9\x3a\x4e\x55\x4e\ \xfa\x5f\x62\xe3\xab\xed\x00\x02\x87\xe6\xaf\xd4\xcf\x98\x89\x49\ \xe6\x26\xd6\x91\xec\xea\x01\x77\x8a\xb6\x12\x45\x70\x2f\xb4\x0f\ \x0e\x90\xbf\x52\xa0\x52\xac\x71\x75\xdc\x05\x38\xb1\x26\x81\x26\ \xeb\xbb\xf0\xc1\x11\x39\x39\x37\xee\x1d\x14\x7d\x1e\x76\xef\x26\ \xb9\x21\x0e\x52\x03\x05\x48\x9b\x0b\x01\x40\x50\x94\xa6\xca\x94\ \xae\x97\x98\xf8\x04\xb4\xcb\x33\x83\x2f\x31\xbe\x66\x89\xec\x9e\ \x5f\x73\xe8\xdc\x11\xc9\x19\x56\x68\x60\x56\x46\x71\x7a\x33\xd8\ \xbd\x11\x0c\xd3\x20\x28\x05\x42\x5b\x69\x4f\x33\x3b\x76\x93\xf9\ \xe9\x0a\x37\x66\x42\x94\xf2\xee\x59\x3f\x0b\x3c\xbf\x36\xc7\xe9\ \x20\xd0\x64\xcd\x70\x68\xa0\xff\x9e\xfd\x64\x76\x3d\xc8\xdc\x8d\ \x79\xae\x9e\x9b\xa4\x30\x51\xc2\x99\xaf\x83\xb4\x0f\xef\x54\x1c\ \x6e\x5d\xce\x33\xf1\xde\x35\xe6\x26\x2a\xd8\xa1\x1e\xb6\x6d\xd9\ \x8e\x15\x0e\x65\x7f\xff\x24\xd9\x35\xcb\xc4\xc3\x43\xd8\x22\x9c\ \xd9\xfe\xad\xfd\xc4\xfa\xba\x91\x7d\xcf\x11\x7d\x60\x81\xfc\xdf\ \x8e\x93\xff\xf0\x1d\xf2\x97\x0b\x98\x11\x83\x70\x3c\x4c\xb3\xa8\ \x96\xaa\x88\x0b\x86\x01\xf1\xb4\x22\xb1\xcb\x44\xb9\x37\x61\x3c\ \xce\x3d\x7e\x24\xfd\xfb\xfb\x63\x67\xfc\x3c\xb0\xd9\x5f\xa3\xc2\ \xaa\x3b\xa0\xe0\x54\xef\x7d\x5b\xed\x58\x26\x85\x6c\x3f\x84\xb2\ \x76\x63\x46\xee\xa6\x33\xf7\x12\x3d\x8f\x1c\x24\xd5\x73\x3f\xd1\ \xd4\x36\xd0\xeb\x41\x92\x40\x84\x44\x26\x49\xe7\xee\x28\x5d\xf7\ \x1a\x24\x07\xc0\x08\x2b\x54\x4c\x50\x03\x33\xd8\x49\x8b\xbd\x7b\ \x7b\x6d\xe0\xd4\xea\x39\x10\x04\x9a\x63\x89\x2e\x3b\x97\xd9\xd9\ \x07\x9b\x1f\x44\x75\x7c\x17\x58\x00\x99\x41\x7b\xbf\xc5\xea\xab\ \x61\x77\xf6\x53\x9f\x08\xe3\x95\x22\x28\xb5\x00\x46\x05\xc3\x98\ \x07\xe5\x80\x12\x14\xcd\x13\xa8\xa9\x08\x6d\xf4\x30\x32\x25\xb6\ \x5c\x4a\x33\x79\x2d\x9f\x3b\x75\xb8\x72\xcc\xcf\x03\xcf\xaf\x0a\ \xc0\x47\x43\xd8\x02\xc7\xfb\x1e\xd8\x09\xe9\x18\x6c\xfc\x31\xc8\ \x3c\x30\x8d\xb8\x3f\x6f\x9e\xff\x5d\x54\xa4\x4a\x64\x2b\x88\x63\ \xa2\x2b\x1e\xd4\x1c\xc4\x71\x40\xd5\x17\x87\x56\x86\xc2\x08\x1b\ \x7e\x6f\x9e\x4a\x23\xf3\x90\x8a\x70\xef\x9e\x8d\xbc\xf9\x97\x4f\ \x8f\xbf\x76\x98\x93\x8f\xf9\xab\xb4\xe2\x00\x0a\x8e\x77\xed\x1b\ \xb0\xc3\xa9\x30\x6c\xfe\x01\xa0\x9b\xc3\x3f\xdb\x88\x93\x00\x34\ \x73\x00\x55\x94\x55\x21\xb4\xee\xff\x03\xbd\x6a\x3f\x4e\x37\xcf\ \x4a\xf4\xcd\x11\x9f\xed\x60\x77\xbf\x6d\x8f\x5e\x2e\x1c\x03\x7e\ \xba\xa2\x99\xf8\xdf\x43\xd8\x66\x38\x74\x6c\xc3\x8e\x5e\xe8\xb6\ \x21\xf6\x75\xa0\x84\xb8\xcf\x81\x3e\x07\xcc\x36\x24\x37\x41\x6e\ \xa1\x24\x8f\xa2\x08\x52\x06\x16\x9a\x71\x32\x08\x30\xcd\x1e\x64\ \x86\xb0\x40\x57\x95\xad\x9b\x12\x58\x21\xe3\xf8\xab\x87\xb1\x57\ \xda\x81\x63\xf6\xe6\x4d\x98\x31\xa0\xf7\x31\x90\x22\xe8\x77\x50\ \xfa\x4f\x80\x19\x84\x19\x34\xe0\x82\xd4\x83\x44\x26\xea\xb3\x8e\ \xd0\xed\x20\x9b\x34\xd6\xb8\xe2\xce\xce\x28\x97\xa6\x2a\x81\x0b\ \x2b\x04\x70\x74\xc3\xce\x5e\xb0\xc3\x10\xda\x06\x14\xc1\xfd\x05\ \x50\x6a\x9a\x18\x00\x2c\x4a\x74\x70\x0a\x0d\x00\x02\x05\x6e\x04\ \xc7\x0b\x43\x41\x46\xd8\x5e\x8c\x72\x71\xaa\x72\x34\x00\x58\xe6\ \x0a\x8d\x3e\xcd\xc1\x54\x5f\xa7\x6d\x25\xa2\xd0\x77\x00\x74\x19\ \xea\x7f\x00\x6f\x06\xb4\x06\xed\x82\x38\x0d\x69\x0f\x3c\x69\x8d\ \x8f\xae\xd9\xe8\x4b\x25\x32\x31\x02\xd0\x6e\x83\xb8\x29\xf4\xa4\ \x2c\xfb\x95\x27\x38\xb8\x22\x0e\x28\x78\xb4\xa3\x6f\x03\x44\x2b\ \x10\xd9\x05\x7a\x0e\x6a\x6f\x80\x98\x41\x90\x41\x5a\x0f\x70\xa8\ \xb6\x2c\xd0\xda\x83\x55\x6a\x51\xc4\x80\x18\xf4\x26\x4d\xae\x15\ \xeb\x8f\x02\x27\x57\x62\x85\x06\x93\x7d\x9d\x90\xee\x06\x11\xf0\ \xae\x80\x73\x15\x94\xd1\x9e\x85\x59\xe2\x04\xaa\x83\x4c\xd0\xb2\ \x3e\x81\x0b\xc1\x7b\x36\x5a\xf4\xcc\x56\x01\x06\x97\xed\xc0\x7f\ \x9f\x66\x30\xd6\x65\x63\x5a\x21\x48\xf6\x83\x37\x07\xf5\xf7\xc1\ \x6b\xfd\xef\xb7\x9e\x42\x55\x6b\x98\x09\xee\x85\x25\x52\x99\x6a\ \x55\x26\x8c\x85\x26\x13\x33\xf8\xdd\x13\x7a\x10\x38\xbd\x1c\x07\ \x0e\xc4\x7d\x00\x42\x75\x88\xa6\x1b\xeb\x53\xbf\xd1\x00\x60\x89\ \x2c\xbc\x84\x0b\xc1\x3a\xb5\x01\x05\x0e\x01\xc4\x4c\x88\x40\x26\ \x0a\xd3\x0b\x1c\x58\x2e\x40\x36\xde\xb5\x0e\x22\x11\x10\x5f\x5e\ \x05\x9c\x29\xf0\xda\xd7\xa7\x1d\x22\x00\x69\x59\xa1\x60\xf0\xd6\ \xbf\x09\x41\x25\x43\x74\x45\x1c\x80\xec\xb2\x56\x48\x41\x6e\xd1\ \x01\x2b\x0c\xde\x3c\x48\x15\x3c\x09\x56\x08\x5a\x6f\x62\x54\xcb\ \x2a\xb5\x48\xb7\xf7\x60\xf7\x69\xad\x94\x85\x1d\x12\x80\xdc\xca\ \x04\x1a\xf1\xc0\x9d\x07\x6a\xe0\x85\x02\x07\x68\x5b\xa1\x16\x90\ \x76\x88\xf6\xeb\xa5\xca\x32\x56\x32\x0f\x54\x4a\xe0\x4c\x82\x11\ \x05\x49\xb6\x38\x10\xb8\xb0\x74\x9c\x6c\x17\xb7\x1d\x9e\xd9\xea\ \xca\x04\x1a\x81\xd3\xf9\x0b\x57\x07\xd7\xef\xe8\x83\x6b\xe7\x21\ \xdd\x01\x66\xb8\xe9\x80\x00\x7c\x8e\x03\x00\x5f\x60\xf0\xba\x86\ \x8f\xf2\x8b\x00\x17\xca\x00\x9c\x5e\xae\x03\xcf\x4c\x9f\x1b\xcb\ \x89\x27\x76\x7a\xcb\x46\x98\xaf\x40\xac\x0c\x49\x13\x0c\xb9\xfd\ \x4d\x0c\x2d\x03\x7f\xee\xe0\x63\x65\x5f\xa5\xc5\xeb\x8b\x65\x18\ \xc9\x53\x50\xf0\xcc\xb2\x9f\x52\xfe\xe7\x69\x06\xb4\xf0\x72\xbc\ \xb3\x23\x97\x1e\xe8\x22\xd5\x99\x04\xcf\x83\x88\x03\x51\x17\x62\ \x9e\x2f\x01\x73\x09\x17\x96\x1a\xb8\x58\x87\xd9\x6a\x20\xfc\x56\ \x83\xd1\x22\xcc\xd4\x18\x16\xe1\xd0\xe3\xbf\x61\x78\xc5\x9e\x52\ \x9e\x1f\xe2\xa0\x86\xa3\x56\x2c\x9c\xed\xf0\x21\x92\xa9\x18\xc9\ \x8e\x30\xa6\xa2\x01\xe4\x8b\x84\x80\xd6\xb4\x4b\x1a\x5d\x04\x66\ \x9b\xc7\x6b\x69\xe8\x66\x0d\xae\x2f\xc0\xa4\xaf\x79\x97\x71\x81\ \x13\x7e\xa0\x39\xb9\x6a\x8f\x59\x47\x86\xc8\x8a\x30\xa8\xe1\x80\ \x40\x2e\x9a\x08\x63\x18\x8a\x64\x32\x0c\x5a\x13\xb6\x0c\x22\x26\ \xa0\x35\xe2\x0b\x69\x40\xd5\x5d\x4d\xb9\xa6\x11\x11\x6e\x56\x05\ \xc7\x6b\x98\x20\x70\x56\xc3\xdb\x22\x9c\x1e\x0c\x1e\x2f\xb1\x4a\ \x00\xed\xfa\xd7\x11\xb2\x5a\x18\x08\x7e\x1b\xc1\x7e\x01\x5b\x0b\ \x34\x5e\x37\xbb\x50\xd0\x30\x12\xfc\x76\x82\xf1\x87\x5e\x6c\x1f\ \x78\x19\x00\x5f\xcd\xfa\x1f\x35\x30\x04\x37\x1b\x34\xa6\xbe\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x27\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x07\xee\x49\x44\x41\x54\x78\x5e\xd5\xda\x7b\x8c\x5c\xe5\ \x79\xc7\xf1\xcf\x7b\x66\x66\x67\xd6\xeb\xdd\xf5\xe2\xf5\xc6\x36\ \xc6\x60\xca\xd5\x26\x8e\x6d\xea\x62\xdc\xba\x10\xa2\x04\xd2\x8a\ \x04\xc2\x25\xae\x4b\xc3\x2d\x38\x29\x21\x94\x92\x56\xa4\x4e\x1c\ \x51\x88\x93\xa8\x88\x36\x95\x48\x43\x0b\x58\xa0\x12\x89\x06\x63\ \x6e\x49\x90\x0b\xb4\x29\x55\x84\x1b\x27\x34\x5c\x0c\xb6\x31\x6b\ \x7c\xc1\x97\xf5\xde\xed\xd9\xd9\x99\x39\x33\x6f\x23\x65\xff\xa8\ \x2c\x0b\x2b\x66\x2c\xad\xbf\xd2\x4f\xe7\xdf\xe7\xab\xe7\x7d\xf4\ \xbc\x47\xe7\x84\x18\xa3\xe3\x99\xc4\xf1\xcd\xf1\x2f\x20\xc6\xe8\ \x58\x1d\xa3\xb8\x42\x8c\x77\x88\xc7\x65\x07\xe2\x23\xce\xd2\x82\ \x0e\xd6\x5e\xe5\x4f\x51\x38\xae\x04\xf4\x7a\x26\x8e\x62\x98\xcb\ \xcf\xf6\x8f\x68\x46\x72\x5c\x08\xc4\x07\x30\xec\x74\x27\x12\x67\ \x22\x63\xf2\x95\x67\xfa\x08\x9a\x8e\x0b\x01\x07\x3c\x19\x87\x70\ \xf5\xf5\xbf\x49\x2f\xff\xfa\x47\xfe\x1e\xf9\x71\x2f\x10\x1f\xc6\ \xb0\xcb\xd4\xd1\xb1\x9a\x8e\x87\xa8\x51\x68\x36\x7f\x56\xbb\x19\ \x68\x1a\xd7\x02\x86\xac\x8a\x07\x71\xed\x2c\x6c\xc3\xb0\xf8\xb9\ \x93\x19\xe6\xa5\x2b\xdc\x8d\xfc\xf8\x16\xa8\x5a\x61\x00\x0b\x36\ \xe0\x5e\x3c\xc0\x79\x3f\x67\x3f\x33\x26\xbb\x1c\x05\xe4\xc6\xa5\ \x40\x5c\x6d\xa9\x1e\xfc\x31\x4c\x26\x3e\x47\x7c\x16\x5d\xe2\x65\ \x38\xc0\xcb\x57\xb9\x63\xdc\x0a\xe8\xf1\x8d\x38\x80\xcb\xd7\x62\ \x35\xca\xd8\x8c\x7f\x67\xe9\xe3\xf4\xb1\xa8\xcb\x35\x68\x46\x32\ \xae\x04\xe2\xfd\xce\x31\xe8\x6c\x73\xe1\x72\xe2\xf7\x31\x11\xad\ \xc4\x47\x71\x25\xf3\x50\xf7\xa1\x7f\xbe\xc0\x55\x68\x1a\x57\x02\ \x06\xdd\x19\x07\x71\xd3\xed\xf8\x4f\xec\x42\x0e\x79\xfc\x04\xef\ \x88\x5f\xbe\x4d\xad\x87\x4f\xcf\x74\x03\x0a\x08\xe3\x42\x20\x7e\ \x0f\x07\x5c\x61\x12\xf2\xf7\x12\x1f\xc1\x44\x04\x24\x68\xc3\x6a\ \x5a\xff\x81\x13\xf8\x50\x8b\x85\x57\xcf\x32\x0f\x4d\xe3\x42\xc0\ \xb0\x3b\xe2\x10\xae\xff\x03\xec\xc0\x8f\x90\x07\x40\x61\x4c\x6a\ \x50\xe6\x8b\x8b\xc5\x3e\xfe\xfa\xc3\x6e\x42\xd9\x07\x24\xeb\x08\ \xc4\xa7\x2d\xf0\x9e\x8a\x9c\x8b\x55\x4d\x96\xea\x90\xf8\xb8\xaa\ \xb2\xc4\x6c\x45\xf4\xa3\x82\x33\xd6\xe2\x9b\x68\x47\x02\x80\x0c\ \x12\x3c\xce\x82\x35\x46\x4b\xd3\xcd\x6f\xb1\x2c\xde\x60\x19\x48\ \x6d\x92\x68\x4a\x47\xfd\x47\x08\x06\x46\x2b\x36\x16\xab\x5e\xef\ \xca\x6b\x0a\x8f\x5b\xef\x7d\x08\x31\x46\xe0\x9f\xc2\xd7\x75\xb9\ \x51\xdd\x88\xd4\x6c\x75\x94\x30\x80\x12\x2a\x63\xa9\x13\xab\xa8\ \x61\x0a\xa6\xa3\x84\x6b\xbf\xc8\xa4\x55\xc4\x79\x68\x45\x06\x00\ \x50\x45\x9d\xb0\x51\xd8\xf7\x25\xe9\xdf\xfd\x8b\x58\xa0\xf4\x0e\ \x07\xb7\x93\x24\xd4\x23\x69\x20\x46\x92\x2c\x99\x84\x13\x0a\xe4\ \x32\xd4\xeb\x94\xd9\x1c\x6b\x9a\x9b\x12\x8f\x16\xd6\xf9\x1a\xc2\ \x98\x00\xbe\x1d\xa2\x0e\x62\x8a\x80\xe9\x18\xc1\x99\x93\xc9\xb7\ \x33\x6d\x3e\x9d\x8b\x31\x8a\x15\x88\x08\x00\x63\x66\x0f\xe3\x2e\ \xb4\x39\x3c\xfd\x84\x87\x71\x21\xb2\x20\x00\x40\xf1\x5e\xb2\x79\ \xde\x7e\x99\x2d\xff\xab\x36\x34\x60\xe0\x67\x7b\x25\x19\xfa\xb7\ \x12\x2b\x64\x12\x66\x36\x91\x7b\xc1\x14\x14\xc7\x04\x78\xe5\xcf\ \xc3\xef\x2c\x58\x64\xab\x21\xe2\x92\x76\xe6\x0f\xa2\x8a\x3a\xf2\ \x80\xcd\x78\x87\x18\xf1\x3c\xf2\x78\x0d\x23\x28\x61\x27\xda\x90\ \x71\x78\x52\x0c\x61\x26\x5a\x10\x31\x01\x73\x81\x90\xc5\x42\x9c\ \x80\x44\x70\x3a\xaa\xe8\x56\xfd\xd6\x05\xb6\xff\x98\xce\x02\x9f\ \x7f\xc3\x2d\x4f\xf4\x58\x8f\x2d\x63\x02\x84\x10\xdc\x75\xa9\x33\ \x56\x7e\xd2\xeb\x86\x34\xc5\xd9\xf8\xd4\x2e\x3c\x4c\xfc\x3a\x0a\ \xc8\x22\x83\x04\xd9\x43\x9e\x09\x32\x08\xde\x9f\x88\x1a\xea\x88\ \x88\x48\x11\x11\x51\x43\x8d\x10\xa9\x65\x85\x72\xdd\xc0\xcd\x83\ \x7a\x5f\x25\xdf\xa6\x74\xc9\x2f\xdd\xfc\x56\xd1\x76\xbc\x8b\x5d\ \xff\x5f\x00\x7c\xe2\x4c\x93\xd6\xdd\xaa\xc7\xb0\x5c\x9c\x88\x5b\ \x76\xe3\x13\xc4\xbd\x28\x38\xe6\x84\x88\x2c\x7d\x79\xa1\x50\xb5\ \xfb\x33\xdb\x54\x07\xc8\x4e\x50\x3e\xe5\x25\x7f\x92\x46\xbd\x78\ \x17\x7b\x51\x3d\x54\x00\x5c\x39\x57\xdb\xe3\xcb\xbd\x63\x48\xa7\ \x56\xe2\x97\x5f\xc3\x85\xc4\x0c\xb2\xc7\xb0\xf0\xf8\x9b\xc2\xd3\ \x3c\xd5\x21\x7b\x96\xf7\xa8\x0f\x50\xce\xeb\x9d\xf3\xdf\xbe\x30\ \x5a\xd7\x83\x6e\xec\x41\x84\xc3\x0a\x00\xc4\xef\x78\x59\xc5\x22\ \xc3\xc4\x7b\xee\xc3\xed\xd4\x5a\x90\x68\x18\x01\x49\xa4\x98\xa5\ \xa7\x59\x98\x90\xb0\xb7\xc7\xd6\x1b\x8a\x5a\x5a\xd8\x59\xf5\xea\ \x79\xeb\x7d\x05\x25\x74\x63\x1f\xe2\x91\xf7\x00\xc2\x57\x9d\x1f\ \xbf\x6d\xbd\x76\xe7\x85\xdb\x6e\x11\xbf\x7b\x03\xc9\x63\x94\x73\ \xc4\xd0\x98\xe3\x92\x44\xf6\x34\x53\xce\x0a\x6d\x91\x3d\xfb\x74\ \x2f\x1f\xd1\xde\xc6\xae\xaa\x37\xc6\x8a\x1f\x46\x37\xfa\x7e\xeb\ \x45\x16\xfe\xc6\xa2\xd7\x6f\xb6\xf2\x9c\x29\xee\x0a\x37\xad\x16\ \x6f\x3d\x91\x33\x06\x18\x0d\xd4\xa3\xa3\x26\x41\x25\xc3\xbe\x16\ \x72\x84\x76\xac\xdb\x61\xd3\x3d\x4c\x9b\xca\x43\x7b\xdc\xff\x95\ \x37\xad\xc1\x20\xba\x31\xe0\x10\x8e\x78\x84\x00\xa0\xfb\x4b\x56\ \xcc\xea\xb4\xca\x2e\xe2\xf5\x98\x57\xa0\x18\x89\x47\x2b\x50\x67\ \x7b\x1b\x4d\x84\xd6\x84\x9f\xee\xb7\xe5\x3e\xa6\x77\xf2\xd0\x7b\ \x1e\xb8\x6d\xa3\x1f\x62\x1f\xb6\x63\xf8\xa8\xaf\x12\x00\xa7\x7e\ \xcf\xb7\x9e\xbb\xda\xe6\x4b\x4e\xb3\x26\x3c\x48\xbc\x74\x94\x25\ \x09\x65\x47\x47\x26\xa2\x24\xc8\xb0\xf6\x80\xee\xc7\x98\xda\xc9\ \x5f\x6e\xb2\xf2\xc1\x1d\xd6\xe3\x3d\xec\x40\x11\x3e\xb0\x00\x7c\ \xf2\x87\x9e\x78\xf0\x62\xe7\xdd\x38\xdb\xff\xd4\x1e\x23\xb3\x24\ \x52\x89\x8e\x8a\x04\xb9\x32\xa1\xc9\x9b\xab\xe9\x98\xca\x15\xaf\ \xb8\xf9\x85\x5e\x9b\xb0\x6b\x2c\x25\x68\x98\x00\x7c\x7e\x9d\x9f\ \xdf\x38\x8f\xcc\xc9\x28\x47\x2a\x8e\x8e\x80\xb4\x46\x35\xd5\x31\ \x8b\x49\x29\x2f\xf4\x7a\x05\xfd\xd8\x86\x14\x1a\x2e\x10\xbf\xa9\ \xcb\x6e\x9c\x8c\x92\xa3\x17\x80\x0c\xfa\xab\x5a\xa7\x71\x70\x2b\ \xd7\x4c\x37\xe7\xd1\xdd\x9e\x42\x0a\xc7\x44\x40\xd1\xb2\x74\x94\ \xcc\x0c\x14\x1d\x7e\x06\x02\x80\xf7\x1f\xf2\x1c\x71\x94\x89\xa7\ \xd0\xf7\x06\x9f\x9a\xe2\xa3\xbf\x16\x78\x16\x8e\x9d\x40\xf4\x87\ \x6a\xe8\x40\x09\xb5\xc3\x14\x5f\x43\x8a\x66\xd4\xdf\x47\xa2\x8e\ \x1a\x3a\x19\xa9\x72\x52\xde\x6c\x14\x90\x43\xf5\xd8\xbc\x91\xa5\ \x96\xa4\x15\x74\x62\x04\xa3\x63\x29\xa3\x8a\x22\xb6\x60\x2b\xb6\ \xa1\x84\x14\x65\x8c\x1e\x26\x11\x9d\x54\x2a\x4c\x6d\x72\x16\x9a\ \xc6\xd2\xf8\x0e\xc4\x55\xd8\xa9\xb3\x30\x9d\x58\x44\x05\x00\x59\ \xf4\x63\x1f\x72\x68\x22\xf4\xa3\x17\x27\x12\x3b\x90\xa2\x0e\x80\ \x14\x09\x86\xe9\x9a\x41\xe1\x80\x09\x53\xb2\xa6\xee\x4f\xed\x87\ \xc6\x77\x60\xd0\x9c\x72\x99\x38\x15\x45\x8c\xa2\x8c\x1a\xde\xc5\ \x0e\x44\x42\x4a\xd8\xc0\xce\xa7\xd8\xf6\x24\x7e\x4c\xd8\x84\x22\ \x6a\xc6\xba\x81\x12\xb2\x18\xa2\x6b\x3a\xfd\x65\xfe\x6c\x9a\xdf\ \x43\xf6\xd8\x08\x04\xcb\xea\x29\xa1\x05\x15\xd4\x51\xc5\x66\x0c\ \x12\x72\x84\x3d\xec\x5f\xc7\xe0\x1e\x26\xb7\xd3\xd5\x41\xcf\x6e\ \xb6\xad\x21\xfc\x17\x61\xe7\x21\x57\xff\x0a\x11\x99\x36\x46\xaa\ \x5c\xd0\xee\x42\xe4\x90\x34\x5e\xa0\x6a\x49\xbd\x86\x56\x54\x30\ \x8c\x37\x51\x25\x0c\x52\xde\x40\xff\x26\xa6\x4c\x64\x6b\xd1\x4b\ \x2d\x6b\x5d\x3a\xe9\x49\x1f\xdd\x5d\xf3\x62\x57\x0b\xef\xbe\x4a\ \xdf\xb3\x84\x9f\x11\xfa\x90\xa2\x8a\x80\x36\xaa\x55\xa6\xe5\x9c\ \x8d\x02\x72\x8d\x17\xa8\x5b\x92\x6d\x26\x16\xb0\x17\x6f\x13\x6a\ \x84\xb7\xe9\x7f\x8b\x4c\x4a\x48\xf4\x9e\xf3\x13\xd7\x2d\x7c\xde\ \x9d\x78\x2f\x65\xd3\xfc\x17\x7c\xfa\x73\xbf\xb4\xa8\x90\xd7\x97\ \x96\x79\xeb\x25\x8a\x3f\x22\xbc\x45\xe8\x47\x16\x39\x26\xe4\x39\ \x31\xeb\x74\x63\x83\xdc\xd0\x8f\x7c\xf1\xab\x42\x7d\xb9\x18\x6f\ \x15\xeb\x77\x8b\xf1\x0e\x31\x2e\x17\x87\x3e\x2b\x96\x96\x8a\xe5\ \x65\xe2\xaa\x79\xee\xc1\x45\x38\x1f\x27\xa3\x19\x00\x19\x14\x1e\ \x99\xeb\xaf\xf6\x7f\x4c\xec\x3e\x5f\xdc\x78\xae\x18\x97\x8a\xf1\ \x6e\x31\xfe\xad\xb8\xf3\x22\xb1\x7b\xbe\xb8\xb8\xd5\x65\x68\x6f\ \x6c\x07\x46\x5c\x34\x92\xa2\x42\xd8\xc7\xc8\x2e\x0e\x1e\xa0\xad\ \xc0\xfa\x3e\xcf\x4d\xfa\x37\x9f\xf9\xda\xaf\x3c\x8d\xdd\x78\x13\ \x3b\x50\x02\x40\x0d\xa3\xd7\xbe\xe6\xbb\x53\x5e\xd4\xba\x37\xb5\ \xa6\xa5\x99\xd7\xb6\xb0\xf1\x09\xf4\x30\xa3\x93\x03\x35\x3e\xde\ \x6e\x01\xb2\x8d\x5d\x64\xc1\x67\x43\x8d\xb4\x4c\xf1\x20\xed\x05\ \x7a\x0e\xe8\x5e\xf2\x8c\xbb\x7f\x35\xa0\x1b\x43\xd8\x8b\xfe\x23\ \x2c\xa1\x14\x07\x17\x6f\xb0\xec\x8a\x29\xee\xb9\xf3\x14\x3f\x68\ \xc9\x3a\x6d\xc3\x4f\x99\xdc\x4e\x2d\xb2\x70\xa2\x25\xf8\x3e\x32\ \xa8\x35\xe6\x08\xdd\x6a\x4b\xf1\x3a\x31\xde\x28\x56\xaf\x53\xfa\ \x8b\xd9\x56\xe2\x22\x2c\xc4\x49\x68\xf6\xdb\x93\x20\xff\x9d\x53\ \x5d\xbb\xf9\x5c\x95\x8d\x1f\x11\x5f\x99\x2b\xfe\x62\x8e\x1e\x9c\ \x8a\x09\x8d\x9b\x81\x15\x62\xbc\x45\x5c\x77\xb1\x1f\xe0\x63\xf8\ \x7d\x9c\x86\x36\x04\x1f\x8c\x1c\x26\x3c\x73\xa6\xfb\xf7\xcc\x17\ \x8b\xbf\x0e\x16\xa0\xbd\x61\x02\x80\x93\xb0\x18\x1f\x46\x27\x32\ \x1a\x4b\x1e\xd3\xf0\xbb\x38\x17\x6d\x8d\x9b\x01\x12\x0c\x63\x13\ \x8a\x28\x6b\x3c\x65\xf4\xa3\x8c\x1a\x0e\x3a\x02\xc7\xfd\xef\x36\ \xff\x07\xe2\x88\x5c\xa0\xce\x9a\xc4\x5c\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x0e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x04\xd5\x49\x44\x41\x54\x68\x81\xed\x98\x4f\x4c\x5c\x55\ \x14\xc6\x3f\xc5\x44\x93\x66\x6c\x94\x56\x29\x35\x2d\x09\x63\x2c\ \x01\x69\x29\x43\x45\xde\xd0\xa1\x20\x14\xb0\xc8\x20\x4a\x5b\xb0\ \xe5\x4f\x05\x06\x34\x2d\xcd\xc0\x4c\x67\xf8\x2b\x28\x1b\xc5\x26\ \x6d\x44\x68\x69\x53\x18\xc0\x3e\xe9\xc4\x85\x49\x37\x1a\x6d\x17\ \x8d\x7f\x20\x94\xa8\x69\xdc\x19\xdd\x18\x17\x24\xa6\xba\x70\xd3\ \x5c\xcf\x6d\xd2\xc2\x7b\xf6\x9e\xab\x71\x01\xe8\x0c\xf9\x25\x84\ \xef\xe3\xbc\x77\x72\xbe\x7b\xef\x9b\x07\xc4\x3e\xab\xe0\x93\x08\ \x64\xd4\x01\x73\x0d\xc0\xac\x8a\x6c\xe0\x34\xa7\x4b\xdc\xc0\xa8\ \xce\x63\x68\xea\x54\x03\xf3\x39\xc0\x29\xce\xf3\x02\xf0\x35\xdd\ \x76\xdc\xdd\x06\xb6\x00\x46\x2f\x20\xfa\x18\x3c\x40\x84\xd3\x25\ \x7b\x01\x53\xe7\x29\x02\xa6\x38\x3d\x48\x14\x03\x93\x9c\xc7\x07\ \xdc\x8c\x35\xb0\xaa\x1a\x78\xe2\x41\x38\xf7\x38\x30\xc1\x91\xee\ \x40\x58\xe7\x29\xdc\x80\x9e\xea\x04\x4c\x70\xb8\xd6\xf3\x75\xf2\ \x1c\x88\xa4\xaf\x43\x88\xf3\x18\xeb\x10\xa1\xdb\xbe\x6f\x69\x02\ \x0e\x18\x3d\x1e\x88\x5e\x06\xcf\x56\x44\x38\x5d\x12\x34\x60\x8a\ \x6e\x08\x0e\xef\x36\x4c\x71\x35\x02\x06\x4d\xc0\x89\x49\xce\xd3\ \xec\xba\x3d\x81\x07\x62\x0d\xac\x70\x03\x4b\x6b\x20\xde\x81\x6d\ \x2f\xa7\x62\x74\x7f\x1a\x46\x54\x6c\x7f\x1c\x27\x38\x5d\x52\xf5\ \x34\xba\xa2\x55\x18\xe1\x30\x92\x10\xe2\x6a\x78\x53\x70\x6e\x67\ \x22\x3a\x38\x4f\xa1\x13\xe7\xe9\xb6\xef\xbf\xdb\x40\x42\x3c\xb2\ \x6a\x4b\x30\x57\x5f\x8a\x59\x15\x59\x4f\x61\x98\xd3\x25\x75\xc5\ \x18\xbb\x7a\x0a\xb3\x1c\x79\x19\x18\xe1\x6a\x1c\x7c\x0e\xd7\x77\ \xa5\xf0\xd7\x7a\x3e\x07\xb3\xd6\x6d\xf4\x31\x8a\x50\x1d\x8d\xa7\ \x5e\x8d\x67\x3b\x45\x88\xd1\x25\xc1\x83\x14\xa1\x2b\x14\x15\x06\ \xef\x6e\x8a\x10\x53\x23\x50\x4d\x11\xda\x45\x11\x62\x3c\xcd\xe5\ \xf6\x35\xb0\xe6\x1b\xd8\x08\x77\xe7\x61\x88\x2e\x06\xd9\x00\xa7\ \x4b\xa8\x81\x0f\xff\xf8\x04\x82\xa3\xdc\x8d\x29\xae\x86\x7f\x3f\ \x44\xa1\x0b\xd3\x9c\xe7\xd5\x32\xdb\x22\xce\xcc\x44\x72\x7f\x3f\ \x4c\x8e\x92\x12\x74\xe6\xe7\xc3\xe4\xa8\xac\x44\x8f\xae\x8e\x61\ \x20\xc4\xd5\xf0\x78\x30\x53\x53\x83\x4e\xae\x86\xdf\x0f\xd3\x72\ \x90\x65\x67\xc3\xb8\x75\x8b\x46\x2c\xd4\xd4\xd7\x53\x84\x7a\x69\ \x84\x0c\xc1\x20\x45\x88\xa9\x21\xf1\x7a\x29\x42\x4c\x8d\x40\x00\ \x62\x68\x08\x93\x5c\x8d\x85\x05\x5b\x84\x62\x0d\xac\x74\x03\x72\ \x0d\x98\x26\xce\xce\xcc\xe0\xcc\xbd\xb8\x74\x09\xa3\xe5\xe5\x68\ \xaf\xaa\xc2\x19\x8e\x43\x87\x10\x52\xd5\xb8\x03\x65\xbc\x83\xab\ \x51\x51\x81\xf3\xad\xad\x38\x2e\xaf\xa9\xaa\x71\xf2\x24\xce\x59\ \x0e\x32\x17\x4d\xe0\xda\x02\xc4\x17\xdf\xa8\x69\x0b\xc0\xfc\xf2\ \x5b\x88\x3b\xdc\xcb\x13\xee\xc3\x47\x5c\x0d\x49\x41\x31\x66\x1a\ \x5a\x20\x54\xd4\x34\x40\xb4\x87\x11\xe5\x6a\x8c\x9b\xf8\xdd\xb2\ \x0b\xc9\x06\x7e\xa5\x08\xdd\x14\x6a\xe8\xe6\x22\x9c\x2e\x19\x7c\ \x17\xa6\xce\x53\x4a\x11\x0a\xf6\x51\xdc\x14\x1c\x0b\x52\x1d\x8a\ \x10\x57\xe3\xda\x82\x6d\x1b\x5d\xa3\x0d\x2c\x5b\x03\xcf\xc0\xfd\ \xdd\x0f\x10\x37\x7e\x52\xe3\x0f\xe2\x03\x4e\x97\x74\xbf\x85\xe8\ \x8d\x1f\xe9\x77\x86\xa2\x52\x5c\x6c\x39\x0e\xa1\x42\xc6\x28\x4c\ \x7b\xfd\x5f\xea\x2f\xab\x11\xbd\x8c\xdf\x2c\x0d\x24\xef\x84\xb3\ \x6d\x18\xe3\xfe\xf7\x71\x41\x45\xc9\x11\x04\x39\x5d\x52\x79\x14\ \x9d\x3a\xcf\x8e\x5c\x04\x9e\x2d\xc3\x05\x15\x59\xc5\x88\xec\x6b\ \x42\x80\xab\xd1\xf0\x06\x26\x2c\x8b\x38\x95\x22\xf4\x19\x45\xe8\ \x8a\x50\x53\x4b\x11\xe2\x74\x49\x2b\x45\x48\xe7\x71\x53\x84\xa8\ \x96\x50\x71\x80\x22\xf4\x1a\x45\x88\xab\x31\x66\x8f\x50\xac\x81\ \x95\x69\x60\x69\x17\x72\xd2\x41\x76\x62\x1c\x91\x30\x43\x59\x33\ \x82\x9c\x2e\x79\xf1\x18\xba\x74\x9e\xf4\x5c\x84\x72\x2b\x10\x51\ \x91\x53\x86\xe9\x72\xcd\xb5\x7c\xef\x60\xd2\xb2\x06\xb6\xd0\x04\ \xda\x7f\x86\xe8\xf8\x45\xcd\xee\x30\xa6\x38\x5d\x92\x3f\x88\xa8\ \xce\x53\xf0\x26\x2e\x72\xfa\xeb\xdf\x43\xec\x19\x80\xc9\x79\x0e\ \x7f\x7a\x7b\x17\x8a\xb3\x34\xd0\x4b\x11\xea\x13\x6a\x3c\x14\x21\ \x4e\x97\xec\xa5\x08\xe9\x3c\x45\x6f\xd3\x8b\x2d\x46\x0f\x2e\x52\ \x1d\x8d\xc7\x67\x8f\xd0\x7f\xa2\x81\xa6\x39\xfa\xaa\x36\xaf\xc6\ \xa0\x67\x21\x4e\x97\xe4\xd1\xb3\x90\xce\xe3\xe9\xc6\x0c\xa7\xd7\ \xd1\xd7\x4e\x77\x08\x51\xce\xf3\xd2\xb4\xed\x59\xe8\xe1\x1d\x78\ \x32\x95\x9e\xfe\xd2\xa2\x18\x51\x91\xd0\x88\x76\x4e\x97\x6c\x6e\ \x43\x48\xe7\x49\x68\x41\x07\xa7\xa7\x4c\x60\x6c\xb3\x0f\x7e\xce\ \xe3\xb4\x3f\x8d\x3a\x68\x02\x1e\x8a\x90\x47\xa8\xd9\x4a\x11\xe2\ \x74\x49\x32\x45\x48\xe7\x71\x52\x3c\x38\xdd\x58\xd4\x7b\x5c\xf6\ \x73\x60\xd5\x35\x40\xe7\xc0\xff\xab\x81\x87\x92\x90\xb4\xe9\x08\ \x06\x36\x35\xaa\x59\xef\x46\x13\xa7\x4b\xe2\x0b\xd0\x9a\xd8\x84\ \x7e\x8e\x47\x72\xe1\xb3\xff\xcd\x52\xa7\x16\x83\x8f\x7a\xd0\xa8\ \xfa\x7f\xe9\xd9\x78\x00\x83\x58\xfe\x56\x02\xf4\x38\x0d\x9a\x00\ \xfb\x43\x13\xd0\x38\x04\x68\x02\x5a\x0f\x4d\x80\xd5\x17\xff\x86\ \xc7\x3e\x01\x50\x84\x62\x0d\xac\x68\x03\x19\x70\xe1\x73\xcc\xe1\ \x2a\xbd\xf5\x55\xe1\xc3\x7b\xac\x2e\xf1\xe3\xac\xd6\xd3\x86\x61\ \x56\xff\x18\xd7\x71\x54\x73\xad\x51\xdb\xdb\x69\xe4\x20\x8d\x04\ \xbe\x81\x00\x86\xb4\x37\xd7\x8f\xd3\x5a\x4f\x0f\xcd\x89\xd3\x2f\ \x63\x1e\x5d\x1a\xcf\x04\xbe\xb2\x1c\x64\x6b\x34\x42\x71\x6b\xbd\ \x81\x55\xbc\x88\xe9\x20\xfb\x67\x0d\x64\x62\x03\x06\xd0\xc8\x52\ \x8d\x52\xad\xa7\x11\xfb\xfe\x75\x9d\x1e\x34\xe3\x15\x14\xb3\x9e\ \x76\xf2\x58\x0e\xb2\x35\xfc\xf9\x13\xd5\x98\xa6\x54\x48\x88\x3c\ \x6f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x09\xf1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x09\xb8\x49\x44\x41\x54\x78\x5e\xbd\x99\x6b\x6c\x53\xe7\ \x19\xc7\x7f\xc7\x10\xc7\x4e\x0c\xd8\x21\xc4\x21\x24\x21\x71\x80\ \x84\x4b\xd2\x34\xac\x12\x81\x16\xd2\x82\x2a\xb4\x2b\xeb\x85\xee\ \x43\xdb\xb1\x09\xb6\x6a\xfb\xc2\x97\x49\xd3\xf6\x05\x3e\xed\xc3\ \xa4\x29\xda\xa6\x4d\xad\xb4\x36\x53\x5b\xa9\x55\xab\x36\xdd\xd6\ \xad\x1d\x61\x4d\xbb\x95\x02\x25\x60\x2e\x05\x3b\x6d\x52\x27\x36\ \x71\x02\xc1\x76\x82\x73\x33\xcc\x67\xef\xfc\x2a\x7d\x75\xce\x89\ \x1d\x7b\x83\x3e\xd2\xa3\xd7\xef\x93\xe3\x93\xff\xff\xb9\xbd\x17\ \x6b\xdc\x69\x69\x7b\xe9\x1e\xc0\x0d\x74\x60\x95\x50\x46\xcf\x3e\ \xf9\x3e\x77\x48\xb4\x3b\x00\x78\x2d\xb0\x4f\xaa\x04\xbd\xcc\x5d\ \x9a\x51\x83\xe8\xa0\x03\xd1\xa1\x6b\x48\xa1\x7b\x5e\x05\xa1\x89\ \x2f\x8f\x80\x02\xbe\x0b\x38\x0c\xec\x2b\x5f\xed\x61\x53\x9b\x8f\ \xf2\x4a\x0f\x6b\xea\xbd\xa0\x43\xd5\x32\x70\x2e\x05\x5d\x81\xa7\ \x7f\x1c\x74\x1d\xc6\x47\x63\x04\xfd\x83\x84\x82\x11\x92\x13\x53\ \x09\xa0\x0b\xe8\x14\x44\x86\xee\x1e\x01\x05\x7c\x05\x70\x04\x38\ \xbc\x69\xab\x8f\xf6\xdd\xcd\x6c\xdf\xe0\xa2\xa1\x0c\xd6\x2c\x83\ \x75\x65\xe4\x94\x1b\xd3\x92\x88\x3f\x0a\xe7\x46\x60\x24\x34\x46\ \xdf\x07\x17\x18\x1d\xbe\x96\x40\x92\x38\x7a\x77\x08\xa8\xfc\xee\ \xaa\xf6\x55\xb4\xee\xdd\xdf\xce\xee\x4d\x2e\x1e\xf6\x41\x99\x13\ \x00\x62\x33\x70\xf5\xa6\x54\x74\x00\x15\x81\x32\xa7\xd4\xf5\x2b\ \x15\x80\xf1\x69\xf8\x68\x08\x8e\x0d\xc0\x95\x8b\x61\x4e\x1e\xeb\ \x43\x44\xc4\x0f\x1c\x10\x44\xce\xdf\x39\x02\x0a\x7c\xef\xd6\xfb\ \x1b\xdd\x8f\x3e\xf1\x15\xf6\x6f\x84\x06\x0f\xcc\xdc\x82\x7f\x86\ \xe1\x4c\x54\x12\xd0\xe7\x81\xeb\x48\x45\x8e\xc8\x39\x69\x5d\x46\ \x4a\x10\xe1\xc1\x7a\x58\x59\x02\xd3\x29\x78\xf5\x22\xfc\x23\x98\ \xe2\xe4\xdf\xfb\xf8\xec\xe2\x60\x02\xd8\x97\x4f\xb1\x6b\x05\x14\ \xaa\xff\xab\x4f\x6c\x73\x3f\xfc\x60\x03\x3f\x68\x05\x67\x11\x7c\ \x32\x0e\xaf\x5d\x91\x24\x74\x14\x70\x45\x22\x9b\x2a\x32\x2d\x5e\ \x78\x7c\x8b\x24\x22\x52\x8a\xe7\xcf\xc0\xc7\x1f\x06\x38\xd5\xd3\ \x07\x92\xc4\x5b\x77\x82\xc0\x7b\xcd\xf7\xf9\x3a\x0e\x1e\x6c\xe7\ \x50\xab\x2c\xce\xbe\x51\x78\x3d\x68\x48\x95\x05\x81\x83\x05\xb4\ \x9a\xa7\xd5\xfc\x6b\x1b\xe0\xeb\x4d\x30\x9c\x80\x5f\x7e\x00\xa7\ \x05\x89\xd3\x3d\x7d\x09\xa0\x23\x57\x3a\x2d\xc9\xa7\xdb\x14\x3b\ \x8b\x8e\x7c\xe7\x87\x0f\xf1\x64\xcb\x12\x2a\x4a\xe0\xec\x18\xbc\ \xd1\x0f\x9a\x26\x15\xa1\x99\x61\x7e\x44\xfd\xcd\x2c\x5a\x16\xaf\ \xf5\xdf\x80\xe0\x75\xd8\x55\x0f\xf7\x56\x41\x28\x5d\x4e\x3c\x36\ \xe5\x88\x5d\x8b\x6f\x63\xf5\x23\xaf\x10\x7d\x63\xee\x7f\x22\x20\ \xbe\xdc\xb5\x7d\xcf\xe6\xba\xfd\x1d\x55\x6c\x5f\x03\xd1\x24\xbc\ \x78\x59\x01\xd4\x4c\xe0\x51\x36\x8b\x2a\x41\x3d\x6b\xea\x50\x9f\ \x8c\xc1\xee\x75\x50\xeb\x86\x61\xcd\xcb\xd5\xc1\x68\xe5\xcc\xd4\ \xac\x43\x10\x78\xb7\x30\x02\x2a\xf7\x3b\x9f\x38\xb4\x8b\xa7\x9a\ \x97\x64\x52\xe7\xf5\x7e\x98\x98\x53\x9e\x57\x9e\x56\xc0\xc1\x8c\ \x5e\x11\x5b\x4c\x26\xe7\x60\x30\x06\x8f\x6c\x86\x39\x7d\x09\x93\ \x8e\x95\x04\xcf\x7d\xf6\xdf\x28\xf4\x0a\x12\x43\xf9\x11\x50\xde\ \x3f\xd0\xd8\x52\xbd\x77\xef\xee\x06\x1e\xa8\x86\xd1\x29\x38\x1e\ \xb6\x7a\x1f\x33\x09\x2d\x9b\xf7\xf3\x23\x31\x3e\x25\xc7\x47\xb7\ \xc0\xb9\x71\x27\xd3\xb7\x40\xac\x13\x75\x82\xc0\x1f\x31\xc9\x52\ \x72\x4b\x47\xdd\x7a\x2f\xf5\x2b\x00\x20\x34\x09\x36\x05\x00\x7d\ \x1e\xbc\x6c\x97\x68\xd2\xb6\xa0\xd8\x80\xb4\x22\xa1\x6c\x92\x2c\ \xe8\x46\x27\xfc\x39\x00\xed\x35\xf0\xfd\xfb\xe0\x6a\xac\x89\xcb\ \x1f\x07\x3a\x52\xa2\x1e\xcd\xad\xd5\x46\x6e\x69\x5d\x5d\xe3\xc1\ \x29\x69\x52\x59\x8a\xf4\xae\x4d\x8e\xb6\x8c\xca\xb9\xcd\x6a\xc7\ \x66\x93\xaa\x69\xca\xae\x46\xb3\x5a\xa3\xf8\x97\x00\x34\xad\x82\ \xf5\x5e\x3b\xb5\x1b\x6a\x00\x0e\x17\x9a\x42\x9d\xf7\xb6\xfb\xa8\ \xaf\x72\x31\xfb\x6f\xa8\x2c\x91\x00\xa2\x53\xd6\xee\x83\xb9\x28\ \xb5\xc5\xd3\x46\x27\x87\xe8\x30\x3c\x21\xa3\x50\xb4\x04\x82\x09\ \x3b\x62\x81\x6b\x12\x69\x74\xb4\x90\x08\xf8\x35\x0d\x2e\xde\x80\ \xb7\x43\xf0\xfc\x65\x49\xa2\xd1\xa3\x3c\x29\x3d\x2c\xc7\x6c\x9e\ \x7d\xa8\x16\x0e\xb6\xc0\x63\x8d\x50\xe6\xc8\xd1\xbd\xb0\x36\x84\ \xe3\x03\xb2\xad\xae\x5e\xeb\x55\x9b\xc8\x02\x08\xb8\x05\x28\xe6\ \x66\x53\xbc\xf4\xfb\xf7\x39\x77\x36\xcc\x5f\x87\xc1\xed\x50\xe9\ \xb4\x58\x4a\xb4\x97\xa7\x78\xf7\xdd\x00\x47\x9f\xbb\x40\xff\xa5\ \xb0\x5c\x08\x8b\xb2\x3d\x6f\x25\xe1\x8f\x42\x79\x29\x94\x14\x41\ \x65\x6d\x05\x40\xeb\x22\x04\x54\x0b\x75\x38\x8b\xea\xaa\x6a\x3c\ \x9c\xfb\x68\x90\x2b\xfe\x08\x2f\xfd\xee\x03\xce\x9e\x18\xa0\xef\ \x3a\xb8\x8b\x25\x09\x95\xfb\x56\x20\x9e\x62\x08\xc4\xc1\xb1\xb9\ \x89\xda\x1d\x2d\xf4\xe9\x5e\x02\xe1\x24\x3b\xaa\x17\xf6\x36\x56\ \x12\xdc\x98\x91\x5d\xa9\xd6\x0d\xae\x15\x2e\x00\x77\xbe\x11\xe8\ \xde\xb1\xa7\x09\x67\xa9\x9d\xd9\x99\x14\xf3\xf2\xda\x0b\x27\x19\ \x8d\xc4\x18\x98\x84\x54\x5a\x82\xc8\xa6\x13\x29\x98\xd4\xed\x20\ \xe7\x38\x9c\x76\x3e\x4c\xb8\xd8\xbc\x22\x25\xe6\xd9\x49\x60\xb2\ \x85\x27\x00\x10\x04\x4a\x17\x89\x80\xf2\xfe\x0b\xa2\xfb\xb4\xde\ \x2f\x08\xd8\x34\x70\x96\xd8\x51\x02\x97\xcf\x45\x32\x5e\xbf\x79\ \x4b\x75\x20\xa9\x66\x12\x66\xaf\xca\x45\x90\x22\x3b\xb6\x99\x64\ \x96\x26\x60\xb5\x45\x26\x15\x29\x73\x04\x96\x62\x05\xff\x5d\x91\ \x3a\x07\x9e\xfa\xf1\x4e\x4a\x4a\xed\x19\x10\x3b\x1f\x6e\xa2\x7a\ \xad\x07\x34\x58\x53\xeb\x99\x27\x84\xae\xd6\x00\xac\xcd\x47\xda\ \x35\x1d\xf5\x2c\xa0\xeb\x64\x3a\x9a\x6d\x7a\x0a\xcd\xe1\x12\x76\ \xb5\x06\xc8\x77\x19\x17\x14\x4d\x6e\x31\x14\x29\x93\xd8\xb0\x82\ \xef\x3a\xf4\x93\x3d\x94\x95\xbb\x40\x79\x92\x75\x1b\xbd\x6c\x6d\ \xf1\xb2\xa3\xd6\xce\x16\xcf\x22\xc5\x6b\xf6\xa4\x9c\x5b\x5b\xaa\ \x66\xb5\x59\xa3\x20\x09\x28\xa1\xd7\x4a\x40\xed\x7b\xba\x9e\xfc\ \xd1\x2e\xaa\x6a\xca\x0c\x3b\xca\x0a\x27\x3c\xee\x83\x76\x2f\x7c\ \x9e\x84\x2b\x93\x39\xd2\x05\xc0\xbc\xbd\xc0\x48\xc2\x5d\xac\xec\ \x16\xf0\x39\x36\xfa\xd1\xa1\xb1\x9c\x11\xd8\x57\xbf\xa1\x02\x5f\ \xa3\xd7\xf0\x0f\x37\x7b\x60\xbf\x0f\x4e\x5d\x83\x63\x23\x70\xf3\ \xb6\xa9\xf3\x64\x01\x6a\x15\x05\xde\xe3\x80\x50\x34\x99\xdf\xe1\ \x44\x83\xe9\x5b\xf2\x1c\x9d\x9a\xbb\x05\xe0\xcf\x46\x20\x34\x2b\ \x9e\x44\x81\x60\xbb\x17\xf6\xd6\xc0\x9f\x86\xe1\xea\x74\xf6\x54\ \x81\x6c\x24\xac\x1e\x6e\xaf\x82\xd0\x48\x12\xbd\xc4\x95\x6d\xb5\ \x36\xda\x81\xc8\x04\xa4\x66\x53\xc4\xc6\xe2\x39\x08\x88\xa3\x5b\ \x34\x12\xf7\xbf\xfd\xea\x19\xe6\x65\x95\x53\x8e\x91\x29\x03\x06\ \x05\x3c\x0f\xf1\x96\x28\x20\x95\x25\x92\xc0\x2b\x3d\x11\xd6\xae\ \xf3\x16\x74\x2c\xec\xbf\x30\x28\xc1\x8b\xab\x97\x5c\x6d\xb4\xe3\ \xc3\xe3\x41\xe2\xe3\x49\x74\xe0\x9d\xb0\xec\x18\x0d\xcb\x51\xf7\ \x3b\x4a\x41\x5f\x1c\xfc\xc1\xcd\x70\x68\x0b\x3c\xbd\x09\x9e\xb9\ \x47\x7a\xff\xc4\x48\x01\x7b\x22\xe4\x4e\xe0\xd2\xe9\x00\x40\x67\ \xee\x2e\x24\x6f\xc8\x70\xc8\x36\xc9\x9c\x00\xdf\x3b\x02\x0d\xcb\ \x80\x85\xce\xb5\x18\x89\x01\x6a\x0e\x8c\x4d\xc3\x5b\x67\x62\x99\ \x15\xbb\x6e\x39\xf8\x83\x31\x9e\xf9\xd5\x45\x1a\xdb\x7c\x26\xe4\ \xea\xfb\x0b\xd9\xc5\xbd\x51\xe6\xba\x45\xe0\xb3\x9e\x07\xcc\xe7\ \x5f\xd1\x46\x33\x2b\xe6\x3c\x88\x4b\x31\x68\x2b\x37\x02\x53\xbd\ \xdf\x40\x44\x82\x30\xfd\xed\xe3\x69\x17\xcf\xfe\x22\xc0\xcc\x74\ \x8a\x62\x87\x9d\x96\xbd\x5b\xb1\x17\xdb\x89\xdf\x48\xb2\xdc\xed\ \x32\x82\xc5\x2a\xc1\xf3\x03\x5c\x3a\x15\x4c\x00\x07\x00\x72\x13\ \x80\x8e\xb6\xed\x3e\x05\x42\x03\x80\x70\x12\xec\x1a\xcc\xa5\xa5\ \x49\x01\x54\x23\x59\x22\x52\xec\xb4\xb3\xed\xc1\x26\x15\xb9\xb4\ \x1c\x43\x9f\x8e\xd1\x7c\x9f\x4b\x81\xc6\xfc\x0e\x79\x05\x79\xe2\ \x9d\x3e\xcc\x17\x5d\xb9\x6a\xa0\xfb\xc4\xf1\x60\xe2\x5f\x3d\x01\ \x74\x54\xca\x7c\x3a\x01\x6b\x4a\x91\x20\xd2\xa6\x51\xa9\xaa\x0f\ \x72\x10\x03\xce\x9f\x1e\xc0\xa9\xbc\x6f\xf8\xce\xbc\xed\xba\x00\ \xff\x56\x57\x0f\xa2\x75\x1e\x50\x77\x43\x8b\x47\x00\xf7\xca\x52\ \xf7\xc6\xd6\x6a\x43\x4e\x0e\x27\x61\x47\xa5\x24\xa2\x99\xf2\x55\ \xdd\xbe\x59\x55\x01\x57\xf3\xd9\xe9\x14\xc7\xde\xec\xe3\xe9\x9f\ \xee\xe3\xb6\x2e\xd3\x11\xd3\x33\xd7\xa3\x31\xba\x5f\x10\xe0\x67\ \x05\x78\x95\xf7\x79\x11\xa8\x13\xf9\x8f\xbb\xcc\x65\x29\xaa\xd9\ \xdb\x32\xfc\xba\x66\xb0\xe7\x24\x81\x29\x22\xa2\x0e\x78\xf1\xb7\ \x3d\xb8\xdc\x2e\x8a\x1c\xf6\x0c\x81\x22\x53\x04\xe6\x66\x52\xbc\ \xf9\x7c\x06\x7c\x97\x02\x9f\x3f\x81\xde\xd1\x48\x3c\x34\x12\x8e\ \x89\x73\x40\x99\x01\x67\x62\x4e\x81\xc2\xcc\x41\x11\xc8\xa6\x12\ \xfc\x6f\x7a\x18\xbb\x1a\xa7\xe3\xb1\x6d\x19\xdb\x6d\x09\xc0\x10\ \xa5\x37\xfe\xf0\x05\xf8\xef\x91\x55\x72\xb7\xd1\x50\x7c\x7c\x2a\ \x03\x40\xe5\xba\x8c\x40\x5a\xb7\xa8\xaa\x83\x74\x76\xf0\x81\x0b\ \x61\x7e\x7d\xa4\x3b\x03\xbe\xed\xa1\x66\x36\xdc\xdb\x40\x5a\x16\ \x33\xb7\x55\xa4\x38\xf5\xde\x05\x51\xb8\x71\xbf\xe1\xf0\x5e\x60\ \x04\x00\xdc\xa2\x73\x08\x50\xc6\x3b\x9d\xd0\xa4\x69\x9f\x63\xe9\ \x44\xd6\xc5\xee\x73\xd1\x69\x7a\xdf\xbe\xc0\xd0\x67\xd7\xf0\xd6\ \x55\xf0\xc0\xb7\xdb\x59\x5e\xe6\xca\x00\xb7\x81\x8c\x82\x06\x45\ \x3a\x4c\xc4\x93\x9c\x3a\x7e\x71\xbe\xe3\x4c\xfc\x3f\x04\x12\xa2\ \xd0\x54\xba\x68\x12\x8c\xa6\xa9\x54\x31\x8a\xb5\x50\x03\xe7\xc3\ \x7c\xf4\x5e\x80\xa1\x4f\xaf\x51\xdf\xe2\x63\xcf\xd3\x2d\xac\xae\ \xf7\x62\xb3\x19\x8b\x3b\xad\xab\xab\x11\xff\x89\x00\x40\x97\xb5\ \x5d\x16\x4e\xa0\xeb\x6f\xaf\xf7\x75\x88\x28\x50\xbf\xde\x6b\xb9\ \xb0\x32\xd6\xb0\xfa\x10\x8d\xc4\xf0\x9f\x1c\x14\xe0\x23\x2c\x75\ \x95\x52\xdf\xec\xa3\xed\x9b\xbb\x10\xef\xc1\xa6\xa1\x52\x12\x25\ \xb6\x0c\x19\x19\x85\x81\xcb\x11\x80\x6e\x0a\x14\x2d\xcb\x91\xf2\ \x5b\x40\xe7\x8a\xb2\xd2\x3a\x41\x02\xd1\x5a\xa9\x13\x63\x65\xb5\ \x07\x20\x73\x46\x4e\xc4\xa6\x10\x05\x4f\xa8\x7f\x2c\xb3\x28\x95\ \xae\xf4\x50\xb3\xc5\xc7\x9a\x0d\x35\xd8\x25\x68\x6c\xea\xb8\x89\ \xa6\xe6\x4a\xd5\x45\x18\xcf\xfe\xec\x65\x80\xba\x42\x7f\x27\xd3\ \xf2\xf8\x55\xa6\x03\x68\x55\x6a\x14\x4f\x75\x05\xeb\xb7\x35\xb3\ \xaa\xd6\x8b\x04\xa9\x2d\x04\xd0\x4a\xc8\x44\xe6\xb9\x9f\xbf\x8c\ \x00\xaf\x51\xa0\x2c\x25\x97\xc8\x7c\x3c\x6f\xfa\x81\xef\x30\x70\ \x04\x60\x95\xaf\x9a\xd6\x6f\xec\xcc\x00\x50\x85\xa9\xa3\xa3\x91\ \x06\x90\x36\x4b\xce\x03\xd8\xd2\xa0\xdb\x90\x76\xd4\xfb\x65\x01\ \x17\x42\xa0\x10\x91\x2f\x3f\x2a\x88\x74\x03\xbd\x35\xf7\x34\xba\ \x0d\x45\xa9\x2a\x1a\x1b\x1a\xba\xae\xec\x2a\xe7\x91\x2a\x49\x9b\ \x7b\x79\x2b\xf0\x3e\x05\x88\x8d\x42\x45\x45\xa6\x73\xd8\x1f\x44\ \x37\xad\x09\x4a\xf5\x2c\x76\x16\xb4\x57\xd6\xa9\x5b\xb7\xbb\x4b\ \x40\x49\xe7\xf8\xe7\x11\xc4\x51\x2f\x2f\x80\xe9\x45\xec\x6b\x37\ \xd6\x00\x1c\xf8\x72\x08\xa8\x74\xea\x8d\x47\xc6\xac\x00\x0b\x8f\ \x02\x35\x4d\xd5\x32\x02\xe2\x76\xe4\xee\x13\x50\xe2\xbf\x39\x9e\ \x58\x04\xa0\x9e\x57\x14\x4a\xdd\x2e\xca\x2a\x3d\x00\xfb\xbe\x4c\ \x02\x89\xdb\x73\xa9\x3c\xd2\x47\xcf\x2b\x0a\x5e\x59\x07\x1d\x77\ \xaf\x0b\x59\xa5\x77\x34\x30\x48\x72\x3c\x6e\xb9\x4e\xb1\x5e\xad\ \x64\x99\xab\xcf\x88\x73\x2f\x40\x82\x02\xe4\x3f\x98\x19\x4d\xb7\ \xfe\x5c\xef\x7b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x2e\x32\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x01\x00\x48\x00\ \x48\x00\x00\xff\xdb\x00\x43\x00\x04\x02\x03\x03\x03\x02\x04\x03\ \x03\x03\x04\x04\x04\x04\x05\x09\x06\x05\x05\x05\x05\x0b\x08\x08\ \x06\x09\x0d\x0b\x0d\x0d\x0d\x0b\x0c\x0c\x0e\x10\x14\x11\x0e\x0f\ \x13\x0f\x0c\x0c\x12\x18\x12\x13\x15\x16\x17\x17\x17\x0e\x11\x19\ \x1b\x19\x16\x1a\x14\x16\x17\x16\xff\xdb\x00\x43\x01\x04\x04\x04\ \x05\x05\x05\x0a\x06\x06\x0a\x16\x0f\x0c\x0f\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\xff\xfe\x00\ \x12\x42\x6c\x75\x65\x20\x41\x6e\x67\x6c\x65\x20\x53\x77\x69\x72\ \x6c\xff\xc0\x00\x11\x08\x01\x20\x01\x20\x03\x01\x22\x00\x02\x11\ \x01\x03\x11\x01\xff\xc4\x00\x1b\x00\x00\x02\x03\x01\x01\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x04\x01\x02\x05\x00\x06\ \x07\xff\xc4\x00\x3d\x10\x00\x02\x01\x03\x03\x03\x03\x02\x04\x04\ \x05\x02\x06\x03\x01\x00\x01\x02\x03\x00\x04\x11\x12\x21\x31\x05\ \x41\x51\x13\x22\x61\x32\x71\x14\x42\x81\xa1\x06\x23\x52\x91\x33\ \x62\xb1\xc1\xd1\x72\xe1\x15\x24\x34\x43\x53\xf1\x82\x92\xa2\xf0\ \xff\xc4\x00\x19\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x06\xff\xc4\x00\x24\x11\ \x01\x01\x00\x02\x02\x02\x02\x02\x02\x03\x00\x00\x00\x00\x00\x00\ \x00\x01\x02\x11\x21\x31\x12\x41\x03\x22\x51\x61\x04\x71\x13\x32\ \x42\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xf6\ \x3a\x14\xae\xdf\xa5\x74\x5a\x84\x80\x67\xf5\xa2\x45\x83\x10\x14\ \x39\x50\x83\xa8\x57\xde\x6f\x7c\x3c\xad\x7b\x16\x08\xe1\x98\xe4\ \x0d\xea\xd7\x0f\x7b\x79\x27\xb1\x4e\x91\xc1\x63\x81\x4a\x58\xcb\ \xae\x2e\x46\x46\xd4\xcb\x4a\x74\x80\x18\x81\x8e\xd5\xce\xce\x44\ \xc3\x33\xdb\x5c\x8b\x6b\xd8\x90\x29\xdb\x56\x38\xad\x8f\xe1\xeb\ \x48\xa4\x96\xe0\xb3\x65\xed\x70\xf1\x6f\xe7\xbd\x65\xcb\xa2\xfa\ \xdc\x43\x31\xc4\x80\x7b\x1c\xf7\xf8\xaa\x74\x2e\xa1\x2d\x87\x59\ \x81\x67\x38\x5c\xfa\x52\x13\xe0\xd6\x72\x96\xce\x15\xba\x49\x62\ \x4e\x73\x9a\x82\x1b\x1b\x0c\xd7\x5d\x0f\x4a\xe5\xd4\x70\x1b\x6a\ \xbc\x32\x03\x5c\x94\x5b\x1b\xd7\xb7\x71\x9c\x80\x3c\x56\xf5\xbc\ \xd6\x9d\x4a\xdc\xc7\x21\x5d\x64\x63\x71\xcd\x60\xe1\x49\xc1\x00\ \xd0\x3d\x66\xb7\xba\x0d\x1b\x15\xc5\x63\x2c\x3c\xba\x5d\x8b\xd7\ \x7f\x86\xe6\x79\x49\x86\x5c\xaf\xf4\xb1\x27\xfb\x57\x9c\xbf\xe8\ \x1d\x46\x26\xff\x00\xd2\x93\xbf\x2a\x32\x0d\x7b\x15\xeb\x8c\xb1\ \x61\x86\xb3\xe2\x83\x71\xd5\x2f\x25\x1b\x15\xb7\x4f\x20\x02\x6b\ \x78\x7c\x9f\x24\xed\x35\x1e\x41\x3a\x3f\x5a\xcf\xb2\xde\x6c\x0a\ \x66\x2e\x83\x71\xf5\x5e\x5e\x2a\x79\x54\x3a\x9b\xfe\xd5\xb5\x2d\ \xd1\x6c\xeb\x9a\x79\x49\xe7\x2e\x40\x3f\xa0\xa5\x2e\xe6\xd3\x11\ \x27\x00\x78\x1b\x0a\xe9\xfe\x4c\xaa\x68\xb4\x36\xd6\x56\x79\x68\ \x53\x53\x0f\xfd\xc9\xb0\x48\xfb\x0e\x28\x37\x37\x99\x24\x47\xb9\ \x3f\x98\xd2\xd7\x13\x3c\x8d\x96\x3b\x0e\x07\x6a\x0e\xa2\xc4\x84\ \xed\xcb\x1e\x05\x6a\x63\xbe\xcd\xa6\x57\x24\xff\x00\x53\x1a\x5d\ \x08\xfc\x48\x55\xdc\x28\x20\x91\xc6\x6b\x9a\x53\x21\x30\xdb\x9f\ \xfa\xe4\x3f\xed\x47\xb3\x80\x2a\x0f\x03\xf7\xae\xd8\xe2\x8b\x5e\ \x82\xcb\xa8\x72\x30\xc2\xb4\x7a\x04\xe0\xb9\x8c\xf1\x32\xed\xf7\ \xa4\x9b\x06\x45\x5d\xb7\x04\x1a\x1f\x4c\x90\xc6\xec\x3b\xa1\x0c\ \x3f\xde\xb1\xf2\x62\xb0\xff\x00\x4f\x96\x5b\x6b\xd6\x64\x24\x34\ \x6d\xb8\xad\x5e\xbb\x61\x0f\x57\xe9\xdf\x8b\x81\x46\xac\x7b\xc0\ \xec\x7c\xd2\x11\x28\xff\x00\xc7\xb3\x8f\x6c\x8a\x18\x56\x9d\xa4\ \xad\xd3\xaf\xb3\x8c\xc1\x26\xcc\x0f\x02\xb8\x67\x3d\xce\xd6\x3c\ \x05\xf5\xb3\xdb\xce\x54\x82\x08\x3c\xd5\xed\xa7\x0d\xec\x93\x9e\ \xc6\xbd\x97\xf1\x8f\x45\x49\xa1\xfc\x65\xa8\xd4\x8c\x33\xb7\x6a\ \xf0\xf7\x11\x34\x72\x10\x46\x08\xae\x98\x67\x32\x89\x61\xc3\x1b\ \x21\xd4\x99\xda\x8d\x6d\x78\xea\x70\x4d\x29\x65\x75\x8c\x47\x21\ \x38\x1c\x1e\xe2\x98\x96\x2d\x5e\xe0\x46\x4f\x04\x70\xd5\xaf\xed\ \x1a\x50\x5c\xa3\xe3\x7c\x1a\xd0\x70\x9d\x42\xcf\xd1\x94\x81\x22\ \x8f\x6b\x1e\xf5\xe6\x15\x9a\x37\xc3\x0a\xd1\xe9\xf7\x63\x20\x33\ \x7d\x8d\x63\x2c\x3d\xac\x21\x7d\x6f\x25\xad\xc3\x47\x22\x91\x40\ \x35\xb9\xd5\xa0\xf5\xe1\x32\xa9\x2f\x8e\x57\x39\x23\xe4\x56\x23\ \x0c\x1f\x22\xba\xe3\x97\x94\xfd\xa0\x53\x2e\xda\x87\xeb\x53\x0b\ \x67\x63\x57\x3e\x28\x32\x2e\x96\xa7\x40\xd5\x59\x50\x32\x13\xc3\ \x0e\x0d\x42\x3e\x76\x3c\xd5\xea\xca\x15\x46\xd2\x41\xee\x0f\xbb\ \xe6\x9a\xce\x54\x50\x6e\x23\xdf\x58\x1f\x71\x53\x6c\xd9\x5d\x3e\ \x38\xa7\xb0\xca\x39\x0a\x28\xd1\xb0\x75\xc1\xa5\x90\xfb\x6a\x55\ \x88\x39\x15\x34\x0b\x1b\xb4\x12\x1c\x6e\x0d\x32\xf2\xfa\x91\x6a\ \x43\xc7\x34\x90\x93\xce\xf5\x31\xbe\x96\xd4\xa7\x4f\xc7\x9a\xa1\ \xc8\x2e\x08\x20\x37\xf7\xa6\x6f\x42\x5d\x42\x1f\xff\x00\x71\x79\ \xc7\x7f\x9a\xcf\x24\x37\xb9\x76\xf2\x28\x96\xf3\x18\xcf\x91\x52\ \xcd\xf3\x07\xa4\xb0\xb9\x17\x76\x28\x5b\xfc\x68\x94\x24\xbf\x24\ \x70\x6a\xcc\xfa\x06\xdc\xd6\x6f\x4a\x60\x6e\x7d\x54\xc8\x05\x30\ \xfe\x0f\x8a\x7e\x1c\xcd\x37\xf9\x45\x70\xb3\x55\xa3\x56\x84\xe8\ \x2c\xdd\xe9\x79\xcb\x4b\x71\x85\xa3\xce\xd8\x51\x1a\xf3\x50\xa0\ \x42\xbb\x6e\xe7\xf6\xac\x4a\x25\x55\x20\x5c\x9f\x73\x9e\xd4\x36\ \x2c\xe7\x2c\x6a\x0e\xe7\x2c\x72\x4d\x02\xee\xe5\x62\x5e\x77\xad\ \x48\x09\x71\x2a\x42\xb9\x63\x59\x17\xb7\x26\x46\xcb\x1c\x01\xda\ \xab\x34\xf2\x4d\x36\x95\x05\xd8\xf0\xa2\xa6\x54\x86\xcd\x3d\x6b\ \xc6\x0c\xff\x00\x96\x31\x5d\x31\xc7\x49\x43\x54\x66\x8c\xc9\x2b\ \x7a\x51\x0e\xe7\x93\xf6\xa5\x59\xde\xed\xbd\x1b\x71\xa2\x15\xfa\ \x9b\xcf\xc9\xae\x06\xe7\xab\x5c\x12\xcd\xa2\x14\xe4\xf6\x02\x9d\ \x51\x1f\xa6\x21\x81\x71\x12\xf7\xc6\xec\x7c\xd7\x59\x35\x7f\x68\ \x1d\xbc\x4a\xab\xa2\x31\xfc\xb1\xdc\xf2\xd4\x73\x80\x2b\x80\x00\ \x60\x54\x10\x59\xc2\x2f\x26\xba\x5b\x31\x82\xf0\x8d\x11\x3d\xc1\ \x3b\xfd\x29\xf7\x34\xa5\x87\xfe\xa0\xb7\x81\x4c\x75\x77\x58\xd1\ \x2d\x97\x88\xc6\xff\x00\x24\xf3\xfb\x50\xec\x10\x8b\x76\x7e\x35\ \x9d\x22\xb8\xce\xb7\x46\x82\x39\x8e\x4b\x77\x27\xe8\x90\xc5\xfa\ \x56\xfd\xdc\x42\x48\x06\xaf\x15\xe7\x2f\x09\xf4\xe5\x45\x18\x30\ \xb8\x70\x3c\xed\x8a\xde\xb1\xb9\x17\x1d\x3d\x5d\x4f\x22\xb8\xd6\ \x97\xe8\x77\x4b\x04\xa6\xca\xe7\xdd\x0c\x9b\x0c\xf6\xac\x2f\xe3\ \xbe\x86\x6d\xa4\x37\x10\x8c\xc6\xdb\xe4\x76\xa7\xa7\x74\x92\x4d\ \x07\x66\x1c\x56\xb7\x4a\xb9\x8e\xfe\xcd\xba\x7d\xe0\x05\x80\xc0\ \x27\xbd\x63\x29\x70\xbe\x50\xed\xf2\xe9\x10\xe7\xc1\x14\x6b\x2b\ \xa3\x19\xd0\xfb\xa9\xe4\x56\xb7\xf1\x77\x46\x93\xa7\x5e\x91\x8f\ \x63\x6e\xa6\xb0\xd9\x73\xf7\xaf\x46\x36\x65\x36\xcb\x60\xc5\x1c\ \xb0\xea\x56\xf5\x13\xcf\xe6\x4f\xbd\x26\xea\xf0\xc9\xff\x00\xfb\ \x06\x81\x65\x75\x25\xbc\x81\x94\xef\xdc\x79\xad\x7b\x75\x82\xf6\ \x2c\xa6\xcd\xdd\x3f\xe2\xaf\x42\xbd\x3a\xf7\x4b\x69\x62\x74\x9e\ \xc6\x96\xea\x90\xfa\x73\x97\x4d\xd1\xf7\x15\xd7\x76\xb2\x40\xdb\ \xe7\x03\x83\xe2\xba\x39\xf5\x27\xa5\x2e\xea\x7b\xf8\xa9\x27\x3b\ \x8a\x56\xa1\x94\x30\xc1\xa2\x4f\x19\x8d\xbc\x83\xc1\xaa\x56\xfb\ \x40\x1d\x4a\x9a\x24\x4d\x91\x83\xcd\x59\xc6\xa1\x8a\x0b\x02\xad\ \x8a\xcf\x40\xf4\x00\x34\x4e\x07\x63\xc5\x12\x26\xc8\xdf\x91\x51\ \x38\xf6\x83\xdc\x1d\xab\x42\xd1\x1c\xc6\x0f\xc5\x5a\xad\x14\x79\ \x5f\x00\x51\x6d\x6d\xa4\x9e\x5d\x11\x2e\x71\xcb\x76\x15\x37\xa0\ \x1c\x57\x11\x5a\xb0\xda\x5a\x45\x81\x23\xeb\x3d\xc8\xe0\x50\xfa\ \xa5\xad\x9b\xd9\xbc\xd0\x36\x1e\x3d\xf6\x35\x9f\x2e\x46\x7a\xb1\ \x06\x8c\xbe\xec\x63\xbd\x2e\x37\x35\xa5\xd3\xe2\xc6\x24\x61\x9e\ \xca\x3c\xd6\xf7\xa9\xb1\xa1\x64\x86\x2b\x75\x84\x0f\x7b\x6e\x6b\ \x52\x15\x10\xc2\x14\x7d\x5d\xe9\x7b\x08\x3d\x21\xea\x3e\xee\xdf\ \xb5\x1a\x69\x12\x24\x2e\xec\x00\x15\xe5\xca\xee\xb4\xb6\x74\xfb\ \x8e\x33\xf3\xda\x95\x9a\xed\x03\x15\x07\x26\xb3\x7a\x8f\x54\xf5\ \x9c\xa4\x1c\x77\x34\xbc\x0d\x34\xaf\xe9\xc2\xa5\xdc\xf7\xf1\x5b\ \xc7\x0f\xca\x6d\xa5\x71\x7a\xb1\xa7\xb8\xee\x78\x14\xb2\x43\x73\ \x7c\xda\xc8\xf4\xe3\x1c\xb3\x6d\x9f\xb5\x31\x6f\xd3\xe1\xb6\x4f\ \xc4\x5f\x48\x19\x80\xce\x93\xc0\xac\xee\xb3\xd6\x1a\x5c\xc7\x6f\ \xed\x4e\x36\xef\x5b\xc6\x6e\xf0\x0d\x79\x7f\x69\xd3\xa2\x31\x5a\ \x80\xd2\x70\x5e\x91\xb2\xb4\xb8\xea\x52\x9b\x8b\x97\x2b\x10\x39\ \x66\x6f\xf6\xa2\x74\xae\x94\x65\x5f\xc6\x5e\x9d\x10\x8d\xc0\x3c\ \x9a\x62\xf2\xef\xd6\x22\x18\x57\x44\x2b\xc2\x8e\xf5\xbe\x27\x18\ \xa2\xd3\x34\x6c\xa2\xde\xd9\x74\x42\xbf\xff\x00\x5f\x26\xae\x83\ \x02\xa9\x6e\xbe\xc2\x48\xde\x99\xb4\x4d\x72\x80\x78\x15\xac\x35\ \x26\xc0\xd9\x4a\xe3\x3b\x66\x8d\xd1\xd4\x35\xc9\x73\x8c\x2e\xf9\ \x3c\x55\x6f\x94\x89\x08\x1b\xed\xb0\xab\x74\xdf\x74\x72\xc4\x83\ \x2e\xea\x42\xfc\xd6\x7e\x4b\xb8\xb1\x99\x7a\xfa\xe6\x24\xf2\x77\ \x3f\xae\xf4\xef\x4f\x02\x6b\x06\x88\x11\xad\x0e\xa0\x3b\x91\x49\ \xde\xc4\xc9\x21\x6c\x1c\x1f\xda\xa9\x04\xcf\x14\x81\x91\x88\x23\ \xb8\xa5\x9b\x9c\x23\x5d\xd9\x65\x55\x98\xf3\xa4\xa4\xa3\xc7\x83\ \x51\xd1\x6f\x0d\xab\x35\x9c\xa7\x83\x95\x3e\x68\x76\xb3\xfa\xe7\ \x5c\x60\x2c\xc0\x7b\x93\xb3\x8a\xa5\xf4\x62\x78\x43\xc4\x08\x64\ \xfa\x47\x71\xf1\x5c\xf5\xea\xa8\xf7\x53\x7f\xe7\x0e\x0e\x0f\x22\ \x9d\xb7\x94\x9d\x2e\xa7\x12\x2e\xe3\x1d\xeb\x06\x2b\x86\x79\x57\ \x5f\x22\xb6\xd2\x26\x0a\x1d\x6a\xd9\xc2\x35\xae\x84\x3d\x73\xa5\ \x35\xbc\x98\x13\x28\xf6\xe7\xcd\x7c\xff\x00\xa9\xda\x49\x6d\x74\ \xf1\x3a\x90\xca\x71\x5e\xb5\x24\x78\xe4\x13\x44\x70\xc3\x91\x55\ \xfe\x26\xb5\x8b\xa9\xf4\xf1\x7b\x12\x8f\x59\x3f\xc4\x03\xfd\x6b\ \x9e\x3f\x4b\xaf\x4b\xdb\xc4\x91\x93\xe0\x8a\x2d\xbc\x8f\x1b\xeb\ \x8c\xe0\xaf\x22\xa6\xe6\x32\x18\xb6\x31\xbe\xff\x00\x06\x85\x93\ \xc8\xd9\x85\x77\x47\xa1\xe9\xd7\xb0\x5e\xc5\xe9\x5c\xe3\x51\x18\ \xcd\x07\xa9\x74\xb7\x84\x17\x8f\xdc\xb5\x8f\x0b\x1c\xfa\x91\xec\ \x47\x22\xb7\x3a\x47\x55\xca\xfa\x53\x6e\xbc\x1c\xf6\xac\x59\x67\ \x31\x59\x8a\xe5\x46\x87\x19\x5f\x07\xb5\x52\x54\xc7\xb9\x4e\x54\ \xfe\xd5\xb7\xd4\x6c\x22\x99\x3d\x58\x4f\x23\x3b\x76\xac\x89\x63\ \x92\x16\xdf\x8f\xd8\xd5\x99\x4a\x00\x71\x50\xca\x18\x55\xe4\x50\ \xe0\xe3\x62\x7b\x52\xec\x25\x8c\xf3\x91\x5b\x44\x10\x55\xaa\xe4\ \x87\x88\x82\x77\xc5\x41\x91\x58\x7b\x81\x1f\x35\x41\xb9\xd2\xa7\ \x24\xf3\x8e\xd5\x06\x85\xad\xbc\xf7\x0e\x12\x30\x4f\x93\xd8\x56\ \x86\x16\xda\x1f\xc3\xc4\x76\x1b\xbb\x7f\x51\xa2\x4d\x74\x74\x68\ \x8d\x44\x6b\xe1\x6b\x3e\xea\x75\x8d\x79\xdf\xb0\xac\xf3\x45\x2f\ \x67\x23\xd8\x9c\x9f\xda\x84\x87\x45\xb3\x26\x7f\xc4\x60\x4f\xe9\ \xff\x00\x7a\xa2\xe5\xdb\x53\x72\x7f\x61\x57\x0a\x65\x93\x0a\x36\ \x1b\x7e\x95\xad\x02\x59\x45\xad\xb5\x1e\x05\x7a\x0e\x97\x6b\xa0\ \x09\x24\x1b\xf6\x1e\x28\x3d\x16\xc8\x2a\x89\x64\x18\x03\xe9\x15\ \x6e\xb3\xd5\x62\xb3\x8c\xa2\x1d\x52\x9e\x14\x57\x2c\xb2\xf2\xba\ \x8a\x6b\xa8\x5e\xc1\x69\x09\x79\x1c\x7c\x0a\xf3\x5d\x43\xa8\x4f\ \x7d\x26\x01\x2b\x1f\x81\x41\x93\xd7\xbc\x98\xcd\x70\x4e\xfd\x8f\ \x02\x8a\x88\x89\xc6\xf5\xac\x30\x90\xb5\x58\xd4\x28\xda\xb6\x6c\ \x67\x4b\x2e\x91\xeb\xae\x4b\x37\x35\x94\xda\x48\xd8\x60\x8e\xd4\ \x79\x98\xc9\xd1\x1a\x34\xdd\xa3\x6c\x91\xf1\x56\xcd\xa1\x4b\xfb\ \xfb\x9b\xd9\xb1\xb9\xcf\x0a\x2b\x47\xa1\xf4\x75\x8d\x3f\x17\x7d\ \xed\x0b\xb8\x53\xda\xa9\xfc\x2d\xe8\xc3\x69\x35\xcc\x8a\x09\x43\ \xb5\x57\xa8\x5f\xcf\x74\x70\xcd\xa5\x3b\x28\xe2\xb5\x95\xbf\xeb\ \x8a\x89\xd5\xaf\x8d\xcb\xfa\x68\x34\xc2\x9f\x48\xf3\x4b\xda\xa8\ \x2d\x93\xbd\x06\x8b\x6a\x48\x93\x03\xbd\x35\xa8\x8d\x28\xc0\x10\ \x1c\x73\x46\xb5\x1a\x63\x04\x77\xe6\x87\x18\xfe\x41\xc6\xe4\xd5\ \xa1\x60\x23\xd2\xd9\x07\x3d\xc5\x49\xce\x22\xf3\xa3\x3b\x7a\x88\ \x77\x5e\xd4\x04\x56\x57\xf5\x21\xdb\x07\x3a\x7b\x8f\xfb\x53\x0a\ \x7b\x83\x50\xe8\xaf\xee\xc6\x0f\x91\x49\x65\x9a\xa2\x4d\xcc\x17\ \x63\x4d\xca\x80\xc7\x6d\x63\x9f\xd7\xcd\x23\x7f\xd3\x9e\x2f\x7c\ \x64\x32\x1e\x08\xe2\x98\x91\x3f\xf9\x54\x91\xfd\x4b\xfe\xf5\x30\ \xc9\x24\x1b\xaf\xba\x33\xb1\x07\x8f\xfb\x54\xf1\xb8\xf4\x32\x51\ \x9e\x37\x04\x12\xac\x0d\x69\x5b\x5c\x89\xfd\xf8\xc4\xa0\x7b\xc0\ \xfc\xc3\xcf\xdc\x53\x12\x5a\x5a\x5e\xc7\xa9\x1b\xd2\x93\xc1\xe0\ \x56\x6d\xd5\x9d\xd5\x9c\x81\x8a\xb6\x01\xc8\x71\xc5\x5d\xcc\xb8\ \x14\xbb\x88\x47\x78\xa5\x7e\x97\x20\x8a\xf5\x16\xc8\x7f\x0a\xa0\ \xef\xb5\x79\xf9\xff\x00\x9b\x6d\x1c\x9a\x70\x43\x83\x8f\xd6\xbd\ \x1c\x8e\xb0\xdb\x2e\xa3\x8d\xaa\x77\xc2\x95\x99\x74\xb6\xa5\xe3\ \xbd\x56\x29\x0c\x32\x6b\x4d\xd5\xb6\x65\xf3\x4b\x7e\x2c\x89\xcf\ \x74\x26\x99\x5c\x32\xec\x72\x0f\x15\x73\xc3\x49\x19\x3d\x72\xc1\ \x41\x37\x10\x8c\xc6\xdf\x50\xac\x29\xe2\x29\x21\x1f\xd8\xf9\xaf\ \x5e\xe0\xa8\x2a\x46\x54\xf2\x2b\x17\xaa\xd9\x7b\x48\x51\xf4\xee\ \xb5\x31\xba\xe2\xab\x20\x67\x3a\xd3\x66\x1f\xbd\x11\x18\x91\xea\ \x47\xed\x23\xea\x1e\x28\x64\x10\x72\x39\x15\x28\x48\x3e\xac\x78\ \xd4\x39\x1e\x6b\x5d\x23\x4f\xa6\x75\x16\x88\x81\xfd\xd4\xf7\xad\ \x5d\x16\xf7\xb1\xe6\x2d\x21\x8f\x28\x78\x35\xe7\x30\xb3\x21\x92\ \x2d\x98\x7d\x49\xe3\xed\x44\xb4\xba\x78\xdc\x64\x90\x47\x7a\xc6\ \x58\xef\xa5\xd9\xcb\xbb\x07\x47\x3a\x46\x0f\xf4\x9f\xf6\x34\x9b\ \xa1\x53\x86\x04\x1f\x06\xb6\xed\xaf\xe3\x99\x04\x77\x2a\x08\xfe\ \xaa\xbc\xb6\xaa\xf1\xe6\x16\x59\x13\xfa\x58\x03\x52\x65\x67\x14\ \xd3\xce\xb4\x28\x4e\xe9\x9a\x95\x8c\x28\xd9\x40\xad\x76\x86\x04\ \x38\x7b\x55\xcf\xfd\x47\xfe\x6a\xd1\x0b\x35\x1b\xda\x29\x3f\x3b\ \xff\x00\xad\x6b\xcb\xf4\x8c\xeb\xcb\xa0\x9e\xd5\xdc\xd2\x63\x53\ \x36\xa6\xdc\x9e\x05\x46\x34\xee\x72\x58\xd1\x10\x15\x1f\xe7\x6d\ \xbe\xc2\xb4\x2c\xa0\x9f\x62\xee\x4f\x26\xb6\xba\x3f\x4f\x0a\xa2\ \x59\x46\x07\x20\x1a\x17\x44\xb1\x1a\x7d\x69\x86\x00\xdf\x7a\xa7\ \x58\xea\x85\xc9\xb7\xb5\x60\x14\x6c\xcf\x5c\xf2\xb7\x2b\xe3\x14\ \x6e\xb5\xd5\xc4\x47\xf0\xf6\x9e\xe7\xe0\x91\xc0\xac\x84\x4c\x31\ \x92\x66\xd6\xe7\x92\x6a\x8b\xa5\x3e\x9d\xc9\xe5\x8d\x76\xe4\xf9\ \xad\xe3\x8c\xc6\x20\xad\x22\x8f\x9f\xb5\x74\x77\x01\x5b\x3e\x98\ \xa1\x84\x63\x53\xe9\x9a\xd0\x60\xb4\x32\x6e\x87\x4b\x78\x35\xd1\ \x3b\x45\x20\x61\xfa\x8e\xc4\x52\xc5\x18\x76\xa9\x49\x19\x76\x3b\ \x8f\x06\xa5\x0d\x5a\xca\x96\xd3\xba\xe3\xf9\x17\x1b\x7f\xd0\x6a\ \x92\x21\x47\x28\xdc\x83\x55\x52\x8e\x84\x1d\xd4\xec\x47\x71\x50\ \x5e\x50\x00\x75\x12\x60\x60\x30\x38\x3f\xad\x20\x9a\xea\xa9\x73\ \x9f\xa4\x2f\xdc\xe6\xaa\xf2\xf6\x5d\xf3\xe3\x6a\xa0\xe9\x2c\x88\ \x76\x72\x28\xa9\xd4\x25\x5d\xb5\xa9\xfb\xd0\x2d\x2c\xae\x6e\x9b\ \xd8\xa4\x0f\x34\xf1\xe9\x30\x42\x99\xb8\x98\x06\xac\x5b\x8a\xba\ \xde\xf9\x59\x80\x75\xd0\x4f\xe6\x1c\x7e\xa2\xb5\xba\x5c\xd1\x33\ \x7a\x52\x28\x3a\xb8\x3e\x6b\x15\x6d\xed\xd9\x75\x42\xe2\x48\xf5\ \x69\x24\x0c\x15\x34\x78\x01\x82\x71\x10\x3e\xd2\x35\x21\xf1\xe4\ \x52\xea\xc1\xad\x75\x6d\xa3\x2d\x1e\xe9\xdc\x1e\xd4\x9b\x46\x41\ \xd5\x16\xc7\xba\xf9\xad\x4b\x59\x3d\x58\x15\xfb\x91\xbd\x0e\xea\ \xd8\x37\xba\x31\x83\xdc\x79\xa9\x8e\x76\x71\x4d\x33\x15\x03\x36\ \x13\xf9\x6f\xe3\x38\xfe\xd5\x75\x92\xee\x0c\x86\x52\x57\xbe\xa1\ \x90\x6a\xd2\xc6\xad\x90\xc3\x07\xcd\x42\x2c\xf1\x9c\x47\x2e\xdf\ \x7a\xde\xb1\xa8\xe8\x90\x4f\x22\x96\x41\x1c\x4a\x43\x39\x19\xc0\ \xc1\xff\x00\xb5\x5b\xaa\xde\x7e\x26\x5c\x26\x42\x0e\x07\x9a\x1c\ \xe2\x77\x04\xc8\xd9\x03\xb5\x2f\x82\x4d\x6f\x0c\x64\xe4\x76\x68\ \xb6\xd3\xb4\x67\x19\xdb\xc5\x0c\x21\xc5\x54\xec\x6b\x5b\xd8\xd3\ \x47\x59\x13\x3b\x1a\xa4\xb1\x87\x5c\x1f\xd2\x92\x8a\x46\x43\xb1\ \xa6\xa1\x9c\x30\xc1\xae\x79\x61\xee\x11\x87\xd6\xad\x3d\x19\x7d\ \x45\x1e\xd3\xcd\x67\xee\xac\x19\x7f\x51\xe6\xbd\x5d\xf4\x0b\x34\ \x2c\xa7\x7c\x8d\xab\xcd\x5d\x44\x62\x98\xa1\x18\x19\xa9\x39\x80\ \x7e\xe0\x44\xd0\x9c\x30\xe6\x8c\x81\x2e\xd0\xbc\x60\x2c\xa3\xea\ \x4f\x3f\x22\x80\x32\x8c\x58\x7e\xa2\xac\xca\x75\x09\xa0\x38\x61\ \xbe\xd5\x9e\x95\x68\xa5\x78\xce\x37\x23\xb8\xf1\x5a\x16\xb7\x5e\ \xd0\x51\xc8\xfb\x52\xf1\x7a\x5d\x41\x3d\xb8\x8e\xe4\x72\x0f\x0f\ \xff\x00\x7a\x59\x95\x92\x42\xa4\x14\x71\xcd\x5e\xd1\xb2\x6e\x19\ \xc6\x19\xb3\x54\x67\xf9\xac\xe8\xee\x99\x76\x90\x03\x8a\xe9\xae\ \x98\x8d\x09\xde\x9a\x02\x4d\x8f\xa8\xe3\x7f\xca\x2b\x4b\xa3\x59\ \x7a\x8d\xeb\x4b\xb2\x2e\xfb\xf7\xa1\x74\xbb\x36\xb9\x93\xd4\x7d\ \xa3\x5a\x27\x56\xbf\x04\x7e\x16\xd8\xe1\x06\xc4\x8a\xcd\xb6\xdd\ \x45\x4f\x59\xea\x1e\xa1\xfc\x35\xb1\xd2\x83\x66\x61\xde\xb3\x94\ \x60\x60\x0a\xe4\x5e\xc2\x89\x1e\x95\x18\xc1\x63\x5a\x92\x63\x11\ \x09\x19\x3d\xa8\xa9\x1a\x2a\x92\xf2\x2a\xe2\xb8\x25\xc3\x0c\x05\ \x20\x1f\x1b\x55\xe2\xb1\x62\x32\xd5\x2e\x4a\x13\xcb\x18\xda\x35\ \x67\x3e\x78\x15\x46\x9a\x61\xc4\x48\x3f\xbd\x30\x62\x0b\xb2\xf0\ \x2a\x0a\x8a\x9b\xd8\x42\xe2\xea\xe2\x35\xd5\xe9\xa9\x03\xe2\xaf\ \x65\x77\x1d\xda\xee\xba\x1b\xef\xb5\x1a\x78\xc3\x29\x04\x67\x35\ \x94\x0b\xf4\xee\xa0\x1c\x2e\xa8\x89\xf7\x29\xaa\x8d\x57\x89\xd1\ \xb6\x06\xaa\x59\xf8\x24\xd6\xad\xb4\x31\x5c\x40\xb2\xc6\x75\x44\ \xe3\x2b\xe4\x51\xbf\xf0\xd4\x2c\x08\x62\x45\x4f\x39\xed\x74\xc5\ \x48\xde\x43\x80\x39\xad\x6e\x99\xd2\x81\x02\x49\xb6\x14\xed\xbd\ \xac\x36\xe9\xa9\x80\xda\x94\xea\x9d\x4c\x05\x29\x19\xc0\x1d\xeb\ \x37\x2b\x97\x10\x1e\xfa\xfa\x1b\x48\xbd\x38\x30\x08\x1d\xab\x0a\ \x7b\x89\xef\x27\x08\xb9\x25\x8e\x00\xf3\x41\x96\x47\x9a\x4c\x0c\ \x9c\x9d\x85\x6f\x74\x4e\x9e\x2d\x13\xd5\x94\x03\x2b\x0f\xff\x00\ \x51\x5a\xd4\xc6\x1d\xa6\xde\xd1\x6d\x6d\x62\xb6\x1b\xbc\x8e\x0b\ \x7e\x95\x5e\xa6\xbe\x93\x46\x41\xfa\x1c\x53\x76\x2d\xeb\x5d\x1b\ \x83\xc0\xf6\xc7\xf2\x3b\x9a\x57\xae\x36\x5b\x1d\xcb\x8a\x98\xf6\ \x56\xaf\x40\x60\x49\x43\xc0\x6a\xd6\x9e\xde\x32\xd8\x56\xd2\xde\ \x0d\x63\x74\x13\x8b\x96\x1f\xe6\x14\xff\x00\x5e\x94\xc7\x26\x54\ \xef\x59\xca\x6f\x20\x2b\xdb\x4d\x4d\xc6\x97\xfd\x8d\x21\x2c\x6d\ \x1b\x69\x61\x83\x4d\xda\xf5\x13\xb2\xcc\xba\xbc\x1a\xee\xb6\xca\ \x66\x4c\x0c\x7b\x73\x57\x1b\x65\x29\x33\xf4\x63\xcd\x04\xa6\xf4\ \x62\x73\x55\x66\x55\x5d\x4d\xc0\xfd\xeb\xa4\xa8\xa1\x42\x3e\xd4\ \x19\xd7\x1b\xd5\x65\xbc\x19\xc6\xa0\x3e\x06\xf5\x45\x9d\x5f\x87\ \x06\xb7\x05\x80\xc9\xc5\x48\xca\x9f\x91\x55\x15\x7d\x61\x97\xdc\ \x37\x15\xbd\xe8\x33\x6f\x28\x6f\x6b\x56\x77\x5f\x80\x16\xcf\x91\ \x45\x49\x01\x3e\xd3\xc5\x57\xa8\xbb\x49\x6e\x7b\x90\x2b\x3a\x97\ \x98\x31\x88\x38\xdf\xea\x5d\x8d\x44\x6d\xe9\x36\x47\xd2\xdf\xb5\ \x16\x61\xa5\xd5\xff\x00\x2b\x8d\xfe\x0d\x0a\x40\x06\x57\xb1\xac\ \x71\x44\xce\x85\x48\x9e\x23\x82\x37\xda\x99\xbe\x90\xcd\x65\x6f\ \x72\xc0\x07\x6c\xa9\x3e\x71\x49\x96\x22\xd0\x8c\x9d\xce\x05\x31\ \x76\x34\xac\x36\xe3\xf2\x26\x4f\xdc\xd6\x62\x82\xea\x59\xc7\xda\ \xb8\xe1\x06\x2a\xcc\xc0\x0a\xa2\xee\x75\x37\x02\xb6\x8d\x1e\xa7\ \x76\x12\x3f\xc2\x5a\xec\xa3\x66\x23\xbd\x25\x1a\x66\xaa\x4a\xa0\ \xcb\x1a\x19\x92\x47\x38\x5f\x68\xa9\x8e\x1c\x70\x1c\x55\x88\x0f\ \xe6\x48\x17\xe2\x89\x14\xf6\xa8\xfa\x63\x5d\x44\xf7\xac\xe2\xb8\ \x1b\x9a\x7f\xa3\x59\xfa\x8f\xea\xb0\xf6\x8e\x2a\xe5\x84\x93\x75\ \x5a\x70\x7b\xd3\x56\x30\x29\x7b\xc9\x80\x3e\x9a\x77\xa3\x5f\x4e\ \x21\x8b\x0b\xfa\x0f\x35\x94\xcc\xcc\xc4\x93\x96\x3c\x9f\x15\xc1\ \x45\x9a\x5d\xb4\x21\xff\x00\xa9\xa9\x37\x9b\x0d\xb1\x62\x3c\xd4\ \xdc\x3e\x7f\x96\x9c\x77\x35\xd6\xf1\x99\x1c\x46\xbf\xad\x75\xc7\ \x1d\x4d\xd4\x5e\x39\xc3\x6c\x4d\x52\xfa\x11\x2c\x7f\x15\x79\xed\ \xd1\x49\xf4\xd8\x92\x3c\xd5\x23\x90\xee\x8f\x4e\xfa\x43\x5f\xc2\ \x73\x98\xcb\x59\xc8\x76\x3b\xa5\x6f\xc9\x30\x86\x02\xc7\xb5\x79\ \x3f\x74\x53\xac\x89\xb1\x53\x90\x6b\x7d\xa6\x17\x9d\x33\xd4\x53\ \xbe\x37\x1e\x0d\x73\xca\x72\xb0\xaf\x52\xea\x0c\xeb\x8c\xe0\x78\ \xac\xb9\x1d\xa4\x7e\xff\x00\x02\xba\x7c\x99\x48\x27\x35\xb5\xd0\ \xfa\x68\x8a\x31\x75\x70\x32\x4f\xd0\xb5\xbe\x31\x88\xb7\x44\xe9\ \xe2\xdd\x44\xf3\xae\x64\x3b\xaa\x9e\xd4\xdd\xf4\x85\xcf\xe1\x90\ \xfb\xdf\x77\x3f\xd2\x2a\xd7\x53\x7a\x30\x99\x5b\x77\x3b\x20\xa3\ \x74\x0b\x12\x75\x5c\x4f\xbf\xe6\x62\x7b\x9f\x15\x8b\x7d\xd5\x5a\ \x08\xc4\x2a\x18\x8c\x05\x4d\x87\x8a\xc8\xea\x04\xc9\x77\x12\x9e\ \x4b\x67\xf7\xad\x7e\xa3\x27\xb4\x81\xf9\x8e\x6b\x12\x59\x14\xf5\ \x20\x49\xd9\x76\xad\x61\xf9\x2b\x6b\xa2\x3a\xac\xe4\x9d\xf7\xcd\ \x37\xfc\x40\xa4\x95\x90\x6e\xad\xde\xb1\xe3\x79\x23\x6d\x69\xc7\ \xc5\x3b\x1f\x53\x62\x9e\x9c\xf1\x07\x5f\x9a\x96\x73\xb8\x01\x57\ \x77\x2e\x72\x4e\xe0\x62\x8c\x12\xda\xe7\xff\x00\x4e\xc6\x37\xfe\ \x86\xe0\xfd\x8d\x01\x83\x23\x15\x60\x41\x1c\x83\x52\x71\x4a\x87\ \x65\x45\xd4\xdc\x0a\xcf\x9a\x76\xba\x93\x0a\x48\x40\x71\xff\x00\ \xd5\x4f\x57\x9c\xed\x0a\x1d\xcf\x34\x95\xc4\xde\x92\x7a\x51\xf3\ \xdc\xd7\x44\x30\xf3\xc5\x11\xd2\x8b\xab\x1c\x81\x54\x33\x5b\xbf\ \xf8\x88\x50\x9e\x0d\x67\xe4\xe6\x88\x92\x63\xda\xfe\xe5\x34\xd0\ \x7d\x43\xae\xf1\xbe\xb5\xf1\x57\x8e\x65\x62\x41\xf6\x91\xd8\xd2\ \x2a\x5e\x1f\x7c\x4c\x4a\x78\xf1\x4c\x45\x2c\x77\x03\x0d\xed\x6f\ \x35\xad\xd8\x2d\x78\x8d\xfe\x2c\x5c\x8e\x7e\x6b\xad\xae\x16\x54\ \xd2\xdb\x37\x71\x52\x1d\xe2\x3a\x64\x19\x07\x83\x4a\xde\xa0\x8d\ \xc4\x91\x9f\xaa\xac\xfd\x0a\xdf\xa0\x54\x75\xf0\x72\x29\x69\xdb\ \x6c\xf7\xa2\xdd\x39\x7c\x67\xb9\x19\xa0\xbf\xba\x4c\x76\x1b\x9a\ \x82\x60\x4d\x52\x47\x19\xe1\x7d\xed\xf6\xab\x4d\x2f\xa9\x2b\xca\ \x76\xd4\x76\x15\xc8\x74\xdb\x96\xe1\xa6\x3f\xd9\x68\x5f\x51\xf8\ \xa9\x04\x8f\x73\x64\xf0\x29\xab\x0b\x57\xb9\x90\x6d\x84\x1d\xea\ \x96\x56\xed\x71\x28\x55\x04\x28\xe4\xd3\xbd\x42\xe5\x2d\xe1\x16\ \xd6\xfc\xfe\x63\x53\x2b\x7a\x9d\x8c\xc6\x80\x86\xfe\x63\x64\xd4\ \xec\xa3\x15\x53\x29\x66\x21\x01\x63\xf1\x52\x90\x3b\x90\x65\x27\ \x1f\xd2\x0f\x3f\xad\x76\xf2\x98\xf6\x22\x22\x25\x98\x20\xdf\x7d\ \xf1\x5b\x22\x68\xed\xe1\x09\x8d\xf1\xf4\x8a\x42\x2d\x31\x02\xb1\ \x28\x51\xe1\x7f\xe6\xa5\x62\x67\x7d\xff\x00\xb0\xae\x19\xe5\x72\ \xab\x13\x23\xb4\xf2\x6a\x24\xf8\xa1\x5d\x48\x10\x7a\x69\xc9\xe6\ \x8d\x78\xc2\xdd\x74\x29\x05\xcf\x6f\xe9\xa4\xcf\xb4\x12\x77\x26\ \x98\x63\xb2\xa0\x0c\x6c\x37\x26\x9e\x44\x16\xd6\xf8\xff\x00\xdc\ \x7e\x7e\x2a\x3a\x64\x01\x54\xdc\xcb\xc0\xfa\x73\x55\x91\xfd\x49\ \x4b\x53\x2c\xbc\xae\xa0\x90\x36\xde\x83\x71\x16\xa1\x90\x37\x14\ \x65\xae\x62\x01\xc1\xa2\x14\x53\xa9\x74\xb1\xc1\x1c\x53\x3d\x2a\ \xe4\xdb\xcc\x63\x73\x88\xdf\x63\xf1\x43\xb8\x8b\x57\xb9\x79\x14\ \x0c\xe7\x63\xc8\xa6\xb6\x18\xea\x11\xfa\x57\x59\x1b\x82\x72\x0f\ \x9a\xf4\x76\x72\xa4\xb1\x44\xe3\xe8\xf4\xc6\x3e\x3c\xd7\x9d\x8d\ \xfd\x7b\x7f\x49\xcf\xbd\x07\xb4\x9e\xe3\xc5\x3d\xfc\x3b\x71\x84\ \x30\x31\x39\x53\x95\xfb\x77\xa9\x79\x8a\xd0\xb0\x88\xf5\x0e\xa7\ \xea\x6f\xa1\x5b\x08\x3c\x0f\x35\xe8\x2f\x15\x61\xb4\x58\xa3\x18\ \x07\x6a\xc9\xfe\x17\x2b\x14\x97\x08\x4e\x19\x4e\x40\xf2\x0d\x6c\ \x48\x16\xe6\x15\xd2\xf8\x22\xb9\xe5\xda\xb0\xaf\x89\x69\x88\xe0\ \x0d\x85\x65\xbd\x9b\xb3\x93\xa8\x57\xa6\xba\xb7\x82\x35\xd7\x70\ \xe8\xa0\x56\x55\xef\x57\xb3\x84\x14\xb5\x84\x48\xc3\xf3\x37\x15\ \xd3\x1b\x7d\x25\x20\xb6\x57\x24\x7b\x5c\xfe\x99\xa1\xcf\x15\xd4\ \x1f\x51\x6a\xb4\x97\xb7\xf7\x5c\x48\x51\x3e\x3d\xa2\xac\xa9\x70\ \xd0\xe2\x59\x88\x4f\xea\x6d\x87\xef\xcd\x6b\xae\xc0\x6d\x6e\x24\ \x49\x41\xd6\x70\x4d\x6a\x5d\xdc\x0d\x3e\xa3\x9d\xca\x8c\x9a\xc9\ \x2b\x00\x7c\x25\xca\x16\xed\x9c\xe0\xfe\xb8\xa1\xde\xdc\x4a\xcf\ \xa1\x86\x9c\x72\x29\x64\xb5\x13\x2c\xd9\x99\xa6\x3c\x9d\x80\xa5\ \xc0\x69\x1f\x61\x92\x6b\x91\x4b\xb6\x33\xfa\xd3\xd6\x6b\x1a\x0c\ \x0c\x13\xe6\xb4\x16\xfc\x14\xf8\xc8\x23\x8a\x0a\xfb\xbd\xa7\xea\ \x1f\xbd\x6d\x0d\xd6\xb3\xfa\x9c\x1a\x64\xf5\x54\x60\x37\x38\xec\ \x6a\xd9\xa0\xbc\x52\x14\x3e\x47\x71\x52\xe5\x35\x6a\x4c\xa9\xa1\ \x33\x31\x23\xda\x09\xff\x00\x5a\xbc\x70\xcd\x21\xf6\xae\x91\xe4\ \xd4\xd6\x83\x96\xd3\x89\x07\xa7\x20\xcd\x06\xe8\xe2\x3d\x3f\xe6\ \xa0\xdb\x6b\x8e\xf0\x23\xf3\x44\xbd\x61\xab\x63\xc6\x4d\x27\x14\ \x2f\x21\xf7\x6f\xd8\x55\x61\x5d\x6e\x01\xfc\xdb\xb1\xf0\x2a\x1c\ \x82\xd8\xf2\x72\x6a\xed\xec\x88\x8f\xcd\x26\xe7\xe0\x76\x15\x28\ \x89\x9b\x5c\x9b\x6c\xa3\x65\x1e\x05\x5e\xda\x17\x9a\x41\x1a\x0f\ \xbd\x52\x18\xd9\xdc\x2a\x8c\x93\x5a\x2e\xc9\x61\x6f\xa5\x77\x95\ \xbf\x6a\x96\xe8\x4d\xd4\xc9\x65\x07\xe1\xe1\x23\xd4\x23\xdc\x7c\ \x56\x69\x6c\x1c\xb1\xc9\x27\xfb\xd4\x3b\x9c\xeb\x73\x96\x35\x54\ \x0c\x5b\xd4\x6d\xb0\x72\x2b\x58\x60\x1b\x8a\x10\x83\x03\x6a\xb8\ \x45\xce\xfb\xfd\xe8\x2b\x70\x73\x82\x06\x0d\x31\x19\x57\x5d\x42\ \xb9\xd9\xa5\x12\xde\x03\x23\xe9\x50\x07\xfb\x54\xde\xdd\x43\x6d\ \x98\x20\x21\xe6\xc6\xed\xd9\x6a\xf3\x49\xe8\x74\xa9\x25\x41\xee\ \xc7\x35\x93\x6e\xa0\x46\x0f\x2c\x77\x27\xcd\x31\xc7\xca\x8b\xe3\ \x72\xcc\x72\xc7\x92\x68\xb6\x56\xe6\xe6\x7f\xf2\xaf\x35\x48\x91\ \xa6\x94\x46\x9c\x9a\xd5\x40\x96\xb6\xba\x57\xb0\xdc\xf9\xad\x7c\ \x99\x6a\x6a\x12\x16\xea\x72\x84\x41\x12\xed\x8a\x52\x32\x58\xe9\ \x15\x4b\xa9\x0c\xb3\x12\x3c\xd3\x08\x12\xd6\x0d\x6f\x82\xed\xc0\ \xac\x4e\x20\xb4\x8c\xb0\x45\x96\xdd\x8f\x02\x92\x77\x67\x6d\x44\ \x9d\xeb\xa5\x76\x96\x42\xef\xdf\x81\x4e\x74\x9b\x07\xb9\x94\x0c\ \x1c\x7f\xa5\x6e\x4d\x4d\xd4\x29\x1c\xac\xbf\x22\xaf\x22\xac\x8b\ \xad\x4e\xe2\xbd\x15\xe7\x40\xb6\xf4\xc0\x0f\xa1\xf1\xde\xb1\xfa\ \x87\x4b\xba\xb3\x3a\xd4\x6b\x4f\xea\x5d\xf1\x52\x65\x2a\xe8\x82\ \xb1\x0d\x91\xb3\x0a\x3c\x73\x14\x99\x6e\x13\xea\x07\xdc\x3c\xd0\ \x8e\x97\x19\xe1\xaa\xa0\x90\x6a\xa3\xd3\x59\xce\x89\x71\x15\xd2\ \x9f\x63\xae\x97\x3f\x07\x8a\x8e\xa1\x7d\x3d\xaa\x95\x46\x20\xe7\ \x15\x8f\xd2\xae\x82\x66\x09\x0f\xf2\xdf\x8f\x8a\xd0\xbd\x43\x35\ \xb1\x07\x77\x41\xcf\xf5\x0f\x35\x27\x7c\xa9\x66\xfc\x6d\xd8\xd6\ \xe5\xb4\x77\x63\xb0\xa2\xda\xda\x2b\x1f\xe5\xae\xb2\x39\x76\xd9\ \x45\x75\x90\xf5\xbf\x0f\x1b\x13\xa7\x24\x11\x9f\x14\x3e\xab\x7a\ \xe5\x8c\x11\x00\x91\xae\xd8\x1b\x52\xdb\xbd\x44\x16\xe2\xe6\xde\ \xdb\x64\xc4\xd2\xff\x00\x51\x1e\xd1\xf6\x15\x97\x7b\x77\x2c\xf2\ \xfb\x9c\xbb\xf8\xec\x28\x32\x39\x76\x2b\x19\xfb\xb5\x58\x28\x88\ \x61\x46\x5c\xd5\x93\x43\x95\x7d\xc0\x13\x96\xe4\xfc\x53\xb7\x31\ \x34\x97\x0a\x80\x7b\xb4\x0c\xe7\xed\x43\xb0\x84\x34\xc1\x58\xed\ \xf5\x39\xf8\xa7\x6c\x07\xab\x77\x2c\xc7\x81\xb0\xa6\xf4\x12\x36\ \xd3\x01\xc6\x2b\xad\xd9\x96\x60\x3e\x77\xad\x2b\xc9\x16\x38\xce\ \x69\x0b\x24\x32\x4a\x5f\x1b\x03\x5b\xef\x1d\x8d\x18\xcf\xb2\xb9\ \xb7\x1b\xd4\x20\xda\xa6\xad\xe6\x0a\x2c\x51\xaf\x0a\x07\xe9\x5c\ \xc3\x02\xaf\x43\x9d\xc2\xa1\xfb\x57\x3a\x33\xc6\xfd\x41\xdb\xfa\ \x45\x2f\x70\xf9\x63\xe2\xaf\xac\xe8\x79\x4f\x32\x1f\xda\x97\x39\ \x63\x5a\x82\xd1\x0c\x9d\x4d\xc0\xdc\xff\x00\xb0\xa9\xf7\x3c\x99\ \xc6\x49\x3c\x57\x1e\x02\x0f\xd7\xef\x4f\xda\xc4\x96\xd0\xfe\x22\ \x5e\x71\xed\x15\x9b\x74\x2d\x10\x8e\xc6\x0d\x6f\xbc\xac\x36\x1e\ \x2b\x3e\x79\x4b\x39\x77\x39\x24\xd5\xae\x25\x79\xa5\xce\x0b\x33\ \x6c\x00\xa3\x7a\x31\xda\x47\xea\x5c\x10\xd3\x1e\x13\xfa\x69\x8c\ \xd7\x37\xb5\x02\x38\xf4\xff\x00\x36\x5e\x7b\x29\xaa\x3b\x7a\x8d\ \xe9\xaf\x27\x93\x56\x29\x24\xc4\xbc\x87\x48\xf1\x44\x8b\xd2\x8d\ \x72\xa7\x71\x5b\xb9\x6b\xa4\x04\x0c\xed\xc1\xa2\xdb\x4a\x63\x7c\ \x37\x07\x9a\xe9\xe3\x1f\x52\xd0\xb3\x9e\x6a\x0d\x58\xf4\xcd\x6a\ \xf0\xe4\x15\x71\xb1\xac\xb8\x83\x21\x68\x5f\x66\x43\x83\x46\xb2\ \x9c\xc3\x20\x0c\x7d\x87\x9f\x8a\xbf\x59\x8c\x65\x2f\x23\xdf\xb3\ \xe3\xb8\xac\x4e\x2a\x8b\xd2\x18\x28\x7d\x86\xa1\x51\xd4\xee\x4f\ \xd1\xe6\x81\x69\x22\xa4\xc1\xb3\xed\x61\x83\x42\xea\x39\x17\x43\ \x3c\x1e\x2a\x59\xf6\x3d\x09\x0b\x24\x09\xea\x38\xcb\xfe\x51\x42\ \x95\xde\x46\xf5\x1f\xbf\x02\xab\x18\xd6\xc5\xdb\x7c\x53\x16\x50\ \x34\xd2\x06\x23\xdb\xd8\x79\xad\xc9\x27\x35\x16\xe9\xf6\xaf\x3c\ \xca\x31\x9c\x9d\x85\x7b\x1e\x93\x69\x1d\x9d\xa9\x91\x80\xc8\xfd\ \xe8\x3f\xc3\xfd\x35\x63\x8c\x48\xe3\x0d\x8c\x9f\x81\x51\xd6\xaf\ \x32\xde\x8c\x7b\x01\x5c\xb2\xb7\x3b\xa8\xa5\x3a\x8d\xc3\x4f\x70\ \x4e\x76\x15\xd1\x25\xcc\x6b\x94\x39\x07\x90\x7b\xd0\x6d\xd7\x54\ \xc0\x7c\xd6\x90\xc6\x77\xe2\xb5\x95\xd4\xd1\x18\xfd\x46\xc6\x2b\ \x8c\x90\x82\x09\x7c\x8f\xa5\xbf\xe2\xb1\xae\x23\x78\xa4\x29\x28\ \xc3\x0f\xde\xbd\xa4\x90\x47\x2c\x64\x66\xb3\x7a\x8f\x4f\x0e\x9a\ \x5d\x75\x01\xc1\x1c\x8a\x98\xe7\x3a\x34\xf3\x35\xa9\xd2\xee\xcb\ \xc6\x23\x63\xfc\xc4\xce\x9c\xfe\x61\xe2\x93\xbe\xb5\x7b\x77\xfe\ \xa5\xec\xd4\x05\x25\x58\x30\x38\x20\xe4\x1a\xd2\x36\x58\x34\x32\ \x89\x23\x3b\x67\x50\xf8\x3d\xc5\x21\xd6\x50\xac\x8e\xc9\xc3\x8c\ \x83\x4d\xd8\x5c\xac\xe9\xa1\xfe\xbe\xff\x00\xf3\x53\x73\x09\x78\ \x4c\x7d\xc6\xe9\xff\x00\x14\xdf\x2a\xc9\x85\xd5\x2d\xf5\x01\xbf\ \x14\x58\x13\x4a\x7a\xae\x72\x5b\x7a\x01\x4d\x2c\xf1\xf6\xe4\x53\ \x76\x84\x39\x84\x73\xbd\x69\x0c\x7f\x81\x66\x7f\xf9\x24\xdc\xfd\ \xbb\x0a\x3d\xb3\x08\x2d\x37\x3c\x72\x7e\x69\x77\x26\x5b\xa2\x49\ \xce\x9d\xfe\xf5\x17\xcc\x70\xb0\xae\xe4\x6e\x69\x20\xa4\xf2\xb5\ \xc4\x81\x57\x38\xa7\xad\xa3\x11\xc6\x16\x85\x65\x6f\xa0\x6a\x3c\ \xd3\x20\x56\xad\x13\x5d\xda\xa2\x56\x08\x3d\xc7\x7f\x14\x9d\xcd\ \xc1\xf3\x8f\x8a\xce\xed\x06\x9e\xe5\x23\x07\x1b\x9a\x46\x59\x9d\ \xd1\xf3\xcb\x6c\x28\x6c\xc5\x8d\x70\xd8\x67\xfa\x77\xa6\x80\xee\ \x9b\xdf\xa5\x78\x1b\x0a\xa2\x8d\x2b\xf2\x6a\x57\x76\x2c\x69\xbb\ \x28\x06\x9f\x5e\x73\x85\x1b\x80\x7b\xd2\xdd\x09\xb2\x81\x63\x8f\ \xd7\x9b\x60\x38\x06\x85\x3c\xb2\xdd\x4e\x15\x14\xb1\xe1\x54\x51\ \x24\x69\x2f\x26\xd2\x83\x08\xbf\xd8\x0f\x26\xba\x59\x23\xb7\x43\ \x14\x07\x73\xf5\x3f\x73\xf6\xf8\xac\xce\xf7\x7b\x55\xa2\xf4\xed\ \x01\xd3\x87\xb8\xee\xdf\x95\x3e\xd4\xb4\x92\x7b\xcb\x6e\xce\x79\ \x63\x54\xcb\x3e\xc0\x6d\xe0\x55\x91\x54\x1d\xfd\xc7\xe3\xb5\x6b\ \x48\xab\x33\x31\xdc\xe6\xbb\x43\x63\xe9\x34\x50\xf8\xd8\x05\x1f\ \x6a\xba\x48\x78\x6c\x11\xf6\xaa\x07\x1b\x8e\xdf\xda\xa6\x48\xc3\ \x2e\xa4\xa3\xf5\x1b\x07\x85\x8d\xc5\xb0\xd7\x0b\x6e\x31\xda\x94\ \x8e\x42\x0e\x57\x63\xdc\x56\x65\x97\xa1\x53\x90\x70\x68\xd6\xb3\ \x85\x1e\x9c\x9b\xa1\xdb\x7e\xd5\x0c\x16\x45\xca\xec\xd4\x22\x08\ \x38\x35\x7b\x13\x24\x46\x09\x8c\x64\xe5\x1b\x74\x35\x37\xd9\x96\ \xcb\x5f\xe7\x8f\x9a\xba\xb0\x96\x1f\x45\xf9\x07\x28\x7c\x1a\x1a\ \x92\xac\xc1\xc6\xc7\xda\xe2\x94\x0a\xd5\xb5\x44\xd5\xe9\x7f\x84\ \xa1\x49\x88\x2e\x33\xa4\x0c\x57\x97\x40\x61\xba\x68\xb9\x07\x71\ \xf6\xaf\x5d\xfc\x24\x9f\x85\xe9\xad\x77\x21\xe7\x65\x1e\x6b\x39\ \xdf\xaf\x0b\x1b\x1d\x56\xe9\x6d\x6d\xfd\x24\x3e\xe2\x37\xc5\x60\ \x3b\x16\x62\xc4\xe4\x9a\x25\xdc\xcd\x3c\xc6\x46\x3c\xd0\xa9\x86\ \x3e\x31\x0c\x59\x15\x46\xd4\xc7\x6a\x65\x67\x47\xe0\x71\x59\xd4\ \x6b\x45\x25\xb2\x78\x14\xca\x7b\x58\x6e\x49\x04\x60\xb9\x6c\x0a\ \x98\xee\xa2\x71\x82\xe0\xfc\x83\x59\x97\xf3\x09\x64\xd2\xbf\x4a\ \xfe\xf4\xac\xb9\x8c\x65\x99\x57\xee\x71\x58\xf0\xd9\xb6\xb5\xec\ \x11\xc9\x19\xd4\xa3\x07\xbf\x63\xf7\xac\x0e\xa3\x62\xf0\x31\x65\ \x04\xa7\xfa\x53\x76\xb7\xce\x98\xc3\x87\x5e\xe3\x39\x06\x9d\x47\ \x8a\xe1\x3f\x97\x8c\x9e\x63\x27\xfd\x29\x37\x89\xdb\xce\x23\x32\ \x30\x65\x38\x22\xb5\x6c\xae\x44\xe3\x49\x38\x61\xbf\xeb\x42\xea\ \x36\x38\x26\x48\x41\xdb\xea\x52\x37\x14\x84\x6c\xd1\xb8\x65\x38\ \x22\xb7\xdc\x43\x3d\x5e\xd8\x86\xf5\x90\x6e\x39\x14\x0b\x46\xc1\ \xc0\xdb\xf3\x2f\xdf\xc5\x69\xdb\x4c\x97\x56\xe5\x4e\x35\x63\x04\ \x56\x55\xcc\x6f\x6f\x30\xc7\x19\xca\xd2\x5f\x41\xe8\xce\x2e\x01\ \x1f\x9c\x66\x89\x68\xba\xa6\x91\x98\x64\xea\xa5\xa0\x7d\x51\x82\ \xbc\xae\xe3\xfd\xc5\x33\x03\xe9\x9b\x23\x89\x06\x7f\x5a\xd4\x0d\ \x8d\x85\x0e\x59\x82\xec\xa7\xf5\xa1\xdc\x4c\x73\xa7\xf6\x14\xa4\ \xd2\x1c\xe0\xff\x00\x6a\x02\x4d\x2f\x3b\xef\x4b\x92\xcc\x7c\xe6\ \xa4\x29\x66\xdf\x7a\xd3\xe9\xf6\x62\x35\xf5\xa6\x1f\x20\x1a\x99\ \x65\x20\x5e\xd6\xd4\x24\x66\x69\x86\x30\x32\x05\x27\x78\xc0\xb3\ \xb2\xf0\xdb\xd3\x7d\x56\xe8\xcb\x21\x44\xfa\x45\x24\x41\x2b\xc6\ \x45\x4c\x65\xee\xaa\xf6\x56\xfa\x86\xb9\x3f\xc3\x5d\xcf\xcd\x5a\ \xe6\x5f\x59\xf1\x9d\x31\xaf\x00\x50\xb5\xcb\xe9\x08\xf2\x0a\x8e\ \x2a\x84\x7f\x51\xfe\xd4\xf1\xbb\x41\x1e\x7c\x27\xa7\x16\x42\xff\ \x00\xad\x0f\x4e\x0e\x5c\xd5\x24\x95\x23\x5c\xf1\xfe\xb4\xbf\xe2\ \x4c\x87\xda\x8e\x40\xec\xa2\xb5\x31\xd0\x68\x39\x63\xa5\x14\xb7\ \xc0\xa2\xc5\x6b\x33\x9c\xbe\x54\x78\x1c\xd2\xa8\xfd\x43\x4e\x22\ \x68\xe0\x1e\x02\xea\x3f\xde\xb8\x5b\x5c\x3b\x89\x1e\xf2\x76\x90\ \x70\x43\x60\x7f\x6e\x29\xaa\x34\xe2\xe9\x4b\x32\x1f\x4e\x72\x1c\ \x76\x6a\x5a\x7b\x7b\x9b\x56\xc4\xd1\x9d\x3f\xd4\x38\xa8\x49\x7a\ \x94\x64\x1d\x69\x26\x3b\xb2\xe1\x8f\xea\x2b\x42\xcf\xad\x44\xea\ \x20\xbd\x89\x97\x56\xd9\x61\xb5\x63\xef\x14\xad\x8d\xfc\xf6\x5f\ \xcb\xd3\xea\x41\xfd\x3c\x91\x45\xbe\xb6\x8e\xe9\x3f\x15\x62\x41\ \xfe\xa4\x1c\x8a\x50\xe2\xa2\x32\xf1\x4b\xea\xc0\xfa\x1c\x7f\x63\ \xfa\x56\xee\x1c\xee\x22\x88\xc4\x36\x0e\x43\x0e\x68\x8e\x04\x83\ \xc1\xa3\xbc\x90\x5e\x26\x2e\x53\xd1\x9c\x70\xeb\xc3\x52\xae\x1a\ \x29\x74\x39\x07\xc1\x1d\xe8\x2a\x41\x07\x07\x63\x56\x95\xb5\x44\ \x18\x8f\x76\x71\x9f\x22\xa2\x53\x9c\x79\xa0\xfb\xe7\x99\x61\x87\ \x76\x63\x8a\xa0\xfd\x1a\xcd\xef\xfa\x88\x03\xe8\x5d\x8b\x1e\x00\ \x15\xe9\x2e\xe6\x56\x45\x82\x21\xa6\x28\xc6\x00\xf3\xf3\x4b\x58\ \xc2\x96\x56\x42\xde\x3f\xa8\x8f\xe6\x37\x9f\x8a\xba\x2b\x33\x00\ \xa0\x93\x59\xd7\xb1\x00\x12\x70\x06\x4d\x39\x6d\x66\xe5\x75\x11\ \xfd\xe8\xd6\x96\xe9\x02\x7a\x92\xee\xde\x2a\xb7\x17\x6c\x4e\x10\ \xaa\x81\x58\xb9\xdb\xc4\x5d\x14\xba\x8f\xd3\x9b\x4e\x6a\x92\xb1\ \x29\xe9\x26\x40\xee\x68\xf2\x24\xb3\x39\x25\x46\xc3\x76\xec\x2b\ \x2b\xac\xf5\x48\x6d\x50\xc3\x6a\xe2\x49\x8f\xd5\x20\xe1\x7e\xd5\ \x7b\x9a\x13\xd4\xae\x61\xb2\x8f\x4e\x43\x4c\x46\xc8\x3b\x7c\x9a\ \xc8\x09\x25\xd3\x99\xa7\x62\x4b\x1a\x8b\x68\x9a\x56\xf5\xa5\x24\ \xe4\xe7\x7e\x5a\x9f\x86\x3c\x8c\x9d\x80\xad\xc9\xa4\x29\xf8\x52\ \x87\x54\x65\x90\xf9\x14\x48\xee\x6e\x21\x20\xba\xea\xff\x00\x32\ \x9c\x1a\xbd\xe4\xe1\x13\x3f\xd8\x79\xa0\xb4\x97\x18\x19\x80\xe0\ \xf9\x34\x1a\x96\xb7\xb1\xce\x06\xa6\xf7\x70\x1b\xfe\x68\x77\xf6\ \xa2\x4f\x7a\x00\xaf\xf1\xc3\x7d\xab\x37\x28\x5b\x20\xb4\x4f\x4c\ \x5b\xde\x3c\x5e\xd9\xb0\xcb\xe4\x56\x75\xf8\x02\x46\x78\x64\xc8\ \xc8\x61\xcd\x3c\x4c\x77\xb6\xc4\x70\xe2\xa2\x78\x92\xe6\x3d\x68\ \xc0\x9f\x23\x9f\xd6\x92\x05\xe1\x97\x6d\x98\x53\xb1\xd0\x3b\x43\ \x31\x46\xe7\x34\xe4\x47\xdb\xa0\x7d\xd4\xd0\xae\x51\x6e\xe1\xf5\ \x13\x69\x17\x91\xe6\x87\x6b\x21\x65\xd3\x9c\x32\x9d\xaa\xc0\x66\ \x90\x97\x62\x76\x20\x55\x23\x1a\x8f\xcf\xee\x68\xd2\x28\x65\xf5\ \x17\xb8\xc3\x0a\xa5\x89\x1f\x89\x4c\xf1\xa8\x66\xb4\x35\x3a\x65\ \x90\x8d\x04\xf3\x8f\xfa\x54\xd0\xba\xc5\xe6\x47\xa6\xa6\x99\xeb\ \x17\x26\x35\x2a\x2b\x09\xd8\xb3\x12\x7b\xd7\x2c\x66\xfe\xd5\x5c\ \x37\x34\x54\x5c\x2e\x0d\x44\x4b\xdc\xd4\xc8\x74\xae\x6b\xb4\x88\ \x0c\x8b\xb9\x00\xe2\xba\x34\x57\x3a\x58\xe1\xbb\x67\xbd\x4b\x12\ \x4e\x4d\x4c\x41\x58\xe1\x94\x1a\xd5\x82\x45\x8b\x31\xe1\x4f\xdc\ \xd1\x97\xa7\xc8\x17\xf2\x8f\xd4\x54\xc3\x10\x27\x09\x23\x29\xf0\ \x77\xa3\x24\x13\x9e\x4e\xc3\xbd\x62\xec\x0d\x6d\x11\x37\x92\x40\ \x7e\x05\x4b\x98\xd1\x72\xab\xa4\x79\xef\x5d\x70\x56\x2f\xa9\xb5\ \x1f\x8a\x52\x47\x67\x39\x35\x66\x3f\x91\x69\x25\x66\x3b\x6c\x2a\ \x8c\x75\x2e\x96\x01\x87\x83\x57\xb6\x89\xa5\x7c\x0e\x3b\x9a\xb5\ \xcb\xa8\x6d\x11\x81\x85\xf8\xe6\xad\xb3\xa1\x47\x65\x27\x65\x15\ \x42\x01\xf8\xae\xae\xa0\xa4\x84\xae\xd9\xd8\xd5\x5d\xb5\x15\x07\ \xb5\x75\xc3\x70\x3b\xd5\x19\x82\x82\x7b\xd4\xa2\x27\x62\x4e\x95\ \x19\x2c\x70\x00\xef\x5b\x1d\x22\xcc\x5a\xc5\xad\xc0\x32\xb7\x27\ \xc7\xc5\x03\xa2\xd9\x85\x02\xe6\x61\xef\x3f\x40\x3f\x96\xb5\x11\ \x0b\x1f\x8e\xe6\xb3\x47\x46\x85\xdb\x03\xfb\xd3\x70\x98\xe0\x5c\ \x82\xab\xe5\xdc\xe0\x56\x67\x52\xea\x90\x59\xa9\x8e\x3c\x49\x20\ \xfc\xa0\xff\x00\xa9\xac\x5b\xbb\x9b\xcb\xd7\xd5\x34\x87\x1d\x87\ \x61\x59\xd5\xc9\x5e\x9e\x4e\xab\xd3\x52\x5c\x48\xe6\x66\x1d\xfb\ \x0a\x15\xe7\xf1\x0d\x8c\x03\xf9\x10\x29\x3c\xf1\x5e\x55\xe1\x90\ \x6e\x0e\xf5\x06\x30\x83\x54\xad\x92\x78\x1e\x6a\x78\x43\x67\xfa\ \xaf\x5b\xbe\xbf\x52\x9a\xbd\x38\x87\x61\xb5\x2b\x67\x6d\xac\x7a\ \x92\x6c\x9d\x87\x76\xa2\xda\xdb\xe5\x44\x93\x8c\x2f\xe5\x4f\x3f\ \x7a\x6e\x24\x2c\x78\xda\xb7\x24\x9d\x22\x21\x8f\x51\xce\x36\x15\ \x6b\x87\x00\x15\x1b\x79\x34\x49\x59\x63\x4c\x01\xbd\x67\xdd\x33\ \xcb\x2f\xe1\xa3\xdd\xdf\x9f\x8a\x09\xb5\x1e\xbc\xcd\x3b\x0f\xe5\ \xc7\xb2\x8f\x26\x9c\xd0\xa0\x8d\x7e\xe7\x6e\x73\xda\xa2\x14\x48\ \xd4\x22\x8f\xe5\xc5\xff\x00\xf4\x6a\xb9\x26\x4c\x9e\x49\xab\x20\ \x39\xb4\x47\x18\xc7\x3d\xa8\x17\x1d\x36\x45\x24\xc4\x4f\xfd\x27\ \x8a\xdb\xe9\x89\x11\xb8\x60\xec\x03\x01\xed\x07\x6c\xed\x5d\x73\ \xac\x48\xc0\x8c\x6f\xc5\x67\x7c\x8f\x36\xa6\x7b\x57\xc8\x0d\x1f\ \xc7\x63\x4d\x2c\x90\xdd\xa6\x92\x34\xc8\x29\xfb\xa1\x1b\xae\x99\ \x50\x10\x7e\x2b\x3a\xe2\xc1\x87\xf3\x2d\xdf\x20\x6f\x8c\xee\x2a\ \x76\x02\x0c\x96\xf3\x7c\x8f\xde\xa6\xe5\x41\x1f\x89\x8b\x91\xf5\ \x28\xae\x49\x84\xa3\xd3\x9b\xda\xe3\x60\x4d\x40\xd7\x0c\x9b\xf0\ \x7f\xb1\x14\x07\xb5\x94\x11\xa8\x6e\xad\xb1\x15\x07\xd9\x36\xde\ \x76\xa5\xc9\x11\x49\xa9\x77\x8d\xb9\xf8\xa3\x1f\x72\xe7\x92\x3f\ \x7a\xd4\x1a\x3d\x64\xeb\xb6\x8a\x50\x7e\xa0\x2b\x3e\x25\x2e\xe1\ \x40\xf8\xa7\x6c\x5b\xf1\x16\x12\x5b\xb6\xe5\x3d\xcb\x4a\x5b\x9d\ \x17\x0b\x9d\xb0\x77\xa9\x8f\x1c\x02\xb2\xe1\xf4\x8e\xd4\x09\xf3\ \xea\x63\xb0\xad\x19\x21\x02\x53\xdb\xe6\x95\xba\x8f\x9c\x60\x91\ \xde\xb7\x8e\x41\x77\x18\x18\xfd\xe8\x91\x00\x13\x23\xbd\x0c\x1d\ \xb0\xd5\x2a\x4a\x6f\xc8\x35\xa0\xcd\xbc\x82\x32\x49\x07\x35\x17\ \x17\x4c\x46\x01\xc0\xa5\xda\x42\x78\xda\xa8\x77\xa9\xe3\xee\x89\ \x62\x49\xc9\xa9\x89\x0b\xb6\x05\x54\x0c\x9c\x0a\x7e\xda\x2f\x4e\ \x20\x74\xee\x79\xa6\x57\x42\xcc\x9e\x8c\x1a\x17\x96\x1b\xfd\xa9\ \x67\x8d\x47\xb9\xce\x05\x1a\xf2\xe1\x73\xb9\x05\xbc\x0a\x4e\x47\ \x67\x39\x63\x58\xc6\x5f\x62\xb5\x0c\x40\x52\x4f\x6a\x93\x4b\xdc\ \x3e\x5b\x48\x3b\x0e\x6b\x62\xac\xd9\x62\xed\x4e\x74\x8b\x43\x33\ \x89\xe6\x5f\x60\xfa\x41\xef\x42\xe9\xd6\xad\x73\x28\x67\x18\x8d\ \x7f\x7a\xd8\x9a\x48\xad\xa0\xd4\xc4\x05\x5e\x05\x62\xd0\x52\x55\ \x14\xb3\x90\xaa\x39\x26\xb2\xba\x8f\x53\x79\xb3\x0d\xa6\x55\x38\ \x2f\xdc\xd2\xbd\x42\xed\xee\x5b\xde\x4a\xc6\x3e\x94\x1d\xea\x90\ \xc5\x3c\xab\xed\x5d\x0b\xe4\xf3\x4d\x6c\x42\xac\x71\xee\xcc\x33\ \xe4\x9a\xba\x49\x1b\x26\xa5\x60\x40\xa2\x27\x4f\x8f\x19\x63\x96\ \xf9\x19\xa8\xff\x00\xc2\xd6\x49\x32\x06\x4f\x7d\x35\x78\x00\x33\ \x6b\x6d\x10\xa9\x76\xf8\xe0\x53\x16\xd6\x82\x3c\x4d\x39\xd5\x21\ \xdc\x2f\x8a\x69\x23\x86\xd1\x02\x46\xa0\xbe\x3c\x6c\x2a\x8a\x0b\ \x3e\x49\x24\x9a\x41\x31\x82\xef\x93\xbd\x1f\x64\x04\xd4\xa2\x04\ \x5f\x9a\x0c\xec\x59\x82\x2f\x7a\x80\x37\x72\x84\x8d\xa6\x3e\x70\ \x83\xc9\xaa\xf4\x94\x31\xdb\xbd\xe3\xee\xf2\xe5\x63\x3f\xea\x69\ \x6b\xd7\x37\x17\x6b\x04\x5b\x84\x3a\x57\xe4\xf7\x35\xab\x22\x2a\ \xcd\x1d\xba\xfd\x10\x2e\xf5\x28\x1b\x82\xaa\xb0\x8e\x79\x3f\x7a\ \xa3\x02\xa7\x06\x9d\xe9\x90\x8b\x8b\xb6\x91\xfe\x91\x4e\xc9\x05\ \x99\x04\x12\x7f\x4a\xd6\xf5\xc0\xcd\x8a\xed\xc2\xe9\x93\xdc\xbf\ \xb8\xfb\x53\x6b\x79\x11\x40\x19\xf2\x7b\x1a\x8f\xc0\xc2\xcc\x4a\ \x07\x23\xe4\x80\x29\x9b\x7e\x90\x64\x19\x58\x76\x1d\xc8\xdb\xfb\ \x9a\xcd\xb8\x85\x9a\x48\xa5\xdb\x2a\x7e\xc6\x94\xb8\x89\xe3\xf7\ \x21\x38\xad\x79\x3a\x44\x41\x4e\xb7\x85\x1b\xc0\x6d\xff\x00\x61\ \x4b\x4f\x61\x71\x1a\xe5\x1c\x48\xa3\xb6\x73\x59\x99\x63\xea\xae\ \x99\x13\x08\xe7\xff\x00\x10\x69\x61\xc3\x0a\x0b\x96\x8f\x11\xcb\ \xee\x4e\xcc\x29\xe9\xe1\x52\x7d\xc3\x41\xf9\xe0\xd2\xce\xac\xa3\ \x4b\xae\x54\xf6\x3d\xeb\x7a\x40\x7e\x83\x83\x86\x56\xfd\xea\x62\ \x6f\x4c\x84\x27\x2a\x7e\x93\x5c\xca\x50\x7b\x77\x5e\xea\x7b\x55\ \x36\x23\xe0\xd4\x0e\x5a\xca\x60\xb8\x59\x07\x1d\xc7\xc5\x5f\xa8\ \xc6\x23\x9f\x5a\x7d\x0f\xee\x53\x4a\x42\xe4\xfb\x1b\x91\xc7\xcd\ \x39\x19\xf5\xec\x8c\x47\xeb\x8b\x75\xfb\x53\xde\xc1\xa7\x94\xc9\ \x02\x49\x9e\x46\xff\x00\x7a\x5d\x66\xc6\xcd\x53\x6a\x75\xc0\xf1\ \x77\x1e\xe5\xff\x00\x7a\x0b\x56\xb1\x90\x11\x8c\x6f\xf0\x68\x44\ \x11\xb0\xdc\x57\x63\x35\xda\x1b\xb5\x6a\x5d\x0a\xd7\x54\x95\x61\ \xc8\x35\x15\x76\x2c\x84\x06\xc9\xa2\x49\x73\x23\x2e\x9c\xe0\x7c\ \x50\x70\x7c\x54\x81\x52\x88\xae\xae\x3c\xd7\x50\x06\xe2\x4c\x0c\ \x0e\x6a\x7a\x7d\xab\x5c\x4b\xbe\x74\x0e\x4f\x9a\xeb\x1b\x67\xb9\ \x9b\x27\xe9\xee\x6b\x46\xea\xe2\x2b\x28\x74\x20\x05\xb1\xb0\xac\ \x5a\x09\x71\x34\x36\x70\x0e\x32\x07\xb5\x45\x64\x4b\x2c\xd7\x73\ \xf1\xa8\xf6\x1d\x96\xad\x14\x53\x5e\x4d\xad\x89\xc1\x3c\xff\x00\ \xc5\x6d\xd8\x74\xe8\xe0\x88\x3c\xa9\x81\xd9\x7c\xfd\xeb\x3b\x93\ \xb1\x9d\xd3\xba\x6b\x31\xd6\xd8\x63\xdd\x9b\x81\x5a\x31\xdb\xdb\ \xa0\xf7\x96\x73\xf1\xb0\xa3\xbe\x58\x0c\xfb\x50\x70\x05\x25\x7d\ \x72\x23\x53\x1c\x67\xdc\x79\xf8\xab\xbd\x83\xcd\x25\x94\x7b\x88\ \x00\xf1\x96\x34\xac\xf7\x8f\x20\xd1\x10\x08\xbe\x40\xc5\x2b\xee\ \x90\xea\x62\x71\xe4\xd5\xd4\x16\xf6\xa8\xc0\xab\x31\x10\x06\x5b\ \x03\x24\x9e\xe7\xbd\x35\x0c\x61\x13\x27\x9a\xeb\x78\x70\x32\x7b\ \x55\x98\x83\x96\x3f\x4a\xd2\xd0\x39\x8e\x07\xc9\xdc\xd2\xd2\xbf\ \xa3\x67\x2d\xc1\xe4\x8d\x2b\xf7\xab\xdc\x31\xd3\xf2\xdb\x9a\x0f\ \x5d\xfe\x5f\x4d\x86\x2f\xea\x39\x34\xa2\xbf\xc2\xf0\x97\xea\x3a\ \x88\x07\xd1\x88\xb9\x07\xc9\xa7\xad\xff\x00\xc4\xb8\x27\x9c\x1a\ \x5f\xf8\x55\xd5\x7a\xb3\xc4\xc7\x1e\xb4\x65\x57\xe4\xd1\xe4\x06\ \x3b\x99\xc7\xf9\x6a\x7b\x0e\xf4\xc3\xa3\xa6\x92\x36\x67\x62\x28\ \xb1\xa0\x2f\x8f\x1b\xb1\xf1\x43\xb6\x5f\x4e\xd6\x35\x3d\x97\x3f\ \xa9\xa7\xfa\x7c\x46\x31\xae\x45\xce\x91\xea\x30\x3f\x1c\x0f\xef\ \x8a\x99\x5d\x4d\x91\x63\x2c\x76\x80\x6a\x0b\xac\x0e\x48\xd4\x54\ \xf8\x03\x8d\xbc\xd2\xb3\x5f\xca\xec\x49\x19\xcf\x77\x62\x7f\xed\ \x40\xea\xac\xff\x00\x8c\x31\x17\x00\xa0\xf7\x31\x38\x03\xcd\x2e\ \x90\x7a\x8b\xaa\x39\x63\x93\xec\x6b\x13\x19\xdd\x53\x7f\x8a\x9b\ \x23\x05\x07\xff\x00\x88\xab\xad\xcc\xf9\xd4\x4a\x31\xfb\x0a\xce\ \x6f\x52\x33\xef\x0c\xbf\x3d\xaa\x56\x56\x18\x39\x07\xed\x5a\xf1\ \x88\xd2\x6b\x88\xa5\x04\x5c\x45\x9c\xf7\xc6\x7f\x7a\x5e\x6e\x9e\ \x92\x29\x6b\x79\x01\x1f\xd0\xc6\x80\xb3\xe7\x92\x41\xa8\x37\x0d\ \x13\x64\xe4\x7c\x8a\x4c\x6c\xe9\x4a\x5c\xdb\xc9\x0c\x85\x5d\x08\ \xf8\xa5\xa5\x8f\x03\x5a\x0c\x8e\xe2\xb6\x92\xee\x19\xe3\xf4\xe7\ \x01\x87\xcf\x22\x97\xbb\xb3\x08\xbe\xa5\xbb\x6b\x4e\xe3\xb8\xab\ \xbf\x55\x19\x07\xb1\x1d\xa9\x8b\x69\x4a\xb0\x75\xe4\x73\x55\xb8\ \x87\x48\xd7\x1e\xe3\xb8\xf1\x41\x56\xd2\x75\x0f\xd4\x55\x81\xf9\ \xbf\x95\x70\xb3\x47\xf4\xb6\xe3\xfe\x2b\xae\x95\x75\xeb\x4c\x69\ \x71\x91\xf1\x54\xb7\x71\x24\x7e\x93\x1e\x77\x53\xe0\xd4\x21\x20\ \x18\xdb\xf4\xf8\x35\x67\x63\x93\x9a\x91\xbf\xc5\x45\x41\x24\x1c\ \xd6\xf4\x2e\x37\xd8\xb0\x1f\x7a\xe2\x0e\x3e\xa5\xfe\xf5\x45\xd6\ \xdb\xad\x10\x47\x26\x3f\x2d\x2c\x15\x60\xbe\x73\x55\x24\x62\xba\ \x65\x65\xe4\xe7\x3e\x2a\x94\xd7\x03\xab\x8f\x15\xc4\xe2\x81\x3c\ \x9d\x85\x03\xd7\x37\x11\xda\x43\xe9\x44\x32\xf8\xc5\x2d\x6f\x6e\ \xf2\xbf\xab\x70\x49\xce\xfa\x7c\xd4\xda\xc5\xee\xf5\xa5\xdd\x8f\ \x00\xf6\xa6\xa1\x0d\x24\x81\x40\xe4\xd7\x3d\x87\xba\x64\x68\x08\ \x3a\x46\xdf\xb5\x35\x3b\xeb\x6c\x93\xed\x14\x34\x55\x86\x2d\x3f\ \xdc\xd2\x77\xd7\x78\xf6\xa9\xdf\xc7\x8a\xce\xb7\x55\xdd\x42\xef\ \x03\x42\x73\xfe\x94\x80\x52\x7d\xcd\xff\x00\xdd\x58\x29\xfa\x9f\ \x93\xda\x8b\x14\x4c\xed\xbd\x6e\x4d\x22\xb1\xa1\x73\x8e\x00\xe2\ \x9c\xb6\x83\x7c\x01\xbd\x4c\x10\x92\xc1\x54\x6e\x68\xf7\x85\x6d\ \xe3\x11\x27\xd6\x7e\xa3\xe2\xa5\xcb\x9d\x40\x09\x88\x2c\x22\x8f\ \x7f\x27\xc9\xaa\x5d\x29\x0e\x20\x5d\xf0\x77\xf9\xa6\x7a\x5c\x25\ \xb5\x4d\x8f\xa0\x6d\xf7\xa5\x54\x86\xbd\x1a\xce\x37\xe4\xd3\x7c\ \xe8\x29\x21\xcb\x6a\xed\xaa\x9d\xbd\xb6\xb6\xea\x16\xe9\x99\x82\ \xb2\x8c\x50\x64\xb6\x9a\x27\x3a\xe3\x38\xf2\x57\x20\xd0\xc4\x68\ \x4e\xfe\x9a\xfe\xa4\x55\xbc\x8b\x59\xd8\x47\x65\x74\x97\x53\xdd\ \x07\xf4\xb7\x55\x5e\x49\xa2\x42\xa6\x7b\x86\x66\x18\x0e\x72\xc3\ \xc0\xec\x2a\x88\x90\x29\xcb\x4a\xbf\xfe\x00\x93\xfd\xcd\x3b\x00\ \x52\x8a\x23\x18\x0d\xc5\x40\xdd\x94\x61\xdf\xd5\x93\x1a\x57\x80\ \x78\xa6\xe4\x94\x45\x6a\x92\x9e\x25\x97\x50\xf9\x55\xff\x00\xbe\ \x69\x48\x12\x5b\xbb\x94\xb6\x80\x1d\x24\x85\xdb\xfd\x69\x8f\xe2\ \xcd\x31\x4e\x2d\xe3\xfa\x20\x88\x22\xd7\x2c\xae\xec\x8a\xc4\xba\ \x8e\x4b\xbb\x7b\x97\x19\x2d\x8d\x64\x79\xde\xb2\x21\x91\xe2\x7c\ \xa9\x23\x15\xe8\x7a\x3c\x82\x2b\xec\x30\xca\xb0\x2a\x47\x9a\x5b\ \xf8\x97\xa4\xb4\x0f\xeb\xc2\x09\x8d\xb7\x15\xbf\x29\x2e\xa8\xad\ \x9d\xf8\x75\x0b\x36\x19\x7c\xe2\x8d\x2d\xaa\xba\xeb\xb7\x6f\xd3\ \xb5\x61\xc4\xe5\x1b\xe3\xb8\xa7\xec\x6e\x9e\x22\x19\x0e\x57\xb8\ \xab\x66\xba\x04\x93\x2a\xc5\x5d\x74\xb0\xf3\xde\xa3\x51\xdc\x72\ \x3c\x1a\xd4\x83\xf0\xd7\xf1\x60\x90\x1b\xe7\x8a\x5a\xfb\xa7\x4d\ \x01\xca\x82\x47\x83\x49\x9c\xea\x9a\x20\xeb\x8d\xd7\xff\x00\xaa\ \xbd\xbc\xd2\x44\x75\x23\x64\x0e\x45\x50\x92\xa7\x0c\x0a\x91\xe6\ \xa7\x93\x90\x77\xae\x9d\xf6\x86\x18\xc5\x3f\xbe\x30\x12\x5e\xea\ \x78\x6a\xcf\xbc\xb7\x2a\xc5\x90\x11\x8f\xa9\x7c\x51\x9b\x63\x91\ \xb1\xa2\xac\xa2\x41\xa6\x53\x82\x38\x71\xfe\xf5\x8b\x8e\xba\x19\ \xd0\xbe\x96\xe7\x6a\x69\x8e\xb4\xf5\x07\xd4\x3e\xaf\x9a\x15\xec\ \x05\x5b\x52\x80\x3e\xdc\x1a\xad\xb4\x9a\x5b\x07\x71\x48\x0c\xa7\ \x22\xa1\xfc\xd4\x91\xa5\xbe\x0f\x15\xcd\xba\xd6\xe5\x17\xb7\x38\ \x53\xe6\xaf\xa8\xd0\x22\x38\x7f\x8a\x35\x5b\xd8\xac\xe7\x2b\x41\ \x34\x49\x8f\x6a\x5e\x79\x02\x8c\x0e\x68\x29\x71\x20\xce\x07\x35\ \x5b\x58\x5a\x79\x42\x8e\x3b\x9a\xac\x68\xd2\xc9\xa4\x6e\x6b\x42\ \x42\x96\x56\xda\x46\x35\xb5\x62\xd1\x45\x25\x9a\xb4\xec\x23\x58\ \xa3\xd6\xc3\x73\x4a\x58\x43\x9c\xc8\xdc\x0f\xde\x8b\x3c\xc4\xfb\ \x57\x73\x59\xa2\x6f\xee\x4e\x74\xae\xe4\xf6\xa5\x54\x15\x6c\xb7\ \xb9\xcf\xed\x56\x45\xf7\x61\x3d\xce\x79\x3d\x85\x35\x6d\x6c\x34\ \xeb\x6f\xa7\xbb\x79\xfb\x55\xe2\x01\x41\x0b\x31\xd6\xdf\xae\x69\ \xa8\x63\x2c\x42\x20\xde\xa5\x14\xbb\x84\x45\xdb\xb0\xad\x6b\x1b\ \x64\xb5\x40\xf2\x60\xb9\xac\x67\x9e\xbb\x50\x96\x05\xb4\xb5\x2e\ \xc3\xdc\x45\x63\xce\xcc\xd2\x96\x63\x92\x4d\x7a\x47\x41\x72\x37\ \xe1\x46\x6b\xcf\xdc\xc4\x4b\x1d\xb1\xbd\x4f\x8a\xee\xee\x95\xa5\ \xd1\x62\x2f\x6b\x22\x26\x35\x15\xc0\xcd\x64\xde\xc2\xc8\xe4\x15\ \x21\x97\x62\x29\x8e\x9f\x78\xf6\xd2\x85\x6d\x8f\x7d\xf9\xad\x5b\ \x8b\x78\xba\x8c\x3e\xa4\x45\x44\xc0\x7f\xfb\x56\xb9\xc6\xec\x79\ \xf8\x2e\x67\x8c\xfb\x65\x60\x3e\xf5\xb7\xd3\x7d\x1b\x98\x3f\x98\ \x8a\xcd\x8e\x48\xac\x7b\xcb\x67\x8d\xd8\x15\x2a\x47\x20\xd1\x3a\ \x35\xd8\xb7\xb8\x1a\x8f\xb4\xd6\xb2\x9b\x9b\x80\x7d\x62\x3f\x4e\ \x50\x02\x80\x01\xec\x29\x9b\x60\x5c\xa8\x1c\x91\x81\x4c\x75\xdb\ \x61\x71\x17\xaf\x0f\xb8\x73\xfa\xd2\x16\x53\x10\x06\x4e\x1d\x0d\ \x25\xde\x28\xf6\x7f\xc3\xd6\x0b\x6a\x86\x72\x31\x85\xd8\x9e\xf5\ \xe7\x3f\x89\x24\x0d\x73\x3b\x1e\xe7\x15\xa9\x69\xd6\xa5\x9e\xdf\ \xd1\x70\xa3\x6d\xcd\x60\xf5\x97\x0d\x23\x1c\xe7\x26\xb8\x7c\x78\ \xe5\xe7\xcb\x57\xa0\x33\xa6\x6c\x83\xce\xe2\xb7\x7a\x7c\xf1\x5c\ \xda\xfa\x17\x18\x28\xfb\x03\xfd\x26\xb0\x07\xba\x05\x61\xca\xec\ \x69\xae\x97\x30\x12\x98\x9c\xe1\x5c\x73\xe0\xd7\x4c\xf1\xdc\x48\ \x4f\xf8\x93\xa4\x49\x67\x39\x65\x5c\xa9\xf1\xc5\x65\x44\xe6\x36\ \xcf\x23\xb8\xaf\x77\x6a\x52\xed\x1b\xa7\xdd\xe3\x58\xfa\x18\xd7\ \x95\xfe\x23\xe9\x72\x59\x5c\xb7\xb4\xe3\x35\x30\xcf\xfe\x72\x2c\ \x0e\x09\x5a\x3c\x49\x11\xd8\xf2\x2b\x7b\xa3\xf5\x34\x96\x3f\x4a\ \x71\xa9\x7b\x83\xb9\x15\xe5\xad\xa5\x31\xb6\x0f\x06\x9b\x46\x68\ \xdc\x49\x19\xad\xe5\x8e\xcd\xbd\x5d\xc7\x45\x8a\xe9\x3d\x48\x0a\ \xb2\x9e\x01\xff\x00\x9a\xc9\xbd\xe9\x12\x40\xf8\xd0\xc9\xf7\xe0\ \xd1\x3a\x2f\x58\x78\x58\x61\xb0\x7b\xa9\xe0\xd7\xac\xe9\xb7\x96\ \xb7\xf1\x60\xe9\x0d\xc1\x56\xae\x37\x2c\xf0\x5e\xde\x16\x6e\x9f\ \x36\x9d\x4a\xa5\xbe\xd4\x9b\xab\x2b\x61\x81\x07\xe4\x57\xd2\xa5\ \xe9\x90\xf2\xa8\x07\xc8\xa4\x3a\xb7\x47\xb6\x9e\xdf\x12\x47\x83\ \xd9\xd4\x6e\x29\x8f\xf2\x3f\x27\x8b\xc2\xa4\x83\x4f\xa7\x20\xca\ \xf6\x3e\x29\x7b\x98\x8a\x36\x47\x07\xc5\x69\x75\x7e\x9b\x2d\x9b\ \x1d\xc4\x91\xf6\x71\xfe\xfe\x29\x15\x23\x74\x7f\xa4\xfe\xd5\xdf\ \x8b\x37\x19\x52\x17\xd4\xba\x0f\x3d\xaa\xea\x7b\x1a\x0c\xc8\x62\ \x93\x6d\xc7\x62\x2a\xe8\xda\x97\x23\xf5\xab\x05\x98\x60\xd1\xa3\ \x39\x5c\xd0\x79\x15\x68\x4e\x1b\x1e\x6b\x7d\x81\xdc\x3e\x9c\x93\ \x4a\x1d\x4e\xfb\x6e\x4d\x35\xd4\x47\xb7\x35\xdd\x2d\x54\x6b\x95\ \x86\xca\x2a\x50\x68\x95\x2c\xed\xf5\xb6\x35\x1a\x5a\x30\xd7\x12\ \x99\xa4\xe3\xb5\x44\x8c\xd7\x53\xe4\xe4\x20\xa3\x70\x30\x36\x02\ \xb2\x1f\x9a\x50\xa8\x11\x76\x51\x42\x89\x4b\x8c\xb1\xd2\xbd\xfc\ \x9a\x11\x90\x38\xdc\x60\xd3\x16\xb8\x76\x50\x78\x03\x8a\x9d\x40\ \xcd\xbc\x29\xa7\x51\x5d\x31\xfe\xed\x44\x6c\xc8\x42\xa8\xc0\x1c\ \x28\xed\x56\x45\x2f\x82\x4f\xc6\x29\xeb\x44\x86\xd5\x7d\x69\x86\ \xe3\xe9\x5a\xc5\xba\xfe\xd4\x6e\x9b\x6a\xb6\xf1\x7a\xb2\x8f\x71\ \xe0\x52\xd7\x52\x4b\x35\xf2\xc6\x99\x39\xe0\x0a\x1d\xdd\xf4\xb3\ \x3e\xa1\xed\x51\xc0\xad\x3f\xe1\x53\x11\xfe\x27\x85\xa4\x00\x83\ \x0e\xa5\x04\x73\x5c\xf2\x96\x4d\xd1\xaf\xd2\x7a\x15\xd7\xe0\xc4\ \xc3\x00\xf8\x6e\xf4\x2e\xa1\xd1\x12\x43\xfc\xdb\x53\x03\xe3\x1a\ \xe3\x19\x53\xf7\x14\xf7\x52\xeb\x52\x17\x29\x19\x0a\x01\xc0\x02\ \xa2\xd7\xae\x38\xf6\xc8\x01\xfb\xd7\x09\x7e\x4e\xda\xe1\xe3\x7a\ \xbf\x4a\x9a\xd9\xb1\x22\x6a\x43\xf4\xb8\xef\x49\x5b\xdc\xcd\x67\ \x20\xcb\x1d\x3e\x6b\xe9\x7e\x9d\x97\x50\x8c\xaa\xe9\x52\xc3\x75\ \x3c\x1a\xf3\xbd\x7f\xf8\x56\x45\xd4\xf6\xcb\x90\x7f\x21\xef\xf6\ \x35\xdf\x0f\x9e\x5e\x32\x66\xc6\x54\x8d\x07\x52\x83\x21\x82\xcc\ \x06\xc7\xcd\x63\x5e\xda\xbc\x32\x10\x57\x04\x76\xa2\x4b\x0d\xc5\ \x95\xc1\x00\x30\x2b\xca\xf8\xa7\xa1\xbb\xb7\xbc\x84\x45\x73\x85\ \x60\x36\x6f\x15\xda\x6f\x1e\x67\x48\x57\xa3\xde\xfa\x4d\xe8\xcd\ \xbc\x6d\xb6\xf5\x1d\x5a\xd3\xd0\x90\x5c\x42\x35\x21\xe7\x15\x5b\ \xab\x09\x55\xb3\x18\xd6\x0f\x75\x35\x68\xde\xfd\x22\xd1\xb2\xa8\ \x3f\x9b\x15\x78\xde\xe0\x5c\x5d\xb0\x18\x40\x72\x79\x14\x19\xcc\ \xae\x72\xfb\x7c\x66\x99\x9d\x8e\x49\x9e\x70\x3e\x13\x1b\xd1\xad\ \x6c\xa5\x91\x43\xa4\x02\x34\x3c\x49\x29\xe7\xec\x3b\xd6\xb7\x20\ \xa4\x09\xff\x00\x92\x73\xfe\x60\x3f\x6a\x5d\x1f\x43\xe7\xb0\x35\ \xa1\x78\x12\x18\x16\x04\x3c\x6e\x4f\x72\x7c\xd2\x16\xe0\x3b\xba\ \x76\x35\x9c\x79\x1a\xf2\x3b\x49\x6f\x15\xd2\x1f\x7c\x67\x4b\x62\ \xb4\x66\x48\xba\xc7\x4d\x2a\xd8\xf5\xd0\x71\xe6\xbc\xff\x00\x4f\ \x9d\xe1\x9b\x41\x39\xd3\xbf\xdc\x56\x8d\xf3\x35\xbc\xd1\xdd\x5b\ \xb1\x50\xe3\x3b\x57\x1c\xb1\x57\x97\xea\x96\x6f\x69\x70\xc8\xca\ \x40\xce\xd5\x16\x73\x01\xec\x73\xb1\xe0\xd7\xb3\x96\xca\xd7\xad\ \xd8\xb1\xc6\x9b\x85\x19\xdb\xbd\x78\xde\xa7\x63\x2d\x9c\xe5\x1c\ \x1c\x03\xcd\x6f\x0c\xe6\x5c\x5e\xcb\x05\x61\xa4\xea\x4a\x7f\xa7\ \xde\xb2\x91\xb9\x04\x70\x73\xb8\xac\xab\x59\xb3\xec\x63\xbf\x62\ \x68\xac\x0a\xb6\x45\x6e\xcd\xf1\x51\xed\x3a\x3f\x5f\x92\x35\x09\ \x3e\x64\x4e\x33\xdc\x56\xea\xcf\x05\xd4\x3a\xa1\x75\x6c\x8e\x2b\ \xe6\xf6\x77\x45\x4e\x1b\xfb\xd6\xad\xa5\xcb\x29\x0f\x0c\x84\x11\ \xe0\xd7\x9f\x3f\x8a\x5e\x9a\x94\xef\xf1\x1c\x46\x37\x2d\x18\x3f\ \xe6\x43\xc1\xaf\x31\x75\x1a\x1f\x7c\x5c\x77\x53\xf9\x6b\xd7\x8b\ \xc8\xba\x84\x5e\x85\xd0\x09\x21\xd8\x3f\x63\xf7\xaf\x35\xd6\xec\ \xe5\xb3\xb9\x39\x1b\x67\x63\xe6\xb7\xf1\x5d\x71\x4a\xce\xd9\x97\ \x43\x71\xdb\xe2\x82\x33\x14\x98\x23\x6a\x3b\xe1\x86\x47\xea\x2a\ \x92\x2e\xb5\xf9\x1c\x57\x6b\x19\x48\x23\x90\x76\xa9\xe0\xe4\x50\ \xa2\x62\x0e\x93\x44\xab\x28\x9b\xa5\xf5\x21\xc8\xed\x40\xb7\x72\ \x2d\x65\x51\xb1\xe6\x98\x8c\xec\x54\xf0\x69\x68\xc6\x99\xa4\x43\ \xdd\x4d\x5b\xd0\x25\xb7\xf8\x23\x14\x68\x23\x32\x3e\x3b\x0e\x68\ \x16\xc7\xf9\x42\x9d\x0e\xb1\xc4\x14\x63\x38\xc9\xac\xfa\x1f\xff\ \xd9\ \x00\x00\x2e\x32\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x01\x00\x48\x00\ \x48\x00\x00\xff\xdb\x00\x43\x00\x04\x02\x03\x03\x03\x02\x04\x03\ \x03\x03\x04\x04\x04\x04\x05\x09\x06\x05\x05\x05\x05\x0b\x08\x08\ \x06\x09\x0d\x0b\x0d\x0d\x0d\x0b\x0c\x0c\x0e\x10\x14\x11\x0e\x0f\ \x13\x0f\x0c\x0c\x12\x18\x12\x13\x15\x16\x17\x17\x17\x0e\x11\x19\ \x1b\x19\x16\x1a\x14\x16\x17\x16\xff\xdb\x00\x43\x01\x04\x04\x04\ \x05\x05\x05\x0a\x06\x06\x0a\x16\x0f\x0c\x0f\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\ \x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\x16\xff\xfe\x00\ \x12\x42\x6c\x75\x65\x20\x41\x6e\x67\x6c\x65\x20\x53\x77\x69\x72\ \x6c\xff\xc0\x00\x11\x08\x01\x20\x01\x20\x03\x01\x22\x00\x02\x11\ \x01\x03\x11\x01\xff\xc4\x00\x1b\x00\x00\x02\x03\x01\x01\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x04\x01\x02\x05\x00\x06\ \x07\xff\xc4\x00\x3d\x10\x00\x02\x01\x03\x03\x03\x03\x02\x04\x04\ \x05\x02\x06\x03\x01\x00\x01\x02\x03\x00\x04\x11\x12\x21\x31\x05\ \x41\x51\x13\x22\x61\x32\x71\x14\x42\x81\xa1\x06\x23\x52\x91\x33\ \x62\xb1\xc1\xd1\x72\xe1\x15\x24\x34\x43\x53\xf1\x82\x92\xa2\xf0\ \xff\xc4\x00\x19\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x06\xff\xc4\x00\x24\x11\ \x01\x01\x00\x02\x02\x02\x02\x02\x02\x03\x00\x00\x00\x00\x00\x00\ \x00\x01\x02\x11\x21\x31\x12\x41\x03\x22\x51\x61\x04\x71\x13\x32\ \x42\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xf6\ \x3a\x14\xae\xdf\xa5\x74\x5a\x84\x80\x67\xf5\xa2\x45\x83\x10\x14\ \x39\x50\x83\xa8\x57\xde\x6f\x7c\x3c\xad\x7b\x16\x08\xe1\x98\xe4\ \x0d\xea\xd7\x0f\x7b\x79\x27\xb1\x4e\x91\xc1\x63\x81\x4a\x58\xcb\ \xae\x2e\x46\x46\xd4\xcb\x4a\x74\x80\x18\x81\x8e\xd5\xce\xce\x44\ \xc3\x33\xdb\x5c\x8b\x6b\xd8\x90\x29\xdb\x56\x38\xad\x8f\xe1\xeb\ \x48\xa4\x96\xe0\xb3\x65\xed\x70\xf1\x6f\xe7\xbd\x65\xcb\xa2\xfa\ \xdc\x43\x31\xc4\x80\x7b\x1c\xf7\xf8\xaa\x74\x2e\xa1\x2d\x87\x59\ \x81\x67\x38\x5c\xfa\x52\x13\xe0\xd6\x72\x96\xce\x15\xba\x49\x62\ \x4e\x73\x9a\x82\x1b\x1b\x0c\xd7\x5d\x0f\x4a\xe5\xd4\x70\x1b\x6a\ \xbc\x32\x03\x5c\x94\x5b\x1b\xd7\xb7\x71\x9c\x80\x3c\x56\xf5\xbc\ \xd6\x9d\x4a\xdc\xc7\x21\x5d\x64\x63\x71\xcd\x60\xe1\x49\xc1\x00\ \xd0\x3d\x66\xb7\xba\x0d\x1b\x15\xc5\x63\x2c\x3c\xba\x5d\x8b\xd7\ \x7f\x86\xe6\x79\x49\x86\x5c\xaf\xf4\xb1\x27\xfb\x57\x9c\xbf\xe8\ \x1d\x46\x26\xff\x00\xd2\x93\xbf\x2a\x32\x0d\x7b\x15\xeb\x8c\xb1\ \x61\x86\xb3\xe2\x83\x71\xd5\x2f\x25\x1b\x15\xb7\x4f\x20\x02\x6b\ \x78\x7c\x9f\x24\xed\x35\x1e\x41\x3a\x3f\x5a\xcf\xb2\xde\x6c\x0a\ \x66\x2e\x83\x71\xf5\x5e\x5e\x2a\x79\x54\x3a\x9b\xfe\xd5\xb5\x2d\ \xd1\x6c\xeb\x9a\x79\x49\xe7\x2e\x40\x3f\xa0\xa5\x2e\xe6\xd3\x11\ \x27\x00\x78\x1b\x0a\xe9\xfe\x4c\xaa\x68\xb4\x36\xd6\x56\x79\x68\ \x53\x53\x0f\xfd\xc9\xb0\x48\xfb\x0e\x28\x37\x37\x99\x24\x47\xb9\ \x3f\x98\xd2\xd7\x13\x3c\x8d\x96\x3b\x0e\x07\x6a\x0e\xa2\xc4\x84\ \xed\xcb\x1e\x05\x6a\x63\xbe\xcd\xa6\x57\x24\xff\x00\x53\x1a\x5d\ \x08\xfc\x48\x55\xdc\x28\x20\x91\xc6\x6b\x9a\x53\x21\x30\xdb\x9f\ \xfa\xe4\x3f\xed\x47\xb3\x80\x2a\x0f\x03\xf7\xae\xd8\xe2\x8b\x5e\ \x82\xcb\xa8\x72\x30\xc2\xb4\x7a\x04\xe0\xb9\x8c\xf1\x32\xed\xf7\ \xa4\x9b\x06\x45\x5d\xb7\x04\x1a\x1f\x4c\x90\xc6\xec\x3b\xa1\x0c\ \x3f\xde\xb1\xf2\x62\xb0\xff\x00\x4f\x96\x5b\x6b\xd6\x64\x24\x34\ \x6d\xb8\xad\x5e\xbb\x61\x0f\x57\xe9\xdf\x8b\x81\x46\xac\x7b\xc0\ \xec\x7c\xd2\x11\x28\xff\x00\xc7\xb3\x8f\x6c\x8a\x18\x56\x9d\xa4\ \xad\xd3\xaf\xb3\x8c\xc1\x26\xcc\x0f\x02\xb8\x67\x3d\xce\xd6\x3c\ \x05\xf5\xb3\xdb\xce\x54\x82\x08\x3c\xd5\xed\xa7\x0d\xec\x93\x9e\ \xc6\xbd\x97\xf1\x8f\x45\x49\xa1\xfc\x65\xa8\xd4\x8c\x33\xb7\x6a\ \xf0\xf7\x11\x34\x72\x10\x46\x08\xae\x98\x67\x32\x89\x61\xc3\x1b\ \x21\xd4\x99\xda\x8d\x6d\x78\xea\x70\x4d\x29\x65\x75\x8c\x47\x21\ \x38\x1c\x1e\xe2\x98\x96\x2d\x5e\xe0\x46\x4f\x04\x70\xd5\xaf\xed\ \x1a\x50\x5c\xa3\xe3\x7c\x1a\xd0\x70\x9d\x42\xcf\xd1\x94\x81\x22\ \x8f\x6b\x1e\xf5\xe6\x15\x9a\x37\xc3\x0a\xd1\xe9\xf7\x63\x20\x33\ \x7d\x8d\x63\x2c\x3d\xac\x21\x7d\x6f\x25\xad\xc3\x47\x22\x91\x40\ \x35\xb9\xd5\xa0\xf5\xe1\x32\xa9\x2f\x8e\x57\x39\x23\xe4\x56\x23\ \x0c\x1f\x22\xba\xe3\x97\x94\xfd\xa0\x53\x2e\xda\x87\xeb\x53\x0b\ \x67\x63\x57\x3e\x28\x32\x2e\x96\xa7\x40\xd5\x59\x50\x32\x13\xc3\ \x0e\x0d\x42\x3e\x76\x3c\xd5\xea\xca\x15\x46\xd2\x41\xee\x0f\xbb\ \xe6\x9a\xce\x54\x50\x6e\x23\xdf\x58\x1f\x71\x53\x6c\xd9\x5d\x3e\ \x38\xa7\xb0\xca\x39\x0a\x28\xd1\xb0\x75\xc1\xa5\x90\xfb\x6a\x55\ \x88\x39\x15\x34\x0b\x1b\xb4\x12\x1c\x6e\x0d\x32\xf2\xfa\x91\x6a\ \x43\xc7\x34\x90\x93\xce\xf5\x31\xbe\x96\xd4\xa7\x4f\xc7\x9a\xa1\ \xc8\x2e\x08\x20\x37\xf7\xa6\x6f\x42\x5d\x42\x1f\xff\x00\x71\x79\ \xc7\x7f\x9a\xcf\x24\x37\xb9\x76\xf2\x28\x96\xf3\x18\xcf\x91\x52\ \xcd\xf3\x07\xa4\xb0\xb9\x17\x76\x28\x5b\xfc\x68\x94\x24\xbf\x24\ \x70\x6a\xcc\xfa\x06\xdc\xd6\x6f\x4a\x60\x6e\x7d\x54\xc8\x05\x30\ \xfe\x0f\x8a\x7e\x1c\xcd\x37\xf9\x45\x70\xb3\x55\xa3\x56\x84\xe8\ \x2c\xdd\xe9\x79\xcb\x4b\x71\x85\xa3\xce\xd8\x51\x1a\xf3\x50\xa0\ \x42\xbb\x6e\xe7\xf6\xac\x4a\x25\x55\x20\x5c\x9f\x73\x9e\xd4\x36\ \x2c\xe7\x2c\x6a\x0e\xe7\x2c\x72\x4d\x02\xee\xe5\x62\x5e\x77\xad\ \x48\x09\x71\x2a\x42\xb9\x63\x59\x17\xb7\x26\x46\xcb\x1c\x01\xda\ \xab\x34\xf2\x4d\x36\x95\x05\xd8\xf0\xa2\xa6\x54\x86\xcd\x3d\x6b\ \xc6\x0c\xff\x00\x96\x31\x5d\x31\xc7\x49\x43\x54\x66\x8c\xc9\x2b\ \x7a\x51\x0e\xe7\x93\xf6\xa5\x59\xde\xed\xbd\x1b\x71\xa2\x15\xfa\ \x9b\xcf\xc9\xae\x06\xe7\xab\x5c\x12\xcd\xa2\x14\xe4\xf6\x02\x9d\ \x51\x1f\xa6\x21\x81\x71\x12\xf7\xc6\xec\x7c\xd7\x59\x35\x7f\x68\ \x1d\xbc\x4a\xab\xa2\x31\xfc\xb1\xdc\xf2\xd4\x73\x80\x2b\x80\x00\ \x60\x54\x10\x59\xc2\x2f\x26\xba\x5b\x31\x82\xf0\x8d\x11\x3d\xc1\ \x3b\xfd\x29\xf7\x34\xa5\x87\xfe\xa0\xb7\x81\x4c\x75\x77\x58\xd1\ \x2d\x97\x88\xc6\xff\x00\x24\xf3\xfb\x50\xec\x10\x8b\x76\x7e\x35\ \x9d\x22\xb8\xce\xb7\x46\x82\x39\x8e\x4b\x77\x27\xe8\x90\xc5\xfa\ \x56\xfd\xdc\x42\x48\x06\xaf\x15\xe7\x2f\x09\xf4\xe5\x45\x18\x30\ \xb8\x70\x3c\xed\x8a\xde\xb1\xb9\x17\x1d\x3d\x5d\x4f\x22\xb8\xd6\ \x97\xe8\x77\x4b\x04\xa6\xca\xe7\xdd\x0c\x9b\x0c\xf6\xac\x2f\xe3\ \xbe\x86\x6d\xa4\x37\x10\x8c\xc6\xdb\xe4\x76\xa7\xa7\x74\x92\x4d\ \x07\x66\x1c\x56\xb7\x4a\xb9\x8e\xfe\xcd\xba\x7d\xe0\x05\x80\xc0\ \x27\xbd\x63\x29\x70\xbe\x50\xed\xf2\xe9\x10\xe7\xc1\x14\x6b\x2b\ \xa3\x19\xd0\xfb\xa9\xe4\x56\xb7\xf1\x77\x46\x93\xa7\x5e\x91\x8f\ \x63\x6e\xa6\xb0\xd9\x73\xf7\xaf\x46\x36\x65\x36\xcb\x60\xc5\x1c\ \xb0\xea\x56\xf5\x13\xcf\xe6\x4f\xbd\x26\xea\xf0\xc9\xff\x00\xfb\ \x06\x81\x65\x75\x25\xbc\x81\x94\xef\xdc\x79\xad\x7b\x75\x82\xf6\ \x2c\xa6\xcd\xdd\x3f\xe2\xaf\x42\xbd\x3a\xf7\x4b\x69\x62\x74\x9e\ \xc6\x96\xea\x90\xfa\x73\x97\x4d\xd1\xf7\x15\xd7\x76\xb2\x40\xdb\ \xe7\x03\x83\xe2\xba\x39\xf5\x27\xa5\x2e\xea\x7b\xf8\xa9\x27\x3b\ \x8a\x56\xa1\x94\x30\xc1\xa2\x4f\x19\x8d\xbc\x83\xc1\xaa\x56\xfb\ \x40\x1d\x4a\x9a\x24\x4d\x91\x83\xcd\x59\xc6\xa1\x8a\x0b\x02\xad\ \x8a\xcf\x40\xf4\x00\x34\x4e\x07\x63\xc5\x12\x26\xc8\xdf\x91\x51\ \x38\xf6\x83\xdc\x1d\xab\x42\xd1\x1c\xc6\x0f\xc5\x5a\xad\x14\x79\ \x5f\x00\x51\x6d\x6d\xa4\x9e\x5d\x11\x2e\x71\xcb\x76\x15\x37\xa0\ \x1c\x57\x11\x5a\xb0\xda\x5a\x45\x81\x23\xeb\x3d\xc8\xe0\x50\xfa\ \xa5\xad\x9b\xd9\xbc\xd0\x36\x1e\x3d\xf6\x35\x9f\x2e\x46\x7a\xb1\ \x06\x8c\xbe\xec\x63\xbd\x2e\x37\x35\xa5\xd3\xe2\xc6\x24\x61\x9e\ \xca\x3c\xd6\xf7\xa9\xb1\xa1\x64\x86\x2b\x75\x84\x0f\x7b\x6e\x6b\ \x52\x15\x10\xc2\x14\x7d\x5d\xe9\x7b\x08\x3d\x21\xea\x3e\xee\xdf\ \xb5\x1a\x69\x12\x24\x2e\xec\x00\x15\xe5\xca\xee\xb4\xb6\x74\xfb\ \x8e\x33\xf3\xda\x95\x9a\xed\x03\x15\x07\x26\xb3\x7a\x8f\x54\xf5\ \x9c\xa4\x1c\x77\x34\xbc\x0d\x34\xaf\xe9\xc2\xa5\xdc\xf7\xf1\x5b\ \xc7\x0f\xca\x6d\xa5\x71\x7a\xb1\xa7\xb8\xee\x78\x14\xb2\x43\x73\ \x7c\xda\xc8\xf4\xe3\x1c\xb3\x6d\x9f\xb5\x31\x6f\xd3\xe1\xb6\x4f\ \xc4\x5f\x48\x19\x80\xce\x93\xc0\xac\xee\xb3\xd6\x1a\x5c\xc7\x6f\ \xed\x4e\x36\xef\x5b\xc6\x6e\xf0\x0d\x79\x7f\x69\xd3\xa2\x31\x5a\ \x80\xd2\x70\x5e\x91\xb2\xb4\xb8\xea\x52\x9b\x8b\x97\x2b\x10\x39\ \x66\x6f\xf6\xa2\x74\xae\x94\x65\x5f\xc6\x5e\x9d\x10\x8d\xc0\x3c\ \x9a\x62\xf2\xef\xd6\x22\x18\x57\x44\x2b\xc2\x8e\xf5\xbe\x27\x18\ \xa2\xd3\x34\x6c\xa2\xde\xd9\x74\x42\xbf\xff\x00\x5f\x26\xae\x83\ \x02\xa9\x6e\xbe\xc2\x48\xde\x99\xb4\x4d\x72\x80\x78\x15\xac\x35\ \x26\xc0\xd9\x4a\xe3\x3b\x66\x8d\xd1\xd4\x35\xc9\x73\x8c\x2e\xf9\ \x3c\x55\x6f\x94\x89\x08\x1b\xed\xb0\xab\x74\xdf\x74\x72\xc4\x83\ \x2e\xea\x42\xfc\xd6\x7e\x4b\xb8\xb1\x99\x7a\xfa\xe6\x24\xf2\x77\ \x3f\xae\xf4\xef\x4f\x02\x6b\x06\x88\x11\xad\x0e\xa0\x3b\x91\x49\ \xde\xc4\xc9\x21\x6c\x1c\x1f\xda\xa9\x04\xcf\x14\x81\x91\x88\x23\ \xb8\xa5\x9b\x9c\x23\x5d\xd9\x65\x55\x98\xf3\xa4\xa4\xa3\xc7\x83\ \x51\xd1\x6f\x0d\xab\x35\x9c\xa7\x83\x95\x3e\x68\x76\xb3\xfa\xe7\ \x5c\x60\x2c\xc0\x7b\x93\xb3\x8a\xa5\xf4\x62\x78\x43\xc4\x08\x64\ \xfa\x47\x71\xf1\x5c\xf5\xea\xa8\xf7\x53\x7f\xe7\x0e\x0e\x0f\x22\ \x9d\xb7\x94\x9d\x2e\xa7\x12\x2e\xe3\x1d\xeb\x06\x2b\x86\x79\x57\ \x5f\x22\xb6\xd2\x26\x0a\x1d\x6a\xd9\xc2\x35\xae\x84\x3d\x73\xa5\ \x35\xbc\x98\x13\x28\xf6\xe7\xcd\x7c\xff\x00\xa9\xda\x49\x6d\x74\ \xf1\x3a\x90\xca\x71\x5e\xb5\x24\x78\xe4\x13\x44\x70\xc3\x91\x55\ \xfe\x26\xb5\x8b\xa9\xf4\xf1\x7b\x12\x8f\x59\x3f\xc4\x03\xfd\x6b\ \x9e\x3f\x4b\xaf\x4b\xdb\xc4\x91\x93\xe0\x8a\x2d\xbc\x8f\x1b\xeb\ \x8c\xe0\xaf\x22\xa6\xe6\x32\x18\xb6\x31\xbe\xff\x00\x06\x85\x93\ \xc8\xd9\x85\x77\x47\xa1\xe9\xd7\xb0\x5e\xc5\xe9\x5c\xe3\x51\x18\ \xcd\x07\xa9\x74\xb7\x84\x17\x8f\xdc\xb5\x8f\x0b\x1c\xfa\x91\xec\ \x47\x22\xb7\x3a\x47\x55\xca\xfa\x53\x6e\xbc\x1c\xf6\xac\x59\x67\ \x31\x59\x8a\xe5\x46\x87\x19\x5f\x07\xb5\x52\x54\xc7\xb9\x4e\x54\ \xfe\xd5\xb7\xd4\x6c\x22\x99\x3d\x58\x4f\x23\x3b\x76\xac\x89\x63\ \x92\x16\xdf\x8f\xd8\xd5\x99\x4a\x00\x71\x50\xca\x18\x55\xe4\x50\ \xe0\xe3\x62\x7b\x52\xec\x25\x8c\xf3\x91\x5b\x44\x10\x55\xaa\xe4\ \x87\x88\x82\x77\xc5\x41\x91\x58\x7b\x81\x1f\x35\x41\xb9\xd2\xa7\ \x24\xf3\x8e\xd5\x06\x85\xad\xbc\xf7\x0e\x12\x30\x4f\x93\xd8\x56\ \x86\x16\xda\x1f\xc3\xc4\x76\x1b\xbb\x7f\x51\xa2\x4d\x74\x74\x68\ \x8d\x44\x6b\xe1\x6b\x3e\xea\x75\x8d\x79\xdf\xb0\xac\xf3\x45\x2f\ \x67\x23\xd8\x9c\x9f\xda\x84\x87\x45\xb3\x26\x7f\xc4\x60\x4f\xe9\ \xff\x00\x7a\xa2\xe5\xdb\x53\x72\x7f\x61\x57\x0a\x65\x93\x0a\x36\ \x1b\x7e\x95\xad\x02\x59\x45\xad\xb5\x1e\x05\x7a\x0e\x97\x6b\xa0\ \x09\x24\x1b\xf6\x1e\x28\x3d\x16\xc8\x2a\x89\x64\x18\x03\xe9\x15\ \x6e\xb3\xd5\x62\xb3\x8c\xa2\x1d\x52\x9e\x14\x57\x2c\xb2\xf2\xba\ \x8a\x6b\xa8\x5e\xc1\x69\x09\x79\x1c\x7c\x0a\xf3\x5d\x43\xa8\x4f\ \x7d\x26\x01\x2b\x1f\x81\x41\x93\xd7\xbc\x98\xcd\x70\x4e\xfd\x8f\ \x02\x8a\x88\x89\xc6\xf5\xac\x30\x90\xb5\x58\xd4\x28\xda\xb6\x6c\ \x67\x4b\x2e\x91\xeb\xae\x4b\x37\x35\x94\xda\x48\xd8\x60\x8e\xd4\ \x79\x98\xc9\xd1\x1a\x34\xdd\xa3\x6c\x91\xf1\x56\xcd\xa1\x4b\xfb\ \xfb\x9b\xd9\xb1\xb9\xcf\x0a\x2b\x47\xa1\xf4\x75\x8d\x3f\x17\x7d\ \xed\x0b\xb8\x53\xda\xa9\xfc\x2d\xe8\xc3\x69\x35\xcc\x8a\x09\x43\ \xb5\x57\xa8\x5f\xcf\x74\x70\xcd\xa5\x3b\x28\xe2\xb5\x95\xbf\xeb\ \x8a\x89\xd5\xaf\x8d\xcb\xfa\x68\x34\xc2\x9f\x48\xf3\x4b\xda\xa8\ \x2d\x93\xbd\x06\x8b\x6a\x48\x93\x03\xbd\x35\xa8\x8d\x28\xc0\x10\ \x1c\x73\x46\xb5\x1a\x63\x04\x77\xe6\x87\x18\xfe\x41\xc6\xe4\xd5\ \xa1\x60\x23\xd2\xd9\x07\x3d\xc5\x49\xce\x22\xf3\xa3\x3b\x7a\x88\ \x77\x5e\xd4\x04\x56\x57\xf5\x21\xdb\x07\x3a\x7b\x8f\xfb\x53\x0a\ \x7b\x83\x50\xe8\xaf\xee\xc6\x0f\x91\x49\x65\x9a\xa2\x4d\xcc\x17\ \x63\x4d\xca\x80\xc7\x6d\x63\x9f\xd7\xcd\x23\x7f\xd3\x9e\x2f\x7c\ \x64\x32\x1e\x08\xe2\x98\x91\x3f\xf9\x54\x91\xfd\x4b\xfe\xf5\x30\ \xc9\x24\x1b\xaf\xba\x33\xb1\x07\x8f\xfb\x54\xf1\xb8\xf4\x32\x51\ \x9e\x37\x04\x12\xac\x0d\x69\x5b\x5c\x89\xfd\xf8\xc4\xa0\x7b\xc0\ \xfc\xc3\xcf\xdc\x53\x12\x5a\x5a\x5e\xc7\xa9\x1b\xd2\x93\xc1\xe0\ \x56\x6d\xd5\x9d\xd5\x9c\x81\x8a\xb6\x01\xc8\x71\xc5\x5d\xcc\xb8\ \x14\xbb\x88\x47\x78\xa5\x7e\x97\x20\x8a\xf5\x16\xc8\x7f\x0a\xa0\ \xef\xb5\x79\xf9\xff\x00\x9b\x6d\x1c\x9a\x70\x43\x83\x8f\xd6\xbd\ \x1c\x8e\xb0\xdb\x2e\xa3\x8d\xaa\x77\xc2\x95\x99\x74\xb6\xa5\xe3\ \xbd\x56\x29\x0c\x32\x6b\x4d\xd5\xb6\x65\xf3\x4b\x7e\x2c\x89\xcf\ \x74\x26\x99\x5c\x32\xec\x72\x0f\x15\x73\xc3\x49\x19\x3d\x72\xc1\ \x41\x37\x10\x8c\xc6\xdf\x50\xac\x29\xe2\x29\x21\x1f\xd8\xf9\xaf\ \x5e\xe0\xa8\x2a\x46\x54\xf2\x2b\x17\xaa\xd9\x7b\x48\x51\xf4\xee\ \xb5\x31\xba\xe2\xab\x20\x67\x3a\xd3\x66\x1f\xbd\x11\x18\x91\xea\ \x47\xed\x23\xea\x1e\x28\x64\x10\x72\x39\x15\x28\x48\x3e\xac\x78\ \xd4\x39\x1e\x6b\x5d\x23\x4f\xa6\x75\x16\x88\x81\xfd\xd4\xf7\xad\ \x5d\x16\xf7\xb1\xe6\x2d\x21\x8f\x28\x78\x35\xe7\x30\xb3\x21\x92\ \x2d\x98\x7d\x49\xe3\xed\x44\xb4\xba\x78\xdc\x64\x90\x47\x7a\xc6\ \x58\xef\xa5\xd9\xcb\xbb\x07\x47\x3a\x46\x0f\xf4\x9f\xf6\x34\x9b\ \xa1\x53\x86\x04\x1f\x06\xb6\xed\xaf\xe3\x99\x04\x77\x2a\x08\xfe\ \xaa\xbc\xb6\xaa\xf1\xe6\x16\x59\x13\xfa\x58\x03\x52\x65\x67\x14\ \xd3\xce\xb4\x28\x4e\xe9\x9a\x95\x8c\x28\xd9\x40\xad\x76\x86\x04\ \x38\x7b\x55\xcf\xfd\x47\xfe\x6a\xd1\x0b\x35\x1b\xda\x29\x3f\x3b\ \xff\x00\xad\x6b\xcb\xf4\x8c\xeb\xcb\xa0\x9e\xd5\xdc\xd2\x63\x53\ \x36\xa6\xdc\x9e\x05\x46\x34\xee\x72\x58\xd1\x10\x15\x1f\xe7\x6d\ \xbe\xc2\xb4\x2c\xa0\x9f\x62\xee\x4f\x26\xb6\xba\x3f\x4f\x0a\xa2\ \x59\x46\x07\x20\x1a\x17\x44\xb1\x1a\x7d\x69\x86\x00\xdf\x7a\xa7\ \x58\xea\x85\xc9\xb7\xb5\x60\x14\x6c\xcf\x5c\xf2\xb7\x2b\xe3\x14\ \x6e\xb5\xd5\xc4\x47\xf0\xf6\x9e\xe7\xe0\x91\xc0\xac\x84\x4c\x31\ \x92\x66\xd6\xe7\x92\x6a\x8b\xa5\x3e\x9d\xc9\xe5\x8d\x76\xe4\xf9\ \xad\xe3\x8c\xc6\x20\xad\x22\x8f\x9f\xb5\x74\x77\x01\x5b\x3e\x98\ \xa1\x84\x63\x53\xe9\x9a\xd0\x60\xb4\x32\x6e\x87\x4b\x78\x35\xd1\ \x3b\x45\x20\x61\xfa\x8e\xc4\x52\xc5\x18\x76\xa9\x49\x19\x76\x3b\ \x8f\x06\xa5\x0d\x5a\xca\x96\xd3\xba\xe3\xf9\x17\x1b\x7f\xd0\x6a\ \x92\x21\x47\x28\xdc\x83\x55\x52\x8e\x84\x1d\xd4\xec\x47\x71\x50\ \x5e\x50\x00\x75\x12\x60\x60\x30\x38\x3f\xad\x20\x9a\xea\xa9\x73\ \x9f\xa4\x2f\xdc\xe6\xaa\xf2\xf6\x5d\xf3\xe3\x6a\xa0\xe9\x2c\x88\ \x76\x72\x28\xa9\xd4\x25\x5d\xb5\xa9\xfb\xd0\x2d\x2c\xae\x6e\x9b\ \xd8\xa4\x0f\x34\xf1\xe9\x30\x42\x99\xb8\x98\x06\xac\x5b\x8a\xba\ \xde\xf9\x59\x80\x75\xd0\x4f\xe6\x1c\x7e\xa2\xb5\xba\x5c\xd1\x33\ \x7a\x52\x28\x3a\xb8\x3e\x6b\x15\x6d\xed\xd9\x75\x42\xe2\x48\xf5\ \x69\x24\x0c\x15\x34\x78\x01\x82\x71\x10\x3e\xd2\x35\x21\xf1\xe4\ \x52\xea\xc1\xad\x75\x6d\xa3\x2d\x1e\xe9\xdc\x1e\xd4\x9b\x46\x41\ \xd5\x16\xc7\xba\xf9\xad\x4b\x59\x3d\x58\x15\xfb\x91\xbd\x0e\xea\ \xd8\x37\xba\x31\x83\xdc\x79\xa9\x8e\x76\x71\x4d\x33\x15\x03\x36\ \x13\xf9\x6f\xe3\x38\xfe\xd5\x75\x92\xee\x0c\x86\x52\x57\xbe\xa1\ \x90\x6a\xd2\xc6\xad\x90\xc3\x07\xcd\x42\x2c\xf1\x9c\x47\x2e\xdf\ \x7a\xde\xb1\xa8\xe8\x90\x4f\x22\x96\x41\x1c\x4a\x43\x39\x19\xc0\ \xc1\xff\x00\xb5\x5b\xaa\xde\x7e\x26\x5c\x26\x42\x0e\x07\x9a\x1c\ \xe2\x77\x04\xc8\xd9\x03\xb5\x2f\x82\x4d\x6f\x0c\x64\xe4\x76\x68\ \xb6\xd3\xb4\x67\x19\xdb\xc5\x0c\x21\xc5\x54\xec\x6b\x5b\xd8\xd3\ \x47\x59\x13\x3b\x1a\xa4\xb1\x87\x5c\x1f\xd2\x92\x8a\x46\x43\xb1\ \xa6\xa1\x9c\x30\xc1\xae\x79\x61\xee\x11\x87\xd6\xad\x3d\x19\x7d\ \x45\x1e\xd3\xcd\x67\xee\xac\x19\x7f\x51\xe6\xbd\x5d\xf4\x0b\x34\ \x2c\xa7\x7c\x8d\xab\xcd\x5d\x44\x62\x98\xa1\x18\x19\xa9\x39\x80\ \x7e\xe0\x44\xd0\x9c\x30\xe6\x8c\x81\x2e\xd0\xbc\x60\x2c\xa3\xea\ \x4f\x3f\x22\x80\x32\x8c\x58\x7e\xa2\xac\xca\x75\x09\xa0\x38\x61\ \xbe\xd5\x9e\x95\x68\xa5\x78\xce\x37\x23\xb8\xf1\x5a\x16\xb7\x5e\ \xd0\x51\xc8\xfb\x52\xf1\x7a\x5d\x41\x3d\xb8\x8e\xe4\x72\x0f\x0f\ \xff\x00\x7a\x59\x95\x92\x42\xa4\x14\x71\xcd\x5e\xd1\xb2\x6e\x19\ \xc6\x19\xb3\x54\x67\xf9\xac\xe8\xee\x99\x76\x90\x03\x8a\xe9\xae\ \x98\x8d\x09\xde\x9a\x02\x4d\x8f\xa8\xe3\x7f\xca\x2b\x4b\xa3\x59\ \x7a\x8d\xeb\x4b\xb2\x2e\xfb\xf7\xa1\x74\xbb\x36\xb9\x93\xd4\x7d\ \xa3\x5a\x27\x56\xbf\x04\x7e\x16\xd8\xe1\x06\xc4\x8a\xcd\xb6\xdd\ \x45\x4f\x59\xea\x1e\xa1\xfc\x35\xb1\xd2\x83\x66\x61\xde\xb3\x94\ \x60\x60\x0a\xe4\x5e\xc2\x89\x1e\x95\x18\xc1\x63\x5a\x92\x63\x11\ \x09\x19\x3d\xa8\xa9\x1a\x2a\x92\xf2\x2a\xe2\xb8\x25\xc3\x0c\x05\ \x20\x1f\x1b\x55\xe2\xb1\x62\x32\xd5\x2e\x4a\x13\xcb\x18\xda\x35\ \x67\x3e\x78\x15\x46\x9a\x61\xc4\x48\x3f\xbd\x30\x62\x0b\xb2\xf0\ \x2a\x0a\x8a\x9b\xd8\x42\xe2\xea\xe2\x35\xd5\xe9\xa9\x03\xe2\xaf\ \x65\x77\x1d\xda\xee\xba\x1b\xef\xb5\x1a\x78\xc3\x29\x04\x67\x35\ \x94\x0b\xf4\xee\xa0\x1c\x2e\xa8\x89\xf7\x29\xaa\x8d\x57\x89\xd1\ \xb6\x06\xaa\x59\xf8\x24\xd6\xad\xb4\x31\x5c\x40\xb2\xc6\x75\x44\ \xe3\x2b\xe4\x51\xbf\xf0\xd4\x2c\x08\x62\x45\x4f\x39\xed\x74\xc5\ \x48\xde\x43\x80\x39\xad\x6e\x99\xd2\x81\x02\x49\xb6\x14\xed\xbd\ \xac\x36\xe9\xa9\x80\xda\x94\xea\x9d\x4c\x05\x29\x19\xc0\x1d\xeb\ \x37\x2b\x97\x10\x1e\xfa\xfa\x1b\x48\xbd\x38\x30\x08\x1d\xab\x0a\ \x7b\x89\xef\x27\x08\xb9\x25\x8e\x00\xf3\x41\x96\x47\x9a\x4c\x0c\ \x9c\x9d\x85\x6f\x74\x4e\x9e\x2d\x13\xd5\x94\x03\x2b\x0f\xff\x00\ \x51\x5a\xd4\xc6\x1d\xa6\xde\xd1\x6d\x6d\x62\xb6\x1b\xbc\x8e\x0b\ \x7e\x95\x5e\xa6\xbe\x93\x46\x41\xfa\x1c\x53\x76\x2d\xeb\x5d\x1b\ \x83\xc0\xf6\xc7\xf2\x3b\x9a\x57\xae\x36\x5b\x1d\xcb\x8a\x98\xf6\ \x56\xaf\x40\x60\x49\x43\xc0\x6a\xd6\x9e\xde\x32\xd8\x56\xd2\xde\ \x0d\x63\x74\x13\x8b\x96\x1f\xe6\x14\xff\x00\x5e\x94\xc7\x26\x54\ \xef\x59\xca\x6f\x20\x2b\xdb\x4d\x4d\xc6\x97\xfd\x8d\x21\x2c\x6d\ \x1b\x69\x61\x83\x4d\xda\xf5\x13\xb2\xcc\xba\xbc\x1a\xee\xb6\xca\ \x66\x4c\x0c\x7b\x73\x57\x1b\x65\x29\x33\xf4\x63\xcd\x04\xa6\xf4\ \x62\x73\x55\x66\x55\x5d\x4d\xc0\xfd\xeb\xa4\xa8\xa1\x42\x3e\xd4\ \x19\xd7\x1b\xd5\x65\xbc\x19\xc6\xa0\x3e\x06\xf5\x45\x9d\x5f\x87\ \x06\xb7\x05\x80\xc9\xc5\x48\xca\x9f\x91\x55\x15\x7d\x61\x97\xdc\ \x37\x15\xbd\xe8\x33\x6f\x28\x6f\x6b\x56\x77\x5f\x80\x16\xcf\x91\ \x45\x49\x01\x3e\xd3\xc5\x57\xa8\xbb\x49\x6e\x7b\x90\x2b\x3a\x97\ \x98\x31\x88\x38\xdf\xea\x5d\x8d\x44\x6d\xe9\x36\x47\xd2\xdf\xb5\ \x16\x61\xa5\xd5\xff\x00\x2b\x8d\xfe\x0d\x0a\x40\x06\x57\xb1\xac\ \x71\x44\xce\x85\x48\x9e\x23\x82\x37\xda\x99\xbe\x90\xcd\x65\x6f\ \x72\xc0\x07\x6c\xa9\x3e\x71\x49\x96\x22\xd0\x8c\x9d\xce\x05\x31\ \x76\x34\xac\x36\xe3\xf2\x26\x4f\xdc\xd6\x62\x82\xea\x59\xc7\xda\ \xb8\xe1\x06\x2a\xcc\xc0\x0a\xa2\xee\x75\x37\x02\xb6\x8d\x1e\xa7\ \x76\x12\x3f\xc2\x5a\xec\xa3\x66\x23\xbd\x25\x1a\x66\xaa\x4a\xa0\ \xcb\x1a\x19\x92\x47\x38\x5f\x68\xa9\x8e\x1c\x70\x1c\x55\x88\x0f\ \xe6\x48\x17\xe2\x89\x14\xf6\xa8\xfa\x63\x5d\x44\xf7\xac\xe2\xb8\ \x1b\x9a\x7f\xa3\x59\xfa\x8f\xea\xb0\xf6\x8e\x2a\xe5\x84\x93\x75\ \x5a\x70\x7b\xd3\x56\x30\x29\x7b\xc9\x80\x3e\x9a\x77\xa3\x5f\x4e\ \x21\x8b\x0b\xfa\x0f\x35\x94\xcc\xcc\xc4\x93\x96\x3c\x9f\x15\xc1\ \x45\x9a\x5d\xb4\x21\xff\x00\xa9\xa9\x37\x9b\x0d\xb1\x62\x3c\xd4\ \xdc\x3e\x7f\x96\x9c\x77\x35\xd6\xf1\x99\x1c\x46\xbf\xad\x75\xc7\ \x1d\x4d\xd4\x5e\x39\xc3\x6c\x4d\x52\xfa\x11\x2c\x7f\x15\x79\xed\ \xd1\x49\xf4\xd8\x92\x3c\xd5\x23\x90\xee\x8f\x4e\xfa\x43\x5f\xc2\ \x73\x98\xcb\x59\xc8\x76\x3b\xa5\x6f\xc9\x30\x86\x02\xc7\xb5\x79\ \x3f\x74\x53\xac\x89\xb1\x53\x90\x6b\x7d\xa6\x17\x9d\x33\xd4\x53\ \xbe\x37\x1e\x0d\x73\xca\x72\xb0\xaf\x52\xea\x0c\xeb\x8c\xe0\x78\ \xac\xb9\x1d\xa4\x7e\xff\x00\x02\xba\x7c\x99\x48\x27\x35\xb5\xd0\ \xfa\x68\x8a\x31\x75\x70\x32\x4f\xd0\xb5\xbe\x31\x88\xb7\x44\xe9\ \xe2\xdd\x44\xf3\xae\x64\x3b\xaa\x9e\xd4\xdd\xf4\x85\xcf\xe1\x90\ \xfb\xdf\x77\x3f\xd2\x2a\xd7\x53\x7a\x30\x99\x5b\x77\x3b\x20\xa3\ \x74\x0b\x12\x75\x5c\x4f\xbf\xe6\x62\x7b\x9f\x15\x8b\x7d\xd5\x5a\ \x08\xc4\x2a\x18\x8c\x05\x4d\x87\x8a\xc8\xea\x04\xc9\x77\x12\x9e\ \x4b\x67\xf7\xad\x7e\xa3\x27\xb4\x81\xf9\x8e\x6b\x12\x59\x14\xf5\ \x20\x49\xd9\x76\xad\x61\xf9\x2b\x6b\xa2\x3a\xac\xe4\x9d\xf7\xcd\ \x37\xfc\x40\xa4\x95\x90\x6e\xad\xde\xb1\xe3\x79\x23\x6d\x69\xc7\ \xc5\x3b\x1f\x53\x62\x9e\x9c\xf1\x07\x5f\x9a\x96\x73\xb8\x01\x57\ \x77\x2e\x72\x4e\xe0\x62\x8c\x12\xda\xe7\xff\x00\x4e\xc6\x37\xfe\ \x86\xe0\xfd\x8d\x01\x83\x23\x15\x60\x41\x1c\x83\x52\x71\x4a\x87\ \x65\x45\xd4\xdc\x0a\xcf\x9a\x76\xba\x93\x0a\x48\x40\x71\xff\x00\ \xd5\x4f\x57\x9c\xed\x0a\x1d\xcf\x34\x95\xc4\xde\x92\x7a\x51\xf3\ \xdc\xd7\x44\x30\xf3\xc5\x11\xd2\x8b\xab\x1c\x81\x54\x33\x5b\xbf\ \xf8\x88\x50\x9e\x0d\x67\xe4\xe6\x88\x92\x63\xda\xfe\xe5\x34\xd0\ \x7d\x43\xae\xf1\xbe\xb5\xf1\x57\x8e\x65\x62\x41\xf6\x91\xd8\xd2\ \x2a\x5e\x1f\x7c\x4c\x4a\x78\xf1\x4c\x45\x2c\x77\x03\x0d\xed\x6f\ \x35\xad\xd8\x2d\x78\x8d\xfe\x2c\x5c\x8e\x7e\x6b\xad\xae\x16\x54\ \xd2\xdb\x37\x71\x52\x1d\xe2\x3a\x64\x19\x07\x83\x4a\xde\xa0\x8d\ \xc4\x91\x9f\xaa\xac\xfd\x0a\xdf\xa0\x54\x75\xf0\x72\x29\x69\xdb\ \x6c\xf7\xa2\xdd\x39\x7c\x67\xb9\x19\xa0\xbf\xba\x4c\x76\x1b\x9a\ \x82\x60\x4d\x52\x47\x19\xe1\x7d\xed\xf6\xab\x4d\x2f\xa9\x2b\xca\ \x76\xd4\x76\x15\xc8\x74\xdb\x96\xe1\xa6\x3f\xd9\x68\x5f\x51\xf8\ \xa9\x04\x8f\x73\x64\xf0\x29\xab\x0b\x57\xb9\x90\x6d\x84\x1d\xea\ \x96\x56\xed\x71\x28\x55\x04\x28\xe4\xd3\xbd\x42\xe5\x2d\xe1\x16\ \xd6\xfc\xfe\x63\x53\x2b\x7a\x9d\x8c\xc6\x80\x86\xfe\x63\x64\xd4\ \xec\xa3\x15\x53\x29\x66\x21\x01\x63\xf1\x52\x90\x3b\x90\x65\x27\ \x1f\xd2\x0f\x3f\xad\x76\xf2\x98\xf6\x22\x22\x25\x98\x20\xdf\x7d\ \xf1\x5b\x22\x68\xed\xe1\x09\x8d\xf1\xf4\x8a\x42\x2d\x31\x02\xb1\ \x28\x51\xe1\x7f\xe6\xa5\x62\x67\x7d\xff\x00\xb0\xae\x19\xe5\x72\ \xab\x13\x23\xb4\xf2\x6a\x24\xf8\xa1\x5d\x48\x10\x7a\x69\xc9\xe6\ \x8d\x78\xc2\xdd\x74\x29\x05\xcf\x6f\xe9\xa4\xcf\xb4\x12\x77\x26\ \x98\x63\xb2\xa0\x0c\x6c\x37\x26\x9e\x44\x16\xd6\xf8\xff\x00\xdc\ \x7e\x7e\x2a\x3a\x64\x01\x54\xdc\xcb\xc0\xfa\x73\x55\x91\xfd\x49\ \x4b\x53\x2c\xbc\xae\xa0\x90\x36\xde\x83\x71\x16\xa1\x90\x37\x14\ \x65\xae\x62\x01\xc1\xa2\x14\x53\xa9\x74\xb1\xc1\x1c\x53\x3d\x2a\ \xe4\xdb\xcc\x63\x73\x88\xdf\x63\xf1\x43\xb8\x8b\x57\xb9\x79\x14\ \x0c\xe7\x63\xc8\xa6\xb6\x18\xea\x11\xfa\x57\x59\x1b\x82\x72\x0f\ \x9a\xf4\x76\x72\xa4\xb1\x44\xe3\xe8\xf4\xc6\x3e\x3c\xd7\x9d\x8d\ \xfd\x7b\x7f\x49\xcf\xbd\x07\xb4\x9e\xe3\xc5\x3d\xfc\x3b\x71\x84\ \x30\x31\x39\x53\x95\xfb\x77\xa9\x79\x8a\xd0\xb0\x88\xf5\x0e\xa7\ \xea\x6f\xa1\x5b\x08\x3c\x0f\x35\xe8\x2f\x15\x61\xb4\x58\xa3\x18\ \x07\x6a\xc9\xfe\x17\x2b\x14\x97\x08\x4e\x19\x4e\x40\xf2\x0d\x6c\ \x48\x16\xe6\x15\xd2\xf8\x22\xb9\xe5\xda\xb0\xaf\x89\x69\x88\xe0\ \x0d\x85\x65\xbd\x9b\xb3\x93\xa8\x57\xa6\xba\xb7\x82\x35\xd7\x70\ \xe8\xa0\x56\x55\xef\x57\xb3\x84\x14\xb5\x84\x48\xc3\xf3\x37\x15\ \xd3\x1b\x7d\x25\x20\xb6\x57\x24\x7b\x5c\xfe\x99\xa1\xcf\x15\xd4\ \x1f\x51\x6a\xb4\x97\xb7\xf7\x5c\x48\x51\x3e\x3d\xa2\xac\xa9\x70\ \xd0\xe2\x59\x88\x4f\xea\x6d\x87\xef\xcd\x6b\xae\xc0\x6d\x6e\x24\ \x49\x41\xd6\x70\x4d\x6a\x5d\xdc\x0d\x3e\xa3\x9d\xca\x8c\x9a\xc9\ \x2b\x00\x7c\x25\xca\x16\xed\x9c\xe0\xfe\xb8\xa1\xde\xdc\x4a\xcf\ \xa1\x86\x9c\x72\x29\x64\xb5\x13\x2c\xd9\x99\xa6\x3c\x9d\x80\xa5\ \xc0\x69\x1f\x61\x92\x6b\x91\x4b\xb6\x33\xfa\xd3\xd6\x6b\x1a\x0c\ \x0c\x13\xe6\xb4\x16\xfc\x14\xf8\xc8\x23\x8a\x0a\xfb\xbd\xa7\xea\ \x1f\xbd\x6d\x0d\xd6\xb3\xfa\x9c\x1a\x64\xf5\x54\x60\x37\x38\xec\ \x6a\xd9\xa0\xbc\x52\x14\x3e\x47\x71\x52\xe5\x35\x6a\x4c\xa9\xa1\ \x33\x31\x23\xda\x09\xff\x00\x5a\xbc\x70\xcd\x21\xf6\xae\x91\xe4\ \xd4\xd6\x83\x96\xd3\x89\x07\xa7\x20\xcd\x06\xe8\xe2\x3d\x3f\xe6\ \xa0\xdb\x6b\x8e\xf0\x23\xf3\x44\xbd\x61\xab\x63\xc6\x4d\x27\x14\ \x2f\x21\xf7\x6f\xd8\x55\x61\x5d\x6e\x01\xfc\xdb\xb1\xf0\x2a\x1c\ \x82\xd8\xf2\x72\x6a\xed\xec\x88\x8f\xcd\x26\xe7\xe0\x76\x15\x28\ \x89\x9b\x5c\x9b\x6c\xa3\x65\x1e\x05\x5e\xda\x17\x9a\x41\x1a\x0f\ \xbd\x52\x18\xd9\xdc\x2a\x8c\x93\x5a\x2e\xc9\x61\x6f\xa5\x77\x95\ \xbf\x6a\x96\xe8\x4d\xd4\xc9\x65\x07\xe1\xe1\x23\xd4\x23\xdc\x7c\ \x56\x69\x6c\x1c\xb1\xc9\x27\xfb\xd4\x3b\x9c\xeb\x73\x96\x35\x54\ \x0c\x5b\xd4\x6d\xb0\x72\x2b\x58\x60\x1b\x8a\x10\x83\x03\x6a\xb8\ \x45\xce\xfb\xfd\xe8\x2b\x70\x73\x82\x06\x0d\x31\x19\x57\x5d\x42\ \xb9\xd9\xa5\x12\xde\x03\x23\xe9\x50\x07\xfb\x54\xde\xdd\x43\x6d\ \x98\x20\x21\xe6\xc6\xed\xd9\x6a\xf3\x49\xe8\x74\xa9\x25\x41\xee\ \xc7\x35\x93\x6e\xa0\x46\x0f\x2c\x77\x27\xcd\x31\xc7\xca\x8b\xe3\ \x72\xcc\x72\xc7\x92\x68\xb6\x56\xe6\xe6\x7f\xf2\xaf\x35\x48\x91\ \xa6\x94\x46\x9c\x9a\xd5\x40\x96\xb6\xba\x57\xb0\xdc\xf9\xad\x7c\ \x99\x6a\x6a\x12\x16\xea\x72\x84\x41\x12\xed\x8a\x52\x32\x58\xe9\ \x15\x4b\xa9\x0c\xb3\x12\x3c\xd3\x08\x12\xd6\x0d\x6f\x82\xed\xc0\ \xac\x4e\x20\xb4\x8c\xb0\x45\x96\xdd\x8f\x02\x92\x77\x67\x6d\x44\ \x9d\xeb\xa5\x76\x96\x42\xef\xdf\x81\x4e\x74\x9b\x07\xb9\x94\x0c\ \x1c\x7f\xa5\x6e\x4d\x4d\xd4\x29\x1c\xac\xbf\x22\xaf\x22\xac\x8b\ \xad\x4e\xe2\xbd\x15\xe7\x40\xb6\xf4\xc0\x0f\xa1\xf1\xde\xb1\xfa\ \x87\x4b\xba\xb3\x3a\xd4\x6b\x4f\xea\x5d\xf1\x52\x65\x2a\xe8\x82\ \xb1\x0d\x91\xb3\x0a\x3c\x73\x14\x99\x6e\x13\xea\x07\xdc\x3c\xd0\ \x8e\x97\x19\xe1\xaa\xa0\x90\x6a\xa3\xd3\x59\xce\x89\x71\x15\xd2\ \x9f\x63\xae\x97\x3f\x07\x8a\x8e\xa1\x7d\x3d\xaa\x95\x46\x20\xe7\ \x15\x8f\xd2\xae\x82\x66\x09\x0f\xf2\xdf\x8f\x8a\xd0\xbd\x43\x35\ \xb1\x07\x77\x41\xcf\xf5\x0f\x35\x27\x7c\xa9\x66\xfc\x6d\xd8\xd6\ \xe5\xb4\x77\x63\xb0\xa2\xda\xda\x2b\x1f\xe5\xae\xb2\x39\x76\xd9\ \x45\x75\x90\xf5\xbf\x0f\x1b\x13\xa7\x24\x11\x9f\x14\x3e\xab\x7a\ \xe5\x8c\x11\x00\x91\xae\xd8\x1b\x52\xdb\xbd\x44\x16\xe2\xe6\xde\ \xdb\x64\xc4\xd2\xff\x00\x51\x1e\xd1\xf6\x15\x97\x7b\x77\x2c\xf2\ \xfb\x9c\xbb\xf8\xec\x28\x32\x39\x76\x2b\x19\xfb\xb5\x58\x28\x88\ \x61\x46\x5c\xd5\x93\x43\x95\x7d\xc0\x13\x96\xe4\xfc\x53\xb7\x31\ \x34\x97\x0a\x80\x7b\xb4\x0c\xe7\xed\x43\xb0\x84\x34\xc1\x58\xed\ \xf5\x39\xf8\xa7\x6c\x07\xab\x77\x2c\xc7\x81\xb0\xa6\xf4\x12\x36\ \xd3\x01\xc6\x2b\xad\xd9\x96\x60\x3e\x77\xad\x2b\xc9\x16\x38\xce\ \x69\x0b\x24\x32\x4a\x5f\x1b\x03\x5b\xef\x1d\x8d\x18\xcf\xb2\xb9\ \xb7\x1b\xd4\x20\xda\xa6\xad\xe6\x0a\x2c\x51\xaf\x0a\x07\xe9\x5c\ \xc3\x02\xaf\x43\x9d\xc2\xa1\xfb\x57\x3a\x33\xc6\xfd\x41\xdb\xfa\ \x45\x2f\x70\xf9\x63\xe2\xaf\xac\xe8\x79\x4f\x32\x1f\xda\x97\x39\ \x63\x5a\x82\xd1\x0c\x9d\x4d\xc0\xdc\xff\x00\xb0\xa9\xf7\x3c\x99\ \xc6\x49\x3c\x57\x1e\x02\x0f\xd7\xef\x4f\xda\xc4\x96\xd0\xfe\x22\ \x5e\x71\xed\x15\x9b\x74\x2d\x10\x8e\xc6\x0d\x6f\xbc\xac\x36\x1e\ \x2b\x3e\x79\x4b\x39\x77\x39\x24\xd5\xae\x25\x79\xa5\xce\x0b\x33\ \x6c\x00\xa3\x7a\x31\xda\x47\xea\x5c\x10\xd3\x1e\x13\xfa\x69\x8c\ \xd7\x37\xb5\x02\x38\xf4\xff\x00\x36\x5e\x7b\x29\xaa\x3b\x7a\x8d\ \xe9\xaf\x27\x93\x56\x29\x24\xc4\xbc\x87\x48\xf1\x44\x8b\xd2\x8d\ \x72\xa7\x71\x5b\xb9\x6b\xa4\x04\x0c\xed\xc1\xa2\xdb\x4a\x63\x7c\ \x37\x07\x9a\xe9\xe3\x1f\x52\xd0\xb3\x9e\x6a\x0d\x58\xf4\xcd\x6a\ \xf0\xe4\x15\x71\xb1\xac\xb8\x83\x21\x68\x5f\x66\x43\x83\x46\xb2\ \x9c\xc3\x20\x0c\x7d\x87\x9f\x8a\xbf\x59\x8c\x65\x2f\x23\xdf\xb3\ \xe3\xb8\xac\x4e\x2a\x8b\xd2\x18\x28\x7d\x86\xa1\x51\xd4\xee\x4f\ \xd1\xe6\x81\x69\x22\xa4\xc1\xb3\xed\x61\x83\x42\xea\x39\x17\x43\ \x3c\x1e\x2a\x59\xf6\x3d\x09\x0b\x24\x09\xea\x38\xcb\xfe\x51\x42\ \x95\xde\x46\xf5\x1f\xbf\x02\xab\x18\xd6\xc5\xdb\x7c\x53\x16\x50\ \x34\xd2\x06\x23\xdb\xd8\x79\xad\xc9\x27\x35\x16\xe9\xf6\xaf\x3c\ \xca\x31\x9c\x9d\x85\x7b\x1e\x93\x69\x1d\x9d\xa9\x91\x80\xc8\xfd\ \xe8\x3f\xc3\xfd\x35\x63\x8c\x48\xe3\x0d\x8c\x9f\x81\x51\xd6\xaf\ \x32\xde\x8c\x7b\x01\x5c\xb2\xb7\x3b\xa8\xa5\x3a\x8d\xc3\x4f\x70\ \x4e\x76\x15\xd1\x25\xcc\x6b\x94\x39\x07\x90\x7b\xd0\x6d\xd7\x54\ \xc0\x7c\xd6\x90\xc6\x77\xe2\xb5\x95\xd4\xd1\x18\xfd\x46\xc6\x2b\ \x8c\x90\x82\x09\x7c\x8f\xa5\xbf\xe2\xb1\xae\x23\x78\xa4\x29\x28\ \xc3\x0f\xde\xbd\xa4\x90\x47\x2c\x64\x66\xb3\x7a\x8f\x4f\x0e\x9a\ \x5d\x75\x01\xc1\x1c\x8a\x98\xe7\x3a\x34\xf3\x35\xa9\xd2\xee\xcb\ \xc6\x23\x63\xfc\xc4\xce\x9c\xfe\x61\xe2\x93\xbe\xb5\x7b\x77\xfe\ \xa5\xec\xd4\x05\x25\x58\x30\x38\x20\xe4\x1a\xd2\x36\x58\x34\x32\ \x89\x23\x3b\x67\x50\xf8\x3d\xc5\x21\xd6\x50\xac\x8e\xc9\xc3\x8c\ \x83\x4d\xd8\x5c\xac\xe9\xa1\xfe\xbe\xff\x00\xf3\x53\x73\x09\x78\ \x4c\x7d\xc6\xe9\xff\x00\x14\xdf\x2a\xc9\x85\xd5\x2d\xf5\x01\xbf\ \x14\x58\x13\x4a\x7a\xae\x72\x5b\x7a\x01\x4d\x2c\xf1\xf6\xe4\x53\ \x76\x84\x39\x84\x73\xbd\x69\x0c\x7f\x81\x66\x7f\xf9\x24\xdc\xfd\ \xbb\x0a\x3d\xb3\x08\x2d\x37\x3c\x72\x7e\x69\x77\x26\x5b\xa2\x49\ \xce\x9d\xfe\xf5\x17\xcc\x70\xb0\xae\xe4\x6e\x69\x20\xa4\xf2\xb5\ \xc4\x81\x57\x38\xa7\xad\xa3\x11\xc6\x16\x85\x65\x6f\xa0\x6a\x3c\ \xd3\x20\x56\xad\x13\x5d\xda\xa2\x56\x08\x3d\xc7\x7f\x14\x9d\xcd\ \xc1\xf3\x8f\x8a\xce\xed\x06\x9e\xe5\x23\x07\x1b\x9a\x46\x59\x9d\ \xd1\xf3\xcb\x6c\x28\x6c\xc5\x8d\x70\xd8\x67\xfa\x77\xa6\x80\xee\ \x9b\xdf\xa5\x78\x1b\x0a\xa2\x8d\x2b\xf2\x6a\x57\x76\x2c\x69\xbb\ \x28\x06\x9f\x5e\x73\x85\x1b\x80\x7b\xd2\xdd\x09\xb2\x81\x63\x8f\ \xd7\x9b\x60\x38\x06\x85\x3c\xb2\xdd\x4e\x15\x14\xb1\xe1\x54\x51\ \x24\x69\x2f\x26\xd2\x83\x08\xbf\xd8\x0f\x26\xba\x59\x23\xb7\x43\ \x14\x07\x73\xf5\x3f\x73\xf6\xf8\xac\xce\xf7\x7b\x55\xa2\xf4\xed\ \x01\xd3\x87\xb8\xee\xdf\x95\x3e\xd4\xb4\x92\x7b\xcb\x6e\xce\x79\ \x63\x54\xcb\x3e\xc0\x6d\xe0\x55\x91\x54\x1d\xfd\xc7\xe3\xb5\x6b\ \x48\xab\x33\x31\xdc\xe6\xbb\x43\x63\xe9\x34\x50\xf8\xd8\x05\x1f\ \x6a\xba\x48\x78\x6c\x11\xf6\xaa\x07\x1b\x8e\xdf\xda\xa6\x48\xc3\ \x2e\xa4\xa3\xf5\x1b\x07\x85\x8d\xc5\xb0\xd7\x0b\x6e\x31\xda\x94\ \x8e\x42\x0e\x57\x63\xdc\x56\x65\x97\xa1\x53\x90\x70\x68\xd6\xb3\ \x85\x1e\x9c\x9b\xa1\xdb\x7e\xd5\x0c\x16\x45\xca\xec\xd4\x22\x08\ \x38\x35\x7b\x13\x24\x46\x09\x8c\x64\xe5\x1b\x74\x35\x37\xd9\x96\ \xcb\x5f\xe7\x8f\x9a\xba\xb0\x96\x1f\x45\xf9\x07\x28\x7c\x1a\x1a\ \x92\xac\xc1\xc6\xc7\xda\xe2\x94\x0a\xd5\xb5\x44\xd5\xe9\x7f\x84\ \xa1\x49\x88\x2e\x33\xa4\x0c\x57\x97\x40\x61\xba\x68\xb9\x07\x71\ \xf6\xaf\x5d\xfc\x24\x9f\x85\xe9\xad\x77\x21\xe7\x65\x1e\x6b\x39\ \xdf\xaf\x0b\x1b\x1d\x56\xe9\x6d\x6d\xfd\x24\x3e\xe2\x37\xc5\x60\ \x3b\x16\x62\xc4\xe4\x9a\x25\xdc\xcd\x3c\xc6\x46\x3c\xd0\xa9\x86\ \x3e\x31\x0c\x59\x15\x46\xd4\xc7\x6a\x65\x67\x47\xe0\x71\x59\xd4\ \x6b\x45\x25\xb2\x78\x14\xca\x7b\x58\x6e\x49\x04\x60\xb9\x6c\x0a\ \x98\xee\xa2\x71\x82\xe0\xfc\x83\x59\x97\xf3\x09\x64\xd2\xbf\x4a\ \xfe\xf4\xac\xb9\x8c\x65\x99\x57\xee\x71\x58\xf0\xd9\xb6\xb5\xec\ \x11\xc9\x19\xd4\xa3\x07\xbf\x63\xf7\xac\x0e\xa3\x62\xf0\x31\x65\ \x04\xa7\xfa\x53\x76\xb7\xce\x98\xc3\x87\x5e\xe3\x39\x06\x9d\x47\ \x8a\xe1\x3f\x97\x8c\x9e\x63\x27\xfd\x29\x37\x89\xdb\xce\x23\x32\ \x30\x65\x38\x22\xb5\x6c\xae\x44\xe3\x49\x38\x61\xbf\xeb\x42\xea\ \x36\x38\x26\x48\x41\xdb\xea\x52\x37\x14\x84\x6c\xd1\xb8\x65\x38\ \x22\xb7\xdc\x43\x3d\x5e\xd8\x86\xf5\x90\x6e\x39\x14\x0b\x46\xc1\ \xc0\xdb\xf3\x2f\xdf\xc5\x69\xdb\x4c\x97\x56\xe5\x4e\x35\x63\x04\ \x56\x55\xcc\x6f\x6f\x30\xc7\x19\xca\xd2\x5f\x41\xe8\xce\x2e\x01\ \x1f\x9c\x66\x89\x68\xba\xa6\x91\x98\x64\xea\xa5\xa0\x7d\x51\x82\ \xbc\xae\xe3\xfd\xc5\x33\x03\xe9\x9b\x23\x89\x06\x7f\x5a\xd4\x0d\ \x8d\x85\x0e\x59\x82\xec\xa7\xf5\xa1\xdc\x4c\x73\xa7\xf6\x14\xa4\ \xd2\x1c\xe0\xff\x00\x6a\x02\x4d\x2f\x3b\xef\x4b\x92\xcc\x7c\xe6\ \xa4\x29\x66\xdf\x7a\xd3\xe9\xf6\x62\x35\xf5\xa6\x1f\x20\x1a\x99\ \x65\x20\x5e\xd6\xd4\x24\x66\x69\x86\x30\x32\x05\x27\x78\xc0\xb3\ \xb2\xf0\xdb\xd3\x7d\x56\xe8\xcb\x21\x44\xfa\x45\x24\x41\x2b\xc6\ \x45\x4c\x65\xee\xaa\xf6\x56\xfa\x86\xb9\x3f\xc3\x5d\xcf\xcd\x5a\ \xe6\x5f\x59\xf1\x9d\x31\xaf\x00\x50\xb5\xcb\xe9\x08\xf2\x0a\x8e\ \x2a\x84\x7f\x51\xfe\xd4\xf1\xbb\x41\x1e\x7c\x27\xa7\x16\x42\xff\ \x00\xad\x0f\x4e\x0e\x5c\xd5\x24\x95\x23\x5c\xf1\xfe\xb4\xbf\xe2\ \x4c\x87\xda\x8e\x40\xec\xa2\xb5\x31\xd0\x68\x39\x63\xa5\x14\xb7\ \xc0\xa2\xc5\x6b\x33\x9c\xbe\x54\x78\x1c\xd2\xa8\xfd\x43\x4e\x22\ \x68\xe0\x1e\x02\xea\x3f\xde\xb8\x5b\x5c\x3b\x89\x1e\xf2\x76\x90\ \x70\x43\x60\x7f\x6e\x29\xaa\x34\xe2\xe9\x4b\x32\x1f\x4e\x72\x1c\ \x76\x6a\x5a\x7b\x7b\x9b\x56\xc4\xd1\x9d\x3f\xd4\x38\xa8\x49\x7a\ \x94\x64\x1d\x69\x26\x3b\xb2\xe1\x8f\xea\x2b\x42\xcf\xad\x44\xea\ \x20\xbd\x89\x97\x56\xd9\x61\xb5\x63\xef\x14\xad\x8d\xfc\xf6\x5f\ \xcb\xd3\xea\x41\xfd\x3c\x91\x45\xbe\xb6\x8e\xe9\x3f\x15\x62\x41\ \xfe\xa4\x1c\x8a\x50\xe2\xa2\x32\xf1\x4b\xea\xc0\xfa\x1c\x7f\x63\ \xfa\x56\xee\x1c\xee\x22\x88\xc4\x36\x0e\x43\x0e\x68\x8e\x04\x83\ \xc1\xa3\xbc\x90\x5e\x26\x2e\x53\xd1\x9c\x70\xeb\xc3\x52\xae\x1a\ \x29\x74\x39\x07\xc1\x1d\xe8\x2a\x41\x07\x07\x63\x56\x95\xb5\x44\ \x18\x8f\x76\x71\x9f\x22\xa2\x53\x9c\x79\xa0\xfb\xe7\x99\x61\x87\ \x76\x63\x8a\xa0\xfd\x1a\xcd\xef\xfa\x88\x03\xe8\x5d\x8b\x1e\x00\ \x15\xe9\x2e\xe6\x56\x45\x82\x21\xa6\x28\xc6\x00\xf3\xf3\x4b\x58\ \xc2\x96\x56\x42\xde\x3f\xa8\x8f\xe6\x37\x9f\x8a\xba\x2b\x33\x00\ \xa0\x93\x59\xd7\xb1\x00\x12\x70\x06\x4d\x39\x6d\x66\xe5\x75\x11\ \xfd\xe8\xd6\x96\xe9\x02\x7a\x92\xee\xde\x2a\xb7\x17\x6c\x4e\x10\ \xaa\x81\x58\xb9\xdb\xc4\x5d\x14\xba\x8f\xd3\x9b\x4e\x6a\x92\xb1\ \x29\xe9\x26\x40\xee\x68\xf2\x24\xb3\x39\x25\x46\xc3\x76\xec\x2b\ \x2b\xac\xf5\x48\x6d\x50\xc3\x6a\xe2\x49\x8f\xd5\x20\xe1\x7e\xd5\ \x7b\x9a\x13\xd4\xae\x61\xb2\x8f\x4e\x43\x4c\x46\xc8\x3b\x7c\x9a\ \xc8\x09\x25\xd3\x99\xa7\x62\x4b\x1a\x8b\x68\x9a\x56\xf5\xa5\x24\ \xe4\xe7\x7e\x5a\x9f\x86\x3c\x8c\x9d\x80\xad\xc9\xa4\x29\xf8\x52\ \x87\x54\x65\x90\xf9\x14\x48\xee\x6e\x21\x20\xba\xea\xff\x00\x32\ \x9c\x1a\xbd\xe4\xe1\x13\x3f\xd8\x79\xa0\xb4\x97\x18\x19\x80\xe0\ \xf9\x34\x1a\x96\xb7\xb1\xce\x06\xa6\xf7\x70\x1b\xfe\x68\x77\xf6\ \xa2\x4f\x7a\x00\xaf\xf1\xc3\x7d\xab\x37\x28\x5b\x20\xb4\x4f\x4c\ \x5b\xde\x3c\x5e\xd9\xb0\xcb\xe4\x56\x75\xf8\x02\x46\x78\x64\xc8\ \xc8\x61\xcd\x3c\x4c\x77\xb6\xc4\x70\xe2\xa2\x78\x92\xe6\x3d\x68\ \xc0\x9f\x23\x9f\xd6\x92\x05\xe1\x97\x6d\x98\x53\xb1\xd0\x3b\x43\ \x31\x46\xe7\x34\xe4\x47\xdb\xa0\x7d\xd4\xd0\xae\x51\x6e\xe1\xf5\ \x13\x69\x17\x91\xe6\x87\x6b\x21\x65\xd3\x9c\x32\x9d\xaa\xc0\x66\ \x90\x97\x62\x76\x20\x55\x23\x1a\x8f\xcf\xee\x68\xd2\x28\x65\xf5\ \x17\xb8\xc3\x0a\xa5\x89\x1f\x89\x4c\xf1\xa8\x66\xb4\x35\x3a\x65\ \x90\x8d\x04\xf3\x8f\xfa\x54\xd0\xba\xc5\xe6\x47\xa6\xa6\x99\xeb\ \x17\x26\x35\x2a\x2b\x09\xd8\xb3\x12\x7b\xd7\x2c\x66\xfe\xd5\x5c\ \x37\x34\x54\x5c\x2e\x0d\x44\x4b\xdc\xd4\xc8\x74\xae\x6b\xb4\x88\ \x0c\x8b\xb9\x00\xe2\xba\x34\x57\x3a\x58\xe1\xbb\x67\xbd\x4b\x12\ \x4e\x4d\x4c\x41\x58\xe1\x94\x1a\xd5\x82\x45\x8b\x31\xe1\x4f\xdc\ \xd1\x97\xa7\xc8\x17\xf2\x8f\xd4\x54\xc3\x10\x27\x09\x23\x29\xf0\ \x77\xa3\x24\x13\x9e\x4e\xc3\xbd\x62\xec\x0d\x6d\x11\x37\x92\x40\ \x7e\x05\x4b\x98\xd1\x72\xab\xa4\x79\xef\x5d\x70\x56\x2f\xa9\xb5\ \x1f\x8a\x52\x47\x67\x39\x35\x66\x3f\x91\x69\x25\x66\x3b\x6c\x2a\ \x8c\x75\x2e\x96\x01\x87\x83\x57\xb6\x89\xa5\x7c\x0e\x3b\x9a\xb5\ \xcb\xa8\x6d\x11\x81\x85\xf8\xe6\xad\xb3\xa1\x47\x65\x27\x65\x15\ \x42\x01\xf8\xae\xae\xa0\xa4\x84\xae\xd9\xd8\xd5\x5d\xb5\x15\x07\ \xb5\x75\xc3\x70\x3b\xd5\x19\x82\x82\x7b\xd4\xa2\x27\x62\x4e\x95\ \x19\x2c\x70\x00\xef\x5b\x1d\x22\xcc\x5a\xc5\xad\xc0\x32\xb7\x27\ \xc7\xc5\x03\xa2\xd9\x85\x02\xe6\x61\xef\x3f\x40\x3f\x96\xb5\x11\ \x0b\x1f\x8e\xe6\xb3\x47\x46\x85\xdb\x03\xfb\xd3\x70\x98\xe0\x5c\ \x82\xab\xe5\xdc\xe0\x56\x67\x52\xea\x90\x59\xa9\x8e\x3c\x49\x20\ \xfc\xa0\xff\x00\xa9\xac\x5b\xbb\x9b\xcb\xd7\xd5\x34\x87\x1d\x87\ \x61\x59\xd5\xc9\x5e\x9e\x4e\xab\xd3\x52\x5c\x48\xe6\x66\x1d\xfb\ \x0a\x15\xe7\xf1\x0d\x8c\x03\xf9\x10\x29\x3c\xf1\x5e\x55\xe1\x90\ \x6e\x0e\xf5\x06\x30\x83\x54\xad\x92\x78\x1e\x6a\x78\x43\x67\xfa\ \xaf\x5b\xbe\xbf\x52\x9a\xbd\x38\x87\x61\xb5\x2b\x67\x6d\xac\x7a\ \x92\x6c\x9d\x87\x76\xa2\xda\xdb\xe5\x44\x93\x8c\x2f\xe5\x4f\x3f\ \x7a\x6e\x24\x2c\x78\xda\xb7\x24\x9d\x22\x21\x8f\x51\xce\x36\x15\ \x6b\x87\x00\x15\x1b\x79\x34\x49\x59\x63\x4c\x01\xbd\x67\xdd\x33\ \xcb\x2f\xe1\xa3\xdd\xdf\x9f\x8a\x09\xb5\x1e\xbc\xcd\x3b\x0f\xe5\ \xc7\xb2\x8f\x26\x9c\xd0\xa0\x8d\x7e\xe7\x6e\x73\xda\xa2\x14\x48\ \xd4\x22\x8f\xe5\xc5\xff\x00\xf4\x6a\xb9\x26\x4c\x9e\x49\xab\x20\ \x39\xb4\x47\x18\xc7\x3d\xa8\x17\x1d\x36\x45\x24\xc4\x4f\xfd\x27\ \x8a\xdb\xe9\x89\x11\xb8\x60\xec\x03\x01\xed\x07\x6c\xed\x5d\x73\ \xac\x48\xc0\x8c\x6f\xc5\x67\x7c\x8f\x36\xa6\x7b\x57\xc8\x0d\x1f\ \xc7\x63\x4d\x2c\x90\xdd\xa6\x92\x34\xc8\x29\xfb\xa1\x1b\xae\x99\ \x50\x10\x7e\x2b\x3a\xe2\xc1\x87\xf3\x2d\xdf\x20\x6f\x8c\xee\x2a\ \x76\x02\x0c\x96\xf3\x7c\x8f\xde\xa6\xe5\x41\x1f\x89\x8b\x91\xf5\ \x28\xae\x49\x84\xa3\xd3\x9b\xda\xe3\x60\x4d\x40\xd7\x0c\x9b\xf0\ \x7f\xb1\x14\x07\xb5\x94\x11\xa8\x6e\xad\xb1\x15\x07\xd9\x36\xde\ \x76\xa5\xc9\x11\x49\xa9\x77\x8d\xb9\xf8\xa3\x1f\x72\xe7\x92\x3f\ \x7a\xd4\x1a\x3d\x64\xeb\xb6\x8a\x50\x7e\xa0\x2b\x3e\x25\x2e\xe1\ \x40\xf8\xa7\x6c\x5b\xf1\x16\x12\x5b\xb6\xe5\x3d\xcb\x4a\x5b\x9d\ \x17\x0b\x9d\xb0\x77\xa9\x8f\x1c\x02\xb2\xe1\xf4\x8e\xd4\x09\xf3\ \xea\x63\xb0\xad\x19\x21\x02\x53\xdb\xe6\x95\xba\x8f\x9c\x60\x91\ \xde\xb7\x8e\x41\x77\x18\x18\xfd\xe8\x91\x00\x13\x23\xbd\x0c\x1d\ \xb0\xd5\x2a\x4a\x6f\xc8\x35\xa0\xcd\xbc\x82\x32\x49\x07\x35\x17\ \x17\x4c\x46\x01\xc0\xa5\xda\x42\x78\xda\xa8\x77\xa9\xe3\xee\x89\ \x62\x49\xc9\xa9\x89\x0b\xb6\x05\x54\x0c\x9c\x0a\x7e\xda\x2f\x4e\ \x20\x74\xee\x79\xa6\x57\x42\xcc\x9e\x8c\x1a\x17\x96\x1b\xfd\xa9\ \x67\x8d\x47\xb9\xce\x05\x1a\xf2\xe1\x73\xb9\x05\xbc\x0a\x4e\x47\ \x67\x39\x63\x58\xc6\x5f\x62\xb5\x0c\x40\x52\x4f\x6a\x93\x4b\xdc\ \x3e\x5b\x48\x3b\x0e\x6b\x62\xac\xd9\x62\xed\x4e\x74\x8b\x43\x33\ \x89\xe6\x5f\x60\xfa\x41\xef\x42\xe9\xd6\xad\x73\x28\x67\x18\x8d\ \x7f\x7a\xd8\x9a\x48\xad\xa0\xd4\xc4\x05\x5e\x05\x62\xd0\x52\x55\ \x14\xb3\x90\xaa\x39\x26\xb2\xba\x8f\x53\x79\xb3\x0d\xa6\x55\x38\ \x2f\xdc\xd2\xbd\x42\xed\xee\x5b\xde\x4a\xc6\x3e\x94\x1d\xea\x90\ \xc5\x3c\xab\xed\x5d\x0b\xe4\xf3\x4d\x6c\x42\xac\x71\xee\xcc\x33\ \xe4\x9a\xba\x49\x1b\x26\xa5\x60\x40\xa2\x27\x4f\x8f\x19\x63\x96\ \xf9\x19\xa8\xff\x00\xc2\xd6\x49\x32\x06\x4f\x7d\x35\x78\x00\x33\ \x6b\x6d\x10\xa9\x76\xf8\xe0\x53\x16\xd6\x82\x3c\x4d\x39\xd5\x21\ \xdc\x2f\x8a\x69\x23\x86\xd1\x02\x46\xa0\xbe\x3c\x6c\x2a\x8a\x0b\ \x3e\x49\x24\x9a\x41\x31\x82\xef\x93\xbd\x1f\x64\x04\xd4\xa2\x04\ \x5f\x9a\x0c\xec\x59\x82\x2f\x7a\x80\x37\x72\x84\x8d\xa6\x3e\x70\ \x83\xc9\xaa\xf4\x94\x31\xdb\xbd\xe3\xee\xf2\xe5\x63\x3f\xea\x69\ \x6b\xd7\x37\x17\x6b\x04\x5b\x84\x3a\x57\xe4\xf7\x35\xab\x22\x2a\ \xcd\x1d\xba\xfd\x10\x2e\xf5\x28\x1b\x82\xaa\xb0\x8e\x79\x3f\x7a\ \xa3\x02\xa7\x06\x9d\xe9\x90\x8b\x8b\xb6\x91\xfe\x91\x4e\xc9\x05\ \x99\x04\x12\x7f\x4a\xd6\xf5\xc0\xcd\x8a\xed\xc2\xe9\x93\xdc\xbf\ \xb8\xfb\x53\x6b\x79\x11\x40\x19\xf2\x7b\x1a\x8f\xc0\xc2\xcc\x4a\ \x07\x23\xe4\x80\x29\x9b\x7e\x90\x64\x19\x58\x76\x1d\xc8\xdb\xfb\ \x9a\xcd\xb8\x85\x9a\x48\xa5\xdb\x2a\x7e\xc6\x94\xb8\x89\xe3\xf7\ \x21\x38\xad\x79\x3a\x44\x41\x4e\xb7\x85\x1b\xc0\x6d\xff\x00\x61\ \x4b\x4f\x61\x71\x1a\xe5\x1c\x48\xa3\xb6\x73\x59\x99\x63\xea\xae\ \x99\x13\x08\xe7\xff\x00\x10\x69\x61\xc3\x0a\x0b\x96\x8f\x11\xcb\ \xee\x4e\xcc\x29\xe9\xe1\x52\x7d\xc3\x41\xf9\xe0\xd2\xce\xac\xa3\ \x4b\xae\x54\xf6\x3d\xeb\x7a\x40\x7e\x83\x83\x86\x56\xfd\xea\x62\ \x6f\x4c\x84\x27\x2a\x7e\x93\x5c\xca\x50\x7b\x77\x5e\xea\x7b\x55\ \x36\x23\xe0\xd4\x0e\x5a\xca\x60\xb8\x59\x07\x1d\xc7\xc5\x5f\xa8\ \xc6\x23\x9f\x5a\x7d\x0f\xee\x53\x4a\x42\xe4\xfb\x1b\x91\xc7\xcd\ \x39\x19\xf5\xec\x8c\x47\xeb\x8b\x75\xfb\x53\xde\xc1\xa7\x94\xc9\ \x02\x49\x9e\x46\xff\x00\x7a\x5d\x66\xc6\xcd\x53\x6a\x75\xc0\xf1\ \x77\x1e\xe5\xff\x00\x7a\x0b\x56\xb1\x90\x11\x8c\x6f\xf0\x68\x44\ \x11\xb0\xdc\x57\x63\x35\xda\x1b\xb5\x6a\x5d\x0a\xd7\x54\x95\x61\ \xc8\x35\x15\x76\x2c\x84\x06\xc9\xa2\x49\x73\x23\x2e\x9c\xe0\x7c\ \x50\x70\x7c\x54\x81\x52\x88\xae\xae\x3c\xd7\x50\x06\xe2\x4c\x0c\ \x0e\x6a\x7a\x7d\xab\x5c\x4b\xbe\x74\x0e\x4f\x9a\xeb\x1b\x67\xb9\ \x9b\x27\xe9\xee\x6b\x46\xea\xe2\x2b\x28\x74\x20\x05\xb1\xb0\xac\ \x5a\x09\x71\x34\x36\x70\x0e\x32\x07\xb5\x45\x64\x4b\x2c\xd7\x73\ \xf1\xa8\xf6\x1d\x96\xad\x14\x53\x5e\x4d\xad\x89\xc1\x3c\xff\x00\ \xc5\x6d\xd8\x74\xe8\xe0\x88\x3c\xa9\x81\xd9\x7c\xfd\xeb\x3b\x93\ \xb1\x9d\xd3\xba\x6b\x31\xd6\xd8\x63\xdd\x9b\x81\x5a\x31\xdb\xdb\ \xa0\xf7\x96\x73\xf1\xb0\xa3\xbe\x58\x0c\xfb\x50\x70\x05\x25\x7d\ \x72\x23\x53\x1c\x67\xdc\x79\xf8\xab\xbd\x83\xcd\x25\x94\x7b\x88\ \x00\xf1\x96\x34\xac\xf7\x8f\x20\xd1\x10\x08\xbe\x40\xc5\x2b\xee\ \x90\xea\x62\x71\xe4\xd5\xd4\x16\xf6\xa8\xc0\xab\x31\x10\x06\x5b\ \x03\x24\x9e\xe7\xbd\x35\x0c\x61\x13\x27\x9a\xeb\x78\x70\x32\x7b\ \x55\x98\x83\x96\x3f\x4a\xd2\xd0\x39\x8e\x07\xc9\xdc\xd2\xd2\xbf\ \xa3\x67\x2d\xc1\xe4\x8d\x2b\xf7\xab\xdc\x31\xd3\xf2\xdb\x9a\x0f\ \x5d\xfe\x5f\x4d\x86\x2f\xea\x39\x34\xa2\xbf\xc2\xf0\x97\xea\x3a\ \x88\x07\xd1\x88\xb9\x07\xc9\xa7\xad\xff\x00\xc4\xb8\x27\x9c\x1a\ \x5f\xf8\x55\xd5\x7a\xb3\xc4\xc7\x1e\xb4\x65\x57\xe4\xd1\xe4\x06\ \x3b\x99\xc7\xf9\x6a\x7b\x0e\xf4\xc3\xa3\xa6\x92\x36\x67\x62\x28\ \xb1\xa0\x2f\x8f\x1b\xb1\xf1\x43\xb6\x5f\x4e\xd6\x35\x3d\x97\x3f\ \xa9\xa7\xfa\x7c\x46\x31\xae\x45\xce\x91\xea\x30\x3f\x1c\x0f\xef\ \x8a\x99\x5d\x4d\x91\x63\x2c\x76\x80\x6a\x0b\xac\x0e\x48\xd4\x54\ \xf8\x03\x8d\xbc\xd2\xb3\x5f\xca\xec\x49\x19\xcf\x77\x62\x7f\xed\ \x40\xea\xac\xff\x00\x8c\x31\x17\x00\xa0\xf7\x31\x38\x03\xcd\x2e\ \x90\x7a\x8b\xaa\x39\x63\x93\xec\x6b\x13\x19\xdd\x53\x7f\x8a\x9b\ \x23\x05\x07\xff\x00\x88\xab\xad\xcc\xf9\xd4\x4a\x31\xfb\x0a\xce\ \x6f\x52\x33\xef\x0c\xbf\x3d\xaa\x56\x56\x18\x39\x07\xed\x5a\xf1\ \x88\xd2\x6b\x88\xa5\x04\x5c\x45\x9c\xf7\xc6\x7f\x7a\x5e\x6e\x9e\ \x92\x29\x6b\x79\x01\x1f\xd0\xc6\x80\xb3\xe7\x92\x41\xa8\x37\x0d\ \x13\x64\xe4\x7c\x8a\x4c\x6c\xe9\x4a\x5c\xdb\xc9\x0c\x85\x5d\x08\ \xf8\xa5\xa5\x8f\x03\x5a\x0c\x8e\xe2\xb6\x92\xee\x19\xe3\xf4\xe7\ \x01\x87\xcf\x22\x97\xbb\xb3\x08\xbe\xa5\xbb\x6b\x4e\xe3\xb8\xab\ \xbf\x55\x19\x07\xb1\x1d\xa9\x8b\x69\x4a\xb0\x75\xe4\x73\x55\xb8\ \x87\x48\xd7\x1e\xe3\xb8\xf1\x41\x56\xd2\x75\x0f\xd4\x55\x81\xf9\ \xbf\x95\x70\xb3\x47\xf4\xb6\xe3\xfe\x2b\xae\x95\x75\xeb\x4c\x69\ \x71\x91\xf1\x54\xb7\x71\x24\x7e\x93\x1e\x77\x53\xe0\xd4\x21\x20\ \x18\xdb\xf4\xf8\x35\x67\x63\x93\x9a\x91\xbf\xc5\x45\x41\x24\x1c\ \xd6\xf4\x2e\x37\xd8\xb0\x1f\x7a\xe2\x0e\x3e\xa5\xfe\xf5\x45\xd6\ \xdb\xad\x10\x47\x26\x3f\x2d\x2c\x15\x60\xbe\x73\x55\x24\x62\xba\ \x65\x65\xe4\xe7\x3e\x2a\x94\xd7\x03\xab\x8f\x15\xc4\xe2\x81\x3c\ \x9d\x85\x03\xd7\x37\x11\xda\x43\xe9\x44\x32\xf8\xc5\x2d\x6f\x6e\ \xf2\xbf\xab\x70\x49\xce\xfa\x7c\xd4\xda\xc5\xee\xf5\xa5\xdd\x8f\ \x00\xf6\xa6\xa1\x0d\x24\x81\x40\xe4\xd7\x3d\x87\xba\x64\x68\x08\ \x3a\x46\xdf\xb5\x35\x3b\xeb\x6c\x93\xed\x14\x34\x55\x86\x2d\x3f\ \xdc\xd2\x77\xd7\x78\xf6\xa9\xdf\xc7\x8a\xce\xb7\x55\xdd\x42\xef\ \x03\x42\x73\xfe\x94\x80\x52\x7d\xcd\xff\x00\xdd\x58\x29\xfa\x9f\ \x93\xda\x8b\x14\x4c\xed\xbd\x6e\x4d\x22\xb1\xa1\x73\x8e\x00\xe2\ \x9c\xb6\x83\x7c\x01\xbd\x4c\x10\x92\xc1\x54\x6e\x68\xf7\x85\x6d\ \xe3\x11\x27\xd6\x7e\xa3\xe2\xa5\xcb\x9d\x40\x09\x88\x2c\x22\x8f\ \x7f\x27\xc9\xaa\x5d\x29\x0e\x20\x5d\xf0\x77\xf9\xa6\x7a\x5c\x25\ \xb5\x4d\x8f\xa0\x6d\xf7\xa5\x54\x86\xbd\x1a\xce\x37\xe4\xd3\x7c\ \xe8\x29\x21\xcb\x6a\xed\xaa\x9d\xbd\xb6\xb6\xea\x16\xe9\x99\x82\ \xb2\x8c\x50\x64\xb6\x9a\x27\x3a\xe3\x38\xf2\x57\x20\xd0\xc4\x68\ \x4e\xfe\x9a\xfe\xa4\x55\xbc\x8b\x59\xd8\x47\x65\x74\x97\x53\xdd\ \x07\xf4\xb7\x55\x5e\x49\xa2\x42\xa6\x7b\x86\x66\x18\x0e\x72\xc3\ \xc0\xec\x2a\x88\x90\x29\xcb\x4a\xbf\xfe\x00\x93\xfd\xcd\x3b\x00\ \x52\x8a\x23\x18\x0d\xc5\x40\xdd\x94\x61\xdf\xd5\x93\x1a\x57\x80\ \x78\xa6\xe4\x94\x45\x6a\x92\x9e\x25\x97\x50\xf9\x55\xff\x00\xbe\ \x69\x48\x12\x5b\xbb\x94\xb6\x80\x1d\x24\x85\xdb\xfd\x69\x8f\xe2\ \xcd\x31\x4e\x2d\xe3\xfa\x20\x88\x22\xd7\x2c\xae\xec\x8a\xc4\xba\ \x8e\x4b\xbb\x7b\x97\x19\x2d\x8d\x64\x79\xde\xb2\x21\x91\xe2\x7c\ \xa9\x23\x15\xe8\x7a\x3c\x82\x2b\xec\x30\xca\xb0\x2a\x47\x9a\x5b\ \xf8\x97\xa4\xb4\x0f\xeb\xc2\x09\x8d\xb7\x15\xbf\x29\x2e\xa8\xad\ \x9d\xf8\x75\x0b\x36\x19\x7c\xe2\x8d\x2d\xaa\xba\xeb\xb7\x6f\xd3\ \xb5\x61\xc4\xe5\x1b\xe3\xb8\xa7\xec\x6e\x9e\x22\x19\x0e\x57\xb8\ \xab\x66\xba\x04\x93\x2a\xc5\x5d\x74\xb0\xf3\xde\xa3\x51\xdc\x72\ \x3c\x1a\xd4\x83\xf0\xd7\xf1\x60\x90\x1b\xe7\x8a\x5a\xfb\xa7\x4d\ \x01\xca\x82\x47\x83\x49\x9c\xea\x9a\x20\xeb\x8d\xd7\xff\x00\xaa\ \xbd\xbc\xd2\x44\x75\x23\x64\x0e\x45\x50\x92\xa7\x0c\x0a\x91\xe6\ \xa7\x93\x90\x77\xae\x9d\xf6\x86\x18\xc5\x3f\xbe\x30\x12\x5e\xea\ \x78\x6a\xcf\xbc\xb7\x2a\xc5\x90\x11\x8f\xa9\x7c\x51\x9b\x63\x91\ \xb1\xa2\xac\xa2\x41\xa6\x53\x82\x38\x71\xfe\xf5\x8b\x8e\xba\x19\ \xd0\xbe\x96\xe7\x6a\x69\x8e\xb4\xf5\x07\xd4\x3e\xaf\x9a\x15\xec\ \x05\x5b\x52\x80\x3e\xdc\x1a\xad\xb4\x9a\x5b\x07\x71\x48\x0c\xa7\ \x22\xa1\xfc\xd4\x91\xa5\xbe\x0f\x15\xcd\xba\xd6\xe5\x17\xb7\x38\ \x53\xe6\xaf\xa8\xd0\x22\x38\x7f\x8a\x35\x5b\xd8\xac\xe7\x2b\x41\ \x34\x49\x8f\x6a\x5e\x79\x02\x8c\x0e\x68\x29\x71\x20\xce\x07\x35\ \x5b\x58\x5a\x79\x42\x8e\x3b\x9a\xac\x68\xd2\xc9\xa4\x6e\x6b\x42\ \x42\x96\x56\xda\x46\x35\xb5\x62\xd1\x45\x25\x9a\xb4\xec\x23\x58\ \xa3\xd6\xc3\x73\x4a\x58\x43\x9c\xc8\xdc\x0f\xde\x8b\x3c\xc4\xfb\ \x57\x73\x59\xa2\x6f\xee\x4e\x74\xae\xe4\xf6\xa5\x54\x15\x6c\xb7\ \xb9\xcf\xed\x56\x45\xf7\x61\x3d\xce\x79\x3d\x85\x35\x6d\x6c\x34\ \xeb\x6f\xa7\xbb\x79\xfb\x55\xe2\x01\x41\x0b\x31\xd6\xdf\xae\x69\ \xa8\x63\x2c\x42\x20\xde\xa5\x14\xbb\x84\x45\xdb\xb0\xad\x6b\x1b\ \x64\xb5\x40\xf2\x60\xb9\xac\x67\x9e\xbb\x50\x96\x05\xb4\xb5\x2e\ \xc3\xdc\x45\x63\xce\xcc\xd2\x96\x63\x92\x4d\x7a\x47\x41\x72\x37\ \xe1\x46\x6b\xcf\xdc\xc4\x4b\x1d\xb1\xbd\x4f\x8a\xee\xee\x95\xa5\ \xd1\x62\x2f\x6b\x22\x26\x35\x15\xc0\xcd\x64\xde\xc2\xc8\xe4\x15\ \x21\x97\x62\x29\x8e\x9f\x78\xf6\xd2\x85\x6d\x8f\x7d\xf9\xad\x5b\ \x8b\x78\xba\x8c\x3e\xa4\x45\x44\xc0\x7f\xfb\x56\xb9\xc6\xec\x79\ \xf8\x2e\x67\x8c\xfb\x65\x60\x3e\xf5\xb7\xd3\x7d\x1b\x98\x3f\x98\ \x8a\xcd\x8e\x48\xac\x7b\xcb\x67\x8d\xd8\x15\x2a\x47\x20\xd1\x3a\ \x35\xd8\xb7\xb8\x1a\x8f\xb4\xd6\xb2\x9b\x9b\x80\x7d\x62\x3f\x4e\ \x50\x02\x80\x01\xec\x29\x9b\x60\x5c\xa8\x1c\x91\x81\x4c\x75\xdb\ \x61\x71\x17\xaf\x0f\xb8\x73\xfa\xd2\x16\x53\x10\x06\x4e\x1d\x0d\ \x25\xde\x28\xf6\x7f\xc3\xd6\x0b\x6a\x86\x72\x31\x85\xd8\x9e\xf5\ \xe7\x3f\x89\x24\x0d\x73\x3b\x1e\xe7\x15\xa9\x69\xd6\xa5\x9e\xdf\ \xd1\x70\xa3\x6d\xcd\x60\xf5\x97\x0d\x23\x1c\xe7\x26\xb8\x7c\x78\ \xe5\xe7\xcb\x57\xa0\x33\xa6\x6c\x83\xce\xe2\xb7\x7a\x7c\xf1\x5c\ \xda\xfa\x17\x18\x28\xfb\x03\xfd\x26\xb0\x07\xba\x05\x61\xca\xec\ \x69\xae\x97\x30\x12\x98\x9c\xe1\x5c\x73\xe0\xd7\x4c\xf1\xdc\x48\ \x4f\xf8\x93\xa4\x49\x67\x39\x65\x5c\xa9\xf1\xc5\x65\x44\xe6\x36\ \xcf\x23\xb8\xaf\x77\x6a\x52\xed\x1b\xa7\xdd\xe3\x58\xfa\x18\xd7\ \x95\xfe\x23\xe9\x72\x59\x5c\xb7\xb4\xe3\x35\x30\xcf\xfe\x72\x2c\ \x0e\x09\x5a\x3c\x49\x11\xd8\xf2\x2b\x7b\xa3\xf5\x34\x96\x3f\x4a\ \x71\xa9\x7b\x83\xb9\x15\xe5\xad\xa5\x31\xb6\x0f\x06\x9b\x46\x68\ \xdc\x49\x19\xad\xe5\x8e\xcd\xbd\x5d\xc7\x45\x8a\xe9\x3d\x48\x0a\ \xb2\x9e\x01\xff\x00\x9a\xc9\xbd\xe9\x12\x40\xf8\xd0\xc9\xf7\xe0\ \xd1\x3a\x2f\x58\x78\x58\x61\xb0\x7b\xa9\xe0\xd7\xac\xe9\xb7\x96\ \xb7\xf1\x60\xe9\x0d\xc1\x56\xae\x37\x2c\xf0\x5e\xde\x16\x6e\x9f\ \x36\x9d\x4a\xa5\xbe\xd4\x9b\xab\x2b\x61\x81\x07\xe4\x57\xd2\xa5\ \xe9\x90\xf2\xa8\x07\xc8\xa4\x3a\xb7\x47\xb6\x9e\xdf\x12\x47\x83\ \xd9\xd4\x6e\x29\x8f\xf2\x3f\x27\x8b\xc2\xa4\x83\x4f\xa7\x20\xca\ \xf6\x3e\x29\x7b\x98\x8a\x36\x47\x07\xc5\x69\x75\x7e\x9b\x2d\x9b\ \x1d\xc4\x91\xf6\x71\xfe\xfe\x29\x15\x23\x74\x7f\xa4\xfe\xd5\xdf\ \x8b\x37\x19\x52\x17\xd4\xba\x0f\x3d\xaa\xea\x7b\x1a\x0c\xc8\x62\ \x93\x6d\xc7\x62\x2a\xe8\xda\x97\x23\xf5\xab\x05\x98\x60\xd1\xa3\ \x39\x5c\xd0\x79\x15\x68\x4e\x1b\x1e\x6b\x7d\x81\xdc\x3e\x9c\x93\ \x4a\x1d\x4e\xfb\x6e\x4d\x35\xd4\x47\xb7\x35\xdd\x2d\x54\x6b\x95\ \x86\xca\x2a\x50\x68\x95\x2c\xed\xf5\xb6\x35\x1a\x5a\x30\xd7\x12\ \x99\xa4\xe3\xb5\x44\x8c\xd7\x53\xe4\xe4\x20\xa3\x70\x30\x36\x02\ \xb2\x1f\x9a\x50\xa8\x11\x76\x51\x42\x89\x4b\x8c\xb1\xd2\xbd\xfc\ \x9a\x11\x90\x38\xdc\x60\xd3\x16\xb8\x76\x50\x78\x03\x8a\x9d\x40\ \xcd\xbc\x29\xa7\x51\x5d\x31\xfe\xed\x44\x6c\xc8\x42\xa8\xc0\x1c\ \x28\xed\x56\x45\x2f\x82\x4f\xc6\x29\xeb\x44\x86\xd5\x7d\x69\x86\ \xe3\xe9\x5a\xc5\xba\xfe\xd4\x6e\x9b\x6a\xb6\xf1\x7a\xb2\x8f\x71\ \xe0\x52\xd7\x52\x4b\x35\xf2\xc6\x99\x39\xe0\x0a\x1d\xdd\xf4\xb3\ \x3e\xa1\xed\x51\xc0\xad\x3f\xe1\x53\x11\xfe\x27\x85\xa4\x00\x83\ \x0e\xa5\x04\x73\x5c\xf2\x96\x4d\xd1\xaf\xd2\x7a\x15\xd7\xe0\xc4\ \xc3\x00\xf8\x6e\xf4\x2e\xa1\xd1\x12\x43\xfc\xdb\x53\x03\xe3\x1a\ \xe3\x19\x53\xf7\x14\xf7\x52\xeb\x52\x17\x29\x19\x0a\x01\xc0\x02\ \xa2\xd7\xae\x38\xf6\xc8\x01\xfb\xd7\x09\x7e\x4e\xda\xe1\xe3\x7a\ \xbf\x4a\x9a\xd9\xb1\x22\x6a\x43\xf4\xb8\xef\x49\x5b\xdc\xcd\x67\ \x20\xcb\x1d\x3e\x6b\xe9\x7e\x9d\x97\x50\x8c\xaa\xe9\x52\xc3\x75\ \x3c\x1a\xf3\xbd\x7f\xf8\x56\x45\xd4\xf6\xcb\x90\x7f\x21\xef\xf6\ \x35\xdf\x0f\x9e\x5e\x32\x66\xc6\x54\x8d\x07\x52\x83\x21\x82\xcc\ \x06\xc7\xcd\x63\x5e\xda\xbc\x32\x10\x57\x04\x76\xa2\x4b\x0d\xc5\ \x95\xc1\x00\x30\x2b\xca\xf8\xa7\xa1\xbb\xb7\xbc\x84\x45\x73\x85\ \x60\x36\x6f\x15\xda\x6f\x1e\x67\x48\x57\xa3\xde\xfa\x4d\xe8\xcd\ \xbc\x6d\xb6\xf5\x1d\x5a\xd3\xd0\x90\x5c\x42\x35\x21\xe7\x15\x5b\ \xab\x09\x55\xb3\x18\xd6\x0f\x75\x35\x68\xde\xfd\x22\xd1\xb2\xa8\ \x3f\x9b\x15\x78\xde\xe0\x5c\x5d\xb0\x18\x40\x72\x79\x14\x19\xcc\ \xae\x72\xfb\x7c\x66\x99\x9d\x8e\x49\x9e\x70\x3e\x13\x1b\xd1\xad\ \x6c\xa5\x91\x43\xa4\x02\x34\x3c\x49\x29\xe7\xec\x3b\xd6\xb7\x20\ \xa4\x09\xff\x00\x92\x73\xfe\x60\x3f\x6a\x5d\x1f\x43\xe7\xb0\x35\ \xa1\x78\x12\x18\x16\x04\x3c\x6e\x4f\x72\x7c\xd2\x16\xe0\x3b\xba\ \x76\x35\x9c\x79\x1a\xf2\x3b\x49\x6f\x15\xd2\x1f\x7c\x67\x4b\x62\ \xb4\x66\x48\xba\xc7\x4d\x2a\xd8\xf5\xd0\x71\xe6\xbc\xff\x00\x4f\ \x9d\xe1\x9b\x41\x39\xd3\xbf\xdc\x56\x8d\xf3\x35\xbc\xd1\xdd\x5b\ \xb1\x50\xe3\x3b\x57\x1c\xb1\x57\x97\xea\x96\x6f\x69\x70\xc8\xca\ \x40\xce\xd5\x16\x73\x01\xec\x73\xb1\xe0\xd7\xb3\x96\xca\xd7\xad\ \xd8\xb1\xc6\x9b\x85\x19\xdb\xbd\x78\xde\xa7\x63\x2d\x9c\xe5\x1c\ \x1c\x03\xcd\x6f\x0c\xe6\x5c\x5e\xcb\x05\x61\xa4\xea\x4a\x7f\xa7\ \xde\xb2\x91\xb9\x04\x70\x73\xb8\xac\xab\x59\xb3\xec\x63\xbf\x62\ \x68\xac\x0a\xb6\x45\x6e\xcd\xf1\x51\xed\x3a\x3f\x5f\x92\x35\x09\ \x3e\x64\x4e\x33\xdc\x56\xea\xcf\x05\xd4\x3a\xa1\x75\x6c\x8e\x2b\ \xe6\xf6\x77\x45\x4e\x1b\xfb\xd6\xad\xa5\xcb\x29\x0f\x0c\x84\x11\ \xe0\xd7\x9f\x3f\x8a\x5e\x9a\x94\xef\xf1\x1c\x46\x37\x2d\x18\x3f\ \xe6\x43\xc1\xaf\x31\x75\x1a\x1f\x7c\x5c\x77\x53\xf9\x6b\xd7\x8b\ \xc8\xba\x84\x5e\x85\xd0\x09\x21\xd8\x3f\x63\xf7\xaf\x35\xd6\xec\ \xe5\xb3\xb9\x39\x1b\x67\x63\xe6\xb7\xf1\x5d\x71\x4a\xce\xd9\x97\ \x43\x71\xdb\xe2\x82\x33\x14\x98\x23\x6a\x3b\xe1\x86\x47\xea\x2a\ \x92\x2e\xb5\xf9\x1c\x57\x6b\x19\x48\x23\x90\x76\xa9\xe0\xe4\x50\ \xa2\x62\x0e\x93\x44\xab\x28\x9b\xa5\xf5\x21\xc8\xed\x40\xb7\x72\ \x2d\x65\x51\xb1\xe6\x98\x8c\xec\x54\xf0\x69\x68\xc6\x99\xa4\x43\ \xdd\x4d\x5b\xd0\x25\xb7\xf8\x23\x14\x68\x23\x32\x3e\x3b\x0e\x68\ \x16\xc7\xf9\x42\x9d\x0e\xb1\xc4\x14\x63\x38\xc9\xac\xfa\x1f\xff\ \xd9\ \x00\x00\x0c\x82\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x0c\x49\x49\x44\x41\x54\x78\x5e\xed\x9a\x09\x6c\x5c\xd7\ \x79\x46\xcf\x7d\x6f\x36\x0e\x57\x0d\x49\x71\xa7\x48\x8a\xa2\xa8\ \x8d\xda\x29\x53\x92\x15\xdb\x32\x92\xc8\x52\x6b\x3b\x4e\x60\x3b\ \xf1\x16\xbb\x71\xd3\x24\x6d\xaa\xd6\x89\xe3\xb4\xae\x61\x23\xb5\ \x93\x36\xa8\x8d\xb8\x69\xd3\xd6\x6d\xed\xa2\x0b\xd2\x16\x69\x6b\ \x18\xa9\x9b\x5a\x4b\x97\xd8\xb2\x4d\x59\x5c\xc4\x4d\xa4\xb8\x2e\ \x22\x87\x1c\x0e\x67\xc8\x59\xdf\x72\xab\xc1\x7b\xc6\x33\x08\xa6\ \xf0\x08\x8c\xd2\x00\x1d\xe0\xc3\xff\xee\x70\x66\xee\x77\xfe\xe5\ \x0e\xe6\x81\x42\x4a\xc9\xcf\xf3\x43\xf9\x19\x1b\xf8\x7f\x00\xd7\ \x4a\x80\x33\x67\xce\x70\xf2\xe4\xc9\x0f\x05\x20\x04\xdc\x77\x84\ \xc7\x86\x66\x68\x7f\x7b\x90\xb3\xa6\xf9\xd3\x05\x78\xfe\xf9\xe7\ \xb9\xf9\xe6\x9b\xff\x77\x80\x48\x24\x42\x67\x67\xe7\x87\x02\xd8\ \x55\xc7\xbe\x0d\x45\xb5\xcf\xb6\x34\x04\xd4\x86\xbc\x8e\x1f\xbc\ \x7c\x8a\x27\x7a\xc7\x18\x5a\x73\x00\xc7\xdb\xda\xb5\x90\x5b\x45\ \xdc\x7b\x23\xdf\x69\xbd\xeb\x05\xf7\xd1\x2f\xbd\xa3\xdc\xf3\xc5\ \x3f\xfe\xe4\x4b\x5f\x2b\xed\x7c\xf2\x7e\x9e\x2d\x2d\xc9\x29\x64\ \xeb\x7d\x8f\xb2\xf9\xee\x87\x59\xbf\x7b\x0b\xc2\x25\xfe\xcf\xcd\ \xc0\xb1\xdd\x3c\xbc\xf7\xd0\xf1\xb6\x9a\x1d\x77\xa0\xa8\x6e\x6a\ \xf6\x7c\x9e\xfd\x9f\x1d\xf0\xdf\x7e\xdf\xaf\x3f\xd1\xf8\xe9\xe7\ \x66\x1e\x7f\xf2\x99\x3f\xf9\xe4\xc3\x5f\xff\xf3\x63\x27\x5f\xee\ \x2d\x7f\xe4\xec\xbc\x72\xcb\x77\x7f\xc8\x8e\x2f\xfc\x16\x95\x47\ \x8e\xe2\xaf\x58\x07\xca\xcf\x0e\x60\x7d\x01\xc5\x27\x0e\xf8\x7e\ \x77\xff\x27\x5e\x40\x08\x27\xb9\x3f\x1e\x55\xf8\xc2\x5b\x0f\xf2\ \x3b\x8f\x3c\xe0\xfb\xe5\xa3\x95\xdc\xb4\xa3\x9c\x27\xef\xdb\xce\ \x6b\x4f\x1f\x08\xfc\xf0\xc5\x07\x8e\x3d\xff\xcd\x27\xbe\xf1\xd0\ \xe3\x7f\xf8\x46\xcb\x67\xff\x6e\xda\x7b\xeb\x4b\x17\xd8\xf1\x95\ \x3f\xa2\xea\x63\xf7\x93\xbf\x69\x13\x8a\x47\xbd\x6e\x00\x77\x1f\ \xe2\x99\xfd\xb7\x3d\x56\x56\x50\xda\x08\x80\x29\x25\xdf\xfa\xd7\ \x29\x9e\x7d\x6d\x92\xef\x7f\x71\x0b\x07\x9b\xd6\xd1\x3b\x11\xa7\ \xac\xc4\x4f\xca\x54\x88\x6a\x2e\xdc\xb9\x79\xb4\x6c\xab\xe2\xe1\ \x3b\xb7\xf3\xd2\xd7\x0f\xfb\x4e\xff\xd9\xbd\xbb\xfe\xfa\xbb\xbf\ \xf1\x2b\x5f\x7d\xfa\xf7\xff\xea\xd6\xcf\x7d\xaf\x3f\x70\xf4\x4f\ \x27\xd8\xfa\xdb\xff\x42\x5e\xd3\x0d\x59\x9f\x42\xd9\x68\x67\x1d\ \xfb\x3e\x72\xa0\xe1\x73\xdb\x8f\x7e\x0d\xa4\x64\x21\xae\xf3\xc8\ \x2b\xc3\x6c\x29\xf7\xf1\x8f\x57\xcd\x67\x0c\x07\x63\x30\x35\x9f\ \xa6\xa1\x2e\x17\xb7\x02\x52\x82\x24\x13\x05\xa6\x84\x98\xa6\x22\ \x85\x4a\x45\x4d\x39\x55\xb5\x65\xdc\xf1\x31\xa9\xf8\x54\x59\x71\ \xe6\xc7\x43\xbf\xf8\x9b\x5f\xee\x5c\x64\xf9\x52\x27\x90\x58\x73\ \x00\x55\x41\x7c\xe6\x88\x78\x61\xff\x9d\xdf\x76\xab\x6e\x1f\x52\ \xea\x7c\xf3\xf5\x29\x76\xd6\xe4\xf0\x91\x2d\x01\x82\x31\x13\x13\ \x85\x50\x02\x22\x31\x9d\x3c\xbf\x0b\xa1\x60\x9b\xff\x49\x51\x90\ \x32\x05\x69\x53\x32\x9d\x21\x8f\x8d\xf6\x01\xe6\x4f\xa5\x02\xc7\ \xf7\xf0\xe0\xee\xb6\x63\x87\x6a\xb6\x1d\x47\x1a\x29\xc0\xa4\x7b\ \x3a\xce\x73\x27\x6a\x18\xbe\x92\xe2\x42\xcf\x22\x89\xb4\x89\xdb\ \xe3\xc2\x23\x24\x6e\x97\x00\xa4\x65\x56\x38\x86\x59\x05\xc4\xab\ \x4a\x2e\x5c\x0a\x19\x2c\x0f\x5f\x00\x52\x6b\x0e\x50\x5a\x40\xe0\ \xf6\x36\xdf\x73\xad\x77\x3d\x8f\xd4\x13\x48\x69\x10\x4b\x19\x20\ \x04\x85\x85\x3e\x36\xe7\xfa\x69\x6a\x2c\x42\xd7\x25\xb1\x58\x1a\ \x21\x04\x2e\x21\x2d\x93\x16\x07\x12\x81\x14\x0e\x10\x38\x50\x3e\ \x61\xd0\xd1\xdd\x37\x81\x11\x9b\x5a\xf3\x19\x10\xc0\x3d\x87\x78\ \x7a\xf7\xc7\xbf\x52\x9e\x57\x58\x86\xd4\x93\x48\x99\xc9\x7e\x92\ \xed\x95\x39\xe8\x52\xa0\xda\xbd\xae\xba\x05\x9e\x22\xaf\x6d\x4c\ \x02\xd8\xc6\xad\xb5\x04\x10\x58\x10\x08\x7b\x2d\x99\x09\x46\x09\ \x4f\xf7\x0d\x02\xf3\x6b\x0e\xd0\xb2\x81\x3d\x47\x5a\x1b\x1e\xdd\ \x76\xd3\x97\x31\xd3\x51\x90\x66\x06\x80\x73\xa3\x09\xf6\xd4\x94\ \x22\xc0\xca\xf6\xfb\xc6\x6c\x6c\x67\x6d\x1b\x07\xa4\x03\x04\xd2\ \x79\xbe\x67\x78\x81\x23\xd5\x97\x77\x2f\x24\xdc\x4d\xdd\x63\xda\ \xcc\x9a\x01\x78\x5d\x28\x77\x1f\x16\x2f\xb6\x7e\xe2\xdb\x1e\xc5\ \x88\x23\x8d\x24\x90\x01\x90\xbc\x3b\xa5\xf1\xd4\x2e\xbf\xd3\x2a\ \x60\x1b\x13\x48\x56\xb6\x0f\x48\x21\x90\x12\xb0\x81\x6c\x40\x5c\ \x8a\x24\x6f\xa1\x9f\x4f\xef\x0c\x96\x44\xaa\xf2\x5e\xfe\xea\x2b\ \xe1\x03\xc0\xdc\x9a\x00\x7c\x74\x17\x0f\xec\x3f\x7c\xdb\xc1\xaa\ \x4d\x37\x62\x24\x82\x20\x4d\xc0\xcc\x44\x66\xe2\x2e\x4a\xf2\x5c\ \x24\x0d\xe9\x0c\x27\xd8\x7d\xbe\x22\xe3\xb6\x6d\x56\xa9\x52\x5e\ \x74\x9a\x87\xf2\xdf\x20\x74\xa4\x86\xd7\x4f\x4d\xd5\x96\x17\xa9\ \x6d\x33\x8b\xc6\xab\x59\x02\xac\x3e\xb8\x27\x5a\xbd\xcf\xb6\xde\ \xf9\x7b\x18\xf1\x2b\x48\x53\x03\x69\x99\x1f\x8f\x4a\x6a\x02\x05\ \x56\x06\x85\x63\x5a\xb2\x8a\x71\x61\x39\x76\xaa\x24\xec\xb5\x04\ \x2d\x45\x49\xfb\x5f\xa0\x36\xb9\x28\x09\x16\xe2\x76\xbb\xd5\xcd\ \x55\xee\x43\x57\x01\x5e\x07\xd2\xd7\x0e\x60\x0d\xee\x33\xfb\x8e\ \x3d\x56\x91\xe3\xf3\x62\x26\xe7\x91\xd2\x04\x5b\xe7\x26\x55\x0e\ \xd4\xfa\x11\x80\x2a\x56\x19\x4e\xa7\xc7\x71\xda\xc5\xce\x3a\xf6\ \xbc\x98\x92\xe2\xb7\x5e\xc1\x57\x17\x86\x0d\xf7\xa2\xc4\x4e\x51\ \x16\x38\xcf\xd6\xea\xf8\xfe\xff\xe8\x49\xe6\x03\xa1\x6b\x06\xd8\ \xb9\x81\x3d\x37\xee\xaf\x7f\x74\xdb\x91\xcf\x63\x2c\x8f\x58\x83\ \xcb\x07\x00\xa6\x72\x79\xf0\xb0\x1f\x55\x91\x20\x57\x69\x15\x40\ \x3a\x40\xce\xda\x82\xb2\x2a\x77\xfe\x75\xf2\xd7\xf5\x43\xd5\x4d\ \x50\xd0\x0c\xeb\xa6\x28\x2f\x29\xa4\xb1\x3c\xb4\x5d\x55\x58\x6f\ \x98\xd7\x08\xe0\x56\x11\xf7\x1c\xe6\xc5\xab\xad\xe3\x26\x31\x65\ \x7d\x69\x49\xc3\xaa\x80\xa9\x91\x5e\x1a\xa0\x77\xfe\x06\xb6\xae\ \xf7\x60\x4a\x69\x0f\xe7\xca\x1e\xb7\x8d\x3b\xa6\xed\x2a\x81\x29\ \x21\xd9\xdf\x43\x95\x7e\x16\x51\xdf\x08\xe5\xb7\x00\x26\x94\x36\ \x51\x51\x54\x40\xa1\x5f\x2d\x29\x2f\x72\xb5\x4c\x2d\xe8\x7d\xd7\ \x04\xf0\xf1\x5d\x3c\xb4\xf7\xd0\xb1\x83\x95\x0d\x7b\xd0\x42\x17\ \xd1\x62\xa3\xa4\x17\x3b\x2d\x45\x7a\x58\xd2\x54\x72\xf3\xce\xa1\ \x2a\x20\xcc\x95\xc6\x57\x3f\x89\xa4\x04\xb0\xcc\x47\xa7\xe6\xd9\ \x30\xf3\x4f\x28\x3b\xca\xa0\xf6\x1e\x0b\x4d\x1a\x50\x14\xa0\x30\ \xb7\x12\xbf\x6f\x40\x6c\xa9\xf6\x1e\xba\x0a\xf0\xcf\x40\x2a\x2b\ \x80\xfc\x1c\x72\x8f\xed\xe1\x1b\x75\xf5\x35\x84\xcf\x7e\x89\x78\ \xfc\x2d\xa4\xb6\x08\x08\x10\x0a\x08\x95\x7e\x6d\x0f\xbb\x6b\x03\ \x08\x40\x11\x0e\xb8\xb4\x05\xab\x0c\xb5\x5d\xa5\xf0\x7c\x8a\x8a\ \x9e\xbf\xc5\xd3\x16\x80\x92\x3b\x40\xf1\x80\xd4\x01\x4b\x4a\x60\ \x13\x65\xc5\xe7\xd9\x5c\xb1\xbc\xff\x8d\xae\x58\x01\x30\x97\x15\ \x40\x75\x31\xd5\x53\x39\x54\x96\x19\x53\xe4\xfb\xcb\x49\x46\xf6\ \xb2\x14\x1f\x22\x51\x10\x01\xc5\x85\xb8\xaa\x8e\xc5\x56\x0e\x66\ \x06\x58\x88\x15\xbf\x91\x9d\x6f\x5f\x56\x7e\x07\x20\x99\x0b\x4b\ \x8a\xde\xfb\x01\x79\x07\x8b\x21\xb0\x1f\xdc\xeb\x00\xc3\x92\xd4\ \x2d\x15\x36\x50\x59\xbe\x3e\x33\x07\xdb\x14\xc1\x7a\x53\x66\x09\ \x30\x3e\xcf\x98\xa2\x12\x8e\xa4\xe4\xba\x82\xcd\x2d\xe4\x6c\x6e\ \x23\x27\x32\x8e\x3e\x3e\x4d\x6c\xe1\x32\x71\x5f\x98\x2e\x6d\x17\ \xbf\x56\xe9\x73\x00\x56\x17\xc2\x36\x2e\x20\x63\x1e\x77\xf7\x59\ \x8a\x5b\x02\x50\x5c\x0f\xee\x5a\xab\x6d\xd0\x41\x6a\xb6\xd2\x50\ \x5a\x49\x45\x79\x03\x3e\xf7\xa5\xfc\x0d\xa5\x9e\xd6\x91\x60\xba\ \x17\x90\x1f\x1a\x20\x96\x24\x39\x1b\xe5\xcd\xf0\xf2\xdc\xf1\x1a\ \xa9\x40\x60\x33\x94\xec\xc4\x55\xbb\x48\xa1\x1e\xa4\x60\x3c\xc4\ \xc9\x94\x46\xde\x95\x41\xa8\xdf\xbc\x4a\x15\x84\x5d\x05\x07\x63\ \x3e\x62\x92\x1c\x1e\xa4\xb1\x38\x8e\xd8\xb0\x07\xd4\x22\xa7\x6d\ \x64\x46\x69\x5b\x29\xc8\xf5\x50\x50\xd2\x48\x5e\x7e\x11\x4d\xe5\ \x91\xb6\xab\x00\xdf\x07\xe2\x59\x0d\x71\xcf\x38\xa7\x6f\x88\x8e\ \x1c\x97\x8a\x1f\xa1\x2d\x82\xa7\xd8\x92\xb7\x0a\xb1\x05\x8e\x6e\ \x51\x90\x0b\x31\xcc\xce\x1f\x81\x27\x1f\xb3\x69\x2f\xb8\xbd\xac\ \xf6\x08\x45\x4c\xc2\xd3\x8b\x6c\x8a\xbe\x87\xf2\xd1\x13\x00\x20\ \x75\x9c\xb6\xd1\xb0\xcd\xdb\x4a\x22\xfc\x85\x54\xd6\x35\xd2\x54\ \x31\xbb\xef\xdf\xba\x96\x0a\xae\x05\xe0\x94\xa9\x87\x48\x26\x16\ \xc9\xd1\xbc\xe0\xca\x01\x24\x08\x40\x78\x41\x28\x88\xe2\x62\xd4\ \xd2\x6a\xd0\x5c\x28\x83\xed\xc8\xb4\x86\x59\xd3\x0c\xc5\xe5\x80\ \x00\x60\x21\x22\x99\x9d\xd3\xd9\x30\xf8\x1a\xbe\xdb\x3f\x05\xa4\ \x6d\xe3\xb6\x79\x3e\x98\xfd\x24\x98\x09\x30\xe3\xe0\x81\xea\xba\ \x4d\xd4\x04\xda\x9b\xbc\x2e\x51\x93\xd2\xe5\x4c\x56\xbf\x89\xdf\ \x1b\xa2\x0b\x21\xe7\x96\x17\x07\x41\xd3\x41\xc6\xac\x0f\x96\x19\ \x25\x40\x26\x2d\x99\x4b\xa0\x2e\x21\xb6\x36\xa3\xec\x6e\x43\x4d\ \x44\x50\x3b\xce\xa0\x8c\x74\x13\x8e\x18\x4c\xcf\x43\xa0\xeb\x55\ \x02\xb7\xde\x06\xaa\x6e\x65\xd8\xb4\x32\xed\x18\xce\xc4\xb8\xad\ \x18\xc8\x65\xc8\x37\xa9\x2e\xab\xc6\xe3\x52\xfd\xb5\x25\xde\x56\ \x40\x64\x05\xa0\x1b\xc8\x8b\xa3\x9c\x89\x86\x7a\xc1\x50\xc1\x58\ \x02\x73\x19\xcc\x98\xad\xb8\xad\x84\x05\x64\x44\xc1\x98\x41\x54\ \x15\x20\x76\xb7\xa2\x94\x56\x52\x38\xfc\x26\xa5\x1d\x7f\x4f\x6d\ \x6b\x33\x14\xe6\x82\x19\x71\xc0\x65\x02\x47\x31\x4b\xe6\x72\x46\ \xd6\x5e\x1e\x1d\xbf\x47\x25\xb0\xbe\x42\x34\x95\xfb\x6e\x00\x72\ \xb3\x02\x00\xe8\x18\xe2\x54\x34\xd4\x87\x49\x2e\x68\x61\x30\xa3\ \xb6\x96\x41\x2e\xdb\x1b\x5b\x20\x56\x4c\x58\x15\xd1\xaf\x20\xfc\ \x11\xbc\xbb\x9b\xa9\xfe\xd4\x9d\x88\xfa\xa6\xcc\x73\x19\x50\x9c\ \xd7\x66\xb4\xc2\xb4\x99\x51\x04\x8c\x38\x18\x1a\x88\x04\x35\x1b\ \xb7\xb0\xb1\x34\x67\x2f\x50\x94\x35\x40\xfb\x00\x67\x52\x89\xb0\ \x4c\x2c\x87\xc0\x10\xd6\x26\x46\xc4\xde\x64\xc9\xd9\xd4\x32\x61\ \x67\xd1\x56\xe6\xda\x98\x01\x6d\x00\xd2\x97\x56\x54\x6f\xd9\x02\ \xb5\xa2\x93\x18\x23\x02\x7a\x12\xf4\x34\xe8\x1a\xc8\x28\x35\x8d\ \x5b\xa9\x28\xf2\x36\xf8\x3d\x4a\x5d\xd6\x00\xdd\x23\x5c\x8e\xc4\ \x18\x89\xcc\x77\x83\x99\x67\x7d\xb0\x11\xb7\x21\x16\x6d\x90\xf7\ \xab\x62\x03\x39\x19\x75\x0c\x1a\x51\xec\x6b\x9c\x75\xd4\x7e\xff\ \xa2\xad\x25\xd0\x53\x8e\xf9\x8c\x72\x25\x95\xeb\x4a\xf0\x78\x3c\ \xde\xba\x12\x5f\x1b\xa0\x64\x05\xa0\xe9\x98\x17\x87\x39\xbb\x38\ \xdb\x09\x62\x9d\x05\xa0\xa5\xed\x2c\x2d\xd9\x1b\x87\x1d\x13\xa6\ \x15\x1d\x38\x5b\x66\x64\xc5\xdf\xac\xf7\x59\x8a\x82\x9e\x00\xcd\ \x36\xef\x00\x00\x3a\x3e\x57\x9a\xd2\xaa\xba\x4c\x1b\x1d\x00\xf2\ \xb2\xfe\x3d\xf0\x4e\xbf\x3c\xdd\xb6\xa3\xeb\x61\x53\x0d\xa0\xa4\ \x75\x50\x4c\x30\x55\x50\x55\x10\x06\x28\x69\x50\x54\x10\xef\xcb\ \x05\x28\x2b\xf2\x22\x01\xd3\x39\x3a\xa5\x61\xc9\x34\xc1\xfc\x60\ \xd4\xc1\x30\xc0\xd0\x2d\x99\x3a\x22\x15\xa4\x76\x73\x0b\x0d\x17\ \xfa\xf6\x40\x68\x1d\x10\xcd\xea\xd6\x62\xd7\xb0\xfc\x4f\x3d\x1d\ \xd7\x97\xc3\xe3\x20\xfd\x4e\x96\xb4\x34\xce\x75\x0a\xb4\x24\x68\ \x71\xd0\x96\x40\xb7\xfa\xd9\x96\xb5\xd6\x33\xcf\xc7\xac\x6c\xeb\ \x29\x70\xde\xbf\xca\x67\x6a\x60\xd8\x55\x50\x22\x6c\x68\xde\x49\ \x69\x9e\x77\x43\x9e\x57\xdd\x08\x90\x15\xc0\xd0\x34\x13\xf3\x11\ \x2e\x2d\x5c\x79\x0f\x5c\xeb\x33\xc6\x71\x94\x72\xa2\xd5\xbf\xce\ \x3a\xed\x08\xcd\xd6\xca\xd7\x3b\x6b\x1b\x48\x73\x00\xa4\x17\x72\ \x36\x42\xc5\x21\xf2\x03\xe5\x80\xa2\xe4\xfb\x5c\x8d\x80\x2b\xab\ \x16\xd2\x0d\xe8\x18\x92\xa7\xea\x9b\xda\xb7\xd6\x6d\x3d\x01\xd1\ \x0e\x50\x54\x5b\x0a\x08\xc5\x89\x42\x58\x22\x13\xb1\x22\x12\x24\ \x76\xfc\xa0\x4c\x30\x4d\x3b\x1a\x80\x17\x3c\x95\xe0\xad\x42\x7a\ \x2b\x09\x87\xe3\x8c\xf7\x77\x33\xda\xfb\x2a\x23\x3d\xdd\x04\xa3\ \xa9\xf1\xe0\x52\x7a\x14\x10\xd9\x00\xd8\xa7\x91\x79\xe6\x96\xd9\ \x8b\xbf\xaa\xab\x01\x5c\x86\x04\x23\xbd\x0a\x80\x70\x84\x1d\x01\ \xc0\x81\x70\xcc\x03\x2a\x78\x2a\xc0\x5b\x0d\xbe\x6a\x62\x09\x98\ \xe8\xef\x60\xac\xef\xdf\xaf\xaa\x83\xc5\xf9\x20\xf1\xa4\xb1\x74\ \x39\x98\xe8\x1d\x9a\x4d\x74\x74\x4d\x2e\xfd\xc8\x30\x65\x1f\xa0\ \x65\x0d\xf0\xce\x80\x3c\xab\xa7\x13\x46\x64\x7e\x48\x2d\x76\x95\ \x40\x72\x72\xb5\xec\x3b\x11\x9c\x2a\x48\xec\x65\xc6\x70\x19\xf8\ \x6a\x91\xbe\x1a\x52\x7a\x0e\xd3\x97\xbb\x99\xec\xff\x2f\xc6\xfb\ \xcf\x33\x3f\x35\x22\x13\x69\x19\x1f\x9b\x4b\x0f\x5e\x9a\x49\x74\ \x5e\x9e\x4d\xb6\x4f\x84\x53\xdd\x52\x32\x03\x84\xec\xe1\x4d\x03\ \x64\x0d\x30\x1d\x92\xe1\x50\x94\x0b\xa1\x89\xb7\xf7\x15\x37\xed\ \x83\xf8\x18\x98\x06\x8e\xe9\x55\x2a\xa0\xa8\xe0\x2d\x83\x9c\x3a\ \xf0\xd7\x93\xa6\x88\xe0\xc4\x00\x53\xed\x6f\x33\x39\xf0\x3d\xe6\ \x27\x06\x49\x24\xd2\xc9\xf1\x79\x6d\xe4\xd2\x4c\xaa\x6b\x60\x3a\ \xd9\x3e\x1e\x4a\x77\xa5\x75\x39\x05\xcc\x03\xd1\x35\xbd\xbd\xfe\ \x56\xaf\x71\xaa\x76\xe3\xb9\x7d\x72\xef\x67\x10\x73\xa7\x71\x6e\ \x2f\x1b\x40\x46\x80\xaf\x0c\xf2\x36\x41\x5e\x23\xa6\xaf\x9a\xf9\ \xe9\xcb\x5c\xe9\x3c\xc7\xd4\xc0\xdf\x10\x1c\xbb\x48\x3a\x91\x30\ \x27\x43\xfa\x68\xdf\x64\xfa\xe2\xc0\x74\xaa\xfd\x72\x30\xdd\x11\ \x4f\x99\xe3\x40\xd0\x36\x1c\x77\x6a\xb6\xc6\xf7\x46\xbb\x46\xcc\ \x53\xc7\x66\x7b\x1e\xd7\x5c\xc5\x78\x14\x0f\x98\x1a\xb8\x8b\x20\ \x3f\x63\xb8\x09\xd3\x5f\x4f\x24\x3c\xc7\xec\xd0\x7f\x73\x65\xf0\ \x3b\xcc\x0c\xbd\x4d\x32\x1e\x33\x82\x8b\xc6\x4c\xdf\xa4\x76\xb1\ \x77\x32\xfd\x5e\xff\x64\xfa\xdd\xa5\xa4\x39\x66\x1b\x8e\x00\xcb\ \x59\x1a\xbe\x76\x80\x9e\x51\xf3\x6d\x43\x4f\xc7\x16\xa6\x3a\x72\ \xcb\xeb\x1f\x41\x7a\x4a\x58\x8e\xc5\x98\x1b\x7e\x93\xd9\x37\xff\ \x92\xe0\xf0\x39\xe2\x91\xa0\x0c\x45\xcd\xb9\xbe\x09\xbd\xef\xe2\ \x84\x76\xa1\x7f\x52\x3b\x1f\x8c\x18\x97\x6c\xc3\x61\xdb\xb0\xb1\ \xd2\xc0\x75\x01\x08\x46\x64\xf4\xf2\xb4\x79\x3a\xe7\x8d\xa7\x7f\ \x61\xba\x72\x1f\x73\x23\x6f\x12\x5b\x98\x64\x29\x6e\x46\x7b\xc6\ \x8c\xde\xee\x31\xad\xb3\x7b\x54\x7f\x77\x66\xd1\x18\x30\x4c\xae\ \xd8\x86\x97\x56\x3b\x35\xae\x33\x80\xa3\x6f\xfd\x43\xf2\x97\xee\ \x9a\xee\xf9\x83\xfc\x9c\xbe\xc6\xde\x71\xa3\xff\xe2\x98\xfe\xee\ \xd0\x15\xc3\x3e\x29\x58\xf8\x49\x27\xc5\x75\x07\x68\x6e\x6e\xe6\ \xa9\xa7\x9e\x5a\xb5\x10\xc0\xfd\x40\x49\x4b\x33\xb4\xc0\x32\x90\ \xb8\x3e\x36\x1d\x6f\x2b\x1f\x3f\xf7\xff\x6e\xf3\x3f\x6b\x76\x5b\ \x62\x8d\x5d\xc3\xae\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x0c\xbd\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x0c\x84\x49\x44\x41\x54\x78\x5e\xed\x99\x6b\x8c\x5c\xe5\ \x79\xc7\x7f\xcf\x7b\x2e\x33\x3b\x33\x7b\xb3\xd7\x5e\xbc\xb6\xd7\ \xc1\x2e\x97\x84\xba\x60\x4c\x20\x41\xad\x43\x44\x40\x54\x90\x96\ \x4a\x69\xaa\x5e\x48\x3f\xd0\x36\x11\x48\xfd\xe2\xa8\x4a\x2b\xd4\ \xa4\x5f\x9a\x56\x8d\x69\xa5\x82\x54\x55\xa9\xc4\xa5\x06\xda\x28\ \x21\x26\x16\x81\x26\x01\x1a\x30\x57\x63\x0a\x76\x6c\xbc\xbb\xe0\ \xcb\x7a\xbd\x37\xef\x75\xee\xe7\x9c\xf7\x7d\x0a\x47\x87\x1d\x8d\ \xd8\xc1\x1f\xa8\x54\x45\xf2\x5f\x7a\x75\x34\x1f\x1e\xcd\xf3\x9b\ \xff\xff\x79\xe7\xd1\x8c\xa8\x2a\xbf\xcc\x32\xfc\x52\xeb\x02\xc0\ \x05\x80\x0b\x00\x3e\x99\x66\x66\x66\x98\x9b\x9b\x03\x11\x50\x45\ \x69\x49\x00\x50\x50\x47\x2a\xf1\x00\x41\xbd\x9c\x87\xf1\x7d\x40\ \x50\x1b\x8b\x6d\x58\x9c\xcd\x8a\x04\xf5\x8b\x21\xb9\x35\xfd\xea\ \x85\xdd\x80\x07\x80\x6a\xa2\xea\xea\x44\xcb\x55\xb1\xcd\xba\xd8\ \x46\x24\x6a\x11\x1c\x88\xe0\x54\x50\x04\x14\x10\x30\x02\x22\x42\ \x26\x54\x95\x52\xa9\xc4\xa6\x4d\x9b\x10\x91\x16\xc0\x7d\xf7\xdd\ \xc7\xfd\xf7\xdf\x4f\x6f\x57\xa1\xbf\x2b\x08\x86\x4a\x41\xd0\xe3\ \x89\x8a\x45\x24\x32\x85\xb0\x1e\xac\x31\xb5\xe2\xe6\x7c\xb0\x66\ \xeb\x70\x61\xcd\x96\xcd\xc5\xee\xfe\x8b\xba\x7a\xd6\xf5\x05\x5d\ \xdd\x05\x40\x9a\x8d\x5a\x75\x71\xf6\xcc\xd9\xa5\x53\xaf\x1d\xee\ \x9a\x7b\x63\x2e\xd9\xf4\xb9\x2d\x1b\xb7\x7f\xe1\x86\xe1\x2d\xa5\ \x6d\x03\xbd\x7e\x6f\x21\x27\x9e\xef\x41\x14\xbb\xa4\xda\x88\xab\ \xcb\x8b\xb5\xe5\x85\x85\x85\xd9\xf9\xd9\x89\xb3\xef\xd5\x4d\x44\ \xf3\xe3\xe5\x5c\x65\x42\x2e\x36\x27\x74\x5d\xa1\x69\xf2\x21\xf9\ \xc5\xb2\xb3\x23\x13\xe5\xe7\x4f\x2f\x2d\x3d\xef\x54\x15\x20\x49\ \x12\x6e\xbe\xf9\x66\x1e\x7a\xe8\x21\x82\x20\x68\x01\xd4\xab\x55\ \x6f\x03\x7c\x65\xc7\xba\xdc\xd7\x2e\xea\x77\x17\x7b\x01\xf9\xe3\ \xc1\x4d\xc8\xc6\xcf\x48\xef\xe6\x4b\xcc\xba\x8d\x1b\x65\x68\xc3\ \x1a\x6f\xd3\x40\x57\x30\xd8\x67\xa4\xaf\x00\xa5\x1c\xf8\x86\x54\ \x91\x85\xd9\xca\xb5\xbc\x79\xf2\x56\xad\xcf\x9f\xd5\xe1\xe1\x0d\ \x72\xf5\xd6\xbc\x0c\x14\x21\xe7\x83\x67\x58\x91\x55\x48\x6c\x2f\ \xcd\x04\x2a\xd1\x4e\x16\xaa\xca\xd4\x92\xe5\xf1\x83\x15\x4e\x9e\ \x78\x97\x92\x79\x9d\xbf\xfc\xe4\x7e\xca\xb3\xcb\xdc\xff\xef\xb5\ \xb1\x77\xc6\xcb\xb7\xce\xd5\x6b\x23\x64\x5a\x5c\x5c\x24\xe3\x41\ \x32\x30\xee\xfd\xe6\xb7\x3e\x3b\xf1\xdf\x7b\x9f\xf8\xf2\xad\xa5\ \x81\xc1\xc1\x12\xff\x39\xb1\x8b\xc6\xe5\xbb\xf9\xe3\x1b\xd6\xb0\ \xb6\x08\x5d\x01\x78\x42\x26\xa5\x93\x54\x85\xe9\xf9\x3a\x7d\xdd\ \x21\xf9\x40\xb0\x4e\x51\x4d\x0f\x99\x10\x01\x11\x69\x3b\x00\xa3\ \xf3\xc2\x91\x59\x78\xe0\x47\xc7\xf8\x87\xe1\xbf\x61\x4b\x38\xc5\ \x03\x7b\x27\xe3\x3d\xcf\xcc\x7d\x69\x74\x7e\xee\x09\x32\xdd\x72\ \xcb\x2d\xec\xdb\xb7\x8f\x30\x0c\x5b\x0e\x5c\x54\x2a\x5d\xd7\xb3\ \x4d\x07\xae\xd9\xbe\x9e\xb7\x16\x36\xf1\x7a\xd7\x9f\xf2\xf5\x4f\ \xaf\x61\x4b\xbf\xe2\x9c\xc3\x59\x25\x72\xae\xbd\x99\x56\x2e\x57\ \x1a\xf1\x3c\x8f\x24\xb1\xd4\xeb\x0d\xd4\x1a\xd4\xb9\xce\xb8\xb4\ \xf2\x6d\x8c\xc1\x97\x80\xf5\x25\x8f\x30\xcc\x51\x8d\x3c\x24\x27\ \x74\xe7\xd5\xcf\x79\xde\xc0\x79\x87\xd8\xf7\x58\x93\x0b\x15\x54\ \xa9\xc7\x42\x3e\x17\xd2\x9d\x27\x6d\xc6\x5a\xbb\xd2\x68\x27\x39\ \x4d\x6b\x01\xc1\x3a\x87\xb5\x06\x00\xcd\x2e\x85\xf3\x4a\x15\x23\ \x8a\x11\xf0\x82\x90\x4a\x1c\x20\x02\x5d\x39\x95\x9c\x67\xfa\xcf\ \x0b\xa0\x9a\xda\x8d\x73\x0e\x8f\x04\xd4\xe2\x00\x55\xd0\xd6\x13\ \x14\x74\xa5\xa6\x55\x0b\x8a\x22\x38\xc0\x3a\x68\x5a\x25\xe7\xc0\ \x29\xa0\xed\x4e\x01\x08\x80\x80\x28\x64\x26\xe0\x09\x18\x21\x8d\ \x46\x39\x0e\x00\xa5\x2b\x2f\xac\x0d\xfc\x4b\xb6\xf4\xaf\xfd\xfc\ \xf0\xf6\x2b\x87\xc7\x46\xdf\x7e\x53\x44\xde\x04\xb4\x0d\x00\x68\ \x38\xab\x58\x67\x31\x58\x04\x47\xe2\x20\x3d\xb6\x05\x41\xeb\xd9\ \x06\xa4\x19\x91\x41\x49\x9c\x42\x0c\x91\x03\x75\x2d\xf0\x56\x6c\ \x68\x87\x00\x8c\x90\xd6\x7a\x19\x40\x65\x29\x04\x51\x02\x2f\xe1\ \x4a\xc3\x1f\xde\x34\x38\xf8\x47\x17\x7d\xe1\x96\x42\xed\x0f\xbe\ \x72\xfa\xcd\xb7\x0e\xfe\x89\xaa\xfe\xb4\x1d\x00\x9c\x53\x4d\x33\ \x6b\x48\x52\x90\xa6\x85\xd8\x69\x0a\xd1\xee\xc0\x6a\x2e\x80\x02\ \x06\xb0\x29\xb8\xa3\x60\xc9\x1c\x10\x14\x45\x54\x40\xda\x41\x32\ \x08\x8c\xb4\xe0\x72\xa1\xcf\x72\x92\x27\x49\x1c\x4b\x93\x96\xdb\ \x7f\x7d\x57\xc9\x9b\x5f\xe0\xa7\xff\xf8\x77\xc8\x8d\x5f\xdc\x72\ \xd9\x67\x76\xde\x2e\x22\x1f\x02\x88\x12\x0b\xd6\x3a\x3c\x2c\xce\ \xb9\x14\x20\x71\x10\xa7\x00\x9d\x63\xa4\xe8\x0a\x84\x51\xb0\x4e\ \x53\xf0\xcc\x01\xb2\x12\x24\x2b\x62\x15\x07\x44\xd2\x62\x62\x07\ \x41\xe0\x53\xb5\x79\x8e\xbc\x36\x47\xd1\x6d\x67\xb0\xbb\x97\x57\ \x9f\x7a\x9a\xcb\x8a\x05\xc6\x7e\xf4\x18\x73\x52\x9f\xe0\xcf\xbf\ \x46\x3b\x00\x12\xa3\x8a\xaa\xc3\x68\x82\x5b\x71\x00\x22\x0b\xf0\ \x51\x00\x82\x66\x54\x06\x48\x14\xa2\x24\x8d\x20\xce\xad\x72\xed\ \xba\x95\xc6\x5b\x10\x59\x84\x22\x0b\x7e\xce\xe7\xe8\x48\xc2\x27\ \x26\x7b\xd9\x71\xc9\xe5\x1c\xfa\xc1\xf7\xf1\x82\x00\xd3\x68\x30\ \xd2\x6c\x1e\x68\x96\x97\xf7\xaa\x6a\x3b\x40\xe2\x9c\x4d\xac\x92\ \x3a\x20\x49\xea\x40\x23\x81\x44\x21\x76\xd9\x90\xaa\xac\x64\xbd\ \x05\xd2\x3e\x1f\xa2\xd9\x10\xc7\x8e\xb8\xd3\x0c\xb4\xb9\xa0\x20\ \x82\x00\x81\x40\x53\xa1\xd8\x98\x22\x3a\x3a\xce\x55\xd7\x5d\xcf\ \xe8\x73\xcf\xd1\x58\x5e\xa6\xd4\xd5\xc5\x81\xa9\xa9\x93\x4f\xc1\ \x5f\x5c\x09\xa7\x05\xda\x01\x2a\x51\xd4\xb4\x96\xb4\x71\x51\x97\ \x3a\x10\xb9\x2c\x42\x56\x51\xd5\xb6\x46\x5b\x0e\xb4\xe2\x93\x11\ \xa4\x35\x51\xac\x24\x4e\x70\x4e\x41\x59\x55\x22\xed\x4f\xa3\x50\ \xad\xd4\xe8\xf9\xd9\xbf\xf0\xa5\x2b\xd7\x30\x7b\xec\x18\x33\x23\ \x23\xf4\xae\x5d\xcb\x2f\xc6\xc7\xcb\xfb\xe1\xaf\x27\xe1\xc5\x2b\ \x57\xbd\x46\x51\x75\xea\x70\xd9\x10\xe3\x12\x6a\x31\xc4\x59\x8c\ \x54\x05\xa0\x03\x44\x2b\x5a\x62\x04\x8b\xac\x44\xa8\xdd\x81\x0e\ \x2e\x64\x2f\x7c\xa7\xcc\xee\x7b\x98\x6b\xea\x67\xc9\xa9\xe5\xd8\ \x0b\x07\xe8\x1d\x18\x60\x62\x72\xd2\x3d\x69\xed\x7d\xc7\xe0\xd1\ \x8e\xdb\x28\x2a\x4d\x6b\xc5\xbd\x27\xc3\x07\x0e\x58\xb0\x0a\x91\ \x13\xd0\xcc\x05\x3a\x5d\xa5\x2d\xaa\xd4\xb5\x38\x03\x50\x40\x05\ \xd0\xd6\x30\x93\x49\x5b\x20\xc6\x33\x8c\x3d\xf3\x13\x86\x0e\x3f\ \xcf\xd6\x81\xb5\x1c\x7a\xec\x31\x0a\x7d\x7d\x2c\xcd\xcf\xf3\x56\ \x18\xd4\x46\x44\xf6\xdb\x7a\x3d\xe9\x0c\x00\x4e\x95\x15\x07\x44\ \x13\xea\x09\x59\x84\x00\xed\xfc\xe9\x43\x0b\x4c\x04\x2c\x42\x9c\ \x38\xac\x6b\xcd\x4a\x5b\x91\xb4\x3b\x21\xc6\x70\xee\xed\xa3\x2c\ \xed\xfb\x0f\x3e\x37\xbc\x91\xa3\x8f\x3f\x8e\x88\x90\x34\x9a\x4c\ \x15\x2a\xac\xdf\x36\xe4\x77\x1d\xad\x16\xa9\xd7\xe9\x0c\x20\xc4\ \xd6\xa9\xb3\x99\x03\xea\xdc\x0a\x40\xe2\xda\x72\xde\xae\xd5\xe2\ \x21\x69\x84\xb0\x0a\xe8\x2a\x11\xd2\x16\xac\x88\xa1\x7e\xee\x1c\ \x67\xf7\xfe\x2b\x37\x6c\xde\xc0\xf8\x0b\x2f\x50\x7d\xef\x75\xae\ \xd4\xcd\xf1\xca\x14\xd7\xfc\xfe\x10\x63\x13\x12\x78\x47\xb3\x75\ \xa2\x73\x84\x88\x9d\x13\xd5\x6c\x95\x10\x8d\x88\x2c\x88\xb4\xe7\ \xb6\xf3\x34\x2a\xad\xa6\xc8\x1c\x00\xa1\x1d\xa0\x5d\x82\x8b\x22\ \x4e\x3e\xf2\x5d\x76\x16\x03\x6a\x63\x63\x4c\x1f\x39\x42\x71\x60\ \x80\x91\xc9\x09\xb6\x7d\x79\x90\x4b\xb6\x77\x33\x3e\xb3\xec\xe5\ \x7c\xd3\xf7\xd1\x00\x82\x53\x55\xb5\xd6\x81\x71\xa8\x6a\xea\x80\ \x53\x30\x02\x4a\x9b\x3a\x03\x09\xa4\xf6\x5b\x87\x53\x6d\xb1\x01\ \xba\x8a\x03\xa7\xf7\x7f\x8f\xad\xf3\x13\xf4\x7a\x86\xc3\xcf\x3e\ \x9b\x36\x7f\x7a\x7a\x96\x03\x97\xdf\xc8\x67\x3f\xbd\x84\x30\x4f\ \x3e\x54\x4a\x61\xb0\xe6\x7c\x0e\x34\x9d\x4b\x87\x18\x63\x12\x8c\ \x8b\x68\x26\x80\x08\x46\x04\x45\x61\x95\xcd\xb2\xb5\xc6\xb5\x9a\ \x72\x9e\xe0\xac\x43\x55\x49\x6b\x05\xd0\x16\xb0\x0a\x18\xe3\x31\ \xf5\xca\xcf\x29\x1d\x7a\x9e\x4b\x87\x06\x39\xb2\x77\x2f\x61\x4f\ \x0f\x8b\xf3\xf3\xbc\xf1\xa9\x5d\xbc\xfd\x1b\x7f\x45\xc5\x7e\x13\ \xd0\x14\x20\x30\x72\x1e\x00\xd2\xd8\x93\x02\xa8\x03\x4d\x57\x89\ \x6c\xd1\xd2\x95\x65\x0d\x01\x59\xed\x3e\xd4\x56\x84\x7c\x03\xd6\ \x29\xa4\x00\x06\xa5\x05\xad\xd9\xee\xbf\x7c\x72\x8c\xc6\xfe\xc7\ \xb8\xf1\x13\x9b\x79\x77\xdf\x3e\x9c\xb5\x58\xe7\xf8\x9f\xbe\x21\ \x96\xbf\xfa\xf7\xd8\xe9\x5e\xaa\xb1\x0f\x28\xb9\xc0\xd1\x93\xcb\ \xf7\x0b\x82\xa2\xab\x03\x54\xe2\xa8\x99\xb8\x54\x18\xb5\xf8\x44\ \x69\x84\x14\xf0\x4c\xd6\x9f\x74\x8a\x91\xb6\xef\x37\x46\x70\x1f\ \x00\x18\x50\x97\x31\x42\xea\x48\x73\x69\x91\xe9\x47\xbf\xcb\xae\ \xcd\x83\xcc\xbc\xf4\x12\xe5\x33\x67\xf0\xfb\xfa\x18\xa9\x56\x59\ \xff\x8d\x6f\x73\x62\xeb\x15\x24\x33\xd3\x54\x93\x10\x55\x47\x2e\ \x84\xc0\x68\x3f\xe0\x01\x76\x55\x00\xeb\xd4\x25\xd9\x37\x31\xa9\ \x03\x96\x38\x1b\x62\x4f\xc8\x62\xf0\xd1\xf9\x17\x01\xb2\x38\xe9\ \x07\x00\x59\x6d\xc6\x8f\xda\x84\xf1\xef\x3d\xc0\x55\x79\x81\x53\ \xa7\x99\x3e\x78\x90\xfc\xba\x75\x1c\x9f\x9a\xa6\x77\xf7\x3d\xac\ \xbf\xf9\x37\x79\x61\x0c\xac\x17\x52\x89\xf3\xa8\x2a\x81\xaf\x94\ \x42\xd3\xe7\x1b\x13\xc4\xce\xae\x0e\x00\x24\xaa\xd8\x14\x20\x75\ \x20\xa6\x91\x64\x94\x66\x95\x9b\x44\x40\xda\x71\x20\x1b\x5a\x15\ \x41\x35\xdd\xab\xda\x00\x10\xc3\xa9\x27\x1f\x67\xd3\xf4\x49\x06\ \xbb\xf2\x1c\x7b\xfa\x69\xf2\x03\x03\x8c\x4f\x4f\x93\xfc\xd6\xef\ \x72\xd9\x1d\x7f\x46\xc5\x40\xec\xc0\x9a\x80\xb2\xed\x4a\x73\xed\ \x07\x4a\x21\xa0\xc7\x33\x26\x17\x3b\xdb\xe8\x04\x60\x55\x71\xa9\ \xf5\x6a\x11\x4d\x68\xae\x44\x28\x6d\xa8\xd5\x27\xed\x42\xb5\x8d\ \x43\xb2\xa1\x77\x19\x80\xcb\x86\x76\xfa\xf5\x57\x08\x5e\x79\x96\ \x5f\xdd\x3c\xc4\xe8\xc3\x0f\xe3\x17\x0a\xcc\x2f\x2e\x32\xbb\xfd\ \x6a\x76\xec\xbe\x87\xa0\xd0\x85\x9f\x28\x56\x21\x31\x3e\xe5\xa4\ \x0b\x55\x87\xef\x43\xce\xd7\x6e\x23\x92\x07\x96\x3a\xfd\x32\x67\ \x9d\x13\x67\xb3\x08\x79\xc4\x44\x16\x14\x41\xa4\x3d\x33\x6d\x2f\ \xf5\xc3\x81\xca\x2e\xab\x15\x07\x3c\xcf\x50\x99\x38\xcd\xd2\xbe\ \x47\xb8\xee\xe2\x61\xce\xfc\xf8\xc7\xc4\xb5\x1a\x0d\xe7\x38\xd9\ \xd3\xcf\xe5\xf7\xfc\x2d\xdd\x1b\x36\x22\xce\x11\x18\xc5\xa5\x00\ \x1e\x15\x5b\x4c\x23\xed\x79\xd0\x9d\xa3\x90\xf7\xfd\x22\x40\x27\ \x80\x58\x21\x49\x23\xe4\x2c\x46\x13\xea\x16\x12\xe5\xa3\x25\x00\ \xba\xda\xa2\x96\x02\x78\xc6\x90\x54\xcb\x4c\x3c\xfa\x6f\x5c\xbb\ \x61\x1d\x95\x57\x5f\x65\xf9\x9d\x77\x90\xee\x6e\x46\x6b\x75\x36\ \x7f\xe3\x5b\x5c\xb4\x63\x27\xa2\x16\x11\x08\x04\x10\x4d\x01\x96\ \x53\x00\xc5\x78\x90\xf7\x5d\x51\x90\xe2\x79\xae\x51\xc1\x39\x9b\ \x39\x90\x10\x5b\x58\xed\xf2\x51\x80\x8e\x60\xad\xef\x8e\x38\xb6\ \xe0\x2c\xa7\xbe\xbf\x97\xcb\x25\x21\x3f\x79\x8e\x13\x07\x0e\x10\ \xac\x5b\xc7\xe8\xd4\x24\xfd\x77\xef\xe6\xd2\xdb\x6e\x07\x5c\x2b\ \x7e\x06\x04\x88\xc5\x50\x71\x45\xac\x53\xc4\x28\xc5\x50\x73\xa5\ \x30\xec\x99\xab\x57\x3b\x02\xc4\xaa\x92\x58\xab\xa0\x16\x93\xad\ \x12\x89\x03\x3c\x30\x80\x18\xc1\x08\x69\x73\x88\x64\x30\x82\xb6\ \xa0\x10\x14\xdf\x13\x02\xdf\xa0\x62\x98\x38\xf4\x32\x3d\xef\x1e\ \x63\xb8\xb7\x87\xb1\xfd\xfb\xf1\xd7\xae\xe5\xf4\xf4\x0c\xa3\xbb\ \x7e\x87\xab\xee\xf8\x3a\x67\x6c\x89\xc0\x29\xa1\x40\xce\x28\x7e\ \x1a\x3d\x68\x58\x58\xb6\xdd\x24\x56\x11\x81\x7c\xe0\x42\x23\xf4\ \x7e\xe4\x36\x0a\xa8\xaa\x23\xdb\x87\x68\x3a\x68\xaa\xc1\x7a\x86\ \x72\x0c\x4b\x4d\x61\xae\x01\xe7\xde\x3f\x75\x58\x68\x40\x39\x82\ \x5a\x4c\xfa\x46\x46\xa1\x60\x60\x6d\x0e\x66\x26\x0b\x2c\x8d\xc7\ \x6c\x9a\x3b\xce\xee\xdb\x6e\x63\x7c\xcf\xbd\x88\xef\xb3\x50\x29\ \xf3\x4c\x71\x1b\x3f\xb9\x6c\x37\x0f\xfd\xb0\x89\x49\x96\x08\x34\ \x21\x47\x44\x41\x62\x8a\x12\x31\x5d\x89\xe8\xaf\x59\x0a\xde\x74\ \xea\x40\x50\x1c\x20\x97\xab\xfb\x40\xe7\x08\x35\x93\x24\x6e\xc4\ \x9a\x58\xa7\xa8\x3a\xc4\x36\x29\x4f\x47\xec\x79\x2a\x21\x8e\x13\ \x16\xaa\x09\xd5\x66\x4c\x14\xc5\x38\x1b\xa7\x33\x12\x18\x4b\x28\ \x09\x39\x9a\xe4\x68\x90\xd3\x1a\x35\x57\x61\xa9\x79\x0e\x77\xee\ \x24\x8d\x6a\x95\x0d\x57\x6f\x65\x71\xe3\xa5\x9c\xfa\xed\x3b\x08\ \x7e\xf8\x08\xa7\x8e\xbe\xc8\xb5\x5f\xbd\x9e\xeb\x7e\xe5\x20\x79\ \x79\x91\x9c\x49\x08\x4d\x44\x20\x09\x81\xc4\xe9\x09\xdf\x3f\x46\ \xe9\xf2\x63\xfa\xf2\xbf\x47\x34\x37\x47\x1c\x3f\x97\x28\x34\x3a\ \x02\x44\xd6\x2e\x55\x1b\x66\x36\x36\xf9\x61\x13\x7a\xfc\x5a\xe1\ \x0d\xc2\xca\xb7\x29\x36\x1a\x14\xc3\x98\x52\x18\x53\x2c\x59\xf2\ \xbe\x25\xe7\xc5\xf8\x1a\x61\x92\x26\x34\xab\x24\xb5\x0a\x71\xb5\ \x4e\xb3\x52\xa7\x5e\x69\xba\xca\x72\xb3\x79\x76\xd6\x9e\x99\xcf\ \x6f\xec\xda\xb2\xe1\xfa\x4d\xe3\xe3\x33\x9c\xf2\x72\x1c\x1f\xdc\ \xbc\x68\x16\x07\x2b\x1b\x0f\x3d\x1d\x74\x1d\xf9\x99\x97\x0b\x3c\ \xe3\xf9\x9e\xe7\xa7\xc7\xf7\xfc\xc0\xf7\x82\x20\x90\x30\x0c\xc4\ \x33\x62\xac\x55\xb5\x71\xac\x0b\x53\x93\xc9\x4b\xa7\xcc\xcf\xe7\ \x6a\xb5\xd7\x3b\x02\xd4\x93\x78\x61\x6c\xa6\xb9\xff\xe8\x89\xde\ \x1d\x61\x4f\xce\xec\x1c\x78\x9b\x1d\xee\x28\x71\xa4\xd4\xeb\x96\ \xea\xbc\xa3\x5a\xb6\x5a\xa9\x38\x7b\xb6\xec\x1a\xcb\x15\x2d\x2f\ \x57\x75\x71\xb1\xa6\xb3\x95\x06\x53\x4b\x75\x7b\x76\xb9\xe9\x26\ \xca\x4d\x7b\xb6\x12\xc5\x93\x4d\x64\xf6\xa6\x2f\x5e\xf1\xcf\xdd\ \xdd\x03\x9b\x0e\x1f\x7e\x2b\x7e\xf9\xe5\xe7\xfe\xeb\x8d\x43\x2f\ \x7d\xa7\xba\x38\x77\x8a\xe3\x84\xf9\xf7\x7b\xf5\xbc\x00\x25\x04\ \x0d\x20\x7d\x86\xc5\x20\x08\x43\xcf\x84\x40\x1e\xb0\x0a\xcd\x72\ \x94\x2c\xce\x37\xea\x87\x2b\x51\x34\xdb\x11\xc0\xa1\x1c\x9c\x98\ \xfe\xa7\xf8\x49\xad\x6e\x3b\x18\xde\x58\x08\xa5\xc7\x39\xb5\x8d\ \x48\xab\xe5\x86\x9b\x5d\xaa\xdb\x89\x5a\xe4\x26\xca\x51\x72\xb6\ \x1a\xc5\x53\xf5\xc4\x9e\x6b\x24\xf1\x62\xe4\x5c\xd9\xa1\x4d\xc0\ \xd2\x12\x43\x43\x5b\x3e\xff\xc9\x4f\x6d\xbf\xe6\xb5\xd7\x5e\x3e\ \xf3\xc4\x13\x3f\xf8\xce\xe8\xe8\x91\x07\xa2\xa8\xb9\x44\xa6\xe5\ \x88\x8f\xab\xf6\x9f\xd7\xf7\xec\xd9\xc3\x83\x0f\x3e\x88\xef\xfb\ \x04\xc6\xcf\x79\x46\x42\x40\x9d\x6a\x9c\x38\x1b\x59\x55\x45\xdb\ \x57\x67\x44\x10\x3e\x2c\x55\x65\xfd\xfa\xa1\x2b\xb6\x6f\xbf\xe6\ \xee\x91\x91\x23\x7b\xcf\x9c\x39\x71\x00\x14\x10\x3e\xae\xac\xb5\ \xec\xda\xb5\x8b\x7b\xef\xbd\xb7\xfd\x0f\x8e\xbb\xee\xba\x8b\x3b\ \xef\xbc\x93\x4c\x4d\x85\x26\x1f\xef\x2d\x7f\x21\x62\xee\x76\xce\ \xaa\x88\xf0\x7f\x29\xdf\xf7\xd3\x03\x70\xe1\x9f\xfa\xff\x5f\x5d\ \x00\xb8\x00\x70\x01\xe0\x7f\x01\x6e\xa9\x93\x7a\xf5\x39\xfe\x18\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x0f\x35\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x0e\xfc\x49\x44\x41\x54\x78\x5e\xed\x98\x79\x70\x55\x65\ \x9a\xc6\x7f\xe7\x9c\xbb\x24\x37\xb9\xd9\x37\x92\x90\x18\x93\x10\ \x96\x48\xd8\x09\x22\x8b\x08\x11\xd3\x80\x8a\x2c\x3a\xed\x82\xda\ \xd3\x6a\xab\xd3\x33\xea\xf4\xd0\x5d\x6d\x4f\x4f\x4f\xd9\x5d\x6d\ \x77\x57\x97\x4d\x4d\x6b\x4f\xd9\xa3\xa3\x08\xa3\xd0\x2c\x12\x44\ \x90\x45\x16\x43\x00\x21\xec\x4b\x02\x04\xc8\x9e\x7b\x73\xf7\xfd\ \xdc\x73\xbe\xb9\x4d\x4e\x0d\x50\x4c\xb5\x50\x53\x16\x76\xd5\x3c\ \x55\x4f\x9d\xf3\xd7\xbd\xef\xef\x3c\xef\x7b\xdf\xef\x5c\x49\x08\ \xc1\x5f\xb3\x64\x6e\xad\xfe\x1f\x00\x21\x04\x86\xb9\x11\xfd\x0d\ \x54\x3f\xae\x28\xbf\x79\x31\x2b\xbb\xf9\xbb\x66\xf3\x67\xf3\xe1\ \x1e\xc0\x0a\x48\xb7\xa0\xf6\x9b\x4b\xe0\xdb\xf0\x5c\x69\x61\xd1\ \x9e\xc5\x23\x47\xbe\xf4\xb3\xa5\x4b\x47\xbd\xba\x71\xe3\xcc\x91\ \xd9\x19\xab\x07\xdb\x27\x3c\x42\xd5\x3f\xd6\x00\x26\x40\xfa\x46\ \xb6\xd0\x63\x92\x54\x37\xaa\x72\xc8\xef\x9f\x28\x2b\x49\x1f\x23\ \xfa\x49\x3e\xb3\x8b\xe2\x21\xe5\xd4\xbf\xf2\x52\xc6\xa0\xaa\xd1\ \xef\x24\x55\x4d\x6c\x34\x8d\xfc\xf9\x07\x96\x92\x05\x15\x80\xf9\ \x1b\x07\x90\x6c\x32\x3d\x39\xdd\x22\x93\x67\x76\x91\x77\x67\x29\ \xe6\x54\x0f\x2d\x9f\x6d\xe4\xc2\xdc\x17\xf9\x43\xc3\x1b\x6c\x7f\ \x6b\x5e\xf2\xd8\x05\x73\x16\x91\x76\xc7\x3b\xc8\xe6\x5c\xc0\xf2\ \x8d\x02\x90\x55\x35\x68\x8b\xbb\xc8\xac\x4a\x27\x54\x54\xca\xd1\ \xfa\x1f\x71\x62\xda\xd3\x64\xa7\x58\x28\xce\xb0\x32\x69\x90\x99\ \x67\xe7\x55\x93\x3f\x62\xdc\x64\xd3\xa0\x39\x0f\x00\x76\x40\xfe\ \xc6\x00\x1c\xb5\x8f\xd8\xb3\x3f\x35\x97\x8f\x87\x3e\xc6\xaf\x86\ \xbf\xce\x7b\xd2\x4c\xf6\x6c\x5c\xc3\xb9\x9d\x6b\x59\xf3\x5f\x2b\ \x69\xf8\xbc\x99\x9a\x0c\x95\x9f\x3d\x3a\x8e\xbc\x92\x09\xdf\x97\ \x53\x6e\x2b\x05\xac\xdf\x0c\x80\x71\x7f\x94\x1a\x87\xbd\x30\xf3\ \x9f\x47\xff\x8e\xc7\x7a\x9f\x67\x45\xdb\x20\x0e\x7c\xf6\x19\xc3\ \x93\x83\x2c\xbe\xff\x7e\xe6\xd5\x4d\xe3\xdc\xb1\xbd\x44\xbb\x0e\ \xb0\x64\x4e\x1e\x8b\xea\xa7\x0d\x91\x73\xee\x7e\x0a\x48\x07\x94\ \x5b\x0f\xa0\xab\xc9\x58\x93\xa6\x5d\x6a\x8e\xe3\x3b\x7c\x89\x1e\ \x17\x04\xfc\x1e\x0a\xf2\x8b\xe8\xe8\x74\x93\x9d\x53\xc0\xb3\x7f\ \xfb\x34\x87\x0e\x1d\xe1\x8b\x3d\x8d\x3c\xff\xe8\x24\x86\x0d\x9f\ \xf0\x98\x29\x7b\xe2\x68\xc0\x76\xcb\x01\x64\x49\xa8\x72\x24\xd2\ \xcf\x85\x0b\x70\xb1\x95\xf4\x90\x8b\x7c\x2d\x48\x47\x57\x0f\xfd\ \x2e\x1f\x9d\x9d\x7d\x09\x3e\x2b\x4b\x9e\x5c\x42\xf3\xe1\x66\x22\ \xfe\xf3\xbc\xfc\x9d\x39\x69\x49\x39\x13\x9e\x03\xb2\x00\xf3\x2d\ \x05\xd0\x0f\x3e\xa7\x4a\x51\xd7\x3b\x92\x25\x42\x65\x5e\x94\x07\ \x94\x3e\x06\xc5\xad\x9c\x3c\x73\x86\x68\x34\x8a\xd3\xe9\xc3\xe3\ \x09\x60\xb3\xd9\x98\x3b\x67\x2e\x1b\x36\xac\xe2\xae\xd1\x39\xcc\ \x98\x3a\x6d\x96\x39\x77\xda\x9d\x40\x0a\x20\xdd\xd2\x21\x16\x7d\ \x3b\x97\x9b\x0a\xf4\x96\xe2\x64\x8d\xb8\x2b\x80\x39\xa9\x94\xf6\ \x0e\x27\xbd\xbd\x9d\x78\xbd\x41\xfa\xfa\xbc\xc4\xe3\x1a\xa5\xb7\ \x95\x30\x7c\x44\x35\x3b\xb6\xae\x62\xc9\x43\x93\x93\x32\x06\xd5\ \xbe\x2c\x49\xa6\x5c\xc0\x72\x4b\x01\xf4\x9e\x2d\x1e\x3d\xd2\xf3\ \xda\x59\x4f\xaf\xe8\x77\xfb\x49\x32\xe7\xa1\xc6\x0b\xb9\x74\xe9\ \x2c\x1e\x8f\x0f\x97\xeb\xcf\xf6\x03\x70\xef\xbd\xb3\xe8\x73\x74\ \x61\x57\x7a\x78\xe4\xc1\xfa\xb1\xd6\xe2\xf9\x8f\x03\x69\x80\x7c\ \xcb\x00\x00\x4d\x3b\xf5\xcb\x55\x7d\x21\xc7\xb6\x76\xaf\x93\x70\ \x20\x4c\x8a\x6d\x04\xe7\xce\x9d\xc5\xeb\x75\x25\x1c\xc4\xe1\xf0\ \x12\x89\xc4\x48\x4a\xb2\x24\x20\x66\x73\xe4\xc8\x1e\x1e\x9e\x33\ \x86\x82\xb2\x71\x4f\xa5\xd9\xf2\xcb\x80\x24\xbd\x12\x93\x5a\x4e\ \xa6\x77\x28\x63\xbc\xa3\x52\x1f\x70\x54\x5b\xe6\xee\x2e\xa1\x08\ \x50\xbe\x6e\x00\x80\x68\xd4\x7f\x76\xe9\x05\x5f\x9f\xc7\xd9\xdf\ \x4f\xaa\xad\x82\x96\xd6\xfe\x44\x0a\x2d\x78\x3c\x6e\xdc\xee\xc0\ \x65\x08\x21\x60\xf4\xe8\x91\x98\xcd\x32\x5e\xe7\x31\x9e\x7d\xf2\ \xa1\xc2\xfa\xc1\x35\x6f\xb9\x66\x94\xae\x88\xcd\xbc\x6f\x1f\xdf\ \x7f\xa9\x35\xe5\xe7\xaf\x35\xd9\x97\xbd\xb4\x36\xfb\x0f\xbf\xfa\ \x78\xc2\xec\xba\xfd\x33\x2c\xcc\x07\x6c\x80\xfc\xb5\x9e\x46\x01\ \x0b\x23\xfe\xe5\xb7\x23\xa6\xac\x10\x4f\x3e\x7e\x50\xdc\x57\xff\ \x5b\xb1\x60\xe1\xc3\xe2\xcd\x37\x3f\x14\x9f\x7c\xd2\x24\x0e\x1d\ \x6a\x15\x81\x40\x58\xfc\x59\xfb\x9a\x0e\x89\x1f\xff\xf8\xa7\xa2\ \xe5\xbc\x10\x8b\x9f\x7c\x57\xb4\x7c\xf1\x92\x10\xde\xef\x0a\xe1\ \x79\x58\x88\xde\xe9\x42\xb4\x8f\x14\xc2\x31\x5b\x88\x4b\x9b\xc4\ \x6f\x6e\xcf\xdc\x0b\xdc\x0e\x24\x7d\x6d\xa7\x51\x31\x1c\xb9\xaf\ \x82\x8c\x5f\x85\x57\x34\xeb\xbe\x73\xb1\x0b\x0e\x07\x45\x85\x53\ \xe9\xe8\x80\xd6\xd6\xc3\xb8\xdd\x6e\xa3\x95\x3c\xe8\xba\xa0\x66\ \x54\x35\x56\x6b\x12\x8e\xae\x23\x3c\xf8\x60\x3d\x6f\xad\x6b\x43\ \xf8\x1a\xc0\xb5\x0f\x7c\xdd\x10\x8e\x43\x7f\x2b\x64\xb7\x33\xaf\ \x7e\x76\xcd\x44\x99\x45\x2b\x0b\x18\xdf\x57\xce\x28\x77\x39\x35\ \xff\xe3\x0a\x6a\x7a\xcb\x29\x37\xd2\x91\xb8\x4a\xa6\xbf\x50\xac\ \x35\xa2\x52\x88\x42\x85\x96\x92\x51\xa9\x64\x0d\xaa\x52\x07\x97\ \x8c\xcf\x29\xce\x1c\xf6\x72\x85\x3d\xb9\xc0\x1d\x35\xff\xe0\xfd\ \x0e\x0a\x33\x32\x28\x2a\x9e\xcf\xe1\x23\xcb\x29\x29\x19\x42\x4a\ \x4a\x0a\x4e\x67\x32\x69\x69\x29\x64\x65\xd9\x19\x37\x6e\x1c\xbb\ \x76\x6f\xe6\xd9\xef\xfd\x80\xd5\xeb\x17\xb3\x75\x77\x07\xb3\xa6\ \x7b\x20\x68\x02\x64\x10\x16\xf0\x6f\xa1\x6c\x5a\x6d\xf2\xea\x93\ \x3b\x5e\x2b\x7c\xa8\x26\x2e\xe9\x3a\x48\x02\x84\x00\x74\x00\x88\ \xc9\x9a\x7f\xc7\xd1\x3d\x4f\xec\x74\xbc\xb2\xc6\xcf\x69\x20\x06\ \x70\xcd\x3b\xb1\x36\x5a\xb2\xe9\x92\xb2\x98\xc1\xd5\xd3\xa5\x92\ \x41\x13\x95\xa2\x82\xc1\x52\x45\x9a\x8d\x11\x69\x50\x6c\x01\xeb\ \x25\xb0\x9c\x02\x7a\x88\x85\x82\xcc\x7f\xfe\x21\xfa\xdb\xea\x19\ \x39\xa4\x84\xd3\x2d\xef\x52\x32\xb8\x9f\x59\xb3\x1e\xa2\xa8\xa8\ \x90\xe2\xe2\x5c\x2a\x2a\x8a\xe8\xef\xf7\xf0\xeb\x5f\xff\x9a\x57\ \x5f\xfd\x09\x3b\x9b\x22\xac\x58\xfe\x13\xfe\xfd\x07\x5b\x49\x4d\ \x96\x41\x55\x40\x48\x20\x03\xf2\x0b\x74\xff\xeb\x32\x4c\x3f\x14\ \xe4\x16\xa7\x80\x0a\x08\x19\x74\x09\x74\x1d\x92\xf3\xe1\x74\x31\ \xff\x34\xf7\xcd\x95\xaf\xf7\x6a\x2f\x03\x4e\x21\x84\x2a\x73\x95\ \xce\xc6\x6d\x6f\x98\x7f\xb9\xec\x3f\xcc\x1f\xde\xf9\xb8\x69\x59\ \xb0\x4a\x5a\xda\x68\x13\x0b\xb6\x11\xab\xfc\x9c\x10\xdb\xf0\xf9\ \x5b\xf0\x39\x74\xe2\x9e\x10\x16\x93\x8f\x9f\x3e\xb3\x1d\x67\xec\ \x1c\x0e\x87\x8b\xca\xca\x05\x9c\x38\xe9\xe6\xf0\xe1\x2f\x08\x06\ \x43\x89\xc2\x7d\x38\x9d\x5e\xf2\xf2\xb2\xc8\xce\xce\xa5\xb5\xf5\ \x04\x75\xd3\x33\xc8\x1d\xbc\x90\x15\x9b\x0a\xc1\xaa\x03\xd2\x00\ \x40\x2c\x06\x39\x1d\xa4\xd5\xdc\x8f\xef\xc3\x56\x84\xcf\x05\x2e\ \xf7\x80\xdd\x9e\x84\xbd\xe0\xec\x84\xac\x24\xcc\x16\xa5\x08\xc8\ \x03\xac\xd7\xed\x81\x1e\xcd\x54\xc6\x88\x4a\x48\x7a\x17\x44\x23\ \x9a\x3a\x8c\x48\xa0\x8e\x88\x6f\x1a\xe1\xd0\x64\xc2\xe1\x5a\x7c\ \x81\xc9\xf4\xf6\xcf\xa6\xab\xe3\x3e\x4a\xf2\x2b\xa8\xa9\xbe\xc8\ \xd9\xee\x1e\xd0\xac\xd4\x8c\xfa\x1e\xdb\x77\xec\xe3\xec\xd9\xe3\ \x44\xa3\xda\xe5\x0d\x2d\x04\x14\x14\xe4\x71\xfe\x7c\x1b\x16\x33\ \x3c\xb1\x78\x12\x8d\x67\xa6\xe2\xee\x56\x40\x11\x20\x64\xc0\x0a\ \xae\xfd\xd8\xa6\xd5\xa0\x1c\xb6\x11\xf6\x09\x90\x4d\x20\x94\x2b\ \xc6\x04\x71\x9d\xb8\x86\x04\xd8\x00\xd3\x75\x00\xbf\x6b\xf5\xad\ \x64\xe5\x36\xe0\x69\xd0\xed\xe8\xda\x1d\x40\x1a\x12\x1a\x12\x31\ \x24\x29\x86\x9c\x70\x5c\x4f\x49\x00\xe5\x13\x0c\x15\xf0\xd4\x3c\ \x2f\x9a\xb5\x8d\x8e\x9e\x5e\x52\x6d\xc5\x8c\x1c\xf5\x22\xab\x56\ \xaf\x67\xff\xbe\x44\x6a\x21\x95\x48\x04\x34\x2d\x4e\x44\x95\x00\ \xa8\xae\x32\x31\xb4\x7a\x1e\xcb\x56\x95\x81\xa2\x5f\x19\x45\x7f\ \x27\x52\x69\x1f\xa9\x65\x75\x78\x8f\x78\x41\x91\x07\xe0\x84\x64\ \x5c\x65\xb8\x32\x11\x12\xc0\x75\x00\x5b\xe2\x34\xb4\x7c\xbc\xb6\ \x8b\xe0\x4c\x90\x47\x00\x80\xd0\x00\x8c\xb8\x07\x2c\x21\x90\x64\ \x0d\x55\x15\x0c\xbf\x2d\xc6\xb7\xa6\x77\x70\xd1\xd9\x83\xab\xdf\ \x4d\x6e\x4e\x35\xd5\xa3\x5f\xe0\xa3\x35\x9f\xf2\xf6\xdb\xbf\xe3\ \x0f\x6f\xfd\x1b\x3b\x77\x35\x52\x55\x3d\x89\xb8\x0e\x16\x0b\x2c\ \x7a\xa0\x86\xe3\x5d\x75\x89\xc1\x4f\x01\x8b\x91\x82\x50\x20\x7c\ \x00\xfb\xcc\xfb\xf0\xed\x8d\xa3\x6a\xc6\xf7\xe9\x97\x6d\x40\x30\ \x60\x10\xff\x2b\x40\x00\x9c\x6f\x1f\x3a\xb3\x92\xcd\xe7\x41\xaa\ \x37\xf8\xc4\xf5\xe7\x30\x01\x88\xcb\x18\x44\x63\x32\x0b\x67\x78\ \xc9\xcd\xbf\x40\xb7\xc3\x8b\xc7\xe5\x49\x40\x0c\xa3\xfe\xc1\xd7\ \xe9\x0f\xe6\xd1\xb0\xf5\x00\x77\xdc\x39\x9f\xf4\x9c\x42\xbc\x01\ \x00\x28\x29\x96\xf8\xd6\x9c\xfb\x79\x73\x7d\x25\x42\x05\x24\x40\ \xb2\x80\xfb\x14\xd6\x61\x32\x96\x4b\x85\x78\x2f\x86\x41\xb9\xaa\ \x85\xf4\x01\x20\x21\xfe\xf2\x26\xd6\xd6\x06\xf8\x53\x70\xfd\x27\ \x2a\xfa\x50\x90\x54\xc0\x20\x37\x9e\xfe\xb5\x69\x40\x3c\x2e\x91\ \x69\x17\xdc\x7b\x57\x37\xed\xee\x76\xfc\xfe\x30\x3e\xb7\x1f\x59\ \xb7\x31\xf5\x9e\x67\x79\xf4\x99\x37\x18\x31\xf6\x5e\x3c\x7e\xf0\ \x87\x21\x1c\x03\x93\x02\xb3\x67\x0c\xc6\x94\x31\x87\xbd\x07\x6d\ \x60\xd1\x07\x8a\x54\x55\xb0\x9e\x24\xbd\xbc\x16\xef\x6e\x97\xd1\ \x46\xd2\x55\x06\xfd\x2b\x00\x38\x0b\x5f\xae\xdc\xbe\x67\x0b\xe7\ \xf3\xc0\x5c\x00\x42\xbf\xaa\x70\x0c\x10\xae\x80\x20\x11\x8e\x2a\ \xd4\x4d\x08\x52\x71\xfb\x59\x2e\xf5\xf4\x12\xf2\x47\xf0\x7b\x42\ \xf8\x5c\x41\xa2\x41\x1d\xbf\x37\x46\x82\xeb\xb2\x3d\x01\xd0\x04\ \xe4\xe5\xc0\x82\x87\xea\xf9\xe3\xe6\x1a\x02\x1e\x19\x64\x01\x58\ \xc0\x73\x9c\xf4\x85\x33\x89\x1d\xb2\xe2\x77\x19\x0f\xd0\x68\x21\ \x00\xbe\x0a\x00\x88\x2f\xef\x8a\x2c\xd7\xb7\xee\xc2\x24\x57\x22\ \x84\x0e\xd2\xd5\x09\x5c\x65\x03\x44\xd7\x25\x6c\x49\x82\x45\xb3\ \xfa\x70\x87\x2f\xe0\xf6\x04\x09\x07\x55\x42\xbe\x28\x7e\x6f\x98\ \xa0\x2f\x42\x30\xac\x13\x8c\x42\x20\x02\xa1\x84\x25\x09\x26\x8e\ \xb5\x93\x7d\xdb\x1c\xd6\xef\xc8\x00\xb3\x00\x4c\x10\x70\xa0\x94\ \x6b\xa4\xa5\x8e\xc1\x73\xd0\x05\x66\x05\x84\x6c\x18\xc4\x0d\x00\ \x88\xfd\x3a\xdb\x8e\xbd\xf7\x6e\xbb\xe4\x06\xd9\x14\x42\xe8\xe6\ \x6b\xfb\x1f\xae\x6b\xa5\x48\x54\xa1\xa6\x32\xca\x94\x71\x6d\x74\ \x3a\x7a\x2e\x17\x1d\x0a\x44\x09\x25\xae\x41\x6f\x84\x80\x37\x01\ \x13\x1e\x00\xf0\x27\x0c\x60\x92\x60\x42\xcd\x18\xd6\x37\x8d\xc0\ \xe3\x30\x81\x0c\xe8\x32\x78\xf7\x90\x71\xdf\x4c\x42\xfb\x22\xe8\ \x9a\x74\xd3\x00\x84\xa1\x7f\x6d\x73\xeb\xa7\x34\x76\x63\x49\xf1\ \xa3\xd0\x81\x10\x56\x23\xc6\x2b\x69\x5c\x0b\x02\xe8\x32\xf3\xa6\ \xba\x89\xcb\x2d\x38\x5c\x5e\x42\xfe\x68\x02\x24\x46\xa2\xf8\x84\ \x13\x10\x41\x8d\x70\x1c\xbc\x1e\xc1\xd6\x6d\x2e\x7e\xf1\xc6\x49\ \x96\x35\x5c\xe4\x54\x4f\x06\xf1\x28\x80\x34\x30\xcc\xce\x53\xa4\ \x4c\x2b\x45\x8a\x56\xe0\x6a\x0f\x82\x6c\x0c\x31\xd2\x8d\x01\x00\ \xfa\xf2\x08\xef\x38\x56\x6e\x88\xc8\x6a\x39\xc9\x96\x35\x58\x94\ \x36\x84\x30\x27\xac\x60\xe8\xba\xc1\x56\xe3\x12\x85\x39\x1a\x93\ \x47\xb5\xd3\xd9\xdf\x4e\x20\x01\x10\x0e\xc4\x2e\xb7\x52\xc8\x1f\ \x43\x4d\xdc\x77\xb5\xfa\xf8\x68\xf5\x69\xd6\xed\x6e\x21\xb5\x58\ \x67\x74\x5d\x15\x4a\x65\x2d\xd1\xb0\x74\xa5\x24\x35\x0e\x9c\x22\ \xad\x7c\x02\xce\x5d\xce\xab\x86\x99\x1b\x06\xe0\x1c\x1c\x6c\xd8\ \xb4\x69\x0f\x87\x73\x90\x93\xd3\x48\x35\x37\x60\xb7\x36\x21\x4b\ \x2a\xba\x6e\x06\xfd\xba\x5f\x24\x03\x42\x66\xde\x14\x1f\xd9\x59\ \xa7\xe8\xea\x73\x10\x4c\x40\x44\x82\x2a\x22\x18\xe5\xe8\xfe\xf3\ \x2c\xdf\x7a\x92\x6e\x1b\xcc\x9e\x57\xce\x92\xb9\x95\xfc\xc3\xec\ \x74\x46\xcd\xb8\x87\xd5\x27\x6a\x40\x52\x41\x18\x29\x38\x0e\x90\ \x39\x79\x08\xea\xde\x38\x21\x9f\x06\xd2\x8d\x0f\xb1\x21\xd4\x95\ \xae\xe8\x07\xb1\xed\x97\xc0\x32\x0f\x89\x08\x36\xcb\x61\x72\x52\ \x36\x93\x6a\xbd\x88\x40\x42\xd7\x2d\x09\x2b\x08\x71\x65\xa8\xb5\ \xb8\x84\xdd\x26\xa8\xbf\xb3\x07\x77\xa0\x8d\x60\x30\x86\x1e\x53\ \x69\x3c\x76\x89\x0d\xed\x21\xcc\x95\x25\x0c\xb9\xe3\x36\x32\x73\ \xb3\xb1\x24\x59\x29\xcd\x82\x05\xb5\x0a\x7b\x7d\xf7\x10\xee\x17\ \x20\x63\x6c\x66\x37\xd6\xe1\x66\x6c\x79\x63\xe9\x69\x76\x82\xa2\ \xdc\x5c\x02\x80\xd8\x0e\x6b\xf7\xac\xdb\xd8\x42\x60\x3a\xc8\x29\ \xa0\x9b\x31\x2b\x6e\x72\x52\x1b\x29\xcc\xd8\x43\xb6\xbd\x95\x14\ \xab\x1b\xb3\xa2\xa2\xeb\x32\x30\x00\x12\x55\x65\xc6\x0f\x0f\x33\ \xb4\xac\x95\xf6\xee\x4b\x34\x1d\x3f\xce\x41\x0f\xa4\x96\x54\x91\ \x9a\x99\x4b\x94\x24\x9c\x11\x99\xbe\x10\xe8\x02\xa6\x94\x41\x56\ \xe5\x34\xfe\xb3\xb1\x1c\x94\xb8\xb1\x81\x65\x88\xb4\x92\x33\x67\ \x36\xfe\x2d\xfd\x68\x9a\x31\x03\x88\x1b\x06\x40\x03\xff\xba\x83\ \x87\x37\xb2\xc5\x01\xa9\xb5\x20\xd4\xcb\x10\x08\x85\x64\x8b\x83\ \xbc\xb4\xe3\x94\xe5\x7d\x49\x55\xd1\x7e\x72\xec\x7d\x68\x9a\xe9\ \x72\x1a\x42\x97\x90\x25\x99\xb9\x53\xfa\x48\x49\xda\x41\x4f\xf7\ \x51\xec\xb2\x8c\xac\xd9\xf0\x85\xcd\xb8\x82\x12\x7d\x7e\xe8\x09\ \x80\x2f\x06\xe9\x56\x58\x34\x23\x93\x4d\xbe\x85\xb8\x7b\x74\x90\ \x8d\xcd\xdc\x7d\x0a\xfb\x84\x5c\x4c\xbe\x02\x7c\xed\x01\x50\x64\ \x74\x9d\x1b\x07\x00\xf4\xad\x2a\xeb\x1d\x1f\x6d\xd1\x91\x1e\x00\ \xc4\x55\x5b\xd9\x04\xba\x09\x49\x80\x49\x56\xb9\x2d\xbf\x95\xa2\ \xac\x2e\x40\xba\x9c\x46\x4c\x95\xc9\xcf\x8a\xf3\xf7\xdf\xee\xe2\ \xe9\xfb\xce\x20\x3b\x0e\x13\x71\xfa\xf0\x79\xc1\x1d\x80\xfe\x20\ \xf4\x25\xec\x0c\x83\xaa\x43\xed\x60\x28\xbf\x63\x0a\x1f\x34\x66\ \x83\xa2\x0d\xa4\x10\x0d\x21\x9b\xdb\xc8\x9e\x3d\x17\xc7\x3e\xa7\ \xb1\x8f\x6e\x0e\x80\x53\xd0\xb4\x76\xcb\xe6\xcf\x39\x6a\x87\xe4\ \x52\x10\xda\xb5\xa7\x44\x24\xd0\x15\x24\x21\x51\x9a\x7f\x89\xe1\ \xc5\x6d\x58\x4d\x71\x84\x2e\xa3\xaa\x0a\xe8\x32\xa3\x87\x85\xb8\ \xbb\x62\x17\xd1\x8b\x47\x08\xb9\xe2\x97\x01\x5c\x41\x70\x18\x10\ \x9e\x28\x24\x29\xb0\x60\x7a\x16\xcd\xb1\x69\xa8\xde\x08\x24\xdb\ \x20\x73\x10\x98\x6d\x98\x52\x53\x71\x74\xc5\x20\x2e\x00\xe9\xe6\ \x00\x80\xd8\x07\xee\xe0\xfb\xc1\x95\x9f\x43\xd2\x44\x10\xea\xb5\ \xe7\x13\xdd\x58\x32\xba\x02\x9a\x4c\x76\x9a\x97\xb1\xe5\x6d\x8c\ \x2c\xeb\x22\x33\x35\x42\x54\x55\x12\x36\x33\x71\xb8\x83\xfc\xd8\ \xa7\x84\x3a\x7b\xf0\x7b\xc1\x13\x34\x20\x42\xe0\x8e\x80\x06\x4c\ \x28\x01\x7b\xc9\x04\xce\x47\x66\xe1\xef\x1e\x43\xe7\xd6\x4c\xce\ \xfc\xa2\x89\x63\x9b\xdf\x25\x7f\x46\xb1\x71\x98\x13\x37\x0d\x20\ \xf6\xc3\xa6\xa6\x8f\xb7\xb6\xe1\xa9\x05\x93\x0d\x84\x00\xfd\xda\ \x1d\x00\x92\x01\x22\x93\x64\x89\x91\x9f\xe9\x65\x5c\x45\x27\x43\ \x8b\x9d\xc8\x44\xb1\xd8\x14\xea\xc6\x9c\x40\xe9\xdb\x4d\xa0\x37\ \x86\xcb\x3f\x00\xe0\x4c\xb8\x3f\x0a\xe7\x9d\x3a\x0d\x9f\x1d\xe3\ \x74\xf3\x21\x36\xfc\x7e\x03\x9d\x8d\x1f\xe1\x09\x6c\x47\xa9\x3a\ \xcd\xc8\x67\x06\x53\x51\x99\x05\x9a\xb8\xee\x30\x67\xe2\x06\x14\ \x01\xc7\x1f\x5b\x5b\xdf\xbf\x7b\x9f\xf2\x13\x79\xe6\x04\xe8\x6b\ \x04\x6c\xc6\xf6\x15\x46\x5b\xe9\x20\x19\x11\x9b\x52\x13\xce\xc0\ \x9c\x91\xcb\xb0\xac\x0c\xf2\xd2\xd2\x69\xfa\xc2\x47\x2e\x21\x86\ \xf8\xd7\x71\xf4\x4c\x19\xb6\xbc\x5a\xfa\xed\xe0\x08\xc0\xa6\x9d\ \xad\x9c\xdc\xde\x40\x41\x72\x88\x39\x63\xcb\xb9\x9d\x22\x86\xde\ \x15\x80\x98\x15\x34\x19\x62\x3a\xa8\x3a\x24\x2b\xc8\xc6\x88\xdf\ \x14\x00\xa0\x7f\xae\xb3\xae\xfd\x83\x86\xa5\xa5\xf5\x77\x5b\x50\ \x76\x80\x26\x81\xd9\x0e\xd6\x0c\x90\xed\x10\x4d\x87\x58\x36\x44\ \xd2\x88\xf4\x26\x13\x71\xda\x89\xb8\x34\x02\xdd\x1d\x44\x7b\x4e\ \x90\x2f\x5c\x68\x85\xe9\x4c\x9d\x1e\xc1\x7f\xf2\x23\x3a\xcf\x55\ \x62\x32\x65\xd2\xba\x7d\x1d\x7a\xcb\x26\xbe\xf3\x48\x1d\x4b\x9e\ \x5a\xc8\x97\x07\x4e\x93\xd2\xb9\x01\xcc\x49\x20\x19\x2f\xfd\x16\ \x01\xe9\x99\x70\xd2\x83\x27\xa6\xc5\x00\x71\xb3\x00\x74\xc3\xb1\ \x95\x6b\xd6\x6d\x59\xba\x6a\xd2\x1c\xea\x7e\x08\xd1\x30\x38\xad\ \x78\x9b\xfb\xf0\x9c\xe8\xa7\xbb\xad\x4f\xef\x3d\x7f\x40\x04\x3b\ \x1c\x42\x8e\xc7\x31\xa7\x98\xb1\xa6\xd9\xb0\xe7\xa6\x91\x94\x93\ \x9a\xb8\x4f\xa3\xfc\x02\x14\x07\x25\x52\x2f\x6e\x62\xf9\x09\x97\ \x7c\xe0\xd0\x10\x79\x52\xf6\x69\x1e\x7b\x6a\x01\x93\x26\x4f\x02\ \xe0\x68\xe3\x41\xca\x76\xb7\xc5\xf5\x54\x13\x42\x12\x80\x40\x42\ \x10\x0c\xb5\xaa\xef\x6d\x3d\xd9\xba\x56\xd5\x3f\x05\x22\x80\x76\ \x53\x00\x80\xf6\xd3\x58\xec\xef\x76\x3e\xfa\xca\xd9\xf1\x55\x23\ \xa7\xfa\x62\x31\xf9\x44\x67\x47\xcf\x85\x90\xaf\xab\x17\xe1\x08\ \x81\x5f\x87\x88\x34\x10\xba\x90\x9d\x00\x20\xb8\xf6\x2a\x19\x27\ \x7c\xc1\xe9\xe4\xec\x82\xb1\x0b\x0b\x86\xd5\x8f\x89\x69\x92\x0c\ \x02\x80\xed\x4d\xcd\xdd\x1f\xfe\x69\xef\xef\x81\x90\x51\xa4\x00\ \x24\x01\xaa\x06\x3d\x40\x37\xe0\x00\xa2\xd7\xfd\x2f\x24\x49\x12\ \x5f\x21\x33\x90\x09\xe4\x01\x69\x46\x3d\x2a\x10\x31\xae\x71\x40\ \x07\x04\x37\x20\x49\x92\x93\x8b\x8a\x6a\xa7\xe4\xe4\x14\xd4\x8e\ \x1f\x3f\x66\x54\x51\x51\x41\xf6\xfb\xef\xaf\x68\x38\x77\x6e\xfb\ \x7a\xa0\x13\x08\x72\x45\x02\x88\x1b\x60\x01\x20\x26\x12\xba\x59\ \x00\x23\x35\x2c\x86\x25\x40\xc3\x28\xdc\xb0\x30\x7c\xa3\x9f\x95\ \x02\x64\x00\x69\xc6\xbd\x00\x1c\xc6\x93\x0e\x73\xad\xc4\xd5\x0f\ \x48\x08\x81\x89\x9b\x57\xdc\x70\x88\xff\xbb\xe2\x46\x2b\xf8\x01\ \x8b\x91\x30\x40\xd4\x48\x55\xe7\x2b\x64\x24\xf0\xd7\xab\xff\x06\ \x50\x1c\x59\xce\xc5\x04\x3a\xad\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x11\x1e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x10\xe5\x49\x44\x41\x54\x78\x5e\xed\x9a\x69\x70\x1c\xe5\ \x99\xc7\x7f\x6f\x77\xcf\x8c\x46\xd2\xe8\xb0\x64\xc9\xb2\x24\x5b\ \x36\x92\x0f\x6c\x83\x8d\xb1\xb1\x31\x10\x07\x63\xc0\xe6\x08\xc7\ \x02\xae\x04\x42\x20\x81\x9c\x40\xb2\x49\xc8\x86\xec\x92\x90\x64\ \xa9\x4d\xd8\x1c\x64\x37\x07\x9b\x84\xa3\xc8\x26\x81\x70\x65\xb3\ \x86\x25\x10\xc2\xe1\x14\xa7\x6d\x9c\xd8\x18\x5f\x18\xdb\xb2\xe4\ \x4b\x23\x8d\xe6\xe8\xeb\x3d\x56\x9a\x6e\x76\x56\xe5\x52\x12\x36\ \x7b\x54\xaa\xf6\xa9\xfa\xd5\xf3\xf6\x5b\xaa\xae\xe7\xff\x5c\xd3\ \x1f\x24\x8c\x31\xfc\x39\x9b\xc5\x9f\xb9\x39\x00\x42\x08\xc6\x1a\ \xd4\x26\x05\x5f\xbf\xa0\x15\x5f\x3b\x04\x23\x48\x63\x11\x4a\x53\ \xeb\x7b\xde\x85\x08\x71\x61\xaa\xba\xe6\xf8\x44\x2a\xd5\xac\x95\ \xf6\x7d\xb7\xb4\x5b\x86\xe1\xd3\x96\x6d\x3f\x70\xd7\x0b\x87\x5e\ \xde\x37\xe8\x91\x72\x2c\x7c\xa9\xf9\x9f\x34\x63\x0c\x0e\x47\x59\ \x24\xe8\x6f\xcf\xaa\xa3\x62\x20\xbd\xe2\x7b\xd3\x99\xfa\x4f\xcd\ \x5d\xb6\x7c\xde\x31\xc7\x2f\xa2\x79\x52\x1b\xa9\xa4\x8d\x0a\x8b\ \xe4\xb3\x07\x27\xf6\xed\xda\xbe\x78\xc7\xab\x1b\x3f\xba\xe2\x48\ \x61\xed\xda\x2d\xc1\x17\x07\x5c\xb3\xe5\x7f\xad\x02\x15\xa0\x3a\ \x69\xf1\xfe\x25\xcd\xb4\xd4\x84\xe4\x35\x18\xa3\x53\xda\xcf\xff\ \xe0\xb8\x65\x67\x5e\xbe\xec\xdd\xd7\xd3\xd8\x35\x13\x8c\x82\xa0\ \x08\xe1\x08\xca\xa5\xb9\xb3\x9d\x69\xc7\x1d\xcb\xc9\x67\x9c\x52\ \x73\xea\x86\x97\x2e\x5d\xf4\xd0\xda\x55\xff\xf4\xe4\xee\xeb\x37\ \x1d\x94\x77\x33\xd6\xa8\xb1\x60\x34\x37\xc7\x57\x57\xee\x36\x95\ \x60\xab\x0b\x7b\x03\x28\x9a\x3f\x61\x06\x92\x8e\xe0\xfa\x53\x27\ \x70\xd6\x54\x17\xa9\x01\x63\x1c\x2b\x74\x7f\xba\x7c\xcd\xb5\x97\ \x9f\xfb\x99\xdb\x69\xec\x9a\x0b\xa1\x05\xa1\x00\x65\x83\xb1\x40\ \x01\xa1\x06\x37\x40\x58\x0e\xc7\x9c\xb4\x98\x2b\xae\xbf\x3a\x73\ \xd3\x45\x33\xef\x3a\xbe\xc5\xbe\x86\xd8\x3a\x80\x9f\x34\xc0\xa6\ \x0e\x78\x70\x06\xdc\xdc\x11\x13\x3f\x6f\xe8\x86\x17\x3b\x60\xa2\ \x00\xe7\xbf\x2a\x60\xcd\xfc\x1a\x16\xb6\xdb\xa0\x7c\x40\x80\x5f\ \xb8\x79\xd1\xea\x4b\x2f\x38\x71\xcd\x75\xa0\x0c\x48\x03\x4e\x0d\ \xd8\x29\xb0\x1c\xc0\x06\x61\x01\x56\xe4\xb5\x01\xd7\x23\x33\xb1\ \x85\xb3\xaf\x5c\xc3\x27\xce\x6e\xff\xd6\xc4\x6a\x96\x02\x5c\x0d\ \x2c\x4f\xc2\xd4\x04\xa0\x8e\xc6\x06\xa6\x3a\xd0\x28\x60\xba\x80\ \xe4\xdb\x15\xd0\x51\x6f\xb3\xaa\x27\x81\x96\x01\x06\x01\xca\x9f\ \xd1\xd1\xdd\x7d\xe3\x89\x17\x7f\x00\xfc\x12\xa8\x10\x8c\x02\x1d\ \x80\x56\x60\x34\x60\xc6\x12\x9b\xf4\x7d\x6a\x9a\x5a\x58\xf1\xae\ \x95\x55\x6b\xe6\x25\xff\x0e\x48\x6a\xa0\x64\x20\x18\xa7\x45\x34\ \x10\x98\xc8\xdb\x40\x95\x78\x9b\x02\x56\xcd\x48\x30\xa1\x4a\xe3\ \x08\x09\x40\x4a\x04\x1f\x9e\x77\xc6\x45\x29\x2b\x9d\x86\xd0\x8d\ \xaa\x22\x4b\x20\xf3\xa0\x4a\xa0\x7d\xd0\x21\x68\x09\x46\x45\xa0\ \x30\x46\x63\x80\xd0\xf7\x98\xd0\x33\x9b\xf3\x96\x75\x9d\xd6\x56\ \xcd\x3b\x0c\x80\x88\x33\x16\xd0\x66\x8a\x9c\xa2\x0b\x9c\x3f\xc2\ \x39\xa6\xc4\x89\x42\x51\x8f\x00\x9f\x38\x1d\x6f\x67\x88\xd3\x09\ \x58\xdc\x0e\x42\x07\x54\x59\x60\x94\x4e\x36\x36\x37\xad\x9e\x34\ \x73\x1e\xb8\x39\x10\x29\x40\x44\x41\x0a\x0b\x8c\x8e\x2a\xa1\xfc\ \xc8\x47\x42\xca\x18\xa3\xcb\x68\xad\xc0\x72\xe8\x99\xd3\xc3\xb1\ \x93\xb7\xaf\xd4\x3b\x79\x82\x23\x5c\x7a\xc4\xe7\xea\xd4\xc4\xe9\ \x4b\x52\x33\x7b\xea\xed\xa6\x26\x4c\x18\x22\xfb\xfa\x08\xb6\x6e\ \xeb\x1b\xe8\x3f\xf2\xab\xd9\x9a\x3b\xb6\xc1\x6f\x94\x78\x1b\x02\ \xda\x33\x82\x8e\x8c\xc2\x11\x60\x59\xa0\x64\xd8\xd1\x34\x79\x72\ \x97\x53\x9d\x86\xb0\x04\x96\x8e\x82\xb7\x82\xb8\x68\x3a\x0e\xd8\ \x07\xe5\x95\x7d\x44\x18\x09\xd0\x23\x18\x53\x6e\x47\xab\xb5\x89\ \xf3\xea\x59\xd9\x0d\x4f\x56\x5d\x74\xf1\x8a\xda\x6b\x3e\x40\xf5\ \x09\xf3\xb1\x33\x35\x08\xad\x41\x86\x18\xaf\x44\xd8\xdf\x37\x39\ \xf9\xec\xb3\x57\xdc\x71\xe7\xbd\x57\xfc\x64\xe3\xe6\xbb\xbe\x66\ \xf8\x54\x09\xb2\x7f\x94\x80\x84\x65\xa8\xb2\x24\xa9\x78\x0e\x95\ \xa0\xa9\xb6\x2e\x93\xc4\x04\x20\x03\xb0\x15\x98\x30\x1e\x5c\x01\ \x98\x58\x40\x10\x21\xa3\x16\xd3\x5a\xc5\x44\xad\xe4\x6a\x9f\xde\ \x75\x7b\x59\x9d\x6f\x9d\xdf\xf1\xc0\x37\x49\x5f\x7c\x19\x00\xf8\ \x25\x4c\x18\x60\x64\xfc\x7e\x15\x92\x98\x38\x81\x86\xcb\x2e\xa2\ \xe1\xec\x77\xf2\x89\x3b\xee\xbc\xaa\xfb\x7b\x3f\x9c\xff\xc1\x42\ \x78\xe1\x20\xec\xf9\x23\x7e\x89\xc1\x12\xa6\xec\x45\xf4\x6c\x04\ \x2a\x0e\xcc\x80\x91\x51\xf6\x85\x5d\x11\x60\x14\x95\x2a\xf8\x18\ \x15\xa0\x94\x44\x69\x89\x36\x1a\x6d\x19\xde\x7c\x6e\x0b\x0d\x8f\ \xef\xa5\xeb\xce\x9f\x92\x58\xb6\x1c\x42\x2f\x7a\x87\x65\x23\x46\ \x30\x23\x20\xac\x08\x19\xa2\x3d\xb7\x7c\x9f\xfc\xc4\xc7\xb8\xa8\ \xa5\x69\x41\x70\xdb\x37\x7e\xf6\xbe\xc3\xa5\x33\x25\x0c\xfd\xde\ \x21\x2e\xc9\x11\x34\x84\x02\x82\x51\x2c\x0e\x16\x0b\xd9\x12\xa1\ \x1b\x0f\x6e\x11\xc2\x42\x84\x8c\xa8\x9c\x4b\x68\x15\x20\x75\x14\ \xbc\x52\x0a\xd0\xf4\xf5\x1f\xc2\x79\x64\x3d\xdd\x9f\xfd\x3c\x89\ \x65\x27\x63\x4a\x39\x00\xf8\x8f\xa0\x05\x47\x1b\x18\xa9\xd0\x85\ \x02\x66\xcd\xa5\xac\x79\xff\x7b\x16\x5d\x53\x9f\xb8\xf9\x0f\x6e\ \xa1\xbe\x61\xe8\x2f\x81\xb6\x40\x02\xca\xa6\x2f\x77\x78\xff\x4e\ \x37\x3f\x18\x65\x54\xba\x18\x59\x8a\x03\x8f\x18\x79\x2e\xdf\x4b\ \x19\x20\xcb\xd9\x0f\xd1\x4a\xa2\xb5\xa4\x14\x96\x18\x78\xfa\x55\ \xa6\xcd\x59\x42\x72\xf5\x6a\xcc\xd0\x10\x68\x0d\x4a\x81\xf4\x41\ \x49\x8c\xd6\x95\x55\x6c\x2a\x80\x01\x6d\xd0\x9e\x0f\x7f\x71\x09\ \x1f\x5f\x3a\xef\xda\x09\x16\xc7\xfe\x5e\x01\x81\x82\x75\x7b\xc0\ \x76\x20\x69\xc0\x02\x35\x3c\x94\x7b\xe8\xc8\xee\xcd\x18\x21\x90\ \x32\x8c\x02\x95\x3e\x15\x82\xe8\x5e\x85\x28\x39\x82\x92\xe5\xb3\ \x0c\x4a\x1c\x38\x70\x80\x9a\xbd\x59\x1a\xce\xbb\x00\xa4\x02\x15\ \x46\x41\xcb\x00\x13\xfa\x65\xa2\x3b\x15\x11\xcf\x0c\xc6\x50\xa9\ \x44\x48\xd8\xd8\xc4\x8c\xb3\x57\xd4\xac\x6a\xae\xbe\xe4\x0f\x7e\ \x0b\x3d\xbe\x1d\xde\x35\x0b\x7e\xd6\xea\x70\xd9\x80\xc4\xd6\x7c\ \xff\x8d\x97\x9f\xb8\xa1\xe9\x98\xb9\x8d\x42\x58\x00\x08\x2a\x65\ \x37\x98\x78\x65\x1a\xb4\x51\x28\x29\x09\xfc\x22\x81\x3b\x4c\x76\ \xef\x7e\xba\x1b\x5a\x10\xd3\xa6\x63\xbc\x62\x3c\x3b\x80\x56\x20\ \x44\xe5\xac\x64\x3c\x47\x2a\xc2\xa8\xf2\xfb\x0c\x26\x2a\x4c\x18\ \xc2\x8c\x59\x9c\x3e\xbd\xf5\xd4\x7f\x3e\xb4\xdb\x06\xd4\xb8\x02\ \xf6\xe7\xe0\x76\xdf\xe1\xa9\x09\x09\x1e\xaf\xb7\xf8\xf4\x81\xb0\ \xaf\xab\x77\xdf\xc7\x76\xae\xfb\x97\x7b\xba\x4f\xbb\xc0\xd1\x32\ \x1c\xdb\xab\x26\x12\xa0\x95\x22\x0c\x3d\x02\xaf\x88\xef\x16\xf0\ \xfc\x3c\xde\x91\x01\x32\x6d\xb3\x20\x99\x82\x30\x88\xfa\xde\xe8\ \x68\x47\xf3\x96\x80\x78\x15\x2b\x89\x51\x91\x47\xeb\xf8\xbd\x71\ \x82\xc2\x00\x6a\x33\xf4\x74\xb5\x76\xf2\xc2\xee\x7a\x20\x3b\xae\ \x00\x6c\x78\x6a\x6e\x0a\xb4\xe2\x70\x52\x70\xe3\x74\x8b\xb6\x92\ \xaa\xbe\xb4\x77\xbd\xba\xea\x69\xed\xb4\x2f\x7c\x07\x42\xd8\x71\ \xa9\x41\x6b\x55\xee\x7b\x19\xfa\x84\xbe\x4b\x30\x8a\x57\xc0\x0b\ \x8a\xf8\xb9\x2c\xa9\x29\xb5\x71\x6b\x18\xb0\x34\xc2\x68\x88\x2b\ \x09\x44\x82\xb4\xae\x04\xaf\xa2\x36\x8a\x2a\x1b\x41\x18\x82\xd1\ \xa4\x33\x35\xd5\x40\x7a\xfc\x16\xaa\x13\x70\x71\x15\xa8\x68\x00\ \x50\x32\x85\xd1\xdf\x5b\xb2\xf8\xf2\xf7\xe5\xa8\x62\xdd\xd6\x1d\ \xcc\x7b\xfa\x11\x9a\xa7\xce\xa0\x66\x42\x0b\xda\x18\xd4\x5b\xbd\ \x1f\x06\x91\x88\xc0\xc3\x2f\xe4\x18\xea\xdf\xc3\xc1\x52\x09\xa9\ \x03\x52\x32\x8c\x33\x6f\x63\x74\xbc\x2e\x11\x54\x06\xf7\x3f\xcf\ \x80\x41\x47\x44\x22\x94\x82\xc0\x83\x72\x72\x82\x12\x10\x8c\x2f\ \xe0\x43\x29\x48\x38\x40\xf9\x65\x29\x5b\x24\xee\xff\xc6\xca\xaf\ \x9f\x7f\x5c\xcb\x2c\xfe\xfe\xa9\xaf\xd2\x73\xd9\x97\xa8\x1f\xee\ \xe5\xb5\x5f\xde\x4e\x7a\xe7\x26\x32\x0d\x8d\x88\xfa\x0c\x28\x13\ \x0d\xb3\x57\xc0\x3d\x70\x90\x92\x63\xf0\x4f\x9a\x4e\xbe\xa7\x83\ \xa1\x47\xb2\xd4\xb8\x25\x4c\x32\x89\xd0\xaa\xb2\x3a\xe3\xf8\xe3\ \x6d\x33\x26\xeb\xda\xc4\x5e\x2b\xf0\xdd\x48\x40\x21\xc7\xf6\x03\ \xd9\xbd\xc0\xd0\xf8\x02\xac\x2a\x90\x32\x7a\x0a\xf5\x77\xbe\xb5\ \xfa\x1f\xce\xff\xc8\x09\x1f\xe4\x6b\xcf\xde\xca\xc7\x4e\xb9\x81\ \x62\x61\x80\x96\x19\x2b\xe8\x9b\x56\xcb\x83\xf7\xff\x94\xe3\x1e\ \x7f\x85\xb9\xbb\x5e\x46\x77\x26\xb0\x0a\x9a\xd2\x21\xcd\xe3\xe7\ \x9e\x43\xd5\x85\x2d\x9c\x34\xaf\x83\x52\xb6\x9f\x6d\xb9\x5e\xda\ \x0f\xf7\xa1\xa7\x4c\x47\xc8\x10\x61\x0c\x63\x8d\x38\x70\x46\x30\ \x11\x18\xb4\xd6\xe0\x7b\xe0\x95\x30\x81\x07\x07\x7b\x79\x72\xd7\ \xc1\xe7\x81\x70\x7c\x01\x45\x0b\xaa\x01\xd7\xbd\xf2\x3d\x27\x5d\ \x79\xf5\x47\x16\x5e\xcb\x63\x3b\x1e\x66\x51\xe7\x49\x9c\x36\x6d\ \x05\x1b\xfa\x37\xb2\x6f\xe0\x0d\xbc\x50\xb2\xec\xe4\x4b\x49\xb7\ \x9d\x46\xcf\x59\x37\xd0\xb9\xcd\x87\x01\x58\x7b\xc6\x19\x2c\xbe\ \xea\x7a\x0e\x95\x5e\xe3\xa0\xbf\x99\xb6\xc2\x02\xaa\x4f\x58\x88\ \xdc\xf4\x7c\x24\x40\xeb\xca\x0e\x13\x44\x66\x88\x05\x50\xf1\x5a\ \x46\xc1\xbb\x45\x8c\x57\x22\xe5\xe6\xd9\xff\xdb\xcd\xc3\x6b\xf7\ \x66\x1f\xf9\xfd\x6b\x54\x00\xda\x34\xb5\xd4\x4f\xfb\xca\x5f\x2d\ \xff\x30\x6f\xe4\xb7\xb0\x3f\xbf\x87\x77\xcf\xbf\x1a\x5f\x97\x58\ \xd0\x76\x3c\xbb\xb3\x6f\x52\x0a\x3c\x16\x34\x4d\xc5\xef\x3a\x89\ \x81\x1b\xb7\xd2\x71\xeb\xed\x1c\xac\x6b\xa4\xe6\x2b\x7f\xc3\xb1\ \x2d\xd3\xd8\x33\x6c\x31\x74\xa4\x89\x15\xad\x17\x12\xac\xd2\x1c\ \xbe\xfd\x46\x26\x6d\x7f\x15\xaf\x67\x3e\x22\xf0\x00\x10\x46\x10\ \x67\x3f\xf2\x51\x09\x30\x32\x04\xdf\x1d\xa5\x1c\xbc\x90\x01\xce\ \xce\x4d\x7c\xf9\xc9\x97\xee\x1a\x0a\xf5\xc6\xb6\x45\xd7\xa1\xa5\ \xe2\xe0\xc6\xef\x8c\xb3\x85\x3c\x7d\xcd\xbb\x4f\x3f\xbf\xb5\xa5\ \xa1\x9e\x27\x5f\xff\x15\x73\xda\xe6\xe0\xaa\x3c\x68\x41\xc2\x4e\ \xd1\xde\x30\x89\xf6\xfa\x49\x38\x56\x12\x84\x4d\xe9\xb3\x5f\xe4\ \xb5\x7b\x1f\x46\x5f\x71\x2d\x4b\x4e\x38\x0d\xc7\x84\x74\x36\xb5\ \x22\x8c\x8d\xb2\x02\xd2\x29\x58\xbf\xfc\x02\x82\x07\x7e\x4c\x67\ \xa6\x0e\xaf\xb9\x13\x64\x80\x40\xc4\x23\x60\xe2\x5f\x67\x59\xbe\ \x27\xf0\x21\xf0\x30\xbe\x07\x2a\xa4\x7a\xdf\xeb\x3c\xf4\xec\xde\ \xed\x3f\xd8\x67\x6e\x99\xfa\xce\x5b\xcc\xe4\x25\x37\x11\x7a\xc1\ \x88\x80\xef\x02\x66\xac\x00\x8c\x49\xd7\xa4\x9b\xae\x58\x31\x7b\ \x21\x6f\x0c\xee\xc2\xd5\x05\x26\xd6\x35\x31\xe4\x1f\x21\x61\xa5\ \x48\x98\x24\x9e\x70\x49\x08\x07\x4b\x3b\xd8\xc2\x26\x59\x9b\xc6\ \xb9\xef\x47\xd4\x76\x8d\xb6\x48\x01\x4f\x4b\xb4\x51\x68\xa1\x71\ \x84\xcb\xba\x0d\x47\xb8\x73\xfd\x09\x2c\xec\xe9\xe2\xca\x87\x6f\ \xa3\x69\xd9\x71\x84\xd3\x66\x63\x54\x1c\xb4\x31\xa3\x3e\x22\x0c\ \xa3\x9d\xaf\x43\x2c\xb7\x48\x7a\xdb\xab\x6c\x1c\x68\xe3\xd1\x95\ \xf7\x4e\x99\xdd\x99\xff\x42\x6d\x63\xd7\x67\x54\x71\xc0\x53\x7e\ \x00\x08\x52\x75\xed\xf8\xc3\xbd\x15\x01\xb8\xfa\x94\x59\xd3\xa6\ \xcd\x6a\x6e\xa8\x61\xe7\xa1\xad\x34\x65\x26\x50\x94\x79\x2c\x6c\ \x12\xc6\xc7\xd1\x09\x6c\x91\x1c\x21\x0a\xde\x1a\x45\xe6\x68\x5a\ \x3a\x03\x23\x25\x43\xc1\x00\xf1\x08\xe2\x38\x3e\x0f\xfe\xf2\x08\ \x8f\xbd\x72\x0c\x57\x9e\x33\x91\xb5\x4f\x48\x7e\xb5\xf0\x33\xac\ \xc9\xfe\x18\x67\xdb\x23\x24\x66\x76\x13\x36\x34\xa3\x84\x83\xd1\ \x0a\xa4\x2c\xb7\x4b\xd2\x1d\xc6\xee\xef\xc5\xdf\x7f\x98\x8d\xc7\ \x9c\xc1\x2d\x85\x33\x58\xd2\x6c\x57\x2d\xbe\xb8\xeb\xfa\xbb\x1e\ \xcd\xce\x0d\x95\xb9\x44\x58\x4e\x16\xc0\x72\x6a\x48\x66\x26\x57\ \x04\xe0\x5b\x2b\x7b\x26\xb5\x59\x45\x95\x23\x17\x0c\x30\xa9\xae\ \x8d\x7c\x98\xc5\x11\x29\x12\x56\x12\x47\x24\xb0\x47\xb1\x1c\x6c\ \x46\x05\x58\x08\x46\x28\x0e\xc7\xc3\x38\x8a\x21\x99\x0c\x59\xfb\ \xd4\x61\x1e\x7b\x7e\x0e\xb7\x5f\x37\x99\x2d\x5b\x0e\x53\x4f\x81\ \x96\xf9\x3d\x0c\xce\xfa\x3c\x43\xeb\x9e\x27\xfb\x8b\x27\x69\x56\ \xaf\x33\xb1\xce\x50\x95\x72\x40\x2b\x8a\xc5\x80\x1d\x83\x09\x0a\ \x9d\xc7\x71\xf0\xec\x1b\xd8\xd3\x38\x8d\xa5\x2d\x21\x7d\xbf\xdd\ \xc6\xb9\x27\xa5\xe9\xbe\xbc\xf6\xf4\x9b\xee\x1c\x7a\x70\x78\x68\ \xef\x6a\x30\xae\x9b\xdd\x46\xf7\x39\x77\x55\x04\xa0\x13\xc7\x37\ \xd5\x57\x73\xd8\xed\xc7\xb2\x21\x34\x1e\x52\x86\xe5\xe0\x13\x3a\ \x85\x63\x25\x70\xe2\xf6\xb1\x88\x2b\x20\x44\x65\xa5\x18\x83\x93\ \x84\xdf\x6d\x3e\xc4\x7d\xbf\x9c\xc9\xd7\xae\x9b\x42\x8d\x13\xb0\ \x63\xd7\x10\x37\x7d\xa4\x9b\x0d\x3b\x34\xf9\x41\x8b\xfe\xee\xa5\ \x3c\xbb\x6c\x29\x0d\x89\xc3\x6c\xd8\xf4\x3a\x49\xaf\x80\xc1\x22\ \x9f\xa9\x67\xf6\xe2\xd9\x50\x53\x4f\xeb\x44\x90\x7d\x9a\xe5\xc7\ \x26\xa8\x9a\x33\x9d\xe7\xd6\xf5\xf2\xe1\xcb\x8f\xe1\x93\x97\x34\ \x2e\xff\xcb\x5b\x9e\xfc\x36\x70\x35\xd8\xf4\xbd\xfc\x4d\xe0\x7d\ \xc4\x02\x9c\xb6\x64\xd2\x90\xf5\x0e\xe1\x38\xd5\x14\xe4\x50\x39\ \xe3\x09\x9d\x2c\x0f\x6d\xd4\x42\xce\x28\x51\xf0\x58\x08\x31\x02\ \x91\x09\x4b\x10\x0e\xe7\xb8\xfb\x81\x06\xce\x7f\xc7\x0c\x66\x4f\ \x85\x1f\xfd\xfc\x10\x67\xbc\xb3\x9d\xfa\x6a\xc1\xe2\x99\x82\xad\ \x7b\x15\xa1\x0f\xab\xe6\xdb\x54\x57\x4f\x64\x42\xd7\x44\x7e\xbd\ \xcb\x43\x1b\xc3\xaa\xe9\x69\x16\xb5\xc2\x9b\x87\xe0\x77\x07\x34\ \x4b\x3b\x0c\x0b\xa6\x41\xd2\xa9\xa6\xaf\x3f\xc3\x33\x1b\x06\xb9\ \x70\x59\x23\xcf\x5d\xf8\xae\xab\xee\xd8\xbc\xfa\xd1\xa0\xff\xd1\ \x07\x4a\x87\x36\x55\x3e\xa7\x91\xb6\xe3\x4a\x97\xa2\x1a\x46\x8b\ \x90\x82\xcc\x51\x92\xc3\xe5\xe7\xa2\x1c\x25\x47\x4c\x59\x5c\x61\ \xf4\x1c\xf9\x32\x1e\x59\x7e\xbd\x6e\x08\x25\x67\xb3\xea\xb4\x14\ \x2f\x6e\x73\xb1\x53\x09\xda\x3b\xaa\x19\xf2\xc0\x49\xc0\x9c\x2e\ \x9b\x69\xcd\x82\x99\x6d\x30\xa5\x01\xce\x3d\x06\xae\x5c\x50\xc5\ \x7b\x17\xa4\x39\xaf\x1b\x3a\xea\x61\xfe\x14\xb8\x68\x0e\x9c\x3c\ \xdb\x06\x01\x85\x00\x4e\x3c\x61\x22\xdb\xf6\xba\x1c\x18\x36\x5c\ \x7a\x66\x0d\xdd\x4b\x3f\x7e\x2b\x56\x55\xcd\xd8\x2d\xe4\x59\x85\ \x23\xb9\x41\xa6\x08\x07\x4f\x17\x51\x26\x8c\x33\x1f\xf5\xbf\x53\ \xee\x7d\x07\x4b\x8c\x62\x11\x57\x00\x00\xcb\xb2\x08\x73\xc3\x3c\ \xfb\x5c\x17\x67\xbe\x63\x32\xca\x82\xcd\xbb\x8a\x2c\x9c\xd3\xc4\ \x60\x09\x6c\x20\x50\x90\xb4\x61\x52\x8b\x85\x30\x60\x09\x48\x3a\ \xb0\xb0\x0d\x0c\x90\xb4\x40\x19\x68\x4c\x40\x43\x8d\xc5\xb0\x0f\ \xa1\x8a\xb0\x1c\x41\x7b\x47\x86\x97\xb6\x16\x98\x3f\x37\xc3\xa9\ \xa7\x2d\xea\xd9\xb1\x6e\xf9\x25\xe1\xa1\xc7\xee\xae\x54\x20\xb0\ \xb7\xee\xeb\x1d\x42\x0a\x97\x4a\xe6\x73\x11\x2a\xca\x72\x41\x8d\ \x9e\x87\xa2\x2a\x94\xef\xa2\xb3\x6b\x06\xd9\xbe\x63\x88\x42\x6e\ \x2a\xb3\x66\x55\xb1\xab\x57\x96\xb3\x9f\xae\x71\x18\x76\xa1\x10\ \x44\xe4\x7d\xca\x82\x72\x3e\x0c\xfb\x91\x77\x25\x78\xb2\x72\x37\ \xe4\x42\xd6\x85\xbc\x1f\x65\xbf\x18\x42\xb6\x08\x6d\xed\xb5\x1c\ \x18\x0c\x19\x28\xc2\xfc\x79\x19\x1a\x3b\xcf\x7a\x0f\x20\x2a\x15\ \x30\xf6\xa3\x3b\xb6\x14\xdf\x3b\xbc\xb2\x40\xca\x56\xd8\x3a\x11\ \x55\x40\x8c\xa0\x9d\xa3\xfa\x3f\xde\x42\x20\x20\x61\x49\xb6\xbe\ \x56\xc5\x84\xc6\x56\x52\x19\xd8\xb5\xd3\xa7\xb5\xb9\x9a\x9c\x07\ \x8e\x80\x84\x02\xc7\x06\xc7\x8a\x9e\x6d\x2b\xaa\x80\x00\xc4\x98\ \xcf\x0a\xd0\x06\xd4\x28\x1a\xa4\x01\xa9\x20\xd4\x60\x84\x20\x5d\ \x9b\xe2\x8d\xbe\x90\x96\x49\x09\x5a\x3b\x8f\x3b\xf1\xd0\xc6\xba\ \x2e\x60\x77\x24\xc0\x72\x7e\x91\x7d\x53\xff\x6e\xfd\xf3\x83\xf3\ \x16\x9f\x1e\xe2\xb9\x09\x1c\x9d\x88\x04\x88\x31\x02\x2a\x2b\x14\ \x81\xb0\x2c\x2c\x5d\xa2\x77\x77\x0f\x1d\x2d\x19\x86\xbd\x28\x6b\ \x89\x74\xa2\x7c\x4e\xda\x90\xb0\xc0\x89\xb1\xad\x8a\x00\x8b\xca\ \x97\x35\x54\x04\xe8\xb7\x04\xc4\x84\x3a\x12\x55\x5b\x57\x45\xdf\ \x40\xc0\x94\xce\x04\x13\x26\xb6\x34\x88\x54\xc7\xbc\x8a\x00\x43\ \x09\xec\x4f\x3e\xf7\x90\xfb\x78\xba\x4e\x8b\x99\x27\x24\xf0\x82\ \x04\x42\x46\xdb\xc7\xb1\x1c\x2c\xa2\x1f\x31\x51\x9e\x01\x01\x8c\ \x78\x4b\xa0\xc2\x22\xb9\x81\x24\x3d\xd3\x13\x1c\x1e\x06\x2b\x99\ \xc0\x53\x10\x8c\xa2\x19\x2b\x40\x94\x89\x2a\x20\xa0\x52\x80\xa3\ \x05\x28\x53\x11\x10\x2a\x30\x8e\x8d\xaf\x45\xb9\xd5\xd2\xb5\x69\ \x2c\xa7\x69\xfa\xd8\x6f\x21\x21\x9e\x90\x45\x71\xd5\xbf\xdd\x21\ \xbf\xdd\xbf\x92\x9a\x79\xa7\x4a\xea\x9a\x3c\x8c\x65\x23\xb5\x8d\ \x18\xc5\xd8\x58\xfa\xad\xf6\x11\x58\x58\xc8\xb0\x80\x57\x02\x69\ \x04\x43\xae\xa1\x2a\xe1\x30\xec\xc7\xed\x63\x8d\x60\xc7\xc1\x8f\ \x27\x20\xc6\x18\xd0\x8c\x11\x70\x54\x15\x8c\xed\x30\xe8\x46\x6b\ \x1b\xe3\xd4\x55\x04\x38\x16\x84\x80\x25\xee\xd1\x6f\x1c\x7a\x75\ \xe3\x0f\xd3\xb7\xbc\xf6\x54\xdd\x39\x1d\x73\x13\xce\xe4\x19\x8a\ \x09\x6d\x8a\x9a\x7a\x48\xa5\xc1\x49\x08\x6c\x5b\x20\x46\x05\xd8\ \x20\x75\x09\x29\x5d\x8a\x25\x49\x49\x0a\xec\x84\xa0\xe0\xc7\x99\ \xb7\x21\xa1\xc6\x0a\xb0\xc4\x98\x19\x38\x5a\x80\x8e\x44\xc8\x4a\ \x2b\x11\xc6\x5e\xdb\x36\x39\x17\x4a\x05\x1f\xa3\x24\x95\x2d\xd4\ \x97\xab\xbc\xcd\xf7\x37\xb1\x7b\xf7\x05\xfe\xba\x6d\x8b\x77\xdd\ \xb3\xe7\x73\xcf\xdd\x7a\x78\xed\xcf\x3f\x97\x7f\xfd\xfe\xcf\x7a\ \xd9\xfb\xfe\x3a\xf4\xee\xbb\x39\x34\xf7\x7d\x21\xe4\xbe\x2f\x05\ \xdc\xff\xe5\x80\x07\xbf\x2a\xd9\xbf\x7b\x90\xec\x91\x22\xa1\x80\ \x92\x84\x42\x18\x51\x0c\xa0\x30\x3e\xe4\xdf\xc2\x8f\x7c\xc1\x8f\ \xef\xc7\xf9\x5b\x5f\x47\xc9\xc9\xf6\x0f\x83\x2e\x0e\x55\x2a\xb0\ \xb1\x17\x4e\xcd\x80\x95\xac\x08\x09\xbc\x8d\x65\x72\x40\x1f\x19\ \x89\xd5\x2c\x85\xdd\x08\x22\x83\x65\x57\x23\x44\x02\x63\x40\x68\ \xdf\xc9\x0c\x9d\xde\xbb\xad\xff\xc6\xd9\xe1\x14\x14\x95\xac\xc7\ \xfd\x8f\x3d\x4e\x05\xc6\xce\x40\x5c\x85\x98\xb8\x85\x50\x95\x0a\ \xa0\x04\x64\x07\x02\x0e\xec\xda\x2b\x8d\xec\xdd\x3e\x76\x06\x9e\ \xdf\x0e\x0b\x7a\x2a\x02\xc6\x92\x07\x9d\xc7\xe8\xdd\x00\x28\xc6\ \x58\x75\xed\xd9\xaf\xf4\x6d\x7e\xe3\x43\xfb\x77\xce\xac\x6b\xeb\ \x69\xc0\x0f\x38\x7a\xfb\x1c\xb5\x42\xc7\x0a\x20\xee\x7f\x13\x05\ \x5f\x59\xa7\x15\x10\x69\xd8\xf9\x62\x1f\xb9\xde\xf5\xaf\x1b\x75\ \x78\x53\xa5\x85\x00\xa4\x82\xf5\xdb\xc0\xf5\x79\xfb\x26\x06\x82\ \xbc\xfb\x8f\x2f\xdf\xfb\x02\x43\x79\x8d\x2b\xa2\x92\xc7\x8c\x6d\ \x97\xa3\x5a\x28\x3e\x8f\xdb\x3e\x51\x3b\xfa\x09\xd8\xf3\xda\x30\ \x9b\x1e\xde\x80\x2c\xfe\xeb\xdd\x60\xfa\xc7\x56\x20\x4e\x01\xb9\ \x02\x6f\xdf\x0c\x96\xc5\x97\xfb\x5f\x7d\x73\xd1\x33\xb7\x3d\xbe\ \x72\xe1\xfb\x4f\xa5\xa1\xb3\x96\x50\x82\x90\x60\x13\xb7\xcf\x38\ \x43\x1c\xb7\x4f\xbc\x4a\x2b\x28\x00\x27\xf2\xfb\x5f\x3c\xc8\x2b\ \xdf\x7f\x81\x7c\xef\x3d\xf7\x6b\xb9\xf9\x2e\x62\x73\xf8\x53\x4d\ \x64\x40\x38\x00\xae\x9d\xb0\x2e\xe8\x7b\x69\xe7\x6d\xd9\x1d\xfd\ \x1f\x9c\x76\xfa\xf1\x76\xe7\x92\xe9\xd4\x75\x34\x90\xac\x16\xd8\ \x0e\x58\x95\xd6\x89\x01\x43\xc5\x0c\xa0\x63\x31\x32\x04\x37\x17\ \x92\xdd\x35\xc0\x9b\x4f\xef\x64\xdf\xf3\xaf\xb8\xd2\x7b\xe4\x4e\ \xcc\x33\x5f\x02\xb2\xff\x7d\x02\x8c\x87\x91\x03\x40\x0a\xa0\x64\ \x27\xed\x8f\x7a\x43\xc5\x3b\xb7\xdc\xf7\xdd\xab\xb7\x3e\xd4\x79\ \x56\xa6\xad\xab\x2b\xd3\xde\x66\xd7\xb6\x36\x50\xd5\x58\x43\xb2\ \x26\x85\x9d\xb2\xb1\x13\x4e\xa5\x02\x1a\x54\x10\x22\x7d\x89\x9f\ \xf7\x70\x07\x0a\xe4\x0f\x0c\x90\xef\xdd\x1f\x16\x0f\xed\x7a\x13\ \x36\x3d\x03\x2f\xff\x04\x86\x46\x3c\x0a\xe0\xbf\x4f\x00\x21\x85\ \x03\x9f\x26\x3d\xe1\x5b\xc4\x86\x65\x5b\xeb\x8d\xfc\xcd\x7a\x1d\ \xee\xab\xc9\xed\xcd\x1c\x9b\xdb\xdb\x34\x17\x9a\xa6\x43\x7a\x32\ \x64\x1a\xa1\xaa\x1a\x2c\x07\xec\x2a\x00\x90\x1e\x68\x09\xa5\x12\ \x14\x73\x30\x7c\x00\x06\x77\xc3\xe1\xed\x90\xdd\x0a\x1c\x64\x1c\ \xfb\xff\xff\x56\xf9\xbf\xb6\x7f\x07\x3d\x3b\xcc\xf1\xa3\xb2\xb6\ \x47\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x13\ \x01\x35\x7a\xc7\ \x00\x6b\ \x00\x6f\x00\x70\x00\x65\x00\x74\x00\x65\x00\x61\x00\x76\x00\x61\x00\x69\x00\x6c\x00\x61\x00\x62\x00\x6c\x00\x65\x00\x2e\x00\x70\ \x00\x6e\x00\x67\ \x00\x0d\ \x0e\x40\x40\xc7\ \x00\x6d\ \x00\x69\x00\x6e\x00\x69\x00\x74\x00\x6f\x00\x6f\x00\x6c\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x10\ \x05\xe9\x01\x67\ \x00\x61\ \x00\x72\x00\x74\x00\x73\x00\x66\x00\x66\x00\x74\x00\x73\x00\x63\x00\x6f\x00\x70\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x16\ \x07\xbc\x11\xc7\ \x00\x6d\ \x00\x65\x00\x74\x00\x61\x00\x63\x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x6f\x00\x6e\x00\x6c\x00\x69\x00\x6e\ \x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x14\ \x0a\x34\xf1\x07\ \x00\x62\ \x00\x6c\x00\x75\x00\x65\x00\x5f\x00\x61\x00\x6e\x00\x67\x00\x6c\x00\x65\x00\x5f\x00\x73\x00\x77\x00\x69\x00\x72\x00\x6c\x00\x2e\ \x00\x6a\x00\x70\x00\x67\ \x00\x10\ \x03\x16\x82\x47\ \x00\x6b\ \x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x6d\x00\x61\x00\x69\x00\x6c\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x13\ \x09\x2b\x13\x47\ \x00\x6b\ \x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x6a\x00\x6f\x00\x75\x00\x72\x00\x6e\x00\x61\x00\x6c\x00\x2e\x00\x70\ \x00\x6e\x00\x67\ \x00\x11\ \x04\x5b\x0b\x07\ \x00\x6b\ \x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x6e\x00\x6f\x00\x74\x00\x65\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ \ \x00\x14\ \x08\x13\x30\x07\ \x00\x6b\ \x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x5f\x00\x63\x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x73\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x7c\xee\ \x00\x00\x01\x36\x00\x00\x00\x00\x00\x01\x00\x00\x96\x35\ \x00\x00\x00\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x11\x7b\ \x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x16\x8d\ \x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x00\xa5\x6e\ \x00\x00\x01\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x89\x74\ \x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x4e\xb8\ \x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x20\x82\ \x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x09\x50\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/graphicsview/padnavigator/ui_backside.py0000644000076500000240000001604212536324427025563 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'backside.ui' # # Created: Mon Jul 6 16:11:23 2009 # by: PyQt4 UI code generator 4.6-snapshot-20090706 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui class Ui_BackSide(object): def setupUi(self, BackSide): BackSide.setObjectName("BackSide") BackSide.resize(378, 385) self.verticalLayout_2 = QtGui.QVBoxLayout(BackSide) self.verticalLayout_2.setObjectName("verticalLayout_2") self.groupBox = QtGui.QGroupBox(BackSide) self.groupBox.setFlat(True) self.groupBox.setCheckable(True) self.groupBox.setObjectName("groupBox") self.gridLayout = QtGui.QGridLayout(self.groupBox) self.gridLayout.setObjectName("gridLayout") self.label = QtGui.QLabel(self.groupBox) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 0, 0, 1, 1) self.hostName = QtGui.QLineEdit(self.groupBox) self.hostName.setObjectName("hostName") self.gridLayout.addWidget(self.hostName, 0, 1, 1, 1) self.label_2 = QtGui.QLabel(self.groupBox) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1) self.label_3 = QtGui.QLabel(self.groupBox) self.label_3.setObjectName("label_3") self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.horizontalSlider = QtGui.QSlider(self.groupBox) self.horizontalSlider.setProperty("value", 42) self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) self.horizontalSlider.setObjectName("horizontalSlider") self.horizontalLayout.addWidget(self.horizontalSlider) self.spinBox = QtGui.QSpinBox(self.groupBox) self.spinBox.setProperty("value", 42) self.spinBox.setObjectName("spinBox") self.horizontalLayout.addWidget(self.spinBox) self.gridLayout.addLayout(self.horizontalLayout, 2, 1, 1, 1) self.dateTimeEdit = QtGui.QDateTimeEdit(self.groupBox) self.dateTimeEdit.setObjectName("dateTimeEdit") self.gridLayout.addWidget(self.dateTimeEdit, 1, 1, 1, 1) self.verticalLayout_2.addWidget(self.groupBox) self.groupBox_2 = QtGui.QGroupBox(BackSide) self.groupBox_2.setFlat(True) self.groupBox_2.setCheckable(True) self.groupBox_2.setObjectName("groupBox_2") self.horizontalLayout_2 = QtGui.QHBoxLayout(self.groupBox_2) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.treeWidget = QtGui.QTreeWidget(self.groupBox_2) self.treeWidget.setObjectName("treeWidget") item_0 = QtGui.QTreeWidgetItem(self.treeWidget) item_1 = QtGui.QTreeWidgetItem(item_0) item_2 = QtGui.QTreeWidgetItem(item_1) item_2 = QtGui.QTreeWidgetItem(item_1) item_2 = QtGui.QTreeWidgetItem(item_1) item_0 = QtGui.QTreeWidgetItem(self.treeWidget) item_1 = QtGui.QTreeWidgetItem(item_0) item_2 = QtGui.QTreeWidgetItem(item_1) item_0 = QtGui.QTreeWidgetItem(self.treeWidget) item_1 = QtGui.QTreeWidgetItem(item_0) item_2 = QtGui.QTreeWidgetItem(item_1) self.horizontalLayout_2.addWidget(self.treeWidget) self.verticalLayout_2.addWidget(self.groupBox_2) self.retranslateUi(BackSide) QtCore.QObject.connect(self.horizontalSlider, QtCore.SIGNAL("valueChanged(int)"), self.spinBox.setValue) QtCore.QObject.connect(self.spinBox, QtCore.SIGNAL("valueChanged(int)"), self.horizontalSlider.setValue) QtCore.QMetaObject.connectSlotsByName(BackSide) BackSide.setTabOrder(self.groupBox, self.hostName) BackSide.setTabOrder(self.hostName, self.dateTimeEdit) BackSide.setTabOrder(self.dateTimeEdit, self.horizontalSlider) BackSide.setTabOrder(self.horizontalSlider, self.spinBox) BackSide.setTabOrder(self.spinBox, self.groupBox_2) BackSide.setTabOrder(self.groupBox_2, self.treeWidget) def retranslateUi(self, BackSide): BackSide.setWindowTitle(QtGui.QApplication.translate("BackSide", "BackSide", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox.setTitle(QtGui.QApplication.translate("BackSide", "Settings", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("BackSide", "Title:", None, QtGui.QApplication.UnicodeUTF8)) self.hostName.setText(QtGui.QApplication.translate("BackSide", "Pad Navigator Example", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("BackSide", "Modified:", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("BackSide", "Extent", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_2.setTitle(QtGui.QApplication.translate("BackSide", "Other input", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.headerItem().setText(0, QtGui.QApplication.translate("BackSide", "Widgets On Graphics View", None, QtGui.QApplication.UnicodeUTF8)) __sortingEnabled = self.treeWidget.isSortingEnabled() self.treeWidget.setSortingEnabled(False) self.treeWidget.topLevelItem(0).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsProxyWidget", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(0).child(0).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsWidget", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(0).child(0).child(0).setText(0, QtGui.QApplication.translate("BackSide", "QObject", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(0).child(0).child(1).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsItem", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(0).child(0).child(2).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsLayoutItem", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(1).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsGridLayout", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(1).child(0).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsLayout", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(1).child(0).child(0).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsLayoutItem", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(2).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsLinearLayout", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(2).child(0).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsLayout", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.topLevelItem(2).child(0).child(0).setText(0, QtGui.QApplication.translate("BackSide", "QGraphicsLayoutItem", None, QtGui.QApplication.UnicodeUTF8)) self.treeWidget.setSortingEnabled(__sortingEnabled) PyQt-x11-gpl-4.11.4/examples/graphicsview/README0000644000076500000240000000137112536324427021147 0ustar philstaff00000000000000PyQt is provided with a comprehensive canvas through the GraphicsView classes. These examples demonstrate the fundamental aspects of canvas programming with PyQt. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/ipc/0000755000076500000240000000000012536324427016345 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/ipc/localfortuneclient.py0000755000076500000240000001267412536324427022630 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtNetwork class Client(QtGui.QDialog): def __init__(self, parent=None): super(Client, self).__init__(parent) self.blockSize = 0 self.currentFortune = None hostLabel = QtGui.QLabel("&Server name:") self.hostLineEdit = QtGui.QLineEdit("fortune") hostLabel.setBuddy(self.hostLineEdit) self.statusLabel = QtGui.QLabel( "This examples requires that you run the Fortune Server " "example as well.") self.statusLabel.setWordWrap(True) self.getFortuneButton = QtGui.QPushButton("Get Fortune") self.getFortuneButton.setDefault(True) quitButton = QtGui.QPushButton("Quit") buttonBox = QtGui.QDialogButtonBox() buttonBox.addButton(self.getFortuneButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(quitButton, QtGui.QDialogButtonBox.RejectRole) self.socket = QtNetwork.QLocalSocket() self.hostLineEdit.textChanged.connect(self.enableGetFortuneButton) self.getFortuneButton.clicked.connect(self.requestNewFortune) quitButton.clicked.connect(self.close) self.socket.readyRead.connect(self.readFortune) self.socket.error.connect(self.displayError) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(hostLabel, 0, 0) mainLayout.addWidget(self.hostLineEdit, 0, 1) mainLayout.addWidget(self.statusLabel, 2, 0, 1, 2) mainLayout.addWidget(buttonBox, 3, 0, 1, 2) self.setLayout(mainLayout) self.setWindowTitle("Fortune Client") self.hostLineEdit.setFocus() def requestNewFortune(self): self.getFortuneButton.setEnabled(False) self.blockSize = 0 self.socket.abort() self.socket.connectToServer(self.hostLineEdit.text()) def readFortune(self): ins = QtCore.QDataStream(self.socket) ins.setVersion(QtCore.QDataStream.Qt_4_0) if self.blockSize == 0: if self.socket.bytesAvailable() < 2: return self.blockSize = ins.readUInt16() if ins.atEnd(): return nextFortune = ins.readQString() if nextFortune == self.currentFortune: QtCore.QTimer.singleShot(0, self.requestNewFortune) return self.currentFortune = nextFortune self.statusLabel.setText(self.currentFortune) self.getFortuneButton.setEnabled(True) def displayError(self, socketError): errors = { QtNetwork.QLocalSocket.ServerNotFoundError: "The host was not found. Please check the host name and port " "settings.", QtNetwork.QLocalSocket.ConnectionRefusedError: "The connection was refused by the peer. Make sure the " "fortune server is running, and check that the host name and " "port settings are correct.", QtNetwork.QLocalSocket.PeerClosedError: None, } msg = errors.get(socketError, "The following error occurred: %s." % self.socket.errorString()) if msg is not None: QtGui.QMessageBox.information(self, "Fortune Client", msg) self.getFortuneButton.setEnabled(True) def enableGetFortuneButton(self): self.getFortuneButton.setEnabled(self.hostLineEdit.text() != "") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) client = Client() client.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/ipc/localfortuneserver.py0000755000076500000240000001040312536324427022644 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# import random from PyQt4 import QtCore, QtGui, QtNetwork class Server(QtGui.QDialog): def __init__(self, parent=None): super(Server, self).__init__(parent) statusLabel = QtGui.QLabel() statusLabel.setWordWrap(True) quitButton = QtGui.QPushButton("Quit") quitButton.setAutoDefault(False) self.fortunes = ( "You've been leading a dog's life. Stay off the furniture.", "You've got to think about tomorrow.", "You will be surprised by a loud noise.", "You will feel hungry again in another hour.", "You might have mail.", "You cannot kill time without injuring eternity.", "Computers are not intelligent. They only think they are.", ) self.server = QtNetwork.QLocalServer() if not self.server.listen('fortune'): QtGui.QMessageBox.critical(self, "Fortune Server", "Unable to start the server: %s." % self.server.errorString()) self.close() return statusLabel.setText("The server is running.\nRun the Fortune Client " "example now.") quitButton.clicked.connect(self.close) self.server.newConnection.connect(self.sendFortune) buttonLayout = QtGui.QHBoxLayout() buttonLayout.addStretch(1) buttonLayout.addWidget(quitButton) buttonLayout.addStretch(1) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(statusLabel) mainLayout.addLayout(buttonLayout) self.setLayout(mainLayout) self.setWindowTitle("Fortune Server") def sendFortune(self): block = QtCore.QByteArray() out = QtCore.QDataStream(block, QtCore.QIODevice.WriteOnly) out.setVersion(QtCore.QDataStream.Qt_4_0) out.writeUInt16(0) out.writeQString(random.choice(self.fortunes)) out.device().seek(0) out.writeUInt16(block.size() - 2) clientConnection = self.server.nextPendingConnection() clientConnection.disconnected.connect(clientConnection.deleteLater) clientConnection.write(block) clientConnection.flush() clientConnection.disconnectFromServer() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) server = Server() server.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/ipc/README0000644000076500000240000000120412536324427017222 0ustar philstaff00000000000000These examples demonstrate IPC support in PyQt. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/ipc/sharedmemory/0000755000076500000240000000000012536324427021044 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/ipc/sharedmemory/dialog.py0000644000076500000240000000415212536324427022657 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'dialog.ui' # # Created: Thu Nov 4 13:41:31 2010 # by: PyQt4 UI code generator 4.8.1 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName(_fromUtf8("Dialog")) Dialog.resize(451, 322) self.gridlayout = QtGui.QGridLayout(Dialog) self.gridlayout.setObjectName(_fromUtf8("gridlayout")) self.loadFromFileButton = QtGui.QPushButton(Dialog) self.loadFromFileButton.setObjectName(_fromUtf8("loadFromFileButton")) self.gridlayout.addWidget(self.loadFromFileButton, 0, 0, 1, 1) self.label = QtGui.QLabel(Dialog) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setWordWrap(True) self.label.setObjectName(_fromUtf8("label")) self.gridlayout.addWidget(self.label, 1, 0, 1, 1) self.loadFromSharedMemoryButton = QtGui.QPushButton(Dialog) self.loadFromSharedMemoryButton.setObjectName(_fromUtf8("loadFromSharedMemoryButton")) self.gridlayout.addWidget(self.loadFromSharedMemoryButton, 2, 0, 1, 1) self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8)) self.loadFromFileButton.setText(QtGui.QApplication.translate("Dialog", "Load Image From File...", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("Dialog", "Launch two of these dialogs. In the first, press the top button and load an image from a file. In the second, press the bottom button and display the loaded image from shared memory.", None, QtGui.QApplication.UnicodeUTF8)) self.loadFromSharedMemoryButton.setText(QtGui.QApplication.translate("Dialog", "Display Image From Shared Memory", None, QtGui.QApplication.UnicodeUTF8)) PyQt-x11-gpl-4.11.4/examples/ipc/sharedmemory/dialog.ui0000644000076500000240000000246212536324427022646 0ustar philstaff00000000000000 Dialog 0 0 451 322 Dialog Load Image From File... Launch two of these dialogs. In the first, press the top button and load an image from a file. In the second, press the bottom button and display the loaded image from shared memory. Qt::AlignCenter true Display Image From Shared Memory PyQt-x11-gpl-4.11.4/examples/ipc/sharedmemory/image.png0000644000076500000240000002372712536324427022647 0ustar philstaff00000000000000‰PNG  IHDR–ljÜÊsRGB®Îé pHYs  šœtIMEØ  ) ï,ip IDATxÚí]{|TŽÿÍÌÙÝìf „„‡<•½D0Iˆ"•ŠXªÐÚ¢r½µ-hµ­ÕöÚñU[‹Šµ€”«(/Ab I ”Ò"¢á¥"äA’M6Ù=gæwÿ˜sfgw“°D^‡ý„ÝsæÌ9g¾ó{ÿæwç!€ˆò‹ú®ö¨Ÿòh|3}¿ü©Úè›jß@¿ºÞXßs?ñ÷Ó)¥pNo†|r}ô¿ÍþŒLßy 7Õ­þ%*µ'~?œ›q2ã+„BÈ/ ΖÈ"ž°TãÖ)LA)¥”~³ä\€PžbhKýTpÎ !†aè˜ÅóÉâ©D§³–àBpÎuõ1=7+.Pa,ýqÎ Ã8p`ÿ~tgCCc @@€DþD5†²qZ?LÊ?²B8çÉÉÉ ÿö\Ïž½,Ë’:˜dBp´UQø}ùÅW ËþOßÑÛs.«o4 ‘¤ä¨e£ê€&ÛùKÁ«Q³ÝÔïu½XôÉ®`Æ?¶lèÚ­›B1^Ÿ·ê B4«¤4˯!–e†ñåŸ_1dİô†×gç !4.ªèΦB<‡íË8ðF.àP! A JéÔ'ÞÛR™¼£lc×nɈáÉ­ˆÞsždÛF…–e¹\®/>?tÅY—üḏ@£…H”hI:Ô¨PA(©KMD$¾În º}ehÒ!Åû½?o®ðî(ÛØí¢î¦iÆËà–¨PW¹[™£Çå=_Ÿ°7Òâ»jmŽ— ÕN9ý??tðŠ¡#Ft ½ò_cŽ€R)»$ñØb¬µÞÆ Õ}EnQ¿{{¨ä4º €)Þïÿµxc…gG鯋º÷Ði±õ'Œ1KÎ=’ ¿C2<;=üÊ9Õ5È EŠAA8À)p‰ú+p§ À pÀ"öÇÞCý )rR]ÓøÊ9ÙéáC†:xÐ0 ˲⟶•Gˆ1%uƒ2æg¼¹Ù’éÓCüÑxó:æ¬øÆÍvsŸQía¤’:p`àÐá£3¬—fŽ©€ÊYI@’ ’gJ7i† å!‡ #ê*‚$c›Fö#J‘¤¥øn[PüþQãÃÒMÝ{öTµ%_ÏùÀH[£B¿ƒû÷’5&ƒ¿tû誚 à@‚ä€$é ´ì=‚Û_ìˆ|=d  °ìÞƒ°@pÂB"ˆàPU|éöÑc2ø€!Y÷ïw¹\ŠÏÛ—º\®û÷ š•›!Í]%ù§pø''`9lÓ’Lì=œÄ²Sî´áÔÙ+?‚‚%¹(ØŒ×"DP´€ ŠœTÕ4.š1:7C šu`ÿ>…ây뻡ǥ¿ýûö ’56Þ6¦ª¦9ÅOhEÄ!‰`À£ARðpr}TPf» \G‘VÕ4.¼mÌØ 8$kÿ¾ã ¨4t¶–Üîñ¾ýgL'1môkÅ\E¿øëÆ7n¶«–&hó©üiš¦ËåÚW^~ÅЬq™ìoÓFUÖáËŽqLïÛHä^«@j³Žþ)mG^Fùv"þ6DL÷û~ôêúµGøŽÒÍ÷î-o8^´œwÞ–—6hhÖuÆ‚[FUÖ‰Ò_b…‰h&Ži@b@°Ñq´pLyŠmÛK+Ò9¢™‘Òñ& Ýï›ùÚú5G­í¥›{÷îÓ¬½ØR€åœµ ý•öéC³&dºŸŸ2²2ÐDá«ý)£•‹Ô¶ !š„¢ M08† ØTJ#ÕH\]KöbÓ"BzŠ÷Žÿ-Y}$¼£tsï>—ÄÐâù`ÚÆðÏÏ>Ý;hXÖõIÏ}wdE HˆÃ?AÔºÓÝÛŠˆ´ÛÒ¨N±Ø÷›b±„yÇó­Ó°rÞDDì”â»óÍ’UG›¶oÙÜç’KuãCm…PßÉ9?…º\.uú©Pá·÷“O]3ü†Œ¤ùßÉ®¨ qOÕ¼¯†:š}E“Ql¸ˆ"¹ÂCÚ%@rTDDÀN~߬·7¬8Ú´ýƒM—^v™Ž¢üK)UOª;¾e02æ§Ú©â _S YŸ"²ýÒS»¥˜Ma¤œsÆØ§{?œ•=¥KòüI£* ’þ D”Ž´˜ÇÁhÑ0Òh…Äž’òDÉ>m¢Ô]§6TŽˆEÇú  !”P‡“g-_ÿ¿‡¶mÞpÉ¥—ÉÇ9Y(™0¥Tv‡|ðÁŠŠ ]èĨ?9™¸Ý ¦Iñ0æ¢.édžžþÈ#¸\.§¶6P¡ŒÜ !c;?ü0ktÎ@7Ÿ›3¸*ØDœ“].ƒ1w(ì„æA òéjh$¾Žwoã Õ#¥ì(FŠN¸ÑaÜÚ~q¨zÜ”ó°iZ-BG_ÒýEÛ> ³Íï}{à@}tNx“ÓŸsž}ôèÑ©S§644¨à³>Мs¿ßÿ抡ÿû†>}¸Û>ÿü“ÔÔ™?üaCCƒFá÷ûßxãnݺ­_¿Þ0 9ø'¬<ÉßcÕÕÕ7Þxcyyy—ô޵Á&Blü ƒUTT‡{tK²¸€Ø@ £I*¹¨d!@D©X ¢*¢"‰*¦H¢©ÖîOßa?§ÁèÁ/šRRºtê”fYÜ!hçK:\YÕ»wï·Þz+--MNÐ`¤’nä$øÕÕÕmݺÕçóµîÌúùƒÖ¿úêó&XBÌ/+[ۭۻ˗‡Ãa‰ºÜ 訨9rdÇŽ7lØÀS(ªgâŒÔP\8Ùï_·nÇãˆ| £»yfÑÊe?XûV¿#GCŒÅ*wÀ¸Ð¼ÃIÀ9*ùPTt´H>`„ÍbZyEÎ!3Ã3îÆ'ÿá¿ïž!ãÀ„"A@JH(¹Ö¢ZJšR™% ¿ÒÒR9Ñ1ÃMÓÌÈÈÔÖ6„B‡Kˆš¦¦`CCC PQU¥’ôêóùŠ‹‹G=räÈ’’Å®›åö­HbBHä Ý.—ÛíFDªyÌ£2&q> N %Ô`Ì`ŒQj0Ê Cþ4cŒ2j$‚@ŠPDŠHP䵻倂AP ENPºudÙÕ=Ø~˜Ç¤„€Çãñ¸Ý'¬b(ü1;;»¶¶¶¬¬Ì0Œ¦¦&—ËÅcŒΦÿt6I””2B!Ìi#›1ÆÜnwSS¥´¨¨H’£¤{uÑSŸþ$› @”ñp¢ëܲ¸ê³#Áóz™a€*¬¯+¯D‹BÆúQ$³€B»±8·Ù §?)ýEž;bĈÚÚÚ­[·2ÆB¡äx-¹â1Æ‘Š'ÅŒ3¥´©©ÉívæääŒ5jýúõ’a¶U.&œþ„H‰#æ1RUͯ›Rnq¯ÛM…°ïÖIŒ‘ ƒ>˜ÿxç¯ïPSË)•§ëÚ±i)êù©Ã™I´F«ßL÷fÝ¡1Yr§dhœó#FÔÔÔlݺ•ÒØØÈ³,+Þ骾pÎ9ç  rDî€jïoÎó =OAAAnnnvvvII cÌ4͘ŒK•?ñ8©ÀÎ_@{îÛª‹ @Â! !uÝ{[:uJ3MËqŠF)iééiùùß©¨ø€ÑNBp¹-1³‡œò8Ö…&CÁ¹çÜ–"®ÍþÔsS[B[Öµùù€øñÇ€°,Ÿ×‹ˆBÒY4 *HLÓd.—ËãqQÚÎí¶„ð1æ6Œä””P(Äd\ÓiÌ¥ÀGäœ'ùý¥[¶Œ;vܵ׮{÷]iò·¢ǘ4‰R! HÚ$F€¤ €R’™™Þ1­½Þ»¡a^¯Ó‰Í]a™AI”ßÎq´ÙTL A!€sDAì‚@°m–¶.$Õ××´{·î2@D¹ÿ¿ØºmÛêÕ«K¶lijl”£ˆJCœs!b4ù·¬Žiijjl,­¯ïáó¥¸Ý\óÚè<žòe0„üº¬Œ Á(M ~:qbL¢Gü¸®®Wr²‹Rû®„pÆ€öí¿øàƒæäÉ[@F©Å9íÙscqqfffLŸ‘ ¢ÒHí”B[?Œa¹òc4cš6 ¹€íØšUÇîœ}¨gç$ÓŠ$&¢ PA@JIØÈÄ{o\’žf„¹óTBªµñ^ô„2˜+޽jĈ<Ó|䦛‚á0Ñ|}6”r˲ !g¦¸(Í]½záèÑYÝ»‡C! ¶ö+¤ÜF #&ùýwÀ3yyM .)ùÑ6´ä ” …®|ã—ss{øý!Ω¶<Á`L ê.9=}n÷¯×¯¿jĈí›6uÊÈÐQ4Ú‹"‘tˆÎÏ„•!¢N ˆÈ(­©·®êÙéí_dUBޤ&zª¢Ë •µ¡›þº!lɳ„ãˆø¥ãñ4|øXÓœ—›{4B)è¬8'Ê«¾H'ZV˜sªTnÇõg"z,‹KnÄyXùÄñîð2 sŽ&çaÎÄr³L3&«HžUÛØøXnî}……ƒ†—(*ŽÚ”¨TgHª¯~®ÓA.F;&»GFõ±„–‰T?#½µI#•üê‹/¾ž““gšórr¾ª«£<} ÛÕ)Š!·Álpn쫺ºy99XTtuvö¦¢¢.]ºH9E[Ê¿“*,Ñ‚~J€‹hÍX¥»k£´D¢)Óì„@ Ó¦úá0C(¿[¦Ðµ>„èKÇ]Nmúý+]îö»îXUõ䨱_ŒRzʃªÃÄz&má"”Ò¯'ÇŽXUuû]w)—abê ˆ(YÈ Š¨ š¾D-j®!D¼*) DAmQ*€eØ& y4QªÌ!ˆcy&¤ÎÈïúú‰½{Ãáˆ×$Í®½†€é8vWoœ®·«I¯Û9:¢ê\G猠GnC „R†Ãy½{¿Z_¯Ü–‰Ú…€@!#Bi#•§ËŸò;BÄo§0DDB¥{T9ÒìöÂöÝTîOÀ.ÔÝ(Œ±†p˜è±'íK¬DŒ¡-5/ODXÆ1G%<õI€úwµ'Æ£¦Ýj{@ !f©© ¨Mì[ÞP-b98v¡N¾¶¥!ÿiüOc‹DúBíx!òla'Îä$Ê“âÈ£Äe‰.P'”˜˜»cÒ¨Eê|X#$C…ÎøêäEߺ–î#q±L@$Ò¼Ö–Ä£ˆÚÄ5—©Âö2;ÓP„`ŒÉ ÞÒB\F ¢ÆxcD ˆ`!ptžF?!·Ãòá$Á iT´UTµœp °äB €á¨…\†sªÔÅäº"y[‘AµÀk³“’œ˜›;â#•š½Æ\55ñ××›äB؉r²y<® J'^“"8F›Êã NiD:žéÄýËöÄñŽ*wû »¹µ‰ $€vÛ0MS ”z £¾©)hYc§*áXÝ•%D’a¤zÃ`„$»ÝÚ¾ý©ý+{„ûoº©W¯^UUUëÞ{ï' ݳç¯99.B,}-!€(’ C7ÞÚl¢ŠÊgGµµQèÙܦîAF?Qh½ É–I¬F ˆv¤ ‘HñI¢¯ý“ž€ioZÖÇUU©nwuCƒ4…@c“W¬p °÷õ×»vë&Ï9lØô[ny¯°ðÆiÓÌüƒ2öqMͰ=¬pØMi”âãØÈʉ‘OrÈL!R““×}òIÀ²þ²cǪ@àí5kòrsUÛ'Lxè¾û®Ÿ:uÊêÕËo¸[–ê– ZB¤ºÝWU™~$A« ª€PJ€  J)PBœ0Beôœ*w2 ª½Ö ±Ku&òà,Ù#ñŽÿ$f+6+„xzÞ¼—««ŸÝ¾½kjª)×—ÄvIIs·l©ëÑヂ‚®Ýº…Ãaä3M3 å忬\ùôîÝ—¦¤ÜQRRðÙgí|>S:ÇmËo‰ÿ®êå˜B¤ú|ï•—O^·îªôô%û÷¿»re^nn8¶,K^1wíÖ탂‚º=ݲ¥ƒ×+¤g’Sˆ®©©ÏnßþruõÓóæ©¿öÂö¢Ñ–æ–Ñý3BÆÐà„ÕPDšA伨¨'Æ­^³ô•l"6Rª»yâ㨑ÃÑ÷/݉W\\\üО=ÿ裮))&çR< .Ù·oÑüù¯7»\.YéF&I„B¡aC†|æLÞÐðÛ!CòW¯.Ø·/Õç Y‚;^;Ìk« Q;¹!ÎS}¾‚}ûÆ®^ý?C‡’`ð¶™3‡ …d2‡¼¢Ëå ‡Ã¯wñüù‹ËËŒK“ó®))ÿ裇öì)..¾zð`™‘¸›È¥¼g´Å ÄÖSPGïPu´˜BD±©MR#¤sJ^Q5SêH¢D½‘”RÓ4¯4hÓúõÃG€; ª ‡;z½Kwíjß½ûˆ¬,!„Z•¡ˆXæ þt֬܅ ß¼üò$Ʀ.7nTïÞ`YÃü~¿ÇFJJB€Òˆf`ëË˧>9|øýû?±cGá¬Yñ—“ùmBˆYYi=züó«¯n¹üòªÆÆT·û¹íÛ³gϦõë¯4Hå:·ÍÍD¢'= ˜ @Tf¯ÝLÅU)„„rÆpÐ4Òh\dÆ‚ˆ‡0ÑÄ‹˜Ñ1MóÊAƒ6¼ÿ~^NÎʽ{)!I.מcÇ®¹é&•FŸƒKéš™ Ïè%K2¼ÞÚ¦¦Ño¿}]§NB¹j€Ë0ÊŽ€=_~iZUš%dMEïÙóú‡‚ÇÓ533Þà±mSÎcï¹æwo¼ñúž=M¦)þ‰¸áý÷uüì–ˆQ!ÓA#76A[hñtbÚ*ÏÉŽÿ9N&å^‘ÓSQ¡²ùìI6b„‹G›Õ¸Œ eáÈEúƒ¯¼²¬¬¬pÓ&©o(.®þê«x—Nܲ ¯÷¦_ýÊíõ~×å"µ¦¿¦âÀ ¶öXiv7»\PkšáÆÆÇÿ{nY-™ŒòÜcGž2edNŽ|„¿ Þ·o_¹èL÷B'VÀKz˜ôpO4‹Õ£N@ÆõâR—"¦úA% Õ ‘tRéLŠUÅÅ­0q7·N‹œó¾}ûöíÛWî¼fàÀük¯jöE“ LhÛµk—Çåšs÷ݧÄ;ó—yóvíÚ•‘‘¡DZÌÈ !>Ú¹sÝ»ï^1hPL"Ë åΖI,‹ Yׄ‘dTt”i'—W­ƒ‚ˆÑO€ 0M"Dn n TÌÀ^V ˆ@¸%Á²ˆüÈž¸Ë$"±¨}|›Ì“5%üýú÷gŒ½òÊ+Ó§O—ú…ÂO–óx<>úhNn®T Ã8á•M¦iºÝîœÜܹsçæåå…B¡˜"¦iz<žÅ‹3Æúõï‡eW1.L…w‚²$yŒíܦ%…ÈXƒ^åÔjApò°£jWhæÒÚ¹’}.·i^”E¢7‘´m£¦E].Ö>ÕÝ¡;dÚ èÐÎä1Á°¥¥I„9ý9çn·{Þ¼y·Ýv[VVÖ%—\"U|‰ŸagÉ’%EEEååå”R·Û}ÂK5ÏðÁ/»ì²W_}uÚ´iBÓ4Õ„ðx<œ1cÆK/½”””$sÕ[é0! ƒì;h.YQ^S¢-ˆˆ pE¢)Ž4kaqš@Hõ±m×’WJÿY¶¨6ÈÊ7Ï(© Yu ¡U…‡:ø™Åí „ö)î}Mà ‰]³¹î2õÖ²¬[o½uçÎ xûí·ÇŽ«ó®¹sç>ðÀ¯½öÚÅ_³©­T(Ù¦eY_|ñÒ¥K'Ož|èС{ï½WO<,((¸ùæ›çÌ™së­·:k N¢ú“T ß{ïüÊëKUijQé³Ê³MoxTõ'½0[ÔóŒ4Y<*ÜcÓ`¤T’ÁšB¨…²ó¬ƒuþñ÷¹yyrX[¯þÔú²™ÏiƼyó{챞={:ÔçóUWW¯_¿Þ²¬Å‹9R/â§úÑSRcÖ²è;ÕÒUŠÂ0Œ’’’éÓ§†1jÔ¨´´´`0XZZzàÀÙ³gßÿý–eÉNZ©(„8Né ØE-qkà¾ÁuÌj^Ÿd 6uTRdUUÕk¯½öÑG@rrr^^Þøñã@zü¢Ñ¶> j#/«W¯.,,lhh€ÜrË-;v”ø)ðNª›^ý·Ù1mö”Dª·>iâÄÒ“¬Á&H•=¾Ej§pŽJ3´Yþ¡ãÇ["šQ¡²‰šÕÑ[ªÖ}JÊ«Çô£Ã¬¯¥nŨh]Æ»\ø¢/¢¨Y:8IyÅ,á—k tKé8²ð4WfQDçèÖìKàë¬xaœæ'<=àéb2^œŸžl©ša³CÑÒ÷–βÎajP<ÖŽ :²âª]Õ›ñ𙯛%x1õŸÁy1ƒuÇU….@ømR«|é¥ÅOýéÏ~Š‚víÙ#üøC†ôéÙSº‰œñÊÚ)‘…­xø Õ…«­ïÿæeái#ôîÚm„+n?„[ÖÛÖ/YòÏ×^û™a¤_zÉ•C‡5jÌ5×ôêÕK¯0tJhñÜ—…§eÉK„M«ß^S&ŽËÚ¶ïHÚ†ÿƒû÷}¹íß‹~÷÷¿Ï$¤sfæ!C&Nœ8uêTŸÏwª Ïqôk•=º-H ›ªÕ Ë ›ÂÀ¿jlü¤>°'Ô°F.]þóò˯¸âŠ^½z);ìäo,Þ ¦ö臚ݙÈþøÎÏ)*Ôc1r¡(õ3ö6ð=VC]f‡o_?~äÈ1YYßî÷-o’·WÃuNÿäê‰Ûí~è¡ß¼õæÒ»noY&¸  Ý’W^•«é•;MYg¯™qº_†sjW&èÌYâçr¹~þóŸ/X°`tÎØú@€Â©««ËÉûÁƳgÏ&”655Ið¤++ÞùyÂÓ='T±P—Ë5gΜ§žzjkÙÖ«¯ÜÐ$„‚ W]=¸¤dÓO>9gί×{.|6Î%ü~ö³Ÿ=óÌ3eeeÝ{ô¨¬¬d“á;f°ÊÊÊž½z•••eeeqΟzê)Ó4[¦^€ðtãwÏ=÷<ûì³eeeýúõã–e0COq6˜Á-ëòË//++:t¨âé§Ÿ>7P<‹5R—øÝ}÷Ý/¼ðBiiiÿþý=Ú£{w‘ÜVˆŒ±Š/¿ìß¿iié°aÃ8çÏ<óŒDñ¬~EéYiêî1—Ë5kÖ¬… nÙ²¥oß¾•••Œ1.dN•U!ˆÈgŒUVVöíÛwË–-YYYBˆùó盦ٺù|ÂSO…:ýÝyç/½ôÒæÍ›/½ôÒÊÊJ·ÛmY–]( ”‚“K,„ÌH«¬¬¼ôÒK7oÞ<|øp!ÄsÏ=wVÓâÙ' U"ˆËåúñ¼dÉ’M›6õéÓ§ªªJ–º–GcKH:Ê4§ªªª>}úlÚ´iĈœó^xAV9<Q4ÎRü øýöÛ—.]ºqãF¹¸Râ' DÁ…ª—¢x¯à‘ ™æÔ«W¯7fgg !^|ñųEã,Åoƌ˖-+))éÞ½{uuµþ:CιŹ@§Ø†­Î¹‚OO½©®®îÞ½{IIɨQ£8ç‹-:Q<;Ô=‘Î0Œ[o½uÅŠëׯïÖ­[uuµ¢?õªa«3Q‡Çj/¯¨®®–•êGÍ9ùå—%Šg‘vsxg”ý'ñ›6mÚÊ•+‹‹‹;wî|ìØ1YÁWê/BÛd…»vø£R.2ÆŽ;Ö¹sçâââ•+WN›6M&‹Æ§Å^€0 Û:µ%[“øM:uÍš5EEE™™™555-á'÷ØÕ!„½”-¾B±¦¦&33³¨¨hÍš5S§NU(ž/T?ÓoQçŸS¦LY·n]AAAzzzMM ¥TÚ‰¨Íâ(ä;ôdùv@ÜŠm%Ï•y·555éééëÖ­›2eŠDQ4W:ö|‡•]IDAT0ñH…z¥ƒ\8yò䢢¢‚‚‚´´´ÚÚZ™ O[QTYˆHZo)³ªkkkÓÒÒ ŠŠŠ&Ož,³§¤”=“9êJ…J‘À¤I“JJJÖ®]Û¾}ûºº:‰ŸhyãBÄPhí!$ŠuuuíÛ·_»vmIIɤI“䚇–Æ/ÈÂãû_$~'Nܼyó;3ššªã× aE4RÍÓ­4Òf QG155õwÞÙ¼yóĉŠg¬\<oK®–øM˜0¡´´tÕªU~¿¿®®N.ë²å] ›<ŸÄ—ÈYÒ¸¬««óûý«V­*--0a‚ZIzfÊÅ3K*ù'—àŽ7nÛ¶m+V¬HNNJþµ¾i²P«µ¦¯Ìne“´’““W¬X±mÛ¶qãÆÉ˜Ô™)Ï *TòO2Ûüüü;v,_¾Üëõêø‰D6é`Ó5RÇÁvÜMGÑëõ._¾|ÇŽùùùª„Ô™&éˆäååíܹsÙ²en·»¾¾^òÏfŒ‡6Ë–ª,?BX<ÑMZ„úúz·Û½lÙ²;wæåå)#çŒB‘žQøI+>77w÷îÝo¾ù¦Çã ƒJµÁ¶lÛF­ÐrN—÷#_«ôæ›oîÞ½;77WUË8sP<#4R=°,+??ïÞ½K—.5 C¾|³ ü3N#ÕJܵ¦‘¶ÂQ ! †a,]ºtïÞ½ùùùªÅ¢ÝœnnU¡gÒ¤IEEE={öœ1c†|ÙÜ øšÑív}V~pÚÙ–%ÀïOyõ­·>úðá°ybvYz†1VTT4iÒ¤•+W¶²þýtSÅiæñ+§UÐ  îÙ³Çï÷ƒA½8D[/aYVFF§ûøu}åÇ¿ž=yb‘?ý[sÿøÈÑ£†aœ Ÿ÷ù|õõõ}ûöõù|úŠåVÞÑ|®Qa³ñ©­x<žž¼Œ‘‹Ó23;;¼‹ Ó´23;wïÞ£sç.'a Ï—÷,õµÿ”‹ß„zü¨Ù…w'¿%%¹Ú¥úä—SËEôêAªjÅ7…â7S.œb‹/^°`')©}»ÔP(\W”ë¤UGNðèñxvïÞÝPWÙ£{&]*>'J;‹e¡œÂ–e-Y²äþû8|øËï^;87ûÊšÚ@(l2Fw%´}H!|>eF(Ç-¸%íÀ¶ƒç¼Þ›sáq»Ú·K)Üðo¾»­K—®sçþñ{ßûžÎHÎ#uù …â‰ÇçÍ3´ßCsf\Ô%½úX@dŒ:oxnÛ+•í(‡þŽøjÇÿn  œ JHZ‡ÔÏWþöñEÅ¥»çÜwÿœÙ³=OLi¢óŽ •íÅ+//ŸyǬ÷ ×Ý5}Ü·^O)©­k ”DŠÀéõª i"¶KMŸyÕ³‹×ŽÎÍ_ðüüÞ½{Kƒ5F9¿ -aI¦wBÖ¬Y{Ç]³Ì†ÊßÞ;=7ûÊ@ ¡16ƒS·>A:‹s¯Ç’’\¸áÿzl±+9ýùgç_wÝ8¹6±Ù…mç>„ñÕŸÿQ ¾¦žûèã?üð=ž3ãâ]ªkj…@F©ýrž¯Ñ©ÁÉ… ”¤µo·ïàá‡_Töч~øþ_Ìq¹Üò¥å-<9!Œ™ø2 cÆ_|>ë¿îYµâ­ÛoɽkÆ$·‹ÕH¾J¨Ì©8µ@Úoò& PíS“Ã&vÑò_+¼þ†çÿõénÝ.’ù‰¬U–pþBoïË™^\üþÌ;î:VqðW?6.gHCCc°)d0e‡‚“>"{é6¾$Or²wmQÙïÿôj‡N=<ÿì˜1£%‡H¤<Íy' [·úíRè–õ§?ÿå—¿üå\’ùМ—õ¹¨úX|åø Ûú É'ÊÓ:¤~òÙç¿}|Ñ¿>=ò‡?üá§?ùoæä‰'h¿ŸïTØ _=zôÈOôõW¿7iÄÝ?šìMr×ÔÕB؉áRgÉ\©ö©þƦð3[¶dùÆ›§NûóÓOddd&Â9/@˜U&ìRJ?ø`ËgÞyhÿÇ÷Ý}óÄü¬ÆÆ¦†FÛá’À±£˜§l,&{=^oÒÊu›ç=³´{¯o½°à¹k®¦²„Ûš™ÂiEé«Bˆçž_pï½÷õìâpöŒÿè×+lZÄ)ÚŸ°Ç~ƒ Ûeük÷þÿybÑÃõ=6ïÎ;fÊ÷p‘½ é9|µººzöœû-|ñ†üÁC}«)–ï»N\ÿDÄ$»lûÇ+Öm›ñƒÛŸx|^ZZšâœ'ìj¹ Î$¤épnBc[·n}à_76ŠI|øl'œ×ëûã¹úê«9爂1ã$c¨° RªNrZØ^­œùIbp ÛFŽú*²˨OaÀïžõÛé´ÿCO;…{1”VIEND®B`‚PyQt-x11-gpl-4.11.4/examples/ipc/sharedmemory/qt.png0000644000076500000240000000451712536324427022205 0ustar philstaff00000000000000‰PNG  IHDRÝóÐ3PLTE+)!¦Î9dv,# …¢2CJ&T`)tŒ/34#•¸5KU'Ã7\k*­4;?$l.}—1鈹˜×IDATx^ìØ¹UCAÑé·Ìúå-à1’°°8T…p½î¢Ÿ¢_Ø`ƒ aƒ 6Ø`ƒ 6Ø`ƒ ­‡™ol¨¿²{Žgj>‡¤èåÜm(ÜÂÌîµ®k·¡™²nµL…?6ò&K©vé:6òuK?¤š¯6Ø¥Jšs³¡~ÈRÍC*¶ÙÐQ–¥”}Ý>6Zåz4é´æ‡v:K¿‡¢zÕ³ êŸõ¦w61þâç£Àl°Á†°Ál°‰oaóÕf™Ý_ºrÚãÚ|°w/Û‘«0@% Øþÿ¯½“»:£^Ø>B”«sæY•lÌ«Pp Nv?L”#üS6%Éîodogý'lΖýƒì-|·MM›’TmmLaàÈù…6]È«„Zÿ*›š²WLL_cSyå«ß`SÄÏI±²±—Á3]‡ÖÉà‘úV›Úü쫯´9È$§÷Ù„Ý%öwÙÔæ ãê‹lNò¦Éá-6uóæiï° Ù/ÈÞ_`ãü¢ŸnS£_–­~´M'¿0{ÿ`›ä׆ε¿<ÎÊjì#ŸhSwÿÙëÇÙôìý·áÁeSŒlpûP7°hÞC4oÅ! ûP±³Áiìg«õ65{ÿ¥8´~ÉÅ¥þ´s áp[„qâr›ˆ±¸³ð_RΆÉbú J¦qŽ¥6é1ÌQøbúsžs¡MZBSlŠw¨/³©ô¨/% ‚Çt²"ãq8~˜3ã±µ{$$<ÐIKlÂýÞLÊ–›2[ÓÁ qt·AØ´E§G%š}½N6=ŠÎu•ÝØ¦fà¡1~tvc›¶ö¨Ú™ô*š¿ ÎÕ˜«æÚìàÚOÙïtiC›„­Lí+ ‚™M%¬ Êþø=›Ù8tÉn“Œl LcCÕÆFp{gbSŒiÒ^p¨Z؈í0œ¼WÁq6ÅvòN£%Rœ÷àЬ.¾kÑüà`dnºM½H“«ÍxæL€îÚ¦kÑŒqN`jPµ!Ãwº¸-k“Ç4e'µiÒŒqö9»*š±§ªI3Æ)4e椙§.Íçð—RgÚ4 G4cœˆŽ‚¸ =  ãtp4ÆmN u š1NÃV¸ÑŒq*éoñH}MfÐŒqýv#í.çÐŒq²z§"í.æÐŒq’z§"åY*΢ãdí3NR>8ÍœÇ?Z@`šÌ8ÍsR^`î^*Á4ŽS^³“ê N¥ApŠò7\¤:ƒ Jƒálº³8©7¤qN݇4+f3Hã0à 6èÊ §ÿ™¢Ú~¤¹ºé¦4ÔuªªosMbEìº:%Å¡¸-§áMó ‡âs9 šƒ1)n4ërîš»aÒ[ï–4@ªÛ`¸1¤áMq+Nz›ìh óú mã€Õ! Å6$½)üh¸(Nâ¤6…ïV4èÖ¦ÙÛD#»_”Ô–7nÍz ëÒà“Ænolhp¿Æf= Ÿæ6°1¥á oƒb5 y«Í·Úà4ßlƒÓ|¿Mò’^mÒà8ï·IþaÒ‹m @ଷ)c›Ð(â„ìçøD› p^±×t"N³ÿþ&m@£ˆ l€hpœým2@àßð|  ÑÃéŸipçT,÷ ½*ѧÁqІk§Áq¢b) é•BfœÇÓ«Ûä1NAipœ0¶‰KjÚJƒã8Í2!R¼ˆBPg×,L'Å£ipœº¦†¶ûqNŒÇI~Ö·azÒ©Ä›âlcš}Ñÿz¯Å©ºvê­@çZœã§¾Mðãl¼g÷ã”6ì/¤@8DNP¾Y€t_ÇàÀ¡Þ!†Ðæx|š\¤aFp pmjÓŸ/åå" „〫“PÎÏû³\¢p*p%nÓ€ ²\ ÁpponÓ‘+fdHƒáÔK¤e– g¤id@â4è’SܦAW‘É€fˆƒç˜gÓ±{‹e@3§Ì³áŒÝ†&šÙ8O´9À«‹e@3'Í´)è5Ê2 ™ŠC<Ó†7ôöbÐÌÄismüÐLÄ)sm8ÃÉË€fNäÉ6 öd@3 '̶a‹ìe@3'ót§ð>Óèã¤ù6•ÞÉ%#}œÌómØiŒ}2 ÑÇI6•4ÞzÒ:³%Nf vJïs3ÅI665¿ggNþu8ÁʆwìjK{œÈf6ÁßÀ)€SìlxCn°ÇqlhSo5ã±'WK>€×@›ã6µáx¯åÂBœmÊÍVluUÀèUÀ£c†s²¹ G3[Y‚“ØÔÛH®2”"ÀVÊÒ†OïMuª#`ŸikÃÍê!`nnûé|;aóH’½M}Ø”{ª|#åÈL2·áîŸfKõ*Ìî_ðÝ–òU» —z6Æ!Æâ<”ØÒ_€Â!ˆ‹ýÌœ’üŹ3üŸäÜ *L l8ú·$™ÛÔý[qˆqîÛüâÿâÜ·ùÅ!þÅ™lÃuû>b­È{pÌmؽŦÙÛp¢WÐ/°ážßBcoÃ5¾€°Áâ^CcoÃ^@ؼp¥C `ó‚ùŠÎN¡ —hK#•¹@chÃ|𬠡@ciõÉ»XH Ø(§›t¬­\¬²lôsæÙ21\-AÆlô“¦êäór}Ž0`ó>œ®/ 6¯Ó‰éFe—0`37gÔ–‘p§ìM°™žÒH&»r«&P°1IÚtd¶ófÁ¤ðR³Jš˜êÝjRaÈÆ’'z´œéŽ0bcœzJ¾ï²·óQ²0fcŸ’îÔcÅvÖ‡EÚ˜ͪ„Ôb-¹Ô vaÐfmz8œÄýO(ÆØÜúíÚ± 0ÁHÀJ÷_73;¹áêŸîýS›­u›¯Ø°aÆ 6l؈ 6lذaÆ ±aÆ 6lذa#6lذaÆ 6z%D•ÃúÛäIEND®B`‚PyQt-x11-gpl-4.11.4/examples/ipc/sharedmemory/sharedmemory.py0000755000076500000240000001662112536324427024126 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:LGPL$ ## Commercial Usage ## Licensees holding valid Qt Commercial licenses may use this file in ## accordance with the Qt Commercial License Agreement provided with the ## Software or, alternatively, in accordance with the terms contained in ## a written agreement between you and Nokia. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser ## General Public License version 2.1 as published by the Free Software ## Foundation and appearing in the file LICENSE.LGPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU Lesser General Public License version 2.1 requirements ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Nokia gives you certain additional ## rights. These rights are described in the Nokia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## ## GNU General Public License Usage ## Alternatively, this file may be used under the terms of the GNU ## General Public License version 3.0 as published by the Free Software ## Foundation and appearing in the file LICENSE.GPL included in the ## packaging of this file. Please review the following information to ## ensure the GNU General Public License version 3.0 requirements will be ## met: http://www.gnu.org/copyleft/gpl.html. ## ## If you have questions regarding the use of this file, please contact ## Nokia at qt-info@nokia.com. ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui from dialog import Ui_Dialog class Dialog(QtGui.QDialog): """ This class is a simple example of how to use QSharedMemory. It is a simple dialog that presents a few buttons. Run the executable twice to create two processes running the dialog. In one of the processes, press the button to load an image into a shared memory segment, and then select an image file to load. Once the first process has loaded and displayed the image, in the second process, press the button to read the same image from shared memory. The second process displays the same image loaded from its new location in shared memory. The class contains a data member sharedMemory, which is initialized with the key "QSharedMemoryExample" to force all instances of Dialog to access the same shared memory segment. The constructor also connects the clicked() signal from each of the three dialog buttons to the slot function appropriate for handling each button. """ def __init__(self, parent = None): super(Dialog, self).__init__(parent) self.sharedMemory = QtCore.QSharedMemory('QSharedMemoryExample') self.ui = Ui_Dialog() self.ui.setupUi(self) self.ui.loadFromFileButton.clicked.connect(self.loadFromFile) self.ui.loadFromSharedMemoryButton.clicked.connect(self.loadFromMemory) self.setWindowTitle("SharedMemory Example") def loadFromFile(self): """ This slot function is called when the "Load Image From File..." button is pressed on the firs Dialog process. First, it tests whether the process is already connected to a shared memory segment and, if so, detaches from that segment. This ensures that we always start the example from the beginning if we run it multiple times with the same two Dialog processes. After detaching from an existing shared memory segment, the user is prompted to select an image file. The selected file is loaded into a QImage. The QImage is displayed in the Dialog and streamed into a QBuffer with a QDataStream. Next, it gets a new shared memory segment from the system big enough to hold the image data in the QBuffer, and it locks the segment to prevent the second Dialog process from accessing it. Then it copies the image from the QBuffer into the shared memory segment. Finally, it unlocks the shared memory segment so the second Dialog process can access it. After self function runs, the user is expected to press the "Load Image from Shared Memory" button on the second Dialog process. """ if self.sharedMemory.isAttached(): self.detach() self.ui.label.setText("Select an image file") fileName = QtGui.QFileDialog.getOpenFileName(self, None, None, "Images (*.png *.xpm *.jpg)") image = QtGui.QImage() if not image.load(fileName): self.ui.label.setText( "Selected file is not an image, please select another.") return self.ui.label.setPixmap(QtGui.QPixmap.fromImage(image)) # Load into shared memory. buf = QtCore.QBuffer() buf.open(QtCore.QBuffer.ReadWrite) out = QtCore.QDataStream(buf) out << image size = buf.size() if not self.sharedMemory.create(size): self.ui.label.setText("Unable to create shared memory segment.") return size = min(self.sharedMemory.size(), size) self.sharedMemory.lock() # Copy image data from buf into shared memory area. self.sharedMemory.data()[:] = buf.data().data() self.sharedMemory.unlock() def loadFromMemory(self): """ This slot function is called in the second Dialog process, when the user presses the "Load Image from Shared Memory" button. First, it attaches the process to the shared memory segment created by the first Dialog process. Then it locks the segment for exclusive access, copies the image data from the segment into a QBuffer, and streams the QBuffer into a QImage. Then it unlocks the shared memory segment, detaches from it, and finally displays the QImage in the Dialog. """ if not self.sharedMemory.attach(): self.ui.label.setText( "Unable to attach to shared memory segment.\nLoad an " "image first.") return buf = QtCore.QBuffer() ins = QtCore.QDataStream(buf) image = QtGui.QImage() self.sharedMemory.lock() buf.setData(self.sharedMemory.constData()) buf.open(QtCore.QBuffer.ReadOnly) ins >> image self.sharedMemory.unlock() self.sharedMemory.detach() self.ui.label.setPixmap(QtGui.QPixmap.fromImage(image)) def detach(self): """ This private function is called by the destructor to detach the process from its shared memory segment. When the last process detaches from a shared memory segment, the system releases the shared memory. """ if not self.sharedMemory.detach(): self.ui.label.setText("Unable to detach from shared memory.") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) dialog = Dialog() dialog.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/0000755000076500000240000000000012536324427017606 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/itemviews/basicsortfiltermodel.py0000755000076500000240000002343512536324427024412 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui SUBJECT, SENDER, DATE = range(3) # Work around the fact that QSortFilterProxyModel always filters datetime # values in QtCore.Qt.ISODate format, but the tree views display using # QtCore.Qt.DefaultLocaleShortDate format. class SortFilterProxyModel(QtGui.QSortFilterProxyModel): def filterAcceptsRow(self, sourceRow, sourceParent): # Do we filter for the date column? if self.filterKeyColumn() == DATE: # Fetch datetime value. index = self.sourceModel().index(sourceRow, DATE, sourceParent) data = self.sourceModel().data(index) # Return, if regExp match in displayed format. return (self.filterRegExp().indexIn(data.toString(QtCore.Qt.DefaultLocaleShortDate)) >= 0) # Not our business. return super(SortFilterProxyModel, self).filterAcceptsRow(sourceRow, sourceParent) class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() self.proxyModel = SortFilterProxyModel() self.proxyModel.setDynamicSortFilter(True) self.sourceGroupBox = QtGui.QGroupBox("Original Model") self.proxyGroupBox = QtGui.QGroupBox("Sorted/Filtered Model") self.sourceView = QtGui.QTreeView() self.sourceView.setRootIsDecorated(False) self.sourceView.setAlternatingRowColors(True) self.proxyView = QtGui.QTreeView() self.proxyView.setRootIsDecorated(False) self.proxyView.setAlternatingRowColors(True) self.proxyView.setModel(self.proxyModel) self.proxyView.setSortingEnabled(True) self.sortCaseSensitivityCheckBox = QtGui.QCheckBox("Case sensitive sorting") self.filterCaseSensitivityCheckBox = QtGui.QCheckBox("Case sensitive filter") self.filterPatternLineEdit = QtGui.QLineEdit() self.filterPatternLabel = QtGui.QLabel("&Filter pattern:") self.filterPatternLabel.setBuddy(self.filterPatternLineEdit) self.filterSyntaxComboBox = QtGui.QComboBox() self.filterSyntaxComboBox.addItem("Regular expression", QtCore.QRegExp.RegExp) self.filterSyntaxComboBox.addItem("Wildcard", QtCore.QRegExp.Wildcard) self.filterSyntaxComboBox.addItem("Fixed string", QtCore.QRegExp.FixedString) self.filterSyntaxLabel = QtGui.QLabel("Filter &syntax:") self.filterSyntaxLabel.setBuddy(self.filterSyntaxComboBox) self.filterColumnComboBox = QtGui.QComboBox() self.filterColumnComboBox.addItem("Subject") self.filterColumnComboBox.addItem("Sender") self.filterColumnComboBox.addItem("Date") self.filterColumnLabel = QtGui.QLabel("Filter &column:") self.filterColumnLabel.setBuddy(self.filterColumnComboBox) self.filterPatternLineEdit.textChanged.connect(self.filterRegExpChanged) self.filterSyntaxComboBox.currentIndexChanged.connect(self.filterRegExpChanged) self.filterColumnComboBox.currentIndexChanged.connect(self.filterColumnChanged) self.filterCaseSensitivityCheckBox.toggled.connect(self.filterRegExpChanged) self.sortCaseSensitivityCheckBox.toggled.connect(self.sortChanged) sourceLayout = QtGui.QHBoxLayout() sourceLayout.addWidget(self.sourceView) self.sourceGroupBox.setLayout(sourceLayout) proxyLayout = QtGui.QGridLayout() proxyLayout.addWidget(self.proxyView, 0, 0, 1, 3) proxyLayout.addWidget(self.filterPatternLabel, 1, 0) proxyLayout.addWidget(self.filterPatternLineEdit, 1, 1, 1, 2) proxyLayout.addWidget(self.filterSyntaxLabel, 2, 0) proxyLayout.addWidget(self.filterSyntaxComboBox, 2, 1, 1, 2) proxyLayout.addWidget(self.filterColumnLabel, 3, 0) proxyLayout.addWidget(self.filterColumnComboBox, 3, 1, 1, 2) proxyLayout.addWidget(self.filterCaseSensitivityCheckBox, 4, 0, 1, 2) proxyLayout.addWidget(self.sortCaseSensitivityCheckBox, 4, 2) self.proxyGroupBox.setLayout(proxyLayout) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.sourceGroupBox) mainLayout.addWidget(self.proxyGroupBox) self.setLayout(mainLayout) self.setWindowTitle("Basic Sort/Filter Model") self.resize(500, 450) self.proxyView.sortByColumn(SENDER, QtCore.Qt.AscendingOrder) self.filterColumnComboBox.setCurrentIndex(SENDER) self.filterPatternLineEdit.setText("Andy|Grace") self.filterCaseSensitivityCheckBox.setChecked(True) self.sortCaseSensitivityCheckBox.setChecked(True) def setSourceModel(self, model): self.proxyModel.setSourceModel(model) self.sourceView.setModel(model) def filterRegExpChanged(self): syntax_nr = self.filterSyntaxComboBox.itemData(self.filterSyntaxComboBox.currentIndex()) syntax = QtCore.QRegExp.PatternSyntax(syntax_nr) if self.filterCaseSensitivityCheckBox.isChecked(): caseSensitivity = QtCore.Qt.CaseSensitive else: caseSensitivity = QtCore.Qt.CaseInsensitive regExp = QtCore.QRegExp(self.filterPatternLineEdit.text(), caseSensitivity, syntax) self.proxyModel.setFilterRegExp(regExp) def filterColumnChanged(self): self.proxyModel.setFilterKeyColumn(self.filterColumnComboBox.currentIndex()) def sortChanged(self): if self.sortCaseSensitivityCheckBox.isChecked(): caseSensitivity = QtCore.Qt.CaseSensitive else: caseSensitivity = QtCore.Qt.CaseInsensitive self.proxyModel.setSortCaseSensitivity(caseSensitivity) def addMail(model, subject, sender, date): model.insertRow(0) model.setData(model.index(0, SUBJECT), subject) model.setData(model.index(0, SENDER), sender) model.setData(model.index(0, DATE), date) def createMailModel(parent): model = QtGui.QStandardItemModel(0, 3, parent) model.setHeaderData(SUBJECT, QtCore.Qt.Horizontal, "Subject") model.setHeaderData(SENDER, QtCore.Qt.Horizontal, "Sender") model.setHeaderData(DATE, QtCore.Qt.Horizontal, "Date") addMail(model, "Happy New Year!", "Grace K. ", QtCore.QDateTime(QtCore.QDate(2006, 12, 31), QtCore.QTime(17, 3))) addMail(model, "Radically new concept", "Grace K. ", QtCore.QDateTime(QtCore.QDate(2006, 12, 22), QtCore.QTime(9, 44))) addMail(model, "Accounts", "pascale@nospam.com", QtCore.QDateTime(QtCore.QDate(2006, 12, 31), QtCore.QTime(12, 50))) addMail(model, "Expenses", "Joe Bloggs ", QtCore.QDateTime(QtCore.QDate(2006, 12, 25), QtCore.QTime(11, 39))) addMail(model, "Re: Expenses", "Andy ", QtCore.QDateTime(QtCore.QDate(2007, 1, 2), QtCore.QTime(16, 5))) addMail(model, "Re: Accounts", "Joe Bloggs ", QtCore.QDateTime(QtCore.QDate(2007, 1, 3), QtCore.QTime(14, 18))) addMail(model, "Re: Accounts", "Andy ", QtCore.QDateTime(QtCore.QDate(2007, 1, 3), QtCore.QTime(14, 26))) addMail(model, "Sports", "Linda Smith ", QtCore.QDateTime(QtCore.QDate(2007, 1, 5), QtCore.QTime(11, 33))) addMail(model, "AW: Sports", "Rolf Newschweinstein ", QtCore.QDateTime(QtCore.QDate(2007, 1, 5), QtCore.QTime(12, 0))) addMail(model, "RE: Sports", "Petra Schmidt ", QtCore.QDateTime(QtCore.QDate(2007, 1, 5), QtCore.QTime(12, 1))) return model if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.setSourceModel(createMailModel(window)) window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/chart/0000755000076500000240000000000012536324427020707 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/itemviews/chart/chart.py0000755000076500000240000005246512536324427022401 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # These are only needed for Python v2 but are harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) import math from PyQt4 import QtCore, QtGui try: import chart_rc3 except ImportError: import chart_rc2 class PieView(QtGui.QAbstractItemView): def __init__(self, parent=None): super(PieView, self).__init__(parent) self.horizontalScrollBar().setRange(0, 0) self.verticalScrollBar().setRange(0, 0) self.margin = 8 self.totalSize = 300 self.pieSize = self.totalSize - 2*self.margin self.validItems = 0 self.totalValue = 0.0 self.origin = QtCore.QPoint() self.rubberBand = None def dataChanged(self, topLeft, bottomRight): super(PieView, self).dataChanged(topLeft, bottomRight) self.validItems = 0 self.totalValue = 0.0 for row in range(self.model().rowCount(self.rootIndex())): index = self.model().index(row, 1, self.rootIndex()) value = self.model().data(index) if value is not None and value > 0.0: self.totalValue += value self.validItems += 1 self.viewport().update() def edit(self, index, trigger, event): if index.column() == 0: return super(PieView, self).edit(index, trigger, event) else: return False def indexAt(self, point): if self.validItems == 0: return QtCore.QModelIndex() # Transform the view coordinates into contents widget coordinates. wx = point.x() + self.horizontalScrollBar().value() wy = point.y() + self.verticalScrollBar().value() if wx < self.totalSize: cx = wx - self.totalSize/2 cy = self.totalSize/2 - wy; # positive cy for items above the center # Determine the distance from the center point of the pie chart. d = (cx**2 + cy**2)**0.5 if d == 0 or d > self.pieSize/2: return QtCore.QModelIndex() # Determine the angle of the point. angle = (180 / math.pi) * math.acos(cx/d) if cy < 0: angle = 360 - angle # Find the relevant slice of the pie. startAngle = 0.0 for row in range(self.model().rowCount(self.rootIndex())): index = self.model().index(row, 1, self.rootIndex()) value = self.model().data(index) if value > 0.0: sliceAngle = 360*value/self.totalValue if angle >= startAngle and angle < (startAngle + sliceAngle): return self.model().index(row, 1, self.rootIndex()) startAngle += sliceAngle else: itemHeight = QtGui.QFontMetrics(self.viewOptions().font).height() listItem = int((wy - self.margin) / itemHeight) validRow = 0 for row in range(self.model().rowCount(self.rootIndex())): index = self.model().index(row, 1, self.rootIndex()) if self.model().data(index) > 0.0: if listItem == validRow: return self.model().index(row, 0, self.rootIndex()) # Update the list index that corresponds to the next valid # row. validRow += 1 return QtCore.QModelIndex() def isIndexHidden(self, index): return False def itemRect(self, index): if not index.isValid(): return QtCore.QRect() # Check whether the index's row is in the list of rows represented # by slices. if index.column() != 1: valueIndex = self.model().index(index.row(), 1, self.rootIndex()) else: valueIndex = index if self.model().data(valueIndex) > 0.0: listItem = 0 for row in range(index.row()-1, -1, -1): if self.model().data(self.model().index(row, 1, self.rootIndex())) > 0.0: listItem += 1 if index.column() == 0: itemHeight = QtGui.QFontMetrics(self.viewOptions().font).height() return QtCore.QRect(self.totalSize, int(self.margin + listItem*itemHeight), self.totalSize - self.margin, int(itemHeight)) elif index.column() == 1: return self.viewport().rect() return QtCore.QRect() def itemRegion(self, index): if not index.isValid(): return QtGui.QRegion() if index.column() != 1: return QtGui.QRegion(self.itemRect(index)) if self.model().data(index) <= 0.0: return QtGui.QRegion() startAngle = 0.0 for row in range(self.model().rowCount(self.rootIndex())): sliceIndex = self.model().index(row, 1, self.rootIndex()) value = self.model().data(sliceIndex) if value > 0.0: angle = 360*value/self.totalValue if sliceIndex == index: slicePath = QtGui.QPainterPath() slicePath.moveTo(self.totalSize/2, self.totalSize/2) slicePath.arcTo(self.margin, self.margin, self.margin+self.pieSize, self.margin+self.pieSize, startAngle, angle) slicePath.closeSubpath() return QtGui.QRegion(slicePath.toFillPolygon().toPolygon()) startAngle += angle return QtGui.QRegion() def horizontalOffset(self): return self.horizontalScrollBar().value() def mousePressEvent(self, event): super(PieView, self).mousePressEvent(event) self.origin = event.pos() if not self.rubberBand: self.rubberBand = QtGui.QRubberBand(QtGui.QRubberBand.Rectangle, self) self.rubberBand.setGeometry(QtCore.QRect(self.origin, QtCore.QSize())) self.rubberBand.show() def mouseMoveEvent(self, event): if self.rubberBand: self.rubberBand.setGeometry(QtCore.QRect(self.origin, event.pos()).normalized()) super(PieView, self).mouseMoveEvent(event) def mouseReleaseEvent(self, event): super(PieView, self).mouseReleaseEvent(event) if self.rubberBand: self.rubberBand.hide() self.viewport().update() def moveCursor(self, cursorAction, modifiers): current = self.currentIndex() if cursorAction == QtGui.QAbstractItemView.MoveLeft or \ cursorAction == QtGui.QAbstractItemView.MoveUp: if current.row() > 0: current = self.model().index(current.row() - 1, current.column(), self.rootIndex()) else: current = self.model().index(0, current.column(), self.rootIndex()) elif cursorAction == QtGui.QAbstractItemView.MoveRight or \ cursorAction == QtGui.QAbstractItemView.MoveDown: if current.row() < self.rows(current) - 1: current = self.model().index(current.row() + 1, current.column(), self.rootIndex()) else: current = self.model().index(self.rows(current) - 1, current.column(), self.rootIndex()) self.viewport().update() return current def paintEvent(self, event): selections = self.selectionModel() option = self.viewOptions() state = option.state background = option.palette.base() foreground = QtGui.QPen(option.palette.color(QtGui.QPalette.WindowText)) textPen = QtGui.QPen(option.palette.color(QtGui.QPalette.Text)) highlightedPen = QtGui.QPen(option.palette.color(QtGui.QPalette.HighlightedText)) painter = QtGui.QPainter(self.viewport()) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.fillRect(event.rect(), background) painter.setPen(foreground) # Viewport rectangles pieRect = QtCore.QRect(self.margin, self.margin, self.pieSize, self.pieSize) keyPoint = QtCore.QPoint(self.totalSize - self.horizontalScrollBar().value(), self.margin - self.verticalScrollBar().value()) if self.validItems > 0: painter.save() painter.translate(pieRect.x() - self.horizontalScrollBar().value(), pieRect.y() - self.verticalScrollBar().value()) painter.drawEllipse(0, 0, self.pieSize, self.pieSize) startAngle = 0.0 for row in range(self.model().rowCount(self.rootIndex())): index = self.model().index(row, 1, self.rootIndex()) value = self.model().data(index) if value > 0.0: angle = 360*value/self.totalValue colorIndex = self.model().index(row, 0, self.rootIndex()) color = self.model().data(colorIndex, QtCore.Qt.DecorationRole) if self.currentIndex() == index: painter.setBrush(QtGui.QBrush(color, QtCore.Qt.Dense4Pattern)) elif selections.isSelected(index): painter.setBrush(QtGui.QBrush(color, QtCore.Qt.Dense3Pattern)) else: painter.setBrush(QtGui.QBrush(color)) painter.drawPie(0, 0, self.pieSize, self.pieSize, int(startAngle*16), int(angle*16)) startAngle += angle painter.restore() keyNumber = 0 for row in range(self.model().rowCount(self.rootIndex())): index = self.model().index(row, 1, self.rootIndex()) value = self.model().data(index) if value > 0.0: labelIndex = self.model().index(row, 0, self.rootIndex()) option = self.viewOptions() option.rect = self.visualRect(labelIndex) if selections.isSelected(labelIndex): option.state |= QtGui.QStyle.State_Selected if self.currentIndex() == labelIndex: option.state |= QtGui.QStyle.State_HasFocus self.itemDelegate().paint(painter, option, labelIndex) keyNumber += 1 def resizeEvent(self, event): self.updateGeometries() def rows(self, index): return self.model().rowCount(self.model().parent(index)) def rowsInserted(self, parent, start, end): for row in range(start, end + 1): index = self.model().index(row, 1, self.rootIndex()) value = self.model().data(index) if value is not None and value > 0.0: self.totalValue += value self.validItems += 1 super(PieView, self).rowsInserted(parent, start, end) def rowsAboutToBeRemoved(self, parent, start, end): for row in range(start, end + 1): index = self.model().index(row, 1, self.rootIndex()) value = self.model().data(index) if value is not None and value > 0.0: self.totalValue -= value self.validItems -= 1 super(PieView, self).rowsAboutToBeRemoved(parent, start, end) def scrollContentsBy(self, dx, dy): self.viewport().scroll(dx, dy) def scrollTo(self, index, ScrollHint): area = self.viewport().rect() rect = self.visualRect(index) if rect.left() < area.left(): self.horizontalScrollBar().setValue( self.horizontalScrollBar().value() + rect.left() - area.left()) elif rect.right() > area.right(): self.horizontalScrollBar().setValue( self.horizontalScrollBar().value() + min( rect.right() - area.right(), rect.left() - area.left())) if rect.top() < area.top(): self.verticalScrollBar().setValue( self.verticalScrollBar().value() + rect.top() - area.top()) elif rect.bottom() > area.bottom(): self.verticalScrollBar().setValue( self.verticalScrollBar().value() + min( rect.bottom() - area.bottom(), rect.top() - area.top())) def setSelection(self, rect, command): # Use content widget coordinates because we will use the itemRegion() # function to check for intersections. contentsRect = rect.translated(self.horizontalScrollBar().value(), self.verticalScrollBar().value()).normalized() rows = self.model().rowCount(self.rootIndex()) columns = self.model().columnCount(self.rootIndex()) indexes = [] for row in range(rows): for column in range(columns): index = self.model().index(row, column, self.rootIndex()) region = self.itemRegion(index) if not region.intersect(QtGui.QRegion(contentsRect)).isEmpty(): indexes.append(index) if len(indexes) > 0: firstRow = indexes[0].row() lastRow = indexes[0].row() firstColumn = indexes[0].column() lastColumn = indexes[0].column() for i in range(1, len(indexes)): firstRow = min(firstRow, indexes[i].row()) lastRow = max(lastRow, indexes[i].row()) firstColumn = min(firstColumn, indexes[i].column()) lastColumn = max(lastColumn, indexes[i].column()) selection = QtGui.QItemSelection( self.model().index(firstRow, firstColumn, self.rootIndex()), self.model().index(lastRow, lastColumn, self.rootIndex())) self.selectionModel().select(selection, command) else: noIndex = QtCore.QModelIndex() selection = QtGui.QItemSelection(noIndex, noIndex) self.selectionModel().select(selection, command) self.update() def updateGeometries(self): self.horizontalScrollBar().setPageStep(self.viewport().width()) self.horizontalScrollBar().setRange(0, max(0, 2*self.totalSize - self.viewport().width())) self.verticalScrollBar().setPageStep(self.viewport().height()) self.verticalScrollBar().setRange(0, max(0, self.totalSize - self.viewport().height())) def verticalOffset(self): return self.verticalScrollBar().value() def visualRect(self, index): rect = self.itemRect(index) if rect.isValid(): return QtCore.QRect(rect.left() - self.horizontalScrollBar().value(), rect.top() - self.verticalScrollBar().value(), rect.width(), rect.height()) else: return rect def visualRegionForSelection(self, selection): region = QtGui.QRegion() for span in selection: for row in range(span.top(), span.bottom() + 1): for col in range(span.left(), span.right() + 1): index = self.model().index(row, col, self.rootIndex()) region += self.visualRect(index) return region class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() fileMenu = QtGui.QMenu("&File", self) openAction = fileMenu.addAction("&Open...") openAction.setShortcut("Ctrl+O") saveAction = fileMenu.addAction("&Save As...") saveAction.setShortcut("Ctrl+S") quitAction = fileMenu.addAction("E&xit") quitAction.setShortcut("Ctrl+Q") self.setupModel() self.setupViews() openAction.triggered.connect(self.openFile) saveAction.triggered.connect(self.saveFile) quitAction.triggered.connect(QtGui.qApp.quit) self.menuBar().addMenu(fileMenu) self.statusBar() self.openFile(':/Charts/qtdata.cht') self.setWindowTitle("Chart") self.resize(870, 550) def setupModel(self): self.model = QtGui.QStandardItemModel(8, 2, self) self.model.setHeaderData(0, QtCore.Qt.Horizontal, "Label") self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Quantity") def setupViews(self): splitter = QtGui.QSplitter() table = QtGui.QTableView() self.pieChart = PieView() splitter.addWidget(table) splitter.addWidget(self.pieChart) splitter.setStretchFactor(0, 0) splitter.setStretchFactor(1, 1) table.setModel(self.model) self.pieChart.setModel(self.model) self.selectionModel = QtGui.QItemSelectionModel(self.model) table.setSelectionModel(self.selectionModel) self.pieChart.setSelectionModel(self.selectionModel) table.horizontalHeader().setStretchLastSection(True) self.setCentralWidget(splitter) def openFile(self, path=None): if not path: path = QtGui.QFileDialog.getOpenFileName(self, "Choose a data file", '', '*.cht') if path: f = QtCore.QFile(path) if f.open(QtCore.QFile.ReadOnly | QtCore.QFile.Text): stream = QtCore.QTextStream(f) self.model.removeRows(0, self.model.rowCount(QtCore.QModelIndex()), QtCore.QModelIndex()) row = 0 line = stream.readLine() while line: self.model.insertRows(row, 1, QtCore.QModelIndex()) pieces = line.split(',') self.model.setData(self.model.index(row, 0, QtCore.QModelIndex()), pieces[0]) self.model.setData(self.model.index(row, 1, QtCore.QModelIndex()), float(pieces[1])) self.model.setData(self.model.index(row, 0, QtCore.QModelIndex()), QtGui.QColor(pieces[2]), QtCore.Qt.DecorationRole) row += 1 line = stream.readLine() f.close() self.statusBar().showMessage("Loaded %s" % path, 2000) def saveFile(self): fileName = QtGui.QFileDialog.getSaveFileName(self, "Save file as", '', '*.cht') if fileName: f = QtCore.QFile(fileName) if f.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): for row in range(self.model.rowCount(QtCore.QModelIndex())): pieces = [] pieces.append(self.model.data(self.model.index(row, 0, QtCore.QModelIndex()), QtCore.Qt.DisplayRole)) pieces.append(str(self.model.data(self.model.index(row, 1, QtCore.QModelIndex()), QtCore.Qt.DisplayRole))) pieces.append(self.model.data(self.model.index(row, 0, QtCore.QModelIndex()), QtCore.Qt.DecorationRole).name()) f.write(QtCore.QByteArray(','.join(pieces))) f.write('\n') f.close() self.statusBar().showMessage("Saved %s" % fileName, 2000) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/chart/chart.qrc0000644000076500000240000000015712536324427022522 0ustar philstaff00000000000000 qtdata.cht PyQt-x11-gpl-4.11.4/examples/itemviews/chart/chart_rc2.py0000644000076500000240000000504312536324427023132 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:40:42 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x01\x90\ \x53\ \x63\x69\x65\x6e\x74\x69\x66\x69\x63\x20\x52\x65\x73\x65\x61\x72\ \x63\x68\x2c\x32\x31\x2c\x23\x39\x39\x65\x36\x30\x30\x0a\x45\x6e\ \x67\x69\x6e\x65\x65\x72\x69\x6e\x67\x20\x26\x20\x44\x65\x73\x69\ \x67\x6e\x2c\x31\x38\x2c\x23\x39\x39\x63\x63\x30\x30\x0a\x41\x75\ \x74\x6f\x6d\x6f\x74\x69\x76\x65\x2c\x31\x34\x2c\x23\x39\x39\x62\ \x33\x30\x30\x0a\x41\x65\x72\x6f\x73\x70\x61\x63\x65\x2c\x31\x33\ \x2c\x23\x39\x66\x39\x39\x31\x61\x0a\x41\x75\x74\x6f\x6d\x61\x74\ \x69\x6f\x6e\x20\x26\x20\x4d\x61\x63\x68\x69\x6e\x65\x20\x54\x6f\ \x6f\x6c\x73\x2c\x31\x33\x2c\x23\x61\x34\x38\x30\x33\x33\x0a\x4d\ \x65\x64\x69\x63\x61\x6c\x20\x26\x20\x42\x69\x6f\x69\x6e\x66\x6f\ \x72\x6d\x61\x74\x69\x63\x73\x2c\x31\x33\x2c\x23\x61\x39\x36\x36\ \x34\x64\x0a\x49\x6d\x61\x67\x69\x6e\x67\x20\x26\x20\x53\x70\x65\ \x63\x69\x61\x6c\x20\x45\x66\x66\x65\x63\x74\x73\x2c\x31\x32\x2c\ \x23\x61\x65\x34\x64\x36\x36\x0a\x44\x65\x66\x65\x6e\x73\x65\x2c\ \x31\x31\x2c\x23\x62\x33\x33\x33\x38\x30\x0a\x54\x65\x73\x74\x20\ \x26\x20\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x53\x79\ \x73\x74\x65\x6d\x73\x2c\x39\x2c\x23\x61\x36\x34\x30\x38\x36\x0a\ \x4f\x69\x6c\x20\x26\x20\x47\x61\x73\x2c\x39\x2c\x23\x39\x39\x34\ \x64\x38\x64\x0a\x45\x6e\x74\x65\x72\x74\x61\x69\x6e\x6d\x65\x6e\ \x74\x20\x26\x20\x42\x72\x6f\x61\x64\x63\x61\x73\x74\x69\x6e\x67\ \x2c\x37\x2c\x23\x38\x64\x35\x61\x39\x33\x0a\x46\x69\x6e\x61\x6e\ \x63\x69\x61\x6c\x2c\x36\x2c\x23\x38\x30\x36\x36\x39\x39\x0a\x43\ \x6f\x6e\x73\x75\x6d\x65\x72\x20\x45\x6c\x65\x63\x74\x72\x6f\x6e\ \x69\x63\x73\x2c\x34\x2c\x23\x38\x30\x37\x33\x61\x36\x0a\x4f\x74\ \x68\x65\x72\x2c\x33\x38\x2c\x23\x38\x30\x38\x30\x62\x33\x0a\ " qt_resource_name = "\ \x00\x06\ \x04\x9e\x89\xb3\ \x00\x43\ \x00\x68\x00\x61\x00\x72\x00\x74\x00\x73\ \x00\x0a\ \x08\xaf\x5c\xb4\ \x00\x71\ \x00\x74\x00\x64\x00\x61\x00\x74\x00\x61\x00\x2e\x00\x63\x00\x68\x00\x74\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/chart/chart_rc3.py0000644000076500000240000000504612536324427023136 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:40:42 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x01\x90\ \x53\ \x63\x69\x65\x6e\x74\x69\x66\x69\x63\x20\x52\x65\x73\x65\x61\x72\ \x63\x68\x2c\x32\x31\x2c\x23\x39\x39\x65\x36\x30\x30\x0a\x45\x6e\ \x67\x69\x6e\x65\x65\x72\x69\x6e\x67\x20\x26\x20\x44\x65\x73\x69\ \x67\x6e\x2c\x31\x38\x2c\x23\x39\x39\x63\x63\x30\x30\x0a\x41\x75\ \x74\x6f\x6d\x6f\x74\x69\x76\x65\x2c\x31\x34\x2c\x23\x39\x39\x62\ \x33\x30\x30\x0a\x41\x65\x72\x6f\x73\x70\x61\x63\x65\x2c\x31\x33\ \x2c\x23\x39\x66\x39\x39\x31\x61\x0a\x41\x75\x74\x6f\x6d\x61\x74\ \x69\x6f\x6e\x20\x26\x20\x4d\x61\x63\x68\x69\x6e\x65\x20\x54\x6f\ \x6f\x6c\x73\x2c\x31\x33\x2c\x23\x61\x34\x38\x30\x33\x33\x0a\x4d\ \x65\x64\x69\x63\x61\x6c\x20\x26\x20\x42\x69\x6f\x69\x6e\x66\x6f\ \x72\x6d\x61\x74\x69\x63\x73\x2c\x31\x33\x2c\x23\x61\x39\x36\x36\ \x34\x64\x0a\x49\x6d\x61\x67\x69\x6e\x67\x20\x26\x20\x53\x70\x65\ \x63\x69\x61\x6c\x20\x45\x66\x66\x65\x63\x74\x73\x2c\x31\x32\x2c\ \x23\x61\x65\x34\x64\x36\x36\x0a\x44\x65\x66\x65\x6e\x73\x65\x2c\ \x31\x31\x2c\x23\x62\x33\x33\x33\x38\x30\x0a\x54\x65\x73\x74\x20\ \x26\x20\x4d\x65\x61\x73\x75\x72\x65\x6d\x65\x6e\x74\x20\x53\x79\ \x73\x74\x65\x6d\x73\x2c\x39\x2c\x23\x61\x36\x34\x30\x38\x36\x0a\ \x4f\x69\x6c\x20\x26\x20\x47\x61\x73\x2c\x39\x2c\x23\x39\x39\x34\ \x64\x38\x64\x0a\x45\x6e\x74\x65\x72\x74\x61\x69\x6e\x6d\x65\x6e\ \x74\x20\x26\x20\x42\x72\x6f\x61\x64\x63\x61\x73\x74\x69\x6e\x67\ \x2c\x37\x2c\x23\x38\x64\x35\x61\x39\x33\x0a\x46\x69\x6e\x61\x6e\ \x63\x69\x61\x6c\x2c\x36\x2c\x23\x38\x30\x36\x36\x39\x39\x0a\x43\ \x6f\x6e\x73\x75\x6d\x65\x72\x20\x45\x6c\x65\x63\x74\x72\x6f\x6e\ \x69\x63\x73\x2c\x34\x2c\x23\x38\x30\x37\x33\x61\x36\x0a\x4f\x74\ \x68\x65\x72\x2c\x33\x38\x2c\x23\x38\x30\x38\x30\x62\x33\x0a\ " qt_resource_name = b"\ \x00\x06\ \x04\x9e\x89\xb3\ \x00\x43\ \x00\x68\x00\x61\x00\x72\x00\x74\x00\x73\ \x00\x0a\ \x08\xaf\x5c\xb4\ \x00\x71\ \x00\x74\x00\x64\x00\x61\x00\x74\x00\x61\x00\x2e\x00\x63\x00\x68\x00\x74\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/chart/mydata.cht0000644000076500000240000000020112536324427022657 0ustar philstaff00000000000000London,4,red Stockholm,5,pink Paris,2,lightgreen Rome,11,green Lisbon,9,blue Madrid,8,lightblue Berlin,6,magenta Vienna,7,purple PyQt-x11-gpl-4.11.4/examples/itemviews/chart/qtdata.cht0000644000076500000240000000062012536324427022663 0ustar philstaff00000000000000Scientific Research,21,#99e600 Engineering & Design,18,#99cc00 Automotive,14,#99b300 Aerospace,13,#9f991a Automation & Machine Tools,13,#a48033 Medical & Bioinformatics,13,#a9664d Imaging & Special Effects,12,#ae4d66 Defense,11,#b33380 Test & Measurement Systems,9,#a64086 Oil & Gas,9,#994d8d Entertainment & Broadcasting,7,#8d5a93 Financial,6,#806699 Consumer Electronics,4,#8073a6 Other,38,#8080b3 PyQt-x11-gpl-4.11.4/examples/itemviews/coloreditorfactory.py0000755000076500000240000001065112536324427024103 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class ColorListEditor(QtGui.QComboBox): def __init__(self, widget=None): super(ColorListEditor, self).__init__(widget) self.populateList() def getColor(self): color = self.itemData(self.currentIndex(), QtCore.Qt.DecorationRole) return color def setColor(self, color): self.setCurrentIndex(self.findData(color, QtCore.Qt.DecorationRole)) color = QtCore.pyqtProperty(QtGui.QColor, getColor, setColor, user=True) def populateList(self): for i, colorName in enumerate(QtGui.QColor.colorNames()): color = QtGui.QColor(colorName) self.insertItem(i, colorName) self.setItemData(i, color, QtCore.Qt.DecorationRole) class ColorListItemEditorCreator(QtGui.QItemEditorCreatorBase): def createWidget(self, parent): return ColorListEditor(parent) class Window(QtGui.QWidget): def __init__(self, parent=None): super(Window, self).__init__(parent) factory = QtGui.QItemEditorFactory() factory.registerEditor(QtCore.QVariant.Color, ColorListItemEditorCreator()) QtGui.QItemEditorFactory.setDefaultFactory(factory) self.createGUI() def createGUI(self): tableData = [ ("Alice", QtGui.QColor('aliceblue')), ("Neptun", QtGui.QColor('aquamarine')), ("Ferdinand", QtGui.QColor('springgreen')) ] table = QtGui.QTableWidget(3, 2) table.setHorizontalHeaderLabels(["Name", "Hair Color"]) table.verticalHeader().setVisible(False) table.resize(150, 50) for i, (name, color) in enumerate(tableData): nameItem = QtGui.QTableWidgetItem(name) colorItem = QtGui.QTableWidgetItem() colorItem.setData(QtCore.Qt.DisplayRole, color) table.setItem(i, 0, nameItem) table.setItem(i, 1, colorItem) table.resizeColumnToContents(0) table.horizontalHeader().setStretchLastSection(True) layout = QtGui.QGridLayout() layout.addWidget(table, 0, 0) self.setLayout(layout) self.setWindowTitle("Color Editor Factory") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/combowidgetmapper.py0000755000076500000240000001214512536324427023676 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtGui class Window(QtGui.QWidget): def __init__(self, parent=None): super(Window, self).__init__(parent) # Set up the model. self.setupModel() # Set up the widgets. nameLabel = QtGui.QLabel("Na&me:") nameEdit = QtGui.QLineEdit() addressLabel = QtGui.QLabel("&Address:") addressEdit = QtGui.QTextEdit() typeLabel = QtGui.QLabel("&Type:") typeComboBox = QtGui.QComboBox() self.nextButton = QtGui.QPushButton("&Next") self.previousButton = QtGui.QPushButton("&Previous") nameLabel.setBuddy(nameEdit) addressLabel.setBuddy(addressEdit) typeLabel.setBuddy(typeComboBox) typeComboBox.setModel(self.typeModel) # Set up the mapper. self.mapper = QtGui.QDataWidgetMapper(self) self.mapper.setModel(self.model) self.mapper.addMapping(nameEdit, 0) self.mapper.addMapping(addressEdit, 1) self.mapper.addMapping(typeComboBox, 2, 'currentIndex') # Set up connections and layouts. self.previousButton.clicked.connect(self.mapper.toPrevious) self.nextButton.clicked.connect(self.mapper.toNext) self.mapper.currentIndexChanged.connect(self.updateButtons) layout = QtGui.QGridLayout() layout.addWidget(nameLabel, 0, 0, 1, 1) layout.addWidget(nameEdit, 0, 1, 1, 1) layout.addWidget(self.previousButton, 0, 2, 1, 1) layout.addWidget(addressLabel, 1, 0, 1, 1) layout.addWidget(addressEdit, 1, 1, 2, 1) layout.addWidget(self.nextButton, 1, 2, 1, 1) layout.addWidget(typeLabel, 3, 0, 1, 1) layout.addWidget(typeComboBox, 3, 1, 1, 1) self.setLayout(layout) self.setWindowTitle("Delegate Widget Mapper") self.mapper.toFirst() def setupModel(self): items = ("Home", "Work", "Other") self.typeModel = QtGui.QStringListModel(items, self) self.model = QtGui.QStandardItemModel(5, 3, self) names = ("Alice", "Bob", "Carol", "Donald", "Emma") addresses = ("123 Main Street
      Market Town
      ", "PO Box 32
      Mail Handling Service" "
      Service City
      ", "The Lighthouse
      Remote Island
      ", "47338 Park Avenue
      Big City
      ", "Research Station
      Base Camp
      Big Mountain
      ") types = ("0", "1", "2", "0", "2") for row, name in enumerate(names): item = QtGui.QStandardItem(name) self.model.setItem(row, 0, item) item = QtGui.QStandardItem(addresses[row]) self.model.setItem(row, 1, item) item = QtGui.QStandardItem(types[row]) self.model.setItem(row, 2, item) def updateButtons(self, row): self.previousButton.setEnabled(row > 0) self.nextButton.setEnabled(row < self.model.rowCount() - 1) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/customsortfiltermodel.py0000755000076500000240000002427412536324427024645 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class MySortFilterProxyModel(QtGui.QSortFilterProxyModel): def __init__(self, parent=None): super(MySortFilterProxyModel, self).__init__(parent) self.minDate = QtCore.QDate() self.maxDate = QtCore.QDate() def setFilterMinimumDate(self, date): self.minDate = date self.invalidateFilter() def filterMinimumDate(self): return self.minDate def setFilterMaximumDate(self, date): self.maxDate = date self.invalidateFilter() def filterMaximumDate(self): return self.maxDate def filterAcceptsRow(self, sourceRow, sourceParent): index0 = self.sourceModel().index(sourceRow, 0, sourceParent) index1 = self.sourceModel().index(sourceRow, 1, sourceParent) index2 = self.sourceModel().index(sourceRow, 2, sourceParent) return ( (self.filterRegExp().indexIn(self.sourceModel().data(index0)) >= 0 or self.filterRegExp().indexIn(self.sourceModel().data(index1)) >= 0) and self.dateInRange(self.sourceModel().data(index2))) def lessThan(self, left, right): leftData = self.sourceModel().data(left) rightData = self.sourceModel().data(right) if not isinstance(leftData, QtCore.QDate): emailPattern = QtCore.QRegExp("([\\w\\.]*@[\\w\\.]*)") if left.column() == 1 and emailPattern.indexIn(leftData) != -1: leftData = emailPattern.cap(1) if right.column() == 1 and emailPattern.indexIn(rightData) != -1: rightData = emailPattern.cap(1) return leftData < rightData def dateInRange(self, date): if isinstance(date, QtCore.QDateTime): date = date.date() return ( (not self.minDate.isValid() or date >= self.minDate) and (not self.maxDate.isValid() or date <= self.maxDate)) class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() self.proxyModel = MySortFilterProxyModel(self) self.proxyModel.setDynamicSortFilter(True) self.sourceView = QtGui.QTreeView() self.sourceView.setRootIsDecorated(False) self.sourceView.setAlternatingRowColors(True) sourceLayout = QtGui.QHBoxLayout() sourceLayout.addWidget(self.sourceView) sourceGroupBox = QtGui.QGroupBox("Original Model") sourceGroupBox.setLayout(sourceLayout) self.filterCaseSensitivityCheckBox = QtGui.QCheckBox("Case sensitive filter") self.filterCaseSensitivityCheckBox.setChecked(True) self.filterPatternLineEdit = QtGui.QLineEdit() self.filterPatternLineEdit.setText("Grace|Sports") filterPatternLabel = QtGui.QLabel("&Filter pattern:") filterPatternLabel.setBuddy(self.filterPatternLineEdit) self.filterSyntaxComboBox = QtGui.QComboBox() self.filterSyntaxComboBox.addItem("Regular expression", QtCore.QRegExp.RegExp) self.filterSyntaxComboBox.addItem("Wildcard", QtCore.QRegExp.Wildcard) self.filterSyntaxComboBox.addItem("Fixed string", QtCore.QRegExp.FixedString) self.fromDateEdit = QtGui.QDateEdit() self.fromDateEdit.setDate(QtCore.QDate(2006, 12, 22)) self.fromDateEdit.setCalendarPopup(True) fromLabel = QtGui.QLabel("F&rom:") fromLabel.setBuddy(self.fromDateEdit) self.toDateEdit = QtGui.QDateEdit() self.toDateEdit.setDate(QtCore.QDate(2007, 1, 5)) self.toDateEdit.setCalendarPopup(True) toLabel = QtGui.QLabel("&To:") toLabel.setBuddy(self.toDateEdit) self.filterPatternLineEdit.textChanged.connect(self.textFilterChanged) self.filterSyntaxComboBox.currentIndexChanged.connect(self.textFilterChanged) self.filterCaseSensitivityCheckBox.toggled.connect(self.textFilterChanged) self.fromDateEdit.dateChanged.connect(self.dateFilterChanged) self.toDateEdit.dateChanged.connect(self.dateFilterChanged) self.proxyView = QtGui.QTreeView() self.proxyView.setRootIsDecorated(False) self.proxyView.setAlternatingRowColors(True) self.proxyView.setModel(self.proxyModel) self.proxyView.setSortingEnabled(True) self.proxyView.sortByColumn(1, QtCore.Qt.AscendingOrder) self.textFilterChanged() self.dateFilterChanged() proxyLayout = QtGui.QGridLayout() proxyLayout.addWidget(self.proxyView, 0, 0, 1, 3) proxyLayout.addWidget(filterPatternLabel, 1, 0) proxyLayout.addWidget(self.filterPatternLineEdit, 1, 1) proxyLayout.addWidget(self.filterSyntaxComboBox, 1, 2) proxyLayout.addWidget(self.filterCaseSensitivityCheckBox, 2, 0, 1, 3) proxyLayout.addWidget(fromLabel, 3, 0) proxyLayout.addWidget(self.fromDateEdit, 3, 1, 1, 2) proxyLayout.addWidget(toLabel, 4, 0) proxyLayout.addWidget(self.toDateEdit, 4, 1, 1, 2) proxyGroupBox = QtGui.QGroupBox("Sorted/Filtered Model") proxyGroupBox.setLayout(proxyLayout) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(sourceGroupBox) mainLayout.addWidget(proxyGroupBox) self.setLayout(mainLayout) self.setWindowTitle("Custom Sort/Filter Model") self.resize(500, 450) def setSourceModel(self, model): self.proxyModel.setSourceModel(model) self.sourceView.setModel(model) def textFilterChanged(self): syntax = QtCore.QRegExp.PatternSyntax( self.filterSyntaxComboBox.itemData( self.filterSyntaxComboBox.currentIndex())) caseSensitivity = ( self.filterCaseSensitivityCheckBox.isChecked() and QtCore.Qt.CaseSensitive or QtCore.Qt.CaseInsensitive) regExp = QtCore.QRegExp(self.filterPatternLineEdit.text(), caseSensitivity, syntax) self.proxyModel.setFilterRegExp(regExp) def dateFilterChanged(self): self.proxyModel.setFilterMinimumDate(self.fromDateEdit.date()) self.proxyModel.setFilterMaximumDate(self.toDateEdit.date()) def addMail(model, subject, sender, date): model.insertRow(0) model.setData(model.index(0, 0), subject) model.setData(model.index(0, 1), sender) model.setData(model.index(0, 2), date) def createMailModel(parent): model = QtGui.QStandardItemModel(0, 3, parent) model.setHeaderData(0, QtCore.Qt.Horizontal, "Subject") model.setHeaderData(1, QtCore.Qt.Horizontal, "Sender") model.setHeaderData(2, QtCore.Qt.Horizontal, "Date") addMail(model, "Happy New Year!", "Grace K. ", QtCore.QDateTime(QtCore.QDate(2006, 12, 31), QtCore.QTime(17, 3))) addMail(model, "Radically new concept", "Grace K. ", QtCore.QDateTime(QtCore.QDate(2006, 12, 22), QtCore.QTime(9, 44))) addMail(model, "Accounts", "pascale@nospam.com", QtCore.QDateTime(QtCore.QDate(2006, 12, 31), QtCore.QTime(12, 50))) addMail(model, "Expenses", "Joe Bloggs ", QtCore.QDateTime(QtCore.QDate(2006, 12, 25), QtCore.QTime(11, 39))) addMail(model, "Re: Expenses", "Andy ", QtCore.QDateTime(QtCore.QDate(2007, 1, 2), QtCore.QTime(16, 5))) addMail(model, "Re: Accounts", "Joe Bloggs ", QtCore.QDateTime(QtCore.QDate(2007, 1, 3), QtCore.QTime(14, 18))) addMail(model, "Re: Accounts", "Andy ", QtCore.QDateTime(QtCore.QDate(2007, 1, 3), QtCore.QTime(14, 26))) addMail(model, "Sports", "Linda Smith ", QtCore.QDateTime(QtCore.QDate(2007, 1, 5), QtCore.QTime(11, 33))) addMail(model, "AW: Sports", "Rolf Newschweinstein ", QtCore.QDateTime(QtCore.QDate(2007, 1, 5), QtCore.QTime(12, 0))) addMail(model, "RE: Sports", "Petra Schmidt ", QtCore.QDateTime(QtCore.QDate(2007, 1, 5), QtCore.QTime(12, 1))) return model if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) window = Window() window.setSourceModel(createMailModel(window)) window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/dirview.py0000755000076500000240000000462012536324427021636 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtGui if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) model = QtGui.QDirModel() tree = QtGui.QTreeView() tree.setModel(model) tree.setAnimated(False) tree.setIndentation(20) tree.setSortingEnabled(True) tree.setWindowTitle("Dir View") tree.resize(640, 480) tree.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/editabletreemodel/0000755000076500000240000000000012536324427023260 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/itemviews/editabletreemodel/default.txt0000644000076500000240000000367112536324427025454 0ustar philstaff00000000000000Getting Started How to familiarize yourself with Qt Designer Launching Designer Running the Qt Designer application The User Interface How to interact with Qt Designer Designing a Component Creating a GUI for your application Creating a Dialog How to create a dialog Composing the Dialog Putting widgets into the dialog example Creating a Layout Arranging widgets on a form Signal and Slot Connections Making widget communicate with each other Using a Component in Your Application Generating code from forms The Direct Approach Using a form without any adjustments The Single Inheritance Approach Subclassing a form's base class The Multiple Inheritance Approach Subclassing the form itself Automatic Connections Connecting widgets using a naming scheme A Dialog Without Auto-Connect How to connect widgets without a naming scheme A Dialog With Auto-Connect Using automatic connections Form Editing Mode How to edit a form in Qt Designer Managing Forms Loading and saving forms Editing a Form Basic editing techniques The Property Editor Changing widget properties The Object Inspector Examining the hierarchy of objects on a form Layouts Objects that arrange widgets on a form Applying and Breaking Layouts Managing widgets in layouts Horizontal and Vertical Layouts Standard row and column layouts The Grid Layout Arranging widgets in a matrix Previewing Forms Checking that the design works Using Containers How to group widgets together General Features Common container features Frames QFrame Group Boxes QGroupBox Stacked Widgets QStackedWidget Tab Widgets QTabWidget Toolbox Widgets QToolBox Connection Editing Mode Connecting widgets together with signals and slots Connecting Objects Making connections in Qt Designer Editing Connections Changing existing connections PyQt-x11-gpl-4.11.4/examples/itemviews/editabletreemodel/editabletreemodel.py0000755000076500000240000003355312536324427027320 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import editabletreemodel_rc3 except ImportError: import editabletreemodel_rc2 from ui_mainwindow import Ui_MainWindow class TreeItem(object): def __init__(self, data, parent=None): self.parentItem = parent self.itemData = data self.childItems = [] def child(self, row): return self.childItems[row] def childCount(self): return len(self.childItems) def childNumber(self): if self.parentItem != None: return self.parentItem.childItems.index(self) return 0 def columnCount(self): return len(self.itemData) def data(self, column): return self.itemData[column] def insertChildren(self, position, count, columns): if position < 0 or position > len(self.childItems): return False for row in range(count): data = [None for v in range(columns)] item = TreeItem(data, self) self.childItems.insert(position, item) return True def insertColumns(self, position, columns): if position < 0 or position > len(self.itemData): return False for column in range(columns): self.itemData.insert(position, None) for child in self.childItems: child.insertColumns(position, columns) return True def parent(self): return self.parentItem def removeChildren(self, position, count): if position < 0 or position + count > len(self.childItems): return False for row in range(count): self.childItems.pop(position) return True def removeColumns(self, position, columns): if position < 0 or position + columns > len(self.itemData): return False for column in range(columns): self.itemData.pop(position) for child in self.childItems: child.removeColumns(position, columns) return True def setData(self, column, value): if column < 0 or column >= len(self.itemData): return False self.itemData[column] = value return True class TreeModel(QtCore.QAbstractItemModel): def __init__(self, headers, data, parent=None): super(TreeModel, self).__init__(parent) rootData = [header for header in headers] self.rootItem = TreeItem(rootData) self.setupModelData(data.split("\n"), self.rootItem) def columnCount(self, parent=QtCore.QModelIndex()): return self.rootItem.columnCount() def data(self, index, role): if not index.isValid(): return None if role != QtCore.Qt.DisplayRole and role != QtCore.Qt.EditRole: return None item = self.getItem(index) return item.data(index.column()) def flags(self, index): if not index.isValid(): return 0 return QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable def getItem(self, index): if index.isValid(): item = index.internalPointer() if item: return item return self.rootItem def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole): if orientation == QtCore.Qt.Horizontal and role == QtCore.Qt.DisplayRole: return self.rootItem.data(section) return None def index(self, row, column, parent=QtCore.QModelIndex()): if parent.isValid() and parent.column() != 0: return QtCore.QModelIndex() parentItem = self.getItem(parent) childItem = parentItem.child(row) if childItem: return self.createIndex(row, column, childItem) else: return QtCore.QModelIndex() def insertColumns(self, position, columns, parent=QtCore.QModelIndex()): self.beginInsertColumns(parent, position, position + columns - 1) success = self.rootItem.insertColumns(position, columns) self.endInsertColumns() return success def insertRows(self, position, rows, parent=QtCore.QModelIndex()): parentItem = self.getItem(parent) self.beginInsertRows(parent, position, position + rows - 1) success = parentItem.insertChildren(position, rows, self.rootItem.columnCount()) self.endInsertRows() return success def parent(self, index): if not index.isValid(): return QtCore.QModelIndex() childItem = self.getItem(index) parentItem = childItem.parent() if parentItem == self.rootItem: return QtCore.QModelIndex() return self.createIndex(parentItem.childNumber(), 0, parentItem) def removeColumns(self, position, columns, parent=QtCore.QModelIndex()): self.beginRemoveColumns(parent, position, position + columns - 1) success = self.rootItem.removeColumns(position, columns) self.endRemoveColumns() if self.rootItem.columnCount() == 0: self.removeRows(0, self.rowCount()) return success def removeRows(self, position, rows, parent=QtCore.QModelIndex()): parentItem = self.getItem(parent) self.beginRemoveRows(parent, position, position + rows - 1) success = parentItem.removeChildren(position, rows) self.endRemoveRows() return success def rowCount(self, parent=QtCore.QModelIndex()): parentItem = self.getItem(parent) return parentItem.childCount() def setData(self, index, value, role=QtCore.Qt.EditRole): if role != QtCore.Qt.EditRole: return False item = self.getItem(index) result = item.setData(index.column(), value) if result: self.dataChanged.emit(index, index) return result def setHeaderData(self, section, orientation, value, role=QtCore.Qt.EditRole): if role != QtCore.Qt.EditRole or orientation != QtCore.Qt.Horizontal: return False result = self.rootItem.setData(section, value) if result: self.headerDataChanged.emit(orientation, section, section) return result def setupModelData(self, lines, parent): parents = [parent] indentations = [0] number = 0 while number < len(lines): position = 0 while position < len(lines[number]): if lines[number][position] != " ": break position += 1 lineData = lines[number][position:].trimmed() if lineData: # Read the column data from the rest of the line. columnData = [s for s in lineData.split('\t') if s] if position > indentations[-1]: # The last child of the current parent is now the new # parent unless the current parent has no children. if parents[-1].childCount() > 0: parents.append(parents[-1].child(parents[-1].childCount() - 1)) indentations.append(position) else: while position < indentations[-1] and len(parents) > 0: parents.pop() indentations.pop() # Append a new item to the current parent's list of children. parent = parents[-1] parent.insertChildren(parent.childCount(), 1, self.rootItem.columnCount()) for column in range(len(columnData)): parent.child(parent.childCount() -1).setData(column, columnData[column]) number += 1 class MainWindow(QtGui.QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupUi(self) headers = ("Title", "Description") file = QtCore.QFile(':/default.txt') file.open(QtCore.QIODevice.ReadOnly) model = TreeModel(headers, file.readAll()) file.close() self.view.setModel(model) for column in range(model.columnCount()): self.view.resizeColumnToContents(column) self.exitAction.triggered.connect(QtGui.qApp.quit) self.view.selectionModel().selectionChanged.connect(self.updateActions) self.actionsMenu.aboutToShow.connect(self.updateActions) self.insertRowAction.triggered.connect(self.insertRow) self.insertColumnAction.triggered.connect(self.insertColumn) self.removeRowAction.triggered.connect(self.removeRow) self.removeColumnAction.triggered.connect(self.removeColumn) self.insertChildAction.triggered.connect(self.insertChild) self.updateActions() def insertChild(self): index = self.view.selectionModel().currentIndex() model = self.view.model() if model.columnCount(index) == 0: if not model.insertColumn(0, index): return if not model.insertRow(0, index): return for column in range(model.columnCount(index)): child = model.index(0, column, index) model.setData(child, "[No data]", QtCore.Qt.EditRole) if model.headerData(column, QtCore.Qt.Horizontal) is None: model.setHeaderData(column, QtCore.Qt.Horizontal, "[No header]", QtCore.Qt.EditRole) self.view.selectionModel().setCurrentIndex(model.index(0, 0, index), QtGui.QItemSelectionModel.ClearAndSelect) self.updateActions() def insertColumn(self): model = self.view.model() column = self.view.selectionModel().currentIndex().column() changed = model.insertColumn(column + 1) if changed: model.setHeaderData(column + 1, QtCore.Qt.Horizontal, "[No header]", QtCore.Qt.EditRole) self.updateActions() return changed def insertRow(self): index = self.view.selectionModel().currentIndex() model = self.view.model() if not model.insertRow(index.row()+1, index.parent()): return self.updateActions() for column in range(model.columnCount(index.parent())): child = model.index(index.row()+1, column, index.parent()) model.setData(child, "[No data]", QtCore.Qt.EditRole) def removeColumn(self): model = self.view.model() column = self.view.selectionModel().currentIndex().column() changed = model.removeColumn(column) if changed: self.updateActions() return changed def removeRow(self): index = self.view.selectionModel().currentIndex() model = self.view.model() if (model.removeRow(index.row(), index.parent())): self.updateActions() def updateActions(self): hasSelection = not self.view.selectionModel().selection().isEmpty() self.removeRowAction.setEnabled(hasSelection) self.removeColumnAction.setEnabled(hasSelection) hasCurrent = self.view.selectionModel().currentIndex().isValid() self.insertRowAction.setEnabled(hasCurrent) self.insertColumnAction.setEnabled(hasCurrent) if hasCurrent: self.view.closePersistentEditor(self.view.selectionModel().currentIndex()) row = self.view.selectionModel().currentIndex().row() column = self.view.selectionModel().currentIndex().column() if self.view.selectionModel().currentIndex().parent().isValid(): self.statusBar().showMessage("Position: (%d,%d)" % (row, column)) else: self.statusBar().showMessage("Position: (%d,%d) in top level" % (row, column)) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/editabletreemodel/editabletreemodel.qrc0000644000076500000240000000013312536324427027436 0ustar philstaff00000000000000 default.txt PyQt-x11-gpl-4.11.4/examples/itemviews/editabletreemodel/editabletreemodel_rc2.py0000644000076500000240000002141312536324427030053 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:41:15 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x07\xb9\ \x47\ \x65\x74\x74\x69\x6e\x67\x20\x53\x74\x61\x72\x74\x65\x64\x09\x09\ \x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x66\x61\x6d\x69\x6c\x69\x61\ \x72\x69\x7a\x65\x20\x79\x6f\x75\x72\x73\x65\x6c\x66\x20\x77\x69\ \x74\x68\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x0a\x20\ \x20\x20\x20\x4c\x61\x75\x6e\x63\x68\x69\x6e\x67\x20\x44\x65\x73\ \x69\x67\x6e\x65\x72\x09\x09\x09\x52\x75\x6e\x6e\x69\x6e\x67\x20\ \x74\x68\x65\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x20\ \x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\ \x54\x68\x65\x20\x55\x73\x65\x72\x20\x49\x6e\x74\x65\x72\x66\x61\ \x63\x65\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x69\x6e\x74\x65\ \x72\x61\x63\x74\x20\x77\x69\x74\x68\x20\x51\x74\x20\x44\x65\x73\ \x69\x67\x6e\x65\x72\x0a\x0a\x44\x65\x73\x69\x67\x6e\x69\x6e\x67\ \x20\x61\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x09\x09\x09\x43\ \x72\x65\x61\x74\x69\x6e\x67\x20\x61\x20\x47\x55\x49\x20\x66\x6f\ \x72\x20\x79\x6f\x75\x72\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\ \x6f\x6e\x0a\x20\x20\x20\x20\x43\x72\x65\x61\x74\x69\x6e\x67\x20\ \x61\x20\x44\x69\x61\x6c\x6f\x67\x09\x09\x09\x48\x6f\x77\x20\x74\ \x6f\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x64\x69\x61\x6c\x6f\ \x67\x0a\x20\x20\x20\x20\x43\x6f\x6d\x70\x6f\x73\x69\x6e\x67\x20\ \x74\x68\x65\x20\x44\x69\x61\x6c\x6f\x67\x09\x09\x50\x75\x74\x74\ \x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\x74\x6f\ \x20\x74\x68\x65\x20\x64\x69\x61\x6c\x6f\x67\x20\x65\x78\x61\x6d\ \x70\x6c\x65\x0a\x20\x20\x20\x20\x43\x72\x65\x61\x74\x69\x6e\x67\ \x20\x61\x20\x4c\x61\x79\x6f\x75\x74\x09\x09\x09\x41\x72\x72\x61\ \x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x6f\x6e\ \x20\x61\x20\x66\x6f\x72\x6d\x0a\x20\x20\x20\x20\x53\x69\x67\x6e\ \x61\x6c\x20\x61\x6e\x64\x20\x53\x6c\x6f\x74\x20\x43\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x09\x09\x4d\x61\x6b\x69\x6e\x67\x20\ \x77\x69\x64\x67\x65\x74\x20\x63\x6f\x6d\x6d\x75\x6e\x69\x63\x61\ \x74\x65\x20\x77\x69\x74\x68\x20\x65\x61\x63\x68\x20\x6f\x74\x68\ \x65\x72\x0a\x0a\x55\x73\x69\x6e\x67\x20\x61\x20\x43\x6f\x6d\x70\ \x6f\x6e\x65\x6e\x74\x20\x69\x6e\x20\x59\x6f\x75\x72\x20\x41\x70\ \x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x09\x47\x65\x6e\x65\x72\x61\ \x74\x69\x6e\x67\x20\x63\x6f\x64\x65\x20\x66\x72\x6f\x6d\x20\x66\ \x6f\x72\x6d\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x44\x69\x72\ \x65\x63\x74\x20\x41\x70\x70\x72\x6f\x61\x63\x68\x09\x09\x09\x55\ \x73\x69\x6e\x67\x20\x61\x20\x66\x6f\x72\x6d\x20\x77\x69\x74\x68\ \x6f\x75\x74\x20\x61\x6e\x79\x20\x61\x64\x6a\x75\x73\x74\x6d\x65\ \x6e\x74\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x53\x69\x6e\x67\ \x6c\x65\x20\x49\x6e\x68\x65\x72\x69\x74\x61\x6e\x63\x65\x20\x41\ \x70\x70\x72\x6f\x61\x63\x68\x09\x53\x75\x62\x63\x6c\x61\x73\x73\ \x69\x6e\x67\x20\x61\x20\x66\x6f\x72\x6d\x27\x73\x20\x62\x61\x73\ \x65\x20\x63\x6c\x61\x73\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\ \x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x49\x6e\x68\x65\x72\x69\x74\ \x61\x6e\x63\x65\x20\x41\x70\x70\x72\x6f\x61\x63\x68\x09\x53\x75\ \x62\x63\x6c\x61\x73\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x66\x6f\ \x72\x6d\x20\x69\x74\x73\x65\x6c\x66\x0a\x20\x20\x20\x20\x41\x75\ \x74\x6f\x6d\x61\x74\x69\x63\x20\x43\x6f\x6e\x6e\x65\x63\x74\x69\ \x6f\x6e\x73\x09\x09\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6e\x67\x20\ \x77\x69\x64\x67\x65\x74\x73\x20\x75\x73\x69\x6e\x67\x20\x61\x20\ \x6e\x61\x6d\x69\x6e\x67\x20\x73\x63\x68\x65\x6d\x65\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x41\x20\x44\x69\x61\x6c\x6f\x67\x20\x57\ \x69\x74\x68\x6f\x75\x74\x20\x41\x75\x74\x6f\x2d\x43\x6f\x6e\x6e\ \x65\x63\x74\x09\x48\x6f\x77\x20\x74\x6f\x20\x63\x6f\x6e\x6e\x65\ \x63\x74\x20\x77\x69\x64\x67\x65\x74\x73\x20\x77\x69\x74\x68\x6f\ \x75\x74\x20\x61\x20\x6e\x61\x6d\x69\x6e\x67\x20\x73\x63\x68\x65\ \x6d\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\x20\x44\x69\x61\ \x6c\x6f\x67\x20\x57\x69\x74\x68\x20\x41\x75\x74\x6f\x2d\x43\x6f\ \x6e\x6e\x65\x63\x74\x09\x55\x73\x69\x6e\x67\x20\x61\x75\x74\x6f\ \x6d\x61\x74\x69\x63\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\ \x73\x0a\x0a\x46\x6f\x72\x6d\x20\x45\x64\x69\x74\x69\x6e\x67\x20\ \x4d\x6f\x64\x65\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x65\x64\ \x69\x74\x20\x61\x20\x66\x6f\x72\x6d\x20\x69\x6e\x20\x51\x74\x20\ \x44\x65\x73\x69\x67\x6e\x65\x72\x0a\x20\x20\x20\x20\x4d\x61\x6e\ \x61\x67\x69\x6e\x67\x20\x46\x6f\x72\x6d\x73\x09\x09\x09\x4c\x6f\ \x61\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x73\x61\x76\x69\x6e\x67\ \x20\x66\x6f\x72\x6d\x73\x0a\x20\x20\x20\x20\x45\x64\x69\x74\x69\ \x6e\x67\x20\x61\x20\x46\x6f\x72\x6d\x09\x09\x09\x42\x61\x73\x69\ \x63\x20\x65\x64\x69\x74\x69\x6e\x67\x20\x74\x65\x63\x68\x6e\x69\ \x71\x75\x65\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x50\x72\x6f\ \x70\x65\x72\x74\x79\x20\x45\x64\x69\x74\x6f\x72\x09\x09\x09\x43\ \x68\x61\x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x20\x70\ \x72\x6f\x70\x65\x72\x74\x69\x65\x73\x0a\x20\x20\x20\x20\x54\x68\ \x65\x20\x4f\x62\x6a\x65\x63\x74\x20\x49\x6e\x73\x70\x65\x63\x74\ \x6f\x72\x09\x09\x45\x78\x61\x6d\x69\x6e\x69\x6e\x67\x20\x74\x68\ \x65\x20\x68\x69\x65\x72\x61\x72\x63\x68\x79\x20\x6f\x66\x20\x6f\ \x62\x6a\x65\x63\x74\x73\x20\x6f\x6e\x20\x61\x20\x66\x6f\x72\x6d\ \x0a\x20\x20\x20\x20\x4c\x61\x79\x6f\x75\x74\x73\x09\x09\x09\x09\ \x4f\x62\x6a\x65\x63\x74\x73\x20\x74\x68\x61\x74\x20\x61\x72\x72\ \x61\x6e\x67\x65\x20\x77\x69\x64\x67\x65\x74\x73\x20\x6f\x6e\x20\ \x61\x20\x66\x6f\x72\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\ \x70\x70\x6c\x79\x69\x6e\x67\x20\x61\x6e\x64\x20\x42\x72\x65\x61\ \x6b\x69\x6e\x67\x20\x4c\x61\x79\x6f\x75\x74\x73\x09\x4d\x61\x6e\ \x61\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\ \x20\x6c\x61\x79\x6f\x75\x74\x73\x20\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x61\x6e\x64\ \x20\x56\x65\x72\x74\x69\x63\x61\x6c\x20\x4c\x61\x79\x6f\x75\x74\ \x73\x09\x53\x74\x61\x6e\x64\x61\x72\x64\x20\x72\x6f\x77\x20\x61\ \x6e\x64\x20\x63\x6f\x6c\x75\x6d\x6e\x20\x6c\x61\x79\x6f\x75\x74\ \x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x47\x72\ \x69\x64\x20\x4c\x61\x79\x6f\x75\x74\x09\x09\x09\x41\x72\x72\x61\ \x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\ \x20\x61\x20\x6d\x61\x74\x72\x69\x78\x0a\x20\x20\x20\x20\x50\x72\ \x65\x76\x69\x65\x77\x69\x6e\x67\x20\x46\x6f\x72\x6d\x73\x09\x09\ \x09\x43\x68\x65\x63\x6b\x69\x6e\x67\x20\x74\x68\x61\x74\x20\x74\ \x68\x65\x20\x64\x65\x73\x69\x67\x6e\x20\x77\x6f\x72\x6b\x73\x0a\ \x0a\x55\x73\x69\x6e\x67\x20\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\ \x73\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x67\x72\x6f\x75\x70\ \x20\x77\x69\x64\x67\x65\x74\x73\x20\x74\x6f\x67\x65\x74\x68\x65\ \x72\x0a\x20\x20\x20\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x46\x65\ \x61\x74\x75\x72\x65\x73\x09\x09\x09\x43\x6f\x6d\x6d\x6f\x6e\x20\ \x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x66\x65\x61\x74\x75\x72\ \x65\x73\x0a\x20\x20\x20\x20\x46\x72\x61\x6d\x65\x73\x09\x09\x09\ \x09\x51\x46\x72\x61\x6d\x65\x0a\x20\x20\x20\x20\x47\x72\x6f\x75\ \x70\x20\x42\x6f\x78\x65\x73\x09\x09\x09\x09\x51\x47\x72\x6f\x75\ \x70\x42\x6f\x78\x0a\x20\x20\x20\x20\x53\x74\x61\x63\x6b\x65\x64\ \x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x51\x53\x74\x61\x63\ \x6b\x65\x64\x57\x69\x64\x67\x65\x74\x0a\x20\x20\x20\x20\x54\x61\ \x62\x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x09\x51\x54\x61\ \x62\x57\x69\x64\x67\x65\x74\x0a\x20\x20\x20\x20\x54\x6f\x6f\x6c\ \x62\x6f\x78\x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x51\x54\ \x6f\x6f\x6c\x42\x6f\x78\x0a\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\ \x6f\x6e\x20\x45\x64\x69\x74\x69\x6e\x67\x20\x4d\x6f\x64\x65\x09\ \x09\x09\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6e\x67\x20\x77\x69\x64\ \x67\x65\x74\x73\x20\x74\x6f\x67\x65\x74\x68\x65\x72\x20\x77\x69\ \x74\x68\x20\x73\x69\x67\x6e\x61\x6c\x73\x20\x61\x6e\x64\x20\x73\ \x6c\x6f\x74\x73\x0a\x20\x20\x20\x20\x43\x6f\x6e\x6e\x65\x63\x74\ \x69\x6e\x67\x20\x4f\x62\x6a\x65\x63\x74\x73\x09\x09\x09\x4d\x61\ \x6b\x69\x6e\x67\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x73\ \x20\x69\x6e\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x0a\ \x20\x20\x20\x20\x45\x64\x69\x74\x69\x6e\x67\x20\x43\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x09\x09\x09\x43\x68\x61\x6e\x67\x69\ \x6e\x67\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x63\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x0a\ " qt_resource_name = "\ \x00\x0b\ \x0c\xe2\x22\xf4\ \x00\x64\ \x00\x65\x00\x66\x00\x61\x00\x75\x00\x6c\x00\x74\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/editabletreemodel/editabletreemodel_rc3.py0000644000076500000240000002141612536324427030057 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:41:15 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x07\xb9\ \x47\ \x65\x74\x74\x69\x6e\x67\x20\x53\x74\x61\x72\x74\x65\x64\x09\x09\ \x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x66\x61\x6d\x69\x6c\x69\x61\ \x72\x69\x7a\x65\x20\x79\x6f\x75\x72\x73\x65\x6c\x66\x20\x77\x69\ \x74\x68\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x0a\x20\ \x20\x20\x20\x4c\x61\x75\x6e\x63\x68\x69\x6e\x67\x20\x44\x65\x73\ \x69\x67\x6e\x65\x72\x09\x09\x09\x52\x75\x6e\x6e\x69\x6e\x67\x20\ \x74\x68\x65\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x20\ \x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\ \x54\x68\x65\x20\x55\x73\x65\x72\x20\x49\x6e\x74\x65\x72\x66\x61\ \x63\x65\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x69\x6e\x74\x65\ \x72\x61\x63\x74\x20\x77\x69\x74\x68\x20\x51\x74\x20\x44\x65\x73\ \x69\x67\x6e\x65\x72\x0a\x0a\x44\x65\x73\x69\x67\x6e\x69\x6e\x67\ \x20\x61\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x09\x09\x09\x43\ \x72\x65\x61\x74\x69\x6e\x67\x20\x61\x20\x47\x55\x49\x20\x66\x6f\ \x72\x20\x79\x6f\x75\x72\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\ \x6f\x6e\x0a\x20\x20\x20\x20\x43\x72\x65\x61\x74\x69\x6e\x67\x20\ \x61\x20\x44\x69\x61\x6c\x6f\x67\x09\x09\x09\x48\x6f\x77\x20\x74\ \x6f\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x64\x69\x61\x6c\x6f\ \x67\x0a\x20\x20\x20\x20\x43\x6f\x6d\x70\x6f\x73\x69\x6e\x67\x20\ \x74\x68\x65\x20\x44\x69\x61\x6c\x6f\x67\x09\x09\x50\x75\x74\x74\ \x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\x74\x6f\ \x20\x74\x68\x65\x20\x64\x69\x61\x6c\x6f\x67\x20\x65\x78\x61\x6d\ \x70\x6c\x65\x0a\x20\x20\x20\x20\x43\x72\x65\x61\x74\x69\x6e\x67\ \x20\x61\x20\x4c\x61\x79\x6f\x75\x74\x09\x09\x09\x41\x72\x72\x61\ \x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x6f\x6e\ \x20\x61\x20\x66\x6f\x72\x6d\x0a\x20\x20\x20\x20\x53\x69\x67\x6e\ \x61\x6c\x20\x61\x6e\x64\x20\x53\x6c\x6f\x74\x20\x43\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x09\x09\x4d\x61\x6b\x69\x6e\x67\x20\ \x77\x69\x64\x67\x65\x74\x20\x63\x6f\x6d\x6d\x75\x6e\x69\x63\x61\ \x74\x65\x20\x77\x69\x74\x68\x20\x65\x61\x63\x68\x20\x6f\x74\x68\ \x65\x72\x0a\x0a\x55\x73\x69\x6e\x67\x20\x61\x20\x43\x6f\x6d\x70\ \x6f\x6e\x65\x6e\x74\x20\x69\x6e\x20\x59\x6f\x75\x72\x20\x41\x70\ \x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x09\x47\x65\x6e\x65\x72\x61\ \x74\x69\x6e\x67\x20\x63\x6f\x64\x65\x20\x66\x72\x6f\x6d\x20\x66\ \x6f\x72\x6d\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x44\x69\x72\ \x65\x63\x74\x20\x41\x70\x70\x72\x6f\x61\x63\x68\x09\x09\x09\x55\ \x73\x69\x6e\x67\x20\x61\x20\x66\x6f\x72\x6d\x20\x77\x69\x74\x68\ \x6f\x75\x74\x20\x61\x6e\x79\x20\x61\x64\x6a\x75\x73\x74\x6d\x65\ \x6e\x74\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x53\x69\x6e\x67\ \x6c\x65\x20\x49\x6e\x68\x65\x72\x69\x74\x61\x6e\x63\x65\x20\x41\ \x70\x70\x72\x6f\x61\x63\x68\x09\x53\x75\x62\x63\x6c\x61\x73\x73\ \x69\x6e\x67\x20\x61\x20\x66\x6f\x72\x6d\x27\x73\x20\x62\x61\x73\ \x65\x20\x63\x6c\x61\x73\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\ \x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x49\x6e\x68\x65\x72\x69\x74\ \x61\x6e\x63\x65\x20\x41\x70\x70\x72\x6f\x61\x63\x68\x09\x53\x75\ \x62\x63\x6c\x61\x73\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x66\x6f\ \x72\x6d\x20\x69\x74\x73\x65\x6c\x66\x0a\x20\x20\x20\x20\x41\x75\ \x74\x6f\x6d\x61\x74\x69\x63\x20\x43\x6f\x6e\x6e\x65\x63\x74\x69\ \x6f\x6e\x73\x09\x09\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6e\x67\x20\ \x77\x69\x64\x67\x65\x74\x73\x20\x75\x73\x69\x6e\x67\x20\x61\x20\ \x6e\x61\x6d\x69\x6e\x67\x20\x73\x63\x68\x65\x6d\x65\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x41\x20\x44\x69\x61\x6c\x6f\x67\x20\x57\ \x69\x74\x68\x6f\x75\x74\x20\x41\x75\x74\x6f\x2d\x43\x6f\x6e\x6e\ \x65\x63\x74\x09\x48\x6f\x77\x20\x74\x6f\x20\x63\x6f\x6e\x6e\x65\ \x63\x74\x20\x77\x69\x64\x67\x65\x74\x73\x20\x77\x69\x74\x68\x6f\ \x75\x74\x20\x61\x20\x6e\x61\x6d\x69\x6e\x67\x20\x73\x63\x68\x65\ \x6d\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\x20\x44\x69\x61\ \x6c\x6f\x67\x20\x57\x69\x74\x68\x20\x41\x75\x74\x6f\x2d\x43\x6f\ \x6e\x6e\x65\x63\x74\x09\x55\x73\x69\x6e\x67\x20\x61\x75\x74\x6f\ \x6d\x61\x74\x69\x63\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\ \x73\x0a\x0a\x46\x6f\x72\x6d\x20\x45\x64\x69\x74\x69\x6e\x67\x20\ \x4d\x6f\x64\x65\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x65\x64\ \x69\x74\x20\x61\x20\x66\x6f\x72\x6d\x20\x69\x6e\x20\x51\x74\x20\ \x44\x65\x73\x69\x67\x6e\x65\x72\x0a\x20\x20\x20\x20\x4d\x61\x6e\ \x61\x67\x69\x6e\x67\x20\x46\x6f\x72\x6d\x73\x09\x09\x09\x4c\x6f\ \x61\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x73\x61\x76\x69\x6e\x67\ \x20\x66\x6f\x72\x6d\x73\x0a\x20\x20\x20\x20\x45\x64\x69\x74\x69\ \x6e\x67\x20\x61\x20\x46\x6f\x72\x6d\x09\x09\x09\x42\x61\x73\x69\ \x63\x20\x65\x64\x69\x74\x69\x6e\x67\x20\x74\x65\x63\x68\x6e\x69\ \x71\x75\x65\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x50\x72\x6f\ \x70\x65\x72\x74\x79\x20\x45\x64\x69\x74\x6f\x72\x09\x09\x09\x43\ \x68\x61\x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x20\x70\ \x72\x6f\x70\x65\x72\x74\x69\x65\x73\x0a\x20\x20\x20\x20\x54\x68\ \x65\x20\x4f\x62\x6a\x65\x63\x74\x20\x49\x6e\x73\x70\x65\x63\x74\ \x6f\x72\x09\x09\x45\x78\x61\x6d\x69\x6e\x69\x6e\x67\x20\x74\x68\ \x65\x20\x68\x69\x65\x72\x61\x72\x63\x68\x79\x20\x6f\x66\x20\x6f\ \x62\x6a\x65\x63\x74\x73\x20\x6f\x6e\x20\x61\x20\x66\x6f\x72\x6d\ \x0a\x20\x20\x20\x20\x4c\x61\x79\x6f\x75\x74\x73\x09\x09\x09\x09\ \x4f\x62\x6a\x65\x63\x74\x73\x20\x74\x68\x61\x74\x20\x61\x72\x72\ \x61\x6e\x67\x65\x20\x77\x69\x64\x67\x65\x74\x73\x20\x6f\x6e\x20\ \x61\x20\x66\x6f\x72\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\ \x70\x70\x6c\x79\x69\x6e\x67\x20\x61\x6e\x64\x20\x42\x72\x65\x61\ \x6b\x69\x6e\x67\x20\x4c\x61\x79\x6f\x75\x74\x73\x09\x4d\x61\x6e\ \x61\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\ \x20\x6c\x61\x79\x6f\x75\x74\x73\x20\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x61\x6e\x64\ \x20\x56\x65\x72\x74\x69\x63\x61\x6c\x20\x4c\x61\x79\x6f\x75\x74\ \x73\x09\x53\x74\x61\x6e\x64\x61\x72\x64\x20\x72\x6f\x77\x20\x61\ \x6e\x64\x20\x63\x6f\x6c\x75\x6d\x6e\x20\x6c\x61\x79\x6f\x75\x74\ \x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x47\x72\ \x69\x64\x20\x4c\x61\x79\x6f\x75\x74\x09\x09\x09\x41\x72\x72\x61\ \x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\ \x20\x61\x20\x6d\x61\x74\x72\x69\x78\x0a\x20\x20\x20\x20\x50\x72\ \x65\x76\x69\x65\x77\x69\x6e\x67\x20\x46\x6f\x72\x6d\x73\x09\x09\ \x09\x43\x68\x65\x63\x6b\x69\x6e\x67\x20\x74\x68\x61\x74\x20\x74\ \x68\x65\x20\x64\x65\x73\x69\x67\x6e\x20\x77\x6f\x72\x6b\x73\x0a\ \x0a\x55\x73\x69\x6e\x67\x20\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\ \x73\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x67\x72\x6f\x75\x70\ \x20\x77\x69\x64\x67\x65\x74\x73\x20\x74\x6f\x67\x65\x74\x68\x65\ \x72\x0a\x20\x20\x20\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x46\x65\ \x61\x74\x75\x72\x65\x73\x09\x09\x09\x43\x6f\x6d\x6d\x6f\x6e\x20\ \x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x66\x65\x61\x74\x75\x72\ \x65\x73\x0a\x20\x20\x20\x20\x46\x72\x61\x6d\x65\x73\x09\x09\x09\ \x09\x51\x46\x72\x61\x6d\x65\x0a\x20\x20\x20\x20\x47\x72\x6f\x75\ \x70\x20\x42\x6f\x78\x65\x73\x09\x09\x09\x09\x51\x47\x72\x6f\x75\ \x70\x42\x6f\x78\x0a\x20\x20\x20\x20\x53\x74\x61\x63\x6b\x65\x64\ \x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x51\x53\x74\x61\x63\ \x6b\x65\x64\x57\x69\x64\x67\x65\x74\x0a\x20\x20\x20\x20\x54\x61\ \x62\x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x09\x51\x54\x61\ \x62\x57\x69\x64\x67\x65\x74\x0a\x20\x20\x20\x20\x54\x6f\x6f\x6c\ \x62\x6f\x78\x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x51\x54\ \x6f\x6f\x6c\x42\x6f\x78\x0a\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\ \x6f\x6e\x20\x45\x64\x69\x74\x69\x6e\x67\x20\x4d\x6f\x64\x65\x09\ \x09\x09\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6e\x67\x20\x77\x69\x64\ \x67\x65\x74\x73\x20\x74\x6f\x67\x65\x74\x68\x65\x72\x20\x77\x69\ \x74\x68\x20\x73\x69\x67\x6e\x61\x6c\x73\x20\x61\x6e\x64\x20\x73\ \x6c\x6f\x74\x73\x0a\x20\x20\x20\x20\x43\x6f\x6e\x6e\x65\x63\x74\ \x69\x6e\x67\x20\x4f\x62\x6a\x65\x63\x74\x73\x09\x09\x09\x4d\x61\ \x6b\x69\x6e\x67\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x73\ \x20\x69\x6e\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x0a\ \x20\x20\x20\x20\x45\x64\x69\x74\x69\x6e\x67\x20\x43\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x09\x09\x09\x43\x68\x61\x6e\x67\x69\ \x6e\x67\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x63\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x0a\ " qt_resource_name = b"\ \x00\x0b\ \x0c\xe2\x22\xf4\ \x00\x64\ \x00\x65\x00\x66\x00\x61\x00\x75\x00\x6c\x00\x74\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/editabletreemodel/mainwindow.ui0000644000076500000240000000631212536324427025775 0ustar philstaff00000000000000 MainWindow 0 0 573 468 Editable Tree Model 0 0 true QAbstractItemView::SelectItems QAbstractItemView::ScrollPerPixel false true 0 0 573 31 &File &Actions E&xit Ctrl+Q Insert Row Ctrl+I, R Remove Row Ctrl+R, R Insert Column Ctrl+I, C Remove Column Ctrl+R, C Insert Child Ctrl+N PyQt-x11-gpl-4.11.4/examples/itemviews/editabletreemodel/ui_mainwindow.py0000644000076500000240000001164012536324427026505 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'mainwindow.ui' # # Created: Wed Mar 20 14:23:30 2013 # by: PyQt4 UI code generator snapshot-4.10.1-90522b46ebd0 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(573, 468) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.vboxlayout = QtGui.QVBoxLayout(self.centralwidget) self.vboxlayout.setMargin(0) self.vboxlayout.setSpacing(0) self.vboxlayout.setObjectName(_fromUtf8("vboxlayout")) self.view = QtGui.QTreeView(self.centralwidget) self.view.setAlternatingRowColors(True) self.view.setSelectionBehavior(QtGui.QAbstractItemView.SelectItems) self.view.setHorizontalScrollMode(QtGui.QAbstractItemView.ScrollPerPixel) self.view.setAnimated(False) self.view.setAllColumnsShowFocus(True) self.view.setObjectName(_fromUtf8("view")) self.vboxlayout.addWidget(self.view) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 573, 31)) self.menubar.setObjectName(_fromUtf8("menubar")) self.fileMenu = QtGui.QMenu(self.menubar) self.fileMenu.setObjectName(_fromUtf8("fileMenu")) self.actionsMenu = QtGui.QMenu(self.menubar) self.actionsMenu.setObjectName(_fromUtf8("actionsMenu")) MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.exitAction = QtGui.QAction(MainWindow) self.exitAction.setObjectName(_fromUtf8("exitAction")) self.insertRowAction = QtGui.QAction(MainWindow) self.insertRowAction.setObjectName(_fromUtf8("insertRowAction")) self.removeRowAction = QtGui.QAction(MainWindow) self.removeRowAction.setObjectName(_fromUtf8("removeRowAction")) self.insertColumnAction = QtGui.QAction(MainWindow) self.insertColumnAction.setObjectName(_fromUtf8("insertColumnAction")) self.removeColumnAction = QtGui.QAction(MainWindow) self.removeColumnAction.setObjectName(_fromUtf8("removeColumnAction")) self.insertChildAction = QtGui.QAction(MainWindow) self.insertChildAction.setObjectName(_fromUtf8("insertChildAction")) self.fileMenu.addAction(self.exitAction) self.actionsMenu.addAction(self.insertRowAction) self.actionsMenu.addAction(self.insertColumnAction) self.actionsMenu.addSeparator() self.actionsMenu.addAction(self.removeRowAction) self.actionsMenu.addAction(self.removeColumnAction) self.actionsMenu.addSeparator() self.actionsMenu.addAction(self.insertChildAction) self.menubar.addAction(self.fileMenu.menuAction()) self.menubar.addAction(self.actionsMenu.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("MainWindow", "Editable Tree Model", None)) self.fileMenu.setTitle(_translate("MainWindow", "&File", None)) self.actionsMenu.setTitle(_translate("MainWindow", "&Actions", None)) self.exitAction.setText(_translate("MainWindow", "E&xit", None)) self.exitAction.setShortcut(_translate("MainWindow", "Ctrl+Q", None)) self.insertRowAction.setText(_translate("MainWindow", "Insert Row", None)) self.insertRowAction.setShortcut(_translate("MainWindow", "Ctrl+I, R", None)) self.removeRowAction.setText(_translate("MainWindow", "Remove Row", None)) self.removeRowAction.setShortcut(_translate("MainWindow", "Ctrl+R, R", None)) self.insertColumnAction.setText(_translate("MainWindow", "Insert Column", None)) self.insertColumnAction.setShortcut(_translate("MainWindow", "Ctrl+I, C", None)) self.removeColumnAction.setText(_translate("MainWindow", "Remove Column", None)) self.removeColumnAction.setShortcut(_translate("MainWindow", "Ctrl+R, C", None)) self.insertChildAction.setText(_translate("MainWindow", "Insert Child", None)) self.insertChildAction.setShortcut(_translate("MainWindow", "Ctrl+N", None)) PyQt-x11-gpl-4.11.4/examples/itemviews/fetchmore.py0000755000076500000240000001137412536324427022145 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Darryl Wallace . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class FileListModel(QtCore.QAbstractListModel): numberPopulated = QtCore.pyqtSignal(int) def __init__(self, parent=None): super(FileListModel, self).__init__(parent) self.fileCount = 0 self.fileList = [] def rowCount(self, parent=QtCore.QModelIndex()): return self.fileCount def data(self, index, role=QtCore.Qt.DisplayRole): if not index.isValid(): return None if index.row() >= len(self.fileList) or index.row() < 0: return None if role == QtCore.Qt.DisplayRole: return self.fileList[index.row()] if role == QtCore.Qt.BackgroundRole: batch = (index.row() // 100) % 2 if batch == 0: return QtGui.qApp.palette().base() return QtGui.qApp.palette().alternateBase() return None def canFetchMore(self, index): return self.fileCount < len(self.fileList) def fetchMore(self, index): remainder = len(self.fileList) - self.fileCount itemsToFetch = min(100, remainder) self.beginInsertRows(QtCore.QModelIndex(), self.fileCount, self.fileCount + itemsToFetch) self.fileCount += itemsToFetch self.endInsertRows() self.numberPopulated.emit(itemsToFetch) def setDirPath(self, path): dir = QtCore.QDir(path) self.fileList = list(dir.entryList()) self.fileCount = 0 self.reset() class Window(QtGui.QWidget): def __init__(self, parent=None): super(Window, self).__init__(parent) model = FileListModel(self) model.setDirPath(QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.PrefixPath)) label = QtGui.QLabel("Directory") lineEdit = QtGui.QLineEdit() label.setBuddy(lineEdit) view = QtGui.QListView() view.setModel(model) self.logViewer = QtGui.QTextBrowser() self.logViewer.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)) lineEdit.textChanged.connect(model.setDirPath) lineEdit.textChanged.connect(self.logViewer.clear) model.numberPopulated.connect(self.updateLog) layout = QtGui.QGridLayout() layout.addWidget(label, 0, 0) layout.addWidget(lineEdit, 0, 1) layout.addWidget(view, 1, 0, 1, 2) layout.addWidget(self.logViewer, 2, 0, 1, 2) self.setLayout(layout) self.setWindowTitle("Fetch More Example") def updateLog(self, number): self.logViewer.append("%d items added." % number) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/pixelator/0000755000076500000240000000000012536324427021615 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/itemviews/pixelator/images/0000755000076500000240000000000012536324427023062 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/itemviews/pixelator/images/qt.png0000644000076500000240000000122012536324427024207 0ustar philstaff00000000000000‰PNG  IHDR&&V¶r pHYs  ÒÝ~ütIMEÔ 8¸¯ÓRbKGDÿ‡Ì¿!IDAT8Ëcøp–ðáì"ÀYTeŸ×8«JJj¸—mý†SÙùXN8àϼ…UÙó(FÀ’ýSÙ w ]Ùdf,€}ª²Ép6-{5y-²²­P³˜C·}øiÔ¡œgÊ^@Ýeqá¹#Z1•¯peÑ‘ŒßÈaõ%"Z Sv‘ ¢ ¡äm>Ðîß¾kŸA•ÅClü…PeÄàT÷Q,QQö™ ìúKȪÀ궃•Éþ+[棪‚¨3³Î‚•ƒÙ[ÐT10Lþÿ˜1¬ÌÄdýŠ®*ãßÿÿ·Á¬d°2MS›ªÿÿÀÎv+“1mÐT¥ýóå@ls°2iÓ Uƒûw°€ˆm V¦b*£ª‚ªûÍbzƒ•yƒƒíª*ˆºK`VXY˜½üÿÿ|ÔÄT×fÌ+Û f;ÿÿÿÍ ÌJ÷ƒ©û¬¦o€•ýsöCÕeüû S§&µ QŸ æ©}«…\ô@•Ýcs½ÉíÛdpx!«úK–÷ðèGR×O½Ÿ!" ÿÁÔ}S‡ªâûŒÈ2§`ÙÝ`Òõ¿ÀP½Ð¢†~° ¸Ž.Ì!-ÁŠ~ð켋'ˆ@*ΫcÊCTè,rQó­Í@¡ ßü ªP ®õòEÚ½ÁáR…^ þ;71ÅÃÂÆ;kÖMhøÅŸÅRZâ.T‰+¢hmè© .ÊÃIEND®B`‚PyQt-x11-gpl-4.11.4/examples/itemviews/pixelator/pixelator.py0000755000076500000240000002415512536324427024210 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # These are only needed for Python v2 but are harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import pixelator_rc3 except ImportError: import pixelator_rc2 ItemSize = 256 class PixelDelegate(QtGui.QAbstractItemDelegate): def __init__(self, parent=None): super(PixelDelegate, self).__init__(parent) self.pixelSize = 12 def paint(self, painter, option, index): if option.state & QtGui.QStyle.State_Selected: painter.fillRect(option.rect, option.palette.highlight()) size = min(option.rect.width(), option.rect.height()) brightness = index.model().data(index, QtCore.Qt.DisplayRole) radius = (size/2.0) - (brightness/255.0 * size/2.0) if radius == 0.0: return painter.save() painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setPen(QtCore.Qt.NoPen) if option.state & QtGui.QStyle.State_Selected: painter.setBrush(option.palette.highlightedText()) else: painter.setBrush(QtGui.QBrush(QtCore.Qt.black)) painter.drawEllipse(QtCore.QRectF( option.rect.x() + option.rect.width()/2 - radius, option.rect.y() + option.rect.height()/2 - radius, 2*radius, 2*radius)) painter.restore() def sizeHint(self, option, index): return QtCore.QSize(self.pixelSize, self.pixelSize) def setPixelSize(self, size): self.pixelSize = size class ImageModel(QtCore.QAbstractTableModel): def __init__(self, parent=None): super(ImageModel, self).__init__(parent) self.modelImage = QtGui.QImage() def setImage(self, image): self.modelImage = QtGui.QImage(image) self.reset() def rowCount(self, parent): return self.modelImage.height() def columnCount(self, parent): return self.modelImage.width() def data(self, index, role): if not index.isValid() or role != QtCore.Qt.DisplayRole: return None return QtGui.qGray(self.modelImage.pixel(index.column(), index.row())) def headerData(self, section, orientation, role): if role == QtCore.Qt.SizeHintRole: return QtCore.QSize(1, 1) return None class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.currentPath = QtCore.QDir.homePath() self.model = ImageModel(self) centralWidget = QtGui.QWidget() self.view = QtGui.QTableView() self.view.setShowGrid(False) self.view.horizontalHeader().hide() self.view.verticalHeader().hide() self.view.horizontalHeader().setMinimumSectionSize(1) self.view.verticalHeader().setMinimumSectionSize(1) self.view.setModel(self.model) delegate = PixelDelegate(self) self.view.setItemDelegate(delegate) pixelSizeLabel = QtGui.QLabel("Pixel size:") pixelSizeSpinBox = QtGui.QSpinBox() pixelSizeSpinBox.setMinimum(4) pixelSizeSpinBox.setMaximum(32) pixelSizeSpinBox.setValue(12) fileMenu = QtGui.QMenu("&File", self) openAction = fileMenu.addAction("&Open...") openAction.setShortcut("Ctrl+O") self.printAction = fileMenu.addAction("&Print...") self.printAction.setEnabled(False) self.printAction.setShortcut("Ctrl+P") quitAction = fileMenu.addAction("E&xit") quitAction.setShortcut("Ctrl+Q") helpMenu = QtGui.QMenu("&Help", self) aboutAction = helpMenu.addAction("&About") self.menuBar().addMenu(fileMenu) self.menuBar().addSeparator() self.menuBar().addMenu(helpMenu) openAction.triggered.connect(self.chooseImage) self.printAction.triggered.connect(self.printImage) quitAction.triggered.connect(QtGui.qApp.quit) aboutAction.triggered.connect(self.showAboutBox) pixelSizeSpinBox.valueChanged.connect(delegate.setPixelSize) pixelSizeSpinBox.valueChanged.connect(self.updateView) controlsLayout = QtGui.QHBoxLayout() controlsLayout.addWidget(pixelSizeLabel) controlsLayout.addWidget(pixelSizeSpinBox) controlsLayout.addStretch(1) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.view) mainLayout.addLayout(controlsLayout) centralWidget.setLayout(mainLayout) self.setCentralWidget(centralWidget) self.setWindowTitle("Pixelator") self.resize(640, 480) def chooseImage(self): fileName = QtGui.QFileDialog.getOpenFileName(self, "Choose an Image", self.currentPath, '*') if fileName: self.openImage(fileName) def openImage(self, fileName): image = QtGui.QImage() if image.load(fileName): self.model.setImage(image) if not fileName.startswith(':/'): self.currentPath = fileName self.setWindowTitle("%s - Pixelator" % self.currentPath) self.printAction.setEnabled(True) self.updateView() def printImage(self): if self.model.rowCount(QtCore.QModelIndex()) * self.model.columnCount(QtCore.QModelIndex()) > 90000: answer = QtGui.QMessageBox.question(self, "Large Image Size", "The printed image may be very large. Are you sure that " "you want to print it?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) if answer == QtGui.QMessageBox.No: return printer = QtGui.QPrinter(QtGui.QPrinter.HighResolution) dlg = QtGui.QPrintDialog(printer, self) dlg.setWindowTitle("Print Image") if dlg.exec_() != QtGui.QDialog.Accepted: return painter = QtGui.QPainter() painter.begin(printer) rows = self.model.rowCount(QtCore.QModelIndex()) columns = self.model.columnCount(QtCore.QModelIndex()) sourceWidth = (columns+1) * ItemSize sourceHeight = (rows+1) * ItemSize painter.save() xscale = printer.pageRect().width() / float(sourceWidth) yscale = printer.pageRect().height() / float(sourceHeight) scale = min(xscale, yscale) painter.translate(printer.pageRect().x()+printer.pageRect().width()/2, printer.pageRect().y()+printer.pageRect().height()/2) painter.scale(scale, scale) painter.translate(-sourceWidth/2, -sourceHeight/2) option = QtGui.QStyleOptionViewItem() parent = QtCore.QModelIndex() progress = QtGui.QProgressDialog("Printing...", "Cancel", 0, rows, self) y = ItemSize / 2.0 for row in range(rows): progress.setValue(row) QtGui.qApp.processEvents() if progress.wasCanceled(): break x = ItemSize / 2.0 for column in range(columns): option.rect = QtCore.QRect(x, y, ItemSize, ItemSize) self.view.itemDelegate.paint(painter, option, self.model.index(row, column, parent)) x = x + ItemSize y = y + ItemSize progress.setValue(rows) painter.restore() painter.end() if progress.wasCanceled(): QtGui.QMessageBox.information(self, "Printing canceled", "The printing process was canceled.", QtGui.QMessageBox.Cancel) def showAboutBox(self): QtGui.QMessageBox.about(self, "About the Pixelator example", "This example demonstrates how a standard view and a custom\n" "delegate can be used to produce a specialized " "representation\nof data in a simple custom model.") def updateView(self): self.view.resizeColumnsToContents() self.view.resizeRowsToContents() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() window.openImage(':/images/qt.png') sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/pixelator/pixelator.qrc0000644000076500000240000000014012536324427024326 0ustar philstaff00000000000000 images/qt.png PyQt-x11-gpl-4.11.4/examples/itemviews/pixelator/pixelator_rc2.py0000644000076500000240000000704312536324427024750 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:41:52 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x02\x90\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x26\x00\x00\x00\x26\x08\x00\x00\x00\x00\x8d\x56\xb6\x72\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\x0b\x12\ \x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd4\x08\ \x06\x0a\x1f\x38\xb8\xaf\xd3\x52\x00\x00\x00\x02\x62\x4b\x47\x44\ \x00\xff\x87\x8f\xcc\xbf\x00\x00\x02\x21\x49\x44\x41\x54\x38\xcb\ \x63\xf8\x70\x96\x08\xf0\x81\xe1\xec\x7f\x22\xc0\x59\x54\x65\x9f\ \xd7\x16\x38\xab\x4a\x4a\x6a\xb8\x97\x6d\xfd\x86\x53\xd9\xf9\x58\ \x4e\x06\x38\xe0\xcf\xbc\x85\x55\xd9\xf3\x28\x46\x06\x14\xc0\x92\ \xfd\x01\x53\xd9\x16\x11\x06\x0c\x20\x77\x0c\x5d\xd9\x64\x66\x06\ \x2c\x80\x7d\x15\xaa\xb2\xc9\x70\x19\x36\x2d\x07\x7b\x35\x16\x18\ \x8f\x79\x2d\xb2\xb2\xad\x50\xb3\x98\x43\xb7\x81\x7d\xf8\x69\x8d\ \x07\xd4\xa1\x9c\x67\x10\xca\x5e\x40\xdd\x65\x71\x19\xe1\xb9\x23\ \x5a\x10\x31\x95\xaf\x70\x65\xd1\x10\x91\x8c\xdf\xc8\x61\xf5\x25\ \x00\x22\x5a\x09\x53\x76\x91\x09\xa2\x0a\xa1\xe4\x6d\x3e\xd0\xee\ \xdf\xbe\x10\x6b\x9f\x41\x95\xc5\x43\x6c\xfc\x85\x50\x65\xc4\xe0\ \x06\x54\xf7\x51\x19\x2c\x51\x03\x51\xf6\x99\x0b\xec\xfa\x4b\xc8\ \xaa\x18\xc0\xea\xb6\x83\x95\xc9\xfe\x03\x2b\x5b\x0f\xe6\x04\xa3\ \xaa\x82\xa8\x33\x05\xb3\xce\x82\x95\x15\x83\xd9\x5b\xd0\x54\x31\ \x30\x4c\xfe\xff\x7f\x1a\x98\x31\x01\xac\xcc\x15\xc4\x64\xfd\x8a\ \xae\x2a\xe3\xdf\xff\xff\xb7\xc1\xac\x64\xb0\x32\x4d\x10\x53\x1d\ \x9b\xaa\xff\xff\xc0\xce\x76\x07\x2b\x93\x04\x31\x6d\xd0\x54\xa5\ \xfd\x03\xf3\xe5\x40\x6c\x73\xb0\x32\x69\x10\xd3\x0a\x55\x15\x83\ \xfb\x77\xb0\x80\x14\x88\x6d\x0d\x56\xa6\x03\x62\x2a\xa3\xaa\x82\ \xaa\xfb\xcd\x0e\x62\x7a\x83\x95\x79\x83\x83\xed\x1d\xaa\x2a\x88\ \xba\x4b\x60\x56\x16\x58\x59\x15\x98\xbd\xfc\xff\xff\x7c\xd4\xc4\ \x06\x54\xd7\x0e\x66\xcc\x00\x2b\xdb\x09\x66\x3b\xff\xff\xff\xcd\ \x0d\xcc\x4a\xf7\x83\xa9\xfb\xac\x06\xa6\x6f\x80\x95\xfd\x14\x04\ \x73\xf6\x43\xd5\x65\xfc\xfb\x09\x53\xa7\x02\x26\xb5\xa0\x51\x9f\ \x0b\xe6\xa9\x7d\x02\xab\x03\x85\x17\x5c\x1d\x18\xf4\x40\x95\xdd\ \x63\x05\x73\xbd\x81\xc9\xed\xdb\x64\x70\x78\x21\xab\x13\xfa\x00\ \x4b\x96\x05\x10\x01\x8f\xf7\xf0\xe8\x47\x52\xd7\x07\x4f\xbd\x9f\ \x14\x21\x22\x0a\x1b\xff\xc1\xd4\x7d\x53\x87\xaa\xe2\xfb\x8c\xc8\ \x32\xa7\x60\xd9\xdd\x60\xd2\xf5\xbf\xc0\x50\xbd\xd0\xa2\x86\x12\ \x7e\xb0\x0c\xb8\x8e\x15\x2e\xcc\x21\x2d\xc1\x8a\x1e\x7e\xf0\xec\ \xbc\x81\x8b\x01\x27\x88\x40\x2a\x1c\xce\xab\x63\xca\x43\x02\x54\ \xe8\x2c\x72\x51\xf3\xad\x06\xcd\x40\xa1\x09\xdf\xfc\x20\xaa\x50\ \x0b\xae\x17\xf5\xf2\x08\x45\xda\xbd\x1f\xc1\xe1\x02\x52\x85\x5e\ \x0c\xfe\x3b\x37\x31\xc5\xc3\xc2\xc6\x3b\x6b\xd6\x4d\x68\xf8\xc5\ \x9f\xc5\x52\x5a\xe2\x2e\x54\x89\x2b\xa2\x01\x68\x6d\xe8\xa9\x09\ \x2e\xca\xc3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x06\ \x07\x87\x57\x47\ \x00\x71\ \x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/pixelator/pixelator_rc3.py0000644000076500000240000000704612536324427024754 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:41:52 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x02\x90\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x26\x00\x00\x00\x26\x08\x00\x00\x00\x00\x8d\x56\xb6\x72\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\x0b\x12\ \x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd4\x08\ \x06\x0a\x1f\x38\xb8\xaf\xd3\x52\x00\x00\x00\x02\x62\x4b\x47\x44\ \x00\xff\x87\x8f\xcc\xbf\x00\x00\x02\x21\x49\x44\x41\x54\x38\xcb\ \x63\xf8\x70\x96\x08\xf0\x81\xe1\xec\x7f\x22\xc0\x59\x54\x65\x9f\ \xd7\x16\x38\xab\x4a\x4a\x6a\xb8\x97\x6d\xfd\x86\x53\xd9\xf9\x58\ \x4e\x06\x38\xe0\xcf\xbc\x85\x55\xd9\xf3\x28\x46\x06\x14\xc0\x92\ \xfd\x01\x53\xd9\x16\x11\x06\x0c\x20\x77\x0c\x5d\xd9\x64\x66\x06\ \x2c\x80\x7d\x15\xaa\xb2\xc9\x70\x19\x36\x2d\x07\x7b\x35\x16\x18\ \x8f\x79\x2d\xb2\xb2\xad\x50\xb3\x98\x43\xb7\x81\x7d\xf8\x69\x8d\ \x07\xd4\xa1\x9c\x67\x10\xca\x5e\x40\xdd\x65\x71\x19\xe1\xb9\x23\ \x5a\x10\x31\x95\xaf\x70\x65\xd1\x10\x91\x8c\xdf\xc8\x61\xf5\x25\ \x00\x22\x5a\x09\x53\x76\x91\x09\xa2\x0a\xa1\xe4\x6d\x3e\xd0\xee\ \xdf\xbe\x10\x6b\x9f\x41\x95\xc5\x43\x6c\xfc\x85\x50\x65\xc4\xe0\ \x06\x54\xf7\x51\x19\x2c\x51\x03\x51\xf6\x99\x0b\xec\xfa\x4b\xc8\ \xaa\x18\xc0\xea\xb6\x83\x95\xc9\xfe\x03\x2b\x5b\x0f\xe6\x04\xa3\ \xaa\x82\xa8\x33\x05\xb3\xce\x82\x95\x15\x83\xd9\x5b\xd0\x54\x31\ \x30\x4c\xfe\xff\x7f\x1a\x98\x31\x01\xac\xcc\x15\xc4\x64\xfd\x8a\ \xae\x2a\xe3\xdf\xff\xff\xb7\xc1\xac\x64\xb0\x32\x4d\x10\x53\x1d\ \x9b\xaa\xff\xff\xc0\xce\x76\x07\x2b\x93\x04\x31\x6d\xd0\x54\xa5\ \xfd\x03\xf3\xe5\x40\x6c\x73\xb0\x32\x69\x10\xd3\x0a\x55\x15\x83\ \xfb\x77\xb0\x80\x14\x88\x6d\x0d\x56\xa6\x03\x62\x2a\xa3\xaa\x82\ \xaa\xfb\xcd\x0e\x62\x7a\x83\x95\x79\x83\x83\xed\x1d\xaa\x2a\x88\ \xba\x4b\x60\x56\x16\x58\x59\x15\x98\xbd\xfc\xff\xff\x7c\xd4\xc4\ \x06\x54\xd7\x0e\x66\xcc\x00\x2b\xdb\x09\x66\x3b\xff\xff\xff\xcd\ \x0d\xcc\x4a\xf7\x83\xa9\xfb\xac\x06\xa6\x6f\x80\x95\xfd\x14\x04\ \x73\xf6\x43\xd5\x65\xfc\xfb\x09\x53\xa7\x02\x26\xb5\xa0\x51\x9f\ \x0b\xe6\xa9\x7d\x02\xab\x03\x85\x17\x5c\x1d\x18\xf4\x40\x95\xdd\ \x63\x05\x73\xbd\x81\xc9\xed\xdb\x64\x70\x78\x21\xab\x13\xfa\x00\ \x4b\x96\x05\x10\x01\x8f\xf7\xf0\xe8\x47\x52\xd7\x07\x4f\xbd\x9f\ \x14\x21\x22\x0a\x1b\xff\xc1\xd4\x7d\x53\x87\xaa\xe2\xfb\x8c\xc8\ \x32\xa7\x60\xd9\xdd\x60\xd2\xf5\xbf\xc0\x50\xbd\xd0\xa2\x86\x12\ \x7e\xb0\x0c\xb8\x8e\x15\x2e\xcc\x21\x2d\xc1\x8a\x1e\x7e\xf0\xec\ \xbc\x81\x8b\x01\x27\x88\x40\x2a\x1c\xce\xab\x63\xca\x43\x02\x54\ \xe8\x2c\x72\x51\xf3\xad\x06\xcd\x40\xa1\x09\xdf\xfc\x20\xaa\x50\ \x0b\xae\x17\xf5\xf2\x08\x45\xda\xbd\x1f\xc1\xe1\x02\x52\x85\x5e\ \x0c\xfe\x3b\x37\x31\xc5\xc3\xc2\xc6\x3b\x6b\xd6\x4d\x68\xf8\xc5\ \x9f\xc5\x52\x5a\xe2\x2e\x54\x89\x2b\xa2\x01\x68\x6d\xe8\xa9\x09\ \x2e\xca\xc3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x06\ \x07\x87\x57\x47\ \x00\x71\ \x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/puzzle/0000755000076500000240000000000012536324427021137 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/itemviews/puzzle/example.jpg0000644000076500000240000012323612536324427023303 0ustar philstaff00000000000000ÿØÿàJFIFHHÿáExifMM*ÿÛC  !"$"$ÿÛCÿÀ¨¨"ÿÄ ÿÄT !1"AQaq2‘#B¡±3RbÁÑð$47Ccrtu‚’³´áñ6Ss”¢²%“ Dƒ£ÂÒâÿÄÿÄ5!1A"Qaq¡ð2‘ÁÑá#±ñBRbc$ÿÚ ?ìº(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ +-)îi3óÙhr±PÚ[€®Šb¨âENçBî¥?2Ëê6ŸýeêÜ“œcí8þ4§ˆ¦¹ö&ôU|z§¥‡}Alþpšß©ZnI jûlR‰ÆÑ%þt{D 'TS4[ìgÒIAÈ?/fk.vX«Æ¤g³"âª+­*ìk*¹!EPEPEPEPEPEPEPEPEs†²ë¨¸õ6ï§4Ķí6»ª!ï½!䨥CÎ Rœ…p3žFÅê~²e{œ¸5 eÈÈÿ´\¼OKáðõ8r½ûŒ2é JMjt%KAëÙûm¢ÿü¥©¿çºŸ õŠÊàe²{þ,¥À?ˆþU4úc?ó·ËÇF\Ë.ЉAê>—€.Á…Ýy¥£øãÆ¥1ÞjDvä0â]eÔ¡i9 IlVêUéU÷$Ÿƒ4F¤'î»›(¢Šip¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢‚@¤²¥!¤’To[‰HäÓeÆï+jRÜJBFI'T¨½J´i˜«T™).ØW?µrþ¼ê†¡ÖKZ#Èû%´(‚½Ûÿ±¬µq +A´¨N«Óbü×ýsÓ:}·R%‰'#Ãa\gþWùW=k?Ò;V]^r=…±£<$î_çÉþUýY NøÓœ/©GqyÂJJ}Ђ¯ÇíÎl}0íøéQHRŠ› Ç >ÞüÖGZúÚþ'B8Grr½uøã’%IœB¹%ÅyúóL2àêIrD…¸9PÝŒU¡s-Ì”á—6DÅ’0–µ”( `¨wüh• µ¡–[`xŽx~2Ò; »¼¹øÂªcŠ×„‹\ýy"¢_Ò²‚·÷à+8­N‹Ë.Kq²9óVË\±Å8Û¥¦ˆ#ík(*ú%8¡÷$ÊHR£Ú›q ÉñkyüIÍi…w>fZ˜eq^˜ê>±ÓR¶ë̦¶ŽR—Ôv5sh_Ò–ëHgQÃD”¯"þ§ÐþUΫD§?uŃè@àüZ<(” ”œ)%8P>Æ™(B{™{¤})êîžÖ‘<[]Å+q#ÏÓµÔ~£äU£æÄ„«òbÓ2éj}3m;ÖÕÈYII5{ô·ô•¾Y\jߪ[Tøã?œ:‘õìΡg†Ú¯2Ž lwúV85•Uý8êuƒVÄCÖ›‹R8Ê›'#êžõbŘ۩(ÓaQOb‚º+ĨÕí\¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ˆ¡¿'Q?é©?ø‡jg¢¬—-e«\°ÚVÔv¡´—®3]AZXJ³± H#rÕ‚FHyíPÈ_ïÉÔ_újOþ!Ú¾¿E8[Q\ÖÛÌ¿>‚²9-´”!#è0¯ÌטŽž‘š¨®—àó˜jJ­l¯mO ô;·w4´=Q'úBÛ%ß â“¸qŸ(H ŒóUÅÎÕ:ݬàiY btË‚!¤ƒ”¤(xŸ) ¨DÉ êþ–» «íj ÒÕŸÜx-+ˆ5n_WÁý"´ø‘lnc÷k[¢3ë_û‰Èá§’T´8H#„Žõ4°Xll#R1Ë­š\Ñ¡S§]]+YÛàTú–ÒíŽù*Ôó¨uqÔV€@9ÿt†ŠÿÜÛ'ýþí5Nõ–ço‘¨%[š³5dw’\š—2§ÆÎÅ8î=Oj¸´WþæÙ?èøÿ÷i«ôM(ÒÅÕ„Òûì? ÓŠ袊ôgP(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+¨$Pµ„ŒÓ ½G·Äu÷ÞKm¶’¥©G zšI]€¢ïuf*[Ž%!#$“€sïXzçÔӬΙ2Ôv%Hä§ùÕgמ¶½z}û=…å&0%%@à¸}ÏÇÇç\ÿ&âì¥øM-KZÁºO'ñô¿JÇRr“±²Ž{Õ>Dšó¨¯Úšö¥¼£1â²PÒ•–Ò=IôÀõ9¥¶¶ÜrK^ÎCjðüWû•ý†›ø|œj+ky ?fŽNÁÊÔ@^=Èùöü9æŸXšµ%!•ã²Hqô€ «MŽÀzŸOUkHë©Õ¤ô´Gù ¶Ã˜‘!r\;œwhò¤u½ôsÚš§ÜÒ…ܿŷ0¬©M¯—ãÈO {1ñOš[§Úã_¥Ûcu óöù -¥Ìq”æW×㌠·´o@t•­œÞEâj€R䤟zêÛ^š¶[ã°b°Ë !-¥9ø$ ^Íž2T” åá?AÚ¬¤ÿÅ[ÌS©ò×Ézøœÿ±ÝJ”‡\˜êÉ^IYDz’sÁÇ¿©Þ–ê£5KÈD„ŒP<0¼z«ääŽ{â»Em.§€"¼\( ªm£žÙ‘¢õ?ØZéüœ‡£wéJSm†üPwí£'‘ßÞ›µL/Ñæ»T4ø!J%\(c?À×e}‘¶PRÞÜ|Ô–e¾ß)Y“6’G|Õ3Ô_äK©NZ8èp”½32$w·6µ-’ŸN2>yíL-Ž$©!¢6ò°psë]ésÑö)¹XކÜÁ󄌂}sQ{×ItýÂ!oà Ÿí6~¿ë½28Ê‘Ý\T°ô'³hã]1}½é©­ÜíSŒëjà¡D]AÑÿÒYÉOǴꆛiÕ”ÊO”(ÿxvü±P Ñ[­—µ„½‚¯ä¯ã8ªfãmµJjS*e{°ž1ÛæµÆ´+­7ó1UÂ8jõ]§Ôý-¨cÜã!hq*Ü20sš’¶­Â¹ôVÖ.K°C‡)õ, @žàv?•umª@u”œç"Ÿ†¨ç¥º0´âÜX¾Š(§€QEQEQEQEQEÄP¿ß“¨¿ôÔŸüCµ}þŠr·éAjý¬MA$í>ˆq(q'ñÜ#T$/÷äê/ý5'ÿíMô£—¡ut›Ûœ›m¸2–îqPŒìu¼àH)$dùæiâ¡C¤§Ù?ÁçpµU*ùžÚ‰Ìw“Õ+9ñ‘©[*O÷[ÞUùb­]fúúLèã›¶Ü®´ßÿóNp¡hy…Ž°Û¡Kœâ¢©ØÞ>]þU¨7À <…Øfªkž¢¸¿ÔØ:å BfAua1œÉB™Z<57žàíÆî3ƒÚŸ”ú60¥Qîïð4醊MÞí?€¿ªÿï…vÿæ'ÿÁ5|è¯ýͲÑñÿîÓTFºÕíJ´ÉcNÆ·ÍZ’¹BÂÜs ÀNí íáÚ¯}ÿ¹¶Oú>?ýÚi}á,]YBWO_›ƒqu¦âî˜ïEW£:EPEPEPEPEPEPX¸ ‘šÈœ Ó]ÞbXiDšC©oq­^“%ô2ÓH*ZÔp­pï_úÕ7S\Ý´ÙÞ[vÖ×´ÿZ}Ï¿øT‹ô»ê{ÏËþ‰Zeˆ9˜¤ÞþÉøÌüW-8á^HY(ïžê?åJmËQ”Ò]f.%Nº´©ÎÿÖc“ô¤eâñØïVq‘ò}¿'*[žDySëJíÑ_˜ûPá²ã®º°”¡ Ü¥«éQ•A]R•YYzî`¸†˜SIqa£€ „ùÝ>€{{]Ñ~ŒIuµµŽ”$%*…hq>T'ºK£øìüM;ô£´Äx·ÝG2ïe!ÆX õÇï/äöô«±[Î嬨ä“ë\ºµTÞ›ˆ^”r­ÿƒØí'i8Ç H`=¥qØ ã—àà Ö)B6opa¿ãKY\‚­ 2ŸãUŠ&*bŠ|éCiþ5ꛂŽàQ­haÇUæZ–G¹í[[€ÉÁûÓ’ìBvݘ BÇ+ðÍju‹zÿáÎñ§ã6Œ'Ç|÷¬„frAŒT¸¶‚ãB™†ÜûóZ]m¢ѺžÜ‹a>QŽ{ÒeGaíRGãK”K) Ëe¬¦ŸB8¤«Ž‚½¬­HW8 âŸÖÃ}‚ÂI瓚E.9Ør yÆ)r€Å!–CD ¶êv¨ŒŽª»«=5µjH¸ÓI‹=) ¥[*Rš² ÛþÊ?¤èuNG;Oª~ !èô›[ÁÑ·¥õ“¶{’Œy(! ©G td‘ø×l苈“£»œs\§×(¹Pw„‰q2IG|Æ}ñÍM¿EΠ¿}´ˆ—'ó:.á=Ö=],5Hï۹ÉÅÓ´³L…e5•"·È´9È¥µÒ3Q@Q@Q@Q@Q@Kµ·Ön¢%Ä)Þd( p_tƒø‚ãR*é{¾ˆÒ·kÚ¯W +\ÚZ[Û”’´§;B€ +îsǺž±AÇØìð#÷’Âw~xÍyÌ_BÔÄW•LÉ&qÿL›“ëhP-¼ê½- vÍ? ë­n­Öâ.2Ü )D•Ôœ’£œŒ“Œf· ¬ïßš«*˜2S‹ñ–ÂJ‰'…ãšè|QZ_Cñ"£Z«’^ îhXâ£96‘JYúAwrCjºÏˆÃIJ¢·1ê@üóWÿ(3džÂ¸côÃÖK™~jÆÂÎØƒ+à­\ÿŠ]W´IŒsJÌ¡¯÷îWß}Õ-n(­å©Y*$çÕˇ¾ÔZÏb¨ûš_h´Mº]"ÛØl‡RR9JTG›C𛍫²îóz­0$Üç5 y甆Ð9Q®»è/L-ÚF wk“-ɾ8Œî#rc;'çæ«~”idÛ.iðÚX%âÊ%HÉÏ÷±É™Åt½)m A (vÓæ¸ø¬C©S"Ù¼=,ßäüé{~oÞ#r³ïJÛÜ£¸Ž}µh'ÝØžõ¥1°R7wìqTH«b–“€ ³øsJÙQ$€3ÜÖ⌓ŒX?qƒÈã©+$g·Ö˜¢)ß°qh©YÅvç·8”ð·0=ÕLɽÆCIwzXJòV¤§wÓ>Ÿ5›wHOc¸GwqÁ(>Ü~•tC„»-G•’k,+’GãZTµµ) )ôù­˜ã¸>ø©Ô‹›J¹Ãæ«ûÇZ4UºwØî3®ƒÍ«-œwç±?LÒe$˜ØÓ”¶DùõåqüŠoy;£ò=é¶&µ²NKe¹ ©.c mÀâN{d§±úÓ©SKHR0¡À¾Ô§il]ÆQÝ wÈ-ÊŠâ@)Zp}ù®lLù=.êK®­ 0^{z¶v)'ŸÇºðRèAû§<Õ×Û+ReÆuMxŠ(sŸ»Ç¯"™N¦Mö* ­âΤÐ7è÷+s2ò\mÄ¡`ð¤‘jrÊ·$W$~‹Z­ßÔâÃ5dI¶¯Áñ½²r“á]Qha$Jìáæå=ѳ‹qc•QN$(¢Š(¢Š(­Rä±3’dº–™lekQà ¬u–»¾9oyë#H¶C"d„n[Ÿ)Ià~9«Ó§*ŽÈUZѤ¯"Ó¢¹×OYv.J›¬/Á° ËRÔÐ? 1M79Ú¡‰kB5V¤ðÒx?¬œÉiö)ö™=½©ÔW4éÙ÷©—†X‘¬5Y*Á?¬\çßؚ֮y*ˆ‡£Ô rLÜÿ….®TÒlu,W´‘)¢ª‹ƒSD÷<-I}Ki8À˜ª~ÒöI’b—äêꂾîfñ3ÃJÌÙXbóË*D技jˆ—Ýöô” wûYÿ*®ž»^þÒBu%äöÕãùÕ¡ƒœ•È–61v±Ð”Ua¥Þ—.3k~÷vR‡ ÿj<þu,›hqP‹¬Þ.Á[r1+ÿ*\ðòƒIó/ Jšm-‰Yæâ‡ Uyº§Ÿö¥v©m¶Ú!‡ÒãœsþÑÿ•M\4©«°¥ŠU’誣SÝ'1pZb].ICg2T?•7E»]^ ®õqGÇÚWÏñ¦,ÚñÑOb被XóäH‹á¦ï<:rú»þt§JÜ›ƒŒÉŸ,´“Á/¨ÿ:‰`åvÉŽ22vH°h¤)…µ$ªd³óâšM8!¨î-¤ÛŬñƒ“²4ÊyUØïEBݹ¼Ã"åÈ#üCM’o·B?dó €K‡üëO±LÍí°ì,zÅÄP+Uús‹ðßyÍÞ‡yÿ:XýåöšYq×1Ž<Æb™+'×’ÔÜE„žOók«×sz××i{÷!IJ» ã?ʺ÷¯šåÛV‘¹KL…%ß ²ÈÜr\_×Ðdþ KÛ½¨€IÈϨ?5Ž­,•lÓB§6ŒR!Å$+aÂ{îja¡®,ZE»™=µ+*K¾­§ƒœð=“óQ4¶Ëî¡ô2”޹‘ÿ:ÉiXm~e„í;‰ôÀÇriSŽecM9ä•΃é¸ÔÛõÂZ!Z­Šn4rò‚@QȼHÎqîjıõ‹¦qb©RõŒd:´lŒò¼¸øOÖ¹ó©Z}ûIíLȈb¾.)S¬÷SAM(¤,ÿhá\zWHi)¦btkNj½(ÑÓß~ÕŽ6Œ\Z°’µsÉäýk›C N½ê§¥ß‘՝Д§eËÌÍ]yé HIÕÎ=E¶Aÿü+yëÿHiE­Xµ«õt€N>¨¥kÓ75F/Úô'MYi •<4ãMGN?ã\àþ†—ÐÚŸS;#h誛ŠR™(‰ajbš*ä„§<ÄÓaJ“÷[~¼ÊSJò²!Óúõ¦îa_e¼FŒŽK-©E vÜHÀÏãPÍMÖìÄj¯ìòd-²âfVRÚ`UÎO®3ùWLµÐ-,üOÿTµi)/žê¦Xa9ú$çøÔ#Xþ½=[n—cÛ­ÎðâaHa¼ü¼¤çð¡a#{ÊþE½¾Ë,-ð¿ÔåèSµêC’%Ýæ¼óÊ *[™ó„þ5%Ò6ºVµéççµ! S®4BÞJxV{ýG ÷6—ú99n|HÒº¹´8Ÿ0L[¸m`ü%ħ?ö«(íõB8]š!ßÛS›Û8%.îÛì’w{’>*³„oÕ’þ tqm%x¶þ’æèû×5ØvÈšô¦Ò”­’øÂÛ¼ =ûv÷Áõ©ô7pò Àùª?Dõ·J91¶ur¿dóÒq"…YP<ŠÏ>dŽÃ5zé²Ì¶6ü£Mˆ´å§âº—Z#áI$¼i¸¤™’µE)9ÛYÎÑȃí^8HŽ¢‘ÂGb)|¸®‚ “Ç$rÀ¦¼¶í0_™s•V¼Ï?-Ô´ÚG®T£UšH\zÅ+ÖH³îW“…¸Ôynb[ÉW™-€0óïõª¦ó¦¢ÛRãQ ‚†ÃiñÈT•û {“Ž1ë“VN²ëf–ýdä ¦®æä®¦[SQs“’ž Üú€ÍVÚšG\uZ˲ ÄÓ±TBD;{hC‰Çlò§çÔ¥'„ã«ixâ"â¢à߯‘MÖ~•»®e†j­«%GìÎ…-—’Hò©8À>¹øâ¬­Öpc¨Ê— Y)!—ß‚½R ûÈùïþ0áÑM[1Ã"å2*QÊ—6~åçä$M×n™Â´ƒöý[§™P$cÁ±Ç±æ¯%†¨¬å¯pˆûLdòÂñìz3«]=Ÿ?«­1_HÆÞ{8ô Ô'ª:ÛDL™Ëv§´ÏWçKnçË‚9lüÕÞšˆæ…Ò³ÊÕµå4¿¦H¥ô[±Tò¢0éNv<ÒÛè¼þ9«ÇNoÞfhœuÑ_Ç™/éî©fÁÔ†rs3ùaçŸ x‘ЗWµ[°‚BB›ˆˆ«ôivg_Ȇ‹¼øÑÕŬ2ú“œãøÖ§ÁçƒÐæâa8§7ÈúNÃis[jœÓ‘åIŒŒê[ø?ùTÚž[ÑÒâµ¢Î9Äß_Ê·Ê‹ŒT»LñëKõçQêeh«\ék´ÛRV•¾¥—¸•£ýåqŽIø® ýôl=-¦î¢<Ç%}½Öœt«Ü”‘ÁDZ=¾j§èƆ\{ÅÒçu(VûƒªiÁ'qäû×FX¥·lmÝŒ¥HY[NÜ`U¨TÕöÆÅeÊ·&! $ Ø a×6¿Öv%Ç%”¥[ʉõì?-µÞí×þÏ!%INT’~ï¿4Ë­õ~›´ZÈŸrˆCŽ”8'8JÙ+8œÈ)FjËR«ºèp°µ&{N 8"£²­÷Û6ôµ9Ô²¡…´èñYXö)­gººïC -©:Š5úîÓNÚ nßhq¶Ûuµ#ÄR*a Ø¢•eHûÀá&õ £ZƒOk½)/J[-WÆÛ¬mB“!¥,nRAoÃÊr=Í;_‘ôÌŒÙJã¼µ3·Èûdù’¡Ø‚2?„̵jKçVѶÝG1¸:n(…×ÝPTDŒ-M‚í ryÚ„ÚŸCÁ¤ãmyS *õÔÔì¬ï~IxkÌ×úXh{ÜX,j™v ˜Cm¥µµl”¤žI $Õ'c–-¡k¾Y¿X!lå¥Kt¸Ú7BðI²A®À™Ó[ÅæÔ"ê¨j‹‹J©•)*hãÜ+9úÔHô¾ÕwÖ—>žÝç•Ö.LÈn0Y¸BBWc8A ØB‡#rÇ àh†*NiIhü þÏS”£Ríodö¾ú’?ÑãGÜ¥ôew™°oûRÞu•8€“!’¬¶¼ (Œda\` sI’û6Ie«ÃôKcjSøÕÒZ© 3¥¥ÅŽ C)i m vT½t²Y£xw;¤XaGþÀÐ$Ÿ®{ÕqXX;_â'©yI+öFúq1ä•É–>˜"‘]:WLU°·ƒƒœîOÿ…J\Ôvi3•Ýw€ó¡9)jX N1Üó[X½.:ƒr-“ŽGùŠçº4àΗµâš½üŽKê—J.:js’#£ívâÜWºnðÔ½7 2^TypR¦èQ$"¾£ ñ]w|íqÝi¶¶”‹$`ãÚ¸³_é§´ÕÎånm.Û|© ';¬ùŠÙN¬§h7àÌU5ª£â¾¦û«ê¿Ù¥ÝC?l„èfaa!(w#‡³Œî3ëJº‰ÓI×Û&;PËJ_¦õ¨mOÔàŸÂ™úz^‹ÓýqtJr˜©ƒ‚´·JqùVFmB8öĺêÜûDŒˆOà8üëªãFœwØàbk~ËO™Ôº%pšN’?!V¬sà°G'ÈWú)e†Ü ´v7æÂ”/õÍuk¬©C°æa£epb#M,¬ žçÞ·n à¨r84!µ“ÊŠSÀ<÷¬CIÿã' }xúVVï»4¥m:àJ¸àzû®h¤ò­Ëí`>dƒœÑM‡Ú±râ_DVý!` ?k‡ Apr¾ª˜»ºjÊÜÉ@å)Ï£];JS¢à``#ý⹩KL¼ò³»Ãl{b¶;%sŸJùTLm¡´ä{VĸÊRµx‰HùôïXº«[>GVsÏ›šÌ.Í' …mÜ1Ÿo¥U¾æ5+sG?ß/ºšå¥î>Ût”åüj9#Hñ ž #2¬ç?տŸí©÷XÖ¹¶çʃzEË”¦„…2yݨ@R’ INÇÈ EI-ý8™iêÜÝgCZ]–XI>"d”!µ8F1ˆÇœ¨ö¤:3G?¤-:±'Å|Ü–ëvíªQðbåÅ6…ä §WÀÎ= ¥Ü•£±›‡8¾·®Á•½i¨ÛGMÛ¶ÿdºZymΘ·Zši89°“à‚9'9a²õ]æ×[Ý„4ηBºøŽ%©+J ”¶¤p9ä§½:?a¿">Šû3–÷ŸÓŠâò‡|FЂR ‚x(Ï#œúV‹†¸½aÖp’ô0íîAr1RÔ”ìJp¿/)=³LŒ$—®ÂÉïëA˨××ì:áz„Au¦’Y*­IJN=pT Dã]5—¹h‰R5ë›:‡k3X” ¤¬#j›ÀpWÃäÔþ~˜F¤ÒRìsÄH`4HÎÅŒ«ÁÔ/NX¯·> Ytö¬ a:E ¸e¨îm¸`$%Ï£nÔdg9ç©|Ȭ¯qOOﺦï¯u+7ñÌ(²’ÉKäý˜„¨´n )É'YŒ‚•¥Ä+j‡b;æ îiÍQ£.šÂÿ Û„Š—5¦€qR|@•ì@@N+Pîíš™ZŒ³nŽg¥‘7ÃOჷÄÇ›o'Œçö«S½¬ËG¼™ØnÈy aå¿BN)ý+VÒÓ©ÞƒÆHÍVøP!Ä(v#Þ¤–;èJC2ð>sU©Nú£M*¶ÑŽ2íêaá2"ü òŠrƒ)ÇÛ±P={ ´<¿´†‡ñ¬ßž„±ÚϹ"³ÊN][]ŒTzײ6‚þ?« c'šõ. ùÒG8äw¤ÉŸ(cŽâ”75 ;@N}©n\†Æq|̾è(îÙÉwˆ¤6´ãÊ®E?©±È9B»Ö—š¶R{zšU2»‘Vžeb`ì8àò+9(zýktèë(ûÍ`ñÂ2?Zè§sšÕ·5 ío?ÔwP$­—\#“À§ñ’`÷õ¦­T͹~åë!+ÈShÜHïáÆ”j …Âý}žl¡+Yj3 4€xHüù¤¬:˜Xy¦Ð¥ç.Fíü¹§½òÕdÈa ->"N'>€÷'Žj*Z7©m‘4œ£E½Ùgh>^n-%éËn"1ÈW*Éø©.žÑ×= ÔËâ*Táƒ)22„VŒáiãÝ$Æ®½2#ÈŽÛñÛ eM „íÇÓ?8ÅH’Ã.) -$¨ú‘Ú¸²sžªZž‡Ú²u2¬¦ùøö뛫·€cËý³*‚• Œ~ÈÖw™F·Ÿ Z‚ ?ÚÇä ­ø_«ÝZC¨ýJýÕ÷°=DZúÖm  àƒ‘ƒZ“Nís9–iÙò+ 'vÕ¦û-WHβÙe•à žT}ÅEçÙõKÛLاìQçL‡ÞˆÜ–ÜmiRSû%ðHÈÀ÷íÍ^‚Î~ûo#̓… Òô°êÛm6Ë©iaÄsÈìi´ªN*Ì+ðª;Ú×*ˆÚVåqUÞ5Íõ¦0ŒòÌr•HX9I-ç òœþ4©V_¸"V“³¿jRä‘!¤ûåHÎÓ“íƒV”ø«zBžRJ”0¬'q8íñI×I¼ÉÇ5YC2´†P®¨¼ÔÖ¯·aìRåÆL)®2üÉJCnèÂôHÏzǰ³_þ¿b|Ik»L”îØêß±ÀIRûgnÀR;–êë‹ÚrÐÒâ%³{¸nidœò<òUì”'$ëPþé¶,‚Rc-N0Û¥ (¯ ‚µèTBsô®~&Τ!ÛúõØoé*SªÝ®š·ooÁ;xÙö‹ )À)ÀÊ»OµDcZÆÔNº¸î."í¼…µ§ü‰YǪ]-þ⤶²<2—'c9¨·T­îIÓ2Xmo%;‡„¢•V2=ð8úSª6¢¤¹jd¤¯<—²z|㲯OË•UöLÈ))ØÛ©ò %Dädr03žõ\õGM?p¼F™¦ô²Ð˜ˆoÃûk!ÖTétø¼•”8£#Œ0– \e VT”Œ’sOzÙëÖ“Õ.9¤-š…zQ!)1'(¾B@ œ¨\ë]-ùkeI“(«¶½9¼ö¤RÐô¤¶ö€rJ]f庇©JÊïãøô íCb‹"Êд ¨¤§n@ªËô€°m׋‚Ú Xeý•Ž>¸5kÛmI²>W„°µï-`{ãÛéM}Fëf— bœCá—¢AÜãðïéYZËgØÃ2ÎòìÎN·([ºBÝä7TÝØ|¤ðS¢ mÇŒúf¬Ž…Æz\¶.©!L¼â÷s€@ÍDºe›|êy·H‘eÿ²ÅJ~ãm¥¾žÝ½Ïç5&Ñ¥)¨`Ú­òZR‡ì^ É óÏbAõü«³CÎ2íÔãc::£ ä¹ ¥ðF;þî=ê\…¡”ÉW§Ç^èiaPPT°\úzÔâ7 -G'¾+¹Uª‹7#‡FZºëÎgz¶€{V)oîQV;úÖÒH9çØW€ùÏ'Ž'æ—{-ZïS¸ë ÞÚŠ‡n{š+5á8!Gð}(¢Éî‰M­™ é°Cz6 ïçb|Lÿ¨ªp›5é‰)mE¶Àãæ£ÚÕÈÒ[ó%¶üL=|E?!)Ç9Éúq[¡dÙÍSê¤:AGq=ùí[Ô„*>}«Ôî#¸­¨RJ{gÔ~=é¥E6yêj@Šó‰(sî'ýw¨†²+MÙIL¦–´¤(b=Á¨÷KãÀw¿].LF‘¨¾ÈiN<€§˜BU†’‚yJ6`Œpr}ê³T1ú+¥.½†ã*+7‰JR·®*dmR»„„§)´³%¸q[ŠLµšm‚ÚI>\zþT'öÁ(B· íQ#Ž V³­1äjmO§lR[µA•gcÆû8 m™JqA>Q€7 qŒƒJ,öWu¦uŽ=¾Çi¼Y®L.C-#0.Ü”/’)9 ¤gÚ¯öÌ]VˆÂ6–ñœ‚îÕ²R›ûS›–Œ•mÆ{Ç×â¢zíxºé»|#eÓöˆá÷šŸཡŵE’Ð P$(äŽI¨>£hz·p¸´ÒäÅXûŽr¦^û:Ke³Ý*+ä`œjŽ'0rÑ4[ ÞãËÕtÒ"¬? RÔîFÕ©I ¾FÓùÒ)ë .Ëyô"3 —UÂ1ß>ݪ oBÉ|ÔWký½SË:6Û"‘ýjŠ–•!YÏ’AÀÍ5ȆÚu>«·ý†É3Ú?íõŒÇ…/bˆÀ`óÆÓPª=ˆÎLnºÆÕÅlºÅÿlGYfM­(+SƒrrTFÐ'=½©þ\”Æ/5öwÝsJXQIõýÅTÓ,ö”h^—Õ°OÚ.6âé  ïß[¸ç%#9ïžÕ®ôÕ½zo_].)i7ØWGQ òpüpŸeKGºAco|š8nFftÓï"4"¥Ô¥D$žyíZØSg JТFxVr3ÏþµXXíì^zÓq•zŒ™`ÚmÒJŽPÌ‚¹a=·yqžàgÍAãYíÒ4>œ¸=*›+\oHçÅTuIqµ3¿¿†PHÛœsۚΥdi•W{ÛÒ:1 BÒÚ’¤žÅ'"¶‚€HíUÇLâ1oê7P­n,òá8ÌfRÓjr*JÊR8<œUŽr>joqÐy‘œwTÉÇtàÒ³ƒ…Œyö¤¡*PÁæ½Ü¦þ÷#ùRä®ÇEÙjh½Ä3â$ŽõÊRGcRæv¼Ê“ƨÅͯ³HRHàžkFâùñ0ÿ%ÌÂÞÉuÃǵEúŠéLgâ§–¦6ÃS§ÛÖ«^¦¼¤°àO±«NWR·"™mûJ«H[™~EÂäûIqmìÜ2Q*&uw¤ÍÝáÅ»$¼Ä ‚¢ãJÞ­¾ÀÿO©©?Mÿoi¼²µÏ³%cà¤í5hÙYUÂÇÅ6 öħ>U'øòXºmÖÍgÈ÷¸J¼<$SÖ<×ÃîpUÇHu¶RÖ–7•ã…òœzc·Ö™,ðd±qiï3a²{0qõí])ÔÛEu!vØ1>ÉÈgs«%ׂ²8ù¿!TôØ­‰ †Äs³Åý©ÚF¸‚Ÿ§±ßº©Êñ–£±x +%Jj×ÖßÁÕÝ/mæô¹ùa^3È óýàŸLý{ÔÒ;™9#¿™-í&-®,tðÛ,6„sÀJRü±N¶ÎR’R@>n{­g‹×A^fÙåÆò©Ì£{‰['þ{V»n¢†ãâ,§DwóýSÇjÓñÏÞòâ ’N{L}h‘j·Íc› ™ œâÅ1A§x²Šp’´×È{¶*3­¥KB’0<ÛrƒÿX>Ch)q“ô"«ætœ,ª#÷kj»ƒàâ~™Å.kFIHÊu–­Ø=>Þñ)­E¼|ÄNµKx¯³dÊLdJ1„òH©íP‹¾«€‰FžŒ5Ý'hj9ÌföŸty@÷A&”=¢ì`x“v½`ýÛ…ÁÇPOÊ þéèÖØ>H±âFi9e°„lQ'7½—›û/2i”5Ö^Kùmùx‘HjJ%J½_e~²¼ÍG‡!ò0†›ÿá4?q?ÄÒo²D¶Ãa 6Ê ÚI9úžI§ió¦\ÞÚÒŠ=Ç•6ðÞV¼¯“’7ê£S«9{ÏáË»åÈÝ-´ù0 9çšWu‚§¢-<ŽÄR«#q֦еs‚®ôór¡hm;©ª’”ng•L²H¦íúrä«õ`fÙvŒâ”ÛÈO•à{¡Áê“òæ¤ð5Cˆ·ß™U¾qmYÎÿ”žÎ‘æ÷O­!¿á@Qo;ræ úT¢Æä;í©pnq™”÷ÐëaI?P}k-4Ó´^¾FªÒRŠuךû®ï•µîb3åcœÒñœíXúƒÚÉ“#y:+TãéHþtºãÓË’¤4äøÍ«€„=¹ úçݧqmà·Lö[Zÿ2š¼•[ë“ûجU{ÿ4þ—\Ô(T‹,go*ΈÊ# ÿyÒ1윚ñ›{¬¸©×I™p)ÂV„á¦u¤úuM=ÎÓÓI vÿ1ƒÚüíIZ‹%Zy.ŒyNÜgéŠÏ%-š%Ê Ýg>k»q={Š[sÀß²[%GÊVÎ=ÉÀòžoZk¶ÇY¿Ûßq¶›ÉSÛÍÃñô§~´º•ožÁÊá»A) G*ùôÁ¦},¿´ÜÕ)J+lË'° w5ziÎP^·7æ.ÄT}–ù¤Ž›é«åÈͬÇlU­@4•,Œc¶j¤é¸Ra´„Ú­›t@[Üá*$ÕíT)E3ço²7xÈÈ9üŠÉ8<ƒ€yàf”Œ­?sà Jücîlá9ä{RT¢Ý‘¥ÆKVf¾Sß}(¤W ƒ1⓸nô”S¡JMX'©Ð*m­#'+ì}7«šy2T¢64Oíšm镽OéHO>¯)ñ8Ïübªh˜ÈO´‚?hâÆ)#-:R”S# ’ ¿Ú$ d`‘ÇúïJRêUÊ3‚08þTó&#4B’®=*)pœ‹;êaÁœŸ/5xMOb'd»}Œ]™»È¶ÀUÁ B%)”SÆ0ŒŽ>j7ujÜL(pb±´–ѦR–‚y$´IãYõ?U_µ•¼Ê¶À-ÚâOj¦ %öˆHN6îòýìòN1RK¶¤›g‘|q–%1aCj¸%†œ;Ó»kIÚw¤…‘Üñ☬ȒZ4µ¤BTuZ "‡râ¦:j?)Æ zz u:kO›b-£OÚ— ܘæ" I8îŒgµ‘¯Ìšr`»;L» ^>Ö—›ËG·^SëÚê¥N€åÓìÖÖnÎÓK¸“3b·);”††Ó»jNNHöïSš!tYöeÆ1#Çi” mBH ØÀü)¦É¡¬Ñµ×Pʉlû„„ÈJߌ….1JRœ!X$´­VnêW,š×Uß$ºó°¢Ú"HJ²wãhì ¸•K"uéoš‹uþÊÌI2`=2jQu*-VÒÉBp FG~j­Å’¤žäØÁ€Ì™»mˆã²ð^uL¤©ÆÆp…2SÉàñÉ­‹%¢*·Z`Cl%Hb:U‚¡ÀàGÅWöž ÝnÏé÷fZ‹þJb-2ŠÜC› €Zv€€8Á?=øF×Qo‰·Cº7§Òä9WCjl ¸pÈܤ¤í)ÆÂ¤ã9ÈÎqÇ3š;‘™#zwO´Ãq˜²[Xi·þÒÒZˆ„„:2€Âù>nüšO6ÇmUʲmpž”Þ<9GJœGÑDdzTeEr$-D›Í± ϲ<Ë*f<è}O–¶©IN2TÈã½.:¾th¡7Kl1:ÃoMÇÃ3Æiö”Œ(¡$RAÈö>´9Án ÄÆÜäd®X‰JPä”¶ã‰Nv‚¬d“€{dÓ¤{5‰Qa»M¸Gf@”ÓB26¶þâ¯# ÜIÜ9ÉÎj¿…t¼9ƒg“i‹Ûµ±Ë…°ý´¸ͧcÞA°ùÒ|»‡qÏrtZû©îÚ Þò#º‰iRÚq¥²ÔìÛ¨J7’~® ÊÐíhVâSŒqJ_|6ÑPâ›"8’’¯Å#½L-„¶ÐÜéá)´þ"ŠÃÍ+K– #$¬öH¬.L-ûkÑããÅ)Êr{šÓ´ÃAyõÈ_*#Óà{R)“вZR”S÷³ÈUÖÕKU—ËQB޵D’’Ü–øqµp }±UoZug]¡ÏBt–šD+R‡ìžDtÈußùDä'鯭–'6‚üD, €’¡• vç¾iΕøÿdÛ,on¥ªRO} צ¯ÕõÝý2¦èŸRµ§ë˜¶^¢ØÓn™4‘ ci؇Ö|5¤¢ÁÏlUÍ«uKNœŸx–ï‡ yâNÔŒ>OaóLºMµ1´ÊŒ†q [x!@ðR}ꪠޮP•c“ CÍÈP.d„ž~8íT©9Âú¨Ñ¯(¸»[{úD§zÖù~•7R\åE…iyÓ–!3~‡yïóî{UÅÓMëtûy.CKþ) 9ÉN{ŠˆA°[¢CLyÖ¦%'bã#ÃìF?:”Øî1#²ÌVØi¡ýZ[B@I#Û¿ò¤R¤ã,Í۸ו‘´#ÙëIJ¡ÊjBO­j•“ʶ}i–Ÿ0R8ãÔSºJ›îI'·µmRº³8N]Ä’›Üœ>†¢w„¡“½CjB‡sSPRЉ<üTGT©(ŒéÂ1&ïcYëi—…ïcúÊÏ룻Äl"x™ + Þ• \ÿèEE-7/^ÚôØð‹lGWŠP€2ò““œœŒñÎjouûï]Èý§ˆD§Cxó•¡ 2;ŒŒßФ-iu4MR›BÓ9YÁãïôªàäßa«¿øø_íôGqt¸§ì“Éã½[°6çTONç¥-`»Èæ¬+f£ðç¶­­«ŽüW²Qu©)efO³ŒgùV2Fæ“ÜÍijc HXp$}k\¹IR|6°ªÊ¡,Ûœã—q‰›X[¥ÉNe!^PsE<¶ÐCxîsEju[{™¥±éó­1¢ ­Â¿´ãñª© CÍ…!GÏ«X“oC[£4¬)[ý{~ÑTã§õ"â6#¾R9 5xѼ.·Ö²{²Óœ­Cµ Xò¯­­ÛyÇÍ.¹gŠ PàÑ¥)eÅâ+¹Å2”uejÍKDU·]©W§/zbØý¡«…ÏõƒN¾V—šË©xµ´$‚7§…nȱ§ù:^l]gx½±dÓW¦nþŽ"êŒ.;ˆFÂR¯ {’@IÛåç<úTÕjm¼…:ÚHà«{ý+Ò¤…¡*R|ü’9Àü*](½Ä%b5­ºr­]¬l׋s°"Ú›e¶n‘Õ¹+u,¹â±°$`áy$qïÚ¡7Í.Ϭ.ó"ÙìWV®µ©7$¶”í%'b÷$€8ãœóVå§PÛ-ú¢-ŠDÔ·.[Ku¦”q” ¤OaÊÓŒ÷ç©F°D4ÌWޤ#)Ê”®1óšLZŽ·8Fpâ-ï©PÜôН/ê”Iv;0ï6¸Ðãøi%l­¢¢S€6‚SÀ>‡µ!»Xo“&·zÔ@Ýn¶Hf3Q¥xŽ8á%#o HÏ~õe&ÚñìËB›<‚ZÅ0C¨ñÖóeÀ^ñŒçÐýkFH™ò•ÇLl·Yv}*îÌX°¬ÌÙeµ­O<ï…±%ÀRŸhRŽÑ»$kÖ4mõ:~ÓkCSµ"nεm-Ôæ—ïa]Ž}jo¬î(ÒºjMæBTøŽZ a gÄu-ϦUü*E 1#n>*V°vðsƒíP¡ElD›éD»ãZÖLÙÙMíÈ/ÛÔ \𜎄ÿZ’ÚTœ ÊIìiÊó¦nW=¨¬ŒØt¥Ž\ø*ŠÓ–â­‹$(áð’Bs´…cžOse0ëfÐKJsƒþD´£ªtl HÌuEfbT´¡ÕS…”àŸÂ±+JM³l©Â Es^¿‘©Jâ5Ž–¼ªDoÓkzéÞ­êZÃ` ¸)òäzqXôÇOÝôމfÃv0]fÚ…$EqkS¨+R‰R Ó‚8Yæ¦é'=©“Bê8Ú¯IÇÔ 0äV^SÉØê)ðÜ[d“ÛA?2öw+Ãûÿ¢¼µé¹ºÆ½Vb}¶÷]¶D¦V†žTt4y’œò3ŠšÛ4æ«kXݵtÁc2§[†Ü$¾êšl¶²Nç `¨¥íàcÖõÚÛ`¶*çq–˜ÑÂØQç*Z‚RõÉPþuµ™¯:“±ä­'!%*È5NwtÉ‹=ÿßÝ•µË§W'tGU¢ÐåþLIíñµÃˆ¶…“»bN\(óØqW¥s]·4»›˜– |Fã¼]m<œ¥%$ñÝÄA''“ëOÖÅ—#\TV¤¡Ñ|3YŸ¯[‰¥$µ!$zö§xç,§Ö‘ÍkÄo=ˆõ¥Q §éI©,ÑFºk,ØÓ©ä¢4R·„Þ«O{†¨%@­°àòø¨(Ýÿkdjx¯¡+ûƒš«º³á®Øê@h¨$í NàHôÅl¥%N•Ù†¾µÍÚ¶ûÝÕËÖB‡Bs‚ÞòA'à“ô®®±Û›Šœ†ãŒ¡Öó-´«Ê²{{+çö¶¹?2ìü+‚Ôp¢ƒê¤ðõ5Ô_¢—X-·È éE1˜·è©KqÔó›DÖÒ6ŒÝ`ÝÏÏ5ç«k<ÜWƒƒ†SO_^¿¢Þë.—{Wh§íL-Jm ¯j•„äOžk’“»sï[ä´K(T„/ÊZR'8çhÉù'Ö»ˆ£Å^âFHÚww®Hë5…zc_ÏC©W…1*SJ$¨9œsϹÜôçâ¹Ø˜8¼Ë™Óèê—ƒ¢ÞÚ¯©$ÐòWö1]Y@üE!Dän'ʯœr@Ç5eéÒ E uÅ£v}‰åU&ˆœ©SÜ^ÆÂnM&B€Våø ;ßûÙâ­›-$-@') dûûÖZk¬„Iã$6…%8ÊŽN9Í(Œ ÛJ‚F;ΑÅä¹XNU»8"œ`’´Ž=ûÖ´`½…«¦³÷3Lìº#•ÍwÏ%ÂCiþÀÇoƒóO²ÑºSÉ PÜ=Å1¾”ø†CÛœ©'ßÐ}9ïS-ïØwB7\~yK‰;Óǹõ“6ô…y€ØWÉ*õ¾¼ÔW]õ3OiGK2d¥RÖ*çúJhÒWM_­®ómP£ªÐ˜­6ò•5¥Bó´¡9Ô:°†²zù(`+:\YuaÚË-† !ÂÑÒUŒ•wÏ4©•ÁS¡–å3Æ{þ5²tÃ\ɺʃZ.*õb áÄŸ^GNiÎÑÒ½Gúîku³‹†ØIŽDT•œç;û8íZ!Y=_¯ˆº”°‘½ë§eØþÄ•¦|UŸ æÖ—3ÆsšEqˆÚT—×!¸¤üéžgLu_ëvX¨`;m«ÅqØÊK‰Ç`6«œÖ© ¿¦L³j´–”²—RZQPIîä‘ßÞ‡4׺þ_’±öDîë/“má”%·›-ž0U¸÷÷ù¦÷íŒxaèê '(÷ÿ<Ódþšëço/Ç©ZT6šÆu”ò²xNÐ;bªˆ}@¼XïŽZ¯©¥¶áH 'jûã‘YåVylÓïGF†8„Þ¢“ìññ±wØåºÛéC™ÀY öíS sž+gýˆî*¤]]î:JQâ-¶=¿–éT8êÉB‰ðÏ#Üÿ ¤Z3—ˆ†Y4÷B©jHVÕpsœ …ê¹ Et« I%GÓ/¼-¤)Ò´à¤wWcš¬z“4CÓZÂVRKdŸUpô<šN"NÖ+E^H«ºlüKýSü5–¢%Û£©9IXÝNxÈü+›-«K—õ¯yý£ŠpÝÎE\«W¶i9ÚwJ/íËŒwÿYºÚ¼6Xd'{»r~ùHÆÑÛÓ’*—io·áÉy•á( PÂ{p?.kn‹P“í'¤+ÅÕ‚ÿ]ΫÑ:£ìö˜/:°%¤íÁûØ‘RÉúµ”N²AedÈ( %=ÃiåK#ÛÒ¹>Í­·[|6ÒeÍj^JPŒð”AœñÇ>õbôžá$ÜWt’—n7Ù>Dr#¶aèŸÆ·UÅU¥EAzübxyTÞ(ëëTå>†ØJÎN3ϦvôšNrN9&ª¾oÔ­Îçoaô«>+©ÆIôù®ì3JŒnréhõI’–Z <š)9GÚœ9¥#‘ïE4ºÃܪ7x•=¡Å9h‚3„ /þâ©D¾c·}OúïItð&ÏøsÓþ1TªPÜ„ŒäŸãZ¡î£ ØiH¡¸ÅÍ™*ïNï¹á4¥œ€;|Ö«3ay)¬$aÉ)c;ž;U‰9ëR=o“£u]Æíà F5„‡GŽ”øèJ[IûÞœÄf¦·ˆöYú‹¨îj”Ç[Ð"4a*GxÑü ¶‰û¤¹’Tžw=Hõ/MÛÔU)ùêy¥<—i1YBÖ ¤¶]ÜP‘ÆsÇz•KÒÑf¸Ô›Ýª §å§Ž•©¿ù$Ž;úV|ºêQR“ÖÅo¡a³sêV†•©aD~cºMNÉT–’T·SáaJÈåc“ñÍHúÏt‡*õf³¹h·ÜŸ¸JR#ý¿geHmJ+<62$žâ¤7´Ú'¡†äZ`Lr2ŠÙrDt8ZQîPTÓò)ûl ¤oé,Öwnðä4—¸v8P#51¤Ôœ†7hdD/¡Ò%3§.ì´ëJù1–Ê‚†Âòß÷9ãàÔfçËŒ+·N¢©Ä=m¸Ï¼2')oÁÇüàsI§ìfÆl¦Íný\’OÙ>Ì$•³y$“ÇrM/4_ºÇË-/¥¿ ©cC:7VÄa˜îØ`눷‚¦ØÊÙñÞxJ”¡ÀÉz¦H(mˆ,1:Je(O<€šÛÑiU˜ÙÕl‚mÅ; BÂ<3œlÆÜgâ²r H™‰+#46¶Ó-„!Ø$p*Ôú³!R²¹ŽÔ‘NVs„(zSzSå§BxUMgÔc¨®ºÊ!-ük|p|çëšM0ùB}Í+J`8â±KÝFØû̈ëF®ÓáZäG‡Îû¨+Ú?º=þµQõ6Ø÷êw#®L©êÚw+! _À `Uíud®1m#äš„jkb†¡³¦™k«•ƒq‘FN鵂ݯSµ:éç^$e´K©sŠtT]ù\ßN4q5#Ç“I|¿+«‡^:Ô»¼ûí“BÚÍŽBRÔ’›[޵Œád ¤’¬ò1Ž;aŒ~’ÝuÒ²§N¿Ù-ó˜PDËrÚn6Üù[ØRH9çqQàsït[l––Òëè*‡ŽC|àxÅ.Ÿf»†Ê'À·Ý[ (‡Ù*B»úÆ1O$µ^¼ÍŒ ¼°Ñø¯ªú”¥GZ.öo1-C3+J¡" ……¥Xó¬ïß‘ŽPžkF½ý!ú¹¯ôÓºa›U¬Éy¥ý¢Ø—Û’……¤!E÷̑È«Ù6{’˜q¨¬Á´C<-¨Q@}Ù¦÷ôÄ%[3âp NO¸ pj\]½}ËQè¼%ºíß¹¯¶Ÿ2´ÑŸ¥ºÓÓƒZÛ_¹Ì[imÕ´Êá@yTxY#öæ¥ÓàZú™z‡vM–|l8•~Ý’ÊÊ„¥^ÅX*øÈ©•Ñ­·r3„Ò•y_qO-?Ù*>aïíSø­¡ %–[(·zŒzÖL°„®¾ëáÙü¸xJ­Ów|šÓçmßËSVœ´¦Ð\C(û6æÃm +w·>õ*³0ÜVÞSyJIÎ~idîqhŽ{j_=Ôµ¡…c'>”·kÜåÖ©)½wdgT>§@., };ðj£ëìÈÈÒïÄS… BTžO ÜOÀÀ?•Ye¥Én( )¶¢”÷É÷‡¥P_¤­×ÂêRùRÔ9߈5†]y¤¹³M•Ýò)=Qµj+»a„É– H@>Bò­¾Ù8ǺjQÞä­4œ‡§çJRáø€¹ FÕú”§žÄðj.ܦä35ô¥h.¹GªÂ=¿•H'ÜwõTd¹iBÛ÷J‚H*PŽ~A®ƒI¤¿ÖÂæéSMÚ÷OîW–ÉBÕ9ø×rd–mD¡Ä(ÝPìAúqV}‡¨qÙe˜Ñn C(@NÇá¥'êÙúâ£×.»ê•$,µ9]ԮΟ“ïóëëZlZæfÎ+ŠØýå#?…mÅÒ§ž[œœ<•xpåkÞ„êM¾j‘&xSh‡øj̳õjË7ÃiR·Àe†’\u~ÞTçhùV*‘ÑÝ?Ór\LkƒÒf6OÜkö@Ÿ’95ÐZNY,PPÍ’Ï UŒ©´ êú¨ò:¬1x§hÓ‹9ªXX6¡&Éö—“*L`ó­–¹ =è§ŽÊùÑ]¼ÎË>âéÁ¨•‘°Õ’„g!Ãÿ÷[¤ î@à€ri|¥ZÛ)Ÿ8ñЦ÷TV”¬€0sÀ­ÔÝàŒ X™ÛIL&É'„ñǪÝ1dzœqÈäW–—íÉ;Ž@äf‹w w>l|Õ€Š3Ô›…²ß¨5Ó•k±]ÿVËX›µå¨¸”4˜Wõ“¹Iî}³OWÞ¢I‚½KmÔv– ?g¶¢äUY}´½ÃnJ……'olƒÅ7½Ó‹Ü®›ë+#r­É•~Ô)ºERœXBÇVÕ¹ Ã*à9÷Â]¡ß¾j-S>d¦[·^lMÛØIu·µ«yIÀÜçœzW6ò•L݆ŸÝ…;v¯¿àZµ5Àß­–›å™¸+»0·¡©™^6 R›s(N´ç# óϦû7Q&IÑÌji6ãÇš¦#ÀlÌäHq{'n€¬ùŽN8ô§–4^¥“³^¯’-‰Mš;ˆ`DRÔ_qÄ‘°mÊ7}ãÍ1@éÅÙ}+´iy.ÁTû[è’ÚÔ’äu­„¨ A ñëëëºò{Ú‘'Òº™wi×k\¸ñã϶8Ú]Ly3N!ÄîBÒ­©<ò0GôÍW=¥îC¹M‚óߪSowÃLÕ- iÍɤ€Ú¶ò@È'×Ö¥Ú'M½Hve–ÉlRÊp‹j·žT|4vÉÇdÔYè Íçú~ˆOÀHÔ1 5ÅZdžXÎòæpxÆ~qT¨ÛŽ…­$“^´b§õEéQ6Çp²C‰pýTnqvLS­”…l(pøi)PQ•º¶’Ú“Šz„ððÊ{S}ÛjBˆ#µh¢²ÊÂ*Jë2(~¬[Ùð\uÍ¡#9ÉÀ#ÔW]íLÅ:‹IJ„,‚;¤ÿÚ»¨í2üWRF1œ×!õM‹{w"Ûj@ÂŽPÊ•'œ(\úRzFêIèÙ®#i[Ë´Á.6Ú³»wf«$ü=©DÂ’¬““ê~}©2sœþ5–;*{Ö,>†^UP.Þ©uôŸjì’Ïæ?>+±ôÜÅJ‰xJ–Ëa‚x*ÆOoõÅpµ×ã]£É†¥%Р¦Ïc»¾+®úg©ÄËL Œd¼ÿŠ Ž‚™iIÏÐžØø®F:žJªkfuðSâPÉÎ%ÍRRPè !Ð Iõîǧ"œ–âPÆæÅ(…y½*1m}d;[+J ǘ÷àqOJy)K™AS‰O ÎHWö¾žÿ¨Ë@šÔuƒ(!ä©K@'¶}…;¯.4WIÁ*ËàÔ.DÂá@7€µ…qßÛçéO‘día»Ÿ¾SÇp;S ò)(µ¨à¤+‘» …$ò3ŽN;f” •%!^SŽÁ@î¬xócõÅ5;0N榜k*RÆÐ‘æÜ=>+ȆÙHRAãžr>Mlu-¥%nÞ˜é¾Ae*ËM•‚œ}ãZ#'ÈºÔØãÑ w¸ÀÎýªÞõŠ&GR@eŸ.NqíîkJvç†Äóº°+G*ØœçƒÀÍD™tfBKêJRÇzõ´¡-Ø“éé^‡Ôp<ÇœúVÄáŸLšÍ23޲ÛiNHãÚ‘j{ˆð‘;”H׿çÞ’»tGˆ —0ÚJGbxäóíQ¸sEÁó&Få6‰ldƒžG"³T©¦TLawwÈÛs’ˆPœ8Øáܵ‚?ô®Eý#îÎMê PPêÌxèRƒ•«$ƒø`þ"º+YêÐb¿&D¥3´\X ŽcñÛS\ct¸®é~™vxï\© pƒÇð?ÇáLÀC=W>Kù#,”ÔyËø&:E˜2­¯Ç}aµ’ŒöW‚}xÏÍ*±¹n‹Sø2c¨–R±É ÛÎ}qƒùša°-Å5M,î[Ÿg)ǺOãŒTïJZ­÷™©DæT•Çå2­«I<Ç|V¨Ú2•ûneÇUjœoîØ°ô–›jdT‚TE?§F¾ÄŒ‚ ƒK´ ³srR0— Pàdw«v%—ípÀYNà;צÃÊ–.š”ã±å%&¥dî@4Æžf+èP@ïÍZp¡%1RR¤0-m´TÙ(v8© ¤¤´¦W÷½kšŒUƒ»³í©NZ8?¢½†vmIýÓÍ̪›‘Ñ¥+"#Óô¢O¢0  °æ}ÿ¬UGäG\i Œ³Œ)çNª.•„èå*ß‘ŸøÅSÆ¡„ÔÈâTp ÁÎ9ù®5—Àåß4æ†Ý6öP¶{)Â)}Ä’xø¨û©§¼@)àŒ÷§¦Þ)$䑃Í4¡6aYµ¤÷òúSUÄä!òšSj} ‚¶óØR9O!‡w¤(ŒƒžAÇð9¬Tâã6n«%(# kB#ìøô¤ñQâ­ ©[sߊÁŇe~Óî'Þ†ä6»€e—§P7)°¡¸$ž=¾kRVFVîÅ4ä2zßÀÃAk*=«%¶´¬,¤ŽExRXã¤9fZŽK+Ð+ Ilgulû2 ¥,î¯Q¸7°GlÖKmi„Ê5Fù K˜‘YàÒ¼¥mŒR(râÉmiaö¤m% -¬(;ŒZQy€B¶úf¦Z¢±£ÁZÙ=CÊ;Ö¨áHÚœzÖ©o…8@?•Fò5¹Z´•+Ò´çrʈ¯^Äãæ·Ä`¬ó÷E?H«³>²vFû{=ÜWá[ÝVåcÐw¯°Äp+ăžæ³»·viJÊÈØ•š*=éO޲µv­³I+ ÅhyA†O"­e~l¬Ý¹!®ñ1»x.)a)¤Õmªº³¦¡´â\¹³â à¶Ùúf›:÷¼x¶Y‡CÇ+‘%Í¡¤ûêO5ÌêÓ/´©’ï¦<Ð|Æ4b¢P< €sXñXþ”VäPÃ*×r•‘3êVpmØÖDKÚx\Á|gŠ¡.ÓŸxå÷Ã;•“€NŽü÷'Þ¬‹œ;+p¶\%"|$º’¢HŸð¼OÓ 3%ØT×Ö[ujRÔžsœœùͳ®óIZ1¡Ad§{½ÙR¶‹«%?ÙÏuíX œ~ím“%Éø‹;q©OaZR¢„(ûŠÒ¯mLóµô°|)L>Gïãñ«¿¦Wg¼¢Î@ð]t?Yò炤ýxÏþ•Vêël+eÅ›ZV ò-ì—T¥d‡Š”žOžÞ˜«Eˆj¸è{UÕµ”;á´Tâ@Ü•§Œãçük™•áÉúGo¢bœ§~®_v{Ë)uå­Ð¶øJAãÞÞÙõ©#RÛVw'j U´ßhÁÜ~=+ž´–£uI\I ð%íx+¶3œƒíM[ºrúĈÏÄZÒâŽINAQH''ñàñ\ØÏ+Ê͵°í+¢b·û9[Û|@7£•ëôãùÖ6’RBYd¬ç'q88>™ô¦¶n-)…H>d «*ããßéñMÎb%â8j>^q{|$¯ +ÆFï| ~ulöi£&KèË6CËKÈpá¦i ¬’ŸSÇÏàÜê!8=ñéõ¨žïâºÒšN[˘åH×ð<ÓÛo#xÈ*y„$àg?>Õ®:êŒí[F,uǤ«+=Åhb0t‚§•ŽHÏ5µ—ѱº´¯jÊJGt‘Ç>õ¾*Úh ¹…gÌ0Gµ>©é¡Šboó¥;гøãùM"*ZR„§¹9'š[ÀB––Ôwɽ'}ckj ”úp{¯ÅYØœÍ1³†Þp$þÍ'p<xÿCæ´È¹%¦}KF[É Qî+uÙôÆaÙ-ÈJä“ßÓÓéQk¼ïm©M-•+—Á§!Cß·ñ¬u^Q«¬7jë«¿©Ô¶Õ—TæÖO‹œÿÏùÖ¶f¥¸>GGŠ”à `déèxÅC/w.7VŽ„©¶Nõ­ûùþŸÆ‘ëL»D3.OSHC ¶9Vâì09>•Ï“nZ#KDŠÓô‹Õqãé¸ÉB\} vVÕy‘…$þ@Õ.ÇÜòžAɬ®ÓäÝ.’.SV~C…kPíŸað+Ô6´FSÛxHÇÿJôXz …%Sƒˆ¯ÇªåÉmà=ÚV¡fy¦É;ÜmH)î¤ò>@?ƧZTEûS(œÿÙ¤?y?¶ >‡[EVØÙo%%Yq?ÙHç#ùVk*¸Ea)p…ë Üžß½íõªºiO0Ê–­G†ýz¹ÛúJìÓq˜t¤- …$ä‘GÖñ\¿±`¶¼™7[-Þ ~«YwàI"¸¿Né­c," ¿¢e•®_L$“ŸŠé®„X,úVØaÛÝ%¾wK˜¯¼ò½ÂGµ=cêM¨Rwð8œÃß;×°¿Zi©QR¶Ô€sžæ’Ÿ‡r RSßæ·ZÂVØR È—¸¤myñÁ®ìe(«HË“2¹©‰ˆQ äñŲÉjm· …dƒØ+5ZÐŒ¬‘ª•Ê7lƒh&öixm9÷ráçÔxЧ’UYFPµhØEîŸ[$#Ì´‡ ×öŠ¥)Väù»ŽüÖÊSS‰†PpHA2yaN0Bƒ”ÓLfç7,DCj;½»T‰L$€´ùqëNš^[…÷FìsV©5¹0„䢊«£v;díWª—r²¿.àÆ¥’#ÜÄj9Cm­ «#VHêõ––ÔWK&‰´µkƒeDˆµ‘eyB:ÒÉÜ^ËÛ7•gzR¢Ü€RÎE­¡ô¿ôezbwÚ¿\^^ºàìð|D¡>s»>÷ÏjŽÆé‡ƒnµÄ7ÌýƒU/Pîû'õ›‹‡ÁûüY÷ùí÷y®Dª9;›#†”"¬µ×ùC×[Ý­,êËTè¶É׋MÊ /4ÊÙeó1(-•§rˆØs…sLæ¼ÑÖˤ.»ê.raÌy6(ªK±ØS)R ®wIZ°s‘÷§Ò¤·¾™1vŸ«e=xu¥ß¤A•M2 ½ J $/% àÁ#æœt¾ŸoÖsõ]Úú‹”é°›†´5ìí!-¨©%#z©ÎIäú(Ud¹“ìòsM®~ZþÝÚõ¨çëùš_N=oˆmЗ!ù¬-зR‚ JÓ„á*É<àZC§µôëÜþŸ)¨ŒGcPǸ™Íœ©M»jp…{oÝèr1RÝO¢æ?©ßÔúzö-W “Pv }§•!a;’C‰ÜprF Ó+8n,-*Õ‚î¨s4Èy =&?Úú_=â$)¨Ù`ûö¦ñ•ÅÊ•Hɯ[¯¥Èn¨Ôú¢ífeQ®L[”ÏPÅ”˜>fQ ÷y†{y‡eŽ*{ÔFîѺE¨Ö‹Š?X1fâå! ”´¢¢”îò’äàyÆ)­}0_êZãê Á¨“¨[–ô@ $…%D)CrJ‚<=2g—ë÷ sÓ²f¶‰{ÐÜ”†0”©ÆÊ ÃeYÀÎvîüj®n+^e©Ñœ¯~³éû—XˆÓz2ÁúŠ$·tãW‰“\·¾¶¶ÒHZw+ îYWaÛ&”·Ô}Ipµé–mpmq¯K¤ËD°øZØeæ7eÄà…)8FàœŒçêOý•U’çd¾ˆW[m6‡zŒÌ–Ò ›Þ’À…q’Eh·ôÎ,¥{»ª6)ò'¾ãÌ….k¯%{É €žVOcÀæ’äÞã#J¤t^¶ü“˜H}0˜DŶ섶òÛFÔ©xó2p Ï5¦t â ›áXïK~†Dfâî’‚’³cGÚIy\JX #hMl”ØKÁ^õà­.yµ3Ft=JvŠÚÈÆV®Õ­ +PÒ•:)™>C¢¹³°· “ÏÔrÝâ¹{NÑîj@¥“Jê%¥SZ2ÉÆÑ2ÔwÕ=µýÏ]ë­a$9\‡‘“öv’ †0@ö<}i².Õ‰l»q¶>ÓAa8ÝÁ'ñ®ë F´â_¼Çm¶d~Ñ@—rG”ŸsTÍòú‹öyøJRd2âV¦Ö¬-$oQô®5IÎíMXèaj·—$tØoÕöin†£·f|Éw!'+Q$wô¨3Újóâa§ÎNÐ<ŸƒW%ÕqË–ìÆZia/6âÝ ÚHÎFO±ªÏPjuí¶%Iݽîã$‘ø­6Œ§šû¯2Ë*ÍEÇb+‚ä¶b¯ SŽ%ÏlœrkÉQœjCŒã[Qú]§/‘ÈR›l—]$œàsÉù8o½6|W$8p\<$zãÖ›Û}Á'ØÑy”åÞîô§7;5×P€Ó e*! qùp=k¡z 3ú|ê[kÅØ¢6w%¼ä?x {W>Û.&Ý5¹m6‘"0C­¨~ê’ ¡üÖºôj’㨻¬µàfŒ@ÆÄ¸7=¾{W?Ö§gÊßc§ÑíÆnHd×ÚjL)Iz:Ñ”(-§32p}é«Oê),ø^VBJiKÚR¬…“ߟÊè­Qd‹&#¥–ßR ”ã `ï§ü@öâ¨mq¢Wh–e°è*O)RFJÒqÀçßø×&*ÝY|A ÜN²ß™7´k•ñ¼D«…yQŒö=óéØ`jMöæä#([{Ùˉڳ• ˆ=óéÏ5EÛ „,¡â*tà ÇáR]™ ø»›dìX+ó,wôÏÍ.I§dÉ–ÕhXÌ]d¸C‹iÉ)R€HÇÉ$‘ùT¦Õ¬ZŒÚyÓÄå§@G§—Ÿ1ÂH8õÍRÓ®JZTc‰ ©h@n:ŽÕgƒ’£û½±ë[g\Q(Åjj2äpTÒ7©`zŒóߟ­Z%3ÂFEÿmÕpÒC‰~¸B–p+zIÀ'Ø÷ç⤺%N6c¾Ó­(¼«žÙ>¼GÅrãÖÈÒÚS±$OKÅd-²6ì à©@3Šw¶Á¾ÓѵÒÊR Œ4U´¥8Nùþtèⲫ12èôõLé(÷XªR’âÐÚJJ‰žÿáZß½AФ“! Q÷Ýc#àòEs«‚øÓ súE!‡VCÍ´ö·8ø&š.—=E!öa¢BŒ åvQÁ!XìqœU–1²Gw–Ö¯Ö±æ¿%¨ÏöV›YÜxÞJ»Ÿs´þu^ê}i.å0Á·(¾–ò£œÉû`T0E»Ë¹¦*¥‰#±’¶Õ“¹GÔŽ2¯Îœ-öw#<©.ÉXe¼’qG'rVGÔÒgUnÙ¦ž.B¸2LVK]7IÇ—•ØsÆ}xâ¼vÖYµÉ»\·'†)IÂAPÆýÐ~¹Ïém¶&B¶2ØnûéVxWsë‚r{|Òý|ÃÍé9ëHQeQ =Ò'…Ô¼’\Íq´YÊW(Â=Ál©%IÝ\ŸåNZ…"8S © )³‘€Ú}~ Wãšu×v—”Ô Ó <¨×ÿÙÖ£’¢È#Ødô¦?ɹ´¥—9û©á?Èõ”ªªR<}Z\:’‡kÓÁž´–ši˜›†÷ˆRÈ?wžãßò§TXä}‘™hCûâàIÁàöø¬dZ$8( ]ý³‹GNp3íÀþUc@·É”ÄYl¾ã;R’;¥D ¯b@=¹¬¸ŒFDœMøL*“j¢Ûb/£Xš™Àþ¯jhPáRÞá÷T9üë¨zRËÏ6•:ÚBÆ20Óâ©X¯:™hLhÊŒ‡奷Ò£ê}+¡:>…8ÛA(ÊOsŠßÑ ‹.&ÇŸé—ûÙ-±kØB¶$g§ƒƒ„Òf ©¤xŒNÕ°;•ŽA®ÔÚ›º9±N ̰–Rµ2 ¦R®ÜQ\·¹Ô[Ž•] ¹¢­Ñ ˜ZC€‚ãN¨;¥öG÷ÅW*·?*ÏoY*B2¼ÿ}Ur¦:LPÒÈVo“Tk™Í¢ž"Ÿ"•nA#?AéRm:öxúâš.ö·#¬ºÈÊ äJQ¦f$f:Ô³À4ÊíT¥x• :¶‘œ­[§Ú³7unë ÈN;à!ä¸6)ÍþÀ}÷¸÷¦‡µ¥³õÂm*½[›¸¨€˜Š’€é'°Ûœä÷ÅTâ+­õýP¡%õÍH6Ž*l) ˜'þ¯Ò™ç'¦×Ý&âHÕò5Ž0Áløîº©IR$$w(ÁÞ8ñJ§Æ7µÅÕÅTm­¬_Õðv⇧ǪÐöÁÇnçŠqéËQÿö³auøì¼[ÐP”ÙZŠ y\cóóQVœe²³-K5+2í‹©4ô»Ã–h—Ël‹‹{‚â·% u%?xƒœQéÆ{ÓBµ5ŽCÓ¿RÞm· RÝf<”8¤c#“œdõwX٤ͷ ®‡Ð—¸Ú’Ïqµ\¤Ã[)û<•¤!Ç‚ÖáÛ» Nøè˜P'ÀӳƬ·¹>Ï`v"­ A He iM¿••…$w''Ö³Sv•‡N¼¤´^¾£Ì.«-vMàf×íª§1)õ%ˆÈJTrp ŽH Hã“VºîQcʃo*; ©Qeüº¤$ìÏ$sôª'§ƒ tü þu=ëÃè²ÚlZÍAA:~îËï©#$Gtú8áU“ÌËP©(Órok ¿ä”HÕº}®R¼CSV·Ôõ‡F#-#Ì•ŸÝ#æ¡òú™m…U\§H„`XVI‹1.ºòö[R8ؽéR@'œUUÛ&Ê×¥ä!AÍvÌ)Ó@I#ÅCë~`ÏËjH$ûS¶³mÉ®,ÇiÇ\TxP„•ˆ‰ôå«AÄÎJûMý‰íÇ©ö¸—í.Ó3àMå¹jzc¯„†TÊ! öÉ+Æ>˜ïVŠío½[Z¸ZæÇ›Ñ”<ÃhWÐŽ*Ÿ›:ÕyêgJæ[åEžÂb\Ê]iai ÙìG¨ÏáOý!¸:Å#ÊÛzºæ”¤vHñØU&®‡P«.&Vî¿—?ªtÓ×±dfÿkr椉”‚èZ~òvç;‡r;NIÉ8š 5V¦ºj‹ÅírØŒô-q£gf)ñb2™>^yy$oÜ9ÂRw€3ÍtS ÇÍʆRŸO°ñ µœdúÒg%-`€1KŽæ‘<ÀVT8ªÁ¦õ4M4´ Éõ¤³cdž)r”ùHí[_@-Sóåbc ”V-¶“l’ýí1¾ÀÚ ž/ýÀŸšâ­SrÓꧦ\q¨*YÜ?³<þîAV ÷®ú꾓‡ª´ì«<òøŒøü%íQÚB‡>Ùª†s¤šbƵ6d-}¼IÄ?NJʼnNsÒ-ßäZ…U‡“•Ît»ZÚ–â·‡ß+8KiA;Õì)¶n’ÔÂ@mëÁ¥g0¤cþ×j¿õEž,{jãËe¶£#*#ilÞIUwÍz¦ž1áÈ]ÝIN"@RUÿXgÍõâ•U)<²6TŬF´â7GµEÓÖÒ—å7ö×› –sÃiÜ0ïÛ'ßôÇrÜéì¾¶œjÚ••¨`­#ïcÜüW¯´åÑçî ‚]yx'h+ç°qð§¤h‰6Ü‹óÿeŒ–Â’ÑXÞ{%^‰'ž=*TÔoõ~´#‡Ã´æDnF•!p¼dÅqÅC¼¨#w©Æ3ó] Ð+ÜIòa;W‹0Ân=Á• ) kʃò }}ÅRšâtY Œ!¶ËHe>im >¿Z›þŠéÕÁ¥”€äÙPìC‰ÇóÇãHÆÓ\,Ï‘«Qº©.g[‚Ò#ƒEkÀQÛžç×S¤¶4‚dÆe ÁOˆ´!° ¼žJIì=À÷ø©!±  ‚IGãZåÆ[Éu´:[_*o' ÉîÁ…r-tuã,¬®e‡qCI}·]p·¹XN2œŸ\vÁ?•{tÐY‚–Ø‘û- 1ÉNG¨ó늚rÖÞöRrò–½ð=RN*GbL/ºÒR¶ðIÏsî>qU…$ôcž*pÕ\í pŒ”Ém¿ „ ‰#ãœùÒ-.CI\¶e>ê”<H¹½y®ž0£È(%-FBGïŸõšÑ?HÙ&Ç[bC$á²@ç¾G¯­ÂKx²Ðé4½ôssÊ’r%ÁµA$î9Èõ9ã=«lIW$ ¨ÛKž8ðÀ_Ž1Î{ŸŒUÙuÑ¶ÇØ\ð°?!ÿ•GgiÅ1½KŽ”…a’O=¾ë4éÔ†èÓ U)­ ÅÈ÷§Zð^ #x+tJF23Æ8ö5‚ôóNÉ̉.º¢µ·«jNqÇ€ò©Ô»jØeiLrúW”¨-8ç$¨û}>)ÑÛSKLr’U€¢=¿ò÷¤9IlhUØŽ8Ëq_û4vZh8Gˆ¦¼¥*Îpµ“ëY±n*|;2;ëÝ’†[@R²?xœñœzÔ‘˜(,xˆÚóå( §Ë‘êOjrµÛ„s”!´ ¯§4½YWQ$7YíªC C­ÿðM}Â}3ê~kÍsk-h‹³Î ”·Î¶ÞÕ4´[_YíåÜ0 ¤ÝNe ÒS¡©)R^eHq%E ¤ðFG#jthÚ9™’Uúé#’t•ýK£fÀEÝÆîćàBu%AäùƒgºTœìGÒ¡ScHƒ|u/´¶žR²æäöÏÞù9©\Ó/Jk;­¾ëqû\¥UŸ2Ò…´ãÝ* ýMIæÛíW«•ÆYwˆï†ãsû2æR õ!'ùW^¥N¥Ò¼eªøØÈèÓ«Û³oÈѤ[l7!m$¡h]JS•Ÿlð F=½ê@ã ~2˜ˆúmïlÃ[ÜØãpÏ÷'ŸOjk[LÚâ–Z2I!+Ït÷£æ±‹v™dU¸çõEE ôq )'Ø‘ØúÒ+FQ†kjÇÓš«ZÐ’²û Q*T-BˆW††éP'$¥+W²UÛ$rc]]Ñu±ö&ÂFÞÝûŠæm@ë–xVä¶\iÀìÉiYó2¯t㑟lWKtͦâ´ÊwCi¼rk³ÑR”ZŒyžS¦$e;Yó.ø+BqXK€‡<í*‘ÛÀ,ƒž;ÓŒ²JÊŽß@k«+Á¶™•55fPqŸØ<œ{)ÁHB™ ÑI”ÔÆÆ*×+Τ3¢íêmwÄÇÿ¸ª–‰ï…~U\è;“ËÒpbEG?´Ê‡=ÜUMà%ƘËË V;WBTÖTäs(ÔvJ#’g)j 8€søÖ©Vd8àÁð–9Àõ¢Œ¥EçV”Çzq.<€|'öÁ¬Òr¦ïkŠEi² «$ ~¡~`’ä›Ì¤Ÿ´Ë.:–R‚’|¨É'éÏjyc¸ FÁêMsþœvõeÔ½[×þ¤v±> Ûï@Üâ]ó ÔU–ѳrJGpGT·Ìbà BWœ‚3“ž ØÌô¨9âÒƒMvùqú„ý)5Ìùô¦=-.áhéúgêIŒLz$EHyØÌ–Ò[JJ€ *<íüš¦lpºÝ¯:iɲ´Úâj Їú²!Y™n%{SŠ*![Ž3åÚ¢:OQÕq„{²öÇ{ñKÄT–†+ŸìÝUÕS4ìkzÙ·§V+U‹†TB*wiVxŽþ©×ª}X½è›¤‰,j#ujY~ÌÃ.M²TySÂè@÷©7¥„ÃMEÉì[é .S‘–Êä4q °V{;JZÔbÚ£ÅPso34ïYzÍ}€2àY">Èu;“¹1›###"¤HêV¢SÝ%ALjÖœ]ËöG‚”4¡áù¼¼¬÷Ï¥-Ô“/ ÔÓwíúظP„¡$$V°TIÕ¬z»zÓ²IÔ:Jûû² É·AaÀüVÔ£…x¾!IX9=‡¦¸SµµËô•ÔVø7ø ·Ô߆‡¢­m†T¤©) X+å~¸ì*{²ÒÅÂöŠÖö/&ßaÔ•4òHQI(P pG úViPÛÁÍsv…ê;Ñßµ[l–†¯7mRå¶3m6´Gñ–—–7éØ(zcRHÕš~N²Ó—¡i“y²ÙMÚ ¸¬­ <Ž mJ8!JƒÈ©JèªÆBɲétä§½dÙ*oo­RV¦k¨ô*îñìêµk&Ý,±·Ñv¥$²¬+;Á#hõ™.Ÿ£±yZ£©Þ:Ü>©IÂw¯gÒ¬ÝCÍ%ÏírǸÅÞ’•õ¾YPZQÙ’{UˆâêO½4Üc$‚)ÔªXmH\âÒYqöle’›RŽTôpWãŸec°Çןj©tÇM55Ô)ùl‹s)íö¤©%AŠú¨,ÉuEA'5 Ÿ¦ «ó$‘óYeGRvÓÄ![‡$r-×Aj´FŒ„HlÈO¾i½2êd˜óX—5Ð2–šQðÐ3ÝK5Ö’´“c>\SLÛ, ‚­£Ôf™S£ê%¹hô„¡ºLåk®»!EapÓžÈBÉÀúâ¤eZg¨qÖ¹Iy2S ÷ ägÐ*Þ¾Û¢!²®0{÷¨¡2G Èì'Ç2w„á[}F*Ez1Tey-‡`ñsž".ÜΡ±:]Œ„¬€´à œä¬Ò×™VóÏìñþ¹¦í€õ±øÃˆ<¯Â¤% -»§€¿Cñ^~1º=¥iCälpùÒ JˆçQßJñˆêŠÆ×KÈY#Z“Ç©‡ùóK~̤¸62¾;})TU­¡æ<‘ŽxÿB¯®¥\´<·Ét+nÉÈó'œü‘ÜSû¶Zòãpǯze’Ìw¦FÿE§Ê¡øŽõ“)+@l­ÕÆJ³Å5JÂ%õÉyJVÔg9É8•èîH> ýäÄ{qJ¡Ba¤ðÒJ}wçäÒðPÚœöÂ{QkîVöØ‹¹§Xqh[¬©d2ê¸ÏÂ}©$­% Å8•!½ªVJRÏÂ¥k <í]²kÀÐ|gߥº0|‡F´ã̉³¥ÛhlB@àû£Ò–F°²ÁÎç"¤)(Ýà+¡dç´ûžOáTT`¹¯7»”È@J‚Tyvæ¢zퟣ$•©Õ$'¾wߦ²¿d…%i?x«¹úÔy؉zJtžÝù¤×ãd2Œ¬ó3ú™¥®ús¨’”Óób\ÞrDi °Ú£Á ìB³ÇcH¤K• oïÄRò"ðv8xò‘ñ€Gå]ss³ÐÞˆHJŠNì}ÇÏz :«£ÛÓ2}¹8Ô{sH%¸í$…I{8Ïñü ? U¹$Ö¶²‰o'WkÝ®ÒÔ7æ²ÀSrRëƒr’ãdcØû{·Øå¡h+ignœJÙ õ ²êçÚ!¦T€ Œ¼àJ}{÷5vé¸öëŒd$ò H þ5èðô(NžI½O1_V5¶ek¥´|tÜÌÀ‡ÒꕹEG…¯ù×Bèh1â0Ùpå@Se²ÈÛo¥°ß‚*gµÅŽÒJÀ'µ¿„§…‹·3%JÕ+Ï4Øûïe*oîŠÅûÑdøm·Û½d܆Úo  \dŸk •4é)·™hZ¥WÕz’Û]Íð6«ØÑQ8¬ 8•mWÖŠ¤ði»Åصi)S„[±jqs–^ßìo»è›–¢Ð—m9®5"o-NB<7c[Ó°Rw¹Y;‚O'cÓ~‹±ê{6¼êÖï1cÁi¿Õ©ayÈ”°³¸€ì3œš°îŽá¨wô¦FV¤#=ë6u[5ׄTÕ·!NÑ7Çd±Ô ÿ…«­±¶„©¹(ò…nãp QÔ€=°Óléd—CßÒò¹ÚæÝÞûtéYA|JÞ *BU´§Ê]Žs’jëhxQÀíLw·IN2rNiTãÄ™5h 7vƽ-k–0l×û›W’ãJeÇQ0•¶S·nУŽ3Î}j1¤z¨tdxÖ»v¶T7å-˜-ˆSÉmJ*ðü}ý²O;síŽÕ1³=–Sîšw}!Æ Dã’c¡Ô‚|ÑR[:OY]ê nêSN8·‘mû?•- Úœß¿’|ÇîúüR·A™c¿Xcë7£Ù®×\ÓÛµ· ÿiÍÙZ”mä{æÖ§ð§HÊÞÐ5UµE)áéJé¯Or¨¸t鹚Ç[]¦Ý[¢pކv©„¥¤·¸/qÜ|¹û£ñ¦»Jî0¦i9^åÀig1oh@KI ”¤,’£„yóÙÛÎjÛº0R¿#Šm)^íÙ8­Œ&®"¥%j½^ÿÉP³ÑE±gfÂ^ñ´Å»&é ƒèPψ½Ùs˹#îãvNpN#h9¬õYíwjÔb™¨ó¡9;â¶‚“„¯pÙ3ƒŽj\ËAyVsŠÝD;´wÍVqV²&E§b¶ƒÑ(MôíÍ)#P<¹(¼*ï àÔP…G{¾B¥ÎyϦ+{$~TmQ2õ©Õr¾ê êõNCMÆg C!gÔ|Ü‘éÍYÅEë-üšF¨Ñìô¶±[EéIôñÓ}ãF¡hÇÙ?Ý›’Ú·û?¹ýîõ)Ñú~ãb›{~v§¸Þ›¸Í2cµ(ùa çöHäñϦÎ_{h5¥O94(·©*àôõ¥…{y­2JV“Ï4éÍ ¬qL×óLöXÏÅ3%µa*É &!¬¼SÉø­ç%5Wõw®ZG-QZ®,gìqÖ?gÿÌ_d}9?Íú³¯zúüêÑo}›Dup>V¬ŸÄb¨ñy}ÔèU­î£¨z¬lšfÜ©wYÌÄAÈ@Yó¬ÿu#“\ÏԸϛp,iv mchzB”¯žÉüsøUYp•>âë“®’äLyÃ÷YR–~¦§½ éâ5¦©¥"Û )~àòÞNp–ôÜxúYkâ¤ÕæÎž¡õ¼Ù–„éî²ê Õ»\e1lÜOÚIS§Ô6ùíõ«_NèxÖ›œT£ÆsÃ9S¸Vµzf®Iìlj ˜qC,¡;m¡ `=G^g2ÛtsÆáî+Ïâq5*;r;(S†±D¶ÈÒQ!# ÀÍ?´P7„­#¸?^ 1Ø <Ÿ2}qÞ¤m¤- åÇÇze=Pº›ˆÌe ’ÈÞŸìw‡¨­­¥¾’9È 8"”œoÌÞìzäÿmaÑÈqþ¦$-ɘ5c$!YÆ8·°ÖP¡’žáJò}x¥m¥²Õ+Üð>”¥ ³êêÿ ¾Qnb&””§O¹Mx®xPÈ>ƒÒœvFï‚çÆkb@I„¥[)Ææšu_q“ê®mp y@ü&—¥Œ«çšÖãXó)X˜¡¢3ÔØÆÔ$$c¶8­ J³¸ÒÇR””üšDòŠ•µ$äþB—&Y&nRü&À'cíóIÎ<¨ ã>çÞ”ÁY ³æ=Éÿ_Ω>±õÆ×¦þŸÑ®G»_)~`!q¡`{8çÀàzçµ-ÁÉšhSY(ÁjIú…®tÆ‚iµ_$©SŸATx, ºî=ý“ý¥qõ®Kê6´ºkÛâ®÷rPÓj)‹ ?ÔÆo=ýãŽêõ?•1j ÅÊç>MÒë%ùÓžXSÒ\;‰??àvÍ1çd¨pBAòóÇåZèaÔ5gQFž´„—â'ÀXR‰ó`üÓÿOµÞ Ð÷¾<5(xÑœ9m_Ocò)•*ã!8<‘þ_5‹å*!)HŒ…VÞVg+†…[¾ÞGcôç¬gR²ÒcMDi؉!A ϲIá‡?mÀÔ ¸‘Ü/Ôâ¾i)‡çˆÒ”ž`RjÆÐ]lÖZcÂb[é»ÛÛÀ ÊÉZG÷V<Ã|ŠÓKRž›£Îâ:.Pwß­Ë.ÇñwÅ!aEçŠsÇš¡tÇ^´µú"ûzí39f_'Ø,qùâ¬[&±Š–’´>Ì‚¡Ì¸—ÿi5¶úOIhÎ]J3ƒë"tàmµ’}¨¦H—Ö&((“Ͷ3Œ•ÓbQÓ[jÑ–µ}ï·§íOOZÚ„ÒÞmðžØ¨§M.2™Òp£”e‡íV —¢…wJ…s¤êS³oC¡AR« ¨®hÊœ·6$*²º$€ÒÆô­÷u„Nq”aÝ“HFÁ Q>§šé­QÏz;šY (?–*}¥žiP‚R0@Á¨>*Ï­K4ÂÞp}î@5Ÿ¯LÑ…•ª ïO<ëËKE×÷”ù@àÒ©IîTqO±P˜±€Ï8¤Týºj+sE?ܨäö2šî´Nj5p•:T®É:R‘“Î)›œvø+HªgXu³HXÛP›¨b—@Èf2¼eŸŒ' ~$U!«IçRÛ°ØÊŽN×f¸Oÿbΰñ£¼UÍQUj{¨ë¹ÚŠ:@XíïQËÆµµ­o!¦Ó÷–âÂR>¤× _ºÓÔK«ŠZo „ڇ܊€Øê9þ5 Ÿt½\Õ¾}ÊTÊʼWйüMQâ*r²Ž«?zG]kž¿é»A[q盓éÿ‚‹Êíž?,Õ®úã«õ1\[kŸª!,PÁ;Ô?¼çËZ7±P*#Ú”6ÛMà¯ÊAÓñ¤ÊNNíÜëaú"œ5—˜¶ûÅÇœñI󣜚V[JÔ$‘‘é[vá­Ê!'Ë„÷¯v„¤“Œ(ãƒÏÓéUnììÓ ¡$&˜µ—X@H)IR°;ñÛ?tèo.*íÚ–Ü ‘8-‰õSXPÆ> þ5ή%&[8l”¬(;ž3þ<ýµ"4¯U­2e:– ÎÌeG%΢~Í*´o“S×ÁÖ÷&²ùó`cà∉q²Þ6îÁ ÷§™l©R6Œ¥[TíŽÆ²b)(ŒÇÉtî̪vB[F[V×R7$í ŽGÏçš’´´¡ $œ߸¦e6!•'pyO=½9¶…)…6(8X ñèGÐÓ ²èRm=EÁͪGˆN6’”ƒžÝø¥¬¥$‚È ÷ǧÒêØ ’ ü” ­I)ãœUïb–R@XÁgÊ?×4¡*B”P àF)39q–¼-…çwï'ëZ|T¼·±”ŒvÎsÍZåw:ÿ‡Ê·;%=Íc ¬ŒœcëÚ°‚±â)*ÁÝÜžß•k¾\-–KjîW»”Kd$ —¥<–Óøg¹úTo¨[[ ÆäòBGjeÕ·û“³.ï¨îlÛ`§;TáË+û- rµ|Æ©~¥~“öˆeËwO-ª»JÚ@¹MAm„t6p¥ãÝX¹«V_õ­»»wÔWI7IÄ`ºòð†ÿº€8HøHÅJ¦ÙÒÃtuJiè¼ýz±eõ›¯·]âØtÊa°¨”¸µ+ý¦XöZ‡ÝIþÊjžq)`¶ÚÜPTP€6Ƶ¼àIHi°p~ñε$)jñ”KŠ=ñßäóZ!¡ÓŽJIÂ+×Ôг)õ™ ÊF0Fx÷5‚Ò·HÀî3ƒÆ})bˆCKÚ ’p'Þ“Èy t@ôOñLB*F)jÝÙ­ ²Ró©NÓ’ /­`擹cJ»þµBS¡;ÒR9pÉHDzf-¤)Õx¤Œî$d~Z›öŠtÜžX+zæ"YQX( P϶1éY9J9p§€N{Rå-¤êä(züR'ä(ò‚Aõ(úÔ¦ÞÂçNMÉÜFìfÂÆÓ’yÖp¤\mï"L)oÅu)RR  P’Œ©*Qì=³š w¤)@àc8< µÌrÃÆE£:ç|µ-¦5$Ape<}¡³±ì{ŸE~?QÎm)ÁÁííEBŠå¡Ê¯‚¥ŸÝõð:ÃMj óv(ÈnõrJAVe¬æ>™©3Z£R5 é ØqÛíŽBtªwZc’x¿ü=x‡'îŠñUëUr¶góÒr+ÑÚ—Ç«oyüÃ4»I3:«RCvùÿlsüè{Sj%ŒÿH.¹ÿž9þuC¥£ŸJ–œ…R³Ö½ÔŸÌº©'¥Ç—5v¤lAvþxçùÓtÍi|e¥-z†ä„•)SVúœÔ?Rê"”G vL׎Øð㤭ç”{¤sɪŸª±z‹Q¿¥Ö ½Ž$‚~Êܘ«eµã¾2å ŒúŒúWO†ÄW×3K¶ìÛ…ÂU®ï{"y«ºß:1SÛÕÊàðãz¥8Ç*ÿ\ÕM©už©Ô®•ÝoS¤#ѵ<­‰ÀgÂ÷äŸZÍ vó¯AG KK·ÚÎþ nc‡|Î/ñ5êAO9Vk#»¥.vÕsfÒÅáû\Æ­²\SLL[ º´ýä¥xÚHõñOm›â0\ì¿Î½BÖõèkÀ2}½«ßLŠ­Ë«ö™ž$nyÃøšÉ/;»—\?õ«ú‘éÆ+$ƒÅ5 ºrí3Sï)D\?Uš«Á×>y5¥Dcô¬À~POMîfãï…‡W”`§Ì‡ñ¯VóޤeÕ”‘ßqæ°só^pÙ ò…sÿ$ÐJœ—2úé§PïËz`ʾÜÎ*V“)yu À óèçS4_/[ÍËvûRÿιÇEXµF ¾´}ºá>çJS¢·@!%X†T‘øŠ´ÞÔ£J¦;GÒ7‹2Þòµ1PÔÚ>¹HõÚ àcpTœéj»;N/ W6jný×&Ò/·½¤›ÝÉ'ßíKíù֨׫»i)zñt$e\J_#ß½F°Òò@ ß"y†k¹¼}r)SW­;".åÞmdC%žø¥µ¡m()¾Ý8൹žßZ¤¤uuM©_c²‡¢y}ÍŸÁ9¦+ŸT5lÝéŠôkrãììÀÊVOåŠ|:7=ôñcc€ÅÉÙéñû#R_oÅ‘¨®l6ÉrzГù«¼õª5¥N¤êë¬ç±áC”âÆåñ®p¸M™qŸL“1dåEç®N¢´ß×ò­ôº&ÚԨ߆†Ú}g×›~íûô…×›²Î¸@A<<ôÇp}vƒø­õ£Ô:šh™¨¯·+¬÷.JÜ)øNOéMeKÇ•8ÕUá9Zãg·á]JT)ÒVŠú*4£GÜ^¼OKÎýÐâÉ퀣ƒõ¬¼i*FÒó¥¸Þqǽ`®Þ€Ð²Ÿ\žôáªRÞæÅK‘»;˜²£Zœèìê‡o1âµùÖ¢ïñY% AûÀŸ‘Sku'-Ù‰%ÕeO81î£Y¤”ÉZÁg5"…¢µTþŸ\uä;Ný9l’"Ì™ö†‡†é-€Ÿ «yåæù #Í߃ˆ©%\äš›1nvÙÜP©oäuÁÏöÍjvKêR²òÉWÍÞµ$äŒcòíAõõ5)X¤ªÊKsÒã«P+qdš7+$îVO®Mx@à•`~uêöç9ûT•»Ý°ñï÷«ÏÃÿáœ×ƒ9Çñ¯B;îV>H©¹VÙ¥õ¨ŽV¢>M›é@+𢬙IE·¹Õºg‹$p8lÿÚ4ê”r£„Óf˜õ3 Wnÿò4¹N2;'ØW‚©w6xvl/2ß NãSn†&õ$6Ù2ëÍ…z¬ ÄdŸÂ <߯–Ùn×â%æÐãh›eM‡P°AJ’  ‚GñŠvÂhÎ[&2…E ‘”¶L{µEwUuF¹Ïšã³îKñ·¼¢”€U”“„á ¤qÀ©t;eŽý¨õ^–gNF·~©aÅÛæ4úÔê”ÑØ¯qÁ $Ÿ^j zÕfuѫųKF°]Ú˜&*[wÈCŽ ’<"”„‚£“Éöõ4ºïÔƒÑ.Ï[ô¼ MÆðÑb}Å–îä+ïøm”€Ù>ù5Ó§: ˉ%+¿«l´í6B¥%|Í=~hv}};£4uÁÍ=ï&ý :û²Z<&B“€ÞÒ0¬)8>àçÓ­E§"_ºÇ¨äÍŽ%µlµ5!1”ï„—œÙäJ•‘„ðrr¿V[µÄˆúZŸ¸ix¦ín—m’˜¶K9Ú∜úe<>iS½H¾/XÉÕª ©Sa&ë{¯µ%°…m$‘‘ÁÆqÍh…l2‚‹µ´ÒÝÜþ##Z†TžÚinîÇ^Úí¨ÒVKÂcZm—§][| É}´ýò…Œ-X(ÏÞò)~•! Ö‹Wa-’6ª%ë,•7ú£F1§¶ä­I¸®RœƒÌ”€Пšx‰©dÀÑ·}&‹Rbìâ\³+agiOû;{îë'”qz%•­;mà„*U\¹Y¯/Y‹Ñö[=êݧOê×­¾$묋’ZÜ“»VܤG›¿1íg¶NÒ·&¬Vû=÷UÄš¤9á!I„œ6”¨dùÎ3‘žF'j¦¯LBF¨ÑëôØQÓ™ÿ¬WJi'Ê€•n9$äÜö­sSDÓS!OgCC™u‚VcÎ7W *Ü9ka VÞã {ÖŽ6ÔVµ¼ùwoóêÐέkzîßæJ4E²ÏMÞ›·Ùmõ›?T\_[imFBN9'¸äúwêî­›§§J†ÜD@¹8ó¡Q°Hˆˆ)Y'Ê3íVŒM×~F¢¸è¨—kú%¹)¹âèät¥Å•ê‚T±ŒŒÎj—Öýdþ‘éÝ_cºi ,»öì&¢ó·ÅJJf€A8Â0ဵä٧СFºŽÚyøš0´)×qîõ©;ýÙEéš“QNeÊßeqØž7œ…©`\ãËôYµýÙWSzëÙ¯dJÔ&"cï71å-%ÂÒ•¼ ààñì*Ѿ¢^ú]­YÔöFØya¥G“òvHeX%ŽAÊRAô pFAšé®±èý-ÔÛn¸ÒÝ)M©èÿi2c&üã‰]AO”©¼4”’H'Û]ukXîd˲'=3Ðz#\õ3SÂcEÆgБ$4ˆŸoPUÖB\R[\‡TFÜøj'$dÖΰôþÆ4¦…Ô–#h‡ªfÜĶ—³ÜĦß%K-íðÜYNä·ÉIãÄ9^è.®ÜôwQ¯úª-¢$È:rqµIp”:ËË+(ÞAÆì{ñÍ{¨ÚVÁ¬l:£@té­;.Õ,ÈX‘yzp’ K~d¤ `ž@'žô]X2ÊåÜçKm—¾’ké:«¦úsFÞôí´Ï€l÷Oôìi×6>€êñØnû‰Ö\ºÛžýúmŒÓèUøºÄfö¸×2 ­a_x©D’¬òjpý! “­ÑféÌk`Ö–Ùî®~¶qçW!Ä)x#8|0‘’¿¼00Ië §Gmû¢›Ÿ*ÆÛ©´Ýº8Á޵µÅ4BÊr €;GênˆË.g@ËèŸO­·éå¦l°ìÂÊÞ©“yB'ço»\mÛÆ9¹‡ ÖX޵é›%êS ȸ¥‰ ,å'œƒƒÈâ¥:ìzc\ˆ÷-uÒÈ—JÔDÅUÎ=å輪[(IÉÉ<…øà*¾éާþ…ëë6«ûÛ²Jd}›Åð¼\åݵXúàÕ[EãYÜê †éUÂóÕ)#§ñÄmЖÄÄNxJ’R•­iZÀI(Ú@ÂO¿5¾ôóI뮓t»VÙôü=-qÔš‰6i@ZË^}ÀZ˜23ßqœ †ÚzômÚ“¨÷¯è wúoL–¿Xãì9JÓœø_´ûùÆÚšë ÑÑ#Óûu¡Peé‹À»Æ» {ŠÜ>´ g—áÎã÷;sÀÚ§¡uÂÐ0Ô½cÔÝ¡£ÛµÛ7Á¾5%ÕLûBRÑ+^UµI˧ŒåíÈÛ´ií¥¿F['Q/Z& úôÍÖM½M¾úÛiÒ§VœÛÊö%²?½ŸAM“?H›ÛUÚt¶×®.ð)wÆî.-;RíÇ#VŒÇîŒçœÂ§uGí·ô£õBaÜ•;õ—Û3¿*pìð¶qýg}Þ¨º ³æ_š/¤ZKO鮟³yÑÖ[ÛŠ!—¨.×Âc9 +m*m, º’Bwà”‚N;ò1ËýK²BÓ}A¿X­ÒÓ2 9Î5ô¬+Äh!ÈàùHíS–º½f¼hK–êOXÕ#O´cZæµur ­3€kÚ•€éÂG®Id·õ Ñ@j½%@ÙÀ¾NûLI‹qN=mlRÊ T°0•æQ;³C³- éêYÿÿ$©=j»Œ‡N>BO§ûLjÙÓ{”ÍQúõ.¥•"kVylÉ€ä· Šed á ™ö}»œi{÷l^qáãýîüR_Õ˜Ó:p¾žè½IéÙ2„¹ÉÌ‘-iÁN('Ê RqÜO=ó è/>ÇC·Ñ] §¯6mÒV7­R¬…뮣—yC3šwá¶] Ø 0‚Ÿ0É8Vk=¤4VýïzÒë¥àj½‡S; ‚óªC2RÛ@9±YRå(y8É#5¼õ‹OjëU¤u¦Qµ-â×0™¹5xzq¤ò⓸䓡É8ÆjiÓ­a ­_¢=âÕ©"[ï/.ÿã :/?d’ê ™Ú¡Œ¹µ8'!<„žjt{ýÅ«,-!¢ôΜý&:oÒ¶´ZajM="jà¡eIeϳ’vçZF;d€IÓ:[MèM{՛曋©®njÙVø庴Çe>9 Z’‚ ‰Ê½}ŒsQHÿ¤%ÌužÓÔZr3‘,ðo·Ù£Ê-6Ë% H!B²|Ù'o8ŒSmƒ¬Éfשôî¥Ñìê /¨.®]UoTõÇv+Ê^ï#éIã„çËÎ=2r]’w.(=<é¬N®tÖê½3:w¨V7ýY!Å8ˆ’¼&žIIÎFw¡g“Øv¯5¶€²hˆjYk[._¦êÇmV·ÜÉ[1XW™iôólRsÞƒ<Þ£_:‘Õ]-2+ÚHFÓ©i6hóg–bEC$,%o,r¥lJsœ$bž¿LN£ÁÖº†Åh³Ïƒ2=ž3·¯tG&¼A{ÂWï¤mWÉù¨v³-Ù’f¿ÑŸ§­K¥õ~°¸Úc_ß±²†íÖÙSxÏHX's«*@ H ਓì*~î‡é­»«=6~Vž°·TFrêÈÄäÊf݉-© JÕ÷– ž8õ&¨Þ’u*N„‹{´K²DÔ:~ýG¹Û$:¦|D§ 8J”3ƒÜàÓ¨õ>7ÛU×Dh㥷:®ŽÌSŽ¥IR R‚ví)ì;ò{T&¬ZpžvËcPôÞˤºw­ÄûT7o3µˆÓú}׉%–’­åÔŒö(QN}hÊè·Oí·ù ã¦l°ìÂÊÞ¨“yB'ço»¸#×vùq’ P_¤'\$õaÛ?Ùôò4ëź÷†ÜϼòöÚ0@@ƒÜó[µX´ÎºD{–»élKƤf"c*çòôFÞ ûª[(IÉÉ<…øà*ÝQmTi2ZåCé?ÑwGõã¢`ß/’g̶,=!HijSò0êÂ~ùB#íHíçÏ8(ƒÒ­¬/ÔV›(–KÄ]¿2ÞCEØí…¨+žÅah㪾õDÝ:§zRlIe6kŠç~²7xÛ•![<-ƒoû£¾ã÷{sų¢ºˆÖý®–;†¦Ó¦Ïˆ´X"Û§}¦tc)'Å Qá…“Ïïnñ‘X‰fZól@æ•Ò=Gè…êñ£´ä}ê±LFV¼ÃðC #<ã vÏìÉ©î·èÞ€»u§?Ñ ,f­½ÍµßZÚê₵%ÎN2twçpíT?èïÖwºI"òU§¨"\ÃQÕ3ÀðÜeJR†¼Ÿ1ô‡®ôÑëgê[V¥²ªçtƒÕ ´,¥²NFâ´¤ãG5IØzžmÔ=(6ð½\Q;õÛ6–vª9Ùál;¿Üý÷½ÛŽd7¯Òðõó@^ì–&m³4txÒ¼tMB›CjÜ„xã=ø©Ìˆp’dϬ=>ÒJ飼-§ô† ±Ý6ÛX·Þ[’¹Ð·¡q!ÕùÀQQÏ›ÉØdÒ®¶è- lÖºc§ºwGC‰?Y¢ ܺ—×›zK¨B¼ó´d!eDäÿ©®£kM ª£Î“hé{v Ôçüw§·{uô%e[—±’„¥!G<@ŽÂœzÁÖ9ÚïXé­Qo³~¡›§£2Ôb%ý£.4áq.}ÄãœqƒÛ½  P•‘{kN’h6¡ë],擱iøÖ{j]Ó÷¯×h\ÙrÖåZ.•y•Æ1ÛÓi´ [½Dꦑ×ky¼ô¢0Õ“bøNÝcÞŸmèob^û8N7'ÊpVAÚ3žs×Zî¥ÐÚWM±£íVw¬,)—n‡íf’Ü®2Fã’¬¨’1œTI®E¡%ª ¹R~æsSX­A\ã?ZØãÓ“AJ½ª·CYå®·;Ä+k@—eHm„9*Z‚Gñ4UõútÚF®êœ}M)ÿEÓ˲8r@²@ãœ9úz)±ØËSGbO§TUfŽ‘Ønÿò4ä; í+‡.ƒ»¾/ÉÃý'þü¿'+šñ'WiQUý ÿO/ɤߗäâÓê=(qs]¥E¡éåùÒïËòpúN5± T­Ç°®Ü¢¯ú/ýù~Côûòüœ\ʶðMmqYPµÙ”U@Ý߉åù'ôŸûòüœdÙÚ³Z&/ƒž1]©E  ¬ïÄòü‡é?÷åù>wk©ßc¶Ê’m³©à:¡•:¥zçÖ¾ÆQ]L.aâÕïs¡„ °ê×¹ñì‚q€sô¯ïÅ}…¢´d7ñµ½gŒc<ó^‚ïæ¯°tQ8ýÇǬq@IÅ}…¢§ q»„dppkÐ }9>•ö ŠŽ<~ããî 8×è'€¯°4QÃ'Ú;$}ÐMy´ûsé_`(¨á÷ƒÄ'Èøÿ´wüëÌmŒsŠûEO¼=£¸øüŒœÁùè•ÂR3_`(£† nGÈ cOö«Â“ÿ+ŽþµõþŠŽy/~GÈ!»Oo|ö£‚ Gð=ëëíp»ÃÚ{$”œûóï^åX ŠúûE>ðöžãä T@áG¿?aJõÇÍhÎrNkì <>ò=£¸ùyñžÆ±R”}AöŠ8`ñä|}ÿªkД“Ÿ~=ëì pûÈöŽãä8àò¬R<¹8Å}¢Ž/Ü|d ŒwÅb§ÂsÇÒ¾ÁQG ‡ˆ}‡È[|•ÍðŲ ¹ÎåLvá'è3WHEÍ{«æ3/SFwKÙ² ×$bK‰ã„5ÜdêÇÐ×К*T+*Í¡‹Aé+ˆÒñ4曂˜vøÃʑʖ£Ýk?¼£êh§Ú*âBŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ÿÙPyQt-x11-gpl-4.11.4/examples/itemviews/puzzle/puzzle.py0000755000076500000240000003373212536324427023055 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) import random from PyQt4 import QtCore, QtGui try: import puzzle_rc3 except ImportError: import puzzle_rc2 class PuzzleWidget(QtGui.QWidget): puzzleCompleted = QtCore.pyqtSignal() def __init__(self, parent=None): super(PuzzleWidget, self).__init__(parent) self.piecePixmaps = [] self.pieceRects = [] self.pieceLocations = [] self.highlightedRect = QtCore.QRect() self.inPlace = 0 self.setAcceptDrops(True) self.setMinimumSize(400, 400) self.setMaximumSize(400, 400) def clear(self): self.pieceLocations = [] self.piecePixmaps = [] self.pieceRects = [] self.highlightedRect = QtCore.QRect() self.inPlace = 0 self.update() def dragEnterEvent(self, event): if event.mimeData().hasFormat('image/x-puzzle-piece'): event.accept() else: event.ignore() def dragLeaveEvent(self, event): updateRect = self.highlightedRect self.highlightedRect = QtCore.QRect() self.update(updateRect) event.accept() def dragMoveEvent(self, event): updateRect = self.highlightedRect.unite(self.targetSquare(event.pos())) if event.mimeData().hasFormat('image/x-puzzle-piece') and self.findPiece(self.targetSquare(event.pos())) == -1: self.highlightedRect = self.targetSquare(event.pos()) event.setDropAction(QtCore.Qt.MoveAction) event.accept() else: self.highlightedRect = QtCore.QRect() event.ignore() self.update(updateRect) def dropEvent(self, event): if event.mimeData().hasFormat('image/x-puzzle-piece') and self.findPiece(self.targetSquare(event.pos())) == -1: pieceData = event.mimeData().data('image/x-puzzle-piece') stream = QtCore.QDataStream(pieceData, QtCore.QIODevice.ReadOnly) square = self.targetSquare(event.pos()) pixmap = QtGui.QPixmap() location = QtCore.QPoint() stream >> pixmap >> location self.pieceLocations.append(location) self.piecePixmaps.append(pixmap) self.pieceRects.append(square) self.hightlightedRect = QtCore.QRect() self.update(square) event.setDropAction(QtCore.Qt.MoveAction) event.accept() if location == QtCore.QPoint(square.x() / 80, square.y() / 80): self.inPlace += 1 if self.inPlace == 25: self.puzzleCompleted.emit() else: self.highlightedRect = QtCore.QRect() event.ignore() def findPiece(self, pieceRect): try: return self.pieceRects.index(pieceRect) except ValueError: return -1 def mousePressEvent(self, event): square = self.targetSquare(event.pos()) found = self.findPiece(square) if found == -1: return location = self.pieceLocations[found] pixmap = self.piecePixmaps[found] del self.pieceLocations[found] del self.piecePixmaps[found] del self.pieceRects[found] if location == QtCore.QPoint(square.x() + 80, square.y() + 80): self.inPlace -= 1 self.update(square) itemData = QtCore.QByteArray() dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly) dataStream << pixmap << location mimeData = QtCore.QMimeData() mimeData.setData('image/x-puzzle-piece', itemData) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos() - square.topLeft()) drag.setPixmap(pixmap) if drag.start(QtCore.Qt.MoveAction) == 0: self.pieceLocations.insert(found, location) self.piecePixmaps.insert(found, pixmap) self.pieceRects.insert(found, square) self.update(self.targetSquare(event.pos())) if location == QtCore.QPoint(square.x() / 80, square.y() / 80): self.inPlace += 1 def paintEvent(self, event): painter = QtGui.QPainter() painter.begin(self) painter.fillRect(event.rect(), QtCore.Qt.white) if self.highlightedRect.isValid(): painter.setBrush(QtGui.QColor("#ffcccc")) painter.setPen(QtCore.Qt.NoPen) painter.drawRect(self.highlightedRect.adjusted(0, 0, -1, -1)) for i, pieceRect in enumerate(self.pieceRects): painter.drawPixmap(pieceRect, self.piecePixmaps[i]) painter.end() def targetSquare(self, position): return QtCore.QRect(position.x() // 80 * 80, position.y() // 80 * 80, 80, 80) class PiecesModel(QtCore.QAbstractListModel): def __init__(self, parent=None): super(PiecesModel, self).__init__(parent) self.locations = [] self.pixmaps = [] def data(self, index, role=QtCore.Qt.DisplayRole): if not index.isValid(): return None if role == QtCore.Qt.DecorationRole: return QtGui.QIcon(self.pixmaps[index.row()].scaled( 60, 60, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)) if role == QtCore.Qt.UserRole: return self.pixmaps[index.row()] if role == QtCore.Qt.UserRole + 1: return self.locations[index.row()] return None def addPiece(self, pixmap, location): if random.random() < 0.5: row = 0 else: row = len(self.pixmaps) self.beginInsertRows(QtCore.QModelIndex(), row, row) self.pixmaps.insert(row, pixmap) self.locations.insert(row, location) self.endInsertRows() def flags(self,index): if index.isValid(): return (QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsDragEnabled) return QtCore.Qt.ItemIsDropEnabled def removeRows(self,row, count, parent): if parent.isValid(): return False if row >= len(self.pixmaps) or row + count <= 0: return False beginRow = max(0, row) endRow = min(row + count - 1, len(self.pixmaps) - 1) self.beginRemoveRows(parent, beginRow, endRow) del self.pixmaps[beginRow:endRow + 1] del self.locations[beginRow:endRow + 1] self.endRemoveRows() return True def mimeTypes(self): return ['image/x-puzzle-piece'] def mimeData(self, indexes): mimeData = QtCore.QMimeData() encodedData = QtCore.QByteArray() stream = QtCore.QDataStream(encodedData, QtCore.QIODevice.WriteOnly) for index in indexes: if index.isValid(): pixmap = QtGui.QPixmap(self.data(index, QtCore.Qt.UserRole)) location = self.data(index, QtCore.Qt.UserRole + 1) stream << pixmap << location mimeData.setData('image/x-puzzle-piece', encodedData) return mimeData def dropMimeData(self, data, action, row, column, parent): if not data.hasFormat('image/x-puzzle-piece'): return False if action == QtCore.Qt.IgnoreAction: return True if column > 0: return False if not parent.isValid(): if row < 0: endRow = len(self.pixmaps) else: endRow = min(row, len(self.pixmaps)) else: endRow = parent.row() encodedData = data.data('image/x-puzzle-piece') stream = QtCore.QDataStream(encodedData, QtCore.QIODevice.ReadOnly) while not stream.atEnd(): pixmap = QtGui.QPixmap() location = QtGui.QPoint() stream >> pixmap >> location self.beginInsertRows(QtCore.QModelIndex(), endRow, endRow) self.pixmaps.insert(endRow, pixmap) self.locations.insert(endRow, location) self.endInsertRows() endRow += 1 return True def rowCount(self, parent): if parent.isValid(): return 0 else: return len(self.pixmaps) def supportedDropActions(self): return QtCore.Qt.CopyAction | QtCore.Qt.MoveAction def addPieces(self, pixmap): self.beginRemoveRows(QtCore.QModelIndex(), 0, 24) self.pixmaps = [] self.locations = [] self.endRemoveRows() for y in range(5): for x in range(5): pieceImage = pixmap.copy(x*80, y*80, 80, 80) self.addPiece(pieceImage, QtCore.QPoint(x, y)) class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.puzzleImage = QtGui.QPixmap() self.setupMenus() self.setupWidgets() self.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)) self.setWindowTitle("Puzzle") def openImage(self, path=None): if not path: path = QtGui.QFileDialog.getOpenFileName(self, "Open Image", '', "Image Files (*.png *.jpg *.bmp)") if path: newImage = QtGui.QPixmap() if not newImage.load(path): QtGui.QMessageBox.warning(self, "Open Image", "The image file could not be loaded.", QtGui.QMessageBox.Cancel) return self.puzzleImage = newImage self.setupPuzzle() def setCompleted(self): QtGui.QMessageBox.information(self, "Puzzle Completed", "Congratulations! You have completed the puzzle!\nClick OK " "to start again.", QtGui.QMessageBox.Ok) self.setupPuzzle() def setupPuzzle(self): size = min(self.puzzleImage.width(), self.puzzleImage.height()) self.puzzleImage = self.puzzleImage.copy((self.puzzleImage.width()-size)/2, (self.puzzleImage.height() - size)/2, size, size).scaled(400, 400, QtCore.Qt.IgnoreAspectRatio, QtCore.Qt.SmoothTransformation) random.seed(QtGui.QCursor.pos().x() ^ QtGui.QCursor.pos().y()) self.model.addPieces(self.puzzleImage) self.puzzleWidget.clear() def setupMenus(self): fileMenu = self.menuBar().addMenu("&File") openAction = fileMenu.addAction("&Open...") openAction.setShortcut("Ctrl+O") exitAction = fileMenu.addAction("E&xit") exitAction.setShortcut("Ctrl+Q") gameMenu = self.menuBar().addMenu("&Game") restartAction = gameMenu.addAction("&Restart") openAction.triggered.connect(self.openImage) exitAction.triggered.connect(QtGui.qApp.quit) restartAction.triggered.connect(self.setupPuzzle) def setupWidgets(self): frame = QtGui.QFrame() frameLayout = QtGui.QHBoxLayout(frame) self.piecesList = QtGui.QListView() self.piecesList.setDragEnabled(True) self.piecesList.setViewMode(QtGui.QListView.IconMode) self.piecesList.setIconSize(QtCore.QSize(60,60)) self.piecesList.setGridSize(QtCore.QSize(80,80)) self.piecesList.setSpacing(10) self.piecesList.setMovement(QtGui.QListView.Snap) self.piecesList.setAcceptDrops(True) self.piecesList.setDropIndicatorShown(True) self.model = PiecesModel(self) self.piecesList.setModel(self.model) self.puzzleWidget = PuzzleWidget() self.puzzleWidget.puzzleCompleted.connect(self.setCompleted, QtCore.Qt.QueuedConnection) frameLayout.addWidget(self.piecesList) frameLayout.addWidget(self.puzzleWidget) self.setCentralWidget(frame) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.openImage(':/images/example.jpg') window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/puzzle/puzzle.qrc0000644000076500000240000000015712536324427023202 0ustar philstaff00000000000000 example.jpg PyQt-x11-gpl-4.11.4/examples/itemviews/puzzle/puzzle_rc2.py0000644000076500000240000053140512536324427023620 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:42:32 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\xa6\x9e\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x01\x00\x48\x00\ \x48\x00\x00\xff\xe1\x00\x16\x45\x78\x69\x66\x00\x00\x4d\x4d\x00\ \x2a\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\xff\xdb\x00\x43\x00\ \x05\x03\x04\x04\x04\x03\x05\x04\x04\x04\x05\x05\x05\x06\x07\x0c\ \x08\x07\x07\x07\x07\x0f\x0b\x0b\x09\x0c\x11\x0f\x12\x12\x11\x0f\ \x11\x11\x13\x16\x1c\x17\x13\x14\x1a\x15\x11\x11\x18\x21\x18\x1a\ \x1d\x1d\x1f\x1f\x1f\x13\x17\x22\x24\x22\x1e\x24\x1c\x1e\x1f\x1e\ \xff\xdb\x00\x43\x01\x05\x05\x05\x07\x06\x07\x0e\x08\x08\x0e\x1e\ \x14\x11\x14\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\xff\xc0\x00\x11\x08\x01\xa8\x01\xa8\x03\x01\ \x22\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1d\x00\x00\x01\x04\ \x03\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x05\ \x06\x07\x02\x03\x08\x01\x09\xff\xc4\x00\x54\x10\x00\x01\x03\x03\ \x03\x02\x05\x01\x04\x06\x07\x01\x0d\x07\x02\x07\x01\x02\x03\x04\ \x00\x05\x11\x06\x12\x21\x07\x31\x13\x22\x41\x51\x61\x71\x14\x32\ \x81\x91\x08\x15\x23\x42\xa1\xb1\x16\x33\x52\x62\xc1\xd1\xf0\x24\ \x34\x37\x43\x63\x72\x74\x75\x82\x92\xb3\xb4\xe1\xf1\x17\x36\x53\ \x73\x94\xa2\xb2\x25\x93\x09\x44\x83\xa3\xc2\xd2\xe2\xff\xc4\x00\ \x1b\x01\x00\x02\x03\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x03\x01\x02\x04\x05\x06\x07\xff\xc4\x00\x35\x11\x00\ \x02\x01\x02\x04\x02\x07\x07\x04\x03\x01\x01\x00\x00\x00\x00\x00\ \x01\x02\x03\x11\x04\x12\x21\x31\x13\x41\x05\x22\x51\x61\x71\xa1\ \xf0\x14\x32\x81\x91\xc1\xd1\xe1\x15\x23\xb1\xf1\x42\x52\x62\x63\ \x24\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xec\ \xba\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x2b\x15\x2d\ \x29\xee\x69\x33\xf3\xd9\x68\x72\xb1\x50\xda\x5b\x80\xae\x8a\x62\ \x9d\xa8\xe2\x45\x4e\xe7\x1d\x42\x13\xee\xa5\x00\x3f\x8d\x32\xcb\ \xea\x36\x9f\x8f\xfd\x65\xea\xdc\x93\x9c\x63\xed\x08\x38\xfe\x34\ \xa7\x88\xa6\xb9\x90\x9d\xf6\x26\xf4\x55\x7c\x7a\xa7\xa5\x87\x7d\ \x41\x6c\x07\xfe\x70\x9a\xdf\x13\xa9\x5a\x6e\x49\x09\x6a\xfb\x6c\ \x52\x89\xc6\xd1\x25\x19\xfe\x74\x7b\x44\x09\x27\x54\x53\x34\x5b\ \xec\x67\xd2\x14\x1c\x49\x07\x90\x41\xc8\x3f\x8d\x2f\x66\x6b\x2e\ \x76\x58\xab\xc6\xa4\x67\xb3\x22\xe2\xaa\x2b\x14\xad\x2a\xec\x6b\ \x2a\xb9\x21\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\ \x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\ \x14\x50\x01\x45\x73\x86\xb2\xeb\x1e\xa8\xb8\xf5\x36\xef\xa7\x34\ \xc4\xb6\xed\x36\xbb\x1b\xaa\x8f\x21\xef\x01\x0e\xbd\x21\xe4\xa8\ \xa5\x43\xce\x0a\x52\x9c\x85\x0e\x06\x70\x33\x9e\x46\x15\xc5\xea\ \x7e\xb2\x65\x7b\x9c\xb8\x35\x20\x7f\x65\xc8\xc8\x03\xff\x00\xb4\ \x03\x5c\xbc\x4f\x4b\xe1\xf0\xf5\x38\x72\xbd\xfb\x8c\x32\xe9\x0a\ \x4a\x4d\x6a\x74\x25\x15\x4b\x41\xeb\x1d\xd9\x18\xfb\x6d\xa2\x13\ \xff\x00\xfc\xa5\xa9\xbf\xe7\xba\x9f\xa0\xf5\x8a\xca\xe0\x02\x65\ \xb2\x7b\x07\xfe\x2c\xa5\xc0\x3f\x88\xfe\x55\x34\xfa\x63\x07\x3f\ \xf3\xb7\x8d\xcb\xc7\x1b\x46\x5c\xcb\x2e\x8a\x89\x41\xea\x3e\x8f\ \x97\x80\x2e\xc1\x85\x1f\xdd\x79\xa5\xa3\xf8\xe3\x1f\xc6\xa5\x31\ \xde\x6a\x44\x76\xe4\x30\xe2\x5d\x65\xd4\x05\xa1\x69\x39\x0a\x49\ \x19\x04\x1f\x6c\x56\xea\x55\xe9\x55\xf7\x24\x9f\x83\x34\x46\xa4\ \x27\xee\xbb\x9b\x28\xa2\x8a\x69\x70\xa2\x8a\x28\x00\xa2\x8a\x28\ \x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\ \x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x82\x40\xa4\xb2\xa5\x21\ \xa4\x92\x54\x05\x00\x6f\x5b\x89\x48\xe4\xd3\x65\xc6\xef\x1e\x2b\ \x6a\x52\xdc\x4a\x42\x46\x49\x27\x00\x54\x1b\xa8\xbd\x4a\xb4\x69\ \x98\xab\x54\x99\x29\x2e\x81\x90\xd8\x57\x3f\x8f\xb5\x72\xfe\xbc\ \xea\x86\xa1\xd6\x4b\x5a\x23\xc8\xfb\x25\xb4\x28\x82\xbd\xdb\x1a\ \x1f\xff\x00\xb1\xac\xb5\x71\x0a\x2b\x41\xb4\xa8\x4e\xab\xd3\x62\ \xfc\xd7\xfd\x73\xd3\x3a\x7d\xb7\x52\x25\x89\x8f\x27\x23\xc3\x61\ \x5c\x67\xfe\x57\xf9\x57\x3d\x6b\x3f\xd2\x3b\x56\x5d\x5e\x72\x3d\ \x85\xb1\x11\xa3\x90\x3c\x24\xee\x5f\xe7\xc9\xfe\x55\x08\xfd\x59\ \x09\x4e\xf8\xd3\x9c\x2f\xa9\x47\x71\x79\xc2\x4a\x4a\x7d\xd0\x81\ \x82\xaf\xc7\x02\x9d\xed\xce\x6c\x7d\x30\xed\x16\xf8\xe9\x51\x48\ \x52\x8a\x9b\x09\x18\xc7\x0a\x3e\xde\xfc\xd6\x47\x5a\xfa\xda\xfe\ \x27\x42\x38\x18\x47\x72\x1d\x72\xbd\x75\x02\xf8\xe3\x92\x25\x49\ \x9c\x42\xb9\x25\xc5\x12\x79\xfa\xf3\x4c\x32\xe0\xea\x1f\x15\x49\ \x72\x44\x85\xb8\x39\x50\xdd\x8c\x55\xa1\x73\x2d\xcc\x94\xe1\x97\ \x36\x44\xc5\x92\x30\x96\x13\xb5\x94\x28\x0c\x60\xa8\x77\xfc\x68\ \x95\x0d\x05\xb5\xa1\x96\x5b\x0e\x60\x78\x8e\x78\x7e\x32\xd2\x3b\ \x0d\xbb\xbc\xb9\xf8\xc2\xaa\x63\x8a\x90\xd7\x84\x8b\x5c\xfd\x79\ \x15\x22\xa2\x5f\xd2\xb2\x82\xb7\xf7\x0e\xe0\x2b\x38\xad\x4e\x8b\ \xcb\x07\x2e\x4b\x71\xb2\x39\xf3\x13\x56\x14\xcb\x5c\xb1\x19\xc5\ \x38\xdb\xa5\xa6\x88\x23\xed\x6b\x28\x2a\xfa\x25\x38\x1f\xc2\xa1\ \xf7\x24\xca\x48\x52\xa3\xda\x9b\x71\x09\xc9\xf1\x1a\x6b\x79\xfc\ \x49\xcd\x69\x85\x77\x3e\x66\x5a\x98\x65\x05\x71\x5e\x98\xea\x3e\ \xb1\xd3\x52\x03\xb6\xeb\xcc\xa6\xb6\x8e\x52\x97\x0e\x0f\xd4\x76\ \x35\x73\x68\x5f\xd2\x96\xeb\x15\x48\x67\x51\xc3\x44\x94\x81\x8f\ \x15\xaf\x22\xfe\xa7\xd0\xfe\x55\xce\xab\x44\xa7\x3f\x75\xc5\x83\ \xe8\x40\xe0\xfc\x81\x5a\x3c\x05\x28\x12\x94\x20\x94\x9c\x29\x25\ \x38\x50\x3e\xc6\x99\x28\x42\x7b\x99\x1c\x7b\x8f\xa4\x7d\x29\xea\ \xee\x9e\xd6\x91\x3c\x5b\x5d\xc5\x2b\x71\x23\xcf\x1d\xd3\xb5\xd4\ \x7e\x1e\xa3\xe4\x55\xa3\x06\xe6\xc4\x84\x8d\xab\x15\xf2\x62\xd3\ \x32\xe9\x6a\x7d\x33\x6d\x8f\x3b\x15\xd6\xd5\x9d\xc8\x59\x49\x49\ \x1f\x35\x7b\xf4\xb7\xf4\x95\xbe\x59\x5c\x6a\xdf\xaa\x5b\x54\xf8\ \xe3\x00\x3f\x9c\x3a\x91\xf5\xec\x7f\x1f\xce\xa1\x67\x86\xda\xaf\ \x32\x8e\x0d\x6c\x77\xfa\x56\x14\x38\x35\x95\x55\xfd\x38\xea\x75\ \x83\x56\xc4\x43\xd6\x9b\x8b\x52\x38\xca\x9b\x27\x0e\x23\xea\x9e\ \xf5\x62\xc5\x98\xdb\xa9\x04\x28\x1c\xd3\x61\x51\x4f\x62\x82\xba\ \x2b\xc4\xa8\x1e\xd5\xed\x5c\x90\xa2\x8a\x28\x00\xa2\x8a\x28\x00\ \xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x03\ \x88\xa1\x7f\xbf\x27\x51\x3f\xe9\xa9\x3f\xf8\x87\x6a\x67\xa2\xac\ \x97\x2d\x65\xab\x5c\xb0\xda\x56\xd4\x76\xa1\xb4\x97\xae\x33\x5d\ \x41\x5a\x58\x4a\xb3\xb1\x09\x48\x23\x72\xd5\x82\x46\x48\x00\x02\ \x79\xed\x50\xc8\x5f\xef\xc9\xd4\x5f\xfa\x6a\x4f\xfe\x21\xda\xbe\ \xbf\x45\x38\x81\x1a\x5b\x51\x5c\xd6\x8f\xdb\xcc\xbf\x3e\x82\xb2\ \x39\x2d\xb4\x94\x21\x23\xe8\x30\xaf\xcc\xd7\x98\x8e\x12\x18\x9e\ \x91\x9a\xa8\xae\x97\xe0\xf3\x98\x6a\x4a\xad\x6c\xaf\x6d\x4f\x17\ \xa0\xf4\x3b\xb7\x77\x34\xb4\x3d\x51\x27\xfa\x42\xdb\x25\xdf\x09\ \xe2\x93\xb8\x71\x9f\x28\x48\x07\x1e\xa0\x1c\x8c\xf3\x55\xc5\xce\ \xd5\x3a\xdd\xac\xe0\x69\x59\x0d\x62\x74\xcb\x82\x21\xa4\x83\x94\ \xa4\x28\x15\x78\x9f\x29\x09\x1b\xa8\x44\xc9\x09\xea\xfe\x96\xbb\ \x20\xab\xed\x0e\x6a\x20\xd2\xd5\x9f\xdc\x78\x2d\x2b\x1f\x88\x35\ \x6e\x5f\x7f\x57\xc1\xfd\x22\xb4\xf8\x91\x6c\x6e\x63\xf7\x6b\x5b\ \xa2\x33\xeb\x5f\xfb\x89\xc8\xe1\xc2\xa7\x12\x92\x0e\x54\xb4\x38\ \x10\x48\x23\x84\x8e\xf5\x34\xb0\x58\x6c\x6c\x23\x52\x31\xcb\xad\ \x9a\x5c\xd1\xa1\x53\xa7\x5d\x5d\x2b\x59\xdb\xe0\x54\xfa\x96\xd2\ \xed\x8e\xf9\x2a\xd4\xf3\xa8\x75\x71\xd4\x12\x56\x80\x40\x39\x00\ \xff\x00\x8d\x74\x86\x8a\xff\x00\xdc\xdb\x27\xfd\x1f\x1f\xfe\xed\ \x35\x4e\xf5\x96\xe7\x6f\x91\xa8\x25\x5b\x9a\xb3\x35\x1e\x64\x77\ \x92\x5c\x9a\x97\x32\xa7\xc6\xce\xc5\x38\x18\xee\x3d\x4f\x6a\xb8\ \xb4\x57\xfe\xe6\xd9\x3f\xe8\xf8\xff\x00\xf7\x69\xab\xf4\x4d\x28\ \xd2\xc5\xd5\x84\x1d\xd2\xfb\xec\x3f\x05\x05\x0a\xd3\x8a\x1d\xe8\ \xa2\x8a\xf4\x67\x50\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\ \x00\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\ \x00\x2b\x15\xa8\x24\x50\xb5\x84\x8c\xd3\x0e\xa0\xbd\x47\xb7\xc4\ \x75\xf7\xde\x4b\x6d\xb6\x92\xa5\xa9\x47\x01\x20\x7a\x9a\x1b\x49\ \x5d\x80\xa2\xef\x75\x66\x1b\x2a\x5b\x8e\x25\x21\x23\x24\x93\x80\ \x05\x73\xef\x58\x7a\xe7\x06\xd4\xd3\x90\xac\xce\x99\x32\xd4\x76\ \x25\x48\xe4\x0f\xa7\xf9\xd5\x67\xd7\x9e\xb6\xbd\x7a\x7d\xfb\x3d\ \x85\xe5\x26\x30\x25\x25\x40\xe0\xb8\x7d\xcf\xc7\xc7\xe7\x5c\xff\ \x00\x26\xe2\xec\xa5\xf8\x4d\x2d\x4b\x5a\xc1\x0e\xba\x4f\x27\xf1\ \xf4\x1f\x1e\xbf\x4a\xc7\x52\x72\x93\xb1\xb2\x8e\x19\x7b\xd5\x3e\ \x44\x9a\xf3\xa8\xaf\xda\x9a\xf6\xa5\xbc\xa3\x31\xe2\xb2\x50\xd2\ \x95\x96\xd2\x3d\x49\xf4\xc0\xf5\x39\xa5\xb6\xb6\xdc\x72\x4b\x5e\ \x1a\x05\xce\x43\x6a\xf0\xfc\x57\x13\xfb\x16\x95\xfd\x86\x9b\x1c\ \x13\xf8\x7c\x9c\x0e\x6a\x2b\x6b\x79\x0b\x3f\x66\x8e\x4e\xc1\xca\ \xd4\x14\x40\x5e\x3d\xc8\xf9\xf6\xfc\x39\xe6\x9f\x58\x9a\xb5\x25\ \x21\x95\x06\xe3\xb2\x48\x71\xf4\x80\x0a\x8f\xab\x4d\x8e\xc0\x7a\ \x9f\x4f\x55\x12\x6b\x1d\x48\xeb\xa9\xd5\xa4\xf4\xb4\x47\xf9\x0c\ \xb6\xc3\x98\x91\x21\x72\x5c\x3b\x9c\x77\x68\xf2\xa4\x0f\x75\x0f\ \xbd\xf4\x1c\x1f\x73\xda\x9a\xa7\xdc\xd2\x85\x15\xdc\xe6\xc5\xb7\ \x30\xac\xa9\x4d\xaf\x97\x1e\xe3\x8d\xc8\x4f\x20\x7b\x02\x31\xf1\ \x4f\x9a\x5b\xa7\xda\xe3\x5f\xa5\x0f\xdb\x63\x1b\x75\xa0\xf3\xf6\ \xf9\x0b\x2d\xa5\xcc\x71\x94\x03\xe6\x57\xd7\x18\xe3\x8c\x0a\xb7\ \xb4\x6f\x40\x74\x95\xad\x9c\xde\x19\x45\xe2\x6a\x80\x52\xe4\x3c\ \x54\xbe\x7e\x01\x38\x03\xd7\x9a\x5a\x69\x6e\x5e\x7d\x5d\x9f\xaf\ \x5e\x07\x3c\xc6\xd4\x53\x2e\x0e\x2a\x3d\x92\xdb\x74\xbb\xac\x79\ \x50\x0e\xe6\xa3\xa4\x7b\xe1\x18\x51\xfc\x54\x3b\xd4\x92\xdf\xa2\ \xfa\x9f\x7b\x86\xa7\x54\xf7\xea\xa6\x00\x4e\xe6\x63\xfe\xc7\x8e\ \xc3\x71\xee\x4f\x3e\xa4\x9f\x7a\xea\xdb\x5e\x9a\xb6\x5b\xe3\x08\ \xb0\x62\xb0\xcb\x09\x18\x21\x2d\xa5\x39\xf8\x24\x0a\x5e\xcd\x9e\ \x32\x54\x14\x94\x0c\x01\xe5\x18\xe1\x3f\x41\xda\xac\xa4\xff\x00\ \xc5\x5b\xcc\x53\xa9\x0f\xf2\xd7\xc9\x7a\xf8\x9c\x8f\xff\x00\xb1\ \xdd\x4a\x94\x87\x5c\x98\xea\xc9\x5e\x00\x49\x59\xc7\xb2\x92\x73\ \xc1\x1e\xc7\xbf\x15\xa9\xde\x96\xea\xa3\x35\x08\x4b\xc8\x44\x84\ \x8c\x07\x50\x3c\x30\xbc\x7a\xab\xe4\xe4\x8e\x7b\xe2\xbb\x18\x45\ \x6d\x2e\x15\x14\xa7\x80\x07\x22\xbc\x5c\x28\x0e\x0d\xaa\x6d\xa3\ \x9e\xd9\x19\x1f\x91\xa2\xf5\x3f\xd8\x15\x5a\x7f\xe9\xfc\x9c\x87\ \x0f\xa3\x77\xe9\x4a\x53\x6d\x86\xfc\x50\x77\x17\x0e\xed\xa3\x27\ \x03\x91\xdf\xde\x9b\xb5\x1f\x4c\x2f\xd1\xe6\xbb\x1e\x54\x34\xf8\ \x8d\x21\x4a\x0f\x25\x5c\x28\x63\x19\x3f\xc0\xd7\x65\x7d\x91\xb6\ \x50\x52\xde\xdc\x7c\x0e\xd4\x96\x65\xbe\xdf\x29\x59\x93\x1d\x0e\ \x12\x36\x92\x47\x04\x7c\xd5\x33\xd4\x5f\xe4\x4b\xa9\x4e\x5a\x38\ \xe8\x70\x94\xbd\x33\x32\x24\x77\xb7\x36\xb5\x2d\x04\x04\x92\x9f\ \x4e\x32\x3e\x79\xed\x4c\x13\x2d\x8e\x24\xa9\x21\xa2\x36\xf2\xb0\ \x7f\x70\x73\xeb\x5d\xe9\x73\xd1\xf6\x29\xb9\x58\x8e\x86\xdc\xc1\ \xf3\x84\x8c\x82\x7d\x73\x51\x7b\xd7\x49\x74\xfd\xc2\x21\x6f\xc3\ \x0d\x9f\xed\x36\x90\x0e\x7e\xbf\xeb\xbd\x32\x38\xca\x91\xdd\x5c\ \x54\xb0\xf4\x27\xb3\x68\xe3\x5d\x31\x7d\xbd\xe9\xa9\xad\xdc\xed\ \x53\x1f\x8c\xeb\x6a\xe0\xa1\x44\x11\x5d\x41\xd1\xff\x00\xd2\x59\ \xc9\x4f\xc7\xb4\xea\x86\x9b\x69\xd5\x00\x94\xca\x4f\x94\x28\xff\ \x00\x78\x76\xfc\xb1\x50\x0d\x7f\xd1\x5b\x8d\xad\x97\x8d\xb5\x84\ \xbd\x1c\x82\xaf\x10\xe4\xaf\xe3\x38\xaa\x66\xe3\x02\x6d\xb5\x4a\ \x6a\x53\x2a\x65\x7b\xb0\x9e\x31\xdb\xe6\xb5\xc6\xb4\x2b\xad\x37\ \xf3\x31\x55\xc2\x38\x6a\xf5\x5d\xa7\xd4\xfd\x2d\xa8\x63\xdc\xe3\ \x21\x68\x71\x2a\xdc\x32\x30\x73\x9a\x92\xb6\xad\xc2\xb9\x17\xf4\ \x56\xd6\x2e\x4b\xb0\x43\x87\x29\xf5\x19\x2c\x0f\x0d\x40\x9e\xe0\ \x76\x3f\x95\x75\x6d\xaa\x40\x75\x94\x9c\xe7\x22\x9f\x86\xa8\xe7\ \x16\xa5\xba\x30\xb4\xe2\xdc\x58\xbe\x8a\x28\xa7\x80\x51\x45\x14\ \x00\x51\x45\x14\x00\x51\x45\x14\x00\x51\x45\x14\x00\x51\x45\x14\ \x01\xc4\x50\xbf\xdf\x93\xa8\xbf\xf4\xd4\x9f\xfc\x43\xb5\x7d\xfe\ \x8a\x72\xb7\xe9\x1d\x41\x01\x6a\xfd\xac\x4d\x41\x24\xed\x3e\x88\ \x71\x28\x71\x27\xf1\xdc\x7f\x23\x54\x24\x2f\xf7\xe4\xea\x2f\xfd\ \x35\x27\xff\x00\x10\xed\x4d\xf4\x06\xa3\x97\xa1\x75\x74\x9b\xdb\ \x11\x9c\x9b\x6d\xb8\x32\x96\xee\x71\x1b\x50\x0e\x12\x8c\xec\x75\ \xbc\xe0\x15\x00\x48\x29\x24\x64\x1e\xf9\x15\xe6\x69\xe2\xa1\x43\ \xa4\xa7\x9d\xd9\x3f\xc1\xe7\x70\xb5\x55\x2a\xf9\x9e\xda\x89\xcc\ \x77\x93\xd5\x8d\x2b\x01\x39\xf1\x91\xa9\x5b\x2a\x4f\xf7\x5b\xde\ \x55\xf9\x62\xad\x5d\x66\xfa\x15\xfa\x4c\xe8\x18\xe3\x1b\x9b\xb6\ \xdc\x14\xae\x7f\xb4\xdf\xff\x00\xf3\x4e\x70\xa1\x68\x79\x85\x8e\ \xb0\xdb\xa1\x4b\x9c\xe2\xa2\xa9\xd8\xde\x18\x3e\x5d\xfe\x55\xa8\ \x37\xc0\x0b\x3c\x85\x13\xd8\x66\xaa\x6b\x9e\xa2\xb8\xbf\xd4\xd8\ \x3a\xe5\x09\x42\x66\x41\x75\x61\x31\x9c\xc9\x42\x99\x5a\x3c\x35\ \x37\x9e\xe0\xed\xc6\x15\xee\x33\x83\xda\x9f\x1a\x94\xfa\x36\x30\ \xa5\x51\xee\xef\xf0\x34\xe9\x86\x8a\x4d\xde\xed\x3f\x80\xbf\xaa\ \xff\x00\xef\x85\x76\xff\x00\xe6\x27\xff\x00\xc1\x35\x7c\xe8\xaf\ \xfd\xcd\xb2\x7f\xd1\xf1\xff\x00\xee\xd3\x54\x46\xba\xd5\x16\xed\ \x4a\xb4\xc9\x63\x4e\xc6\xb7\xcd\x5a\x92\xb9\x12\x42\xc2\xdc\x73\ \x09\xc0\x4e\xed\xa0\xed\x1f\xe1\xda\xaf\x7d\x15\xff\x00\xb9\xb6\ \x4f\xfa\x3e\x3f\xfd\xda\x69\x7d\x14\xe1\x2c\x5d\x59\x42\x57\x4f\ \x5f\x9b\x1b\x83\x71\x75\xa6\xe2\xee\x98\xef\x45\x14\x57\xa3\x3a\ \x81\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\ \x01\x45\x14\x50\x01\x45\x14\x50\x01\x58\xb8\xa0\x91\x9a\xc8\x9c\ \x0c\xd3\x5d\xde\x62\x58\x69\x44\x9a\x00\x43\xa9\x6f\x71\xad\x90\ \x5e\x93\x25\xf4\x32\xd3\x48\x2a\x5a\xd4\x70\x12\x07\xad\x70\xef\ \x5f\xfa\xd5\x37\x53\x5c\xdd\xb4\xd9\xde\x5b\x76\xd6\xd7\x81\xb4\ \xff\x00\x5a\x7d\xcf\xbf\xf8\x54\x8b\xf4\xbb\xea\x7b\xcf\xcb\xfe\ \x89\x5a\x65\x1d\x88\x39\x98\xa4\x1f\xde\xfe\xc9\xf8\x1f\xcc\xfc\ \x57\x2d\x38\xe1\x5e\x48\x59\x28\x07\xef\x9e\xea\x3f\xe5\x4a\x6d\ \xcb\x51\x94\xd2\x5d\x66\x2e\x9d\x25\x4e\xba\xb4\xa9\xce\xff\x00\ \xd6\x63\x93\xf4\xa4\x65\xe2\xf1\x11\xd8\x18\x1c\xef\x56\x71\x91\ \xf2\x7d\xbf\x9d\x27\x2a\x5b\x9e\x44\x79\x53\xeb\x4a\xed\xd1\x5f\ \x98\xfb\x50\xe1\xb2\xe3\xae\xba\xb0\x94\xa1\x09\xdc\xa5\xab\xe9\ \x51\x95\x41\x5d\x8d\x52\x95\x59\x59\x7a\xee\x1d\x60\xb8\x86\x98\ \x53\x49\x71\x61\xa3\x80\xa0\x84\xf9\xdd\x3e\x80\x7b\x7b\x01\x5d\ \x1d\xd1\x7e\x8c\x49\x75\x11\xb5\x0e\xb5\x8e\x94\x24\x25\x2a\x85\ \x68\x71\x3e\x54\x27\xba\x4b\xa3\xf8\xec\xfc\x4d\x3b\xf4\x1f\xa3\ \x90\xb4\xc4\x78\xb7\xdd\x47\x19\x32\xef\x65\x21\xc6\x18\x58\x05\ \x11\x09\xf5\xc7\xef\x2f\xe4\xf6\xf4\xab\xb1\x5b\xce\xe5\xac\xa8\ \x1c\xe4\x93\xeb\x5c\xba\xb5\x54\xde\x9b\x1d\x88\x5e\x94\x72\xad\ \xff\x00\x83\xd8\xed\x04\x27\x03\x69\x38\xc7\x09\x09\x48\x00\x60\ \x00\x3d\x00\xa5\x71\xd8\x0b\xe3\x97\x08\xe0\xe0\x7f\x0c\xd6\x29\ \x42\x36\x6f\x70\x1c\x1c\x61\x03\xbf\xe3\x4b\x59\x5c\x82\x9d\xad\ \xa0\x32\x9f\xe3\x55\x8a\x11\x26\x2a\x62\x02\x8a\x7c\xe9\x43\x69\ \xfe\x35\xea\x9b\x82\x8e\x14\xe0\x51\xad\x68\x61\xc7\x55\xe6\x5a\ \x96\x47\xb9\xed\x5b\x5b\x80\x08\xc9\xc1\x1d\xfb\xd3\x92\xec\x42\ \x76\xdd\x98\x20\x42\xc7\x2b\x03\xf0\xcd\x6a\x75\x8b\x7a\xff\x00\ \xe1\x07\xce\x07\xf1\xa7\x06\xe3\x36\x8c\x27\x18\xc7\x7c\xf7\xac\ \x84\x66\x72\x41\x03\x8f\x8c\x54\xb8\xb6\x82\xe3\x42\x99\x86\x01\ \x01\xdc\xfb\xf3\x5a\x5d\x6d\xa2\x0e\xd1\xba\x9e\xdc\x8b\x1b\x61\ \x3e\x51\x8e\x7b\xd2\x65\x47\x61\x00\xed\x52\x47\xe3\x4b\x94\x4b\ \x29\x0c\xcb\x65\xac\x02\xa6\x17\x9f\x42\x38\xa4\xab\x8e\x82\xbd\ \xac\xad\x48\x57\x38\x0b\xe2\x9f\xd6\xc3\x7d\x82\xc2\x49\xe7\x93\ \x9a\x45\x2e\x39\xd8\x72\x90\xa0\x79\xc6\x29\x72\x80\xc5\x21\x96\ \x43\x44\x20\xb6\xea\x76\xa8\x8c\x13\x8e\x08\xaa\xbb\xab\x3d\x35\ \xb5\x6a\x48\x0f\xb8\xd3\x49\x8b\x3d\x00\x29\x0a\x1c\x03\x8f\xa5\ \x5b\x2a\x52\x9a\x05\xb2\x0a\xdb\xfe\xca\x8f\x3f\x81\xa4\x17\x08\ \xe8\x75\x1e\x4e\x47\x3b\x4f\xaa\x7e\x0d\x21\xe8\xf4\x1a\x9b\x5b\ \x1c\xc1\xd1\xb7\x17\xa5\xf5\x93\xb6\x7b\x92\x8c\x79\x28\x21\x0d\ \xa9\x47\x09\x74\x64\x91\xf8\xd7\x6c\xe8\x8b\x88\x93\x05\xa3\xbb\ \x9c\x73\x5c\xa7\xd7\x8d\x28\xb9\x50\x13\x77\x84\x16\x89\x71\x32\ \x49\x47\x7c\x03\xc6\x7d\xf1\xcd\x4d\xbf\x45\xce\xa0\xbf\x7d\xb4\ \x88\x97\x27\xf3\x3a\x2e\x10\xe1\x3d\xd6\x3d\x15\x5d\x2c\x35\x48\ \xc3\xaf\xdb\xb9\xc9\xc5\xd3\xb4\xb3\x9d\x4c\x85\x65\x35\x95\x22\ \xb7\xc8\x0e\xb4\x08\x39\xc8\xa5\xb5\xd2\x33\x05\x14\x51\x40\x05\ \x14\x51\x40\x05\x14\x51\x40\x05\x14\x51\x40\x05\x14\x51\x40\x1c\ \x4b\x19\xb5\xb7\xd6\x6e\xa2\x25\xc4\x29\x04\xde\x64\x28\x05\x0c\ \x70\x5f\x74\x83\xf8\x82\x0f\xe3\x52\x2a\xe9\x7b\xbe\x88\xd2\xb7\ \x6b\xda\xaf\x57\x0b\x2b\x0f\x5c\x16\xda\x5a\x5b\xdb\x94\x92\xb4\ \xa7\x3b\x42\x80\x20\x2b\x19\xee\x73\xc7\x14\xba\x06\x9e\xb1\x41\ \xc7\xd8\xec\xf0\x19\x23\xf7\x92\xc2\x77\x7e\x78\xcd\x79\xcc\x5f\ \x42\xd4\xc4\x57\x95\x4c\xc9\x26\x71\xff\x00\x4c\x9b\x93\xeb\x68\ \x50\x9d\x2d\xbc\xea\xbd\x2d\x09\x76\xcd\x3f\x09\xeb\x8d\xad\x6e\ \xad\xd6\xe2\x2e\x32\xdc\x0c\x29\x44\x95\x06\xd4\x9c\x10\x92\xa3\ \x9c\x1c\x8c\x93\x8c\x66\xb7\x9d\x0b\xac\xef\x13\xdf\x9a\xab\x2a\ \x98\x32\x1d\x53\x8b\xf1\x16\x96\xc2\x4a\x89\x27\x85\x1c\xe3\x9a\ \xe8\x7c\x51\x5a\x5f\x43\xf1\x22\xa3\x5a\xab\x92\x5e\x0b\xee\x68\ \x58\x04\xe2\xa3\x39\x36\x91\x4a\x59\xfa\x41\x77\x72\x43\x6a\xba\ \xcf\x88\xc3\x19\x05\xc4\xb2\xa2\xb7\x31\xea\x06\x40\x00\xfc\xf3\ \x57\x3c\x56\x1a\x8b\x19\xa8\xcc\x20\x21\xa6\x90\x10\x84\x8f\x44\ \x81\x80\x2b\x65\x15\xbb\x09\x81\xa3\x84\x4f\x86\xb7\x34\xd1\xc3\ \xc2\x8f\xba\x14\x51\x45\x6c\x1e\x14\x51\x45\x00\x14\x51\x45\x00\ \x14\x51\x45\x00\x14\x51\x45\x00\x14\x51\x45\x00\x14\x51\x41\xed\ \x40\x1a\x64\xb8\x10\x82\x73\x54\xe7\x5e\xb5\xba\x74\xbe\x91\x9d\ \x3d\x0b\x1f\x68\xdb\xe1\xc7\x4f\xbb\x87\xb7\xe5\xdf\xf0\xab\x3e\ \xff\x00\x28\x33\x1d\x64\x9e\xc2\xb8\x63\xf4\xc3\xd6\x4b\x99\x7e\ \x6a\xc6\xc2\xce\xd8\x83\x2b\x19\xe0\xad\x5c\xff\x00\x01\x8a\x5d\ \x57\xb4\x49\x8c\x73\x4a\xcc\xa1\xaf\xf7\x17\xee\x57\x07\xdf\x7d\ \xd5\x2d\x6e\x28\xad\xe5\xa9\x59\x2a\x24\xe7\x14\xd5\xcb\x87\xbe\ \xd4\x0f\x5a\xcf\x03\x1e\x62\x08\x1c\xa8\xfb\x9a\x5f\x68\xb4\x4d\ \xba\x5d\x22\xdb\xd8\x6c\x87\x1f\x52\x52\x06\x39\x4a\x54\x47\x9b\ \x1f\x43\x9a\x9b\xa8\xab\xb2\xee\xf3\x7a\x1a\xad\x30\x24\xdc\xe7\ \x35\x02\x0b\x0b\x79\xe7\x94\x12\x86\xd0\x39\x51\xae\xbb\xe8\x2f\ \x4c\x2d\xda\x46\x0b\x77\x6b\x93\x2d\xc9\xbe\x38\x8c\xee\x23\x72\ \x63\x02\x3b\x27\xe7\xe6\xab\x7e\x94\x69\x64\xdb\x2e\x69\xf0\xda\ \x58\x25\xe2\xca\x1f\x18\x25\x48\xc9\x19\xcf\xf7\xb1\xc9\x1e\x99\ \xc5\x74\xbd\x81\x29\x6d\x01\xa0\x41\x09\x01\x28\x00\x76\x03\xd3\ \xe6\xb8\xf8\xac\x43\xa9\x53\x22\xd9\x1d\xbc\x3d\x0e\x05\x2c\xdf\ \xe4\xfc\x90\xe9\x17\x7b\x7e\x6f\xde\x23\x72\xb3\xef\x4a\xdb\xdc\ \xa3\xb8\x8e\x7d\x0f\xb5\x68\x27\x19\xdd\xd8\x9e\x00\xf5\xa5\x31\ \xb0\x52\x37\x77\xec\x71\x54\x48\xab\x62\x96\x93\x80\x0a\xb3\xf8\ \x73\x4a\xd9\x51\x24\x81\x80\x33\xdc\xd6\x90\xe2\x11\x8c\x10\x93\ \x8c\x01\x58\x3f\x71\x83\x17\xc8\xe3\xa9\x2b\x03\x24\x67\xb7\xd6\ \x98\xa2\x29\xdf\xb0\x71\x68\xa9\x59\x05\xc5\x76\xe7\x06\xb7\x15\ \x38\x94\xf0\xb7\x30\x3d\xd5\x4c\xc9\xbd\xc6\x43\x49\x77\x7a\x58\ \x4a\xf2\x12\x56\xa4\xa7\x77\xd3\x3e\x9f\x35\x9b\x77\x48\x4f\x63\ \xc2\xb8\x47\x77\x71\xc1\x28\x90\x0f\x3e\xdc\x1e\x7e\x95\x74\x43\ \x84\xbb\x07\x15\x2d\x47\x95\x1c\x8f\x92\x6b\x15\x2c\x2b\x92\x47\ \xe3\x5a\x54\xb5\x1e\x12\xb5\x29\x20\x8f\x29\xf4\xf9\xad\x98\xe3\ \xb8\x3e\xf8\xa9\xd4\x8b\x02\x9b\x4a\xb9\x3c\x67\x8c\x56\xa2\x10\ \x14\x46\x33\x8a\xcc\xa4\x02\x40\x04\x7f\x8d\x01\x04\x05\x64\x10\ \x31\xeb\xcd\x55\xa2\xcb\x43\x4a\x92\x7b\x14\x12\x0f\x6e\x2b\x5b\ \x9e\x22\x06\x52\x4a\x7e\x94\x92\xf7\x72\x8b\x05\x4d\xb2\xe3\xe8\ \xf1\x94\x37\x10\x55\xf7\x52\x06\x49\x3e\xc3\xe6\xab\xfb\xc7\x5a\ \x34\x55\xba\x77\xd8\x8d\xee\x33\xae\x83\x8d\xcd\xab\x2d\x9c\x77\ \xe7\xb1\x3f\x4c\xd2\x65\x24\x98\xd8\xd3\x94\xb6\x44\xf9\xf5\x13\ \xe5\x71\x00\xfc\x8a\x6f\x79\x18\x3b\x90\xa3\xf2\x3d\xe9\xb6\x26\ \xb5\xb2\x4e\x4b\x65\xb9\x0d\xa9\x2e\x63\x0b\x6d\xc0\xe2\x4e\x7b\ \x64\xa7\xb1\xfa\xd3\xa9\x53\x4b\x48\x52\x16\x30\xa1\xc0\x1e\xbe\ \xd4\xa7\x69\x6c\x5d\xc6\x51\xdd\x0c\x77\xc8\x2d\xca\x8a\xe2\x1c\ \x40\x29\x5a\x70\x7d\xf9\xae\x6c\x4c\xf9\x3d\x2e\xea\x4b\xae\xad\ \x0b\x30\x5e\x7b\x7a\xb6\x76\x29\x27\x9f\xc7\x06\xba\x8d\xf0\x52\ \xe8\x41\xfb\xa7\x3c\xd5\x1f\xd7\xdb\x2b\x52\x65\xc6\x75\x4d\x05\ \x78\x8a\x28\x73\x9f\xbb\xc7\x7f\xaf\x22\x99\x4e\xa6\x4d\xf6\x17\ \x2a\x0a\xad\xe2\xce\xa4\xd0\x37\xe8\xf7\x2b\x73\x0f\x32\xf2\x5c\ \x6d\xc4\x05\xa1\x60\xf0\xa4\x91\x90\x6a\x72\xca\xb7\x24\x57\x24\ \x7e\x8b\x5a\xad\xdf\xd4\xe2\xc3\x35\x64\x49\xb6\xaf\xc1\x04\xf1\ \xbd\xb2\x72\x93\x8f\xe1\x5d\x51\x68\x90\x1e\x61\x24\x1f\x4a\xec\ \xe1\xe6\xe5\x1b\x3d\xd1\xc2\xb3\x8b\x71\x63\x95\x14\x51\x4e\x24\ \x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xad\x52\xe4\xb1\x12\x33\x92\ \x64\xba\x96\x99\x6c\x65\x6b\x51\xe0\x0a\xac\x75\x96\xbb\xbe\x39\ \x6f\x79\xeb\x23\x48\xb6\x43\x1c\x22\x64\x84\x6e\x5b\x9f\x29\x49\ \xe0\x7e\x39\xab\xd3\xa7\x2a\x8e\xc8\x55\x5a\xd1\xa4\xaf\x22\xd3\ \xa2\xb9\xd7\x4f\x1d\x59\x76\x2e\x4a\x9b\xac\x2f\xc1\xb0\x09\xcb\ \x52\xd4\xd0\x3f\x20\x0e\x31\x4d\x37\x39\xda\xa1\x89\x6b\x42\x35\ \x56\xa4\xf0\xd2\x78\x3f\xac\x9c\xc9\x1f\x9d\x69\xf6\x29\xf6\x99\ \x3d\xbd\x7f\xa9\xd4\x14\x57\x34\xe9\xd9\xf7\xa9\x97\x86\x58\x91\ \xac\x35\x12\x59\x2a\xc1\x3f\xac\x5c\xe7\xdf\xd6\xae\xd8\x9a\x79\ \x2a\x88\x87\x06\xa3\xd4\x0a\x04\x72\x4c\xdc\xff\x00\x85\x2e\xae\ \x1e\x54\xd2\x6c\x75\x2c\x57\x11\xb4\x91\x29\xa2\xaa\x8b\x83\x53\ \x44\xf7\x3c\x2d\x49\x7d\x4b\x69\x38\xc0\x98\xaa\x7e\xd2\xf6\x49\ \x92\x62\x97\xe4\xea\x1b\xea\x82\xbe\xee\x66\x1f\xf1\x15\x33\xc3\ \x4a\x11\xcc\xd9\x58\x62\xf3\xcb\x2a\x44\xe6\x8a\x80\x6a\x06\x1c\ \x88\x97\x16\xdd\xf6\xf4\x94\xa0\x77\xfb\x59\xff\x00\x2a\xae\x9e\ \xbb\x5e\xfe\xd2\x42\x75\x25\xe4\x05\x13\x8f\xf6\xd5\xe3\xf9\xd5\ \xa1\x83\x9c\x95\xc8\x96\x36\x31\x76\xb1\xd0\x94\x55\x61\xa5\xde\ \x97\x2e\x33\x6b\x7e\xf7\x76\x52\x87\x0a\xff\x00\x6a\x3c\xfe\x75\ \x2c\x9b\x68\x71\x50\x8b\xac\xde\x2e\xc1\x5b\x72\x31\x2b\xff\x00\ \x2a\x5c\xf0\xf2\x83\x49\xf3\x2f\x0c\x4a\x9a\x6d\x2d\x89\x1d\x15\ \x59\xe6\xe2\x87\x0a\x55\x79\xba\x1d\xa7\x9f\xf6\xa5\x76\xa9\x6d\ \xb6\x1f\xda\x21\x87\x8d\xd2\xe3\x9c\x73\xfe\xd1\xff\x00\x95\x4d\ \x5c\x34\xa9\xab\xb0\xa5\x8a\x55\x1d\x92\x1f\xe8\xaa\xa3\x53\xdd\ \x27\x31\x70\x5a\x62\x5d\x2e\x49\x43\x67\x07\x32\x54\x3f\x95\x37\ \x45\xbb\x5d\x5e\x20\xae\xf5\x71\x47\xc7\xda\x57\xcf\xf1\xa6\x2c\ \x14\xda\x16\xf1\xd1\x4f\x62\xe8\xa2\xab\x58\xf3\xe4\x48\x8b\xe1\ \xa6\xef\x3c\x3a\x07\x72\xfa\xbb\xfe\x74\xa7\x4a\x1b\xdc\x9b\x83\ \x8c\xc9\x9f\x2c\xb4\x93\xc1\x2f\xa8\xff\x00\x3a\x89\x60\xe5\x15\ \x76\xc9\x8e\x32\x32\x76\x48\xb0\x68\xa4\x29\x85\xb5\x24\xaa\x64\ \xb3\xf3\xe2\x9a\x4d\x38\x21\xa8\xee\x2d\x13\xa4\x05\x01\xdb\xc5\ \xac\xf1\x83\x93\xb2\x34\xca\x79\x55\xd8\xef\x45\x42\xdd\xb9\xbc\ \xc3\x1e\x22\xe5\xc8\x23\x1f\xfc\x43\x4d\x92\x6f\xb7\x42\x3f\x64\ \xf3\xa0\x13\x80\x4b\x87\xfc\xeb\x4f\xb1\x4c\xcd\xed\xb0\xec\x2c\ \x7a\xc5\xc3\x84\x13\x50\x2b\x55\xfa\x73\x8b\xf0\xdf\x79\xcd\xde\ \x87\x79\xff\x00\x3a\x58\xfd\xe5\xf6\x9a\x59\x71\xd7\x31\x8e\x3c\ \xc6\x8f\x62\x99\x2b\x1b\x06\x27\xd7\x92\xd4\xdc\x45\x84\x9e\x4f\ \x15\xf3\x6b\xab\xd7\x73\x7a\xd7\xd7\x69\x7b\xf7\x03\x21\x49\x4a\ \xbb\x8d\xa0\xe3\x3f\xca\xba\xf7\xaf\x9a\xe5\xdb\x56\x91\xb9\x4b\ \x4c\x85\x25\xdf\x0c\xb2\xc8\xdc\x72\x5c\x5f\x03\xd7\xd0\x64\xfe\ \x15\xc3\xaf\x87\x97\x20\x4b\xdb\xbd\x0f\xa8\x80\x49\xc8\xcf\xa8\ \x3f\x35\x8e\xad\x2c\x95\x1b\x6c\xd3\x42\xa7\x11\x36\x8c\x18\x52\ \x1b\x21\xc5\x24\x2b\x61\xc2\x10\x7b\x13\xee\x6a\x61\xa1\xae\x2c\ \x5a\x1c\x17\x45\xbb\x99\x8f\x3d\xb5\x2b\x03\x2a\x4b\x7f\xbe\xad\ \xa7\x83\x9c\xf0\x3d\x93\xf3\x51\x34\xb6\xcb\xee\x14\xa1\xf4\x32\ \x94\x8e\x03\xb9\x1f\x91\xff\x00\x3a\xc9\x69\x58\x90\x19\x6d\x7e\ \x65\x00\x84\xed\x3b\x89\xf4\xc0\xc7\x72\x69\x53\x8e\x65\x63\x4d\ \x39\xe4\x95\xce\x83\xe9\xee\xa8\xb6\xb8\xd4\xdb\xf5\xc2\x5a\x21\ \x5a\xad\x8a\x6e\x34\x72\xf2\x82\x40\x51\xc8\x03\x8f\xbc\x48\xce\ \x71\xee\x6a\xc4\xb1\xf5\x8b\xa6\x71\x62\xa9\x52\xf5\x8c\x64\x3a\ \x15\xb4\x6c\x8c\xf2\xbc\xb8\xf8\x4f\xd6\xb9\xf3\xa9\x5a\x7d\xfb\ \x1f\x49\xed\x4c\xc8\x88\x62\xbe\x2e\x29\x53\xac\xf7\x53\x41\x4d\ \x28\xa4\x2c\xff\x00\x68\xe1\x5c\x7a\x57\x48\x69\x1d\x29\xa6\x62\ \x74\x6b\x4e\x6a\x18\xbd\x28\xd1\xd3\xdf\x7e\xd5\x1d\xc5\xbd\x36\ \x0f\x8c\x5c\x5a\xb0\x92\xb5\x12\x73\xc9\xe4\xfd\x6b\x9b\x43\x0b\ \x4e\xbd\xea\xa7\xa5\xdf\x91\xd5\xaf\x8a\x94\x1a\xa7\x65\xcb\xcc\ \xcd\x5d\x79\xe9\x0a\x48\x49\xd5\xce\x10\x3d\x45\xb6\x41\xff\x00\ \xfc\x2b\x79\xeb\xff\x00\x48\x1b\x69\x45\xad\x58\xb5\xab\x19\x03\ \xf5\x74\x80\x4e\x3e\xa8\xa5\x6b\xd3\x37\x35\x46\x2f\xda\xf4\x27\ \x4d\x59\x69\x20\x95\x3c\x34\xe3\x4d\x47\x4e\x3f\xe3\x5c\xe0\xfe\ \x15\x86\x97\xd0\xda\x9f\x53\x3b\x23\x68\xe8\xaa\x9b\x8a\x52\x99\ \x28\x89\x61\x6a\x62\x9a\x2a\xe4\x05\x10\x84\xa7\x3c\x1e\xc4\xd3\ \x61\x4a\x93\xf7\x5b\x7e\xbc\x05\xca\x53\x4a\xf2\xb2\x21\xd3\xfa\ \xf5\xa6\xee\x61\x5f\x65\xbc\x46\x8c\x8e\x4b\x2d\xa9\x45\x0a\x20\ \x76\xdc\x48\xc0\xcf\xe3\x50\xcd\x4d\xd6\x18\xec\xc4\x6a\x05\xaf\ \xec\xf2\x64\x2d\xb2\xe2\x9d\x66\x56\x52\xda\x8f\x60\x55\xce\x4f\ \xae\x33\xf9\x57\x4c\xb5\xd0\x2d\x2c\xfc\x4f\xff\x00\x54\xb5\x69\ \x29\x2f\x9e\xea\x8d\xa6\x58\x61\x39\xfa\x24\xe7\xf8\xd4\x23\x58\ \xfe\x8d\xbd\x3d\x5b\x6e\x97\x63\xdb\xad\xce\xf0\x12\xe2\x61\x48\ \x61\xbc\xfc\x14\xbc\xa4\xe7\xf0\xa1\x61\x23\x7b\xca\xfe\x45\xbd\ \xbe\xcb\x2c\x2d\xf0\xbf\xd4\xe5\xe8\x53\xb5\x05\xea\x43\x92\x25\ \xdd\xe6\xbc\xf3\xca\x09\x05\x2a\x5b\x99\x04\xf3\x84\x0e\x00\xfe\ \x35\x25\xd2\x36\x1b\xba\x56\xb5\xe9\xe7\xe7\xb5\x21\x0a\x53\xae\ \x34\x14\x42\xde\x4a\x78\x56\x10\x7b\xfd\x47\x20\xf7\x15\x36\x97\ \xfa\x39\x39\x6e\x7c\x48\xd2\xba\xb9\xb4\x38\x9f\x30\x4c\x5b\xb8\ \x6d\x60\xfc\x25\xc4\xa7\x3f\xf6\xab\x28\xed\xf5\x8f\x42\x38\x5d\ \x9a\x21\xdf\xdb\x53\x9b\xdb\x17\x38\x25\x2e\x03\xee\xdb\xec\x92\ \x77\x1e\x7b\x92\x3e\x2a\xb3\x84\x6f\xd5\x92\xfe\x0d\x74\x71\x6d\ \x25\x78\xb6\xfe\x7f\x92\xe6\xe8\xfb\xd7\x35\xd8\x76\xc8\x9a\xf4\ \xa6\xd2\x94\xad\x92\xf8\xc2\xdb\x1f\xbc\x09\x3d\xfb\x76\xf7\xc1\ \xf5\xa9\xf4\x37\x1a\x70\x16\xf2\x0a\x81\xc0\xf9\xaa\x3f\x44\xf5\ \xb7\x4a\x39\x31\xb6\x75\x3c\x59\xfa\x3e\x72\xbf\x64\xf3\xd2\x71\ \x22\x13\x85\x59\x00\x17\x50\x3c\x8a\xcf\x3e\x64\x8e\xc3\x35\x7a\ \xe9\x8f\xb2\xcc\xb6\x36\xfc\x07\xa3\x4d\x88\xb4\xe5\xa7\xe2\xba\ \x97\x5a\x23\xe1\x49\x24\x1a\xbc\x69\xb8\xa4\x99\x92\xb5\x45\x29\ \x39\x02\xdb\x59\xce\xd1\xc8\x1c\x83\xed\x5e\x38\x48\x8e\xa2\x91\ \xc2\x47\x62\x29\x7c\xb8\xae\x82\x0b\x0d\x93\xc7\x24\x72\x0f\xc0\ \xa6\x1b\xbc\xb6\xed\x30\x5f\x99\x73\x95\x1a\x04\x56\xbc\xcf\x3f\ \x2d\xd4\xb4\xda\x47\xae\x54\xa3\x81\x55\x9a\x48\x5c\x7a\xc5\x2b\ \xd6\x48\xb3\xee\x57\x93\x01\x85\xb8\xd4\x79\x6e\x62\x5b\xc9\x57\ \x99\x2d\x80\x30\x81\xf3\xef\xf5\xaa\xa6\xf3\xa6\xa2\xdb\x52\xe3\ \x51\xa0\x82\x86\xc3\x69\xf1\xc8\x1b\x54\x95\x03\xfb\x20\x7b\x93\ \x8e\x0e\x31\xeb\x93\x56\x4e\xb2\xeb\x66\x96\xfd\x64\xe4\x0d\x11\ \xa6\xae\x1a\xe6\xe4\xae\x10\xa6\x5b\x53\x51\x73\x93\x92\x9e\x0a\ \xdc\xfa\x80\x07\xcd\x56\xda\x9a\x47\x5c\x75\x5a\xcb\xb2\x20\xc4\ \xd3\xb1\x54\x42\x44\x3b\x7b\x68\x43\x89\xc7\x6c\xf2\xa7\x01\xe7\ \xd4\x8f\xa5\x27\x84\xe3\xab\x69\x78\x9d\x18\xe2\x22\xe2\xa2\xe0\ \xdf\xaf\x91\x00\x4d\xd6\x7e\x95\xbb\xae\x65\x86\x6a\xad\xab\x25\ \x47\xec\xce\x85\x2d\x97\x92\x48\xf2\xa9\x38\xc0\x3e\xb9\xf8\xe2\ \xac\xad\x17\xd6\x70\x63\xa8\xca\x97\x1a\x0a\x59\x29\x21\x97\xdf\ \xc2\x82\xbd\x52\x09\xfb\xc8\xf9\xef\xfe\x30\xe1\xd1\x4d\x5b\x31\ \xc3\x22\xe5\x32\x03\x2a\x51\xca\x97\x36\x7e\xe5\xe7\xe4\x24\x13\ \x4d\xd7\x6e\x99\xc2\xb4\x83\xf6\xfd\x5b\xa7\x99\x50\x24\x63\xc1\ \x90\xb1\xc7\xb1\x08\xe6\xaf\x25\x86\xa8\xac\xe5\xaf\x70\x88\xfb\ \x4c\x64\xf2\xc2\xf1\xec\x7a\x9d\x33\x03\xab\x5d\x3d\x9f\x01\x0e\ \x3f\xab\xad\x31\x5f\x48\x01\xc6\xde\x7b\x18\x38\xf4\x20\x1c\xd4\ \x27\xaa\x3a\xdb\x44\x4c\x99\x05\xcb\x76\xa7\xb4\xcf\x57\x8f\xe7\ \x4b\x6e\xe7\xcb\x82\x08\x39\x1d\x8f\x6c\xfc\xd5\x02\xde\x9a\x88\ \xe6\x1b\x85\x7f\xd2\xb3\xca\xd5\x81\xb5\xe5\x34\xbf\xa6\x1c\x48\ \xa5\x12\xf4\x5b\xb1\x54\x10\xf2\xa2\x30\xe9\x4e\x76\x3c\xd2\xdb\ \x03\xe8\xbc\x14\xfe\x39\xab\xc7\x07\x4e\x6f\xde\x66\x7f\x68\x9c\ \x75\xd1\x5f\xc7\x99\x2f\xe9\xee\xa9\x66\xc1\xd4\x86\x1c\x72\x73\ \x02\x33\xf9\x61\xe7\x3c\x51\x82\x41\xf2\xab\xfc\x3f\x1a\xee\x1d\ \x01\xa8\x63\xce\x82\xd2\x9a\x90\xd3\xc9\x20\x79\x9b\x58\x50\xfc\ \xc5\x7c\xd5\x99\x62\x79\xb5\x3e\x9f\x0c\x78\x91\xd0\x97\x57\xb5\ \x5b\xb0\x82\x42\x42\x81\x1e\x9b\x88\x1f\x88\xab\x07\xf4\x69\x9d\ \x76\x67\x5f\xc8\x86\x8b\xbc\xf8\xd1\xd5\x05\xc5\xac\x32\xfa\x93\ \x9c\x14\xe3\xf8\xd6\xa7\x18\xc1\xe7\x83\xd0\xe6\xe2\x61\x38\xa7\ \x37\xc8\xfa\x4e\xc3\x81\x69\x04\x73\x5b\x6a\x9c\xd3\x91\xe5\x49\ \x8c\x8c\xea\x5b\xf8\x3f\x13\x8f\xf9\x54\xda\x0e\x9e\x5b\xd1\xd2\ \xe2\xb5\x0e\xa2\xce\x39\xc4\xdf\x5f\xca\xb7\xca\x8b\x8c\x54\xbb\ \x4c\x14\xf1\x3c\x47\x64\x89\x6d\x15\x54\xdd\xed\x57\x25\x5c\xd6\ \xc4\x2d\x4d\xa9\x0e\x0f\x00\x4f\x56\x0f\xe5\x4a\x22\xe9\x1b\xf3\ \xa8\x0a\x5e\xaa\xd4\x88\x2a\xec\x3f\x58\xab\xfc\xa9\x8f\x0a\xd2\ \xbb\x65\x16\x32\xee\xca\x2d\x96\x75\x15\x59\x4b\xd2\x17\xe6\xdb\ \xcb\x5a\xbb\x51\x9e\x7d\x6e\x0a\xed\x45\x0b\x0a\xde\xd2\x40\xf1\ \x8d\x6f\x06\x38\x5c\xae\x0c\x6a\x6d\x6e\xbb\x0a\x9c\x3f\xab\xed\ \x8a\x49\x90\x9c\xe0\x3c\xf7\x70\x9f\xa0\xff\x00\x3a\x70\xea\x0d\ \xae\x1c\xcb\x0a\xc3\xcd\xa5\x28\x64\x0c\x01\xc6\x38\xff\x00\xca\ \xa0\x7d\x38\x75\x4e\xbb\xfa\xc7\x0a\x2f\x4d\x92\xe3\xab\x23\xb9\ \xca\x8f\xf9\x54\xff\x00\xa8\x72\x54\xce\x9b\x75\x29\x04\xad\xc1\ \x80\x07\xae\x69\xd1\xa5\xc3\x9c\x2d\xcc\x44\x6a\xf1\x69\xcd\xcb\ \xd7\x61\x4d\x4a\xb9\x94\xb1\xf6\x68\x00\x25\xb1\x91\x90\x3b\xff\ \x00\xae\x29\xad\xc4\xb8\xf8\x52\x54\xf2\x89\x58\xed\x9e\xd5\x25\ \xb0\xe8\xc9\xd3\x50\x1d\x92\x4b\x49\x56\x49\x1d\x8d\x49\x5a\xd0\ \x30\x83\x61\x2a\x52\xc3\x87\x80\x73\xeb\xdf\xfc\x6b\x7b\x92\x5b\ \x98\xd4\x5b\xd8\xae\x2d\xd1\x56\xca\xd0\x5a\xc1\x5e\xf1\x91\xeb\ \xf3\x57\x93\x13\x1c\x85\xa5\x5a\x0f\x0f\xda\x94\x0e\xff\x00\xe3\ \x51\x3b\x46\x95\x8b\x6c\xbb\x89\x13\x1c\x2b\x6c\x72\x02\xbb\x8a\ \x76\xba\xca\x55\xc2\x50\x66\x33\x79\x69\x3c\x24\x01\xc7\xa1\xaa\ \x4e\x39\xda\x5c\x8b\xc2\x4e\x09\xbe\x7b\x09\x6d\xb1\x5c\x9d\x39\ \x29\x09\x27\x72\xc1\x51\x1d\xbf\xd7\x61\x53\x67\x9c\x6e\x14\x14\ \x30\xd8\x19\x09\xc7\xe5\xcd\x23\xb3\x47\x6a\xd9\x10\x3a\xf7\x2e\ \xa8\x6e\x38\xa6\xdd\x43\x73\x11\xd9\x5b\xce\x2b\xce\x7e\xe8\x3f\ \xeb\xe9\x48\x95\xea\xce\xdc\x90\xf8\x7e\xcc\x2f\xcd\x91\xcd\x67\ \x3b\x9f\xb3\x36\xac\x2b\x39\x5e\x2a\x22\x8b\x72\x9e\x06\x4e\x00\ \x09\x38\xa5\xcf\xac\xbc\xa5\xbe\xbc\x92\xbe\xc0\x0e\xde\xd4\xe7\ \x69\x0d\xa2\xd8\xa6\xca\x48\x52\xff\x00\xb5\x5a\xd1\x91\xea\x6b\ \xd3\xb3\x4c\x39\x6d\xef\x50\xf0\xd5\x81\x92\x7b\xfc\xd5\x9b\x68\ \x98\x14\x03\x2a\xe5\x04\x00\x2a\xa3\x42\x36\xad\x6d\xf2\x36\x92\ \x47\xc5\x4a\xf4\xa5\xd4\x2b\x11\x9c\xfb\xc3\xee\x92\x3b\x0a\x55\ \x6a\x6a\x71\xb0\xda\x35\x1c\x25\x71\xfb\x51\xdb\x8b\x2f\x2a\x53\ \x5f\x71\x5f\x7b\x15\xb3\x4d\x4c\xd8\x55\x15\x67\x85\x0c\x27\x26\ \x9c\x58\x7d\x32\x1a\x2c\x48\x39\x49\x1c\x1a\x61\xb9\x40\x72\x04\ \x8f\x19\xbc\xa9\xb1\xca\x7e\x94\x98\x3c\xf1\xe1\xcf\x71\xd3\x59\ \x25\xc4\x86\xc4\x7f\x54\x41\x72\x2d\xc1\xd5\x3a\x83\xb1\x67\x8c\ \xfe\x54\xdf\x15\x95\xa8\x61\xb6\x54\x46\x78\xe2\xa6\xaa\x90\xcd\ \xdf\xc3\x62\x42\x02\xd4\x93\xdc\x8a\x76\x8f\x06\x2b\x0d\x84\x86\ \x86\x3b\x76\xa6\xba\xb9\x12\xcc\xb5\x14\xa9\x67\x6d\xc5\xe8\x57\ \x2e\x27\x0a\x2a\xd8\xa6\xd5\xee\x46\x31\x53\x2e\x9d\xba\x56\xcb\ \x9b\xc8\x52\x87\xaf\xad\x3a\x49\xb7\x45\x90\x8c\x29\xa4\x80\x07\ \xa0\xa4\x76\x9b\x69\xb5\x4f\x53\x8c\x92\x50\xaf\x4c\xd2\xea\x55\ \x8d\x48\x35\xcc\x6d\x3a\x52\xa7\x35\x2e\x43\x9d\xfe\x42\xdb\x65\ \x2d\x20\x94\x95\x1f\x6a\x65\x53\x45\x63\x0a\x51\x27\xd4\x9f\x6a\ \x77\xbe\xa3\xc7\x61\x0e\xa3\x38\x4f\x71\x8a\x68\x79\xd0\xd4\x72\ \xe6\x4f\x94\x55\x70\xfa\x41\x58\x9c\x46\xb3\x77\x19\xef\x69\xd8\ \x50\xd0\x18\x4e\x79\xad\x0b\x18\x40\x4f\x6a\xf2\x53\xee\x4a\x90\ \x83\xb3\xcb\xef\x5b\x1e\x42\x8a\x02\xb9\xad\x88\xc6\xcd\x24\x61\ \xf6\xdc\xc1\x27\x38\xa5\x57\xa7\x52\x88\xa4\x9e\x4e\x31\x9a\xd0\ \xa6\x96\xe2\x40\x1c\x1e\x79\xf6\xa6\x9b\xcc\x97\x50\xd3\x8d\xad\ \x5b\x86\x3f\x2a\x3b\xc1\x1c\xc9\xfa\x59\x5c\x40\xb7\xc0\x88\x92\ \x37\x39\x21\xc7\x0f\xd1\x29\x03\xfc\x4d\x73\xf5\xa6\x73\xd6\xc7\ \x94\xbf\x05\xb9\x0c\xba\x8d\xae\x32\xe8\x3b\x56\x3d\xc1\x07\x29\ \x50\xee\x14\x39\x1f\x98\x36\xb7\xe9\x44\xfa\xdf\xd4\x90\x93\xce\ \x13\x18\xe3\x27\x8e\x56\xac\xff\x00\x85\x56\xf6\x6b\x63\x73\x90\ \xe9\x5b\xa1\x88\x8c\x00\x5e\x90\xae\x71\xf0\x91\xea\x49\xc0\x03\ \xdc\xd7\x9f\xad\x34\xdb\x6c\xee\xe0\xe2\xd5\x35\x61\xa9\x48\x53\ \xee\x2d\x6d\x78\xcb\x27\x24\xf8\x87\x25\x23\xdc\xab\xfc\x6b\xa0\ \xbf\x47\x6e\x9b\x08\x52\x60\x5f\xaf\xe9\x30\xe6\x4d\x4f\x8f\x6a\ \x74\x29\x0e\x61\xb0\x33\xb9\x23\x90\x95\xe7\xbe\x79\x03\x18\x1d\ \xea\x98\xb2\xfd\x9e\xe7\xa9\x20\xdb\x62\xb1\xe0\x41\x5c\x96\xfc\ \x64\xf7\x51\x40\x50\xce\x4f\xa9\xc6\x4e\x3d\xea\xea\x8f\xac\xda\ \xd1\x70\x0e\x54\x1e\x66\x14\x99\x0a\xb3\xb6\x71\x95\x87\x37\x24\ \x10\x3b\x8c\xa4\x83\xed\xd8\xf1\x58\x31\x75\x5a\xb4\x17\x33\xa3\ \x87\xa4\x9a\x73\xec\x1b\x3a\xfb\x0d\x85\xd8\xde\x8e\x2e\x6f\xcd\ \xb9\xc8\x9e\x97\x59\x65\xc0\x54\xea\x90\xda\x56\x16\xa3\x8c\x01\ \x9d\xd9\xc6\x2b\xa6\x3a\x57\x32\x72\x3f\x46\x3d\x11\x2e\xdb\x2b\ \x6d\xc9\xf8\x0d\xc2\x88\xe1\x20\x21\x95\x6e\x50\x53\x87\x3c\x1d\ \x88\x42\x95\x8f\x52\x90\x3d\x6b\x8a\x65\x5d\xa6\x4e\xb9\xbb\x73\ \x9c\xf1\x7a\x5b\xe7\xce\xbc\xf0\x91\xe8\x84\x7c\x0f\x7f\x53\xcd\ \x5e\x5f\xa2\x9e\xb9\xd4\x72\xaf\xb6\xde\x96\x48\x98\xda\xac\x66\ \x3d\xc1\xdb\x7b\x65\xa1\xe2\xb6\xe2\x99\x70\x86\xf7\x7a\xa4\x6e\ \x71\x40\x77\xe7\xd8\x0a\xa6\x0d\x3a\x34\xf8\x6f\x7f\xa9\xb3\x15\ \x85\x75\x12\xaa\xbe\x3e\x08\x8d\xeb\x4b\xf5\xe7\x51\xea\x65\x68\ \xab\x5c\xe9\x6b\xb4\xdb\x1d\x52\x56\x95\xbe\xa5\x97\x17\xb8\x95\ \x12\xa3\xfd\xe5\x12\x71\x8e\x49\xf8\xae\xa0\xfd\x16\xf4\x6c\x3d\ \x2d\xa6\xee\xa2\x3c\xc7\x25\x7d\xbd\xd6\x9c\x74\xab\x18\xdc\x94\ \x91\xc1\xc7\xb1\x19\x19\x3d\xbe\x6a\xa7\xe8\xc6\x86\x5c\x7b\xc5\ \xd2\xe7\x75\x28\x56\xfb\x83\xaa\x69\x18\xc1\x27\x71\xe4\xfb\xd7\ \x46\x58\xa5\xb7\x6c\x6d\xdd\x8c\xa5\x48\x59\x05\x5b\x4e\xdc\x60\ \x55\xa8\x54\xd5\xf6\x15\xc6\xc5\x65\xca\xb7\x26\x21\x09\x00\x24\ \x0c\x01\xd8\x0a\x61\xd7\x36\xbf\xd6\x76\x25\xc7\x0f\x25\x94\xa5\ \x5b\xca\x89\xf5\xec\x3f\x9d\x2d\xb5\xde\xed\xd7\x01\xfe\xcf\x21\ \x25\x49\x4e\x54\x92\x7e\xef\xbf\x34\xcb\xad\xf5\x7e\x9b\xb4\x5a\ \xc8\x9f\x72\x88\x43\x8e\x04\x14\x07\x02\x94\x38\x27\x38\x1f\x4a\ \xd9\x2b\x38\x9c\xc8\x29\x46\x6a\xcb\x52\xab\xba\xe8\x70\xb0\xb5\ \x26\x7b\x4e\x10\x09\x03\x38\x22\xa3\xb2\xad\xf7\xdb\x36\xf4\xb5\ \x39\xd4\xb2\xa1\x85\xb4\xe8\xf1\x59\x58\xf6\x29\x3c\x54\x86\x67\ \x51\x34\xa4\x97\x1e\x16\xf9\xc9\x71\x0d\xed\x4a\xd6\xb6\x54\x13\ \xb8\x8e\xd9\xc5\x37\xa2\xe8\xc4\xf5\xb6\x94\x2f\xf6\x4e\x61\x4d\ \xba\x9f\x32\x01\xf6\xcf\x6a\xe0\xe2\x28\xc2\x2f\xaa\xf5\x3d\x3e\ \x1a\xad\x67\x1e\xba\xba\xef\x43\x0c\x0b\x2d\xa9\x3a\x8a\x35\xfa\ \xee\xd3\x4e\xda\x0b\x6e\xc3\x9f\x1f\x68\x71\xb6\xdb\x75\xb5\x23\ \xc4\x52\x8f\x2a\x61\x0a\xd8\xa2\x95\x65\x48\xfb\xc0\xe1\x26\x90\ \xf5\x0b\xa3\x5a\x83\x4f\x6b\xbd\x29\x2f\x4a\x5b\x2d\x57\x18\xc6\ \xdb\x1a\x1b\xac\x6d\x42\x19\x93\x21\xa5\x2c\x6e\x52\x0e\x12\x41\ \x6f\xc3\xca\x8f\x72\x3d\xcd\x3b\x5f\x18\x91\x15\xf4\xcc\x8c\xd9\ \x4a\xe3\xbc\x8f\xb5\x33\xb7\xc8\xfb\x64\xf9\x92\xa1\xd8\x82\x32\ \x3f\x1a\x84\xcc\xb5\x6a\x4b\xe7\x56\x1b\xd1\xb6\xdd\x47\x31\xb8\ \x3a\x6e\x28\x85\x05\xd7\xdd\x50\x54\x44\x8c\x2d\x4d\x82\x0f\xed\ \x0a\x72\x90\x14\x79\xda\x84\x03\xda\x9f\x43\x13\xc1\xa4\xe3\x6d\ \x79\x11\x53\x09\x2a\xf5\xd4\xd4\xec\xac\xef\x7e\x49\x78\x6b\xcc\ \xd7\xfa\x58\x68\x7b\xdc\x58\x2c\x6a\x99\x76\x0b\x0e\x98\x43\x6d\ \xa5\xb5\xb5\x6c\x94\xa4\x07\x15\x9e\x49\x09\x01\x24\xd5\x27\x63\ \x96\x2d\xa1\x6b\xbe\x59\xbf\x58\x21\x6c\xe5\xa5\x4b\x74\xb8\xda\ \x37\x00\x42\xf0\x49\x1d\xb2\x41\xae\xc0\x99\xd3\x5b\xc5\xe6\xd4\ \x22\xea\x0e\xa8\x6a\x8b\x8b\x4a\x00\xa9\x95\x29\x2a\x68\xe3\xdc\ \x2b\x39\xfa\xd4\x1f\x48\xf4\xbe\xd5\x77\xd6\x97\x3e\x9e\xdd\xe7\ \x06\x95\x11\xd6\x2e\x4c\xc8\x6e\x30\x59\xb8\x42\x42\x90\x57\x1d\ \x63\x38\x41\x0a\xd8\x42\x87\x23\x72\xc7\x20\xe0\x68\x86\x2a\x4e\ \x69\x49\x68\xfc\x0c\xfe\xcf\x08\x53\x94\xa3\x52\xed\x6f\x64\xf6\ \xbe\xfa\x92\x3f\xd1\xe3\x47\xdc\xa5\xf4\x65\x77\x99\xb0\x15\x6f\ \xfb\x52\xde\x75\x95\x38\x80\x93\x21\x92\xac\xb6\xbc\x0c\x28\x8c\ \x64\x61\x5c\x60\x0c\x0e\x73\x49\x05\x92\xfb\x36\x49\x65\x0f\xab\ \xc3\xf4\x4b\x63\x6a\x53\xf8\x0e\xd5\xd2\x5a\xa9\x0d\x33\xa5\xa5\ \xc5\x8e\x03\x09\x43\x29\x69\x09\x6d\x20\x04\x0e\x00\x00\x76\x03\ \x15\x54\xbd\x74\xb2\x59\xa3\x78\x77\x3b\xa4\x58\x61\x47\xfe\x19\ \xc0\xd0\x24\x9f\xae\x7b\xd5\x71\x58\x58\x3b\x5f\xe2\x27\x05\x8d\ \xa9\x79\x49\x2b\xf6\x11\x46\xfa\x71\x31\xe4\x95\xc9\x96\x1a\x3e\ \x98\x19\x22\x91\x5d\x3a\x57\x1a\x4c\x55\xb0\xb7\x83\x83\x9c\xee\ \x4f\x04\xff\x00\x85\x4a\x5c\xd4\x76\x69\x33\x95\x12\xdd\x77\x80\ \xf3\xa1\x39\x29\x6a\x58\x0b\x4e\x31\xdc\x13\xf3\x5b\x58\xbd\x2e\ \x3a\x83\x72\x81\x2d\x93\x8f\x10\x8e\x47\xf9\x8a\xe7\xba\x34\xe0\ \xce\x97\xb5\xe2\x9a\xbd\xfc\x8e\x4b\xea\x97\x4a\x2e\x3a\x6a\x73\ \x92\x23\xa3\xed\x76\xe2\x3c\x4c\x8e\x16\x9c\xf7\xc8\x3e\xdc\x57\ \xba\x6e\xf0\xd4\xbd\x37\x0d\x32\x5e\x54\x79\x70\x52\xa6\x16\xe8\ \x51\x04\x24\x0f\x22\xbe\xa3\x20\x11\xf1\x5d\x77\x7c\x81\x0e\xed\ \x05\x71\xdd\x69\x0e\xb6\xb6\x94\x9d\x8b\x19\x05\x24\x60\xe3\xda\ \xb8\xb3\x5f\xe9\xa7\xb4\xd5\xce\xe5\x6e\x6d\x2e\x06\xdb\x7c\xa9\ \x0a\x27\x3b\x90\xac\x81\xf9\x1c\x8a\xd9\x4e\xac\xa7\x68\x37\xe0\ \xcc\x55\x14\x35\xaa\xa3\xe2\xbe\xa6\xfb\xab\xea\xbf\xd9\xa5\xdd\ \x1b\x43\x3f\x6c\x84\xe8\x66\x61\x61\x21\x28\x77\x23\x87\x00\x1d\ \xb3\x8c\x11\xee\x33\xeb\x4a\xba\x04\x89\x1f\xd3\x49\xd7\x16\xdb\ \x26\x3b\x50\xcb\x4a\x5f\xa6\xf5\xa8\x6d\x4f\xd4\xe0\x9f\xc2\x99\ \xfa\x7a\x5e\x8b\xd3\xfd\x71\x74\x4a\x72\x98\xa9\x83\x82\x7f\xb4\ \xb7\x4a\x71\xf9\x13\x56\x1f\x46\x6d\x42\x1c\x38\xf6\xc4\xba\x16\ \xea\xdc\xfb\x44\x8c\x0e\x02\x88\x18\x4f\xe0\x38\xfc\xeb\xaa\xe3\ \x9d\x46\x9c\x77\xd8\xe0\x62\x6b\x7e\xcb\x4f\x99\xd4\xba\x11\x25\ \x70\x9a\x4e\x15\x92\x3f\x21\x56\xac\x73\xe0\xb0\x1a\x47\x27\x18\ \xc8\x1d\x8d\x57\xfa\x0e\x29\x65\x86\xdc\x20\xef\x03\x81\x8a\x9f\ \xb4\x76\x37\xe6\xc2\x94\x7f\x2f\xf5\xcd\x75\x6b\xac\xa9\x43\xb0\ \xe6\x61\xa3\x65\x70\x62\x23\x4d\x2c\xac\x20\x15\x9e\xe7\xde\xb7\ \x6e\x09\xe0\xa8\x8f\x72\x38\x34\x21\xb5\x93\xca\x8a\x53\xc0\x3c\ \xf7\xac\x43\x49\xff\x00\xe3\x27\x20\x7d\x78\xfa\x56\x56\xef\xbb\ \x34\xa5\x6d\x90\x3a\xe0\x4a\x15\xb8\xe0\x7a\xfb\x7f\xae\x68\xa4\ \xf2\xad\xcb\x7f\x1f\xed\x07\x60\x3e\x64\x83\x9c\xd1\x4d\x87\x0e\ \xda\xb1\x72\xe2\x5f\x44\x56\xfd\x21\x60\x0d\x3f\x12\x6b\x87\x09\ \x41\x70\x72\x7f\xbe\xaa\x98\xbb\xba\x6a\xca\xdc\xc9\x40\xe5\x29\ \xcf\x06\xa3\x5d\x3b\x4a\x53\xa2\xe0\x60\x60\x23\x7f\xfd\xe2\xb9\ \xa9\x4b\x4c\xbc\xf2\xb3\xbb\xc3\x6c\x1c\x12\x7b\x62\xb6\x3b\x25\ \x73\x9f\x4a\xf9\x54\x4c\x00\x6d\xa1\xb4\x14\xe4\x7b\x56\xc4\xb8\ \xca\x52\xb5\x78\x89\x48\xf9\xf4\xef\x58\xba\xab\x5b\x3e\x47\x56\ \x16\x73\xcf\x9b\x9a\xcc\x2e\xcd\x27\x0d\x85\x6d\xdc\x31\x9f\x8f\ \x6f\xa5\x55\xbe\xe6\x35\x2b\x73\x47\x3f\xdf\x2f\xba\x9a\xe5\xa5\ \xee\x1a\x3e\xdb\x74\x94\xe5\xfc\x6a\x39\x10\x23\x48\xf1\x0a\x9e\ \x0d\x23\x32\x12\xac\xe7\x3f\xd5\x8d\xbf\xc2\x9f\xed\x17\xa9\xf7\ \x58\xd6\xb9\xb6\xe7\xca\x83\x7a\x45\xcb\x94\xa6\x84\x85\x32\x1d\ \x79\xdd\xa8\x40\x52\x92\x09\x49\x4e\xc7\xc8\x20\x1e\x45\x49\x2d\ \xfd\x38\x99\x69\xea\xdc\xdd\x67\x1a\x43\x0e\x5a\x5d\x8f\x96\x58\ \x49\x3e\x22\x64\x94\x21\xb5\x38\x46\x31\x8d\x88\xc7\x04\x9c\xa8\ \xf6\xa4\x3a\x33\x47\x3f\xa4\x2d\x3a\xb1\x13\x27\xc5\x7c\xdc\x96\ \xeb\x76\xed\xaa\x51\xf0\x62\xe5\xc5\x36\x85\xe4\x0c\x10\xa7\x57\ \xc0\xce\x3d\x0f\xa0\xa5\xdc\x95\xa3\xb1\x9b\x87\x38\xbe\xb7\xae\ \xc1\x95\xbd\x69\xa8\xdb\x47\x4d\xdb\xb6\x18\xff\x00\x64\xba\x5a\ \x9d\x79\x6d\xce\x98\xb7\x1c\x5a\x9a\x69\x38\x0e\x39\xb0\x93\x8d\ \xe0\x82\x39\x27\x39\x00\x0e\x61\xb2\xf5\x5d\xe6\x05\xd7\x5b\xdd\ \x84\x34\xce\xb7\x42\xba\xf8\x8e\x07\x25\xa9\x2b\x4a\x0a\x11\x94\ \xb6\x9d\xa4\x70\x39\xe4\xa7\xbd\x3a\x3f\x61\xbf\x22\x3e\x8a\xfb\ \x33\x96\xf7\x9f\xd3\x90\x9d\x8a\xe2\x16\xf2\x90\x87\x7c\x46\xd0\ \x82\x52\xa0\x82\x78\x28\xcf\x23\x9c\xfa\x56\x8b\x86\x90\xb8\xbd\ \x61\xd6\x70\x92\xf4\x30\xed\xee\x41\x72\x31\x52\xd4\x12\x94\xec\ \x4a\x70\xbf\x2f\x07\x29\x3d\xb3\x4c\x8c\x24\x97\xae\xc2\x8d\xc9\ \xef\xeb\x41\xcb\xa8\xd7\xd7\xec\x3a\x1a\xe1\x7a\x84\x41\x75\xa6\ \x92\x59\x2a\x19\x00\xad\x49\x4a\x4e\x3d\x70\x54\x0d\x44\xe3\x5d\ \x35\x0e\x97\xb9\x68\x89\x52\x35\x04\xeb\x9b\x3a\x87\x6b\x33\x58\ \x94\xa0\xa4\x05\xac\x23\x6a\x9b\xc0\x1b\x70\x57\x8f\xc3\xe4\xd4\ \xfe\x7e\x98\x46\xa4\xd2\x52\xec\x73\x0e\xc4\x48\x60\x34\x1d\x48\ \xce\xc5\x8c\x14\xab\x07\x19\xc1\x00\xd4\x2f\x4e\x58\xaf\xb7\x3e\ \xa0\x59\x74\xf6\xac\x09\x61\x3a\x45\xa0\xb8\x65\xa8\xee\x6d\xb8\ \x60\x24\x25\xcf\x10\x8d\xa3\x6e\xd4\x64\x67\x39\x07\xe7\x17\xa9\ \x7c\xc8\xac\xaf\x71\x4f\x4f\xef\xba\xa6\xef\xaf\x75\x2b\x37\x18\ \xf1\xcc\x28\xb2\x92\xc3\x89\x4b\xe4\xfd\x98\x84\xa8\x00\x81\xb4\ \x6e\x0a\x29\xc9\x27\x1f\x8d\x59\x8c\x82\x95\xa5\xc4\x2b\x6a\x87\ \x62\x3b\xe6\xa0\xee\x69\xcd\x51\xa3\x2e\x9a\xc2\xff\x00\x09\x16\ \xdb\x84\x1b\x8a\x97\x35\xa6\x80\x71\x52\x7c\x40\x95\xec\x40\x40\ \x4e\x08\x2b\x50\x04\xee\xed\x9a\x99\x5a\x8c\xb3\x6e\x8e\x67\xa5\ \x91\x37\xc3\x4f\x8f\xe1\x83\xb7\xc4\xc7\x9b\x6f\x27\x8c\xe7\x1c\ \xf6\xab\x53\xbd\xac\xcb\x47\xbc\x99\xd8\x6e\xc8\x79\x09\x61\xe5\ \x10\xbf\x42\x4e\x29\xfd\x2b\x56\xd2\xd3\xa9\xde\x83\xc6\x48\xcd\ \x56\xf8\x50\x21\xc4\x1c\x28\x76\x23\xde\xa4\x96\x3b\xe8\x4a\x43\ \x32\xf0\x3e\x73\x55\xa9\x4e\xfa\xa3\x4d\x2a\xb6\xd1\x8e\x32\xed\ \xea\x61\xe1\x32\x22\xfc\xa0\xf2\x8a\x72\x83\x29\xc7\xdb\x1f\xb1\ \x50\x3d\x8d\x7b\x09\xb4\x3c\xbf\xb4\x13\x86\x87\xf1\xac\xdf\x9e\ \x84\x1d\xb1\xda\xcf\xb9\x22\xb3\xca\x4e\x5d\x5b\x5d\x8f\x8c\x54\ \x7a\xd7\xb2\x36\x82\xfe\x3f\xab\x20\x63\x27\x9a\xf5\x2e\x0c\xf9\ \xd2\x47\x38\xe4\x77\xa4\xc9\x9f\x28\x63\x81\x8e\xe2\x94\x37\x35\ \x0b\x3b\x1f\x40\x4e\x7d\xa9\x6e\x12\x5c\x86\xc6\x71\x7c\xcc\xbe\ \xe8\x28\xee\xd9\x14\xc9\x77\x88\xa4\x36\xb4\xe3\xca\xae\x45\x3f\ \xa9\xb1\x8d\xc8\x39\x42\xbb\xd6\x97\x9a\x0e\xb6\x52\x7b\x7a\x1a\ \x9a\x55\x32\xbb\x91\x56\x9e\x65\x62\x17\x1c\x60\xec\x38\xe0\xf2\ \x2b\x39\x19\x28\x1c\x1c\x7a\xfd\x6b\x74\xe8\xeb\x8d\x28\xfb\x13\ \xcd\x60\xf1\xc2\x32\x3f\x1f\x5a\xe8\xa7\x73\x9a\xd5\xb7\x35\xa0\ \xed\x6f\x3f\x1c\xd4\x77\x50\x24\xad\x97\x5c\x23\x93\xc0\xa7\xf1\ \x92\x03\x60\xf7\xf5\xa6\xad\x54\x90\xcd\xb9\x7e\xe5\x3c\x50\xf6\ \x64\xa3\x8d\x3f\x49\x30\x1c\xd4\xb0\x18\x42\x16\xe3\x82\x39\xc2\ \x10\x92\x4a\xcf\x88\xac\x0f\xe1\x55\x94\xa7\xd4\xd4\x44\x32\xe2\ \x42\x4a\xb9\x5a\x7b\x04\x01\xd8\x11\xfd\xae\xff\x00\x9d\x74\x2d\ \xfa\xe4\xc4\x3d\x64\xe5\xc5\xc6\xf2\xeb\x08\x2c\x32\x52\x8d\xca\ \x5e\x4e\x54\x33\xe8\x32\xa2\x3f\x0a\xa0\xb5\x5d\xbd\xe6\xb5\x7d\ \xc5\x97\x12\xa4\x07\x5f\x53\xa0\x3c\xad\xa7\x0a\x39\xef\xeb\x5e\ \x62\x75\x22\xeb\x64\x7c\xb5\x3d\x56\x1f\x09\x51\x60\xa3\x59\x2d\ \x1b\xb0\x97\x4b\xcb\x89\x12\xea\x87\xa4\x3e\xeb\x21\x2b\xc8\x53\ \x68\xdc\x48\xef\x8f\xe1\x8f\xc6\x94\x6a\x0b\x85\xc2\xfd\x7d\x12\ \x9e\x6c\xa1\x2b\x59\x6a\x33\x09\x1c\x34\x80\x78\x48\xfc\xf9\xa4\ \xac\x3a\x98\x58\x79\xa6\xd0\xa5\xe7\x8f\x2e\x46\x01\xed\xfc\xb9\ \xa7\xbd\x06\xf2\x1e\xd5\x11\x64\xc8\x61\x0f\x20\x2d\x3e\x22\x4e\ \x01\x27\x3e\x80\xf7\x27\x8e\x6a\x2a\x5a\x37\xa9\x6d\x91\x34\x13\ \x9c\xa3\x45\xbd\xd9\x67\x68\x3e\x90\x5e\x6e\x2d\x25\xe9\xcb\x6e\ \x22\x31\xc8\x57\x2a\xc9\xf8\xa9\x2e\x9e\xd1\xd7\x3d\x0b\xd4\xcb\ \x05\xe2\x2a\x54\xe1\x83\x29\x32\x32\x84\x90\x56\x8c\xe1\x69\xe3\ \xdd\x24\x8f\xc6\xae\xbd\x32\x23\xc8\x8e\xdb\xf1\xdb\x09\x65\x4d\ \x20\x84\xed\xc7\xd3\x3f\x38\xc5\x48\x92\xc3\x2e\x29\x0b\x2d\x24\ \xa8\xfa\x91\xda\xb8\xb2\x73\x9e\xaa\x5a\x9e\x87\xda\xb2\x75\x32\ \xac\xa6\xf9\x16\xf8\xf6\xeb\x9b\xab\xb7\x80\x63\xcb\xfd\xb3\x2a\ \x07\x82\x95\x0c\x8c\x7e\x1f\xc8\xd6\x77\x99\x0e\x46\xb7\x9f\x0d\ \x0a\x5a\x82\x09\x01\x3f\xda\xc7\x15\xe4\x09\xad\xf8\x5f\xab\xdd\ \x5a\x43\x8d\xa8\xfd\x9d\x4a\xfd\xd5\x13\xf7\x0f\xb0\x3d\xc7\xb1\ \xfa\xd6\x6d\x07\x1d\x0b\x0a\x18\x20\xe0\x83\x91\x83\x5a\x93\x4e\ \xed\x73\x39\x96\x69\xd9\xf2\x2b\x0d\x27\x76\xd5\xa6\xfb\x2d\x57\ \x48\xce\x08\x01\xb2\xd9\x65\x95\xe0\x0c\x9e\x54\x7d\xc5\x45\xe7\ \xd9\xf5\x4b\x17\xdb\x4c\xd8\xa7\xec\x51\x04\xe7\x4c\x87\xde\x88\ \xdc\x96\xdc\x6d\x69\x52\x53\xfb\x25\xf0\x48\xc8\xc0\xf7\xed\xcd\ \x5e\x82\xce\x7e\xfb\x6f\x23\xcd\x83\x85\x0c\xd2\xf4\xb0\xea\xdb\ \x6d\x0f\x36\xcb\xa9\x69\x61\xc4\x05\x73\xc8\xec\x69\xb4\xaa\x4e\ \x2a\xcc\x2b\xf0\xaa\x3b\xda\xd7\x2a\x1e\x8d\x88\xda\x56\xe5\x71\ \x55\xde\x35\xcd\xf5\xa6\x30\x8c\xf2\xcc\x72\x95\x48\x58\x39\x49\ \x2d\xe7\x09\xf2\x9c\xfe\x34\xa9\x56\x07\x5f\xb8\x22\x56\x93\xb3\ \xbf\x6a\x52\xe4\x91\x21\x0e\xa4\x04\x16\xfb\xe5\x48\xce\xd3\x93\ \xed\x83\x56\x94\xf8\xab\x7a\x42\x9e\x52\x1a\x4a\x94\x30\xac\x27\ \x71\x38\xed\xf1\x49\xd7\x19\x49\x00\x90\xbc\x11\xc9\xc7\x35\x59\ \x43\x32\xb4\x86\x50\xae\xa8\xbc\xd4\xd6\xaf\xb7\x61\x8f\xec\x52\ \xe5\xc6\x4c\x29\xae\x32\xfc\xc9\x4a\x43\x6e\x18\xe8\xc2\x01\xf4\ \x48\xcf\x7a\x8f\xc7\xb0\xb3\x0f\x5f\xfe\xbf\x62\x7c\x49\x6b\xbb\ \x4c\x94\xee\xd8\xea\xdf\xb1\x08\xc0\x49\x52\xfb\x67\x6e\xc0\x52\ \x3b\x1a\x96\xea\xeb\x8b\xda\x72\xd0\xd2\xe2\x25\xb3\x7b\xb8\x6e\ \x8d\x69\x64\x9c\x16\xf2\x3c\xf2\x55\xec\x94\x27\x24\x13\xeb\x50\ \xfe\x9d\xe9\xb6\x2c\x82\x52\x63\x2d\x4e\x30\xdb\xa5\x0d\x28\xaf\ \x20\x13\x82\xb5\x01\xe8\x54\x42\x73\xf4\xae\x7e\x26\xce\xa4\x21\ \x1e\xdb\xfa\xf5\xd8\x6f\xc3\xa9\x2a\x53\xaa\xdd\xae\x9a\xb7\x6f\ \x6f\xc1\x3b\x78\xd9\xf6\x16\x1b\x1b\x8b\x0b\x29\xc0\x29\xc0\xca\ \xbb\x1a\x8d\x4f\xb5\x44\x63\x5a\xc6\xd4\x4e\xba\xb8\xee\x2e\x22\ \xed\x8f\xbc\x85\x11\xb5\xa7\xfc\x89\x59\xc7\xaa\x5d\x2d\xfe\x07\ \xe2\xa4\xb6\xb2\x3c\x32\x97\x00\x27\x04\x63\x39\xa8\xb7\x54\xad\ \xee\x49\xd3\x32\x58\x6d\x6f\x25\x05\x3b\x87\x84\xa2\x95\x12\x08\ \x56\x32\x3d\xf0\x38\xfa\x53\xaa\x36\xa2\xa4\xb9\x6a\x64\xa4\xaf\ \x3c\x97\xb2\x7a\x7c\x19\xe3\xb2\xaf\x4f\xcb\x95\x06\x55\xf6\x4c\ \xc8\x29\x29\xd8\xdb\x1c\xa9\xf2\x09\x0a\x25\x44\xe4\x64\x72\x30\ \x33\x9e\xf5\x5c\xf5\x47\x4d\x3f\x70\xbc\x46\x99\xa6\xf4\xb2\xd0\ \x98\x88\x6f\xc3\xfb\x6b\x21\xd6\x54\xe9\x74\x15\xf8\xbc\x95\x94\ \x90\x00\x38\x3c\x8f\x6a\x97\x74\xfa\xf1\x17\x50\xdb\x00\x5a\x9a\ \x4d\xc5\x18\x54\xa4\xa4\xf2\xa5\x1c\xe1\x78\xfe\xf6\x09\xfa\x85\ \x0f\x4a\x98\xc7\x6a\x7b\x44\xa5\x25\x4a\x47\x04\x07\x46\x41\x1f\ \xce\xb4\xc2\xb7\x12\x2a\x48\x5d\x4a\x4e\x8c\x9c\x25\xa5\xbe\x1e\ \xbb\x8e\x5c\x56\x88\x72\x3f\x51\xdd\x93\x7d\xb5\x2d\xdb\x7b\xf7\ \x94\x3e\xa3\x0e\x23\x8c\x30\x96\x14\xa0\x5c\x65\x09\x56\x54\x94\ \x8c\x90\x92\x73\x4f\x7a\xd9\xeb\xd6\x93\xd5\x2e\x39\xa4\x2d\x9a\ \x85\x7a\x51\x21\x29\x31\x27\x28\xbe\x42\x40\x19\x20\x9c\xa8\x0f\ \x5c\x13\xeb\x5d\x19\x2d\xf9\x6b\x65\x49\x93\x14\x28\xab\xb6\x17\ \xbd\x39\x1e\xbc\xf6\xa4\x52\xd0\xf4\xa4\x00\xb6\xf6\x11\x80\x72\ \x8f\x4a\x5d\x66\xe5\xba\x1d\x87\xa9\x1a\x4a\xca\xef\xe3\xf8\x18\ \xf4\x0d\xed\x8d\x43\x62\x8b\x22\x12\xca\xd0\xb4\x0c\xa8\xa4\xa7\ \x8f\x6e\x40\xaa\xcb\xf4\x80\xb0\x07\x6d\xd7\x8b\x82\xda\x0b\x58\ \x65\x0e\x05\x01\xfd\x95\x8e\x3e\xb8\x35\x6b\xdb\x6d\x49\xb2\x3e\ \x57\x10\x84\xb0\xb5\xef\x2d\x60\x00\x14\x7b\xe3\xdb\xe9\x4d\x7d\ \x46\x81\x12\xeb\x66\x97\x0a\x62\x9c\x43\x13\x11\xe1\x1f\x0f\x97\ \x14\xa2\x41\x01\x03\xdc\xe3\xf0\xef\xe9\x59\x5a\xcb\x67\xd8\xc3\ \x32\xce\xf2\xec\xce\x4e\xb7\x28\x5b\xba\x42\xdd\x9d\xe4\x11\x37\ \x54\xdd\xd8\x7c\xa4\xf0\x53\x19\xa2\xa0\x15\x8f\x6d\xc7\x8c\xfa\ \x66\xac\x8e\x85\xc6\x7a\x5c\xb6\x2e\xa9\x21\x4c\xbc\xe2\xf7\x10\ \x73\x80\x14\x40\xcd\x44\xba\x8d\x65\x9b\x7c\xea\x79\xb7\x48\x91\ \x1e\x01\x65\xff\x00\xb2\xc5\x4a\x7e\xe3\x6d\xa5\xbe\x10\x9e\xdd\ \xbd\xcf\x04\xe7\x35\x26\xd1\xa5\x8d\x29\xa8\x60\xda\xad\xf2\x5a\ \x52\x87\xec\x5e\x09\xc9\x0e\x0c\xf3\xcf\x62\x41\xf5\xfc\xab\xb3\ \x43\x19\x08\xce\x32\xed\xd4\xe3\x63\x3a\x3a\xa3\xa0\xe4\xb9\x7f\ \x09\x1d\x81\xa5\xf0\x18\x46\x3b\xfe\xee\x3d\xea\x5c\x85\xa1\x94\ \x03\xc9\x57\xa7\xc7\x15\x5e\xe8\x69\x61\x50\x50\x54\xb0\x5c\xfa\ \x7a\xd4\xe2\x37\x20\x2d\x47\x27\xbe\x2b\xb9\x55\xaa\x8b\x37\x23\ \x87\x46\x5a\x19\xba\xeb\xce\x67\x7a\xb6\x80\x7b\x56\x29\x6f\x1c\ \xee\x51\x56\x3b\xfa\xd6\xd2\x48\x39\xe7\xd8\x57\x80\xf9\xcf\x27\ \x8e\x00\x27\xe6\x97\x7b\x2d\x06\x5a\xef\x53\x04\xb8\xeb\x0a\xde\ \xda\x8a\x87\x6e\x7b\x9a\x2b\x35\xe1\x38\x21\x47\xf0\x1c\x7d\x28\ \xa2\xc9\xee\x89\x4d\xad\x99\x0a\xe9\xb0\x43\x7a\x36\x0b\xef\xe7\ \x62\x7c\x4c\x0f\xff\x00\xa8\xaa\x70\x9b\x35\xe9\x89\x29\x6d\x45\ \xb6\xc0\xe3\x07\xe6\xa3\xda\x15\xd5\xc8\xd2\x90\x5b\xf3\x25\xb6\ \xfc\x4c\x10\x3d\x7c\x45\x7f\x9d\x3f\x21\x29\xc7\x39\x18\xc9\xfa\ \x71\x5b\xa1\x15\x64\xd9\xcd\x53\xea\xa4\x8d\x02\x3a\x41\x05\x47\ \x71\x3d\xf9\xed\x5b\xd4\x84\x1f\x2a\x06\x3e\x7d\xab\x15\x00\x0e\ \xd4\xee\x23\xb8\xad\xa8\x52\x4a\x7b\x67\xd4\x0f\x7e\x3d\xe9\xa5\ \x45\x36\x79\xea\x6a\x40\x8a\xf3\x89\x28\x73\xee\x27\xfd\x77\xa8\ \x86\xb2\x2b\x4d\xd9\x49\x4c\x90\xa6\x96\x90\xb4\xa4\x28\x1e\x0f\ \x62\x3d\xc1\xa8\xf7\x4b\xe3\xc0\x9d\x77\xbf\x5d\x2e\x4c\x46\x91\ \xa8\x18\xbe\xc8\x69\x4e\x3c\x80\xa7\x98\x42\x55\x86\x92\x82\x79\ \x4a\x36\x60\x8c\x70\x72\x7d\xea\xb3\x54\x08\x31\xfa\x2b\xa5\x2e\ \x05\xbd\x86\xe3\x2a\x2b\x37\x89\x4a\x52\xb7\xae\x2a\x64\x14\x6d\ \x52\xbb\x84\x04\x84\xa7\x03\x00\x0e\x29\x17\xb4\xb3\x25\xb8\x71\ \x5b\x8a\x4c\xb5\x9a\x01\x6d\x82\xda\x81\x49\x3e\x5c\x7a\xfe\x54\ \x27\xf6\xc1\x28\x42\xb7\x0c\xed\x51\x07\x23\x8e\x0d\x56\xb3\xad\ \x31\xe4\x6a\x6d\x4f\xa7\x6c\x52\x5b\xb5\x41\x95\x67\x63\xc6\xfb\ \x38\x09\x6d\x99\x4a\x71\x41\x3e\x51\x80\x37\x20\x00\x71\x8c\x83\ \x4a\x2c\xf6\x57\x75\x15\xa6\x75\x8e\x3d\xbe\xc7\x69\xbc\x59\xae\ \x4c\x2e\x43\x2d\x23\x30\x2e\x05\x08\xdc\x94\x2f\x00\x12\x92\x0f\ \x29\x39\x20\xa4\x67\xda\xaf\x9d\xf6\x15\xcc\x5d\x56\x08\x88\xc2\ \x36\x14\x96\xf1\x9c\x82\x0e\xee\xd5\xb2\x52\x9b\xfb\x53\x9b\x96\ \x8c\x95\x6d\xc6\x7f\x7b\x19\xc7\xd7\x1c\xe2\xa2\x7a\x06\xed\x78\ \xba\xe9\xbb\x7c\x8d\x23\x65\xd3\xf6\x88\xe1\xf7\x9a\x9f\x19\xe0\ \xbd\xa1\xc4\xb9\xb5\x45\x92\xd0\x09\x50\x24\x28\xe4\x8e\x49\xa8\ \x3e\xa3\x81\x68\x90\x7a\xb7\x70\xb8\xb4\xd2\xe4\xc5\x58\xfb\x13\ \x8e\x72\xa6\x5e\xfb\x3a\x4b\x65\xb3\xdd\x2a\x2b\x08\xe4\x60\x9c\ \x0f\x6a\x8e\x27\x30\x72\xd1\x34\x5b\x0c\xde\xe3\xcb\xd5\x12\x74\ \xd2\x22\xac\x3f\x12\x0b\x52\xd4\xee\x46\xd5\x05\xa9\x49\x09\x03\ \xbe\x46\xd3\xf9\xd2\x29\xeb\x8d\x0d\x2e\xcb\x79\xf4\x22\x33\x20\ \x97\x16\x55\xc2\x31\xdf\x3e\xdd\xaa\x0a\x6f\x42\xc9\x7c\xd4\x57\ \x6b\xfd\xbd\x53\xcb\x3a\x36\x1f\xdb\x22\x91\xfd\x6a\x8a\x96\x95\ \x21\x59\xcf\x04\x92\x0e\x41\xc0\xcd\x35\xc8\x86\xda\x75\x3e\xab\ \xb7\xfd\x86\xc9\x16\x33\xda\x3f\xed\x0e\xc3\xb5\x8c\xc7\x0e\x85\ \x2f\x62\x88\xc0\x05\x60\x14\xf3\x81\xc6\xd3\x50\xaa\x3d\x88\xce\ \x4c\x6e\xba\xc6\xd5\x12\xc5\x6c\xba\xc5\xff\x00\x6c\x17\x47\x59\ \x66\x13\x4d\xad\x28\x2b\x53\x83\x72\x72\x54\x46\xd0\x07\x27\x3d\ \xbd\xa9\xfe\x19\x5c\x94\xc6\x2f\x35\xf6\x77\xdd\x03\x73\x4a\x58\ \x51\x49\xf5\x19\x1c\x1e\xfd\xc5\x54\xd3\x2c\xf6\x94\x68\x5e\x97\ \x1f\xd5\xb0\x4f\xda\x2e\x36\xe2\xe9\x0c\xa0\xef\xdf\x19\x5b\xc2\ \xb8\xe7\x25\x23\x39\xef\x81\x9e\xd5\xae\xf4\xd5\xbd\x7a\x6f\x5f\ \x5d\x2e\x29\x69\x37\xd8\x57\x47\x51\x0d\xf2\x70\xfc\x70\x9d\x9f\ \x65\x4b\x47\xba\x41\x04\x63\x6f\x7c\x9a\x38\x8d\x6e\x46\x66\x74\ \xd3\xef\x22\x34\x06\x22\xa5\xd4\xa5\x44\x24\x11\x9e\x79\xed\x5a\ \xd8\x53\x67\x09\x4a\xd0\xa2\x46\x78\x56\x72\x33\xcf\xfe\xb5\x58\ \x58\xed\xec\x5e\x7a\xd3\x71\x95\x7a\x8c\x99\x12\x60\xda\x6d\xd2\ \x1a\x4a\x8e\x50\xcc\x82\x17\xb9\x61\x3d\xb7\x79\x71\x9e\xe0\x67\ \x1d\xcd\x41\xe3\x59\xed\xd2\x34\x3e\x9c\xb8\x3d\x15\x2a\x9b\x2b\ \x5c\x08\x6f\x48\xe7\xc5\x54\x75\x49\x71\xb5\x33\xbf\xbf\x86\x50\ \x48\xdb\x9c\x73\xdb\x9a\xce\xa5\x64\x69\x95\x57\x7b\xdb\xd2\x3a\ \x31\x0b\x42\xd2\x14\xda\x92\xa4\x9e\xc5\x27\x22\xb6\x14\x82\x80\ \x48\xed\x55\xc7\x4c\xe2\x31\x6f\xea\x37\x50\xad\x10\x19\x6e\x2c\ \x08\xf2\xe1\x38\xcc\x66\x52\x10\xd3\x6a\x72\x2a\x4a\xca\x52\x38\ \x19\x3c\x9c\x55\x8e\x06\x72\x3e\x6a\x6f\x71\xd0\x79\x91\x9c\x77\ \x54\xc9\xc7\x74\x1e\xe0\xd2\xb3\x83\x85\x8c\x10\x79\xf6\xa4\xa1\ \x2a\x50\xc1\xe6\xbd\xdc\xa6\xfe\xf7\x23\xf9\x52\xe4\xae\xc7\x45\ \xd9\x6a\x68\xbd\xc4\x0f\x33\xe2\x24\x1c\x8e\xf5\x1f\x03\xca\x52\ \x47\x63\x52\xe6\x76\xbc\xca\x93\xc6\x08\xa8\xc5\xcd\xaf\xb3\x48\ \x52\x48\xe0\x9e\x6b\x46\x1e\x7f\xe2\xf9\x19\xf1\x30\xff\x00\x25\ \xcc\xc2\xde\xc9\x75\xc3\xc7\x03\xb5\x45\xfa\x8a\xe9\x4c\x67\x10\ \x0e\x00\x18\xe2\xa7\x96\xa6\x36\xc3\x53\xa7\xdb\xd6\xab\x5e\xa6\ \xbc\xa4\xb0\xe0\x4f\xb1\xab\x4e\x57\x52\xb7\x22\x99\x6d\x04\xfb\ \x4a\xab\x48\x5b\x99\x7e\x45\xc2\xe4\xfb\x49\x71\x6d\x04\xec\xdc\ \x32\x01\x51\x2a\x26\x90\x75\x77\xa4\xcd\xdd\xe1\xc5\xbb\x24\xbc\ \xc4\xa0\x82\xa2\xe3\x4a\xde\xad\xbe\xc0\x1e\xff\x00\x4f\xa9\xa9\ \x3f\x4d\xff\x00\x6f\x69\xbc\xb2\x17\xb5\xcf\xb3\x25\x63\x1c\xe0\ \xa4\xed\x35\x68\xd9\x59\x55\xc2\xc7\x15\xc5\x36\x0a\xf6\x8d\xc4\ \xa7\x3e\x55\x27\x07\xf8\x1a\xf2\x58\xba\x6d\xd6\xcd\x17\x67\xc8\ \xf7\xb8\x4a\xbc\x3c\x24\x53\xd6\x3c\xd7\xc3\xee\x70\x55\xc7\x48\ \x16\x1b\x75\xb6\x9d\x52\xd6\x96\x37\x95\xe3\x85\x1c\xf2\x9c\x7a\ \x63\xb7\xd6\x99\x2c\xf0\x64\xb1\x71\x69\xef\x33\x61\xb2\x16\x16\ \x7b\x12\x30\x71\xf5\xed\x5d\x29\xd4\xdb\x45\x90\x75\x21\x76\xd8\ \x31\x3e\xc9\x19\xc8\x67\x73\xab\x04\x25\xd7\x82\xb2\x38\xf9\xc2\ \xbf\x21\x54\xf4\xd8\xad\x89\x0a\x86\xc4\x73\xb3\xc5\xfd\xa9\xda\ \x46\x13\xb8\x82\x9f\xa7\xb1\x1e\xdf\x14\xba\x18\xa9\xca\xf1\x96\ \xa3\xb1\x78\x0a\x2b\x25\x4a\x6a\xd7\xd6\xdf\xc1\xd5\xdd\x2f\x6d\ \xe6\xf4\x15\xb9\xf9\x61\x5e\x33\xc8\x0a\xf3\xfd\xe0\x9f\x4c\xfd\ \x7b\xd4\xd2\x3b\x99\x39\x23\xbf\x02\x99\x2d\xed\x26\x2d\xae\x2c\ \x74\xf0\xdb\x2c\x36\x84\x73\xc0\x4a\x52\x00\xfc\xb1\x4e\xb6\xce\ \x52\x92\x52\x40\x3e\x6e\x7b\x0f\xad\x67\x8b\xd7\x41\x15\x5e\x66\ \xd9\xe5\xc6\x02\xf2\xa9\xcc\xa3\x7b\x89\x18\x5b\x27\xfe\x14\x7b\ \x56\xbb\x6e\xa2\x86\xe3\xe2\x2c\xa7\x44\x77\xf3\xfd\x53\xc7\x6a\ \xd3\xf1\xcf\xde\x14\xf2\x0e\xe2\xa0\x92\x4e\x7b\x1f\x4c\x7d\x68\ \x91\x6a\xb7\xcd\x63\xc2\x9b\x0d\x99\x20\x9c\x00\xe2\x01\xc5\x31\ \x41\xa7\x78\xb2\x8a\x70\x92\xb4\xd7\xc8\x7b\xb6\x2a\x33\xad\xa5\ \x4b\x42\x92\x30\x3c\xdb\x72\x83\xff\x00\x58\x7f\x8d\x3e\x43\x8f\ \x13\x68\x29\x71\x93\xf4\x22\xab\xe6\x74\x15\x9c\x2c\xaa\x23\xf7\ \x6b\x6a\xbb\x83\x0e\xe0\xe2\x06\x7e\x99\xc5\x2e\x6b\x46\x49\x48\ \xca\x75\x96\xad\xd8\x3d\x3e\xde\x0f\xf1\x29\xad\x11\x9d\x45\xbc\ \x7c\xc4\x4e\x8d\x17\xb5\x4b\x78\xaf\xb3\x64\xca\x4c\x64\x10\x4a\ \x31\x84\xf2\x48\x1c\x0f\xa9\xed\x50\x8b\xbe\xab\x80\x89\x46\x06\ \x9e\x8c\x35\x15\xdd\x27\x68\x6a\x39\xcc\x66\x0f\xf6\x9f\x74\x79\ \x40\x07\xf7\x41\x26\x94\x3d\xa2\xec\x60\x03\x78\x93\x76\xbd\x60\ \xfd\xdb\x85\xc1\xc7\x50\x4f\xca\x01\x09\xfe\x14\xe9\x19\xe8\xd6\ \xd8\x3e\x04\x48\xb1\xe2\x46\x69\x39\x08\x65\xb0\x84\x0f\x6c\x01\ \x51\x27\x37\xbd\x97\x9b\xfb\x2f\x32\x69\xc2\x94\x35\xd6\x5e\x4b\ \xf9\x6d\xf9\x78\x91\x48\x1a\x6a\x4a\x25\x4a\xbd\x5f\x65\x7e\xb2\ \xbc\xcd\x47\x87\x21\xf2\x30\x86\x9b\xff\x00\xe1\x34\x3f\x71\x3f\ \xc4\xd2\x6f\xb2\x44\xb6\xc3\x10\x61\xa0\x36\xca\x09\xda\x90\x49\ \x39\xfa\x9e\x49\xa7\x69\xf3\xa6\x5c\xde\xda\xd2\x8a\x00\x3d\xc7\ \x14\x95\x36\xf0\xde\x56\xbc\xaf\x06\x93\x92\x37\xea\xa3\x53\xab\ \x39\x7b\xcf\xe1\xcb\xbb\xe5\xc8\xdd\x08\x2d\x05\xb4\x04\xf9\x30\ \x09\x39\xe7\x9a\x57\x75\x82\xa7\xa2\x2d\x3c\x1c\x8e\xc4\x52\xab\ \x23\x71\xd6\xa6\xd0\xb5\x15\x73\x82\xae\xf4\xf3\x72\x8f\x1c\xa1\ \x68\x6d\x3b\xa9\xaa\x92\x94\x6e\x67\x95\x4c\xb2\x48\xa6\xed\xfa\ \x72\x12\xe4\xab\xf5\x60\x66\xd9\x76\x8c\xe2\x94\xdb\xc8\x4f\x95\ \xe0\x7b\xa1\xc1\xea\x93\x81\xf2\x0e\x08\xe6\xa4\xf0\x35\x01\x43\ \x88\xb7\xdf\x99\x55\xbe\x71\x00\x6d\x59\xce\xff\x00\x94\x9e\xce\ \x0f\x91\xe6\xf7\x4f\xad\x21\xbf\xe1\x9d\x40\x51\x18\x6f\x3b\x72\ \xe6\x0f\x20\xfa\x54\xa2\xc6\xe4\x3b\xed\xa9\x70\x6e\x71\x99\x94\ \x13\xf7\xd0\xeb\x61\x49\x3f\x50\x7d\x6b\x2d\x34\xd3\xb4\x5e\xbe\ \x46\xaa\xd2\x52\x8a\x75\x15\xd7\x9a\xfb\xae\xef\x95\xb5\x1b\xee\ \x62\x33\xe5\x1f\x63\x9c\xd2\xf1\x9c\xed\x58\x18\xfa\x83\xda\x90\ \xc9\x93\x1a\x23\x79\x9d\x3a\x2b\x00\x0e\x54\xe3\xe9\x48\xfe\x74\ \xba\xe3\xd3\xcb\x14\x92\xa4\x34\xe4\xf8\xcd\xab\x80\x84\x3d\xb9\ \x09\xfa\x05\xe7\x14\xdd\x1f\xa7\x71\x6d\xe0\x18\xb7\x4c\x14\xf6\ \x5b\x90\x18\x5a\xff\x00\x32\x9a\xbc\x95\x5b\xeb\x1f\x93\xfb\xd8\ \xac\x55\x1b\x7b\xff\x00\x34\xfe\x97\x19\x5c\xd4\x28\x90\x54\x8b\ \x2c\x67\x6f\x2a\xce\x03\x88\xca\x23\x20\xff\x00\x79\xd2\x31\x81\ \xec\x9c\x9a\xf1\x9b\x7b\xac\xb8\xa9\xd7\x19\x49\x99\x70\x29\xc2\ \x56\x84\xe1\xa6\x12\x7f\x75\xa4\xfa\x0f\x75\x1e\x4d\x3d\xce\xd3\ \xd3\x49\x0b\x76\xff\x00\x31\xc2\x83\x90\x14\xda\x00\xfc\x00\xed\ \x49\x5a\x8b\x25\x08\x5a\x1d\x79\x2e\x8c\x79\x4e\xdc\x67\xe9\x8a\ \xcf\x25\x2d\x9a\x25\xca\x0b\xdd\x67\x3e\x6b\xbb\x71\x3d\x7b\x8a\ \x5b\x73\xc0\xdf\xb2\x5b\x25\x47\xca\x56\x13\xce\x3d\xc9\xc0\xf2\ \x9e\x0f\x6f\x5a\x6b\xb6\xc7\x59\xbf\xdb\xdf\x71\xb6\x9b\xc9\x53\ \xdb\x1b\x18\x03\xcd\x8f\xc3\xf1\xf4\xa7\x7e\xb4\x19\x11\xba\x95\ \x6f\x9e\xc1\xca\xe1\x04\x1d\xbb\x41\x29\x0a\x47\x2a\xf9\x00\x81\ \xf4\xc1\xa6\x7d\x2c\xbf\xb4\xdc\xd5\x29\x4a\x2b\x6c\x10\xcb\x27\ \xb0\x20\x77\x35\x7a\x69\xce\x50\x5e\xb7\x37\xe6\x8d\x2e\x8d\xc4\ \x54\x7d\x96\xf9\xa4\x8e\x9b\xe9\xab\xe5\xc8\xcd\xac\x81\xc7\x6c\ \x55\xad\x15\x40\x34\x95\x2c\x8c\x63\xb6\x6a\xa4\xe9\xb8\x52\x61\ \xb4\x84\x03\xda\xad\x9b\x74\x40\x5b\xdc\xe1\x2a\x24\x1e\xd5\xed\ \x1c\x54\x29\x45\x33\xe7\x14\x6f\xb2\x37\x78\xc8\xc8\x39\x04\xfc\ \x0f\x8a\xc9\x38\x3c\x83\x80\x79\xe0\x66\x94\x08\x8c\xad\x3f\x73\ \xe0\x0a\x4a\xfc\x63\x1c\xee\x6c\xe1\x39\xe4\x7b\x52\x54\xa2\xdd\ \x91\xa5\xc6\x4b\x56\x66\xbe\x53\x81\xdf\x04\x7d\x28\xa4\x57\x0b\ \x83\x31\xe2\x93\xb8\x6e\xf4\x1e\x94\x53\xa1\x4a\x4d\x08\x9d\x58\ \x27\xa9\x05\xd0\x2a\x6d\xad\x1d\x07\x23\x27\x2b\xec\x7d\x37\xab\ \x9a\x79\x32\x54\xa2\x36\x34\x4f\x18\xed\x9a\x6d\xe9\x95\xbd\x4f\ \xe9\x48\x4f\x3e\xaf\x29\xf1\x38\xcf\xfc\x62\xaa\x68\x98\xc8\x4f\ \x01\xb4\x82\x3f\x9d\x68\xe2\xc6\x29\x23\x2d\x3a\x52\x94\x53\x23\ \x09\x92\xa0\xbf\xda\x24\xa0\x64\x60\x91\xc7\xfa\xef\x4a\x52\xea\ \x55\xca\x33\x82\x30\x38\xfe\x54\xf3\x26\x23\x0f\x34\x42\x92\x02\ \x8f\xae\x3d\x2a\x29\x70\x9c\x8b\x3b\xea\x61\xc1\x9c\x9f\x2f\x35\ \x78\x4d\x4f\x62\x27\x07\x03\x64\xbb\x7d\x8c\x5d\x99\xbb\xc8\xb6\ \xc0\x55\xc1\xa0\x42\x25\x29\x94\x17\x53\xc6\x30\x17\x8c\x8e\x3e\ \x6a\x37\x75\x6a\xdc\x1b\x4c\x28\x70\x62\xb1\x01\xb4\x96\xd1\x15\ \xa6\x52\x96\x82\x79\x24\x04\x81\xb4\x02\x49\xe3\x15\x59\xf5\x3f\ \x55\x5f\xb5\x0e\x95\xbc\xca\xb6\xc0\x2d\xda\xe2\x4f\x6a\x1a\xa6\ \x09\x05\x0e\x15\x25\xf6\xc2\x88\x48\x4e\x36\xee\xf2\xfd\xec\xf2\ \x4e\x31\x52\x4b\xb6\xa4\x9b\x67\x91\x7c\x71\x16\x96\x25\x31\x61\ \x43\x6a\xb8\x17\x25\x86\x9c\x3b\xd3\xbb\x6b\x49\xda\x77\x14\xa4\ \x85\x1c\x91\xdc\x01\xf1\x19\xe2\x98\xac\xc8\x92\x5a\x34\xb5\xa4\ \x42\x54\x75\x5a\x20\x22\x1b\x87\x72\xe2\xa6\x3a\x03\x6a\x3f\x29\ \xc6\x0f\x20\x7a\x7a\x0a\x75\x3a\x6b\x4f\x9b\x62\x2d\xa3\x4f\xda\ \x97\x11\x0a\xdc\x98\xe6\x22\x0b\x49\x38\xee\x13\x8c\x67\x1e\xb5\ \x16\x91\xaf\xcc\x08\x9a\x9d\x72\x60\x00\xbb\x3b\x4c\xbb\x15\x09\ \x5e\x3e\xd6\x97\x9b\xcb\x47\xb7\x19\x5e\x53\xeb\xda\x90\xea\x0e\ \xa5\x4e\x80\xe5\xd3\xec\xd6\xd6\x1e\x6e\xce\xd3\x4b\xb8\x93\x33\ \x62\xb7\x29\x3b\x94\x86\x86\xd3\xbb\x6a\x4e\x4e\x48\xf6\xef\x53\ \x9a\x21\x74\x59\xf6\x65\xc6\x81\x01\x31\x23\xc7\x69\x94\x20\x6d\ \x42\x1b\x48\x09\x03\xd8\x01\xc0\xfc\x29\xa6\xc9\xa1\xac\xd1\xb5\ \x15\xd7\x50\xca\x89\x1a\x6c\xfb\x84\x84\xc8\x4a\xdf\x8c\x85\x2e\ \x31\x4a\x52\x9c\x21\x58\x24\x03\xb4\x1f\xad\x56\x6e\xea\x57\x2c\ \x9a\xd7\x55\xdf\x24\xba\xf3\xb0\xa2\xda\x22\x48\x08\x4a\xb2\x0e\ \x77\xe3\x68\xec\x0a\xb8\x1f\x95\x4b\x22\x75\x0e\xe9\x6f\x9a\x8b\ \x75\xfe\xca\xcc\x49\x32\x60\x3d\x32\x19\x6a\x51\x75\x2a\x2d\x00\ \x56\xd2\xc9\x42\x70\xa0\x14\x0e\x46\x47\x7e\x6a\xad\xc5\x92\xa4\ \x9e\xe4\xd8\xc1\x80\xcc\x99\x0f\xbb\x6d\x88\xe3\xb2\x19\xf0\x5e\ \x75\x4c\xa4\xa9\xc6\xc6\x70\x85\x12\x32\x53\xc9\xe0\xf1\xc9\xad\ \x16\x8b\x25\xa2\x08\x2a\xb7\x5a\x60\x43\x6c\x25\x48\x08\x62\x3a\ \x10\x02\x55\x82\xa1\xc0\xe0\x12\x06\x47\xc5\x57\xf6\x9e\xa0\xdd\ \x6e\xcf\xe9\xf7\x66\x5a\x1b\x8b\x02\xfe\x4a\x62\x2d\x32\x8a\xdc\ \x43\x9b\x0a\x80\x5a\x76\x80\x02\x80\x38\xc1\x3f\x3d\xf8\x46\xd7\ \x51\x6f\x89\xb7\x43\xba\x37\xa7\xd2\xe4\x39\x57\x43\x6a\x6c\x09\ \xb8\x70\xc8\xdc\xa4\xa4\xed\x29\xc6\xc2\xa4\xe3\x39\xc8\xce\x71\ \xc7\x33\x9a\x3b\x91\x99\x16\x23\x7a\x77\x4f\xb4\xc3\x71\x98\xb2\ \x5b\x58\x69\xb7\xfe\xd2\xd2\x5a\x88\x84\x84\x3a\x32\x03\x80\x01\ \xc2\xf9\x3e\x6e\xfc\x9a\x4f\x36\xc7\x6d\x55\xc5\xb9\xb2\x6d\x70\ \x9e\x94\xde\x3c\x39\x0e\x47\x4a\x9c\x47\xd1\x44\x64\x7a\x54\x65\ \x1d\x45\x72\x24\x2d\x44\x9b\xcd\xb1\x0d\xcf\xb2\x3c\xcb\x2a\x66\ \x3c\x8d\xe8\x7d\x4f\x04\x96\xb6\xa9\x49\x4e\x32\x54\x01\xc8\xe3\ \xbd\x2e\x3a\xbe\x74\x68\x1a\xa1\x37\x4b\x6c\x31\x3a\xc3\x6f\x4d\ \xc7\xc3\x8f\x33\xc6\x69\xf6\x94\x15\x8c\x28\xa1\x24\x10\x52\x41\ \xc8\xf6\x3e\xb4\x39\xc1\x6e\x0a\xc4\xc6\xdc\xe4\x06\x64\xae\x58\ \x89\x1d\x13\x1e\x4a\x50\xe4\x94\xb6\x90\xe3\x89\x4e\x76\x82\xac\ \x64\x81\x93\x80\x7b\x64\xd3\xa4\x7b\x35\x89\x51\x19\x61\xbb\x4d\ \xb8\x47\x66\x40\x94\xd3\x42\x32\x36\xb6\xfe\xe2\xaf\x11\x23\x18\ \x0b\xdc\x49\xdc\x39\xc9\xce\x6a\xbf\x85\x74\xbc\x39\x7f\x83\x67\ \x93\x69\x8b\x15\xdb\xb5\xb1\xcb\x85\xb0\xfd\xb4\xb8\x06\xcd\xa7\ \x63\xde\x41\xb0\xf9\xd2\x7c\xbb\x87\x71\xcf\x72\x74\x5a\xfb\xa9\ \xee\xda\x1e\x0d\xde\xf2\x23\xba\x89\x69\x52\xda\x71\xa5\x12\xb2\ \x3c\x45\x82\x14\x36\x80\x9c\x60\x01\x82\x73\x4b\x79\x2a\x7b\xa3\ \x61\x53\x2b\xb3\x45\x8d\x1a\xdf\x19\x13\xa4\xca\x89\x0e\x3b\x52\ \x25\x14\x2a\x43\xed\xb4\x94\xad\xe2\x91\xb5\x3b\xd4\x06\x55\x81\ \xc0\xce\x70\x38\xa7\x04\xc2\x51\x39\x2b\x39\xf5\x15\x53\x5a\xf5\ \xac\xbd\x3c\x8d\x63\x39\xfb\x7a\x9f\x93\x1a\xff\x00\x12\x22\x9b\ \x5d\xc1\x6e\xb5\x87\xbc\x34\x85\x20\x29\x23\x60\x09\x50\x25\x20\ \x11\x9c\xf3\x8c\x54\xbb\x51\xf5\x07\xf5\x15\xfb\x51\xc1\x7e\xd8\ \xe4\x86\x2c\x96\x44\x5d\x0a\x99\x5e\x5c\x74\xa9\x4b\x05\x18\xc6\ \x00\x1b\x73\x9c\xfb\xd6\x59\xd5\x69\xd9\x1a\xa9\xca\x9b\x57\x97\ \xad\xfe\xc4\xa5\x71\xdf\x68\x64\x28\xa8\x0e\xfc\x57\xa7\x0e\x23\ \x6a\xb8\x35\x5d\xeb\xdd\x67\xaa\xe3\xf4\x86\x5e\xa9\xb6\xb3\x62\ \x61\x4e\x18\xa6\x3b\xd1\x2e\x2a\x94\x03\x6e\xb8\x94\x12\x09\x69\ \x23\x70\x2a\x48\xf5\x18\x2a\x3c\x10\x01\xb0\x62\xb5\x70\x5c\x06\ \x9e\xb8\xa2\x33\x53\x79\xf1\x53\x15\xc5\x2d\xb1\xc9\xc6\x0a\x92\ \x09\xe3\x19\xe0\x72\x6a\x23\x52\xef\x52\xfa\x37\x68\x9b\x2d\xca\ \x2d\xaf\x61\x3d\x8f\x1f\x15\xaa\xff\x00\x04\x3a\xf2\x54\x79\xcd\ \x64\xca\xb0\xf8\x51\xfa\x1a\x72\x9a\xcf\x8c\xd2\x76\xf7\x06\xac\ \xe7\x92\xa2\x91\x68\xc3\x3d\x37\x11\x0b\x8d\x86\xad\xa1\x3d\x8e\ \x3d\x6a\xad\xea\x04\x70\xb8\xaf\x15\x0e\x4d\x5b\x17\x4c\xa6\x38\ \x18\xc6\x07\x35\x5c\x6b\x36\xc3\x91\x95\x81\xc0\xef\x5a\x30\xdd\ \x64\xef\xcc\x4e\x21\x59\xa4\x51\x3a\x5e\xe6\xfd\x9b\x51\xcb\x8e\ \xd9\xc7\x8a\xd2\xc0\x1e\xe0\x8e\x7f\x8e\x0d\x74\x96\x91\x2c\xb5\ \xa4\x21\x3b\xb4\x1d\xcc\x25\x5f\xc2\xb9\x86\x79\x0a\xea\x84\x28\ \x28\x20\x78\xb1\x1c\x52\x47\xf7\xb7\x63\xf9\x57\x42\x69\xb9\x92\ \x1c\xd2\xf0\xd2\xd3\x4a\x79\x0d\xb2\x1b\x73\xc3\xee\x85\x27\x83\ \x9f\xca\xb8\x18\xac\xaa\xa6\x87\xa4\xc0\x66\x9e\x12\x29\xf6\x90\ \x6e\xa2\xdb\x2d\x31\x51\x3b\x50\xdc\x22\x46\x54\x85\x61\x4c\x25\ \x4a\xe4\xed\xc9\xed\xec\x9c\x02\x4f\xcf\x35\x46\xda\x5b\x6a\xe0\ \xf2\xda\x91\x19\x4c\xb7\x3d\x2a\x5b\x4a\x4a\xf2\x16\xde\xe5\x2b\ \x23\x3d\xc8\xdc\xa1\xcf\x1d\xea\xe0\xfd\x24\xee\xae\x42\xd3\xb6\ \x4b\x78\x8c\x8d\xb3\x56\xf2\x14\xeb\xec\x12\x84\xa3\xca\x92\x9d\ \xde\xe4\x2b\x38\x1c\x9c\x7c\x55\x25\x6d\x75\x2f\xcc\x8d\x0d\xe0\ \xd0\x54\x64\xa5\x2e\xb9\xbf\x07\x6e\xe2\x02\x07\xf6\x46\x55\x8e\ \x7e\x6b\x8b\x51\x24\xda\x3d\x05\x2c\xd2\xa5\x19\xcb\xd7\x23\xa0\ \xf4\xfc\xd7\x5f\xd3\x16\xc7\xdf\x42\x10\x4c\x74\x21\x41\x27\x39\ \x21\x23\xf8\x1c\xd4\xb2\xd0\xbd\x91\xc0\x5a\x81\x07\x8e\xd5\x5d\ \xd8\x5e\x77\xf5\x5c\x78\xc5\xb7\x37\x8e\x77\xa9\x7c\x0f\x4e\xde\ \xfc\x7e\x15\x3d\xb4\x2f\xc4\x84\x56\x94\x85\x0d\xa7\x8f\x5c\x1a\ \xad\x39\x5d\x98\xab\x44\x7e\x88\x77\x1d\xd8\x4e\xe3\xc1\x03\xb6\ \x29\xca\x37\x86\x4e\xdd\xc4\x28\x77\x09\xef\xf9\xd3\x3c\x65\x2d\ \x6c\xa5\x68\x4f\x95\x49\x03\x69\xe0\xfe\x3e\xd4\xec\xdb\xa8\x4a\ \x37\x92\x00\x00\x7e\x15\xae\x0c\xca\xd0\xed\x1b\x68\x56\xe2\x53\ \x8c\x71\x4a\x5f\x7c\x36\xd1\x50\x19\xe2\x9b\x22\x38\x92\x92\x07\ \xaf\xc5\x23\xbd\x4c\x2d\x84\xb6\xd0\xdc\xe9\xe1\x29\x1e\xb4\xfe\ \x22\x8a\x17\xc3\xcd\x2b\x19\x4b\x96\x15\x20\x23\x24\xac\xf6\x48\ \xac\x2e\x4c\x2d\xfb\x6b\xd1\xe3\xe3\xc5\x29\xca\x72\x7b\x9a\xd3\ \x19\xb4\xc3\x41\x79\xf5\x05\xc8\x5f\x2a\x23\xd3\xe0\x7b\x52\x29\ \x93\xd0\xb2\x5a\x52\x94\x90\x53\xf7\xb3\xc8\x1f\x15\x55\xd6\xd5\ \x8f\x4b\x55\x97\x90\xcb\x03\x51\x42\x8e\xb5\x44\x92\x92\xdc\x96\ \xf8\x71\xb5\x70\xa0\x7d\xb1\x55\x6f\x5a\x75\x67\x5d\xa1\xcf\x42\ \x74\x96\x9a\x44\x2b\x52\x87\xec\x9e\x44\x74\xc8\x75\xdf\xf9\x44\ \xe4\x27\xe9\x8f\xc6\xad\x15\x96\x27\x36\x82\xfc\x44\x2c\xa0\x80\ \x92\xa1\x95\x0c\x76\xe7\xbe\x69\xce\x04\x95\xf8\xff\x00\x64\xdb\ \x2c\x6f\x19\x1c\x6e\x18\xa5\xaa\x52\x4f\x7d\x0d\xd7\xa6\xaf\xd5\ \xf5\xdd\xfd\x32\xa6\xe8\x9f\x52\xb5\xa7\xeb\x98\xb6\x5e\xa2\xd8\ \xd3\x6e\x99\x34\x91\x0a\x63\x69\xd8\x87\xd6\x06\x7c\x35\xa4\x12\ \x12\xa2\x01\xc1\x18\xcf\x6c\x55\xcd\xab\x75\x1c\x4b\x4e\x9c\x9f\ \x78\x96\xef\x87\x1a\x1b\x0a\x79\xe2\x0e\x4e\xd4\x8c\x90\x3e\x4f\ \x61\xf3\x4c\xba\x8f\x4d\xb5\x31\xb4\xca\x8c\x86\x1e\x71\x0a\x0b\ \x09\x5b\x78\x21\x40\xf0\x52\x7d\xea\x17\xaa\xa0\xde\xae\x50\x95\ \x63\x93\x0a\x43\xcd\xc8\x50\x2e\x64\x8d\x84\x03\x9e\x7e\x38\xed\ \x54\xa9\x39\xc2\xfa\x12\xa8\xd1\xaf\x28\xb8\xbb\x5b\x7b\xfa\x44\ \x1f\xa7\x7a\xd6\xf9\x7e\x95\x37\x52\x5c\xe5\x45\x85\x69\x79\xd3\ \x96\x1d\x21\x02\x33\x7e\x87\x79\xef\xf3\xee\x7b\x55\xc5\xd3\x1d\ \x4d\x0e\xeb\x16\x74\xfb\x79\x2e\x43\x4b\xfe\x1a\x1d\x29\x20\x39\ \x81\xc9\x4e\x7b\x8a\x88\x41\xb0\x5b\xa2\x43\x4c\x79\x16\xd6\xa6\ \x25\x27\x62\x10\xe3\x23\xc3\x07\x19\xec\x46\x3f\x3a\x94\xd8\xee\ \x31\x23\xb2\xcc\x56\xd8\x69\xa1\xfd\x5a\x5b\x42\x40\x49\x23\xdb\ \x1d\xbf\xf2\xa4\x52\xa4\xe3\x2c\xcd\xdb\xb8\xd7\x8d\x95\x1a\x91\ \xb4\x23\xd9\xeb\xc4\xb2\xa1\xca\x6a\x42\x4f\xad\x6a\x95\x93\xca\ \x12\x0f\xb6\x7d\x69\x96\x14\x9f\x30\x52\x14\x38\x1c\xe3\xd4\x53\ \xba\x1d\x4a\x9b\xee\x49\x27\xb7\xb5\x6d\x52\xba\xb3\x38\x4e\x19\ \x5d\xc4\x92\x9b\xdc\x9c\x90\x01\x3e\x86\xa2\x77\x84\xa1\x93\xbd\ \x43\x6a\x42\x87\x73\x53\x07\x16\x08\x50\x52\x8a\x89\x3c\xfc\x54\ \x47\x54\xa9\x28\x8c\xe9\xc2\x31\x8f\x26\xef\x7f\x63\x59\xeb\x69\ \x1b\x97\x85\xef\x63\x9d\xfa\xca\xcf\xeb\x0e\xa3\xbb\x1b\xc4\x6c\ \x17\x22\x78\x1e\x13\x99\x0a\x2b\x09\xde\x95\x20\x8f\x5c\xff\x00\ \xe8\x45\x45\x2d\x37\x2f\x07\x5e\xda\xf4\xd8\xf0\x8b\x6c\x47\x57\ \x8a\x50\x80\x32\xf2\x93\x93\x9c\x13\x9c\x11\x8c\xf1\xce\x6a\x6f\ \x75\xfb\x15\xef\x5d\xc8\xfd\xa7\x88\x44\xa7\x1b\x43\x78\xf3\x95\ \xa1\x20\x00\x32\x3b\x8c\x8c\x11\xdf\x07\x8a\xa4\x2d\x17\x69\x0e\ \x75\x34\x4d\x52\x9b\x42\xd3\x39\x59\xc1\xe3\xef\x10\x7f\xf4\xaa\ \xe0\x9d\xe4\xdf\x61\xab\x1c\xbf\xf8\xf8\x5f\xed\xf4\x47\x71\x74\ \xb8\xa7\xec\x8d\x93\xc9\xe3\xbd\x5b\xb0\x16\x36\x00\x0f\xe7\x54\ \x4f\x4e\xe7\xa5\x2d\x60\x1f\xbb\xc8\xe6\xac\x2b\x66\xa3\xf0\xe7\ \xb6\x16\xad\xad\xab\x8e\xfc\x57\xb2\x51\x75\xa9\x29\x1e\x0e\x9d\ \x65\x07\x66\x4f\xb3\x8c\x67\xf9\x56\x32\x46\xe6\x17\x93\xdc\x11\ \xcd\x69\x6a\x63\x0b\x48\x58\x70\x24\x7d\x6b\x5c\xb9\x49\x52\x7c\ \x36\xb0\xaa\xca\xa1\x2c\xdb\x1b\x9c\xe3\x97\x71\x89\x9b\x58\x5b\ \xa5\xc9\x4e\x65\x21\x5e\x50\x73\x45\x3c\xb6\xd0\x43\x78\xee\x73\ \x45\x6a\x75\x5b\x7b\x99\x15\x18\xa5\xb1\x18\xe9\xf3\xad\x31\xa2\ \x20\xad\xc2\x9d\xbf\xb4\xe3\x1f\xf1\xaa\xa9\x1b\x0b\x43\xcd\x85\ \x21\x47\x18\xcf\x06\xab\x58\x93\x1c\x6f\x43\x5b\xa3\x34\xac\x29\ \x5b\xfd\x7b\x7e\xd1\x54\xe3\xa7\xf5\x22\xe2\x36\x23\xbe\x14\x52\ \x39\x0a\x35\x78\xd1\xbc\x2e\xb7\x15\x1a\xd6\xb2\x7b\x13\xb2\x0e\ \xd3\x9c\x1f\xad\x43\xb5\x0c\x58\xf2\xaf\x00\xad\xad\xdb\x79\xc7\ \xcd\x2e\x1a\x8d\xb9\x67\xc2\x8a\x09\x50\xe0\xd1\x1d\xa5\x29\x65\ \xc5\x11\xe2\x2b\xb9\xc5\x32\x94\x1c\x75\x65\x6a\xcd\x4b\x44\x55\ \xb7\x5d\x07\xa9\x57\xa7\x2f\x7a\x62\xd8\xfd\xa1\x16\xab\x85\xcf\ \xf5\x83\x4e\xbe\x56\x97\x9a\xcb\xa9\x78\xb5\xb4\x24\x82\x37\xa7\ \x85\x6e\xc8\x07\xb1\xa7\xf9\x3a\x5e\x6c\x5d\x67\x78\xbd\xb1\x64\ \xd3\x57\xa6\x6e\xfe\x13\x8e\x22\xea\x8c\x2e\x3b\x88\x46\xc2\x52\ \xaf\x0d\x7b\x92\x40\x49\xdb\xe5\xe7\x3c\xfa\x54\xd5\x6a\x6d\xbc\ \x85\x3a\xda\x48\x04\xe0\xab\x1c\x7b\xfd\x2b\xd2\xa4\x85\xa1\x2a\ \x52\x7c\xfc\x0f\x92\x39\xc0\xfc\x2a\x5d\x28\xbd\xc4\x25\x62\x35\ \xad\xba\x72\xad\x5d\xac\x6c\xd7\x8b\x73\xb0\x22\xda\x9b\x65\xb6\ \x6e\x91\xd5\xb9\x2b\x75\x2c\xb9\xe2\xb1\xb0\x24\x60\xe1\x79\x07\ \x24\x71\xef\xda\xa1\x37\xcd\x19\x2e\xcf\xac\x2e\xf3\x22\xd9\xec\ \x57\x56\xae\x05\xb5\xa9\x37\x24\x10\xb6\x16\x94\xed\x25\x27\x62\ \xf7\x24\x80\x38\xe3\x9c\xf3\x56\xe5\xa7\x50\xdb\x2d\xfa\xa2\x2d\ \x8a\x44\xd4\xb7\x2e\x5b\x4b\x75\xa6\x94\x71\x94\x20\xa4\x12\x4f\ \x61\xca\xd3\x8c\xf7\xe7\x1d\xa9\x46\xb0\x44\x34\xcc\x57\x8e\xa4\ \x23\x29\xca\x94\xae\x31\xf3\x9a\x4c\x16\x5a\x8e\x1c\xb7\x1f\x38\ \x46\x70\xe2\x2d\xef\xa9\x50\xdc\xf4\x8a\xaf\x2f\xea\x94\x49\x76\ \x3b\x30\xef\x36\xb8\xd0\xe3\xf8\x69\x25\x6c\xad\xa2\xa2\x14\x53\ \x80\x36\x82\x53\xc0\x3e\x87\xb5\x21\xbb\x58\x6f\x93\x26\xb7\x7a\ \xd4\x0e\x40\xdd\x6e\xb6\x48\x66\x33\x51\x14\xa5\x78\x8e\x38\x90\ \x16\xe1\x25\x23\x6f\x09\x18\x48\xcf\x7e\xf5\x65\x26\xda\xf1\x07\ \xec\xcb\x42\x9b\x3c\x82\x0f\x1f\x5a\xc5\x30\x43\xa8\xf1\xd6\xf3\ \x65\x19\xc0\x5e\xf1\x8c\xe7\xd0\xfd\x6b\x46\x48\x99\xf2\x95\xc7\ \x4c\x6c\xb7\x59\x76\x7d\x17\x2a\xee\xcc\x58\xb0\xac\xcc\x07\xd9\ \x65\xb5\xad\x4f\x3c\xef\x85\xb1\x25\xc0\x52\x9f\x0f\x68\x52\x8e\ \xd1\xbb\x24\x0e\x6b\xd6\x34\x6d\xf5\x3a\x7e\xd3\x6b\x0f\x43\x53\ \x90\xb5\x22\x6e\xce\x10\xb5\x6d\x2d\x07\xd4\xe6\x07\x97\xef\x61\ \x5d\x8e\x06\x7d\x6a\x6f\xac\xee\x28\xd2\xba\x6a\x4d\xe6\x42\x54\ \xf8\x8e\x5a\x0a\x61\x0a\x01\x67\xc4\x75\x2d\x03\xcf\xa6\x55\xfc\ \x2a\x45\x0d\x31\x23\x6e\x3e\x2a\x56\xb0\x76\xf0\x73\x83\xed\x50\ \xa1\x1d\x81\x45\x6c\x44\x9b\xe9\x44\xbb\xe3\x5a\xd6\x4c\xd9\x10\ \xd9\x4d\xed\xc8\x2f\xdb\xd4\xa0\x5c\xf0\x9c\x8e\x84\xff\x00\x5a\ \x92\x00\xda\x54\x9c\x10\x09\xca\x49\xec\x69\xca\xf3\xa6\x6e\x57\ \x3d\x1d\xa8\xac\x8c\xd8\x74\xa5\x8e\x5c\xf8\x2a\x8a\xd3\x96\xe2\ \xad\x8b\x24\x28\x12\xe1\xf0\x92\x42\x73\xb4\x81\x85\x63\x9e\x4f\ \x73\x65\x30\xeb\x66\xd0\x4b\x4a\x07\x1c\x1c\x73\x83\xfe\x8d\x44\ \xb4\x1e\xa3\x8d\xaa\x74\x6c\x0d\x48\xcc\x75\x45\x66\x62\x54\xb4\ \xa1\xd5\x02\x53\x85\x94\xe0\x9f\xc2\xb1\x2b\x4a\x4d\xb3\x6c\xa9\ \xc2\x09\x45\x73\x5e\xbf\x91\xa9\x1a\x4a\xe2\x35\x8e\x96\xbc\xaa\ \x44\x6f\x02\xd3\x6b\x7a\x1b\xe9\xde\xad\xea\x5a\xc3\x60\x14\x0d\ \xb8\x29\xf2\x1e\xe4\x7a\x71\x58\xf4\xc7\x4f\xdd\xf4\x8e\x89\x66\ \xc3\x76\x30\x5d\x66\xda\x85\x06\x24\x45\x71\x6b\x53\xa8\x2b\x52\ \x89\x52\x0a\x06\xd3\x82\x38\x05\x59\xe6\xa6\xe9\x04\x27\x3d\xa9\ \x93\x42\xea\x38\xda\xaf\x49\xc7\xd4\x0c\x30\xe4\x56\x5e\x53\xc9\ \xd8\xea\x81\x29\xf0\xdc\x5b\x64\x93\xdb\x19\x41\x3f\x8d\x32\xf6\ \x77\x2b\xc3\x8d\xfb\xff\x00\xa2\xbc\xb5\xe9\xb9\xba\xc6\x1e\xbd\ \x10\x56\x62\x7d\xb6\xf7\x0e\x5d\xb6\x44\xa6\x56\x86\x9e\x54\x74\ \x34\x79\x04\x05\x14\x12\x92\x9c\x81\xf2\x33\x8a\x9a\xdb\x34\xe6\ \xab\x6b\x58\xdd\xb5\x74\xc1\x63\x32\xa7\x5b\x19\x86\xdc\x24\xbe\ \xea\x9a\x6c\xb6\xb2\x4e\xe7\x0b\x60\xa8\x10\xa5\x1c\xed\x18\xe0\ \x63\xd6\x9d\xf5\x1d\xda\xdb\x60\xb6\x2a\xe7\x71\x96\x98\xd1\xc2\ \x90\xd8\x51\xe7\x2a\x5a\x82\x52\x00\xf5\xc9\x50\xfe\x75\xb5\x99\ \xaf\x3a\x93\xb1\xe4\xad\x27\x21\x25\x2a\xc8\x35\x4e\x0e\x77\x74\ \xc9\x8b\x8d\x3d\x1e\xff\x00\xdf\xdd\x95\xb5\xcb\xa7\x57\x27\x74\ \xee\xaf\xb6\x47\x55\xa2\xd0\xe5\xfe\x4c\x49\x11\xed\xf1\x16\xb5\ \xc3\x88\xb6\x16\x85\x93\xbb\x62\x4e\x5c\x28\xf3\x10\x81\xd8\x71\ \x57\x1d\xa5\x73\x5d\xb7\x34\xbb\x9b\x11\x98\x96\xa0\x7c\x46\xe3\ \xbc\x5d\x6d\x3c\x9c\x00\xa5\x25\x24\xf1\x8f\xdd\x14\xc4\x41\x27\ \x27\x93\xeb\x4f\xd6\xc5\x97\x23\x8f\x5c\x54\x56\xa4\xa1\x14\xd1\ \x7c\x33\x59\x9f\xaf\x5b\x89\xa5\x24\xb5\x21\x24\x7a\xf6\xa7\x78\ \xe7\x2c\xa7\xd6\x91\xcd\x6b\xc4\x6f\x3d\x88\xf5\xa5\x51\x01\x0c\ \xa7\xe9\x49\xa9\x2c\xd1\x46\xba\x6b\x2c\xd8\xd3\xa9\xe4\xa2\x34\ \x52\xb7\x15\x84\x81\xde\xab\x1d\x4f\x7b\x86\xa8\x25\x40\xad\xb0\ \xe0\xf2\xf8\xa8\x28\xdd\xff\x00\x6b\x15\x64\x6a\x14\x78\xaf\xa1\ \x2b\xfb\x83\x9a\xab\xba\xb3\xe1\xae\xd8\xea\x40\x68\xa8\x24\xed\ \x0b\x4e\xe0\x48\xf4\xc5\x6c\xa5\x25\x4e\x95\xd9\x86\xbe\xb5\x19\ \xcd\xda\xb6\xfb\x1a\xdd\xd5\xcb\x15\xd6\x42\x81\x87\x1e\x42\x1a\ \x90\x73\x82\xde\xf2\x41\x27\xe0\x12\x93\xf4\xae\xae\xb1\xdb\x90\ \x9b\x8a\x9c\x86\xe3\x8c\xa1\xd6\xf3\x2d\xb4\xab\xca\xb2\x7b\x1c\ \x7b\x90\x2b\xe7\xf6\xb6\xb9\x3f\x32\xec\xfc\x2b\x82\xd4\x70\xa2\ \x83\xea\xa4\x1c\xf0\x01\xf5\x1f\x35\xd4\x5f\xa2\x97\x58\x2d\xb7\ \xc8\x0d\xe9\x1d\x45\x31\x98\xb7\xe8\xa9\x4b\x71\xd4\xf3\x9b\x44\ \xd6\xd2\x36\x8c\x13\xdd\x60\x0e\xdd\xcf\xcf\x35\xe7\xab\x6b\x3c\ \xdc\x8f\x57\x83\x83\x86\x1d\x53\x4f\x5f\x5e\xbf\xa2\xde\xeb\x2e\ \x97\x7b\x57\x68\xa7\xed\x4c\x1c\x2d\x01\x4a\x6d\x0d\xaf\x6a\x95\ \x84\xe4\x00\x4f\x03\x90\x9e\x6b\x92\x93\x19\xbb\x73\xef\x5b\xe4\ \xb4\x4b\x81\x28\x54\x84\x2f\xca\x5a\x52\x07\x27\x38\xe7\x68\xc9\ \xf9\x27\xd6\xbb\x88\xa3\xc5\x5e\xe2\x46\x48\xda\x77\x77\xae\x48\ \xeb\x35\x85\x7a\x63\x5f\xcf\x43\xa9\x57\x85\x31\x2a\x53\x4a\x24\ \xa8\x39\x9c\x73\xcf\xb9\xdc\x08\xf4\xe7\xe2\xb9\xd8\x98\x38\xbc\ \xcb\x99\xd3\xe8\xea\x97\x83\xa2\xde\xda\xaf\xa9\x24\xd0\xf2\x57\ \xf6\x19\x31\x5d\x59\x40\x12\xfc\x45\x21\x44\xe4\x6e\x27\xca\xaf\ \x9c\x72\x40\xc7\x35\x65\xe9\xd2\x0b\x45\x09\x75\xc5\xa3\x76\x7d\ \x89\x1f\xe5\x55\x26\x88\x9c\xa9\x53\xdc\x5e\xc6\xc2\x6e\x4d\x26\ \x42\x80\x56\xe5\xf8\xa0\x04\x3b\xdf\xfb\xd9\xe2\xad\x9b\x11\x2d\ \x24\x2d\x40\x05\x27\x29\x20\x7f\x64\xfb\xfb\xd6\x5a\x6b\xac\x18\ \x84\x49\xe3\x24\x36\x85\x25\x38\xca\x8e\x4e\x07\x39\xcd\x28\x8c\ \x0a\xdb\x4a\x82\x46\x3b\x8f\xce\x91\xc5\xe4\x11\xb9\x58\x4e\x55\ \xbb\x07\x38\x22\x9c\x60\x92\x12\x12\xb4\x8e\x3d\xfb\x1c\xd6\xb4\ \x60\xbd\x85\xab\x05\xa6\x14\xb3\xf7\x12\x33\x4c\xec\xba\x23\x95\ \xcd\x77\xcf\x25\xc2\x43\x69\xfe\xc0\xc7\x6f\x83\xf3\x4f\xb2\xd1\ \xba\x1a\x53\xc9\x0a\x50\xdc\x3d\xc5\x31\xbe\x94\xf8\x86\x43\xdb\ \x90\x9c\x04\xa9\x27\xdf\xd0\x7d\x39\xef\x53\x2d\xef\xd8\x10\x77\ \x42\x37\x5c\x7e\x79\x4b\x89\x3b\x02\xd3\xc7\xb9\x1e\xf5\x93\x36\ \xf4\x85\x79\x80\xd8\x57\xc9\x2a\xf5\x1d\xbe\xbc\xd4\x57\x5d\xf5\ \x33\x4f\x69\x47\x4b\x32\x64\xa5\x52\xd6\x8f\x2a\x00\xe7\x1c\xfa\ \x0f\x4a\x68\xd2\x57\x4d\x5f\xad\xae\xf3\x6d\x50\xa3\xaa\xd0\x98\ \xad\x36\xf2\x95\x35\xa5\x00\x42\xf3\xb4\xa1\x39\x1e\xd4\x3a\xb0\ \x86\xb2\x7a\xf9\x9d\x28\x60\x2b\x3a\x5c\x59\x75\x61\xda\xcb\x2d\ \x86\xa0\x21\xc2\xd1\x90\xd2\x55\x8c\x95\x77\xcf\x34\xa9\x95\xc1\ \x53\xa1\x96\xe5\x0e\x33\xc6\x7b\xfe\x35\x03\xb2\x74\xc3\x5c\xc9\ \xba\xca\x1a\x83\x5a\x2e\x2a\x07\xf5\x62\x13\x0d\xe1\xc4\x9f\x5e\ \x47\x1f\x4e\x69\xce\xd1\xd2\xbd\x47\xfa\xee\x6b\x12\x75\xb3\x8b\ \x86\xd8\x49\x8e\x44\x54\x95\x9c\xe7\x3b\xfb\x0e\x38\xed\x5a\x21\ \x59\x3d\x14\x5f\xaf\x88\xba\x94\xb0\x91\xbd\xeb\xa7\x65\xd8\xfe\ \xc4\x95\xa6\x7c\x55\x9f\x09\xe6\xd6\x1b\x00\x10\x97\x33\xc6\x73\ \x9a\x45\x71\x88\xda\x9d\x54\x97\xd7\x1d\x21\x03\x81\xb8\xa4\x1f\ \xfc\xe9\x9e\x67\x4c\x75\x5f\xeb\x76\x58\x8d\xa8\x60\x3b\x15\x6d\ \xab\xc5\x71\xd8\xca\x4b\x89\xc7\x60\x36\xab\x9c\xd6\xa9\x9d\x20\ \xbf\xa6\x4c\x7f\xb3\x6a\xb4\x96\x94\xb2\x97\x52\x5a\x51\x50\x49\ \x07\xee\xe4\x91\xdf\xde\x87\x34\xd7\xba\xfe\x5f\x92\xb1\xf6\x44\ \xee\xeb\x2f\x93\x17\x07\x6d\xe1\x94\x25\xb7\x9b\x2d\x9e\x30\x55\ \xc2\xb8\xf7\xf7\xf9\xa6\xf7\xed\x8c\x78\x61\xe8\xea\x0a\x03\x27\ \x28\x19\x1c\xf7\xff\x00\x3c\xd3\x64\xfe\x9a\xeb\xe7\x6f\x2f\xc7\ \x81\xa9\x5a\x54\x36\x9a\x07\xc6\x75\x94\xf2\xb2\x78\x4e\xd0\x3b\ \x62\xaa\x88\x7d\x40\xbc\x58\xef\x8e\x5a\xaf\xa9\x11\xa5\xb6\xe1\ \x48\x09\x27\x6a\xfb\xe3\x8f\x91\x59\xe5\x56\x12\x79\x6c\xd3\xef\ \x47\x46\x86\x06\x38\x84\xde\x1e\xa2\x93\xec\xf1\xf1\xb1\x77\xd8\ \xe5\xba\xdb\xe9\x43\x99\xc0\x59\x0a\xf6\xed\x53\x0b\x73\x9e\x2b\ \x67\x1d\xfd\x88\xee\x2a\x07\xa4\x5d\x5d\xee\x3a\x1e\x4a\x02\x14\ \x51\xe2\x2d\x03\xb6\x3d\xbf\x1a\x96\xe9\x54\x38\xea\xc9\x42\x89\ \xf0\xcf\x23\x18\xdc\x08\xff\x00\x0a\xa4\x1b\x5a\x33\x97\x88\x86\ \x59\x34\xf7\x42\xa9\x6a\x48\x56\xd5\x70\x73\x9c\x0a\x85\xea\xb9\ \xa0\x45\x74\xab\x01\x09\x49\x25\x47\xd3\x15\x2f\xbc\x2d\xa4\x29\ \xd2\xb4\xe0\xa4\x77\x57\x63\x9a\xac\x7a\x93\x34\x43\xd3\x13\x9d\ \x5a\xc2\x56\x52\x4b\x64\x9f\x55\x70\x08\xf4\x3c\x9a\x4e\x22\x4e\ \xd6\x2b\x45\x5e\x48\xab\xba\x6c\xfc\x4b\x9d\xfd\x53\xfc\x35\x96\ \xa2\x25\xdb\xa3\x8f\xa9\x39\x49\x58\xdd\x8f\x4e\x78\xc8\xfc\x2b\ \x9b\x2d\xab\x4b\x97\xf5\xaf\x79\xfd\xa3\x8a\x70\x1e\xdd\xce\x45\ \x5c\x1a\xab\x57\xc2\xb6\x69\x39\xda\x77\x4a\x2f\xed\x17\xcb\x8c\ \x77\xff\x00\x59\xba\xda\xbc\x36\x58\x64\x27\x7b\xbb\x72\x7e\xf9\ \x48\xc6\xd1\xdb\xd3\x92\x2a\x97\x69\x6f\xb7\xe1\xc9\x79\x95\xe1\ \x01\x28\x0a\x50\xc2\x7b\x70\x3f\x2e\x6b\x6e\x06\x8b\x50\x93\xed\ \x27\xa4\x2b\xc5\xd5\x82\xff\x00\x5d\xce\xab\xd1\x3a\xa3\xec\xf6\ \x98\x2f\x3a\xb0\x15\x25\xa4\xed\xc1\xfb\xd8\x1c\x91\x52\xc9\xfa\ \xb5\x94\x4e\xb2\x41\x65\x64\xc8\x9d\x28\x20\x25\x3d\xc3\x69\xe5\ \x4b\x23\xdb\xd2\xb9\x3e\xcd\xad\x1e\xb7\x5b\x7c\x36\xd2\x65\xcd\ \x07\x6a\x1c\x5e\x4a\x50\x8c\xf0\x94\x8f\x41\x9c\xf1\xc7\x3e\xf5\ \x62\xf4\x9e\xe1\x24\xdc\x57\x74\x92\x97\x6e\x37\xd9\x3e\x44\x04\ \x72\x23\xb6\x0f\x61\xe8\x9f\xc6\xb7\x55\xc5\x55\xa5\x45\x41\x7a\ \xfc\x1e\x62\x78\x05\x79\x54\xde\x28\xeb\xeb\x54\xe5\x3e\x86\xd8\ \x4a\xce\x4e\x33\xcf\x02\xa6\x76\xf4\x06\x9a\x4e\x72\x4e\x39\x26\ \xaa\xbe\x9d\x6f\x0e\x0f\x1d\xd4\xad\xce\xe7\x6f\x61\xf4\xab\x3e\ \x2b\xa9\xc6\x49\xf4\x1d\xf9\xae\xec\x33\x4a\x8c\x6e\x72\xe9\x68\ \xf5\x16\x49\x92\x96\x5a\x0a\x3c\x9a\x29\x39\x47\xda\x9c\x39\x00\ \xa5\x23\x91\xef\x45\x11\x8d\x34\xba\xc3\xdc\xaa\x37\x78\x95\x3d\ \xa1\xc5\x39\x68\x82\x33\x84\xa0\x2f\x1f\xfe\xe2\xa9\x44\x8d\xbe\ \x63\xb7\x1c\x7d\x4f\xfa\xef\x49\x74\xf0\x26\xcf\x18\x0e\xf8\x73\ \xd3\xfe\x31\x54\xaa\x50\xdc\x84\x8c\xe4\x9f\xe3\x5a\xa1\xee\xa3\ \x0a\xd8\x90\x69\x48\xa1\xb8\xc5\xcd\x99\x2a\xef\x4e\xef\xb9\xe1\ \x34\xa5\x9c\x80\x3b\x7c\xd6\xab\x33\x61\x10\x90\x12\x79\x29\xac\ \x24\x61\xc9\x29\x63\x90\x3b\x9e\x3b\x55\x89\x39\xeb\x52\x3d\x6f\ \x93\xa3\x75\x5d\xc6\xed\xe0\x0d\x46\x35\x1f\x84\x87\x16\x47\x8e\ \x94\xf8\xe8\x4a\x5b\x49\xfb\xde\x1f\x81\x9c\x0e\xc4\x66\xa6\xb7\ \x88\xf6\x59\xfa\x8b\xa8\xee\x6a\x94\xc7\x5b\xd0\x22\x34\x61\x2a\ \x47\x78\xd1\xfc\x00\xa0\xb6\x89\xfb\xa4\xb9\x92\x54\x9e\x77\x00\ \x3d\x05\x48\xf5\x2f\x4d\xdb\xd4\x17\x55\x29\xf9\xea\x79\xa5\x3c\ \x97\x1c\x69\x31\x59\x42\xd6\x10\xa0\xa4\xb6\x5d\x08\xdc\x50\x14\ \x91\xc6\x73\xc7\x7a\x95\x4b\xd2\xd1\x66\xb8\xd4\x9b\xdd\xaa\x0c\ \xa7\x18\xe5\xa7\x1e\x8e\x95\xa9\xbf\xf9\x24\x8e\x3b\xfa\x56\x7c\ \xba\xea\x51\x52\x93\xd6\xc5\x6f\xa1\x61\xb3\x73\xea\x56\x86\x95\ \xa9\x61\x44\x7e\x63\xba\x4d\x4e\xc9\x54\x96\x92\x54\xb7\x53\xe1\ \x61\x4a\xc8\xe5\x63\x93\xf1\xcd\x48\xfa\xcf\x74\x87\x2a\xf5\x66\ \xb3\xb9\x68\xb7\xdc\x9f\xb8\x4a\x52\x23\xfd\xbf\x1f\x67\x65\x48\ \x6d\x4a\x2b\x3c\x1f\x36\x32\x12\x07\x24\x9e\xe2\xa4\x37\xb4\xda\ \x27\xa1\x86\xe4\x5a\x60\x4c\x72\x32\x8a\xd9\x72\x44\x74\x38\x5a\ \x51\xee\x50\x54\x0e\xd3\xf2\x29\x04\xfb\x6c\x0b\xa4\x6f\x06\xe9\ \x06\x2c\xd6\x77\x6e\xf0\xe4\x34\x97\x13\xb8\x76\x38\x50\x23\x35\ \x31\xa4\xd4\x9c\x86\x37\x68\x64\x44\x2f\xa1\xd2\x25\x33\xa7\x2e\ \xec\xb4\xeb\x4a\x8f\x1a\xf9\x31\x96\x10\xca\x8f\x82\x86\xc2\xf2\ \x12\xdf\xf7\x39\xe3\xe0\xd4\x66\xe7\x19\xcb\x8c\x2b\xb7\x4e\xa2\ \xa9\xc4\x3d\x6d\xb8\xcf\xbc\x32\x1b\x27\x29\x6f\xc1\x0e\xc7\xfc\ \x3c\x69\x23\x8f\x5f\x0f\xeb\x57\x0c\x68\x71\x62\x21\x48\x8b\x19\ \x98\xe9\x70\x82\xb4\xb6\xd8\x48\x2a\xc0\x19\x38\xf8\x00\x67\xe0\ \x52\xad\x3b\x6a\xb7\xa6\x74\x8b\x92\x61\xc7\x13\x1d\x40\x6d\xc9\ \x01\xa4\xf8\x8a\x48\xec\x92\xae\xe4\x0f\x6a\xb4\xa9\xf5\x52\x65\ \x14\x2f\x64\x51\xfa\xda\xe4\x8d\x5b\xa0\x75\x76\xae\x6c\xe6\x3c\ \xe3\x6b\x84\xc1\x07\x90\x84\x38\xca\xd6\x07\xb7\xed\x5e\x70\x7d\ \x51\x4b\xb5\x94\x25\x69\xed\x51\xaa\xa2\xe9\x88\xe8\x80\x4e\x8c\ \x12\x7c\x28\xa8\xd8\x0b\x89\x79\x68\xf1\x00\x1f\xbc\x10\x3b\xf7\ \xe2\xad\x56\x74\xed\x8d\x98\x8e\x5a\x51\x68\x80\x9b\x76\xed\xc6\ \x20\x8c\x8f\x07\x21\x41\x40\xec\xc6\xdc\xee\x00\xf6\xef\xcd\x2f\ \x4c\x18\x5f\xac\x0d\xc0\xc4\x8f\xf6\xc2\xc8\x64\xbf\xe1\x8f\x10\ \xb6\x0e\x42\x37\x63\x3b\x72\x49\xc6\x71\x93\x51\xc2\x2a\xe1\x72\ \x17\xa4\x9a\xb2\xc2\xd7\x7a\x05\x8d\x26\x88\xcc\xa6\x6d\xb2\x51\ \xb8\x88\xa7\x1f\x68\x8e\x1a\x4a\x9b\x71\xdc\x7d\xe5\x78\xa4\x61\ \x4a\xe4\x95\x2a\xa1\x1a\x11\xb9\x73\x6c\x9d\x32\xb4\xbb\x0e\xd9\ \x36\x03\xb6\xd9\xeb\x6a\x3d\xcd\x65\x31\xde\x90\x1d\xc7\x20\x25\ \x5b\x96\x94\x12\x52\x08\xf5\x26\xae\xcb\x45\xaa\xd9\x68\x92\xec\ \xab\x55\xb2\x14\x27\x9e\x20\xba\xa8\xec\x25\xb2\xe1\xfe\xf1\x03\ \x9f\xc6\x97\xc7\xb3\x69\xfb\x85\xa9\xbb\x13\xd6\x0b\x59\xb7\xb5\ \xfd\x54\x43\x11\x05\x94\x77\xec\x8c\x6d\x1d\xcf\x61\xea\x69\x33\ \xa2\xe2\xdc\xb9\x0e\x8c\x73\x59\x7a\xe5\xf6\x1b\xfa\x63\x6a\x9d\ \x60\xd0\xf1\x2d\x17\x29\x91\xa5\xb9\x1c\xba\x96\xdc\x8e\xe2\x96\ \x80\xd1\x71\x45\x08\x0a\x57\x27\x68\x21\x3f\xf5\x6a\xa0\xd0\x4d\ \xb5\x22\xc3\xd3\x28\x17\x64\xa1\xdb\x1c\xbb\x8d\xdb\xc7\x65\xee\ \x59\x75\xf4\xba\xe9\x61\x2b\x1d\x8f\x3b\xc8\x07\x82\x40\xae\x88\ \x8b\xa7\xa3\x43\x88\x86\x22\x34\xd4\x76\x1b\xe1\xb6\x9a\x40\x4a\ \x12\x3e\x00\xe0\x73\x49\x17\xa7\xec\x66\xc6\x6c\xa6\xcd\x6e\xfd\ \x5c\x92\x4f\xd9\x3e\xcc\x8f\x07\x24\x95\x13\xb3\x1b\x79\x24\x93\ \xc7\x72\x4d\x2f\x34\x5f\xba\xc7\xcb\x0f\x2d\x2f\xa5\xbf\x05\x0b\ \xa9\x63\x43\x3a\x37\x56\xc4\x61\x98\xee\xd8\x60\xeb\x08\x88\xb7\ \x82\x90\xa6\xd8\xca\xd9\xf1\x90\xde\x78\x4a\x02\x94\xa1\x81\xc0\ \xc9\x15\x7a\xa6\x14\x48\x28\x6d\x88\x2c\x31\x1a\x3a\x01\x4a\x1a\ \x65\x01\x28\x4f\x3c\x80\x07\x03\x9a\xdb\x1e\xd1\x69\x55\x98\xd9\ \xd5\x6c\x82\x6d\xc5\x3b\x0c\x42\xc2\x3c\x12\x33\x9c\x6c\xc6\xdc\ \x67\xe2\xb2\x72\x0c\x48\x10\x99\x89\x06\x2b\x11\x23\x34\x36\xb6\ \xd3\x2d\x84\x21\x03\xd8\x24\x70\x2a\xd4\xfa\xb3\x21\x52\xb2\xb9\ \x8e\xd4\x91\x4e\x56\x73\x84\x28\x7a\x53\x7a\x53\xe5\x19\xa7\x1b\ \x42\x78\x55\x4d\x67\xd4\x63\xa8\xae\xba\x15\xca\x21\x2d\x13\xfc\ \x6b\x7c\x70\x7c\x04\xe7\xeb\x9a\x4d\x30\xf9\x42\x7d\xcd\x2b\x4a\ \x7f\x60\x12\x38\xe2\xb1\x4b\xdd\x46\xd8\xfb\xcc\x88\xeb\x46\xae\ \xd3\x11\xe1\x5a\xe4\x47\x87\xce\x16\xfb\xa8\x2b\xda\x3f\xba\x3d\ \xfe\xb5\x51\xf5\x36\xd8\xf7\xea\x77\x23\xae\x4c\xa9\xea\xda\x77\ \x2b\x21\x0a\x5f\xc0\x20\x60\x55\xed\x75\x64\xae\x31\x6d\x23\x19\ \xe4\x9a\x84\x6a\x6b\x62\x1c\x86\xa1\xb3\x3c\x56\xc8\xae\x25\x2c\ \xa8\xc3\x56\x0f\x3d\xcf\x9f\x7d\x44\xb4\x48\x62\xe0\xf3\xe6\xd9\ \x2e\x3a\x4a\xb1\x87\xdd\x4b\x8a\x19\xf9\x00\x1f\x4a\x85\x38\x95\ \x15\x01\xe7\x42\xc7\x21\x47\x23\x9f\xf5\xeb\x5d\x45\xd6\x2b\x3b\ \xa9\x87\x39\x29\x04\xe5\x95\x29\x3c\x76\x29\x1b\x87\xf2\xae\x5f\ \x59\x90\xb7\x08\x5b\x8b\x21\x4a\xc0\xca\xb8\x15\xcc\x95\x19\x52\ \x76\x91\xd6\xa7\x5d\x56\x85\xd2\xd5\x16\x2e\x87\xeb\xc7\x54\xb4\ \x7a\x5a\x8f\x13\x50\xb9\x70\x88\xd8\xc2\x63\x5c\xd0\x24\x20\x0f\ \x60\xa5\x79\xc0\xf8\x0a\x15\x2d\xbf\x75\xe9\x7d\x44\x81\x1e\xd1\ \xa9\xf4\xfb\x11\x2e\x09\x75\x02\x34\xd8\x6e\xa8\x21\x27\x70\xdd\ \xb9\x0a\xc9\xec\x38\xc1\xaa\x42\x42\x1a\xd8\x95\x36\xa4\x9e\x3b\ \x81\xdc\xe3\xd6\x93\xef\x53\x4b\x0a\x6d\x5e\x1a\xb7\x02\x0f\xaa\ \x48\xe4\x7f\x1a\x44\xf0\xf4\xea\x2d\xac\x69\x86\x2a\xa5\x29\xa7\ \x7b\xfa\xed\x3a\x67\xa6\x45\x2f\x6a\x47\xd8\x43\xe8\x41\x8d\xbc\ \x84\xf0\x0b\x4e\x28\x85\x67\x8e\x30\xa3\x93\xb7\xd3\x15\x7f\x59\ \x10\x50\xd8\x04\x27\x05\x1b\xbb\xf2\xa5\x1a\xe5\x2e\x83\xc8\x4c\ \xfb\xf1\xb8\xc8\x79\x6d\x36\xb4\x12\xf3\x69\xe4\x15\x8e\x0a\x86\ \x7d\x87\x38\xf8\xae\xa5\xd3\x24\x22\x33\x7e\x33\xbb\xbc\x4f\x38\ \xcf\xb6\x3f\xca\xb8\xb2\x86\x4a\xb9\x4e\xd5\x49\xf1\x20\xa4\xb6\ \x25\x50\x0a\xca\x96\x16\x52\xb5\x63\x00\x03\xda\x97\x46\x52\x10\ \xb1\xfb\x5d\xe1\x7c\xe0\xfc\x7b\x53\x5c\x22\xd2\xdd\x29\x28\x29\ \x46\xd0\x06\x13\x80\x41\xe7\x03\xf9\xd2\x97\x4a\x9b\x53\x7e\x1b\ \x5b\x92\xa3\xb4\x2f\x3c\x53\x91\x85\xad\x49\x2b\x23\xc4\x8c\x53\ \xc8\x23\x04\x53\x25\xf9\x97\x14\xd1\x4b\x27\x6a\xd2\xad\xe8\x1e\ \x83\xde\x97\xdb\x24\x00\xda\x71\xb4\x92\x39\xc1\xfb\xd5\xb6\x72\ \x42\xd4\xac\xa7\xb6\x3e\xa6\x99\x6b\xab\x95\x83\x71\x91\x46\x4e\ \xe9\xb5\x82\xdd\xaf\xef\x9a\xbb\x53\xb5\x3a\xe9\x0e\xe7\x19\x5e\ \x24\x65\xb4\x1c\x4b\x3c\x64\x84\x6d\xe5\x3f\x74\x04\xe3\xb6\x69\ \xce\x77\xe9\x2d\xd3\xb8\x71\xac\x1f\xab\x2d\xb7\x6b\x95\xd5\x6c\ \x84\xcd\x86\xcc\x52\x87\xa0\x36\x13\x85\x21\xd2\xb0\x01\x21\x40\ \x70\x32\x3b\x9c\xf2\x33\x69\x49\x6d\x0e\xb4\xa6\xdc\x47\x88\x95\ \x27\x18\x20\x62\xab\xed\x53\xd3\xf6\x1d\x92\x6e\x16\xc0\x84\xaf\ \xb1\x49\x47\x21\x3e\xa9\x04\x73\x8f\x8a\x74\x54\x5d\xf9\x5c\xdf\ \x4e\x34\x71\x35\x23\xc7\x93\x49\x7c\xbf\x17\x2b\xab\x87\x5e\x3a\ \xd4\xbb\xbc\xfb\xed\x93\x42\xda\xcd\x8e\x42\x52\xd4\x18\x92\x9b\ \x5b\x8e\xb5\x8c\xe1\x64\xa0\xa4\x92\xac\xf2\x31\x8e\x06\x3b\x12\ \x61\x8c\x7e\x92\xdd\x75\xd2\xb2\xa7\x4e\xbf\xd9\x2d\xf3\x1a\x98\ \x50\x19\x44\xcb\x72\xda\x6e\x36\xdc\xf9\x5b\xd8\x52\x48\x39\xe7\ \x71\x51\xe0\x73\xef\x74\x5b\x6c\x17\x96\x96\xd2\x90\xeb\xe8\x2a\ \x07\x87\x8e\x43\x7c\xe0\x10\x78\xc5\x2e\x9f\x66\xbb\x86\xca\x27\ \xc0\xb7\xdd\x5b\x20\x28\x87\xd9\x2a\x42\xbb\xfa\x03\xc6\x31\x4f\ \x8d\x24\xb5\x5e\xbc\xcd\x18\x8c\x0e\x0d\xbc\xb0\xd1\xf8\xaf\xaa\ \xfa\x94\x13\x1f\xa5\x47\x5a\x2e\x17\xf6\x6f\x31\x2d\x16\x43\x16\ \x33\x2b\x4a\xa1\x22\x0b\x85\x85\xa5\x58\xf3\xac\xef\xdf\x91\x8e\ \x08\x50\x1c\x9e\x0e\x6b\x46\xbd\xfd\x21\xfa\xb9\xaf\xf4\xd3\xba\ \x61\x16\x9b\x55\xac\xc9\x79\xa5\xfd\xa2\xd8\x97\xdb\x92\x14\x85\ \x85\xa4\x21\x45\xc3\xb7\xcc\x91\xc8\x19\xab\xd9\x36\x7b\x92\x98\ \x71\xa8\xac\xc1\xb4\x43\x3c\x2d\xa8\x51\x40\x04\x1f\x7d\xd9\xa6\ \xf7\xf4\xc4\x25\x02\x5b\x33\x14\xe2\x70\x12\x1b\x09\x4e\x4f\xb8\ \x20\x70\x6a\x5c\x5d\xbd\x7d\xcb\x51\xe8\xbc\x25\xba\xed\xdf\xb9\ \xaf\xb6\x9f\x32\xb4\xd1\x9f\xa5\x06\xba\xd3\xd3\x05\x83\x5a\xdb\ \x5f\xb9\xcc\x5b\x69\x6d\xd5\xb4\xca\x03\xe1\x40\x79\x54\x02\x78\ \x59\x23\x04\xf6\xe6\xa5\xd3\xe0\x5a\xfa\x99\x7a\x87\x76\x4d\x96\ \x7c\x6c\x38\x95\x7e\xdd\x92\xca\xca\x10\x90\x84\xa5\x5e\xc5\x58\ \x2a\xf8\xc8\xa9\x1e\x95\xd1\xad\xb7\x72\x33\x1f\x84\xd2\x16\x95\ \x79\x5f\x71\x01\x4f\x2d\x3f\xd9\x2a\x3e\x61\xef\xed\x53\xf8\xad\ \xa1\x0d\x25\x96\x5b\x28\x1d\xb7\x7a\x8c\x7a\xd6\x4c\xb0\x84\xae\ \xbe\xeb\xe1\xd9\xfc\x04\xb8\x78\x4a\xad\xd3\x77\x7c\x9a\xd3\xe7\ \x6d\xdf\xcb\x53\x56\x9c\xb4\xa6\xd0\x5c\x43\x28\xfb\x36\xe6\xc3\ \x6d\xa0\x2b\x77\x03\xb7\x3e\xf5\x2a\xb3\x30\xdc\x56\xde\x53\x79\ \x4a\x49\xce\x7e\x69\x14\x64\xee\x71\x03\x68\x0e\x01\x8e\x7b\x1f\ \x6a\x5f\x3d\xd4\xb5\x04\x10\xa1\x85\x63\x27\x3e\x94\xb7\x6b\xdc\ \xe5\xd6\xa9\x29\xbd\x77\x64\x67\x54\x3e\xa7\x0e\x12\x40\x2e\x2c\ \x20\x7d\x3b\xf0\x6a\xa3\xeb\xec\xc8\xc8\xd2\xef\xc4\x53\x85\x0d\ \x17\x1a\x42\x54\x9e\x4f\x0a\xdc\x4f\xc0\xc0\x3f\x95\x59\x12\x65\ \xa5\xc9\x6e\x28\x20\x29\xb6\x12\xa2\x94\xf7\xc9\xf7\x1f\x87\xa5\ \x50\x5f\xa4\xad\xd7\xc2\x8d\x11\x90\xea\x52\x14\xf9\x52\xd4\x39\ \x07\x00\x0e\xdf\x88\x35\x86\x5d\x79\xa4\xb9\xb3\x4d\x15\x95\xdd\ \xf2\x29\x3d\x51\x01\xb5\x6a\x2b\xbb\x61\x84\x15\xc9\x96\x0a\x48\ \x40\x3e\x12\x42\xf2\xad\xbe\xd9\x38\xc7\xba\x6a\x51\x1a\xde\xe4\ \xad\x04\x34\x9c\x87\x12\xa7\xe7\x4a\x52\xe1\xf8\x80\x00\xb9\x03\ \x09\x46\xd5\xfa\x03\x94\xa7\x9e\xc4\x1c\xf0\x6a\x2e\xdc\xa6\xe4\ \x33\x35\xf4\xa5\x68\x2e\xb9\x90\x47\x00\x1d\xaa\xc2\x7f\x3d\xbf\ \x95\x48\x27\xdc\x1c\x77\xf5\x54\x64\x04\xb9\x1d\x69\x42\xdb\xf7\ \x4a\x82\x48\x2a\x1f\x50\x8e\x7e\x41\xae\x83\x8d\x49\xa4\xbf\xd6\ \xc2\xe6\xe9\x53\x4d\xda\xf7\x4f\xee\x57\x96\xc9\x42\xd5\x39\xf8\ \xd7\x1b\x72\x64\x01\x96\x9d\x6d\x44\xa1\xc4\x28\x1f\xdd\x50\xec\ \x41\xfa\x8f\x71\x56\x7d\x87\xa8\x71\xd9\x65\x98\xd1\x6e\x0b\x43\ \x28\x40\x4e\xc7\xe1\xa5\x05\x27\xea\xd9\x19\xfa\xe2\xa3\xd7\x1d\ \x2e\xbb\xea\x95\x24\x2c\xb5\x39\x5d\xd4\xae\xce\x9f\x93\xef\xf3\ \xeb\xeb\x5a\x6c\x5a\x1a\xe6\x66\x04\xce\x2b\x8a\xd8\xfd\xe5\x23\ \x3f\x85\x6d\xc5\xd2\xa7\x17\x9e\x5b\x9c\x9c\x3c\x95\x78\x70\xe5\ \x6b\x17\xde\x84\xea\x4d\xbe\x1b\x6a\x91\x26\x78\x53\x68\x1c\x9d\ \x87\xf8\x0e\x6a\xcc\xb3\xf5\x6a\xcb\x37\xc3\x69\x13\x52\xb7\x1c\ \xc0\x65\x86\x92\x5c\x75\x7e\xde\x54\xe7\x68\xf9\x56\x2a\x91\xd1\ \xdd\x3f\xd3\x72\x5c\x4c\x6b\x83\xd2\x66\x36\x4f\xdc\x6b\xf6\x40\ \x9f\x92\x39\x35\xd0\x5a\x1f\x4e\x59\x2c\x50\x50\xcd\x92\xcf\x12\ \x0a\x55\x8c\xa9\xb4\x0d\xea\xfa\xa8\xf2\x7f\x3a\xac\x31\x78\xa7\ \x68\xd3\x8b\x39\x18\xaa\x58\x58\x36\xa1\x26\xc9\xf6\x97\x93\x2a\ \x4c\x60\xf3\xad\x96\xc2\xb9\x09\x3d\xe8\xa7\x1b\x5b\x78\x8e\xca\ \x07\x07\xf9\xd1\x5d\xbc\xce\xcb\x3e\xe2\xe9\xc1\xa8\x95\x8d\x91\ \xb0\xd5\x92\x13\x84\x67\x21\xc3\xff\x00\xf7\x15\x5b\xa4\xa0\xee\ \x40\xe0\x80\x72\x69\x7c\x08\xa5\x5a\x1e\xdb\x29\x00\x12\x9f\x13\ \x38\x1f\xf1\x8a\xa6\xf7\x54\x56\x94\xac\x80\x30\x73\xc0\xad\xd4\ \xdd\xe0\x8c\x0d\x58\x99\xdb\x49\x4c\x26\xc9\x27\x84\xf1\xc7\x15\ \xaa\x18\xdd\x31\xc7\xb3\x9c\x71\xc8\xe4\x57\x96\x97\x02\xed\xc9\ \x3b\x8e\x40\xe4\x66\x8b\x77\x09\x77\x18\x3e\x6c\x7c\xd5\x80\x8a\ \x33\xd4\x9b\x85\xb2\xdf\xa8\x35\x08\xd3\x08\x95\x6b\xb1\x5d\xff\ \x00\x56\xcb\x58\x9b\xb5\xe5\xa8\xb8\x94\x05\x34\x8d\x98\x57\xf5\ \x8d\x93\xb9\x49\xee\x7d\xb3\x4f\x57\xde\xa2\x49\x82\xbd\x4b\x6d\ \xd4\x76\x96\x20\x3f\x67\xb6\xa2\xe4\x55\x12\x59\x7d\x0e\xb4\xbd\ \xc3\x6e\x4a\x11\x85\x85\x27\x6f\x6c\x1c\x83\xc5\x37\xbd\xd3\x8b\ \xdc\xae\x9b\xeb\x2b\x23\x72\xad\xc9\x95\x7e\xd4\x29\xba\x45\x52\ \x9c\x58\x42\x1a\x0e\xc7\x56\xd5\x9d\xb9\x0a\xc3\x2a\xe0\x02\x39\ \x1c\xf7\xc2\x8d\x5d\xa1\xdf\xbe\x6a\x2d\x53\x3e\x64\xa6\x5b\xb7\ \x5e\x6c\x4d\xdb\x1b\xd8\x49\x75\xb7\x12\xb5\xab\x79\x49\x18\xc0\ \xdc\x08\xe7\x9c\x7a\x57\x36\xf2\x95\x4c\xdd\x86\x9f\xdd\x85\x3b\ \x76\xaf\xbf\xe0\x8d\x5a\xb5\x35\xc0\xdf\xad\x96\x9b\xe5\x99\xb8\ \x2b\xbb\x30\xb7\xa1\xa9\x99\x5e\x36\x0a\x00\x52\x9b\x73\x28\x4e\ \x15\xb4\xe7\x23\x20\xf3\xcf\x19\xa6\xfb\x37\x51\x26\x49\xd1\xcc\ \x6a\x69\x36\x16\xe3\xc7\x9a\xa6\x23\xc0\x6c\xcc\x1b\xe4\x48\x71\ \x7b\x08\x27\x6e\x10\x80\xac\xf9\x8e\x4e\x01\x38\xf4\xa7\x96\x34\ \x5e\xa5\x93\x7f\xb3\x5e\xaf\x92\x2d\x89\x4d\x9a\x3b\x88\x60\x44\ \x52\xd4\x5f\x71\xc4\x04\x17\x14\x14\x91\xb0\x6d\x07\xca\x37\x7d\ \xe3\xcd\x31\x40\xe9\xc5\xd9\x7d\x2b\xb4\x69\x79\x2e\xc1\x54\xfb\ \x5b\xe8\x92\xda\xd4\x92\xe4\x75\xad\x0e\x15\x84\xa8\x10\x0a\x90\ \x41\x20\xf1\xeb\xeb\xeb\xba\xf2\x7b\x18\xda\x91\x27\xd2\xba\x99\ \x77\x69\xd7\x6b\x5c\xb8\xf1\xe3\xcf\xb6\x38\xda\x5d\x4c\x79\x1e\ \x33\x4e\x21\xc4\xee\x42\xd2\xad\xa9\x3c\xf2\x30\x47\x04\x1e\xf4\ \xcd\x17\x57\x3d\xa5\xee\x1d\x43\xb9\x4d\x82\xf3\xdf\xaa\x53\x6f\ \x77\xc3\x4c\xd5\x2d\x0b\x69\xcd\xc9\x1b\x10\xa4\x80\xda\xb6\xf2\ \x40\xc8\x27\xd7\xd6\xa5\xda\x27\x4d\xbd\x00\x48\x76\x65\x96\xc9\ \x6c\x52\xca\x70\x8b\x6a\xb7\x05\x81\x9e\x54\x7c\x34\x76\xc9\xc7\ \x1c\x64\xd4\x7f\x59\xe8\x0b\xcd\xe7\xfa\x7e\x88\x4f\xc0\x48\xd4\ \x31\xa0\x35\x13\xc5\x5a\xc7\x86\x58\xce\xf2\xe6\x12\x70\x0e\x78\ \xc6\x7e\x71\x54\xa8\xdb\x8e\x85\xad\x24\x93\x5e\xb4\x62\xa7\xf5\ \x45\xe9\x8d\x51\x36\xc7\x70\xb2\x43\x89\x70\xfd\x54\x6e\x71\x76\ \x4c\x53\xad\x94\x85\x6c\x28\x70\xf8\x69\x29\x50\x51\x1d\x81\x18\ \x3c\x76\xa6\x1d\x25\xad\xef\x4d\xe8\x3d\x39\x36\xee\xcc\x19\x97\ \x1b\xd3\x88\x66\x17\xfb\x41\x6c\x2c\x90\xa5\x2d\x6e\x9d\x98\x42\ \x52\x13\xfb\xa1\x5e\x82\xa7\x57\x0d\x2b\x2e\xe1\xd4\x8f\xe9\x1a\ \xde\x8e\x88\x46\xc0\xe5\xb0\xa3\x71\xf1\x43\xaa\x79\x2b\xdd\x8c\ \x63\x6e\x01\xf5\xce\x7d\x3d\x6a\x14\xd7\x4b\xef\xc9\xd2\x5a\x7e\ \xd5\x2c\xd9\x1f\x93\xa7\xa4\x05\xc6\x0b\x5a\xdd\x62\x5b\x78\x52\ \x54\x97\x12\x50\x36\x12\x95\x0c\x63\x7e\x08\xa8\x53\x90\x4e\x13\ \x4e\xe8\x5b\x23\xa9\x2e\x33\x64\x2f\xfe\xa6\x4b\xd7\x16\xef\x89\ \xb2\xbb\x11\x99\x61\x49\x53\xaa\x4e\x50\xa4\x2c\x81\x94\xa8\x94\ \x72\x40\xc6\x4f\xb5\x38\x7f\x4d\xae\xb0\xae\x2e\xc1\x6a\xcf\x6e\ \x7a\xe9\x02\xd9\xfa\xc6\xe0\xd2\xee\x45\xb6\xd0\x32\xad\xad\x36\ \xaf\x0c\xef\x59\xda\x4f\x21\x23\xdc\xf3\x49\xee\x5a\x1a\xeb\x72\ \x85\x65\x8e\xd5\xba\xc3\x67\x5c\x4b\xec\x5b\x8b\xcd\x44\x52\xbc\ \x35\x36\xd2\xb2\xac\x10\xda\x77\x2f\xd0\x65\x20\x76\xe4\x53\xad\ \xe7\x42\x3a\xde\xb9\x5e\xa5\x85\x6b\xb0\xdd\xd1\x2e\x1a\x22\xc8\ \x89\x76\x04\x04\x29\x0a\x25\x2e\x36\xa0\xda\xfd\x14\x41\x4e\x06\ \x70\x39\x15\x15\x27\x24\xad\x72\xd0\x84\xef\x71\xda\x27\x53\x1c\ \xbc\x5e\xad\x76\x7d\x39\x6e\x80\xeb\xf3\xec\xed\x5d\x9a\x55\xca\ \xe0\x62\xa5\xd4\x38\x78\x69\xbd\xad\xac\xa9\x63\x07\x77\x18\x4f\ \xcd\x37\x45\xbd\xeb\x29\x9d\x53\xd6\x76\x38\xed\xda\xdc\x85\x6d\ \x8d\x10\x47\x6d\xd9\x2b\x6f\x69\x71\xb7\x94\x95\x6e\x4b\x64\xe5\ \x44\x24\x2b\xfb\x21\x3c\x66\xb7\x75\x07\x45\x5d\x75\x55\x89\x8b\ \x03\x16\xad\x37\x09\x94\x36\xd1\x8b\x3d\x2e\xb8\x97\xad\xce\x0d\ \xa5\x4a\x61\x09\x6c\x76\xc7\x1e\x74\x7a\x67\xda\x9d\x23\xe9\x9b\ \xd5\xa7\xa9\xb7\xad\x42\xc3\x90\x65\x5b\x6f\x4c\x44\x43\xc5\xd7\ \x94\x89\x0c\xae\x3a\x16\x9e\x12\x10\x52\xb0\xad\xd9\xfb\xc9\xc7\ \xb1\xac\x11\xd2\x46\xf9\x71\x25\xbf\x27\xf4\x7f\x82\x13\xa0\xf5\ \xcc\xb6\xf4\x9e\x84\x89\x6f\xb4\xbb\x36\x4e\xa1\x6e\x4a\x19\x13\ \x6e\x2a\x51\x6c\xb4\x4a\x89\x71\xd2\x92\x54\x36\x85\x1c\xed\xcf\ \x00\x01\x4e\x8b\xea\x43\xcf\x59\x4a\x5c\xb2\xb6\x2f\x89\xd4\x0a\ \xb0\x08\x68\x94\x4b\x2a\x90\x90\x14\x56\x1c\xd9\x90\xde\xcf\x36\ \x76\x64\x76\xc6\x69\x26\x8a\xe9\xd5\xea\xcc\x9e\x9d\xb7\x2a\x55\ \xb9\x6a\xd3\x3f\x6d\xfb\x6f\x86\xe2\xc8\x73\xc6\x6d\x69\x4f\x87\ \x94\x8c\xe0\xa8\x67\x3b\x7f\x1a\x43\xa8\x74\x7c\xcb\x3c\x69\xf7\ \x59\x17\x08\xac\xcb\xfe\x98\x2e\xfb\x6f\x52\x59\x79\xe6\xca\x16\ \xda\x51\xe1\xbc\x10\x82\x51\x94\x85\xe5\x40\x10\x0e\xde\x69\xea\ \xf7\x46\x5b\xd4\x50\xd7\xd6\x88\x96\x68\xad\x51\x3a\xf5\x7c\xbf\ \xd9\x6e\x36\xb6\xa0\xcb\xb2\x2d\x86\x9e\x2d\xbe\x5d\x43\x85\xc4\ \x15\x85\x24\x94\xa4\xe3\x6e\xd3\xc8\x07\x92\x3d\x39\x9f\xdb\x9b\ \x21\x9d\xde\xf5\x4a\x74\xfa\x36\xb1\x9d\x71\xd7\x77\xeb\x6a\x20\ \x35\x3a\xe9\x2a\x28\xb7\x3f\x32\x3b\xc8\x8a\xe0\x69\xb0\x85\x10\ \x08\x0b\x52\x40\xca\x42\xb0\x37\x11\x9c\x7a\x55\xe2\xdf\xec\xa3\ \x80\xac\x6e\x03\x9c\x0a\xad\x59\x5d\x58\xd3\x84\xbb\xd5\x9a\x5e\ \xf3\xc8\x48\xc7\x00\xd2\xe5\x28\x21\x19\x24\x62\x92\x46\x49\x53\ \xbb\x8d\x63\x73\x77\xcb\xe1\x8e\x29\x4e\x39\xa4\xa2\x6b\x52\xca\ \x9c\x8c\xe5\x79\x9b\xde\x80\x08\x3e\x95\x1c\xba\xb6\x92\xda\x93\ \x8a\x7a\x84\xf0\xf0\xca\x14\x7b\x53\x7d\xdb\x6a\x42\x88\x23\xb5\ \x68\xa2\xb2\xca\xc2\x2a\x4a\xeb\x32\x28\x7e\xac\x5b\xd9\xf0\x5c\ \x75\xcd\xa1\x23\x39\xc9\xc0\x23\xd4\x57\x1e\x5d\xed\x4c\xc5\x9d\ \x3a\x1b\x8b\x49\x4a\x17\x84\x2c\x11\x82\x3b\xa4\xff\x00\x01\xda\ \xbb\x8f\xa8\xed\x32\xfc\x57\x12\x52\x15\x90\x46\x31\x9c\xd7\x21\ \xf5\x4d\x8b\x7b\x77\x22\xdb\x6a\x40\x90\xc2\x8e\x50\xca\x07\x95\ \x27\x9c\x28\x8f\x5c\xfa\x52\x7a\x46\xea\x49\x8d\xe8\xd9\xae\x23\ \x8f\x69\x5b\xcb\x01\xb4\x16\xc1\x2e\x36\xda\xb3\xbb\x1b\x77\x66\ \x90\xab\x24\x03\xfc\x3d\xa9\x44\xc2\x92\xac\x93\x93\xea\x7e\x7d\ \xa9\x32\x73\x9c\xfe\x35\x96\x3b\x1b\x2a\x7b\xd6\x2c\x3e\x86\x5e\ \x55\x07\x50\x2e\xde\x9d\xa9\x75\xf4\x9f\x05\x6a\xec\x92\x01\xcf\ \xe6\x3f\x3e\x2b\xb1\xf4\xdc\xc5\x4a\x89\x1d\x78\x4a\x96\xcb\x61\ \x0e\x82\x78\x2a\xc6\x4f\x6f\xf5\xc5\x70\x15\xb5\xd7\xe3\x5d\xa3\ \xc9\x86\xa5\x25\xd0\xa0\xa6\xcf\x63\xbb\xbe\x2b\xae\xfa\x67\xa9\ \xc4\xcb\x4c\x0b\x8c\x64\xbc\xff\x00\x8a\x0b\x8e\x82\x07\x99\x69\ \x49\xcf\xd0\x9e\xd8\xf8\xae\x46\x3a\x9e\x4a\xaa\x6b\x66\x75\xf0\ \x53\xe2\x50\xc9\xce\x25\xcd\x16\x52\x52\x50\xe8\x20\x21\xd0\x0a\ \x49\xf5\xee\x08\xc7\xa7\x22\x9c\x96\xe2\x50\xc6\x14\xe6\xc5\x28\ \x85\x79\xbd\x0e\x2a\x31\x6d\x7d\x1f\x64\x3b\x5b\x07\x01\x2b\x4a\ \x09\xc7\x98\xf7\x03\xe0\x71\x4f\x4a\x79\x29\x4b\x99\x41\x53\x89\ \x4f\x09\xce\x48\x57\xf6\xbe\x9e\xff\x00\x14\xa8\xcb\x40\x9a\xd4\ \x75\x83\x28\x21\xe4\xa9\x4b\x40\x07\x18\x27\xb6\x7d\x85\x3b\xaf\ \x2e\x34\x57\x90\x49\xc1\x2a\x1f\xcb\xe0\xd4\x2e\x44\xc2\xc3\xa1\ \x01\x40\x37\x80\xb5\x85\x71\xdf\xdb\xe7\xe9\x4f\x91\x64\xed\x61\ \x05\x04\xbb\x9f\xbe\x53\xc7\x70\x3b\x81\x53\x09\xf2\x29\x28\xb5\ \xa8\xe0\xa4\x2b\x07\x91\xbb\x18\x15\xa0\x85\x24\xf2\x33\x8e\x4e\ \x3b\x66\x94\xa0\x95\x25\x21\x5e\x53\x8e\xc1\x40\xee\xac\x78\xf3\ \x63\x18\xf5\xc5\x35\x3b\x30\x4e\xe6\xa6\x9c\x6b\x2a\x52\xc6\xd0\ \x91\xe6\xdc\x3d\x3e\x2b\x15\xc8\x86\xd9\x48\x52\x41\xe3\x00\x9e\ \x72\x3e\x4d\x6c\x75\x2d\xa5\x25\x6e\x1d\xde\x98\x1d\xe9\xbe\x41\ \x65\x2a\xcb\x4d\x95\x82\x9c\x7d\x0f\xe3\x5a\x23\x27\xc8\xba\xd4\ \xd8\xe3\xd1\x0a\x77\xb8\xc0\xce\xfd\xaa\x1e\xde\xf5\x8a\x26\x47\ \x52\x40\x65\x9f\x2e\x4e\x71\xed\xee\x6b\x4a\x76\xe7\x7f\x86\x9d\ \xc4\xf3\xba\xb0\x2b\x47\x2a\xd8\x9c\xe7\x83\xc0\xcd\x44\x99\x74\ \x66\x42\x4b\xea\x4a\x52\x13\xc7\x7a\xf5\xb4\xa1\x2d\x03\xd8\x93\ \xe9\xe9\x5e\x87\x02\xd4\x70\x3c\xc7\x9c\xfa\x56\xc4\xe1\x03\x9f\ \x4c\x9a\xcd\x32\x1b\x33\x8e\xb2\xdb\x81\x69\x4e\x48\x1c\xe3\xda\ \x91\x6a\x7b\x88\xf0\x91\x19\x05\x3b\x94\x00\x48\x07\xd7\xbf\xe7\ \xde\x92\xbb\x74\x47\x88\xa0\x97\x30\xda\x81\x4a\x47\x62\x78\xe4\ \xf3\xed\x51\xb8\x73\x45\xc1\xf3\x26\x46\xe5\x36\xc2\x89\x6c\x64\ \x83\x9e\x47\x22\xb3\x54\xa9\xa6\x54\x4c\x61\x77\x77\xc8\xdb\x73\ \x92\x88\x50\x9c\x38\xd8\xe1\xdc\xb5\x0f\x82\x3f\xf4\xae\x45\xfd\ \x23\xee\xce\x4d\xea\x0b\x50\x50\xea\x14\xcc\x78\xe8\x52\x90\x83\ \x90\x95\xab\x24\x83\xf8\x60\xfe\x22\xba\x2b\x59\xea\x08\xd0\x62\ \xbf\x26\x44\xa5\x33\x19\xb4\x17\x5c\x58\x20\x8e\x07\x63\xf1\xdb\ \x1f\x53\x5c\x63\x74\xb8\xae\xe9\x7e\x99\x76\x78\xef\x5c\xa9\x0b\ \x70\x83\xc7\x04\xf0\x3f\x01\xc7\xe1\x4c\xc0\x43\x3d\x57\x3e\x4b\ \xf9\x23\x15\x2c\x94\xd4\x79\xcb\xf8\x26\x3a\x45\x98\x32\xad\xaf\ \xc7\x7d\x61\xb5\x12\x92\x8c\xf6\x57\x03\x82\x7d\x06\x78\xcf\xcd\ \x2a\xb1\xb9\x19\x6e\x8b\x53\x8d\xf8\x32\x63\xa8\x96\x52\xb1\xc9\ \x0a\xdb\xce\x7d\x71\x83\xf9\x9a\x61\xb0\x2d\xc5\x35\x15\x4d\x2c\ \xee\x5b\x9f\x67\x29\x00\x1d\xc7\xba\x4f\xe3\x8c\x54\xef\x4a\x5a\ \xad\xf7\x99\xa9\x44\xe6\x54\x95\xc7\xe5\x0f\x32\xad\xab\x49\x3c\ \x00\x0f\xc7\x7c\x56\xa8\xda\x32\x95\xfb\x6e\x65\xc7\x55\x6a\x9c\ \x6f\xee\xd8\xb0\xf4\x96\x9b\x6a\x64\x54\x82\x90\x54\x45\x3f\xa7\ \x46\xbe\xc4\x8c\x82\xa0\x83\x4b\xb4\x16\x9d\x9d\x0c\x20\xb3\x73\ \x72\x52\x06\x30\x97\x1b\x09\x50\x19\xe0\x64\x77\xab\x76\x25\x97\ \xed\x70\xc0\x59\x4e\xe0\x3b\xd7\xa6\xc3\xca\x96\x2e\x9a\x94\xe3\ \xb1\xe5\x25\x26\xa5\x64\xee\x40\x34\xc6\x9e\x66\x2b\xe8\x50\x40\ \xef\xcd\x5a\x70\xa1\x25\x31\x52\x52\x00\x18\xa4\x30\x2d\x6d\xb4\ \x54\xd9\x00\x28\x76\x38\xa9\x0d\xa4\xa4\xb4\xa6\x57\xf7\xbd\x05\ \x6b\x9a\x8c\x17\x55\x15\x83\xbb\xb3\x1c\xed\xa9\x4e\x5a\x38\x3f\ \x18\xa2\xbd\x86\x76\x6d\x49\xfd\xd3\xcd\x15\xcc\xaa\x9b\x91\xd1\ \xa5\x2b\x22\x23\xd3\xf4\xa2\x7f\x4f\xa2\x30\xa0\x0a\xb0\xe6\x7d\ \xff\x00\xac\x55\x47\xe4\x47\x5c\x69\x0b\x8c\xb3\x8c\x1e\x29\xc3\ \xa7\x4e\xaa\x2e\x95\x84\xe8\xe5\x2a\xdf\x91\x9f\xf8\xc5\x53\xc6\ \xa1\x84\xd4\xc8\xe2\x54\x70\x0a\xc1\xce\x12\x39\xf9\xae\x8d\x35\ \x97\xc0\xe5\xdf\x34\x13\xe6\x86\xdd\x36\xf6\x50\xb6\x16\x7b\x1e\ \x29\xc2\x18\x29\x7d\xc4\x92\x78\xf8\xa8\xfb\x0e\xa9\xa7\xbc\x40\ \x08\x29\xe0\x8c\xf7\xa7\xa6\xde\x0e\x29\x0f\x24\xe4\x91\x83\xcd\ \x34\xa1\x36\x61\x59\xb5\xa4\xf7\xf2\xfa\x53\x55\xc4\xe4\x21\x19\ \xf2\x9a\x53\x6a\x7d\x0b\x82\xb6\xf3\xd8\x52\x39\x4f\x21\xc2\x87\ \x10\x77\xa4\x28\x8c\x83\x9e\x41\xc7\xf0\x39\xac\x54\xe2\xe3\x36\ \x6e\xab\x25\x28\x23\x09\x6b\x42\x23\xec\xf8\xf4\xa4\xf1\x51\xe2\ \xad\x0d\xa9\x5b\x73\xdf\x8a\xc1\xc5\x87\x65\x7e\xd3\xee\x27\xde\ \x86\xe4\x36\xbb\x80\x65\x97\x10\xa7\x50\x37\x29\xb0\xa1\xb8\x24\ \x9e\x0e\x3d\xbe\x6b\x52\x56\x46\x56\xee\xc5\x8f\x34\xe4\x7f\x32\ \x14\x14\x07\x7a\xdf\x15\xc0\xc3\x41\x6b\x18\x2a\x3d\xab\x25\xb6\ \xb4\xac\x2c\x1c\xa4\x8e\x45\x78\x52\x1d\x58\xe3\x18\xa4\x39\x66\ \x5a\x8e\x4b\x2b\xd0\x1f\x2b\x0b\x49\x6c\x67\x75\x6c\xfb\x32\x0a\ \x14\xa5\x2c\xee\xaf\x51\xb8\x37\xb0\x0e\x47\x6c\xd6\x4b\x6d\x69\ \x8d\x84\x9d\xca\x35\x46\xf9\x0c\x4b\x98\x91\x59\x1b\x14\x01\xe0\ \xd2\xbc\xa5\x6d\x05\x03\x8c\x52\x28\x72\xe2\xc9\x6d\x69\x61\xf6\ \xa4\x6d\x25\x0a\x2d\xac\x28\x02\x3b\x8c\x8f\x5a\x51\x19\x0f\x79\ \x80\x42\xb6\xfa\x66\xa6\x5a\xa2\xb1\x1c\xa3\x9d\xc1\x1f\x5a\xd9\ \x3d\x43\xca\x3b\xd6\xa8\xe1\x48\xda\x14\x9c\x7a\xd6\xa9\x6f\x85\ \x38\x40\x3f\x15\x95\x46\xf2\x35\xb9\x5a\x06\xb4\x11\x95\x2b\xd2\ \xb4\xe7\x72\xca\x88\xaf\x1d\x5e\x06\xc4\xe3\xe6\xb7\xc4\x60\xac\ \xf3\xf7\x45\x3f\x48\xab\xb3\x3e\xb2\x76\x46\xfb\x7b\x3d\xdc\x57\ \xe1\x5b\xdd\x56\xe5\x63\xd0\x77\xaf\x14\xb0\x06\xc4\x70\x2b\xc4\ \x83\x90\x9e\xe6\xb3\xbb\xb7\x76\x69\x4a\xca\xc8\xd8\x95\x06\x9a\ \x2a\x3d\xe9\x08\x4f\x8e\xb2\xb5\x76\xad\xb3\x49\x2b\x0d\x03\xc5\ \x68\x79\x41\x86\x4f\x22\xad\x05\x65\x7e\x6c\xac\x9d\xdd\xb9\x21\ \xae\xf1\x31\xbb\x78\x2e\x29\x61\x29\x1e\xa4\xd5\x6d\xaa\xba\xb3\ \xa6\xa1\xb4\xe2\x5c\xb9\xb3\xe2\x20\xe0\xb6\x16\x9d\xd9\xfa\x66\ \x9b\x3a\xf7\x7f\xbc\x1b\x78\xb6\x59\x1f\x87\x1a\x43\xc7\x2b\x91\ \x25\xcd\xa1\xa4\xfb\x81\xea\x4f\x35\xcc\xea\xd3\x2f\xb4\xa9\x92\ \xef\x1a\xa6\x3c\xd0\x7c\xc6\x34\x62\xa2\x1d\x50\x3c\x0c\x80\x06\ \x73\x58\xf1\x58\xfe\x1c\x94\x56\xe4\x50\xc3\x2a\xd7\x72\x95\x91\ \x33\xea\x8f\x56\x15\x70\x6d\xd8\xd6\x44\x4b\xda\x78\x5c\x8d\xc1\ \x00\x7c\x05\x67\x8a\xa1\x2e\xd3\x9f\x78\xe5\xf7\xc3\x3b\x95\x93\ \x80\x4e\x13\x8e\xfc\xf7\x27\xde\xac\x8b\x9c\x3b\x2b\x70\xb6\x5c\ \x25\x22\x12\x10\x90\x7c\x24\xba\x92\xa2\x48\x04\x1c\x9f\xf0\x15\ \x06\xbc\x4f\xd3\x0c\x33\x25\x11\xd8\x54\xd7\xd6\x02\x5b\x75\x6a\ \x52\xd4\x9e\x73\x9c\x9c\x01\xf9\x1a\xcd\x1a\xb3\xae\xf3\x49\x1d\ \x5a\x31\xa1\x41\x64\xa7\x7b\xbd\xd9\x11\x52\x14\xb6\x8b\xab\x25\ \x3f\xd9\xcf\x75\x13\xed\x58\x0c\x11\x9c\x7e\xed\x6d\x93\x25\xc9\ \x0e\xf8\x8b\x3b\x71\x9d\xa9\x4f\x61\x5a\x52\xa2\x84\x28\xfb\x8a\ \xd2\xaf\x6d\x4c\xf3\xb5\xf4\x14\xb0\x7c\x29\x4c\x3e\x47\xef\x05\ \xe3\xf1\xab\xbf\xa6\x12\x57\x67\xbc\xa2\xce\x40\xf0\x5d\x74\x3f\ \x1d\x59\xf2\xe7\x82\xa4\xfd\x78\xcf\xfe\x95\x56\xea\xeb\x6c\x2b\ \x65\xc5\x9b\x5a\x56\xa0\xf2\x2d\xec\x97\x54\xa5\x64\x87\x8a\x02\ \x94\x9e\x4f\x03\x9e\xde\x98\xab\x45\x88\x6a\xb8\xe8\x7b\x55\xd5\ \xb5\x94\x3b\xe1\xb4\x54\xe2\x40\xdc\x95\xa7\x8c\xe3\xe7\x18\xfc\ \x6b\x99\x8f\x95\xe1\x17\xc9\xfa\x47\x6f\xa2\x62\x9c\xa7\x0e\x7e\ \xae\x5f\x76\x7b\xcb\x29\x75\xe5\xad\xd0\xb6\xf8\x4a\x41\xe3\x9d\ \xde\xde\xd9\xf5\xa9\x23\x52\xdb\x56\x77\x27\x6a\x0a\x55\xb4\x13\ \xdf\x68\xc1\xdc\x7e\x3d\x2b\x9e\xb4\x96\xa3\x75\x49\x5c\x49\x0a\ \xf0\x25\x05\xed\x78\x2b\xb6\x33\x9c\x83\xed\x90\x4d\x5b\xba\x72\ \xfa\xc4\x88\xcf\xc4\x5a\xd2\xe2\x8e\x49\x4e\x41\x51\x48\x27\x27\ \xf1\xe0\xf1\x5c\xd8\xcf\x2b\xca\xcd\xb5\xb0\xed\x2b\xa2\x62\xb7\ \x1a\xfb\x39\x5b\xdb\x7c\x40\x37\x00\xa3\x95\x03\xeb\xf4\xe3\xf9\ \xd6\x36\x1b\x92\x52\x1d\x42\x1d\x59\x64\xac\xe7\x27\x71\x38\x38\ \x18\x3e\x99\xf4\xa6\xb6\x6e\x2d\x29\x85\x48\x3e\x11\x64\xa0\xab\ \x07\x2a\xe3\xe3\xdf\xe9\xf1\x4d\x0f\xce\x62\x25\xe2\x38\x6a\x3e\ \x5e\x71\x7b\x7c\x24\xaf\x0a\x2b\xc6\x46\xef\x7c\x0c\x7e\x75\x6c\ \xf6\x69\xa3\x26\x4b\xe8\xcb\x36\x43\xcb\x4b\xc8\x70\xe1\xa6\x90\ \x00\x69\xa0\xac\x92\x9f\x53\xc7\xcf\x14\xe0\xdc\x9d\xea\x05\x21\ \x38\x3d\xf1\xe9\xf5\xa8\x8d\x9e\xef\xe2\xba\x8d\xd2\x9a\x4e\x5b\ \xcb\x98\xe5\x48\x03\xd7\xf0\x3c\xd3\xdb\x6f\x17\x23\x78\xc8\x2a\ \x79\x0e\x04\x84\x24\x0e\xe0\x1c\x67\x3f\x3e\xd5\xae\x3a\xea\x8c\ \xed\x5b\x46\x2c\x75\xc7\x14\x14\x12\xa4\xab\x1c\x2b\x3d\xc5\x68\ \x62\x30\x74\x82\xa7\x95\x8e\x48\xcf\x35\xb5\x97\xd1\xb1\x0e\xba\ \xb4\xaf\x6a\xca\x4a\x47\x74\x91\xc7\x3e\xf5\xbe\x2a\xda\x01\x68\ \x20\xb9\x85\x67\xcc\x30\x47\xb5\x3e\x04\xa9\xe9\xa1\x8a\x62\x6f\ \xf3\xa5\x3b\x8a\xb3\xf8\xe3\xf9\x1a\x4d\x22\x2a\x9d\x5a\x90\x52\ \x84\xa7\x1b\xb9\x39\x27\x07\x9a\x5b\x1d\xc0\x42\x96\x96\xd4\x0e\ \x77\x04\x13\xc9\x07\xbd\x27\x7d\x63\x6b\x6a\x0a\x04\x94\xfa\x1e\ \x70\x7b\x8f\xaf\xc5\x59\xd8\x9c\xcd\x31\xb3\x86\xde\x70\x24\xfe\ \xcd\x05\x27\x70\x3c\x12\x78\xff\x00\x43\xe6\xb4\xc8\xb9\x25\xa6\ \x1c\x7d\x4b\x46\x5b\xc9\x20\x1f\x51\xee\x2b\x75\xd9\xf4\xc6\x61\ \xd9\x2d\xc8\x4a\x08\xe4\x93\xdf\xd3\xd3\xe9\x51\x6b\xbc\xef\x05\ \x6d\xa9\x4d\x2d\x95\x2b\x97\xc1\x19\x1c\xa7\x21\x43\xdf\xb7\xf1\ \xac\x75\x5e\x51\xab\xac\x37\x6a\xeb\xab\xbf\xa9\xd4\xb6\xd5\x97\ \x54\xe6\xd6\x4f\x8b\x9c\x05\x0e\xff\x00\xcf\xf9\xd6\xb6\x66\xa5\ \xb8\x3e\x47\x47\x8a\x94\x02\xe0\x20\x60\x64\x11\xe9\xe8\x78\xc5\ \x43\x2f\x77\x17\x2e\x37\x56\x19\x8e\x84\xa9\xb6\x4e\xf5\xad\x18\ \xfb\xf9\x00\xfe\x1c\x9f\xc6\x91\xeb\x9d\x4c\xbb\x44\x05\x33\x0f\ \x2e\x4f\x53\x48\x43\x0c\xb6\x39\x56\x0e\xe2\x15\xec\x30\x39\x3e\ \x95\xcf\x93\x6e\x5a\x1b\x23\x4b\x44\x8a\xd3\xf4\x8b\xd5\x81\x71\ \xe3\xe9\xb8\xc9\x42\x5c\x7d\x09\x76\x56\xd5\x79\x91\x85\x1c\x24\ \xfe\x40\xd5\x2e\xc7\xdc\xf2\x9e\x41\xc9\xac\xae\xd3\xe4\xdd\x2e\ \x92\x2e\x53\x56\x1c\x7e\x43\x85\x6b\x50\xed\x9f\x61\xf0\x2b\xd4\ \x36\xb4\x46\x53\xdb\x78\x48\x1f\xc7\xff\x00\x4a\xf4\x58\x7a\x0a\ \x85\x25\x1e\x7f\x53\x83\x88\xaf\xc7\xaa\xe5\xc9\x6d\xe0\x3d\xda\ \x56\xa1\x66\x79\xa6\xc9\x3b\xdc\x6d\x48\x29\xee\x9d\xa4\xf2\x3e\ \x40\x3f\xc6\xa7\x5a\x1f\x54\x45\xfb\x53\x28\x9c\xff\x00\xd9\xa4\ \x17\x3f\x79\x3f\x7f\xb6\x09\x3e\x87\x15\x5b\x45\x56\xd8\xd9\x6f\ \x25\x25\x59\x71\x3f\xd9\x48\xe7\x23\xf9\x56\x6b\x2a\xb8\x45\x61\ \x29\x70\x05\x85\x1f\xeb\x09\xdc\x9e\xdf\xbd\xed\xf5\xaa\xba\x69\ \x4f\x30\xca\x96\xad\x47\x86\xfd\x7a\xb9\xdb\xfa\x4a\xec\xd3\x71\ \x98\x74\x10\xa4\x2d\x20\x85\x24\xe4\x1a\x91\x47\xd6\xf1\x5c\xbf\ \xb1\x60\xb6\xbc\x99\x37\x07\x12\x1c\x5b\x2d\x9d\xde\x0b\x7e\xab\ \x59\x1f\x77\xe0\x1e\x49\x22\xb8\xbf\x4e\xe9\xad\x63\x2c\x22\x09\ \xbf\xa2\x04\x65\x01\x95\xae\x5f\x00\x0f\x4c\x24\x93\x9f\x8a\xe9\ \xae\x84\x58\x2c\xfa\x56\xd8\x61\xdb\xdd\x12\x25\xbe\x77\x4b\x98\ \xaf\xbc\xf2\xbd\x07\xc2\x47\xb5\x3d\x63\xea\x4d\xa8\x52\x77\xf0\ \x38\x18\x9c\x1a\xc3\xdf\x3b\xd7\xb0\xbf\x5a\x69\xa9\x51\x52\xb6\ \xd4\x03\x80\x73\x9e\xe6\x92\x9f\x15\x87\x72\xa0\x52\x53\xdf\xe6\ \xb7\x5a\xc2\x56\xd8\x52\x09\xc8\x02\x97\xb8\x12\xa4\x6d\x79\x00\ \xf1\xc1\xae\xec\x65\x28\xab\x48\xcb\x93\x32\xb9\xa9\x89\x88\x51\ \x05\x20\xe4\xf1\xc5\x14\xb2\xc9\x6a\x6d\xb7\x0c\x85\x64\x83\xd8\ \x1a\x2b\x35\x5a\xd0\x8c\xac\x91\xaa\x95\x19\xca\x37\x6c\x83\x68\ \x26\xf6\x69\x78\x6d\x39\xf7\x72\xe1\xe7\xd4\x78\x8a\xa7\x92\x55\ \x1d\x59\x46\x14\x8f\x50\x07\x06\xb5\x68\xd8\x45\xee\x9f\x5b\x24\ \x23\xcc\xb4\x87\x09\x03\xd7\xf6\x8a\xa5\x29\x56\xe4\xf9\xbb\x8e\ \xfc\xd6\xca\x53\x53\x89\x86\x50\x70\x48\x41\x32\x14\x79\x61\x4e\ \x30\x42\x17\x83\x94\xd3\x4c\x66\xe7\x37\x2c\x44\x43\x6a\x3b\xbd\ \xbb\x54\x89\x4c\x24\x80\xb4\xf9\x71\xeb\x4e\x9a\x5e\x08\x5b\x85\ \xf7\x46\xec\x1c\x73\x56\xa9\x35\x08\xb9\x30\x84\x1c\xe4\xa2\x8a\ \xab\xa3\x76\x3b\x64\xed\x57\xaa\x97\x72\xb2\xbf\x2e\xe0\xc6\xa5\ \x92\x23\xdc\x17\x1f\xc4\x6a\x39\x43\x6d\xad\x20\xab\x23\x18\x56\ \x48\x1e\xea\x1e\xf5\x96\x96\xd4\x57\x4b\x26\x89\xb4\xb5\x6b\x83\ \x65\x44\xcb\x86\xb5\x91\x65\x79\x42\x3a\xd2\xc9\xdc\x5e\xcb\xdb\ \x37\x95\x67\x7a\x52\xa2\x9d\xdc\x80\x52\x08\xce\x45\xad\xa1\xf4\ \xbf\xf4\x65\x7a\x81\x62\x77\xda\xbf\x5c\x5e\x5e\xba\x01\xe0\xec\ \xf0\x7c\x44\xa1\x3e\x1f\x73\xbb\x1b\x3e\xf7\x19\xcf\x6a\x8e\xc6\ \xe9\x87\x83\x6e\xb5\xc4\x37\xcc\xfd\x83\x55\x2f\x50\xee\xfb\x27\ \xf5\x9b\x8b\x87\xc1\xfb\xfc\x7f\x59\xf7\xf9\xed\xf7\x79\xae\x44\ \xaa\x39\x3b\x9b\x23\x86\x94\x22\xac\xb5\xd7\xf9\x43\x05\xd7\x5b\ \xdd\xad\x2c\xea\xcb\x54\xe8\xb6\xc9\xd7\x8b\x4d\xca\x0c\x08\x2f\ \x34\xca\xd9\x65\xf3\x31\x28\x2d\x95\xa7\x72\x88\xd8\x14\x73\x85\ \x73\x8f\x4c\xe6\xbc\xd1\xd6\xcb\xa4\x2e\xbb\xea\x16\x2e\x72\x61\ \xcc\x79\x36\x28\xaa\x4b\xb1\xd8\x53\x29\x52\x0b\xae\x77\x49\x5a\ \xb0\x73\x91\xf7\x8f\xa7\xd2\xa4\xb7\xbe\x99\x31\x76\x9f\xab\x65\ \x3d\x78\x75\xa5\xdf\xa4\x41\x95\x1d\x4d\x32\x02\xa0\xbd\x15\x09\ \x4a\x14\x09\x24\x2f\x25\x20\xe0\x81\xc1\x23\xe6\x9c\x74\xbe\x8f\ \x9f\x6f\xd6\x73\xf5\x5d\xda\xfa\x8b\x94\xe9\xb0\x9b\x86\xb4\x35\ \x0f\xec\xed\x21\x2d\xa8\xa9\x25\x23\x7a\x8f\xa9\xce\x49\xe4\xfa\ \x0e\x28\x55\x64\xb9\x93\xec\xf2\x73\x4d\xae\x7e\x5a\xfe\x08\xdd\ \xda\xf5\xa8\xe7\xeb\xf9\x9a\x5f\x4e\x3d\x6f\x88\x6d\xd0\x1b\x97\ \x21\xf9\xac\x2d\xd0\xb7\x1c\x52\x82\x1b\x09\x4a\xd3\x84\xe1\x19\ \x2a\xc9\x3c\xe0\x0f\x5a\x43\xa7\xb5\xf4\xeb\xdc\xfe\x9f\x29\xa8\ \x8c\x47\x63\x50\xc7\xb8\x99\xcd\x9c\xa9\x4d\xbb\x1b\x6a\x70\x85\ \x7b\x6f\xdd\xe8\x72\x31\x52\xdd\x4f\xa2\xe6\x3f\xa9\xdf\xd4\xfa\ \x7a\xf6\x2d\x57\x09\x10\x93\x0e\x50\x76\x20\x7d\xa7\x10\x95\x15\ \x21\x61\x3b\x92\x43\x89\xdc\x70\x72\x46\x0f\x20\xd3\x2b\x1d\x38\ \x6e\x2c\x2d\x2a\xd5\x82\xee\xa8\x73\x34\xc8\x79\x0c\x3d\x26\x3f\ \xda\x12\xfa\x5f\x00\x3d\xe2\x24\x29\x1c\xa8\x8d\xd9\x04\x60\xfb\ \xf6\xa6\xf1\x1c\x95\xc5\xca\x95\x48\xc9\xaf\x5b\xaf\xa5\xc8\x6e\ \xa8\xd4\xfa\xa2\xed\x66\x65\x51\xae\x4c\x5b\x94\xcf\x50\xc5\x94\ \x16\x98\x3e\x66\x51\x20\x06\xf7\x79\x86\x7b\x79\x87\x65\x03\x8e\ \x2a\x7b\xd4\x46\xee\xd1\xba\x45\xa8\xd6\x8b\x8a\x3f\x58\x31\x66\ \x90\xe2\xe5\x21\x9d\xa0\x94\xb4\xa2\xa2\x94\xee\xf2\x92\x01\x00\ \xe4\xe0\x90\x79\xc6\x29\xad\x7d\x30\x5f\xea\x15\x5a\xe3\xea\x07\ \x0c\xc1\xa8\x93\xa8\x5b\x96\xf4\x40\xa0\x24\x85\x25\x44\x29\x01\ \x43\x72\x4a\x82\x8f\x05\x3c\x10\x3d\x32\x67\x97\xeb\x13\xf7\x9d\ \x0d\x73\xd3\xb2\x66\xb6\x89\x17\x1b\x7b\xd0\xdc\x94\x86\x30\x94\ \xa9\xc6\xca\x0a\xc3\x65\x59\xc0\xce\x76\xee\xfc\x6a\xae\x6e\x2b\ \x5e\x65\xa9\xd1\x9c\xaf\x7e\xc2\xb3\xe9\xfb\x97\x58\x88\xd3\x7a\ \x32\xc1\xfa\x8a\x24\xb7\x74\xe3\x57\x89\x93\x5c\xb7\x1d\xbe\x1a\ \xb6\xb6\xd2\x03\x48\x5a\x77\x2b\x20\xee\x59\x57\x61\xdb\x26\x94\ \xb7\xd4\x7d\x49\x70\xb5\xe9\x96\x6d\x70\x6d\x71\xaf\x17\x4b\xa4\ \xcb\x44\xb0\xf8\x5a\xd8\x65\xe6\x37\x65\xc4\xe0\x85\x29\x38\x46\ \xe0\x9c\x8c\xe7\x19\x1d\xea\x4f\xfd\x03\x95\x0e\x55\x92\xe7\x64\ \xbe\x88\x57\x5b\x6d\x9d\x36\x87\x1e\x7a\x1f\x8c\xcc\x96\x06\xd2\ \x0a\x9b\xde\x92\x14\x14\x9d\xc0\x85\x71\x92\x0e\x45\x68\xb7\xf4\ \xce\x2c\x01\xa5\x04\x7b\xbb\xaa\x36\x29\xf2\x27\xbe\xe3\xcc\x85\ \x2e\x6b\xaf\x25\x7b\xc9\x20\x80\x9e\x56\x4f\x63\xc0\x03\xe6\x92\ \xe4\xde\xe3\x23\x4a\xa4\x74\x5e\xb6\xfc\x93\x98\x48\x7d\x30\x98\ \x44\xc5\xb6\xec\x84\xb6\x90\xf2\xdb\x46\xd4\xa9\x78\xf3\x10\x32\ \x70\x09\xcf\x19\x35\xa6\x74\x20\xe2\x0a\x9b\xe1\x58\xef\x4b\x7e\ \x86\x81\x44\x66\xe2\xee\x8d\x92\x82\x92\xb3\x18\x63\x47\xda\x49\ \x79\x5c\x8f\x4a\x58\x09\x23\x68\x18\x4d\x6c\x94\xd8\x4b\xc1\x5e\ \xf5\xe0\xad\x2e\x79\xb5\x33\x46\x19\x74\x3d\x4a\x76\x8a\xda\xc8\ \xc6\x56\xae\xd5\xad\x09\x2b\x50\x03\xd2\x95\x3a\x90\x19\x29\x14\ \x99\x3e\x43\xa2\xb9\x8d\xb3\xb0\xb7\x0a\x93\xcf\x15\x1c\xd4\x72\ \xdd\x8d\x01\xe2\x81\xb9\x7b\x4e\xd1\xee\x6a\x40\xa5\x14\x93\x8f\ \x4a\x8f\xea\x16\x17\x25\xa5\x0f\x53\x5a\x32\xc9\xc6\xd1\x32\xd4\ \x77\xd5\x1f\x3d\xb5\xfd\xcf\x5d\xeb\xad\x61\x24\x39\x0e\x5c\x87\ \x91\x93\xf6\x76\x92\xa0\x86\x12\x0e\x30\x40\xf6\x3c\x12\x7d\x69\ \xb2\x2e\x9d\xd5\x16\x89\x6c\xbb\x71\xb6\x3e\xd3\x41\x61\x38\xdd\ \xc1\x27\xf1\xae\x90\xeb\x0c\x46\xb4\xe2\x5f\xbc\xc7\x6d\xb6\x64\ \x15\x7e\xd1\x40\x04\x97\x72\x47\x94\x9f\x73\x54\xcd\xf2\xfa\x8b\ \xf6\x9d\x79\xf8\x4a\x52\x64\x32\xe2\x56\xa6\xd6\xac\x2d\x24\x1f\ \x6f\x51\xf4\xae\x35\x49\xce\xed\x4d\x58\xe8\x61\x6a\xb7\x97\x24\ \x74\xd8\x6f\xd5\xf6\x69\x6e\x86\xa3\xb7\x66\x7c\xc9\x77\x21\x00\ \x27\x2b\x51\x03\x24\x77\xf4\x19\xa8\x33\xda\x6a\xf3\xe2\x61\x16\ \xa7\xce\x4e\xd0\x0f\x07\x3c\x9f\x7f\x83\x57\x25\xd5\x71\xcb\x08\ \x96\xec\xc6\x5a\x69\x61\x2f\x36\xe2\xdd\x09\xda\x48\xce\x46\x4f\ \xb1\xaa\xcf\x50\x6a\x75\x15\xed\xb6\x05\x25\x49\xdd\xbd\xee\xe3\ \x24\x11\x91\xf8\x13\x8f\xad\x36\x8c\x1a\xa7\x9a\xfb\xaf\x32\xcb\ \x13\x2a\xcd\x45\xc7\x62\x2b\x1d\x82\xe4\xb6\x62\xaf\x09\x53\x8e\ \x25\x18\xcf\x6c\x9c\x72\x6b\xc9\x51\x9c\x6a\x43\x8c\xe3\x1b\x16\ \x5b\x51\xfa\x1c\x1a\x5d\xa7\x19\x13\x2f\x91\xc3\x88\x52\x9b\x6c\ \x97\x5d\x24\x9c\xe0\x73\xc9\xf9\x38\x1f\x8d\x6f\xbd\x36\x7c\x57\ \x24\x38\x70\x5c\x3c\x24\x7a\xe3\xd6\x9b\x14\xdb\x7d\xc1\x27\x1b\ \xd8\xd1\x79\x94\xe5\xde\xee\xf4\xa7\x37\x3b\x35\xd7\x50\x80\xd3\ \x0d\x65\x2a\x21\x20\x71\xf9\x70\x3d\x6b\xa1\x7a\x0f\x0d\x33\xfa\ \x7c\xea\x5b\x6b\xc5\xd8\xa2\x36\x77\x25\xbc\xe4\x1e\x3f\x78\x12\ \x7f\x0c\x7b\x57\x3e\xdb\x2e\x26\xdd\x35\xb9\x6d\x36\x91\x22\x30\ \x43\xad\xa8\x7e\xea\x92\xa0\xa1\xfc\x06\x0f\xd6\xba\x17\xf4\x6a\ \x92\xe3\xa8\xbb\xac\xb5\xe0\x66\x7f\x8c\x1b\x40\xc6\xc4\xb8\x37\ \x0e\x3d\xbe\x7b\x57\x3f\x1f\xd6\xa7\x67\xca\xdf\x63\xa7\xd1\xed\ \xc6\x6e\x48\x64\xd7\xda\x6a\x4c\x29\x49\x7a\x3a\xd1\x94\x28\x2d\ \xa7\x14\x33\x90\x32\x70\x7d\xe9\xab\x4f\xea\x29\x2c\xf8\x5e\x02\ \x56\x42\x4a\x81\x69\x4b\xda\x52\xac\x85\x10\x93\xdf\x07\x9f\xc3\ \x8a\xe8\xad\x51\x64\x8b\x26\x23\x8f\xa5\x96\xdf\x52\x0a\x94\xe3\ \x09\x1e\x60\x0f\xef\xa7\xfc\x40\xf6\xe2\xa8\x6d\x71\xa2\x57\x68\ \x96\x65\xb0\xe8\x2a\x4f\x29\x52\x46\x4a\xd2\x71\xc0\xe7\xdf\xf8\ \xd7\x26\x2a\xdd\x59\x7c\x0f\x41\x0a\xdc\x4e\xb2\xdf\x99\x37\xb4\ \x6b\x95\x18\xf1\xbc\x44\xab\x85\x79\x51\x8c\xf6\x3d\xf3\xe9\xd8\ \x60\x1e\x6a\x4d\xf6\xe6\xe4\x23\x28\x5b\x7b\xd9\xcb\x89\xda\xb3\ \x95\x1e\x0a\x88\x3d\xf3\xe9\xcf\x07\x35\x45\xdb\x11\x20\x90\x84\ \x2c\xa1\xe2\x00\x2a\x74\x14\xe0\x1e\x09\xc7\xe1\x52\x07\x5d\x99\ \x0d\xf8\xbb\x9b\x12\x1b\x64\xec\x58\x2b\xf3\x2c\x77\xf4\xcf\xcd\ \x2e\x49\xa7\x64\xc9\x96\x1e\x13\xd5\x68\x58\xcc\x5d\x1a\x64\xb8\ \x43\x8b\x69\xc9\x18\x29\x52\x80\x1e\x1a\x14\x48\xc7\xc9\x24\x91\ \xf9\x54\xa6\xd5\xac\x5a\x8c\xda\x1d\x79\xd3\x15\xc4\xe5\x05\xa7\ \x10\x40\x47\xa7\x97\x9f\x31\xc2\x48\x38\xf5\xcd\x52\xd3\xae\x4a\ \x5a\x54\x63\x89\x0c\xa9\x68\x40\x6e\x3a\x8e\xd5\x67\x83\x92\xa3\ \xfb\xbd\xb1\xeb\x5b\x67\x5c\x51\x28\xc5\x6a\x6a\x32\xe4\x70\x54\ \xd2\x37\xa9\x60\x7a\x11\x8c\xf3\xdf\x9f\xad\x5a\x15\x25\x11\x33\ \xc2\x46\x45\xff\x00\x6d\xd5\x70\xd2\x43\x89\x7e\x13\x8d\xb8\x42\ \x96\x19\x70\x2b\x7a\x49\xc0\x27\xd8\xf7\xe7\xe2\xa4\x08\xba\x25\ \x4e\x36\x63\xbe\xd3\xad\x28\x00\xbc\xab\x9e\xd9\x07\x3e\xbc\x1e\ \x47\xc5\x72\xe3\xd6\xc8\xd2\xda\x53\xb1\x24\x4f\x4b\xc5\x64\x2d\ \xb2\x36\xec\x09\xe0\xa9\x40\x1c\x00\x33\x81\x8f\x8a\x77\xb6\xc1\ \xbe\x90\xd3\xd1\xb5\x1c\xd2\xca\x52\xa0\x8c\x34\x55\xb4\xa5\x38\ \x4e\x01\xf9\xfe\x74\xe8\xe2\xb2\xab\x31\x32\xe8\xf4\xf5\x4c\xe9\ \x28\xf7\x58\xaa\x52\x92\x14\xe2\xd0\xda\x4a\x4a\x89\x00\x13\x9e\ \xff\x00\xe1\x5a\xdf\xbd\x41\x8a\xa4\x93\x21\xa0\x51\xf7\xdd\x1c\ \x63\x23\x03\xe0\xf2\x45\x73\xab\x82\xf8\xd3\x0b\x73\xfa\x45\x21\ \x87\x56\x43\xcd\xb4\xf6\x08\x07\xb7\x38\xf8\x26\x9a\x2e\x97\x3d\ \x45\x21\xf6\x61\xa2\x42\x12\x8c\x8f\x0d\xe5\x76\x51\xc1\x21\x58\ \xec\x14\x71\x9c\x55\x96\x31\xb2\x1f\x47\x77\x96\xd6\xaf\xd6\xb1\ \xe6\xbf\x25\xa8\xcf\x0f\xf6\x56\x9b\x59\xdc\x78\xde\x4a\xbb\x9f\ \x73\xb4\xfe\x75\x5e\xea\x7d\x69\x2e\xe5\x30\xc1\xb7\x28\xbe\x96\ \xf2\x90\xa3\x9c\x01\xc9\x00\xfb\x60\x54\x30\x45\xbb\xcb\xb9\xa6\ \x2a\xa5\x89\x13\x23\xb1\x92\xb6\xd5\x93\xb9\x47\xd4\x01\x8e\x32\ \xaf\xce\x9c\x2d\xf6\x77\x23\x3c\xa9\x2e\xc9\x58\x65\xbc\x92\x90\ \x08\x71\x47\x27\x72\x56\x47\xd4\xd2\x67\x55\x6e\xd9\xa6\x9e\x15\ \x2e\x42\xb8\x32\x4c\x56\x1a\x4b\x1b\x5d\x90\x37\x07\x49\x18\xc7\ \x97\x95\x13\xd8\x73\xc6\x7d\x78\xe2\xbc\x76\xd6\x59\xb5\xc9\xbb\ \x5c\x14\xb7\x27\x86\x1c\x0e\x29\x49\xc2\x41\x50\xc6\x11\xfd\xd0\ \x14\x7e\xb9\xcf\x14\xe9\x6d\xb6\x26\x42\xb6\x32\xd8\x6e\x18\xfb\ \xe9\x56\x78\x57\x73\xeb\x82\x72\x7b\x7c\xd2\xfd\x7c\xc3\xcd\xe9\ \x39\xeb\x48\x51\x1f\x65\x51\x09\x3d\xd2\x00\x27\x15\x85\xd4\xbc\ \x92\x5c\xcd\x71\xb4\x59\xca\x57\x28\xc2\x3d\xc1\x6c\xa9\x25\x08\ \x49\xdd\x8f\x5c\x11\x9f\xe5\x4e\x5a\x85\x22\x38\x53\x0d\xa9\x1e\ \x19\x0d\x29\x01\xb3\x91\x80\xda\x7d\x7e\x09\x57\xe3\x9a\x75\xd7\ \x76\x97\x94\xd4\x0b\xd3\x0d\x3c\xa8\xd7\x16\xff\x00\xd9\xd6\xa3\ \x92\xa2\x00\xc8\x23\xd8\x64\x01\xf4\xa6\x3f\x1c\xc9\xb9\xb4\xa5\ \x90\x12\x97\x39\x18\xfb\xa9\xe1\x3f\xc8\x7f\x1a\xf5\x94\xaa\xaa\ \x90\x52\x3c\x7d\x5a\x5c\x3a\x92\x87\x6b\xd3\xc1\x9e\xb4\x96\x9a\ \x69\x98\x9b\x86\xf7\x88\x52\xc8\x3f\x77\x9e\x07\xe3\xdf\xf2\xa7\ \x54\x58\xe4\x7d\x91\x99\x68\x43\xfb\x06\xe2\xe0\x49\x07\x19\xc1\ \x03\xe0\xf6\xf8\xac\x64\x5a\x24\x38\x13\x28\x20\x06\x5d\xfd\xb3\ \x8b\x04\x05\x47\x4e\x70\x33\xed\xc0\xfe\x55\x63\x40\xb7\xc9\x94\ \xc4\x59\x6c\xbe\xe3\x3b\x19\x52\x92\x3b\xa5\x44\x0c\x10\xaf\x62\ \x40\x07\x3d\xb9\xac\xb8\x8c\x46\x44\x9c\x4d\xf8\x4c\x2a\x93\x6a\ \xa2\xdb\x62\x2f\xa3\x58\x9a\x99\xc0\xfe\xaf\x6a\x68\x50\xe1\x52\ \xde\xe1\x1c\xf7\x1b\x54\x39\xfc\xeb\xa8\x7a\x52\xcb\xcf\x36\x95\ \x3a\xda\x42\xc6\x32\x12\x30\x07\xd3\xe2\xa9\x58\xaf\x3a\x99\x68\ \x4c\x68\xca\x8c\x87\x0e\xe5\xa5\xb7\x02\xd2\xa3\xea\x7d\x2b\xa1\ \x3a\x3e\x85\x38\xdb\x41\x28\xca\x4f\x73\x8a\xdf\xd1\x0b\x8b\x2e\ \x26\xc7\x9f\xe9\x97\xfb\xd9\x2d\xb1\x6b\xd8\x42\xb6\x24\x67\x18\ \xa7\x83\x83\x84\xd2\x66\xa0\xa9\xa4\x78\x8c\x8f\x4e\xd5\xb0\x3b\ \x95\x03\x8e\x41\x19\xae\xd4\xda\x9b\xba\x39\xb1\x4e\x0a\xcc\x90\ \xb0\x90\x96\x52\x07\xb5\x14\x32\xa0\xa6\x52\xae\xdc\x51\x5c\xb7\ \xb9\xd4\x5b\x10\x8e\x95\x5d\xa0\xb9\xa2\xad\xd1\x0b\x98\x5a\x43\ \x80\x82\x7f\xe3\x15\x4e\x17\xa8\x06\x3b\xa5\xf6\x47\x90\xf7\xc5\ \x57\x9d\x2a\xb7\x3f\x2a\xcf\x6f\x59\x2a\x42\x32\xbc\x1c\xff\x00\ \x7d\x55\x72\xa6\x3a\x4c\x50\xd2\xc8\x56\x05\x6f\x93\x54\x1a\x6b\ \x99\xcd\xa2\x9e\x22\x9d\x9f\x22\x18\x95\x6e\x41\x23\x3f\x41\xe9\ \x52\x6d\x3a\x13\xf6\x00\x78\xfa\xe2\x9a\x2e\xf6\xb7\x23\xac\xba\ \xc8\xca\x09\xe4\x0f\x4a\x51\xa6\x66\x24\x66\x3a\xd4\x02\xb3\xc0\ \x34\xca\xed\x54\xa5\x78\x95\xa0\x9d\x3a\xb6\x91\x9c\xad\x5b\xa7\ \xda\xb3\x37\x75\x6e\xeb\x0d\xc8\x4e\x3b\xe0\x21\xe4\xb8\x36\x29\ \xcd\xfe\x1e\xc0\x7d\xf7\x8d\xb8\xf7\xa6\x87\xb5\xa5\xb3\xf5\xc2\ \x6d\x2a\xbd\x5b\x9b\xb8\xa8\x80\x98\x8a\x92\x80\xe9\x27\xb0\xdb\ \x9c\xe4\xf7\xc5\x54\xe2\x2b\xad\xf5\x81\xfd\x04\x50\xa1\x06\x25\ \xf5\xcd\x48\x36\x8e\x03\x2a\x6c\x29\x09\x1e\x98\x12\x1c\x27\xfe\ \xaf\xd2\x99\xe7\x04\x27\xa6\xd7\xdd\x26\xe2\x48\xd5\xf2\x35\x03\ \x8e\x30\xc1\x6c\xf8\xee\xba\xa9\x49\x52\x24\x24\x77\x28\x08\xc1\ \xde\x38\x00\x11\xf1\x4a\xa7\x08\xc6\x37\xb5\xc5\xd5\xc5\x54\x6d\ \xad\xac\x5f\x08\xd5\xf0\x18\x76\xe2\x87\xa7\xc7\x1f\xaa\xd0\x17\ \x3c\x6f\x19\x8e\x92\x8d\xe0\xaf\xdb\xcb\xcf\xd2\x9c\x7f\xa6\x1a\ \x65\x28\x63\xc7\xbe\x5b\xd9\x2f\xa5\x85\xb2\x97\x1f\x4a\x4b\x81\ \xe2\x52\xd6\xd0\x4f\x3b\x8a\x55\x8c\x77\xda\x7d\xaa\x89\xd4\xf3\ \x23\xc1\xbe\x75\x6e\xdf\x2d\x65\xa9\x97\x8b\x6b\x22\xda\xc6\xd2\ \x57\x2f\xfd\x88\xb5\xfb\x30\x3e\xf6\x17\xc1\xc7\x6e\xe7\x8a\x71\ \xe9\xcb\x51\xff\x00\xf6\xb3\x61\x75\xf8\xec\xbc\x5b\xd0\x50\x94\ \xd9\x5a\x02\x8a\x09\x79\x5c\x8f\x63\xf3\xf3\x51\x56\x9c\x65\xb2\ \xb3\x2d\x4b\x17\x35\x2b\x32\xed\x8b\xa9\x34\xf4\xbb\xc3\x96\x68\ \x97\xcb\x6c\x8b\x8b\x7b\x82\xe2\xb7\x25\x0a\x75\x25\x3f\x78\x14\ \x83\x9c\x8f\x51\xe9\xc6\x7b\xd3\x42\xb5\x35\x8e\x43\xd3\xbf\x52\ \xde\x6d\xb7\x09\x11\x1b\x52\xdd\x66\x3c\x94\x38\xa4\x63\x23\x90\ \x93\x9c\x64\x11\xf5\x04\x77\x15\x58\xd9\xa4\xcd\xb7\x0b\xae\x87\ \xd0\x97\xb8\xda\x92\xcf\x71\xb5\x5c\xa4\xc3\x5b\x29\x05\xfb\x3c\ \x95\x02\xa4\x21\xc7\x13\xc2\x82\xd6\xe1\xdb\xbb\x0b\x1f\x4e\xf8\ \xe8\x98\x50\x27\xc0\xd3\xb3\xc6\xac\xb7\xb9\x3e\xcf\x60\x76\x22\ \xad\x0c\x41\x0c\x48\x65\x0a\x69\x01\x4d\xbf\x95\x95\x02\x85\x24\ \x77\x03\x27\x27\xd6\xb3\x53\x76\x95\x87\x4e\xbc\xa4\xb4\x5e\xbe\ \xa3\xcc\x2e\xab\x2d\x76\x4d\x18\xe0\x66\xd7\x1e\xed\xaa\x12\xa7\ \x31\x29\xf5\x25\x88\xc8\x4a\x54\x72\x70\x0a\x8e\x48\x09\x48\xe3\ \x93\x56\xba\xee\x51\x63\xca\x83\x6f\x9d\x2a\x3b\x17\x09\xa9\x51\ \x65\x8d\xfc\xba\xa4\x24\x15\xec\xcf\x24\x00\x73\xf4\xaa\x27\xa7\ \x83\x0d\x74\x1f\x1f\xfc\x0b\x8f\xfe\x11\x75\x3d\xeb\xc3\xe8\xb2\ \xda\x6c\x5a\xcd\x41\x41\x3a\x7e\xee\xcb\xef\xa9\x23\x24\x47\x74\ \x16\x1d\x18\xfa\x38\x0f\xe1\x55\x93\xcc\xcb\x50\xa9\x28\xd3\x72\ \x6f\x6b\x7f\x09\xbf\xe4\x94\x48\xd5\xba\x7d\x11\xae\x52\x1b\xbc\ \x43\x53\x56\xb7\x14\xd4\xf5\x87\x46\x23\x2d\x23\xcc\x95\x9f\xdd\ \x23\xe6\xa1\xf2\xfa\x99\x6d\x85\x17\x55\x5c\xa7\x48\x84\x60\x58\ \x56\x1b\x49\x8b\x31\x2e\xba\xf2\xf6\x12\x5b\x52\x38\xd8\xbd\xe9\ \x52\x40\x27\x9c\x55\x55\x1e\xdb\x26\x15\xca\xd7\xa5\xe4\x21\x41\ \xcd\x76\xcc\x29\xd3\x40\x49\x23\xc5\x43\xeb\x7e\x60\xcf\xcb\x6a\ \x48\x24\xfb\x53\xb6\xb3\x6d\xc9\x07\xae\x2c\xc7\x69\xc7\x5c\x54\ \x78\x1b\x50\x84\x95\x13\x88\x89\xf4\x1f\x14\xe5\x1c\xab\x41\x13\ \xc4\xce\x4a\xfb\x7f\x4d\xfd\x89\xed\xc7\xa9\xf6\xb8\x97\xed\x2e\ \xd3\x33\xe0\x1b\x4d\xe5\xb9\x6a\x7a\x63\xaf\x84\x86\x54\xca\x1b\ \x21\x20\xf6\xc9\x2b\xc6\x3e\x98\xef\x56\x1d\x8a\xed\x6f\xbd\x5b\ \x5a\xb8\x5a\xe6\xc7\x9b\x15\xd1\x94\x3c\xc3\x81\x68\x57\xd0\x8e\ \x2a\x9f\x9b\x3a\xd5\x79\xea\x67\x4a\xe6\x5b\xe5\x45\x9e\xc2\x62\ \x5c\xca\x5d\x69\x61\x69\x0a\x11\xd9\xec\x47\xa8\xcf\xe1\x4f\xfd\ \x01\x21\xb8\x3a\xc5\x23\xca\xdb\x7a\xba\xe6\x94\xa4\x76\x48\xf1\ \x07\x03\xd8\x55\x26\xae\x87\x50\xab\x2e\x26\x56\xee\xbf\x08\x97\ \x3f\xaa\x74\xd3\xd7\xb1\x64\x66\xff\x00\x6b\x72\xe6\x14\xa4\x18\ \x89\x94\x82\xe8\x5a\x7e\xf2\x76\xe7\x3b\x87\x72\x3b\x81\x4e\x49\ \xc9\x38\x03\x9a\xa0\x35\x56\xa6\xba\x6a\x8b\xc5\x8f\xed\x72\xd8\ \x8c\xf4\x2d\x71\x15\xa3\x67\x66\x29\xf1\x62\x32\x99\x3e\x1a\x5e\ \x79\x79\x24\x6f\xdc\x39\xc2\x52\x77\x80\x33\xcd\x74\x53\x0d\x06\ \xc7\xcd\x17\xca\x86\x52\x9f\x16\x4f\xb0\xf1\x09\x0c\xb5\x9c\x64\ \xfa\xd2\x67\x25\x2d\x60\x80\x31\x4b\x8e\x08\xe6\x91\x3c\xc0\x56\ \x54\x38\xaa\xc1\xa6\xf5\x34\x4d\x34\xb4\x13\x00\x09\xc9\xf5\xa4\ \xb3\x63\x64\x9e\x29\x72\x12\x94\xf9\x48\xed\x5b\x5f\x40\x2d\x53\ \xf3\xe5\x62\x63\x0b\x94\x8f\x56\x2d\xb6\x93\x6c\x92\xfd\xed\x31\ \xbe\xc0\xda\x0a\x9e\x2f\xfd\xc0\x9f\x9a\xe2\xad\x53\x72\xd3\x8d\ \xea\xa7\x13\xa6\x5c\x71\xa8\x2a\x59\xdc\x1d\x3f\xb3\x3c\xfe\xee\ \x41\x56\x09\xf7\xae\xfa\xea\xbe\x93\x87\xaa\xb4\xec\xab\x3c\xf2\ \xf8\x8c\xf8\x1b\xfc\x25\xed\x51\xda\x42\x87\x3e\xd9\x1d\xaa\x86\ \x73\xa4\x9a\x62\xc6\xb5\x18\x36\x64\x2d\x7d\xbc\x49\x07\xc4\x3f\ \xc7\x8a\xc5\x89\x4e\x73\xd2\x2d\xdf\xe4\x5a\x85\x55\x87\x93\x95\ \xce\x74\xbb\x5a\xda\x96\xe2\x1d\xb7\x87\xdf\x2b\x38\x4b\x69\x41\ \x3b\xd5\xec\x90\x29\xb6\x6e\x92\xd4\xc2\x40\x6d\xeb\x1d\xc1\xa5\ \x67\x01\x0e\x30\xa4\x63\xfe\xd7\x6a\xbf\xf5\x45\x9e\x2c\x7b\x6a\ \xe3\xcb\x65\xb6\xa3\x23\x2a\x05\x23\x69\x6c\x8f\xde\x49\x1d\x8d\ \x55\x77\xcd\x7a\xa6\x9e\x31\xe1\xc8\x5d\xdd\x49\x4e\x13\x22\x40\ \x52\x55\xff\x00\x58\x67\xcd\xf5\xe2\x95\x1a\x55\x29\x3c\xb2\x36\ \x54\xc5\xac\x46\xb4\xe2\x37\x47\xb5\x45\xd3\xd6\xd2\x97\xe5\x37\ \xf6\xd7\x9b\x0b\x96\x73\xc3\x69\xdc\x30\x81\xef\xdb\x27\xdf\x03\ \x1e\xf4\xc7\x72\x90\xdc\xe9\xec\xbe\xb6\x9c\x6a\xda\x95\x12\x95\ \xa8\x60\xad\x23\xef\x63\xdc\xfc\x57\xaf\xb4\xe5\xd1\xe7\xee\x17\ \x0b\x82\x5d\x79\x78\x27\x68\x2b\xe7\xb0\x1c\x71\xf0\x00\xa7\xa4\ \x68\x89\x8d\x36\xdc\x8b\xf3\xff\x00\x65\x8c\x96\xc2\x92\xd1\x58\ \xde\x12\x7b\x25\x5e\x89\x27\x9e\x3d\x2a\x54\xd4\x6f\x14\xf5\x7e\ \xb4\x23\x87\xc3\xb4\xe6\x44\x6e\x46\x19\x95\x21\x70\xbc\x64\xc5\ \x71\xc5\x16\x43\xbc\xa8\x23\x77\x1b\x8f\xa9\xc6\x33\xf3\x5d\x09\ \xd0\x2b\xdc\x49\xf2\x61\x3b\x1e\x57\x8b\x30\xc2\x6e\x3d\xc1\x95\ \x0c\x29\x0a\x6b\xca\x83\xf2\x0a\x7d\x7d\xc5\x52\x9a\xe2\x74\x59\ \x0a\x8c\x21\xb6\xcb\x48\x65\x3e\x1b\x69\x6d\x20\x00\x90\x06\x3e\ \xbf\x5a\x9b\xfe\x8a\x8f\x1f\xe9\xd5\xc1\xa5\x94\x80\xe4\x1d\xd9\ \x50\xec\x43\x89\xc7\xf3\xc7\xe3\x48\xc6\xd3\x5c\x2c\xcf\x91\xab\ \x03\x51\xba\xa9\x2e\x67\x5b\x82\xd2\x23\x07\x83\x45\x6b\xc0\x1e\ \x51\xdb\x9e\xe7\xd7\x1c\x53\x16\xa4\xb6\x34\x82\x64\xc6\x65\xa0\ \xc1\x4f\x88\xb4\x21\xb0\xa0\xbc\x9e\x4a\x49\xec\x3d\xc0\xf7\xf8\ \xa9\x1c\x21\xb1\xa0\xa0\x82\x49\x47\xe3\x5a\xe5\xc6\x5b\xc9\x75\ \xb4\x3a\x5b\x5f\x2a\x6f\x27\x09\xc9\xee\x0f\xc1\x1f\x85\x72\x2d\ \x74\x75\xe3\x2c\xac\xae\x11\x65\x87\x71\x43\x49\x7d\xb7\x5d\x70\ \xb7\xb9\x58\x4e\x32\x9c\x9f\x5c\x76\xc1\x3f\x95\x7b\x74\xd0\x59\ \x82\x96\xd8\x91\xfb\x2d\xa0\x05\x31\xc9\x4e\x47\xa8\x1d\xf3\xeb\ \x8a\x9a\x16\x03\x72\xd6\x10\xde\xf6\x52\x72\xf2\x14\x13\x96\xbd\ \xf0\x3d\x52\x4e\x2a\x47\x62\x4c\x2f\xba\xd2\x52\xb6\xf0\x49\xcf\ \x73\xee\x3e\x71\x55\x85\x24\xf4\x63\x9e\x2a\x70\xd5\x14\x5c\xed\ \x0b\x70\x8c\x94\xc9\x6d\xbf\x15\x0c\x84\xa0\x06\x89\x19\x23\xe3\ \x9c\x11\xf9\xd2\x17\x2d\x2e\x43\x49\x5c\xb6\x65\x3e\xea\x94\x3c\ \x13\x90\x48\x1e\xb9\x1e\x9d\xbd\x79\xae\x9e\x30\xa3\xc8\x28\x25\ \x2d\x00\x46\x42\x47\xef\x1f\x9f\xf5\x9a\xd1\x3f\x48\xd9\x26\xc7\ \x5b\x1f\x62\x43\x24\x1c\xe1\xb2\x40\xe7\xbe\x47\xaf\xad\x12\xc2\ \x4b\x78\xb2\xd0\xe9\x34\xbd\xf4\x73\x73\xca\x92\x72\x11\x18\x04\ \x25\xc1\xb5\x41\x24\xee\x18\x39\xc8\xf5\x39\xe3\x3d\xab\x6c\x49\ \x57\x24\x20\xa8\xdb\x1f\x4b\x9e\x38\xf0\xc0\x5f\x07\x00\x8e\x31\ \xce\x06\x7b\x9f\x8c\x55\xd9\x75\xd1\x01\xb6\xc7\xd8\x5c\xf0\xb0\ \x0e\x06\x3f\x21\xff\x00\x95\x47\x67\x69\xc5\x31\xbd\x4b\x8e\x94\ \x85\x61\x1b\x92\x0e\x4f\x3d\xbe\x9d\xeb\x34\xe9\xd4\x86\xe8\xd3\ \x0c\x55\x29\xad\x0a\xc5\xc8\xf7\xa7\x5a\xf0\x5e\x0c\x23\x78\x2b\ \x74\x00\x4a\x46\x14\x32\x33\xc6\x38\xf6\x35\x82\xf4\xf3\x4e\xc9\ \xcc\x89\x2e\xba\xa2\xb5\x06\xb7\xab\x6a\x06\x4e\x71\xc7\x07\x80\ \x07\xf2\xa9\xd4\xbb\x6a\xd8\x65\x69\x4c\x72\xfa\x57\x94\xa8\x2d\ \x38\x00\xe7\x24\xa8\xfb\x7d\x3e\x29\x13\xd1\xdb\x53\x4b\x4c\x72\ \x92\x55\x80\xa2\x3d\xbf\xf2\xf7\xa4\x39\x49\x6c\x68\x55\x13\xd8\ \x8e\x38\xcb\x71\x5f\xfb\x34\x76\x5a\x68\x38\x47\x88\xa6\xbc\xa5\ \x2a\xce\x70\x7f\xb5\x93\xeb\x59\xb1\x6e\x2a\x7c\x3b\x32\x3b\xeb\ \xdd\x92\x86\x5b\x40\x52\xb2\x3f\x78\x9c\xf1\x9c\x7a\xd4\x91\x98\ \x28\x2c\x78\x88\xda\xf3\xe5\x01\x28\x0d\xa7\xcb\x91\xea\x4f\x6a\ \x72\xb5\xdb\x84\x73\x94\x21\xb4\x12\x09\xc2\x07\xaf\xa7\x34\xbd\ \x59\x57\x51\x24\x37\x59\xed\xaa\x43\x0a\x43\x81\xad\xff\x00\xf0\ \x4d\x04\x7d\xc2\x7d\x33\xea\x7e\x6b\xcd\x73\x6b\x2d\x68\x8b\xb3\ \xce\x20\x94\xb7\x11\xce\x0f\xb6\xde\xd5\x34\xb4\x5b\x5f\x59\x0e\ \xed\x04\x81\xe5\xdc\x30\x09\xa4\xdd\x4e\x65\x0a\xd2\x53\xa1\xa9\ \x29\x52\x5e\x65\x48\x71\x25\x45\x20\xa4\xf0\x46\x47\x23\x8f\x6a\ \x74\x68\xda\x39\x99\x92\x55\xfa\xe9\x23\x92\x74\x8d\x95\xfd\x4b\ \xa3\x66\xc0\x45\xdd\xc6\xee\x16\xc4\x87\xe0\x42\x75\x25\x41\xe4\ \x14\xf9\x83\x67\xba\x54\x9c\x13\xec\x47\xd2\xa1\x53\x63\x48\x83\ \x7c\x75\x2f\xb4\xb6\x9e\x52\xb2\xe6\xe4\xf6\xcf\xde\x18\xf9\x39\ \xa9\x5c\xd3\x2f\x4a\x6b\x3b\xad\xbe\x13\xeb\x71\xfb\x5c\xa5\x16\ \x55\x9f\x32\xd2\x85\x03\xb4\xe3\xdd\x2a\x20\xfd\x4d\x49\xe6\xdb\ \xed\x57\xab\x95\xc6\x59\x77\x88\xef\x86\xe3\x15\x73\xfb\x32\xe6\ \x52\x09\xf5\x21\x27\xf9\x57\x5e\x15\xa5\x4e\xa5\xd2\xbc\x65\xaa\ \xf8\xd8\xc8\xe8\xd3\xab\x04\xdb\xb3\x8f\x6f\xc8\xd1\xa4\x5b\x6c\ \x37\x21\x6d\x24\xa1\x68\x1b\x5d\x4a\x53\x95\x14\x9f\x6c\xf0\xa0\ \x06\x46\x3d\xbd\xea\x40\xe3\x0b\x7e\x32\x98\x88\xfa\x6d\xef\x6c\ \xc3\x5b\x1b\xdc\xd8\xe3\x70\xcf\xf7\x08\x27\x9f\x4f\x6a\x6b\x5b\ \x4c\xda\xe2\x96\x5a\x01\x32\x49\x21\x2b\xcf\x74\xf7\x19\x1e\xa3\ \xe6\xb1\x8b\x76\x99\x16\x64\x55\xb8\xe7\xf5\x45\x45\x0b\xf4\x71\ \x0a\x18\x29\x27\xd8\x91\xd8\xfa\xd2\x2b\x46\x51\x86\x6b\x6a\xc7\ \xd3\x9a\xab\x5a\xd0\x92\xb2\xfb\x09\x51\x2a\x54\x2d\x42\x88\x57\ \x86\x19\x86\xe9\x50\x27\x24\xa5\x2b\x57\xb2\x55\xdb\x24\x72\x0f\ \x63\x5d\x5d\xd1\x75\xb1\xf6\x26\xc2\x46\xde\xdd\xfb\x8a\xe6\x6d\ \x40\xeb\x1a\x96\x04\x78\x56\xe4\xb6\x5c\x69\xc0\xec\x17\x15\xc9\ \x69\x59\xf3\x32\xaf\x74\xe3\x91\x9f\x6c\x57\x4b\x74\xcd\xa6\xe2\ \xb4\xca\x77\x02\x43\x69\x07\x1e\xbc\x72\x6b\xb3\xd1\x52\x94\x5a\ \x8c\x79\x9e\x53\xa6\x24\x9d\x65\x3b\x59\xf3\x2e\xf8\x2b\x42\x90\ \x12\x71\x58\x4b\x80\x87\x3c\xed\x1c\x2a\x91\xdb\xc0\x2c\x83\x9e\ \x3b\xd3\x8c\x10\xb2\x4a\xca\x8e\xdf\x40\x6b\xab\x2b\xc1\xb6\x99\ \x95\x35\x35\x66\x8d\x50\x9d\x71\x9f\xd8\x3c\x9c\x7b\x1a\x29\xc1\ \x48\x42\x8f\x99\x20\xd1\x49\x94\xd4\x9d\xc6\xc6\x0e\x2a\xd7\x2b\ \xce\x9d\xa4\x33\xa2\xed\xea\x6d\x1f\x77\xc4\xc7\xff\x00\xb8\xaa\ \x96\x89\xef\x1e\x12\x85\x7e\x55\x5c\xe8\x3b\x93\xcb\xd2\x70\x62\ \x45\x47\x3f\xb4\xca\x87\x3d\xdc\x55\x4d\xe0\x25\xc6\x98\xcb\xcb\ \x0a\x56\x3b\x57\x42\x54\xd6\x54\xe4\x73\x28\xd4\x76\x4a\x23\x92\ \x67\x29\x6a\x0d\x38\x80\x73\xf8\xd6\xa9\x56\x64\x38\xe0\x90\xc1\ \xf0\x96\x39\xc0\xf5\xa2\x13\x8c\xa5\x45\xe7\x56\x94\x81\xc7\x7a\ \x71\x8f\x2e\x3c\x80\x7c\x27\x01\xf6\xc1\xac\xd2\x72\xa6\xef\x04\ \x6b\x8a\x8d\x45\x69\xb2\x0a\xab\x24\x0b\x7e\xa1\x7e\x60\x92\xe4\ \x9b\xcc\xa4\x04\x9f\xb4\xcb\x2e\x3a\x96\x81\x52\x82\x10\x92\x7c\ \xa8\xc9\x27\x81\xe9\xcf\x6a\x79\x8d\x12\x63\xb8\x0a\x46\xc1\xea\ \x4d\x73\xfe\x9c\x76\xf5\x65\xd4\xbd\x5b\xd7\x0f\xfe\xa4\x9d\x76\ \xb1\x3e\xa0\xdb\xef\x40\xdc\xe2\x5d\xf3\x20\x16\xd4\x55\x96\xd1\ \xb3\x72\x4a\x47\x70\x47\x3c\x54\xf6\xfb\xd5\x1d\x4d\x61\xd0\x16\ \x4d\x43\x74\x6e\xc0\xc4\x8d\x51\x2a\x38\xb5\xa4\xf8\x9e\x04\x08\ \xee\xa0\x2b\xc4\x90\xa2\x41\x59\x4a\x4a\x49\xc6\xd1\xc9\xf6\xa9\ \x58\x96\xa3\x64\x8c\x71\xe1\xbb\xca\x57\x5f\xdd\x8b\x46\x5d\xb8\ \x33\x18\x2d\x3c\xac\x77\x34\x8b\xef\x24\x28\x0a\xaa\xe1\xf5\xc5\ \xd6\x34\x86\xb6\x7e\xe6\xab\x5d\xe6\x5e\x9d\x5b\x29\x8b\x2a\xdb\ \xb9\x11\xe7\xa5\xe3\xb5\x07\x04\xab\x6e\xd3\xf7\xb9\xfa\x76\xad\ \x7d\x32\xea\x5c\xfb\xce\xb8\xfe\x8b\x5c\xa7\xd8\xae\xa2\x45\xb8\ \x4e\x66\x55\xa4\x29\x28\x65\x7b\xb0\xb6\x16\x14\xa5\x64\x81\x93\ \x9c\xfb\x67\xbf\x17\xa3\x55\xc9\x75\xb7\x26\xa5\x5a\x59\x96\x5e\ \x7f\xd1\x7b\x5b\x17\xbe\x2a\x6b\xdb\x8f\x2c\x7b\x73\xde\xa8\xeb\ \xd2\x46\xb2\xfd\x21\x62\xe8\x9b\xd3\xd2\x5c\xb0\x41\xb2\xaa\x61\ \x84\xd4\x85\xb4\x87\xde\x2a\xfb\xcb\x28\x20\x9c\x05\x0c\x73\xc6\ \xdf\x93\x9a\xfa\xe9\xa9\xf5\x54\x7e\x84\xeb\x3b\x53\x37\xb7\x96\ \xdd\x8f\x50\x1b\x7a\x24\x3e\x54\xb7\xcc\x62\xe0\x09\x42\x57\x9c\ \x82\x14\x33\x93\x9e\x09\x1e\xd8\xcc\xf4\xa8\x39\xe2\xd2\x83\x4d\ \x76\xf9\x1d\x71\x1f\xfa\x84\xfd\x29\x35\xcc\xf9\x00\xf4\xa6\x3d\ \x2d\x2e\xe1\x68\xe9\xfa\x67\xea\x49\x8c\x4c\x7a\x24\x45\x48\x79\ \xd8\xcc\x96\xd2\x5b\x4a\x4a\x80\x09\x2a\x3c\xed\x1e\xfc\x9a\xa6\ \x6c\x1d\x70\xba\xdd\xaf\x3a\x69\xc9\xb2\xb4\xda\xe2\x6a\x09\x8a\ \x87\xfa\xb2\x21\x59\x99\x6e\x25\x7b\x1a\x53\x8a\x2a\x21\x5b\x8e\ \x33\xe5\x1c\x11\xda\xa2\x3a\x4f\x51\xd5\x71\x11\x84\x12\x7b\xb2\ \xf6\xc7\x00\x7b\xf1\x4b\xc4\x54\x96\x86\x06\x0e\x2b\x9f\xec\xdd\ \x55\xd5\x53\x34\xec\x6b\x7a\xd9\xb7\xa7\x56\x2b\x55\x8b\x13\x8d\ \x86\x54\x1b\x42\x07\x2a\x77\x69\x56\x78\x00\x8e\xfe\x9d\xa9\xd7\ \xaa\x7d\x58\xbd\xe8\x9b\xa4\x89\x2c\x6a\x1d\x23\x75\x8f\x16\x6a\ \x59\x7e\xcc\xc3\x2e\x19\x4d\xb2\x54\x79\x53\x81\xc2\x90\xe8\x03\ \x90\x40\x1f\x1e\xf7\xa9\x37\xa5\x84\xc3\x11\x4d\x45\xc9\xec\x5b\ \xe9\x0d\x2e\x53\x91\x1a\x96\xca\xe4\x34\x01\x71\xa0\xb0\x56\x90\ \x7b\x12\x3b\x8f\x4a\x5a\xd4\x62\x1b\xda\xa3\xc5\x50\x73\x6f\x33\ \x34\xef\x59\x7a\xcd\x7d\x80\x1a\x32\xe0\x59\x22\x3e\xc8\x75\x3b\ \x93\xb9\x31\x9b\x23\x23\x23\x22\xa4\x48\xea\x56\xa2\x53\xdd\x25\ \x41\x4c\x1c\x6a\xd6\x9c\x5d\xcb\xf6\x47\x82\x94\x34\xa1\xe1\xf9\ \xbc\xbc\xac\xf7\xcf\xa5\x2d\xd4\x93\x2f\x0a\xd4\xd3\x77\xed\xfa\ \xd8\xb8\x50\x84\xa1\x24\x24\x56\xb0\x54\x49\x04\xd5\x1d\xac\x7a\ \xbb\x7a\xd3\x1a\xb2\x13\x49\xd4\x3a\x4a\xfb\x11\xfb\xb2\x20\xc9\ \xb7\x41\x61\xc0\xfc\x56\xd4\xa3\x85\x78\xbe\x21\x49\x58\x03\x04\ \x10\x39\x3d\x87\xa6\xb8\x53\xb5\xb5\xcb\xf4\x95\xd4\x56\xf8\x37\ \xf8\x0c\xb7\x12\xd4\xdf\x86\x87\xa2\xad\x6d\x86\x54\xa4\xa9\x29\ \x09\x0b\x18\x58\x2b\xe5\x7e\xb8\xec\x2a\x12\x7b\xb2\xd2\xc5\xc2\ \xf6\x8a\xd6\xf6\x2f\x26\xdf\x61\xd4\x95\x34\xf2\x1c\x48\x51\x49\ \x28\x50\x20\x10\x70\x47\x1e\xa0\xfa\x56\x69\x50\xdb\xc1\xcd\x73\ \x76\x85\xea\x1c\x8d\x3b\xd1\xdf\xb5\x5b\x6c\x96\x86\xaf\x37\x6d\ \x52\xe5\xb6\x33\x6d\x36\xb4\x47\xf1\x96\x13\x97\x96\x37\x13\xe9\ \xd8\x28\x7a\x63\x81\x52\x19\x9d\x48\xd5\x9a\x7e\x4e\xb2\xd3\x97\ \xa1\x69\x93\x79\xb2\xd9\x4d\xda\x0c\xb8\xac\xad\x0d\x3c\x8e\x01\ \x0b\x6d\x4a\x38\x21\x4a\x03\x83\xc8\xa9\x4a\xe8\xaa\xc6\x42\xc9\ \xb2\xe9\x74\x05\xe4\xa7\xbd\x64\xd9\x2a\x6f\x6f\xad\x52\x56\x0e\ \xa6\x6b\x13\xa8\xf4\x2a\xee\xf1\xec\xea\xb5\x6b\x26\xdd\x2c\xb1\ \x1d\xb7\x03\xd1\x76\xa5\x24\x12\xb2\xac\x2b\x3b\xc1\x23\x68\xf5\ \x1e\x99\x2e\x9f\xa3\xb1\x79\x5a\xa3\xa9\xde\x3a\xdc\x3e\x1e\xa9\ \x90\x12\x16\x49\xc2\x77\xaf\x00\x67\xd2\xac\xdd\x90\x43\x11\x19\ \xcd\x25\xcf\xed\x72\xc7\xb8\xc5\xde\x92\x95\x0e\xf5\x11\xbe\x59\ \x50\x5a\x51\xd9\x92\x7b\x55\x88\xe2\x12\xea\x4f\xbd\x34\xdc\x63\ \x05\x24\x82\x29\xd4\xaa\x58\x6d\x48\x5c\xe2\x0f\xd2\x59\x9d\x71\ \xf6\x81\x6c\x81\x65\x92\x9b\x52\x8e\x54\xf4\x70\x57\xe3\x9f\x65\ \x63\xb0\x1e\xc7\xd7\x9f\x6a\xa9\x74\xc7\x4d\x35\x35\xd4\x29\xf9\ \x6c\x8b\x73\x29\xed\xf6\xa4\xa9\x25\x7f\x41\x8a\xfa\x07\xa8\x2c\ \xc9\x75\x45\x41\x27\x35\x0d\x9f\xa6\x0b\xab\xf3\x24\x91\xf3\x59\ \x65\x47\x11\x52\x76\xd3\xc4\x21\x5b\x87\x1b\x24\x72\x2d\xd7\x41\ \x6a\x02\xb4\x46\x8c\x84\x48\x6c\x01\xc8\x1b\x02\x4f\xbe\x69\xbd\ \x1a\x32\xea\x64\x98\xf3\x58\x97\x35\xd0\x32\x96\x9a\x51\xf0\xd0\ \x33\xdd\x4b\x35\xd6\x92\xb4\x93\x63\x3e\x5c\x53\x4c\xdb\x03\x2c\ \x20\x82\xad\xa3\xd4\x66\x99\x53\xa3\xea\x25\xb9\x68\xf4\x84\xa1\ \xba\x4c\xe5\x6b\xae\x81\xbb\x21\x45\x61\x70\xd3\x9e\xc8\x42\xc9\ \xc0\xfa\xe2\xa4\x1d\x1b\x65\x5a\x67\xa8\x71\xd6\xb9\x49\x79\x32\ \x19\x53\x0b\x00\x14\xf7\x20\xe4\x67\xd0\x10\x2a\xde\xbe\xdb\xa2\ \x21\xb2\xae\x30\x7b\x1c\xf7\xa8\x02\xa1\x32\x9d\x47\x0d\xc8\xec\ \x27\xc7\x32\x02\x77\x84\xe1\x5b\x7d\x46\x7f\x2a\x45\x7a\x31\x54\ \x65\x79\x2d\x87\x60\xf1\x73\x9e\x22\x2e\xdc\xce\xa1\xb1\x3a\x5d\ \x8c\x84\xac\x80\xb4\xe0\x0c\x9c\xe4\x7f\xac\xd2\xd7\x99\x56\xf3\ \xcf\xec\xf1\xfe\xb9\xa6\xed\x1c\x80\xf5\xb1\x90\xf8\xc3\x88\x18\ \x3c\x7f\xaf\xc2\xa4\x25\x05\x0a\x2d\xbb\x8d\xa7\x80\xbf\x43\xf1\ \x5e\x7e\x31\xba\x3d\x14\xa5\x69\x08\x43\x01\xe4\x6c\x70\xf9\xd2\ \x0a\x4a\x88\xe7\x1f\x51\xdf\x8f\x4a\xf1\x88\xea\x8a\xc6\xd7\x4b\ \xc8\x59\x23\x12\x5a\x1b\x93\xc7\xa9\x1e\x87\xf9\xf3\x4b\x7e\xcc\ \xa4\xb8\x36\x1f\x32\xbe\x3b\x7d\x29\x54\x55\xad\xa1\xe6\x3c\x91\ \x8e\x78\xff\x00\x42\xaf\x15\xae\xa5\x5c\xb4\x3c\xb7\xc9\x74\x2b\ \x6e\x03\xc9\xc8\xf3\x27\x9c\xfc\x91\xdc\x53\xfb\x0f\xb6\x5a\xf2\ \xe3\x70\xc7\xaf\x7a\x65\x92\xcc\x77\x16\x14\xa6\x46\xff\x00\x45\ \xa7\xca\xa1\xf8\x8e\xf5\x93\x29\x2b\x40\x6c\xad\xd5\x03\xc6\x4a\ \xb3\xc5\x35\x4a\xc2\x25\x14\xf5\x16\xc9\x79\x4a\x56\xd4\x05\x67\ \x39\xc9\x38\x14\x95\xe8\xee\x48\x3e\x7f\x0d\x1c\xfd\xe4\x8d\xc4\ \x7b\x71\x4a\xa1\x42\x61\xa4\xf0\xd2\x4a\x7d\x77\x1c\xe7\xe4\xd2\ \xf0\x50\x1b\xda\x9c\x04\xf6\xc2\x7b\x51\x6b\xee\x56\xf6\xd8\x8b\ \xb9\xa7\x58\x71\x68\x5b\xac\xa9\x64\x02\x32\xea\xb8\xcf\xc2\x7d\ \xa9\x24\xad\x25\x09\xc5\x38\x95\x21\xbd\xaa\x56\x4a\x52\x00\xcf\ \x1e\xc2\xa5\x6b\x0a\x3c\xed\x01\x5d\xb2\x6b\xc0\xd0\x1f\x7c\x67\ \xdf\x03\x19\xa5\xba\x30\x7c\x87\x46\xb4\xe3\xcc\x89\xb3\xa5\xdb\ \x68\x6c\x42\x01\x40\xe0\x01\xfb\xa3\xd2\x96\x46\xb0\xb2\xc1\xce\ \x01\xe7\x22\xa4\x29\x28\xdd\x8f\xe0\x2b\x05\xa1\x64\xe7\x01\xb4\ \xfb\x9e\x4f\xe1\x54\x54\x60\xb9\x03\xaf\x37\xbb\x1a\x94\xc8\x40\ \x4a\x10\x82\x54\x79\x00\x76\x03\xe6\xa2\x7a\xed\x9f\x16\x1a\xa3\ \x24\x95\xa9\xd5\x24\x15\x27\xbe\x77\x0e\xdf\x02\xa6\xb2\xbf\x64\ \x85\x25\x03\x69\x3f\x78\xab\xb9\xfa\xd4\x79\xd8\x89\x7a\x4a\x9d\ \x74\x12\x12\x9e\xdd\xf9\xa4\xd7\x8d\xe3\x64\x32\x8c\xac\xf3\x33\ \x8f\xfa\x99\xa5\xae\xfa\x73\xa8\x92\x1e\x94\xd3\xf3\x62\x5c\xde\ \x72\x44\x69\x0c\xb0\x7f\xda\x16\xa3\x90\xc1\x09\xec\x42\xb3\xc7\ \x63\x48\xa4\x4b\x95\x09\x6f\xef\x07\xc4\x52\xc3\xb2\x22\xf0\x76\ \x38\x78\xf2\x91\xf1\x80\x47\xe5\x5d\x73\x73\xb3\x19\xd0\xde\x88\ \x48\x4a\x8a\x4e\x17\xec\x7d\xc7\xcf\x7a\xa0\x3a\xab\xa3\xdb\xd3\ \x32\x17\x7d\xb9\x38\xd4\x7b\x73\x48\x25\xb8\xed\x24\x85\x49\x7b\ \x38\x08\xcf\xf1\xfc\x0d\x3f\x0d\x55\xb9\x24\xd6\xb6\xb2\x17\x89\ \x6f\x27\x57\x6b\xdd\xae\xd2\x1e\xd4\x37\xe6\xb2\xc0\x53\x72\x52\ \xeb\x83\x72\x92\xe3\x64\x14\x63\xd8\xfb\x1a\x7b\xb7\xd8\xe5\xa1\ \x68\x2b\x69\x67\x1c\x6e\x03\x9c\x1f\x4a\xd9\xa0\xf5\x0d\xb2\xea\ \xe7\xda\x11\x21\xa6\x54\x80\x0b\x8c\xbc\xe0\x4a\x90\x7d\x7b\xf7\ \x1f\x35\x76\xe9\xb8\xf6\xeb\x8c\x64\x00\x1b\x24\xf2\x0a\x48\x20\ \xfe\x35\xe8\xf0\xf4\x28\x4e\x9e\x49\xbd\x4f\x31\x5f\x13\x56\x35\ \x1c\xb6\x65\x6b\xa5\xb4\x7c\x74\xdc\xcc\xc0\x87\xd2\xea\x95\xb9\ \x45\x47\x85\x1f\x7f\xaf\xf9\xd7\x42\xe8\x68\x31\xe2\x30\xd9\x70\ \xe5\x40\x53\x65\xb2\xc8\xdb\x6f\xa5\xb0\x81\xdf\x82\x2a\x7f\x67\ \xb5\xc5\x8e\xd2\x4a\xc0\x27\x1e\xb5\xbf\x0f\x84\xa7\x85\x8b\xb7\ \x33\x25\x4a\xd5\x2b\xcf\x34\x9d\xd8\xfb\x18\xef\x65\x2a\x6f\xee\ \x8a\xc5\xfb\xd1\x64\xf8\x6d\xb7\xdb\xbd\x64\xdc\x86\xda\x6f\x09\ \x1c\x0a\x8f\x5c\x64\x9f\x19\x6b\x09\x18\x1e\x95\x34\xe9\x29\xb7\ \x99\x68\x5a\xa5\x57\x05\xd5\x7a\x92\xdb\x5d\xcd\x12\xf0\x14\x36\ \xab\xd8\xd1\x51\x38\x8f\xac\x20\x38\x95\x6d\x57\xd6\x8a\xa4\xf0\ \x69\xbb\xc5\xd8\xb5\x3c\x6b\x4a\xd2\x57\x21\x9d\x33\x8b\x39\xcd\ \x3d\x13\xec\xe0\x84\x9d\xfe\x6f\xfa\xea\xab\x16\xd8\xcc\x86\x41\ \x12\x5c\xdc\x7d\x78\xed\x4c\x7d\x33\x4a\x63\xe8\xa8\x29\x40\x4e\ \x47\x88\x09\x3f\xfc\xc5\x53\xcb\xcf\x24\xa8\xec\x39\x34\xf4\xdc\ \x95\x91\x9a\x9a\x51\x8a\x6c\x41\xa8\x4a\x50\xe2\x42\x57\x84\x9f\ \x4c\xd2\x0b\x64\xe5\x46\x92\x97\x1a\x59\x29\x07\xcc\x33\x58\x5d\ \x1d\xf1\x64\x60\x9c\xed\x14\x89\xa6\x5c\x65\x4a\xc0\x38\x3c\xe4\ \xd3\x92\xd2\xcc\x5b\x96\xb7\x43\x03\xfa\x31\x4b\x87\xaf\x22\xb7\ \x79\x38\xd5\xef\x97\x54\xaf\xb2\xff\x00\xb9\x79\x51\xc6\x37\xf9\ \xfe\xf7\x7f\x2d\x39\x5c\x34\x82\x6f\xda\x2f\x4d\x69\x65\xdc\x5f\ \x8b\x3b\x4f\x26\x32\xad\xf7\x36\x1b\x1b\xda\x75\x84\x25\x21\x7b\ \x09\x23\x07\x19\xdb\x9e\xf8\xe7\x8a\x70\x65\xc7\x8b\x9c\x8f\x2d\ \x4a\xb4\x74\x55\x2d\xd5\x48\x5a\x30\x3e\x69\x15\x29\x53\x84\x5b\ \xb1\x6a\x71\x73\x96\x5e\xdf\xec\x6f\xbb\xe8\x9b\x96\xa2\xd0\x97\ \x6d\x39\xae\x35\x22\x6f\x2d\x4e\x42\x3c\x37\x63\x5b\xd3\x10\xb0\ \x52\x77\x05\x01\xb9\x59\x3b\x82\x4f\x27\x1c\x63\x1c\xd3\x7e\x8b\ \xb1\xea\x7b\x36\x1a\xbc\xea\xd6\xef\x31\x1a\x63\xc1\x69\xbf\xd5\ \xa9\x61\x79\xc8\xc2\x94\xb0\xb3\xb8\x80\x08\xec\x33\x9c\x9a\xb0\ \xee\x8e\x06\xe1\xa8\x77\xf4\xa6\x46\x90\x56\xa4\x23\x3d\xeb\x36\ \x1d\x75\x5b\x35\xd7\x84\x54\xd5\xb7\x21\x9d\x4e\xd1\x37\xc7\x64\ \xb1\xd4\x0d\x08\xff\x00\x85\xab\xad\xb1\x15\x1d\xb6\x14\x84\xa9\ \xb9\x8d\x28\xf2\x85\x6e\xe3\x70\x0a\x51\x07\xd4\x80\x3d\xb0\xd3\ \x6c\xe9\x64\x1b\x97\x43\xdf\xd2\xf2\x1e\xb9\xda\xe6\xdd\xde\xfb\ \x74\xe9\x13\x59\x41\x7c\x4a\xde\x09\x2a\x42\x55\xb4\xa7\xca\x00\ \x01\x5d\x8e\x73\x92\x6a\xeb\x68\x78\x51\xc0\xed\x81\x4c\x77\xb7\ \x49\x4e\x32\x72\x4e\x69\x54\xe3\xc4\x99\x35\x68\xc2\x0b\x37\x76\ \xc6\xbd\x2d\x6b\x96\x8d\x30\x6c\xd7\xfb\x9b\x57\x92\xe3\x4a\x65\ \xc7\x51\x18\x30\x95\xb6\x53\xb7\x6e\xd0\xa3\x8e\x33\xce\x7d\x6a\ \x31\xa4\x7a\x7f\xa8\x74\x64\x78\xd6\xbb\x76\xb6\x54\x8d\x37\x11\ \xe5\x2d\x98\x12\x2d\x88\x53\xc9\x6d\x4a\x2a\xf0\xfc\x7d\xfd\xb2\ \x4f\x3b\x73\xed\x8e\xd5\x31\xb3\x3d\x96\x53\xee\x9a\x77\x7d\x21\ \xc6\x0d\x44\xe3\x92\x63\xa1\x08\xd4\x82\x7c\xd1\x52\x5b\x3a\x4f\ \x1a\x1f\x59\x5d\xea\x0a\x6e\xea\x53\x4e\x38\xb7\x91\x6d\xfb\x3f\ \x95\x0f\x2d\xa0\xda\x9c\xdf\xbf\x92\x7c\xc7\xee\xfa\xfc\x52\x1b\ \xb7\x41\x9d\x99\x63\xbf\x58\x63\xeb\x37\xa3\xd9\xae\xd7\x15\x5c\ \xd3\x18\xdb\x90\xb5\xb7\x20\xff\x00\x69\xcd\xd9\x5a\x06\x07\x94\ \x6d\xe4\x0e\x7b\xe6\xd6\x00\xa7\xf0\xa7\x48\xca\xde\xd0\x35\x15\ \x55\xb5\x45\x29\xe1\xe9\x4a\xe9\xaf\x4f\x72\xa8\xb8\x74\xe9\xb9\ \x9a\xc7\x5b\x5d\xa6\xdd\x1c\x5b\x1a\xa2\x03\x70\x9d\x8e\x86\x76\ \xa9\x84\xa5\xa4\xb7\xb8\x2f\x71\xdc\x7c\xb9\xfb\xa3\xf1\xa6\xbb\ \x1f\x4a\xee\x30\xa6\x69\x39\x17\x1d\x5e\xe5\xc0\x69\x67\x31\x6f\ \x68\x40\x4b\x49\x0c\x94\x90\xa4\x1c\x2c\x92\xa3\x84\x79\xf3\xd9\ \x18\xdb\xce\x6a\xdb\xba\x30\x52\xbf\x15\x23\x8a\x6d\x29\x5e\xed\ \xd9\x38\xad\x10\x8c\x26\xae\x22\xa5\x25\x19\x6a\xbd\x5e\xff\x00\ \xc9\x50\xb3\xd1\x45\xb1\x67\x66\xc2\x9d\x5e\xf1\xb4\xc5\xbb\x26\ \xe9\x09\x83\x01\x1b\x90\xe8\x50\xcf\x88\xbd\xd9\x73\xcb\xb9\x23\ \xee\xe3\x76\x4e\x70\x05\x4e\x23\x68\x39\xac\xf5\x59\xed\x77\x6a\ \xd4\x62\x18\x99\x1d\xa8\xf3\xa1\x39\x04\x3b\xe2\xb6\x82\x93\x84\ \xaf\x70\xd9\x90\x90\x33\x83\x8e\x6a\x5c\xcb\x41\x79\x56\x73\x8a\ \xdd\x19\x44\x3b\xb4\x77\xcd\x56\x71\x56\xb2\x26\x9d\x18\x45\xa7\ \x62\xb6\x83\xd1\x28\x4d\xf4\xed\xcd\x29\x23\x50\x3c\xb9\x28\xbc\ \x2a\xef\x0a\xe0\xd4\x50\x85\x47\x7b\x8d\xbe\x42\xa5\x05\x01\xce\ \x79\x19\xcf\xa6\x2b\x7b\x9d\x24\x7e\x54\x6d\x51\x32\xf5\xa9\xd5\ \x72\xbe\xea\x0b\x7f\xea\xf5\x4e\x10\x43\x4d\xc6\x67\x18\x09\x43\ \x21\x67\xd4\x02\x7c\xdc\x91\xe9\xcd\x59\xc5\x45\x1d\xeb\x2d\xfc\ \x0f\x9a\x46\xa8\xd1\xec\xf4\xb6\xb1\x5b\x45\xe9\x49\x0e\xf4\xf1\ \xd3\x7d\xe3\x46\xa1\x68\xc7\xd9\x3f\xdd\x9b\x92\xda\x7f\xb7\xfb\ \x3f\xb9\xfd\xee\xf5\x29\xd1\xfa\x7e\xe3\x62\x9b\x7b\x7e\x76\xa7\ \xb8\xde\x9b\xb8\xcd\x32\x63\xb5\x28\xf9\x61\xa0\xe7\xf6\x48\xe4\ \xf1\xcf\xa6\x07\x03\x81\xce\x5f\x9d\x7b\x03\x68\x35\xa5\x4f\x00\ \x39\x34\x28\xb7\xa9\x2a\x14\xe0\xf4\xf5\xa5\x85\x01\x7b\x79\xad\ \x32\x4a\x56\x93\xcf\x34\x8d\xe9\xcd\xa0\x1c\xac\x71\x4c\xd7\x1b\ \xf3\x4c\xf6\x58\xcf\xc5\x33\x25\xb5\x61\x2a\xc9\x0b\x26\x21\xac\ \x12\xbc\x53\x05\xc9\xf8\xad\xe7\x25\x35\x57\xf5\x77\xae\x5a\x7f\ \x47\x2d\x51\x1c\x5a\xae\x17\x2c\x67\xec\x71\xd6\x3f\x67\xff\x00\ \xcc\x5f\x64\x7d\x39\x3f\x15\xcd\xfa\xb3\xaf\x7a\xfa\xfc\xea\xd1\ \x6f\x7d\x9b\x44\x75\x1e\x13\x11\x1e\x70\x3e\x56\xac\x9f\xc4\x62\ \xa8\xf1\x79\x7d\xd4\x14\xe8\x55\xad\xee\xa3\xa8\x7a\x81\xac\x6c\ \x9a\x66\xdc\xa9\x77\x59\xcc\xc4\x41\xc8\x40\x59\xf3\xac\xff\x00\ \x75\x23\x93\x5c\xcf\xd4\x1e\xb8\xcf\x9b\x70\x2c\x69\x76\x0b\x6d\ \x63\x68\x7a\x42\x02\x94\xaf\x90\x9e\xc9\xfc\x73\xf8\x55\x59\x70\ \x95\x3e\xe2\xeb\x93\xae\x92\xe4\x4c\x79\xc3\xf7\x9d\x59\x52\x96\ \x7e\xa6\xa7\xbd\x0b\xe9\xe2\x35\xa6\xa9\x11\xa5\x05\x22\xdb\x0d\ \x29\x7e\xe0\xf2\x0f\xde\x4e\x70\x96\x81\xf4\xdc\x78\xfa\x03\x59\ \x6b\xe2\xa4\xd5\xe6\xce\x9e\x1b\xa1\xf5\xbc\xd9\x96\x84\xe9\xee\ \xb2\xea\x0a\xd5\x7f\xbb\x5c\x65\x31\x6c\xdc\x4f\xda\x16\x49\x53\ \xa7\xd4\x36\x0f\x18\xf9\xed\xf5\xab\x5f\x4e\xe8\x78\xd6\x9b\x9c\ \x54\xa3\xc6\x73\xc3\x39\x53\x8f\xb8\x56\xb5\x7a\x66\xae\x49\xec\ \xc7\x89\x09\x98\x71\x18\x43\x2c\xa1\x3b\x1b\x6d\x00\x04\xa1\x20\ \x60\x00\x3d\x05\x47\x5e\x67\x32\xdb\x74\x02\x73\xc6\xe1\xee\x2b\ \xcf\xe2\x71\x35\x2a\x3b\x72\x3b\x14\x28\x53\x86\xb1\x44\xb6\xc8\ \xd2\x51\x1d\x21\x23\x09\xc0\xcd\x3f\xb4\x90\x50\x37\x84\xad\x23\ \xb8\x3f\x5e\x0d\x31\xd8\x14\x0b\x3c\x9f\x32\x7d\x71\xde\xa4\x6d\ \xa4\x2d\xa0\x15\xe5\xc7\xc7\x7a\x65\x3d\x50\xba\x9b\x88\xcc\x65\ \xa0\x92\xc8\xde\x9f\xec\x77\x1f\x87\xa8\xad\xad\xa5\xbe\x13\x92\ \x39\xc8\x0a\x38\x22\x94\x16\x9c\x6f\xcc\xde\xec\x7a\xe4\xff\x00\ \x8d\x6d\x61\xd1\xc8\x71\x04\xfe\x19\xa6\x24\x2d\xc9\x98\x35\x15\ \x63\x24\x21\x59\xc6\x38\x02\xb7\xb0\xd6\x50\xa1\x92\x9e\xe1\x4a\ \x00\xf2\x7d\x78\xa5\x6d\xa5\xb2\x06\xd5\x2b\x07\xdc\xf0\x3e\x94\ \xa5\x0c\xb3\xea\xea\xff\x00\x0a\xbe\x51\x6e\x62\x26\x94\x94\xa7\ \x1b\x14\x4f\xb9\x4d\x78\xae\x78\x50\xc8\x3e\x83\xd2\x9c\x76\x46\ \xef\x82\xe7\xc6\x6b\x62\x40\x49\xc2\x10\x84\x0f\xa5\x5b\x29\x19\ \xc6\xe6\x9a\x75\x5f\x71\x93\x81\xea\xae\x05\x6d\x11\x70\x09\x79\ \x40\xfc\x26\x97\x10\xa5\x8c\x14\xab\xe7\x9a\xd6\xe3\x58\xf3\x29\ \x58\x1e\x98\xa1\xa2\x33\x08\xd4\xd8\xc6\xd4\x24\x24\x63\xb6\x38\ \xad\x0b\x4a\xb3\xb8\xd2\xc7\x16\x0e\x52\x94\x94\xfc\x9a\x44\xf2\ \x8a\x95\xb5\x24\xe4\xfe\x42\x97\x26\x59\x08\x26\x6e\x52\xfc\x26\ \xc0\x27\x1e\x63\xed\xf3\x49\x14\xce\x3c\xa8\x19\x09\xe3\x3e\xe7\ \xde\x9d\x94\xc1\x59\x0d\xb3\xe6\x3d\xc9\xff\x00\x5f\xce\xa9\x3e\ \xb1\xf5\xc6\xd7\xa6\x14\xfe\x9f\xd1\xae\x47\xbb\x5f\x00\x29\x7e\ \x60\x21\x71\xa1\x1f\x60\x7b\x38\xe7\xc0\xe0\x7a\xe7\xb5\x2d\xc1\ \xc9\x9a\x68\x53\x9d\x59\x28\xc1\x6a\x49\xfa\x85\xae\x74\xc6\x82\ \x69\xb5\x5f\x24\xa9\x53\x9f\x41\x54\x78\x2c\x0c\xba\xee\x3d\xfd\ \x12\x93\xfd\xa5\x71\xf5\xae\x4b\xea\x36\xb4\xba\x6b\xdb\xe2\xae\ \xf7\x72\x50\xd3\x6a\x29\x8b\x09\x3f\xd4\xc6\x6f\x3d\x81\xfd\xe3\ \x8e\xea\xf5\x3f\x95\x31\x6a\x0b\xc5\xca\xe7\x3e\x4d\xd2\xeb\x25\ \xf9\xd3\x9e\x58\x53\xd2\x5c\x3b\x89\x3f\x3f\x81\xe0\x76\x14\xcd\ \x31\xe7\x64\xa8\x70\x42\x41\xf2\xf3\xc7\xe5\x5a\xe8\x61\xd4\x35\ \x67\x51\x46\x9e\x1d\x7f\xb4\x84\x97\x16\x13\xe2\x27\xc0\x58\x52\ \x89\xf3\x60\xfc\xd3\xff\x00\x4f\xb5\xde\xa0\xd0\xf7\x0f\x1a\x1b\ \xbe\x3c\x35\x28\x78\xd1\x9c\x39\x6d\x5f\x4f\x63\xf2\x29\x95\x2a\ \x08\xe3\x21\x38\x3c\x91\xfe\x5f\x35\x8b\x8d\xe5\x2a\x21\x29\x48\ \x03\x8c\x03\x85\x56\xde\x56\x67\x2b\x11\x86\x85\x5b\xbe\xde\x47\ \x63\xf4\xe7\xac\x1a\x67\x52\xb2\xd2\x63\x4d\x44\x69\xd8\x19\x89\ \x21\x41\x0b\xcf\xb2\x49\xe1\x7f\x87\x3f\x15\x6d\xc0\xd4\x0d\xb8\ \x91\xdc\x2f\xd4\x1e\xe2\xbe\x69\x29\x87\x10\xe7\x88\xd2\x94\x8d\ \x9e\x60\x52\x6a\xc6\xd0\x5d\x6c\xd6\x5a\x63\xc2\x62\x5b\xe9\xbb\ \xdb\xdb\xc0\x0c\xca\xc9\x5a\x47\xf7\x56\x3c\xc3\x8f\x7c\x8f\x8a\ \xd3\x4b\x13\x52\x9e\x9b\xa3\xce\xe2\x3a\x2e\x50\x77\x81\xdf\xad\ \xcb\x2e\xc7\xf1\x77\x01\xc5\x21\x61\x45\xe7\x8a\x73\x9d\xc7\x9a\ \xa1\x74\xc7\x5e\xb4\xb5\xfa\x22\x18\xfb\x7a\xed\x33\x14\x39\x66\ \x5f\x08\x27\xd8\x2c\x71\xf9\xe2\xac\x5b\x26\xb1\x8a\x96\x92\xb4\ \x3e\xcc\x82\xa1\x9d\xcc\xb8\x97\x07\xff\x00\x69\x35\xb6\x18\xfa\ \x4f\x49\x68\xce\x5d\x4a\x33\x83\xeb\x22\x74\xe0\x6d\xb5\x14\x13\ \x92\x7d\xa8\xa6\x48\x97\xd6\x26\x28\x28\x11\x93\xcd\x15\xb6\x33\ \x8c\x95\xd3\x13\x62\x51\xd3\x5b\x6a\x1c\xd1\x90\x96\xb5\x7d\xef\ \x13\xb7\xa7\xed\x15\x4f\x4f\x5a\xda\x84\xd2\xde\x6d\x1b\xf0\x9e\ \xd8\xa8\xa7\x4d\x2e\x32\x99\xd2\x70\x12\xa3\x94\x65\x7f\x87\xed\ \x15\x56\x0a\x16\x97\xa2\x85\x77\x4a\x85\x73\xa4\xea\x53\xb3\x6f\ \x43\xa1\x41\x52\xab\x0d\x16\xa8\xae\x19\x68\xca\x9c\xb7\x14\x36\ \x24\x2a\xb2\xba\x24\x15\x80\xd2\xc6\x00\xf4\xad\xf7\x75\x84\x4e\ \x71\x94\x61\x08\xdd\x93\x48\x46\xc1\x90\x09\x51\x3e\xa7\x9a\xe9\ \xad\x51\xcf\x7a\x3b\x1a\x9a\x59\x0a\x28\x3f\x96\x2a\x7d\xa5\x9e\ \x69\x50\x82\x52\x30\x40\xc1\xa8\x3e\x1b\x2a\xcf\xad\x4b\x34\xc2\ \x17\x1a\x12\xde\x70\x7d\xee\x40\x35\x9f\x12\xaf\x4c\xd1\x85\x95\ \xaa\x0a\xef\x4f\x05\x3c\x1a\x1e\x9d\xeb\xcb\x4b\x45\xd7\xf7\x94\ \xf9\x40\xe0\xd2\x17\x14\xa9\x12\x49\xee\x54\x71\x4f\xb1\x50\x98\ \xb1\x80\xcf\x38\xa4\x54\xfd\xba\x6a\x2b\x73\x45\x3f\xdc\xa8\xe4\ \xf6\x32\x9a\xee\x13\xb4\x1f\x4e\x6a\x35\x70\x90\x95\x3a\x54\xae\ \xc9\x3c\x52\xfb\xa4\x9d\xa8\x23\xf7\x95\x4d\x29\x6f\xc5\x77\x67\ \x24\xd3\x30\xd4\xf2\xab\xb1\x78\x9a\x99\x9d\x90\xb6\xd4\xf0\x4b\ \x83\x04\x61\x55\x23\x8a\xb0\xa4\x6d\x35\x13\x09\xf0\x97\xb7\xb1\ \x1f\x14\xf7\x6f\x91\xbd\xb1\xcf\x98\x55\x31\x34\xef\xaa\x2f\x85\ \xa9\x6e\xab\x37\x4a\x6f\xc3\x70\x9f\x43\x5b\xa0\x2f\x04\xa0\x9f\ \xa5\x6d\x71\x29\x7d\x9e\x3b\xd2\x24\x95\x36\xbe\xf8\x22\xb3\x2e\ \xbc\x6c\xcd\x2f\xa9\x2b\xa1\x45\xd1\xd0\x96\xb6\x7a\x9e\x29\x97\ \x3c\xed\x39\xc7\xc5\x3a\x5c\x47\x8c\xce\xf4\xe3\x8a\x68\x53\x9e\ \xc9\xe6\x9f\x87\x8f\x54\x46\x21\xf5\x85\xac\xb8\xdb\x43\xb7\x06\ \xbc\x5a\xb7\x3a\x14\xda\xbb\xd3\x4c\xb9\xbe\x12\x72\xae\x00\xa6\ \x19\xba\x9e\x3c\x57\x0a\x94\xea\x52\x90\x7c\xca\x52\xb0\x07\xd4\ \x9e\x2a\xd3\xcb\x4d\x66\x93\x13\xc5\xe4\x58\x3e\x3a\x52\x91\x93\ \xce\x29\x1c\x9b\x9c\x76\xf8\x2b\x48\xaa\x67\x58\x75\xb3\x48\x58\ \xdb\x50\x9b\xa8\x62\x97\x40\xc8\x66\x32\xbc\x65\x9f\x8c\x27\x20\ \x7e\x24\x55\x21\xab\x7f\x49\xe7\x1c\x52\xdb\xb0\xd8\xca\x8e\x4e\ \xd7\x66\xb8\x4f\xff\x00\x62\x7f\xce\xb0\xf1\xa3\xbc\x55\xcd\x51\ \x55\x6a\x7b\xa8\xeb\xb9\xda\x8a\x3a\x16\x40\x58\xed\xef\x51\xcb\ \xc6\xb5\x8f\x19\xb5\xad\x6f\x21\xa6\xd3\xf7\x96\xe2\xc2\x52\x3e\ \xa4\xd7\x0c\x5f\xba\xd3\xd4\x4b\xab\x8a\x5a\x6f\x0b\x84\xda\x87\ \xdc\x8a\x80\xd8\x03\xea\x39\xfe\x35\x0d\x9f\x74\xbd\x5c\xd5\xbe\ \x7d\xca\x54\x8d\xca\xca\xbc\x57\x8a\xb9\xfc\x4d\x51\xe2\x2a\x72\ \xb2\x1d\x1e\x8e\xab\x3f\x7a\x47\x5d\x6b\x9e\xbf\xe9\xbb\x41\x5b\ \x71\xe7\x9b\x93\xe9\xff\x00\x82\x8b\xca\x7f\xed\x9e\x3f\x2c\xd5\ \x1b\xae\xfa\xe3\xab\xf5\x31\x5c\x5b\x6b\x9f\xaa\x21\x2c\x10\x50\ \xc1\x3b\xd4\x3f\xbc\xe7\x7f\xcb\x15\x5a\x37\x17\xb1\x50\x2a\x23\ \xda\x94\x36\xdb\x4d\xe0\xaf\x03\xca\x41\x03\xd3\xf1\xa4\xca\x4e\ \x4e\xed\xdc\xeb\x61\xfa\x22\x9c\x35\x97\x98\x9d\xb6\x16\xfb\xc5\ \xc7\x9c\xf1\x49\xf3\x12\xa3\x9c\x9a\x56\x5b\x4a\x06\xd4\x24\x91\ \x91\xe9\x5b\x76\xe1\xad\xca\x04\x21\x27\xcb\x84\xf7\xaf\x76\x84\ \xa4\x93\x8c\x28\xe3\x83\xcf\xd3\xe9\x55\x6e\xec\xec\xd3\xa0\xa1\ \x1b\x24\x26\x98\xb5\x97\x58\x40\x48\x29\x49\x52\xb0\x3b\xf1\xdb\ \x3f\x9d\x74\x7f\xe8\x6f\x2e\x2a\xed\xda\x96\xdc\xa0\x91\x38\x2d\ \x89\x19\xf5\x53\x58\x50\xc6\x3e\x09\xfe\x35\xce\xae\x25\x26\x5b\ \x38\x6c\x94\xac\x28\x10\x3b\x9e\x33\xfe\x15\x3c\xfd\x1f\xb5\x22\ \x34\xaf\x55\xad\x32\x65\x3a\x96\xa0\xce\xcc\x19\x65\x47\x00\x25\ \xce\x12\xa2\x7e\x14\x13\xcd\x2a\xb4\x6f\x02\x1a\x93\x53\xd7\x7f\ \xc1\xd6\xf7\x26\xb2\xf9\xf3\x60\x63\x03\xe0\xe2\x90\x88\x89\x71\ \xb2\xde\x36\xee\xc1\x1f\x0a\xf7\xa7\x99\x6c\xa9\x52\x14\x36\x8c\ \xa5\x5b\x54\x01\xed\x8e\xc6\xb2\x62\x29\x28\x03\x8c\x0e\xc7\x15\ \xc9\x74\xee\xcc\xaa\x76\x42\x5b\x46\x5b\x56\xd7\x52\x37\x24\xed\ \x20\x8e\x47\xcf\xe7\x9a\x92\xb4\xb4\xa1\x09\x24\x9c\x11\xdf\xb8\ \xa6\x65\x36\x1b\x21\xc2\x95\x15\x27\x1e\x70\x79\x4f\x3d\x8f\xbd\ \x39\xb6\x85\x29\x85\x05\x36\x01\x28\x38\x58\x20\xf1\xe8\x47\xd0\ \xd3\x20\xb2\xe8\x52\x6d\x3d\x45\xc1\xcd\xaa\x47\x88\x4e\x36\x92\ \x94\x83\x9e\xdd\xf8\xa5\xac\xa5\x24\x02\x10\x82\x15\xc8\x20\xf7\ \x14\xc7\xa7\xd2\xea\xd8\x0b\x92\xa0\xfc\x94\x1f\x0c\xad\x49\x29\ \xe3\x3c\x63\xda\x9e\xe3\x29\x28\x07\x6a\xb2\xd9\x3c\xa7\xfb\x3f\ \x4a\x6c\x1d\xd5\xc4\xd4\x56\x76\x37\x00\xd2\x55\x84\x95\x6d\x23\ \xf7\x78\xe4\x7d\x7e\xb4\xa1\x94\xb6\x13\x93\x95\x28\x93\xca\x8e\ \x3f\x2f\x8a\x43\x25\x5b\x43\x6b\x24\x25\x5d\x81\x48\xc8\xcf\xcf\ \xe1\x43\x6a\x71\x45\x59\x75\xb2\xa5\xe4\x20\x81\x85\x24\x0f\x5c\ \x76\x3e\x9c\x55\xef\x62\x96\x1c\x52\x40\x58\xc1\x1c\x67\xca\x3f\ \xd7\x34\xa1\x2a\x42\x94\x50\x09\xe0\x02\x46\x29\x33\x39\x71\x96\ \xbc\x2d\x85\x04\xe7\x77\xef\x27\x1d\xeb\x5a\x7c\x54\xbc\xb7\x12\ \xb1\x94\x8c\x76\xce\x73\xcd\x5a\xe5\x77\x15\x3a\xff\x00\x87\xca\ \x10\xb7\x14\x3b\x25\x3d\xcd\x63\x20\xac\x8c\x9c\x63\xeb\xda\xb0\ \x82\x14\xb1\xe2\x29\x2a\x1d\xc1\xdd\xdc\x9e\xdf\x95\x6b\xbe\x5c\ \x2d\x96\x4b\x6a\xee\x57\xbb\x94\x4b\x64\x24\x0c\x97\xa5\x3c\x96\ \xd3\xf8\x67\xb9\xfa\x54\x6f\xa8\x5b\x5b\x20\xc6\xe4\xf2\x42\x47\ \x6a\x65\xd5\xb7\xfb\x16\x93\xb3\x2e\xef\xa8\xee\x6c\xdb\x60\xa7\ \x3b\x54\xe1\xcb\x8f\x2b\xfb\x2d\xa0\x72\xb5\x7c\x0f\xc6\xa9\x7e\ \xa5\x7e\x93\xf6\x88\x65\xcb\x77\x4f\x2d\xaa\xbb\x4a\xda\x40\xb9\ \x4d\x41\x6d\x84\x1f\x74\x36\x70\xa5\xe3\xdd\x58\x1f\x06\xb9\xab\ \x56\x5f\xf5\x16\xad\xbb\xbb\x77\xd4\x57\x49\x37\x49\xc4\x60\xba\ \xf2\xf0\x86\xff\x00\xba\x80\x38\x48\xf8\x48\xc5\x4a\xa6\xd9\xd2\ \xc3\x74\x75\x4a\x9d\x69\xe8\xbc\xfd\x7a\xb1\x65\xf5\x9b\xaf\xb7\ \x8d\x5d\xe2\xd8\x74\xca\x17\x61\xb0\xa8\x94\xb8\xb5\x2b\xfd\xa6\ \x58\xf6\x5a\x87\xdd\x49\xfe\xca\x7f\x12\x6a\x9e\x71\x29\x60\xb6\ \xda\xdc\x50\x1b\x54\x50\x80\x36\x9d\xc6\xb5\xbc\xe0\x49\x48\x69\ \xb0\x70\x7e\xf1\x1f\xce\xb5\x24\x29\x6a\xf1\x94\x4b\x8a\x3d\xf1\ \xdf\xe4\xf3\x5a\x21\x05\x15\xa1\xd3\x8e\x4a\x49\xc2\x2b\xd7\xd4\ \xd0\xb3\x29\xf5\x99\x0a\xca\x46\x30\x02\x46\x78\xf7\x35\x82\xd2\ \xb7\x1b\x48\xc0\xee\x33\x83\xc6\x7d\x29\x62\x88\x43\x4b\xda\xa0\ \x92\x0e\x70\x0f\x27\xde\x93\xc8\x79\x0a\x74\x00\x14\x40\xf4\x4f\ \x00\xf1\x4c\x42\x2a\x46\x29\x6a\xdd\xd9\xad\x0c\xb2\x12\x52\xf3\ \xa9\x4e\xd3\x92\x0a\x7f\x2f\xad\x60\xe6\x12\x93\xb9\x63\x1d\x81\ \x4a\xbb\xfe\x15\xb5\x42\x53\xa1\x3b\xd2\x52\x39\x03\x70\xc9\x48\ \xc7\x02\xb2\x66\x13\x2d\xa4\x29\xd5\x78\xa4\x8c\xee\x24\x64\x7e\ \x1f\x5a\x9b\xf6\x8a\x74\xdc\x9e\x58\x2b\x7a\xe6\x22\x59\x51\x58\ \x28\x0b\x50\xcf\xb6\x31\xe9\x59\x39\x15\x4a\x39\x70\xa7\x80\x4e\ \x7b\x52\xe5\x2d\xa4\x12\x10\xea\x90\x01\xe4\x28\x7a\xfc\x52\x27\ \xe4\x28\xf2\x82\x41\xf5\x28\x18\xfa\xd4\xa6\xde\xc2\xe7\x4e\x10\ \x4d\xc9\xdc\x46\xec\x66\xc2\xc6\xd3\x92\x79\x1c\xd6\x70\xa4\x5c\ \x6d\xef\x22\x4c\x29\x6f\xc5\x75\x07\x29\x52\x16\x52\xa0\x7f\x0a\ \x50\x92\x8c\xa9\x2a\x51\xec\x3d\xb3\x9a\x0a\x77\xa4\x29\x40\xe0\ \x63\x38\x3c\x0a\xb5\xcc\x72\xc3\xc6\x45\x9d\xa3\x3a\xe7\x7c\xb5\ \x2d\xa6\x35\x24\x41\x70\x65\x3c\x7d\xa1\xb3\xb1\xec\x7b\x9f\x45\ \x7e\x3f\x9d\x15\x51\xce\x6d\x29\x19\xc1\xc1\xed\xed\x45\x42\x8a\ \xe5\xa1\xca\xaf\x82\xa5\x9f\xdd\xf5\xf0\x3a\xc3\x4d\x6a\x0b\xf3\ \x76\x28\xc8\x6e\xf5\x72\x4a\x41\x56\x02\x65\xac\x01\xe6\x3e\x99\ \xa9\x33\x5a\xa3\x52\x35\x0c\x0f\xe9\x0d\xd8\x71\xdb\xed\x8e\x7f\ \x9d\x42\x74\xaa\x77\x5a\x63\x92\x78\x1b\xbf\xfc\x8d\x3d\x15\x78\ \x87\x27\xee\x8a\xf1\x55\xeb\x55\x72\xb6\x67\xf3\x3c\x6a\x9c\x93\ \x76\x66\x62\xeb\xa8\x5f\x90\xa7\x5d\xbe\x5c\xce\x4f\x73\x29\x7f\ \xe7\x4a\xdb\xba\xde\x12\x9c\x7e\xb9\xb9\x7f\xf5\x4b\xff\x00\x3a\ \x40\x54\x01\xe2\xbd\x6d\x4a\x52\x82\x52\x82\x49\x3c\x01\xeb\x55\ \x78\xaa\xef\x69\x3f\x9b\x21\x36\x2c\x76\xe9\x78\x24\x2c\x5e\x6e\ \x5c\x73\xfe\xea\x5f\xf9\xd6\x6b\xd5\x7a\x89\x6d\x86\x91\x7e\xba\ \xed\x1e\x9f\x6c\x73\xfc\xeb\x0b\xd5\x9a\xfb\x6d\x88\xdb\xf3\xec\ \xf3\xa2\x30\xf2\xb6\x21\xc7\xd8\x52\x12\x49\x19\x03\x24\x77\xc0\ \x27\x1f\x06\x90\x47\x65\x2c\xa7\x72\xf9\x51\xab\x4a\xb5\x78\xfb\ \xf2\x77\xf1\x64\xbc\xd1\x76\xd8\x7a\x89\x7f\xd4\x2d\x8f\x11\x57\ \xeb\xa8\x57\xfc\xf1\xcf\xf3\xac\x9f\xd5\x7a\x90\x82\xa5\x6a\x1b\ \xb6\x3f\xe7\x8e\x7f\x9d\x35\x0d\xce\x38\x84\x24\x65\x4b\x50\x4a\ \x52\x4e\x32\x49\xc0\xaf\x35\x3d\xaa\xe7\x64\xba\xae\xd9\x76\x8c\ \x23\x49\x42\x52\xa5\x37\xe2\x25\x78\x04\x64\x1c\xa4\x91\x54\x8c\ \xeb\xcf\xac\xe4\xed\xf1\x2d\x9a\x6a\x37\x57\xb1\xb5\x7a\x97\x50\ \xba\xb2\xa5\xdf\xae\x87\xeb\x2d\xcf\xf3\xaf\x58\xd4\x9a\x85\x2b\ \xdc\x2f\xb7\x4f\xfe\xad\xcf\xf3\xa6\x62\x78\xed\x4e\xd0\x6c\x17\ \x69\x76\x19\x77\xc8\xf1\x82\xed\xf0\xd4\x11\x21\xef\x15\x03\x62\ \x8e\x30\x36\x93\x93\xf7\x87\x61\xeb\x4f\x55\x6b\x4b\x48\xc9\xfc\ \xd8\xb8\xe7\x93\xd0\xda\xe6\xa4\xd4\x3b\xf7\x7e\xbe\xba\x7f\xf5\ \x8e\x7f\x9d\x66\xd6\xa7\xd4\x6d\xab\x72\x6f\xf7\x51\xf4\x98\xe7\ \xf9\xd3\x3e\xd2\x72\x2b\xd1\xda\x97\xc7\xab\x6f\x79\xfc\xc3\x34\ \xbb\x49\x33\x3a\xab\x52\x10\x14\x9d\x43\x76\xf9\xff\x00\x6c\x73\ \xfc\xe8\x7b\x53\x6a\x25\x8c\xff\x00\x48\x2e\xb9\xff\x00\x9e\x39\ \xfe\x75\x1b\x43\xa5\xa3\x9f\x4a\x1e\x96\x90\x9c\x85\x52\xb3\xd6\ \xbd\xd4\x9f\xcc\xba\xa9\x27\xa5\xc7\x97\x35\x76\xa4\x6c\x14\x9d\ \x41\x76\x03\xfe\x78\xe7\xf9\xd3\x74\xcd\x69\x7c\x65\xa5\x2d\x7a\ \x86\xe4\x84\x81\x95\x29\x53\x56\x00\xfa\x9c\xd4\x3f\x52\xea\x16\ \x22\x94\x47\x09\x76\x4c\xd7\x8e\xd8\xf0\xe3\xa4\xad\xe7\x94\x7b\ \x04\xa4\x73\xc9\xaa\x9f\xaa\xb1\x7a\x8b\x05\x51\xbf\xa5\xd6\x0b\ \xbd\x8e\x24\x82\x7e\xca\xdc\x98\xab\x65\xb5\xe3\xbe\x32\x06\xe5\ \x0c\x8c\xfa\x8c\xfa\x57\x4f\x07\x86\xc4\x57\xd7\x33\x4b\xb6\xec\ \xdb\x85\xc2\x55\xae\xef\x7b\x22\x79\xab\xba\xdf\x3a\x31\x53\x16\ \xdb\xd5\xca\xe0\xf0\xe3\x7a\xa5\x38\x1a\x1f\xc7\x2a\xff\x00\x5c\ \xd5\x4d\xa9\x75\x9e\xa9\xd4\xae\x95\xdd\x6f\x53\xa4\x23\xd1\xb5\ \x3c\xad\x89\x1e\xc0\x67\x14\xc2\x1b\xf7\xe4\x9f\x5a\xcd\x20\x76\ \x07\xf3\xaf\x41\x47\x0f\x0a\x4b\x4b\xb7\xda\xce\xfe\x1f\x07\x0a\ \x1b\x6e\x63\x87\x14\x7c\xce\x2f\xf1\x35\xea\x41\x4f\x39\x56\x6b\ \x23\xbb\x8f\xa5\x2e\x76\xd5\x73\x66\xd2\xc5\xe1\xfb\x5c\xc6\xad\ \xb2\x5c\x53\x4c\x4c\x5b\x0a\x0c\xba\xb4\xfd\xe4\xa5\x78\xda\x48\ \xf5\x00\xf1\x4f\x6d\x9b\x16\xe2\x30\x5c\xec\x16\xbf\xce\xbd\x42\ \xd6\x14\x0e\xf5\x03\xe8\x6b\xc0\x32\x7d\xbd\xab\xdf\x4c\x11\x8a\ \xad\xcb\xab\xf6\x99\x17\x9e\x24\x6e\x79\xc3\xf8\x9a\xc9\x2f\x3b\ \xbb\x97\x5c\x3f\xf5\xab\x04\xfa\x91\xe9\xc6\x2b\x24\x83\x9d\xc5\ \x35\x0c\xba\x72\xed\x33\x53\xef\x29\x44\x17\x5c\x3f\x55\x9a\x03\ \xab\xc1\x05\xd7\x3e\x79\x35\xa5\x44\x15\x63\x18\xf4\xac\x81\xc0\ \x04\x7e\x00\x50\x4f\x12\x4d\xee\x66\xe3\xef\x04\x85\x87\x57\x94\ \x60\xa7\xcc\x7f\x87\xf1\xaf\x56\xf3\x8e\xa4\x65\xd5\x94\x91\xdf\ \x71\xe6\xb0\x1c\x73\xf3\x5e\x70\xd9\x20\xf2\x85\x73\xff\x00\x24\ \xd0\x4a\x9c\x97\x32\xfa\xe9\xa7\x50\xef\x17\xcb\x7a\x60\xca\xbe\ \xdc\x05\xce\x2a\x02\x56\x93\x29\x79\x75\x09\xc0\x0b\x1c\xf3\xe8\ \x0f\xe7\x53\x34\x5f\x2f\x81\x1e\x5b\xcd\xcb\x00\x76\xfb\x52\xff\ \x00\xce\xb9\xc7\x45\x58\xb5\x46\xa0\xbe\x06\xb4\x7d\xba\xe1\x3e\ \xe7\x19\x06\x4a\x53\x05\xa2\xb7\x1b\x40\x21\x25\x58\x1d\x86\x54\ \x91\xf8\x8a\xb4\xde\xd4\x1a\xa3\x4a\xa6\x3b\x1d\x47\xd2\x37\x8b\ \x32\xde\xf2\xb5\x31\x50\xd4\xda\x1d\x3e\xb9\x04\x00\x48\xf5\xda\ \x7f\x0a\xe0\x63\x70\x15\x54\x9c\xe9\x6a\xbb\x3b\x0e\x4e\x2f\x0d\ \x57\x36\x6a\x6e\xfd\xd7\x26\xd2\x2f\xb7\xbd\xa4\x9b\xdd\xc9\x27\ \xdf\xed\x4b\xed\xf9\xd6\xa8\xd7\xab\xbb\x69\x29\x7a\xf1\x74\x24\ \x65\x5c\x4a\x5f\x23\xdf\xbd\x46\x06\xb0\xd2\xf2\x40\x0c\xdf\x22\ \x79\x86\x7f\x6b\xb9\xbc\x7d\x72\x29\x53\x57\xad\x3b\x22\x2e\xe5\ \xde\x6d\x64\x0f\x43\x25\x03\x18\x3c\x7a\xd7\x2d\xc6\xb2\x5a\xa7\ \xe6\x62\xfd\xf8\xab\x3b\xf9\x92\x78\xda\x8a\xfc\xeb\xcb\x75\x9d\ \x47\x74\x2d\x29\x20\x28\x7d\xa9\xc1\x83\xf9\xf7\xf4\xa5\x82\xfd\ \x7e\x40\x0d\x1b\xcd\xd1\x1e\x5e\xe9\x94\xb1\x81\xe9\xeb\xfc\x2a\ \x39\xa4\x52\xce\xad\xd4\x0c\x58\xb4\xfd\xca\x1c\xeb\xab\xe1\x61\ \x31\xd9\x90\x90\x56\x94\x24\xa8\x9e\x48\x48\xc6\x0f\xad\x31\x5e\ \xba\x83\x67\xb1\x5e\x65\x5b\xa5\x17\xdc\x9b\x11\xc5\xc6\x90\xdb\ \x2d\x6e\xc2\xd0\xa2\x15\xc9\x38\x3c\xe4\x67\x9e\xd5\x2a\x86\x26\ \x7e\xea\x7e\x64\x70\xf1\x13\x7d\x54\xfc\xcb\x11\x5a\x87\x51\x16\ \x83\xa2\xf7\x73\x78\x00\x7f\xfe\x6d\x79\x3e\x9e\xf8\xa5\x11\xb5\ \x16\xa1\x6d\x28\x29\xbe\xdd\x38\xe0\x1f\xb5\xb9\x9e\xdf\x5a\xa4\ \xa4\x75\x75\x4d\xa9\x5f\x63\xb2\x87\x90\xa2\x79\x7d\xcd\x9f\xc1\ \x39\xa6\x2b\x9f\x54\x35\x6c\xdd\xe9\x8a\xf4\x6b\x72\x08\xe3\xec\ \xec\x8d\xc0\x7f\xca\x56\x4f\xe5\x8a\x7c\x3a\x37\x19\x3d\xf4\xf1\ \x63\x63\x80\xc5\xc9\xd9\xe9\xf1\xfb\x1d\x19\x23\x52\x5f\x1b\x6f\ \xc5\x91\xa8\xae\x6c\x36\x15\xc9\x72\x7a\xd0\x93\xf9\xab\x15\x15\ \xbc\xf5\xaa\x35\xa5\x4e\xa4\xea\xeb\xac\xe7\xc2\xb1\xe1\x43\x94\ \xe2\xc6\x7f\xe5\x12\x07\xf1\xae\x70\xb8\x4d\x99\x71\x7f\xc5\xb8\ \x4c\x93\x31\x64\xe5\x45\xe7\x14\xae\x7f\x1a\x4e\x02\x12\xa2\x13\ \xb4\x01\xdf\xd7\xf2\xad\xf4\xba\x26\xda\xd4\xa8\xdf\x86\x86\xda\ \x7d\x17\x67\xd7\x9b\x7e\x1a\x16\xed\xfb\xf4\x85\xd7\x12\x02\x9b\ \xb2\xce\xb8\x40\x41\x3c\x3c\xf4\xc7\x1d\x70\x7d\x06\x76\x83\xf8\ \x1a\xad\xf5\x0e\xa3\xd4\x3a\x9a\x68\x99\xa8\xaf\xb7\x2b\xac\x81\ \xf7\x17\x2e\x4a\xdc\x29\xf8\x4e\x4f\x03\xe9\x4d\x65\x4b\xc7\x95\ \x38\x03\xd5\x55\xe1\x19\x39\x5a\x81\xe3\x00\x67\xb7\xe1\x5d\x4a\ \x54\x29\xd2\x56\x8a\xfa\x9d\x2a\x34\xa3\x47\xdc\x5e\xbc\x4f\x4b\ \xce\xfd\xd0\xe2\xc9\xed\x80\xa3\x83\xf5\xac\xbc\x69\x2a\x46\xd2\ \xf3\xa5\x07\xb8\xde\x71\xc7\xbd\x60\x08\x00\x00\xae\xde\x80\xd0\ \xb2\x10\x08\x1c\x9f\x5c\x9e\xf4\xe1\xaa\x52\xde\xe6\xc5\x4b\x91\ \xbb\x1e\x3b\x98\x1d\xb2\xa3\x5a\x9c\x90\xe8\xec\xea\xc2\x87\x6f\ \x31\xe2\xb5\xf9\xd6\xa2\x12\x14\x00\xef\xf1\x59\x25\x09\x41\xfb\ \xc0\x9f\x91\x53\x6b\x15\x75\x27\x2d\xd9\x8f\x89\x25\xd5\x65\x4f\ \x38\x31\xee\xa3\x59\xa4\x94\x1d\xc9\x5a\xc1\x1c\x67\x35\x22\x85\ \xa2\xb5\x54\xfe\x9f\x5c\x75\xe4\x3b\x4e\xfd\x39\x6c\x92\x22\xcc\ \x99\xf6\x86\x87\x86\xe9\x2d\x80\x9f\x0c\xab\x79\xe5\xe6\xf9\x09\ \x23\xcd\xdf\x83\x88\xa9\x25\x5c\xe4\x9a\x9b\x31\x6e\x76\xd9\xdc\ \x50\xa9\x6f\x81\xe4\x75\xc1\xcf\xf6\xcd\x6a\x76\x4b\xea\x52\xb2\ \xf2\xc9\x57\x07\xcd\xde\xb5\x24\xe4\x8c\x63\xf2\xed\x41\xf5\xf5\ \x35\x29\x58\xa4\xaa\xca\x4b\x73\xd2\xe3\xab\x50\x2b\x71\x64\x8f\ \x9a\x37\x2b\x24\xee\x56\x4f\xae\x4d\x78\x40\xe0\x95\x60\x7e\x75\ \xea\xf6\xe7\x39\x1c\xfb\x54\x95\xbb\xdd\xb0\xf1\x1c\x1c\x07\x17\ \xef\xf7\xab\xcf\x11\xc3\xff\x00\x08\xe1\x1e\x9c\xd7\x83\x39\xc7\ \xf1\xaf\x42\x3b\xee\x56\x3e\x48\xa9\xb9\x56\xd9\xa5\xf5\xa8\x8e\ \x56\xa2\x3e\x4d\x15\x9b\xe9\x40\x1c\x2b\xf0\xa2\xac\x99\x49\x45\ \xb7\xb9\xd5\xba\x67\x8b\x24\x70\x38\x1e\x6c\xff\x00\xda\x34\xea\ \x94\x15\x72\xa3\x84\xd3\x66\x98\x03\xf5\x33\x0a\x57\x00\x6e\xff\ \x00\xf2\x34\xb9\x4e\x17\x32\x3b\x27\xd8\x57\x82\xa9\x77\x36\x78\ \x76\x6c\x2f\x32\xdf\x09\x4e\xe3\x53\x6e\x86\x06\x26\xf5\x1e\x12\ \x24\x36\x8f\xd9\x32\xeb\xcd\x85\x7a\xac\x0c\x0f\xc4\x64\x9f\xc2\ \xa0\x3c\x0e\xdf\xc6\x96\xd9\x6e\xd7\x1b\x15\xe2\x25\xe6\xd0\xe3\ \x68\x9b\x11\x65\x4d\x87\x06\x50\xb0\x41\x4a\x92\xa0\x0f\x20\x82\ \x47\xf1\x1c\x8a\x76\x15\xc2\x9d\x68\xce\x5b\x26\x32\x85\x45\x0a\ \x91\x94\xb6\x4c\x7b\xb5\x45\x77\x55\x75\x10\x46\xb9\xcf\x9a\xe3\ \xb3\xee\x4b\xf1\xb7\xbc\xa2\x94\x80\x55\x90\x94\x93\x84\xe1\x20\ \xa4\x71\xc0\xa9\x74\x3b\x65\x8e\xfd\xa8\xf5\x5e\x96\x67\x4e\x46\ \xb7\x7e\xa9\x61\xc5\xdb\xe6\x34\xfa\xd4\xea\x94\xd1\xd8\xaf\x13\ \x71\xc1\x0a\x24\x1f\x81\x9f\x5e\x6a\x0b\x7a\xd5\x66\x75\xd1\xab\ \xc5\xb3\x4b\x46\xb0\x5d\xda\x98\x26\x2a\x5b\x77\x05\xc8\x43\x8e\ \x0c\x92\x3c\x22\x94\x84\x82\xa3\x93\xc9\xf6\xf5\x34\xba\xef\xd4\ \x1b\x83\xd1\x2e\xcf\x5b\xf4\xbc\x0b\x4d\xc6\xf0\xd1\x62\x7d\xc5\ \x13\x96\xee\xe4\x2b\xef\xf8\x6d\x94\x80\xd9\x3e\xf9\x35\xd3\xa7\ \x3a\x09\xcb\x89\x25\x2b\xbf\x1b\xab\x6c\xb4\xed\x36\x42\xa5\x25\ \x7c\xcd\x3d\x7e\x68\x76\x7d\x16\x7d\x3b\xa3\x34\x75\xc1\xcd\x3d\ \x16\xef\x26\xfd\x20\x3a\xfb\xb2\x1e\x5a\x3c\x26\x42\x93\x80\xde\ \xd2\x30\xac\x29\x38\x3e\xe0\xe7\xd3\x12\xad\x45\xa7\x22\x5f\xba\ \xc7\xa8\xe4\xcd\x8e\x25\xb5\x6c\xb5\x35\x21\x31\x94\xef\x84\x97\ \x9c\xd9\xe4\x4a\x95\x91\x84\xf0\x72\x72\x07\xbf\x15\x56\x5b\xb5\ \xc4\x88\xfa\x5a\x06\x9f\xb8\x69\x78\x17\xa6\xed\x6e\x97\x6d\x92\ \x1d\x98\xb6\x4b\x07\x39\xda\xe2\x12\x0f\x88\x9c\xfa\x65\x3c\x00\ \x3e\x69\x53\xbd\x48\xbe\x2f\x58\xc9\xd5\x1f\xaa\x20\xa9\x53\x61\ \x26\x14\xeb\x7b\xaf\x15\xb5\x25\xb0\x90\x15\x85\x6d\x05\x24\x91\ \x91\xc1\xc6\x71\xcd\x68\x85\x6c\x32\x82\x8b\xb5\xb4\xd2\xdd\xdc\ \xfe\x23\x23\x5a\x86\x54\x9e\xda\x69\x6e\xee\x7f\x11\xc7\x5e\xda\ \xed\xa8\xd2\x56\x4b\xc2\x63\x5a\x6d\x97\xa7\x5d\x5b\x17\x1b\x7c\ \x09\xc9\x7d\xb4\xfd\xf2\x85\x8c\x2d\x58\x05\x28\xcf\x7f\xde\x00\ \xf2\x29\x7e\x95\x21\x1d\x0a\xd6\x8b\x57\x61\x2d\x92\x7f\x36\xaa\ \x07\x25\xeb\x2c\x95\x37\xfa\xa3\x46\x31\xa7\xb6\xe4\xad\x49\xb8\ \xae\x52\x9c\x1e\x83\xcc\x94\x80\x07\xd0\x9f\x9a\x78\x89\xa9\x64\ \xc0\xd1\xb7\x7d\x26\x8b\x52\x1f\x62\xec\xe2\x1c\x5c\xb3\x2b\x61\ \x67\x69\x4f\x1e\x1e\xc3\xbb\x3b\x7b\xee\x1d\xeb\x27\x1e\x94\x71\ \x12\x7a\x25\x95\xad\x3b\x6d\xe0\x84\x2a\x90\x55\x5c\xb9\x59\xaf\ \x2f\x04\x59\x8b\xd1\xf6\x5b\x3d\xea\xdd\xa7\xee\x96\x9b\x4f\xea\ \xd7\xad\xbe\x24\xeb\xac\x8b\x92\x5a\x90\xdc\x93\xbb\x1b\x10\x56\ \x0e\xdc\xa4\x0e\x12\x47\x9b\xbf\x07\x31\xed\x19\x67\xb6\x4e\xd2\ \xb7\x26\xac\x56\xfb\x3d\xf7\x55\xc4\x9a\xa4\x39\x12\xe1\x21\x49\ \x05\x84\x9c\x05\x36\x94\xa8\x64\x1e\xf9\xce\x33\x91\x9e\x05\x46\ \x27\x6a\xa6\xaf\x4c\x42\x46\xa8\xd1\x16\xeb\xf4\xd8\x51\xd3\x19\ \x99\xff\x00\xac\x57\x1d\x4a\x69\x27\xca\x16\x80\x95\x6e\x39\x24\ \xe4\x11\xdc\xf6\xad\x1a\x73\x53\x44\xd3\x53\x21\x4f\x67\x43\x43\ \x99\x75\x82\x56\x63\xce\x37\x57\x1a\x09\x2a\xdc\x39\x6b\x61\x07\ \x09\x56\xde\xe3\x20\x7b\xd6\x8e\x36\x15\xd4\x56\xb5\xbc\xf9\x77\ \x6f\xf3\x1c\xea\xd0\xce\xad\x6b\x7a\xee\xdf\xe6\x4a\x34\x45\xb2\ \x05\xcf\x4d\xde\x9b\xb7\xd9\x6d\x13\xf5\x9b\x13\x14\x3f\x54\x5c\ \x5f\x5b\x69\x6d\x90\x46\x42\x13\x90\x4e\x39\x19\x27\xb8\xe4\xfa\ \x1e\x77\xea\xee\xad\x9b\xa7\xa7\x4a\x86\xdc\x44\x40\xb9\x38\xf3\ \xa1\x51\xb0\x48\x88\x02\x88\x29\x01\x59\x27\x07\xca\x33\xed\x56\ \x8c\x4d\x7f\x1e\xd7\x7e\x46\xa2\xb8\xe8\xa8\x97\x6b\xfa\x25\xb9\ \x29\xb9\xe2\xe8\xe4\x74\xa5\xc5\x95\x1f\xea\x82\x54\x08\x1b\xb1\ \x8c\x8c\x81\xce\x6a\x97\xd6\xfd\x64\xfe\x91\xe9\xdd\x5f\x63\xba\ \x69\x0b\x2c\xbb\x8d\xf6\xec\x26\xa2\xf3\xb7\x0e\xc5\x4a\x4a\x7f\ \x66\x80\x41\x38\xc2\x30\x0e\xe1\x80\xb5\xe4\x1d\xd9\xa7\xd0\xa1\ \x46\xba\x8e\xda\x79\xf8\x9a\x30\xb4\x29\xd7\x71\xee\xf5\xa9\x3b\ \xfd\x02\xd9\x45\xc3\xa9\x9a\x93\x51\x4e\x02\x65\xca\xdf\x65\x71\ \xd8\x9e\x37\x9c\x85\xa9\x60\x15\x8f\x5c\xe3\xcb\xf4\x59\x1e\xb5\ \x15\xfd\x1a\xd9\x57\x53\x7a\xeb\x02\xd9\xaf\x64\x4a\xd4\x11\x26\ \x22\x63\xef\x37\x31\xe5\x2d\x25\xc2\xd2\x95\xbc\x0c\xe0\x1c\xe0\ \xf1\xec\x2a\x15\xd1\xbe\xa2\x5e\xfa\x5d\xad\x59\xd4\xf6\x46\xd8\ \x79\x61\xa5\x47\x93\x19\xf2\x76\x48\x65\x58\x25\x04\x8e\x41\xca\ \x52\x41\xf4\x20\x70\x46\x41\x9a\xe9\xae\xb1\xe8\xfd\x2d\xd4\xdb\ \x6e\xb8\xd2\xdd\x29\x4d\xa9\xe8\xff\x00\x69\x32\x63\x26\xfc\xe3\ \x89\x90\x5d\x41\x4f\x94\xa9\xbc\x34\x94\x92\x48\x01\x27\xdb\x81\ \x5d\x75\x6b\x58\xee\x64\xcb\xb2\x27\x3d\x33\xd0\x7a\x23\x5c\xf5\ \x33\x53\xc2\x63\x45\xc6\x8d\x67\xd0\x91\x24\x34\x88\x9f\x6f\x50\ \x55\xd6\x42\x5c\x52\x5b\x5c\x87\x54\x46\xdc\xf8\x6a\x27\x04\x24\ \x64\x0e\xc3\x96\xce\xb0\xf4\xfe\xc6\x34\xa6\x85\xd4\x96\x9d\x23\ \x68\x87\xaa\x66\xdc\xc4\x1b\xb6\x97\xb3\xdc\xc4\xa6\xdf\x25\x4b\ \x2d\xed\xf0\xdc\x59\x4e\xe4\xb7\xc9\x49\xe3\xc4\x19\x39\x15\x5e\ \xe8\x2e\xae\xdc\xf4\x77\x51\xaf\xfa\xaa\x2d\xa2\x24\xc8\x3a\x81\ \x72\x13\x71\xb5\x49\x70\x94\x3a\xcb\xcb\x2b\x28\xde\x06\x41\x19\ \xc6\xec\x7b\xf1\xcd\x7b\x1b\xa8\xda\x56\xc1\xac\x6c\x3a\xa3\x40\ \x74\xe9\xad\x3b\x2e\xd5\x2c\xc8\x58\x91\x79\x7a\x70\x90\x92\x0a\ \x4b\x7e\x64\xa4\x20\x60\x9e\x40\x27\x9e\xf4\x5d\x58\x32\xca\xe5\ \xdc\xe7\x4b\x6d\x97\xbe\x92\x6b\xe9\x3a\xab\xa6\xfa\x73\x46\xde\ \xf4\xed\xb4\xcf\x80\x6c\xf7\x4f\x1d\xf4\xec\x69\xd7\x36\x3e\x80\ \xea\xf1\x90\xd8\x1e\x6e\xfb\x89\x00\x14\xd6\x1d\x5c\xba\xdb\x9e\ \xfd\x18\xfa\x6d\x0e\x1e\x8c\xd3\xe8\x55\xf8\xba\xc4\x66\xf6\xb8\ \x11\x01\xd7\x32\x0b\xad\x61\x5f\x78\xa9\x44\x92\xac\xf2\x6a\x03\ \x70\xfd\x21\xa0\x93\xad\xd1\x66\xe9\xcc\x6b\x60\xd6\x96\xd9\x11\ \xee\xae\x7e\xb6\x71\xe7\x57\x21\xc4\x29\x08\x78\x15\x23\x01\x08\ \x0e\x38\x7c\x30\x91\x92\xbf\xbc\x30\x05\x30\x49\xeb\x04\x0b\xa7\ \x47\x6d\x1a\x06\xfb\xa2\x9b\x9f\x2a\xc6\xdb\xa9\xb4\xdd\x1a\xba\ \x38\xc1\x8e\xb5\x03\xb5\xc5\x34\x12\x42\xca\x72\x0e\x0a\x80\x3b\ \x47\x1d\xea\x6e\x88\xcb\x2e\x67\x40\xcb\xe8\x9f\x4f\xad\xb7\xe9\ \x1a\x02\xe5\xa6\x6c\xb0\xec\xc2\xca\x14\xde\xa9\x93\x79\x42\x27\ \x19\xe7\x1e\x6f\x04\xbb\x90\x8f\x5c\x6d\xdb\xc6\x39\x06\xb9\x87\ \xa0\xd6\x58\x17\x8e\xb5\xe9\x9b\x25\xea\x1b\x53\x20\xc8\xb8\xa5\ \x89\x0c\x2c\xe5\x0e\x27\x9c\x83\x83\xc8\xe2\xa5\x3a\xc3\xac\x7a\ \x63\x5c\x88\xf7\x2d\x75\xd2\xc8\x97\x8d\x4a\xd4\x44\xc5\x55\xce\ \x3d\xe5\xe8\x8d\xbc\x13\x9d\xaa\x5b\x28\x49\xc9\xc9\x3c\x85\x0e\ \xf8\xe0\x00\x2a\xbe\xe9\x8e\xa7\xfe\x85\xeb\xeb\x36\xab\xfb\x07\ \xdb\x8d\xb2\x4a\x64\x7d\x9b\xc5\xf0\xbc\x5c\x03\xe5\xdd\xb5\x58\ \xfa\xe0\xd5\x5b\x45\xe3\x19\x59\xdc\xea\x0b\x16\x86\xe9\x55\xc2\ \xf3\xd5\x1d\x29\x23\xa7\xf1\xc4\x6d\x18\xd0\x96\xc4\xc4\x4e\x78\ \x4a\x92\x52\x95\xad\x69\x5a\x81\xc0\x49\x28\xda\x02\x40\xc2\x4f\ \xbf\x35\x19\xbe\xf4\xf3\x49\xeb\xae\x93\x74\xbb\x56\xd9\xf4\xfc\ \x3d\x2d\x71\xd4\x9a\x89\x36\x69\x8d\x40\x5a\xcb\x5e\x1a\x9d\x7d\ \x1b\xc0\x5a\x8f\x98\x06\x32\x33\xdf\x71\x04\x9c\x0a\x86\xda\x7a\ \xf4\x6d\xda\x93\xa8\xf7\xaf\xe8\xa0\x77\xfa\x6f\x1d\x4c\x96\xbf\ \x58\xe3\xec\x39\x4a\xd3\x9c\xf8\x5f\xb4\xfb\xf9\xc6\x13\xda\x9a\ \x1f\xeb\x0c\xd1\xd1\x9d\x23\xd3\xfb\x75\xa1\x50\x65\xe9\x8b\xc0\ \xbb\xc6\xbb\x09\x7b\x8a\xdc\x0e\x3e\xb4\x8f\x0b\x67\x97\x05\xe1\ \xce\xe3\xf7\x3b\x73\xc0\xda\x05\x19\xa7\xa1\x75\xc2\xd0\x9d\x30\ \xd4\xbd\x63\xd4\xdd\x10\x8f\xa1\xa3\xdb\x1b\xb5\xdb\x37\xc1\xbe\ \x35\x25\xd5\x4c\xfb\x42\x52\xd1\x2b\x5e\x55\xb5\x49\xcb\xa7\x8c\ \x11\xe5\xed\xc8\xdb\x10\xb4\x69\xed\x0f\xa5\xbf\x46\x5b\x27\x51\ \x2f\x5a\x26\x0d\xfa\xf4\xcd\xd6\x4d\xbd\x4d\xbe\xfa\xdb\x69\xd2\ \xa7\x56\x02\x9c\xdb\xca\xf6\x25\xb2\x12\x3f\xbd\x9f\x41\x4d\x93\ \x3f\x48\xc2\x9b\x8d\xdb\x55\xda\x74\x05\xb6\xd7\xae\x2e\xf0\x04\ \x29\x77\xc6\xee\x2e\x2d\x01\x3b\x52\x9d\xed\xc7\x23\x08\x56\x10\ \x8c\x1d\xc7\xee\x8c\xe7\x9c\xc2\xa7\x75\x47\xed\x1d\x01\xb7\xf4\ \xa3\xf5\x10\x42\x61\xdc\x95\x3b\xf5\x97\xdb\x33\xbf\x2a\x70\xec\ \xf0\xb6\x71\xfd\x67\x7d\xde\x9d\xa8\xba\x0c\xb3\xe6\x5f\x9a\x2f\ \xa4\x5a\x4b\x4f\xe9\xae\x9f\xb3\x79\xd1\xd6\x5b\xdb\x1a\x8a\x21\ \x97\xa8\x2e\xd7\x1b\xc2\x63\x39\x09\x2b\x6d\x2a\x6d\x2c\x20\xba\ \x92\x42\x77\xe0\x94\x82\x4e\x3b\xf2\x31\xcb\xfd\x4b\xb2\x42\xd3\ \x7d\x41\xbf\x58\xad\xd2\xd3\x32\x0c\x39\xce\x35\x19\xf4\xac\x2b\ \xc4\x68\x1f\x21\xc8\xe0\xf9\x48\xed\x53\x96\xba\xbd\x66\xbc\x68\ \x4b\x16\x96\xea\x1f\x4f\x58\xd5\x23\x4f\xb4\x63\x5a\xe6\xb5\x75\ \x72\x0b\xad\x33\x80\x03\x6b\xda\x95\x05\x80\x12\x81\xe9\xc2\x47\ \xae\x49\x64\xb7\xf5\x0a\xd1\x07\x40\x6a\xbd\x25\x1b\x40\xd9\xc0\ \xbe\x4e\xfb\x4c\x49\x8b\x71\x4e\x3d\x6d\x6c\x10\x52\xca\x14\xa0\ \x54\xb0\x90\x30\x95\x15\x03\xe6\x51\x3b\xb3\x43\xb3\x2d\x0c\xe9\ \xea\x59\xff\x00\xff\x00\x0f\x24\xa9\x3d\x6a\xbb\x8c\x9d\x87\x4e\ \x3e\x42\x4f\xa7\xfb\x4c\x6a\xd9\xd3\x7b\x94\xcd\x51\xfa\x1d\xf5\ \x16\x2e\xa5\x95\x22\x6b\x56\x79\x6c\xc9\x80\xe4\xb7\x0b\x8a\x65\ \x64\xa0\xe1\x0a\x3c\x81\x90\x78\x1f\xdb\x57\xbd\x56\x9f\xa3\xe7\ \x54\x4f\x48\xf5\xa4\xad\x48\x9b\x18\xbe\x7d\xaa\xdc\xb8\x3e\x01\ \x99\xf6\x7d\xbb\x9c\x69\x7b\xf7\x6c\x5e\x71\xe1\xe3\x18\xfd\xee\ \xfc\x52\x9d\x5f\xd5\x98\xd3\x3a\x70\xbe\x9e\xe8\xbd\x1f\x1f\x49\ \xe9\xd9\x32\x84\xb9\xc9\x17\x05\xcc\x91\x2d\x69\xc1\x01\x4e\x28\ \x27\xca\x0a\x52\x71\x8f\xdc\x4f\x3d\xf3\x09\xe8\x0e\x2f\x3e\x9d\ \xc7\x43\xb7\xd1\x5d\x0b\xa7\xaf\x36\x6d\x13\x7f\xd2\x56\x37\xad\ \x52\xac\x85\xeb\xae\xa3\x97\x79\x43\x33\x1a\x9a\x77\x01\xe1\xb6\ \x5d\x0a\xd8\x0a\x06\x30\x82\x9f\x30\xc9\x38\x56\x6b\x8d\x3d\xa4\ \x34\x56\x9d\xfd\x1c\xef\x7a\xd2\xeb\xa5\xe0\x6a\x1b\xbd\x87\x53\ \x3b\x09\x82\xf3\xaa\x43\x32\x52\x16\xdb\x40\x39\xb1\x59\x52\x06\ \xe5\x28\x00\x79\x38\xc9\x23\x35\x11\xbc\xf5\x8b\x4f\x6a\xeb\x55\ \xa4\x75\x13\xa6\x51\xb5\x2d\xe2\xd7\x11\x30\x99\xb9\x35\x78\x7a\ \x11\x71\xa4\xf2\x90\xe2\x10\x93\xb8\xe4\x93\x90\xa1\xc9\x38\xc6\ \x6a\x69\xd3\xad\x61\xa0\xad\x5f\xa2\x3d\xe2\xd5\xa9\x22\x5b\xef\ \x2f\x2e\xff\x00\xe3\x0d\x3a\x2f\x3f\x64\x92\xea\x0a\x99\xda\xa1\ \x8c\xb9\xb5\x38\x27\x21\x3c\x84\x9e\x6a\x74\x7b\x15\xfd\xc5\xab\ \x2c\x2d\x21\xa2\xf4\xce\x9c\xfd\x26\x3a\x6f\x7f\xd2\xb6\xb4\x5a\ \x61\x6a\x4d\x3d\x22\x6a\xe0\xa1\x65\x49\x65\xcf\xb3\x92\x76\xe7\ \x90\x08\x5a\x46\x3b\x64\x1a\x80\x49\xd3\x3a\x5b\x4d\xe8\x4d\x7b\ \xd5\x9b\xe6\x9b\x8b\xa9\xae\x6e\x6a\xd9\x56\xf8\x10\xe5\xba\xb4\ \xc7\x65\x3e\x39\x0a\x5a\x92\x82\x0a\x89\xca\xbd\x7d\x13\x8c\x73\ \x51\x48\xff\x00\xa4\x25\xcc\x75\x9e\xd3\xd4\x19\x5a\x72\x33\x91\ \x2c\xf0\x17\x6f\xb7\xd9\xa3\xca\x2d\x36\xcb\x25\x0a\x48\x1e\x21\ \x42\xb2\x7c\xd9\x27\x6f\x38\x03\x8c\x53\x6d\x83\xac\xc9\x66\xd7\ \xa9\xf4\xee\xa5\xd1\xec\xea\x0d\x2f\xa8\x2e\xae\x5d\x55\x6f\x54\ \xf5\xc7\x76\x2b\xca\x5e\xef\x23\xe9\x49\xe3\x84\xe7\xcb\xce\x3d\ \x32\x72\x5d\x13\x92\x77\x2e\x28\x3d\x3c\xe9\xac\x4e\xae\x74\xd6\ \xea\xbd\x33\x1d\x3a\x77\xa8\x56\x37\x1d\xfd\x59\x21\xc5\x38\x88\ \x92\xbc\x26\x9e\x49\x49\xce\x46\x77\xa1\x00\x67\x00\x93\xd8\x76\ \xaf\x35\xb6\x80\xb2\x68\x1e\x88\x6a\x59\x17\x6b\x5b\x2e\x5f\xa6\ \xea\xc7\x6d\x56\xb7\xdc\xc9\x5b\x31\x58\x57\x99\x69\xf4\xf3\x6c\ \x52\x73\x8f\xde\x1f\x83\x3c\xde\xa3\x5f\x3a\x91\xd5\x5d\x2d\x32\ \x2b\xda\x7f\x48\x46\xd3\xa9\x69\x36\x68\xf3\x67\x96\x62\x45\x43\ \x24\x2c\x25\x6f\x2c\x72\xa5\x6c\x4a\x73\x81\x9c\x24\x62\x9e\xbf\ \x4c\x4e\xa3\xc1\xd6\xba\x86\xc5\x68\xb3\xcf\x83\x32\x3d\x9e\x19\ \x33\x1e\xb7\xaf\x74\x47\x26\xbc\x41\x7b\xc2\x57\xef\xa4\x6d\x18\ \x57\xc9\xf9\xa8\x76\xb3\x2d\x1c\xd9\x92\x66\xbf\xd1\x9f\xa7\x16\ \xad\x4b\xa5\xf5\x7e\xb0\xb8\xda\x63\x5f\xdf\xb1\xb2\x86\xed\xd6\ \xd9\x53\x04\x78\xcf\x48\x58\x27\x73\xab\x2a\x40\x09\x48\x09\xe0\ \xa8\x03\x93\xec\x2a\x7e\xee\x87\xe9\xad\xbb\xab\x3d\x36\x7e\x56\ \x9e\xb0\xb7\x1b\x54\x46\x72\x15\xea\xc8\xc4\xe4\xca\x66\x14\xdd\ \x89\x2d\xa9\x0a\x4a\xd5\xf7\x96\xa0\x9e\x0e\x38\xf5\x26\xa8\xde\ \x92\x75\x2a\x4e\x84\x8b\x7b\xb4\x4b\xb2\x44\xd4\x3a\x7e\xfd\x1c\ \x47\xb9\xdb\x24\x3a\xa6\x7c\x44\xa7\x20\x14\x38\x90\x4a\x14\x02\ \x94\x33\x83\xdc\x1e\xe0\x10\xd3\xa8\xf5\x3e\x9d\x37\xdb\x55\xd7\ \x44\x68\xe3\xa5\x1c\xb7\x3a\x1f\x1b\xae\x8e\xcc\x53\x8e\xa5\x49\ \x52\x09\x52\x82\x76\xed\x29\xec\x90\x3b\xf2\x7b\x54\x26\xac\x5a\ \x70\x9e\x76\xcb\x63\x50\xf4\xde\xcb\xa4\xba\x77\xad\xc4\xfb\x54\ \x37\x6f\x33\xb5\x88\xd3\xfa\x7d\xd7\x89\x25\x96\x92\xad\xe5\xd4\ \x8c\xf6\x28\x51\x4e\x7d\x08\x1f\x15\x68\xca\xe8\xb7\x4f\xed\xb7\ \xf9\x1a\x0a\xe3\xa6\x6c\xb0\xec\xc2\xca\x14\xde\xa8\x93\x79\x42\ \x27\x19\xe7\x1e\x6f\x04\xbb\xb8\x23\xd7\x1b\x76\xf9\x71\x92\x0d\ \x50\x5f\xa4\x27\x5c\x24\xf5\x61\xdb\x3f\xd9\xf4\xf2\x34\xeb\x16\ \xc5\xba\xf7\x86\xdc\xcf\x1c\xbc\xf2\xf6\x8f\x10\x90\xda\x30\x40\ \x40\x03\x83\xdc\xf3\x5b\xb5\x7f\x58\xb4\xce\xba\x44\x7b\x96\xbb\ \xe9\x6c\x4b\xc6\xa4\x66\x22\x63\x2a\xe7\x1e\xf2\xf4\x46\xde\x09\ \xfb\xaa\x5b\x28\x49\xc9\xc9\x3c\x85\x0e\xf8\xe0\x00\x2a\xdd\x51\ \x6d\x54\x69\x32\x5a\xe5\x8f\x43\xe9\x3f\xd1\x77\x47\xf5\x12\xe3\ \xa2\x60\xdf\x2f\x92\x67\xcc\xb6\x2c\x3d\x21\x48\x69\x6a\x53\xf2\ \x30\xea\xc2\x7e\xf9\x42\x23\xed\x48\xed\xe7\xcf\x38\x15\x28\x83\ \xd2\xad\x1f\xac\x2f\x9d\x19\xd4\x56\x9b\x04\x28\x96\x4b\xc4\x17\ \x5d\xbf\x32\xde\x43\x45\xd8\xed\x85\xa8\x2b\x9e\xc5\x61\x68\xe3\ \x1d\xaa\x8f\xbe\xf5\x44\xdd\x3a\x03\xa7\x7a\x52\x6c\x49\x65\x36\ \x6b\x8a\xe7\x7e\xb2\x13\x37\x78\xdb\x95\x21\x5b\x3c\x2d\x83\x6f\ \xfb\xa3\xbe\xe3\xf7\x7b\x73\xc5\xb3\xa2\xba\x88\xd6\x81\xfd\x16\ \xae\x96\x3b\x86\xa6\xd3\x13\xa6\xcf\x88\xb4\x58\x22\xdb\xa7\x7d\ \xa6\x74\x63\x29\x27\xc5\x0f\x20\x7f\x51\xe1\x85\x93\xcf\xef\x6e\ \x1c\xf1\x91\x58\x89\x66\x5a\xf3\x6c\x40\xe6\x95\xd2\x3d\x47\xe8\ \x85\xea\xf1\xa3\xb4\xe4\x1b\x7d\xea\x06\xb1\x4c\x46\x56\xc2\x15\ \xbc\xc3\x90\xf0\x43\x09\x23\x3c\x81\xe3\xa0\x76\xcf\xec\xc9\xa9\ \xee\xb7\xe8\xde\x80\xbb\x75\x0f\xa7\x3f\xd1\x0b\x2c\x66\xad\x08\ \xbd\xcd\xb5\xdf\x5a\x19\xda\xea\xe2\x82\xb5\x25\xce\x4e\x32\x18\ \x74\x77\xe7\x70\xed\x54\x3f\xe8\xef\xd6\x77\xba\x49\x22\xf2\x55\ \xa7\x13\xa8\x22\x5c\xc3\x05\x51\xd5\x33\xc0\xf0\xdc\x65\x4a\x52\ \x16\x0f\x86\xbc\x9f\x31\xf4\x1e\x87\x3c\x53\x9f\x4f\x7f\x48\x3b\ \xce\x93\xd0\x9a\x9f\x4e\xbf\x63\x45\xc6\x6d\xea\x54\xa9\xac\x5c\ \x15\x2c\xb6\x60\xbf\x21\xa2\x85\xad\x28\x28\x56\xee\x49\x56\x37\ \x0e\xe7\xde\x84\xe3\xcc\x24\xa7\xc8\xb4\xf4\x9d\xef\x4d\x46\xfd\ \x15\xba\xad\x7b\x89\xa6\x60\xce\xd3\xe8\xd6\x2a\x54\x2b\x5a\x9c\ \x5a\x18\x53\x5e\x24\x14\xb0\x14\x50\x42\xb0\x3c\x8a\x20\x1e\x70\ \x47\xad\x25\xbf\xf4\x43\x44\xea\x3e\xae\xf4\xd1\x16\xeb\x67\xea\ \x5b\x56\xa5\xb2\xaa\xe7\x74\x83\x19\xd5\x14\x0f\x0d\xb4\x2c\xa5\ \xb2\x4e\x46\xe2\xb4\xa4\xe3\x1c\x02\x47\x35\x49\xd8\x7a\x9e\x6d\ \x1d\x01\xd4\x3d\x28\x36\x10\xf0\xbd\x5c\x51\x3b\xf5\x8f\xdb\x36\ \x96\x76\xaa\x39\xd9\xe1\x6c\x3b\xbf\xdc\xfd\xf7\x0f\xbd\xdb\x8e\ \x64\x37\xaf\xd2\x12\xf0\xf5\xf3\x40\x5e\xec\x96\x26\x6d\xb3\x34\ \x74\x03\x08\x78\xd2\xbc\x74\x4d\x42\x9b\x43\x6a\xdc\x90\x84\x14\ \x02\x12\x78\x04\xe3\x3d\xf8\xa9\xcc\x88\x70\x92\x64\xcf\xac\x3d\ \x3e\xd2\x4a\xe9\x0e\xa3\xbc\x8d\x2d\xa7\xf4\x86\xa0\xb1\xdd\x36\ \xdb\x58\xb7\xde\x5b\x92\xb9\xd0\xb7\xa1\x19\x71\x21\xd5\xf9\xc0\ \x51\x51\xcf\x9b\xc9\xd8\x64\xd2\xae\xb6\xe8\x2d\x0d\x6c\xd6\xba\ \x63\xa7\xba\x77\x47\x43\x89\x3f\x59\xa2\x0a\xdc\xba\x97\xd7\x9b\ \x7a\x4b\xa8\x42\xbc\x16\xf3\xb4\x64\x21\x65\x44\xe4\x9d\xff\x00\ \x02\xa9\xae\xa3\x6b\x4d\x0b\xaa\xa3\xce\x93\x68\xe9\x7b\x76\x0b\ \xd4\xe7\xfc\x77\xa7\xb7\x7b\x75\xf4\x25\x65\x5b\x97\xb1\x92\x84\ \xa5\x21\x47\x3c\x12\x40\x07\x8e\xc2\x9c\x7a\xc1\xd6\x39\xda\xef\ \x58\xe9\xad\x51\x6f\xb3\x7e\xa1\x9b\xa7\xa3\x32\xd4\x62\x25\xfd\ \xa3\x2e\x34\xe1\x71\x2e\x7d\xc4\xe3\x9c\x71\x83\xdb\xbd\x0d\xa0\ \x50\x95\x91\x7b\x6b\x4e\x92\x68\x36\xa1\xeb\x5d\x2c\xe6\x93\xb1\ \x69\xf8\xd6\x7b\x6a\x5d\xd3\xf7\xaf\xd7\x68\x5c\xd9\x72\x12\xd6\ \xe5\x07\x5a\x2e\x95\x79\x95\xc6\x14\x90\x31\xdb\xd3\x1c\x69\xb4\ \x0c\x1c\x0e\x7f\x8d\x5b\xbd\x44\xea\xa6\x91\xd7\x6b\x9d\x79\xbc\ \xf4\xa2\x30\xd5\x93\x62\xf8\x4e\xdd\x63\xde\x9f\x6d\x90\xe8\x6f\ \x62\x5e\xfb\x38\x4e\x37\x27\xca\x70\x56\x41\xda\x33\x9e\x73\x1c\ \xd7\x5a\xee\x0e\xa5\xd0\xda\x57\x4d\xb1\xa3\xed\x56\x77\xac\x2c\ \x29\x97\x6e\x11\x87\xed\x66\x92\x00\xdc\xae\x06\x32\x46\xe3\x92\ \xac\xa8\x92\x31\x9c\x54\x49\xae\x45\xa1\x19\x25\xaa\x20\xb9\x52\ \x7e\xe6\x73\x8f\x53\x58\xad\x41\x5c\xe3\x3f\x5a\xd8\x1b\xe3\xd3\ \x93\x41\x4a\x02\xbd\xaa\xb7\x43\x1c\x59\xe5\xae\x03\xb7\x3b\xc4\ \x2b\x6b\x40\x97\x65\x48\x6d\x84\x00\x39\x2a\x5a\x82\x47\xf1\x34\ \x55\xf5\xfa\x14\x74\xda\x46\xae\xea\x9c\x7d\x4d\x29\x8f\xff\x00\ \x45\xd3\xcb\x12\x16\xb2\x38\x72\x40\x1f\xb2\x40\xe3\x9c\x1f\x39\ \xfa\x0f\x7a\x29\xb1\xd8\xcb\x53\x47\x62\x4f\xa7\x54\x55\x66\x8e\ \x91\xd8\x6e\xff\x00\xf2\x34\xe4\x3b\x0a\xed\x1a\x2b\x87\x2e\x83\ \xbb\xbe\x7f\x2f\xc9\xc3\xfd\x27\xfe\xfc\xbf\x27\x17\x2b\x9a\xf1\ \x27\x1c\x57\x69\x51\x55\xfd\x0b\xff\x00\x4f\x2f\xc9\x1f\xa4\x7f\ \xdf\x97\xe4\xe2\xd3\xea\x3d\x28\x90\x71\x08\x8f\x73\x5d\xa5\x45\ \x1f\xa1\x7f\xe9\xe5\xf9\x0f\xd2\x7f\xef\xcb\xf2\x70\xfa\x4e\x07\ \x35\xb1\xa0\x54\xad\xc7\xb0\xae\xdc\xa2\xaf\xfa\x2f\xfd\xf9\x7e\ \x43\xf4\x8f\xfb\xf2\xfc\x9c\x5c\xca\xb6\xf0\x06\x4d\x6d\x71\x59\ \x50\x1e\xb5\xd9\x94\x55\x1f\x40\xdd\xdf\x89\xe5\xf9\x27\xf4\x9f\ \xfb\xf2\xfc\x9c\x64\xd9\xda\xb3\x5a\x26\x2f\x83\x9e\x31\x5d\xa9\ \x45\x0b\xa0\xac\xef\xc4\xf2\xfc\x87\xe9\x3f\xf7\xe5\xf9\x3e\x77\ \x6b\xa9\xdf\x63\xb6\xca\x92\x14\x01\x6d\xb3\x8f\xa9\xe0\x7f\x3a\ \xa1\x11\x95\x3a\xa5\x7a\xe7\xd6\xbe\xc6\x51\x5d\x4c\x2e\x11\x61\ \xe2\xd5\xef\x73\xa1\x84\xa0\xb0\xea\xd7\xb9\xf1\xec\x82\x71\x80\ \x73\xf4\xaf\x12\x15\xef\xc5\x7d\x85\xa2\xb4\x64\x37\xf1\xb5\xbd\ \x8f\x8f\x67\x8c\x1c\x63\x3c\xf3\x5e\x82\x08\xef\xe6\xaf\xb0\x74\ \x51\x90\x38\xfd\xc7\xc7\xac\x71\x40\x49\xc5\x7d\x85\xa2\xa7\x20\ \x71\xbb\x8f\x8f\x84\x64\x70\x70\x6b\xd0\x09\x1c\x02\x7d\x39\x3e\ \x95\xf6\x0a\x8a\x8e\x19\x3c\x7e\xe3\xe3\xee\x14\x08\x0a\x38\x03\ \xd7\x15\xe8\x27\x80\x08\xaf\xb0\x34\x51\xc3\x27\xda\x3b\x8f\x90\ \x18\x24\x7d\xd0\x4d\x79\xb4\xfb\x1f\x73\xe9\x5f\x60\x28\xa8\xe1\ \xf7\x83\xc4\x27\xc8\xf8\xff\x00\xb4\x15\x77\xfc\xeb\xcc\x6d\x00\ \x03\x8c\x73\x8a\xfb\x03\x45\x4f\x0f\xbc\x3d\xa3\xb8\xf8\xfc\x8c\ \x9c\x11\xc1\xf9\x15\xe8\xc2\x95\xc2\x52\x33\x5f\x60\x28\xa3\x86\ \x0b\x11\x6e\x47\xc8\x15\x0c\x63\x90\x4f\xf6\xab\xc2\x93\xff\x00\ \x2b\x8e\xfe\xb5\xf5\xfe\x8a\x8e\x1f\x79\x2f\x13\x7e\x47\xc8\x21\ \xbb\x1b\x4f\x6f\x7c\xf6\xa3\x82\x0a\x47\xf0\x3d\xeb\xeb\xed\x14\ \x70\xbb\xc3\xda\x7b\x8f\x90\x24\x01\x94\x9c\xfb\xf3\xef\x5e\xe5\ \x58\x20\x13\x8a\xfa\xfb\x45\x1c\x3e\xf0\xf6\x9e\xe3\xe4\x0a\x54\ \x40\xe1\x47\xbf\x3c\x56\x1b\x95\x93\xc7\x7f\x5e\x6b\xec\x0d\x14\ \x70\xc3\xda\x7b\x8f\x8f\xe0\x10\xac\xf6\x3d\xfb\x77\xaf\x54\xae\ \x30\x09\xcf\xc8\xaf\xaf\xf4\x51\xc3\xef\x0f\x69\xee\x3e\x3f\x61\ \x4a\xf5\xc7\xcd\x03\x68\xce\x72\x4e\x6b\xec\x0d\x15\x3c\x3e\xf2\ \x3d\xa3\xb8\xf9\x00\x79\x1d\xf1\x9e\xc6\xb1\x52\x94\x7d\x41\x15\ \xf6\x06\x8a\x38\x60\xf1\x17\xe4\x7c\x7d\xff\x00\xaa\x6b\xd0\x94\ \x93\x9f\x7e\x3d\xeb\xec\x0d\x14\x70\xfb\xc8\xf6\x8e\xe3\xe4\x07\ \x38\xe0\x8f\xf2\xac\x52\x3c\xb9\x38\xc5\x7d\x81\xa2\x8e\x19\x2f\ \x11\xdc\x7c\x7f\x1c\x64\x0c\x8c\x77\x19\xc5\x62\xa7\x01\xc2\x73\ \xc7\xd2\xbe\xc1\x51\x47\x0c\x87\x88\x7d\x87\xc8\x5b\x7c\x1b\x95\ \xcd\xf0\xc5\xb2\x0c\xb9\xce\x13\xe5\x4c\x76\x14\xe1\x27\xe8\x33\ \x57\x8f\x48\x7f\x45\xcd\x7b\xab\xe6\x33\x2f\x53\x46\x77\x4b\xd9\ \xb2\x0a\xd7\x24\x62\x4b\x89\xe3\x84\x35\xdc\x64\x1e\xea\xc7\xd0\ \xd7\xd0\x9a\x2a\x54\x12\x2b\x2a\xcd\xa1\x8b\x41\xe9\x2b\x0e\x88\ \xd2\xf1\x34\xe6\x9b\x82\x98\x76\xf8\xc3\xca\x91\xca\x96\xa3\xdd\ \x6b\x3f\xbc\xa3\xea\x68\xa7\xda\x2a\xe2\x42\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x0f\xff\xd9\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0b\ \x08\x01\x81\xe7\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x2e\x00\x6a\x00\x70\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/puzzle/puzzle_rc3.py0000644000076500000240000053141012536324427023615 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:42:32 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\xa6\x9e\ \xff\ \xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x01\x00\x48\x00\ \x48\x00\x00\xff\xe1\x00\x16\x45\x78\x69\x66\x00\x00\x4d\x4d\x00\ \x2a\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\xff\xdb\x00\x43\x00\ \x05\x03\x04\x04\x04\x03\x05\x04\x04\x04\x05\x05\x05\x06\x07\x0c\ \x08\x07\x07\x07\x07\x0f\x0b\x0b\x09\x0c\x11\x0f\x12\x12\x11\x0f\ \x11\x11\x13\x16\x1c\x17\x13\x14\x1a\x15\x11\x11\x18\x21\x18\x1a\ \x1d\x1d\x1f\x1f\x1f\x13\x17\x22\x24\x22\x1e\x24\x1c\x1e\x1f\x1e\ \xff\xdb\x00\x43\x01\x05\x05\x05\x07\x06\x07\x0e\x08\x08\x0e\x1e\ \x14\x11\x14\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\ \x1e\x1e\x1e\x1e\x1e\xff\xc0\x00\x11\x08\x01\xa8\x01\xa8\x03\x01\ \x22\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1d\x00\x00\x01\x04\ \x03\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x05\ \x06\x07\x02\x03\x08\x01\x09\xff\xc4\x00\x54\x10\x00\x01\x03\x03\ \x03\x02\x05\x01\x04\x06\x07\x01\x0d\x07\x02\x07\x01\x02\x03\x04\ \x00\x05\x11\x06\x12\x21\x07\x31\x13\x22\x41\x51\x61\x71\x14\x32\ \x81\x91\x08\x15\x23\x42\xa1\xb1\x16\x33\x52\x62\xc1\xd1\xf0\x24\ \x34\x37\x43\x63\x72\x74\x75\x82\x92\xb3\xb4\xe1\xf1\x17\x36\x53\ \x73\x94\xa2\xb2\x25\x93\x09\x44\x83\xa3\xc2\xd2\xe2\xff\xc4\x00\ \x1b\x01\x00\x02\x03\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x03\x01\x02\x04\x05\x06\x07\xff\xc4\x00\x35\x11\x00\ \x02\x01\x02\x04\x02\x07\x07\x04\x03\x01\x01\x00\x00\x00\x00\x00\ \x01\x02\x03\x11\x04\x12\x21\x31\x13\x41\x05\x22\x51\x61\x71\xa1\ \xf0\x14\x32\x81\x91\xc1\xd1\xe1\x15\x23\xb1\xf1\x42\x52\x62\x63\ \x24\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xec\ \xba\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\ \x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x28\xa2\x80\x0a\x2b\x15\x2d\ \x29\xee\x69\x33\xf3\xd9\x68\x72\xb1\x50\xda\x5b\x80\xae\x8a\x62\ \x9d\xa8\xe2\x45\x4e\xe7\x1d\x42\x13\xee\xa5\x00\x3f\x8d\x32\xcb\ \xea\x36\x9f\x8f\xfd\x65\xea\xdc\x93\x9c\x63\xed\x08\x38\xfe\x34\ \xa7\x88\xa6\xb9\x90\x9d\xf6\x26\xf4\x55\x7c\x7a\xa7\xa5\x87\x7d\ \x41\x6c\x07\xfe\x70\x9a\xdf\x13\xa9\x5a\x6e\x49\x09\x6a\xfb\x6c\ \x52\x89\xc6\xd1\x25\x19\xfe\x74\x7b\x44\x09\x27\x54\x53\x34\x5b\ \xec\x67\xd2\x14\x1c\x49\x07\x90\x41\xc8\x3f\x8d\x2f\x66\x6b\x2e\ \x76\x58\xab\xc6\xa4\x67\xb3\x22\xe2\xaa\x2b\x14\xad\x2a\xec\x6b\ \x2a\xb9\x21\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\ \x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\ \x14\x50\x01\x45\x73\x86\xb2\xeb\x1e\xa8\xb8\xf5\x36\xef\xa7\x34\ \xc4\xb6\xed\x36\xbb\x1b\xaa\x8f\x21\xef\x01\x0e\xbd\x21\xe4\xa8\ \xa5\x43\xce\x0a\x52\x9c\x85\x0e\x06\x70\x33\x9e\x46\x15\xc5\xea\ \x7e\xb2\x65\x7b\x9c\xb8\x35\x20\x7f\x65\xc8\xc8\x03\xff\x00\xb4\ \x03\x5c\xbc\x4f\x4b\xe1\xf0\xf5\x38\x72\xbd\xfb\x8c\x32\xe9\x0a\ \x4a\x4d\x6a\x74\x25\x15\x4b\x41\xeb\x1d\xd9\x18\xfb\x6d\xa2\x13\ \xff\x00\xfc\xa5\xa9\xbf\xe7\xba\x9f\xa0\xf5\x8a\xca\xe0\x02\x65\ \xb2\x7b\x07\xfe\x2c\xa5\xc0\x3f\x88\xfe\x55\x34\xfa\x63\x07\x3f\ \xf3\xb7\x8d\xcb\xc7\x1b\x46\x5c\xcb\x2e\x8a\x89\x41\xea\x3e\x8f\ \x97\x80\x2e\xc1\x85\x1f\xdd\x79\xa5\xa3\xf8\xe3\x1f\xc6\xa5\x31\ \xde\x6a\x44\x76\xe4\x30\xe2\x5d\x65\xd4\x05\xa1\x69\x39\x0a\x49\ \x19\x04\x1f\x6c\x56\xea\x55\xe9\x55\xf7\x24\x9f\x83\x34\x46\xa4\ \x27\xee\xbb\x9b\x28\xa2\x8a\x69\x70\xa2\x8a\x28\x00\xa2\x8a\x28\ \x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\ \x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x82\x40\xa4\xb2\xa5\x21\ \xa4\x92\x54\x05\x00\x6f\x5b\x89\x48\xe4\xd3\x65\xc6\xef\x1e\x2b\ \x6a\x52\xdc\x4a\x42\x46\x49\x27\x00\x54\x1b\xa8\xbd\x4a\xb4\x69\ \x98\xab\x54\x99\x29\x2e\x81\x90\xd8\x57\x3f\x8f\xb5\x72\xfe\xbc\ \xea\x86\xa1\xd6\x4b\x5a\x23\xc8\xfb\x25\xb4\x28\x82\xbd\xdb\x1a\ \x1f\xff\x00\xb1\xac\xb5\x71\x0a\x2b\x41\xb4\xa8\x4e\xab\xd3\x62\ \xfc\xd7\xfd\x73\xd3\x3a\x7d\xb7\x52\x25\x89\x8f\x27\x23\xc3\x61\ \x5c\x67\xfe\x57\xf9\x57\x3d\x6b\x3f\xd2\x3b\x56\x5d\x5e\x72\x3d\ \x85\xb1\x11\xa3\x90\x3c\x24\xee\x5f\xe7\xc9\xfe\x55\x08\xfd\x59\ \x09\x4e\xf8\xd3\x9c\x2f\xa9\x47\x71\x79\xc2\x4a\x4a\x7d\xd0\x81\ \x82\xaf\xc7\x02\x9d\xed\xce\x6c\x7d\x30\xed\x16\xf8\xe9\x51\x48\ \x52\x8a\x9b\x09\x18\xc7\x0a\x3e\xde\xfc\xd6\x47\x5a\xfa\xda\xfe\ \x27\x42\x38\x18\x47\x72\x1d\x72\xbd\x75\x02\xf8\xe3\x92\x25\x49\ \x9c\x42\xb9\x25\xc5\x12\x79\xfa\xf3\x4c\x32\xe0\xea\x1f\x15\x49\ \x72\x44\x85\xb8\x39\x50\xdd\x8c\x55\xa1\x73\x2d\xcc\x94\xe1\x97\ \x36\x44\xc5\x92\x30\x96\x13\xb5\x94\x28\x0c\x60\xa8\x77\xfc\x68\ \x95\x0d\x05\xb5\xa1\x96\x5b\x0e\x60\x78\x8e\x78\x7e\x32\xd2\x3b\ \x0d\xbb\xbc\xb9\xf8\xc2\xaa\x63\x8a\x90\xd7\x84\x8b\x5c\xfd\x79\ \x15\x22\xa2\x5f\xd2\xb2\x82\xb7\xf7\x0e\xe0\x2b\x38\xad\x4e\x8b\ \xcb\x07\x2e\x4b\x71\xb2\x39\xf3\x13\x56\x14\xcb\x5c\xb1\x19\xc5\ \x38\xdb\xa5\xa6\x88\x23\xed\x6b\x28\x2a\xfa\x25\x38\x1f\xc2\xa1\ \xf7\x24\xca\x48\x52\xa3\xda\x9b\x71\x09\xc9\xf1\x1a\x6b\x79\xfc\ \x49\xcd\x69\x85\x77\x3e\x66\x5a\x98\x65\x05\x71\x5e\x98\xea\x3e\ \xb1\xd3\x52\x03\xb6\xeb\xcc\xa6\xb6\x8e\x52\x97\x0e\x0f\xd4\x76\ \x35\x73\x68\x5f\xd2\x96\xeb\x15\x48\x67\x51\xc3\x44\x94\x81\x8f\ \x15\xaf\x22\xfe\xa7\xd0\xfe\x55\xce\xab\x44\xa7\x3f\x75\xc5\x83\ \xe8\x40\xe0\xfc\x81\x5a\x3c\x05\x28\x12\x94\x20\x94\x9c\x29\x25\ \x38\x50\x3e\xc6\x99\x28\x42\x7b\x99\x1c\x7b\x8f\xa4\x7d\x29\xea\ \xee\x9e\xd6\x91\x3c\x5b\x5d\xc5\x2b\x71\x23\xcf\x1d\xd3\xb5\xd4\ \x7e\x1e\xa3\xe4\x55\xa3\x06\xe6\xc4\x84\x8d\xab\x15\xf2\x62\xd3\ \x32\xe9\x6a\x7d\x33\x6d\x8f\x3b\x15\xd6\xd5\x9d\xc8\x59\x49\x49\ \x1f\x35\x7b\xf4\xb7\xf4\x95\xbe\x59\x5c\x6a\xdf\xaa\x5b\x54\xf8\ \xe3\x00\x3f\x9c\x3a\x91\xf5\xec\x7f\x1f\xce\xa1\x67\x86\xda\xaf\ \x32\x8e\x0d\x6c\x77\xfa\x56\x14\x38\x35\x95\x55\xfd\x38\xea\x75\ \x83\x56\xc4\x43\xd6\x9b\x8b\x52\x38\xca\x9b\x27\x0e\x23\xea\x9e\ \xf5\x62\xc5\x98\xdb\xa9\x04\x28\x1c\xd3\x61\x51\x4f\x62\x82\xba\ \x2b\xc4\xa8\x1e\xd5\xed\x5c\x90\xa2\x8a\x28\x00\xa2\x8a\x28\x00\ \xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x00\xa2\x8a\x28\x03\ \x88\xa1\x7f\xbf\x27\x51\x3f\xe9\xa9\x3f\xf8\x87\x6a\x67\xa2\xac\ \x97\x2d\x65\xab\x5c\xb0\xda\x56\xd4\x76\xa1\xb4\x97\xae\x33\x5d\ \x41\x5a\x58\x4a\xb3\xb1\x09\x48\x23\x72\xd5\x82\x46\x48\x00\x02\ \x79\xed\x50\xc8\x5f\xef\xc9\xd4\x5f\xfa\x6a\x4f\xfe\x21\xda\xbe\ \xbf\x45\x38\x81\x1a\x5b\x51\x5c\xd6\x8f\xdb\xcc\xbf\x3e\x82\xb2\ \x39\x2d\xb4\x94\x21\x23\xe8\x30\xaf\xcc\xd7\x98\x8e\x12\x18\x9e\ \x91\x9a\xa8\xae\x97\xe0\xf3\x98\x6a\x4a\xad\x6c\xaf\x6d\x4f\x17\ \xa0\xf4\x3b\xb7\x77\x34\xb4\x3d\x51\x27\xfa\x42\xdb\x25\xdf\x09\ \xe2\x93\xb8\x71\x9f\x28\x48\x07\x1e\xa0\x1c\x8c\xf3\x55\xc5\xce\ \xd5\x3a\xdd\xac\xe0\x69\x59\x0d\x62\x74\xcb\x82\x21\xa4\x83\x94\ \xa4\x28\x15\x78\x9f\x29\x09\x1b\xa8\x44\xc9\x09\xea\xfe\x96\xbb\ \x20\xab\xed\x0e\x6a\x20\xd2\xd5\x9f\xdc\x78\x2d\x2b\x1f\x88\x35\ \x6e\x5f\x7f\x57\xc1\xfd\x22\xb4\xf8\x91\x6c\x6e\x63\xf7\x6b\x5b\ \xa2\x33\xeb\x5f\xfb\x89\xc8\xe1\xc2\xa7\x12\x92\x0e\x54\xb4\x38\ \x10\x48\x23\x84\x8e\xf5\x34\xb0\x58\x6c\x6c\x23\x52\x31\xcb\xad\ \x9a\x5c\xd1\xa1\x53\xa7\x5d\x5d\x2b\x59\xdb\xe0\x54\xfa\x96\xd2\ \xed\x8e\xf9\x2a\xd4\xf3\xa8\x75\x71\xd4\x12\x56\x80\x40\x39\x00\ \xff\x00\x8d\x74\x86\x8a\xff\x00\xdc\xdb\x27\xfd\x1f\x1f\xfe\xed\ \x35\x4e\xf5\x96\xe7\x6f\x91\xa8\x25\x5b\x9a\xb3\x35\x1e\x64\x77\ \x92\x5c\x9a\x97\x32\xa7\xc6\xce\xc5\x38\x18\xee\x3d\x4f\x6a\xb8\ \xb4\x57\xfe\xe6\xd9\x3f\xe8\xf8\xff\x00\xf7\x69\xab\xf4\x4d\x28\ \xd2\xc5\xd5\x84\x1d\xd2\xfb\xec\x3f\x05\x05\x0a\xd3\x8a\x1d\xe8\ \xa2\x8a\xf4\x67\x50\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\ \x00\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xa2\x8a\ \x00\x2b\x15\xa8\x24\x50\xb5\x84\x8c\xd3\x0e\xa0\xbd\x47\xb7\xc4\ \x75\xf7\xde\x4b\x6d\xb6\x92\xa5\xa9\x47\x01\x20\x7a\x9a\x1b\x49\ \x5d\x80\xa2\xef\x75\x66\x1b\x2a\x5b\x8e\x25\x21\x23\x24\x93\x80\ \x05\x73\xef\x58\x7a\xe7\x06\xd4\xd3\x90\xac\xce\x99\x32\xd4\x76\ \x25\x48\xe4\x0f\xa7\xf9\xd5\x67\xd7\x9e\xb6\xbd\x7a\x7d\xfb\x3d\ \x85\xe5\x26\x30\x25\x25\x40\xe0\xb8\x7d\xcf\xc7\xc7\xe7\x5c\xff\ \x00\x26\xe2\xec\xa5\xf8\x4d\x2d\x4b\x5a\xc1\x0e\xba\x4f\x27\xf1\ \xf4\x1f\x1e\xbf\x4a\xc7\x52\x72\x93\xb1\xb2\x8e\x19\x7b\xd5\x3e\ \x44\x9a\xf3\xa8\xaf\xda\x9a\xf6\xa5\xbc\xa3\x31\xe2\xb2\x50\xd2\ \x95\x96\xd2\x3d\x49\xf4\xc0\xf5\x39\xa5\xb6\xb6\xdc\x72\x4b\x5e\ \x1a\x05\xce\x43\x6a\xf0\xfc\x57\x13\xfb\x16\x95\xfd\x86\x9b\x1c\ \x13\xf8\x7c\x9c\x0e\x6a\x2b\x6b\x79\x0b\x3f\x66\x8e\x4e\xc1\xca\ \xd4\x14\x40\x5e\x3d\xc8\xf9\xf6\xfc\x39\xe6\x9f\x58\x9a\xb5\x25\ \x21\x95\x06\xe3\xb2\x48\x71\xf4\x80\x0a\x8f\xab\x4d\x8e\xc0\x7a\ \x9f\x4f\x55\x12\x6b\x1d\x48\xeb\xa9\xd5\xa4\xf4\xb4\x47\xf9\x0c\ \xb6\xc3\x98\x91\x21\x72\x5c\x3b\x9c\x77\x68\xf2\xa4\x0f\x75\x0f\ \xbd\xf4\x1c\x1f\x73\xda\x9a\xa7\xdc\xd2\x85\x15\xdc\xe6\xc5\xb7\ \x30\xac\xa9\x4d\xaf\x97\x1e\xe3\x8d\xc8\x4f\x20\x7b\x02\x31\xf1\ \x4f\x9a\x5b\xa7\xda\xe3\x5f\xa5\x0f\xdb\x63\x1b\x75\xa0\xf3\xf6\ \xf9\x0b\x2d\xa5\xcc\x71\x94\x03\xe6\x57\xd7\x18\xe3\x8c\x0a\xb7\ \xb4\x6f\x40\x74\x95\xad\x9c\xde\x19\x45\xe2\x6a\x80\x52\xe4\x3c\ \x54\xbe\x7e\x01\x38\x03\xd7\x9a\x5a\x69\x6e\x5e\x7d\x5d\x9f\xaf\ \x5e\x07\x3c\xc6\xd4\x53\x2e\x0e\x2a\x3d\x92\xdb\x74\xbb\xac\x79\ \x50\x0e\xe6\xa3\xa4\x7b\xe1\x18\x51\xfc\x54\x3b\xd4\x92\xdf\xa2\ \xfa\x9f\x7b\x86\xa7\x54\xf7\xea\xa6\x00\x4e\xe6\x63\xfe\xc7\x8e\ \xc3\x71\xee\x4f\x3e\xa4\x9f\x7a\xea\xdb\x5e\x9a\xb6\x5b\xe3\x08\ \xb0\x62\xb0\xcb\x09\x18\x21\x2d\xa5\x39\xf8\x24\x0a\x5e\xcd\x9e\ \x32\x54\x14\x94\x0c\x01\xe5\x18\xe1\x3f\x41\xda\xac\xa4\xff\x00\ \xc5\x5b\xcc\x53\xa9\x0f\xf2\xd7\xc9\x7a\xf8\x9c\x8f\xff\x00\xb1\ \xdd\x4a\x94\x87\x5c\x98\xea\xc9\x5e\x00\x49\x59\xc7\xb2\x92\x73\ \xc1\x1e\xc7\xbf\x15\xa9\xde\x96\xea\xa3\x35\x08\x4b\xc8\x44\x84\ \x8c\x07\x50\x3c\x30\xbc\x7a\xab\xe4\xe4\x8e\x7b\xe2\xbb\x18\x45\ \x6d\x2e\x15\x14\xa7\x80\x07\x22\xbc\x5c\x28\x0e\x0d\xaa\x6d\xa3\ \x9e\xd9\x19\x1f\x91\xa2\xf5\x3f\xd8\x15\x5a\x7f\xe9\xfc\x9c\x87\ \x0f\xa3\x77\xe9\x4a\x53\x6d\x86\xfc\x50\x77\x17\x0e\xed\xa3\x27\ \x03\x91\xdf\xde\x9b\xb5\x1f\x4c\x2f\xd1\xe6\xbb\x1e\x54\x34\xf8\ \x8d\x21\x4a\x0f\x25\x5c\x28\x63\x19\x3f\xc0\xd7\x65\x7d\x91\xb6\ \x50\x52\xde\xdc\x7c\x0e\xd4\x96\x65\xbe\xdf\x29\x59\x93\x1d\x0e\ \x12\x36\x92\x47\x04\x7c\xd5\x33\xd4\x5f\xe4\x4b\xa9\x4e\x5a\x38\ \xe8\x70\x94\xbd\x33\x32\x24\x77\xb7\x36\xb5\x2d\x04\x04\x92\x9f\ \x4e\x32\x3e\x79\xed\x4c\x13\x2d\x8e\x24\xa9\x21\xa2\x36\xf2\xb0\ \x7f\x70\x73\xeb\x5d\xe9\x73\xd1\xf6\x29\xb9\x58\x8e\x86\xdc\xc1\ \xf3\x84\x8c\x82\x7d\x73\x51\x7b\xd7\x49\x74\xfd\xc2\x21\x6f\xc3\ \x0d\x9f\xed\x36\x90\x0e\x7e\xbf\xeb\xbd\x32\x38\xca\x91\xdd\x5c\ \x54\xb0\xf4\x27\xb3\x68\xe3\x5d\x31\x7d\xbd\xe9\xa9\xad\xdc\xed\ \x53\x1f\x8c\xeb\x6a\xe0\xa1\x44\x11\x5d\x41\xd1\xff\x00\xd2\x59\ \xc9\x4f\xc7\xb4\xea\x86\x9b\x69\xd5\x00\x94\xca\x4f\x94\x28\xff\ \x00\x78\x76\xfc\xb1\x50\x0d\x7f\xd1\x5b\x8d\xad\x97\x8d\xb5\x84\ \xbd\x1c\x82\xaf\x10\xe4\xaf\xe3\x38\xaa\x66\xe3\x02\x6d\xb5\x4a\ \x6a\x53\x2a\x65\x7b\xb0\x9e\x31\xdb\xe6\xb5\xc6\xb4\x2b\xad\x37\ \xf3\x31\x55\xc2\x38\x6a\xf5\x5d\xa7\xd4\xfd\x2d\xa8\x63\xdc\xe3\ \x21\x68\x71\x2a\xdc\x32\x30\x73\x9a\x92\xb6\xad\xc2\xb9\x17\xf4\ \x56\xd6\x2e\x4b\xb0\x43\x87\x29\xf5\x19\x2c\x0f\x0d\x40\x9e\xe0\ \x76\x3f\x95\x75\x6d\xaa\x40\x75\x94\x9c\xe7\x22\x9f\x86\xa8\xe7\ \x16\xa5\xba\x30\xb4\xe2\xdc\x58\xbe\x8a\x28\xa7\x80\x51\x45\x14\ \x00\x51\x45\x14\x00\x51\x45\x14\x00\x51\x45\x14\x00\x51\x45\x14\ \x01\xc4\x50\xbf\xdf\x93\xa8\xbf\xf4\xd4\x9f\xfc\x43\xb5\x7d\xfe\ \x8a\x72\xb7\xe9\x1d\x41\x01\x6a\xfd\xac\x4d\x41\x24\xed\x3e\x88\ \x71\x28\x71\x27\xf1\xdc\x7f\x23\x54\x24\x2f\xf7\xe4\xea\x2f\xfd\ \x35\x27\xff\x00\x10\xed\x4d\xf4\x06\xa3\x97\xa1\x75\x74\x9b\xdb\ \x11\x9c\x9b\x6d\xb8\x32\x96\xee\x71\x1b\x50\x0e\x12\x8c\xec\x75\ \xbc\xe0\x15\x00\x48\x29\x24\x64\x1e\xf9\x15\xe6\x69\xe2\xa1\x43\ \xa4\xa7\x9d\xd9\x3f\xc1\xe7\x70\xb5\x55\x2a\xf9\x9e\xda\x89\xcc\ \x77\x93\xd5\x8d\x2b\x01\x39\xf1\x91\xa9\x5b\x2a\x4f\xf7\x5b\xde\ \x55\xf9\x62\xad\x5d\x66\xfa\x15\xfa\x4c\xe8\x18\xe3\x1b\x9b\xb6\ \xdc\x14\xae\x7f\xb4\xdf\xff\x00\xf3\x4e\x70\xa1\x68\x79\x85\x8e\ \xb0\xdb\xa1\x4b\x9c\xe2\xa2\xa9\xd8\xde\x18\x3e\x5d\xfe\x55\xa8\ \x37\xc0\x0b\x3c\x85\x13\xd8\x66\xaa\x6b\x9e\xa2\xb8\xbf\xd4\xd8\ \x3a\xe5\x09\x42\x66\x41\x75\x61\x31\x9c\xc9\x42\x99\x5a\x3c\x35\ \x37\x9e\xe0\xed\xc6\x15\xee\x33\x83\xda\x9f\x1a\x94\xfa\x36\x30\ \xa5\x51\xee\xef\xf0\x34\xe9\x86\x8a\x4d\xde\xed\x3f\x80\xbf\xaa\ \xff\x00\xef\x85\x76\xff\x00\xe6\x27\xff\x00\xc1\x35\x7c\xe8\xaf\ \xfd\xcd\xb2\x7f\xd1\xf1\xff\x00\xee\xd3\x54\x46\xba\xd5\x16\xed\ \x4a\xb4\xc9\x63\x4e\xc6\xb7\xcd\x5a\x92\xb9\x12\x42\xc2\xdc\x73\ \x09\xc0\x4e\xed\xa0\xed\x1f\xe1\xda\xaf\x7d\x15\xff\x00\xb9\xb6\ \x4f\xfa\x3e\x3f\xfd\xda\x69\x7d\x14\xe1\x2c\x5d\x59\x42\x57\x4f\ \x5f\x9b\x1b\x83\x71\x75\xa6\xe2\xee\x98\xef\x45\x14\x57\xa3\x3a\ \x81\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\x01\x45\x14\x50\ \x01\x45\x14\x50\x01\x45\x14\x50\x01\x58\xb8\xa0\x91\x9a\xc8\x9c\ \x0c\xd3\x5d\xde\x62\x58\x69\x44\x9a\x00\x43\xa9\x6f\x71\xad\x90\ \x5e\x93\x25\xf4\x32\xd3\x48\x2a\x5a\xd4\x70\x12\x07\xad\x70\xef\ \x5f\xfa\xd5\x37\x53\x5c\xdd\xb4\xd9\xde\x5b\x76\xd6\xd7\x81\xb4\ \xff\x00\x5a\x7d\xcf\xbf\xf8\x54\x8b\xf4\xbb\xea\x7b\xcf\xcb\xfe\ \x89\x5a\x65\x1d\x88\x39\x98\xa4\x1f\xde\xfe\xc9\xf8\x1f\xcc\xfc\ \x57\x2d\x38\xe1\x5e\x48\x59\x28\x07\xef\x9e\xea\x3f\xe5\x4a\x6d\ \xcb\x51\x94\xd2\x5d\x66\x2e\x9d\x25\x4e\xba\xb4\xa9\xce\xff\x00\ \xd6\x63\x93\xf4\xa4\x65\xe2\xf1\x11\xd8\x18\x1c\xef\x56\x71\x91\ \xf2\x7d\xbf\x9d\x27\x2a\x5b\x9e\x44\x79\x53\xeb\x4a\xed\xd1\x5f\ \x98\xfb\x50\xe1\xb2\xe3\xae\xba\xb0\x94\xa1\x09\xdc\xa5\xab\xe9\ \x51\x95\x41\x5d\x8d\x52\x95\x59\x59\x7a\xee\x1d\x60\xb8\x86\x98\ \x53\x49\x71\x61\xa3\x80\xa0\x84\xf9\xdd\x3e\x80\x7b\x7b\x01\x5d\ \x1d\xd1\x7e\x8c\x49\x75\x11\xb5\x0e\xb5\x8e\x94\x24\x25\x2a\x85\ \x68\x71\x3e\x54\x27\xba\x4b\xa3\xf8\xec\xfc\x4d\x3b\xf4\x1f\xa3\ \x90\xb4\xc4\x78\xb7\xdd\x47\x19\x32\xef\x65\x21\xc6\x18\x58\x05\ \x11\x09\xf5\xc7\xef\x2f\xe4\xf6\xf4\xab\xb1\x5b\xce\xe5\xac\xa8\ \x1c\xe4\x93\xeb\x5c\xba\xb5\x54\xde\x9b\x1d\x88\x5e\x94\x72\xad\ \xff\x00\x83\xd8\xed\x04\x27\x03\x69\x38\xc7\x09\x09\x48\x00\x60\ \x00\x3d\x00\xa5\x71\xd8\x0b\xe3\x97\x08\xe0\xe0\x7f\x0c\xd6\x29\ \x42\x36\x6f\x70\x1c\x1c\x61\x03\xbf\xe3\x4b\x59\x5c\x82\x9d\xad\ \xa0\x32\x9f\xe3\x55\x8a\x11\x26\x2a\x62\x02\x8a\x7c\xe9\x43\x69\ \xfe\x35\xea\x9b\x82\x8e\x14\xe0\x51\xad\x68\x61\xc7\x55\xe6\x5a\ \x96\x47\xb9\xed\x5b\x5b\x80\x08\xc9\xc1\x1d\xfb\xd3\x92\xec\x42\ \x76\xdd\x98\x20\x42\xc7\x2b\x03\xf0\xcd\x6a\x75\x8b\x7a\xff\x00\ \xe1\x07\xce\x07\xf1\xa7\x06\xe3\x36\x8c\x27\x18\xc7\x7c\xf7\xac\ \x84\x66\x72\x41\x03\x8f\x8c\x54\xb8\xb6\x82\xe3\x42\x99\x86\x01\ \x01\xdc\xfb\xf3\x5a\x5d\x6d\xa2\x0e\xd1\xba\x9e\xdc\x8b\x1b\x61\ \x3e\x51\x8e\x7b\xd2\x65\x47\x61\x00\xed\x52\x47\xe3\x4b\x94\x4b\ \x29\x0c\xcb\x65\xac\x02\xa6\x17\x9f\x42\x38\xa4\xab\x8e\x82\xbd\ \xac\xad\x48\x57\x38\x0b\xe2\x9f\xd6\xc3\x7d\x82\xc2\x49\xe7\x93\ \x9a\x45\x2e\x39\xd8\x72\x90\xa0\x79\xc6\x29\x72\x80\xc5\x21\x96\ \x43\x44\x20\xb6\xea\x76\xa8\x8c\x13\x8e\x08\xaa\xbb\xab\x3d\x35\ \xb5\x6a\x48\x0f\xb8\xd3\x49\x8b\x3d\x00\x29\x0a\x1c\x03\x8f\xa5\ \x5b\x2a\x52\x9a\x05\xb2\x0a\xdb\xfe\xca\x8f\x3f\x81\xa4\x17\x08\ \xe8\x75\x1e\x4e\x47\x3b\x4f\xaa\x7e\x0d\x21\xe8\xf4\x1a\x9b\x5b\ \x1c\xc1\xd1\xb7\x17\xa5\xf5\x93\xb6\x7b\x92\x8c\x79\x28\x21\x0d\ \xa9\x47\x09\x74\x64\x91\xf8\xd7\x6c\xe8\x8b\x88\x93\x05\xa3\xbb\ \x9c\x73\x5c\xa7\xd7\x8d\x28\xb9\x50\x13\x77\x84\x16\x89\x71\x32\ \x49\x47\x7c\x03\xc6\x7d\xf1\xcd\x4d\xbf\x45\xce\xa0\xbf\x7d\xb4\ \x88\x97\x27\xf3\x3a\x2e\x10\xe1\x3d\xd6\x3d\x15\x5d\x2c\x35\x48\ \xc3\xaf\xdb\xb9\xc9\xc5\xd3\xb4\xb3\x9d\x4c\x85\x65\x35\x95\x22\ \xb7\xc8\x0e\xb4\x08\x39\xc8\xa5\xb5\xd2\x33\x05\x14\x51\x40\x05\ \x14\x51\x40\x05\x14\x51\x40\x05\x14\x51\x40\x05\x14\x51\x40\x1c\ \x4b\x19\xb5\xb7\xd6\x6e\xa2\x25\xc4\x29\x04\xde\x64\x28\x05\x0c\ \x70\x5f\x74\x83\xf8\x82\x0f\xe3\x52\x2a\xe9\x7b\xbe\x88\xd2\xb7\ \x6b\xda\xaf\x57\x0b\x2b\x0f\x5c\x16\xda\x5a\x5b\xdb\x94\x92\xb4\ \xa7\x3b\x42\x80\x20\x2b\x19\xee\x73\xc7\x14\xba\x06\x9e\xb1\x41\ \xc7\xd8\xec\xf0\x19\x23\xf7\x92\xc2\x77\x7e\x78\xcd\x79\xcc\x5f\ \x42\xd4\xc4\x57\x95\x4c\xc9\x26\x71\xff\x00\x4c\x9b\x93\xeb\x68\ \x50\x9d\x2d\xbc\xea\xbd\x2d\x09\x76\xcd\x3f\x09\xeb\x8d\xad\x6e\ \xad\xd6\xe2\x2e\x32\xdc\x0c\x29\x44\x95\x06\xd4\x9c\x10\x92\xa3\ \x9c\x1c\x8c\x93\x8c\x66\xb7\x9d\x0b\xac\xef\x13\xdf\x9a\xab\x2a\ \x98\x32\x1d\x53\x8b\xf1\x16\x96\xc2\x4a\x89\x27\x85\x1c\xe3\x9a\ \xe8\x7c\x51\x5a\x5f\x43\xf1\x22\xa3\x5a\xab\x92\x5e\x0b\xee\x68\ \x58\x04\xe2\xa3\x39\x36\x91\x4a\x59\xfa\x41\x77\x72\x43\x6a\xba\ \xcf\x88\xc3\x19\x05\xc4\xb2\xa2\xb7\x31\xea\x06\x40\x00\xfc\xf3\ \x57\x3c\x56\x1a\x8b\x19\xa8\xcc\x20\x21\xa6\x90\x10\x84\x8f\x44\ \x81\x80\x2b\x65\x15\xbb\x09\x81\xa3\x84\x4f\x86\xb7\x34\xd1\xc3\ \xc2\x8f\xba\x14\x51\x45\x6c\x1e\x14\x51\x45\x00\x14\x51\x45\x00\ \x14\x51\x45\x00\x14\x51\x45\x00\x14\x51\x45\x00\x14\x51\x41\xed\ \x40\x1a\x64\xb8\x10\x82\x73\x54\xe7\x5e\xb5\xba\x74\xbe\x91\x9d\ \x3d\x0b\x1f\x68\xdb\xe1\xc7\x4f\xbb\x87\xb7\xe5\xdf\xf0\xab\x3e\ \xff\x00\x28\x33\x1d\x64\x9e\xc2\xb8\x63\xf4\xc3\xd6\x4b\x99\x7e\ \x6a\xc6\xc2\xce\xd8\x83\x2b\x19\xe0\xad\x5c\xff\x00\x01\x8a\x5d\ \x57\xb4\x49\x8c\x73\x4a\xcc\xa1\xaf\xf7\x17\xee\x57\x07\xdf\x7d\ \xd5\x2d\x6e\x28\xad\xe5\xa9\x59\x2a\x24\xe7\x14\xd5\xcb\x87\xbe\ \xd4\x0f\x5a\xcf\x03\x1e\x62\x08\x1c\xa8\xfb\x9a\x5f\x68\xb4\x4d\ \xba\x5d\x22\xdb\xd8\x6c\x87\x1f\x52\x52\x06\x39\x4a\x54\x47\x9b\ \x1f\x43\x9a\x9b\xa8\xab\xb2\xee\xf3\x7a\x1a\xad\x30\x24\xdc\xe7\ \x35\x02\x0b\x0b\x79\xe7\x94\x12\x86\xd0\x39\x51\xae\xbb\xe8\x2f\ \x4c\x2d\xda\x46\x0b\x77\x6b\x93\x2d\xc9\xbe\x38\x8c\xee\x23\x72\ \x63\x02\x3b\x27\xe7\xe6\xab\x7e\x94\x69\x64\xdb\x2e\x69\xf0\xda\ \x58\x25\xe2\xca\x1f\x18\x25\x48\xc9\x19\xcf\xf7\xb1\xc9\x1e\x99\ \xc5\x74\xbd\x81\x29\x6d\x01\xa0\x41\x09\x01\x28\x00\x76\x03\xd3\ \xe6\xb8\xf8\xac\x43\xa9\x53\x22\xd9\x1d\xbc\x3d\x0e\x05\x2c\xdf\ \xe4\xfc\x90\xe9\x17\x7b\x7e\x6f\xde\x23\x72\xb3\xef\x4a\xdb\xdc\ \xa3\xb8\x8e\x7d\x0f\xb5\x68\x27\x19\xdd\xd8\x9e\x00\xf5\xa5\x31\ \xb0\x52\x37\x77\xec\x71\x54\x48\xab\x62\x96\x93\x80\x0a\xb3\xf8\ \x73\x4a\xd9\x51\x24\x81\x80\x33\xdc\xd6\x90\xe2\x11\x8c\x10\x93\ \x8c\x01\x58\x3f\x71\x83\x17\xc8\xe3\xa9\x2b\x03\x24\x67\xb7\xd6\ \x98\xa2\x29\xdf\xb0\x71\x68\xa9\x59\x05\xc5\x76\xe7\x06\xb7\x15\ \x38\x94\xf0\xb7\x30\x3d\xd5\x4c\xc9\xbd\xc6\x43\x49\x77\x7a\x58\ \x4a\xf2\x12\x56\xa4\xa7\x77\xd3\x3e\x9f\x35\x9b\x77\x48\x4f\x63\ \xc2\xb8\x47\x77\x71\xc1\x28\x90\x0f\x3e\xdc\x1e\x7e\x95\x74\x43\ \x84\xbb\x07\x15\x2d\x47\x95\x1c\x8f\x92\x6b\x15\x2c\x2b\x92\x47\ \xe3\x5a\x54\xb5\x1e\x12\xb5\x29\x20\x8f\x29\xf4\xf9\xad\x98\xe3\ \xb8\x3e\xf8\xa9\xd4\x8b\x02\x9b\x4a\xb9\x3c\x67\x8c\x56\xa2\x10\ \x14\x46\x33\x8a\xcc\xa4\x02\x40\x04\x7f\x8d\x01\x04\x05\x64\x10\ \x31\xeb\xcd\x55\xa2\xcb\x43\x4a\x92\x7b\x14\x12\x0f\x6e\x2b\x5b\ \x9e\x22\x06\x52\x4a\x7e\x94\x92\xf7\x72\x8b\x05\x4d\xb2\xe3\xe8\ \xf1\x94\x37\x10\x55\xf7\x52\x06\x49\x3e\xc3\xe6\xab\xfb\xc7\x5a\ \x34\x55\xba\x77\xd8\x8d\xee\x33\xae\x83\x8d\xcd\xab\x2d\x9c\x77\ \xe7\xb1\x3f\x4c\xd2\x65\x24\x98\xd8\xd3\x94\xb6\x44\xf9\xf5\x13\ \xe5\x71\x00\xfc\x8a\x6f\x79\x18\x3b\x90\xa3\xf2\x3d\xe9\xb6\x26\ \xb5\xb2\x4e\x4b\x65\xb9\x0d\xa9\x2e\x63\x0b\x6d\xc0\xe2\x4e\x7b\ \x64\xa7\xb1\xfa\xd3\xa9\x53\x4b\x48\x52\x16\x30\xa1\xc0\x1e\xbe\ \xd4\xa7\x69\x6c\x5d\xc6\x51\xdd\x0c\x77\xc8\x2d\xca\x8a\xe2\x1c\ \x40\x29\x5a\x70\x7d\xf9\xae\x6c\x4c\xf9\x3d\x2e\xea\x4b\xae\xad\ \x0b\x30\x5e\x7b\x7a\xb6\x76\x29\x27\x9f\xc7\x06\xba\x8d\xf0\x52\ \xe8\x41\xfb\xa7\x3c\xd5\x1f\xd7\xdb\x2b\x52\x65\xc6\x75\x4d\x05\ \x78\x8a\x28\x73\x9f\xbb\xc7\x7f\xaf\x22\x99\x4e\xa6\x4d\xf6\x17\ \x2a\x0a\xad\xe2\xce\xa4\xd0\x37\xe8\xf7\x2b\x73\x0f\x32\xf2\x5c\ \x6d\xc4\x05\xa1\x60\xf0\xa4\x91\x90\x6a\x72\xca\xb7\x24\x57\x24\ \x7e\x8b\x5a\xad\xdf\xd4\xe2\xc3\x35\x64\x49\xb6\xaf\xc1\x04\xf1\ \xbd\xb2\x72\x93\x8f\xe1\x5d\x51\x68\x90\x1e\x61\x24\x1f\x4a\xec\ \xe1\xe6\xe5\x1b\x3d\xd1\xc2\xb3\x8b\x71\x63\x95\x14\x51\x4e\x24\ \x28\xa2\x8a\x00\x28\xa2\x8a\x00\x28\xad\x52\xe4\xb1\x12\x33\x92\ \x64\xba\x96\x99\x6c\x65\x6b\x51\xe0\x0a\xac\x75\x96\xbb\xbe\x39\ \x6f\x79\xeb\x23\x48\xb6\x43\x1c\x22\x64\x84\x6e\x5b\x9f\x29\x49\ \xe0\x7e\x39\xab\xd3\xa7\x2a\x8e\xc8\x55\x5a\xd1\xa4\xaf\x22\xd3\ \xa2\xb9\xd7\x4f\x1d\x59\x76\x2e\x4a\x9b\xac\x2f\xc1\xb0\x09\xcb\ \x52\xd4\xd0\x3f\x20\x0e\x31\x4d\x37\x39\xda\xa1\x89\x6b\x42\x35\ \x56\xa4\xf0\xd2\x78\x3f\xac\x9c\xc9\x1f\x9d\x69\xf6\x29\xf6\x99\ \x3d\xbd\x7f\xa9\xd4\x14\x57\x34\xe9\xd9\xf7\xa9\x97\x86\x58\x91\ \xac\x35\x12\x59\x2a\xc1\x3f\xac\x5c\xe7\xdf\xd6\xae\xd8\x9a\x79\ \x2a\x88\x87\x06\xa3\xd4\x0a\x04\x72\x4c\xdc\xff\x00\x85\x2e\xae\ \x1e\x54\xd2\x6c\x75\x2c\x57\x11\xb4\x91\x29\xa2\xaa\x8b\x83\x53\ \x44\xf7\x3c\x2d\x49\x7d\x4b\x69\x38\xc0\x98\xaa\x7e\xd2\xf6\x49\ \x92\x62\x97\xe4\xea\x1b\xea\x82\xbe\xee\x66\x1f\xf1\x15\x33\xc3\ \x4a\x11\xcc\xd9\x58\x62\xf3\xcb\x2a\x44\xe6\x8a\x80\x6a\x06\x1c\ \x88\x97\x16\xdd\xf6\xf4\x94\xa0\x77\xfb\x59\xff\x00\x2a\xae\x9e\ \xbb\x5e\xfe\xd2\x42\x75\x25\xe4\x05\x13\x8f\xf6\xd5\xe3\xf9\xd5\ \xa1\x83\x9c\x95\xc8\x96\x36\x31\x76\xb1\xd0\x94\x55\x61\xa5\xde\ \x97\x2e\x33\x6b\x7e\xf7\x76\x52\x87\x0a\xff\x00\x6a\x3c\xfe\x75\ \x2c\x9b\x68\x71\x50\x8b\xac\xde\x2e\xc1\x5b\x72\x31\x2b\xff\x00\ \x2a\x5c\xf0\xf2\x83\x49\xf3\x2f\x0c\x4a\x9a\x6d\x2d\x89\x1d\x15\ \x59\xe6\xe2\x87\x0a\x55\x79\xba\x1d\xa7\x9f\xf6\xa5\x76\xa9\x6d\ \xb6\x1f\xda\x21\x87\x8d\xd2\xe3\x9c\x73\xfe\xd1\xff\x00\x95\x4d\ \x5c\x34\xa9\xab\xb0\xa5\x8a\x55\x1d\x92\x1f\xe8\xaa\xa3\x53\xdd\ \x27\x31\x70\x5a\x62\x5d\x2e\x49\x43\x67\x07\x32\x54\x3f\x95\x37\ \x45\xbb\x5d\x5e\x20\xae\xf5\x71\x47\xc7\xda\x57\xcf\xf1\xa6\x2c\ \x14\xda\x16\xf1\xd1\x4f\x62\xe8\xa2\xab\x58\xf3\xe4\x48\x8b\xe1\ \xa6\xef\x3c\x3a\x07\x72\xfa\xbb\xfe\x74\xa7\x4a\x1b\xdc\x9b\x83\ \x8c\xc9\x9f\x2c\xb4\x93\xc1\x2f\xa8\xff\x00\x3a\x89\x60\xe5\x15\ \x76\xc9\x8e\x32\x32\x76\x48\xb0\x68\xa4\x29\x85\xb5\x24\xaa\x64\ \xb3\xf3\xe2\x9a\x4d\x38\x21\xa8\xee\x2d\x13\xa4\x05\x01\xdb\xc5\ \xac\xf1\x83\x93\xb2\x34\xca\x79\x55\xd8\xef\x45\x42\xdd\xb9\xbc\ \xc3\x1e\x22\xe5\xc8\x23\x1f\xfc\x43\x4d\x92\x6f\xb7\x42\x3f\x64\ \xf3\xa0\x13\x80\x4b\x87\xfc\xeb\x4f\xb1\x4c\xcd\xed\xb0\xec\x2c\ \x7a\xc5\xc3\x84\x13\x50\x2b\x55\xfa\x73\x8b\xf0\xdf\x79\xcd\xde\ \x87\x79\xff\x00\x3a\x58\xfd\xe5\xf6\x9a\x59\x71\xd7\x31\x8e\x3c\ \xc6\x8f\x62\x99\x2b\x1b\x06\x27\xd7\x92\xd4\xdc\x45\x84\x9e\x4f\ \x15\xf3\x6b\xab\xd7\x73\x7a\xd7\xd7\x69\x7b\xf7\x03\x21\x49\x4a\ \xbb\x8d\xa0\xe3\x3f\xca\xba\xf7\xaf\x9a\xe5\xdb\x56\x91\xb9\x4b\ \x4c\x85\x25\xdf\x0c\xb2\xc8\xdc\x72\x5c\x5f\x03\xd7\xd0\x64\xfe\ \x15\xc3\xaf\x87\x97\x20\x4b\xdb\xbd\x0f\xa8\x80\x49\xc8\xcf\xa8\ \x3f\x35\x8e\xad\x2c\x95\x1b\x6c\xd3\x42\xa7\x11\x36\x8c\x18\x52\ \x1b\x21\xc5\x24\x2b\x61\xc2\x10\x7b\x13\xee\x6a\x61\xa1\xae\x2c\ \x5a\x1c\x17\x45\xbb\x99\x8f\x3d\xb5\x2b\x03\x2a\x4b\x7f\xbe\xad\ \xa7\x83\x9c\xf0\x3d\x93\xf3\x51\x34\xb6\xcb\xee\x14\xa1\xf4\x32\ \x94\x8e\x03\xb9\x1f\x91\xff\x00\x3a\xc9\x69\x58\x90\x19\x6d\x7e\ \x65\x00\x84\xed\x3b\x89\xf4\xc0\xc7\x72\x69\x53\x8e\x65\x63\x4d\ \x39\xe4\x95\xce\x83\xe9\xee\xa8\xb6\xb8\xd4\xdb\xf5\xc2\x5a\x21\ \x5a\xad\x8a\x6e\x34\x72\xf2\x82\x40\x51\xc8\x03\x8f\xbc\x48\xce\ \x71\xee\x6a\xc4\xb1\xf5\x8b\xa6\x71\x62\xa9\x52\xf5\x8c\x64\x3a\ \x15\xb4\x6c\x8c\xf2\xbc\xb8\xf8\x4f\xd6\xb9\xf3\xa9\x5a\x7d\xfb\ \x1f\x49\xed\x4c\xc8\x88\x62\xbe\x2e\x29\x53\xac\xf7\x53\x41\x4d\ \x28\xa4\x2c\xff\x00\x68\xe1\x5c\x7a\x57\x48\x69\x1d\x29\xa6\x62\ \x74\x6b\x4e\x6a\x18\xbd\x28\xd1\xd3\xdf\x7e\xd5\x1d\xc5\xbd\x36\ \x0f\x8c\x5c\x5a\xb0\x92\xb5\x12\x73\xc9\xe4\xfd\x6b\x9b\x43\x0b\ \x4e\xbd\xea\xa7\xa5\xdf\x91\xd5\xaf\x8a\x94\x1a\xa7\x65\xcb\xcc\ \xcd\x5d\x79\xe9\x0a\x48\x49\xd5\xce\x10\x3d\x45\xb6\x41\xff\x00\ \xfc\x2b\x79\xeb\xff\x00\x48\x1b\x69\x45\xad\x58\xb5\xab\x19\x03\ \xf5\x74\x80\x4e\x3e\xa8\xa5\x6b\xd3\x37\x35\x46\x2f\xda\xf4\x27\ \x4d\x59\x69\x20\x95\x3c\x34\xe3\x4d\x47\x4e\x3f\xe3\x5c\xe0\xfe\ \x15\x86\x97\xd0\xda\x9f\x53\x3b\x23\x68\xe8\xaa\x9b\x8a\x52\x99\ \x28\x89\x61\x6a\x62\x9a\x2a\xe4\x05\x10\x84\xa7\x3c\x1e\xc4\xd3\ \x61\x4a\x93\xf7\x5b\x7e\xbc\x05\xca\x53\x4a\xf2\xb2\x21\xd3\xfa\ \xf5\xa6\xee\x61\x5f\x65\xbc\x46\x8c\x8e\x4b\x2d\xa9\x45\x0a\x20\ \x76\xdc\x48\xc0\xcf\xe3\x50\xcd\x4d\xd6\x18\xec\xc4\x6a\x05\xaf\ \xec\xf2\x64\x2d\xb2\xe2\x9d\x66\x56\x52\xda\x8f\x60\x55\xce\x4f\ \xae\x33\xf9\x57\x4c\xb5\xd0\x2d\x2c\xfc\x4f\xff\x00\x54\xb5\x69\ \x29\x2f\x9e\xea\x8d\xa6\x58\x61\x39\xfa\x24\xe7\xf8\xd4\x23\x58\ \xfe\x8d\xbd\x3d\x5b\x6e\x97\x63\xdb\xad\xce\xf0\x12\xe2\x61\x48\ \x61\xbc\xfc\x14\xbc\xa4\xe7\xf0\xa1\x61\x23\x7b\xca\xfe\x45\xbd\ \xbe\xcb\x2c\x2d\xf0\xbf\xd4\xe5\xe8\x53\xb5\x05\xea\x43\x92\x25\ \xdd\xe6\xbc\xf3\xca\x09\x05\x2a\x5b\x99\x04\xf3\x84\x0e\x00\xfe\ \x35\x25\xd2\x36\x1b\xba\x56\xb5\xe9\xe7\xe7\xb5\x21\x0a\x53\xae\ \x34\x14\x42\xde\x4a\x78\x56\x10\x7b\xfd\x47\x20\xf7\x15\x36\x97\ \xfa\x39\x39\x6e\x7c\x48\xd2\xba\xb9\xb4\x38\x9f\x30\x4c\x5b\xb8\ \x6d\x60\xfc\x25\xc4\xa7\x3f\xf6\xab\x28\xed\xf5\x8f\x42\x38\x5d\ \x9a\x21\xdf\xdb\x53\x9b\xdb\x17\x38\x25\x2e\x03\xee\xdb\xec\x92\ \x77\x1e\x7b\x92\x3e\x2a\xb3\x84\x6f\xd5\x92\xfe\x0d\x74\x71\x6d\ \x25\x78\xb6\xfe\x7f\x92\xe6\xe8\xfb\xd7\x35\xd8\x76\xc8\x9a\xf4\ \xa6\xd2\x94\xad\x92\xf8\xc2\xdb\x1f\xbc\x09\x3d\xfb\x76\xf7\xc1\ \xf5\xa9\xf4\x37\x1a\x70\x16\xf2\x0a\x81\xc0\xf9\xaa\x3f\x44\xf5\ \xb7\x4a\x39\x31\xb6\x75\x3c\x59\xfa\x3e\x72\xbf\x64\xf3\xd2\x71\ \x22\x13\x85\x59\x00\x17\x50\x3c\x8a\xcf\x3e\x64\x8e\xc3\x35\x7a\ \xe9\x8f\xb2\xcc\xb6\x36\xfc\x07\xa3\x4d\x88\xb4\xe5\xa7\xe2\xba\ \x97\x5a\x23\xe1\x49\x24\x1a\xbc\x69\xb8\xa4\x99\x92\xb5\x45\x29\ \x39\x02\xdb\x59\xce\xd1\xc8\x1c\x83\xed\x5e\x38\x48\x8e\xa2\x91\ \xc2\x47\x62\x29\x7c\xb8\xae\x82\x0b\x0d\x93\xc7\x24\x72\x0f\xc0\ \xa6\x1b\xbc\xb6\xed\x30\x5f\x99\x73\x95\x1a\x04\x56\xbc\xcf\x3f\ \x2d\xd4\xb4\xda\x47\xae\x54\xa3\x81\x55\x9a\x48\x5c\x7a\xc5\x2b\ \xd6\x48\xb3\xee\x57\x93\x01\x85\xb8\xd4\x79\x6e\x62\x5b\xc9\x57\ \x99\x2d\x80\x30\x81\xf3\xef\xf5\xaa\xa6\xf3\xa6\xa2\xdb\x52\xe3\ \x51\xa0\x82\x86\xc3\x69\xf1\xc8\x1b\x54\x95\x03\xfb\x20\x7b\x93\ \x8e\x0e\x31\xeb\x93\x56\x4e\xb2\xeb\x66\x96\xfd\x64\xe4\x0d\x11\ \xa6\xae\x1a\xe6\xe4\xae\x10\xa6\x5b\x53\x51\x73\x93\x92\x9e\x0a\ \xdc\xfa\x80\x07\xcd\x56\xda\x9a\x47\x5c\x75\x5a\xcb\xb2\x20\xc4\ \xd3\xb1\x54\x42\x44\x3b\x7b\x68\x43\x89\xc7\x6c\xf2\xa7\x01\xe7\ \xd4\x8f\xa5\x27\x84\xe3\xab\x69\x78\x9d\x18\xe2\x22\xe2\xa2\xe0\ \xdf\xaf\x91\x00\x4d\xd6\x7e\x95\xbb\xae\x65\x86\x6a\xad\xab\x25\ \x47\xec\xce\x85\x2d\x97\x92\x48\xf2\xa9\x38\xc0\x3e\xb9\xf8\xe2\ \xac\xad\x17\xd6\x70\x63\xa8\xca\x97\x1a\x0a\x59\x29\x21\x97\xdf\ \xc2\x82\xbd\x52\x09\xfb\xc8\xf9\xef\xfe\x30\xe1\xd1\x4d\x5b\x31\ \xc3\x22\xe5\x32\x03\x2a\x51\xca\x97\x36\x7e\xe5\xe7\xe4\x24\x13\ \x4d\xd7\x6e\x99\xc2\xb4\x83\xf6\xfd\x5b\xa7\x99\x50\x24\x63\xc1\ \x90\xb1\xc7\xb1\x08\xe6\xaf\x25\x86\xa8\xac\xe5\xaf\x70\x88\xfb\ \x4c\x64\xf2\xc2\xf1\xec\x7a\x9d\x33\x03\xab\x5d\x3d\x9f\x01\x0e\ \x3f\xab\xad\x31\x5f\x48\x01\xc6\xde\x7b\x18\x38\xf4\x20\x1c\xd4\ \x27\xaa\x3a\xdb\x44\x4c\x99\x05\xcb\x76\xa7\xb4\xcf\x57\x8f\xe7\ \x4b\x6e\xe7\xcb\x82\x08\x39\x1d\x8f\x6c\xfc\xd5\x02\xde\x9a\x88\ \xe6\x1b\x85\x7f\xd2\xb3\xca\xd5\x81\xb5\xe5\x34\xbf\xa6\x1c\x48\ \xa5\x12\xf4\x5b\xb1\x54\x10\xf2\xa2\x30\xe9\x4e\x76\x3c\xd2\xdb\ \x03\xe8\xbc\x14\xfe\x39\xab\xc7\x07\x4e\x6f\xde\x66\x7f\x68\x9c\ \x75\xd1\x5f\xc7\x99\x2f\xe9\xee\xa9\x66\xc1\xd4\x86\x1c\x72\x73\ \x02\x33\xf9\x61\xe7\x3c\x51\x82\x41\xf2\xab\xfc\x3f\x1a\xee\x1d\ \x01\xa8\x63\xce\x82\xd2\x9a\x90\xd3\xc9\x20\x79\x9b\x58\x50\xfc\ \xc5\x7c\xd5\x99\x62\x79\xb5\x3e\x9f\x0c\x78\x91\xd0\x97\x57\xb5\ \x5b\xb0\x82\x42\x42\x81\x1e\x9b\x88\x1f\x88\xab\x07\xf4\x69\x9d\ \x76\x67\x5f\xc8\x86\x8b\xbc\xf8\xd1\xd5\x05\xc5\xac\x32\xfa\x93\ \x9c\x14\xe3\xf8\xd6\xa7\x18\xc1\xe7\x83\xd0\xe6\xe2\x61\x38\xa7\ \x37\xc8\xfa\x4e\xc3\x81\x69\x04\x73\x5b\x6a\x9c\xd3\x91\xe5\x49\ \x8c\x8c\xea\x5b\xf8\x3f\x13\x8f\xf9\x54\xda\x0e\x9e\x5b\xd1\xd2\ \xe2\xb5\x0e\xa2\xce\x39\xc4\xdf\x5f\xca\xb7\xca\x8b\x8c\x54\xbb\ \x4c\x14\xf1\x3c\x47\x64\x89\x6d\x15\x54\xdd\xed\x57\x25\x5c\xd6\ \xc4\x2d\x4d\xa9\x0e\x0f\x00\x4f\x56\x0f\xe5\x4a\x22\xe9\x1b\xf3\ \xa8\x0a\x5e\xaa\xd4\x88\x2a\xec\x3f\x58\xab\xfc\xa9\x8f\x0a\xd2\ \xbb\x65\x16\x32\xee\xca\x2d\x96\x75\x15\x59\x4b\xd2\x17\xe6\xdb\ \xcb\x5a\xbb\x51\x9e\x7d\x6e\x0a\xed\x45\x0b\x0a\xde\xd2\x40\xf1\ \x8d\x6f\x06\x38\x5c\xae\x0c\x6a\x6d\x6e\xbb\x0a\x9c\x3f\xab\xed\ \x8a\x49\x90\x9c\xe0\x3c\xf7\x70\x9f\xa0\xff\x00\x3a\x70\xea\x0d\ \xae\x1c\xcb\x0a\xc3\xcd\xa5\x28\x64\x0c\x01\xc6\x38\xff\x00\xca\ \xa0\x7d\x38\x75\x4e\xbb\xfa\xc7\x0a\x2f\x4d\x92\xe3\xab\x23\xb9\ \xca\x8f\xf9\x54\xff\x00\xa8\x72\x54\xce\x9b\x75\x29\x04\xad\xc1\ \x80\x07\xae\x69\xd1\xa5\xc3\x9c\x2d\xcc\x44\x6a\xf1\x69\xcd\xcb\ \xd7\x61\x4d\x4a\xb9\x94\xb1\xf6\x68\x00\x25\xb1\x91\x90\x3b\xff\ \x00\xae\x29\xad\xc4\xb8\xf8\x52\x54\xf2\x89\x58\xed\x9e\xd5\x25\ \xb0\xe8\xc9\xd3\x50\x1d\x92\x4b\x49\x56\x49\x1d\x8d\x49\x5a\xd0\ \x30\x83\x61\x2a\x52\xc3\x87\x80\x73\xeb\xdf\xfc\x6b\x7b\x92\x5b\ \x98\xd4\x5b\xd8\xae\x2d\xd1\x56\xca\xd0\x5a\xc1\x5e\xf1\x91\xeb\ \xf3\x57\x93\x13\x1c\x85\xa5\x5a\x0f\x0f\xda\x94\x0e\xff\x00\xe3\ \x51\x3b\x46\x95\x8b\x6c\xbb\x89\x13\x1c\x2b\x6c\x72\x02\xbb\x8a\ \x76\xba\xca\x55\xc2\x50\x66\x33\x79\x69\x3c\x24\x01\xc7\xa1\xaa\ \x4e\x39\xda\x5c\x8b\xc2\x4e\x09\xbe\x7b\x09\x6d\xb1\x5c\x9d\x39\ \x29\x09\x27\x72\xc1\x51\x1d\xbf\xd7\x61\x53\x67\x9c\x6e\x14\x14\ \x30\xd8\x19\x09\xc7\xe5\xcd\x23\xb3\x47\x6a\xd9\x10\x3a\xf7\x2e\ \xa8\x6e\x38\xa6\xdd\x43\x73\x11\xd9\x5b\xce\x2b\xce\x7e\xe8\x3f\ \xeb\xe9\x48\x95\xea\xce\xdc\x90\xf8\x7e\xcc\x2f\xcd\x91\xcd\x67\ \x3b\x9f\xb3\x36\xac\x2b\x39\x5e\x2a\x22\x8b\x72\x9e\x06\x4e\x00\ \x09\x38\xa5\xcf\xac\xbc\xa5\xbe\xbc\x92\xbe\xc0\x0e\xde\xd4\xe7\ \x69\x0d\xa2\xd8\xa6\xca\x48\x52\xff\x00\xb5\x5a\xd1\x91\xea\x6b\ \xd3\xb3\x4c\x39\x6d\xef\x50\xf0\xd5\x81\x92\x7b\xfc\xd5\x9b\x68\ \x98\x14\x03\x2a\xe5\x04\x00\x2a\xa3\x42\x36\xad\x6d\xf2\x36\x92\ \x47\xc5\x4a\xf4\xa5\xd4\x2b\x11\x9c\xfb\xc3\xee\x92\x3b\x0a\x55\ \x6a\x6a\x71\xb0\xda\x35\x1c\x25\x71\xfb\x51\xdb\x8b\x2f\x2a\x53\ \x5f\x71\x5f\x7b\x15\xb3\x4d\x4c\xd8\x55\x15\x67\x85\x0c\x27\x26\ \x9c\x58\x7d\x32\x1a\x2c\x48\x39\x49\x1c\x1a\x61\xb9\x40\x72\x04\ \x8f\x19\xbc\xa9\xb1\xca\x7e\x94\x98\x3c\xf1\xe1\xcf\x71\xd3\x59\ \x25\xc4\x86\xc4\x7f\x54\x41\x72\x2d\xc1\xd5\x3a\x83\xb1\x67\x8c\ \xfe\x54\xdf\x15\x95\xa8\x61\xb6\x54\x46\x78\xe2\xa6\xaa\x90\xcd\ \xdf\xc3\x62\x42\x02\xd4\x93\xdc\x8a\x76\x8f\x06\x2b\x0d\x84\x86\ \x86\x3b\x76\xa6\xba\xb9\x12\xcc\xb5\x14\xa9\x67\x6d\xc5\xe8\x57\ \x2e\x27\x0a\x2a\xd8\xa6\xd5\xee\x46\x31\x53\x2e\x9d\xba\x56\xcb\ \x9b\xc8\x52\x87\xaf\xad\x3a\x49\xb7\x45\x90\x8c\x29\xa4\x80\x07\ \xa0\xa4\x76\x9b\x69\xb5\x4f\x53\x8c\x92\x50\xaf\x4c\xd2\xea\x55\ \x8d\x48\x35\xcc\x6d\x3a\x52\xa7\x35\x2e\x43\x9d\xfe\x42\xdb\x65\ \x2d\x20\x94\x95\x1f\x6a\x65\x53\x45\x63\x0a\x51\x27\xd4\x9f\x6a\ \x77\xbe\xa3\xc7\x61\x0e\xa3\x38\x4f\x71\x8a\x68\x79\xd0\xd4\x72\ \xe6\x4f\x94\x55\x70\xfa\x41\x58\x9c\x46\xb3\x77\x19\xef\x69\xd8\ \x50\xd0\x18\x4e\x79\xad\x0b\x18\x40\x4f\x6a\xf2\x53\xee\x4a\x90\ \x83\xb3\xcb\xef\x5b\x1e\x42\x8a\x02\xb9\xad\x88\xc6\xcd\x24\x61\ \xf6\xdc\xc1\x27\x38\xa5\x57\xa7\x52\x88\xa4\x9e\x4e\x31\x9a\xd0\ \xa6\x96\xe2\x40\x1c\x1e\x79\xf6\xa6\x9b\xcc\x97\x50\xd3\x8d\xad\ \x5b\x86\x3f\x2a\x3b\xc1\x1c\xc9\xfa\x59\x5c\x40\xb7\xc0\x88\x92\ \x37\x39\x21\xc7\x0f\xd1\x29\x03\xfc\x4d\x73\xf5\xa6\x73\xd6\xc7\ \x94\xbf\x05\xb9\x0c\xba\x8d\xae\x32\xe8\x3b\x56\x3d\xc1\x07\x29\ \x50\xee\x14\x39\x1f\x98\x36\xb7\xe9\x44\xfa\xdf\xd4\x90\x93\xce\ \x13\x18\xe3\x27\x8e\x56\xac\xff\x00\x85\x56\xf6\x6b\x63\x73\x90\ \xe9\x5b\xa1\x88\x8c\x00\x5e\x90\xae\x71\xf0\x91\xea\x49\xc0\x03\ \xdc\xd7\x9f\xad\x34\xdb\x6c\xee\xe0\xe2\xd5\x35\x61\xa9\x48\x53\ \xee\x2d\x6d\x78\xcb\x27\x24\xf8\x87\x25\x23\xdc\xab\xfc\x6b\xa0\ \xbf\x47\x6e\x9b\x08\x52\x60\x5f\xaf\xe9\x30\xe6\x4d\x4f\x8f\x6a\ \x74\x29\x0e\x61\xb0\x33\xb9\x23\x90\x95\xe7\xbe\x79\x03\x18\x1d\ \xea\x98\xb2\xfd\x9e\xe7\xa9\x20\xdb\x62\xb1\xe0\x41\x5c\x96\xfc\ \x64\xf7\x51\x40\x50\xce\x4f\xa9\xc6\x4e\x3d\xea\xea\x8f\xac\xda\ \xd1\x70\x0e\x54\x1e\x66\x14\x99\x0a\xb3\xb6\x71\x95\x87\x37\x24\ \x10\x3b\x8c\xa4\x83\xed\xd8\xf1\x58\x31\x75\x5a\xb4\x17\x33\xa3\ \x87\xa4\x9a\x73\xec\x1b\x3a\xfb\x0d\x85\xd8\xde\x8e\x2e\x6f\xcd\ \xb9\xc8\x9e\x97\x59\x65\xc0\x54\xea\x90\xda\x56\x16\xa3\x8c\x01\ \x9d\xd9\xc6\x2b\xa6\x3a\x57\x32\x72\x3f\x46\x3d\x11\x2e\xdb\x2b\ \x6d\xc9\xf8\x0d\xc2\x88\xe1\x20\x21\x95\x6e\x50\x53\x87\x3c\x1d\ \x88\x42\x95\x8f\x52\x90\x3d\x6b\x8a\x65\x5d\xa6\x4e\xb9\xbb\x73\ \x9c\xf1\x7a\x5b\xe7\xce\xbc\xf0\x91\xe8\x84\x7c\x0f\x7f\x53\xcd\ \x5e\x5f\xa2\x9e\xb9\xd4\x72\xaf\xb6\xde\x96\x48\x98\xda\xac\x66\ \x3d\xc1\xdb\x7b\x65\xa1\xe2\xb6\xe2\x99\x70\x86\xf7\x7a\xa4\x6e\ \x71\x40\x77\xe7\xd8\x0a\xa6\x0d\x3a\x34\xf8\x6f\x7f\xa9\xb3\x15\ \x85\x75\x12\xaa\xbe\x3e\x08\x8d\xeb\x4b\xf5\xe7\x51\xea\x65\x68\ \xab\x5c\xe9\x6b\xb4\xdb\x1d\x52\x56\x95\xbe\xa5\x97\x17\xb8\x95\ \x12\xa3\xfd\xe5\x12\x71\x8e\x49\xf8\xae\xa0\xfd\x16\xf4\x6c\x3d\ \x2d\xa6\xee\xa2\x3c\xc7\x25\x7d\xbd\xd6\x9c\x74\xab\x18\xdc\x94\ \x91\xc1\xc7\xb1\x19\x19\x3d\xbe\x6a\xa7\xe8\xc6\x86\x5c\x7b\xc5\ \xd2\xe7\x75\x28\x56\xfb\x83\xaa\x69\x18\xc1\x27\x71\xe4\xfb\xd7\ \x46\x58\xa5\xb7\x6c\x6d\xdd\x8c\xa5\x48\x59\x05\x5b\x4e\xdc\x60\ \x55\xa8\x54\xd5\xf6\x15\xc6\xc5\x65\xca\xb7\x26\x21\x09\x00\x24\ \x0c\x01\xd8\x0a\x61\xd7\x36\xbf\xd6\x76\x25\xc7\x0f\x25\x94\xa5\ \x5b\xca\x89\xf5\xec\x3f\x9d\x2d\xb5\xde\xed\xd7\x01\xfe\xcf\x21\ \x25\x49\x4e\x54\x92\x7e\xef\xbf\x34\xcb\xad\xf5\x7e\x9b\xb4\x5a\ \xc8\x9f\x72\x88\x43\x8e\x04\x14\x07\x02\x94\x38\x27\x38\x1f\x4a\ \xd9\x2b\x38\x9c\xc8\x29\x46\x6a\xcb\x52\xab\xba\xe8\x70\xb0\xb5\ \x26\x7b\x4e\x10\x09\x03\x38\x22\xa3\xb2\xad\xf7\xdb\x36\xf4\xb5\ \x39\xd4\xb2\xa1\x85\xb4\xe8\xf1\x59\x58\xf6\x29\x3c\x54\x86\x67\ \x51\x34\xa4\x97\x1e\x16\xf9\xc9\x71\x0d\xed\x4a\xd6\xb6\x54\x13\ \xb8\x8e\xd9\xc5\x37\xa2\xe8\xc4\xf5\xb6\x94\x2f\xf6\x4e\x61\x4d\ \xba\x9f\x32\x01\xf6\xcf\x6a\xe0\xe2\x28\xc2\x2f\xaa\xf5\x3d\x3e\ \x1a\xad\x67\x1e\xba\xba\xef\x43\x0c\x0b\x2d\xa9\x3a\x8a\x35\xfa\ \xee\xd3\x4e\xda\x0b\x6e\xc3\x9f\x1f\x68\x71\xb6\xdb\x75\xb5\x23\ \xc4\x52\x8f\x2a\x61\x0a\xd8\xa2\x95\x65\x48\xfb\xc0\xe1\x26\x90\ \xf5\x0b\xa3\x5a\x83\x4f\x6b\xbd\x29\x2f\x4a\x5b\x2d\x57\x18\xc6\ \xdb\x1a\x1b\xac\x6d\x42\x19\x93\x21\xa5\x2c\x6e\x52\x0e\x12\x41\ \x6f\xc3\xca\x8f\x72\x3d\xcd\x3b\x5f\x18\x91\x15\xf4\xcc\x8c\xd9\ \x4a\xe3\xbc\x8f\xb5\x33\xb7\xc8\xfb\x64\xf9\x92\xa1\xd8\x82\x32\ \x3f\x1a\x84\xcc\xb5\x6a\x4b\xe7\x56\x1b\xd1\xb6\xdd\x47\x31\xb8\ \x3a\x6e\x28\x85\x05\xd7\xdd\x50\x54\x44\x8c\x2d\x4d\x82\x0f\xed\ \x0a\x72\x90\x14\x79\xda\x84\x03\xda\x9f\x43\x13\xc1\xa4\xe3\x6d\ \x79\x11\x53\x09\x2a\xf5\xd4\xd4\xec\xac\xef\x7e\x49\x78\x6b\xcc\ \xd7\xfa\x58\x68\x7b\xdc\x58\x2c\x6a\x99\x76\x0b\x0e\x98\x43\x6d\ \xa5\xb5\xb5\x6c\x94\xa4\x07\x15\x9e\x49\x09\x01\x24\xd5\x27\x63\ \x96\x2d\xa1\x6b\xbe\x59\xbf\x58\x21\x6c\xe5\xa5\x4b\x74\xb8\xda\ \x37\x00\x42\xf0\x49\x1d\xb2\x41\xae\xc0\x99\xd3\x5b\xc5\xe6\xd4\ \x22\xea\x0e\xa8\x6a\x8b\x8b\x4a\x00\xa9\x95\x29\x2a\x68\xe3\xdc\ \x2b\x39\xfa\xd4\x1f\x48\xf4\xbe\xd5\x77\xd6\x97\x3e\x9e\xdd\xe7\ \x06\x95\x11\xd6\x2e\x4c\xc8\x6e\x30\x59\xb8\x42\x42\x90\x57\x1d\ \x63\x38\x41\x0a\xd8\x42\x87\x23\x72\xc7\x20\xe0\x68\x86\x2a\x4e\ \x69\x49\x68\xfc\x0c\xfe\xcf\x08\x53\x94\xa3\x52\xed\x6f\x64\xf6\ \xbe\xfa\x92\x3f\xd1\xe3\x47\xdc\xa5\xf4\x65\x77\x99\xb0\x15\x6f\ \xfb\x52\xde\x75\x95\x38\x80\x93\x21\x92\xac\xb6\xbc\x0c\x28\x8c\ \x64\x61\x5c\x60\x0c\x0e\x73\x49\x05\x92\xfb\x36\x49\x65\x0f\xab\ \xc3\xf4\x4b\x63\x6a\x53\xf8\x0e\xd5\xd2\x5a\xa9\x0d\x33\xa5\xa5\ \xc5\x8e\x03\x09\x43\x29\x69\x09\x6d\x20\x04\x0e\x00\x00\x76\x03\ \x15\x54\xbd\x74\xb2\x59\xa3\x78\x77\x3b\xa4\x58\x61\x47\xfe\x19\ \xc0\xd0\x24\x9f\xae\x7b\xd5\x71\x58\x58\x3b\x5f\xe2\x27\x05\x8d\ \xa9\x79\x49\x2b\xf6\x11\x46\xfa\x71\x31\xe4\x95\xc9\x96\x1a\x3e\ \x98\x19\x22\x91\x5d\x3a\x57\x1a\x4c\x55\xb0\xb7\x83\x83\x9c\xee\ \x4f\x04\xff\x00\x85\x4a\x5c\xd4\x76\x69\x33\x95\x12\xdd\x77\x80\ \xf3\xa1\x39\x29\x6a\x58\x0b\x4e\x31\xdc\x13\xf3\x5b\x58\xbd\x2e\ \x3a\x83\x72\x81\x2d\x93\x8f\x10\x8e\x47\xf9\x8a\xe7\xba\x34\xe0\ \xce\x97\xb5\xe2\x9a\xbd\xfc\x8e\x4b\xea\x97\x4a\x2e\x3a\x6a\x73\ \x92\x23\xa3\xed\x76\xe2\x3c\x4c\x8e\x16\x9c\xf7\xc8\x3e\xdc\x57\ \xba\x6e\xf0\xd4\xbd\x37\x0d\x32\x5e\x54\x79\x70\x52\xa6\x16\xe8\ \x51\x04\x24\x0f\x22\xbe\xa3\x20\x11\xf1\x5d\x77\x7c\x81\x0e\xed\ \x05\x71\xdd\x69\x0e\xb6\xb6\x94\x9d\x8b\x19\x05\x24\x60\xe3\xda\ \xb8\xb3\x5f\xe9\xa7\xb4\xd5\xce\xe5\x6e\x6d\x2e\x06\xdb\x7c\xa9\ \x0a\x27\x3b\x90\xac\x81\xf9\x1c\x8a\xd9\x4e\xac\xa7\x68\x37\xe0\ \xcc\x55\x14\x35\xaa\xa3\xe2\xbe\xa6\xfb\xab\xea\xbf\xd9\xa5\xdd\ \x1b\x43\x3f\x6c\x84\xe8\x66\x61\x61\x21\x28\x77\x23\x87\x00\x1d\ \xb3\x8c\x11\xee\x33\xeb\x4a\xba\x04\x89\x1f\xd3\x49\xd7\x16\xdb\ \x26\x3b\x50\xcb\x4a\x5f\xa6\xf5\xa8\x6d\x4f\xd4\xe0\x9f\xc2\x99\ \xfa\x7a\x5e\x8b\xd3\xfd\x71\x74\x4a\x72\x98\xa9\x83\x82\x7f\xb4\ \xb7\x4a\x71\xf9\x13\x56\x1f\x46\x6d\x42\x1c\x38\xf6\xc4\xba\x16\ \xea\xdc\xfb\x44\x8c\x0e\x02\x88\x18\x4f\xe0\x38\xfc\xeb\xaa\xe3\ \x9d\x46\x9c\x77\xd8\xe0\x62\x6b\x7e\xcb\x4f\x99\xd4\xba\x11\x25\ \x70\x9a\x4e\x15\x92\x3f\x21\x56\xac\x73\xe0\xb0\x1a\x47\x27\x18\ \xc8\x1d\x8d\x57\xfa\x0e\x29\x65\x86\xdc\x20\xef\x03\x81\x8a\x9f\ \xb4\x76\x37\xe6\xc2\x94\x7f\x2f\xf5\xcd\x75\x6b\xac\xa9\x43\xb0\ \xe6\x61\xa3\x65\x70\x62\x23\x4d\x2c\xac\x20\x15\x9e\xe7\xde\xb7\ \x6e\x09\xe0\xa8\x8f\x72\x38\x34\x21\xb5\x93\xca\x8a\x53\xc0\x3c\ \xf7\xac\x43\x49\xff\x00\xe3\x27\x20\x7d\x78\xfa\x56\x56\xef\xbb\ \x34\xa5\x6d\x90\x3a\xe0\x4a\x15\xb8\xe0\x7a\xfb\x7f\xae\x68\xa4\ \xf2\xad\xcb\x7f\x1f\xed\x07\x60\x3e\x64\x83\x9c\xd1\x4d\x87\x0e\ \xda\xb1\x72\xe2\x5f\x44\x56\xfd\x21\x60\x0d\x3f\x12\x6b\x87\x09\ \x41\x70\x72\x7f\xbe\xaa\x98\xbb\xba\x6a\xca\xdc\xc9\x40\xe5\x29\ \xcf\x06\xa3\x5d\x3b\x4a\x53\xa2\xe0\x60\x60\x23\x7f\xfd\xe2\xb9\ \xa9\x4b\x4c\xbc\xf2\xb3\xbb\xc3\x6c\x1c\x12\x7b\x62\xb6\x3b\x25\ \x73\x9f\x4a\xf9\x54\x4c\x00\x6d\xa1\xb4\x14\xe4\x7b\x56\xc4\xb8\ \xca\x52\xb5\x78\x89\x48\xf9\xf4\xef\x58\xba\xab\x5b\x3e\x47\x56\ \x16\x73\xcf\x9b\x9a\xcc\x2e\xcd\x27\x0d\x85\x6d\xdc\x31\x9f\x8f\ \x6f\xa5\x55\xbe\xe6\x35\x2b\x73\x47\x3f\xdf\x2f\xba\x9a\xe5\xa5\ \xee\x1a\x3e\xdb\x74\x94\xe5\xfc\x6a\x39\x10\x23\x48\xf1\x0a\x9e\ \x0d\x23\x32\x12\xac\xe7\x3f\xd5\x8d\xbf\xc2\x9f\xed\x17\xa9\xf7\ \x58\xd6\xb9\xb6\xe7\xca\x83\x7a\x45\xcb\x94\xa6\x84\x85\x32\x1d\ \x79\xdd\xa8\x40\x52\x92\x09\x49\x4e\xc7\xc8\x20\x1e\x45\x49\x2d\ \xfd\x38\x99\x69\xea\xdc\xdd\x67\x1a\x43\x0e\x5a\x5d\x8f\x96\x58\ \x49\x3e\x22\x64\x94\x21\xb5\x38\x46\x31\x8d\x88\xc7\x04\x9c\xa8\ \xf6\xa4\x3a\x33\x47\x3f\xa4\x2d\x3a\xb1\x13\x27\xc5\x7c\xdc\x96\ \xeb\x76\xed\xaa\x51\xf0\x62\xe5\xc5\x36\x85\xe4\x0c\x10\xa7\x57\ \xc0\xce\x3d\x0f\xa0\xa5\xdc\x95\xa3\xb1\x9b\x87\x38\xbe\xb7\xae\ \xc1\x95\xbd\x69\xa8\xdb\x47\x4d\xdb\xb6\x18\xff\x00\x64\xba\x5a\ \x9d\x79\x6d\xce\x98\xb7\x1c\x5a\x9a\x69\x38\x0e\x39\xb0\x93\x8d\ \xe0\x82\x39\x27\x39\x00\x0e\x61\xb2\xf5\x5d\xe6\x05\xd7\x5b\xdd\ \x84\x34\xce\xb7\x42\xba\xf8\x8e\x07\x25\xa9\x2b\x4a\x0a\x11\x94\ \xb6\x9d\xa4\x70\x39\xe4\xa7\xbd\x3a\x3f\x61\xbf\x22\x3e\x8a\xfb\ \x33\x96\xf7\x9f\xd3\x90\x9d\x8a\xe2\x16\xf2\x90\x87\x7c\x46\xd0\ \x82\x52\xa0\x82\x78\x28\xcf\x23\x9c\xfa\x56\x8b\x86\x90\xb8\xbd\ \x61\xd6\x70\x92\xf4\x30\xed\xee\x41\x72\x31\x52\xd4\x12\x94\xec\ \x4a\x70\xbf\x2f\x07\x29\x3d\xb3\x4c\x8c\x24\x97\xae\xc2\x8d\xc9\ \xef\xeb\x41\xcb\xa8\xd7\xd7\xec\x3a\x1a\xe1\x7a\x84\x41\x75\xa6\ \x92\x59\x2a\x19\x00\xad\x49\x4a\x4e\x3d\x70\x54\x0d\x44\xe3\x5d\ \x35\x0e\x97\xb9\x68\x89\x52\x35\x04\xeb\x9b\x3a\x87\x6b\x33\x58\ \x94\xa0\xa4\x05\xac\x23\x6a\x9b\xc0\x1b\x70\x57\x8f\xc3\xe4\xd4\ \xfe\x7e\x98\x46\xa4\xd2\x52\xec\x73\x0e\xc4\x48\x60\x34\x1d\x48\ \xce\xc5\x8c\x14\xab\x07\x19\xc1\x00\xd4\x2f\x4e\x58\xaf\xb7\x3e\ \xa0\x59\x74\xf6\xac\x09\x61\x3a\x45\xa0\xb8\x65\xa8\xee\x6d\xb8\ \x60\x24\x25\xcf\x10\x8d\xa3\x6e\xd4\x64\x67\x39\x07\xe7\x17\xa9\ \x7c\xc8\xac\xaf\x71\x4f\x4f\xef\xba\xa6\xef\xaf\x75\x2b\x37\x18\ \xf1\xcc\x28\xb2\x92\xc3\x89\x4b\xe4\xfd\x98\x84\xa8\x00\x81\xb4\ \x6e\x0a\x29\xc9\x27\x1f\x8d\x59\x8c\x82\x95\xa5\xc4\x2b\x6a\x87\ \x62\x3b\xe6\xa0\xee\x69\xcd\x51\xa3\x2e\x9a\xc2\xff\x00\x09\x16\ \xdb\x84\x1b\x8a\x97\x35\xa6\x80\x71\x52\x7c\x40\x95\xec\x40\x40\ \x4e\x08\x2b\x50\x04\xee\xed\x9a\x99\x5a\x8c\xb3\x6e\x8e\x67\xa5\ \x91\x37\xc3\x4f\x8f\xe1\x83\xb7\xc4\xc7\x9b\x6f\x27\x8c\xe7\x1c\ \xf6\xab\x53\xbd\xac\xcb\x47\xbc\x99\xd8\x6e\xc8\x79\x09\x61\xe5\ \x10\xbf\x42\x4e\x29\xfd\x2b\x56\xd2\xd3\xa9\xde\x83\xc6\x48\xcd\ \x56\xf8\x50\x21\xc4\x1c\x28\x76\x23\xde\xa4\x96\x3b\xe8\x4a\x43\ \x32\xf0\x3e\x73\x55\xa9\x4e\xfa\xa3\x4d\x2a\xb6\xd1\x8e\x32\xed\ \xea\x61\xe1\x32\x22\xfc\xa0\xf2\x8a\x72\x83\x29\xc7\xdb\x1f\xb1\ \x50\x3d\x8d\x7b\x09\xb4\x3c\xbf\xb4\x13\x86\x87\xf1\xac\xdf\x9e\ \x84\x1d\xb1\xda\xcf\xb9\x22\xb3\xca\x4e\x5d\x5b\x5d\x8f\x8c\x54\ \x7a\xd7\xb2\x36\x82\xfe\x3f\xab\x20\x63\x27\x9a\xf5\x2e\x0c\xf9\ \xd2\x47\x38\xe4\x77\xa4\xc9\x9f\x28\x63\x81\x8e\xe2\x94\x37\x35\ \x0b\x3b\x1f\x40\x4e\x7d\xa9\x6e\x12\x5c\x86\xc6\x71\x7c\xcc\xbe\ \xe8\x28\xee\xd9\x14\xc9\x77\x88\xa4\x36\xb4\xe3\xca\xae\x45\x3f\ \xa9\xb1\x8d\xc8\x39\x42\xbb\xd6\x97\x9a\x0e\xb6\x52\x7b\x7a\x1a\ \x9a\x55\x32\xbb\x91\x56\x9e\x65\x62\x17\x1c\x60\xec\x38\xe0\xf2\ \x2b\x39\x19\x28\x1c\x1c\x7a\xfd\x6b\x74\xe8\xeb\x8d\x28\xfb\x13\ \xcd\x60\xf1\xc2\x32\x3f\x1f\x5a\xe8\xa7\x73\x9a\xd5\xb7\x35\xa0\ \xed\x6f\x3f\x1c\xd4\x77\x50\x24\xad\x97\x5c\x23\x93\xc0\xa7\xf1\ \x92\x03\x60\xf7\xf5\xa6\xad\x54\x90\xcd\xb9\x7e\xe5\x3c\x50\xf6\ \x64\xa3\x8d\x3f\x49\x30\x1c\xd4\xb0\x18\x42\x16\xe3\x82\x39\xc2\ \x10\x92\x4a\xcf\x88\xac\x0f\xe1\x55\x94\xa7\xd4\xd4\x44\x32\xe2\ \x42\x4a\xb9\x5a\x7b\x04\x01\xd8\x11\xfd\xae\xff\x00\x9d\x74\x2d\ \xfa\xe4\xc4\x3d\x64\xe5\xc5\xc6\xf2\xeb\x08\x2c\x32\x52\x8d\xca\ \x5e\x4e\x54\x33\xe8\x32\xa2\x3f\x0a\xa0\xb5\x5d\xbd\xe6\xb5\x7d\ \xc5\x97\x12\xa4\x07\x5f\x53\xa0\x3c\xad\xa7\x0a\x39\xef\xeb\x5e\ \x62\x75\x22\xeb\x64\x7c\xb5\x3d\x56\x1f\x09\x51\x60\xa3\x59\x2d\ \x1b\xb0\x97\x4b\xcb\x89\x12\xea\x87\xa4\x3e\xeb\x21\x2b\xc8\x53\ \x68\xdc\x48\xef\x8f\xe1\x8f\xc6\x94\x6a\x0b\x85\xc2\xfd\x7d\x12\ \x9e\x6c\xa1\x2b\x59\x6a\x33\x09\x1c\x34\x80\x78\x48\xfc\xf9\xa4\ \xac\x3a\x98\x58\x79\xa6\xd0\xa5\xe7\x8f\x2e\x46\x01\xed\xfc\xb9\ \xa7\xbd\x06\xf2\x1e\xd5\x11\x64\xc8\x61\x0f\x20\x2d\x3e\x22\x4e\ \x01\x27\x3e\x80\xf7\x27\x8e\x6a\x2a\x5a\x37\xa9\x6d\x91\x34\x13\ \x9c\xa3\x45\xbd\xd9\x67\x68\x3e\x90\x5e\x6e\x2d\x25\xe9\xcb\x6e\ \x22\x31\xc8\x57\x2a\xc9\xf8\xa9\x2e\x9e\xd1\xd7\x3d\x0b\xd4\xcb\ \x05\xe2\x2a\x54\xe1\x83\x29\x32\x32\x84\x90\x56\x8c\xe1\x69\xe3\ \xdd\x24\x8f\xc6\xae\xbd\x32\x23\xc8\x8e\xdb\xf1\xdb\x09\x65\x4d\ \x20\x84\xed\xc7\xd3\x3f\x38\xc5\x48\x92\xc3\x2e\x29\x0b\x2d\x24\ \xa8\xfa\x91\xda\xb8\xb2\x73\x9e\xaa\x5a\x9e\x87\xda\xb2\x75\x32\ \xac\xa6\xf9\x16\xf8\xf6\xeb\x9b\xab\xb7\x80\x63\xcb\xfd\xb3\x2a\ \x07\x82\x95\x0c\x8c\x7e\x1f\xc8\xd6\x77\x99\x0e\x46\xb7\x9f\x0d\ \x0a\x5a\x82\x09\x01\x3f\xda\xc7\x15\xe4\x09\xad\xf8\x5f\xab\xdd\ \x5a\x43\x8d\xa8\xfd\x9d\x4a\xfd\xd5\x13\xf7\x0f\xb0\x3d\xc7\xb1\ \xfa\xd6\x6d\x07\x1d\x0b\x0a\x18\x20\xe0\x83\x91\x83\x5a\x93\x4e\ \xed\x73\x39\x96\x69\xd9\xf2\x2b\x0d\x27\x76\xd5\xa6\xfb\x2d\x57\ \x48\xce\x08\x01\xb2\xd9\x65\x95\xe0\x0c\x9e\x54\x7d\xc5\x45\xe7\ \xd9\xf5\x4b\x17\xdb\x4c\xd8\xa7\xec\x51\x04\xe7\x4c\x87\xde\x88\ \xdc\x96\xdc\x6d\x69\x52\x53\xfb\x25\xf0\x48\xc8\xc0\xf7\xed\xcd\ \x5e\x82\xce\x7e\xfb\x6f\x23\xcd\x83\x85\x0c\xd2\xf4\xb0\xea\xdb\ \x6d\x0f\x36\xcb\xa9\x69\x61\xc4\x05\x73\xc8\xec\x69\xb4\xaa\x4e\ \x2a\xcc\x2b\xf0\xaa\x3b\xda\xd7\x2a\x1e\x8d\x88\xda\x56\xe5\x71\ \x55\xde\x35\xcd\xf5\xa6\x30\x8c\xf2\xcc\x72\x95\x48\x58\x39\x49\ \x2d\xe7\x09\xf2\x9c\xfe\x34\xa9\x56\x07\x5f\xb8\x22\x56\x93\xb3\ \xbf\x6a\x52\xe4\x91\x21\x0e\xa4\x04\x16\xfb\xe5\x48\xce\xd3\x93\ \xed\x83\x56\x94\xf8\xab\x7a\x42\x9e\x52\x1a\x4a\x94\x30\xac\x27\ \x71\x38\xed\xf1\x49\xd7\x19\x49\x00\x90\xbc\x11\xc9\xc7\x35\x59\ \x43\x32\xb4\x86\x50\xae\xa8\xbc\xd4\xd6\xaf\xb7\x61\x8f\xec\x52\ \xe5\xc6\x4c\x29\xae\x32\xfc\xc9\x4a\x43\x6e\x18\xe8\xc2\x01\xf4\ \x48\xcf\x7a\x8f\xc7\xb0\xb3\x0f\x5f\xfe\xbf\x62\x7c\x49\x6b\xbb\ \x4c\x94\xee\xd8\xea\xdf\xb1\x08\xc0\x49\x52\xfb\x67\x6e\xc0\x52\ \x3b\x1a\x96\xea\xeb\x8b\xda\x72\xd0\xd2\xe2\x25\xb3\x7b\xb8\x6e\ \x8d\x69\x64\x9c\x16\xf2\x3c\xf2\x55\xec\x94\x27\x24\x13\xeb\x50\ \xfe\x9d\xe9\xb6\x2c\x82\x52\x63\x2d\x4e\x30\xdb\xa5\x0d\x28\xaf\ \x20\x13\x82\xb5\x01\xe8\x54\x42\x73\xf4\xae\x7e\x26\xce\xa4\x21\ \x1e\xdb\xfa\xf5\xd8\x6f\xc3\xa9\x2a\x53\xaa\xdd\xae\x9a\xb7\x6f\ \x6f\xc1\x3b\x78\xd9\xf6\x16\x1b\x1b\x8b\x0b\x29\xc0\x29\xc0\xca\ \xbb\x1a\x8d\x4f\xb5\x44\x63\x5a\xc6\xd4\x4e\xba\xb8\xee\x2e\x22\ \xed\x8f\xbc\x85\x11\xb5\xa7\xfc\x89\x59\xc7\xaa\x5d\x2d\xfe\x07\ \xe2\xa4\xb6\xb2\x3c\x32\x97\x00\x27\x04\x63\x39\xa8\xb7\x54\xad\ \xee\x49\xd3\x32\x58\x6d\x6f\x25\x05\x3b\x87\x84\xa2\x95\x12\x08\ \x56\x32\x3d\xf0\x38\xfa\x53\xaa\x36\xa2\xa4\xb9\x6a\x64\xa4\xaf\ \x3c\x97\xb2\x7a\x7c\x19\xe3\xb2\xaf\x4f\xcb\x95\x06\x55\xf6\x4c\ \xc8\x29\x29\xd8\xdb\x1c\xa9\xf2\x09\x0a\x25\x44\xe4\x64\x72\x30\ \x33\x9e\xf5\x5c\xf5\x47\x4d\x3f\x70\xbc\x46\x99\xa6\xf4\xb2\xd0\ \x98\x88\x6f\xc3\xfb\x6b\x21\xd6\x54\xe9\x74\x15\xf8\xbc\x95\x94\ \x90\x00\x38\x3c\x8f\x6a\x97\x74\xfa\xf1\x17\x50\xdb\x00\x5a\x9a\ \x4d\xc5\x18\x54\xa4\xa4\xf2\xa5\x1c\xe1\x78\xfe\xf6\x09\xfa\x85\ \x0f\x4a\x98\xc7\x6a\x7b\x44\xa5\x25\x4a\x47\x04\x07\x46\x41\x1f\ \xce\xb4\xc2\xb7\x12\x2a\x48\x5d\x4a\x4e\x8c\x9c\x25\xa5\xbe\x1e\ \xbb\x8e\x5c\x56\x88\x72\x3f\x51\xdd\x93\x7d\xb5\x2d\xdb\x7b\xf7\ \x94\x3e\xa3\x0e\x23\x8c\x30\x96\x14\xa0\x5c\x65\x09\x56\x54\x94\ \x8c\x90\x92\x73\x4f\x7a\xd9\xeb\xd6\x93\xd5\x2e\x39\xa4\x2d\x9a\ \x85\x7a\x51\x21\x29\x31\x27\x28\xbe\x42\x40\x19\x20\x9c\xa8\x0f\ \x5c\x13\xeb\x5d\x19\x2d\xf9\x6b\x65\x49\x93\x14\x28\xab\xb6\x17\ \xbd\x39\x1e\xbc\xf6\xa4\x52\xd0\xf4\xa4\x00\xb6\xf6\x11\x80\x72\ \x8f\x4a\x5d\x66\xe5\xba\x1d\x87\xa9\x1a\x4a\xca\xef\xe3\xf8\x18\ \xf4\x0d\xed\x8d\x43\x62\x8b\x22\x12\xca\xd0\xb4\x0c\xa8\xa4\xa7\ \x8f\x6e\x40\xaa\xcb\xf4\x80\xb0\x07\x6d\xd7\x8b\x82\xda\x0b\x58\ \x65\x0e\x05\x01\xfd\x95\x8e\x3e\xb8\x35\x6b\xdb\x6d\x49\xb2\x3e\ \x57\x10\x84\xb0\xb5\xef\x2d\x60\x00\x14\x7b\xe3\xdb\xe9\x4d\x7d\ \x46\x81\x12\xeb\x66\x97\x0a\x62\x9c\x43\x13\x11\xe1\x1f\x0f\x97\ \x14\xa2\x41\x01\x03\xdc\xe3\xf0\xef\xe9\x59\x5a\xcb\x67\xd8\xc3\ \x32\xce\xf2\xec\xce\x4e\xb7\x28\x5b\xba\x42\xdd\x9d\xe4\x11\x37\ \x54\xdd\xd8\x7c\xa4\xf0\x53\x19\xa2\xa0\x15\x8f\x6d\xc7\x8c\xfa\ \x66\xac\x8e\x85\xc6\x7a\x5c\xb6\x2e\xa9\x21\x4c\xbc\xe2\xf7\x10\ \x73\x80\x14\x40\xcd\x44\xba\x8d\x65\x9b\x7c\xea\x79\xb7\x48\x91\ \x1e\x01\x65\xff\x00\xb2\xc5\x4a\x7e\xe3\x6d\xa5\xbe\x10\x9e\xdd\ \xbd\xcf\x04\xe7\x35\x26\xd1\xa5\x8d\x29\xa8\x60\xda\xad\xf2\x5a\ \x52\x87\xec\x5e\x09\xc9\x0e\x0c\xf3\xcf\x62\x41\xf5\xfc\xab\xb3\ \x43\x19\x08\xce\x32\xed\xd4\xe3\x63\x3a\x3a\xa3\xa0\xe4\xb9\x7f\ \x09\x1d\x81\xa5\xf0\x18\x46\x3b\xfe\xee\x3d\xea\x5c\x85\xa1\x94\ \x03\xc9\x57\xa7\xc7\x15\x5e\xe8\x69\x61\x50\x50\x54\xb0\x5c\xfa\ \x7a\xd4\xe2\x37\x20\x2d\x47\x27\xbe\x2b\xb9\x55\xaa\x8b\x37\x23\ \x87\x46\x5a\x19\xba\xeb\xce\x67\x7a\xb6\x80\x7b\x56\x29\x6f\x1c\ \xee\x51\x56\x3b\xfa\xd6\xd2\x48\x39\xe7\xd8\x57\x80\xf9\xcf\x27\ \x8e\x00\x27\xe6\x97\x7b\x2d\x06\x5a\xef\x53\x04\xb8\xeb\x0a\xde\ \xda\x8a\x87\x6e\x7b\x9a\x2b\x35\xe1\x38\x21\x47\xf0\x1c\x7d\x28\ \xa2\xc9\xee\x89\x4d\xad\x99\x0a\xe9\xb0\x43\x7a\x36\x0b\xef\xe7\ \x62\x7c\x4c\x0f\xff\x00\xa8\xaa\x70\x9b\x35\xe9\x89\x29\x6d\x45\ \xb6\xc0\xe3\x07\xe6\xa3\xda\x15\xd5\xc8\xd2\x90\x5b\xf3\x25\xb6\ \xfc\x4c\x10\x3d\x7c\x45\x7f\x9d\x3f\x21\x29\xc7\x39\x18\xc9\xfa\ \x71\x5b\xa1\x15\x64\xd9\xcd\x53\xea\xa4\x8d\x02\x3a\x41\x05\x47\ \x71\x3d\xf9\xed\x5b\xd4\x84\x1f\x2a\x06\x3e\x7d\xab\x15\x00\x0e\ \xd4\xee\x23\xb8\xad\xa8\x52\x4a\x7b\x67\xd4\x0f\x7e\x3d\xe9\xa5\ \x45\x36\x79\xea\x6a\x40\x8a\xf3\x89\x28\x73\xee\x27\xfd\x77\xa8\ \x86\xb2\x2b\x4d\xd9\x49\x4c\x90\xa6\x96\x90\xb4\xa4\x28\x1e\x0f\ \x62\x3d\xc1\xa8\xf7\x4b\xe3\xc0\x9d\x77\xbf\x5d\x2e\x4c\x46\x91\ \xa8\x18\xbe\xc8\x69\x4e\x3c\x80\xa7\x98\x42\x55\x86\x92\x82\x79\ \x4a\x36\x60\x8c\x70\x72\x7d\xea\xb3\x54\x08\x31\xfa\x2b\xa5\x2e\ \x05\xbd\x86\xe3\x2a\x2b\x37\x89\x4a\x52\xb7\xae\x2a\x64\x14\x6d\ \x52\xbb\x84\x04\x84\xa7\x03\x00\x0e\x29\x17\xb4\xb3\x25\xb8\x71\ \x5b\x8a\x4c\xb5\x9a\x01\x6d\x82\xda\x81\x49\x3e\x5c\x7a\xfe\x54\ \x27\xf6\xc1\x28\x42\xb7\x0c\xed\x51\x07\x23\x8e\x0d\x56\xb3\xad\ \x31\xe4\x6a\x6d\x4f\xa7\x6c\x52\x5b\xb5\x41\x95\x67\x63\xc6\xfb\ \x38\x09\x6d\x99\x4a\x71\x41\x3e\x51\x80\x37\x20\x00\x71\x8c\x83\ \x4a\x2c\xf6\x57\x75\x15\xa6\x75\x8e\x3d\xbe\xc7\x69\xbc\x59\xae\ \x4c\x2e\x43\x2d\x23\x30\x2e\x05\x08\xdc\x94\x2f\x00\x12\x92\x0f\ \x29\x39\x20\xa4\x67\xda\xaf\x9d\xf6\x15\xcc\x5d\x56\x08\x88\xc2\ \x36\x14\x96\xf1\x9c\x82\x0e\xee\xd5\xb2\x52\x9b\xfb\x53\x9b\x96\ \x8c\x95\x6d\xc6\x7f\x7b\x19\xc7\xd7\x1c\xe2\xa2\x7a\x06\xed\x78\ \xba\xe9\xbb\x7c\x8d\x23\x65\xd3\xf6\x88\xe1\xf7\x9a\x9f\x19\xe0\ \xbd\xa1\xc4\xb9\xb5\x45\x92\xd0\x09\x50\x24\x28\xe4\x8e\x49\xa8\ \x3e\xa3\x81\x68\x90\x7a\xb7\x70\xb8\xb4\xd2\xe4\xc5\x58\xfb\x13\ \x8e\x72\xa6\x5e\xfb\x3a\x4b\x65\xb3\xdd\x2a\x2b\x08\xe4\x60\x9c\ \x0f\x6a\x8e\x27\x30\x72\xd1\x34\x5b\x0c\xde\xe3\xcb\xd5\x12\x74\ \xd2\x22\xac\x3f\x12\x0b\x52\xd4\xee\x46\xd5\x05\xa9\x49\x09\x03\ \xbe\x46\xd3\xf9\xd2\x29\xeb\x8d\x0d\x2e\xcb\x79\xf4\x22\x33\x20\ \x97\x16\x55\xc2\x31\xdf\x3e\xdd\xaa\x0a\x6f\x42\xc9\x7c\xd4\x57\ \x6b\xfd\xbd\x53\xcb\x3a\x36\x1f\xdb\x22\x91\xfd\x6a\x8a\x96\x95\ \x21\x59\xcf\x04\x92\x0e\x41\xc0\xcd\x35\xc8\x86\xda\x75\x3e\xab\ \xb7\xfd\x86\xc9\x16\x33\xda\x3f\xed\x0e\xc3\xb5\x8c\xc7\x0e\x85\ \x2f\x62\x88\xc0\x05\x60\x14\xf3\x81\xc6\xd3\x50\xaa\x3d\x88\xce\ \x4c\x6e\xba\xc6\xd5\x12\xc5\x6c\xba\xc5\xff\x00\x6c\x17\x47\x59\ \x66\x13\x4d\xad\x28\x2b\x53\x83\x72\x72\x54\x46\xd0\x07\x27\x3d\ \xbd\xa9\xfe\x19\x5c\x94\xc6\x2f\x35\xf6\x77\xdd\x03\x73\x4a\x58\ \x51\x49\xf5\x19\x1c\x1e\xfd\xc5\x54\xd3\x2c\xf6\x94\x68\x5e\x97\ \x1f\xd5\xb0\x4f\xda\x2e\x36\xe2\xe9\x0c\xa0\xef\xdf\x19\x5b\xc2\ \xb8\xe7\x25\x23\x39\xef\x81\x9e\xd5\xae\xf4\xd5\xbd\x7a\x6f\x5f\ \x5d\x2e\x29\x69\x37\xd8\x57\x47\x51\x0d\xf2\x70\xfc\x70\x9d\x9f\ \x65\x4b\x47\xba\x41\x04\x63\x6f\x7c\x9a\x38\x8d\x6e\x46\x66\x74\ \xd3\xef\x22\x34\x06\x22\xa5\xd4\xa5\x44\x24\x11\x9e\x79\xed\x5a\ \xd8\x53\x67\x09\x4a\xd0\xa2\x46\x78\x56\x72\x33\xcf\xfe\xb5\x58\ \x58\xed\xec\x5e\x7a\xd3\x71\x95\x7a\x8c\x99\x12\x60\xda\x6d\xd2\ \x1a\x4a\x8e\x50\xcc\x82\x17\xb9\x61\x3d\xb7\x79\x71\x9e\xe0\x67\ \x1d\xcd\x41\xe3\x59\xed\xd2\x34\x3e\x9c\xb8\x3d\x15\x2a\x9b\x2b\ \x5c\x08\x6f\x48\xe7\xc5\x54\x75\x49\x71\xb5\x33\xbf\xbf\x86\x50\ \x48\xdb\x9c\x73\xdb\x9a\xce\xa5\x64\x69\x95\x57\x7b\xdb\xd2\x3a\ \x31\x0b\x42\xd2\x14\xda\x92\xa4\x9e\xc5\x27\x22\xb6\x14\x82\x80\ \x48\xed\x55\xc7\x4c\xe2\x31\x6f\xea\x37\x50\xad\x10\x19\x6e\x2c\ \x08\xf2\xe1\x38\xcc\x66\x52\x10\xd3\x6a\x72\x2a\x4a\xca\x52\x38\ \x19\x3c\x9c\x55\x8e\x06\x72\x3e\x6a\x6f\x71\xd0\x79\x91\x9c\x77\ \x54\xc9\xc7\x74\x1e\xe0\xd2\xb3\x83\x85\x8c\x10\x79\xf6\xa4\xa1\ \x2a\x50\xc1\xe6\xbd\xdc\xa6\xfe\xf7\x23\xf9\x52\xe4\xae\xc7\x45\ \xd9\x6a\x68\xbd\xc4\x0f\x33\xe2\x24\x1c\x8e\xf5\x1f\x03\xca\x52\ \x47\x63\x52\xe6\x76\xbc\xca\x93\xc6\x08\xa8\xc5\xcd\xaf\xb3\x48\ \x52\x48\xe0\x9e\x6b\x46\x1e\x7f\xe2\xf9\x19\xf1\x30\xff\x00\x25\ \xcc\xc2\xde\xc9\x75\xc3\xc7\x03\xb5\x45\xfa\x8a\xe9\x4c\x67\x10\ \x0e\x00\x18\xe2\xa7\x96\xa6\x36\xc3\x53\xa7\xdb\xd6\xab\x5e\xa6\ \xbc\xa4\xb0\xe0\x4f\xb1\xab\x4e\x57\x52\xb7\x22\x99\x6d\x04\xfb\ \x4a\xab\x48\x5b\x99\x7e\x45\xc2\xe4\xfb\x49\x71\x6d\x04\xec\xdc\ \x32\x01\x51\x2a\x26\x90\x75\x77\xa4\xcd\xdd\xe1\xc5\xbb\x24\xbc\ \xc4\xa0\x82\xa2\xe3\x4a\xde\xad\xbe\xc0\x1e\xff\x00\x4f\xa9\xa9\ \x3f\x4d\xff\x00\x6f\x69\xbc\xb2\x17\xb5\xcf\xb3\x25\x63\x1c\xe0\ \xa4\xed\x35\x68\xd9\x59\x55\xc2\xc7\x15\xc5\x36\x0a\xf6\x8d\xc4\ \xa7\x3e\x55\x27\x07\xf8\x1a\xf2\x58\xba\x6d\xd6\xcd\x17\x67\xc8\ \xf7\xb8\x4a\xbc\x3c\x24\x53\xd6\x3c\xd7\xc3\xee\x70\x55\xc7\x48\ \x16\x1b\x75\xb6\x9d\x52\xd6\x96\x37\x95\xe3\x85\x1c\xf2\x9c\x7a\ \x63\xb7\xd6\x99\x2c\xf0\x64\xb1\x71\x69\xef\x33\x61\xb2\x16\x16\ \x7b\x12\x30\x71\xf5\xed\x5d\x29\xd4\xdb\x45\x90\x75\x21\x76\xd8\ \x31\x3e\xc9\x19\xc8\x67\x73\xab\x04\x25\xd7\x82\xb2\x38\xf9\xc2\ \xbf\x21\x54\xf4\xd8\xad\x89\x0a\x86\xc4\x73\xb3\xc5\xfd\xa9\xda\ \x46\x13\xb8\x82\x9f\xa7\xb1\x1e\xdf\x14\xba\x18\xa9\xca\xf1\x96\ \xa3\xb1\x78\x0a\x2b\x25\x4a\x6a\xd7\xd6\xdf\xc1\xd5\xdd\x2f\x6d\ \xe6\xf4\x15\xb9\xf9\x61\x5e\x33\xc8\x0a\xf3\xfd\xe0\x9f\x4c\xfd\ \x7b\xd4\xd2\x3b\x99\x39\x23\xbf\x02\x99\x2d\xed\x26\x2d\xae\x2c\ \x74\xf0\xdb\x2c\x36\x84\x73\xc0\x4a\x52\x00\xfc\xb1\x4e\xb6\xce\ \x52\x92\x52\x40\x3e\x6e\x7b\x0f\xad\x67\x8b\xd7\x41\x15\x5e\x66\ \xd9\xe5\xc6\x02\xf2\xa9\xcc\xa3\x7b\x89\x18\x5b\x27\xfe\x14\x7b\ \x56\xbb\x6e\xa2\x86\xe3\xe2\x2c\xa7\x44\x77\xf3\xfd\x53\xc7\x6a\ \xd3\xf1\xcf\xde\x14\xf2\x0e\xe2\xa0\x92\x4e\x7b\x1f\x4c\x7d\x68\ \x91\x6a\xb7\xcd\x63\xc2\x9b\x0d\x99\x20\x9c\x00\xe2\x01\xc5\x31\ \x41\xa7\x78\xb2\x8a\x70\x92\xb4\xd7\xc8\x7b\xb6\x2a\x33\xad\xa5\ \x4b\x42\x92\x30\x3c\xdb\x72\x83\xff\x00\x58\x7f\x8d\x3e\x43\x8f\ \x13\x68\x29\x71\x93\xf4\x22\xab\xe6\x74\x15\x9c\x2c\xaa\x23\xf7\ \x6b\x6a\xbb\x83\x0e\xe0\xe2\x06\x7e\x99\xc5\x2e\x6b\x46\x49\x48\ \xca\x75\x96\xad\xd8\x3d\x3e\xde\x0f\xf1\x29\xad\x11\x9d\x45\xbc\ \x7c\xc4\x4e\x8d\x17\xb5\x4b\x78\xaf\xb3\x64\xca\x4c\x64\x10\x4a\ \x31\x84\xf2\x48\x1c\x0f\xa9\xed\x50\x8b\xbe\xab\x80\x89\x46\x06\ \x9e\x8c\x35\x15\xdd\x27\x68\x6a\x39\xcc\x66\x0f\xf6\x9f\x74\x79\ \x40\x07\xf7\x41\x26\x94\x3d\xa2\xec\x60\x03\x78\x93\x76\xbd\x60\ \xfd\xdb\x85\xc1\xc7\x50\x4f\xca\x01\x09\xfe\x14\xe9\x19\xe8\xd6\ \xd8\x3e\x04\x48\xb1\xe2\x46\x69\x39\x08\x65\xb0\x84\x0f\x6c\x01\ \x51\x27\x37\xbd\x97\x9b\xfb\x2f\x32\x69\xc2\x94\x35\xd6\x5e\x4b\ \xf9\x6d\xf9\x78\x91\x48\x1a\x6a\x4a\x25\x4a\xbd\x5f\x65\x7e\xb2\ \xbc\xcd\x47\x87\x21\xf2\x30\x86\x9b\xff\x00\xe1\x34\x3f\x71\x3f\ \xc4\xd2\x6f\xb2\x44\xb6\xc3\x10\x61\xa0\x36\xca\x09\xda\x90\x49\ \x39\xfa\x9e\x49\xa7\x69\xf3\xa6\x5c\xde\xda\xd2\x8a\x00\x3d\xc7\ \x14\x95\x36\xf0\xde\x56\xbc\xaf\x06\x93\x92\x37\xea\xa3\x53\xab\ \x39\x7b\xcf\xe1\xcb\xbb\xe5\xc8\xdd\x08\x2d\x05\xb4\x04\xf9\x30\ \x09\x39\xe7\x9a\x57\x75\x82\xa7\xa2\x2d\x3c\x1c\x8e\xc4\x52\xab\ \x23\x71\xd6\xa6\xd0\xb5\x15\x73\x82\xae\xf4\xf3\x72\x8f\x1c\xa1\ \x68\x6d\x3b\xa9\xaa\x92\x94\x6e\x67\x95\x4c\xb2\x48\xa6\xed\xfa\ \x72\x12\xe4\xab\xf5\x60\x66\xd9\x76\x8c\xe2\x94\xdb\xc8\x4f\x95\ \xe0\x7b\xa1\xc1\xea\x93\x81\xf2\x0e\x08\xe6\xa4\xf0\x35\x01\x43\ \x88\xb7\xdf\x99\x55\xbe\x71\x00\x6d\x59\xce\xff\x00\x94\x9e\xce\ \x0f\x91\xe6\xf7\x4f\xad\x21\xbf\xe1\x9d\x40\x51\x18\x6f\x3b\x72\ \xe6\x0f\x20\xfa\x54\xa2\xc6\xe4\x3b\xed\xa9\x70\x6e\x71\x99\x94\ \x13\xf7\xd0\xeb\x61\x49\x3f\x50\x7d\x6b\x2d\x34\xd3\xb4\x5e\xbe\ \x46\xaa\xd2\x52\x8a\x75\x15\xd7\x9a\xfb\xae\xef\x95\xb5\x1b\xee\ \x62\x33\xe5\x1f\x63\x9c\xd2\xf1\x9c\xed\x58\x18\xfa\x83\xda\x90\ \xc9\x93\x1a\x23\x79\x9d\x3a\x2b\x00\x0e\x54\xe3\xe9\x48\xfe\x74\ \xba\xe3\xd3\xcb\x14\x92\xa4\x34\xe4\xf8\xcd\xab\x80\x84\x3d\xb9\ \x09\xfa\x05\xe7\x14\xdd\x1f\xa7\x71\x6d\xe0\x18\xb7\x4c\x14\xf6\ \x5b\x90\x18\x5a\xff\x00\x32\x9a\xbc\x95\x5b\xeb\x1f\x93\xfb\xd8\ \xac\x55\x1b\x7b\xff\x00\x34\xfe\x97\x19\x5c\xd4\x28\x90\x54\x8b\ \x2c\x67\x6f\x2a\xce\x03\x88\xca\x23\x20\xff\x00\x79\xd2\x31\x81\ \xec\x9c\x9a\xf1\x9b\x7b\xac\xb8\xa9\xd7\x19\x49\x99\x70\x29\xc2\ \x56\x84\xe1\xa6\x12\x7f\x75\xa4\xfa\x0f\x75\x1e\x4d\x3d\xce\xd3\ \xd3\x49\x0b\x76\xff\x00\x31\xc2\x83\x90\x14\xda\x00\xfc\x00\xed\ \x49\x5a\x8b\x25\x08\x5a\x1d\x79\x2e\x8c\x79\x4e\xdc\x67\xe9\x8a\ \xcf\x25\x2d\x9a\x25\xca\x0b\xdd\x67\x3e\x6b\xbb\x71\x3d\x7b\x8a\ \x5b\x73\xc0\xdf\xb2\x5b\x25\x47\xca\x56\x13\xce\x3d\xc9\xc0\xf2\ \x9e\x0f\x6f\x5a\x6b\xb6\xc7\x59\xbf\xdb\xdf\x71\xb6\x9b\xc9\x53\ \xdb\x1b\x18\x03\xcd\x8f\xc3\xf1\xf4\xa7\x7e\xb4\x19\x11\xba\x95\ \x6f\x9e\xc1\xca\xe1\x04\x1d\xbb\x41\x29\x0a\x47\x2a\xf9\x00\x81\ \xf4\xc1\xa6\x7d\x2c\xbf\xb4\xdc\xd5\x29\x4a\x2b\x6c\x10\xcb\x27\ \xb0\x20\x77\x35\x7a\x69\xce\x50\x5e\xb7\x37\xe6\x8d\x2e\x8d\xc4\ \x54\x7d\x96\xf9\xa4\x8e\x9b\xe9\xab\xe5\xc8\xcd\xac\x81\xc7\x6c\ \x55\xad\x15\x40\x34\x95\x2c\x8c\x63\xb6\x6a\xa4\xe9\xb8\x52\x61\ \xb4\x84\x03\xda\xad\x9b\x74\x40\x5b\xdc\xe1\x2a\x24\x1e\xd5\xed\ \x1c\x54\x29\x45\x33\xe7\x14\x6f\xb2\x37\x78\xc8\xc8\x39\x04\xfc\ \x0f\x8a\xc9\x38\x3c\x83\x80\x79\xe0\x66\x94\x08\x8c\xad\x3f\x73\ \xe0\x0a\x4a\xfc\x63\x1c\xee\x6c\xe1\x39\xe4\x7b\x52\x54\xa2\xdd\ \x91\xa5\xc6\x4b\x56\x66\xbe\x53\x81\xdf\x04\x7d\x28\xa4\x57\x0b\ \x83\x31\xe2\x93\xb8\x6e\xf4\x1e\x94\x53\xa1\x4a\x4d\x08\x9d\x58\ \x27\xa9\x05\xd0\x2a\x6d\xad\x1d\x07\x23\x27\x2b\xec\x7d\x37\xab\ \x9a\x79\x32\x54\xa2\x36\x34\x4f\x18\xed\x9a\x6d\xe9\x95\xbd\x4f\ \xe9\x48\x4f\x3e\xaf\x29\xf1\x38\xcf\xfc\x62\xaa\x68\x98\xc8\x4f\ \x01\xb4\x82\x3f\x9d\x68\xe2\xc6\x29\x23\x2d\x3a\x52\x94\x53\x23\ \x09\x92\xa0\xbf\xda\x24\xa0\x64\x60\x91\xc7\xfa\xef\x4a\x52\xea\ \x55\xca\x33\x82\x30\x38\xfe\x54\xf3\x26\x23\x0f\x34\x42\x92\x02\ \x8f\xae\x3d\x2a\x29\x70\x9c\x8b\x3b\xea\x61\xc1\x9c\x9f\x2f\x35\ \x78\x4d\x4f\x62\x27\x07\x03\x64\xbb\x7d\x8c\x5d\x99\xbb\xc8\xb6\ \xc0\x55\xc1\xa0\x42\x25\x29\x94\x17\x53\xc6\x30\x17\x8c\x8e\x3e\ \x6a\x37\x75\x6a\xdc\x1b\x4c\x28\x70\x62\xb1\x01\xb4\x96\xd1\x15\ \xa6\x52\x96\x82\x79\x24\x04\x81\xb4\x02\x49\xe3\x15\x59\xf5\x3f\ \x55\x5f\xb5\x0e\x95\xbc\xca\xb6\xc0\x2d\xda\xe2\x4f\x6a\x1a\xa6\ \x09\x05\x0e\x15\x25\xf6\xc2\x88\x48\x4e\x36\xee\xf2\xfd\xec\xf2\ \x4e\x31\x52\x4b\xb6\xa4\x9b\x67\x91\x7c\x71\x16\x96\x25\x31\x61\ \x43\x6a\xb8\x17\x25\x86\x9c\x3b\xd3\xbb\x6b\x49\xda\x77\x14\xa4\ \x85\x1c\x91\xdc\x01\xf1\x19\xe2\x98\xac\xc8\x92\x5a\x34\xb5\xa4\ \x42\x54\x75\x5a\x20\x22\x1b\x87\x72\xe2\xa6\x3a\x03\x6a\x3f\x29\ \xc6\x0f\x20\x7a\x7a\x0a\x75\x3a\x6b\x4f\x9b\x62\x2d\xa3\x4f\xda\ \x97\x11\x0a\xdc\x98\xe6\x22\x0b\x49\x38\xee\x13\x8c\x67\x1e\xb5\ \x16\x91\xaf\xcc\x08\x9a\x9d\x72\x60\x00\xbb\x3b\x4c\xbb\x15\x09\ \x5e\x3e\xd6\x97\x9b\xcb\x47\xb7\x19\x5e\x53\xeb\xda\x90\xea\x0e\ \xa5\x4e\x80\xe5\xd3\xec\xd6\xd6\x1e\x6e\xce\xd3\x4b\xb8\x93\x33\ \x62\xb7\x29\x3b\x94\x86\x86\xd3\xbb\x6a\x4e\x4e\x48\xf6\xef\x53\ \x9a\x21\x74\x59\xf6\x65\xc6\x81\x01\x31\x23\xc7\x69\x94\x20\x6d\ \x42\x1b\x48\x09\x03\xd8\x01\xc0\xfc\x29\xa6\xc9\xa1\xac\xd1\xb5\ \x15\xd7\x50\xca\x89\x1a\x6c\xfb\x84\x84\xc8\x4a\xdf\x8c\x85\x2e\ \x31\x4a\x52\x9c\x21\x58\x24\x03\xb4\x1f\xad\x56\x6e\xea\x57\x2c\ \x9a\xd7\x55\xdf\x24\xba\xf3\xb0\xa2\xda\x22\x48\x08\x4a\xb2\x0e\ \x77\xe3\x68\xec\x0a\xb8\x1f\x95\x4b\x22\x75\x0e\xe9\x6f\x9a\x8b\ \x75\xfe\xca\xcc\x49\x32\x60\x3d\x32\x19\x6a\x51\x75\x2a\x2d\x00\ \x56\xd2\xc9\x42\x70\xa0\x14\x0e\x46\x47\x7e\x6a\xad\xc5\x92\xa4\ \x9e\xe4\xd8\xc1\x80\xcc\x99\x0f\xbb\x6d\x88\xe3\xb2\x19\xf0\x5e\ \x75\x4c\xa4\xa9\xc6\xc6\x70\x85\x12\x32\x53\xc9\xe0\xf1\xc9\xad\ \x16\x8b\x25\xa2\x08\x2a\xb7\x5a\x60\x43\x6c\x25\x48\x08\x62\x3a\ \x10\x02\x55\x82\xa1\xc0\xe0\x12\x06\x47\xc5\x57\xf6\x9e\xa0\xdd\ \x6e\xcf\xe9\xf7\x66\x5a\x1b\x8b\x02\xfe\x4a\x62\x2d\x32\x8a\xdc\ \x43\x9b\x0a\x80\x5a\x76\x80\x02\x80\x38\xc1\x3f\x3d\xf8\x46\xd7\ \x51\x6f\x89\xb7\x43\xba\x37\xa7\xd2\xe4\x39\x57\x43\x6a\x6c\x09\ \xb8\x70\xc8\xdc\xa4\xa4\xed\x29\xc6\xc2\xa4\xe3\x39\xc8\xce\x71\ \xc7\x33\x9a\x3b\x91\x99\x16\x23\x7a\x77\x4f\xb4\xc3\x71\x98\xb2\ \x5b\x58\x69\xb7\xfe\xd2\xd2\x5a\x88\x84\x84\x3a\x32\x03\x80\x01\ \xc2\xf9\x3e\x6e\xfc\x9a\x4f\x36\xc7\x6d\x55\xc5\xb9\xb2\x6d\x70\ \x9e\x94\xde\x3c\x39\x0e\x47\x4a\x9c\x47\xd1\x44\x64\x7a\x54\x65\ \x1d\x45\x72\x24\x2d\x44\x9b\xcd\xb1\x0d\xcf\xb2\x3c\xcb\x2a\x66\ \x3c\x8d\xe8\x7d\x4f\x04\x96\xb6\xa9\x49\x4e\x32\x54\x01\xc8\xe3\ \xbd\x2e\x3a\xbe\x74\x68\x1a\xa1\x37\x4b\x6c\x31\x3a\xc3\x6f\x4d\ \xc7\xc3\x8f\x33\xc6\x69\xf6\x94\x15\x8c\x28\xa1\x24\x10\x52\x41\ \xc8\xf6\x3e\xb4\x39\xc1\x6e\x0a\xc4\xc6\xdc\xe4\x06\x64\xae\x58\ \x89\x1d\x13\x1e\x4a\x50\xe4\x94\xb6\x90\xe3\x89\x4e\x76\x82\xac\ \x64\x81\x93\x80\x7b\x64\xd3\xa4\x7b\x35\x89\x51\x19\x61\xbb\x4d\ \xb8\x47\x66\x40\x94\xd3\x42\x32\x36\xb6\xfe\xe2\xaf\x11\x23\x18\ \x0b\xdc\x49\xdc\x39\xc9\xce\x6a\xbf\x85\x74\xbc\x39\x7f\x83\x67\ \x93\x69\x8b\x15\xdb\xb5\xb1\xcb\x85\xb0\xfd\xb4\xb8\x06\xcd\xa7\ \x63\xde\x41\xb0\xf9\xd2\x7c\xbb\x87\x71\xcf\x72\x74\x5a\xfb\xa9\ \xee\xda\x1e\x0d\xde\xf2\x23\xba\x89\x69\x52\xda\x71\xa5\x12\xb2\ \x3c\x45\x82\x14\x36\x80\x9c\x60\x01\x82\x73\x4b\x79\x2a\x7b\xa3\ \x61\x53\x2b\xb3\x45\x8d\x1a\xdf\x19\x13\xa4\xca\x89\x0e\x3b\x52\ \x25\x14\x2a\x43\xed\xb4\x94\xad\xe2\x91\xb5\x3b\xd4\x06\x55\x81\ \xc0\xce\x70\x38\xa7\x04\xc2\x51\x39\x2b\x39\xf5\x15\x53\x5a\xf5\ \xac\xbd\x3c\x8d\x63\x39\xfb\x7a\x9f\x93\x1a\xff\x00\x12\x22\x9b\ \x5d\xc1\x6e\xb5\x87\xbc\x34\x85\x20\x29\x23\x60\x09\x50\x25\x20\ \x11\x9c\xf3\x8c\x54\xbb\x51\xf5\x07\xf5\x15\xfb\x51\xc1\x7e\xd8\ \xe4\x86\x2c\x96\x44\x5d\x0a\x99\x5e\x5c\x74\xa9\x4b\x05\x18\xc6\ \x00\x1b\x73\x9c\xfb\xd6\x59\xd5\x69\xd9\x1a\xa9\xca\x9b\x57\x97\ \xad\xfe\xc4\xa5\x71\xdf\x68\x64\x28\xa8\x0e\xfc\x57\xa7\x0e\x23\ \x6a\xb8\x35\x5d\xeb\xdd\x67\xaa\xe3\xf4\x86\x5e\xa9\xb6\xb3\x62\ \x61\x4e\x18\xa6\x3b\xd1\x2e\x2a\x94\x03\x6e\xb8\x94\x12\x09\x69\ \x23\x70\x2a\x48\xf5\x18\x2a\x3c\x10\x01\xb0\x62\xb5\x70\x5c\x06\ \x9e\xb8\xa2\x33\x53\x79\xf1\x53\x15\xc5\x2d\xb1\xc9\xc6\x0a\x92\ \x09\xe3\x19\xe0\x72\x6a\x23\x52\xef\x52\xfa\x37\x68\x9b\x2d\xca\ \x2d\xaf\x61\x3d\x8f\x1f\x15\xaa\xff\x00\x04\x3a\xf2\x54\x79\xcd\ \x64\xca\xb0\xf8\x51\xfa\x1a\x72\x9a\xcf\x8c\xd2\x76\xf7\x06\xac\ \xe7\x92\xa2\x91\x68\xc3\x3d\x37\x11\x0b\x8d\x86\xad\xa1\x3d\x8e\ \x3d\x6a\xad\xea\x04\x70\xb8\xaf\x15\x0e\x4d\x5b\x17\x4c\xa6\x38\ \x18\xc6\x07\x35\x5c\x6b\x36\xc3\x91\x95\x81\xc0\xef\x5a\x30\xdd\ \x64\xef\xcc\x4e\x21\x59\xa4\x51\x3a\x5e\xe6\xfd\x9b\x51\xcb\x8e\ \xd9\xc7\x8a\xd2\xc0\x1e\xe0\x8e\x7f\x8e\x0d\x74\x96\x91\x2c\xb5\ \xa4\x21\x3b\xb4\x1d\xcc\x25\x5f\xc2\xb9\x86\x79\x0a\xea\x84\x28\ \x28\x20\x78\xb1\x1c\x52\x47\xf7\xb7\x63\xf9\x57\x42\x69\xb9\x92\ \x1c\xd2\xf0\xd2\xd3\x4a\x79\x0d\xb2\x1b\x73\xc3\xee\x85\x27\x83\ \x9f\xca\xb8\x18\xac\xaa\xa6\x87\xa4\xc0\x66\x9e\x12\x29\xf6\x90\ \x6e\xa2\xdb\x2d\x31\x51\x3b\x50\xdc\x22\x46\x54\x85\x61\x4c\x25\ \x4a\xe4\xed\xc9\xed\xec\x9c\x02\x4f\xcf\x35\x46\xda\x5b\x6a\xe0\ \xf2\xda\x91\x19\x4c\xb7\x3d\x2a\x5b\x4a\x4a\xf2\x16\xde\xe5\x2b\ \x23\x3d\xc8\xdc\xa1\xcf\x1d\xea\xe0\xfd\x24\xee\xae\x42\xd3\xb6\ \x4b\x78\x8c\x8d\xb3\x56\xf2\x14\xeb\xec\x12\x84\xa3\xca\x92\x9d\ \xde\xe4\x2b\x38\x1c\x9c\x7c\x55\x25\x6d\x75\x2f\xcc\x8d\x0d\xe0\ \xd0\x54\x64\xa5\x2e\xb9\xbf\x07\x6e\xe2\x02\x07\xf6\x46\x55\x8e\ \x7e\x6b\x8b\x51\x24\xda\x3d\x05\x2c\xd2\xa5\x19\xcb\xd7\x23\xa0\ \xf4\xfc\xd7\x5f\xd3\x16\xc7\xdf\x42\x10\x4c\x74\x21\x41\x27\x39\ \x21\x23\xf8\x1c\xd4\xb2\xd0\xbd\x91\xc0\x5a\x81\x07\x8e\xd5\x5d\ \xd8\x5e\x77\xf5\x5c\x78\xc5\xb7\x37\x8e\x77\xa9\x7c\x0f\x4e\xde\ \xfc\x7e\x15\x3d\xb4\x2f\xc4\x84\x56\x94\x85\x0d\xa7\x8f\x5c\x1a\ \xad\x39\x5d\x98\xab\x44\x7e\x88\x77\x1d\xd8\x4e\xe3\xc1\x03\xb6\ \x29\xca\x37\x86\x4e\xdd\xc4\x28\x77\x09\xef\xf9\xd3\x3c\x65\x2d\ \x6c\xa5\x68\x4f\x95\x49\x03\x69\xe0\xfe\x3e\xd4\xec\xdb\xa8\x4a\ \x37\x92\x00\x00\x7e\x15\xae\x0c\xca\xd0\xed\x1b\x68\x56\xe2\x53\ \x8c\x71\x4a\x5f\x7c\x36\xd1\x50\x19\xe2\x9b\x22\x38\x92\x92\x07\ \xaf\xc5\x23\xbd\x4c\x2d\x84\xb6\xd0\xdc\xe9\xe1\x29\x1e\xb4\xfe\ \x22\x8a\x17\xc3\xcd\x2b\x19\x4b\x96\x15\x20\x23\x24\xac\xf6\x48\ \xac\x2e\x4c\x2d\xfb\x6b\xd1\xe3\xe3\xc5\x29\xca\x72\x7b\x9a\xd3\ \x19\xb4\xc3\x41\x79\xf5\x05\xc8\x5f\x2a\x23\xd3\xe0\x7b\x52\x29\ \x93\xd0\xb2\x5a\x52\x94\x90\x53\xf7\xb3\xc8\x1f\x15\x55\xd6\xd5\ \x8f\x4b\x55\x97\x90\xcb\x03\x51\x42\x8e\xb5\x44\x92\x92\xdc\x96\ \xf8\x71\xb5\x70\xa0\x7d\xb1\x55\x6f\x5a\x75\x67\x5d\xa1\xcf\x42\ \x74\x96\x9a\x44\x2b\x52\x87\xec\x9e\x44\x74\xc8\x75\xdf\xf9\x44\ \xe4\x27\xe9\x8f\xc6\xad\x15\x96\x27\x36\x82\xfc\x44\x2c\xa0\x80\ \x92\xa1\x95\x0c\x76\xe7\xbe\x69\xce\x04\x95\xf8\xff\x00\x64\xdb\ \x2c\x6f\x19\x1c\x6e\x18\xa5\xaa\x52\x4f\x7d\x0d\xd7\xa6\xaf\xd5\ \xf5\xdd\xfd\x32\xa6\xe8\x9f\x52\xb5\xa7\xeb\x98\xb6\x5e\xa2\xd8\ \xd3\x6e\x99\x34\x91\x0a\x63\x69\xd8\x87\xd6\x06\x7c\x35\xa4\x12\ \x12\xa2\x01\xc1\x18\xcf\x6c\x55\xcd\xab\x75\x1c\x4b\x4e\x9c\x9f\ \x78\x96\xef\x87\x1a\x1b\x0a\x79\xe2\x0e\x4e\xd4\x8c\x90\x3e\x4f\ \x61\xf3\x4c\xba\x8f\x4d\xb5\x31\xb4\xca\x8c\x86\x1e\x71\x0a\x0b\ \x09\x5b\x78\x21\x40\xf0\x52\x7d\xea\x17\xaa\xa0\xde\xae\x50\x95\ \x63\x93\x0a\x43\xcd\xc8\x50\x2e\x64\x8d\x84\x03\x9e\x7e\x38\xed\ \x54\xa9\x39\xc2\xfa\x12\xa8\xd1\xaf\x28\xb8\xbb\x5b\x7b\xfa\x44\ \x1f\xa7\x7a\xd6\xf9\x7e\x95\x37\x52\x5c\xe5\x45\x85\x69\x79\xd3\ \x96\x1d\x21\x02\x33\x7e\x87\x79\xef\xf3\xee\x7b\x55\xc5\xd3\x1d\ \x4d\x0e\xeb\x16\x74\xfb\x79\x2e\x43\x4b\xfe\x1a\x1d\x29\x20\x39\ \x81\xc9\x4e\x7b\x8a\x88\x41\xb0\x5b\xa2\x43\x4c\x79\x16\xd6\xa6\ \x25\x27\x62\x10\xe3\x23\xc3\x07\x19\xec\x46\x3f\x3a\x94\xd8\xee\ \x31\x23\xb2\xcc\x56\xd8\x69\xa1\xfd\x5a\x5b\x42\x40\x49\x23\xdb\ \x1d\xbf\xf2\xa4\x52\xa4\xe3\x2c\xcd\xdb\xb8\xd7\x8d\x95\x1a\x91\ \xb4\x23\xd9\xeb\xc4\xb2\xa1\xca\x6a\x42\x4f\xad\x6a\x95\x93\xca\ \x12\x0f\xb6\x7d\x69\x96\x14\x9f\x30\x52\x14\x38\x1c\xe3\xd4\x53\ \xba\x1d\x4a\x9b\xee\x49\x27\xb7\xb5\x6d\x52\xba\xb3\x38\x4e\x19\ \x5d\xc4\x92\x9b\xdc\x9c\x90\x01\x3e\x86\xa2\x77\x84\xa1\x93\xbd\ \x43\x6a\x42\x87\x73\x53\x07\x16\x08\x50\x52\x8a\x89\x3c\xfc\x54\ \x47\x54\xa9\x28\x8c\xe9\xc2\x31\x8f\x26\xef\x7f\x63\x59\xeb\x69\ \x1b\x97\x85\xef\x63\x9d\xfa\xca\xcf\xeb\x0e\xa3\xbb\x1b\xc4\x6c\ \x17\x22\x78\x1e\x13\x99\x0a\x2b\x09\xde\x95\x20\x8f\x5c\xff\x00\ \xe8\x45\x45\x2d\x37\x2f\x07\x5e\xda\xf4\xd8\xf0\x8b\x6c\x47\x57\ \x8a\x50\x80\x32\xf2\x93\x93\x9c\x13\x9c\x11\x8c\xf1\xce\x6a\x6f\ \x75\xfb\x15\xef\x5d\xc8\xfd\xa7\x88\x44\xa7\x1b\x43\x78\xf3\x95\ \xa1\x20\x00\x32\x3b\x8c\x8c\x11\xdf\x07\x8a\xa4\x2d\x17\x69\x0e\ \x75\x34\x4d\x52\x9b\x42\xd3\x39\x59\xc1\xe3\xef\x10\x7f\xf4\xaa\ \xe0\x9d\xe4\xdf\x61\xab\x1c\xbf\xf8\xf8\x5f\xed\xf4\x47\x71\x74\ \xb8\xa7\xec\x8d\x93\xc9\xe3\xbd\x5b\xb0\x16\x36\x00\x0f\xe7\x54\ \x4f\x4e\xe7\xa5\x2d\x60\x1f\xbb\xc8\xe6\xac\x2b\x66\xa3\xf0\xe7\ \xb6\x16\xad\xad\xab\x8e\xfc\x57\xb2\x51\x75\xa9\x29\x1e\x0e\x9d\ \x65\x07\x66\x4f\xb3\x8c\x67\xf9\x56\x32\x46\xe6\x17\x93\xdc\x11\ \xcd\x69\x6a\x63\x0b\x48\x58\x70\x24\x7d\x6b\x5c\xb9\x49\x52\x7c\ \x36\xb0\xaa\xca\xa1\x2c\xdb\x1b\x9c\xe3\x97\x71\x89\x9b\x58\x5b\ \xa5\xc9\x4e\x65\x21\x5e\x50\x73\x45\x3c\xb6\xd0\x43\x78\xee\x73\ \x45\x6a\x75\x5b\x7b\x99\x15\x18\xa5\xb1\x18\xe9\xf3\xad\x31\xa2\ \x20\xad\xc2\x9d\xbf\xb4\xe3\x1f\xf1\xaa\xa9\x1b\x0b\x43\xcd\x85\ \x21\x47\x18\xcf\x06\xab\x58\x93\x1c\x6f\x43\x5b\xa3\x34\xac\x29\ \x5b\xfd\x7b\x7e\xd1\x54\xe3\xa7\xf5\x22\xe2\x36\x23\xbe\x14\x52\ \x39\x0a\x35\x78\xd1\xbc\x2e\xb7\x15\x1a\xd6\xb2\x7b\x13\xb2\x0e\ \xd3\x9c\x1f\xad\x43\xb5\x0c\x58\xf2\xaf\x00\xad\xad\xdb\x79\xc7\ \xcd\x2e\x1a\x8d\xb9\x67\xc2\x8a\x09\x50\xe0\xd1\x1d\xa5\x29\x65\ \xc5\x11\xe2\x2b\xb9\xc5\x32\x94\x1c\x75\x65\x6a\xcd\x4b\x44\x55\ \xb7\x5d\x07\xa9\x57\xa7\x2f\x7a\x62\xd8\xfd\xa1\x16\xab\x85\xcf\ \xf5\x83\x4e\xbe\x56\x97\x9a\xcb\xa9\x78\xb5\xb4\x24\x82\x37\xa7\ \x85\x6e\xc8\x07\xb1\xa7\xf9\x3a\x5e\x6c\x5d\x67\x78\xbd\xb1\x64\ \xd3\x57\xa6\x6e\xfe\x13\x8e\x22\xea\x8c\x2e\x3b\x88\x46\xc2\x52\ \xaf\x0d\x7b\x92\x40\x49\xdb\xe5\xe7\x3c\xfa\x54\xd5\x6a\x6d\xbc\ \x85\x3a\xda\x48\x04\xe0\xab\x1c\x7b\xfd\x2b\xd2\xa4\x85\xa1\x2a\ \x52\x7c\xfc\x0f\x92\x39\xc0\xfc\x2a\x5d\x28\xbd\xc4\x25\x62\x35\ \xad\xba\x72\xad\x5d\xac\x6c\xd7\x8b\x73\xb0\x22\xda\x9b\x65\xb6\ \x6e\x91\xd5\xb9\x2b\x75\x2c\xb9\xe2\xb1\xb0\x24\x60\xe1\x79\x07\ \x24\x71\xef\xda\xa1\x37\xcd\x19\x2e\xcf\xac\x2e\xf3\x22\xd9\xec\ \x57\x56\xae\x05\xb5\xa9\x37\x24\x10\xb6\x16\x94\xed\x25\x27\x62\ \xf7\x24\x80\x38\xe3\x9c\xf3\x56\xe5\xa7\x50\xdb\x2d\xfa\xa2\x2d\ \x8a\x44\xd4\xb7\x2e\x5b\x4b\x75\xa6\x94\x71\x94\x20\xa4\x12\x4f\ \x61\xca\xd3\x8c\xf7\xe7\x1d\xa9\x46\xb0\x44\x34\xcc\x57\x8e\xa4\ \x23\x29\xca\x94\xae\x31\xf3\x9a\x4c\x16\x5a\x8e\x1c\xb7\x1f\x38\ \x46\x70\xe2\x2d\xef\xa9\x50\xdc\xf4\x8a\xaf\x2f\xea\x94\x49\x76\ \x3b\x30\xef\x36\xb8\xd0\xe3\xf8\x69\x25\x6c\xad\xa2\xa2\x14\x53\ \x80\x36\x82\x53\xc0\x3e\x87\xb5\x21\xbb\x58\x6f\x93\x26\xb7\x7a\ \xd4\x0e\x40\xdd\x6e\xb6\x48\x66\x33\x51\x14\xa5\x78\x8e\x38\x90\ \x16\xe1\x25\x23\x6f\x09\x18\x48\xcf\x7e\xf5\x65\x26\xda\xf1\x07\ \xec\xcb\x42\x9b\x3c\x82\x0f\x1f\x5a\xc5\x30\x43\xa8\xf1\xd6\xf3\ \x65\x19\xc0\x5e\xf1\x8c\xe7\xd0\xfd\x6b\x46\x48\x99\xf2\x95\xc7\ \x4c\x6c\xb7\x59\x76\x7d\x17\x2a\xee\xcc\x58\xb0\xac\xcc\x07\xd9\ \x65\xb5\xad\x4f\x3c\xef\x85\xb1\x25\xc0\x52\x9f\x0f\x68\x52\x8e\ \xd1\xbb\x24\x0e\x6b\xd6\x34\x6d\xf5\x3a\x7e\xd3\x6b\x0f\x43\x53\ \x90\xb5\x22\x6e\xce\x10\xb5\x6d\x2d\x07\xd4\xe6\x07\x97\xef\x61\ \x5d\x8e\x06\x7d\x6a\x6f\xac\xee\x28\xd2\xba\x6a\x4d\xe6\x42\x54\ \xf8\x8e\x5a\x0a\x61\x0a\x01\x67\xc4\x75\x2d\x03\xcf\xa6\x55\xfc\ \x2a\x45\x0d\x31\x23\x6e\x3e\x2a\x56\xb0\x76\xf0\x73\x83\xed\x50\ \xa1\x1d\x81\x45\x6c\x44\x9b\xe9\x44\xbb\xe3\x5a\xd6\x4c\xd9\x10\ \xd9\x4d\xed\xc8\x2f\xdb\xd4\xa0\x5c\xf0\x9c\x8e\x84\xff\x00\x5a\ \x92\x00\xda\x54\x9c\x10\x09\xca\x49\xec\x69\xca\xf3\xa6\x6e\x57\ \x3d\x1d\xa8\xac\x8c\xd8\x74\xa5\x8e\x5c\xf8\x2a\x8a\xd3\x96\xe2\ \xad\x8b\x24\x28\x12\xe1\xf0\x92\x42\x73\xb4\x81\x85\x63\x9e\x4f\ \x73\x65\x30\xeb\x66\xd0\x4b\x4a\x07\x1c\x1c\x73\x83\xfe\x8d\x44\ \xb4\x1e\xa3\x8d\xaa\x74\x6c\x0d\x48\xcc\x75\x45\x66\x62\x54\xb4\ \xa1\xd5\x02\x53\x85\x94\xe0\x9f\xc2\xb1\x2b\x4a\x4d\xb3\x6c\xa9\ \xc2\x09\x45\x73\x5e\xbf\x91\xa9\x1a\x4a\xe2\x35\x8e\x96\xbc\xaa\ \x44\x6f\x02\xd3\x6b\x7a\x1b\xe9\xde\xad\xea\x5a\xc3\x60\x14\x0d\ \xb8\x29\xf2\x1e\xe4\x7a\x71\x58\xf4\xc7\x4f\xdd\xf4\x8e\x89\x66\ \xc3\x76\x30\x5d\x66\xda\x85\x06\x24\x45\x71\x6b\x53\xa8\x2b\x52\ \x89\x52\x0a\x06\xd3\x82\x38\x05\x59\xe6\xa6\xe9\x04\x27\x3d\xa9\ \x93\x42\xea\x38\xda\xaf\x49\xc7\xd4\x0c\x30\xe4\x56\x5e\x53\xc9\ \xd8\xea\x81\x29\xf0\xdc\x5b\x64\x93\xdb\x19\x41\x3f\x8d\x32\xf6\ \x77\x2b\xc3\x8d\xfb\xff\x00\xa2\xbc\xb5\xe9\xb9\xba\xc6\x1e\xbd\ \x10\x56\x62\x7d\xb6\xf7\x0e\x5d\xb6\x44\xa6\x56\x86\x9e\x54\x74\ \x34\x79\x04\x05\x14\x12\x92\x9c\x81\xf2\x33\x8a\x9a\xdb\x34\xe6\ \xab\x6b\x58\xdd\xb5\x74\xc1\x63\x32\xa7\x5b\x19\x86\xdc\x24\xbe\ \xea\x9a\x6c\xb6\xb2\x4e\xe7\x0b\x60\xa8\x10\xa5\x1c\xed\x18\xe0\ \x63\xd6\x9d\xf5\x1d\xda\xdb\x60\xb6\x2a\xe7\x71\x96\x98\xd1\xc2\ \x90\xd8\x51\xe7\x2a\x5a\x82\x52\x00\xf5\xc9\x50\xfe\x75\xb5\x99\ \xaf\x3a\x93\xb1\xe4\xad\x27\x21\x25\x2a\xc8\x35\x4e\x0e\x77\x74\ \xc9\x8b\x8d\x3d\x1e\xff\x00\xdf\xdd\x95\xb5\xcb\xa7\x57\x27\x74\ \xee\xaf\xb6\x47\x55\xa2\xd0\xe5\xfe\x4c\x49\x11\xed\xf1\x16\xb5\ \xc3\x88\xb6\x16\x85\x93\xbb\x62\x4e\x5c\x28\xf3\x10\x81\xd8\x71\ \x57\x1d\xa5\x73\x5d\xb7\x34\xbb\x9b\x11\x98\x96\xa0\x7c\x46\xe3\ \xbc\x5d\x6d\x3c\x9c\x00\xa5\x25\x24\xf1\x8f\xdd\x14\xc4\x41\x27\ \x27\x93\xeb\x4f\xd6\xc5\x97\x23\x8f\x5c\x54\x56\xa4\xa1\x14\xd1\ \x7c\x33\x59\x9f\xaf\x5b\x89\xa5\x24\xb5\x21\x24\x7a\xf6\xa7\x78\ \xe7\x2c\xa7\xd6\x91\xcd\x6b\xc4\x6f\x3d\x88\xf5\xa5\x51\x01\x0c\ \xa7\xe9\x49\xa9\x2c\xd1\x46\xba\x6b\x2c\xd8\xd3\xa9\xe4\xa2\x34\ \x52\xb7\x15\x84\x81\xde\xab\x1d\x4f\x7b\x86\xa8\x25\x40\xad\xb0\ \xe0\xf2\xf8\xa8\x28\xdd\xff\x00\x6b\x15\x64\x6a\x14\x78\xaf\xa1\ \x2b\xfb\x83\x9a\xab\xba\xb3\xe1\xae\xd8\xea\x40\x68\xa8\x24\xed\ \x0b\x4e\xe0\x48\xf4\xc5\x6c\xa5\x25\x4e\x95\xd9\x86\xbe\xb5\x19\ \xcd\xda\xb6\xfb\x1a\xdd\xd5\xcb\x15\xd6\x42\x81\x87\x1e\x42\x1a\ \x90\x73\x82\xde\xf2\x41\x27\xe0\x12\x93\xf4\xae\xae\xb1\xdb\x90\ \x9b\x8a\x9c\x86\xe3\x8c\xa1\xd6\xf3\x2d\xb4\xab\xca\xb2\x7b\x1c\ \x7b\x90\x2b\xe7\xf6\xb6\xb9\x3f\x32\xec\xfc\x2b\x82\xd4\x70\xa2\ \x83\xea\xa4\x1c\xf0\x01\xf5\x1f\x35\xd4\x5f\xa2\x97\x58\x2d\xb7\ \xc8\x0d\xe9\x1d\x45\x31\x98\xb7\xe8\xa9\x4b\x71\xd4\xf3\x9b\x44\ \xd6\xd2\x36\x8c\x13\xdd\x60\x0e\xdd\xcf\xcf\x35\xe7\xab\x6b\x3c\ \xdc\x8f\x57\x83\x83\x86\x1d\x53\x4f\x5f\x5e\xbf\xa2\xde\xeb\x2e\ \x97\x7b\x57\x68\xa7\xed\x4c\x1c\x2d\x01\x4a\x6d\x0d\xaf\x6a\x95\ \x84\xe4\x00\x4f\x03\x90\x9e\x6b\x92\x93\x19\xbb\x73\xef\x5b\xe4\ \xb4\x4b\x81\x28\x54\x84\x2f\xca\x5a\x52\x07\x27\x38\xe7\x68\xc9\ \xf9\x27\xd6\xbb\x88\xa3\xc5\x5e\xe2\x46\x48\xda\x77\x77\xae\x48\ \xeb\x35\x85\x7a\x63\x5f\xcf\x43\xa9\x57\x85\x31\x2a\x53\x4a\x24\ \xa8\x39\x9c\x73\xcf\xb9\xdc\x08\xf4\xe7\xe2\xb9\xd8\x98\x38\xbc\ \xcb\x99\xd3\xe8\xea\x97\x83\xa2\xde\xda\xaf\xa9\x24\xd0\xf2\x57\ \xf6\x19\x31\x5d\x59\x40\x12\xfc\x45\x21\x44\xe4\x6e\x27\xca\xaf\ \x9c\x72\x40\xc7\x35\x65\xe9\xd2\x0b\x45\x09\x75\xc5\xa3\x76\x7d\ \x89\x1f\xe5\x55\x26\x88\x9c\xa9\x53\xdc\x5e\xc6\xc2\x6e\x4d\x26\ \x42\x80\x56\xe5\xf8\xa0\x04\x3b\xdf\xfb\xd9\xe2\xad\x9b\x11\x2d\ \x24\x2d\x40\x05\x27\x29\x20\x7f\x64\xfb\xfb\xd6\x5a\x6b\xac\x18\ \x84\x49\xe3\x24\x36\x85\x25\x38\xca\x8e\x4e\x07\x39\xcd\x28\x8c\ \x0a\xdb\x4a\x82\x46\x3b\x8f\xce\x91\xc5\xe4\x11\xb9\x58\x4e\x55\ \xbb\x07\x38\x22\x9c\x60\x92\x12\x12\xb4\x8e\x3d\xfb\x1c\xd6\xb4\ \x60\xbd\x85\xab\x05\xa6\x14\xb3\xf7\x12\x33\x4c\xec\xba\x23\x95\ \xcd\x77\xcf\x25\xc2\x43\x69\xfe\xc0\xc7\x6f\x83\xf3\x4f\xb2\xd1\ \xba\x1a\x53\xc9\x0a\x50\xdc\x3d\xc5\x31\xbe\x94\xf8\x86\x43\xdb\ \x90\x9c\x04\xa9\x27\xdf\xd0\x7d\x39\xef\x53\x2d\xef\xd8\x10\x77\ \x42\x37\x5c\x7e\x79\x4b\x89\x3b\x02\xd3\xc7\xb9\x1e\xf5\x93\x36\ \xf4\x85\x79\x80\xd8\x57\xc9\x2a\xf5\x1d\xbe\xbc\xd4\x57\x5d\xf5\ \x33\x4f\x69\x47\x4b\x32\x64\xa5\x52\xd6\x8f\x2a\x00\xe7\x1c\xfa\ \x0f\x4a\x68\xd2\x57\x4d\x5f\xad\xae\xf3\x6d\x50\xa3\xaa\xd0\x98\ \xad\x36\xf2\x95\x35\xa5\x00\x42\xf3\xb4\xa1\x39\x1e\xd4\x3a\xb0\ \x86\xb2\x7a\xf9\x9d\x28\x60\x2b\x3a\x5c\x59\x75\x61\xda\xcb\x2d\ \x86\xa0\x21\xc2\xd1\x90\xd2\x55\x8c\x95\x77\xcf\x34\xa9\x95\xc1\ \x53\xa1\x96\xe5\x0e\x33\xc6\x7b\xfe\x35\x03\xb2\x74\xc3\x5c\xc9\ \xba\xca\x1a\x83\x5a\x2e\x2a\x07\xf5\x62\x13\x0d\xe1\xc4\x9f\x5e\ \x47\x1f\x4e\x69\xce\xd1\xd2\xbd\x47\xfa\xee\x6b\x12\x75\xb3\x8b\ \x86\xd8\x49\x8e\x44\x54\x95\x9c\xe7\x3b\xfb\x0e\x38\xed\x5a\x21\ \x59\x3d\x14\x5f\xaf\x88\xba\x94\xb0\x91\xbd\xeb\xa7\x65\xd8\xfe\ \xc4\x95\xa6\x7c\x55\x9f\x09\xe6\xd6\x1b\x00\x10\x97\x33\xc6\x73\ \x9a\x45\x71\x88\xda\x9d\x54\x97\xd7\x1d\x21\x03\x81\xb8\xa4\x1f\ \xfc\xe9\x9e\x67\x4c\x75\x5f\xeb\x76\x58\x8d\xa8\x60\x3b\x15\x6d\ \xab\xc5\x71\xd8\xca\x4b\x89\xc7\x60\x36\xab\x9c\xd6\xa9\x9d\x20\ \xbf\xa6\x4c\x7f\xb3\x6a\xb4\x96\x94\xb2\x97\x52\x5a\x51\x50\x49\ \x07\xee\xe4\x91\xdf\xde\x87\x34\xd7\xba\xfe\x5f\x92\xb1\xf6\x44\ \xee\xeb\x2f\x93\x17\x07\x6d\xe1\x94\x25\xb7\x9b\x2d\x9e\x30\x55\ \xc2\xb8\xf7\xf7\xf9\xa6\xf7\xed\x8c\x78\x61\xe8\xea\x0a\x03\x27\ \x28\x19\x1c\xf7\xff\x00\x3c\xd3\x64\xfe\x9a\xeb\xe7\x6f\x2f\xc7\ \x81\xa9\x5a\x54\x36\x9a\x07\xc6\x75\x94\xf2\xb2\x78\x4e\xd0\x3b\ \x62\xaa\x88\x7d\x40\xbc\x58\xef\x8e\x5a\xaf\xa9\x11\xa5\xb6\xe1\ \x48\x09\x27\x6a\xfb\xe3\x8f\x91\x59\xe5\x56\x12\x79\x6c\xd3\xef\ \x47\x46\x86\x06\x38\x84\xde\x1e\xa2\x93\xec\xf1\xf1\xb1\x77\xd8\ \xe5\xba\xdb\xe9\x43\x99\xc0\x59\x0a\xf6\xed\x53\x0b\x73\x9e\x2b\ \x67\x1d\xfd\x88\xee\x2a\x07\xa4\x5d\x5d\xee\x3a\x1e\x4a\x02\x14\ \x51\xe2\x2d\x03\xb6\x3d\xbf\x1a\x96\xe9\x54\x38\xea\xc9\x42\x89\ \xf0\xcf\x23\x18\xdc\x08\xff\x00\x0a\xa4\x1b\x5a\x33\x97\x88\x86\ \x59\x34\xf7\x42\xa9\x6a\x48\x56\xd5\x70\x73\x9c\x0a\x85\xea\xb9\ \xa0\x45\x74\xab\x01\x09\x49\x25\x47\xd3\x15\x2f\xbc\x2d\xa4\x29\ \xd2\xb4\xe0\xa4\x77\x57\x63\x9a\xac\x7a\x93\x34\x43\xd3\x13\x9d\ \x5a\xc2\x56\x52\x4b\x64\x9f\x55\x70\x08\xf4\x3c\x9a\x4e\x22\x4e\ \xd6\x2b\x45\x5e\x48\xab\xba\x6c\xfc\x4b\x9d\xfd\x53\xfc\x35\x96\ \xa2\x25\xdb\xa3\x8f\xa9\x39\x49\x58\xdd\x8f\x4e\x78\xc8\xfc\x2b\ \x9b\x2d\xab\x4b\x97\xf5\xaf\x79\xfd\xa3\x8a\x70\x1e\xdd\xce\x45\ \x5c\x1a\xab\x57\xc2\xb6\x69\x39\xda\x77\x4a\x2f\xed\x17\xcb\x8c\ \x77\xff\x00\x59\xba\xda\xbc\x36\x58\x64\x27\x7b\xbb\x72\x7e\xf9\ \x48\xc6\xd1\xdb\xd3\x92\x2a\x97\x69\x6f\xb7\xe1\xc9\x79\x95\xe1\ \x01\x28\x0a\x50\xc2\x7b\x70\x3f\x2e\x6b\x6e\x06\x8b\x50\x93\xed\ \x27\xa4\x2b\xc5\xd5\x82\xff\x00\x5d\xce\xab\xd1\x3a\xa3\xec\xf6\ \x98\x2f\x3a\xb0\x15\x25\xa4\xed\xc1\xfb\xd8\x1c\x91\x52\xc9\xfa\ \xb5\x94\x4e\xb2\x41\x65\x64\xc8\x9d\x28\x20\x25\x3d\xc3\x69\xe5\ \x4b\x23\xdb\xd2\xb9\x3e\xcd\xad\x1e\xb7\x5b\x7c\x36\xd2\x65\xcd\ \x07\x6a\x1c\x5e\x4a\x50\x8c\xf0\x94\x8f\x41\x9c\xf1\xc7\x3e\xf5\ \x62\xf4\x9e\xe1\x24\xdc\x57\x74\x92\x97\x6e\x37\xd9\x3e\x44\x04\ \x72\x23\xb6\x0f\x61\xe8\x9f\xc6\xb7\x55\xc5\x55\xa5\x45\x41\x7a\ \xfc\x1e\x62\x78\x05\x79\x54\xde\x28\xeb\xeb\x54\xe5\x3e\x86\xd8\ \x4a\xce\x4e\x33\xcf\x02\xa6\x76\xf4\x06\x9a\x4e\x72\x4e\x39\x26\ \xaa\xbe\x9d\x6f\x0e\x0f\x1d\xd4\xad\xce\xe7\x6f\x61\xf4\xab\x3e\ \x2b\xa9\xc6\x49\xf4\x1d\xf9\xae\xec\x33\x4a\x8c\x6e\x72\xe9\x68\ \xf5\x16\x49\x92\x96\x5a\x0a\x3c\x9a\x29\x39\x47\xda\x9c\x39\x00\ \xa5\x23\x91\xef\x45\x11\x8d\x34\xba\xc3\xdc\xaa\x37\x78\x95\x3d\ \xa1\xc5\x39\x68\x82\x33\x84\xa0\x2f\x1f\xfe\xe2\xa9\x44\x8d\xbe\ \x63\xb7\x1c\x7d\x4f\xfa\xef\x49\x74\xf0\x26\xcf\x18\x0e\xf8\x73\ \xd3\xfe\x31\x54\xaa\x50\xdc\x84\x8c\xe4\x9f\xe3\x5a\xa1\xee\xa3\ \x0a\xd8\x90\x69\x48\xa1\xb8\xc5\xcd\x99\x2a\xef\x4e\xef\xb9\xe1\ \x34\xa5\x9c\x80\x3b\x7c\xd6\xab\x33\x61\x10\x90\x12\x79\x29\xac\ \x24\x61\xc9\x29\x63\x90\x3b\x9e\x3b\x55\x89\x39\xeb\x52\x3d\x6f\ \x93\xa3\x75\x5d\xc6\xed\xe0\x0d\x46\x35\x1f\x84\x87\x16\x47\x8e\ \x94\xf8\xe8\x4a\x5b\x49\xfb\xde\x1f\x81\x9c\x0e\xc4\x66\xa6\xb7\ \x88\xf6\x59\xfa\x8b\xa8\xee\x6a\x94\xc7\x5b\xd0\x22\x34\x61\x2a\ \x47\x78\xd1\xfc\x00\xa0\xb6\x89\xfb\xa4\xb9\x92\x54\x9e\x77\x00\ \x3d\x05\x48\xf5\x2f\x4d\xdb\xd4\x17\x55\x29\xf9\xea\x79\xa5\x3c\ \x97\x1c\x69\x31\x59\x42\xd6\x10\xa0\xa4\xb6\x5d\x08\xdc\x50\x14\ \x91\xc6\x73\xc7\x7a\x95\x4b\xd2\xd1\x66\xb8\xd4\x9b\xdd\xaa\x0c\ \xa7\x18\xe5\xa7\x1e\x8e\x95\xa9\xbf\xf9\x24\x8e\x3b\xfa\x56\x7c\ \xba\xea\x51\x52\x93\xd6\xc5\x6f\xa1\x61\xb3\x73\xea\x56\x86\x95\ \xa9\x61\x44\x7e\x63\xba\x4d\x4e\xc9\x54\x96\x92\x54\xb7\x53\xe1\ \x61\x4a\xc8\xe5\x63\x93\xf1\xcd\x48\xfa\xcf\x74\x87\x2a\xf5\x66\ \xb3\xb9\x68\xb7\xdc\x9f\xb8\x4a\x52\x23\xfd\xbf\x1f\x67\x65\x48\ \x6d\x4a\x2b\x3c\x1f\x36\x32\x12\x07\x24\x9e\xe2\xa4\x37\xb4\xda\ \x27\xa1\x86\xe4\x5a\x60\x4c\x72\x32\x8a\xd9\x72\x44\x74\x38\x5a\ \x51\xee\x50\x54\x0e\xd3\xf2\x29\x04\xfb\x6c\x0b\xa4\x6f\x06\xe9\ \x06\x2c\xd6\x77\x6e\xf0\xe4\x34\x97\x13\xb8\x76\x38\x50\x23\x35\ \x31\xa4\xd4\x9c\x86\x37\x68\x64\x44\x2f\xa1\xd2\x25\x33\xa7\x2e\ \xec\xb4\xeb\x4a\x8f\x1a\xf9\x31\x96\x10\xca\x8f\x82\x86\xc2\xf2\ \x12\xdf\xf7\x39\xe3\xe0\xd4\x66\xe7\x19\xcb\x8c\x2b\xb7\x4e\xa2\ \xa9\xc4\x3d\x6d\xb8\xcf\xbc\x32\x1b\x27\x29\x6f\xc1\x0e\xc7\xfc\ \x3c\x69\x23\x8f\x5f\x0f\xeb\x57\x0c\x68\x71\x62\x21\x48\x8b\x19\ \x98\xe9\x70\x82\xb4\xb6\xd8\x48\x2a\xc0\x19\x38\xf8\x00\x67\xe0\ \x52\xad\x3b\x6a\xb7\xa6\x74\x8b\x92\x61\xc7\x13\x1d\x40\x6d\xc9\ \x01\xa4\xf8\x8a\x48\xec\x92\xae\xe4\x0f\x6a\xb4\xa9\xf5\x52\x65\ \x14\x2f\x64\x51\xfa\xda\xe4\x8d\x5b\xa0\x75\x76\xae\x6c\xe6\x3c\ \xe3\x6b\x84\xc1\x07\x90\x84\x38\xca\xd6\x07\xb7\xed\x5e\x70\x7d\ \x51\x4b\xb5\x94\x25\x69\xed\x51\xaa\xa2\xe9\x88\xe8\x80\x4e\x8c\ \x12\x7c\x28\xa8\xd8\x0b\x89\x79\x68\xf1\x00\x1f\xbc\x10\x3b\xf7\ \xe2\xad\x56\x74\xed\x8d\x98\x8e\x5a\x51\x68\x80\x9b\x76\xed\xc6\ \x20\x8c\x8f\x07\x21\x41\x40\xec\xc6\xdc\xee\x00\xf6\xef\xcd\x2f\ \x4c\x18\x5f\xac\x0d\xc0\xc4\x8f\xf6\xc2\xc8\x64\xbf\xe1\x8f\x10\ \xb6\x0e\x42\x37\x63\x3b\x72\x49\xc6\x71\x93\x51\xc2\x2a\xe1\x72\ \x17\xa4\x9a\xb2\xc2\xd7\x7a\x05\x8d\x26\x88\xcc\xa6\x6d\xb2\x51\ \xb8\x88\xa7\x1f\x68\x8e\x1a\x4a\x9b\x71\xdc\x7d\xe5\x78\xa4\x61\ \x4a\xe4\x95\x2a\xa1\x1a\x11\xb9\x73\x6c\x9d\x32\xb4\xbb\x0e\xd9\ \x36\x03\xb6\xd9\xeb\x6a\x3d\xcd\x65\x31\xde\x90\x1d\xc7\x20\x25\ \x5b\x96\x94\x12\x52\x08\xf5\x26\xae\xcb\x45\xaa\xd9\x68\x92\xec\ \xab\x55\xb2\x14\x27\x9e\x20\xba\xa8\xec\x25\xb2\xe1\xfe\xf1\x03\ \x9f\xc6\x97\xc7\xb3\x69\xfb\x85\xa9\xbb\x13\xd6\x0b\x59\xb7\xb5\ \xfd\x54\x43\x11\x05\x94\x77\xec\x8c\x6d\x1d\xcf\x61\xea\x69\x33\ \xa2\xe2\xdc\xb9\x0e\x8c\x73\x59\x7a\xe5\xf6\x1b\xfa\x63\x6a\x9d\ \x60\xd0\xf1\x2d\x17\x29\x91\xa5\xb9\x1c\xba\x96\xdc\x8e\xe2\x96\ \x80\xd1\x71\x45\x08\x0a\x57\x27\x68\x21\x3f\xf5\x6a\xa0\xd0\x4d\ \xb5\x22\xc3\xd3\x28\x17\x64\xa1\xdb\x1c\xbb\x8d\xdb\xc7\x65\xee\ \x59\x75\xf4\xba\xe9\x61\x2b\x1d\x8f\x3b\xc8\x07\x82\x40\xae\x88\ \x8b\xa7\xa3\x43\x88\x86\x22\x34\xd4\x76\x1b\xe1\xb6\x9a\x40\x4a\ \x12\x3e\x00\xe0\x73\x49\x17\xa7\xec\x66\xc6\x6c\xa6\xcd\x6e\xfd\ \x5c\x92\x4f\xd9\x3e\xcc\x8f\x07\x24\x95\x13\xb3\x1b\x79\x24\x93\ \xc7\x72\x4d\x2f\x34\x5f\xba\xc7\xcb\x0f\x2d\x2f\xa5\xbf\x05\x0b\ \xa9\x63\x43\x3a\x37\x56\xc4\x61\x98\xee\xd8\x60\xeb\x08\x88\xb7\ \x82\x90\xa6\xd8\xca\xd9\xf1\x90\xde\x78\x4a\x02\x94\xa1\x81\xc0\ \xc9\x15\x7a\xa6\x14\x48\x28\x6d\x88\x2c\x31\x1a\x3a\x01\x4a\x1a\ \x65\x01\x28\x4f\x3c\x80\x07\x03\x9a\xdb\x1e\xd1\x69\x55\x98\xd9\ \xd5\x6c\x82\x6d\xc5\x3b\x0c\x42\xc2\x3c\x12\x33\x9c\x6c\xc6\xdc\ \x67\xe2\xb2\x72\x0c\x48\x10\x99\x89\x06\x2b\x11\x23\x34\x36\xb6\ \xd3\x2d\x84\x21\x03\xd8\x24\x70\x2a\xd4\xfa\xb3\x21\x52\xb2\xb9\ \x8e\xd4\x91\x4e\x56\x73\x84\x28\x7a\x53\x7a\x53\xe5\x19\xa7\x1b\ \x42\x78\x55\x4d\x67\xd4\x63\xa8\xae\xba\x15\xca\x21\x2d\x13\xfc\ \x6b\x7c\x70\x7c\x04\xe7\xeb\x9a\x4d\x30\xf9\x42\x7d\xcd\x2b\x4a\ \x7f\x60\x12\x38\xe2\xb1\x4b\xdd\x46\xd8\xfb\xcc\x88\xeb\x46\xae\ \xd3\x11\xe1\x5a\xe4\x47\x87\xce\x16\xfb\xa8\x2b\xda\x3f\xba\x3d\ \xfe\xb5\x51\xf5\x36\xd8\xf7\xea\x77\x23\xae\x4c\xa9\xea\xda\x77\ \x2b\x21\x0a\x5f\xc0\x20\x60\x55\xed\x75\x64\xae\x31\x6d\x23\x19\ \xe4\x9a\x84\x6a\x6b\x62\x1c\x86\xa1\xb3\x3c\x56\xc8\xae\x25\x2c\ \xa8\xc3\x56\x0f\x3d\xcf\x9f\x7d\x44\xb4\x48\x62\xe0\xf3\xe6\xd9\ \x2e\x3a\x4a\xb1\x87\xdd\x4b\x8a\x19\xf9\x00\x1f\x4a\x85\x38\x95\ \x15\x01\xe7\x42\xc7\x21\x47\x23\x9f\xf5\xeb\x5d\x45\xd6\x2b\x3b\ \xa9\x87\x39\x29\x04\xe5\x95\x29\x3c\x76\x29\x1b\x87\xf2\xae\x5f\ \x59\x90\xb7\x08\x5b\x8b\x21\x4a\xc0\xca\xb8\x15\xcc\x95\x19\x52\ \x76\x91\xd6\xa7\x5d\x56\x85\xd2\xd5\x16\x2e\x87\xeb\xc7\x54\xb4\ \x7a\x5a\x8f\x13\x50\xb9\x70\x88\xd8\xc2\x63\x5c\xd0\x24\x20\x0f\ \x60\xa5\x79\xc0\xf8\x0a\x15\x2d\xbf\x75\xe9\x7d\x44\x81\x1e\xd1\ \xa9\xf4\xfb\x11\x2e\x09\x75\x02\x34\xd8\x6e\xa8\x21\x27\x70\xdd\ \xb9\x0a\xc9\xec\x38\xc1\xaa\x42\x42\x1a\xd8\x95\x36\xa4\x9e\x3b\ \x81\xdc\xe3\xd6\x93\xef\x53\x4b\x0a\x6d\x5e\x1a\xb7\x02\x0f\xaa\ \x48\xe4\x7f\x1a\x44\xf0\xf4\xea\x2d\xac\x69\x86\x2a\xa5\x29\xa7\ \x7b\xfa\xed\x3a\x67\xa6\x45\x2f\x6a\x47\xd8\x43\xe8\x41\x8d\xbc\ \x84\xf0\x0b\x4e\x28\x85\x67\x8e\x30\xa3\x93\xb7\xd3\x15\x7f\x59\ \x10\x50\xd8\x04\x27\x05\x1b\xbb\xf2\xa5\x1a\xe5\x2e\x83\xc8\x4c\ \xfb\xf1\xb8\xc8\x79\x6d\x36\xb4\x12\xf3\x69\xe4\x15\x8e\x0a\x86\ \x7d\x87\x38\xf8\xae\xa5\xd3\x24\x22\x33\x7e\x33\xbb\xbc\x4f\x38\ \xcf\xb6\x3f\xca\xb8\xb2\x86\x4a\xb9\x4e\xd5\x49\xf1\x20\xa4\xb6\ \x25\x50\x0a\xca\x96\x16\x52\xb5\x63\x00\x03\xda\x97\x46\x52\x10\ \xb1\xfb\x5d\xe1\x7c\xe0\xfc\x7b\x53\x5c\x22\xd2\xdd\x29\x28\x29\ \x46\xd0\x06\x13\x80\x41\xe7\x03\xf9\xd2\x97\x4a\x9b\x53\x7e\x1b\ \x5b\x92\xa3\xb4\x2f\x3c\x53\x91\x85\xad\x49\x2b\x23\xc4\x8c\x53\ \xc8\x23\x04\x53\x25\xf9\x97\x14\xd1\x4b\x27\x6a\xd2\xad\xe8\x1e\ \x83\xde\x97\xdb\x24\x00\xda\x71\xb4\x92\x39\xc1\xfb\xd5\xb6\x72\ \x42\xd4\xac\xa7\xb6\x3e\xa6\x99\x6b\xab\x95\x83\x71\x91\x46\x4e\ \xe9\xb5\x82\xdd\xaf\xef\x9a\xbb\x53\xb5\x3a\xe9\x0e\xe7\x19\x5e\ \x24\x65\xb4\x1c\x4b\x3c\x64\x84\x6d\xe5\x3f\x74\x04\xe3\xb6\x69\ \xce\x77\xe9\x2d\xd3\xb8\x71\xac\x1f\xab\x2d\xb7\x6b\x95\xd5\x6c\ \x84\xcd\x86\xcc\x52\x87\xa0\x36\x13\x85\x21\xd2\xb0\x01\x21\x40\ \x70\x32\x3b\x9c\xf2\x33\x69\x49\x6d\x0e\xb4\xa6\xdc\x47\x88\x95\ \x27\x18\x20\x62\xab\xed\x53\xd3\xf6\x1d\x92\x6e\x16\xc0\x84\xaf\ \xb1\x49\x47\x21\x3e\xa9\x04\x73\x8f\x8a\x74\x54\x5d\xf9\x5c\xdf\ \x4e\x34\x71\x35\x23\xc7\x93\x49\x7c\xbf\x17\x2b\xab\x87\x5e\x3a\ \xd4\xbb\xbc\xfb\xed\x93\x42\xda\xcd\x8e\x42\x52\xd4\x18\x92\x9b\ \x5b\x8e\xb5\x8c\xe1\x64\xa0\xa4\x92\xac\xf2\x31\x8e\x06\x3b\x12\ \x61\x8c\x7e\x92\xdd\x75\xd2\xb2\xa7\x4e\xbf\xd9\x2d\xf3\x1a\x98\ \x50\x19\x44\xcb\x72\xda\x6e\x36\xdc\xf9\x5b\xd8\x52\x48\x39\xe7\ \x71\x51\xe0\x73\xef\x74\x5b\x6c\x17\x96\x96\xd2\x90\xeb\xe8\x2a\ \x07\x87\x8e\x43\x7c\xe0\x10\x78\xc5\x2e\x9f\x66\xbb\x86\xca\x27\ \xc0\xb7\xdd\x5b\x20\x28\x87\xd9\x2a\x42\xbb\xfa\x03\xc6\x31\x4f\ \x8d\x24\xb5\x5e\xbc\xcd\x18\x8c\x0e\x0d\xbc\xb0\xd1\xf8\xaf\xaa\ \xfa\x94\x13\x1f\xa5\x47\x5a\x2e\x17\xf6\x6f\x31\x2d\x16\x43\x16\ \x33\x2b\x4a\xa1\x22\x0b\x85\x85\xa5\x58\xf3\xac\xef\xdf\x91\x8e\ \x08\x50\x1c\x9e\x0e\x6b\x46\xbd\xfd\x21\xfa\xb9\xaf\xf4\xd3\xba\ \x61\x16\x9b\x55\xac\xc9\x79\xa5\xfd\xa2\xd8\x97\xdb\x92\x14\x85\ \x85\xa4\x21\x45\xc3\xb7\xcc\x91\xc8\x19\xab\xd9\x36\x7b\x92\x98\ \x71\xa8\xac\xc1\xb4\x43\x3c\x2d\xa8\x51\x40\x04\x1f\x7d\xd9\xa6\ \xf7\xf4\xc4\x25\x02\x5b\x33\x14\xe2\x70\x12\x1b\x09\x4e\x4f\xb8\ \x20\x70\x6a\x5c\x5d\xbd\x7d\xcb\x51\xe8\xbc\x25\xba\xed\xdf\xb9\ \xaf\xb6\x9f\x32\xb4\xd1\x9f\xa5\x06\xba\xd3\xd3\x05\x83\x5a\xdb\ \x5f\xb9\xcc\x5b\x69\x6d\xd5\xb4\xca\x03\xe1\x40\x79\x54\x02\x78\ \x59\x23\x04\xf6\xe6\xa5\xd3\xe0\x5a\xfa\x99\x7a\x87\x76\x4d\x96\ \x7c\x6c\x38\x95\x7e\xdd\x92\xca\xca\x10\x90\x84\xa5\x5e\xc5\x58\ \x2a\xf8\xc8\xa9\x1e\x95\xd1\xad\xb7\x72\x33\x1f\x84\xd2\x16\x95\ \x79\x5f\x71\x01\x4f\x2d\x3f\xd9\x2a\x3e\x61\xef\xed\x53\xf8\xad\ \xa1\x0d\x25\x96\x5b\x28\x1d\xb7\x7a\x8c\x7a\xd6\x4c\xb0\x84\xae\ \xbe\xeb\xe1\xd9\xfc\x04\xb8\x78\x4a\xad\xd3\x77\x7c\x9a\xd3\xe7\ \x6d\xdf\xcb\x53\x56\x9c\xb4\xa6\xd0\x5c\x43\x28\xfb\x36\xe6\xc3\ \x6d\xa0\x2b\x77\x03\xb7\x3e\xf5\x2a\xb3\x30\xdc\x56\xde\x53\x79\ \x4a\x49\xce\x7e\x69\x14\x64\xee\x71\x03\x68\x0e\x01\x8e\x7b\x1f\ \x6a\x5f\x3d\xd4\xb5\x04\x10\xa1\x85\x63\x27\x3e\x94\xb7\x6b\xdc\ \xe5\xd6\xa9\x29\xbd\x77\x64\x67\x54\x3e\xa7\x0e\x12\x40\x2e\x2c\ \x20\x7d\x3b\xf0\x6a\xa3\xeb\xec\xc8\xc8\xd2\xef\xc4\x53\x85\x0d\ \x17\x1a\x42\x54\x9e\x4f\x0a\xdc\x4f\xc0\xc0\x3f\x95\x59\x12\x65\ \xa5\xc9\x6e\x28\x20\x29\xb6\x12\xa2\x94\xf7\xc9\xf7\x1f\x87\xa5\ \x50\x5f\xa4\xad\xd7\xc2\x8d\x11\x90\xea\x52\x14\xf9\x52\xd4\x39\ \x07\x00\x0e\xdf\x88\x35\x86\x5d\x79\xa4\xb9\xb3\x4d\x15\x95\xdd\ \xf2\x29\x3d\x51\x01\xb5\x6a\x2b\xbb\x61\x84\x15\xc9\x96\x0a\x48\ \x40\x3e\x12\x42\xf2\xad\xbe\xd9\x38\xc7\xba\x6a\x51\x1a\xde\xe4\ \xad\x04\x34\x9c\x87\x12\xa7\xe7\x4a\x52\xe1\xf8\x80\x00\xb9\x03\ \x09\x46\xd5\xfa\x03\x94\xa7\x9e\xc4\x1c\xf0\x6a\x2e\xdc\xa6\xe4\ \x33\x35\xf4\xa5\x68\x2e\xb9\x90\x47\x00\x1d\xaa\xc2\x7f\x3d\xbf\ \x95\x48\x27\xdc\x1c\x77\xf5\x54\x64\x04\xb9\x1d\x69\x42\xdb\xf7\ \x4a\x82\x48\x2a\x1f\x50\x8e\x7e\x41\xae\x83\x8d\x49\xa4\xbf\xd6\ \xc2\xe6\xe9\x53\x4d\xda\xf7\x4f\xee\x57\x96\xc9\x42\xd5\x39\xf8\ \xd7\x1b\x72\x64\x01\x96\x9d\x6d\x44\xa1\xc4\x28\x1f\xdd\x50\xec\ \x41\xfa\x8f\x71\x56\x7d\x87\xa8\x71\xd9\x65\x98\xd1\x6e\x0b\x43\ \x28\x40\x4e\xc7\xe1\xa5\x05\x27\xea\xd9\x19\xfa\xe2\xa3\xd7\x1d\ \x2e\xbb\xea\x95\x24\x2c\xb5\x39\x5d\xd4\xae\xce\x9f\x93\xef\xf3\ \xeb\xeb\x5a\x6c\x5a\x1a\xe6\x66\x04\xce\x2b\x8a\xd8\xfd\xe5\x23\ \x3f\x85\x6d\xc5\xd2\xa7\x17\x9e\x5b\x9c\x9c\x3c\x95\x78\x70\xe5\ \x6b\x17\xde\x84\xea\x4d\xbe\x1b\x6a\x91\x26\x78\x53\x68\x1c\x9d\ \x87\xf8\x0e\x6a\xcc\xb3\xf5\x6a\xcb\x37\xc3\x69\x13\x52\xb7\x1c\ \xc0\x65\x86\x92\x5c\x75\x7e\xde\x54\xe7\x68\xf9\x56\x2a\x91\xd1\ \xdd\x3f\xd3\x72\x5c\x4c\x6b\x83\xd2\x66\x36\x4f\xdc\x6b\xf6\x40\ \x9f\x92\x39\x35\xd0\x5a\x1f\x4e\x59\x2c\x50\x50\xcd\x92\xcf\x12\ \x0a\x55\x8c\xa9\xb4\x0d\xea\xfa\xa8\xf2\x7f\x3a\xac\x31\x78\xa7\ \x68\xd3\x8b\x39\x18\xaa\x58\x58\x36\xa1\x26\xc9\xf6\x97\x93\x2a\ \x4c\x60\xf3\xad\x96\xc2\xb9\x09\x3d\xe8\xa7\x1b\x5b\x78\x8e\xca\ \x07\x07\xf9\xd1\x5d\xbc\xce\xcb\x3e\xe2\xe9\xc1\xa8\x95\x8d\x91\ \xb0\xd5\x92\x13\x84\x67\x21\xc3\xff\x00\xf7\x15\x5b\xa4\xa0\xee\ \x40\xe0\x80\x72\x69\x7c\x08\xa5\x5a\x1e\xdb\x29\x00\x12\x9f\x13\ \x38\x1f\xf1\x8a\xa6\xf7\x54\x56\x94\xac\x80\x30\x73\xc0\xad\xd4\ \xdd\xe0\x8c\x0d\x58\x99\xdb\x49\x4c\x26\xc9\x27\x84\xf1\xc7\x15\ \xaa\x18\xdd\x31\xc7\xb3\x9c\x71\xc8\xe4\x57\x96\x97\x02\xed\xc9\ \x3b\x8e\x40\xe4\x66\x8b\x77\x09\x77\x18\x3e\x6c\x7c\xd5\x80\x8a\ \x33\xd4\x9b\x85\xb2\xdf\xa8\x35\x08\xd3\x08\x95\x6b\xb1\x5d\xff\ \x00\x56\xcb\x58\x9b\xb5\xe5\xa8\xb8\x94\x05\x34\x8d\x98\x57\xf5\ \x8d\x93\xb9\x49\xee\x7d\xb3\x4f\x57\xde\xa2\x49\x82\xbd\x4b\x6d\ \xd4\x76\x96\x20\x3f\x67\xb6\xa2\xe4\x55\x12\x59\x7d\x0e\xb4\xbd\ \xc3\x6e\x4a\x11\x85\x85\x27\x6f\x6c\x1c\x83\xc5\x37\xbd\xd3\x8b\ \xdc\xae\x9b\xeb\x2b\x23\x72\xad\xc9\x95\x7e\xd4\x29\xba\x45\x52\ \x9c\x58\x42\x1a\x0e\xc7\x56\xd5\x9d\xb9\x0a\xc3\x2a\xe0\x02\x39\ \x1c\xf7\xc2\x8d\x5d\xa1\xdf\xbe\x6a\x2d\x53\x3e\x64\xa6\x5b\xb7\ \x5e\x6c\x4d\xdb\x1b\xd8\x49\x75\xb7\x12\xb5\xab\x79\x49\x18\xc0\ \xdc\x08\xe7\x9c\x7a\x57\x36\xf2\x95\x4c\xdd\x86\x9f\xdd\x85\x3b\ \x76\xaf\xbf\xe0\x8d\x5a\xb5\x35\xc0\xdf\xad\x96\x9b\xe5\x99\xb8\ \x2b\xbb\x30\xb7\xa1\xa9\x99\x5e\x36\x0a\x00\x52\x9b\x73\x28\x4e\ \x15\xb4\xe7\x23\x20\xf3\xcf\x19\xa6\xfb\x37\x51\x26\x49\xd1\xcc\ \x6a\x69\x36\x16\xe3\xc7\x9a\xa6\x23\xc0\x6c\xcc\x1b\xe4\x48\x71\ \x7b\x08\x27\x6e\x10\x80\xac\xf9\x8e\x4e\x01\x38\xf4\xa7\x96\x34\ \x5e\xa5\x93\x7f\xb3\x5e\xaf\x92\x2d\x89\x4d\x9a\x3b\x88\x60\x44\ \x52\xd4\x5f\x71\xc4\x04\x17\x14\x14\x91\xb0\x6d\x07\xca\x37\x7d\ \xe3\xcd\x31\x40\xe9\xc5\xd9\x7d\x2b\xb4\x69\x79\x2e\xc1\x54\xfb\ \x5b\xe8\x92\xda\xd4\x92\xe4\x75\xad\x0e\x15\x84\xa8\x10\x0a\x90\ \x41\x20\xf1\xeb\xeb\xeb\xba\xf2\x7b\x18\xda\x91\x27\xd2\xba\x99\ \x77\x69\xd7\x6b\x5c\xb8\xf1\xe3\xcf\xb6\x38\xda\x5d\x4c\x79\x1e\ \x33\x4e\x21\xc4\xee\x42\xd2\xad\xa9\x3c\xf2\x30\x47\x04\x1e\xf4\ \xcd\x17\x57\x3d\xa5\xee\x1d\x43\xb9\x4d\x82\xf3\xdf\xaa\x53\x6f\ \x77\xc3\x4c\xd5\x2d\x0b\x69\xcd\xc9\x1b\x10\xa4\x80\xda\xb6\xf2\ \x40\xc8\x27\xd7\xd6\xa5\xda\x27\x4d\xbd\x00\x48\x76\x65\x96\xc9\ \x6c\x52\xca\x70\x8b\x6a\xb7\x05\x81\x9e\x54\x7c\x34\x76\xc9\xc7\ \x1c\x64\xd4\x7f\x59\xe8\x0b\xcd\xe7\xfa\x7e\x88\x4f\xc0\x48\xd4\ \x31\xa0\x35\x13\xc5\x5a\xc7\x86\x58\xce\xf2\xe6\x12\x70\x0e\x78\ \xc6\x7e\x71\x54\xa8\xdb\x8e\x85\xad\x24\x93\x5e\xb4\x62\xa7\xf5\ \x45\xe9\x8d\x51\x36\xc7\x70\xb2\x43\x89\x70\xfd\x54\x6e\x71\x76\ \x4c\x53\xad\x94\x85\x6c\x28\x70\xf8\x69\x29\x50\x51\x1d\x81\x18\ \x3c\x76\xa6\x1d\x25\xad\xef\x4d\xe8\x3d\x39\x36\xee\xcc\x19\x97\ \x1b\xd3\x88\x66\x17\xfb\x41\x6c\x2c\x90\xa5\x2d\x6e\x9d\x98\x42\ \x52\x13\xfb\xa1\x5e\x82\xa7\x57\x0d\x2b\x2e\xe1\xd4\x8f\xe9\x1a\ \xde\x8e\x88\x46\xc0\xe5\xb0\xa3\x71\xf1\x43\xaa\x79\x2b\xdd\x8c\ \x63\x6e\x01\xf5\xce\x7d\x3d\x6a\x14\xd7\x4b\xef\xc9\xd2\x5a\x7e\ \xd5\x2c\xd9\x1f\x93\xa7\xa4\x05\xc6\x0b\x5a\xdd\x62\x5b\x78\x52\ \x54\x97\x12\x50\x36\x12\x95\x0c\x63\x7e\x08\xa8\x53\x90\x4e\x13\ \x4e\xe8\x5b\x23\xa9\x2e\x33\x64\x2f\xfe\xa6\x4b\xd7\x16\xef\x89\ \xb2\xbb\x11\x99\x61\x49\x53\xaa\x4e\x50\xa4\x2c\x81\x94\xa8\x94\ \x72\x40\xc6\x4f\xb5\x38\x7f\x4d\xae\xb0\xae\x2e\xc1\x6a\xcf\x6e\ \x7a\xe9\x02\xd9\xfa\xc6\xe0\xd2\xee\x45\xb6\xd0\x32\xad\xad\x36\ \xaf\x0c\xef\x59\xda\x4f\x21\x23\xdc\xf3\x49\xee\x5a\x1a\xeb\x72\ \x85\x65\x8e\xd5\xba\xc3\x67\x5c\x4b\xec\x5b\x8b\xcd\x44\x52\xbc\ \x35\x36\xd2\xb2\xac\x10\xda\x77\x2f\xd0\x65\x20\x76\xe4\x53\xad\ \xe7\x42\x3a\xde\xb9\x5e\xa5\x85\x6b\xb0\xdd\xd1\x2e\x1a\x22\xc8\ \x89\x76\x04\x04\x29\x0a\x25\x2e\x36\xa0\xda\xfd\x14\x41\x4e\x06\ \x70\x39\x15\x15\x27\x24\xad\x72\xd0\x84\xef\x71\xda\x27\x53\x1c\ \xbc\x5e\xad\x76\x7d\x39\x6e\x80\xeb\xf3\xec\xed\x5d\x9a\x55\xca\ \xe0\x62\xa5\xd4\x38\x78\x69\xbd\xad\xac\xa9\x63\x07\x77\x18\x4f\ \xcd\x37\x45\xbd\xeb\x29\x9d\x53\xd6\x76\x38\xed\xda\xdc\x85\x6d\ \x8d\x10\x47\x6d\xd9\x2b\x6f\x69\x71\xb7\x94\x95\x6e\x4b\x64\xe5\ \x44\x24\x2b\xfb\x21\x3c\x66\xb7\x75\x07\x45\x5d\x75\x55\x89\x8b\ \x03\x16\xad\x37\x09\x94\x36\xd1\x8b\x3d\x2e\xb8\x97\xad\xce\x0d\ \xa5\x4a\x61\x09\x6c\x76\xc7\x1e\x74\x7a\x67\xda\x9d\x23\xe9\x9b\ \xd5\xa7\xa9\xb7\xad\x42\xc3\x90\x65\x5b\x6f\x4c\x44\x43\xc5\xd7\ \x94\x89\x0c\xae\x3a\x16\x9e\x12\x10\x52\xb0\xad\xd9\xfb\xc9\xc7\ \xb1\xac\x11\xd2\x46\xf9\x71\x25\xbf\x27\xf4\x7f\x82\x13\xa0\xf5\ \xcc\xb6\xf4\x9e\x84\x89\x6f\xb4\xbb\x36\x4e\xa1\x6e\x4a\x19\x13\ \x6e\x2a\x51\x6c\xb4\x4a\x89\x71\xd2\x92\x54\x36\x85\x1c\xed\xcf\ \x00\x01\x4e\x8b\xea\x43\xcf\x59\x4a\x5c\xb2\xb6\x2f\x89\xd4\x0a\ \xb0\x08\x68\x94\x4b\x2a\x90\x90\x14\x56\x1c\xd9\x90\xde\xcf\x36\ \x76\x64\x76\xc6\x69\x26\x8a\xe9\xd5\xea\xcc\x9e\x9d\xb7\x2a\x55\ \xb9\x6a\xd3\x3f\x6d\xfb\x6f\x86\xe2\xc8\x73\xc6\x6d\x69\x4f\x87\ \x94\x8c\xe0\xa8\x67\x3b\x7f\x1a\x43\xa8\x74\x7c\xcb\x3c\x69\xf7\ \x59\x17\x08\xac\xcb\xfe\x98\x2e\xfb\x6f\x52\x59\x79\xe6\xca\x16\ \xda\x51\xe1\xbc\x10\x82\x51\x94\x85\xe5\x40\x10\x0e\xde\x69\xea\ \xf7\x46\x5b\xd4\x50\xd7\xd6\x88\x96\x68\xad\x51\x3a\xf5\x7c\xbf\ \xd9\x6e\x36\xb6\xa0\xcb\xb2\x2d\x86\x9e\x2d\xbe\x5d\x43\x85\xc4\ \x15\x85\x24\x94\xa4\xe3\x6e\xd3\xc8\x07\x92\x3d\x39\x9f\xdb\x9b\ \x21\x9d\xde\xf5\x4a\x74\xfa\x36\xb1\x9d\x71\xd7\x77\xeb\x6a\x20\ \x35\x3a\xe9\x2a\x28\xb7\x3f\x32\x3b\xc8\x8a\xe0\x69\xb0\x85\x10\ \x08\x0b\x52\x40\xca\x42\xb0\x37\x11\x9c\x7a\x55\xe2\xdf\xec\xa3\ \x80\xac\x6e\x03\x9c\x0a\xad\x59\x5d\x58\xd3\x84\xbb\xd5\x9a\x5e\ \xf3\xc8\x48\xc7\x00\xd2\xe5\x28\x21\x19\x24\x62\x92\x46\x49\x53\ \xbb\x8d\x63\x73\x77\xcb\xe1\x8e\x29\x4e\x39\xa4\xa2\x6b\x52\xca\ \x9c\x8c\xe5\x79\x9b\xde\x80\x08\x3e\x95\x1c\xba\xb6\x92\xda\x93\ \x8a\x7a\x84\xf0\xf0\xca\x14\x7b\x53\x7d\xdb\x6a\x42\x88\x23\xb5\ \x68\xa2\xb2\xca\xc2\x2a\x4a\xeb\x32\x28\x7e\xac\x5b\xd9\xf0\x5c\ \x75\xcd\xa1\x23\x39\xc9\xc0\x23\xd4\x57\x1e\x5d\xed\x4c\xc5\x9d\ \x3a\x1b\x8b\x49\x4a\x17\x84\x2c\x11\x82\x3b\xa4\xff\x00\x01\xda\ \xbb\x8f\xa8\xed\x32\xfc\x57\x12\x52\x15\x90\x46\x31\x9c\xd7\x21\ \xf5\x4d\x8b\x7b\x77\x22\xdb\x6a\x40\x90\xc2\x8e\x50\xca\x07\x95\ \x27\x9c\x28\x8f\x5c\xfa\x52\x7a\x46\xea\x49\x8d\xe8\xd9\xae\x23\ \x8f\x69\x5b\xcb\x01\xb4\x16\xc1\x2e\x36\xda\xb3\xbb\x1b\x77\x66\ \x90\xab\x24\x03\xfc\x3d\xa9\x44\xc2\x92\xac\x93\x93\xea\x7e\x7d\ \xa9\x32\x73\x9c\xfe\x35\x96\x3b\x1b\x2a\x7b\xd6\x2c\x3e\x86\x5e\ \x55\x07\x50\x2e\xde\x9d\xa9\x75\xf4\x9f\x05\x6a\xec\x92\x01\xcf\ \xe6\x3f\x3e\x2b\xb1\xf4\xdc\xc5\x4a\x89\x1d\x78\x4a\x96\xcb\x61\ \x0e\x82\x78\x2a\xc6\x4f\x6f\xf5\xc5\x70\x15\xb5\xd7\xe3\x5d\xa3\ \xc9\x86\xa5\x25\xd0\xa0\xa6\xcf\x63\xbb\xbe\x2b\xae\xfa\x67\xa9\ \xc4\xcb\x4c\x0b\x8c\x64\xbc\xff\x00\x8a\x0b\x8e\x82\x07\x99\x69\ \x49\xcf\xd0\x9e\xd8\xf8\xae\x46\x3a\x9e\x4a\xaa\x6b\x66\x75\xf0\ \x53\xe2\x50\xc9\xce\x25\xcd\x16\x52\x52\x50\xe8\x20\x21\xd0\x0a\ \x49\xf5\xee\x08\xc7\xa7\x22\x9c\x96\xe2\x50\xc6\x14\xe6\xc5\x28\ \x85\x79\xbd\x0e\x2a\x31\x6d\x7d\x1f\x64\x3b\x5b\x07\x01\x2b\x4a\ \x09\xc7\x98\xf7\x03\xe0\x71\x4f\x4a\x79\x29\x4b\x99\x41\x53\x89\ \x4f\x09\xce\x48\x57\xf6\xbe\x9e\xff\x00\x14\xa8\xcb\x40\x9a\xd4\ \x75\x83\x28\x21\xe4\xa9\x4b\x40\x07\x18\x27\xb6\x7d\x85\x3b\xaf\ \x2e\x34\x57\x90\x49\xc1\x2a\x1f\xcb\xe0\xd4\x2e\x44\xc2\xc3\xa1\ \x01\x40\x37\x80\xb5\x85\x71\xdf\xdb\xe7\xe9\x4f\x91\x64\xed\x61\ \x05\x04\xbb\x9f\xbe\x53\xc7\x70\x3b\x81\x53\x09\xf2\x29\x28\xb5\ \xa8\xe0\xa4\x2b\x07\x91\xbb\x18\x15\xa0\x85\x24\xf2\x33\x8e\x4e\ \x3b\x66\x94\xa0\x95\x25\x21\x5e\x53\x8e\xc1\x40\xee\xac\x78\xf3\ \x63\x18\xf5\xc5\x35\x3b\x30\x4e\xe6\xa6\x9c\x6b\x2a\x52\xc6\xd0\ \x91\xe6\xdc\x3d\x3e\x2b\x15\xc8\x86\xd9\x48\x52\x41\xe3\x00\x9e\ \x72\x3e\x4d\x6c\x75\x2d\xa5\x25\x6e\x1d\xde\x98\x1d\xe9\xbe\x41\ \x65\x2a\xcb\x4d\x95\x82\x9c\x7d\x0f\xe3\x5a\x23\x27\xc8\xba\xd4\ \xd8\xe3\xd1\x0a\x77\xb8\xc0\xce\xfd\xaa\x1e\xde\xf5\x8a\x26\x47\ \x52\x40\x65\x9f\x2e\x4e\x71\xed\xee\x6b\x4a\x76\xe7\x7f\x86\x9d\ \xc4\xf3\xba\xb0\x2b\x47\x2a\xd8\x9c\xe7\x83\xc0\xcd\x44\x99\x74\ \x66\x42\x4b\xea\x4a\x52\x13\xc7\x7a\xf5\xb4\xa1\x2d\x03\xd8\x93\ \xe9\xe9\x5e\x87\x02\xd4\x70\x3c\xc7\x9c\xfa\x56\xc4\xe1\x03\x9f\ \x4c\x9a\xcd\x32\x1b\x33\x8e\xb2\xdb\x81\x69\x4e\x48\x1c\xe3\xda\ \x91\x6a\x7b\x88\xf0\x91\x19\x05\x3b\x94\x00\x48\x07\xd7\xbf\xe7\ \xde\x92\xbb\x74\x47\x88\xa0\x97\x30\xda\x81\x4a\x47\x62\x78\xe4\ \xf3\xed\x51\xb8\x73\x45\xc1\xf3\x26\x46\xe5\x36\xc2\x89\x6c\x64\ \x83\x9e\x47\x22\xb3\x54\xa9\xa6\x54\x4c\x61\x77\x77\xc8\xdb\x73\ \x92\x88\x50\x9c\x38\xd8\xe1\xdc\xb5\x0f\x82\x3f\xf4\xae\x45\xfd\ \x23\xee\xce\x4d\xea\x0b\x50\x50\xea\x14\xcc\x78\xe8\x52\x90\x83\ \x90\x95\xab\x24\x83\xf8\x60\xfe\x22\xba\x2b\x59\xea\x08\xd0\x62\ \xbf\x26\x44\xa5\x33\x19\xb4\x17\x5c\x58\x20\x8e\x07\x63\xf1\xdb\ \x1f\x53\x5c\x63\x74\xb8\xae\xe9\x7e\x99\x76\x78\xef\x5c\xa9\x0b\ \x70\x83\xc7\x04\xf0\x3f\x01\xc7\xe1\x4c\xc0\x43\x3d\x57\x3e\x4b\ \xf9\x23\x15\x2c\x94\xd4\x79\xcb\xf8\x26\x3a\x45\x98\x32\xad\xaf\ \xc7\x7d\x61\xb5\x12\x92\x8c\xf6\x57\x03\x82\x7d\x06\x78\xcf\xcd\ \x2a\xb1\xb9\x19\x6e\x8b\x53\x8d\xf8\x32\x63\xa8\x96\x52\xb1\xc9\ \x0a\xdb\xce\x7d\x71\x83\xf9\x9a\x61\xb0\x2d\xc5\x35\x15\x4d\x2c\ \xee\x5b\x9f\x67\x29\x00\x1d\xc7\xba\x4f\xe3\x8c\x54\xef\x4a\x5a\ \xad\xf7\x99\xa9\x44\xe6\x54\x95\xc7\xe5\x0f\x32\xad\xab\x49\x3c\ \x00\x0f\xc7\x7c\x56\xa8\xda\x32\x95\xfb\x6e\x65\xc7\x55\x6a\x9c\ \x6f\xee\xd8\xb0\xf4\x96\x9b\x6a\x64\x54\x82\x90\x54\x45\x3f\xa7\ \x46\xbe\xc4\x8c\x82\xa0\x83\x4b\xb4\x16\x9d\x9d\x0c\x20\xb3\x73\ \x72\x52\x06\x30\x97\x1b\x09\x50\x19\xe0\x64\x77\xab\x76\x25\x97\ \xed\x70\xc0\x59\x4e\xe0\x3b\xd7\xa6\xc3\xca\x96\x2e\x9a\x94\xe3\ \xb1\xe5\x25\x26\xa5\x64\xee\x40\x34\xc6\x9e\x66\x2b\xe8\x50\x40\ \xef\xcd\x5a\x70\xa1\x25\x31\x52\x52\x00\x18\xa4\x30\x2d\x6d\xb4\ \x54\xd9\x00\x28\x76\x38\xa9\x0d\xa4\xa4\xb4\xa6\x57\xf7\xbd\x05\ \x6b\x9a\x8c\x17\x55\x15\x83\xbb\xb3\x1c\xed\xa9\x4e\x5a\x38\x3f\ \x18\xa2\xbd\x86\x76\x6d\x49\xfd\xd3\xcd\x15\xcc\xaa\x9b\x91\xd1\ \xa5\x2b\x22\x23\xd3\xf4\xa2\x7f\x4f\xa2\x30\xa0\x0a\xb0\xe6\x7d\ \xff\x00\xac\x55\x47\xe4\x47\x5c\x69\x0b\x8c\xb3\x8c\x1e\x29\xc3\ \xa7\x4e\xaa\x2e\x95\x84\xe8\xe5\x2a\xdf\x91\x9f\xf8\xc5\x53\xc6\ \xa1\x84\xd4\xc8\xe2\x54\x70\x0a\xc1\xce\x12\x39\xf9\xae\x8d\x35\ \x97\xc0\xe5\xdf\x34\x13\xe6\x86\xdd\x36\xf6\x50\xb6\x16\x7b\x1e\ \x29\xc2\x18\x29\x7d\xc4\x92\x78\xf8\xa8\xfb\x0e\xa9\xa7\xbc\x40\ \x08\x29\xe0\x8c\xf7\xa7\xa6\xde\x0e\x29\x0f\x24\xe4\x91\x83\xcd\ \x34\xa1\x36\x61\x59\xb5\xa4\xf7\xf2\xfa\x53\x55\xc4\xe4\x21\x19\ \xf2\x9a\x53\x6a\x7d\x0b\x82\xb6\xf3\xd8\x52\x39\x4f\x21\xc2\x87\ \x10\x77\xa4\x28\x8c\x83\x9e\x41\xc7\xf0\x39\xac\x54\xe2\xe3\x36\ \x6e\xab\x25\x28\x23\x09\x6b\x42\x23\xec\xf8\xf4\xa4\xf1\x51\xe2\ \xad\x0d\xa9\x5b\x73\xdf\x8a\xc1\xc5\x87\x65\x7e\xd3\xee\x27\xde\ \x86\xe4\x36\xbb\x80\x65\x97\x10\xa7\x50\x37\x29\xb0\xa1\xb8\x24\ \x9e\x0e\x3d\xbe\x6b\x52\x56\x46\x56\xee\xc5\x8f\x34\xe4\x7f\x32\ \x14\x14\x07\x7a\xdf\x15\xc0\xc3\x41\x6b\x18\x2a\x3d\xab\x25\xb6\ \xb4\xac\x2c\x1c\xa4\x8e\x45\x78\x52\x1d\x58\xe3\x18\xa4\x39\x66\ \x5a\x8e\x4b\x2b\xd0\x1f\x2b\x0b\x49\x6c\x67\x75\x6c\xfb\x32\x0a\ \x14\xa5\x2c\xee\xaf\x51\xb8\x37\xb0\x0e\x47\x6c\xd6\x4b\x6d\x69\ \x8d\x84\x9d\xca\x35\x46\xf9\x0c\x4b\x98\x91\x59\x1b\x14\x01\xe0\ \xd2\xbc\xa5\x6d\x05\x03\x8c\x52\x28\x72\xe2\xc9\x6d\x69\x61\xf6\ \xa4\x6d\x25\x0a\x2d\xac\x28\x02\x3b\x8c\x8f\x5a\x51\x19\x0f\x79\ \x80\x42\xb6\xfa\x66\xa6\x5a\xa2\xb1\x1c\xa3\x9d\xc1\x1f\x5a\xd9\ \x3d\x43\xca\x3b\xd6\xa8\xe1\x48\xda\x14\x9c\x7a\xd6\xa9\x6f\x85\ \x38\x40\x3f\x15\x95\x46\xf2\x35\xb9\x5a\x06\xb4\x11\x95\x2b\xd2\ \xb4\xe7\x72\xca\x88\xaf\x1d\x5e\x06\xc4\xe3\xe6\xb7\xc4\x60\xac\ \xf3\xf7\x45\x3f\x48\xab\xb3\x3e\xb2\x76\x46\xfb\x7b\x3d\xdc\x57\ \xe1\x5b\xdd\x56\xe5\x63\xd0\x77\xaf\x14\xb0\x06\xc4\x70\x2b\xc4\ \x83\x90\x9e\xe6\xb3\xbb\xb7\x76\x69\x4a\xca\xc8\xd8\x95\x06\x9a\ \x2a\x3d\xe9\x08\x4f\x8e\xb2\xb5\x76\xad\xb3\x49\x2b\x0d\x03\xc5\ \x68\x79\x41\x86\x4f\x22\xad\x05\x65\x7e\x6c\xac\x9d\xdd\xb9\x21\ \xae\xf1\x31\xbb\x78\x2e\x29\x61\x29\x1e\xa4\xd5\x6d\xaa\xba\xb3\ \xa6\xa1\xb4\xe2\x5c\xb9\xb3\xe2\x20\xe0\xb6\x16\x9d\xd9\xfa\x66\ \x9b\x3a\xf7\x7f\xbc\x1b\x78\xb6\x59\x1f\x87\x1a\x43\xc7\x2b\x91\ \x25\xcd\xa1\xa4\xfb\x81\xea\x4f\x35\xcc\xea\xd3\x2f\xb4\xa9\x92\ \xef\x1a\xa6\x3c\xd0\x7c\xc6\x34\x62\xa2\x1d\x50\x3c\x0c\x80\x06\ \x73\x58\xf1\x58\xfe\x1c\x94\x56\xe4\x50\xc3\x2a\xd7\x72\x95\x91\ \x33\xea\x8f\x56\x15\x70\x6d\xd8\xd6\x44\x4b\xda\x78\x5c\x8d\xc1\ \x00\x7c\x05\x67\x8a\xa1\x2e\xd3\x9f\x78\xe5\xf7\xc3\x3b\x95\x93\ \x80\x4e\x13\x8e\xfc\xf7\x27\xde\xac\x8b\x9c\x3b\x2b\x70\xb6\x5c\ \x25\x22\x12\x10\x90\x7c\x24\xba\x92\xa2\x48\x04\x1c\x9f\xf0\x15\ \x06\xbc\x4f\xd3\x0c\x33\x25\x11\xd8\x54\xd7\xd6\x02\x5b\x75\x6a\ \x52\xd4\x9e\x73\x9c\x9c\x01\xf9\x1a\xcd\x1a\xb3\xae\xf3\x49\x1d\ \x5a\x31\xa1\x41\x64\xa7\x7b\xbd\xd9\x11\x52\x14\xb6\x8b\xab\x25\ \x3f\xd9\xcf\x75\x13\xed\x58\x0c\x11\x9c\x7e\xed\x6d\x93\x25\xc9\ \x0e\xf8\x8b\x3b\x71\x9d\xa9\x4f\x61\x5a\x52\xa2\x84\x28\xfb\x8a\ \xd2\xaf\x6d\x4c\xf3\xb5\xf4\x14\xb0\x7c\x29\x4c\x3e\x47\xef\x05\ \xe3\xf1\xab\xbf\xa6\x12\x57\x67\xbc\xa2\xce\x40\xf0\x5d\x74\x3f\ \x1d\x59\xf2\xe7\x82\xa4\xfd\x78\xcf\xfe\x95\x56\xea\xeb\x6c\x2b\ \x65\xc5\x9b\x5a\x56\xa0\xf2\x2d\xec\x97\x54\xa5\x64\x87\x8a\x02\ \x94\x9e\x4f\x03\x9e\xde\x98\xab\x45\x88\x6a\xb8\xe8\x7b\x55\xd5\ \xb5\x94\x3b\xe1\xb4\x54\xe2\x40\xdc\x95\xa7\x8c\xe3\xe7\x18\xfc\ \x6b\x99\x8f\x95\xe1\x17\xc9\xfa\x47\x6f\xa2\x62\x9c\xa7\x0e\x7e\ \xae\x5f\x76\x7b\xcb\x29\x75\xe5\xad\xd0\xb6\xf8\x4a\x41\xe3\x9d\ \xde\xde\xd9\xf5\xa9\x23\x52\xdb\x56\x77\x27\x6a\x0a\x55\xb4\x13\ \xdf\x68\xc1\xdc\x7e\x3d\x2b\x9e\xb4\x96\xa3\x75\x49\x5c\x49\x0a\ \xf0\x25\x05\xed\x78\x2b\xb6\x33\x9c\x83\xed\x90\x4d\x5b\xba\x72\ \xfa\xc4\x88\xcf\xc4\x5a\xd2\xe2\x8e\x49\x4e\x41\x51\x48\x27\x27\ \xf1\xe0\xf1\x5c\xd8\xcf\x2b\xca\xcd\xb5\xb0\xed\x2b\xa2\x62\xb7\ \x1a\xfb\x39\x5b\xdb\x7c\x40\x37\x00\xa3\x95\x03\xeb\xf4\xe3\xf9\ \xd6\x36\x1b\x92\x52\x1d\x42\x1d\x59\x64\xac\xe7\x27\x71\x38\x38\ \x18\x3e\x99\xf4\xa6\xb6\x6e\x2d\x29\x85\x48\x3e\x11\x64\xa0\xab\ \x07\x2a\xe3\xe3\xdf\xe9\xf1\x4d\x0f\xce\x62\x25\xe2\x38\x6a\x3e\ \x5e\x71\x7b\x7c\x24\xaf\x0a\x2b\xc6\x46\xef\x7c\x0c\x7e\x75\x6c\ \xf6\x69\xa3\x26\x4b\xe8\xcb\x36\x43\xcb\x4b\xc8\x70\xe1\xa6\x90\ \x00\x69\xa0\xac\x92\x9f\x53\xc7\xcf\x14\xe0\xdc\x9d\xea\x05\x21\ \x38\x3d\xf1\xe9\xf5\xa8\x8d\x9e\xef\xe2\xba\x8d\xd2\x9a\x4e\x5b\ \xcb\x98\xe5\x48\x03\xd7\xf0\x3c\xd3\xdb\x6f\x17\x23\x78\xc8\x2a\ \x79\x0e\x04\x84\x24\x0e\xe0\x1c\x67\x3f\x3e\xd5\xae\x3a\xea\x8c\ \xed\x5b\x46\x2c\x75\xc7\x14\x14\x12\xa4\xab\x1c\x2b\x3d\xc5\x68\ \x62\x30\x74\x82\xa7\x95\x8e\x48\xcf\x35\xb5\x97\xd1\xb1\x0e\xba\ \xb4\xaf\x6a\xca\x4a\x47\x74\x91\xc7\x3e\xf5\xbe\x2a\xda\x01\x68\ \x20\xb9\x85\x67\xcc\x30\x47\xb5\x3e\x04\xa9\xe9\xa1\x8a\x62\x6f\ \xf3\xa5\x3b\x8a\xb3\xf8\xe3\xf9\x1a\x4d\x22\x2a\x9d\x5a\x90\x52\ \x84\xa7\x1b\xb9\x39\x27\x07\x9a\x5b\x1d\xc0\x42\x96\x96\xd4\x0e\ \x77\x04\x13\xc9\x07\xbd\x27\x7d\x63\x6b\x6a\x0a\x04\x94\xfa\x1e\ \x70\x7b\x8f\xaf\xc5\x59\xd8\x9c\xcd\x31\xb3\x86\xde\x70\x24\xfe\ \xcd\x05\x27\x70\x3c\x12\x78\xff\x00\x43\xe6\xb4\xc8\xb9\x25\xa6\ \x1c\x7d\x4b\x46\x5b\xc9\x20\x1f\x51\xee\x2b\x75\xd9\xf4\xc6\x61\ \xd9\x2d\xc8\x4a\x08\xe4\x93\xdf\xd3\xd3\xe9\x51\x6b\xbc\xef\x05\ \x6d\xa9\x4d\x2d\x95\x2b\x97\xc1\x19\x1c\xa7\x21\x43\xdf\xb7\xf1\ \xac\x75\x5e\x51\xab\xac\x37\x6a\xeb\xab\xbf\xa9\xd4\xb6\xd5\x97\ \x54\xe6\xd6\x4f\x8b\x9c\x05\x0e\xff\x00\xcf\xf9\xd6\xb6\x66\xa5\ \xb8\x3e\x47\x47\x8a\x94\x02\xe0\x20\x60\x64\x11\xe9\xe8\x78\xc5\ \x43\x2f\x77\x17\x2e\x37\x56\x19\x8e\x84\xa9\xb6\x4e\xf5\xad\x18\ \xfb\xf9\x00\xfe\x1c\x9f\xc6\x91\xeb\x9d\x4c\xbb\x44\x05\x33\x0f\ \x2e\x4f\x53\x48\x43\x0c\xb6\x39\x56\x0e\xe2\x15\xec\x30\x39\x3e\ \x95\xcf\x93\x6e\x5a\x1b\x23\x4b\x44\x8a\xd3\xf4\x8b\xd5\x81\x71\ \xe3\xe9\xb8\xc9\x42\x5c\x7d\x09\x76\x56\xd5\x79\x91\x85\x1c\x24\ \xfe\x40\xd5\x2e\xc7\xdc\xf2\x9e\x41\xc9\xac\xae\xd3\xe4\xdd\x2e\ \x92\x2e\x53\x56\x1c\x7e\x43\x85\x6b\x50\xed\x9f\x61\xf0\x2b\xd4\ \x36\xb4\x46\x53\xdb\x78\x48\x1f\xc7\xff\x00\x4a\xf4\x58\x7a\x0a\ \x85\x25\x1e\x7f\x53\x83\x88\xaf\xc7\xaa\xe5\xc9\x6d\xe0\x3d\xda\ \x56\xa1\x66\x79\xa6\xc9\x3b\xdc\x6d\x48\x29\xee\x9d\xa4\xf2\x3e\ \x40\x3f\xc6\xa7\x5a\x1f\x54\x45\xfb\x53\x28\x9c\xff\x00\xd9\xa4\ \x17\x3f\x79\x3f\x7f\xb6\x09\x3e\x87\x15\x5b\x45\x56\xd8\xd9\x6f\ \x25\x25\x59\x71\x3f\xd9\x48\xe7\x23\xf9\x56\x6b\x2a\xb8\x45\x61\ \x29\x70\x05\x85\x1f\xeb\x09\xdc\x9e\xdf\xbd\xed\xf5\xaa\xba\x69\ \x4f\x30\xca\x96\xad\x47\x86\xfd\x7a\xb9\xdb\xfa\x4a\xec\xd3\x71\ \x98\x74\x10\xa4\x2d\x20\x85\x24\xe4\x1a\x91\x47\xd6\xf1\x5c\xbf\ \xb1\x60\xb6\xbc\x99\x37\x07\x12\x1c\x5b\x2d\x9d\xde\x0b\x7e\xab\ \x59\x1f\x77\xe0\x1e\x49\x22\xb8\xbf\x4e\xe9\xad\x63\x2c\x22\x09\ \xbf\xa2\x04\x65\x01\x95\xae\x5f\x00\x0f\x4c\x24\x93\x9f\x8a\xe9\ \xae\x84\x58\x2c\xfa\x56\xd8\x61\xdb\xdd\x12\x25\xbe\x77\x4b\x98\ \xaf\xbc\xf2\xbd\x07\xc2\x47\xb5\x3d\x63\xea\x4d\xa8\x52\x77\xf0\ \x38\x18\x9c\x1a\xc3\xdf\x3b\xd7\xb0\xbf\x5a\x69\xa9\x51\x52\xb6\ \xd4\x03\x80\x73\x9e\xe6\x92\x9f\x15\x87\x72\xa0\x52\x53\xdf\xe6\ \xb7\x5a\xc2\x56\xd8\x52\x09\xc8\x02\x97\xb8\x12\xa4\x6d\x79\x00\ \xf1\xc1\xae\xec\x65\x28\xab\x48\xcb\x93\x32\xb9\xa9\x89\x88\x51\ \x05\x20\xe4\xf1\xc5\x14\xb2\xc9\x6a\x6d\xb7\x0c\x85\x64\x83\xd8\ \x1a\x2b\x35\x5a\xd0\x8c\xac\x91\xaa\x95\x19\xca\x37\x6c\x83\x68\ \x26\xf6\x69\x78\x6d\x39\xf7\x72\xe1\xe7\xd4\x78\x8a\xa7\x92\x55\ \x1d\x59\x46\x14\x8f\x50\x07\x06\xb5\x68\xd8\x45\xee\x9f\x5b\x24\ \x23\xcc\xb4\x87\x09\x03\xd7\xf6\x8a\xa5\x29\x56\xe4\xf9\xbb\x8e\ \xfc\xd6\xca\x53\x53\x89\x86\x50\x70\x48\x41\x32\x14\x79\x61\x4e\ \x30\x42\x17\x83\x94\xd3\x4c\x66\xe7\x37\x2c\x44\x43\x6a\x3b\xbd\ \xbb\x54\x89\x4c\x24\x80\xb4\xf9\x71\xeb\x4e\x9a\x5e\x08\x5b\x85\ \xf7\x46\xec\x1c\x73\x56\xa9\x35\x08\xb9\x30\x84\x1c\xe4\xa2\x8a\ \xab\xa3\x76\x3b\x64\xed\x57\xaa\x97\x72\xb2\xbf\x2e\xe0\xc6\xa5\ \x92\x23\xdc\x17\x1f\xc4\x6a\x39\x43\x6d\xad\x20\xab\x23\x18\x56\ \x48\x1e\xea\x1e\xf5\x96\x96\xd4\x57\x4b\x26\x89\xb4\xb5\x6b\x83\ \x65\x44\xcb\x86\xb5\x91\x65\x79\x42\x3a\xd2\xc9\xdc\x5e\xcb\xdb\ \x37\x95\x67\x7a\x52\xa2\x9d\xdc\x80\x52\x08\xce\x45\xad\xa1\xf4\ \xbf\xf4\x65\x7a\x81\x62\x77\xda\xbf\x5c\x5e\x5e\xba\x01\xe0\xec\ \xf0\x7c\x44\xa1\x3e\x1f\x73\xbb\x1b\x3e\xf7\x19\xcf\x6a\x8e\xc6\ \xe9\x87\x83\x6e\xb5\xc4\x37\xcc\xfd\x83\x55\x2f\x50\xee\xfb\x27\ \xf5\x9b\x8b\x87\xc1\xfb\xfc\x7f\x59\xf7\xf9\xed\xf7\x79\xae\x44\ \xaa\x39\x3b\x9b\x23\x86\x94\x22\xac\xb5\xd7\xf9\x43\x05\xd7\x5b\ \xdd\xad\x2c\xea\xcb\x54\xe8\xb6\xc9\xd7\x8b\x4d\xca\x0c\x08\x2f\ \x34\xca\xd9\x65\xf3\x31\x28\x2d\x95\xa7\x72\x88\xd8\x14\x73\x85\ \x73\x8f\x4c\xe6\xbc\xd1\xd6\xcb\xa4\x2e\xbb\xea\x16\x2e\x72\x61\ \xcc\x79\x36\x28\xaa\x4b\xb1\xd8\x53\x29\x52\x0b\xae\x77\x49\x5a\ \xb0\x73\x91\xf7\x8f\xa7\xd2\xa4\xb7\xbe\x99\x31\x76\x9f\xab\x65\ \x3d\x78\x75\xa5\xdf\xa4\x41\x95\x1d\x4d\x32\x02\xa0\xbd\x15\x09\ \x4a\x14\x09\x24\x2f\x25\x20\xe0\x81\xc1\x23\xe6\x9c\x74\xbe\x8f\ \x9f\x6f\xd6\x73\xf5\x5d\xda\xfa\x8b\x94\xe9\xb0\x9b\x86\xb4\x35\ \x0f\xec\xed\x21\x2d\xa8\xa9\x25\x23\x7a\x8f\xa9\xce\x49\xe4\xfa\ \x0e\x28\x55\x64\xb9\x93\xec\xf2\x73\x4d\xae\x7e\x5a\xfe\x08\xdd\ \xda\xf5\xa8\xe7\xeb\xf9\x9a\x5f\x4e\x3d\x6f\x88\x6d\xd0\x1b\x97\ \x21\xf9\xac\x2d\xd0\xb7\x1c\x52\x82\x1b\x09\x4a\xd3\x84\xe1\x19\ \x2a\xc9\x3c\xe0\x0f\x5a\x43\xa7\xb5\xf4\xeb\xdc\xfe\x9f\x29\xa8\ \x8c\x47\x63\x50\xc7\xb8\x99\xcd\x9c\xa9\x4d\xbb\x1b\x6a\x70\x85\ \x7b\x6f\xdd\xe8\x72\x31\x52\xdd\x4f\xa2\xe6\x3f\xa9\xdf\xd4\xfa\ \x7a\xf6\x2d\x57\x09\x10\x93\x0e\x50\x76\x20\x7d\xa7\x10\x95\x15\ \x21\x61\x3b\x92\x43\x89\xdc\x70\x72\x46\x0f\x20\xd3\x2b\x1d\x38\ \x6e\x2c\x2d\x2a\xd5\x82\xee\xa8\x73\x34\xc8\x79\x0c\x3d\x26\x3f\ \xda\x12\xfa\x5f\x00\x3d\xe2\x24\x29\x1c\xa8\x8d\xd9\x04\x60\xfb\ \xf6\xa6\xf1\x1c\x95\xc5\xca\x95\x48\xc9\xaf\x5b\xaf\xa5\xc8\x6e\ \xa8\xd4\xfa\xa2\xed\x66\x65\x51\xae\x4c\x5b\x94\xcf\x50\xc5\x94\ \x16\x98\x3e\x66\x51\x20\x06\xf7\x79\x86\x7b\x79\x87\x65\x03\x8e\ \x2a\x7b\xd4\x46\xee\xd1\xba\x45\xa8\xd6\x8b\x8a\x3f\x58\x31\x66\ \x90\xe2\xe5\x21\x9d\xa0\x94\xb4\xa2\xa2\x94\xee\xf2\x92\x01\x00\ \xe4\xe0\x90\x79\xc6\x29\xad\x7d\x30\x5f\xea\x15\x5a\xe3\xea\x07\ \x0c\xc1\xa8\x93\xa8\x5b\x96\xf4\x40\xa0\x24\x85\x25\x44\x29\x01\ \x43\x72\x4a\x82\x8f\x05\x3c\x10\x3d\x32\x67\x97\xeb\x13\xf7\x9d\ \x0d\x73\xd3\xb2\x66\xb6\x89\x17\x1b\x7b\xd0\xdc\x94\x86\x30\x94\ \xa9\xc6\xca\x0a\xc3\x65\x59\xc0\xce\x76\xee\xfc\x6a\xae\x6e\x2b\ \x5e\x65\xa9\xd1\x9c\xaf\x7e\xc2\xb3\xe9\xfb\x97\x58\x88\xd3\x7a\ \x32\xc1\xfa\x8a\x24\xb7\x74\xe3\x57\x89\x93\x5c\xb7\x1d\xbe\x1a\ \xb6\xb6\xd2\x03\x48\x5a\x77\x2b\x20\xee\x59\x57\x61\xdb\x26\x94\ \xb7\xd4\x7d\x49\x70\xb5\xe9\x96\x6d\x70\x6d\x71\xaf\x17\x4b\xa4\ \xcb\x44\xb0\xf8\x5a\xd8\x65\xe6\x37\x65\xc4\xe0\x85\x29\x38\x46\ \xe0\x9c\x8c\xe7\x19\x1d\xea\x4f\xfd\x03\x95\x0e\x55\x92\xe7\x64\ \xbe\x88\x57\x5b\x6d\x9d\x36\x87\x1e\x7a\x1f\x8c\xcc\x96\x06\xd2\ \x0a\x9b\xde\x92\x14\x14\x9d\xc0\x85\x71\x92\x0e\x45\x68\xb7\xf4\ \xce\x2c\x01\xa5\x04\x7b\xbb\xaa\x36\x29\xf2\x27\xbe\xe3\xcc\x85\ \x2e\x6b\xaf\x25\x7b\xc9\x20\x80\x9e\x56\x4f\x63\xc0\x03\xe6\x92\ \xe4\xde\xe3\x23\x4a\xa4\x74\x5e\xb6\xfc\x93\x98\x48\x7d\x30\x98\ \x44\xc5\xb6\xec\x84\xb6\x90\xf2\xdb\x46\xd4\xa9\x78\xf3\x10\x32\ \x70\x09\xcf\x19\x35\xa6\x74\x20\xe2\x0a\x9b\xe1\x58\xef\x4b\x7e\ \x86\x81\x44\x66\xe2\xee\x8d\x92\x82\x92\xb3\x18\x63\x47\xda\x49\ \x79\x5c\x8f\x4a\x58\x09\x23\x68\x18\x4d\x6c\x94\xd8\x4b\xc1\x5e\ \xf5\xe0\xad\x2e\x79\xb5\x33\x46\x19\x74\x3d\x4a\x76\x8a\xda\xc8\ \xc6\x56\xae\xd5\xad\x09\x2b\x50\x03\xd2\x95\x3a\x90\x19\x29\x14\ \x99\x3e\x43\xa2\xb9\x8d\xb3\xb0\xb7\x0a\x93\xcf\x15\x1c\xd4\x72\ \xdd\x8d\x01\xe2\x81\xb9\x7b\x4e\xd1\xee\x6a\x40\xa5\x14\x93\x8f\ \x4a\x8f\xea\x16\x17\x25\xa5\x0f\x53\x5a\x32\xc9\xc6\xd1\x32\xd4\ \x77\xd5\x1f\x3d\xb5\xfd\xcf\x5d\xeb\xad\x61\x24\x39\x0e\x5c\x87\ \x91\x93\xf6\x76\x92\xa0\x86\x12\x0e\x30\x40\xf6\x3c\x12\x7d\x69\ \xb2\x2e\x9d\xd5\x16\x89\x6c\xbb\x71\xb6\x3e\xd3\x41\x61\x38\xdd\ \xc1\x27\xf1\xae\x90\xeb\x0c\x46\xb4\xe2\x5f\xbc\xc7\x6d\xb6\x64\ \x15\x7e\xd1\x40\x04\x97\x72\x47\x94\x9f\x73\x54\xcd\xf2\xfa\x8b\ \xf6\x9d\x79\xf8\x4a\x52\x64\x32\xe2\x56\xa6\xd6\xac\x2d\x24\x1f\ \x6f\x51\xf4\xae\x35\x49\xce\xed\x4d\x58\xe8\x61\x6a\xb7\x97\x24\ \x74\xd8\x6f\xd5\xf6\x69\x6e\x86\xa3\xb7\x66\x7c\xc9\x77\x21\x00\ \x27\x2b\x51\x03\x24\x77\xf4\x19\xa8\x33\xda\x6a\xf3\xe2\x61\x16\ \xa7\xce\x4e\xd0\x0f\x07\x3c\x9f\x7f\x83\x57\x25\xd5\x71\xcb\x08\ \x96\xec\xc6\x5a\x69\x61\x2f\x36\xe2\xdd\x09\xda\x48\xce\x46\x4f\ \xb1\xaa\xcf\x50\x6a\x75\x15\xed\xb6\x05\x25\x49\xdd\xbd\xee\xe3\ \x24\x11\x91\xf8\x13\x8f\xad\x36\x8c\x1a\xa7\x9a\xfb\xaf\x32\xcb\ \x13\x2a\xcd\x45\xc7\x62\x2b\x1d\x82\xe4\xb6\x62\xaf\x09\x53\x8e\ \x25\x18\xcf\x6c\x9c\x72\x6b\xc9\x51\x9c\x6a\x43\x8c\xe3\x1b\x16\ \x5b\x51\xfa\x1c\x1a\x5d\xa7\x19\x13\x2f\x91\xc3\x88\x52\x9b\x6c\ \x97\x5d\x24\x9c\xe0\x73\xc9\xf9\x38\x1f\x8d\x6f\xbd\x36\x7c\x57\ \x24\x38\x70\x5c\x3c\x24\x7a\xe3\xd6\x9b\x14\xdb\x7d\xc1\x27\x1b\ \xd8\xd1\x79\x94\xe5\xde\xee\xf4\xa7\x37\x3b\x35\xd7\x50\x80\xd3\ \x0d\x65\x2a\x21\x20\x71\xf9\x70\x3d\x6b\xa1\x7a\x0f\x0d\x33\xfa\ \x7c\xea\x5b\x6b\xc5\xd8\xa2\x36\x77\x25\xbc\xe4\x1e\x3f\x78\x12\ \x7f\x0c\x7b\x57\x3e\xdb\x2e\x26\xdd\x35\xb9\x6d\x36\x91\x22\x30\ \x43\xad\xa8\x7e\xea\x92\xa0\xa1\xfc\x06\x0f\xd6\xba\x17\xf4\x6a\ \x92\xe3\xa8\xbb\xac\xb5\xe0\x66\x7f\x8c\x1b\x40\xc6\xc4\xb8\x37\ \x0e\x3d\xbe\x7b\x57\x3f\x1f\xd6\xa7\x67\xca\xdf\x63\xa7\xd1\xed\ \xc6\x6e\x48\x64\xd7\xda\x6a\x4c\x29\x49\x7a\x3a\xd1\x94\x28\x2d\ \xa7\x14\x33\x90\x32\x70\x7d\xe9\xab\x4f\xea\x29\x2c\xf8\x5e\x02\ \x56\x42\x4a\x81\x69\x4b\xda\x52\xac\x85\x10\x93\xdf\x07\x9f\xc3\ \x8a\xe8\xad\x51\x64\x8b\x26\x23\x8f\xa5\x96\xdf\x52\x0a\x94\xe3\ \x09\x1e\x60\x0f\xef\xa7\xfc\x40\xf6\xe2\xa8\x6d\x71\xa2\x57\x68\ \x96\x65\xb0\xe8\x2a\x4f\x29\x52\x46\x4a\xd2\x71\xc0\xe7\xdf\xf8\ \xd7\x26\x2a\xdd\x59\x7c\x0f\x41\x0a\xdc\x4e\xb2\xdf\x99\x37\xb4\ \x6b\x95\x18\xf1\xbc\x44\xab\x85\x79\x51\x8c\xf6\x3d\xf3\xe9\xd8\ \x60\x1e\x6a\x4d\xf6\xe6\xe4\x23\x28\x5b\x7b\xd9\xcb\x89\xda\xb3\ \x95\x1e\x0a\x88\x3d\xf3\xe9\xcf\x07\x35\x45\xdb\x11\x20\x90\x84\ \x2c\xa1\xe2\x00\x2a\x74\x14\xe0\x1e\x09\xc7\xe1\x52\x07\x5d\x99\ \x0d\xf8\xbb\x9b\x12\x1b\x64\xec\x58\x2b\xf3\x2c\x77\xf4\xcf\xcd\ \x2e\x49\xa7\x64\xc9\x96\x1e\x13\xd5\x68\x58\xcc\x5d\x1a\x64\xb8\ \x43\x8b\x69\xc9\x18\x29\x52\x80\x1e\x1a\x14\x48\xc7\xc9\x24\x91\ \xf9\x54\xa6\xd5\xac\x5a\x8c\xda\x1d\x79\xd3\x15\xc4\xe5\x05\xa7\ \x10\x40\x47\xa7\x97\x9f\x31\xc2\x48\x38\xf5\xcd\x52\xd3\xae\x4a\ \x5a\x54\x63\x89\x0c\xa9\x68\x40\x6e\x3a\x8e\xd5\x67\x83\x92\xa3\ \xfb\xbd\xb1\xeb\x5b\x67\x5c\x51\x28\xc5\x6a\x6a\x32\xe4\x70\x54\ \xd2\x37\xa9\x60\x7a\x11\x8c\xf3\xdf\x9f\xad\x5a\x15\x25\x11\x33\ \xc2\x46\x45\xff\x00\x6d\xd5\x70\xd2\x43\x89\x7e\x13\x8d\xb8\x42\ \x96\x19\x70\x2b\x7a\x49\xc0\x27\xd8\xf7\xe7\xe2\xa4\x08\xba\x25\ \x4e\x36\x63\xbe\xd3\xad\x28\x00\xbc\xab\x9e\xd9\x07\x3e\xbc\x1e\ \x47\xc5\x72\xe3\xd6\xc8\xd2\xda\x53\xb1\x24\x4f\x4b\xc5\x64\x2d\ \xb2\x36\xec\x09\xe0\xa9\x40\x1c\x00\x33\x81\x8f\x8a\x77\xb6\xc1\ \xbe\x90\xd3\xd1\xb5\x1c\xd2\xca\x52\xa0\x8c\x34\x55\xb4\xa5\x38\ \x4e\x01\xf9\xfe\x74\xe8\xe2\xb2\xab\x31\x32\xe8\xf4\xf5\x4c\xe9\ \x28\xf7\x58\xaa\x52\x92\x14\xe2\xd0\xda\x4a\x4a\x89\x00\x13\x9e\ \xff\x00\xe1\x5a\xdf\xbd\x41\x8a\xa4\x93\x21\xa0\x51\xf7\xdd\x1c\ \x63\x23\x03\xe0\xf2\x45\x73\xab\x82\xf8\xd3\x0b\x73\xfa\x45\x21\ \x87\x56\x43\xcd\xb4\xf6\x08\x07\xb7\x38\xf8\x26\x9a\x2e\x97\x3d\ \x45\x21\xf6\x61\xa2\x42\x12\x8c\x8f\x0d\xe5\x76\x51\xc1\x21\x58\ \xec\x14\x71\x9c\x55\x96\x31\xb2\x1f\x47\x77\x96\xd6\xaf\xd6\xb1\ \xe6\xbf\x25\xa8\xcf\x0f\xf6\x56\x9b\x59\xdc\x78\xde\x4a\xbb\x9f\ \x73\xb4\xfe\x75\x5e\xea\x7d\x69\x2e\xe5\x30\xc1\xb7\x28\xbe\x96\ \xf2\x90\xa3\x9c\x01\xc9\x00\xfb\x60\x54\x30\x45\xbb\xcb\xb9\xa6\ \x2a\xa5\x89\x13\x23\xb1\x92\xb6\xd5\x93\xb9\x47\xd4\x01\x8e\x32\ \xaf\xce\x9c\x2d\xf6\x77\x23\x3c\xa9\x2e\xc9\x58\x65\xbc\x92\x90\ \x08\x71\x47\x27\x72\x56\x47\xd4\xd2\x67\x55\x6e\xd9\xa6\x9e\x15\ \x2e\x42\xb8\x32\x4c\x56\x1a\x4b\x1b\x5d\x90\x37\x07\x49\x18\xc7\ \x97\x95\x13\xd8\x73\xc6\x7d\x78\xe2\xbc\x76\xd6\x59\xb5\xc9\xbb\ \x5c\x14\xb7\x27\x86\x1c\x0e\x29\x49\xc2\x41\x50\xc6\x11\xfd\xd0\ \x14\x7e\xb9\xcf\x14\xe9\x6d\xb6\x26\x42\xb6\x32\xd8\x6e\x18\xfb\ \xe9\x56\x78\x57\x73\xeb\x82\x72\x7b\x7c\xd2\xfd\x7c\xc3\xcd\xe9\ \x39\xeb\x48\x51\x1f\x65\x51\x09\x3d\xd2\x00\x27\x15\x85\xd4\xbc\ \x92\x5c\xcd\x71\xb4\x59\xca\x57\x28\xc2\x3d\xc1\x6c\xa9\x25\x08\ \x49\xdd\x8f\x5c\x11\x9f\xe5\x4e\x5a\x85\x22\x38\x53\x0d\xa9\x1e\ \x19\x0d\x29\x01\xb3\x91\x80\xda\x7d\x7e\x09\x57\xe3\x9a\x75\xd7\ \x76\x97\x94\xd4\x0b\xd3\x0d\x3c\xa8\xd7\x16\xff\x00\xd9\xd6\xa3\ \x92\xa2\x00\xc8\x23\xd8\x64\x01\xf4\xa6\x3f\x1c\xc9\xb9\xb4\xa5\ \x90\x12\x97\x39\x18\xfb\xa9\xe1\x3f\xc8\x7f\x1a\xf5\x94\xaa\xaa\ \x90\x52\x3c\x7d\x5a\x5c\x3a\x92\x87\x6b\xd3\xc1\x9e\xb4\x96\x9a\ \x69\x98\x9b\x86\xf7\x88\x52\xc8\x3f\x77\x9e\x07\xe3\xdf\xf2\xa7\ \x54\x58\xe4\x7d\x91\x99\x68\x43\xfb\x06\xe2\xe0\x49\x07\x19\xc1\ \x03\xe0\xf6\xf8\xac\x64\x5a\x24\x38\x13\x28\x20\x06\x5d\xfd\xb3\ \x8b\x04\x05\x47\x4e\x70\x33\xed\xc0\xfe\x55\x63\x40\xb7\xc9\x94\ \xc4\x59\x6c\xbe\xe3\x3b\x19\x52\x92\x3b\xa5\x44\x0c\x10\xaf\x62\ \x40\x07\x3d\xb9\xac\xb8\x8c\x46\x44\x9c\x4d\xf8\x4c\x2a\x93\x6a\ \xa2\xdb\x62\x2f\xa3\x58\x9a\x99\xc0\xfe\xaf\x6a\x68\x50\xe1\x52\ \xde\xe1\x1c\xf7\x1b\x54\x39\xfc\xeb\xa8\x7a\x52\xcb\xcf\x36\x95\ \x3a\xda\x42\xc6\x32\x12\x30\x07\xd3\xe2\xa9\x58\xaf\x3a\x99\x68\ \x4c\x68\xca\x8c\x87\x0e\xe5\xa5\xb7\x02\xd2\xa3\xea\x7d\x2b\xa1\ \x3a\x3e\x85\x38\xdb\x41\x28\xca\x4f\x73\x8a\xdf\xd1\x0b\x8b\x2e\ \x26\xc7\x9f\xe9\x97\xfb\xd9\x2d\xb1\x6b\xd8\x42\xb6\x24\x67\x18\ \xa7\x83\x83\x84\xd2\x66\xa0\xa9\xa4\x78\x8c\x8f\x4e\xd5\xb0\x3b\ \x95\x03\x8e\x41\x19\xae\xd4\xda\x9b\xba\x39\xb1\x4e\x0a\xcc\x90\ \xb0\x90\x96\x52\x07\xb5\x14\x32\xa0\xa6\x52\xae\xdc\x51\x5c\xb7\ \xb9\xd4\x5b\x10\x8e\x95\x5d\xa0\xb9\xa2\xad\xd1\x0b\x98\x5a\x43\ \x80\x82\x7f\xe3\x15\x4e\x17\xa8\x06\x3b\xa5\xf6\x47\x90\xf7\xc5\ \x57\x9d\x2a\xb7\x3f\x2a\xcf\x6f\x59\x2a\x42\x32\xbc\x1c\xff\x00\ \x7d\x55\x72\xa6\x3a\x4c\x50\xd2\xc8\x56\x05\x6f\x93\x54\x1a\x6b\ \x99\xcd\xa2\x9e\x22\x9d\x9f\x22\x18\x95\x6e\x41\x23\x3f\x41\xe9\ \x52\x6d\x3a\x13\xf6\x00\x78\xfa\xe2\x9a\x2e\xf6\xb7\x23\xac\xba\ \xc8\xca\x09\xe4\x0f\x4a\x51\xa6\x66\x24\x66\x3a\xd4\x02\xb3\xc0\ \x34\xca\xed\x54\xa5\x78\x95\xa0\x9d\x3a\xb6\x91\x9c\xad\x5b\xa7\ \xda\xb3\x37\x75\x6e\xeb\x0d\xc8\x4e\x3b\xe0\x21\xe4\xb8\x36\x29\ \xcd\xfe\x1e\xc0\x7d\xf7\x8d\xb8\xf7\xa6\x87\xb5\xa5\xb3\xf5\xc2\ \x6d\x2a\xbd\x5b\x9b\xb8\xa8\x80\x98\x8a\x92\x80\xe9\x27\xb0\xdb\ \x9c\xe4\xf7\xc5\x54\xe2\x2b\xad\xf5\x81\xfd\x04\x50\xa1\x06\x25\ \xf5\xcd\x48\x36\x8e\x03\x2a\x6c\x29\x09\x1e\x98\x12\x1c\x27\xfe\ \xaf\xd2\x99\xe7\x04\x27\xa6\xd7\xdd\x26\xe2\x48\xd5\xf2\x35\x03\ \x8e\x30\xc1\x6c\xf8\xee\xba\xa9\x49\x52\x24\x24\x77\x28\x08\xc1\ \xde\x38\x00\x11\xf1\x4a\xa7\x08\xc6\x37\xb5\xc5\xd5\xc5\x54\x6d\ \xad\xac\x5f\x08\xd5\xf0\x18\x76\xe2\x87\xa7\xc7\x1f\xaa\xd0\x17\ \x3c\x6f\x19\x8e\x92\x8d\xe0\xaf\xdb\xcb\xcf\xd2\x9c\x7f\xa6\x1a\ \x65\x28\x63\xc7\xbe\x5b\xd9\x2f\xa5\x85\xb2\x97\x1f\x4a\x4b\x81\ \xe2\x52\xd6\xd0\x4f\x3b\x8a\x55\x8c\x77\xda\x7d\xaa\x89\xd4\xf3\ \x23\xc1\xbe\x75\x6e\xdf\x2d\x65\xa9\x97\x8b\x6b\x22\xda\xc6\xd2\ \x57\x2f\xfd\x88\xb5\xfb\x30\x3e\xf6\x17\xc1\xc7\x6e\xe7\x8a\x71\ \xe9\xcb\x51\xff\x00\xf6\xb3\x61\x75\xf8\xec\xbc\x5b\xd0\x50\x94\ \xd9\x5a\x02\x8a\x09\x79\x5c\x8f\x63\xf3\xf3\x51\x56\x9c\x65\xb2\ \xb3\x2d\x4b\x17\x35\x2b\x32\xed\x8b\xa9\x34\xf4\xbb\xc3\x96\x68\ \x97\xcb\x6c\x8b\x8b\x7b\x82\xe2\xb7\x25\x0a\x75\x25\x3f\x78\x14\ \x83\x9c\x8f\x51\xe9\xc6\x7b\xd3\x42\xb5\x35\x8e\x43\xd3\xbf\x52\ \xde\x6d\xb7\x09\x11\x1b\x52\xdd\x66\x3c\x94\x38\xa4\x63\x23\x90\ \x93\x9c\x64\x11\xf5\x04\x77\x15\x58\xd9\xa4\xcd\xb7\x0b\xae\x87\ \xd0\x97\xb8\xda\x92\xcf\x71\xb5\x5c\xa4\xc3\x5b\x29\x05\xfb\x3c\ \x95\x02\xa4\x21\xc7\x13\xc2\x82\xd6\xe1\xdb\xbb\x0b\x1f\x4e\xf8\ \xe8\x98\x50\x27\xc0\xd3\xb3\xc6\xac\xb7\xb9\x3e\xcf\x60\x76\x22\ \xad\x0c\x41\x0c\x48\x65\x0a\x69\x01\x4d\xbf\x95\x95\x02\x85\x24\ \x77\x03\x27\x27\xd6\xb3\x53\x76\x95\x87\x4e\xbc\xa4\xb4\x5e\xbe\ \xa3\xcc\x2e\xab\x2d\x76\x4d\x18\xe0\x66\xd7\x1e\xed\xaa\x12\xa7\ \x31\x29\xf5\x25\x88\xc8\x4a\x54\x72\x70\x0a\x8e\x48\x09\x48\xe3\ \x93\x56\xba\xee\x51\x63\xca\x83\x6f\x9d\x2a\x3b\x17\x09\xa9\x51\ \x65\x8d\xfc\xba\xa4\x24\x15\xec\xcf\x24\x00\x73\xf4\xaa\x27\xa7\ \x83\x0d\x74\x1f\x1f\xfc\x0b\x8f\xfe\x11\x75\x3d\xeb\xc3\xe8\xb2\ \xda\x6c\x5a\xcd\x41\x41\x3a\x7e\xee\xcb\xef\xa9\x23\x24\x47\x74\ \x16\x1d\x18\xfa\x38\x0f\xe1\x55\x93\xcc\xcb\x50\xa9\x28\xd3\x72\ \x6f\x6b\x7f\x09\xbf\xe4\x94\x48\xd5\xba\x7d\x11\xae\x52\x1b\xbc\ \x43\x53\x56\xb7\x14\xd4\xf5\x87\x46\x23\x2d\x23\xcc\x95\x9f\xdd\ \x23\xe6\xa1\xf2\xfa\x99\x6d\x85\x17\x55\x5c\xa7\x48\x84\x60\x58\ \x56\x1b\x49\x8b\x31\x2e\xba\xf2\xf6\x12\x5b\x52\x38\xd8\xbd\xe9\ \x52\x40\x27\x9c\x55\x55\x1e\xdb\x26\x15\xca\xd7\xa5\xe4\x21\x41\ \xcd\x76\xcc\x29\xd3\x40\x49\x23\xc5\x43\xeb\x7e\x60\xcf\xcb\x6a\ \x48\x24\xfb\x53\xb6\xb3\x6d\xc9\x07\xae\x2c\xc7\x69\xc7\x5c\x54\ \x78\x1b\x50\x84\x95\x13\x88\x89\xf4\x1f\x14\xe5\x1c\xab\x41\x13\ \xc4\xce\x4a\xfb\x7f\x4d\xfd\x89\xed\xc7\xa9\xf6\xb8\x97\xed\x2e\ \xd3\x33\xe0\x1b\x4d\xe5\xb9\x6a\x7a\x63\xaf\x84\x86\x54\xca\x1b\ \x21\x20\xf6\xc9\x2b\xc6\x3e\x98\xef\x56\x1d\x8a\xed\x6f\xbd\x5b\ \x5a\xb8\x5a\xe6\xc7\x9b\x15\xd1\x94\x3c\xc3\x81\x68\x57\xd0\x8e\ \x2a\x9f\x9b\x3a\xd5\x79\xea\x67\x4a\xe6\x5b\xe5\x45\x9e\xc2\x62\ \x5c\xca\x5d\x69\x61\x69\x0a\x11\xd9\xec\x47\xa8\xcf\xe1\x4f\xfd\ \x01\x21\xb8\x3a\xc5\x23\xca\xdb\x7a\xba\xe6\x94\xa4\x76\x48\xf1\ \x07\x03\xd8\x55\x26\xae\x87\x50\xab\x2e\x26\x56\xee\xbf\x08\x97\ \x3f\xaa\x74\xd3\xd7\xb1\x64\x66\xff\x00\x6b\x72\xe6\x14\xa4\x18\ \x89\x94\x82\xe8\x5a\x7e\xf2\x76\xe7\x3b\x87\x72\x3b\x81\x4e\x49\ \xc9\x38\x03\x9a\xa0\x35\x56\xa6\xba\x6a\x8b\xc5\x8f\xed\x72\xd8\ \x8c\xf4\x2d\x71\x15\xa3\x67\x66\x29\xf1\x62\x32\x99\x3e\x1a\x5e\ \x79\x79\x24\x6f\xdc\x39\xc2\x52\x77\x80\x33\xcd\x74\x53\x0d\x06\ \xc7\xcd\x17\xca\x86\x52\x9f\x16\x4f\xb0\xf1\x09\x0c\xb5\x9c\x64\ \xfa\xd2\x67\x25\x2d\x60\x80\x31\x4b\x8e\x08\xe6\x91\x3c\xc0\x56\ \x54\x38\xaa\xc1\xa6\xf5\x34\x4d\x34\xb4\x13\x00\x09\xc9\xf5\xa4\ \xb3\x63\x64\x9e\x29\x72\x12\x94\xf9\x48\xed\x5b\x5f\x40\x2d\x53\ \xf3\xe5\x62\x63\x0b\x94\x8f\x56\x2d\xb6\x93\x6c\x92\xfd\xed\x31\ \xbe\xc0\xda\x0a\x9e\x2f\xfd\xc0\x9f\x9a\xe2\xad\x53\x72\xd3\x8d\ \xea\xa7\x13\xa6\x5c\x71\xa8\x2a\x59\xdc\x1d\x3f\xb3\x3c\xfe\xee\ \x41\x56\x09\xf7\xae\xfa\xea\xbe\x93\x87\xaa\xb4\xec\xab\x3c\xf2\ \xf8\x8c\xf8\x1b\xfc\x25\xed\x51\xda\x42\x87\x3e\xd9\x1d\xaa\x86\ \x73\xa4\x9a\x62\xc6\xb5\x18\x36\x64\x2d\x7d\xbc\x49\x07\xc4\x3f\ \xc7\x8a\xc5\x89\x4e\x73\xd2\x2d\xdf\xe4\x5a\x85\x55\x87\x93\x95\ \xce\x74\xbb\x5a\xda\x96\xe2\x1d\xb7\x87\xdf\x2b\x38\x4b\x69\x41\ \x3b\xd5\xec\x90\x29\xb6\x6e\x92\xd4\xc2\x40\x6d\xeb\x1d\xc1\xa5\ \x67\x01\x0e\x30\xa4\x63\xfe\xd7\x6a\xbf\xf5\x45\x9e\x2c\x7b\x6a\ \xe3\xcb\x65\xb6\xa3\x23\x2a\x05\x23\x69\x6c\x8f\xde\x49\x1d\x8d\ \x55\x77\xcd\x7a\xa6\x9e\x31\xe1\xc8\x5d\xdd\x49\x4e\x13\x22\x40\ \x52\x55\xff\x00\x58\x67\xcd\xf5\xe2\x95\x1a\x55\x29\x3c\xb2\x36\ \x54\xc5\xac\x46\xb4\xe2\x37\x47\xb5\x45\xd3\xd6\xd2\x97\xe5\x37\ \xf6\xd7\x9b\x0b\x96\x73\xc3\x69\xdc\x30\x81\xef\xdb\x27\xdf\x03\ \x1e\xf4\xc7\x72\x90\xdc\xe9\xec\xbe\xb6\x9c\x6a\xda\x95\x12\x95\ \xa8\x60\xad\x23\xef\x63\xdc\xfc\x57\xaf\xb4\xe5\xd1\xe7\xee\x17\ \x0b\x82\x5d\x79\x78\x27\x68\x2b\xe7\xb0\x1c\x71\xf0\x00\xa7\xa4\ \x68\x89\x8d\x36\xdc\x8b\xf3\xff\x00\x65\x8c\x96\xc2\x92\xd1\x58\ \xde\x12\x7b\x25\x5e\x89\x27\x9e\x3d\x2a\x54\xd4\x6f\x14\xf5\x7e\ \xb4\x23\x87\xc3\xb4\xe6\x44\x6e\x46\x19\x95\x21\x70\xbc\x64\xc5\ \x71\xc5\x16\x43\xbc\xa8\x23\x77\x1b\x8f\xa9\xc6\x33\xf3\x5d\x09\ \xd0\x2b\xdc\x49\xf2\x61\x3b\x1e\x57\x8b\x30\xc2\x6e\x3d\xc1\x95\ \x0c\x29\x0a\x6b\xca\x83\xf2\x0a\x7d\x7d\xc5\x52\x9a\xe2\x74\x59\ \x0a\x8c\x21\xb6\xcb\x48\x65\x3e\x1b\x69\x6d\x20\x00\x90\x06\x3e\ \xbf\x5a\x9b\xfe\x8a\x8f\x1f\xe9\xd5\xc1\xa5\x94\x80\xe4\x1d\xd9\ \x50\xec\x43\x89\xc7\xf3\xc7\xe3\x48\xc6\xd3\x5c\x2c\xcf\x91\xab\ \x03\x51\xba\xa9\x2e\x67\x5b\x82\xd2\x23\x07\x83\x45\x6b\xc0\x1e\ \x51\xdb\x9e\xe7\xd7\x1c\x53\x16\xa4\xb6\x34\x82\x64\xc6\x65\xa0\ \xc1\x4f\x88\xb4\x21\xb0\xa0\xbc\x9e\x4a\x49\xec\x3d\xc0\xf7\xf8\ \xa9\x1c\x21\xb1\xa0\xa0\x82\x49\x47\xe3\x5a\xe5\xc6\x5b\xc9\x75\ \xb4\x3a\x5b\x5f\x2a\x6f\x27\x09\xc9\xee\x0f\xc1\x1f\x85\x72\x2d\ \x74\x75\xe3\x2c\xac\xae\x11\x65\x87\x71\x43\x49\x7d\xb7\x5d\x70\ \xb7\xb9\x58\x4e\x32\x9c\x9f\x5c\x76\xc1\x3f\x95\x7b\x74\xd0\x59\ \x82\x96\xd8\x91\xfb\x2d\xa0\x05\x31\xc9\x4e\x47\xa8\x1d\xf3\xeb\ \x8a\x9a\x16\x03\x72\xd6\x10\xde\xf6\x52\x72\xf2\x14\x13\x96\xbd\ \xf0\x3d\x52\x4e\x2a\x47\x62\x4c\x2f\xba\xd2\x52\xb6\xf0\x49\xcf\ \x73\xee\x3e\x71\x55\x85\x24\xf4\x63\x9e\x2a\x70\xd5\x14\x5c\xed\ \x0b\x70\x8c\x94\xc9\x6d\xbf\x15\x0c\x84\xa0\x06\x89\x19\x23\xe3\ \x9c\x11\xf9\xd2\x17\x2d\x2e\x43\x49\x5c\xb6\x65\x3e\xea\x94\x3c\ \x13\x90\x48\x1e\xb9\x1e\x9d\xbd\x79\xae\x9e\x30\xa3\xc8\x28\x25\ \x2d\x00\x46\x42\x47\xef\x1f\x9f\xf5\x9a\xd1\x3f\x48\xd9\x26\xc7\ \x5b\x1f\x62\x43\x24\x1c\xe1\xb2\x40\xe7\xbe\x47\xaf\xad\x12\xc2\ \x4b\x78\xb2\xd0\xe9\x34\xbd\xf4\x73\x73\xca\x92\x72\x11\x18\x04\ \x25\xc1\xb5\x41\x24\xee\x18\x39\xc8\xf5\x39\xe3\x3d\xab\x6c\x49\ \x57\x24\x20\xa8\xdb\x1f\x4b\x9e\x38\xf0\xc0\x5f\x07\x00\x8e\x31\ \xce\x06\x7b\x9f\x8c\x55\xd9\x75\xd1\x01\xb6\xc7\xd8\x5c\xf0\xb0\ \x0e\x06\x3f\x21\xff\x00\x95\x47\x67\x69\xc5\x31\xbd\x4b\x8e\x94\ \x85\x61\x1b\x92\x0e\x4f\x3d\xbe\x9d\xeb\x34\xe9\xd4\x86\xe8\xd3\ \x0c\x55\x29\xad\x0a\xc5\xc8\xf7\xa7\x5a\xf0\x5e\x0c\x23\x78\x2b\ \x74\x00\x4a\x46\x14\x32\x33\xc6\x38\xf6\x35\x82\xf4\xf3\x4e\xc9\ \xcc\x89\x2e\xba\xa2\xb5\x06\xb7\xab\x6a\x06\x4e\x71\xc7\x07\x80\ \x07\xf2\xa9\xd4\xbb\x6a\xd8\x65\x69\x4c\x72\xfa\x57\x94\xa8\x2d\ \x38\x00\xe7\x24\xa8\xfb\x7d\x3e\x29\x13\xd1\xdb\x53\x4b\x4c\x72\ \x92\x55\x80\xa2\x3d\xbf\xf2\xf7\xa4\x39\x49\x6c\x68\x55\x13\xd8\ \x8e\x38\xcb\x71\x5f\xfb\x34\x76\x5a\x68\x38\x47\x88\xa6\xbc\xa5\ \x2a\xce\x70\x7f\xb5\x93\xeb\x59\xb1\x6e\x2a\x7c\x3b\x32\x3b\xeb\ \xdd\x92\x86\x5b\x40\x52\xb2\x3f\x78\x9c\xf1\x9c\x7a\xd4\x91\x98\ \x28\x2c\x78\x88\xda\xf3\xe5\x01\x28\x0d\xa7\xcb\x91\xea\x4f\x6a\ \x72\xb5\xdb\x84\x73\x94\x21\xb4\x12\x09\xc2\x07\xaf\xa7\x34\xbd\ \x59\x57\x51\x24\x37\x59\xed\xaa\x43\x0a\x43\x81\xad\xff\x00\xf0\ \x4d\x04\x7d\xc2\x7d\x33\xea\x7e\x6b\xcd\x73\x6b\x2d\x68\x8b\xb3\ \xce\x20\x94\xb7\x11\xce\x0f\xb6\xde\xd5\x34\xb4\x5b\x5f\x59\x0e\ \xed\x04\x81\xe5\xdc\x30\x09\xa4\xdd\x4e\x65\x0a\xd2\x53\xa1\xa9\ \x29\x52\x5e\x65\x48\x71\x25\x45\x20\xa4\xf0\x46\x47\x23\x8f\x6a\ \x74\x68\xda\x39\x99\x92\x55\xfa\xe9\x23\x92\x74\x8d\x95\xfd\x4b\ \xa3\x66\xc0\x45\xdd\xc6\xee\x16\xc4\x87\xe0\x42\x75\x25\x41\xe4\ \x14\xf9\x83\x67\xba\x54\x9c\x13\xec\x47\xd2\xa1\x53\x63\x48\x83\ \x7c\x75\x2f\xb4\xb6\x9e\x52\xb2\xe6\xe4\xf6\xcf\xde\x18\xf9\x39\ \xa9\x5c\xd3\x2f\x4a\x6b\x3b\xad\xbe\x13\xeb\x71\xfb\x5c\xa5\x16\ \x55\x9f\x32\xd2\x85\x03\xb4\xe3\xdd\x2a\x20\xfd\x4d\x49\xe6\xdb\ \xed\x57\xab\x95\xc6\x59\x77\x88\xef\x86\xe3\x15\x73\xfb\x32\xe6\ \x52\x09\xf5\x21\x27\xf9\x57\x5e\x15\xa5\x4e\xa5\xd2\xbc\x65\xaa\ \xf8\xd8\xc8\xe8\xd3\xab\x04\xdb\xb3\x8f\x6f\xc8\xd1\xa4\x5b\x6c\ \x37\x21\x6d\x24\xa1\x68\x1b\x5d\x4a\x53\x95\x14\x9f\x6c\xf0\xa0\ \x06\x46\x3d\xbd\xea\x40\xe3\x0b\x7e\x32\x98\x88\xfa\x6d\xef\x6c\ \xc3\x5b\x1b\xdc\xd8\xe3\x70\xcf\xf7\x08\x27\x9f\x4f\x6a\x6b\x5b\ \x4c\xda\xe2\x96\x5a\x01\x32\x49\x21\x2b\xcf\x74\xf7\x19\x1e\xa3\ \xe6\xb1\x8b\x76\x99\x16\x64\x55\xb8\xe7\xf5\x45\x45\x0b\xf4\x71\ \x0a\x18\x29\x27\xd8\x91\xd8\xfa\xd2\x2b\x46\x51\x86\x6b\x6a\xc7\ \xd3\x9a\xab\x5a\xd0\x92\xb2\xfb\x09\x51\x2a\x54\x2d\x42\x88\x57\ \x86\x19\x86\xe9\x50\x27\x24\xa5\x2b\x57\xb2\x55\xdb\x24\x72\x0f\ \x63\x5d\x5d\xd1\x75\xb1\xf6\x26\xc2\x46\xde\xdd\xfb\x8a\xe6\x6d\ \x40\xeb\x1a\x96\x04\x78\x56\xe4\xb6\x5c\x69\xc0\xec\x17\x15\xc9\ \x69\x59\xf3\x32\xaf\x74\xe3\x91\x9f\x6c\x57\x4b\x74\xcd\xa6\xe2\ \xb4\xca\x77\x02\x43\x69\x07\x1e\xbc\x72\x6b\xb3\xd1\x52\x94\x5a\ \x8c\x79\x9e\x53\xa6\x24\x9d\x65\x3b\x59\xf3\x2e\xf8\x2b\x42\x90\ \x12\x71\x58\x4b\x80\x87\x3c\xed\x1c\x2a\x91\xdb\xc0\x2c\x83\x9e\ \x3b\xd3\x8c\x10\xb2\x4a\xca\x8e\xdf\x40\x6b\xab\x2b\xc1\xb6\x99\ \x95\x35\x35\x66\x8d\x50\x9d\x71\x9f\xd8\x3c\x9c\x7b\x1a\x29\xc1\ \x48\x42\x8f\x99\x20\xd1\x49\x94\xd4\x9d\xc6\xc6\x0e\x2a\xd7\x2b\ \xce\x9d\xa4\x33\xa2\xed\xea\x6d\x1f\x77\xc4\xc7\xff\x00\xb8\xaa\ \x96\x89\xef\x1e\x12\x85\x7e\x55\x5c\xe8\x3b\x93\xcb\xd2\x70\x62\ \x45\x47\x3f\xb4\xca\x87\x3d\xdc\x55\x4d\xe0\x25\xc6\x98\xcb\xcb\ \x0a\x56\x3b\x57\x42\x54\xd6\x54\xe4\x73\x28\xd4\x76\x4a\x23\x92\ \x67\x29\x6a\x0d\x38\x80\x73\xf8\xd6\xa9\x56\x64\x38\xe0\x90\xc1\ \xf0\x96\x39\xc0\xf5\xa2\x13\x8c\xa5\x45\xe7\x56\x94\x81\xc7\x7a\ \x71\x8f\x2e\x3c\x80\x7c\x27\x01\xf6\xc1\xac\xd2\x72\xa6\xef\x04\ \x6b\x8a\x8d\x45\x69\xb2\x0a\xab\x24\x0b\x7e\xa1\x7e\x60\x92\xe4\ \x9b\xcc\xa4\x04\x9f\xb4\xcb\x2e\x3a\x96\x81\x52\x82\x10\x92\x7c\ \xa8\xc9\x27\x81\xe9\xcf\x6a\x79\x8d\x12\x63\xb8\x0a\x46\xc1\xea\ \x4d\x73\xfe\x9c\x76\xf5\x65\xd4\xbd\x5b\xd7\x0f\xfe\xa4\x9d\x76\ \xb1\x3e\xa0\xdb\xef\x40\xdc\xe2\x5d\xf3\x20\x16\xd4\x55\x96\xd1\ \xb3\x72\x4a\x47\x70\x47\x3c\x54\xf6\xfb\xd5\x1d\x4d\x61\xd0\x16\ \x4d\x43\x74\x6e\xc0\xc4\x8d\x51\x2a\x38\xb5\xa4\xf8\x9e\x04\x08\ \xee\xa0\x2b\xc4\x90\xa2\x41\x59\x4a\x4a\x49\xc6\xd1\xc9\xf6\xa9\ \x58\x96\xa3\x64\x8c\x71\xe1\xbb\xca\x57\x5f\xdd\x8b\x46\x5d\xb8\ \x33\x18\x2d\x3c\xac\x77\x34\x8b\xef\x24\x28\x0a\xaa\xe1\xf5\xc5\ \xd6\x34\x86\xb6\x7e\xe6\xab\x5d\xe6\x5e\x9d\x5b\x29\x8b\x2a\xdb\ \xb9\x11\xe7\xa5\xe3\xb5\x07\x04\xab\x6e\xd3\xf7\xb9\xfa\x76\xad\ \x7d\x32\xea\x5c\xfb\xce\xb8\xfe\x8b\x5c\xa7\xd8\xae\xa2\x45\xb8\ \x4e\x66\x55\xa4\x29\x28\x65\x7b\xb0\xb6\x16\x14\xa5\x64\x81\x93\ \x9c\xfb\x67\xbf\x17\xa3\x55\xc9\x75\xb7\x26\xa5\x5a\x59\x96\x5e\ \x7f\xd1\x7b\x5b\x17\xbe\x2a\x6b\xdb\x8f\x2c\x7b\x73\xde\xa8\xeb\ \xd2\x46\xb2\xfd\x21\x62\xe8\x9b\xd3\xd2\x5c\xb0\x41\xb2\xaa\x61\ \x84\xd4\x85\xb4\x87\xde\x2a\xfb\xcb\x28\x20\x9c\x05\x0c\x73\xc6\ \xdf\x93\x9a\xfa\xe9\xa9\xf5\x54\x7e\x84\xeb\x3b\x53\x37\xb7\x96\ \xdd\x8f\x50\x1b\x7a\x24\x3e\x54\xb7\xcc\x62\xe0\x09\x42\x57\x9c\ \x82\x14\x33\x93\x9e\x09\x1e\xd8\xcc\xf4\xa8\x39\xe2\xd2\x83\x4d\ \x76\xf9\x1d\x71\x1f\xfa\x84\xfd\x29\x35\xcc\xf9\x00\xf4\xa6\x3d\ \x2d\x2e\xe1\x68\xe9\xfa\x67\xea\x49\x8c\x4c\x7a\x24\x45\x48\x79\ \xd8\xcc\x96\xd2\x5b\x4a\x4a\x80\x09\x2a\x3c\xed\x1e\xfc\x9a\xa6\ \x6c\x1d\x70\xba\xdd\xaf\x3a\x69\xc9\xb2\xb4\xda\xe2\x6a\x09\x8a\ \x87\xfa\xb2\x21\x59\x99\x6e\x25\x7b\x1a\x53\x8a\x2a\x21\x5b\x8e\ \x33\xe5\x1c\x11\xda\xa2\x3a\x4f\x51\xd5\x71\x11\x84\x12\x7b\xb2\ \xf6\xc7\x00\x7b\xf1\x4b\xc4\x54\x96\x86\x06\x0e\x2b\x9f\xec\xdd\ \x55\xd5\x53\x34\xec\x6b\x7a\xd9\xb7\xa7\x56\x2b\x55\x8b\x13\x8d\ \x86\x54\x1b\x42\x07\x2a\x77\x69\x56\x78\x00\x8e\xfe\x9d\xa9\xd7\ \xaa\x7d\x58\xbd\xe8\x9b\xa4\x89\x2c\x6a\x1d\x23\x75\x8f\x16\x6a\ \x59\x7e\xcc\xc3\x2e\x19\x4d\xb2\x54\x79\x53\x81\xc2\x90\xe8\x03\ \x90\x40\x1f\x1e\xf7\xa9\x37\xa5\x84\xc3\x11\x4d\x45\xc9\xec\x5b\ \xe9\x0d\x2e\x53\x91\x1a\x96\xca\xe4\x34\x01\x71\xa0\xb0\x56\x90\ \x7b\x12\x3b\x8f\x4a\x5a\xd4\x62\x1b\xda\xa3\xc5\x50\x73\x6f\x33\ \x34\xef\x59\x7a\xcd\x7d\x80\x1a\x32\xe0\x59\x22\x3e\xc8\x75\x3b\ \x93\xb9\x31\x9b\x23\x23\x23\x22\xa4\x48\xea\x56\xa2\x53\xdd\x25\ \x41\x4c\x1c\x6a\xd6\x9c\x5d\xcb\xf6\x47\x82\x94\x34\xa1\xe1\xf9\ \xbc\xbc\xac\xf7\xcf\xa5\x2d\xd4\x93\x2f\x0a\xd4\xd3\x77\xed\xfa\ \xd8\xb8\x50\x84\xa1\x24\x24\x56\xb0\x54\x49\x04\xd5\x1d\xac\x7a\ \xbb\x7a\xd3\x1a\xb2\x13\x49\xd4\x3a\x4a\xfb\x11\xfb\xb2\x20\xc9\ \xb7\x41\x61\xc0\xfc\x56\xd4\xa3\x85\x78\xbe\x21\x49\x58\x03\x04\ \x10\x39\x3d\x87\xa6\xb8\x53\xb5\xb5\xcb\xf4\x95\xd4\x56\xf8\x37\ \xf8\x0c\xb7\x12\xd4\xdf\x86\x87\xa2\xad\x6d\x86\x54\xa4\xa9\x29\ \x09\x0b\x18\x58\x2b\xe5\x7e\xb8\xec\x2a\x12\x7b\xb2\xd2\xc5\xc2\ \xf6\x8a\xd6\xf6\x2f\x26\xdf\x61\xd4\x95\x34\xf2\x1c\x48\x51\x49\ \x28\x50\x20\x10\x70\x47\x1e\xa0\xfa\x56\x69\x50\xdb\xc1\xcd\x73\ \x76\x85\xea\x1c\x8d\x3b\xd1\xdf\xb5\x5b\x6c\x96\x86\xaf\x37\x6d\ \x52\xe5\xb6\x33\x6d\x36\xb4\x47\xf1\x96\x13\x97\x96\x37\x13\xe9\ \xd8\x28\x7a\x63\x81\x52\x19\x9d\x48\xd5\x9a\x7e\x4e\xb2\xd3\x97\ \xa1\x69\x93\x79\xb2\xd9\x4d\xda\x0c\xb8\xac\xad\x0d\x3c\x8e\x01\ \x0b\x6d\x4a\x38\x21\x4a\x03\x83\xc8\xa9\x4a\xe8\xaa\xc6\x42\xc9\ \xb2\xe9\x74\x05\xe4\xa7\xbd\x64\xd9\x2a\x6f\x6f\xad\x52\x56\x0e\ \xa6\x6b\x13\xa8\xf4\x2a\xee\xf1\xec\xea\xb5\x6b\x26\xdd\x2c\xb1\ \x1d\xb7\x03\xd1\x76\xa5\x24\x12\xb2\xac\x2b\x3b\xc1\x23\x68\xf5\ \x1e\x99\x2e\x9f\xa3\xb1\x79\x5a\xa3\xa9\xde\x3a\xdc\x3e\x1e\xa9\ \x90\x12\x16\x49\xc2\x77\xaf\x00\x67\xd2\xac\xdd\x90\x43\x11\x19\ \xcd\x25\xcf\xed\x72\xc7\xb8\xc5\xde\x92\x95\x0e\xf5\x11\xbe\x59\ \x50\x5a\x51\xd9\x92\x7b\x55\x88\xe2\x12\xea\x4f\xbd\x34\xdc\x63\ \x05\x24\x82\x29\xd4\xaa\x58\x6d\x48\x5c\xe2\x0f\xd2\x59\x9d\x71\ \xf6\x81\x6c\x81\x65\x92\x9b\x52\x8e\x54\xf4\x70\x57\xe3\x9f\x65\ \x63\xb0\x1e\xc7\xd7\x9f\x6a\xa9\x74\xc7\x4d\x35\x35\xd4\x29\xf9\ \x6c\x8b\x73\x29\xed\xf6\xa4\xa9\x25\x7f\x41\x8a\xfa\x07\xa8\x2c\ \xc9\x75\x45\x41\x27\x35\x0d\x9f\xa6\x0b\xab\xf3\x24\x91\xf3\x59\ \x65\x47\x11\x52\x76\xd3\xc4\x21\x5b\x87\x1b\x24\x72\x2d\xd7\x41\ \x6a\x02\xb4\x46\x8c\x84\x48\x6c\x01\xc8\x1b\x02\x4f\xbe\x69\xbd\ \x1a\x32\xea\x64\x98\xf3\x58\x97\x35\xd0\x32\x96\x9a\x51\xf0\xd0\ \x33\xdd\x4b\x35\xd6\x92\xb4\x93\x63\x3e\x5c\x53\x4c\xdb\x03\x2c\ \x20\x82\xad\xa3\xd4\x66\x99\x53\xa3\xea\x25\xb9\x68\xf4\x84\xa1\ \xba\x4c\xe5\x6b\xae\x81\xbb\x21\x45\x61\x70\xd3\x9e\xc8\x42\xc9\ \xc0\xfa\xe2\xa4\x1d\x1b\x65\x5a\x67\xa8\x71\xd6\xb9\x49\x79\x32\ \x19\x53\x0b\x00\x14\xf7\x20\xe4\x67\xd0\x10\x2a\xde\xbe\xdb\xa2\ \x21\xb2\xae\x30\x7b\x1c\xf7\xa8\x02\xa1\x32\x9d\x47\x0d\xc8\xec\ \x27\xc7\x32\x02\x77\x84\xe1\x5b\x7d\x46\x7f\x2a\x45\x7a\x31\x54\ \x65\x79\x2d\x87\x60\xf1\x73\x9e\x22\x2e\xdc\xce\xa1\xb1\x3a\x5d\ \x8c\x84\xac\x80\xb4\xe0\x0c\x9c\xe4\x7f\xac\xd2\xd7\x99\x56\xf3\ \xcf\xec\xf1\xfe\xb9\xa6\xed\x1c\x80\xf5\xb1\x90\xf8\xc3\x88\x18\ \x3c\x7f\xaf\xc2\xa4\x25\x05\x0a\x2d\xbb\x8d\xa7\x80\xbf\x43\xf1\ \x5e\x7e\x31\xba\x3d\x14\xa5\x69\x08\x43\x01\xe4\x6c\x70\xf9\xd2\ \x0a\x4a\x88\xe7\x1f\x51\xdf\x8f\x4a\xf1\x88\xea\x8a\xc6\xd7\x4b\ \xc8\x59\x23\x12\x5a\x1b\x93\xc7\xa9\x1e\x87\xf9\xf3\x4b\x7e\xcc\ \xa4\xb8\x36\x1f\x32\xbe\x3b\x7d\x29\x54\x55\xad\xa1\xe6\x3c\x91\ \x8e\x78\xff\x00\x42\xaf\x15\xae\xa5\x5c\xb4\x3c\xb7\xc9\x74\x2b\ \x6e\x03\xc9\xc8\xf3\x27\x9c\xfc\x91\xdc\x53\xfb\x0f\xb6\x5a\xf2\ \xe3\x70\xc7\xaf\x7a\x65\x92\xcc\x77\x16\x14\xa6\x46\xff\x00\x45\ \xa7\xca\xa1\xf8\x8e\xf5\x93\x29\x2b\x40\x6c\xad\xd5\x03\xc6\x4a\ \xb3\xc5\x35\x4a\xc2\x25\x14\xf5\x16\xc9\x79\x4a\x56\xd4\x05\x67\ \x39\xc9\x38\x14\x95\xe8\xee\x48\x3e\x7f\x0d\x1c\xfd\xe4\x8d\xc4\ \x7b\x71\x4a\xa1\x42\x61\xa4\xf0\xd2\x4a\x7d\x77\x1c\xe7\xe4\xd2\ \xf0\x50\x1b\xda\x9c\x04\xf6\xc2\x7b\x51\x6b\xee\x56\xf6\xd8\x8b\ \xb9\xa7\x58\x71\x68\x5b\xac\xa9\x64\x02\x32\xea\xb8\xcf\xc2\x7d\ \xa9\x24\xad\x25\x09\xc5\x38\x95\x21\xbd\xaa\x56\x4a\x52\x00\xcf\ \x1e\xc2\xa5\x6b\x0a\x3c\xed\x01\x5d\xb2\x6b\xc0\xd0\x1f\x7c\x67\ \xdf\x03\x19\xa5\xba\x30\x7c\x87\x46\xb4\xe3\xcc\x89\xb3\xa5\xdb\ \x68\x6c\x42\x01\x40\xe0\x01\xfb\xa3\xd2\x96\x46\xb0\xb2\xc1\xce\ \x01\xe7\x22\xa4\x29\x28\xdd\x8f\xe0\x2b\x05\xa1\x64\xe7\x01\xb4\ \xfb\x9e\x4f\xe1\x54\x54\x60\xb9\x03\xaf\x37\xbb\x1a\x94\xc8\x40\ \x4a\x10\x82\x54\x79\x00\x76\x03\xe6\xa2\x7a\xed\x9f\x16\x1a\xa3\ \x24\x95\xa9\xd5\x24\x15\x27\xbe\x77\x0e\xdf\x02\xa6\xb2\xbf\x64\ \x85\x25\x03\x69\x3f\x78\xab\xb9\xfa\xd4\x79\xd8\x89\x7a\x4a\x9d\ \x74\x12\x12\x9e\xdd\xf9\xa4\xd7\x8d\xe3\x64\x32\x8c\xac\xf3\x33\ \x8f\xfa\x99\xa5\xae\xfa\x73\xa8\x92\x1e\x94\xd3\xf3\x62\x5c\xde\ \x72\x44\x69\x0c\xb0\x7f\xda\x16\xa3\x90\xc1\x09\xec\x42\xb3\xc7\ \x63\x48\xa4\x4b\x95\x09\x6f\xef\x07\xc4\x52\xc3\xb2\x22\xf0\x76\ \x38\x78\xf2\x91\xf1\x80\x47\xe5\x5d\x73\x73\xb3\x19\xd0\xde\x88\ \x48\x4a\x8a\x4e\x17\xec\x7d\xc7\xcf\x7a\xa0\x3a\xab\xa3\xdb\xd3\ \x32\x17\x7d\xb9\x38\xd4\x7b\x73\x48\x25\xb8\xed\x24\x85\x49\x7b\ \x38\x08\xcf\xf1\xfc\x0d\x3f\x0d\x55\xb9\x24\xd6\xb6\xb2\x17\x89\ \x6f\x27\x57\x6b\xdd\xae\xd2\x1e\xd4\x37\xe6\xb2\xc0\x53\x72\x52\ \xeb\x83\x72\x92\xe3\x64\x14\x63\xd8\xfb\x1a\x7b\xb7\xd8\xe5\xa1\ \x68\x2b\x69\x67\x1c\x6e\x03\x9c\x1f\x4a\xd9\xa0\xf5\x0d\xb2\xea\ \xe7\xda\x11\x21\xa6\x54\x80\x0b\x8c\xbc\xe0\x4a\x90\x7d\x7b\xf7\ \x1f\x35\x76\xe9\xb8\xf6\xeb\x8c\x64\x00\x1b\x24\xf2\x0a\x48\x20\ \xfe\x35\xe8\xf0\xf4\x28\x4e\x9e\x49\xbd\x4f\x31\x5f\x13\x56\x35\ \x1c\xb6\x65\x6b\xa5\xb4\x7c\x74\xdc\xcc\xc0\x87\xd2\xea\x95\xb9\ \x45\x47\x85\x1f\x7f\xaf\xf9\xd7\x42\xe8\x68\x31\xe2\x30\xd9\x70\ \xe5\x40\x53\x65\xb2\xc8\xdb\x6f\xa5\xb0\x81\xdf\x82\x2a\x7f\x67\ \xb5\xc5\x8e\xd2\x4a\xc0\x27\x1e\xb5\xbf\x0f\x84\xa7\x85\x8b\xb7\ \x33\x25\x4a\xd5\x2b\xcf\x34\x9d\xd8\xfb\x18\xef\x65\x2a\x6f\xee\ \x8a\xc5\xfb\xd1\x64\xf8\x6d\xb7\xdb\xbd\x64\xdc\x86\xda\x6f\x09\ \x1c\x0a\x8f\x5c\x64\x9f\x19\x6b\x09\x18\x1e\x95\x34\xe9\x29\xb7\ \x99\x68\x5a\xa5\x57\x05\xd5\x7a\x92\xdb\x5d\xcd\x12\xf0\x14\x36\ \xab\xd8\xd1\x51\x38\x8f\xac\x20\x38\x95\x6d\x57\xd6\x8a\xa4\xf0\ \x69\xbb\xc5\xd8\xb5\x3c\x6b\x4a\xd2\x57\x21\x9d\x33\x8b\x39\xcd\ \x3d\x13\xec\xe0\x84\x9d\xfe\x6f\xfa\xea\xab\x16\xd8\xcc\x86\x41\ \x12\x5c\xdc\x7d\x78\xed\x4c\x7d\x33\x4a\x63\xe8\xa8\x29\x40\x4e\ \x47\x88\x09\x3f\xfc\xc5\x53\xcb\xcf\x24\xa8\xec\x39\x34\xf4\xdc\ \x95\x91\x9a\x9a\x51\x8a\x6c\x41\xa8\x4a\x50\xe2\x42\x57\x84\x9f\ \x4c\xd2\x0b\x64\xe5\x46\x92\x97\x1a\x59\x29\x07\xcc\x33\x58\x5d\ \x1d\xf1\x64\x60\x9c\xed\x14\x89\xa6\x5c\x65\x4a\xc0\x38\x3c\xe4\ \xd3\x92\xd2\xcc\x5b\x96\xb7\x43\x03\xfa\x31\x4b\x87\xaf\x22\xb7\ \x79\x38\xd5\xef\x97\x54\xaf\xb2\xff\x00\xb9\x79\x51\xc6\x37\xf9\ \xfe\xf7\x7f\x2d\x39\x5c\x34\x82\x6f\xda\x2f\x4d\x69\x65\xdc\x5f\ \x8b\x3b\x4f\x26\x32\xad\xf7\x36\x1b\x1b\xda\x75\x84\x25\x21\x7b\ \x09\x23\x07\x19\xdb\x9e\xf8\xe7\x8a\x70\x65\xc7\x8b\x9c\x8f\x2d\ \x4a\xb4\x74\x55\x2d\xd5\x48\x5a\x30\x3e\x69\x15\x29\x53\x84\x5b\ \xb1\x6a\x71\x73\x96\x5e\xdf\xec\x6f\xbb\xe8\x9b\x96\xa2\xd0\x97\ \x6d\x39\xae\x35\x22\x6f\x2d\x4e\x42\x3c\x37\x63\x5b\xd3\x10\xb0\ \x52\x77\x05\x01\xb9\x59\x3b\x82\x4f\x27\x1c\x63\x1c\xd3\x7e\x8b\ \xb1\xea\x7b\x36\x1a\xbc\xea\xd6\xef\x31\x1a\x63\xc1\x69\xbf\xd5\ \xa9\x61\x79\xc8\xc2\x94\xb0\xb3\xb8\x80\x08\xec\x33\x9c\x9a\xb0\ \xee\x8e\x06\xe1\xa8\x77\xf4\xa6\x46\x90\x56\xa4\x23\x3d\xeb\x36\ \x1d\x75\x5b\x35\xd7\x84\x54\xd5\xb7\x21\x9d\x4e\xd1\x37\xc7\x64\ \xb1\xd4\x0d\x08\xff\x00\x85\xab\xad\xb1\x15\x1d\xb6\x14\x84\xa9\ \xb9\x8d\x28\xf2\x85\x6e\xe3\x70\x0a\x51\x07\xd4\x80\x3d\xb0\xd3\ \x6c\xe9\x64\x1b\x97\x43\xdf\xd2\xf2\x1e\xb9\xda\xe6\xdd\xde\xfb\ \x74\xe9\x13\x59\x41\x7c\x4a\xde\x09\x2a\x42\x55\xb4\xa7\xca\x00\ \x01\x5d\x8e\x73\x92\x6a\xeb\x68\x78\x51\xc0\xed\x81\x4c\x77\xb7\ \x49\x4e\x32\x72\x4e\x69\x54\xe3\xc4\x99\x35\x68\xc2\x0b\x37\x76\ \xc6\xbd\x2d\x6b\x96\x8d\x30\x6c\xd7\xfb\x9b\x57\x92\xe3\x4a\x65\ \xc7\x51\x18\x30\x95\xb6\x53\xb7\x6e\xd0\xa3\x8e\x33\xce\x7d\x6a\ \x31\xa4\x7a\x7f\xa8\x74\x64\x78\xd6\xbb\x76\xb6\x54\x8d\x37\x11\ \xe5\x2d\x98\x12\x2d\x88\x53\xc9\x6d\x4a\x2a\xf0\xfc\x7d\xfd\xb2\ \x4f\x3b\x73\xed\x8e\xd5\x31\xb3\x3d\x96\x53\xee\x9a\x77\x7d\x21\ \xc6\x0d\x44\xe3\x92\x63\xa1\x08\xd4\x82\x7c\xd1\x52\x5b\x3a\x4f\ \x1a\x1f\x59\x5d\xea\x0a\x6e\xea\x53\x4e\x38\xb7\x91\x6d\xfb\x3f\ \x95\x0f\x2d\xa0\xda\x9c\xdf\xbf\x92\x7c\xc7\xee\xfa\xfc\x52\x1b\ \xb7\x41\x9d\x99\x63\xbf\x58\x63\xeb\x37\xa3\xd9\xae\xd7\x15\x5c\ \xd3\x18\xdb\x90\xb5\xb7\x20\xff\x00\x69\xcd\xd9\x5a\x06\x07\x94\ \x6d\xe4\x0e\x7b\xe6\xd6\x00\xa7\xf0\xa7\x48\xca\xde\xd0\x35\x15\ \x55\xb5\x45\x29\xe1\xe9\x4a\xe9\xaf\x4f\x72\xa8\xb8\x74\xe9\xb9\ \x9a\xc7\x5b\x5d\xa6\xdd\x1c\x5b\x1a\xa2\x03\x70\x9d\x8e\x86\x76\ \xa9\x84\xa5\xa4\xb7\xb8\x2f\x71\xdc\x7c\xb9\xfb\xa3\xf1\xa6\xbb\ \x1f\x4a\xee\x30\xa6\x69\x39\x17\x1d\x5e\xe5\xc0\x69\x67\x31\x6f\ \x68\x40\x4b\x49\x0c\x94\x90\xa4\x1c\x2c\x92\xa3\x84\x79\xf3\xd9\ \x18\xdb\xce\x6a\xdb\xba\x30\x52\xbf\x15\x23\x8a\x6d\x29\x5e\xed\ \xd9\x38\xad\x10\x8c\x26\xae\x22\xa5\x25\x19\x6a\xbd\x5e\xff\x00\ \xc9\x50\xb3\xd1\x45\xb1\x67\x66\xc2\x9d\x5e\xf1\xb4\xc5\xbb\x26\ \xe9\x09\x83\x01\x1b\x90\xe8\x50\xcf\x88\xbd\xd9\x73\xcb\xb9\x23\ \xee\xe3\x76\x4e\x70\x05\x4e\x23\x68\x39\xac\xf5\x59\xed\x77\x6a\ \xd4\x62\x18\x99\x1d\xa8\xf3\xa1\x39\x04\x3b\xe2\xb6\x82\x93\x84\ \xaf\x70\xd9\x90\x90\x33\x83\x8e\x6a\x5c\xcb\x41\x79\x56\x73\x8a\ \xdd\x19\x44\x3b\xb4\x77\xcd\x56\x71\x56\xb2\x26\x9d\x18\x45\xa7\ \x62\xb6\x83\xd1\x28\x4d\xf4\xed\xcd\x29\x23\x50\x3c\xb9\x28\xbc\ \x2a\xef\x0a\xe0\xd4\x50\x85\x47\x7b\x8d\xbe\x42\xa5\x05\x01\xce\ \x79\x19\xcf\xa6\x2b\x7b\x9d\x24\x7e\x54\x6d\x51\x32\xf5\xa9\xd5\ \x72\xbe\xea\x0b\x7f\xea\xf5\x4e\x10\x43\x4d\xc6\x67\x18\x09\x43\ \x21\x67\xd4\x02\x7c\xdc\x91\xe9\xcd\x59\xc5\x45\x1d\xeb\x2d\xfc\ \x0f\x9a\x46\xa8\xd1\xec\xf4\xb6\xb1\x5b\x45\xe9\x49\x0e\xf4\xf1\ \xd3\x7d\xe3\x46\xa1\x68\xc7\xd9\x3f\xdd\x9b\x92\xda\x7f\xb7\xfb\ \x3f\xb9\xfd\xee\xf5\x29\xd1\xfa\x7e\xe3\x62\x9b\x7b\x7e\x76\xa7\ \xb8\xde\x9b\xb8\xcd\x32\x63\xb5\x28\xf9\x61\xa0\xe7\xf6\x48\xe4\ \xf1\xcf\xa6\x07\x03\x81\xce\x5f\x9d\x7b\x03\x68\x35\xa5\x4f\x00\ \x39\x34\x28\xb7\xa9\x2a\x14\xe0\xf4\xf5\xa5\x85\x01\x7b\x79\xad\ \x32\x4a\x56\x93\xcf\x34\x8d\xe9\xcd\xa0\x1c\xac\x71\x4c\xd7\x1b\ \xf3\x4c\xf6\x58\xcf\xc5\x33\x25\xb5\x61\x2a\xc9\x0b\x26\x21\xac\ \x12\xbc\x53\x05\xc9\xf8\xad\xe7\x25\x35\x57\xf5\x77\xae\x5a\x7f\ \x47\x2d\x51\x1c\x5a\xae\x17\x2c\x67\xec\x71\xd6\x3f\x67\xff\x00\ \xcc\x5f\x64\x7d\x39\x3f\x15\xcd\xfa\xb3\xaf\x7a\xfa\xfc\xea\xd1\ \x6f\x7d\x9b\x44\x75\x1e\x13\x11\x1e\x70\x3e\x56\xac\x9f\xc4\x62\ \xa8\xf1\x79\x7d\xd4\x14\xe8\x55\xad\xee\xa3\xa8\x7a\x81\xac\x6c\ \x9a\x66\xdc\xa9\x77\x59\xcc\xc4\x41\xc8\x40\x59\xf3\xac\xff\x00\ \x75\x23\x93\x5c\xcf\xd4\x1e\xb8\xcf\x9b\x70\x2c\x69\x76\x0b\x6d\ \x63\x68\x7a\x42\x02\x94\xaf\x90\x9e\xc9\xfc\x73\xf8\x55\x59\x70\ \x95\x3e\xe2\xeb\x93\xae\x92\xe4\x4c\x79\xc3\xf7\x9d\x59\x52\x96\ \x7e\xa6\xa7\xbd\x0b\xe9\xe2\x35\xa6\xa9\x11\xa5\x05\x22\xdb\x0d\ \x29\x7e\xe0\xf2\x0f\xde\x4e\x70\x96\x81\xf4\xdc\x78\xfa\x03\x59\ \x6b\xe2\xa4\xd5\xe6\xce\x9e\x1b\xa1\xf5\xbc\xd9\x96\x84\xe9\xee\ \xb2\xea\x0a\xd5\x7f\xbb\x5c\x65\x31\x6c\xdc\x4f\xda\x16\x49\x53\ \xa7\xd4\x36\x0f\x18\xf9\xed\xf5\xab\x5f\x4e\xe8\x78\xd6\x9b\x9c\ \x54\xa3\xc6\x73\xc3\x39\x53\x8f\xb8\x56\xb5\x7a\x66\xae\x49\xec\ \xc7\x89\x09\x98\x71\x18\x43\x2c\xa1\x3b\x1b\x6d\x00\x04\xa1\x20\ \x60\x00\x3d\x05\x47\x5e\x67\x32\xdb\x74\x02\x73\xc6\xe1\xee\x2b\ \xcf\xe2\x71\x35\x2a\x3b\x72\x3b\x14\x28\x53\x86\xb1\x44\xb6\xc8\ \xd2\x51\x1d\x21\x23\x09\xc0\xcd\x3f\xb4\x90\x50\x37\x84\xad\x23\ \xb8\x3f\x5e\x0d\x31\xd8\x14\x0b\x3c\x9f\x32\x7d\x71\xde\xa4\x6d\ \xa4\x2d\xa0\x15\xe5\xc7\xc7\x7a\x65\x3d\x50\xba\x9b\x88\xcc\x65\ \xa0\x92\xc8\xde\x9f\xec\x77\x1f\x87\xa8\xad\xad\xa5\xbe\x13\x92\ \x39\xc8\x0a\x38\x22\x94\x16\x9c\x6f\xcc\xde\xec\x7a\xe4\xff\x00\ \x8d\x6d\x61\xd1\xc8\x71\x04\xfe\x19\xa6\x24\x2d\xc9\x98\x35\x15\ \x63\x24\x21\x59\xc6\x38\x02\xb7\xb0\xd6\x50\xa1\x92\x9e\xe1\x4a\ \x00\xf2\x7d\x78\xa5\x6d\xa5\xb2\x06\xd5\x2b\x07\xdc\xf0\x3e\x94\ \xa5\x0c\xb3\xea\xea\xff\x00\x0a\xbe\x51\x6e\x62\x26\x94\x94\xa7\ \x1b\x14\x4f\xb9\x4d\x78\xae\x78\x50\xc8\x3e\x83\xd2\x9c\x76\x46\ \xef\x82\xe7\xc6\x6b\x62\x40\x49\xc2\x10\x84\x0f\xa5\x5b\x29\x19\ \xc6\xe6\x9a\x75\x5f\x71\x93\x81\xea\xae\x05\x6d\x11\x70\x09\x79\ \x40\xfc\x26\x97\x10\xa5\x8c\x14\xab\xe7\x9a\xd6\xe3\x58\xf3\x29\ \x58\x1e\x98\xa1\xa2\x33\x08\xd4\xd8\xc6\xd4\x24\x24\x63\xb6\x38\ \xad\x0b\x4a\xb3\xb8\xd2\xc7\x16\x0e\x52\x94\x94\xfc\x9a\x44\xf2\ \x8a\x95\xb5\x24\xe4\xfe\x42\x97\x26\x59\x08\x26\x6e\x52\xfc\x26\ \xc0\x27\x1e\x63\xed\xf3\x49\x14\xce\x3c\xa8\x19\x09\xe3\x3e\xe7\ \xde\x9d\x94\xc1\x59\x0d\xb3\xe6\x3d\xc9\xff\x00\x5f\xce\xa9\x3e\ \xb1\xf5\xc6\xd7\xa6\x14\xfe\x9f\xd1\xae\x47\xbb\x5f\x00\x29\x7e\ \x60\x21\x71\xa1\x1f\x60\x7b\x38\xe7\xc0\xe0\x7a\xe7\xb5\x2d\xc1\ \xc9\x9a\x68\x53\x9d\x59\x28\xc1\x6a\x49\xfa\x85\xae\x74\xc6\x82\ \x69\xb5\x5f\x24\xa9\x53\x9f\x41\x54\x78\x2c\x0c\xba\xee\x3d\xfd\ \x12\x93\xfd\xa5\x71\xf5\xae\x4b\xea\x36\xb4\xba\x6b\xdb\xe2\xae\ \xf7\x72\x50\xd3\x6a\x29\x8b\x09\x3f\xd4\xc6\x6f\x3d\x81\xfd\xe3\ \x8e\xea\xf5\x3f\x95\x31\x6a\x0b\xc5\xca\xe7\x3e\x4d\xd2\xeb\x25\ \xf9\xd3\x9e\x58\x53\xd2\x5c\x3b\x89\x3f\x3f\x81\xe0\x76\x14\xcd\ \x31\xe7\x64\xa8\x70\x42\x41\xf2\xf3\xc7\xe5\x5a\xe8\x61\xd4\x35\ \x67\x51\x46\x9e\x1d\x7f\xb4\x84\x97\x16\x13\xe2\x27\xc0\x58\x52\ \x89\xf3\x60\xfc\xd3\xff\x00\x4f\xb5\xde\xa0\xd0\xf7\x0f\x1a\x1b\ \xbe\x3c\x35\x28\x78\xd1\x9c\x39\x6d\x5f\x4f\x63\xf2\x29\x95\x2a\ \x08\xe3\x21\x38\x3c\x91\xfe\x5f\x35\x8b\x8d\xe5\x2a\x21\x29\x48\ \x03\x8c\x03\x85\x56\xde\x56\x67\x2b\x11\x86\x85\x5b\xbe\xde\x47\ \x63\xf4\xe7\xac\x1a\x67\x52\xb2\xd2\x63\x4d\x44\x69\xd8\x19\x89\ \x21\x41\x0b\xcf\xb2\x49\xe1\x7f\x87\x3f\x15\x6d\xc0\xd4\x0d\xb8\ \x91\xdc\x2f\xd4\x1e\xe2\xbe\x69\x29\x87\x10\xe7\x88\xd2\x94\x8d\ \x9e\x60\x52\x6a\xc6\xd0\x5d\x6c\xd6\x5a\x63\xc2\x62\x5b\xe9\xbb\ \xdb\xdb\xc0\x0c\xca\xc9\x5a\x47\xf7\x56\x3c\xc3\x8f\x7c\x8f\x8a\ \xd3\x4b\x13\x52\x9e\x9b\xa3\xce\xe2\x3a\x2e\x50\x77\x81\xdf\xad\ \xcb\x2e\xc7\xf1\x77\x01\xc5\x21\x61\x45\xe7\x8a\x73\x9d\xc7\x9a\ \xa1\x74\xc7\x5e\xb4\xb5\xfa\x22\x18\xfb\x7a\xed\x33\x14\x39\x66\ \x5f\x08\x27\xd8\x2c\x71\xf9\xe2\xac\x5b\x26\xb1\x8a\x96\x92\xb4\ \x3e\xcc\x82\xa1\x9d\xcc\xb8\x97\x07\xff\x00\x69\x35\xb6\x18\xfa\ \x4f\x49\x68\xce\x5d\x4a\x33\x83\xeb\x22\x74\xe0\x6d\xb5\x14\x13\ \x92\x7d\xa8\xa6\x48\x97\xd6\x26\x28\x28\x11\x93\xcd\x15\xb6\x33\ \x8c\x95\xd3\x13\x62\x51\xd3\x5b\x6a\x1c\xd1\x90\x96\xb5\x7d\xef\ \x13\xb7\xa7\xed\x15\x4f\x4f\x5a\xda\x84\xd2\xde\x6d\x1b\xf0\x9e\ \xd8\xa8\xa7\x4d\x2e\x32\x99\xd2\x70\x12\xa3\x94\x65\x7f\x87\xed\ \x15\x56\x0a\x16\x97\xa2\x85\x77\x4a\x85\x73\xa4\xea\x53\xb3\x6f\ \x43\xa1\x41\x52\xab\x0d\x16\xa8\xae\x19\x68\xca\x9c\xb7\x14\x36\ \x24\x2a\xb2\xba\x24\x15\x80\xd2\xc6\x00\xf4\xad\xf7\x75\x84\x4e\ \x71\x94\x61\x08\xdd\x93\x48\x46\xc1\x90\x09\x51\x3e\xa7\x9a\xe9\ \xad\x51\xcf\x7a\x3b\x1a\x9a\x59\x0a\x28\x3f\x96\x2a\x7d\xa5\x9e\ \x69\x50\x82\x52\x30\x40\xc1\xa8\x3e\x1b\x2a\xcf\xad\x4b\x34\xc2\ \x17\x1a\x12\xde\x70\x7d\xee\x40\x35\x9f\x12\xaf\x4c\xd1\x85\x95\ \xaa\x0a\xef\x4f\x05\x3c\x1a\x1e\x9d\xeb\xcb\x4b\x45\xd7\xf7\x94\ \xf9\x40\xe0\xd2\x17\x14\xa9\x12\x49\xee\x54\x71\x4f\xb1\x50\x98\ \xb1\x80\xcf\x38\xa4\x54\xfd\xba\x6a\x2b\x73\x45\x3f\xdc\xa8\xe4\ \xf6\x32\x9a\xee\x13\xb4\x1f\x4e\x6a\x35\x70\x90\x95\x3a\x54\xae\ \xc9\x3c\x52\xfb\xa4\x9d\xa8\x23\xf7\x95\x4d\x29\x6f\xc5\x77\x67\ \x24\xd3\x30\xd4\xf2\xab\xb1\x78\x9a\x99\x9d\x90\xb6\xd4\xf0\x4b\ \x83\x04\x61\x55\x23\x8a\xb0\xa4\x6d\x35\x13\x09\xf0\x97\xb7\xb1\ \x1f\x14\xf7\x6f\x91\xbd\xb1\xcf\x98\x55\x31\x34\xef\xaa\x2f\x85\ \xa9\x6e\xab\x37\x4a\x6f\xc3\x70\x9f\x43\x5b\xa0\x2f\x04\xa0\x9f\ \xa5\x6d\x71\x29\x7d\x9e\x3b\xd2\x24\x95\x36\xbe\xf8\x22\xb3\x2e\ \xbc\x6c\xcd\x2f\xa9\x2b\xa1\x45\xd1\xd0\x96\xb6\x7a\x9e\x29\x97\ \x3c\xed\x39\xc7\xc5\x3a\x5c\x47\x8c\xce\xf4\xe3\x8a\x68\x53\x9e\ \xc9\xe6\x9f\x87\x8f\x54\x46\x21\xf5\x85\xac\xb8\xdb\x43\xb7\x06\ \xbc\x5a\xb7\x3a\x14\xda\xbb\xd3\x4c\xb9\xbe\x12\x72\xae\x00\xa6\ \x19\xba\x9e\x3c\x57\x0a\x94\xea\x52\x90\x7c\xca\x52\xb0\x07\xd4\ \x9e\x2a\xd3\xcb\x4d\x66\x93\x13\xc5\xe4\x58\x3e\x3a\x52\x91\x93\ \xce\x29\x1c\x9b\x9c\x76\xf8\x2b\x48\xaa\x67\x58\x75\xb3\x48\x58\ \xdb\x50\x9b\xa8\x62\x97\x40\xc8\x66\x32\xbc\x65\x9f\x8c\x27\x20\ \x7e\x24\x55\x21\xab\x7f\x49\xe7\x1c\x52\xdb\xb0\xd8\xca\x8e\x4e\ \xd7\x66\xb8\x4f\xff\x00\x62\x7f\xce\xb0\xf1\xa3\xbc\x55\xcd\x51\ \x55\x6a\x7b\xa8\xeb\xb9\xda\x8a\x3a\x16\x40\x58\xed\xef\x51\xcb\ \xc6\xb5\x8f\x19\xb5\xad\x6f\x21\xa6\xd3\xf7\x96\xe2\xc2\x52\x3e\ \xa4\xd7\x0c\x5f\xba\xd3\xd4\x4b\xab\x8a\x5a\x6f\x0b\x84\xda\x87\ \xdc\x8a\x80\xd8\x03\xea\x39\xfe\x35\x0d\x9f\x74\xbd\x5c\xd5\xbe\ \x7d\xca\x54\x8d\xca\xca\xbc\x57\x8a\xb9\xfc\x4d\x51\xe2\x2a\x72\ \xb2\x1d\x1e\x8e\xab\x3f\x7a\x47\x5d\x6b\x9e\xbf\xe9\xbb\x41\x5b\ \x71\xe7\x9b\x93\xe9\xff\x00\x82\x8b\xca\x7f\xed\x9e\x3f\x2c\xd5\ \x1b\xae\xfa\xe3\xab\xf5\x31\x5c\x5b\x6b\x9f\xaa\x21\x2c\x10\x50\ \xc1\x3b\xd4\x3f\xbc\xe7\x7f\xcb\x15\x5a\x37\x17\xb1\x50\x2a\x23\ \xda\x94\x36\xdb\x4d\xe0\xaf\x03\xca\x41\x03\xd3\xf1\xa4\xca\x4e\ \x4e\xed\xdc\xeb\x61\xfa\x22\x9c\x35\x97\x98\x9d\xb6\x16\xfb\xc5\ \xc7\x9c\xf1\x49\xf3\x12\xa3\x9c\x9a\x56\x5b\x4a\x06\xd4\x24\x91\ \x91\xe9\x5b\x76\xe1\xad\xca\x04\x21\x27\xcb\x84\xf7\xaf\x76\x84\ \xa4\x93\x8c\x28\xe3\x83\xcf\xd3\xe9\x55\x6e\xec\xec\xd3\xa0\xa1\ \x1b\x24\x26\x98\xb5\x97\x58\x40\x48\x29\x49\x52\xb0\x3b\xf1\xdb\ \x3f\x9d\x74\x7f\xe8\x6f\x2e\x2a\xed\xda\x96\xdc\xa0\x91\x38\x2d\ \x89\x19\xf5\x53\x58\x50\xc6\x3e\x09\xfe\x35\xce\xae\x25\x26\x5b\ \x38\x6c\x94\xac\x28\x10\x3b\x9e\x33\xfe\x15\x3c\xfd\x1f\xb5\x22\ \x34\xaf\x55\xad\x32\x65\x3a\x96\xa0\xce\xcc\x19\x65\x47\x00\x25\ \xce\x12\xa2\x7e\x14\x13\xcd\x2a\xb4\x6f\x02\x1a\x93\x53\xd7\x7f\ \xc1\xd6\xf7\x26\xb2\xf9\xf3\x60\x63\x03\xe0\xe2\x90\x88\x89\x71\ \xb2\xde\x36\xee\xc1\x1f\x0a\xf7\xa7\x99\x6c\xa9\x52\x14\x36\x8c\ \xa5\x5b\x54\x01\xed\x8e\xc6\xb2\x62\x29\x28\x03\x8c\x0e\xc7\x15\ \xc9\x74\xee\xcc\xaa\x76\x42\x5b\x46\x5b\x56\xd7\x52\x37\x24\xed\ \x20\x8e\x47\xcf\xe7\x9a\x92\xb4\xb4\xa1\x09\x24\x9c\x11\xdf\xb8\ \xa6\x65\x36\x1b\x21\xc2\x95\x15\x27\x1e\x70\x79\x4f\x3d\x8f\xbd\ \x39\xb6\x85\x29\x85\x05\x36\x01\x28\x38\x58\x20\xf1\xe8\x47\xd0\ \xd3\x20\xb2\xe8\x52\x6d\x3d\x45\xc1\xcd\xaa\x47\x88\x4e\x36\x92\ \x94\x83\x9e\xdd\xf8\xa5\xac\xa5\x24\x02\x10\x82\x15\xc8\x20\xf7\ \x14\xc7\xa7\xd2\xea\xd8\x0b\x92\xa0\xfc\x94\x1f\x0c\xad\x49\x29\ \xe3\x3c\x63\xda\x9e\xe3\x29\x28\x07\x6a\xb2\xd9\x3c\xa7\xfb\x3f\ \x4a\x6c\x1d\xd5\xc4\xd4\x56\x76\x37\x00\xd2\x55\x84\x95\x6d\x23\ \xf7\x78\xe4\x7d\x7e\xb4\xa1\x94\xb6\x13\x93\x95\x28\x93\xca\x8e\ \x3f\x2f\x8a\x43\x25\x5b\x43\x6b\x24\x25\x5d\x81\x48\xc8\xcf\xcf\ \xe1\x43\x6a\x71\x45\x59\x75\xb2\xa5\xe4\x20\x81\x85\x24\x0f\x5c\ \x76\x3e\x9c\x55\xef\x62\x96\x1c\x52\x40\x58\xc1\x1c\x67\xca\x3f\ \xd7\x34\xa1\x2a\x42\x94\x50\x09\xe0\x02\x46\x29\x33\x39\x71\x96\ \xbc\x2d\x85\x04\xe7\x77\xef\x27\x1d\xeb\x5a\x7c\x54\xbc\xb7\x12\ \xb1\x94\x8c\x76\xce\x73\xcd\x5a\xe5\x77\x15\x3a\xff\x00\x87\xca\ \x10\xb7\x14\x3b\x25\x3d\xcd\x63\x20\xac\x8c\x9c\x63\xeb\xda\xb0\ \x82\x14\xb1\xe2\x29\x2a\x1d\xc1\xdd\xdc\x9e\xdf\x95\x6b\xbe\x5c\ \x2d\x96\x4b\x6a\xee\x57\xbb\x94\x4b\x64\x24\x0c\x97\xa5\x3c\x96\ \xd3\xf8\x67\xb9\xfa\x54\x6f\xa8\x5b\x5b\x20\xc6\xe4\xf2\x42\x47\ \x6a\x65\xd5\xb7\xfb\x16\x93\xb3\x2e\xef\xa8\xee\x6c\xdb\x60\xa7\ \x3b\x54\xe1\xcb\x8f\x2b\xfb\x2d\xa0\x72\xb5\x7c\x0f\xc6\xa9\x7e\ \xa5\x7e\x93\xf6\x88\x65\xcb\x77\x4f\x2d\xaa\xbb\x4a\xda\x40\xb9\ \x4d\x41\x6d\x84\x1f\x74\x36\x70\xa5\xe3\xdd\x58\x1f\x06\xb9\xab\ \x56\x5f\xf5\x16\xad\xbb\xbb\x77\xd4\x57\x49\x37\x49\xc4\x60\xba\ \xf2\xf0\x86\xff\x00\xba\x80\x38\x48\xf8\x48\xc5\x4a\xa6\xd9\xd2\ \xc3\x74\x75\x4a\x9d\x69\xe8\xbc\xfd\x7a\xb1\x65\xf5\x9b\xaf\xb7\ \x8d\x5d\xe2\xd8\x74\xca\x17\x61\xb0\xa8\x94\xb8\xb5\x2b\xfd\xa6\ \x58\xf6\x5a\x87\xdd\x49\xfe\xca\x7f\x12\x6a\x9e\x71\x29\x60\xb6\ \xda\xdc\x50\x1b\x54\x50\x80\x36\x9d\xc6\xb5\xbc\xe0\x49\x48\x69\ \xb0\x70\x7e\xf1\x1f\xce\xb5\x24\x29\x6a\xf1\x94\x4b\x8a\x3d\xf1\ \xdf\xe4\xf3\x5a\x21\x05\x15\xa1\xd3\x8e\x4a\x49\xc2\x2b\xd7\xd4\ \xd0\xb3\x29\xf5\x99\x0a\xca\x46\x30\x02\x46\x78\xf7\x35\x82\xd2\ \xb7\x1b\x48\xc0\xee\x33\x83\xc6\x7d\x29\x62\x88\x43\x4b\xda\xa0\ \x92\x0e\x70\x0f\x27\xde\x93\xc8\x79\x0a\x74\x00\x14\x40\xf4\x4f\ \x00\xf1\x4c\x42\x2a\x46\x29\x6a\xdd\xd9\xad\x0c\xb2\x12\x52\xf3\ \xa9\x4e\xd3\x92\x0a\x7f\x2f\xad\x60\xe6\x12\x93\xb9\x63\x1d\x81\ \x4a\xbb\xfe\x15\xb5\x42\x53\xa1\x3b\xd2\x52\x39\x03\x70\xc9\x48\ \xc7\x02\xb2\x66\x13\x2d\xa4\x29\xd5\x78\xa4\x8c\xee\x24\x64\x7e\ \x1f\x5a\x9b\xf6\x8a\x74\xdc\x9e\x58\x2b\x7a\xe6\x22\x59\x51\x58\ \x28\x0b\x50\xcf\xb6\x31\xe9\x59\x39\x15\x4a\x39\x70\xa7\x80\x4e\ \x7b\x52\xe5\x2d\xa4\x12\x10\xea\x90\x01\xe4\x28\x7a\xfc\x52\x27\ \xe4\x28\xf2\x82\x41\xf5\x28\x18\xfa\xd4\xa6\xde\xc2\xe7\x4e\x10\ \x4d\xc9\xdc\x46\xec\x66\xc2\xc6\xd3\x92\x79\x1c\xd6\x70\xa4\x5c\ \x6d\xef\x22\x4c\x29\x6f\xc5\x75\x07\x29\x52\x16\x52\xa0\x7f\x0a\ \x50\x92\x8c\xa9\x2a\x51\xec\x3d\xb3\x9a\x0a\x77\xa4\x29\x40\xe0\ \x63\x38\x3c\x0a\xb5\xcc\x72\xc3\xc6\x45\x9d\xa3\x3a\xe7\x7c\xb5\ \x2d\xa6\x35\x24\x41\x70\x65\x3c\x7d\xa1\xb3\xb1\xec\x7b\x9f\x45\ \x7e\x3f\x9d\x15\x51\xce\x6d\x29\x19\xc1\xc1\xed\xed\x45\x42\x8a\ \xe5\xa1\xca\xaf\x82\xa5\x9f\xdd\xf5\xf0\x3a\xc3\x4d\x6a\x0b\xf3\ \x76\x28\xc8\x6e\xf5\x72\x4a\x41\x56\x02\x65\xac\x01\xe6\x3e\x99\ \xa9\x33\x5a\xa3\x52\x35\x0c\x0f\xe9\x0d\xd8\x71\xdb\xed\x8e\x7f\ \x9d\x42\x74\xaa\x77\x5a\x63\x92\x78\x1b\xbf\xfc\x8d\x3d\x15\x78\ \x87\x27\xee\x8a\xf1\x55\xeb\x55\x72\xb6\x67\xf3\x3c\x6a\x9c\x93\ \x76\x66\x62\xeb\xa8\x5f\x90\xa7\x5d\xbe\x5c\xce\x4f\x73\x29\x7f\ \xe7\x4a\xdb\xba\xde\x12\x9c\x7e\xb9\xb9\x7f\xf5\x4b\xff\x00\x3a\ \x40\x54\x01\xe2\xbd\x6d\x4a\x52\x82\x52\x82\x49\x3c\x01\xeb\x55\ \x78\xaa\xef\x69\x3f\x9b\x21\x36\x2c\x76\xe9\x78\x24\x2c\x5e\x6e\ \x5c\x73\xfe\xea\x5f\xf9\xd6\x6b\xd5\x7a\x89\x6d\x86\x91\x7e\xba\ \xed\x1e\x9f\x6c\x73\xfc\xeb\x0b\xd5\x9a\xfb\x6d\x88\xdb\xf3\xec\ \xf3\xa2\x30\xf2\xb6\x21\xc7\xd8\x52\x12\x49\x19\x03\x24\x77\xc0\ \x27\x1f\x06\x90\x47\x65\x2c\xa7\x72\xf9\x51\xab\x4a\xb5\x78\xfb\ \xf2\x77\xf1\x64\xbc\xd1\x76\xd8\x7a\x89\x7f\xd4\x2d\x8f\x11\x57\ \xeb\xa8\x57\xfc\xf1\xcf\xf3\xac\x9f\xd5\x7a\x90\x82\xa5\x6a\x1b\ \xb6\x3f\xe7\x8e\x7f\x9d\x35\x0d\xce\x38\x84\x24\x65\x4b\x50\x4a\ \x52\x4e\x32\x49\xc0\xaf\x35\x3d\xaa\xe7\x64\xba\xae\xd9\x76\x8c\ \x23\x49\x42\x52\xa5\x37\xe2\x25\x78\x04\x64\x1c\xa4\x91\x54\x8c\ \xeb\xcf\xac\xe4\xed\xf1\x2d\x9a\x6a\x37\x57\xb1\xb5\x7a\x97\x50\ \xba\xb2\xa5\xdf\xae\x87\xeb\x2d\xcf\xf3\xaf\x58\xd4\x9a\x85\x2b\ \xdc\x2f\xb7\x4f\xfe\xad\xcf\xf3\xa6\x62\x78\xed\x4e\xd0\x6c\x17\ \x69\x76\x19\x77\xc8\xf1\x82\xed\xf0\xd4\x11\x21\xef\x15\x03\x62\ \x8e\x30\x36\x93\x93\xf7\x87\x61\xeb\x4f\x55\x6b\x4b\x48\xc9\xfc\ \xd8\xb8\xe7\x93\xd0\xda\xe6\xa4\xd4\x3b\xf7\x7e\xbe\xba\x7f\xf5\ \x8e\x7f\x9d\x66\xd6\xa7\xd4\x6d\xab\x72\x6f\xf7\x51\xf4\x98\xe7\ \xf9\xd3\x3e\xd2\x72\x2b\xd1\xda\x97\xc7\xab\x6f\x79\xfc\xc3\x34\ \xbb\x49\x33\x3a\xab\x52\x10\x14\x9d\x43\x76\xf9\xff\x00\x6c\x73\ \xfc\xe8\x7b\x53\x6a\x25\x8c\xff\x00\x48\x2e\xb9\xff\x00\x9e\x39\ \xfe\x75\x1b\x43\xa5\xa3\x9f\x4a\x1e\x96\x90\x9c\x85\x52\xb3\xd6\ \xbd\xd4\x9f\xcc\xba\xa9\x27\xa5\xc7\x97\x35\x76\xa4\x6c\x14\x9d\ \x41\x76\x03\xfe\x78\xe7\xf9\xd3\x74\xcd\x69\x7c\x65\xa5\x2d\x7a\ \x86\xe4\x84\x81\x95\x29\x53\x56\x00\xfa\x9c\xd4\x3f\x52\xea\x16\ \x22\x94\x47\x09\x76\x4c\xd7\x8e\xd8\xf0\xe3\xa4\xad\xe7\x94\x7b\ \x04\xa4\x73\xc9\xaa\x9f\xaa\xb1\x7a\x8b\x05\x51\xbf\xa5\xd6\x0b\ \xbd\x8e\x24\x82\x7e\xca\xdc\x98\xab\x65\xb5\xe3\xbe\x32\x06\xe5\ \x0c\x8c\xfa\x8c\xfa\x57\x4f\x07\x86\xc4\x57\xd7\x33\x4b\xb6\xec\ \xdb\x85\xc2\x55\xae\xef\x7b\x22\x79\xab\xba\xdf\x3a\x31\x53\x16\ \xdb\xd5\xca\xe0\xf0\xe3\x7a\xa5\x38\x1a\x1f\xc7\x2a\xff\x00\x5c\ \xd5\x4d\xa9\x75\x9e\xa9\xd4\xae\x95\xdd\x6f\x53\xa4\x23\xd1\xb5\ \x3c\xad\x89\x1e\xc0\x67\x14\xc2\x1b\xf7\xe4\x9f\x5a\xcd\x20\x76\ \x07\xf3\xaf\x41\x47\x0f\x0a\x4b\x4b\xb7\xda\xce\xfe\x1f\x07\x0a\ \x1b\x6e\x63\x87\x14\x7c\xce\x2f\xf1\x35\xea\x41\x4f\x39\x56\x6b\ \x23\xbb\x8f\xa5\x2e\x76\xd5\x73\x66\xd2\xc5\xe1\xfb\x5c\xc6\xad\ \xb2\x5c\x53\x4c\x4c\x5b\x0a\x0c\xba\xb4\xfd\xe4\xa5\x78\xda\x48\ \xf5\x00\xf1\x4f\x6d\x9b\x16\xe2\x30\x5c\xec\x16\xbf\xce\xbd\x42\ \xd6\x14\x0e\xf5\x03\xe8\x6b\xc0\x32\x7d\xbd\xab\xdf\x4c\x11\x8a\ \xad\xcb\xab\xf6\x99\x17\x9e\x24\x6e\x79\xc3\xf8\x9a\xc9\x2f\x3b\ \xbb\x97\x5c\x3f\xf5\xab\x04\xfa\x91\xe9\xc6\x2b\x24\x83\x9d\xc5\ \x35\x0c\xba\x72\xed\x33\x53\xef\x29\x44\x17\x5c\x3f\x55\x9a\x03\ \xab\xc1\x05\xd7\x3e\x79\x35\xa5\x44\x15\x63\x18\xf4\xac\x81\xc0\ \x04\x7e\x00\x50\x4f\x12\x4d\xee\x66\xe3\xef\x04\x85\x87\x57\x94\ \x60\xa7\xcc\x7f\x87\xf1\xaf\x56\xf3\x8e\xa4\x65\xd5\x94\x91\xdf\ \x71\xe6\xb0\x1c\x73\xf3\x5e\x70\xd9\x20\xf2\x85\x73\xff\x00\x24\ \xd0\x4a\x9c\x97\x32\xfa\xe9\xa7\x50\xef\x17\xcb\x7a\x60\xca\xbe\ \xdc\x05\xce\x2a\x02\x56\x93\x29\x79\x75\x09\xc0\x0b\x1c\xf3\xe8\ \x0f\xe7\x53\x34\x5f\x2f\x81\x1e\x5b\xcd\xcb\x00\x76\xfb\x52\xff\ \x00\xce\xb9\xc7\x45\x58\xb5\x46\xa0\xbe\x06\xb4\x7d\xba\xe1\x3e\ \xe7\x19\x06\x4a\x53\x05\xa2\xb7\x1b\x40\x21\x25\x58\x1d\x86\x54\ \x91\xf8\x8a\xb4\xde\xd4\x1a\xa3\x4a\xa6\x3b\x1d\x47\xd2\x37\x8b\ \x32\xde\xf2\xb5\x31\x50\xd4\xda\x1d\x3e\xb9\x04\x00\x48\xf5\xda\ \x7f\x0a\xe0\x63\x70\x15\x54\x9c\xe9\x6a\xbb\x3b\x0e\x4e\x2f\x0d\ \x57\x36\x6a\x6e\xfd\xd7\x26\xd2\x2f\xb7\xbd\xa4\x9b\xdd\xc9\x27\ \xdf\xed\x4b\xed\xf9\xd6\xa8\xd7\xab\xbb\x69\x29\x7a\xf1\x74\x24\ \x65\x5c\x4a\x5f\x23\xdf\xbd\x46\x06\xb0\xd2\xf2\x40\x0c\xdf\x22\ \x79\x86\x7f\x6b\xb9\xbc\x7d\x72\x29\x53\x57\xad\x3b\x22\x2e\xe5\ \xde\x6d\x64\x0f\x43\x25\x03\x18\x3c\x7a\xd7\x2d\xc6\xb2\x5a\xa7\ \xe6\x62\xfd\xf8\xab\x3b\xf9\x92\x78\xda\x8a\xfc\xeb\xcb\x75\x9d\ \x47\x74\x2d\x29\x20\x28\x7d\xa9\xc1\x83\xf9\xf7\xf4\xa5\x82\xfd\ \x7e\x40\x0d\x1b\xcd\xd1\x1e\x5e\xe9\x94\xb1\x81\xe9\xeb\xfc\x2a\ \x39\xa4\x52\xce\xad\xd4\x0c\x58\xb4\xfd\xca\x1c\xeb\xab\xe1\x61\ \x31\xd9\x90\x90\x56\x94\x24\xa8\x9e\x48\x48\xc6\x0f\xad\x31\x5e\ \xba\x83\x67\xb1\x5e\x65\x5b\xa5\x17\xdc\x9b\x11\xc5\xc6\x90\xdb\ \x2d\x6e\xc2\xd0\xa2\x15\xc9\x38\x3c\xe4\x67\x9e\xd5\x2a\x86\x26\ \x7e\xea\x7e\x64\x70\xf1\x13\x7d\x54\xfc\xcb\x11\x5a\x87\x51\x16\ \x83\xa2\xf7\x73\x78\x00\x7f\xfe\x6d\x79\x3e\x9e\xf8\xa5\x11\xb5\ \x16\xa1\x6d\x28\x29\xbe\xdd\x38\xe0\x1f\xb5\xb9\x9e\xdf\x5a\xa4\ \xa4\x75\x75\x4d\xa9\x5f\x63\xb2\x87\x90\xa2\x79\x7d\xcd\x9f\xc1\ \x39\xa6\x2b\x9f\x54\x35\x6c\xdd\xe9\x8a\xf4\x6b\x72\x08\xe3\xec\ \xec\x8d\xc0\x7f\xca\x56\x4f\xe5\x8a\x7c\x3a\x37\x19\x3d\xf4\xf1\ \x63\x63\x80\xc5\xc9\xd9\xe9\xf1\xfb\x1d\x19\x23\x52\x5f\x1b\x6f\ \xc5\x91\xa8\xae\x6c\x36\x15\xc9\x72\x7a\xd0\x93\xf9\xab\x15\x15\ \xbc\xf5\xaa\x35\xa5\x4e\xa4\xea\xeb\xac\xe7\xc2\xb1\xe1\x43\x94\ \xe2\xc6\x7f\xe5\x12\x07\xf1\xae\x70\xb8\x4d\x99\x71\x7f\xc5\xb8\ \x4c\x93\x31\x64\xe5\x45\xe7\x14\xae\x7f\x1a\x4e\x02\x12\xa2\x13\ \xb4\x01\xdf\xd7\xf2\xad\xf4\xba\x26\xda\xd4\xa8\xdf\x86\x86\xda\ \x7d\x17\x67\xd7\x9b\x7e\x1a\x16\xed\xfb\xf4\x85\xd7\x12\x02\x9b\ \xb2\xce\xb8\x40\x41\x3c\x3c\xf4\xc7\x1d\x70\x7d\x06\x76\x83\xf8\ \x1a\xad\xf5\x0e\xa3\xd4\x3a\x9a\x68\x99\xa8\xaf\xb7\x2b\xac\x81\ \xf7\x17\x2e\x4a\xdc\x29\xf8\x4e\x4f\x03\xe9\x4d\x65\x4b\xc7\x95\ \x38\x03\xd5\x55\xe1\x19\x39\x5a\x81\xe3\x00\x67\xb7\xe1\x5d\x4a\ \x54\x29\xd2\x56\x8a\xfa\x9d\x2a\x34\xa3\x47\xdc\x5e\xbc\x4f\x4b\ \xce\xfd\xd0\xe2\xc9\xed\x80\xa3\x83\xf5\xac\xbc\x69\x2a\x46\xd2\ \xf3\xa5\x07\xb8\xde\x71\xc7\xbd\x60\x08\x00\x00\xae\xde\x80\xd0\ \xb2\x10\x08\x1c\x9f\x5c\x9e\xf4\xe1\xaa\x52\xde\xe6\xc5\x4b\x91\ \xbb\x1e\x3b\x98\x1d\xb2\xa3\x5a\x9c\x90\xe8\xec\xea\xc2\x87\x6f\ \x31\xe2\xb5\xf9\xd6\xa2\x12\x14\x00\xef\xf1\x59\x25\x09\x41\xfb\ \xc0\x9f\x91\x53\x6b\x15\x75\x27\x2d\xd9\x8f\x89\x25\xd5\x65\x4f\ \x38\x31\xee\xa3\x59\xa4\x94\x1d\xc9\x5a\xc1\x1c\x67\x35\x22\x85\ \xa2\xb5\x54\xfe\x9f\x5c\x75\xe4\x3b\x4e\xfd\x39\x6c\x92\x22\xcc\ \x99\xf6\x86\x87\x86\xe9\x2d\x80\x9f\x0c\xab\x79\xe5\xe6\xf9\x09\ \x23\xcd\xdf\x83\x88\xa9\x25\x5c\xe4\x9a\x9b\x31\x6e\x76\xd9\xdc\ \x50\xa9\x6f\x81\xe4\x75\xc1\xcf\xf6\xcd\x6a\x76\x4b\xea\x52\xb2\ \xf2\xc9\x57\x07\xcd\xde\xb5\x24\xe4\x8c\x63\xf2\xed\x41\xf5\xf5\ \x35\x29\x58\xa4\xaa\xca\x4b\x73\xd2\xe3\xab\x50\x2b\x71\x64\x8f\ \x9a\x37\x2b\x24\xee\x56\x4f\xae\x4d\x78\x40\xe0\x95\x60\x7e\x75\ \xea\xf6\xe7\x39\x1c\xfb\x54\x95\xbb\xdd\xb0\xf1\x1c\x1c\x07\x17\ \xef\xf7\xab\xcf\x11\xc3\xff\x00\x08\xe1\x1e\x9c\xd7\x83\x39\xc7\ \xf1\xaf\x42\x3b\xee\x56\x3e\x48\xa9\xb9\x56\xd9\xa5\xf5\xa8\x8e\ \x56\xa2\x3e\x4d\x15\x9b\xe9\x40\x1c\x2b\xf0\xa2\xac\x99\x49\x45\ \xb7\xb9\xd5\xba\x67\x8b\x24\x70\x38\x1e\x6c\xff\x00\xda\x34\xea\ \x94\x15\x72\xa3\x84\xd3\x66\x98\x03\xf5\x33\x0a\x57\x00\x6e\xff\ \x00\xf2\x34\xb9\x4e\x17\x32\x3b\x27\xd8\x57\x82\xa9\x77\x36\x78\ \x76\x6c\x2f\x32\xdf\x09\x4e\xe3\x53\x6e\x86\x06\x26\xf5\x1e\x12\ \x24\x36\x8f\xd9\x32\xeb\xcd\x85\x7a\xac\x0c\x0f\xc4\x64\x9f\xc2\ \xa0\x3c\x0e\xdf\xc6\x96\xd9\x6e\xd7\x1b\x15\xe2\x25\xe6\xd0\xe3\ \x68\x9b\x11\x65\x4d\x87\x06\x50\xb0\x41\x4a\x92\xa0\x0f\x20\x82\ \x47\xf1\x1c\x8a\x76\x15\xc2\x9d\x68\xce\x5b\x26\x32\x85\x45\x0a\ \x91\x94\xb6\x4c\x7b\xb5\x45\x77\x55\x75\x10\x46\xb9\xcf\x9a\xe3\ \xb3\xee\x4b\xf1\xb7\xbc\xa2\x94\x80\x55\x90\x94\x93\x84\xe1\x20\ \xa4\x71\xc0\xa9\x74\x3b\x65\x8e\xfd\xa8\xf5\x5e\x96\x67\x4e\x46\ \xb7\x7e\xa9\x61\xc5\xdb\xe6\x34\xfa\xd4\xea\x94\xd1\xd8\xaf\x13\ \x71\xc1\x0a\x24\x1f\x81\x9f\x5e\x6a\x0b\x7a\xd5\x66\x75\xd1\xab\ \xc5\xb3\x4b\x46\xb0\x5d\xda\x98\x26\x2a\x5b\x77\x05\xc8\x43\x8e\ \x0c\x92\x3c\x22\x94\x84\x82\xa3\x93\xc9\xf6\xf5\x34\xba\xef\xd4\ \x1b\x83\xd1\x2e\xcf\x5b\xf4\xbc\x0b\x4d\xc6\xf0\xd1\x62\x7d\xc5\ \x13\x96\xee\xe4\x2b\xef\xf8\x6d\x94\x80\xd9\x3e\xf9\x35\xd3\xa7\ \x3a\x09\xcb\x89\x25\x2b\xbf\x1b\xab\x6c\xb4\xed\x36\x42\xa5\x25\ \x7c\xcd\x3d\x7e\x68\x76\x7d\x16\x7d\x3b\xa3\x34\x75\xc1\xcd\x3d\ \x16\xef\x26\xfd\x20\x3a\xfb\xb2\x1e\x5a\x3c\x26\x42\x93\x80\xde\ \xd2\x30\xac\x29\x38\x3e\xe0\xe7\xd3\x12\xad\x45\xa7\x22\x5f\xba\ \xc7\xa8\xe4\xcd\x8e\x25\xb5\x6c\xb5\x35\x21\x31\x94\xef\x84\x97\ \x9c\xd9\xe4\x4a\x95\x91\x84\xf0\x72\x72\x07\xbf\x15\x56\x5b\xb5\ \xc4\x88\xfa\x5a\x06\x9f\xb8\x69\x78\x17\xa6\xed\x6e\x97\x6d\x92\ \x1d\x98\xb6\x4b\x07\x39\xda\xe2\x12\x0f\x88\x9c\xfa\x65\x3c\x00\ \x3e\x69\x53\xbd\x48\xbe\x2f\x58\xc9\xd5\x1f\xaa\x20\xa9\x53\x61\ \x26\x14\xeb\x7b\xaf\x15\xb5\x25\xb0\x90\x15\x85\x6d\x05\x24\x91\ \x91\xc1\xc6\x71\xcd\x68\x85\x6c\x32\x82\x8b\xb5\xb4\xd2\xdd\xdc\ \xfe\x23\x23\x5a\x86\x54\x9e\xda\x69\x6e\xee\x7f\x11\xc7\x5e\xda\ \xed\xa8\xd2\x56\x4b\xc2\x63\x5a\x6d\x97\xa7\x5d\x5b\x17\x1b\x7c\ \x09\xc9\x7d\xb4\xfd\xf2\x85\x8c\x2d\x58\x05\x28\xcf\x7f\xde\x00\ \xf2\x29\x7e\x95\x21\x1d\x0a\xd6\x8b\x57\x61\x2d\x92\x7f\x36\xaa\ \x07\x25\xeb\x2c\x95\x37\xfa\xa3\x46\x31\xa7\xb6\xe4\xad\x49\xb8\ \xae\x52\x9c\x1e\x83\xcc\x94\x80\x07\xd0\x9f\x9a\x78\x89\xa9\x64\ \xc0\xd1\xb7\x7d\x26\x8b\x52\x1f\x62\xec\xe2\x1c\x5c\xb3\x2b\x61\ \x67\x69\x4f\x1e\x1e\xc3\xbb\x3b\x7b\xee\x1d\xeb\x27\x1e\x94\x71\ \x12\x7a\x25\x95\xad\x3b\x6d\xe0\x84\x2a\x90\x55\x5c\xb9\x59\xaf\ \x2f\x04\x59\x8b\xd1\xf6\x5b\x3d\xea\xdd\xa7\xee\x96\x9b\x4f\xea\ \xd7\xad\xbe\x24\xeb\xac\x8b\x92\x5a\x90\xdc\x93\xbb\x1b\x10\x56\ \x0e\xdc\xa4\x0e\x12\x47\x9b\xbf\x07\x31\xed\x19\x67\xb6\x4e\xd2\ \xb7\x26\xac\x56\xfb\x3d\xf7\x55\xc4\x9a\xa4\x39\x12\xe1\x21\x49\ \x05\x84\x9c\x05\x36\x94\xa8\x64\x1e\xf9\xce\x33\x91\x9e\x05\x46\ \x27\x6a\xa6\xaf\x4c\x42\x46\xa8\xd1\x16\xeb\xf4\xd8\x51\xd3\x19\ \x99\xff\x00\xac\x57\x1d\x4a\x69\x27\xca\x16\x80\x95\x6e\x39\x24\ \xe4\x11\xdc\xf6\xad\x1a\x73\x53\x44\xd3\x53\x21\x4f\x67\x43\x43\ \x99\x75\x82\x56\x63\xce\x37\x57\x1a\x09\x2a\xdc\x39\x6b\x61\x07\ \x09\x56\xde\xe3\x20\x7b\xd6\x8e\x36\x15\xd4\x56\xb5\xbc\xf9\x77\ \x6f\xf3\x1c\xea\xd0\xce\xad\x6b\x7a\xee\xdf\xe6\x4a\x34\x45\xb2\ \x05\xcf\x4d\xde\x9b\xb7\xd9\x6d\x13\xf5\x9b\x13\x14\x3f\x54\x5c\ \x5f\x5b\x69\x6d\x90\x46\x42\x13\x90\x4e\x39\x19\x27\xb8\xe4\xfa\ \x1e\x77\xea\xee\xad\x9b\xa7\xa7\x4a\x86\xdc\x44\x40\xb9\x38\xf3\ \xa1\x51\xb0\x48\x88\x02\x88\x29\x01\x59\x27\x07\xca\x33\xed\x56\ \x8c\x4d\x7f\x1e\xd7\x7e\x46\xa2\xb8\xe8\xa8\x97\x6b\xfa\x25\xb9\ \x29\xb9\xe2\xe8\xe4\x74\xa5\xc5\x95\x1f\xea\x82\x54\x08\x1b\xb1\ \x8c\x8c\x81\xce\x6a\x97\xd6\xfd\x64\xfe\x91\xe9\xdd\x5f\x63\xba\ \x69\x0b\x2c\xbb\x8d\xf6\xec\x26\xa2\xf3\xb7\x0e\xc5\x4a\x4a\x7f\ \x66\x80\x41\x38\xc2\x30\x0e\xe1\x80\xb5\xe4\x1d\xd9\xa7\xd0\xa1\ \x46\xba\x8e\xda\x79\xf8\x9a\x30\xb4\x29\xd7\x71\xee\xf5\xa9\x3b\ \xfd\x02\xd9\x45\xc3\xa9\x9a\x93\x51\x4e\x02\x65\xca\xdf\x65\x71\ \xd8\x9e\x37\x9c\x85\xa9\x60\x15\x8f\x5c\xe3\xcb\xf4\x59\x1e\xb5\ \x15\xfd\x1a\xd9\x57\x53\x7a\xeb\x02\xd9\xaf\x64\x4a\xd4\x11\x26\ \x22\x63\xef\x37\x31\xe5\x2d\x25\xc2\xd2\x95\xbc\x0c\xe0\x1c\xe0\ \xf1\xec\x2a\x15\xd1\xbe\xa2\x5e\xfa\x5d\xad\x59\xd4\xf6\x46\xd8\ \x79\x61\xa5\x47\x93\x19\xf2\x76\x48\x65\x58\x25\x04\x8e\x41\xca\ \x52\x41\xf4\x20\x70\x46\x41\x9a\xe9\xae\xb1\xe8\xfd\x2d\xd4\xdb\ \x6e\xb8\xd2\xdd\x29\x4d\xa9\xe8\xff\x00\x69\x32\x63\x26\xfc\xe3\ \x89\x90\x5d\x41\x4f\x94\xa9\xbc\x34\x94\x92\x48\x01\x27\xdb\x81\ \x5d\x75\x6b\x58\xee\x64\xcb\xb2\x27\x3d\x33\xd0\x7a\x23\x5c\xf5\ \x33\x53\xc2\x63\x45\xc6\x8d\x67\xd0\x91\x24\x34\x88\x9f\x6f\x50\ \x55\xd6\x42\x5c\x52\x5b\x5c\x87\x54\x46\xdc\xf8\x6a\x27\x04\x24\ \x64\x0e\xc3\x96\xce\xb0\xf4\xfe\xc6\x34\xa6\x85\xd4\x96\x9d\x23\ \x68\x87\xaa\x66\xdc\xc4\x1b\xb6\x97\xb3\xdc\xc4\xa6\xdf\x25\x4b\ \x2d\xed\xf0\xdc\x59\x4e\xe4\xb7\xc9\x49\xe3\xc4\x19\x39\x15\x5e\ \xe8\x2e\xae\xdc\xf4\x77\x51\xaf\xfa\xaa\x2d\xa2\x24\xc8\x3a\x81\ \x72\x13\x71\xb5\x49\x70\x94\x3a\xcb\xcb\x2b\x28\xde\x06\x41\x19\ \xc6\xec\x7b\xf1\xcd\x7b\x1b\xa8\xda\x56\xc1\xac\x6c\x3a\xa3\x40\ \x74\xe9\xad\x3b\x2e\xd5\x2c\xc8\x58\x91\x79\x7a\x70\x90\x92\x0a\ \x4b\x7e\x64\xa4\x20\x60\x9e\x40\x27\x9e\xf4\x5d\x58\x32\xca\xe5\ \xdc\xe7\x4b\x6d\x97\xbe\x92\x6b\xe9\x3a\xab\xa6\xfa\x73\x46\xde\ \xf4\xed\xb4\xcf\x80\x6c\xf7\x4f\x1d\xf4\xec\x69\xd7\x36\x3e\x80\ \xea\xf1\x90\xd8\x1e\x6e\xfb\x89\x00\x14\xd6\x1d\x5c\xba\xdb\x9e\ \xfd\x18\xfa\x6d\x0e\x1e\x8c\xd3\xe8\x55\xf8\xba\xc4\x66\xf6\xb8\ \x11\x01\xd7\x32\x0b\xad\x61\x5f\x78\xa9\x44\x92\xac\xf2\x6a\x03\ \x70\xfd\x21\xa0\x93\xad\xd1\x66\xe9\xcc\x6b\x60\xd6\x96\xd9\x11\ \xee\xae\x7e\xb6\x71\xe7\x57\x21\xc4\x29\x08\x78\x15\x23\x01\x08\ \x0e\x38\x7c\x30\x91\x92\xbf\xbc\x30\x05\x30\x49\xeb\x04\x0b\xa7\ \x47\x6d\x1a\x06\xfb\xa2\x9b\x9f\x2a\xc6\xdb\xa9\xb4\xdd\x1a\xba\ \x38\xc1\x8e\xb5\x03\xb5\xc5\x34\x12\x42\xca\x72\x0e\x0a\x80\x3b\ \x47\x1d\xea\x6e\x88\xcb\x2e\x67\x40\xcb\xe8\x9f\x4f\xad\xb7\xe9\ \x1a\x02\xe5\xa6\x6c\xb0\xec\xc2\xca\x14\xde\xa9\x93\x79\x42\x27\ \x19\xe7\x1e\x6f\x04\xbb\x90\x8f\x5c\x6d\xdb\xc6\x39\x06\xb9\x87\ \xa0\xd6\x58\x17\x8e\xb5\xe9\x9b\x25\xea\x1b\x53\x20\xc8\xb8\xa5\ \x89\x0c\x2c\xe5\x0e\x27\x9c\x83\x83\xc8\xe2\xa5\x3a\xc3\xac\x7a\ \x63\x5c\x88\xf7\x2d\x75\xd2\xc8\x97\x8d\x4a\xd4\x44\xc5\x55\xce\ \x3d\xe5\xe8\x8d\xbc\x13\x9d\xaa\x5b\x28\x49\xc9\xc9\x3c\x85\x0e\ \xf8\xe0\x00\x2a\xbe\xe9\x8e\xa7\xfe\x85\xeb\xeb\x36\xab\xfb\x07\ \xdb\x8d\xb2\x4a\x64\x7d\x9b\xc5\xf0\xbc\x5c\x03\xe5\xdd\xb5\x58\ \xfa\xe0\xd5\x5b\x45\xe3\x19\x59\xdc\xea\x0b\x16\x86\xe9\x55\xc2\ \xf3\xd5\x1d\x29\x23\xa7\xf1\xc4\x6d\x18\xd0\x96\xc4\xc4\x4e\x78\ \x4a\x92\x52\x95\xad\x69\x5a\x81\xc0\x49\x28\xda\x02\x40\xc2\x4f\ \xbf\x35\x19\xbe\xf4\xf3\x49\xeb\xae\x93\x74\xbb\x56\xd9\xf4\xfc\ \x3d\x2d\x71\xd4\x9a\x89\x36\x69\x8d\x40\x5a\xcb\x5e\x1a\x9d\x7d\ \x1b\xc0\x5a\x8f\x98\x06\x32\x33\xdf\x71\x04\x9c\x0a\x86\xda\x7a\ \xf4\x6d\xda\x93\xa8\xf7\xaf\xe8\xa0\x77\xfa\x6f\x1d\x4c\x96\xbf\ \x58\xe3\xec\x39\x4a\xd3\x9c\xf8\x5f\xb4\xfb\xf9\xc6\x13\xda\x9a\ \x1f\xeb\x0c\xd1\xd1\x9d\x23\xd3\xfb\x75\xa1\x50\x65\xe9\x8b\xc0\ \xbb\xc6\xbb\x09\x7b\x8a\xdc\x0e\x3e\xb4\x8f\x0b\x67\x97\x05\xe1\ \xce\xe3\xf7\x3b\x73\xc0\xda\x05\x19\xa7\xa1\x75\xc2\xd0\x9d\x30\ \xd4\xbd\x63\xd4\xdd\x10\x8f\xa1\xa3\xdb\x1b\xb5\xdb\x37\xc1\xbe\ \x35\x25\xd5\x4c\xfb\x42\x52\xd1\x2b\x5e\x55\xb5\x49\xcb\xa7\x8c\ \x11\xe5\xed\xc8\xdb\x10\xb4\x69\xed\x0f\xa5\xbf\x46\x5b\x27\x51\ \x2f\x5a\x26\x0d\xfa\xf4\xcd\xd6\x4d\xbd\x4d\xbe\xfa\xdb\x69\xd2\ \xa7\x56\x02\x9c\xdb\xca\xf6\x25\xb2\x12\x3f\xbd\x9f\x41\x4d\x93\ \x3f\x48\xc2\x9b\x8d\xdb\x55\xda\x74\x05\xb6\xd7\xae\x2e\xf0\x04\ \x29\x77\xc6\xee\x2e\x2d\x01\x3b\x52\x9d\xed\xc7\x23\x08\x56\x10\ \x8c\x1d\xc7\xee\x8c\xe7\x9c\xc2\xa7\x75\x47\xed\x1d\x01\xb7\xf4\ \xa3\xf5\x10\x42\x61\xdc\x95\x3b\xf5\x97\xdb\x33\xbf\x2a\x70\xec\ \xf0\xb6\x71\xfd\x67\x7d\xde\x9d\xa8\xba\x0c\xb3\xe6\x5f\x9a\x2f\ \xa4\x5a\x4b\x4f\xe9\xae\x9f\xb3\x79\xd1\xd6\x5b\xdb\x1a\x8a\x21\ \x97\xa8\x2e\xd7\x1b\xc2\x63\x39\x09\x2b\x6d\x2a\x6d\x2c\x20\xba\ \x92\x42\x77\xe0\x94\x82\x4e\x3b\xf2\x31\xcb\xfd\x4b\xb2\x42\xd3\ \x7d\x41\xbf\x58\xad\xd2\xd3\x32\x0c\x39\xce\x35\x19\xf4\xac\x2b\ \xc4\x68\x1f\x21\xc8\xe0\xf9\x48\xed\x53\x96\xba\xbd\x66\xbc\x68\ \x4b\x16\x96\xea\x1f\x4f\x58\xd5\x23\x4f\xb4\x63\x5a\xe6\xb5\x75\ \x72\x0b\xad\x33\x80\x03\x6b\xda\x95\x05\x80\x12\x81\xe9\xc2\x47\ \xae\x49\x64\xb7\xf5\x0a\xd1\x07\x40\x6a\xbd\x25\x1b\x40\xd9\xc0\ \xbe\x4e\xfb\x4c\x49\x8b\x71\x4e\x3d\x6d\x6c\x10\x52\xca\x14\xa0\ \x54\xb0\x90\x30\x95\x15\x03\xe6\x51\x3b\xb3\x43\xb3\x2d\x0c\xe9\ \xea\x59\xff\x00\xff\x00\x0f\x24\xa9\x3d\x6a\xbb\x8c\x9d\x87\x4e\ \x3e\x42\x4f\xa7\xfb\x4c\x6a\xd9\xd3\x7b\x94\xcd\x51\xfa\x1d\xf5\ \x16\x2e\xa5\x95\x22\x6b\x56\x79\x6c\xc9\x80\xe4\xb7\x0b\x8a\x65\ \x64\xa0\xe1\x0a\x3c\x81\x90\x78\x1f\xdb\x57\xbd\x56\x9f\xa3\xe7\ \x54\x4f\x48\xf5\xa4\xad\x48\x9b\x18\xbe\x7d\xaa\xdc\xb8\x3e\x01\ \x99\xf6\x7d\xbb\x9c\x69\x7b\xf7\x6c\x5e\x71\xe1\xe3\x18\xfd\xee\ \xfc\x52\x9d\x5f\xd5\x98\xd3\x3a\x70\xbe\x9e\xe8\xbd\x1f\x1f\x49\ \xe9\xd9\x32\x84\xb9\xc9\x17\x05\xcc\x91\x2d\x69\xc1\x01\x4e\x28\ \x27\xca\x0a\x52\x71\x8f\xdc\x4f\x3d\xf3\x09\xe8\x0e\x2f\x3e\x9d\ \xc7\x43\xb7\xd1\x5d\x0b\xa7\xaf\x36\x6d\x13\x7f\xd2\x56\x37\xad\ \x52\xac\x85\xeb\xae\xa3\x97\x79\x43\x33\x1a\x9a\x77\x01\xe1\xb6\ \x5d\x0a\xd8\x0a\x06\x30\x82\x9f\x30\xc9\x38\x56\x6b\x8d\x3d\xa4\ \x34\x56\x9d\xfd\x1c\xef\x7a\xd2\xeb\xa5\xe0\x6a\x1b\xbd\x87\x53\ \x3b\x09\x82\xf3\xaa\x43\x32\x52\x16\xdb\x40\x39\xb1\x59\x52\x06\ \xe5\x28\x00\x79\x38\xc9\x23\x35\x11\xbc\xf5\x8b\x4f\x6a\xeb\x55\ \xa4\x75\x13\xa6\x51\xb5\x2d\xe2\xd7\x11\x30\x99\xb9\x35\x78\x7a\ \x11\x71\xa4\xf2\x90\xe2\x10\x93\xb8\xe4\x93\x90\xa1\xc9\x38\xc6\ \x6a\x69\xd3\xad\x61\xa0\xad\x5f\xa2\x3d\xe2\xd5\xa9\x22\x5b\xef\ \x2f\x2e\xff\x00\xe3\x0d\x3a\x2f\x3f\x64\x92\xea\x0a\x99\xda\xa1\ \x8c\xb9\xb5\x38\x27\x21\x3c\x84\x9e\x6a\x74\x7b\x15\xfd\xc5\xab\ \x2c\x2d\x21\xa2\xf4\xce\x9c\xfd\x26\x3a\x6f\x7f\xd2\xb6\xb4\x5a\ \x61\x6a\x4d\x3d\x22\x6a\xe0\xa1\x65\x49\x65\xcf\xb3\x92\x76\xe7\ \x90\x08\x5a\x46\x3b\x64\x1a\x80\x49\xd3\x3a\x5b\x4d\xe8\x4d\x7b\ \xd5\x9b\xe6\x9b\x8b\xa9\xae\x6e\x6a\xd9\x56\xf8\x10\xe5\xba\xb4\ \xc7\x65\x3e\x39\x0a\x5a\x92\x82\x0a\x89\xca\xbd\x7d\x13\x8c\x73\ \x51\x48\xff\x00\xa4\x25\xcc\x75\x9e\xd3\xd4\x19\x5a\x72\x33\x91\ \x2c\xf0\x17\x6f\xb7\xd9\xa3\xca\x2d\x36\xcb\x25\x0a\x48\x1e\x21\ \x42\xb2\x7c\xd9\x27\x6f\x38\x03\x8c\x53\x6d\x83\xac\xc9\x66\xd7\ \xa9\xf4\xee\xa5\xd1\xec\xea\x0d\x2f\xa8\x2e\xae\x5d\x55\x6f\x54\ \xf5\xc7\x76\x2b\xca\x5e\xef\x23\xe9\x49\xe3\x84\xe7\xcb\xce\x3d\ \x32\x72\x5d\x13\x92\x77\x2e\x28\x3d\x3c\xe9\xac\x4e\xae\x74\xd6\ \xea\xbd\x33\x1d\x3a\x77\xa8\x56\x37\x1d\xfd\x59\x21\xc5\x38\x88\ \x92\xbc\x26\x9e\x49\x49\xce\x46\x77\xa1\x00\x67\x00\x93\xd8\x76\ \xaf\x35\xb6\x80\xb2\x68\x1e\x88\x6a\x59\x17\x6b\x5b\x2e\x5f\xa6\ \xea\xc7\x6d\x56\xb7\xdc\xc9\x5b\x31\x58\x57\x99\x69\xf4\xf3\x6c\ \x52\x73\x8f\xde\x1f\x83\x3c\xde\xa3\x5f\x3a\x91\xd5\x5d\x2d\x32\ \x2b\xda\x7f\x48\x46\xd3\xa9\x69\x36\x68\xf3\x67\x96\x62\x45\x43\ \x24\x2c\x25\x6f\x2c\x72\xa5\x6c\x4a\x73\x81\x9c\x24\x62\x9e\xbf\ \x4c\x4e\xa3\xc1\xd6\xba\x86\xc5\x68\xb3\xcf\x83\x32\x3d\x9e\x19\ \x33\x1e\xb7\xaf\x74\x47\x26\xbc\x41\x7b\xc2\x57\xef\xa4\x6d\x18\ \x57\xc9\xf9\xa8\x76\xb3\x2d\x1c\xd9\x92\x66\xbf\xd1\x9f\xa7\x16\ \xad\x4b\xa5\xf5\x7e\xb0\xb8\xda\x63\x5f\xdf\xb1\xb2\x86\xed\xd6\ \xd9\x53\x04\x78\xcf\x48\x58\x27\x73\xab\x2a\x40\x09\x48\x09\xe0\ \xa8\x03\x93\xec\x2a\x7e\xee\x87\xe9\xad\xbb\xab\x3d\x36\x7e\x56\ \x9e\xb0\xb7\x1b\x54\x46\x72\x15\xea\xc8\xc4\xe4\xca\x66\x14\xdd\ \x89\x2d\xa9\x0a\x4a\xd5\xf7\x96\xa0\x9e\x0e\x38\xf5\x26\xa8\xde\ \x92\x75\x2a\x4e\x84\x8b\x7b\xb4\x4b\xb2\x44\xd4\x3a\x7e\xfd\x1c\ \x47\xb9\xdb\x24\x3a\xa6\x7c\x44\xa7\x20\x14\x38\x90\x4a\x14\x02\ \x94\x33\x83\xdc\x1e\xe0\x10\xd3\xa8\xf5\x3e\x9d\x37\xdb\x55\xd7\ \x44\x68\xe3\xa5\x1c\xb7\x3a\x1f\x1b\xae\x8e\xcc\x53\x8e\xa5\x49\ \x52\x09\x52\x82\x76\xed\x29\xec\x90\x3b\xf2\x7b\x54\x26\xac\x5a\ \x70\x9e\x76\xcb\x63\x50\xf4\xde\xcb\xa4\xba\x77\xad\xc4\xfb\x54\ \x37\x6f\x33\xb5\x88\xd3\xfa\x7d\xd7\x89\x25\x96\x92\xad\xe5\xd4\ \x8c\xf6\x28\x51\x4e\x7d\x08\x1f\x15\x68\xca\xe8\xb7\x4f\xed\xb7\ \xf9\x1a\x0a\xe3\xa6\x6c\xb0\xec\xc2\xca\x14\xde\xa8\x93\x79\x42\ \x27\x19\xe7\x1e\x6f\x04\xbb\xb8\x23\xd7\x1b\x76\xf9\x71\x92\x0d\ \x50\x5f\xa4\x27\x5c\x24\xf5\x61\xdb\x3f\xd9\xf4\xf2\x34\xeb\x16\ \xc5\xba\xf7\x86\xdc\xcf\x1c\xbc\xf2\xf6\x8f\x10\x90\xda\x30\x40\ \x40\x03\x83\xdc\xf3\x5b\xb5\x7f\x58\xb4\xce\xba\x44\x7b\x96\xbb\ \xe9\x6c\x4b\xc6\xa4\x66\x22\x63\x2a\xe7\x1e\xf2\xf4\x46\xde\x09\ \xfb\xaa\x5b\x28\x49\xc9\xc9\x3c\x85\x0e\xf8\xe0\x00\x2a\xdd\x51\ \x6d\x54\x69\x32\x5a\xe5\x8f\x43\xe9\x3f\xd1\x77\x47\xf5\x12\xe3\ \xa2\x60\xdf\x2f\x92\x67\xcc\xb6\x2c\x3d\x21\x48\x69\x6a\x53\xf2\ \x30\xea\xc2\x7e\xf9\x42\x23\xed\x48\xed\xe7\xcf\x38\x15\x28\x83\ \xd2\xad\x1f\xac\x2f\x9d\x19\xd4\x56\x9b\x04\x28\x96\x4b\xc4\x17\ \x5d\xbf\x32\xde\x43\x45\xd8\xed\x85\xa8\x2b\x9e\xc5\x61\x68\xe3\ \x1d\xaa\x8f\xbe\xf5\x44\xdd\x3a\x03\xa7\x7a\x52\x6c\x49\x65\x36\ \x6b\x8a\xe7\x7e\xb2\x13\x37\x78\xdb\x95\x21\x5b\x3c\x2d\x83\x6f\ \xfb\xa3\xbe\xe3\xf7\x7b\x73\xc5\xb3\xa2\xba\x88\xd6\x81\xfd\x16\ \xae\x96\x3b\x86\xa6\xd3\x13\xa6\xcf\x88\xb4\x58\x22\xdb\xa7\x7d\ \xa6\x74\x63\x29\x27\xc5\x0f\x20\x7f\x51\xe1\x85\x93\xcf\xef\x6e\ \x1c\xf1\x91\x58\x89\x66\x5a\xf3\x6c\x40\xe6\x95\xd2\x3d\x47\xe8\ \x85\xea\xf1\xa3\xb4\xe4\x1b\x7d\xea\x06\xb1\x4c\x46\x56\xc2\x15\ \xbc\xc3\x90\xf0\x43\x09\x23\x3c\x81\xe3\xa0\x76\xcf\xec\xc9\xa9\ \xee\xb7\xe8\xde\x80\xbb\x75\x0f\xa7\x3f\xd1\x0b\x2c\x66\xad\x08\ \xbd\xcd\xb5\xdf\x5a\x19\xda\xea\xe2\x82\xb5\x25\xce\x4e\x32\x18\ \x74\x77\xe7\x70\xed\x54\x3f\xe8\xef\xd6\x77\xba\x49\x22\xf2\x55\ \xa7\x13\xa8\x22\x5c\xc3\x05\x51\xd5\x33\xc0\xf0\xdc\x65\x4a\x52\ \x16\x0f\x86\xbc\x9f\x31\xf4\x1e\x87\x3c\x53\x9f\x4f\x7f\x48\x3b\ \xce\x93\xd0\x9a\x9f\x4e\xbf\x63\x45\xc6\x6d\xea\x54\xa9\xac\x5c\ \x15\x2c\xb6\x60\xbf\x21\xa2\x85\xad\x28\x28\x56\xee\x49\x56\x37\ \x0e\xe7\xde\x84\xe3\xcc\x24\xa7\xc8\xb4\xf4\x9d\xef\x4d\x46\xfd\ \x15\xba\xad\x7b\x89\xa6\x60\xce\xd3\xe8\xd6\x2a\x54\x2b\x5a\x9c\ \x5a\x18\x53\x5e\x24\x14\xb0\x14\x50\x42\xb0\x3c\x8a\x20\x1e\x70\ \x47\xad\x25\xbf\xf4\x43\x44\xea\x3e\xae\xf4\xd1\x16\xeb\x67\xea\ \x5b\x56\xa5\xb2\xaa\xe7\x74\x83\x19\xd5\x14\x0f\x0d\xb4\x2c\xa5\ \xb2\x4e\x46\xe2\xb4\xa4\xe3\x1c\x02\x47\x35\x49\xd8\x7a\x9e\x6d\ \x1d\x01\xd4\x3d\x28\x36\x10\xf0\xbd\x5c\x51\x3b\xf5\x8f\xdb\x36\ \x96\x76\xaa\x39\xd9\xe1\x6c\x3b\xbf\xdc\xfd\xf7\x0f\xbd\xdb\x8e\ \x64\x37\xaf\xd2\x12\xf0\xf5\xf3\x40\x5e\xec\x96\x26\x6d\xb3\x34\ \x74\x03\x08\x78\xd2\xbc\x74\x4d\x42\x9b\x43\x6a\xdc\x90\x84\x14\ \x02\x12\x78\x04\xe3\x3d\xf8\xa9\xcc\x88\x70\x92\x64\xcf\xac\x3d\ \x3e\xd2\x4a\xe9\x0e\xa3\xbc\x8d\x2d\xa7\xf4\x86\xa0\xb1\xdd\x36\ \xdb\x58\xb7\xde\x5b\x92\xb9\xd0\xb7\xa1\x19\x71\x21\xd5\xf9\xc0\ \x51\x51\xcf\x9b\xc9\xd8\x64\xd2\xae\xb6\xe8\x2d\x0d\x6c\xd6\xba\ \x63\xa7\xba\x77\x47\x43\x89\x3f\x59\xa2\x0a\xdc\xba\x97\xd7\x9b\ \x7a\x4b\xa8\x42\xbc\x16\xf3\xb4\x64\x21\x65\x44\xe4\x9d\xff\x00\ \x02\xa9\xae\xa3\x6b\x4d\x0b\xaa\xa3\xce\x93\x68\xe9\x7b\x76\x0b\ \xd4\xe7\xfc\x77\xa7\xb7\x7b\x75\xf4\x25\x65\x5b\x97\xb1\x92\x84\ \xa5\x21\x47\x3c\x12\x40\x07\x8e\xc2\x9c\x7a\xc1\xd6\x39\xda\xef\ \x58\xe9\xad\x51\x6f\xb3\x7e\xa1\x9b\xa7\xa3\x32\xd4\x62\x25\xfd\ \xa3\x2e\x34\xe1\x71\x2e\x7d\xc4\xe3\x9c\x71\x83\xdb\xbd\x0d\xa0\ \x50\x95\x91\x7b\x6b\x4e\x92\x68\x36\xa1\xeb\x5d\x2c\xe6\x93\xb1\ \x69\xf8\xd6\x7b\x6a\x5d\xd3\xf7\xaf\xd7\x68\x5c\xd9\x72\x12\xd6\ \xe5\x07\x5a\x2e\x95\x79\x95\xc6\x14\x90\x31\xdb\xd3\x1c\x69\xb4\ \x0c\x1c\x0e\x7f\x8d\x5b\xbd\x44\xea\xa6\x91\xd7\x6b\x9d\x79\xbc\ \xf4\xa2\x30\xd5\x93\x62\xf8\x4e\xdd\x63\xde\x9f\x6d\x90\xe8\x6f\ \x62\x5e\xfb\x38\x4e\x37\x27\xca\x70\x56\x41\xda\x33\x9e\x73\x1c\ \xd7\x5a\xee\x0e\xa5\xd0\xda\x57\x4d\xb1\xa3\xed\x56\x77\xac\x2c\ \x29\x97\x6e\x11\x87\xed\x66\x92\x00\xdc\xae\x06\x32\x46\xe3\x92\ \xac\xa8\x92\x31\x9c\x54\x49\xae\x45\xa1\x19\x25\xaa\x20\xb9\x52\ \x7e\xe6\x73\x8f\x53\x58\xad\x41\x5c\xe3\x3f\x5a\xd8\x1b\xe3\xd3\ \x93\x41\x4a\x02\xbd\xaa\xb7\x43\x1c\x59\xe5\xae\x03\xb7\x3b\xc4\ \x2b\x6b\x40\x97\x65\x48\x6d\x84\x00\x39\x2a\x5a\x82\x47\xf1\x34\ \x55\xf5\xfa\x14\x74\xda\x46\xae\xea\x9c\x7d\x4d\x29\x8f\xff\x00\ \x45\xd3\xcb\x12\x16\xb2\x38\x72\x40\x1f\xb2\x40\xe3\x9c\x1f\x39\ \xfa\x0f\x7a\x29\xb1\xd8\xcb\x53\x47\x62\x4f\xa7\x54\x55\x66\x8e\ \x91\xd8\x6e\xff\x00\xf2\x34\xe4\x3b\x0a\xed\x1a\x2b\x87\x2e\x83\ \xbb\xbe\x7f\x2f\xc9\xc3\xfd\x27\xfe\xfc\xbf\x27\x17\x2b\x9a\xf1\ \x27\x1c\x57\x69\x51\x55\xfd\x0b\xff\x00\x4f\x2f\xc9\x1f\xa4\x7f\ \xdf\x97\xe4\xe2\xd3\xea\x3d\x28\x90\x71\x08\x8f\x73\x5d\xa5\x45\ \x1f\xa1\x7f\xe9\xe5\xf9\x0f\xd2\x7f\xef\xcb\xf2\x70\xfa\x4e\x07\ \x35\xb1\xa0\x54\xad\xc7\xb0\xae\xdc\xa2\xaf\xfa\x2f\xfd\xf9\x7e\ \x43\xf4\x8f\xfb\xf2\xfc\x9c\x5c\xca\xb6\xf0\x06\x4d\x6d\x71\x59\ \x50\x1e\xb5\xd9\x94\x55\x1f\x40\xdd\xdf\x89\xe5\xf9\x27\xf4\x9f\ \xfb\xf2\xfc\x9c\x64\xd9\xda\xb3\x5a\x26\x2f\x83\x9e\x31\x5d\xa9\ \x45\x0b\xa0\xac\xef\xc4\xf2\xfc\x87\xe9\x3f\xf7\xe5\xf9\x3e\x77\ \x6b\xa9\xdf\x63\xb6\xca\x92\x14\x01\x6d\xb3\x8f\xa9\xe0\x7f\x3a\ \xa1\x11\x95\x3a\xa5\x7a\xe7\xd6\xbe\xc6\x51\x5d\x4c\x2e\x11\x61\ \xe2\xd5\xef\x73\xa1\x84\xa0\xb0\xea\xd7\xb9\xf1\xec\x82\x71\x80\ \x73\xf4\xaf\x12\x15\xef\xc5\x7d\x85\xa2\xb4\x64\x37\xf1\xb5\xbd\ \x8f\x8f\x67\x8c\x1c\x63\x3c\xf3\x5e\x82\x08\xef\xe6\xaf\xb0\x74\ \x51\x90\x38\xfd\xc7\xc7\xac\x71\x40\x49\xc5\x7d\x85\xa2\xa7\x20\ \x71\xbb\x8f\x8f\x84\x64\x70\x70\x6b\xd0\x09\x1c\x02\x7d\x39\x3e\ \x95\xf6\x0a\x8a\x8e\x19\x3c\x7e\xe3\xe3\xee\x14\x08\x0a\x38\x03\ \xd7\x15\xe8\x27\x80\x08\xaf\xb0\x34\x51\xc3\x27\xda\x3b\x8f\x90\ \x18\x24\x7d\xd0\x4d\x79\xb4\xfb\x1f\x73\xe9\x5f\x60\x28\xa8\xe1\ \xf7\x83\xc4\x27\xc8\xf8\xff\x00\xb4\x15\x77\xfc\xeb\xcc\x6d\x00\ \x03\x8c\x73\x8a\xfb\x03\x45\x4f\x0f\xbc\x3d\xa3\xb8\xf8\xfc\x8c\ \x9c\x11\xc1\xf9\x15\xe8\xc2\x95\xc2\x52\x33\x5f\x60\x28\xa3\x86\ \x0b\x11\x6e\x47\xc8\x15\x0c\x63\x90\x4f\xf6\xab\xc2\x93\xff\x00\ \x2b\x8e\xfe\xb5\xf5\xfe\x8a\x8e\x1f\x79\x2f\x13\x7e\x47\xc8\x21\ \xbb\x1b\x4f\x6f\x7c\xf6\xa3\x82\x0a\x47\xf0\x3d\xeb\xeb\xed\x14\ \x70\xbb\xc3\xda\x7b\x8f\x90\x24\x01\x94\x9c\xfb\xf3\xef\x5e\xe5\ \x58\x20\x13\x8a\xfa\xfb\x45\x1c\x3e\xf0\xf6\x9e\xe3\xe4\x0a\x54\ \x40\xe1\x47\xbf\x3c\x56\x1b\x95\x93\xc7\x7f\x5e\x6b\xec\x0d\x14\ \x70\xc3\xda\x7b\x8f\x8f\xe0\x10\xac\xf6\x3d\xfb\x77\xaf\x54\xae\ \x30\x09\xcf\xc8\xaf\xaf\xf4\x51\xc3\xef\x0f\x69\xee\x3e\x3f\x61\ \x4a\xf5\xc7\xcd\x03\x68\xce\x72\x4e\x6b\xec\x0d\x15\x3c\x3e\xf2\ \x3d\xa3\xb8\xf9\x00\x79\x1d\xf1\x9e\xc6\xb1\x52\x94\x7d\x41\x15\ \xf6\x06\x8a\x38\x60\xf1\x17\xe4\x7c\x7d\xff\x00\xaa\x6b\xd0\x94\ \x93\x9f\x7e\x3d\xeb\xec\x0d\x14\x70\xfb\xc8\xf6\x8e\xe3\xe4\x07\ \x38\xe0\x8f\xf2\xac\x52\x3c\xb9\x38\xc5\x7d\x81\xa2\x8e\x19\x2f\ \x11\xdc\x7c\x7f\x1c\x64\x0c\x8c\x77\x19\xc5\x62\xa7\x01\xc2\x73\ \xc7\xd2\xbe\xc1\x51\x47\x0c\x87\x88\x7d\x87\xc8\x5b\x7c\x1b\x95\ \xcd\xf0\xc5\xb2\x0c\xb9\xce\x13\xe5\x4c\x76\x14\xe1\x27\xe8\x33\ \x57\x8f\x48\x7f\x45\xcd\x7b\xab\xe6\x33\x2f\x53\x46\x77\x4b\xd9\ \xb2\x0a\xd7\x24\x62\x4b\x89\xe3\x84\x35\xdc\x64\x1e\xea\xc7\xd0\ \xd7\xd0\x9a\x2a\x54\x12\x2b\x2a\xcd\xa1\x8b\x41\xe9\x2b\x0e\x88\ \xd2\xf1\x34\xe6\x9b\x82\x98\x76\xf8\xc3\xca\x91\xca\x96\xa3\xdd\ \x6b\x3f\xbc\xa3\xea\x68\xa7\xda\x2a\xe2\x42\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x02\x8a\ \x28\xa0\x02\x8a\x28\xa0\x02\x8a\x28\xa0\x0f\xff\xd9\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0b\ \x08\x01\x81\xe7\ \x00\x65\ \x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\x00\x2e\x00\x6a\x00\x70\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/README0000644000076500000240000000154412536324427020472 0ustar philstaff00000000000000Item views are widgets that typically display data sets. PyQt's model/view framework lets you handle large data sets by separating the underlying data from the way it is represented to the user, and provides support for customized rendering through the use of delegates. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/itemviews/simpledommodel.py0000755000076500000240000001570412536324427023204 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui, QtXml class DomItem(object): def __init__(self, node, row, parent=None): self.domNode = node # Record the item's location within its parent. self.rowNumber = row self.parentItem = parent self.childItems = {} def node(self): return self.domNode def parent(self): return self.parentItem def child(self, i): if i in self.childItems: return self.childItems[i] if i >= 0 and i < self.domNode.childNodes().count(): childNode = self.domNode.childNodes().item(i) childItem = DomItem(childNode, i, self) self.childItems[i] = childItem return childItem return None def row(self): return self.rowNumber class DomModel(QtCore.QAbstractItemModel): def __init__(self, document, parent=None): super(DomModel, self).__init__(parent) self.domDocument = document self.rootItem = DomItem(self.domDocument, 0) def columnCount(self, parent): return 3 def data(self, index, role): if not index.isValid(): return None if role != QtCore.Qt.DisplayRole: return None item = index.internalPointer() node = item.node() attributes = [] attributeMap = node.attributes() if index.column() == 0: return node.nodeName() elif index.column() == 1: for i in range(0, attributeMap.count()): attribute = attributeMap.item(i) attributes.append(attribute.nodeName() + '="' + attribute.nodeValue() + '"') return " ".join(attributes) if index.column() == 2: value = node.nodeValue() if value is None: return '' return ' '.join(node.nodeValue().split('\n')) return None def flags(self, index): if not index.isValid(): return QtCore.Qt.NoItemFlags return QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable def headerData(self, section, orientation, role): if orientation == QtCore.Qt.Horizontal and role == QtCore.Qt.DisplayRole: if section == 0: return "Name" if section == 1: return "Attributes" if section == 2: return "Value" return None def index(self, row, column, parent): if not self.hasIndex(row, column, parent): return QtCore.QModelIndex() if not parent.isValid(): parentItem = self.rootItem else: parentItem = parent.internalPointer() childItem = parentItem.child(row) if childItem: return self.createIndex(row, column, childItem) else: return QtCore.QModelIndex() def parent(self, child): if not child.isValid(): return QtCore.QModelIndex() childItem = child.internalPointer() parentItem = childItem.parent() if not parentItem or parentItem == self.rootItem: return QtCore.QModelIndex() return self.createIndex(parentItem.row(), 0, parentItem) def rowCount(self, parent): if parent.column() > 0: return 0 if not parent.isValid(): parentItem = self.rootItem else: parentItem = parent.internalPointer() return parentItem.node().childNodes().count() class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction("&Open...", self.openFile, "Ctrl+O") self.fileMenu.addAction("E&xit", self.close, "Ctrl+Q") self.xmlPath = "" self.model = DomModel(QtXml.QDomDocument(), self) self.view = QtGui.QTreeView(self) self.view.setModel(self.model) self.setCentralWidget(self.view) self.setWindowTitle("Simple DOM Model") def openFile(self): filePath = QtGui.QFileDialog.getOpenFileName(self, "Open File", self.xmlPath, "XML files (*.xml);;HTML files (*.html);;" "SVG files (*.svg);;User Interface files (*.ui)") if filePath: f = QtCore.QFile(filePath) if f.open(QtCore.QIODevice.ReadOnly): document = QtXml.QDomDocument() if document.setContent(f): newModel = DomModel(document, self) self.view.setModel(newModel) self.model = newModel self.xmlPath = filePath f.close() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.resize(640, 480) window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/simpletreemodel/0000755000076500000240000000000012536324427023000 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/itemviews/simpletreemodel/default.txt0000644000076500000240000000367112536324427025174 0ustar philstaff00000000000000Getting Started How to familiarize yourself with Qt Designer Launching Designer Running the Qt Designer application The User Interface How to interact with Qt Designer Designing a Component Creating a GUI for your application Creating a Dialog How to create a dialog Composing the Dialog Putting widgets into the dialog example Creating a Layout Arranging widgets on a form Signal and Slot Connections Making widget communicate with each other Using a Component in Your Application Generating code from forms The Direct Approach Using a form without any adjustments The Single Inheritance Approach Subclassing a form's base class The Multiple Inheritance Approach Subclassing the form itself Automatic Connections Connecting widgets using a naming scheme A Dialog Without Auto-Connect How to connect widgets without a naming scheme A Dialog With Auto-Connect Using automatic connections Form Editing Mode How to edit a form in Qt Designer Managing Forms Loading and saving forms Editing a Form Basic editing techniques The Property Editor Changing widget properties The Object Inspector Examining the hierarchy of objects on a form Layouts Objects that arrange widgets on a form Applying and Breaking Layouts Managing widgets in layouts Horizontal and Vertical Layouts Standard row and column layouts The Grid Layout Arranging widgets in a matrix Previewing Forms Checking that the design works Using Containers How to group widgets together General Features Common container features Frames QFrame Group Boxes QGroupBox Stacked Widgets QStackedWidget Tab Widgets QTabWidget Toolbox Widgets QToolBox Connection Editing Mode Connecting widgets together with signals and slots Connecting Objects Making connections in Qt Designer Editing Connections Changing existing connections PyQt-x11-gpl-4.11.4/examples/itemviews/simpletreemodel/simpletreemodel.py0000755000076500000240000001501412536324427026550 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui try: import simpletreemodel_rc3 except ImportError: import simpletreemodel_rc2 class TreeItem(object): def __init__(self, data, parent=None): self.parentItem = parent self.itemData = data self.childItems = [] def appendChild(self, item): self.childItems.append(item) def child(self, row): return self.childItems[row] def childCount(self): return len(self.childItems) def columnCount(self): return len(self.itemData) def data(self, column): try: return self.itemData[column] except IndexError: return None def parent(self): return self.parentItem def row(self): if self.parentItem: return self.parentItem.childItems.index(self) return 0 class TreeModel(QtCore.QAbstractItemModel): def __init__(self, data, parent=None): super(TreeModel, self).__init__(parent) self.rootItem = TreeItem(("Title", "Summary")) self.setupModelData(data.split('\n'), self.rootItem) def columnCount(self, parent): if parent.isValid(): return parent.internalPointer().columnCount() else: return self.rootItem.columnCount() def data(self, index, role): if not index.isValid(): return None if role != QtCore.Qt.DisplayRole: return None item = index.internalPointer() return item.data(index.column()) def flags(self, index): if not index.isValid(): return QtCore.Qt.NoItemFlags return QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable def headerData(self, section, orientation, role): if orientation == QtCore.Qt.Horizontal and role == QtCore.Qt.DisplayRole: return self.rootItem.data(section) return None def index(self, row, column, parent): if not self.hasIndex(row, column, parent): return QtCore.QModelIndex() if not parent.isValid(): parentItem = self.rootItem else: parentItem = parent.internalPointer() childItem = parentItem.child(row) if childItem: return self.createIndex(row, column, childItem) else: return QtCore.QModelIndex() def parent(self, index): if not index.isValid(): return QtCore.QModelIndex() childItem = index.internalPointer() parentItem = childItem.parent() if parentItem == self.rootItem: return QtCore.QModelIndex() return self.createIndex(parentItem.row(), 0, parentItem) def rowCount(self, parent): if parent.column() > 0: return 0 if not parent.isValid(): parentItem = self.rootItem else: parentItem = parent.internalPointer() return parentItem.childCount() def setupModelData(self, lines, parent): parents = [parent] indentations = [0] number = 0 while number < len(lines): position = 0 while position < len(lines[number]): if lines[number][position] != ' ': break position += 1 lineData = lines[number][position:].trimmed() if lineData: # Read the column data from the rest of the line. columnData = [s for s in lineData.split('\t') if s] if position > indentations[-1]: # The last child of the current parent is now the new # parent unless the current parent has no children. if parents[-1].childCount() > 0: parents.append(parents[-1].child(parents[-1].childCount() - 1)) indentations.append(position) else: while position < indentations[-1] and len(parents) > 0: parents.pop() indentations.pop() # Append a new item to the current parent's list of children. parents[-1].appendChild(TreeItem(columnData, parents[-1])) number += 1 if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) f = QtCore.QFile(':/default.txt') f.open(QtCore.QIODevice.ReadOnly) model = TreeModel(f.readAll()) f.close() view = QtGui.QTreeView() view.setModel(model) view.setWindowTitle("Simple Tree Model") view.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/simpletreemodel/simpletreemodel.qrc0000644000076500000240000000013612536324427026701 0ustar philstaff00000000000000 default.txt PyQt-x11-gpl-4.11.4/examples/itemviews/simpletreemodel/simpletreemodel_rc2.py0000644000076500000240000002141312536324427027313 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:43:15 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x07\xb9\ \x47\ \x65\x74\x74\x69\x6e\x67\x20\x53\x74\x61\x72\x74\x65\x64\x09\x09\ \x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x66\x61\x6d\x69\x6c\x69\x61\ \x72\x69\x7a\x65\x20\x79\x6f\x75\x72\x73\x65\x6c\x66\x20\x77\x69\ \x74\x68\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x0a\x20\ \x20\x20\x20\x4c\x61\x75\x6e\x63\x68\x69\x6e\x67\x20\x44\x65\x73\ \x69\x67\x6e\x65\x72\x09\x09\x09\x52\x75\x6e\x6e\x69\x6e\x67\x20\ \x74\x68\x65\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x20\ \x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\ \x54\x68\x65\x20\x55\x73\x65\x72\x20\x49\x6e\x74\x65\x72\x66\x61\ \x63\x65\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x69\x6e\x74\x65\ \x72\x61\x63\x74\x20\x77\x69\x74\x68\x20\x51\x74\x20\x44\x65\x73\ \x69\x67\x6e\x65\x72\x0a\x0a\x44\x65\x73\x69\x67\x6e\x69\x6e\x67\ \x20\x61\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x09\x09\x09\x43\ \x72\x65\x61\x74\x69\x6e\x67\x20\x61\x20\x47\x55\x49\x20\x66\x6f\ \x72\x20\x79\x6f\x75\x72\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\ \x6f\x6e\x0a\x20\x20\x20\x20\x43\x72\x65\x61\x74\x69\x6e\x67\x20\ \x61\x20\x44\x69\x61\x6c\x6f\x67\x09\x09\x09\x48\x6f\x77\x20\x74\ \x6f\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x64\x69\x61\x6c\x6f\ \x67\x0a\x20\x20\x20\x20\x43\x6f\x6d\x70\x6f\x73\x69\x6e\x67\x20\ \x74\x68\x65\x20\x44\x69\x61\x6c\x6f\x67\x09\x09\x50\x75\x74\x74\ \x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\x74\x6f\ \x20\x74\x68\x65\x20\x64\x69\x61\x6c\x6f\x67\x20\x65\x78\x61\x6d\ \x70\x6c\x65\x0a\x20\x20\x20\x20\x43\x72\x65\x61\x74\x69\x6e\x67\ \x20\x61\x20\x4c\x61\x79\x6f\x75\x74\x09\x09\x09\x41\x72\x72\x61\ \x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x6f\x6e\ \x20\x61\x20\x66\x6f\x72\x6d\x0a\x20\x20\x20\x20\x53\x69\x67\x6e\ \x61\x6c\x20\x61\x6e\x64\x20\x53\x6c\x6f\x74\x20\x43\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x09\x09\x4d\x61\x6b\x69\x6e\x67\x20\ \x77\x69\x64\x67\x65\x74\x20\x63\x6f\x6d\x6d\x75\x6e\x69\x63\x61\ \x74\x65\x20\x77\x69\x74\x68\x20\x65\x61\x63\x68\x20\x6f\x74\x68\ \x65\x72\x0a\x0a\x55\x73\x69\x6e\x67\x20\x61\x20\x43\x6f\x6d\x70\ \x6f\x6e\x65\x6e\x74\x20\x69\x6e\x20\x59\x6f\x75\x72\x20\x41\x70\ \x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x09\x47\x65\x6e\x65\x72\x61\ \x74\x69\x6e\x67\x20\x63\x6f\x64\x65\x20\x66\x72\x6f\x6d\x20\x66\ \x6f\x72\x6d\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x44\x69\x72\ \x65\x63\x74\x20\x41\x70\x70\x72\x6f\x61\x63\x68\x09\x09\x09\x55\ \x73\x69\x6e\x67\x20\x61\x20\x66\x6f\x72\x6d\x20\x77\x69\x74\x68\ \x6f\x75\x74\x20\x61\x6e\x79\x20\x61\x64\x6a\x75\x73\x74\x6d\x65\ \x6e\x74\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x53\x69\x6e\x67\ \x6c\x65\x20\x49\x6e\x68\x65\x72\x69\x74\x61\x6e\x63\x65\x20\x41\ \x70\x70\x72\x6f\x61\x63\x68\x09\x53\x75\x62\x63\x6c\x61\x73\x73\ \x69\x6e\x67\x20\x61\x20\x66\x6f\x72\x6d\x27\x73\x20\x62\x61\x73\ \x65\x20\x63\x6c\x61\x73\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\ \x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x49\x6e\x68\x65\x72\x69\x74\ \x61\x6e\x63\x65\x20\x41\x70\x70\x72\x6f\x61\x63\x68\x09\x53\x75\ \x62\x63\x6c\x61\x73\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x66\x6f\ \x72\x6d\x20\x69\x74\x73\x65\x6c\x66\x0a\x20\x20\x20\x20\x41\x75\ \x74\x6f\x6d\x61\x74\x69\x63\x20\x43\x6f\x6e\x6e\x65\x63\x74\x69\ \x6f\x6e\x73\x09\x09\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6e\x67\x20\ \x77\x69\x64\x67\x65\x74\x73\x20\x75\x73\x69\x6e\x67\x20\x61\x20\ \x6e\x61\x6d\x69\x6e\x67\x20\x73\x63\x68\x65\x6d\x65\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x41\x20\x44\x69\x61\x6c\x6f\x67\x20\x57\ \x69\x74\x68\x6f\x75\x74\x20\x41\x75\x74\x6f\x2d\x43\x6f\x6e\x6e\ \x65\x63\x74\x09\x48\x6f\x77\x20\x74\x6f\x20\x63\x6f\x6e\x6e\x65\ \x63\x74\x20\x77\x69\x64\x67\x65\x74\x73\x20\x77\x69\x74\x68\x6f\ \x75\x74\x20\x61\x20\x6e\x61\x6d\x69\x6e\x67\x20\x73\x63\x68\x65\ \x6d\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\x20\x44\x69\x61\ \x6c\x6f\x67\x20\x57\x69\x74\x68\x20\x41\x75\x74\x6f\x2d\x43\x6f\ \x6e\x6e\x65\x63\x74\x09\x55\x73\x69\x6e\x67\x20\x61\x75\x74\x6f\ \x6d\x61\x74\x69\x63\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\ \x73\x0a\x0a\x46\x6f\x72\x6d\x20\x45\x64\x69\x74\x69\x6e\x67\x20\ \x4d\x6f\x64\x65\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x65\x64\ \x69\x74\x20\x61\x20\x66\x6f\x72\x6d\x20\x69\x6e\x20\x51\x74\x20\ \x44\x65\x73\x69\x67\x6e\x65\x72\x0a\x20\x20\x20\x20\x4d\x61\x6e\ \x61\x67\x69\x6e\x67\x20\x46\x6f\x72\x6d\x73\x09\x09\x09\x4c\x6f\ \x61\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x73\x61\x76\x69\x6e\x67\ \x20\x66\x6f\x72\x6d\x73\x0a\x20\x20\x20\x20\x45\x64\x69\x74\x69\ \x6e\x67\x20\x61\x20\x46\x6f\x72\x6d\x09\x09\x09\x42\x61\x73\x69\ \x63\x20\x65\x64\x69\x74\x69\x6e\x67\x20\x74\x65\x63\x68\x6e\x69\ \x71\x75\x65\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x50\x72\x6f\ \x70\x65\x72\x74\x79\x20\x45\x64\x69\x74\x6f\x72\x09\x09\x09\x43\ \x68\x61\x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x20\x70\ \x72\x6f\x70\x65\x72\x74\x69\x65\x73\x0a\x20\x20\x20\x20\x54\x68\ \x65\x20\x4f\x62\x6a\x65\x63\x74\x20\x49\x6e\x73\x70\x65\x63\x74\ \x6f\x72\x09\x09\x45\x78\x61\x6d\x69\x6e\x69\x6e\x67\x20\x74\x68\ \x65\x20\x68\x69\x65\x72\x61\x72\x63\x68\x79\x20\x6f\x66\x20\x6f\ \x62\x6a\x65\x63\x74\x73\x20\x6f\x6e\x20\x61\x20\x66\x6f\x72\x6d\ \x0a\x20\x20\x20\x20\x4c\x61\x79\x6f\x75\x74\x73\x09\x09\x09\x09\ \x4f\x62\x6a\x65\x63\x74\x73\x20\x74\x68\x61\x74\x20\x61\x72\x72\ \x61\x6e\x67\x65\x20\x77\x69\x64\x67\x65\x74\x73\x20\x6f\x6e\x20\ \x61\x20\x66\x6f\x72\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\ \x70\x70\x6c\x79\x69\x6e\x67\x20\x61\x6e\x64\x20\x42\x72\x65\x61\ \x6b\x69\x6e\x67\x20\x4c\x61\x79\x6f\x75\x74\x73\x09\x4d\x61\x6e\ \x61\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\ \x20\x6c\x61\x79\x6f\x75\x74\x73\x20\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x61\x6e\x64\ \x20\x56\x65\x72\x74\x69\x63\x61\x6c\x20\x4c\x61\x79\x6f\x75\x74\ \x73\x09\x53\x74\x61\x6e\x64\x61\x72\x64\x20\x72\x6f\x77\x20\x61\ \x6e\x64\x20\x63\x6f\x6c\x75\x6d\x6e\x20\x6c\x61\x79\x6f\x75\x74\ \x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x47\x72\ \x69\x64\x20\x4c\x61\x79\x6f\x75\x74\x09\x09\x09\x41\x72\x72\x61\ \x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\ \x20\x61\x20\x6d\x61\x74\x72\x69\x78\x0a\x20\x20\x20\x20\x50\x72\ \x65\x76\x69\x65\x77\x69\x6e\x67\x20\x46\x6f\x72\x6d\x73\x09\x09\ \x09\x43\x68\x65\x63\x6b\x69\x6e\x67\x20\x74\x68\x61\x74\x20\x74\ \x68\x65\x20\x64\x65\x73\x69\x67\x6e\x20\x77\x6f\x72\x6b\x73\x0a\ \x0a\x55\x73\x69\x6e\x67\x20\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\ \x73\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x67\x72\x6f\x75\x70\ \x20\x77\x69\x64\x67\x65\x74\x73\x20\x74\x6f\x67\x65\x74\x68\x65\ \x72\x0a\x20\x20\x20\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x46\x65\ \x61\x74\x75\x72\x65\x73\x09\x09\x09\x43\x6f\x6d\x6d\x6f\x6e\x20\ \x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x66\x65\x61\x74\x75\x72\ \x65\x73\x0a\x20\x20\x20\x20\x46\x72\x61\x6d\x65\x73\x09\x09\x09\ \x09\x51\x46\x72\x61\x6d\x65\x0a\x20\x20\x20\x20\x47\x72\x6f\x75\ \x70\x20\x42\x6f\x78\x65\x73\x09\x09\x09\x09\x51\x47\x72\x6f\x75\ \x70\x42\x6f\x78\x0a\x20\x20\x20\x20\x53\x74\x61\x63\x6b\x65\x64\ \x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x51\x53\x74\x61\x63\ \x6b\x65\x64\x57\x69\x64\x67\x65\x74\x0a\x20\x20\x20\x20\x54\x61\ \x62\x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x09\x51\x54\x61\ \x62\x57\x69\x64\x67\x65\x74\x0a\x20\x20\x20\x20\x54\x6f\x6f\x6c\ \x62\x6f\x78\x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x51\x54\ \x6f\x6f\x6c\x42\x6f\x78\x0a\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\ \x6f\x6e\x20\x45\x64\x69\x74\x69\x6e\x67\x20\x4d\x6f\x64\x65\x09\ \x09\x09\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6e\x67\x20\x77\x69\x64\ \x67\x65\x74\x73\x20\x74\x6f\x67\x65\x74\x68\x65\x72\x20\x77\x69\ \x74\x68\x20\x73\x69\x67\x6e\x61\x6c\x73\x20\x61\x6e\x64\x20\x73\ \x6c\x6f\x74\x73\x0a\x20\x20\x20\x20\x43\x6f\x6e\x6e\x65\x63\x74\ \x69\x6e\x67\x20\x4f\x62\x6a\x65\x63\x74\x73\x09\x09\x09\x4d\x61\ \x6b\x69\x6e\x67\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x73\ \x20\x69\x6e\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x0a\ \x20\x20\x20\x20\x45\x64\x69\x74\x69\x6e\x67\x20\x43\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x09\x09\x09\x43\x68\x61\x6e\x67\x69\ \x6e\x67\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x63\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x0a\ " qt_resource_name = "\ \x00\x0b\ \x0c\xe2\x22\xf4\ \x00\x64\ \x00\x65\x00\x66\x00\x61\x00\x75\x00\x6c\x00\x74\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/simpletreemodel/simpletreemodel_rc3.py0000644000076500000240000002141612536324427027317 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:43:15 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x07\xb9\ \x47\ \x65\x74\x74\x69\x6e\x67\x20\x53\x74\x61\x72\x74\x65\x64\x09\x09\ \x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x66\x61\x6d\x69\x6c\x69\x61\ \x72\x69\x7a\x65\x20\x79\x6f\x75\x72\x73\x65\x6c\x66\x20\x77\x69\ \x74\x68\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x0a\x20\ \x20\x20\x20\x4c\x61\x75\x6e\x63\x68\x69\x6e\x67\x20\x44\x65\x73\ \x69\x67\x6e\x65\x72\x09\x09\x09\x52\x75\x6e\x6e\x69\x6e\x67\x20\ \x74\x68\x65\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x20\ \x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\ \x54\x68\x65\x20\x55\x73\x65\x72\x20\x49\x6e\x74\x65\x72\x66\x61\ \x63\x65\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x69\x6e\x74\x65\ \x72\x61\x63\x74\x20\x77\x69\x74\x68\x20\x51\x74\x20\x44\x65\x73\ \x69\x67\x6e\x65\x72\x0a\x0a\x44\x65\x73\x69\x67\x6e\x69\x6e\x67\ \x20\x61\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x09\x09\x09\x43\ \x72\x65\x61\x74\x69\x6e\x67\x20\x61\x20\x47\x55\x49\x20\x66\x6f\ \x72\x20\x79\x6f\x75\x72\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\ \x6f\x6e\x0a\x20\x20\x20\x20\x43\x72\x65\x61\x74\x69\x6e\x67\x20\ \x61\x20\x44\x69\x61\x6c\x6f\x67\x09\x09\x09\x48\x6f\x77\x20\x74\ \x6f\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x64\x69\x61\x6c\x6f\ \x67\x0a\x20\x20\x20\x20\x43\x6f\x6d\x70\x6f\x73\x69\x6e\x67\x20\ \x74\x68\x65\x20\x44\x69\x61\x6c\x6f\x67\x09\x09\x50\x75\x74\x74\ \x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\x74\x6f\ \x20\x74\x68\x65\x20\x64\x69\x61\x6c\x6f\x67\x20\x65\x78\x61\x6d\ \x70\x6c\x65\x0a\x20\x20\x20\x20\x43\x72\x65\x61\x74\x69\x6e\x67\ \x20\x61\x20\x4c\x61\x79\x6f\x75\x74\x09\x09\x09\x41\x72\x72\x61\ \x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x6f\x6e\ \x20\x61\x20\x66\x6f\x72\x6d\x0a\x20\x20\x20\x20\x53\x69\x67\x6e\ \x61\x6c\x20\x61\x6e\x64\x20\x53\x6c\x6f\x74\x20\x43\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x09\x09\x4d\x61\x6b\x69\x6e\x67\x20\ \x77\x69\x64\x67\x65\x74\x20\x63\x6f\x6d\x6d\x75\x6e\x69\x63\x61\ \x74\x65\x20\x77\x69\x74\x68\x20\x65\x61\x63\x68\x20\x6f\x74\x68\ \x65\x72\x0a\x0a\x55\x73\x69\x6e\x67\x20\x61\x20\x43\x6f\x6d\x70\ \x6f\x6e\x65\x6e\x74\x20\x69\x6e\x20\x59\x6f\x75\x72\x20\x41\x70\ \x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x09\x47\x65\x6e\x65\x72\x61\ \x74\x69\x6e\x67\x20\x63\x6f\x64\x65\x20\x66\x72\x6f\x6d\x20\x66\ \x6f\x72\x6d\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x44\x69\x72\ \x65\x63\x74\x20\x41\x70\x70\x72\x6f\x61\x63\x68\x09\x09\x09\x55\ \x73\x69\x6e\x67\x20\x61\x20\x66\x6f\x72\x6d\x20\x77\x69\x74\x68\ \x6f\x75\x74\x20\x61\x6e\x79\x20\x61\x64\x6a\x75\x73\x74\x6d\x65\ \x6e\x74\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x53\x69\x6e\x67\ \x6c\x65\x20\x49\x6e\x68\x65\x72\x69\x74\x61\x6e\x63\x65\x20\x41\ \x70\x70\x72\x6f\x61\x63\x68\x09\x53\x75\x62\x63\x6c\x61\x73\x73\ \x69\x6e\x67\x20\x61\x20\x66\x6f\x72\x6d\x27\x73\x20\x62\x61\x73\ \x65\x20\x63\x6c\x61\x73\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\ \x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x49\x6e\x68\x65\x72\x69\x74\ \x61\x6e\x63\x65\x20\x41\x70\x70\x72\x6f\x61\x63\x68\x09\x53\x75\ \x62\x63\x6c\x61\x73\x73\x69\x6e\x67\x20\x74\x68\x65\x20\x66\x6f\ \x72\x6d\x20\x69\x74\x73\x65\x6c\x66\x0a\x20\x20\x20\x20\x41\x75\ \x74\x6f\x6d\x61\x74\x69\x63\x20\x43\x6f\x6e\x6e\x65\x63\x74\x69\ \x6f\x6e\x73\x09\x09\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6e\x67\x20\ \x77\x69\x64\x67\x65\x74\x73\x20\x75\x73\x69\x6e\x67\x20\x61\x20\ \x6e\x61\x6d\x69\x6e\x67\x20\x73\x63\x68\x65\x6d\x65\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x41\x20\x44\x69\x61\x6c\x6f\x67\x20\x57\ \x69\x74\x68\x6f\x75\x74\x20\x41\x75\x74\x6f\x2d\x43\x6f\x6e\x6e\ \x65\x63\x74\x09\x48\x6f\x77\x20\x74\x6f\x20\x63\x6f\x6e\x6e\x65\ \x63\x74\x20\x77\x69\x64\x67\x65\x74\x73\x20\x77\x69\x74\x68\x6f\ \x75\x74\x20\x61\x20\x6e\x61\x6d\x69\x6e\x67\x20\x73\x63\x68\x65\ \x6d\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\x20\x44\x69\x61\ \x6c\x6f\x67\x20\x57\x69\x74\x68\x20\x41\x75\x74\x6f\x2d\x43\x6f\ \x6e\x6e\x65\x63\x74\x09\x55\x73\x69\x6e\x67\x20\x61\x75\x74\x6f\ \x6d\x61\x74\x69\x63\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\ \x73\x0a\x0a\x46\x6f\x72\x6d\x20\x45\x64\x69\x74\x69\x6e\x67\x20\ \x4d\x6f\x64\x65\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x65\x64\ \x69\x74\x20\x61\x20\x66\x6f\x72\x6d\x20\x69\x6e\x20\x51\x74\x20\ \x44\x65\x73\x69\x67\x6e\x65\x72\x0a\x20\x20\x20\x20\x4d\x61\x6e\ \x61\x67\x69\x6e\x67\x20\x46\x6f\x72\x6d\x73\x09\x09\x09\x4c\x6f\ \x61\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x73\x61\x76\x69\x6e\x67\ \x20\x66\x6f\x72\x6d\x73\x0a\x20\x20\x20\x20\x45\x64\x69\x74\x69\ \x6e\x67\x20\x61\x20\x46\x6f\x72\x6d\x09\x09\x09\x42\x61\x73\x69\ \x63\x20\x65\x64\x69\x74\x69\x6e\x67\x20\x74\x65\x63\x68\x6e\x69\ \x71\x75\x65\x73\x0a\x20\x20\x20\x20\x54\x68\x65\x20\x50\x72\x6f\ \x70\x65\x72\x74\x79\x20\x45\x64\x69\x74\x6f\x72\x09\x09\x09\x43\ \x68\x61\x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x20\x70\ \x72\x6f\x70\x65\x72\x74\x69\x65\x73\x0a\x20\x20\x20\x20\x54\x68\ \x65\x20\x4f\x62\x6a\x65\x63\x74\x20\x49\x6e\x73\x70\x65\x63\x74\ \x6f\x72\x09\x09\x45\x78\x61\x6d\x69\x6e\x69\x6e\x67\x20\x74\x68\ \x65\x20\x68\x69\x65\x72\x61\x72\x63\x68\x79\x20\x6f\x66\x20\x6f\ \x62\x6a\x65\x63\x74\x73\x20\x6f\x6e\x20\x61\x20\x66\x6f\x72\x6d\ \x0a\x20\x20\x20\x20\x4c\x61\x79\x6f\x75\x74\x73\x09\x09\x09\x09\ \x4f\x62\x6a\x65\x63\x74\x73\x20\x74\x68\x61\x74\x20\x61\x72\x72\ \x61\x6e\x67\x65\x20\x77\x69\x64\x67\x65\x74\x73\x20\x6f\x6e\x20\ \x61\x20\x66\x6f\x72\x6d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\ \x70\x70\x6c\x79\x69\x6e\x67\x20\x61\x6e\x64\x20\x42\x72\x65\x61\ \x6b\x69\x6e\x67\x20\x4c\x61\x79\x6f\x75\x74\x73\x09\x4d\x61\x6e\ \x61\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\ \x20\x6c\x61\x79\x6f\x75\x74\x73\x20\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x61\x6e\x64\ \x20\x56\x65\x72\x74\x69\x63\x61\x6c\x20\x4c\x61\x79\x6f\x75\x74\ \x73\x09\x53\x74\x61\x6e\x64\x61\x72\x64\x20\x72\x6f\x77\x20\x61\ \x6e\x64\x20\x63\x6f\x6c\x75\x6d\x6e\x20\x6c\x61\x79\x6f\x75\x74\ \x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x68\x65\x20\x47\x72\ \x69\x64\x20\x4c\x61\x79\x6f\x75\x74\x09\x09\x09\x41\x72\x72\x61\ \x6e\x67\x69\x6e\x67\x20\x77\x69\x64\x67\x65\x74\x73\x20\x69\x6e\ \x20\x61\x20\x6d\x61\x74\x72\x69\x78\x0a\x20\x20\x20\x20\x50\x72\ \x65\x76\x69\x65\x77\x69\x6e\x67\x20\x46\x6f\x72\x6d\x73\x09\x09\ \x09\x43\x68\x65\x63\x6b\x69\x6e\x67\x20\x74\x68\x61\x74\x20\x74\ \x68\x65\x20\x64\x65\x73\x69\x67\x6e\x20\x77\x6f\x72\x6b\x73\x0a\ \x0a\x55\x73\x69\x6e\x67\x20\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\ \x73\x09\x09\x09\x48\x6f\x77\x20\x74\x6f\x20\x67\x72\x6f\x75\x70\ \x20\x77\x69\x64\x67\x65\x74\x73\x20\x74\x6f\x67\x65\x74\x68\x65\ \x72\x0a\x20\x20\x20\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x46\x65\ \x61\x74\x75\x72\x65\x73\x09\x09\x09\x43\x6f\x6d\x6d\x6f\x6e\x20\ \x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x66\x65\x61\x74\x75\x72\ \x65\x73\x0a\x20\x20\x20\x20\x46\x72\x61\x6d\x65\x73\x09\x09\x09\ \x09\x51\x46\x72\x61\x6d\x65\x0a\x20\x20\x20\x20\x47\x72\x6f\x75\ \x70\x20\x42\x6f\x78\x65\x73\x09\x09\x09\x09\x51\x47\x72\x6f\x75\ \x70\x42\x6f\x78\x0a\x20\x20\x20\x20\x53\x74\x61\x63\x6b\x65\x64\ \x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x51\x53\x74\x61\x63\ \x6b\x65\x64\x57\x69\x64\x67\x65\x74\x0a\x20\x20\x20\x20\x54\x61\ \x62\x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x09\x51\x54\x61\ \x62\x57\x69\x64\x67\x65\x74\x0a\x20\x20\x20\x20\x54\x6f\x6f\x6c\ \x62\x6f\x78\x20\x57\x69\x64\x67\x65\x74\x73\x09\x09\x09\x51\x54\ \x6f\x6f\x6c\x42\x6f\x78\x0a\x0a\x43\x6f\x6e\x6e\x65\x63\x74\x69\ \x6f\x6e\x20\x45\x64\x69\x74\x69\x6e\x67\x20\x4d\x6f\x64\x65\x09\ \x09\x09\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6e\x67\x20\x77\x69\x64\ \x67\x65\x74\x73\x20\x74\x6f\x67\x65\x74\x68\x65\x72\x20\x77\x69\ \x74\x68\x20\x73\x69\x67\x6e\x61\x6c\x73\x20\x61\x6e\x64\x20\x73\ \x6c\x6f\x74\x73\x0a\x20\x20\x20\x20\x43\x6f\x6e\x6e\x65\x63\x74\ \x69\x6e\x67\x20\x4f\x62\x6a\x65\x63\x74\x73\x09\x09\x09\x4d\x61\ \x6b\x69\x6e\x67\x20\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x73\ \x20\x69\x6e\x20\x51\x74\x20\x44\x65\x73\x69\x67\x6e\x65\x72\x0a\ \x20\x20\x20\x20\x45\x64\x69\x74\x69\x6e\x67\x20\x43\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x09\x09\x09\x43\x68\x61\x6e\x67\x69\ \x6e\x67\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x63\x6f\x6e\x6e\ \x65\x63\x74\x69\x6f\x6e\x73\x0a\ " qt_resource_name = b"\ \x00\x0b\ \x0c\xe2\x22\xf4\ \x00\x64\ \x00\x65\x00\x66\x00\x61\x00\x75\x00\x6c\x00\x74\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/itemviews/simplewidgetmapper.py0000755000076500000240000001167512536324427024077 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtGui class Window(QtGui.QWidget): def __init__(self, parent=None): super(Window, self).__init__(parent) # Set up the model. self.setupModel() # Set up the widgets. nameLabel = QtGui.QLabel("Na&me:") nameEdit = QtGui.QLineEdit() addressLabel = QtGui.QLabel("&Address:") addressEdit = QtGui.QTextEdit() ageLabel = QtGui.QLabel("A&ge (in years):") ageSpinBox = QtGui.QSpinBox() self.nextButton = QtGui.QPushButton("&Next") self.previousButton = QtGui.QPushButton("&Previous") nameLabel.setBuddy(nameEdit) addressLabel.setBuddy(addressEdit) ageLabel.setBuddy(ageSpinBox) # Set up the mapper. self.mapper = QtGui.QDataWidgetMapper(self) self.mapper.setModel(self.model) self.mapper.addMapping(nameEdit, 0) self.mapper.addMapping(addressEdit, 1) self.mapper.addMapping(ageSpinBox, 2) # Set up connections and layouts. self.previousButton.clicked.connect(self.mapper.toPrevious) self.nextButton.clicked.connect(self.mapper.toNext) self.mapper.currentIndexChanged.connect(self.updateButtons) layout = QtGui.QGridLayout() layout.addWidget(nameLabel, 0, 0, 1, 1) layout.addWidget(nameEdit, 0, 1, 1, 1) layout.addWidget(self.previousButton, 0, 2, 1, 1) layout.addWidget(addressLabel, 1, 0, 1, 1) layout.addWidget(addressEdit, 1, 1, 2, 1) layout.addWidget(self.nextButton, 1, 2, 1, 1) layout.addWidget(ageLabel, 3, 0, 1, 1) layout.addWidget(ageSpinBox, 3, 1, 1, 1) self.setLayout(layout) self.setWindowTitle("Simple Widget Mapper") self.mapper.toFirst() def setupModel(self): self.model = QtGui.QStandardItemModel(5, 3, self) names = ("Alice", "Bob", "Carol", "Donald", "Emma") addresses = ("123 Main Street
      Market Town
      ", "PO Box 32
      Mail Handling Service" "
      Service City
      ", "The Lighthouse
      Remote Island
      ", "47338 Park Avenue
      Big City
      ", "Research Station
      Base Camp
      Big Mountain
      ") ages = ("20", "31", "32", "19", "26") for row, name in enumerate(names): item = QtGui.QStandardItem(name) self.model.setItem(row, 0, item) item = QtGui.QStandardItem(addresses[row]) self.model.setItem(row, 1, item) item = QtGui.QStandardItem(ages[row]) self.model.setItem(row, 2, item) def updateButtons(self, row): self.previousButton.setEnabled(row > 0) self.nextButton.setEnabled(row < self.model.rowCount() - 1) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/spinboxdelegate.py0000755000076500000240000000646312536324427023351 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class SpinBoxDelegate(QtGui.QItemDelegate): def createEditor(self, parent, option, index): editor = QtGui.QSpinBox(parent) editor.setMinimum(0) editor.setMaximum(100) return editor def setEditorData(self, spinBox, index): value = index.model().data(index, QtCore.Qt.EditRole) spinBox.setValue(value) def setModelData(self, spinBox, model, index): spinBox.interpretText() value = spinBox.value() model.setData(index, value, QtCore.Qt.EditRole) def updateEditorGeometry(self, editor, option, index): editor.setGeometry(option.rect) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) model = QtGui.QStandardItemModel(4, 2) tableView = QtGui.QTableView() tableView.setModel(model) delegate = SpinBoxDelegate() tableView.setItemDelegate(delegate) for row in range(4): for column in range(2): index = model.index(row, column, QtCore.QModelIndex()) model.setData(index, (row + 1) * (column + 1)) tableView.setWindowTitle("Spin Box Delegate") tableView.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/itemviews/stardelegate.py0000755000076500000240000002125512536324427022634 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # These are only needed for Python v2 but are harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) import math from PyQt4 import QtCore, QtGui class StarRating(object): # enum EditMode Editable, ReadOnly = range(2) PaintingScaleFactor = 20 def __init__(self, starCount=1, maxStarCount=5): self._starCount = starCount self._maxStarCount = maxStarCount self.starPolygon = QtGui.QPolygonF([QtCore.QPointF(1.0, 0.5)]) for i in range(5): self.starPolygon << QtCore.QPointF(0.5 + 0.5 * math.cos(0.8 * i * math.pi), 0.5 + 0.5 * math.sin(0.8 * i * math.pi)) self.diamondPolygon = QtGui.QPolygonF() self.diamondPolygon << QtCore.QPointF(0.4, 0.5) \ << QtCore.QPointF(0.5, 0.4) \ << QtCore.QPointF(0.6, 0.5) \ << QtCore.QPointF(0.5, 0.6) \ << QtCore.QPointF(0.4, 0.5) def starCount(self): return self._starCount def maxStarCount(self): return self._maxStarCount def setStarCount(self, starCount): self._starCount = starCount def setMaxStarCount(self, maxStarCount): self._maxStarCount = maxStarCount def sizeHint(self): return self.PaintingScaleFactor * QtCore.QSize(self._maxStarCount, 1) def paint(self, painter, rect, palette, editMode): painter.save() painter.setRenderHint(QtGui.QPainter.Antialiasing, True) painter.setPen(QtCore.Qt.NoPen) if editMode == StarRating.Editable: painter.setBrush(palette.highlight()) else: painter.setBrush(palette.foreground()) yOffset = (rect.height() - self.PaintingScaleFactor) / 2 painter.translate(rect.x(), rect.y() + yOffset) painter.scale(self.PaintingScaleFactor, self.PaintingScaleFactor) for i in range(self._maxStarCount): if i < self._starCount: painter.drawPolygon(self.starPolygon, QtCore.Qt.WindingFill) elif editMode == StarRating.Editable: painter.drawPolygon(self.diamondPolygon, QtCore.Qt.WindingFill) painter.translate(1.0, 0.0) painter.restore() class StarEditor(QtGui.QWidget): editingFinished = QtCore.pyqtSignal() def __init__(self, parent = None): super(StarEditor, self).__init__(parent) self._starRating = StarRating() self.setMouseTracking(True) self.setAutoFillBackground(True) def setStarRating(self, starRating): self._starRating = starRating def starRating(self): return self._starRating def sizeHint(self): return self._starRating.sizeHint() def paintEvent(self, event): painter = QtGui.QPainter(self) self._starRating.paint(painter, self.rect(), self.palette(), StarRating.Editable) def mouseMoveEvent(self, event): star = self.starAtPosition(event.x()) if star != self._starRating.starCount() and star != -1: self._starRating.setStarCount(star) self.update() def mouseReleaseEvent(self, event): self.editingFinished.emit() def starAtPosition(self, x): # Enable a star, if pointer crosses the center horizontally. starwidth = self._starRating.sizeHint().width() // self._starRating.maxStarCount() star = (x + starwidth / 2) // starwidth if 0 <= star <= self._starRating.maxStarCount(): return star return -1 class StarDelegate(QtGui.QStyledItemDelegate): def paint(self, painter, option, index): starRating = index.data() if isinstance(starRating, StarRating): if option.state & QtGui.QStyle.State_Selected: painter.fillRect(option.rect, option.palette.highlight()) starRating.paint(painter, option.rect, option.palette, StarRating.ReadOnly) else: super(StarDelegate, self).paint(painter, option, index) def sizeHint(self, option, index): starRating = index.data() if isinstance(starRating, StarRating): return starRating.sizeHint() else: return super(StarDelegate, self).sizeHint(option, index) def createEditor(self, parent, option, index): starRating = index.data() if isinstance(starRating, StarRating): editor = StarEditor(parent) editor.editingFinished.connect(self.commitAndCloseEditor) return editor else: return super(StarDelegate, self).createEditor(parent, option, index) def setEditorData(self, editor, index): starRating = index.data() if isinstance(starRating, StarRating): editor.setStarRating(starRating) else: super(StarDelegate, self).setEditorData(editor, index) def setModelData(self, editor, model, index): starRating = index.data() if isinstance(starRating, StarRating): model.setData(index, editor.starRating()) else: super(StarDelegate, self).setModelData(editor, model, index) def commitAndCloseEditor(self): editor = self.sender() self.commitData.emit(editor) self.closeEditor.emit(editor) def populateTableWidget(tableWidget): staticData = ( ("Mass in B-Minor", "Baroque", "J.S. Bach", 5), ("Three More Foxes", "Jazz", "Maynard Ferguson", 4), ("Sex Bomb", "Pop", "Tom Jones", 3), ("Barbie Girl", "Pop", "Aqua", 5), ) for row, (title, genre, artist, rating) in enumerate(staticData): item0 = QtGui.QTableWidgetItem(title) item1 = QtGui.QTableWidgetItem(genre) item2 = QtGui.QTableWidgetItem(artist) item3 = QtGui.QTableWidgetItem() item3.setData(0, StarRating(rating)) tableWidget.setItem(row, 0, item0) tableWidget.setItem(row, 1, item1) tableWidget.setItem(row, 2, item2) tableWidget.setItem(row, 3, item3) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) tableWidget = QtGui.QTableWidget(4, 4) tableWidget.setItemDelegate(StarDelegate()) tableWidget.setEditTriggers( QtGui.QAbstractItemView.DoubleClicked | QtGui.QAbstractItemView.SelectedClicked) tableWidget.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) headerLabels = ("Title", "Genre", "Artist", "Rating") tableWidget.setHorizontalHeaderLabels(headerLabels) populateTableWidget(tableWidget) tableWidget.resizeColumnsToContents() tableWidget.resize(500, 300) tableWidget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/layouts/0000755000076500000240000000000012536324427017272 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/layouts/basiclayouts.py0000755000076500000240000001155012536324427022353 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class Dialog(QtGui.QDialog): NumGridRows = 3 NumButtons = 4 def __init__(self): super(Dialog, self).__init__() self.createMenu() self.createHorizontalGroupBox() self.createGridGroupBox() self.createFormGroupBox() bigEditor = QtGui.QTextEdit() bigEditor.setPlainText("This widget takes up all the remaining space " "in the top-level layout.") buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) mainLayout = QtGui.QVBoxLayout() mainLayout.setMenuBar(self.menuBar) mainLayout.addWidget(self.horizontalGroupBox) mainLayout.addWidget(self.gridGroupBox) mainLayout.addWidget(self.formGroupBox) mainLayout.addWidget(bigEditor) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.setWindowTitle("Basic Layouts") def createMenu(self): self.menuBar = QtGui.QMenuBar() self.fileMenu = QtGui.QMenu("&File", self) self.exitAction = self.fileMenu.addAction("E&xit") self.menuBar.addMenu(self.fileMenu) self.exitAction.triggered.connect(self.accept) def createHorizontalGroupBox(self): self.horizontalGroupBox = QtGui.QGroupBox("Horizontal layout") layout = QtGui.QHBoxLayout() for i in range(Dialog.NumButtons): button = QtGui.QPushButton("Button %d" % (i + 1)) layout.addWidget(button) self.horizontalGroupBox.setLayout(layout) def createGridGroupBox(self): self.gridGroupBox = QtGui.QGroupBox("Grid layout") layout = QtGui.QGridLayout() for i in range(Dialog.NumGridRows): label = QtGui.QLabel("Line %d:" % (i + 1)) lineEdit = QtGui.QLineEdit() layout.addWidget(label, i + 1, 0) layout.addWidget(lineEdit, i + 1, 1) self.smallEditor = QtGui.QTextEdit() self.smallEditor.setPlainText("This widget takes up about two thirds " "of the grid layout.") layout.addWidget(self.smallEditor, 0, 2, 4, 1) layout.setColumnStretch(1, 10) layout.setColumnStretch(2, 20) self.gridGroupBox.setLayout(layout) def createFormGroupBox(self): self.formGroupBox = QtGui.QGroupBox("Form layout") layout = QtGui.QFormLayout() layout.addRow(QtGui.QLabel("Line 1:"), QtGui.QLineEdit()) layout.addRow(QtGui.QLabel("Line 2, long text:"), QtGui.QComboBox()) layout.addRow(QtGui.QLabel("Line 3:"), QtGui.QSpinBox()) self.formGroupBox.setLayout(layout) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) dialog = Dialog() sys.exit(dialog.exec_()) PyQt-x11-gpl-4.11.4/examples/layouts/borderlayout.py0000755000076500000240000001760512536324427022373 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class ItemWrapper(object): def __init__(self, i, p): self.item = i self.position = p class BorderLayout(QtGui.QLayout): West, North, South, East, Center = range(5) MinimumSize, SizeHint = range(2) def __init__(self, parent=None, margin=0, spacing=-1): super(BorderLayout, self).__init__(parent) self.setMargin(margin) self.setSpacing(spacing) self.list = [] def __del__(self): l = self.takeAt(0) while l: l = self.takeAt(0) def addItem(self, item): self.add(item, BorderLayout.West) def addWidget(self, widget, position): self.add(QtGui.QWidgetItem(widget), position) def expandingDirections(self): return QtCore.Qt.Horizontal | QtCore.Qt.Vertical def hasHeightForWidth(self): return False def count(self): return len(self.list) def itemAt(self, index): if index < len(self.list): return self.list[index].item return None def minimumSize(self): return self.calculateSize(BorderLayout.MinimumSize) def setGeometry(self, rect): center = None eastWidth = 0 westWidth = 0 northHeight = 0 southHeight = 0 centerHeight = 0 super(BorderLayout, self).setGeometry(rect) for wrapper in self.list: item = wrapper.item position = wrapper.position if position == BorderLayout.North: item.setGeometry(QtCore.QRect(rect.x(), northHeight, rect.width(), item.sizeHint().height())) northHeight += item.geometry().height() + self.spacing() elif position == BorderLayout.South: item.setGeometry(QtCore.QRect(item.geometry().x(), item.geometry().y(), rect.width(), item.sizeHint().height())) southHeight += item.geometry().height() + self.spacing() item.setGeometry(QtCore.QRect(rect.x(), rect.y() + rect.height() - southHeight + self.spacing(), item.geometry().width(), item.geometry().height())) elif position == BorderLayout.Center: center = wrapper centerHeight = rect.height() - northHeight - southHeight for wrapper in self.list: item = wrapper.item position = wrapper.position if position == BorderLayout.West: item.setGeometry(QtCore.QRect(rect.x() + westWidth, northHeight, item.sizeHint().width(), centerHeight)) westWidth += item.geometry().width() + self.spacing() elif position == BorderLayout.East: item.setGeometry(QtCore.QRect(item.geometry().x(), item.geometry().y(), item.sizeHint().width(), centerHeight)) eastWidth += item.geometry().width() + self.spacing() item.setGeometry(QtCore.QRect(rect.x() + rect.width() - eastWidth + self.spacing(), northHeight, item.geometry().width(), item.geometry().height())) if center: center.item.setGeometry(QtCore.QRect(westWidth, northHeight, rect.width() - eastWidth - westWidth, centerHeight)) def sizeHint(self): return self.calculateSize(BorderLayout.SizeHint) def takeAt(self, index): if index >= 0 and index < len(self.list): layoutStruct = self.list.pop(index) return layoutStruct.item return None def add(self, item, position): self.list.append(ItemWrapper(item, position)) def calculateSize(self, sizeType): totalSize = QtCore.QSize() for wrapper in self.list: position = wrapper.position itemSize = QtCore.QSize() if sizeType == BorderLayout.MinimumSize: itemSize = wrapper.item.minimumSize() else: # sizeType == BorderLayout.SizeHint itemSize = wrapper.item.sizeHint() if position in (BorderLayout.North, BorderLayout.South, BorderLayout.Center): totalSize.setHeight(totalSize.height() + itemSize.height()) if position in (BorderLayout.West, BorderLayout.East, BorderLayout.Center): totalSize.setWidth(totalSize.width() + itemSize.width()) return totalSize class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() centralWidget = QtGui.QTextBrowser() centralWidget.setPlainText("Central widget") layout = BorderLayout() layout.addWidget(centralWidget, BorderLayout.Center) # Because BorderLayout doesn't call its super-class addWidget() it # doesn't take ownership of the widgets until setLayout() is called. # Therefore we keep a local reference to each label to prevent it being # garbage collected too soon. label_n = self.createLabel("North") layout.addWidget(label_n, BorderLayout.North) label_w = self.createLabel("West") layout.addWidget(label_w, BorderLayout.West) label_e1 = self.createLabel("East 1") layout.addWidget(label_e1, BorderLayout.East) label_e2 = self.createLabel("East 2") layout.addWidget(label_e2, BorderLayout.East) label_s = self.createLabel("South") layout.addWidget(label_s, BorderLayout.South) self.setLayout(layout) self.setWindowTitle("Border Layout") def createLabel(self, text): label = QtGui.QLabel(text) label.setFrameStyle(QtGui.QFrame.Box | QtGui.QFrame.Raised) return label if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/layouts/flowlayout.py0000755000076500000240000001221112536324427022051 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() flowLayout = FlowLayout() flowLayout.addWidget(QtGui.QPushButton("Short")) flowLayout.addWidget(QtGui.QPushButton("Longer")) flowLayout.addWidget(QtGui.QPushButton("Different text")) flowLayout.addWidget(QtGui.QPushButton("More text")) flowLayout.addWidget(QtGui.QPushButton("Even longer button text")) self.setLayout(flowLayout) self.setWindowTitle("Flow Layout") class FlowLayout(QtGui.QLayout): def __init__(self, parent=None, margin=0, spacing=-1): super(FlowLayout, self).__init__(parent) if parent is not None: self.setMargin(margin) self.setSpacing(spacing) self.itemList = [] def __del__(self): item = self.takeAt(0) while item: item = self.takeAt(0) def addItem(self, item): self.itemList.append(item) def count(self): return len(self.itemList) def itemAt(self, index): if index >= 0 and index < len(self.itemList): return self.itemList[index] return None def takeAt(self, index): if index >= 0 and index < len(self.itemList): return self.itemList.pop(index) return None def expandingDirections(self): return QtCore.Qt.Orientations(QtCore.Qt.Orientation(0)) def hasHeightForWidth(self): return True def heightForWidth(self, width): height = self.doLayout(QtCore.QRect(0, 0, width, 0), True) return height def setGeometry(self, rect): super(FlowLayout, self).setGeometry(rect) self.doLayout(rect, False) def sizeHint(self): return self.minimumSize() def minimumSize(self): size = QtCore.QSize() for item in self.itemList: size = size.expandedTo(item.minimumSize()) size += QtCore.QSize(2 * self.margin(), 2 * self.margin()) return size def doLayout(self, rect, testOnly): x = rect.x() y = rect.y() lineHeight = 0 for item in self.itemList: wid = item.widget() spaceX = self.spacing() + wid.style().layoutSpacing(QtGui.QSizePolicy.PushButton, QtGui.QSizePolicy.PushButton, QtCore.Qt.Horizontal) spaceY = self.spacing() + wid.style().layoutSpacing(QtGui.QSizePolicy.PushButton, QtGui.QSizePolicy.PushButton, QtCore.Qt.Vertical) nextX = x + item.sizeHint().width() + spaceX if nextX - spaceX > rect.right() and lineHeight > 0: x = rect.x() y = y + lineHeight + spaceY nextX = x + item.sizeHint().width() + spaceX lineHeight = 0 if not testOnly: item.setGeometry(QtCore.QRect(QtCore.QPoint(x, y), item.sizeHint())) x = nextX lineHeight = max(lineHeight, item.sizeHint().height()) return y + lineHeight - rect.y() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWin = Window() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/layouts/README0000644000076500000240000000155612536324427020161 0ustar philstaff00000000000000PyQt uses a layout-based approach to widget management. Widgets are arranged in the optimal positions in windows based on simple layout rules, leading to a consistent look and feel. Custom layouts can be used to provide more control over the positions and sizes of child widgets. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/mainwindows/0000755000076500000240000000000012536324427020131 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/mainwindows/application/0000755000076500000240000000000012536324427022434 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/mainwindows/application/application.py0000755000076500000240000002427112536324427025322 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import application_rc3 except ImportError: import application_rc2 class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.curFile = '' self.textEdit = QtGui.QTextEdit() self.setCentralWidget(self.textEdit) self.createActions() self.createMenus() self.createToolBars() self.createStatusBar() self.readSettings() self.textEdit.document().contentsChanged.connect(self.documentWasModified) self.setCurrentFile('') self.setUnifiedTitleAndToolBarOnMac(True) def closeEvent(self, event): if self.maybeSave(): self.writeSettings() event.accept() else: event.ignore() def newFile(self): if self.maybeSave(): self.textEdit.clear() self.setCurrentFile('') def open(self): if self.maybeSave(): fileName = QtGui.QFileDialog.getOpenFileName(self) if fileName: self.loadFile(fileName) def save(self): if self.curFile: return self.saveFile(self.curFile) return self.saveAs() def saveAs(self): fileName = QtGui.QFileDialog.getSaveFileName(self) if fileName: return self.saveFile(fileName) return False def about(self): QtGui.QMessageBox.about(self, "About Application", "The Application example demonstrates how to write " "modern GUI applications using Qt, with a menu bar, " "toolbars, and a status bar.") def documentWasModified(self): self.setWindowModified(self.textEdit.document().isModified()) def createActions(self): self.newAct = QtGui.QAction(QtGui.QIcon(':/images/new.png'), "&New", self, shortcut=QtGui.QKeySequence.New, statusTip="Create a new file", triggered=self.newFile) self.openAct = QtGui.QAction(QtGui.QIcon(':/images/open.png'), "&Open...", self, shortcut=QtGui.QKeySequence.Open, statusTip="Open an existing file", triggered=self.open) self.saveAct = QtGui.QAction(QtGui.QIcon(':/images/save.png'), "&Save", self, shortcut=QtGui.QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) self.saveAsAct = QtGui.QAction("Save &As...", self, shortcut=QtGui.QKeySequence.SaveAs, statusTip="Save the document under a new name", triggered=self.saveAs) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", statusTip="Exit the application", triggered=self.close) self.cutAct = QtGui.QAction(QtGui.QIcon(':/images/cut.png'), "Cu&t", self, shortcut=QtGui.QKeySequence.Cut, statusTip="Cut the current selection's contents to the clipboard", triggered=self.textEdit.cut) self.copyAct = QtGui.QAction(QtGui.QIcon(':/images/copy.png'), "&Copy", self, shortcut=QtGui.QKeySequence.Copy, statusTip="Copy the current selection's contents to the clipboard", triggered=self.textEdit.copy) self.pasteAct = QtGui.QAction(QtGui.QIcon(':/images/paste.png'), "&Paste", self, shortcut=QtGui.QKeySequence.Paste, statusTip="Paste the clipboard's contents into the current selection", triggered=self.textEdit.paste) self.aboutAct = QtGui.QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=QtGui.qApp.aboutQt) self.cutAct.setEnabled(False) self.copyAct.setEnabled(False) self.textEdit.copyAvailable.connect(self.cutAct.setEnabled) self.textEdit.copyAvailable.connect(self.copyAct.setEnabled) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.newAct) self.fileMenu.addAction(self.openAct) self.fileMenu.addAction(self.saveAct) self.fileMenu.addAction(self.saveAsAct) self.fileMenu.addSeparator(); self.fileMenu.addAction(self.exitAct) self.editMenu = self.menuBar().addMenu("&Edit") self.editMenu.addAction(self.cutAct) self.editMenu.addAction(self.copyAct) self.editMenu.addAction(self.pasteAct) self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) def createToolBars(self): self.fileToolBar = self.addToolBar("File") self.fileToolBar.addAction(self.newAct) self.fileToolBar.addAction(self.openAct) self.fileToolBar.addAction(self.saveAct) self.editToolBar = self.addToolBar("Edit") self.editToolBar.addAction(self.cutAct) self.editToolBar.addAction(self.copyAct) self.editToolBar.addAction(self.pasteAct) def createStatusBar(self): self.statusBar().showMessage("Ready") def readSettings(self): settings = QtCore.QSettings("Trolltech", "Application Example") pos = settings.value("pos", QtCore.QPoint(200, 200)) size = settings.value("size", QtCore.QSize(400, 400)) self.resize(size) self.move(pos) def writeSettings(self): settings = QtCore.QSettings("Trolltech", "Application Example") settings.setValue("pos", self.pos()) settings.setValue("size", self.size()) def maybeSave(self): if self.textEdit.document().isModified(): ret = QtGui.QMessageBox.warning(self, "Application", "The document has been modified.\nDo you want to save " "your changes?", QtGui.QMessageBox.Save | QtGui.QMessageBox.Discard | QtGui.QMessageBox.Cancel) if ret == QtGui.QMessageBox.Save: return self.save() elif ret == QtGui.QMessageBox.Cancel: return False return True def loadFile(self, fileName): file = QtCore.QFile(fileName) if not file.open(QtCore.QFile.ReadOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "Application", "Cannot read file %s:\n%s." % (fileName, file.errorString())) return inf = QtCore.QTextStream(file) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) self.textEdit.setPlainText(inf.readAll()) QtGui.QApplication.restoreOverrideCursor() self.setCurrentFile(fileName) self.statusBar().showMessage("File loaded", 2000) def saveFile(self, fileName): file = QtCore.QFile(fileName) if not file.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "Application", "Cannot write file %s:\n%s." % (fileName, file.errorString())) return False outf = QtCore.QTextStream(file) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) outf << self.textEdit.toPlainText() QtGui.QApplication.restoreOverrideCursor() self.setCurrentFile(fileName); self.statusBar().showMessage("File saved", 2000) return True def setCurrentFile(self, fileName): self.curFile = fileName self.textEdit.document().setModified(False) self.setWindowModified(False) if self.curFile: shownName = self.strippedName(self.curFile) else: shownName = 'untitled.txt' self.setWindowTitle("%s[*] - Application" % shownName) def strippedName(self, fullFileName): return QtCore.QFileInfo(fullFileName).fileName() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/mainwindows/application/application.qrc0000644000076500000240000000040712536324427025447 0ustar philstaff00000000000000 images/copy.png images/cut.png images/new.png images/open.png images/paste.png images/save.png PyQt-x11-gpl-4.11.4/examples/mainwindows/application/application_rc2.py0000644000076500000240000010725112536324427026065 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:44:05 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x03\x54\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xe6\x49\x44\x41\x54\x58\xc3\xd5\ \x97\xcd\x4e\x13\x61\x14\x86\xeb\x35\x94\x95\x7b\x71\xe1\xd2\xc4\ \xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb1\x30\xea\x05\x18\x96\ \x26\x62\x58\xb8\xb0\x91\x58\x20\xd1\x9d\xbf\x89\xa4\x14\xb1\x52\ \xa4\x48\x45\x94\xfe\xd0\x02\x43\xff\xa6\x9d\x19\xa6\x65\x80\xe3\ \x79\x7b\xfa\x85\x51\x4a\x82\xc9\x21\x86\x49\xde\x9c\x33\xa7\xf3\ \xcd\xfb\x9c\xf3\x4d\x9b\x4e\x84\x88\x22\xff\x53\x91\x73\x01\xc0\ \xc7\xd5\x90\x6e\xff\xa5\xfb\xac\xc7\x3d\x3d\x64\x0d\xa9\x02\xf0\ \x31\x32\x3c\x3c\xbc\x6a\x34\x3a\x3a\xba\x19\x56\x3c\x1e\xaf\x26\ \x93\xc9\x56\x3a\x9d\x76\x13\x89\x44\x6b\x60\x60\x20\xcd\x6b\x6e\ \x68\x02\xa4\x38\xd2\xe1\xe1\x71\x99\xba\xef\xb7\xc9\xb2\x2c\xda\ \xdf\xdf\x27\x86\xf1\x78\xcd\x18\xeb\x8a\x1a\x40\x3f\xf3\xb0\x1c\ \xc7\xa5\x4c\x66\xb9\x0b\x14\x04\x01\xc5\x62\xb1\x3a\xaf\x7b\x70\ \x1a\x88\x53\x01\x1c\x1c\x10\x77\x77\xb2\x6c\xdb\xa1\xf9\xf9\xcf\ \x64\x0e\xd7\x75\xe9\xf9\xc4\x44\x17\x42\x05\x00\x26\x7b\xc1\xc9\ \xaa\x37\x1c\x4a\xce\xcd\x53\xf8\x70\x5d\x0f\x8b\x17\x54\x00\x82\ \x10\x40\x67\x4f\x14\xce\xed\xa6\x47\x1f\x67\x66\xe9\xf5\x9b\xb7\ \x14\x9f\x9c\xa4\xa9\xa9\x69\x7a\xf7\xfe\x03\x45\xa3\xd1\x65\x5e\ \x7f\x41\x05\xc0\xef\x10\xed\xb6\x25\x86\x85\x9a\xe3\x05\x94\x5d\ \xcd\xd1\xe4\xf4\x2b\x7a\x32\xfe\x94\x9e\xc5\x5e\xd0\x4c\x62\x0e\ \x8b\x17\x55\x00\xda\x81\x18\xf5\x13\x20\x3c\xff\x90\x6a\xcd\x36\ \x15\x37\xab\x94\x2f\x6e\x53\x89\x63\x8d\xb7\x85\xd7\x7e\x51\x01\ \xf0\x79\xcc\xcd\x5d\x1e\xb5\xc7\x7b\xdb\xee\x9f\x3b\xbe\xe4\x88\ \x5d\xb8\xbd\xee\xe2\x94\xca\x33\xe0\x75\xe4\xc6\x75\x57\x62\xd8\ \x10\x39\xea\xe6\x33\x44\xd4\x01\xa7\x06\xe0\xf4\x3a\xad\x39\x22\ \x98\x98\x68\x72\x80\x98\x6b\x50\x53\x9d\x00\x00\x2a\x2d\xb9\x31\ \xe2\x4e\x53\x8c\x10\x0d\x04\xf2\x6d\xfb\x28\xb6\x7c\x45\x00\x9b\ \x3b\xdb\x6a\xfc\x69\x8e\x3c\x6c\x88\x1a\xae\x39\x13\x80\x3a\x8f\ \xb7\x54\x23\x2a\xd7\xc5\x04\x06\x06\x00\x35\x28\x9c\x17\xab\xbc\ \x25\xbb\xca\x13\xc0\x4d\x61\x0e\x15\x2a\x72\x6e\xcc\x7e\x5a\x02\ \x68\x6a\xdd\xad\xf1\x94\x27\x00\x53\xdc\x1c\x71\x6d\x5b\x40\x60\ \x9a\xab\x1c\x75\x9e\xeb\x81\x41\x15\x47\x11\xc0\x6a\x89\x31\x0c\ \xd6\x77\x04\x20\x0c\x64\x26\x62\xb6\x69\x75\x8b\xa8\xaa\x09\x50\ \xb6\xc5\xbc\xd0\x03\xf8\xbe\x29\x63\x87\x29\x60\x0c\x18\x84\x1c\ \x00\x5b\x4d\x45\x00\x74\x03\x53\x98\xad\x94\xc5\x1c\xe7\x46\xe6\ \x1c\x00\xc8\x71\x5d\xa9\xa1\x08\x80\xfd\xfc\x56\x12\x73\x33\x01\ \x08\x35\x18\x42\xe8\xda\x7c\x8e\x29\xa8\x4e\x00\x5b\x00\x03\xc8\ \x98\x67\x36\x04\x00\x32\xe6\x85\xde\xf8\x17\x0b\xfc\x2c\xd8\x8a\ \x00\x18\x67\x3a\x4f\xb4\x54\x14\x23\x98\x02\x00\x02\x0c\x3e\xfb\ \xc5\x53\x28\xf0\x43\xb8\x66\x49\xf7\x6b\xf9\x52\x87\xd7\xbe\x54\ \x01\xc8\x55\x8f\xba\x4e\xad\x4b\x0e\x90\xaf\x85\xde\xb7\xc2\x92\ \x3d\x4f\xa6\xb3\xde\xa3\xb1\x71\xeb\xda\xd0\xf5\x15\x98\xb3\x6e\ \xa9\x00\x6c\x34\xa4\x6b\x18\xff\xe0\x11\x7f\x5a\x17\x53\xd4\x13\ \x0b\x59\x6f\xe4\xee\xbd\xe2\xa5\xc1\xcb\x4b\x7c\x6d\x8c\x75\x87\ \x35\xa8\xfa\xb7\x1c\xdd\x65\xd9\x3c\x8f\x1f\x19\xfe\x9e\xcf\x1e\ \x37\xbd\xc9\xba\x78\x26\x6f\x46\x00\x68\xf2\xff\x81\x99\x94\x9e\ \xe9\x3f\xbf\x19\x01\x42\xd3\xf4\xfc\xbd\x9c\x9e\xa5\x7e\x03\x51\ \x6c\x25\xa1\x92\x95\x0a\x77\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x05\x3a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xcc\x49\x44\x41\x54\x58\xc3\xb5\ \x97\x5d\x4c\x5b\x65\x1c\xc6\x77\x6f\xbc\xd9\xe5\x12\x49\x20\x71\ \xd7\x26\xe3\x4e\x13\xb8\x70\xd1\x85\x44\xbd\x50\xe3\x10\x18\xe5\ \x2b\x2e\x26\x4a\x04\x27\x86\xaa\x8b\x99\xe0\xd0\xa2\x6c\x19\x86\ \x39\x17\xdc\x1a\x16\x98\x80\x40\x6c\xa6\x43\xca\x20\x2b\x83\x1e\ \x28\xcc\xda\xd1\x96\xd2\xd2\x4a\x7b\xfa\x01\xa5\xd0\xef\x16\x1e\ \xdf\xff\xdb\x1d\xc7\xcc\x04\x2a\x87\x93\x3c\x39\x6f\x21\x9c\xe7\ \xf7\x3c\xef\x47\x0f\x87\x00\x1c\xca\x46\xcf\xbd\xfa\xe9\xbb\x4c\ \x5a\x26\x61\x0f\x6a\x60\xca\xd9\xe9\x79\xd9\x9a\x3f\x5d\x50\xf2\ \xa5\xc1\xe9\x8f\xa7\x57\xc3\x40\x30\x02\x84\xa2\x19\xad\xc7\x32\ \x8a\x27\x81\x58\x22\x73\xbf\x79\x6b\xda\x4b\x10\x72\x02\x1c\x7b\ \xe7\xac\xda\x1c\xd8\xc8\x98\x12\x40\x84\x99\x85\xe3\x19\x91\x31\ \x29\x1a\x4b\x61\x25\x94\x44\x38\x9a\x42\x73\x87\xc6\xbe\x13\xc4\ \xff\x02\x90\x12\x93\x79\x24\xf1\xc8\x58\x92\xcf\x1f\x84\x5d\x8c\ \xc2\xe5\x09\x22\x12\x4b\xa3\xf4\xc3\xef\x4d\x34\x75\x59\x01\xb0\ \xeb\xd8\x36\xd5\x90\x9e\x3a\xfc\xcc\xb9\xe7\x5f\x2e\x11\x3f\x56\ \x9e\x45\x45\x55\x0d\x2a\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\ \xac\xb6\x25\xfc\xb9\xe8\x87\x6b\x15\x58\xf6\x04\x10\x08\xc6\xd2\ \xaf\x9c\xbe\x70\x9f\x41\x1c\xd9\x15\x80\x5d\x87\x99\x1a\x8a\x8a\ \x8a\xcc\x92\x5a\x5b\x5b\xdd\xa4\xaf\x55\xad\xfe\xaf\x54\xdf\xa6\ \x06\x06\x06\x31\x39\x35\x85\xd9\xb9\x39\xe8\x26\x26\x50\x50\x50\ \x80\x21\xcd\x6f\x7c\xde\x49\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\ \x4f\x41\xf4\x85\xf0\x43\xaf\xce\xcd\x00\x6a\xf6\x02\x50\x43\x66\ \xd8\xe5\x8a\xc7\xe3\xf0\x7a\xbd\x48\xa7\xd3\x98\x9c\x9c\x44\x65\ \x65\x35\x66\x67\x8d\xbc\x81\x07\x66\x1b\x74\xd3\x16\x0e\x40\x32\ \x2d\x78\xf0\xdd\x8d\x51\x8f\xac\x00\xe1\x70\x18\x46\xa3\x91\x8f\ \x53\xa9\x14\x7e\xea\xed\x45\xe3\x27\x9f\x61\x86\x41\x38\x96\xdc\ \x50\x77\x75\xe3\x4c\x43\x23\xce\x35\x9d\xc7\xed\x91\x71\x5c\xbc\ \x3e\x2c\x2f\xc0\xc6\xc6\x06\xf4\x7a\xfd\x63\x40\x7d\x7d\xfd\x50\ \x32\x88\xd0\x46\x1c\x66\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\ \x11\x97\xba\x64\x6e\x80\x00\xa6\xd8\x3a\xd8\x7e\x45\x22\x11\x94\ \x2b\x2a\x30\xae\x13\x40\xe7\x04\x6d\x57\xda\xaa\x34\xbe\x7c\x53\ \xe6\x35\x40\x66\x3a\x9d\x0e\xc3\xc3\xc3\xe8\x65\xf5\xf7\xf7\xf7\ \x43\xab\xd5\xa2\xaa\xba\x06\x63\x77\xf5\x90\x0e\x2a\x77\x90\xed\ \x04\xb6\x0e\xda\xbb\x65\x06\xa0\x79\xb7\xdb\xed\x18\x1a\x1a\x42\ \x67\x67\x27\x7a\x7a\x7a\x38\x50\x49\x69\x19\x6e\x69\xf5\x10\xd7\ \x00\x6f\x08\xb0\xf9\x00\x67\x00\xb8\xd0\x25\x33\xc0\xd6\xd6\x16\ \xdf\x09\x81\x40\x00\xa2\x28\xc2\xef\xf7\x63\x6d\x6d\x0d\xa7\x14\ \x95\xd0\xfc\xae\xe7\xa9\xc9\x7c\xc1\x0b\x98\x3d\x40\x9b\xdc\x00\ \xdb\x41\x36\x37\x37\xf9\x76\xa4\x56\x14\x15\xd5\xe8\xfb\x55\xe0\ \xa9\x1d\x81\x47\x00\xe7\x3b\x0f\x00\x80\xcc\x25\x80\x24\x33\x4f\ \x24\x12\x28\x2b\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa0\x36\x5a\ \xd5\x07\x30\x05\xff\x98\x27\x93\x3c\x3d\x4d\x49\xc9\xa9\x4a\x0e\ \xa0\xb7\xb3\x03\x89\x3d\xc5\xf8\x17\x30\xb1\x00\x7c\x71\xf5\x00\ \x00\xa4\xea\xc9\x98\x14\x8b\xc5\x50\xa6\xa8\x82\x7a\x48\xc0\x98\ \x19\xb8\x6b\x05\xe6\x9c\x99\xfb\xe7\x57\x64\x04\x90\xd2\x53\x6a\ \x02\x88\x46\xa3\xdc\x3c\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\ \x66\x87\xe4\xa0\x01\x1c\x64\xc4\x04\x28\x3b\x64\x06\x48\x3d\x9c\ \x73\x12\x99\xd3\xb9\x40\x20\xc5\x65\x55\xb8\xd8\x2d\xa0\x7f\x3a\ \x63\xae\x7d\x90\x69\xe0\xa3\x76\x99\x00\xfe\x5d\x3d\xa5\x26\xad\ \xae\xae\x72\x88\xb7\x4a\x2a\x70\xb9\x57\xc0\x3d\x1b\xb8\x7e\x9e\ \x01\xee\xcc\x03\x67\x2e\xed\x13\x40\xaa\x9d\x44\x8b\x8e\x92\xd3\ \x71\x4c\xdf\x01\x2b\x2b\x2b\x58\x5f\x5f\xe7\x10\x27\x59\x03\xdf\ \x74\x09\x50\x4f\x00\xbf\xcc\x65\x1a\xb8\x32\x06\x34\xec\xa7\x01\ \xc9\x58\xda\xeb\x64\x4e\x69\x29\x39\x1d\x44\x04\x40\xf5\xd3\xcf\ \xde\x7c\x5b\x81\x96\xeb\x02\x4f\x7e\x75\x1c\xb8\x71\x0f\xf8\x71\ \x2c\x9e\x7e\xbd\x4e\x6d\xa6\x37\xaa\xac\x00\x9e\x64\x2c\x6d\x37\ \x32\x25\x00\xd1\x23\xf2\xe4\x12\xcc\x1b\x27\x15\x68\xef\x11\xa0\ \xbc\x66\x5b\x7f\x4f\x35\xe2\x3c\x71\x9a\xbf\x8e\x69\xf7\xfc\x4a\ \x26\x01\x90\xa9\x24\x69\xb5\x53\x42\x32\x0f\x06\x83\x70\xb9\x5c\ \xdc\x90\x5e\x4a\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf\x25\ \x9f\x7d\xa1\x9c\x4c\x3b\x98\x8a\x99\x8e\x3e\xc9\x78\x47\x00\x95\ \x4a\xc5\x01\xa4\x15\x2e\xcd\x37\x19\x52\x52\x3a\xf7\x29\xb5\xc3\ \xe1\xe0\x22\xe3\xc5\xc5\x45\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\ \x93\xe9\xae\x00\x2d\x2d\x2d\x6e\xe9\x60\xa1\xd4\xd2\x97\x0d\x8d\ \x97\x97\x97\xe1\xf3\xf9\x60\xb3\xd9\xf8\x7d\x69\x69\x89\x43\x10\ \x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92\x52\x93\x11\x8d\xe9\ \x4e\xdf\x78\x54\x3b\x35\x60\xb5\x5a\x79\xf5\xd4\x0a\xfd\xce\x60\ \x30\x24\xf2\xf2\xf2\xee\xb3\x67\x1c\xd9\x17\x40\x53\x53\x93\x5b\ \x9a\x67\x4a\x4f\x22\x13\xaa\x9a\xc6\x16\x8b\x99\x37\x40\x9f\x47\ \x47\x47\x23\x6d\x6d\x6d\xde\xfc\xfc\x7c\x13\xfb\xdb\x41\xa6\xb2\ \xbd\x9a\xff\x27\x40\x73\x73\x33\x9f\x02\x4a\x47\x10\x54\x3f\x55\ \x3f\x3f\x3f\xcf\xeb\xd6\x68\x34\x91\xba\xba\x3a\xe7\xc3\xb4\x5d\ \x4c\x1f\x30\x1d\xcd\xc6\x78\x47\x00\xa5\x52\xe9\x76\x3a\x9d\xbc\ \x62\x4a\x4a\x6f\x3e\x94\xb4\xbe\xbe\xde\x99\x93\x93\x23\x99\x16\ \x67\x53\x75\x56\x00\x8d\x8d\x8d\x6e\x8b\xc5\x82\x81\x81\x81\x48\ \x6d\x6d\xad\x33\x37\x37\x57\x56\xd3\xdd\x00\xf8\x7f\x46\x4c\xc2\ \x41\x99\x6e\xd7\xdf\x43\x39\x56\x18\x85\x70\xc8\x04\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x2b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xbd\x49\x44\x41\x54\x58\xc3\xed\ \x57\x6b\x4c\x93\x57\x18\x3e\x23\x71\xc9\x32\xe9\x16\x97\xa8\x54\ \x65\x38\x9d\x02\x15\xf6\x03\x87\x32\x93\x01\x66\x2c\x5b\x70\xc4\ \x30\xff\x60\xa2\x2e\x1a\x3a\x1d\x4e\x03\xba\x31\x89\x5b\xb3\x80\ \xd9\x0c\x84\x02\x19\x58\x1c\x14\x8b\x85\xb2\x82\x95\x5e\xe4\x66\ \x0b\x8e\x31\xf8\xc3\x46\xcb\x2d\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\ \x6a\x69\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0d\x61\xd9\xb2\x93\ \x3c\xed\x97\xf3\x7d\xfd\xde\xe7\xbc\xef\xf3\x5e\x4a\x00\x80\xfc\ \x93\x20\xff\x0a\x02\x74\x09\x28\x44\x14\xd9\x14\x71\x14\x01\x2b\ \x46\x80\xae\xdd\x64\xdd\xc6\x66\x22\x4c\xf8\x95\xc4\x8b\x47\xc8\ \xa1\xd3\xf7\xc8\x8e\x97\x3b\x38\x32\x61\x2b\x41\x20\x85\x9c\xbe\ \x30\x48\x2e\xdd\x80\x19\x40\x32\xab\x79\x4d\xf4\xbe\xfb\x72\x13\ \x68\x64\x06\x91\x04\x5e\xa3\x51\xf4\x06\xee\x85\x47\xf5\xd0\xbd\ \x83\xcb\x4d\x20\x9b\x9d\xf6\x40\x74\x2f\xbd\x16\x32\x3d\x20\x89\ \x3f\x48\xa5\x2c\x1b\x01\x8c\x31\x79\xc1\xbb\x9d\x88\x4b\xc6\xd7\ \xc6\x26\x0e\xa0\x10\xb9\xfd\x42\xfe\xc5\x2b\x36\x46\x8c\x12\x5c\ \x4e\x02\x93\xa7\xa7\xa7\x0d\xcc\xd3\x39\xb9\x98\x63\x36\x14\x0a\ \xd2\xe4\xa3\x2b\x41\x20\x8c\x29\x9e\x2a\xdf\x37\x47\xeb\xdc\x7b\ \xb5\xcc\x89\x9e\x40\x44\x96\x54\x83\x2b\x2c\x0b\x36\x46\x48\x08\ \x13\xf5\x64\x2a\x7b\x2e\x54\x03\x01\xf8\x03\x37\xbf\xc0\x0e\x34\ \x2a\x54\xdf\x62\x88\x52\xd5\x2c\x58\x03\x74\x1d\x16\x08\x04\x7a\ \x45\x55\xf5\xc8\xa0\x6d\x74\xc2\xd4\x73\xf7\x21\xbe\x73\x51\x95\ \x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc\x2e\x03\ \xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf\x3e\xbf\xd2\x60\xb5\xdb\ \xed\x80\xf8\x79\xe4\x3e\xc4\x5e\xab\xb4\xb9\x88\x2f\x86\x80\x27\ \xd3\xc0\x67\xf9\x8e\x19\xf5\x60\xd7\x5e\x33\xba\x76\xda\x73\xee\ \x68\xd8\xc7\xc7\x47\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\ \xf6\x2e\xe7\x96\x37\xf7\x77\x73\x61\xd8\xbd\xe8\x5e\x80\x2f\x66\ \x9a\xa0\x86\xdf\xa9\x36\x42\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\ \xe7\x1a\x8a\x98\x2d\x7e\xfe\x6d\x97\x54\x1a\x6b\x5f\x5f\x1f\xb8\ \xd0\xd1\x73\x07\x62\x72\x15\x56\x4e\xc4\x87\x97\xd4\x8c\x30\x14\ \xe9\x15\xb7\x1e\x38\x1c\x0e\x40\xa4\xd6\x19\x31\x9e\x85\x9b\x05\ \x7e\x6d\xa9\x25\x1a\x5b\x97\xd9\x0c\xe6\x2e\x0a\xf3\x24\x14\xdf\ \x36\x8e\x7b\xbd\x1e\xd1\xcd\x42\xc8\x09\x6f\xa9\x04\x3c\xd1\xbd\ \x56\xab\x15\x10\x77\x7f\x1b\x84\xf3\x92\x5c\xbb\x52\xa9\x84\xfa\ \xfa\x7a\x30\x99\x4c\x0c\x75\xdf\x35\xc1\x51\xb1\x64\x18\xc9\x51\ \x44\x3e\xb6\x76\xcc\xb4\x40\x4f\x93\x5f\x7e\xd3\xd6\xdf\xdf\x0f\ \x32\x99\x0c\x44\x22\x11\xa8\x54\x2a\x90\x4a\xa5\xa0\xd1\x68\x20\ \x4b\x5b\x39\xbe\xe9\x95\xe0\x1f\xb8\x53\xaf\x79\x2c\xf3\x00\x97\ \x8e\x22\x9e\xc7\x86\xe6\x53\x29\x19\xf6\x82\x82\x02\xe6\xe2\xa0\ \xa0\x20\xe0\xf1\x78\x60\xb1\x58\x40\x5b\x5e\x01\xfb\xcf\x26\x0c\ \x2d\xa6\x53\xce\x67\x94\xcf\x09\x4c\x83\xe2\x5b\x7b\xe6\xc2\x60\ \x9a\xb2\x14\x14\x0a\x05\x88\xc5\x62\xc8\xcc\xcc\x84\xa2\xa2\x22\ \x50\xab\xd5\xd0\xd9\xd9\xc9\x60\xec\xfe\xc9\xb9\xc9\xdb\xa7\x75\ \x2e\xb7\xcf\x4b\x80\xae\xb7\xd8\x29\x70\x0e\xc0\x6a\x97\xac\x78\ \x88\xca\x7f\x82\xe2\x29\x89\x0e\x3e\x97\x2b\x21\x5b\x96\x0f\x07\ \x63\xe3\x47\x84\x1f\x26\xd8\x92\x72\x64\x8e\x6f\x1a\xbf\x07\xa3\ \xd1\x08\x2d\xad\x2d\xf0\xcb\xc0\x20\x1c\x38\xf1\xbe\x05\xb3\x62\ \xc1\x04\x5c\x69\x84\x85\x85\x84\x46\xdc\x26\xe7\x32\xac\x2c\xcf\ \x33\xb5\x13\xec\x3b\xe3\xba\xd3\x33\xaf\x82\xe5\xfe\x7a\x89\x06\ \x9e\xde\xfc\x62\x1b\xf7\x3c\x92\x8d\x7b\x66\xab\x4f\x5b\xca\x35\ \xed\x58\x43\x43\x3d\x34\x34\x34\x80\xa5\xb7\x17\x32\x14\xc5\xc3\ \xf3\xe9\xc0\x65\x3c\x92\xe5\x28\x9e\x36\x5d\xe5\x9c\x2a\x32\x78\ \x7d\xf4\x83\x2e\x5a\x6c\x12\x31\x0c\x1b\x25\xea\x71\xf7\x2f\xcb\ \x27\xef\x05\x87\x5f\xfe\xd3\xe4\x44\x0b\x4c\x68\xf4\xc9\x3e\x75\ \x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x96\x31\xae\x81\x09\ \x66\xf1\x36\x6d\x38\x68\x3c\x49\x3a\x3a\x65\xf8\x62\x81\x83\x44\ \xbd\x57\x43\xb6\x0a\x5e\x9b\x2a\xc3\x94\x5c\xb0\x42\x0f\xab\x24\ \xb4\x04\x9f\x4a\xaa\x9b\x43\x37\x31\x28\xd4\x4f\xf2\x0a\xc7\x74\ \x3a\x1d\xd4\xd6\xd6\x82\xc9\x7c\xdb\xb9\x61\x9b\xf7\x5f\xea\x62\ \xb2\xe5\x7e\x9c\x75\x1f\x0d\xf3\xb2\xd4\x4e\xf2\xf6\xb1\xeb\x2e\ \xb6\xae\x94\xc3\x90\x6c\x97\x55\xc1\x4b\x57\xab\x80\x9c\x4d\x6e\ \x5a\xd0\x1c\x49\xbd\xb1\xe7\x88\xb0\xef\xca\x57\xc5\x50\x5a\x5a\ \x0a\x1d\x3f\xf6\x4c\x04\x06\x87\x74\x3c\xaa\x0b\xc2\x84\x46\x8d\ \x07\xc8\x6f\x02\xd9\xf9\xaa\x7e\x9a\xf1\x30\x46\x8e\x36\x20\xaf\ \xbc\x4a\x78\x43\x69\x00\x92\x28\x1d\x98\xcd\x95\xb3\x79\xc3\x7d\ \x3d\xbf\xf9\x44\x6a\xa6\x5d\x2e\x97\x43\x53\x4b\x2b\x44\x1c\x7b\ \xf7\xce\xf4\x14\x25\xae\xf1\x8a\xf5\x77\x9c\xf5\x70\x02\xc2\xd9\ \x0f\x89\xd1\x81\x03\x4f\x8e\xf7\xdc\xd2\x69\xe7\xf3\xdf\x75\xfc\ \x6f\x14\x2e\x36\xd2\xef\xd8\x17\x69\x49\xbe\x2c\x9d\xc8\xd3\x96\ \x3b\xa7\x0f\x31\x8c\x25\xc6\xdf\x9f\xba\x77\x5f\x71\x35\xa0\x41\ \x6c\xb5\x08\x8c\xf9\x94\xf1\xe0\xf0\x33\x4b\x9a\x7c\x68\x13\x5a\ \xbd\xce\xa3\xd9\x6b\x4f\x48\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\ \xf9\x2f\xee\xb9\x49\x6e\x00\xf6\x7b\x3e\xed\xf7\x08\x1e\x2a\x3e\ \x5d\xe5\x58\xaa\xf1\x47\x5a\xf5\xb6\x59\x0b\x11\x1d\xb3\x43\xc9\ \x91\x38\x09\x39\xf9\xa9\x96\x21\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\ \x37\xfc\x4f\x13\xf8\x1d\xe7\x87\x19\xb9\x44\xc3\x01\xcf\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xa3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x35\x49\x44\x41\x54\x58\xc3\xe5\ \x97\xcd\x8f\x54\x45\x14\xc5\x7f\xb7\xea\xd6\x7b\xaf\xdb\x6e\xc7\ \xf9\x40\x9d\x89\x46\x4d\x34\x99\x44\x8d\x1a\x48\x98\xc4\x8c\x1f\ \x1b\xfe\x02\x4c\x5c\xf1\x07\x18\x16\x2e\x4d\x5c\x6b\x58\xc3\x8e\ \xc4\x8d\x1b\x17\xce\x82\x68\x74\x41\x5c\x18\x0d\xe2\xc4\xc6\x00\ \x3d\x60\x50\x51\x19\x60\x02\xa2\x0e\x0c\x83\xd3\xfd\x5e\xf7\x94\ \x8b\xaa\xee\xf9\x60\xe6\x0d\x84\x51\x16\x56\x52\xa9\xce\x7b\xb7\ \xeb\x9e\x3a\xf7\xd4\xa9\x7a\xea\xbd\xe7\x7e\x36\xe5\x3e\xb7\x3e\ \x80\x5d\xbb\x76\xbd\x03\xec\xfd\x8f\xf2\x4e\x35\x1a\x8d\x03\xeb\ \x19\xd8\xbb\xef\xbd\xa3\x3b\x1f\x1f\x76\x00\x9c\x3c\x3a\xcf\xcc\ \x97\x37\x58\x9c\xef\xdc\x53\xa6\xda\xa0\xf2\xdc\x6b\x03\xbc\xb8\ \x67\x10\x80\x8b\x7f\x16\x7c\xf8\xee\x1e\x80\xdb\x00\x70\xfc\xec\ \x1c\xdf\x3f\x30\x04\x78\x2e\xfd\xb8\xc0\xfe\xb7\xce\x6f\xcb\x72\ \x0f\x1d\x79\x9a\x0b\x23\x96\xd3\x9f\x1f\x64\xfc\xd5\x7d\x9b\x6b\ \x40\x45\xb0\x16\x40\x78\x70\x2c\x23\xcb\xb2\x6d\x01\x30\x30\x96\ \x61\x8d\x50\x1b\x7c\x14\x23\x25\x22\x14\x2b\xd8\x18\x91\xd5\x95\ \x73\xe7\xce\x83\x2a\xb8\x04\xd2\x14\xb2\x0c\xd2\x2c\x8c\x49\x0a\ \x49\x12\xde\x77\x3a\x90\xe7\x90\xb7\xa1\xd5\x82\x76\x2b\x8e\x6d\ \x28\x72\xb2\xfa\x38\xd6\x0a\xe3\xaf\xbc\x49\x6b\xf1\xfa\xe6\x00\ \xac\x15\xac\x15\x04\xb0\x46\xd8\xbd\x7b\xe7\x16\x6b\xeb\x86\xae\ \x80\x5a\xa8\x56\x81\xea\x6d\x51\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\ \x84\x01\x67\x05\x35\x82\x08\xa8\x0a\x95\x2c\xc3\x23\x20\x1e\x08\ \xc0\xf0\x1e\x2f\x02\xde\x23\x12\x26\x15\x7c\x88\x23\xc4\x21\x1e\ \x3c\x21\x5e\x40\x4d\x58\x18\x40\xd7\x4a\x89\x06\xac\xa0\xda\x63\ \x00\x9a\x33\xbf\x05\x8a\x53\x07\x69\x02\x95\x04\xb2\x34\xf6\x04\ \x12\x07\x4e\xa1\xe8\x40\x5e\x40\x2b\x8f\xbd\x05\x4b\x39\xb4\x73\ \xc8\x0b\x54\x87\x71\x3d\x00\x2a\xe5\x25\x70\x31\x40\xd5\x30\x39\ \xf9\xd2\xd6\x0a\xf3\x3e\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8\x27\x61\ \x61\xbd\x1c\x25\x25\x20\x00\xf0\x81\x8d\x34\x4d\xa3\x3a\xc3\xb3\ \x98\x11\x89\x6c\x07\xda\x63\x09\x56\x98\x5f\x29\x46\xfc\x61\xcd\ \x72\x7f\x61\x1d\x2d\xd1\x80\x3a\x09\x54\x49\x18\x4f\x34\x2f\xe0\ \x9d\x85\xc4\x21\x89\xc3\x67\x09\x92\x69\xd8\x11\x89\xe2\x13\x87\ \x58\x8b\xef\x76\x91\xbc\x80\xbc\x03\xed\x02\xdf\x6a\x23\xed\x02\ \xf2\x02\x9f\x77\x50\x1d\x45\xd5\x20\x78\x3a\xeb\x54\x78\x9b\x06\ \x9c\x33\x78\x0f\x03\x8f\x24\xbc\xfe\xf2\xf3\x77\x68\xe8\x36\x68\ \xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04\x52\x5e\x82\x44\x4d\x5f\x84\ \x8f\x0d\xa5\x38\xe7\xb6\xc5\x88\x9e\x18\x4b\xb9\x76\xb3\x03\x08\ \x9d\x52\x11\xaa\x90\xb8\x50\xef\x5a\xc5\x30\x7d\xb1\xcb\x40\xc5\ \xb0\x0e\xf4\x26\xad\x57\xf9\x55\x2e\xe1\xe1\xc6\xd2\x32\xf5\xcc\ \x70\x7d\xc9\x84\x2d\xe9\x4a\x19\x10\x9c\x1a\xc0\x73\xe5\x66\x97\ \x2b\x37\xbb\xac\x51\x57\x3f\xd7\xaa\x64\x7e\xc5\x27\xa2\x29\xac\ \x05\x15\xc3\x9c\x0b\xb5\x77\xa6\x6c\x17\xa8\xc1\xa9\x20\xc8\x1a\ \x35\xaf\x9b\x35\x1a\x8f\x59\x31\x9e\xfe\x7b\xe9\xef\x14\x00\xf1\ \x82\xef\x9b\x58\x30\x2b\x57\x56\x02\x55\x21\xd1\x90\xfc\xe7\x53\ \xdf\xf2\xeb\x99\x13\x2c\x2d\xde\xb8\xa7\xfa\x57\x6a\x03\x3c\xf5\ \xec\x4e\x9e\x79\x61\x02\x0f\xa8\x33\x5b\x31\x10\x03\x7c\x87\xf7\ \xf7\xbf\xc1\xc2\xc2\x02\xb7\x6e\xdd\xa2\x28\x0a\x44\x04\x6b\x2d\ \xd6\x5a\x54\x15\x55\xc5\x39\x87\xaa\x62\xad\xc5\x98\xf0\xdf\xe5\ \xe5\x65\xf2\x3c\xef\xf7\x23\xcd\xf9\xb8\xf2\x2d\x18\x70\x56\x50\ \x17\x18\xdc\x31\x3a\xb6\x72\x4f\x38\x7e\x9c\xe9\xe9\x69\x8c\x31\ \x78\xef\x99\x98\x98\x60\x72\x72\xf2\x8e\x59\xd8\x31\x3a\xd6\xdf\ \x86\xae\xd4\x09\x55\x70\x36\xac\xa2\x56\xaf\xf7\x6b\x39\x33\x33\ \xc3\xd0\xd0\x10\xd6\x5a\xbc\xf7\x34\x9b\xcd\xbb\x02\x50\xab\xd7\ \x70\xd1\x88\xb4\xd4\x88\x14\x9c\x0b\x27\x5c\xa0\x2a\x00\xa8\x56\ \xab\x64\x59\xd6\xa7\xb8\x37\xde\x69\x73\x1a\xa9\x17\x41\x4b\xad\ \x38\x1e\xc7\xbd\x23\xb4\xd7\x8c\x31\x88\x44\xdf\x8f\x3a\xb8\xab\ \x9b\xaf\x35\xa8\x0d\xf3\xf6\x18\x2e\x3d\x8e\x83\x29\x6d\xe3\xd5\ \xdb\x12\xa9\xf7\xe5\x56\x6c\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\ \xdb\x02\xe0\xa1\x91\x61\xd4\xc2\xb5\x2b\x97\x59\x9c\xbf\xbe\x05\ \x03\x36\xf8\xc0\x60\xad\x02\x0b\xdb\xc3\xc0\x50\xad\xc2\xec\xc5\ \x4b\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa6\x36\x04\x60\x24\x5e\ \x4a\x05\x12\x0b\xed\x91\x27\xa9\x3d\x0c\x6f\x1f\x38\xc8\x66\xc7\ \x81\x27\x3a\xf1\x2a\xe7\x35\x1e\x32\x81\x14\x28\xba\x70\xf9\xea\ \x55\xce\x34\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1f\x4e\x1d\x02\x0e\x6f\ \x08\xe0\xb3\x8f\x3e\xe0\xa7\xd3\x27\x57\x99\xe9\xda\xa3\x86\x55\ \xe6\xbb\x1e\x04\x1b\x3c\x5f\x1d\x6f\x7c\x77\xee\x8f\xd9\x5f\x0e\ \x01\x87\x1b\x8d\xc6\x5f\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5\x73\ \x6c\x7d\xf2\x35\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1\x3f\x4d\xf0\ \x4b\xb9\xe8\x46\x89\xaf\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x6d\ \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\x06\x34\x49\x44\x41\x54\x78\x5e\xad\x97\x5b\x6c\x54\xc7\ \x1d\xc6\x7f\x73\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\ \x69\x63\x24\x42\x4a\x21\x22\xa1\x2d\x95\x62\xa5\x2f\xee\x4b\x68\ \x2b\x95\xa6\x55\xa5\xc6\x60\x55\xaa\xda\xb4\xaa\xfa\x56\x09\x55\ \xca\x03\x94\x27\xda\x07\x84\x14\x29\xad\xc4\x8b\xa5\x52\x83\x79\ \x08\xc5\x18\x39\x0e\x69\xd3\x84\x9a\x9b\x63\x6a\xec\xb2\x04\x1b\ \x3b\xbb\xf6\x7a\x8f\xbd\xbb\xde\xb3\x67\xa6\xc3\x68\x85\xe5\x72\ \x6c\x88\xc9\x27\x7d\xfa\x9f\x9d\x87\xfd\x7e\xf3\x9f\x99\x73\x11\ \x4a\x29\x82\x24\x84\x78\x05\x78\x9e\xc7\x6b\x48\x29\xf5\x77\xd6\ \x28\x27\x20\xb8\x43\xbb\x01\x68\x97\x52\xbe\xc6\x63\x64\x59\xd6\ \x07\x1a\xf6\xbb\x40\xb7\x06\x39\xff\x14\x00\x26\xfc\xb7\xed\xf5\ \xe2\x60\x5d\x44\x44\x6e\xce\x89\x8a\x2b\x57\xae\x50\x5d\x53\x8d\ \x40\x00\xa0\x50\x08\x65\x28\x41\x29\x66\xd3\x69\x5e\xa9\x17\x2f\ \xbc\xb4\x4e\x6c\x3b\xf1\x1f\xb9\x47\x83\x7c\x5b\x43\x4c\x3c\x4d\ \x07\xf6\xff\x60\x8b\xdd\x2c\x25\xf8\x4a\x32\x3c\x3c\x4c\x65\x65\ \x25\x2b\xc9\x75\x5d\x1e\xc0\x6e\xa9\xb0\x22\x1b\xa2\x2a\x72\x3f\ \xa7\xea\x81\xb5\x03\x08\x2d\x05\x48\xa1\x0d\xf4\x5d\xbc\x48\x2e\ \x97\xc3\x2f\x16\x51\x4a\x91\xcf\xe7\x59\x5c\x5c\xa4\x50\x28\x50\ \xd4\x63\xb5\xb5\xb5\x94\x01\x58\x80\xf8\x82\xf6\x80\x01\x00\x36\ \x44\x05\x1f\x0f\xbc\x4b\x3e\x3b\x8f\x85\x44\x95\x32\xe2\xb6\xc4\ \xb6\x04\x21\x21\x70\x3e\x53\x6c\x8c\x3b\x80\x44\x2a\x04\xf0\x9c\ \x10\x02\xe0\xcb\x40\x05\x50\x0f\x34\x60\xc4\x48\x69\x9f\x24\x02\ \x01\x4e\x9c\x38\x21\x00\x81\x05\xd2\x87\x96\x96\x67\x09\x65\x6d\ \x14\xe5\x28\xa5\xb4\x41\x08\x58\x57\x19\x25\xe2\xd8\x44\x42\x16\ \xc3\x13\x73\x5c\xbc\x3d\x41\xf7\x58\x8e\x5c\x24\xbe\xa9\xbd\x7d\ \xf7\xef\x2d\xcb\x5a\xdc\xb1\x63\x47\x59\x55\x55\x95\xd3\xd8\xd8\ \x18\x7e\xe0\x86\x86\x86\xd0\xa5\x4b\x97\xdc\xae\xae\xae\x08\xf0\ \xd6\xaa\x1d\x00\x13\x44\x55\x2c\xc2\x73\xd5\x31\xf2\x9e\x4f\xa1\ \x28\x91\x4a\x61\x09\x41\xd8\xb1\x88\x86\x6c\xe6\x72\x05\x12\xa2\ \x8e\x3f\x9f\xff\x2b\x0d\x4d\x1b\x01\x22\xc0\x66\x96\x84\xef\xfb\ \x78\x9e\x47\x75\x75\xb5\x9e\x50\x4b\xf4\xea\xd5\xab\x87\x84\x10\ \x28\xa5\xde\x5a\x11\xc0\xb2\x41\x00\xb6\x2d\x90\xda\xb6\x14\x38\ \x08\xa4\x12\x58\xc2\x8c\x1b\x8f\x4c\xb9\xec\x7b\xf5\x3b\xd4\x37\ \x36\x11\x7c\x2f\xc1\x84\x67\x32\x19\xca\xcb\xcb\xcd\x66\x3e\x76\ \xec\xd8\x26\xbd\x7f\x0e\x2e\x41\x2c\x01\xd0\xd9\xd9\xa9\x0e\x1d\ \x3a\xa4\x6c\x21\x08\x59\x10\xb6\x2d\x1c\xc7\xc6\x42\x50\xb4\xcd\ \x1a\x1b\x00\xc7\xb2\x88\x38\x96\xae\x02\x60\x59\x78\x10\xc0\xdc\ \xdc\x1c\x35\x35\x35\x06\x20\x1a\x8d\x72\xe4\xc8\x91\xcd\xc0\x03\ \x88\x1b\x1a\xa2\xc7\x62\xb9\xb0\x6d\x74\x30\x66\x8d\xcb\x23\x36\ \xb1\xa8\xa3\xc7\x2c\x32\x8b\x1e\x93\x99\x1c\x63\xa9\x79\xee\xcc\ \x2e\xe8\xdf\x45\x72\xf9\x3c\xab\xc8\x2c\x41\x36\x9b\x35\xa7\x66\ \xe9\xff\x6d\x0e\x1c\x38\xb0\x1e\xe8\x00\x58\x06\xa0\xb4\x74\x16\ \x8e\x0d\xe1\x90\xc0\x53\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\ \xa6\x7d\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb\x3a\x0d\x2f\xb4\x73\xfb\ \xce\x24\xfd\xfd\xfd\x24\x93\x49\x94\x52\xe6\xfa\xf8\xf1\xe3\xe8\ \xba\xac\x33\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c\x3e\x7c\x98\xde\xde\ \x5e\x12\x89\x84\x04\x2c\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\ \x94\x4f\x6b\xc7\xcf\xf8\xe6\x2f\xdf\x26\xf6\xf5\x37\x99\x7c\xa6\ \x83\x6b\xfe\x2e\xae\xf1\x2d\x64\x6b\x17\xad\x7b\x7f\x4e\x5e\x56\ \x73\xfa\x6f\x67\xd1\x77\x4d\xee\xdc\x9d\xe2\x1b\xaf\x76\x72\xfd\ \xfa\x75\x03\xa0\x67\x6b\xd6\x3f\x16\x8b\x99\xeb\x78\x3c\x8e\xe3\ \x38\x25\x38\x04\xc0\x23\x00\x96\x25\x98\xca\x41\x3a\xde\xca\xfe\ \xdf\xbd\x4d\xd5\xae\xd7\x28\x84\x62\x08\xdb\x42\x59\x82\x6c\x41\ \x72\x7f\x66\x91\x4f\xee\x66\x18\xb8\xea\x72\xfa\x1f\x61\x64\xd5\ \x5e\xae\x8f\xdc\x67\x32\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\ \xcd\xcd\xcd\xb4\xb5\xb5\x19\x37\x35\x35\xa1\xa1\x14\x20\x83\x1f\ \x46\x16\xdc\x71\x15\xdf\xff\xe9\x6f\xa8\x6c\xd8\x48\xe2\xec\x3b\ \x4c\x8f\x5e\xc3\x89\x94\xb1\xb5\x79\x07\x9b\x5b\xb6\xf3\x49\x79\ \x25\x63\x09\x97\xcf\x66\xf2\xdc\x9d\xce\x32\xa1\xed\x88\x0d\x4c\ \x27\xe7\xd8\xb7\x2b\xca\xfa\x25\x00\x33\x7b\x3d\x6b\xea\xea\xea\ \x00\xcc\x75\x2a\x95\x32\x00\x4a\x2b\x10\xa0\xb9\x5a\x70\xe1\x9d\ \x63\x28\x2c\xca\xe6\xc6\xd9\x10\x8f\x52\x94\x92\x7b\xc3\x7d\x24\ \x65\x05\xdb\xda\x7f\x4c\x4d\xdb\xcb\x7c\x3c\x9c\x66\xd2\x5f\xc0\ \xcd\x78\x2c\xcc\x6b\x2f\x78\x20\x00\xb5\x74\x3a\x42\xa1\x90\x09\ \x2d\xdd\xea\x1f\x8e\x01\x2a\xf8\x3e\x60\xc1\xc6\xb8\xa0\x50\x1c\ \x23\x1c\x8b\x53\xb7\xa5\x96\x92\x78\x76\x7d\x05\xe9\xac\xc7\x68\ \xff\x9f\x98\xae\xbc\x4c\xcb\xf6\x83\xb8\x0b\x61\xbc\x82\xa4\x58\ \x94\x78\xda\x21\xc7\x42\x2d\xaa\x80\xe3\x69\xa0\x96\xd5\x15\x01\ \x00\xd6\xc7\x43\x84\xca\x23\xfc\xbf\x6a\x63\x21\x9e\xa9\x0c\x73\ \xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb9\x32\x47\x03\x28\x03\ \x61\x6b\x00\x16\x4b\x21\xa5\x1c\x25\x30\x2a\x15\xa4\x5c\x05\x40\ \x58\xa5\x2a\xcc\xf5\x23\xfa\x70\x6c\x86\xf1\x59\x8f\xef\xfd\xfa\ \x8f\xdc\xca\xd4\xe0\x44\x5c\xa2\x11\x1b\xcf\x93\x14\x3d\x07\xd3\ \x01\xa5\x90\x52\xf2\x50\x6a\x59\x01\x56\x05\x10\x08\x4c\x0d\x04\ \x18\x9d\x76\xf9\xd5\x5f\x86\x18\xbd\xb7\x80\x3d\x93\x67\xd3\xba\ \x32\xf2\x79\x5f\xbb\x68\xea\xce\xaf\xd4\x70\xf9\xdd\xe0\x25\x00\ \x9e\x78\x09\x4c\xb8\x10\x3c\xa2\xd6\x2f\x55\xf2\x87\x1f\x3e\xcf\ \xf5\x4f\x33\x44\x1b\xb7\xb1\xf3\xc5\x97\x59\x12\x5c\x4e\x60\x8e\ \xdb\x53\x01\x28\xc0\x12\x25\x00\x6d\xd4\x52\x7d\xb1\xb5\x96\xdd\ \x5b\xe2\x74\xbf\x97\xa5\x6a\xf7\x57\xf9\xd1\x1b\x6f\x10\xa0\xb5\ \x03\x98\xb5\x37\xd5\xd8\x08\x01\xd2\xcb\x53\x70\x53\x78\xf3\x33\ \x14\xb3\x69\x0a\x19\x1f\x25\xfd\xd5\x82\xd6\x08\xf0\xf0\x29\xe7\ \xe3\xe7\x33\x14\xe6\x75\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc1\x33\ \x7d\xfa\xd7\x72\x8c\xb2\x13\x37\x03\xc7\x01\xb2\x1e\xfe\xad\x94\ \xcc\x6f\xf7\x44\x54\x03\xd8\x5f\x70\x07\x08\x92\x09\xfd\xd7\x3d\ \x3f\xfd\x7e\x42\xa6\xcf\xdf\xf6\xef\x02\xee\x76\x3b\xfc\x92\x06\ \xa8\xe3\x73\xca\x75\x5d\x1f\x70\x57\xed\x00\x40\x32\xab\x0a\x1f\ \x7e\x2a\xd3\xbd\xb7\xfc\xd4\xcd\x69\x39\x05\xf4\x03\x97\x74\x68\ \xbf\x10\xa2\xd3\xb6\xed\xaf\x7d\x9e\x25\x58\x58\x58\xf0\x07\x06\ \x06\xd2\x27\x4f\x9e\x9c\x06\xba\x83\x00\x3e\x1a\x49\xca\xad\xe3\ \xb3\x2a\xd7\x3b\xe2\xa7\x6e\x4c\xcb\xd1\x52\xe8\x59\x1d\x74\x8b\ \x00\x3d\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2\x4e\xcf\xce\xce\ \x9e\x2e\xbd\x1d\xdf\x08\x02\xe8\xee\xea\x29\x00\x8c\x04\x84\x06\ \x85\xaf\x08\x30\x35\x35\x55\xd0\x2f\x22\xa9\x53\xa7\x4e\x25\xc7\ \xc7\xc7\x2f\x03\x67\x81\x7e\x1d\xec\xae\xb8\x09\x4b\xdf\x76\xda\ \x4f\x26\x85\x01\x40\x08\x40\x61\x5a\xfc\xde\xe0\x60\xba\xbb\xbb\ \x3b\xa5\xdf\x8a\xcc\x24\xd0\x5e\xed\x73\xcd\x61\xed\x9a\x77\x33\ \x6e\x11\x60\x70\xf0\xfd\x74\x5f\x5f\x5f\xfa\xcc\x99\x33\xa6\xc5\ \xa5\xd0\x8f\x78\x02\x89\xb5\x9e\x63\x21\x44\x18\x78\x13\xd8\x4f\ \x69\x73\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa\x2a\x5f\xf2\xd8\x15\x9d\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x19\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x07\xab\x49\x44\x41\x54\x58\xc3\xad\ \x57\x5b\x50\x93\x67\x1a\xf6\xca\xce\xec\xcc\xf6\x62\x2f\xbc\xd9\ \xe9\xce\xec\x6e\xbd\xda\xd9\x9b\xb5\xce\xba\x3b\x7b\xb0\xad\xcc\ \x7a\xb1\xce\xce\x3a\xb3\x76\x54\x70\x75\xdb\xe2\x81\xd6\xb6\x54\ \x04\xbb\xa5\x20\x6d\xc1\x82\x06\x08\x07\x51\x42\x80\x80\x80\x02\ \x21\x81\x10\x92\x40\x48\x10\x73\x24\x21\x67\x72\x80\x04\x42\x20\ \x9c\x09\x47\xb5\x54\x78\xf6\xfb\x7e\x13\x16\x30\x58\x8b\x7d\x67\ \x9e\xf9\x2f\x92\xfc\xcf\xfb\x3e\xcf\xfb\xbe\xdf\x97\x5d\x00\x76\ \xfd\x98\x20\xf1\x0b\x82\x14\x02\x03\xc1\x75\x82\x03\xcf\xfd\xfe\ \x8f\x48\xbc\x9b\x20\xe1\x57\xaf\xef\xb5\x2a\x8c\xd6\x65\xdb\x02\ \x60\x19\x1e\x5b\x09\x27\xf1\x33\xfa\x19\x81\x22\xfc\xdc\x3e\x76\ \x48\x7e\x8a\xa0\xb9\xb6\x59\x1c\x32\xcf\xad\x42\x39\xfe\x1d\x44\ \xf6\x51\xd8\xc7\xe6\xe8\x87\x86\x3d\x7b\xf6\x58\x53\x52\xae\x2c\ \xca\x3a\x3a\x10\x4e\xe2\xe5\x49\xc3\xc4\x31\x04\xb7\x3e\x49\xf9\ \x2c\x60\x9b\x5d\x59\x53\x4d\x03\x4d\xb6\x11\x34\xeb\xfb\x20\x31\ \x79\x60\x19\x9d\xc5\xbb\xef\xbe\x3f\xc5\xab\xbe\x83\xf1\x89\x29\ \x4c\x4f\xcf\xae\x92\xef\xd7\xbc\x74\x02\x11\x9f\x0f\xbe\x1d\xe3\ \xb2\x04\x43\x4f\xb4\x33\x40\x8b\x7b\x06\xcd\x3d\x2e\x34\xeb\xec\ \xa8\x57\xf6\x20\x87\x53\x85\x32\x5e\x35\x43\xbc\xb0\xf4\x90\x81\ \xc1\x60\x5c\x26\xbf\x4b\x7c\xe1\x04\x48\x1c\x24\x38\x41\xfd\xdd\ \xea\x73\x27\xf1\xb9\x27\x04\x48\x87\x97\xc1\xd7\xbb\x20\x22\x55\ \x37\xdc\x37\xa2\xb8\x4e\x88\x2c\x56\x3e\xcc\x56\xdb\x3a\x71\x04\ \x2c\x16\x6b\x2c\xfc\xce\xe7\x27\x10\x91\x36\x93\x95\x3f\x46\x7d\ \xa5\xfe\x12\xc4\x6f\xf4\x59\x31\xb6\x02\x7e\xef\x20\x5a\x7b\x9c\ \xe0\x3f\x30\xa1\x4c\x28\x43\x46\x0e\x1b\xb2\x0e\xf9\x26\xd2\xf9\ \xc5\x65\xcc\x2d\x2c\x21\x34\xbf\x88\xbd\x7b\xf7\x5a\xc9\x3b\x7e\ \xba\x6d\x02\x24\x7e\x43\x90\x46\x3d\x35\x13\x69\x75\xb3\x80\xd2\ \x3f\x0f\xcb\xc4\xe2\x9a\x50\xa1\x5a\xb4\x6c\xf1\x59\xa0\xb6\xa0\ \xa6\x5d\x8d\x2f\xb2\x73\x71\xb7\x9e\xff\x0c\x31\x25\x9d\x09\xcd\ \x63\x62\x6a\x06\x83\x43\x81\x27\xe4\xdd\xbc\x2d\xd3\xb0\x3b\x92\ \x03\x33\x26\xd4\x53\xb5\xd3\xfb\x58\x4f\x88\xc5\x03\x21\x88\x2c\ \x43\x50\xba\x46\xd0\xed\x09\x42\xe5\x9b\x42\x9b\x73\xfc\xa9\xcf\ \x5a\x1b\xee\x2a\x74\xc8\xbc\xc9\x45\x09\xa7\x6c\x93\xcf\x9b\x88\ \x27\xa7\x11\x18\x1d\xc3\x80\x6f\x08\xa2\xd6\xd6\x25\xc2\x51\xdb\ \x28\x12\x87\xc6\x1f\xaf\x82\x2f\x62\x94\x4d\x89\x24\x90\x22\xea\ \x52\x2d\x9a\x42\xab\xe8\x18\x79\x04\xa1\xc5\xcf\x10\x53\x74\xf6\ \x0d\xa3\xd3\xe1\x87\xd4\x3c\x80\x16\xbd\x03\x0d\x5d\x06\x14\xd5\ \x0a\x90\x91\x95\x0d\x2f\x79\xf1\xc6\xaa\xa9\xd4\xb3\x73\x0b\x4c\ \xc5\x94\xd8\xdd\xef\x85\xc9\x62\x05\xb7\xbc\x12\xa5\xe5\x95\x4b\ \x13\xf3\xcb\xab\x23\x0f\x01\x37\xd9\x11\xe6\xd9\x15\x84\x97\x15\ \x13\x06\xcb\x3c\xd0\x68\xf2\xa3\xdd\xee\x5f\x27\x96\x3b\x86\x20\ \xb3\x78\xd7\x7d\xe6\x08\xa4\xf8\x3c\x33\x1b\x2a\x8d\x36\xaa\xdc\ \x53\x33\x21\x8c\x8e\x8d\x33\x15\xd3\x26\xe4\x37\x09\xf1\xc1\xc5\ \x8f\x51\x73\xaf\x01\xbe\x65\x60\xfc\x11\xa0\x23\x13\x23\xf2\xce\ \xa1\xbe\x5d\xb9\xb8\x51\x01\x83\x81\x74\x74\x4d\xa7\x1e\x0a\x67\ \x80\xa9\xb8\xdd\xea\x83\xd8\xe8\x42\x93\xca\xcc\xf8\x7c\xe5\xcb\ \x2c\x88\xda\x24\x51\x89\xa7\x67\xe7\x18\x1b\x86\x86\x47\x60\x77\ \x38\x49\x82\x3a\x24\x7c\xf8\x21\xae\xb3\x0b\xe1\x99\x5c\x80\x6f\ \x09\xd0\x90\xde\xe1\x0f\x2c\x81\xab\x1f\xc4\x7d\xef\x04\xdd\x07\ \x1d\x61\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6\x21\x48\xcc\xfd\x4f\ \x7d\xee\xd4\x22\x9d\x55\x84\xaa\x9a\xba\x4d\x3e\x47\xe4\x8e\xf8\ \x3c\x3c\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2\x62\x9c\x7e\x2f\ \x1e\x3d\x03\x01\xf4\x2f\x02\x83\x84\xbc\xc5\xff\x2d\xee\x3a\x43\ \x28\x51\x91\xf7\xf6\x05\xf1\x4e\xdc\xbf\x7d\x84\x33\x69\xe3\x20\ \x18\xf4\x33\xab\xe0\xc9\x54\x68\x35\x38\xd1\xd8\xdd\x0b\x9e\x58\ \x89\xac\x5c\xf6\x33\x3e\x47\xaa\x9e\x9c\x9e\x65\xe4\xee\xf7\x0e\ \xa2\xd7\x6c\x41\x43\x03\x1f\x27\x62\xe3\x20\xe9\xd6\xc0\x45\xcf\ \x01\x52\x90\x24\xb8\x86\xb2\x9e\x00\x6e\xb4\xdb\x50\xd1\x1b\x44\ \x85\xce\x8b\x4a\x7e\x0b\x6d\xbe\x9b\x5b\x27\xd1\xa0\x99\xf8\x16\ \x65\x22\x05\xee\x29\xf4\x28\x13\xc8\x90\x78\x35\x0b\x1a\xad\x3e\ \xaa\xdc\x63\x13\x93\xf0\x0d\x0d\xc3\x66\xef\x83\xb4\x5d\x8e\xc4\ \x4b\x97\x90\xc3\xca\xc3\xd4\x63\xc0\x4e\x7a\x49\x31\x4e\xfa\x89\ \x94\x7f\x5b\x3b\x84\x7c\x85\x13\x25\x6a\x1f\x4a\xd5\x03\xe8\xf2\ \x30\xa3\x28\x22\xf8\xf9\x33\x09\x74\x8f\x2e\xa1\xa8\xbe\x15\xa5\ \x7c\x09\xb2\x4a\x2a\xf0\xcf\xe3\x71\x51\xe5\xf6\x07\x46\xd1\xe7\ \xf2\x40\xab\x37\x20\xfd\x6a\x06\x92\xbf\x48\x83\xcd\x37\x02\x27\ \xa9\xda\x40\x1a\x4c\xe0\x7b\x88\x52\x9d\x1f\x45\xdd\xfd\x0c\x71\ \x41\x97\x1b\xc5\xdd\x1e\x88\x9c\x41\xfc\xf9\xcd\xb7\x5d\x84\xeb\ \x6c\xb4\x43\xd0\x28\xf7\x4e\x23\xa7\xfc\x1e\xb2\x4b\xab\xf1\x51\ \xea\x57\x48\xfe\x6f\xea\xfa\x58\x51\xb9\x47\x82\xe3\xf0\x0c\xf8\ \x60\x34\x99\x51\xc9\xab\xc2\xfb\x67\xcf\x41\xfe\x40\x03\x3f\xe9\ \x6e\xb2\x8d\x19\xb9\x6f\x69\x06\x19\xd2\x9b\x2a\x2f\x72\xe5\x0e\ \xe4\x75\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca\x29\xc2\x53\ \xb8\xdd\x29\xdc\x2b\x76\x04\x90\x51\xc8\xc5\x95\x6b\x79\x38\x11\ \x9f\x80\x9b\xb7\x6e\x33\x63\x15\x91\xdb\x6a\x73\x40\x22\x6d\xc7\ \x85\x84\x0f\x50\x74\xbb\x0c\xf3\x2b\x80\x9f\x34\x58\xf7\x24\x20\ \x1c\x7c\x84\x4a\xd3\x18\x38\xfa\x61\x86\x9c\x56\xfd\x55\xb3\x1e\ \xac\x0e\x3b\xb8\x3a\x1f\xd9\x21\x1e\x7a\x2f\xe0\x13\xbc\xba\x5d\ \x02\x26\xbe\xc1\x83\x94\x6f\xd8\x38\x9f\x9c\x8a\x03\x7f\x3d\x04\ \x63\xaf\x99\xe9\x6e\x2a\xb7\x46\xd7\x83\xa4\xcb\xc9\x48\xff\x3a\ \x8b\x8c\xd5\x3c\x53\xb5\x71\xf6\xa9\xdc\x35\xf6\x69\x5c\x97\x59\ \x19\xd9\xbf\x6e\x21\xa7\xa0\xd4\x82\x74\xbe\x1a\x57\x9b\x34\x60\ \xc9\xcc\x10\xbb\x82\xf8\xe5\xaf\x5f\xa7\x67\xc0\x3b\xe1\x75\x1f\ \x35\xcc\x35\xdd\x66\x7c\x94\x96\x85\xb8\x73\x17\xf1\x97\x43\x31\ \x4c\xd5\x74\x99\xf0\xaa\xaa\x71\xfa\xf4\x19\x68\xcc\x0e\x8c\x92\ \x2d\x36\x14\x1e\xab\x5a\xc7\x0c\x78\xe6\x71\x70\x0d\x23\x4c\xa3\ \x65\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6\x5e\x94\x74\x39\xd0\x66\xf7\ \xaf\x1e\x3d\x11\x4b\x47\x2e\x6f\xc3\x79\x13\x35\x2c\x5c\x99\x1a\ \xf1\x97\x3e\xc7\xd1\xd8\x33\xf8\x38\x31\x09\x86\x5e\x13\x1a\x9b\ \x04\xf8\xdd\x1b\xfb\x51\x4f\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\ \x93\x60\x2b\x5d\x0c\x39\xf5\xbc\xf0\xbe\x67\xbd\xea\xcc\x16\x3d\ \x4a\x55\x1e\x08\x6d\x01\x94\xd4\xf1\x43\xe1\x65\x53\x40\xf0\xca\ \xf7\x25\x60\x2b\x6e\x6a\xc7\xa9\x84\x44\xc4\x1c\x39\x8a\xdc\x7c\ \x36\x5a\x5a\xc5\x38\x14\x13\x83\x2f\x39\x35\xc8\x14\x6a\x98\xe6\ \xa2\xd5\xd2\x27\xf5\x9a\x7a\x4c\x13\xa1\x49\x64\xb7\x99\x90\xdb\ \x6e\x46\xb9\xda\x8d\x06\xa5\x76\x39\x2c\x39\x3d\xf9\x4e\x13\xec\ \xd9\x72\xd4\x47\x0d\x3b\xab\x46\x88\x63\xff\x39\x8f\xdf\xee\xfb\ \x3d\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17\x70\xa3\xad\x07\x19\ \xc4\x4f\x4a\x14\xe9\x6e\xba\x58\xa8\xef\x2c\xfa\x94\x98\x50\x28\ \xb7\x40\xe9\x0e\x3c\xf9\x57\xec\x29\x2a\x77\x2d\xc1\x67\x04\xfb\ \xb6\xb9\xe4\x44\x8d\xbe\xcc\xb2\x5a\xfc\xe3\xe4\x19\x1c\x3c\xf4\ \x37\xb0\x72\xf3\xb0\xef\xc0\x1f\x50\x20\xd1\x21\x89\x27\x65\x2a\ \xa6\x4b\x85\x3e\xbf\x21\xd5\x46\xe4\x2e\x90\x5b\x21\xb0\x0c\xae\ \xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87\x6f\x3c\xaf\x3c\xe7\x96\x15\ \x35\x9c\x69\x45\xe5\xf8\xfb\xb1\x58\x1c\x3f\x19\x87\x37\xf6\xef\ \xc7\x8d\x3a\x11\x92\xab\xa4\x0c\x21\xed\x70\xea\x35\x55\x21\x8b\ \x34\x5b\xc9\x03\x37\x2a\x34\x6e\xd4\x49\x3a\x17\xc3\x72\x73\x08\ \x8e\x6d\x95\xfb\x87\x24\xe0\x4a\x65\x73\x70\xe4\xf8\x29\x1c\x3e\ \x7c\x98\x8c\x63\x2e\x32\x05\x2a\x5c\x22\xd5\xd3\x5d\x7e\x4d\xdc\ \x0b\x36\xe9\x74\x76\xa7\x1d\x77\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\ \x1a\x95\xfb\x22\xbd\x49\xfd\x80\x0b\x6d\xf4\x04\x32\x4a\x78\x4c\ \x0f\x9c\x4b\x49\xc3\xb5\xa6\x2e\x7c\xc2\x6d\x65\x36\x59\xf1\x83\ \x01\x5c\x97\x9a\xc1\x51\x7b\x20\xf3\x04\xd7\xce\x25\x26\x05\x36\ \xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce\x5e\x4e\x45\x81\ \x58\x85\x78\xf6\x5d\x5c\xa9\x55\x90\xaa\xfb\xc0\x96\xdb\x50\xad\ \x75\xe3\xae\x54\x41\x2f\x10\xca\x0d\x72\xbf\xba\xd3\x6a\xa3\x05\ \xb7\xa2\x51\xf8\x1d\xaf\x43\x8d\x4f\xb9\x2d\x88\xcb\xe6\xe1\x9a\ \x48\x8f\xaa\x1e\x2f\x9a\x35\xe6\xc7\x7f\x7a\xf3\x2d\x57\x78\xac\ \xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5c\x75\x1f\xde\xcb\ \xaf\x45\xb9\x76\x00\x32\x67\x60\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\ \xd2\xa9\xdc\x3b\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9d\x50\ \x0b\x39\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3\x2f\x22\xf7\x0e\ \xff\xda\x6d\x8a\xdd\x61\x99\xd5\x1b\xb6\xd8\x6b\xbb\x5e\x32\xbe\ \x2f\x89\xff\x01\x66\xb9\x5f\xfc\x11\x80\x3d\xcf\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x04\xca\x57\xa7\ \x00\x6e\ \x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\x7c\x5a\x07\ \x00\x63\ \x00\x6f\x00\x70\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0a\xc7\x57\x87\ \x00\x63\ \x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x08\xc8\x58\x67\ \x00\x73\ \x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\xa8\xba\x47\ \x00\x70\ \x00\x61\x00\x73\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\xc1\x59\x87\ \x00\x6f\ \x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x03\x58\ \x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\xdd\ \x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xc5\ \x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x12\x6c\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x08\x96\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/mainwindows/application/application_rc3.py0000644000076500000240000010725412536324427026071 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:44:05 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x03\x54\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xe6\x49\x44\x41\x54\x58\xc3\xd5\ \x97\xcd\x4e\x13\x61\x14\x86\xeb\x35\x94\x95\x7b\x71\xe1\xd2\xc4\ \xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb1\x30\xea\x05\x18\x96\ \x26\x62\x58\xb8\xb0\x91\x58\x20\xd1\x9d\xbf\x89\xa4\x14\xb1\x52\ \xa4\x48\x45\x94\xfe\xd0\x02\x43\xff\xa6\x9d\x19\xa6\x65\x80\xe3\ \x79\x7b\xfa\x85\x51\x4a\x82\xc9\x21\x86\x49\xde\x9c\x33\xa7\xf3\ \xcd\xfb\x9c\xf3\x4d\x9b\x4e\x84\x88\x22\xff\x53\x91\x73\x01\xc0\ \xc7\xd5\x90\x6e\xff\xa5\xfb\xac\xc7\x3d\x3d\x64\x0d\xa9\x02\xf0\ \x31\x32\x3c\x3c\xbc\x6a\x34\x3a\x3a\xba\x19\x56\x3c\x1e\xaf\x26\ \x93\xc9\x56\x3a\x9d\x76\x13\x89\x44\x6b\x60\x60\x20\xcd\x6b\x6e\ \x68\x02\xa4\x38\xd2\xe1\xe1\x71\x99\xba\xef\xb7\xc9\xb2\x2c\xda\ \xdf\xdf\x27\x86\xf1\x78\xcd\x18\xeb\x8a\x1a\x40\x3f\xf3\xb0\x1c\ \xc7\xa5\x4c\x66\xb9\x0b\x14\x04\x01\xc5\x62\xb1\x3a\xaf\x7b\x70\ \x1a\x88\x53\x01\x1c\x1c\x10\x77\x77\xb2\x6c\xdb\xa1\xf9\xf9\xcf\ \x64\x0e\xd7\x75\xe9\xf9\xc4\x44\x17\x42\x05\x00\x26\x7b\xc1\xc9\ \xaa\x37\x1c\x4a\xce\xcd\x53\xf8\x70\x5d\x0f\x8b\x17\x54\x00\x82\ \x10\x40\x67\x4f\x14\xce\xed\xa6\x47\x1f\x67\x66\xe9\xf5\x9b\xb7\ \x14\x9f\x9c\xa4\xa9\xa9\x69\x7a\xf7\xfe\x03\x45\xa3\xd1\x65\x5e\ \x7f\x41\x05\xc0\xef\x10\xed\xb6\x25\x86\x85\x9a\xe3\x05\x94\x5d\ \xcd\xd1\xe4\xf4\x2b\x7a\x32\xfe\x94\x9e\xc5\x5e\xd0\x4c\x62\x0e\ \x8b\x17\x55\x00\xda\x81\x18\xf5\x13\x20\x3c\xff\x90\x6a\xcd\x36\ \x15\x37\xab\x94\x2f\x6e\x53\x89\x63\x8d\xb7\x85\xd7\x7e\x51\x01\ \xf0\x79\xcc\xcd\x5d\x1e\xb5\xc7\x7b\xdb\xee\x9f\x3b\xbe\xe4\x88\ \x5d\xb8\xbd\xee\xe2\x94\xca\x33\xe0\x75\xe4\xc6\x75\x57\x62\xd8\ \x10\x39\xea\xe6\x33\x44\xd4\x01\xa7\x06\xe0\xf4\x3a\xad\x39\x22\ \x98\x98\x68\x72\x80\x98\x6b\x50\x53\x9d\x00\x00\x2a\x2d\xb9\x31\ \xe2\x4e\x53\x8c\x10\x0d\x04\xf2\x6d\xfb\x28\xb6\x7c\x45\x00\x9b\ \x3b\xdb\x6a\xfc\x69\x8e\x3c\x6c\x88\x1a\xae\x39\x13\x80\x3a\x8f\ \xb7\x54\x23\x2a\xd7\xc5\x04\x06\x06\x00\x35\x28\x9c\x17\xab\xbc\ \x25\xbb\xca\x13\xc0\x4d\x61\x0e\x15\x2a\x72\x6e\xcc\x7e\x5a\x02\ \x68\x6a\xdd\xad\xf1\x94\x27\x00\x53\xdc\x1c\x71\x6d\x5b\x40\x60\ \x9a\xab\x1c\x75\x9e\xeb\x81\x41\x15\x47\x11\xc0\x6a\x89\x31\x0c\ \xd6\x77\x04\x20\x0c\x64\x26\x62\xb6\x69\x75\x8b\xa8\xaa\x09\x50\ \xb6\xc5\xbc\xd0\x03\xf8\xbe\x29\x63\x87\x29\x60\x0c\x18\x84\x1c\ \x00\x5b\x4d\x45\x00\x74\x03\x53\x98\xad\x94\xc5\x1c\xe7\x46\xe6\ \x1c\x00\xc8\x71\x5d\xa9\xa1\x08\x80\xfd\xfc\x56\x12\x73\x33\x01\ \x08\x35\x18\x42\xe8\xda\x7c\x8e\x29\xa8\x4e\x00\x5b\x00\x03\xc8\ \x98\x67\x36\x04\x00\x32\xe6\x85\xde\xf8\x17\x0b\xfc\x2c\xd8\x8a\ \x00\x18\x67\x3a\x4f\xb4\x54\x14\x23\x98\x02\x00\x02\x0c\x3e\xfb\ \xc5\x53\x28\xf0\x43\xb8\x66\x49\xf7\x6b\xf9\x52\x87\xd7\xbe\x54\ \x01\xc8\x55\x8f\xba\x4e\xad\x4b\x0e\x90\xaf\x85\xde\xb7\xc2\x92\ \x3d\x4f\xa6\xb3\xde\xa3\xb1\x71\xeb\xda\xd0\xf5\x15\x98\xb3\x6e\ \xa9\x00\x6c\x34\xa4\x6b\x18\xff\xe0\x11\x7f\x5a\x17\x53\xd4\x13\ \x0b\x59\x6f\xe4\xee\xbd\xe2\xa5\xc1\xcb\x4b\x7c\x6d\x8c\x75\x87\ \x35\xa8\xfa\xb7\x1c\xdd\x65\xd9\x3c\x8f\x1f\x19\xfe\x9e\xcf\x1e\ \x37\xbd\xc9\xba\x78\x26\x6f\x46\x00\x68\xf2\xff\x81\x99\x94\x9e\ \xe9\x3f\xbf\x19\x01\x42\xd3\xf4\xfc\xbd\x9c\x9e\xa5\x7e\x03\x51\ \x6c\x25\xa1\x92\x95\x0a\x77\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x05\x3a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xcc\x49\x44\x41\x54\x58\xc3\xb5\ \x97\x5d\x4c\x5b\x65\x1c\xc6\x77\x6f\xbc\xd9\xe5\x12\x49\x20\x71\ \xd7\x26\xe3\x4e\x13\xb8\x70\xd1\x85\x44\xbd\x50\xe3\x10\x18\xe5\ \x2b\x2e\x26\x4a\x04\x27\x86\xaa\x8b\x99\xe0\xd0\xa2\x6c\x19\x86\ \x39\x17\xdc\x1a\x16\x98\x80\x40\x6c\xa6\x43\xca\x20\x2b\x83\x1e\ \x28\xcc\xda\xd1\x96\xd2\xd2\x4a\x7b\xfa\x01\xa5\xd0\xef\x16\x1e\ \xdf\xff\xdb\x1d\xc7\xcc\x04\x2a\x87\x93\x3c\x39\x6f\x21\x9c\xe7\ \xf7\x3c\xef\x47\x0f\x87\x00\x1c\xca\x46\xcf\xbd\xfa\xe9\xbb\x4c\ \x5a\x26\x61\x0f\x6a\x60\xca\xd9\xe9\x79\xd9\x9a\x3f\x5d\x50\xf2\ \xa5\xc1\xe9\x8f\xa7\x57\xc3\x40\x30\x02\x84\xa2\x19\xad\xc7\x32\ \x8a\x27\x81\x58\x22\x73\xbf\x79\x6b\xda\x4b\x10\x72\x02\x1c\x7b\ \xe7\xac\xda\x1c\xd8\xc8\x98\x12\x40\x84\x99\x85\xe3\x19\x91\x31\ \x29\x1a\x4b\x61\x25\x94\x44\x38\x9a\x42\x73\x87\xc6\xbe\x13\xc4\ \xff\x02\x90\x12\x93\x79\x24\xf1\xc8\x58\x92\xcf\x1f\x84\x5d\x8c\ \xc2\xe5\x09\x22\x12\x4b\xa3\xf4\xc3\xef\x4d\x34\x75\x59\x01\xb0\ \xeb\xd8\x36\xd5\x90\x9e\x3a\xfc\xcc\xb9\xe7\x5f\x2e\x11\x3f\x56\ \x9e\x45\x45\x55\x0d\x2a\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\ \xac\xb6\x25\xfc\xb9\xe8\x87\x6b\x15\x58\xf6\x04\x10\x08\xc6\xd2\ \xaf\x9c\xbe\x70\x9f\x41\x1c\xd9\x15\x80\x5d\x87\x99\x1a\x8a\x8a\ \x8a\xcc\x92\x5a\x5b\x5b\xdd\xa4\xaf\x55\xad\xfe\xaf\x54\xdf\xa6\ \x06\x06\x06\x31\x39\x35\x85\xd9\xb9\x39\xe8\x26\x26\x50\x50\x50\ \x80\x21\xcd\x6f\x7c\xde\x49\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\ \x4f\x41\xf4\x85\xf0\x43\xaf\xce\xcd\x00\x6a\xf6\x02\x50\x43\x66\ \xd8\xe5\x8a\xc7\xe3\xf0\x7a\xbd\x48\xa7\xd3\x98\x9c\x9c\x44\x65\ \x65\x35\x66\x67\x8d\xbc\x81\x07\x66\x1b\x74\xd3\x16\x0e\x40\x32\ \x2d\x78\xf0\xdd\x8d\x51\x8f\xac\x00\xe1\x70\x18\x46\xa3\x91\x8f\ \x53\xa9\x14\x7e\xea\xed\x45\xe3\x27\x9f\x61\x86\x41\x38\x96\xdc\ \x50\x77\x75\xe3\x4c\x43\x23\xce\x35\x9d\xc7\xed\x91\x71\x5c\xbc\ \x3e\x2c\x2f\xc0\xc6\xc6\x06\xf4\x7a\xfd\x63\x40\x7d\x7d\xfd\x50\ \x32\x88\xd0\x46\x1c\x66\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\ \x11\x97\xba\x64\x6e\x80\x00\xa6\xd8\x3a\xd8\x7e\x45\x22\x11\x94\ \x2b\x2a\x30\xae\x13\x40\xe7\x04\x6d\x57\xda\xaa\x34\xbe\x7c\x53\ \xe6\x35\x40\x66\x3a\x9d\x0e\xc3\xc3\xc3\xe8\x65\xf5\xf7\xf7\xf7\ \x43\xab\xd5\xa2\xaa\xba\x06\x63\x77\xf5\x90\x0e\x2a\x77\x90\xed\ \x04\xb6\x0e\xda\xbb\x65\x06\xa0\x79\xb7\xdb\xed\x18\x1a\x1a\x42\ \x67\x67\x27\x7a\x7a\x7a\x38\x50\x49\x69\x19\x6e\x69\xf5\x10\xd7\ \x00\x6f\x08\xb0\xf9\x00\x67\x00\xb8\xd0\x25\x33\xc0\xd6\xd6\x16\ \xdf\x09\x81\x40\x00\xa2\x28\xc2\xef\xf7\x63\x6d\x6d\x0d\xa7\x14\ \x95\xd0\xfc\xae\xe7\xa9\xc9\x7c\xc1\x0b\x98\x3d\x40\x9b\xdc\x00\ \xdb\x41\x36\x37\x37\xf9\x76\xa4\x56\x14\x15\xd5\xe8\xfb\x55\xe0\ \xa9\x1d\x81\x47\x00\xe7\x3b\x0f\x00\x80\xcc\x25\x80\x24\x33\x4f\ \x24\x12\x28\x2b\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa0\x36\x5a\ \xd5\x07\x30\x05\xff\x98\x27\x93\x3c\x3d\x4d\x49\xc9\xa9\x4a\x0e\ \xa0\xb7\xb3\x03\x89\x3d\xc5\xf8\x17\x30\xb1\x00\x7c\x71\xf5\x00\ \x00\xa4\xea\xc9\x98\x14\x8b\xc5\x50\xa6\xa8\x82\x7a\x48\xc0\x98\ \x19\xb8\x6b\x05\xe6\x9c\x99\xfb\xe7\x57\x64\x04\x90\xd2\x53\x6a\ \x02\x88\x46\xa3\xdc\x3c\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\ \x66\x87\xe4\xa0\x01\x1c\x64\xc4\x04\x28\x3b\x64\x06\x48\x3d\x9c\ \x73\x12\x99\xd3\xb9\x40\x20\xc5\x65\x55\xb8\xd8\x2d\xa0\x7f\x3a\ \x63\xae\x7d\x90\x69\xe0\xa3\x76\x99\x00\xfe\x5d\x3d\xa5\x26\xad\ \xae\xae\x72\x88\xb7\x4a\x2a\x70\xb9\x57\xc0\x3d\x1b\xb8\x7e\x9e\ \x01\xee\xcc\x03\x67\x2e\xed\x13\x40\xaa\x9d\x44\x8b\x8e\x92\xd3\ \x71\x4c\xdf\x01\x2b\x2b\x2b\x58\x5f\x5f\xe7\x10\x27\x59\x03\xdf\ \x74\x09\x50\x4f\x00\xbf\xcc\x65\x1a\xb8\x32\x06\x34\xec\xa7\x01\ \xc9\x58\xda\xeb\x64\x4e\x69\x29\x39\x1d\x44\x04\x40\xf5\xd3\xcf\ \xde\x7c\x5b\x81\x96\xeb\x02\x4f\x7e\x75\x1c\xb8\x71\x0f\xf8\x71\ \x2c\x9e\x7e\xbd\x4e\x6d\xa6\x37\xaa\xac\x00\x9e\x64\x2c\x6d\x37\ \x32\x25\x00\xd1\x23\xf2\xe4\x12\xcc\x1b\x27\x15\x68\xef\x11\xa0\ \xbc\x66\x5b\x7f\x4f\x35\xe2\x3c\x71\x9a\xbf\x8e\x69\xf7\xfc\x4a\ \x26\x01\x90\xa9\x24\x69\xb5\x53\x42\x32\x0f\x06\x83\x70\xb9\x5c\ \xdc\x90\x5e\x4a\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf\x25\ \x9f\x7d\xa1\x9c\x4c\x3b\x98\x8a\x99\x8e\x3e\xc9\x78\x47\x00\x95\ \x4a\xc5\x01\xa4\x15\x2e\xcd\x37\x19\x52\x52\x3a\xf7\x29\xb5\xc3\ \xe1\xe0\x22\xe3\xc5\xc5\x45\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\ \x93\xe9\xae\x00\x2d\x2d\x2d\x6e\xe9\x60\xa1\xd4\xd2\x97\x0d\x8d\ \x97\x97\x97\xe1\xf3\xf9\x60\xb3\xd9\xf8\x7d\x69\x69\x89\x43\x10\ \x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92\x52\x93\x11\x8d\xe9\ \x4e\xdf\x78\x54\x3b\x35\x60\xb5\x5a\x79\xf5\xd4\x0a\xfd\xce\x60\ \x30\x24\xf2\xf2\xf2\xee\xb3\x67\x1c\xd9\x17\x40\x53\x53\x93\x5b\ \x9a\x67\x4a\x4f\x22\x13\xaa\x9a\xc6\x16\x8b\x99\x37\x40\x9f\x47\ \x47\x47\x23\x6d\x6d\x6d\xde\xfc\xfc\x7c\x13\xfb\xdb\x41\xa6\xb2\ \xbd\x9a\xff\x27\x40\x73\x73\x33\x9f\x02\x4a\x47\x10\x54\x3f\x55\ \x3f\x3f\x3f\xcf\xeb\xd6\x68\x34\x91\xba\xba\x3a\xe7\xc3\xb4\x5d\ \x4c\x1f\x30\x1d\xcd\xc6\x78\x47\x00\xa5\x52\xe9\x76\x3a\x9d\xbc\ \x62\x4a\x4a\x6f\x3e\x94\xb4\xbe\xbe\xde\x99\x93\x93\x23\x99\x16\ \x67\x53\x75\x56\x00\x8d\x8d\x8d\x6e\x8b\xc5\x82\x81\x81\x81\x48\ \x6d\x6d\xad\x33\x37\x37\x57\x56\xd3\xdd\x00\xf8\x7f\x46\x4c\xc2\ \x41\x99\x6e\xd7\xdf\x43\x39\x56\x18\x85\x70\xc8\x04\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x2b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xbd\x49\x44\x41\x54\x58\xc3\xed\ \x57\x6b\x4c\x93\x57\x18\x3e\x23\x71\xc9\x32\xe9\x16\x97\xa8\x54\ \x65\x38\x9d\x02\x15\xf6\x03\x87\x32\x93\x01\x66\x2c\x5b\x70\xc4\ \x30\xff\x60\xa2\x2e\x1a\x3a\x1d\x4e\x03\xba\x31\x89\x5b\xb3\x80\ \xd9\x0c\x84\x02\x19\x58\x1c\x14\x8b\x85\xb2\x82\x95\x5e\xe4\x66\ \x0b\x8e\x31\xf8\xc3\x46\xcb\x2d\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\ \x6a\x69\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0d\x61\xd9\xb2\x93\ \x3c\xed\x97\xf3\x7d\xfd\xde\xe7\xbc\xef\xf3\x5e\x4a\x00\x80\xfc\ \x93\x20\xff\x0a\x02\x74\x09\x28\x44\x14\xd9\x14\x71\x14\x01\x2b\ \x46\x80\xae\xdd\x64\xdd\xc6\x66\x22\x4c\xf8\x95\xc4\x8b\x47\xc8\ \xa1\xd3\xf7\xc8\x8e\x97\x3b\x38\x32\x61\x2b\x41\x20\x85\x9c\xbe\ \x30\x48\x2e\xdd\x80\x19\x40\x32\xab\x79\x4d\xf4\xbe\xfb\x72\x13\ \x68\x64\x06\x91\x04\x5e\xa3\x51\xf4\x06\xee\x85\x47\xf5\xd0\xbd\ \x83\xcb\x4d\x20\x9b\x9d\xf6\x40\x74\x2f\xbd\x16\x32\x3d\x20\x89\ \x3f\x48\xa5\x2c\x1b\x01\x8c\x31\x79\xc1\xbb\x9d\x88\x4b\xc6\xd7\ \xc6\x26\x0e\xa0\x10\xb9\xfd\x42\xfe\xc5\x2b\x36\x46\x8c\x12\x5c\ \x4e\x02\x93\xa7\xa7\xa7\x0d\xcc\xd3\x39\xb9\x98\x63\x36\x14\x0a\ \xd2\xe4\xa3\x2b\x41\x20\x8c\x29\x9e\x2a\xdf\x37\x47\xeb\xdc\x7b\ \xb5\xcc\x89\x9e\x40\x44\x96\x54\x83\x2b\x2c\x0b\x36\x46\x48\x08\ \x13\xf5\x64\x2a\x7b\x2e\x54\x03\x01\xf8\x03\x37\xbf\xc0\x0e\x34\ \x2a\x54\xdf\x62\x88\x52\xd5\x2c\x58\x03\x74\x1d\x16\x08\x04\x7a\ \x45\x55\xf5\xc8\xa0\x6d\x74\xc2\xd4\x73\xf7\x21\xbe\x73\x51\x95\ \x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc\x2e\x03\ \xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf\x3e\xbf\xd2\x60\xb5\xdb\ \xed\x80\xf8\x79\xe4\x3e\xc4\x5e\xab\xb4\xb9\x88\x2f\x86\x80\x27\ \xd3\xc0\x67\xf9\x8e\x19\xf5\x60\xd7\x5e\x33\xba\x76\xda\x73\xee\ \x68\xd8\xc7\xc7\x47\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\ \xf6\x2e\xe7\x96\x37\xf7\x77\x73\x61\xd8\xbd\xe8\x5e\x80\x2f\x66\ \x9a\xa0\x86\xdf\xa9\x36\x42\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\ \xe7\x1a\x8a\x98\x2d\x7e\xfe\x6d\x97\x54\x1a\x6b\x5f\x5f\x1f\xb8\ \xd0\xd1\x73\x07\x62\x72\x15\x56\x4e\xc4\x87\x97\xd4\x8c\x30\x14\ \xe9\x15\xb7\x1e\x38\x1c\x0e\x40\xa4\xd6\x19\x31\x9e\x85\x9b\x05\ \x7e\x6d\xa9\x25\x1a\x5b\x97\xd9\x0c\xe6\x2e\x0a\xf3\x24\x14\xdf\ \x36\x8e\x7b\xbd\x1e\xd1\xcd\x42\xc8\x09\x6f\xa9\x04\x3c\xd1\xbd\ \x56\xab\x15\x10\x77\x7f\x1b\x84\xf3\x92\x5c\xbb\x52\xa9\x84\xfa\ \xfa\x7a\x30\x99\x4c\x0c\x75\xdf\x35\xc1\x51\xb1\x64\x18\xc9\x51\ \x44\x3e\xb6\x76\xcc\xb4\x40\x4f\x93\x5f\x7e\xd3\xd6\xdf\xdf\x0f\ \x32\x99\x0c\x44\x22\x11\xa8\x54\x2a\x90\x4a\xa5\xa0\xd1\x68\x20\ \x4b\x5b\x39\xbe\xe9\x95\xe0\x1f\xb8\x53\xaf\x79\x2c\xf3\x00\x97\ \x8e\x22\x9e\xc7\x86\xe6\x53\x29\x19\xf6\x82\x82\x02\xe6\xe2\xa0\ \xa0\x20\xe0\xf1\x78\x60\xb1\x58\x40\x5b\x5e\x01\xfb\xcf\x26\x0c\ \x2d\xa6\x53\xce\x67\x94\xcf\x09\x4c\x83\xe2\x5b\x7b\xe6\xc2\x60\ \x9a\xb2\x14\x14\x0a\x05\x88\xc5\x62\xc8\xcc\xcc\x84\xa2\xa2\x22\ \x50\xab\xd5\xd0\xd9\xd9\xc9\x60\xec\xfe\xc9\xb9\xc9\xdb\xa7\x75\ \x2e\xb7\xcf\x4b\x80\xae\xb7\xd8\x29\x70\x0e\xc0\x6a\x97\xac\x78\ \x88\xca\x7f\x82\xe2\x29\x89\x0e\x3e\x97\x2b\x21\x5b\x96\x0f\x07\ \x63\xe3\x47\x84\x1f\x26\xd8\x92\x72\x64\x8e\x6f\x1a\xbf\x07\xa3\ \xd1\x08\x2d\xad\x2d\xf0\xcb\xc0\x20\x1c\x38\xf1\xbe\x05\xb3\x62\ \xc1\x04\x5c\x69\x84\x85\x85\x84\x46\xdc\x26\xe7\x32\xac\x2c\xcf\ \x33\xb5\x13\xec\x3b\xe3\xba\xd3\x33\xaf\x82\xe5\xfe\x7a\x89\x06\ \x9e\xde\xfc\x62\x1b\xf7\x3c\x92\x8d\x7b\x66\xab\x4f\x5b\xca\x35\ \xed\x58\x43\x43\x3d\x34\x34\x34\x80\xa5\xb7\x17\x32\x14\xc5\xc3\ \xf3\xe9\xc0\x65\x3c\x92\xe5\x28\x9e\x36\x5d\xe5\x9c\x2a\x32\x78\ \x7d\xf4\x83\x2e\x5a\x6c\x12\x31\x0c\x1b\x25\xea\x71\xf7\x2f\xcb\ \x27\xef\x05\x87\x5f\xfe\xd3\xe4\x44\x0b\x4c\x68\xf4\xc9\x3e\x75\ \x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x96\x31\xae\x81\x09\ \x66\xf1\x36\x6d\x38\x68\x3c\x49\x3a\x3a\x65\xf8\x62\x81\x83\x44\ \xbd\x57\x43\xb6\x0a\x5e\x9b\x2a\xc3\x94\x5c\xb0\x42\x0f\xab\x24\ \xb4\x04\x9f\x4a\xaa\x9b\x43\x37\x31\x28\xd4\x4f\xf2\x0a\xc7\x74\ \x3a\x1d\xd4\xd6\xd6\x82\xc9\x7c\xdb\xb9\x61\x9b\xf7\x5f\xea\x62\ \xb2\xe5\x7e\x9c\x75\x1f\x0d\xf3\xb2\xd4\x4e\xf2\xf6\xb1\xeb\x2e\ \xb6\xae\x94\xc3\x90\x6c\x97\x55\xc1\x4b\x57\xab\x80\x9c\x4d\x6e\ \x5a\xd0\x1c\x49\xbd\xb1\xe7\x88\xb0\xef\xca\x57\xc5\x50\x5a\x5a\ \x0a\x1d\x3f\xf6\x4c\x04\x06\x87\x74\x3c\xaa\x0b\xc2\x84\x46\x8d\ \x07\xc8\x6f\x02\xd9\xf9\xaa\x7e\x9a\xf1\x30\x46\x8e\x36\x20\xaf\ \xbc\x4a\x78\x43\x69\x00\x92\x28\x1d\x98\xcd\x95\xb3\x79\xc3\x7d\ \x3d\xbf\xf9\x44\x6a\xa6\x5d\x2e\x97\x43\x53\x4b\x2b\x44\x1c\x7b\ \xf7\xce\xf4\x14\x25\xae\xf1\x8a\xf5\x77\x9c\xf5\x70\x02\xc2\xd9\ \x0f\x89\xd1\x81\x03\x4f\x8e\xf7\xdc\xd2\x69\xe7\xf3\xdf\x75\xfc\ \x6f\x14\x2e\x36\xd2\xef\xd8\x17\x69\x49\xbe\x2c\x9d\xc8\xd3\x96\ \x3b\xa7\x0f\x31\x8c\x25\xc6\xdf\x9f\xba\x77\x5f\x71\x35\xa0\x41\ \x6c\xb5\x08\x8c\xf9\x94\xf1\xe0\xf0\x33\x4b\x9a\x7c\x68\x13\x5a\ \xbd\xce\xa3\xd9\x6b\x4f\x48\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\ \xf9\x2f\xee\xb9\x49\x6e\x00\xf6\x7b\x3e\xed\xf7\x08\x1e\x2a\x3e\ \x5d\xe5\x58\xaa\xf1\x47\x5a\xf5\xb6\x59\x0b\x11\x1d\xb3\x43\xc9\ \x91\x38\x09\x39\xf9\xa9\x96\x21\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\ \x37\xfc\x4f\x13\xf8\x1d\xe7\x87\x19\xb9\x44\xc3\x01\xcf\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xa3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x35\x49\x44\x41\x54\x58\xc3\xe5\ \x97\xcd\x8f\x54\x45\x14\xc5\x7f\xb7\xea\xd6\x7b\xaf\xdb\x6e\xc7\ \xf9\x40\x9d\x89\x46\x4d\x34\x99\x44\x8d\x1a\x48\x98\xc4\x8c\x1f\ \x1b\xfe\x02\x4c\x5c\xf1\x07\x18\x16\x2e\x4d\x5c\x6b\x58\xc3\x8e\ \xc4\x8d\x1b\x17\xce\x82\x68\x74\x41\x5c\x18\x0d\xe2\xc4\xc6\x00\ \x3d\x60\x50\x51\x19\x60\x02\xa2\x0e\x0c\x83\xd3\xfd\x5e\xf7\x94\ \x8b\xaa\xee\xf9\x60\xe6\x0d\x84\x51\x16\x56\x52\xa9\xce\x7b\xb7\ \xeb\x9e\x3a\xf7\xd4\xa9\x7a\xea\xbd\xe7\x7e\x36\xe5\x3e\xb7\x3e\ \x80\x5d\xbb\x76\xbd\x03\xec\xfd\x8f\xf2\x4e\x35\x1a\x8d\x03\xeb\ \x19\xd8\xbb\xef\xbd\xa3\x3b\x1f\x1f\x76\x00\x9c\x3c\x3a\xcf\xcc\ \x97\x37\x58\x9c\xef\xdc\x53\xa6\xda\xa0\xf2\xdc\x6b\x03\xbc\xb8\ \x67\x10\x80\x8b\x7f\x16\x7c\xf8\xee\x1e\x80\xdb\x00\x70\xfc\xec\ \x1c\xdf\x3f\x30\x04\x78\x2e\xfd\xb8\xc0\xfe\xb7\xce\x6f\xcb\x72\ \x0f\x1d\x79\x9a\x0b\x23\x96\xd3\x9f\x1f\x64\xfc\xd5\x7d\x9b\x6b\ \x40\x45\xb0\x16\x40\x78\x70\x2c\x23\xcb\xb2\x6d\x01\x30\x30\x96\ \x61\x8d\x50\x1b\x7c\x14\x23\x25\x22\x14\x2b\xd8\x18\x91\xd5\x95\ \x73\xe7\xce\x83\x2a\xb8\x04\xd2\x14\xb2\x0c\xd2\x2c\x8c\x49\x0a\ \x49\x12\xde\x77\x3a\x90\xe7\x90\xb7\xa1\xd5\x82\x76\x2b\x8e\x6d\ \x28\x72\xb2\xfa\x38\xd6\x0a\xe3\xaf\xbc\x49\x6b\xf1\xfa\xe6\x00\ \xac\x15\xac\x15\x04\xb0\x46\xd8\xbd\x7b\xe7\x16\x6b\xeb\x86\xae\ \x80\x5a\xa8\x56\x81\xea\x6d\x51\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\ \x84\x01\x67\x05\x35\x82\x08\xa8\x0a\x95\x2c\xc3\x23\x20\x1e\x08\ \xc0\xf0\x1e\x2f\x02\xde\x23\x12\x26\x15\x7c\x88\x23\xc4\x21\x1e\ \x3c\x21\x5e\x40\x4d\x58\x18\x40\xd7\x4a\x89\x06\xac\xa0\xda\x63\ \x00\x9a\x33\xbf\x05\x8a\x53\x07\x69\x02\x95\x04\xb2\x34\xf6\x04\ \x12\x07\x4e\xa1\xe8\x40\x5e\x40\x2b\x8f\xbd\x05\x4b\x39\xb4\x73\ \xc8\x0b\x54\x87\x71\x3d\x00\x2a\xe5\x25\x70\x31\x40\xd5\x30\x39\ \xf9\xd2\xd6\x0a\xf3\x3e\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8\x27\x61\ \x61\xbd\x1c\x25\x25\x20\x00\xf0\x81\x8d\x34\x4d\xa3\x3a\xc3\xb3\ \x98\x11\x89\x6c\x07\xda\x63\x09\x56\x98\x5f\x29\x46\xfc\x61\xcd\ \x72\x7f\x61\x1d\x2d\xd1\x80\x3a\x09\x54\x49\x18\x4f\x34\x2f\xe0\ \x9d\x85\xc4\x21\x89\xc3\x67\x09\x92\x69\xd8\x11\x89\xe2\x13\x87\ \x58\x8b\xef\x76\x91\xbc\x80\xbc\x03\xed\x02\xdf\x6a\x23\xed\x02\ \xf2\x02\x9f\x77\x50\x1d\x45\xd5\x20\x78\x3a\xeb\x54\x78\x9b\x06\ \x9c\x33\x78\x0f\x03\x8f\x24\xbc\xfe\xf2\xf3\x77\x68\xe8\x36\x68\ \xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04\x52\x5e\x82\x44\x4d\x5f\x84\ \x8f\x0d\xa5\x38\xe7\xb6\xc5\x88\x9e\x18\x4b\xb9\x76\xb3\x03\x08\ \x9d\x52\x11\xaa\x90\xb8\x50\xef\x5a\xc5\x30\x7d\xb1\xcb\x40\xc5\ \xb0\x0e\xf4\x26\xad\x57\xf9\x55\x2e\xe1\xe1\xc6\xd2\x32\xf5\xcc\ \x70\x7d\xc9\x84\x2d\xe9\x4a\x19\x10\x9c\x1a\xc0\x73\xe5\x66\x97\ \x2b\x37\xbb\xac\x51\x57\x3f\xd7\xaa\x64\x7e\xc5\x27\xa2\x29\xac\ \x05\x15\xc3\x9c\x0b\xb5\x77\xa6\x6c\x17\xa8\xc1\xa9\x20\xc8\x1a\ \x35\xaf\x9b\x35\x1a\x8f\x59\x31\x9e\xfe\x7b\xe9\xef\x14\x00\xf1\ \x82\xef\x9b\x58\x30\x2b\x57\x56\x02\x55\x21\xd1\x90\xfc\xe7\x53\ \xdf\xf2\xeb\x99\x13\x2c\x2d\xde\xb8\xa7\xfa\x57\x6a\x03\x3c\xf5\ \xec\x4e\x9e\x79\x61\x02\x0f\xa8\x33\x5b\x31\x10\x03\x7c\x87\xf7\ \xf7\xbf\xc1\xc2\xc2\x02\xb7\x6e\xdd\xa2\x28\x0a\x44\x04\x6b\x2d\ \xd6\x5a\x54\x15\x55\xc5\x39\x87\xaa\x62\xad\xc5\x98\xf0\xdf\xe5\ \xe5\x65\xf2\x3c\xef\xf7\x23\xcd\xf9\xb8\xf2\x2d\x18\x70\x56\x50\ \x17\x18\xdc\x31\x3a\xb6\x72\x4f\x38\x7e\x9c\xe9\xe9\x69\x8c\x31\ \x78\xef\x99\x98\x98\x60\x72\x72\xf2\x8e\x59\xd8\x31\x3a\xd6\xdf\ \x86\xae\xd4\x09\x55\x70\x36\xac\xa2\x56\xaf\xf7\x6b\x39\x33\x33\ \xc3\xd0\xd0\x10\xd6\x5a\xbc\xf7\x34\x9b\xcd\xbb\x02\x50\xab\xd7\ \x70\xd1\x88\xb4\xd4\x88\x14\x9c\x0b\x27\x5c\xa0\x2a\x00\xa8\x56\ \xab\x64\x59\xd6\xa7\xb8\x37\xde\x69\x73\x1a\xa9\x17\x41\x4b\xad\ \x38\x1e\xc7\xbd\x23\xb4\xd7\x8c\x31\x88\x44\xdf\x8f\x3a\xb8\xab\ \x9b\xaf\x35\xa8\x0d\xf3\xf6\x18\x2e\x3d\x8e\x83\x29\x6d\xe3\xd5\ \xdb\x12\xa9\xf7\xe5\x56\x6c\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\ \xdb\x02\xe0\xa1\x91\x61\xd4\xc2\xb5\x2b\x97\x59\x9c\xbf\xbe\x05\ \x03\x36\xf8\xc0\x60\xad\x02\x0b\xdb\xc3\xc0\x50\xad\xc2\xec\xc5\ \x4b\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa6\x36\x04\x60\x24\x5e\ \x4a\x05\x12\x0b\xed\x91\x27\xa9\x3d\x0c\x6f\x1f\x38\xc8\x66\xc7\ \x81\x27\x3a\xf1\x2a\xe7\x35\x1e\x32\x81\x14\x28\xba\x70\xf9\xea\ \x55\xce\x34\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1f\x4e\x1d\x02\x0e\x6f\ \x08\xe0\xb3\x8f\x3e\xe0\xa7\xd3\x27\x57\x99\xe9\xda\xa3\x86\x55\ \xe6\xbb\x1e\x04\x1b\x3c\x5f\x1d\x6f\x7c\x77\xee\x8f\xd9\x5f\x0e\ \x01\x87\x1b\x8d\xc6\x5f\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5\x73\ \x6c\x7d\xf2\x35\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1\x3f\x4d\xf0\ \x4b\xb9\xe8\x46\x89\xaf\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x6d\ \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\x06\x34\x49\x44\x41\x54\x78\x5e\xad\x97\x5b\x6c\x54\xc7\ \x1d\xc6\x7f\x73\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\ \x69\x63\x24\x42\x4a\x21\x22\xa1\x2d\x95\x62\xa5\x2f\xee\x4b\x68\ \x2b\x95\xa6\x55\xa5\xc6\x60\x55\xaa\xda\xb4\xaa\xfa\x56\x09\x55\ \xca\x03\x94\x27\xda\x07\x84\x14\x29\xad\xc4\x8b\xa5\x52\x83\x79\ \x08\xc5\x18\x39\x0e\x69\xd3\x84\x9a\x9b\x63\x6a\xec\xb2\x04\x1b\ \x3b\xbb\xf6\x7a\x8f\xbd\xbb\xde\xb3\x67\xa6\xc3\x68\x85\xe5\x72\ \x6c\x88\xc9\x27\x7d\xfa\x9f\x9d\x87\xfd\x7e\xf3\x9f\x99\x73\x11\ \x4a\x29\x82\x24\x84\x78\x05\x78\x9e\xc7\x6b\x48\x29\xf5\x77\xd6\ \x28\x27\x20\xb8\x43\xbb\x01\x68\x97\x52\xbe\xc6\x63\x64\x59\xd6\ \x07\x1a\xf6\xbb\x40\xb7\x06\x39\xff\x14\x00\x26\xfc\xb7\xed\xf5\ \xe2\x60\x5d\x44\x44\x6e\xce\x89\x8a\x2b\x57\xae\x50\x5d\x53\x8d\ \x40\x00\xa0\x50\x08\x65\x28\x41\x29\x66\xd3\x69\x5e\xa9\x17\x2f\ \xbc\xb4\x4e\x6c\x3b\xf1\x1f\xb9\x47\x83\x7c\x5b\x43\x4c\x3c\x4d\ \x07\xf6\xff\x60\x8b\xdd\x2c\x25\xf8\x4a\x32\x3c\x3c\x4c\x65\x65\ \x25\x2b\xc9\x75\x5d\x1e\xc0\x6e\xa9\xb0\x22\x1b\xa2\x2a\x72\x3f\ \xa7\xea\x81\xb5\x03\x08\x2d\x05\x48\xa1\x0d\xf4\x5d\xbc\x48\x2e\ \x97\xc3\x2f\x16\x51\x4a\x91\xcf\xe7\x59\x5c\x5c\xa4\x50\x28\x50\ \xd4\x63\xb5\xb5\xb5\x94\x01\x58\x80\xf8\x82\xf6\x80\x01\x00\x36\ \x44\x05\x1f\x0f\xbc\x4b\x3e\x3b\x8f\x85\x44\x95\x32\xe2\xb6\xc4\ \xb6\x04\x21\x21\x70\x3e\x53\x6c\x8c\x3b\x80\x44\x2a\x04\xf0\x9c\ \x10\x02\xe0\xcb\x40\x05\x50\x0f\x34\x60\xc4\x48\x69\x9f\x24\x02\ \x01\x4e\x9c\x38\x21\x00\x81\x05\xd2\x87\x96\x96\x67\x09\x65\x6d\ \x14\xe5\x28\xa5\xb4\x41\x08\x58\x57\x19\x25\xe2\xd8\x44\x42\x16\ \xc3\x13\x73\x5c\xbc\x3d\x41\xf7\x58\x8e\x5c\x24\xbe\xa9\xbd\x7d\ \xf7\xef\x2d\xcb\x5a\xdc\xb1\x63\x47\x59\x55\x55\x95\xd3\xd8\xd8\ \x18\x7e\xe0\x86\x86\x86\xd0\xa5\x4b\x97\xdc\xae\xae\xae\x08\xf0\ \xd6\xaa\x1d\x00\x13\x44\x55\x2c\xc2\x73\xd5\x31\xf2\x9e\x4f\xa1\ \x28\x91\x4a\x61\x09\x41\xd8\xb1\x88\x86\x6c\xe6\x72\x05\x12\xa2\ \x8e\x3f\x9f\xff\x2b\x0d\x4d\x1b\x01\x22\xc0\x66\x96\x84\xef\xfb\ \x78\x9e\x47\x75\x75\xb5\x9e\x50\x4b\xf4\xea\xd5\xab\x87\x84\x10\ \x28\xa5\xde\x5a\x11\xc0\xb2\x41\x00\xb6\x2d\x90\xda\xb6\x14\x38\ \x08\xa4\x12\x58\xc2\x8c\x1b\x8f\x4c\xb9\xec\x7b\xf5\x3b\xd4\x37\ \x36\x11\x7c\x2f\xc1\x84\x67\x32\x19\xca\xcb\xcb\xcd\x66\x3e\x76\ \xec\xd8\x26\xbd\x7f\x0e\x2e\x41\x2c\x01\xd0\xd9\xd9\xa9\x0e\x1d\ \x3a\xa4\x6c\x21\x08\x59\x10\xb6\x2d\x1c\xc7\xc6\x42\x50\xb4\xcd\ \x1a\x1b\x00\xc7\xb2\x88\x38\x96\xae\x02\x60\x59\x78\x10\xc0\xdc\ \xdc\x1c\x35\x35\x35\x06\x20\x1a\x8d\x72\xe4\xc8\x91\xcd\xc0\x03\ \x88\x1b\x1a\xa2\xc7\x62\xb9\xb0\x6d\x74\x30\x66\x8d\xcb\x23\x36\ \xb1\xa8\xa3\xc7\x2c\x32\x8b\x1e\x93\x99\x1c\x63\xa9\x79\xee\xcc\ \x2e\xe8\xdf\x45\x72\xf9\x3c\xab\xc8\x2c\x41\x36\x9b\x35\xa7\x66\ \xe9\xff\x6d\x0e\x1c\x38\xb0\x1e\xe8\x00\x58\x06\xa0\xb4\x74\x16\ \x8e\x0d\xe1\x90\xc0\x53\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\ \xa6\x7d\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb\x3a\x0d\x2f\xb4\x73\xfb\ \xce\x24\xfd\xfd\xfd\x24\x93\x49\x94\x52\xe6\xfa\xf8\xf1\xe3\xe8\ \xba\xac\x33\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c\x3e\x7c\x98\xde\xde\ \x5e\x12\x89\x84\x04\x2c\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\ \x94\x4f\x6b\xc7\xcf\xf8\xe6\x2f\xdf\x26\xf6\xf5\x37\x99\x7c\xa6\ \x83\x6b\xfe\x2e\xae\xf1\x2d\x64\x6b\x17\xad\x7b\x7f\x4e\x5e\x56\ \x73\xfa\x6f\x67\xd1\x77\x4d\xee\xdc\x9d\xe2\x1b\xaf\x76\x72\xfd\ \xfa\x75\x03\xa0\x67\x6b\xd6\x3f\x16\x8b\x99\xeb\x78\x3c\x8e\xe3\ \x38\x25\x38\x04\xc0\x23\x00\x96\x25\x98\xca\x41\x3a\xde\xca\xfe\ \xdf\xbd\x4d\xd5\xae\xd7\x28\x84\x62\x08\xdb\x42\x59\x82\x6c\x41\ \x72\x7f\x66\x91\x4f\xee\x66\x18\xb8\xea\x72\xfa\x1f\x61\x64\xd5\ \x5e\xae\x8f\xdc\x67\x32\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\ \xcd\xcd\xcd\xb4\xb5\xb5\x19\x37\x35\x35\xa1\xa1\x14\x20\x83\x1f\ \x46\x16\xdc\x71\x15\xdf\xff\xe9\x6f\xa8\x6c\xd8\x48\xe2\xec\x3b\ \x4c\x8f\x5e\xc3\x89\x94\xb1\xb5\x79\x07\x9b\x5b\xb6\xf3\x49\x79\ \x25\x63\x09\x97\xcf\x66\xf2\xdc\x9d\xce\x32\xa1\xed\x88\x0d\x4c\ \x27\xe7\xd8\xb7\x2b\xca\xfa\x25\x00\x33\x7b\x3d\x6b\xea\xea\xea\ \x00\xcc\x75\x2a\x95\x32\x00\x4a\x2b\x10\xa0\xb9\x5a\x70\xe1\x9d\ \x63\x28\x2c\xca\xe6\xc6\xd9\x10\x8f\x52\x94\x92\x7b\xc3\x7d\x24\ \x65\x05\xdb\xda\x7f\x4c\x4d\xdb\xcb\x7c\x3c\x9c\x66\xd2\x5f\xc0\ \xcd\x78\x2c\xcc\x6b\x2f\x78\x20\x00\xb5\x74\x3a\x42\xa1\x90\x09\ \x2d\xdd\xea\x1f\x8e\x01\x2a\xf8\x3e\x60\xc1\xc6\xb8\xa0\x50\x1c\ \x23\x1c\x8b\x53\xb7\xa5\x96\x92\x78\x76\x7d\x05\xe9\xac\xc7\x68\ \xff\x9f\x98\xae\xbc\x4c\xcb\xf6\x83\xb8\x0b\x61\xbc\x82\xa4\x58\ \x94\x78\xda\x21\xc7\x42\x2d\xaa\x80\xe3\x69\xa0\x96\xd5\x15\x01\ \x00\xd6\xc7\x43\x84\xca\x23\xfc\xbf\x6a\x63\x21\x9e\xa9\x0c\x73\ \xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb9\x32\x47\x03\x28\x03\ \x61\x6b\x00\x16\x4b\x21\xa5\x1c\x25\x30\x2a\x15\xa4\x5c\x05\x40\ \x58\xa5\x2a\xcc\xf5\x23\xfa\x70\x6c\x86\xf1\x59\x8f\xef\xfd\xfa\ \x8f\xdc\xca\xd4\xe0\x44\x5c\xa2\x11\x1b\xcf\x93\x14\x3d\x07\xd3\ \x01\xa5\x90\x52\xf2\x50\x6a\x59\x01\x56\x05\x10\x08\x4c\x0d\x04\ \x18\x9d\x76\xf9\xd5\x5f\x86\x18\xbd\xb7\x80\x3d\x93\x67\xd3\xba\ \x32\xf2\x79\x5f\xbb\x68\xea\xce\xaf\xd4\x70\xf9\xdd\xe0\x25\x00\ \x9e\x78\x09\x4c\xb8\x10\x3c\xa2\xd6\x2f\x55\xf2\x87\x1f\x3e\xcf\ \xf5\x4f\x33\x44\x1b\xb7\xb1\xf3\xc5\x97\x59\x12\x5c\x4e\x60\x8e\ \xdb\x53\x01\x28\xc0\x12\x25\x00\x6d\xd4\x52\x7d\xb1\xb5\x96\xdd\ \x5b\xe2\x74\xbf\x97\xa5\x6a\xf7\x57\xf9\xd1\x1b\x6f\x10\xa0\xb5\ \x03\x98\xb5\x37\xd5\xd8\x08\x01\xd2\xcb\x53\x70\x53\x78\xf3\x33\ \x14\xb3\x69\x0a\x19\x1f\x25\xfd\xd5\x82\xd6\x08\xf0\xf0\x29\xe7\ \xe3\xe7\x33\x14\xe6\x75\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc1\x33\ \x7d\xfa\xd7\x72\x8c\xb2\x13\x37\x03\xc7\x01\xb2\x1e\xfe\xad\x94\ \xcc\x6f\xf7\x44\x54\x03\xd8\x5f\x70\x07\x08\x92\x09\xfd\xd7\x3d\ \x3f\xfd\x7e\x42\xa6\xcf\xdf\xf6\xef\x02\xee\x76\x3b\xfc\x92\x06\ \xa8\xe3\x73\xca\x75\x5d\x1f\x70\x57\xed\x00\x40\x32\xab\x0a\x1f\ \x7e\x2a\xd3\xbd\xb7\xfc\xd4\xcd\x69\x39\x05\xf4\x03\x97\x74\x68\ \xbf\x10\xa2\xd3\xb6\xed\xaf\x7d\x9e\x25\x58\x58\x58\xf0\x07\x06\ \x06\xd2\x27\x4f\x9e\x9c\x06\xba\x83\x00\x3e\x1a\x49\xca\xad\xe3\ \xb3\x2a\xd7\x3b\xe2\xa7\x6e\x4c\xcb\xd1\x52\xe8\x59\x1d\x74\x8b\ \x00\x3d\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2\x4e\xcf\xce\xce\ \x9e\x2e\xbd\x1d\xdf\x08\x02\xe8\xee\xea\x29\x00\x8c\x04\x84\x06\ \x85\xaf\x08\x30\x35\x35\x55\xd0\x2f\x22\xa9\x53\xa7\x4e\x25\xc7\ \xc7\xc7\x2f\x03\x67\x81\x7e\x1d\xec\xae\xb8\x09\x4b\xdf\x76\xda\ \x4f\x26\x85\x01\x40\x08\x40\x61\x5a\xfc\xde\xe0\x60\xba\xbb\xbb\ \x3b\xa5\xdf\x8a\xcc\x24\xd0\x5e\xed\x73\xcd\x61\xed\x9a\x77\x33\ \x6e\x11\x60\x70\xf0\xfd\x74\x5f\x5f\x5f\xfa\xcc\x99\x33\xa6\xc5\ \xa5\xd0\x8f\x78\x02\x89\xb5\x9e\x63\x21\x44\x18\x78\x13\xd8\x4f\ \x69\x73\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa\x2a\x5f\xf2\xd8\x15\x9d\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x19\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x07\xab\x49\x44\x41\x54\x58\xc3\xad\ \x57\x5b\x50\x93\x67\x1a\xf6\xca\xce\xec\xcc\xf6\x62\x2f\xbc\xd9\ \xe9\xce\xec\x6e\xbd\xda\xd9\x9b\xb5\xce\xba\x3b\x7b\xb0\xad\xcc\ \x7a\xb1\xce\xce\x3a\xb3\x76\x54\x70\x75\xdb\xe2\x81\xd6\xb6\x54\ \x04\xbb\xa5\x20\x6d\xc1\x82\x06\x08\x07\x51\x42\x80\x80\x80\x02\ \x21\x81\x10\x92\x40\x48\x10\x73\x24\x21\x67\x72\x80\x04\x42\x20\ \x9c\x09\x47\xb5\x54\x78\xf6\xfb\x7e\x13\x16\x30\x58\x8b\x7d\x67\ \x9e\xf9\x2f\x92\xfc\xcf\xfb\x3e\xcf\xfb\xbe\xdf\x97\x5d\x00\x76\ \xfd\x98\x20\xf1\x0b\x82\x14\x02\x03\xc1\x75\x82\x03\xcf\xfd\xfe\ \x8f\x48\xbc\x9b\x20\xe1\x57\xaf\xef\xb5\x2a\x8c\xd6\x65\xdb\x02\ \x60\x19\x1e\x5b\x09\x27\xf1\x33\xfa\x19\x81\x22\xfc\xdc\x3e\x76\ \x48\x7e\x8a\xa0\xb9\xb6\x59\x1c\x32\xcf\xad\x42\x39\xfe\x1d\x44\ \xf6\x51\xd8\xc7\xe6\xe8\x87\x86\x3d\x7b\xf6\x58\x53\x52\xae\x2c\ \xca\x3a\x3a\x10\x4e\xe2\xe5\x49\xc3\xc4\x31\x04\xb7\x3e\x49\xf9\ \x2c\x60\x9b\x5d\x59\x53\x4d\x03\x4d\xb6\x11\x34\xeb\xfb\x20\x31\ \x79\x60\x19\x9d\xc5\xbb\xef\xbe\x3f\xc5\xab\xbe\x83\xf1\x89\x29\ \x4c\x4f\xcf\xae\x92\xef\xd7\xbc\x74\x02\x11\x9f\x0f\xbe\x1d\xe3\ \xb2\x04\x43\x4f\xb4\x33\x40\x8b\x7b\x06\xcd\x3d\x2e\x34\xeb\xec\ \xa8\x57\xf6\x20\x87\x53\x85\x32\x5e\x35\x43\xbc\xb0\xf4\x90\x81\ \xc1\x60\x5c\x26\xbf\x4b\x7c\xe1\x04\x48\x1c\x24\x38\x41\xfd\xdd\ \xea\x73\x27\xf1\xb9\x27\x04\x48\x87\x97\xc1\xd7\xbb\x20\x22\x55\ \x37\xdc\x37\xa2\xb8\x4e\x88\x2c\x56\x3e\xcc\x56\xdb\x3a\x71\x04\ \x2c\x16\x6b\x2c\xfc\xce\xe7\x27\x10\x91\x36\x93\x95\x3f\x46\x7d\ \xa5\xfe\x12\xc4\x6f\xf4\x59\x31\xb6\x02\x7e\xef\x20\x5a\x7b\x9c\ \xe0\x3f\x30\xa1\x4c\x28\x43\x46\x0e\x1b\xb2\x0e\xf9\x26\xd2\xf9\ \xc5\x65\xcc\x2d\x2c\x21\x34\xbf\x88\xbd\x7b\xf7\x5a\xc9\x3b\x7e\ \xba\x6d\x02\x24\x7e\x43\x90\x46\x3d\x35\x13\x69\x75\xb3\x80\xd2\ \x3f\x0f\xcb\xc4\xe2\x9a\x50\xa1\x5a\xb4\x6c\xf1\x59\xa0\xb6\xa0\ \xa6\x5d\x8d\x2f\xb2\x73\x71\xb7\x9e\xff\x0c\x31\x25\x9d\x09\xcd\ \x63\x62\x6a\x06\x83\x43\x81\x27\xe4\xdd\xbc\x2d\xd3\xb0\x3b\x92\ \x03\x33\x26\xd4\x53\xb5\xd3\xfb\x58\x4f\x88\xc5\x03\x21\x88\x2c\ \x43\x50\xba\x46\xd0\xed\x09\x42\xe5\x9b\x42\x9b\x73\xfc\xa9\xcf\ \x5a\x1b\xee\x2a\x74\xc8\xbc\xc9\x45\x09\xa7\x6c\x93\xcf\x9b\x88\ \x27\xa7\x11\x18\x1d\xc3\x80\x6f\x08\xa2\xd6\xd6\x25\xc2\x51\xdb\ \x28\x12\x87\xc6\x1f\xaf\x82\x2f\x62\x94\x4d\x89\x24\x90\x22\xea\ \x52\x2d\x9a\x42\xab\xe8\x18\x79\x04\xa1\xc5\xcf\x10\x53\x74\xf6\ \x0d\xa3\xd3\xe1\x87\xd4\x3c\x80\x16\xbd\x03\x0d\x5d\x06\x14\xd5\ \x0a\x90\x91\x95\x0d\x2f\x79\xf1\xc6\xaa\xa9\xd4\xb3\x73\x0b\x4c\ \xc5\x94\xd8\xdd\xef\x85\xc9\x62\x05\xb7\xbc\x12\xa5\xe5\x95\x4b\ \x13\xf3\xcb\xab\x23\x0f\x01\x37\xd9\x11\xe6\xd9\x15\x84\x97\x15\ \x13\x06\xcb\x3c\xd0\x68\xf2\xa3\xdd\xee\x5f\x27\x96\x3b\x86\x20\ \xb3\x78\xd7\x7d\xe6\x08\xa4\xf8\x3c\x33\x1b\x2a\x8d\x36\xaa\xdc\ \x53\x33\x21\x8c\x8e\x8d\x33\x15\xd3\x26\xe4\x37\x09\xf1\xc1\xc5\ \x8f\x51\x73\xaf\x01\xbe\x65\x60\xfc\x11\xa0\x23\x13\x23\xf2\xce\ \xa1\xbe\x5d\xb9\xb8\x51\x01\x83\x81\x74\x74\x4d\xa7\x1e\x0a\x67\ \x80\xa9\xb8\xdd\xea\x83\xd8\xe8\x42\x93\xca\xcc\xf8\x7c\xe5\xcb\ \x2c\x88\xda\x24\x51\x89\xa7\x67\xe7\x18\x1b\x86\x86\x47\x60\x77\ \x38\x49\x82\x3a\x24\x7c\xf8\x21\xae\xb3\x0b\xe1\x99\x5c\x80\x6f\ \x09\xd0\x90\xde\xe1\x0f\x2c\x81\xab\x1f\xc4\x7d\xef\x04\xdd\x07\ \x1d\x61\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6\x21\x48\xcc\xfd\x4f\ \x7d\xee\xd4\x22\x9d\x55\x84\xaa\x9a\xba\x4d\x3e\x47\xe4\x8e\xf8\ \x3c\x3c\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2\x62\x9c\x7e\x2f\ \x1e\x3d\x03\x01\xf4\x2f\x02\x83\x84\xbc\xc5\xff\x2d\xee\x3a\x43\ \x28\x51\x91\xf7\xf6\x05\xf1\x4e\xdc\xbf\x7d\x84\x33\x69\xe3\x20\ \x18\xf4\x33\xab\xe0\xc9\x54\x68\x35\x38\xd1\xd8\xdd\x0b\x9e\x58\ \x89\xac\x5c\xf6\x33\x3e\x47\xaa\x9e\x9c\x9e\x65\xe4\xee\xf7\x0e\ \xa2\xd7\x6c\x41\x43\x03\x1f\x27\x62\xe3\x20\xe9\xd6\xc0\x45\xcf\ \x01\x52\x90\x24\xb8\x86\xb2\x9e\x00\x6e\xb4\xdb\x50\xd1\x1b\x44\ \x85\xce\x8b\x4a\x7e\x0b\x6d\xbe\x9b\x5b\x27\xd1\xa0\x99\xf8\x16\ \x65\x22\x05\xee\x29\xf4\x28\x13\xc8\x90\x78\x35\x0b\x1a\xad\x3e\ \xaa\xdc\x63\x13\x93\xf0\x0d\x0d\xc3\x66\xef\x83\xb4\x5d\x8e\xc4\ \x4b\x97\x90\xc3\xca\xc3\xd4\x63\xc0\x4e\x7a\x49\x31\x4e\xfa\x89\ \x94\x7f\x5b\x3b\x84\x7c\x85\x13\x25\x6a\x1f\x4a\xd5\x03\xe8\xf2\ \x30\xa3\x28\x22\xf8\xf9\x33\x09\x74\x8f\x2e\xa1\xa8\xbe\x15\xa5\ \x7c\x09\xb2\x4a\x2a\xf0\xcf\xe3\x71\x51\xe5\xf6\x07\x46\xd1\xe7\ \xf2\x40\xab\x37\x20\xfd\x6a\x06\x92\xbf\x48\x83\xcd\x37\x02\x27\ \xa9\xda\x40\x1a\x4c\xe0\x7b\x88\x52\x9d\x1f\x45\xdd\xfd\x0c\x71\ \x41\x97\x1b\xc5\xdd\x1e\x88\x9c\x41\xfc\xf9\xcd\xb7\x5d\x84\xeb\ \x6c\xb4\x43\xd0\x28\xf7\x4e\x23\xa7\xfc\x1e\xb2\x4b\xab\xf1\x51\ \xea\x57\x48\xfe\x6f\xea\xfa\x58\x51\xb9\x47\x82\xe3\xf0\x0c\xf8\ \x60\x34\x99\x51\xc9\xab\xc2\xfb\x67\xcf\x41\xfe\x40\x03\x3f\xe9\ \x6e\xb2\x8d\x19\xb9\x6f\x69\x06\x19\xd2\x9b\x2a\x2f\x72\xe5\x0e\ \xe4\x75\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca\x29\xc2\x53\ \xb8\xdd\x29\xdc\x2b\x76\x04\x90\x51\xc8\xc5\x95\x6b\x79\x38\x11\ \x9f\x80\x9b\xb7\x6e\x33\x63\x15\x91\xdb\x6a\x73\x40\x22\x6d\xc7\ \x85\x84\x0f\x50\x74\xbb\x0c\xf3\x2b\x80\x9f\x34\x58\xf7\x24\x20\ \x1c\x7c\x84\x4a\xd3\x18\x38\xfa\x61\x86\x9c\x56\xfd\x55\xb3\x1e\ \xac\x0e\x3b\xb8\x3a\x1f\xd9\x21\x1e\x7a\x2f\xe0\x13\xbc\xba\x5d\ \x02\x26\xbe\xc1\x83\x94\x6f\xd8\x38\x9f\x9c\x8a\x03\x7f\x3d\x04\ \x63\xaf\x99\xe9\x6e\x2a\xb7\x46\xd7\x83\xa4\xcb\xc9\x48\xff\x3a\ \x8b\x8c\xd5\x3c\x53\xb5\x71\xf6\xa9\xdc\x35\xf6\x69\x5c\x97\x59\ \x19\xd9\xbf\x6e\x21\xa7\xa0\xd4\x82\x74\xbe\x1a\x57\x9b\x34\x60\ \xc9\xcc\x10\xbb\x82\xf8\xe5\xaf\x5f\xa7\x67\xc0\x3b\xe1\x75\x1f\ \x35\xcc\x35\xdd\x66\x7c\x94\x96\x85\xb8\x73\x17\xf1\x97\x43\x31\ \x4c\xd5\x74\x99\xf0\xaa\xaa\x71\xfa\xf4\x19\x68\xcc\x0e\x8c\x92\ \x2d\x36\x14\x1e\xab\x5a\xc7\x0c\x78\xe6\x71\x70\x0d\x23\x4c\xa3\ \x65\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6\x5e\x94\x74\x39\xd0\x66\xf7\ \xaf\x1e\x3d\x11\x4b\x47\x2e\x6f\xc3\x79\x13\x35\x2c\x5c\x99\x1a\ \xf1\x97\x3e\xc7\xd1\xd8\x33\xf8\x38\x31\x09\x86\x5e\x13\x1a\x9b\ \x04\xf8\xdd\x1b\xfb\x51\x4f\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\ \x93\x60\x2b\x5d\x0c\x39\xf5\xbc\xf0\xbe\x67\xbd\xea\xcc\x16\x3d\ \x4a\x55\x1e\x08\x6d\x01\x94\xd4\xf1\x43\xe1\x65\x53\x40\xf0\xca\ \xf7\x25\x60\x2b\x6e\x6a\xc7\xa9\x84\x44\xc4\x1c\x39\x8a\xdc\x7c\ \x36\x5a\x5a\xc5\x38\x14\x13\x83\x2f\x39\x35\xc8\x14\x6a\x98\xe6\ \xa2\xd5\xd2\x27\xf5\x9a\x7a\x4c\x13\xa1\x49\x64\xb7\x99\x90\xdb\ \x6e\x46\xb9\xda\x8d\x06\xa5\x76\x39\x2c\x39\x3d\xf9\x4e\x13\xec\ \xd9\x72\xd4\x47\x0d\x3b\xab\x46\x88\x63\xff\x39\x8f\xdf\xee\xfb\ \x3d\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17\x70\xa3\xad\x07\x19\ \xc4\x4f\x4a\x14\xe9\x6e\xba\x58\xa8\xef\x2c\xfa\x94\x98\x50\x28\ \xb7\x40\xe9\x0e\x3c\xf9\x57\xec\x29\x2a\x77\x2d\xc1\x67\x04\xfb\ \xb6\xb9\xe4\x44\x8d\xbe\xcc\xb2\x5a\xfc\xe3\xe4\x19\x1c\x3c\xf4\ \x37\xb0\x72\xf3\xb0\xef\xc0\x1f\x50\x20\xd1\x21\x89\x27\x65\x2a\ \xa6\x4b\x85\x3e\xbf\x21\xd5\x46\xe4\x2e\x90\x5b\x21\xb0\x0c\xae\ \xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87\x6f\x3c\xaf\x3c\xe7\x96\x15\ \x35\x9c\x69\x45\xe5\xf8\xfb\xb1\x58\x1c\x3f\x19\x87\x37\xf6\xef\ \xc7\x8d\x3a\x11\x92\xab\xa4\x0c\x21\xed\x70\xea\x35\x55\x21\x8b\ \x34\x5b\xc9\x03\x37\x2a\x34\x6e\xd4\x49\x3a\x17\xc3\x72\x73\x08\ \x8e\x6d\x95\xfb\x87\x24\xe0\x4a\x65\x73\x70\xe4\xf8\x29\x1c\x3e\ \x7c\x98\x8c\x63\x2e\x32\x05\x2a\x5c\x22\xd5\xd3\x5d\x7e\x4d\xdc\ \x0b\x36\xe9\x74\x76\xa7\x1d\x77\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\ \x1a\x95\xfb\x22\xbd\x49\xfd\x80\x0b\x6d\xf4\x04\x32\x4a\x78\x4c\ \x0f\x9c\x4b\x49\xc3\xb5\xa6\x2e\x7c\xc2\x6d\x65\x36\x59\xf1\x83\ \x01\x5c\x97\x9a\xc1\x51\x7b\x20\xf3\x04\xd7\xce\x25\x26\x05\x36\ \xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce\x5e\x4e\x45\x81\ \x58\x85\x78\xf6\x5d\x5c\xa9\x55\x90\xaa\xfb\xc0\x96\xdb\x50\xad\ \x75\xe3\xae\x54\x41\x2f\x10\xca\x0d\x72\xbf\xba\xd3\x6a\xa3\x05\ \xb7\xa2\x51\xf8\x1d\xaf\x43\x8d\x4f\xb9\x2d\x88\xcb\xe6\xe1\x9a\ \x48\x8f\xaa\x1e\x2f\x9a\x35\xe6\xc7\x7f\x7a\xf3\x2d\x57\x78\xac\ \xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5c\x75\x1f\xde\xcb\ \xaf\x45\xb9\x76\x00\x32\x67\x60\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\ \xd2\xa9\xdc\x3b\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9d\x50\ \x0b\x39\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3\x2f\x22\xf7\x0e\ \xff\xda\x6d\x8a\xdd\x61\x99\xd5\x1b\xb6\xd8\x6b\xbb\x5e\x32\xbe\ \x2f\x89\xff\x01\x66\xb9\x5f\xfc\x11\x80\x3d\xcf\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x04\xca\x57\xa7\ \x00\x6e\ \x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\x7c\x5a\x07\ \x00\x63\ \x00\x6f\x00\x70\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0a\xc7\x57\x87\ \x00\x63\ \x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x08\xc8\x58\x67\ \x00\x73\ \x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\xa8\xba\x47\ \x00\x70\ \x00\x61\x00\x73\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\xc1\x59\x87\ \x00\x6f\ \x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x03\x58\ \x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\xdd\ \x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xc5\ \x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x12\x6c\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x08\x96\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/mainwindows/application/images/0000755000076500000240000000000012536324427023701 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/mainwindows/application/images/copy.png0000644000076500000240000000247212536324427025366 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<ÌIDATXõ—]L[eÆwo¼ÙåI q×&ãN¸pÑ…D½Pãå+.&J'†ª‹™àТl†9ܘ€@l¦CÊ +ƒ(ÌÚÑ–ÒÒJ{ú¥ÐïßÿÛÇÌ*‡“<9o!œç÷<ïG‡ÊFϽúé»LZ&aj`ÊÙéyÙš?]Pò¥Áé§WÃ@0„¢­Ç2Š'X"s¿ykÚKr{ç¬ÚØÈ˜@„™…ã‘1)Ka%”D8šBs‡Æ¾Äÿ“y$ñÈX’Ï„]ŒÂå "K£ôÃïM4uY°ëØ6Õž:ü̹ç_.?VžEEU *™Þ¯­Ã±‰Ç¬¶%ü¹è‡kXöÆÒ¯œ¾pŸAÙ€]‡™ŠŠŠÌ’Z[[ݤ¯U­þ¯Tߦ195…Ù¹9è&&PPP€!Ío|ÞI¦ù̘\ÀáOAô…ðC¯ÎÍjöPCfØåŠÇãðz½H§Ó˜œœDee5fg¼ftÓ@2-xðÝQ¬ápF£‘S©~êíEã'Ÿa†A8–ÜPwuãLC#Î5Çí‘q\¼>,/ÀÆÆôzýc@}}ýP2ˆÐFf› ‚Áˆ©¬—ºdn€¦Ø:Ø~E"”+*0®@çmWÚª4¾|Sæ5@f:ÃÃÃèeõ÷÷÷C«Õ¢ªºcwõ*wí¶Ú»e y·ÛíBgg'zzz8PIiniõ×o°ùg¸Ð%3ÀÖÖß @¢(Âï÷cmm §•Ðü®ç©É|Á ˜=@›ÜÛA677ùv¤VÕèûUà©Gç;€Ì%€$3O$(+¯â¸‹˜ 6ZÕ0ÿ˜'“<=MIÉ©J ·³‰=Åø0±|qõ¤êɘ‹ÅP¦¨‚zHÀ˜¸k朙ûçWdÒSjˆF£Ü< ¡¸´×Üf‡ä dÄ(;dH=œs™Ó¹@ ÅeU¸Ø- :c®}ià£v™þ]=¥&­®®rˆ·J*p¹WÀ=¸~žîÌg.í@ªD‹Ž’ÓqLß+++X__ç'Yßt PO¿Ìe¸24ì§ÉXÚëdNi)9D@õÓÏÞ|[–ëO~u¸qøq,ž~½Nm¦7ª¬žd,m72%Ñ#òäÌ'hï ¼f[O5âÉxG•JŤ.Í7RR:÷)µÃáà"ãÅÅEõâñ—\ô¹“é®---né`¡ÔÒ— ———áóù`³Ùø}ii‰C ͲТ’R“éNßxT;5`µZyõÔ ýÎ`0$òòòî³gÙ@SS“[šgJO"ªšÆ‹™7@ŸGGG#mmmÞüü|ûÛA¦²½šÿ'@ss3ŸJGT?U???ÏëÖh4‘ºº:çô]L0ÍÆxG¥Rév:¼bJJo>”´¾¾Þ™““#™gSuVn‹Å‚Hmm­377WVÓÝøFLÂA™n×ßC9V…pÈIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/application/images/cut.png0000644000076500000240000000245312536324427025206 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<½IDATXÃíWkL“W>#qÉ2é—¨Te8ö‡2“f,[pÄ0ÿ`¢.:Nº1‰[³€Ù „X‹…²‚•^äf Ž1øÃFË-ܨ·ji‘ò¯ ܸ aÙ²“<í—ó}ýÞç¼ïó^J€ü“ ÿ t (DÙq+F€®ÝdÝÆf"Lø•Ä‹GÈ¡Ó÷ÈŽ—;82a+A …œ¾0H.Ý€@2«yMô¾ûrhd‘^£Qôî…GõнƒËM ›ö@t/½2= ‰?H¥,Œ1yÁ»ˆKÆ×Æ& ¹ýBþÅ+6FŒ\N“§§§ ÌÓ9¹˜c6 Òä£+A Œ)ž*ß7GëÜ{µÌ‰ž@D–Tƒ+, 6FHõd*{.Tø7¿À4*TßbˆRÕ,XtzEUõÈ mtÂÔs÷!¾sQ•®ÐÏ唃‡´žÌ.Ôݯ™Ë°¯¯¯>¿Ò`µÛí€øyä>Ä^«´¹ˆ/†€'ÓÀgùŽõ`×^3ºvÚsîhØÇÇGŸ««° Á‡²ö.ç–7÷wsaؽè^€/fš †ß©6B÷ðØŸÔϥ犘-~þm—Tk__¸ÐÑsbrVNć—ÔŒ0é·8@¤Ö1ž…›~m©%[—Ù æ. ó$ß6Ž{½ÑÍBÈ o©<ѽV«w„ó’\»R©„úúz0™L uß5ÁQ±dÉQD>¶vÌ´@O“_~ÓÖßß2™ D"¨T*J¥ Ñh K[9¾é•à¸S¯y,ó—Ž"žÇ†æS)ö‚‚æâ   àñx`±X@[^ûÏ& -¦SÎg”Ï Lƒâ[{æÂ`š² ˆÅbÈÌÌ„¢¢"P«ÕÐÙÙÉ`ìþɹÉÛ§u.·ÏK€®·Ø)pÀj—¬xˆÊ‚â)‰>—+![–cãG„&Ø’rdŽo¿£Ñ-­-ðËÀ 8ñ¾³bÁ\i„……„FÜ&ç2¬,Ï3µì;ãºÓ3¯‚åþz‰žÞüb÷<’{f«O[Ê5íXCC=444€¥·2ÅÃóéÀe<’å(ž6]åœ*2x}ôƒ.Zl1 %êq÷/Ë'ï‡_þÓäD LhôÉ>u• ´··Ãׯ–1® fñ6m8hí÷*>]åXªñGZõ¶Y ³CÉ‘8 9ù©–!ú\ ϳÿÿ7üOøç‡¹DÃÏIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/application/images/new.png0000644000076500000240000000152412536324427025202 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<æIDATXÃÕ—ÍNa†ë5”•{qáÒÄà¸â\¸ô\±0ê–&bX¸°‘X Ñ¿‰¤±R¤HE”þÐCÿ¦¦e€ãy{ú…QJ‚É!†IÞœ3§óÍûœóM›N„ˆ"ÿS‘sÀÇÕnÿ¥û¬Ç==d ©ð12<<¼j4::ºV<¯&“ÉV:v‰Dk`` Íknh¤8Òááq™ºï·É²,Úßß'†ñxÍëŠ@?ó°Ç¥Lf¹ Åb±:¯{pˆSww²lÛ¡ùùÏd×uéùÄDB&{Áɪ7JÎÍSøp]‹T‚@gOÎí¦Ggféõ›·Ÿœ¤©©iz÷þE£Ñe^AÀïí¶%†…šã”]ÍÑäô+z2þ”žÅ^ÐLb‹UÚõ <ÿjÍ67«”/nS‰c·…×~QðyÌÍ]µÇ{ÛîŸ;¾äˆ]¸½îâ”Ê3àuäÆuWbØ9êæ3DÔ§àô:­9"˜˜hr€˜kPS*-¹1âNSŒ òmû(¶|E›;ÛjüiŽûÅS(ðC¸fI÷kùR‡×¾TÈUºN­K¯…Þ·Â’=O¦³Þ£±qëÚÐõ˜³n©l4¤kÿàZSÔ Yoäî½â¥ÁËK|mŒu‡5¨ú·ÝeÙ<þžÏ7½Éºx&oFhòÿ™”žé?¿BÓôü½œž¥~Ql%¡’• wIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/application/images/open.png0000644000076500000240000000403112536324427025346 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<«IDATXíW[P“göÊÎìÌöb/¼ÙéÎìn½ÚÙ›µÎº;{°­Ìz±ÎÎ:³vTpuÛâÖ¶T»¥ mÁ‚QB€€€!’@Hs$!gr€B œ GµTxöû~0X‹}gžù/’üÏû>Ïû¾ß—]vý˜ ñ ‚Áu‚ÏýþH¼› áW¯ïµ*ŒÖeÛ`[ 'ñ3ú"üÜ>vH~Š ¹¶Y2Ï­B9þDöQØÇæè‡†={öXSR®,Ê::NâåIÃÄ1·>Iù,`›]YSMM¶4ëû 1y`Å»ï¾?Å«¾ƒñ‰)LOÏ®’ï×¼tŸ¾ã²CO´3@‹{Í=.4ëì¨Wö ‡S…2^5C¼°ôÁ`\&¿K|áH$8AýÝês'ñ¹'H‡—Á×» "U7Ü7¢¸Nˆ,V>ÌVÛ:q,k,üÎç'‘6“•?F}¥þÄoôY1¶~ï Z{œà?0¡L(CF²ù&ÒùÅeÌ-,!4¿ˆ½{÷ZÉ;~ºm$~CF=5iu³€Ò?ËÄâšP¡Z´lñY ¶ ¦]/²sq·žÿ 1% ÍcbjƒC'äݼ-Ó°;’3&ÔSµÓûXOˆÅ!ˆ,CPºFÐí Bå›B›sü©ÏZî*tȼÉE §l“Ï›ˆ'§Ào¢ÖÖ%ÂQÛ(‡Æ¯‚/b”M‰$"êR-šB«èy¡ÅÏStö £Óá‡Ô<€½ ]Õ ‘• /yñƪ©Ô³s LÅ”ØÝï…Éb·¼¥å•KóË«#7ÙæÙ„—Ë<Ðhò£Ýî_'–;† ³x×}æ¤ø<3*6ªÜS3!ŒŽ3Ó&ä7 ñÁÅQs¯¾e`ü ##òΡ¾]¹¸QƒttM§ g€©¸ÝêƒØèB“ÊÌø|åË,ˆÚ$Q‰§g熆G`w8I‚:$|ø!®³ á™\€o ÐÞá,«Ä}ïÝaëÿŸÀ¹ö!HÌýO}îÔ"U„ªšºM>GäŽø<<„ÓݽÁˆÂâbœ~/=ô/ƒ„¼Åÿ-î:C(Q‘÷öñNÜ¿}„3iã ô3«àÉTh58ÑØÝ žX‰¬\ö3>Gªžœžeäî÷¢×lAC'bã éÖÀEÏR$¸†²žn´ÛPÑD…΋J~ m¾›['Ñ ™øe"î)ô(Èx5 ­>ªÜc“ð Ãf]ŽÄK—ÃÊÃÔcÀNzI1Nú‰”[;„|…%jJÕèò0£("øù3 t.¡¨¾¥| ²J*ðÏãqQåöFÑçò@«7 ýj’¿HƒÍ7'©Ú@Là{ˆREÝý qA—Å݈œAüùÍ·]„ël´CÐ(÷N#§ü²K«ñQêWHþoêúXQ¹G‚ãð ø`4™QÉ«ÂûgÏAþ@?én²¹oiÒ›*/råäuö¡ð¾•ùœÊ)ÂS¸Ý)Ü+vQÈÅ•ky8Ÿ€›·n3c‘Ûjs@"mÇ…„Pt» ó+€Ÿ4X÷$ |„JÓ8úa†œVýU³¬;¸:Ù!z/༺]&¾Áƒ”oØ8ŸœŠ=c¯™én*·F׃¤ËÉHÿ:‹ŒÕÇÑØ3ø81 †^›øÝûQOÔñ™îšª­“`+] 9õ¼ð¾g½êÌ=JUm”ÔñCáeS@ðÊ÷%`+njÇ©„DÄ9ŠÜ|6ZZÅ8ƒ/95Èj˜æ¢ÕÒ'õšzL¡Id·™ÛnF¹Ú¥v9,9=ùNìÙrÔG ;«Fˆcÿ9ßîû=ùœ¿€“ñp£­ÄOJénºX¨ï,ú”˜P(·@é<ùWì)*w-Ágû¶¹äD¾Ì²Züãä<ô7°ró°ïÀP Ñ!‰'e*¦K…>¿!ÕFä.[!° ®åÜâÒä‡o<¯<ç–5œiEåøû±X?‡7öïÇ:’«¤ !ípê5U!‹4[É7*4nÔI:ÃrsŽm•û‡$àJespäø)>|˜Œc.2*\"ÕÓ]~MÜ 6étv§wŒäˆ¶ùž„·•û"½Iý€ mô2JxLœKIõ¦.|Âme6Yñƒ\—šÁQ{ ó×Î%&6ÈýÇÈÕ‚ÜÎ^NEX…xö]\©UªûÀ–ÛP­uã®TA/Ê r¿ºÓj£·¢Qø¯CO¹-ˆËæášHª/š5æÇzó-Wx¬¨Ü¯½¬ÜÑâÝ\uÞ˯E¹v2g`õ§—©Ü÷Ò©Ü;øóÂñ‚ÊîP 9”¸ ÂÈ£‡Ã/"÷ÿÚmŠÝa™Õ¶Øk»^2¾/‰ÿf¹_ü€=ÏIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/application/images/paste.png0000644000076500000240000000315512536324427025527 0ustar philstaff00000000000000‰PNG  IHDR szzô4IDATx^­—[lTÇÆsÎÙ‹½öú ¾²ic$BJ!"¡-•b¥/îKh+•¦U¥Æ`UªÚ´ªúV UÊ”'Ú„)­Ä‹¥RƒyÅ9iÓ„š›cjì²;»öz½»Þ³g¦Ãh…årlˆÉ'}úŸ‡ý~óŸ™sJ)‚$„xxžÇkH)õwÖ(' ¸C»h—R¾ÆcdYÖö»@·9ÿ&ü·íõâ`]DDnΉŠ+W®P]S@ Pe(A)fÓi^©/¼´Nl;ñ¹Gƒ|[CL;…D•2â¶Ä¶!!p>SlŒ;€D*ðœàË@P4`ÄHiŸ$Nœ8!Ò‡––g emå(¥´AXW%âØDBÃs\¼=A÷XŽ\$¾©½}÷ï-ËZܱcGYUU•ÓØØ~à†††Ð¥K—Ü®®®ðÖªDU,ÂsÕ1òžO¡(‘Ja Aرˆ†lær¢Ž?Ÿÿ+ M"Àf–„ïûxžGuuµžPKôêÕ«‡„(¥ÞZÀ²A¶-Ú¶8¤XÂŒL¹ì{õ;Ô76|/Á„g2ÊËËÍf>vìØ&½.A,ÐÙÙ©:¤l!Y¶-ÇÆBP´ÍDzˆ8–®`YxÀÜÜ555 räÈ‘ÍÀˆ¢Çb¹°mt0fË#6±¨£Ç,2‹“™c©yîÌ.èßErù<«È,A6›5§féÿm8°èX ´tŽ áÀSб¤ËŒƒÓ²—¦}¯³µã¬Ûû: /´sûÎ$ýýý$“I”Ræúøñã躬3çÎãèÑ£>|˜ÞÞ^‰„,¡ÜíÿÎæøç”OkÇÏøæ/ß&öõ7™|¦ƒkþ.®ñ-dk­{N^VsúogÑwMîÜâ¯vrýúu gkÖ?‹™ëx<Žã8%8À#–%˜ÊA:ÞÊþß½MÕ®×(„bÛBY‚lArf‘Oîf¸êrúadÕ^®Üg2ׯ…î›í‡¡ÍÍÍ´µµ755¡¡ ƒFÜqßÿéo¨lØHâì;L^É”±µy›[¶óIy%c —ÏfòÜÎ2¡íˆ L'çØ·+Êú%3{=kêêêÌu*•2J+ ¹Zpác(,ÊæÆÙR”’{Ã}$eÛÚLMÛË|<œfÒ_ÀÍx,Ìk/x µt:B¡ -ÝêŽ*ø>`ÁƸ P#‹S·¥–’xv}é¬ÇhÿŸ˜®¼LËöƒ¸ a¼‚¤X”xÚ!ÇB-ª€ãi –ÕÖÇC„Ê#ü¿jc!ž© sá߃ìÙùÊ£¹2G(akK!¥%0*¤\@X¥*Ìõ#úpl†ñYïýúÜÊÔàD\¢Ï“=Ó¥RòPjYVL vùÕ_†½·€=“gÓº2òy_»hêίÔpùÝà%žx L¸<¢Ö/Uò‡>ÏõO3D·±óÅ—Y\N`ŽÛS(À%mÔR}±µ–Ý[ât¿—¥j÷WùÑo µ˜µ7ÕØÒËSpSxó3³i %ýÕ‚Öðð)çãç3æu¨ÖË÷‰Á3}ú×rŒ²7Dzþ­”Ìo÷DTØ_p’ ý×=?ý~B¦Ïßöïîv;ü’¨ãsÊu]pWí@2« ~*Ó½·üÔÍi9ô—th¿¢Ó¶í¯}ž%XXXðÒ'Ožœºƒ>IÊ­ã³*×;â§nLËÑRèYt‹= ÀÐÐÛÓÓ“ÒNÏÎΞ.½ßèîê)Œ„…¯055UÐ/"©S§N%ÇÇÇ/g~쮸 KßvÚO&…@@aZüÞà`º»»;¥ßŠÌ$Ð^ísÍaíšw3n`pðýt___úÌ™3¦Å¥Ðx‰µžc!DxØOis´ø±ú½ú*_òØIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/application/images/save.png0000644000076500000240000000224312536324427025346 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<5IDATXÃå—ÍTEÅ·êÖ{¯ÛnÇù@‰FM4™DH˜ÄŒþL\ñ.M\kXÃŽÄ΂htA\ âÄÆ=`PQ`¢ ƒÓý^÷”‹ªîù`æ „QVR©Î{·ëž:÷Ô©zê½ç~6å>·>€]»v½ìýòN5ëػ」;vœ<:ÏÌ—7XœïÜS¦Ú òÜk¼¸g€‹|øî€Ûpüìß?0x.ý¸Àþ·ÎoËryš #–ÓŸdüÕ}›k@E°@xp,#˲m00–aP|#%"+ؑՕsç΃*¸Ò² Ò,ŒI IÞw:ç·¡Õ‚v+Žm(r²ú8Ö ã¯¼Ikñú欬°Fؽ{çk놮€Z¨VêmQ¯µ‚÷ ¦„g5‚¨ •,Ã# Àð/Þ#&|ˆ#Ä!Яª‹öØ'aa½%% ð4M£:ó˜‰lÚc V˜_)FüaÍra-Ñ€: TIO4/à…Ä!‰Ãg ’i؉â‡X‹ïv‘¼€¼íßj#íòŸwPEÕ x:ëTx›œ3x$¼þòówhè6h¤¾ñëÆüß±R^‚DM_„ ¥8ç¶ÅˆžK¹v³Rª¸PïZÅ0}±Ë@Űô&­WùU.ááÆÒ2õÌp}É„-éJœÀsåf—+7»¬QW?תd~Å'¢)¬Ü µw¦l¨Á© È5¯›5Y1žþ{éïñ‚ï›X0+WVU!ÑüçSßòë™,-Þ¸§úWj<õìNžya¨3[1|‡÷÷¿Á·nÝ¢( Dk-ÖZTUÅ9‡ªb­Å˜ðßååeò<ï÷#Íù¸ò-pVPÜ1:¶rO8~œééiŒ1x˜`rròŽYØ1:Ö߆®Ô Up6¬¢V¯÷k933ÃÐÐÖZ¼÷4›Í»P«×pш´Ôˆœ '\ *¨V«dYÖ§¸7Þis©AK­8ǽ#´×Œ1ˆDß:¸«›¯5¨ óö.=Žƒ)mãÕÛ©÷åVl­ô‘Ž ÃòïÛà¡‘aÔµ+—Yœ¿¾6øÀ`­ ÛÃÀP­ÂìÅKœýîΟœž¦6`$^J í‘'©= o8ÈfÇ':ñ*ç52(ºpùêUÎ4ŽÑüú‹¹ÙNoà³>à§Ó'W™éÚ£†Uæ»<_o|wîÙ_‡Æ_˜šþôãõsl}ò5â·ÚÿÝ×ñ?MðK¹èF‰¯IEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/0000755000076500000240000000000012536324427022440 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/dockwidgets.py0000755000076500000240000002757712536324427025346 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui try: import dockwidgets_rc3 except ImportError: import dockwidgets_rc2 class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.textEdit = QtGui.QTextEdit() self.setCentralWidget(self.textEdit) self.createActions() self.createMenus() self.createToolBars() self.createStatusBar() self.createDockWindows() self.setWindowTitle("Dock Widgets") self.newLetter() self.setUnifiedTitleAndToolBarOnMac(True) def newLetter(self): self.textEdit.clear() cursor = self.textEdit.textCursor() cursor.movePosition(QtGui.QTextCursor.Start) topFrame = cursor.currentFrame() topFrameFormat = topFrame.frameFormat() topFrameFormat.setPadding(16) topFrame.setFrameFormat(topFrameFormat) textFormat = QtGui.QTextCharFormat() boldFormat = QtGui.QTextCharFormat() boldFormat.setFontWeight(QtGui.QFont.Bold) italicFormat = QtGui.QTextCharFormat() italicFormat.setFontItalic(True) tableFormat = QtGui.QTextTableFormat() tableFormat.setBorder(1) tableFormat.setCellPadding(16) tableFormat.setAlignment(QtCore.Qt.AlignRight) cursor.insertTable(1, 1, tableFormat) cursor.insertText("The Firm", boldFormat) cursor.insertBlock() cursor.insertText("321 City Street", textFormat) cursor.insertBlock() cursor.insertText("Industry Park") cursor.insertBlock() cursor.insertText("Some Country") cursor.setPosition(topFrame.lastPosition()) cursor.insertText(QtCore.QDate.currentDate().toString("d MMMM yyyy"), textFormat) cursor.insertBlock() cursor.insertBlock() cursor.insertText("Dear ", textFormat) cursor.insertText("NAME", italicFormat) cursor.insertText(",", textFormat) for i in range(3): cursor.insertBlock() cursor.insertText("Yours sincerely,", textFormat) for i in range(3): cursor.insertBlock() cursor.insertText("The Boss", textFormat) cursor.insertBlock() cursor.insertText("ADDRESS", italicFormat) def print_(self): document = self.textEdit.document() printer = QtGui.QPrinter() dlg = QtGui.QPrintDialog(printer, self) if dlg.exec_() != QtGui.QDialog.Accepted: return document.print_(printer) self.statusBar().showMessage("Ready", 2000) def save(self): filename = QtGui.QFileDialog.getSaveFileName(self, "Choose a file name", '.', "HTML (*.html *.htm)") if not filename: return file = QtCore.QFile(filename) if not file.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "Dock Widgets", "Cannot write file %s:\n%s." % (filename, file.errorString())) return out = QtCore.QTextStream(file) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) out << self.textEdit.toHtml() QtGui.QApplication.restoreOverrideCursor() self.statusBar().showMessage("Saved '%s'" % filename, 2000) def undo(self): document = self.textEdit.document() document.undo() def insertCustomer(self, customer): if not customer: return customerList = customer.split(', ') document = self.textEdit.document() cursor = document.find('NAME') if not cursor.isNull(): cursor.beginEditBlock() cursor.insertText(customerList[0]) oldcursor = cursor cursor = document.find('ADDRESS') if not cursor.isNull(): for i in customerList[1:]: cursor.insertBlock() cursor.insertText(i) cursor.endEditBlock() else: oldcursor.endEditBlock() def addParagraph(self, paragraph): if not paragraph: return document = self.textEdit.document() cursor = document.find("Yours sincerely,") if cursor.isNull(): return cursor.beginEditBlock() cursor.movePosition(QtGui.QTextCursor.PreviousBlock, QtGui.QTextCursor.MoveAnchor, 2) cursor.insertBlock() cursor.insertText(paragraph) cursor.insertBlock() cursor.endEditBlock() def about(self): QtGui.QMessageBox.about(self, "About Dock Widgets", "The Dock Widgets example demonstrates how to use " "Qt's dock widgets. You can enter your own text, click a " "customer to add a customer name and address, and click " "standard paragraphs to add them.") def createActions(self): self.newLetterAct = QtGui.QAction(QtGui.QIcon(':/images/new.png'), "&New Letter", self, shortcut=QtGui.QKeySequence.New, statusTip="Create a new form letter", triggered=self.newLetter) self.saveAct = QtGui.QAction(QtGui.QIcon(':/images/save.png'), "&Save...", self, shortcut=QtGui.QKeySequence.Save, statusTip="Save the current form letter", triggered=self.save) self.printAct = QtGui.QAction(QtGui.QIcon(':/images/print.png'), "&Print...", self, shortcut=QtGui.QKeySequence.Print, statusTip="Print the current form letter", triggered=self.print_) self.undoAct = QtGui.QAction(QtGui.QIcon(':/images/undo.png'), "&Undo", self, shortcut=QtGui.QKeySequence.Undo, statusTip="Undo the last editing action", triggered=self.undo) self.quitAct = QtGui.QAction("&Quit", self, shortcut="Ctrl+Q", statusTip="Quit the application", triggered=self.close) self.aboutAct = QtGui.QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.newLetterAct) self.fileMenu.addAction(self.saveAct) self.fileMenu.addAction(self.printAct) self.fileMenu.addSeparator() self.fileMenu.addAction(self.quitAct) self.editMenu = self.menuBar().addMenu("&Edit") self.editMenu.addAction(self.undoAct) self.viewMenu = self.menuBar().addMenu("&View") self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) def createToolBars(self): self.fileToolBar = self.addToolBar("File") self.fileToolBar.addAction(self.newLetterAct) self.fileToolBar.addAction(self.saveAct) self.fileToolBar.addAction(self.printAct) self.editToolBar = self.addToolBar("Edit") self.editToolBar.addAction(self.undoAct) def createStatusBar(self): self.statusBar().showMessage("Ready") def createDockWindows(self): dock = QtGui.QDockWidget("Customers", self) dock.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea | QtCore.Qt.RightDockWidgetArea) self.customerList = QtGui.QListWidget(dock) self.customerList.addItems(( "John Doe, Harmony Enterprises, 12 Lakeside, Ambleton", "Jane Doe, Memorabilia, 23 Watersedge, Beaton", "Tammy Shea, Tiblanka, 38 Sea Views, Carlton", "Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal", "Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston", "Sally Hobart, Tiroli Tea, 67 Long River, Fedula")) dock.setWidget(self.customerList) self.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock) self.viewMenu.addAction(dock.toggleViewAction()) dock = QtGui.QDockWidget("Paragraphs", self) self.paragraphsList = QtGui.QListWidget(dock) self.paragraphsList.addItems(( "Thank you for your payment which we have received today.", "Your order has been dispatched and should be with you within " "28 days.", "We have dispatched those items that were in stock. The rest of " "your order will be dispatched once all the remaining items " "have arrived at our warehouse. No additional shipping " "charges will be made.", "You made a small overpayment (less than $5) which we will keep " "on account for you, or return at your request.", "You made a small underpayment (less than $1), but we have sent " "your order anyway. We'll add this underpayment to your next " "bill.", "Unfortunately you did not send enough money. Please remit an " "additional $. Your order will be dispatched as soon as the " "complete amount has been received.", "You made an overpayment (more than $5). Do you wish to buy more " "items, or should we return the excess to you?")) dock.setWidget(self.paragraphsList) self.addDockWidget(QtCore.Qt.RightDockWidgetArea, dock) self.viewMenu.addAction(dock.toggleViewAction()) self.customerList.currentTextChanged.connect(self.insertCustomer) self.paragraphsList.currentTextChanged.connect(self.addParagraph) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/dockwidgets.qrc0000644000076500000240000000030612536324427025455 0ustar philstaff00000000000000 images/new.png images/print.png images/save.png images/undo.png PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/dockwidgets_rc2.py0000644000076500000240000006613112536324427026076 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:44:32 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x06\xc4\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd9\x04\xdc\xb2\xda\x02\ \x00\x00\x06\x7b\x49\x44\x41\x54\x58\xc3\xad\x57\x69\x4c\x54\x57\ \x14\x76\x21\x62\x95\x04\x97\xa8\x25\x18\x52\x1b\x0d\x11\x45\x04\ \xaa\xa4\x49\xb5\x56\x4d\x6c\x69\xb0\x68\xa3\xb6\xc5\xb2\x46\xfd\ \xa3\x2c\x61\x51\x48\x24\x08\x64\xc2\x12\xd0\x22\x42\x11\x59\x44\ \x40\x40\xf6\x91\x7d\x53\x36\x09\xb2\xa9\x08\x0e\x24\x0c\x62\x01\ \x83\x02\x82\x0b\x08\xa9\x5f\xcf\xb9\x99\x31\xa3\x80\x9d\xb4\xf3\ \x92\x2f\xf3\xde\xbc\x7b\xce\xf7\xdd\x73\xce\x3d\xf7\xbe\x79\xf3\ \x54\x2e\x3b\xbb\xe8\x2f\x1c\x1d\x23\x1d\x1d\x1d\x23\x02\x1d\x1c\ \x2e\x48\xd2\xd3\xab\x25\x97\x2e\x15\x56\x47\x46\xde\xac\x4d\x4c\ \xac\xa8\xad\xaa\x6a\xbf\x2f\x95\x36\x41\x89\x2b\x57\x4a\xdb\x8d\ \x8d\xf7\x7c\x49\xa6\xf3\xe7\x69\xe8\x5a\x68\x6f\xff\x47\xa1\xfc\ \xf1\x73\x4c\xff\x0d\xb5\x10\x10\x98\x3c\x48\x76\xc6\x1a\x13\xc1\ \x33\xf2\xf4\x4a\x7a\x3d\x36\x09\xa8\x03\xf9\xc0\x38\x2c\x2c\x7e\ \xce\x21\xd3\xb5\x9a\x8a\xc2\xfc\xc3\x87\xfd\xa3\x8a\xab\x64\x18\ \x7a\x0d\xb5\xe0\xe3\x1b\x3f\x4a\x76\x3f\x11\x3e\xd3\x88\x82\xed\ \xdb\x0f\xac\x3d\xeb\x97\x89\xde\x17\x50\x0b\xf9\xe5\x32\x18\x18\ \x18\xc7\x91\xe9\xe7\x1a\x8b\x82\xad\x6d\x58\x79\x63\xf7\x38\x64\ \xcf\xf1\xaf\xe0\x71\x16\x16\x07\x5b\xc8\xee\x2b\x82\x96\x46\x14\ \xd8\xd8\x04\xfb\xa4\x15\xc9\xd0\x3a\x08\xb5\x60\xe7\x18\xf4\x9c\ \xcc\x7e\x21\x2c\xd1\x88\x00\x4b\x4b\xaf\x8d\xa1\x97\xaa\xd0\xf0\ \x17\xd4\x42\x08\x8d\x25\x33\x7f\xc2\x0a\x8d\x2d\x49\x17\xf7\xa4\ \xfe\x4a\x39\xa0\x0e\x22\x92\x9a\xa0\xa7\x67\x28\xd5\xe4\x6a\x98\ \x47\xcd\xa8\x28\xbf\xfd\x2d\x8a\xba\x31\x27\x0a\xba\x80\xdc\x4e\ \x20\xb6\x74\x00\x86\x86\x3b\xea\xc9\xcc\x54\x63\x75\x60\x67\x17\ \x1e\xc4\x8e\xb3\x3a\x80\x8c\x36\x20\xad\x09\x48\x69\x00\x92\xea\ \x80\x84\x6a\x20\xa6\x1c\xc8\x6c\x04\x4a\x1e\x00\xf5\xed\xe3\x68\ \x6a\xea\x80\xaf\xaf\xef\x2b\x32\x35\xf8\xdf\xe4\x12\x89\x44\x2e\ \x95\x96\x20\xab\x70\x00\xa9\x52\x08\x94\x10\x31\x71\x50\xf3\x01\ \x7a\x9e\x8c\x61\x68\x68\x08\xbd\xbd\xbd\x78\xf8\xf0\x21\x1e\x3c\ \x78\x20\x7e\x13\x13\x13\xb1\x7b\xf7\xee\xda\x43\x87\x0e\x05\x58\ \x5a\x5a\x6e\xe4\x54\xfe\x27\x01\xa1\xa1\xa1\x7d\x13\x13\x13\x98\ \x9c\x9c\xc4\xd4\xd4\x14\xba\xba\xba\x70\xe7\xce\x1d\xdc\xbe\x7d\ \x1b\xf9\xf9\xf9\x28\x29\x29\x41\x55\x55\x15\xea\xeb\xeb\xd1\xdc\ \xdc\x2c\x04\x30\x92\x92\x92\x70\xe3\xc6\x0d\xe4\xe5\xe5\x89\xfb\ \x13\x27\x4e\xdc\xdd\xb1\x63\x87\x99\xda\x42\xec\xec\xec\x96\xd9\ \xda\xda\x7e\x17\x12\x12\xd2\xce\x33\x54\xa2\xb0\xb0\x50\x38\x56\ \x25\xcf\xca\xca\x42\x42\x42\x02\xc2\xc3\xc3\x11\x17\x17\x87\xab\ \x57\xaf\x0a\x81\x7d\x7d\x7d\xe8\xe9\xe9\x11\x36\x75\x75\x75\x38\ \x7d\xfa\xf4\x84\xb9\xb9\xf9\x6f\xe4\x5e\xfb\x93\xe4\x47\x8f\x1e\ \xb5\xa7\xc1\x2f\xa2\xa2\xa2\x10\x1d\x1d\x8d\x8c\x8c\x0c\xc4\xc6\ \xc6\x22\x37\x37\x17\x39\x39\x39\x88\x8c\x8c\x04\x09\x03\xbf\xbf\ \x76\xed\x1a\x2a\x2a\x2a\x44\xd8\x47\x46\x46\x30\x3c\x3c\x8c\x67\ \xcf\x9e\x09\xb1\x4f\x9f\x3e\xc5\xe0\xe0\x20\x06\x06\x06\x50\x50\ \x50\x80\x86\x86\x06\x78\x78\x78\x4c\x6e\xda\xb4\xc9\x69\xce\x76\ \x6d\x63\x63\xb3\x2b\x2c\x2c\x4c\x84\xba\xa3\xa3\x03\xf7\xee\xdd\ \x13\xbf\x72\xb9\x5c\x08\xb8\x7c\xf9\xb2\xf8\xef\xd5\xab\x57\x18\ \x1f\x1f\xc7\xd8\xd8\x18\x46\x47\x47\x3f\x49\xde\xdd\xdd\x8d\xca\ \xca\x4a\x11\xb9\xb6\xb6\x36\x1c\x38\x70\x60\x88\xa8\xbe\x99\x75\ \x95\x1c\x39\x72\x24\x4f\x26\x93\x89\xd0\xa9\x8a\x60\x43\x26\xe2\ \xfc\x96\x95\x95\x7d\x92\x9c\xc5\x36\x36\x36\x8a\xd0\x73\x0d\x30\ \x79\x6b\x6b\xab\x28\x54\xf6\x1b\x14\x14\x04\x13\x13\x93\xbc\x59\ \x7b\x05\x55\x6d\x0d\xab\x56\xe6\x4f\x55\x04\x3b\x61\x42\xbe\xe7\ \x9c\x2a\xc9\x79\xb6\xf7\xef\xdf\x17\xa9\xe0\xda\x60\x81\x2d\x2d\ \x2d\x82\xf0\xc9\x93\x27\x78\xfc\xf8\x31\x1e\x3d\x7a\x24\x8a\xb4\ \xa6\xa6\x06\xc1\xc1\xc1\xa0\x5a\xe8\x20\xba\xef\x67\xa4\x82\xc2\ \x53\xdb\xd9\xd9\x89\xb9\x44\xb4\xb7\xb7\x8b\x99\x73\xf1\x71\x11\ \x4a\xa5\x52\x14\x17\x17\x8b\x77\x4c\xa6\x0c\x3b\x93\xb2\x60\x26\ \xe4\x48\x30\x6e\xde\xbc\x29\x0a\xd4\xdd\xdd\x1d\x5b\xb7\x6e\x95\ \x11\xdd\xef\x04\x9d\x0f\x04\xec\xdf\xbf\xbf\x96\x0a\x50\x38\x9d\ \x4b\x04\x3f\xf3\xcc\xf9\x9d\x6a\xce\x95\x4b\x94\x0b\x8e\x57\x06\ \xd7\x4c\x76\x76\xb6\x28\x64\x3f\x3f\x3f\x38\x39\x39\xe1\xd8\xb1\ \x63\xf0\xf6\xf6\xe6\x14\xb0\x00\xfb\x19\x02\xa8\x69\x14\x14\x15\ \x15\x21\x26\x26\x06\xce\xce\xce\x48\x49\x49\x11\x8e\x55\x45\x70\ \x1d\x30\x31\xcf\x92\x43\xcd\x62\xd3\xd2\xd2\x70\xfd\xfa\x75\xb1\ \x62\x92\x93\x93\x71\xfe\xfc\x79\xae\x78\xb8\xba\xba\x82\x7a\x09\ \x32\x33\x33\xe1\x1b\xef\x0c\xef\xaa\xc3\x42\x84\xb1\xb1\xf1\xec\ \x02\xf6\xed\xdb\x17\x74\xf7\xee\x5d\x51\x64\xfd\xfd\xfd\x48\x4f\ \x4f\x87\x97\x97\x97\x58\x7a\x4c\xa6\x14\xc1\xa1\x8f\x8f\x8f\x17\ \x4d\x86\x09\x79\x75\x04\x04\x04\x88\xf0\x32\x31\x17\x1a\x0b\xe2\ \x34\x95\x97\x97\x8b\x94\xf9\x25\xba\xc2\x2b\xe7\x57\xee\x07\xd8\ \xbc\x79\xf3\xec\x02\xf6\xee\xdd\x2b\x61\xa2\x37\x6f\xde\x08\x11\ \x1c\x6a\x9e\x29\x3b\x63\x21\x11\x11\x11\x22\xaf\x1c\x62\x9e\xe5\ \xb9\x73\xe7\x44\xa4\x98\x98\x9f\x79\x1c\x8b\xe3\x9c\xab\x92\xb3\ \x0d\xe7\x9f\x7b\x01\x17\xa1\x91\x91\xd1\xec\x02\xa8\x7f\x4b\x78\ \xc9\x4d\x4f\x4f\x7f\x20\x82\xf3\xcc\x35\xc1\x85\xe4\xe9\xe9\x89\ \xe3\xc7\x8f\xc3\xc7\xc7\x47\x84\x97\xa3\xa0\xcc\xb9\x2a\x39\xa7\ \x92\xdf\x5d\xb8\x70\x01\x54\x5b\x5c\xf9\xe2\xff\x33\x67\xce\xd0\ \x8e\x69\x38\xbb\x80\x9d\x3b\x77\x4a\x58\xe9\xbb\x77\xef\xe6\x14\ \xc1\xc5\xc7\x4d\x45\x99\xf3\x8f\xc9\xb9\x7e\x02\x03\x03\x85\x50\ \xda\x15\xdf\xb7\x68\x1e\xcf\x4d\xce\xcd\xcd\x0d\xa6\xa6\xa6\x7d\ \x44\xe7\x34\x43\xc0\x86\x0d\x1b\xf4\x69\x89\x64\x50\x3f\x78\xcb\ \x61\x9b\x4b\x04\x13\xa9\x92\x73\x24\x4e\x9d\x3a\x05\x6a\x64\xa0\ \x7d\x04\x2e\x2e\x2e\x1f\x90\x73\x0b\xe7\x0d\x8b\x6d\x79\x53\xa3\ \x31\xc3\x44\xe7\x46\xd0\x9d\x71\x10\xe5\x7d\x5c\x57\x57\xd7\x63\ \xcb\x96\x2d\x72\x76\xca\x45\xf7\xb1\x88\xd2\xd2\xd2\xf7\xe4\x1c\ \x0d\xda\xe9\x60\x6d\x6d\x3d\x2b\x39\x37\x2d\xb6\xe1\xab\xa9\xa9\ \x09\x27\x4f\x9e\x1c\x25\xff\x7c\x68\xf1\x98\xeb\xe8\x36\x5f\xa1\ \xcc\x7c\xcd\x9a\x35\xd1\x66\x66\x66\x23\xfe\xfe\xfe\xc2\x89\x52\ \x04\x77\x3d\x65\xd8\xb3\xb3\xcb\x20\x91\x64\x51\x04\x7c\xde\x93\ \xf3\xe6\xc5\xdd\xf1\xe5\xcb\x97\xc2\x26\x35\x35\x15\x94\xde\xc1\ \xa5\x4b\x97\xd6\x92\xdf\x54\xc2\x59\xc5\x7e\xb0\xe8\x93\xe7\x41\ \xc2\x6a\xc2\x9e\x75\xeb\xd6\x95\xec\xda\xb5\x6b\x8a\x77\x40\x76\ \x78\xeb\xd6\x2d\xb1\x13\xf2\x0a\xb0\xb2\xb2\xa6\xa2\xf4\xc3\xc5\ \x8b\xd5\xb4\x4a\x8a\xa9\x5b\x76\x89\xd9\x72\xb8\x49\xcc\x34\x45\ \xb2\x6f\xf1\xe2\xc5\x95\xe4\xe7\x2a\xc1\x95\xf0\xb5\xc2\xef\x22\ \x75\xcf\x25\x3c\xd0\x40\x5b\x5b\xdb\x71\xfd\xfa\xf5\x6d\x56\x56\ \x56\xa0\x2d\x1b\xdb\xb6\x6d\x03\x3d\x0f\xae\x5a\xb5\xaa\x59\x47\ \x47\xa7\xd2\xc4\xc4\x7c\x88\x85\xa4\xa6\xe6\xc2\xc1\xc1\x61\x42\ \x4f\x4f\x4f\xa6\xa5\xa5\x55\x40\xb6\x7f\x12\x4e\x28\xce\x89\x2b\ \xfe\xcf\x59\x91\x2b\xd6\x68\xf9\xf2\xe5\x81\xfa\xfa\xfa\x8d\x0b\ \x16\x2c\x28\xa2\xe7\x44\x82\x3b\xe1\x07\x8e\xd4\xca\x95\x2b\xe3\ \x56\xaf\x5e\xdd\x40\xf7\x59\x84\x70\xc5\x37\x82\xa1\x22\xa5\x0b\ \x35\xf2\xb5\xa4\x98\x05\x87\xf1\x20\x0b\x22\x2c\x53\x9c\x72\xb4\ \x14\x9f\x65\xdf\x12\x7e\x54\x1c\x4a\x97\xa8\xf3\xc5\xfc\x0f\xd1\ \xc2\x47\xb4\x63\xf2\xc9\xfc\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x03\xd1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x03\x63\x49\x44\x41\x54\x58\xc3\xc5\ \x97\xcd\x6f\x1b\x55\x14\xc5\x7f\x77\x66\x92\x89\xd3\x7c\xd4\xad\ \x17\x09\x20\xd2\x4d\x55\x51\x10\x08\x51\x84\xca\x0a\x09\xd8\x20\ \xc4\xa2\x52\x17\x2c\x2a\x24\x28\x6b\x36\x2c\x90\xfa\x1f\xc0\x82\ \x0d\xa8\x3b\x04\x2c\xd8\x82\x10\xaa\xda\x45\x05\x64\x07\x08\x04\ \xa1\x34\x40\x85\x11\x6e\x21\xb5\x13\x9c\xe6\xc3\xb5\xd3\x79\xef\ \x5d\x16\xf3\xec\x8c\x9d\xc4\xa6\xf5\x54\x1d\xe9\x4a\x1e\x69\x3c\ \xe7\xdc\x73\xce\xbb\xef\x8d\xa8\x2a\xf7\xf2\x0a\xb8\xc7\x57\xf4\ \x7f\x1e\x7a\xff\x35\x79\xf2\xe6\x16\x91\x55\xa4\x30\xca\x13\xc6\ \x12\xaa\x22\x00\x51\xc0\x4c\x18\x30\xeb\x94\xc0\x3a\x1a\xd5\x35\ \x3e\x7b\xfb\x73\xe6\x81\xa6\xaa\xba\x41\xef\x96\x41\x16\x9c\x7d\ \x5d\xce\x3c\xf8\xc8\x0b\xaf\x3a\xa7\xa1\xaa\x06\x0f\x1c\x7d\x76\ \xdc\x39\x15\x54\x05\x60\xaa\x34\x17\x8d\x17\xef\x1f\x09\xc2\x82\ \x98\xad\x86\x7e\xf1\xde\x89\xea\x77\x8b\xff\xbe\xfb\xe1\x57\x7c\ \x02\xd4\x55\xd5\xf6\x05\x50\xd5\xbe\x75\xf6\x34\x3f\xaa\xaa\xaa\ \x3a\x5f\xb6\xab\x9c\x5a\x6d\xb5\x6e\x6a\xb5\xba\xa4\xc6\x18\xbd\ \xb2\xf0\x75\xf2\xe6\x8b\x7c\xfb\xfc\xa3\xbc\x02\x14\xdb\x4d\xee\ \x55\x03\x33\xe0\x94\x10\x2c\x60\x7c\x39\xd2\xfb\xb4\x04\x8b\x31\ \xb7\x58\x5e\xae\x11\x86\x21\x87\x1e\x7a\x3a\x3a\xf9\xc6\x07\x8f\ \x1d\x9e\xe1\xe5\x97\x8e\xf1\x1c\x30\x21\x22\x72\xc7\x21\x4c\xbd\ \xd6\x2e\xd0\xb4\x1c\xe0\x50\x2c\xaa\x09\xcd\x66\x23\x0d\x55\x14\ \xf1\xf0\xf1\x93\xa3\xa7\xdf\xfa\xf8\x99\xb9\x12\xa7\x80\x43\x40\ \x61\xc8\x55\x90\x02\x81\x45\x31\x9e\x40\x02\x18\xc4\x93\xc9\xe6\ \x6d\xdf\xbe\x09\x8e\x3c\x75\x22\x2e\x4d\x72\x1c\x38\x0a\x4c\x0e\ \xb5\x0a\x14\x87\x60\xd2\xd4\x6e\xe7\x97\x54\x19\x08\x02\xc5\x98\ \x16\x17\x2f\x5e\x60\x6d\x6d\x83\x20\x80\xfd\xfb\x8b\x68\x54\x8c\ \x61\x75\x0e\x98\x00\xaa\x77\xac\x80\x64\x2c\xd0\x4e\x1e\x12\xda\ \xd9\x18\x1d\x15\x66\x66\x0f\xd2\x6c\xd6\xd9\xdc\xac\x61\xcc\x26\ \x85\xc2\x08\xad\xe6\x2a\x5e\xfe\x68\x48\x05\xac\x57\x40\x3b\x7d\ \x4b\x46\x85\x20\x54\xee\x9b\x2d\x31\x35\xf9\x38\xc6\x18\xa2\x28\ \x22\x8e\x0f\x70\x7e\x04\xcd\x65\x10\x09\xce\x77\x4c\xc6\x06\x45\ \x11\x04\x25\x10\x21\x8e\x85\x38\xce\x5a\x3d\x46\x18\x74\xa4\xd3\ \x1c\x32\x90\xf8\xb7\xa4\xa0\xda\x87\x6e\x4a\xce\xe5\x37\x8a\xdb\ \x5e\xb7\x3b\x6f\x83\x48\x4f\x2c\xb7\x1b\x15\xff\x9f\x9c\x08\x08\ \x0e\xcd\x58\xd0\x26\xa1\x3b\xd6\xc3\x36\x1d\xc9\x57\x81\xd4\x82\ \xfe\x24\x7b\xe9\xe5\x48\x40\xfd\xe0\x91\x2e\x03\xba\x41\xe9\x49\ \x9a\xe6\x69\x41\x56\x01\xd9\xa5\x63\x7a\x08\xe5\xae\x40\x9a\x01\ \xd3\xe9\x51\x76\x89\x1c\x3e\x96\xd2\x09\xa7\xcd\xdf\x82\xde\x5e\ \xa5\x13\xc6\x14\x7a\xfb\x79\xbd\x1b\x0a\x24\x3b\xe4\xee\xf6\x5c\ \xbb\x16\x67\xce\x0a\xec\x9c\x84\xba\xeb\x73\xd9\xdd\x43\xf3\x1f\ \x44\x83\x62\xd7\xfd\xfb\x2e\x0c\xa2\xac\xf3\xfd\x94\x68\x0f\xec\ \x5c\x97\x61\xba\x15\x0f\x3a\xe1\xc7\xc0\x38\x50\x64\x6d\x25\x70\ \x1b\x4d\x5a\xb9\x6d\x46\x3b\x2d\x80\xf4\x48\x39\x86\x30\x8d\x52\ \xa4\x56\x59\xb1\x95\xc5\xcb\xf6\xa7\x2f\x3f\x4a\xae\x2c\xfe\xd0\ \xb8\x74\x95\x3f\x80\x55\x60\x6b\x48\x05\xd4\x1f\x40\x15\x25\x04\ \x0a\x08\x53\x28\x07\xa8\x55\x56\xed\xc2\xfc\xb9\xe4\xd7\x6f\x3e\ \x35\xe5\x72\x79\xfd\xef\x3a\xcb\xdf\xff\xc9\x6f\xe5\x2a\x65\xe0\ \x1a\x70\x19\x58\x1f\x32\x03\xa0\x8c\xa1\x4c\x03\x07\x3d\xe8\x85\ \x0e\xe8\x2f\xd7\xa8\x5c\xaa\xf0\xfb\xd2\x0d\xfe\x02\x6a\xc0\x12\ \xf0\x8f\x3f\x86\xd5\x81\xcd\x21\x15\x38\x42\xad\xb2\x6c\x17\xe6\ \xcf\xef\x05\x7a\x1d\xb8\xea\x41\xeb\xc0\x86\x07\xdd\xd2\x01\x5f\ \x3e\x03\x09\xac\x37\x39\xf7\xce\xa9\xc2\xf4\xf5\x1b\xd8\x9f\x2b\ \x2c\xed\x01\xba\xe2\x65\x6e\x00\x89\xde\xc6\x17\xef\xc0\x4f\x33\ \x11\x29\x01\xc7\x80\xc3\xc0\x2d\x0f\x38\x14\xe8\xed\x12\x18\x01\ \xa6\xfd\xd1\xda\x7a\x69\x87\x02\xcd\x5e\xff\x01\xf9\x68\x10\x8e\ \x11\x57\x76\x24\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x07\x66\ \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\x2d\x49\x44\x41\x54\x78\x5e\xb5\x56\x5d\x6f\x1c\x57\ \x19\x7e\xce\xc7\x7c\xec\x97\xd7\x6e\x9c\x38\xc6\x89\x03\x49\x9a\ \x26\x4d\x21\xaa\x08\x95\xb8\x40\xca\x25\x08\x89\xfb\x8a\x2b\xee\ \xb8\x41\x48\x48\x20\x21\x21\x04\x37\x5c\xf1\x03\xb8\x00\xa9\x70\ \x83\xa2\x0a\x51\x22\x01\x37\x20\x15\xd1\xa0\xe6\xb3\xad\x53\x2b\ \x49\x9b\xa4\xb1\xe3\x8f\xb5\xbd\x3b\x9b\x59\xef\xcc\xce\xce\xcc\ \x39\x87\xf3\x1e\x2d\x2b\xd3\x3a\xf5\x02\xe2\x58\x8f\xde\x39\xc7\ \x1a\x3f\xcf\xfb\xbc\xef\x79\xc7\xcc\x18\x83\xff\x75\x5d\xbc\xf8\ \x6d\x0e\x20\x54\xaa\xa8\x68\x5d\xd6\x19\xe3\x14\xa7\x74\xa9\xea\ \x5a\x95\x15\xad\xf4\x94\x31\x68\x7a\x15\xb9\xba\xbc\x7c\xf9\x4d\ \x00\x99\xe5\xd5\x00\x20\xf7\x12\x5c\xf8\xc2\xb7\xbe\x94\xa5\x83\ \x53\x40\x59\x63\xe0\x75\x3f\x0c\x6b\x42\x7a\x55\x18\x56\x07\x50\ \x63\x8c\xd5\x00\xd4\xc1\x10\x5a\xd0\x59\x08\x98\x0a\x98\x0e\xb5\ \x31\x81\x86\xf6\x34\x2b\x3d\x4b\x2a\x99\x27\xc5\xdc\xe9\xe7\xd9\ \xd9\x17\xcf\xf2\xc6\xcc\x0c\x13\xcd\x19\xf1\x97\x5f\xbd\xf6\x00\ \xc0\xab\x16\x14\xe3\x4f\x08\x38\x3c\x7f\xf8\x97\x5f\xfc\xca\xcb\ \x2f\x65\xda\x53\x79\x51\xb0\x3b\x37\xdf\x62\x1f\xdc\x7d\x17\x5e\ \xe0\x81\x0b\x30\xce\x01\x21\xb8\x83\xe7\x09\x16\x04\x92\x85\xa1\ \x8f\x8a\x45\xb5\x1a\xda\x18\xa2\x5e\xab\xa2\x56\xab\x60\xee\xe8\ \x02\x4e\x5f\xf8\x32\xae\x6c\x7f\x16\xed\xf6\x03\xf0\xd6\x32\x94\ \x2a\xe7\x01\xbc\x62\xd1\xd9\x57\xc0\xc9\x73\xa7\xce\x7f\xe3\x7b\ \xaf\xf2\xdf\xfd\x63\xc8\x3f\xba\xf9\x16\xe6\x16\x24\x7e\xf8\xdd\ \x1f\xa1\x54\x40\x18\x04\xf0\x3d\x89\x6a\xa5\x82\x30\x0c\x10\xf8\ \x9e\xdd\xfb\x90\x52\x40\x08\x01\xce\x18\x98\x05\x18\x20\xa5\xe7\ \xce\xb3\x5c\xe1\x27\x57\x3b\x78\x78\x7b\x09\xcf\x9b\x77\xe1\xab\ \x5c\x00\x20\x11\xa1\x05\x3e\x21\x60\x37\xc9\xb3\x37\x6f\x0f\x6b\ \xbf\xf9\xeb\x0a\x3a\xd7\x96\xf0\xcd\x53\x06\x5f\xff\xea\xd7\xb0\ \xb1\xbe\x8e\x7e\xd2\x47\x96\x0d\xa1\x94\x42\x59\x14\xc8\x87\x43\ \x68\xad\x61\x8c\x71\xb1\x2c\xcb\x31\xe8\xcc\x89\x11\x3e\x4e\x1e\ \x3a\x89\xf5\x13\xaf\xa0\x9a\xe7\x28\x57\xaf\x01\x00\x23\xec\x2b\ \x80\x5e\x54\xf4\xc7\x94\x71\x2f\x47\x4f\x63\xdc\x78\xfb\x2a\xd6\ \x36\xb7\x51\x14\x85\x23\xe3\x9c\xec\xa7\x0c\x25\xc1\x65\x4f\x8b\ \x44\xd0\xa2\xdf\xfb\xbe\x6f\xcb\x50\x43\xb5\xd1\x84\xfc\x40\x21\ \xac\x56\x21\x94\x40\xb9\x87\x6b\x5f\x01\x24\x5a\x0a\x8e\xc0\x13\ \x80\x64\x08\xc3\x0a\x16\x17\x17\xc1\xbd\x90\x32\x27\x01\x44\x48\ \xd9\x8d\x41\xcb\xed\x39\x07\xed\x38\xf5\x87\xf4\x5c\x3f\x88\xa0\ \x0a\xc9\x13\x04\x82\xc1\xe3\x40\x7e\x90\x00\x80\x41\x70\x06\x5f\ \x70\x80\x19\xd4\x6d\x16\x73\x9f\x39\x8a\x24\x2b\x9c\xfd\x45\x31\ \x1c\x59\x6e\xe0\x7e\x94\x86\x36\xe4\x9c\x76\x0e\x39\x94\x05\x54\ \xa9\xe0\x16\xb7\x42\x2a\x2f\xc2\xf7\x32\x27\x1c\x07\x3a\x60\x41\ \xdc\xbe\xc7\x20\x7d\x89\xa8\x1b\xe1\xf6\xf5\x9b\xd8\xdc\x89\xc8\ \xe2\xb1\xbd\x41\x10\x50\x19\xe8\x99\x1a\x93\x1c\xb0\x44\x15\xb2\ \x9f\x88\xdc\x79\xd5\xda\xee\x59\x07\x7e\xfd\x46\x8c\x40\x0a\x97\ \x18\xd8\x81\x0e\x18\x48\xce\xe0\x49\x61\x23\x50\xaf\xd7\xf1\xc2\ \xf9\xcf\x63\xb6\x13\x8d\xad\xfe\xb7\x12\xb8\x37\x00\xce\xc8\xb1\ \x71\x1c\x97\x85\x1a\x32\x94\x02\xa1\xa7\x21\x05\x3b\xd8\x01\x22\ \x90\x92\x23\xb0\x90\x8c\x51\x23\x59\xd4\x51\x14\xa5\x43\xa9\x4a\ \xa8\x51\x97\x13\x40\x11\xb0\x67\x64\x7d\x89\xe1\x30\x47\x59\x94\ \x50\xda\xf5\x0b\x0c\x97\xa8\x86\xc7\x10\xf8\x8a\x12\x9b\xac\x04\ \x94\x79\xe8\xb9\x46\x44\xa7\xbd\x83\x7b\xcb\x4b\x68\x77\x7b\x2e\ \x73\xcf\xf7\xdd\x3c\xa8\x84\x15\x04\x81\x0f\x3f\x08\x21\x3d\x39\ \xb6\x9e\x40\x37\xc3\x73\x65\xe1\xa0\xf5\xfb\xf5\x6d\x57\x02\x8f\ \xcc\x39\x48\x00\x29\xf0\x84\x73\xc0\x92\x79\x98\x3d\x64\xa7\xd9\ \x99\x73\x38\x39\xba\x7e\xd2\x35\xe7\x7e\x99\x18\x17\xb4\x32\xc8\ \x4a\x20\x4e\x34\xb2\x42\x21\xb7\xfb\x6a\x40\x25\x30\x93\x36\x21\ \x83\xeb\x01\x01\x54\x67\xe6\x30\x7f\xa6\x09\xe9\x79\x6e\x36\x64\ \x85\x41\x77\xa0\x90\xe4\x06\x69\xae\xd1\xb7\xb1\x3f\xd4\xd8\xcd\ \x34\x7a\x43\xe3\x62\x6c\x41\x67\x69\x6e\xa0\x0c\x5c\x89\x3a\x03\ \x8d\x66\x35\x04\x04\x0e\x16\xc0\x19\x29\x05\x7c\xa1\xec\xf5\x3b\ \x81\x3b\x9a\xe1\xfb\x57\x76\x30\x5b\x15\x18\x94\x06\x89\x25\x1c\ \x14\x06\x79\x39\x82\x02\x4a\x63\x50\x8e\x9e\x15\x18\xc0\x38\x04\ \x97\x60\xe4\x96\x2e\x1d\x6f\x73\x4a\xa0\xa0\xfd\x24\x73\x80\x6a\ \x15\x70\x86\xe9\xa9\x06\x4a\x0e\xdc\x6f\x15\xb8\x8b\x02\xca\xd0\ \xb0\x11\x60\x42\x42\xba\x9a\x73\x70\xc9\xc0\x8d\x86\x60\x39\xbc\ \xb2\x0f\x3d\xe8\x23\xdd\x8d\x30\xe8\x45\x28\x8b\x1c\x53\x47\x4f\ \x62\xfe\xd8\x09\x54\x7c\x01\x23\x30\xc9\x35\x84\xb3\x3f\xf4\x05\ \x18\x37\x90\x9e\xef\xb2\x28\xb3\x14\x26\xdd\x45\x96\xc6\xc8\x7a\ \x16\x49\x17\xc3\x24\x86\xca\xfa\x10\x6a\x80\x9a\xd4\x98\xae\x49\ \x1c\x6e\x56\x71\xee\xb9\x06\xe6\x4e\x37\x70\xe4\xd0\x34\x9a\x33\ \x1a\x6f\x74\x7c\xd7\x57\x1e\x4d\xca\xc9\x46\x31\x09\x90\x96\x34\ \xc6\xfa\x3b\x7f\x42\xda\xfa\x10\x53\x15\x89\x43\x8d\x10\x0b\xd3\ \x35\xcc\x1f\x6d\x62\x76\xba\x8e\x99\xc6\x09\x1c\x9d\x9d\xc6\x9c\ \xc5\x73\x53\x75\x54\x2b\x81\x6b\xd4\x52\x29\xa4\x83\x0c\xbb\xfd\ \x04\xbd\xfe\x10\x8b\x26\xc0\x40\x0b\xe4\x93\xcc\x01\x0e\x27\xc0\ \x5a\xe6\x63\x3b\x6a\xe1\xe2\x91\x1c\x3f\xfd\xf1\x77\xb0\xb1\xb9\ \x85\xcd\x8d\x75\xb4\x5a\x2d\x44\xdd\x36\x9a\xd0\x38\x73\xfc\x38\ \x82\x30\x74\x9f\xe1\x24\xcb\xa9\xeb\xdd\x1c\x31\xc6\x8c\x46\xb2\ \x86\x61\x40\x3d\x14\xd0\x05\x47\x3a\x89\x00\x8c\x1c\xf0\x03\x09\ \x66\x4a\x57\x0e\xc6\x04\xee\x7d\xf8\x08\x97\x2f\x5f\xc6\x60\x30\ \x70\x23\x76\x6a\x6a\x0a\xc7\x4e\x7c\xce\xcd\x81\x4f\x5b\x44\x19\ \xd0\xb5\x06\x0d\xb6\xfd\x9b\xf0\x63\xa7\xcc\x91\x06\xa3\x41\xc4\ \x19\x77\x83\x65\x7d\x7d\x9d\xc8\xdd\x97\xf1\xb8\xcd\x9c\xbe\x03\ \x93\x2e\x9f\x26\xab\xcf\xe0\xfb\xf2\x60\x01\x9c\x8d\x26\xa1\xe4\ \xee\x45\xce\x01\x03\x43\x84\xf4\xb1\x71\x1f\x19\x21\x04\xed\xc9\ \xee\xc9\x04\xf8\x1c\x01\x33\x28\xd2\x0e\x98\x19\xdb\xc0\x9e\xe1\ \x80\x13\xe0\xc8\x7d\xc1\x5d\x7d\x61\xc6\xdf\x89\x71\x8d\xff\x93\ \x15\x48\xa0\xfb\xf0\x06\x56\x97\xde\x47\xb7\xbb\xb2\x0e\x60\x68\ \x51\x3e\x53\x80\x10\x80\x27\xb9\x05\x95\xc0\x69\xfd\xaf\x17\xe9\ \x67\xfd\x16\xee\xfe\xed\x0f\xb8\x7f\xeb\xc1\xf6\xda\xda\x8d\xeb\ \x00\x56\x2c\x7a\xfb\xdf\x02\x3e\x6a\x42\xc9\x20\xe5\xbf\x32\x06\ \x14\x5d\xad\x34\xa5\x3e\x20\xfb\x69\xff\xa9\x25\x10\x82\xbb\x9a\ \x6b\x53\x62\xe5\xfa\x9f\x71\xef\xda\x72\x6f\x75\xe5\xd6\xad\xa2\ \x48\x48\xc0\x7b\x16\xdd\x7d\x05\xc0\x30\x67\x89\x20\x21\x16\x9c\ \x33\x68\xad\x31\x3b\x3b\x8b\x4b\x97\x2e\x61\x61\x61\x01\xd3\xd3\ \xd3\x68\x34\x1a\xee\x3f\x63\x29\x85\x8d\x9e\x7b\xe6\x5c\x20\xcf\ \x4b\x3c\x7d\x9a\x98\x76\xbb\xc7\xda\xed\x18\xbd\xdd\x0c\x77\xaf\ \x3d\x1a\x3e\x79\x7c\xe7\x4e\x92\x6c\xbd\x0d\xe0\x9a\xc5\x47\x16\ \xf9\x33\x07\x51\xa3\x0a\xcc\x1f\x06\xe2\xc3\x4d\x84\xba\x81\xbc\ \xc8\x71\xe1\xc2\x4b\x38\x7f\xfe\x05\x4b\x90\x43\x29\xed\x66\x7f\ \xb7\x9b\x22\x49\x62\xc4\x71\x86\x28\x4a\xcc\xf6\x76\x57\x6d\x6d\ \xed\x0c\xdb\xed\xad\x7e\xaf\x17\xc5\x69\xda\xe9\xc6\xf1\x56\x7b\ \x75\xf5\xe1\xd6\x60\xb0\xfb\x00\x00\x65\x7f\xdf\xa2\x6f\xec\xda\ \x57\x80\xe7\x4b\x7f\xd0\x4f\x71\xf5\xb7\xaf\x61\x63\xed\x09\xce\ \xce\x1f\x31\x0f\x1f\x6d\xe3\xf1\x4a\x8b\x45\x51\xdf\x92\x26\x26\ \x8a\x76\xcb\x4e\x27\xca\xba\xdd\x9d\x7e\x1c\xb7\xe3\x38\xde\x89\ \xba\xdd\xcd\x76\xbb\xbd\xd1\x4e\xd3\x5e\x44\x04\x16\xb1\x45\x6f\ \x14\x9f\x5a\xb4\x2c\x36\x69\x3f\x26\xdf\x4f\xc0\xe3\x47\x6b\x1b\ \x3f\xff\xc1\x2f\x16\xef\xbe\xf7\x7e\x91\x26\x59\xb1\x94\xdf\xcb\ \xae\xbc\xfe\xf7\x7e\xad\x86\xdd\x7e\x3f\xea\x46\xd1\x46\x7b\x67\ \x67\x6d\x7b\x38\x1c\x10\xc1\xee\x98\x64\x0c\xb7\x4f\x2c\x32\x8b\ \xe1\x9e\x98\x5b\xde\xf2\xc0\x49\x78\x6f\xe9\xf6\xcf\x7a\xbd\x27\ \x2f\xa7\x83\x56\x7d\x30\x88\x22\xad\x4b\x52\xdf\x27\xec\x21\x7c\ \x3a\x7a\x4e\x1d\xc1\x98\x64\x4c\xa4\x70\xf0\xda\x5f\xc0\xc3\x47\ \x7f\x7c\x1d\xc0\x3b\x16\xcd\x51\x26\xbd\xbd\x59\x7c\x8c\x48\x4f\ \xc8\x31\xb9\x80\x11\xe1\xf2\x68\x3e\x14\x23\x22\x83\xff\xe3\xfa\ \x27\x0a\xd7\x77\xe2\xf8\x4e\x6d\x80\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x06\xe8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x7a\x49\x44\x41\x54\x58\xc3\xed\ \x57\x09\x4c\x54\x57\x14\x1d\x6a\xed\xa6\x4d\x69\x69\xb5\x2e\x15\ \xf7\x1d\xb1\x20\x8a\x0a\x28\x2a\xb2\xa9\x88\xc0\x20\x28\x22\xae\ \xe0\x30\x08\x6e\x6c\x23\x42\x01\xc5\x71\x41\x76\x71\xa1\x0a\x28\ \xe2\x5a\xc0\x0a\x5a\x91\x60\xc0\x15\xad\x88\x68\xcd\x18\xd4\xaa\ \xd4\x5a\xb1\x2e\xe8\x8c\x0a\x9e\x9e\x0f\x3f\x8d\x52\x29\x9a\x9a\ \x36\x69\x9c\xe4\x64\x32\x33\xff\xdd\x73\xef\x39\xf7\xde\xff\x47\ \x02\x40\xf2\x5f\x42\xf2\x36\x81\xff\x65\x02\x66\x52\x85\x91\x99\ \x34\x58\x66\xea\x14\x14\x6f\xea\x18\x98\x66\xea\x18\x90\x3e\xd4\ \x7e\xc1\xaa\x81\xb6\xde\x93\x25\x12\xc9\xc7\x44\x33\xc9\x9b\x7e\ \x0d\x9b\x18\xd2\x97\xc4\x11\xc3\x9c\x17\x17\x7b\x2c\xdc\x7c\x39\ \x60\xf9\xe1\xdb\xa1\xd1\x17\xab\x15\x2b\xae\xa8\x15\xcb\xaf\xa8\ \x03\xa3\xce\x3c\x90\x29\x76\xdf\x1a\x6c\xe7\x97\x6f\x60\x31\x5d\ \xc6\x23\x9f\x10\xef\xbe\x01\xe2\xc5\x96\x24\x4d\x99\x34\x37\x59\ \x15\x91\x50\x76\x37\x3c\x41\x53\x2b\x0f\x07\x26\x2d\x00\xc6\x7a\ \x02\xa3\xa7\x02\x23\xdd\x00\x6b\x77\xc0\x7d\x1e\x10\x16\x5d\xf9\ \xc4\xc2\x75\xc9\xb5\xd6\xba\x7a\x52\x1e\xd7\xf9\xc7\xc4\xd3\x17\ \xa5\x56\x28\x93\xaf\x3e\x0c\x8c\x06\xdc\x02\x49\x24\x03\x4c\xa6\ \x01\x86\x93\x01\x3d\x29\xd0\xdb\x1e\xe8\x66\x4b\x8c\x06\xfa\xd9\ \x00\xd2\x39\xc0\x82\xf0\x22\x75\xaf\xc1\x13\x72\x18\xc6\xe0\xf5\ \x89\x9d\x17\xeb\x12\x8a\x49\xbe\xc9\xaa\x95\x1b\x49\xbc\x06\x70\ \x0d\x02\x2c\xe4\xc0\x50\x56\x6c\x4c\x0c\x64\x12\x83\xbc\x09\x92\ \xe9\x7b\x00\x3d\x5d\x80\x4e\x63\x00\x5d\x0b\x60\x88\x13\x10\x10\ \xa5\x7e\x36\xd0\x56\x56\xc9\x70\x4e\xaf\x45\x3e\x7c\x62\x88\xdc\ \xc6\x23\xaa\x2c\x3c\xbe\xa4\x2a\x3c\x19\x98\xba\x84\x15\xfb\x01\ \x66\x73\x89\xf9\x94\x5b\x01\xd8\x47\x01\x93\xa9\xc6\xd4\x38\x26\ \xc6\xf7\x71\xdf\x50\x11\x5f\xa0\xef\x14\xa0\xab\x1d\x60\xe4\x0c\ \xcc\xa5\x45\xe6\x4e\x01\x77\x19\xd2\xf7\xb5\xaa\x96\x2d\xd9\x71\ \x35\x26\x5d\x53\xeb\x4d\x92\xf1\x01\xf4\x96\xa4\x23\xfc\x01\x9b\ \x08\x92\x92\x70\x7e\x3a\xb0\x7c\x2f\xb0\xbe\x10\xd8\x54\x04\x24\ \xfc\x00\xf8\x6f\xa5\xec\x2b\xa8\x0e\x13\xed\xc3\x5e\x18\xcc\x5e\ \xf0\x5d\xc6\xe4\xbc\xe3\xab\x19\x5a\xf1\x0a\xe4\x0a\x27\xa1\xea\ \xc8\xc4\x92\xaa\x88\x75\x24\x0a\x63\xd5\x24\x1d\x45\xbf\x6d\x22\ \xd9\x6c\x09\xf4\x74\x1b\x10\x7b\x08\xc8\x2a\x03\xb6\x1e\x54\xd5\ \x84\xc4\xee\x51\x7b\x2c\x88\x7b\x18\xb9\x2e\x4f\xb3\xbd\x84\x92\ \x67\x50\x09\x5e\x6b\x4c\x6b\x46\xd1\x2a\x45\x2c\xed\x19\x23\xbf\ \xc7\xf0\x4b\xfe\x1c\x1f\x8e\x86\x31\xbf\xf8\x88\xd0\x7a\x5e\x72\ \x07\xcf\x98\x0b\xb1\x69\x37\x35\xf3\xe9\xb5\x53\x08\x60\x49\x99\ \xad\x59\xb1\x34\x06\x90\xb1\x62\xe5\x01\x60\x57\x29\xb0\xad\x40\ \x55\x33\xc6\x23\xf4\x41\x5f\xd3\x89\x57\x3b\xf4\x1a\x5a\xac\xd3\ \xae\xfb\x4e\x36\xda\xb1\xb5\xbb\x4a\x34\x89\xf9\xb4\x24\x91\x7d\ \x12\x54\x1f\x63\x55\x9a\xfa\x99\x91\xb5\xe7\xed\x3a\x05\x04\xf2\ \xc4\xd4\xb2\xdf\x0d\x2d\x67\x6d\xea\xd2\xdf\x62\xbc\xb8\x28\xb4\ \x98\x58\xf0\x0c\xff\xd4\x8a\xd8\x2d\x9a\x5a\x2f\x25\xbd\xe5\x41\ \x2b\xfa\x69\xbf\x0a\xf0\x48\x61\x15\x39\x40\xca\x31\x20\xfb\xf4\ \x9d\x5a\x59\xe8\x86\x47\x02\xf1\x97\x9d\xf4\xf3\x79\x76\x39\xe1\ \x45\x8c\x63\x3c\x7f\xdf\xc8\xf4\xdf\x32\x4f\x02\x3e\xa9\x4c\x9a\ \x71\x7c\xe3\x81\xc8\xa4\x13\x4f\xba\x1b\x8d\x39\xcf\x6b\xfc\x04\ \x05\x4a\x0b\x8f\x30\xab\x75\xa7\x1f\xe9\x9b\xbb\x65\xe9\x99\xb9\ \xc8\xb9\xc1\xb6\xf9\x45\xe4\x5c\x57\x6e\x06\xa6\xd1\x6f\x3b\xca\ \x6e\xcb\x77\x97\x24\x40\x9e\x09\xac\x2c\x00\xf6\x94\x03\x69\xfb\ \xcb\x9e\x8e\x70\xf6\xbf\xdf\xa1\xb7\x49\x09\x83\xad\x21\x3c\x09\ \x73\xa2\x33\xf1\x59\xff\x11\xee\x16\x5e\x21\x29\xd7\x77\xfd\x48\ \x1b\xb6\x53\x31\x5a\x18\x9f\x45\x05\xdd\x42\x1f\x68\xb7\xea\xb8\ \x9b\xd7\xb8\x08\x0d\x56\x96\xcb\x80\x2b\xf9\xa3\x97\xe2\x94\xda\ \x78\x9c\xef\x85\xf0\xa4\xeb\x1a\x7f\x7a\xeb\xb6\x94\xcb\x84\x72\ \xdb\x0b\x5d\xfd\x2d\x83\xb0\xc1\xd6\x1e\x07\xf2\xca\xd5\xcf\x16\ \x29\xb7\x70\x96\xed\x2b\x3e\x6f\xdf\x63\x5f\x9d\x97\x12\x89\x1d\ \xd1\xf5\xf9\x55\x6b\xe2\xb0\x68\xda\xb2\x0d\xfb\x7f\xcd\x64\x1f\ \x84\x91\x58\xf9\x1d\x10\x9e\x74\xf8\x71\x57\x03\x2b\xa1\xfa\x30\ \xc2\x58\xb0\xe0\xdc\xae\x5c\x60\x4e\x28\x3b\xdb\x07\x70\x5c\x54\ \x5d\xeb\x42\x52\x07\x62\x1c\xbb\x55\x4a\xc9\x66\x6d\x01\x42\xe9\ \x75\x2a\x2b\xc9\x2d\xbb\x53\x3b\x51\xae\xac\xee\xd4\x6f\x44\x29\ \x03\xc4\x10\x33\x89\x21\x44\xeb\x86\xab\x55\xb8\x17\x64\x1c\xbc\ \x58\x9d\xce\xa4\xe3\x38\x11\x69\x07\xef\xd4\x9a\x3b\xf9\xdf\x6f\ \xa1\xdd\x3a\x93\x3f\xbb\x12\x6d\xeb\x12\xd8\xb9\x9f\xbe\x72\xa6\ \x4d\xbc\x00\x53\x8e\x8b\x55\x58\x7d\xd5\x93\xd6\x03\x9e\x94\x6e\ \x29\x3b\x3c\x93\x92\xe7\x9c\xba\x51\x23\x4a\x7e\x92\x87\x95\x84\ \x83\x58\x75\x0b\xe2\x9d\x86\xf7\x06\xa9\x3c\xe6\x42\xf1\x65\x36\ \x28\x7b\x60\xe7\x51\xf5\x33\x47\x2f\x65\xb5\x78\x36\x98\x30\x24\ \x3e\xa8\x4b\x60\x0f\x09\x66\x2b\xeb\x67\x7a\x24\x95\xb0\x67\x87\ \x4f\xa1\xff\x3e\x94\x2c\x92\x33\x9d\x41\xf2\xb5\x59\x27\x9e\x8c\ \x24\x79\xbb\x6e\x03\x8f\xf0\x60\x24\x31\x96\x68\xdf\xd8\x0d\x45\ \x68\xee\xf4\xbc\xb2\xbb\x85\x2a\x20\xff\x02\x30\x2f\x72\x8b\x5a\ \x54\x4d\x48\xdc\x96\xf8\xa2\x6e\xe2\x84\x04\x72\x8a\xd9\x9d\xdc\ \x6c\x76\x4c\xc2\x81\x92\x4f\xe5\x78\x79\xd3\xb3\x10\xf6\x46\xf2\ \x19\x56\x70\xec\x46\x0d\x1b\xb4\x52\xbb\x95\x6e\x8e\xb8\x3c\xac\ \x88\x36\x8d\x91\x0b\xbb\xc3\xc3\x3f\x59\x55\xfe\x0b\x70\xfa\x2a\ \xf7\xc4\xd2\xad\x8f\x44\xdf\x57\x13\x13\x5e\x48\x5c\x48\x20\xef\ \x14\xc7\x8a\xdd\xed\xbe\x11\x98\xc1\xa5\x31\x97\xcd\x16\x4c\x55\ \xa2\x38\x66\x6b\x0a\xea\xc9\xdb\x77\x1f\x54\xc8\xcb\x17\x0a\xd6\ \x8a\xd9\xbf\xbc\x72\xa7\x20\x1d\x26\xb0\xf3\x50\xe9\x4d\x4d\x79\ \x25\xc9\xa3\xb6\x3e\x14\xc9\x85\x7e\x11\xee\x80\xba\x2f\x9c\x15\ \x12\x28\xa2\x44\x71\x5c\x16\x41\x9c\xed\xc5\x6c\xb6\x65\x5c\xa3\ \xd1\xec\xdc\xb5\xdc\x6c\x99\x97\xb8\x52\xb3\x4e\x3e\xee\x3d\x64\ \xc2\x51\x9d\xb6\xdd\x3c\xc5\xec\x1b\x7d\xa0\x60\xbc\x39\x71\x19\ \x45\xb7\x4a\x2a\x34\xb5\xce\xb2\x15\xf7\xba\x19\x5a\x97\x8b\x23\ \xea\x4c\x74\x24\x9a\x37\x3c\x70\xee\xec\xcf\xc0\xc1\x9f\x48\x56\ \x5a\xdf\x6c\x7b\xe8\x5b\x76\x05\xb0\x8f\xf2\x15\xdc\x00\xce\x56\ \x01\xeb\x76\x17\xa9\xfb\x98\x48\x77\xf0\x48\x1f\xe2\xfd\x46\x1e\ \x4a\xec\x42\x13\xf7\x5e\xcb\x3f\x7d\x53\x33\x76\x7a\xc4\xed\xce\ \xfa\xa3\x84\xfd\xb0\x52\xbc\xeb\xfd\x95\x5c\x9c\xd5\x8c\xec\xa2\ \xcb\x9a\xec\xe2\x4b\x4f\xb3\x8a\x54\x35\xd9\x47\x55\x35\x39\xc4\ \xde\x63\xc4\x71\x55\xcd\xf7\x44\xee\x09\x01\x97\x9e\xba\xfa\xae\ \xae\x6a\xa5\xab\xe7\x23\xfa\xaf\xd5\xe0\xf9\xa0\x87\x47\xc0\xfa\ \x8b\xab\xd3\x0a\xab\x0c\x2d\x67\x9e\xfb\xaa\xe7\xe0\x03\xfc\x3a\ \x82\xb0\x17\x65\x6f\xfe\x52\xc9\x0c\x46\xcf\x70\x19\x60\x35\xbb\ \xa0\xdf\xf0\xc9\xe7\xf5\xcc\x5c\x2f\x35\x8a\x61\xae\xaa\x36\x5d\ \x0c\x72\xc4\xb9\xef\xf2\x12\x1b\x9a\x75\x37\xb2\x35\xef\x3d\xd4\ \x71\xe3\x87\x2d\x3f\x8d\xe2\x67\x39\x31\x92\x68\xd7\xd4\xa3\x97\ \xb0\xb9\x06\x88\x8b\x61\x76\x13\x70\x13\x44\x13\x1f\xa5\xb4\x1a\ \xc4\x11\x3e\x6b\x13\x5f\x0b\xf7\x31\xd1\x2a\xed\x57\x79\xee\x6b\ \x26\x26\xd1\x46\x6c\xb0\xbf\x43\x9b\x26\x9e\x6a\xb5\xea\x96\x8b\ \x44\xd2\x92\x78\xef\x25\x49\xfe\xfb\xaf\xb7\xff\x8c\xde\x26\xd0\ \x14\xfe\x00\xc6\x8f\x6d\x5f\x51\xaa\x96\x24\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x00\x57\xb8\x67\ \x00\x70\ \x00\x72\x00\x69\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x04\xca\x57\xa7\ \x00\x6e\ \x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x08\xc8\x58\x67\ \x00\x73\ \x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x04\xb2\x58\xc7\ \x00\x75\ \x00\x6e\x00\x64\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x12\x07\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x06\xc8\ \x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x9d\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/dockwidgets_rc3.py0000644000076500000240000006613412536324427026102 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:44:32 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x06\xc4\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd9\x04\xdc\xb2\xda\x02\ \x00\x00\x06\x7b\x49\x44\x41\x54\x58\xc3\xad\x57\x69\x4c\x54\x57\ \x14\x76\x21\x62\x95\x04\x97\xa8\x25\x18\x52\x1b\x0d\x11\x45\x04\ \xaa\xa4\x49\xb5\x56\x4d\x6c\x69\xb0\x68\xa3\xb6\xc5\xb2\x46\xfd\ \xa3\x2c\x61\x51\x48\x24\x08\x64\xc2\x12\xd0\x22\x42\x11\x59\x44\ \x40\x40\xf6\x91\x7d\x53\x36\x09\xb2\xa9\x08\x0e\x24\x0c\x62\x01\ \x83\x02\x82\x0b\x08\xa9\x5f\xcf\xb9\x99\x31\xa3\x80\x9d\xb4\xf3\ \x92\x2f\xf3\xde\xbc\x7b\xce\xf7\xdd\x73\xce\x3d\xf7\xbe\x79\xf3\ \x54\x2e\x3b\xbb\xe8\x2f\x1c\x1d\x23\x1d\x1d\x1d\x23\x02\x1d\x1c\ \x2e\x48\xd2\xd3\xab\x25\x97\x2e\x15\x56\x47\x46\xde\xac\x4d\x4c\ \xac\xa8\xad\xaa\x6a\xbf\x2f\x95\x36\x41\x89\x2b\x57\x4a\xdb\x8d\ \x8d\xf7\x7c\x49\xa6\xf3\xe7\x69\xe8\x5a\x68\x6f\xff\x47\xa1\xfc\ \xf1\x73\x4c\xff\x0d\xb5\x10\x10\x98\x3c\x48\x76\xc6\x1a\x13\xc1\ \x33\xf2\xf4\x4a\x7a\x3d\x36\x09\xa8\x03\xf9\xc0\x38\x2c\x2c\x7e\ \xce\x21\xd3\xb5\x9a\x8a\xc2\xfc\xc3\x87\xfd\xa3\x8a\xab\x64\x18\ \x7a\x0d\xb5\xe0\xe3\x1b\x3f\x4a\x76\x3f\x11\x3e\xd3\x88\x82\xed\ \xdb\x0f\xac\x3d\xeb\x97\x89\xde\x17\x50\x0b\xf9\xe5\x32\x18\x18\ \x18\xc7\x91\xe9\xe7\x1a\x8b\x82\xad\x6d\x58\x79\x63\xf7\x38\x64\ \xcf\xf1\xaf\xe0\x71\x16\x16\x07\x5b\xc8\xee\x2b\x82\x96\x46\x14\ \xd8\xd8\x04\xfb\xa4\x15\xc9\xd0\x3a\x08\xb5\x60\xe7\x18\xf4\x9c\ \xcc\x7e\x21\x2c\xd1\x88\x00\x4b\x4b\xaf\x8d\xa1\x97\xaa\xd0\xf0\ \x17\xd4\x42\x08\x8d\x25\x33\x7f\xc2\x0a\x8d\x2d\x49\x17\xf7\xa4\ \xfe\x4a\x39\xa0\x0e\x22\x92\x9a\xa0\xa7\x67\x28\xd5\xe4\x6a\x98\ \x47\xcd\xa8\x28\xbf\xfd\x2d\x8a\xba\x31\x27\x0a\xba\x80\xdc\x4e\ \x20\xb6\x74\x00\x86\x86\x3b\xea\xc9\xcc\x54\x63\x75\x60\x67\x17\ \x1e\xc4\x8e\xb3\x3a\x80\x8c\x36\x20\xad\x09\x48\x69\x00\x92\xea\ \x80\x84\x6a\x20\xa6\x1c\xc8\x6c\x04\x4a\x1e\x00\xf5\xed\xe3\x68\ \x6a\xea\x80\xaf\xaf\xef\x2b\x32\x35\xf8\xdf\xe4\x12\x89\x44\x2e\ \x95\x96\x20\xab\x70\x00\xa9\x52\x08\x94\x10\x31\x71\x50\xf3\x01\ \x7a\x9e\x8c\x61\x68\x68\x08\xbd\xbd\xbd\x78\xf8\xf0\x21\x1e\x3c\ \x78\x20\x7e\x13\x13\x13\xb1\x7b\xf7\xee\xda\x43\x87\x0e\x05\x58\ \x5a\x5a\x6e\xe4\x54\xfe\x27\x01\xa1\xa1\xa1\x7d\x13\x13\x13\x98\ \x9c\x9c\xc4\xd4\xd4\x14\xba\xba\xba\x70\xe7\xce\x1d\xdc\xbe\x7d\ \x1b\xf9\xf9\xf9\x28\x29\x29\x41\x55\x55\x15\xea\xeb\xeb\xd1\xdc\ \xdc\x2c\x04\x30\x92\x92\x92\x70\xe3\xc6\x0d\xe4\xe5\xe5\x89\xfb\ \x13\x27\x4e\xdc\xdd\xb1\x63\x87\x99\xda\x42\xec\xec\xec\x96\xd9\ \xda\xda\x7e\x17\x12\x12\xd2\xce\x33\x54\xa2\xb0\xb0\x50\x38\x56\ \x25\xcf\xca\xca\x42\x42\x42\x02\xc2\xc3\xc3\x11\x17\x17\x87\xab\ \x57\xaf\x0a\x81\x7d\x7d\x7d\xe8\xe9\xe9\x11\x36\x75\x75\x75\x38\ \x7d\xfa\xf4\x84\xb9\xb9\xf9\x6f\xe4\x5e\xfb\x93\xe4\x47\x8f\x1e\ \xb5\xa7\xc1\x2f\xa2\xa2\xa2\x10\x1d\x1d\x8d\x8c\x8c\x0c\xc4\xc6\ \xc6\x22\x37\x37\x17\x39\x39\x39\x88\x8c\x8c\x04\x09\x03\xbf\xbf\ \x76\xed\x1a\x2a\x2a\x2a\x44\xd8\x47\x46\x46\x30\x3c\x3c\x8c\x67\ \xcf\x9e\x09\xb1\x4f\x9f\x3e\xc5\xe0\xe0\x20\x06\x06\x06\x50\x50\ \x50\x80\x86\x86\x06\x78\x78\x78\x4c\x6e\xda\xb4\xc9\x69\xce\x76\ \x6d\x63\x63\xb3\x2b\x2c\x2c\x4c\x84\xba\xa3\xa3\x03\xf7\xee\xdd\ \x13\xbf\x72\xb9\x5c\x08\xb8\x7c\xf9\xb2\xf8\xef\xd5\xab\x57\x18\ \x1f\x1f\xc7\xd8\xd8\x18\x46\x47\x47\x3f\x49\xde\xdd\xdd\x8d\xca\ \xca\x4a\x11\xb9\xb6\xb6\x36\x1c\x38\x70\x60\x88\xa8\xbe\x99\x75\ \x95\x1c\x39\x72\x24\x4f\x26\x93\x89\xd0\xa9\x8a\x60\x43\x26\xe2\ \xfc\x96\x95\x95\x7d\x92\x9c\xc5\x36\x36\x36\x8a\xd0\x73\x0d\x30\ \x79\x6b\x6b\xab\x28\x54\xf6\x1b\x14\x14\x04\x13\x13\x93\xbc\x59\ \x7b\x05\x55\x6d\x0d\xab\x56\xe6\x4f\x55\x04\x3b\x61\x42\xbe\xe7\ \x9c\x2a\xc9\x79\xb6\xf7\xef\xdf\x17\xa9\xe0\xda\x60\x81\x2d\x2d\ \x2d\x82\xf0\xc9\x93\x27\x78\xfc\xf8\x31\x1e\x3d\x7a\x24\x8a\xb4\ \xa6\xa6\x06\xc1\xc1\xc1\xa0\x5a\xe8\x20\xba\xef\x67\xa4\x82\xc2\ \x53\xdb\xd9\xd9\x89\xb9\x44\xb4\xb7\xb7\x8b\x99\x73\xf1\x71\x11\ \x4a\xa5\x52\x14\x17\x17\x8b\x77\x4c\xa6\x0c\x3b\x93\xb2\x60\x26\ \xe4\x48\x30\x6e\xde\xbc\x29\x0a\xd4\xdd\xdd\x1d\x5b\xb7\x6e\x95\ \x11\xdd\xef\x04\x9d\x0f\x04\xec\xdf\xbf\xbf\x96\x0a\x50\x38\x9d\ \x4b\x04\x3f\xf3\xcc\xf9\x9d\x6a\xce\x95\x4b\x94\x0b\x8e\x57\x06\ \xd7\x4c\x76\x76\xb6\x28\x64\x3f\x3f\x3f\x38\x39\x39\xe1\xd8\xb1\ \x63\xf0\xf6\xf6\xe6\x14\xb0\x00\xfb\x19\x02\xa8\x69\x14\x14\x15\ \x15\x21\x26\x26\x06\xce\xce\xce\x48\x49\x49\x11\x8e\x55\x45\x70\ \x1d\x30\x31\xcf\x92\x43\xcd\x62\xd3\xd2\xd2\x70\xfd\xfa\x75\xb1\ \x62\x92\x93\x93\x71\xfe\xfc\x79\xae\x78\xb8\xba\xba\x82\x7a\x09\ \x32\x33\x33\xe1\x1b\xef\x0c\xef\xaa\xc3\x42\x84\xb1\xb1\xf1\xec\ \x02\xf6\xed\xdb\x17\x74\xf7\xee\x5d\x51\x64\xfd\xfd\xfd\x48\x4f\ \x4f\x87\x97\x97\x97\x58\x7a\x4c\xa6\x14\xc1\xa1\x8f\x8f\x8f\x17\ \x4d\x86\x09\x79\x75\x04\x04\x04\x88\xf0\x32\x31\x17\x1a\x0b\xe2\ \x34\x95\x97\x97\x8b\x94\xf9\x25\xba\xc2\x2b\xe7\x57\xee\x07\xd8\ \xbc\x79\xf3\xec\x02\xf6\xee\xdd\x2b\x61\xa2\x37\x6f\xde\x08\x11\ \x1c\x6a\x9e\x29\x3b\x63\x21\x11\x11\x11\x22\xaf\x1c\x62\x9e\xe5\ \xb9\x73\xe7\x44\xa4\x98\x98\x9f\x79\x1c\x8b\xe3\x9c\xab\x92\xb3\ \x0d\xe7\x9f\x7b\x01\x17\xa1\x91\x91\xd1\xec\x02\xa8\x7f\x4b\x78\ \xc9\x4d\x4f\x4f\x7f\x20\x82\xf3\xcc\x35\xc1\x85\xe4\xe9\xe9\x89\ \xe3\xc7\x8f\xc3\xc7\xc7\x47\x84\x97\xa3\xa0\xcc\xb9\x2a\x39\xa7\ \x92\xdf\x5d\xb8\x70\x01\x54\x5b\x5c\xf9\xe2\xff\x33\x67\xce\xd0\ \x8e\x69\x38\xbb\x80\x9d\x3b\x77\x4a\x58\xe9\xbb\x77\xef\xe6\x14\ \xc1\xc5\xc7\x4d\x45\x99\xf3\x8f\xc9\xb9\x7e\x02\x03\x03\x85\x50\ \xda\x15\xdf\xb7\x68\x1e\xcf\x4d\xce\xcd\xcd\x0d\xa6\xa6\xa6\x7d\ \x44\xe7\x34\x43\xc0\x86\x0d\x1b\xf4\x69\x89\x64\x50\x3f\x78\xcb\ \x61\x9b\x4b\x04\x13\xa9\x92\x73\x24\x4e\x9d\x3a\x05\x6a\x64\xa0\ \x7d\x04\x2e\x2e\x2e\x1f\x90\x73\x0b\xe7\x0d\x8b\x6d\x79\x53\xa3\ \x31\xc3\x44\xe7\x46\xd0\x9d\x71\x10\xe5\x7d\x5c\x57\x57\xd7\x63\ \xcb\x96\x2d\x72\x76\xca\x45\xf7\xb1\x88\xd2\xd2\xd2\xf7\xe4\x1c\ \x0d\xda\xe9\x60\x6d\x6d\x3d\x2b\x39\x37\x2d\xb6\xe1\xab\xa9\xa9\ \x09\x27\x4f\x9e\x1c\x25\xff\x7c\x68\xf1\x98\xeb\xe8\x36\x5f\xa1\ \xcc\x7c\xcd\x9a\x35\xd1\x66\x66\x66\x23\xfe\xfe\xfe\xc2\x89\x52\ \x04\x77\x3d\x65\xd8\xb3\xb3\xcb\x20\x91\x64\x51\x04\x7c\xde\x93\ \xf3\xe6\xc5\xdd\xf1\xe5\xcb\x97\xc2\x26\x35\x35\x15\x94\xde\xc1\ \xa5\x4b\x97\xd6\x92\xdf\x54\xc2\x59\xc5\x7e\xb0\xe8\x93\xe7\x41\ \xc2\x6a\xc2\x9e\x75\xeb\xd6\x95\xec\xda\xb5\x6b\x8a\x77\x40\x76\ \x78\xeb\xd6\x2d\xb1\x13\xf2\x0a\xb0\xb2\xb2\xa6\xa2\xf4\xc3\xc5\ \x8b\xd5\xb4\x4a\x8a\xa9\x5b\x76\x89\xd9\x72\xb8\x49\xcc\x34\x45\ \xb2\x6f\xf1\xe2\xc5\x95\xe4\xe7\x2a\xc1\x95\xf0\xb5\xc2\xef\x22\ \x75\xcf\x25\x3c\xd0\x40\x5b\x5b\xdb\x71\xfd\xfa\xf5\x6d\x56\x56\ \x56\xa0\x2d\x1b\xdb\xb6\x6d\x03\x3d\x0f\xae\x5a\xb5\xaa\x59\x47\ \x47\xa7\xd2\xc4\xc4\x7c\x88\x85\xa4\xa6\xe6\xc2\xc1\xc1\x61\x42\ \x4f\x4f\x4f\xa6\xa5\xa5\x55\x40\xb6\x7f\x12\x4e\x28\xce\x89\x2b\ \xfe\xcf\x59\x91\x2b\xd6\x68\xf9\xf2\xe5\x81\xfa\xfa\xfa\x8d\x0b\ \x16\x2c\x28\xa2\xe7\x44\x82\x3b\xe1\x07\x8e\xd4\xca\x95\x2b\xe3\ \x56\xaf\x5e\xdd\x40\xf7\x59\x84\x70\xc5\x37\x82\xa1\x22\xa5\x0b\ \x35\xf2\xb5\xa4\x98\x05\x87\xf1\x20\x0b\x22\x2c\x53\x9c\x72\xb4\ \x14\x9f\x65\xdf\x12\x7e\x54\x1c\x4a\x97\xa8\xf3\xc5\xfc\x0f\xd1\ \xc2\x47\xb4\x63\xf2\xc9\xfc\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x03\xd1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x03\x63\x49\x44\x41\x54\x58\xc3\xc5\ \x97\xcd\x6f\x1b\x55\x14\xc5\x7f\x77\x66\x92\x89\xd3\x7c\xd4\xad\ \x17\x09\x20\xd2\x4d\x55\x51\x10\x08\x51\x84\xca\x0a\x09\xd8\x20\ \xc4\xa2\x52\x17\x2c\x2a\x24\x28\x6b\x36\x2c\x90\xfa\x1f\xc0\x82\ \x0d\xa8\x3b\x04\x2c\xd8\x82\x10\xaa\xda\x45\x05\x64\x07\x08\x04\ \xa1\x34\x40\x85\x11\x6e\x21\xb5\x13\x9c\xe6\xc3\xb5\xd3\x79\xef\ \x5d\x16\xf3\xec\x8c\x9d\xc4\xa6\xf5\x54\x1d\xe9\x4a\x1e\x69\x3c\ \xe7\xdc\x73\xce\xbb\xef\x8d\xa8\x2a\xf7\xf2\x0a\xb8\xc7\x57\xf4\ \x7f\x1e\x7a\xff\x35\x79\xf2\xe6\x16\x91\x55\xa4\x30\xca\x13\xc6\ \x12\xaa\x22\x00\x51\xc0\x4c\x18\x30\xeb\x94\xc0\x3a\x1a\xd5\x35\ \x3e\x7b\xfb\x73\xe6\x81\xa6\xaa\xba\x41\xef\x96\x41\x16\x9c\x7d\ \x5d\xce\x3c\xf8\xc8\x0b\xaf\x3a\xa7\xa1\xaa\x06\x0f\x1c\x7d\x76\ \xdc\x39\x15\x54\x05\x60\xaa\x34\x17\x8d\x17\xef\x1f\x09\xc2\x82\ \x98\xad\x86\x7e\xf1\xde\x89\xea\x77\x8b\xff\xbe\xfb\xe1\x57\x7c\ \x02\xd4\x55\xd5\xf6\x05\x50\xd5\xbe\x75\xf6\x34\x3f\xaa\xaa\xaa\ \x3a\x5f\xb6\xab\x9c\x5a\x6d\xb5\x6e\x6a\xb5\xba\xa4\xc6\x18\xbd\ \xb2\xf0\x75\xf2\xe6\x8b\x7c\xfb\xfc\xa3\xbc\x02\x14\xdb\x4d\xee\ \x55\x03\x33\xe0\x94\x10\x2c\x60\x7c\x39\xd2\xfb\xb4\x04\x8b\x31\ \xb7\x58\x5e\xae\x11\x86\x21\x87\x1e\x7a\x3a\x3a\xf9\xc6\x07\x8f\ \x1d\x9e\xe1\xe5\x97\x8e\xf1\x1c\x30\x21\x22\x72\xc7\x21\x4c\xbd\ \xd6\x2e\xd0\xb4\x1c\xe0\x50\x2c\xaa\x09\xcd\x66\x23\x0d\x55\x14\ \xf1\xf0\xf1\x93\xa3\xa7\xdf\xfa\xf8\x99\xb9\x12\xa7\x80\x43\x40\ \x61\xc8\x55\x90\x02\x81\x45\x31\x9e\x40\x02\x18\xc4\x93\xc9\xe6\ \x6d\xdf\xbe\x09\x8e\x3c\x75\x22\x2e\x4d\x72\x1c\x38\x0a\x4c\x0e\ \xb5\x0a\x14\x87\x60\xd2\xd4\x6e\xe7\x97\x54\x19\x08\x02\xc5\x98\ \x16\x17\x2f\x5e\x60\x6d\x6d\x83\x20\x80\xfd\xfb\x8b\x68\x54\x8c\ \x61\x75\x0e\x98\x00\xaa\x77\xac\x80\x64\x2c\xd0\x4e\x1e\x12\xda\ \xd9\x18\x1d\x15\x66\x66\x0f\xd2\x6c\xd6\xd9\xdc\xac\x61\xcc\x26\ \x85\xc2\x08\xad\xe6\x2a\x5e\xfe\x68\x48\x05\xac\x57\x40\x3b\x7d\ \x4b\x46\x85\x20\x54\xee\x9b\x2d\x31\x35\xf9\x38\xc6\x18\xa2\x28\ \x22\x8e\x0f\x70\x7e\x04\xcd\x65\x10\x09\xce\x77\x4c\xc6\x06\x45\ \x11\x04\x25\x10\x21\x8e\x85\x38\xce\x5a\x3d\x46\x18\x74\xa4\xd3\ \x1c\x32\x90\xf8\xb7\xa4\xa0\xda\x87\x6e\x4a\xce\xe5\x37\x8a\xdb\ \x5e\xb7\x3b\x6f\x83\x48\x4f\x2c\xb7\x1b\x15\xff\x9f\x9c\x08\x08\ \x0e\xcd\x58\xd0\x26\xa1\x3b\xd6\xc3\x36\x1d\xc9\x57\x81\xd4\x82\ \xfe\x24\x7b\xe9\xe5\x48\x40\xfd\xe0\x91\x2e\x03\xba\x41\xe9\x49\ \x9a\xe6\x69\x41\x56\x01\xd9\xa5\x63\x7a\x08\xe5\xae\x40\x9a\x01\ \xd3\xe9\x51\x76\x89\x1c\x3e\x96\xd2\x09\xa7\xcd\xdf\x82\xde\x5e\ \xa5\x13\xc6\x14\x7a\xfb\x79\xbd\x1b\x0a\x24\x3b\xe4\xee\xf6\x5c\ \xbb\x16\x67\xce\x0a\xec\x9c\x84\xba\xeb\x73\xd9\xdd\x43\xf3\x1f\ \x44\x83\x62\xd7\xfd\xfb\x2e\x0c\xa2\xac\xf3\xfd\x94\x68\x0f\xec\ \x5c\x97\x61\xba\x15\x0f\x3a\xe1\xc7\xc0\x38\x50\x64\x6d\x25\x70\ \x1b\x4d\x5a\xb9\x6d\x46\x3b\x2d\x80\xf4\x48\x39\x86\x30\x8d\x52\ \xa4\x56\x59\xb1\x95\xc5\xcb\xf6\xa7\x2f\x3f\x4a\xae\x2c\xfe\xd0\ \xb8\x74\x95\x3f\x80\x55\x60\x6b\x48\x05\xd4\x1f\x40\x15\x25\x04\ \x0a\x08\x53\x28\x07\xa8\x55\x56\xed\xc2\xfc\xb9\xe4\xd7\x6f\x3e\ \x35\xe5\x72\x79\xfd\xef\x3a\xcb\xdf\xff\xc9\x6f\xe5\x2a\x65\xe0\ \x1a\x70\x19\x58\x1f\x32\x03\xa0\x8c\xa1\x4c\x03\x07\x3d\xe8\x85\ \x0e\xe8\x2f\xd7\xa8\x5c\xaa\xf0\xfb\xd2\x0d\xfe\x02\x6a\xc0\x12\ \xf0\x8f\x3f\x86\xd5\x81\xcd\x21\x15\x38\x42\xad\xb2\x6c\x17\xe6\ \xcf\xef\x05\x7a\x1d\xb8\xea\x41\xeb\xc0\x86\x07\xdd\xd2\x01\x5f\ \x3e\x03\x09\xac\x37\x39\xf7\xce\xa9\xc2\xf4\xf5\x1b\xd8\x9f\x2b\ \x2c\xed\x01\xba\xe2\x65\x6e\x00\x89\xde\xc6\x17\xef\xc0\x4f\x33\ \x11\x29\x01\xc7\x80\xc3\xc0\x2d\x0f\x38\x14\xe8\xed\x12\x18\x01\ \xa6\xfd\xd1\xda\x7a\x69\x87\x02\xcd\x5e\xff\x01\xf9\x68\x10\x8e\ \x11\x57\x76\x24\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x07\x66\ \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\x2d\x49\x44\x41\x54\x78\x5e\xb5\x56\x5d\x6f\x1c\x57\ \x19\x7e\xce\xc7\x7c\xec\x97\xd7\x6e\x9c\x38\xc6\x89\x03\x49\x9a\ \x26\x4d\x21\xaa\x08\x95\xb8\x40\xca\x25\x08\x89\xfb\x8a\x2b\xee\ \xb8\x41\x48\x48\x20\x21\x21\x04\x37\x5c\xf1\x03\xb8\x00\xa9\x70\ \x83\xa2\x0a\x51\x22\x01\x37\x20\x15\xd1\xa0\xe6\xb3\xad\x53\x2b\ \x49\x9b\xa4\xb1\xe3\x8f\xb5\xbd\x3b\x9b\x59\xef\xcc\xce\xce\xcc\ \x39\x87\xf3\x1e\x2d\x2b\xd3\x3a\xf5\x02\xe2\x58\x8f\xde\x39\xc7\ \x1a\x3f\xcf\xfb\xbc\xef\x79\xc7\xcc\x18\x83\xff\x75\x5d\xbc\xf8\ \x6d\x0e\x20\x54\xaa\xa8\x68\x5d\xd6\x19\xe3\x14\xa7\x74\xa9\xea\ \x5a\x95\x15\xad\xf4\x94\x31\x68\x7a\x15\xb9\xba\xbc\x7c\xf9\x4d\ \x00\x99\xe5\xd5\x00\x20\xf7\x12\x5c\xf8\xc2\xb7\xbe\x94\xa5\x83\ \x53\x40\x59\x63\xe0\x75\x3f\x0c\x6b\x42\x7a\x55\x18\x56\x07\x50\ \x63\x8c\xd5\x00\xd4\xc1\x10\x5a\xd0\x59\x08\x98\x0a\x98\x0e\xb5\ \x31\x81\x86\xf6\x34\x2b\x3d\x4b\x2a\x99\x27\xc5\xdc\xe9\xe7\xd9\ \xd9\x17\xcf\xf2\xc6\xcc\x0c\x13\xcd\x19\xf1\x97\x5f\xbd\xf6\x00\ \xc0\xab\x16\x14\xe3\x4f\x08\x38\x3c\x7f\xf8\x97\x5f\xfc\xca\xcb\ \x2f\x65\xda\x53\x79\x51\xb0\x3b\x37\xdf\x62\x1f\xdc\x7d\x17\x5e\ \xe0\x81\x0b\x30\xce\x01\x21\xb8\x83\xe7\x09\x16\x04\x92\x85\xa1\ \x8f\x8a\x45\xb5\x1a\xda\x18\xa2\x5e\xab\xa2\x56\xab\x60\xee\xe8\ \x02\x4e\x5f\xf8\x32\xae\x6c\x7f\x16\xed\xf6\x03\xf0\xd6\x32\x94\ \x2a\xe7\x01\xbc\x62\xd1\xd9\x57\xc0\xc9\x73\xa7\xce\x7f\xe3\x7b\ \xaf\xf2\xdf\xfd\x63\xc8\x3f\xba\xf9\x16\xe6\x16\x24\x7e\xf8\xdd\ \x1f\xa1\x54\x40\x18\x04\xf0\x3d\x89\x6a\xa5\x82\x30\x0c\x10\xf8\ \x9e\xdd\xfb\x90\x52\x40\x08\x01\xce\x18\x98\x05\x18\x20\xa5\xe7\ \xce\xb3\x5c\xe1\x27\x57\x3b\x78\x78\x7b\x09\xcf\x9b\x77\xe1\xab\ \x5c\x00\x20\x11\xa1\x05\x3e\x21\x60\x37\xc9\xb3\x37\x6f\x0f\x6b\ \xbf\xf9\xeb\x0a\x3a\xd7\x96\xf0\xcd\x53\x06\x5f\xff\xea\xd7\xb0\ \xb1\xbe\x8e\x7e\xd2\x47\x96\x0d\xa1\x94\x42\x59\x14\xc8\x87\x43\ \x68\xad\x61\x8c\x71\xb1\x2c\xcb\x31\xe8\xcc\x89\x11\x3e\x4e\x1e\ \x3a\x89\xf5\x13\xaf\xa0\x9a\xe7\x28\x57\xaf\x01\x00\x23\xec\x2b\ \x80\x5e\x54\xf4\xc7\x94\x71\x2f\x47\x4f\x63\xdc\x78\xfb\x2a\xd6\ \x36\xb7\x51\x14\x85\x23\xe3\x9c\xec\xa7\x0c\x25\xc1\x65\x4f\x8b\ \x44\xd0\xa2\xdf\xfb\xbe\x6f\xcb\x50\x43\xb5\xd1\x84\xfc\x40\x21\ \xac\x56\x21\x94\x40\xb9\x87\x6b\x5f\x01\x24\x5a\x0a\x8e\xc0\x13\ \x80\x64\x08\xc3\x0a\x16\x17\x17\xc1\xbd\x90\x32\x27\x01\x44\x48\ \xd9\x8d\x41\xcb\xed\x39\x07\xed\x38\xf5\x87\xf4\x5c\x3f\x88\xa0\ \x0a\xc9\x13\x04\x82\xc1\xe3\x40\x7e\x90\x00\x80\x41\x70\x06\x5f\ \x70\x80\x19\xd4\x6d\x16\x73\x9f\x39\x8a\x24\x2b\x9c\xfd\x45\x31\ \x1c\x59\x6e\xe0\x7e\x94\x86\x36\xe4\x9c\x76\x0e\x39\x94\x05\x54\ \xa9\xe0\x16\xb7\x42\x2a\x2f\xc2\xf7\x32\x27\x1c\x07\x3a\x60\x41\ \xdc\xbe\xc7\x20\x7d\x89\xa8\x1b\xe1\xf6\xf5\x9b\xd8\xdc\x89\xc8\ \xe2\xb1\xbd\x41\x10\x50\x19\xe8\x99\x1a\x93\x1c\xb0\x44\x15\xb2\ \x9f\x88\xdc\x79\xd5\xda\xee\x59\x07\x7e\xfd\x46\x8c\x40\x0a\x97\ \x18\xd8\x81\x0e\x18\x48\xce\xe0\x49\x61\x23\x50\xaf\xd7\xf1\xc2\ \xf9\xcf\x63\xb6\x13\x8d\xad\xfe\xb7\x12\xb8\x37\x00\xce\xc8\xb1\ \x71\x1c\x97\x85\x1a\x32\x94\x02\xa1\xa7\x21\x05\x3b\xd8\x01\x22\ \x90\x92\x23\xb0\x90\x8c\x51\x23\x59\xd4\x51\x14\xa5\x43\xa9\x4a\ \xa8\x51\x97\x13\x40\x11\xb0\x67\x64\x7d\x89\xe1\x30\x47\x59\x94\ \x50\xda\xf5\x0b\x0c\x97\xa8\x86\xc7\x10\xf8\x8a\x12\x9b\xac\x04\ \x94\x79\xe8\xb9\x46\x44\xa7\xbd\x83\x7b\xcb\x4b\x68\x77\x7b\x2e\ \x73\xcf\xf7\xdd\x3c\xa8\x84\x15\x04\x81\x0f\x3f\x08\x21\x3d\x39\ \xb6\x9e\x40\x37\xc3\x73\x65\xe1\xa0\xf5\xfb\xf5\x6d\x57\x02\x8f\ \xcc\x39\x48\x00\x29\xf0\x84\x73\xc0\x92\x79\x98\x3d\x64\xa7\xd9\ \x99\x73\x38\x39\xba\x7e\xd2\x35\xe7\x7e\x99\x18\x17\xb4\x32\xc8\ \x4a\x20\x4e\x34\xb2\x42\x21\xb7\xfb\x6a\x40\x25\x30\x93\x36\x21\ \x83\xeb\x01\x01\x54\x67\xe6\x30\x7f\xa6\x09\xe9\x79\x6e\x36\x64\ \x85\x41\x77\xa0\x90\xe4\x06\x69\xae\xd1\xb7\xb1\x3f\xd4\xd8\xcd\ \x34\x7a\x43\xe3\x62\x6c\x41\x67\x69\x6e\xa0\x0c\x5c\x89\x3a\x03\ \x8d\x66\x35\x04\x04\x0e\x16\xc0\x19\x29\x05\x7c\xa1\xec\xf5\x3b\ \x81\x3b\x9a\xe1\xfb\x57\x76\x30\x5b\x15\x18\x94\x06\x89\x25\x1c\ \x14\x06\x79\x39\x82\x02\x4a\x63\x50\x8e\x9e\x15\x18\xc0\x38\x04\ \x97\x60\xe4\x96\x2e\x1d\x6f\x73\x4a\xa0\xa0\xfd\x24\x73\x80\x6a\ \x15\x70\x86\xe9\xa9\x06\x4a\x0e\xdc\x6f\x15\xb8\x8b\x02\xca\xd0\ \xb0\x11\x60\x42\x42\xba\x9a\x73\x70\xc9\xc0\x8d\x86\x60\x39\xbc\ \xb2\x0f\x3d\xe8\x23\xdd\x8d\x30\xe8\x45\x28\x8b\x1c\x53\x47\x4f\ \x62\xfe\xd8\x09\x54\x7c\x01\x23\x30\xc9\x35\x84\xb3\x3f\xf4\x05\ \x18\x37\x90\x9e\xef\xb2\x28\xb3\x14\x26\xdd\x45\x96\xc6\xc8\x7a\ \x16\x49\x17\xc3\x24\x86\xca\xfa\x10\x6a\x80\x9a\xd4\x98\xae\x49\ \x1c\x6e\x56\x71\xee\xb9\x06\xe6\x4e\x37\x70\xe4\xd0\x34\x9a\x33\ \x1a\x6f\x74\x7c\xd7\x57\x1e\x4d\xca\xc9\x46\x31\x09\x90\x96\x34\ \xc6\xfa\x3b\x7f\x42\xda\xfa\x10\x53\x15\x89\x43\x8d\x10\x0b\xd3\ \x35\xcc\x1f\x6d\x62\x76\xba\x8e\x99\xc6\x09\x1c\x9d\x9d\xc6\x9c\ \xc5\x73\x53\x75\x54\x2b\x81\x6b\xd4\x52\x29\xa4\x83\x0c\xbb\xfd\ \x04\xbd\xfe\x10\x8b\x26\xc0\x40\x0b\xe4\x93\xcc\x01\x0e\x27\xc0\ \x5a\xe6\x63\x3b\x6a\xe1\xe2\x91\x1c\x3f\xfd\xf1\x77\xb0\xb1\xb9\ \x85\xcd\x8d\x75\xb4\x5a\x2d\x44\xdd\x36\x9a\xd0\x38\x73\xfc\x38\ \x82\x30\x74\x9f\xe1\x24\xcb\xa9\xeb\xdd\x1c\x31\xc6\x8c\x46\xb2\ \x86\x61\x40\x3d\x14\xd0\x05\x47\x3a\x89\x00\x8c\x1c\xf0\x03\x09\ \x66\x4a\x57\x0e\xc6\x04\xee\x7d\xf8\x08\x97\x2f\x5f\xc6\x60\x30\ \x70\x23\x76\x6a\x6a\x0a\xc7\x4e\x7c\xce\xcd\x81\x4f\x5b\x44\x19\ \xd0\xb5\x06\x0d\xb6\xfd\x9b\xf0\x63\xa7\xcc\x91\x06\xa3\x41\xc4\ \x19\x77\x83\x65\x7d\x7d\x9d\xc8\xdd\x97\xf1\xb8\xcd\x9c\xbe\x03\ \x93\x2e\x9f\x26\xab\xcf\xe0\xfb\xf2\x60\x01\x9c\x8d\x26\xa1\xe4\ \xee\x45\xce\x01\x03\x43\x84\xf4\xb1\x71\x1f\x19\x21\x04\xed\xc9\ \xee\xc9\x04\xf8\x1c\x01\x33\x28\xd2\x0e\x98\x19\xdb\xc0\x9e\xe1\ \x80\x13\xe0\xc8\x7d\xc1\x5d\x7d\x61\xc6\xdf\x89\x71\x8d\xff\x93\ \x15\x48\xa0\xfb\xf0\x06\x56\x97\xde\x47\xb7\xbb\xb2\x0e\x60\x68\ \x51\x3e\x53\x80\x10\x80\x27\xb9\x05\x95\xc0\x69\xfd\xaf\x17\xe9\ \x67\xfd\x16\xee\xfe\xed\x0f\xb8\x7f\xeb\xc1\xf6\xda\xda\x8d\xeb\ \x00\x56\x2c\x7a\xfb\xdf\x02\x3e\x6a\x42\xc9\x20\xe5\xbf\x32\x06\ \x14\x5d\xad\x34\xa5\x3e\x20\xfb\x69\xff\xa9\x25\x10\x82\xbb\x9a\ \x6b\x53\x62\xe5\xfa\x9f\x71\xef\xda\x72\x6f\x75\xe5\xd6\xad\xa2\ \x48\x48\xc0\x7b\x16\xdd\x7d\x05\xc0\x30\x67\x89\x20\x21\x16\x9c\ \x33\x68\xad\x31\x3b\x3b\x8b\x4b\x97\x2e\x61\x61\x61\x01\xd3\xd3\ \xd3\x68\x34\x1a\xee\x3f\x63\x29\x85\x8d\x9e\x7b\xe6\x5c\x20\xcf\ \x4b\x3c\x7d\x9a\x98\x76\xbb\xc7\xda\xed\x18\xbd\xdd\x0c\x77\xaf\ \x3d\x1a\x3e\x79\x7c\xe7\x4e\x92\x6c\xbd\x0d\xe0\x9a\xc5\x47\x16\ \xf9\x33\x07\x51\xa3\x0a\xcc\x1f\x06\xe2\xc3\x4d\x84\xba\x81\xbc\ \xc8\x71\xe1\xc2\x4b\x38\x7f\xfe\x05\x4b\x90\x43\x29\xed\x66\x7f\ \xb7\x9b\x22\x49\x62\xc4\x71\x86\x28\x4a\xcc\xf6\x76\x57\x6d\x6d\ \xed\x0c\xdb\xed\xad\x7e\xaf\x17\xc5\x69\xda\xe9\xc6\xf1\x56\x7b\ \x75\xf5\xe1\xd6\x60\xb0\xfb\x00\x00\x65\x7f\xdf\xa2\x6f\xec\xda\ \x57\x80\xe7\x4b\x7f\xd0\x4f\x71\xf5\xb7\xaf\x61\x63\xed\x09\xce\ \xce\x1f\x31\x0f\x1f\x6d\xe3\xf1\x4a\x8b\x45\x51\xdf\x92\x26\x26\ \x8a\x76\xcb\x4e\x27\xca\xba\xdd\x9d\x7e\x1c\xb7\xe3\x38\xde\x89\ \xba\xdd\xcd\x76\xbb\xbd\xd1\x4e\xd3\x5e\x44\x04\x16\xb1\x45\x6f\ \x14\x9f\x5a\xb4\x2c\x36\x69\x3f\x26\xdf\x4f\xc0\xe3\x47\x6b\x1b\ \x3f\xff\xc1\x2f\x16\xef\xbe\xf7\x7e\x91\x26\x59\xb1\x94\xdf\xcb\ \xae\xbc\xfe\xf7\x7e\xad\x86\xdd\x7e\x3f\xea\x46\xd1\x46\x7b\x67\ \x67\x6d\x7b\x38\x1c\x10\xc1\xee\x98\x64\x0c\xb7\x4f\x2c\x32\x8b\ \xe1\x9e\x98\x5b\xde\xf2\xc0\x49\x78\x6f\xe9\xf6\xcf\x7a\xbd\x27\ \x2f\xa7\x83\x56\x7d\x30\x88\x22\xad\x4b\x52\xdf\x27\xec\x21\x7c\ \x3a\x7a\x4e\x1d\xc1\x98\x64\x4c\xa4\x70\xf0\xda\x5f\xc0\xc3\x47\ \x7f\x7c\x1d\xc0\x3b\x16\xcd\x51\x26\xbd\xbd\x59\x7c\x8c\x48\x4f\ \xc8\x31\xb9\x80\x11\xe1\xf2\x68\x3e\x14\x23\x22\x83\xff\xe3\xfa\ \x27\x0a\xd7\x77\xe2\xf8\x4e\x6d\x80\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x06\xe8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x06\x7a\x49\x44\x41\x54\x58\xc3\xed\ \x57\x09\x4c\x54\x57\x14\x1d\x6a\xed\xa6\x4d\x69\x69\xb5\x2e\x15\ \xf7\x1d\xb1\x20\x8a\x0a\x28\x2a\xb2\xa9\x88\xc0\x20\x28\x22\xae\ \xe0\x30\x08\x6e\x6c\x23\x42\x01\xc5\x71\x41\x76\x71\xa1\x0a\x28\ \xe2\x5a\xc0\x0a\x5a\x91\x60\xc0\x15\xad\x88\x68\xcd\x18\xd4\xaa\ \xd4\x5a\xb1\x2e\xe8\x8c\x0a\x9e\x9e\x0f\x3f\x8d\x52\x29\x9a\x9a\ \x36\x69\x9c\xe4\x64\x32\x33\xff\xdd\x73\xef\x39\xf7\xde\xff\x47\ \x02\x40\xf2\x5f\x42\xf2\x36\x81\xff\x65\x02\x66\x52\x85\x91\x99\ \x34\x58\x66\xea\x14\x14\x6f\xea\x18\x98\x66\xea\x18\x90\x3e\xd4\ \x7e\xc1\xaa\x81\xb6\xde\x93\x25\x12\xc9\xc7\x44\x33\xc9\x9b\x7e\ \x0d\x9b\x18\xd2\x97\xc4\x11\xc3\x9c\x17\x17\x7b\x2c\xdc\x7c\x39\ \x60\xf9\xe1\xdb\xa1\xd1\x17\xab\x15\x2b\xae\xa8\x15\xcb\xaf\xa8\ \x03\xa3\xce\x3c\x90\x29\x76\xdf\x1a\x6c\xe7\x97\x6f\x60\x31\x5d\ \xc6\x23\x9f\x10\xef\xbe\x01\xe2\xc5\x96\x24\x4d\x99\x34\x37\x59\ \x15\x91\x50\x76\x37\x3c\x41\x53\x2b\x0f\x07\x26\x2d\x00\xc6\x7a\ \x02\xa3\xa7\x02\x23\xdd\x00\x6b\x77\xc0\x7d\x1e\x10\x16\x5d\xf9\ \xc4\xc2\x75\xc9\xb5\xd6\xba\x7a\x52\x1e\xd7\xf9\xc7\xc4\xd3\x17\ \xa5\x56\x28\x93\xaf\x3e\x0c\x8c\x06\xdc\x02\x49\x24\x03\x4c\xa6\ \x01\x86\x93\x01\x3d\x29\xd0\xdb\x1e\xe8\x66\x4b\x8c\x06\xfa\xd9\ \x00\xd2\x39\xc0\x82\xf0\x22\x75\xaf\xc1\x13\x72\x18\xc6\xe0\xf5\ \x89\x9d\x17\xeb\x12\x8a\x49\xbe\xc9\xaa\x95\x1b\x49\xbc\x06\x70\ \x0d\x02\x2c\xe4\xc0\x50\x56\x6c\x4c\x0c\x64\x12\x83\xbc\x09\x92\ \xe9\x7b\x00\x3d\x5d\x80\x4e\x63\x00\x5d\x0b\x60\x88\x13\x10\x10\ \xa5\x7e\x36\xd0\x56\x56\xc9\x70\x4e\xaf\x45\x3e\x7c\x62\x88\xdc\ \xc6\x23\xaa\x2c\x3c\xbe\xa4\x2a\x3c\x19\x98\xba\x84\x15\xfb\x01\ \x66\x73\x89\xf9\x94\x5b\x01\xd8\x47\x01\x93\xa9\xc6\xd4\x38\x26\ \xc6\xf7\x71\xdf\x50\x11\x5f\xa0\xef\x14\xa0\xab\x1d\x60\xe4\x0c\ \xcc\xa5\x45\xe6\x4e\x01\x77\x19\xd2\xf7\xb5\xaa\x96\x2d\xd9\x71\ \x35\x26\x5d\x53\xeb\x4d\x92\xf1\x01\xf4\x96\xa4\x23\xfc\x01\x9b\ \x08\x92\x92\x70\x7e\x3a\xb0\x7c\x2f\xb0\xbe\x10\xd8\x54\x04\x24\ \xfc\x00\xf8\x6f\xa5\xec\x2b\xa8\x0e\x13\xed\xc3\x5e\x18\xcc\x5e\ \xf0\x5d\xc6\xe4\xbc\xe3\xab\x19\x5a\xf1\x0a\xe4\x0a\x27\xa1\xea\ \xc8\xc4\x92\xaa\x88\x75\x24\x0a\x63\xd5\x24\x1d\x45\xbf\x6d\x22\ \xd9\x6c\x09\xf4\x74\x1b\x10\x7b\x08\xc8\x2a\x03\xb6\x1e\x54\xd5\ \x84\xc4\xee\x51\x7b\x2c\x88\x7b\x18\xb9\x2e\x4f\xb3\xbd\x84\x92\ \x67\x50\x09\x5e\x6b\x4c\x6b\x46\xd1\x2a\x45\x2c\xed\x19\x23\xbf\ \xc7\xf0\x4b\xfe\x1c\x1f\x8e\x86\x31\xbf\xf8\x88\xd0\x7a\x5e\x72\ \x07\xcf\x98\x0b\xb1\x69\x37\x35\xf3\xe9\xb5\x53\x08\x60\x49\x99\ \xad\x59\xb1\x34\x06\x90\xb1\x62\xe5\x01\x60\x57\x29\xb0\xad\x40\ \x55\x33\xc6\x23\xf4\x41\x5f\xd3\x89\x57\x3b\xf4\x1a\x5a\xac\xd3\ \xae\xfb\x4e\x36\xda\xb1\xb5\xbb\x4a\x34\x89\xf9\xb4\x24\x91\x7d\ \x12\x54\x1f\x63\x55\x9a\xfa\x99\x91\xb5\xe7\xed\x3a\x05\x04\xf2\ \xc4\xd4\xb2\xdf\x0d\x2d\x67\x6d\xea\xd2\xdf\x62\xbc\xb8\x28\xb4\ \x98\x58\xf0\x0c\xff\xd4\x8a\xd8\x2d\x9a\x5a\x2f\x25\xbd\xe5\x41\ \x2b\xfa\x69\xbf\x0a\xf0\x48\x61\x15\x39\x40\xca\x31\x20\xfb\xf4\ \x9d\x5a\x59\xe8\x86\x47\x02\xf1\x97\x9d\xf4\xf3\x79\x76\x39\xe1\ \x45\x8c\x63\x3c\x7f\xdf\xc8\xf4\xdf\x32\x4f\x02\x3e\xa9\x4c\x9a\ \x71\x7c\xe3\x81\xc8\xa4\x13\x4f\xba\x1b\x8d\x39\xcf\x6b\xfc\x04\ \x05\x4a\x0b\x8f\x30\xab\x75\xa7\x1f\xe9\x9b\xbb\x65\xe9\x99\xb9\ \xc8\xb9\xc1\xb6\xf9\x45\xe4\x5c\x57\x6e\x06\xa6\xd1\x6f\x3b\xca\ \x6e\xcb\x77\x97\x24\x40\x9e\x09\xac\x2c\x00\xf6\x94\x03\x69\xfb\ \xcb\x9e\x8e\x70\xf6\xbf\xdf\xa1\xb7\x49\x09\x83\xad\x21\x3c\x09\ \x73\xa2\x33\xf1\x59\xff\x11\xee\x16\x5e\x21\x29\xd7\x77\xfd\x48\ \x1b\xb6\x53\x31\x5a\x18\x9f\x45\x05\xdd\x42\x1f\x68\xb7\xea\xb8\ \x9b\xd7\xb8\x08\x0d\x56\x96\xcb\x80\x2b\xf9\xa3\x97\xe2\x94\xda\ \x78\x9c\xef\x85\xf0\xa4\xeb\x1a\x7f\x7a\xeb\xb6\x94\xcb\x84\x72\ \xdb\x0b\x5d\xfd\x2d\x83\xb0\xc1\xd6\x1e\x07\xf2\xca\xd5\xcf\x16\ \x29\xb7\x70\x96\xed\x2b\x3e\x6f\xdf\x63\x5f\x9d\x97\x12\x89\x1d\ \xd1\xf5\xf9\x55\x6b\xe2\xb0\x68\xda\xb2\x0d\xfb\x7f\xcd\x64\x1f\ \x84\x91\x58\xf9\x1d\x10\x9e\x74\xf8\x71\x57\x03\x2b\xa1\xfa\x30\ \xc2\x58\xb0\xe0\xdc\xae\x5c\x60\x4e\x28\x3b\xdb\x07\x70\x5c\x54\ \x5d\xeb\x42\x52\x07\x62\x1c\xbb\x55\x4a\xc9\x66\x6d\x01\x42\xe9\ \x75\x2a\x2b\xc9\x2d\xbb\x53\x3b\x51\xae\xac\xee\xd4\x6f\x44\x29\ \x03\xc4\x10\x33\x89\x21\x44\xeb\x86\xab\x55\xb8\x17\x64\x1c\xbc\ \x58\x9d\xce\xa4\xe3\x38\x11\x69\x07\xef\xd4\x9a\x3b\xf9\xdf\x6f\ \xa1\xdd\x3a\x93\x3f\xbb\x12\x6d\xeb\x12\xd8\xb9\x9f\xbe\x72\xa6\ \x4d\xbc\x00\x53\x8e\x8b\x55\x58\x7d\xd5\x93\xd6\x03\x9e\x94\x6e\ \x29\x3b\x3c\x93\x92\xe7\x9c\xba\x51\x23\x4a\x7e\x92\x87\x95\x84\ \x83\x58\x75\x0b\xe2\x9d\x86\xf7\x06\xa9\x3c\xe6\x42\xf1\x65\x36\ \x28\x7b\x60\xe7\x51\xf5\x33\x47\x2f\x65\xb5\x78\x36\x98\x30\x24\ \x3e\xa8\x4b\x60\x0f\x09\x66\x2b\xeb\x67\x7a\x24\x95\xb0\x67\x87\ \x4f\xa1\xff\x3e\x94\x2c\x92\x33\x9d\x41\xf2\xb5\x59\x27\x9e\x8c\ \x24\x79\xbb\x6e\x03\x8f\xf0\x60\x24\x31\x96\x68\xdf\xd8\x0d\x45\ \x68\xee\xf4\xbc\xb2\xbb\x85\x2a\x20\xff\x02\x30\x2f\x72\x8b\x5a\ \x54\x4d\x48\xdc\x96\xf8\xa2\x6e\xe2\x84\x04\x72\x8a\xd9\x9d\xdc\ \x6c\x76\x4c\xc2\x81\x92\x4f\xe5\x78\x79\xd3\xb3\x10\xf6\x46\xf2\ \x19\x56\x70\xec\x46\x0d\x1b\xb4\x52\xbb\x95\x6e\x8e\xb8\x3c\xac\ \x88\x36\x8d\x91\x0b\xbb\xc3\xc3\x3f\x59\x55\xfe\x0b\x70\xfa\x2a\ \xf7\xc4\xd2\xad\x8f\x44\xdf\x57\x13\x13\x5e\x48\x5c\x48\x20\xef\ \x14\xc7\x8a\xdd\xed\xbe\x11\x98\xc1\xa5\x31\x97\xcd\x16\x4c\x55\ \xa2\x38\x66\x6b\x0a\xea\xc9\xdb\x77\x1f\x54\xc8\xcb\x17\x0a\xd6\ \x8a\xd9\xbf\xbc\x72\xa7\x20\x1d\x26\xb0\xf3\x50\xe9\x4d\x4d\x79\ \x25\xc9\xa3\xb6\x3e\x14\xc9\x85\x7e\x11\xee\x80\xba\x2f\x9c\x15\ \x12\x28\xa2\x44\x71\x5c\x16\x41\x9c\xed\xc5\x6c\xb6\x65\x5c\xa3\ \xd1\xec\xdc\xb5\xdc\x6c\x99\x97\xb8\x52\xb3\x4e\x3e\xee\x3d\x64\ \xc2\x51\x9d\xb6\xdd\x3c\xc5\xec\x1b\x7d\xa0\x60\xbc\x39\x71\x19\ \x45\xb7\x4a\x2a\x34\xb5\xce\xb2\x15\xf7\xba\x19\x5a\x97\x8b\x23\ \xea\x4c\x74\x24\x9a\x37\x3c\x70\xee\xec\xcf\xc0\xc1\x9f\x48\x56\ \x5a\xdf\x6c\x7b\xe8\x5b\x76\x05\xb0\x8f\xf2\x15\xdc\x00\xce\x56\ \x01\xeb\x76\x17\xa9\xfb\x98\x48\x77\xf0\x48\x1f\xe2\xfd\x46\x1e\ \x4a\xec\x42\x13\xf7\x5e\xcb\x3f\x7d\x53\x33\x76\x7a\xc4\xed\xce\ \xfa\xa3\x84\xfd\xb0\x52\xbc\xeb\xfd\x95\x5c\x9c\xd5\x8c\xec\xa2\ \xcb\x9a\xec\xe2\x4b\x4f\xb3\x8a\x54\x35\xd9\x47\x55\x35\x39\xc4\ \xde\x63\xc4\x71\x55\xcd\xf7\x44\xee\x09\x01\x97\x9e\xba\xfa\xae\ \xae\x6a\xa5\xab\xe7\x23\xfa\xaf\xd5\xe0\xf9\xa0\x87\x47\xc0\xfa\ \x8b\xab\xd3\x0a\xab\x0c\x2d\x67\x9e\xfb\xaa\xe7\xe0\x03\xfc\x3a\ \x82\xb0\x17\x65\x6f\xfe\x52\xc9\x0c\x46\xcf\x70\x19\x60\x35\xbb\ \xa0\xdf\xf0\xc9\xe7\xf5\xcc\x5c\x2f\x35\x8a\x61\xae\xaa\x36\x5d\ \x0c\x72\xc4\xb9\xef\xf2\x12\x1b\x9a\x75\x37\xb2\x35\xef\x3d\xd4\ \x71\xe3\x87\x2d\x3f\x8d\xe2\x67\x39\x31\x92\x68\xd7\xd4\xa3\x97\ \xb0\xb9\x06\x88\x8b\x61\x76\x13\x70\x13\x44\x13\x1f\xa5\xb4\x1a\ \xc4\x11\x3e\x6b\x13\x5f\x0b\xf7\x31\xd1\x2a\xed\x57\x79\xee\x6b\ \x26\x26\xd1\x46\x6c\xb0\xbf\x43\x9b\x26\x9e\x6a\xb5\xea\x96\x8b\ \x44\xd2\x92\x78\xef\x25\x49\xfe\xfb\xaf\xb7\xff\x8c\xde\x26\xd0\ \x14\xfe\x00\xc6\x8f\x6d\x5f\x51\xaa\x96\x24\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x00\x57\xb8\x67\ \x00\x70\ \x00\x72\x00\x69\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x04\xca\x57\xa7\ \x00\x6e\ \x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x08\xc8\x58\x67\ \x00\x73\ \x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x04\xb2\x58\xc7\ \x00\x75\ \x00\x6e\x00\x64\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x54\x00\x00\x00\x00\x00\x01\x00\x00\x12\x07\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x06\xc8\ \x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x9d\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/images/0000755000076500000240000000000012536324427023705 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/images/new.png0000644000076500000240000000172112536324427025205 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<cIDATXÃÅ—ÍoUÅwf’‰Ó|Ô­ ÒMUQQ„Ê Ø Ä¢R,*$(k6,úÀ‚ ¨;,Ø‚ªÚEd¡4@…n!µœæÃµÓyï]óìŒÄ¦õTéJi<çÜsλï¨*÷ò ¸ÇWôzÿ5yòæ‘U¤0ÊÆª"QÀL0ë”À:Õ5>{ûs榪ºAï–Aœ}]Î<øÈ ¯:§¡ª}vÜ9T`ª4ï ‚˜­†~ñÞ‰êw‹ÿ¾ûáW|ÔUÕöPÕ¾uö4?ªªª:_¶«œZmµnjµº¤Æ½²ðuòæ‹|ûü£¼ÛMîU3à”,`|9Òû´‹1·X^®†!‡z::ùÆžáå—Žñ0!"rÇ!L½Ö.дàP,ª Íf# Uñðñ“£§ßúø™¹§€C@aÈUE1ž@ēɿmß¾ Ž–Ò §Íß‚Þ^¥Æzûy½ $;äîö\»gΠ위ºësÙÝCóDƒb×ýû. ¢¬óý”hì\—aº:áÇÀ8Pdm%pMZ¹mF;-€ôH9†0R¤VY±•ÅËö§/?J®,þиt•?€U`kHÔ@% S(¨UVíÂü¹ä×o>5åryýï:ËßÿÉoå*eàpX2 Œ¡L=è…è/ר\ªðûÒ þjÀð?†ÕÍ!8B­²læÏïz¸êAëÀ†ÝÒ_> ¬79÷ΩÂôõØŸ+,íºâen‰ÞÆïÀO3)Ç€ÃÀ-8èí¦ýÑÚzi‡Í^ÿùhŽWv$IEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/images/print.png0000644000076500000240000000330412536324427025547 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÙܲÚ{IDATXíWiLTWv!b•—¨%R Eª¤IµVMli°h£¶Å²Fý£,aQH$dÂÐ"BYD@@ö‘}S6 ²©$ bƒ‚ ©_Ϲ™1£€´ó’/óÞ¼{Î÷ÝsÎ=÷¾yóT.;»è/##.HÒÓ«%—.VGFÞ¬ML¬¨­ªj¿/•6A‰+WJÛ÷|I¦óçièZhoÿG¡üñsLÿ µ˜Óˆ‚íÛ¬=ë—‰ÞP ùå2Ç‘éç‹‚­mXyc÷8dÏñ¯àq[Èî+‚–FØØû¤ÉÐ:µ`çôœÌ~!,шKK¯¡—ªÐðÔB%3 -I÷¤þJ9 "’š §g(Õäj˜Gͨ(¿ý-Šº1' º€ÜN ¶t††;êÉÌTcu`gÄŽ³:€Œ6 ­ Hi’ꀄj ¦ÈlJõíãhjꀯ¯ï+25øßä‰D.•– «p©R”1qPózžŒahh½½½xøð!Åàà PPP€††xxxLnÚ´ÉiÎvmcc³+,,L„º££÷îÝ¿r¹\¸|ù²øïÕ«WÇØØFGG?IÞÝÝÊÊJ¹¶¶68p`ˆ¨¾™u•9r$O&“‰Ð©Š`C&âü–••}’œÅ666ŠÐs 0ykk«(Tö“¼Y{Um «VæOU;aB¾çœ*Éy¶÷ïß©àÚ`---‚ðÉ“'xüø1=z$Š´¦¦ÁÁÁ Zè ºïg¤‚ÂSÛÙÙ‰¹D´··‹™sñqJ¥R‹wL¦ ;“²`&äH0nÞ¼) ÔÝÝ[·n•Ýïìß¿¿– P8K?óÌùjΕK” ŽW×Lvv¶(d???899áØ±cðööæ°û¨i!&&ÎÎÎHIIŽUEp01Ï’CÍbÓÒÒpýúu±b’““qþüy®x¸ºº‚z 233áï ïªÃB„±±ñìöíÛt÷î]QdýýýHOO‡———XzL¦Á¡M† yuˆð21 â4•——‹”ù%ºÂ+çWîؼyóìöîÝ+a¢7oÞjž);c!"¯bžå¹sçD¤˜˜Ÿy‹ãœ«’³ çŸ{¡‘‘Ñì¨KxÉMOO ‚óÌ5Á…äéé‰ãÇÃÇÇG„—£ Ì¹*9§’ß]¸pT[\ùâÿ3gÎÐŽi8»€;wJXé»wïæÁÅÇME™óɹ~…PÚß·hÏMÎÍÍ ¦¦¦}Dç4CÀ† ôi‰dP?xËa›K©’s$N:jd }...s ç ‹myS£1ÃDçFÐqå}\WW×cË–-rvÊE÷±ˆÒÒÒ÷ä Úé`mm=+97-¶á«©© 'Ož%ÿ|hñ˜ëè6_¡Ì|Íš5Ñfff#þþþ‰Rw=eس³Ë ‘dQ|Þ“óæÅÝñåË—Â&55”ÞÁ¥K—Ö’ßTÂYÅ~°è“çAÂjžuëÖ•ìÚµkŠw@vxëÖ-±ò °²²¦¢ôÃŋմJŠ©[v‰Ùr¸IÌ4E²oñâÅ•äç*Á•ðµÂï"uÏ%<Ð@[[ÛqýúõmVVV -Û¶m=®ZµªYGG§ÒÄÄ|ˆ…¤¦æÂÁÁaBOOO¦¥¥U@¶N(Ή+þÏY‘+Öhùòåúúú ,(¢çD‚;áŽÔÊ•+ãV¯^Ý@÷Y„pÅ7‚¡"¥ 5òµ¤˜‡ñ ",Sœr´Ÿeß~TJ—¨óÅüÑÂG´còÉüIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/images/save.png0000644000076500000240000000354612536324427025361 0ustar philstaff00000000000000‰PNG  IHDR szzô-IDATx^µV]oW~ÎÇ|ì—×nœ8ƉIš&M!ª•¸@Ê%‰ûŠ+î¸AHH !!7\ñ¸©pƒ¢ Q"7 Ñ æ³­S+I›¤±ãµ½;›YïÌÎÎÌ9‡ó-+Ó:õâXÞ9Ç?Ïû¼ïyÇ̃ÿu]¼øm Tª¨h]Öã§t©êZ•­ô”1hz¹º¼|ùM™åÕ ÷\øÂ·¾”¥ƒS@Ycàu? kBzUVPcŒÕÔÁZÐY˜ ˜µ1†ö4+=K*™'ÅÜéçÙÙÏòÆÌ Íñ—_½öÀ«ãO8<ø—_üÊË/eÚSyQ°;7ßbÜ}^à 0Î!¸ƒç ’…¡ŠEµÚ¢^«¢V«`îèN_ø2®líöðÖ2”*ç¼bÑÙWÀÉs§Îã{¯òßýcÈ?ºùæ$~øÝ¡T@ð=‰j¥‚0 øžÝûR@Θ ¥çγ\á'W;xx{ Ï›wá«\ ¡>!`7ɳ7ok¿ùë :×–ðÍS_ÿê×°±¾Ž~ÒG– ¡”BYȇCh­aŒq±,Ë1è̉>N:‰õ¯ šç(W¯#ì+€^TôÇ”q/GOcÜxû*Ö6·Q…#ãœì§ %ÁeO‹DТßû¾oËPCµÑ„ü@!¬V!”@¹‡k_$Z ŽÀ€dà Á½2'DHÙAËí9í8õ‡ô\?ˆ  É‚Áã@~€Ap_p€ÔmsŸ9Š$+œýE1Ynà~”†6äœv9”T©à·B*/Â÷2':`AÜ¾Ç }‰¨áöõ›ØÜ‰Èâ±½AP虓°D²ŸˆÜyÕÚîY~ýFŒ@ —ØHÎàIa#P¯×ñÂùÏc¶­þ·¸7Îȱq—…2”¡§!;Ø"’#°ŒQ#YÔQ¥C©J¨Q—@°gd}‰á0GY”PÚõ —¨†ÇøŠ›¬”yè¹FD§½ƒ{ËKhw{.sÏ÷Ý<¨„?!=9¶ž@7Ãseá õûõmWÌ9H)ð„sÀ’y˜=d§Ù™s89º~Ò5ç~™´2ÈJ N4²B!·ûj@%0“6!ƒëTgæ0¦ éyn6d…Aw äi®Ñ·±?ÔØÍ4zCãblAgin  \‰:f5À)|¡ìõ;;šáûWv0[”‰%y9‚JcPŽžÀ8—`ä–.osJ  ý$s€jp†é©JÜo¸‹Êа`BBºšspÉÀ†`9¼²=è#Ý0èE(‹SGObþØ T|#0É5„³?ô7žï²(³&ÝE–ÆÈzIÃ$†Êúj€šÔ˜®InVqî¹æN7päÐ4š3ot|×WMÊÉF1 –4Æú;BÚúS‰C Ó5ÌmbvºŽ™Æ ÆœÅsSuT+kÔR)¤ƒ »ý½þ‹&À@ ä“Ì'ÀZæc;jáâ‘?ýñw°±¹…Íu´Z-DÝ6šÐ8sü8‚0tŸá$Ë©ëÝ1ÆŒF²†a@=ÐG:‰Œð fJWÆî}ø—/_Æ`0p#vjj ÇN|ÎÍO[Dе ¶ý›ðc§Ì‘£AÄwƒe}}ÈÝ—ñ¸Íœ¾“.Ÿ&«Ïàûò`œ&¡äîEÎC„ô±q!íÉîÉø3(Ò˜ÛÀžá€àÈ}Á]}aÆß‰qÿ“H ûðV—ÞG·»²`hQ>S€€'¹•Àiý¯égýîþí¸ëÁöÚÚëV,zûß>jBÉ å¿2]­4¥> ûiÿ©%‚»škSbåúŸqïÚrouåÖ­¢HHÀ{Ý}À0g‰ !œ3h­1;;‹K—.aaaÓÓÓh4î?c)…ž{æ\ ÏK<}š˜v»ÇÚí½Ý w¯=>y|çN’l½ àšÅGù3Q£ ÌâÃM„º¼ÈqáÂK8þKC)íf·›"IbÄq†(JÌövWmmí Ûí­~¯ÅiÚéÆñV{uõáÖ`°ûeߢoìÚW€çKÐOqõ·¯ací ÎÎ1mãñJ‹EQß’&&ŠvËN'ʺÝ~·ã8Þ‰ºÝÍv»½ÑNÓ^D±EoŸZ´,6i?&ßOÀãGk?ÿÁ/ï¾÷~‘&Y±”ßË®¼þ÷~­†Ý~?êFÑF{ggm{8Áî˜d ·O,2‹áž˜[ÞòÀIxoéöÏz½'/§ƒV}0ˆ"­KRß'ì!|:zNÁ˜dL¤pðÚ_ÀÃG|À;ÍQ&½½Y|ŒHOÈ1¹€áòh>#"ƒÿãú' ×wâøNm€IEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/dockwidgets/images/undo.png0000644000076500000240000000335012536324427025361 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<zIDATXÃíW LTWjí¦Miiµ.÷± Š (*²©ˆÀ ("®à0nl#BÅqAvq¡ (âZÀ Z‘`À­ˆhÍÔªÔZ±.èŒ žž?R)šš6iœäd23ÿÝsï9÷ÞÿG@ò_Bò6ÿefR…‘™4Xfêoê˜fê>Ô~Áª¶Þ“%ÉÇD3É›~ ›Ò—ÄÜ{,Ü|9`ùáÛ¡Ñ«+®¨˯¨£Î<)vßlç—o`1]Æ#Ÿï¾âÅ–$M™47Y‘Pv7 ŒÜI$L¦†“=)ÐÛèfKŒúÙÒ9À‚ð"u¯ÁrÆàõ‰ëŠI¾Éª•I¼p ,äÀPVlL dƒ¼ ’é{=]€Nc] `ˆ¥~6ÐVVÉpN¯E>|bˆÜÆ#ª,<¾¤*<˜º„ûfs‰ù”[ØG“©ÆÔ8&Æ÷qßP_ ï «`ä Ì¥EæNwÒ÷µª–-Ùq5&]SëM’ñô–¤#ü›’’p~:°|/°¾ØT$üøo¥ì+¨íÃ^Ì^ð]Æä¼ã«Zñ ä '¡êÈÄ’ªˆu$ cÕ$E¿m"Ùl ôt{È*¶TÕ„ÄîQ{,ˆ{¹.O³½„’gP ^kLkFÑ*E,í#¿ÇðKþކ1¿øˆÐz^rϘ ±i75óéµS`I™­Y±4±bå`W)°­@U3Æ#ôA_Ó‰W;ôZ¬Ó®ûN6Ú±µ»J4‰ù´$‘}TcUšú™‘µçí:òÄÔ²ß -gmêÒßb¼¸(´˜Xð ÿÔŠØ-šZ/%½åA+úi¿ ðHa9@Ê1 ûôZYè†Gñ—ôóyv9áEŒc<ßÈôß2O>©Lšq|ãȤOº9ÏküJ 0«u§é›»e陹ȹÁ¶ùEä\Wn¦Ño;ÊnËw—$@ž ¬,ö”iûËžŽpö¿ß¡·I ƒ­!< s¢3ñYÿî^!)×wýH¶S1ZŸEÝBh·ê¸›×¸ V–Ë€+ù£—â”Úxœï…ð¤ëz붔˄rÛ ]ý-ƒ°ÁÖòÊÕÏ)·p–í+>oßc_—‰ÑõùUkâ°hÚ² ûÍd„‘XùžtøqW+¡ú0ÂX°àÜ®\`N(;Ûp\T]ëBRb»UJÉfmBéu*+É-»S;Q®¬îÔoD)Ä3‰!D놫U¸d¼XΤã8iïÔš;ùßo¡Ý:“?»mëعŸ¾r¦M¼SŽ‹UX}Õ“Öž”n);<“’眺Q#J~’‡•„ƒXu â†÷©<æBñe6({`çQõ3G/eµx6˜0$>¨K` f+ëgz$•°g‡O¡ÿ>”,’3AòµY'žŒ$y»nð`$1–hߨ Ehîô¼²»…* ÿ0/r‹ZTMHÜ–ø¢nâ„rŠÙÜlvLÂ’OåxyÓ³öFòVpìF ´R»•nޏ<¬ˆ6‘ »ÃÃ?YUþ pú*÷ÄÒ­DßW^H\H ïÇŠÝí¾˜Á¥1—ÍLU¢8fk êÉÛwTÈË ÖŠÙ¿¼r§ &°óPéMMy%É£¶>É…~/œ(¢Dq\AœíÅl¶e\£ÑìܵÜl™—¸R³N>î=dÂQ¶Ý<Åì} `¼9qE·J*4µÎ²÷ºZ—‹#êLt$š7k_ ÷1Ñ*íWyîk&&ÑFl°¿C›&žjµê–‹DÒ’xï%Iþû¯·ÿŒÞ&ÐþÆm_Qª–$IEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/0000755000076500000240000000000012536324427020702 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/images/0000755000076500000240000000000012536324427022147 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/images/copy.png0000644000076500000240000000247212536324427023634 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<ÌIDATXõ—]L[eÆwo¼ÙåI q×&ãN¸pÑ…D½Pãå+.&J'†ª‹™àТl†9ܘ€@l¦CÊ +ƒ(ÌÚÑ–ÒÒJ{ú¥ÐïßÿÛÇÌ*‡“<9o!œç÷<ïG‡ÊFϽúé»LZ&aj`ÊÙéyÙš?]Pò¥Áé§WÃ@0„¢­Ç2Š'X"s¿ykÚKr{ç¬ÚØÈ˜@„™…ã‘1)Ka%”D8šBs‡Æ¾Äÿ“y$ñÈX’Ï„]ŒÂå "K£ôÃïM4uY°ëØ6Õž:ü̹ç_.?VžEEU *™Þ¯­Ã±‰Ç¬¶%ü¹è‡kXöÆÒ¯œ¾pŸAÙ€]‡™ŠŠŠÌ’Z[[ݤ¯U­þ¯Tߦ195…Ù¹9è&&PPP€!Ío|ÞI¦ù̘\ÀáOAô…ðC¯ÎÍjöPCfØåŠÇãðz½H§Ó˜œœDee5fg¼ftÓ@2-xðÝQ¬ápF£‘S©~êíEã'Ÿa†A8–ÜPwuãLC#Î5Çí‘q\¼>,/ÀÆÆôzýc@}}ýP2ˆÐFf› ‚Áˆ©¬—ºdn€¦Ø:Ø~E"”+*0®@çmWÚª4¾|Sæ5@f:ÃÃÃèeõ÷÷÷C«Õ¢ªºcwõ*wí¶Ú»e y·ÛíBgg'zzz8PIiniõ×o°ùg¸Ð%3ÀÖÖß @¢(Âï÷cmm §•Ðü®ç©É|Á ˜=@›ÜÛA677ùv¤VÕèûUà©Gç;€Ì%€$3O$(+¯â¸‹˜ 6ZÕ0ÿ˜'“<=MIÉ©J ·³‰=Åø0±|qõ¤êɘ‹ÅP¦¨‚zHÀ˜¸k朙ûçWdÒSjˆF£Ü< ¡¸´×Üf‡ä dÄ(;dH=œs™Ó¹@ ÅeU¸Ø- :c®}ià£v™þ]=¥&­®®rˆ·J*p¹WÀ=¸~žîÌg.í@ªD‹Ž’ÓqLß+++X__ç'Yßt PO¿Ìe¸24ì§ÉXÚëdNi)9D@õÓÏÞ|[–ëO~u¸qøq,ž~½Nm¦7ª¬žd,m72%Ñ#òäÌ'hï ¼f[O5âÉxG•JŤ.Í7RR:÷)µÃáà"ãÅÅEõâñ—\ô¹“é®---né`¡ÔÒ— ———áóù`³Ùø}ii‰C ͲТ’R“éNßxT;5`µZyõÔ ýÎ`0$òòòî³gÙ@SS“[šgJO"ªšÆ‹™7@ŸGGG#mmmÞüü|ûÛA¦²½šÿ'@ss3ŸJGT?U???ÏëÖh4‘ºº:çô]L0ÍÆxG¥Rév:¼bJJo>”´¾¾Þ™““#™gSuVn‹Å‚Hmm­377WVÓÝøFLÂA™n×ßC9V…pÈIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/images/cut.png0000644000076500000240000000245312536324427023454 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<½IDATXÃíWkL“W>#qÉ2é—¨Te8ö‡2“f,[pÄ0ÿ`¢.:Nº1‰[³€Ù „X‹…²‚•^äf Ž1øÃFË-ܨ·ji‘ò¯ ܸ aÙ²“<í—ó}ýÞç¼ïó^J€ü“ ÿ t (DÙq+F€®ÝdÝÆf"Lø•Ä‹GÈ¡Ó÷ÈŽ—;82a+A …œ¾0H.Ý€@2«yMô¾ûrhd‘^£Qôî…GõнƒËM ›ö@t/½2= ‰?H¥,Œ1yÁ»ˆKÆ×Æ& ¹ýBþÅ+6FŒ\N“§§§ ÌÓ9¹˜c6 Òä£+A Œ)ž*ß7GëÜ{µÌ‰ž@D–Tƒ+, 6FHõd*{.Tø7¿À4*TßbˆRÕ,XtzEUõÈ mtÂÔs÷!¾sQ•®ÐÏ唃‡´žÌ.Ôݯ™Ë°¯¯¯>¿Ò`µÛí€øyä>Ä^«´¹ˆ/†€'ÓÀgùŽõ`×^3ºvÚsîhØÇÇGŸ««° Á‡²ö.ç–7÷wsaؽè^€/fš †ß©6B÷ðØŸÔϥ犘-~þm—Tk__¸ÐÑsbrVNć—ÔŒ0é·8@¤Ö1ž…›~m©%[—Ù æ. ó$ß6Ž{½ÑÍBÈ o©<ѽV«w„ó’\»R©„úúz0™L uß5ÁQ±dÉQD>¶vÌ´@O“_~ÓÖßß2™ D"¨T*J¥ Ñh K[9¾é•à¸S¯y,ó—Ž"žÇ†æS)ö‚‚æâ   àñx`±X@[^ûÏ& -¦SÎg”Ï Lƒâ[{æÂ`š² ˆÅbÈÌÌ„¢¢"P«ÕÐÙÙÉ`ìþɹÉÛ§u.·ÏK€®·Ø)pÀj—¬xˆÊ‚â)‰>—+![–cãG„&Ø’rdŽo¿£Ñ-­-ðËÀ 8ñ¾³bÁ\i„……„FÜ&ç2¬,Ï3µì;ãºÓ3¯‚åþz‰žÞüb÷<’{f«O[Ê5íXCC=444€¥·2ÅÃóéÀe<’å(ž6]åœ*2x}ôƒ.Zl1 %êq÷/Ë'ï‡_þÓäD LhôÉ>u• ´··Ãׯ–1® fñ6m8hí÷*>]åXªñGZõ¶Y ³CÉ‘8 9ù©–!ú\ ϳÿÿ7üOøç‡¹DÃÏIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/images/new.png0000644000076500000240000000152412536324427023450 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<æIDATXÃÕ—ÍNa†ë5”•{qáÒÄà¸â\¸ô\±0ê–&bX¸°‘X Ñ¿‰¤±R¤HE”þÐCÿ¦¦e€ãy{ú…QJ‚É!†IÞœ3§óÍûœóM›N„ˆ"ÿS‘sÀÇÕnÿ¥û¬Ç==d ©ð12<<¼j4::ºV<¯&“ÉV:v‰Dk`` Íknh¤8Òááq™ºï·É²,Úßß'†ñxÍëŠ@?ó°Ç¥Lf¹ Åb±:¯{pˆSww²lÛ¡ùùÏd×uéùÄDB&{Áɪ7JÎÍSøp]‹T‚@gOÎí¦Ggféõ›·Ÿœ¤©©iz÷þE£Ñe^AÀïí¶%†…šã”]ÍÑäô+z2þ”žÅ^ÐLb‹UÚõ <ÿjÍ67«”/nS‰c·…×~QðyÌÍ]µÇ{ÛîŸ;¾äˆ]¸½îâ”Ê3àuäÆuWbØ9êæ3DÔ§àô:­9"˜˜hr€˜kPS*-¹1âNSŒ òmû(¶|E›;ÛjüiŽûÅS(ðC¸fI÷kùR‡×¾TÈUºN­K¯…Þ·Â’=O¦³Þ£±qëÚÐõ˜³n©l4¤kÿàZSÔ Yoäî½â¥ÁËK|mŒu‡5¨ú·ÝeÙ<þžÏ7½Éºx&oFhòÿ™”žé?¿BÓôü½œž¥~Ql%¡’• wIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/images/open.png0000644000076500000240000000403112536324427023614 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<«IDATXíW[P“göÊÎìÌöb/¼ÙéÎìn½ÚÙ›µÎº;{°­Ìz±ÎÎ:³vTpuÛâÖ¶T»¥ mÁ‚QB€€€!’@Hs$!gr€B œ GµTxöû~0X‹}gžù/’üÏû>Ïû¾ß—]vý˜ ñ ‚Áu‚ÏýþH¼› áW¯ïµ*ŒÖeÛ`[ 'ñ3ú"üÜ>vH~Š ¹¶Y2Ï­B9þDöQØÇæè‡†={öXSR®,Ê::NâåIÃÄ1·>Iù,`›]YSMM¶4ëû 1y`Å»ï¾?Å«¾ƒñ‰)LOÏ®’ï×¼tŸ¾ã²CO´3@‹{Í=.4ëì¨Wö ‡S…2^5C¼°ôÁ`\&¿K|áH$8AýÝês'ñ¹'H‡—Á×» "U7Ü7¢¸Nˆ,V>ÌVÛ:q,k,üÎç'‘6“•?F}¥þÄoôY1¶~ï Z{œà?0¡L(CF²ù&ÒùÅeÌ-,!4¿ˆ½{÷ZÉ;~ºm$~CF=5iu³€Ò?ËÄâšP¡Z´lñY ¶ ¦]/²sq·žÿ 1% ÍcbjƒC'äݼ-Ó°;’3&ÔSµÓûXOˆÅ!ˆ,CPºFÐí Bå›B›sü©ÏZî*tȼÉE §l“Ï›ˆ'§Ào¢ÖÖ%ÂQÛ(‡Æ¯‚/b”M‰$"êR-šB«èy¡ÅÏStö £Óá‡Ô<€½ ]Õ ‘• /yñƪ©Ô³s LÅ”ØÝï…Éb·¼¥å•KóË«#7ÙæÙ„—Ë<Ðhò£Ýî_'–;† ³x×}æ¤ø<3*6ªÜS3!ŒŽ3Ó&ä7 ñÁÅQs¯¾e`ü ##òΡ¾]¹¸QƒttM§ g€©¸ÝêƒØèB“ÊÌø|åË,ˆÚ$Q‰§g熆G`w8I‚:$|ø!®³ á™\€o ÐÞá,«Ä}ïÝaëÿŸÀ¹ö!HÌýO}îÔ"U„ªšºM>GäŽø<<„ÓݽÁˆÂâbœ~/=ô/ƒ„¼Åÿ-î:C(Q‘÷öñNÜ¿}„3iã ô3«àÉTh58ÑØÝ žX‰¬\ö3>Gªžœžeäî÷¢×lAC'bã éÖÀEÏR$¸†²žn´ÛPÑD…΋J~ m¾›['Ñ ™øe"î)ô(Èx5 ­>ªÜc“ð Ãf]ŽÄK—ÃÊÃÔcÀNzI1Nú‰”[;„|…%jJÕèò0£("øù3 t.¡¨¾¥| ²J*ðÏãqQåöFÑçò@«7 ýj’¿HƒÍ7'©Ú@Là{ˆREÝý qA—Å݈œAüùÍ·]„ël´CÐ(÷N#§ü²K«ñQêWHþoêúXQ¹G‚ãð ø`4™QÉ«ÂûgÏAþ@?én²¹oiÒ›*/råäuö¡ð¾•ùœÊ)ÂS¸Ý)Ü+vQÈÅ•ky8Ÿ€›·n3c‘Ûjs@"mÇ…„Pt» ó+€Ÿ4X÷$ |„JÓ8úa†œVýU³¬;¸:Ù!z/༺]&¾Áƒ”oØ8ŸœŠ=c¯™én*·F׃¤ËÉHÿ:‹ŒÕÇÑØ3ø81 †^›øÝûQOÔñ™îšª­“`+] 9õ¼ð¾g½êÌ=JUm”ÔñCáeS@ðÊ÷%`+njÇ©„DÄ9ŠÜ|6ZZÅ8ƒ/95Èj˜æ¢ÕÒ'õšzL¡Id·™ÛnF¹Ú¥v9,9=ùNìÙrÔG ;«Fˆcÿ9ßîû=ùœ¿€“ñp£­ÄOJénºX¨ï,ú”˜P(·@é<ùWì)*w-Ágû¶¹äD¾Ì²Züãä<ô7°ró°ïÀP Ñ!‰'e*¦K…>¿!ÕFä.[!° ®åÜâÒä‡o<¯<ç–5œiEåøû±X?‡7öïÇ:’«¤ !ípê5U!‹4[É7*4nÔI:ÃrsŽm•û‡$àJespäø)>|˜Œc.2*\"ÕÓ]~MÜ 6étv§wŒäˆ¶ùž„·•û"½Iý€ mô2JxLœKIõ¦.|Âme6Yñƒ\—šÁQ{ ó×Î%&6ÈýÇÈÕ‚ÜÎ^NEX…xö]\©UªûÀ–ÛP­uã®TA/Ê r¿ºÓj£·¢Qø¯CO¹-ˆËæášHª/š5æÇzó-Wx¬¨Ü¯½¬ÜÑâÝ\uÞ˯E¹v2g`õ§—©Ü÷Ò©Ü;øóÂñ‚ÊîP 9”¸ ÂÈ£‡Ã/"÷ÿÚmŠÝa™Õ¶Øk»^2¾/‰ÿf¹_ü€=ÏIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/images/paste.png0000644000076500000240000000315512536324427023775 0ustar philstaff00000000000000‰PNG  IHDR szzô4IDATx^­—[lTÇÆsÎÙ‹½öú ¾²ic$BJ!"¡-•b¥/îKh+•¦U¥Æ`UªÚ´ªúV UÊ”'Ú„)­Ä‹¥RƒyÅ9iÓ„š›cjì²;»öz½»Þ³g¦Ãh…årlˆÉ'}úŸ‡ý~óŸ™sJ)‚$„xxžÇkH)õwÖ(' ¸C»h—R¾ÆcdYÖö»@·9ÿ&ü·íõâ`]DDnΉŠ+W®P]S@ Pe(A)fÓi^©/¼´Nl;ñ¹Gƒ|[CL;…D•2â¶Ä¶!!p>SlŒ;€D*ðœàË@P4`ÄHiŸ$Nœ8!Ò‡––g emå(¥´AXW%âØDBÃs\¼=A÷XŽ\$¾©½}÷ï-ËZܱcGYUU•ÓØØ~à†††Ð¥K—Ü®®®ðÖªDU,ÂsÕ1òžO¡(‘Ja Aرˆ†lær¢Ž?Ÿÿ+ M"Àf–„ïûxžGuuµžPKôêÕ«‡„(¥ÞZÀ²A¶-Ú¶8¤XÂŒL¹ì{õ;Ô76|/Á„g2ÊËËÍf>vìØ&½.A,ÐÙÙ©:¤l!Y¶-ÇÆBP´ÍDzˆ8–®`YxÀÜÜ555 räÈ‘ÍÀˆ¢Çb¹°mt0fË#6±¨£Ç,2‹“™c©yîÌ.èßErù<«È,A6›5§féÿm8°èX ´tŽ áÀSб¤ËŒƒÓ²—¦}¯³µã¬Ûû: /´sûÎ$ýýý$“I”Ræúøñã躬3çÎãèÑ£>|˜ÞÞ^‰„,¡ÜíÿÎæøç”OkÇÏøæ/ß&öõ7™|¦ƒkþ.®ñ-dk­{N^VsúogÑwMîÜâ¯vrýúu gkÖ?‹™ëx<Žã8%8À#–%˜ÊA:ÞÊþß½MÕ®×(„bÛBY‚lArf‘Oîf¸êrúadÕ^®Üg2ׯ…î›í‡¡ÍÍÍ´µµ755¡¡ ƒFÜqßÿéo¨lØHâì;L^É”±µy›[¶óIy%c —ÏfòÜÎ2¡íˆ L'çØ·+Êú%3{=kêêêÌu*•2J+ ¹Zpác(,ÊæÆÙR”’{Ã}$eÛÚLMÛË|<œfÒ_ÀÍx,Ìk/x µt:B¡ -ÝêŽ*ø>`ÁƸ P#‹S·¥–’xv}é¬ÇhÿŸ˜®¼LËöƒ¸ a¼‚¤X”xÚ!ÇB-ª€ãi –ÕÖÇC„Ê#ü¿jc!ž© sá߃ìÙùÊ£¹2G(akK!¥%0*¤\@X¥*Ìõ#úpl†ñYïýúÜÊÔàD\¢Ï“=Ó¥RòPjYVL vùÕ_†½·€=“gÓº2òy_»hêίÔpùÝà%žx L¸<¢Ö/Uò‡>ÏõO3D·±óÅ—Y\N`ŽÛS(À%mÔR}±µ–Ý[ât¿—¥j÷WùÑo µ˜µ7ÕØÒËSpSxó3³i %ýÕ‚Öðð)çãç3æu¨ÖË÷‰Á3}ú×rŒ²7Dzþ­”Ìo÷DTØ_p’ ý×=?ý~B¦Ïßöïîv;ü’¨ãsÊu]pWí@2« ~*Ó½·üÔÍi9ô—th¿¢Ó¶í¯}ž%XXXðÒ'Ožœºƒ>IÊ­ã³*×;â§nLËÑRèYt‹= ÀÐÐÛÓÓ“ÒNÏÎΞ.½ßèîê)Œ„…¯055UÐ/"©S§N%ÇÇÇ/g~쮸 KßvÚO&…@@aZüÞà`º»»;¥ßŠÌ$Ð^ísÍaíšw3n`pðýt___úÌ™3¦Å¥Ðx‰µžc!DxØOis´ø±ú½ú*_òØIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/images/save.png0000644000076500000240000000224312536324427023614 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<5IDATXÃå—ÍTEÅ·êÖ{¯ÛnÇù@‰FM4™DH˜ÄŒþL\ñ.M\kXÃŽÄ΂htA\ âÄÆ=`PQ`¢ ƒÓý^÷”‹ªîù`æ „QVR©Î{·ëž:÷Ô©zê½ç~6å>·>€]»v½ìýòN5ëػ」;vœ<:ÏÌ—7XœïÜS¦Ú òÜk¼¸g€‹|øî€Ûpüìß?0x.ý¸Àþ·ÎoËryš #–ÓŸdüÕ}›k@E°@xp,#˲m00–aP|#%"+ؑՕsç΃*¸Ò² Ò,ŒI IÞw:ç·¡Õ‚v+Žm(r²ú8Ö ã¯¼Ikñú欬°Fؽ{çk놮€Z¨VêmQ¯µ‚÷ ¦„g5‚¨ •,Ã# Àð/Þ#&|ˆ#Ä!Яª‹öØ'aa½%% ð4M£:ó˜‰lÚc V˜_)FüaÍra-Ñ€: TIO4/à…Ä!‰Ãg ’i؉â‡X‹ïv‘¼€¼íßj#íòŸwPEÕ x:ëTx›œ3x$¼þòówhè6h¤¾ñëÆüß±R^‚DM_„ ¥8ç¶ÅˆžK¹v³Rª¸PïZÅ0}±Ë@Űô&­WùU.ááÆÒ2õÌp}É„-éJœÀsåf—+7»¬QW?תd~Å'¢)¬Ü µw¦l¨Á© È5¯›5Y1žþ{éïñ‚ï›X0+WVU!ÑüçSßòë™,-Þ¸§úWj<õìNžya¨3[1|‡÷÷¿Á·nÝ¢( Dk-ÖZTUÅ9‡ªb­Å˜ðßååeò<ï÷#Íù¸ò-pVPÜ1:¶rO8~œééiŒ1x˜`rròŽYØ1:Ö߆®Ô Up6¬¢V¯÷k933ÃÐÐÖZ¼÷4›Í»P«×pш´Ôˆœ '\ *¨V«dYÖ§¸7Þis©AK­8ǽ#´×Œ1ˆDß:¸«›¯5¨ óö.=Žƒ)mãÕÛ©÷åVl­ô‘Ž ÃòïÛà¡‘aÔµ+—Yœ¿¾6øÀ`­ ÛÃÀP­ÂìÅKœýîΟœž¦6`$^J í‘'©= o8ÈfÇ':ñ*ç52(ºpùêUÎ4ŽÑüú‹¹ÙNoà³>à§Ó'W™éÚ£†Uæ»<_o|wîÙ_‡Æ_˜šþôãõsl}ò5â·ÚÿÝ×ñ?MðK¹èF‰¯IEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/mdi.py0000755000076500000240000004024012536324427022030 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import mdi_rc3 except ImportError: import mdi_rc2 class MdiChild(QtGui.QTextEdit): sequenceNumber = 1 def __init__(self): super(MdiChild, self).__init__() self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.isUntitled = True def newFile(self): self.isUntitled = True self.curFile = "document%d.txt" % MdiChild.sequenceNumber MdiChild.sequenceNumber += 1 self.setWindowTitle(self.curFile + '[*]') self.document().contentsChanged.connect(self.documentWasModified) def loadFile(self, fileName): file = QtCore.QFile(fileName) if not file.open(QtCore.QFile.ReadOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "MDI", "Cannot read file %s:\n%s." % (fileName, file.errorString())) return False instr = QtCore.QTextStream(file) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) self.setPlainText(instr.readAll()) QtGui.QApplication.restoreOverrideCursor() self.setCurrentFile(fileName) self.document().contentsChanged.connect(self.documentWasModified) return True def save(self): if self.isUntitled: return self.saveAs() else: return self.saveFile(self.curFile) def saveAs(self): fileName = QtGui.QFileDialog.getSaveFileName(self, "Save As", self.curFile) if not fileName: return False return self.saveFile(fileName) def saveFile(self, fileName): file = QtCore.QFile(fileName) if not file.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "MDI", "Cannot write file %s:\n%s." % (fileName, file.errorString())) return False outstr = QtCore.QTextStream(file) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) outstr << self.toPlainText() QtGui.QApplication.restoreOverrideCursor() self.setCurrentFile(fileName) return True def userFriendlyCurrentFile(self): return self.strippedName(self.curFile) def currentFile(self): return self.curFile def closeEvent(self, event): if self.maybeSave(): event.accept() else: event.ignore() def documentWasModified(self): self.setWindowModified(self.document().isModified()) def maybeSave(self): if self.document().isModified(): ret = QtGui.QMessageBox.warning(self, "MDI", "'%s' has been modified.\nDo you want to save your " "changes?" % self.userFriendlyCurrentFile(), QtGui.QMessageBox.Save | QtGui.QMessageBox.Discard | QtGui.QMessageBox.Cancel) if ret == QtGui.QMessageBox.Save: return self.save() elif ret == QtGui.QMessageBox.Cancel: return False return True def setCurrentFile(self, fileName): self.curFile = QtCore.QFileInfo(fileName).canonicalFilePath() self.isUntitled = False self.document().setModified(False) self.setWindowModified(False) self.setWindowTitle(self.userFriendlyCurrentFile() + "[*]") def strippedName(self, fullFileName): return QtCore.QFileInfo(fullFileName).fileName() class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.mdiArea = QtGui.QMdiArea() self.mdiArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.mdiArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.setCentralWidget(self.mdiArea) self.mdiArea.subWindowActivated.connect(self.updateMenus) self.windowMapper = QtCore.QSignalMapper(self) self.windowMapper.mapped[QtGui.QWidget].connect(self.setActiveSubWindow) self.createActions() self.createMenus() self.createToolBars() self.createStatusBar() self.updateMenus() self.readSettings() self.setWindowTitle("MDI") self.setUnifiedTitleAndToolBarOnMac(True) def closeEvent(self, event): self.mdiArea.closeAllSubWindows() if self.mdiArea.currentSubWindow(): event.ignore() else: self.writeSettings() event.accept() def newFile(self): child = self.createMdiChild() child.newFile() child.show() def open(self): fileName = QtGui.QFileDialog.getOpenFileName(self) if fileName: existing = self.findMdiChild(fileName) if existing: self.mdiArea.setActiveSubWindow(existing) return child = self.createMdiChild() if child.loadFile(fileName): self.statusBar().showMessage("File loaded", 2000) child.show() else: child.close() def save(self): if self.activeMdiChild() and self.activeMdiChild().save(): self.statusBar().showMessage("File saved", 2000) def saveAs(self): if self.activeMdiChild() and self.activeMdiChild().saveAs(): self.statusBar().showMessage("File saved", 2000) def cut(self): if self.activeMdiChild(): self.activeMdiChild().cut() def copy(self): if self.activeMdiChild(): self.activeMdiChild().copy() def paste(self): if self.activeMdiChild(): self.activeMdiChild().paste() def about(self): QtGui.QMessageBox.about(self, "About MDI", "The MDI example demonstrates how to write multiple " "document interface applications using Qt.") def updateMenus(self): hasMdiChild = (self.activeMdiChild() is not None) self.saveAct.setEnabled(hasMdiChild) self.saveAsAct.setEnabled(hasMdiChild) self.pasteAct.setEnabled(hasMdiChild) self.closeAct.setEnabled(hasMdiChild) self.closeAllAct.setEnabled(hasMdiChild) self.tileAct.setEnabled(hasMdiChild) self.cascadeAct.setEnabled(hasMdiChild) self.nextAct.setEnabled(hasMdiChild) self.previousAct.setEnabled(hasMdiChild) self.separatorAct.setVisible(hasMdiChild) hasSelection = (self.activeMdiChild() is not None and self.activeMdiChild().textCursor().hasSelection()) self.cutAct.setEnabled(hasSelection) self.copyAct.setEnabled(hasSelection) def updateWindowMenu(self): self.windowMenu.clear() self.windowMenu.addAction(self.closeAct) self.windowMenu.addAction(self.closeAllAct) self.windowMenu.addSeparator() self.windowMenu.addAction(self.tileAct) self.windowMenu.addAction(self.cascadeAct) self.windowMenu.addSeparator() self.windowMenu.addAction(self.nextAct) self.windowMenu.addAction(self.previousAct) self.windowMenu.addAction(self.separatorAct) windows = self.mdiArea.subWindowList() self.separatorAct.setVisible(len(windows) != 0) for i, window in enumerate(windows): child = window.widget() text = "%d %s" % (i + 1, child.userFriendlyCurrentFile()) if i < 9: text = '&' + text action = self.windowMenu.addAction(text) action.setCheckable(True) action.setChecked(child is self.activeMdiChild()) action.triggered.connect(self.windowMapper.map) self.windowMapper.setMapping(action, window) def createMdiChild(self): child = MdiChild() self.mdiArea.addSubWindow(child) child.copyAvailable.connect(self.cutAct.setEnabled) child.copyAvailable.connect(self.copyAct.setEnabled) return child def createActions(self): self.newAct = QtGui.QAction(QtGui.QIcon(':/images/new.png'), "&New", self, shortcut=QtGui.QKeySequence.New, statusTip="Create a new file", triggered=self.newFile) self.openAct = QtGui.QAction(QtGui.QIcon(':/images/open.png'), "&Open...", self, shortcut=QtGui.QKeySequence.Open, statusTip="Open an existing file", triggered=self.open) self.saveAct = QtGui.QAction(QtGui.QIcon(':/images/save.png'), "&Save", self, shortcut=QtGui.QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) self.saveAsAct = QtGui.QAction("Save &As...", self, shortcut=QtGui.QKeySequence.SaveAs, statusTip="Save the document under a new name", triggered=self.saveAs) self.exitAct = QtGui.QAction("E&xit", self, shortcut=QtGui.QKeySequence.Quit, statusTip="Exit the application", triggered=QtGui.qApp.closeAllWindows) self.cutAct = QtGui.QAction(QtGui.QIcon(':/images/cut.png'), "Cu&t", self, shortcut=QtGui.QKeySequence.Cut, statusTip="Cut the current selection's contents to the clipboard", triggered=self.cut) self.copyAct = QtGui.QAction(QtGui.QIcon(':/images/copy.png'), "&Copy", self, shortcut=QtGui.QKeySequence.Copy, statusTip="Copy the current selection's contents to the clipboard", triggered=self.copy) self.pasteAct = QtGui.QAction(QtGui.QIcon(':/images/paste.png'), "&Paste", self, shortcut=QtGui.QKeySequence.Paste, statusTip="Paste the clipboard's contents into the current selection", triggered=self.paste) self.closeAct = QtGui.QAction("Cl&ose", self, statusTip="Close the active window", triggered=self.mdiArea.closeActiveSubWindow) self.closeAllAct = QtGui.QAction("Close &All", self, statusTip="Close all the windows", triggered=self.mdiArea.closeAllSubWindows) self.tileAct = QtGui.QAction("&Tile", self, statusTip="Tile the windows", triggered=self.mdiArea.tileSubWindows) self.cascadeAct = QtGui.QAction("&Cascade", self, statusTip="Cascade the windows", triggered=self.mdiArea.cascadeSubWindows) self.nextAct = QtGui.QAction("Ne&xt", self, shortcut=QtGui.QKeySequence.NextChild, statusTip="Move the focus to the next window", triggered=self.mdiArea.activateNextSubWindow) self.previousAct = QtGui.QAction("Pre&vious", self, shortcut=QtGui.QKeySequence.PreviousChild, statusTip="Move the focus to the previous window", triggered=self.mdiArea.activatePreviousSubWindow) self.separatorAct = QtGui.QAction(self) self.separatorAct.setSeparator(True) self.aboutAct = QtGui.QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.newAct) self.fileMenu.addAction(self.openAct) self.fileMenu.addAction(self.saveAct) self.fileMenu.addAction(self.saveAsAct) self.fileMenu.addSeparator() action = self.fileMenu.addAction("Switch layout direction") action.triggered.connect(self.switchLayoutDirection) self.fileMenu.addAction(self.exitAct) self.editMenu = self.menuBar().addMenu("&Edit") self.editMenu.addAction(self.cutAct) self.editMenu.addAction(self.copyAct) self.editMenu.addAction(self.pasteAct) self.windowMenu = self.menuBar().addMenu("&Window") self.updateWindowMenu() self.windowMenu.aboutToShow.connect(self.updateWindowMenu) self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) def createToolBars(self): self.fileToolBar = self.addToolBar("File") self.fileToolBar.addAction(self.newAct) self.fileToolBar.addAction(self.openAct) self.fileToolBar.addAction(self.saveAct) self.editToolBar = self.addToolBar("Edit") self.editToolBar.addAction(self.cutAct) self.editToolBar.addAction(self.copyAct) self.editToolBar.addAction(self.pasteAct) def createStatusBar(self): self.statusBar().showMessage("Ready") def readSettings(self): settings = QtCore.QSettings('Trolltech', 'MDI Example') pos = settings.value('pos', QtCore.QPoint(200, 200)) size = settings.value('size', QtCore.QSize(400, 400)) self.move(pos) self.resize(size) def writeSettings(self): settings = QtCore.QSettings('Trolltech', 'MDI Example') settings.setValue('pos', self.pos()) settings.setValue('size', self.size()) def activeMdiChild(self): activeSubWindow = self.mdiArea.activeSubWindow() if activeSubWindow: return activeSubWindow.widget() return None def findMdiChild(self, fileName): canonicalFilePath = QtCore.QFileInfo(fileName).canonicalFilePath() for window in self.mdiArea.subWindowList(): if window.widget().currentFile() == canonicalFilePath: return window return None def switchLayoutDirection(self): if self.layoutDirection() == QtCore.Qt.LeftToRight: QtGui.qApp.setLayoutDirection(QtCore.Qt.RightToLeft) else: QtGui.qApp.setLayoutDirection(QtCore.Qt.LeftToRight) def setActiveSubWindow(self, window): if window: self.mdiArea.setActiveSubWindow(window) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/mdi.qrc0000644000076500000240000000040712536324427022163 0ustar philstaff00000000000000 images/copy.png images/cut.png images/new.png images/open.png images/paste.png images/save.png PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/mdi_rc2.py0000644000076500000240000010725112536324427022601 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:45:22 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x03\x54\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xe6\x49\x44\x41\x54\x58\xc3\xd5\ \x97\xcd\x4e\x13\x61\x14\x86\xeb\x35\x94\x95\x7b\x71\xe1\xd2\xc4\ \xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb1\x30\xea\x05\x18\x96\ \x26\x62\x58\xb8\xb0\x91\x58\x20\xd1\x9d\xbf\x89\xa4\x14\xb1\x52\ \xa4\x48\x45\x94\xfe\xd0\x02\x43\xff\xa6\x9d\x19\xa6\x65\x80\xe3\ \x79\x7b\xfa\x85\x51\x4a\x82\xc9\x21\x86\x49\xde\x9c\x33\xa7\xf3\ \xcd\xfb\x9c\xf3\x4d\x9b\x4e\x84\x88\x22\xff\x53\x91\x73\x01\xc0\ \xc7\xd5\x90\x6e\xff\xa5\xfb\xac\xc7\x3d\x3d\x64\x0d\xa9\x02\xf0\ \x31\x32\x3c\x3c\xbc\x6a\x34\x3a\x3a\xba\x19\x56\x3c\x1e\xaf\x26\ \x93\xc9\x56\x3a\x9d\x76\x13\x89\x44\x6b\x60\x60\x20\xcd\x6b\x6e\ \x68\x02\xa4\x38\xd2\xe1\xe1\x71\x99\xba\xef\xb7\xc9\xb2\x2c\xda\ \xdf\xdf\x27\x86\xf1\x78\xcd\x18\xeb\x8a\x1a\x40\x3f\xf3\xb0\x1c\ \xc7\xa5\x4c\x66\xb9\x0b\x14\x04\x01\xc5\x62\xb1\x3a\xaf\x7b\x70\ \x1a\x88\x53\x01\x1c\x1c\x10\x77\x77\xb2\x6c\xdb\xa1\xf9\xf9\xcf\ \x64\x0e\xd7\x75\xe9\xf9\xc4\x44\x17\x42\x05\x00\x26\x7b\xc1\xc9\ \xaa\x37\x1c\x4a\xce\xcd\x53\xf8\x70\x5d\x0f\x8b\x17\x54\x00\x82\ \x10\x40\x67\x4f\x14\xce\xed\xa6\x47\x1f\x67\x66\xe9\xf5\x9b\xb7\ \x14\x9f\x9c\xa4\xa9\xa9\x69\x7a\xf7\xfe\x03\x45\xa3\xd1\x65\x5e\ \x7f\x41\x05\xc0\xef\x10\xed\xb6\x25\x86\x85\x9a\xe3\x05\x94\x5d\ \xcd\xd1\xe4\xf4\x2b\x7a\x32\xfe\x94\x9e\xc5\x5e\xd0\x4c\x62\x0e\ \x8b\x17\x55\x00\xda\x81\x18\xf5\x13\x20\x3c\xff\x90\x6a\xcd\x36\ \x15\x37\xab\x94\x2f\x6e\x53\x89\x63\x8d\xb7\x85\xd7\x7e\x51\x01\ \xf0\x79\xcc\xcd\x5d\x1e\xb5\xc7\x7b\xdb\xee\x9f\x3b\xbe\xe4\x88\ \x5d\xb8\xbd\xee\xe2\x94\xca\x33\xe0\x75\xe4\xc6\x75\x57\x62\xd8\ \x10\x39\xea\xe6\x33\x44\xd4\x01\xa7\x06\xe0\xf4\x3a\xad\x39\x22\ \x98\x98\x68\x72\x80\x98\x6b\x50\x53\x9d\x00\x00\x2a\x2d\xb9\x31\ \xe2\x4e\x53\x8c\x10\x0d\x04\xf2\x6d\xfb\x28\xb6\x7c\x45\x00\x9b\ \x3b\xdb\x6a\xfc\x69\x8e\x3c\x6c\x88\x1a\xae\x39\x13\x80\x3a\x8f\ \xb7\x54\x23\x2a\xd7\xc5\x04\x06\x06\x00\x35\x28\x9c\x17\xab\xbc\ \x25\xbb\xca\x13\xc0\x4d\x61\x0e\x15\x2a\x72\x6e\xcc\x7e\x5a\x02\ \x68\x6a\xdd\xad\xf1\x94\x27\x00\x53\xdc\x1c\x71\x6d\x5b\x40\x60\ \x9a\xab\x1c\x75\x9e\xeb\x81\x41\x15\x47\x11\xc0\x6a\x89\x31\x0c\ \xd6\x77\x04\x20\x0c\x64\x26\x62\xb6\x69\x75\x8b\xa8\xaa\x09\x50\ \xb6\xc5\xbc\xd0\x03\xf8\xbe\x29\x63\x87\x29\x60\x0c\x18\x84\x1c\ \x00\x5b\x4d\x45\x00\x74\x03\x53\x98\xad\x94\xc5\x1c\xe7\x46\xe6\ \x1c\x00\xc8\x71\x5d\xa9\xa1\x08\x80\xfd\xfc\x56\x12\x73\x33\x01\ \x08\x35\x18\x42\xe8\xda\x7c\x8e\x29\xa8\x4e\x00\x5b\x00\x03\xc8\ \x98\x67\x36\x04\x00\x32\xe6\x85\xde\xf8\x17\x0b\xfc\x2c\xd8\x8a\ \x00\x18\x67\x3a\x4f\xb4\x54\x14\x23\x98\x02\x00\x02\x0c\x3e\xfb\ \xc5\x53\x28\xf0\x43\xb8\x66\x49\xf7\x6b\xf9\x52\x87\xd7\xbe\x54\ \x01\xc8\x55\x8f\xba\x4e\xad\x4b\x0e\x90\xaf\x85\xde\xb7\xc2\x92\ \x3d\x4f\xa6\xb3\xde\xa3\xb1\x71\xeb\xda\xd0\xf5\x15\x98\xb3\x6e\ \xa9\x00\x6c\x34\xa4\x6b\x18\xff\xe0\x11\x7f\x5a\x17\x53\xd4\x13\ \x0b\x59\x6f\xe4\xee\xbd\xe2\xa5\xc1\xcb\x4b\x7c\x6d\x8c\x75\x87\ \x35\xa8\xfa\xb7\x1c\xdd\x65\xd9\x3c\x8f\x1f\x19\xfe\x9e\xcf\x1e\ \x37\xbd\xc9\xba\x78\x26\x6f\x46\x00\x68\xf2\xff\x81\x99\x94\x9e\ \xe9\x3f\xbf\x19\x01\x42\xd3\xf4\xfc\xbd\x9c\x9e\xa5\x7e\x03\x51\ \x6c\x25\xa1\x92\x95\x0a\x77\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x05\x3a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xcc\x49\x44\x41\x54\x58\xc3\xb5\ \x97\x5d\x4c\x5b\x65\x1c\xc6\x77\x6f\xbc\xd9\xe5\x12\x49\x20\x71\ \xd7\x26\xe3\x4e\x13\xb8\x70\xd1\x85\x44\xbd\x50\xe3\x10\x18\xe5\ \x2b\x2e\x26\x4a\x04\x27\x86\xaa\x8b\x99\xe0\xd0\xa2\x6c\x19\x86\ \x39\x17\xdc\x1a\x16\x98\x80\x40\x6c\xa6\x43\xca\x20\x2b\x83\x1e\ \x28\xcc\xda\xd1\x96\xd2\xd2\x4a\x7b\xfa\x01\xa5\xd0\xef\x16\x1e\ \xdf\xff\xdb\x1d\xc7\xcc\x04\x2a\x87\x93\x3c\x39\x6f\x21\x9c\xe7\ \xf7\x3c\xef\x47\x0f\x87\x00\x1c\xca\x46\xcf\xbd\xfa\xe9\xbb\x4c\ \x5a\x26\x61\x0f\x6a\x60\xca\xd9\xe9\x79\xd9\x9a\x3f\x5d\x50\xf2\ \xa5\xc1\xe9\x8f\xa7\x57\xc3\x40\x30\x02\x84\xa2\x19\xad\xc7\x32\ \x8a\x27\x81\x58\x22\x73\xbf\x79\x6b\xda\x4b\x10\x72\x02\x1c\x7b\ \xe7\xac\xda\x1c\xd8\xc8\x98\x12\x40\x84\x99\x85\xe3\x19\x91\x31\ \x29\x1a\x4b\x61\x25\x94\x44\x38\x9a\x42\x73\x87\xc6\xbe\x13\xc4\ \xff\x02\x90\x12\x93\x79\x24\xf1\xc8\x58\x92\xcf\x1f\x84\x5d\x8c\ \xc2\xe5\x09\x22\x12\x4b\xa3\xf4\xc3\xef\x4d\x34\x75\x59\x01\xb0\ \xeb\xd8\x36\xd5\x90\x9e\x3a\xfc\xcc\xb9\xe7\x5f\x2e\x11\x3f\x56\ \x9e\x45\x45\x55\x0d\x2a\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\ \xac\xb6\x25\xfc\xb9\xe8\x87\x6b\x15\x58\xf6\x04\x10\x08\xc6\xd2\ \xaf\x9c\xbe\x70\x9f\x41\x1c\xd9\x15\x80\x5d\x87\x99\x1a\x8a\x8a\ \x8a\xcc\x92\x5a\x5b\x5b\xdd\xa4\xaf\x55\xad\xfe\xaf\x54\xdf\xa6\ \x06\x06\x06\x31\x39\x35\x85\xd9\xb9\x39\xe8\x26\x26\x50\x50\x50\ \x80\x21\xcd\x6f\x7c\xde\x49\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\ \x4f\x41\xf4\x85\xf0\x43\xaf\xce\xcd\x00\x6a\xf6\x02\x50\x43\x66\ \xd8\xe5\x8a\xc7\xe3\xf0\x7a\xbd\x48\xa7\xd3\x98\x9c\x9c\x44\x65\ \x65\x35\x66\x67\x8d\xbc\x81\x07\x66\x1b\x74\xd3\x16\x0e\x40\x32\ \x2d\x78\xf0\xdd\x8d\x51\x8f\xac\x00\xe1\x70\x18\x46\xa3\x91\x8f\ \x53\xa9\x14\x7e\xea\xed\x45\xe3\x27\x9f\x61\x86\x41\x38\x96\xdc\ \x50\x77\x75\xe3\x4c\x43\x23\xce\x35\x9d\xc7\xed\x91\x71\x5c\xbc\ \x3e\x2c\x2f\xc0\xc6\xc6\x06\xf4\x7a\xfd\x63\x40\x7d\x7d\xfd\x50\ \x32\x88\xd0\x46\x1c\x66\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\ \x11\x97\xba\x64\x6e\x80\x00\xa6\xd8\x3a\xd8\x7e\x45\x22\x11\x94\ \x2b\x2a\x30\xae\x13\x40\xe7\x04\x6d\x57\xda\xaa\x34\xbe\x7c\x53\ \xe6\x35\x40\x66\x3a\x9d\x0e\xc3\xc3\xc3\xe8\x65\xf5\xf7\xf7\xf7\ \x43\xab\xd5\xa2\xaa\xba\x06\x63\x77\xf5\x90\x0e\x2a\x77\x90\xed\ \x04\xb6\x0e\xda\xbb\x65\x06\xa0\x79\xb7\xdb\xed\x18\x1a\x1a\x42\ \x67\x67\x27\x7a\x7a\x7a\x38\x50\x49\x69\x19\x6e\x69\xf5\x10\xd7\ \x00\x6f\x08\xb0\xf9\x00\x67\x00\xb8\xd0\x25\x33\xc0\xd6\xd6\x16\ \xdf\x09\x81\x40\x00\xa2\x28\xc2\xef\xf7\x63\x6d\x6d\x0d\xa7\x14\ \x95\xd0\xfc\xae\xe7\xa9\xc9\x7c\xc1\x0b\x98\x3d\x40\x9b\xdc\x00\ \xdb\x41\x36\x37\x37\xf9\x76\xa4\x56\x14\x15\xd5\xe8\xfb\x55\xe0\ \xa9\x1d\x81\x47\x00\xe7\x3b\x0f\x00\x80\xcc\x25\x80\x24\x33\x4f\ \x24\x12\x28\x2b\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa0\x36\x5a\ \xd5\x07\x30\x05\xff\x98\x27\x93\x3c\x3d\x4d\x49\xc9\xa9\x4a\x0e\ \xa0\xb7\xb3\x03\x89\x3d\xc5\xf8\x17\x30\xb1\x00\x7c\x71\xf5\x00\ \x00\xa4\xea\xc9\x98\x14\x8b\xc5\x50\xa6\xa8\x82\x7a\x48\xc0\x98\ \x19\xb8\x6b\x05\xe6\x9c\x99\xfb\xe7\x57\x64\x04\x90\xd2\x53\x6a\ \x02\x88\x46\xa3\xdc\x3c\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\ \x66\x87\xe4\xa0\x01\x1c\x64\xc4\x04\x28\x3b\x64\x06\x48\x3d\x9c\ \x73\x12\x99\xd3\xb9\x40\x20\xc5\x65\x55\xb8\xd8\x2d\xa0\x7f\x3a\ \x63\xae\x7d\x90\x69\xe0\xa3\x76\x99\x00\xfe\x5d\x3d\xa5\x26\xad\ \xae\xae\x72\x88\xb7\x4a\x2a\x70\xb9\x57\xc0\x3d\x1b\xb8\x7e\x9e\ \x01\xee\xcc\x03\x67\x2e\xed\x13\x40\xaa\x9d\x44\x8b\x8e\x92\xd3\ \x71\x4c\xdf\x01\x2b\x2b\x2b\x58\x5f\x5f\xe7\x10\x27\x59\x03\xdf\ \x74\x09\x50\x4f\x00\xbf\xcc\x65\x1a\xb8\x32\x06\x34\xec\xa7\x01\ \xc9\x58\xda\xeb\x64\x4e\x69\x29\x39\x1d\x44\x04\x40\xf5\xd3\xcf\ \xde\x7c\x5b\x81\x96\xeb\x02\x4f\x7e\x75\x1c\xb8\x71\x0f\xf8\x71\ \x2c\x9e\x7e\xbd\x4e\x6d\xa6\x37\xaa\xac\x00\x9e\x64\x2c\x6d\x37\ \x32\x25\x00\xd1\x23\xf2\xe4\x12\xcc\x1b\x27\x15\x68\xef\x11\xa0\ \xbc\x66\x5b\x7f\x4f\x35\xe2\x3c\x71\x9a\xbf\x8e\x69\xf7\xfc\x4a\ \x26\x01\x90\xa9\x24\x69\xb5\x53\x42\x32\x0f\x06\x83\x70\xb9\x5c\ \xdc\x90\x5e\x4a\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf\x25\ \x9f\x7d\xa1\x9c\x4c\x3b\x98\x8a\x99\x8e\x3e\xc9\x78\x47\x00\x95\ \x4a\xc5\x01\xa4\x15\x2e\xcd\x37\x19\x52\x52\x3a\xf7\x29\xb5\xc3\ \xe1\xe0\x22\xe3\xc5\xc5\x45\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\ \x93\xe9\xae\x00\x2d\x2d\x2d\x6e\xe9\x60\xa1\xd4\xd2\x97\x0d\x8d\ \x97\x97\x97\xe1\xf3\xf9\x60\xb3\xd9\xf8\x7d\x69\x69\x89\x43\x10\ \x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92\x52\x93\x11\x8d\xe9\ \x4e\xdf\x78\x54\x3b\x35\x60\xb5\x5a\x79\xf5\xd4\x0a\xfd\xce\x60\ \x30\x24\xf2\xf2\xf2\xee\xb3\x67\x1c\xd9\x17\x40\x53\x53\x93\x5b\ \x9a\x67\x4a\x4f\x22\x13\xaa\x9a\xc6\x16\x8b\x99\x37\x40\x9f\x47\ \x47\x47\x23\x6d\x6d\x6d\xde\xfc\xfc\x7c\x13\xfb\xdb\x41\xa6\xb2\ \xbd\x9a\xff\x27\x40\x73\x73\x33\x9f\x02\x4a\x47\x10\x54\x3f\x55\ \x3f\x3f\x3f\xcf\xeb\xd6\x68\x34\x91\xba\xba\x3a\xe7\xc3\xb4\x5d\ \x4c\x1f\x30\x1d\xcd\xc6\x78\x47\x00\xa5\x52\xe9\x76\x3a\x9d\xbc\ \x62\x4a\x4a\x6f\x3e\x94\xb4\xbe\xbe\xde\x99\x93\x93\x23\x99\x16\ \x67\x53\x75\x56\x00\x8d\x8d\x8d\x6e\x8b\xc5\x82\x81\x81\x81\x48\ \x6d\x6d\xad\x33\x37\x37\x57\x56\xd3\xdd\x00\xf8\x7f\x46\x4c\xc2\ \x41\x99\x6e\xd7\xdf\x43\x39\x56\x18\x85\x70\xc8\x04\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x2b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xbd\x49\x44\x41\x54\x58\xc3\xed\ \x57\x6b\x4c\x93\x57\x18\x3e\x23\x71\xc9\x32\xe9\x16\x97\xa8\x54\ \x65\x38\x9d\x02\x15\xf6\x03\x87\x32\x93\x01\x66\x2c\x5b\x70\xc4\ \x30\xff\x60\xa2\x2e\x1a\x3a\x1d\x4e\x03\xba\x31\x89\x5b\xb3\x80\ \xd9\x0c\x84\x02\x19\x58\x1c\x14\x8b\x85\xb2\x82\x95\x5e\xe4\x66\ \x0b\x8e\x31\xf8\xc3\x46\xcb\x2d\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\ \x6a\x69\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0d\x61\xd9\xb2\x93\ \x3c\xed\x97\xf3\x7d\xfd\xde\xe7\xbc\xef\xf3\x5e\x4a\x00\x80\xfc\ \x93\x20\xff\x0a\x02\x74\x09\x28\x44\x14\xd9\x14\x71\x14\x01\x2b\ \x46\x80\xae\xdd\x64\xdd\xc6\x66\x22\x4c\xf8\x95\xc4\x8b\x47\xc8\ \xa1\xd3\xf7\xc8\x8e\x97\x3b\x38\x32\x61\x2b\x41\x20\x85\x9c\xbe\ \x30\x48\x2e\xdd\x80\x19\x40\x32\xab\x79\x4d\xf4\xbe\xfb\x72\x13\ \x68\x64\x06\x91\x04\x5e\xa3\x51\xf4\x06\xee\x85\x47\xf5\xd0\xbd\ \x83\xcb\x4d\x20\x9b\x9d\xf6\x40\x74\x2f\xbd\x16\x32\x3d\x20\x89\ \x3f\x48\xa5\x2c\x1b\x01\x8c\x31\x79\xc1\xbb\x9d\x88\x4b\xc6\xd7\ \xc6\x26\x0e\xa0\x10\xb9\xfd\x42\xfe\xc5\x2b\x36\x46\x8c\x12\x5c\ \x4e\x02\x93\xa7\xa7\xa7\x0d\xcc\xd3\x39\xb9\x98\x63\x36\x14\x0a\ \xd2\xe4\xa3\x2b\x41\x20\x8c\x29\x9e\x2a\xdf\x37\x47\xeb\xdc\x7b\ \xb5\xcc\x89\x9e\x40\x44\x96\x54\x83\x2b\x2c\x0b\x36\x46\x48\x08\ \x13\xf5\x64\x2a\x7b\x2e\x54\x03\x01\xf8\x03\x37\xbf\xc0\x0e\x34\ \x2a\x54\xdf\x62\x88\x52\xd5\x2c\x58\x03\x74\x1d\x16\x08\x04\x7a\ \x45\x55\xf5\xc8\xa0\x6d\x74\xc2\xd4\x73\xf7\x21\xbe\x73\x51\x95\ \x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc\x2e\x03\ \xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf\x3e\xbf\xd2\x60\xb5\xdb\ \xed\x80\xf8\x79\xe4\x3e\xc4\x5e\xab\xb4\xb9\x88\x2f\x86\x80\x27\ \xd3\xc0\x67\xf9\x8e\x19\xf5\x60\xd7\x5e\x33\xba\x76\xda\x73\xee\ \x68\xd8\xc7\xc7\x47\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\ \xf6\x2e\xe7\x96\x37\xf7\x77\x73\x61\xd8\xbd\xe8\x5e\x80\x2f\x66\ \x9a\xa0\x86\xdf\xa9\x36\x42\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\ \xe7\x1a\x8a\x98\x2d\x7e\xfe\x6d\x97\x54\x1a\x6b\x5f\x5f\x1f\xb8\ \xd0\xd1\x73\x07\x62\x72\x15\x56\x4e\xc4\x87\x97\xd4\x8c\x30\x14\ \xe9\x15\xb7\x1e\x38\x1c\x0e\x40\xa4\xd6\x19\x31\x9e\x85\x9b\x05\ \x7e\x6d\xa9\x25\x1a\x5b\x97\xd9\x0c\xe6\x2e\x0a\xf3\x24\x14\xdf\ \x36\x8e\x7b\xbd\x1e\xd1\xcd\x42\xc8\x09\x6f\xa9\x04\x3c\xd1\xbd\ \x56\xab\x15\x10\x77\x7f\x1b\x84\xf3\x92\x5c\xbb\x52\xa9\x84\xfa\ \xfa\x7a\x30\x99\x4c\x0c\x75\xdf\x35\xc1\x51\xb1\x64\x18\xc9\x51\ \x44\x3e\xb6\x76\xcc\xb4\x40\x4f\x93\x5f\x7e\xd3\xd6\xdf\xdf\x0f\ \x32\x99\x0c\x44\x22\x11\xa8\x54\x2a\x90\x4a\xa5\xa0\xd1\x68\x20\ \x4b\x5b\x39\xbe\xe9\x95\xe0\x1f\xb8\x53\xaf\x79\x2c\xf3\x00\x97\ \x8e\x22\x9e\xc7\x86\xe6\x53\x29\x19\xf6\x82\x82\x02\xe6\xe2\xa0\ \xa0\x20\xe0\xf1\x78\x60\xb1\x58\x40\x5b\x5e\x01\xfb\xcf\x26\x0c\ \x2d\xa6\x53\xce\x67\x94\xcf\x09\x4c\x83\xe2\x5b\x7b\xe6\xc2\x60\ \x9a\xb2\x14\x14\x0a\x05\x88\xc5\x62\xc8\xcc\xcc\x84\xa2\xa2\x22\ \x50\xab\xd5\xd0\xd9\xd9\xc9\x60\xec\xfe\xc9\xb9\xc9\xdb\xa7\x75\ \x2e\xb7\xcf\x4b\x80\xae\xb7\xd8\x29\x70\x0e\xc0\x6a\x97\xac\x78\ \x88\xca\x7f\x82\xe2\x29\x89\x0e\x3e\x97\x2b\x21\x5b\x96\x0f\x07\ \x63\xe3\x47\x84\x1f\x26\xd8\x92\x72\x64\x8e\x6f\x1a\xbf\x07\xa3\ \xd1\x08\x2d\xad\x2d\xf0\xcb\xc0\x20\x1c\x38\xf1\xbe\x05\xb3\x62\ \xc1\x04\x5c\x69\x84\x85\x85\x84\x46\xdc\x26\xe7\x32\xac\x2c\xcf\ \x33\xb5\x13\xec\x3b\xe3\xba\xd3\x33\xaf\x82\xe5\xfe\x7a\x89\x06\ \x9e\xde\xfc\x62\x1b\xf7\x3c\x92\x8d\x7b\x66\xab\x4f\x5b\xca\x35\ \xed\x58\x43\x43\x3d\x34\x34\x34\x80\xa5\xb7\x17\x32\x14\xc5\xc3\ \xf3\xe9\xc0\x65\x3c\x92\xe5\x28\x9e\x36\x5d\xe5\x9c\x2a\x32\x78\ \x7d\xf4\x83\x2e\x5a\x6c\x12\x31\x0c\x1b\x25\xea\x71\xf7\x2f\xcb\ \x27\xef\x05\x87\x5f\xfe\xd3\xe4\x44\x0b\x4c\x68\xf4\xc9\x3e\x75\ \x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x96\x31\xae\x81\x09\ \x66\xf1\x36\x6d\x38\x68\x3c\x49\x3a\x3a\x65\xf8\x62\x81\x83\x44\ \xbd\x57\x43\xb6\x0a\x5e\x9b\x2a\xc3\x94\x5c\xb0\x42\x0f\xab\x24\ \xb4\x04\x9f\x4a\xaa\x9b\x43\x37\x31\x28\xd4\x4f\xf2\x0a\xc7\x74\ \x3a\x1d\xd4\xd6\xd6\x82\xc9\x7c\xdb\xb9\x61\x9b\xf7\x5f\xea\x62\ \xb2\xe5\x7e\x9c\x75\x1f\x0d\xf3\xb2\xd4\x4e\xf2\xf6\xb1\xeb\x2e\ \xb6\xae\x94\xc3\x90\x6c\x97\x55\xc1\x4b\x57\xab\x80\x9c\x4d\x6e\ \x5a\xd0\x1c\x49\xbd\xb1\xe7\x88\xb0\xef\xca\x57\xc5\x50\x5a\x5a\ \x0a\x1d\x3f\xf6\x4c\x04\x06\x87\x74\x3c\xaa\x0b\xc2\x84\x46\x8d\ \x07\xc8\x6f\x02\xd9\xf9\xaa\x7e\x9a\xf1\x30\x46\x8e\x36\x20\xaf\ \xbc\x4a\x78\x43\x69\x00\x92\x28\x1d\x98\xcd\x95\xb3\x79\xc3\x7d\ \x3d\xbf\xf9\x44\x6a\xa6\x5d\x2e\x97\x43\x53\x4b\x2b\x44\x1c\x7b\ \xf7\xce\xf4\x14\x25\xae\xf1\x8a\xf5\x77\x9c\xf5\x70\x02\xc2\xd9\ \x0f\x89\xd1\x81\x03\x4f\x8e\xf7\xdc\xd2\x69\xe7\xf3\xdf\x75\xfc\ \x6f\x14\x2e\x36\xd2\xef\xd8\x17\x69\x49\xbe\x2c\x9d\xc8\xd3\x96\ \x3b\xa7\x0f\x31\x8c\x25\xc6\xdf\x9f\xba\x77\x5f\x71\x35\xa0\x41\ \x6c\xb5\x08\x8c\xf9\x94\xf1\xe0\xf0\x33\x4b\x9a\x7c\x68\x13\x5a\ \xbd\xce\xa3\xd9\x6b\x4f\x48\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\ \xf9\x2f\xee\xb9\x49\x6e\x00\xf6\x7b\x3e\xed\xf7\x08\x1e\x2a\x3e\ \x5d\xe5\x58\xaa\xf1\x47\x5a\xf5\xb6\x59\x0b\x11\x1d\xb3\x43\xc9\ \x91\x38\x09\x39\xf9\xa9\x96\x21\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\ \x37\xfc\x4f\x13\xf8\x1d\xe7\x87\x19\xb9\x44\xc3\x01\xcf\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xa3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x35\x49\x44\x41\x54\x58\xc3\xe5\ \x97\xcd\x8f\x54\x45\x14\xc5\x7f\xb7\xea\xd6\x7b\xaf\xdb\x6e\xc7\ \xf9\x40\x9d\x89\x46\x4d\x34\x99\x44\x8d\x1a\x48\x98\xc4\x8c\x1f\ \x1b\xfe\x02\x4c\x5c\xf1\x07\x18\x16\x2e\x4d\x5c\x6b\x58\xc3\x8e\ \xc4\x8d\x1b\x17\xce\x82\x68\x74\x41\x5c\x18\x0d\xe2\xc4\xc6\x00\ \x3d\x60\x50\x51\x19\x60\x02\xa2\x0e\x0c\x83\xd3\xfd\x5e\xf7\x94\ \x8b\xaa\xee\xf9\x60\xe6\x0d\x84\x51\x16\x56\x52\xa9\xce\x7b\xb7\ \xeb\x9e\x3a\xf7\xd4\xa9\x7a\xea\xbd\xe7\x7e\x36\xe5\x3e\xb7\x3e\ \x80\x5d\xbb\x76\xbd\x03\xec\xfd\x8f\xf2\x4e\x35\x1a\x8d\x03\xeb\ \x19\xd8\xbb\xef\xbd\xa3\x3b\x1f\x1f\x76\x00\x9c\x3c\x3a\xcf\xcc\ \x97\x37\x58\x9c\xef\xdc\x53\xa6\xda\xa0\xf2\xdc\x6b\x03\xbc\xb8\ \x67\x10\x80\x8b\x7f\x16\x7c\xf8\xee\x1e\x80\xdb\x00\x70\xfc\xec\ \x1c\xdf\x3f\x30\x04\x78\x2e\xfd\xb8\xc0\xfe\xb7\xce\x6f\xcb\x72\ \x0f\x1d\x79\x9a\x0b\x23\x96\xd3\x9f\x1f\x64\xfc\xd5\x7d\x9b\x6b\ \x40\x45\xb0\x16\x40\x78\x70\x2c\x23\xcb\xb2\x6d\x01\x30\x30\x96\ \x61\x8d\x50\x1b\x7c\x14\x23\x25\x22\x14\x2b\xd8\x18\x91\xd5\x95\ \x73\xe7\xce\x83\x2a\xb8\x04\xd2\x14\xb2\x0c\xd2\x2c\x8c\x49\x0a\ \x49\x12\xde\x77\x3a\x90\xe7\x90\xb7\xa1\xd5\x82\x76\x2b\x8e\x6d\ \x28\x72\xb2\xfa\x38\xd6\x0a\xe3\xaf\xbc\x49\x6b\xf1\xfa\xe6\x00\ \xac\x15\xac\x15\x04\xb0\x46\xd8\xbd\x7b\xe7\x16\x6b\xeb\x86\xae\ \x80\x5a\xa8\x56\x81\xea\x6d\x51\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\ \x84\x01\x67\x05\x35\x82\x08\xa8\x0a\x95\x2c\xc3\x23\x20\x1e\x08\ \xc0\xf0\x1e\x2f\x02\xde\x23\x12\x26\x15\x7c\x88\x23\xc4\x21\x1e\ \x3c\x21\x5e\x40\x4d\x58\x18\x40\xd7\x4a\x89\x06\xac\xa0\xda\x63\ \x00\x9a\x33\xbf\x05\x8a\x53\x07\x69\x02\x95\x04\xb2\x34\xf6\x04\ \x12\x07\x4e\xa1\xe8\x40\x5e\x40\x2b\x8f\xbd\x05\x4b\x39\xb4\x73\ \xc8\x0b\x54\x87\x71\x3d\x00\x2a\xe5\x25\x70\x31\x40\xd5\x30\x39\ \xf9\xd2\xd6\x0a\xf3\x3e\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8\x27\x61\ \x61\xbd\x1c\x25\x25\x20\x00\xf0\x81\x8d\x34\x4d\xa3\x3a\xc3\xb3\ \x98\x11\x89\x6c\x07\xda\x63\x09\x56\x98\x5f\x29\x46\xfc\x61\xcd\ \x72\x7f\x61\x1d\x2d\xd1\x80\x3a\x09\x54\x49\x18\x4f\x34\x2f\xe0\ \x9d\x85\xc4\x21\x89\xc3\x67\x09\x92\x69\xd8\x11\x89\xe2\x13\x87\ \x58\x8b\xef\x76\x91\xbc\x80\xbc\x03\xed\x02\xdf\x6a\x23\xed\x02\ \xf2\x02\x9f\x77\x50\x1d\x45\xd5\x20\x78\x3a\xeb\x54\x78\x9b\x06\ \x9c\x33\x78\x0f\x03\x8f\x24\xbc\xfe\xf2\xf3\x77\x68\xe8\x36\x68\ \xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04\x52\x5e\x82\x44\x4d\x5f\x84\ \x8f\x0d\xa5\x38\xe7\xb6\xc5\x88\x9e\x18\x4b\xb9\x76\xb3\x03\x08\ \x9d\x52\x11\xaa\x90\xb8\x50\xef\x5a\xc5\x30\x7d\xb1\xcb\x40\xc5\ \xb0\x0e\xf4\x26\xad\x57\xf9\x55\x2e\xe1\xe1\xc6\xd2\x32\xf5\xcc\ \x70\x7d\xc9\x84\x2d\xe9\x4a\x19\x10\x9c\x1a\xc0\x73\xe5\x66\x97\ \x2b\x37\xbb\xac\x51\x57\x3f\xd7\xaa\x64\x7e\xc5\x27\xa2\x29\xac\ \x05\x15\xc3\x9c\x0b\xb5\x77\xa6\x6c\x17\xa8\xc1\xa9\x20\xc8\x1a\ \x35\xaf\x9b\x35\x1a\x8f\x59\x31\x9e\xfe\x7b\xe9\xef\x14\x00\xf1\ \x82\xef\x9b\x58\x30\x2b\x57\x56\x02\x55\x21\xd1\x90\xfc\xe7\x53\ \xdf\xf2\xeb\x99\x13\x2c\x2d\xde\xb8\xa7\xfa\x57\x6a\x03\x3c\xf5\ \xec\x4e\x9e\x79\x61\x02\x0f\xa8\x33\x5b\x31\x10\x03\x7c\x87\xf7\ \xf7\xbf\xc1\xc2\xc2\x02\xb7\x6e\xdd\xa2\x28\x0a\x44\x04\x6b\x2d\ \xd6\x5a\x54\x15\x55\xc5\x39\x87\xaa\x62\xad\xc5\x98\xf0\xdf\xe5\ \xe5\x65\xf2\x3c\xef\xf7\x23\xcd\xf9\xb8\xf2\x2d\x18\x70\x56\x50\ \x17\x18\xdc\x31\x3a\xb6\x72\x4f\x38\x7e\x9c\xe9\xe9\x69\x8c\x31\ \x78\xef\x99\x98\x98\x60\x72\x72\xf2\x8e\x59\xd8\x31\x3a\xd6\xdf\ \x86\xae\xd4\x09\x55\x70\x36\xac\xa2\x56\xaf\xf7\x6b\x39\x33\x33\ \xc3\xd0\xd0\x10\xd6\x5a\xbc\xf7\x34\x9b\xcd\xbb\x02\x50\xab\xd7\ \x70\xd1\x88\xb4\xd4\x88\x14\x9c\x0b\x27\x5c\xa0\x2a\x00\xa8\x56\ \xab\x64\x59\xd6\xa7\xb8\x37\xde\x69\x73\x1a\xa9\x17\x41\x4b\xad\ \x38\x1e\xc7\xbd\x23\xb4\xd7\x8c\x31\x88\x44\xdf\x8f\x3a\xb8\xab\ \x9b\xaf\x35\xa8\x0d\xf3\xf6\x18\x2e\x3d\x8e\x83\x29\x6d\xe3\xd5\ \xdb\x12\xa9\xf7\xe5\x56\x6c\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\ \xdb\x02\xe0\xa1\x91\x61\xd4\xc2\xb5\x2b\x97\x59\x9c\xbf\xbe\x05\ \x03\x36\xf8\xc0\x60\xad\x02\x0b\xdb\xc3\xc0\x50\xad\xc2\xec\xc5\ \x4b\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa6\x36\x04\x60\x24\x5e\ \x4a\x05\x12\x0b\xed\x91\x27\xa9\x3d\x0c\x6f\x1f\x38\xc8\x66\xc7\ \x81\x27\x3a\xf1\x2a\xe7\x35\x1e\x32\x81\x14\x28\xba\x70\xf9\xea\ \x55\xce\x34\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1f\x4e\x1d\x02\x0e\x6f\ \x08\xe0\xb3\x8f\x3e\xe0\xa7\xd3\x27\x57\x99\xe9\xda\xa3\x86\x55\ \xe6\xbb\x1e\x04\x1b\x3c\x5f\x1d\x6f\x7c\x77\xee\x8f\xd9\x5f\x0e\ \x01\x87\x1b\x8d\xc6\x5f\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5\x73\ \x6c\x7d\xf2\x35\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1\x3f\x4d\xf0\ \x4b\xb9\xe8\x46\x89\xaf\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x6d\ \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\x06\x34\x49\x44\x41\x54\x78\x5e\xad\x97\x5b\x6c\x54\xc7\ \x1d\xc6\x7f\x73\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\ \x69\x63\x24\x42\x4a\x21\x22\xa1\x2d\x95\x62\xa5\x2f\xee\x4b\x68\ \x2b\x95\xa6\x55\xa5\xc6\x60\x55\xaa\xda\xb4\xaa\xfa\x56\x09\x55\ \xca\x03\x94\x27\xda\x07\x84\x14\x29\xad\xc4\x8b\xa5\x52\x83\x79\ \x08\xc5\x18\x39\x0e\x69\xd3\x84\x9a\x9b\x63\x6a\xec\xb2\x04\x1b\ \x3b\xbb\xf6\x7a\x8f\xbd\xbb\xde\xb3\x67\xa6\xc3\x68\x85\xe5\x72\ \x6c\x88\xc9\x27\x7d\xfa\x9f\x9d\x87\xfd\x7e\xf3\x9f\x99\x73\x11\ \x4a\x29\x82\x24\x84\x78\x05\x78\x9e\xc7\x6b\x48\x29\xf5\x77\xd6\ \x28\x27\x20\xb8\x43\xbb\x01\x68\x97\x52\xbe\xc6\x63\x64\x59\xd6\ \x07\x1a\xf6\xbb\x40\xb7\x06\x39\xff\x14\x00\x26\xfc\xb7\xed\xf5\ \xe2\x60\x5d\x44\x44\x6e\xce\x89\x8a\x2b\x57\xae\x50\x5d\x53\x8d\ \x40\x00\xa0\x50\x08\x65\x28\x41\x29\x66\xd3\x69\x5e\xa9\x17\x2f\ \xbc\xb4\x4e\x6c\x3b\xf1\x1f\xb9\x47\x83\x7c\x5b\x43\x4c\x3c\x4d\ \x07\xf6\xff\x60\x8b\xdd\x2c\x25\xf8\x4a\x32\x3c\x3c\x4c\x65\x65\ \x25\x2b\xc9\x75\x5d\x1e\xc0\x6e\xa9\xb0\x22\x1b\xa2\x2a\x72\x3f\ \xa7\xea\x81\xb5\x03\x08\x2d\x05\x48\xa1\x0d\xf4\x5d\xbc\x48\x2e\ \x97\xc3\x2f\x16\x51\x4a\x91\xcf\xe7\x59\x5c\x5c\xa4\x50\x28\x50\ \xd4\x63\xb5\xb5\xb5\x94\x01\x58\x80\xf8\x82\xf6\x80\x01\x00\x36\ \x44\x05\x1f\x0f\xbc\x4b\x3e\x3b\x8f\x85\x44\x95\x32\xe2\xb6\xc4\ \xb6\x04\x21\x21\x70\x3e\x53\x6c\x8c\x3b\x80\x44\x2a\x04\xf0\x9c\ \x10\x02\xe0\xcb\x40\x05\x50\x0f\x34\x60\xc4\x48\x69\x9f\x24\x02\ \x01\x4e\x9c\x38\x21\x00\x81\x05\xd2\x87\x96\x96\x67\x09\x65\x6d\ \x14\xe5\x28\xa5\xb4\x41\x08\x58\x57\x19\x25\xe2\xd8\x44\x42\x16\ \xc3\x13\x73\x5c\xbc\x3d\x41\xf7\x58\x8e\x5c\x24\xbe\xa9\xbd\x7d\ \xf7\xef\x2d\xcb\x5a\xdc\xb1\x63\x47\x59\x55\x55\x95\xd3\xd8\xd8\ \x18\x7e\xe0\x86\x86\x86\xd0\xa5\x4b\x97\xdc\xae\xae\xae\x08\xf0\ \xd6\xaa\x1d\x00\x13\x44\x55\x2c\xc2\x73\xd5\x31\xf2\x9e\x4f\xa1\ \x28\x91\x4a\x61\x09\x41\xd8\xb1\x88\x86\x6c\xe6\x72\x05\x12\xa2\ \x8e\x3f\x9f\xff\x2b\x0d\x4d\x1b\x01\x22\xc0\x66\x96\x84\xef\xfb\ \x78\x9e\x47\x75\x75\xb5\x9e\x50\x4b\xf4\xea\xd5\xab\x87\x84\x10\ \x28\xa5\xde\x5a\x11\xc0\xb2\x41\x00\xb6\x2d\x90\xda\xb6\x14\x38\ \x08\xa4\x12\x58\xc2\x8c\x1b\x8f\x4c\xb9\xec\x7b\xf5\x3b\xd4\x37\ \x36\x11\x7c\x2f\xc1\x84\x67\x32\x19\xca\xcb\xcb\xcd\x66\x3e\x76\ \xec\xd8\x26\xbd\x7f\x0e\x2e\x41\x2c\x01\xd0\xd9\xd9\xa9\x0e\x1d\ \x3a\xa4\x6c\x21\x08\x59\x10\xb6\x2d\x1c\xc7\xc6\x42\x50\xb4\xcd\ \x1a\x1b\x00\xc7\xb2\x88\x38\x96\xae\x02\x60\x59\x78\x10\xc0\xdc\ \xdc\x1c\x35\x35\x35\x06\x20\x1a\x8d\x72\xe4\xc8\x91\xcd\xc0\x03\ \x88\x1b\x1a\xa2\xc7\x62\xb9\xb0\x6d\x74\x30\x66\x8d\xcb\x23\x36\ \xb1\xa8\xa3\xc7\x2c\x32\x8b\x1e\x93\x99\x1c\x63\xa9\x79\xee\xcc\ \x2e\xe8\xdf\x45\x72\xf9\x3c\xab\xc8\x2c\x41\x36\x9b\x35\xa7\x66\ \xe9\xff\x6d\x0e\x1c\x38\xb0\x1e\xe8\x00\x58\x06\xa0\xb4\x74\x16\ \x8e\x0d\xe1\x90\xc0\x53\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\ \xa6\x7d\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb\x3a\x0d\x2f\xb4\x73\xfb\ \xce\x24\xfd\xfd\xfd\x24\x93\x49\x94\x52\xe6\xfa\xf8\xf1\xe3\xe8\ \xba\xac\x33\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c\x3e\x7c\x98\xde\xde\ \x5e\x12\x89\x84\x04\x2c\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\ \x94\x4f\x6b\xc7\xcf\xf8\xe6\x2f\xdf\x26\xf6\xf5\x37\x99\x7c\xa6\ \x83\x6b\xfe\x2e\xae\xf1\x2d\x64\x6b\x17\xad\x7b\x7f\x4e\x5e\x56\ \x73\xfa\x6f\x67\xd1\x77\x4d\xee\xdc\x9d\xe2\x1b\xaf\x76\x72\xfd\ \xfa\x75\x03\xa0\x67\x6b\xd6\x3f\x16\x8b\x99\xeb\x78\x3c\x8e\xe3\ \x38\x25\x38\x04\xc0\x23\x00\x96\x25\x98\xca\x41\x3a\xde\xca\xfe\ \xdf\xbd\x4d\xd5\xae\xd7\x28\x84\x62\x08\xdb\x42\x59\x82\x6c\x41\ \x72\x7f\x66\x91\x4f\xee\x66\x18\xb8\xea\x72\xfa\x1f\x61\x64\xd5\ \x5e\xae\x8f\xdc\x67\x32\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\ \xcd\xcd\xcd\xb4\xb5\xb5\x19\x37\x35\x35\xa1\xa1\x14\x20\x83\x1f\ \x46\x16\xdc\x71\x15\xdf\xff\xe9\x6f\xa8\x6c\xd8\x48\xe2\xec\x3b\ \x4c\x8f\x5e\xc3\x89\x94\xb1\xb5\x79\x07\x9b\x5b\xb6\xf3\x49\x79\ \x25\x63\x09\x97\xcf\x66\xf2\xdc\x9d\xce\x32\xa1\xed\x88\x0d\x4c\ \x27\xe7\xd8\xb7\x2b\xca\xfa\x25\x00\x33\x7b\x3d\x6b\xea\xea\xea\ \x00\xcc\x75\x2a\x95\x32\x00\x4a\x2b\x10\xa0\xb9\x5a\x70\xe1\x9d\ \x63\x28\x2c\xca\xe6\xc6\xd9\x10\x8f\x52\x94\x92\x7b\xc3\x7d\x24\ \x65\x05\xdb\xda\x7f\x4c\x4d\xdb\xcb\x7c\x3c\x9c\x66\xd2\x5f\xc0\ \xcd\x78\x2c\xcc\x6b\x2f\x78\x20\x00\xb5\x74\x3a\x42\xa1\x90\x09\ \x2d\xdd\xea\x1f\x8e\x01\x2a\xf8\x3e\x60\xc1\xc6\xb8\xa0\x50\x1c\ \x23\x1c\x8b\x53\xb7\xa5\x96\x92\x78\x76\x7d\x05\xe9\xac\xc7\x68\ \xff\x9f\x98\xae\xbc\x4c\xcb\xf6\x83\xb8\x0b\x61\xbc\x82\xa4\x58\ \x94\x78\xda\x21\xc7\x42\x2d\xaa\x80\xe3\x69\xa0\x96\xd5\x15\x01\ \x00\xd6\xc7\x43\x84\xca\x23\xfc\xbf\x6a\x63\x21\x9e\xa9\x0c\x73\ \xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb9\x32\x47\x03\x28\x03\ \x61\x6b\x00\x16\x4b\x21\xa5\x1c\x25\x30\x2a\x15\xa4\x5c\x05\x40\ \x58\xa5\x2a\xcc\xf5\x23\xfa\x70\x6c\x86\xf1\x59\x8f\xef\xfd\xfa\ \x8f\xdc\xca\xd4\xe0\x44\x5c\xa2\x11\x1b\xcf\x93\x14\x3d\x07\xd3\ \x01\xa5\x90\x52\xf2\x50\x6a\x59\x01\x56\x05\x10\x08\x4c\x0d\x04\ \x18\x9d\x76\xf9\xd5\x5f\x86\x18\xbd\xb7\x80\x3d\x93\x67\xd3\xba\ \x32\xf2\x79\x5f\xbb\x68\xea\xce\xaf\xd4\x70\xf9\xdd\xe0\x25\x00\ \x9e\x78\x09\x4c\xb8\x10\x3c\xa2\xd6\x2f\x55\xf2\x87\x1f\x3e\xcf\ \xf5\x4f\x33\x44\x1b\xb7\xb1\xf3\xc5\x97\x59\x12\x5c\x4e\x60\x8e\ \xdb\x53\x01\x28\xc0\x12\x25\x00\x6d\xd4\x52\x7d\xb1\xb5\x96\xdd\ \x5b\xe2\x74\xbf\x97\xa5\x6a\xf7\x57\xf9\xd1\x1b\x6f\x10\xa0\xb5\ \x03\x98\xb5\x37\xd5\xd8\x08\x01\xd2\xcb\x53\x70\x53\x78\xf3\x33\ \x14\xb3\x69\x0a\x19\x1f\x25\xfd\xd5\x82\xd6\x08\xf0\xf0\x29\xe7\ \xe3\xe7\x33\x14\xe6\x75\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc1\x33\ \x7d\xfa\xd7\x72\x8c\xb2\x13\x37\x03\xc7\x01\xb2\x1e\xfe\xad\x94\ \xcc\x6f\xf7\x44\x54\x03\xd8\x5f\x70\x07\x08\x92\x09\xfd\xd7\x3d\ \x3f\xfd\x7e\x42\xa6\xcf\xdf\xf6\xef\x02\xee\x76\x3b\xfc\x92\x06\ \xa8\xe3\x73\xca\x75\x5d\x1f\x70\x57\xed\x00\x40\x32\xab\x0a\x1f\ \x7e\x2a\xd3\xbd\xb7\xfc\xd4\xcd\x69\x39\x05\xf4\x03\x97\x74\x68\ \xbf\x10\xa2\xd3\xb6\xed\xaf\x7d\x9e\x25\x58\x58\x58\xf0\x07\x06\ \x06\xd2\x27\x4f\x9e\x9c\x06\xba\x83\x00\x3e\x1a\x49\xca\xad\xe3\ \xb3\x2a\xd7\x3b\xe2\xa7\x6e\x4c\xcb\xd1\x52\xe8\x59\x1d\x74\x8b\ \x00\x3d\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2\x4e\xcf\xce\xce\ \x9e\x2e\xbd\x1d\xdf\x08\x02\xe8\xee\xea\x29\x00\x8c\x04\x84\x06\ \x85\xaf\x08\x30\x35\x35\x55\xd0\x2f\x22\xa9\x53\xa7\x4e\x25\xc7\ \xc7\xc7\x2f\x03\x67\x81\x7e\x1d\xec\xae\xb8\x09\x4b\xdf\x76\xda\ \x4f\x26\x85\x01\x40\x08\x40\x61\x5a\xfc\xde\xe0\x60\xba\xbb\xbb\ \x3b\xa5\xdf\x8a\xcc\x24\xd0\x5e\xed\x73\xcd\x61\xed\x9a\x77\x33\ \x6e\x11\x60\x70\xf0\xfd\x74\x5f\x5f\x5f\xfa\xcc\x99\x33\xa6\xc5\ \xa5\xd0\x8f\x78\x02\x89\xb5\x9e\x63\x21\x44\x18\x78\x13\xd8\x4f\ \x69\x73\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa\x2a\x5f\xf2\xd8\x15\x9d\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x19\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x07\xab\x49\x44\x41\x54\x58\xc3\xad\ \x57\x5b\x50\x93\x67\x1a\xf6\xca\xce\xec\xcc\xf6\x62\x2f\xbc\xd9\ \xe9\xce\xec\x6e\xbd\xda\xd9\x9b\xb5\xce\xba\x3b\x7b\xb0\xad\xcc\ \x7a\xb1\xce\xce\x3a\xb3\x76\x54\x70\x75\xdb\xe2\x81\xd6\xb6\x54\ \x04\xbb\xa5\x20\x6d\xc1\x82\x06\x08\x07\x51\x42\x80\x80\x80\x02\ \x21\x81\x10\x92\x40\x48\x10\x73\x24\x21\x67\x72\x80\x04\x42\x20\ \x9c\x09\x47\xb5\x54\x78\xf6\xfb\x7e\x13\x16\x30\x58\x8b\x7d\x67\ \x9e\xf9\x2f\x92\xfc\xcf\xfb\x3e\xcf\xfb\xbe\xdf\x97\x5d\x00\x76\ \xfd\x98\x20\xf1\x0b\x82\x14\x02\x03\xc1\x75\x82\x03\xcf\xfd\xfe\ \x8f\x48\xbc\x9b\x20\xe1\x57\xaf\xef\xb5\x2a\x8c\xd6\x65\xdb\x02\ \x60\x19\x1e\x5b\x09\x27\xf1\x33\xfa\x19\x81\x22\xfc\xdc\x3e\x76\ \x48\x7e\x8a\xa0\xb9\xb6\x59\x1c\x32\xcf\xad\x42\x39\xfe\x1d\x44\ \xf6\x51\xd8\xc7\xe6\xe8\x87\x86\x3d\x7b\xf6\x58\x53\x52\xae\x2c\ \xca\x3a\x3a\x10\x4e\xe2\xe5\x49\xc3\xc4\x31\x04\xb7\x3e\x49\xf9\ \x2c\x60\x9b\x5d\x59\x53\x4d\x03\x4d\xb6\x11\x34\xeb\xfb\x20\x31\ \x79\x60\x19\x9d\xc5\xbb\xef\xbe\x3f\xc5\xab\xbe\x83\xf1\x89\x29\ \x4c\x4f\xcf\xae\x92\xef\xd7\xbc\x74\x02\x11\x9f\x0f\xbe\x1d\xe3\ \xb2\x04\x43\x4f\xb4\x33\x40\x8b\x7b\x06\xcd\x3d\x2e\x34\xeb\xec\ \xa8\x57\xf6\x20\x87\x53\x85\x32\x5e\x35\x43\xbc\xb0\xf4\x90\x81\ \xc1\x60\x5c\x26\xbf\x4b\x7c\xe1\x04\x48\x1c\x24\x38\x41\xfd\xdd\ \xea\x73\x27\xf1\xb9\x27\x04\x48\x87\x97\xc1\xd7\xbb\x20\x22\x55\ \x37\xdc\x37\xa2\xb8\x4e\x88\x2c\x56\x3e\xcc\x56\xdb\x3a\x71\x04\ \x2c\x16\x6b\x2c\xfc\xce\xe7\x27\x10\x91\x36\x93\x95\x3f\x46\x7d\ \xa5\xfe\x12\xc4\x6f\xf4\x59\x31\xb6\x02\x7e\xef\x20\x5a\x7b\x9c\ \xe0\x3f\x30\xa1\x4c\x28\x43\x46\x0e\x1b\xb2\x0e\xf9\x26\xd2\xf9\ \xc5\x65\xcc\x2d\x2c\x21\x34\xbf\x88\xbd\x7b\xf7\x5a\xc9\x3b\x7e\ \xba\x6d\x02\x24\x7e\x43\x90\x46\x3d\x35\x13\x69\x75\xb3\x80\xd2\ \x3f\x0f\xcb\xc4\xe2\x9a\x50\xa1\x5a\xb4\x6c\xf1\x59\xa0\xb6\xa0\ \xa6\x5d\x8d\x2f\xb2\x73\x71\xb7\x9e\xff\x0c\x31\x25\x9d\x09\xcd\ \x63\x62\x6a\x06\x83\x43\x81\x27\xe4\xdd\xbc\x2d\xd3\xb0\x3b\x92\ \x03\x33\x26\xd4\x53\xb5\xd3\xfb\x58\x4f\x88\xc5\x03\x21\x88\x2c\ \x43\x50\xba\x46\xd0\xed\x09\x42\xe5\x9b\x42\x9b\x73\xfc\xa9\xcf\ \x5a\x1b\xee\x2a\x74\xc8\xbc\xc9\x45\x09\xa7\x6c\x93\xcf\x9b\x88\ \x27\xa7\x11\x18\x1d\xc3\x80\x6f\x08\xa2\xd6\xd6\x25\xc2\x51\xdb\ \x28\x12\x87\xc6\x1f\xaf\x82\x2f\x62\x94\x4d\x89\x24\x90\x22\xea\ \x52\x2d\x9a\x42\xab\xe8\x18\x79\x04\xa1\xc5\xcf\x10\x53\x74\xf6\ \x0d\xa3\xd3\xe1\x87\xd4\x3c\x80\x16\xbd\x03\x0d\x5d\x06\x14\xd5\ \x0a\x90\x91\x95\x0d\x2f\x79\xf1\xc6\xaa\xa9\xd4\xb3\x73\x0b\x4c\ \xc5\x94\xd8\xdd\xef\x85\xc9\x62\x05\xb7\xbc\x12\xa5\xe5\x95\x4b\ \x13\xf3\xcb\xab\x23\x0f\x01\x37\xd9\x11\xe6\xd9\x15\x84\x97\x15\ \x13\x06\xcb\x3c\xd0\x68\xf2\xa3\xdd\xee\x5f\x27\x96\x3b\x86\x20\ \xb3\x78\xd7\x7d\xe6\x08\xa4\xf8\x3c\x33\x1b\x2a\x8d\x36\xaa\xdc\ \x53\x33\x21\x8c\x8e\x8d\x33\x15\xd3\x26\xe4\x37\x09\xf1\xc1\xc5\ \x8f\x51\x73\xaf\x01\xbe\x65\x60\xfc\x11\xa0\x23\x13\x23\xf2\xce\ \xa1\xbe\x5d\xb9\xb8\x51\x01\x83\x81\x74\x74\x4d\xa7\x1e\x0a\x67\ \x80\xa9\xb8\xdd\xea\x83\xd8\xe8\x42\x93\xca\xcc\xf8\x7c\xe5\xcb\ \x2c\x88\xda\x24\x51\x89\xa7\x67\xe7\x18\x1b\x86\x86\x47\x60\x77\ \x38\x49\x82\x3a\x24\x7c\xf8\x21\xae\xb3\x0b\xe1\x99\x5c\x80\x6f\ \x09\xd0\x90\xde\xe1\x0f\x2c\x81\xab\x1f\xc4\x7d\xef\x04\xdd\x07\ \x1d\x61\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6\x21\x48\xcc\xfd\x4f\ \x7d\xee\xd4\x22\x9d\x55\x84\xaa\x9a\xba\x4d\x3e\x47\xe4\x8e\xf8\ \x3c\x3c\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2\x62\x9c\x7e\x2f\ \x1e\x3d\x03\x01\xf4\x2f\x02\x83\x84\xbc\xc5\xff\x2d\xee\x3a\x43\ \x28\x51\x91\xf7\xf6\x05\xf1\x4e\xdc\xbf\x7d\x84\x33\x69\xe3\x20\ \x18\xf4\x33\xab\xe0\xc9\x54\x68\x35\x38\xd1\xd8\xdd\x0b\x9e\x58\ \x89\xac\x5c\xf6\x33\x3e\x47\xaa\x9e\x9c\x9e\x65\xe4\xee\xf7\x0e\ \xa2\xd7\x6c\x41\x43\x03\x1f\x27\x62\xe3\x20\xe9\xd6\xc0\x45\xcf\ \x01\x52\x90\x24\xb8\x86\xb2\x9e\x00\x6e\xb4\xdb\x50\xd1\x1b\x44\ \x85\xce\x8b\x4a\x7e\x0b\x6d\xbe\x9b\x5b\x27\xd1\xa0\x99\xf8\x16\ \x65\x22\x05\xee\x29\xf4\x28\x13\xc8\x90\x78\x35\x0b\x1a\xad\x3e\ \xaa\xdc\x63\x13\x93\xf0\x0d\x0d\xc3\x66\xef\x83\xb4\x5d\x8e\xc4\ \x4b\x97\x90\xc3\xca\xc3\xd4\x63\xc0\x4e\x7a\x49\x31\x4e\xfa\x89\ \x94\x7f\x5b\x3b\x84\x7c\x85\x13\x25\x6a\x1f\x4a\xd5\x03\xe8\xf2\ \x30\xa3\x28\x22\xf8\xf9\x33\x09\x74\x8f\x2e\xa1\xa8\xbe\x15\xa5\ \x7c\x09\xb2\x4a\x2a\xf0\xcf\xe3\x71\x51\xe5\xf6\x07\x46\xd1\xe7\ \xf2\x40\xab\x37\x20\xfd\x6a\x06\x92\xbf\x48\x83\xcd\x37\x02\x27\ \xa9\xda\x40\x1a\x4c\xe0\x7b\x88\x52\x9d\x1f\x45\xdd\xfd\x0c\x71\ \x41\x97\x1b\xc5\xdd\x1e\x88\x9c\x41\xfc\xf9\xcd\xb7\x5d\x84\xeb\ \x6c\xb4\x43\xd0\x28\xf7\x4e\x23\xa7\xfc\x1e\xb2\x4b\xab\xf1\x51\ \xea\x57\x48\xfe\x6f\xea\xfa\x58\x51\xb9\x47\x82\xe3\xf0\x0c\xf8\ \x60\x34\x99\x51\xc9\xab\xc2\xfb\x67\xcf\x41\xfe\x40\x03\x3f\xe9\ \x6e\xb2\x8d\x19\xb9\x6f\x69\x06\x19\xd2\x9b\x2a\x2f\x72\xe5\x0e\ \xe4\x75\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca\x29\xc2\x53\ \xb8\xdd\x29\xdc\x2b\x76\x04\x90\x51\xc8\xc5\x95\x6b\x79\x38\x11\ \x9f\x80\x9b\xb7\x6e\x33\x63\x15\x91\xdb\x6a\x73\x40\x22\x6d\xc7\ \x85\x84\x0f\x50\x74\xbb\x0c\xf3\x2b\x80\x9f\x34\x58\xf7\x24\x20\ \x1c\x7c\x84\x4a\xd3\x18\x38\xfa\x61\x86\x9c\x56\xfd\x55\xb3\x1e\ \xac\x0e\x3b\xb8\x3a\x1f\xd9\x21\x1e\x7a\x2f\xe0\x13\xbc\xba\x5d\ \x02\x26\xbe\xc1\x83\x94\x6f\xd8\x38\x9f\x9c\x8a\x03\x7f\x3d\x04\ \x63\xaf\x99\xe9\x6e\x2a\xb7\x46\xd7\x83\xa4\xcb\xc9\x48\xff\x3a\ \x8b\x8c\xd5\x3c\x53\xb5\x71\xf6\xa9\xdc\x35\xf6\x69\x5c\x97\x59\ \x19\xd9\xbf\x6e\x21\xa7\xa0\xd4\x82\x74\xbe\x1a\x57\x9b\x34\x60\ \xc9\xcc\x10\xbb\x82\xf8\xe5\xaf\x5f\xa7\x67\xc0\x3b\xe1\x75\x1f\ \x35\xcc\x35\xdd\x66\x7c\x94\x96\x85\xb8\x73\x17\xf1\x97\x43\x31\ \x4c\xd5\x74\x99\xf0\xaa\xaa\x71\xfa\xf4\x19\x68\xcc\x0e\x8c\x92\ \x2d\x36\x14\x1e\xab\x5a\xc7\x0c\x78\xe6\x71\x70\x0d\x23\x4c\xa3\ \x65\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6\x5e\x94\x74\x39\xd0\x66\xf7\ \xaf\x1e\x3d\x11\x4b\x47\x2e\x6f\xc3\x79\x13\x35\x2c\x5c\x99\x1a\ \xf1\x97\x3e\xc7\xd1\xd8\x33\xf8\x38\x31\x09\x86\x5e\x13\x1a\x9b\ \x04\xf8\xdd\x1b\xfb\x51\x4f\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\ \x93\x60\x2b\x5d\x0c\x39\xf5\xbc\xf0\xbe\x67\xbd\xea\xcc\x16\x3d\ \x4a\x55\x1e\x08\x6d\x01\x94\xd4\xf1\x43\xe1\x65\x53\x40\xf0\xca\ \xf7\x25\x60\x2b\x6e\x6a\xc7\xa9\x84\x44\xc4\x1c\x39\x8a\xdc\x7c\ \x36\x5a\x5a\xc5\x38\x14\x13\x83\x2f\x39\x35\xc8\x14\x6a\x98\xe6\ \xa2\xd5\xd2\x27\xf5\x9a\x7a\x4c\x13\xa1\x49\x64\xb7\x99\x90\xdb\ \x6e\x46\xb9\xda\x8d\x06\xa5\x76\x39\x2c\x39\x3d\xf9\x4e\x13\xec\ \xd9\x72\xd4\x47\x0d\x3b\xab\x46\x88\x63\xff\x39\x8f\xdf\xee\xfb\ \x3d\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17\x70\xa3\xad\x07\x19\ \xc4\x4f\x4a\x14\xe9\x6e\xba\x58\xa8\xef\x2c\xfa\x94\x98\x50\x28\ \xb7\x40\xe9\x0e\x3c\xf9\x57\xec\x29\x2a\x77\x2d\xc1\x67\x04\xfb\ \xb6\xb9\xe4\x44\x8d\xbe\xcc\xb2\x5a\xfc\xe3\xe4\x19\x1c\x3c\xf4\ \x37\xb0\x72\xf3\xb0\xef\xc0\x1f\x50\x20\xd1\x21\x89\x27\x65\x2a\ \xa6\x4b\x85\x3e\xbf\x21\xd5\x46\xe4\x2e\x90\x5b\x21\xb0\x0c\xae\ \xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87\x6f\x3c\xaf\x3c\xe7\x96\x15\ \x35\x9c\x69\x45\xe5\xf8\xfb\xb1\x58\x1c\x3f\x19\x87\x37\xf6\xef\ \xc7\x8d\x3a\x11\x92\xab\xa4\x0c\x21\xed\x70\xea\x35\x55\x21\x8b\ \x34\x5b\xc9\x03\x37\x2a\x34\x6e\xd4\x49\x3a\x17\xc3\x72\x73\x08\ \x8e\x6d\x95\xfb\x87\x24\xe0\x4a\x65\x73\x70\xe4\xf8\x29\x1c\x3e\ \x7c\x98\x8c\x63\x2e\x32\x05\x2a\x5c\x22\xd5\xd3\x5d\x7e\x4d\xdc\ \x0b\x36\xe9\x74\x76\xa7\x1d\x77\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\ \x1a\x95\xfb\x22\xbd\x49\xfd\x80\x0b\x6d\xf4\x04\x32\x4a\x78\x4c\ \x0f\x9c\x4b\x49\xc3\xb5\xa6\x2e\x7c\xc2\x6d\x65\x36\x59\xf1\x83\ \x01\x5c\x97\x9a\xc1\x51\x7b\x20\xf3\x04\xd7\xce\x25\x26\x05\x36\ \xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce\x5e\x4e\x45\x81\ \x58\x85\x78\xf6\x5d\x5c\xa9\x55\x90\xaa\xfb\xc0\x96\xdb\x50\xad\ \x75\xe3\xae\x54\x41\x2f\x10\xca\x0d\x72\xbf\xba\xd3\x6a\xa3\x05\ \xb7\xa2\x51\xf8\x1d\xaf\x43\x8d\x4f\xb9\x2d\x88\xcb\xe6\xe1\x9a\ \x48\x8f\xaa\x1e\x2f\x9a\x35\xe6\xc7\x7f\x7a\xf3\x2d\x57\x78\xac\ \xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5c\x75\x1f\xde\xcb\ \xaf\x45\xb9\x76\x00\x32\x67\x60\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\ \xd2\xa9\xdc\x3b\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9d\x50\ \x0b\x39\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3\x2f\x22\xf7\x0e\ \xff\xda\x6d\x8a\xdd\x61\x99\xd5\x1b\xb6\xd8\x6b\xbb\x5e\x32\xbe\ \x2f\x89\xff\x01\x66\xb9\x5f\xfc\x11\x80\x3d\xcf\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x04\xca\x57\xa7\ \x00\x6e\ \x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\x7c\x5a\x07\ \x00\x63\ \x00\x6f\x00\x70\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0a\xc7\x57\x87\ \x00\x63\ \x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x08\xc8\x58\x67\ \x00\x73\ \x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\xa8\xba\x47\ \x00\x70\ \x00\x61\x00\x73\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\xc1\x59\x87\ \x00\x6f\ \x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x03\x58\ \x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\xdd\ \x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xc5\ \x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x12\x6c\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x08\x96\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/mainwindows/mdi/mdi_rc3.py0000644000076500000240000010725412536324427022605 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:45:22 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x03\x54\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xe6\x49\x44\x41\x54\x58\xc3\xd5\ \x97\xcd\x4e\x13\x61\x14\x86\xeb\x35\x94\x95\x7b\x71\xe1\xd2\xc4\ \xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb1\x30\xea\x05\x18\x96\ \x26\x62\x58\xb8\xb0\x91\x58\x20\xd1\x9d\xbf\x89\xa4\x14\xb1\x52\ \xa4\x48\x45\x94\xfe\xd0\x02\x43\xff\xa6\x9d\x19\xa6\x65\x80\xe3\ \x79\x7b\xfa\x85\x51\x4a\x82\xc9\x21\x86\x49\xde\x9c\x33\xa7\xf3\ \xcd\xfb\x9c\xf3\x4d\x9b\x4e\x84\x88\x22\xff\x53\x91\x73\x01\xc0\ \xc7\xd5\x90\x6e\xff\xa5\xfb\xac\xc7\x3d\x3d\x64\x0d\xa9\x02\xf0\ \x31\x32\x3c\x3c\xbc\x6a\x34\x3a\x3a\xba\x19\x56\x3c\x1e\xaf\x26\ \x93\xc9\x56\x3a\x9d\x76\x13\x89\x44\x6b\x60\x60\x20\xcd\x6b\x6e\ \x68\x02\xa4\x38\xd2\xe1\xe1\x71\x99\xba\xef\xb7\xc9\xb2\x2c\xda\ \xdf\xdf\x27\x86\xf1\x78\xcd\x18\xeb\x8a\x1a\x40\x3f\xf3\xb0\x1c\ \xc7\xa5\x4c\x66\xb9\x0b\x14\x04\x01\xc5\x62\xb1\x3a\xaf\x7b\x70\ \x1a\x88\x53\x01\x1c\x1c\x10\x77\x77\xb2\x6c\xdb\xa1\xf9\xf9\xcf\ \x64\x0e\xd7\x75\xe9\xf9\xc4\x44\x17\x42\x05\x00\x26\x7b\xc1\xc9\ \xaa\x37\x1c\x4a\xce\xcd\x53\xf8\x70\x5d\x0f\x8b\x17\x54\x00\x82\ \x10\x40\x67\x4f\x14\xce\xed\xa6\x47\x1f\x67\x66\xe9\xf5\x9b\xb7\ \x14\x9f\x9c\xa4\xa9\xa9\x69\x7a\xf7\xfe\x03\x45\xa3\xd1\x65\x5e\ \x7f\x41\x05\xc0\xef\x10\xed\xb6\x25\x86\x85\x9a\xe3\x05\x94\x5d\ \xcd\xd1\xe4\xf4\x2b\x7a\x32\xfe\x94\x9e\xc5\x5e\xd0\x4c\x62\x0e\ \x8b\x17\x55\x00\xda\x81\x18\xf5\x13\x20\x3c\xff\x90\x6a\xcd\x36\ \x15\x37\xab\x94\x2f\x6e\x53\x89\x63\x8d\xb7\x85\xd7\x7e\x51\x01\ \xf0\x79\xcc\xcd\x5d\x1e\xb5\xc7\x7b\xdb\xee\x9f\x3b\xbe\xe4\x88\ \x5d\xb8\xbd\xee\xe2\x94\xca\x33\xe0\x75\xe4\xc6\x75\x57\x62\xd8\ \x10\x39\xea\xe6\x33\x44\xd4\x01\xa7\x06\xe0\xf4\x3a\xad\x39\x22\ \x98\x98\x68\x72\x80\x98\x6b\x50\x53\x9d\x00\x00\x2a\x2d\xb9\x31\ \xe2\x4e\x53\x8c\x10\x0d\x04\xf2\x6d\xfb\x28\xb6\x7c\x45\x00\x9b\ \x3b\xdb\x6a\xfc\x69\x8e\x3c\x6c\x88\x1a\xae\x39\x13\x80\x3a\x8f\ \xb7\x54\x23\x2a\xd7\xc5\x04\x06\x06\x00\x35\x28\x9c\x17\xab\xbc\ \x25\xbb\xca\x13\xc0\x4d\x61\x0e\x15\x2a\x72\x6e\xcc\x7e\x5a\x02\ \x68\x6a\xdd\xad\xf1\x94\x27\x00\x53\xdc\x1c\x71\x6d\x5b\x40\x60\ \x9a\xab\x1c\x75\x9e\xeb\x81\x41\x15\x47\x11\xc0\x6a\x89\x31\x0c\ \xd6\x77\x04\x20\x0c\x64\x26\x62\xb6\x69\x75\x8b\xa8\xaa\x09\x50\ \xb6\xc5\xbc\xd0\x03\xf8\xbe\x29\x63\x87\x29\x60\x0c\x18\x84\x1c\ \x00\x5b\x4d\x45\x00\x74\x03\x53\x98\xad\x94\xc5\x1c\xe7\x46\xe6\ \x1c\x00\xc8\x71\x5d\xa9\xa1\x08\x80\xfd\xfc\x56\x12\x73\x33\x01\ \x08\x35\x18\x42\xe8\xda\x7c\x8e\x29\xa8\x4e\x00\x5b\x00\x03\xc8\ \x98\x67\x36\x04\x00\x32\xe6\x85\xde\xf8\x17\x0b\xfc\x2c\xd8\x8a\ \x00\x18\x67\x3a\x4f\xb4\x54\x14\x23\x98\x02\x00\x02\x0c\x3e\xfb\ \xc5\x53\x28\xf0\x43\xb8\x66\x49\xf7\x6b\xf9\x52\x87\xd7\xbe\x54\ \x01\xc8\x55\x8f\xba\x4e\xad\x4b\x0e\x90\xaf\x85\xde\xb7\xc2\x92\ \x3d\x4f\xa6\xb3\xde\xa3\xb1\x71\xeb\xda\xd0\xf5\x15\x98\xb3\x6e\ \xa9\x00\x6c\x34\xa4\x6b\x18\xff\xe0\x11\x7f\x5a\x17\x53\xd4\x13\ \x0b\x59\x6f\xe4\xee\xbd\xe2\xa5\xc1\xcb\x4b\x7c\x6d\x8c\x75\x87\ \x35\xa8\xfa\xb7\x1c\xdd\x65\xd9\x3c\x8f\x1f\x19\xfe\x9e\xcf\x1e\ \x37\xbd\xc9\xba\x78\x26\x6f\x46\x00\x68\xf2\xff\x81\x99\x94\x9e\ \xe9\x3f\xbf\x19\x01\x42\xd3\xf4\xfc\xbd\x9c\x9e\xa5\x7e\x03\x51\ \x6c\x25\xa1\x92\x95\x0a\x77\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x05\x3a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xcc\x49\x44\x41\x54\x58\xc3\xb5\ \x97\x5d\x4c\x5b\x65\x1c\xc6\x77\x6f\xbc\xd9\xe5\x12\x49\x20\x71\ \xd7\x26\xe3\x4e\x13\xb8\x70\xd1\x85\x44\xbd\x50\xe3\x10\x18\xe5\ \x2b\x2e\x26\x4a\x04\x27\x86\xaa\x8b\x99\xe0\xd0\xa2\x6c\x19\x86\ \x39\x17\xdc\x1a\x16\x98\x80\x40\x6c\xa6\x43\xca\x20\x2b\x83\x1e\ \x28\xcc\xda\xd1\x96\xd2\xd2\x4a\x7b\xfa\x01\xa5\xd0\xef\x16\x1e\ \xdf\xff\xdb\x1d\xc7\xcc\x04\x2a\x87\x93\x3c\x39\x6f\x21\x9c\xe7\ \xf7\x3c\xef\x47\x0f\x87\x00\x1c\xca\x46\xcf\xbd\xfa\xe9\xbb\x4c\ \x5a\x26\x61\x0f\x6a\x60\xca\xd9\xe9\x79\xd9\x9a\x3f\x5d\x50\xf2\ \xa5\xc1\xe9\x8f\xa7\x57\xc3\x40\x30\x02\x84\xa2\x19\xad\xc7\x32\ \x8a\x27\x81\x58\x22\x73\xbf\x79\x6b\xda\x4b\x10\x72\x02\x1c\x7b\ \xe7\xac\xda\x1c\xd8\xc8\x98\x12\x40\x84\x99\x85\xe3\x19\x91\x31\ \x29\x1a\x4b\x61\x25\x94\x44\x38\x9a\x42\x73\x87\xc6\xbe\x13\xc4\ \xff\x02\x90\x12\x93\x79\x24\xf1\xc8\x58\x92\xcf\x1f\x84\x5d\x8c\ \xc2\xe5\x09\x22\x12\x4b\xa3\xf4\xc3\xef\x4d\x34\x75\x59\x01\xb0\ \xeb\xd8\x36\xd5\x90\x9e\x3a\xfc\xcc\xb9\xe7\x5f\x2e\x11\x3f\x56\ \x9e\x45\x45\x55\x0d\x2a\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\ \xac\xb6\x25\xfc\xb9\xe8\x87\x6b\x15\x58\xf6\x04\x10\x08\xc6\xd2\ \xaf\x9c\xbe\x70\x9f\x41\x1c\xd9\x15\x80\x5d\x87\x99\x1a\x8a\x8a\ \x8a\xcc\x92\x5a\x5b\x5b\xdd\xa4\xaf\x55\xad\xfe\xaf\x54\xdf\xa6\ \x06\x06\x06\x31\x39\x35\x85\xd9\xb9\x39\xe8\x26\x26\x50\x50\x50\ \x80\x21\xcd\x6f\x7c\xde\x49\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\ \x4f\x41\xf4\x85\xf0\x43\xaf\xce\xcd\x00\x6a\xf6\x02\x50\x43\x66\ \xd8\xe5\x8a\xc7\xe3\xf0\x7a\xbd\x48\xa7\xd3\x98\x9c\x9c\x44\x65\ \x65\x35\x66\x67\x8d\xbc\x81\x07\x66\x1b\x74\xd3\x16\x0e\x40\x32\ \x2d\x78\xf0\xdd\x8d\x51\x8f\xac\x00\xe1\x70\x18\x46\xa3\x91\x8f\ \x53\xa9\x14\x7e\xea\xed\x45\xe3\x27\x9f\x61\x86\x41\x38\x96\xdc\ \x50\x77\x75\xe3\x4c\x43\x23\xce\x35\x9d\xc7\xed\x91\x71\x5c\xbc\ \x3e\x2c\x2f\xc0\xc6\xc6\x06\xf4\x7a\xfd\x63\x40\x7d\x7d\xfd\x50\ \x32\x88\xd0\x46\x1c\x66\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\ \x11\x97\xba\x64\x6e\x80\x00\xa6\xd8\x3a\xd8\x7e\x45\x22\x11\x94\ \x2b\x2a\x30\xae\x13\x40\xe7\x04\x6d\x57\xda\xaa\x34\xbe\x7c\x53\ \xe6\x35\x40\x66\x3a\x9d\x0e\xc3\xc3\xc3\xe8\x65\xf5\xf7\xf7\xf7\ \x43\xab\xd5\xa2\xaa\xba\x06\x63\x77\xf5\x90\x0e\x2a\x77\x90\xed\ \x04\xb6\x0e\xda\xbb\x65\x06\xa0\x79\xb7\xdb\xed\x18\x1a\x1a\x42\ \x67\x67\x27\x7a\x7a\x7a\x38\x50\x49\x69\x19\x6e\x69\xf5\x10\xd7\ \x00\x6f\x08\xb0\xf9\x00\x67\x00\xb8\xd0\x25\x33\xc0\xd6\xd6\x16\ \xdf\x09\x81\x40\x00\xa2\x28\xc2\xef\xf7\x63\x6d\x6d\x0d\xa7\x14\ \x95\xd0\xfc\xae\xe7\xa9\xc9\x7c\xc1\x0b\x98\x3d\x40\x9b\xdc\x00\ \xdb\x41\x36\x37\x37\xf9\x76\xa4\x56\x14\x15\xd5\xe8\xfb\x55\xe0\ \xa9\x1d\x81\x47\x00\xe7\x3b\x0f\x00\x80\xcc\x25\x80\x24\x33\x4f\ \x24\x12\x28\x2b\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa0\x36\x5a\ \xd5\x07\x30\x05\xff\x98\x27\x93\x3c\x3d\x4d\x49\xc9\xa9\x4a\x0e\ \xa0\xb7\xb3\x03\x89\x3d\xc5\xf8\x17\x30\xb1\x00\x7c\x71\xf5\x00\ \x00\xa4\xea\xc9\x98\x14\x8b\xc5\x50\xa6\xa8\x82\x7a\x48\xc0\x98\ \x19\xb8\x6b\x05\xe6\x9c\x99\xfb\xe7\x57\x64\x04\x90\xd2\x53\x6a\ \x02\x88\x46\xa3\xdc\x3c\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\ \x66\x87\xe4\xa0\x01\x1c\x64\xc4\x04\x28\x3b\x64\x06\x48\x3d\x9c\ \x73\x12\x99\xd3\xb9\x40\x20\xc5\x65\x55\xb8\xd8\x2d\xa0\x7f\x3a\ \x63\xae\x7d\x90\x69\xe0\xa3\x76\x99\x00\xfe\x5d\x3d\xa5\x26\xad\ \xae\xae\x72\x88\xb7\x4a\x2a\x70\xb9\x57\xc0\x3d\x1b\xb8\x7e\x9e\ \x01\xee\xcc\x03\x67\x2e\xed\x13\x40\xaa\x9d\x44\x8b\x8e\x92\xd3\ \x71\x4c\xdf\x01\x2b\x2b\x2b\x58\x5f\x5f\xe7\x10\x27\x59\x03\xdf\ \x74\x09\x50\x4f\x00\xbf\xcc\x65\x1a\xb8\x32\x06\x34\xec\xa7\x01\ \xc9\x58\xda\xeb\x64\x4e\x69\x29\x39\x1d\x44\x04\x40\xf5\xd3\xcf\ \xde\x7c\x5b\x81\x96\xeb\x02\x4f\x7e\x75\x1c\xb8\x71\x0f\xf8\x71\ \x2c\x9e\x7e\xbd\x4e\x6d\xa6\x37\xaa\xac\x00\x9e\x64\x2c\x6d\x37\ \x32\x25\x00\xd1\x23\xf2\xe4\x12\xcc\x1b\x27\x15\x68\xef\x11\xa0\ \xbc\x66\x5b\x7f\x4f\x35\xe2\x3c\x71\x9a\xbf\x8e\x69\xf7\xfc\x4a\ \x26\x01\x90\xa9\x24\x69\xb5\x53\x42\x32\x0f\x06\x83\x70\xb9\x5c\ \xdc\x90\x5e\x4a\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf\x25\ \x9f\x7d\xa1\x9c\x4c\x3b\x98\x8a\x99\x8e\x3e\xc9\x78\x47\x00\x95\ \x4a\xc5\x01\xa4\x15\x2e\xcd\x37\x19\x52\x52\x3a\xf7\x29\xb5\xc3\ \xe1\xe0\x22\xe3\xc5\xc5\x45\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\ \x93\xe9\xae\x00\x2d\x2d\x2d\x6e\xe9\x60\xa1\xd4\xd2\x97\x0d\x8d\ \x97\x97\x97\xe1\xf3\xf9\x60\xb3\xd9\xf8\x7d\x69\x69\x89\x43\x10\ \x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92\x52\x93\x11\x8d\xe9\ \x4e\xdf\x78\x54\x3b\x35\x60\xb5\x5a\x79\xf5\xd4\x0a\xfd\xce\x60\ \x30\x24\xf2\xf2\xf2\xee\xb3\x67\x1c\xd9\x17\x40\x53\x53\x93\x5b\ \x9a\x67\x4a\x4f\x22\x13\xaa\x9a\xc6\x16\x8b\x99\x37\x40\x9f\x47\ \x47\x47\x23\x6d\x6d\x6d\xde\xfc\xfc\x7c\x13\xfb\xdb\x41\xa6\xb2\ \xbd\x9a\xff\x27\x40\x73\x73\x33\x9f\x02\x4a\x47\x10\x54\x3f\x55\ \x3f\x3f\x3f\xcf\xeb\xd6\x68\x34\x91\xba\xba\x3a\xe7\xc3\xb4\x5d\ \x4c\x1f\x30\x1d\xcd\xc6\x78\x47\x00\xa5\x52\xe9\x76\x3a\x9d\xbc\ \x62\x4a\x4a\x6f\x3e\x94\xb4\xbe\xbe\xde\x99\x93\x93\x23\x99\x16\ \x67\x53\x75\x56\x00\x8d\x8d\x8d\x6e\x8b\xc5\x82\x81\x81\x81\x48\ \x6d\x6d\xad\x33\x37\x37\x57\x56\xd3\xdd\x00\xf8\x7f\x46\x4c\xc2\ \x41\x99\x6e\xd7\xdf\x43\x39\x56\x18\x85\x70\xc8\x04\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x2b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xbd\x49\x44\x41\x54\x58\xc3\xed\ \x57\x6b\x4c\x93\x57\x18\x3e\x23\x71\xc9\x32\xe9\x16\x97\xa8\x54\ \x65\x38\x9d\x02\x15\xf6\x03\x87\x32\x93\x01\x66\x2c\x5b\x70\xc4\ \x30\xff\x60\xa2\x2e\x1a\x3a\x1d\x4e\x03\xba\x31\x89\x5b\xb3\x80\ \xd9\x0c\x84\x02\x19\x58\x1c\x14\x8b\x85\xb2\x82\x95\x5e\xe4\x66\ \x0b\x8e\x31\xf8\xc3\x46\xcb\x2d\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\ \x6a\x69\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0d\x61\xd9\xb2\x93\ \x3c\xed\x97\xf3\x7d\xfd\xde\xe7\xbc\xef\xf3\x5e\x4a\x00\x80\xfc\ \x93\x20\xff\x0a\x02\x74\x09\x28\x44\x14\xd9\x14\x71\x14\x01\x2b\ \x46\x80\xae\xdd\x64\xdd\xc6\x66\x22\x4c\xf8\x95\xc4\x8b\x47\xc8\ \xa1\xd3\xf7\xc8\x8e\x97\x3b\x38\x32\x61\x2b\x41\x20\x85\x9c\xbe\ \x30\x48\x2e\xdd\x80\x19\x40\x32\xab\x79\x4d\xf4\xbe\xfb\x72\x13\ \x68\x64\x06\x91\x04\x5e\xa3\x51\xf4\x06\xee\x85\x47\xf5\xd0\xbd\ \x83\xcb\x4d\x20\x9b\x9d\xf6\x40\x74\x2f\xbd\x16\x32\x3d\x20\x89\ \x3f\x48\xa5\x2c\x1b\x01\x8c\x31\x79\xc1\xbb\x9d\x88\x4b\xc6\xd7\ \xc6\x26\x0e\xa0\x10\xb9\xfd\x42\xfe\xc5\x2b\x36\x46\x8c\x12\x5c\ \x4e\x02\x93\xa7\xa7\xa7\x0d\xcc\xd3\x39\xb9\x98\x63\x36\x14\x0a\ \xd2\xe4\xa3\x2b\x41\x20\x8c\x29\x9e\x2a\xdf\x37\x47\xeb\xdc\x7b\ \xb5\xcc\x89\x9e\x40\x44\x96\x54\x83\x2b\x2c\x0b\x36\x46\x48\x08\ \x13\xf5\x64\x2a\x7b\x2e\x54\x03\x01\xf8\x03\x37\xbf\xc0\x0e\x34\ \x2a\x54\xdf\x62\x88\x52\xd5\x2c\x58\x03\x74\x1d\x16\x08\x04\x7a\ \x45\x55\xf5\xc8\xa0\x6d\x74\xc2\xd4\x73\xf7\x21\xbe\x73\x51\x95\ \x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc\x2e\x03\ \xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf\x3e\xbf\xd2\x60\xb5\xdb\ \xed\x80\xf8\x79\xe4\x3e\xc4\x5e\xab\xb4\xb9\x88\x2f\x86\x80\x27\ \xd3\xc0\x67\xf9\x8e\x19\xf5\x60\xd7\x5e\x33\xba\x76\xda\x73\xee\ \x68\xd8\xc7\xc7\x47\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\ \xf6\x2e\xe7\x96\x37\xf7\x77\x73\x61\xd8\xbd\xe8\x5e\x80\x2f\x66\ \x9a\xa0\x86\xdf\xa9\x36\x42\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\ \xe7\x1a\x8a\x98\x2d\x7e\xfe\x6d\x97\x54\x1a\x6b\x5f\x5f\x1f\xb8\ \xd0\xd1\x73\x07\x62\x72\x15\x56\x4e\xc4\x87\x97\xd4\x8c\x30\x14\ \xe9\x15\xb7\x1e\x38\x1c\x0e\x40\xa4\xd6\x19\x31\x9e\x85\x9b\x05\ \x7e\x6d\xa9\x25\x1a\x5b\x97\xd9\x0c\xe6\x2e\x0a\xf3\x24\x14\xdf\ \x36\x8e\x7b\xbd\x1e\xd1\xcd\x42\xc8\x09\x6f\xa9\x04\x3c\xd1\xbd\ \x56\xab\x15\x10\x77\x7f\x1b\x84\xf3\x92\x5c\xbb\x52\xa9\x84\xfa\ \xfa\x7a\x30\x99\x4c\x0c\x75\xdf\x35\xc1\x51\xb1\x64\x18\xc9\x51\ \x44\x3e\xb6\x76\xcc\xb4\x40\x4f\x93\x5f\x7e\xd3\xd6\xdf\xdf\x0f\ \x32\x99\x0c\x44\x22\x11\xa8\x54\x2a\x90\x4a\xa5\xa0\xd1\x68\x20\ \x4b\x5b\x39\xbe\xe9\x95\xe0\x1f\xb8\x53\xaf\x79\x2c\xf3\x00\x97\ \x8e\x22\x9e\xc7\x86\xe6\x53\x29\x19\xf6\x82\x82\x02\xe6\xe2\xa0\ \xa0\x20\xe0\xf1\x78\x60\xb1\x58\x40\x5b\x5e\x01\xfb\xcf\x26\x0c\ \x2d\xa6\x53\xce\x67\x94\xcf\x09\x4c\x83\xe2\x5b\x7b\xe6\xc2\x60\ \x9a\xb2\x14\x14\x0a\x05\x88\xc5\x62\xc8\xcc\xcc\x84\xa2\xa2\x22\ \x50\xab\xd5\xd0\xd9\xd9\xc9\x60\xec\xfe\xc9\xb9\xc9\xdb\xa7\x75\ \x2e\xb7\xcf\x4b\x80\xae\xb7\xd8\x29\x70\x0e\xc0\x6a\x97\xac\x78\ \x88\xca\x7f\x82\xe2\x29\x89\x0e\x3e\x97\x2b\x21\x5b\x96\x0f\x07\ \x63\xe3\x47\x84\x1f\x26\xd8\x92\x72\x64\x8e\x6f\x1a\xbf\x07\xa3\ \xd1\x08\x2d\xad\x2d\xf0\xcb\xc0\x20\x1c\x38\xf1\xbe\x05\xb3\x62\ \xc1\x04\x5c\x69\x84\x85\x85\x84\x46\xdc\x26\xe7\x32\xac\x2c\xcf\ \x33\xb5\x13\xec\x3b\xe3\xba\xd3\x33\xaf\x82\xe5\xfe\x7a\x89\x06\ \x9e\xde\xfc\x62\x1b\xf7\x3c\x92\x8d\x7b\x66\xab\x4f\x5b\xca\x35\ \xed\x58\x43\x43\x3d\x34\x34\x34\x80\xa5\xb7\x17\x32\x14\xc5\xc3\ \xf3\xe9\xc0\x65\x3c\x92\xe5\x28\x9e\x36\x5d\xe5\x9c\x2a\x32\x78\ \x7d\xf4\x83\x2e\x5a\x6c\x12\x31\x0c\x1b\x25\xea\x71\xf7\x2f\xcb\ \x27\xef\x05\x87\x5f\xfe\xd3\xe4\x44\x0b\x4c\x68\xf4\xc9\x3e\x75\ \x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x96\x31\xae\x81\x09\ \x66\xf1\x36\x6d\x38\x68\x3c\x49\x3a\x3a\x65\xf8\x62\x81\x83\x44\ \xbd\x57\x43\xb6\x0a\x5e\x9b\x2a\xc3\x94\x5c\xb0\x42\x0f\xab\x24\ \xb4\x04\x9f\x4a\xaa\x9b\x43\x37\x31\x28\xd4\x4f\xf2\x0a\xc7\x74\ \x3a\x1d\xd4\xd6\xd6\x82\xc9\x7c\xdb\xb9\x61\x9b\xf7\x5f\xea\x62\ \xb2\xe5\x7e\x9c\x75\x1f\x0d\xf3\xb2\xd4\x4e\xf2\xf6\xb1\xeb\x2e\ \xb6\xae\x94\xc3\x90\x6c\x97\x55\xc1\x4b\x57\xab\x80\x9c\x4d\x6e\ \x5a\xd0\x1c\x49\xbd\xb1\xe7\x88\xb0\xef\xca\x57\xc5\x50\x5a\x5a\ \x0a\x1d\x3f\xf6\x4c\x04\x06\x87\x74\x3c\xaa\x0b\xc2\x84\x46\x8d\ \x07\xc8\x6f\x02\xd9\xf9\xaa\x7e\x9a\xf1\x30\x46\x8e\x36\x20\xaf\ \xbc\x4a\x78\x43\x69\x00\x92\x28\x1d\x98\xcd\x95\xb3\x79\xc3\x7d\ \x3d\xbf\xf9\x44\x6a\xa6\x5d\x2e\x97\x43\x53\x4b\x2b\x44\x1c\x7b\ \xf7\xce\xf4\x14\x25\xae\xf1\x8a\xf5\x77\x9c\xf5\x70\x02\xc2\xd9\ \x0f\x89\xd1\x81\x03\x4f\x8e\xf7\xdc\xd2\x69\xe7\xf3\xdf\x75\xfc\ \x6f\x14\x2e\x36\xd2\xef\xd8\x17\x69\x49\xbe\x2c\x9d\xc8\xd3\x96\ \x3b\xa7\x0f\x31\x8c\x25\xc6\xdf\x9f\xba\x77\x5f\x71\x35\xa0\x41\ \x6c\xb5\x08\x8c\xf9\x94\xf1\xe0\xf0\x33\x4b\x9a\x7c\x68\x13\x5a\ \xbd\xce\xa3\xd9\x6b\x4f\x48\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\ \xf9\x2f\xee\xb9\x49\x6e\x00\xf6\x7b\x3e\xed\xf7\x08\x1e\x2a\x3e\ \x5d\xe5\x58\xaa\xf1\x47\x5a\xf5\xb6\x59\x0b\x11\x1d\xb3\x43\xc9\ \x91\x38\x09\x39\xf9\xa9\x96\x21\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\ \x37\xfc\x4f\x13\xf8\x1d\xe7\x87\x19\xb9\x44\xc3\x01\xcf\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xa3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x35\x49\x44\x41\x54\x58\xc3\xe5\ \x97\xcd\x8f\x54\x45\x14\xc5\x7f\xb7\xea\xd6\x7b\xaf\xdb\x6e\xc7\ \xf9\x40\x9d\x89\x46\x4d\x34\x99\x44\x8d\x1a\x48\x98\xc4\x8c\x1f\ \x1b\xfe\x02\x4c\x5c\xf1\x07\x18\x16\x2e\x4d\x5c\x6b\x58\xc3\x8e\ \xc4\x8d\x1b\x17\xce\x82\x68\x74\x41\x5c\x18\x0d\xe2\xc4\xc6\x00\ \x3d\x60\x50\x51\x19\x60\x02\xa2\x0e\x0c\x83\xd3\xfd\x5e\xf7\x94\ \x8b\xaa\xee\xf9\x60\xe6\x0d\x84\x51\x16\x56\x52\xa9\xce\x7b\xb7\ \xeb\x9e\x3a\xf7\xd4\xa9\x7a\xea\xbd\xe7\x7e\x36\xe5\x3e\xb7\x3e\ \x80\x5d\xbb\x76\xbd\x03\xec\xfd\x8f\xf2\x4e\x35\x1a\x8d\x03\xeb\ \x19\xd8\xbb\xef\xbd\xa3\x3b\x1f\x1f\x76\x00\x9c\x3c\x3a\xcf\xcc\ \x97\x37\x58\x9c\xef\xdc\x53\xa6\xda\xa0\xf2\xdc\x6b\x03\xbc\xb8\ \x67\x10\x80\x8b\x7f\x16\x7c\xf8\xee\x1e\x80\xdb\x00\x70\xfc\xec\ \x1c\xdf\x3f\x30\x04\x78\x2e\xfd\xb8\xc0\xfe\xb7\xce\x6f\xcb\x72\ \x0f\x1d\x79\x9a\x0b\x23\x96\xd3\x9f\x1f\x64\xfc\xd5\x7d\x9b\x6b\ \x40\x45\xb0\x16\x40\x78\x70\x2c\x23\xcb\xb2\x6d\x01\x30\x30\x96\ \x61\x8d\x50\x1b\x7c\x14\x23\x25\x22\x14\x2b\xd8\x18\x91\xd5\x95\ \x73\xe7\xce\x83\x2a\xb8\x04\xd2\x14\xb2\x0c\xd2\x2c\x8c\x49\x0a\ \x49\x12\xde\x77\x3a\x90\xe7\x90\xb7\xa1\xd5\x82\x76\x2b\x8e\x6d\ \x28\x72\xb2\xfa\x38\xd6\x0a\xe3\xaf\xbc\x49\x6b\xf1\xfa\xe6\x00\ \xac\x15\xac\x15\x04\xb0\x46\xd8\xbd\x7b\xe7\x16\x6b\xeb\x86\xae\ \x80\x5a\xa8\x56\x81\xea\x6d\x51\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\ \x84\x01\x67\x05\x35\x82\x08\xa8\x0a\x95\x2c\xc3\x23\x20\x1e\x08\ \xc0\xf0\x1e\x2f\x02\xde\x23\x12\x26\x15\x7c\x88\x23\xc4\x21\x1e\ \x3c\x21\x5e\x40\x4d\x58\x18\x40\xd7\x4a\x89\x06\xac\xa0\xda\x63\ \x00\x9a\x33\xbf\x05\x8a\x53\x07\x69\x02\x95\x04\xb2\x34\xf6\x04\ \x12\x07\x4e\xa1\xe8\x40\x5e\x40\x2b\x8f\xbd\x05\x4b\x39\xb4\x73\ \xc8\x0b\x54\x87\x71\x3d\x00\x2a\xe5\x25\x70\x31\x40\xd5\x30\x39\ \xf9\xd2\xd6\x0a\xf3\x3e\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8\x27\x61\ \x61\xbd\x1c\x25\x25\x20\x00\xf0\x81\x8d\x34\x4d\xa3\x3a\xc3\xb3\ \x98\x11\x89\x6c\x07\xda\x63\x09\x56\x98\x5f\x29\x46\xfc\x61\xcd\ \x72\x7f\x61\x1d\x2d\xd1\x80\x3a\x09\x54\x49\x18\x4f\x34\x2f\xe0\ \x9d\x85\xc4\x21\x89\xc3\x67\x09\x92\x69\xd8\x11\x89\xe2\x13\x87\ \x58\x8b\xef\x76\x91\xbc\x80\xbc\x03\xed\x02\xdf\x6a\x23\xed\x02\ \xf2\x02\x9f\x77\x50\x1d\x45\xd5\x20\x78\x3a\xeb\x54\x78\x9b\x06\ \x9c\x33\x78\x0f\x03\x8f\x24\xbc\xfe\xf2\xf3\x77\x68\xe8\x36\x68\ \xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04\x52\x5e\x82\x44\x4d\x5f\x84\ \x8f\x0d\xa5\x38\xe7\xb6\xc5\x88\x9e\x18\x4b\xb9\x76\xb3\x03\x08\ \x9d\x52\x11\xaa\x90\xb8\x50\xef\x5a\xc5\x30\x7d\xb1\xcb\x40\xc5\ \xb0\x0e\xf4\x26\xad\x57\xf9\x55\x2e\xe1\xe1\xc6\xd2\x32\xf5\xcc\ \x70\x7d\xc9\x84\x2d\xe9\x4a\x19\x10\x9c\x1a\xc0\x73\xe5\x66\x97\ \x2b\x37\xbb\xac\x51\x57\x3f\xd7\xaa\x64\x7e\xc5\x27\xa2\x29\xac\ \x05\x15\xc3\x9c\x0b\xb5\x77\xa6\x6c\x17\xa8\xc1\xa9\x20\xc8\x1a\ \x35\xaf\x9b\x35\x1a\x8f\x59\x31\x9e\xfe\x7b\xe9\xef\x14\x00\xf1\ \x82\xef\x9b\x58\x30\x2b\x57\x56\x02\x55\x21\xd1\x90\xfc\xe7\x53\ \xdf\xf2\xeb\x99\x13\x2c\x2d\xde\xb8\xa7\xfa\x57\x6a\x03\x3c\xf5\ \xec\x4e\x9e\x79\x61\x02\x0f\xa8\x33\x5b\x31\x10\x03\x7c\x87\xf7\ \xf7\xbf\xc1\xc2\xc2\x02\xb7\x6e\xdd\xa2\x28\x0a\x44\x04\x6b\x2d\ \xd6\x5a\x54\x15\x55\xc5\x39\x87\xaa\x62\xad\xc5\x98\xf0\xdf\xe5\ \xe5\x65\xf2\x3c\xef\xf7\x23\xcd\xf9\xb8\xf2\x2d\x18\x70\x56\x50\ \x17\x18\xdc\x31\x3a\xb6\x72\x4f\x38\x7e\x9c\xe9\xe9\x69\x8c\x31\ \x78\xef\x99\x98\x98\x60\x72\x72\xf2\x8e\x59\xd8\x31\x3a\xd6\xdf\ \x86\xae\xd4\x09\x55\x70\x36\xac\xa2\x56\xaf\xf7\x6b\x39\x33\x33\ \xc3\xd0\xd0\x10\xd6\x5a\xbc\xf7\x34\x9b\xcd\xbb\x02\x50\xab\xd7\ \x70\xd1\x88\xb4\xd4\x88\x14\x9c\x0b\x27\x5c\xa0\x2a\x00\xa8\x56\ \xab\x64\x59\xd6\xa7\xb8\x37\xde\x69\x73\x1a\xa9\x17\x41\x4b\xad\ \x38\x1e\xc7\xbd\x23\xb4\xd7\x8c\x31\x88\x44\xdf\x8f\x3a\xb8\xab\ \x9b\xaf\x35\xa8\x0d\xf3\xf6\x18\x2e\x3d\x8e\x83\x29\x6d\xe3\xd5\ \xdb\x12\xa9\xf7\xe5\x56\x6c\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\ \xdb\x02\xe0\xa1\x91\x61\xd4\xc2\xb5\x2b\x97\x59\x9c\xbf\xbe\x05\ \x03\x36\xf8\xc0\x60\xad\x02\x0b\xdb\xc3\xc0\x50\xad\xc2\xec\xc5\ \x4b\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa6\x36\x04\x60\x24\x5e\ \x4a\x05\x12\x0b\xed\x91\x27\xa9\x3d\x0c\x6f\x1f\x38\xc8\x66\xc7\ \x81\x27\x3a\xf1\x2a\xe7\x35\x1e\x32\x81\x14\x28\xba\x70\xf9\xea\ \x55\xce\x34\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1f\x4e\x1d\x02\x0e\x6f\ \x08\xe0\xb3\x8f\x3e\xe0\xa7\xd3\x27\x57\x99\xe9\xda\xa3\x86\x55\ \xe6\xbb\x1e\x04\x1b\x3c\x5f\x1d\x6f\x7c\x77\xee\x8f\xd9\x5f\x0e\ \x01\x87\x1b\x8d\xc6\x5f\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5\x73\ \x6c\x7d\xf2\x35\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1\x3f\x4d\xf0\ \x4b\xb9\xe8\x46\x89\xaf\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x6d\ \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\x06\x34\x49\x44\x41\x54\x78\x5e\xad\x97\x5b\x6c\x54\xc7\ \x1d\xc6\x7f\x73\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\ \x69\x63\x24\x42\x4a\x21\x22\xa1\x2d\x95\x62\xa5\x2f\xee\x4b\x68\ \x2b\x95\xa6\x55\xa5\xc6\x60\x55\xaa\xda\xb4\xaa\xfa\x56\x09\x55\ \xca\x03\x94\x27\xda\x07\x84\x14\x29\xad\xc4\x8b\xa5\x52\x83\x79\ \x08\xc5\x18\x39\x0e\x69\xd3\x84\x9a\x9b\x63\x6a\xec\xb2\x04\x1b\ \x3b\xbb\xf6\x7a\x8f\xbd\xbb\xde\xb3\x67\xa6\xc3\x68\x85\xe5\x72\ \x6c\x88\xc9\x27\x7d\xfa\x9f\x9d\x87\xfd\x7e\xf3\x9f\x99\x73\x11\ \x4a\x29\x82\x24\x84\x78\x05\x78\x9e\xc7\x6b\x48\x29\xf5\x77\xd6\ \x28\x27\x20\xb8\x43\xbb\x01\x68\x97\x52\xbe\xc6\x63\x64\x59\xd6\ \x07\x1a\xf6\xbb\x40\xb7\x06\x39\xff\x14\x00\x26\xfc\xb7\xed\xf5\ \xe2\x60\x5d\x44\x44\x6e\xce\x89\x8a\x2b\x57\xae\x50\x5d\x53\x8d\ \x40\x00\xa0\x50\x08\x65\x28\x41\x29\x66\xd3\x69\x5e\xa9\x17\x2f\ \xbc\xb4\x4e\x6c\x3b\xf1\x1f\xb9\x47\x83\x7c\x5b\x43\x4c\x3c\x4d\ \x07\xf6\xff\x60\x8b\xdd\x2c\x25\xf8\x4a\x32\x3c\x3c\x4c\x65\x65\ \x25\x2b\xc9\x75\x5d\x1e\xc0\x6e\xa9\xb0\x22\x1b\xa2\x2a\x72\x3f\ \xa7\xea\x81\xb5\x03\x08\x2d\x05\x48\xa1\x0d\xf4\x5d\xbc\x48\x2e\ \x97\xc3\x2f\x16\x51\x4a\x91\xcf\xe7\x59\x5c\x5c\xa4\x50\x28\x50\ \xd4\x63\xb5\xb5\xb5\x94\x01\x58\x80\xf8\x82\xf6\x80\x01\x00\x36\ \x44\x05\x1f\x0f\xbc\x4b\x3e\x3b\x8f\x85\x44\x95\x32\xe2\xb6\xc4\ \xb6\x04\x21\x21\x70\x3e\x53\x6c\x8c\x3b\x80\x44\x2a\x04\xf0\x9c\ \x10\x02\xe0\xcb\x40\x05\x50\x0f\x34\x60\xc4\x48\x69\x9f\x24\x02\ \x01\x4e\x9c\x38\x21\x00\x81\x05\xd2\x87\x96\x96\x67\x09\x65\x6d\ \x14\xe5\x28\xa5\xb4\x41\x08\x58\x57\x19\x25\xe2\xd8\x44\x42\x16\ \xc3\x13\x73\x5c\xbc\x3d\x41\xf7\x58\x8e\x5c\x24\xbe\xa9\xbd\x7d\ \xf7\xef\x2d\xcb\x5a\xdc\xb1\x63\x47\x59\x55\x55\x95\xd3\xd8\xd8\ \x18\x7e\xe0\x86\x86\x86\xd0\xa5\x4b\x97\xdc\xae\xae\xae\x08\xf0\ \xd6\xaa\x1d\x00\x13\x44\x55\x2c\xc2\x73\xd5\x31\xf2\x9e\x4f\xa1\ \x28\x91\x4a\x61\x09\x41\xd8\xb1\x88\x86\x6c\xe6\x72\x05\x12\xa2\ \x8e\x3f\x9f\xff\x2b\x0d\x4d\x1b\x01\x22\xc0\x66\x96\x84\xef\xfb\ \x78\x9e\x47\x75\x75\xb5\x9e\x50\x4b\xf4\xea\xd5\xab\x87\x84\x10\ \x28\xa5\xde\x5a\x11\xc0\xb2\x41\x00\xb6\x2d\x90\xda\xb6\x14\x38\ \x08\xa4\x12\x58\xc2\x8c\x1b\x8f\x4c\xb9\xec\x7b\xf5\x3b\xd4\x37\ \x36\x11\x7c\x2f\xc1\x84\x67\x32\x19\xca\xcb\xcb\xcd\x66\x3e\x76\ \xec\xd8\x26\xbd\x7f\x0e\x2e\x41\x2c\x01\xd0\xd9\xd9\xa9\x0e\x1d\ \x3a\xa4\x6c\x21\x08\x59\x10\xb6\x2d\x1c\xc7\xc6\x42\x50\xb4\xcd\ \x1a\x1b\x00\xc7\xb2\x88\x38\x96\xae\x02\x60\x59\x78\x10\xc0\xdc\ \xdc\x1c\x35\x35\x35\x06\x20\x1a\x8d\x72\xe4\xc8\x91\xcd\xc0\x03\ \x88\x1b\x1a\xa2\xc7\x62\xb9\xb0\x6d\x74\x30\x66\x8d\xcb\x23\x36\ \xb1\xa8\xa3\xc7\x2c\x32\x8b\x1e\x93\x99\x1c\x63\xa9\x79\xee\xcc\ \x2e\xe8\xdf\x45\x72\xf9\x3c\xab\xc8\x2c\x41\x36\x9b\x35\xa7\x66\ \xe9\xff\x6d\x0e\x1c\x38\xb0\x1e\xe8\x00\x58\x06\xa0\xb4\x74\x16\ \x8e\x0d\xe1\x90\xc0\x53\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\ \xa6\x7d\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb\x3a\x0d\x2f\xb4\x73\xfb\ \xce\x24\xfd\xfd\xfd\x24\x93\x49\x94\x52\xe6\xfa\xf8\xf1\xe3\xe8\ \xba\xac\x33\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c\x3e\x7c\x98\xde\xde\ \x5e\x12\x89\x84\x04\x2c\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\ \x94\x4f\x6b\xc7\xcf\xf8\xe6\x2f\xdf\x26\xf6\xf5\x37\x99\x7c\xa6\ \x83\x6b\xfe\x2e\xae\xf1\x2d\x64\x6b\x17\xad\x7b\x7f\x4e\x5e\x56\ \x73\xfa\x6f\x67\xd1\x77\x4d\xee\xdc\x9d\xe2\x1b\xaf\x76\x72\xfd\ \xfa\x75\x03\xa0\x67\x6b\xd6\x3f\x16\x8b\x99\xeb\x78\x3c\x8e\xe3\ \x38\x25\x38\x04\xc0\x23\x00\x96\x25\x98\xca\x41\x3a\xde\xca\xfe\ \xdf\xbd\x4d\xd5\xae\xd7\x28\x84\x62\x08\xdb\x42\x59\x82\x6c\x41\ \x72\x7f\x66\x91\x4f\xee\x66\x18\xb8\xea\x72\xfa\x1f\x61\x64\xd5\ \x5e\xae\x8f\xdc\x67\x32\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\ \xcd\xcd\xcd\xb4\xb5\xb5\x19\x37\x35\x35\xa1\xa1\x14\x20\x83\x1f\ \x46\x16\xdc\x71\x15\xdf\xff\xe9\x6f\xa8\x6c\xd8\x48\xe2\xec\x3b\ \x4c\x8f\x5e\xc3\x89\x94\xb1\xb5\x79\x07\x9b\x5b\xb6\xf3\x49\x79\ \x25\x63\x09\x97\xcf\x66\xf2\xdc\x9d\xce\x32\xa1\xed\x88\x0d\x4c\ \x27\xe7\xd8\xb7\x2b\xca\xfa\x25\x00\x33\x7b\x3d\x6b\xea\xea\xea\ \x00\xcc\x75\x2a\x95\x32\x00\x4a\x2b\x10\xa0\xb9\x5a\x70\xe1\x9d\ \x63\x28\x2c\xca\xe6\xc6\xd9\x10\x8f\x52\x94\x92\x7b\xc3\x7d\x24\ \x65\x05\xdb\xda\x7f\x4c\x4d\xdb\xcb\x7c\x3c\x9c\x66\xd2\x5f\xc0\ \xcd\x78\x2c\xcc\x6b\x2f\x78\x20\x00\xb5\x74\x3a\x42\xa1\x90\x09\ \x2d\xdd\xea\x1f\x8e\x01\x2a\xf8\x3e\x60\xc1\xc6\xb8\xa0\x50\x1c\ \x23\x1c\x8b\x53\xb7\xa5\x96\x92\x78\x76\x7d\x05\xe9\xac\xc7\x68\ \xff\x9f\x98\xae\xbc\x4c\xcb\xf6\x83\xb8\x0b\x61\xbc\x82\xa4\x58\ \x94\x78\xda\x21\xc7\x42\x2d\xaa\x80\xe3\x69\xa0\x96\xd5\x15\x01\ \x00\xd6\xc7\x43\x84\xca\x23\xfc\xbf\x6a\x63\x21\x9e\xa9\x0c\x73\ \xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb9\x32\x47\x03\x28\x03\ \x61\x6b\x00\x16\x4b\x21\xa5\x1c\x25\x30\x2a\x15\xa4\x5c\x05\x40\ \x58\xa5\x2a\xcc\xf5\x23\xfa\x70\x6c\x86\xf1\x59\x8f\xef\xfd\xfa\ \x8f\xdc\xca\xd4\xe0\x44\x5c\xa2\x11\x1b\xcf\x93\x14\x3d\x07\xd3\ \x01\xa5\x90\x52\xf2\x50\x6a\x59\x01\x56\x05\x10\x08\x4c\x0d\x04\ \x18\x9d\x76\xf9\xd5\x5f\x86\x18\xbd\xb7\x80\x3d\x93\x67\xd3\xba\ \x32\xf2\x79\x5f\xbb\x68\xea\xce\xaf\xd4\x70\xf9\xdd\xe0\x25\x00\ \x9e\x78\x09\x4c\xb8\x10\x3c\xa2\xd6\x2f\x55\xf2\x87\x1f\x3e\xcf\ \xf5\x4f\x33\x44\x1b\xb7\xb1\xf3\xc5\x97\x59\x12\x5c\x4e\x60\x8e\ \xdb\x53\x01\x28\xc0\x12\x25\x00\x6d\xd4\x52\x7d\xb1\xb5\x96\xdd\ \x5b\xe2\x74\xbf\x97\xa5\x6a\xf7\x57\xf9\xd1\x1b\x6f\x10\xa0\xb5\ \x03\x98\xb5\x37\xd5\xd8\x08\x01\xd2\xcb\x53\x70\x53\x78\xf3\x33\ \x14\xb3\x69\x0a\x19\x1f\x25\xfd\xd5\x82\xd6\x08\xf0\xf0\x29\xe7\ \xe3\xe7\x33\x14\xe6\x75\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc1\x33\ \x7d\xfa\xd7\x72\x8c\xb2\x13\x37\x03\xc7\x01\xb2\x1e\xfe\xad\x94\ \xcc\x6f\xf7\x44\x54\x03\xd8\x5f\x70\x07\x08\x92\x09\xfd\xd7\x3d\ \x3f\xfd\x7e\x42\xa6\xcf\xdf\xf6\xef\x02\xee\x76\x3b\xfc\x92\x06\ \xa8\xe3\x73\xca\x75\x5d\x1f\x70\x57\xed\x00\x40\x32\xab\x0a\x1f\ \x7e\x2a\xd3\xbd\xb7\xfc\xd4\xcd\x69\x39\x05\xf4\x03\x97\x74\x68\ \xbf\x10\xa2\xd3\xb6\xed\xaf\x7d\x9e\x25\x58\x58\x58\xf0\x07\x06\ \x06\xd2\x27\x4f\x9e\x9c\x06\xba\x83\x00\x3e\x1a\x49\xca\xad\xe3\ \xb3\x2a\xd7\x3b\xe2\xa7\x6e\x4c\xcb\xd1\x52\xe8\x59\x1d\x74\x8b\ \x00\x3d\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2\x4e\xcf\xce\xce\ \x9e\x2e\xbd\x1d\xdf\x08\x02\xe8\xee\xea\x29\x00\x8c\x04\x84\x06\ \x85\xaf\x08\x30\x35\x35\x55\xd0\x2f\x22\xa9\x53\xa7\x4e\x25\xc7\ \xc7\xc7\x2f\x03\x67\x81\x7e\x1d\xec\xae\xb8\x09\x4b\xdf\x76\xda\ \x4f\x26\x85\x01\x40\x08\x40\x61\x5a\xfc\xde\xe0\x60\xba\xbb\xbb\ \x3b\xa5\xdf\x8a\xcc\x24\xd0\x5e\xed\x73\xcd\x61\xed\x9a\x77\x33\ \x6e\x11\x60\x70\xf0\xfd\x74\x5f\x5f\x5f\xfa\xcc\x99\x33\xa6\xc5\ \xa5\xd0\x8f\x78\x02\x89\xb5\x9e\x63\x21\x44\x18\x78\x13\xd8\x4f\ \x69\x73\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa\x2a\x5f\xf2\xd8\x15\x9d\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x19\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x07\xab\x49\x44\x41\x54\x58\xc3\xad\ \x57\x5b\x50\x93\x67\x1a\xf6\xca\xce\xec\xcc\xf6\x62\x2f\xbc\xd9\ \xe9\xce\xec\x6e\xbd\xda\xd9\x9b\xb5\xce\xba\x3b\x7b\xb0\xad\xcc\ \x7a\xb1\xce\xce\x3a\xb3\x76\x54\x70\x75\xdb\xe2\x81\xd6\xb6\x54\ \x04\xbb\xa5\x20\x6d\xc1\x82\x06\x08\x07\x51\x42\x80\x80\x80\x02\ \x21\x81\x10\x92\x40\x48\x10\x73\x24\x21\x67\x72\x80\x04\x42\x20\ \x9c\x09\x47\xb5\x54\x78\xf6\xfb\x7e\x13\x16\x30\x58\x8b\x7d\x67\ \x9e\xf9\x2f\x92\xfc\xcf\xfb\x3e\xcf\xfb\xbe\xdf\x97\x5d\x00\x76\ \xfd\x98\x20\xf1\x0b\x82\x14\x02\x03\xc1\x75\x82\x03\xcf\xfd\xfe\ \x8f\x48\xbc\x9b\x20\xe1\x57\xaf\xef\xb5\x2a\x8c\xd6\x65\xdb\x02\ \x60\x19\x1e\x5b\x09\x27\xf1\x33\xfa\x19\x81\x22\xfc\xdc\x3e\x76\ \x48\x7e\x8a\xa0\xb9\xb6\x59\x1c\x32\xcf\xad\x42\x39\xfe\x1d\x44\ \xf6\x51\xd8\xc7\xe6\xe8\x87\x86\x3d\x7b\xf6\x58\x53\x52\xae\x2c\ \xca\x3a\x3a\x10\x4e\xe2\xe5\x49\xc3\xc4\x31\x04\xb7\x3e\x49\xf9\ \x2c\x60\x9b\x5d\x59\x53\x4d\x03\x4d\xb6\x11\x34\xeb\xfb\x20\x31\ \x79\x60\x19\x9d\xc5\xbb\xef\xbe\x3f\xc5\xab\xbe\x83\xf1\x89\x29\ \x4c\x4f\xcf\xae\x92\xef\xd7\xbc\x74\x02\x11\x9f\x0f\xbe\x1d\xe3\ \xb2\x04\x43\x4f\xb4\x33\x40\x8b\x7b\x06\xcd\x3d\x2e\x34\xeb\xec\ \xa8\x57\xf6\x20\x87\x53\x85\x32\x5e\x35\x43\xbc\xb0\xf4\x90\x81\ \xc1\x60\x5c\x26\xbf\x4b\x7c\xe1\x04\x48\x1c\x24\x38\x41\xfd\xdd\ \xea\x73\x27\xf1\xb9\x27\x04\x48\x87\x97\xc1\xd7\xbb\x20\x22\x55\ \x37\xdc\x37\xa2\xb8\x4e\x88\x2c\x56\x3e\xcc\x56\xdb\x3a\x71\x04\ \x2c\x16\x6b\x2c\xfc\xce\xe7\x27\x10\x91\x36\x93\x95\x3f\x46\x7d\ \xa5\xfe\x12\xc4\x6f\xf4\x59\x31\xb6\x02\x7e\xef\x20\x5a\x7b\x9c\ \xe0\x3f\x30\xa1\x4c\x28\x43\x46\x0e\x1b\xb2\x0e\xf9\x26\xd2\xf9\ \xc5\x65\xcc\x2d\x2c\x21\x34\xbf\x88\xbd\x7b\xf7\x5a\xc9\x3b\x7e\ \xba\x6d\x02\x24\x7e\x43\x90\x46\x3d\x35\x13\x69\x75\xb3\x80\xd2\ \x3f\x0f\xcb\xc4\xe2\x9a\x50\xa1\x5a\xb4\x6c\xf1\x59\xa0\xb6\xa0\ \xa6\x5d\x8d\x2f\xb2\x73\x71\xb7\x9e\xff\x0c\x31\x25\x9d\x09\xcd\ \x63\x62\x6a\x06\x83\x43\x81\x27\xe4\xdd\xbc\x2d\xd3\xb0\x3b\x92\ \x03\x33\x26\xd4\x53\xb5\xd3\xfb\x58\x4f\x88\xc5\x03\x21\x88\x2c\ \x43\x50\xba\x46\xd0\xed\x09\x42\xe5\x9b\x42\x9b\x73\xfc\xa9\xcf\ \x5a\x1b\xee\x2a\x74\xc8\xbc\xc9\x45\x09\xa7\x6c\x93\xcf\x9b\x88\ \x27\xa7\x11\x18\x1d\xc3\x80\x6f\x08\xa2\xd6\xd6\x25\xc2\x51\xdb\ \x28\x12\x87\xc6\x1f\xaf\x82\x2f\x62\x94\x4d\x89\x24\x90\x22\xea\ \x52\x2d\x9a\x42\xab\xe8\x18\x79\x04\xa1\xc5\xcf\x10\x53\x74\xf6\ \x0d\xa3\xd3\xe1\x87\xd4\x3c\x80\x16\xbd\x03\x0d\x5d\x06\x14\xd5\ \x0a\x90\x91\x95\x0d\x2f\x79\xf1\xc6\xaa\xa9\xd4\xb3\x73\x0b\x4c\ \xc5\x94\xd8\xdd\xef\x85\xc9\x62\x05\xb7\xbc\x12\xa5\xe5\x95\x4b\ \x13\xf3\xcb\xab\x23\x0f\x01\x37\xd9\x11\xe6\xd9\x15\x84\x97\x15\ \x13\x06\xcb\x3c\xd0\x68\xf2\xa3\xdd\xee\x5f\x27\x96\x3b\x86\x20\ \xb3\x78\xd7\x7d\xe6\x08\xa4\xf8\x3c\x33\x1b\x2a\x8d\x36\xaa\xdc\ \x53\x33\x21\x8c\x8e\x8d\x33\x15\xd3\x26\xe4\x37\x09\xf1\xc1\xc5\ \x8f\x51\x73\xaf\x01\xbe\x65\x60\xfc\x11\xa0\x23\x13\x23\xf2\xce\ \xa1\xbe\x5d\xb9\xb8\x51\x01\x83\x81\x74\x74\x4d\xa7\x1e\x0a\x67\ \x80\xa9\xb8\xdd\xea\x83\xd8\xe8\x42\x93\xca\xcc\xf8\x7c\xe5\xcb\ \x2c\x88\xda\x24\x51\x89\xa7\x67\xe7\x18\x1b\x86\x86\x47\x60\x77\ \x38\x49\x82\x3a\x24\x7c\xf8\x21\xae\xb3\x0b\xe1\x99\x5c\x80\x6f\ \x09\xd0\x90\xde\xe1\x0f\x2c\x81\xab\x1f\xc4\x7d\xef\x04\xdd\x07\ \x1d\x61\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6\x21\x48\xcc\xfd\x4f\ \x7d\xee\xd4\x22\x9d\x55\x84\xaa\x9a\xba\x4d\x3e\x47\xe4\x8e\xf8\ \x3c\x3c\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2\x62\x9c\x7e\x2f\ \x1e\x3d\x03\x01\xf4\x2f\x02\x83\x84\xbc\xc5\xff\x2d\xee\x3a\x43\ \x28\x51\x91\xf7\xf6\x05\xf1\x4e\xdc\xbf\x7d\x84\x33\x69\xe3\x20\ \x18\xf4\x33\xab\xe0\xc9\x54\x68\x35\x38\xd1\xd8\xdd\x0b\x9e\x58\ \x89\xac\x5c\xf6\x33\x3e\x47\xaa\x9e\x9c\x9e\x65\xe4\xee\xf7\x0e\ \xa2\xd7\x6c\x41\x43\x03\x1f\x27\x62\xe3\x20\xe9\xd6\xc0\x45\xcf\ \x01\x52\x90\x24\xb8\x86\xb2\x9e\x00\x6e\xb4\xdb\x50\xd1\x1b\x44\ \x85\xce\x8b\x4a\x7e\x0b\x6d\xbe\x9b\x5b\x27\xd1\xa0\x99\xf8\x16\ \x65\x22\x05\xee\x29\xf4\x28\x13\xc8\x90\x78\x35\x0b\x1a\xad\x3e\ \xaa\xdc\x63\x13\x93\xf0\x0d\x0d\xc3\x66\xef\x83\xb4\x5d\x8e\xc4\ \x4b\x97\x90\xc3\xca\xc3\xd4\x63\xc0\x4e\x7a\x49\x31\x4e\xfa\x89\ \x94\x7f\x5b\x3b\x84\x7c\x85\x13\x25\x6a\x1f\x4a\xd5\x03\xe8\xf2\ \x30\xa3\x28\x22\xf8\xf9\x33\x09\x74\x8f\x2e\xa1\xa8\xbe\x15\xa5\ \x7c\x09\xb2\x4a\x2a\xf0\xcf\xe3\x71\x51\xe5\xf6\x07\x46\xd1\xe7\ \xf2\x40\xab\x37\x20\xfd\x6a\x06\x92\xbf\x48\x83\xcd\x37\x02\x27\ \xa9\xda\x40\x1a\x4c\xe0\x7b\x88\x52\x9d\x1f\x45\xdd\xfd\x0c\x71\ \x41\x97\x1b\xc5\xdd\x1e\x88\x9c\x41\xfc\xf9\xcd\xb7\x5d\x84\xeb\ \x6c\xb4\x43\xd0\x28\xf7\x4e\x23\xa7\xfc\x1e\xb2\x4b\xab\xf1\x51\ \xea\x57\x48\xfe\x6f\xea\xfa\x58\x51\xb9\x47\x82\xe3\xf0\x0c\xf8\ \x60\x34\x99\x51\xc9\xab\xc2\xfb\x67\xcf\x41\xfe\x40\x03\x3f\xe9\ \x6e\xb2\x8d\x19\xb9\x6f\x69\x06\x19\xd2\x9b\x2a\x2f\x72\xe5\x0e\ \xe4\x75\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca\x29\xc2\x53\ \xb8\xdd\x29\xdc\x2b\x76\x04\x90\x51\xc8\xc5\x95\x6b\x79\x38\x11\ \x9f\x80\x9b\xb7\x6e\x33\x63\x15\x91\xdb\x6a\x73\x40\x22\x6d\xc7\ \x85\x84\x0f\x50\x74\xbb\x0c\xf3\x2b\x80\x9f\x34\x58\xf7\x24\x20\ \x1c\x7c\x84\x4a\xd3\x18\x38\xfa\x61\x86\x9c\x56\xfd\x55\xb3\x1e\ \xac\x0e\x3b\xb8\x3a\x1f\xd9\x21\x1e\x7a\x2f\xe0\x13\xbc\xba\x5d\ \x02\x26\xbe\xc1\x83\x94\x6f\xd8\x38\x9f\x9c\x8a\x03\x7f\x3d\x04\ \x63\xaf\x99\xe9\x6e\x2a\xb7\x46\xd7\x83\xa4\xcb\xc9\x48\xff\x3a\ \x8b\x8c\xd5\x3c\x53\xb5\x71\xf6\xa9\xdc\x35\xf6\x69\x5c\x97\x59\ \x19\xd9\xbf\x6e\x21\xa7\xa0\xd4\x82\x74\xbe\x1a\x57\x9b\x34\x60\ \xc9\xcc\x10\xbb\x82\xf8\xe5\xaf\x5f\xa7\x67\xc0\x3b\xe1\x75\x1f\ \x35\xcc\x35\xdd\x66\x7c\x94\x96\x85\xb8\x73\x17\xf1\x97\x43\x31\ \x4c\xd5\x74\x99\xf0\xaa\xaa\x71\xfa\xf4\x19\x68\xcc\x0e\x8c\x92\ \x2d\x36\x14\x1e\xab\x5a\xc7\x0c\x78\xe6\x71\x70\x0d\x23\x4c\xa3\ \x65\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6\x5e\x94\x74\x39\xd0\x66\xf7\ \xaf\x1e\x3d\x11\x4b\x47\x2e\x6f\xc3\x79\x13\x35\x2c\x5c\x99\x1a\ \xf1\x97\x3e\xc7\xd1\xd8\x33\xf8\x38\x31\x09\x86\x5e\x13\x1a\x9b\ \x04\xf8\xdd\x1b\xfb\x51\x4f\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\ \x93\x60\x2b\x5d\x0c\x39\xf5\xbc\xf0\xbe\x67\xbd\xea\xcc\x16\x3d\ \x4a\x55\x1e\x08\x6d\x01\x94\xd4\xf1\x43\xe1\x65\x53\x40\xf0\xca\ \xf7\x25\x60\x2b\x6e\x6a\xc7\xa9\x84\x44\xc4\x1c\x39\x8a\xdc\x7c\ \x36\x5a\x5a\xc5\x38\x14\x13\x83\x2f\x39\x35\xc8\x14\x6a\x98\xe6\ \xa2\xd5\xd2\x27\xf5\x9a\x7a\x4c\x13\xa1\x49\x64\xb7\x99\x90\xdb\ \x6e\x46\xb9\xda\x8d\x06\xa5\x76\x39\x2c\x39\x3d\xf9\x4e\x13\xec\ \xd9\x72\xd4\x47\x0d\x3b\xab\x46\x88\x63\xff\x39\x8f\xdf\xee\xfb\ \x3d\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17\x70\xa3\xad\x07\x19\ \xc4\x4f\x4a\x14\xe9\x6e\xba\x58\xa8\xef\x2c\xfa\x94\x98\x50\x28\ \xb7\x40\xe9\x0e\x3c\xf9\x57\xec\x29\x2a\x77\x2d\xc1\x67\x04\xfb\ \xb6\xb9\xe4\x44\x8d\xbe\xcc\xb2\x5a\xfc\xe3\xe4\x19\x1c\x3c\xf4\ \x37\xb0\x72\xf3\xb0\xef\xc0\x1f\x50\x20\xd1\x21\x89\x27\x65\x2a\ \xa6\x4b\x85\x3e\xbf\x21\xd5\x46\xe4\x2e\x90\x5b\x21\xb0\x0c\xae\ \xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87\x6f\x3c\xaf\x3c\xe7\x96\x15\ \x35\x9c\x69\x45\xe5\xf8\xfb\xb1\x58\x1c\x3f\x19\x87\x37\xf6\xef\ \xc7\x8d\x3a\x11\x92\xab\xa4\x0c\x21\xed\x70\xea\x35\x55\x21\x8b\ \x34\x5b\xc9\x03\x37\x2a\x34\x6e\xd4\x49\x3a\x17\xc3\x72\x73\x08\ \x8e\x6d\x95\xfb\x87\x24\xe0\x4a\x65\x73\x70\xe4\xf8\x29\x1c\x3e\ \x7c\x98\x8c\x63\x2e\x32\x05\x2a\x5c\x22\xd5\xd3\x5d\x7e\x4d\xdc\ \x0b\x36\xe9\x74\x76\xa7\x1d\x77\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\ \x1a\x95\xfb\x22\xbd\x49\xfd\x80\x0b\x6d\xf4\x04\x32\x4a\x78\x4c\ \x0f\x9c\x4b\x49\xc3\xb5\xa6\x2e\x7c\xc2\x6d\x65\x36\x59\xf1\x83\ \x01\x5c\x97\x9a\xc1\x51\x7b\x20\xf3\x04\xd7\xce\x25\x26\x05\x36\ \xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce\x5e\x4e\x45\x81\ \x58\x85\x78\xf6\x5d\x5c\xa9\x55\x90\xaa\xfb\xc0\x96\xdb\x50\xad\ \x75\xe3\xae\x54\x41\x2f\x10\xca\x0d\x72\xbf\xba\xd3\x6a\xa3\x05\ \xb7\xa2\x51\xf8\x1d\xaf\x43\x8d\x4f\xb9\x2d\x88\xcb\xe6\xe1\x9a\ \x48\x8f\xaa\x1e\x2f\x9a\x35\xe6\xc7\x7f\x7a\xf3\x2d\x57\x78\xac\ \xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5c\x75\x1f\xde\xcb\ \xaf\x45\xb9\x76\x00\x32\x67\x60\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\ \xd2\xa9\xdc\x3b\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9d\x50\ \x0b\x39\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3\x2f\x22\xf7\x0e\ \xff\xda\x6d\x8a\xdd\x61\x99\xd5\x1b\xb6\xd8\x6b\xbb\x5e\x32\xbe\ \x2f\x89\xff\x01\x66\xb9\x5f\xfc\x11\x80\x3d\xcf\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x04\xca\x57\xa7\ \x00\x6e\ \x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\x7c\x5a\x07\ \x00\x63\ \x00\x6f\x00\x70\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0a\xc7\x57\x87\ \x00\x63\ \x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x08\xc8\x58\x67\ \x00\x73\ \x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\xa8\xba\x47\ \x00\x70\ \x00\x61\x00\x73\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\xc1\x59\x87\ \x00\x6f\ \x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x03\x58\ \x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\xdd\ \x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xc5\ \x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x12\x6c\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x08\x96\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/mainwindows/menus.py0000755000076500000240000002620412536324427021641 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() widget = QtGui.QWidget() self.setCentralWidget(widget) topFiller = QtGui.QWidget() topFiller.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self.infoLabel = QtGui.QLabel( "Choose a menu option, or right-click to invoke a context menu", alignment=QtCore.Qt.AlignCenter) self.infoLabel.setFrameStyle(QtGui.QFrame.StyledPanel | QtGui.QFrame.Sunken) bottomFiller = QtGui.QWidget() bottomFiller.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) vbox = QtGui.QVBoxLayout() vbox.setMargin(5) vbox.addWidget(topFiller) vbox.addWidget(self.infoLabel) vbox.addWidget(bottomFiller) widget.setLayout(vbox) self.createActions() self.createMenus() message = "A context menu is available by right-clicking" self.statusBar().showMessage(message) self.setWindowTitle("Menus") self.setMinimumSize(160,160) self.resize(480,320) def contextMenuEvent(self, event): menu = QtGui.QMenu(self) menu.addAction(self.cutAct) menu.addAction(self.copyAct) menu.addAction(self.pasteAct) menu.exec_(event.globalPos()) def newFile(self): self.infoLabel.setText("Invoked File|New") def open(self): self.infoLabel.setText("Invoked File|Open") def save(self): self.infoLabel.setText("Invoked File|Save") def print_(self): self.infoLabel.setText("Invoked File|Print") def undo(self): self.infoLabel.setText("Invoked Edit|Undo") def redo(self): self.infoLabel.setText("Invoked Edit|Redo") def cut(self): self.infoLabel.setText("Invoked Edit|Cut") def copy(self): self.infoLabel.setText("Invoked Edit|Copy") def paste(self): self.infoLabel.setText("Invoked Edit|Paste") def bold(self): self.infoLabel.setText("Invoked Edit|Format|Bold") def italic(self): self.infoLabel.setText("Invoked Edit|Format|Italic") def leftAlign(self): self.infoLabel.setText("Invoked Edit|Format|Left Align") def rightAlign(self): self.infoLabel.setText("Invoked Edit|Format|Right Align") def justify(self): self.infoLabel.setText("Invoked Edit|Format|Justify") def center(self): self.infoLabel.setText("Invoked Edit|Format|Center") def setLineSpacing(self): self.infoLabel.setText("Invoked Edit|Format|Set Line Spacing") def setParagraphSpacing(self): self.infoLabel.setText("Invoked Edit|Format|Set Paragraph Spacing") def about(self): self.infoLabel.setText("Invoked Help|About") QtGui.QMessageBox.about(self, "About Menu", "The Menu example shows how to create menu-bar menus " "and context menus.") def aboutQt(self): self.infoLabel.setText("Invoked Help|About Qt") def createActions(self): self.newAct = QtGui.QAction("&New", self, shortcut=QtGui.QKeySequence.New, statusTip="Create a new file", triggered=self.newFile) self.openAct = QtGui.QAction("&Open...", self, shortcut=QtGui.QKeySequence.Open, statusTip="Open an existing file", triggered=self.open) self.saveAct = QtGui.QAction("&Save", self, shortcut=QtGui.QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) self.printAct = QtGui.QAction("&Print...", self, shortcut=QtGui.QKeySequence.Print, statusTip="Print the document", triggered=self.print_) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", statusTip="Exit the application", triggered=self.close) self.undoAct = QtGui.QAction("&Undo", self, shortcut=QtGui.QKeySequence.Undo, statusTip="Undo the last operation", triggered=self.undo) self.redoAct = QtGui.QAction("&Redo", self, shortcut=QtGui.QKeySequence.Redo, statusTip="Redo the last operation", triggered=self.redo) self.cutAct = QtGui.QAction("Cu&t", self, shortcut=QtGui.QKeySequence.Cut, statusTip="Cut the current selection's contents to the clipboard", triggered=self.cut) self.copyAct = QtGui.QAction("&Copy", self, shortcut=QtGui.QKeySequence.Copy, statusTip="Copy the current selection's contents to the clipboard", triggered=self.copy) self.pasteAct = QtGui.QAction("&Paste", self, shortcut=QtGui.QKeySequence.Paste, statusTip="Paste the clipboard's contents into the current selection", triggered=self.paste) self.boldAct = QtGui.QAction("&Bold", self, checkable=True, shortcut="Ctrl+B", statusTip="Make the text bold", triggered=self.bold) boldFont = self.boldAct.font() boldFont.setBold(True) self.boldAct.setFont(boldFont) self.italicAct = QtGui.QAction("&Italic", self, checkable=True, shortcut="Ctrl+I", statusTip="Make the text italic", triggered=self.italic) italicFont = self.italicAct.font() italicFont.setItalic(True) self.italicAct.setFont(italicFont) self.setLineSpacingAct = QtGui.QAction("Set &Line Spacing...", self, statusTip="Change the gap between the lines of a paragraph", triggered=self.setLineSpacing) self.setParagraphSpacingAct = QtGui.QAction( "Set &Paragraph Spacing...", self, statusTip="Change the gap between paragraphs", triggered=self.setParagraphSpacing) self.aboutAct = QtGui.QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=self.aboutQt) self.aboutQtAct.triggered.connect(QtGui.qApp.aboutQt) self.leftAlignAct = QtGui.QAction("&Left Align", self, checkable=True, shortcut="Ctrl+L", statusTip="Left align the selected text", triggered=self.leftAlign) self.rightAlignAct = QtGui.QAction("&Right Align", self, checkable=True, shortcut="Ctrl+R", statusTip="Right align the selected text", triggered=self.rightAlign) self.justifyAct = QtGui.QAction("&Justify", self, checkable=True, shortcut="Ctrl+J", statusTip="Justify the selected text", triggered=self.justify) self.centerAct = QtGui.QAction("&Center", self, checkable=True, shortcut="Ctrl+C", statusTip="Center the selected text", triggered=self.center) self.alignmentGroup = QtGui.QActionGroup(self) self.alignmentGroup.addAction(self.leftAlignAct) self.alignmentGroup.addAction(self.rightAlignAct) self.alignmentGroup.addAction(self.justifyAct) self.alignmentGroup.addAction(self.centerAct) self.leftAlignAct.setChecked(True) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.newAct) self.fileMenu.addAction(self.openAct) self.fileMenu.addAction(self.saveAct) self.fileMenu.addAction(self.printAct) self.fileMenu.addSeparator() self.fileMenu.addAction(self.exitAct) self.editMenu = self.menuBar().addMenu("&Edit") self.editMenu.addAction(self.undoAct) self.editMenu.addAction(self.redoAct) self.editMenu.addSeparator() self.editMenu.addAction(self.cutAct) self.editMenu.addAction(self.copyAct) self.editMenu.addAction(self.pasteAct) self.editMenu.addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) self.formatMenu = self.editMenu.addMenu("&Format") self.formatMenu.addAction(self.boldAct) self.formatMenu.addAction(self.italicAct) self.formatMenu.addSeparator().setText("Alignment") self.formatMenu.addAction(self.leftAlignAct) self.formatMenu.addAction(self.rightAlignAct) self.formatMenu.addAction(self.justifyAct) self.formatMenu.addAction(self.centerAct) self.formatMenu.addSeparator() self.formatMenu.addAction(self.setLineSpacingAct) self.formatMenu.addAction(self.setParagraphSpacingAct) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/mainwindows/README0000644000076500000240000000157612536324427021022 0ustar philstaff00000000000000All the standard features of application main windows are provided by PyQt. Main windows can have pull down menus, tool bars, and dock windows. These separate forms of user input are unified in an integrated action system that also supports keyboard shortcuts and accelerator keys in menu items. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/mainwindows/recentfiles.py0000755000076500000240000002103012536324427023005 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # These are only needed for Python v2 but are harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QMainWindow): MaxRecentFiles = 5 windowList = [] def __init__(self): super(MainWindow, self).__init__() self.recentFileActs = [] self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.textEdit = QtGui.QTextEdit() self.setCentralWidget(self.textEdit) self.createActions() self.createMenus() self.statusBar() self.setWindowTitle("Recent Files") self.resize(400, 300) def newFile(self): other = MainWindow() MainWindow.windowList.append(other) other.show() def open(self): fileName = QtGui.QFileDialog.getOpenFileName(self) if fileName: self.loadFile(fileName) def save(self): if self.curFile: self.saveFile(self.curFile) else: self.saveAs() def saveAs(self): fileName = QtGui.QFileDialog.getSaveFileName(self) if fileName: self.saveFile(fileName) def openRecentFile(self): action = self.sender() if action: self.loadFile(action.data()) def about(self): QtGui.QMessageBox.about(self, "About Recent Files", "The Recent Files example demonstrates how to provide " "a recently used file menu in a Qt application.") def createActions(self): self.newAct = QtGui.QAction("&New", self, shortcut=QtGui.QKeySequence.New, statusTip="Create a new file", triggered=self.newFile) self.openAct = QtGui.QAction("&Open...", self, shortcut=QtGui.QKeySequence.Open, statusTip="Open an existing file", triggered=self.open) self.saveAct = QtGui.QAction("&Save", self, shortcut=QtGui.QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) self.saveAsAct = QtGui.QAction("Save &As...", self, shortcut=QtGui.QKeySequence.SaveAs, statusTip="Save the document under a new name", triggered=self.saveAs) for i in range(MainWindow.MaxRecentFiles): self.recentFileActs.append( QtGui.QAction(self, visible=False, triggered=self.openRecentFile)) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", statusTip="Exit the application", triggered=QtGui.qApp.closeAllWindows) self.aboutAct = QtGui.QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.newAct) self.fileMenu.addAction(self.openAct) self.fileMenu.addAction(self.saveAct) self.fileMenu.addAction(self.saveAsAct) self.separatorAct = self.fileMenu.addSeparator() for i in range(MainWindow.MaxRecentFiles): self.fileMenu.addAction(self.recentFileActs[i]) self.fileMenu.addSeparator() self.fileMenu.addAction(self.exitAct) self.updateRecentFileActions() self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) def loadFile(self, fileName): file = QtCore.QFile(fileName) if not file.open( QtCore.QFile.ReadOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "Recent Files", "Cannot read file %s:\n%s." % (fileName, file.errorString())) return instr = QtCore.QTextStream(file) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) self.textEdit.setPlainText(instr.readAll()) QtGui.QApplication.restoreOverrideCursor() self.setCurrentFile(fileName) self.statusBar().showMessage("File loaded", 2000) def saveFile(self, fileName): file = QtCore.QFile(fileName) if not file.open( QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "Recent Files", "Cannot write file %s:\n%s." % (fileName, file.errorString())) return outstr = QtCore.QTextStream(file) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) outstr << self.textEdit.toPlainText() QtGui.QApplication.restoreOverrideCursor() self.setCurrentFile(fileName) self.statusBar().showMessage("File saved", 2000) def setCurrentFile(self, fileName): self.curFile = fileName if self.curFile: self.setWindowTitle("%s - Recent Files" % self.strippedName(self.curFile)) else: self.setWindowTitle("Recent Files") settings = QtCore.QSettings('Trolltech', 'Recent Files Example') files = settings.value('recentFileList', []) try: files.remove(fileName) except ValueError: pass files.insert(0, fileName) del files[MainWindow.MaxRecentFiles:] settings.setValue('recentFileList', files) for widget in QtGui.QApplication.topLevelWidgets(): if isinstance(widget, MainWindow): widget.updateRecentFileActions() def updateRecentFileActions(self): settings = QtCore.QSettings('Trolltech', 'Recent Files Example') files = settings.value('recentFileList', []) numRecentFiles = min(len(files), MainWindow.MaxRecentFiles) for i in range(numRecentFiles): text = "&%d %s" % (i + 1, self.strippedName(files[i])) self.recentFileActs[i].setText(text) self.recentFileActs[i].setData(files[i]) self.recentFileActs[i].setVisible(True) for j in range(numRecentFiles, MainWindow.MaxRecentFiles): self.recentFileActs[j].setVisible(False) self.separatorAct.setVisible((numRecentFiles > 0)) def strippedName(self, fullFileName): return QtCore.QFileInfo(fullFileName).fileName() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/0000755000076500000240000000000012536324427020710 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/images/0000755000076500000240000000000012536324427022155 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/images/copy.png0000644000076500000240000000247212536324427023642 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<ÌIDATXõ—]L[eÆwo¼ÙåI q×&ãN¸pÑ…D½Pãå+.&J'†ª‹™àТl†9ܘ€@l¦CÊ +ƒ(ÌÚÑ–ÒÒJ{ú¥ÐïßÿÛÇÌ*‡“<9o!œç÷<ïG‡ÊFϽúé»LZ&aj`ÊÙéyÙš?]Pò¥Áé§WÃ@0„¢­Ç2Š'X"s¿ykÚKr{ç¬ÚØÈ˜@„™…ã‘1)Ka%”D8šBs‡Æ¾Äÿ“y$ñÈX’Ï„]ŒÂå "K£ôÃïM4uY°ëØ6Õž:ü̹ç_.?VžEEU *™Þ¯­Ã±‰Ç¬¶%ü¹è‡kXöÆÒ¯œ¾pŸAÙ€]‡™ŠŠŠÌ’Z[[ݤ¯U­þ¯Tߦ195…Ù¹9è&&PPP€!Ío|ÞI¦ù̘\ÀáOAô…ðC¯ÎÍjöPCfØåŠÇãðz½H§Ó˜œœDee5fg¼ftÓ@2-xðÝQ¬ápF£‘S©~êíEã'Ÿa†A8–ÜPwuãLC#Î5Çí‘q\¼>,/ÀÆÆôzýc@}}ýP2ˆÐFf› ‚Áˆ©¬—ºdn€¦Ø:Ø~E"”+*0®@çmWÚª4¾|Sæ5@f:ÃÃÃèeõ÷÷÷C«Õ¢ªºcwõ*wí¶Ú»e y·ÛíBgg'zzz8PIiniõ×o°ùg¸Ð%3ÀÖÖß @¢(Âï÷cmm §•Ðü®ç©É|Á ˜=@›ÜÛA677ùv¤VÕèûUà©Gç;€Ì%€$3O$(+¯â¸‹˜ 6ZÕ0ÿ˜'“<=MIÉ©J ·³‰=Åø0±|qõ¤êɘ‹ÅP¦¨‚zHÀ˜¸k朙ûçWdÒSjˆF£Ü< ¡¸´×Üf‡ä dÄ(;dH=œs™Ó¹@ ÅeU¸Ø- :c®}ià£v™þ]=¥&­®®rˆ·J*p¹WÀ=¸~žîÌg.í@ªD‹Ž’ÓqLß+++X__ç'Yßt PO¿Ìe¸24ì§ÉXÚëdNi)9D@õÓÏÞ|[–ëO~u¸qøq,ž~½Nm¦7ª¬žd,m72%Ñ#òäÌ'hï ¼f[O5âÉxG•JŤ.Í7RR:÷)µÃáà"ãÅÅEõâñ—\ô¹“é®---né`¡ÔÒ— ———áóù`³Ùø}ii‰C ͲТ’R“éNßxT;5`µZyõÔ ýÎ`0$òòòî³gÙ@SS“[šgJO"ªšÆ‹™7@ŸGGG#mmmÞüü|ûÛA¦²½šÿ'@ss3ŸJGT?U???ÏëÖh4‘ºº:çô]L0ÍÆxG¥Rév:¼bJJo>”´¾¾Þ™““#™gSuVn‹Å‚Hmm­377WVÓÝøFLÂA™n×ßC9V…pÈIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/images/cut.png0000644000076500000240000000245312536324427023462 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<½IDATXÃíWkL“W>#qÉ2é—¨Te8ö‡2“f,[pÄ0ÿ`¢.:Nº1‰[³€Ù „X‹…²‚•^äf Ž1øÃFË-ܨ·ji‘ò¯ ܸ aÙ²“<í—ó}ýÞç¼ïó^J€ü“ ÿ t (DÙq+F€®ÝdÝÆf"Lø•Ä‹GÈ¡Ó÷ÈŽ—;82a+A …œ¾0H.Ý€@2«yMô¾ûrhd‘^£Qôî…GõнƒËM ›ö@t/½2= ‰?H¥,Œ1yÁ»ˆKÆ×Æ& ¹ýBþÅ+6FŒ\N“§§§ ÌÓ9¹˜c6 Òä£+A Œ)ž*ß7GëÜ{µÌ‰ž@D–Tƒ+, 6FHõd*{.Tø7¿À4*TßbˆRÕ,XtzEUõÈ mtÂÔs÷!¾sQ•®ÐÏ唃‡´žÌ.Ôݯ™Ë°¯¯¯>¿Ò`µÛí€øyä>Ä^«´¹ˆ/†€'ÓÀgùŽõ`×^3ºvÚsîhØÇÇGŸ««° Á‡²ö.ç–7÷wsaؽè^€/fš †ß©6B÷ðØŸÔϥ犘-~þm—Tk__¸ÐÑsbrVNć—ÔŒ0é·8@¤Ö1ž…›~m©%[—Ù æ. ó$ß6Ž{½ÑÍBÈ o©<ѽV«w„ó’\»R©„úúz0™L uß5ÁQ±dÉQD>¶vÌ´@O“_~ÓÖßß2™ D"¨T*J¥ Ñh K[9¾é•à¸S¯y,ó—Ž"žÇ†æS)ö‚‚æâ   àñx`±X@[^ûÏ& -¦SÎg”Ï Lƒâ[{æÂ`š² ˆÅbÈÌÌ„¢¢"P«ÕÐÙÙÉ`ìþɹÉÛ§u.·ÏK€®·Ø)pÀj—¬xˆÊ‚â)‰>—+![–cãG„&Ø’rdŽo¿£Ñ-­-ðËÀ 8ñ¾³bÁ\i„……„FÜ&ç2¬,Ï3µì;ãºÓ3¯‚åþz‰žÞüb÷<’{f«O[Ê5íXCC=444€¥·2ÅÃóéÀe<’å(ž6]åœ*2x}ôƒ.Zl1 %êq÷/Ë'ï‡_þÓäD LhôÉ>u• ´··Ãׯ–1® fñ6m8hí÷*>]åXªñGZõ¶Y ³CÉ‘8 9ù©–!ú\ ϳÿÿ7üOøç‡¹DÃÏIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/images/new.png0000644000076500000240000000152412536324427023456 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<æIDATXÃÕ—ÍNa†ë5”•{qáÒÄà¸â\¸ô\±0ê–&bX¸°‘X Ñ¿‰¤±R¤HE”þÐCÿ¦¦e€ãy{ú…QJ‚É!†IÞœ3§óÍûœóM›N„ˆ"ÿS‘sÀÇÕnÿ¥û¬Ç==d ©ð12<<¼j4::ºV<¯&“ÉV:v‰Dk`` Íknh¤8Òááq™ºï·É²,Úßß'†ñxÍëŠ@?ó°Ç¥Lf¹ Åb±:¯{pˆSww²lÛ¡ùùÏd×uéùÄDB&{Áɪ7JÎÍSøp]‹T‚@gOÎí¦Ggféõ›·Ÿœ¤©©iz÷þE£Ñe^AÀïí¶%†…šã”]ÍÑäô+z2þ”žÅ^ÐLb‹UÚõ <ÿjÍ67«”/nS‰c·…×~QðyÌÍ]µÇ{ÛîŸ;¾äˆ]¸½îâ”Ê3àuäÆuWbØ9êæ3DÔ§àô:­9"˜˜hr€˜kPS*-¹1âNSŒ òmû(¶|E›;ÛjüiŽûÅS(ðC¸fI÷kùR‡×¾TÈUºN­K¯…Þ·Â’=O¦³Þ£±qëÚÐõ˜³n©l4¤kÿàZSÔ Yoäî½â¥ÁËK|mŒu‡5¨ú·ÝeÙ<þžÏ7½Éºx&oFhòÿ™”žé?¿BÓôü½œž¥~Ql%¡’• wIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/images/open.png0000644000076500000240000000403112536324427023622 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<«IDATXíW[P“göÊÎìÌöb/¼ÙéÎìn½ÚÙ›µÎº;{°­Ìz±ÎÎ:³vTpuÛâÖ¶T»¥ mÁ‚QB€€€!’@Hs$!gr€B œ GµTxöû~0X‹}gžù/’üÏû>Ïû¾ß—]vý˜ ñ ‚Áu‚ÏýþH¼› áW¯ïµ*ŒÖeÛ`[ 'ñ3ú"üÜ>vH~Š ¹¶Y2Ï­B9þDöQØÇæè‡†={öXSR®,Ê::NâåIÃÄ1·>Iù,`›]YSMM¶4ëû 1y`Å»ï¾?Å«¾ƒñ‰)LOÏ®’ï×¼tŸ¾ã²CO´3@‹{Í=.4ëì¨Wö ‡S…2^5C¼°ôÁ`\&¿K|áH$8AýÝês'ñ¹'H‡—Á×» "U7Ü7¢¸Nˆ,V>ÌVÛ:q,k,üÎç'‘6“•?F}¥þÄoôY1¶~ï Z{œà?0¡L(CF²ù&ÒùÅeÌ-,!4¿ˆ½{÷ZÉ;~ºm$~CF=5iu³€Ò?ËÄâšP¡Z´lñY ¶ ¦]/²sq·žÿ 1% ÍcbjƒC'äݼ-Ó°;’3&ÔSµÓûXOˆÅ!ˆ,CPºFÐí Bå›B›sü©ÏZî*tȼÉE §l“Ï›ˆ'§Ào¢ÖÖ%ÂQÛ(‡Æ¯‚/b”M‰$"êR-šB«èy¡ÅÏStö £Óá‡Ô<€½ ]Õ ‘• /yñƪ©Ô³s LÅ”ØÝï…Éb·¼¥å•KóË«#7ÙæÙ„—Ë<Ðhò£Ýî_'–;† ³x×}æ¤ø<3*6ªÜS3!ŒŽ3Ó&ä7 ñÁÅQs¯¾e`ü ##òΡ¾]¹¸QƒttM§ g€©¸ÝêƒØèB“ÊÌø|åË,ˆÚ$Q‰§g熆G`w8I‚:$|ø!®³ á™\€o ÐÞá,«Ä}ïÝaëÿŸÀ¹ö!HÌýO}îÔ"U„ªšºM>GäŽø<<„ÓݽÁˆÂâbœ~/=ô/ƒ„¼Åÿ-î:C(Q‘÷öñNÜ¿}„3iã ô3«àÉTh58ÑØÝ žX‰¬\ö3>Gªžœžeäî÷¢×lAC'bã éÖÀEÏR$¸†²žn´ÛPÑD…΋J~ m¾›['Ñ ™øe"î)ô(Èx5 ­>ªÜc“ð Ãf]ŽÄK—ÃÊÃÔcÀNzI1Nú‰”[;„|…%jJÕèò0£("øù3 t.¡¨¾¥| ²J*ðÏãqQåöFÑçò@«7 ýj’¿HƒÍ7'©Ú@Là{ˆREÝý qA—Å݈œAüùÍ·]„ël´CÐ(÷N#§ü²K«ñQêWHþoêúXQ¹G‚ãð ø`4™QÉ«ÂûgÏAþ@?én²¹oiÒ›*/råäuö¡ð¾•ùœÊ)ÂS¸Ý)Ü+vQÈÅ•ky8Ÿ€›·n3c‘Ûjs@"mÇ…„Pt» ó+€Ÿ4X÷$ |„JÓ8úa†œVýU³¬;¸:Ù!z/༺]&¾Áƒ”oØ8ŸœŠ=c¯™én*·F׃¤ËÉHÿ:‹ŒÕÇÑØ3ø81 †^›øÝûQOÔñ™îšª­“`+] 9õ¼ð¾g½êÌ=JUm”ÔñCáeS@ðÊ÷%`+njÇ©„DÄ9ŠÜ|6ZZÅ8ƒ/95Èj˜æ¢ÕÒ'õšzL¡Id·™ÛnF¹Ú¥v9,9=ùNìÙrÔG ;«Fˆcÿ9ßîû=ùœ¿€“ñp£­ÄOJénºX¨ï,ú”˜P(·@é<ùWì)*w-Ágû¶¹äD¾Ì²Züãä<ô7°ró°ïÀP Ñ!‰'e*¦K…>¿!ÕFä.[!° ®åÜâÒä‡o<¯<ç–5œiEåøû±X?‡7öïÇ:’«¤ !ípê5U!‹4[É7*4nÔI:ÃrsŽm•û‡$àJespäø)>|˜Œc.2*\"ÕÓ]~MÜ 6étv§wŒäˆ¶ùž„·•û"½Iý€ mô2JxLœKIõ¦.|Âme6Yñƒ\—šÁQ{ ó×Î%&6ÈýÇÈÕ‚ÜÎ^NEX…xö]\©UªûÀ–ÛP­uã®TA/Ê r¿ºÓj£·¢Qø¯CO¹-ˆËæášHª/š5æÇzó-Wx¬¨Ü¯½¬ÜÑâÝ\uÞ˯E¹v2g`õ§—©Ü÷Ò©Ü;øóÂñ‚ÊîP 9”¸ ÂÈ£‡Ã/"÷ÿÚmŠÝa™Õ¶Øk»^2¾/‰ÿf¹_ü€=ÏIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/images/paste.png0000644000076500000240000000315512536324427024003 0ustar philstaff00000000000000‰PNG  IHDR szzô4IDATx^­—[lTÇÆsÎÙ‹½öú ¾²ic$BJ!"¡-•b¥/îKh+•¦U¥Æ`UªÚ´ªúV UÊ”'Ú„)­Ä‹¥RƒyÅ9iÓ„š›cjì²;»öz½»Þ³g¦Ãh…årlˆÉ'}úŸ‡ý~óŸ™sJ)‚$„xxžÇkH)õwÖ(' ¸C»h—R¾ÆcdYÖö»@·9ÿ&ü·íõâ`]DDnΉŠ+W®P]S@ Pe(A)fÓi^©/¼´Nl;ñ¹Gƒ|[CL;…D•2â¶Ä¶!!p>SlŒ;€D*ðœàË@P4`ÄHiŸ$Nœ8!Ò‡––g emå(¥´AXW%âØDBÃs\¼=A÷XŽ\$¾©½}÷ï-ËZܱcGYUU•ÓØØ~à†††Ð¥K—Ü®®®ðÖªDU,ÂsÕ1òžO¡(‘Ja Aرˆ†lær¢Ž?Ÿÿ+ M"Àf–„ïûxžGuuµžPKôêÕ«‡„(¥ÞZÀ²A¶-Ú¶8¤XÂŒL¹ì{õ;Ô76|/Á„g2ÊËËÍf>vìØ&½.A,ÐÙÙ©:¤l!Y¶-ÇÆBP´ÍDzˆ8–®`YxÀÜÜ555 räÈ‘ÍÀˆ¢Çb¹°mt0fË#6±¨£Ç,2‹“™c©yîÌ.èßErù<«È,A6›5§féÿm8°èX ´tŽ áÀSб¤ËŒƒÓ²—¦}¯³µã¬Ûû: /´sûÎ$ýýý$“I”Ræúøñã躬3çÎãèÑ£>|˜ÞÞ^‰„,¡ÜíÿÎæøç”OkÇÏøæ/ß&öõ7™|¦ƒkþ.®ñ-dk­{N^VsúogÑwMîÜâ¯vrýúu gkÖ?‹™ëx<Žã8%8À#–%˜ÊA:ÞÊþß½MÕ®×(„bÛBY‚lArf‘Oîf¸êrúadÕ^®Üg2ׯ…î›í‡¡ÍÍÍ´µµ755¡¡ ƒFÜqßÿéo¨lØHâì;L^É”±µy›[¶óIy%c —ÏfòÜÎ2¡íˆ L'çØ·+Êú%3{=kêêêÌu*•2J+ ¹Zpác(,ÊæÆÙR”’{Ã}$eÛÚLMÛË|<œfÒ_ÀÍx,Ìk/x µt:B¡ -ÝêŽ*ø>`ÁƸ P#‹S·¥–’xv}é¬ÇhÿŸ˜®¼LËöƒ¸ a¼‚¤X”xÚ!ÇB-ª€ãi –ÕÖÇC„Ê#ü¿jc!ž© sá߃ìÙùÊ£¹2G(akK!¥%0*¤\@X¥*Ìõ#úpl†ñYïýúÜÊÔàD\¢Ï“=Ó¥RòPjYVL vùÕ_†½·€=“gÓº2òy_»hêίÔpùÝà%žx L¸<¢Ö/Uò‡>ÏõO3D·±óÅ—Y\N`ŽÛS(À%mÔR}±µ–Ý[ât¿—¥j÷WùÑo µ˜µ7ÕØÒËSpSxó3³i %ýÕ‚Öðð)çãç3æu¨ÖË÷‰Á3}ú×rŒ²7Dzþ­”Ìo÷DTØ_p’ ý×=?ý~B¦Ïßöïîv;ü’¨ãsÊu]pWí@2« ~*Ó½·üÔÍi9ô—th¿¢Ó¶í¯}ž%XXXðÒ'Ožœºƒ>IÊ­ã³*×;â§nLËÑRèYt‹= ÀÐÐÛÓÓ“ÒNÏÎΞ.½ßèîê)Œ„…¯055UÐ/"©S§N%ÇÇÇ/g~쮸 KßvÚO&…@@aZüÞà`º»»;¥ßŠÌ$Ð^ísÍaíšw3n`pðýt___úÌ™3¦Å¥Ðx‰µžc!DxØOis´ø±ú½ú*_òØIEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/images/save.png0000644000076500000240000000224312536324427023622 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<5IDATXÃå—ÍTEÅ·êÖ{¯ÛnÇù@‰FM4™DH˜ÄŒþL\ñ.M\kXÃŽÄ΂htA\ âÄÆ=`PQ`¢ ƒÓý^÷”‹ªîù`æ „QVR©Î{·ëž:÷Ô©zê½ç~6å>·>€]»v½ìýòN5ëػ」;vœ<:ÏÌ—7XœïÜS¦Ú òÜk¼¸g€‹|øî€Ûpüìß?0x.ý¸Àþ·ÎoËryš #–ÓŸdüÕ}›k@E°@xp,#˲m00–aP|#%"+ؑՕsç΃*¸Ò² Ò,ŒI IÞw:ç·¡Õ‚v+Žm(r²ú8Ö ã¯¼Ikñú欬°Fؽ{çk놮€Z¨VêmQ¯µ‚÷ ¦„g5‚¨ •,Ã# Àð/Þ#&|ˆ#Ä!Яª‹öØ'aa½%% ð4M£:ó˜‰lÚc V˜_)FüaÍra-Ñ€: TIO4/à…Ä!‰Ãg ’i؉â‡X‹ïv‘¼€¼íßj#íòŸwPEÕ x:ëTx›œ3x$¼þòówhè6h¤¾ñëÆüß±R^‚DM_„ ¥8ç¶ÅˆžK¹v³Rª¸PïZÅ0}±Ë@Űô&­WùU.ááÆÒ2õÌp}É„-éJœÀsåf—+7»¬QW?תd~Å'¢)¬Ü µw¦l¨Á© È5¯›5Y1žþ{éïñ‚ï›X0+WVU!ÑüçSßòë™,-Þ¸§úWj<õìNžya¨3[1|‡÷÷¿Á·nÝ¢( Dk-ÖZTUÅ9‡ªb­Å˜ðßååeò<ï÷#Íù¸ò-pVPÜ1:¶rO8~œééiŒ1x˜`rròŽYØ1:Ö߆®Ô Up6¬¢V¯÷k933ÃÐÐÖZ¼÷4›Í»P«×pш´Ôˆœ '\ *¨V«dYÖ§¸7Þis©AK­8ǽ#´×Œ1ˆDß:¸«›¯5¨ óö.=Žƒ)mãÕÛ©÷åVl­ô‘Ž ÃòïÛà¡‘aÔµ+—Yœ¿¾6øÀ`­ ÛÃÀP­ÂìÅKœýîΟœž¦6`$^J í‘'©= o8ÈfÇ':ñ*ç52(ºpùêUÎ4ŽÑüú‹¹ÙNoà³>à§Ó'W™éÚ£†Uæ»<_o|wîÙ_‡Æ_˜šþôãõsl}ò5â·ÚÿÝ×ñ?MðK¹èF‰¯IEND®B`‚PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/sdi.py0000755000076500000240000002673612536324427022062 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import sdi_rc3 except ImportError: import sdi_rc2 class MainWindow(QtGui.QMainWindow): sequenceNumber = 1 windowList = [] def __init__(self, fileName=None): super(MainWindow, self).__init__() self.init() if fileName: self.loadFile(fileName) else: self.setCurrentFile('') def closeEvent(self, event): if self.maybeSave(): self.writeSettings() event.accept() else: event.ignore() def newFile(self): other = MainWindow() MainWindow.windowList.append(other) other.move(self.x() + 40, self.y() + 40) other.show() def open(self): fileName = QtGui.QFileDialog.getOpenFileName(self) if fileName: existing = self.findMainWindow(fileName) if existing: existing.show() existing.raise_() existing.activateWindow() return if self.isUntitled and self.textEdit.document().isEmpty() and not self.isWindowModified(): self.loadFile(fileName) else: other = MainWindow(fileName) if other.isUntitled: del other return MainWindow.windowList.append(other) other.move(self.x() + 40, self.y() + 40) other.show() def save(self): if self.isUntitled: return self.saveAs() else: return self.saveFile(self.curFile) def saveAs(self): fileName = QtGui.QFileDialog.getSaveFileName(self, "Save As", self.curFile) if not fileName: return False return self.saveFile(fileName) def about(self): QtGui.QMessageBox.about(self, "About SDI", "The SDI example demonstrates how to write single " "document interface applications using Qt.") def documentWasModified(self): self.setWindowModified(True) def init(self): self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.isUntitled = True self.textEdit = QtGui.QTextEdit() self.setCentralWidget(self.textEdit) self.createActions() self.createMenus() self.createToolBars() self.createStatusBar() self.readSettings() self.textEdit.document().contentsChanged.connect(self.documentWasModified) def createActions(self): self.newAct = QtGui.QAction(QtGui.QIcon(':/images/new.png'), "&New", self, shortcut=QtGui.QKeySequence.New, statusTip="Create a new file", triggered=self.newFile) self.openAct = QtGui.QAction(QtGui.QIcon(':/images/open.png'), "&Open...", self, shortcut=QtGui.QKeySequence.Open, statusTip="Open an existing file", triggered=self.open) self.saveAct = QtGui.QAction(QtGui.QIcon(':/images/save.png'), "&Save", self, shortcut=QtGui.QKeySequence.Save, statusTip="Save the document to disk", triggered=self.save) self.saveAsAct = QtGui.QAction("Save &As...", self, shortcut=QtGui.QKeySequence.SaveAs, statusTip="Save the document under a new name", triggered=self.saveAs) self.closeAct = QtGui.QAction("&Close", self, shortcut="Ctrl+W", statusTip="Close this window", triggered=self.close) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", statusTip="Exit the application", triggered=QtGui.qApp.closeAllWindows) self.cutAct = QtGui.QAction(QtGui.QIcon(':/images/cut.png'), "Cu&t", self, enabled=False, shortcut=QtGui.QKeySequence.Cut, statusTip="Cut the current selection's contents to the clipboard", triggered=self.textEdit.cut) self.copyAct = QtGui.QAction(QtGui.QIcon(':/images/copy.png'), "&Copy", self, enabled=False, shortcut=QtGui.QKeySequence.Copy, statusTip="Copy the current selection's contents to the clipboard", triggered=self.textEdit.copy) self.pasteAct = QtGui.QAction(QtGui.QIcon(':/images/paste.png'), "&Paste", self, shortcut=QtGui.QKeySequence.Paste, statusTip="Paste the clipboard's contents into the current selection", triggered=self.textEdit.paste) self.aboutAct = QtGui.QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=QtGui.qApp.aboutQt) self.textEdit.copyAvailable.connect(self.cutAct.setEnabled) self.textEdit.copyAvailable.connect(self.copyAct.setEnabled) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.newAct) self.fileMenu.addAction(self.openAct) self.fileMenu.addAction(self.saveAct) self.fileMenu.addAction(self.saveAsAct) self.fileMenu.addSeparator() self.fileMenu.addAction(self.closeAct) self.fileMenu.addAction(self.exitAct) self.editMenu = self.menuBar().addMenu("&Edit") self.editMenu.addAction(self.cutAct) self.editMenu.addAction(self.copyAct) self.editMenu.addAction(self.pasteAct) self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) def createToolBars(self): self.fileToolBar = self.addToolBar("File") self.fileToolBar.addAction(self.newAct) self.fileToolBar.addAction(self.openAct) self.fileToolBar.addAction(self.saveAct) self.editToolBar = self.addToolBar("Edit") self.editToolBar.addAction(self.cutAct) self.editToolBar.addAction(self.copyAct) self.editToolBar.addAction(self.pasteAct) def createStatusBar(self): self.statusBar().showMessage("Ready") def readSettings(self): settings = QtCore.QSettings('Trolltech', 'SDI Example') pos = settings.value('pos', QtCore.QPoint(200, 200)) size = settings.value('size', QtCore.QSize(400, 400)) self.move(pos) self.resize(size) def writeSettings(self): settings = QtCore.QSettings('Trolltech', 'SDI Example') settings.setValue('pos', self.pos()) settings.setValue('size', self.size()) def maybeSave(self): if self.textEdit.document().isModified(): ret = QtGui.QMessageBox.warning(self, "SDI", "The document has been modified.\nDo you want to save " "your changes?", QtGui.QMessageBox.Save | QtGui.QMessageBox.Discard | QtGui.QMessageBox.Cancel) if ret == QtGui.QMessageBox.Save: return self.save() elif ret == QtGui.QMessageBox.Cancel: return False return True def loadFile(self, fileName): file = QtCore.QFile(fileName) if not file.open( QtCore.QFile.ReadOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "SDI", "Cannot read file %s:\n%s." % (fileName, file.errorString())) return instr = QtCore.QTextStream(file) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) self.textEdit.setPlainText(instr.readAll()) QtGui.QApplication.restoreOverrideCursor() self.setCurrentFile(fileName) self.statusBar().showMessage("File loaded", 2000) def saveFile(self, fileName): file = QtCore.QFile(fileName) if not file.open( QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "SDI", "Cannot write file %s:\n%s." % (fileName, file.errorString())) return False outstr = QtCore.QTextStream(file) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) outstr << self.textEdit.toPlainText() QtGui.QApplication.restoreOverrideCursor() self.setCurrentFile(fileName) self.statusBar().showMessage("File saved", 2000) return True def setCurrentFile(self, fileName): self.isUntitled = not fileName if self.isUntitled: self.curFile = "document%d.txt" % MainWindow.sequenceNumber MainWindow.sequenceNumber += 1 else: self.curFile = QtCore.QFileInfo(fileName).canonicalFilePath() self.textEdit.document().setModified(False) self.setWindowModified(False) self.setWindowTitle("%s[*] - SDI" % self.strippedName(self.curFile)) def strippedName(self, fullFileName): return QtCore.QFileInfo(fullFileName).fileName() def findMainWindow(self, fileName): canonicalFilePath = QtCore.QFileInfo(fileName).canonicalFilePath() for widget in QtGui.qApp.topLevelWidgets(): if isinstance(widget, MainWindow) and widget.curFile == canonicalFilePath: return widget return None if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/sdi.qrc0000644000076500000240000000040712536324427022177 0ustar philstaff00000000000000 images/copy.png images/cut.png images/new.png images/open.png images/paste.png images/save.png PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/sdi_rc2.py0000644000076500000240000010725112536324427022615 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:45:53 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x03\x54\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xe6\x49\x44\x41\x54\x58\xc3\xd5\ \x97\xcd\x4e\x13\x61\x14\x86\xeb\x35\x94\x95\x7b\x71\xe1\xd2\xc4\ \xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb1\x30\xea\x05\x18\x96\ \x26\x62\x58\xb8\xb0\x91\x58\x20\xd1\x9d\xbf\x89\xa4\x14\xb1\x52\ \xa4\x48\x45\x94\xfe\xd0\x02\x43\xff\xa6\x9d\x19\xa6\x65\x80\xe3\ \x79\x7b\xfa\x85\x51\x4a\x82\xc9\x21\x86\x49\xde\x9c\x33\xa7\xf3\ \xcd\xfb\x9c\xf3\x4d\x9b\x4e\x84\x88\x22\xff\x53\x91\x73\x01\xc0\ \xc7\xd5\x90\x6e\xff\xa5\xfb\xac\xc7\x3d\x3d\x64\x0d\xa9\x02\xf0\ \x31\x32\x3c\x3c\xbc\x6a\x34\x3a\x3a\xba\x19\x56\x3c\x1e\xaf\x26\ \x93\xc9\x56\x3a\x9d\x76\x13\x89\x44\x6b\x60\x60\x20\xcd\x6b\x6e\ \x68\x02\xa4\x38\xd2\xe1\xe1\x71\x99\xba\xef\xb7\xc9\xb2\x2c\xda\ \xdf\xdf\x27\x86\xf1\x78\xcd\x18\xeb\x8a\x1a\x40\x3f\xf3\xb0\x1c\ \xc7\xa5\x4c\x66\xb9\x0b\x14\x04\x01\xc5\x62\xb1\x3a\xaf\x7b\x70\ \x1a\x88\x53\x01\x1c\x1c\x10\x77\x77\xb2\x6c\xdb\xa1\xf9\xf9\xcf\ \x64\x0e\xd7\x75\xe9\xf9\xc4\x44\x17\x42\x05\x00\x26\x7b\xc1\xc9\ \xaa\x37\x1c\x4a\xce\xcd\x53\xf8\x70\x5d\x0f\x8b\x17\x54\x00\x82\ \x10\x40\x67\x4f\x14\xce\xed\xa6\x47\x1f\x67\x66\xe9\xf5\x9b\xb7\ \x14\x9f\x9c\xa4\xa9\xa9\x69\x7a\xf7\xfe\x03\x45\xa3\xd1\x65\x5e\ \x7f\x41\x05\xc0\xef\x10\xed\xb6\x25\x86\x85\x9a\xe3\x05\x94\x5d\ \xcd\xd1\xe4\xf4\x2b\x7a\x32\xfe\x94\x9e\xc5\x5e\xd0\x4c\x62\x0e\ \x8b\x17\x55\x00\xda\x81\x18\xf5\x13\x20\x3c\xff\x90\x6a\xcd\x36\ \x15\x37\xab\x94\x2f\x6e\x53\x89\x63\x8d\xb7\x85\xd7\x7e\x51\x01\ \xf0\x79\xcc\xcd\x5d\x1e\xb5\xc7\x7b\xdb\xee\x9f\x3b\xbe\xe4\x88\ \x5d\xb8\xbd\xee\xe2\x94\xca\x33\xe0\x75\xe4\xc6\x75\x57\x62\xd8\ \x10\x39\xea\xe6\x33\x44\xd4\x01\xa7\x06\xe0\xf4\x3a\xad\x39\x22\ \x98\x98\x68\x72\x80\x98\x6b\x50\x53\x9d\x00\x00\x2a\x2d\xb9\x31\ \xe2\x4e\x53\x8c\x10\x0d\x04\xf2\x6d\xfb\x28\xb6\x7c\x45\x00\x9b\ \x3b\xdb\x6a\xfc\x69\x8e\x3c\x6c\x88\x1a\xae\x39\x13\x80\x3a\x8f\ \xb7\x54\x23\x2a\xd7\xc5\x04\x06\x06\x00\x35\x28\x9c\x17\xab\xbc\ \x25\xbb\xca\x13\xc0\x4d\x61\x0e\x15\x2a\x72\x6e\xcc\x7e\x5a\x02\ \x68\x6a\xdd\xad\xf1\x94\x27\x00\x53\xdc\x1c\x71\x6d\x5b\x40\x60\ \x9a\xab\x1c\x75\x9e\xeb\x81\x41\x15\x47\x11\xc0\x6a\x89\x31\x0c\ \xd6\x77\x04\x20\x0c\x64\x26\x62\xb6\x69\x75\x8b\xa8\xaa\x09\x50\ \xb6\xc5\xbc\xd0\x03\xf8\xbe\x29\x63\x87\x29\x60\x0c\x18\x84\x1c\ \x00\x5b\x4d\x45\x00\x74\x03\x53\x98\xad\x94\xc5\x1c\xe7\x46\xe6\ \x1c\x00\xc8\x71\x5d\xa9\xa1\x08\x80\xfd\xfc\x56\x12\x73\x33\x01\ \x08\x35\x18\x42\xe8\xda\x7c\x8e\x29\xa8\x4e\x00\x5b\x00\x03\xc8\ \x98\x67\x36\x04\x00\x32\xe6\x85\xde\xf8\x17\x0b\xfc\x2c\xd8\x8a\ \x00\x18\x67\x3a\x4f\xb4\x54\x14\x23\x98\x02\x00\x02\x0c\x3e\xfb\ \xc5\x53\x28\xf0\x43\xb8\x66\x49\xf7\x6b\xf9\x52\x87\xd7\xbe\x54\ \x01\xc8\x55\x8f\xba\x4e\xad\x4b\x0e\x90\xaf\x85\xde\xb7\xc2\x92\ \x3d\x4f\xa6\xb3\xde\xa3\xb1\x71\xeb\xda\xd0\xf5\x15\x98\xb3\x6e\ \xa9\x00\x6c\x34\xa4\x6b\x18\xff\xe0\x11\x7f\x5a\x17\x53\xd4\x13\ \x0b\x59\x6f\xe4\xee\xbd\xe2\xa5\xc1\xcb\x4b\x7c\x6d\x8c\x75\x87\ \x35\xa8\xfa\xb7\x1c\xdd\x65\xd9\x3c\x8f\x1f\x19\xfe\x9e\xcf\x1e\ \x37\xbd\xc9\xba\x78\x26\x6f\x46\x00\x68\xf2\xff\x81\x99\x94\x9e\ \xe9\x3f\xbf\x19\x01\x42\xd3\xf4\xfc\xbd\x9c\x9e\xa5\x7e\x03\x51\ \x6c\x25\xa1\x92\x95\x0a\x77\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x05\x3a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xcc\x49\x44\x41\x54\x58\xc3\xb5\ \x97\x5d\x4c\x5b\x65\x1c\xc6\x77\x6f\xbc\xd9\xe5\x12\x49\x20\x71\ \xd7\x26\xe3\x4e\x13\xb8\x70\xd1\x85\x44\xbd\x50\xe3\x10\x18\xe5\ \x2b\x2e\x26\x4a\x04\x27\x86\xaa\x8b\x99\xe0\xd0\xa2\x6c\x19\x86\ \x39\x17\xdc\x1a\x16\x98\x80\x40\x6c\xa6\x43\xca\x20\x2b\x83\x1e\ \x28\xcc\xda\xd1\x96\xd2\xd2\x4a\x7b\xfa\x01\xa5\xd0\xef\x16\x1e\ \xdf\xff\xdb\x1d\xc7\xcc\x04\x2a\x87\x93\x3c\x39\x6f\x21\x9c\xe7\ \xf7\x3c\xef\x47\x0f\x87\x00\x1c\xca\x46\xcf\xbd\xfa\xe9\xbb\x4c\ \x5a\x26\x61\x0f\x6a\x60\xca\xd9\xe9\x79\xd9\x9a\x3f\x5d\x50\xf2\ \xa5\xc1\xe9\x8f\xa7\x57\xc3\x40\x30\x02\x84\xa2\x19\xad\xc7\x32\ \x8a\x27\x81\x58\x22\x73\xbf\x79\x6b\xda\x4b\x10\x72\x02\x1c\x7b\ \xe7\xac\xda\x1c\xd8\xc8\x98\x12\x40\x84\x99\x85\xe3\x19\x91\x31\ \x29\x1a\x4b\x61\x25\x94\x44\x38\x9a\x42\x73\x87\xc6\xbe\x13\xc4\ \xff\x02\x90\x12\x93\x79\x24\xf1\xc8\x58\x92\xcf\x1f\x84\x5d\x8c\ \xc2\xe5\x09\x22\x12\x4b\xa3\xf4\xc3\xef\x4d\x34\x75\x59\x01\xb0\ \xeb\xd8\x36\xd5\x90\x9e\x3a\xfc\xcc\xb9\xe7\x5f\x2e\x11\x3f\x56\ \x9e\x45\x45\x55\x0d\x2a\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\ \xac\xb6\x25\xfc\xb9\xe8\x87\x6b\x15\x58\xf6\x04\x10\x08\xc6\xd2\ \xaf\x9c\xbe\x70\x9f\x41\x1c\xd9\x15\x80\x5d\x87\x99\x1a\x8a\x8a\ \x8a\xcc\x92\x5a\x5b\x5b\xdd\xa4\xaf\x55\xad\xfe\xaf\x54\xdf\xa6\ \x06\x06\x06\x31\x39\x35\x85\xd9\xb9\x39\xe8\x26\x26\x50\x50\x50\ \x80\x21\xcd\x6f\x7c\xde\x49\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\ \x4f\x41\xf4\x85\xf0\x43\xaf\xce\xcd\x00\x6a\xf6\x02\x50\x43\x66\ \xd8\xe5\x8a\xc7\xe3\xf0\x7a\xbd\x48\xa7\xd3\x98\x9c\x9c\x44\x65\ \x65\x35\x66\x67\x8d\xbc\x81\x07\x66\x1b\x74\xd3\x16\x0e\x40\x32\ \x2d\x78\xf0\xdd\x8d\x51\x8f\xac\x00\xe1\x70\x18\x46\xa3\x91\x8f\ \x53\xa9\x14\x7e\xea\xed\x45\xe3\x27\x9f\x61\x86\x41\x38\x96\xdc\ \x50\x77\x75\xe3\x4c\x43\x23\xce\x35\x9d\xc7\xed\x91\x71\x5c\xbc\ \x3e\x2c\x2f\xc0\xc6\xc6\x06\xf4\x7a\xfd\x63\x40\x7d\x7d\xfd\x50\ \x32\x88\xd0\x46\x1c\x66\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\ \x11\x97\xba\x64\x6e\x80\x00\xa6\xd8\x3a\xd8\x7e\x45\x22\x11\x94\ \x2b\x2a\x30\xae\x13\x40\xe7\x04\x6d\x57\xda\xaa\x34\xbe\x7c\x53\ \xe6\x35\x40\x66\x3a\x9d\x0e\xc3\xc3\xc3\xe8\x65\xf5\xf7\xf7\xf7\ \x43\xab\xd5\xa2\xaa\xba\x06\x63\x77\xf5\x90\x0e\x2a\x77\x90\xed\ \x04\xb6\x0e\xda\xbb\x65\x06\xa0\x79\xb7\xdb\xed\x18\x1a\x1a\x42\ \x67\x67\x27\x7a\x7a\x7a\x38\x50\x49\x69\x19\x6e\x69\xf5\x10\xd7\ \x00\x6f\x08\xb0\xf9\x00\x67\x00\xb8\xd0\x25\x33\xc0\xd6\xd6\x16\ \xdf\x09\x81\x40\x00\xa2\x28\xc2\xef\xf7\x63\x6d\x6d\x0d\xa7\x14\ \x95\xd0\xfc\xae\xe7\xa9\xc9\x7c\xc1\x0b\x98\x3d\x40\x9b\xdc\x00\ \xdb\x41\x36\x37\x37\xf9\x76\xa4\x56\x14\x15\xd5\xe8\xfb\x55\xe0\ \xa9\x1d\x81\x47\x00\xe7\x3b\x0f\x00\x80\xcc\x25\x80\x24\x33\x4f\ \x24\x12\x28\x2b\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa0\x36\x5a\ \xd5\x07\x30\x05\xff\x98\x27\x93\x3c\x3d\x4d\x49\xc9\xa9\x4a\x0e\ \xa0\xb7\xb3\x03\x89\x3d\xc5\xf8\x17\x30\xb1\x00\x7c\x71\xf5\x00\ \x00\xa4\xea\xc9\x98\x14\x8b\xc5\x50\xa6\xa8\x82\x7a\x48\xc0\x98\ \x19\xb8\x6b\x05\xe6\x9c\x99\xfb\xe7\x57\x64\x04\x90\xd2\x53\x6a\ \x02\x88\x46\xa3\xdc\x3c\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\ \x66\x87\xe4\xa0\x01\x1c\x64\xc4\x04\x28\x3b\x64\x06\x48\x3d\x9c\ \x73\x12\x99\xd3\xb9\x40\x20\xc5\x65\x55\xb8\xd8\x2d\xa0\x7f\x3a\ \x63\xae\x7d\x90\x69\xe0\xa3\x76\x99\x00\xfe\x5d\x3d\xa5\x26\xad\ \xae\xae\x72\x88\xb7\x4a\x2a\x70\xb9\x57\xc0\x3d\x1b\xb8\x7e\x9e\ \x01\xee\xcc\x03\x67\x2e\xed\x13\x40\xaa\x9d\x44\x8b\x8e\x92\xd3\ \x71\x4c\xdf\x01\x2b\x2b\x2b\x58\x5f\x5f\xe7\x10\x27\x59\x03\xdf\ \x74\x09\x50\x4f\x00\xbf\xcc\x65\x1a\xb8\x32\x06\x34\xec\xa7\x01\ \xc9\x58\xda\xeb\x64\x4e\x69\x29\x39\x1d\x44\x04\x40\xf5\xd3\xcf\ \xde\x7c\x5b\x81\x96\xeb\x02\x4f\x7e\x75\x1c\xb8\x71\x0f\xf8\x71\ \x2c\x9e\x7e\xbd\x4e\x6d\xa6\x37\xaa\xac\x00\x9e\x64\x2c\x6d\x37\ \x32\x25\x00\xd1\x23\xf2\xe4\x12\xcc\x1b\x27\x15\x68\xef\x11\xa0\ \xbc\x66\x5b\x7f\x4f\x35\xe2\x3c\x71\x9a\xbf\x8e\x69\xf7\xfc\x4a\ \x26\x01\x90\xa9\x24\x69\xb5\x53\x42\x32\x0f\x06\x83\x70\xb9\x5c\ \xdc\x90\x5e\x4a\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf\x25\ \x9f\x7d\xa1\x9c\x4c\x3b\x98\x8a\x99\x8e\x3e\xc9\x78\x47\x00\x95\ \x4a\xc5\x01\xa4\x15\x2e\xcd\x37\x19\x52\x52\x3a\xf7\x29\xb5\xc3\ \xe1\xe0\x22\xe3\xc5\xc5\x45\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\ \x93\xe9\xae\x00\x2d\x2d\x2d\x6e\xe9\x60\xa1\xd4\xd2\x97\x0d\x8d\ \x97\x97\x97\xe1\xf3\xf9\x60\xb3\xd9\xf8\x7d\x69\x69\x89\x43\x10\ \x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92\x52\x93\x11\x8d\xe9\ \x4e\xdf\x78\x54\x3b\x35\x60\xb5\x5a\x79\xf5\xd4\x0a\xfd\xce\x60\ \x30\x24\xf2\xf2\xf2\xee\xb3\x67\x1c\xd9\x17\x40\x53\x53\x93\x5b\ \x9a\x67\x4a\x4f\x22\x13\xaa\x9a\xc6\x16\x8b\x99\x37\x40\x9f\x47\ \x47\x47\x23\x6d\x6d\x6d\xde\xfc\xfc\x7c\x13\xfb\xdb\x41\xa6\xb2\ \xbd\x9a\xff\x27\x40\x73\x73\x33\x9f\x02\x4a\x47\x10\x54\x3f\x55\ \x3f\x3f\x3f\xcf\xeb\xd6\x68\x34\x91\xba\xba\x3a\xe7\xc3\xb4\x5d\ \x4c\x1f\x30\x1d\xcd\xc6\x78\x47\x00\xa5\x52\xe9\x76\x3a\x9d\xbc\ \x62\x4a\x4a\x6f\x3e\x94\xb4\xbe\xbe\xde\x99\x93\x93\x23\x99\x16\ \x67\x53\x75\x56\x00\x8d\x8d\x8d\x6e\x8b\xc5\x82\x81\x81\x81\x48\ \x6d\x6d\xad\x33\x37\x37\x57\x56\xd3\xdd\x00\xf8\x7f\x46\x4c\xc2\ \x41\x99\x6e\xd7\xdf\x43\x39\x56\x18\x85\x70\xc8\x04\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x2b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xbd\x49\x44\x41\x54\x58\xc3\xed\ \x57\x6b\x4c\x93\x57\x18\x3e\x23\x71\xc9\x32\xe9\x16\x97\xa8\x54\ \x65\x38\x9d\x02\x15\xf6\x03\x87\x32\x93\x01\x66\x2c\x5b\x70\xc4\ \x30\xff\x60\xa2\x2e\x1a\x3a\x1d\x4e\x03\xba\x31\x89\x5b\xb3\x80\ \xd9\x0c\x84\x02\x19\x58\x1c\x14\x8b\x85\xb2\x82\x95\x5e\xe4\x66\ \x0b\x8e\x31\xf8\xc3\x46\xcb\x2d\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\ \x6a\x69\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0d\x61\xd9\xb2\x93\ \x3c\xed\x97\xf3\x7d\xfd\xde\xe7\xbc\xef\xf3\x5e\x4a\x00\x80\xfc\ \x93\x20\xff\x0a\x02\x74\x09\x28\x44\x14\xd9\x14\x71\x14\x01\x2b\ \x46\x80\xae\xdd\x64\xdd\xc6\x66\x22\x4c\xf8\x95\xc4\x8b\x47\xc8\ \xa1\xd3\xf7\xc8\x8e\x97\x3b\x38\x32\x61\x2b\x41\x20\x85\x9c\xbe\ \x30\x48\x2e\xdd\x80\x19\x40\x32\xab\x79\x4d\xf4\xbe\xfb\x72\x13\ \x68\x64\x06\x91\x04\x5e\xa3\x51\xf4\x06\xee\x85\x47\xf5\xd0\xbd\ \x83\xcb\x4d\x20\x9b\x9d\xf6\x40\x74\x2f\xbd\x16\x32\x3d\x20\x89\ \x3f\x48\xa5\x2c\x1b\x01\x8c\x31\x79\xc1\xbb\x9d\x88\x4b\xc6\xd7\ \xc6\x26\x0e\xa0\x10\xb9\xfd\x42\xfe\xc5\x2b\x36\x46\x8c\x12\x5c\ \x4e\x02\x93\xa7\xa7\xa7\x0d\xcc\xd3\x39\xb9\x98\x63\x36\x14\x0a\ \xd2\xe4\xa3\x2b\x41\x20\x8c\x29\x9e\x2a\xdf\x37\x47\xeb\xdc\x7b\ \xb5\xcc\x89\x9e\x40\x44\x96\x54\x83\x2b\x2c\x0b\x36\x46\x48\x08\ \x13\xf5\x64\x2a\x7b\x2e\x54\x03\x01\xf8\x03\x37\xbf\xc0\x0e\x34\ \x2a\x54\xdf\x62\x88\x52\xd5\x2c\x58\x03\x74\x1d\x16\x08\x04\x7a\ \x45\x55\xf5\xc8\xa0\x6d\x74\xc2\xd4\x73\xf7\x21\xbe\x73\x51\x95\ \x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc\x2e\x03\ \xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf\x3e\xbf\xd2\x60\xb5\xdb\ \xed\x80\xf8\x79\xe4\x3e\xc4\x5e\xab\xb4\xb9\x88\x2f\x86\x80\x27\ \xd3\xc0\x67\xf9\x8e\x19\xf5\x60\xd7\x5e\x33\xba\x76\xda\x73\xee\ \x68\xd8\xc7\xc7\x47\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\ \xf6\x2e\xe7\x96\x37\xf7\x77\x73\x61\xd8\xbd\xe8\x5e\x80\x2f\x66\ \x9a\xa0\x86\xdf\xa9\x36\x42\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\ \xe7\x1a\x8a\x98\x2d\x7e\xfe\x6d\x97\x54\x1a\x6b\x5f\x5f\x1f\xb8\ \xd0\xd1\x73\x07\x62\x72\x15\x56\x4e\xc4\x87\x97\xd4\x8c\x30\x14\ \xe9\x15\xb7\x1e\x38\x1c\x0e\x40\xa4\xd6\x19\x31\x9e\x85\x9b\x05\ \x7e\x6d\xa9\x25\x1a\x5b\x97\xd9\x0c\xe6\x2e\x0a\xf3\x24\x14\xdf\ \x36\x8e\x7b\xbd\x1e\xd1\xcd\x42\xc8\x09\x6f\xa9\x04\x3c\xd1\xbd\ \x56\xab\x15\x10\x77\x7f\x1b\x84\xf3\x92\x5c\xbb\x52\xa9\x84\xfa\ \xfa\x7a\x30\x99\x4c\x0c\x75\xdf\x35\xc1\x51\xb1\x64\x18\xc9\x51\ \x44\x3e\xb6\x76\xcc\xb4\x40\x4f\x93\x5f\x7e\xd3\xd6\xdf\xdf\x0f\ \x32\x99\x0c\x44\x22\x11\xa8\x54\x2a\x90\x4a\xa5\xa0\xd1\x68\x20\ \x4b\x5b\x39\xbe\xe9\x95\xe0\x1f\xb8\x53\xaf\x79\x2c\xf3\x00\x97\ \x8e\x22\x9e\xc7\x86\xe6\x53\x29\x19\xf6\x82\x82\x02\xe6\xe2\xa0\ \xa0\x20\xe0\xf1\x78\x60\xb1\x58\x40\x5b\x5e\x01\xfb\xcf\x26\x0c\ \x2d\xa6\x53\xce\x67\x94\xcf\x09\x4c\x83\xe2\x5b\x7b\xe6\xc2\x60\ \x9a\xb2\x14\x14\x0a\x05\x88\xc5\x62\xc8\xcc\xcc\x84\xa2\xa2\x22\ \x50\xab\xd5\xd0\xd9\xd9\xc9\x60\xec\xfe\xc9\xb9\xc9\xdb\xa7\x75\ \x2e\xb7\xcf\x4b\x80\xae\xb7\xd8\x29\x70\x0e\xc0\x6a\x97\xac\x78\ \x88\xca\x7f\x82\xe2\x29\x89\x0e\x3e\x97\x2b\x21\x5b\x96\x0f\x07\ \x63\xe3\x47\x84\x1f\x26\xd8\x92\x72\x64\x8e\x6f\x1a\xbf\x07\xa3\ \xd1\x08\x2d\xad\x2d\xf0\xcb\xc0\x20\x1c\x38\xf1\xbe\x05\xb3\x62\ \xc1\x04\x5c\x69\x84\x85\x85\x84\x46\xdc\x26\xe7\x32\xac\x2c\xcf\ \x33\xb5\x13\xec\x3b\xe3\xba\xd3\x33\xaf\x82\xe5\xfe\x7a\x89\x06\ \x9e\xde\xfc\x62\x1b\xf7\x3c\x92\x8d\x7b\x66\xab\x4f\x5b\xca\x35\ \xed\x58\x43\x43\x3d\x34\x34\x34\x80\xa5\xb7\x17\x32\x14\xc5\xc3\ \xf3\xe9\xc0\x65\x3c\x92\xe5\x28\x9e\x36\x5d\xe5\x9c\x2a\x32\x78\ \x7d\xf4\x83\x2e\x5a\x6c\x12\x31\x0c\x1b\x25\xea\x71\xf7\x2f\xcb\ \x27\xef\x05\x87\x5f\xfe\xd3\xe4\x44\x0b\x4c\x68\xf4\xc9\x3e\x75\ \x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x96\x31\xae\x81\x09\ \x66\xf1\x36\x6d\x38\x68\x3c\x49\x3a\x3a\x65\xf8\x62\x81\x83\x44\ \xbd\x57\x43\xb6\x0a\x5e\x9b\x2a\xc3\x94\x5c\xb0\x42\x0f\xab\x24\ \xb4\x04\x9f\x4a\xaa\x9b\x43\x37\x31\x28\xd4\x4f\xf2\x0a\xc7\x74\ \x3a\x1d\xd4\xd6\xd6\x82\xc9\x7c\xdb\xb9\x61\x9b\xf7\x5f\xea\x62\ \xb2\xe5\x7e\x9c\x75\x1f\x0d\xf3\xb2\xd4\x4e\xf2\xf6\xb1\xeb\x2e\ \xb6\xae\x94\xc3\x90\x6c\x97\x55\xc1\x4b\x57\xab\x80\x9c\x4d\x6e\ \x5a\xd0\x1c\x49\xbd\xb1\xe7\x88\xb0\xef\xca\x57\xc5\x50\x5a\x5a\ \x0a\x1d\x3f\xf6\x4c\x04\x06\x87\x74\x3c\xaa\x0b\xc2\x84\x46\x8d\ \x07\xc8\x6f\x02\xd9\xf9\xaa\x7e\x9a\xf1\x30\x46\x8e\x36\x20\xaf\ \xbc\x4a\x78\x43\x69\x00\x92\x28\x1d\x98\xcd\x95\xb3\x79\xc3\x7d\ \x3d\xbf\xf9\x44\x6a\xa6\x5d\x2e\x97\x43\x53\x4b\x2b\x44\x1c\x7b\ \xf7\xce\xf4\x14\x25\xae\xf1\x8a\xf5\x77\x9c\xf5\x70\x02\xc2\xd9\ \x0f\x89\xd1\x81\x03\x4f\x8e\xf7\xdc\xd2\x69\xe7\xf3\xdf\x75\xfc\ \x6f\x14\x2e\x36\xd2\xef\xd8\x17\x69\x49\xbe\x2c\x9d\xc8\xd3\x96\ \x3b\xa7\x0f\x31\x8c\x25\xc6\xdf\x9f\xba\x77\x5f\x71\x35\xa0\x41\ \x6c\xb5\x08\x8c\xf9\x94\xf1\xe0\xf0\x33\x4b\x9a\x7c\x68\x13\x5a\ \xbd\xce\xa3\xd9\x6b\x4f\x48\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\ \xf9\x2f\xee\xb9\x49\x6e\x00\xf6\x7b\x3e\xed\xf7\x08\x1e\x2a\x3e\ \x5d\xe5\x58\xaa\xf1\x47\x5a\xf5\xb6\x59\x0b\x11\x1d\xb3\x43\xc9\ \x91\x38\x09\x39\xf9\xa9\x96\x21\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\ \x37\xfc\x4f\x13\xf8\x1d\xe7\x87\x19\xb9\x44\xc3\x01\xcf\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xa3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x35\x49\x44\x41\x54\x58\xc3\xe5\ \x97\xcd\x8f\x54\x45\x14\xc5\x7f\xb7\xea\xd6\x7b\xaf\xdb\x6e\xc7\ \xf9\x40\x9d\x89\x46\x4d\x34\x99\x44\x8d\x1a\x48\x98\xc4\x8c\x1f\ \x1b\xfe\x02\x4c\x5c\xf1\x07\x18\x16\x2e\x4d\x5c\x6b\x58\xc3\x8e\ \xc4\x8d\x1b\x17\xce\x82\x68\x74\x41\x5c\x18\x0d\xe2\xc4\xc6\x00\ \x3d\x60\x50\x51\x19\x60\x02\xa2\x0e\x0c\x83\xd3\xfd\x5e\xf7\x94\ \x8b\xaa\xee\xf9\x60\xe6\x0d\x84\x51\x16\x56\x52\xa9\xce\x7b\xb7\ \xeb\x9e\x3a\xf7\xd4\xa9\x7a\xea\xbd\xe7\x7e\x36\xe5\x3e\xb7\x3e\ \x80\x5d\xbb\x76\xbd\x03\xec\xfd\x8f\xf2\x4e\x35\x1a\x8d\x03\xeb\ \x19\xd8\xbb\xef\xbd\xa3\x3b\x1f\x1f\x76\x00\x9c\x3c\x3a\xcf\xcc\ \x97\x37\x58\x9c\xef\xdc\x53\xa6\xda\xa0\xf2\xdc\x6b\x03\xbc\xb8\ \x67\x10\x80\x8b\x7f\x16\x7c\xf8\xee\x1e\x80\xdb\x00\x70\xfc\xec\ \x1c\xdf\x3f\x30\x04\x78\x2e\xfd\xb8\xc0\xfe\xb7\xce\x6f\xcb\x72\ \x0f\x1d\x79\x9a\x0b\x23\x96\xd3\x9f\x1f\x64\xfc\xd5\x7d\x9b\x6b\ \x40\x45\xb0\x16\x40\x78\x70\x2c\x23\xcb\xb2\x6d\x01\x30\x30\x96\ \x61\x8d\x50\x1b\x7c\x14\x23\x25\x22\x14\x2b\xd8\x18\x91\xd5\x95\ \x73\xe7\xce\x83\x2a\xb8\x04\xd2\x14\xb2\x0c\xd2\x2c\x8c\x49\x0a\ \x49\x12\xde\x77\x3a\x90\xe7\x90\xb7\xa1\xd5\x82\x76\x2b\x8e\x6d\ \x28\x72\xb2\xfa\x38\xd6\x0a\xe3\xaf\xbc\x49\x6b\xf1\xfa\xe6\x00\ \xac\x15\xac\x15\x04\xb0\x46\xd8\xbd\x7b\xe7\x16\x6b\xeb\x86\xae\ \x80\x5a\xa8\x56\x81\xea\x6d\x51\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\ \x84\x01\x67\x05\x35\x82\x08\xa8\x0a\x95\x2c\xc3\x23\x20\x1e\x08\ \xc0\xf0\x1e\x2f\x02\xde\x23\x12\x26\x15\x7c\x88\x23\xc4\x21\x1e\ \x3c\x21\x5e\x40\x4d\x58\x18\x40\xd7\x4a\x89\x06\xac\xa0\xda\x63\ \x00\x9a\x33\xbf\x05\x8a\x53\x07\x69\x02\x95\x04\xb2\x34\xf6\x04\ \x12\x07\x4e\xa1\xe8\x40\x5e\x40\x2b\x8f\xbd\x05\x4b\x39\xb4\x73\ \xc8\x0b\x54\x87\x71\x3d\x00\x2a\xe5\x25\x70\x31\x40\xd5\x30\x39\ \xf9\xd2\xd6\x0a\xf3\x3e\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8\x27\x61\ \x61\xbd\x1c\x25\x25\x20\x00\xf0\x81\x8d\x34\x4d\xa3\x3a\xc3\xb3\ \x98\x11\x89\x6c\x07\xda\x63\x09\x56\x98\x5f\x29\x46\xfc\x61\xcd\ \x72\x7f\x61\x1d\x2d\xd1\x80\x3a\x09\x54\x49\x18\x4f\x34\x2f\xe0\ \x9d\x85\xc4\x21\x89\xc3\x67\x09\x92\x69\xd8\x11\x89\xe2\x13\x87\ \x58\x8b\xef\x76\x91\xbc\x80\xbc\x03\xed\x02\xdf\x6a\x23\xed\x02\ \xf2\x02\x9f\x77\x50\x1d\x45\xd5\x20\x78\x3a\xeb\x54\x78\x9b\x06\ \x9c\x33\x78\x0f\x03\x8f\x24\xbc\xfe\xf2\xf3\x77\x68\xe8\x36\x68\ \xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04\x52\x5e\x82\x44\x4d\x5f\x84\ \x8f\x0d\xa5\x38\xe7\xb6\xc5\x88\x9e\x18\x4b\xb9\x76\xb3\x03\x08\ \x9d\x52\x11\xaa\x90\xb8\x50\xef\x5a\xc5\x30\x7d\xb1\xcb\x40\xc5\ \xb0\x0e\xf4\x26\xad\x57\xf9\x55\x2e\xe1\xe1\xc6\xd2\x32\xf5\xcc\ \x70\x7d\xc9\x84\x2d\xe9\x4a\x19\x10\x9c\x1a\xc0\x73\xe5\x66\x97\ \x2b\x37\xbb\xac\x51\x57\x3f\xd7\xaa\x64\x7e\xc5\x27\xa2\x29\xac\ \x05\x15\xc3\x9c\x0b\xb5\x77\xa6\x6c\x17\xa8\xc1\xa9\x20\xc8\x1a\ \x35\xaf\x9b\x35\x1a\x8f\x59\x31\x9e\xfe\x7b\xe9\xef\x14\x00\xf1\ \x82\xef\x9b\x58\x30\x2b\x57\x56\x02\x55\x21\xd1\x90\xfc\xe7\x53\ \xdf\xf2\xeb\x99\x13\x2c\x2d\xde\xb8\xa7\xfa\x57\x6a\x03\x3c\xf5\ \xec\x4e\x9e\x79\x61\x02\x0f\xa8\x33\x5b\x31\x10\x03\x7c\x87\xf7\ \xf7\xbf\xc1\xc2\xc2\x02\xb7\x6e\xdd\xa2\x28\x0a\x44\x04\x6b\x2d\ \xd6\x5a\x54\x15\x55\xc5\x39\x87\xaa\x62\xad\xc5\x98\xf0\xdf\xe5\ \xe5\x65\xf2\x3c\xef\xf7\x23\xcd\xf9\xb8\xf2\x2d\x18\x70\x56\x50\ \x17\x18\xdc\x31\x3a\xb6\x72\x4f\x38\x7e\x9c\xe9\xe9\x69\x8c\x31\ \x78\xef\x99\x98\x98\x60\x72\x72\xf2\x8e\x59\xd8\x31\x3a\xd6\xdf\ \x86\xae\xd4\x09\x55\x70\x36\xac\xa2\x56\xaf\xf7\x6b\x39\x33\x33\ \xc3\xd0\xd0\x10\xd6\x5a\xbc\xf7\x34\x9b\xcd\xbb\x02\x50\xab\xd7\ \x70\xd1\x88\xb4\xd4\x88\x14\x9c\x0b\x27\x5c\xa0\x2a\x00\xa8\x56\ \xab\x64\x59\xd6\xa7\xb8\x37\xde\x69\x73\x1a\xa9\x17\x41\x4b\xad\ \x38\x1e\xc7\xbd\x23\xb4\xd7\x8c\x31\x88\x44\xdf\x8f\x3a\xb8\xab\ \x9b\xaf\x35\xa8\x0d\xf3\xf6\x18\x2e\x3d\x8e\x83\x29\x6d\xe3\xd5\ \xdb\x12\xa9\xf7\xe5\x56\x6c\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\ \xdb\x02\xe0\xa1\x91\x61\xd4\xc2\xb5\x2b\x97\x59\x9c\xbf\xbe\x05\ \x03\x36\xf8\xc0\x60\xad\x02\x0b\xdb\xc3\xc0\x50\xad\xc2\xec\xc5\ \x4b\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa6\x36\x04\x60\x24\x5e\ \x4a\x05\x12\x0b\xed\x91\x27\xa9\x3d\x0c\x6f\x1f\x38\xc8\x66\xc7\ \x81\x27\x3a\xf1\x2a\xe7\x35\x1e\x32\x81\x14\x28\xba\x70\xf9\xea\ \x55\xce\x34\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1f\x4e\x1d\x02\x0e\x6f\ \x08\xe0\xb3\x8f\x3e\xe0\xa7\xd3\x27\x57\x99\xe9\xda\xa3\x86\x55\ \xe6\xbb\x1e\x04\x1b\x3c\x5f\x1d\x6f\x7c\x77\xee\x8f\xd9\x5f\x0e\ \x01\x87\x1b\x8d\xc6\x5f\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5\x73\ \x6c\x7d\xf2\x35\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1\x3f\x4d\xf0\ \x4b\xb9\xe8\x46\x89\xaf\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x6d\ \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\x06\x34\x49\x44\x41\x54\x78\x5e\xad\x97\x5b\x6c\x54\xc7\ \x1d\xc6\x7f\x73\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\ \x69\x63\x24\x42\x4a\x21\x22\xa1\x2d\x95\x62\xa5\x2f\xee\x4b\x68\ \x2b\x95\xa6\x55\xa5\xc6\x60\x55\xaa\xda\xb4\xaa\xfa\x56\x09\x55\ \xca\x03\x94\x27\xda\x07\x84\x14\x29\xad\xc4\x8b\xa5\x52\x83\x79\ \x08\xc5\x18\x39\x0e\x69\xd3\x84\x9a\x9b\x63\x6a\xec\xb2\x04\x1b\ \x3b\xbb\xf6\x7a\x8f\xbd\xbb\xde\xb3\x67\xa6\xc3\x68\x85\xe5\x72\ \x6c\x88\xc9\x27\x7d\xfa\x9f\x9d\x87\xfd\x7e\xf3\x9f\x99\x73\x11\ \x4a\x29\x82\x24\x84\x78\x05\x78\x9e\xc7\x6b\x48\x29\xf5\x77\xd6\ \x28\x27\x20\xb8\x43\xbb\x01\x68\x97\x52\xbe\xc6\x63\x64\x59\xd6\ \x07\x1a\xf6\xbb\x40\xb7\x06\x39\xff\x14\x00\x26\xfc\xb7\xed\xf5\ \xe2\x60\x5d\x44\x44\x6e\xce\x89\x8a\x2b\x57\xae\x50\x5d\x53\x8d\ \x40\x00\xa0\x50\x08\x65\x28\x41\x29\x66\xd3\x69\x5e\xa9\x17\x2f\ \xbc\xb4\x4e\x6c\x3b\xf1\x1f\xb9\x47\x83\x7c\x5b\x43\x4c\x3c\x4d\ \x07\xf6\xff\x60\x8b\xdd\x2c\x25\xf8\x4a\x32\x3c\x3c\x4c\x65\x65\ \x25\x2b\xc9\x75\x5d\x1e\xc0\x6e\xa9\xb0\x22\x1b\xa2\x2a\x72\x3f\ \xa7\xea\x81\xb5\x03\x08\x2d\x05\x48\xa1\x0d\xf4\x5d\xbc\x48\x2e\ \x97\xc3\x2f\x16\x51\x4a\x91\xcf\xe7\x59\x5c\x5c\xa4\x50\x28\x50\ \xd4\x63\xb5\xb5\xb5\x94\x01\x58\x80\xf8\x82\xf6\x80\x01\x00\x36\ \x44\x05\x1f\x0f\xbc\x4b\x3e\x3b\x8f\x85\x44\x95\x32\xe2\xb6\xc4\ \xb6\x04\x21\x21\x70\x3e\x53\x6c\x8c\x3b\x80\x44\x2a\x04\xf0\x9c\ \x10\x02\xe0\xcb\x40\x05\x50\x0f\x34\x60\xc4\x48\x69\x9f\x24\x02\ \x01\x4e\x9c\x38\x21\x00\x81\x05\xd2\x87\x96\x96\x67\x09\x65\x6d\ \x14\xe5\x28\xa5\xb4\x41\x08\x58\x57\x19\x25\xe2\xd8\x44\x42\x16\ \xc3\x13\x73\x5c\xbc\x3d\x41\xf7\x58\x8e\x5c\x24\xbe\xa9\xbd\x7d\ \xf7\xef\x2d\xcb\x5a\xdc\xb1\x63\x47\x59\x55\x55\x95\xd3\xd8\xd8\ \x18\x7e\xe0\x86\x86\x86\xd0\xa5\x4b\x97\xdc\xae\xae\xae\x08\xf0\ \xd6\xaa\x1d\x00\x13\x44\x55\x2c\xc2\x73\xd5\x31\xf2\x9e\x4f\xa1\ \x28\x91\x4a\x61\x09\x41\xd8\xb1\x88\x86\x6c\xe6\x72\x05\x12\xa2\ \x8e\x3f\x9f\xff\x2b\x0d\x4d\x1b\x01\x22\xc0\x66\x96\x84\xef\xfb\ \x78\x9e\x47\x75\x75\xb5\x9e\x50\x4b\xf4\xea\xd5\xab\x87\x84\x10\ \x28\xa5\xde\x5a\x11\xc0\xb2\x41\x00\xb6\x2d\x90\xda\xb6\x14\x38\ \x08\xa4\x12\x58\xc2\x8c\x1b\x8f\x4c\xb9\xec\x7b\xf5\x3b\xd4\x37\ \x36\x11\x7c\x2f\xc1\x84\x67\x32\x19\xca\xcb\xcb\xcd\x66\x3e\x76\ \xec\xd8\x26\xbd\x7f\x0e\x2e\x41\x2c\x01\xd0\xd9\xd9\xa9\x0e\x1d\ \x3a\xa4\x6c\x21\x08\x59\x10\xb6\x2d\x1c\xc7\xc6\x42\x50\xb4\xcd\ \x1a\x1b\x00\xc7\xb2\x88\x38\x96\xae\x02\x60\x59\x78\x10\xc0\xdc\ \xdc\x1c\x35\x35\x35\x06\x20\x1a\x8d\x72\xe4\xc8\x91\xcd\xc0\x03\ \x88\x1b\x1a\xa2\xc7\x62\xb9\xb0\x6d\x74\x30\x66\x8d\xcb\x23\x36\ \xb1\xa8\xa3\xc7\x2c\x32\x8b\x1e\x93\x99\x1c\x63\xa9\x79\xee\xcc\ \x2e\xe8\xdf\x45\x72\xf9\x3c\xab\xc8\x2c\x41\x36\x9b\x35\xa7\x66\ \xe9\xff\x6d\x0e\x1c\x38\xb0\x1e\xe8\x00\x58\x06\xa0\xb4\x74\x16\ \x8e\x0d\xe1\x90\xc0\x53\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\ \xa6\x7d\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb\x3a\x0d\x2f\xb4\x73\xfb\ \xce\x24\xfd\xfd\xfd\x24\x93\x49\x94\x52\xe6\xfa\xf8\xf1\xe3\xe8\ \xba\xac\x33\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c\x3e\x7c\x98\xde\xde\ \x5e\x12\x89\x84\x04\x2c\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\ \x94\x4f\x6b\xc7\xcf\xf8\xe6\x2f\xdf\x26\xf6\xf5\x37\x99\x7c\xa6\ \x83\x6b\xfe\x2e\xae\xf1\x2d\x64\x6b\x17\xad\x7b\x7f\x4e\x5e\x56\ \x73\xfa\x6f\x67\xd1\x77\x4d\xee\xdc\x9d\xe2\x1b\xaf\x76\x72\xfd\ \xfa\x75\x03\xa0\x67\x6b\xd6\x3f\x16\x8b\x99\xeb\x78\x3c\x8e\xe3\ \x38\x25\x38\x04\xc0\x23\x00\x96\x25\x98\xca\x41\x3a\xde\xca\xfe\ \xdf\xbd\x4d\xd5\xae\xd7\x28\x84\x62\x08\xdb\x42\x59\x82\x6c\x41\ \x72\x7f\x66\x91\x4f\xee\x66\x18\xb8\xea\x72\xfa\x1f\x61\x64\xd5\ \x5e\xae\x8f\xdc\x67\x32\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\ \xcd\xcd\xcd\xb4\xb5\xb5\x19\x37\x35\x35\xa1\xa1\x14\x20\x83\x1f\ \x46\x16\xdc\x71\x15\xdf\xff\xe9\x6f\xa8\x6c\xd8\x48\xe2\xec\x3b\ \x4c\x8f\x5e\xc3\x89\x94\xb1\xb5\x79\x07\x9b\x5b\xb6\xf3\x49\x79\ \x25\x63\x09\x97\xcf\x66\xf2\xdc\x9d\xce\x32\xa1\xed\x88\x0d\x4c\ \x27\xe7\xd8\xb7\x2b\xca\xfa\x25\x00\x33\x7b\x3d\x6b\xea\xea\xea\ \x00\xcc\x75\x2a\x95\x32\x00\x4a\x2b\x10\xa0\xb9\x5a\x70\xe1\x9d\ \x63\x28\x2c\xca\xe6\xc6\xd9\x10\x8f\x52\x94\x92\x7b\xc3\x7d\x24\ \x65\x05\xdb\xda\x7f\x4c\x4d\xdb\xcb\x7c\x3c\x9c\x66\xd2\x5f\xc0\ \xcd\x78\x2c\xcc\x6b\x2f\x78\x20\x00\xb5\x74\x3a\x42\xa1\x90\x09\ \x2d\xdd\xea\x1f\x8e\x01\x2a\xf8\x3e\x60\xc1\xc6\xb8\xa0\x50\x1c\ \x23\x1c\x8b\x53\xb7\xa5\x96\x92\x78\x76\x7d\x05\xe9\xac\xc7\x68\ \xff\x9f\x98\xae\xbc\x4c\xcb\xf6\x83\xb8\x0b\x61\xbc\x82\xa4\x58\ \x94\x78\xda\x21\xc7\x42\x2d\xaa\x80\xe3\x69\xa0\x96\xd5\x15\x01\ \x00\xd6\xc7\x43\x84\xca\x23\xfc\xbf\x6a\x63\x21\x9e\xa9\x0c\x73\ \xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb9\x32\x47\x03\x28\x03\ \x61\x6b\x00\x16\x4b\x21\xa5\x1c\x25\x30\x2a\x15\xa4\x5c\x05\x40\ \x58\xa5\x2a\xcc\xf5\x23\xfa\x70\x6c\x86\xf1\x59\x8f\xef\xfd\xfa\ \x8f\xdc\xca\xd4\xe0\x44\x5c\xa2\x11\x1b\xcf\x93\x14\x3d\x07\xd3\ \x01\xa5\x90\x52\xf2\x50\x6a\x59\x01\x56\x05\x10\x08\x4c\x0d\x04\ \x18\x9d\x76\xf9\xd5\x5f\x86\x18\xbd\xb7\x80\x3d\x93\x67\xd3\xba\ \x32\xf2\x79\x5f\xbb\x68\xea\xce\xaf\xd4\x70\xf9\xdd\xe0\x25\x00\ \x9e\x78\x09\x4c\xb8\x10\x3c\xa2\xd6\x2f\x55\xf2\x87\x1f\x3e\xcf\ \xf5\x4f\x33\x44\x1b\xb7\xb1\xf3\xc5\x97\x59\x12\x5c\x4e\x60\x8e\ \xdb\x53\x01\x28\xc0\x12\x25\x00\x6d\xd4\x52\x7d\xb1\xb5\x96\xdd\ \x5b\xe2\x74\xbf\x97\xa5\x6a\xf7\x57\xf9\xd1\x1b\x6f\x10\xa0\xb5\ \x03\x98\xb5\x37\xd5\xd8\x08\x01\xd2\xcb\x53\x70\x53\x78\xf3\x33\ \x14\xb3\x69\x0a\x19\x1f\x25\xfd\xd5\x82\xd6\x08\xf0\xf0\x29\xe7\ \xe3\xe7\x33\x14\xe6\x75\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc1\x33\ \x7d\xfa\xd7\x72\x8c\xb2\x13\x37\x03\xc7\x01\xb2\x1e\xfe\xad\x94\ \xcc\x6f\xf7\x44\x54\x03\xd8\x5f\x70\x07\x08\x92\x09\xfd\xd7\x3d\ \x3f\xfd\x7e\x42\xa6\xcf\xdf\xf6\xef\x02\xee\x76\x3b\xfc\x92\x06\ \xa8\xe3\x73\xca\x75\x5d\x1f\x70\x57\xed\x00\x40\x32\xab\x0a\x1f\ \x7e\x2a\xd3\xbd\xb7\xfc\xd4\xcd\x69\x39\x05\xf4\x03\x97\x74\x68\ \xbf\x10\xa2\xd3\xb6\xed\xaf\x7d\x9e\x25\x58\x58\x58\xf0\x07\x06\ \x06\xd2\x27\x4f\x9e\x9c\x06\xba\x83\x00\x3e\x1a\x49\xca\xad\xe3\ \xb3\x2a\xd7\x3b\xe2\xa7\x6e\x4c\xcb\xd1\x52\xe8\x59\x1d\x74\x8b\ \x00\x3d\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2\x4e\xcf\xce\xce\ \x9e\x2e\xbd\x1d\xdf\x08\x02\xe8\xee\xea\x29\x00\x8c\x04\x84\x06\ \x85\xaf\x08\x30\x35\x35\x55\xd0\x2f\x22\xa9\x53\xa7\x4e\x25\xc7\ \xc7\xc7\x2f\x03\x67\x81\x7e\x1d\xec\xae\xb8\x09\x4b\xdf\x76\xda\ \x4f\x26\x85\x01\x40\x08\x40\x61\x5a\xfc\xde\xe0\x60\xba\xbb\xbb\ \x3b\xa5\xdf\x8a\xcc\x24\xd0\x5e\xed\x73\xcd\x61\xed\x9a\x77\x33\ \x6e\x11\x60\x70\xf0\xfd\x74\x5f\x5f\x5f\xfa\xcc\x99\x33\xa6\xc5\ \xa5\xd0\x8f\x78\x02\x89\xb5\x9e\x63\x21\x44\x18\x78\x13\xd8\x4f\ \x69\x73\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa\x2a\x5f\xf2\xd8\x15\x9d\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x19\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x07\xab\x49\x44\x41\x54\x58\xc3\xad\ \x57\x5b\x50\x93\x67\x1a\xf6\xca\xce\xec\xcc\xf6\x62\x2f\xbc\xd9\ \xe9\xce\xec\x6e\xbd\xda\xd9\x9b\xb5\xce\xba\x3b\x7b\xb0\xad\xcc\ \x7a\xb1\xce\xce\x3a\xb3\x76\x54\x70\x75\xdb\xe2\x81\xd6\xb6\x54\ \x04\xbb\xa5\x20\x6d\xc1\x82\x06\x08\x07\x51\x42\x80\x80\x80\x02\ \x21\x81\x10\x92\x40\x48\x10\x73\x24\x21\x67\x72\x80\x04\x42\x20\ \x9c\x09\x47\xb5\x54\x78\xf6\xfb\x7e\x13\x16\x30\x58\x8b\x7d\x67\ \x9e\xf9\x2f\x92\xfc\xcf\xfb\x3e\xcf\xfb\xbe\xdf\x97\x5d\x00\x76\ \xfd\x98\x20\xf1\x0b\x82\x14\x02\x03\xc1\x75\x82\x03\xcf\xfd\xfe\ \x8f\x48\xbc\x9b\x20\xe1\x57\xaf\xef\xb5\x2a\x8c\xd6\x65\xdb\x02\ \x60\x19\x1e\x5b\x09\x27\xf1\x33\xfa\x19\x81\x22\xfc\xdc\x3e\x76\ \x48\x7e\x8a\xa0\xb9\xb6\x59\x1c\x32\xcf\xad\x42\x39\xfe\x1d\x44\ \xf6\x51\xd8\xc7\xe6\xe8\x87\x86\x3d\x7b\xf6\x58\x53\x52\xae\x2c\ \xca\x3a\x3a\x10\x4e\xe2\xe5\x49\xc3\xc4\x31\x04\xb7\x3e\x49\xf9\ \x2c\x60\x9b\x5d\x59\x53\x4d\x03\x4d\xb6\x11\x34\xeb\xfb\x20\x31\ \x79\x60\x19\x9d\xc5\xbb\xef\xbe\x3f\xc5\xab\xbe\x83\xf1\x89\x29\ \x4c\x4f\xcf\xae\x92\xef\xd7\xbc\x74\x02\x11\x9f\x0f\xbe\x1d\xe3\ \xb2\x04\x43\x4f\xb4\x33\x40\x8b\x7b\x06\xcd\x3d\x2e\x34\xeb\xec\ \xa8\x57\xf6\x20\x87\x53\x85\x32\x5e\x35\x43\xbc\xb0\xf4\x90\x81\ \xc1\x60\x5c\x26\xbf\x4b\x7c\xe1\x04\x48\x1c\x24\x38\x41\xfd\xdd\ \xea\x73\x27\xf1\xb9\x27\x04\x48\x87\x97\xc1\xd7\xbb\x20\x22\x55\ \x37\xdc\x37\xa2\xb8\x4e\x88\x2c\x56\x3e\xcc\x56\xdb\x3a\x71\x04\ \x2c\x16\x6b\x2c\xfc\xce\xe7\x27\x10\x91\x36\x93\x95\x3f\x46\x7d\ \xa5\xfe\x12\xc4\x6f\xf4\x59\x31\xb6\x02\x7e\xef\x20\x5a\x7b\x9c\ \xe0\x3f\x30\xa1\x4c\x28\x43\x46\x0e\x1b\xb2\x0e\xf9\x26\xd2\xf9\ \xc5\x65\xcc\x2d\x2c\x21\x34\xbf\x88\xbd\x7b\xf7\x5a\xc9\x3b\x7e\ \xba\x6d\x02\x24\x7e\x43\x90\x46\x3d\x35\x13\x69\x75\xb3\x80\xd2\ \x3f\x0f\xcb\xc4\xe2\x9a\x50\xa1\x5a\xb4\x6c\xf1\x59\xa0\xb6\xa0\ \xa6\x5d\x8d\x2f\xb2\x73\x71\xb7\x9e\xff\x0c\x31\x25\x9d\x09\xcd\ \x63\x62\x6a\x06\x83\x43\x81\x27\xe4\xdd\xbc\x2d\xd3\xb0\x3b\x92\ \x03\x33\x26\xd4\x53\xb5\xd3\xfb\x58\x4f\x88\xc5\x03\x21\x88\x2c\ \x43\x50\xba\x46\xd0\xed\x09\x42\xe5\x9b\x42\x9b\x73\xfc\xa9\xcf\ \x5a\x1b\xee\x2a\x74\xc8\xbc\xc9\x45\x09\xa7\x6c\x93\xcf\x9b\x88\ \x27\xa7\x11\x18\x1d\xc3\x80\x6f\x08\xa2\xd6\xd6\x25\xc2\x51\xdb\ \x28\x12\x87\xc6\x1f\xaf\x82\x2f\x62\x94\x4d\x89\x24\x90\x22\xea\ \x52\x2d\x9a\x42\xab\xe8\x18\x79\x04\xa1\xc5\xcf\x10\x53\x74\xf6\ \x0d\xa3\xd3\xe1\x87\xd4\x3c\x80\x16\xbd\x03\x0d\x5d\x06\x14\xd5\ \x0a\x90\x91\x95\x0d\x2f\x79\xf1\xc6\xaa\xa9\xd4\xb3\x73\x0b\x4c\ \xc5\x94\xd8\xdd\xef\x85\xc9\x62\x05\xb7\xbc\x12\xa5\xe5\x95\x4b\ \x13\xf3\xcb\xab\x23\x0f\x01\x37\xd9\x11\xe6\xd9\x15\x84\x97\x15\ \x13\x06\xcb\x3c\xd0\x68\xf2\xa3\xdd\xee\x5f\x27\x96\x3b\x86\x20\ \xb3\x78\xd7\x7d\xe6\x08\xa4\xf8\x3c\x33\x1b\x2a\x8d\x36\xaa\xdc\ \x53\x33\x21\x8c\x8e\x8d\x33\x15\xd3\x26\xe4\x37\x09\xf1\xc1\xc5\ \x8f\x51\x73\xaf\x01\xbe\x65\x60\xfc\x11\xa0\x23\x13\x23\xf2\xce\ \xa1\xbe\x5d\xb9\xb8\x51\x01\x83\x81\x74\x74\x4d\xa7\x1e\x0a\x67\ \x80\xa9\xb8\xdd\xea\x83\xd8\xe8\x42\x93\xca\xcc\xf8\x7c\xe5\xcb\ \x2c\x88\xda\x24\x51\x89\xa7\x67\xe7\x18\x1b\x86\x86\x47\x60\x77\ \x38\x49\x82\x3a\x24\x7c\xf8\x21\xae\xb3\x0b\xe1\x99\x5c\x80\x6f\ \x09\xd0\x90\xde\xe1\x0f\x2c\x81\xab\x1f\xc4\x7d\xef\x04\xdd\x07\ \x1d\x61\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6\x21\x48\xcc\xfd\x4f\ \x7d\xee\xd4\x22\x9d\x55\x84\xaa\x9a\xba\x4d\x3e\x47\xe4\x8e\xf8\ \x3c\x3c\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2\x62\x9c\x7e\x2f\ \x1e\x3d\x03\x01\xf4\x2f\x02\x83\x84\xbc\xc5\xff\x2d\xee\x3a\x43\ \x28\x51\x91\xf7\xf6\x05\xf1\x4e\xdc\xbf\x7d\x84\x33\x69\xe3\x20\ \x18\xf4\x33\xab\xe0\xc9\x54\x68\x35\x38\xd1\xd8\xdd\x0b\x9e\x58\ \x89\xac\x5c\xf6\x33\x3e\x47\xaa\x9e\x9c\x9e\x65\xe4\xee\xf7\x0e\ \xa2\xd7\x6c\x41\x43\x03\x1f\x27\x62\xe3\x20\xe9\xd6\xc0\x45\xcf\ \x01\x52\x90\x24\xb8\x86\xb2\x9e\x00\x6e\xb4\xdb\x50\xd1\x1b\x44\ \x85\xce\x8b\x4a\x7e\x0b\x6d\xbe\x9b\x5b\x27\xd1\xa0\x99\xf8\x16\ \x65\x22\x05\xee\x29\xf4\x28\x13\xc8\x90\x78\x35\x0b\x1a\xad\x3e\ \xaa\xdc\x63\x13\x93\xf0\x0d\x0d\xc3\x66\xef\x83\xb4\x5d\x8e\xc4\ \x4b\x97\x90\xc3\xca\xc3\xd4\x63\xc0\x4e\x7a\x49\x31\x4e\xfa\x89\ \x94\x7f\x5b\x3b\x84\x7c\x85\x13\x25\x6a\x1f\x4a\xd5\x03\xe8\xf2\ \x30\xa3\x28\x22\xf8\xf9\x33\x09\x74\x8f\x2e\xa1\xa8\xbe\x15\xa5\ \x7c\x09\xb2\x4a\x2a\xf0\xcf\xe3\x71\x51\xe5\xf6\x07\x46\xd1\xe7\ \xf2\x40\xab\x37\x20\xfd\x6a\x06\x92\xbf\x48\x83\xcd\x37\x02\x27\ \xa9\xda\x40\x1a\x4c\xe0\x7b\x88\x52\x9d\x1f\x45\xdd\xfd\x0c\x71\ \x41\x97\x1b\xc5\xdd\x1e\x88\x9c\x41\xfc\xf9\xcd\xb7\x5d\x84\xeb\ \x6c\xb4\x43\xd0\x28\xf7\x4e\x23\xa7\xfc\x1e\xb2\x4b\xab\xf1\x51\ \xea\x57\x48\xfe\x6f\xea\xfa\x58\x51\xb9\x47\x82\xe3\xf0\x0c\xf8\ \x60\x34\x99\x51\xc9\xab\xc2\xfb\x67\xcf\x41\xfe\x40\x03\x3f\xe9\ \x6e\xb2\x8d\x19\xb9\x6f\x69\x06\x19\xd2\x9b\x2a\x2f\x72\xe5\x0e\ \xe4\x75\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca\x29\xc2\x53\ \xb8\xdd\x29\xdc\x2b\x76\x04\x90\x51\xc8\xc5\x95\x6b\x79\x38\x11\ \x9f\x80\x9b\xb7\x6e\x33\x63\x15\x91\xdb\x6a\x73\x40\x22\x6d\xc7\ \x85\x84\x0f\x50\x74\xbb\x0c\xf3\x2b\x80\x9f\x34\x58\xf7\x24\x20\ \x1c\x7c\x84\x4a\xd3\x18\x38\xfa\x61\x86\x9c\x56\xfd\x55\xb3\x1e\ \xac\x0e\x3b\xb8\x3a\x1f\xd9\x21\x1e\x7a\x2f\xe0\x13\xbc\xba\x5d\ \x02\x26\xbe\xc1\x83\x94\x6f\xd8\x38\x9f\x9c\x8a\x03\x7f\x3d\x04\ \x63\xaf\x99\xe9\x6e\x2a\xb7\x46\xd7\x83\xa4\xcb\xc9\x48\xff\x3a\ \x8b\x8c\xd5\x3c\x53\xb5\x71\xf6\xa9\xdc\x35\xf6\x69\x5c\x97\x59\ \x19\xd9\xbf\x6e\x21\xa7\xa0\xd4\x82\x74\xbe\x1a\x57\x9b\x34\x60\ \xc9\xcc\x10\xbb\x82\xf8\xe5\xaf\x5f\xa7\x67\xc0\x3b\xe1\x75\x1f\ \x35\xcc\x35\xdd\x66\x7c\x94\x96\x85\xb8\x73\x17\xf1\x97\x43\x31\ \x4c\xd5\x74\x99\xf0\xaa\xaa\x71\xfa\xf4\x19\x68\xcc\x0e\x8c\x92\ \x2d\x36\x14\x1e\xab\x5a\xc7\x0c\x78\xe6\x71\x70\x0d\x23\x4c\xa3\ \x65\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6\x5e\x94\x74\x39\xd0\x66\xf7\ \xaf\x1e\x3d\x11\x4b\x47\x2e\x6f\xc3\x79\x13\x35\x2c\x5c\x99\x1a\ \xf1\x97\x3e\xc7\xd1\xd8\x33\xf8\x38\x31\x09\x86\x5e\x13\x1a\x9b\ \x04\xf8\xdd\x1b\xfb\x51\x4f\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\ \x93\x60\x2b\x5d\x0c\x39\xf5\xbc\xf0\xbe\x67\xbd\xea\xcc\x16\x3d\ \x4a\x55\x1e\x08\x6d\x01\x94\xd4\xf1\x43\xe1\x65\x53\x40\xf0\xca\ \xf7\x25\x60\x2b\x6e\x6a\xc7\xa9\x84\x44\xc4\x1c\x39\x8a\xdc\x7c\ \x36\x5a\x5a\xc5\x38\x14\x13\x83\x2f\x39\x35\xc8\x14\x6a\x98\xe6\ \xa2\xd5\xd2\x27\xf5\x9a\x7a\x4c\x13\xa1\x49\x64\xb7\x99\x90\xdb\ \x6e\x46\xb9\xda\x8d\x06\xa5\x76\x39\x2c\x39\x3d\xf9\x4e\x13\xec\ \xd9\x72\xd4\x47\x0d\x3b\xab\x46\x88\x63\xff\x39\x8f\xdf\xee\xfb\ \x3d\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17\x70\xa3\xad\x07\x19\ \xc4\x4f\x4a\x14\xe9\x6e\xba\x58\xa8\xef\x2c\xfa\x94\x98\x50\x28\ \xb7\x40\xe9\x0e\x3c\xf9\x57\xec\x29\x2a\x77\x2d\xc1\x67\x04\xfb\ \xb6\xb9\xe4\x44\x8d\xbe\xcc\xb2\x5a\xfc\xe3\xe4\x19\x1c\x3c\xf4\ \x37\xb0\x72\xf3\xb0\xef\xc0\x1f\x50\x20\xd1\x21\x89\x27\x65\x2a\ \xa6\x4b\x85\x3e\xbf\x21\xd5\x46\xe4\x2e\x90\x5b\x21\xb0\x0c\xae\ \xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87\x6f\x3c\xaf\x3c\xe7\x96\x15\ \x35\x9c\x69\x45\xe5\xf8\xfb\xb1\x58\x1c\x3f\x19\x87\x37\xf6\xef\ \xc7\x8d\x3a\x11\x92\xab\xa4\x0c\x21\xed\x70\xea\x35\x55\x21\x8b\ \x34\x5b\xc9\x03\x37\x2a\x34\x6e\xd4\x49\x3a\x17\xc3\x72\x73\x08\ \x8e\x6d\x95\xfb\x87\x24\xe0\x4a\x65\x73\x70\xe4\xf8\x29\x1c\x3e\ \x7c\x98\x8c\x63\x2e\x32\x05\x2a\x5c\x22\xd5\xd3\x5d\x7e\x4d\xdc\ \x0b\x36\xe9\x74\x76\xa7\x1d\x77\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\ \x1a\x95\xfb\x22\xbd\x49\xfd\x80\x0b\x6d\xf4\x04\x32\x4a\x78\x4c\ \x0f\x9c\x4b\x49\xc3\xb5\xa6\x2e\x7c\xc2\x6d\x65\x36\x59\xf1\x83\ \x01\x5c\x97\x9a\xc1\x51\x7b\x20\xf3\x04\xd7\xce\x25\x26\x05\x36\ \xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce\x5e\x4e\x45\x81\ \x58\x85\x78\xf6\x5d\x5c\xa9\x55\x90\xaa\xfb\xc0\x96\xdb\x50\xad\ \x75\xe3\xae\x54\x41\x2f\x10\xca\x0d\x72\xbf\xba\xd3\x6a\xa3\x05\ \xb7\xa2\x51\xf8\x1d\xaf\x43\x8d\x4f\xb9\x2d\x88\xcb\xe6\xe1\x9a\ \x48\x8f\xaa\x1e\x2f\x9a\x35\xe6\xc7\x7f\x7a\xf3\x2d\x57\x78\xac\ \xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5c\x75\x1f\xde\xcb\ \xaf\x45\xb9\x76\x00\x32\x67\x60\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\ \xd2\xa9\xdc\x3b\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9d\x50\ \x0b\x39\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3\x2f\x22\xf7\x0e\ \xff\xda\x6d\x8a\xdd\x61\x99\xd5\x1b\xb6\xd8\x6b\xbb\x5e\x32\xbe\ \x2f\x89\xff\x01\x66\xb9\x5f\xfc\x11\x80\x3d\xcf\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x04\xca\x57\xa7\ \x00\x6e\ \x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\x7c\x5a\x07\ \x00\x63\ \x00\x6f\x00\x70\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0a\xc7\x57\x87\ \x00\x63\ \x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x08\xc8\x58\x67\ \x00\x73\ \x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\xa8\xba\x47\ \x00\x70\ \x00\x61\x00\x73\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\xc1\x59\x87\ \x00\x6f\ \x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x03\x58\ \x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\xdd\ \x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xc5\ \x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x12\x6c\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x08\x96\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/mainwindows/sdi/sdi_rc3.py0000644000076500000240000010725412536324427022621 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:45:53 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x03\x54\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x02\xe6\x49\x44\x41\x54\x58\xc3\xd5\ \x97\xcd\x4e\x13\x61\x14\x86\xeb\x35\x94\x95\x7b\x71\xe1\xd2\xc4\ \xe0\x05\xb8\xe2\x0e\x5c\xb8\xf4\x02\x5c\xb1\x30\xea\x05\x18\x96\ \x26\x62\x58\xb8\xb0\x91\x58\x20\xd1\x9d\xbf\x89\xa4\x14\xb1\x52\ \xa4\x48\x45\x94\xfe\xd0\x02\x43\xff\xa6\x9d\x19\xa6\x65\x80\xe3\ \x79\x7b\xfa\x85\x51\x4a\x82\xc9\x21\x86\x49\xde\x9c\x33\xa7\xf3\ \xcd\xfb\x9c\xf3\x4d\x9b\x4e\x84\x88\x22\xff\x53\x91\x73\x01\xc0\ \xc7\xd5\x90\x6e\xff\xa5\xfb\xac\xc7\x3d\x3d\x64\x0d\xa9\x02\xf0\ \x31\x32\x3c\x3c\xbc\x6a\x34\x3a\x3a\xba\x19\x56\x3c\x1e\xaf\x26\ \x93\xc9\x56\x3a\x9d\x76\x13\x89\x44\x6b\x60\x60\x20\xcd\x6b\x6e\ \x68\x02\xa4\x38\xd2\xe1\xe1\x71\x99\xba\xef\xb7\xc9\xb2\x2c\xda\ \xdf\xdf\x27\x86\xf1\x78\xcd\x18\xeb\x8a\x1a\x40\x3f\xf3\xb0\x1c\ \xc7\xa5\x4c\x66\xb9\x0b\x14\x04\x01\xc5\x62\xb1\x3a\xaf\x7b\x70\ \x1a\x88\x53\x01\x1c\x1c\x10\x77\x77\xb2\x6c\xdb\xa1\xf9\xf9\xcf\ \x64\x0e\xd7\x75\xe9\xf9\xc4\x44\x17\x42\x05\x00\x26\x7b\xc1\xc9\ \xaa\x37\x1c\x4a\xce\xcd\x53\xf8\x70\x5d\x0f\x8b\x17\x54\x00\x82\ \x10\x40\x67\x4f\x14\xce\xed\xa6\x47\x1f\x67\x66\xe9\xf5\x9b\xb7\ \x14\x9f\x9c\xa4\xa9\xa9\x69\x7a\xf7\xfe\x03\x45\xa3\xd1\x65\x5e\ \x7f\x41\x05\xc0\xef\x10\xed\xb6\x25\x86\x85\x9a\xe3\x05\x94\x5d\ \xcd\xd1\xe4\xf4\x2b\x7a\x32\xfe\x94\x9e\xc5\x5e\xd0\x4c\x62\x0e\ \x8b\x17\x55\x00\xda\x81\x18\xf5\x13\x20\x3c\xff\x90\x6a\xcd\x36\ \x15\x37\xab\x94\x2f\x6e\x53\x89\x63\x8d\xb7\x85\xd7\x7e\x51\x01\ \xf0\x79\xcc\xcd\x5d\x1e\xb5\xc7\x7b\xdb\xee\x9f\x3b\xbe\xe4\x88\ \x5d\xb8\xbd\xee\xe2\x94\xca\x33\xe0\x75\xe4\xc6\x75\x57\x62\xd8\ \x10\x39\xea\xe6\x33\x44\xd4\x01\xa7\x06\xe0\xf4\x3a\xad\x39\x22\ \x98\x98\x68\x72\x80\x98\x6b\x50\x53\x9d\x00\x00\x2a\x2d\xb9\x31\ \xe2\x4e\x53\x8c\x10\x0d\x04\xf2\x6d\xfb\x28\xb6\x7c\x45\x00\x9b\ \x3b\xdb\x6a\xfc\x69\x8e\x3c\x6c\x88\x1a\xae\x39\x13\x80\x3a\x8f\ \xb7\x54\x23\x2a\xd7\xc5\x04\x06\x06\x00\x35\x28\x9c\x17\xab\xbc\ \x25\xbb\xca\x13\xc0\x4d\x61\x0e\x15\x2a\x72\x6e\xcc\x7e\x5a\x02\ \x68\x6a\xdd\xad\xf1\x94\x27\x00\x53\xdc\x1c\x71\x6d\x5b\x40\x60\ \x9a\xab\x1c\x75\x9e\xeb\x81\x41\x15\x47\x11\xc0\x6a\x89\x31\x0c\ \xd6\x77\x04\x20\x0c\x64\x26\x62\xb6\x69\x75\x8b\xa8\xaa\x09\x50\ \xb6\xc5\xbc\xd0\x03\xf8\xbe\x29\x63\x87\x29\x60\x0c\x18\x84\x1c\ \x00\x5b\x4d\x45\x00\x74\x03\x53\x98\xad\x94\xc5\x1c\xe7\x46\xe6\ \x1c\x00\xc8\x71\x5d\xa9\xa1\x08\x80\xfd\xfc\x56\x12\x73\x33\x01\ \x08\x35\x18\x42\xe8\xda\x7c\x8e\x29\xa8\x4e\x00\x5b\x00\x03\xc8\ \x98\x67\x36\x04\x00\x32\xe6\x85\xde\xf8\x17\x0b\xfc\x2c\xd8\x8a\ \x00\x18\x67\x3a\x4f\xb4\x54\x14\x23\x98\x02\x00\x02\x0c\x3e\xfb\ \xc5\x53\x28\xf0\x43\xb8\x66\x49\xf7\x6b\xf9\x52\x87\xd7\xbe\x54\ \x01\xc8\x55\x8f\xba\x4e\xad\x4b\x0e\x90\xaf\x85\xde\xb7\xc2\x92\ \x3d\x4f\xa6\xb3\xde\xa3\xb1\x71\xeb\xda\xd0\xf5\x15\x98\xb3\x6e\ \xa9\x00\x6c\x34\xa4\x6b\x18\xff\xe0\x11\x7f\x5a\x17\x53\xd4\x13\ \x0b\x59\x6f\xe4\xee\xbd\xe2\xa5\xc1\xcb\x4b\x7c\x6d\x8c\x75\x87\ \x35\xa8\xfa\xb7\x1c\xdd\x65\xd9\x3c\x8f\x1f\x19\xfe\x9e\xcf\x1e\ \x37\xbd\xc9\xba\x78\x26\x6f\x46\x00\x68\xf2\xff\x81\x99\x94\x9e\ \xe9\x3f\xbf\x19\x01\x42\xd3\xf4\xfc\xbd\x9c\x9e\xa5\x7e\x03\x51\ \x6c\x25\xa1\x92\x95\x0a\x77\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x05\x3a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xcc\x49\x44\x41\x54\x58\xc3\xb5\ \x97\x5d\x4c\x5b\x65\x1c\xc6\x77\x6f\xbc\xd9\xe5\x12\x49\x20\x71\ \xd7\x26\xe3\x4e\x13\xb8\x70\xd1\x85\x44\xbd\x50\xe3\x10\x18\xe5\ \x2b\x2e\x26\x4a\x04\x27\x86\xaa\x8b\x99\xe0\xd0\xa2\x6c\x19\x86\ \x39\x17\xdc\x1a\x16\x98\x80\x40\x6c\xa6\x43\xca\x20\x2b\x83\x1e\ \x28\xcc\xda\xd1\x96\xd2\xd2\x4a\x7b\xfa\x01\xa5\xd0\xef\x16\x1e\ \xdf\xff\xdb\x1d\xc7\xcc\x04\x2a\x87\x93\x3c\x39\x6f\x21\x9c\xe7\ \xf7\x3c\xef\x47\x0f\x87\x00\x1c\xca\x46\xcf\xbd\xfa\xe9\xbb\x4c\ \x5a\x26\x61\x0f\x6a\x60\xca\xd9\xe9\x79\xd9\x9a\x3f\x5d\x50\xf2\ \xa5\xc1\xe9\x8f\xa7\x57\xc3\x40\x30\x02\x84\xa2\x19\xad\xc7\x32\ \x8a\x27\x81\x58\x22\x73\xbf\x79\x6b\xda\x4b\x10\x72\x02\x1c\x7b\ \xe7\xac\xda\x1c\xd8\xc8\x98\x12\x40\x84\x99\x85\xe3\x19\x91\x31\ \x29\x1a\x4b\x61\x25\x94\x44\x38\x9a\x42\x73\x87\xc6\xbe\x13\xc4\ \xff\x02\x90\x12\x93\x79\x24\xf1\xc8\x58\x92\xcf\x1f\x84\x5d\x8c\ \xc2\xe5\x09\x22\x12\x4b\xa3\xf4\xc3\xef\x4d\x34\x75\x59\x01\xb0\ \xeb\xd8\x36\xd5\x90\x9e\x3a\xfc\xcc\xb9\xe7\x5f\x2e\x11\x3f\x56\ \x9e\x45\x45\x55\x0d\x2a\x99\xde\xaf\xad\xc3\x9d\xb1\x89\xc7\x00\ \xac\xb6\x25\xfc\xb9\xe8\x87\x6b\x15\x58\xf6\x04\x10\x08\xc6\xd2\ \xaf\x9c\xbe\x70\x9f\x41\x1c\xd9\x15\x80\x5d\x87\x99\x1a\x8a\x8a\ \x8a\xcc\x92\x5a\x5b\x5b\xdd\xa4\xaf\x55\xad\xfe\xaf\x54\xdf\xa6\ \x06\x06\x06\x31\x39\x35\x85\xd9\xb9\x39\xe8\x26\x26\x50\x50\x50\ \x80\x21\xcd\x6f\x7c\xde\x49\xa6\xf9\x05\xcc\x98\x5c\x1c\xc0\xe1\ \x4f\x41\xf4\x85\xf0\x43\xaf\xce\xcd\x00\x6a\xf6\x02\x50\x43\x66\ \xd8\xe5\x8a\xc7\xe3\xf0\x7a\xbd\x48\xa7\xd3\x98\x9c\x9c\x44\x65\ \x65\x35\x66\x67\x8d\xbc\x81\x07\x66\x1b\x74\xd3\x16\x0e\x40\x32\ \x2d\x78\xf0\xdd\x8d\x51\x8f\xac\x00\xe1\x70\x18\x46\xa3\x91\x8f\ \x53\xa9\x14\x7e\xea\xed\x45\xe3\x27\x9f\x61\x86\x41\x38\x96\xdc\ \x50\x77\x75\xe3\x4c\x43\x23\xce\x35\x9d\xc7\xed\x91\x71\x5c\xbc\ \x3e\x2c\x2f\xc0\xc6\xc6\x06\xf4\x7a\xfd\x63\x40\x7d\x7d\xfd\x50\ \x32\x88\xd0\x46\x1c\x66\x9b\x0b\x82\xc1\x88\xa9\x19\x13\xac\x0e\ \x11\x97\xba\x64\x6e\x80\x00\xa6\xd8\x3a\xd8\x7e\x45\x22\x11\x94\ \x2b\x2a\x30\xae\x13\x40\xe7\x04\x6d\x57\xda\xaa\x34\xbe\x7c\x53\ \xe6\x35\x40\x66\x3a\x9d\x0e\xc3\xc3\xc3\xe8\x65\xf5\xf7\xf7\xf7\ \x43\xab\xd5\xa2\xaa\xba\x06\x63\x77\xf5\x90\x0e\x2a\x77\x90\xed\ \x04\xb6\x0e\xda\xbb\x65\x06\xa0\x79\xb7\xdb\xed\x18\x1a\x1a\x42\ \x67\x67\x27\x7a\x7a\x7a\x38\x50\x49\x69\x19\x6e\x69\xf5\x10\xd7\ \x00\x6f\x08\xb0\xf9\x00\x67\x00\xb8\xd0\x25\x33\xc0\xd6\xd6\x16\ \xdf\x09\x81\x40\x00\xa2\x28\xc2\xef\xf7\x63\x6d\x6d\x0d\xa7\x14\ \x95\xd0\xfc\xae\xe7\xa9\xc9\x7c\xc1\x0b\x98\x3d\x40\x9b\xdc\x00\ \xdb\x41\x36\x37\x37\xf9\x76\xa4\x56\x14\x15\xd5\xe8\xfb\x55\xe0\ \xa9\x1d\x81\x47\x00\xe7\x3b\x0f\x00\x80\xcc\x25\x80\x24\x33\x4f\ \x24\x12\x28\x2b\xaf\xe2\x00\x7f\xb8\x00\x8b\x98\x01\xa0\x36\x5a\ \xd5\x07\x30\x05\xff\x98\x27\x93\x3c\x3d\x4d\x49\xc9\xa9\x4a\x0e\ \xa0\xb7\xb3\x03\x89\x3d\xc5\xf8\x17\x30\xb1\x00\x7c\x71\xf5\x00\ \x00\xa4\xea\xc9\x98\x14\x8b\xc5\x50\xa6\xa8\x82\x7a\x48\xc0\x98\ \x19\xb8\x6b\x05\xe6\x9c\x99\xfb\xe7\x57\x64\x04\x90\xd2\x53\x6a\ \x02\x88\x46\xa3\xdc\x3c\x14\x0a\xa1\xb8\xb4\x02\xd7\x06\x05\xdc\ \x66\x87\xe4\xa0\x01\x1c\x64\xc4\x04\x28\x3b\x64\x06\x48\x3d\x9c\ \x73\x12\x99\xd3\xb9\x40\x20\xc5\x65\x55\xb8\xd8\x2d\xa0\x7f\x3a\ \x63\xae\x7d\x90\x69\xe0\xa3\x76\x99\x00\xfe\x5d\x3d\xa5\x26\xad\ \xae\xae\x72\x88\xb7\x4a\x2a\x70\xb9\x57\xc0\x3d\x1b\xb8\x7e\x9e\ \x01\xee\xcc\x03\x67\x2e\xed\x13\x40\xaa\x9d\x44\x8b\x8e\x92\xd3\ \x71\x4c\xdf\x01\x2b\x2b\x2b\x58\x5f\x5f\xe7\x10\x27\x59\x03\xdf\ \x74\x09\x50\x4f\x00\xbf\xcc\x65\x1a\xb8\x32\x06\x34\xec\xa7\x01\ \xc9\x58\xda\xeb\x64\x4e\x69\x29\x39\x1d\x44\x04\x40\xf5\xd3\xcf\ \xde\x7c\x5b\x81\x96\xeb\x02\x4f\x7e\x75\x1c\xb8\x71\x0f\xf8\x71\ \x2c\x9e\x7e\xbd\x4e\x6d\xa6\x37\xaa\xac\x00\x9e\x64\x2c\x6d\x37\ \x32\x25\x00\xd1\x23\xf2\xe4\x12\xcc\x1b\x27\x15\x68\xef\x11\xa0\ \xbc\x66\x5b\x7f\x4f\x35\xe2\x3c\x71\x9a\xbf\x8e\x69\xf7\xfc\x4a\ \x26\x01\x90\xa9\x24\x69\xb5\x53\x42\x32\x0f\x06\x83\x70\xb9\x5c\ \xdc\x90\x5e\x4a\xe8\xb3\xc7\xe3\x81\xdb\xed\xc6\xf1\x13\xaf\x25\ \x9f\x7d\xa1\x9c\x4c\x3b\x98\x8a\x99\x8e\x3e\xc9\x78\x47\x00\x95\ \x4a\xc5\x01\xa4\x15\x2e\xcd\x37\x19\x52\x52\x3a\xf7\x29\xb5\xc3\ \xe1\xe0\x22\xe3\xc5\xc5\x45\x0e\xf5\xe2\xf1\x97\x5c\xf4\x1e\xb9\ \x93\xe9\xae\x00\x2d\x2d\x2d\x6e\xe9\x60\xa1\xd4\xd2\x97\x0d\x8d\ \x97\x97\x97\xe1\xf3\xf9\x60\xb3\xd9\xf8\x7d\x69\x69\x89\x43\x10\ \x00\x8d\x0b\x0b\x0b\xcd\xb2\x00\xd0\xa2\x92\x52\x93\x11\x8d\xe9\ \x4e\xdf\x78\x54\x3b\x35\x60\xb5\x5a\x79\xf5\xd4\x0a\xfd\xce\x60\ \x30\x24\xf2\xf2\xf2\xee\xb3\x67\x1c\xd9\x17\x40\x53\x53\x93\x5b\ \x9a\x67\x4a\x4f\x22\x13\xaa\x9a\xc6\x16\x8b\x99\x37\x40\x9f\x47\ \x47\x47\x23\x6d\x6d\x6d\xde\xfc\xfc\x7c\x13\xfb\xdb\x41\xa6\xb2\ \xbd\x9a\xff\x27\x40\x73\x73\x33\x9f\x02\x4a\x47\x10\x54\x3f\x55\ \x3f\x3f\x3f\xcf\xeb\xd6\x68\x34\x91\xba\xba\x3a\xe7\xc3\xb4\x5d\ \x4c\x1f\x30\x1d\xcd\xc6\x78\x47\x00\xa5\x52\xe9\x76\x3a\x9d\xbc\ \x62\x4a\x4a\x6f\x3e\x94\xb4\xbe\xbe\xde\x99\x93\x93\x23\x99\x16\ \x67\x53\x75\x56\x00\x8d\x8d\x8d\x6e\x8b\xc5\x82\x81\x81\x81\x48\ \x6d\x6d\xad\x33\x37\x37\x57\x56\xd3\xdd\x00\xf8\x7f\x46\x4c\xc2\ \x41\x99\x6e\xd7\xdf\x43\x39\x56\x18\x85\x70\xc8\x04\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\x2b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\xbd\x49\x44\x41\x54\x58\xc3\xed\ \x57\x6b\x4c\x93\x57\x18\x3e\x23\x71\xc9\x32\xe9\x16\x97\xa8\x54\ \x65\x38\x9d\x02\x15\xf6\x03\x87\x32\x93\x01\x66\x2c\x5b\x70\xc4\ \x30\xff\x60\xa2\x2e\x1a\x3a\x1d\x4e\x03\xba\x31\x89\x5b\xb3\x80\ \xd9\x0c\x84\x02\x19\x58\x1c\x14\x8b\x85\xb2\x82\x95\x5e\xe4\x66\ \x0b\x8e\x31\xf8\xc3\x46\xcb\x2d\x81\x15\xdc\xa8\xc2\x1c\x1b\xb7\ \x6a\x69\x91\xf2\xee\xbc\x87\xaf\x0c\xdc\xb8\x0d\x61\xd9\xb2\x93\ \x3c\xed\x97\xf3\x7d\xfd\xde\xe7\xbc\xef\xf3\x5e\x4a\x00\x80\xfc\ \x93\x20\xff\x0a\x02\x74\x09\x28\x44\x14\xd9\x14\x71\x14\x01\x2b\ \x46\x80\xae\xdd\x64\xdd\xc6\x66\x22\x4c\xf8\x95\xc4\x8b\x47\xc8\ \xa1\xd3\xf7\xc8\x8e\x97\x3b\x38\x32\x61\x2b\x41\x20\x85\x9c\xbe\ \x30\x48\x2e\xdd\x80\x19\x40\x32\xab\x79\x4d\xf4\xbe\xfb\x72\x13\ \x68\x64\x06\x91\x04\x5e\xa3\x51\xf4\x06\xee\x85\x47\xf5\xd0\xbd\ \x83\xcb\x4d\x20\x9b\x9d\xf6\x40\x74\x2f\xbd\x16\x32\x3d\x20\x89\ \x3f\x48\xa5\x2c\x1b\x01\x8c\x31\x79\xc1\xbb\x9d\x88\x4b\xc6\xd7\ \xc6\x26\x0e\xa0\x10\xb9\xfd\x42\xfe\xc5\x2b\x36\x46\x8c\x12\x5c\ \x4e\x02\x93\xa7\xa7\xa7\x0d\xcc\xd3\x39\xb9\x98\x63\x36\x14\x0a\ \xd2\xe4\xa3\x2b\x41\x20\x8c\x29\x9e\x2a\xdf\x37\x47\xeb\xdc\x7b\ \xb5\xcc\x89\x9e\x40\x44\x96\x54\x83\x2b\x2c\x0b\x36\x46\x48\x08\ \x13\xf5\x64\x2a\x7b\x2e\x54\x03\x01\xf8\x03\x37\xbf\xc0\x0e\x34\ \x2a\x54\xdf\x62\x88\x52\xd5\x2c\x58\x03\x74\x1d\x16\x08\x04\x7a\ \x45\x55\xf5\xc8\xa0\x6d\x74\xc2\xd4\x73\xf7\x21\xbe\x73\x51\x95\ \x90\xae\x8f\xd0\x13\xcf\xe5\x94\x83\x87\xb4\x02\x9e\xcc\x2e\x03\ \xd4\x06\xdd\xaf\x99\xcb\xb0\xaf\xaf\xaf\x3e\xbf\xd2\x60\xb5\xdb\ \xed\x80\xf8\x79\xe4\x3e\xc4\x5e\xab\xb4\xb9\x88\x2f\x86\x80\x27\ \xd3\xc0\x67\xf9\x8e\x19\xf5\x60\xd7\x5e\x33\xba\x76\xda\x73\xee\ \x68\xd8\xc7\xc7\x47\x9f\xab\xab\xb0\x0e\x0f\x0d\xc1\x10\x87\xb2\ \xf6\x2e\xe7\x96\x37\xf7\x77\x73\x61\xd8\xbd\xe8\x5e\x80\x2f\x66\ \x9a\xa0\x86\xdf\xa9\x36\x42\xf7\xf0\x03\xd8\x19\x9f\xd4\xcf\xa5\ \xe7\x1a\x8a\x98\x2d\x7e\xfe\x6d\x97\x54\x1a\x6b\x5f\x5f\x1f\xb8\ \xd0\xd1\x73\x07\x62\x72\x15\x56\x4e\xc4\x87\x97\xd4\x8c\x30\x14\ \xe9\x15\xb7\x1e\x38\x1c\x0e\x40\xa4\xd6\x19\x31\x9e\x85\x9b\x05\ \x7e\x6d\xa9\x25\x1a\x5b\x97\xd9\x0c\xe6\x2e\x0a\xf3\x24\x14\xdf\ \x36\x8e\x7b\xbd\x1e\xd1\xcd\x42\xc8\x09\x6f\xa9\x04\x3c\xd1\xbd\ \x56\xab\x15\x10\x77\x7f\x1b\x84\xf3\x92\x5c\xbb\x52\xa9\x84\xfa\ \xfa\x7a\x30\x99\x4c\x0c\x75\xdf\x35\xc1\x51\xb1\x64\x18\xc9\x51\ \x44\x3e\xb6\x76\xcc\xb4\x40\x4f\x93\x5f\x7e\xd3\xd6\xdf\xdf\x0f\ \x32\x99\x0c\x44\x22\x11\xa8\x54\x2a\x90\x4a\xa5\xa0\xd1\x68\x20\ \x4b\x5b\x39\xbe\xe9\x95\xe0\x1f\xb8\x53\xaf\x79\x2c\xf3\x00\x97\ \x8e\x22\x9e\xc7\x86\xe6\x53\x29\x19\xf6\x82\x82\x02\xe6\xe2\xa0\ \xa0\x20\xe0\xf1\x78\x60\xb1\x58\x40\x5b\x5e\x01\xfb\xcf\x26\x0c\ \x2d\xa6\x53\xce\x67\x94\xcf\x09\x4c\x83\xe2\x5b\x7b\xe6\xc2\x60\ \x9a\xb2\x14\x14\x0a\x05\x88\xc5\x62\xc8\xcc\xcc\x84\xa2\xa2\x22\ \x50\xab\xd5\xd0\xd9\xd9\xc9\x60\xec\xfe\xc9\xb9\xc9\xdb\xa7\x75\ \x2e\xb7\xcf\x4b\x80\xae\xb7\xd8\x29\x70\x0e\xc0\x6a\x97\xac\x78\ \x88\xca\x7f\x82\xe2\x29\x89\x0e\x3e\x97\x2b\x21\x5b\x96\x0f\x07\ \x63\xe3\x47\x84\x1f\x26\xd8\x92\x72\x64\x8e\x6f\x1a\xbf\x07\xa3\ \xd1\x08\x2d\xad\x2d\xf0\xcb\xc0\x20\x1c\x38\xf1\xbe\x05\xb3\x62\ \xc1\x04\x5c\x69\x84\x85\x85\x84\x46\xdc\x26\xe7\x32\xac\x2c\xcf\ \x33\xb5\x13\xec\x3b\xe3\xba\xd3\x33\xaf\x82\xe5\xfe\x7a\x89\x06\ \x9e\xde\xfc\x62\x1b\xf7\x3c\x92\x8d\x7b\x66\xab\x4f\x5b\xca\x35\ \xed\x58\x43\x43\x3d\x34\x34\x34\x80\xa5\xb7\x17\x32\x14\xc5\xc3\ \xf3\xe9\xc0\x65\x3c\x92\xe5\x28\x9e\x36\x5d\xe5\x9c\x2a\x32\x78\ \x7d\xf4\x83\x2e\x5a\x6c\x12\x31\x0c\x1b\x25\xea\x71\xf7\x2f\xcb\ \x27\xef\x05\x87\x5f\xfe\xd3\xe4\x44\x0b\x4c\x68\xf4\xc9\x3e\x75\ \x95\x1e\x0c\x06\x03\xb4\xb7\xb7\xc3\xd7\xc6\x96\x31\xae\x81\x09\ \x66\xf1\x36\x6d\x38\x68\x3c\x49\x3a\x3a\x65\xf8\x62\x81\x83\x44\ \xbd\x57\x43\xb6\x0a\x5e\x9b\x2a\xc3\x94\x5c\xb0\x42\x0f\xab\x24\ \xb4\x04\x9f\x4a\xaa\x9b\x43\x37\x31\x28\xd4\x4f\xf2\x0a\xc7\x74\ \x3a\x1d\xd4\xd6\xd6\x82\xc9\x7c\xdb\xb9\x61\x9b\xf7\x5f\xea\x62\ \xb2\xe5\x7e\x9c\x75\x1f\x0d\xf3\xb2\xd4\x4e\xf2\xf6\xb1\xeb\x2e\ \xb6\xae\x94\xc3\x90\x6c\x97\x55\xc1\x4b\x57\xab\x80\x9c\x4d\x6e\ \x5a\xd0\x1c\x49\xbd\xb1\xe7\x88\xb0\xef\xca\x57\xc5\x50\x5a\x5a\ \x0a\x1d\x3f\xf6\x4c\x04\x06\x87\x74\x3c\xaa\x0b\xc2\x84\x46\x8d\ \x07\xc8\x6f\x02\xd9\xf9\xaa\x7e\x9a\xf1\x30\x46\x8e\x36\x20\xaf\ \xbc\x4a\x78\x43\x69\x00\x92\x28\x1d\x98\xcd\x95\xb3\x79\xc3\x7d\ \x3d\xbf\xf9\x44\x6a\xa6\x5d\x2e\x97\x43\x53\x4b\x2b\x44\x1c\x7b\ \xf7\xce\xf4\x14\x25\xae\xf1\x8a\xf5\x77\x9c\xf5\x70\x02\xc2\xd9\ \x0f\x89\xd1\x81\x03\x4f\x8e\xf7\xdc\xd2\x69\xe7\xf3\xdf\x75\xfc\ \x6f\x14\x2e\x36\xd2\xef\xd8\x17\x69\x49\xbe\x2c\x9d\xc8\xd3\x96\ \x3b\xa7\x0f\x31\x8c\x25\xc6\xdf\x9f\xba\x77\x5f\x71\x35\xa0\x41\ \x6c\xb5\x08\x8c\xf9\x94\xf1\xe0\xf0\x33\x4b\x9a\x7c\x68\x13\x5a\ \xbd\xce\xa3\xd9\x6b\x4f\x48\xf7\x0c\x0f\xb0\x0f\xfe\xf3\x87\xc8\ \xf9\x2f\xee\xb9\x49\x6e\x00\xf6\x7b\x3e\xed\xf7\x08\x1e\x2a\x3e\ \x5d\xe5\x58\xaa\xf1\x47\x5a\xf5\xb6\x59\x0b\x11\x1d\xb3\x43\xc9\ \x91\x38\x09\x39\xf9\xa9\x96\x21\xfa\x5c\x1a\x0d\xcf\xb3\xff\xff\ \x37\xfc\x4f\x13\xf8\x1d\xe7\x87\x19\xb9\x44\xc3\x01\xcf\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xa3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x04\x35\x49\x44\x41\x54\x58\xc3\xe5\ \x97\xcd\x8f\x54\x45\x14\xc5\x7f\xb7\xea\xd6\x7b\xaf\xdb\x6e\xc7\ \xf9\x40\x9d\x89\x46\x4d\x34\x99\x44\x8d\x1a\x48\x98\xc4\x8c\x1f\ \x1b\xfe\x02\x4c\x5c\xf1\x07\x18\x16\x2e\x4d\x5c\x6b\x58\xc3\x8e\ \xc4\x8d\x1b\x17\xce\x82\x68\x74\x41\x5c\x18\x0d\xe2\xc4\xc6\x00\ \x3d\x60\x50\x51\x19\x60\x02\xa2\x0e\x0c\x83\xd3\xfd\x5e\xf7\x94\ \x8b\xaa\xee\xf9\x60\xe6\x0d\x84\x51\x16\x56\x52\xa9\xce\x7b\xb7\ \xeb\x9e\x3a\xf7\xd4\xa9\x7a\xea\xbd\xe7\x7e\x36\xe5\x3e\xb7\x3e\ \x80\x5d\xbb\x76\xbd\x03\xec\xfd\x8f\xf2\x4e\x35\x1a\x8d\x03\xeb\ \x19\xd8\xbb\xef\xbd\xa3\x3b\x1f\x1f\x76\x00\x9c\x3c\x3a\xcf\xcc\ \x97\x37\x58\x9c\xef\xdc\x53\xa6\xda\xa0\xf2\xdc\x6b\x03\xbc\xb8\ \x67\x10\x80\x8b\x7f\x16\x7c\xf8\xee\x1e\x80\xdb\x00\x70\xfc\xec\ \x1c\xdf\x3f\x30\x04\x78\x2e\xfd\xb8\xc0\xfe\xb7\xce\x6f\xcb\x72\ \x0f\x1d\x79\x9a\x0b\x23\x96\xd3\x9f\x1f\x64\xfc\xd5\x7d\x9b\x6b\ \x40\x45\xb0\x16\x40\x78\x70\x2c\x23\xcb\xb2\x6d\x01\x30\x30\x96\ \x61\x8d\x50\x1b\x7c\x14\x23\x25\x22\x14\x2b\xd8\x18\x91\xd5\x95\ \x73\xe7\xce\x83\x2a\xb8\x04\xd2\x14\xb2\x0c\xd2\x2c\x8c\x49\x0a\ \x49\x12\xde\x77\x3a\x90\xe7\x90\xb7\xa1\xd5\x82\x76\x2b\x8e\x6d\ \x28\x72\xb2\xfa\x38\xd6\x0a\xe3\xaf\xbc\x49\x6b\xf1\xfa\xe6\x00\ \xac\x15\xac\x15\x04\xb0\x46\xd8\xbd\x7b\xe7\x16\x6b\xeb\x86\xae\ \x80\x5a\xa8\x56\x81\xea\x6d\x51\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\ \x84\x01\x67\x05\x35\x82\x08\xa8\x0a\x95\x2c\xc3\x23\x20\x1e\x08\ \xc0\xf0\x1e\x2f\x02\xde\x23\x12\x26\x15\x7c\x88\x23\xc4\x21\x1e\ \x3c\x21\x5e\x40\x4d\x58\x18\x40\xd7\x4a\x89\x06\xac\xa0\xda\x63\ \x00\x9a\x33\xbf\x05\x8a\x53\x07\x69\x02\x95\x04\xb2\x34\xf6\x04\ \x12\x07\x4e\xa1\xe8\x40\x5e\x40\x2b\x8f\xbd\x05\x4b\x39\xb4\x73\ \xc8\x0b\x54\x87\x71\x3d\x00\x2a\xe5\x25\x70\x31\x40\xd5\x30\x39\ \xf9\xd2\xd6\x0a\xf3\x3e\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8\x27\x61\ \x61\xbd\x1c\x25\x25\x20\x00\xf0\x81\x8d\x34\x4d\xa3\x3a\xc3\xb3\ \x98\x11\x89\x6c\x07\xda\x63\x09\x56\x98\x5f\x29\x46\xfc\x61\xcd\ \x72\x7f\x61\x1d\x2d\xd1\x80\x3a\x09\x54\x49\x18\x4f\x34\x2f\xe0\ \x9d\x85\xc4\x21\x89\xc3\x67\x09\x92\x69\xd8\x11\x89\xe2\x13\x87\ \x58\x8b\xef\x76\x91\xbc\x80\xbc\x03\xed\x02\xdf\x6a\x23\xed\x02\ \xf2\x02\x9f\x77\x50\x1d\x45\xd5\x20\x78\x3a\xeb\x54\x78\x9b\x06\ \x9c\x33\x78\x0f\x03\x8f\x24\xbc\xfe\xf2\xf3\x77\x68\xe8\x36\x68\ \xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04\x52\x5e\x82\x44\x4d\x5f\x84\ \x8f\x0d\xa5\x38\xe7\xb6\xc5\x88\x9e\x18\x4b\xb9\x76\xb3\x03\x08\ \x9d\x52\x11\xaa\x90\xb8\x50\xef\x5a\xc5\x30\x7d\xb1\xcb\x40\xc5\ \xb0\x0e\xf4\x26\xad\x57\xf9\x55\x2e\xe1\xe1\xc6\xd2\x32\xf5\xcc\ \x70\x7d\xc9\x84\x2d\xe9\x4a\x19\x10\x9c\x1a\xc0\x73\xe5\x66\x97\ \x2b\x37\xbb\xac\x51\x57\x3f\xd7\xaa\x64\x7e\xc5\x27\xa2\x29\xac\ \x05\x15\xc3\x9c\x0b\xb5\x77\xa6\x6c\x17\xa8\xc1\xa9\x20\xc8\x1a\ \x35\xaf\x9b\x35\x1a\x8f\x59\x31\x9e\xfe\x7b\xe9\xef\x14\x00\xf1\ \x82\xef\x9b\x58\x30\x2b\x57\x56\x02\x55\x21\xd1\x90\xfc\xe7\x53\ \xdf\xf2\xeb\x99\x13\x2c\x2d\xde\xb8\xa7\xfa\x57\x6a\x03\x3c\xf5\ \xec\x4e\x9e\x79\x61\x02\x0f\xa8\x33\x5b\x31\x10\x03\x7c\x87\xf7\ \xf7\xbf\xc1\xc2\xc2\x02\xb7\x6e\xdd\xa2\x28\x0a\x44\x04\x6b\x2d\ \xd6\x5a\x54\x15\x55\xc5\x39\x87\xaa\x62\xad\xc5\x98\xf0\xdf\xe5\ \xe5\x65\xf2\x3c\xef\xf7\x23\xcd\xf9\xb8\xf2\x2d\x18\x70\x56\x50\ \x17\x18\xdc\x31\x3a\xb6\x72\x4f\x38\x7e\x9c\xe9\xe9\x69\x8c\x31\ \x78\xef\x99\x98\x98\x60\x72\x72\xf2\x8e\x59\xd8\x31\x3a\xd6\xdf\ \x86\xae\xd4\x09\x55\x70\x36\xac\xa2\x56\xaf\xf7\x6b\x39\x33\x33\ \xc3\xd0\xd0\x10\xd6\x5a\xbc\xf7\x34\x9b\xcd\xbb\x02\x50\xab\xd7\ \x70\xd1\x88\xb4\xd4\x88\x14\x9c\x0b\x27\x5c\xa0\x2a\x00\xa8\x56\ \xab\x64\x59\xd6\xa7\xb8\x37\xde\x69\x73\x1a\xa9\x17\x41\x4b\xad\ \x38\x1e\xc7\xbd\x23\xb4\xd7\x8c\x31\x88\x44\xdf\x8f\x3a\xb8\xab\ \x9b\xaf\x35\xa8\x0d\xf3\xf6\x18\x2e\x3d\x8e\x83\x29\x6d\xe3\xd5\ \xdb\x12\xa9\xf7\xe5\x56\x6c\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\ \xdb\x02\xe0\xa1\x91\x61\xd4\xc2\xb5\x2b\x97\x59\x9c\xbf\xbe\x05\ \x03\x36\xf8\xc0\x60\xad\x02\x0b\xdb\xc3\xc0\x50\xad\xc2\xec\xc5\ \x4b\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa6\x36\x04\x60\x24\x5e\ \x4a\x05\x12\x0b\xed\x91\x27\xa9\x3d\x0c\x6f\x1f\x38\xc8\x66\xc7\ \x81\x27\x3a\xf1\x2a\xe7\x35\x1e\x32\x81\x14\x28\xba\x70\xf9\xea\ \x55\xce\x34\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1f\x4e\x1d\x02\x0e\x6f\ \x08\xe0\xb3\x8f\x3e\xe0\xa7\xd3\x27\x57\x99\xe9\xda\xa3\x86\x55\ \xe6\xbb\x1e\x04\x1b\x3c\x5f\x1d\x6f\x7c\x77\xee\x8f\xd9\x5f\x0e\ \x01\x87\x1b\x8d\xc6\x5f\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5\x73\ \x6c\x7d\xf2\x35\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1\x3f\x4d\xf0\ \x4b\xb9\xe8\x46\x89\xaf\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x06\x6d\ \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\x06\x34\x49\x44\x41\x54\x78\x5e\xad\x97\x5b\x6c\x54\xc7\ \x1d\xc6\x7f\x73\xce\xd9\x8b\xbd\xf6\xfa\x16\xa0\xbe\x00\x0e\xb2\ \x69\x63\x24\x42\x4a\x21\x22\xa1\x2d\x95\x62\xa5\x2f\xee\x4b\x68\ \x2b\x95\xa6\x55\xa5\xc6\x60\x55\xaa\xda\xb4\xaa\xfa\x56\x09\x55\ \xca\x03\x94\x27\xda\x07\x84\x14\x29\xad\xc4\x8b\xa5\x52\x83\x79\ \x08\xc5\x18\x39\x0e\x69\xd3\x84\x9a\x9b\x63\x6a\xec\xb2\x04\x1b\ \x3b\xbb\xf6\x7a\x8f\xbd\xbb\xde\xb3\x67\xa6\xc3\x68\x85\xe5\x72\ \x6c\x88\xc9\x27\x7d\xfa\x9f\x9d\x87\xfd\x7e\xf3\x9f\x99\x73\x11\ \x4a\x29\x82\x24\x84\x78\x05\x78\x9e\xc7\x6b\x48\x29\xf5\x77\xd6\ \x28\x27\x20\xb8\x43\xbb\x01\x68\x97\x52\xbe\xc6\x63\x64\x59\xd6\ \x07\x1a\xf6\xbb\x40\xb7\x06\x39\xff\x14\x00\x26\xfc\xb7\xed\xf5\ \xe2\x60\x5d\x44\x44\x6e\xce\x89\x8a\x2b\x57\xae\x50\x5d\x53\x8d\ \x40\x00\xa0\x50\x08\x65\x28\x41\x29\x66\xd3\x69\x5e\xa9\x17\x2f\ \xbc\xb4\x4e\x6c\x3b\xf1\x1f\xb9\x47\x83\x7c\x5b\x43\x4c\x3c\x4d\ \x07\xf6\xff\x60\x8b\xdd\x2c\x25\xf8\x4a\x32\x3c\x3c\x4c\x65\x65\ \x25\x2b\xc9\x75\x5d\x1e\xc0\x6e\xa9\xb0\x22\x1b\xa2\x2a\x72\x3f\ \xa7\xea\x81\xb5\x03\x08\x2d\x05\x48\xa1\x0d\xf4\x5d\xbc\x48\x2e\ \x97\xc3\x2f\x16\x51\x4a\x91\xcf\xe7\x59\x5c\x5c\xa4\x50\x28\x50\ \xd4\x63\xb5\xb5\xb5\x94\x01\x58\x80\xf8\x82\xf6\x80\x01\x00\x36\ \x44\x05\x1f\x0f\xbc\x4b\x3e\x3b\x8f\x85\x44\x95\x32\xe2\xb6\xc4\ \xb6\x04\x21\x21\x70\x3e\x53\x6c\x8c\x3b\x80\x44\x2a\x04\xf0\x9c\ \x10\x02\xe0\xcb\x40\x05\x50\x0f\x34\x60\xc4\x48\x69\x9f\x24\x02\ \x01\x4e\x9c\x38\x21\x00\x81\x05\xd2\x87\x96\x96\x67\x09\x65\x6d\ \x14\xe5\x28\xa5\xb4\x41\x08\x58\x57\x19\x25\xe2\xd8\x44\x42\x16\ \xc3\x13\x73\x5c\xbc\x3d\x41\xf7\x58\x8e\x5c\x24\xbe\xa9\xbd\x7d\ \xf7\xef\x2d\xcb\x5a\xdc\xb1\x63\x47\x59\x55\x55\x95\xd3\xd8\xd8\ \x18\x7e\xe0\x86\x86\x86\xd0\xa5\x4b\x97\xdc\xae\xae\xae\x08\xf0\ \xd6\xaa\x1d\x00\x13\x44\x55\x2c\xc2\x73\xd5\x31\xf2\x9e\x4f\xa1\ \x28\x91\x4a\x61\x09\x41\xd8\xb1\x88\x86\x6c\xe6\x72\x05\x12\xa2\ \x8e\x3f\x9f\xff\x2b\x0d\x4d\x1b\x01\x22\xc0\x66\x96\x84\xef\xfb\ \x78\x9e\x47\x75\x75\xb5\x9e\x50\x4b\xf4\xea\xd5\xab\x87\x84\x10\ \x28\xa5\xde\x5a\x11\xc0\xb2\x41\x00\xb6\x2d\x90\xda\xb6\x14\x38\ \x08\xa4\x12\x58\xc2\x8c\x1b\x8f\x4c\xb9\xec\x7b\xf5\x3b\xd4\x37\ \x36\x11\x7c\x2f\xc1\x84\x67\x32\x19\xca\xcb\xcb\xcd\x66\x3e\x76\ \xec\xd8\x26\xbd\x7f\x0e\x2e\x41\x2c\x01\xd0\xd9\xd9\xa9\x0e\x1d\ \x3a\xa4\x6c\x21\x08\x59\x10\xb6\x2d\x1c\xc7\xc6\x42\x50\xb4\xcd\ \x1a\x1b\x00\xc7\xb2\x88\x38\x96\xae\x02\x60\x59\x78\x10\xc0\xdc\ \xdc\x1c\x35\x35\x35\x06\x20\x1a\x8d\x72\xe4\xc8\x91\xcd\xc0\x03\ \x88\x1b\x1a\xa2\xc7\x62\xb9\xb0\x6d\x74\x30\x66\x8d\xcb\x23\x36\ \xb1\xa8\xa3\xc7\x2c\x32\x8b\x1e\x93\x99\x1c\x63\xa9\x79\xee\xcc\ \x2e\xe8\xdf\x45\x72\xf9\x3c\xab\xc8\x2c\x41\x36\x9b\x35\xa7\x66\ \xe9\xff\x6d\x0e\x1c\x38\xb0\x1e\xe8\x00\x58\x06\xa0\xb4\x74\x16\ \x8e\x0d\xe1\x90\xc0\x53\x8a\xb1\xa4\xcb\x8d\x8c\x83\xd3\xb2\x97\ \xa6\x7d\xaf\xb3\xb5\xe3\x17\xac\xdb\xfb\x3a\x0d\x2f\xb4\x73\xfb\ \xce\x24\xfd\xfd\xfd\x24\x93\x49\x94\x52\xe6\xfa\xf8\xf1\xe3\xe8\ \xba\xac\x33\xe7\xce\x9d\xe3\xe8\xd1\xa3\x1c\x3e\x7c\x98\xde\xde\ \x5e\x12\x89\x84\x04\x2c\xa1\x15\xdc\x01\xed\xff\xce\xe6\xf8\xe7\ \x94\x4f\x6b\xc7\xcf\xf8\xe6\x2f\xdf\x26\xf6\xf5\x37\x99\x7c\xa6\ \x83\x6b\xfe\x2e\xae\xf1\x2d\x64\x6b\x17\xad\x7b\x7f\x4e\x5e\x56\ \x73\xfa\x6f\x67\xd1\x77\x4d\xee\xdc\x9d\xe2\x1b\xaf\x76\x72\xfd\ \xfa\x75\x03\xa0\x67\x6b\xd6\x3f\x16\x8b\x99\xeb\x78\x3c\x8e\xe3\ \x38\x25\x38\x04\xc0\x23\x00\x96\x25\x98\xca\x41\x3a\xde\xca\xfe\ \xdf\xbd\x4d\xd5\xae\xd7\x28\x84\x62\x08\xdb\x42\x59\x82\x6c\x41\ \x72\x7f\x66\x91\x4f\xee\x66\x18\xb8\xea\x72\xfa\x1f\x61\x64\xd5\ \x5e\xae\x8f\xdc\x67\x32\xd7\xc6\x85\x0f\xee\x9b\x00\xed\x87\xa1\ \xcd\xcd\xcd\xb4\xb5\xb5\x19\x37\x35\x35\xa1\xa1\x14\x20\x83\x1f\ \x46\x16\xdc\x71\x15\xdf\xff\xe9\x6f\xa8\x6c\xd8\x48\xe2\xec\x3b\ \x4c\x8f\x5e\xc3\x89\x94\xb1\xb5\x79\x07\x9b\x5b\xb6\xf3\x49\x79\ \x25\x63\x09\x97\xcf\x66\xf2\xdc\x9d\xce\x32\xa1\xed\x88\x0d\x4c\ \x27\xe7\xd8\xb7\x2b\xca\xfa\x25\x00\x33\x7b\x3d\x6b\xea\xea\xea\ \x00\xcc\x75\x2a\x95\x32\x00\x4a\x2b\x10\xa0\xb9\x5a\x70\xe1\x9d\ \x63\x28\x2c\xca\xe6\xc6\xd9\x10\x8f\x52\x94\x92\x7b\xc3\x7d\x24\ \x65\x05\xdb\xda\x7f\x4c\x4d\xdb\xcb\x7c\x3c\x9c\x66\xd2\x5f\xc0\ \xcd\x78\x2c\xcc\x6b\x2f\x78\x20\x00\xb5\x74\x3a\x42\xa1\x90\x09\ \x2d\xdd\xea\x1f\x8e\x01\x2a\xf8\x3e\x60\xc1\xc6\xb8\xa0\x50\x1c\ \x23\x1c\x8b\x53\xb7\xa5\x96\x92\x78\x76\x7d\x05\xe9\xac\xc7\x68\ \xff\x9f\x98\xae\xbc\x4c\xcb\xf6\x83\xb8\x0b\x61\xbc\x82\xa4\x58\ \x94\x78\xda\x21\xc7\x42\x2d\xaa\x80\xe3\x69\xa0\x96\xd5\x15\x01\ \x00\xd6\xc7\x43\x84\xca\x23\xfc\xbf\x6a\x63\x21\x9e\xa9\x0c\x73\ \xe1\xdf\x83\xec\xd9\xf9\x13\xca\xa3\x0e\xb9\x32\x47\x03\x28\x03\ \x61\x6b\x00\x16\x4b\x21\xa5\x1c\x25\x30\x2a\x15\xa4\x5c\x05\x40\ \x58\xa5\x2a\xcc\xf5\x23\xfa\x70\x6c\x86\xf1\x59\x8f\xef\xfd\xfa\ \x8f\xdc\xca\xd4\xe0\x44\x5c\xa2\x11\x1b\xcf\x93\x14\x3d\x07\xd3\ \x01\xa5\x90\x52\xf2\x50\x6a\x59\x01\x56\x05\x10\x08\x4c\x0d\x04\ \x18\x9d\x76\xf9\xd5\x5f\x86\x18\xbd\xb7\x80\x3d\x93\x67\xd3\xba\ \x32\xf2\x79\x5f\xbb\x68\xea\xce\xaf\xd4\x70\xf9\xdd\xe0\x25\x00\ \x9e\x78\x09\x4c\xb8\x10\x3c\xa2\xd6\x2f\x55\xf2\x87\x1f\x3e\xcf\ \xf5\x4f\x33\x44\x1b\xb7\xb1\xf3\xc5\x97\x59\x12\x5c\x4e\x60\x8e\ \xdb\x53\x01\x28\xc0\x12\x25\x00\x6d\xd4\x52\x7d\xb1\xb5\x96\xdd\ \x5b\xe2\x74\xbf\x97\xa5\x6a\xf7\x57\xf9\xd1\x1b\x6f\x10\xa0\xb5\ \x03\x98\xb5\x37\xd5\xd8\x08\x01\xd2\xcb\x53\x70\x53\x78\xf3\x33\ \x14\xb3\x69\x0a\x19\x1f\x25\xfd\xd5\x82\xd6\x08\xf0\xf0\x29\xe7\ \xe3\xe7\x33\x14\xe6\x75\xa8\x0e\xd6\x00\xcb\xf7\x89\x10\xc1\x33\ \x7d\xfa\xd7\x72\x8c\xb2\x13\x37\x03\xc7\x01\xb2\x1e\xfe\xad\x94\ \xcc\x6f\xf7\x44\x54\x03\xd8\x5f\x70\x07\x08\x92\x09\xfd\xd7\x3d\ \x3f\xfd\x7e\x42\xa6\xcf\xdf\xf6\xef\x02\xee\x76\x3b\xfc\x92\x06\ \xa8\xe3\x73\xca\x75\x5d\x1f\x70\x57\xed\x00\x40\x32\xab\x0a\x1f\ \x7e\x2a\xd3\xbd\xb7\xfc\xd4\xcd\x69\x39\x05\xf4\x03\x97\x74\x68\ \xbf\x10\xa2\xd3\xb6\xed\xaf\x7d\x9e\x25\x58\x58\x58\xf0\x07\x06\ \x06\xd2\x27\x4f\x9e\x9c\x06\xba\x83\x00\x3e\x1a\x49\xca\xad\xe3\ \xb3\x2a\xd7\x3b\xe2\xa7\x6e\x4c\xcb\xd1\x52\xe8\x59\x1d\x74\x8b\ \x00\x3d\x09\xc0\xd0\xd0\x90\xdb\xd3\xd3\x93\xd2\x4e\xcf\xce\xce\ \x9e\x2e\xbd\x1d\xdf\x08\x02\xe8\xee\xea\x29\x00\x8c\x04\x84\x06\ \x85\xaf\x08\x30\x35\x35\x55\xd0\x2f\x22\xa9\x53\xa7\x4e\x25\xc7\ \xc7\xc7\x2f\x03\x67\x81\x7e\x1d\xec\xae\xb8\x09\x4b\xdf\x76\xda\ \x4f\x26\x85\x01\x40\x08\x40\x61\x5a\xfc\xde\xe0\x60\xba\xbb\xbb\ \x3b\xa5\xdf\x8a\xcc\x24\xd0\x5e\xed\x73\xcd\x61\xed\x9a\x77\x33\ \x6e\x11\x60\x70\xf0\xfd\x74\x5f\x5f\x5f\xfa\xcc\x99\x33\xa6\xc5\ \xa5\xd0\x8f\x78\x02\x89\xb5\x9e\x63\x21\x44\x18\x78\x13\xd8\x4f\ \x69\x73\x06\xb4\xf8\xb1\xfa\x1f\xbd\xfa\x2a\x5f\xf2\xd8\x15\x9d\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\x19\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ \x79\x71\xc9\x65\x3c\x00\x00\x07\xab\x49\x44\x41\x54\x58\xc3\xad\ \x57\x5b\x50\x93\x67\x1a\xf6\xca\xce\xec\xcc\xf6\x62\x2f\xbc\xd9\ \xe9\xce\xec\x6e\xbd\xda\xd9\x9b\xb5\xce\xba\x3b\x7b\xb0\xad\xcc\ \x7a\xb1\xce\xce\x3a\xb3\x76\x54\x70\x75\xdb\xe2\x81\xd6\xb6\x54\ \x04\xbb\xa5\x20\x6d\xc1\x82\x06\x08\x07\x51\x42\x80\x80\x80\x02\ \x21\x81\x10\x92\x40\x48\x10\x73\x24\x21\x67\x72\x80\x04\x42\x20\ \x9c\x09\x47\xb5\x54\x78\xf6\xfb\x7e\x13\x16\x30\x58\x8b\x7d\x67\ \x9e\xf9\x2f\x92\xfc\xcf\xfb\x3e\xcf\xfb\xbe\xdf\x97\x5d\x00\x76\ \xfd\x98\x20\xf1\x0b\x82\x14\x02\x03\xc1\x75\x82\x03\xcf\xfd\xfe\ \x8f\x48\xbc\x9b\x20\xe1\x57\xaf\xef\xb5\x2a\x8c\xd6\x65\xdb\x02\ \x60\x19\x1e\x5b\x09\x27\xf1\x33\xfa\x19\x81\x22\xfc\xdc\x3e\x76\ \x48\x7e\x8a\xa0\xb9\xb6\x59\x1c\x32\xcf\xad\x42\x39\xfe\x1d\x44\ \xf6\x51\xd8\xc7\xe6\xe8\x87\x86\x3d\x7b\xf6\x58\x53\x52\xae\x2c\ \xca\x3a\x3a\x10\x4e\xe2\xe5\x49\xc3\xc4\x31\x04\xb7\x3e\x49\xf9\ \x2c\x60\x9b\x5d\x59\x53\x4d\x03\x4d\xb6\x11\x34\xeb\xfb\x20\x31\ \x79\x60\x19\x9d\xc5\xbb\xef\xbe\x3f\xc5\xab\xbe\x83\xf1\x89\x29\ \x4c\x4f\xcf\xae\x92\xef\xd7\xbc\x74\x02\x11\x9f\x0f\xbe\x1d\xe3\ \xb2\x04\x43\x4f\xb4\x33\x40\x8b\x7b\x06\xcd\x3d\x2e\x34\xeb\xec\ \xa8\x57\xf6\x20\x87\x53\x85\x32\x5e\x35\x43\xbc\xb0\xf4\x90\x81\ \xc1\x60\x5c\x26\xbf\x4b\x7c\xe1\x04\x48\x1c\x24\x38\x41\xfd\xdd\ \xea\x73\x27\xf1\xb9\x27\x04\x48\x87\x97\xc1\xd7\xbb\x20\x22\x55\ \x37\xdc\x37\xa2\xb8\x4e\x88\x2c\x56\x3e\xcc\x56\xdb\x3a\x71\x04\ \x2c\x16\x6b\x2c\xfc\xce\xe7\x27\x10\x91\x36\x93\x95\x3f\x46\x7d\ \xa5\xfe\x12\xc4\x6f\xf4\x59\x31\xb6\x02\x7e\xef\x20\x5a\x7b\x9c\ \xe0\x3f\x30\xa1\x4c\x28\x43\x46\x0e\x1b\xb2\x0e\xf9\x26\xd2\xf9\ \xc5\x65\xcc\x2d\x2c\x21\x34\xbf\x88\xbd\x7b\xf7\x5a\xc9\x3b\x7e\ \xba\x6d\x02\x24\x7e\x43\x90\x46\x3d\x35\x13\x69\x75\xb3\x80\xd2\ \x3f\x0f\xcb\xc4\xe2\x9a\x50\xa1\x5a\xb4\x6c\xf1\x59\xa0\xb6\xa0\ \xa6\x5d\x8d\x2f\xb2\x73\x71\xb7\x9e\xff\x0c\x31\x25\x9d\x09\xcd\ \x63\x62\x6a\x06\x83\x43\x81\x27\xe4\xdd\xbc\x2d\xd3\xb0\x3b\x92\ \x03\x33\x26\xd4\x53\xb5\xd3\xfb\x58\x4f\x88\xc5\x03\x21\x88\x2c\ \x43\x50\xba\x46\xd0\xed\x09\x42\xe5\x9b\x42\x9b\x73\xfc\xa9\xcf\ \x5a\x1b\xee\x2a\x74\xc8\xbc\xc9\x45\x09\xa7\x6c\x93\xcf\x9b\x88\ \x27\xa7\x11\x18\x1d\xc3\x80\x6f\x08\xa2\xd6\xd6\x25\xc2\x51\xdb\ \x28\x12\x87\xc6\x1f\xaf\x82\x2f\x62\x94\x4d\x89\x24\x90\x22\xea\ \x52\x2d\x9a\x42\xab\xe8\x18\x79\x04\xa1\xc5\xcf\x10\x53\x74\xf6\ \x0d\xa3\xd3\xe1\x87\xd4\x3c\x80\x16\xbd\x03\x0d\x5d\x06\x14\xd5\ \x0a\x90\x91\x95\x0d\x2f\x79\xf1\xc6\xaa\xa9\xd4\xb3\x73\x0b\x4c\ \xc5\x94\xd8\xdd\xef\x85\xc9\x62\x05\xb7\xbc\x12\xa5\xe5\x95\x4b\ \x13\xf3\xcb\xab\x23\x0f\x01\x37\xd9\x11\xe6\xd9\x15\x84\x97\x15\ \x13\x06\xcb\x3c\xd0\x68\xf2\xa3\xdd\xee\x5f\x27\x96\x3b\x86\x20\ \xb3\x78\xd7\x7d\xe6\x08\xa4\xf8\x3c\x33\x1b\x2a\x8d\x36\xaa\xdc\ \x53\x33\x21\x8c\x8e\x8d\x33\x15\xd3\x26\xe4\x37\x09\xf1\xc1\xc5\ \x8f\x51\x73\xaf\x01\xbe\x65\x60\xfc\x11\xa0\x23\x13\x23\xf2\xce\ \xa1\xbe\x5d\xb9\xb8\x51\x01\x83\x81\x74\x74\x4d\xa7\x1e\x0a\x67\ \x80\xa9\xb8\xdd\xea\x83\xd8\xe8\x42\x93\xca\xcc\xf8\x7c\xe5\xcb\ \x2c\x88\xda\x24\x51\x89\xa7\x67\xe7\x18\x1b\x86\x86\x47\x60\x77\ \x38\x49\x82\x3a\x24\x7c\xf8\x21\xae\xb3\x0b\xe1\x99\x5c\x80\x6f\ \x09\xd0\x90\xde\xe1\x0f\x2c\x81\xab\x1f\xc4\x7d\xef\x04\xdd\x07\ \x1d\x61\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6\x21\x48\xcc\xfd\x4f\ \x7d\xee\xd4\x22\x9d\x55\x84\xaa\x9a\xba\x4d\x3e\x47\xe4\x8e\xf8\ \x3c\x3c\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2\x62\x9c\x7e\x2f\ \x1e\x3d\x03\x01\xf4\x2f\x02\x83\x84\xbc\xc5\xff\x2d\xee\x3a\x43\ \x28\x51\x91\xf7\xf6\x05\xf1\x4e\xdc\xbf\x7d\x84\x33\x69\xe3\x20\ \x18\xf4\x33\xab\xe0\xc9\x54\x68\x35\x38\xd1\xd8\xdd\x0b\x9e\x58\ \x89\xac\x5c\xf6\x33\x3e\x47\xaa\x9e\x9c\x9e\x65\xe4\xee\xf7\x0e\ \xa2\xd7\x6c\x41\x43\x03\x1f\x27\x62\xe3\x20\xe9\xd6\xc0\x45\xcf\ \x01\x52\x90\x24\xb8\x86\xb2\x9e\x00\x6e\xb4\xdb\x50\xd1\x1b\x44\ \x85\xce\x8b\x4a\x7e\x0b\x6d\xbe\x9b\x5b\x27\xd1\xa0\x99\xf8\x16\ \x65\x22\x05\xee\x29\xf4\x28\x13\xc8\x90\x78\x35\x0b\x1a\xad\x3e\ \xaa\xdc\x63\x13\x93\xf0\x0d\x0d\xc3\x66\xef\x83\xb4\x5d\x8e\xc4\ \x4b\x97\x90\xc3\xca\xc3\xd4\x63\xc0\x4e\x7a\x49\x31\x4e\xfa\x89\ \x94\x7f\x5b\x3b\x84\x7c\x85\x13\x25\x6a\x1f\x4a\xd5\x03\xe8\xf2\ \x30\xa3\x28\x22\xf8\xf9\x33\x09\x74\x8f\x2e\xa1\xa8\xbe\x15\xa5\ \x7c\x09\xb2\x4a\x2a\xf0\xcf\xe3\x71\x51\xe5\xf6\x07\x46\xd1\xe7\ \xf2\x40\xab\x37\x20\xfd\x6a\x06\x92\xbf\x48\x83\xcd\x37\x02\x27\ \xa9\xda\x40\x1a\x4c\xe0\x7b\x88\x52\x9d\x1f\x45\xdd\xfd\x0c\x71\ \x41\x97\x1b\xc5\xdd\x1e\x88\x9c\x41\xfc\xf9\xcd\xb7\x5d\x84\xeb\ \x6c\xb4\x43\xd0\x28\xf7\x4e\x23\xa7\xfc\x1e\xb2\x4b\xab\xf1\x51\ \xea\x57\x48\xfe\x6f\xea\xfa\x58\x51\xb9\x47\x82\xe3\xf0\x0c\xf8\ \x60\x34\x99\x51\xc9\xab\xc2\xfb\x67\xcf\x41\xfe\x40\x03\x3f\xe9\ \x6e\xb2\x8d\x19\xb9\x6f\x69\x06\x19\xd2\x9b\x2a\x2f\x72\xe5\x0e\ \xe4\x75\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca\x29\xc2\x53\ \xb8\xdd\x29\xdc\x2b\x76\x04\x90\x51\xc8\xc5\x95\x6b\x79\x38\x11\ \x9f\x80\x9b\xb7\x6e\x33\x63\x15\x91\xdb\x6a\x73\x40\x22\x6d\xc7\ \x85\x84\x0f\x50\x74\xbb\x0c\xf3\x2b\x80\x9f\x34\x58\xf7\x24\x20\ \x1c\x7c\x84\x4a\xd3\x18\x38\xfa\x61\x86\x9c\x56\xfd\x55\xb3\x1e\ \xac\x0e\x3b\xb8\x3a\x1f\xd9\x21\x1e\x7a\x2f\xe0\x13\xbc\xba\x5d\ \x02\x26\xbe\xc1\x83\x94\x6f\xd8\x38\x9f\x9c\x8a\x03\x7f\x3d\x04\ \x63\xaf\x99\xe9\x6e\x2a\xb7\x46\xd7\x83\xa4\xcb\xc9\x48\xff\x3a\ \x8b\x8c\xd5\x3c\x53\xb5\x71\xf6\xa9\xdc\x35\xf6\x69\x5c\x97\x59\ \x19\xd9\xbf\x6e\x21\xa7\xa0\xd4\x82\x74\xbe\x1a\x57\x9b\x34\x60\ \xc9\xcc\x10\xbb\x82\xf8\xe5\xaf\x5f\xa7\x67\xc0\x3b\xe1\x75\x1f\ \x35\xcc\x35\xdd\x66\x7c\x94\x96\x85\xb8\x73\x17\xf1\x97\x43\x31\ \x4c\xd5\x74\x99\xf0\xaa\xaa\x71\xfa\xf4\x19\x68\xcc\x0e\x8c\x92\ \x2d\x36\x14\x1e\xab\x5a\xc7\x0c\x78\xe6\x71\x70\x0d\x23\x4c\xa3\ \x65\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6\x5e\x94\x74\x39\xd0\x66\xf7\ \xaf\x1e\x3d\x11\x4b\x47\x2e\x6f\xc3\x79\x13\x35\x2c\x5c\x99\x1a\ \xf1\x97\x3e\xc7\xd1\xd8\x33\xf8\x38\x31\x09\x86\x5e\x13\x1a\x9b\ \x04\xf8\xdd\x1b\xfb\x51\x4f\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\ \x93\x60\x2b\x5d\x0c\x39\xf5\xbc\xf0\xbe\x67\xbd\xea\xcc\x16\x3d\ \x4a\x55\x1e\x08\x6d\x01\x94\xd4\xf1\x43\xe1\x65\x53\x40\xf0\xca\ \xf7\x25\x60\x2b\x6e\x6a\xc7\xa9\x84\x44\xc4\x1c\x39\x8a\xdc\x7c\ \x36\x5a\x5a\xc5\x38\x14\x13\x83\x2f\x39\x35\xc8\x14\x6a\x98\xe6\ \xa2\xd5\xd2\x27\xf5\x9a\x7a\x4c\x13\xa1\x49\x64\xb7\x99\x90\xdb\ \x6e\x46\xb9\xda\x8d\x06\xa5\x76\x39\x2c\x39\x3d\xf9\x4e\x13\xec\ \xd9\x72\xd4\x47\x0d\x3b\xab\x46\x88\x63\xff\x39\x8f\xdf\xee\xfb\ \x3d\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17\x70\xa3\xad\x07\x19\ \xc4\x4f\x4a\x14\xe9\x6e\xba\x58\xa8\xef\x2c\xfa\x94\x98\x50\x28\ \xb7\x40\xe9\x0e\x3c\xf9\x57\xec\x29\x2a\x77\x2d\xc1\x67\x04\xfb\ \xb6\xb9\xe4\x44\x8d\xbe\xcc\xb2\x5a\xfc\xe3\xe4\x19\x1c\x3c\xf4\ \x37\xb0\x72\xf3\xb0\xef\xc0\x1f\x50\x20\xd1\x21\x89\x27\x65\x2a\ \xa6\x4b\x85\x3e\xbf\x21\xd5\x46\xe4\x2e\x90\x5b\x21\xb0\x0c\xae\ \xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87\x6f\x3c\xaf\x3c\xe7\x96\x15\ \x35\x9c\x69\x45\xe5\xf8\xfb\xb1\x58\x1c\x3f\x19\x87\x37\xf6\xef\ \xc7\x8d\x3a\x11\x92\xab\xa4\x0c\x21\xed\x70\xea\x35\x55\x21\x8b\ \x34\x5b\xc9\x03\x37\x2a\x34\x6e\xd4\x49\x3a\x17\xc3\x72\x73\x08\ \x8e\x6d\x95\xfb\x87\x24\xe0\x4a\x65\x73\x70\xe4\xf8\x29\x1c\x3e\ \x7c\x98\x8c\x63\x2e\x32\x05\x2a\x5c\x22\xd5\xd3\x5d\x7e\x4d\xdc\ \x0b\x36\xe9\x74\x76\xa7\x1d\x77\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\ \x1a\x95\xfb\x22\xbd\x49\xfd\x80\x0b\x6d\xf4\x04\x32\x4a\x78\x4c\ \x0f\x9c\x4b\x49\xc3\xb5\xa6\x2e\x7c\xc2\x6d\x65\x36\x59\xf1\x83\ \x01\x5c\x97\x9a\xc1\x51\x7b\x20\xf3\x04\xd7\xce\x25\x26\x05\x36\ \xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce\x5e\x4e\x45\x81\ \x58\x85\x78\xf6\x5d\x5c\xa9\x55\x90\xaa\xfb\xc0\x96\xdb\x50\xad\ \x75\xe3\xae\x54\x41\x2f\x10\xca\x0d\x72\xbf\xba\xd3\x6a\xa3\x05\ \xb7\xa2\x51\xf8\x1d\xaf\x43\x8d\x4f\xb9\x2d\x88\xcb\xe6\xe1\x9a\ \x48\x8f\xaa\x1e\x2f\x9a\x35\xe6\xc7\x7f\x7a\xf3\x2d\x57\x78\xac\ \xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5c\x75\x1f\xde\xcb\ \xaf\x45\xb9\x76\x00\x32\x67\x60\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\ \xd2\xa9\xdc\x3b\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9d\x50\ \x0b\x39\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3\x2f\x22\xf7\x0e\ \xff\xda\x6d\x8a\xdd\x61\x99\xd5\x1b\xb6\xd8\x6b\xbb\x5e\x32\xbe\ \x2f\x89\xff\x01\x66\xb9\x5f\xfc\x11\x80\x3d\xcf\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x04\xca\x57\xa7\ \x00\x6e\ \x00\x65\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\x7c\x5a\x07\ \x00\x63\ \x00\x6f\x00\x70\x00\x79\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x07\ \x0a\xc7\x57\x87\ \x00\x63\ \x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x08\xc8\x58\x67\ \x00\x73\ \x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\xa8\xba\x47\ \x00\x70\ \x00\x61\x00\x73\x00\x74\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x06\xc1\x59\x87\ \x00\x6f\ \x00\x70\x00\x65\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x03\x58\ \x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x18\xdd\ \x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xc5\ \x00\x00\x00\x66\x00\x00\x00\x00\x00\x01\x00\x00\x12\x6c\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x08\x96\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/mainwindows/separations.py0000755000076500000240000004540312536324427023044 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui class FinalWidget(QtGui.QFrame): def __init__(self, parent, name, labelSize): super(FinalWidget, self).__init__(parent) self.dragStartPosition = QtCore.QPoint() self.hasImage = False self.imageLabel = QtGui.QLabel() self.imageLabel.setFrameShadow(QtGui.QFrame.Sunken) self.imageLabel.setFrameShape(QtGui.QFrame.StyledPanel) self.imageLabel.setMinimumSize(labelSize) self.nameLabel = QtGui.QLabel(name) layout = QtGui.QVBoxLayout() layout.addWidget(self.imageLabel, 1) layout.addWidget(self.nameLabel, 0) self.setLayout(layout) def mouseMoveEvent(self, event): """ If the mouse moves far enough when the left mouse button is held down, start a drag and drop operation. """ if not event.buttons() & QtCore.Qt.LeftButton: return if (event.pos() - self.dragStartPosition).manhattanLength() \ < QtGui.QApplication.startDragDistance(): return if not self.hasImage: return drag = QtGui.QDrag(self) mimeData = QtCore.QMimeData() output = QtCore.QByteArray() outputBuffer = QtCore.QBuffer(output) outputBuffer.open(QtCore.QIODevice.WriteOnly) self.imageLabel.pixmap().toImage().save(outputBuffer, 'PNG') outputBuffer.close() mimeData.setData('image/png', output) drag.setMimeData(mimeData) drag.setPixmap(self.imageLabel.pixmap().scaled(64, 64, QtCore.Qt.KeepAspectRatio)) drag.setHotSpot(QtCore.QPoint(drag.pixmap().width() / 2, drag.pixmap().height())) drag.start() def mousePressEvent(self, event): """ Check for left mouse button presses in order to enable drag and drop. """ if event.button() == QtCore.Qt.LeftButton: self.dragStartPosition = event.pos() def pixmap(self): return self.imageLabel.pixmap() def setPixmap(self, pixmap): self.imageLabel.setPixmap(pixmap) self.hasImage = True class ScreenWidget(QtGui.QFrame): # Separation. Cyan, Magenta, Yellow = range(3) convertMap = { Cyan: QtGui.qRed, Magenta: QtGui.qGreen, Yellow: QtGui.qBlue, } imageChanged = QtCore.pyqtSignal() def __init__(self, parent, initialColor, name, mask, labelSize): """ Initializes the paint color, the mask color (cyan, magenta, or yellow), connects the color selector and invert checkbox to functions, and creates a two-by-two grid layout. """ super(ScreenWidget, self).__init__(parent) self.originalImage = QtGui.QImage() self.newImage = QtGui.QImage() self.paintColor = initialColor self.maskColor = mask self.inverted = False self.imageLabel = QtGui.QLabel() self.imageLabel.setFrameShadow(QtGui.QFrame.Sunken) self.imageLabel.setFrameShape(QtGui.QFrame.StyledPanel) self.imageLabel.setMinimumSize(labelSize) self.nameLabel = QtGui.QLabel(name) self.colorButton = QtGui.QPushButton("Modify...") self.colorButton.setBackgroundRole(QtGui.QPalette.Button) self.colorButton.setMinimumSize(32, 32) palette = QtGui.QPalette(self.colorButton.palette()) palette.setColor(QtGui.QPalette.Button, initialColor) self.colorButton.setPalette(palette) self.invertButton = QtGui.QPushButton("Invert") self.invertButton.setEnabled(False) self.colorButton.clicked.connect(self.setColor) self.invertButton.clicked.connect(self.invertImage) gridLayout = QtGui.QGridLayout() gridLayout.addWidget(self.imageLabel, 0, 0, 1, 2) gridLayout.addWidget(self.nameLabel, 1, 0) gridLayout.addWidget(self.colorButton, 1, 1) gridLayout.addWidget(self.invertButton, 2, 1, 1, 1) self.setLayout(gridLayout) def createImage(self): """ Creates a new image by separating out the cyan, magenta, or yellow component, depending on the mask color specified in the constructor. The amount of the component found in each pixel of the image is used to determine how much of a user-selected ink is used for each pixel in the new image for the label widget. """ self.newImage = newImage = self.originalImage.copy() # Create CMY components for the ink being used. cyanInk = float(255 - QtGui.QColor(self.paintColor).red()) / 255.0 magentaInk = float(255 - QtGui.QColor(self.paintColor).green()) / 255.0 yellowInk = float(255 - QtGui.QColor(self.paintColor).blue()) / 255.0 convert = self.convertMap[self.maskColor] for y in range(newImage.height()): for x in range(newImage.width()): p = self.originalImage.pixel(x, y) # Separate the source pixel into its cyan component. if self.inverted: amount = convert(p) else: amount = 255 - convert(p) newColor = QtGui.QColor( 255 - min(int(amount * cyanInk), 255), 255 - min(int(amount * magentaInk), 255), 255 - min(int(amount * yellowInk), 255)) newImage.setPixel(x, y, newColor.rgb()) self.imageLabel.setPixmap(QtGui.QPixmap.fromImage(newImage)) def image(self): """ Returns a reference to the modified image. """ return self.newImage def invertImage(self): """ Sets whether the amount of ink applied to the canvas is to be inverted (subtracted from the maximum value) before the ink is applied. """ self.inverted = not self.inverted self.createImage() self.imageChanged.emit() def setColor(self): """ Separate the current image into cyan, magenta, and yellow components. Create a representation of how each component might appear when applied to a blank white piece of paper. """ newColor = QtGui.QColorDialog.getColor(self.paintColor) if newColor.isValid(): self.paintColor = newColor palette = QtGui.QPalette(self.colorButton.palette()) palette.setColor(QtGui.QPalette.Button, self.paintColor) self.colorButton.setPalette(palette) self.createImage() self.imageChanged.emit() def setImage(self, image): """ Records the original image selected by the user, creates a color separation, and enables the invert image checkbox. """ self.originalImage = image self.createImage() self.invertButton.setEnabled(True) class Viewer(QtGui.QMainWindow): # Brightness. Gloom, Quarter, Half, ThreeQuarters, Full = range(5) # Brightness value map. brightnessValueMap = { Gloom: 0, Quarter: 64, Half: 128, ThreeQuarters: 191, Full: 255, } def __init__(self): """ Constructor initializes a default value for the brightness, creates the main menu entries, and constructs a central widget that contains enough space for images to be displayed. """ super(Viewer, self).__init__() self.scaledImage = QtGui.QImage() self.menuMap = {} self.path = '' self.brightness = 255 self.setWindowTitle("QImage Color Separations") self.createMenus() self.setCentralWidget(self.createCentralWidget()) def createMenus(self): """ Creates a main menu with two entries: a File menu, to allow the image to be selected, and a Brightness menu to allow the brightness of the separations to be changed. Initially, the Brightness menu items are disabled, but the first entry in the menu is checked to reflect the default brightness. """ self.fileMenu = QtGui.QMenu("&File", self) self.brightnessMenu = QtGui.QMenu("&Brightness", self) self.openAction = self.fileMenu.addAction("&Open...") self.openAction.setShortcut(QtGui.QKeySequence('Ctrl+O')) self.saveAction = self.fileMenu.addAction("&Save...") self.saveAction.setShortcut(QtGui.QKeySequence('Ctrl+S')) self.saveAction.setEnabled(False) self.quitAction = self.fileMenu.addAction("E&xit") self.quitAction.setShortcut(QtGui.QKeySequence('Ctrl+Q')) self.noBrightness = self.brightnessMenu.addAction("&0%") self.noBrightness.setCheckable(True) self.quarterBrightness = self.brightnessMenu.addAction("&25%") self.quarterBrightness.setCheckable(True) self.halfBrightness = self.brightnessMenu.addAction("&50%") self.halfBrightness.setCheckable(True) self.threeQuartersBrightness = self.brightnessMenu.addAction("&75%") self.threeQuartersBrightness.setCheckable(True) self.fullBrightness = self.brightnessMenu.addAction("&100%") self.fullBrightness.setCheckable(True) self.menuMap[self.noBrightness] = self.Gloom self.menuMap[self.quarterBrightness] = self.Quarter self.menuMap[self.halfBrightness] = self.Half self.menuMap[self.threeQuartersBrightness] = self.ThreeQuarters self.menuMap[self.fullBrightness] = self.Full self.currentBrightness = self.fullBrightness self.currentBrightness.setChecked(True) self.brightnessMenu.setEnabled(False) self.menuBar().addMenu(self.fileMenu) self.menuBar().addMenu(self.brightnessMenu) self.openAction.triggered.connect(self.chooseFile) self.saveAction.triggered.connect(self.saveImage) self.quitAction.triggered.connect(QtGui.qApp.quit) self.brightnessMenu.triggered.connect(self.setBrightness) def createCentralWidget(self): """ Constructs a central widget for the window consisting of a two-by-two grid of labels, each of which will contain an image. We restrict the size of the labels to 256 pixels, and ensure that the window cannot be resized. """ frame = QtGui.QFrame(self) grid = QtGui.QGridLayout(frame) grid.setSpacing(8) grid.setMargin(4) self.layout().setSizeConstraint(QtGui.QLayout.SetFixedSize) labelSize = QtCore.QSize(256, 256) self.finalWidget = FinalWidget(frame, "Final image", labelSize) self.cyanWidget = ScreenWidget(frame, QtCore.Qt.cyan, "Cyan", ScreenWidget.Cyan, labelSize) self.magentaWidget = ScreenWidget(frame, QtCore.Qt.magenta, "Magenta", ScreenWidget.Magenta, labelSize) self.yellowWidget = ScreenWidget(frame, QtCore.Qt.yellow, "Yellow", ScreenWidget.Yellow, labelSize) self.cyanWidget.imageChanged.connect(self.createImage) self.magentaWidget.imageChanged.connect(self.createImage) self.yellowWidget.imageChanged.connect(self.createImage) grid.addWidget(self.finalWidget, 0, 0, QtCore.Qt.AlignTop | QtCore.Qt.AlignHCenter) grid.addWidget(self.cyanWidget, 0, 1, QtCore.Qt.AlignTop | QtCore.Qt.AlignHCenter) grid.addWidget(self.magentaWidget, 1, 0, QtCore.Qt.AlignTop | QtCore.Qt.AlignHCenter) grid.addWidget(self.yellowWidget, 1, 1, QtCore.Qt.AlignTop | QtCore.Qt.AlignHCenter) return frame def chooseFile(self): """ Provides a dialog window to allow the user to specify an image file. If a file is selected, the appropriate function is called to process and display it. """ imageFile = QtGui.QFileDialog.getOpenFileName(self, "Choose an image file to open", self.path, "Images (*.*)") if imageFile != '': self.openImageFile(imageFile) self.path = imageFile def setBrightness(self, action): """ Changes the value of the brightness according to the entry selected in the Brightness menu. The selected entry is checked, and the previously selected entry is unchecked. The color separations are updated to use the new value for the brightness. """ if action not in self.menuMap or self.scaledImage.isNull(): return self.brightness = self.brightnessValueMap.get(self.menuMap[action]) if self.brightness is None: return self.currentBrightness.setChecked(False) self.currentBrightness = action self.currentBrightness.setChecked(True) self.createImage() def openImageFile(self, imageFile): """ Load the image from the file given, and create four pixmaps based on the original image. The window caption is set, and the Brightness menu enabled if the image file can be loaded. """ originalImage = QtGui.QImage() if originalImage.load(imageFile): self.setWindowTitle(imageFile) self.saveAction.setEnabled(True) self.brightnessMenu.setEnabled(True) self.scaledImage = originalImage.scaled(256, 256, QtCore.Qt.KeepAspectRatio) self.cyanWidget.setImage(self.scaledImage) self.magentaWidget.setImage(self.scaledImage) self.yellowWidget.setImage(self.scaledImage) self.createImage() else: QtGui.QMessageBox.warning(self, "Cannot open file", "The selected file could not be opened.", QtGui.QMessageBox.Cancel, QtGui.QMessageBox.NoButton, QtGui.QMessageBox.NoButton) def createImage(self): """ Creates an image by combining the contents of the three screens to present a page preview. The image associated with each screen is separated into cyan, magenta, and yellow components. We add up the values for each component from the three screen images, and subtract the totals from the maximum value for each corresponding primary color. """ newImage = self.scaledImage.copy() image1 = self.cyanWidget.image() image2 = self.magentaWidget.image() image3 = self.yellowWidget.image() darkness = 255 - self.brightness for y in range(newImage.height()): for x in range(newImage.width()): # Create three screens, using the quantities of the source CMY # components to determine how much of each of the inks are to # be put on each screen. p1 = image1.pixel(x, y) cyan1 = float(255 - QtGui.qRed(p1)) magenta1 = float(255 - QtGui.qGreen(p1)) yellow1 = float(255 - QtGui.qBlue(p1)) p2 = image2.pixel(x, y) cyan2 = float(255 - QtGui.qRed(p2)) magenta2 = float(255 - QtGui.qGreen(p2)) yellow2 = float(255 - QtGui.qBlue(p2)) p3 = image3.pixel(x, y) cyan3 = float(255 - QtGui.qRed(p3)) magenta3 = float(255 - QtGui.qGreen(p3)) yellow3 = float(255 - QtGui.qBlue(p3)) newColor = QtGui.QColor( max(255 - int(cyan1 + cyan2 + cyan3) - darkness, 0), max(255 - int(magenta1 + magenta2 + magenta3) - darkness, 0), max(255 - int(yellow1 + yellow2 + yellow3) - darkness, 0)) newImage.setPixel(x, y, newColor.rgb()) self.finalWidget.setPixmap(QtGui.QPixmap.fromImage(newImage)) def saveImage(self): """ Provides a dialog window to allow the user to save the image file. """ imageFile = QtGui.QFileDialog.getSaveFileName(self, "Choose a filename to save the image", "", "Images (*.png)") info = QtCore.QFileInfo(imageFile) if info.baseName() != '': newImageFile = QtCore.QFileInfo(info.absoluteDir(), info.baseName() + '.png').absoluteFilePath() if not self.finalWidget.pixmap().save(newImageFile, 'PNG'): QtGui.QMessageBox.warning(self, "Cannot save file", "The file could not be saved.", QtGui.QMessageBox.Cancel, QtGui.QMessageBox.NoButton, QtGui.QMessageBox.NoButton) else: QtGui.QMessageBox.warning(self, "Cannot save file", "Please enter a valid filename.", QtGui.QMessageBox.Cancel, QtGui.QMessageBox.NoButton, QtGui.QMessageBox.NoButton) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Viewer() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/network/0000755000076500000240000000000012536324427017263 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/network/blockingfortuneclient.py0000755000076500000240000001752212536324427024241 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtNetwork class FortuneThread(QtCore.QThread): newFortune = QtCore.pyqtSignal(str) error = QtCore.pyqtSignal(int, str) def __init__(self, parent=None): super(FortuneThread, self).__init__(parent) self.quit = False self.hostName = '' self.cond = QtCore.QWaitCondition() self.mutex = QtCore.QMutex() self.port = 0 def __del__(self): self.mutex.lock() self.quit = True self.cond.wakeOne() self.mutex.unlock() self.wait() def requestNewFortune(self, hostname, port): locker = QtCore.QMutexLocker(self.mutex) self.hostName = hostname self.port = port if not self.isRunning(): self.start() else: self.cond.wakeOne() def run(self): self.mutex.lock() serverName = self.hostName serverPort = self.port self.mutex.unlock() while not self.quit: Timeout = 5 * 1000 socket = QtNetwork.QTcpSocket() socket.connectToHost(serverName, serverPort) if not socket.waitForConnected(Timeout): self.error.emit(socket.error(), socket.errorString()) return while socket.bytesAvailable() < 2: if not socket.waitForReadyRead(Timeout): self.error.emit(socket.error(), socket.errorString()) return instr = QtCore.QDataStream(socket) instr.setVersion(QtCore.QDataStream.Qt_4_0) blockSize = instr.readUInt16() while socket.bytesAvailable() < blockSize: if not socket.waitForReadyRead(Timeout): self.error.emit(socket.error(), socket.errorString()) return self.mutex.lock() fortune = instr.readString() try: # Python v3. fortune = str(fortune, encoding='ascii') except TypeError: # Python v2. pass self.newFortune.emit(fortune) self.cond.wait(self.mutex) serverName = self.hostName serverPort = self.port self.mutex.unlock() class BlockingClient(QtGui.QDialog): def __init__(self, parent=None): super(BlockingClient, self).__init__(parent) self.thread = FortuneThread() self.currentFortune = '' hostLabel = QtGui.QLabel("&Server name:") portLabel = QtGui.QLabel("S&erver port:") self.hostLineEdit = QtGui.QLineEdit('Localhost') self.portLineEdit = QtGui.QLineEdit() self.portLineEdit.setValidator(QtGui.QIntValidator(1, 65535, self)) hostLabel.setBuddy(self.hostLineEdit) portLabel.setBuddy(self.portLineEdit) self.statusLabel = QtGui.QLabel("This example requires that you run " "the Fortune Server example as well.") self.getFortuneButton = QtGui.QPushButton("Get Fortune") self.getFortuneButton.setDefault(True) self.getFortuneButton.setEnabled(False) quitButton = QtGui.QPushButton("Quit") buttonBox = QtGui.QDialogButtonBox() buttonBox.addButton(self.getFortuneButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(quitButton, QtGui.QDialogButtonBox.RejectRole) self.hostLineEdit.textChanged.connect(self.enableGetFortuneButton) self.portLineEdit.textChanged.connect(self.enableGetFortuneButton) self.getFortuneButton.clicked.connect(self.requestNewFortune) quitButton.clicked.connect(self.close) self.thread.newFortune.connect(self.showFortune) self.thread.error.connect(self.displayError) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(hostLabel, 0, 0) mainLayout.addWidget(self.hostLineEdit, 0, 1) mainLayout.addWidget(portLabel, 1, 0) mainLayout.addWidget(self.portLineEdit, 1, 1) mainLayout.addWidget(self.statusLabel, 2, 0, 1, 2) mainLayout.addWidget(buttonBox, 3, 0, 1, 2) self.setLayout(mainLayout) self.setWindowTitle("Blocking Fortune Client") self.portLineEdit.setFocus() def requestNewFortune(self): self.getFortuneButton.setEnabled(False) self.thread.requestNewFortune(self.hostLineEdit.text(), int(self.portLineEdit.text())) def showFortune(self, nextFortune): if nextFortune == self.currentFortune: self.requestNewFortune() return self.currentFortune = nextFortune self.statusLabel.setText(self.currentFortune) self.getFortuneButton.setEnabled(True) def displayError(self, socketError, message): if socketError == QtNetwork.QAbstractSocket.HostNotFoundError: QtGui.QMessageBox.information(self, "Blocking Fortune Client", "The host was not found. Please check the host and port " "settings.") elif socketError == QtNetwork.QAbstractSocket.ConnectionRefusedError: QtGui.QMessageBox.information(self, "Blocking Fortune Client", "The connection was refused by the peer. Make sure the " "fortune server is running, and check that the host name " "and port settings are correct.") else: QtGui.QMessageBox.information(self, "Blocking Fortune Client", "The following error occurred: %s." % message) self.getFortuneButton.setEnabled(True) def enableGetFortuneButton(self): self.getFortuneButton.setEnabled(bool(self.hostLineEdit.text() and self.portLineEdit.text())) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) client = BlockingClient() client.show() sys.exit(client.exec_()) PyQt-x11-gpl-4.11.4/examples/network/broadcastreceiver.py0000755000076500000240000000672212536324427023336 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtGui, QtNetwork class Receiver(QtGui.QDialog): def __init__(self, parent=None): super(Receiver, self).__init__(parent) self.statusLabel = QtGui.QLabel("Listening for broadcasted messages") quitButton = QtGui.QPushButton("&Quit") self.udpSocket = QtNetwork.QUdpSocket(self) self.udpSocket.bind(45454) self.udpSocket.readyRead.connect(self.processPendingDatagrams) quitButton.clicked.connect(self.close) buttonLayout = QtGui.QHBoxLayout() buttonLayout.addStretch(1) buttonLayout.addWidget(quitButton) buttonLayout.addStretch(1) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.statusLabel) mainLayout.addLayout(buttonLayout) self.setLayout(mainLayout) self.setWindowTitle("Broadcast Receiver") def processPendingDatagrams(self): while self.udpSocket.hasPendingDatagrams(): datagram, host, port = self.udpSocket.readDatagram(self.udpSocket.pendingDatagramSize()) try: # Python v3. datagram = str(datagram, encoding='ascii') except TypeError: # Python v2. pass self.statusLabel.setText("Received datagram: \"%s\"" % datagram) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) receiver = Receiver() receiver.show() sys.exit(receiver.exec_()) PyQt-x11-gpl-4.11.4/examples/network/broadcastsender.py0000755000076500000240000000715412536324427023012 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtNetwork class Sender(QtGui.QDialog): def __init__(self, parent=None): super(Sender, self).__init__(parent) self.statusLabel = QtGui.QLabel("Ready to broadcast datagrams on port 45454") self.startButton = QtGui.QPushButton("&Start") quitButton = QtGui.QPushButton("&Quit") buttonBox = QtGui.QDialogButtonBox() buttonBox.addButton(self.startButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(quitButton, QtGui.QDialogButtonBox.RejectRole) self.timer = QtCore.QTimer(self) self.udpSocket = QtNetwork.QUdpSocket(self) self.messageNo = 1 self.startButton.clicked.connect(self.startBroadcasting) quitButton.clicked.connect(self.close) self.timer.timeout.connect(self.broadcastDatagramm) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.statusLabel) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.setWindowTitle("Broadcast Sender") def startBroadcasting(self): self.startButton.setEnabled(False) self.timer.start(1000) def broadcastDatagramm(self): self.statusLabel.setText("Now broadcasting datagram %d" % self.messageNo) datagram = "Broadcast message %d" % self.messageNo self.udpSocket.writeDatagram(datagram, QtNetwork.QHostAddress(QtNetwork.QHostAddress.Broadcast), 45454) self.messageNo += 1 if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) sender = Sender() sender.show() sys.exit(sender.exec_()) PyQt-x11-gpl-4.11.4/examples/network/fortuneclient.py0000755000076500000240000001454212536324427022527 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtNetwork class Client(QtGui.QDialog): def __init__(self, parent=None): super(Client, self).__init__(parent) self.blockSize = 0 self.currentFortune = '' hostLabel = QtGui.QLabel("&Server name:") portLabel = QtGui.QLabel("S&erver port:") self.hostLineEdit = QtGui.QLineEdit('Localhost') self.portLineEdit = QtGui.QLineEdit() self.portLineEdit.setValidator(QtGui.QIntValidator(1, 65535, self)) hostLabel.setBuddy(self.hostLineEdit) portLabel.setBuddy(self.portLineEdit) self.statusLabel = QtGui.QLabel("This examples requires that you run " "the Fortune Server example as well.") self.getFortuneButton = QtGui.QPushButton("Get Fortune") self.getFortuneButton.setDefault(True) self.getFortuneButton.setEnabled(False) quitButton = QtGui.QPushButton("Quit") buttonBox = QtGui.QDialogButtonBox() buttonBox.addButton(self.getFortuneButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(quitButton, QtGui.QDialogButtonBox.RejectRole) self.tcpSocket = QtNetwork.QTcpSocket(self) self.hostLineEdit.textChanged.connect(self.enableGetFortuneButton) self.portLineEdit.textChanged.connect(self.enableGetFortuneButton) self.getFortuneButton.clicked.connect(self.requestNewFortune) quitButton.clicked.connect(self.close) self.tcpSocket.readyRead.connect(self.readFortune) self.tcpSocket.error.connect(self.displayError) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(hostLabel, 0, 0) mainLayout.addWidget(self.hostLineEdit, 0, 1) mainLayout.addWidget(portLabel, 1, 0) mainLayout.addWidget(self.portLineEdit, 1, 1) mainLayout.addWidget(self.statusLabel, 2, 0, 1, 2) mainLayout.addWidget(buttonBox, 3, 0, 1, 2) self.setLayout(mainLayout) self.setWindowTitle("Fortune Client") self.portLineEdit.setFocus() def requestNewFortune(self): self.getFortuneButton.setEnabled(False) self.blockSize = 0 self.tcpSocket.abort() self.tcpSocket.connectToHost(self.hostLineEdit.text(), int(self.portLineEdit.text())) def readFortune(self): instr = QtCore.QDataStream(self.tcpSocket) instr.setVersion(QtCore.QDataStream.Qt_4_0) if self.blockSize == 0: if self.tcpSocket.bytesAvailable() < 2: return self.blockSize = instr.readUInt16() if self.tcpSocket.bytesAvailable() < self.blockSize: return nextFortune = instr.readString() try: # Python v3. nextFortune = str(nextFortune, encoding='ascii') except TypeError: # Python v2. pass if nextFortune == self.currentFortune: QtCore.QTimer.singleShot(0, self.requestNewFortune) return self.currentFortune = nextFortune self.statusLabel.setText(self.currentFortune) self.getFortuneButton.setEnabled(True) def displayError(self, socketError): if socketError == QtNetwork.QAbstractSocket.RemoteHostClosedError: pass elif socketError == QtNetwork.QAbstractSocket.HostNotFoundError: QtGui.QMessageBox.information(self, "Fortune Client", "The host was not found. Please check the host name and " "port settings.") elif socketError == QtNetwork.QAbstractSocket.ConnectionRefusedError: QtGui.QMessageBox.information(self, "Fortune Client", "The connection was refused by the peer. Make sure the " "fortune server is running, and check that the host name " "and port settings are correct.") else: QtGui.QMessageBox.information(self, "Fortune Client", "The following error occurred: %s." % self.tcpSocket.errorString()) self.getFortuneButton.setEnabled(True) def enableGetFortuneButton(self): self.getFortuneButton.setEnabled(bool(self.hostLineEdit.text() and self.portLineEdit.text())) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) client = Client() client.show() sys.exit(client.exec_()) PyQt-x11-gpl-4.11.4/examples/network/fortuneserver.py0000755000076500000240000001106412536324427022553 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import random from PyQt4 import QtCore, QtGui, QtNetwork class Server(QtGui.QDialog): def __init__(self, parent=None): super(Server, self).__init__(parent) statusLabel = QtGui.QLabel() quitButton = QtGui.QPushButton("Quit") quitButton.setAutoDefault(False) self.tcpServer = QtNetwork.QTcpServer(self) if not self.tcpServer.listen(): QtGui.QMessageBox.critical(self, "Fortune Server", "Unable to start the server: %s." % self.tcpServer.errorString()) self.close() return statusLabel.setText("The server is running on port %d.\nRun the " "Fortune Client example now." % self.tcpServer.serverPort()) self.fortunes = ( "You've been leading a dog's life. Stay off the furniture.", "You've got to think about tomorrow.", "You will be surprised by a loud noise.", "You will feel hungry again in another hour.", "You might have mail.", "You cannot kill time without injuring eternity.", "Computers are not intelligent. They only think they are.") quitButton.clicked.connect(self.close) self.tcpServer.newConnection.connect(self.sendFortune) buttonLayout = QtGui.QHBoxLayout() buttonLayout.addStretch(1) buttonLayout.addWidget(quitButton) buttonLayout.addStretch(1) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(statusLabel) mainLayout.addLayout(buttonLayout) self.setLayout(mainLayout) self.setWindowTitle("Fortune Server") def sendFortune(self): block = QtCore.QByteArray() out = QtCore.QDataStream(block, QtCore.QIODevice.WriteOnly) out.setVersion(QtCore.QDataStream.Qt_4_0) out.writeUInt16(0) fortune = self.fortunes[random.randint(0, len(self.fortunes) - 1)] try: # Python v3. fortune = bytes(fortune, encoding='ascii') except: # Python v2. pass out.writeString(fortune) out.device().seek(0) out.writeUInt16(block.size() - 2) clientConnection = self.tcpServer.nextPendingConnection() clientConnection.disconnected.connect(clientConnection.deleteLater) clientConnection.write(block) clientConnection.disconnectFromHost() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) server = Server() random.seed(None) sys.exit(server.exec_()) PyQt-x11-gpl-4.11.4/examples/network/ftp/0000755000076500000240000000000012536324427020054 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/network/ftp/ftp.py0000755000076500000240000002610312536324427021224 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui, QtNetwork try: import ftp_rc3 except ImportError: import ftp_rc2 class FtpWindow(QtGui.QDialog): def __init__(self, parent=None): super(FtpWindow, self).__init__(parent) self.isDirectory = {} self.currentPath = '' self.ftp = None self.outFile = None ftpServerLabel = QtGui.QLabel("Ftp &server:") self.ftpServerLineEdit = QtGui.QLineEdit('ftp.trolltech.com') ftpServerLabel.setBuddy(self.ftpServerLineEdit) self.statusLabel = QtGui.QLabel("Please enter the name of an FTP server.") self.fileList = QtGui.QTreeWidget() self.fileList.setEnabled(False) self.fileList.setRootIsDecorated(False) self.fileList.setHeaderLabels(("Name", "Size", "Owner", "Group", "Time")) self.fileList.header().setStretchLastSection(False) self.connectButton = QtGui.QPushButton("Connect") self.connectButton.setDefault(True) self.cdToParentButton = QtGui.QPushButton() self.cdToParentButton.setIcon(QtGui.QIcon(':/images/cdtoparent.png')) self.cdToParentButton.setEnabled(False) self.downloadButton = QtGui.QPushButton("Download") self.downloadButton.setEnabled(False) self.quitButton = QtGui.QPushButton("Quit") buttonBox = QtGui.QDialogButtonBox() buttonBox.addButton(self.downloadButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(self.quitButton, QtGui.QDialogButtonBox.RejectRole) self.progressDialog = QtGui.QProgressDialog(self) self.fileList.itemActivated.connect(self.processItem) self.fileList.currentItemChanged.connect(self.enableDownloadButton) self.progressDialog.canceled.connect(self.cancelDownload) self.connectButton.clicked.connect(self.connectOrDisconnect) self.cdToParentButton.clicked.connect(self.cdToParent) self.downloadButton.clicked.connect(self.downloadFile) self.quitButton.clicked.connect(self.close) topLayout = QtGui.QHBoxLayout() topLayout.addWidget(ftpServerLabel) topLayout.addWidget(self.ftpServerLineEdit) topLayout.addWidget(self.cdToParentButton) topLayout.addWidget(self.connectButton) mainLayout = QtGui.QVBoxLayout() mainLayout.addLayout(topLayout) mainLayout.addWidget(self.fileList) mainLayout.addWidget(self.statusLabel) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.setWindowTitle("FTP") def sizeHint(self): return QtCore.QSize(500, 300) def connectOrDisconnect(self): if self.ftp: self.ftp.abort() self.ftp.deleteLater() self.ftp = None self.fileList.setEnabled(False) self.cdToParentButton.setEnabled(False) self.downloadButton.setEnabled(False) self.connectButton.setEnabled(True) self.connectButton.setText("Connect") self.setCursor(QtCore.Qt.ArrowCursor) return self.setCursor(QtCore.Qt.WaitCursor) self.ftp = QtNetwork.QFtp(self) self.ftp.commandFinished.connect(self.ftpCommandFinished) self.ftp.listInfo.connect(self.addToList) self.ftp.dataTransferProgress.connect(self.updateDataTransferProgress) self.fileList.clear() self.currentPath = '' self.isDirectory.clear() url = QtCore.QUrl(self.ftpServerLineEdit.text()) if not url.isValid() or url.scheme().lower() != 'ftp': self.ftp.connectToHost(self.ftpServerLineEdit.text(), 21) self.ftp.login() else: self.ftp.connectToHost(url.host(), url.port(21)) user_name = url.userName() if user_name: try: # Python v3. user_name = bytes(user_name, encoding='latin1') except: # Python v2. pass self.ftp.login(QtCore.QUrl.fromPercentEncoding(user_name), url.password()) else: self.ftp.login() if url.path(): self.ftp.cd(url.path()) self.fileList.setEnabled(True) self.connectButton.setEnabled(False) self.connectButton.setText("Disconnect") self.statusLabel.setText("Connecting to FTP server %s..." % self.ftpServerLineEdit.text()) def downloadFile(self): fileName = self.fileList.currentItem().text(0) if QtCore.QFile.exists(fileName): QtGui.QMessageBox.information(self, "FTP", "There already exists a file called %s in the current " "directory." % fileName) return self.outFile = QtCore.QFile(fileName) if not self.outFile.open(QtCore.QIODevice.WriteOnly): QtGui.QMessageBox.information(self, "FTP", "Unable to save the file %s: %s." % (fileName, self.outFile.errorString())) self.outFile = None return self.ftp.get(self.fileList.currentItem().text(0), self.outFile) self.progressDialog.setLabelText("Downloading %s..." % fileName) self.downloadButton.setEnabled(False) self.progressDialog.exec_() def cancelDownload(self): self.ftp.abort() def ftpCommandFinished(self, _, error): self.setCursor(QtCore.Qt.ArrowCursor) if self.ftp.currentCommand() == QtNetwork.QFtp.ConnectToHost: if error: QtGui.QMessageBox.information(self, "FTP", "Unable to connect to the FTP server at %s. Please " "check that the host name is correct." % self.ftpServerLineEdit.text()) self.connectOrDisconnect() return self.statusLabel.setText("Logged onto %s." % self.ftpServerLineEdit.text()) self.fileList.setFocus() self.downloadButton.setDefault(True) self.connectButton.setEnabled(True) return if self.ftp.currentCommand() == QtNetwork.QFtp.Login: self.ftp.list() if self.ftp.currentCommand() == QtNetwork.QFtp.Get: if error: self.statusLabel.setText("Canceled download of %s." % self.outFile.fileName()) self.outFile.close() self.outFile.remove() else: self.statusLabel.setText("Downloaded %s to current directory." % self.outFile.fileName()) self.outFile.close() self.outFile = None self.enableDownloadButton() self.progressDialog.hide() elif self.ftp.currentCommand() == QtNetwork.QFtp.List: if not self.isDirectory: self.fileList.addTopLevelItem(QtGui.QTreeWidgetItem([""])) self.fileList.setEnabled(False) def addToList(self, urlInfo): item = QtGui.QTreeWidgetItem() item.setText(0, urlInfo.name()) item.setText(1, str(urlInfo.size())) item.setText(2, urlInfo.owner()) item.setText(3, urlInfo.group()) item.setText(4, urlInfo.lastModified().toString('MMM dd yyyy')) if urlInfo.isDir(): icon = QtGui.QIcon(':/images/dir.png') else: icon = QtGui.QIcon(':/images/file.png') item.setIcon(0, icon) self.isDirectory[urlInfo.name()] = urlInfo.isDir() self.fileList.addTopLevelItem(item) if not self.fileList.currentItem(): self.fileList.setCurrentItem(self.fileList.topLevelItem(0)) self.fileList.setEnabled(True) def processItem(self, item): name = item.text(0) if self.isDirectory.get(name): self.fileList.clear() self.isDirectory.clear() self.currentPath += '/' + name self.ftp.cd(name) self.ftp.list() self.cdToParentButton.setEnabled(True) self.setCursor(QtCore.Qt.WaitCursor) def cdToParent(self): self.setCursor(QtCore.Qt.WaitCursor) self.fileList.clear() self.isDirectory.clear() dirs = self.currentPath.split('/') if len(dirs) > 1: self.currentPath = '' self.cdToParentButton.setEnabled(False) self.ftp.cd('/') else: self.currentPath = '/'.join(dirs[:-1]) self.ftp.cd(self.currentPath) self.ftp.list() def updateDataTransferProgress(self, readBytes, totalBytes): self.progressDialog.setMaximum(totalBytes) self.progressDialog.setValue(readBytes) def enableDownloadButton(self): current = self.fileList.currentItem() if current: currentFile = current.text(0) self.downloadButton.setEnabled(not self.isDirectory.get(currentFile)) else: self.downloadButton.setEnabled(False) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) ftpWin = FtpWindow() ftpWin.show() sys.exit(ftpWin.exec_()) PyQt-x11-gpl-4.11.4/examples/network/ftp/ftp.qrc0000644000076500000240000000025212536324427021353 0ustar philstaff00000000000000 images/cdtoparent.png images/dir.png images/file.png PyQt-x11-gpl-4.11.4/examples/network/ftp/ftp_rc2.py0000644000076500000240000000577112536324427021777 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:46:54 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x00\x9b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\x00\x48\ \x00\x46\xc9\x6b\x3e\x00\x00\x00\x4d\x49\x44\x41\x54\x38\xcb\x63\ \x60\x18\x34\x60\xe6\xcc\x99\xff\xd1\x31\x49\x9a\xcf\x9c\x39\xf3\ \xff\xff\x7f\x06\x14\x9a\x28\x43\x70\x69\x46\x36\x04\xaf\xeb\x40\ \x1c\x52\x01\xd4\x80\xff\x68\x06\x30\xe0\x75\x09\x32\x8d\xd5\x00\ \x62\x35\x23\x85\xcd\xa8\x0b\xa8\xea\x02\x72\x30\xdc\x00\x28\xf8\ \x4f\x26\xa6\x1c\x00\x00\x8c\xaf\xf9\x48\x94\xb3\xf7\xb4\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x81\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x04\x00\x00\x00\xb5\xfa\x37\xea\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\x00\x48\ \x00\x46\xc9\x6b\x3e\x00\x00\x00\x33\x49\x44\x41\x54\x28\xcf\x63\ \x60\x20\x04\xea\xff\x63\x42\x34\x05\xe8\x60\x3f\xaa\x12\x6c\x0a\ \xfe\x23\x2b\xc1\x54\xc0\x00\x83\xb8\x14\x40\x4c\x19\x55\x80\xa1\ \x60\x3f\x56\x08\x57\xc0\xf0\x1f\x27\x04\x03\x00\x03\xba\x4b\xb1\ \x6c\xf1\xe8\x3e\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x00\x8b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x76\x1e\x34\x41\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\x00\x48\ \x00\x46\xc9\x6b\x3e\x00\x00\x00\x3d\x49\x44\x41\x54\x28\xcf\x63\ \x60\x40\x80\xff\x58\x30\x51\xe0\xff\xff\xff\x33\x31\x30\x31\x06\ \xfc\xa7\x00\x63\xb7\x95\x10\xc6\xa9\x99\x18\x03\xb1\x6a\x46\x76\ \x16\x49\x9a\xb1\xf9\x8b\x7e\xce\xa6\x8a\x66\x42\x5e\xa0\x4d\x54\ \x91\xa4\x99\x5c\x0c\x00\xd4\x48\xc0\x4e\x47\x46\xbd\x51\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x0b\x05\x57\x87\ \x00\x64\ \x00\x69\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x00\x28\x5a\xe7\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x0f\x3b\x9c\x27\ \x00\x63\ \x00\x64\x00\x74\x00\x6f\x00\x70\x00\x61\x00\x72\x00\x65\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x00\x9f\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x01\x24\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/network/ftp/ftp_rc3.py0000644000076500000240000000577412536324427022003 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:46:54 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x00\x9b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\x00\x48\ \x00\x46\xc9\x6b\x3e\x00\x00\x00\x4d\x49\x44\x41\x54\x38\xcb\x63\ \x60\x18\x34\x60\xe6\xcc\x99\xff\xd1\x31\x49\x9a\xcf\x9c\x39\xf3\ \xff\xff\x7f\x06\x14\x9a\x28\x43\x70\x69\x46\x36\x04\xaf\xeb\x40\ \x1c\x52\x01\xd4\x80\xff\x68\x06\x30\xe0\x75\x09\x32\x8d\xd5\x00\ \x62\x35\x23\x85\xcd\xa8\x0b\xa8\xea\x02\x72\x30\xdc\x00\x28\xf8\ \x4f\x26\xa6\x1c\x00\x00\x8c\xaf\xf9\x48\x94\xb3\xf7\xb4\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x81\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x04\x00\x00\x00\xb5\xfa\x37\xea\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\x00\x48\ \x00\x46\xc9\x6b\x3e\x00\x00\x00\x33\x49\x44\x41\x54\x28\xcf\x63\ \x60\x20\x04\xea\xff\x63\x42\x34\x05\xe8\x60\x3f\xaa\x12\x6c\x0a\ \xfe\x23\x2b\xc1\x54\xc0\x00\x83\xb8\x14\x40\x4c\x19\x55\x80\xa1\ \x60\x3f\x56\x08\x57\xc0\xf0\x1f\x27\x04\x03\x00\x03\xba\x4b\xb1\ \x6c\xf1\xe8\x3e\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x00\x8b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x76\x1e\x34\x41\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\x00\x48\ \x00\x46\xc9\x6b\x3e\x00\x00\x00\x3d\x49\x44\x41\x54\x28\xcf\x63\ \x60\x40\x80\xff\x58\x30\x51\xe0\xff\xff\xff\x33\x31\x30\x31\x06\ \xfc\xa7\x00\x63\xb7\x95\x10\xc6\xa9\x99\x18\x03\xb1\x6a\x46\x76\ \x16\x49\x9a\xb1\xf9\x8b\x7e\xce\xa6\x8a\x66\x42\x5e\xa0\x4d\x54\ \x91\xa4\x99\x5c\x0c\x00\xd4\x48\xc0\x4e\x47\x46\xbd\x51\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x07\ \x0b\x05\x57\x87\ \x00\x64\ \x00\x69\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x00\x28\x5a\xe7\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x0f\x3b\x9c\x27\ \x00\x63\ \x00\x64\x00\x74\x00\x6f\x00\x70\x00\x61\x00\x72\x00\x65\x00\x6e\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x00\x9f\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x01\x24\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/network/ftp/images/0000755000076500000240000000000012536324427021321 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/network/ftp/images/cdtoparent.png0000644000076500000240000000021312536324427024166 0ustar philstaff00000000000000‰PNG  IHDR v4A pHYsHHFÉk>=IDAT(Ïc`@€ÿX0Qàÿÿÿ3101ü§c·•Æ©™±jFvIš±ù‹~ΦŠfB^ MT‘¤™\ ÔHÀNGF½QIEND®B`‚PyQt-x11-gpl-4.11.4/examples/network/ftp/images/dir.png0000644000076500000240000000023312536324427022603 0ustar philstaff00000000000000‰PNG  IHDRóÿa pHYsHHFÉk>MIDAT8Ëc`4`æÌ™ÿÑ1IšÏœ9óÿÿš(CpiF6¯ë@RÔ€ÿh0àu 2Õb5#…ͨ ¨êr0Ü(øO&¦Œ¯ùH”³÷´IEND®B`‚PyQt-x11-gpl-4.11.4/examples/network/ftp/images/file.png0000644000076500000240000000020112536324427022737 0ustar philstaff00000000000000‰PNG  IHDRµú7ê pHYsHHFÉk>3IDAT(Ïc` êÿcB4è`?ªl þ#+ÁTÀƒ¸@LU€¡`?VWÀð'ºK±lñè>IEND®B`‚PyQt-x11-gpl-4.11.4/examples/network/http/0000755000076500000240000000000012536324427020242 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/network/http/authenticationdialog.ui0000644000076500000240000000604112536324427025001 0ustar philstaff00000000000000 Dialog 0 0 389 243 Http authentication required You need to supply a Username and a Password to access this site false Username: Password: Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::Ok Site: 75 true %1 at %2 true Qt::Vertical 20 40 buttonBox accepted() Dialog accept() 248 254 157 274 buttonBox rejected() Dialog reject() 316 260 286 274 PyQt-x11-gpl-4.11.4/examples/network/http/http.py0000755000076500000240000002155112536324427021602 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui, QtNetwork class HttpWindow(QtGui.QDialog): def __init__(self, parent=None): super(HttpWindow, self).__init__(parent) self.outFile = None self.httpGetId = 0 self.httpRequestAborted = False self.urlLineEdit = QtGui.QLineEdit('https://') urlLabel = QtGui.QLabel("&URL:") urlLabel.setBuddy(self.urlLineEdit) self.statusLabel = QtGui.QLabel("Please enter the URL of a file you " "want to download.") self.downloadButton = QtGui.QPushButton("Download") self.downloadButton.setDefault(True) self.quitButton = QtGui.QPushButton("Quit") self.quitButton.setAutoDefault(False) buttonBox = QtGui.QDialogButtonBox() buttonBox.addButton(self.downloadButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(self.quitButton, QtGui.QDialogButtonBox.RejectRole) self.progressDialog = QtGui.QProgressDialog(self) self.http = QtNetwork.QHttp(self) self.urlLineEdit.textChanged.connect(self.enableDownloadButton) self.http.requestFinished.connect(self.httpRequestFinished) self.http.dataReadProgress.connect(self.updateDataReadProgress) self.http.responseHeaderReceived.connect(self.readResponseHeader) self.http.authenticationRequired.connect(self.slotAuthenticationRequired) self.http.sslErrors.connect(self.sslErrors) self.progressDialog.canceled.connect(self.cancelDownload) self.downloadButton.clicked.connect(self.downloadFile) self.quitButton.clicked.connect(self.close) topLayout = QtGui.QHBoxLayout() topLayout.addWidget(urlLabel) topLayout.addWidget(self.urlLineEdit) mainLayout = QtGui.QVBoxLayout() mainLayout.addLayout(topLayout) mainLayout.addWidget(self.statusLabel) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.setWindowTitle("HTTP") self.urlLineEdit.setFocus() def downloadFile(self): url = QtCore.QUrl(self.urlLineEdit.text()) fileInfo = QtCore.QFileInfo(url.path()) fileName = fileInfo.fileName() if not fileName: fileName = 'index.html' if QtCore.QFile.exists(fileName): ret = QtGui.QMessageBox.question(self, "HTTP", "There already exists a file called %s in the current " "directory." % fileName, QtGui.QMessageBox.Ok | QtGui.QMessageBox.Cancel, QtGui.QMessageBox.Cancel) if ret == QtGui.QMessageBox.Cancel: return QtCore.QFile.remove(fileName) self.outFile = QtCore.QFile(fileName) if not self.outFile.open(QtCore.QIODevice.WriteOnly): QtGui.QMessageBox.information(self, "HTTP", "Unable to save the file %s: %s." % (fileName, self.outFile.errorString())) self.outFile = None return if url.scheme().lower() == 'https': mode = QtNetwork.QHttp.ConnectionModeHttps else: mode = QtNetwork.QHttp.ConnectionModeHttp port = url.port() if port == -1: port = 0 self.http.setHost(url.host(), mode, port) if url.userName(): self.http.setUser(url.userName(), url.password()) self.httpRequestAborted = False path = QtCore.QUrl.toPercentEncoding(url.path(), "!$&'()*+,;=:@/") if path: try: # Python v3. path = str(path, encoding='utf-8') except TypeError: # Python v2. path = str(path) else: path = '/' self.httpGetId = self.http.get(path, self.outFile) self.progressDialog.setWindowTitle("HTTP") self.progressDialog.setLabelText("Downloading %s." % fileName) self.downloadButton.setEnabled(False) def cancelDownload(self): self.statusLabel.setText("Download canceled.") self.httpRequestAborted = True self.http.abort() self.downloadButton.setEnabled(True) def httpRequestFinished(self, requestId, error): if requestId != self.httpGetId: return if self.httpRequestAborted: if self.outFile is not None: self.outFile.close() self.outFile.remove() self.outFile = None self.progressDialog.hide() return self.progressDialog.hide() self.outFile.close() if error: self.outFile.remove() QtGui.QMessageBox.information(self, "HTTP", "Download failed: %s." % self.http.errorString()) else: fileName = QtCore.QFileInfo(QtCore.QUrl(self.urlLineEdit.text()).path()).fileName() self.statusLabel.setText("Downloaded %s to current directory." % fileName) self.downloadButton.setEnabled(True) self.outFile = None def readResponseHeader(self, responseHeader): # Check for genuine error conditions. if responseHeader.statusCode() not in (200, 300, 301, 302, 303, 307): QtGui.QMessageBox.information(self, "HTTP", "Download failed: %s." % responseHeader.reasonPhrase()) self.httpRequestAborted = True self.progressDialog.hide() self.http.abort() def updateDataReadProgress(self, bytesRead, totalBytes): if self.httpRequestAborted: return self.progressDialog.setMaximum(totalBytes) self.progressDialog.setValue(bytesRead) def enableDownloadButton(self): self.downloadButton.setEnabled(bool(self.urlLineEdit.text())) def slotAuthenticationRequired(self, hostName, _, authenticator): import os from PyQt4 import uic ui = os.path.join(os.path.dirname(__file__), 'authenticationdialog.ui') dlg = uic.loadUi(ui) dlg.adjustSize() dlg.siteDescription.setText("%s at %s" % (authenticator.realm(), hostName)) if dlg.exec_() == QtGui.QDialog.Accepted: authenticator.setUser(dlg.userEdit.text()) authenticator.setPassword(dlg.passwordEdit.text()) def sslErrors(self, errors): errorString = ", ".join([str(error.errorString()) for error in errors]) ret = QtGui.QMessageBox.warning(self, "HTTP Example", "One or more SSL errors has occurred: %s" % errorString, QtGui.QMessageBox.Ignore | QtGui.QMessageBox.Abort) if ret == QtGui.QMessageBox.Ignore: self.http.ignoreSslErrors() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) httpWin = HttpWindow() httpWin.show() sys.exit(httpWin.exec_()) PyQt-x11-gpl-4.11.4/examples/network/loopback.py0000755000076500000240000001550512536324427021440 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtNetwork class Dialog(QtGui.QDialog): TotalBytes = 50 * 1024 * 1024 PayloadSize = 65536 def __init__(self, parent=None): super(Dialog, self).__init__(parent) self.tcpServer = QtNetwork.QTcpServer() self.tcpClient = QtNetwork.QTcpSocket() self.bytesToWrite = 0 self.bytesWritten = 0 self.bytesReceived = 0 self.clientProgressBar = QtGui.QProgressBar() self.clientStatusLabel = QtGui.QLabel("Client ready") self.serverProgressBar = QtGui.QProgressBar() self.serverStatusLabel = QtGui.QLabel("Server ready") self.startButton = QtGui.QPushButton("&Start") self.quitButton = QtGui.QPushButton("&Quit") buttonBox = QtGui.QDialogButtonBox() buttonBox.addButton(self.startButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(self.quitButton, QtGui.QDialogButtonBox.RejectRole) self.startButton.clicked.connect(self.start) self.quitButton.clicked.connect(self.close) self.tcpServer.newConnection.connect(self.acceptConnection) self.tcpClient.connected.connect(self.startTransfer) self.tcpClient.bytesWritten.connect(self.updateClientProgress) self.tcpClient.error.connect(self.displayError) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.clientProgressBar) mainLayout.addWidget(self.clientStatusLabel) mainLayout.addWidget(self.serverProgressBar) mainLayout.addWidget(self.serverStatusLabel) mainLayout.addStretch(1) mainLayout.addSpacing(10) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.setWindowTitle("Loopback") def start(self): self.startButton.setEnabled(False) QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor) self.bytesWritten = 0 self.bytesReceived = 0 while not self.tcpServer.isListening() and not self.tcpServer.listen(): ret = QtGui.QMessageBox.critical(self, "Loopback", "Unable to start the test: %s." % self.tcpServer.errorString(), QtGui.QMessageBox.Retry | QtGui.QMessageBox.Cancel) if ret == QtGui.QMessageBox.Cancel: return self.serverStatusLabel.setText("Listening") self.clientStatusLabel.setText("Connecting") self.tcpClient.connectToHost(QtNetwork.QHostAddress(QtNetwork.QHostAddress.LocalHost), self.tcpServer.serverPort()) def acceptConnection(self): self.tcpServerConnection = self.tcpServer.nextPendingConnection() self.tcpServerConnection.readyRead.connect(self.updateServerProgress) self.tcpServerConnection.error.connect(self.displayError) self.serverStatusLabel.setText("Accepted connection") self.tcpServer.close() def startTransfer(self): self.bytesToWrite = Dialog.TotalBytes - self.tcpClient.write(QtCore.QByteArray(Dialog.PayloadSize, '@')) self.clientStatusLabel.setText("Connected") def updateServerProgress(self): self.bytesReceived += self.tcpServerConnection.bytesAvailable() self.tcpServerConnection.readAll() self.serverProgressBar.setMaximum(Dialog.TotalBytes) self.serverProgressBar.setValue(self.bytesReceived) self.serverStatusLabel.setText("Received %dMB" % (self.bytesReceived / (1024 * 1024))) if self.bytesReceived == Dialog.TotalBytes: self.tcpServerConnection.close() self.startButton.setEnabled(True) QtGui.QApplication.restoreOverrideCursor() def updateClientProgress(self, numBytes): self.bytesWritten += numBytes if self.bytesToWrite > 0: self.bytesToWrite -= self.tcpClient.write(QtCore.QByteArray( min(self.bytesToWrite, Dialog.PayloadSize), '@')) self.clientProgressBar.setMaximum(Dialog.TotalBytes) self.clientProgressBar.setValue(self.bytesWritten) self.clientStatusLabel.setText("Sent %dMB" % (self.bytesWritten / (1024 * 1024))) def displayError(self, socketError): if socketError == QtNetwork.QTcpSocket.RemoteHostClosedError: return QtGui.QMessageBox.information(self, "Network error", "The following error occured: %s." % self.tcpClient.errorString()) self.tcpClient.close() self.tcpServer.close() self.clientProgressBar.reset() self.serverProgressBar.reset() self.clientStatusLabel.setText("Client ready") self.serverStatusLabel.setText("Server ready") self.startButton.setEnabled(True) QtGui.QApplication.restoreOverrideCursor() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) dialog = Dialog() dialog.show() sys.exit(dialog.exec_()) PyQt-x11-gpl-4.11.4/examples/network/README0000644000076500000240000000144712536324427020151 0ustar philstaff00000000000000PyQt is provided with an extensive set of network classes to support both client-based and server side network programming. These examples demonstrate the fundamental aspects of network programming with PyQt. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/network/threadedfortuneserver.py0000755000076500000240000001224312536324427024254 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import random from PyQt4 import QtCore, QtGui, QtNetwork class FortuneThread(QtCore.QThread): error = QtCore.pyqtSignal(QtNetwork.QTcpSocket.SocketError) def __init__(self, socketDescriptor, fortune, parent): super(FortuneThread, self).__init__(parent) self.socketDescriptor = socketDescriptor self.text = fortune def run(self): tcpSocket = QtNetwork.QTcpSocket() if not tcpSocket.setSocketDescriptor(self.socketDescriptor): self.error.emit(tcpSocket.error()) return block = QtCore.QByteArray() outstr = QtCore.QDataStream(block, QtCore.QIODevice.WriteOnly) outstr.setVersion(QtCore.QDataStream.Qt_4_0) outstr.writeUInt16(0) outstr.writeString(self.text) outstr.device().seek(0) outstr.writeUInt16(block.count() - 2) tcpSocket.write(block) tcpSocket.disconnectFromHost() tcpSocket.waitForDisconnected() class FortuneServer(QtNetwork.QTcpServer): def __init__(self, parent=None): super(FortuneServer, self).__init__(parent) self.fortunes = ( "You've been leading a dog's life. Stay off the furniture.", "You've got to think about tomorrow.", "You will be surprised by a loud noise.", "You will feel hungry again in another hour.", "You might have mail.", "You cannot kill time without injuring eternity.", "Computers are not intelligent. They only think they are.") def incomingConnection(self, socketDescriptor): fortune = self.fortunes[random.randint(0, len(self.fortunes) - 1)] try: # Python v3. fortune = bytes(fortune, encoding='ascii') except: # Python v2. pass thread = FortuneThread(socketDescriptor, fortune, self) thread.finished.connect(thread.deleteLater) thread.start() class Dialog(QtGui.QDialog): def __init__(self, parent=None): super(Dialog, self).__init__(parent) self.server = FortuneServer() statusLabel = QtGui.QLabel() quitButton = QtGui.QPushButton("Quit") quitButton.setAutoDefault(False) if not self.server.listen(): QtGui.QMessageBox.critical(self, "Threaded Fortune Server", "Unable to start the server: %s." % self.server.errorString()) self.close() return statusLabel.setText("The server is running on port %d.\nRun the " "Fortune Client example now." % self.server.serverPort()) quitButton.clicked.connect(self.close) buttonLayout = QtGui.QHBoxLayout() buttonLayout.addStretch(1) buttonLayout.addWidget(quitButton) buttonLayout.addStretch(1) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(statusLabel) mainLayout.addLayout(buttonLayout) self.setLayout(mainLayout) self.setWindowTitle("Threaded Fortune Server") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) dialog = Dialog() dialog.show() sys.exit(dialog.exec_()) PyQt-x11-gpl-4.11.4/examples/opengl/0000755000076500000240000000000012536324427017056 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/opengl/2dpainting.py0000755000076500000240000001361612536324427021501 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import sys import math from PyQt4 import QtCore, QtGui, QtOpenGL try: from OpenGL import GL except ImportError: app = QtGui.QApplication(sys.argv) QtGui.QMessageBox.critical(None, "OpenGL 2dpainting", "PyOpenGL must be installed to run this example.") sys.exit(1) from sip import setdestroyonexit setdestroyonexit(False) class Helper(object): def __init__(self): gradient = QtGui.QLinearGradient(QtCore.QPointF(50, -20), QtCore.QPointF(80, 20)) gradient.setColorAt(0.0, QtCore.Qt.white) gradient.setColorAt(1.0, QtGui.QColor(0xa6, 0xce, 0x39)) self.background = QtGui.QBrush(QtGui.QColor(64, 32, 64)) self.circleBrush = QtGui.QBrush(gradient) self.circlePen = QtGui.QPen(QtCore.Qt.black) self.circlePen.setWidth(1) self.textPen = QtGui.QPen(QtCore.Qt.white) self.textFont = QtGui.QFont() self.textFont.setPixelSize(50) def paint(self, painter, event, elapsed): painter.fillRect(event.rect(), self.background) painter.translate(100, 100) painter.save() painter.setBrush(self.circleBrush) painter.setPen(self.circlePen) painter.rotate(elapsed * 0.030) r = elapsed/1000.0 n = 30 for i in range(n): painter.rotate(30) radius = 0 + 120.0*((i+r)/n) circleRadius = 1 + ((i+r)/n)*20 painter.drawEllipse(QtCore.QRectF(radius, -circleRadius, circleRadius*2, circleRadius*2)) painter.restore() painter.setPen(self.textPen) painter.setFont(self.textFont) painter.drawText(QtCore.QRect(-50, -50, 100, 100), QtCore.Qt.AlignCenter, "Qt") class Widget(QtGui.QWidget): def __init__(self, helper, parent): super(Widget, self).__init__(parent) self.helper = helper self.elapsed = 0 self.setFixedSize(200, 200) def animate(self): self.elapsed = (self.elapsed + self.sender().interval()) % 1000 self.repaint() def paintEvent(self, event): painter = QtGui.QPainter() painter.begin(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) self.helper.paint(painter, event, self.elapsed) painter.end() class GLWidget(QtOpenGL.QGLWidget): def __init__(self, helper, parent): super(GLWidget, self).__init__(QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers), parent) self.helper = helper self.elapsed = 0 self.setFixedSize(200, 200) self.setAutoFillBackground(False) def animate(self): self.elapsed = (self.elapsed + self.sender().interval()) % 1000 self.repaint() def paintEvent(self, event): painter = QtGui.QPainter() painter.begin(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) self.helper.paint(painter, event, self.elapsed) painter.end() class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() helper = Helper() native = Widget(helper, self) openGL = GLWidget(helper, self) nativeLabel = QtGui.QLabel("Native") nativeLabel.setAlignment(QtCore.Qt.AlignHCenter) openGLLabel = QtGui.QLabel("OpenGL") openGLLabel.setAlignment(QtCore.Qt.AlignHCenter) layout = QtGui.QGridLayout() layout.addWidget(native, 0, 0) layout.addWidget(openGL, 0, 1) layout.addWidget(nativeLabel, 1, 0) layout.addWidget(openGLLabel, 1, 1) self.setLayout(layout) timer = QtCore.QTimer(self) timer.timeout.connect(native.animate) timer.timeout.connect(openGL.animate) timer.start(50) self.setWindowTitle("2D Painting on Native and OpenGL Widgets") if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/opengl/grabber.py0000755000076500000240000003443712536324427021052 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import sys import math from PyQt4 import QtCore, QtGui, QtOpenGL try: from OpenGL.GL import * except ImportError: app = QtGui.QApplication(sys.argv) QtGui.QMessageBox.critical(None, "OpenGL grabber", "PyOpenGL must be installed to run this example.") sys.exit(1) from sip import setdestroyonexit setdestroyonexit(False) class GLWidget(QtOpenGL.QGLWidget): xRotationChanged = QtCore.pyqtSignal(int) yRotationChanged = QtCore.pyqtSignal(int) zRotationChanged = QtCore.pyqtSignal(int) def __init__(self, parent=None): super(GLWidget, self).__init__(parent) self.gear1 = 0 self.gear2 = 0 self.gear3 = 0 self.xRot = 0 self.yRot = 0 self.zRot = 0 self.gear1Rot = 0 timer = QtCore.QTimer(self) timer.timeout.connect(self.advanceGears) timer.start(20) def setXRotation(self, angle): self.normalizeAngle(angle) if angle != self.xRot: self.xRot = angle self.xRotationChanged.emit(angle) self.updateGL() def setYRotation(self, angle): self.normalizeAngle(angle) if angle != self.yRot: self.yRot = angle self.yRotationChanged.emit(angle) self.updateGL() def setZRotation(self, angle): self.normalizeAngle(angle) if angle != self.zRot: self.zRot = angle self.zRotationChanged.emit(angle) self.updateGL() def initializeGL(self): lightPos = (5.0, 5.0, 10.0, 1.0) reflectance1 = (0.8, 0.1, 0.0, 1.0) reflectance2 = (0.0, 0.8, 0.2, 1.0) reflectance3 = (0.2, 0.2, 1.0, 1.0) glLightfv(GL_LIGHT0, GL_POSITION, lightPos) glEnable(GL_LIGHTING) glEnable(GL_LIGHT0) glEnable(GL_DEPTH_TEST) self.gear1 = self.makeGear(reflectance1, 1.0, 4.0, 1.0, 0.7, 20) self.gear2 = self.makeGear(reflectance2, 0.5, 2.0, 2.0, 0.7, 10) self.gear3 = self.makeGear(reflectance3, 1.3, 2.0, 0.5, 0.7, 10) glEnable(GL_NORMALIZE) glClearColor(0.0, 0.0, 0.0, 1.0) def paintGL(self): glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glPushMatrix() glRotated(self.xRot / 16.0, 1.0, 0.0, 0.0) glRotated(self.yRot / 16.0, 0.0, 1.0, 0.0) glRotated(self.zRot / 16.0, 0.0, 0.0, 1.0) self.drawGear(self.gear1, -3.0, -2.0, 0.0, self.gear1Rot / 16.0) self.drawGear(self.gear2, +3.1, -2.0, 0.0, -2.0 * (self.gear1Rot / 16.0) - 9.0) glRotated(+90.0, 1.0, 0.0, 0.0) self.drawGear(self.gear3, -3.1, -1.8, -2.2, +2.0 * (self.gear1Rot / 16.0) - 2.0) glPopMatrix() def resizeGL(self, width, height): side = min(width, height) if side < 0: return glViewport((width - side) // 2, (height - side) // 2, side, side) glMatrixMode(GL_PROJECTION) glLoadIdentity() glFrustum(-1.0, +1.0, -1.0, 1.0, 5.0, 60.0) glMatrixMode(GL_MODELVIEW) glLoadIdentity() glTranslated(0.0, 0.0, -40.0) def mousePressEvent(self, event): self.lastPos = event.pos() def mouseMoveEvent(self, event): dx = event.x() - self.lastPos.x() dy = event.y() - self.lastPos.y() if event.buttons() & QtCore.Qt.LeftButton: self.setXRotation(self.xRot + 8 * dy) self.setYRotation(self.yRot + 8 * dx) elif event.buttons() & QtCore.Qt.RightButton: self.setXRotation(self.xRot + 8 * dy) self.setZRotation(self.zRot + 8 * dx) self.lastPos = event.pos() def advanceGears(self): self.gear1Rot += 2 * 16 self.updateGL() def xRotation(self): return self.xRot def yRotation(self): return self.yRot def zRotation(self): return self.zRot def makeGear(self, reflectance, innerRadius, outerRadius, thickness, toothSize, toothCount): list = glGenLists(1) glNewList(list, GL_COMPILE) glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, reflectance) r0 = innerRadius r1 = outerRadius - toothSize / 2.0 r2 = outerRadius + toothSize / 2.0 delta = (2.0 * math.pi / toothCount) / 4.0 z = thickness / 2.0 glShadeModel(GL_FLAT) for i in range(2): if i == 0: sign = +1.0 else: sign = -1.0 glNormal3d(0.0, 0.0, sign) glBegin(GL_QUAD_STRIP) for j in range(toothCount+1): angle = 2.0 * math.pi * j / toothCount glVertex3d(r0 * math.cos(angle), r0 * math.sin(angle), sign * z) glVertex3d(r1 * math.cos(angle), r1 * math.sin(angle), sign * z) glVertex3d(r0 * math.cos(angle), r0 * math.sin(angle), sign * z) glVertex3d(r1 * math.cos(angle + 3 * delta), r1 * math.sin(angle + 3 * delta), sign * z) glEnd() glBegin(GL_QUADS) for j in range(toothCount): angle = 2.0 * math.pi * j / toothCount glVertex3d(r1 * math.cos(angle), r1 * math.sin(angle), sign * z) glVertex3d(r2 * math.cos(angle + delta), r2 * math.sin(angle + delta), sign * z) glVertex3d(r2 * math.cos(angle + 2 * delta), r2 * math.sin(angle + 2 * delta), sign * z) glVertex3d(r1 * math.cos(angle + 3 * delta), r1 * math.sin(angle + 3 * delta), sign * z) glEnd() glBegin(GL_QUAD_STRIP) for i in range(toothCount): for j in range(2): angle = 2.0 * math.pi * (i + (j / 2.0)) / toothCount s1 = r1 s2 = r2 if j == 1: s1, s2 = s2, s1 glNormal3d(math.cos(angle), math.sin(angle), 0.0) glVertex3d(s1 * math.cos(angle), s1 * math.sin(angle), +z) glVertex3d(s1 * math.cos(angle), s1 * math.sin(angle), -z) glNormal3d(s2 * math.sin(angle + delta) - s1 * math.sin(angle), s1 * math.cos(angle) - s2 * math.cos(angle + delta), 0.0) glVertex3d(s2 * math.cos(angle + delta), s2 * math.sin(angle + delta), +z) glVertex3d(s2 * math.cos(angle + delta), s2 * math.sin(angle + delta), -z) glVertex3d(r1, 0.0, +z) glVertex3d(r1, 0.0, -z) glEnd() glShadeModel(GL_SMOOTH) glBegin(GL_QUAD_STRIP) for i in range(toothCount+1): angle = i * 2.0 * math.pi / toothCount glNormal3d(-math.cos(angle), -math.sin(angle), 0.0) glVertex3d(r0 * math.cos(angle), r0 * math.sin(angle), +z) glVertex3d(r0 * math.cos(angle), r0 * math.sin(angle), -z) glEnd() glEndList() return list def drawGear(self, gear, dx, dy, dz, angle): glPushMatrix() glTranslated(dx, dy, dz) glRotated(angle, 0.0, 0.0, 1.0) glCallList(gear) glPopMatrix() def normalizeAngle(self, angle): while (angle < 0): angle += 360 * 16 while (angle > 360 * 16): angle -= 360 * 16 class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() centralWidget = QtGui.QWidget() self.setCentralWidget(centralWidget) self.glWidget = GLWidget() self.pixmapLabel = QtGui.QLabel() self.glWidgetArea = QtGui.QScrollArea() self.glWidgetArea.setWidget(self.glWidget) self.glWidgetArea.setWidgetResizable(True) self.glWidgetArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.glWidgetArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.glWidgetArea.setSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored) self.glWidgetArea.setMinimumSize(50, 50) self.pixmapLabelArea = QtGui.QScrollArea() self.pixmapLabelArea.setWidget(self.pixmapLabel) self.pixmapLabelArea.setSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored) self.pixmapLabelArea.setMinimumSize(50, 50) xSlider = self.createSlider(self.glWidget.xRotationChanged, self.glWidget.setXRotation) ySlider = self.createSlider(self.glWidget.yRotationChanged, self.glWidget.setYRotation) zSlider = self.createSlider(self.glWidget.zRotationChanged, self.glWidget.setZRotation) self.createActions() self.createMenus() centralLayout = QtGui.QGridLayout() centralLayout.addWidget(self.glWidgetArea, 0, 0) centralLayout.addWidget(self.pixmapLabelArea, 0, 1) centralLayout.addWidget(xSlider, 1, 0, 1, 2) centralLayout.addWidget(ySlider, 2, 0, 1, 2) centralLayout.addWidget(zSlider, 3, 0, 1, 2) centralWidget.setLayout(centralLayout) xSlider.setValue(15 * 16) ySlider.setValue(345 * 16) zSlider.setValue(0 * 16) self.setWindowTitle("Grabber") self.resize(400, 300) def renderIntoPixmap(self): size = self.getSize() if size.isValid(): pixmap = self.glWidget.renderPixmap(size.width(), size.height()) self.setPixmap(pixmap) def grabFrameBuffer(self): image = self.glWidget.grabFrameBuffer() self.setPixmap(QtGui.QPixmap.fromImage(image)) def clearPixmap(self): self.setPixmap(QtGui.QPixmap()) def about(self): QtGui.QMessageBox.about(self, "About Grabber", "The Grabber example demonstrates two approaches for " "rendering OpenGL into a Qt pixmap.") def createActions(self): self.renderIntoPixmapAct = QtGui.QAction("&Render into Pixmap...", self, shortcut="Ctrl+R", triggered=self.renderIntoPixmap) self.grabFrameBufferAct = QtGui.QAction("&Grab Frame Buffer", self, shortcut="Ctrl+G", triggered=self.grabFrameBuffer) self.clearPixmapAct = QtGui.QAction("&Clear Pixmap", self, shortcut="Ctrl+L", triggered=self.clearPixmap) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close) self.aboutAct = QtGui.QAction("&About", self, triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.renderIntoPixmapAct) self.fileMenu.addAction(self.grabFrameBufferAct) self.fileMenu.addAction(self.clearPixmapAct) self.fileMenu.addSeparator() self.fileMenu.addAction(self.exitAct) self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) def createSlider(self, changedSignal, setterSlot): slider = QtGui.QSlider(QtCore.Qt.Horizontal) slider.setRange(0, 360 * 16) slider.setSingleStep(16) slider.setPageStep(15 * 16) slider.setTickInterval(15 * 16) slider.setTickPosition(QtGui.QSlider.TicksRight) slider.valueChanged.connect(setterSlot) changedSignal.connect(slider.setValue) return slider def setPixmap(self, pixmap): self.pixmapLabel.setPixmap(pixmap) size = pixmap.size() if size - QtCore.QSize(1, 0) == self.pixmapLabelArea.maximumViewportSize(): size -= QtCore.QSize(1, 0) self.pixmapLabel.resize(size) def getSize(self): text, ok = QtGui.QInputDialog.getText(self, "Grabber", "Enter pixmap size:", QtGui.QLineEdit.Normal, "%d x %d" % (self.glWidget.width(), self.glWidget.height())) if not ok: return QtCore.QSize() regExp = QtCore.QRegExp("([0-9]+) *x *([0-9]+)") if regExp.exactMatch(text): width = regExp.cap(0).toInt() height = regExp.cap(1).toInt() if width > 0 and width < 2048 and height > 0 and height < 2048: return QtCore.QSize(width, height) return self.glWidget.size() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/opengl/hellogl.py0000755000076500000240000002125412536324427021065 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import sys import math from PyQt4 import QtCore, QtGui, QtOpenGL try: from OpenGL import GL except ImportError: app = QtGui.QApplication(sys.argv) QtGui.QMessageBox.critical(None, "OpenGL hellogl", "PyOpenGL must be installed to run this example.") sys.exit(1) class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() self.glWidget = GLWidget() self.xSlider = self.createSlider() self.ySlider = self.createSlider() self.zSlider = self.createSlider() self.xSlider.valueChanged.connect(self.glWidget.setXRotation) self.glWidget.xRotationChanged.connect(self.xSlider.setValue) self.ySlider.valueChanged.connect(self.glWidget.setYRotation) self.glWidget.yRotationChanged.connect(self.ySlider.setValue) self.zSlider.valueChanged.connect(self.glWidget.setZRotation) self.glWidget.zRotationChanged.connect(self.zSlider.setValue) mainLayout = QtGui.QHBoxLayout() mainLayout.addWidget(self.glWidget) mainLayout.addWidget(self.xSlider) mainLayout.addWidget(self.ySlider) mainLayout.addWidget(self.zSlider) self.setLayout(mainLayout) self.xSlider.setValue(15 * 16) self.ySlider.setValue(345 * 16) self.zSlider.setValue(0 * 16) self.setWindowTitle("Hello GL") def createSlider(self): slider = QtGui.QSlider(QtCore.Qt.Vertical) slider.setRange(0, 360 * 16) slider.setSingleStep(16) slider.setPageStep(15 * 16) slider.setTickInterval(15 * 16) slider.setTickPosition(QtGui.QSlider.TicksRight) return slider class GLWidget(QtOpenGL.QGLWidget): xRotationChanged = QtCore.pyqtSignal(int) yRotationChanged = QtCore.pyqtSignal(int) zRotationChanged = QtCore.pyqtSignal(int) def __init__(self, parent=None): super(GLWidget, self).__init__(parent) self.object = 0 self.xRot = 0 self.yRot = 0 self.zRot = 0 self.lastPos = QtCore.QPoint() self.trolltechGreen = QtGui.QColor.fromCmykF(0.40, 0.0, 1.0, 0.0) self.trolltechPurple = QtGui.QColor.fromCmykF(0.39, 0.39, 0.0, 0.0) def minimumSizeHint(self): return QtCore.QSize(50, 50) def sizeHint(self): return QtCore.QSize(400, 400) def setXRotation(self, angle): angle = self.normalizeAngle(angle) if angle != self.xRot: self.xRot = angle self.xRotationChanged.emit(angle) self.updateGL() def setYRotation(self, angle): angle = self.normalizeAngle(angle) if angle != self.yRot: self.yRot = angle self.yRotationChanged.emit(angle) self.updateGL() def setZRotation(self, angle): angle = self.normalizeAngle(angle) if angle != self.zRot: self.zRot = angle self.zRotationChanged.emit(angle) self.updateGL() def initializeGL(self): self.qglClearColor(self.trolltechPurple.dark()) self.object = self.makeObject() GL.glShadeModel(GL.GL_FLAT) GL.glEnable(GL.GL_DEPTH_TEST) GL.glEnable(GL.GL_CULL_FACE) def paintGL(self): GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT) GL.glLoadIdentity() GL.glTranslated(0.0, 0.0, -10.0) GL.glRotated(self.xRot / 16.0, 1.0, 0.0, 0.0) GL.glRotated(self.yRot / 16.0, 0.0, 1.0, 0.0) GL.glRotated(self.zRot / 16.0, 0.0, 0.0, 1.0) GL.glCallList(self.object) def resizeGL(self, width, height): side = min(width, height) if side < 0: return GL.glViewport((width - side) // 2, (height - side) // 2, side, side) GL.glMatrixMode(GL.GL_PROJECTION) GL.glLoadIdentity() GL.glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0) GL.glMatrixMode(GL.GL_MODELVIEW) def mousePressEvent(self, event): self.lastPos = event.pos() def mouseMoveEvent(self, event): dx = event.x() - self.lastPos.x() dy = event.y() - self.lastPos.y() if event.buttons() & QtCore.Qt.LeftButton: self.setXRotation(self.xRot + 8 * dy) self.setYRotation(self.yRot + 8 * dx) elif event.buttons() & QtCore.Qt.RightButton: self.setXRotation(self.xRot + 8 * dy) self.setZRotation(self.zRot + 8 * dx) self.lastPos = event.pos() def makeObject(self): genList = GL.glGenLists(1) GL.glNewList(genList, GL.GL_COMPILE) GL.glBegin(GL.GL_QUADS) x1 = +0.06 y1 = -0.14 x2 = +0.14 y2 = -0.06 x3 = +0.08 y3 = +0.00 x4 = +0.30 y4 = +0.22 self.quad(x1, y1, x2, y2, y2, x2, y1, x1) self.quad(x3, y3, x4, y4, y4, x4, y3, x3) self.extrude(x1, y1, x2, y2) self.extrude(x2, y2, y2, x2) self.extrude(y2, x2, y1, x1) self.extrude(y1, x1, x1, y1) self.extrude(x3, y3, x4, y4) self.extrude(x4, y4, y4, x4) self.extrude(y4, x4, y3, x3) NumSectors = 200 for i in range(NumSectors): angle1 = (i * 2 * math.pi) / NumSectors x5 = 0.30 * math.sin(angle1) y5 = 0.30 * math.cos(angle1) x6 = 0.20 * math.sin(angle1) y6 = 0.20 * math.cos(angle1) angle2 = ((i + 1) * 2 * math.pi) / NumSectors x7 = 0.20 * math.sin(angle2) y7 = 0.20 * math.cos(angle2) x8 = 0.30 * math.sin(angle2) y8 = 0.30 * math.cos(angle2) self.quad(x5, y5, x6, y6, x7, y7, x8, y8) self.extrude(x6, y6, x7, y7) self.extrude(x8, y8, x5, y5) GL.glEnd() GL.glEndList() return genList def quad(self, x1, y1, x2, y2, x3, y3, x4, y4): self.qglColor(self.trolltechGreen) GL.glVertex3d(x1, y1, -0.05) GL.glVertex3d(x2, y2, -0.05) GL.glVertex3d(x3, y3, -0.05) GL.glVertex3d(x4, y4, -0.05) GL.glVertex3d(x4, y4, +0.05) GL.glVertex3d(x3, y3, +0.05) GL.glVertex3d(x2, y2, +0.05) GL.glVertex3d(x1, y1, +0.05) def extrude(self, x1, y1, x2, y2): self.qglColor(self.trolltechGreen.dark(250 + int(100 * x1))) GL.glVertex3d(x1, y1, +0.05) GL.glVertex3d(x2, y2, +0.05) GL.glVertex3d(x2, y2, -0.05) GL.glVertex3d(x1, y1, -0.05) def normalizeAngle(self, angle): while angle < 0: angle += 360 * 16 while angle > 360 * 16: angle -= 360 * 16 return angle if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/opengl/overpainting.py0000755000076500000240000003061712536324427022147 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import sys import math, random from PyQt4 import QtCore, QtGui, QtOpenGL try: from OpenGL.GL import * except ImportError: app = QtGui.QApplication(sys.argv) QtGui.QMessageBox.critical(None, "OpenGL overpainting", "PyOpenGL must be installed to run this example.") sys.exit(1) class Bubble(object): def __init__(self, position, radius, velocity): self.position = position self.vel = velocity self.radius = radius self.innerColor = self.randomColor() self.outerColor = self.randomColor() self.updateBrush() def updateBrush(self): gradient = QtGui.QRadialGradient(QtCore.QPointF(self.radius, self.radius), self.radius, QtCore.QPointF(self.radius*0.5, self.radius*0.5)) gradient.setColorAt(0, QtGui.QColor(255, 255, 255, 255)) gradient.setColorAt(0.25, self.innerColor) gradient.setColorAt(1, self.outerColor) self.brush = QtGui.QBrush(gradient) def drawBubble(self, painter): painter.save() painter.translate(self.position.x() - self.radius, self.position.y() - self.radius) painter.setBrush(self.brush) painter.drawEllipse(0, 0, int(2*self.radius), int(2*self.radius)) painter.restore() def randomColor(self): red = random.randrange(205, 256) green = random.randrange(205, 256) blue = random.randrange(205, 256) alpha = random.randrange(91, 192) return QtGui.QColor(red, green, blue, alpha) def move(self, bbox): self.position += self.vel leftOverflow = self.position.x() - self.radius - bbox.left() rightOverflow = self.position.x() + self.radius - bbox.right() topOverflow = self.position.y() - self.radius - bbox.top() bottomOverflow = self.position.y() + self.radius - bbox.bottom() if leftOverflow < 0.0: self.position.setX(self.position.x() - 2 * leftOverflow) self.vel.setX(-self.vel.x()) elif rightOverflow > 0.0: self.position.setX(self.position.x() - 2 * rightOverflow) self.vel.setX(-self.vel.x()) if topOverflow < 0.0: self.position.setY(self.position.y() - 2 * topOverflow) self.vel.setY(-self.vel.y()) elif bottomOverflow > 0.0: self.position.setY(self.position.y() - 2 * bottomOverflow) self.vel.setY(-self.vel.y()) def rect(self): return QtCore.QRectF(self.position.x() - self.radius, self.position.y() - self.radius, 2 * self.radius, 2 * self.radius) class GLWidget(QtOpenGL.QGLWidget): def __init__(self, parent=None): super(GLWidget, self).__init__(QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers), parent) midnight = QtCore.QTime(0, 0, 0) random.seed(midnight.secsTo(QtCore.QTime.currentTime())) self.object = 0 self.xRot = 0 self.yRot = 0 self.zRot = 0 self.image = QtGui.QImage() self.bubbles = [] self.lastPos = QtCore.QPoint() self.trolltechGreen = QtGui.QColor.fromCmykF(0.40, 0.0, 1.0, 0.0) self.trolltechPurple = QtGui.QColor.fromCmykF(0.39, 0.39, 0.0, 0.0) self.animationTimer = QtCore.QTimer() self.animationTimer.setSingleShot(False) self.animationTimer.timeout.connect(self.animate) self.animationTimer.start(25) self.setAutoFillBackground(False) self.setMinimumSize(200, 200) self.setWindowTitle("Overpainting a Scene") def __del__(self): self.makeCurrent() glDeleteLists(self.object, 1) def setXRotation(self, angle): angle = self.normalizeAngle(angle) if angle != self.xRot: self.xRot = angle def setYRotation(self, angle): angle = self.normalizeAngle(angle) if angle != self.yRot: self.yRot = angle def setZRotation(self, angle): angle = self.normalizeAngle(angle) if angle != self.zRot: self.zRot = angle def initializeGL(self): self.object = self.makeObject() def mousePressEvent(self, event): self.lastPos = event.pos() def mouseMoveEvent(self, event): dx = event.x() - self.lastPos.x() dy = event.y() - self.lastPos.y() if event.buttons() & QtCore.Qt.LeftButton: self.setXRotation(self.xRot + 8 * dy) self.setYRotation(self.yRot + 8 * dx) elif event.buttons() & QtCore.Qt.RightButton: self.setXRotation(self.xRot + 8 * dy) self.setZRotation(self.zRot + 8 * dx) self.lastPos = event.pos() def paintEvent(self, event): self.makeCurrent() glMatrixMode(GL_MODELVIEW) glPushMatrix() self.qglClearColor(self.trolltechPurple.dark()) glShadeModel(GL_SMOOTH) glEnable(GL_DEPTH_TEST) #glEnable(GL_CULL_FACE) glEnable(GL_LIGHTING) glEnable(GL_LIGHT0) glEnable(GL_MULTISAMPLE) lightPosition = (0.5, 5.0, 7.0, 1.0) glLightfv(GL_LIGHT0, GL_POSITION, lightPosition) self.setupViewport(self.width(), self.height()) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glLoadIdentity() glTranslated(0.0, 0.0, -10.0) glRotated(self.xRot / 16.0, 1.0, 0.0, 0.0) glRotated(self.yRot / 16.0, 0.0, 1.0, 0.0) glRotated(self.zRot / 16.0, 0.0, 0.0, 1.0) glCallList(self.object) glMatrixMode(GL_MODELVIEW) glPopMatrix() painter = QtGui.QPainter(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) for bubble in self.bubbles: if bubble.rect().intersects(QtCore.QRectF(event.rect())): bubble.drawBubble(painter) self.drawInstructions(painter) painter.end() def resizeGL(self, width, height): self.setupViewport(width, height) def showEvent(self, event): self.createBubbles(20 - len(self.bubbles)) def sizeHint(self): return QtCore.QSize(400, 400) def makeObject(self): list = glGenLists(1) glNewList(list, GL_COMPILE) glEnable(GL_NORMALIZE) glBegin(GL_QUADS) logoDiffuseColor = (self.trolltechGreen.red()/255.0, self.trolltechGreen.green()/255.0, self.trolltechGreen.blue()/255.0, 1.0) glMaterialfv(GL_FRONT, GL_DIFFUSE, logoDiffuseColor) x1 = +0.06 y1 = -0.14 x2 = +0.14 y2 = -0.06 x3 = +0.08 y3 = +0.00 x4 = +0.30 y4 = +0.22 self.quad(x1, y1, x2, y2, y2, x2, y1, x1) self.quad(x3, y3, x4, y4, y4, x4, y3, x3) self.extrude(x1, y1, x2, y2) self.extrude(x2, y2, y2, x2) self.extrude(y2, x2, y1, x1) self.extrude(y1, x1, x1, y1) self.extrude(x3, y3, x4, y4) self.extrude(x4, y4, y4, x4) self.extrude(y4, x4, y3, x3) NumSectors = 200 for i in range(NumSectors): angle1 = (i * 2 * math.pi) / NumSectors x5 = 0.30 * math.sin(angle1) y5 = 0.30 * math.cos(angle1) x6 = 0.20 * math.sin(angle1) y6 = 0.20 * math.cos(angle1) angle2 = ((i + 1) * 2 * math.pi) / NumSectors x7 = 0.20 * math.sin(angle2) y7 = 0.20 * math.cos(angle2) x8 = 0.30 * math.sin(angle2) y8 = 0.30 * math.cos(angle2) self.quad(x5, y5, x6, y6, x7, y7, x8, y8) self.extrude(x6, y6, x7, y7) self.extrude(x8, y8, x5, y5) glEnd() glEndList() return list def quad(self, x1, y1, x2, y2, x3, y3, x4, y4): glNormal3d(0.0, 0.0, -1.0) glVertex3d(x1, y1, -0.05) glVertex3d(x2, y2, -0.05) glVertex3d(x3, y3, -0.05) glVertex3d(x4, y4, -0.05) glNormal3d(0.0, 0.0, 1.0) glVertex3d(x4, y4, +0.05) glVertex3d(x3, y3, +0.05) glVertex3d(x2, y2, +0.05) glVertex3d(x1, y1, +0.05) def extrude(self, x1, y1, x2, y2): self.qglColor(self.trolltechGreen.dark(250 + int(100 * x1))) glNormal3d((x1 + x2)/2.0, (y1 + y2)/2.0, 0.0) glVertex3d(x1, y1, +0.05) glVertex3d(x2, y2, +0.05) glVertex3d(x2, y2, -0.05) glVertex3d(x1, y1, -0.05) def normalizeAngle(self, angle): while angle < 0: angle += 360 * 16 while angle > 360 * 16: angle -= 360 * 16 return angle def createBubbles(self, number): for i in range(number): position = QtCore.QPointF(self.width()*(0.1 + 0.8*random.random()), self.height()*(0.1 + 0.8*random.random())) radius = min(self.width(), self.height())*(0.0125 + 0.0875*random.random()) velocity = QtCore.QPointF(self.width()*0.0125*(-0.5 + random.random()), self.height()*0.0125*(-0.5 + random.random())) self.bubbles.append(Bubble(position, radius, velocity)) def animate(self): for bubble in self.bubbles: bubble.move(self.rect()) self.update() def setupViewport(self, width, height): side = min(width, height) glViewport((width - side) // 2, (height - side) // 2, side, side) glMatrixMode(GL_PROJECTION) glLoadIdentity() glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0) glMatrixMode(GL_MODELVIEW) def drawInstructions(self, painter): text = "Click and drag with the left mouse button to rotate the Qt " \ "logo." metrics = QtGui.QFontMetrics(self.font()) border = max(4, metrics.leading()) rect = metrics.boundingRect(0, 0, self.width() - 2*border, int(self.height()*0.125), QtCore.Qt.AlignCenter | QtCore.Qt.TextWordWrap, text) painter.setRenderHint(QtGui.QPainter.TextAntialiasing) painter.fillRect(QtCore.QRect(0, 0, self.width(), rect.height() + 2*border), QtGui.QColor(0, 0, 0, 127)) painter.setPen(QtCore.Qt.white) painter.fillRect(QtCore.QRect(0, 0, self.width(), rect.height() + 2*border), QtGui.QColor(0, 0, 0, 127)) painter.drawText((self.width() - rect.width())/2, border, rect.width(), rect.height(), QtCore.Qt.AlignCenter | QtCore.Qt.TextWordWrap, text) if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = GLWidget() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/opengl/README0000644000076500000240000000161512536324427017741 0ustar philstaff00000000000000PyQt provides support for integration with OpenGL implementations on all platforms, giving developers the opportunity to display hardware accelerated 3D graphics alongside a more conventional user interface. These examples demonstrate the basic techniques used to take advantage of OpenGL in PyQt applications. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/opengl/samplebuffers.py0000755000076500000240000001420712536324427022275 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import sys import math from PyQt4 import QtCore, QtGui, QtOpenGL try: from OpenGL import GL except ImportError: app = QtGui.QApplication(sys.argv) QtGui.QMessageBox.critical(None, "OpenGL samplebuffers", "PyOpenGL must be installed to run this example.") sys.exit(1) class GLWidget(QtOpenGL.QGLWidget): GL_MULTISAMPLE = 0x809D rot = 0.0 def __init__(self, parent): super(GLWidget, self).__init__(QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers), parent) self.list_ = [] self.startTimer(40) self.setWindowTitle("Sample Buffers") def initializeGL(self): GL.glMatrixMode(GL.GL_PROJECTION) GL.glLoadIdentity() GL.glOrtho( -.5, .5, .5, -.5, -1000, 1000) GL.glMatrixMode(GL.GL_MODELVIEW) GL.glLoadIdentity() GL.glClearColor(1.0, 1.0, 1.0, 1.0) self.makeObject() def resizeGL(self, w, h): GL.glViewport(0, 0, w, h) def paintGL(self): GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT) GL.glMatrixMode(GL.GL_MODELVIEW) GL.glPushMatrix() GL.glEnable(GLWidget.GL_MULTISAMPLE) GL.glTranslatef( -0.25, -0.10, 0.0) GL.glScalef(0.75, 1.15, 0.0) GL.glRotatef(GLWidget.rot, 0.0, 0.0, 1.0) GL.glCallList(self.list_) GL.glPopMatrix() GL.glPushMatrix() GL.glDisable(GLWidget.GL_MULTISAMPLE) GL.glTranslatef(0.25, -0.10, 0.0) GL.glScalef(0.75, 1.15, 0.0) GL.glRotatef(GLWidget.rot, 0.0, 0.0, 1.0) GL.glCallList(self.list_) GL.glPopMatrix() GLWidget.rot += 0.2 self.qglColor(QtCore.Qt.black) self.renderText(-0.35, 0.4, 0.0, "Multisampling enabled") self.renderText(0.15, 0.4, 0.0, "Multisampling disabled") def timerEvent(self, event): self.update() def makeObject(self): trolltechGreen = QtGui.QColor.fromCmykF(0.40, 0.0, 1.0, 0.0) NumSectors = 15 x1 = +0.06 y1 = -0.14 x2 = +0.14 y2 = -0.06 x3 = +0.08 y3 = +0.00 x4 = +0.30 y4 = +0.22 self.list_ = GL.glGenLists(1) GL.glNewList(self.list_, GL.GL_COMPILE) for i in range(NumSectors): angle1 = float((i * 2 * math.pi) / NumSectors) x5 = 0.30 * math.sin(angle1) y5 = 0.30 * math.cos(angle1) x6 = 0.20 * math.sin(angle1) y6 = 0.20 * math.cos(angle1) angle2 = float(((i + 1) * 2 * math.pi) / NumSectors) x7 = 0.20 * math.sin(angle2) y7 = 0.20 * math.cos(angle2) x8 = 0.30 * math.sin(angle2) y8 = 0.30 * math.cos(angle2) self.qglColor(trolltechGreen) self.quad(GL.GL_QUADS, x5, y5, x6, y6, x7, y7, x8, y8) self.qglColor(QtCore.Qt.black) self.quad(GL.GL_LINE_LOOP, x5, y5, x6, y6, x7, y7, x8, y8) self.qglColor(trolltechGreen) self.quad(GL.GL_QUADS, x1, y1, x2, y2, y2, x2, y1, x1) self.quad(GL.GL_QUADS, x3, y3, x4, y4, y4, x4, y3, x3) self.qglColor(QtCore.Qt.black) self.quad(GL.GL_LINE_LOOP, x1, y1, x2, y2, y2, x2, y1, x1) self.quad(GL.GL_LINE_LOOP, x3, y3, x4, y4, y4, x4, y3, x3) GL.glEndList() def quad(self, primitive, x1, y1, x2, y2, x3, y3, x4, y4): GL.glBegin(primitive) GL.glVertex2d(x1, y1) GL.glVertex2d(x2, y2) GL.glVertex2d(x3, y3) GL.glVertex2d(x4, y4) GL.glEnd() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) f = QtOpenGL.QGLFormat.defaultFormat() f.setSampleBuffers(True) QtOpenGL.QGLFormat.setDefaultFormat(f) if not QtOpenGL.QGLFormat.hasOpenGL(): QtGui.QMessageBox.information(None, "OpenGL samplebuffers", "This system does not support OpenGL.") sys.exit(0) widget = GLWidget(None) if not widget.format().sampleBuffers(): QtGui.QMessageBox.information(None, "OpenGL samplebuffers", "This system does not have sample buffer support.") sys.exit(0) widget.resize(640, 480) widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/opengl/textures/0000755000076500000240000000000012536324427020741 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/opengl/textures/images/0000755000076500000240000000000012536324427022206 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/opengl/textures/images/side1.png0000644000076500000240000000164712536324427023731 0ustar philstaff00000000000000‰PNG  IHDRk¬XTŸPLTEø|øüøøˆøøðøŒø¨Pø°`øÈø€øôèøÜ¸øèÐø´høÄˆøàÀø˜0ø„øÀ€øðàø¬XøäÈøøøøÐ øÔ¨øìØø ø @ø¤Høðèøœ8øÔ°ø¼xø„ø¸xøÌ˜ø°hø¸pøØ¸ø˜8øŒ øäÐø€øìàø”(ø¤PøØ°ø”0ø´pøÈ˜øôðøàÈø¨XøˆDžÃIDATx^íÖWnÝ@ FáŸêíöÞ\KzÏþ×@ÈÆä#ñðœðÃ`H™ó€Éa]Àÿ2ÊÚ5@µ(R¿óÙNÒ¯›C¡6—õ]$É+@™O$¹¸O É-@}HòÐ}ún.ÒBr ð½‰$yضW€2ä ^ É+Àê"Jò PeW’¼T·‘$¯ãæ§$¯U;½W€*‹$9ˆ7‹+INŽ7‡w’œÔ³S!É'@üé6Q›G€åh_Hò Pçi¤6Ûíð~* ªH›$L€±4½››•QKõÍÊÖª à½zÚå±µÙ:H€XíóºóX°HçÛßwF˜§óÿÒ:•adgÆÏ¶ö¨8L€üÜÞ{Z ý{0}3s`SuÛݬÌ<:“™ùøª?í+3wsý®X¼5óн¦ÍÖÌ'@.)º,ͼ”E2ŠÍüØØÌ\Øë`åà¨ÞÊ Æê­`¤ÞÖAœÔ[2ÀXýE«€&P.@¦!]͈ևc; -©‚XÎvzNûMü:.Ÿvݤ“©ž]1ùñåòQ£ÿ Ö‹½ @Ø  üÀ/«%çøÊÙ ~IEND®B`‚PyQt-x11-gpl-4.11.4/examples/opengl/textures/images/side2.png0000644000076500000240000000312612536324427023724 0ustar philstaff00000000000000‰PNG  IHDRk¬XTŠPLTEüxü€èüððüøü€øüøHü Xü¨üȨüиüØ8ü˜Øüèàüð üüˆ€üÀ0ü˜ˆüÀüˆÐüèÈüà(üxü¸°üØ üÐ@ü pü¸ðüð˜üÈÀüàhü°Pü¨°üÐ`ü°ü€àüè`ü¨@ü˜Ðüàpü° üˆ0ü€ü¸üÀPü @)qó‡IDATx^íÜç–ÛF €QLcïM½luIòþ¯%ÿ|¥¥è3Cà{ãÚ– pµ`ˆ À À `€`¿00€!00000000000À³c```````È’è¦C«µºl‹! QÜ+ j»ùÔ€ŵÚÊ5dͧ€©†C¢V ÿ®áÎD°SkèC¤ÃdMÛ¯ˆÔJ¶5|­²’+èSøzºñ a^ÅÖk€HÃìö¹·] Ïè-ö`#àI}(ºžW‘yixfe“Ó[¯~ÀÓ;$,Hüèa‰ôÙ€-,R™ùÁ2ýTžl`¡.ž„°T±Ÿ°T¥ô €Åºx `±D瀄Û{ÐÃdB øb½ëö=¨ ª¸—æ–’}\%dï|ð@9¸²Q²n÷W8ŽÄ÷£±—pw™Ãø4ôf²|÷Ö¸ €ïAWeîéîìÓY|:˜;;À} Çzdþç~Šüæ6ÀË/ÿÌzùÄÛ9 €ïA­4”k¸§ƒ“øå“y¨ÜSà"¾µ3w¼Úm€tÎýâ w4¸€ïA‰y´=L×:€ïAB-òLA; gžoZ˜L8 ÐÏÜÚ/¾ÿ x™¹²%0Yé4@4÷*`ªÂi€ÃÜó] S¥N„swöLº€ïA¹ùJ'Ï? s¶ÄóOƒbî_TSõ.Hd~¬Üï‹PìÁ¥`¢Ôi€xþcL˜hã¾5KlÝ(ôÌ—ª#ØÓÊ!¼ü[²‹*c–y ÖþÕÙ ìÖpöûñøüb°v5khÀÚvõ—‰ƒèêR°U­ KZ® wà'EÝ}ï븀¥W³~€Ú ²õHáõ&æw²¾¸Z³~¥m?@`¿ïL °="`yh%€Êv ¥ÐÂïú0,Ç âH <½¡XV ©åQ€3àÁ h¤€§3C <±54 À‹ €ð†@®íjˆ€¶WDb@«•¡ [À¤!Zæ§[æ§—–ù)|R- € ¥GC øû?ü P† €ªñý— @ˆ>¡РÁéÄûüK ×0jcèd%Œª Y`÷/:Çñ 8:*Å~}6!€`<l\±_ OŸ?1Tðùφ>ÙBÁxþÎÐPûÑümfˆàó™¡pï?CnèÈ;Óvþ¦çO•¡Øù›@ö;ÓÈZìüM k‘ó7!€¾DÎß„ú7äüM଑ó7!€d<cl5rþ&ð"ó7!€X çoB;œ¿ œrþ&açoB vþ&PaçoB›ñù·3óSҀﳾþ¤ä{ן“xwŠªÍá^ƒ}:í›€Ä € ŒËÇcæÙmÌ—Û˜ÍmÌ×ÿÆüY´¥[•€t‰šê6fx³¶Ži/ò „Û¹p…%K\P,ÚÙqµ‡eëÜP),\æ4€¬aéä¢îÏG‡ä˧ÜÈ øgÞ µ@ k4@Wi€¾Úü‰€€@QÄ §Qè ¸z÷?``````````````` ü0ñ€HÇ ð/|6ªàUÚIEND®B`‚PyQt-x11-gpl-4.11.4/examples/opengl/textures/images/side3.png0000644000076500000240000000410512536324427023723 0ustar philstaff00000000000000‰PNG  IHDRk¬XTíPLTExøøüø€øøôøøøø€ø€ ø€øðèø¨XøèÜøèÔøðìø,ø Lø¨Tø(ø¨\øÀ„øÀŒøÈøÈœøÐ¤øÐ¬øØ´øØ¼øàÀøàÌø$øèØøðäøˆøˆøøðøˆø ø¸|ø˜<ø°døàÈø˜4øÈ”ø˜0ø°løÐ¨øØ°ø°`ø¸tøØ¸ø¸xø HøÀ€øèÐøÀˆø DøÈ˜øðàø˜8øàÄø°høððøÐ ø°pø¸pøˆø¸€øˆ øÐ°øèàøØÀøÀø¨Pø0øàÐø˜@ø¨`øÈ ø Pø @ø"9IDATx^íÝ…’³èÇá£qwww·Ïu÷þ/çTíùjv3H„wªhèßä ÐÀ (æA@@1l@@(F €€€€€€€€€€€(O@@@@@@@ÀH×ËOùŸÙQ_³a[/£Î4ÿ\>HqH_}·áž½W\v£ 0¬X× ùøI½vfc³ì¿ô¨Ì4l“õœŠ€ñ{[gæçx(½`·’©d&vÎ~2x˜XÔ¸Å@/÷4óIg PAE· ž™5º` pei-Ž¨Ëºcp…Ym~}¨là‚Ú¦3€wÌ àŠ3ç¼n¡º+Cƒò–œ~@}ƒÀ5Ô‡GF3¨YFY¼Gs6º ÌBþÃuã®N·[õåiî#¶è” @ ®žŽWâ`ö‚ +°(»Žy›äžÑÈa³R\’p”ì’Oé<6©Î`Œ7Z´¦fë›0HàM3Ö6,bm9& ¬dVi£JX×w&ç+vƒ6¬‚58Æaæ'Ú¸cø×g°r`¯Òý„o&€ÏøO3Ú¦”¿4ø·¬`÷Áõ'pŒ×Ì6m×°ŸF<¦xíXí0qÊ@{è?ж]À§$€•ð5Ðßhgç,ªÁ¦x3x×`pÿ PR=NL°ØÃŸ´ íÐx¶GtúE»tÏ&,îð'´h—2ðì €JÀS7^-ˆ@2àõ\^UytNñðhdðø]ý¿i·º¼.Žª¯÷ FL*pï Åà®Í(.c¸UÐã‚[ÚÅà.™‡€\úJ±hÂ¥Å`hÄàŽÌ%Åàa„·iuŠ@oûئ”ñ¶« Å nb5»L#€š‰Õ ?(N%+Ù Š@"‡Õ¦i¢TûXiT#Š@=‹•´‰NñH” XÉÞOÅ ]¾²ÏÌ×Û™ˆdê¥ÒwõòþÔ‚GýE±ÔèE cb»FÉë›(Ô±C{—½Ḛ̀Sfþ."±kWó(t ä €%‚dUÙä¬oCÞ†…€uÒ¬Z\ÿŽ3ÀÁÓN,  ­É cBEVš+ÀÔ4Î0˜AQ9¦#¨êš%@ʲz*XÍ´±sEŽG€qîxy8Oet""=ÑmV'¹¶®ÍÀ8~8y ·zy [•gàŸñéÌÄæ™)öÎRG[œF€¨û ›6ˆ$QýÖŠ&%®°YÇ cõ=fwŠ:ËD€Î±IÍèÐ=6¨aãë»0õ,¬íŠ€úK(Y^ꨃh4±.‹€úMÀŽ8@k2#`ôá_Ÿ€ú)ú8ê'ðo/êC¾ýÍ @ýqà[äö£z. hqÅeäðí.òiøeê‘èÁ¯Eà~%£`À¯JôtøuZ€Ìa‰””€O %@æÓóž 4ÞÿMM¥0œfM•_Ï>uÃ0ÅŸpòÞ·Õ(ŒO¯·¤ ¼«„ †×)x¿àY_%@ZíоÏ&JÒðÚã{í^HnñÚHDZðŒB p¯r+-Â+;V€kü›ö™¥[>{€°ÌÞÓ]‡W#=”Î÷kÕ(H?áUB à€LÓ@PžÝ+@Ó"М`:6?Ï%À¦Y èáF€Æ×@0…ièþŠ`ßòd0@Ó&Ðø;pÎ0ñg :€"º3À¦S 8Á´ l~Å‚àg˜&`ô`ëátŸ`z tõ3L9À¦,Д¦‚ààÏ t ˜bÉð«_t/0[:¹:€ L+:€2úC(À¦¡¦Èa;:€-LO ƒíJðáÉéþ„­§øÞøL0…­ hÏ~Ó¬ü ¦(£ŸÁt¿øLðü ¦8øLÃÏ`:€ŸÁt=ü ¦ØùLÐÃvåØúL°€­çØúL°€­àxô3˜ ‡mÍð;L ‡­àÈü%” €í'>€¹ ¤XG˜®|+?éÚÓ À¦}MPíý)˜`S,é><ûDð ¶œ`Ó.Ðô°]ùþN°†íİ‚itþ%èÄp„i|ÞµòÞ®xßú{ÈÈÖ ˜Ô{r€lÈr,ɪH°9@ˆìëKàÈг´ì¡aÈØ>SüÿøþhI€ @€ €£ÕÉ´­J Àheò Œ–'pÄh]òKŒ6M`ÀhYêkŒ·Oàn”'0àF«´N¸Õ¾J p³iÊKÜ.–éÌð–6uª¼­¬N`½Ã[ÛÉÔ‹yÄÛ‹Ëü˜M}ÓËò1â¿Öd“×O((€x—?ñ€ @i'@€ @€ @€ @€È2€¨€¨€þ èØ«hƒIEND®B`‚PyQt-x11-gpl-4.11.4/examples/opengl/textures/images/side5.png0000644000076500000240000000341612536324427023731 0ustar philstaff00000000000000‰PNG  IHDRk¬XTPLTExüðüè€ü€üøüðøüøü(˜ü8 ü@¨üP¨üX°üh¸üp¸üxÀü€ÀüˆÈüÐü Ðü¨Øü°Øü¸àüÀàüÈèüÐèüØðüàˆüˆüü ˜ü0°ü`Èü˜ üHàüаüpÈü ðüð˜ü@Ðü°èüàØüÀˆü €ü¨ü`ü0Àü üP1:¹)      e@)ðŸ$ãtx>Ç(N³Ç¢¬š¶ëù*Åû®mêª,òÇÓÏ4‰£ðøgÏ=8Ó8ɘø  l.R ãä8×;Ÿý 8†ÑÕý-ç  b†3HL„À2Óp€Ü4Pp4p€Æ0@ 3 ð:7 PAІ>ƒF¤0à8Fø®Q€|Ï(€ ÀÇpÄð€ Æb dF~Àȱÿ*ŒLðJìßö¯Á†pÁþhMÈ>@w5ø{Bð¿Á0Šã$M³Ó)/вªêæŸÔ_ª²,þͲ4Iâ8 Ãã÷À÷ÏžçºÇ™¾ŽÃ   k£àà¯Rì>€§W'|êÀ#v€;@ ÄPaø‚ ÆÐ`h±tØzì9(ì9€Ä À€`Ä0ap°üÀpÀàbð0,oôåõ)<ç×naùmœ×H‹úi‡þÀ%ó'6“ÉOJµgU[ˆ|N/;šþ÷¾`ë2ÆÝ^ÖÿÔGÁn‰{R»X"þ6Évs†Tí ÒZ·/ÿù€/“‹õ'—ÝŸ¯åø•¢îÄ>–€[P³M3\5t«ÅcË>±­sæú%(·Ì8Ü&€Œ@ºmÎé툙e @Ȍķ `f’Úà•%3”IÙp`¦Ù0+f,ÏVHf.µŠŒg@ÏL¦ÐÎt`‡ É«¶ÒZó¾«NqpOoÀ¨¯Ä9mÞ²âe8Þ x€’½Žô ¥çÓ„â&\k«U¾$¦²Ñ@7ãXÝñ´ÊL¥ë[äÚšƒ•EºZû«JèÑ}#úkA å]Ãùíʞ࿾@{¾k$»?¬ <€ÖuzœZ'Ðì·ÄŸÖäûÐÝÀ–“À0YÀü˜º»k5.8»йí5FÌ*fà÷ƒ6€ùau¹w€{ èƽhõkpùpwÐ/¶f>ã·ÀúñþBŒãëW¶û(Íþ„Ю6g>Ÿ-®6g¾^[†@½Ð!Ð ]êcèÙ|j Ý{‚êy€2@ësãCã-\Ê­6¸%6.”L¿1Æ7\¯®€ ðiÚrA»3? `~—Œì6Pr °Ðfÿ2¹÷vPPòM CGs'  ßtcÏ×ÙÏËóy‘±Qñ0@ø kCC¢ž P°—ŒüC\ÌÙ‚ À·ÛäšÎ¾!hg«kåÃÜ`ùÁ•åæïÀ¡°|n†¸ûyíäÜGpþúÂÇnÛ%R!üú¶…@4×@X¾ô±Ýn$ÄQ”WÝV}3@%ß{mÀÓÕÅ‹üF€/‚½qÑ0–»¯ð¦¦[È·ï¿ÒP–û/§YÌÜ­á,OêËhe#è]öf†FÃXþ%póÞɹ“c§¡,/óž²¥VOsÿ´Ó<°¹ Q3À“qé9øËëܧ¨Rú:]ö,çØdbY}ÎÞ<³²åþºÉ“óÀæ3T€ós¤ÆA²¥¸½¶àÈ6‹Hm¬/pÚ Àë´íFCnk}±€ ¹¶ÀÛàö¿w׈? à·VW˜(> ƒ‹å%6úŒ ·¿ÈJ4Ü Ïå>ªÌ¨Ü½ãßQ™.qn~Îm«3´lyr ÀpN*eg¡¥åÔ©?½£0¸aÞÁª4e êR¤‘ï¦Aɤ'Çõü(+[°ÔÖ¾C@@@@@@@@@@@@@@@C¿B€7@@ð7 ;®ý°§IEND®B`‚PyQt-x11-gpl-4.11.4/examples/opengl/textures/images/side6.png0000644000076500000240000000424712536324427023735 0ustar philstaff00000000000000‰PNG  IHDRk¬XTðPLTEøxøüøøøøø €øôøø€ø€øàðøˆø$ø(ø,ø8˜øD ø\¨ø`°øh°øl°ø„Àø”Èø€øœÈø¨Ðø¬Ðø¼ØøÌàøÐèøØèøÜèøäðøèðøðøøˆøˆø˜ÈøÄàøìðø¸ØøT¨øŒÀøÔèød°øx¸ø|¸øÈàøˆøÈø´Øø€ø<˜øÀàøp¸ø@ øÐàø€ÀøH øˆÀøL øP¨ø ø0ø Ðø¤Ðø0˜ø4˜øàèø`¨øððø°ÐøÀØø ˆø°Øø ÈøÀøt¸ø@˜øX¨ø€¸øP øp°ÍŒ<ürIDATx^íÝçr¥:†áo‰´sÎ9;çœÝ9ž™û¿›©ê*ÿè3H€·~´Þ p•Ÿ 倀ö70E1000000000000000LƒÁrý¹Ó>± `üåéºzó2oá­ÍÊÑ_ì•NñÿÍ×Ùp{g-H«»™/î|¨+ô3 ð©]ö]«‘M€~ÕGÌJ£ìt_‘ 'È€h瑨ÊÀsÉÚ§,ôŠHX20ºGt~±\¹hì4íÅqãçe@4|(ó •½qf/†‹P•¯uWY¾ûä¯w3~9Ü/BšS»Êü|ÀN ²ò 7ó"“ÈzéZ0#t>‡¤‡Ž SbÍÂsveÀýI÷ “¢Á Â;êX1+|5Gx—c² ç ¼"ž[Íé’;o> +/?"+nÞã„,ÿÿ… Y ßÿóc²à;Â›È €u ¡ù‡dÀ•ƒð:d@0Gxu²À}Dx¯Â€*ÂsFdÀ’d@¿…ðÊdÀ*‡ðü‘Hjß é«°`5ƒ¤g²`I/dÀ7Èúl€ûIE²à²ÚV>$Í\+6µO6BÚÐ €È*‘ KH;¶  i KH{%î íÀ€¡iç6Ô!ÍLH+“Çw`@òN,èCÑÄ€ È›SöÄòʬ¡è€ 5-8‚¢^ö–P5"i£N£zYœ;¾çÏr…³Î •ûPä íCó>lÃqîvú©("é(8m– /ßRH4Ô¨óÊç)hCÕý«I½…•—©¨BÕý]ÓAÌ6“”ä¼ú=|EüŽžR0IðîÿÂG¢î§)èBY›Þ"·‚¤?˜pe]zkü‚äÍ–Æü‚²õÀnïÉYšpe‡oçËÞ—Ó7` u»ô§/>ÞÛÑ®Ñk ƵPÏÇû+LMغ1ÑÒÇ6mL¨@ÝŠˆ§Ø®cƒΠnJ̱eþÈ\€Ô¹ô©ˆ­»1@xP'Ä%4Ô5`„ˆD :Ê C¾ ¢ô´0à µ §a&À-’å_<+áŽý3ñûn&À>Ôºÿ,þâ›4 ˆÛ£™{ˆW Í»± ®ŒØ n…CÙc-Īn$À%b¶qIÖr†8Í„‰Ððó ˆÓ‰‰ˆU…”Mb \˜CœJ‚Ô¿"º‚‰3ÄÈÆ}ßT]` À‘®uˆ®m €¯íBæ‘Õ hiûá>D[– Ð8~7•“Î-à'ÅË!ª¡y"軲üœÆaðk¢GÎÕ5ÍÈ逆P7ÑùäíÂ@ÑÒz7gUk㢇%Ê…ª‘‰u(ëi¼Ñà ::¯I@QL´ÎdO¡¨j$åtŽ\+(Z˜ ðª6‡Á™M¨z¡D Ï'3F:§ñz÷ËP*@ÕXÛ˜r›ÊðMÛ’TÃt.¡q ë´ªH¦Ð Šn´-Kh.@Š¡énsßì…”ô¬§8õ +OæÐW]sH;6àZשÐd9S“Švuëd2ÝèÙ„YC³ºzž[+S³Ô§ÃÝ­ß@ò¦<ëxÆ×u é#™@y(Zn©èæ images/side1.png images/side2.png images/side3.png images/side4.png images/side5.png images/side6.png PyQt-x11-gpl-4.11.4/examples/opengl/textures/textures_rc2.py0000644000076500000240000012341112536324427023746 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:47:34 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x04\xc6\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\xa5\x50\x4c\x54\x45\x00\x7c\xf8\xf8\xfc\xf8\x00\x80\ \xf8\x40\xa0\xf8\xc0\xe0\xf8\xc8\xe4\xf8\xd8\xec\xf8\xe8\xf4\xf8\ \xf0\xf8\xf8\x10\x88\xf8\xe0\xf0\xf8\xa0\xd0\xf8\xb8\xdc\xf8\x18\ \x8c\xf8\x68\xb4\xf8\x78\xbc\xf8\x80\xc0\xf8\x50\xa8\xf8\xb0\xd8\ \xf8\x58\xac\xf8\x60\xb0\xf8\xd0\xe8\xf8\x28\x94\xf8\x30\x98\xf8\ \x38\x9c\xf8\x08\x84\xf8\x48\xa4\xf8\x88\xc4\xf8\x98\xcc\xf8\x08\ \x80\xf8\x70\xb8\xf8\xa8\xd4\xf8\x50\xa4\xf8\x38\x98\xf8\x20\x90\ \xf8\x18\x88\xf8\x90\xc8\xf8\xf8\xf8\xf8\x10\x84\xf8\xa0\xcc\xf8\ \x70\xb4\xf8\xe0\xec\xf8\xb8\xd8\xf8\x80\xbc\xf8\xf0\xf4\xf8\xc0\ \xdc\xf8\x68\xb0\xf8\x58\xa8\xf8\x28\x90\xf8\xc8\xe0\xf8\x40\x9c\ \xf8\xd0\xe4\xf8\x90\xc4\xf8\xd8\xe8\xf8\x30\x94\xf8\x65\x60\x50\ \xf2\x00\x00\x03\xdc\x49\x44\x41\x54\x78\x5e\xed\xdd\xd7\x8a\x23\ \x59\x10\x84\xe1\x38\xa7\xbc\x93\xf7\xb6\xdd\xf8\x59\x6f\xde\xff\ \xd1\xf6\x66\xa1\x33\x6f\x4a\xbd\x2c\x34\x9a\x13\xf1\x3f\x80\x2e\ \xbe\x02\x51\x91\x08\x84\x40\x1e\x04\x20\x00\x01\x08\x40\x00\x01\ \x84\x79\x00\x01\x08\x40\x00\x81\x28\x01\x08\x40\x00\x02\x10\x80\ \x00\x04\x20\x00\x01\x08\x40\x00\x02\x10\x80\x00\x04\x20\x00\x01\ \x08\x40\x00\x02\x10\x80\x00\xee\x21\x01\x08\x40\x00\x02\x10\x80\ \x00\x04\x20\x00\x01\x7c\xe9\x26\xdb\x1d\x29\x40\x9d\x1f\xe7\x03\ \x00\x0c\x84\x00\x65\x37\xd9\x46\xfc\xdb\x9e\x01\xc0\x3f\xf8\x67\ \xb8\x28\x00\xfc\x83\x67\x01\xf0\x0f\xfe\xa1\x81\x89\x09\xa0\x35\ \x0f\x9e\x11\xa0\x1a\x60\x22\x04\x58\x82\x1b\xe0\x0a\x6e\x80\xaa\ \x21\x07\x98\x83\x1b\xa0\x03\x37\x40\xdb\x90\x03\x1c\xc0\x0d\xd0\ \x81\x1b\xa0\xfd\x48\x0e\x70\x00\x37\x40\x07\x6e\x80\xb6\x21\x07\ \x78\x00\x37\x40\x07\x6e\x80\xaa\xa1\x06\xf0\x1b\x20\x12\x02\x5c\ \x61\xba\xd0\x01\xf8\x2b\xd0\x53\xcd\x07\xb0\x82\xa9\x0f\x74\x00\ \x3d\x4c\xab\x40\x07\x50\x3f\x19\x80\xa6\xe2\x03\xf8\x0c\x53\x17\ \xe8\x00\x7e\x8b\x06\x20\x0b\x7c\x00\x1b\xbc\x16\x4b\x3e\x80\x19\ \x4c\xd3\x40\x07\x50\x9e\xdd\x2b\x00\x1f\x40\x06\xd3\x22\xd0\x01\ \x9c\x60\x3a\x04\x36\x00\x3f\x02\xcf\x25\x1f\xc0\x12\xa6\x59\xa0\ \x03\xe8\xe1\x46\x10\x1b\x80\x7f\x07\xc6\xd7\x40\x07\x30\x85\x69\ \x1e\xe8\x00\xfe\x8a\x06\x60\xdf\xf2\x01\x64\x30\x1d\x03\x1d\x40\ \x07\xd3\x26\xd0\x01\xf8\x3b\x70\xce\x07\x30\xf1\x67\x20\x3a\x80\ \x22\xba\x33\x10\x1f\xc0\x16\xa6\x53\xa0\x03\x38\xc1\xb4\x0d\x6c\ \x00\x7e\x04\xc5\x82\x0f\xe0\x67\x98\x26\x81\x00\x60\xf4\x1b\x90\ \x0f\x60\xeb\x0f\xe1\x74\x00\x9f\x60\x7a\x0c\x74\x00\xf5\x33\x4c\ \x39\x1f\xc0\x05\xa6\x2c\xd0\x01\x94\x11\xa6\x82\x0f\xe0\xe0\xcf\ \x20\x74\x00\x0b\x98\x62\xc9\x07\xf0\xab\x5f\x81\x74\x00\x2f\x30\ \x9d\x5b\x3a\x00\x7f\x06\xb9\x04\x3a\x80\x0b\x4c\x1f\x2b\x3a\x80\ \x32\xfa\x43\x28\x1d\xc0\x1c\xa6\xa1\xa6\x03\xc8\x61\x3b\x05\x3a\ \x80\x2d\x4c\x4f\x81\x0e\xa0\x83\xed\x4a\x07\xf0\xe1\xc9\x1f\x02\ \xe9\x00\xfe\x84\xad\xa7\x03\xf8\xde\xf8\x19\x4c\x07\x30\x85\xad\ \xa0\x03\x68\xcf\x7e\x06\xd3\x01\xac\xfc\x0c\xa6\x03\x28\xa3\x9f\ \xc1\x74\x00\xbf\xf8\x19\x4c\x07\xf0\x07\xfc\x0c\xa6\x03\x38\xf8\ \x19\x4c\x07\x90\xc3\xcf\x60\x3a\x80\x9d\x9f\xc1\x74\x00\x3d\xfc\ \x0c\xa6\x03\xd8\xf9\x19\x4c\x07\xd0\xc3\x76\xe5\x03\xd8\xfa\x19\ \x4c\x07\xb0\x80\xad\xe7\x03\xd8\xfa\x19\x4c\x07\xb0\x80\xad\xe0\ \x03\x78\xf4\x33\x98\x0e\xa0\x87\x6d\xcd\x07\xf0\x3b\x4c\x0f\x81\ \x0e\x20\x87\xad\xe0\x03\xc8\xfc\x25\x94\x0e\xa0\x80\xed\x27\x3e\ \x80\xb9\x7f\x09\xa4\x03\x58\x47\x98\xae\x7c\x00\x2b\x3f\x03\xe9\ \x00\xda\x08\xd3\x0b\x1f\xc0\x05\xa6\x7d\x4d\x07\x50\xed\xfd\x29\ \x98\x0e\x60\x06\x53\x2c\xe9\x00\x3e\x3c\xfb\x19\x44\x07\xf0\x09\ \xb6\x9c\x0f\x60\x03\xd3\x2e\xd0\x01\xf4\xb0\x5d\xf9\x00\x0e\xfe\ \x16\x4e\x07\xb0\x86\xed\xc4\x07\xb0\x82\x69\x08\x74\x00\xfe\x25\ \xe8\xc4\x07\x70\x84\x69\x08\x7c\x00\x03\xde\xb5\xf2\xde\x00\xae\ \x78\xdf\xfa\x7b\x03\xc8\xc8\x01\xd6\x20\x07\x98\x90\x03\xd4\x7b\ \x72\x80\x17\x90\x03\x6c\xc8\x01\x72\x90\x03\x2c\xc9\x01\xaa\x48\ \x0e\xb0\x06\x39\x40\x88\xec\x00\x7f\xeb\x4b\x90\x1c\xe0\xc8\x0e\ \xd0\xb3\x03\xb4\xec\x00\xa1\x61\x07\xc8\xd8\x01\x3e\x53\x03\xfc\ \xff\xf8\xfe\x68\x49\x00\x02\x10\x80\x00\x04\x20\x00\x01\x08\x40\ \x00\x02\x10\x80\x00\x04\x20\x80\x1a\xa3\xd5\xc9\x03\xb4\x18\xad\ \x4a\x1e\xa0\xc0\x68\x65\xf2\x00\x0b\x8c\x96\x27\x0f\x70\xc4\x68\ \x5d\xf2\x00\x4b\x8c\x36\x4d\x1e\x60\xc0\x68\x59\xea\x00\x6b\x8c\ \xb7\x4f\x1d\xe0\x1b\x6e\x94\x27\x0e\x30\xe0\x46\xab\xb4\x01\x4e\ \xb8\xd5\xbe\x4a\x19\xa0\x1a\x70\xb3\x69\xca\x00\x4b\xdc\x2e\x96\ \xe9\x02\xcc\xf0\x96\x36\x75\xaa\x00\x17\xbc\xad\xac\x4e\x12\x60\ \xbd\xc3\x5b\xdb\x14\xc9\x01\xd4\x8b\x79\xc4\xdb\x8b\xcb\xfc\x07\ \x06\x98\x4d\x7d\xd3\xcb\xf2\x31\xe2\xbf\xd6\x64\x93\xd7\x4f\x28\ \x7f\x28\x80\x78\x97\x3f\x11\xf1\x00\x02\x10\x80\x00\x04\x20\x00\ \x01\x08\x40\x00\x69\x27\x00\x01\x08\x40\x00\x02\x10\x80\x00\x04\ \x20\x00\x01\x08\x40\x00\x02\x10\x80\x00\x04\x20\x00\x01\x08\x40\ \x00\x02\x10\x80\x00\x04\x20\x00\x01\x08\x40\x00\x02\x10\x80\x00\ \xc8\x32\x00\x02\x10\x80\x00\xa8\x13\x80\x00\xa8\x13\x80\x00\xfe\ \x01\x16\xa0\xe8\xd8\xab\x02\x68\x83\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x07\x0e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\x8d\x50\x4c\x54\x45\x78\xfc\x00\xf0\xfc\xe8\x80\xfc\ \x08\x80\xfc\x00\xf8\xfc\xf0\xf8\xfc\xf8\x90\xfc\x28\x98\xfc\x38\ \xa0\xfc\x40\xa8\xfc\x50\xa8\xfc\x58\xb0\xfc\x68\xb8\xfc\x70\xb8\ \xfc\x78\xc0\xfc\x80\xc0\xfc\x88\xc8\xfc\x90\xd0\xfc\xa0\xd0\xfc\ \xa8\xd8\xfc\xb0\xd8\xfc\xb8\xe0\xfc\xc0\xe0\xfc\xc8\xe8\xfc\xd0\ \xe8\xfc\xd8\xf0\xfc\xe0\x88\xfc\x10\x88\xfc\x18\x90\xfc\x20\x98\ \xfc\x30\xb0\xfc\x60\xc8\xfc\x98\xa0\xfc\x48\xe0\xfc\xd0\xb0\xfc\ \x70\xc8\xfc\xa0\xf0\xfc\xf0\x98\xfc\x40\xd0\xfc\xb0\xe8\xfc\xe0\ \xd8\xfc\xc0\x88\xfc\x20\x80\xfc\x10\xa8\xfc\x60\x90\xfc\x30\xc0\ \xfc\x90\xa0\xfc\x50\x31\x3a\xb9\x29\x00\x00\x06\x3c\x49\x44\x41\ \x54\x78\x5e\xed\xdd\x67\x73\xdc\x36\x10\x06\x60\x54\xf6\xde\xdb\ \x35\x15\x77\xe7\xff\xff\xbc\x24\xf6\x38\x8a\xe6\x44\x91\x77\x22\ \x66\x16\xdc\x7d\x3f\xcb\x33\xe4\x63\x10\x3c\xa2\x2d\xd3\xc8\x43\ \x00\x04\x40\x00\x04\x40\x00\x5a\x33\x84\x79\x0d\x40\x00\x04\x40\ \x00\x1a\x51\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\ \x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\ \x00\x08\x80\x00\x3e\x16\x02\x20\x00\x02\x20\x00\x02\x20\x00\x02\ \x20\x00\x02\x20\x00\x02\x20\x00\x65\x12\x40\x29\xf0\x00\x9f\x24\ \x13\xe3\x74\x78\x3e\x07\xc7\x28\x4e\xb3\xc7\xa2\xac\x9a\xb6\xeb\ \xf9\x2a\x17\xc5\xfb\xae\x6d\xea\xaa\x2c\xf2\xc7\xd3\xcf\x34\x89\ \xa3\xf0\x18\xf8\x67\xcf\x3d\x38\xd3\x38\x08\xc9\x98\xf8\x0c\x1c\ \xa0\x11\x6c\x2e\x52\x0c\xe3\xe4\x38\x07\xd7\x3b\x9f\xfd\x20\x38\ \x86\x0f\xd1\xd5\xfd\x2d\xe7\x0c\x1c\x20\x62\x86\x33\x01\x07\x48\ \x4c\x03\x84\xc0\x01\x32\xd3\x00\x05\x70\x80\xdc\x34\x00\x07\x0e\ \x50\x19\x06\x70\x34\x70\x80\xc6\x30\x40\x00\x1d\xa0\x33\x0c\xf0\ \x13\x3a\x00\x37\x0c\x50\x41\x07\xd0\x86\x01\x3e\x83\x07\x10\x46\ \x01\xa4\x06\x0f\x30\x1a\x05\x18\xe0\x03\x38\x46\x01\x1c\xf8\x00\ \xae\x51\x80\x03\x7c\x00\xcf\x28\x80\x0b\x1f\xc0\xc7\x0e\x70\xc4\ \x0e\xf0\x80\x1d\x20\xc6\x0e\x90\x62\x7f\x0b\x64\x46\x01\x7e\xc0\ \x07\xc8\xb1\xff\x10\x2a\x8c\x02\x4c\xf0\x01\x4a\xec\xdf\x02\x15\ \xf6\xaf\xc1\x86\x19\x8d\x02\x0f\x70\xc1\xfe\x16\x68\x4d\x02\xc8\ \x16\x3e\x40\x77\x35\x1f\xf8\x7b\x42\xf0\xbf\x19\xc1\x30\x8a\xe3\ \x24\x4d\xb3\xd3\x29\x2f\x8a\xb2\xaa\xea\xe6\x9f\xd4\x5f\xaa\xb2\ \x2c\xfe\x9d\x12\xcd\xb2\x34\x49\xe2\x38\x0a\xc3\xe3\xf7\xc0\xf7\ \xcf\x9e\xe7\xba\x07\xc7\x99\xbe\x8e\xc3\x20\x12\x0d\x1f\xa0\x7f\ \x05\x10\x6b\xa3\x81\x0f\x90\xe0\x03\xe0\xaf\x00\x52\xec\x00\x19\ \x3e\x80\xa7\x57\x00\x27\x7c\x00\xea\x15\xc0\x23\x76\x80\x1c\x3b\ \x40\x81\x1d\xa0\xc4\x0e\x50\x61\x07\xf8\x82\x1d\xa0\xc6\x0e\xd0\ \x60\x07\x68\xb1\x03\x74\xd8\x01\x7a\xec\x00\x1c\x39\x00\x01\x28\ \xec\x00\x1a\x39\x80\xc4\x0e\x20\x90\x03\x10\xc0\x80\x1d\x60\xc4\ \x0e\x30\x61\x07\x70\xb0\x03\xfc\xc0\x0e\x70\xc0\x0e\xe0\x62\x07\ \xf0\x30\x02\x2c\x6f\xf4\xe5\xf5\x29\x0e\x3c\xe7\xd7\x6e\x61\xf9\ \x6d\x9c\x1c\xd7\x7f\x48\x8b\xfa\x69\x87\x00\xfe\x15\xc0\x25\xf3\ \x27\x36\x93\xc9\x4f\x4a\xb5\x67\x00\x55\x04\x03\x5b\x88\x7c\x4e\ \x2f\x3b\x9a\x1d\x0e\xfe\x7f\xf7\xbe\x60\xeb\x32\xc6\xdd\x5e\xd6\ \x07\x1c\xff\x00\xd4\x47\xc1\x6e\x89\x7b\x52\xbb\x58\x22\x13\xfe\ \x36\xc9\x1c\x76\x73\x86\x54\xed\x00\x20\xd2\x5a\xb7\x2f\xff\xf9\ \x06\x08\x80\x2f\x93\x8b\xf5\x27\x97\xdd\x9f\xaf\xe5\x02\x00\xf8\ \x95\xa2\xee\xc4\x3e\x96\x80\x5b\x07\x50\xb3\x4d\x33\x5c\x35\x02\ \x74\xab\xc5\x63\xcb\x00\x3e\xb1\xad\x73\xe6\xfa\x25\x28\xb7\xcc\ \x38\xdc\x26\x80\x8c\x19\x15\x40\xba\x6d\xce\xe9\xed\x01\x88\x99\ \x11\x01\x65\x0d\x40\xc8\x8c\xc4\xb7\x06\x20\x60\x66\x92\xda\x02\ \xe0\x1b\x02\x90\x95\x25\x00\x1e\x33\x94\x49\xd9\x01\x70\x60\xa6\ \x12\xd9\x01\x30\x19\x03\x90\x17\x2b\x00\x06\x66\x2c\xcf\x56\x00\ \x48\x66\x2e\xb5\x05\x00\x8a\x19\x8c\x67\x01\x40\xcf\x4c\xa6\x81\ \x0f\xd0\xce\x74\x60\x87\x20\xc9\xab\xb6\x7f\xd2\x5a\xf3\xbe\xab\ \x4e\x71\x70\x4f\x6f\x19\xc0\x07\xa8\xaf\x01\xc4\x39\x6d\xde\xb2\ \xe2\x65\x38\xde\x08\x20\x14\x78\x80\x92\xbd\x8e\xf4\x0b\xa5\xe7\ \xd3\x84\xe2\x26\x81\x5c\x6b\xab\x0e\x55\x1d\x13\xbe\x24\xa6\xb2\ \xd1\x40\x37\x08\xe3\x58\xdd\xf1\xb4\xca\x4c\xa5\xeb\x5b\x81\xe4\ \xda\x9a\x83\x95\x45\xba\x5a\x8d\xfb\xab\x05\x4a\xe8\x00\xd1\x7d\ \x23\xfa\x8f\x6b\x1b\x41\x04\x1d\xa0\x0f\xe5\x5d\xc3\xf9\xed\xca\ \x9e\xe0\x00\xbf\xbe\x40\x7b\xbe\x6b\x24\xbb\x3f\xac\x02\x90\x0a\ \x3c\x80\xd6\x75\x7a\x0f\x9c\x5a\x27\xd0\xec\xb7\xc4\x06\x9f\xd6\ \x00\xe4\xfb\x05\xd0\xdd\xc0\x96\x93\xc0\x06\x30\x7f\x0e\x59\x00\ \x1b\xc0\xfc\x98\xba\xbb\x6b\x00\x35\x2e\x02\x38\xbb\x06\xd0\xb9\ \xed\x35\x46\xcc\x0f\x2a\x0f\x66\x01\xe0\xf7\x83\x02\x36\x80\xf9\ \x61\x75\xb9\x77\x80\x14\x7b\x0b\xe8\x17\x00\xc6\xbd\x03\x68\x17\ \xf5\x6b\x70\xf9\x19\x70\x77\x0f\xd0\x00\x2f\xb6\x66\x3e\x02\xe3\ \xb7\xc0\xfa\x15\x06\xf1\xfe\x01\x42\x8c\xe3\x01\xeb\x57\x1a\xb6\ \xfb\x07\x28\xcd\xfe\x10\x84\x0f\xd0\xc2\xae\x36\x67\x3e\x9f\x2d\ \xae\x36\x67\xbe\x5e\x5b\x86\x00\x40\xbd\x07\xd0\x21\x00\xd0\x0b\ \x5d\x00\xea\x16\x10\x63\x00\xe8\xd9\x7c\x6a\x0c\x00\xdd\x7b\x03\ \x82\x18\x00\xea\x79\x80\x10\x32\x40\xeb\x73\xe3\x43\xe3\x2d\x5c\ \x00\x1e\xca\xad\x36\xb8\x25\x36\x2e\x94\x4c\xbf\x31\xc6\x04\x37\ \x5c\xaf\xae\x80\x0a\xf0\x69\xda\x72\x41\xbb\x33\x3f\x1e\x0a\x03\ \x60\x7e\x97\x8c\xec\x36\x00\x50\x72\x0e\x20\x05\x00\xb0\xd0\x66\ \xff\x32\xb9\xf7\x76\x50\x50\x01\xf2\x4d\x0b\x43\x47\x73\x00\x27\ \x0d\x15\xa0\xdf\x74\x63\xcf\xd7\xd9\xcf\x00\x00\x00\xcb\xf3\x79\ \x91\xb1\x51\xf1\x12\x30\x40\xf8\x02\x20\x6b\x43\x43\xa2\x9e\x06\ \x0c\x50\xb0\x97\x8c\xfc\x43\x00\x5c\xcc\x15\xd9\x82\x0c\xc0\xb7\ \xdb\xe4\x9a\xce\xbe\x02\x21\x03\x68\x67\xab\x6b\xe5\xc3\xdc\x03\ \x00\x06\x60\xf9\xc1\x95\xe5\xe6\xef\xc0\xa1\x07\x04\xb0\x7c\x6e\ \x86\xb8\xfb\x79\xed\xe4\xdc\x47\x00\x70\x00\xfe\xfa\xc2\xc7\x6e\ \xdb\x25\x52\x21\xfc\xfa\x02\x07\xb6\x85\x40\x34\xd7\x01\x40\x03\ \x58\xbe\xf4\xb1\xdd\x6e\x24\xc4\x51\x16\x00\x94\x57\xdd\x56\x7d\ \x33\x40\x25\xdf\x04\x18\x7b\x6d\x01\xc0\xd3\xd5\xc5\x8b\xfc\x46\ \x80\x2f\x82\xbd\x15\x71\xd1\x30\x01\x96\xbb\xaf\xf0\xa6\xa6\x5b\ \xc8\xb7\xef\xbf\xd2\x50\x01\x96\xfb\x2f\xa7\x59\x0f\x90\xcc\xdc\ \x7f\xad\xe1\x02\x2c\x4f\xea\xcb\x68\x65\x23\xe8\x5d\xf6\x66\x86\ \x46\xc3\x03\x58\xfe\x25\x70\xf3\xde\xc9\xb9\x9d\x93\x63\xa7\xa1\ \x03\x2c\x2f\xf3\x9e\xb2\xa5\x56\x90\x4f\x73\xff\xb4\xd3\x16\x01\ \x3c\xb0\xb9\x0c\x51\x33\x0f\xc0\x93\x71\xe9\x14\x39\xf8\x00\xcb\ \xeb\xdc\xa7\xa8\x52\xfa\x3a\x5d\xf6\x2c\xe7\xd8\x64\x62\x59\x7d\ \x01\xce\xde\x8f\x3c\x1c\xb3\xb2\xe5\x7f\xfe\xba\xc9\x93\xf3\xc0\ \xe6\x33\x54\x1a\x00\x80\x81\xf3\x73\xa4\x18\xc6\x41\xb2\xa5\xb8\ \xbd\xb6\x0e\xe0\xc8\x36\x8b\x48\x6d\xac\x2f\x70\xda\x0c\xc0\xeb\ \xb4\x8d\x00\xed\x46\x00\x43\x6e\x6b\x7d\x01\xb1\x05\x80\x0c\xb9\ \xb6\x15\xc0\xdb\xe0\xf6\xbf\x77\x16\xd7\x17\x88\x3f\x0c\xe0\xb7\ \x56\x57\x98\x28\x3e\x06\x20\x83\x8b\xe5\x25\x36\xfa\x8f\x00\x8c\ \x09\xb7\xbf\xc8\x4a\x34\xdc\x09\x20\xcf\xe5\x3e\xaa\xcc\xa8\xdc\ \xbd\xe3\xee\xbd\xac\xdf\x51\x99\x9d\x2e\x71\x6e\x01\x10\x7e\xce\ \x6d\xab\x33\xb4\x6c\x90\x79\x72\x0d\xc0\x70\x4e\x2a\x65\x67\xa1\ \xa5\xe5\xd4\xa9\x3f\xbd\xa3\x30\xb8\x61\xde\xc1\xaa\x34\x65\x20\ \xea\x52\xa4\x91\xef\x1d\xa6\x41\x08\xc9\xa4\x18\x27\xc7\xf5\xfc\ \x28\x2b\x5b\x05\xb0\xd4\xd6\xbe\x43\x00\x04\x40\x00\x04\x40\x00\ \x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\ \x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\ \x00\x04\x40\x00\x04\x40\x00\x08\x43\x00\xbf\x42\x00\x04\x80\x37\ \x04\x40\x00\x04\x40\x00\x04\xf0\x37\x14\x0d\x3b\x00\xae\xfd\xb0\ \xa7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\xa7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\xf0\x50\x4c\x54\x45\xf8\x00\x78\xf8\xfc\xf8\xf8\xf8\ \xf8\xf8\x0c\x80\xf8\xf4\xf8\xf8\x00\x80\xf8\x08\x80\xf8\xe0\xf0\ \xf8\x1c\x88\xf8\x24\x90\xf8\x28\x90\xf8\x2c\x90\xf8\x38\x98\xf8\ \x44\xa0\xf8\x5c\xa8\xf8\x60\xb0\xf8\x68\xb0\xf8\x6c\xb0\xf8\x84\ \xc0\xf8\x94\xc8\xf8\x04\x80\xf8\x9c\xc8\xf8\xa8\xd0\xf8\xac\xd0\ \xf8\xbc\xd8\xf8\xcc\xe0\xf8\xd0\xe8\xf8\xd8\xe8\xf8\xdc\xe8\xf8\ \xe4\xf0\xf8\xe8\xf0\xf8\xf0\xf8\xf8\x14\x88\xf8\x18\x88\xf8\x98\ \xc8\xf8\xc4\xe0\xf8\xec\xf0\xf8\xb8\xd8\xf8\x54\xa8\xf8\x8c\xc0\ \xf8\xd4\xe8\xf8\x64\xb0\xf8\x78\xb8\xf8\x7c\xb8\xf8\xc8\xe0\xf8\ \x10\x88\xf8\x90\xc8\xf8\xb4\xd8\xf8\x10\x80\xf8\x3c\x98\xf8\xc0\ \xe0\xf8\x70\xb8\xf8\x40\xa0\xf8\xd0\xe0\xf8\x80\xc0\xf8\x48\xa0\ \xf8\x88\xc0\xf8\x4c\xa0\xf8\x50\xa8\xf8\x20\x90\xf8\x30\x90\xf8\ \xa0\xd0\xf8\xa4\xd0\xf8\x30\x98\xf8\x34\x98\xf8\xe0\xe8\xf8\x60\ \xa8\xf8\xf0\xf0\xf8\xb0\xd0\xf8\xc0\xd8\xf8\x20\x88\xf8\xb0\xd8\ \xf8\xa0\xc8\xf8\x90\xc0\xf8\x74\xb8\xf8\x40\x98\xf8\x58\xa8\xf8\ \x80\xb8\xf8\x50\xa0\xf8\x70\xb0\xcd\x8c\x3c\xfc\x00\x00\x07\x72\ \x49\x44\x41\x54\x78\x5e\xed\xdd\xe7\x72\xa5\x3a\x16\x86\xe1\x6f\ \x89\xb4\x73\xce\x39\x3b\xe7\x9c\xdd\x39\x9e\x99\xfb\xbf\x9b\xa9\ \xea\x2a\xff\xe8\x33\x48\x80\xb7\x7e\x08\xb4\xde\x0b\x70\x95\x9f\ \x0d\x08\x04\x08\x90\xe5\x81\x01\x18\x80\x01\x18\x80\x01\x08\x16\ \xf6\x37\x00\x03\x30\x00\x03\x90\x45\x31\x00\x03\x30\x00\x03\x30\ \x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\ \x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x18\x10\x03\x30\x00\x03\ \x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x4c\x83\xc1\x72\ \xfd\xb9\xd3\x3e\xb1\x0c\x60\xfc\xe5\xe9\xba\x7a\xf3\x32\x6f\xe1\ \xad\xcd\xca\x12\x00\xd1\x5f\xec\x95\x4e\xf1\xff\xcd\xd7\xd9\x07\ \x70\x7b\x07\x67\x2d\x48\xab\xbb\x99\x06\x18\x2f\xee\x7c\xa8\x2b\ \xf4\x33\x0b\xf0\xa9\x5d\xf6\x10\x5d\xab\x91\x4d\x80\x7e\xd5\x47\ \xcc\x4a\xa3\xec\x01\x74\x5f\x91\x20\x27\xc8\x16\x80\x68\xe7\x91\ \xa8\x1d\xca\x14\xc0\x73\x1e\xc9\xda\xa7\x2c\x01\xf4\x8a\x48\x58\ \x8d\x32\x04\x30\xba\x47\x74\x7e\xb1\x5c\xb9\x68\xec\x34\x17\xed\ \xc5\x71\xe3\xe7\x01\x65\x07\x40\x34\x7c\x28\xf3\x0a\x95\x1f\xbd\ \x71\x66\x2f\x86\x0e\x8b\x50\x95\xaf\x75\x57\x59\xbe\x1a\x14\xfb\ \x1e\xe4\x15\xaf\x77\x33\x7e\x39\xdc\x2f\x42\x9a\x53\xbb\xca\xfc\ \x7c\xc0\x4e\x0b\xb2\xf2\x0b\x37\xf3\x13\x22\x93\x1b\xc8\x7a\xe9\ \x5a\x30\x23\x74\x3e\x87\xa4\x87\x8e\x0d\x53\x62\xcd\x16\xc2\x73\ \x76\x04\x65\x1f\xc0\xfd\x08\x49\xf7\x81\x0d\x93\xa2\xc1\x0b\xc2\ \x3b\xea\x58\x31\x2b\x7c\x35\x47\x78\x97\x63\xb2\x01\xa0\xe7\x20\ \xbc\x03\x22\x1b\x00\x9e\x5b\x08\xcd\xe9\x92\x15\x00\x3b\x08\x6f\ \x3e\x20\x2b\x00\x1a\x08\x2f\x3f\x22\x2b\x00\x6e\x11\xde\xe3\x84\ \x2c\x00\x90\xff\xff\x85\x09\x59\x00\x20\xdf\xff\xf3\x63\xb2\x02\ \xe0\x3b\xc2\x9b\x8d\xc8\x0a\x80\x75\x0b\xa1\xf9\x87\x64\x05\xc0\ \x95\x83\xf0\x3a\x64\x05\x40\x30\x47\x78\x75\xb2\x02\xc0\x7d\x44\ \x78\xaf\xc2\x0e\x80\x2a\xc2\x73\x46\x64\x05\xc0\x02\x92\x16\x64\ \x05\x40\xbf\x85\xf0\xca\x64\x05\xc0\x2a\x87\xf0\xfc\x91\x1d\x00\ \x15\x48\x6a\x90\x15\x00\xdf\x20\xe9\xab\xb0\x02\x60\x35\x83\xa4\ \x67\xb2\x02\x60\x03\x49\x2f\x64\x05\xc0\x37\xc8\xfa\x6c\x05\x80\ \xfb\x00\x49\x45\xb2\x02\xe0\x1a\xb2\xda\x56\x00\x04\x3e\x24\xcd\ \x5c\x2b\x00\x36\x90\xb5\x4f\x36\x00\x1c\x42\xda\xd0\x0a\x80\x1b\ \xc8\x2a\x91\x0d\x00\x4b\x48\x3b\xb6\x02\xa0\x0c\x69\x81\x0d\x00\ \x4b\x48\x7b\x25\x1b\x00\xee\x20\xed\xc0\x06\x80\xa1\x07\x69\xe7\ \x36\x00\xd4\x21\xcd\x11\x16\x00\x4c\x1d\x48\x2b\x93\x05\x00\xc7\ \x90\x77\x60\x03\x40\x01\xf2\x4e\x2c\x00\xe8\x43\xd1\xc4\x02\x80\ \x0b\xc8\x9b\x53\xf6\x01\xc4\x1c\xf2\xca\x16\x00\xac\xa1\xe8\xc2\ \x02\x80\x0a\x14\x35\x2d\x00\x38\x82\xa2\x5e\xf6\x01\x96\x50\x35\ \x22\x69\xa3\x4e\xa3\x7a\x59\x9c\x3b\xbe\xe7\xcf\x72\x85\xb3\x8f\ \x8d\xce\x20\x95\x00\xfb\x50\xe4\x09\x0a\xed\x43\xf3\x3e\x6c\xc3\ \x71\xee\x76\xfa\xa9\x03\x28\x22\xe9\x28\x38\x6d\x96\x20\x2f\xdf\ \x08\x52\x05\x10\x00\x48\x34\x19\x10\xd4\x1d\xa8\xf3\xca\xe7\x29\ \x02\x68\x43\xd5\x1d\xfd\xab\x49\xbd\x85\x18\x95\x97\xa9\x01\xa8\ \x42\xd5\x1e\xfd\x5d\xd3\x41\xcc\x36\x93\x94\x00\xe4\x13\xbc\xfa\ \x3d\x7c\x45\xfc\x8e\x9e\x52\x01\x30\x49\xf0\xee\xff\xc2\x47\xa2\ \xee\xa7\x29\x00\xe8\x42\x59\x9b\xde\x22\xb7\x82\xa4\x15\x3f\x98\ \x0f\x70\x01\x65\x5d\x7a\x6b\xfc\x82\xe4\xcd\x96\xc6\x03\xfc\x82\ \xb2\xf5\x1b\xc0\x6e\x0e\xef\xc9\x59\x9a\x0e\x70\x04\x65\x87\x6f\ \xe7\xcb\x0e\xde\x97\xd3\x37\x1b\x60\x0c\x75\xbb\xf4\xa7\x2f\x3e\ \xde\xdb\xd1\xae\xd1\x00\x6b\x20\xc6\xb5\x50\xcf\xc7\xfb\x2b\x4c\ \x4d\x06\xd8\x81\xba\x31\x11\xd1\xd2\xc7\x36\x6d\x4c\x06\xa8\x40\ \xdd\x8a\x88\x06\xa7\xd8\xae\x63\x83\x01\xce\xa0\x6e\x4a\x14\xcc\ \xb1\x65\xfe\xc8\x5c\x80\x1c\xd4\xb9\xf4\xa9\x88\xad\xbb\x31\x16\ \x40\x78\x50\x27\xc4\x25\x34\xd4\x35\x15\x60\x84\x88\x44\x0d\x3a\ \xca\x09\x43\x01\xbe\x20\xa2\x05\xf4\xb4\x30\x14\xe0\x09\x11\xb5\ \xa0\xa7\x07\x61\x26\xc0\x2d\x92\xe5\x5f\x1e\x3c\x1f\x06\x2b\xe1\ \x8e\x07\x9d\xfd\x33\x0f\xf1\xfb\x6e\x26\xc0\x3e\x12\xd4\xba\xff\ \x2c\xfe\xe2\x9b\x34\x0b\x88\xdb\xa3\x99\x00\x7b\x88\x9d\x57\x0d\ \x1b\xcd\xbb\xb1\x09\xae\x8c\x04\xd8\x20\x6e\x85\x43\xd9\x1a\x63\ \x2d\xc4\xaa\x6e\x24\xc0\x25\x62\xb6\x71\x49\xd6\x72\x86\x38\xcd\ \x84\x89\x00\x8f\xd0\xf0\xf3\x8d\x0a\x88\xd3\x89\x89\x00\x0f\x88\ \x55\x85\x94\x4d\x62\x09\x5c\x98\x08\x90\x43\x9c\x4a\x82\xd4\x8d\ \xbf\x22\xba\x82\x89\x00\x33\xc4\xc8\x1f\xc6\x7d\xdf\x54\x5d\x60\ \x20\xc0\x91\xae\x75\x81\x17\x88\xae\x6d\x20\x80\xaf\xed\x42\xe6\ \x0e\x91\xd5\x0c\x04\x68\x69\xfb\xe1\x3e\x44\x5b\x96\x0c\x04\xd0\ \x38\x7e\x37\x10\x95\x93\xce\x2d\xe0\x27\xc5\xcb\x9d\x21\xaa\xa1\ \x79\x00\x0e\x22\x1b\xe8\xbb\xb2\xfc\x9c\xc6\x61\xf0\x6b\xa2\x47\ \xce\xd5\x35\xcd\x03\xc8\xe9\x3c\x74\xd7\x10\xd1\xbe\x79\x00\x79\ \x9d\xd3\x99\x7d\x44\x54\x31\x0f\xa0\x88\xa8\x02\x8d\x7f\xed\xd2\ \x3c\x80\x57\x44\x34\xa7\x04\xfd\x03\x75\x05\xf3\x00\x7e\x21\xa2\ \x32\x91\xbe\x7d\xe0\x21\x85\x33\x42\x35\x9d\xc7\xd4\xb9\x79\x00\ \x75\xbd\x1f\x48\xf9\x0d\x65\xa7\xe6\x01\x34\x10\x51\x87\x92\xd4\ \x84\xb2\x96\x79\x00\xdf\x11\xd1\x17\xd2\x78\x10\xf0\xcc\x03\x58\ \x23\xa2\x5d\x4a\x92\x68\x41\x95\x6f\x1e\xc0\x15\x22\x1a\xeb\x7b\ \xff\x0e\x98\x99\x07\x30\x41\x44\x2b\x4a\xd4\x7d\xda\x86\x41\x72\ \xa0\xce\xd5\x79\xab\xad\x60\x20\xc0\x2b\xd4\x09\xd2\x38\x0c\xbc\ \xa6\xf0\x21\x29\xad\x4f\x1e\xff\x32\x10\xa0\xa1\x77\x17\x38\x87\ \xaa\xdf\x06\x02\x74\xa1\x6e\x4a\x89\x1a\xa6\x6d\x3e\x80\x86\x50\ \x37\xd1\xf9\xe4\xed\xc2\x40\x00\xd1\xd2\x7a\x37\x67\x05\x55\x6b\ \xe3\x00\xa2\x87\x81\x01\x25\xca\x85\xaa\x91\x89\x00\x75\x28\xeb\ \x69\xbc\xd1\xe0\x09\x13\x01\x3a\x3a\xaf\x06\x49\x40\x51\x81\x4c\ \x04\x08\xb4\xce\x64\x4f\xa1\xa8\x6a\x24\x00\xe5\x74\x8e\x5c\x2b\ \x28\x5a\x98\x09\xf0\x1b\xaa\x36\x1a\x87\xc1\x81\x99\x00\x4d\xa8\ \x7a\xa1\x44\x0d\x20\xcf\x27\x33\x01\x46\x3a\xa7\xf1\x7a\x90\xf7\ \xcb\x50\x00\x2a\x40\xd5\x58\xdb\x98\x72\x9b\xca\x05\x14\xf0\x4d\ \xdb\x92\x54\xc3\x74\x2e\xa1\x71\xa0\xeb\xb4\xaa\x48\xa6\x02\xd0\ \x0c\x8a\x6e\xb4\x2d\x4b\x68\x2e\x40\x15\x8a\x1c\xa1\xe9\x6e\x73\ \xdf\xec\x85\x94\xf4\xac\xa7\x38\xf5\x20\x2b\x4f\xe6\x02\xd0\x57\ \x5d\x07\x81\x73\x48\x3b\x36\x19\xe0\x5a\xd7\xa9\xd0\x0e\x64\x39\ \x53\x93\x01\x02\x0f\x8a\x76\x75\x1c\x03\xeb\x64\x32\x00\xdd\xe8\ \xd9\x07\x84\x0f\x59\x43\xb3\x01\xba\x7a\x9e\x13\x5b\x2b\x06\x53\ \xb3\x01\xd4\xa7\xc3\xdd\xad\xdf\x40\xf2\x06\xa6\x03\x3c\xeb\x78\ \xc6\xd7\x75\x20\xe9\x23\x99\x0e\x40\x79\x28\x5a\x6e\xa9\xe8\x07\ \xe6\x03\x3c\x69\xd8\x04\x8a\xf2\x69\x25\xf3\x01\x44\x7e\xeb\xa9\ \xd1\x13\x48\xca\x7d\x32\x13\x40\x3d\x10\x24\xff\x17\x5e\x20\x69\ \x4d\x69\x00\xa0\xff\x40\x51\x65\x8b\xa9\xb5\x3a\xa5\x03\x20\x70\ \xb6\xda\x09\x82\x53\x84\x97\x77\x8d\x04\x50\xcf\xe6\x24\xff\xde\ \xac\x28\x21\xbc\xd6\x21\xa5\x05\x80\x4a\x50\x34\x1b\xbd\xef\x1c\ \xa8\x4d\xe9\x01\x18\x1d\x41\x51\x6e\xf0\x9e\x25\xd9\xf6\x29\x45\ \x00\x74\x02\x55\x4e\x8f\x24\x89\x1a\x24\x6d\x28\x55\x00\x74\x0b\ \x55\xde\xbe\xa0\xb0\xc6\x67\x90\x54\x72\x53\x06\x40\x35\x28\x2b\ \x86\x0c\xe9\xe2\xd8\x81\xa4\xb3\x29\xa5\x0d\x80\x36\x50\x57\xea\ \xfe\xfd\xa3\x7e\xda\xc9\x41\xd6\x8d\x4b\xe9\x03\x10\x51\x02\x70\ \x2a\xed\xbe\xf8\x03\xb0\x3a\xff\x51\x6e\x41\xda\x46\x50\x0a\x01\ \x48\x54\x11\x23\x27\x97\x9f\x3b\x50\x56\x13\x69\xfd\xf4\xf6\x35\ \x34\xe4\x3f\xa7\xf8\xeb\xf3\x1d\x1f\xdb\x56\xd8\xa5\x14\x03\xd0\ \x6e\x01\xdb\x55\x75\x29\xd5\x00\xe4\xfe\xf4\xf0\xfe\x0a\x3d\xa2\ \x94\x03\x10\x2d\x1f\xf1\xce\xfc\x5b\x41\x19\x00\x20\x5a\xcc\xf0\ \x8e\x5a\x1f\x03\xa2\x6c\x00\xd0\xf4\x36\x31\x81\xff\xdf\x80\x28\ \x33\x00\x44\xee\xa2\x88\x04\xcd\xff\x59\x11\xa5\x0f\x40\xdd\xf9\ \xde\x29\x62\xe5\x54\x7b\x44\x94\x3d\x00\x22\xf1\xad\x96\x43\x44\ \xb9\x4a\x57\x10\xa5\x1a\x40\xdd\xb0\xbd\x57\x6c\x21\x34\xaf\xb0\ \xf7\xf4\x21\x23\xdf\x1e\x57\x27\x76\x3b\xb7\xf5\xbb\x52\x61\xee\ \xf8\x9e\xe7\xcc\x1f\x8a\xa5\x9b\xfa\xf1\xc9\x50\x98\xf0\xa1\xa5\ \x6c\xc7\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\ \xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\ \x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\ \x16\xc6\x00\x7f\x62\x00\x06\xb0\x37\x06\x60\x00\x06\x60\x00\x06\ \xf8\x1f\xee\xa8\x2b\x99\x18\xa3\x27\x20\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\xa7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\x9f\x50\x4c\x54\x45\xf8\x7c\x00\xf8\xfc\xf8\xf8\x88\ \x10\xf8\xf8\xf0\xf8\x8c\x18\xf8\xa8\x50\xf8\xb0\x60\xf8\xc8\x90\ \xf8\x80\x00\xf8\xf4\xe8\xf8\xdc\xb8\xf8\xe8\xd0\xf8\xb4\x68\xf8\ \xc4\x88\xf8\xe0\xc0\xf8\x98\x30\xf8\x84\x08\xf8\xc0\x80\xf8\xf0\ \xe0\xf8\xac\x58\xf8\xe4\xc8\xf8\xf8\xf8\xf8\xd0\xa0\xf8\xd4\xa8\ \xf8\xec\xd8\xf8\x90\x20\xf8\xa0\x40\xf8\xa4\x48\xf8\xf0\xe8\xf8\ \x9c\x38\xf8\xd4\xb0\xf8\xbc\x78\xf8\x84\x10\xf8\xb8\x78\xf8\xcc\ \x98\xf8\xb0\x68\xf8\xb8\x70\xf8\xd8\xb8\xf8\x98\x38\xf8\x8c\x20\ \xf8\xe4\xd0\xf8\x80\x08\xf8\xec\xe0\xf8\x94\x28\xf8\xa4\x50\xf8\ \xd8\xb0\xf8\x94\x30\xf8\xb4\x70\xf8\xc8\x98\xf8\xf4\xf0\xf8\xe0\ \xc8\xf8\xa8\x58\xf8\x88\x18\x03\x44\x9e\x16\x00\x00\x02\xc3\x49\ \x44\x41\x54\x78\x5e\xed\xd6\x57\x6e\xdd\x40\x0c\x46\xe1\x9f\xea\ \xed\xf6\xde\x5c\x4b\x7a\xcf\xfe\xd7\x16\x40\x08\x10\xc8\xc6\x8d\ \xe4\x07\x23\xf1\xf0\x9c\x1d\xf0\xc3\x60\x48\x99\xf3\x04\x00\x00\ \x00\x00\x00\x80\xc9\x61\x5d\x00\x00\x00\x00\xc0\x1c\x05\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x32\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\xca\xda\x35\x40\xb5\x28\x52\xbf\x00\xf3\ \xd9\x4e\xd2\x1b\xaf\x00\x9b\x43\xa1\x36\x97\x00\xf5\x5d\x24\xc9\ \x2b\x40\x99\x4f\x24\xb9\x05\xb8\x4f\x0b\xc9\x2d\x40\x7d\x9d\x48\ \xf2\x06\xd0\x7d\xfa\x6e\x01\x2e\xd2\x42\x72\x0b\xf0\xbd\x89\x24\ \x79\x05\xd8\xb6\x07\x8f\x57\x80\x32\x7f\x90\xe4\x15\x20\x5e\x1f\ \x0a\xc9\x2b\xc0\xea\x22\x9d\x4a\xf2\x0a\x50\x65\x57\x92\xbc\x02\ \x54\xb7\x91\x24\xaf\x00\xe3\xe6\xa7\x24\xaf\x00\x55\x3b\xbd\x57\ \x80\x2a\x8b\x24\x39\x05\x88\x37\x8b\x2b\x49\x4e\x01\x8e\x37\x87\ \x77\x92\x9c\x02\xd4\xb3\x53\x21\xc9\x27\x40\xfc\xe9\x36\x51\x9b\ \x47\x80\xe5\x68\x5f\x48\xf2\x09\x50\xe7\x69\xa4\x36\x8f\x00\xdb\ \x8f\xed\xf0\x7e\x01\x2a\x0d\xaa\x48\x9b\x24\x4c\x80\xb1\x06\x34\ \xbd\x9b\x9b\x95\x51\x90\x00\x4b\xf5\x16\xcd\xca\xd6\xaa\x09\x12\ \xe0\xbd\x7a\xda\xe5\xb1\xb5\xd9\x3a\x48\x80\x58\x7f\xed\xf3\xba\ \xf3\x58\x02\x04\xb0\x48\xe7\xdb\xdf\x77\x16\x46\x98\x00\xa7\xf3\ \x1f\xff\xd2\x3a\x95\x61\x02\x64\x67\xc6\xcf\xb6\xf6\xa8\x38\x4c\ \x80\xfc\xdc\xde\x7b\x5a\x20\x00\xfd\x7b\x30\x19\x7d\x33\x73\x03\ \x60\x53\x75\xdb\xdd\xac\xcc\x3c\x01\x1c\x3a\x00\x93\x8d\x99\xf9\ \x02\xf8\xaa\x3f\xed\x2b\x33\x77\x00\x73\xfd\xae\x58\xbc\x35\xf3\ \x04\xd0\xbd\x04\xa6\xcd\xd6\xcc\x27\x40\x2e\x29\xba\x2c\xcd\xbc\ \x02\x94\x45\x32\x8a\xcd\xfc\x02\xd8\xd8\xcc\x5c\x03\xd8\xeb\x06\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x60\xe5\x1d\xe0\xa8\xde\xca\xa0\x01\xc6\xea\xad\x0e\ \x1a\x60\xa4\xde\xd6\x41\x03\x9c\xd4\x5b\x16\x32\xc0\x58\xfd\x45\ \xab\x80\x01\x26\x1a\x50\x1e\x2e\x40\xa6\x21\x5d\xcd\x03\x05\x88\ \x17\x1a\xd6\x87\x63\x90\x00\x17\x3b\x0d\x2d\xa9\x82\x03\x58\xce\ \x76\x7a\x4e\xfb\x4d\xfc\x3a\x01\x2e\x9f\x76\xdd\xa4\x93\xa9\x9e\ \x5d\x31\xf9\xf1\xe5\xf2\x51\xa3\xff\x1e\x20\xd6\x8b\x16\xbd\x0c\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xd8\x01\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x0e\x03\xa0\x0d\x00\x00\xfc\x06\x00\x00\x00\x00\x00\ \xc0\x2f\xab\x25\xe7\xf8\xca\xd9\x09\x7e\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x56\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\x8a\x50\x4c\x54\x45\x00\xfc\x78\x00\xfc\x80\xe8\xfc\ \xf0\xf0\xfc\xf8\x08\xfc\x80\xf8\xfc\xf8\x48\xfc\xa0\x58\xfc\xa8\ \x90\xfc\xc8\xa8\xfc\xd0\xb8\xfc\xd8\x38\xfc\x98\xd8\xfc\xe8\xe0\ \xfc\xf0\x20\xfc\x90\x10\xfc\x88\x80\xfc\xc0\x30\xfc\x98\x88\xfc\ \xc0\x18\xfc\x88\xd0\xfc\xe8\xc8\xfc\xe0\x28\xfc\x90\x78\xfc\xb8\ \xb0\xfc\xd8\xa0\xfc\xd0\x40\xfc\xa0\x70\xfc\xb8\xf0\xfc\xf0\x98\ \xfc\xc8\xc0\xfc\xe0\x68\xfc\xb0\x50\xfc\xa8\xb0\xfc\xd0\x60\xfc\ \xb0\x10\xfc\x80\xe0\xfc\xe8\x60\xfc\xa8\x40\xfc\x98\xd0\xfc\xe0\ \x70\xfc\xb0\x20\xfc\x88\x30\xfc\x90\x80\xfc\xb8\x90\xfc\xc0\x50\ \xfc\xa0\x40\x29\x71\xf3\x00\x00\x05\x87\x49\x44\x41\x54\x78\x5e\ \xed\xdc\xe7\x96\xdb\x46\x0c\x80\x51\x4c\x63\xef\x4d\xbd\x6c\x75\ \x49\xf2\xfe\xaf\x17\x25\xff\x7c\x08\x0f\xa5\xa5\xe8\x33\x43\xe0\ \x7b\x02\xe3\xda\x96\x20\x70\xb5\x60\x88\x07\x0c\xc0\x00\x0c\xc0\ \x00\x0c\x60\x80\x60\xbf\x02\x30\x00\x03\x30\x80\x21\x14\x03\x30\ \x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\ \x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\xc0\xb3\ \x63\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\ \x00\x06\x60\x00\x06\x60\x00\x06\xc8\x92\xe8\x10\xa6\x43\xab\xb5\ \x10\xba\x6c\x8b\x21\x0d\x0f\x51\xdc\x2b\x0a\x00\x6a\xbb\xf9\xd4\ \x80\x07\xc5\xb5\xda\xca\x35\x03\x64\xcd\xa7\x80\xa9\x86\x43\xa2\ \x56\x09\x20\xff\xae\xe1\xce\x44\xb0\x53\x6b\x03\xe8\x43\x01\x8f\ \xa4\xc3\x64\x4d\x00\xdb\x14\x1e\xaf\x88\xd4\x4a\x00\xb6\x35\x7c\ \xad\xb2\x92\x2b\x00\xe8\x53\xf8\x7a\xba\xf1\x1d\x20\x0f\x61\x5e\ \xc5\xd6\x6b\x80\x48\xc3\xec\xf6\xb9\xb7\x00\x5d\x0d\xcf\xe8\x2d\ \xf6\x14\x60\x23\xe0\x49\x7d\x28\x0f\x01\xba\x1a\x9e\x57\x91\x79\ \x07\x10\x69\x78\x66\x65\xef\x17\x80\xbc\xc2\x93\xd3\x5b\xaf\x00\ \x7e\xc0\xd3\x13\x3b\x8f\x00\x24\x2c\x90\x48\xfc\x01\xe8\x61\x89\ \xf4\xd9\x1b\x80\x2d\x2c\x52\x99\xf9\x02\x10\xc1\x32\xfd\x54\x9e\ \x00\x6c\x60\xa1\x2e\x9e\x00\x84\xb0\x54\xb1\x1f\x00\x9f\xb0\x54\ \xa5\xf4\x02\xa0\x80\xc5\xba\x78\x01\x20\x60\xb1\x44\xe7\x01\x80\ \x84\x05\xdb\x7b\x00\xd0\xc3\x64\x42\x0b\xf8\x62\xbd\xeb\x00\xf6\ \x3d\xa8\x0c\xaa\xb8\x97\xe6\x96\x92\x7d\x5c\x05\x25\x3c\x5a\xe8\ \x34\x80\x7d\x0f\xaa\xab\x6e\xa4\xd5\x6d\x06\x78\x28\x21\x9d\x07\ \xd8\x00\x96\x3e\x64\x06\xef\x7c\x15\xf0\x40\x7f\x39\x0f\x10\xc2\ \xb8\xb2\x51\x16\xb2\x6e\x0f\xf7\x57\x38\x0f\x90\x8e\x00\xc4\xf7\ \xa3\xb1\x17\x97\x70\x77\x99\xc3\x00\xf8\x1e\x34\xf4\x66\xb2\x7c\ \x0f\xf7\xd6\xb8\x0b\x80\xef\x41\x57\x65\xee\xe9\x15\xee\xec\xd3\ \x59\x00\x7c\x0f\x3a\x98\x3b\x3b\xc0\x7d\x09\xc7\x01\x7a\x64\xfe\ \xe7\x7e\x8a\xfc\xe6\x36\xc0\xcb\x2f\x00\xff\xcc\x7a\xf9\xc4\xdb\ \x39\x09\x80\xef\x41\xad\x34\x0f\x94\x6b\xb8\xa7\x83\x93\x00\xf8\ \x7f\xe5\x93\x79\xa8\x1d\xdc\x53\xe0\x22\x00\xbe\x07\xb5\x33\x77\ \x08\xbc\xda\x6d\x80\x74\xce\xfd\xe2\x0c\x77\x34\xb8\x08\x80\xef\ \x41\x89\x79\xb4\x3d\x4c\xd7\x3a\x08\x80\xef\x41\x42\x2d\xf2\x4c\ \x41\x3b\x0d\x20\x67\x9e\x6f\x5a\x98\x4c\x38\x0d\xd0\xcf\xdc\xda\ \x2f\xbe\xff\x0b\x78\x99\xb9\xb2\x25\x30\x59\xe9\x34\x40\x34\xf7\ \x0f\x2a\x60\xaa\xc2\x69\x80\xc3\xdc\xf3\x5d\x0a\x53\xa5\x4e\x03\ \x84\x73\x77\xf6\x03\x4c\x15\xba\x07\x80\xef\x41\xb9\xf9\x4a\x27\ \xcf\x3f\x0b\x14\x73\x17\xb6\xc4\xf3\x4f\x83\x62\xee\x5f\x54\x07\ \x53\xf5\x2e\x03\x48\x64\x0f\x7e\xac\xdc\xef\x8b\x50\x8f\xec\xc1\ \x8f\xa5\x60\xa2\xd4\x69\x80\x78\xfe\x63\x4c\x98\x68\xe3\x1c\x00\ \xbe\x07\x35\x4b\x01\x6c\xdd\x06\x28\xf4\xcc\x97\xaa\x23\xd8\xd3\ \xca\x21\x00\xbc\xfc\x5b\xb2\x8b\x2a\x63\x96\x79\x11\x0c\xd6\xfe\ \xd5\xd9\x0c\xec\x9d\xd6\x0e\x70\xf6\xfb\xf1\xf8\xfc\x62\xb0\x76\ \x35\x6b\x07\x68\xc0\xda\x76\xf5\x00\x97\x89\x83\xe8\xea\x01\x52\ \xb0\x55\xad\x1f\xa0\x04\x4b\x5a\xae\x1e\x20\x77\xe0\x27\x45\xdd\ \x7d\x13\x10\xef\xeb\x07\xb8\x80\xa5\x57\xb3\x7e\x80\xda\x02\x20\ \xb2\xf5\x03\x48\xe1\xf5\x17\x26\xe6\x77\xb2\xbe\x05\x10\x00\xb8\ \x5a\x00\x1a\xb3\x7e\x00\xa5\x6d\x3f\x16\x40\x00\x60\x07\xbf\xef\ \x4c\x01\x20\xb0\x3d\x0f\x22\x00\x60\x79\x0f\x68\x25\x05\x80\xca\ \x76\x0a\xa5\x00\xd0\xc2\xef\xfa\x30\x04\x00\x2c\xc7\xa0\xe2\x48\ \x02\x20\x05\x3c\x10\xbd\xa1\x00\x90\x58\x56\x20\x12\x00\xa9\xe5\ \x51\x00\x05\x80\x33\xe0\xc1\xa0\x68\x00\xa4\x80\xa7\x33\x43\x02\ \x20\x06\x3c\xb1\x35\x34\x00\x0a\xc0\x8b\x0c\x0d\x80\x06\xf0\x0e\ \x86\x06\x40\xae\x01\xed\x6a\x88\x00\x04\x80\xb6\x57\x44\x00\x62\ \x40\xab\x95\xa1\x01\x20\x5b\xc0\x1a\xa4\x21\x02\x10\x5a\xe6\xa7\ \x00\x10\x5b\xe6\xa7\x00\x90\x97\x96\xf9\x29\x00\x7c\x02\x52\x2d\ \x0d\x15\x80\x0d\x20\xa5\x47\x43\x05\x20\x11\xf8\xfb\x3f\x11\x00\ \xfc\x05\x20\x50\x86\x0a\x80\xaa\xf1\xfd\x97\x0c\x40\x88\x3e\x02\ \xa1\x03\xd0\xa0\x0f\xc1\xe9\x00\xc4\x02\xfb\xfc\x4b\x07\xa0\xd7\ \x30\x6a\x63\xe8\x00\x64\x25\x8c\xaa\x0c\x1d\x00\x59\x60\xf7\x2f\ \x3a\x00\xc7\xf1\x1b\xa0\x38\x19\x3a\x00\x2a\xc5\x7e\x7d\x36\x21\ \x80\x60\x3c\x7f\x6c\x08\x01\x5c\xb1\x5f\x20\x4f\x05\x00\x9f\x3f\ \x31\x54\x00\xf0\xf9\xcf\x86\x08\x00\x3e\x7f\xd9\x1b\x42\x00\xc1\ \x78\xfe\xce\xd0\x01\x50\xfb\xd1\xfc\x6d\x66\x88\x00\xe0\xf3\x17\ \x99\xa1\x03\x70\x1c\xef\x3f\x43\x6e\xe8\x00\xc8\x1a\x3b\x7f\xd3\ \x01\x90\x03\x76\xfe\xa6\x03\x90\x8f\xe7\x4f\x95\xa1\x03\x90\x17\ \xd8\xf9\x9b\x0e\x40\xf6\x03\x3b\x7f\xd3\x01\xc8\x5a\xec\xfc\x4d\ \x07\xa0\x6b\x91\xf3\x37\x21\x80\xbe\x44\xce\xdf\x84\x00\xfa\x37\ \xe4\xfc\x4d\x08\xe0\xac\x91\xf3\x37\x21\x80\x64\x3c\x7f\x63\x08\ \x01\x6c\x35\x72\xfe\x26\x04\xf0\x22\x90\xf3\x37\x21\x80\x58\x20\ \xe7\x6f\x42\x00\x3b\x81\x9c\xbf\x09\x01\x9c\x04\x72\xfe\x26\x04\ \x10\x61\xe7\x6f\x42\x00\x0d\x76\xfe\x26\x04\x50\x61\xe7\x6f\x42\ \x00\x9b\xf1\xf9\xb7\x33\xf3\x53\xd2\x13\x80\xef\xb3\xbe\xfe\xa4\ \xe4\x7b\xd7\x9f\x93\x78\x77\x8a\xaa\xcd\xe1\x12\x5e\x83\x7d\x3a\ \x14\xed\x9b\x00\x80\xc4\x0b\x80\x0b\x8c\xcb\xc7\x63\xe6\xd9\x6d\ \xcc\x97\xdb\x98\xcd\x6d\xcc\xd7\xff\xc6\xfc\x59\xb4\xa5\x06\x5b\ \x95\x0f\x00\x1f\x80\x74\x89\x9a\xea\x36\x66\x78\x1b\xb3\xb6\x8e\ \x69\x2f\xf2\x00\x20\x84\x05\xdb\xb9\x0f\x70\x85\x25\x4b\x5c\x07\ \x50\x01\x2c\xda\xd9\x71\x00\xb5\x87\x65\xeb\xdc\x06\x50\x29\x2c\ \x5c\xe6\x34\x80\xac\x61\xe9\xe4\xa2\x00\xee\xcf\x0f\x47\x87\x01\ \xe4\x00\xcb\xa7\xdc\x05\xc8\x0b\xf8\x03\x19\x67\x01\xde\x0b\x20\ \x0d\x90\xb5\x40\x1a\xa0\x6b\x81\x34\x40\x57\x02\x69\x80\xbe\x04\ \xda\x00\x01\xfc\x89\x18\x80\x01\x18\x80\x01\x18\x40\x51\x07\x90\ \xc4\x01\x18\x20\xa7\x0e\x90\x51\x07\xe8\x09\x00\xb8\x7a\x16\xf7\ \x3f\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\ \x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\ \x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x20\ \x18\x03\xfc\x1f\x03\x30\x00\xf1\x18\x80\x01\x48\xc7\x00\x0c\xf0\ \x2f\x7c\x1e\x36\xaa\xe0\x1e\x55\xda\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x08\x45\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\xed\x50\x4c\x54\x45\x78\x00\xf8\xf8\xfc\xf8\x80\x08\ \xf8\xf8\xf4\xf8\xf8\xf8\xf8\x80\x00\xf8\x80\x0c\xf8\x80\x04\xf8\ \xf0\xe8\xf8\xa8\x58\xf8\xe8\xdc\xf8\xe8\xd4\xf8\xf0\xec\xf8\x90\ \x2c\xf8\xa0\x4c\xf8\xa8\x54\xf8\x90\x28\xf8\xa8\x5c\xf8\xc0\x84\ \xf8\xc0\x8c\xf8\xc8\x90\xf8\xc8\x9c\xf8\xd0\xa4\xf8\xd0\xac\xf8\ \xd8\xb4\xf8\xd8\xbc\xf8\xe0\xc0\xf8\xe0\xcc\xf8\x90\x24\xf8\xe8\ \xd8\xf8\xf0\xe4\xf8\x88\x10\xf8\x88\x18\xf8\xf8\xf0\xf8\x88\x1c\ \xf8\x90\x20\xf8\xb8\x7c\xf8\x98\x3c\xf8\xb0\x64\xf8\xe0\xc8\xf8\ \x98\x34\xf8\xc8\x94\xf8\x98\x30\xf8\xb0\x6c\xf8\xd0\xa8\xf8\xd8\ \xb0\xf8\xb0\x60\xf8\xb8\x74\xf8\xd8\xb8\xf8\xb8\x78\xf8\xa0\x48\ \xf8\xc0\x80\xf8\xe8\xd0\xf8\xc0\x88\xf8\xa0\x44\xf8\xc8\x98\xf8\ \xf0\xe0\xf8\x98\x38\xf8\xe0\xc4\xf8\xb0\x68\xf8\xf0\xf0\xf8\xd0\ \xa0\xf8\xb0\x70\xf8\xb8\x70\xf8\x88\x14\xf8\xb8\x80\xf8\x88\x20\ \xf8\xd0\xb0\xf8\xe8\xe0\xf8\xd8\xc0\xf8\xc0\x90\xf8\xa8\x50\xf8\ \x90\x30\xf8\xe0\xd0\xf8\x98\x40\xf8\xa8\x60\xf8\xc8\xa0\xf8\xa0\ \x50\xf8\xa0\x40\xf8\x19\x22\x9d\x39\x00\x00\x07\x13\x49\x44\x41\ \x54\x78\x5e\xed\xdd\x85\x92\xb3\xe8\x12\xc7\xe1\x7f\xa3\x71\x77\ \x77\x19\x77\xb7\xcf\x75\xf7\xfe\x2f\xe7\x54\xed\xf9\x6a\x76\x33\ \x48\x84\x77\xaa\x68\xe8\xdf\x1d\xe4\x09\x81\xd0\xc0\x0b\x28\xe6\ \x41\x00\x04\x40\x00\x04\x40\x00\x08\x31\x6c\x15\x40\x00\x04\x40\ \x00\x28\x46\x09\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\ \x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\ \x00\x08\x80\x00\x28\x4f\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\ \x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\xc0\x48\xd7\ \xcb\x4f\xf9\x9f\xd9\x51\x5f\xb3\x61\x5b\x2f\xa3\xce\x34\xff\x5c\ \x3e\x48\x1b\x71\x00\x48\x5f\x1f\x7d\xb7\xe1\x9e\xbd\x57\x5c\x76\ \xa3\x0c\x30\xac\x15\x07\x58\xd7\x20\xf9\xf8\x10\x49\x00\xbd\x76\ \x66\x63\xb3\xec\xbf\x0e\xf4\xa8\x01\xcc\x8f\x34\x6c\x93\xf5\x9c\ \x8a\x10\x80\xf1\x7b\x0f\x5b\x67\xe6\xe7\x11\x01\x78\x28\xbd\x60\ \xb7\x92\xa9\x08\x00\x64\x26\x16\x76\xce\x7e\x1e\x32\x07\x78\x98\ \x58\x08\xd4\xb8\xc5\x19\x40\x2f\xf7\x11\x34\xf3\x49\x67\x0b\x50\ \x1b\x41\x45\xb7\x09\x9e\x00\x99\x05\x14\x35\xba\x60\x09\x70\x08\ \x65\x69\x2d\x8e\x00\x13\xa8\xcb\xba\x63\x08\x70\x06\x85\x59\x6d\ \x7e\x00\x7d\xa8\x6c\x90\xe0\x06\x90\x82\xda\xa6\x06\x33\x80\x1a\ \x14\x77\xcc\x0c\xe0\x19\x8a\x33\xe7\xbc\x00\x6e\xa1\xba\x05\x2b\ \x00\x43\x83\xf2\x96\x9c\x00\x7e\x40\x7d\x03\x83\x11\xc0\x35\xd4\ \x87\x47\x46\x00\x33\xa8\x0f\x59\x46\x00\x59\xbc\x47\x73\x36\x00\ \xba\x09\x8f\xcc\x42\xfe\xc3\x75\xe3\xae\x9d\x4e\xb7\x5b\xf5\xe5\ \x69\xee\x23\xb6\xe8\x94\x0d\x40\x0b\xae\x8d\x9e\x1a\x8e\x19\x57\ \xe2\x60\xf6\x82\x0d\x2b\xb0\x01\x28\xbb\x8e\x79\x9b\xe4\x9e\xd1\ \xc8\x61\xb3\x52\x5c\x00\x92\x70\x94\xec\x92\x4f\xe9\x3c\x36\xa9\ \xce\x05\x60\x8c\x37\x15\x5a\xb4\xa6\x66\x07\xeb\x9b\x30\x01\x48\ \xe0\x4d\x33\x9d\xd6\x36\x2c\x62\x6d\x39\x26\x00\x0d\xac\x64\x56\ \x69\xa3\x4a\x58\xd7\x77\x26\x00\xe7\x2b\x00\x76\x83\x36\xac\x82\ \x35\x8d\x19\x00\x38\xc6\x61\xe6\x27\xda\xb8\x63\xf8\xd7\x67\x02\ \xb0\x72\x60\xaf\xd2\x16\xfd\x84\x6f\x26\x0f\x80\xcf\xf8\x4f\x33\ \xda\xa6\x94\x05\xbf\x34\x1e\x00\x07\xf8\xb7\xac\x1e\x60\xf7\xc1\ \xf5\x27\x70\x8c\xd7\xcc\x36\x6d\xd7\xb0\x0f\x9f\x46\x3c\x00\xa6\ \x78\xed\x58\xed\x30\x71\xca\x03\x40\x7b\x05\xe8\x3f\xd0\xb6\x5d\ \xc0\xa7\x24\x03\x80\x95\x8f\xf0\x35\xd0\xdf\x68\x67\xe7\x2c\x00\ \xaa\xc1\xa6\x78\x33\x78\xd7\x60\x01\x70\xff\x0a\x50\x52\x3d\x4e\ \x4c\xb0\x00\xd8\xc3\x9f\xb4\x0c\xed\xd0\x17\x78\xb6\x47\x1c\x00\ \x74\x1b\x7f\xfa\x45\xbb\x74\x03\xcf\x26\x2c\x00\xee\xf0\x27\xb4\ \x68\x97\x32\xf0\xec\x07\x0b\x80\x4a\xc0\x53\x37\x03\x5e\x2d\x88\ \x05\x40\x32\xe0\xf5\x5c\x1d\x5e\x55\x79\x00\x74\x02\x4e\xf1\x13\ \xf0\x68\x64\xf0\x00\xf8\x5d\xfd\x7f\xbf\x69\xb7\xba\xbc\x2e\x8e\ \xaa\xaf\x01\xf7\x0a\x46\x4c\x00\x2a\x70\xef\x0b\xc5\x04\xe0\x08\ \xae\xcd\x28\x2e\x00\x63\xb8\x55\xd0\xe3\x02\x90\x82\x5b\xda\x05\ \xc5\x05\xe0\x12\x2e\x99\x87\x14\x1b\x80\x02\x5c\xfa\x4a\xb1\x01\ \x68\xc2\xa5\x12\xc5\x07\x60\x1a\x68\x0e\xc4\x1f\xe0\x10\x8e\xcc\ \x25\xc5\x07\xe0\x61\x84\xb7\x69\x75\x8a\x11\x40\x11\x6f\xfb\xd8\ \xa6\x18\x01\x94\xf1\xb6\xab\x0c\xc5\x08\xa0\x6e\x62\x35\xbb\x4c\ \x14\x23\x80\x9a\x89\xd5\x0a\x3f\x28\x4e\x00\x25\x13\x2b\xd9\x1f\ \x0c\x8a\x11\x40\x22\x87\xd5\xa6\x69\xa2\x18\x01\x54\xfb\x58\x69\ \x54\x23\x8a\x11\x40\x3d\x8b\x95\xb4\x89\x4e\xf1\x01\x48\x94\x0b\ \x58\xc9\xde\x4f\x10\xc5\x05\x20\x5d\xbe\xb2\x1d\xcf\xcc\xd7\xdb\ \x99\x88\x02\x64\x12\x7f\xea\xa5\xd2\x77\xf5\xf2\xfe\xd4\x82\x47\ \xfd\x45\xb1\xd4\xe8\x45\x0d\x20\x63\x62\xbb\x46\xc9\xeb\x9b\x28\ \x01\xd4\xb1\x43\x7b\x97\xbd\xc8\x00\xcc\xb0\x53\x66\xfe\x2e\x22\ \x00\x1f\xb1\x6b\x57\xf3\x28\x00\x74\x11\xa0\xe4\x0d\x7f\x80\x25\ \x82\x64\x55\xd9\x03\xe4\x10\xac\x6f\x43\xde\x00\x86\x85\x80\x75\ \xd2\xac\x01\x5a\x08\x5c\xff\x8e\x33\xc0\x04\xc1\xd3\x4e\x18\x03\ \x2c\xa0\x20\xad\xc9\x16\x20\x63\x42\x45\x56\x9a\x2b\xc0\x01\xd4\ \x34\xce\x30\x05\x98\x41\x51\x39\xa6\x00\x23\xa8\xea\x9a\x25\x40\ \x17\xca\xb2\x7a\x1c\x01\x2a\x58\xcd\xb4\xb1\x73\x45\x8e\x00\x47\ \x00\x80\x71\xee\x78\x79\x38\x4f\x65\x74\x22\x22\x3d\xd1\x6d\x56\ \x27\xb9\x01\xb6\xae\xcd\x10\xc0\x38\x9d\x7e\x38\x79\x20\xb7\x7a\ \x8f\x79\x0b\x5b\x95\x67\x08\xe0\x9f\xf1\xe9\xcc\xc4\xe6\x99\x29\ \xf6\x00\xce\x52\x47\x5b\x10\x9c\x46\x10\x80\xa8\xfb\x0d\x9b\x36\ \x88\x24\x00\x51\xfd\x05\x1b\xd6\x8a\x26\x00\x25\xae\xb0\x59\xc7\ \x11\x05\x20\x63\x1f\x1b\xf5\x3d\x66\x77\x8a\x3a\xcb\x44\x16\x80\ \xce\xb1\x49\xcd\xe8\x02\xd0\x3d\x36\xa8\x1c\x61\x00\xe3\x16\xeb\ \xbb\x8f\x30\x00\xf5\x2c\xac\xed\x8a\x17\x80\xfa\x4b\x28\x59\x5e\ \x00\xea\x07\xa8\x83\x68\x03\x34\xb1\x2e\x8b\x17\x80\xfa\x4d\xc0\ \x8e\x38\x40\x1d\x6b\x32\x23\x0e\x60\xf4\xe1\x5f\x9f\x17\x80\xfa\ \x29\xfa\x38\xea\x00\x27\xf0\x6f\x2f\xea\x00\x43\x13\xbe\xfd\xcd\ \x0b\x40\xfd\x71\xe0\x5b\xe4\x01\xf6\xa3\x7a\x2e\xa0\x68\x71\xc5\ \x65\xe4\x01\x1a\xf0\xed\x2e\xf2\x00\x69\xf8\x65\xea\x91\x07\xe8\ \xc1\xaf\x02\x45\x1e\xe0\x01\x7e\x25\xa3\x0f\x60\xc0\xaf\x4a\xf4\ \x01\x74\xf8\x75\x13\x5a\x80\xcc\x61\x89\x94\x94\x80\x4f\x0b\x0a\ \x25\x40\xe6\xd3\xf3\x9e\x09\x34\xde\xff\x4d\x4d\xa5\x30\x02\x9c\ \x66\x4d\x95\x5f\xcf\x1c\x3e\x75\xc3\x08\x30\xc5\x9f\x70\xf2\xde\ \xb7\xd5\x15\x28\x8c\x00\x4f\xaf\x00\xb7\xa4\xa0\x12\xbc\xab\x84\ \x12\xa0\x86\xd7\x0e\x29\x78\xbf\xe0\x59\x5f\x0f\x25\x40\x5a\xed\ \xd0\xbe\x03\xcf\x26\x14\x4a\x00\xd2\xf0\xda\xe3\x7b\x1e\x05\xed\ \x5e\x48\x01\x6e\xf1\xda\x48\x7f\xc7\xb1\xf0\x8c\x42\x0a\x70\xaf\ \x72\x2b\x2d\xc2\x2b\x3b\x15\x56\x80\x6b\xfc\x9b\xf6\x99\x02\xa5\ \x5b\x3e\x7b\x80\xb0\x02\xcc\x15\xde\xd3\x5d\x87\x57\x23\x3d\x94\ \x00\xce\xf7\x6b\xd5\x28\x48\x3f\xe1\x55\x9d\x42\x09\xe0\x3c\x72\ \xf5\x13\xb4\x7b\x6d\x78\x75\x45\x21\x06\xc8\xe3\xbf\x9d\xd1\xee\ \xe5\xe1\x91\xd5\x0d\x33\xc0\x07\xac\x74\xa9\xfe\x09\x3b\x1c\x50\ \x98\x01\xea\x58\xc9\x6c\x06\x5c\x9e\xdd\xd9\x3d\x85\x1a\xa0\xab\ \xe8\x09\xaf\x4b\x78\xb4\xa7\x87\x1b\xc0\xb0\xb1\xda\xc7\x1b\xda\ \xa1\xb9\x0d\xf7\xac\x14\x85\x1b\x80\xb2\x78\x53\xa7\x47\x5b\x97\ \x19\xc3\x3d\xbb\x41\x61\x07\x48\xc2\x21\xf0\x99\xb6\x4c\xbf\x85\ \x7b\x66\x8d\x42\x0f\x50\x82\xa3\xc1\x05\x6d\x95\x91\x83\x47\x4b\ \x0a\x3f\x40\x1d\xce\xac\x4f\xb4\x45\xc3\x2b\xef\x39\x28\x03\x80\ \x2e\xdc\xda\xd7\x69\xd3\x7a\x0b\x78\x74\x4c\x1c\x00\xc8\x86\x5b\ \x9d\x2f\xb4\x59\x8d\x17\x78\x74\x49\x3c\x00\xb2\x70\x2f\xf9\x99\ \xd6\x37\x7c\x82\x47\x76\x8d\x98\x00\x24\xe1\x91\xbd\x7f\x43\x6b\ \x7a\x1c\xc0\x23\xab\x49\x5c\x00\x4a\xf0\xcc\x4e\xde\x91\x77\x46\ \xb5\x00\xaf\x46\x17\xc4\x06\xa0\x0e\xbf\x3a\xe7\x69\x72\xad\x7d\ \x3c\x80\x67\x67\x09\xe2\x03\xd0\xc5\x9a\xc6\xb3\xc7\x2e\xad\xd4\ \x3b\xd8\xef\xc0\x3b\xfb\x2b\xaf\xc5\xd4\x6c\xac\x4f\xdb\xcb\x3f\ \x95\x96\xd7\xd7\x95\xd2\x69\xf2\xf6\x05\xbe\x75\xda\xc4\x0b\x20\ \x0b\xa5\x1d\x0d\x89\x19\x40\x12\x0a\xcb\xb6\x88\xb8\x01\x94\xa0\ \x2c\xab\xc2\x71\x5d\xe1\x43\xa8\xaa\x98\x20\x62\x08\x90\x82\x9a\ \xbe\xb5\xb9\x2e\xaa\xaa\x21\x78\x66\xf2\x82\x88\x2b\xc0\x02\x41\ \x33\x8b\x5d\x22\xbe\x00\x33\x04\xab\x73\xd9\x23\xe2\x0c\x40\x27\ \x7f\x99\xd8\x35\xed\x57\x8b\x88\x98\x03\x10\xf5\xce\x0b\xd8\x21\ \x2d\x57\x1d\x12\x31\x05\x70\x9e\xdd\x8c\xb1\x55\xe3\xfd\x13\x9d\ \x88\x58\x03\x38\x57\x0d\xd7\xb0\x49\x66\xa1\x58\x49\x93\x23\x7e\ \x00\xce\x8c\x76\x25\x99\xf5\x53\xd0\x3a\xf9\xcb\xe6\x90\x1c\x71\ \x06\x70\x96\x6a\x5c\x4f\x8e\xce\xa6\xd9\x51\xdf\xd2\x6c\xd8\xd6\ \x60\x9c\x5d\xfc\x9d\xbb\xbf\x3c\x98\xf7\xc8\x11\x03\x00\xee\x09\ \x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\ \x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\ \x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x40\x0c\x13\ \x80\x7f\x12\x00\x01\x88\x6f\x02\x20\x00\x02\x20\x00\x02\xf0\x3f\ \x0e\x78\x2e\x0b\xe6\xfc\x06\xa8\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x0a\x87\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x34\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x88\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x35\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x89\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x36\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x84\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x85\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x86\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x33\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ \x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x14\x87\ \x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x18\x32\ \x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x1e\x8c\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x04\xca\ \x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xdc\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/opengl/textures/textures_rc3.py0000644000076500000240000012341412536324427023752 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:47:34 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x04\xc6\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\xa5\x50\x4c\x54\x45\x00\x7c\xf8\xf8\xfc\xf8\x00\x80\ \xf8\x40\xa0\xf8\xc0\xe0\xf8\xc8\xe4\xf8\xd8\xec\xf8\xe8\xf4\xf8\ \xf0\xf8\xf8\x10\x88\xf8\xe0\xf0\xf8\xa0\xd0\xf8\xb8\xdc\xf8\x18\ \x8c\xf8\x68\xb4\xf8\x78\xbc\xf8\x80\xc0\xf8\x50\xa8\xf8\xb0\xd8\ \xf8\x58\xac\xf8\x60\xb0\xf8\xd0\xe8\xf8\x28\x94\xf8\x30\x98\xf8\ \x38\x9c\xf8\x08\x84\xf8\x48\xa4\xf8\x88\xc4\xf8\x98\xcc\xf8\x08\ \x80\xf8\x70\xb8\xf8\xa8\xd4\xf8\x50\xa4\xf8\x38\x98\xf8\x20\x90\ \xf8\x18\x88\xf8\x90\xc8\xf8\xf8\xf8\xf8\x10\x84\xf8\xa0\xcc\xf8\ \x70\xb4\xf8\xe0\xec\xf8\xb8\xd8\xf8\x80\xbc\xf8\xf0\xf4\xf8\xc0\ \xdc\xf8\x68\xb0\xf8\x58\xa8\xf8\x28\x90\xf8\xc8\xe0\xf8\x40\x9c\ \xf8\xd0\xe4\xf8\x90\xc4\xf8\xd8\xe8\xf8\x30\x94\xf8\x65\x60\x50\ \xf2\x00\x00\x03\xdc\x49\x44\x41\x54\x78\x5e\xed\xdd\xd7\x8a\x23\ \x59\x10\x84\xe1\x38\xa7\xbc\x93\xf7\xb6\xdd\xf8\x59\x6f\xde\xff\ \xd1\xf6\x66\xa1\x33\x6f\x4a\xbd\x2c\x34\x9a\x13\xf1\x3f\x80\x2e\ \xbe\x02\x51\x91\x08\x84\x40\x1e\x04\x20\x00\x01\x08\x40\x00\x01\ \x84\x79\x00\x01\x08\x40\x00\x81\x28\x01\x08\x40\x00\x02\x10\x80\ \x00\x04\x20\x00\x01\x08\x40\x00\x02\x10\x80\x00\x04\x20\x00\x01\ \x08\x40\x00\x02\x10\x80\x00\xee\x21\x01\x08\x40\x00\x02\x10\x80\ \x00\x04\x20\x00\x01\x7c\xe9\x26\xdb\x1d\x29\x40\x9d\x1f\xe7\x03\ \x00\x0c\x84\x00\x65\x37\xd9\x46\xfc\xdb\x9e\x01\xc0\x3f\xf8\x67\ \xb8\x28\x00\xfc\x83\x67\x01\xf0\x0f\xfe\xa1\x81\x89\x09\xa0\x35\ \x0f\x9e\x11\xa0\x1a\x60\x22\x04\x58\x82\x1b\xe0\x0a\x6e\x80\xaa\ \x21\x07\x98\x83\x1b\xa0\x03\x37\x40\xdb\x90\x03\x1c\xc0\x0d\xd0\ \x81\x1b\xa0\xfd\x48\x0e\x70\x00\x37\x40\x07\x6e\x80\xb6\x21\x07\ \x78\x00\x37\x40\x07\x6e\x80\xaa\xa1\x06\xf0\x1b\x20\x12\x02\x5c\ \x61\xba\xd0\x01\xf8\x2b\xd0\x53\xcd\x07\xb0\x82\xa9\x0f\x74\x00\ \x3d\x4c\xab\x40\x07\x50\x3f\x19\x80\xa6\xe2\x03\xf8\x0c\x53\x17\ \xe8\x00\x7e\x8b\x06\x20\x0b\x7c\x00\x1b\xbc\x16\x4b\x3e\x80\x19\ \x4c\xd3\x40\x07\x50\x9e\xdd\x2b\x00\x1f\x40\x06\xd3\x22\xd0\x01\ \x9c\x60\x3a\x04\x36\x00\x3f\x02\xcf\x25\x1f\xc0\x12\xa6\x59\xa0\ \x03\xe8\xe1\x46\x10\x1b\x80\x7f\x07\xc6\xd7\x40\x07\x30\x85\x69\ \x1e\xe8\x00\xfe\x8a\x06\x60\xdf\xf2\x01\x64\x30\x1d\x03\x1d\x40\ \x07\xd3\x26\xd0\x01\xf8\x3b\x70\xce\x07\x30\xf1\x67\x20\x3a\x80\ \x22\xba\x33\x10\x1f\xc0\x16\xa6\x53\xa0\x03\x38\xc1\xb4\x0d\x6c\ \x00\x7e\x04\xc5\x82\x0f\xe0\x67\x98\x26\x81\x00\x60\xf4\x1b\x90\ \x0f\x60\xeb\x0f\xe1\x74\x00\x9f\x60\x7a\x0c\x74\x00\xf5\x33\x4c\ \x39\x1f\xc0\x05\xa6\x2c\xd0\x01\x94\x11\xa6\x82\x0f\xe0\xe0\xcf\ \x20\x74\x00\x0b\x98\x62\xc9\x07\xf0\xab\x5f\x81\x74\x00\x2f\x30\ \x9d\x5b\x3a\x00\x7f\x06\xb9\x04\x3a\x80\x0b\x4c\x1f\x2b\x3a\x80\ \x32\xfa\x43\x28\x1d\xc0\x1c\xa6\xa1\xa6\x03\xc8\x61\x3b\x05\x3a\ \x80\x2d\x4c\x4f\x81\x0e\xa0\x83\xed\x4a\x07\xf0\xe1\xc9\x1f\x02\ \xe9\x00\xfe\x84\xad\xa7\x03\xf8\xde\xf8\x19\x4c\x07\x30\x85\xad\ \xa0\x03\x68\xcf\x7e\x06\xd3\x01\xac\xfc\x0c\xa6\x03\x28\xa3\x9f\ \xc1\x74\x00\xbf\xf8\x19\x4c\x07\xf0\x07\xfc\x0c\xa6\x03\x38\xf8\ \x19\x4c\x07\x90\xc3\xcf\x60\x3a\x80\x9d\x9f\xc1\x74\x00\x3d\xfc\ \x0c\xa6\x03\xd8\xf9\x19\x4c\x07\xd0\xc3\x76\xe5\x03\xd8\xfa\x19\ \x4c\x07\xb0\x80\xad\xe7\x03\xd8\xfa\x19\x4c\x07\xb0\x80\xad\xe0\ \x03\x78\xf4\x33\x98\x0e\xa0\x87\x6d\xcd\x07\xf0\x3b\x4c\x0f\x81\ \x0e\x20\x87\xad\xe0\x03\xc8\xfc\x25\x94\x0e\xa0\x80\xed\x27\x3e\ \x80\xb9\x7f\x09\xa4\x03\x58\x47\x98\xae\x7c\x00\x2b\x3f\x03\xe9\ \x00\xda\x08\xd3\x0b\x1f\xc0\x05\xa6\x7d\x4d\x07\x50\xed\xfd\x29\ \x98\x0e\x60\x06\x53\x2c\xe9\x00\x3e\x3c\xfb\x19\x44\x07\xf0\x09\ \xb6\x9c\x0f\x60\x03\xd3\x2e\xd0\x01\xf4\xb0\x5d\xf9\x00\x0e\xfe\ \x16\x4e\x07\xb0\x86\xed\xc4\x07\xb0\x82\x69\x08\x74\x00\xfe\x25\ \xe8\xc4\x07\x70\x84\x69\x08\x7c\x00\x03\xde\xb5\xf2\xde\x00\xae\ \x78\xdf\xfa\x7b\x03\xc8\xc8\x01\xd6\x20\x07\x98\x90\x03\xd4\x7b\ \x72\x80\x17\x90\x03\x6c\xc8\x01\x72\x90\x03\x2c\xc9\x01\xaa\x48\ \x0e\xb0\x06\x39\x40\x88\xec\x00\x7f\xeb\x4b\x90\x1c\xe0\xc8\x0e\ \xd0\xb3\x03\xb4\xec\x00\xa1\x61\x07\xc8\xd8\x01\x3e\x53\x03\xfc\ \xff\xf8\xfe\x68\x49\x00\x02\x10\x80\x00\x04\x20\x00\x01\x08\x40\ \x00\x02\x10\x80\x00\x04\x20\x80\x1a\xa3\xd5\xc9\x03\xb4\x18\xad\ \x4a\x1e\xa0\xc0\x68\x65\xf2\x00\x0b\x8c\x96\x27\x0f\x70\xc4\x68\ \x5d\xf2\x00\x4b\x8c\x36\x4d\x1e\x60\xc0\x68\x59\xea\x00\x6b\x8c\ \xb7\x4f\x1d\xe0\x1b\x6e\x94\x27\x0e\x30\xe0\x46\xab\xb4\x01\x4e\ \xb8\xd5\xbe\x4a\x19\xa0\x1a\x70\xb3\x69\xca\x00\x4b\xdc\x2e\x96\ \xe9\x02\xcc\xf0\x96\x36\x75\xaa\x00\x17\xbc\xad\xac\x4e\x12\x60\ \xbd\xc3\x5b\xdb\x14\xc9\x01\xd4\x8b\x79\xc4\xdb\x8b\xcb\xfc\x07\ \x06\x98\x4d\x7d\xd3\xcb\xf2\x31\xe2\xbf\xd6\x64\x93\xd7\x4f\x28\ \x7f\x28\x80\x78\x97\x3f\x11\xf1\x00\x02\x10\x80\x00\x04\x20\x00\ \x01\x08\x40\x00\x69\x27\x00\x01\x08\x40\x00\x02\x10\x80\x00\x04\ \x20\x00\x01\x08\x40\x00\x02\x10\x80\x00\x04\x20\x00\x01\x08\x40\ \x00\x02\x10\x80\x00\x04\x20\x00\x01\x08\x40\x00\x02\x10\x80\x00\ \xc8\x32\x00\x02\x10\x80\x00\xa8\x13\x80\x00\xa8\x13\x80\x00\xfe\ \x01\x16\xa0\xe8\xd8\xab\x02\x68\x83\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x07\x0e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\x8d\x50\x4c\x54\x45\x78\xfc\x00\xf0\xfc\xe8\x80\xfc\ \x08\x80\xfc\x00\xf8\xfc\xf0\xf8\xfc\xf8\x90\xfc\x28\x98\xfc\x38\ \xa0\xfc\x40\xa8\xfc\x50\xa8\xfc\x58\xb0\xfc\x68\xb8\xfc\x70\xb8\ \xfc\x78\xc0\xfc\x80\xc0\xfc\x88\xc8\xfc\x90\xd0\xfc\xa0\xd0\xfc\ \xa8\xd8\xfc\xb0\xd8\xfc\xb8\xe0\xfc\xc0\xe0\xfc\xc8\xe8\xfc\xd0\ \xe8\xfc\xd8\xf0\xfc\xe0\x88\xfc\x10\x88\xfc\x18\x90\xfc\x20\x98\ \xfc\x30\xb0\xfc\x60\xc8\xfc\x98\xa0\xfc\x48\xe0\xfc\xd0\xb0\xfc\ \x70\xc8\xfc\xa0\xf0\xfc\xf0\x98\xfc\x40\xd0\xfc\xb0\xe8\xfc\xe0\ \xd8\xfc\xc0\x88\xfc\x20\x80\xfc\x10\xa8\xfc\x60\x90\xfc\x30\xc0\ \xfc\x90\xa0\xfc\x50\x31\x3a\xb9\x29\x00\x00\x06\x3c\x49\x44\x41\ \x54\x78\x5e\xed\xdd\x67\x73\xdc\x36\x10\x06\x60\x54\xf6\xde\xdb\ \x35\x15\x77\xe7\xff\xff\xbc\x24\xf6\x38\x8a\xe6\x44\x91\x77\x22\ \x66\x16\xdc\x7d\x3f\xcb\x33\xe4\x63\x10\x3c\xa2\x2d\xd3\xc8\x43\ \x00\x04\x40\x00\x04\x40\x00\x5a\x33\x84\x79\x0d\x40\x00\x04\x40\ \x00\x1a\x51\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\ \x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\ \x00\x08\x80\x00\x3e\x16\x02\x20\x00\x02\x20\x00\x02\x20\x00\x02\ \x20\x00\x02\x20\x00\x02\x20\x00\x65\x12\x40\x29\xf0\x00\x9f\x24\ \x13\xe3\x74\x78\x3e\x07\xc7\x28\x4e\xb3\xc7\xa2\xac\x9a\xb6\xeb\ \xf9\x2a\x17\xc5\xfb\xae\x6d\xea\xaa\x2c\xf2\xc7\xd3\xcf\x34\x89\ \xa3\xf0\x18\xf8\x67\xcf\x3d\x38\xd3\x38\x08\xc9\x98\xf8\x0c\x1c\ \xa0\x11\x6c\x2e\x52\x0c\xe3\xe4\x38\x07\xd7\x3b\x9f\xfd\x20\x38\ \x86\x0f\xd1\xd5\xfd\x2d\xe7\x0c\x1c\x20\x62\x86\x33\x01\x07\x48\ \x4c\x03\x84\xc0\x01\x32\xd3\x00\x05\x70\x80\xdc\x34\x00\x07\x0e\ \x50\x19\x06\x70\x34\x70\x80\xc6\x30\x40\x00\x1d\xa0\x33\x0c\xf0\ \x13\x3a\x00\x37\x0c\x50\x41\x07\xd0\x86\x01\x3e\x83\x07\x10\x46\ \x01\xa4\x06\x0f\x30\x1a\x05\x18\xe0\x03\x38\x46\x01\x1c\xf8\x00\ \xae\x51\x80\x03\x7c\x00\xcf\x28\x80\x0b\x1f\xc0\xc7\x0e\x70\xc4\ \x0e\xf0\x80\x1d\x20\xc6\x0e\x90\x62\x7f\x0b\x64\x46\x01\x7e\xc0\ \x07\xc8\xb1\xff\x10\x2a\x8c\x02\x4c\xf0\x01\x4a\xec\xdf\x02\x15\ \xf6\xaf\xc1\x86\x19\x8d\x02\x0f\x70\xc1\xfe\x16\x68\x4d\x02\xc8\ \x16\x3e\x40\x77\x35\x1f\xf8\x7b\x42\xf0\xbf\x19\xc1\x30\x8a\xe3\ \x24\x4d\xb3\xd3\x29\x2f\x8a\xb2\xaa\xea\xe6\x9f\xd4\x5f\xaa\xb2\ \x2c\xfe\x9d\x12\xcd\xb2\x34\x49\xe2\x38\x0a\xc3\xe3\xf7\xc0\xf7\ \xcf\x9e\xe7\xba\x07\xc7\x99\xbe\x8e\xc3\x20\x12\x0d\x1f\xa0\x7f\ \x05\x10\x6b\xa3\x81\x0f\x90\xe0\x03\xe0\xaf\x00\x52\xec\x00\x19\ \x3e\x80\xa7\x57\x00\x27\x7c\x00\xea\x15\xc0\x23\x76\x80\x1c\x3b\ \x40\x81\x1d\xa0\xc4\x0e\x50\x61\x07\xf8\x82\x1d\xa0\xc6\x0e\xd0\ \x60\x07\x68\xb1\x03\x74\xd8\x01\x7a\xec\x00\x1c\x39\x00\x01\x28\ \xec\x00\x1a\x39\x80\xc4\x0e\x20\x90\x03\x10\xc0\x80\x1d\x60\xc4\ \x0e\x30\x61\x07\x70\xb0\x03\xfc\xc0\x0e\x70\xc0\x0e\xe0\x62\x07\ \xf0\x30\x02\x2c\x6f\xf4\xe5\xf5\x29\x0e\x3c\xe7\xd7\x6e\x61\xf9\ \x6d\x9c\x1c\xd7\x7f\x48\x8b\xfa\x69\x87\x00\xfe\x15\xc0\x25\xf3\ \x27\x36\x93\xc9\x4f\x4a\xb5\x67\x00\x55\x04\x03\x5b\x88\x7c\x4e\ \x2f\x3b\x9a\x1d\x0e\xfe\x7f\xf7\xbe\x60\xeb\x32\xc6\xdd\x5e\xd6\ \x07\x1c\xff\x00\xd4\x47\xc1\x6e\x89\x7b\x52\xbb\x58\x22\x13\xfe\ \x36\xc9\x1c\x76\x73\x86\x54\xed\x00\x20\xd2\x5a\xb7\x2f\xff\xf9\ \x06\x08\x80\x2f\x93\x8b\xf5\x27\x97\xdd\x9f\xaf\xe5\x02\x00\xf8\ \x95\xa2\xee\xc4\x3e\x96\x80\x5b\x07\x50\xb3\x4d\x33\x5c\x35\x02\ \x74\xab\xc5\x63\xcb\x00\x3e\xb1\xad\x73\xe6\xfa\x25\x28\xb7\xcc\ \x38\xdc\x26\x80\x8c\x19\x15\x40\xba\x6d\xce\xe9\xed\x01\x88\x99\ \x11\x01\x65\x0d\x40\xc8\x8c\xc4\xb7\x06\x20\x60\x66\x92\xda\x02\ \xe0\x1b\x02\x90\x95\x25\x00\x1e\x33\x94\x49\xd9\x01\x70\x60\xa6\ \x12\xd9\x01\x30\x19\x03\x90\x17\x2b\x00\x06\x66\x2c\xcf\x56\x00\ \x48\x66\x2e\xb5\x05\x00\x8a\x19\x8c\x67\x01\x40\xcf\x4c\xa6\x81\ \x0f\xd0\xce\x74\x60\x87\x20\xc9\xab\xb6\x7f\xd2\x5a\xf3\xbe\xab\ \x4e\x71\x70\x4f\x6f\x19\xc0\x07\xa8\xaf\x01\xc4\x39\x6d\xde\xb2\ \xe2\x65\x38\xde\x08\x20\x14\x78\x80\x92\xbd\x8e\xf4\x0b\xa5\xe7\ \xd3\x84\xe2\x26\x81\x5c\x6b\xab\x0e\x55\x1d\x13\xbe\x24\xa6\xb2\ \xd1\x40\x37\x08\xe3\x58\xdd\xf1\xb4\xca\x4c\xa5\xeb\x5b\x81\xe4\ \xda\x9a\x83\x95\x45\xba\x5a\x8d\xfb\xab\x05\x4a\xe8\x00\xd1\x7d\ \x23\xfa\x8f\x6b\x1b\x41\x04\x1d\xa0\x0f\xe5\x5d\xc3\xf9\xed\xca\ \x9e\xe0\x00\xbf\xbe\x40\x7b\xbe\x6b\x24\xbb\x3f\xac\x02\x90\x0a\ \x3c\x80\xd6\x75\x7a\x0f\x9c\x5a\x27\xd0\xec\xb7\xc4\x06\x9f\xd6\ \x00\xe4\xfb\x05\xd0\xdd\xc0\x96\x93\xc0\x06\x30\x7f\x0e\x59\x00\ \x1b\xc0\xfc\x98\xba\xbb\x6b\x00\x35\x2e\x02\x38\xbb\x06\xd0\xb9\ \xed\x35\x46\xcc\x0f\x2a\x0f\x66\x01\xe0\xf7\x83\x02\x36\x80\xf9\ \x61\x75\xb9\x77\x80\x14\x7b\x0b\xe8\x17\x00\xc6\xbd\x03\x68\x17\ \xf5\x6b\x70\xf9\x19\x70\x77\x0f\xd0\x00\x2f\xb6\x66\x3e\x02\xe3\ \xb7\xc0\xfa\x15\x06\xf1\xfe\x01\x42\x8c\xe3\x01\xeb\x57\x1a\xb6\ \xfb\x07\x28\xcd\xfe\x10\x84\x0f\xd0\xc2\xae\x36\x67\x3e\x9f\x2d\ \xae\x36\x67\xbe\x5e\x5b\x86\x00\x40\xbd\x07\xd0\x21\x00\xd0\x0b\ \x5d\x00\xea\x16\x10\x63\x00\xe8\xd9\x7c\x6a\x0c\x00\xdd\x7b\x03\ \x82\x18\x00\xea\x79\x80\x10\x32\x40\xeb\x73\xe3\x43\xe3\x2d\x5c\ \x00\x1e\xca\xad\x36\xb8\x25\x36\x2e\x94\x4c\xbf\x31\xc6\x04\x37\ \x5c\xaf\xae\x80\x0a\xf0\x69\xda\x72\x41\xbb\x33\x3f\x1e\x0a\x03\ \x60\x7e\x97\x8c\xec\x36\x00\x50\x72\x0e\x20\x05\x00\xb0\xd0\x66\ \xff\x32\xb9\xf7\x76\x50\x50\x01\xf2\x4d\x0b\x43\x47\x73\x00\x27\ \x0d\x15\xa0\xdf\x74\x63\xcf\xd7\xd9\xcf\x00\x00\x00\xcb\xf3\x79\ \x91\xb1\x51\xf1\x12\x30\x40\xf8\x02\x20\x6b\x43\x43\xa2\x9e\x06\ \x0c\x50\xb0\x97\x8c\xfc\x43\x00\x5c\xcc\x15\xd9\x82\x0c\xc0\xb7\ \xdb\xe4\x9a\xce\xbe\x02\x21\x03\x68\x67\xab\x6b\xe5\xc3\xdc\x03\ \x00\x06\x60\xf9\xc1\x95\xe5\xe6\xef\xc0\xa1\x07\x04\xb0\x7c\x6e\ \x86\xb8\xfb\x79\xed\xe4\xdc\x47\x00\x70\x00\xfe\xfa\xc2\xc7\x6e\ \xdb\x25\x52\x21\xfc\xfa\x02\x07\xb6\x85\x40\x34\xd7\x01\x40\x03\ \x58\xbe\xf4\xb1\xdd\x6e\x24\xc4\x51\x16\x00\x94\x57\xdd\x56\x7d\ \x33\x40\x25\xdf\x04\x18\x7b\x6d\x01\xc0\xd3\xd5\xc5\x8b\xfc\x46\ \x80\x2f\x82\xbd\x15\x71\xd1\x30\x01\x96\xbb\xaf\xf0\xa6\xa6\x5b\ \xc8\xb7\xef\xbf\xd2\x50\x01\x96\xfb\x2f\xa7\x59\x0f\x90\xcc\xdc\ \x7f\xad\xe1\x02\x2c\x4f\xea\xcb\x68\x65\x23\xe8\x5d\xf6\x66\x86\ \x46\xc3\x03\x58\xfe\x25\x70\xf3\xde\xc9\xb9\x9d\x93\x63\xa7\xa1\ \x03\x2c\x2f\xf3\x9e\xb2\xa5\x56\x90\x4f\x73\xff\xb4\xd3\x16\x01\ \x3c\xb0\xb9\x0c\x51\x33\x0f\xc0\x93\x71\xe9\x14\x39\xf8\x00\xcb\ \xeb\xdc\xa7\xa8\x52\xfa\x3a\x5d\xf6\x2c\xe7\xd8\x64\x62\x59\x7d\ \x01\xce\xde\x8f\x3c\x1c\xb3\xb2\xe5\x7f\xfe\xba\xc9\x93\xf3\xc0\ \xe6\x33\x54\x1a\x00\x80\x81\xf3\x73\xa4\x18\xc6\x41\xb2\xa5\xb8\ \xbd\xb6\x0e\xe0\xc8\x36\x8b\x48\x6d\xac\x2f\x70\xda\x0c\xc0\xeb\ \xb4\x8d\x00\xed\x46\x00\x43\x6e\x6b\x7d\x01\xb1\x05\x80\x0c\xb9\ \xb6\x15\xc0\xdb\xe0\xf6\xbf\x77\x16\xd7\x17\x88\x3f\x0c\xe0\xb7\ \x56\x57\x98\x28\x3e\x06\x20\x83\x8b\xe5\x25\x36\xfa\x8f\x00\x8c\ \x09\xb7\xbf\xc8\x4a\x34\xdc\x09\x20\xcf\xe5\x3e\xaa\xcc\xa8\xdc\ \xbd\xe3\xee\xbd\xac\xdf\x51\x99\x9d\x2e\x71\x6e\x01\x10\x7e\xce\ \x6d\xab\x33\xb4\x6c\x90\x79\x72\x0d\xc0\x70\x4e\x2a\x65\x67\xa1\ \xa5\xe5\xd4\xa9\x3f\xbd\xa3\x30\xb8\x61\xde\xc1\xaa\x34\x65\x20\ \xea\x52\xa4\x91\xef\x1d\xa6\x41\x08\xc9\xa4\x18\x27\xc7\xf5\xfc\ \x28\x2b\x5b\x05\xb0\xd4\xd6\xbe\x43\x00\x04\x40\x00\x04\x40\x00\ \x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\ \x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\ \x00\x04\x40\x00\x04\x40\x00\x08\x43\x00\xbf\x42\x00\x04\x80\x37\ \x04\x40\x00\x04\x40\x00\x04\xf0\x37\x14\x0d\x3b\x00\xae\xfd\xb0\ \xa7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x08\xa7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\xf0\x50\x4c\x54\x45\xf8\x00\x78\xf8\xfc\xf8\xf8\xf8\ \xf8\xf8\x0c\x80\xf8\xf4\xf8\xf8\x00\x80\xf8\x08\x80\xf8\xe0\xf0\ \xf8\x1c\x88\xf8\x24\x90\xf8\x28\x90\xf8\x2c\x90\xf8\x38\x98\xf8\ \x44\xa0\xf8\x5c\xa8\xf8\x60\xb0\xf8\x68\xb0\xf8\x6c\xb0\xf8\x84\ \xc0\xf8\x94\xc8\xf8\x04\x80\xf8\x9c\xc8\xf8\xa8\xd0\xf8\xac\xd0\ \xf8\xbc\xd8\xf8\xcc\xe0\xf8\xd0\xe8\xf8\xd8\xe8\xf8\xdc\xe8\xf8\ \xe4\xf0\xf8\xe8\xf0\xf8\xf0\xf8\xf8\x14\x88\xf8\x18\x88\xf8\x98\ \xc8\xf8\xc4\xe0\xf8\xec\xf0\xf8\xb8\xd8\xf8\x54\xa8\xf8\x8c\xc0\ \xf8\xd4\xe8\xf8\x64\xb0\xf8\x78\xb8\xf8\x7c\xb8\xf8\xc8\xe0\xf8\ \x10\x88\xf8\x90\xc8\xf8\xb4\xd8\xf8\x10\x80\xf8\x3c\x98\xf8\xc0\ \xe0\xf8\x70\xb8\xf8\x40\xa0\xf8\xd0\xe0\xf8\x80\xc0\xf8\x48\xa0\ \xf8\x88\xc0\xf8\x4c\xa0\xf8\x50\xa8\xf8\x20\x90\xf8\x30\x90\xf8\ \xa0\xd0\xf8\xa4\xd0\xf8\x30\x98\xf8\x34\x98\xf8\xe0\xe8\xf8\x60\ \xa8\xf8\xf0\xf0\xf8\xb0\xd0\xf8\xc0\xd8\xf8\x20\x88\xf8\xb0\xd8\ \xf8\xa0\xc8\xf8\x90\xc0\xf8\x74\xb8\xf8\x40\x98\xf8\x58\xa8\xf8\ \x80\xb8\xf8\x50\xa0\xf8\x70\xb0\xcd\x8c\x3c\xfc\x00\x00\x07\x72\ \x49\x44\x41\x54\x78\x5e\xed\xdd\xe7\x72\xa5\x3a\x16\x86\xe1\x6f\ \x89\xb4\x73\xce\x39\x3b\xe7\x9c\xdd\x39\x9e\x99\xfb\xbf\x9b\xa9\ \xea\x2a\xff\xe8\x33\x48\x80\xb7\x7e\x08\xb4\xde\x0b\x70\x95\x9f\ \x0d\x08\x04\x08\x90\xe5\x81\x01\x18\x80\x01\x18\x80\x01\x08\x16\ \xf6\x37\x00\x03\x30\x00\x03\x90\x45\x31\x00\x03\x30\x00\x03\x30\ \x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\ \x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x18\x10\x03\x30\x00\x03\ \x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x4c\x83\xc1\x72\ \xfd\xb9\xd3\x3e\xb1\x0c\x60\xfc\xe5\xe9\xba\x7a\xf3\x32\x6f\xe1\ \xad\xcd\xca\x12\x00\xd1\x5f\xec\x95\x4e\xf1\xff\xcd\xd7\xd9\x07\ \x70\x7b\x07\x67\x2d\x48\xab\xbb\x99\x06\x18\x2f\xee\x7c\xa8\x2b\ \xf4\x33\x0b\xf0\xa9\x5d\xf6\x10\x5d\xab\x91\x4d\x80\x7e\xd5\x47\ \xcc\x4a\xa3\xec\x01\x74\x5f\x91\x20\x27\xc8\x16\x80\x68\xe7\x91\ \xa8\x1d\xca\x14\xc0\x73\x1e\xc9\xda\xa7\x2c\x01\xf4\x8a\x48\x58\ \x8d\x32\x04\x30\xba\x47\x74\x7e\xb1\x5c\xb9\x68\xec\x34\x17\xed\ \xc5\x71\xe3\xe7\x01\x65\x07\x40\x34\x7c\x28\xf3\x0a\x95\x1f\xbd\ \x71\x66\x2f\x86\x0e\x8b\x50\x95\xaf\x75\x57\x59\xbe\x1a\x14\xfb\ \x1e\xe4\x15\xaf\x77\x33\x7e\x39\xdc\x2f\x42\x9a\x53\xbb\xca\xfc\ \x7c\xc0\x4e\x0b\xb2\xf2\x0b\x37\xf3\x13\x22\x93\x1b\xc8\x7a\xe9\ \x5a\x30\x23\x74\x3e\x87\xa4\x87\x8e\x0d\x53\x62\xcd\x16\xc2\x73\ \x76\x04\x65\x1f\xc0\xfd\x08\x49\xf7\x81\x0d\x93\xa2\xc1\x0b\xc2\ \x3b\xea\x58\x31\x2b\x7c\x35\x47\x78\x97\x63\xb2\x01\xa0\xe7\x20\ \xbc\x03\x22\x1b\x00\x9e\x5b\x08\xcd\xe9\x92\x15\x00\x3b\x08\x6f\ \x3e\x20\x2b\x00\x1a\x08\x2f\x3f\x22\x2b\x00\x6e\x11\xde\xe3\x84\ \x2c\x00\x90\xff\xff\x85\x09\x59\x00\x20\xdf\xff\xf3\x63\xb2\x02\ \xe0\x3b\xc2\x9b\x8d\xc8\x0a\x80\x75\x0b\xa1\xf9\x87\x64\x05\xc0\ \x95\x83\xf0\x3a\x64\x05\x40\x30\x47\x78\x75\xb2\x02\xc0\x7d\x44\ \x78\xaf\xc2\x0e\x80\x2a\xc2\x73\x46\x64\x05\xc0\x02\x92\x16\x64\ \x05\x40\xbf\x85\xf0\xca\x64\x05\xc0\x2a\x87\xf0\xfc\x91\x1d\x00\ \x15\x48\x6a\x90\x15\x00\xdf\x20\xe9\xab\xb0\x02\x60\x35\x83\xa4\ \x67\xb2\x02\x60\x03\x49\x2f\x64\x05\xc0\x37\xc8\xfa\x6c\x05\x80\ \xfb\x00\x49\x45\xb2\x02\xe0\x1a\xb2\xda\x56\x00\x04\x3e\x24\xcd\ \x5c\x2b\x00\x36\x90\xb5\x4f\x36\x00\x1c\x42\xda\xd0\x0a\x80\x1b\ \xc8\x2a\x91\x0d\x00\x4b\x48\x3b\xb6\x02\xa0\x0c\x69\x81\x0d\x00\ \x4b\x48\x7b\x25\x1b\x00\xee\x20\xed\xc0\x06\x80\xa1\x07\x69\xe7\ \x36\x00\xd4\x21\xcd\x11\x16\x00\x4c\x1d\x48\x2b\x93\x05\x00\xc7\ \x90\x77\x60\x03\x40\x01\xf2\x4e\x2c\x00\xe8\x43\xd1\xc4\x02\x80\ \x0b\xc8\x9b\x53\xf6\x01\xc4\x1c\xf2\xca\x16\x00\xac\xa1\xe8\xc2\ \x02\x80\x0a\x14\x35\x2d\x00\x38\x82\xa2\x5e\xf6\x01\x96\x50\x35\ \x22\x69\xa3\x4e\xa3\x7a\x59\x9c\x3b\xbe\xe7\xcf\x72\x85\xb3\x8f\ \x8d\xce\x20\x95\x00\xfb\x50\xe4\x09\x0a\xed\x43\xf3\x3e\x6c\xc3\ \x71\xee\x76\xfa\xa9\x03\x28\x22\xe9\x28\x38\x6d\x96\x20\x2f\xdf\ \x08\x52\x05\x10\x00\x48\x34\x19\x10\xd4\x1d\xa8\xf3\xca\xe7\x29\ \x02\x68\x43\xd5\x1d\xfd\xab\x49\xbd\x85\x18\x95\x97\xa9\x01\xa8\ \x42\xd5\x1e\xfd\x5d\xd3\x41\xcc\x36\x93\x94\x00\xe4\x13\xbc\xfa\ \x3d\x7c\x45\xfc\x8e\x9e\x52\x01\x30\x49\xf0\xee\xff\xc2\x47\xa2\ \xee\xa7\x29\x00\xe8\x42\x59\x9b\xde\x22\xb7\x82\xa4\x15\x3f\x98\ \x0f\x70\x01\x65\x5d\x7a\x6b\xfc\x82\xe4\xcd\x96\xc6\x03\xfc\x82\ \xb2\xf5\x1b\xc0\x6e\x0e\xef\xc9\x59\x9a\x0e\x70\x04\x65\x87\x6f\ \xe7\xcb\x0e\xde\x97\xd3\x37\x1b\x60\x0c\x75\xbb\xf4\xa7\x2f\x3e\ \xde\xdb\xd1\xae\xd1\x00\x6b\x20\xc6\xb5\x50\xcf\xc7\xfb\x2b\x4c\ \x4d\x06\xd8\x81\xba\x31\x11\xd1\xd2\xc7\x36\x6d\x4c\x06\xa8\x40\ \xdd\x8a\x88\x06\xa7\xd8\xae\x63\x83\x01\xce\xa0\x6e\x4a\x14\xcc\ \xb1\x65\xfe\xc8\x5c\x80\x1c\xd4\xb9\xf4\xa9\x88\xad\xbb\x31\x16\ \x40\x78\x50\x27\xc4\x25\x34\xd4\x35\x15\x60\x84\x88\x44\x0d\x3a\ \xca\x09\x43\x01\xbe\x20\xa2\x05\xf4\xb4\x30\x14\xe0\x09\x11\xb5\ \xa0\xa7\x07\x61\x26\xc0\x2d\x92\xe5\x5f\x1e\x3c\x1f\x06\x2b\xe1\ \x8e\x07\x9d\xfd\x33\x0f\xf1\xfb\x6e\x26\xc0\x3e\x12\xd4\xba\xff\ \x2c\xfe\xe2\x9b\x34\x0b\x88\xdb\xa3\x99\x00\x7b\x88\x9d\x57\x0d\ \x1b\xcd\xbb\xb1\x09\xae\x8c\x04\xd8\x20\x6e\x85\x43\xd9\x1a\x63\ \x2d\xc4\xaa\x6e\x24\xc0\x25\x62\xb6\x71\x49\xd6\x72\x86\x38\xcd\ \x84\x89\x00\x8f\xd0\xf0\xf3\x8d\x0a\x88\xd3\x89\x89\x00\x0f\x88\ \x55\x85\x94\x4d\x62\x09\x5c\x98\x08\x90\x43\x9c\x4a\x82\xd4\x8d\ \xbf\x22\xba\x82\x89\x00\x33\xc4\xc8\x1f\xc6\x7d\xdf\x54\x5d\x60\ \x20\xc0\x91\xae\x75\x81\x17\x88\xae\x6d\x20\x80\xaf\xed\x42\xe6\ \x0e\x91\xd5\x0c\x04\x68\x69\xfb\xe1\x3e\x44\x5b\x96\x0c\x04\xd0\ \x38\x7e\x37\x10\x95\x93\xce\x2d\xe0\x27\xc5\xcb\x9d\x21\xaa\xa1\ \x79\x00\x0e\x22\x1b\xe8\xbb\xb2\xfc\x9c\xc6\x61\xf0\x6b\xa2\x47\ \xce\xd5\x35\xcd\x03\xc8\xe9\x3c\x74\xd7\x10\xd1\xbe\x79\x00\x79\ \x9d\xd3\x99\x7d\x44\x54\x31\x0f\xa0\x88\xa8\x02\x8d\x7f\xed\xd2\ \x3c\x80\x57\x44\x34\xa7\x04\xfd\x03\x75\x05\xf3\x00\x7e\x21\xa2\ \x32\x91\xbe\x7d\xe0\x21\x85\x33\x42\x35\x9d\xc7\xd4\xb9\x79\x00\ \x75\xbd\x1f\x48\xf9\x0d\x65\xa7\xe6\x01\x34\x10\x51\x87\x92\xd4\ \x84\xb2\x96\x79\x00\xdf\x11\xd1\x17\xd2\x78\x10\xf0\xcc\x03\x58\ \x23\xa2\x5d\x4a\x92\x68\x41\x95\x6f\x1e\xc0\x15\x22\x1a\xeb\x7b\ \xff\x0e\x98\x99\x07\x30\x41\x44\x2b\x4a\xd4\x7d\xda\x86\x41\x72\ \xa0\xce\xd5\x79\xab\xad\x60\x20\xc0\x2b\xd4\x09\xd2\x38\x0c\xbc\ \xa6\xf0\x21\x29\xad\x4f\x1e\xff\x32\x10\xa0\xa1\x77\x17\x38\x87\ \xaa\xdf\x06\x02\x74\xa1\x6e\x4a\x89\x1a\xa6\x6d\x3e\x80\x86\x50\ \x37\xd1\xf9\xe4\xed\xc2\x40\x00\xd1\xd2\x7a\x37\x67\x05\x55\x6b\ \xe3\x00\xa2\x87\x81\x01\x25\xca\x85\xaa\x91\x89\x00\x75\x28\xeb\ \x69\xbc\xd1\xe0\x09\x13\x01\x3a\x3a\xaf\x06\x49\x40\x51\x81\x4c\ \x04\x08\xb4\xce\x64\x4f\xa1\xa8\x6a\x24\x00\xe5\x74\x8e\x5c\x2b\ \x28\x5a\x98\x09\xf0\x1b\xaa\x36\x1a\x87\xc1\x81\x99\x00\x4d\xa8\ \x7a\xa1\x44\x0d\x20\xcf\x27\x33\x01\x46\x3a\xa7\xf1\x7a\x90\xf7\ \xcb\x50\x00\x2a\x40\xd5\x58\xdb\x98\x72\x9b\xca\x05\x14\xf0\x4d\ \xdb\x92\x54\xc3\x74\x2e\xa1\x71\xa0\xeb\xb4\xaa\x48\xa6\x02\xd0\ \x0c\x8a\x6e\xb4\x2d\x4b\x68\x2e\x40\x15\x8a\x1c\xa1\xe9\x6e\x73\ \xdf\xec\x85\x94\xf4\xac\xa7\x38\xf5\x20\x2b\x4f\xe6\x02\xd0\x57\ \x5d\x07\x81\x73\x48\x3b\x36\x19\xe0\x5a\xd7\xa9\xd0\x0e\x64\x39\ \x53\x93\x01\x02\x0f\x8a\x76\x75\x1c\x03\xeb\x64\x32\x00\xdd\xe8\ \xd9\x07\x84\x0f\x59\x43\xb3\x01\xba\x7a\x9e\x13\x5b\x2b\x06\x53\ \xb3\x01\xd4\xa7\xc3\xdd\xad\xdf\x40\xf2\x06\xa6\x03\x3c\xeb\x78\ \xc6\xd7\x75\x20\xe9\x23\x99\x0e\x40\x79\x28\x5a\x6e\xa9\xe8\x07\ \xe6\x03\x3c\x69\xd8\x04\x8a\xf2\x69\x25\xf3\x01\x44\x7e\xeb\xa9\ \xd1\x13\x48\xca\x7d\x32\x13\x40\x3d\x10\x24\xff\x17\x5e\x20\x69\ \x4d\x69\x00\xa0\xff\x40\x51\x65\x8b\xa9\xb5\x3a\xa5\x03\x20\x70\ \xb6\xda\x09\x82\x53\x84\x97\x77\x8d\x04\x50\xcf\xe6\x24\xff\xde\ \xac\x28\x21\xbc\xd6\x21\xa5\x05\x80\x4a\x50\x34\x1b\xbd\xef\x1c\ \xa8\x4d\xe9\x01\x18\x1d\x41\x51\x6e\xf0\x9e\x25\xd9\xf6\x29\x45\ \x00\x74\x02\x55\x4e\x8f\x24\x89\x1a\x24\x6d\x28\x55\x00\x74\x0b\ \x55\xde\xbe\xa0\xb0\xc6\x67\x90\x54\x72\x53\x06\x40\x35\x28\x2b\ \x86\x0c\xe9\xe2\xd8\x81\xa4\xb3\x29\xa5\x0d\x80\x36\x50\x57\xea\ \xfe\xfd\xa3\x7e\xda\xc9\x41\xd6\x8d\x4b\xe9\x03\x10\x51\x02\x70\ \x2a\xed\xbe\xf8\x03\xb0\x3a\xff\x51\x6e\x41\xda\x46\x50\x0a\x01\ \x48\x54\x11\x23\x27\x97\x9f\x3b\x50\x56\x13\x69\xfd\xf4\xf6\x35\ \x34\xe4\x3f\xa7\xf8\xeb\xf3\x1d\x1f\xdb\x56\xd8\xa5\x14\x03\xd0\ \x6e\x01\xdb\x55\x75\x29\xd5\x00\xe4\xfe\xf4\xf0\xfe\x0a\x3d\xa2\ \x94\x03\x10\x2d\x1f\xf1\xce\xfc\x5b\x41\x19\x00\x20\x5a\xcc\xf0\ \x8e\x5a\x1f\x03\xa2\x6c\x00\xd0\xf4\x36\x31\x81\xff\xdf\x80\x28\ \x33\x00\x44\xee\xa2\x88\x04\xcd\xff\x59\x11\xa5\x0f\x40\xdd\xf9\ \xde\x29\x62\xe5\x54\x7b\x44\x94\x3d\x00\x22\xf1\xad\x96\x43\x44\ \xb9\x4a\x57\x10\xa5\x1a\x40\xdd\xb0\xbd\x57\x6c\x21\x34\xaf\xb0\ \xf7\xf4\x21\x23\xdf\x1e\x57\x27\x76\x3b\xb7\xf5\xbb\x52\x61\xee\ \xf8\x9e\xe7\xcc\x1f\x8a\xa5\x9b\xfa\xf1\xc9\x50\x98\xf0\xa1\xa5\ \x6c\xc7\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\ \xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\ \x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\x0c\xc0\x00\ \x16\xc6\x00\x7f\x62\x00\x06\xb0\x37\x06\x60\x00\x06\x60\x00\x06\ \xf8\x1f\xee\xa8\x2b\x99\x18\xa3\x27\x20\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\xa7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\x9f\x50\x4c\x54\x45\xf8\x7c\x00\xf8\xfc\xf8\xf8\x88\ \x10\xf8\xf8\xf0\xf8\x8c\x18\xf8\xa8\x50\xf8\xb0\x60\xf8\xc8\x90\ \xf8\x80\x00\xf8\xf4\xe8\xf8\xdc\xb8\xf8\xe8\xd0\xf8\xb4\x68\xf8\ \xc4\x88\xf8\xe0\xc0\xf8\x98\x30\xf8\x84\x08\xf8\xc0\x80\xf8\xf0\ \xe0\xf8\xac\x58\xf8\xe4\xc8\xf8\xf8\xf8\xf8\xd0\xa0\xf8\xd4\xa8\ \xf8\xec\xd8\xf8\x90\x20\xf8\xa0\x40\xf8\xa4\x48\xf8\xf0\xe8\xf8\ \x9c\x38\xf8\xd4\xb0\xf8\xbc\x78\xf8\x84\x10\xf8\xb8\x78\xf8\xcc\ \x98\xf8\xb0\x68\xf8\xb8\x70\xf8\xd8\xb8\xf8\x98\x38\xf8\x8c\x20\ \xf8\xe4\xd0\xf8\x80\x08\xf8\xec\xe0\xf8\x94\x28\xf8\xa4\x50\xf8\ \xd8\xb0\xf8\x94\x30\xf8\xb4\x70\xf8\xc8\x98\xf8\xf4\xf0\xf8\xe0\ \xc8\xf8\xa8\x58\xf8\x88\x18\x03\x44\x9e\x16\x00\x00\x02\xc3\x49\ \x44\x41\x54\x78\x5e\xed\xd6\x57\x6e\xdd\x40\x0c\x46\xe1\x9f\xea\ \xed\xf6\xde\x5c\x4b\x7a\xcf\xfe\xd7\x16\x40\x08\x10\xc8\xc6\x8d\ \xe4\x07\x23\xf1\xf0\x9c\x1d\xf0\xc3\x60\x48\x99\xf3\x04\x00\x00\ \x00\x00\x00\x80\xc9\x61\x5d\x00\x00\x00\x00\xc0\x1c\x05\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x32\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\xca\xda\x35\x40\xb5\x28\x52\xbf\x00\xf3\ \xd9\x4e\xd2\x1b\xaf\x00\x9b\x43\xa1\x36\x97\x00\xf5\x5d\x24\xc9\ \x2b\x40\x99\x4f\x24\xb9\x05\xb8\x4f\x0b\xc9\x2d\x40\x7d\x9d\x48\ \xf2\x06\xd0\x7d\xfa\x6e\x01\x2e\xd2\x42\x72\x0b\xf0\xbd\x89\x24\ \x79\x05\xd8\xb6\x07\x8f\x57\x80\x32\x7f\x90\xe4\x15\x20\x5e\x1f\ \x0a\xc9\x2b\xc0\xea\x22\x9d\x4a\xf2\x0a\x50\x65\x57\x92\xbc\x02\ \x54\xb7\x91\x24\xaf\x00\xe3\xe6\xa7\x24\xaf\x00\x55\x3b\xbd\x57\ \x80\x2a\x8b\x24\x39\x05\x88\x37\x8b\x2b\x49\x4e\x01\x8e\x37\x87\ \x77\x92\x9c\x02\xd4\xb3\x53\x21\xc9\x27\x40\xfc\xe9\x36\x51\x9b\ \x47\x80\xe5\x68\x5f\x48\xf2\x09\x50\xe7\x69\xa4\x36\x8f\x00\xdb\ \x8f\xed\xf0\x7e\x01\x2a\x0d\xaa\x48\x9b\x24\x4c\x80\xb1\x06\x34\ \xbd\x9b\x9b\x95\x51\x90\x00\x4b\xf5\x16\xcd\xca\xd6\xaa\x09\x12\ \xe0\xbd\x7a\xda\xe5\xb1\xb5\xd9\x3a\x48\x80\x58\x7f\xed\xf3\xba\ \xf3\x58\x02\x04\xb0\x48\xe7\xdb\xdf\x77\x16\x46\x98\x00\xa7\xf3\ \x1f\xff\xd2\x3a\x95\x61\x02\x64\x67\xc6\xcf\xb6\xf6\xa8\x38\x4c\ \x80\xfc\xdc\xde\x7b\x5a\x20\x00\xfd\x7b\x30\x19\x7d\x33\x73\x03\ \x60\x53\x75\xdb\xdd\xac\xcc\x3c\x01\x1c\x3a\x00\x93\x8d\x99\xf9\ \x02\xf8\xaa\x3f\xed\x2b\x33\x77\x00\x73\xfd\xae\x58\xbc\x35\xf3\ \x04\xd0\xbd\x04\xa6\xcd\xd6\xcc\x27\x40\x2e\x29\xba\x2c\xcd\xbc\ \x02\x94\x45\x32\x8a\xcd\xfc\x02\xd8\xd8\xcc\x5c\x03\xd8\xeb\x06\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x60\xe5\x1d\xe0\xa8\xde\xca\xa0\x01\xc6\xea\xad\x0e\ \x1a\x60\xa4\xde\xd6\x41\x03\x9c\xd4\x5b\x16\x32\xc0\x58\xfd\x45\ \xab\x80\x01\x26\x1a\x50\x1e\x2e\x40\xa6\x21\x5d\xcd\x03\x05\x88\ \x17\x1a\xd6\x87\x63\x90\x00\x17\x3b\x0d\x2d\xa9\x82\x03\x58\xce\ \x76\x7a\x4e\xfb\x4d\xfc\x3a\x01\x2e\x9f\x76\xdd\xa4\x93\xa9\x9e\ \x5d\x31\xf9\xf1\xe5\xf2\x51\xa3\xff\x1e\x20\xd6\x8b\x16\xbd\x0c\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xd8\x01\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x0e\x03\xa0\x0d\x00\x00\xfc\x06\x00\x00\x00\x00\x00\ \xc0\x2f\xab\x25\xe7\xf8\xca\xd9\x09\x7e\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x06\x56\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\x8a\x50\x4c\x54\x45\x00\xfc\x78\x00\xfc\x80\xe8\xfc\ \xf0\xf0\xfc\xf8\x08\xfc\x80\xf8\xfc\xf8\x48\xfc\xa0\x58\xfc\xa8\ \x90\xfc\xc8\xa8\xfc\xd0\xb8\xfc\xd8\x38\xfc\x98\xd8\xfc\xe8\xe0\ \xfc\xf0\x20\xfc\x90\x10\xfc\x88\x80\xfc\xc0\x30\xfc\x98\x88\xfc\ \xc0\x18\xfc\x88\xd0\xfc\xe8\xc8\xfc\xe0\x28\xfc\x90\x78\xfc\xb8\ \xb0\xfc\xd8\xa0\xfc\xd0\x40\xfc\xa0\x70\xfc\xb8\xf0\xfc\xf0\x98\ \xfc\xc8\xc0\xfc\xe0\x68\xfc\xb0\x50\xfc\xa8\xb0\xfc\xd0\x60\xfc\ \xb0\x10\xfc\x80\xe0\xfc\xe8\x60\xfc\xa8\x40\xfc\x98\xd0\xfc\xe0\ \x70\xfc\xb0\x20\xfc\x88\x30\xfc\x90\x80\xfc\xb8\x90\xfc\xc0\x50\ \xfc\xa0\x40\x29\x71\xf3\x00\x00\x05\x87\x49\x44\x41\x54\x78\x5e\ \xed\xdc\xe7\x96\xdb\x46\x0c\x80\x51\x4c\x63\xef\x4d\xbd\x6c\x75\ \x49\xf2\xfe\xaf\x17\x25\xff\x7c\x08\x0f\xa5\xa5\xe8\x33\x43\xe0\ \x7b\x02\xe3\xda\x96\x20\x70\xb5\x60\x88\x07\x0c\xc0\x00\x0c\xc0\ \x00\x0c\x60\x80\x60\xbf\x02\x30\x00\x03\x30\x80\x21\x14\x03\x30\ \x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\ \x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\x00\x03\x30\xc0\xb3\ \x63\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\ \x00\x06\x60\x00\x06\x60\x00\x06\xc8\x92\xe8\x10\xa6\x43\xab\xb5\ \x10\xba\x6c\x8b\x21\x0d\x0f\x51\xdc\x2b\x0a\x00\x6a\xbb\xf9\xd4\ \x80\x07\xc5\xb5\xda\xca\x35\x03\x64\xcd\xa7\x80\xa9\x86\x43\xa2\ \x56\x09\x20\xff\xae\xe1\xce\x44\xb0\x53\x6b\x03\xe8\x43\x01\x8f\ \xa4\xc3\x64\x4d\x00\xdb\x14\x1e\xaf\x88\xd4\x4a\x00\xb6\x35\x7c\ \xad\xb2\x92\x2b\x00\xe8\x53\xf8\x7a\xba\xf1\x1d\x20\x0f\x61\x5e\ \xc5\xd6\x6b\x80\x48\xc3\xec\xf6\xb9\xb7\x00\x5d\x0d\xcf\xe8\x2d\ \xf6\x14\x60\x23\xe0\x49\x7d\x28\x0f\x01\xba\x1a\x9e\x57\x91\x79\ \x07\x10\x69\x78\x66\x65\xef\x17\x80\xbc\xc2\x93\xd3\x5b\xaf\x00\ \x7e\xc0\xd3\x13\x3b\x8f\x00\x24\x2c\x90\x48\xfc\x01\xe8\x61\x89\ \xf4\xd9\x1b\x80\x2d\x2c\x52\x99\xf9\x02\x10\xc1\x32\xfd\x54\x9e\ \x00\x6c\x60\xa1\x2e\x9e\x00\x84\xb0\x54\xb1\x1f\x00\x9f\xb0\x54\ \xa5\xf4\x02\xa0\x80\xc5\xba\x78\x01\x20\x60\xb1\x44\xe7\x01\x80\ \x84\x05\xdb\x7b\x00\xd0\xc3\x64\x42\x0b\xf8\x62\xbd\xeb\x00\xf6\ \x3d\xa8\x0c\xaa\xb8\x97\xe6\x96\x92\x7d\x5c\x05\x25\x3c\x5a\xe8\ \x34\x80\x7d\x0f\xaa\xab\x6e\xa4\xd5\x6d\x06\x78\x28\x21\x9d\x07\ \xd8\x00\x96\x3e\x64\x06\xef\x7c\x15\xf0\x40\x7f\x39\x0f\x10\xc2\ \xb8\xb2\x51\x16\xb2\x6e\x0f\xf7\x57\x38\x0f\x90\x8e\x00\xc4\xf7\ \xa3\xb1\x17\x97\x70\x77\x99\xc3\x00\xf8\x1e\x34\xf4\x66\xb2\x7c\ \x0f\xf7\xd6\xb8\x0b\x80\xef\x41\x57\x65\xee\xe9\x15\xee\xec\xd3\ \x59\x00\x7c\x0f\x3a\x98\x3b\x3b\xc0\x7d\x09\xc7\x01\x7a\x64\xfe\ \xe7\x7e\x8a\xfc\xe6\x36\xc0\xcb\x2f\x00\xff\xcc\x7a\xf9\xc4\xdb\ \x39\x09\x80\xef\x41\xad\x34\x0f\x94\x6b\xb8\xa7\x83\x93\x00\xf8\ \x7f\xe5\x93\x79\xa8\x1d\xdc\x53\xe0\x22\x00\xbe\x07\xb5\x33\x77\ \x08\xbc\xda\x6d\x80\x74\xce\xfd\xe2\x0c\x77\x34\xb8\x08\x80\xef\ \x41\x89\x79\xb4\x3d\x4c\xd7\x3a\x08\x80\xef\x41\x42\x2d\xf2\x4c\ \x41\x3b\x0d\x20\x67\x9e\x6f\x5a\x98\x4c\x38\x0d\xd0\xcf\xdc\xda\ \x2f\xbe\xff\x0b\x78\x99\xb9\xb2\x25\x30\x59\xe9\x34\x40\x34\xf7\ \x0f\x2a\x60\xaa\xc2\x69\x80\xc3\xdc\xf3\x5d\x0a\x53\xa5\x4e\x03\ \x84\x73\x77\xf6\x03\x4c\x15\xba\x07\x80\xef\x41\xb9\xf9\x4a\x27\ \xcf\x3f\x0b\x14\x73\x17\xb6\xc4\xf3\x4f\x83\x62\xee\x5f\x54\x07\ \x53\xf5\x2e\x03\x48\x64\x0f\x7e\xac\xdc\xef\x8b\x50\x8f\xec\xc1\ \x8f\xa5\x60\xa2\xd4\x69\x80\x78\xfe\x63\x4c\x98\x68\xe3\x1c\x00\ \xbe\x07\x35\x4b\x01\x6c\xdd\x06\x28\xf4\xcc\x97\xaa\x23\xd8\xd3\ \xca\x21\x00\xbc\xfc\x5b\xb2\x8b\x2a\x63\x96\x79\x11\x0c\xd6\xfe\ \xd5\xd9\x0c\xec\x9d\xd6\x0e\x70\xf6\xfb\xf1\xf8\xfc\x62\xb0\x76\ \x35\x6b\x07\x68\xc0\xda\x76\xf5\x00\x97\x89\x83\xe8\xea\x01\x52\ \xb0\x55\xad\x1f\xa0\x04\x4b\x5a\xae\x1e\x20\x77\xe0\x27\x45\xdd\ \x7d\x13\x10\xef\xeb\x07\xb8\x80\xa5\x57\xb3\x7e\x80\xda\x02\x20\ \xb2\xf5\x03\x48\xe1\xf5\x17\x26\xe6\x77\xb2\xbe\x05\x10\x00\xb8\ \x5a\x00\x1a\xb3\x7e\x00\xa5\x6d\x3f\x16\x40\x00\x60\x07\xbf\xef\ \x4c\x01\x20\xb0\x3d\x0f\x22\x00\x60\x79\x0f\x68\x25\x05\x80\xca\ \x76\x0a\xa5\x00\xd0\xc2\xef\xfa\x30\x04\x00\x2c\xc7\xa0\xe2\x48\ \x02\x20\x05\x3c\x10\xbd\xa1\x00\x90\x58\x56\x20\x12\x00\xa9\xe5\ \x51\x00\x05\x80\x33\xe0\xc1\xa0\x68\x00\xa4\x80\xa7\x33\x43\x02\ \x20\x06\x3c\xb1\x35\x34\x00\x0a\xc0\x8b\x0c\x0d\x80\x06\xf0\x0e\ \x86\x06\x40\xae\x01\xed\x6a\x88\x00\x04\x80\xb6\x57\x44\x00\x62\ \x40\xab\x95\xa1\x01\x20\x5b\xc0\x1a\xa4\x21\x02\x10\x5a\xe6\xa7\ \x00\x10\x5b\xe6\xa7\x00\x90\x97\x96\xf9\x29\x00\x7c\x02\x52\x2d\ \x0d\x15\x80\x0d\x20\xa5\x47\x43\x05\x20\x11\xf8\xfb\x3f\x11\x00\ \xfc\x05\x20\x50\x86\x0a\x80\xaa\xf1\xfd\x97\x0c\x40\x88\x3e\x02\ \xa1\x03\xd0\xa0\x0f\xc1\xe9\x00\xc4\x02\xfb\xfc\x4b\x07\xa0\xd7\ \x30\x6a\x63\xe8\x00\x64\x25\x8c\xaa\x0c\x1d\x00\x59\x60\xf7\x2f\ \x3a\x00\xc7\xf1\x1b\xa0\x38\x19\x3a\x00\x2a\xc5\x7e\x7d\x36\x21\ \x80\x60\x3c\x7f\x6c\x08\x01\x5c\xb1\x5f\x20\x4f\x05\x00\x9f\x3f\ \x31\x54\x00\xf0\xf9\xcf\x86\x08\x00\x3e\x7f\xd9\x1b\x42\x00\xc1\ \x78\xfe\xce\xd0\x01\x50\xfb\xd1\xfc\x6d\x66\x88\x00\xe0\xf3\x17\ \x99\xa1\x03\x70\x1c\xef\x3f\x43\x6e\xe8\x00\xc8\x1a\x3b\x7f\xd3\ \x01\x90\x03\x76\xfe\xa6\x03\x90\x8f\xe7\x4f\x95\xa1\x03\x90\x17\ \xd8\xf9\x9b\x0e\x40\xf6\x03\x3b\x7f\xd3\x01\xc8\x5a\xec\xfc\x4d\ \x07\xa0\x6b\x91\xf3\x37\x21\x80\xbe\x44\xce\xdf\x84\x00\xfa\x37\ \xe4\xfc\x4d\x08\xe0\xac\x91\xf3\x37\x21\x80\x64\x3c\x7f\x63\x08\ \x01\x6c\x35\x72\xfe\x26\x04\xf0\x22\x90\xf3\x37\x21\x80\x58\x20\ \xe7\x6f\x42\x00\x3b\x81\x9c\xbf\x09\x01\x9c\x04\x72\xfe\x26\x04\ \x10\x61\xe7\x6f\x42\x00\x0d\x76\xfe\x26\x04\x50\x61\xe7\x6f\x42\ \x00\x9b\xf1\xf9\xb7\x33\xf3\x53\xd2\x13\x80\xef\xb3\xbe\xfe\xa4\ \xe4\x7b\xd7\x9f\x93\x78\x77\x8a\xaa\xcd\xe1\x12\x5e\x83\x7d\x3a\ \x14\xed\x9b\x00\x80\xc4\x0b\x80\x0b\x8c\xcb\xc7\x63\xe6\xd9\x6d\ \xcc\x97\xdb\x98\xcd\x6d\xcc\xd7\xff\xc6\xfc\x59\xb4\xa5\x06\x5b\ \x95\x0f\x00\x1f\x80\x74\x89\x9a\xea\x36\x66\x78\x1b\xb3\xb6\x8e\ \x69\x2f\xf2\x00\x20\x84\x05\xdb\xb9\x0f\x70\x85\x25\x4b\x5c\x07\ \x50\x01\x2c\xda\xd9\x71\x00\xb5\x87\x65\xeb\xdc\x06\x50\x29\x2c\ \x5c\xe6\x34\x80\xac\x61\xe9\xe4\xa2\x00\xee\xcf\x0f\x47\x87\x01\ \xe4\x00\xcb\xa7\xdc\x05\xc8\x0b\xf8\x03\x19\x67\x01\xde\x0b\x20\ \x0d\x90\xb5\x40\x1a\xa0\x6b\x81\x34\x40\x57\x02\x69\x80\xbe\x04\ \xda\x00\x01\xfc\x89\x18\x80\x01\x18\x80\x01\x18\x40\x51\x07\x90\ \xc4\x01\x18\x20\xa7\x0e\x90\x51\x07\xe8\x09\x00\xb8\x7a\x16\xf7\ \x3f\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\ \x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\ \x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x60\x00\x06\x20\ \x18\x03\xfc\x1f\x03\x30\x00\xf1\x18\x80\x01\x48\xc7\x00\x0c\xf0\ \x2f\x7c\x1e\x36\xaa\xe0\x1e\x55\xda\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x08\x45\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00\x6b\xac\x58\x54\ \x00\x00\x00\xed\x50\x4c\x54\x45\x78\x00\xf8\xf8\xfc\xf8\x80\x08\ \xf8\xf8\xf4\xf8\xf8\xf8\xf8\x80\x00\xf8\x80\x0c\xf8\x80\x04\xf8\ \xf0\xe8\xf8\xa8\x58\xf8\xe8\xdc\xf8\xe8\xd4\xf8\xf0\xec\xf8\x90\ \x2c\xf8\xa0\x4c\xf8\xa8\x54\xf8\x90\x28\xf8\xa8\x5c\xf8\xc0\x84\ \xf8\xc0\x8c\xf8\xc8\x90\xf8\xc8\x9c\xf8\xd0\xa4\xf8\xd0\xac\xf8\ \xd8\xb4\xf8\xd8\xbc\xf8\xe0\xc0\xf8\xe0\xcc\xf8\x90\x24\xf8\xe8\ \xd8\xf8\xf0\xe4\xf8\x88\x10\xf8\x88\x18\xf8\xf8\xf0\xf8\x88\x1c\ \xf8\x90\x20\xf8\xb8\x7c\xf8\x98\x3c\xf8\xb0\x64\xf8\xe0\xc8\xf8\ \x98\x34\xf8\xc8\x94\xf8\x98\x30\xf8\xb0\x6c\xf8\xd0\xa8\xf8\xd8\ \xb0\xf8\xb0\x60\xf8\xb8\x74\xf8\xd8\xb8\xf8\xb8\x78\xf8\xa0\x48\ \xf8\xc0\x80\xf8\xe8\xd0\xf8\xc0\x88\xf8\xa0\x44\xf8\xc8\x98\xf8\ \xf0\xe0\xf8\x98\x38\xf8\xe0\xc4\xf8\xb0\x68\xf8\xf0\xf0\xf8\xd0\ \xa0\xf8\xb0\x70\xf8\xb8\x70\xf8\x88\x14\xf8\xb8\x80\xf8\x88\x20\ \xf8\xd0\xb0\xf8\xe8\xe0\xf8\xd8\xc0\xf8\xc0\x90\xf8\xa8\x50\xf8\ \x90\x30\xf8\xe0\xd0\xf8\x98\x40\xf8\xa8\x60\xf8\xc8\xa0\xf8\xa0\ \x50\xf8\xa0\x40\xf8\x19\x22\x9d\x39\x00\x00\x07\x13\x49\x44\x41\ \x54\x78\x5e\xed\xdd\x85\x92\xb3\xe8\x12\xc7\xe1\x7f\xa3\x71\x77\ \x77\x19\x77\xb7\xcf\x75\xf7\xfe\x2f\xe7\x54\xed\xf9\x6a\x76\x33\ \x48\x84\x77\xaa\x68\xe8\xdf\x1d\xe4\x09\x81\xd0\xc0\x0b\x28\xe6\ \x41\x00\x04\x40\x00\x04\x40\x00\x08\x31\x6c\x15\x40\x00\x04\x40\ \x00\x28\x46\x09\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\ \x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\ \x00\x08\x80\x00\x28\x4f\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\ \x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\x40\x00\x04\xc0\x48\xd7\ \xcb\x4f\xf9\x9f\xd9\x51\x5f\xb3\x61\x5b\x2f\xa3\xce\x34\xff\x5c\ \x3e\x48\x1b\x71\x00\x48\x5f\x1f\x7d\xb7\xe1\x9e\xbd\x57\x5c\x76\ \xa3\x0c\x30\xac\x15\x07\x58\xd7\x20\xf9\xf8\x10\x49\x00\xbd\x76\ \x66\x63\xb3\xec\xbf\x0e\xf4\xa8\x01\xcc\x8f\x34\x6c\x93\xf5\x9c\ \x8a\x10\x80\xf1\x7b\x0f\x5b\x67\xe6\xe7\x11\x01\x78\x28\xbd\x60\ \xb7\x92\xa9\x08\x00\x64\x26\x16\x76\xce\x7e\x1e\x32\x07\x78\x98\ \x58\x08\xd4\xb8\xc5\x19\x40\x2f\xf7\x11\x34\xf3\x49\x67\x0b\x50\ \x1b\x41\x45\xb7\x09\x9e\x00\x99\x05\x14\x35\xba\x60\x09\x70\x08\ \x65\x69\x2d\x8e\x00\x13\xa8\xcb\xba\x63\x08\x70\x06\x85\x59\x6d\ \x7e\x00\x7d\xa8\x6c\x90\xe0\x06\x90\x82\xda\xa6\x06\x33\x80\x1a\ \x14\x77\xcc\x0c\xe0\x19\x8a\x33\xe7\xbc\x00\x6e\xa1\xba\x05\x2b\ \x00\x43\x83\xf2\x96\x9c\x00\x7e\x40\x7d\x03\x83\x11\xc0\x35\xd4\ \x87\x47\x46\x00\x33\xa8\x0f\x59\x46\x00\x59\xbc\x47\x73\x36\x00\ \xba\x09\x8f\xcc\x42\xfe\xc3\x75\xe3\xae\x9d\x4e\xb7\x5b\xf5\xe5\ \x69\xee\x23\xb6\xe8\x94\x0d\x40\x0b\xae\x8d\x9e\x1a\x8e\x19\x57\ \xe2\x60\xf6\x82\x0d\x2b\xb0\x01\x28\xbb\x8e\x79\x9b\xe4\x9e\xd1\ \xc8\x61\xb3\x52\x5c\x00\x92\x70\x94\xec\x92\x4f\xe9\x3c\x36\xa9\ \xce\x05\x60\x8c\x37\x15\x5a\xb4\xa6\x66\x07\xeb\x9b\x30\x01\x48\ \xe0\x4d\x33\x9d\xd6\x36\x2c\x62\x6d\x39\x26\x00\x0d\xac\x64\x56\ \x69\xa3\x4a\x58\xd7\x77\x26\x00\xe7\x2b\x00\x76\x83\x36\xac\x82\ \x35\x8d\x19\x00\x38\xc6\x61\xe6\x27\xda\xb8\x63\xf8\xd7\x67\x02\ \xb0\x72\x60\xaf\xd2\x16\xfd\x84\x6f\x26\x0f\x80\xcf\xf8\x4f\x33\ \xda\xa6\x94\x05\xbf\x34\x1e\x00\x07\xf8\xb7\xac\x1e\x60\xf7\xc1\ \xf5\x27\x70\x8c\xd7\xcc\x36\x6d\xd7\xb0\x0f\x9f\x46\x3c\x00\xa6\ \x78\xed\x58\xed\x30\x71\xca\x03\x40\x7b\x05\xe8\x3f\xd0\xb6\x5d\ \xc0\xa7\x24\x03\x80\x95\x8f\xf0\x35\xd0\xdf\x68\x67\xe7\x2c\x00\ \xaa\xc1\xa6\x78\x33\x78\xd7\x60\x01\x70\xff\x0a\x50\x52\x3d\x4e\ \x4c\xb0\x00\xd8\xc3\x9f\xb4\x0c\xed\xd0\x17\x78\xb6\x47\x1c\x00\ \x74\x1b\x7f\xfa\x45\xbb\x74\x03\xcf\x26\x2c\x00\xee\xf0\x27\xb4\ \x68\x97\x32\xf0\xec\x07\x0b\x80\x4a\xc0\x53\x37\x03\x5e\x2d\x88\ \x05\x40\x32\xe0\xf5\x5c\x1d\x5e\x55\x79\x00\x74\x02\x4e\xf1\x13\ \xf0\x68\x64\xf0\x00\xf8\x5d\xfd\x7f\xbf\x69\xb7\xba\xbc\x2e\x8e\ \xaa\xaf\x01\xf7\x0a\x46\x4c\x00\x2a\x70\xef\x0b\xc5\x04\xe0\x08\ \xae\xcd\x28\x2e\x00\x63\xb8\x55\xd0\xe3\x02\x90\x82\x5b\xda\x05\ \xc5\x05\xe0\x12\x2e\x99\x87\x14\x1b\x80\x02\x5c\xfa\x4a\xb1\x01\ \x68\xc2\xa5\x12\xc5\x07\x60\x1a\x68\x0e\xc4\x1f\xe0\x10\x8e\xcc\ \x25\xc5\x07\xe0\x61\x84\xb7\x69\x75\x8a\x11\x40\x11\x6f\xfb\xd8\ \xa6\x18\x01\x94\xf1\xb6\xab\x0c\xc5\x08\xa0\x6e\x62\x35\xbb\x4c\ \x14\x23\x80\x9a\x89\xd5\x0a\x3f\x28\x4e\x00\x25\x13\x2b\xd9\x1f\ \x0c\x8a\x11\x40\x22\x87\xd5\xa6\x69\xa2\x18\x01\x54\xfb\x58\x69\ \x54\x23\x8a\x11\x40\x3d\x8b\x95\xb4\x89\x4e\xf1\x01\x48\x94\x0b\ \x58\xc9\xde\x4f\x10\xc5\x05\x20\x5d\xbe\xb2\x1d\xcf\xcc\xd7\xdb\ \x99\x88\x02\x64\x12\x7f\xea\xa5\xd2\x77\xf5\xf2\xfe\xd4\x82\x47\ \xfd\x45\xb1\xd4\xe8\x45\x0d\x20\x63\x62\xbb\x46\xc9\xeb\x9b\x28\ \x01\xd4\xb1\x43\x7b\x97\xbd\xc8\x00\xcc\xb0\x53\x66\xfe\x2e\x22\ \x00\x1f\xb1\x6b\x57\xf3\x28\x00\x74\x11\xa0\xe4\x0d\x7f\x80\x25\ \x82\x64\x55\xd9\x03\xe4\x10\xac\x6f\x43\xde\x00\x86\x85\x80\x75\ \xd2\xac\x01\x5a\x08\x5c\xff\x8e\x33\xc0\x04\xc1\xd3\x4e\x18\x03\ \x2c\xa0\x20\xad\xc9\x16\x20\x63\x42\x45\x56\x9a\x2b\xc0\x01\xd4\ \x34\xce\x30\x05\x98\x41\x51\x39\xa6\x00\x23\xa8\xea\x9a\x25\x40\ \x17\xca\xb2\x7a\x1c\x01\x2a\x58\xcd\xb4\xb1\x73\x45\x8e\x00\x47\ \x00\x80\x71\xee\x78\x79\x38\x4f\x65\x74\x22\x22\x3d\xd1\x6d\x56\ \x27\xb9\x01\xb6\xae\xcd\x10\xc0\x38\x9d\x7e\x38\x79\x20\xb7\x7a\ \x8f\x79\x0b\x5b\x95\x67\x08\xe0\x9f\xf1\xe9\xcc\xc4\xe6\x99\x29\ \xf6\x00\xce\x52\x47\x5b\x10\x9c\x46\x10\x80\xa8\xfb\x0d\x9b\x36\ \x88\x24\x00\x51\xfd\x05\x1b\xd6\x8a\x26\x00\x25\xae\xb0\x59\xc7\ \x11\x05\x20\x63\x1f\x1b\xf5\x3d\x66\x77\x8a\x3a\xcb\x44\x16\x80\ \xce\xb1\x49\xcd\xe8\x02\xd0\x3d\x36\xa8\x1c\x61\x00\xe3\x16\xeb\ \xbb\x8f\x30\x00\xf5\x2c\xac\xed\x8a\x17\x80\xfa\x4b\x28\x59\x5e\ \x00\xea\x07\xa8\x83\x68\x03\x34\xb1\x2e\x8b\x17\x80\xfa\x4d\xc0\ \x8e\x38\x40\x1d\x6b\x32\x23\x0e\x60\xf4\xe1\x5f\x9f\x17\x80\xfa\ \x29\xfa\x38\xea\x00\x27\xf0\x6f\x2f\xea\x00\x43\x13\xbe\xfd\xcd\ \x0b\x40\xfd\x71\xe0\x5b\xe4\x01\xf6\xa3\x7a\x2e\xa0\x68\x71\xc5\ \x65\xe4\x01\x1a\xf0\xed\x2e\xf2\x00\x69\xf8\x65\xea\x91\x07\xe8\ \xc1\xaf\x02\x45\x1e\xe0\x01\x7e\x25\xa3\x0f\x60\xc0\xaf\x4a\xf4\ \x01\x74\xf8\x75\x13\x5a\x80\xcc\x61\x89\x94\x94\x80\x4f\x0b\x0a\ \x25\x40\xe6\xd3\xf3\x9e\x09\x34\xde\xff\x4d\x4d\xa5\x30\x02\x9c\ \x66\x4d\x95\x5f\xcf\x1c\x3e\x75\xc3\x08\x30\xc5\x9f\x70\xf2\xde\ \xb7\xd5\x15\x28\x8c\x00\x4f\xaf\x00\xb7\xa4\xa0\x12\xbc\xab\x84\ \x12\xa0\x86\xd7\x0e\x29\x78\xbf\xe0\x59\x5f\x0f\x25\x40\x5a\xed\ \xd0\xbe\x03\xcf\x26\x14\x4a\x00\xd2\xf0\xda\xe3\x7b\x1e\x05\xed\ \x5e\x48\x01\x6e\xf1\xda\x48\x7f\xc7\xb1\xf0\x8c\x42\x0a\x70\xaf\ \x72\x2b\x2d\xc2\x2b\x3b\x15\x56\x80\x6b\xfc\x9b\xf6\x99\x02\xa5\ \x5b\x3e\x7b\x80\xb0\x02\xcc\x15\xde\xd3\x5d\x87\x57\x23\x3d\x94\ \x00\xce\xf7\x6b\xd5\x28\x48\x3f\xe1\x55\x9d\x42\x09\xe0\x3c\x72\ \xf5\x13\xb4\x7b\x6d\x78\x75\x45\x21\x06\xc8\xe3\xbf\x9d\xd1\xee\ \xe5\xe1\x91\xd5\x0d\x33\xc0\x07\xac\x74\xa9\xfe\x09\x3b\x1c\x50\ \x98\x01\xea\x58\xc9\x6c\x06\x5c\x9e\xdd\xd9\x3d\x85\x1a\xa0\xab\ \xe8\x09\xaf\x4b\x78\xb4\xa7\x87\x1b\xc0\xb0\xb1\xda\xc7\x1b\xda\ \xa1\xb9\x0d\xf7\xac\x14\x85\x1b\x80\xb2\x78\x53\xa7\x47\x5b\x97\ \x19\xc3\x3d\xbb\x41\x61\x07\x48\xc2\x21\xf0\x99\xb6\x4c\xbf\x85\ \x7b\x66\x8d\x42\x0f\x50\x82\xa3\xc1\x05\x6d\x95\x91\x83\x47\x4b\ \x0a\x3f\x40\x1d\xce\xac\x4f\xb4\x45\xc3\x2b\xef\x39\x28\x03\x80\ \x2e\xdc\xda\xd7\x69\xd3\x7a\x0b\x78\x74\x4c\x1c\x00\xc8\x86\x5b\ \x9d\x2f\xb4\x59\x8d\x17\x78\x74\x49\x3c\x00\xb2\x70\x2f\xf9\x99\ \xd6\x37\x7c\x82\x47\x76\x8d\x98\x00\x24\xe1\x91\xbd\x7f\x43\x6b\ \x7a\x1c\xc0\x23\xab\x49\x5c\x00\x4a\xf0\xcc\x4e\xde\x91\x77\x46\ \xb5\x00\xaf\x46\x17\xc4\x06\xa0\x0e\xbf\x3a\xe7\x69\x72\xad\x7d\ \x3c\x80\x67\x67\x09\xe2\x03\xd0\xc5\x9a\xc6\xb3\xc7\x2e\xad\xd4\ \x3b\xd8\xef\xc0\x3b\xfb\x2b\xaf\xc5\xd4\x6c\xac\x4f\xdb\xcb\x3f\ \x95\x96\xd7\xd7\x95\xd2\x69\xf2\xf6\x05\xbe\x75\xda\xc4\x0b\x20\ \x0b\xa5\x1d\x0d\x89\x19\x40\x12\x0a\xcb\xb6\x88\xb8\x01\x94\xa0\ \x2c\xab\xc2\x71\x5d\xe1\x43\xa8\xaa\x98\x20\x62\x08\x90\x82\x9a\ \xbe\xb5\xb9\x2e\xaa\xaa\x21\x78\x66\xf2\x82\x88\x2b\xc0\x02\x41\ \x33\x8b\x5d\x22\xbe\x00\x33\x04\xab\x73\xd9\x23\xe2\x0c\x40\x27\ \x7f\x99\xd8\x35\xed\x57\x8b\x88\x98\x03\x10\xf5\xce\x0b\xd8\x21\ \x2d\x57\x1d\x12\x31\x05\x70\x9e\xdd\x8c\xb1\x55\xe3\xfd\x13\x9d\ \x88\x58\x03\x38\x57\x0d\xd7\xb0\x49\x66\xa1\x58\x49\x93\x23\x7e\ \x00\xce\x8c\x76\x25\x99\xf5\x53\xd0\x3a\xf9\xcb\xe6\x90\x1c\x71\ \x06\x70\x96\x6a\x5c\x4f\x8e\xce\xa6\xd9\x51\xdf\xd2\x6c\xd8\xd6\ \x60\x9c\x5d\xfc\x9d\xbb\xbf\x3c\x98\xf7\xc8\x11\x03\x00\xee\x09\ \x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\ \x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\ \x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x40\x0c\x13\ \x80\x7f\x12\x00\x01\x88\x6f\x02\x20\x00\x02\x20\x00\x02\xf0\x3f\ \x0e\x78\x2e\x0b\xe6\xfc\x06\xa8\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x0a\x87\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x34\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x88\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x35\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x89\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x36\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x84\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x85\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x09\ \x0a\x86\xa4\xa7\ \x00\x73\ \x00\x69\x00\x64\x00\x65\x00\x33\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\ \x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x14\x87\ \x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x18\x32\ \x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x1e\x8c\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x04\xca\ \x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xdc\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/painting/0000755000076500000240000000000012536324427017403 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/painting/basicdrawing/0000755000076500000240000000000012536324427022040 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/painting/basicdrawing/basicdrawing.py0000755000076500000240000003572612536324427025067 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import basicdrawing_rc3 except ImportError: import basicdrawing_rc2 class RenderArea(QtGui.QWidget): points = QtGui.QPolygon([ QtCore.QPoint(10, 80), QtCore.QPoint(20, 10), QtCore.QPoint(80, 30), QtCore.QPoint(90, 70) ]) Line, Points, Polyline, Polygon, Rect, RoundedRect, Ellipse, Arc, Chord, \ Pie, Path, Text, Pixmap = range(13) def __init__(self, parent=None): super(RenderArea, self).__init__(parent) self.pen = QtGui.QPen() self.brush = QtGui.QBrush() self.pixmap = QtGui.QPixmap() self.shape = RenderArea.Polygon self.antialiased = False self.transformed = False self.pixmap.load(':/images/qt-logo.png') self.setBackgroundRole(QtGui.QPalette.Base) self.setAutoFillBackground(True) def minimumSizeHint(self): return QtCore.QSize(100, 100) def sizeHint(self): return QtCore.QSize(400, 200) def setShape(self, shape): self.shape = shape self.update() def setPen(self, pen): self.pen = pen self.update() def setBrush(self, brush): self.brush = brush self.update() def setAntialiased(self, antialiased): self.antialiased = antialiased self.update() def setTransformed(self, transformed): self.transformed = transformed self.update() def paintEvent(self, event): rect = QtCore.QRect(10, 20, 80, 60) path = QtGui.QPainterPath() path.moveTo(20, 80) path.lineTo(20, 30) path.cubicTo(80, 0, 50, 50, 80, 80) startAngle = 30 * 16 arcLength = 120 * 16 painter = QtGui.QPainter(self) painter.setPen(self.pen) painter.setBrush(self.brush) if self.antialiased: painter.setRenderHint(QtGui.QPainter.Antialiasing) for x in range(0, self.width(), 100): for y in range(0, self.height(), 100): painter.save() painter.translate(x, y) if self.transformed: painter.translate(50, 50) painter.rotate(60.0) painter.scale(0.6, 0.9) painter.translate(-50, -50) if self.shape == RenderArea.Line: painter.drawLine(rect.bottomLeft(), rect.topRight()) elif self.shape == RenderArea.Points: painter.drawPoints(RenderArea.points) elif self.shape == RenderArea.Polyline: painter.drawPolyline(RenderArea.points) elif self.shape == RenderArea.Polygon: painter.drawPolygon(RenderArea.points) elif self.shape == RenderArea.Rect: painter.drawRect(rect) elif self.shape == RenderArea.RoundedRect: painter.drawRoundedRect(rect, 25, 25, QtCore.Qt.RelativeSize) elif self.shape == RenderArea.Ellipse: painter.drawEllipse(rect) elif self.shape == RenderArea.Arc: painter.drawArc(rect, startAngle, arcLength) elif self.shape == RenderArea.Chord: painter.drawChord(rect, startAngle, arcLength) elif self.shape == RenderArea.Pie: painter.drawPie(rect, startAngle, arcLength) elif self.shape == RenderArea.Path: painter.drawPath(path) elif self.shape == RenderArea.Text: painter.drawText(rect, QtCore.Qt.AlignCenter, "Qt by\nQt Software") elif self.shape == RenderArea.Pixmap: painter.drawPixmap(10, 10, self.pixmap) painter.restore() painter.setPen(self.palette().dark().color()) painter.setBrush(QtCore.Qt.NoBrush) painter.drawRect(QtCore.QRect(0, 0, self.width() - 1, self.height() - 1)) IdRole = QtCore.Qt.UserRole class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() self.renderArea = RenderArea() self.shapeComboBox = QtGui.QComboBox() self.shapeComboBox.addItem("Polygon", RenderArea.Polygon) self.shapeComboBox.addItem("Rectangle", RenderArea.Rect) self.shapeComboBox.addItem("Rounded Rectangle", RenderArea.RoundedRect) self.shapeComboBox.addItem("Ellipse", RenderArea.Ellipse) self.shapeComboBox.addItem("Pie", RenderArea.Pie) self.shapeComboBox.addItem("Chord", RenderArea.Chord) self.shapeComboBox.addItem("Path", RenderArea.Path) self.shapeComboBox.addItem("Line", RenderArea.Line) self.shapeComboBox.addItem("Polyline", RenderArea.Polyline) self.shapeComboBox.addItem("Arc", RenderArea.Arc) self.shapeComboBox.addItem("Points", RenderArea.Points) self.shapeComboBox.addItem("Text", RenderArea.Text) self.shapeComboBox.addItem("Pixmap", RenderArea.Pixmap) shapeLabel = QtGui.QLabel("&Shape:") shapeLabel.setBuddy(self.shapeComboBox) self.penWidthSpinBox = QtGui.QSpinBox() self.penWidthSpinBox.setRange(0, 20) self.penWidthSpinBox.setSpecialValueText("0 (cosmetic pen)") penWidthLabel = QtGui.QLabel("Pen &Width:") penWidthLabel.setBuddy(self.penWidthSpinBox) self.penStyleComboBox = QtGui.QComboBox() self.penStyleComboBox.addItem("Solid", QtCore.Qt.SolidLine) self.penStyleComboBox.addItem("Dash", QtCore.Qt.DashLine) self.penStyleComboBox.addItem("Dot", QtCore.Qt.DotLine) self.penStyleComboBox.addItem("Dash Dot", QtCore.Qt.DashDotLine) self.penStyleComboBox.addItem("Dash Dot Dot", QtCore.Qt.DashDotDotLine) self.penStyleComboBox.addItem("None", QtCore.Qt.NoPen) penStyleLabel = QtGui.QLabel("&Pen Style:") penStyleLabel.setBuddy(self.penStyleComboBox) self.penCapComboBox = QtGui.QComboBox() self.penCapComboBox.addItem("Flat", QtCore.Qt.FlatCap) self.penCapComboBox.addItem("Square", QtCore.Qt.SquareCap) self.penCapComboBox.addItem("Round", QtCore.Qt.RoundCap) penCapLabel = QtGui.QLabel("Pen &Cap:") penCapLabel.setBuddy(self.penCapComboBox) self.penJoinComboBox = QtGui.QComboBox() self.penJoinComboBox.addItem("Miter", QtCore.Qt.MiterJoin) self.penJoinComboBox.addItem("Bevel", QtCore.Qt.BevelJoin) self.penJoinComboBox.addItem("Round", QtCore.Qt.RoundJoin) penJoinLabel = QtGui.QLabel("Pen &Join:") penJoinLabel.setBuddy(self.penJoinComboBox) self.brushStyleComboBox = QtGui.QComboBox() self.brushStyleComboBox.addItem("Linear Gradient", QtCore.Qt.LinearGradientPattern) self.brushStyleComboBox.addItem("Radial Gradient", QtCore.Qt.RadialGradientPattern) self.brushStyleComboBox.addItem("Conical Gradient", QtCore.Qt.ConicalGradientPattern) self.brushStyleComboBox.addItem("Texture", QtCore.Qt.TexturePattern) self.brushStyleComboBox.addItem("Solid", QtCore.Qt.SolidPattern) self.brushStyleComboBox.addItem("Horizontal", QtCore.Qt.HorPattern) self.brushStyleComboBox.addItem("Vertical", QtCore.Qt.VerPattern) self.brushStyleComboBox.addItem("Cross", QtCore.Qt.CrossPattern) self.brushStyleComboBox.addItem("Backward Diagonal", QtCore.Qt.BDiagPattern) self.brushStyleComboBox.addItem("Forward Diagonal", QtCore.Qt.FDiagPattern) self.brushStyleComboBox.addItem("Diagonal Cross", QtCore.Qt.DiagCrossPattern) self.brushStyleComboBox.addItem("Dense 1", QtCore.Qt.Dense1Pattern) self.brushStyleComboBox.addItem("Dense 2", QtCore.Qt.Dense2Pattern) self.brushStyleComboBox.addItem("Dense 3", QtCore.Qt.Dense3Pattern) self.brushStyleComboBox.addItem("Dense 4", QtCore.Qt.Dense4Pattern) self.brushStyleComboBox.addItem("Dense 5", QtCore.Qt.Dense5Pattern) self.brushStyleComboBox.addItem("Dense 6", QtCore.Qt.Dense6Pattern) self.brushStyleComboBox.addItem("Dense 7", QtCore.Qt.Dense7Pattern) self.brushStyleComboBox.addItem("None", QtCore.Qt.NoBrush) brushStyleLabel = QtGui.QLabel("&Brush Style:") brushStyleLabel.setBuddy(self.brushStyleComboBox) otherOptionsLabel = QtGui.QLabel("Other Options:") self.antialiasingCheckBox = QtGui.QCheckBox("&Antialiasing") self.transformationsCheckBox = QtGui.QCheckBox("&Transformations") self.shapeComboBox.activated.connect(self.shapeChanged) self.penWidthSpinBox.valueChanged.connect(self.penChanged) self.penStyleComboBox.activated.connect(self.penChanged) self.penCapComboBox.activated.connect(self.penChanged) self.penJoinComboBox.activated.connect(self.penChanged) self.brushStyleComboBox.activated.connect(self.brushChanged) self.antialiasingCheckBox.toggled.connect(self.renderArea.setAntialiased) self.transformationsCheckBox.toggled.connect(self.renderArea.setTransformed) mainLayout = QtGui.QGridLayout() mainLayout.setColumnStretch(0, 1) mainLayout.setColumnStretch(3, 1) mainLayout.addWidget(self.renderArea, 0, 0, 1, 4) mainLayout.setRowMinimumHeight(1, 6) mainLayout.addWidget(shapeLabel, 2, 1, QtCore.Qt.AlignRight) mainLayout.addWidget(self.shapeComboBox, 2, 2) mainLayout.addWidget(penWidthLabel, 3, 1, QtCore.Qt.AlignRight) mainLayout.addWidget(self.penWidthSpinBox, 3, 2) mainLayout.addWidget(penStyleLabel, 4, 1, QtCore.Qt.AlignRight) mainLayout.addWidget(self.penStyleComboBox, 4, 2) mainLayout.addWidget(penCapLabel, 5, 1, QtCore.Qt.AlignRight) mainLayout.addWidget(self.penCapComboBox, 5, 2) mainLayout.addWidget(penJoinLabel, 6, 1, QtCore.Qt.AlignRight) mainLayout.addWidget(self.penJoinComboBox, 6, 2) mainLayout.addWidget(brushStyleLabel, 7, 1, QtCore.Qt.AlignRight) mainLayout.addWidget(self.brushStyleComboBox, 7, 2) mainLayout.setRowMinimumHeight(8, 6) mainLayout.addWidget(otherOptionsLabel, 9, 1, QtCore.Qt.AlignRight) mainLayout.addWidget(self.antialiasingCheckBox, 9, 2) mainLayout.addWidget(self.transformationsCheckBox, 10, 2) self.setLayout(mainLayout) self.shapeChanged() self.penChanged() self.brushChanged() self.antialiasingCheckBox.setChecked(True) self.setWindowTitle("Basic Drawing") def shapeChanged(self): shape = self.shapeComboBox.itemData(self.shapeComboBox.currentIndex(), IdRole) self.renderArea.setShape(shape) def penChanged(self): width = self.penWidthSpinBox.value() style = QtCore.Qt.PenStyle(self.penStyleComboBox.itemData( self.penStyleComboBox.currentIndex(), IdRole)) cap = QtCore.Qt.PenCapStyle(self.penCapComboBox.itemData( self.penCapComboBox.currentIndex(), IdRole)) join = QtCore.Qt.PenJoinStyle(self.penJoinComboBox.itemData( self.penJoinComboBox.currentIndex(), IdRole)) self.renderArea.setPen(QtGui.QPen(QtCore.Qt.blue, width, style, cap, join)) def brushChanged(self): style = QtCore.Qt.BrushStyle(self.brushStyleComboBox.itemData( self.brushStyleComboBox.currentIndex(), IdRole)) if style == QtCore.Qt.LinearGradientPattern: linearGradient = QtGui.QLinearGradient(0, 0, 100, 100) linearGradient.setColorAt(0.0, QtCore.Qt.white) linearGradient.setColorAt(0.2, QtCore.Qt.green) linearGradient.setColorAt(1.0, QtCore.Qt.black) self.renderArea.setBrush(QtGui.QBrush(linearGradient)) elif style == QtCore.Qt.RadialGradientPattern: radialGradient = QtGui.QRadialGradient(50, 50, 50, 70, 70) radialGradient.setColorAt(0.0, QtCore.Qt.white) radialGradient.setColorAt(0.2, QtCore.Qt.green) radialGradient.setColorAt(1.0, QtCore.Qt.black) self.renderArea.setBrush(QtGui.QBrush(radialGradient)) elif style == QtCore.Qt.ConicalGradientPattern: conicalGradient = QtGui.QConicalGradient(50, 50, 150) conicalGradient.setColorAt(0.0, QtCore.Qt.white) conicalGradient.setColorAt(0.2, QtCore.Qt.green) conicalGradient.setColorAt(1.0, QtCore.Qt.black) self.renderArea.setBrush(QtGui.QBrush(conicalGradient)) elif style == QtCore.Qt.TexturePattern: self.renderArea.setBrush(QtGui.QBrush(QtGui.QPixmap(':/images/brick.png'))) else: self.renderArea.setBrush(QtGui.QBrush(QtCore.Qt.green, style)) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/painting/basicdrawing/basicdrawing.qrc0000644000076500000240000000021012536324427025175 0ustar philstaff00000000000000 images/brick.png images/qt-logo.png PyQt-x11-gpl-4.11.4/examples/painting/basicdrawing/basicdrawing_rc2.py0000644000076500000240000004613112536324427025622 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:48:13 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x02\xff\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x10\x08\x02\x00\x00\x00\xf8\x62\xea\x0e\ \x00\x00\x02\xc6\x49\x44\x41\x54\x78\x5e\x2d\x94\x5b\x6e\x14\x31\ \x10\x45\xaf\x1f\xdd\x93\x87\x26\x3b\x61\x13\x6c\x82\x2c\x05\x09\ \x85\xf5\xc0\x17\x1f\x91\xf8\x60\x09\x2c\x01\x96\x00\x4a\x08\x93\ \x7e\xda\x2e\xd3\x07\x5b\xb2\x3c\xb7\xed\xaa\xba\xe5\x5b\x55\xe3\ \x7e\xff\xf8\xe4\x83\x8e\x25\x2f\xef\x24\xa7\x5a\xa5\xaa\x6a\x32\ \x93\x8a\x8a\xa9\x16\xf1\x79\xec\x19\x33\xe7\xe4\x3c\x27\xcd\x06\ \x50\xba\x57\x18\x15\x4f\x0a\x83\x42\x94\x8b\xba\x7f\x77\x1f\xe5\ \xb4\x5d\x7e\x1e\xa7\xde\xcb\x60\x92\x0b\x38\x94\x24\xcb\xca\x3b\ \x7b\x2d\x44\xb7\xa4\x92\x89\xee\xa3\x24\x61\x73\x2c\x0c\xb8\x75\ \x9c\x11\x74\xb8\xd6\xd5\x59\xe1\xa4\x8f\x0f\x0f\xd5\x14\x49\xdf\ \x6b\x7b\xf9\x1e\x07\xf9\xa1\xa7\xa0\x22\xdb\xb4\x4d\x4a\xb3\xd2\ \xda\x92\x85\xac\xac\x30\xf9\x08\x4d\x49\x4a\x0b\x87\x32\x59\x85\ \xd2\x7b\x72\x1f\x6f\x95\xee\xf4\xf5\xdb\xa3\x19\x0f\x8d\x3e\xca\ \x07\xd0\x7e\x79\x3c\xf0\xe9\x2c\x13\x49\xa5\x49\xeb\x93\xd6\xbf\ \x5a\x9e\xb5\xbd\x76\x11\xf6\x49\x79\xc3\xd8\xb2\x20\x98\x94\x93\ \xbc\x07\xd7\x8a\x2c\xa7\x3b\xd2\x1f\x6e\x39\x21\x90\x14\x11\x34\ \x70\x67\x41\xf1\x4a\x68\x35\x08\xb9\xb9\xee\xc5\xc8\x8b\x0a\x42\ \x69\x3f\xc0\x26\x09\x17\xcb\xec\x82\x09\x25\x11\x30\xe2\xbe\x47\ \xc8\x10\x16\x5f\x08\xc4\x93\x79\x84\xc2\x08\x46\x90\x4a\xc4\x7d\ \xd6\xf2\x87\xac\xab\xc0\x79\x26\x5f\x3c\x0d\x29\x9c\x47\x3d\x21\ \x9d\xd2\x84\x4b\x74\x94\x24\x9c\x90\x8e\xc7\xad\x70\x53\x03\x08\ \xbc\x58\x4e\x56\x10\x61\xbb\x68\x7d\x39\xa2\x03\xa8\x81\x61\x3d\ \x3f\xc1\x44\x6d\x33\x42\x43\x30\x37\x2f\x70\x2d\x00\x33\x82\xaa\ \xe2\x95\x56\x42\x21\x11\x46\xad\x6e\x99\x23\x42\x1f\xeb\xb9\xfb\ \x13\x55\xec\x14\x79\x07\xca\xa1\x80\x84\xb1\x0f\xc8\x32\xdc\x48\ \xb5\xe9\x86\x86\xbe\x35\x71\x81\x2f\x9a\x61\x1a\xbc\x6c\x04\x94\ \x0d\xe6\xfd\x42\xee\xfb\x2b\x5a\xf1\xa6\x05\x07\x1f\xa1\x2c\x49\ \x00\x4f\xd9\x54\x7b\xdc\x38\x8a\x11\xf2\x54\x51\xea\x1d\xc1\x51\ \x55\xac\xd6\x8a\x46\x2e\x56\xf0\xa7\xb5\x0d\x4c\x9b\x2e\xad\x23\ \x49\xb6\x4b\x81\x08\xec\x36\x62\x23\x75\xee\x10\x28\xcc\x70\xcb\ \x67\x97\xce\xc3\x11\xf9\x31\x59\xa6\x43\xbc\x27\x90\x25\xc8\x5a\ \xe5\x6b\xe5\x24\x2f\x90\x95\x95\xd4\xe4\xe0\xa8\x4e\xb6\x73\x9b\ \x92\xe4\x35\xde\xc8\x0d\xaa\x6a\xd5\x6e\x94\x3d\xa1\x48\xc3\x24\ \x5a\x65\xfa\x45\x0a\x96\x7b\x3d\x10\x77\x54\x0a\xca\x85\x39\xd8\ \xa7\x3e\x50\x88\x96\xb9\x95\xa3\x2a\xb5\x80\xd3\xcc\x5e\x79\x19\ \x41\xb9\x45\x15\x02\x46\xcb\xe8\x30\x3f\x43\x30\x9e\xb9\x2b\x3b\ \x59\xcb\x14\x22\x4b\x7d\x1a\xda\x28\xc1\x9d\x50\xb5\xff\x3d\xc4\ \x6b\x85\x13\x98\x96\x15\xb8\x71\x93\x62\xc0\x3e\xa2\x7b\xd6\x97\ \xcf\x4c\xf6\xe9\xdc\xa7\x54\x28\x40\xd6\xfb\x2c\xd2\xbf\x40\x69\ \xd6\x95\xad\x6d\x0c\x1d\xd8\x2f\x0a\x9b\xc2\xd4\xab\xc8\x1a\x60\ \x8a\x9d\x09\x02\x7d\x78\xff\xd0\x06\x2f\x8c\x30\x4b\x62\xfa\x33\ \xba\x1b\x93\xd5\x0b\x53\xba\x32\x92\x41\x46\x94\x91\x70\x2e\x61\ \x2f\x07\x06\x08\x62\x30\x25\x94\x7b\xfb\x46\xf2\x78\x49\x5d\x38\ \x80\x5a\x3b\x61\x41\x38\x74\x07\x34\x3b\xd2\xaf\xed\x05\x70\x74\ \x17\x34\x81\xc0\x35\x8e\xd0\x5b\xee\x1f\xb6\x84\x15\x24\xe2\x59\ \x92\x70\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x0e\x70\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x50\x00\x00\x00\x50\x08\x06\x00\x00\x00\x8e\x11\xf2\xad\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\x3d\x00\x00\x01\x3d\ \x01\x9f\xdc\x2b\xea\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x0d\xed\x49\x44\ \x41\x54\x78\x9c\xed\x5c\x79\x70\x1c\xd5\x9d\xfe\x7a\x46\x73\x69\ \x34\xba\x0f\xcb\x96\x35\xbe\x8d\x90\x10\xbe\x30\x8e\x85\xed\x10\ \x67\x51\x44\x4c\x16\x58\x76\x97\xb0\xb0\x04\x36\x45\x2a\x86\x62\ \xf1\x06\xb6\x48\xc2\x62\x90\x8b\x50\xd9\xb0\x5b\x9b\x84\x85\x62\ \xd9\x0a\x09\x6c\x41\xc0\x2c\xb5\x0e\x87\x11\xc2\x16\xb2\x25\x1b\ \xb0\x6c\xd9\x96\xe4\xdb\xb2\x75\x59\xb2\x67\xac\xd1\x68\xa6\xef\ \xee\xf7\xf6\x8f\xd6\x31\xb6\xa7\xbb\x67\xa4\x19\x8d\x30\xf9\xaa\ \x5c\xe5\x79\xfd\xbd\xee\x5f\x7f\xfa\xbd\x7e\xc7\xef\xf7\x1e\x43\ \x29\x45\xbc\xf0\xd4\x78\xcb\x01\x54\x03\xa8\x04\x90\xe3\x70\x5a\ \x0a\x2a\x96\x67\x2c\xc8\xcc\xb6\x7a\xac\x69\x8c\xcd\x66\x63\x60\ \xb3\x5b\xa8\xa2\x50\x91\xe7\xd4\x7e\x91\xa7\xc7\x65\x89\xb4\xc8\ \x32\xdd\xa9\x2a\xb4\x69\xcf\x96\x0e\x12\xf7\x43\xa7\x29\x98\x58\ \x05\xf4\xd4\x78\xad\x00\x9e\x06\xf0\x20\x80\x12\x00\xb0\x58\x19\ \x2c\x2a\x4f\x47\xc5\x72\x37\xec\x0e\x4b\x4c\xf7\x51\x15\x8a\x70\ \x48\xe5\x78\x96\x9c\x17\x05\x72\x52\x92\xc8\x7e\x45\xa2\x0d\x8a\ \x42\x1b\xf7\x6c\xe9\x90\x26\xf8\x1e\x29\x43\x4c\x02\x7a\x6a\xbc\ \x33\x00\xfc\x11\xc0\xba\xd1\x32\xbb\xc3\x82\xea\x3b\xf3\xe0\xc9\ \xb2\x26\xc4\x10\xa2\x52\x84\x43\xaa\xc0\xb3\xe4\x82\x28\x90\x53\ \x92\x48\x0e\xc8\x32\xfd\x4c\x91\xe9\x8e\x3d\x5b\x3a\x84\x84\x3c\ \x24\x09\x30\x15\xd0\x53\xe3\xf5\x02\xf8\x1c\xc0\x8c\xc8\xf2\xb5\ \xd5\xd9\x28\x99\xeb\x4c\xa2\x69\x1a\x08\x01\xd8\x90\x2a\xf2\xac\ \xea\x13\x04\xd2\x29\x89\xa4\x55\x96\xe8\x2e\x55\xa1\x9f\x34\xd7\ \x76\x84\x93\x6e\x80\x09\x62\x11\xf0\x1d\x00\x7f\x1d\x59\xb6\xb0\ \x3c\x1d\x37\xac\xc9\x4c\xa6\x5d\xa6\xa0\x14\x60\xc3\xaa\xc4\x85\ \x55\xbf\xc8\x93\x33\x92\x48\x0f\xca\x12\xd9\xad\x28\xb4\xbe\xb9\ \xb6\x63\x70\xaa\xec\x30\x14\xd0\x53\xe3\xfd\x26\x80\x86\xc8\x32\ \xb7\xc7\x8a\x0d\x77\xe7\xc3\x6a\x65\x92\x6c\xda\xc4\x40\x29\xc0\ \x85\x55\x99\x63\xd5\x41\x41\x13\xf6\xb0\x2c\x91\x26\x45\xa6\x75\ \xcd\xb5\x1d\x17\x12\xfd\x3c\x33\x01\x9b\x01\xac\x8e\x2c\x9b\xb7\ \xd8\x85\x55\x37\x67\x25\xda\x8e\x29\x01\xc7\xaa\x0a\x17\x26\x01\ \x81\x27\x5d\x92\x40\xda\x64\x89\xec\x91\x15\x5a\xd7\xfc\x6c\x47\ \xcf\x44\xef\xa9\x2b\xa0\xa7\xc6\x9b\x06\x80\x05\x60\x8f\x2c\x5f\ \x71\x53\x26\x16\x55\xa4\x4f\xf4\x79\xd3\x12\x3c\x47\x54\x2e\xac\ \x0e\x09\x1c\xe9\x11\x45\xd2\x2e\x4b\x74\xaf\x22\x93\xba\xa6\x67\ \x3b\x4e\x9b\xd5\x35\x12\xf0\x5a\x00\x1d\x97\x97\xdf\x72\x47\x1e\ \xf2\x8b\x6c\x93\xb7\xfa\x2b\x00\x91\x27\x84\x0d\xab\xc1\xbe\x6e\ \xb1\x64\x4f\x6d\x07\x17\x8d\x63\x34\x78\xab\xb8\xbc\x80\x61\x80\ \x9c\xbc\xb4\x84\x19\x38\xdd\xe1\x70\x59\x2c\xb9\x05\xb6\x1c\xe6\ \xb2\x56\x18\x09\x23\x01\xe7\x5c\x5e\x60\xb3\x5b\x60\x4d\x9b\x9e\ \x9d\x47\xaa\x60\x24\x60\x6c\x53\x8b\xaf\x39\xfe\x2c\xd2\x24\xf1\ \x67\x01\x27\x89\x94\xf6\x08\x92\x48\xc0\xb1\x04\x16\xd8\x30\x23\ \xb7\x00\x79\x99\x39\x10\x55\x0e\x41\xd1\x0f\x51\xe1\x53\x69\x5a\ \xcc\x98\x52\x01\x55\x15\xe8\xeb\x12\x70\xf6\xa4\x00\x22\xda\xb0\ \x7e\xc5\x6a\x3c\x76\xeb\x46\x5c\xef\x5d\x72\x09\x8f\x52\x82\xfe\ \xf0\x59\x9c\x09\x74\xe0\xb8\x7f\x3f\x5a\xfa\xea\xa1\x12\x65\x2a\ \x4d\x8d\x19\x53\x26\xa0\x6f\x40\xc2\xde\x86\x61\x88\x3c\xc1\xa3\ \x77\xdf\x83\x67\xbe\xff\x9c\x2e\x97\x61\x2c\x98\xe9\x99\x87\x99\ \x9e\x79\xa8\x2a\xbd\x0d\x77\x94\xfd\x18\x75\x27\xdf\x40\x53\xd7\ \x36\xc8\x64\x7a\xad\x78\x4d\x89\x80\xed\xfb\x59\xb4\xed\x0b\x21\ \x27\xd7\x89\x4f\x5f\xdc\x8a\xf2\xd9\x95\x71\xd5\xcf\x71\x15\xe1\ \xee\xca\xc7\xf1\x8d\xd2\xef\xe2\xa5\x2f\x1e\xc7\x90\xe0\x37\xe4\ \xab\x32\xc5\x91\x43\x2c\x00\xe0\xae\x6f\xdd\x8a\x9c\xac\x0c\x0c\ \x09\x3e\x04\xf8\x0b\x18\xe2\x2f\x40\x54\x13\xf7\x79\x48\xba\x80\ \xc7\xdb\x39\x1c\xde\x17\x82\xdb\x6d\xc3\x07\xcf\xbf\x13\xb7\x78\ \x91\xf0\x66\x97\xe1\xa7\xeb\x7e\x8f\x17\x3f\xff\x09\x7a\x82\xc7\ \x75\x79\xbe\xf3\x32\xda\x5a\xc2\x60\x18\x06\xdb\x9e\x78\x02\x05\ \x99\x85\x63\xd7\x5a\xfa\xea\xf1\x6a\xcb\x53\x13\xb6\xe1\x72\x24\ \xb5\x17\xee\xef\x11\x71\xa0\x69\x18\x0c\xc3\xe0\xf5\xa7\x7f\x8b\ \xeb\x4a\xaf\x9f\xf4\x3d\xb3\x9d\x05\x78\x64\xd5\xbf\x23\xc3\x9e\ \xad\xcb\xf1\x0d\x68\xcd\xbc\xb0\xd0\x7d\x89\x78\xc9\x40\xd2\x04\ \xa4\x00\x5a\xf7\x86\x40\x01\x54\xdd\x50\x86\x5b\x2a\x6b\x4c\xeb\ \x88\xb2\x84\xf7\xf6\xbe\x8b\x8f\x0f\x7e\x68\xc8\xcb\x76\xe6\xe3\ \x81\x65\x9b\xc1\x20\xfa\xac\xc8\xd7\xaf\x09\x58\xb1\x70\x41\xbc\ \x66\xc7\x8d\xa4\x09\xd8\x79\x8c\xc7\xd0\xa0\x82\x34\x9b\x05\xbf\ \xdd\xf8\x6b\x53\xfe\xfe\x73\x3b\xb0\xa5\xf1\xfb\x78\x69\x57\x2d\ \xee\xd9\xfc\x30\xca\x7f\xb4\x04\x6f\x34\xfe\x4e\x97\x5f\x51\xb4\ \x1a\xab\x4b\x37\x5c\x51\x4e\x08\x85\xef\x82\x0c\x00\x58\x5b\x59\ \x35\xf1\x17\x88\x11\x49\x11\x90\x52\x8a\xb6\x7d\xda\x6a\xfb\x77\ \xd6\xac\xc4\x82\xa2\x45\x86\xfc\xfe\xd0\x19\xfc\xfe\x40\x2d\x7c\ \x6c\x2f\xe6\x5f\xe3\xc2\xcd\xdf\xcd\x45\x77\x4f\x00\x8f\xfe\xaa\ \x16\xfb\x3b\xbf\xd0\xad\x57\xbd\xf0\xbe\x2b\xbc\x30\x70\x51\x81\ \x2a\x6b\x2b\x4c\x7f\xb9\xf2\xce\x49\xbe\x89\x39\x92\x22\xa0\x6f\ \x40\x06\xc7\xaa\x00\x80\x1f\xd6\x3c\x68\xca\x7f\xb5\xe5\xe7\x90\ \xd4\xf1\xb8\x51\x7e\x91\x0d\x73\x16\x38\xa1\xa8\x14\x0f\xbe\xb0\ \x51\xb7\x5e\x51\x86\x17\x95\x33\x6e\xba\xec\xd9\x5a\xf3\xcd\xce\ \x71\x62\x7e\xd1\x57\xb4\x09\xf7\x76\x8a\x00\x80\xac\x6c\x07\xd6\ \x57\x54\x1b\x72\xfd\x6c\x1f\xfa\x86\xaf\x5c\xb7\xac\x5c\xe9\x01\ \x00\x74\x9e\xf1\xe3\x95\x4f\x5e\xd4\xad\xbf\x6e\xee\x5d\x97\xfc\ \xf6\xf5\x6b\xcd\xb7\x6c\x5e\x69\x5c\x36\x4f\x14\x49\x19\xc6\xf4\ \x9c\xd5\xbc\x69\xf5\x12\xf3\x21\x4b\x67\xa0\x3d\x6a\x79\x86\xc7\ \x0a\x57\xba\x05\x3c\x47\xb0\xf3\x50\x23\x7e\x74\xcb\x23\x51\x79\ \x8b\xf2\x97\x61\xef\x27\x3c\xba\xbb\x82\xf8\x76\xd5\x52\xfc\xdf\ \x53\x7f\x40\x8f\xbf\x1b\xc5\x39\xc5\x51\xf9\x59\xce\x02\x2c\xce\ \x5f\x0e\x56\x1e\x06\x2b\x0d\x83\x93\x86\x27\x35\x2e\x4c\xb8\x80\ \xc3\x01\x15\x6c\x48\x6b\xbe\x77\x54\x7d\xcf\x94\xaf\x27\x20\x00\ \xe4\x16\xda\xd1\x77\x56\xc0\xd1\x4e\xfd\x95\x75\x9b\xc5\x8e\x55\ \x65\x2b\x71\xa6\xb3\x1e\x84\x02\x8b\x8a\xaf\xc1\xa2\xe2\x6b\x74\ \xf9\x0b\xf3\x96\xe0\x9f\xaa\x5e\xba\xa4\x6c\x4f\xf7\x07\xf8\x43\ \xeb\x16\x53\x5b\xa3\x21\xe1\x4d\x78\x28\x20\x8f\xfd\x7f\xcd\x35\ \xeb\x0c\x98\x1a\xce\x04\xae\x88\x1a\x8c\x21\xaf\x40\x0b\x1d\xf4\ \x9e\x0b\x80\x50\xfd\x6c\x90\xf5\xcb\xd6\xc6\x61\xe1\x95\x60\x98\ \x89\x2f\x12\x27\x5c\xc0\xe1\x80\xe6\x7d\x4e\x57\x1a\x4a\xf2\xbd\ \x86\x5c\x0a\x8a\xde\xe0\x09\xdd\xeb\x79\x85\x5a\x03\x91\x25\x82\ \xcf\x4f\x34\xe9\xf2\x16\xcf\x5e\x3c\x01\x4b\x13\x83\x24\x08\xa8\ \xad\x9a\x14\xe5\x9b\x07\xde\x25\x45\x80\x42\x64\xdd\xeb\x99\xd9\ \xe3\xc1\xab\x96\x53\xfb\x74\x79\x79\x9e\xdc\x38\x2c\x4c\x2c\x12\ \xfe\x0d\x0c\x8e\x34\xe1\xd2\x99\xd1\x3f\xe2\x91\x30\xfb\x78\xdb\ \x22\x42\x39\x41\x2e\xa4\xcb\xcb\x72\xe5\xe2\x5b\x1b\x72\x11\x0e\ \xf6\x63\xc9\xc3\x2b\x90\x9b\x99\x89\x9d\xcf\xef\x8c\xca\x1d\x08\ \xf6\xe0\xc8\xc0\x21\xd8\x2d\x76\x38\x6d\x6e\x64\xa7\x67\x21\xc8\ \x5f\x34\xb5\x55\x0f\x09\x17\x90\x63\xb5\x6f\xd5\xac\xfc\x22\x53\ \xae\xa8\x44\x8d\x14\x8e\x21\xcd\x36\xde\x40\x38\x81\xd5\xe5\x65\ \xd8\x73\x50\x5c\xe2\xc0\x59\x81\xc3\xe9\xce\x20\x7a\x1c\xfa\x82\ \xf4\x86\x8f\xe1\xed\x63\x13\xeb\x30\xa2\x21\xe1\x4d\x58\x91\x35\ \x01\xdd\xae\x0c\x53\xae\xa8\x1a\x27\x5d\x59\x2c\xda\x3f\x00\x60\ \x45\x7d\x01\x2d\x8c\x05\x6e\x7b\x6a\xb2\x25\x12\x2a\x20\x21\x14\ \xaa\xd6\x87\x20\x33\x16\x01\x4d\x3c\x10\xc0\x58\x18\x95\xe3\x8d\ \x9b\xbb\xc7\x91\x63\x6e\x60\x12\x90\x50\x01\xd5\x88\x55\xf7\x98\ \x3c\x30\x86\xb8\x87\x6d\xa4\x19\x73\xe2\xd7\x40\x40\x59\x1e\x1f\ \xab\x65\xb9\xcc\x7b\xe1\x58\x66\x00\x69\x23\x1d\xb1\x99\x80\x99\ \x8e\xd4\xf4\xc4\x89\x6d\xc2\xca\x78\x9e\x8d\xdb\xe5\x36\xe5\x4b\ \x31\x78\xe0\x68\x47\x22\x88\xc6\xdf\x4b\x8f\xfd\x2a\xf0\x40\x5b\ \x44\x9e\xf4\x60\xc8\x3c\xc7\xd1\x6a\x89\x61\x10\x30\x92\xfc\xa4\ \xb7\x78\x3a\x0a\x0b\x93\x9a\x10\x77\x42\x9f\x6a\x77\x30\x18\x7d\ \xcf\x0b\x41\x9f\x39\xdf\xea\x32\xe5\x28\x23\x5e\xed\x72\x38\x0c\ \x79\xac\x3c\x6c\x6e\x60\x12\x90\x50\x01\x19\x86\x81\xcd\xa6\x29\ \x78\x31\x68\x3e\x38\xb5\xa7\x99\xe7\x58\x8f\x76\x4c\x0e\xbb\x31\ \x97\x95\xae\x02\x01\x01\xc0\xe1\xd4\x6e\x39\x38\x1c\x30\xe7\xc6\ \xe0\x81\xb2\x3c\xea\x81\x26\x02\x5e\x0d\x1e\x08\x00\x0e\xa7\xb6\ \xed\x61\x30\x6c\xfe\x42\x0e\x6b\x0c\x1e\xa8\x8e\x0a\x68\x2c\xf6\ \x55\xe3\x81\x4e\xa7\xd6\x84\x87\x43\xe6\x3b\x10\xec\x26\x02\x52\ \x68\x1b\x73\x00\x20\xdd\x44\x40\xee\x6a\xf1\x40\xfb\x48\x13\x0e\ \x71\xe6\xb3\x0c\x7b\x9a\xb1\x28\x6a\xc4\xb8\xd2\xed\x30\xce\xcb\ \xbe\x6a\x3c\xd0\x31\x32\x94\x61\x39\xf3\xcd\x45\x66\xdf\x40\x25\ \x62\x66\xe3\x72\xea\x0b\x28\x28\x2c\x08\x55\x63\x33\x30\xc1\x48\ \x9a\x07\xf2\x9c\xfe\x3a\xdf\x28\x1c\x69\x2e\xc3\x29\x98\x24\x8e\ \x7b\x60\x61\x56\x81\x2e\x2f\x68\x92\x2b\x93\x4c\x24\x5c\x40\x4f\ \xd6\xe8\xcc\x41\xc5\xc0\xd0\x39\x53\x7e\x69\x96\x7e\xfc\x22\xe0\ \x1f\xff\x23\x7c\xb3\x62\xbd\x2e\xef\x84\xbf\x35\x0e\x0b\x13\x8b\ \x84\x0b\x58\x50\x3c\xb2\x0a\x4a\x81\x6d\x5f\xbe\x67\xca\xf7\x66\ \x97\xe9\x5e\x1b\xf4\x6b\x6d\xd8\xe3\xb1\x63\x6e\xe1\x7c\x5d\xde\ \x51\xdf\x97\xf1\x19\x99\x40\x24\x5c\xc0\x74\xb7\x15\x6e\x8f\x36\ \x94\x69\x38\xb8\xcb\x94\x3f\x27\x47\x5f\xc0\x80\x6f\x64\x75\x7b\ \x96\x7e\x82\x10\xa5\x04\xc7\xfc\x2d\x31\xdb\x67\xd6\xf3\xc7\x8b\ \xa4\x4c\x20\x0b\x47\xbc\xf0\xd0\x49\xfd\x14\xb4\x51\xc4\xe2\x81\ \xd7\xcd\xd7\x4f\x0d\xe9\x0e\x9e\x00\x2b\x05\xb5\x1f\x31\x44\xd7\ \x66\x66\xea\x7b\xf2\x44\x90\x14\x01\x4b\xe7\x69\xf3\xd6\xbe\xbe\ \x20\x8e\xf4\xb6\x19\x72\xb3\x9d\x05\x51\x5f\x2a\x38\xa8\x8c\x75\ \x22\x35\x2b\xbe\xa3\x5b\xff\x58\x44\xf3\xb5\x3b\x34\x01\x65\x89\ \x42\x52\xc4\xa8\xfc\xbc\xf4\x62\x38\xd3\x12\xb7\x55\x2d\x29\x02\ \xce\xf4\x3a\xe0\x72\x5b\x41\x29\xc5\x0b\xef\xbd\x60\xca\xff\x9b\ \x8a\xc7\xae\x28\x3b\xf8\xa5\x36\x10\x5f\x5a\x31\x07\x77\xae\xfa\ \x5b\xdd\xba\x47\x22\x04\x4c\x77\x6b\x9f\x0e\x4a\x29\x4e\xf6\x47\ \xf7\x7e\x06\x0c\xfe\xaa\x7c\x13\x2e\x76\x66\xe2\xf4\xbe\x0c\xe4\ \x0e\xaf\xc5\x43\x95\xe6\xd9\x63\x7a\x48\x4a\x6a\x07\xc3\x30\x98\ \xb7\xd8\x85\x8e\x03\x61\x7c\xdc\xdc\x0c\xf5\x11\xc5\x70\xe9\xaa\ \xac\x60\x25\x2a\x67\xac\xc1\xe1\x81\xdd\x00\x80\xbe\x6e\x11\x7d\ \x67\x05\xd8\x1d\x16\xfc\xee\xf1\x57\x75\xeb\xf5\x87\xce\xe0\xb8\ \x7f\xff\xd8\x6f\x77\xc6\xf8\xee\xf9\xe3\x7d\x47\x75\xb3\x61\xd7\ \xce\xf9\x1e\xd6\x6e\x1a\xcf\x9a\x50\x88\x04\x1c\x8e\xf9\xf5\x2e\ \x41\xd2\x16\xd1\x16\x57\xa4\xc3\x66\x67\x10\x1a\x96\x51\xfb\xce\ \x66\x53\xfe\xbd\xd7\x3f\x89\xb2\x82\x1b\x71\xe4\x40\x18\xcd\xf5\ \x41\xac\x5c\x3a\x1f\x6f\xd5\xbe\x64\x98\x1a\xb7\xed\xe8\x2b\xa0\ \x11\x19\x0b\x69\x36\x06\xd9\xb9\xda\x1f\x6a\xc7\xa1\xe8\x61\xcd\ \x68\x88\xff\xd8\x8d\x71\x24\x4d\x40\x67\xba\x05\x4b\x57\x69\x19\ \x56\x2f\xfe\xf1\x4d\x9c\x3e\x7f\xca\x90\x9f\xe5\xcc\xc7\x63\xab\ \x7f\x83\xad\x8f\xd5\xa3\xfd\xb5\x5d\xd8\xf1\x8b\x9d\x86\x59\xad\ \x27\xfc\x07\xd0\xda\xdf\x70\x45\xf9\x75\x2b\xb4\x58\xcc\x3b\x1f\ \xd7\xc3\x1f\x8a\x6d\x80\x3d\x99\xdd\x7f\x49\x5d\xc6\x5d\x50\x96\ \x8e\xa2\x59\x76\x48\x22\xc1\xbd\xbf\xfc\x7b\xc3\xfc\x96\x51\xcc\ \xc8\x99\x89\x59\x79\xb3\x0d\x39\x01\xfe\x3c\xfe\xab\xe5\x67\x51\ \xaf\xcd\x9e\xeb\x44\xc9\x5c\x27\x04\x41\xc5\x7d\x2f\xdc\xa7\xdb\ \x99\x8c\xe2\xdc\xf0\x69\x34\x74\x6e\x35\xb5\x4b\x0f\xc9\xcd\xd2\ \x67\x80\xb5\xd5\x39\xd8\xf9\xc1\x20\xda\x8f\xf6\xe1\xb6\xda\x0d\ \xf8\x70\xf3\x47\x93\xba\x65\x48\x0c\xe0\x3f\xbf\x78\x1c\x21\x51\ \x67\xbd\x91\xd1\x0e\xc4\xe8\x3c\xc6\xe3\xd4\xc9\x53\x58\xb9\xe9\ \x1b\x78\xa0\xfa\x1e\xdc\xb8\x78\x15\x96\xcd\xbd\x01\x61\x39\x80\ \x63\xbe\x16\x1c\xf3\xed\xc3\x51\xdf\x3e\x0c\x8b\x13\xcf\x4a\x00\ \x8c\x37\x5c\x3f\x09\xe0\xf9\xc8\x32\xbb\xc3\x82\xbb\x1e\x88\x3f\ \xeb\x5d\x96\x28\x76\xd5\x05\x70\xbe\x4f\xc2\x9a\x1b\xcb\xf1\xf6\ \x93\x6f\xc3\xe3\xf4\xc4\x7d\x9f\xee\xe0\x71\xbc\xfc\xc5\x3f\x63\ \x90\x1f\x88\xbb\xee\x64\xd0\xbe\x3f\x9c\xd3\x5c\xdb\x31\x14\xed\ \xda\x94\x44\x62\x6c\x76\x06\xeb\x37\xe4\xe2\xc6\x75\x59\xf8\xbc\ \xf5\x08\xca\xff\x61\x05\xb6\xee\x79\x2b\xe6\xfa\x7e\xb6\x0f\x6f\ \x1e\xfe\x57\xfc\x72\xd7\x0f\xa7\x5c\x3c\x33\x4c\x5d\x28\x8b\x01\ \xe6\x97\xb9\x70\xc7\xfd\x85\x28\x5f\xee\xc4\x53\xaf\x6f\xc6\x82\ \x1f\x94\x63\xe3\xcb\x0f\x19\x2e\x3a\x10\xaa\x62\xcb\x67\xf7\xa2\ \xf1\xcc\xff\x6a\xc3\x8d\x69\x86\x29\x8f\x05\xa6\x59\x19\x94\xce\ \x77\x62\x6d\x75\x0e\x06\x03\x2c\xde\xf8\x53\x1d\x9e\xdb\xaa\x9f\ \xec\x63\x61\xac\x58\x98\xb7\x74\x0a\x2d\x8c\x0f\x29\xdb\x2f\x6c\ \xb1\x00\xb3\x4a\xb5\x89\xfd\x8e\x2f\xf7\x18\x72\xab\xbc\xb7\x4d\ \x85\x49\x51\xa1\x28\x14\x94\x42\x77\xb9\x3b\xa5\x1b\xae\x4b\xe6\ \x6a\x73\xe6\xde\xde\x21\x9c\x3a\xaf\x9f\xa9\xba\xb4\xf8\x66\xd4\ \x2c\xbc\x3f\x25\xf9\x2f\x6c\x48\xe5\x8d\x4e\x9b\x4b\xa9\x80\x33\ \x4b\x1d\xb0\x5a\xb5\x99\xc0\x7f\xd7\xbd\x62\xc8\xbd\xfd\xda\x8d\ \xf8\x55\xf5\x47\xf8\xc7\x55\x2f\xe3\xf6\xb2\x87\xa7\xc6\x40\x00\ \x02\x47\x0c\x33\x04\x52\x2a\x60\x9a\x8d\x81\x77\x81\x16\x17\x79\ \xaf\xa1\x0e\xb2\x6a\x1c\x06\x60\x18\x0b\xae\x2d\x5a\x86\xf9\xb9\ \x57\x9c\xc8\x92\x34\xf0\x1c\x31\x5c\x4e\x4a\xf9\x99\x09\xcb\xab\ \x32\x91\xe1\xb1\xa2\x7f\x20\x84\x07\xfe\xe3\xfe\x54\x9b\x73\x09\ \x14\x85\x82\x0d\x29\x9b\x8c\x38\x29\x17\xd0\x66\x67\x50\xf5\x17\ \xd9\xb0\x58\x80\x3f\x7d\xda\x8c\x37\x76\xbd\x96\x6a\x93\xc6\x70\ \xbe\x57\x3a\xd8\xf4\x6c\xc7\x49\x23\x4e\xca\x05\x04\x80\xbc\x42\ \x1b\xd6\xd5\xe4\x20\x3b\x2f\x0d\x3f\xf9\xf5\x16\xfc\xdb\xfb\xcf\ \xa5\xfc\x8c\x04\x49\x24\x34\x18\x50\x1e\x32\xe3\x4d\x9b\x73\x9c\ \x8a\x67\x3b\x50\x5c\xe2\x40\x7f\x9f\x88\x6d\xad\x6f\xe1\xc3\xfd\ \xef\x63\xd1\xac\x85\x58\xb2\xb0\x12\x4b\xe7\x5d\x07\xc2\xa8\x60\ \xa5\x20\xfc\xec\x39\x74\x1b\xec\x56\x4f\x04\x64\x89\xd2\xce\xe3\ \xfc\xbd\xbb\x9f\x69\xd7\xdf\x5b\x31\x82\x69\x23\x20\x00\x80\x01\ \x8a\x4b\x34\x21\xb5\x6d\x38\x27\xd0\x1a\x3c\x81\xd6\xd6\x77\xa7\ \xcc\x04\x81\x27\x6a\xd7\x29\xe1\xc7\x8d\xff\xd2\xfe\x66\x2c\xfc\ \xe9\x25\x60\x8a\x40\x29\x30\x3c\xa4\x84\x2e\x5e\x90\xff\x47\x12\ \xc8\x13\x8d\x4f\xb7\xeb\x6f\x09\xb8\x0c\x5f\x2b\x01\x47\x4e\xb7\ \x94\x38\x56\xf5\x89\x02\x3d\x2d\x8b\xe4\x80\xaa\xd2\xcf\xd2\xdd\ \xd6\xfa\xf7\x1f\x3d\x68\x9e\xcc\x13\x05\x57\xa5\x80\x94\x02\x1c\ \xab\x4a\x5c\x98\xf8\xc5\x91\x83\x6b\x55\x85\x36\x38\x5d\x96\xfa\ \x8f\x36\x1d\x4a\xe8\xc1\xb5\x5f\x79\x01\xb5\xf3\x52\xc9\x45\x81\ \x1f\x13\xaa\xd1\x62\x61\x3e\xf9\xf4\xc9\xc3\xc1\xa9\x78\xbe\x91\ \x80\x93\x89\xb5\x24\x1c\x1c\xab\xca\x5c\x98\x8c\x1c\x2c\x4b\x0e\ \xaa\x0a\xdd\xc5\x30\xf8\x78\xc7\x4f\xdb\xcc\x53\x61\x93\x08\x23\ \x01\x5f\x03\x70\x37\x80\x25\x06\x9c\x84\x83\x67\x89\xc2\x86\x47\ \x4f\xe0\x25\x87\x14\x99\xee\x06\x83\xba\x86\x9f\xb5\x99\x67\xad\ \xa7\x00\xba\x02\x86\xb6\x77\x5d\x18\x39\x06\xf9\x03\x00\x37\xe9\ \xf1\x26\x0a\x9e\x25\x0a\xc7\xaa\x01\x81\x23\x5d\xe2\xa8\x50\xc0\ \xf6\x86\x9f\xb7\x25\xfc\xa8\xe2\x64\xc2\xf0\x1b\x18\xda\xde\x15\ \xf4\xd4\x78\x6f\x01\xf0\x2e\x80\x5b\x27\xf2\x80\x91\x13\x72\x47\ \x85\x3a\x2c\x4b\xb4\x89\x12\xba\xbd\xf1\xe9\xf6\xfe\x89\xdc\x6f\ \xba\xc1\xb4\x13\x09\x6d\xef\xe2\x3d\x35\xde\xdb\x01\xbc\x0e\xad\ \x49\x47\x85\xc0\x13\x95\x0d\xa9\x41\x81\x27\x5d\xa2\x40\xda\x14\ \x99\x36\x29\x32\xdd\xbe\xfb\x99\xf6\xde\x44\x1a\x3c\xdd\x10\x53\ \x2f\x1c\xda\xde\x25\x7b\x6a\xbc\x7f\x67\xb5\x82\x13\x78\xf2\x03\ \x36\xa4\x0e\x09\x3c\xe9\x91\x04\xd2\x2e\x49\xb4\x59\x55\xe8\xf6\ \xdd\xcf\xb4\x9f\x4d\xb2\xad\xd3\x12\xff\x0f\xd4\xc9\xcc\xde\x09\ \x31\x84\xf7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x0f\x9e\x84\x47\ \x00\x62\ \x00\x72\x00\x69\x00\x63\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x05\x52\xbf\x27\ \x00\x71\ \x00\x74\x00\x2d\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x03\x03\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/painting/basicdrawing/basicdrawing_rc3.py0000644000076500000240000004613412536324427025626 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:48:13 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x02\xff\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x10\x08\x02\x00\x00\x00\xf8\x62\xea\x0e\ \x00\x00\x02\xc6\x49\x44\x41\x54\x78\x5e\x2d\x94\x5b\x6e\x14\x31\ \x10\x45\xaf\x1f\xdd\x93\x87\x26\x3b\x61\x13\x6c\x82\x2c\x05\x09\ \x85\xf5\xc0\x17\x1f\x91\xf8\x60\x09\x2c\x01\x96\x00\x4a\x08\x93\ \x7e\xda\x2e\xd3\x07\x5b\xb2\x3c\xb7\xed\xaa\xba\xe5\x5b\x55\xe3\ \x7e\xff\xf8\xe4\x83\x8e\x25\x2f\xef\x24\xa7\x5a\xa5\xaa\x6a\x32\ \x93\x8a\x8a\xa9\x16\xf1\x79\xec\x19\x33\xe7\xe4\x3c\x27\xcd\x06\ \x50\xba\x57\x18\x15\x4f\x0a\x83\x42\x94\x8b\xba\x7f\x77\x1f\xe5\ \xb4\x5d\x7e\x1e\xa7\xde\xcb\x60\x92\x0b\x38\x94\x24\xcb\xca\x3b\ \x7b\x2d\x44\xb7\xa4\x92\x89\xee\xa3\x24\x61\x73\x2c\x0c\xb8\x75\ \x9c\x11\x74\xb8\xd6\xd5\x59\xe1\xa4\x8f\x0f\x0f\xd5\x14\x49\xdf\ \x6b\x7b\xf9\x1e\x07\xf9\xa1\xa7\xa0\x22\xdb\xb4\x4d\x4a\xb3\xd2\ \xda\x92\x85\xac\xac\x30\xf9\x08\x4d\x49\x4a\x0b\x87\x32\x59\x85\ \xd2\x7b\x72\x1f\x6f\x95\xee\xf4\xf5\xdb\xa3\x19\x0f\x8d\x3e\xca\ \x07\xd0\x7e\x79\x3c\xf0\xe9\x2c\x13\x49\xa5\x49\xeb\x93\xd6\xbf\ \x5a\x9e\xb5\xbd\x76\x11\xf6\x49\x79\xc3\xd8\xb2\x20\x98\x94\x93\ \xbc\x07\xd7\x8a\x2c\xa7\x3b\xd2\x1f\x6e\x39\x21\x90\x14\x11\x34\ \x70\x67\x41\xf1\x4a\x68\x35\x08\xb9\xb9\xee\xc5\xc8\x8b\x0a\x42\ \x69\x3f\xc0\x26\x09\x17\xcb\xec\x82\x09\x25\x11\x30\xe2\xbe\x47\ \xc8\x10\x16\x5f\x08\xc4\x93\x79\x84\xc2\x08\x46\x90\x4a\xc4\x7d\ \xd6\xf2\x87\xac\xab\xc0\x79\x26\x5f\x3c\x0d\x29\x9c\x47\x3d\x21\ \x9d\xd2\x84\x4b\x74\x94\x24\x9c\x90\x8e\xc7\xad\x70\x53\x03\x08\ \xbc\x58\x4e\x56\x10\x61\xbb\x68\x7d\x39\xa2\x03\xa8\x81\x61\x3d\ \x3f\xc1\x44\x6d\x33\x42\x43\x30\x37\x2f\x70\x2d\x00\x33\x82\xaa\ \xe2\x95\x56\x42\x21\x11\x46\xad\x6e\x99\x23\x42\x1f\xeb\xb9\xfb\ \x13\x55\xec\x14\x79\x07\xca\xa1\x80\x84\xb1\x0f\xc8\x32\xdc\x48\ \xb5\xe9\x86\x86\xbe\x35\x71\x81\x2f\x9a\x61\x1a\xbc\x6c\x04\x94\ \x0d\xe6\xfd\x42\xee\xfb\x2b\x5a\xf1\xa6\x05\x07\x1f\xa1\x2c\x49\ \x00\x4f\xd9\x54\x7b\xdc\x38\x8a\x11\xf2\x54\x51\xea\x1d\xc1\x51\ \x55\xac\xd6\x8a\x46\x2e\x56\xf0\xa7\xb5\x0d\x4c\x9b\x2e\xad\x23\ \x49\xb6\x4b\x81\x08\xec\x36\x62\x23\x75\xee\x10\x28\xcc\x70\xcb\ \x67\x97\xce\xc3\x11\xf9\x31\x59\xa6\x43\xbc\x27\x90\x25\xc8\x5a\ \xe5\x6b\xe5\x24\x2f\x90\x95\x95\xd4\xe4\xe0\xa8\x4e\xb6\x73\x9b\ \x92\xe4\x35\xde\xc8\x0d\xaa\x6a\xd5\x6e\x94\x3d\xa1\x48\xc3\x24\ \x5a\x65\xfa\x45\x0a\x96\x7b\x3d\x10\x77\x54\x0a\xca\x85\x39\xd8\ \xa7\x3e\x50\x88\x96\xb9\x95\xa3\x2a\xb5\x80\xd3\xcc\x5e\x79\x19\ \x41\xb9\x45\x15\x02\x46\xcb\xe8\x30\x3f\x43\x30\x9e\xb9\x2b\x3b\ \x59\xcb\x14\x22\x4b\x7d\x1a\xda\x28\xc1\x9d\x50\xb5\xff\x3d\xc4\ \x6b\x85\x13\x98\x96\x15\xb8\x71\x93\x62\xc0\x3e\xa2\x7b\xd6\x97\ \xcf\x4c\xf6\xe9\xdc\xa7\x54\x28\x40\xd6\xfb\x2c\xd2\xbf\x40\x69\ \xd6\x95\xad\x6d\x0c\x1d\xd8\x2f\x0a\x9b\xc2\xd4\xab\xc8\x1a\x60\ \x8a\x9d\x09\x02\x7d\x78\xff\xd0\x06\x2f\x8c\x30\x4b\x62\xfa\x33\ \xba\x1b\x93\xd5\x0b\x53\xba\x32\x92\x41\x46\x94\x91\x70\x2e\x61\ \x2f\x07\x06\x08\x62\x30\x25\x94\x7b\xfb\x46\xf2\x78\x49\x5d\x38\ \x80\x5a\x3b\x61\x41\x38\x74\x07\x34\x3b\xd2\xaf\xed\x05\x70\x74\ \x17\x34\x81\xc0\x35\x8e\xd0\x5b\xee\x1f\xb6\x84\x15\x24\xe2\x59\ \x92\x70\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x0e\x70\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x50\x00\x00\x00\x50\x08\x06\x00\x00\x00\x8e\x11\xf2\xad\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\x3d\x00\x00\x01\x3d\ \x01\x9f\xdc\x2b\xea\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x0d\xed\x49\x44\ \x41\x54\x78\x9c\xed\x5c\x79\x70\x1c\xd5\x9d\xfe\x7a\x46\x73\x69\ \x34\xba\x0f\xcb\x96\x35\xbe\x8d\x90\x10\xbe\x30\x8e\x85\xed\x10\ \x67\x51\x44\x4c\x16\x58\x76\x97\xb0\xb0\x04\x36\x45\x2a\x86\x62\ \xf1\x06\xb6\x48\xc2\x62\x90\x8b\x50\xd9\xb0\x5b\x9b\x84\x85\x62\ \xd9\x0a\x09\x6c\x41\xc0\x2c\xb5\x0e\x87\x11\xc2\x16\xb2\x25\x1b\ \xb0\x6c\xd9\x96\xe4\xdb\xb2\x75\x59\xb2\x67\xac\xd1\x68\xa6\xef\ \xee\xf7\xf6\x8f\xd6\x31\xb6\xa7\xbb\x67\xa4\x19\x8d\x30\xf9\xaa\ \x5c\xe5\x79\xfd\xbd\xee\x5f\x7f\xfa\xbd\x7e\xc7\xef\xf7\x1e\x43\ \x29\x45\xbc\xf0\xd4\x78\xcb\x01\x54\x03\xa8\x04\x90\xe3\x70\x5a\ \x0a\x2a\x96\x67\x2c\xc8\xcc\xb6\x7a\xac\x69\x8c\xcd\x66\x63\x60\ \xb3\x5b\xa8\xa2\x50\x91\xe7\xd4\x7e\x91\xa7\xc7\x65\x89\xb4\xc8\ \x32\xdd\xa9\x2a\xb4\x69\xcf\x96\x0e\x12\xf7\x43\xa7\x29\x98\x58\ \x05\xf4\xd4\x78\xad\x00\x9e\x06\xf0\x20\x80\x12\x00\xb0\x58\x19\ \x2c\x2a\x4f\x47\xc5\x72\x37\xec\x0e\x4b\x4c\xf7\x51\x15\x8a\x70\ \x48\xe5\x78\x96\x9c\x17\x05\x72\x52\x92\xc8\x7e\x45\xa2\x0d\x8a\ \x42\x1b\xf7\x6c\xe9\x90\x26\xf8\x1e\x29\x43\x4c\x02\x7a\x6a\xbc\ \x33\x00\xfc\x11\xc0\xba\xd1\x32\xbb\xc3\x82\xea\x3b\xf3\xe0\xc9\ \xb2\x26\xc4\x10\xa2\x52\x84\x43\xaa\xc0\xb3\xe4\x82\x28\x90\x53\ \x92\x48\x0e\xc8\x32\xfd\x4c\x91\xe9\x8e\x3d\x5b\x3a\x84\x84\x3c\ \x24\x09\x30\x15\xd0\x53\xe3\xf5\x02\xf8\x1c\xc0\x8c\xc8\xf2\xb5\ \xd5\xd9\x28\x99\xeb\x4c\xa2\x69\x1a\x08\x01\xd8\x90\x2a\xf2\xac\ \xea\x13\x04\xd2\x29\x89\xa4\x55\x96\xe8\x2e\x55\xa1\x9f\x34\xd7\ \x76\x84\x93\x6e\x80\x09\x62\x11\xf0\x1d\x00\x7f\x1d\x59\xb6\xb0\ \x3c\x1d\x37\xac\xc9\x4c\xa6\x5d\xa6\xa0\x14\x60\xc3\xaa\xc4\x85\ \x55\xbf\xc8\x93\x33\x92\x48\x0f\xca\x12\xd9\xad\x28\xb4\xbe\xb9\ \xb6\x63\x70\xaa\xec\x30\x14\xd0\x53\xe3\xfd\x26\x80\x86\xc8\x32\ \xb7\xc7\x8a\x0d\x77\xe7\xc3\x6a\x65\x92\x6c\xda\xc4\x40\x29\xc0\ \x85\x55\x99\x63\xd5\x41\x41\x13\xf6\xb0\x2c\x91\x26\x45\xa6\x75\ \xcd\xb5\x1d\x17\x12\xfd\x3c\x33\x01\x9b\x01\xac\x8e\x2c\x9b\xb7\ \xd8\x85\x55\x37\x67\x25\xda\x8e\x29\x01\xc7\xaa\x0a\x17\x26\x01\ \x81\x27\x5d\x92\x40\xda\x64\x89\xec\x91\x15\x5a\xd7\xfc\x6c\x47\ \xcf\x44\xef\xa9\x2b\xa0\xa7\xc6\x9b\x06\x80\x05\x60\x8f\x2c\x5f\ \x71\x53\x26\x16\x55\xa4\x4f\xf4\x79\xd3\x12\x3c\x47\x54\x2e\xac\ \x0e\x09\x1c\xe9\x11\x45\xd2\x2e\x4b\x74\xaf\x22\x93\xba\xa6\x67\ \x3b\x4e\x9b\xd5\x35\x12\xf0\x5a\x00\x1d\x97\x97\xdf\x72\x47\x1e\ \xf2\x8b\x6c\x93\xb7\xfa\x2b\x00\x91\x27\x84\x0d\xab\xc1\xbe\x6e\ \xb1\x64\x4f\x6d\x07\x17\x8d\x63\x34\x78\xab\xb8\xbc\x80\x61\x80\ \x9c\xbc\xb4\x84\x19\x38\xdd\xe1\x70\x59\x2c\xb9\x05\xb6\x1c\xe6\ \xb2\x56\x18\x09\x23\x01\xe7\x5c\x5e\x60\xb3\x5b\x60\x4d\x9b\x9e\ \x9d\x47\xaa\x60\x24\x60\x6c\x53\x8b\xaf\x39\xfe\x2c\xd2\x24\xf1\ \x67\x01\x27\x89\x94\xf6\x08\x92\x48\xc0\xb1\x04\x16\xd8\x30\x23\ \xb7\x00\x79\x99\x39\x10\x55\x0e\x41\xd1\x0f\x51\xe1\x53\x69\x5a\ \xcc\x98\x52\x01\x55\x15\xe8\xeb\x12\x70\xf6\xa4\x00\x22\xda\xb0\ \x7e\xc5\x6a\x3c\x76\xeb\x46\x5c\xef\x5d\x72\x09\x8f\x52\x82\xfe\ \xf0\x59\x9c\x09\x74\xe0\xb8\x7f\x3f\x5a\xfa\xea\xa1\x12\x65\x2a\ \x4d\x8d\x19\x53\x26\xa0\x6f\x40\xc2\xde\x86\x61\x88\x3c\xc1\xa3\ \x77\xdf\x83\x67\xbe\xff\x9c\x2e\x97\x61\x2c\x98\xe9\x99\x87\x99\ \x9e\x79\xa8\x2a\xbd\x0d\x77\x94\xfd\x18\x75\x27\xdf\x40\x53\xd7\ \x36\xc8\x64\x7a\xad\x78\x4d\x89\x80\xed\xfb\x59\xb4\xed\x0b\x21\ \x27\xd7\x89\x4f\x5f\xdc\x8a\xf2\xd9\x95\x71\xd5\xcf\x71\x15\xe1\ \xee\xca\xc7\xf1\x8d\xd2\xef\xe2\xa5\x2f\x1e\xc7\x90\xe0\x37\xe4\ \xab\x32\xc5\x91\x43\x2c\x00\xe0\xae\x6f\xdd\x8a\x9c\xac\x0c\x0c\ \x09\x3e\x04\xf8\x0b\x18\xe2\x2f\x40\x54\x13\xf7\x79\x48\xba\x80\ \xc7\xdb\x39\x1c\xde\x17\x82\xdb\x6d\xc3\x07\xcf\xbf\x13\xb7\x78\ \x91\xf0\x66\x97\xe1\xa7\xeb\x7e\x8f\x17\x3f\xff\x09\x7a\x82\xc7\ \x75\x79\xbe\xf3\x32\xda\x5a\xc2\x60\x18\x06\xdb\x9e\x78\x02\x05\ \x99\x85\x63\xd7\x5a\xfa\xea\xf1\x6a\xcb\x53\x13\xb6\xe1\x72\x24\ \xb5\x17\xee\xef\x11\x71\xa0\x69\x18\x0c\xc3\xe0\xf5\xa7\x7f\x8b\ \xeb\x4a\xaf\x9f\xf4\x3d\xb3\x9d\x05\x78\x64\xd5\xbf\x23\xc3\x9e\ \xad\xcb\xf1\x0d\x68\xcd\xbc\xb0\xd0\x7d\x89\x78\xc9\x40\xd2\x04\ \xa4\x00\x5a\xf7\x86\x40\x01\x54\xdd\x50\x86\x5b\x2a\x6b\x4c\xeb\ \x88\xb2\x84\xf7\xf6\xbe\x8b\x8f\x0f\x7e\x68\xc8\xcb\x76\xe6\xe3\ \x81\x65\x9b\xc1\x20\xfa\xac\xc8\xd7\xaf\x09\x58\xb1\x70\x41\xbc\ \x66\xc7\x8d\xa4\x09\xd8\x79\x8c\xc7\xd0\xa0\x82\x34\x9b\x05\xbf\ \xdd\xf8\x6b\x53\xfe\xfe\x73\x3b\xb0\xa5\xf1\xfb\x78\x69\x57\x2d\ \xee\xd9\xfc\x30\xca\x7f\xb4\x04\x6f\x34\xfe\x4e\x97\x5f\x51\xb4\ \x1a\xab\x4b\x37\x5c\x51\x4e\x08\x85\xef\x82\x0c\x00\x58\x5b\x59\ \x35\xf1\x17\x88\x11\x49\x11\x90\x52\x8a\xb6\x7d\xda\x6a\xfb\x77\ \xd6\xac\xc4\x82\xa2\x45\x86\xfc\xfe\xd0\x19\xfc\xfe\x40\x2d\x7c\ \x6c\x2f\xe6\x5f\xe3\xc2\xcd\xdf\xcd\x45\x77\x4f\x00\x8f\xfe\xaa\ \x16\xfb\x3b\xbf\xd0\xad\x57\xbd\xf0\xbe\x2b\xbc\x30\x70\x51\x81\ \x2a\x6b\x2b\x4c\x7f\xb9\xf2\xce\x49\xbe\x89\x39\x92\x22\xa0\x6f\ \x40\x06\xc7\xaa\x00\x80\x1f\xd6\x3c\x68\xca\x7f\xb5\xe5\xe7\x90\ \xd4\xf1\xb8\x51\x7e\x91\x0d\x73\x16\x38\xa1\xa8\x14\x0f\xbe\xb0\ \x51\xb7\x5e\x51\x86\x17\x95\x33\x6e\xba\xec\xd9\x5a\xf3\xcd\xce\ \x71\x62\x7e\xd1\x57\xb4\x09\xf7\x76\x8a\x00\x80\xac\x6c\x07\xd6\ \x57\x54\x1b\x72\xfd\x6c\x1f\xfa\x86\xaf\x5c\xb7\xac\x5c\xe9\x01\ \x00\x74\x9e\xf1\xe3\x95\x4f\x5e\xd4\xad\xbf\x6e\xee\x5d\x97\xfc\ \xf6\xf5\x6b\xcd\xb7\x6c\x5e\x69\x5c\x36\x4f\x14\x49\x19\xc6\xf4\ \x9c\xd5\xbc\x69\xf5\x12\xf3\x21\x4b\x67\xa0\x3d\x6a\x79\x86\xc7\ \x0a\x57\xba\x05\x3c\x47\xb0\xf3\x50\x23\x7e\x74\xcb\x23\x51\x79\ \x8b\xf2\x97\x61\xef\x27\x3c\xba\xbb\x82\xf8\x76\xd5\x52\xfc\xdf\ \x53\x7f\x40\x8f\xbf\x1b\xc5\x39\xc5\x51\xf9\x59\xce\x02\x2c\xce\ \x5f\x0e\x56\x1e\x06\x2b\x0d\x83\x93\x86\x27\x35\x2e\x4c\xb8\x80\ \xc3\x01\x15\x6c\x48\x6b\xbe\x77\x54\x7d\xcf\x94\xaf\x27\x20\x00\ \xe4\x16\xda\xd1\x77\x56\xc0\xd1\x4e\xfd\x95\x75\x9b\xc5\x8e\x55\ \x65\x2b\x71\xa6\xb3\x1e\x84\x02\x8b\x8a\xaf\xc1\xa2\xe2\x6b\x74\ \xf9\x0b\xf3\x96\xe0\x9f\xaa\x5e\xba\xa4\x6c\x4f\xf7\x07\xf8\x43\ \xeb\x16\x53\x5b\xa3\x21\xe1\x4d\x78\x28\x20\x8f\xfd\x7f\xcd\x35\ \xeb\x0c\x98\x1a\xce\x04\xae\x88\x1a\x8c\x21\xaf\x40\x0b\x1d\xf4\ \x9e\x0b\x80\x50\xfd\x6c\x90\xf5\xcb\xd6\xc6\x61\xe1\x95\x60\x98\ \x89\x2f\x12\x27\x5c\xc0\xe1\x80\xe6\x7d\x4e\x57\x1a\x4a\xf2\xbd\ \x86\x5c\x0a\x8a\xde\xe0\x09\xdd\xeb\x79\x85\x5a\x03\x91\x25\x82\ \xcf\x4f\x34\xe9\xf2\x16\xcf\x5e\x3c\x01\x4b\x13\x83\x24\x08\xa8\ \xad\x9a\x14\xe5\x9b\x07\xde\x25\x45\x80\x42\x64\xdd\xeb\x99\xd9\ \xe3\xc1\xab\x96\x53\xfb\x74\x79\x79\x9e\xdc\x38\x2c\x4c\x2c\x12\ \xfe\x0d\x0c\x8e\x34\xe1\xd2\x99\xd1\x3f\xe2\x91\x30\xfb\x78\xdb\ \x22\x42\x39\x41\x2e\xa4\xcb\xcb\x72\xe5\xe2\x5b\x1b\x72\x11\x0e\ \xf6\x63\xc9\xc3\x2b\x90\x9b\x99\x89\x9d\xcf\xef\x8c\xca\x1d\x08\ \xf6\xe0\xc8\xc0\x21\xd8\x2d\x76\x38\x6d\x6e\x64\xa7\x67\x21\xc8\ \x5f\x34\xb5\x55\x0f\x09\x17\x90\x63\xb5\x6f\xd5\xac\xfc\x22\x53\ \xae\xa8\x44\x8d\x14\x8e\x21\xcd\x36\xde\x40\x38\x81\xd5\xe5\x65\ \xd8\x73\x50\x5c\xe2\xc0\x59\x81\xc3\xe9\xce\x20\x7a\x1c\xfa\x82\ \xf4\x86\x8f\xe1\xed\x63\x13\xeb\x30\xa2\x21\xe1\x4d\x58\x91\x35\ \x01\xdd\xae\x0c\x53\xae\xa8\x1a\x27\x5d\x59\x2c\xda\x3f\x00\x60\ \x45\x7d\x01\x2d\x8c\x05\x6e\x7b\x6a\xb2\x25\x12\x2a\x20\x21\x14\ \xaa\xd6\x87\x20\x33\x16\x01\x4d\x3c\x10\xc0\x58\x18\x95\xe3\x8d\ \x9b\xbb\xc7\x91\x63\x6e\x60\x12\x90\x50\x01\xd5\x88\x55\xf7\x98\ \x3c\x30\x86\xb8\x87\x6d\xa4\x19\x73\xe2\xd7\x40\x40\x59\x1e\x1f\ \xab\x65\xb9\xcc\x7b\xe1\x58\x66\x00\x69\x23\x1d\xb1\x99\x80\x99\ \x8e\xd4\xf4\xc4\x89\x6d\xc2\xca\x78\x9e\x8d\xdb\xe5\x36\xe5\x4b\ \x31\x78\xe0\x68\x47\x22\x88\xc6\xdf\x4b\x8f\xfd\x2a\xf0\x40\x5b\ \x44\x9e\xf4\x60\xc8\x3c\xc7\xd1\x6a\x89\x61\x10\x30\x92\xfc\xa4\ \xb7\x78\x3a\x0a\x0b\x93\x9a\x10\x77\x42\x9f\x6a\x77\x30\x18\x7d\ \xcf\x0b\x41\x9f\x39\xdf\xea\x32\xe5\x28\x23\x5e\xed\x72\x38\x0c\ \x79\xac\x3c\x6c\x6e\x60\x12\x90\x50\x01\x19\x86\x81\xcd\xa6\x29\ \x78\x31\x68\x3e\x38\xb5\xa7\x99\xe7\x58\x8f\x76\x4c\x0e\xbb\x31\ \x97\x95\xae\x02\x01\x01\xc0\xe1\xd4\x6e\x39\x38\x1c\x30\xe7\xc6\ \xe0\x81\xb2\x3c\xea\x81\x26\x02\x5e\x0d\x1e\x08\x00\x0e\xa7\xb6\ \xed\x61\x30\x6c\xfe\x42\x0e\x6b\x0c\x1e\xa8\x8e\x0a\x68\x2c\xf6\ \x55\xe3\x81\x4e\xa7\xd6\x84\x87\x43\xe6\x3b\x10\xec\x26\x02\x52\ \x68\x1b\x73\x00\x20\xdd\x44\x40\xee\x6a\xf1\x40\xfb\x48\x13\x0e\ \x71\xe6\xb3\x0c\x7b\x9a\xb1\x28\x6a\xc4\xb8\xd2\xed\x30\xce\xcb\ \xbe\x6a\x3c\xd0\x31\x32\x94\x61\x39\xf3\xcd\x45\x66\xdf\x40\x25\ \x62\x66\xe3\x72\xea\x0b\x28\x28\x2c\x08\x55\x63\x33\x30\xc1\x48\ \x9a\x07\xf2\x9c\xfe\x3a\xdf\x28\x1c\x69\x2e\xc3\x29\x98\x24\x8e\ \x7b\x60\x61\x56\x81\x2e\x2f\x68\x92\x2b\x93\x4c\x24\x5c\x40\x4f\ \xd6\xe8\xcc\x41\xc5\xc0\xd0\x39\x53\x7e\x69\x96\x7e\xfc\x22\xe0\ \x1f\xff\x23\x7c\xb3\x62\xbd\x2e\xef\x84\xbf\x35\x0e\x0b\x13\x8b\ \x84\x0b\x58\x50\x3c\xb2\x0a\x4a\x81\x6d\x5f\xbe\x67\xca\xf7\x66\ \x97\xe9\x5e\x1b\xf4\x6b\x6d\xd8\xe3\xb1\x63\x6e\xe1\x7c\x5d\xde\ \x51\xdf\x97\xf1\x19\x99\x40\x24\x5c\xc0\x74\xb7\x15\x6e\x8f\x36\ \x94\x69\x38\xb8\xcb\x94\x3f\x27\x47\x5f\xc0\x80\x6f\x64\x75\x7b\ \x96\x7e\x82\x10\xa5\x04\xc7\xfc\x2d\x31\xdb\x67\xd6\xf3\xc7\x8b\ \xa4\x4c\x20\x0b\x47\xbc\xf0\xd0\x49\xfd\x14\xb4\x51\xc4\xe2\x81\ \xd7\xcd\xd7\x4f\x0d\xe9\x0e\x9e\x00\x2b\x05\xb5\x1f\x31\x44\xd7\ \x66\x66\xea\x7b\xf2\x44\x90\x14\x01\x4b\xe7\x69\xf3\xd6\xbe\xbe\ \x20\x8e\xf4\xb6\x19\x72\xb3\x9d\x05\x51\x5f\x2a\x38\xa8\x8c\x75\ \x22\x35\x2b\xbe\xa3\x5b\xff\x58\x44\xf3\xb5\x3b\x34\x01\x65\x89\ \x42\x52\xc4\xa8\xfc\xbc\xf4\x62\x38\xd3\x12\xb7\x55\x2d\x29\x02\ \xce\xf4\x3a\xe0\x72\x5b\x41\x29\xc5\x0b\xef\xbd\x60\xca\xff\x9b\ \x8a\xc7\xae\x28\x3b\xf8\xa5\x36\x10\x5f\x5a\x31\x07\x77\xae\xfa\ \x5b\xdd\xba\x47\x22\x04\x4c\x77\x6b\x9f\x0e\x4a\x29\x4e\xf6\x47\ \xf7\x7e\x06\x0c\xfe\xaa\x7c\x13\x2e\x76\x66\xe2\xf4\xbe\x0c\xe4\ \x0e\xaf\xc5\x43\x95\xe6\xd9\x63\x7a\x48\x4a\x6a\x07\xc3\x30\x98\ \xb7\xd8\x85\x8e\x03\x61\x7c\xdc\xdc\x0c\xf5\x11\xc5\x70\xe9\xaa\ \xac\x60\x25\x2a\x67\xac\xc1\xe1\x81\xdd\x00\x80\xbe\x6e\x11\x7d\ \x67\x05\xd8\x1d\x16\xfc\xee\xf1\x57\x75\xeb\xf5\x87\xce\xe0\xb8\ \x7f\xff\xd8\x6f\x77\xc6\xf8\xee\xf9\xe3\x7d\x47\x75\xb3\x61\xd7\ \xce\xf9\x1e\xd6\x6e\x1a\xcf\x9a\x50\x88\x04\x1c\x8e\xf9\xf5\x2e\ \x41\xd2\x16\xd1\x16\x57\xa4\xc3\x66\x67\x10\x1a\x96\x51\xfb\xce\ \x66\x53\xfe\xbd\xd7\x3f\x89\xb2\x82\x1b\x71\xe4\x40\x18\xcd\xf5\ \x41\xac\x5c\x3a\x1f\x6f\xd5\xbe\x64\x98\x1a\xb7\xed\xe8\x2b\xa0\ \x11\x19\x0b\x69\x36\x06\xd9\xb9\xda\x1f\x6a\xc7\xa1\xe8\x61\xcd\ \x68\x88\xff\xd8\x8d\x71\x24\x4d\x40\x67\xba\x05\x4b\x57\x69\x19\ \x56\x2f\xfe\xf1\x4d\x9c\x3e\x7f\xca\x90\x9f\xe5\xcc\xc7\x63\xab\ \x7f\x83\xad\x8f\xd5\xa3\xfd\xb5\x5d\xd8\xf1\x8b\x9d\x86\x59\xad\ \x27\xfc\x07\xd0\xda\xdf\x70\x45\xf9\x75\x2b\xb4\x58\xcc\x3b\x1f\ \xd7\xc3\x1f\x8a\x6d\x80\x3d\x99\xdd\x7f\x49\x5d\xc6\x5d\x50\x96\ \x8e\xa2\x59\x76\x48\x22\xc1\xbd\xbf\xfc\x7b\xc3\xfc\x96\x51\xcc\ \xc8\x99\x89\x59\x79\xb3\x0d\x39\x01\xfe\x3c\xfe\xab\xe5\x67\x51\ \xaf\xcd\x9e\xeb\x44\xc9\x5c\x27\x04\x41\xc5\x7d\x2f\xdc\xa7\xdb\ \x99\x8c\xe2\xdc\xf0\x69\x34\x74\x6e\x35\xb5\x4b\x0f\xc9\xcd\xd2\ \x67\x80\xb5\xd5\x39\xd8\xf9\xc1\x20\xda\x8f\xf6\xe1\xb6\xda\x0d\ \xf8\x70\xf3\x47\x93\xba\x65\x48\x0c\xe0\x3f\xbf\x78\x1c\x21\x51\ \x67\xbd\x91\xd1\x0e\xc4\xe8\x3c\xc6\xe3\xd4\xc9\x53\x58\xb9\xe9\ \x1b\x78\xa0\xfa\x1e\xdc\xb8\x78\x15\x96\xcd\xbd\x01\x61\x39\x80\ \x63\xbe\x16\x1c\xf3\xed\xc3\x51\xdf\x3e\x0c\x8b\x13\xcf\x4a\x00\ \x8c\x37\x5c\x3f\x09\xe0\xf9\xc8\x32\xbb\xc3\x82\xbb\x1e\x88\x3f\ \xeb\x5d\x96\x28\x76\xd5\x05\x70\xbe\x4f\xc2\x9a\x1b\xcb\xf1\xf6\ \x93\x6f\xc3\xe3\xf4\xc4\x7d\x9f\xee\xe0\x71\xbc\xfc\xc5\x3f\x63\ \x90\x1f\x88\xbb\xee\x64\xd0\xbe\x3f\x9c\xd3\x5c\xdb\x31\x14\xed\ \xda\x94\x44\x62\x6c\x76\x06\xeb\x37\xe4\xe2\xc6\x75\x59\xf8\xbc\ \xf5\x08\xca\xff\x61\x05\xb6\xee\x79\x2b\xe6\xfa\x7e\xb6\x0f\x6f\ \x1e\xfe\x57\xfc\x72\xd7\x0f\xa7\x5c\x3c\x33\x4c\x5d\x28\x8b\x01\ \xe6\x97\xb9\x70\xc7\xfd\x85\x28\x5f\xee\xc4\x53\xaf\x6f\xc6\x82\ \x1f\x94\x63\xe3\xcb\x0f\x19\x2e\x3a\x10\xaa\x62\xcb\x67\xf7\xa2\ \xf1\xcc\xff\x6a\xc3\x8d\x69\x86\x29\x8f\x05\xa6\x59\x19\x94\xce\ \x77\x62\x6d\x75\x0e\x06\x03\x2c\xde\xf8\x53\x1d\x9e\xdb\xaa\x9f\ \xec\x63\x61\xac\x58\x98\xb7\x74\x0a\x2d\x8c\x0f\x29\xdb\x2f\x6c\ \xb1\x00\xb3\x4a\xb5\x89\xfd\x8e\x2f\xf7\x18\x72\xab\xbc\xb7\x4d\ \x85\x49\x51\xa1\x28\x14\x94\x42\x77\xb9\x3b\xa5\x1b\xae\x4b\xe6\ \x6a\x73\xe6\xde\xde\x21\x9c\x3a\xaf\x9f\xa9\xba\xb4\xf8\x66\xd4\ \x2c\xbc\x3f\x25\xf9\x2f\x6c\x48\xe5\x8d\x4e\x9b\x4b\xa9\x80\x33\ \x4b\x1d\xb0\x5a\xb5\x99\xc0\x7f\xd7\xbd\x62\xc8\xbd\xfd\xda\x8d\ \xf8\x55\xf5\x47\xf8\xc7\x55\x2f\xe3\xf6\xb2\x87\xa7\xc6\x40\x00\ \x02\x47\x0c\x33\x04\x52\x2a\x60\x9a\x8d\x81\x77\x81\x16\x17\x79\ \xaf\xa1\x0e\xb2\x6a\x1c\x06\x60\x18\x0b\xae\x2d\x5a\x86\xf9\xb9\ \x57\x9c\xc8\x92\x34\xf0\x1c\x31\x5c\x4e\x4a\xf9\x99\x09\xcb\xab\ \x32\x91\xe1\xb1\xa2\x7f\x20\x84\x07\xfe\xe3\xfe\x54\x9b\x73\x09\ \x14\x85\x82\x0d\x29\x9b\x8c\x38\x29\x17\xd0\x66\x67\x50\xf5\x17\ \xd9\xb0\x58\x80\x3f\x7d\xda\x8c\x37\x76\xbd\x96\x6a\x93\xc6\x70\ \xbe\x57\x3a\xd8\xf4\x6c\xc7\x49\x23\x4e\xca\x05\x04\x80\xbc\x42\ \x1b\xd6\xd5\xe4\x20\x3b\x2f\x0d\x3f\xf9\xf5\x16\xfc\xdb\xfb\xcf\ \xa5\xfc\x8c\x04\x49\x24\x34\x18\x50\x1e\x32\xe3\x4d\x9b\x73\x9c\ \x8a\x67\x3b\x50\x5c\xe2\x40\x7f\x9f\x88\x6d\xad\x6f\xe1\xc3\xfd\ \xef\x63\xd1\xac\x85\x58\xb2\xb0\x12\x4b\xe7\x5d\x07\xc2\xa8\x60\ \xa5\x20\xfc\xec\x39\x74\x1b\xec\x56\x4f\x04\x64\x89\xd2\xce\xe3\ \xfc\xbd\xbb\x9f\x69\xd7\xdf\x5b\x31\x82\x69\x23\x20\x00\x80\x01\ \x8a\x4b\x34\x21\xb5\x6d\x38\x27\xd0\x1a\x3c\x81\xd6\xd6\x77\xa7\ \xcc\x04\x81\x27\x6a\xd7\x29\xe1\xc7\x8d\xff\xd2\xfe\x66\x2c\xfc\ \xe9\x25\x60\x8a\x40\x29\x30\x3c\xa4\x84\x2e\x5e\x90\xff\x47\x12\ \xc8\x13\x8d\x4f\xb7\xeb\x6f\x09\xb8\x0c\x5f\x2b\x01\x47\x4e\xb7\ \x94\x38\x56\xf5\x89\x02\x3d\x2d\x8b\xe4\x80\xaa\xd2\xcf\xd2\xdd\ \xd6\xfa\xf7\x1f\x3d\x68\x9e\xcc\x13\x05\x57\xa5\x80\x94\x02\x1c\ \xab\x4a\x5c\x98\xf8\xc5\x91\x83\x6b\x55\x85\x36\x38\x5d\x96\xfa\ \x8f\x36\x1d\x4a\xe8\xc1\xb5\x5f\x79\x01\xb5\xf3\x52\xc9\x45\x81\ \x1f\x13\xaa\xd1\x62\x61\x3e\xf9\xf4\xc9\xc3\xc1\xa9\x78\xbe\x91\ \x80\x93\x89\xb5\x24\x1c\x1c\xab\xca\x5c\x98\x8c\x1c\x2c\x4b\x0e\ \xaa\x0a\xdd\xc5\x30\xf8\x78\xc7\x4f\xdb\xcc\x53\x61\x93\x08\x23\ \x01\x5f\x03\x70\x37\x80\x25\x06\x9c\x84\x83\x67\x89\xc2\x86\x47\ \x4f\xe0\x25\x87\x14\x99\xee\x06\x83\xba\x86\x9f\xb5\x99\x67\xad\ \xa7\x00\xba\x02\x86\xb6\x77\x5d\x18\x39\x06\xf9\x03\x00\x37\xe9\ \xf1\x26\x0a\x9e\x25\x0a\xc7\xaa\x01\x81\x23\x5d\xe2\xa8\x50\xc0\ \xf6\x86\x9f\xb7\x25\xfc\xa8\xe2\x64\xc2\xf0\x1b\x18\xda\xde\x15\ \xf4\xd4\x78\x6f\x01\xf0\x2e\x80\x5b\x27\xf2\x80\x91\x13\x72\x47\ \x85\x3a\x2c\x4b\xb4\x89\x12\xba\xbd\xf1\xe9\xf6\xfe\x89\xdc\x6f\ \xba\xc1\xb4\x13\x09\x6d\xef\xe2\x3d\x35\xde\xdb\x01\xbc\x0e\xad\ \x49\x47\x85\xc0\x13\x95\x0d\xa9\x41\x81\x27\x5d\xa2\x40\xda\x14\ \x99\x36\x29\x32\xdd\xbe\xfb\x99\xf6\xde\x44\x1a\x3c\xdd\x10\x53\ \x2f\x1c\xda\xde\x25\x7b\x6a\xbc\x7f\x67\xb5\x82\x13\x78\xf2\x03\ \x36\xa4\x0e\x09\x3c\xe9\x91\x04\xd2\x2e\x49\xb4\x59\x55\xe8\xf6\ \xdd\xcf\xb4\x9f\x4d\xb2\xad\xd3\x12\xff\x0f\xd4\xc9\xcc\xde\x09\ \x31\x84\xf7\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x09\ \x0f\x9e\x84\x47\ \x00\x62\ \x00\x72\x00\x69\x00\x63\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x05\x52\xbf\x27\ \x00\x71\ \x00\x74\x00\x2d\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x03\x03\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/painting/basicdrawing/images/0000755000076500000240000000000012536324427023305 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/painting/basicdrawing/images/brick.png0000644000076500000240000000137712536324427025115 0ustar philstaff00000000000000‰PNG  IHDR øbêÆIDATx^-”[n1E¯Ý“‡&;al‚, …õÀ‘ø` ,–J“~Ú.Ó[²<·íªºå[Uã~ÿøäƒŽ%/ï$§Z¥ªj2“ŠŠ©ñyì3çä<'ÍPºWO ƒB”‹ºwå´]~§ÞË`’ 8”$ËÊ;{-D·¤’‰î£$as, ¸uœt¸ÖÕYá¤ÕIßk{ùù¡§ "Û´MJ³ÒÚ’…¬¬0ùMIJ ‡2Y…Ò{ro•îôõÛ£>ÊÐ~y<ðé,I¥Ië“Ö¿Zžµ½vöIyÃØ² ˜”“¼׊,§;Òn9!4pgAñJh5¹¹îÅÈ‹ Bi?À& Ëì‚ %0â¾GÈ_Ä“y„ÂFJÄ}Öò‡¬«Ày&_< )œG=!Ò„Kt”$œŽÇ­pS¼XNVa»h}9¢¨a=?ÁDm3BC07/p-3‚ªâ•VB!F­n™#Bë¹ûUìyÊ¡€„±È2ÜHµé††¾5q/ša¼l” æýBîû+Zñ¦¡,IOÙT{Ü8ŠòTQêÁQU¬ÖŠF.Vð§µ L›.­#I¶Kì6b#uî(ÌpËg—ÎÃù1Y¦C¼'%ÈZåkå$/••Ôäà¨N¶s›’ä5ÞÈ ªjÕn”=¡HÃ$ZeúE –{=wT Ê…9ا>Pˆ–¹•£*µ€ÓÌ^yA¹EFËè0?C0ž¹+;YË"K}Ú(ÁPµÿ=Äk…˜–¸q“bÀ>¢{Ö—ÏLöéܧT(@Öû,Ò¿@iÖ•­m Ø/ ›ÂÔ«È`Š }xÿÐ/Œ0Kbú3º“Õ Sº2’AF”‘p.a/b0%”{ûFòxI]8€Z;aA8t4;Ò¯ípt4À5ŽÐ[î¶„$âY’pIEND®B`‚PyQt-x11-gpl-4.11.4/examples/painting/basicdrawing/images/qt-logo.png0000644000076500000240000000716012536324427025401 0ustar philstaff00000000000000‰PNG  IHDRPPŽò­sBIT|dˆ pHYs==ŸÜ+êtEXtSoftwarewww.inkscape.org›î< íIDATxœí\ypÕþzFsi4ºË–5¾¾0Ž…ígQDLXv—°°6E*†bñ¶HÂb‹PÙ°[›„…bÙ lAÀ,µ‡Â²%°lÙ–äÛ²uY²g¬Ñh¦ïî÷öÖ1¶§»g¤0ùª\åyý½î_ú½~Çï÷C)E¼ðÔxËT¨ãpZ *–g,È̶z¬iŒÍfc`³[¨¢P‘çÔ~‘§Çe‰´È2Ý©*´iÏ–÷C§)˜XôÔx­žð €°X,*OGÅr7ìKL÷QŠpHåx–œrR’È~E¢ ŠB÷lé&ø)CLzj¼3üÀºÑ2»Ã‚ê;óàɲ&Ä¢R„CªÀ³ä‚(S’HÈ2ýL‘éŽ=[:„„<$ 0ÐSãõøÀŒÈòµÕÙ(™ëL¢iØ*ò¬êÒ)‰¤U–è.U¡Ÿ4×v„“n€ bðY¶°<7¬ÉL¦]¦ `êąU¿È“3’HÊÙ­(´¾¹¶cpªì0ÐSãý&€†È2·ÇŠ wçÃje’lÚÄ@)À…U™cÕAAö°,‘&E¦u͵ý<3›¬Ž,›·Ø…U7g%ÚŽ)Ǫ &']’@Úd‰ì‘Z×ülGÏDï©+ §Æ›€`,_qS&U¤OôyÓø â/@T÷yHº€ÇÛ9Þ‚ÛmÃÏ¿·x‘ðf—á§ë~?ÿ z‚Çuy¾ó2ÚZÂ`Ûžx™…c×ZúêñjËS¶ár$µîïq i Ãàõ§‹ëJ¯Ÿô=³xdÕ¿#Þ­Ëñ hͼ°Ð}‰xÉ@Ò¤Z÷†@TÝP†[*kL눲„÷ö¾‹~hÈËvæãe›Á ú¬Èׯ X±pA¼fǤ ØyŒÇР‚4›¿ÝøkSþþs;°¥ñûxiW-îÙü0Ê´o4þN—_Q´«K7\QN…ï‚ X[Y5ñˆIRж}Újûw֬Ă¢E†üþÐüþ@-|l/æ_ãÂÍßÍEwOþªû;¿Ð­W½ð¾+¼0pQ*k+L¹òÎI¾‰9’" o@Ǫ€Ö8µ§™çXvL»1—•®ÀáÔn980çÆà²<ê&^ §¶ía0lþBk ¨Ž h,öUãN§Ö„‡Cæ;ì&Rhs ÝD@îjñ@ûHqæ³ {š±(jĸÒí0Î˾j<Ð12”a9óÍEfß@%bfãrê ((,Uc30ÁHšòœþ:ß(i.Ã)˜$Ž{`aV./h’+“L$\@OÖèÌAÅÀÐ9S~i–~ü"àÿ#|³b½.ï„¿5 ‹„ XP<² Jm_¾gÊ÷f—é^ôkmØã±cná|]ÞQß—ñ™@$\Àt·n6”i8¸Ë”?'G_À€odu{–~‚¥Çü-1ÛgÖóÇ‹¤L G¼ðÐIý´QÄâ×Í×O éž+µ1D×ffê{òDKçióÖ¾¾ Žô¶r³Q_*8¨Œu"5+¾£[ÿXDóµ;4e‰BRĨü¼ôb8Ó·U-)Îô:àr[A)Å ï½`Êÿ›ŠÇ®(;ø¥6_Z1w®ú[ݺG"LwkŸJ)NöG÷~ þª|.vfâô¾ ä¯ÅC•æÙczHJjÃ0˜·Ø…Ža|ÜÜ õÅp骬`%*g¬ÁáÝ€¾n}gØüîñWuëõ‡Îà¸ÿØowÆøîùã}Gu³a×ÎùÖnÏšPˆŽùõ.AÒÑW¤Ãfg–QûÎfSþ½×?‰²‚qä@ÍõA¬\:oÕ¾d˜·íè+  i6Ù¹ÚjÇ¡èaÍhˆÿØq$M@gºKWiV/þñMœ>ÊŸåÌÇc«ƒ­Õ£ýµ]Øñ‹†Y­'üÐÚßpEùu+´XÌ;×Êm€=™ÝI]Æ]P–Ž¢YvH"Á½¿ü{Ãü–QÌÈ™‰Yy³ 9þ<þ«ågQ¯ÍžëDÉ\'AÅ}/ܧۙŒâÜði4tn5µKÉÍÒg€µÕ9ØùÁ Úöá¶Ú øpóG“ºeH à?¿x!Qg½‘ÑÄè<ÆãÔÉSX¹éx úܸx–ͽa9€c¾óíÃQß> ‹ÏJŒ7\? àùÈ2»Ã‚»ˆ?ë]–(vÕp¾OšËñö“oÃãôÄ}Ÿîàq¼üÅ?cˆ»îdо?œÓ\Û1íÚ”Dblvë7äâÆuYø¼õÊÿa¶îy+æú~¶oþWür×§\<3L](‹æ—¹pÇý…(_îÄS¯oÆ‚”cãË.:ªbËg÷¢ñÌÿjÃi†)¦Y”Îwbmu,ÞøSžÛªŸìca¬X˜·t -Œ)Û/l±³Jµ‰ýŽ/÷r«¼·M…IQ¡(”Bw¹;¥®KæjsæÞÞ!œ:¯Ÿ©º´øfÔ,¼?%ù/lHåN›K©€3K°Zµ™À×½bȽýÚøUõGøÇU/ãö²‡§Æ@G 3R*`šwy¯¡²j` ®-Z†ù¹WœÈ’4ð1\NJù™ Ë«2‘á±¢ „þãþT›s …‚ )›Œ8)ÐfgPõÙ°X€?}ÚŒ7v½–j“Æp¾W:ØôlÇI#NÊ€¼BÖÕä ;/ ?ùõüÛûÏ¥üŒI$4P2ãM›sœŠg;P\â@Ÿˆm­oáÃýïcѬ…X²°Kç]¨`¥ üì9tìVOd‰ÒÎãü½»Ÿi×ß[1‚i# €ŠK4!µm8'Ð<ÖÖw§Ì'j×)áÇÿÒþf,üé%`Š@)0<¤„.^ÿGÈO·ëo ¸ _+GN·”8Võ‰=-‹ä€ªÒÏÒÝÖú÷=hžÌW¥€”«J\˜øÅ‘ƒkU…68]–ú6JèÁµ_yµóRÉEªÑba>ùôÉÃÁ©x¾‘€“‰µ$«Ê\˜Œ,Kª ÝÅ0øxÇOÛÌSa“#_p7€%œ„ƒg‰Â†GOà%‡™îƒº†Ÿµ™g­§º†¶w]9ù7éñ& ž% Ǫ#]â¨PÀö†Ÿ·%ü¨âdÂðÚÞôÔxoð.€['ò€‘rG…:,K´‰º½ñéöþ‰ÜoºÁ´ mïâ=5ÞÛ¼­IG…À• ©A']¢@Ú™6)2ݾû™öÞD<ÝS/ÚÞ%{j¼gµ‚xò6¤ <é‘Ò.I´YUèöÝÏ´ŸM²­ÓÿÔÉÌÞ 1„÷IEND®B`‚PyQt-x11-gpl-4.11.4/examples/painting/concentriccircles.py0000755000076500000240000001217512536324427023462 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class CircleWidget(QtGui.QWidget): def __init__(self, parent=None): super(CircleWidget, self).__init__(parent) self.floatBased = False self.antialiased = False self.frameNo = 0 self.setBackgroundRole(QtGui.QPalette.Base) self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) def setFloatBased(self, floatBased): self.floatBased = floatBased self.update() def setAntialiased(self, antialiased): self.antialiased = antialiased self.update() def minimumSizeHint(self): return QtCore.QSize(50, 50) def sizeHint(self): return QtCore.QSize(180, 180) def nextAnimationFrame(self): self.frameNo += 1 self.update() def paintEvent(self, event): painter = QtGui.QPainter(self) painter.setRenderHint(QtGui.QPainter.Antialiasing, self.antialiased) painter.translate(self.width() / 2, self.height() / 2) for diameter in range(0, 256, 9): delta = abs((self.frameNo % 128) - diameter / 2) alpha = 255 - (delta * delta) / 4 - diameter if alpha > 0: painter.setPen(QtGui.QPen(QtGui.QColor(0, diameter / 2, 127, alpha), 3)) if self.floatBased: painter.drawEllipse(QtCore.QRectF(-diameter / 2.0, -diameter / 2.0, diameter, diameter)) else: painter.drawEllipse(QtCore.QRect(-diameter / 2, -diameter / 2, diameter, diameter)) class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() aliasedLabel = self.createLabel("Aliased") antialiasedLabel = self.createLabel("Antialiased") intLabel = self.createLabel("Int") floatLabel = self.createLabel("Float") layout = QtGui.QGridLayout() layout.addWidget(aliasedLabel, 0, 1) layout.addWidget(antialiasedLabel, 0, 2) layout.addWidget(intLabel, 1, 0) layout.addWidget(floatLabel, 2, 0) timer = QtCore.QTimer(self) self.circleWidgets = [] for i in range(2): self.circleWidgets.append([None]*2) for j in range(2): self.circleWidgets[i][j] = CircleWidget() self.circleWidgets[i][j].setAntialiased(j != 0) self.circleWidgets[i][j].setFloatBased(i != 0) timer.timeout.connect(self.circleWidgets[i][j].nextAnimationFrame) layout.addWidget(self.circleWidgets[i][j], i + 1, j + 1) timer.start(100) self.setLayout(layout) self.setWindowTitle("Concentric Circles") def createLabel(self, text): label = QtGui.QLabel(text) label.setAlignment(QtCore.Qt.AlignCenter) label.setMargin(2) label.setFrameStyle(QtGui.QFrame.Box | QtGui.QFrame.Sunken) return label if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/painting/painterpaths.py0000755000076500000240000002564012536324427022471 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from math import cos, pi, sin from PyQt4 import QtCore, QtGui class RenderArea(QtGui.QWidget): def __init__(self, path, parent=None): super(RenderArea, self).__init__(parent) self.path = path self.penWidth = 1 self.rotationAngle = 0 self.setBackgroundRole(QtGui.QPalette.Base) def minimumSizeHint(self): return QtCore.QSize(50, 50) def sizeHint(self): return QtCore.QSize(100, 100) def setFillRule(self, rule): self.path.setFillRule(rule) self.update() def setFillGradient(self, color1, color2): self.fillColor1 = color1 self.fillColor2 = color2 self.update() def setPenWidth(self, width): self.penWidth = width self.update() def setPenColor(self, color): self.penColor = color self.update() def setRotationAngle(self, degrees): self.rotationAngle = degrees self.update() def paintEvent(self, event): painter = QtGui.QPainter(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.scale(self.width() / 100.0, self.height() / 100.0) painter.translate(50.0, 50.0) painter.rotate(-self.rotationAngle) painter.translate(-50.0, -50.0) painter.setPen(QtGui.QPen(self.penColor, self.penWidth, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) gradient = QtGui.QLinearGradient(0, 0, 0, 100) gradient.setColorAt(0.0, self.fillColor1) gradient.setColorAt(1.0, self.fillColor2) painter.setBrush(QtGui.QBrush(gradient)) painter.drawPath(self.path) class Window(QtGui.QWidget): NumRenderAreas = 9 def __init__(self): super(Window, self).__init__() rectPath = QtGui.QPainterPath() rectPath.moveTo(20.0, 30.0) rectPath.lineTo(80.0, 30.0) rectPath.lineTo(80.0, 70.0) rectPath.lineTo(20.0, 70.0) rectPath.closeSubpath() roundRectPath = QtGui.QPainterPath() roundRectPath.moveTo(80.0, 35.0) roundRectPath.arcTo(70.0, 30.0, 10.0, 10.0, 0.0, 90.0) roundRectPath.lineTo(25.0, 30.0) roundRectPath.arcTo(20.0, 30.0, 10.0, 10.0, 90.0, 90.0) roundRectPath.lineTo(20.0, 65.0) roundRectPath.arcTo(20.0, 60.0, 10.0, 10.0, 180.0, 90.0) roundRectPath.lineTo(75.0, 70.0) roundRectPath.arcTo(70.0, 60.0, 10.0, 10.0, 270.0, 90.0) roundRectPath.closeSubpath() ellipsePath = QtGui.QPainterPath() ellipsePath.moveTo(80.0, 50.0) ellipsePath.arcTo(20.0, 30.0, 60.0, 40.0, 0.0, 360.0) piePath = QtGui.QPainterPath() piePath.moveTo(50.0, 50.0) piePath.lineTo(65.0, 32.6795) piePath.arcTo(20.0, 30.0, 60.0, 40.0, 60.0, 240.0) piePath.closeSubpath() polygonPath = QtGui.QPainterPath() polygonPath.moveTo(10.0, 80.0) polygonPath.lineTo(20.0, 10.0) polygonPath.lineTo(80.0, 30.0) polygonPath.lineTo(90.0, 70.0) polygonPath.closeSubpath() groupPath = QtGui.QPainterPath() groupPath.moveTo(60.0, 40.0) groupPath.arcTo(20.0, 20.0, 40.0, 40.0, 0.0, 360.0) groupPath.moveTo(40.0, 40.0) groupPath.lineTo(40.0, 80.0) groupPath.lineTo(80.0, 80.0) groupPath.lineTo(80.0, 40.0) groupPath.closeSubpath() textPath = QtGui.QPainterPath() timesFont = QtGui.QFont("Times", 50) timesFont.setStyleStrategy(QtGui.QFont.ForceOutline) textPath.addText(10, 70, timesFont, "Qt") bezierPath = QtGui.QPainterPath() bezierPath.moveTo(20, 30) bezierPath.cubicTo(80, 0, 50, 50, 80, 80) starPath = QtGui.QPainterPath() starPath.moveTo(90, 50) for i in range(1, 5): starPath.lineTo(50 + 40 * cos(0.8 * i * pi), 50 + 40 * sin(0.8 * i * pi)) starPath.closeSubpath() self.renderAreas = [RenderArea(rectPath), RenderArea(roundRectPath), RenderArea(ellipsePath), RenderArea(piePath), RenderArea(polygonPath), RenderArea(groupPath), RenderArea(textPath), RenderArea(bezierPath), RenderArea(starPath)] assert len(self.renderAreas) == 9 self.fillRuleComboBox = QtGui.QComboBox() self.fillRuleComboBox.addItem("Odd Even", QtCore.Qt.OddEvenFill) self.fillRuleComboBox.addItem("Winding", QtCore.Qt.WindingFill) fillRuleLabel = QtGui.QLabel("Fill &Rule:") fillRuleLabel.setBuddy(self.fillRuleComboBox) self.fillColor1ComboBox = QtGui.QComboBox() self.populateWithColors(self.fillColor1ComboBox) self.fillColor1ComboBox.setCurrentIndex( self.fillColor1ComboBox.findText("mediumslateblue")) self.fillColor2ComboBox = QtGui.QComboBox() self.populateWithColors(self.fillColor2ComboBox) self.fillColor2ComboBox.setCurrentIndex( self.fillColor2ComboBox.findText("cornsilk")) fillGradientLabel = QtGui.QLabel("&Fill Gradient:") fillGradientLabel.setBuddy(self.fillColor1ComboBox) fillToLabel = QtGui.QLabel("to") fillToLabel.setSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) self.penWidthSpinBox = QtGui.QSpinBox() self.penWidthSpinBox.setRange(0, 20) penWidthLabel = QtGui.QLabel("&Pen Width:") penWidthLabel.setBuddy(self.penWidthSpinBox) self.penColorComboBox = QtGui.QComboBox() self.populateWithColors(self.penColorComboBox) self.penColorComboBox.setCurrentIndex( self.penColorComboBox.findText('darkslateblue')) penColorLabel = QtGui.QLabel("Pen &Color:") penColorLabel.setBuddy(self.penColorComboBox) self.rotationAngleSpinBox = QtGui.QSpinBox() self.rotationAngleSpinBox.setRange(0, 359) self.rotationAngleSpinBox.setWrapping(True) self.rotationAngleSpinBox.setSuffix('\xB0') rotationAngleLabel = QtGui.QLabel("&Rotation Angle:") rotationAngleLabel.setBuddy(self.rotationAngleSpinBox) self.fillRuleComboBox.activated.connect(self.fillRuleChanged) self.fillColor1ComboBox.activated.connect(self.fillGradientChanged) self.fillColor2ComboBox.activated.connect(self.fillGradientChanged) self.penColorComboBox.activated.connect(self.penColorChanged) for i in range(Window.NumRenderAreas): self.penWidthSpinBox.valueChanged.connect(self.renderAreas[i].setPenWidth) self.rotationAngleSpinBox.valueChanged.connect(self.renderAreas[i].setRotationAngle) topLayout = QtGui.QGridLayout() for i in range(Window.NumRenderAreas): topLayout.addWidget(self.renderAreas[i], i / 3, i % 3) mainLayout = QtGui.QGridLayout() mainLayout.addLayout(topLayout, 0, 0, 1, 4) mainLayout.addWidget(fillRuleLabel, 1, 0) mainLayout.addWidget(self.fillRuleComboBox, 1, 1, 1, 3) mainLayout.addWidget(fillGradientLabel, 2, 0) mainLayout.addWidget(self.fillColor1ComboBox, 2, 1) mainLayout.addWidget(fillToLabel, 2, 2) mainLayout.addWidget(self.fillColor2ComboBox, 2, 3) mainLayout.addWidget(penWidthLabel, 3, 0) mainLayout.addWidget(self.penWidthSpinBox, 3, 1, 1, 3) mainLayout.addWidget(penColorLabel, 4, 0) mainLayout.addWidget(self.penColorComboBox, 4, 1, 1, 3) mainLayout.addWidget(rotationAngleLabel, 5, 0) mainLayout.addWidget(self.rotationAngleSpinBox, 5, 1, 1, 3) self.setLayout(mainLayout) self.fillRuleChanged() self.fillGradientChanged() self.penColorChanged() self.penWidthSpinBox.setValue(2) self.setWindowTitle("Painter Paths") def fillRuleChanged(self): rule = QtCore.Qt.FillRule(self.currentItemData(self.fillRuleComboBox)) for i in range(Window.NumRenderAreas): self.renderAreas[i].setFillRule(rule) def fillGradientChanged(self): color1 = QtGui.QColor(self.currentItemData(self.fillColor1ComboBox)) color2 = QtGui.QColor(self.currentItemData(self.fillColor2ComboBox)) for i in range(Window.NumRenderAreas): self.renderAreas[i].setFillGradient(color1, color2) def penColorChanged(self): color = QtGui.QColor(self.currentItemData(self.penColorComboBox)) for i in range(Window.NumRenderAreas): self.renderAreas[i].setPenColor(color) def populateWithColors(self, comboBox): colorNames = QtGui.QColor.colorNames() for name in colorNames: comboBox.addItem(name, name) def currentItemData(self, comboBox): return comboBox.itemData(comboBox.currentIndex()) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/painting/README0000644000076500000240000000165112536324427020266 0ustar philstaff00000000000000PyQt's painting system is able to render vector graphics, images, and outline font-based text with sub-pixel accuracy using anti-aliasing to improve rendering quality. These examples show the most common techniques that are used when painting with PyQt, from basic concepts such as drawing simple primitives to the use of transformations. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/painting/svgviewer/0000755000076500000240000000000012536324427021424 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/painting/svgviewer/files/0000755000076500000240000000000012536324427022526 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/painting/svgviewer/files/bubbles.svg0000644000076500000240000002356312536324427024676 0ustar philstaff00000000000000 Spheres Semi-transparent bubbles on a colored background. PyQt-x11-gpl-4.11.4/examples/painting/svgviewer/files/cubic.svg0000644000076500000240000001224012536324427024333 0ustar philstaff00000000000000 Example cubic02 - cubic Bezier commands in path data Picture showing examples of "C" and "S" commands, along with annotations showing the control points and end points M100,200 C100,100 400,100 400,200 M100,500 C25,400 475,400 400,500 M100,800 C175,700 325,700 400,800 M600,200 C675,100 975,100 900,200 M600,500 C600,350 900,650 900,500 M600,800 C625,700 725,700 750,800 S875,900 900,800 PyQt-x11-gpl-4.11.4/examples/painting/svgviewer/files/spheres.svg0000644000076500000240000000606612536324427024730 0ustar philstaff00000000000000 Spheres Gradient filled spheres with different colors. PyQt-x11-gpl-4.11.4/examples/painting/svgviewer/svgviewer.py0000755000076500000240000002517212536324427024031 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui, QtOpenGL, QtSvg try: import svgviewer_rc3 except ImportError: import svgviewer_rc2 class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.currentPath = '' self.view = SvgView() fileMenu = QtGui.QMenu("&File", self) openAction = fileMenu.addAction("&Open...") openAction.setShortcut("Ctrl+O") quitAction = fileMenu.addAction("E&xit") quitAction.setShortcut("Ctrl+Q") self.menuBar().addMenu(fileMenu) viewMenu = QtGui.QMenu("&View", self) self.backgroundAction = viewMenu.addAction("&Background") self.backgroundAction.setEnabled(False) self.backgroundAction.setCheckable(True) self.backgroundAction.setChecked(False) self.backgroundAction.toggled.connect(self.view.setViewBackground) self.outlineAction = viewMenu.addAction("&Outline") self.outlineAction.setEnabled(False) self.outlineAction.setCheckable(True) self.outlineAction.setChecked(True) self.outlineAction.toggled.connect(self.view.setViewOutline) self.menuBar().addMenu(viewMenu) rendererMenu = QtGui.QMenu("&Renderer", self) self.nativeAction = rendererMenu.addAction("&Native") self.nativeAction.setCheckable(True) self.nativeAction.setChecked(True) if QtOpenGL.QGLFormat.hasOpenGL(): self.glAction = rendererMenu.addAction("&OpenGL") self.glAction.setCheckable(True) self.imageAction = rendererMenu.addAction("&Image") self.imageAction.setCheckable(True) if QtOpenGL.QGLFormat.hasOpenGL(): rendererMenu.addSeparator() self.highQualityAntialiasingAction = rendererMenu.addAction("&High Quality Antialiasing") self.highQualityAntialiasingAction.setEnabled(False) self.highQualityAntialiasingAction.setCheckable(True) self.highQualityAntialiasingAction.setChecked(False) self.highQualityAntialiasingAction.toggled.connect(self.view.setHighQualityAntialiasing) rendererGroup = QtGui.QActionGroup(self) rendererGroup.addAction(self.nativeAction) if QtOpenGL.QGLFormat.hasOpenGL(): rendererGroup.addAction(self.glAction) rendererGroup.addAction(self.imageAction) self.menuBar().addMenu(rendererMenu) openAction.triggered.connect(self.openFile) quitAction.triggered.connect(QtGui.qApp.quit) rendererGroup.triggered.connect(self.setRenderer) self.setCentralWidget(self.view) self.setWindowTitle("SVG Viewer") def openFile(self, path=None): if not path: path = QtGui.QFileDialog.getOpenFileName(self, "Open SVG File", self.currentPath, "SVG files (*.svg *.svgz *.svg.gz)") if path: svg_file = QtCore.QFile(path) if not svg_file.exists(): QtGui.QMessageBox.critical(self, "Open SVG File", "Could not open file '%s'." % path) self.outlineAction.setEnabled(False) self.backgroundAction.setEnabled(False) return self.view.openFile(svg_file) if not path.startswith(':/'): self.currentPath = path self.setWindowTitle("%s - SVGViewer" % self.currentPath) self.outlineAction.setEnabled(True) self.backgroundAction.setEnabled(True) self.resize(self.view.sizeHint() + QtCore.QSize(80, 80 + self.menuBar().height())) def setRenderer(self, action): if QtOpenGL.QGLFormat.hasOpenGL(): self.highQualityAntialiasingAction.setEnabled(False) if action == self.nativeAction: self.view.setRenderer(SvgView.Native) elif action == self.glAction: if QtOpenGL.QGLFormat.hasOpenGL(): self.highQualityAntialiasingAction.setEnabled(True) self.view.setRenderer(SvgView.OpenGL) elif action == self.imageAction: self.view.setRenderer(SvgView.Image) class SvgView(QtGui.QGraphicsView): Native, OpenGL, Image = range(3) def __init__(self, parent=None): super(SvgView, self).__init__(parent) self.renderer = SvgView.Native self.svgItem = None self.backgroundItem = None self.outlineItem = None self.image = QtGui.QImage() self.setScene(QtGui.QGraphicsScene(self)) self.setTransformationAnchor(QtGui.QGraphicsView.AnchorUnderMouse) self.setDragMode(QtGui.QGraphicsView.ScrollHandDrag) self.setViewportUpdateMode(QtGui.QGraphicsView.FullViewportUpdate) # Prepare background check-board pattern. tilePixmap = QtGui.QPixmap(64, 64) tilePixmap.fill(QtCore.Qt.white) tilePainter = QtGui.QPainter(tilePixmap) color = QtGui.QColor(220, 220, 220) tilePainter.fillRect(0, 0, 32, 32, color) tilePainter.fillRect(32, 32, 32, 32, color) tilePainter.end() self.setBackgroundBrush(QtGui.QBrush(tilePixmap)) def drawBackground(self, p, rect): p.save() p.resetTransform() p.drawTiledPixmap(self.viewport().rect(), self.backgroundBrush().texture()) p.restore() def openFile(self, svg_file): if not svg_file.exists(): return s = self.scene() if self.backgroundItem: drawBackground = self.backgroundItem.isVisible() else: drawBackground = False if self.outlineItem: drawOutline = self.outlineItem.isVisible() else: drawOutline = True s.clear() self.resetTransform() self.svgItem = QtSvg.QGraphicsSvgItem(svg_file.fileName()) self.svgItem.setFlags(QtGui.QGraphicsItem.ItemClipsToShape) self.svgItem.setCacheMode(QtGui.QGraphicsItem.NoCache) self.svgItem.setZValue(0) self.backgroundItem = QtGui.QGraphicsRectItem(self.svgItem.boundingRect()) self.backgroundItem.setBrush(QtCore.Qt.white) self.backgroundItem.setPen(QtGui.QPen(QtCore.Qt.NoPen)) self.backgroundItem.setVisible(drawBackground) self.backgroundItem.setZValue(-1) self.outlineItem = QtGui.QGraphicsRectItem(self.svgItem.boundingRect()) outline = QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.DashLine) outline.setCosmetic(True) self.outlineItem.setPen(outline) self.outlineItem.setBrush(QtGui.QBrush(QtCore.Qt.NoBrush)) self.outlineItem.setVisible(drawOutline) self.outlineItem.setZValue(1) s.addItem(self.backgroundItem) s.addItem(self.svgItem) s.addItem(self.outlineItem) s.setSceneRect(self.outlineItem.boundingRect().adjusted(-10, -10, 10, 10)) def setRenderer(self, renderer): self.renderer = renderer if self.renderer == SvgView.OpenGL: if QtOpenGL.QGLFormat.hasOpenGL(): self.setViewport(QtOpenGL.QGLWidget(QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers))) else: self.setViewport(QtGui.QWidget()) def setHighQualityAntialiasing(self, highQualityAntialiasing): if QtOpenGL.QGLFormat.hasOpenGL(): self.setRenderHint(QtGui.QPainter.HighQualityAntialiasing, highQualityAntialiasing) def setViewBackground(self, enable): if self.backgroundItem: self.backgroundItem.setVisible(enable) def setViewOutline(self, enable): if self.outlineItem: self.outlineItem.setVisible(enable) def paintEvent(self, event): if self.renderer == SvgView.Image: if self.image.size() != self.viewport().size(): self.image = QtGui.QImage(self.viewport().size(), QtGui.QImage.Format_ARGB32_Premultiplied) imagePainter = QtGui.QPainter(self.image) QtGui.QGraphicsView.render(self, imagePainter) imagePainter.end() p = QtGui.QPainter(self.viewport()) p.drawImage(0, 0, self.image) else: super(SvgView, self).paintEvent(event) def wheelEvent(self, event): factor = pow(1.2, event.delta() / 240.0) self.scale(factor, factor) event.accept() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() if len(sys.argv) == 2: window.openFile(sys.argv[1]) else: window.openFile(':/files/bubbles.svg') window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/painting/svgviewer/svgviewer.qrc0000644000076500000240000000025412536324427024155 0ustar philstaff00000000000000 files/bubbles.svg files/cubic.svg files/spheres.svg PyQt-x11-gpl-4.11.4/examples/painting/svgviewer/svgviewer_rc2.py0000644000076500000240000003344112536324427024572 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 10:47:36 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x03\x58\ \x00\ \x00\x14\xa0\x78\x9c\xb5\x98\x6f\x6f\xa2\x40\x10\xc6\xdf\xfb\x29\ \xe6\xf6\xde\xdc\x25\x52\x11\xf9\x7b\x51\x9b\x94\xdc\xcb\x4b\x4c\ \x9a\xdc\x7b\x0a\xab\x6c\x0e\xc1\xc0\xb6\xda\xfb\xf4\x37\xbb\xeb\ \xd2\xd6\x03\x6d\x65\x4b\x22\x15\x2b\xbf\x79\x66\xe6\x61\x19\x99\ \xdf\x1e\xb6\x05\x3c\xd1\xba\x61\x55\xb9\x20\xd3\x1b\x9b\x40\xc3\ \x93\x32\x4b\x8a\xaa\xa4\x0b\x52\x56\xe4\x76\x39\x9a\x37\x4f\x1b\ \xd8\xb3\x8c\xe7\xf8\x15\x3b\xdd\x12\xc8\x29\xdb\xe4\x5c\x1f\x3d\ \x31\xba\xbf\xab\x0e\x0b\x62\x83\x0d\x53\xdb\x56\x3b\x32\x02\xb1\ \x61\x80\xb2\x59\x90\x9c\xf3\xdd\x8f\xc9\x64\xbf\xdf\xdf\xec\x67\ \x37\x55\xbd\x99\x38\xf8\x9d\x09\x92\xc9\xeb\xf8\x0e\x81\x87\xa4\ \xa1\xab\xba\x5a\xb3\x02\x05\x70\x56\x3e\x93\x25\x92\xe6\x9c\xf1\ \x82\x2e\x7f\x1e\x92\xed\xae\xa0\x90\x3e\x3e\xb0\xd4\x76\xc0\x52\ \xef\xe0\x8e\xfe\x65\xb4\x86\xb4\xda\x6e\x51\x7d\x03\xac\x84\x5d\ \xc2\x73\xc8\x12\x9e\xcc\x27\xea\x5c\x41\xc9\x68\x93\x2e\x57\x2c\ \xe5\x8f\x35\x85\x26\xaf\xf6\xac\xdc\x00\x55\xd0\x06\xaa\x35\x90\ \x98\x00\x12\x80\xdc\x93\x96\x36\x56\x99\xe0\x26\xca\x22\x4a\x81\ \xe4\xa4\x2c\x2b\x9e\x70\xd4\xdd\xb4\x20\x9e\xa3\xb2\xaa\xe4\x75\ \x55\xc0\xae\x62\x25\x6f\x5e\xce\x44\x26\xc5\x97\xfa\x78\x3e\x91\ \x42\x46\x42\x52\x4d\x53\x0e\x98\x6d\x21\xca\x5d\x52\xd1\x80\xba\ \xfa\x83\xb9\x3f\x14\x8f\xed\x91\xa5\xcb\x4f\xe0\x20\xf7\xcf\x72\ \x7f\xfc\x34\x8a\xc2\x97\x9e\xc8\x83\x89\x62\x7f\xb1\x2c\x58\x89\ \x3a\x4c\xc1\xb2\x64\x01\x76\x55\xf1\x5c\xb0\x92\x76\x46\xfc\x1a\ \xca\xed\x34\x28\x36\x45\xc9\x16\x0d\xb7\xc7\x8e\x6a\xf0\x18\x5f\ \x32\xd0\x70\xaa\xab\x68\xe0\x2a\x7a\x4b\x15\xca\xbb\x88\x35\xcd\ \x4e\x69\x1e\x81\x6c\x41\x7e\x69\x7d\xf1\xf4\x15\xb2\x03\x9d\xb2\ \x3a\x2d\x3e\x2a\x37\x3d\xc8\x02\xe0\x1b\xac\xbe\x84\xd5\xe2\x83\ \xc1\x4c\xf7\x22\x33\x2d\x92\x06\xeb\x14\xf3\x62\x25\x4a\x76\x22\ \x65\xfa\xa1\xd3\xdc\xfe\xd3\x38\x3d\x70\x10\x3b\x2b\x29\xd3\xbc\ \xc2\xff\x6d\x59\x96\x15\x98\xc8\x1a\x5d\x6d\x35\xec\x2f\xe6\xe2\ \x38\xc7\xc3\x75\xb2\x65\x05\x72\x7e\xd3\x3a\x4b\xca\x44\x3a\xd3\ \xf1\x6c\xe9\x4d\x27\xf0\xc8\xf2\x62\x37\xf0\xca\xc4\x60\x27\x56\ \x75\x0c\x5a\xd5\xc3\x58\x8e\x37\x76\xcd\x39\x35\x90\x34\x99\x80\ \x37\xd8\xa9\x42\x5e\xec\x1c\x89\xdd\xe4\xe1\x46\xf5\x3e\xc1\xa8\ \x17\x98\x27\x14\x1d\x24\x95\x06\x51\x04\xf7\x6a\x02\x16\xaa\x0f\ \x61\xce\xbf\x5e\xeb\xdf\x33\x3d\xea\xb4\xef\xcc\xa0\x7d\x43\xb1\ \xd2\x62\xcc\xc0\x98\x7f\x67\x8e\xa4\xc9\x0c\xc2\xc1\xfe\x0d\xe5\ \xb5\xad\x04\x42\x0f\x7a\xb8\x81\xc3\x4f\x30\xf0\x05\xe6\x19\xfb\ \x4d\xb5\xfd\x82\xab\x11\x33\xa7\x17\x61\xce\xc1\x61\xeb\xe0\x73\ \x5d\xea\xb4\xb0\x6b\xc8\xc2\xfe\x71\xf9\xf7\x31\xb6\xb9\x61\x21\ \x52\x34\x88\x06\x0f\x0b\x5a\x5f\xec\x6b\x64\x37\xfa\x6a\xbb\xf9\ \x9f\x30\x2c\x44\xef\x64\x9e\xf1\x9f\xaf\x2d\xdc\x3b\x38\x5c\x44\ \x44\xfd\x88\xe1\x16\x0e\xde\x0c\x11\x97\xba\xd4\x69\x61\xcf\xa0\ \x85\xc5\x1d\x40\xfc\x9d\x79\xc6\x2c\x8c\x34\xdf\x53\x19\x0c\x9b\ \x22\xb4\xbe\xf8\x28\x10\x7a\xd0\xc3\x2d\x6c\x70\x8c\x88\x86\x8f\ \x11\xad\x2c\xd9\x94\xeb\x2c\xac\x11\xfe\x7f\x08\x73\x16\xf6\x5a\ \x0b\x9f\xeb\x52\xa7\x85\x7d\xf8\x16\xcb\x9f\x8d\xf7\xfa\x87\xe8\ \x77\x83\xa6\x16\x37\x05\xdf\x31\x39\x5a\x04\xc7\x3b\x0b\xa6\xfe\ \x66\xb4\x18\x48\x55\x34\x08\xf0\xa2\x8f\x8c\x51\x43\x45\x93\xf5\ \x1f\x36\x06\xe9\x5a\xc6\xbe\x4e\xff\x6d\x19\xda\x07\x00\x17\xb6\ \xfb\x1e\x49\xc3\x2f\x5c\x83\xe3\x93\x74\xb5\x61\x66\x34\x7c\x24\ \xf3\xfb\xe7\xa9\xf7\x22\x82\xe1\x88\x50\xdf\x12\xa3\x8f\x14\xa7\ \xeb\x21\x8f\x7b\xd4\x74\x0a\x8c\xcc\xaf\x4f\x91\xab\xd7\xa7\x73\ \x26\xd6\xeb\x93\xd9\xd0\x62\x69\x3c\xb5\xbd\x8e\x34\x17\x4f\x06\ \x97\xa3\x7f\xef\x90\xc3\xc1\ \x00\x00\x02\xd2\ \x00\ \x00\x0c\x36\x78\x9c\xd5\x56\x7f\x6b\xdb\x30\x10\xfd\xbf\x9f\xe2\ \xa6\x32\x68\x20\x89\x7f\x24\x6e\x9b\xe2\xa4\xb0\x0d\xf6\xe7\x06\ \xa5\x1f\xc0\xb5\xcf\xb6\x88\x62\x05\x49\xad\x9b\x6f\xbf\x93\xe5\ \x39\x4e\x9b\x36\x4b\xe9\x0a\x15\x18\x4b\xf6\xdd\xd3\xbd\xa7\x83\ \xa7\xf8\xfa\x71\x25\xe0\x01\x95\xe6\xb2\x9a\xb3\x60\xec\x33\xd0\ \x26\xa9\xb2\x44\xc8\x0a\xe7\xac\x92\xec\x7a\x71\x12\xeb\x87\x02\ \x6a\x9e\x99\x72\xce\x2e\xd3\x15\x83\x12\x79\x51\x9a\x76\xf1\xc0\ \xb1\xfe\x26\x1f\xe7\xcc\x07\x1f\xa6\x7e\xf3\xb0\x13\xa0\x41\xd8\ \x95\x9e\xb3\xd2\x98\xf5\x95\xe7\xd5\x75\x3d\xae\x27\x63\xa9\x0a\ \x2f\xf4\x7d\xdf\x23\xd0\x5e\xd8\xd5\xa3\xe0\xd5\x72\x5f\x70\x30\ \x9b\xcd\xbc\xe6\xaf\xe7\xe2\xef\x12\x8d\xbf\x95\xcc\xb9\xa0\x0a\ \x0d\xaf\x36\xac\xcf\x20\x64\x0b\x8a\x8a\x0d\x37\x02\x17\x37\xeb\ \x12\x15\xea\xd8\x73\x4b\xfb\x23\x43\x9d\x2e\x7e\xaa\x24\xe3\x58\ \x19\x20\x10\x81\x19\x68\x17\x47\x24\x4d\x09\x19\xcf\x73\x5a\xd1\ \xdf\x54\x0a\xa9\xf4\x38\xf6\x9a\xa4\x66\x73\xca\xcf\xb5\x9b\xd2\ \xe2\xcb\x68\x04\xdf\x15\x26\x06\xc1\x22\x26\x02\x8a\x16\x59\x43\ \x2e\x15\x60\x92\x96\x90\x72\x95\x0a\x04\x23\x61\x95\x2c\xe9\x5d\ \xe2\x0a\x84\x94\x4b\x10\x7c\x89\x2d\x52\x33\xda\x2a\xc6\x30\x1a\ \x75\x3b\x38\xd8\xae\x5e\x9e\xcd\xd9\x9d\xb8\x47\x47\x8c\x75\xdb\ \xdd\x56\xdc\x90\xd4\xf7\x1a\xd5\xcd\x3a\x49\xf1\x57\x75\xab\x91\ \xf5\xc1\x7b\x23\xb5\x87\xc5\x20\xdd\x34\x2f\x45\xaa\xd1\x89\x41\ \x4e\x5f\x47\x91\x9d\x6c\xdc\x64\xd1\xa5\xc7\xda\xc8\x35\xc8\x3c\ \xd7\x48\xa7\xee\x7f\xb5\x4d\x22\xd7\xa3\x46\x9e\x39\xab\x4b\x6e\ \xa8\x14\xef\xa5\xf8\x8b\xe8\x49\x82\x25\xf0\x4a\x3c\x55\xf3\x24\ \xe1\x34\xa4\x31\x9d\xf6\x72\x62\x6f\x57\x98\xd7\xf4\x52\x98\x7d\ \x6a\xb9\xa8\xfe\xe3\xd4\x9a\x4e\xad\x5e\x6f\x54\xab\x50\x88\xd5\ \xa7\xd6\xab\x61\x70\x9c\x62\x41\x30\x99\x04\xc1\x1b\x15\xdb\xa0\ \x10\xb2\xfe\xd4\x92\x39\x0a\xc7\x76\x99\xed\xb3\x37\x6a\xa6\xcb\ \x24\x93\xb5\xfd\xf4\xff\x14\x3b\x42\xb0\x3b\x91\xa4\xcb\xf6\x93\ \xa4\xbd\xb9\xd9\xb4\x6e\x78\x84\x22\xad\xea\xbb\x20\xfe\x0e\xc8\ \x73\x89\xfa\x4e\xf2\x03\x73\x5e\x21\x24\xe0\xd4\xd9\x3a\x88\x33\ \x86\x1d\x5f\x68\x4d\x65\xab\x25\x6b\xbc\x8c\xe4\x53\xe2\xec\x74\ \x2b\xef\x80\xbd\x20\x55\x5b\x93\xf5\x36\x67\x68\x71\xd1\x22\x9c\ \x92\xfd\xe1\x6c\x66\x99\x28\xb9\x6c\x6e\x01\x15\xf1\x6a\xe3\x15\ \xa6\x06\x1c\xa2\x03\x6c\x2f\x06\xd6\xf5\xbb\x8b\xc1\xb4\xdb\x21\ \xf6\x8a\x1d\xf0\x4e\xa4\x83\xd0\xc1\x45\xb4\x1f\x3c\x0c\xa3\x67\ \xe0\x46\x25\x95\x26\xbd\x56\x74\x23\xb0\x53\x41\x96\x7c\x46\xd7\ \x8c\x21\xa1\x0c\xda\x36\x88\xa9\xb3\xa0\xb9\x48\x5c\x95\x0a\x73\ \x22\xfa\x57\xb9\xfd\xd9\xd1\x30\x8a\x06\xa0\xd3\x44\xe0\x19\xf5\ \xc2\xd0\x1f\x13\x54\xa7\x5b\x7b\x00\x3d\xd1\xb7\xbe\xfc\xba\xe8\ \x07\xaa\x9e\x04\xd1\x30\x9c\xfa\x5d\xd5\x3b\x61\xae\x1a\xaa\xc4\ \x55\xd3\xb5\xc3\x7b\x52\xdb\x4b\xae\x33\xd1\xc3\x0d\x55\xfc\x03\ \xc9\x4b\x7f\x18\xf6\x4e\x66\x2f\xc7\x73\x4b\xf2\xfc\x43\x59\xf6\ \xcc\xef\x7d\x78\x86\x51\x34\x9c\x84\x07\x88\x4e\xa8\xb2\xc9\x47\ \xd2\xec\x3b\xd6\x31\x3c\x63\x7b\x69\x5f\x9c\xfc\x01\x4d\xb4\x75\ \x0c\ \x00\x00\x05\xf1\ \x00\ \x00\x27\x73\x78\x9c\xdd\x9a\x6d\x6f\x9b\x48\x10\x80\x3f\x5f\x7e\ \xc5\x94\xea\xa4\x5a\xb2\xcd\xf2\x66\x9b\xd6\x4e\xa5\x26\x51\x75\ \x52\xaf\x8d\x9a\xe4\x4e\x77\xdf\xd6\xb0\xd8\x28\x18\x2c\xc0\x71\ \xdc\x5f\x7f\xb3\xcb\xbb\x63\xc7\x90\x92\x5c\x5c\xa4\x64\x17\xbc\ \xcc\xee\x3c\xbb\x3b\x33\x0c\x8c\x3f\xde\x2f\x3c\xb8\x63\x61\xe4\ \x06\xfe\x44\x52\xfa\x44\x82\x28\xa6\xbe\x4d\xbd\xc0\x67\x13\xc9\ \x0f\xa4\x8f\xa7\x27\xe3\x37\xe7\xdf\xce\xae\xff\xb9\xbc\x80\xe8\ \x6e\x06\x97\x37\x9f\xbe\xfc\x71\x06\x52\x4f\x96\xff\xd6\xce\x64\ \xf9\xfc\xfa\x1c\xae\xfe\xfa\x0c\x78\xb3\x2c\x5f\x7c\x95\x40\x9a\ \xc7\xf1\xf2\xbd\x2c\xaf\xd7\xeb\xfe\x5a\xeb\x07\xe1\x4c\xbe\xfe\ \x2e\xab\x84\x28\xf2\xf7\x8b\xb3\x1e\xb6\xed\xf1\x13\x62\x12\x9d\ \xdf\x2c\xa3\x50\x85\xf4\xed\xd8\x96\xb0\x2b\xde\xc3\xda\xb5\xe3\ \xf9\x44\x52\x89\xb5\x90\x60\xce\xdc\xd9\x3c\xc6\xb1\x19\xfc\xec\ \xce\x65\xeb\x4f\xc1\xfd\x44\x22\x40\x60\x44\x08\x0c\x08\x91\x4e\ \x00\x0f\x54\xc4\x8f\x26\x3b\xfa\xc6\xbe\x08\xef\xa3\xd4\xec\xfd\ \xbd\xe7\xfa\xb7\xbb\x1a\x2b\xa6\x69\xca\xe2\x57\x39\x69\x3f\xa5\ \x11\xbb\x0c\x03\xc7\xf5\x10\x47\xec\xfa\x1b\xa9\x8c\x4b\xc5\x21\ \x03\x8c\x63\x37\xf6\xd8\xe9\xd5\x72\xce\x42\x16\x8d\xe5\xe4\x94\ \xff\x60\xb3\xc8\x3a\xbd\x62\x0b\xb7\x17\x87\xd4\x8f\x96\x34\x64\ \x7e\x0c\xd3\xd5\x74\xea\xb1\x08\x02\x1f\x28\x58\x81\x17\x84\xcc\ \xc6\x8e\xac\xdb\x59\x18\xac\x7c\xbb\x3f\x96\xc5\x7d\xa2\x7f\x14\ \xe1\x44\x49\x15\x4f\xde\xf4\x7a\x70\x16\x32\x1a\x33\x08\xa9\xed\ \x52\x0f\x66\xbc\x44\xa1\x11\x38\x41\x08\x8c\x5a\xf3\x54\x7c\x1f\ \x7a\xbd\xfc\xbe\xa4\xf1\xe7\xb4\x2d\xb8\xf6\x44\x9a\x7a\x2b\xf6\ \x49\xb4\x94\x72\x21\x37\xbe\x1b\x23\xc3\x55\xc4\xc2\xab\x25\xb5\ \xd8\x37\xff\x26\x62\x52\x2a\x64\xfb\xb0\xf8\x2c\x48\x60\x6d\x44\ \x11\x22\x0e\x9c\x0a\x70\xf0\x6a\xcf\xe0\x95\x4d\x52\x39\xcd\x6f\ \x1f\x47\x71\xb0\x84\xc0\x71\x22\x86\xf3\x49\x7e\xe7\x4b\x2d\x58\ \xf6\x04\x80\x89\xb4\x9e\xbb\x31\x4b\x2f\x05\xd8\xb9\x1b\xa3\x00\ \x45\x02\x79\x9f\x00\xd5\xd8\x92\xf0\xd6\xb2\x2d\xdb\x71\xb6\x65\ \xf4\x07\xc6\x23\x52\x70\xd0\x0f\xc5\x50\x6a\xd9\x0f\xc4\x0c\xcb\ \x62\xc6\x72\x15\xe9\x63\xa4\x71\x76\x7f\x31\xd0\x8e\xc3\x51\xff\ \x34\xe8\x29\x1e\xa6\xd9\x1e\xe8\x59\xc8\x98\xff\x8b\xa1\xe6\x2b\ \xba\x05\xd4\xa6\x49\xf1\x68\x0f\xf5\x86\x79\x5e\xb0\xfe\xc5\x58\ \x3b\x4e\x2b\xac\xf9\xb2\x6e\x93\x75\xe1\x19\xda\x22\xad\x67\xa4\ \xd5\x8c\xb4\xda\x80\xb4\xe0\xc4\x58\x43\xa3\x8a\x07\x87\x72\x98\ \x00\x3a\x5f\x46\xc3\x0a\x81\x68\x15\x3a\xa8\xe4\x13\xd5\xbf\x57\ \x70\x25\x89\xc5\xb5\x51\x78\x54\x81\x95\x7b\x35\x85\xb0\x51\x93\ \x2b\x8d\x74\xb7\xac\xe6\x0b\x62\x34\xaa\xe8\x5e\x55\xf2\xf4\xa4\ \x91\x83\xb7\xdc\xd0\xf2\x18\xc4\x01\x2c\xe8\x2d\x96\x73\xb6\x00\ \x2f\x08\x6e\xc1\x73\x6f\x59\x19\x42\x94\x44\x24\x75\x42\x81\x24\ \x78\x79\x55\x5b\x79\x2f\xe2\xe1\xf6\xce\xe5\x0a\x34\x9b\x12\x15\ \x0f\x5d\x7f\xba\x43\x3f\x6a\x5c\x38\xfe\x66\xb4\x74\x9d\xf3\xfa\ \x19\xaf\x7c\xd4\xbc\x84\x06\xcd\x88\x29\x8a\xa6\x29\xca\x4f\x39\ \xd7\xa3\x46\x96\xa8\xd0\x74\x95\xf1\x75\xf6\x44\x66\xd1\x9c\xda\ \xc1\x9a\x5f\x7a\x3e\x62\x0d\x80\x4d\x3d\x74\xda\x0f\xa2\x11\xfe\ \x78\xdd\x80\xc8\x4e\x21\xa4\x22\xe4\x21\xa2\xb2\x27\x39\x67\x0e\ \xfa\x19\x7c\xc8\x4c\xe8\x14\x1e\x24\x71\x0c\x15\xbf\x90\x3a\x95\ \x82\x25\xea\xec\x7a\x1e\xe2\x0b\xbd\x77\x6f\x0b\xbc\x1d\x69\x0f\ \xaa\x62\x4c\xb3\xc4\xab\x24\xc1\x61\x49\xdd\xb4\x8b\x44\x6c\xaa\ \xdc\x03\x59\xc6\x16\xa3\xca\x4d\x6f\xe9\xc0\x62\x9a\xb9\xe3\x36\ \x4d\xab\xde\xb6\xa4\xf1\xbc\xda\x13\x0e\xe9\x4f\xd0\x86\x5d\x83\ \xc0\x17\x30\x48\x57\x1b\x62\xa9\xa8\xdd\x9e\x82\xa5\xca\x4b\x5e\ \x51\x48\xb7\xa7\xea\x58\xc1\xff\x5d\x85\xec\x59\x2c\xd9\x81\xcd\ \x14\xa5\xab\xaa\xa2\xd2\x55\x54\xf8\x77\xe7\xe0\x0f\x01\x93\x67\ \xe9\xc3\xbe\x9c\x3d\xed\x8f\xb3\x2b\x21\xb3\xe2\xf2\x44\x14\xc1\ \x20\x4e\x44\x22\x36\x91\x9a\x26\x4d\x46\x5c\x72\x96\x33\x19\xe4\ \xdd\x88\x2e\x84\x5c\x10\x99\x08\x5c\x09\x8b\x89\x24\xaa\x1e\x06\ \x1b\xef\x30\x06\xea\x0e\x09\xe9\xa4\xd3\x35\xc6\x3d\x03\x22\x0d\ \xf2\x7e\x1e\x32\x87\xc7\x30\x69\xa8\x5f\x1e\x4a\x9e\x41\xe8\xe4\ \xca\x8c\xa9\xef\x2e\x50\xe0\x75\xd6\x09\xd0\x38\x0e\xdd\xe9\x2a\ \x66\x5f\xe9\x82\xa5\x5d\xf2\x1f\x24\x88\x37\x4b\x56\x1a\x83\x04\ \xd4\xb6\xdd\xd8\xbd\x63\x3c\xe0\x5b\x14\xfb\xf4\x8e\x62\x47\xb8\ \x8f\x49\x97\x7c\x00\x9c\x1e\xa1\xe2\x94\xcd\x5c\x9e\x82\x89\x70\ \x62\x57\x82\x68\x94\x0d\xce\x41\x73\xfd\x03\xc5\x85\x6c\x89\x81\ \xd4\x19\xb2\x42\x14\xae\x6f\xf3\xcd\x50\x98\xb1\x14\xfa\x3e\x20\ \x9a\x62\x54\x80\x54\x9a\x45\x16\xf5\xd8\x3b\xd2\x37\xba\xf8\xd7\ \xc9\x97\x78\x2d\x6a\x79\x36\xa0\x04\x2d\x9f\xff\x17\xa6\xa7\x65\ \xf4\x86\xed\xc2\x1b\x91\xc3\xec\x06\x1c\xde\xa0\x29\xbd\xd2\x23\ \xfe\x2b\xe0\x67\x64\xfc\xcc\x76\xf9\xa9\x46\x8d\xc5\xa7\x21\x3f\ \xad\x21\xbe\xf2\x63\xfb\x2b\xe0\xa7\x66\xfc\x06\xed\xf2\x33\x06\ \x35\xf8\xe9\xc8\x4f\x6f\xc8\x6f\xa7\xc9\xfb\xbf\xe8\xe9\x19\xbd\ \x51\xbb\xf4\x86\x75\x4c\xdf\x80\xef\xde\x23\x36\x7d\xb9\xe3\xd0\ \xdb\x85\x37\xd0\xeb\x6c\xdd\x21\x37\x7e\xf8\xff\xa8\xad\x1f\xc9\ \x7d\xaf\xd2\xf2\xf6\xad\x63\xfe\x4c\x24\x68\x1e\xb7\xf9\x2b\xdc\ \x6f\xdf\x78\x0a\xc1\xc7\xc2\x97\x41\x0d\x17\xfc\x94\xf0\xe5\x55\ \x59\x40\xed\x99\xfc\x87\x5a\xc7\x02\xea\x1c\x9f\x7e\xcc\xe1\x9f\ \xd1\x37\x9e\x29\x00\xd4\xd5\x1a\xcb\x4f\x18\xc1\x23\xb7\x81\xca\ \x33\x45\x80\xa3\xe7\xf2\xc1\xaf\xcc\x04\xe6\x11\xa0\xd9\xba\x09\ \x54\x55\xa3\x2b\x5c\x2c\xec\x67\xa8\xf4\x49\x62\x03\x21\x87\x28\ \x12\x07\x22\x57\xc0\x3f\x31\xf8\x02\x9a\x91\x94\x3a\x96\xba\xc8\ \x1d\xf0\x77\x09\xa2\xfa\xa3\x9a\x4b\x2a\xa7\x4b\x92\x17\x16\x1d\ \x9e\xbc\x09\x83\x5b\xf1\x25\x85\xcf\xb6\x71\x17\xd4\x1f\x79\x2a\ \x27\x7b\x14\xa8\xb6\xd2\x4d\xd2\x81\x44\x27\x15\x75\x42\xbd\x3a\ \x10\x06\xb1\xd8\x8b\x15\xf5\x4a\xf9\x84\x3c\x99\xc2\x73\x5c\x03\ \x53\x24\x12\x44\x99\xa6\x12\x14\x6d\x54\xfa\xfc\x42\xab\xbc\xc0\ \x68\x9e\xca\x79\x52\x22\xe7\x45\xd2\x38\x8f\x26\x71\x9a\x6c\x88\ \x74\x47\x24\xdc\xb7\xb7\x43\xb1\x0d\x3e\x00\x7a\x67\xe9\xe4\xb7\ \x7c\x00\x0f\xe2\xa9\xa6\xb9\x8c\x9a\x4b\xe9\x40\xc0\x99\xa5\xfd\ \xf6\x3c\x92\x76\x0d\x23\x5b\x62\xc5\xb6\xd9\x33\xbd\x79\xa8\x90\ \x24\xb1\x0f\xe5\x0c\x0f\x8e\x9e\x67\x63\x74\x9d\x94\x46\x5f\x27\ \xa0\x69\x5d\xc9\x9d\x6a\xe6\x6f\x83\x6a\x64\x46\x8b\x44\xdf\x01\ \x85\x47\xb8\xa5\x2b\xb3\x55\x2f\x87\xf2\x32\x1a\x97\xde\xe8\xb4\ \xa9\x33\xcf\x7a\x18\xea\x41\xa5\xb7\xf2\x1e\x2f\xa3\x72\xf9\x95\ \x4c\x73\x9d\x45\x31\xe6\x1f\xa1\x9d\x9e\xfc\x07\x24\xe4\x53\x30\ \ " qt_resource_name = "\ \x00\x05\ \x00\x6d\x02\xc3\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x73\ \x00\x09\ \x08\xf6\x8f\xa7\ \x00\x63\ \x00\x75\x00\x62\x00\x69\x00\x63\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x0b\ \x08\x32\x87\x47\ \x00\x73\ \x00\x70\x00\x68\x00\x65\x00\x72\x00\x65\x00\x73\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x0b\ \x02\x19\x2b\xe7\ \x00\x62\ \x00\x75\x00\x62\x00\x62\x00\x6c\x00\x65\x00\x73\x00\x2e\x00\x73\x00\x76\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x44\x00\x01\x00\x00\x00\x01\x00\x00\x06\x32\ \x00\x00\x00\x28\x00\x01\x00\x00\x00\x01\x00\x00\x03\x5c\ \x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/painting/svgviewer/svgviewer_rc3.py0000644000076500000240000003344412536324427024576 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 10:47:28 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x03\x58\ \x00\ \x00\x14\xa0\x78\x9c\xb5\x98\x6f\x6f\xa2\x40\x10\xc6\xdf\xfb\x29\ \xe6\xf6\xde\xdc\x25\x52\x11\xf9\x7b\x51\x9b\x94\xdc\xcb\x4b\x4c\ \x9a\xdc\x7b\x0a\xab\x6c\x0e\xc1\xc0\xb6\xda\xfb\xf4\x37\xbb\xeb\ \xd2\xd6\x03\x6d\x65\x4b\x22\x15\x2b\xbf\x79\x66\xe6\x61\x19\x99\ \xdf\x1e\xb6\x05\x3c\xd1\xba\x61\x55\xb9\x20\xd3\x1b\x9b\x40\xc3\ \x93\x32\x4b\x8a\xaa\xa4\x0b\x52\x56\xe4\x76\x39\x9a\x37\x4f\x1b\ \xd8\xb3\x8c\xe7\xf8\x15\x3b\xdd\x12\xc8\x29\xdb\xe4\x5c\x1f\x3d\ \x31\xba\xbf\xab\x0e\x0b\x62\x83\x0d\x53\xdb\x56\x3b\x32\x02\xb1\ \x61\x80\xb2\x59\x90\x9c\xf3\xdd\x8f\xc9\x64\xbf\xdf\xdf\xec\x67\ \x37\x55\xbd\x99\x38\xf8\x9d\x09\x92\xc9\xeb\xf8\x0e\x81\x87\xa4\ \xa1\xab\xba\x5a\xb3\x02\x05\x70\x56\x3e\x93\x25\x92\xe6\x9c\xf1\ \x82\x2e\x7f\x1e\x92\xed\xae\xa0\x90\x3e\x3e\xb0\xd4\x76\xc0\x52\ \xef\xe0\x8e\xfe\x65\xb4\x86\xb4\xda\x6e\x51\x7d\x03\xac\x84\x5d\ \xc2\x73\xc8\x12\x9e\xcc\x27\xea\x5c\x41\xc9\x68\x93\x2e\x57\x2c\ \xe5\x8f\x35\x85\x26\xaf\xf6\xac\xdc\x00\x55\xd0\x06\xaa\x35\x90\ \x98\x00\x12\x80\xdc\x93\x96\x36\x56\x99\xe0\x26\xca\x22\x4a\x81\ \xe4\xa4\x2c\x2b\x9e\x70\xd4\xdd\xb4\x20\x9e\xa3\xb2\xaa\xe4\x75\ \x55\xc0\xae\x62\x25\x6f\x5e\xce\x44\x26\xc5\x97\xfa\x78\x3e\x91\ \x42\x46\x42\x52\x4d\x53\x0e\x98\x6d\x21\xca\x5d\x52\xd1\x80\xba\ \xfa\x83\xb9\x3f\x14\x8f\xed\x91\xa5\xcb\x4f\xe0\x20\xf7\xcf\x72\ \x7f\xfc\x34\x8a\xc2\x97\x9e\xc8\x83\x89\x62\x7f\xb1\x2c\x58\x89\ \x3a\x4c\xc1\xb2\x64\x01\x76\x55\xf1\x5c\xb0\x92\x76\x46\xfc\x1a\ \xca\xed\x34\x28\x36\x45\xc9\x16\x0d\xb7\xc7\x8e\x6a\xf0\x18\x5f\ \x32\xd0\x70\xaa\xab\x68\xe0\x2a\x7a\x4b\x15\xca\xbb\x88\x35\xcd\ \x4e\x69\x1e\x81\x6c\x41\x7e\x69\x7d\xf1\xf4\x15\xb2\x03\x9d\xb2\ \x3a\x2d\x3e\x2a\x37\x3d\xc8\x02\xe0\x1b\xac\xbe\x84\xd5\xe2\x83\ \xc1\x4c\xf7\x22\x33\x2d\x92\x06\xeb\x14\xf3\x62\x25\x4a\x76\x22\ \x65\xfa\xa1\xd3\xdc\xfe\xd3\x38\x3d\x70\x10\x3b\x2b\x29\xd3\xbc\ \xc2\xff\x6d\x59\x96\x15\x98\xc8\x1a\x5d\x6d\x35\xec\x2f\xe6\xe2\ \x38\xc7\xc3\x75\xb2\x65\x05\x72\x7e\xd3\x3a\x4b\xca\x44\x3a\xd3\ \xf1\x6c\xe9\x4d\x27\xf0\xc8\xf2\x62\x37\xf0\xca\xc4\x60\x27\x56\ \x75\x0c\x5a\xd5\xc3\x58\x8e\x37\x76\xcd\x39\x35\x90\x34\x99\x80\ \x37\xd8\xa9\x42\x5e\xec\x1c\x89\xdd\xe4\xe1\x46\xf5\x3e\xc1\xa8\ \x17\x98\x27\x14\x1d\x24\x95\x06\x51\x04\xf7\x6a\x02\x16\xaa\x0f\ \x61\xce\xbf\x5e\xeb\xdf\x33\x3d\xea\xb4\xef\xcc\xa0\x7d\x43\xb1\ \xd2\x62\xcc\xc0\x98\x7f\x67\x8e\xa4\xc9\x0c\xc2\xc1\xfe\x0d\xe5\ \xb5\xad\x04\x42\x0f\x7a\xb8\x81\xc3\x4f\x30\xf0\x05\xe6\x19\xfb\ \x4d\xb5\xfd\x82\xab\x11\x33\xa7\x17\x61\xce\xc1\x61\xeb\xe0\x73\ \x5d\xea\xb4\xb0\x6b\xc8\xc2\xfe\x71\xf9\xf7\x31\xb6\xb9\x61\x21\ \x52\x34\x88\x06\x0f\x0b\x5a\x5f\xec\x6b\x64\x37\xfa\x6a\xbb\xf9\ \x9f\x30\x2c\x44\xef\x64\x9e\xf1\x9f\xaf\x2d\xdc\x3b\x38\x5c\x44\ \x44\xfd\x88\xe1\x16\x0e\xde\x0c\x11\x97\xba\xd4\x69\x61\xcf\xa0\ \x85\xc5\x1d\x40\xfc\x9d\x79\xc6\x2c\x8c\x34\xdf\x53\x19\x0c\x9b\ \x22\xb4\xbe\xf8\x28\x10\x7a\xd0\xc3\x2d\x6c\x70\x8c\x88\x86\x8f\ \x11\xad\x2c\xd9\x94\xeb\x2c\xac\x11\xfe\x7f\x08\x73\x16\xf6\x5a\ \x0b\x9f\xeb\x52\xa7\x85\x7d\xf8\x16\xcb\x9f\x8d\xf7\xfa\x87\xe8\ \x77\x83\xa6\x16\x37\x05\xdf\x31\x39\x5a\x04\xc7\x3b\x0b\xa6\xfe\ \x66\xb4\x18\x48\x55\x34\x08\xf0\xa2\x8f\x8c\x51\x43\x45\x93\xf5\ \x1f\x36\x06\xe9\x5a\xc6\xbe\x4e\xff\x6d\x19\xda\x07\x00\x17\xb6\ \xfb\x1e\x49\xc3\x2f\x5c\x83\xe3\x93\x74\xb5\x61\x66\x34\x7c\x24\ \xf3\xfb\xe7\xa9\xf7\x22\x82\xe1\x88\x50\xdf\x12\xa3\x8f\x14\xa7\ \xeb\x21\x8f\x7b\xd4\x74\x0a\x8c\xcc\xaf\x4f\x91\xab\xd7\xa7\x73\ \x26\xd6\xeb\x93\xd9\xd0\x62\x69\x3c\xb5\xbd\x8e\x34\x17\x4f\x06\ \x97\xa3\x7f\xef\x90\xc3\xc1\ \x00\x00\x02\xd2\ \x00\ \x00\x0c\x36\x78\x9c\xd5\x56\x7f\x6b\xdb\x30\x10\xfd\xbf\x9f\xe2\ \xa6\x32\x68\x20\x89\x7f\x24\x6e\x9b\xe2\xa4\xb0\x0d\xf6\xe7\x06\ \xa5\x1f\xc0\xb5\xcf\xb6\x88\x62\x05\x49\xad\x9b\x6f\xbf\x93\xe5\ \x39\x4e\x9b\x36\x4b\xe9\x0a\x15\x18\x4b\xf6\xdd\xd3\xbd\xa7\x83\ \xa7\xf8\xfa\x71\x25\xe0\x01\x95\xe6\xb2\x9a\xb3\x60\xec\x33\xd0\ \x26\xa9\xb2\x44\xc8\x0a\xe7\xac\x92\xec\x7a\x71\x12\xeb\x87\x02\ \x6a\x9e\x99\x72\xce\x2e\xd3\x15\x83\x12\x79\x51\x9a\x76\xf1\xc0\ \xb1\xfe\x26\x1f\xe7\xcc\x07\x1f\xa6\x7e\xf3\xb0\x13\xa0\x41\xd8\ \x95\x9e\xb3\xd2\x98\xf5\x95\xe7\xd5\x75\x3d\xae\x27\x63\xa9\x0a\ \x2f\xf4\x7d\xdf\x23\xd0\x5e\xd8\xd5\xa3\xe0\xd5\x72\x5f\x70\x30\ \x9b\xcd\xbc\xe6\xaf\xe7\xe2\xef\x12\x8d\xbf\x95\xcc\xb9\xa0\x0a\ \x0d\xaf\x36\xac\xcf\x20\x64\x0b\x8a\x8a\x0d\x37\x02\x17\x37\xeb\ \x12\x15\xea\xd8\x73\x4b\xfb\x23\x43\x9d\x2e\x7e\xaa\x24\xe3\x58\ \x19\x20\x10\x81\x19\x68\x17\x47\x24\x4d\x09\x19\xcf\x73\x5a\xd1\ \xdf\x54\x0a\xa9\xf4\x38\xf6\x9a\xa4\x66\x73\xca\xcf\xb5\x9b\xd2\ \xe2\xcb\x68\x04\xdf\x15\x26\x06\xc1\x22\x26\x02\x8a\x16\x59\x43\ \x2e\x15\x60\x92\x96\x90\x72\x95\x0a\x04\x23\x61\x95\x2c\xe9\x5d\ \xe2\x0a\x84\x94\x4b\x10\x7c\x89\x2d\x52\x33\xda\x2a\xc6\x30\x1a\ \x75\x3b\x38\xd8\xae\x5e\x9e\xcd\xd9\x9d\xb8\x47\x47\x8c\x75\xdb\ \xdd\x56\xdc\x90\xd4\xf7\x1a\xd5\xcd\x3a\x49\xf1\x57\x75\xab\x91\ \xf5\xc1\x7b\x23\xb5\x87\xc5\x20\xdd\x34\x2f\x45\xaa\xd1\x89\x41\ \x4e\x5f\x47\x91\x9d\x6c\xdc\x64\xd1\xa5\xc7\xda\xc8\x35\xc8\x3c\ \xd7\x48\xa7\xee\x7f\xb5\x4d\x22\xd7\xa3\x46\x9e\x39\xab\x4b\x6e\ \xa8\x14\xef\xa5\xf8\x8b\xe8\x49\x82\x25\xf0\x4a\x3c\x55\xf3\x24\ \xe1\x34\xa4\x31\x9d\xf6\x72\x62\x6f\x57\x98\xd7\xf4\x52\x98\x7d\ \x6a\xb9\xa8\xfe\xe3\xd4\x9a\x4e\xad\x5e\x6f\x54\xab\x50\x88\xd5\ \xa7\xd6\xab\x61\x70\x9c\x62\x41\x30\x99\x04\xc1\x1b\x15\xdb\xa0\ \x10\xb2\xfe\xd4\x92\x39\x0a\xc7\x76\x99\xed\xb3\x37\x6a\xa6\xcb\ \x24\x93\xb5\xfd\xf4\xff\x14\x3b\x42\xb0\x3b\x91\xa4\xcb\xf6\x93\ \xa4\xbd\xb9\xd9\xb4\x6e\x78\x84\x22\xad\xea\xbb\x20\xfe\x0e\xc8\ \x73\x89\xfa\x4e\xf2\x03\x73\x5e\x21\x24\xe0\xd4\xd9\x3a\x88\x33\ \x86\x1d\x5f\x68\x4d\x65\xab\x25\x6b\xbc\x8c\xe4\x53\xe2\xec\x74\ \x2b\xef\x80\xbd\x20\x55\x5b\x93\xf5\x36\x67\x68\x71\xd1\x22\x9c\ \x92\xfd\xe1\x6c\x66\x99\x28\xb9\x6c\x6e\x01\x15\xf1\x6a\xe3\x15\ \xa6\x06\x1c\xa2\x03\x6c\x2f\x06\xd6\xf5\xbb\x8b\xc1\xb4\xdb\x21\ \xf6\x8a\x1d\xf0\x4e\xa4\x83\xd0\xc1\x45\xb4\x1f\x3c\x0c\xa3\x67\ \xe0\x46\x25\x95\x26\xbd\x56\x74\x23\xb0\x53\x41\x96\x7c\x46\xd7\ \x8c\x21\xa1\x0c\xda\x36\x88\xa9\xb3\xa0\xb9\x48\x5c\x95\x0a\x73\ \x22\xfa\x57\xb9\xfd\xd9\xd1\x30\x8a\x06\xa0\xd3\x44\xe0\x19\xf5\ \xc2\xd0\x1f\x13\x54\xa7\x5b\x7b\x00\x3d\xd1\xb7\xbe\xfc\xba\xe8\ \x07\xaa\x9e\x04\xd1\x30\x9c\xfa\x5d\xd5\x3b\x61\xae\x1a\xaa\xc4\ \x55\xd3\xb5\xc3\x7b\x52\xdb\x4b\xae\x33\xd1\xc3\x0d\x55\xfc\x03\ \xc9\x4b\x7f\x18\xf6\x4e\x66\x2f\xc7\x73\x4b\xf2\xfc\x43\x59\xf6\ \xcc\xef\x7d\x78\x86\x51\x34\x9c\x84\x07\x88\x4e\xa8\xb2\xc9\x47\ \xd2\xec\x3b\xd6\x31\x3c\x63\x7b\x69\x5f\x9c\xfc\x01\x4d\xb4\x75\ \x0c\ \x00\x00\x05\xf1\ \x00\ \x00\x27\x73\x78\x9c\xdd\x9a\x6d\x6f\x9b\x48\x10\x80\x3f\x5f\x7e\ \xc5\x94\xea\xa4\x5a\xb2\xcd\xf2\x66\x9b\xd6\x4e\xa5\x26\x51\x75\ \x52\xaf\x8d\x9a\xe4\x4e\x77\xdf\xd6\xb0\xd8\x28\x18\x2c\xc0\x71\ \xdc\x5f\x7f\xb3\xcb\xbb\x63\xc7\x90\x92\x5c\x5c\xa4\x64\x17\xbc\ \xcc\xee\x3c\xbb\x3b\x33\x0c\x8c\x3f\xde\x2f\x3c\xb8\x63\x61\xe4\ \x06\xfe\x44\x52\xfa\x44\x82\x28\xa6\xbe\x4d\xbd\xc0\x67\x13\xc9\ \x0f\xa4\x8f\xa7\x27\xe3\x37\xe7\xdf\xce\xae\xff\xb9\xbc\x80\xe8\ \x6e\x06\x97\x37\x9f\xbe\xfc\x71\x06\x52\x4f\x96\xff\xd6\xce\x64\ \xf9\xfc\xfa\x1c\xae\xfe\xfa\x0c\x78\xb3\x2c\x5f\x7c\x95\x40\x9a\ \xc7\xf1\xf2\xbd\x2c\xaf\xd7\xeb\xfe\x5a\xeb\x07\xe1\x4c\xbe\xfe\ \x2e\xab\x84\x28\xf2\xf7\x8b\xb3\x1e\xb6\xed\xf1\x13\x62\x12\x9d\ \xdf\x2c\xa3\x50\x85\xf4\xed\xd8\x96\xb0\x2b\xde\xc3\xda\xb5\xe3\ \xf9\x44\x52\x89\xb5\x90\x60\xce\xdc\xd9\x3c\xc6\xb1\x19\xfc\xec\ \xce\x65\xeb\x4f\xc1\xfd\x44\x22\x40\x60\x44\x08\x0c\x08\x91\x4e\ \x00\x0f\x54\xc4\x8f\x26\x3b\xfa\xc6\xbe\x08\xef\xa3\xd4\xec\xfd\ \xbd\xe7\xfa\xb7\xbb\x1a\x2b\xa6\x69\xca\xe2\x57\x39\x69\x3f\xa5\ \x11\xbb\x0c\x03\xc7\xf5\x10\x47\xec\xfa\x1b\xa9\x8c\x4b\xc5\x21\ \x03\x8c\x63\x37\xf6\xd8\xe9\xd5\x72\xce\x42\x16\x8d\xe5\xe4\x94\ \xff\x60\xb3\xc8\x3a\xbd\x62\x0b\xb7\x17\x87\xd4\x8f\x96\x34\x64\ \x7e\x0c\xd3\xd5\x74\xea\xb1\x08\x02\x1f\x28\x58\x81\x17\x84\xcc\ \xc6\x8e\xac\xdb\x59\x18\xac\x7c\xbb\x3f\x96\xc5\x7d\xa2\x7f\x14\ \xe1\x44\x49\x15\x4f\xde\xf4\x7a\x70\x16\x32\x1a\x33\x08\xa9\xed\ \x52\x0f\x66\xbc\x44\xa1\x11\x38\x41\x08\x8c\x5a\xf3\x54\x7c\x1f\ \x7a\xbd\xfc\xbe\xa4\xf1\xe7\xb4\x2d\xb8\xf6\x44\x9a\x7a\x2b\xf6\ \x49\xb4\x94\x72\x21\x37\xbe\x1b\x23\xc3\x55\xc4\xc2\xab\x25\xb5\ \xd8\x37\xff\x26\x62\x52\x2a\x64\xfb\xb0\xf8\x2c\x48\x60\x6d\x44\ \x11\x22\x0e\x9c\x0a\x70\xf0\x6a\xcf\xe0\x95\x4d\x52\x39\xcd\x6f\ \x1f\x47\x71\xb0\x84\xc0\x71\x22\x86\xf3\x49\x7e\xe7\x4b\x2d\x58\ \xf6\x04\x80\x89\xb4\x9e\xbb\x31\x4b\x2f\x05\xd8\xb9\x1b\xa3\x00\ \x45\x02\x79\x9f\x00\xd5\xd8\x92\xf0\xd6\xb2\x2d\xdb\x71\xb6\x65\ \xf4\x07\xc6\x23\x52\x70\xd0\x0f\xc5\x50\x6a\xd9\x0f\xc4\x0c\xcb\ \x62\xc6\x72\x15\xe9\x63\xa4\x71\x76\x7f\x31\xd0\x8e\xc3\x51\xff\ \x34\xe8\x29\x1e\xa6\xd9\x1e\xe8\x59\xc8\x98\xff\x8b\xa1\xe6\x2b\ \xba\x05\xd4\xa6\x49\xf1\x68\x0f\xf5\x86\x79\x5e\xb0\xfe\xc5\x58\ \x3b\x4e\x2b\xac\xf9\xb2\x6e\x93\x75\xe1\x19\xda\x22\xad\x67\xa4\ \xd5\x8c\xb4\xda\x80\xb4\xe0\xc4\x58\x43\xa3\x8a\x07\x87\x72\x98\ \x00\x3a\x5f\x46\xc3\x0a\x81\x68\x15\x3a\xa8\xe4\x13\xd5\xbf\x57\ \x70\x25\x89\xc5\xb5\x51\x78\x54\x81\x95\x7b\x35\x85\xb0\x51\x93\ \x2b\x8d\x74\xb7\xac\xe6\x0b\x62\x34\xaa\xe8\x5e\x55\xf2\xf4\xa4\ \x91\x83\xb7\xdc\xd0\xf2\x18\xc4\x01\x2c\xe8\x2d\x96\x73\xb6\x00\ \x2f\x08\x6e\xc1\x73\x6f\x59\x19\x42\x94\x44\x24\x75\x42\x81\x24\ \x78\x79\x55\x5b\x79\x2f\xe2\xe1\xf6\xce\xe5\x0a\x34\x9b\x12\x15\ \x0f\x5d\x7f\xba\x43\x3f\x6a\x5c\x38\xfe\x66\xb4\x74\x9d\xf3\xfa\ \x19\xaf\x7c\xd4\xbc\x84\x06\xcd\x88\x29\x8a\xa6\x29\xca\x4f\x39\ \xd7\xa3\x46\x96\xa8\xd0\x74\x95\xf1\x75\xf6\x44\x66\xd1\x9c\xda\ \xc1\x9a\x5f\x7a\x3e\x62\x0d\x80\x4d\x3d\x74\xda\x0f\xa2\x11\xfe\ \x78\xdd\x80\xc8\x4e\x21\xa4\x22\xe4\x21\xa2\xb2\x27\x39\x67\x0e\ \xfa\x19\x7c\xc8\x4c\xe8\x14\x1e\x24\x71\x0c\x15\xbf\x90\x3a\x95\ \x82\x25\xea\xec\x7a\x1e\xe2\x0b\xbd\x77\x6f\x0b\xbc\x1d\x69\x0f\ \xaa\x62\x4c\xb3\xc4\xab\x24\xc1\x61\x49\xdd\xb4\x8b\x44\x6c\xaa\ \xdc\x03\x59\xc6\x16\xa3\xca\x4d\x6f\xe9\xc0\x62\x9a\xb9\xe3\x36\ \x4d\xab\xde\xb6\xa4\xf1\xbc\xda\x13\x0e\xe9\x4f\xd0\x86\x5d\x83\ \xc0\x17\x30\x48\x57\x1b\x62\xa9\xa8\xdd\x9e\x82\xa5\xca\x4b\x5e\ \x51\x48\xb7\xa7\xea\x58\xc1\xff\x5d\x85\xec\x59\x2c\xd9\x81\xcd\ \x14\xa5\xab\xaa\xa2\xd2\x55\x54\xf8\x77\xe7\xe0\x0f\x01\x93\x67\ \xe9\xc3\xbe\x9c\x3d\xed\x8f\xb3\x2b\x21\xb3\xe2\xf2\x44\x14\xc1\ \x20\x4e\x44\x22\x36\x91\x9a\x26\x4d\x46\x5c\x72\x96\x33\x19\xe4\ \xdd\x88\x2e\x84\x5c\x10\x99\x08\x5c\x09\x8b\x89\x24\xaa\x1e\x06\ \x1b\xef\x30\x06\xea\x0e\x09\xe9\xa4\xd3\x35\xc6\x3d\x03\x22\x0d\ \xf2\x7e\x1e\x32\x87\xc7\x30\x69\xa8\x5f\x1e\x4a\x9e\x41\xe8\xe4\ \xca\x8c\xa9\xef\x2e\x50\xe0\x75\xd6\x09\xd0\x38\x0e\xdd\xe9\x2a\ \x66\x5f\xe9\x82\xa5\x5d\xf2\x1f\x24\x88\x37\x4b\x56\x1a\x83\x04\ \xd4\xb6\xdd\xd8\xbd\x63\x3c\xe0\x5b\x14\xfb\xf4\x8e\x62\x47\xb8\ \x8f\x49\x97\x7c\x00\x9c\x1e\xa1\xe2\x94\xcd\x5c\x9e\x82\x89\x70\ \x62\x57\x82\x68\x94\x0d\xce\x41\x73\xfd\x03\xc5\x85\x6c\x89\x81\ \xd4\x19\xb2\x42\x14\xae\x6f\xf3\xcd\x50\x98\xb1\x14\xfa\x3e\x20\ \x9a\x62\x54\x80\x54\x9a\x45\x16\xf5\xd8\x3b\xd2\x37\xba\xf8\xd7\ \xc9\x97\x78\x2d\x6a\x79\x36\xa0\x04\x2d\x9f\xff\x17\xa6\xa7\x65\ \xf4\x86\xed\xc2\x1b\x91\xc3\xec\x06\x1c\xde\xa0\x29\xbd\xd2\x23\ \xfe\x2b\xe0\x67\x64\xfc\xcc\x76\xf9\xa9\x46\x8d\xc5\xa7\x21\x3f\ \xad\x21\xbe\xf2\x63\xfb\x2b\xe0\xa7\x66\xfc\x06\xed\xf2\x33\x06\ \x35\xf8\xe9\xc8\x4f\x6f\xc8\x6f\xa7\xc9\xfb\xbf\xe8\xe9\x19\xbd\ \x51\xbb\xf4\x86\x75\x4c\xdf\x80\xef\xde\x23\x36\x7d\xb9\xe3\xd0\ \xdb\x85\x37\xd0\xeb\x6c\xdd\x21\x37\x7e\xf8\xff\xa8\xad\x1f\xc9\ \x7d\xaf\xd2\xf2\xf6\xad\x63\xfe\x4c\x24\x68\x1e\xb7\xf9\x2b\xdc\ \x6f\xdf\x78\x0a\xc1\xc7\xc2\x97\x41\x0d\x17\xfc\x94\xf0\xe5\x55\ \x59\x40\xed\x99\xfc\x87\x5a\xc7\x02\xea\x1c\x9f\x7e\xcc\xe1\x9f\ \xd1\x37\x9e\x29\x00\xd4\xd5\x1a\xcb\x4f\x18\xc1\x23\xb7\x81\xca\ \x33\x45\x80\xa3\xe7\xf2\xc1\xaf\xcc\x04\xe6\x11\xa0\xd9\xba\x09\ \x54\x55\xa3\x2b\x5c\x2c\xec\x67\xa8\xf4\x49\x62\x03\x21\x87\x28\ \x12\x07\x22\x57\xc0\x3f\x31\xf8\x02\x9a\x91\x94\x3a\x96\xba\xc8\ \x1d\xf0\x77\x09\xa2\xfa\xa3\x9a\x4b\x2a\xa7\x4b\x92\x17\x16\x1d\ \x9e\xbc\x09\x83\x5b\xf1\x25\x85\xcf\xb6\x71\x17\xd4\x1f\x79\x2a\ \x27\x7b\x14\xa8\xb6\xd2\x4d\xd2\x81\x44\x27\x15\x75\x42\xbd\x3a\ \x10\x06\xb1\xd8\x8b\x15\xf5\x4a\xf9\x84\x3c\x99\xc2\x73\x5c\x03\ \x53\x24\x12\x44\x99\xa6\x12\x14\x6d\x54\xfa\xfc\x42\xab\xbc\xc0\ \x68\x9e\xca\x79\x52\x22\xe7\x45\xd2\x38\x8f\x26\x71\x9a\x6c\x88\ \x74\x47\x24\xdc\xb7\xb7\x43\xb1\x0d\x3e\x00\x7a\x67\xe9\xe4\xb7\ \x7c\x00\x0f\xe2\xa9\xa6\xb9\x8c\x9a\x4b\xe9\x40\xc0\x99\xa5\xfd\ \xf6\x3c\x92\x76\x0d\x23\x5b\x62\xc5\xb6\xd9\x33\xbd\x79\xa8\x90\ \x24\xb1\x0f\xe5\x0c\x0f\x8e\x9e\x67\x63\x74\x9d\x94\x46\x5f\x27\ \xa0\x69\x5d\xc9\x9d\x6a\xe6\x6f\x83\x6a\x64\x46\x8b\x44\xdf\x01\ \x85\x47\xb8\xa5\x2b\xb3\x55\x2f\x87\xf2\x32\x1a\x97\xde\xe8\xb4\ \xa9\x33\xcf\x7a\x18\xea\x41\xa5\xb7\xf2\x1e\x2f\xa3\x72\xf9\x95\ \x4c\x73\x9d\x45\x31\xe6\x1f\xa1\x9d\x9e\xfc\x07\x24\xe4\x53\x30\ \ " qt_resource_name = b"\ \x00\x05\ \x00\x6d\x02\xc3\ \x00\x66\ \x00\x69\x00\x6c\x00\x65\x00\x73\ \x00\x09\ \x08\xf6\x8f\xa7\ \x00\x63\ \x00\x75\x00\x62\x00\x69\x00\x63\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x0b\ \x08\x32\x87\x47\ \x00\x73\ \x00\x70\x00\x68\x00\x65\x00\x72\x00\x65\x00\x73\x00\x2e\x00\x73\x00\x76\x00\x67\ \x00\x0b\ \x02\x19\x2b\xe7\ \x00\x62\ \x00\x75\x00\x62\x00\x62\x00\x6c\x00\x65\x00\x73\x00\x2e\x00\x73\x00\x76\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x44\x00\x01\x00\x00\x00\x01\x00\x00\x06\x32\ \x00\x00\x00\x28\x00\x01\x00\x00\x00\x01\x00\x00\x03\x5c\ \x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/painting/transformations.py0000755000076500000240000002063112536324427023213 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui NoTransformation, Translate, Rotate, Scale = range(4) class RenderArea(QtGui.QWidget): def __init__(self, parent=None): super(RenderArea, self).__init__(parent) newFont = self.font() newFont.setPixelSize(12) self.setFont(newFont) fontMetrics = QtGui.QFontMetrics(newFont) self.xBoundingRect = fontMetrics.boundingRect("x") self.yBoundingRect = fontMetrics.boundingRect("y") self.shape = QtGui.QPainterPath() self.operations = [] def setOperations(self, operations): self.operations = operations self.update() def setShape(self, shape): self.shape = shape self.update() def minimumSizeHint(self): return QtCore.QSize(182, 182) def sizeHint(self): return QtCore.QSize(232, 232) def paintEvent(self, event): painter = QtGui.QPainter(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.fillRect(event.rect(), QtGui.QBrush(QtCore.Qt.white)) painter.translate(66, 66) painter.save() self.transformPainter(painter) self.drawShape(painter) painter.restore() self.drawOutline(painter) self.transformPainter(painter) self.drawCoordinates(painter) def drawCoordinates(self, painter): painter.setPen(QtCore.Qt.red) painter.drawLine(0, 0, 50, 0) painter.drawLine(48, -2, 50, 0) painter.drawLine(48, 2, 50, 0) painter.drawText(60 - self.xBoundingRect.width() / 2, 0 + self.xBoundingRect.height() / 2, "x") painter.drawLine(0, 0, 0, 50) painter.drawLine(-2, 48, 0, 50) painter.drawLine(2, 48, 0, 50) painter.drawText(0 - self.yBoundingRect.width() / 2, 60 + self.yBoundingRect.height() / 2, "y") def drawOutline(self, painter): painter.setPen(QtCore.Qt.darkGreen) painter.setPen(QtCore.Qt.DashLine) painter.setBrush(QtCore.Qt.NoBrush) painter.drawRect(0, 0, 100, 100) def drawShape(self, painter): painter.fillPath(self.shape, QtCore.Qt.blue) def transformPainter(self, painter): for operation in self.operations: if operation == Translate: painter.translate(50, 50) elif operation == Scale: painter.scale(0.75, 0.75) elif operation == Rotate: painter.rotate(60) class Window(QtGui.QWidget): operationTable = (NoTransformation, Rotate, Scale, Translate) NumTransformedAreas = 3 def __init__(self): super(Window, self).__init__() self.originalRenderArea = RenderArea() self.shapeComboBox = QtGui.QComboBox() self.shapeComboBox.addItem("Clock") self.shapeComboBox.addItem("House") self.shapeComboBox.addItem("Text") self.shapeComboBox.addItem("Truck") layout = QtGui.QGridLayout() layout.addWidget(self.originalRenderArea, 0, 0) layout.addWidget(self.shapeComboBox, 1, 0) self.transformedRenderAreas = list(range(Window.NumTransformedAreas)) self.operationComboBoxes = list(range(Window.NumTransformedAreas)) for i in range(Window.NumTransformedAreas): self.transformedRenderAreas[i] = RenderArea() self.operationComboBoxes[i] = QtGui.QComboBox() self.operationComboBoxes[i].addItem("No transformation") self.operationComboBoxes[i].addItem("Rotate by 60\xB0") self.operationComboBoxes[i].addItem("Scale to 75%") self.operationComboBoxes[i].addItem("Translate by (50, 50)") self.operationComboBoxes[i].activated.connect(self.operationChanged) layout.addWidget(self.transformedRenderAreas[i], 0, i + 1) layout.addWidget(self.operationComboBoxes[i], 1, i + 1) self.setLayout(layout) self.setupShapes() self.shapeSelected(0) self.setWindowTitle("Transformations") def setupShapes(self): truck = QtGui.QPainterPath() truck.setFillRule(QtCore.Qt.WindingFill) truck.moveTo(0.0, 87.0) truck.lineTo(0.0, 60.0) truck.lineTo(10.0, 60.0) truck.lineTo(35.0, 35.0) truck.lineTo(100.0, 35.0) truck.lineTo(100.0, 87.0) truck.lineTo(0.0, 87.0) truck.moveTo(17.0, 60.0) truck.lineTo(55.0, 60.0) truck.lineTo(55.0, 40.0) truck.lineTo(37.0, 40.0) truck.lineTo(17.0, 60.0) truck.addEllipse(17.0, 75.0, 25.0, 25.0) truck.addEllipse(63.0, 75.0, 25.0, 25.0) clock = QtGui.QPainterPath() clock.addEllipse(-50.0, -50.0, 100.0, 100.0) clock.addEllipse(-48.0, -48.0, 96.0, 96.0) clock.moveTo(0.0, 0.0) clock.lineTo(-2.0, -2.0) clock.lineTo(0.0, -42.0) clock.lineTo(2.0, -2.0) clock.lineTo(0.0, 0.0) clock.moveTo(0.0, 0.0) clock.lineTo(2.732, -0.732) clock.lineTo(24.495, 14.142) clock.lineTo(0.732, 2.732) clock.lineTo(0.0, 0.0) house = QtGui.QPainterPath() house.moveTo(-45.0, -20.0) house.lineTo(0.0, -45.0) house.lineTo(45.0, -20.0) house.lineTo(45.0, 45.0) house.lineTo(-45.0, 45.0) house.lineTo(-45.0, -20.0) house.addRect(15.0, 5.0, 20.0, 35.0) house.addRect(-35.0, -15.0, 25.0, 25.0) text = QtGui.QPainterPath() font = QtGui.QFont() font.setPixelSize(50) fontBoundingRect = QtGui.QFontMetrics(font).boundingRect("Qt") text.addText(-QtCore.QPointF(fontBoundingRect.center()), font, "Qt") self.shapes = (clock, house, text, truck) self.shapeComboBox.activated.connect(self.shapeSelected) def operationChanged(self): operations = [] for i in range(Window.NumTransformedAreas): index = self.operationComboBoxes[i].currentIndex() operations.append(Window.operationTable[index]) self.transformedRenderAreas[i].setOperations(operations[:]) def shapeSelected(self, index): shape = self.shapes[index] self.originalRenderArea.setShape(shape) for i in range(Window.NumTransformedAreas): self.transformedRenderAreas[i].setShape(shape) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/phonon/0000755000076500000240000000000012536324427017073 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/phonon/capabilities.py0000755000076500000240000001423612536324427022107 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) import sys from PyQt4 import QtCore, QtGui try: from PyQt4.phonon import Phonon except ImportError: app = QtGui.QApplication(sys.argv) QtGui.QMessageBox.critical(None, "Phonon Capabilities", "Your Qt installation does not have Phonon support.", QtGui.QMessageBox.Ok | QtGui.QMessageBox.Default, QtGui.QMessageBox.NoButton) sys.exit(1) class Window(QtGui.QWidget): def __init__(self): super(QtGui.QWidget, self).__init__() self.setupUi() self.updateWidgets() notifier = Phonon.BackendCapabilities.notifier() notifier.capabilitiesChanged.connect(self.updateWidgets) notifier.availableAudioOutputDevicesChanged.connect(self.updateWidgets) def updateWidgets(self): # Output devices. devices = Phonon.BackendCapabilities.availableAudioOutputDevices() model = Phonon.AudioOutputDeviceModel(devices) self.devicesListView.setModel(model) # MIME types. self.mimeListWidget.clear() for mimeType in Phonon.BackendCapabilities.availableMimeTypes(): item = QtGui.QListWidgetItem(self.mimeListWidget) item.setText(mimeType) # Effects. self.effectsTreeWidget.clear() for effect in Phonon.BackendCapabilities.availableAudioEffects(): item = QtGui.QTreeWidgetItem(self.effectsTreeWidget) item.setText(0, "Effect") item.setText(1, effect.name()) item.setText(2, effect.description()) # Effects parameters. for parameter in Phonon.Effect(effect, self).parameters(): defaultValue = parameter.defaultValue() minimumValue = parameter.minimumValue() maximumValue = parameter.maximumValue() valueString = "%s / %s / %s" % (defaultValue, minimumValue, maximumValue) parameterItem = QtGui.QTreeWidgetItem(item) parameterItem.setText(0, "Parameter") parameterItem.setText(1, parameter.name()) parameterItem.setText(2, parameter.description()) parameterItem.setText(3, QtCore.QVariant.typeToName(parameter.type())) parameterItem.setText(4, valueString) for i in range(self.effectsTreeWidget.columnCount()): if i == 0: self.effectsTreeWidget.setColumnWidth(0, 150) elif i == 2: self.effectsTreeWidget.setColumnWidth(2, 350) else: self.effectsTreeWidget.resizeColumnToContents(i) def setupUi(self): self.setupBackendBox() layout = QtGui.QVBoxLayout() layout.addWidget(self.backendBox) self.setLayout(layout) self.setWindowTitle("Backend Capabilities Example") def setupBackendBox(self): self.devicesLabel = QtGui.QLabel("Available Audio Devices:") self.devicesListView = QtGui.QListView() self.mimeTypesLabel = QtGui.QLabel("Supported MIME Types:") self.mimeListWidget = QtGui.QListWidget() self.effectsLabel = QtGui.QLabel("Available Audio Effects:") headerLabels = ("Type", "Name", "Description", "Value Type", "Default/Min/Max Values") self.effectsTreeWidget = QtGui.QTreeWidget() self.effectsTreeWidget.setHeaderLabels(headerLabels) self.effectsTreeWidget.setColumnCount(5) layout = QtGui.QGridLayout() layout.addWidget(self.devicesLabel, 0, 0) layout.addWidget(self.devicesListView, 1, 0) layout.addWidget(self.mimeTypesLabel, 0, 1) layout.addWidget(self.mimeListWidget, 1, 1) layout.addWidget(self.effectsLabel, 2, 0) layout.addWidget(self.effectsTreeWidget, 3, 0, 2, 2) layout.setRowStretch(3, 100) self.backendBox = QtGui.QGroupBox("Backend Capabilities") self.backendBox.setLayout(layout) if __name__ == '__main__': app = QtGui.QApplication(sys.argv) app.setApplicationName("Phonon Capabilities Example") window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/phonon/musicplayer.py0000755000076500000240000003017312536324427022011 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) import sys from PyQt4 import QtCore, QtGui try: from PyQt4.phonon import Phonon except ImportError: app = QtGui.QApplication(sys.argv) QtGui.QMessageBox.critical(None, "Music Player", "Your Qt installation does not have Phonon support.", QtGui.QMessageBox.Ok | QtGui.QMessageBox.Default, QtGui.QMessageBox.NoButton) sys.exit(1) class MainWindow(QtGui.QMainWindow): def __init__(self): super(QtGui.QMainWindow, self).__init__() self.audioOutput = Phonon.AudioOutput(Phonon.MusicCategory, self) self.mediaObject = Phonon.MediaObject(self) self.metaInformationResolver = Phonon.MediaObject(self) self.mediaObject.setTickInterval(1000) self.mediaObject.tick.connect(self.tick) self.mediaObject.stateChanged.connect(self.stateChanged) self.metaInformationResolver.stateChanged.connect(self.metaStateChanged) self.mediaObject.currentSourceChanged.connect(self.sourceChanged) self.mediaObject.aboutToFinish.connect(self.aboutToFinish) Phonon.createPath(self.mediaObject, self.audioOutput) self.setupActions() self.setupMenus() self.setupUi() self.timeLcd.display("00:00") self.sources = [] def sizeHint(self): return QtCore.QSize(500, 300) def addFiles(self): files = QtGui.QFileDialog.getOpenFileNames(self, "Select Music Files", QtGui.QDesktopServices.storageLocation(QtGui.QDesktopServices.MusicLocation)) if not files: return index = len(self.sources) for string in files: self.sources.append(Phonon.MediaSource(string)) if self.sources: self.metaInformationResolver.setCurrentSource(self.sources[index]) def about(self): QtGui.QMessageBox.information(self, "About Music Player", "The Music Player example shows how to use Phonon - the " "multimedia framework that comes with Qt - to create a " "simple music player.") def stateChanged(self, newState, oldState): if newState == Phonon.ErrorState: if self.mediaObject.errorType() == Phonon.FatalError: QtGui.QMessageBox.warning(self, "Fatal Error", self.mediaObject.errorString()) else: QtGui.QMessageBox.warning(self, "Error", self.mediaObject.errorString()) elif newState == Phonon.PlayingState: self.playAction.setEnabled(False) self.pauseAction.setEnabled(True) self.stopAction.setEnabled(True) elif newState == Phonon.StoppedState: self.stopAction.setEnabled(False) self.playAction.setEnabled(True) self.pauseAction.setEnabled(False) self.timeLcd.display("00:00") elif newState == Phonon.PausedState: self.pauseAction.setEnabled(False) self.stopAction.setEnabled(True) self.playAction.setEnabled(True) def tick(self, time): displayTime = QtCore.QTime(0, (time / 60000) % 60, (time / 1000) % 60) self.timeLcd.display(displayTime.toString('mm:ss')) def tableClicked(self, row, column): wasPlaying = (self.mediaObject.state() == Phonon.PlayingState) self.mediaObject.stop() self.mediaObject.clearQueue() self.mediaObject.setCurrentSource(self.sources[row]) if wasPlaying: self.mediaObject.play() else: self.mediaObject.stop() def sourceChanged(self, source): self.musicTable.selectRow(self.sources.index(source)) self.timeLcd.display('00:00') def metaStateChanged(self, newState, oldState): if newState == Phonon.ErrorState: QtGui.QMessageBox.warning(self, "Error opening files", self.metaInformationResolver.errorString()) while self.sources and self.sources.pop() != self.metaInformationResolver.currentSource(): pass return if newState != Phonon.StoppedState and newState != Phonon.PausedState: return if self.metaInformationResolver.currentSource().type() == Phonon.MediaSource.Invalid: return metaData = self.metaInformationResolver.metaData() title = metaData.get('TITLE', [''])[0] if not title: title = self.metaInformationResolver.currentSource().fileName() titleItem = QtGui.QTableWidgetItem(title) titleItem.setFlags(titleItem.flags() ^ QtCore.Qt.ItemIsEditable) artist = metaData.get('ARTIST', [''])[0] artistItem = QtGui.QTableWidgetItem(artist) artistItem.setFlags(artistItem.flags() ^ QtCore.Qt.ItemIsEditable) album = metaData.get('ALBUM', [''])[0] albumItem = QtGui.QTableWidgetItem(album) albumItem.setFlags(albumItem.flags() ^ QtCore.Qt.ItemIsEditable) year = metaData.get('DATE', [''])[0] yearItem = QtGui.QTableWidgetItem(year) yearItem.setFlags(yearItem.flags() ^ QtCore.Qt.ItemIsEditable) currentRow = self.musicTable.rowCount() self.musicTable.insertRow(currentRow) self.musicTable.setItem(currentRow, 0, titleItem) self.musicTable.setItem(currentRow, 1, artistItem) self.musicTable.setItem(currentRow, 2, albumItem) self.musicTable.setItem(currentRow, 3, yearItem) if not self.musicTable.selectedItems(): self.musicTable.selectRow(0) self.mediaObject.setCurrentSource(self.metaInformationResolver.currentSource()) index = self.sources.index(self.metaInformationResolver.currentSource()) + 1 if len(self.sources) > index: self.metaInformationResolver.setCurrentSource(self.sources[index]) else: self.musicTable.resizeColumnsToContents() if self.musicTable.columnWidth(0) > 300: self.musicTable.setColumnWidth(0, 300) def aboutToFinish(self): index = self.sources.index(self.mediaObject.currentSource()) + 1 if len(self.sources) > index: self.mediaObject.enqueue(self.sources[index]) def setupActions(self): self.playAction = QtGui.QAction( self.style().standardIcon(QtGui.QStyle.SP_MediaPlay), "Play", self, shortcut="Ctrl+P", enabled=False, triggered=self.mediaObject.play) self.pauseAction = QtGui.QAction( self.style().standardIcon(QtGui.QStyle.SP_MediaPause), "Pause", self, shortcut="Ctrl+A", enabled=False, triggered=self.mediaObject.pause) self.stopAction = QtGui.QAction( self.style().standardIcon(QtGui.QStyle.SP_MediaStop), "Stop", self, shortcut="Ctrl+S", enabled=False, triggered=self.mediaObject.stop) self.nextAction = QtGui.QAction( self.style().standardIcon(QtGui.QStyle.SP_MediaSkipForward), "Next", self, shortcut="Ctrl+N") self.previousAction = QtGui.QAction( self.style().standardIcon(QtGui.QStyle.SP_MediaSkipBackward), "Previous", self, shortcut="Ctrl+R") self.addFilesAction = QtGui.QAction("Add &Files", self, shortcut="Ctrl+F", triggered=self.addFiles) self.exitAction = QtGui.QAction("E&xit", self, shortcut="Ctrl+X", triggered=self.close) self.aboutAction = QtGui.QAction("A&bout", self, shortcut="Ctrl+B", triggered=self.about) self.aboutQtAction = QtGui.QAction("About &Qt", self, shortcut="Ctrl+Q", triggered=QtGui.qApp.aboutQt) def setupMenus(self): fileMenu = self.menuBar().addMenu("&File") fileMenu.addAction(self.addFilesAction) fileMenu.addSeparator() fileMenu.addAction(self.exitAction) aboutMenu = self.menuBar().addMenu("&Help") aboutMenu.addAction(self.aboutAction) aboutMenu.addAction(self.aboutQtAction) def setupUi(self): bar = QtGui.QToolBar() bar.addAction(self.playAction) bar.addAction(self.pauseAction) bar.addAction(self.stopAction) self.seekSlider = Phonon.SeekSlider(self) self.seekSlider.setMediaObject(self.mediaObject) self.volumeSlider = Phonon.VolumeSlider(self) self.volumeSlider.setAudioOutput(self.audioOutput) self.volumeSlider.setSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Maximum) volumeLabel = QtGui.QLabel() volumeLabel.setPixmap(QtGui.QPixmap('images/volume.png')) palette = QtGui.QPalette() palette.setBrush(QtGui.QPalette.Light, QtCore.Qt.darkGray) self.timeLcd = QtGui.QLCDNumber() self.timeLcd.setPalette(palette) headers = ("Title", "Artist", "Album", "Year") self.musicTable = QtGui.QTableWidget(0, 4) self.musicTable.setHorizontalHeaderLabels(headers) self.musicTable.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) self.musicTable.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.musicTable.cellPressed.connect(self.tableClicked) seekerLayout = QtGui.QHBoxLayout() seekerLayout.addWidget(self.seekSlider) seekerLayout.addWidget(self.timeLcd) playbackLayout = QtGui.QHBoxLayout() playbackLayout.addWidget(bar) playbackLayout.addStretch() playbackLayout.addWidget(volumeLabel) playbackLayout.addWidget(self.volumeSlider) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.musicTable) mainLayout.addLayout(seekerLayout) mainLayout.addLayout(playbackLayout) widget = QtGui.QWidget() widget.setLayout(mainLayout) self.setCentralWidget(widget) self.setWindowTitle("Phonon Music Player") if __name__ == '__main__': app = QtGui.QApplication(sys.argv) app.setApplicationName("Music Player") app.setQuitOnLastWindowClosed(True) window = MainWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/phonon/README0000644000076500000240000000150112536324427017750 0ustar philstaff00000000000000PyQt uses the Phonon cross-platform multimedia framework to play common multimedia formats. Applications can be written to take advantage of the native multimedia technologies on each platform via a consistent cross-platform PyQt API. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/pyuic/0000755000076500000240000000000012536324427016723 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/pyuic/compile-on-the-fly.py0000755000076500000240000000455212536324427022716 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Riverbank Computing Limited nor the names of ## its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import sys from PyQt4 import QtCore, QtGui, uic app = QtGui.QApplication(sys.argv) form_class, base_class = uic.loadUiType('demo.ui') class DemoImpl(QtGui.QDialog, form_class): def __init__(self, *args): super(DemoImpl, self).__init__(*args) self.setupUi(self) @QtCore.pyqtSlot() def on_button1_clicked(self): for s in "This is a demo".split(" "): self.list.addItem(s) form = DemoImpl() form.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/pyuic/demo.ui0000644000076500000240000000631112536324427020207 0ustar philstaff00000000000000 DemoDialog 0 0 400 300 PyUIC4 Demo Dialog 9 6 Qt::Vertical 20 40 Qt::Vertical 20 40 0 6 Add items Clear list 0 6 Qt::Horizontal 131 31 OK okButton clicked() DemoDialog accept() 369 256 96 254 button2 clicked() list clear() 92 112 279 123 PyQt-x11-gpl-4.11.4/examples/pyuic/load_ui1.py0000755000076500000240000000403112536324427020773 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Riverbank Computing Limited nor the names of ## its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import sys from PyQt4 import QtGui, uic app = QtGui.QApplication(sys.argv) widget = uic.loadUi('demo.ui') widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/pyuic/load_ui2.py0000755000076500000240000000446212536324427021004 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Riverbank Computing Limited nor the names of ## its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import sys from PyQt4 import QtCore, QtGui, uic class DemoImpl(QtGui.QDialog): def __init__(self, *args): super(DemoImpl, self).__init__(*args) uic.loadUi('demo.ui', self) @QtCore.pyqtSlot() def on_button1_clicked(self): for s in "This is a demo".split(" "): self.list.addItem(s) app = QtGui.QApplication(sys.argv) widget = DemoImpl() widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/README0000644000076500000240000000170612536324426016455 0ustar philstaff00000000000000PyQt is supplied with a number of example applications and demonstrations that have been written to provide developers with examples of the Qt API in use, highlight good programming practise, and showcase features found in each of Qt's core technologies. The example and demo launcher can be used to explore the different categories available. It provides an overview of each example, lets you view the documentation in Qt Assistant, and is able to launch examples and demos. Documentation for these examples can be found in the Tutorial and Examples section of the Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/richtext/0000755000076500000240000000000012536324427017424 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/richtext/calendar.py0000755000076500000240000001572312536324427021562 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.selectedDate = QtCore.QDate.currentDate() self.fontSize = 10 centralWidget = QtGui.QWidget() dateLabel = QtGui.QLabel("Date:") monthCombo = QtGui.QComboBox() for month in range(1, 13): monthCombo.addItem(QtCore.QDate.longMonthName(month)) yearEdit = QtGui.QDateTimeEdit() yearEdit.setDisplayFormat('yyyy') yearEdit.setDateRange(QtCore.QDate(1753, 1, 1), QtCore.QDate(8000, 1, 1)) monthCombo.setCurrentIndex(self.selectedDate.month() - 1) yearEdit.setDate(self.selectedDate) self.fontSizeLabel = QtGui.QLabel("Font size:") self.fontSizeSpinBox = QtGui.QSpinBox() self.fontSizeSpinBox.setRange(1, 64) self.fontSizeSpinBox.setValue(10) self.editor = QtGui.QTextBrowser() self.insertCalendar() monthCombo.activated.connect(self.setMonth) yearEdit.dateChanged.connect(self.setYear) self.fontSizeSpinBox.valueChanged.connect(self.setfontSize) controlsLayout = QtGui.QHBoxLayout() controlsLayout.addWidget(dateLabel) controlsLayout.addWidget(monthCombo) controlsLayout.addWidget(yearEdit) controlsLayout.addSpacing(24) controlsLayout.addWidget(self.fontSizeLabel) controlsLayout.addWidget(self.fontSizeSpinBox) controlsLayout.addStretch(1) centralLayout = QtGui.QVBoxLayout() centralLayout.addLayout(controlsLayout) centralLayout.addWidget(self.editor, 1) centralWidget.setLayout(centralLayout) self.setCentralWidget(centralWidget) def insertCalendar(self): self.editor.clear() cursor = self.editor.textCursor() cursor.beginEditBlock() date = QtCore.QDate(self.selectedDate.year(), self.selectedDate.month(), 1) tableFormat = QtGui.QTextTableFormat() tableFormat.setAlignment(QtCore.Qt.AlignHCenter) tableFormat.setBackground(QtGui.QColor('#e0e0e0')) tableFormat.setCellPadding(2) tableFormat.setCellSpacing(4) constraints = [QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 14), QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 14), QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 14), QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 14), QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 14), QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 14), QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 14)] tableFormat.setColumnWidthConstraints(constraints) table = cursor.insertTable(1, 7, tableFormat) frame = cursor.currentFrame() frameFormat = frame.frameFormat() frameFormat.setBorder(1) frame.setFrameFormat(frameFormat) format = cursor.charFormat() format.setFontPointSize(self.fontSize) boldFormat = QtGui.QTextCharFormat(format) boldFormat.setFontWeight(QtGui.QFont.Bold) highlightedFormat = QtGui.QTextCharFormat(boldFormat) highlightedFormat.setBackground(QtCore.Qt.yellow) for weekDay in range(1, 8): cell = table.cellAt(0, weekDay-1) cellCursor = cell.firstCursorPosition() cellCursor.insertText(QtCore.QDate.longDayName(weekDay), boldFormat) table.insertRows(table.rows(), 1) while date.month() == self.selectedDate.month(): weekDay = date.dayOfWeek() cell = table.cellAt(table.rows()-1, weekDay-1) cellCursor = cell.firstCursorPosition() if date == QtCore.QDate.currentDate(): cellCursor.insertText(str(date.day()), highlightedFormat) else: cellCursor.insertText(str(date.day()), format) date = date.addDays(1) if weekDay == 7 and date.month() == self.selectedDate.month(): table.insertRows(table.rows(), 1) cursor.endEditBlock() self.setWindowTitle("Calendar for %s %d" % (QtCore.QDate.longMonthName(self.selectedDate.month()), self.selectedDate.year())) def setfontSize(self, size): self.fontSize = size self.insertCalendar() def setMonth(self, month): self.selectedDate = QtCore.QDate(self.selectedDate.year(), month + 1, self.selectedDate.day()) self.insertCalendar() def setYear(self, date): self.selectedDate = QtCore.QDate(date.year(), self.selectedDate.month(), self.selectedDate.day()) self.insertCalendar() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.resize(640, 256) window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/richtext/orderform.py0000755000076500000240000002543212536324427022006 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() fileMenu = QtGui.QMenu("&File", self) newAction = fileMenu.addAction("&New...") newAction.setShortcut("Ctrl+N") self.printAction = fileMenu.addAction("&Print...", self.printFile) self.printAction.setShortcut("Ctrl+P") self.printAction.setEnabled(False) quitAction = fileMenu.addAction("E&xit") quitAction.setShortcut("Ctrl+Q") self.menuBar().addMenu(fileMenu) self.letters = QtGui.QTabWidget() newAction.triggered.connect(self.openDialog) quitAction.triggered.connect(self.close) self.setCentralWidget(self.letters) self.setWindowTitle("Order Form") def createLetter(self, name, address, orderItems, sendOffers): editor = QtGui.QTextEdit() tabIndex = self.letters.addTab(editor, name) self.letters.setCurrentIndex(tabIndex) cursor = editor.textCursor() cursor.movePosition(QtGui.QTextCursor.Start) topFrame = cursor.currentFrame() topFrameFormat = topFrame.frameFormat() topFrameFormat.setPadding(16) topFrame.setFrameFormat(topFrameFormat) textFormat = QtGui.QTextCharFormat() boldFormat = QtGui.QTextCharFormat() boldFormat.setFontWeight(QtGui.QFont.Bold) referenceFrameFormat = QtGui.QTextFrameFormat() referenceFrameFormat.setBorder(1) referenceFrameFormat.setPadding(8) referenceFrameFormat.setPosition(QtGui.QTextFrameFormat.FloatRight) referenceFrameFormat.setWidth(QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 40)) cursor.insertFrame(referenceFrameFormat) cursor.insertText("A company", boldFormat) cursor.insertBlock() cursor.insertText("321 City Street") cursor.insertBlock() cursor.insertText("Industry Park") cursor.insertBlock() cursor.insertText("Another country") cursor.setPosition(topFrame.lastPosition()) cursor.insertText(name, textFormat) for line in address.split("\n"): cursor.insertBlock() cursor.insertText(line) cursor.insertBlock() cursor.insertBlock() date = QtCore.QDate.currentDate() cursor.insertText("Date: %s" % date.toString('d MMMM yyyy'), textFormat) cursor.insertBlock() bodyFrameFormat = QtGui.QTextFrameFormat() bodyFrameFormat.setWidth(QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 100)) cursor.insertFrame(bodyFrameFormat) cursor.insertText("I would like to place an order for the following " "items:", textFormat) cursor.insertBlock() cursor.insertBlock() orderTableFormat = QtGui.QTextTableFormat() orderTableFormat.setAlignment(QtCore.Qt.AlignHCenter) orderTable = cursor.insertTable(1, 2, orderTableFormat) orderFrameFormat = cursor.currentFrame().frameFormat() orderFrameFormat.setBorder(1) cursor.currentFrame().setFrameFormat(orderFrameFormat) cursor = orderTable.cellAt(0, 0).firstCursorPosition() cursor.insertText("Product", boldFormat) cursor = orderTable.cellAt(0, 1).firstCursorPosition() cursor.insertText("Quantity", boldFormat) for text, quantity in orderItems: row = orderTable.rows() orderTable.insertRows(row, 1) cursor = orderTable.cellAt(row, 0).firstCursorPosition() cursor.insertText(text, textFormat) cursor = orderTable.cellAt(row, 1).firstCursorPosition() cursor.insertText(str(quantity), textFormat) cursor.setPosition(topFrame.lastPosition()) cursor.insertBlock() cursor.insertText("Please update my records to take account of the " "following privacy information:") cursor.insertBlock() offersTable = cursor.insertTable(2, 2) cursor = offersTable.cellAt(0, 1).firstCursorPosition() cursor.insertText("I want to receive more information about your " "company's products and special offers.", textFormat) cursor = offersTable.cellAt(1, 1).firstCursorPosition() cursor.insertText("I do not want to receive any promotional " "information from your company.", textFormat) if sendOffers: cursor = offersTable.cellAt(0, 0).firstCursorPosition() else: cursor = offersTable.cellAt(1, 0).firstCursorPosition() cursor.insertText('X', boldFormat) cursor.setPosition(topFrame.lastPosition()) cursor.insertBlock() cursor.insertText("Sincerely,", textFormat) cursor.insertBlock() cursor.insertBlock() cursor.insertBlock() cursor.insertText(name) self.printAction.setEnabled(True) def createSample(self): dialog = DetailsDialog('Dialog with default values', self) self.createLetter('Mr Smith', '12 High Street\nSmall Town\nThis country', dialog.orderItems(), True) def openDialog(self): dialog = DetailsDialog("Enter Customer Details", self) if dialog.exec_() == QtGui.QDialog.Accepted: self.createLetter(dialog.senderName(), dialog.senderAddress(), dialog.orderItems(), dialog.sendOffers()) def printFile(self): editor = self.letters.currentWidget() printer = QtGui.QPrinter() dialog = QtGui.QPrintDialog(printer, self) dialog.setWindowTitle("Print Document") if editor.textCursor().hasSelection(): dialog.addEnabledOption(QtGui.QAbstractPrintDialog.PrintSelection) if dialog.exec_() != QtGui.QDialog.Accepted: return editor.print_(printer) class DetailsDialog(QtGui.QDialog): def __init__(self, title, parent): super(DetailsDialog, self).__init__(parent) self.items = ("T-shirt", "Badge", "Reference book", "Coffee cup") nameLabel = QtGui.QLabel("Name:") addressLabel = QtGui.QLabel("Address:") addressLabel.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) self.nameEdit = QtGui.QLineEdit() self.addressEdit = QtGui.QTextEdit() self.offersCheckBox = QtGui.QCheckBox("Send information about " "products and special offers:") self.setupItemsTable() buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.verify) buttonBox.rejected.connect(self.reject) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameEdit, 0, 1) mainLayout.addWidget(addressLabel, 1, 0) mainLayout.addWidget(self.addressEdit, 1, 1) mainLayout.addWidget(self.itemsTable, 0, 2, 2, 1) mainLayout.addWidget(self.offersCheckBox, 2, 1, 1, 2) mainLayout.addWidget(buttonBox, 3, 0, 1, 3) self.setLayout(mainLayout) self.setWindowTitle(title) def setupItemsTable(self): self.itemsTable = QtGui.QTableWidget(len(self.items), 2) for row, item in enumerate(self.items): name = QtGui.QTableWidgetItem(item) name.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) self.itemsTable.setItem(row, 0, name) quantity = QtGui.QTableWidgetItem('1') self.itemsTable.setItem(row, 1, quantity) def orderItems(self): orderList = [] for row in range(len(self.items)): text = self.itemsTable.item(row, 0).text() quantity = int(self.itemsTable.item(row, 1).data(QtCore.Qt.DisplayRole)) orderList.append((text, max(0, quantity))) return orderList def senderName(self): return self.nameEdit.text() def senderAddress(self): return self.addressEdit.toPlainText() def sendOffers(self): return self.offersCheckBox.isChecked() def verify(self): if self.nameEdit.text() and self.addressEdit.toPlainText(): self.accept() return answer = QtGui.QMessageBox.warning(self, "Incomplete Form", "The form does not contain all the necessary information.\n" "Do you want to discard it?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if answer == QtGui.QMessageBox.Yes: self.reject() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.resize(640, 480) window.show() window.createSample() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/richtext/README0000644000076500000240000000167212536324427020312 0ustar philstaff00000000000000PyQt provides powerful document-oriented rich text engine that supports Unicode and right-to-left scripts. Documents can be manipulated using a cursor-based API, and their contents can be imported and exported as both HTML and in a custom XML format. Text is rendered using anti-aliased outline fonts to provide the best possible on-screen representation. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/richtext/syntaxhighlighter.py0000755000076500000240000001721412536324427023553 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupFileMenu() self.setupHelpMenu() self.setupEditor() self.setCentralWidget(self.editor) self.setWindowTitle("Syntax Highlighter") def about(self): QtGui.QMessageBox.about(self, "About Syntax Highlighter", "

      The Syntax Highlighter example shows how to " \ "perform simple syntax highlighting by subclassing the " \ "QSyntaxHighlighter class and describing highlighting " \ "rules using regular expressions.

      ") def newFile(self): self.editor.clear() def openFile(self, path=None): if not path: path = QtGui.QFileDialog.getOpenFileName(self, "Open File", '', "C++ Files (*.cpp *.h)") if path: inFile = QtCore.QFile(path) if inFile.open(QtCore.QFile.ReadOnly | QtCore.QFile.Text): text = inFile.readAll() try: # Python v3. text = str(text, encoding='ascii') except TypeError: # Python v2. text = str(text) self.editor.setPlainText(text) def setupEditor(self): font = QtGui.QFont() font.setFamily('Courier') font.setFixedPitch(True) font.setPointSize(10) self.editor = QtGui.QTextEdit() self.editor.setFont(font) self.highlighter = Highlighter(self.editor.document()) def setupFileMenu(self): fileMenu = QtGui.QMenu("&File", self) self.menuBar().addMenu(fileMenu) fileMenu.addAction("&New...", self.newFile, "Ctrl+N") fileMenu.addAction("&Open...", self.openFile, "Ctrl+O") fileMenu.addAction("E&xit", QtGui.qApp.quit, "Ctrl+Q") def setupHelpMenu(self): helpMenu = QtGui.QMenu("&Help", self) self.menuBar().addMenu(helpMenu) helpMenu.addAction("&About", self.about) helpMenu.addAction("About &Qt", QtGui.qApp.aboutQt) class Highlighter(QtGui.QSyntaxHighlighter): def __init__(self, parent=None): super(Highlighter, self).__init__(parent) keywordFormat = QtGui.QTextCharFormat() keywordFormat.setForeground(QtCore.Qt.darkBlue) keywordFormat.setFontWeight(QtGui.QFont.Bold) keywordPatterns = ["\\bchar\\b", "\\bclass\\b", "\\bconst\\b", "\\bdouble\\b", "\\benum\\b", "\\bexplicit\\b", "\\bfriend\\b", "\\binline\\b", "\\bint\\b", "\\blong\\b", "\\bnamespace\\b", "\\boperator\\b", "\\bprivate\\b", "\\bprotected\\b", "\\bpublic\\b", "\\bshort\\b", "\\bsignals\\b", "\\bsigned\\b", "\\bslots\\b", "\\bstatic\\b", "\\bstruct\\b", "\\btemplate\\b", "\\btypedef\\b", "\\btypename\\b", "\\bunion\\b", "\\bunsigned\\b", "\\bvirtual\\b", "\\bvoid\\b", "\\bvolatile\\b"] self.highlightingRules = [(QtCore.QRegExp(pattern), keywordFormat) for pattern in keywordPatterns] classFormat = QtGui.QTextCharFormat() classFormat.setFontWeight(QtGui.QFont.Bold) classFormat.setForeground(QtCore.Qt.darkMagenta) self.highlightingRules.append((QtCore.QRegExp("\\bQ[A-Za-z]+\\b"), classFormat)) singleLineCommentFormat = QtGui.QTextCharFormat() singleLineCommentFormat.setForeground(QtCore.Qt.red) self.highlightingRules.append((QtCore.QRegExp("//[^\n]*"), singleLineCommentFormat)) self.multiLineCommentFormat = QtGui.QTextCharFormat() self.multiLineCommentFormat.setForeground(QtCore.Qt.red) quotationFormat = QtGui.QTextCharFormat() quotationFormat.setForeground(QtCore.Qt.darkGreen) self.highlightingRules.append((QtCore.QRegExp("\".*\""), quotationFormat)) functionFormat = QtGui.QTextCharFormat() functionFormat.setFontItalic(True) functionFormat.setForeground(QtCore.Qt.blue) self.highlightingRules.append((QtCore.QRegExp("\\b[A-Za-z0-9_]+(?=\\()"), functionFormat)) self.commentStartExpression = QtCore.QRegExp("/\\*") self.commentEndExpression = QtCore.QRegExp("\\*/") def highlightBlock(self, text): for pattern, format in self.highlightingRules: expression = QtCore.QRegExp(pattern) index = expression.indexIn(text) while index >= 0: length = expression.matchedLength() self.setFormat(index, length, format) index = expression.indexIn(text, index + length) self.setCurrentBlockState(0) startIndex = 0 if self.previousBlockState() != 1: startIndex = self.commentStartExpression.indexIn(text) while startIndex >= 0: endIndex = self.commentEndExpression.indexIn(text, startIndex) if endIndex == -1: self.setCurrentBlockState(1) commentLength = len(text) - startIndex else: commentLength = endIndex - startIndex + self.commentEndExpression.matchedLength() self.setFormat(startIndex, commentLength, self.multiLineCommentFormat) startIndex = self.commentStartExpression.indexIn(text, startIndex + commentLength); if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.resize(640, 512) window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/richtext/textobject/0000755000076500000240000000000012536324427021577 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/richtext/textobject/files/0000755000076500000240000000000012536324427022701 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/richtext/textobject/files/heart.svg0000644000076500000240000000744112536324427024533 0ustar philstaff00000000000000 Heart Left-Highlight This is a normal valentines day heart. holiday valentines valentine hash(0x8a091c0) hash(0x8a0916c) signs_and_symbols hash(0x8a091f0) day Jon Phillips Jon Phillips Jon Phillips image/svg+xml en PyQt-x11-gpl-4.11.4/examples/richtext/textobject/textobject.py0000755000076500000240000001132212536324427024326 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui, QtSvg class SvgTextObject(QtGui.QPyTextObject): def intrinsicSize(self, doc, posInDocument, format): renderer = QtSvg.QSvgRenderer(format.property(Window.SvgData)) size = renderer.defaultSize() if size.height() > 25: size *= 25.0 / size.height() return QtCore.QSizeF(size) def drawObject(self, painter, rect, doc, posInDocument, format): renderer = QtSvg.QSvgRenderer(format.property(Window.SvgData)) renderer.render(painter, rect) class Window(QtGui.QWidget): SvgTextFormat = QtGui.QTextFormat.UserObject + 1 SvgData = 1 def __init__(self): super(Window, self).__init__() self.setupGui() self.setupTextObject() self.setWindowTitle("Text Object Example") def insertTextObject(self): fileName = self.fileNameLineEdit.text() file = QtCore.QFile(fileName) if not file.open(QtCore.QIODevice.ReadOnly): QtGui.QMessageBox.warning(self, "Error Opening File", "Could not open '%s'" % fileName) svgData = file.readAll() svgCharFormat = QtGui.QTextCharFormat() svgCharFormat.setObjectType(Window.SvgTextFormat) svgCharFormat.setProperty(Window.SvgData, svgData) try: # Python v2. orc = unichr(0xfffc) except NameError: # Python v3. orc = chr(0xfffc) cursor = self.textEdit.textCursor() cursor.insertText(orc, svgCharFormat) self.textEdit.setTextCursor(cursor) def setupTextObject(self): svgInterface = SvgTextObject(self) self.textEdit.document().documentLayout().registerHandler(Window.SvgTextFormat, svgInterface) def setupGui(self): fileNameLabel = QtGui.QLabel("Svg File Name:") self.fileNameLineEdit = QtGui.QLineEdit() insertTextObjectButton = QtGui.QPushButton("Insert Image") self.fileNameLineEdit.setText('./files/heart.svg') insertTextObjectButton.clicked.connect(self.insertTextObject) bottomLayout = QtGui.QHBoxLayout() bottomLayout.addWidget(fileNameLabel) bottomLayout.addWidget(self.fileNameLineEdit) bottomLayout.addWidget(insertTextObjectButton) self.textEdit = QtGui.QTextEdit() mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.textEdit) mainLayout.addLayout(bottomLayout) self.setLayout(mainLayout) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/script/0000755000076500000240000000000012536324427017076 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/script/helloscript.py0000755000076500000240000000464612536324427022015 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import sys from PyQt4 import QtGui, QtScript app = QtGui.QApplication(sys.argv) engine = QtScript.QScriptEngine() button = QtGui.QPushButton() scriptButton = engine.newQObject(button) engine.globalObject().setProperty('button', scriptButton) engine.evaluate("button.text = 'Hello World!'") engine.evaluate("button.styleSheet = 'font-style: italic'") engine.evaluate("button.show()") sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/script/README0000644000076500000240000000132712536324427017761 0ustar philstaff00000000000000PyQt provides the QtScript module that contains classes that allow Qt's JavaScript interpreter to be used to script applications. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/sql/0000755000076500000240000000000012536324427016371 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/sql/cachedtable.py0000755000076500000240000001005312536324427021164 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtSql import connection class TableEditor(QtGui.QDialog): def __init__(self, tableName, parent=None): super(TableEditor, self).__init__(parent) self.model = QtSql.QSqlTableModel(self) self.model.setTable(tableName) self.model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit) self.model.select() self.model.setHeaderData(0, QtCore.Qt.Horizontal, "ID") self.model.setHeaderData(1, QtCore.Qt.Horizontal, "First name") self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Last name") view = QtGui.QTableView() view.setModel(self.model) submitButton = QtGui.QPushButton("Submit") submitButton.setDefault(True) revertButton = QtGui.QPushButton("&Revert") quitButton = QtGui.QPushButton("Quit") buttonBox = QtGui.QDialogButtonBox(QtCore.Qt.Vertical) buttonBox.addButton(submitButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(revertButton, QtGui.QDialogButtonBox.ActionRole) buttonBox.addButton(quitButton, QtGui.QDialogButtonBox.RejectRole) submitButton.clicked.connect(self.submit) revertButton.clicked.connect(self.model.revertAll) quitButton.clicked.connect(self.close) mainLayout = QtGui.QHBoxLayout() mainLayout.addWidget(view) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.setWindowTitle("Cached Table") def submit(self): self.model.database().transaction() if self.model.submitAll(): self.model.database().commit() else: self.model.database().rollback() QtGui.QMessageBox.warning(self, "Cached Table", "The database reported an error: %s" % self.model.lastError().text()) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) if not connection.createConnection(): sys.exit(1) editor = TableEditor('person') editor.show() sys.exit(editor.exec_()) PyQt-x11-gpl-4.11.4/examples/sql/connection.py0000644000076500000240000001370312536324427021106 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtSql, QtGui def createConnection(): db = QtSql.QSqlDatabase.addDatabase('QSQLITE') db.setDatabaseName(':memory:') if not db.open(): QtGui.QMessageBox.critical(None, QtGui.qApp.tr("Cannot open database"), QtGui.qApp.tr("Unable to establish a database connection.\n" "This example needs SQLite support. Please read " "the Qt SQL driver documentation for information " "how to build it.\n\n" "Click Cancel to exit."), QtGui.QMessageBox.Cancel) return False query = QtSql.QSqlQuery() query.exec_("create table person(id int primary key, " "firstname varchar(20), lastname varchar(20))") query.exec_("insert into person values(101, 'Danny', 'Young')") query.exec_("insert into person values(102, 'Christine', 'Holand')") query.exec_("insert into person values(103, 'Lars', 'Gordon')") query.exec_("insert into person values(104, 'Roberto', 'Robitaille')") query.exec_("insert into person values(105, 'Maria', 'Papadopoulos')") query.exec_("create table offices (id int primary key," "imagefile int," "location varchar(20)," "country varchar(20)," "description varchar(100))"); query.exec_("insert into offices " "values(0, 0, 'Oslo', 'Norway'," "'Oslo is home to more than 500 000 citizens and has a " "lot to offer.It has been called \"The city with the big " "heart\" and this is a nickname we are happy to live up to.')") query.exec_("insert into offices " "values(1, 1, 'Brisbane', 'Australia'," "'Brisbane is the capital of Queensland, the Sunshine State, " "where it is beautiful one day, perfect the next. " "Brisbane is Australia''s 3rd largest city, being home " "to almost 2 million people.')") query.exec_("insert into offices " "values(2, 2, 'Redwood City', 'US'," "'You find Redwood City in the heart of the Bay Area " "just north of Silicon Valley. The largest nearby city is " "San Jose which is the third largest city in California " "and the 10th largest in the US.')") query.exec_("insert into offices " "values(3, 3, 'Berlin', 'Germany'," "'Berlin, the capital of Germany is dynamic, cosmopolitan " "and creative, allowing for every kind of lifestyle. " "East meets West in the metropolis at the heart of a " "changing Europe.')") query.exec_("insert into offices " "values(4, 4, 'Munich', 'Germany'," "'Several technology companies are represented in Munich, " "and the city is often called the \"Bavarian Silicon Valley\". " "The exciting city is also filled with culture, " "art and music. ')") query.exec_("insert into offices " "values(5, 5, 'Beijing', 'China'," "'Beijing as a capital city has more than 3000 years of " "history. Today the city counts 12 million citizens, and " "is the political, economic and cultural centre of China.')") query.exec_("create table images (locationid int, file varchar(20))") query.exec_("insert into images values(0, 'images/oslo.png')") query.exec_("insert into images values(1, 'images/brisbane.png')") query.exec_("insert into images values(2, 'images/redwood.png')") query.exec_("insert into images values(3, 'images/berlin.png')") query.exec_("insert into images values(4, 'images/munich.png')") query.exec_("insert into images values(5, 'images/beijing.png')") return True PyQt-x11-gpl-4.11.4/examples/sql/querymodel.py0000755000076500000240000001214412536324427021136 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # These are only needed for Python v2 but are harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui, QtSql import connection class CustomSqlModel(QtSql.QSqlQueryModel): def data(self, index, role): value = super(CustomSqlModel, self).data(index, role) if value is not None and role == QtCore.Qt.DisplayRole: if index.column() == 0: return '#%d' % value elif index.column() == 2: return value.upper() if role == QtCore.Qt.TextColorRole and index.column() == 1: return QtGui.QColor(QtCore.Qt.blue) return value class EditableSqlModel(QtSql.QSqlQueryModel): def flags(self, index): flags = super(EditableSqlModel, self).flags(index) if index.column() in (1, 2): flags |= QtCore.Qt.ItemIsEditable return flags def setData(self, index, value, role): if index.column() not in (1, 2): return False primaryKeyIndex = self.index(index.row(), 0) id = self.data(primaryKeyIndex) self.clear() if index.column() == 1: ok = self.setFirstName(id, value) else: ok = self.setLastName(id, value) self.refresh() return ok def refresh(self): self.setQuery('select * from person') self.setHeaderData(0, QtCore.Qt.Horizontal, "ID") self.setHeaderData(1, QtCore.Qt.Horizontal, "First name") self.setHeaderData(2, QtCore.Qt.Horizontal, "Last name") def setFirstName(self, personId, firstName): query = QtSql.QSqlQuery() query.prepare('update person set firstname = ? where id = ?') query.addBindValue(firstName) query.addBindValue(personId) return query.exec_() def setLastName(self, personId, lastName): query = QtSql.QSqlQuery() query.prepare('update person set lastname = ? where id = ?') query.addBindValue(lastName) query.addBindValue(personId) return query.exec_() def initializeModel(model): model.setQuery('select * from person') model.setHeaderData(0, QtCore.Qt.Horizontal, "ID") model.setHeaderData(1, QtCore.Qt.Horizontal, "First name") model.setHeaderData(2, QtCore.Qt.Horizontal, "Last name") offset = 0 views = [] def createView(title, model): global offset, views view = QtGui.QTableView() views.append(view) view.setModel(model) view.setWindowTitle(title) view.move(100 + offset, 100 + offset) offset += 20 view.show() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) if not connection.createConnection(): sys.exit(1) plainModel = QtSql.QSqlQueryModel() editableModel = EditableSqlModel() customModel = CustomSqlModel() initializeModel(plainModel) initializeModel(editableModel) initializeModel(customModel) createView("Plain Query Model", plainModel) createView("Editable Query Model", editableModel) createView("Custom Query Model", customModel) sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/sql/README0000644000076500000240000000153512536324427017255 0ustar philstaff00000000000000PyQt provides extensive database interoperability, with support for products from both open source and proprietary vendors. SQL support is integrated with PyQt's model/view architecture, making it easier to provide GUI integration for your database applications. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/sql/relationaltablemodel.py0000755000076500000240000000766412536324427023146 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtSql import connection def initializeModel(model): model.setTable('employee') model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit) model.setRelation(2, QtSql.QSqlRelation('city', 'id', 'name')) model.setRelation(3, QtSql.QSqlRelation('country', 'id', 'name')) model.setHeaderData(0, QtCore.Qt.Horizontal, "ID") model.setHeaderData(1, QtCore.Qt.Horizontal, "Name") model.setHeaderData(2, QtCore.Qt.Horizontal, "City") model.setHeaderData(3, QtCore.Qt.Horizontal, "Country") model.select() def createView(title, model): view = QtGui.QTableView() view.setModel(model) view.setItemDelegate(QtSql.QSqlRelationalDelegate(view)) view.setWindowTitle(title) return view def createRelationalTables(): query = QtSql.QSqlQuery() query.exec_("create table employee(id int, name varchar(20), city int, country int)") query.exec_("insert into employee values(1, 'Espen', 5000, 47)") query.exec_("insert into employee values(2, 'Harald', 80000, 49)") query.exec_("insert into employee values(3, 'Sam', 100, 41)") query.exec_("create table city(id int, name varchar(20))") query.exec_("insert into city values(100, 'San Jose')") query.exec_("insert into city values(5000, 'Oslo')") query.exec_("insert into city values(80000, 'Munich')") query.exec_("create table country(id int, name varchar(20))") query.exec_("insert into country values(41, 'USA')") query.exec_("insert into country values(47, 'Norway')") query.exec_("insert into country values(49, 'Germany')") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) if not connection.createConnection(): sys.exit(1) createRelationalTables() model = QtSql.QSqlRelationalTableModel() initializeModel(model) view = createView("Relational Table Model", model) view.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/sql/tablemodel.py0000755000076500000240000000570512536324427021065 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtSql import connection def initializeModel(model): model.setTable('person') model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit) model.select() model.setHeaderData(0, QtCore.Qt.Horizontal, "ID") model.setHeaderData(1, QtCore.Qt.Horizontal, "First name") model.setHeaderData(2, QtCore.Qt.Horizontal, "Last name") def createView(title, model): view = QtGui.QTableView() view.setModel(model) view.setWindowTitle(title) return view if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) if not connection.createConnection(): sys.exit(1) model = QtSql.QSqlTableModel() initializeModel(model) view1 = createView("Table Model (View 1)", model) view2 = createView("Table Model (View 2)", model) view1.show() view2.move(view1.x() + view1.width() + 20, view1.y()) view2.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/threads/0000755000076500000240000000000012536324427017224 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/threads/mandelbrot.py0000755000076500000240000002774312536324427021745 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui DefaultCenterX = -0.647011 DefaultCenterY = -0.0395159 DefaultScale = 0.00403897 ZoomInFactor = 0.8 ZoomOutFactor = 1 / ZoomInFactor ScrollStep = 20 class RenderThread(QtCore.QThread): ColormapSize = 512 renderedImage = QtCore.pyqtSignal(QtGui.QImage, float) def __init__(self, parent=None): super(RenderThread, self).__init__(parent) self.mutex = QtCore.QMutex() self.condition = QtCore.QWaitCondition() self.centerX = 0.0 self.centerY = 0.0 self.scaleFactor = 0.0 self.resultSize = QtCore.QSize() self.colormap = [] self.restart = False self.abort = False for i in range(RenderThread.ColormapSize): self.colormap.append(self.rgbFromWaveLength(380.0 + (i * 400.0 / RenderThread.ColormapSize))) def __del__(self): self.mutex.lock() self.abort = True self.condition.wakeOne() self.mutex.unlock() self.wait() def render(self, centerX, centerY, scaleFactor, resultSize): locker = QtCore.QMutexLocker(self.mutex) self.centerX = centerX self.centerY = centerY self.scaleFactor = scaleFactor self.resultSize = resultSize if not self.isRunning(): self.start(QtCore.QThread.LowPriority) else: self.restart = True self.condition.wakeOne() def run(self): while True: self.mutex.lock() resultSize = self.resultSize scaleFactor = self.scaleFactor centerX = self.centerX centerY = self.centerY self.mutex.unlock() halfWidth = resultSize.width() // 2 halfHeight = resultSize.height() // 2 image = QtGui.QImage(resultSize, QtGui.QImage.Format_RGB32) NumPasses = 8 curpass = 0 while curpass < NumPasses: MaxIterations = (1 << (2 * curpass + 6)) + 32 Limit = 4 allBlack = True for y in range(-halfHeight, halfHeight): if self.restart: break if self.abort: return ay = 1j * (centerY + (y * scaleFactor)) for x in range(-halfWidth, halfWidth): c0 = centerX + (x * scaleFactor) + ay c = c0 numIterations = 0 while numIterations < MaxIterations: numIterations += 1 c = c*c + c0 if abs(c) >= Limit: break numIterations += 1 c = c*c + c0 if abs(c) >= Limit: break numIterations += 1 c = c*c + c0 if abs(c) >= Limit: break numIterations += 1 c = c*c + c0 if abs(c) >= Limit: break if numIterations < MaxIterations: image.setPixel(x + halfWidth, y + halfHeight, self.colormap[numIterations % RenderThread.ColormapSize]) allBlack = False else: image.setPixel(x + halfWidth, y + halfHeight, QtGui.qRgb(0, 0, 0)) if allBlack and curpass == 0: curpass = 4 else: if not self.restart: self.renderedImage.emit(image, scaleFactor) curpass += 1 self.mutex.lock() if not self.restart: self.condition.wait(self.mutex) self.restart = False self.mutex.unlock() def rgbFromWaveLength(self, wave): r = 0.0 g = 0.0 b = 0.0 if wave >= 380.0 and wave <= 440.0: r = -1.0 * (wave - 440.0) / (440.0 - 380.0) b = 1.0 elif wave >= 440.0 and wave <= 490.0: g = (wave - 440.0) / (490.0 - 440.0) b = 1.0 elif wave >= 490.0 and wave <= 510.0: g = 1.0 b = -1.0 * (wave - 510.0) / (510.0 - 490.0) elif wave >= 510.0 and wave <= 580.0: r = (wave - 510.0) / (580.0 - 510.0) g = 1.0 elif wave >= 580.0 and wave <= 645.0: r = 1.0 g = -1.0 * (wave - 645.0) / (645.0 - 580.0) elif wave >= 645.0 and wave <= 780.0: r = 1.0 s = 1.0 if wave > 700.0: s = 0.3 + 0.7 * (780.0 - wave) / (780.0 - 700.0) elif wave < 420.0: s = 0.3 + 0.7 * (wave - 380.0) / (420.0 - 380.0) r = pow(r * s, 0.8) g = pow(g * s, 0.8) b = pow(b * s, 0.8) return QtGui.qRgb(r*255, g*255, b*255) class MandelbrotWidget(QtGui.QWidget): def __init__(self, parent=None): super(MandelbrotWidget, self).__init__(parent) self.thread = RenderThread() self.pixmap = QtGui.QPixmap() self.pixmapOffset = QtCore.QPoint() self.lastDragPos = QtCore.QPoint() self.centerX = DefaultCenterX self.centerY = DefaultCenterY self.pixmapScale = DefaultScale self.curScale = DefaultScale self.thread.renderedImage.connect(self.updatePixmap) self.setWindowTitle("Mandelbrot") self.setCursor(QtCore.Qt.CrossCursor) self.resize(550, 400) def paintEvent(self, event): painter = QtGui.QPainter(self) painter.fillRect(self.rect(), QtCore.Qt.black) if self.pixmap.isNull(): painter.setPen(QtCore.Qt.white) painter.drawText(self.rect(), QtCore.Qt.AlignCenter, "Rendering initial image, please wait...") return if self.curScale == self.pixmapScale: painter.drawPixmap(self.pixmapOffset, self.pixmap) else: scaleFactor = self.pixmapScale / self.curScale newWidth = int(self.pixmap.width() * scaleFactor) newHeight = int(self.pixmap.height() * scaleFactor) newX = self.pixmapOffset.x() + (self.pixmap.width() - newWidth) / 2 newY = self.pixmapOffset.y() + (self.pixmap.height() - newHeight) / 2 painter.save() painter.translate(newX, newY) painter.scale(scaleFactor, scaleFactor) exposed, _ = painter.matrix().inverted() exposed = exposed.mapRect(self.rect()).adjusted(-1, -1, 1, 1) painter.drawPixmap(exposed, self.pixmap, exposed) painter.restore() text = "Use mouse wheel or the '+' and '-' keys to zoom. Press and " \ "hold left mouse button to scroll." metrics = painter.fontMetrics() textWidth = metrics.width(text) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(QtGui.QColor(0, 0, 0, 127)) painter.drawRect((self.width() - textWidth) / 2 - 5, 0, textWidth + 10, metrics.lineSpacing() + 5) painter.setPen(QtCore.Qt.white) painter.drawText((self.width() - textWidth) / 2, metrics.leading() + metrics.ascent(), text) def resizeEvent(self, event): self.thread.render(self.centerX, self.centerY, self.curScale, self.size()) def keyPressEvent(self, event): if event.key() == QtCore.Qt.Key_Plus: self.zoom(ZoomInFactor) elif event.key() == QtCore.Qt.Key_Minus: self.zoom(ZoomOutFactor) elif event.key() == QtCore.Qt.Key_Left: self.scroll(-ScrollStep, 0) elif event.key() == QtCore.Qt.Key_Right: self.scroll(+ScrollStep, 0) elif event.key() == QtCore.Qt.Key_Down: self.scroll(0, -ScrollStep) elif event.key() == QtCore.Qt.Key_Up: self.scroll(0, +ScrollStep) else: super(MandelbrotWidget, self).keyPressEvent(event) def wheelEvent(self, event): numDegrees = event.delta() / 8 numSteps = numDegrees / 15.0 self.zoom(pow(ZoomInFactor, numSteps)) def mousePressEvent(self, event): if event.buttons() == QtCore.Qt.LeftButton: self.lastDragPos = QtCore.QPoint(event.pos()) def mouseMoveEvent(self, event): if event.buttons() & QtCore.Qt.LeftButton: self.pixmapOffset += event.pos() - self.lastDragPos self.lastDragPos = QtCore.QPoint(event.pos()) self.update() def mouseReleaseEvent(self, event): if event.button() == QtCore.Qt.LeftButton: self.pixmapOffset += event.pos() - self.lastDragPos self.lastDragPos = QtCore.QPoint() deltaX = (self.width() - self.pixmap.width()) / 2 - self.pixmapOffset.x() deltaY = (self.height() - self.pixmap.height()) / 2 - self.pixmapOffset.y() self.scroll(deltaX, deltaY) def updatePixmap(self, image, scaleFactor): if not self.lastDragPos.isNull(): return self.pixmap = QtGui.QPixmap.fromImage(image) self.pixmapOffset = QtCore.QPoint() self.lastDragPosition = QtCore.QPoint() self.pixmapScale = scaleFactor self.update() def zoom(self, zoomFactor): self.curScale *= zoomFactor self.update() self.thread.render(self.centerX, self.centerY, self.curScale, self.size()) def scroll(self, deltaX, deltaY): self.centerX += deltaX * self.curScale self.centerY += deltaY * self.curScale self.update() self.thread.render(self.centerX, self.centerY, self.curScale, self.size()) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) widget = MandelbrotWidget() widget.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/threads/README0000644000076500000240000000155112536324427020106 0ustar philstaff00000000000000PyQt makes it easier than ever to write multithreaded applications. More classes have been made usable from non-GUI threads, and the signals and slots mechanism can now be used to communicate between threads. Additionally, it is now possible to move objects between threads. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/threads/semaphores.py0000755000076500000240000000554312536324427021756 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import sys import random from PyQt4 import QtCore DataSize = 100000 BufferSize = 8192 buffer = list(range(BufferSize)) freeBytes = QtCore.QSemaphore(BufferSize) usedBytes = QtCore.QSemaphore() class Producer(QtCore.QThread): def run(self): for i in range(DataSize): freeBytes.acquire() buffer[i % BufferSize] = "ACGT"[random.randint(0, 3)] usedBytes.release() class Consumer(QtCore.QThread): def run(self): for i in range(DataSize): usedBytes.acquire() sys.stderr.write(buffer[i % BufferSize]) freeBytes.release() sys.stderr.write("\n") if __name__ == '__main__': app = QtCore.QCoreApplication(sys.argv) producer = Producer() consumer = Consumer() producer.start() consumer.start() producer.wait() consumer.wait() PyQt-x11-gpl-4.11.4/examples/threads/waitconditions.py0000755000076500000240000000655412536324427022651 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import sys import random from PyQt4 import QtCore DataSize = 100000 BufferSize = 8192 buffer = list(range(BufferSize)) bufferNotEmpty = QtCore.QWaitCondition() bufferNotFull = QtCore.QWaitCondition() mutex = QtCore.QMutex() numUsedBytes = 0 class Producer(QtCore.QThread): def run(self): global numUsedBytes for i in range(DataSize): mutex.lock() if numUsedBytes == BufferSize: bufferNotFull.wait(mutex) mutex.unlock() buffer[i % BufferSize] = "ACGT"[random.randint(0, 3)] mutex.lock() numUsedBytes += 1 bufferNotEmpty.wakeAll() mutex.unlock() class Consumer(QtCore.QThread): def run(self): global numUsedBytes for i in range(DataSize): mutex.lock() if numUsedBytes == 0: bufferNotEmpty.wait(mutex) mutex.unlock() sys.stderr.write(buffer[i % BufferSize]) mutex.lock() numUsedBytes -= 1 bufferNotFull.wakeAll() mutex.unlock() sys.stderr.write("\n") if __name__ == '__main__': app = QtCore.QCoreApplication(sys.argv) producer = Producer() consumer = Consumer() producer.start() consumer.start() producer.wait() consumer.wait() PyQt-x11-gpl-4.11.4/examples/tools/0000755000076500000240000000000012536324427016732 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tools/codecs/0000755000076500000240000000000012536324427020172 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tools/codecs/codecs.py0000755000076500000240000002110612536324427022007 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui def codec_name(codec): try: # Python v3. name = str(codec.name(), encoding='ascii') except TypeError: # Python v2. name = str(codec.name()) return name class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.textEdit = QtGui.QTextEdit() self.textEdit.setLineWrapMode(QtGui.QTextEdit.NoWrap) self.setCentralWidget(self.textEdit) self.codecs = [] self.findCodecs() self.previewForm = PreviewForm(self) self.previewForm.setCodecList(self.codecs) self.saveAsActs = [] self.createActions() self.createMenus() self.setWindowTitle("Codecs") self.resize(500, 400) def open(self): fileName = QtGui.QFileDialog.getOpenFileName(self) if fileName: inFile = QtCore.QFile(fileName) if not inFile.open(QtCore.QFile.ReadOnly): QtGui.QMessageBox.warning(self, "Codecs", "Cannot read file %s:\n%s" % (fileName, inFile.errorString())) return data = inFile.readAll() self.previewForm.setEncodedData(data) if self.previewForm.exec_(): self.textEdit.setPlainText(self.previewForm.decodedString()) def save(self): fileName = QtGui.QFileDialog.getSaveFileName(self) if fileName: outFile = QtCore.QFile(fileName) if not outFile.open(QtCore.QFile.WriteOnly|QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "Codecs", "Cannot write file %s:\n%s" % (fileName, outFile.errorString())) return action = self.sender() codecName = action.data() out = QtCore.QTextStream(outFile) out.setCodec(codecName) out << self.textEdit.toPlainText() def about(self): QtGui.QMessageBox.about(self, "About Codecs", "The Codecs example demonstrates how to read and " "write files using various encodings.") def aboutToShowSaveAsMenu(self): currentText = self.textEdit.toPlainText() for action in self.saveAsActs: codecName = action.data() codec = QtCore.QTextCodec.codecForName(codecName) action.setVisible(codec and codec.canEncode(currentText)) def findCodecs(self): codecMap = [] iso8859RegExp = QtCore.QRegExp('ISO[- ]8859-([0-9]+).*') for mib in QtCore.QTextCodec.availableMibs(): codec = QtCore.QTextCodec.codecForMib(mib) sortKey = codec_name(codec).upper() rank = 0 if sortKey.startswith('UTF-8'): rank = 1 elif sortKey.startswith('UTF-16'): rank = 2 elif iso8859RegExp.exactMatch(sortKey): if len(iso8859RegExp.cap(1)) == 1: rank = 3 else: rank = 4 else: rank = 5 codecMap.append((str(rank) + sortKey, codec)) codecMap.sort() self.codecs = [item[-1] for item in codecMap] def createActions(self): self.openAct = QtGui.QAction("&Open...", self, shortcut="Ctrl+O", triggered=self.open) for codec in self.codecs: name = codec_name(codec) action = QtGui.QAction(name + '...', self, triggered=self.save) action.setData(name) self.saveAsActs.append(action) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close) self.aboutAct = QtGui.QAction("&About", self, triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, triggered=QtGui.qApp.aboutQt) def createMenus(self): self.saveAsMenu = QtGui.QMenu("&Save As", self) for action in self.saveAsActs: self.saveAsMenu.addAction(action) self.saveAsMenu.aboutToShow.connect(self.aboutToShowSaveAsMenu) self.fileMenu = QtGui.QMenu("&File", self) self.fileMenu.addAction(self.openAct) self.fileMenu.addMenu(self.saveAsMenu) self.fileMenu.addSeparator() self.fileMenu.addAction(self.exitAct) self.helpMenu = QtGui.QMenu("&Help", self) self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) self.menuBar().addMenu(self.fileMenu) self.menuBar().addSeparator() self.menuBar().addMenu(self.helpMenu) class PreviewForm(QtGui.QDialog): def __init__(self, parent): super(PreviewForm, self).__init__(parent) self.encodingComboBox = QtGui.QComboBox() encodingLabel = QtGui.QLabel("&Encoding:") encodingLabel.setBuddy(self.encodingComboBox) self.textEdit = QtGui.QTextEdit() self.textEdit.setLineWrapMode(QtGui.QTextEdit.NoWrap) self.textEdit.setReadOnly(True) buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) self.encodingComboBox.activated.connect(self.updateTextEdit) buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(encodingLabel, 0, 0) mainLayout.addWidget(self.encodingComboBox, 0, 1) mainLayout.addWidget(self.textEdit, 1, 0, 1, 2) mainLayout.addWidget(buttonBox, 2, 0, 1, 2) self.setLayout(mainLayout) self.setWindowTitle("Choose Encoding") self.resize(400, 300) def setCodecList(self, codecs): self.encodingComboBox.clear() for codec in codecs: self.encodingComboBox.addItem(codec_name(codec), codec.mibEnum()) def setEncodedData(self, data): self.encodedData = data self.updateTextEdit() def decodedString(self): return self.decodedStr def updateTextEdit(self): mib = self.encodingComboBox.itemData(self.encodingComboBox.currentIndex()) codec = QtCore.QTextCodec.codecForMib(mib) data = QtCore.QTextStream(self.encodedData) data.setAutoDetectUnicode(False) data.setCodec(codec) self.decodedStr = data.readAll() self.textEdit.setPlainText(self.decodedStr) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tools/codecs/encodedfiles/0000755000076500000240000000000012536324427022616 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tools/codecs/encodedfiles/iso-8859-1.txt0000644000076500000240000000037412536324427024726 0ustar philstaff00000000000000Paulo Coelho: O Gênio e as Rosas Anna Hallström, Urban Östberg: Svår svenska Darrell Huff: How to Lie with Statistics Franz Kafka: Das Schloß Walter Moers: Die 13½ Leben des Käpt'n Blaubär Dag Solstad: Forsøk på å beskrive det ugjennomtrengelige PyQt-x11-gpl-4.11.4/examples/tools/codecs/encodedfiles/iso-8859-15.txt0000644000076500000240000000052112536324427025005 0ustar philstaff00000000000000Paulo Coelho: O Gênio e as Rosas Jean-Pierre Coffe: À table en famille avec 15 ¤ par jour Anna Hallström, Urban Östberg: Svår svenska Darrell Huff: How to Lie with Statistics Franz Kafka: Das Schloß Helena Lehecková: T¨ekkiä suomalaisille Arthur Rimbaud: ¼uvres complètes Dag Solstad: Forsøk på å beskrive det ugjennomtrengelige PyQt-x11-gpl-4.11.4/examples/tools/codecs/encodedfiles/utf-16.txt0000644000076500000240000000024212536324427024377 0ustar philstaff00000000000000ÿþSpråk: Norsk “»ÎÃñ: •»»·½¹º¬ /7K:: CAA:89 ¸Å´Å : \Õm­´Å ŠžŠ: åe,gžŠ Langage : Français PyQt-x11-gpl-4.11.4/examples/tools/codecs/encodedfiles/utf-16be.txt0000644000076500000240000000024012536324427024704 0ustar philstaff00000000000000Språk: Norsk “»ÎÃñ: •»»·½¹º¬ /7K::  CAA:89 ŸŴ : Õ\­mÅ´ ŠŠž: eåg,Šž Langage : Français PyQt-x11-gpl-4.11.4/examples/tools/codecs/encodedfiles/utf-16le.txt0000644000076500000240000000024012536324427024716 0ustar philstaff00000000000000Språk: Norsk “»ÎÃñ: •»»·½¹º¬ /7K:: CAA:89 ¸Å´Å : \Õm­´Å ŠžŠ: åe,gžŠ Langage : Français PyQt-x11-gpl-4.11.4/examples/tools/codecs/encodedfiles/utf-8.txt0000644000076500000240000000017712536324427024327 0ustar philstaff00000000000000SprÃ¥k: Norsk Γλώσσα: Ελληνικά Язык: РуÑÑкий 언어 : 한국어 言語: 日本語 Langage : Français PyQt-x11-gpl-4.11.4/examples/tools/customcompleter/0000755000076500000240000000000012536324427022157 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tools/customcompleter/customcompleter.py0000644000076500000240000001725412536324427025767 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2012 Riverbank Computing Limited. ## Copyright (C) 2012 Digia Plc ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui try: import customcompleter_rc3 except ImportError: import customcompleter_rc2 class TextEdit(QtGui.QTextEdit): def __init__(self, parent=None): super(TextEdit, self).__init__(parent) self._completer = None self.setPlainText( "This TextEdit provides autocompletions for words that have " "more than 3 characters. You can trigger autocompletion " "using %s" % QtGui.QKeySequence("Ctrl+E").toString( QtGui.QKeySequence.NativeText)) def setCompleter(self, c): if self._completer is not None: self._completer.activated.disconnect() self._completer = c c.setWidget(self) c.setCompletionMode(QtGui.QCompleter.PopupCompletion) c.setCaseSensitivity(QtCore.Qt.CaseInsensitive) c.activated.connect(self.insertCompletion) def completer(self): return self._completer def insertCompletion(self, completion): if self._completer.widget() is not self: return tc = self.textCursor() extra = len(completion) - len(self._completer.completionPrefix()) tc.movePosition(QtGui.QTextCursor.Left) tc.movePosition(QtGui.QTextCursor.EndOfWord) tc.insertText(completion[-extra:]) self.setTextCursor(tc) def textUnderCursor(self): tc = self.textCursor() tc.select(QtGui.QTextCursor.WordUnderCursor) return tc.selectedText() def focusInEvent(self, e): if self._completer is not None: self._completer.setWidget(self) super(TextEdit, self).focusInEvent(e) def keyPressEvent(self, e): if self._completer is not None and self._completer.popup().isVisible(): # The following keys are forwarded by the completer to the widget. if e.key() in (QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return, QtCore.Qt.Key_Escape, QtCore.Qt.Key_Tab, QtCore.Qt.Key_Backtab): e.ignore() # Let the completer do default behavior. return isShortcut = ((e.modifiers() & QtCore.Qt.ControlModifier) != 0 and e.key() == QtCore.Qt.Key_E) if self._completer is None or not isShortcut: # Do not process the shortcut when we have a completer. super(TextEdit, self).keyPressEvent(e) ctrlOrShift = e.modifiers() & (QtCore.Qt.ControlModifier | QtCore.Qt.ShiftModifier) if self._completer is None or (ctrlOrShift and len(e.text()) == 0): return eow = "~!@#$%^&*()_+{}|:\"<>?,./;'[]\\-=" hasModifier = (e.modifiers() != QtCore.Qt.NoModifier) and not ctrlOrShift completionPrefix = self.textUnderCursor() if not isShortcut and (hasModifier or len(e.text()) == 0 or len(completionPrefix) < 3 or e.text()[-1] in eow): self._completer.popup().hide() return if completionPrefix != self._completer.completionPrefix(): self._completer.setCompletionPrefix(completionPrefix) self._completer.popup().setCurrentIndex( self._completer.completionModel().index(0, 0)) cr = self.cursorRect() cr.setWidth(self._completer.popup().sizeHintForColumn(0) + self._completer.popup().verticalScrollBar().sizeHint().width()) self._completer.complete(cr) class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.createMenu() self.completingTextEdit = TextEdit() self.completer = QtGui.QCompleter(self) self.completer.setModel(self.modelFromFile(':/resources/wordlist.txt')) self.completer.setModelSorting( QtGui.QCompleter.CaseInsensitivelySortedModel) self.completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.completer.setWrapAround(False) self.completingTextEdit.setCompleter(self.completer) self.setCentralWidget(self.completingTextEdit) self.resize(500, 300) self.setWindowTitle("Completer") def createMenu(self): exitAction = QtGui.QAction("Exit", self) aboutAct = QtGui.QAction("About", self) aboutQtAct = QtGui.QAction("About Qt", self) exitAction.triggered.connect(QtGui.qApp.quit) aboutAct.triggered.connect(self.about) aboutQtAct.triggered.connect(QtGui.qApp.aboutQt) fileMenu = self.menuBar().addMenu("File") fileMenu.addAction(exitAction) helpMenu = self.menuBar().addMenu("About") helpMenu.addAction(aboutAct) helpMenu.addAction(aboutQtAct) def modelFromFile(self, fileName): f = QtCore.QFile(fileName) if not f.open(QtCore.QFile.ReadOnly): return QtGui.QStringListModel(self.completer) QtGui.QApplication.setOverrideCursor( QtGui.QCursor(QtCore.Qt.WaitCursor)) words = [] while not f.atEnd(): line = f.readLine().trimmed() if line.length() != 0: try: line = str(line, encoding='ascii') except TypeError: line = str(line) words.append(line) QtGui.QApplication.restoreOverrideCursor() return QtGui.QStringListModel(words, self.completer) def about(self): QtGui.QMessageBox.about(self, "About", "This example demonstrates the different features of the " "QCompleter class.") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tools/customcompleter/customcompleter.qrc0000644000076500000240000000016412536324427026114 0ustar philstaff00000000000000 resources/wordlist.txt PyQt-x11-gpl-4.11.4/examples/tools/customcompleter/customcompleter_rc2.py0000644000076500000240000013321512536324427026531 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:49:00 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x2b\x52\ \x41\ \x34\x0a\x61\x62\x6c\x65\x0a\x61\x62\x6f\x75\x74\x0a\x61\x62\x6f\ \x76\x65\x0a\x61\x62\x73\x65\x6e\x63\x65\x0a\x61\x62\x73\x6f\x6c\ \x75\x74\x65\x6c\x79\x0a\x61\x62\x73\x74\x72\x61\x63\x74\x0a\x61\ \x63\x63\x65\x73\x73\x0a\x61\x63\x63\x6f\x72\x64\x69\x6e\x67\x0a\ \x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x64\x0a\x61\x63\x68\x69\ \x65\x76\x65\x0a\x61\x63\x68\x69\x65\x76\x69\x6e\x67\x0a\x61\x63\ \x74\x69\x76\x69\x74\x79\x0a\x61\x63\x74\x73\x0a\x61\x63\x74\x75\ \x61\x6c\x0a\x61\x63\x74\x75\x61\x6c\x6c\x79\x0a\x61\x64\x64\x0a\ \x61\x64\x64\x65\x64\x0a\x61\x64\x64\x69\x6e\x67\x0a\x61\x64\x64\ \x69\x74\x69\x6f\x6e\x0a\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\ \x6c\x79\x0a\x61\x64\x64\x69\x74\x69\x6f\x6e\x73\x0a\x61\x64\x64\ \x72\x65\x73\x73\x65\x73\x0a\x61\x64\x6a\x75\x73\x74\x0a\x61\x64\ \x6a\x75\x73\x74\x6d\x65\x6e\x74\x73\x0a\x61\x64\x76\x61\x6e\x63\ \x65\x64\x0a\x61\x64\x76\x69\x63\x65\x0a\x61\x66\x74\x65\x72\x0a\ \x61\x66\x74\x65\x72\x77\x61\x72\x64\x73\x0a\x61\x67\x61\x69\x6e\ \x0a\x61\x67\x65\x6e\x64\x61\x0a\x61\x69\x6d\x0a\x61\x6c\x67\x6f\ \x72\x69\x74\x68\x6d\x0a\x61\x6c\x6c\x0a\x61\x6c\x6c\x6f\x63\x61\ \x74\x65\x64\x0a\x61\x6c\x6c\x6f\x77\x0a\x61\x6c\x6c\x6f\x77\x65\ \x64\x0a\x61\x6c\x6c\x6f\x77\x69\x6e\x67\x0a\x61\x6c\x6c\x6f\x77\ \x73\x0a\x61\x6c\x6f\x6e\x67\x0a\x61\x6c\x70\x68\x61\x0a\x61\x6c\ \x72\x65\x61\x64\x79\x0a\x61\x6c\x73\x6f\x0a\x61\x6c\x74\x65\x72\ \x6e\x61\x74\x69\x76\x65\x0a\x61\x6c\x74\x65\x72\x6e\x61\x74\x69\ \x76\x65\x6c\x79\x0a\x61\x6c\x74\x68\x6f\x75\x67\x68\x0a\x41\x6d\ \x65\x72\x69\x63\x61\x6e\x0a\x61\x6e\x0a\x61\x6e\x64\x0a\x61\x6e\ \x6e\x6f\x75\x6e\x63\x65\x64\x0a\x61\x6e\x6e\x6f\x79\x0a\x61\x6e\ \x6f\x74\x68\x65\x72\x0a\x61\x6e\x73\x77\x65\x72\x0a\x61\x6e\x73\ \x77\x65\x72\x73\x0a\x61\x6e\x79\x0a\x61\x6e\x79\x74\x68\x69\x6e\ \x67\x0a\x61\x6e\x79\x77\x61\x79\x0a\x61\x70\x61\x72\x74\x0a\x41\ \x50\x49\x0a\x61\x70\x70\x65\x61\x72\x0a\x61\x70\x70\x65\x61\x72\ \x73\x0a\x61\x70\x70\x65\x6e\x64\x69\x63\x65\x73\x0a\x61\x70\x70\ \x65\x6e\x64\x69\x78\x0a\x61\x70\x70\x65\x6e\x64\x73\x0a\x61\x70\ \x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x0a\x61\x70\x70\x6c\x69\x63\ \x61\x74\x69\x6f\x6e\x73\x0a\x61\x70\x70\x6c\x79\x0a\x61\x70\x70\ \x72\x6f\x61\x63\x68\x0a\x61\x70\x70\x72\x6f\x61\x63\x68\x65\x73\ \x0a\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x0a\x41\x72\x61\ \x62\x69\x63\x0a\x61\x72\x62\x69\x74\x72\x61\x72\x79\x0a\x61\x72\ \x65\x0a\x61\x72\x65\x61\x73\x0a\x41\x52\x47\x42\x0a\x61\x72\x67\ \x75\x6d\x65\x6e\x74\x0a\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x0a\ \x61\x72\x6f\x75\x6e\x64\x0a\x61\x72\x72\x61\x6e\x67\x65\x6d\x65\ \x6e\x74\x73\x0a\x61\x72\x72\x69\x76\x65\x0a\x61\x72\x72\x69\x76\ \x65\x64\x0a\x41\x72\x74\x68\x75\x72\x0a\x61\x72\x74\x69\x63\x6c\ \x65\x0a\x61\x72\x74\x69\x63\x6c\x65\x73\x0a\x61\x73\x0a\x61\x73\ \x6b\x65\x64\x0a\x61\x73\x70\x65\x63\x74\x73\x0a\x61\x73\x73\x75\ \x6d\x65\x0a\x61\x74\x0a\x61\x74\x74\x61\x63\x68\x6d\x65\x6e\x74\ \x0a\x61\x74\x74\x65\x6d\x70\x74\x0a\x61\x74\x74\x65\x6d\x70\x74\ \x69\x6e\x67\x0a\x61\x74\x74\x65\x6e\x64\x0a\x61\x74\x74\x65\x6e\ \x64\x65\x65\x73\x0a\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x0a\ \x61\x75\x74\x68\x6f\x72\x73\x0a\x61\x76\x61\x69\x6c\x61\x62\x69\ \x6c\x69\x74\x79\x0a\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x0a\x61\ \x76\x6f\x69\x64\x0a\x61\x77\x61\x79\x0a\x62\x61\x63\x6b\x0a\x62\ \x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x0a\x62\x61\x63\x6b\x67\x72\ \x6f\x75\x6e\x64\x73\x0a\x62\x61\x6e\x64\x77\x69\x64\x74\x68\x0a\ \x62\x61\x6e\x64\x77\x69\x64\x74\x68\x73\x0a\x42\x61\x72\x63\x65\ \x6c\x6f\x6e\x61\x0a\x62\x61\x73\x65\x0a\x62\x61\x73\x65\x64\x0a\ \x62\x61\x73\x69\x63\x0a\x62\x61\x73\x69\x63\x61\x6c\x6c\x79\x0a\ \x62\x61\x73\x69\x63\x73\x0a\x62\x65\x0a\x62\x65\x63\x61\x75\x73\ \x65\x0a\x62\x65\x65\x6e\x0a\x62\x65\x66\x6f\x72\x65\x0a\x62\x65\ \x68\x61\x76\x65\x0a\x62\x65\x68\x61\x76\x69\x6f\x72\x0a\x62\x65\ \x68\x69\x6e\x64\x0a\x62\x65\x69\x6e\x67\x0a\x62\x65\x6c\x6f\x77\ \x0a\x62\x65\x6e\x65\x66\x69\x74\x73\x0a\x42\x65\x72\x6b\x65\x6c\ \x65\x79\x0a\x62\x65\x74\x77\x65\x65\x6e\x0a\x62\x69\x74\x0a\x62\ \x69\x74\x73\x0a\x62\x69\x74\x77\x69\x73\x65\x0a\x62\x6c\x61\x63\ \x6b\x0a\x62\x6c\x65\x6e\x64\x65\x64\x0a\x62\x6c\x65\x6e\x64\x69\ \x6e\x67\x0a\x62\x6c\x65\x6e\x64\x73\x0a\x62\x6c\x6f\x63\x6b\x0a\ \x62\x6c\x75\x65\x0a\x42\x4d\x50\x0a\x62\x6f\x64\x79\x0a\x62\x6f\ \x6c\x64\x0a\x62\x6f\x6f\x6b\x69\x6e\x67\x0a\x62\x6f\x6f\x6c\x0a\ \x42\x6f\x73\x74\x6f\x6e\x0a\x62\x6f\x74\x68\x0a\x62\x6f\x74\x74\ \x6f\x6d\x0a\x62\x6f\x78\x0a\x62\x6f\x78\x65\x73\x0a\x62\x72\x61\ \x63\x65\x73\x0a\x62\x72\x65\x61\x6b\x0a\x62\x72\x65\x61\x6b\x73\ \x0a\x62\x72\x6f\x61\x64\x0a\x62\x72\x6f\x77\x73\x65\x72\x73\x0a\ \x62\x75\x66\x66\x65\x72\x0a\x62\x75\x66\x66\x65\x72\x73\x0a\x62\ \x75\x69\x6c\x64\x0a\x62\x75\x69\x6c\x64\x73\x0a\x62\x75\x69\x6c\ \x74\x0a\x62\x75\x6e\x64\x6c\x65\x64\x0a\x62\x75\x72\x64\x65\x6e\ \x73\x0a\x62\x75\x73\x79\x0a\x62\x75\x74\x0a\x62\x79\x0a\x62\x79\ \x70\x61\x73\x73\x0a\x62\x79\x70\x61\x73\x73\x69\x6e\x67\x0a\x62\ \x79\x74\x65\x73\x0a\x63\x61\x6c\x65\x6e\x64\x61\x72\x0a\x63\x61\ \x6c\x6c\x0a\x63\x61\x6c\x6c\x65\x64\x0a\x63\x61\x6c\x6c\x69\x6e\ \x67\x0a\x63\x61\x6c\x6c\x73\x0a\x43\x61\x6d\x62\x72\x69\x64\x67\ \x65\x0a\x63\x61\x6e\x0a\x63\x61\x6e\x6f\x6e\x69\x63\x61\x6c\x0a\ \x63\x61\x6e\x6f\x6e\x69\x63\x61\x6c\x69\x73\x65\x64\x0a\x63\x61\ \x70\x0a\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x69\x65\x73\x0a\x63\ \x61\x70\x61\x63\x69\x74\x79\x0a\x63\x61\x70\x74\x69\x6f\x6e\x0a\ \x63\x61\x72\x64\x0a\x63\x61\x72\x65\x0a\x63\x61\x73\x65\x0a\x63\ \x61\x73\x74\x0a\x63\x61\x74\x63\x68\x0a\x63\x61\x75\x73\x69\x6e\ \x67\x0a\x63\x65\x6e\x74\x72\x65\x0a\x63\x65\x72\x74\x61\x69\x6e\ \x0a\x63\x68\x61\x6c\x6c\x65\x6e\x67\x65\x73\x0a\x63\x68\x61\x6e\ \x63\x65\x0a\x63\x68\x61\x6e\x67\x65\x0a\x63\x68\x61\x6e\x67\x65\ \x73\x0a\x63\x68\x61\x6e\x67\x69\x6e\x67\x0a\x63\x68\x61\x6e\x6e\ \x65\x6c\x0a\x63\x68\x61\x6e\x6e\x65\x6c\x73\x0a\x63\x68\x61\x70\ \x74\x65\x72\x0a\x63\x68\x61\x72\x0a\x63\x68\x61\x72\x74\x0a\x63\ \x68\x61\x72\x74\x73\x0a\x63\x68\x65\x63\x6b\x0a\x63\x68\x65\x63\ \x6b\x73\x0a\x43\x68\x69\x63\x61\x67\x6f\x0a\x63\x68\x6f\x73\x65\ \x6e\x0a\x63\x68\x75\x6e\x6b\x0a\x63\x69\x72\x63\x6c\x65\x0a\x63\ \x69\x74\x61\x74\x69\x6f\x6e\x0a\x63\x69\x74\x79\x0a\x63\x6c\x61\ \x69\x6d\x0a\x63\x6c\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x65\x73\ \x0a\x63\x6c\x61\x75\x73\x65\x0a\x63\x6c\x61\x75\x73\x65\x73\x0a\ \x63\x6c\x65\x61\x72\x0a\x63\x6c\x65\x61\x72\x69\x6e\x67\x0a\x63\ \x6c\x69\x65\x6e\x74\x0a\x63\x6c\x69\x65\x6e\x74\x73\x0a\x63\x6c\ \x6f\x73\x65\x0a\x63\x6c\x6f\x73\x65\x64\x0a\x63\x6f\x64\x65\x0a\ \x63\x6f\x6c\x6f\x6e\x0a\x63\x6f\x6c\x6f\x72\x0a\x63\x6f\x6c\x6f\ \x72\x69\x7a\x65\x0a\x63\x6f\x6c\x6f\x72\x69\x7a\x65\x72\x0a\x63\ \x6f\x6c\x6f\x72\x73\x0a\x63\x6f\x6c\x6f\x75\x72\x0a\x63\x6f\x6c\ \x75\x6d\x6e\x0a\x63\x6f\x6c\x75\x6d\x6e\x73\x0a\x63\x6f\x6d\x62\ \x69\x6e\x65\x0a\x63\x6f\x6d\x62\x69\x6e\x65\x64\x0a\x63\x6f\x6d\ \x62\x69\x6e\x65\x73\x0a\x63\x6f\x6d\x62\x69\x6e\x69\x6e\x67\x0a\ \x63\x6f\x6d\x65\x73\x0a\x63\x6f\x6d\x6d\x61\x6e\x64\x0a\x63\x6f\ \x6d\x6d\x61\x6e\x64\x73\x0a\x63\x6f\x6d\x6d\x65\x6e\x74\x0a\x63\ \x6f\x6d\x6d\x6f\x6e\x0a\x63\x6f\x6d\x6d\x75\x6e\x69\x63\x61\x74\ \x65\x0a\x63\x6f\x6d\x6d\x75\x6e\x69\x74\x79\x0a\x63\x6f\x6d\x70\ \x69\x6c\x65\x64\x0a\x63\x6f\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x0a\ \x63\x6f\x6d\x70\x6c\x65\x74\x65\x0a\x63\x6f\x6d\x70\x6c\x65\x74\ \x65\x6c\x79\x0a\x63\x6f\x6d\x70\x6c\x65\x74\x65\x6e\x65\x73\x73\ \x0a\x63\x6f\x6d\x70\x6c\x65\x74\x65\x73\x0a\x63\x6f\x6d\x70\x6c\ \x65\x74\x69\x6f\x6e\x0a\x63\x6f\x6d\x70\x6c\x65\x78\x0a\x63\x6f\ \x6d\x70\x6c\x69\x61\x6e\x74\x0a\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\ \x74\x0a\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x0a\x63\x6f\x6d\ \x70\x6f\x73\x69\x74\x69\x6e\x67\x0a\x63\x6f\x6d\x70\x6f\x73\x69\ \x74\x69\x6f\x6e\x0a\x63\x6f\x6d\x70\x72\x65\x73\x73\x69\x6f\x6e\ \x0a\x63\x6f\x6d\x70\x75\x74\x61\x74\x69\x6f\x6e\x0a\x63\x6f\x6d\ \x70\x75\x74\x65\x72\x0a\x63\x6f\x6e\x63\x65\x70\x74\x73\x0a\x63\ \x6f\x6e\x63\x6c\x75\x73\x69\x6f\x6e\x0a\x63\x6f\x6e\x63\x75\x72\ \x72\x65\x6e\x74\x0a\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\ \x65\x0a\x63\x6f\x6e\x67\x65\x73\x74\x65\x64\x0a\x63\x6f\x6e\x67\ \x65\x73\x74\x69\x6f\x6e\x0a\x63\x6f\x6e\x6e\x65\x63\x74\x0a\x63\ \x6f\x6e\x6e\x65\x63\x74\x65\x64\x0a\x63\x6f\x6e\x6e\x65\x63\x74\ \x69\x6f\x6e\x0a\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x73\x0a\ \x63\x6f\x6e\x73\x0a\x63\x6f\x6e\x73\x69\x64\x65\x72\x0a\x63\x6f\ \x6e\x73\x69\x73\x74\x69\x6e\x67\x0a\x63\x6f\x6e\x73\x69\x73\x74\ \x73\x0a\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x0a\x63\x6f\x6e\x73\ \x74\x72\x75\x63\x74\x65\x64\x0a\x63\x6f\x6e\x73\x74\x72\x75\x63\ \x74\x69\x6e\x67\x0a\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\ \x0a\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x73\x0a\x63\x6f\x6e\x73\ \x75\x6d\x65\x0a\x63\x6f\x6e\x74\x61\x63\x74\x0a\x63\x6f\x6e\x74\ \x61\x69\x6e\x0a\x63\x6f\x6e\x74\x61\x69\x6e\x69\x6e\x67\x0a\x63\ \x6f\x6e\x74\x61\x69\x6e\x73\x0a\x63\x6f\x6e\x74\x65\x6e\x74\x73\ \x0a\x63\x6f\x6e\x74\x65\x6e\x74\x73\x0a\x63\x6f\x6e\x74\x69\x6e\ \x75\x65\x0a\x63\x6f\x6e\x74\x69\x6e\x75\x65\x64\x0a\x63\x6f\x6e\ \x74\x72\x69\x62\x75\x74\x6f\x72\x73\x0a\x63\x6f\x6e\x74\x72\x6f\ \x6c\x0a\x63\x6f\x6e\x74\x72\x6f\x6c\x6c\x65\x64\x0a\x63\x6f\x6e\ \x74\x72\x6f\x6c\x6c\x65\x72\x0a\x63\x6f\x6e\x74\x72\x6f\x6c\x6c\ \x65\x72\x0a\x63\x6f\x6e\x74\x72\x6f\x6c\x6c\x69\x6e\x67\x0a\x63\ \x6f\x6e\x74\x72\x6f\x6c\x73\x0a\x63\x6f\x6e\x74\x72\x6f\x6c\x73\ \x0a\x63\x6f\x6e\x76\x65\x6e\x74\x69\x6f\x6e\x73\x0a\x63\x6f\x6f\ \x6b\x0a\x63\x6f\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x0a\x63\x6f\ \x70\x79\x0a\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x0a\x63\x6f\x72\ \x65\x0a\x63\x6f\x72\x65\x73\x0a\x63\x6f\x72\x6f\x6c\x6c\x61\x72\ \x79\x0a\x63\x6f\x72\x72\x65\x63\x74\x0a\x63\x6f\x72\x72\x65\x63\ \x74\x6c\x79\x0a\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x69\x6e\ \x67\x0a\x63\x6f\x75\x6c\x64\x0a\x63\x6f\x75\x70\x6c\x65\x0a\x63\ \x6f\x77\x6f\x72\x6b\x65\x72\x73\x0a\x43\x50\x55\x0a\x63\x72\x65\ \x61\x74\x65\x0a\x63\x72\x65\x61\x74\x65\x73\x0a\x63\x72\x65\x61\ \x74\x69\x6e\x67\x0a\x63\x72\x75\x63\x69\x61\x6c\x0a\x63\x75\x6c\ \x74\x75\x72\x65\x73\x0a\x63\x75\x72\x72\x65\x6e\x74\x0a\x63\x75\ \x72\x72\x65\x6e\x74\x6c\x79\x0a\x63\x75\x73\x74\x6f\x6d\x0a\x63\ \x75\x73\x74\x6f\x6d\x69\x7a\x65\x64\x0a\x63\x75\x74\x0a\x64\x61\ \x74\x61\x0a\x64\x61\x74\x61\x62\x61\x73\x65\x0a\x64\x61\x74\x61\ \x73\x65\x74\x73\x0a\x64\x61\x74\x75\x6d\x0a\x64\x61\x79\x0a\x64\ \x61\x79\x73\x0a\x64\x65\x61\x6c\x0a\x64\x65\x61\x6c\x69\x6e\x67\ \x0a\x64\x65\x63\x69\x64\x65\x0a\x64\x65\x63\x6f\x75\x70\x6c\x65\ \x0a\x64\x65\x63\x6f\x75\x70\x6c\x65\x64\x0a\x64\x65\x65\x70\x6c\ \x79\x0a\x64\x65\x66\x0a\x64\x65\x66\x61\x75\x6c\x74\x0a\x64\x65\ \x66\x69\x6e\x65\x0a\x64\x65\x66\x69\x6e\x65\x73\x0a\x64\x65\x66\ \x69\x6e\x69\x74\x69\x6f\x6e\x0a\x64\x65\x66\x69\x6e\x69\x74\x69\ \x6f\x6e\x73\x0a\x64\x65\x6c\x65\x67\x61\x74\x65\x0a\x64\x65\x6c\ \x65\x74\x65\x0a\x64\x65\x6d\x6f\x0a\x64\x65\x6d\x6f\x6e\x73\x74\ \x72\x61\x74\x65\x0a\x64\x65\x6d\x6f\x6e\x73\x74\x72\x61\x74\x69\ \x6f\x6e\x73\x0a\x64\x65\x70\x6c\x6f\x79\x65\x64\x0a\x64\x65\x73\ \x63\x72\x69\x62\x65\x0a\x64\x65\x73\x63\x72\x69\x62\x65\x73\x0a\ \x64\x65\x73\x69\x67\x6e\x0a\x64\x65\x73\x6b\x74\x6f\x70\x0a\x64\ \x65\x73\x6b\x74\x6f\x70\x73\x0a\x64\x65\x73\x74\x69\x6e\x61\x74\ \x69\x6f\x6e\x0a\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x73\ \x0a\x64\x65\x73\x74\x72\x75\x63\x74\x6f\x72\x0a\x64\x65\x74\x61\ \x69\x6c\x73\x0a\x64\x65\x74\x65\x63\x74\x0a\x64\x65\x74\x65\x72\ \x6d\x69\x6e\x65\x0a\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x73\x0a\ \x64\x65\x76\x65\x6c\x6f\x70\x65\x72\x0a\x64\x65\x76\x65\x6c\x6f\ \x70\x65\x72\x73\x0a\x64\x65\x76\x65\x6c\x6f\x70\x6d\x65\x6e\x74\ \x0a\x64\x65\x76\x65\x6c\x6f\x70\x6d\x65\x6e\x74\x73\x0a\x64\x65\ \x76\x69\x63\x65\x0a\x64\x65\x76\x69\x63\x65\x73\x0a\x64\x69\x61\ \x67\x72\x61\x6d\x0a\x64\x69\x61\x6c\x6f\x67\x73\x0a\x64\x69\x63\ \x74\x69\x6f\x6e\x61\x72\x79\x0a\x64\x69\x64\x0a\x64\x69\x66\x66\ \x65\x72\x65\x6e\x63\x65\x0a\x64\x69\x66\x66\x65\x72\x65\x6e\x63\ \x65\x73\x0a\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x0a\x64\x69\x66\ \x66\x65\x72\x73\x0a\x64\x69\x67\x69\x74\x61\x6c\x0a\x64\x69\x72\ \x65\x63\x74\x0a\x64\x69\x72\x65\x63\x74\x0a\x64\x69\x72\x65\x63\ \x74\x69\x6f\x6e\x73\x0a\x64\x69\x72\x65\x63\x74\x6c\x79\x0a\x64\ \x69\x72\x65\x63\x74\x6f\x72\x79\x0a\x64\x69\x73\x63\x75\x73\x73\ \x0a\x64\x69\x73\x70\x6c\x61\x79\x0a\x64\x69\x73\x70\x6c\x61\x79\ \x69\x6e\x67\x0a\x64\x69\x73\x70\x6c\x61\x79\x73\x0a\x64\x69\x73\ \x74\x72\x69\x62\x75\x74\x65\x0a\x64\x69\x73\x74\x72\x69\x62\x75\ \x74\x69\x6f\x6e\x0a\x64\x69\x73\x74\x75\x72\x62\x69\x6e\x67\x0a\ \x64\x69\x76\x69\x64\x65\x0a\x64\x6f\x0a\x64\x6f\x63\x75\x6d\x65\ \x6e\x74\x61\x74\x69\x6f\x6e\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\ \x73\x0a\x64\x6f\x65\x73\x0a\x64\x6f\x6e\x65\x0a\x64\x6f\x77\x6e\ \x0a\x64\x6f\x77\x6e\x4c\x69\x6d\x69\x74\x0a\x64\x6f\x77\x6e\x6c\ \x6f\x61\x64\x0a\x64\x6f\x77\x6e\x6c\x6f\x61\x64\x65\x64\x0a\x64\ \x6f\x77\x6e\x6c\x6f\x61\x64\x69\x6e\x67\x0a\x64\x72\x61\x77\x0a\ \x64\x72\x61\x77\x69\x6e\x67\x0a\x64\x72\x61\x77\x6e\x0a\x64\x72\ \x6f\x70\x0a\x44\x75\x66\x66\x0a\x64\x75\x72\x69\x6e\x67\x0a\x44\ \x56\x44\x0a\x64\x79\x6e\x61\x6d\x69\x63\x0a\x64\x79\x6e\x61\x6d\ \x69\x63\x61\x6c\x6c\x79\x0a\x64\x79\x6e\x61\x6d\x69\x63\x73\x0a\ \x65\x61\x63\x68\x0a\x65\x61\x72\x6c\x69\x65\x72\x0a\x65\x61\x73\ \x69\x6c\x79\x0a\x65\x64\x69\x74\x69\x6e\x67\x0a\x65\x64\x69\x74\ \x6f\x72\x73\x0a\x65\x64\x75\x63\x61\x74\x69\x6f\x6e\x0a\x65\x66\ \x66\x65\x63\x74\x0a\x65\x66\x66\x65\x63\x74\x69\x76\x65\x6c\x79\ \x0a\x65\x66\x66\x65\x63\x74\x73\x0a\x65\x69\x74\x68\x65\x72\x0a\ \x65\x6c\x6c\x69\x70\x73\x65\x0a\x65\x6c\x6c\x69\x70\x73\x65\x73\ \x0a\x65\x6c\x6c\x69\x70\x74\x69\x63\x61\x6c\x0a\x65\x6c\x73\x65\ \x0a\x65\x6d\x61\x69\x6c\x0a\x65\x6d\x62\x65\x64\x64\x65\x64\x0a\ \x65\x6d\x69\x74\x0a\x65\x6d\x69\x74\x73\x0a\x65\x6d\x70\x74\x79\ \x0a\x65\x6e\x61\x62\x6c\x65\x0a\x65\x6e\x61\x62\x6c\x65\x73\x0a\ \x65\x6e\x63\x61\x70\x73\x75\x6c\x61\x74\x65\x73\x0a\x65\x6e\x63\ \x6c\x6f\x73\x65\x0a\x65\x6e\x64\x0a\x65\x6e\x64\x6e\x6f\x74\x65\ \x0a\x65\x6e\x64\x6e\x6f\x74\x65\x73\x0a\x65\x6e\x67\x69\x6e\x65\ \x65\x72\x0a\x65\x6e\x67\x69\x6e\x65\x65\x72\x69\x6e\x67\x0a\x45\ \x6e\x67\x6c\x69\x73\x68\x0a\x65\x6e\x6a\x6f\x79\x73\x0a\x65\x6e\ \x6f\x75\x67\x68\x0a\x65\x6e\x73\x75\x72\x65\x0a\x65\x6e\x73\x75\ \x72\x65\x73\x0a\x65\x6e\x74\x61\x69\x6c\x73\x0a\x65\x6e\x74\x65\ \x72\x0a\x65\x6e\x74\x69\x72\x65\x0a\x65\x6e\x74\x69\x74\x6c\x65\ \x64\x0a\x65\x6e\x74\x72\x69\x65\x73\x0a\x65\x6e\x74\x72\x79\x0a\ \x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x0a\x65\x72\x61\x73\ \x65\x73\x0a\x65\x72\x72\x6f\x72\x0a\x65\x72\x72\x6f\x72\x73\x0a\ \x65\x73\x70\x65\x63\x69\x61\x6c\x6c\x79\x0a\x65\x73\x74\x61\x62\ \x6c\x69\x73\x68\x65\x64\x0a\x65\x74\x63\x2e\x0a\x45\x75\x72\x6f\ \x70\x65\x0a\x65\x76\x65\x6e\x0a\x65\x76\x65\x6e\x6c\x79\x0a\x65\ \x76\x65\x6e\x74\x0a\x65\x76\x65\x6e\x74\x73\x0a\x65\x76\x65\x6e\ \x74\x75\x61\x6c\x6c\x79\x0a\x65\x76\x65\x72\x79\x0a\x65\x76\x65\ \x72\x79\x6f\x6e\x65\x0a\x65\x78\x61\x6d\x70\x6c\x65\x0a\x65\x78\ \x61\x6d\x70\x6c\x65\x73\x0a\x65\x78\x63\x65\x70\x74\x0a\x65\x78\ \x63\x65\x70\x74\x69\x6f\x6e\x0a\x65\x78\x63\x65\x73\x73\x69\x76\ \x65\x0a\x65\x78\x63\x6c\x75\x73\x69\x76\x65\x0a\x65\x78\x69\x73\ \x74\x69\x6e\x67\x0a\x65\x78\x69\x73\x74\x73\x0a\x65\x78\x70\x61\ \x6e\x64\x0a\x65\x78\x70\x65\x63\x74\x65\x64\x0a\x65\x78\x70\x65\ \x6e\x73\x65\x0a\x65\x78\x70\x6f\x72\x74\x0a\x65\x78\x70\x6f\x73\ \x65\x73\x0a\x65\x78\x74\x65\x6e\x64\x0a\x65\x78\x74\x65\x6e\x64\ \x65\x64\x0a\x65\x78\x74\x65\x6e\x64\x69\x6e\x67\x0a\x65\x78\x74\ \x65\x6e\x73\x69\x62\x6c\x65\x0a\x65\x78\x74\x65\x6e\x73\x69\x6f\ \x6e\x0a\x65\x78\x74\x65\x72\x6e\x61\x6c\x0a\x65\x78\x74\x72\x61\ \x0a\x65\x78\x74\x72\x61\x63\x74\x0a\x66\x61\x63\x65\x73\x0a\x66\ \x61\x63\x69\x6c\x69\x74\x69\x65\x73\x0a\x66\x61\x63\x74\x6f\x72\ \x79\x0a\x66\x61\x64\x65\x0a\x66\x61\x69\x6c\x75\x72\x65\x0a\x66\ \x61\x69\x72\x6e\x65\x73\x73\x0a\x66\x61\x6c\x6c\x73\x0a\x66\x61\ \x6c\x73\x65\x0a\x66\x61\x6d\x69\x6c\x79\x0a\x66\x61\x73\x68\x69\ \x6f\x6e\x0a\x66\x61\x73\x74\x0a\x66\x61\x73\x74\x65\x72\x0a\x66\ \x65\x61\x74\x75\x72\x65\x73\x0a\x46\x65\x62\x72\x75\x61\x72\x79\ \x0a\x66\x65\x65\x64\x62\x61\x63\x6b\x0a\x66\x65\x65\x6c\x0a\x66\ \x65\x74\x63\x68\x0a\x66\x65\x74\x63\x68\x69\x6e\x67\x0a\x66\x65\ \x77\x0a\x66\x69\x65\x6c\x64\x73\x0a\x66\x69\x67\x75\x72\x65\x0a\ \x66\x69\x67\x75\x72\x65\x73\x0a\x66\x69\x6c\x65\x0a\x66\x69\x6c\ \x65\x20\x6e\x61\x6d\x65\x0a\x66\x69\x6c\x65\x73\x0a\x66\x69\x6c\ \x6c\x65\x64\x0a\x66\x69\x6c\x6c\x65\x72\x0a\x66\x69\x6e\x61\x6c\ \x0a\x66\x69\x6e\x61\x6c\x6c\x79\x0a\x66\x69\x6e\x64\x0a\x66\x69\ \x6e\x65\x0a\x66\x69\x6e\x69\x73\x68\x0a\x66\x69\x6e\x69\x73\x68\ \x65\x64\x0a\x66\x69\x72\x73\x74\x0a\x66\x6c\x6f\x77\x0a\x66\x6c\ \x79\x0a\x66\x6f\x63\x75\x73\x0a\x66\x6f\x6c\x6c\x6f\x77\x65\x64\ \x0a\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x0a\x66\x6f\x6e\x74\x0a\ \x66\x6f\x6f\x74\x0a\x66\x6f\x6f\x74\x6e\x6f\x74\x65\x0a\x66\x6f\ \x6f\x74\x6e\x6f\x74\x65\x73\x0a\x66\x6f\x72\x0a\x66\x6f\x72\x6d\ \x0a\x66\x6f\x72\x6d\x61\x74\x0a\x66\x6f\x72\x6d\x61\x74\x73\x0a\ \x66\x6f\x72\x6d\x73\x0a\x66\x6f\x72\x6d\x75\x6c\x61\x0a\x66\x6f\ \x72\x6d\x75\x6c\x61\x73\x0a\x66\x6f\x72\x75\x6d\x0a\x66\x6f\x75\ \x6e\x64\x0a\x66\x72\x61\x6d\x65\x77\x6f\x72\x6b\x0a\x46\x72\x61\ \x6e\x63\x65\x0a\x66\x72\x6f\x6d\x0a\x66\x72\x6f\x6e\x74\x0a\x66\ \x75\x6c\x6c\x0a\x66\x75\x6c\x6c\x79\x0a\x66\x75\x6e\x63\x74\x69\ \x6f\x6e\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x61\x6c\x69\x74\x79\ \x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x0a\x66\x75\x74\x75\x72\ \x65\x0a\x67\x61\x69\x6e\x0a\x67\x61\x6d\x65\x73\x0a\x67\x61\x70\ \x0a\x67\x65\x6e\x65\x72\x61\x6c\x0a\x67\x65\x6e\x65\x72\x69\x63\ \x0a\x47\x65\x72\x6d\x61\x6e\x79\x0a\x67\x65\x74\x0a\x67\x69\x6c\ \x6c\x0a\x67\x69\x76\x65\x0a\x67\x69\x76\x65\x6e\x0a\x67\x69\x76\ \x65\x73\x0a\x67\x69\x76\x69\x6e\x67\x0a\x67\x6c\x6f\x62\x61\x6c\ \x0a\x67\x6f\x0a\x67\x6f\x65\x73\x0a\x67\x6f\x74\x0a\x67\x72\x61\ \x64\x69\x65\x6e\x74\x0a\x67\x72\x61\x70\x68\x0a\x67\x72\x61\x70\ \x68\x69\x63\x61\x6c\x0a\x67\x72\x61\x70\x68\x69\x63\x73\x0a\x67\ \x72\x61\x79\x0a\x67\x72\x65\x61\x74\x0a\x67\x72\x65\x61\x74\x6c\ \x79\x0a\x67\x72\x65\x65\x6e\x0a\x67\x72\x65\x79\x0a\x67\x72\x6f\ \x75\x70\x0a\x67\x72\x6f\x77\x69\x6e\x67\x0a\x67\x75\x69\x0a\x47\ \x55\x49\x0a\x68\x61\x63\x6b\x0a\x68\x61\x64\x0a\x68\x61\x6c\x66\ \x0a\x48\x61\x6d\x62\x75\x72\x67\x0a\x68\x61\x6e\x64\x0a\x68\x61\ \x6e\x64\x69\x6e\x67\x0a\x68\x61\x6e\x64\x6c\x65\x0a\x68\x61\x6e\ \x64\x6c\x65\x72\x0a\x68\x61\x6e\x64\x6c\x65\x72\x73\x0a\x68\x61\ \x6e\x64\x6c\x65\x73\x0a\x68\x61\x6e\x64\x6c\x69\x6e\x67\x0a\x68\ \x61\x70\x70\x65\x6e\x73\x0a\x68\x61\x72\x64\x77\x61\x72\x65\x0a\ \x68\x61\x72\x6d\x6f\x6e\x69\x63\x61\x0a\x68\x61\x73\x0a\x68\x61\ \x76\x65\x0a\x68\x61\x76\x69\x6e\x67\x0a\x68\x65\x0a\x68\x65\x61\ \x64\x0a\x68\x65\x61\x64\x65\x72\x0a\x68\x65\x61\x64\x65\x72\x73\ \x0a\x68\x65\x61\x72\x0a\x68\x65\x69\x67\x68\x74\x0a\x68\x65\x6c\ \x70\x0a\x68\x65\x6c\x70\x65\x72\x0a\x68\x65\x72\x65\x0a\x68\x69\ \x67\x68\x0a\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x0a\x68\x69\x67\ \x68\x6c\x79\x0a\x68\x69\x6e\x74\x73\x0a\x68\x69\x73\x0a\x68\x6f\ \x6c\x64\x0a\x68\x6f\x6c\x64\x65\x72\x0a\x68\x6f\x6c\x64\x69\x6e\ \x67\x0a\x68\x6f\x6c\x65\x0a\x68\x6f\x6d\x65\x0a\x68\x6f\x72\x69\ \x7a\x6f\x6e\x74\x61\x6c\x0a\x68\x6f\x73\x74\x0a\x68\x6f\x73\x74\ \x69\x6e\x67\x0a\x68\x6f\x75\x72\x73\x0a\x48\x6f\x75\x73\x74\x6f\ \x6e\x0a\x68\x6f\x77\x0a\x68\x6f\x77\x65\x76\x65\x72\x0a\x68\x75\ \x67\x65\x0a\x68\x79\x70\x68\x65\x6e\x0a\x49\x44\x0a\x69\x64\x65\ \x61\x0a\x69\x64\x65\x61\x6c\x6c\x79\x0a\x69\x66\x0a\x49\x6c\x6c\ \x69\x6e\x6f\x69\x73\x0a\x69\x6c\x6c\x75\x73\x74\x72\x61\x74\x65\ \x0a\x69\x6c\x6c\x75\x73\x74\x72\x61\x74\x65\x64\x0a\x69\x6c\x6c\ \x75\x73\x74\x72\x61\x74\x65\x73\x0a\x69\x6d\x61\x67\x65\x0a\x69\ \x6d\x61\x67\x65\x73\x0a\x69\x6d\x70\x61\x63\x74\x0a\x69\x6d\x70\ \x6c\x65\x6d\x65\x6e\x74\x0a\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\ \x61\x74\x69\x6f\x6e\x0a\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\ \x74\x69\x6f\x6e\x73\x0a\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\ \x64\x0a\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x69\x6e\x67\x0a\x69\ \x6d\x70\x6c\x65\x6d\x65\x6e\x74\x73\x0a\x69\x6d\x70\x6f\x72\x74\ \x0a\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x0a\x69\x6d\x70\x72\x6f\ \x76\x65\x6d\x65\x6e\x74\x73\x0a\x69\x6e\x0a\x69\x6e\x63\x6c\x75\ \x64\x65\x0a\x69\x6e\x63\x6c\x75\x64\x65\x64\x0a\x69\x6e\x63\x6c\ \x75\x64\x65\x73\x0a\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x0a\x69\ \x6e\x63\x6c\x75\x73\x69\x6f\x6e\x0a\x69\x6e\x63\x6f\x6d\x69\x6e\ \x67\x0a\x69\x6e\x63\x6f\x6e\x76\x65\x6e\x69\x65\x6e\x74\x0a\x69\ \x6e\x64\x65\x6e\x74\x0a\x69\x6e\x64\x65\x78\x0a\x69\x6e\x64\x69\ \x63\x61\x74\x65\x0a\x69\x6e\x65\x78\x70\x65\x6e\x73\x69\x76\x65\ \x6c\x79\x0a\x69\x6e\x66\x6c\x75\x65\x6e\x63\x65\x0a\x69\x6e\x66\ \x6f\x0a\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x69\x6e\ \x67\x65\x6e\x69\x6f\x75\x73\x0a\x69\x6e\x68\x65\x72\x69\x74\x73\ \x0a\x69\x6e\x69\x74\x69\x61\x6c\x0a\x69\x6e\x69\x74\x69\x61\x6c\ \x6c\x79\x0a\x69\x6e\x6e\x65\x72\x0a\x69\x6e\x70\x75\x74\x0a\x69\ \x6e\x73\x70\x69\x72\x65\x64\x0a\x69\x6e\x73\x74\x61\x6c\x6c\x0a\ \x69\x6e\x73\x74\x61\x6c\x6c\x73\x0a\x69\x6e\x73\x74\x61\x6e\x63\ \x65\x0a\x69\x6e\x73\x74\x65\x61\x64\x0a\x69\x6e\x73\x74\x72\x75\ \x63\x74\x73\x0a\x69\x6e\x74\x65\x67\x65\x72\x0a\x69\x6e\x74\x65\ \x67\x65\x72\x73\x0a\x69\x6e\x74\x65\x67\x72\x61\x74\x69\x6f\x6e\ \x0a\x69\x6e\x74\x65\x6e\x64\x65\x64\x0a\x69\x6e\x74\x65\x6e\x73\ \x69\x76\x65\x0a\x69\x6e\x74\x65\x72\x65\x73\x74\x0a\x69\x6e\x74\ \x65\x72\x65\x73\x74\x73\x0a\x69\x6e\x74\x65\x72\x66\x61\x63\x65\ \x0a\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x73\x0a\x69\x6e\x74\x65\ \x72\x66\x65\x72\x65\x0a\x69\x6e\x74\x65\x72\x6e\x61\x6c\x0a\x69\ \x6e\x74\x65\x72\x76\x61\x6c\x0a\x69\x6e\x74\x6f\x0a\x69\x6e\x74\ \x72\x69\x67\x75\x69\x6e\x67\x0a\x69\x6e\x74\x72\x6f\x0a\x69\x6e\ \x74\x72\x6f\x64\x75\x63\x65\x0a\x69\x6e\x74\x72\x6f\x64\x75\x63\ \x65\x64\x0a\x69\x6e\x76\x61\x6c\x69\x64\x0a\x69\x6e\x76\x65\x6e\ \x74\x65\x64\x0a\x69\x6e\x76\x65\x72\x73\x65\x0a\x69\x6e\x76\x6f\ \x63\x61\x74\x69\x6f\x6e\x0a\x69\x6e\x76\x6f\x6c\x76\x65\x64\x0a\ \x49\x72\x69\x73\x68\x0a\x69\x72\x72\x65\x67\x75\x6c\x61\x72\x0a\ \x69\x73\x0a\x49\x53\x4f\x0a\x49\x53\x50\x73\x0a\x69\x73\x73\x75\ \x65\x0a\x69\x73\x73\x75\x65\x73\x0a\x69\x74\x0a\x69\x74\x65\x6d\ \x73\x0a\x69\x74\x65\x72\x61\x74\x65\x0a\x69\x74\x73\x0a\x69\x74\ \x73\x65\x6c\x66\x0a\x6a\x6f\x62\x0a\x6a\x6f\x69\x6e\x0a\x4a\x50\ \x45\x47\x0a\x6a\x75\x6e\x67\x6c\x65\x0a\x6a\x75\x73\x74\x0a\x4b\ \x61\x72\x61\x6f\x6b\x65\x0a\x6b\x65\x65\x70\x0a\x6b\x65\x65\x70\ \x69\x6e\x67\x0a\x6b\x65\x79\x0a\x6b\x69\x6e\x64\x0a\x6b\x69\x6e\ \x67\x0a\x6b\x6e\x6f\x77\x6e\x0a\x6c\x61\x62\x65\x6c\x0a\x6c\x61\ \x62\x65\x6c\x73\x0a\x6c\x61\x6e\x64\x73\x63\x61\x70\x65\x0a\x6c\ \x61\x6e\x67\x75\x61\x67\x65\x0a\x6c\x61\x72\x67\x65\x0a\x6c\x61\ \x73\x74\x0a\x6c\x61\x74\x65\x72\x0a\x6c\x61\x74\x65\x73\x74\x0a\ \x6c\x61\x77\x6e\x0a\x6c\x61\x79\x6f\x75\x74\x0a\x6c\x65\x61\x64\ \x0a\x6c\x65\x61\x64\x65\x72\x0a\x6c\x65\x61\x64\x65\x72\x73\x0a\ \x6c\x65\x61\x6e\x0a\x6c\x65\x61\x76\x65\x73\x0a\x6c\x65\x61\x76\ \x69\x6e\x67\x0a\x6c\x65\x66\x74\x0a\x6c\x65\x6d\x6d\x61\x0a\x6c\ \x65\x6e\x67\x74\x68\x0a\x6c\x65\x73\x73\x0a\x6c\x65\x74\x0a\x6c\ \x65\x76\x65\x6c\x0a\x6c\x65\x76\x65\x6c\x73\x0a\x6c\x69\x62\x72\ \x61\x72\x69\x65\x73\x0a\x6c\x69\x62\x72\x61\x72\x79\x0a\x6c\x69\ \x65\x73\x0a\x6c\x69\x6b\x65\x0a\x6c\x69\x6b\x65\x6c\x79\x0a\x6c\ \x69\x6d\x69\x74\x0a\x6c\x69\x6d\x69\x74\x69\x6e\x67\x0a\x6c\x69\ \x6d\x69\x74\x73\x0a\x6c\x69\x6e\x65\x0a\x6c\x69\x6e\x65\x61\x72\ \x0a\x6c\x69\x6e\x65\x73\x0a\x6c\x69\x6e\x65\x77\x69\x64\x74\x68\ \x0a\x6c\x69\x6e\x6b\x0a\x6c\x69\x6e\x6b\x65\x64\x0a\x6c\x69\x6e\ \x6b\x69\x6e\x67\x0a\x4c\x69\x6e\x75\x78\x0a\x6c\x69\x73\x74\x0a\ \x6c\x69\x73\x74\x73\x0a\x6c\x69\x74\x74\x6c\x65\x0a\x6c\x69\x76\ \x65\x73\x0a\x6c\x6f\x61\x64\x0a\x6c\x6f\x61\x64\x69\x6e\x67\x0a\ \x6c\x6f\x61\x64\x73\x0a\x6c\x6f\x63\x61\x74\x65\x64\x0a\x6c\x6f\ \x63\x61\x74\x69\x6f\x6e\x0a\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x73\ \x0a\x6c\x6f\x67\x6f\x0a\x6c\x6f\x6e\x67\x0a\x6c\x6f\x6e\x67\x65\ \x72\x0a\x6c\x6f\x6f\x6b\x0a\x6c\x6f\x6f\x6b\x65\x64\x0a\x6c\x6f\ \x6f\x6b\x69\x6e\x67\x0a\x6c\x6f\x6f\x6b\x73\x0a\x6c\x6f\x6f\x6b\ \x75\x70\x0a\x6c\x6f\x6f\x6b\x75\x70\x73\x0a\x6c\x6f\x6f\x70\x0a\ \x6c\x6f\x75\x74\x0a\x6c\x6f\x77\x0a\x6d\x61\x63\x72\x6f\x0a\x6d\ \x61\x64\x65\x0a\x6d\x61\x67\x61\x7a\x69\x6e\x65\x0a\x6d\x61\x67\ \x69\x63\x0a\x6d\x61\x69\x6e\x0a\x6d\x61\x6a\x6f\x72\x0a\x6d\x61\ \x6b\x65\x0a\x6d\x61\x6b\x65\x73\x0a\x6d\x61\x6b\x69\x6e\x67\x0a\ \x6d\x61\x6e\x61\x67\x65\x0a\x6d\x61\x6e\x61\x67\x65\x64\x0a\x6d\ \x61\x6e\x61\x67\x69\x6e\x67\x0a\x6d\x61\x6e\x64\x61\x74\x6f\x72\ \x79\x0a\x6d\x61\x6e\x69\x70\x75\x6c\x61\x74\x65\x0a\x6d\x61\x6e\ \x69\x70\x75\x6c\x61\x74\x69\x6f\x6e\x0a\x6d\x61\x6e\x6e\x65\x72\ \x0a\x6d\x61\x6e\x79\x0a\x6d\x61\x70\x0a\x6d\x61\x70\x73\x0a\x4d\ \x61\x72\x63\x68\x0a\x6d\x61\x72\x67\x69\x6e\x0a\x6d\x61\x73\x6b\ \x0a\x6d\x61\x73\x6b\x69\x6e\x67\x0a\x4d\x61\x73\x73\x61\x63\x68\ \x75\x73\x65\x74\x74\x73\x0a\x6d\x61\x74\x63\x68\x0a\x6d\x61\x74\ \x68\x65\x6d\x61\x74\x69\x63\x61\x6c\x0a\x6d\x61\x78\x69\x6d\x75\ \x6d\x0a\x6d\x61\x79\x0a\x6d\x65\x61\x6e\x73\x0a\x6d\x65\x65\x74\ \x0a\x6d\x65\x6d\x62\x65\x72\x0a\x6d\x65\x6d\x62\x65\x72\x73\x0a\ \x6d\x65\x6d\x6f\x72\x79\x0a\x6d\x65\x72\x67\x65\x64\x0a\x6d\x65\ \x74\x68\x6f\x64\x0a\x6d\x69\x67\x68\x74\x0a\x6d\x69\x6c\x6c\x69\ \x73\x65\x63\x6f\x6e\x64\x73\x0a\x6d\x69\x6e\x69\x6d\x69\x7a\x65\ \x0a\x6d\x69\x6e\x69\x6d\x75\x6d\x0a\x6d\x69\x6e\x6f\x72\x0a\x6d\ \x69\x78\x0a\x4d\x4e\x47\x0a\x6d\x6f\x64\x65\x0a\x6d\x6f\x64\x65\ \x6c\x0a\x6d\x6f\x64\x65\x6c\x73\x0a\x6d\x6f\x64\x65\x73\x0a\x6d\ \x6f\x64\x69\x66\x69\x65\x64\x0a\x6d\x6f\x64\x75\x6c\x65\x0a\x6d\ \x6f\x6d\x65\x6e\x74\x73\x0a\x6d\x6f\x6e\x69\x74\x6f\x72\x65\x64\ \x0a\x6d\x6f\x6e\x74\x68\x6c\x79\x0a\x6d\x6f\x72\x65\x0a\x6d\x6f\ \x73\x74\x0a\x6d\x6f\x73\x74\x6c\x79\x0a\x6d\x6f\x76\x65\x0a\x6d\ \x75\x63\x68\x0a\x6d\x75\x6c\x74\x69\x74\x75\x64\x65\x0a\x4d\x75\ \x6e\x69\x63\x68\x0a\x6d\x75\x73\x74\x0a\x6e\x61\x6d\x65\x0a\x6e\ \x61\x6d\x65\x64\x0a\x6e\x61\x6d\x65\x73\x0a\x6e\x65\x63\x65\x73\ \x73\x61\x72\x79\x0a\x6e\x65\x65\x64\x0a\x6e\x65\x65\x64\x65\x64\ \x0a\x6e\x65\x65\x64\x73\x0a\x6e\x65\x74\x77\x6f\x72\x6b\x0a\x6e\ \x65\x77\x0a\x6e\x65\x77\x73\x0a\x6e\x65\x77\x73\x6c\x65\x74\x74\ \x65\x72\x0a\x6e\x65\x78\x74\x0a\x6e\x69\x63\x65\x6c\x79\x0a\x6e\ \x6f\x0a\x6e\x6f\x6e\x65\x0a\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x0a\ \x4e\x6f\x72\x77\x61\x79\x0a\x6e\x6f\x74\x0a\x6e\x6f\x74\x65\x0a\ \x6e\x6f\x74\x65\x73\x0a\x6e\x6f\x74\x68\x69\x6e\x67\x0a\x6e\x6f\ \x74\x69\x66\x69\x65\x73\x0a\x6e\x6f\x74\x69\x66\x79\x0a\x6e\x6f\ \x77\x0a\x6e\x75\x6c\x6c\x0a\x6e\x75\x6d\x62\x65\x72\x0a\x6e\x75\ \x6d\x62\x65\x72\x65\x64\x0a\x6e\x75\x6d\x62\x65\x72\x69\x6e\x67\ \x0a\x6e\x75\x6d\x62\x65\x72\x73\x0a\x4e\x79\x64\x61\x6c\x65\x6e\ \x0a\x6f\x62\x6a\x65\x63\x74\x0a\x6f\x62\x6a\x65\x63\x74\x73\x0a\ \x6f\x62\x74\x61\x69\x6e\x0a\x6f\x62\x74\x61\x69\x6e\x69\x6e\x67\ \x0a\x6f\x64\x64\x0a\x6f\x66\x0a\x6f\x66\x66\x0a\x6f\x66\x66\x69\ \x63\x65\x0a\x6f\x66\x66\x73\x65\x74\x0a\x6f\x66\x66\x73\x65\x74\ \x73\x0a\x6f\x66\x74\x65\x6e\x0a\x6f\x6c\x64\x0a\x6f\x6e\x0a\x6f\ \x6e\x63\x65\x0a\x6f\x6e\x65\x0a\x6f\x6e\x65\x73\x0a\x6f\x6e\x6c\ \x69\x6e\x65\x0a\x6f\x6e\x6c\x79\x0a\x6f\x6e\x74\x6f\x0a\x6f\x70\ \x61\x63\x69\x74\x79\x0a\x6f\x70\x61\x71\x75\x65\x0a\x6f\x70\x65\ \x6e\x0a\x6f\x70\x65\x6e\x73\x0a\x6f\x70\x65\x72\x61\x74\x65\x73\ \x0a\x6f\x70\x65\x72\x61\x74\x69\x6e\x67\x0a\x6f\x70\x65\x72\x61\ \x74\x69\x6f\x6e\x0a\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x0a\ \x6f\x70\x65\x72\x61\x74\x6f\x72\x0a\x6f\x70\x70\x6f\x72\x74\x75\ \x6e\x69\x74\x79\x0a\x6f\x70\x70\x6f\x73\x65\x64\x0a\x6f\x70\x74\ \x69\x6d\x69\x7a\x65\x0a\x6f\x70\x74\x69\x6f\x6e\x0a\x6f\x70\x74\ \x69\x6f\x6e\x61\x6c\x6c\x79\x0a\x6f\x70\x74\x69\x6f\x6e\x73\x0a\ \x6f\x72\x0a\x4f\x52\x0a\x6f\x72\x64\x65\x72\x0a\x6f\x72\x64\x69\ \x6e\x61\x72\x79\x0a\x6f\x72\x69\x67\x69\x6e\x61\x6c\x0a\x6f\x72\ \x69\x67\x69\x6e\x61\x6c\x6c\x79\x0a\x4f\x73\x6c\x6f\x0a\x6f\x74\ \x68\x65\x72\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x0a\x6f\x75\ \x72\x0a\x6f\x75\x74\x0a\x6f\x75\x74\x65\x72\x0a\x6f\x75\x74\x67\ \x6f\x69\x6e\x67\x0a\x6f\x75\x74\x70\x75\x74\x0a\x6f\x75\x74\x73\ \x69\x64\x65\x0a\x6f\x76\x65\x72\x0a\x6f\x76\x65\x72\x63\x6f\x6d\ \x69\x6e\x67\x0a\x6f\x76\x65\x72\x72\x69\x64\x65\x73\x0a\x6f\x76\ \x65\x72\x76\x69\x65\x77\x0a\x6f\x77\x6e\x0a\x6f\x77\x6e\x65\x72\ \x0a\x6f\x77\x6e\x65\x72\x73\x0a\x70\x61\x63\x65\x0a\x50\x61\x63\ \x69\x66\x69\x63\x0a\x70\x61\x63\x6b\x61\x67\x65\x0a\x70\x61\x63\ \x6b\x61\x67\x65\x73\x0a\x70\x61\x63\x6b\x65\x74\x73\x0a\x70\x61\ \x67\x65\x0a\x70\x61\x67\x65\x73\x0a\x70\x61\x69\x6e\x74\x0a\x70\ \x61\x69\x6e\x74\x65\x64\x0a\x70\x61\x69\x6e\x74\x69\x6e\x67\x0a\ \x70\x61\x72\x61\x67\x72\x61\x70\x68\x0a\x70\x61\x72\x61\x67\x72\ \x61\x70\x68\x73\x0a\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x0a\ \x70\x61\x72\x65\x6e\x74\x0a\x50\x61\x72\x69\x73\x0a\x70\x61\x72\ \x73\x65\x0a\x70\x61\x72\x74\x0a\x70\x61\x72\x74\x69\x61\x6c\x0a\ \x70\x61\x72\x74\x69\x61\x6c\x6c\x79\x0a\x70\x61\x72\x74\x69\x63\ \x75\x6c\x61\x72\x0a\x70\x61\x72\x74\x6e\x65\x72\x73\x0a\x70\x61\ \x72\x74\x73\x0a\x70\x61\x72\x74\x79\x0a\x70\x61\x73\x73\x65\x64\ \x0a\x70\x61\x73\x73\x69\x6e\x67\x0a\x70\x61\x74\x63\x68\x65\x73\ \x0a\x70\x61\x74\x68\x0a\x70\x61\x74\x74\x65\x72\x6e\x0a\x70\x61\ \x74\x74\x65\x72\x6e\x73\x0a\x70\x61\x75\x73\x65\x0a\x50\x44\x46\ \x0a\x70\x65\x65\x6b\x0a\x70\x65\x6e\x64\x69\x6e\x67\x0a\x70\x65\ \x72\x66\x6f\x72\x6d\x0a\x70\x65\x72\x66\x6f\x72\x6d\x65\x64\x0a\ \x70\x65\x72\x66\x6f\x72\x6d\x73\x0a\x70\x65\x72\x6d\x69\x73\x73\ \x69\x6f\x6e\x0a\x70\x65\x72\x6d\x75\x74\x61\x74\x69\x6f\x6e\x73\ \x0a\x70\x65\x72\x73\x6f\x6e\x61\x6c\x0a\x70\x69\x63\x6b\x0a\x70\ \x69\x65\x0a\x70\x69\x70\x65\x0a\x70\x69\x78\x65\x6c\x0a\x70\x69\ \x78\x65\x6c\x73\x0a\x70\x6c\x61\x63\x65\x0a\x70\x6c\x61\x63\x65\ \x73\x0a\x70\x6c\x61\x6e\x6e\x69\x6e\x67\x0a\x70\x6c\x61\x74\x66\ \x6f\x72\x6d\x73\x0a\x70\x6c\x61\x79\x0a\x70\x6c\x61\x79\x65\x72\ \x73\x0a\x70\x6c\x61\x79\x69\x6e\x67\x0a\x70\x6c\x65\x61\x73\x65\ \x0a\x70\x6c\x65\x61\x73\x69\x6e\x67\x0a\x70\x6c\x75\x67\x69\x6e\ \x0a\x70\x6c\x75\x67\x69\x6e\x73\x0a\x70\x6c\x75\x73\x0a\x50\x4e\ \x47\x0a\x70\x6f\x69\x6e\x74\x65\x72\x0a\x70\x6f\x70\x0a\x70\x6f\ \x70\x75\x6c\x61\x72\x0a\x70\x6f\x70\x75\x6c\x61\x74\x65\x73\x0a\ \x70\x6f\x72\x74\x65\x72\x0a\x50\x6f\x72\x74\x65\x72\x0a\x70\x6f\ \x72\x74\x72\x61\x69\x74\x0a\x70\x6f\x73\x73\x69\x62\x69\x6c\x69\ \x74\x79\x0a\x70\x6f\x73\x73\x69\x62\x6c\x65\x0a\x70\x6f\x74\x65\ \x6e\x74\x69\x61\x6c\x0a\x70\x6f\x74\x65\x6e\x74\x69\x61\x6c\x6c\ \x79\x0a\x70\x6f\x77\x65\x72\x0a\x70\x6f\x77\x65\x72\x73\x0a\x70\ \x72\x65\x63\x65\x64\x65\x64\x0a\x70\x72\x65\x73\x65\x6e\x63\x65\ \x0a\x70\x72\x65\x73\x65\x6e\x74\x0a\x70\x72\x65\x76\x65\x6e\x74\ \x0a\x70\x72\x65\x76\x65\x6e\x74\x73\x0a\x70\x72\x65\x76\x69\x6f\ \x75\x73\x0a\x70\x72\x65\x76\x69\x6f\x75\x73\x6c\x79\x0a\x70\x72\ \x69\x6d\x61\x72\x69\x6c\x79\x0a\x70\x72\x69\x6d\x61\x72\x79\x0a\ \x70\x72\x69\x6d\x69\x74\x69\x76\x65\x73\x0a\x70\x72\x69\x6e\x74\ \x65\x64\x0a\x70\x72\x69\x6e\x74\x69\x6e\x67\x0a\x70\x72\x69\x6f\ \x72\x0a\x70\x72\x6f\x62\x61\x62\x6c\x79\x0a\x70\x72\x6f\x62\x6c\ \x65\x6d\x0a\x70\x72\x6f\x63\x65\x73\x73\x0a\x70\x72\x6f\x63\x65\ \x73\x73\x65\x73\x0a\x70\x72\x6f\x63\x65\x73\x73\x69\x6e\x67\x0a\ \x70\x72\x6f\x64\x75\x63\x65\x0a\x70\x72\x6f\x64\x75\x63\x65\x64\ \x0a\x70\x72\x6f\x64\x75\x63\x65\x73\x0a\x70\x72\x6f\x64\x75\x63\ \x74\x73\x0a\x70\x72\x6f\x67\x72\x61\x6d\x6d\x69\x6e\x67\x0a\x70\ \x72\x6f\x67\x72\x61\x6d\x73\x0a\x70\x72\x6f\x6a\x65\x63\x74\x0a\ \x70\x72\x6f\x6a\x65\x63\x74\x73\x0a\x70\x72\x6f\x6f\x66\x0a\x70\ \x72\x6f\x70\x65\x72\x0a\x70\x72\x6f\x70\x65\x72\x6c\x79\x0a\x70\ \x72\x6f\x70\x65\x72\x74\x69\x65\x73\x0a\x70\x72\x6f\x70\x65\x72\ \x74\x79\x0a\x70\x72\x6f\x70\x6f\x73\x65\x64\x0a\x70\x72\x6f\x70\ \x6f\x73\x69\x74\x69\x6f\x6e\x0a\x70\x72\x6f\x73\x0a\x70\x72\x6f\ \x74\x6f\x63\x6f\x6c\x73\x0a\x70\x72\x6f\x75\x64\x0a\x70\x72\x6f\ \x76\x69\x64\x65\x0a\x70\x72\x6f\x76\x69\x64\x65\x64\x0a\x70\x72\ \x6f\x76\x69\x64\x65\x73\x0a\x70\x72\x6f\x76\x69\x73\x69\x6f\x6e\ \x0a\x70\x72\x6f\x78\x79\x0a\x70\x75\x62\x6c\x69\x63\x0a\x70\x75\ \x62\x6c\x69\x73\x68\x65\x64\x0a\x70\x75\x6e\x63\x68\x0a\x70\x75\ \x6e\x63\x68\x65\x73\x0a\x70\x75\x72\x73\x75\x69\x6e\x67\x0a\x70\ \x75\x74\x0a\x51\x74\x0a\x51\x74\x6f\x70\x69\x61\x0a\x71\x75\x61\ \x6c\x69\x74\x79\x0a\x71\x75\x61\x72\x74\x65\x72\x0a\x71\x75\x61\ \x72\x74\x65\x72\x6c\x79\x0a\x71\x75\x65\x72\x69\x65\x64\x0a\x71\ \x75\x65\x72\x69\x65\x73\x0a\x71\x75\x65\x72\x79\x0a\x71\x75\x65\ \x73\x74\x69\x6f\x6e\x0a\x71\x75\x65\x73\x74\x69\x6f\x6e\x73\x0a\ \x72\x61\x64\x69\x61\x6c\x0a\x72\x61\x67\x67\x65\x64\x0a\x72\x61\ \x6e\x67\x65\x0a\x72\x61\x74\x65\x0a\x72\x61\x74\x65\x73\x0a\x72\ \x61\x74\x68\x65\x72\x0a\x72\x61\x74\x69\x6f\x0a\x72\x61\x77\x0a\ \x72\x65\x61\x64\x0a\x72\x65\x61\x64\x65\x72\x0a\x72\x65\x61\x64\ \x69\x6e\x67\x0a\x72\x65\x61\x64\x73\x0a\x72\x65\x61\x64\x79\x0a\ \x72\x65\x61\x6c\x0a\x72\x65\x61\x6c\x69\x73\x74\x69\x63\x0a\x72\ \x65\x61\x6c\x6c\x79\x0a\x72\x65\x63\x65\x69\x76\x65\x64\x0a\x72\ \x65\x63\x65\x6e\x74\x0a\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64\ \x0a\x72\x65\x63\x6f\x6d\x6d\x65\x6e\x64\x65\x64\x0a\x72\x65\x63\ \x6f\x6d\x70\x69\x6c\x65\x0a\x72\x65\x63\x74\x61\x6e\x67\x6c\x65\ \x0a\x72\x65\x63\x74\x61\x6e\x67\x75\x6c\x61\x72\x0a\x72\x65\x64\ \x0a\x72\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x0a\x72\x65\ \x64\x75\x63\x69\x6e\x67\x0a\x72\x65\x66\x65\x72\x65\x6e\x63\x65\ \x0a\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x73\x0a\x72\x65\x66\x6c\ \x65\x63\x74\x0a\x72\x65\x67\x61\x72\x64\x6c\x65\x73\x73\x0a\x72\ \x65\x67\x69\x6f\x6e\x61\x6c\x0a\x72\x65\x67\x69\x73\x74\x65\x72\ \x0a\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x0a\x72\x65\x67\x69\ \x73\x74\x72\x61\x74\x69\x6f\x6e\x0a\x72\x65\x69\x6d\x70\x6c\x65\ \x6d\x65\x6e\x74\x0a\x72\x65\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\ \x61\x74\x69\x6f\x6e\x0a\x72\x65\x69\x6d\x70\x6c\x65\x6d\x65\x6e\ \x74\x65\x64\x0a\x72\x65\x6c\x65\x61\x73\x65\x0a\x72\x65\x6c\x65\ \x61\x73\x65\x64\x0a\x72\x65\x6c\x65\x61\x73\x65\x73\x0a\x72\x65\ \x6c\x69\x61\x62\x6c\x65\x0a\x72\x65\x6c\x79\x0a\x72\x65\x6d\x61\ \x69\x6e\x73\x0a\x72\x65\x6d\x65\x6d\x62\x65\x72\x0a\x72\x65\x6d\ \x6f\x76\x65\x64\x0a\x72\x65\x6d\x6f\x76\x65\x73\x0a\x72\x65\x70\ \x65\x61\x74\x65\x64\x6c\x79\x0a\x72\x65\x70\x6c\x61\x63\x65\x0a\ \x72\x65\x70\x6f\x72\x74\x0a\x72\x65\x70\x72\x65\x73\x65\x6e\x74\ \x0a\x72\x65\x70\x72\x65\x73\x65\x6e\x74\x65\x64\x0a\x72\x65\x70\ \x72\x65\x73\x65\x6e\x74\x73\x0a\x72\x65\x70\x72\x6f\x64\x75\x63\ \x65\x64\x0a\x72\x65\x71\x75\x65\x73\x74\x65\x64\x0a\x72\x65\x71\ \x75\x69\x72\x65\x0a\x72\x65\x71\x75\x69\x72\x65\x64\x0a\x72\x65\ \x71\x75\x69\x72\x65\x73\x0a\x72\x65\x73\x65\x74\x74\x69\x6e\x67\ \x0a\x72\x65\x73\x69\x64\x65\x73\x0a\x72\x65\x73\x6f\x6c\x76\x65\ \x0a\x72\x65\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x72\x65\x73\x70\ \x65\x63\x74\x69\x76\x65\x6c\x79\x0a\x72\x65\x73\x70\x6f\x6e\x73\ \x65\x0a\x72\x65\x73\x74\x0a\x72\x65\x73\x74\x61\x72\x74\x0a\x72\ \x65\x73\x75\x6c\x74\x0a\x72\x65\x73\x75\x6c\x74\x69\x6e\x67\x0a\ \x72\x65\x73\x75\x6d\x65\x0a\x72\x65\x74\x75\x72\x6e\x0a\x72\x65\ \x74\x75\x72\x6e\x69\x6e\x67\x0a\x72\x65\x74\x75\x72\x6e\x73\x0a\ \x72\x65\x75\x73\x65\x0a\x72\x65\x76\x65\x61\x6c\x69\x6e\x67\x0a\ \x72\x69\x63\x68\x0a\x72\x69\x63\x68\x65\x73\x0a\x72\x69\x67\x68\ \x74\x0a\x72\x6f\x61\x64\x73\x68\x6f\x77\x0a\x72\x6f\x6c\x65\x0a\ \x52\x6f\x6d\x61\x6e\x0a\x72\x6f\x75\x74\x65\x72\x0a\x72\x6f\x75\ \x74\x65\x72\x73\x0a\x72\x75\x6c\x65\x0a\x72\x75\x6e\x0a\x72\x75\ \x6e\x6e\x65\x72\x0a\x72\x75\x6e\x6e\x65\x72\x73\x0a\x72\x75\x6e\ \x6e\x69\x6e\x67\x0a\x72\x75\x6e\x73\x0a\x73\x61\x6b\x65\x0a\x73\ \x61\x6c\x65\x73\x0a\x73\x61\x6c\x65\x73\x70\x65\x6f\x70\x6c\x65\ \x0a\x73\x61\x6d\x65\x0a\x73\x61\x6d\x70\x6c\x65\x0a\x53\x61\x6e\ \x20\x4a\x6f\x73\x65\x0a\x73\x61\x76\x65\x0a\x73\x61\x76\x65\x64\ \x0a\x73\x61\x76\x65\x73\x0a\x73\x61\x79\x0a\x73\x63\x61\x6c\x61\ \x62\x6c\x65\x0a\x73\x63\x61\x6c\x65\x0a\x73\x63\x61\x6e\x6c\x69\ \x6e\x65\x0a\x73\x63\x65\x6e\x65\x0a\x73\x63\x65\x6e\x65\x73\x0a\ \x73\x63\x68\x65\x64\x75\x6c\x65\x0a\x73\x63\x68\x6f\x6f\x6c\x0a\ \x73\x63\x72\x69\x70\x74\x0a\x73\x65\x61\x6d\x0a\x73\x65\x61\x6d\ \x6c\x65\x73\x73\x0a\x73\x65\x61\x72\x63\x68\x0a\x73\x65\x61\x72\ \x63\x68\x65\x73\x0a\x73\x65\x61\x72\x63\x68\x69\x6e\x67\x0a\x73\ \x65\x63\x6f\x6e\x64\x0a\x73\x65\x63\x6f\x6e\x64\x73\x0a\x73\x65\ \x63\x74\x69\x6f\x6e\x0a\x73\x65\x63\x74\x69\x6f\x6e\x73\x0a\x73\ \x65\x63\x75\x72\x69\x74\x79\x0a\x73\x65\x65\x0a\x73\x65\x65\x6e\ \x0a\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x0a\x73\x65\x6d\x69\x6e\ \x61\x72\x0a\x73\x65\x6d\x69\x6e\x61\x72\x73\x0a\x73\x65\x6e\x64\ \x69\x6e\x67\x0a\x73\x65\x70\x61\x72\x61\x74\x65\x64\x0a\x73\x65\ \x70\x61\x72\x61\x74\x65\x73\x0a\x73\x65\x72\x69\x65\x73\x0a\x73\ \x65\x72\x76\x69\x63\x65\x0a\x73\x65\x72\x76\x69\x63\x65\x73\x0a\ \x73\x65\x74\x0a\x73\x65\x74\x74\x69\x6e\x67\x0a\x73\x65\x74\x75\ \x70\x0a\x73\x65\x76\x65\x6e\x0a\x73\x65\x76\x65\x6e\x74\x68\x0a\ \x73\x65\x76\x65\x72\x61\x6c\x0a\x73\x68\x61\x64\x65\x0a\x73\x68\ \x61\x64\x6f\x77\x0a\x73\x68\x61\x70\x65\x0a\x73\x68\x61\x72\x65\ \x73\x0a\x73\x68\x61\x76\x65\x73\x0a\x73\x68\x69\x6e\x65\x0a\x73\ \x68\x6f\x72\x74\x65\x72\x0a\x73\x68\x6f\x75\x6c\x64\x0a\x73\x68\ \x6f\x77\x0a\x73\x68\x6f\x77\x6e\x0a\x73\x68\x6f\x77\x73\x0a\x73\ \x69\x64\x65\x0a\x73\x69\x67\x6e\x61\x6c\x0a\x73\x69\x67\x6e\x61\ \x6c\x73\x0a\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x0a\x73\x69\x67\ \x6e\x69\x66\x69\x63\x61\x6e\x74\x6c\x79\x0a\x73\x69\x6d\x69\x6c\ \x61\x72\x0a\x73\x69\x6d\x69\x6c\x61\x72\x69\x6c\x79\x0a\x73\x69\ \x6d\x69\x6c\x61\x72\x6c\x79\x0a\x73\x69\x6d\x70\x6c\x65\x0a\x73\ \x69\x6d\x70\x6c\x65\x73\x74\x0a\x73\x69\x6d\x70\x6c\x69\x66\x69\ \x65\x64\x0a\x73\x69\x6d\x70\x6c\x69\x66\x79\x69\x6e\x67\x0a\x73\ \x69\x6d\x70\x6c\x79\x0a\x73\x69\x6d\x75\x6c\x61\x74\x65\x0a\x73\ \x69\x6d\x75\x6c\x74\x61\x6e\x65\x6f\x75\x73\x0a\x73\x69\x6e\x63\ \x65\x0a\x73\x69\x6e\x67\x6c\x65\x0a\x73\x69\x7a\x65\x0a\x73\x69\ \x7a\x65\x73\x0a\x73\x6c\x69\x67\x68\x74\x6c\x79\x0a\x73\x6c\x6f\ \x70\x65\x0a\x73\x6c\x6f\x74\x0a\x73\x6c\x6f\x77\x69\x6e\x67\x0a\ \x73\x6d\x61\x6c\x6c\x0a\x73\x6d\x61\x6c\x6c\x65\x72\x0a\x73\x6f\ \x0a\x73\x6f\x63\x6b\x65\x74\x0a\x73\x6f\x63\x6b\x65\x74\x73\x0a\ \x73\x6f\x66\x74\x77\x61\x72\x65\x0a\x73\x6f\x6c\x75\x74\x69\x6f\ \x6e\x73\x0a\x73\x6f\x6c\x76\x65\x64\x0a\x73\x6f\x6d\x65\x0a\x73\ \x6f\x6f\x6e\x0a\x73\x6f\x72\x74\x0a\x73\x6f\x72\x74\x69\x6e\x67\ \x0a\x73\x6f\x75\x72\x63\x65\x0a\x73\x6f\x75\x72\x63\x65\x73\x0a\ \x73\x6f\x75\x74\x68\x0a\x73\x70\x61\x63\x65\x0a\x73\x70\x65\x63\ \x69\x61\x6c\x0a\x73\x70\x65\x63\x69\x61\x6c\x69\x7a\x65\x64\x0a\ \x73\x70\x65\x63\x69\x66\x69\x63\x0a\x73\x70\x65\x63\x69\x66\x69\ \x63\x61\x6c\x6c\x79\x0a\x73\x70\x65\x63\x69\x66\x69\x63\x61\x74\ \x69\x6f\x6e\x0a\x73\x70\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\ \x6e\x73\x0a\x73\x70\x65\x63\x69\x66\x69\x65\x64\x0a\x73\x70\x65\ \x63\x69\x66\x79\x0a\x73\x70\x65\x65\x64\x0a\x73\x70\x65\x6e\x64\ \x0a\x73\x70\x6c\x69\x74\x0a\x53\x51\x4c\x0a\x73\x74\x61\x6e\x64\ \x61\x72\x64\x0a\x73\x74\x61\x6e\x64\x61\x72\x64\x73\x0a\x73\x74\ \x61\x72\x74\x0a\x73\x74\x61\x72\x74\x73\x0a\x73\x74\x61\x72\x76\ \x65\x0a\x73\x74\x61\x74\x65\x0a\x73\x74\x61\x74\x65\x73\x0a\x73\ \x74\x61\x74\x69\x63\x0a\x73\x74\x65\x61\x64\x79\x0a\x73\x74\x65\ \x61\x6c\x69\x6e\x67\x0a\x73\x74\x65\x70\x0a\x73\x74\x69\x6c\x6c\ \x0a\x73\x74\x6f\x70\x0a\x73\x74\x6f\x70\x77\x61\x74\x63\x68\x0a\ \x73\x74\x6f\x72\x65\x0a\x73\x74\x6f\x72\x65\x64\x0a\x73\x74\x6f\ \x72\x65\x73\x0a\x73\x74\x72\x61\x69\x67\x68\x74\x66\x6f\x72\x77\ \x61\x72\x64\x0a\x73\x74\x72\x65\x61\x6d\x0a\x73\x74\x72\x69\x6e\ \x67\x0a\x73\x74\x72\x69\x6e\x67\x73\x0a\x73\x74\x72\x75\x63\x74\ \x75\x72\x65\x0a\x73\x74\x72\x75\x63\x74\x75\x72\x65\x64\x0a\x73\ \x74\x72\x75\x74\x0a\x73\x74\x79\x6c\x65\x0a\x73\x74\x79\x6c\x65\ \x73\x0a\x73\x74\x79\x6c\x69\x6e\x67\x0a\x73\x75\x62\x63\x6c\x61\ \x73\x73\x0a\x73\x75\x62\x63\x6c\x61\x73\x73\x69\x6e\x67\x0a\x73\ \x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x0a\x73\x75\x62\x73\ \x65\x63\x74\x69\x6f\x6e\x0a\x73\x75\x62\x73\x65\x63\x74\x69\x6f\ \x6e\x73\x0a\x73\x75\x63\x63\x65\x65\x64\x73\x0a\x73\x75\x63\x63\ \x65\x73\x73\x0a\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x0a\x73\ \x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x0a\x73\x75\x63\x68\ \x0a\x73\x75\x67\x67\x65\x73\x74\x69\x6f\x6e\x0a\x73\x75\x67\x67\ \x65\x73\x74\x69\x6f\x6e\x73\x0a\x73\x75\x69\x74\x61\x62\x6c\x65\ \x0a\x73\x75\x70\x70\x6f\x72\x74\x0a\x73\x75\x70\x70\x6f\x72\x74\ \x65\x64\x0a\x73\x75\x70\x70\x6f\x72\x74\x73\x0a\x73\x75\x70\x70\ \x6f\x73\x65\x0a\x73\x75\x70\x70\x6f\x73\x65\x73\x0a\x73\x75\x72\ \x65\x0a\x73\x77\x69\x74\x63\x68\x0a\x73\x77\x69\x74\x63\x68\x65\ \x73\x0a\x73\x79\x6d\x62\x6f\x6c\x0a\x73\x79\x6d\x62\x6f\x6c\x73\ \x0a\x73\x79\x6e\x6f\x6e\x79\x6d\x73\x0a\x73\x79\x73\x74\x65\x6d\ \x0a\x73\x79\x73\x74\x65\x6d\x73\x0a\x74\x61\x62\x6c\x65\x0a\x74\ \x61\x62\x6c\x65\x73\x0a\x74\x61\x67\x73\x0a\x74\x61\x6b\x65\x0a\ \x74\x61\x6b\x65\x73\x0a\x74\x61\x70\x0a\x74\x61\x72\x67\x65\x74\ \x0a\x74\x61\x72\x67\x65\x74\x73\x0a\x54\x43\x50\x0a\x74\x65\x61\ \x6d\x0a\x74\x65\x63\x68\x6e\x69\x71\x75\x65\x0a\x74\x65\x63\x68\ \x6e\x6f\x6c\x6f\x67\x79\x0a\x74\x65\x6d\x70\x6c\x61\x74\x65\x0a\ \x74\x65\x6d\x70\x6c\x61\x74\x65\x73\x0a\x54\x65\x78\x61\x73\x0a\ \x74\x65\x78\x74\x0a\x74\x68\x61\x6e\x0a\x74\x68\x61\x74\x0a\x74\ \x68\x65\x0a\x74\x68\x65\x69\x72\x0a\x74\x68\x65\x6d\x0a\x74\x68\ \x65\x6e\x0a\x74\x68\x65\x6f\x72\x65\x6d\x0a\x74\x68\x65\x72\x65\ \x0a\x74\x68\x65\x73\x65\x0a\x74\x68\x65\x79\x0a\x74\x68\x69\x63\ \x6b\x6e\x65\x73\x73\x0a\x74\x68\x69\x6e\x0a\x74\x68\x69\x72\x64\ \x0a\x74\x68\x69\x73\x0a\x74\x68\x6f\x73\x65\x0a\x74\x68\x72\x65\ \x65\x0a\x74\x68\x72\x6f\x74\x74\x6c\x69\x6e\x67\x0a\x74\x68\x72\ \x6f\x75\x67\x68\x0a\x74\x69\x67\x68\x74\x6c\x79\x0a\x74\x69\x6d\ \x65\x0a\x74\x69\x6d\x65\x72\x0a\x74\x69\x6d\x65\x73\x0a\x74\x69\ \x6e\x79\x0a\x74\x69\x70\x73\x0a\x74\x69\x74\x6c\x65\x0a\x74\x69\ \x74\x6c\x65\x73\x0a\x74\x6f\x0a\x74\x6f\x67\x65\x74\x68\x65\x72\ \x0a\x74\x6f\x6f\x0a\x74\x6f\x70\x0a\x74\x6f\x72\x72\x65\x6e\x74\ \x0a\x74\x6f\x74\x61\x6c\x0a\x74\x6f\x75\x72\x0a\x74\x72\x61\x64\ \x65\x6d\x61\x72\x6b\x73\x0a\x74\x72\x61\x66\x66\x69\x63\x0a\x74\ \x72\x61\x69\x6e\x69\x6e\x67\x0a\x74\x72\x61\x6e\x73\x61\x63\x74\ \x69\x6f\x6e\x0a\x74\x72\x61\x6e\x73\x66\x65\x72\x0a\x74\x72\x61\ \x6e\x73\x66\x65\x72\x72\x65\x64\x0a\x74\x72\x61\x6e\x73\x66\x65\ \x72\x72\x69\x6e\x67\x0a\x74\x72\x61\x6e\x73\x66\x65\x72\x73\x0a\ \x74\x72\x61\x6e\x73\x6c\x75\x63\x65\x6e\x63\x79\x0a\x74\x72\x61\ \x6e\x73\x6c\x75\x63\x65\x6e\x74\x0a\x74\x72\x61\x6e\x73\x70\x61\ \x72\x65\x6e\x63\x79\x0a\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\ \x74\x0a\x74\x72\x61\x76\x65\x6c\x0a\x74\x72\x61\x76\x65\x6c\x65\ \x64\x0a\x74\x72\x75\x65\x0a\x74\x72\x79\x0a\x74\x75\x72\x6e\x0a\ \x74\x77\x69\x63\x65\x0a\x74\x77\x6f\x0a\x74\x79\x70\x65\x0a\x74\ \x79\x70\x65\x64\x0a\x74\x79\x70\x69\x63\x61\x6c\x0a\x74\x79\x70\ \x69\x63\x61\x6c\x6c\x79\x0a\x75\x6e\x61\x62\x6c\x65\x0a\x75\x6e\ \x64\x65\x72\x0a\x75\x6e\x64\x65\x72\x6c\x79\x69\x6e\x67\x0a\x75\ \x6e\x64\x65\x72\x73\x74\x61\x6e\x64\x69\x6e\x67\x0a\x75\x6e\x64\ \x6f\x65\x73\x0a\x75\x6e\x69\x71\x75\x65\x0a\x75\x6e\x69\x74\x65\ \x64\x0a\x75\x6e\x6c\x69\x6b\x65\x0a\x75\x6e\x70\x61\x63\x6b\x0a\ \x75\x6e\x73\x69\x67\x6e\x65\x64\x0a\x75\x6e\x74\x69\x6c\x0a\x75\ \x6e\x74\x6f\x75\x63\x68\x65\x64\x0a\x75\x70\x0a\x75\x70\x64\x61\ \x74\x65\x0a\x75\x70\x64\x61\x74\x65\x64\x0a\x75\x70\x64\x61\x74\ \x65\x73\x0a\x75\x70\x6c\x6f\x61\x64\x0a\x75\x70\x6c\x6f\x61\x64\ \x69\x6e\x67\x0a\x75\x70\x6c\x6f\x61\x64\x73\x0a\x75\x73\x0a\x75\ \x73\x65\x0a\x75\x73\x65\x64\x0a\x75\x73\x65\x66\x75\x6c\x0a\x75\ \x73\x65\x72\x0a\x75\x73\x65\x72\x73\x0a\x75\x73\x65\x73\x0a\x75\ \x73\x69\x6e\x67\x0a\x75\x73\x75\x61\x6c\x0a\x75\x73\x75\x61\x6c\ \x6c\x79\x0a\x76\x61\x6c\x69\x64\x0a\x76\x61\x6c\x75\x65\x0a\x76\ \x61\x6c\x75\x65\x73\x0a\x76\x61\x72\x69\x61\x62\x6c\x65\x0a\x76\ \x61\x72\x69\x61\x74\x69\x6f\x6e\x0a\x76\x61\x72\x69\x65\x74\x79\ \x0a\x76\x61\x72\x69\x6f\x75\x73\x0a\x76\x65\x63\x74\x6f\x72\x0a\ \x76\x65\x6e\x74\x75\x72\x69\x6e\x67\x0a\x76\x65\x72\x69\x66\x79\ \x69\x6e\x67\x0a\x76\x65\x72\x73\x61\x0a\x76\x65\x72\x73\x69\x6f\ \x6e\x0a\x76\x65\x72\x73\x69\x6f\x6e\x73\x0a\x76\x65\x72\x74\x69\ \x63\x61\x6c\x0a\x76\x65\x72\x79\x0a\x76\x69\x61\x0a\x76\x69\x63\ \x65\x0a\x76\x69\x72\x74\x75\x61\x6c\x0a\x76\x69\x73\x75\x61\x6c\ \x0a\x76\x6f\x69\x64\x0a\x56\x50\x0a\x77\x61\x69\x74\x69\x6e\x67\ \x0a\x57\x61\x6c\x65\x73\x0a\x77\x61\x6e\x74\x0a\x77\x61\x6e\x74\ \x73\x0a\x77\x61\x73\x0a\x77\x61\x79\x0a\x77\x61\x79\x73\x0a\x77\ \x65\x0a\x77\x65\x62\x0a\x77\x65\x62\x73\x69\x74\x65\x0a\x77\x65\ \x6c\x6c\x0a\x77\x65\x72\x65\x0a\x77\x68\x61\x74\x0a\x77\x68\x65\ \x6e\x0a\x77\x68\x65\x6e\x65\x76\x65\x72\x0a\x77\x68\x65\x72\x65\ \x0a\x77\x68\x65\x74\x68\x65\x72\x0a\x77\x68\x69\x63\x68\x0a\x77\ \x68\x69\x6c\x65\x0a\x77\x68\x69\x73\x74\x6c\x65\x0a\x77\x68\x69\ \x74\x65\x0a\x77\x68\x6f\x0a\x77\x68\x6f\x6c\x65\x0a\x77\x68\x79\ \x0a\x77\x69\x64\x67\x65\x74\x0a\x77\x69\x64\x67\x65\x74\x73\x0a\ \x77\x69\x64\x74\x68\x0a\x77\x69\x64\x74\x68\x73\x0a\x77\x69\x6c\ \x6c\x0a\x77\x69\x6e\x64\x6f\x77\x0a\x77\x69\x6e\x64\x6f\x77\x73\ \x0a\x77\x69\x73\x68\x0a\x77\x69\x74\x68\x0a\x77\x69\x74\x68\x6f\ \x75\x74\x0a\x77\x6f\x72\x64\x0a\x77\x6f\x72\x64\x73\x0a\x77\x6f\ \x72\x6b\x0a\x77\x6f\x72\x6b\x69\x6e\x67\x0a\x77\x6f\x72\x6b\x73\ \x0a\x77\x6f\x75\x6c\x64\x0a\x77\x72\x61\x70\x0a\x77\x72\x61\x70\ \x70\x65\x72\x0a\x77\x72\x69\x74\x65\x0a\x77\x72\x69\x74\x65\x73\ \x0a\x77\x72\x69\x74\x69\x6e\x67\x0a\x77\x72\x69\x74\x69\x6e\x67\ \x73\x0a\x77\x72\x69\x74\x74\x65\x6e\x0a\x58\x0a\x58\x31\x31\x0a\ \x58\x4f\x52\x0a\x79\x65\x61\x72\x0a\x79\x65\x61\x72\x73\x0a\x79\ \x65\x73\x0a\x79\x6f\x75\x0a\x79\x6f\x75\x72\x0a\x7a\x65\x72\x6f\ \x0a\ " qt_resource_name = "\ \x00\x09\ \x0a\x6c\x78\x43\ \x00\x72\ \x00\x65\x00\x73\x00\x6f\x00\x75\x00\x72\x00\x63\x00\x65\x00\x73\ \x00\x0c\ \x0f\x6a\x4d\x94\ \x00\x77\ \x00\x6f\x00\x72\x00\x64\x00\x6c\x00\x69\x00\x73\x00\x74\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x18\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/tools/customcompleter/customcompleter_rc3.py0000644000076500000240000013322012536324427026526 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:49:00 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x2b\x52\ \x41\ \x34\x0a\x61\x62\x6c\x65\x0a\x61\x62\x6f\x75\x74\x0a\x61\x62\x6f\ \x76\x65\x0a\x61\x62\x73\x65\x6e\x63\x65\x0a\x61\x62\x73\x6f\x6c\ \x75\x74\x65\x6c\x79\x0a\x61\x62\x73\x74\x72\x61\x63\x74\x0a\x61\ \x63\x63\x65\x73\x73\x0a\x61\x63\x63\x6f\x72\x64\x69\x6e\x67\x0a\ \x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x64\x0a\x61\x63\x68\x69\ \x65\x76\x65\x0a\x61\x63\x68\x69\x65\x76\x69\x6e\x67\x0a\x61\x63\ \x74\x69\x76\x69\x74\x79\x0a\x61\x63\x74\x73\x0a\x61\x63\x74\x75\ \x61\x6c\x0a\x61\x63\x74\x75\x61\x6c\x6c\x79\x0a\x61\x64\x64\x0a\ \x61\x64\x64\x65\x64\x0a\x61\x64\x64\x69\x6e\x67\x0a\x61\x64\x64\ \x69\x74\x69\x6f\x6e\x0a\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\ \x6c\x79\x0a\x61\x64\x64\x69\x74\x69\x6f\x6e\x73\x0a\x61\x64\x64\ \x72\x65\x73\x73\x65\x73\x0a\x61\x64\x6a\x75\x73\x74\x0a\x61\x64\ \x6a\x75\x73\x74\x6d\x65\x6e\x74\x73\x0a\x61\x64\x76\x61\x6e\x63\ \x65\x64\x0a\x61\x64\x76\x69\x63\x65\x0a\x61\x66\x74\x65\x72\x0a\ \x61\x66\x74\x65\x72\x77\x61\x72\x64\x73\x0a\x61\x67\x61\x69\x6e\ \x0a\x61\x67\x65\x6e\x64\x61\x0a\x61\x69\x6d\x0a\x61\x6c\x67\x6f\ \x72\x69\x74\x68\x6d\x0a\x61\x6c\x6c\x0a\x61\x6c\x6c\x6f\x63\x61\ \x74\x65\x64\x0a\x61\x6c\x6c\x6f\x77\x0a\x61\x6c\x6c\x6f\x77\x65\ \x64\x0a\x61\x6c\x6c\x6f\x77\x69\x6e\x67\x0a\x61\x6c\x6c\x6f\x77\ \x73\x0a\x61\x6c\x6f\x6e\x67\x0a\x61\x6c\x70\x68\x61\x0a\x61\x6c\ \x72\x65\x61\x64\x79\x0a\x61\x6c\x73\x6f\x0a\x61\x6c\x74\x65\x72\ \x6e\x61\x74\x69\x76\x65\x0a\x61\x6c\x74\x65\x72\x6e\x61\x74\x69\ \x76\x65\x6c\x79\x0a\x61\x6c\x74\x68\x6f\x75\x67\x68\x0a\x41\x6d\ \x65\x72\x69\x63\x61\x6e\x0a\x61\x6e\x0a\x61\x6e\x64\x0a\x61\x6e\ \x6e\x6f\x75\x6e\x63\x65\x64\x0a\x61\x6e\x6e\x6f\x79\x0a\x61\x6e\ \x6f\x74\x68\x65\x72\x0a\x61\x6e\x73\x77\x65\x72\x0a\x61\x6e\x73\ \x77\x65\x72\x73\x0a\x61\x6e\x79\x0a\x61\x6e\x79\x74\x68\x69\x6e\ \x67\x0a\x61\x6e\x79\x77\x61\x79\x0a\x61\x70\x61\x72\x74\x0a\x41\ \x50\x49\x0a\x61\x70\x70\x65\x61\x72\x0a\x61\x70\x70\x65\x61\x72\ \x73\x0a\x61\x70\x70\x65\x6e\x64\x69\x63\x65\x73\x0a\x61\x70\x70\ \x65\x6e\x64\x69\x78\x0a\x61\x70\x70\x65\x6e\x64\x73\x0a\x61\x70\ \x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x0a\x61\x70\x70\x6c\x69\x63\ \x61\x74\x69\x6f\x6e\x73\x0a\x61\x70\x70\x6c\x79\x0a\x61\x70\x70\ \x72\x6f\x61\x63\x68\x0a\x61\x70\x70\x72\x6f\x61\x63\x68\x65\x73\ \x0a\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x0a\x41\x72\x61\ \x62\x69\x63\x0a\x61\x72\x62\x69\x74\x72\x61\x72\x79\x0a\x61\x72\ \x65\x0a\x61\x72\x65\x61\x73\x0a\x41\x52\x47\x42\x0a\x61\x72\x67\ \x75\x6d\x65\x6e\x74\x0a\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x0a\ \x61\x72\x6f\x75\x6e\x64\x0a\x61\x72\x72\x61\x6e\x67\x65\x6d\x65\ \x6e\x74\x73\x0a\x61\x72\x72\x69\x76\x65\x0a\x61\x72\x72\x69\x76\ \x65\x64\x0a\x41\x72\x74\x68\x75\x72\x0a\x61\x72\x74\x69\x63\x6c\ \x65\x0a\x61\x72\x74\x69\x63\x6c\x65\x73\x0a\x61\x73\x0a\x61\x73\ \x6b\x65\x64\x0a\x61\x73\x70\x65\x63\x74\x73\x0a\x61\x73\x73\x75\ \x6d\x65\x0a\x61\x74\x0a\x61\x74\x74\x61\x63\x68\x6d\x65\x6e\x74\ \x0a\x61\x74\x74\x65\x6d\x70\x74\x0a\x61\x74\x74\x65\x6d\x70\x74\ \x69\x6e\x67\x0a\x61\x74\x74\x65\x6e\x64\x0a\x61\x74\x74\x65\x6e\ \x64\x65\x65\x73\x0a\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x0a\ \x61\x75\x74\x68\x6f\x72\x73\x0a\x61\x76\x61\x69\x6c\x61\x62\x69\ \x6c\x69\x74\x79\x0a\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x0a\x61\ \x76\x6f\x69\x64\x0a\x61\x77\x61\x79\x0a\x62\x61\x63\x6b\x0a\x62\ \x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x0a\x62\x61\x63\x6b\x67\x72\ \x6f\x75\x6e\x64\x73\x0a\x62\x61\x6e\x64\x77\x69\x64\x74\x68\x0a\ \x62\x61\x6e\x64\x77\x69\x64\x74\x68\x73\x0a\x42\x61\x72\x63\x65\ \x6c\x6f\x6e\x61\x0a\x62\x61\x73\x65\x0a\x62\x61\x73\x65\x64\x0a\ \x62\x61\x73\x69\x63\x0a\x62\x61\x73\x69\x63\x61\x6c\x6c\x79\x0a\ \x62\x61\x73\x69\x63\x73\x0a\x62\x65\x0a\x62\x65\x63\x61\x75\x73\ \x65\x0a\x62\x65\x65\x6e\x0a\x62\x65\x66\x6f\x72\x65\x0a\x62\x65\ \x68\x61\x76\x65\x0a\x62\x65\x68\x61\x76\x69\x6f\x72\x0a\x62\x65\ \x68\x69\x6e\x64\x0a\x62\x65\x69\x6e\x67\x0a\x62\x65\x6c\x6f\x77\ \x0a\x62\x65\x6e\x65\x66\x69\x74\x73\x0a\x42\x65\x72\x6b\x65\x6c\ \x65\x79\x0a\x62\x65\x74\x77\x65\x65\x6e\x0a\x62\x69\x74\x0a\x62\ \x69\x74\x73\x0a\x62\x69\x74\x77\x69\x73\x65\x0a\x62\x6c\x61\x63\ \x6b\x0a\x62\x6c\x65\x6e\x64\x65\x64\x0a\x62\x6c\x65\x6e\x64\x69\ \x6e\x67\x0a\x62\x6c\x65\x6e\x64\x73\x0a\x62\x6c\x6f\x63\x6b\x0a\ \x62\x6c\x75\x65\x0a\x42\x4d\x50\x0a\x62\x6f\x64\x79\x0a\x62\x6f\ \x6c\x64\x0a\x62\x6f\x6f\x6b\x69\x6e\x67\x0a\x62\x6f\x6f\x6c\x0a\ \x42\x6f\x73\x74\x6f\x6e\x0a\x62\x6f\x74\x68\x0a\x62\x6f\x74\x74\ \x6f\x6d\x0a\x62\x6f\x78\x0a\x62\x6f\x78\x65\x73\x0a\x62\x72\x61\ \x63\x65\x73\x0a\x62\x72\x65\x61\x6b\x0a\x62\x72\x65\x61\x6b\x73\ \x0a\x62\x72\x6f\x61\x64\x0a\x62\x72\x6f\x77\x73\x65\x72\x73\x0a\ \x62\x75\x66\x66\x65\x72\x0a\x62\x75\x66\x66\x65\x72\x73\x0a\x62\ \x75\x69\x6c\x64\x0a\x62\x75\x69\x6c\x64\x73\x0a\x62\x75\x69\x6c\ \x74\x0a\x62\x75\x6e\x64\x6c\x65\x64\x0a\x62\x75\x72\x64\x65\x6e\ \x73\x0a\x62\x75\x73\x79\x0a\x62\x75\x74\x0a\x62\x79\x0a\x62\x79\ \x70\x61\x73\x73\x0a\x62\x79\x70\x61\x73\x73\x69\x6e\x67\x0a\x62\ \x79\x74\x65\x73\x0a\x63\x61\x6c\x65\x6e\x64\x61\x72\x0a\x63\x61\ \x6c\x6c\x0a\x63\x61\x6c\x6c\x65\x64\x0a\x63\x61\x6c\x6c\x69\x6e\ \x67\x0a\x63\x61\x6c\x6c\x73\x0a\x43\x61\x6d\x62\x72\x69\x64\x67\ \x65\x0a\x63\x61\x6e\x0a\x63\x61\x6e\x6f\x6e\x69\x63\x61\x6c\x0a\ \x63\x61\x6e\x6f\x6e\x69\x63\x61\x6c\x69\x73\x65\x64\x0a\x63\x61\ \x70\x0a\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x69\x65\x73\x0a\x63\ \x61\x70\x61\x63\x69\x74\x79\x0a\x63\x61\x70\x74\x69\x6f\x6e\x0a\ \x63\x61\x72\x64\x0a\x63\x61\x72\x65\x0a\x63\x61\x73\x65\x0a\x63\ \x61\x73\x74\x0a\x63\x61\x74\x63\x68\x0a\x63\x61\x75\x73\x69\x6e\ \x67\x0a\x63\x65\x6e\x74\x72\x65\x0a\x63\x65\x72\x74\x61\x69\x6e\ \x0a\x63\x68\x61\x6c\x6c\x65\x6e\x67\x65\x73\x0a\x63\x68\x61\x6e\ \x63\x65\x0a\x63\x68\x61\x6e\x67\x65\x0a\x63\x68\x61\x6e\x67\x65\ \x73\x0a\x63\x68\x61\x6e\x67\x69\x6e\x67\x0a\x63\x68\x61\x6e\x6e\ \x65\x6c\x0a\x63\x68\x61\x6e\x6e\x65\x6c\x73\x0a\x63\x68\x61\x70\ \x74\x65\x72\x0a\x63\x68\x61\x72\x0a\x63\x68\x61\x72\x74\x0a\x63\ \x68\x61\x72\x74\x73\x0a\x63\x68\x65\x63\x6b\x0a\x63\x68\x65\x63\ \x6b\x73\x0a\x43\x68\x69\x63\x61\x67\x6f\x0a\x63\x68\x6f\x73\x65\ \x6e\x0a\x63\x68\x75\x6e\x6b\x0a\x63\x69\x72\x63\x6c\x65\x0a\x63\ \x69\x74\x61\x74\x69\x6f\x6e\x0a\x63\x69\x74\x79\x0a\x63\x6c\x61\ \x69\x6d\x0a\x63\x6c\x61\x73\x73\x0a\x63\x6c\x61\x73\x73\x65\x73\ \x0a\x63\x6c\x61\x75\x73\x65\x0a\x63\x6c\x61\x75\x73\x65\x73\x0a\ \x63\x6c\x65\x61\x72\x0a\x63\x6c\x65\x61\x72\x69\x6e\x67\x0a\x63\ \x6c\x69\x65\x6e\x74\x0a\x63\x6c\x69\x65\x6e\x74\x73\x0a\x63\x6c\ \x6f\x73\x65\x0a\x63\x6c\x6f\x73\x65\x64\x0a\x63\x6f\x64\x65\x0a\ \x63\x6f\x6c\x6f\x6e\x0a\x63\x6f\x6c\x6f\x72\x0a\x63\x6f\x6c\x6f\ \x72\x69\x7a\x65\x0a\x63\x6f\x6c\x6f\x72\x69\x7a\x65\x72\x0a\x63\ \x6f\x6c\x6f\x72\x73\x0a\x63\x6f\x6c\x6f\x75\x72\x0a\x63\x6f\x6c\ \x75\x6d\x6e\x0a\x63\x6f\x6c\x75\x6d\x6e\x73\x0a\x63\x6f\x6d\x62\ \x69\x6e\x65\x0a\x63\x6f\x6d\x62\x69\x6e\x65\x64\x0a\x63\x6f\x6d\ \x62\x69\x6e\x65\x73\x0a\x63\x6f\x6d\x62\x69\x6e\x69\x6e\x67\x0a\ \x63\x6f\x6d\x65\x73\x0a\x63\x6f\x6d\x6d\x61\x6e\x64\x0a\x63\x6f\ \x6d\x6d\x61\x6e\x64\x73\x0a\x63\x6f\x6d\x6d\x65\x6e\x74\x0a\x63\ \x6f\x6d\x6d\x6f\x6e\x0a\x63\x6f\x6d\x6d\x75\x6e\x69\x63\x61\x74\ \x65\x0a\x63\x6f\x6d\x6d\x75\x6e\x69\x74\x79\x0a\x63\x6f\x6d\x70\ \x69\x6c\x65\x64\x0a\x63\x6f\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x0a\ \x63\x6f\x6d\x70\x6c\x65\x74\x65\x0a\x63\x6f\x6d\x70\x6c\x65\x74\ \x65\x6c\x79\x0a\x63\x6f\x6d\x70\x6c\x65\x74\x65\x6e\x65\x73\x73\ \x0a\x63\x6f\x6d\x70\x6c\x65\x74\x65\x73\x0a\x63\x6f\x6d\x70\x6c\ \x65\x74\x69\x6f\x6e\x0a\x63\x6f\x6d\x70\x6c\x65\x78\x0a\x63\x6f\ \x6d\x70\x6c\x69\x61\x6e\x74\x0a\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\ \x74\x0a\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x0a\x63\x6f\x6d\ \x70\x6f\x73\x69\x74\x69\x6e\x67\x0a\x63\x6f\x6d\x70\x6f\x73\x69\ \x74\x69\x6f\x6e\x0a\x63\x6f\x6d\x70\x72\x65\x73\x73\x69\x6f\x6e\ \x0a\x63\x6f\x6d\x70\x75\x74\x61\x74\x69\x6f\x6e\x0a\x63\x6f\x6d\ \x70\x75\x74\x65\x72\x0a\x63\x6f\x6e\x63\x65\x70\x74\x73\x0a\x63\ \x6f\x6e\x63\x6c\x75\x73\x69\x6f\x6e\x0a\x63\x6f\x6e\x63\x75\x72\ \x72\x65\x6e\x74\x0a\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\ \x65\x0a\x63\x6f\x6e\x67\x65\x73\x74\x65\x64\x0a\x63\x6f\x6e\x67\ \x65\x73\x74\x69\x6f\x6e\x0a\x63\x6f\x6e\x6e\x65\x63\x74\x0a\x63\ \x6f\x6e\x6e\x65\x63\x74\x65\x64\x0a\x63\x6f\x6e\x6e\x65\x63\x74\ \x69\x6f\x6e\x0a\x63\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x73\x0a\ \x63\x6f\x6e\x73\x0a\x63\x6f\x6e\x73\x69\x64\x65\x72\x0a\x63\x6f\ \x6e\x73\x69\x73\x74\x69\x6e\x67\x0a\x63\x6f\x6e\x73\x69\x73\x74\ \x73\x0a\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x0a\x63\x6f\x6e\x73\ \x74\x72\x75\x63\x74\x65\x64\x0a\x63\x6f\x6e\x73\x74\x72\x75\x63\ \x74\x69\x6e\x67\x0a\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\ \x0a\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x73\x0a\x63\x6f\x6e\x73\ \x75\x6d\x65\x0a\x63\x6f\x6e\x74\x61\x63\x74\x0a\x63\x6f\x6e\x74\ \x61\x69\x6e\x0a\x63\x6f\x6e\x74\x61\x69\x6e\x69\x6e\x67\x0a\x63\ \x6f\x6e\x74\x61\x69\x6e\x73\x0a\x63\x6f\x6e\x74\x65\x6e\x74\x73\ \x0a\x63\x6f\x6e\x74\x65\x6e\x74\x73\x0a\x63\x6f\x6e\x74\x69\x6e\ \x75\x65\x0a\x63\x6f\x6e\x74\x69\x6e\x75\x65\x64\x0a\x63\x6f\x6e\ \x74\x72\x69\x62\x75\x74\x6f\x72\x73\x0a\x63\x6f\x6e\x74\x72\x6f\ \x6c\x0a\x63\x6f\x6e\x74\x72\x6f\x6c\x6c\x65\x64\x0a\x63\x6f\x6e\ \x74\x72\x6f\x6c\x6c\x65\x72\x0a\x63\x6f\x6e\x74\x72\x6f\x6c\x6c\ \x65\x72\x0a\x63\x6f\x6e\x74\x72\x6f\x6c\x6c\x69\x6e\x67\x0a\x63\ \x6f\x6e\x74\x72\x6f\x6c\x73\x0a\x63\x6f\x6e\x74\x72\x6f\x6c\x73\ \x0a\x63\x6f\x6e\x76\x65\x6e\x74\x69\x6f\x6e\x73\x0a\x63\x6f\x6f\ \x6b\x0a\x63\x6f\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x0a\x63\x6f\ \x70\x79\x0a\x63\x6f\x70\x79\x72\x69\x67\x68\x74\x0a\x63\x6f\x72\ \x65\x0a\x63\x6f\x72\x65\x73\x0a\x63\x6f\x72\x6f\x6c\x6c\x61\x72\ \x79\x0a\x63\x6f\x72\x72\x65\x63\x74\x0a\x63\x6f\x72\x72\x65\x63\ \x74\x6c\x79\x0a\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x69\x6e\ \x67\x0a\x63\x6f\x75\x6c\x64\x0a\x63\x6f\x75\x70\x6c\x65\x0a\x63\ \x6f\x77\x6f\x72\x6b\x65\x72\x73\x0a\x43\x50\x55\x0a\x63\x72\x65\ \x61\x74\x65\x0a\x63\x72\x65\x61\x74\x65\x73\x0a\x63\x72\x65\x61\ \x74\x69\x6e\x67\x0a\x63\x72\x75\x63\x69\x61\x6c\x0a\x63\x75\x6c\ \x74\x75\x72\x65\x73\x0a\x63\x75\x72\x72\x65\x6e\x74\x0a\x63\x75\ \x72\x72\x65\x6e\x74\x6c\x79\x0a\x63\x75\x73\x74\x6f\x6d\x0a\x63\ \x75\x73\x74\x6f\x6d\x69\x7a\x65\x64\x0a\x63\x75\x74\x0a\x64\x61\ \x74\x61\x0a\x64\x61\x74\x61\x62\x61\x73\x65\x0a\x64\x61\x74\x61\ \x73\x65\x74\x73\x0a\x64\x61\x74\x75\x6d\x0a\x64\x61\x79\x0a\x64\ \x61\x79\x73\x0a\x64\x65\x61\x6c\x0a\x64\x65\x61\x6c\x69\x6e\x67\ \x0a\x64\x65\x63\x69\x64\x65\x0a\x64\x65\x63\x6f\x75\x70\x6c\x65\ \x0a\x64\x65\x63\x6f\x75\x70\x6c\x65\x64\x0a\x64\x65\x65\x70\x6c\ \x79\x0a\x64\x65\x66\x0a\x64\x65\x66\x61\x75\x6c\x74\x0a\x64\x65\ \x66\x69\x6e\x65\x0a\x64\x65\x66\x69\x6e\x65\x73\x0a\x64\x65\x66\ \x69\x6e\x69\x74\x69\x6f\x6e\x0a\x64\x65\x66\x69\x6e\x69\x74\x69\ \x6f\x6e\x73\x0a\x64\x65\x6c\x65\x67\x61\x74\x65\x0a\x64\x65\x6c\ \x65\x74\x65\x0a\x64\x65\x6d\x6f\x0a\x64\x65\x6d\x6f\x6e\x73\x74\ \x72\x61\x74\x65\x0a\x64\x65\x6d\x6f\x6e\x73\x74\x72\x61\x74\x69\ \x6f\x6e\x73\x0a\x64\x65\x70\x6c\x6f\x79\x65\x64\x0a\x64\x65\x73\ \x63\x72\x69\x62\x65\x0a\x64\x65\x73\x63\x72\x69\x62\x65\x73\x0a\ \x64\x65\x73\x69\x67\x6e\x0a\x64\x65\x73\x6b\x74\x6f\x70\x0a\x64\ \x65\x73\x6b\x74\x6f\x70\x73\x0a\x64\x65\x73\x74\x69\x6e\x61\x74\ \x69\x6f\x6e\x0a\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x73\ \x0a\x64\x65\x73\x74\x72\x75\x63\x74\x6f\x72\x0a\x64\x65\x74\x61\ \x69\x6c\x73\x0a\x64\x65\x74\x65\x63\x74\x0a\x64\x65\x74\x65\x72\ \x6d\x69\x6e\x65\x0a\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x73\x0a\ \x64\x65\x76\x65\x6c\x6f\x70\x65\x72\x0a\x64\x65\x76\x65\x6c\x6f\ \x70\x65\x72\x73\x0a\x64\x65\x76\x65\x6c\x6f\x70\x6d\x65\x6e\x74\ \x0a\x64\x65\x76\x65\x6c\x6f\x70\x6d\x65\x6e\x74\x73\x0a\x64\x65\ \x76\x69\x63\x65\x0a\x64\x65\x76\x69\x63\x65\x73\x0a\x64\x69\x61\ \x67\x72\x61\x6d\x0a\x64\x69\x61\x6c\x6f\x67\x73\x0a\x64\x69\x63\ \x74\x69\x6f\x6e\x61\x72\x79\x0a\x64\x69\x64\x0a\x64\x69\x66\x66\ \x65\x72\x65\x6e\x63\x65\x0a\x64\x69\x66\x66\x65\x72\x65\x6e\x63\ \x65\x73\x0a\x64\x69\x66\x66\x65\x72\x65\x6e\x74\x0a\x64\x69\x66\ \x66\x65\x72\x73\x0a\x64\x69\x67\x69\x74\x61\x6c\x0a\x64\x69\x72\ \x65\x63\x74\x0a\x64\x69\x72\x65\x63\x74\x0a\x64\x69\x72\x65\x63\ \x74\x69\x6f\x6e\x73\x0a\x64\x69\x72\x65\x63\x74\x6c\x79\x0a\x64\ \x69\x72\x65\x63\x74\x6f\x72\x79\x0a\x64\x69\x73\x63\x75\x73\x73\ \x0a\x64\x69\x73\x70\x6c\x61\x79\x0a\x64\x69\x73\x70\x6c\x61\x79\ \x69\x6e\x67\x0a\x64\x69\x73\x70\x6c\x61\x79\x73\x0a\x64\x69\x73\ \x74\x72\x69\x62\x75\x74\x65\x0a\x64\x69\x73\x74\x72\x69\x62\x75\ \x74\x69\x6f\x6e\x0a\x64\x69\x73\x74\x75\x72\x62\x69\x6e\x67\x0a\ \x64\x69\x76\x69\x64\x65\x0a\x64\x6f\x0a\x64\x6f\x63\x75\x6d\x65\ \x6e\x74\x61\x74\x69\x6f\x6e\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\ \x73\x0a\x64\x6f\x65\x73\x0a\x64\x6f\x6e\x65\x0a\x64\x6f\x77\x6e\ \x0a\x64\x6f\x77\x6e\x4c\x69\x6d\x69\x74\x0a\x64\x6f\x77\x6e\x6c\ \x6f\x61\x64\x0a\x64\x6f\x77\x6e\x6c\x6f\x61\x64\x65\x64\x0a\x64\ \x6f\x77\x6e\x6c\x6f\x61\x64\x69\x6e\x67\x0a\x64\x72\x61\x77\x0a\ \x64\x72\x61\x77\x69\x6e\x67\x0a\x64\x72\x61\x77\x6e\x0a\x64\x72\ \x6f\x70\x0a\x44\x75\x66\x66\x0a\x64\x75\x72\x69\x6e\x67\x0a\x44\ \x56\x44\x0a\x64\x79\x6e\x61\x6d\x69\x63\x0a\x64\x79\x6e\x61\x6d\ \x69\x63\x61\x6c\x6c\x79\x0a\x64\x79\x6e\x61\x6d\x69\x63\x73\x0a\ \x65\x61\x63\x68\x0a\x65\x61\x72\x6c\x69\x65\x72\x0a\x65\x61\x73\ \x69\x6c\x79\x0a\x65\x64\x69\x74\x69\x6e\x67\x0a\x65\x64\x69\x74\ \x6f\x72\x73\x0a\x65\x64\x75\x63\x61\x74\x69\x6f\x6e\x0a\x65\x66\ \x66\x65\x63\x74\x0a\x65\x66\x66\x65\x63\x74\x69\x76\x65\x6c\x79\ \x0a\x65\x66\x66\x65\x63\x74\x73\x0a\x65\x69\x74\x68\x65\x72\x0a\ \x65\x6c\x6c\x69\x70\x73\x65\x0a\x65\x6c\x6c\x69\x70\x73\x65\x73\ \x0a\x65\x6c\x6c\x69\x70\x74\x69\x63\x61\x6c\x0a\x65\x6c\x73\x65\ \x0a\x65\x6d\x61\x69\x6c\x0a\x65\x6d\x62\x65\x64\x64\x65\x64\x0a\ \x65\x6d\x69\x74\x0a\x65\x6d\x69\x74\x73\x0a\x65\x6d\x70\x74\x79\ \x0a\x65\x6e\x61\x62\x6c\x65\x0a\x65\x6e\x61\x62\x6c\x65\x73\x0a\ \x65\x6e\x63\x61\x70\x73\x75\x6c\x61\x74\x65\x73\x0a\x65\x6e\x63\ \x6c\x6f\x73\x65\x0a\x65\x6e\x64\x0a\x65\x6e\x64\x6e\x6f\x74\x65\ \x0a\x65\x6e\x64\x6e\x6f\x74\x65\x73\x0a\x65\x6e\x67\x69\x6e\x65\ \x65\x72\x0a\x65\x6e\x67\x69\x6e\x65\x65\x72\x69\x6e\x67\x0a\x45\ \x6e\x67\x6c\x69\x73\x68\x0a\x65\x6e\x6a\x6f\x79\x73\x0a\x65\x6e\ \x6f\x75\x67\x68\x0a\x65\x6e\x73\x75\x72\x65\x0a\x65\x6e\x73\x75\ \x72\x65\x73\x0a\x65\x6e\x74\x61\x69\x6c\x73\x0a\x65\x6e\x74\x65\ \x72\x0a\x65\x6e\x74\x69\x72\x65\x0a\x65\x6e\x74\x69\x74\x6c\x65\ \x64\x0a\x65\x6e\x74\x72\x69\x65\x73\x0a\x65\x6e\x74\x72\x79\x0a\ \x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x0a\x65\x72\x61\x73\ \x65\x73\x0a\x65\x72\x72\x6f\x72\x0a\x65\x72\x72\x6f\x72\x73\x0a\ \x65\x73\x70\x65\x63\x69\x61\x6c\x6c\x79\x0a\x65\x73\x74\x61\x62\ \x6c\x69\x73\x68\x65\x64\x0a\x65\x74\x63\x2e\x0a\x45\x75\x72\x6f\ \x70\x65\x0a\x65\x76\x65\x6e\x0a\x65\x76\x65\x6e\x6c\x79\x0a\x65\ \x76\x65\x6e\x74\x0a\x65\x76\x65\x6e\x74\x73\x0a\x65\x76\x65\x6e\ \x74\x75\x61\x6c\x6c\x79\x0a\x65\x76\x65\x72\x79\x0a\x65\x76\x65\ \x72\x79\x6f\x6e\x65\x0a\x65\x78\x61\x6d\x70\x6c\x65\x0a\x65\x78\ \x61\x6d\x70\x6c\x65\x73\x0a\x65\x78\x63\x65\x70\x74\x0a\x65\x78\ \x63\x65\x70\x74\x69\x6f\x6e\x0a\x65\x78\x63\x65\x73\x73\x69\x76\ \x65\x0a\x65\x78\x63\x6c\x75\x73\x69\x76\x65\x0a\x65\x78\x69\x73\ \x74\x69\x6e\x67\x0a\x65\x78\x69\x73\x74\x73\x0a\x65\x78\x70\x61\ \x6e\x64\x0a\x65\x78\x70\x65\x63\x74\x65\x64\x0a\x65\x78\x70\x65\ \x6e\x73\x65\x0a\x65\x78\x70\x6f\x72\x74\x0a\x65\x78\x70\x6f\x73\ \x65\x73\x0a\x65\x78\x74\x65\x6e\x64\x0a\x65\x78\x74\x65\x6e\x64\ \x65\x64\x0a\x65\x78\x74\x65\x6e\x64\x69\x6e\x67\x0a\x65\x78\x74\ \x65\x6e\x73\x69\x62\x6c\x65\x0a\x65\x78\x74\x65\x6e\x73\x69\x6f\ \x6e\x0a\x65\x78\x74\x65\x72\x6e\x61\x6c\x0a\x65\x78\x74\x72\x61\ \x0a\x65\x78\x74\x72\x61\x63\x74\x0a\x66\x61\x63\x65\x73\x0a\x66\ \x61\x63\x69\x6c\x69\x74\x69\x65\x73\x0a\x66\x61\x63\x74\x6f\x72\ \x79\x0a\x66\x61\x64\x65\x0a\x66\x61\x69\x6c\x75\x72\x65\x0a\x66\ \x61\x69\x72\x6e\x65\x73\x73\x0a\x66\x61\x6c\x6c\x73\x0a\x66\x61\ \x6c\x73\x65\x0a\x66\x61\x6d\x69\x6c\x79\x0a\x66\x61\x73\x68\x69\ \x6f\x6e\x0a\x66\x61\x73\x74\x0a\x66\x61\x73\x74\x65\x72\x0a\x66\ \x65\x61\x74\x75\x72\x65\x73\x0a\x46\x65\x62\x72\x75\x61\x72\x79\ \x0a\x66\x65\x65\x64\x62\x61\x63\x6b\x0a\x66\x65\x65\x6c\x0a\x66\ \x65\x74\x63\x68\x0a\x66\x65\x74\x63\x68\x69\x6e\x67\x0a\x66\x65\ \x77\x0a\x66\x69\x65\x6c\x64\x73\x0a\x66\x69\x67\x75\x72\x65\x0a\ \x66\x69\x67\x75\x72\x65\x73\x0a\x66\x69\x6c\x65\x0a\x66\x69\x6c\ \x65\x20\x6e\x61\x6d\x65\x0a\x66\x69\x6c\x65\x73\x0a\x66\x69\x6c\ \x6c\x65\x64\x0a\x66\x69\x6c\x6c\x65\x72\x0a\x66\x69\x6e\x61\x6c\ \x0a\x66\x69\x6e\x61\x6c\x6c\x79\x0a\x66\x69\x6e\x64\x0a\x66\x69\ \x6e\x65\x0a\x66\x69\x6e\x69\x73\x68\x0a\x66\x69\x6e\x69\x73\x68\ \x65\x64\x0a\x66\x69\x72\x73\x74\x0a\x66\x6c\x6f\x77\x0a\x66\x6c\ \x79\x0a\x66\x6f\x63\x75\x73\x0a\x66\x6f\x6c\x6c\x6f\x77\x65\x64\ \x0a\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x0a\x66\x6f\x6e\x74\x0a\ \x66\x6f\x6f\x74\x0a\x66\x6f\x6f\x74\x6e\x6f\x74\x65\x0a\x66\x6f\ \x6f\x74\x6e\x6f\x74\x65\x73\x0a\x66\x6f\x72\x0a\x66\x6f\x72\x6d\ \x0a\x66\x6f\x72\x6d\x61\x74\x0a\x66\x6f\x72\x6d\x61\x74\x73\x0a\ \x66\x6f\x72\x6d\x73\x0a\x66\x6f\x72\x6d\x75\x6c\x61\x0a\x66\x6f\ \x72\x6d\x75\x6c\x61\x73\x0a\x66\x6f\x72\x75\x6d\x0a\x66\x6f\x75\ \x6e\x64\x0a\x66\x72\x61\x6d\x65\x77\x6f\x72\x6b\x0a\x46\x72\x61\ \x6e\x63\x65\x0a\x66\x72\x6f\x6d\x0a\x66\x72\x6f\x6e\x74\x0a\x66\ \x75\x6c\x6c\x0a\x66\x75\x6c\x6c\x79\x0a\x66\x75\x6e\x63\x74\x69\ \x6f\x6e\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x61\x6c\x69\x74\x79\ \x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x73\x0a\x66\x75\x74\x75\x72\ \x65\x0a\x67\x61\x69\x6e\x0a\x67\x61\x6d\x65\x73\x0a\x67\x61\x70\ \x0a\x67\x65\x6e\x65\x72\x61\x6c\x0a\x67\x65\x6e\x65\x72\x69\x63\ \x0a\x47\x65\x72\x6d\x61\x6e\x79\x0a\x67\x65\x74\x0a\x67\x69\x6c\ \x6c\x0a\x67\x69\x76\x65\x0a\x67\x69\x76\x65\x6e\x0a\x67\x69\x76\ \x65\x73\x0a\x67\x69\x76\x69\x6e\x67\x0a\x67\x6c\x6f\x62\x61\x6c\ \x0a\x67\x6f\x0a\x67\x6f\x65\x73\x0a\x67\x6f\x74\x0a\x67\x72\x61\ \x64\x69\x65\x6e\x74\x0a\x67\x72\x61\x70\x68\x0a\x67\x72\x61\x70\ \x68\x69\x63\x61\x6c\x0a\x67\x72\x61\x70\x68\x69\x63\x73\x0a\x67\ \x72\x61\x79\x0a\x67\x72\x65\x61\x74\x0a\x67\x72\x65\x61\x74\x6c\ \x79\x0a\x67\x72\x65\x65\x6e\x0a\x67\x72\x65\x79\x0a\x67\x72\x6f\ \x75\x70\x0a\x67\x72\x6f\x77\x69\x6e\x67\x0a\x67\x75\x69\x0a\x47\ \x55\x49\x0a\x68\x61\x63\x6b\x0a\x68\x61\x64\x0a\x68\x61\x6c\x66\ \x0a\x48\x61\x6d\x62\x75\x72\x67\x0a\x68\x61\x6e\x64\x0a\x68\x61\ \x6e\x64\x69\x6e\x67\x0a\x68\x61\x6e\x64\x6c\x65\x0a\x68\x61\x6e\ \x64\x6c\x65\x72\x0a\x68\x61\x6e\x64\x6c\x65\x72\x73\x0a\x68\x61\ \x6e\x64\x6c\x65\x73\x0a\x68\x61\x6e\x64\x6c\x69\x6e\x67\x0a\x68\ \x61\x70\x70\x65\x6e\x73\x0a\x68\x61\x72\x64\x77\x61\x72\x65\x0a\ \x68\x61\x72\x6d\x6f\x6e\x69\x63\x61\x0a\x68\x61\x73\x0a\x68\x61\ \x76\x65\x0a\x68\x61\x76\x69\x6e\x67\x0a\x68\x65\x0a\x68\x65\x61\ \x64\x0a\x68\x65\x61\x64\x65\x72\x0a\x68\x65\x61\x64\x65\x72\x73\ \x0a\x68\x65\x61\x72\x0a\x68\x65\x69\x67\x68\x74\x0a\x68\x65\x6c\ \x70\x0a\x68\x65\x6c\x70\x65\x72\x0a\x68\x65\x72\x65\x0a\x68\x69\ \x67\x68\x0a\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x0a\x68\x69\x67\ \x68\x6c\x79\x0a\x68\x69\x6e\x74\x73\x0a\x68\x69\x73\x0a\x68\x6f\ \x6c\x64\x0a\x68\x6f\x6c\x64\x65\x72\x0a\x68\x6f\x6c\x64\x69\x6e\ \x67\x0a\x68\x6f\x6c\x65\x0a\x68\x6f\x6d\x65\x0a\x68\x6f\x72\x69\ \x7a\x6f\x6e\x74\x61\x6c\x0a\x68\x6f\x73\x74\x0a\x68\x6f\x73\x74\ \x69\x6e\x67\x0a\x68\x6f\x75\x72\x73\x0a\x48\x6f\x75\x73\x74\x6f\ \x6e\x0a\x68\x6f\x77\x0a\x68\x6f\x77\x65\x76\x65\x72\x0a\x68\x75\ \x67\x65\x0a\x68\x79\x70\x68\x65\x6e\x0a\x49\x44\x0a\x69\x64\x65\ \x61\x0a\x69\x64\x65\x61\x6c\x6c\x79\x0a\x69\x66\x0a\x49\x6c\x6c\ \x69\x6e\x6f\x69\x73\x0a\x69\x6c\x6c\x75\x73\x74\x72\x61\x74\x65\ \x0a\x69\x6c\x6c\x75\x73\x74\x72\x61\x74\x65\x64\x0a\x69\x6c\x6c\ \x75\x73\x74\x72\x61\x74\x65\x73\x0a\x69\x6d\x61\x67\x65\x0a\x69\ \x6d\x61\x67\x65\x73\x0a\x69\x6d\x70\x61\x63\x74\x0a\x69\x6d\x70\ \x6c\x65\x6d\x65\x6e\x74\x0a\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\ \x61\x74\x69\x6f\x6e\x0a\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x61\ \x74\x69\x6f\x6e\x73\x0a\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x65\ \x64\x0a\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\x69\x6e\x67\x0a\x69\ \x6d\x70\x6c\x65\x6d\x65\x6e\x74\x73\x0a\x69\x6d\x70\x6f\x72\x74\ \x0a\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x0a\x69\x6d\x70\x72\x6f\ \x76\x65\x6d\x65\x6e\x74\x73\x0a\x69\x6e\x0a\x69\x6e\x63\x6c\x75\ \x64\x65\x0a\x69\x6e\x63\x6c\x75\x64\x65\x64\x0a\x69\x6e\x63\x6c\ \x75\x64\x65\x73\x0a\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x0a\x69\ \x6e\x63\x6c\x75\x73\x69\x6f\x6e\x0a\x69\x6e\x63\x6f\x6d\x69\x6e\ \x67\x0a\x69\x6e\x63\x6f\x6e\x76\x65\x6e\x69\x65\x6e\x74\x0a\x69\ \x6e\x64\x65\x6e\x74\x0a\x69\x6e\x64\x65\x78\x0a\x69\x6e\x64\x69\ \x63\x61\x74\x65\x0a\x69\x6e\x65\x78\x70\x65\x6e\x73\x69\x76\x65\ \x6c\x79\x0a\x69\x6e\x66\x6c\x75\x65\x6e\x63\x65\x0a\x69\x6e\x66\ \x6f\x0a\x69\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x69\x6e\ \x67\x65\x6e\x69\x6f\x75\x73\x0a\x69\x6e\x68\x65\x72\x69\x74\x73\ \x0a\x69\x6e\x69\x74\x69\x61\x6c\x0a\x69\x6e\x69\x74\x69\x61\x6c\ \x6c\x79\x0a\x69\x6e\x6e\x65\x72\x0a\x69\x6e\x70\x75\x74\x0a\x69\ \x6e\x73\x70\x69\x72\x65\x64\x0a\x69\x6e\x73\x74\x61\x6c\x6c\x0a\ \x69\x6e\x73\x74\x61\x6c\x6c\x73\x0a\x69\x6e\x73\x74\x61\x6e\x63\ \x65\x0a\x69\x6e\x73\x74\x65\x61\x64\x0a\x69\x6e\x73\x74\x72\x75\ \x63\x74\x73\x0a\x69\x6e\x74\x65\x67\x65\x72\x0a\x69\x6e\x74\x65\ \x67\x65\x72\x73\x0a\x69\x6e\x74\x65\x67\x72\x61\x74\x69\x6f\x6e\ \x0a\x69\x6e\x74\x65\x6e\x64\x65\x64\x0a\x69\x6e\x74\x65\x6e\x73\ \x69\x76\x65\x0a\x69\x6e\x74\x65\x72\x65\x73\x74\x0a\x69\x6e\x74\ \x65\x72\x65\x73\x74\x73\x0a\x69\x6e\x74\x65\x72\x66\x61\x63\x65\ \x0a\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x73\x0a\x69\x6e\x74\x65\ \x72\x66\x65\x72\x65\x0a\x69\x6e\x74\x65\x72\x6e\x61\x6c\x0a\x69\ \x6e\x74\x65\x72\x76\x61\x6c\x0a\x69\x6e\x74\x6f\x0a\x69\x6e\x74\ \x72\x69\x67\x75\x69\x6e\x67\x0a\x69\x6e\x74\x72\x6f\x0a\x69\x6e\ \x74\x72\x6f\x64\x75\x63\x65\x0a\x69\x6e\x74\x72\x6f\x64\x75\x63\ \x65\x64\x0a\x69\x6e\x76\x61\x6c\x69\x64\x0a\x69\x6e\x76\x65\x6e\ \x74\x65\x64\x0a\x69\x6e\x76\x65\x72\x73\x65\x0a\x69\x6e\x76\x6f\ \x63\x61\x74\x69\x6f\x6e\x0a\x69\x6e\x76\x6f\x6c\x76\x65\x64\x0a\ \x49\x72\x69\x73\x68\x0a\x69\x72\x72\x65\x67\x75\x6c\x61\x72\x0a\ \x69\x73\x0a\x49\x53\x4f\x0a\x49\x53\x50\x73\x0a\x69\x73\x73\x75\ \x65\x0a\x69\x73\x73\x75\x65\x73\x0a\x69\x74\x0a\x69\x74\x65\x6d\ \x73\x0a\x69\x74\x65\x72\x61\x74\x65\x0a\x69\x74\x73\x0a\x69\x74\ \x73\x65\x6c\x66\x0a\x6a\x6f\x62\x0a\x6a\x6f\x69\x6e\x0a\x4a\x50\ \x45\x47\x0a\x6a\x75\x6e\x67\x6c\x65\x0a\x6a\x75\x73\x74\x0a\x4b\ \x61\x72\x61\x6f\x6b\x65\x0a\x6b\x65\x65\x70\x0a\x6b\x65\x65\x70\ \x69\x6e\x67\x0a\x6b\x65\x79\x0a\x6b\x69\x6e\x64\x0a\x6b\x69\x6e\ \x67\x0a\x6b\x6e\x6f\x77\x6e\x0a\x6c\x61\x62\x65\x6c\x0a\x6c\x61\ \x62\x65\x6c\x73\x0a\x6c\x61\x6e\x64\x73\x63\x61\x70\x65\x0a\x6c\ \x61\x6e\x67\x75\x61\x67\x65\x0a\x6c\x61\x72\x67\x65\x0a\x6c\x61\ \x73\x74\x0a\x6c\x61\x74\x65\x72\x0a\x6c\x61\x74\x65\x73\x74\x0a\ \x6c\x61\x77\x6e\x0a\x6c\x61\x79\x6f\x75\x74\x0a\x6c\x65\x61\x64\ \x0a\x6c\x65\x61\x64\x65\x72\x0a\x6c\x65\x61\x64\x65\x72\x73\x0a\ \x6c\x65\x61\x6e\x0a\x6c\x65\x61\x76\x65\x73\x0a\x6c\x65\x61\x76\ \x69\x6e\x67\x0a\x6c\x65\x66\x74\x0a\x6c\x65\x6d\x6d\x61\x0a\x6c\ \x65\x6e\x67\x74\x68\x0a\x6c\x65\x73\x73\x0a\x6c\x65\x74\x0a\x6c\ \x65\x76\x65\x6c\x0a\x6c\x65\x76\x65\x6c\x73\x0a\x6c\x69\x62\x72\ \x61\x72\x69\x65\x73\x0a\x6c\x69\x62\x72\x61\x72\x79\x0a\x6c\x69\ \x65\x73\x0a\x6c\x69\x6b\x65\x0a\x6c\x69\x6b\x65\x6c\x79\x0a\x6c\ \x69\x6d\x69\x74\x0a\x6c\x69\x6d\x69\x74\x69\x6e\x67\x0a\x6c\x69\ \x6d\x69\x74\x73\x0a\x6c\x69\x6e\x65\x0a\x6c\x69\x6e\x65\x61\x72\ \x0a\x6c\x69\x6e\x65\x73\x0a\x6c\x69\x6e\x65\x77\x69\x64\x74\x68\ \x0a\x6c\x69\x6e\x6b\x0a\x6c\x69\x6e\x6b\x65\x64\x0a\x6c\x69\x6e\ \x6b\x69\x6e\x67\x0a\x4c\x69\x6e\x75\x78\x0a\x6c\x69\x73\x74\x0a\ \x6c\x69\x73\x74\x73\x0a\x6c\x69\x74\x74\x6c\x65\x0a\x6c\x69\x76\ \x65\x73\x0a\x6c\x6f\x61\x64\x0a\x6c\x6f\x61\x64\x69\x6e\x67\x0a\ \x6c\x6f\x61\x64\x73\x0a\x6c\x6f\x63\x61\x74\x65\x64\x0a\x6c\x6f\ \x63\x61\x74\x69\x6f\x6e\x0a\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x73\ \x0a\x6c\x6f\x67\x6f\x0a\x6c\x6f\x6e\x67\x0a\x6c\x6f\x6e\x67\x65\ \x72\x0a\x6c\x6f\x6f\x6b\x0a\x6c\x6f\x6f\x6b\x65\x64\x0a\x6c\x6f\ \x6f\x6b\x69\x6e\x67\x0a\x6c\x6f\x6f\x6b\x73\x0a\x6c\x6f\x6f\x6b\ \x75\x70\x0a\x6c\x6f\x6f\x6b\x75\x70\x73\x0a\x6c\x6f\x6f\x70\x0a\ \x6c\x6f\x75\x74\x0a\x6c\x6f\x77\x0a\x6d\x61\x63\x72\x6f\x0a\x6d\ \x61\x64\x65\x0a\x6d\x61\x67\x61\x7a\x69\x6e\x65\x0a\x6d\x61\x67\ \x69\x63\x0a\x6d\x61\x69\x6e\x0a\x6d\x61\x6a\x6f\x72\x0a\x6d\x61\ \x6b\x65\x0a\x6d\x61\x6b\x65\x73\x0a\x6d\x61\x6b\x69\x6e\x67\x0a\ \x6d\x61\x6e\x61\x67\x65\x0a\x6d\x61\x6e\x61\x67\x65\x64\x0a\x6d\ \x61\x6e\x61\x67\x69\x6e\x67\x0a\x6d\x61\x6e\x64\x61\x74\x6f\x72\ \x79\x0a\x6d\x61\x6e\x69\x70\x75\x6c\x61\x74\x65\x0a\x6d\x61\x6e\ \x69\x70\x75\x6c\x61\x74\x69\x6f\x6e\x0a\x6d\x61\x6e\x6e\x65\x72\ \x0a\x6d\x61\x6e\x79\x0a\x6d\x61\x70\x0a\x6d\x61\x70\x73\x0a\x4d\ \x61\x72\x63\x68\x0a\x6d\x61\x72\x67\x69\x6e\x0a\x6d\x61\x73\x6b\ \x0a\x6d\x61\x73\x6b\x69\x6e\x67\x0a\x4d\x61\x73\x73\x61\x63\x68\ \x75\x73\x65\x74\x74\x73\x0a\x6d\x61\x74\x63\x68\x0a\x6d\x61\x74\ \x68\x65\x6d\x61\x74\x69\x63\x61\x6c\x0a\x6d\x61\x78\x69\x6d\x75\ \x6d\x0a\x6d\x61\x79\x0a\x6d\x65\x61\x6e\x73\x0a\x6d\x65\x65\x74\ \x0a\x6d\x65\x6d\x62\x65\x72\x0a\x6d\x65\x6d\x62\x65\x72\x73\x0a\ \x6d\x65\x6d\x6f\x72\x79\x0a\x6d\x65\x72\x67\x65\x64\x0a\x6d\x65\ \x74\x68\x6f\x64\x0a\x6d\x69\x67\x68\x74\x0a\x6d\x69\x6c\x6c\x69\ \x73\x65\x63\x6f\x6e\x64\x73\x0a\x6d\x69\x6e\x69\x6d\x69\x7a\x65\ \x0a\x6d\x69\x6e\x69\x6d\x75\x6d\x0a\x6d\x69\x6e\x6f\x72\x0a\x6d\ \x69\x78\x0a\x4d\x4e\x47\x0a\x6d\x6f\x64\x65\x0a\x6d\x6f\x64\x65\ \x6c\x0a\x6d\x6f\x64\x65\x6c\x73\x0a\x6d\x6f\x64\x65\x73\x0a\x6d\ \x6f\x64\x69\x66\x69\x65\x64\x0a\x6d\x6f\x64\x75\x6c\x65\x0a\x6d\ \x6f\x6d\x65\x6e\x74\x73\x0a\x6d\x6f\x6e\x69\x74\x6f\x72\x65\x64\ \x0a\x6d\x6f\x6e\x74\x68\x6c\x79\x0a\x6d\x6f\x72\x65\x0a\x6d\x6f\ \x73\x74\x0a\x6d\x6f\x73\x74\x6c\x79\x0a\x6d\x6f\x76\x65\x0a\x6d\ \x75\x63\x68\x0a\x6d\x75\x6c\x74\x69\x74\x75\x64\x65\x0a\x4d\x75\ \x6e\x69\x63\x68\x0a\x6d\x75\x73\x74\x0a\x6e\x61\x6d\x65\x0a\x6e\ \x61\x6d\x65\x64\x0a\x6e\x61\x6d\x65\x73\x0a\x6e\x65\x63\x65\x73\ \x73\x61\x72\x79\x0a\x6e\x65\x65\x64\x0a\x6e\x65\x65\x64\x65\x64\ \x0a\x6e\x65\x65\x64\x73\x0a\x6e\x65\x74\x77\x6f\x72\x6b\x0a\x6e\ \x65\x77\x0a\x6e\x65\x77\x73\x0a\x6e\x65\x77\x73\x6c\x65\x74\x74\ \x65\x72\x0a\x6e\x65\x78\x74\x0a\x6e\x69\x63\x65\x6c\x79\x0a\x6e\ \x6f\x0a\x6e\x6f\x6e\x65\x0a\x6e\x6f\x72\x6d\x61\x6c\x6c\x79\x0a\ \x4e\x6f\x72\x77\x61\x79\x0a\x6e\x6f\x74\x0a\x6e\x6f\x74\x65\x0a\ \x6e\x6f\x74\x65\x73\x0a\x6e\x6f\x74\x68\x69\x6e\x67\x0a\x6e\x6f\ \x74\x69\x66\x69\x65\x73\x0a\x6e\x6f\x74\x69\x66\x79\x0a\x6e\x6f\ \x77\x0a\x6e\x75\x6c\x6c\x0a\x6e\x75\x6d\x62\x65\x72\x0a\x6e\x75\ \x6d\x62\x65\x72\x65\x64\x0a\x6e\x75\x6d\x62\x65\x72\x69\x6e\x67\ \x0a\x6e\x75\x6d\x62\x65\x72\x73\x0a\x4e\x79\x64\x61\x6c\x65\x6e\ \x0a\x6f\x62\x6a\x65\x63\x74\x0a\x6f\x62\x6a\x65\x63\x74\x73\x0a\ \x6f\x62\x74\x61\x69\x6e\x0a\x6f\x62\x74\x61\x69\x6e\x69\x6e\x67\ \x0a\x6f\x64\x64\x0a\x6f\x66\x0a\x6f\x66\x66\x0a\x6f\x66\x66\x69\ \x63\x65\x0a\x6f\x66\x66\x73\x65\x74\x0a\x6f\x66\x66\x73\x65\x74\ \x73\x0a\x6f\x66\x74\x65\x6e\x0a\x6f\x6c\x64\x0a\x6f\x6e\x0a\x6f\ \x6e\x63\x65\x0a\x6f\x6e\x65\x0a\x6f\x6e\x65\x73\x0a\x6f\x6e\x6c\ \x69\x6e\x65\x0a\x6f\x6e\x6c\x79\x0a\x6f\x6e\x74\x6f\x0a\x6f\x70\ \x61\x63\x69\x74\x79\x0a\x6f\x70\x61\x71\x75\x65\x0a\x6f\x70\x65\ \x6e\x0a\x6f\x70\x65\x6e\x73\x0a\x6f\x70\x65\x72\x61\x74\x65\x73\ \x0a\x6f\x70\x65\x72\x61\x74\x69\x6e\x67\x0a\x6f\x70\x65\x72\x61\ \x74\x69\x6f\x6e\x0a\x6f\x70\x65\x72\x61\x74\x69\x6f\x6e\x73\x0a\ \x6f\x70\x65\x72\x61\x74\x6f\x72\x0a\x6f\x70\x70\x6f\x72\x74\x75\ \x6e\x69\x74\x79\x0a\x6f\x70\x70\x6f\x73\x65\x64\x0a\x6f\x70\x74\ \x69\x6d\x69\x7a\x65\x0a\x6f\x70\x74\x69\x6f\x6e\x0a\x6f\x70\x74\ \x69\x6f\x6e\x61\x6c\x6c\x79\x0a\x6f\x70\x74\x69\x6f\x6e\x73\x0a\ \x6f\x72\x0a\x4f\x52\x0a\x6f\x72\x64\x65\x72\x0a\x6f\x72\x64\x69\ \x6e\x61\x72\x79\x0a\x6f\x72\x69\x67\x69\x6e\x61\x6c\x0a\x6f\x72\ \x69\x67\x69\x6e\x61\x6c\x6c\x79\x0a\x4f\x73\x6c\x6f\x0a\x6f\x74\ \x68\x65\x72\x0a\x6f\x74\x68\x65\x72\x77\x69\x73\x65\x0a\x6f\x75\ \x72\x0a\x6f\x75\x74\x0a\x6f\x75\x74\x65\x72\x0a\x6f\x75\x74\x67\ \x6f\x69\x6e\x67\x0a\x6f\x75\x74\x70\x75\x74\x0a\x6f\x75\x74\x73\ \x69\x64\x65\x0a\x6f\x76\x65\x72\x0a\x6f\x76\x65\x72\x63\x6f\x6d\ \x69\x6e\x67\x0a\x6f\x76\x65\x72\x72\x69\x64\x65\x73\x0a\x6f\x76\ \x65\x72\x76\x69\x65\x77\x0a\x6f\x77\x6e\x0a\x6f\x77\x6e\x65\x72\ \x0a\x6f\x77\x6e\x65\x72\x73\x0a\x70\x61\x63\x65\x0a\x50\x61\x63\ \x69\x66\x69\x63\x0a\x70\x61\x63\x6b\x61\x67\x65\x0a\x70\x61\x63\ \x6b\x61\x67\x65\x73\x0a\x70\x61\x63\x6b\x65\x74\x73\x0a\x70\x61\ \x67\x65\x0a\x70\x61\x67\x65\x73\x0a\x70\x61\x69\x6e\x74\x0a\x70\ \x61\x69\x6e\x74\x65\x64\x0a\x70\x61\x69\x6e\x74\x69\x6e\x67\x0a\ \x70\x61\x72\x61\x67\x72\x61\x70\x68\x0a\x70\x61\x72\x61\x67\x72\ \x61\x70\x68\x73\x0a\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x0a\ \x70\x61\x72\x65\x6e\x74\x0a\x50\x61\x72\x69\x73\x0a\x70\x61\x72\ \x73\x65\x0a\x70\x61\x72\x74\x0a\x70\x61\x72\x74\x69\x61\x6c\x0a\ \x70\x61\x72\x74\x69\x61\x6c\x6c\x79\x0a\x70\x61\x72\x74\x69\x63\ \x75\x6c\x61\x72\x0a\x70\x61\x72\x74\x6e\x65\x72\x73\x0a\x70\x61\ \x72\x74\x73\x0a\x70\x61\x72\x74\x79\x0a\x70\x61\x73\x73\x65\x64\ \x0a\x70\x61\x73\x73\x69\x6e\x67\x0a\x70\x61\x74\x63\x68\x65\x73\ \x0a\x70\x61\x74\x68\x0a\x70\x61\x74\x74\x65\x72\x6e\x0a\x70\x61\ \x74\x74\x65\x72\x6e\x73\x0a\x70\x61\x75\x73\x65\x0a\x50\x44\x46\ \x0a\x70\x65\x65\x6b\x0a\x70\x65\x6e\x64\x69\x6e\x67\x0a\x70\x65\ \x72\x66\x6f\x72\x6d\x0a\x70\x65\x72\x66\x6f\x72\x6d\x65\x64\x0a\ \x70\x65\x72\x66\x6f\x72\x6d\x73\x0a\x70\x65\x72\x6d\x69\x73\x73\ \x69\x6f\x6e\x0a\x70\x65\x72\x6d\x75\x74\x61\x74\x69\x6f\x6e\x73\ \x0a\x70\x65\x72\x73\x6f\x6e\x61\x6c\x0a\x70\x69\x63\x6b\x0a\x70\ \x69\x65\x0a\x70\x69\x70\x65\x0a\x70\x69\x78\x65\x6c\x0a\x70\x69\ \x78\x65\x6c\x73\x0a\x70\x6c\x61\x63\x65\x0a\x70\x6c\x61\x63\x65\ \x73\x0a\x70\x6c\x61\x6e\x6e\x69\x6e\x67\x0a\x70\x6c\x61\x74\x66\ \x6f\x72\x6d\x73\x0a\x70\x6c\x61\x79\x0a\x70\x6c\x61\x79\x65\x72\ \x73\x0a\x70\x6c\x61\x79\x69\x6e\x67\x0a\x70\x6c\x65\x61\x73\x65\ \x0a\x70\x6c\x65\x61\x73\x69\x6e\x67\x0a\x70\x6c\x75\x67\x69\x6e\ \x0a\x70\x6c\x75\x67\x69\x6e\x73\x0a\x70\x6c\x75\x73\x0a\x50\x4e\ \x47\x0a\x70\x6f\x69\x6e\x74\x65\x72\x0a\x70\x6f\x70\x0a\x70\x6f\ \x70\x75\x6c\x61\x72\x0a\x70\x6f\x70\x75\x6c\x61\x74\x65\x73\x0a\ \x70\x6f\x72\x74\x65\x72\x0a\x50\x6f\x72\x74\x65\x72\x0a\x70\x6f\ \x72\x74\x72\x61\x69\x74\x0a\x70\x6f\x73\x73\x69\x62\x69\x6c\x69\ \x74\x79\x0a\x70\x6f\x73\x73\x69\x62\x6c\x65\x0a\x70\x6f\x74\x65\ \x6e\x74\x69\x61\x6c\x0a\x70\x6f\x74\x65\x6e\x74\x69\x61\x6c\x6c\ \x79\x0a\x70\x6f\x77\x65\x72\x0a\x70\x6f\x77\x65\x72\x73\x0a\x70\ \x72\x65\x63\x65\x64\x65\x64\x0a\x70\x72\x65\x73\x65\x6e\x63\x65\ \x0a\x70\x72\x65\x73\x65\x6e\x74\x0a\x70\x72\x65\x76\x65\x6e\x74\ \x0a\x70\x72\x65\x76\x65\x6e\x74\x73\x0a\x70\x72\x65\x76\x69\x6f\ \x75\x73\x0a\x70\x72\x65\x76\x69\x6f\x75\x73\x6c\x79\x0a\x70\x72\ \x69\x6d\x61\x72\x69\x6c\x79\x0a\x70\x72\x69\x6d\x61\x72\x79\x0a\ \x70\x72\x69\x6d\x69\x74\x69\x76\x65\x73\x0a\x70\x72\x69\x6e\x74\ \x65\x64\x0a\x70\x72\x69\x6e\x74\x69\x6e\x67\x0a\x70\x72\x69\x6f\ \x72\x0a\x70\x72\x6f\x62\x61\x62\x6c\x79\x0a\x70\x72\x6f\x62\x6c\ \x65\x6d\x0a\x70\x72\x6f\x63\x65\x73\x73\x0a\x70\x72\x6f\x63\x65\ \x73\x73\x65\x73\x0a\x70\x72\x6f\x63\x65\x73\x73\x69\x6e\x67\x0a\ \x70\x72\x6f\x64\x75\x63\x65\x0a\x70\x72\x6f\x64\x75\x63\x65\x64\ \x0a\x70\x72\x6f\x64\x75\x63\x65\x73\x0a\x70\x72\x6f\x64\x75\x63\ \x74\x73\x0a\x70\x72\x6f\x67\x72\x61\x6d\x6d\x69\x6e\x67\x0a\x70\ \x72\x6f\x67\x72\x61\x6d\x73\x0a\x70\x72\x6f\x6a\x65\x63\x74\x0a\ \x70\x72\x6f\x6a\x65\x63\x74\x73\x0a\x70\x72\x6f\x6f\x66\x0a\x70\ \x72\x6f\x70\x65\x72\x0a\x70\x72\x6f\x70\x65\x72\x6c\x79\x0a\x70\ \x72\x6f\x70\x65\x72\x74\x69\x65\x73\x0a\x70\x72\x6f\x70\x65\x72\ \x74\x79\x0a\x70\x72\x6f\x70\x6f\x73\x65\x64\x0a\x70\x72\x6f\x70\ \x6f\x73\x69\x74\x69\x6f\x6e\x0a\x70\x72\x6f\x73\x0a\x70\x72\x6f\ \x74\x6f\x63\x6f\x6c\x73\x0a\x70\x72\x6f\x75\x64\x0a\x70\x72\x6f\ \x76\x69\x64\x65\x0a\x70\x72\x6f\x76\x69\x64\x65\x64\x0a\x70\x72\ \x6f\x76\x69\x64\x65\x73\x0a\x70\x72\x6f\x76\x69\x73\x69\x6f\x6e\ \x0a\x70\x72\x6f\x78\x79\x0a\x70\x75\x62\x6c\x69\x63\x0a\x70\x75\ \x62\x6c\x69\x73\x68\x65\x64\x0a\x70\x75\x6e\x63\x68\x0a\x70\x75\ \x6e\x63\x68\x65\x73\x0a\x70\x75\x72\x73\x75\x69\x6e\x67\x0a\x70\ \x75\x74\x0a\x51\x74\x0a\x51\x74\x6f\x70\x69\x61\x0a\x71\x75\x61\ \x6c\x69\x74\x79\x0a\x71\x75\x61\x72\x74\x65\x72\x0a\x71\x75\x61\ \x72\x74\x65\x72\x6c\x79\x0a\x71\x75\x65\x72\x69\x65\x64\x0a\x71\ \x75\x65\x72\x69\x65\x73\x0a\x71\x75\x65\x72\x79\x0a\x71\x75\x65\ \x73\x74\x69\x6f\x6e\x0a\x71\x75\x65\x73\x74\x69\x6f\x6e\x73\x0a\ \x72\x61\x64\x69\x61\x6c\x0a\x72\x61\x67\x67\x65\x64\x0a\x72\x61\ \x6e\x67\x65\x0a\x72\x61\x74\x65\x0a\x72\x61\x74\x65\x73\x0a\x72\ \x61\x74\x68\x65\x72\x0a\x72\x61\x74\x69\x6f\x0a\x72\x61\x77\x0a\ \x72\x65\x61\x64\x0a\x72\x65\x61\x64\x65\x72\x0a\x72\x65\x61\x64\ \x69\x6e\x67\x0a\x72\x65\x61\x64\x73\x0a\x72\x65\x61\x64\x79\x0a\ \x72\x65\x61\x6c\x0a\x72\x65\x61\x6c\x69\x73\x74\x69\x63\x0a\x72\ \x65\x61\x6c\x6c\x79\x0a\x72\x65\x63\x65\x69\x76\x65\x64\x0a\x72\ \x65\x63\x65\x6e\x74\x0a\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64\ \x0a\x72\x65\x63\x6f\x6d\x6d\x65\x6e\x64\x65\x64\x0a\x72\x65\x63\ \x6f\x6d\x70\x69\x6c\x65\x0a\x72\x65\x63\x74\x61\x6e\x67\x6c\x65\ \x0a\x72\x65\x63\x74\x61\x6e\x67\x75\x6c\x61\x72\x0a\x72\x65\x64\ \x0a\x72\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x0a\x72\x65\ \x64\x75\x63\x69\x6e\x67\x0a\x72\x65\x66\x65\x72\x65\x6e\x63\x65\ \x0a\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x73\x0a\x72\x65\x66\x6c\ \x65\x63\x74\x0a\x72\x65\x67\x61\x72\x64\x6c\x65\x73\x73\x0a\x72\ \x65\x67\x69\x6f\x6e\x61\x6c\x0a\x72\x65\x67\x69\x73\x74\x65\x72\ \x0a\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x0a\x72\x65\x67\x69\ \x73\x74\x72\x61\x74\x69\x6f\x6e\x0a\x72\x65\x69\x6d\x70\x6c\x65\ \x6d\x65\x6e\x74\x0a\x72\x65\x69\x6d\x70\x6c\x65\x6d\x65\x6e\x74\ \x61\x74\x69\x6f\x6e\x0a\x72\x65\x69\x6d\x70\x6c\x65\x6d\x65\x6e\ \x74\x65\x64\x0a\x72\x65\x6c\x65\x61\x73\x65\x0a\x72\x65\x6c\x65\ \x61\x73\x65\x64\x0a\x72\x65\x6c\x65\x61\x73\x65\x73\x0a\x72\x65\ \x6c\x69\x61\x62\x6c\x65\x0a\x72\x65\x6c\x79\x0a\x72\x65\x6d\x61\ \x69\x6e\x73\x0a\x72\x65\x6d\x65\x6d\x62\x65\x72\x0a\x72\x65\x6d\ \x6f\x76\x65\x64\x0a\x72\x65\x6d\x6f\x76\x65\x73\x0a\x72\x65\x70\ \x65\x61\x74\x65\x64\x6c\x79\x0a\x72\x65\x70\x6c\x61\x63\x65\x0a\ \x72\x65\x70\x6f\x72\x74\x0a\x72\x65\x70\x72\x65\x73\x65\x6e\x74\ \x0a\x72\x65\x70\x72\x65\x73\x65\x6e\x74\x65\x64\x0a\x72\x65\x70\ \x72\x65\x73\x65\x6e\x74\x73\x0a\x72\x65\x70\x72\x6f\x64\x75\x63\ \x65\x64\x0a\x72\x65\x71\x75\x65\x73\x74\x65\x64\x0a\x72\x65\x71\ \x75\x69\x72\x65\x0a\x72\x65\x71\x75\x69\x72\x65\x64\x0a\x72\x65\ \x71\x75\x69\x72\x65\x73\x0a\x72\x65\x73\x65\x74\x74\x69\x6e\x67\ \x0a\x72\x65\x73\x69\x64\x65\x73\x0a\x72\x65\x73\x6f\x6c\x76\x65\ \x0a\x72\x65\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x72\x65\x73\x70\ \x65\x63\x74\x69\x76\x65\x6c\x79\x0a\x72\x65\x73\x70\x6f\x6e\x73\ \x65\x0a\x72\x65\x73\x74\x0a\x72\x65\x73\x74\x61\x72\x74\x0a\x72\ \x65\x73\x75\x6c\x74\x0a\x72\x65\x73\x75\x6c\x74\x69\x6e\x67\x0a\ \x72\x65\x73\x75\x6d\x65\x0a\x72\x65\x74\x75\x72\x6e\x0a\x72\x65\ \x74\x75\x72\x6e\x69\x6e\x67\x0a\x72\x65\x74\x75\x72\x6e\x73\x0a\ \x72\x65\x75\x73\x65\x0a\x72\x65\x76\x65\x61\x6c\x69\x6e\x67\x0a\ \x72\x69\x63\x68\x0a\x72\x69\x63\x68\x65\x73\x0a\x72\x69\x67\x68\ \x74\x0a\x72\x6f\x61\x64\x73\x68\x6f\x77\x0a\x72\x6f\x6c\x65\x0a\ \x52\x6f\x6d\x61\x6e\x0a\x72\x6f\x75\x74\x65\x72\x0a\x72\x6f\x75\ \x74\x65\x72\x73\x0a\x72\x75\x6c\x65\x0a\x72\x75\x6e\x0a\x72\x75\ \x6e\x6e\x65\x72\x0a\x72\x75\x6e\x6e\x65\x72\x73\x0a\x72\x75\x6e\ \x6e\x69\x6e\x67\x0a\x72\x75\x6e\x73\x0a\x73\x61\x6b\x65\x0a\x73\ \x61\x6c\x65\x73\x0a\x73\x61\x6c\x65\x73\x70\x65\x6f\x70\x6c\x65\ \x0a\x73\x61\x6d\x65\x0a\x73\x61\x6d\x70\x6c\x65\x0a\x53\x61\x6e\ \x20\x4a\x6f\x73\x65\x0a\x73\x61\x76\x65\x0a\x73\x61\x76\x65\x64\ \x0a\x73\x61\x76\x65\x73\x0a\x73\x61\x79\x0a\x73\x63\x61\x6c\x61\ \x62\x6c\x65\x0a\x73\x63\x61\x6c\x65\x0a\x73\x63\x61\x6e\x6c\x69\ \x6e\x65\x0a\x73\x63\x65\x6e\x65\x0a\x73\x63\x65\x6e\x65\x73\x0a\ \x73\x63\x68\x65\x64\x75\x6c\x65\x0a\x73\x63\x68\x6f\x6f\x6c\x0a\ \x73\x63\x72\x69\x70\x74\x0a\x73\x65\x61\x6d\x0a\x73\x65\x61\x6d\ \x6c\x65\x73\x73\x0a\x73\x65\x61\x72\x63\x68\x0a\x73\x65\x61\x72\ \x63\x68\x65\x73\x0a\x73\x65\x61\x72\x63\x68\x69\x6e\x67\x0a\x73\ \x65\x63\x6f\x6e\x64\x0a\x73\x65\x63\x6f\x6e\x64\x73\x0a\x73\x65\ \x63\x74\x69\x6f\x6e\x0a\x73\x65\x63\x74\x69\x6f\x6e\x73\x0a\x73\ \x65\x63\x75\x72\x69\x74\x79\x0a\x73\x65\x65\x0a\x73\x65\x65\x6e\ \x0a\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x0a\x73\x65\x6d\x69\x6e\ \x61\x72\x0a\x73\x65\x6d\x69\x6e\x61\x72\x73\x0a\x73\x65\x6e\x64\ \x69\x6e\x67\x0a\x73\x65\x70\x61\x72\x61\x74\x65\x64\x0a\x73\x65\ \x70\x61\x72\x61\x74\x65\x73\x0a\x73\x65\x72\x69\x65\x73\x0a\x73\ \x65\x72\x76\x69\x63\x65\x0a\x73\x65\x72\x76\x69\x63\x65\x73\x0a\ \x73\x65\x74\x0a\x73\x65\x74\x74\x69\x6e\x67\x0a\x73\x65\x74\x75\ \x70\x0a\x73\x65\x76\x65\x6e\x0a\x73\x65\x76\x65\x6e\x74\x68\x0a\ \x73\x65\x76\x65\x72\x61\x6c\x0a\x73\x68\x61\x64\x65\x0a\x73\x68\ \x61\x64\x6f\x77\x0a\x73\x68\x61\x70\x65\x0a\x73\x68\x61\x72\x65\ \x73\x0a\x73\x68\x61\x76\x65\x73\x0a\x73\x68\x69\x6e\x65\x0a\x73\ \x68\x6f\x72\x74\x65\x72\x0a\x73\x68\x6f\x75\x6c\x64\x0a\x73\x68\ \x6f\x77\x0a\x73\x68\x6f\x77\x6e\x0a\x73\x68\x6f\x77\x73\x0a\x73\ \x69\x64\x65\x0a\x73\x69\x67\x6e\x61\x6c\x0a\x73\x69\x67\x6e\x61\ \x6c\x73\x0a\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x0a\x73\x69\x67\ \x6e\x69\x66\x69\x63\x61\x6e\x74\x6c\x79\x0a\x73\x69\x6d\x69\x6c\ \x61\x72\x0a\x73\x69\x6d\x69\x6c\x61\x72\x69\x6c\x79\x0a\x73\x69\ \x6d\x69\x6c\x61\x72\x6c\x79\x0a\x73\x69\x6d\x70\x6c\x65\x0a\x73\ \x69\x6d\x70\x6c\x65\x73\x74\x0a\x73\x69\x6d\x70\x6c\x69\x66\x69\ \x65\x64\x0a\x73\x69\x6d\x70\x6c\x69\x66\x79\x69\x6e\x67\x0a\x73\ \x69\x6d\x70\x6c\x79\x0a\x73\x69\x6d\x75\x6c\x61\x74\x65\x0a\x73\ \x69\x6d\x75\x6c\x74\x61\x6e\x65\x6f\x75\x73\x0a\x73\x69\x6e\x63\ \x65\x0a\x73\x69\x6e\x67\x6c\x65\x0a\x73\x69\x7a\x65\x0a\x73\x69\ \x7a\x65\x73\x0a\x73\x6c\x69\x67\x68\x74\x6c\x79\x0a\x73\x6c\x6f\ \x70\x65\x0a\x73\x6c\x6f\x74\x0a\x73\x6c\x6f\x77\x69\x6e\x67\x0a\ \x73\x6d\x61\x6c\x6c\x0a\x73\x6d\x61\x6c\x6c\x65\x72\x0a\x73\x6f\ \x0a\x73\x6f\x63\x6b\x65\x74\x0a\x73\x6f\x63\x6b\x65\x74\x73\x0a\ \x73\x6f\x66\x74\x77\x61\x72\x65\x0a\x73\x6f\x6c\x75\x74\x69\x6f\ \x6e\x73\x0a\x73\x6f\x6c\x76\x65\x64\x0a\x73\x6f\x6d\x65\x0a\x73\ \x6f\x6f\x6e\x0a\x73\x6f\x72\x74\x0a\x73\x6f\x72\x74\x69\x6e\x67\ \x0a\x73\x6f\x75\x72\x63\x65\x0a\x73\x6f\x75\x72\x63\x65\x73\x0a\ \x73\x6f\x75\x74\x68\x0a\x73\x70\x61\x63\x65\x0a\x73\x70\x65\x63\ \x69\x61\x6c\x0a\x73\x70\x65\x63\x69\x61\x6c\x69\x7a\x65\x64\x0a\ \x73\x70\x65\x63\x69\x66\x69\x63\x0a\x73\x70\x65\x63\x69\x66\x69\ \x63\x61\x6c\x6c\x79\x0a\x73\x70\x65\x63\x69\x66\x69\x63\x61\x74\ \x69\x6f\x6e\x0a\x73\x70\x65\x63\x69\x66\x69\x63\x61\x74\x69\x6f\ \x6e\x73\x0a\x73\x70\x65\x63\x69\x66\x69\x65\x64\x0a\x73\x70\x65\ \x63\x69\x66\x79\x0a\x73\x70\x65\x65\x64\x0a\x73\x70\x65\x6e\x64\ \x0a\x73\x70\x6c\x69\x74\x0a\x53\x51\x4c\x0a\x73\x74\x61\x6e\x64\ \x61\x72\x64\x0a\x73\x74\x61\x6e\x64\x61\x72\x64\x73\x0a\x73\x74\ \x61\x72\x74\x0a\x73\x74\x61\x72\x74\x73\x0a\x73\x74\x61\x72\x76\ \x65\x0a\x73\x74\x61\x74\x65\x0a\x73\x74\x61\x74\x65\x73\x0a\x73\ \x74\x61\x74\x69\x63\x0a\x73\x74\x65\x61\x64\x79\x0a\x73\x74\x65\ \x61\x6c\x69\x6e\x67\x0a\x73\x74\x65\x70\x0a\x73\x74\x69\x6c\x6c\ \x0a\x73\x74\x6f\x70\x0a\x73\x74\x6f\x70\x77\x61\x74\x63\x68\x0a\ \x73\x74\x6f\x72\x65\x0a\x73\x74\x6f\x72\x65\x64\x0a\x73\x74\x6f\ \x72\x65\x73\x0a\x73\x74\x72\x61\x69\x67\x68\x74\x66\x6f\x72\x77\ \x61\x72\x64\x0a\x73\x74\x72\x65\x61\x6d\x0a\x73\x74\x72\x69\x6e\ \x67\x0a\x73\x74\x72\x69\x6e\x67\x73\x0a\x73\x74\x72\x75\x63\x74\ \x75\x72\x65\x0a\x73\x74\x72\x75\x63\x74\x75\x72\x65\x64\x0a\x73\ \x74\x72\x75\x74\x0a\x73\x74\x79\x6c\x65\x0a\x73\x74\x79\x6c\x65\ \x73\x0a\x73\x74\x79\x6c\x69\x6e\x67\x0a\x73\x75\x62\x63\x6c\x61\ \x73\x73\x0a\x73\x75\x62\x63\x6c\x61\x73\x73\x69\x6e\x67\x0a\x73\ \x75\x62\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x0a\x73\x75\x62\x73\ \x65\x63\x74\x69\x6f\x6e\x0a\x73\x75\x62\x73\x65\x63\x74\x69\x6f\ \x6e\x73\x0a\x73\x75\x63\x63\x65\x65\x64\x73\x0a\x73\x75\x63\x63\ \x65\x73\x73\x0a\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x0a\x73\ \x75\x63\x63\x65\x73\x73\x66\x75\x6c\x6c\x79\x0a\x73\x75\x63\x68\ \x0a\x73\x75\x67\x67\x65\x73\x74\x69\x6f\x6e\x0a\x73\x75\x67\x67\ \x65\x73\x74\x69\x6f\x6e\x73\x0a\x73\x75\x69\x74\x61\x62\x6c\x65\ \x0a\x73\x75\x70\x70\x6f\x72\x74\x0a\x73\x75\x70\x70\x6f\x72\x74\ \x65\x64\x0a\x73\x75\x70\x70\x6f\x72\x74\x73\x0a\x73\x75\x70\x70\ \x6f\x73\x65\x0a\x73\x75\x70\x70\x6f\x73\x65\x73\x0a\x73\x75\x72\ \x65\x0a\x73\x77\x69\x74\x63\x68\x0a\x73\x77\x69\x74\x63\x68\x65\ \x73\x0a\x73\x79\x6d\x62\x6f\x6c\x0a\x73\x79\x6d\x62\x6f\x6c\x73\ \x0a\x73\x79\x6e\x6f\x6e\x79\x6d\x73\x0a\x73\x79\x73\x74\x65\x6d\ \x0a\x73\x79\x73\x74\x65\x6d\x73\x0a\x74\x61\x62\x6c\x65\x0a\x74\ \x61\x62\x6c\x65\x73\x0a\x74\x61\x67\x73\x0a\x74\x61\x6b\x65\x0a\ \x74\x61\x6b\x65\x73\x0a\x74\x61\x70\x0a\x74\x61\x72\x67\x65\x74\ \x0a\x74\x61\x72\x67\x65\x74\x73\x0a\x54\x43\x50\x0a\x74\x65\x61\ \x6d\x0a\x74\x65\x63\x68\x6e\x69\x71\x75\x65\x0a\x74\x65\x63\x68\ \x6e\x6f\x6c\x6f\x67\x79\x0a\x74\x65\x6d\x70\x6c\x61\x74\x65\x0a\ \x74\x65\x6d\x70\x6c\x61\x74\x65\x73\x0a\x54\x65\x78\x61\x73\x0a\ \x74\x65\x78\x74\x0a\x74\x68\x61\x6e\x0a\x74\x68\x61\x74\x0a\x74\ \x68\x65\x0a\x74\x68\x65\x69\x72\x0a\x74\x68\x65\x6d\x0a\x74\x68\ \x65\x6e\x0a\x74\x68\x65\x6f\x72\x65\x6d\x0a\x74\x68\x65\x72\x65\ \x0a\x74\x68\x65\x73\x65\x0a\x74\x68\x65\x79\x0a\x74\x68\x69\x63\ \x6b\x6e\x65\x73\x73\x0a\x74\x68\x69\x6e\x0a\x74\x68\x69\x72\x64\ \x0a\x74\x68\x69\x73\x0a\x74\x68\x6f\x73\x65\x0a\x74\x68\x72\x65\ \x65\x0a\x74\x68\x72\x6f\x74\x74\x6c\x69\x6e\x67\x0a\x74\x68\x72\ \x6f\x75\x67\x68\x0a\x74\x69\x67\x68\x74\x6c\x79\x0a\x74\x69\x6d\ \x65\x0a\x74\x69\x6d\x65\x72\x0a\x74\x69\x6d\x65\x73\x0a\x74\x69\ \x6e\x79\x0a\x74\x69\x70\x73\x0a\x74\x69\x74\x6c\x65\x0a\x74\x69\ \x74\x6c\x65\x73\x0a\x74\x6f\x0a\x74\x6f\x67\x65\x74\x68\x65\x72\ \x0a\x74\x6f\x6f\x0a\x74\x6f\x70\x0a\x74\x6f\x72\x72\x65\x6e\x74\ \x0a\x74\x6f\x74\x61\x6c\x0a\x74\x6f\x75\x72\x0a\x74\x72\x61\x64\ \x65\x6d\x61\x72\x6b\x73\x0a\x74\x72\x61\x66\x66\x69\x63\x0a\x74\ \x72\x61\x69\x6e\x69\x6e\x67\x0a\x74\x72\x61\x6e\x73\x61\x63\x74\ \x69\x6f\x6e\x0a\x74\x72\x61\x6e\x73\x66\x65\x72\x0a\x74\x72\x61\ \x6e\x73\x66\x65\x72\x72\x65\x64\x0a\x74\x72\x61\x6e\x73\x66\x65\ \x72\x72\x69\x6e\x67\x0a\x74\x72\x61\x6e\x73\x66\x65\x72\x73\x0a\ \x74\x72\x61\x6e\x73\x6c\x75\x63\x65\x6e\x63\x79\x0a\x74\x72\x61\ \x6e\x73\x6c\x75\x63\x65\x6e\x74\x0a\x74\x72\x61\x6e\x73\x70\x61\ \x72\x65\x6e\x63\x79\x0a\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\ \x74\x0a\x74\x72\x61\x76\x65\x6c\x0a\x74\x72\x61\x76\x65\x6c\x65\ \x64\x0a\x74\x72\x75\x65\x0a\x74\x72\x79\x0a\x74\x75\x72\x6e\x0a\ \x74\x77\x69\x63\x65\x0a\x74\x77\x6f\x0a\x74\x79\x70\x65\x0a\x74\ \x79\x70\x65\x64\x0a\x74\x79\x70\x69\x63\x61\x6c\x0a\x74\x79\x70\ \x69\x63\x61\x6c\x6c\x79\x0a\x75\x6e\x61\x62\x6c\x65\x0a\x75\x6e\ \x64\x65\x72\x0a\x75\x6e\x64\x65\x72\x6c\x79\x69\x6e\x67\x0a\x75\ \x6e\x64\x65\x72\x73\x74\x61\x6e\x64\x69\x6e\x67\x0a\x75\x6e\x64\ \x6f\x65\x73\x0a\x75\x6e\x69\x71\x75\x65\x0a\x75\x6e\x69\x74\x65\ \x64\x0a\x75\x6e\x6c\x69\x6b\x65\x0a\x75\x6e\x70\x61\x63\x6b\x0a\ \x75\x6e\x73\x69\x67\x6e\x65\x64\x0a\x75\x6e\x74\x69\x6c\x0a\x75\ \x6e\x74\x6f\x75\x63\x68\x65\x64\x0a\x75\x70\x0a\x75\x70\x64\x61\ \x74\x65\x0a\x75\x70\x64\x61\x74\x65\x64\x0a\x75\x70\x64\x61\x74\ \x65\x73\x0a\x75\x70\x6c\x6f\x61\x64\x0a\x75\x70\x6c\x6f\x61\x64\ \x69\x6e\x67\x0a\x75\x70\x6c\x6f\x61\x64\x73\x0a\x75\x73\x0a\x75\ \x73\x65\x0a\x75\x73\x65\x64\x0a\x75\x73\x65\x66\x75\x6c\x0a\x75\ \x73\x65\x72\x0a\x75\x73\x65\x72\x73\x0a\x75\x73\x65\x73\x0a\x75\ \x73\x69\x6e\x67\x0a\x75\x73\x75\x61\x6c\x0a\x75\x73\x75\x61\x6c\ \x6c\x79\x0a\x76\x61\x6c\x69\x64\x0a\x76\x61\x6c\x75\x65\x0a\x76\ \x61\x6c\x75\x65\x73\x0a\x76\x61\x72\x69\x61\x62\x6c\x65\x0a\x76\ \x61\x72\x69\x61\x74\x69\x6f\x6e\x0a\x76\x61\x72\x69\x65\x74\x79\ \x0a\x76\x61\x72\x69\x6f\x75\x73\x0a\x76\x65\x63\x74\x6f\x72\x0a\ \x76\x65\x6e\x74\x75\x72\x69\x6e\x67\x0a\x76\x65\x72\x69\x66\x79\ \x69\x6e\x67\x0a\x76\x65\x72\x73\x61\x0a\x76\x65\x72\x73\x69\x6f\ \x6e\x0a\x76\x65\x72\x73\x69\x6f\x6e\x73\x0a\x76\x65\x72\x74\x69\ \x63\x61\x6c\x0a\x76\x65\x72\x79\x0a\x76\x69\x61\x0a\x76\x69\x63\ \x65\x0a\x76\x69\x72\x74\x75\x61\x6c\x0a\x76\x69\x73\x75\x61\x6c\ \x0a\x76\x6f\x69\x64\x0a\x56\x50\x0a\x77\x61\x69\x74\x69\x6e\x67\ \x0a\x57\x61\x6c\x65\x73\x0a\x77\x61\x6e\x74\x0a\x77\x61\x6e\x74\ \x73\x0a\x77\x61\x73\x0a\x77\x61\x79\x0a\x77\x61\x79\x73\x0a\x77\ \x65\x0a\x77\x65\x62\x0a\x77\x65\x62\x73\x69\x74\x65\x0a\x77\x65\ \x6c\x6c\x0a\x77\x65\x72\x65\x0a\x77\x68\x61\x74\x0a\x77\x68\x65\ \x6e\x0a\x77\x68\x65\x6e\x65\x76\x65\x72\x0a\x77\x68\x65\x72\x65\ \x0a\x77\x68\x65\x74\x68\x65\x72\x0a\x77\x68\x69\x63\x68\x0a\x77\ \x68\x69\x6c\x65\x0a\x77\x68\x69\x73\x74\x6c\x65\x0a\x77\x68\x69\ \x74\x65\x0a\x77\x68\x6f\x0a\x77\x68\x6f\x6c\x65\x0a\x77\x68\x79\ \x0a\x77\x69\x64\x67\x65\x74\x0a\x77\x69\x64\x67\x65\x74\x73\x0a\ \x77\x69\x64\x74\x68\x0a\x77\x69\x64\x74\x68\x73\x0a\x77\x69\x6c\ \x6c\x0a\x77\x69\x6e\x64\x6f\x77\x0a\x77\x69\x6e\x64\x6f\x77\x73\ \x0a\x77\x69\x73\x68\x0a\x77\x69\x74\x68\x0a\x77\x69\x74\x68\x6f\ \x75\x74\x0a\x77\x6f\x72\x64\x0a\x77\x6f\x72\x64\x73\x0a\x77\x6f\ \x72\x6b\x0a\x77\x6f\x72\x6b\x69\x6e\x67\x0a\x77\x6f\x72\x6b\x73\ \x0a\x77\x6f\x75\x6c\x64\x0a\x77\x72\x61\x70\x0a\x77\x72\x61\x70\ \x70\x65\x72\x0a\x77\x72\x69\x74\x65\x0a\x77\x72\x69\x74\x65\x73\ \x0a\x77\x72\x69\x74\x69\x6e\x67\x0a\x77\x72\x69\x74\x69\x6e\x67\ \x73\x0a\x77\x72\x69\x74\x74\x65\x6e\x0a\x58\x0a\x58\x31\x31\x0a\ \x58\x4f\x52\x0a\x79\x65\x61\x72\x0a\x79\x65\x61\x72\x73\x0a\x79\ \x65\x73\x0a\x79\x6f\x75\x0a\x79\x6f\x75\x72\x0a\x7a\x65\x72\x6f\ \x0a\ " qt_resource_name = b"\ \x00\x09\ \x0a\x6c\x78\x43\ \x00\x72\ \x00\x65\x00\x73\x00\x6f\x00\x75\x00\x72\x00\x63\x00\x65\x00\x73\ \x00\x0c\ \x0f\x6a\x4d\x94\ \x00\x77\ \x00\x6f\x00\x72\x00\x64\x00\x6c\x00\x69\x00\x73\x00\x74\x00\x2e\x00\x74\x00\x78\x00\x74\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ \x00\x00\x00\x18\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/tools/customcompleter/resources/0000755000076500000240000000000012536324427024171 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tools/customcompleter/resources/wordlist.txt0000644000076500000240000002552212536324427026607 0ustar philstaff00000000000000A4 able about above absence absolutely abstract access according accumulated achieve achieving activity acts actual actually add added adding addition additionally additions addresses adjust adjustments advanced advice after afterwards again agenda aim algorithm all allocated allow allowed allowing allows along alpha already also alternative alternatively although American an and announced annoy another answer answers any anything anyway apart API appear appears appendices appendix appends application applications apply approach approaches appropriate Arabic arbitrary are areas ARGB argument arguments around arrangements arrive arrived Arthur article articles as asked aspects assume at attachment attempt attempting attend attendees attributes authors availability available avoid away back background backgrounds bandwidth bandwidths Barcelona base based basic basically basics be because been before behave behavior behind being below benefits Berkeley between bit bits bitwise black blended blending blends block blue BMP body bold booking bool Boston both bottom box boxes braces break breaks broad browsers buffer buffers build builds built bundled burdens busy but by bypass bypassing bytes calendar call called calling calls Cambridge can canonical canonicalised cap capabilities capacity caption card care case cast catch causing centre certain challenges chance change changes changing channel channels chapter char chart charts check checks Chicago chosen chunk circle citation city claim class classes clause clauses clear clearing client clients close closed code colon color colorize colorizer colors colour column columns combine combined combines combining comes command commands comment common communicate community compiled complement complete completely completeness completes completion complex compliant component components compositing composition compression computation computer concepts conclusion concurrent configurable congested congestion connect connected connection connections cons consider consisting consists construct constructed constructing constructor constructs consume contact contain containing contains contents contents continue continued contributors control controlled controller controller controlling controls controls conventions cook cooperation copy copyright core cores corollary correct correctly corresponding could couple coworkers CPU create creates creating crucial cultures current currently custom customized cut data database datasets datum day days deal dealing decide decouple decoupled deeply def default define defines definition definitions delegate delete demo demonstrate demonstrations deployed describe describes design desktop desktops destination destinations destructor details detect determine determines developer developers development developments device devices diagram dialogs dictionary did difference differences different differs digital direct direct directions directly directory discuss display displaying displays distribute distribution disturbing divide do documentation documents does done down downLimit download downloaded downloading draw drawing drawn drop Duff during DVD dynamic dynamically dynamics each earlier easily editing editors education effect effectively effects either ellipse ellipses elliptical else email embedded emit emits empty enable enables encapsulates enclose end endnote endnotes engineer engineering English enjoys enough ensure ensures entails enter entire entitled entries entry environment erases error errors especially established etc. Europe even evenly event events eventually every everyone example examples except exception excessive exclusive existing exists expand expected expense export exposes extend extended extending extensible extension external extra extract faces facilities factory fade failure fairness falls false family fashion fast faster features February feedback feel fetch fetching few fields figure figures file file name files filled filler final finally find fine finish finished first flow fly focus followed following font foot footnote footnotes for form format formats forms formula formulas forum found framework France from front full fully function functionality functions future gain games gap general generic Germany get gill give given gives giving global go goes got gradient graph graphical graphics gray great greatly green grey group growing gui GUI hack had half Hamburg hand handing handle handler handlers handles handling happens hardware harmonica has have having he head header headers hear height help helper here high highlight highly hints his hold holder holding hole home horizontal host hosting hours Houston how however huge hyphen ID idea ideally if Illinois illustrate illustrated illustrates image images impact implement implementation implementations implemented implementing implements import important improvements in include included includes including inclusion incoming inconvenient indent index indicate inexpensively influence info information ingenious inherits initial initially inner input inspired install installs instance instead instructs integer integers integration intended intensive interest interests interface interfaces interfere internal interval into intriguing intro introduce introduced invalid invented inverse invocation involved Irish irregular is ISO ISPs issue issues it items iterate its itself job join JPEG jungle just Karaoke keep keeping key kind king known label labels landscape language large last later latest lawn layout lead leader leaders lean leaves leaving left lemma length less let level levels libraries library lies like likely limit limiting limits line linear lines linewidth link linked linking Linux list lists little lives load loading loads located location locations logo long longer look looked looking looks lookup lookups loop lout low macro made magazine magic main major make makes making manage managed managing mandatory manipulate manipulation manner many map maps March margin mask masking Massachusetts match mathematical maximum may means meet member members memory merged method might milliseconds minimize minimum minor mix MNG mode model models modes modified module moments monitored monthly more most mostly move much multitude Munich must name named names necessary need needed needs network new news newsletter next nicely no none normally Norway not note notes nothing notifies notify now null number numbered numbering numbers Nydalen object objects obtain obtaining odd of off office offset offsets often old on once one ones online only onto opacity opaque open opens operates operating operation operations operator opportunity opposed optimize option optionally options or OR order ordinary original originally Oslo other otherwise our out outer outgoing output outside over overcoming overrides overview own owner owners pace Pacific package packages packets page pages paint painted painting paragraph paragraphs parameters parent Paris parse part partial partially particular partners parts party passed passing patches path pattern patterns pause PDF peek pending perform performed performs permission permutations personal pick pie pipe pixel pixels place places planning platforms play players playing please pleasing plugin plugins plus PNG pointer pop popular populates porter Porter portrait possibility possible potential potentially power powers preceded presence present prevent prevents previous previously primarily primary primitives printed printing prior probably problem process processes processing produce produced produces products programming programs project projects proof proper properly properties property proposed proposition pros protocols proud provide provided provides provision proxy public published punch punches pursuing put Qt Qtopia quality quarter quarterly queried queries query question questions radial ragged range rate rates rather ratio raw read reader reading reads ready real realistic really received recent recognized recommended recompile rectangle rectangular red redistribute reducing reference references reflect regardless regional register registered registration reimplement reimplementation reimplemented release released releases reliable rely remains remember removed removes repeatedly replace report represent represented represents reproduced requested require required requires resetting resides resolve respective respectively response rest restart result resulting resume return returning returns reuse revealing rich riches right roadshow role Roman router routers rule run runner runners running runs sake sales salespeople same sample San Jose save saved saves say scalable scale scanline scene scenes schedule school script seam seamless search searches searching second seconds section sections security see seen selection seminar seminars sending separated separates series service services set setting setup seven seventh several shade shadow shape shares shaves shine shorter should show shown shows side signal signals signature significantly similar similarily similarly simple simplest simplified simplifying simply simulate simultaneous since single size sizes slightly slope slot slowing small smaller so socket sockets software solutions solved some soon sort sorting source sources south space special specialized specific specifically specification specifications specified specify speed spend split SQL standard standards start starts starve state states static steady stealing step still stop stopwatch store stored stores straightforward stream string strings structure structured strut style styles styling subclass subclassing subdirectory subsection subsections succeeds success successful successfully such suggestion suggestions suitable support supported supports suppose supposes sure switch switches symbol symbols synonyms system systems table tables tags take takes tap target targets TCP team technique technology template templates Texas text than that the their them then theorem there these they thickness thin third this those three throttling through tightly time timer times tiny tips title titles to together too top torrent total tour trademarks traffic training transaction transfer transferred transferring transfers translucency translucent transparency transparent travel traveled true try turn twice two type typed typical typically unable under underlying understanding undoes unique united unlike unpack unsigned until untouched up update updated updates upload uploading uploads us use used useful user users uses using usual usually valid value values variable variation variety various vector venturing verifying versa version versions vertical very via vice virtual visual void VP waiting Wales want wants was way ways we web website well were what when whenever where whether which while whistle white who whole why widget widgets width widths will window windows wish with without word words work working works would wrap wrapper write writes writing writings written X X11 XOR year years yes you your zero PyQt-x11-gpl-4.11.4/examples/tools/i18n/0000755000076500000240000000000012536324427017511 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tools/i18n/i18n.py0000755000076500000240000001763412536324427020660 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui try: import i18n_rc3 except ImportError: import i18n_rc2 class LanguageChooser(QtGui.QDialog): def __init__(self, parent=None): super(LanguageChooser, self).__init__(parent, QtCore.Qt.WindowStaysOnTopHint) self.qmFileForCheckBoxMap = {} self.mainWindowForCheckBoxMap = {} groupBox = QtGui.QGroupBox("Languages") groupBoxLayout = QtGui.QGridLayout() qmFiles = self.findQmFiles() for i, qmf in enumerate(qmFiles): checkBox = QtGui.QCheckBox(self.languageName(qmf)) self.qmFileForCheckBoxMap[checkBox] = qmf checkBox.toggled.connect(self.checkBoxToggled) groupBoxLayout.addWidget(checkBox, i / 2, i % 2) groupBox.setLayout(groupBoxLayout) buttonBox = QtGui.QDialogButtonBox() showAllButton = buttonBox.addButton("Show All", QtGui.QDialogButtonBox.ActionRole) hideAllButton = buttonBox.addButton("Hide All", QtGui.QDialogButtonBox.ActionRole) showAllButton.clicked.connect(self.showAll) hideAllButton.clicked.connect(self.hideAll) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(groupBox) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) if hasattr(QtGui, 'qt_mac_set_menubar_merge'): QtGui.qt_mac_set_menubar_merge(False) self.setWindowTitle("I18N") def eventFilter(self, object, event): if event.type() == QtCore.QEvent.Close: if isinstance(object, MainWindow): window = object for checkBox, w in self.mainWindowForCheckBoxMap.items(): if w is window: break else: checkBox = None if checkBox: checkBox.setChecked(False) return QtGui.QWidget.eventFilter(self, object, event) def closeEvent(self, event): QtGui.qApp.quit() def checkBoxToggled(self): checkBox = self.sender() window = self.mainWindowForCheckBoxMap.get(checkBox) if not window: translator = QtCore.QTranslator() translator.load(self.qmFileForCheckBoxMap[checkBox]) QtGui.qApp.installTranslator(translator) # Because we will be installing an event filter for the main window # it is important that this instance isn't garbage collected before # the main window when the program terminates. We ensure this by # making the main window a child of this one. window = MainWindow(self) window.setPalette(QtGui.QPalette(self.colorForLanguage(checkBox.text()))) window.installEventFilter(self) self.mainWindowForCheckBoxMap[checkBox] = window window.setVisible(checkBox.isChecked()) def showAll(self): for checkBox in self.qmFileForCheckBoxMap.keys(): checkBox.setChecked(True) def hideAll(self): for checkBox in self.qmFileForCheckBoxMap.keys(): checkBox.setChecked(False) def findQmFiles(self): trans_dir = QtCore.QDir(':/translations') fileNames = trans_dir.entryList(['*.qm'], QtCore.QDir.Files, QtCore.QDir.Name) return [trans_dir.filePath(fn) for fn in fileNames] def languageName(self, qmFile): translator = QtCore.QTranslator() translator.load(qmFile) return translator.translate("MainWindow", "English") def colorForLanguage(self, language): hashValue = hash(language) red = 156 + (hashValue & 0x3F) green = 156 + ((hashValue >> 6) & 0x3F) blue = 156 + ((hashValue >> 12) & 0x3F) return QtGui.QColor(red, green, blue) class MainWindow(QtGui.QMainWindow): listEntries = [QtCore.QT_TRANSLATE_NOOP("MainWindow", "First"), QtCore.QT_TRANSLATE_NOOP("MainWindow", "Second"), QtCore.QT_TRANSLATE_NOOP("MainWindow", "Third")] def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.centralWidget = QtGui.QWidget() self.setCentralWidget(self.centralWidget) self.createGroupBox() listWidget = QtGui.QListWidget() for le in MainWindow.listEntries: listWidget.addItem(self.tr(le)) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.groupBox) mainLayout.addWidget(listWidget) self.centralWidget.setLayout(mainLayout) exitAction = QtGui.QAction(self.tr("E&xit"), self, triggered=QtGui.qApp.quit) fileMenu = self.menuBar().addMenu(self.tr("&File")) fileMenu.setPalette(QtGui.QPalette(QtCore.Qt.red)) fileMenu.addAction(exitAction) self.setWindowTitle(self.tr("Language: %s") % self.tr("English")) self.statusBar().showMessage(self.tr("Internationalization Example")) if self.tr("LTR") == "RTL": self.setLayoutDirection(QtCore.Qt.RightToLeft) def createGroupBox(self): self.groupBox = QtGui.QGroupBox(self.tr("View")) perspectiveRadioButton = QtGui.QRadioButton(self.tr("Perspective")) isometricRadioButton = QtGui.QRadioButton(self.tr("Isometric")) obliqueRadioButton = QtGui.QRadioButton(self.tr("Oblique")) perspectiveRadioButton.setChecked(True) self.groupBoxLayout = QtGui.QVBoxLayout() self.groupBoxLayout.addWidget(perspectiveRadioButton) self.groupBoxLayout.addWidget(isometricRadioButton) self.groupBoxLayout.addWidget(obliqueRadioButton) self.groupBox.setLayout(self.groupBoxLayout) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) chooser = LanguageChooser() chooser.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tools/i18n/i18n.qrc0000644000076500000240000000120012536324427020770 0ustar philstaff00000000000000 translations/i18n_ar.qm translations/i18n_cs.qm translations/i18n_de.qm translations/i18n_el.qm translations/i18n_en.qm translations/i18n_eo.qm translations/i18n_fr.qm translations/i18n_it.qm translations/i18n_jp.qm translations/i18n_ko.qm translations/i18n_no.qm translations/i18n_ru.qm translations/i18n_sv.qm translations/i18n_zh.qm PyQt-x11-gpl-4.11.4/examples/tools/i18n/i18n_rc2.py0000644000076500000240000013724112536324427021420 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:49:41 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x03\x4c\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x22\x00\x47\xdf\x04\ \x00\x00\x00\x3d\x00\x4d\x09\xa4\x00\x00\x00\x58\x00\x5a\xf0\x84\ \x00\x00\x00\x71\x02\xf0\x8c\x31\x00\x00\x00\x8e\x05\x93\x08\xe5\ \x00\x00\x00\xaf\x05\x9b\xa6\x44\x00\x00\x00\xc8\x06\x3c\xe8\x53\ \x00\x00\x00\xe3\x06\xec\x79\x65\x00\x00\x01\x04\x0c\x4e\x30\xd8\ \x00\x00\x01\x25\x0e\x9f\xe7\x05\x00\x00\x01\x40\x69\x00\x00\x01\ \x87\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x06\x00\x56\x00\x75\x00\x65\x05\x00\x05\ \xcf\xc7\x01\x03\x00\x00\x00\x10\x00\x26\x00\x46\x00\x69\x00\x63\ \x00\x68\x00\x69\x00\x65\x00\x72\x05\x00\x2a\xd0\x25\x01\x03\x00\ \x00\x00\x10\x00\x26\x00\x51\x00\x75\x00\x69\x00\x74\x00\x74\x00\ \x65\x00\x72\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0e\x00\x50\ \x00\x72\x00\x65\x00\x6d\x00\x69\x00\x65\x00\x72\x05\x00\x4d\x09\ \xa4\x01\x03\x00\x00\x00\x12\x00\x54\x00\x72\x00\x6f\x00\x69\x00\ \x73\x00\x69\x00\xe8\x00\x6d\x00\x65\x05\x00\x5a\xf0\x84\x01\x03\ \x00\x00\x00\x16\x00\x4c\x00\x61\x00\x6e\x00\x67\x00\x75\x00\x65\ \x00\x20\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\ \x03\x00\x00\x00\x0e\x00\x4f\x00\x62\x00\x6c\x00\x69\x00\x71\x00\ \x75\x00\x65\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x10\x00\x44\ \x00\x65\x00\x75\x00\x78\x00\x69\x00\xe8\x00\x6d\x00\x65\x05\x05\ \x9b\xa6\x44\x01\x03\x00\x00\x00\x16\x00\x49\x00\x73\x00\x6f\x00\ \x6d\x00\xe9\x00\x74\x00\x72\x00\x69\x00\x71\x00\x75\x00\x65\x05\ \x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\x00\x50\x00\x65\x00\x72\ \x00\x73\x00\x70\x00\x65\x00\x63\x00\x74\x00\x69\x00\x76\x00\x65\ \x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x10\x00\x46\x00\x72\x00\ \x61\x00\x6e\x00\xe7\x00\x61\x00\x69\x00\x73\x05\x0c\x4e\x30\xd8\ \x01\x03\x00\x00\x00\x3c\x00\x45\x00\x78\x00\x65\x00\x6d\x00\x70\ \x00\x6c\x00\x65\x00\x20\x00\x64\x00\x27\x00\x69\x00\x6e\x00\x74\ \x00\x65\x00\x72\x00\x6e\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\ \x00\x61\x00\x6c\x00\x69\x00\x73\x00\x61\x00\x74\x00\x69\x00\x6f\ \x00\x6e\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\ \x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x02\xb2\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x20\x00\x47\xdf\x04\ \x00\x00\x00\x33\x00\x4d\x09\xa4\x00\x00\x00\x46\x00\x5a\xf0\x84\ \x00\x00\x00\x57\x02\xf0\x8c\x31\x00\x00\x00\x68\x05\x93\x08\xe5\ \x00\x00\x00\x81\x05\x9b\xa6\x44\x00\x00\x00\x90\x06\x3c\xe8\x53\ \x00\x00\x00\xa1\x06\xec\x79\x65\x00\x00\x00\xb2\x0c\x4e\x30\xd8\ \x00\x00\x00\xc5\x0e\x9f\xe7\x05\x00\x00\x00\xd6\x69\x00\x00\x00\ \xed\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x04\xbc\xf4\xae\x30\x05\x00\x05\xcf\xc7\ \x01\x03\x00\x00\x00\x08\xd3\x0c\xc7\x7c\x00\x26\x00\x46\x05\x00\ \x2a\xd0\x25\x01\x03\x00\x00\x00\x08\xc8\x85\xb8\xcc\x00\x26\x00\ \x58\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x06\xcc\xab\xbc\x88\ \xc9\xf8\x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x06\xc1\x38\xbc\ \x88\xc9\xf8\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x0e\xc5\xb8\ \xc5\xb4\x00\x20\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\ \x31\x01\x03\x00\x00\x00\x04\xbe\x57\xac\x01\x05\x05\x93\x08\xe5\ \x01\x03\x00\x00\x00\x06\xb4\x50\xbc\x88\xc9\xf8\x05\x05\x9b\xa6\ \x44\x01\x03\x00\x00\x00\x06\xb4\xf1\xce\x21\xb3\xc4\x05\x06\x3c\ \xe8\x53\x01\x03\x00\x00\x00\x08\xc6\xd0\xad\xfc\xd6\x54\xbc\x95\ \x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x06\xd5\x5c\xad\x6d\xc5\ \xb4\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x0c\xad\x6d\xc8\x1c\ \xd6\x54\x00\x20\xc6\x08\xc8\x1c\x05\x0e\x9f\xe7\x05\x01\x2f\x00\ \x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\ \x00\ \x00\x00\x03\x26\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x22\x00\x47\xdf\x04\ \x00\x00\x00\x35\x00\x4d\x09\xa4\x00\x00\x00\x4a\x00\x5a\xf0\x84\ \x00\x00\x00\x61\x02\xf0\x8c\x31\x00\x00\x00\x78\x05\x93\x08\xe5\ \x00\x00\x00\x93\x05\x9b\xa6\x44\x00\x00\x00\xaa\x06\x3c\xe8\x53\ \x00\x00\x00\xc1\x06\xec\x79\x65\x00\x00\x00\xe8\x0c\x4e\x30\xd8\ \x00\x00\x01\x09\x0e\x9f\xe7\x05\x00\x00\x01\x22\x69\x00\x00\x01\ \x61\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x06\x04\x12\x04\x38\x04\x34\x05\x00\x05\ \xcf\xc7\x01\x03\x00\x00\x00\x08\x04\x24\x04\x30\x04\x39\x04\x3b\ \x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x0a\x04\x12\x04\x4b\x04\ \x45\x04\x3e\x04\x34\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0c\ \x04\x1f\x04\x35\x04\x40\x04\x32\x04\x4b\x04\x39\x05\x00\x4d\x09\ \xa4\x01\x03\x00\x00\x00\x0c\x04\x22\x04\x40\x04\x35\x04\x42\x04\ \x38\x04\x39\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x10\x04\x2f\ \x04\x37\x04\x4b\x04\x3a\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\ \xf0\x8c\x31\x01\x03\x00\x00\x00\x0c\x04\x1a\x04\x43\x04\x40\x04\ \x41\x04\x38\x04\x32\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x0c\ \x04\x12\x04\x42\x04\x3e\x04\x40\x04\x3e\x04\x39\x05\x05\x9b\xa6\ \x44\x01\x03\x00\x00\x00\x1c\x04\x18\x04\x37\x04\x3e\x04\x3c\x04\ \x35\x04\x42\x04\x40\x04\x38\x04\x47\x04\x35\x04\x41\x04\x3a\x04\ \x38\x04\x39\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\x04\x1f\ \x04\x35\x04\x40\x04\x41\x04\x3f\x04\x35\x04\x3a\x04\x42\x04\x38\ \x04\x32\x04\x30\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x0e\x04\ \x20\x04\x43\x04\x41\x04\x41\x04\x3a\x04\x38\x04\x39\x05\x0c\x4e\ \x30\xd8\x01\x03\x00\x00\x00\x34\x04\x1f\x04\x40\x04\x38\x04\x3c\ \x04\x35\x04\x40\x00\x20\x04\x38\x04\x3d\x04\x42\x04\x35\x04\x40\ \x04\x3d\x04\x30\x04\x46\x04\x38\x04\x3d\x04\x3e\x04\x30\x04\x3b\ \x04\x38\x04\x37\x04\x30\x04\x46\x04\x38\x04\x38\x05\x0e\x9f\xe7\ \x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\ \x6e\x64\x6f\x77\x00\ \x00\x00\x03\x2e\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x24\x00\x47\xdf\x04\ \x00\x00\x00\x3b\x00\x4d\x09\xa4\x00\x00\x00\x56\x00\x5a\xf0\x84\ \x00\x00\x00\x6d\x02\xf0\x8c\x31\x00\x00\x00\x84\x05\x93\x08\xe5\ \x00\x00\x00\xa1\x05\x9b\xa6\x44\x00\x00\x00\xb6\x06\x3c\xe8\x53\ \x00\x00\x00\xcb\x06\xec\x79\x65\x00\x00\x00\xec\x0c\x4e\x30\xd8\ \x00\x00\x01\x0d\x0e\x9f\xe7\x05\x00\x00\x01\x26\x69\x00\x00\x01\ \x69\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x08\x00\x56\x00\x69\x00\x73\x00\x61\x05\ \x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0c\x00\x26\x00\x41\x00\x72\ \x00\x6b\x00\x69\x00\x76\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\ \x10\x00\x26\x00\x41\x00\x76\x00\x73\x00\x6c\x00\x75\x00\x74\x00\ \x61\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0c\x00\x46\x00\xf6\ \x00\x72\x00\x73\x00\x74\x00\x61\x05\x00\x4d\x09\xa4\x01\x03\x00\ \x00\x00\x0c\x00\x54\x00\x72\x00\x65\x00\x64\x00\x6a\x00\x65\x05\ \x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x12\x00\x53\x00\x70\x00\x72\ \x00\xe5\x00\x6b\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\ \x31\x01\x03\x00\x00\x00\x0a\x00\x53\x00\x6b\x00\x65\x00\x76\x00\ \x74\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x0a\x00\x41\x00\x6e\ \x00\x64\x00\x72\x00\x61\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\ \x16\x00\x49\x00\x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\ \x69\x00\x73\x00\x6b\x00\x74\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\ \x00\x16\x00\x50\x00\x65\x00\x72\x00\x73\x00\x70\x00\x65\x00\x6b\ \x00\x74\x00\x69\x00\x76\x00\x74\x05\x06\xec\x79\x65\x01\x03\x00\ \x00\x00\x0e\x00\x53\x00\x76\x00\x65\x00\x6e\x00\x73\x00\x6b\x00\ \x61\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x38\x00\x49\x00\x6e\ \x00\x74\x00\x65\x00\x72\x00\x6e\x00\x61\x00\x74\x00\x69\x00\x6f\ \x00\x6e\x00\x61\x00\x6c\x00\x69\x00\x73\x00\x65\x00\x72\x00\x69\ \x00\x6e\x00\x67\x00\x73\x00\x65\x00\x78\x00\x65\x00\x6d\x00\x70\ \x00\x65\x00\x6c\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\ \x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x03\x50\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x2a\x00\x47\xdf\x04\ \x00\x00\x00\x41\x00\x4d\x09\xa4\x00\x00\x00\x5c\x00\x5a\xf0\x84\ \x00\x00\x00\x75\x02\xf0\x8c\x31\x00\x00\x00\x90\x05\x93\x08\xe5\ \x00\x00\x00\xb1\x05\x9b\xa6\x44\x00\x00\x00\xc8\x06\x3c\xe8\x53\ \x00\x00\x00\xe3\x06\xec\x79\x65\x00\x00\x01\x04\x0c\x4e\x30\xd8\ \x00\x00\x01\x2b\x0e\x9f\xe7\x05\x00\x00\x01\x44\x69\x00\x00\x01\ \x8b\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x0e\x00\x41\x00\x6e\x00\x73\x00\x69\x00\ \x63\x00\x68\x00\x74\x05\x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0c\ \x00\x26\x00\x44\x00\x61\x00\x74\x00\x65\x00\x69\x05\x00\x2a\xd0\ \x25\x01\x03\x00\x00\x00\x10\x00\x42\x00\x65\x00\x26\x00\x65\x00\ \x6e\x00\x64\x00\x65\x00\x6e\x05\x00\x47\xdf\x04\x01\x03\x00\x00\ \x00\x0e\x00\x45\x00\x72\x00\x73\x00\x74\x00\x65\x00\x6e\x00\x73\ \x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x10\x00\x44\x00\x72\x00\ \x69\x00\x74\x00\x74\x00\x65\x00\x6e\x00\x73\x05\x00\x5a\xf0\x84\ \x01\x03\x00\x00\x00\x16\x00\x53\x00\x70\x00\x72\x00\x61\x00\x63\ \x00\x68\x00\x65\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\ \x31\x01\x03\x00\x00\x00\x0c\x00\x53\x00\x63\x00\x68\x00\x69\x00\ \x65\x00\x66\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x10\x00\x5a\ \x00\x77\x00\x65\x00\x69\x00\x74\x00\x65\x00\x6e\x00\x73\x05\x05\ \x9b\xa6\x44\x01\x03\x00\x00\x00\x16\x00\x49\x00\x73\x00\x6f\x00\ \x6d\x00\x65\x00\x74\x00\x72\x00\x69\x00\x73\x00\x63\x00\x68\x05\ \x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x1c\x00\x50\x00\x65\x00\x72\ \x00\x73\x00\x70\x00\x65\x00\x6b\x00\x74\x00\x69\x00\x76\x00\x69\ \x00\x73\x00\x63\x00\x68\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\ \x0e\x00\x44\x00\x65\x00\x75\x00\x74\x00\x73\x00\x63\x00\x68\x05\ \x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x3c\x00\x49\x00\x6e\x00\x74\ \x00\x65\x00\x72\x00\x6e\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\ \x00\x61\x00\x6c\x00\x69\x00\x73\x00\x69\x00\x65\x00\x72\x00\x75\ \x00\x6e\x00\x67\x00\x73\x00\x62\x00\x65\x00\x69\x00\x73\x00\x70\ \x00\x69\x00\x65\x00\x6c\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\ \x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x02\xbc\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x20\x00\x47\xdf\x04\ \x00\x00\x00\x37\x00\x4d\x09\xa4\x00\x00\x00\x4e\x00\x5a\xf0\x84\ \x00\x00\x00\x5f\x02\xf0\x8c\x31\x00\x00\x00\x70\x05\x93\x08\xe5\ \x00\x00\x00\x87\x05\x9b\xa6\x44\x00\x00\x00\x98\x06\x3c\xe8\x53\ \x00\x00\x00\xa9\x06\xec\x79\x65\x00\x00\x00\xbc\x0c\x4e\x30\xd8\ \x00\x00\x00\xcf\x0e\x9f\xe7\x05\x00\x00\x00\xe2\x69\x00\x00\x00\ \xf7\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x04\x89\xc6\x56\xfe\x05\x00\x05\xcf\xc7\ \x01\x03\x00\x00\x00\x0c\x65\x87\x4e\xf6\x00\x5b\x00\x26\x00\x46\ \x00\x5d\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x0c\x90\x00\x51\ \xfa\x00\x5b\x00\x26\x00\x78\x00\x5d\x05\x00\x47\xdf\x04\x01\x03\ \x00\x00\x00\x06\x7b\x2c\x4e\x00\x4e\x2a\x05\x00\x4d\x09\xa4\x01\ \x03\x00\x00\x00\x06\x7b\x2c\x4e\x09\x4e\x2a\x05\x00\x5a\xf0\x84\ \x01\x03\x00\x00\x00\x0c\x8b\xed\x8a\x00\x00\x3a\x00\x20\x00\x25\ \x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\x00\x00\x06\x65\x9c\x62\ \x95\x5f\x71\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x06\x7b\x2c\ \x4e\x8c\x4e\x2a\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\x08\x7b\ \x49\x89\xd2\x62\x95\x5f\x71\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\ \x00\x08\x90\x0f\x89\xc6\x62\x95\x5f\x71\x05\x06\xec\x79\x65\x01\ \x03\x00\x00\x00\x08\x7b\x80\x4f\x53\x4e\x2d\x65\x87\x05\x0c\x4e\ \x30\xd8\x01\x03\x00\x00\x00\x0a\x56\xfd\x96\x45\x53\x16\x83\x03\ \x4f\x8b\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\ \x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x02\xe0\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x24\x00\x47\xdf\x04\ \x00\x00\x00\x39\x00\x4d\x09\xa4\x00\x00\x00\x4c\x00\x5a\xf0\x84\ \x00\x00\x00\x5d\x02\xf0\x8c\x31\x00\x00\x00\x70\x05\x93\x08\xe5\ \x00\x00\x00\x8d\x05\x9b\xa6\x44\x00\x00\x00\xa0\x06\x3c\xe8\x53\ \x00\x00\x00\xb3\x06\xec\x79\x65\x00\x00\x00\xca\x0c\x4e\x30\xd8\ \x00\x00\x00\xdf\x0e\x9f\xe7\x05\x00\x00\x00\xf8\x69\x00\x00\x01\ \x1b\x03\x00\x00\x00\x06\x00\x52\x00\x54\x00\x4c\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x08\x06\x45\x06\x31\x06\x26\x06\x49\x05\ \x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0a\x06\x27\x06\x44\x06\x45\ \x06\x44\x06\x41\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x08\x06\ \x23\x06\x2e\x06\x31\x06\x2c\x05\x00\x47\xdf\x04\x01\x03\x00\x00\ \x00\x06\x06\x23\x06\x48\x06\x44\x05\x00\x4d\x09\xa4\x01\x03\x00\ \x00\x00\x08\x06\x2b\x06\x27\x06\x44\x06\x2b\x05\x00\x5a\xf0\x84\ \x01\x03\x00\x00\x00\x12\x06\x27\x06\x44\x06\x44\x06\x3a\x06\x29\ \x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\ \x00\x00\x08\x06\x45\x06\x35\x06\x45\x06\x2a\x05\x05\x93\x08\xe5\ \x01\x03\x00\x00\x00\x08\x06\x2b\x06\x27\x06\x46\x06\x49\x05\x05\ \x9b\xa6\x44\x01\x03\x00\x00\x00\x0c\x06\x45\x06\x2a\x06\x45\x06\ \x27\x06\x2b\x06\x44\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x0a\ \x06\x45\x06\x46\x06\x38\x06\x48\x06\x31\x05\x06\xec\x79\x65\x01\ \x03\x00\x00\x00\x0e\x06\x27\x06\x44\x06\x39\x06\x31\x06\x28\x06\ \x4a\x06\x29\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x18\x06\x45\ \x06\x2b\x06\x27\x06\x44\x00\x20\x06\x27\x06\x44\x06\x2a\x06\x2f\ \x06\x48\x06\x4a\x06\x44\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\ \x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x03\x1c\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x28\x00\x47\xdf\x04\ \x00\x00\x00\x41\x00\x4d\x09\xa4\x00\x00\x00\x58\x00\x5a\xf0\x84\ \x00\x00\x00\x6d\x02\xf0\x8c\x31\x00\x00\x00\x82\x05\x93\x08\xe5\ \x00\x00\x00\x9f\x05\x9b\xa6\x44\x00\x00\x00\xbc\x06\x3c\xe8\x53\ \x00\x00\x00\xd1\x06\xec\x79\x65\x00\x00\x00\xf2\x0c\x4e\x30\xd8\ \x00\x00\x01\x15\x0e\x9f\xe7\x05\x00\x00\x01\x2a\x69\x00\x00\x01\ \x57\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x0c\x00\x50\x00\x6f\x00\x68\x00\x6c\x00\ \x65\x00\x64\x05\x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0e\x00\x26\ \x00\x53\x00\x6f\x00\x75\x00\x62\x00\x6f\x00\x72\x05\x00\x2a\xd0\ \x25\x01\x03\x00\x00\x00\x0c\x00\x26\x00\x4b\x00\x6f\x00\x6e\x00\ \x65\x00\x63\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0a\x00\x50\ \x00\x72\x00\x76\x00\x6e\x00\xed\x05\x00\x4d\x09\xa4\x01\x03\x00\ \x00\x00\x0a\x00\x54\x01\x59\x00\x65\x00\x74\x00\xed\x05\x00\x5a\ \xf0\x84\x01\x03\x00\x00\x00\x12\x00\x4a\x00\x61\x00\x79\x00\x7a\ \x00\x6b\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\ \x03\x00\x00\x00\x12\x00\x4e\x00\x61\x00\x6b\x00\x6c\x00\x6f\x00\ \x6e\x01\x1b\x00\x6e\x00\xfd\x05\x05\x93\x08\xe5\x01\x03\x00\x00\ \x00\x0a\x00\x44\x00\x72\x00\x75\x00\x68\x00\xfd\x05\x05\x9b\xa6\ \x44\x01\x03\x00\x00\x00\x16\x00\x49\x00\x73\x00\x6f\x00\x6d\x00\ \x65\x00\x74\x00\x72\x00\x69\x00\x63\x00\x6b\x00\xfd\x05\x06\x3c\ \xe8\x53\x01\x03\x00\x00\x00\x18\x00\x50\x00\x65\x00\x72\x00\x73\ \x00\x70\x00\x65\x00\x6b\x00\x74\x00\x69\x00\x76\x00\x6e\x00\xed\ \x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x0a\x01\x0c\x00\x65\x00\ \x73\x00\x6b\x00\xfd\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x22\ \x00\x55\x00\x6b\x00\xe1\x00\x7a\x00\x6b\x00\x61\x00\x20\x00\x6c\ \x00\x6f\x00\x6b\x00\x61\x00\x6c\x00\x69\x00\x7a\x00\x61\x00\x63\ \x00\x65\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\ \x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x03\x28\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x26\x00\x47\xdf\x04\ \x00\x00\x00\x3b\x00\x4d\x09\xa4\x00\x00\x00\x50\x00\x5a\xf0\x84\ \x00\x00\x00\x65\x02\xf0\x8c\x31\x00\x00\x00\x7a\x05\x93\x08\xe5\ \x00\x00\x00\x99\x05\x9b\xa6\x44\x00\x00\x00\xb2\x06\x3c\xe8\x53\ \x00\x00\x00\xcb\x06\xec\x79\x65\x00\x00\x00\xea\x0c\x4e\x30\xd8\ \x00\x00\x01\x0b\x0e\x9f\xe7\x05\x00\x00\x01\x26\x69\x00\x00\x01\ \x63\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x0a\x00\x56\x00\x69\x00\x73\x00\x74\x00\ \x61\x05\x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0a\x00\x26\x00\x46\ \x00\x69\x00\x6c\x00\x65\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\ \x0a\x00\x26\x00\x45\x00\x73\x00\x63\x00\x69\x05\x00\x47\xdf\x04\ \x01\x03\x00\x00\x00\x0a\x00\x50\x00\x72\x00\x69\x00\x6d\x00\x6f\ \x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x0a\x00\x54\x00\x65\x00\ \x72\x00\x7a\x00\x6f\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x14\ \x00\x4c\x00\x69\x00\x6e\x00\x67\x00\x75\x00\x61\x00\x3a\x00\x20\ \x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\x00\x00\x0e\x00\ \x4f\x00\x62\x00\x6c\x00\x69\x00\x71\x00\x75\x00\x61\x05\x05\x93\ \x08\xe5\x01\x03\x00\x00\x00\x0e\x00\x53\x00\x65\x00\x63\x00\x6f\ \x00\x6e\x00\x64\x00\x6f\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\ \x14\x00\x49\x00\x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\ \x69\x00\x63\x00\x61\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\ \x00\x50\x00\x72\x00\x6f\x00\x73\x00\x70\x00\x65\x00\x74\x00\x74\ \x00\x69\x00\x63\x00\x61\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\ \x10\x00\x49\x00\x74\x00\x61\x00\x6c\x00\x69\x00\x61\x00\x6e\x00\ \x6f\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x32\x00\x45\x00\x73\ \x00\x65\x00\x6d\x00\x70\x00\x69\x00\x6f\x00\x20\x00\x64\x00\x69\ \x00\x20\x00\x6c\x00\x6f\x00\x63\x00\x61\x00\x6c\x00\x69\x00\x7a\ \x00\x7a\x00\x61\x00\x7a\x00\x69\x00\x6f\x00\x6e\x00\x65\x05\x0e\ \x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\ \x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x03\x24\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x22\x00\x47\xdf\x04\ \x00\x00\x00\x35\x00\x4d\x09\xa4\x00\x00\x00\x50\x00\x5a\xf0\x84\ \x00\x00\x00\x67\x02\xf0\x8c\x31\x00\x00\x00\x7e\x05\x93\x08\xe5\ \x00\x00\x00\x9b\x05\x9b\xa6\x44\x00\x00\x00\xb2\x06\x3c\xe8\x53\ \x00\x00\x00\xc7\x06\xec\x79\x65\x00\x00\x00\xe6\x0c\x4e\x30\xd8\ \x00\x00\x01\x05\x0e\x9f\xe7\x05\x00\x00\x01\x1a\x69\x00\x00\x01\ \x5f\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x06\x00\x56\x00\x69\x00\x73\x05\x00\x05\ \xcf\xc7\x01\x03\x00\x00\x00\x08\x00\x26\x00\x46\x00\x69\x00\x6c\ \x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x10\x00\x26\x00\x41\x00\ \x76\x00\x73\x00\x6c\x00\x75\x00\x74\x00\x74\x05\x00\x47\xdf\x04\ \x01\x03\x00\x00\x00\x0c\x00\x46\x00\xf8\x00\x72\x00\x73\x00\x74\ \x00\x65\x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x0c\x00\x54\x00\ \x72\x00\x65\x00\x64\x00\x6a\x00\x65\x05\x00\x5a\xf0\x84\x01\x03\ \x00\x00\x00\x12\x00\x53\x00\x70\x00\x72\x00\xe5\x00\x6b\x00\x3a\ \x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\x00\x00\ \x0c\x00\x53\x00\x6b\x00\x6a\x00\x65\x00\x76\x00\x74\x05\x05\x93\ \x08\xe5\x01\x03\x00\x00\x00\x0a\x00\x41\x00\x6e\x00\x64\x00\x72\ \x00\x65\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\x14\x00\x49\x00\ \x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\x69\x00\x73\x00\ \x6b\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x14\x00\x50\x00\x65\ \x00\x72\x00\x73\x00\x70\x00\x65\x00\x6b\x00\x74\x00\x69\x00\x76\ \x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x0a\x00\x4e\x00\x6f\x00\ \x72\x00\x73\x00\x6b\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x3a\ \x00\x49\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6e\x00\x61\x00\x73\ \x00\x6a\x00\x6f\x00\x6e\x00\x61\x00\x6c\x00\x69\x00\x73\x00\x65\ \x00\x72\x00\x69\x00\x6e\x00\x67\x00\x73\x00\x65\x00\x6b\x00\x73\ \x00\x65\x00\x6d\x00\x70\x00\x65\x00\x6c\x05\x0e\x9f\xe7\x05\x01\ \x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\ \x6f\x77\x00\ \x00\x00\x03\x24\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x22\x00\x47\xdf\x04\ \x00\x00\x00\x3b\x00\x4d\x09\xa4\x00\x00\x00\x54\x00\x5a\xf0\x84\ \x00\x00\x00\x69\x02\xf0\x8c\x31\x00\x00\x00\x7e\x05\x93\x08\xe5\ \x00\x00\x00\x9d\x05\x9b\xa6\x44\x00\x00\x00\xb4\x06\x3c\xe8\x53\ \x00\x00\x00\xcd\x06\xec\x79\x65\x00\x00\x00\xec\x0c\x4e\x30\xd8\ \x00\x00\x01\x09\x0e\x9f\xe7\x05\x00\x00\x01\x24\x69\x00\x00\x01\ \x5f\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x06\x03\x8c\x03\xc8\x03\xb7\x05\x00\x05\ \xcf\xc7\x01\x03\x00\x00\x00\x0e\x00\x26\x03\x91\x03\xc1\x03\xc7\ \x03\xb5\x03\xaf\x03\xbf\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\ \x0e\x03\x88\x00\x26\x03\xbe\x03\xbf\x03\xb4\x03\xbf\x03\xc2\x05\ \x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0a\x03\xa0\x03\xc1\x03\xce\ \x03\xc4\x03\xbf\x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x0a\x03\ \xa4\x03\xc1\x03\xaf\x03\xc4\x03\xbf\x05\x00\x5a\xf0\x84\x01\x03\ \x00\x00\x00\x14\x03\x93\x03\xbb\x03\xce\x03\xc3\x03\xc3\x03\xb1\ \x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\ \x00\x00\x0c\x03\xa0\x03\xbb\x03\xac\x03\xb3\x03\xb9\x03\xb1\x05\ \x05\x93\x08\xe5\x01\x03\x00\x00\x00\x0e\x03\x94\x03\xb5\x03\xcd\ \x03\xc4\x03\xb5\x03\xc1\x03\xbf\x05\x05\x9b\xa6\x44\x01\x03\x00\ \x00\x00\x14\x03\x99\x03\xc3\x03\xbf\x03\xbc\x03\xb5\x03\xc4\x03\ \xc1\x03\xb9\x03\xba\x03\xae\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\ \x00\x12\x03\xa0\x03\xc1\x03\xbf\x03\xbf\x03\xc0\x03\xc4\x03\xb9\ \x03\xba\x03\xae\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x10\x03\ \x95\x03\xbb\x03\xbb\x03\xb7\x03\xbd\x03\xb9\x03\xba\x03\xac\x05\ \x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x30\x03\xa0\x03\xb1\x03\xc1\ \x03\xac\x03\xb4\x03\xb5\x03\xb9\x03\xb3\x03\xbc\x03\xb1\x00\x20\ \x03\xb4\x03\xb9\x03\xb5\x03\xb8\x03\xbd\x03\xbf\x03\xc0\x03\xbf\ \x03\xaf\x03\xb7\x03\xc3\x03\xb7\x03\xc2\x05\x0e\x9f\xe7\x05\x01\ \x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\ \x6f\x77\x00\ \x00\x00\x03\x26\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x2a\x00\x47\xdf\x04\ \x00\x00\x00\x45\x00\x4d\x09\xa4\x00\x00\x00\x5a\x00\x5a\xf0\x84\ \x00\x00\x00\x6d\x02\xf0\x8c\x31\x00\x00\x00\x80\x05\x93\x08\xe5\ \x00\x00\x00\x9f\x05\x9b\xa6\x44\x00\x00\x00\xb8\x06\x3c\xe8\x53\ \x00\x00\x00\xc9\x06\xec\x79\x65\x00\x00\x00\xe6\x0c\x4e\x30\xd8\ \x00\x00\x01\x07\x0e\x9f\xe7\x05\x00\x00\x01\x24\x69\x00\x00\x01\ \x61\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x0e\x00\x41\x00\x73\x00\x70\x00\x65\x00\ \x6b\x00\x74\x00\x6f\x05\x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x10\ \x00\x26\x00\x44\x00\x6f\x00\x73\x00\x69\x00\x65\x00\x72\x00\x6f\ \x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x0a\x00\x26\x00\x46\x00\ \x69\x00\x6e\x00\x69\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x08\ \x00\x55\x00\x6e\x00\x75\x00\x65\x05\x00\x4d\x09\xa4\x01\x03\x00\ \x00\x00\x08\x00\x54\x00\x72\x00\x69\x00\x65\x05\x00\x5a\xf0\x84\ \x01\x03\x00\x00\x00\x14\x00\x4c\x00\x69\x00\x6e\x00\x67\x00\x76\ \x00\x6f\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\ \x03\x00\x00\x00\x0e\x00\x4f\x00\x62\x00\x6c\x00\x69\x00\x6b\x00\ \x76\x00\x61\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x06\x00\x44\ \x00\x75\x00\x65\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\x12\x00\ \x49\x00\x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\x69\x00\ \x61\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\x00\x50\x00\x65\ \x00\x72\x00\x73\x00\x70\x00\x65\x00\x6b\x00\x74\x00\x69\x00\x76\ \x00\x61\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x12\x00\x45\x00\ \x73\x00\x70\x00\x65\x00\x72\x00\x61\x00\x6e\x00\x74\x00\x6f\x05\ \x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x32\x00\x45\x00\x6b\x00\x7a\ \x00\x65\x00\x6d\x00\x70\x00\x6c\x00\x6f\x00\x20\x00\x70\x00\x72\ \x00\x69\x00\x20\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6e\ \x00\x61\x00\x63\x00\x69\x00\x69\x00\x67\x00\x6f\x05\x0e\x9f\xe7\ \x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\ \x6e\x64\x6f\x77\x00\ \x00\x00\x03\x2a\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x24\x00\x47\xdf\x04\ \x00\x00\x00\x39\x00\x4d\x09\xa4\x00\x00\x00\x4e\x00\x5a\xf0\x84\ \x00\x00\x00\x63\x02\xf0\x8c\x31\x00\x00\x00\x78\x05\x93\x08\xe5\ \x00\x00\x00\x9b\x05\x9b\xa6\x44\x00\x00\x00\xb4\x06\x3c\xe8\x53\ \x00\x00\x00\xcb\x06\xec\x79\x65\x00\x00\x00\xe8\x0c\x4e\x30\xd8\ \x00\x00\x01\x09\x0e\x9f\xe7\x05\x00\x00\x01\x22\x69\x00\x00\x01\ \x65\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x08\x00\x56\x00\x69\x00\x65\x00\x77\x05\ \x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0a\x00\x26\x00\x46\x00\x69\ \x00\x6c\x00\x65\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x0a\x00\ \x45\x00\x26\x00\x78\x00\x69\x00\x74\x05\x00\x47\xdf\x04\x01\x03\ \x00\x00\x00\x0a\x00\x46\x00\x69\x00\x72\x00\x73\x00\x74\x05\x00\ \x4d\x09\xa4\x01\x03\x00\x00\x00\x0a\x00\x54\x00\x68\x00\x69\x00\ \x72\x00\x64\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x18\x00\x4c\ \x00\x61\x00\x6e\x00\x67\x00\x75\x00\x61\x00\x67\x00\x65\x00\x3a\ \x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\x00\x00\ \x0e\x00\x4f\x00\x62\x00\x6c\x00\x69\x00\x71\x00\x75\x00\x65\x05\ \x05\x93\x08\xe5\x01\x03\x00\x00\x00\x0c\x00\x53\x00\x65\x00\x63\ \x00\x6f\x00\x6e\x00\x64\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\ \x12\x00\x49\x00\x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\ \x69\x00\x63\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\x00\x50\ \x00\x65\x00\x72\x00\x73\x00\x70\x00\x65\x00\x63\x00\x74\x00\x69\ \x00\x76\x00\x65\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x0e\x00\ \x45\x00\x6e\x00\x67\x00\x6c\x00\x69\x00\x73\x00\x68\x05\x0c\x4e\ \x30\xd8\x01\x03\x00\x00\x00\x38\x00\x49\x00\x6e\x00\x74\x00\x65\ \x00\x72\x00\x6e\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x61\ \x00\x6c\x00\x69\x00\x7a\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\ \x00\x20\x00\x45\x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\ \x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\ \x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x02\xd2\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x24\x00\x47\xdf\x04\ \x00\x00\x00\x3f\x00\x4d\x09\xa4\x00\x00\x00\x56\x00\x5a\xf0\x84\ \x00\x00\x00\x67\x02\xf0\x8c\x31\x00\x00\x00\x78\x05\x93\x08\xe5\ \x00\x00\x00\x8f\x05\x9b\xa6\x44\x00\x00\x00\xa4\x06\x3c\xe8\x53\ \x00\x00\x00\xb5\x06\xec\x79\x65\x00\x00\x00\xca\x0c\x4e\x30\xd8\ \x00\x00\x00\xdb\x0e\x9f\xe7\x05\x00\x00\x00\xec\x69\x00\x00\x01\ \x0d\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x08\x88\x68\x79\x3a\x65\xb9\x5f\x0f\x05\ \x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x10\x30\xd5\x30\xa1\x30\xa4\ \x30\xeb\x00\x28\x00\x26\x00\x46\x00\x29\x05\x00\x2a\xd0\x25\x01\ \x03\x00\x00\x00\x0c\x7d\x42\x4e\x86\x00\x28\x00\x26\x00\x58\x00\ \x29\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x06\x7b\x2c\x4e\x00\ \x88\x4c\x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x06\x7b\x2c\x4e\ \x09\x88\x4c\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x0c\x8a\x00\ \x8a\x9e\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\ \x03\x00\x00\x00\x0a\x65\x9c\x30\x81\x62\x95\x5f\x71\x6c\xd5\x05\ \x05\x93\x08\xe5\x01\x03\x00\x00\x00\x06\x7b\x2c\x4e\x8c\x88\x4c\ \x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\x0a\x7b\x49\x89\xd2\x62\ \x95\x5f\x71\x6c\xd5\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x06\ \x90\x60\x8f\xd1\x6c\xd5\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\ \x06\x65\xe5\x67\x2c\x8a\x9e\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\ \x00\x16\x56\xfd\x96\x9b\x53\x16\x00\x28\x00\x69\x00\x31\x00\x38\ \x00\x6e\x00\x29\x30\x6e\x4f\x8b\x05\x0e\x9f\xe7\x05\x01\x2f\x00\ \x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\ \x00\ " qt_resource_name = "\ \x00\x0c\ \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\x0a\ \x04\x50\xdc\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x66\x00\x72\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x6f\xac\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x6b\x00\x6f\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x65\x0c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x72\x00\x75\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x67\x1c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x73\x00\x76\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x58\x0c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x64\x00\x65\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x7d\x3c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x7a\x00\x68\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x55\xdc\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x61\x00\x72\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x57\xec\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x63\x00\x73\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x6d\xfc\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x69\x00\x74\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x68\xac\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x6e\x00\x6f\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x56\x7c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x65\x00\x6c\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x59\xac\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x65\x00\x6f\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x59\x9c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x65\x00\x6e\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x6c\xbc\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x6a\x00\x70\x00\x2e\x00\x71\x00\x6d\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x02\ \x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x00\x12\x76\ \x00\x00\x01\x22\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xce\ \x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x15\x5a\ \x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x62\ \x00\x00\x01\x56\x00\x00\x00\x00\x00\x01\x00\x00\x25\x20\ \x00\x00\x01\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x21\xf6\ \x00\x00\x00\x52\x00\x00\x00\x00\x00\x01\x00\x00\x06\x06\ \x00\x00\x00\x6c\x00\x00\x00\x00\x00\x01\x00\x00\x09\x30\ \x00\x00\x01\x08\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xa6\ \x00\x00\x01\x70\x00\x00\x00\x00\x00\x01\x00\x00\x28\x4e\ \x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x18\x7a\ \x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x03\x50\ \x00\x00\x00\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xb6\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/tools/i18n/i18n_rc3.py0000644000076500000240000013724412536324427021424 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:49:41 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x03\x4c\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x22\x00\x47\xdf\x04\ \x00\x00\x00\x3d\x00\x4d\x09\xa4\x00\x00\x00\x58\x00\x5a\xf0\x84\ \x00\x00\x00\x71\x02\xf0\x8c\x31\x00\x00\x00\x8e\x05\x93\x08\xe5\ \x00\x00\x00\xaf\x05\x9b\xa6\x44\x00\x00\x00\xc8\x06\x3c\xe8\x53\ \x00\x00\x00\xe3\x06\xec\x79\x65\x00\x00\x01\x04\x0c\x4e\x30\xd8\ \x00\x00\x01\x25\x0e\x9f\xe7\x05\x00\x00\x01\x40\x69\x00\x00\x01\ \x87\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x06\x00\x56\x00\x75\x00\x65\x05\x00\x05\ \xcf\xc7\x01\x03\x00\x00\x00\x10\x00\x26\x00\x46\x00\x69\x00\x63\ \x00\x68\x00\x69\x00\x65\x00\x72\x05\x00\x2a\xd0\x25\x01\x03\x00\ \x00\x00\x10\x00\x26\x00\x51\x00\x75\x00\x69\x00\x74\x00\x74\x00\ \x65\x00\x72\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0e\x00\x50\ \x00\x72\x00\x65\x00\x6d\x00\x69\x00\x65\x00\x72\x05\x00\x4d\x09\ \xa4\x01\x03\x00\x00\x00\x12\x00\x54\x00\x72\x00\x6f\x00\x69\x00\ \x73\x00\x69\x00\xe8\x00\x6d\x00\x65\x05\x00\x5a\xf0\x84\x01\x03\ \x00\x00\x00\x16\x00\x4c\x00\x61\x00\x6e\x00\x67\x00\x75\x00\x65\ \x00\x20\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\ \x03\x00\x00\x00\x0e\x00\x4f\x00\x62\x00\x6c\x00\x69\x00\x71\x00\ \x75\x00\x65\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x10\x00\x44\ \x00\x65\x00\x75\x00\x78\x00\x69\x00\xe8\x00\x6d\x00\x65\x05\x05\ \x9b\xa6\x44\x01\x03\x00\x00\x00\x16\x00\x49\x00\x73\x00\x6f\x00\ \x6d\x00\xe9\x00\x74\x00\x72\x00\x69\x00\x71\x00\x75\x00\x65\x05\ \x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\x00\x50\x00\x65\x00\x72\ \x00\x73\x00\x70\x00\x65\x00\x63\x00\x74\x00\x69\x00\x76\x00\x65\ \x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x10\x00\x46\x00\x72\x00\ \x61\x00\x6e\x00\xe7\x00\x61\x00\x69\x00\x73\x05\x0c\x4e\x30\xd8\ \x01\x03\x00\x00\x00\x3c\x00\x45\x00\x78\x00\x65\x00\x6d\x00\x70\ \x00\x6c\x00\x65\x00\x20\x00\x64\x00\x27\x00\x69\x00\x6e\x00\x74\ \x00\x65\x00\x72\x00\x6e\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\ \x00\x61\x00\x6c\x00\x69\x00\x73\x00\x61\x00\x74\x00\x69\x00\x6f\ \x00\x6e\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\ \x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x02\xb2\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x20\x00\x47\xdf\x04\ \x00\x00\x00\x33\x00\x4d\x09\xa4\x00\x00\x00\x46\x00\x5a\xf0\x84\ \x00\x00\x00\x57\x02\xf0\x8c\x31\x00\x00\x00\x68\x05\x93\x08\xe5\ \x00\x00\x00\x81\x05\x9b\xa6\x44\x00\x00\x00\x90\x06\x3c\xe8\x53\ \x00\x00\x00\xa1\x06\xec\x79\x65\x00\x00\x00\xb2\x0c\x4e\x30\xd8\ \x00\x00\x00\xc5\x0e\x9f\xe7\x05\x00\x00\x00\xd6\x69\x00\x00\x00\ \xed\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x04\xbc\xf4\xae\x30\x05\x00\x05\xcf\xc7\ \x01\x03\x00\x00\x00\x08\xd3\x0c\xc7\x7c\x00\x26\x00\x46\x05\x00\ \x2a\xd0\x25\x01\x03\x00\x00\x00\x08\xc8\x85\xb8\xcc\x00\x26\x00\ \x58\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x06\xcc\xab\xbc\x88\ \xc9\xf8\x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x06\xc1\x38\xbc\ \x88\xc9\xf8\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x0e\xc5\xb8\ \xc5\xb4\x00\x20\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\ \x31\x01\x03\x00\x00\x00\x04\xbe\x57\xac\x01\x05\x05\x93\x08\xe5\ \x01\x03\x00\x00\x00\x06\xb4\x50\xbc\x88\xc9\xf8\x05\x05\x9b\xa6\ \x44\x01\x03\x00\x00\x00\x06\xb4\xf1\xce\x21\xb3\xc4\x05\x06\x3c\ \xe8\x53\x01\x03\x00\x00\x00\x08\xc6\xd0\xad\xfc\xd6\x54\xbc\x95\ \x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x06\xd5\x5c\xad\x6d\xc5\ \xb4\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x0c\xad\x6d\xc8\x1c\ \xd6\x54\x00\x20\xc6\x08\xc8\x1c\x05\x0e\x9f\xe7\x05\x01\x2f\x00\ \x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\ \x00\ \x00\x00\x03\x26\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x22\x00\x47\xdf\x04\ \x00\x00\x00\x35\x00\x4d\x09\xa4\x00\x00\x00\x4a\x00\x5a\xf0\x84\ \x00\x00\x00\x61\x02\xf0\x8c\x31\x00\x00\x00\x78\x05\x93\x08\xe5\ \x00\x00\x00\x93\x05\x9b\xa6\x44\x00\x00\x00\xaa\x06\x3c\xe8\x53\ \x00\x00\x00\xc1\x06\xec\x79\x65\x00\x00\x00\xe8\x0c\x4e\x30\xd8\ \x00\x00\x01\x09\x0e\x9f\xe7\x05\x00\x00\x01\x22\x69\x00\x00\x01\ \x61\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x06\x04\x12\x04\x38\x04\x34\x05\x00\x05\ \xcf\xc7\x01\x03\x00\x00\x00\x08\x04\x24\x04\x30\x04\x39\x04\x3b\ \x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x0a\x04\x12\x04\x4b\x04\ \x45\x04\x3e\x04\x34\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0c\ \x04\x1f\x04\x35\x04\x40\x04\x32\x04\x4b\x04\x39\x05\x00\x4d\x09\ \xa4\x01\x03\x00\x00\x00\x0c\x04\x22\x04\x40\x04\x35\x04\x42\x04\ \x38\x04\x39\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x10\x04\x2f\ \x04\x37\x04\x4b\x04\x3a\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\ \xf0\x8c\x31\x01\x03\x00\x00\x00\x0c\x04\x1a\x04\x43\x04\x40\x04\ \x41\x04\x38\x04\x32\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x0c\ \x04\x12\x04\x42\x04\x3e\x04\x40\x04\x3e\x04\x39\x05\x05\x9b\xa6\ \x44\x01\x03\x00\x00\x00\x1c\x04\x18\x04\x37\x04\x3e\x04\x3c\x04\ \x35\x04\x42\x04\x40\x04\x38\x04\x47\x04\x35\x04\x41\x04\x3a\x04\ \x38\x04\x39\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\x04\x1f\ \x04\x35\x04\x40\x04\x41\x04\x3f\x04\x35\x04\x3a\x04\x42\x04\x38\ \x04\x32\x04\x30\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x0e\x04\ \x20\x04\x43\x04\x41\x04\x41\x04\x3a\x04\x38\x04\x39\x05\x0c\x4e\ \x30\xd8\x01\x03\x00\x00\x00\x34\x04\x1f\x04\x40\x04\x38\x04\x3c\ \x04\x35\x04\x40\x00\x20\x04\x38\x04\x3d\x04\x42\x04\x35\x04\x40\ \x04\x3d\x04\x30\x04\x46\x04\x38\x04\x3d\x04\x3e\x04\x30\x04\x3b\ \x04\x38\x04\x37\x04\x30\x04\x46\x04\x38\x04\x38\x05\x0e\x9f\xe7\ \x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\ \x6e\x64\x6f\x77\x00\ \x00\x00\x03\x2e\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x24\x00\x47\xdf\x04\ \x00\x00\x00\x3b\x00\x4d\x09\xa4\x00\x00\x00\x56\x00\x5a\xf0\x84\ \x00\x00\x00\x6d\x02\xf0\x8c\x31\x00\x00\x00\x84\x05\x93\x08\xe5\ \x00\x00\x00\xa1\x05\x9b\xa6\x44\x00\x00\x00\xb6\x06\x3c\xe8\x53\ \x00\x00\x00\xcb\x06\xec\x79\x65\x00\x00\x00\xec\x0c\x4e\x30\xd8\ \x00\x00\x01\x0d\x0e\x9f\xe7\x05\x00\x00\x01\x26\x69\x00\x00\x01\ \x69\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x08\x00\x56\x00\x69\x00\x73\x00\x61\x05\ \x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0c\x00\x26\x00\x41\x00\x72\ \x00\x6b\x00\x69\x00\x76\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\ \x10\x00\x26\x00\x41\x00\x76\x00\x73\x00\x6c\x00\x75\x00\x74\x00\ \x61\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0c\x00\x46\x00\xf6\ \x00\x72\x00\x73\x00\x74\x00\x61\x05\x00\x4d\x09\xa4\x01\x03\x00\ \x00\x00\x0c\x00\x54\x00\x72\x00\x65\x00\x64\x00\x6a\x00\x65\x05\ \x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x12\x00\x53\x00\x70\x00\x72\ \x00\xe5\x00\x6b\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\ \x31\x01\x03\x00\x00\x00\x0a\x00\x53\x00\x6b\x00\x65\x00\x76\x00\ \x74\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x0a\x00\x41\x00\x6e\ \x00\x64\x00\x72\x00\x61\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\ \x16\x00\x49\x00\x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\ \x69\x00\x73\x00\x6b\x00\x74\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\ \x00\x16\x00\x50\x00\x65\x00\x72\x00\x73\x00\x70\x00\x65\x00\x6b\ \x00\x74\x00\x69\x00\x76\x00\x74\x05\x06\xec\x79\x65\x01\x03\x00\ \x00\x00\x0e\x00\x53\x00\x76\x00\x65\x00\x6e\x00\x73\x00\x6b\x00\ \x61\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x38\x00\x49\x00\x6e\ \x00\x74\x00\x65\x00\x72\x00\x6e\x00\x61\x00\x74\x00\x69\x00\x6f\ \x00\x6e\x00\x61\x00\x6c\x00\x69\x00\x73\x00\x65\x00\x72\x00\x69\ \x00\x6e\x00\x67\x00\x73\x00\x65\x00\x78\x00\x65\x00\x6d\x00\x70\ \x00\x65\x00\x6c\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\ \x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x03\x50\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x2a\x00\x47\xdf\x04\ \x00\x00\x00\x41\x00\x4d\x09\xa4\x00\x00\x00\x5c\x00\x5a\xf0\x84\ \x00\x00\x00\x75\x02\xf0\x8c\x31\x00\x00\x00\x90\x05\x93\x08\xe5\ \x00\x00\x00\xb1\x05\x9b\xa6\x44\x00\x00\x00\xc8\x06\x3c\xe8\x53\ \x00\x00\x00\xe3\x06\xec\x79\x65\x00\x00\x01\x04\x0c\x4e\x30\xd8\ \x00\x00\x01\x2b\x0e\x9f\xe7\x05\x00\x00\x01\x44\x69\x00\x00\x01\ \x8b\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x0e\x00\x41\x00\x6e\x00\x73\x00\x69\x00\ \x63\x00\x68\x00\x74\x05\x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0c\ \x00\x26\x00\x44\x00\x61\x00\x74\x00\x65\x00\x69\x05\x00\x2a\xd0\ \x25\x01\x03\x00\x00\x00\x10\x00\x42\x00\x65\x00\x26\x00\x65\x00\ \x6e\x00\x64\x00\x65\x00\x6e\x05\x00\x47\xdf\x04\x01\x03\x00\x00\ \x00\x0e\x00\x45\x00\x72\x00\x73\x00\x74\x00\x65\x00\x6e\x00\x73\ \x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x10\x00\x44\x00\x72\x00\ \x69\x00\x74\x00\x74\x00\x65\x00\x6e\x00\x73\x05\x00\x5a\xf0\x84\ \x01\x03\x00\x00\x00\x16\x00\x53\x00\x70\x00\x72\x00\x61\x00\x63\ \x00\x68\x00\x65\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\ \x31\x01\x03\x00\x00\x00\x0c\x00\x53\x00\x63\x00\x68\x00\x69\x00\ \x65\x00\x66\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x10\x00\x5a\ \x00\x77\x00\x65\x00\x69\x00\x74\x00\x65\x00\x6e\x00\x73\x05\x05\ \x9b\xa6\x44\x01\x03\x00\x00\x00\x16\x00\x49\x00\x73\x00\x6f\x00\ \x6d\x00\x65\x00\x74\x00\x72\x00\x69\x00\x73\x00\x63\x00\x68\x05\ \x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x1c\x00\x50\x00\x65\x00\x72\ \x00\x73\x00\x70\x00\x65\x00\x6b\x00\x74\x00\x69\x00\x76\x00\x69\ \x00\x73\x00\x63\x00\x68\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\ \x0e\x00\x44\x00\x65\x00\x75\x00\x74\x00\x73\x00\x63\x00\x68\x05\ \x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x3c\x00\x49\x00\x6e\x00\x74\ \x00\x65\x00\x72\x00\x6e\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\ \x00\x61\x00\x6c\x00\x69\x00\x73\x00\x69\x00\x65\x00\x72\x00\x75\ \x00\x6e\x00\x67\x00\x73\x00\x62\x00\x65\x00\x69\x00\x73\x00\x70\ \x00\x69\x00\x65\x00\x6c\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\ \x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x02\xbc\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x20\x00\x47\xdf\x04\ \x00\x00\x00\x37\x00\x4d\x09\xa4\x00\x00\x00\x4e\x00\x5a\xf0\x84\ \x00\x00\x00\x5f\x02\xf0\x8c\x31\x00\x00\x00\x70\x05\x93\x08\xe5\ \x00\x00\x00\x87\x05\x9b\xa6\x44\x00\x00\x00\x98\x06\x3c\xe8\x53\ \x00\x00\x00\xa9\x06\xec\x79\x65\x00\x00\x00\xbc\x0c\x4e\x30\xd8\ \x00\x00\x00\xcf\x0e\x9f\xe7\x05\x00\x00\x00\xe2\x69\x00\x00\x00\ \xf7\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x04\x89\xc6\x56\xfe\x05\x00\x05\xcf\xc7\ \x01\x03\x00\x00\x00\x0c\x65\x87\x4e\xf6\x00\x5b\x00\x26\x00\x46\ \x00\x5d\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x0c\x90\x00\x51\ \xfa\x00\x5b\x00\x26\x00\x78\x00\x5d\x05\x00\x47\xdf\x04\x01\x03\ \x00\x00\x00\x06\x7b\x2c\x4e\x00\x4e\x2a\x05\x00\x4d\x09\xa4\x01\ \x03\x00\x00\x00\x06\x7b\x2c\x4e\x09\x4e\x2a\x05\x00\x5a\xf0\x84\ \x01\x03\x00\x00\x00\x0c\x8b\xed\x8a\x00\x00\x3a\x00\x20\x00\x25\ \x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\x00\x00\x06\x65\x9c\x62\ \x95\x5f\x71\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x06\x7b\x2c\ \x4e\x8c\x4e\x2a\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\x08\x7b\ \x49\x89\xd2\x62\x95\x5f\x71\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\ \x00\x08\x90\x0f\x89\xc6\x62\x95\x5f\x71\x05\x06\xec\x79\x65\x01\ \x03\x00\x00\x00\x08\x7b\x80\x4f\x53\x4e\x2d\x65\x87\x05\x0c\x4e\ \x30\xd8\x01\x03\x00\x00\x00\x0a\x56\xfd\x96\x45\x53\x16\x83\x03\ \x4f\x8b\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\ \x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x02\xe0\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x24\x00\x47\xdf\x04\ \x00\x00\x00\x39\x00\x4d\x09\xa4\x00\x00\x00\x4c\x00\x5a\xf0\x84\ \x00\x00\x00\x5d\x02\xf0\x8c\x31\x00\x00\x00\x70\x05\x93\x08\xe5\ \x00\x00\x00\x8d\x05\x9b\xa6\x44\x00\x00\x00\xa0\x06\x3c\xe8\x53\ \x00\x00\x00\xb3\x06\xec\x79\x65\x00\x00\x00\xca\x0c\x4e\x30\xd8\ \x00\x00\x00\xdf\x0e\x9f\xe7\x05\x00\x00\x00\xf8\x69\x00\x00\x01\ \x1b\x03\x00\x00\x00\x06\x00\x52\x00\x54\x00\x4c\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x08\x06\x45\x06\x31\x06\x26\x06\x49\x05\ \x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0a\x06\x27\x06\x44\x06\x45\ \x06\x44\x06\x41\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x08\x06\ \x23\x06\x2e\x06\x31\x06\x2c\x05\x00\x47\xdf\x04\x01\x03\x00\x00\ \x00\x06\x06\x23\x06\x48\x06\x44\x05\x00\x4d\x09\xa4\x01\x03\x00\ \x00\x00\x08\x06\x2b\x06\x27\x06\x44\x06\x2b\x05\x00\x5a\xf0\x84\ \x01\x03\x00\x00\x00\x12\x06\x27\x06\x44\x06\x44\x06\x3a\x06\x29\ \x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\ \x00\x00\x08\x06\x45\x06\x35\x06\x45\x06\x2a\x05\x05\x93\x08\xe5\ \x01\x03\x00\x00\x00\x08\x06\x2b\x06\x27\x06\x46\x06\x49\x05\x05\ \x9b\xa6\x44\x01\x03\x00\x00\x00\x0c\x06\x45\x06\x2a\x06\x45\x06\ \x27\x06\x2b\x06\x44\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x0a\ \x06\x45\x06\x46\x06\x38\x06\x48\x06\x31\x05\x06\xec\x79\x65\x01\ \x03\x00\x00\x00\x0e\x06\x27\x06\x44\x06\x39\x06\x31\x06\x28\x06\ \x4a\x06\x29\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x18\x06\x45\ \x06\x2b\x06\x27\x06\x44\x00\x20\x06\x27\x06\x44\x06\x2a\x06\x2f\ \x06\x48\x06\x4a\x06\x44\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\ \x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x03\x1c\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x28\x00\x47\xdf\x04\ \x00\x00\x00\x41\x00\x4d\x09\xa4\x00\x00\x00\x58\x00\x5a\xf0\x84\ \x00\x00\x00\x6d\x02\xf0\x8c\x31\x00\x00\x00\x82\x05\x93\x08\xe5\ \x00\x00\x00\x9f\x05\x9b\xa6\x44\x00\x00\x00\xbc\x06\x3c\xe8\x53\ \x00\x00\x00\xd1\x06\xec\x79\x65\x00\x00\x00\xf2\x0c\x4e\x30\xd8\ \x00\x00\x01\x15\x0e\x9f\xe7\x05\x00\x00\x01\x2a\x69\x00\x00\x01\ \x57\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x0c\x00\x50\x00\x6f\x00\x68\x00\x6c\x00\ \x65\x00\x64\x05\x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0e\x00\x26\ \x00\x53\x00\x6f\x00\x75\x00\x62\x00\x6f\x00\x72\x05\x00\x2a\xd0\ \x25\x01\x03\x00\x00\x00\x0c\x00\x26\x00\x4b\x00\x6f\x00\x6e\x00\ \x65\x00\x63\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0a\x00\x50\ \x00\x72\x00\x76\x00\x6e\x00\xed\x05\x00\x4d\x09\xa4\x01\x03\x00\ \x00\x00\x0a\x00\x54\x01\x59\x00\x65\x00\x74\x00\xed\x05\x00\x5a\ \xf0\x84\x01\x03\x00\x00\x00\x12\x00\x4a\x00\x61\x00\x79\x00\x7a\ \x00\x6b\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\ \x03\x00\x00\x00\x12\x00\x4e\x00\x61\x00\x6b\x00\x6c\x00\x6f\x00\ \x6e\x01\x1b\x00\x6e\x00\xfd\x05\x05\x93\x08\xe5\x01\x03\x00\x00\ \x00\x0a\x00\x44\x00\x72\x00\x75\x00\x68\x00\xfd\x05\x05\x9b\xa6\ \x44\x01\x03\x00\x00\x00\x16\x00\x49\x00\x73\x00\x6f\x00\x6d\x00\ \x65\x00\x74\x00\x72\x00\x69\x00\x63\x00\x6b\x00\xfd\x05\x06\x3c\ \xe8\x53\x01\x03\x00\x00\x00\x18\x00\x50\x00\x65\x00\x72\x00\x73\ \x00\x70\x00\x65\x00\x6b\x00\x74\x00\x69\x00\x76\x00\x6e\x00\xed\ \x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x0a\x01\x0c\x00\x65\x00\ \x73\x00\x6b\x00\xfd\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x22\ \x00\x55\x00\x6b\x00\xe1\x00\x7a\x00\x6b\x00\x61\x00\x20\x00\x6c\ \x00\x6f\x00\x6b\x00\x61\x00\x6c\x00\x69\x00\x7a\x00\x61\x00\x63\ \x00\x65\x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\ \x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x03\x28\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x26\x00\x47\xdf\x04\ \x00\x00\x00\x3b\x00\x4d\x09\xa4\x00\x00\x00\x50\x00\x5a\xf0\x84\ \x00\x00\x00\x65\x02\xf0\x8c\x31\x00\x00\x00\x7a\x05\x93\x08\xe5\ \x00\x00\x00\x99\x05\x9b\xa6\x44\x00\x00\x00\xb2\x06\x3c\xe8\x53\ \x00\x00\x00\xcb\x06\xec\x79\x65\x00\x00\x00\xea\x0c\x4e\x30\xd8\ \x00\x00\x01\x0b\x0e\x9f\xe7\x05\x00\x00\x01\x26\x69\x00\x00\x01\ \x63\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x0a\x00\x56\x00\x69\x00\x73\x00\x74\x00\ \x61\x05\x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0a\x00\x26\x00\x46\ \x00\x69\x00\x6c\x00\x65\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\ \x0a\x00\x26\x00\x45\x00\x73\x00\x63\x00\x69\x05\x00\x47\xdf\x04\ \x01\x03\x00\x00\x00\x0a\x00\x50\x00\x72\x00\x69\x00\x6d\x00\x6f\ \x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x0a\x00\x54\x00\x65\x00\ \x72\x00\x7a\x00\x6f\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x14\ \x00\x4c\x00\x69\x00\x6e\x00\x67\x00\x75\x00\x61\x00\x3a\x00\x20\ \x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\x00\x00\x0e\x00\ \x4f\x00\x62\x00\x6c\x00\x69\x00\x71\x00\x75\x00\x61\x05\x05\x93\ \x08\xe5\x01\x03\x00\x00\x00\x0e\x00\x53\x00\x65\x00\x63\x00\x6f\ \x00\x6e\x00\x64\x00\x6f\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\ \x14\x00\x49\x00\x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\ \x69\x00\x63\x00\x61\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\ \x00\x50\x00\x72\x00\x6f\x00\x73\x00\x70\x00\x65\x00\x74\x00\x74\ \x00\x69\x00\x63\x00\x61\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\ \x10\x00\x49\x00\x74\x00\x61\x00\x6c\x00\x69\x00\x61\x00\x6e\x00\ \x6f\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x32\x00\x45\x00\x73\ \x00\x65\x00\x6d\x00\x70\x00\x69\x00\x6f\x00\x20\x00\x64\x00\x69\ \x00\x20\x00\x6c\x00\x6f\x00\x63\x00\x61\x00\x6c\x00\x69\x00\x7a\ \x00\x7a\x00\x61\x00\x7a\x00\x69\x00\x6f\x00\x6e\x00\x65\x05\x0e\ \x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\ \x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x03\x24\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x22\x00\x47\xdf\x04\ \x00\x00\x00\x35\x00\x4d\x09\xa4\x00\x00\x00\x50\x00\x5a\xf0\x84\ \x00\x00\x00\x67\x02\xf0\x8c\x31\x00\x00\x00\x7e\x05\x93\x08\xe5\ \x00\x00\x00\x9b\x05\x9b\xa6\x44\x00\x00\x00\xb2\x06\x3c\xe8\x53\ \x00\x00\x00\xc7\x06\xec\x79\x65\x00\x00\x00\xe6\x0c\x4e\x30\xd8\ \x00\x00\x01\x05\x0e\x9f\xe7\x05\x00\x00\x01\x1a\x69\x00\x00\x01\ \x5f\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x06\x00\x56\x00\x69\x00\x73\x05\x00\x05\ \xcf\xc7\x01\x03\x00\x00\x00\x08\x00\x26\x00\x46\x00\x69\x00\x6c\ \x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x10\x00\x26\x00\x41\x00\ \x76\x00\x73\x00\x6c\x00\x75\x00\x74\x00\x74\x05\x00\x47\xdf\x04\ \x01\x03\x00\x00\x00\x0c\x00\x46\x00\xf8\x00\x72\x00\x73\x00\x74\ \x00\x65\x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x0c\x00\x54\x00\ \x72\x00\x65\x00\x64\x00\x6a\x00\x65\x05\x00\x5a\xf0\x84\x01\x03\ \x00\x00\x00\x12\x00\x53\x00\x70\x00\x72\x00\xe5\x00\x6b\x00\x3a\ \x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\x00\x00\ \x0c\x00\x53\x00\x6b\x00\x6a\x00\x65\x00\x76\x00\x74\x05\x05\x93\ \x08\xe5\x01\x03\x00\x00\x00\x0a\x00\x41\x00\x6e\x00\x64\x00\x72\ \x00\x65\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\x14\x00\x49\x00\ \x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\x69\x00\x73\x00\ \x6b\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x14\x00\x50\x00\x65\ \x00\x72\x00\x73\x00\x70\x00\x65\x00\x6b\x00\x74\x00\x69\x00\x76\ \x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x0a\x00\x4e\x00\x6f\x00\ \x72\x00\x73\x00\x6b\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x3a\ \x00\x49\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6e\x00\x61\x00\x73\ \x00\x6a\x00\x6f\x00\x6e\x00\x61\x00\x6c\x00\x69\x00\x73\x00\x65\ \x00\x72\x00\x69\x00\x6e\x00\x67\x00\x73\x00\x65\x00\x6b\x00\x73\ \x00\x65\x00\x6d\x00\x70\x00\x65\x00\x6c\x05\x0e\x9f\xe7\x05\x01\ \x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\ \x6f\x77\x00\ \x00\x00\x03\x24\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x22\x00\x47\xdf\x04\ \x00\x00\x00\x3b\x00\x4d\x09\xa4\x00\x00\x00\x54\x00\x5a\xf0\x84\ \x00\x00\x00\x69\x02\xf0\x8c\x31\x00\x00\x00\x7e\x05\x93\x08\xe5\ \x00\x00\x00\x9d\x05\x9b\xa6\x44\x00\x00\x00\xb4\x06\x3c\xe8\x53\ \x00\x00\x00\xcd\x06\xec\x79\x65\x00\x00\x00\xec\x0c\x4e\x30\xd8\ \x00\x00\x01\x09\x0e\x9f\xe7\x05\x00\x00\x01\x24\x69\x00\x00\x01\ \x5f\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x06\x03\x8c\x03\xc8\x03\xb7\x05\x00\x05\ \xcf\xc7\x01\x03\x00\x00\x00\x0e\x00\x26\x03\x91\x03\xc1\x03\xc7\ \x03\xb5\x03\xaf\x03\xbf\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\ \x0e\x03\x88\x00\x26\x03\xbe\x03\xbf\x03\xb4\x03\xbf\x03\xc2\x05\ \x00\x47\xdf\x04\x01\x03\x00\x00\x00\x0a\x03\xa0\x03\xc1\x03\xce\ \x03\xc4\x03\xbf\x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x0a\x03\ \xa4\x03\xc1\x03\xaf\x03\xc4\x03\xbf\x05\x00\x5a\xf0\x84\x01\x03\ \x00\x00\x00\x14\x03\x93\x03\xbb\x03\xce\x03\xc3\x03\xc3\x03\xb1\ \x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\ \x00\x00\x0c\x03\xa0\x03\xbb\x03\xac\x03\xb3\x03\xb9\x03\xb1\x05\ \x05\x93\x08\xe5\x01\x03\x00\x00\x00\x0e\x03\x94\x03\xb5\x03\xcd\ \x03\xc4\x03\xb5\x03\xc1\x03\xbf\x05\x05\x9b\xa6\x44\x01\x03\x00\ \x00\x00\x14\x03\x99\x03\xc3\x03\xbf\x03\xbc\x03\xb5\x03\xc4\x03\ \xc1\x03\xb9\x03\xba\x03\xae\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\ \x00\x12\x03\xa0\x03\xc1\x03\xbf\x03\xbf\x03\xc0\x03\xc4\x03\xb9\ \x03\xba\x03\xae\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x10\x03\ \x95\x03\xbb\x03\xbb\x03\xb7\x03\xbd\x03\xb9\x03\xba\x03\xac\x05\ \x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x30\x03\xa0\x03\xb1\x03\xc1\ \x03\xac\x03\xb4\x03\xb5\x03\xb9\x03\xb3\x03\xbc\x03\xb1\x00\x20\ \x03\xb4\x03\xb9\x03\xb5\x03\xb8\x03\xbd\x03\xbf\x03\xc0\x03\xbf\ \x03\xaf\x03\xb7\x03\xc3\x03\xb7\x03\xc2\x05\x0e\x9f\xe7\x05\x01\ \x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\ \x6f\x77\x00\ \x00\x00\x03\x26\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x2a\x00\x47\xdf\x04\ \x00\x00\x00\x45\x00\x4d\x09\xa4\x00\x00\x00\x5a\x00\x5a\xf0\x84\ \x00\x00\x00\x6d\x02\xf0\x8c\x31\x00\x00\x00\x80\x05\x93\x08\xe5\ \x00\x00\x00\x9f\x05\x9b\xa6\x44\x00\x00\x00\xb8\x06\x3c\xe8\x53\ \x00\x00\x00\xc9\x06\xec\x79\x65\x00\x00\x00\xe6\x0c\x4e\x30\xd8\ \x00\x00\x01\x07\x0e\x9f\xe7\x05\x00\x00\x01\x24\x69\x00\x00\x01\ \x61\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x0e\x00\x41\x00\x73\x00\x70\x00\x65\x00\ \x6b\x00\x74\x00\x6f\x05\x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x10\ \x00\x26\x00\x44\x00\x6f\x00\x73\x00\x69\x00\x65\x00\x72\x00\x6f\ \x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x0a\x00\x26\x00\x46\x00\ \x69\x00\x6e\x00\x69\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x08\ \x00\x55\x00\x6e\x00\x75\x00\x65\x05\x00\x4d\x09\xa4\x01\x03\x00\ \x00\x00\x08\x00\x54\x00\x72\x00\x69\x00\x65\x05\x00\x5a\xf0\x84\ \x01\x03\x00\x00\x00\x14\x00\x4c\x00\x69\x00\x6e\x00\x67\x00\x76\ \x00\x6f\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\ \x03\x00\x00\x00\x0e\x00\x4f\x00\x62\x00\x6c\x00\x69\x00\x6b\x00\ \x76\x00\x61\x05\x05\x93\x08\xe5\x01\x03\x00\x00\x00\x06\x00\x44\ \x00\x75\x00\x65\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\x12\x00\ \x49\x00\x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\x69\x00\ \x61\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\x00\x50\x00\x65\ \x00\x72\x00\x73\x00\x70\x00\x65\x00\x6b\x00\x74\x00\x69\x00\x76\ \x00\x61\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x12\x00\x45\x00\ \x73\x00\x70\x00\x65\x00\x72\x00\x61\x00\x6e\x00\x74\x00\x6f\x05\ \x0c\x4e\x30\xd8\x01\x03\x00\x00\x00\x32\x00\x45\x00\x6b\x00\x7a\ \x00\x65\x00\x6d\x00\x70\x00\x6c\x00\x6f\x00\x20\x00\x70\x00\x72\ \x00\x69\x00\x20\x00\x69\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6e\ \x00\x61\x00\x63\x00\x69\x00\x69\x00\x67\x00\x6f\x05\x0e\x9f\xe7\ \x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\ \x6e\x64\x6f\x77\x00\ \x00\x00\x03\x2a\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x24\x00\x47\xdf\x04\ \x00\x00\x00\x39\x00\x4d\x09\xa4\x00\x00\x00\x4e\x00\x5a\xf0\x84\ \x00\x00\x00\x63\x02\xf0\x8c\x31\x00\x00\x00\x78\x05\x93\x08\xe5\ \x00\x00\x00\x9b\x05\x9b\xa6\x44\x00\x00\x00\xb4\x06\x3c\xe8\x53\ \x00\x00\x00\xcb\x06\xec\x79\x65\x00\x00\x00\xe8\x0c\x4e\x30\xd8\ \x00\x00\x01\x09\x0e\x9f\xe7\x05\x00\x00\x01\x22\x69\x00\x00\x01\ \x65\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x08\x00\x56\x00\x69\x00\x65\x00\x77\x05\ \x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x0a\x00\x26\x00\x46\x00\x69\ \x00\x6c\x00\x65\x05\x00\x2a\xd0\x25\x01\x03\x00\x00\x00\x0a\x00\ \x45\x00\x26\x00\x78\x00\x69\x00\x74\x05\x00\x47\xdf\x04\x01\x03\ \x00\x00\x00\x0a\x00\x46\x00\x69\x00\x72\x00\x73\x00\x74\x05\x00\ \x4d\x09\xa4\x01\x03\x00\x00\x00\x0a\x00\x54\x00\x68\x00\x69\x00\ \x72\x00\x64\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x18\x00\x4c\ \x00\x61\x00\x6e\x00\x67\x00\x75\x00\x61\x00\x67\x00\x65\x00\x3a\ \x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\x03\x00\x00\x00\ \x0e\x00\x4f\x00\x62\x00\x6c\x00\x69\x00\x71\x00\x75\x00\x65\x05\ \x05\x93\x08\xe5\x01\x03\x00\x00\x00\x0c\x00\x53\x00\x65\x00\x63\ \x00\x6f\x00\x6e\x00\x64\x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\ \x12\x00\x49\x00\x73\x00\x6f\x00\x6d\x00\x65\x00\x74\x00\x72\x00\ \x69\x00\x63\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x16\x00\x50\ \x00\x65\x00\x72\x00\x73\x00\x70\x00\x65\x00\x63\x00\x74\x00\x69\ \x00\x76\x00\x65\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\x0e\x00\ \x45\x00\x6e\x00\x67\x00\x6c\x00\x69\x00\x73\x00\x68\x05\x0c\x4e\ \x30\xd8\x01\x03\x00\x00\x00\x38\x00\x49\x00\x6e\x00\x74\x00\x65\ \x00\x72\x00\x6e\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x61\ \x00\x6c\x00\x69\x00\x7a\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\ \x00\x20\x00\x45\x00\x78\x00\x61\x00\x6d\x00\x70\x00\x6c\x00\x65\ \x05\x0e\x9f\xe7\x05\x01\x2f\x00\x00\x01\x3e\x00\x97\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x4d\x61\ \x69\x6e\x57\x69\x6e\x64\x6f\x77\x00\ \x00\x00\x02\xd2\ \x3c\ \xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\x42\ \x00\x00\x00\x68\x00\x00\x51\x92\x00\x00\x00\x00\x00\x05\xcf\xc7\ \x00\x00\x00\x11\x00\x2a\xd0\x25\x00\x00\x00\x24\x00\x47\xdf\x04\ \x00\x00\x00\x3f\x00\x4d\x09\xa4\x00\x00\x00\x56\x00\x5a\xf0\x84\ \x00\x00\x00\x67\x02\xf0\x8c\x31\x00\x00\x00\x78\x05\x93\x08\xe5\ \x00\x00\x00\x8f\x05\x9b\xa6\x44\x00\x00\x00\xa4\x06\x3c\xe8\x53\ \x00\x00\x00\xb5\x06\xec\x79\x65\x00\x00\x00\xca\x0c\x4e\x30\xd8\ \x00\x00\x00\xdb\x0e\x9f\xe7\x05\x00\x00\x00\xec\x69\x00\x00\x01\ \x0d\x03\x00\x00\x00\x06\x00\x4c\x00\x54\x00\x52\x05\x00\x00\x51\ \x92\x01\x03\x00\x00\x00\x08\x88\x68\x79\x3a\x65\xb9\x5f\x0f\x05\ \x00\x05\xcf\xc7\x01\x03\x00\x00\x00\x10\x30\xd5\x30\xa1\x30\xa4\ \x30\xeb\x00\x28\x00\x26\x00\x46\x00\x29\x05\x00\x2a\xd0\x25\x01\ \x03\x00\x00\x00\x0c\x7d\x42\x4e\x86\x00\x28\x00\x26\x00\x58\x00\ \x29\x05\x00\x47\xdf\x04\x01\x03\x00\x00\x00\x06\x7b\x2c\x4e\x00\ \x88\x4c\x05\x00\x4d\x09\xa4\x01\x03\x00\x00\x00\x06\x7b\x2c\x4e\ \x09\x88\x4c\x05\x00\x5a\xf0\x84\x01\x03\x00\x00\x00\x0c\x8a\x00\ \x8a\x9e\x00\x3a\x00\x20\x00\x25\x00\x31\x05\x02\xf0\x8c\x31\x01\ \x03\x00\x00\x00\x0a\x65\x9c\x30\x81\x62\x95\x5f\x71\x6c\xd5\x05\ \x05\x93\x08\xe5\x01\x03\x00\x00\x00\x06\x7b\x2c\x4e\x8c\x88\x4c\ \x05\x05\x9b\xa6\x44\x01\x03\x00\x00\x00\x0a\x7b\x49\x89\xd2\x62\ \x95\x5f\x71\x6c\xd5\x05\x06\x3c\xe8\x53\x01\x03\x00\x00\x00\x06\ \x90\x60\x8f\xd1\x6c\xd5\x05\x06\xec\x79\x65\x01\x03\x00\x00\x00\ \x06\x65\xe5\x67\x2c\x8a\x9e\x05\x0c\x4e\x30\xd8\x01\x03\x00\x00\ \x00\x16\x56\xfd\x96\x9b\x53\x16\x00\x28\x00\x69\x00\x31\x00\x38\ \x00\x6e\x00\x29\x30\x6e\x4f\x8b\x05\x0e\x9f\xe7\x05\x01\x2f\x00\ \x00\x01\x3e\x00\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\ \x00\ " qt_resource_name = b"\ \x00\x0c\ \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\x0a\ \x04\x50\xdc\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x66\x00\x72\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x6f\xac\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x6b\x00\x6f\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x65\x0c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x72\x00\x75\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x67\x1c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x73\x00\x76\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x58\x0c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x64\x00\x65\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x7d\x3c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x7a\x00\x68\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x55\xdc\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x61\x00\x72\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x57\xec\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x63\x00\x73\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x6d\xfc\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x69\x00\x74\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x68\xac\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x6e\x00\x6f\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x56\x7c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x65\x00\x6c\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x59\xac\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x65\x00\x6f\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x59\x9c\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x65\x00\x6e\x00\x2e\x00\x71\x00\x6d\ \x00\x0a\ \x04\x6c\xbc\x9d\ \x00\x69\ \x00\x31\x00\x38\x00\x6e\x00\x5f\x00\x6a\x00\x70\x00\x2e\x00\x71\x00\x6d\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x02\ \x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x00\x12\x76\ \x00\x00\x01\x22\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xce\ \x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x15\x5a\ \x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x62\ \x00\x00\x01\x56\x00\x00\x00\x00\x00\x01\x00\x00\x25\x20\ \x00\x00\x01\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x21\xf6\ \x00\x00\x00\x52\x00\x00\x00\x00\x00\x01\x00\x00\x06\x06\ \x00\x00\x00\x6c\x00\x00\x00\x00\x00\x01\x00\x00\x09\x30\ \x00\x00\x01\x08\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xa6\ \x00\x00\x01\x70\x00\x00\x00\x00\x00\x01\x00\x00\x28\x4e\ \x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x18\x7a\ \x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x03\x50\ \x00\x00\x00\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xb6\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/0000755000076500000240000000000012536324427022232 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_ar.qm0000644000076500000240000000134012536324427024030 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%$Gß9M ¤LZð„]ðŒ1p“囦D <èS³ìyeÊ N0ØßŸçøiRTLQ’E1&IÏÇ 'DEDA*Ð%#.1,Gß#HDM ¤+'D+Zð„'DD:): %1ðŒ1E5E*“å+'FI›¦D E*E'+D<èS EF8H1ìye'D91(J) N0ØE+'D 'D*/HJDŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_ar.ts0000644000076500000240000000273712536324427024054 0ustar philstaff00000000000000 MainWindow First أول Internationalization Example مثال التدويل Isometric متماثل Language: %1 اللغة: %1 English العربية Oblique مصمت Perspective منظور Second ثانى Third ثالث View مرئى E&xit أخرج &File المل٠LTR RTL PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_cs.qm0000644000076500000240000000143412536324427024037 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%(GßAM ¤XZð„mðŒ1‚“埛¦D¼<èSÑìyeò N0ØŸç*iWLTRQ’ PohledÏÇ&Soubor*Ð% &KonecGß PrvníM ¤ TYetíZð„Jayzk: %1ðŒ1Naklonný“å Druhý›¦DIsometrický<èSPerspektivníìye  eský N0Ø"Ukázka lokalizaceŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_cs.ts0000644000076500000240000000272212536324427024051 0ustar philstaff00000000000000 MainWindow View Pohled &File &Soubor E&xit &Konec First První Third TÅ™etí Language: %1 Jayzk: %1 English ÄŒeský Oblique NaklonÄ›ný Second Druhý Isometric Isometrický Perspective Perspektivní Internationalization Example Ukázka lokalizace LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_de.qm0000644000076500000240000000152012536324427024016 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%*GßAM ¤\Zð„uðŒ1“å±›¦DÈ<èSãìye N0Ø+ŸçDi‹LTRQ’AnsichtÏÇ &Datei*Ð%Be&endenGßErstensM ¤DrittensZð„Sprache: %1ðŒ1 Schief“åZweitens›¦DIsometrisch<èSPerspektivischìyeDeutsch N0Ø<InternationalisierungsbeispielŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_de.ts0000644000076500000240000000274112536324427024035 0ustar philstaff00000000000000 MainWindow View Ansicht &File &Datei E&xit Be&enden First Erstens Third Drittens English Deutsch Language: %1 Sprache: %1 Oblique Schief Second Zweitens Isometric Isometrisch Perspective Perspektivisch Internationalization Example Internationalisierungsbeispiel LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_el.qm0000644000076500000240000000144412536324427024033 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%"Gß;M ¤TZð„iðŒ1~“囦D´<èSÍìyeì N0Ø Ÿç$i_LTRQ’ŒÈ·ÏÇ&‘Áǵ¯¿*Ð%ˆ&¾¿´¿ÂGß  ÁÎÄ¿M ¤ ¤Á¯Ä¿Zð„“»ÎÃñ: %1ðŒ1  »¬³¹±“唵ÍĵÁ¿›¦D™Ã¿¼µÄÁ¹º®<èS Á¿¿ÀĹº®ìye•»»·½¹º¬ N0Ø0 ±Á¬´µ¹³¼± ´¹µ¸½¿À¿¯·Ã·ÂŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_el.ts0000644000076500000240000000305112536324427024040 0ustar philstaff00000000000000 MainWindow &File &ΑÏχείο E&xit Έ&ξοδος First ΠÏώτο Internationalization Example ΠαÏάδειγμα διεθνοποίησης Isometric ΙσομετÏική Language: %1 Γλώσσα: %1 English Ελληνικά Oblique Πλάγια Perspective ΠÏοοπτική Second ΔεÏτεÏο Third ΤÏίτο View Όψη LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_en.qm0000644000076500000240000000145212536324427024034 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%$Gß9M ¤NZð„cðŒ1x“å››¦D´<èSËìyeè N0Ø Ÿç"ieLTRQ’ViewÏÇ &File*Ð% E&xitGß FirstM ¤ ThirdZð„Language: %1ðŒ1Oblique“å Second›¦DIsometric<èSPerspectiveìyeEnglish N0Ø8Internationalization ExampleŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_en.ts0000644000076500000240000000271612536324427024051 0ustar philstaff00000000000000 MainWindow E&xit E&xit &File &File Internationalization Example Internationalization Example Language: %1 Language: %1 English English View View Perspective Perspective Isometric Isometric Oblique Oblique First First Second Second Third Third LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_eo.qm0000644000076500000240000000144612536324427024040 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%*GßEM ¤ZZð„mðŒ1€“埛¦D¸<èSÉìyeæ N0ØŸç$iaLTRQ’AspektoÏÇ&Dosiero*Ð% &FiniGßUnueM ¤TrieZð„Lingvo: %1ðŒ1Oblikva“åDue›¦DIsometria<èSPerspektivaìyeEsperanto N0Ø2Ekzemplo pri internaciigoŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_eo.ts0000644000076500000240000000271412536324427024050 0ustar philstaff00000000000000 MainWindow &File &Dosiero First Unue Internationalization Example Ekzemplo pri internaciigo Isometric Isometria Language: %1 Lingvo: %1 English Esperanto Oblique Oblikva Perspective Perspektiva Second Due Third Trie View Aspekto E&xit &Fini LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_fr.qm0000644000076500000240000000151412536324427024040 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%"Gß=M ¤XZð„qðŒ1ޓ坛¦DÈ<èSãìye N0Ø%Ÿç@i‡LTRQ’VueÏÇ&Fichier*Ð%&QuitterGßPremierM ¤TroisièmeZð„Langue : %1ðŒ1Oblique“åDeuxième›¦DIsométrique<èSPerspectiveìyeFrançais N0Ø<Exemple d'internationalisationŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_fr.ts0000644000076500000240000000275012536324427024054 0ustar philstaff00000000000000 MainWindow View Vue &File &Fichier E&xit &Quitter First Premier Third Troisième Language: %1 Langue : %1 English Français Oblique Oblique Second Deuxième Isometric Isométrique Perspective Perspective Internationalization Example Exemple d'internationalisation LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_it.qm0000644000076500000240000000145012536324427024044 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%&Gß;M ¤PZð„eðŒ1z“å™›¦D²<èSËìyeê N0Ø Ÿç&icLTRQ’ VistaÏÇ &File*Ð% &EsciGß PrimoM ¤ TerzoZð„Lingua: %1ðŒ1Obliqua“åSecondo›¦DIsometrica<èSProspetticaìyeItaliano N0Ø2Esempio di localizzazioneŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_it.ts0000644000076500000240000000271512536324427024062 0ustar philstaff00000000000000 MainWindow First Primo Internationalization Example Esempio di localizzazione Isometric Isometrica Language: %1 Lingua: %1 English Italiano Oblique Obliqua Perspective Prospettica Second Secondo Third Terzo View Vista E&xit &Esci &File &File LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_jp.qm0000644000076500000240000000132212536324427024037 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%$Gß?M ¤VZð„gðŒ1x“囦D¤<èSµìyeÊ N0ØÛŸçìi LTRQ’ˆhy:e¹_ÏÇ0Õ0¡0¤0ë(&F)*Ð% }BN†(&X)Gß{,NˆLM ¤{,N ˆLZð„ ŠŠž: %1ðŒ1 eœ0b•_qlÕ“å{,NŒˆL›¦D {I‰Òb•_qlÕ<èS`ÑlÕìyeeåg,Šž N0ØVý–›S(i18n)0nO‹Ÿç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_jp.ts0000644000076500000240000000276612536324427024065 0ustar philstaff00000000000000 MainWindow &File ファイル(&F) E&xit 終了(&X) First 第一行 Internationalization Example 国際化(i18n)ã®ä¾‹ Isometric 等角投影法 Language: %1 言語: %1 English 日本語 Oblique æ–œã‚æŠ•å½±æ³• Perspective é è¿‘法 Second 第二行 Third 第三行 View è¡¨ç¤ºæ–¹å¼ LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_ko.qm0000644000076500000240000000126212536324427024042 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð% Gß3M ¤FZð„WðŒ1h“囦D<èS¡ìye² N0ØÅŸçÖiíLTRQ’¼ô®0ÏÇÓ Ç|&F*Ð%È…¸Ì&XGßÌ«¼ˆÉøM ¤Á8¼ˆÉøZð„ŸŴ : %1ðŒ1¾W¬“å´P¼ˆÉø›¦D´ñÎ!³Ä<èSÆÐ­üÖT¼•ìyeÕ\­mÅ´ N0Ø ­mÈÖT ÆÈŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_ko.ts0000644000076500000240000000272612536324427024061 0ustar philstaff00000000000000 MainWindow &File 파ì¼&F E&xit 종료&X First 첫번째 Internationalization Example 국제화 예제 Isometric ë“±ì¸¡ë„ Language: %1 언어 : %1 English 한국어 Oblique ë¹—ê° Perspective ì›ê·¼í™”법 Second ë‘번째 Third 세번째 View 보기 LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_no.qm0000644000076500000240000000144412536324427024047 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%"Gß5M ¤PZð„gðŒ1~“å››¦D²<èSÇìyeæ N0ØŸçi_LTRQ’VisÏÇ&Fil*Ð%&AvsluttGß FørsteM ¤ TredjeZð„Språk: %1ðŒ1 Skjevt“å Andre›¦DIsometrisk<èSPerspektivìye Norsk N0Ø:InternasjonaliseringseksempelŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_no.ts0000644000076500000240000000271512536324427024062 0ustar philstaff00000000000000 MainWindow View Vis &File &Fil E&xit &Avslutt First Første Third Tredje Language: %1 SprÃ¥k: %1 English Norsk Oblique Skjevt Second Andre Isometric Isometrisk Perspective Perspektiv Internationalization Example Internasjonaliseringseksempel LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_pt.qm0000644000076500000240000000150612536324427024055 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%&GßAM ¤VZð„qðŒ1Œ“å«›¦DÄ<èSÝìyeü N0ØŸç:iLTRQ’ VisãoÏÇ&Arquivo*Ð% &SairGßPrimeiroM ¤TerceiroZð„Idioma: %1ðŒ1Oblíquo“åSegundo›¦DIsométrico<èSPerspectivaìyePortuguês N0Ø<Exemplo de InternacionalizaçãoŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_pt.ts0000644000076500000240000000274212536324427024071 0ustar philstaff00000000000000 MainWindow E&xit &Sair &File &Arquivo Internationalization Example Exemplo de Internacionalização Language: %1 Idioma: %1 English Português View Visão Perspective Perspectiva Isometric Isométrico Oblique Oblíquo First Primeiro Second Segundo Third Terceiro LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_ru.qm0000644000076500000240000000144612536324427024063 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%"Gß5M ¤JZð„aðŒ1x“å“›¦Dª<èSÁìyeè N0Ø Ÿç"iaLTRQ’84ÏÇ$09;*Ð% KE>4Gß 5@2K9M ¤ "@5B89Zð„/7K:: %1ðŒ1 C@A82“å B>@>9›¦D7><5B@8G5A:89<èS5@A?5:B820ìye CAA:89 N0Ø4@8<5@ 8=B5@=0F8=>0;870F88Ÿç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_ru.ts0000644000076500000240000000304512536324427024071 0ustar philstaff00000000000000 MainWindow View Вид &File Файл E&xit Выход First Первый Third Третий Language: %1 Язык: %1 English РуÑÑкий Oblique КурÑив Second Второй Isometric ИзометричеÑкий Perspective ПерÑпектива Internationalization Example Пример интернациноализации LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_sv.qm0000644000076500000240000000145612536324427024066 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð%$Gß;M ¤VZð„mðŒ1„“å¡›¦D¶<èSËìyeì N0Ø Ÿç&iiLTRQ’VisaÏÇ &Arkiv*Ð%&AvslutaGß FörstaM ¤ TredjeZð„Språk: %1ðŒ1 Skevt“å Andra›¦DIsometriskt<èSPerspektivtìyeSvenska N0Ø8InternationaliseringsexempelŸç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_sv.ts0000644000076500000240000000272212536324427024074 0ustar philstaff00000000000000 MainWindow View Visa &File &Arkiv E&xit &Avsluta First Första Third Tredje Language: %1 SprÃ¥k: %1 English Svenska Oblique Skevt Second Andra Isometric Isometriskt Perspective Perspektivt Internationalization Example Internationaliseringsexempel LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_zh.qm0000644000076500000240000000127412536324427024055 0ustar philstaff00000000000000<¸dÊÍ!¿`¡½ÝBhQ’ÏÇ*Ð% Gß7M ¤NZð„_ðŒ1p“凛¦D˜<èS©ìye¼ N0ØÏŸçâi÷LTRQ’‰ÆVþÏÇ e‡Nö[&F]*Ð% Qú[&x]Gß{,NN*M ¤{,N N*Zð„ ‹íŠ: %1ðŒ1eœb•_q“å{,NŒN*›¦D{I‰Òb•_q<èS‰Æb•_qìye{€OSN-e‡ N0Ø Vý–ESƒO‹Ÿç/>— MainWindowPyQt-x11-gpl-4.11.4/examples/tools/i18n/translations/i18n_zh.ts0000644000076500000240000000274112536324427024066 0ustar philstaff00000000000000 MainWindow View 视图 &File 文件[&F] E&xit 退出[&x] First 第一个 Third 第三个 Language: %1 语言: %1 English 简体中文 Oblique 斜投影 Second 第二个 Isometric 等角投影 Perspective é€è§†æŠ•å½± Internationalization Example 国际化范例 LTR LTR PyQt-x11-gpl-4.11.4/examples/tools/README0000644000076500000240000000152012536324427017610 0ustar philstaff00000000000000PyQt is equipped with a range of capable tool classes, from containers and iterators to classes for string handling and manipulation. Other classes provide application infrastructure support, handling plugin loading and managing configuration files. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/tools/regexp.py0000755000076500000240000001756312536324427020615 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class RegExpDialog(QtGui.QDialog): MaxCaptures = 6 def __init__(self, parent=None): super(RegExpDialog, self).__init__(parent) self.patternComboBox = QtGui.QComboBox() self.patternComboBox.setEditable(True) self.patternComboBox.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) patternLabel = QtGui.QLabel("&Pattern:") patternLabel.setBuddy(self.patternComboBox) self.escapedPatternLineEdit = QtGui.QLineEdit() self.escapedPatternLineEdit.setReadOnly(True) palette = self.escapedPatternLineEdit.palette() palette.setBrush(QtGui.QPalette.Base, palette.brush(QtGui.QPalette.Disabled, QtGui.QPalette.Base)) self.escapedPatternLineEdit.setPalette(palette) escapedPatternLabel = QtGui.QLabel("&Escaped Pattern:") escapedPatternLabel.setBuddy(self.escapedPatternLineEdit) self.syntaxComboBox = QtGui.QComboBox() self.syntaxComboBox.addItem("Regular expression v1", QtCore.QRegExp.RegExp) self.syntaxComboBox.addItem("Regular expression v2", QtCore.QRegExp.RegExp2) self.syntaxComboBox.addItem("Wildcard", QtCore.QRegExp.Wildcard) self.syntaxComboBox.addItem("Fixed string", QtCore.QRegExp.FixedString) syntaxLabel = QtGui.QLabel("&Pattern Syntax:") syntaxLabel.setBuddy(self.syntaxComboBox) self.textComboBox = QtGui.QComboBox() self.textComboBox.setEditable(True) self.textComboBox.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) textLabel = QtGui.QLabel("&Text:") textLabel.setBuddy(self.textComboBox) self.caseSensitiveCheckBox = QtGui.QCheckBox("Case &Sensitive") self.caseSensitiveCheckBox.setChecked(True) self.minimalCheckBox = QtGui.QCheckBox("&Minimal") indexLabel = QtGui.QLabel("Index of Match:") self.indexEdit = QtGui.QLineEdit() self.indexEdit.setReadOnly(True) matchedLengthLabel = QtGui.QLabel("Matched Length:") self.matchedLengthEdit = QtGui.QLineEdit() self.matchedLengthEdit.setReadOnly(True) self.captureLabels = [] self.captureEdits = [] for i in range(self.MaxCaptures): self.captureLabels.append(QtGui.QLabel("Capture %d:" % i)) self.captureEdits.append(QtGui.QLineEdit()) self.captureEdits[i].setReadOnly(True) self.captureLabels[0].setText("Match:") checkBoxLayout = QtGui.QHBoxLayout() checkBoxLayout.addWidget(self.caseSensitiveCheckBox) checkBoxLayout.addWidget(self.minimalCheckBox) checkBoxLayout.addStretch(1) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(patternLabel, 0, 0) mainLayout.addWidget(self.patternComboBox, 0, 1) mainLayout.addWidget(escapedPatternLabel, 1, 0) mainLayout.addWidget(self.escapedPatternLineEdit, 1, 1) mainLayout.addWidget(syntaxLabel, 2, 0) mainLayout.addWidget(self.syntaxComboBox, 2, 1) mainLayout.addLayout(checkBoxLayout, 3, 0, 1, 2) mainLayout.addWidget(textLabel, 4, 0) mainLayout.addWidget(self.textComboBox, 4, 1) mainLayout.addWidget(indexLabel, 5, 0) mainLayout.addWidget(self.indexEdit, 5, 1) mainLayout.addWidget(matchedLengthLabel, 6, 0) mainLayout.addWidget(self.matchedLengthEdit, 6, 1) for i in range(self.MaxCaptures): mainLayout.addWidget(self.captureLabels[i], 7 + i, 0) mainLayout.addWidget(self.captureEdits[i], 7 + i, 1) self.setLayout(mainLayout) self.patternComboBox.editTextChanged.connect(self.refresh) self.textComboBox.editTextChanged.connect(self.refresh) self.caseSensitiveCheckBox.toggled.connect(self.refresh) self.minimalCheckBox.toggled.connect(self.refresh) self.syntaxComboBox.currentIndexChanged.connect(self.refresh) self.patternComboBox.addItem("[A-Za-z_]+([A-Za-z_0-9]*)") self.textComboBox.addItem("(10 + delta4)* 32") self.setWindowTitle("RegExp") self.setFixedHeight(self.sizeHint().height()) self.refresh() def refresh(self): self.setUpdatesEnabled(False) pattern = self.patternComboBox.currentText() text = self.textComboBox.currentText() escaped = str(pattern) escaped.replace('\\', '\\\\') escaped.replace('"', '\\"') self.escapedPatternLineEdit.setText('"' + escaped + '"') rx = QtCore.QRegExp(pattern) cs = QtCore.Qt.CaseInsensitive if self.caseSensitiveCheckBox.isChecked(): cs = QtCore.Qt.CaseSensitive rx.setCaseSensitivity(cs) rx.setMinimal(self.minimalCheckBox.isChecked()) syntax = self.syntaxComboBox.itemData(self.syntaxComboBox.currentIndex()) rx.setPatternSyntax(syntax) palette = self.patternComboBox.palette() if rx.isValid(): palette.setColor(QtGui.QPalette.Text, self.textComboBox.palette().color(QtGui.QPalette.Text)) else: palette.setColor(QtGui.QPalette.Text, QtCore.Qt.red) self.patternComboBox.setPalette(palette) self.indexEdit.setText(str(rx.indexIn(text))) self.matchedLengthEdit.setText(str(rx.matchedLength())) for i in range(self.MaxCaptures): self.captureLabels[i].setEnabled(i <= rx.numCaptures()) self.captureEdits[i].setEnabled(i <= rx.numCaptures()) self.captureEdits[i].setText(rx.cap(i)) self.setUpdatesEnabled(True) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) dialog = RegExpDialog() sys.exit(dialog.exec_()) PyQt-x11-gpl-4.11.4/examples/tools/settingseditor/0000755000076500000240000000000012536324427022001 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tools/settingseditor/inifiles/0000755000076500000240000000000012536324427023603 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tools/settingseditor/inifiles/licensepage.ini0000644000076500000240000000141712536324427026566 0ustar philstaff00000000000000[Field%201] Bottom=89 Flags=MULTILINE|VSCROLL|READONLY Left=4 Right=296 State=No license agreement file found. Please contact support. Top=14 Type=Text [Field%202] Bottom=8 Left=4 Right=294 Text=Press Page Down to see the rest of the agreement. Top=0 Type=Label [Field%203] Bottom=111 Left=4 Right=297 Text=If you accept the terms of the agreement, select the first option below. You must accept the agreement to install this software. Click Next to continue. Top=92 Type=Label [Field%204] Bottom=129 Flags=GROUP|NOTIFY Left=4 Right=299 Text=I &accept the terms in the License Agreement Top=120 Type=RadioButton [Field%205] Bottom=140 Flags=NOTIFY Left=4 Right=300 State=1 Text=I &do not accept the terms in the License Agreement Top=129 Type=RadioButton [Settings] NumFields=5 PyQt-x11-gpl-4.11.4/examples/tools/settingseditor/inifiles/qsa.ini0000644000076500000240000000051312536324427025067 0ustar philstaff00000000000000[Field%201] Bottom=65 Left=0 Right=299 Text=QSA Build Options Top=9 Type=Groupbox [Field%202] Bottom=37 Left=20 Right=284 Text=Don't compile QSA Workbench into QSA. Top=27 Type=Checkbox [Field%203] Bottom=56 Left=20 Right=247 Text=Don't compile QSA Workbench nor QSA Editor into QSA. Top=45 Type=Checkbox [Settings] NumFields=3 PyQt-x11-gpl-4.11.4/examples/tools/settingseditor/settingseditor.py0000755000076500000240000006563712536324427025446 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # These are only needed for Python v2 but are harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) import sys from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.settingsTree = SettingsTree() self.setCentralWidget(self.settingsTree) self.locationDialog = None self.createActions() self.createMenus() self.autoRefreshAct.setChecked(True) self.fallbacksAct.setChecked(True) self.setWindowTitle("Settings Editor") self.resize(500, 600) def openSettings(self): if self.locationDialog is None: self.locationDialog = LocationDialog(self) if self.locationDialog.exec_(): settings = QtCore.QSettings(self.locationDialog.format(), self.locationDialog.scope(), self.locationDialog.organization(), self.locationDialog.application()) self.setSettingsObject(settings) self.fallbacksAct.setEnabled(True) def openIniFile(self): fileName = QtGui.QFileDialog.getOpenFileName(self, "Open INI File", '', "INI Files (*.ini *.conf)") if fileName: settings = QtCore.QSettings(fileName, QtCore.QSettings.IniFormat) self.setSettingsObject(settings) self.fallbacksAct.setEnabled(False) def openPropertyList(self): fileName = QtGui.QFileDialog.getOpenFileName(self, "Open Property List", '', "Property List Files (*.plist)") if fileName: settings = QtCore.QSettings(fileName, QtCore.QSettings.NativeFormat) self.setSettingsObject(settings) self.fallbacksAct.setEnabled(False) def openRegistryPath(self): path, ok = QtGui.QInputDialog.getText(self, "Open Registry Path", "Enter the path in the Windows registry:", QtGui.QLineEdit.Normal, 'HKEY_CURRENT_USER\\') if ok and path != '': settings = QtCore.QSettings(path, QtCore.QSettings.NativeFormat) self.setSettingsObject(settings) self.fallbacksAct.setEnabled(False) def about(self): QtGui.QMessageBox.about(self, "About Settings Editor", "The Settings Editor example shows how to access " "application settings using Qt.") def createActions(self): self.openSettingsAct = QtGui.QAction("&Open Application Settings...", self, shortcut="Ctrl+O", triggered=self.openSettings) self.openIniFileAct = QtGui.QAction("Open I&NI File...", self, shortcut="Ctrl+N", triggered=self.openIniFile) self.openPropertyListAct = QtGui.QAction("Open Mac &Property List...", self, shortcut="Ctrl+P", triggered=self.openPropertyList) if sys.platform != 'darwin': self.openPropertyListAct.setEnabled(False) self.openRegistryPathAct = QtGui.QAction( "Open Windows &Registry Path...", self, shortcut="Ctrl+G", triggered=self.openRegistryPath) if sys.platform != 'win32': self.openRegistryPathAct.setEnabled(False) self.refreshAct = QtGui.QAction("&Refresh", self, shortcut="Ctrl+R", enabled=False, triggered=self.settingsTree.refresh) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close) self.autoRefreshAct = QtGui.QAction("&Auto-Refresh", self, shortcut="Ctrl+A", checkable=True, enabled=False) self.autoRefreshAct.triggered.connect(self.settingsTree.setAutoRefresh) self.autoRefreshAct.triggered.connect(self.refreshAct.setDisabled) self.fallbacksAct = QtGui.QAction("&Fallbacks", self, shortcut="Ctrl+F", checkable=True, enabled=False, triggered=self.settingsTree.setFallbacksEnabled) self.aboutAct = QtGui.QAction("&About", self, triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.openSettingsAct) self.fileMenu.addAction(self.openIniFileAct) self.fileMenu.addAction(self.openPropertyListAct) self.fileMenu.addAction(self.openRegistryPathAct) self.fileMenu.addSeparator() self.fileMenu.addAction(self.refreshAct) self.fileMenu.addSeparator() self.fileMenu.addAction(self.exitAct) self.optionsMenu = self.menuBar().addMenu("&Options") self.optionsMenu.addAction(self.autoRefreshAct) self.optionsMenu.addAction(self.fallbacksAct) self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) def setSettingsObject(self, settings): settings.setFallbacksEnabled(self.fallbacksAct.isChecked()) self.settingsTree.setSettingsObject(settings) self.refreshAct.setEnabled(True) self.autoRefreshAct.setEnabled(True) niceName = settings.fileName() niceName.replace('\\', '/') niceName = niceName.split('/')[-1] if not settings.isWritable(): niceName += " (read only)" self.setWindowTitle("%s - Settings Editor" % niceName) class LocationDialog(QtGui.QDialog): def __init__(self, parent=None): super(LocationDialog, self).__init__(parent) self.formatComboBox = QtGui.QComboBox() self.formatComboBox.addItem("Native") self.formatComboBox.addItem("INI") self.scopeComboBox = QtGui.QComboBox() self.scopeComboBox.addItem("User") self.scopeComboBox.addItem("System") self.organizationComboBox = QtGui.QComboBox() self.organizationComboBox.addItem("Trolltech") self.organizationComboBox.setEditable(True) self.applicationComboBox = QtGui.QComboBox() self.applicationComboBox.addItem("Any") self.applicationComboBox.addItem("Application Example") self.applicationComboBox.addItem("Assistant") self.applicationComboBox.addItem("Designer") self.applicationComboBox.addItem("Linguist") self.applicationComboBox.setEditable(True) self.applicationComboBox.setCurrentIndex(3) formatLabel = QtGui.QLabel("&Format:") formatLabel.setBuddy(self.formatComboBox) scopeLabel = QtGui.QLabel("&Scope:") scopeLabel.setBuddy(self.scopeComboBox) organizationLabel = QtGui.QLabel("&Organization:") organizationLabel.setBuddy(self.organizationComboBox) applicationLabel = QtGui.QLabel("&Application:") applicationLabel.setBuddy(self.applicationComboBox) self.locationsGroupBox = QtGui.QGroupBox("Setting Locations") self.locationsTable = QtGui.QTableWidget() self.locationsTable.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) self.locationsTable.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) self.locationsTable.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.locationsTable.setColumnCount(2) self.locationsTable.setHorizontalHeaderLabels(("Location", "Access")) self.locationsTable.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch) self.locationsTable.horizontalHeader().resizeSection(1, 180) self.buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel) self.formatComboBox.activated.connect(self.updateLocationsTable) self.scopeComboBox.activated.connect(self.updateLocationsTable) self.organizationComboBox.lineEdit().editingFinished.connect(self.updateLocationsTable) self.applicationComboBox.lineEdit().editingFinished.connect(self.updateLocationsTable) self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) locationsLayout = QtGui.QVBoxLayout() locationsLayout.addWidget(self.locationsTable) self.locationsGroupBox.setLayout(locationsLayout) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(formatLabel, 0, 0) mainLayout.addWidget(self.formatComboBox, 0, 1) mainLayout.addWidget(scopeLabel, 1, 0) mainLayout.addWidget(self.scopeComboBox, 1, 1) mainLayout.addWidget(organizationLabel, 2, 0) mainLayout.addWidget(self.organizationComboBox, 2, 1) mainLayout.addWidget(applicationLabel, 3, 0) mainLayout.addWidget(self.applicationComboBox, 3, 1) mainLayout.addWidget(self.locationsGroupBox, 4, 0, 1, 2) mainLayout.addWidget(self.buttonBox, 5, 0, 1, 2) self.setLayout(mainLayout) self.updateLocationsTable() self.setWindowTitle("Open Application Settings") self.resize(650, 400) def format(self): if self.formatComboBox.currentIndex() == 0: return QtCore.QSettings.NativeFormat else: return QtCore.QSettings.IniFormat def scope(self): if self.scopeComboBox.currentIndex() == 0: return QtCore.QSettings.UserScope else: return QtCore.QSettings.SystemScope def organization(self): return self.organizationComboBox.currentText() def application(self): if self.applicationComboBox.currentText() == "Any": return '' return self.applicationComboBox.currentText() def updateLocationsTable(self): self.locationsTable.setUpdatesEnabled(False) self.locationsTable.setRowCount(0) for i in range(2): if i == 0: if self.scope() == QtCore.QSettings.SystemScope: continue actualScope = QtCore.QSettings.UserScope else: actualScope = QtCore.QSettings.SystemScope for j in range(2): if j == 0: if not self.application(): continue actualApplication = self.application() else: actualApplication = '' settings = QtCore.QSettings(self.format(), actualScope, self.organization(), actualApplication) row = self.locationsTable.rowCount() self.locationsTable.setRowCount(row + 1) item0 = QtGui.QTableWidgetItem() item0.setText(settings.fileName()) item1 = QtGui.QTableWidgetItem() disable = not (settings.childKeys() or settings.childGroups()) if row == 0: if settings.isWritable(): item1.setText("Read-write") disable = False else: item1.setText("Read-only") self.buttonBox.button(QtGui.QDialogButtonBox.Ok).setDisabled(disable) else: item1.setText("Read-only fallback") if disable: item0.setFlags(item0.flags() & ~QtCore.Qt.ItemIsEnabled) item1.setFlags(item1.flags() & ~QtCore.Qt.ItemIsEnabled) self.locationsTable.setItem(row, 0, item0) self.locationsTable.setItem(row, 1, item1) self.locationsTable.setUpdatesEnabled(True) class SettingsTree(QtGui.QTreeWidget): def __init__(self, parent=None): super(SettingsTree, self).__init__(parent) self.setItemDelegate(VariantDelegate(self)) self.setHeaderLabels(("Setting", "Type", "Value")) self.header().setResizeMode(0, QtGui.QHeaderView.Stretch) self.header().setResizeMode(2, QtGui.QHeaderView.Stretch) self.settings = None self.refreshTimer = QtCore.QTimer() self.refreshTimer.setInterval(2000) self.autoRefresh = False self.groupIcon = QtGui.QIcon() self.groupIcon.addPixmap(self.style().standardPixmap(QtGui.QStyle.SP_DirClosedIcon), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.groupIcon.addPixmap(self.style().standardPixmap(QtGui.QStyle.SP_DirOpenIcon), QtGui.QIcon.Normal, QtGui.QIcon.On) self.keyIcon = QtGui.QIcon() self.keyIcon.addPixmap(self.style().standardPixmap(QtGui.QStyle.SP_FileIcon)) self.refreshTimer.timeout.connect(self.maybeRefresh) def setSettingsObject(self, settings): self.settings = settings self.clear() if self.settings is not None: self.settings.setParent(self) self.refresh() if self.autoRefresh: self.refreshTimer.start() else: self.refreshTimer.stop() def sizeHint(self): return QtCore.QSize(800, 600) def setAutoRefresh(self, autoRefresh): self.autoRefresh = autoRefresh if self.settings is not None: if self.autoRefresh: self.maybeRefresh() self.refreshTimer.start() else: self.refreshTimer.stop() def setFallbacksEnabled(self, enabled): if self.settings is not None: self.settings.setFallbacksEnabled(enabled) self.refresh() def maybeRefresh(self): if self.state() != QtGui.QAbstractItemView.EditingState: self.refresh() def refresh(self): if self.settings is None: return # The signal might not be connected. try: self.itemChanged.disconnect(self.updateSetting) except: pass self.settings.sync() self.updateChildItems(None) self.itemChanged.connect(self.updateSetting) def event(self, event): if event.type() == QtCore.QEvent.WindowActivate: if self.isActiveWindow() and self.autoRefresh: self.maybeRefresh() return super(SettingsTree, self).event(event) def updateSetting(self, item): key = item.text(0) ancestor = item.parent() while ancestor: key = ancestor.text(0) + '/' + key ancestor = ancestor.parent() d = item.data(2, QtCore.Qt.UserRole) self.settings.setValue(key, item.data(2, QtCore.Qt.UserRole)) if self.autoRefresh: self.refresh() def updateChildItems(self, parent): dividerIndex = 0 for group in self.settings.childGroups(): childIndex = self.findChild(parent, group, dividerIndex) if childIndex != -1: child = self.childAt(parent, childIndex) child.setText(1, '') child.setText(2, '') child.setData(2, QtCore.Qt.UserRole, None) self.moveItemForward(parent, childIndex, dividerIndex) else: child = self.createItem(group, parent, dividerIndex) child.setIcon(0, self.groupIcon) dividerIndex += 1 self.settings.beginGroup(group) self.updateChildItems(child) self.settings.endGroup() for key in self.settings.childKeys(): childIndex = self.findChild(parent, key, 0) if childIndex == -1 or childIndex >= dividerIndex: if childIndex != -1: child = self.childAt(parent, childIndex) for i in range(child.childCount()): self.deleteItem(child, i) self.moveItemForward(parent, childIndex, dividerIndex) else: child = self.createItem(key, parent, dividerIndex) child.setIcon(0, self.keyIcon) dividerIndex += 1 else: child = self.childAt(parent, childIndex) value = self.settings.value(key) if value is None: child.setText(1, 'Invalid') else: child.setText(1, value.__class__.__name__) child.setText(2, VariantDelegate.displayText(value)) child.setData(2, QtCore.Qt.UserRole, value) while dividerIndex < self.childCount(parent): self.deleteItem(parent, dividerIndex) def createItem(self, text, parent, index): after = None if index != 0: after = self.childAt(parent, index - 1) if parent is not None: item = QtGui.QTreeWidgetItem(parent, after) else: item = QtGui.QTreeWidgetItem(self, after) item.setText(0, text) item.setFlags(item.flags() | QtCore.Qt.ItemIsEditable) return item def deleteItem(self, parent, index): if parent is not None: item = parent.takeChild(index) else: item = self.takeTopLevelItem(index) del item def childAt(self, parent, index): if parent is not None: return parent.child(index) else: return self.topLevelItem(index) def childCount(self, parent): if parent is not None: return parent.childCount() else: return self.topLevelItemCount() def findChild(self, parent, text, startIndex): for i in range(self.childCount(parent)): if self.childAt(parent, i).text(0) == text: return i return -1 def moveItemForward(self, parent, oldIndex, newIndex): for int in range(oldIndex - newIndex): self.deleteItem(parent, newIndex) class VariantDelegate(QtGui.QItemDelegate): def __init__(self, parent=None): super(VariantDelegate, self).__init__(parent) self.boolExp = QtCore.QRegExp() self.boolExp.setPattern('true|false') self.boolExp.setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.byteArrayExp = QtCore.QRegExp() self.byteArrayExp.setPattern('[\\x00-\\xff]*') self.charExp = QtCore.QRegExp() self.charExp.setPattern('.') self.colorExp = QtCore.QRegExp() self.colorExp.setPattern('\\(([0-9]*),([0-9]*),([0-9]*),([0-9]*)\\)') self.doubleExp = QtCore.QRegExp() self.doubleExp.setPattern('') self.pointExp = QtCore.QRegExp() self.pointExp.setPattern('\\((-?[0-9]*),(-?[0-9]*)\\)') self.rectExp = QtCore.QRegExp() self.rectExp.setPattern('\\((-?[0-9]*),(-?[0-9]*),(-?[0-9]*),(-?[0-9]*)\\)') self.signedIntegerExp = QtCore.QRegExp() self.signedIntegerExp.setPattern('-?[0-9]*') self.sizeExp = QtCore.QRegExp(self.pointExp) self.unsignedIntegerExp = QtCore.QRegExp() self.unsignedIntegerExp.setPattern('[0-9]*') self.dateExp = QtCore.QRegExp() self.dateExp.setPattern('([0-9]{,4})-([0-9]{,2})-([0-9]{,2})') self.timeExp = QtCore.QRegExp() self.timeExp.setPattern('([0-9]{,2}):([0-9]{,2}):([0-9]{,2})') self.dateTimeExp = QtCore.QRegExp() self.dateTimeExp.setPattern(self.dateExp.pattern() + 'T' + self.timeExp.pattern()) def paint(self, painter, option, index): if index.column() == 2: value = index.model().data(index, QtCore.Qt.UserRole) if not self.isSupportedType(value): myOption = QtGui.QStyleOptionViewItem(option) myOption.state &= ~QtGui.QStyle.State_Enabled super(VariantDelegate, self).paint(painter, myOption, index) return super(VariantDelegate, self).paint(painter, option, index) def createEditor(self, parent, option, index): if index.column() != 2: return None originalValue = index.model().data(index, QtCore.Qt.UserRole) if not self.isSupportedType(originalValue): return None lineEdit = QtGui.QLineEdit(parent) lineEdit.setFrame(False) if isinstance(originalValue, bool): regExp = self.boolExp elif isinstance(originalValue, float): regExp = self.doubleExp elif isinstance(originalValue, int): regExp = self.signedIntegerExp elif isinstance(originalValue, QtCore.QByteArray): regExp = self.byteArrayExp elif isinstance(originalValue, QtGui.QColor): regExp = self.colorExp elif isinstance(originalValue, QtCore.QDate): regExp = self.dateExp elif isinstance(originalValue, QtCore.QDateTime): regExp = self.dateTimeExp elif isinstance(originalValue, QtCore.QTime): regExp = self.timeExp elif isinstance(originalValue, QtCore.QPoint): regExp = self.pointExp elif isinstance(originalValue, QtCore.QRect): regExp = self.rectExp elif isinstance(originalValue, QtCore.QSize): regExp = self.sizeExp else: regExp = QtCore.QRegExp() if not regExp.isEmpty(): validator = QtGui.QRegExpValidator(regExp, lineEdit) lineEdit.setValidator(validator) return lineEdit def setEditorData(self, editor, index): value = index.model().data(index, QtCore.Qt.UserRole) if editor is not None: editor.setText(self.displayText(value)) def setModelData(self, editor, model, index): if not editor.isModified(): return text = editor.text() validator = editor.validator() if validator is not None: state, text, _ = validator.validate(text, 0) if state != QtGui.QValidator.Acceptable: return originalValue = index.model().data(index, QtCore.Qt.UserRole) if isinstance(originalValue, QtGui.QColor): self.colorExp.exactMatch(text) value = QtGui.QColor(min(int(self.colorExp.cap(1)), 255), min(int(self.colorExp.cap(2)), 255), min(int(self.colorExp.cap(3)), 255), min(int(self.colorExp.cap(4)), 255)) elif isinstance(originalValue, QtCore.QDate): value = QtCore.QDate.fromString(text, QtCore.Qt.ISODate) if not value.isValid(): return elif isinstance(originalValue, QtCore.QDateTime): value = QtCore.QDateTime.fromString(text, QtCore.Qt.ISODate) if not value.isValid(): return elif isinstance(originalValue, QtCore.QTime): value = QtCore.QTime.fromString(text, QtCore.Qt.ISODate) if not value.isValid(): return elif isinstance(originalValue, QtCore.QPoint): self.pointExp.exactMatch(text) value = QtCore.QPoint(int(self.pointExp.cap(1)), int(self.pointExp.cap(2))) elif isinstance(originalValue, QtCore.QRect): self.rectExp.exactMatch(text) value = QtCore.QRect(int(self.rectExp.cap(1)), int(self.rectExp.cap(2)), int(self.rectExp.cap(3)), int(self.rectExp.cap(4))) elif isinstance(originalValue, QtCore.QSize): self.sizeExp.exactMatch(text) value = QtCore.QSize(int(self.sizeExp.cap(1)), int(self.sizeExp.cap(2))) elif isinstance(originalValue, list): value = text.split(',') else: value = type(originalValue)(text) model.setData(index, self.displayText(value), QtCore.Qt.DisplayRole) model.setData(index, value, QtCore.Qt.UserRole) @staticmethod def isSupportedType(value): return isinstance(value, (bool, float, int, QtCore.QByteArray, str, QtGui.QColor, QtCore.QDate, QtCore.QDateTime, QtCore.QTime, QtCore.QPoint, QtCore.QRect, QtCore.QSize, list)) @staticmethod def displayText(value): if isinstance(value, (bool, int, QtCore.QByteArray)): return str(value) if isinstance(value, str): return value elif isinstance(value, float): return '%g' % value elif isinstance(value, QtGui.QColor): return '(%u,%u,%u,%u)' % (value.red(), value.green(), value.blue(), value.alpha()) elif isinstance(value, (QtCore.QDate, QtCore.QDateTime, QtCore.QTime)): return value.toString(QtCore.Qt.ISODate) elif isinstance(value, QtCore.QPoint): return '(%d,%d)' % (value.x(), value.y()) elif isinstance(value, QtCore.QRect): return '(%d,%d,%d,%d)' % (value.x(), value.y(), value.width(), value.height()) elif isinstance(value, QtCore.QSize): return '(%d,%d)' % (value.width(), value.height()) elif isinstance(value, list): return ','.join(value) elif value is None: return '' return '<%s>' % value if __name__ == '__main__': app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tutorials/0000755000076500000240000000000012536324427017620 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tutorials/addressbook/0000755000076500000240000000000012536324427022120 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/tutorials/addressbook/part1.py0000755000076500000240000000553212536324427023531 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class AddressBook(QtGui.QWidget): def __init__(self, parent=None): super(AddressBook, self).__init__(parent) nameLabel = QtGui.QLabel("Name:") self.nameLine = QtGui.QLineEdit() addressLabel = QtGui.QLabel("Address:") self.addressText = QtGui.QTextEdit() mainLayout = QtGui.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) mainLayout.addWidget(self.addressText, 1, 1) self.setLayout(mainLayout) self.setWindowTitle("Simple Address Book") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tutorials/addressbook/part2.py0000755000076500000240000001411312536324427023525 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class SortedDict(dict): class Iterator(object): def __init__(self, sorted_dict): self._dict = sorted_dict self._keys = sorted(self._dict.keys()) self._nr_items = len(self._keys) self._idx = 0 def __iter__(self): return self def next(self): if self._idx >= self._nr_items: raise StopIteration key = self._keys[self._idx] value = self._dict[key] self._idx += 1 return key, value __next__ = next def __iter__(self): return SortedDict.Iterator(self) iterkeys = __iter__ class AddressBook(QtGui.QWidget): def __init__(self, parent=None): super(AddressBook, self).__init__(parent) self.contacts = SortedDict() self.oldName = '' self.oldAddress = '' nameLabel = QtGui.QLabel("Name:") self.nameLine = QtGui.QLineEdit() self.nameLine.setReadOnly(True) addressLabel = QtGui.QLabel("Address:") self.addressText = QtGui.QTextEdit() self.addressText.setReadOnly(True) self.addButton = QtGui.QPushButton("&Add") self.addButton.show() self.submitButton = QtGui.QPushButton("&Submit") self.submitButton.hide() self.cancelButton = QtGui.QPushButton("&Cancel") self.cancelButton.hide() self.addButton.clicked.connect(self.addContact) self.submitButton.clicked.connect(self.submitContact) self.cancelButton.clicked.connect(self.cancel) buttonLayout1 = QtGui.QVBoxLayout() buttonLayout1.addWidget(self.addButton, QtCore.Qt.AlignTop) buttonLayout1.addWidget(self.submitButton) buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addStretch() mainLayout = QtGui.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) mainLayout.addWidget(self.addressText, 1, 1) mainLayout.addLayout(buttonLayout1, 1, 2) self.setLayout(mainLayout) self.setWindowTitle("Simple Address Book") def addContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.nameLine.clear() self.addressText.clear() self.nameLine.setReadOnly(False) self.nameLine.setFocus(QtCore.Qt.OtherFocusReason) self.addressText.setReadOnly(False) self.addButton.setEnabled(False) self.submitButton.show() self.cancelButton.show() def submitContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name == "" or address == "": QtGui.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if name not in self.contacts: self.contacts[name] = address QtGui.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: QtGui.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return if not self.contacts: self.nameLine.clear() self.addressText.clear() self.nameLine.setReadOnly(True) self.addressText.setReadOnly(True) self.addButton.setEnabled(True) self.submitButton.hide() self.cancelButton.hide() def cancel(self): self.nameLine.setText(self.oldName) self.nameLine.setReadOnly(True) self.addressText.setText(self.oldAddress) self.addressText.setReadOnly(True) self.addButton.setEnabled(True) self.submitButton.hide() self.cancelButton.hide() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tutorials/addressbook/part3.py0000755000076500000240000002007512536324427023532 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class SortedDict(dict): class Iterator(object): def __init__(self, sorted_dict): self._dict = sorted_dict self._keys = sorted(self._dict.keys()) self._nr_items = len(self._keys) self._idx = 0 def __iter__(self): return self def next(self): if self._idx >= self._nr_items: raise StopIteration key = self._keys[self._idx] value = self._dict[key] self._idx += 1 return key, value __next__ = next def __iter__(self): return SortedDict.Iterator(self) iterkeys = __iter__ class AddressBook(QtGui.QWidget): def __init__(self, parent=None): super(AddressBook, self).__init__(parent) self.contacts = SortedDict() self.oldName = '' self.oldAddress = '' nameLabel = QtGui.QLabel("Name:") self.nameLine = QtGui.QLineEdit() self.nameLine.setReadOnly(True) addressLabel = QtGui.QLabel("Address:") self.addressText = QtGui.QTextEdit() self.addressText.setReadOnly(True) self.addButton = QtGui.QPushButton("&Add") self.addButton.show() self.submitButton = QtGui.QPushButton("&Submit") self.submitButton.hide() self.cancelButton = QtGui.QPushButton("&Cancel") self.cancelButton.hide() self.nextButton = QtGui.QPushButton("&Next") self.nextButton.setEnabled(False) self.previousButton = QtGui.QPushButton("&Previous") self.previousButton.setEnabled(False) self.addButton.clicked.connect(self.addContact) self.submitButton.clicked.connect(self.submitContact) self.cancelButton.clicked.connect(self.cancel) self.nextButton.clicked.connect(self.next) self.previousButton.clicked.connect(self.previous) buttonLayout1 = QtGui.QVBoxLayout() buttonLayout1.addWidget(self.addButton, QtCore.Qt.AlignTop) buttonLayout1.addWidget(self.submitButton) buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addStretch() buttonLayout2 = QtGui.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) mainLayout.addWidget(self.addressText, 1, 1) mainLayout.addLayout(buttonLayout1, 1, 2) mainLayout.addLayout(buttonLayout2, 3, 1) self.setLayout(mainLayout) self.setWindowTitle("Simple Address Book") def addContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.nameLine.clear() self.addressText.clear() self.nameLine.setReadOnly(False) self.nameLine.setFocus(QtCore.Qt.OtherFocusReason) self.addressText.setReadOnly(False) self.addButton.setEnabled(False) self.nextButton.setEnabled(False) self.previousButton.setEnabled(False) self.submitButton.show() self.cancelButton.show() def submitContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name == "" or address == "": QtGui.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if name not in self.contacts: self.contacts[name] = address QtGui.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: QtGui.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return if not self.contacts: self.nameLine.clear() self.addressText.clear() self.nameLine.setReadOnly(True) self.addressText.setReadOnly(True) self.addButton.setEnabled(True) number = len(self.contacts) self.nextButton.setEnabled(number > 1) self.previousButton.setEnabled(number > 1) self.submitButton.hide() self.cancelButton.hide() def cancel(self): self.nameLine.setText(self.oldName) self.addressText.setText(self.oldAddress) if not self.contacts: self.nameLine.clear() self.addressText.clear() self.nameLine.setReadOnly(True) self.addressText.setReadOnly(True) self.addButton.setEnabled(True) number = len(self.contacts) self.nextButton.setEnabled(number > 1) self.previousButton.setEnabled(number > 1) self.submitButton.hide() self.cancelButton.hide() def next(self): name = self.nameLine.text() it = iter(self.contacts) try: while True: this_name, _ = it.next() if this_name == name: next_name, next_address = it.next() break except StopIteration: next_name, next_address = iter(self.contacts).next() self.nameLine.setText(next_name) self.addressText.setText(next_address) def previous(self): name = self.nameLine.text() prev_name = prev_address = None for this_name, this_address in self.contacts: if this_name == name: break prev_name = this_name prev_address = this_address else: self.nameLine.clear() self.addressText.clear() return if prev_name is None: for prev_name, prev_address in self.contacts: pass self.nameLine.setText(prev_name) self.addressText.setText(prev_address) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tutorials/addressbook/part4.py0000755000076500000240000002476512536324427023545 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class SortedDict(dict): class Iterator(object): def __init__(self, sorted_dict): self._dict = sorted_dict self._keys = sorted(self._dict.keys()) self._nr_items = len(self._keys) self._idx = 0 def __iter__(self): return self def next(self): if self._idx >= self._nr_items: raise StopIteration key = self._keys[self._idx] value = self._dict[key] self._idx += 1 return key, value __next__ = next def __iter__(self): return SortedDict.Iterator(self) iterkeys = __iter__ class AddressBook(QtGui.QWidget): NavigationMode, AddingMode, EditingMode = range(3) def __init__(self, parent=None): super(AddressBook, self).__init__(parent) self.contacts = SortedDict() self.oldName = '' self.oldAddress = '' self.currentMode = self.NavigationMode nameLabel = QtGui.QLabel("Name:") self.nameLine = QtGui.QLineEdit() self.nameLine.setReadOnly(True) addressLabel = QtGui.QLabel("Address:") self.addressText = QtGui.QTextEdit() self.addressText.setReadOnly(True) self.addButton = QtGui.QPushButton("&Add") self.addButton.show() self.editButton = QtGui.QPushButton("&Edit") self.editButton.setEnabled(False) self.removeButton = QtGui.QPushButton("&Remove") self.removeButton.setEnabled(False) self.submitButton = QtGui.QPushButton("&Submit") self.submitButton.hide() self.cancelButton = QtGui.QPushButton("&Cancel") self.cancelButton.hide() self.nextButton = QtGui.QPushButton("&Next") self.nextButton.setEnabled(False) self.previousButton = QtGui.QPushButton("&Previous") self.previousButton.setEnabled(False) self.addButton.clicked.connect(self.addContact) self.submitButton.clicked.connect(self.submitContact) self.editButton.clicked.connect(self.editContact) self.removeButton.clicked.connect(self.removeContact) self.cancelButton.clicked.connect(self.cancel) self.nextButton.clicked.connect(self.next) self.previousButton.clicked.connect(self.previous) buttonLayout1 = QtGui.QVBoxLayout() buttonLayout1.addWidget(self.addButton) buttonLayout1.addWidget(self.editButton) buttonLayout1.addWidget(self.removeButton) buttonLayout1.addWidget(self.submitButton) buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addStretch() buttonLayout2 = QtGui.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) mainLayout.addWidget(self.addressText, 1, 1) mainLayout.addLayout(buttonLayout1, 1, 2) mainLayout.addLayout(buttonLayout2, 3, 1) self.setLayout(mainLayout) self.setWindowTitle("Simple Address Book") def addContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.nameLine.clear() self.addressText.clear() self.updateInterface(self.AddingMode) def editContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.updateInterface(self.EditingMode) def submitContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name == "" or address == "": QtGui.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if self.currentMode == self.AddingMode: if name not in self.contacts: self.contacts[name] = address QtGui.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: QtGui.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.currentMode == self.EditingMode: if self.oldName != name: if name not in self.contacts: QtGui.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % self.oldName) del self.contacts[self.oldName] self.contacts[name] = address else: QtGui.QMessageBox.information(self, "Edit Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.oldAddress != address: QtGui.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % name) self.contacts[name] = address self.updateInterface(self.NavigationMode) def cancel(self): self.nameLine.setText(self.oldName) self.addressText.setText(self.oldAddress) self.updateInterface(self.NavigationMode) def removeContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name in self.contacts: button = QtGui.QMessageBox.question(self, "Confirm Remove", "Are you sure you want to remove \"%s\"?" % name, QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) if button == QtGui.QMessageBox.Yes: self.previous() del self.contacts[name] QtGui.QMessageBox.information(self, "Remove Successful", "\"%s\" has been removed from your address book." % name) self.updateInterface(self.NavigationMode) def next(self): name = self.nameLine.text() it = iter(self.contacts) try: while True: this_name, _ = it.next() if this_name == name: next_name, next_address = it.next() break except StopIteration: next_name, next_address = iter(self.contacts).next() self.nameLine.setText(next_name) self.addressText.setText(next_address) def previous(self): name = self.nameLine.text() prev_name = prev_address = None for this_name, this_address in self.contacts: if this_name == name: break prev_name = this_name prev_address = this_address else: self.nameLine.clear() self.addressText.clear() return if prev_name is None: for prev_name, prev_address in self.contacts: pass self.nameLine.setText(prev_name) self.addressText.setText(prev_address) def updateInterface(self, mode): self.currentMode = mode if self.currentMode in (self.AddingMode, self.EditingMode): self.nameLine.setReadOnly(False) self.nameLine.setFocus(QtCore.Qt.OtherFocusReason) self.addressText.setReadOnly(False) self.addButton.setEnabled(False) self.editButton.setEnabled(False) self.removeButton.setEnabled(False) self.nextButton.setEnabled(False) self.previousButton.setEnabled(False) self.submitButton.show() self.cancelButton.show() elif self.currentMode == self.NavigationMode: if not self.contacts: self.nameLine.clear() self.addressText.clear() self.nameLine.setReadOnly(True) self.addressText.setReadOnly(True) self.addButton.setEnabled(True) number = len(self.contacts) self.editButton.setEnabled(number >= 1) self.removeButton.setEnabled(number >= 1) self.nextButton.setEnabled(number > 1) self.previousButton.setEnabled(number >1 ) self.submitButton.hide() self.cancelButton.hide() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tutorials/addressbook/part5.py0000755000076500000240000003054112536324427023533 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class SortedDict(dict): class Iterator(object): def __init__(self, sorted_dict): self._dict = sorted_dict self._keys = sorted(self._dict.keys()) self._nr_items = len(self._keys) self._idx = 0 def __iter__(self): return self def next(self): if self._idx >= self._nr_items: raise StopIteration key = self._keys[self._idx] value = self._dict[key] self._idx += 1 return key, value __next__ = next def __iter__(self): return SortedDict.Iterator(self) iterkeys = __iter__ class AddressBook(QtGui.QWidget): NavigationMode, AddingMode, EditingMode = range(3) def __init__(self, parent=None): super(AddressBook, self).__init__(parent) self.contacts = SortedDict() self.oldName = '' self.oldAddress = '' self.currentMode = self.NavigationMode nameLabel = QtGui.QLabel("Name:") self.nameLine = QtGui.QLineEdit() self.nameLine.setReadOnly(True) addressLabel = QtGui.QLabel("Address:") self.addressText = QtGui.QTextEdit() self.addressText.setReadOnly(True) self.addButton = QtGui.QPushButton("&Add") self.addButton.show() self.editButton = QtGui.QPushButton("&Edit") self.editButton.setEnabled(False) self.removeButton = QtGui.QPushButton("&Remove") self.removeButton.setEnabled(False) self.findButton = QtGui.QPushButton("&Find") self.findButton.setEnabled(False) self.submitButton = QtGui.QPushButton("&Submit") self.submitButton.hide() self.cancelButton = QtGui.QPushButton("&Cancel") self.cancelButton.hide() self.nextButton = QtGui.QPushButton("&Next") self.nextButton.setEnabled(False) self.previousButton = QtGui.QPushButton("&Previous") self.previousButton.setEnabled(False) self.dialog = FindDialog() self.addButton.clicked.connect(self.addContact) self.submitButton.clicked.connect(self.submitContact) self.editButton.clicked.connect(self.editContact) self.removeButton.clicked.connect(self.removeContact) self.findButton.clicked.connect(self.findContact) self.cancelButton.clicked.connect(self.cancel) self.nextButton.clicked.connect(self.next) self.previousButton.clicked.connect(self.previous) buttonLayout1 = QtGui.QVBoxLayout() buttonLayout1.addWidget(self.addButton) buttonLayout1.addWidget(self.editButton) buttonLayout1.addWidget(self.removeButton) buttonLayout1.addWidget(self.findButton) buttonLayout1.addWidget(self.submitButton) buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addStretch() buttonLayout2 = QtGui.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) mainLayout.addWidget(self.addressText, 1, 1) mainLayout.addLayout(buttonLayout1, 1, 2) mainLayout.addLayout(buttonLayout2, 2, 1) self.setLayout(mainLayout) self.setWindowTitle("Simple Address Book") def addContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.nameLine.clear() self.addressText.clear() self.updateInterface(self.AddingMode) def editContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.updateInterface(self.EditingMode) def submitContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name == "" or address == "": QtGui.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if self.currentMode == self.AddingMode: if name not in self.contacts: self.contacts[name] = address QtGui.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: QtGui.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.currentMode == self.EditingMode: if self.oldName != name: if name not in self.contacts: QtGui.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % self.oldName) del self.contacts[self.oldName] self.contacts[name] = address else: QtGui.QMessageBox.information(self, "Edit Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.oldAddress != address: QtGui.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % name) self.contacts[name] = address self.updateInterface(self.NavigationMode) def cancel(self): self.nameLine.setText(self.oldName) self.addressText.setText(self.oldAddress) self.updateInterface(self.NavigationMode) def removeContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name in self.contacts: button = QtGui.QMessageBox.question(self, "Confirm Remove", "Are you sure you want to remove \"%s\"?" % name, QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) if button == QtGui.QMessageBox.Yes: self.previous() del self.contacts[name] QtGui.QMessageBox.information(self, "Remove Successful", "\"%s\" has been removed from your address book." % name) self.updateInterface(self.NavigationMode) def next(self): name = self.nameLine.text() it = iter(self.contacts) try: while True: this_name, _ = it.next() if this_name == name: next_name, next_address = it.next() break except StopIteration: next_name, next_address = iter(self.contacts).next() self.nameLine.setText(next_name) self.addressText.setText(next_address) def previous(self): name = self.nameLine.text() prev_name = prev_address = None for this_name, this_address in self.contacts: if this_name == name: break prev_name = this_name prev_address = this_address else: self.nameLine.clear() self.addressText.clear() return if prev_name is None: for prev_name, prev_address in self.contacts: pass self.nameLine.setText(prev_name) self.addressText.setText(prev_address) def findContact(self): self.dialog.show() if self.dialog.exec_() == QtGui.QDialog.Accepted: contactName = self.dialog.getFindText() if contactName in self.contacts: self.nameLine.setText(contactName) self.addressText.setText(self.contacts[contactName]) else: QtGui.QMessageBox.information(self, "Contact Not Found", "Sorry, \"%s\" is not in your address book." % contactName) return self.updateInterface(self.NavigationMode) def updateInterface(self, mode): self.currentMode = mode if self.currentMode in (self.AddingMode, self.EditingMode): self.nameLine.setReadOnly(False) self.nameLine.setFocus(QtCore.Qt.OtherFocusReason) self.addressText.setReadOnly(False) self.addButton.setEnabled(False) self.editButton.setEnabled(False) self.removeButton.setEnabled(False) self.nextButton.setEnabled(False) self.previousButton.setEnabled(False) self.submitButton.show() self.cancelButton.show() elif self.currentMode == self.NavigationMode: if not self.contacts: self.nameLine.clear() self.addressText.clear() self.nameLine.setReadOnly(True) self.addressText.setReadOnly(True) self.addButton.setEnabled(True) number = len(self.contacts) self.editButton.setEnabled(number >= 1) self.removeButton.setEnabled(number >= 1) self.findButton.setEnabled(number > 2) self.nextButton.setEnabled(number > 1) self.previousButton.setEnabled(number >1 ) self.submitButton.hide() self.cancelButton.hide() class FindDialog(QtGui.QDialog): def __init__(self, parent=None): super(FindDialog, self).__init__(parent) findLabel = QtGui.QLabel("Enter the name of a contact:") self.lineEdit = QtGui.QLineEdit() self.findButton = QtGui.QPushButton("&Find") self.findText = '' layout = QtGui.QHBoxLayout() layout.addWidget(findLabel) layout.addWidget(self.lineEdit) layout.addWidget(self.findButton) self.setLayout(layout) self.setWindowTitle("Find a Contact") self.findButton.clicked.connect(self.findClicked) self.findButton.clicked.connect(self.accept) def findClicked(self): text = self.lineEdit.text() if not text: QtGui.QMessageBox.information(self, "Empty Field", "Please enter a name.") return else: self.findText = text self.lineEdit.clear() self.hide() def getFindText(self): return self.findText if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tutorials/addressbook/part6.py0000755000076500000240000003474612536324427023547 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import pickle from PyQt4 import QtCore, QtGui class SortedDict(dict): class Iterator(object): def __init__(self, sorted_dict): self._dict = sorted_dict self._keys = sorted(self._dict.keys()) self._nr_items = len(self._keys) self._idx = 0 def __iter__(self): return self def next(self): if self._idx >= self._nr_items: raise StopIteration key = self._keys[self._idx] value = self._dict[key] self._idx += 1 return key, value __next__ = next def __iter__(self): return SortedDict.Iterator(self) iterkeys = __iter__ class AddressBook(QtGui.QWidget): NavigationMode, AddingMode, EditingMode = range(3) def __init__(self, parent=None): super(AddressBook, self).__init__(parent) self.contacts = SortedDict() self.oldName = '' self.oldAddress = '' self.currentMode = self.NavigationMode nameLabel = QtGui.QLabel("Name:") self.nameLine = QtGui.QLineEdit() self.nameLine.setReadOnly(True) addressLabel = QtGui.QLabel("Address:") self.addressText = QtGui.QTextEdit() self.addressText.setReadOnly(True) self.addButton = QtGui.QPushButton("&Add") self.addButton.show() self.editButton = QtGui.QPushButton("&Edit") self.editButton.setEnabled(False) self.removeButton = QtGui.QPushButton("&Remove") self.removeButton.setEnabled(False) self.findButton = QtGui.QPushButton("&Find") self.findButton.setEnabled(False) self.submitButton = QtGui.QPushButton("&Submit") self.submitButton.hide() self.cancelButton = QtGui.QPushButton("&Cancel") self.cancelButton.hide() self.nextButton = QtGui.QPushButton("&Next") self.nextButton.setEnabled(False) self.previousButton = QtGui.QPushButton("&Previous") self.previousButton.setEnabled(False) self.loadButton = QtGui.QPushButton("&Load...") self.loadButton.setToolTip("Load contacts from a file") self.saveButton = QtGui.QPushButton("Sa&ve...") self.saveButton.setToolTip("Save contacts to a file") self.saveButton.setEnabled(False) self.dialog = FindDialog() self.addButton.clicked.connect(self.addContact) self.submitButton.clicked.connect(self.submitContact) self.editButton.clicked.connect(self.editContact) self.removeButton.clicked.connect(self.removeContact) self.findButton.clicked.connect(self.findContact) self.cancelButton.clicked.connect(self.cancel) self.nextButton.clicked.connect(self.next) self.previousButton.clicked.connect(self.previous) self.loadButton.clicked.connect(self.loadFromFile) self.saveButton.clicked.connect(self.saveToFile) buttonLayout1 = QtGui.QVBoxLayout() buttonLayout1.addWidget(self.addButton) buttonLayout1.addWidget(self.editButton) buttonLayout1.addWidget(self.removeButton) buttonLayout1.addWidget(self.findButton) buttonLayout1.addWidget(self.submitButton) buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addWidget(self.loadButton) buttonLayout1.addWidget(self.saveButton) buttonLayout1.addStretch() buttonLayout2 = QtGui.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) mainLayout.addWidget(self.addressText, 1, 1) mainLayout.addLayout(buttonLayout1, 1, 2) mainLayout.addLayout(buttonLayout2, 2, 1) self.setLayout(mainLayout) self.setWindowTitle("Simple Address Book") def addContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.nameLine.clear() self.addressText.clear() self.updateInterface(self.AddingMode) def editContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.updateInterface(self.EditingMode) def submitContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name == "" or address == "": QtGui.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if self.currentMode == self.AddingMode: if name not in self.contacts: self.contacts[name] = address QtGui.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: QtGui.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.currentMode == self.EditingMode: if self.oldName != name: if name not in self.contacts: QtGui.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % self.oldName) del self.contacts[self.oldName] self.contacts[name] = address else: QtGui.QMessageBox.information(self, "Edit Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.oldAddress != address: QtGui.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % name) self.contacts[name] = address self.updateInterface(self.NavigationMode) def cancel(self): self.nameLine.setText(self.oldName) self.addressText.setText(self.oldAddress) self.updateInterface(self.NavigationMode) def removeContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name in self.contacts: button = QtGui.QMessageBox.question(self, "Confirm Remove", "Are you sure you want to remove \"%s\"?" % name, QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) if button == QtGui.QMessageBox.Yes: self.previous() del self.contacts[name] QtGui.QMessageBox.information(self, "Remove Successful", "\"%s\" has been removed from your address book." % name) self.updateInterface(self.NavigationMode) def next(self): name = self.nameLine.text() it = iter(self.contacts) try: while True: this_name, _ = it.next() if this_name == name: next_name, next_address = it.next() break except StopIteration: next_name, next_address = iter(self.contacts).next() self.nameLine.setText(next_name) self.addressText.setText(next_address) def previous(self): name = self.nameLine.text() prev_name = prev_address = None for this_name, this_address in self.contacts: if this_name == name: break prev_name = this_name prev_address = this_address else: self.nameLine.clear() self.addressText.clear() return if prev_name is None: for prev_name, prev_address in self.contacts: pass self.nameLine.setText(prev_name) self.addressText.setText(prev_address) def findContact(self): self.dialog.show() if self.dialog.exec_() == QtGui.QDialog.Accepted: contactName = self.dialog.getFindText() if contactName in self.contacts: self.nameLine.setText(contactName) self.addressText.setText(self.contacts[contactName]) else: QtGui.QMessageBox.information(self, "Contact Not Found", "Sorry, \"%s\" is not in your address book." % contactName) return self.updateInterface(self.NavigationMode) def updateInterface(self, mode): self.currentMode = mode if self.currentMode in (self.AddingMode, self.EditingMode): self.nameLine.setReadOnly(False) self.nameLine.setFocus(QtCore.Qt.OtherFocusReason) self.addressText.setReadOnly(False) self.addButton.setEnabled(False) self.editButton.setEnabled(False) self.removeButton.setEnabled(False) self.nextButton.setEnabled(False) self.previousButton.setEnabled(False) self.submitButton.show() self.cancelButton.show() self.loadButton.setEnabled(False) self.saveButton.setEnabled(False) elif self.currentMode == self.NavigationMode: if not self.contacts: self.nameLine.clear() self.addressText.clear() self.nameLine.setReadOnly(True) self.addressText.setReadOnly(True) self.addButton.setEnabled(True) number = len(self.contacts) self.editButton.setEnabled(number >= 1) self.removeButton.setEnabled(number >= 1) self.findButton.setEnabled(number > 2) self.nextButton.setEnabled(number > 1) self.previousButton.setEnabled(number >1 ) self.submitButton.hide() self.cancelButton.hide() self.loadButton.setEnabled(True) self.saveButton.setEnabled(number >= 1) def saveToFile(self): fileName = QtGui.QFileDialog.getSaveFileName(self, "Save Address Book", '', "Address Book (*.abk);;All Files (*)") if not fileName: return try: out_file = open(str(fileName), 'wb') except IOError: QtGui.QMessageBox.information(self, "Unable to open file", "There was an error opening \"%s\"" % fileName) return pickle.dump(self.contacts, out_file) out_file.close() def loadFromFile(self): fileName = QtGui.QFileDialog.getOpenFileName(self, "Open Address Book", '', "Address Book (*.abk);;All Files (*)") if not fileName: return try: in_file = open(str(fileName), 'rb') except IOError: QtGui.QMessageBox.information(self, "Unable to open file", "There was an error opening \"%s\"" % fileName) return self.contacts = pickle.load(in_file) in_file.close() if len(self.contacts) == 0: QtGui.QMessageBox.information(self, "No contacts in file", "The file you are attempting to open contains no " "contacts.") else: for name, address in self.contacts: self.nameLine.setText(name) self.addressText.setText(address) self.updateInterface(self.NavigationMode) class FindDialog(QtGui.QDialog): def __init__(self, parent=None): super(FindDialog, self).__init__(parent) findLabel = QtGui.QLabel("Enter the name of a contact:") self.lineEdit = QtGui.QLineEdit() self.findButton = QtGui.QPushButton("&Find") self.findText = '' layout = QtGui.QHBoxLayout() layout.addWidget(findLabel) layout.addWidget(self.lineEdit) layout.addWidget(self.findButton) self.setLayout(layout) self.setWindowTitle("Find a Contact") self.findButton.clicked.connect(self.findClicked) self.findButton.clicked.connect(self.accept) def findClicked(self): text = self.lineEdit.text() if not text: QtGui.QMessageBox.information(self, "Empty Field", "Please enter a name.") return self.findText = text self.lineEdit.clear() self.hide() def getFindText(self): return self.findText if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tutorials/addressbook/part7.py0000755000076500000240000004016412536324427023537 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import pickle from PyQt4 import QtCore, QtGui class SortedDict(dict): class Iterator(object): def __init__(self, sorted_dict): self._dict = sorted_dict self._keys = sorted(self._dict.keys()) self._nr_items = len(self._keys) self._idx = 0 def __iter__(self): return self def next(self): if self._idx >= self._nr_items: raise StopIteration key = self._keys[self._idx] value = self._dict[key] self._idx += 1 return key, value __next__ = next def __iter__(self): return SortedDict.Iterator(self) iterkeys = __iter__ class AddressBook(QtGui.QWidget): NavigationMode, AddingMode, EditingMode = range(3) def __init__(self, parent=None): super(AddressBook, self).__init__(parent) self.contacts = SortedDict() self.oldName = '' self.oldAddress = '' self.currentMode = self.NavigationMode nameLabel = QtGui.QLabel("Name:") self.nameLine = QtGui.QLineEdit() self.nameLine.setReadOnly(True) addressLabel = QtGui.QLabel("Address:") self.addressText = QtGui.QTextEdit() self.addressText.setReadOnly(True) self.addButton = QtGui.QPushButton("&Add") self.addButton.show() self.editButton = QtGui.QPushButton("&Edit") self.editButton.setEnabled(False) self.removeButton = QtGui.QPushButton("&Remove") self.removeButton.setEnabled(False) self.findButton = QtGui.QPushButton("&Find") self.findButton.setEnabled(False) self.submitButton = QtGui.QPushButton("&Submit") self.submitButton.hide() self.cancelButton = QtGui.QPushButton("&Cancel") self.cancelButton.hide() self.nextButton = QtGui.QPushButton("&Next") self.nextButton.setEnabled(False) self.previousButton = QtGui.QPushButton("&Previous") self.previousButton.setEnabled(False) self.loadButton = QtGui.QPushButton("&Load...") self.loadButton.setToolTip("Load contacts from a file") self.saveButton = QtGui.QPushButton("Sa&ve...") self.saveButton.setToolTip("Save contacts to a file") self.saveButton.setEnabled(False) self.exportButton = QtGui.QPushButton("Ex&port") self.exportButton.setToolTip("Export as vCard") self.exportButton.setEnabled(False) self.dialog = FindDialog() self.addButton.clicked.connect(self.addContact) self.submitButton.clicked.connect(self.submitContact) self.editButton.clicked.connect(self.editContact) self.removeButton.clicked.connect(self.removeContact) self.findButton.clicked.connect(self.findContact) self.cancelButton.clicked.connect(self.cancel) self.nextButton.clicked.connect(self.next) self.previousButton.clicked.connect(self.previous) self.loadButton.clicked.connect(self.loadFromFile) self.saveButton.clicked.connect(self.saveToFile) self.exportButton.clicked.connect(self.exportAsVCard) buttonLayout1 = QtGui.QVBoxLayout() buttonLayout1.addWidget(self.addButton) buttonLayout1.addWidget(self.editButton) buttonLayout1.addWidget(self.removeButton) buttonLayout1.addWidget(self.findButton) buttonLayout1.addWidget(self.submitButton) buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addWidget(self.loadButton) buttonLayout1.addWidget(self.saveButton) buttonLayout1.addWidget(self.exportButton) buttonLayout1.addStretch() buttonLayout2 = QtGui.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) mainLayout.addWidget(self.addressText, 1, 1) mainLayout.addLayout(buttonLayout1, 1, 2) mainLayout.addLayout(buttonLayout2, 2, 1) self.setLayout(mainLayout) self.setWindowTitle("Simple Address Book") def addContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.nameLine.clear() self.addressText.clear() self.updateInterface(self.AddingMode) def editContact(self): self.oldName = self.nameLine.text() self.oldAddress = self.addressText.toPlainText() self.updateInterface(self.EditingMode) def submitContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name == "" or address == "": QtGui.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if self.currentMode == self.AddingMode: if name not in self.contacts: self.contacts[name] = address QtGui.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: QtGui.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.currentMode == self.EditingMode: if self.oldName != name: if name not in self.contacts: QtGui.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % self.oldName) del self.contacts[self.oldName] self.contacts[name] = address else: QtGui.QMessageBox.information(self, "Edit Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.oldAddress != address: QtGui.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % name) self.contacts[name] = address self.updateInterface(self.NavigationMode) def cancel(self): self.nameLine.setText(self.oldName) self.addressText.setText(self.oldAddress) self.updateInterface(self.NavigationMode) def removeContact(self): name = self.nameLine.text() address = self.addressText.toPlainText() if name in self.contacts: button = QtGui.QMessageBox.question(self, "Confirm Remove", "Are you sure you want to remove \"%s\"?" % name, QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) if button == QtGui.QMessageBox.Yes: self.previous() del self.contacts[name] QtGui.QMessageBox.information(self, "Remove Successful", "\"%s\" has been removed from your address book." % name) self.updateInterface(self.NavigationMode) def next(self): name = self.nameLine.text() it = iter(self.contacts) try: while True: this_name, _ = it.next() if this_name == name: next_name, next_address = it.next() break except StopIteration: next_name, next_address = iter(self.contacts).next() self.nameLine.setText(next_name) self.addressText.setText(next_address) def previous(self): name = self.nameLine.text() prev_name = prev_address = None for this_name, this_address in self.contacts: if this_name == name: break prev_name = this_name prev_address = this_address else: self.nameLine.clear() self.addressText.clear() return if prev_name is None: for prev_name, prev_address in self.contacts: pass self.nameLine.setText(prev_name) self.addressText.setText(prev_address) def findContact(self): self.dialog.show() if self.dialog.exec_() == QtGui.QDialog.Accepted: contactName = self.dialog.getFindText() if contactName in self.contacts: self.nameLine.setText(contactName) self.addressText.setText(self.contacts[contactName]) else: QtGui.QMessageBox.information(self, "Contact Not Found", "Sorry, \"%s\" is not in your address book." % contactName) return self.updateInterface(self.NavigationMode) def updateInterface(self, mode): self.currentMode = mode if self.currentMode in (self.AddingMode, self.EditingMode): self.nameLine.setReadOnly(False) self.nameLine.setFocus(QtCore.Qt.OtherFocusReason) self.addressText.setReadOnly(False) self.addButton.setEnabled(False) self.editButton.setEnabled(False) self.removeButton.setEnabled(False) self.nextButton.setEnabled(False) self.previousButton.setEnabled(False) self.submitButton.show() self.cancelButton.show() self.loadButton.setEnabled(False) self.saveButton.setEnabled(False) self.exportButton.setEnabled(False) elif self.currentMode == self.NavigationMode: if not self.contacts: self.nameLine.clear() self.addressText.clear() self.nameLine.setReadOnly(True) self.addressText.setReadOnly(True) self.addButton.setEnabled(True) number = len(self.contacts) self.editButton.setEnabled(number >= 1) self.removeButton.setEnabled(number >= 1) self.findButton.setEnabled(number > 2) self.nextButton.setEnabled(number > 1) self.previousButton.setEnabled(number >1 ) self.submitButton.hide() self.cancelButton.hide() self.exportButton.setEnabled(number >= 1) self.loadButton.setEnabled(True) self.saveButton.setEnabled(number >= 1) def saveToFile(self): fileName = QtGui.QFileDialog.getSaveFileName(self, "Save Address Book", '', "Address Book (*.abk);;All Files (*)") if not fileName: return try: out_file = open(str(fileName), 'wb') except IOError: QtGui.QMessageBox.information(self, "Unable to open file", "There was an error opening \"%s\"" % fileName) return pickle.dump(self.contacts, out_file) out_file.close() def loadFromFile(self): fileName = QtGui.QFileDialog.getOpenFileName(self, "Open Address Book", '', "Address Book (*.abk);;All Files (*)") if not fileName: return try: in_file = open(str(fileName), 'rb') except IOError: QtGui.QMessageBox.information(self, "Unable to open file", "There was an error opening \"%s\"" % fileName) return self.contacts = pickle.load(in_file) in_file.close() if len(self.contacts) == 0: QtGui.QMessageBox.information(self, "No contacts in file", "The file you are attempting to open contains no " "contacts.") else: for name, address in self.contacts: self.nameLine.setText(name) self.addressText.setText(address) self.updateInterface(self.NavigationMode) def exportAsVCard(self): name = str(self.nameLine.text()) address = self.addressText.toPlainText() nameList = name.split() if len(nameList) > 1: firstName = nameList[0] lastName = nameList[-1] else: firstName = name lastName = '' fileName = QtGui.QFileDialog.getSaveFileName(self, "Export Contact", '', "vCard Files (*.vcf);;All Files (*)") if not fileName: return out_file = QtCore.QFile(fileName) if not out_file.open(QtCore.QIODevice.WriteOnly): QtGui.QMessageBox.information(self, "Unable to open file", out_file.errorString()) return out_s = QtCore.QTextStream(out_file) out_s << 'BEGIN:VCARD' << '\n' out_s << 'VERSION:2.1' << '\n' out_s << 'N:' << lastName << ';' << firstName << '\n' out_s << 'FN:' << ' '.join(nameList) << '\n' address.replace(';', '\\;') address.replace('\n', ';') address.replace(',', ' ') out_s << 'ADR;HOME:;' << address << '\n' out_s << 'END:VCARD' << '\n' QtGui.QMessageBox.information(self, "Export Successful", "\"%s\" has been exported as a vCard." % name) class FindDialog(QtGui.QDialog): def __init__(self, parent=None): super(FindDialog, self).__init__(parent) findLabel = QtGui.QLabel("Enter the name of a contact:") self.lineEdit = QtGui.QLineEdit() self.findButton = QtGui.QPushButton("&Find") self.findText = '' layout = QtGui.QHBoxLayout() layout.addWidget(findLabel) layout.addWidget(self.lineEdit) layout.addWidget(self.findButton) self.setLayout(layout) self.setWindowTitle("Find a Contact") self.findButton.clicked.connect(self.findClicked) self.findButton.clicked.connect(self.accept) def findClicked(self): text = self.lineEdit.text() if not text: QtGui.QMessageBox.information(self, "Empty Field", "Please enter a name.") return self.findText = text self.lineEdit.clear() self.hide() def getFindText(self): return self.findText if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/tutorials/addressbook/README0000644000076500000240000000125012536324427022776 0ustar philstaff00000000000000The Address Book Tutorial shows how to put together a simple yet fully-functioning GUI application. The tutorial chapters can be found in the Qt documentation, which can be viewed using Qt Assistant or a Web browser. The tutorial is also available online at http://doc.trolltech.com/tutorial.html Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/webkit/0000755000076500000240000000000012536324427017057 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/webkit/domtraversal/0000755000076500000240000000000012536324427021562 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/webkit/domtraversal/domtraversal.py0000755000076500000240000000625012536324427024645 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### from PyQt4 import QtCore, QtGui from ui_window import Ui_Window class Window(QtGui.QMainWindow, Ui_Window): def __init__(self, parent=None): super(Window, self).__init__(parent) self.setupUi(self) def setUrl(self, url): self.webView.setUrl(url) def on_webView_loadFinished(self): # Begin document inspection. self.treeWidget.clear() frame = self.webView.page().mainFrame() document = frame.documentElement() self.examineChildElements(document, self.treeWidget.invisibleRootItem()) def examineChildElements(self, parentElement, parentItem): # Traverse the document. element = parentElement.firstChild() while not element.isNull(): item = QtGui.QTreeWidgetItem() item.setText(0, element.tagName()) parentItem.addChild(item) self.examineChildElements(element, item) element = element.nextSibling() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() window.setUrl(QtCore.QUrl('http://qt.nokia.com/')) sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/webkit/domtraversal/ui_window.py0000644000076500000240000000552612536324427024150 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'window.ui' # # Created: Mon Nov 29 16:50:32 2010 # by: PyQt4 UI code generator snapshot-4.8.2-241fbaf4620d # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Window(object): def setupUi(self, Window): Window.setObjectName(_fromUtf8("Window")) Window.resize(800, 600) self.centralwidget = QtGui.QWidget(Window) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.verticalLayout_2 = QtGui.QVBoxLayout(self.centralwidget) self.verticalLayout_2.setContentsMargins(-1, 4, -1, 4) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.webView = QtWebKit.QWebView(self.centralwidget) self.webView.setUrl(QtCore.QUrl(_fromUtf8("http://qt.nokia.com/"))) self.webView.setObjectName(_fromUtf8("webView")) self.verticalLayout_2.addWidget(self.webView) Window.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(Window) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 27)) self.menubar.setObjectName(_fromUtf8("menubar")) Window.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(Window) self.statusbar.setObjectName(_fromUtf8("statusbar")) Window.setStatusBar(self.statusbar) self.dockWidget = QtGui.QDockWidget(Window) self.dockWidget.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea|QtCore.Qt.RightDockWidgetArea) self.dockWidget.setObjectName(_fromUtf8("dockWidget")) self.dockWidgetContents = QtGui.QWidget() self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) self.verticalLayout = QtGui.QVBoxLayout(self.dockWidgetContents) self.verticalLayout.setMargin(4) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.treeWidget = QtGui.QTreeWidget(self.dockWidgetContents) self.treeWidget.setObjectName(_fromUtf8("treeWidget")) self.treeWidget.headerItem().setText(0, _fromUtf8("1")) self.treeWidget.header().setVisible(False) self.verticalLayout.addWidget(self.treeWidget) self.dockWidget.setWidget(self.dockWidgetContents) Window.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.dockWidget) self.retranslateUi(Window) QtCore.QMetaObject.connectSlotsByName(Window) def retranslateUi(self, Window): Window.setWindowTitle(QtGui.QApplication.translate("Window", "Web Element DOM Traversal", None, QtGui.QApplication.UnicodeUTF8)) self.dockWidget.setWindowTitle(QtGui.QApplication.translate("Window", "Document Structure", None, QtGui.QApplication.UnicodeUTF8)) from PyQt4 import QtWebKit PyQt-x11-gpl-4.11.4/examples/webkit/domtraversal/window.ui0000644000076500000240000000426612536324427023440 0ustar philstaff00000000000000 Window 0 0 800 600 Web Element DOM Traversal 4 4 http://qt.nokia.com/ 0 0 800 27 Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea Document Structure 1 4 false false 1 QWebView QWidget
      QtWebKit/QWebView
      PyQt-x11-gpl-4.11.4/examples/webkit/fancybrowser/0000755000076500000240000000000012536324427021563 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/webkit/fancybrowser/fancybrowser.py0000755000076500000240000001740112536324427024647 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### from PyQt4 import QtCore, QtGui, QtNetwork, QtWebKit try: import jquery_rc3 except ImportError: import jquery_rc2 class MainWindow(QtGui.QMainWindow): def __init__(self, url): super(MainWindow, self).__init__() self.progress = 0 fd = QtCore.QFile(":/jquery.min.js") if fd.open(QtCore.QIODevice.ReadOnly | QtCore.QFile.Text): self.jQuery = QtCore.QTextStream(fd).readAll() fd.close() else: self.jQuery = '' QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration(True) self.view = QtWebKit.QWebView(self) self.view.load(url) self.view.loadFinished.connect(self.adjustLocation) self.view.titleChanged.connect(self.adjustTitle) self.view.loadProgress.connect(self.setProgress) self.view.loadFinished.connect(self.finishLoading) self.locationEdit = QtGui.QLineEdit(self) self.locationEdit.setSizePolicy(QtGui.QSizePolicy.Expanding, self.locationEdit.sizePolicy().verticalPolicy()) self.locationEdit.returnPressed.connect(self.changeLocation) toolBar = self.addToolBar("Navigation") toolBar.addAction(self.view.pageAction(QtWebKit.QWebPage.Back)) toolBar.addAction(self.view.pageAction(QtWebKit.QWebPage.Forward)) toolBar.addAction(self.view.pageAction(QtWebKit.QWebPage.Reload)) toolBar.addAction(self.view.pageAction(QtWebKit.QWebPage.Stop)) toolBar.addWidget(self.locationEdit) viewMenu = self.menuBar().addMenu("&View") viewSourceAction = QtGui.QAction("Page Source", self) viewSourceAction.triggered.connect(self.viewSource) viewMenu.addAction(viewSourceAction) effectMenu = self.menuBar().addMenu("&Effect") effectMenu.addAction("Highlight all links", self.highlightAllLinks) self.rotateAction = QtGui.QAction( self.style().standardIcon( QtGui.QStyle.SP_FileDialogDetailedView), "Turn images upside down", self, checkable=True, toggled=self.rotateImages) effectMenu.addAction(self.rotateAction) toolsMenu = self.menuBar().addMenu("&Tools") toolsMenu.addAction("Remove GIF images", self.removeGifImages) toolsMenu.addAction("Remove all inline frames", self.removeInlineFrames) toolsMenu.addAction("Remove all object elements", self.removeObjectElements) toolsMenu.addAction("Remove all embedded elements", self.removeEmbeddedElements) self.setCentralWidget(self.view) self.setUnifiedTitleAndToolBarOnMac(True) def viewSource(self): accessManager = self.view.page().networkAccessManager() request = QtNetwork.QNetworkRequest(self.view.url()) reply = accessManager.get(request) reply.finished.connect(self.slotSourceDownloaded) def slotSourceDownloaded(self): reply = self.sender() self.textEdit = QtGui.QTextEdit(None) self.textEdit.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.textEdit.show() self.textEdit.setPlainText(QtCore.QTextStream(reply).readAll()) self.textEdit.resize(600, 400) reply.deleteLater() def adjustLocation(self): self.locationEdit.setText(self.view.url().toString()) def changeLocation(self): url = QtCore.QUrl.fromUserInput(self.locationEdit.text()) self.view.load(url) self.view.setFocus() def adjustTitle(self): if 0 < self.progress < 100: self.setWindowTitle("%s (%s%%)" % (self.view.title(), self.progress)) else: self.setWindowTitle(self.view.title()) def setProgress(self, p): self.progress = p self.adjustTitle() def finishLoading(self): self.progress = 100 self.adjustTitle() self.view.page().mainFrame().evaluateJavaScript(self.jQuery) self.rotateImages(self.rotateAction.isChecked()) def highlightAllLinks(self): code = """$('a').each( function () { $(this).css('background-color', 'yellow') } )""" self.view.page().mainFrame().evaluateJavaScript(code) def rotateImages(self, invert): if invert: code = """ $('img').each( function () { $(this).css('-webkit-transition', '-webkit-transform 2s'); $(this).css('-webkit-transform', 'rotate(180deg)') } )""" else: code = """ $('img').each( function () { $(this).css('-webkit-transition', '-webkit-transform 2s'); $(this).css('-webkit-transform', 'rotate(0deg)') } )""" self.view.page().mainFrame().evaluateJavaScript(code) def removeGifImages(self): code = "$('[src*=gif]').remove()" self.view.page().mainFrame().evaluateJavaScript(code) def removeInlineFrames(self): code = "$('iframe').remove()" self.view.page().mainFrame().evaluateJavaScript(code) def removeObjectElements(self): code = "$('object').remove()" self.view.page().mainFrame().evaluateJavaScript(code) def removeEmbeddedElements(self): code = "$('embed').remove()" self.view.page().mainFrame().evaluateJavaScript(code) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) if len(sys.argv) > 1: url = QtCore.QUrl(sys.argv[1]) else: url = QtCore.QUrl('http://www.google.com/ncr') browser = MainWindow(url) browser.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/webkit/fancybrowser/jquery.qrc0000644000076500000240000000013512536324427023610 0ustar philstaff00000000000000 jquery.min.js PyQt-x11-gpl-4.11.4/examples/webkit/formextractor/0000755000076500000240000000000012536324427021756 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/webkit/formextractor/form.html0000644000076500000240000000177512536324427023621 0ustar philstaff00000000000000

      The Green People Book Club

      Welcome to The Green People Book Club. Please register to obtain a membership with us.

      First name:
      Last name:
      Gender: Male Female
      Check here if you would like to receive regular updates from us:
      PyQt-x11-gpl-4.11.4/examples/webkit/formextractor/formextractor.py0000755000076500000240000001262712536324427025242 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui try: import formextractor_rc3 except ImportError: import formextractor_rc2 from ui_formextractor import Ui_Form class FormExtractor(QtGui.QWidget): def __init__(self, parent=None): super(FormExtractor, self).__init__(parent) self.ui = Ui_Form() self.ui.setupUi(self) webView = self.ui.webView webView.setUrl(QtCore.QUrl('qrc:/form.html')) webView.page().mainFrame().javaScriptWindowObjectCleared.connect( self.populateJavaScriptWindowObject) self.resize(300, 300) @QtCore.pyqtSlot() def submit(self): frame = self.ui.webView.page().mainFrame() firstName = frame.findFirstElement('#firstname') lastName = frame.findFirstElement('#lastname') maleGender = frame.findFirstElement('#genderMale') femaleGender = frame.findFirstElement('#genderFemale') updates = frame.findFirstElement('#updates') self.ui.firstNameEdit.setText(firstName.evaluateJavaScript('this.value')) self.ui.lastNameEdit.setText(lastName.evaluateJavaScript('this.value')) if maleGender.evaluateJavaScript('this.checked'): self.ui.genderEdit.setText( maleGender.evaluateJavaScript('this.value')) elif femaleGender.evaluateJavaScript('this.checked'): self.ui.genderEdit.setText( femaleGender.evaluateJavaScript('this.value')) if updates.evaluateJavaScript('this.checked'): self.ui.updatesEdit.setText("Yes") else: self.ui.updatesEdit.setText("No") def populateJavaScriptWindowObject(self): self.ui.webView.page().mainFrame().addToJavaScriptWindowObject( 'formExtractor', self) class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.createActions() self.createMenus() self.centralWidget = FormExtractor(self) self.setCentralWidget(self.centralWidget) self.setUnifiedTitleAndToolBarOnMac(True) def createActions(self): self.exitAct = QtGui.QAction("E&xit", self, statusTip="Exit the application", shortcut=QtGui.QKeySequence.Quit, triggered=self.close) self.aboutAct = QtGui.QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=QtGui.qApp.aboutQt) def createMenus(self): fileMenu = self.menuBar().addMenu("&File") fileMenu.addAction(self.exitAct) self.menuBar().addSeparator() helpMenu = self.menuBar().addMenu("&Help") helpMenu.addAction(self.aboutAct) helpMenu.addAction(self.aboutQtAct) def about(self): QtGui.QMessageBox.about(self, "About Form Extractor", "The Form Extractor example demonstrates how to " "extract data from a web form using QtWebKit.") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWindow = MainWindow() mainWindow.setWindowTitle("Form Extractor") mainWindow.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/webkit/formextractor/formextractor.qrc0000644000076500000240000000014012536324427025357 0ustar philstaff00000000000000 form.html PyQt-x11-gpl-4.11.4/examples/webkit/formextractor/formextractor.ui0000644000076500000240000001034312536324427025215 0ustar philstaff00000000000000 Form 0 0 680 218 Form Web Form 200 150 400 16777215 about:blank Qt::Horizontal 28 20 Extracted Data QFormLayout::FieldsStayAtSizeHint First Name true Last Name true Gender true Receive Updates true Qt::Vertical 20 24 QWebView QWidget
      QtWebKit/QWebView
      PyQt-x11-gpl-4.11.4/examples/webkit/formextractor/formextractor_rc2.py0000644000076500000240000001162312536324427026000 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:51:02 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x03\xfd\ \x3c\ \x68\x74\x6d\x6c\x3e\x3c\x62\x6f\x64\x79\x3e\x0a\x3c\x68\x31\x3e\ \x0a\x54\x68\x65\x20\x47\x72\x65\x65\x6e\x20\x50\x65\x6f\x70\x6c\ \x65\x20\x42\x6f\x6f\x6b\x20\x43\x6c\x75\x62\x0a\x3c\x2f\x68\x31\ \x3e\x0a\x0a\x3c\x70\x3e\x0a\x57\x65\x6c\x63\x6f\x6d\x65\x20\x74\ \x6f\x20\x54\x68\x65\x20\x47\x72\x65\x65\x6e\x20\x50\x65\x6f\x70\ \x6c\x65\x20\x42\x6f\x6f\x6b\x20\x43\x6c\x75\x62\x2e\x20\x50\x6c\ \x65\x61\x73\x65\x20\x72\x65\x67\x69\x73\x74\x65\x72\x20\x74\x6f\ \x20\x6f\x62\x74\x61\x69\x6e\x20\x61\x20\x6d\x65\x6d\x62\x65\x72\ \x73\x68\x69\x70\x20\x77\x69\x74\x68\x20\x75\x73\x2e\x0a\x3c\x2f\ \x70\x3e\x0a\x20\x20\x20\x20\x3c\x66\x6f\x72\x6d\x20\x6f\x6e\x73\ \x75\x62\x6d\x69\x74\x3d\x22\x66\x6f\x72\x6d\x45\x78\x74\x72\x61\ \x63\x74\x6f\x72\x2e\x73\x75\x62\x6d\x69\x74\x28\x29\x22\x3e\x0a\ \x20\x20\x20\x20\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\ \x3c\x74\x62\x6f\x64\x79\x3e\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x46\x69\x72\x73\x74\x20\x6e\x61\x6d\x65\x3a\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x3c\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\ \x22\x74\x65\x78\x74\x22\x20\x69\x64\x3d\x22\x66\x69\x72\x73\x74\ \x6e\x61\x6d\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ \x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\ \x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x61\x73\ \x74\x20\x6e\x61\x6d\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x74\ \x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ \x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\ \x22\x20\x69\x64\x3d\x22\x6c\x61\x73\x74\x6e\x61\x6d\x65\x22\x3e\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\ \x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\ \x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x47\x65\x6e\x64\x65\x72\x3a\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x3c\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x72\ \x61\x64\x69\x6f\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x65\x6e\x64\ \x65\x72\x22\x20\x69\x64\x3d\x22\x67\x65\x6e\x64\x65\x72\x4d\x61\ \x6c\x65\x22\x20\x76\x61\x6c\x75\x65\x3d\x22\x4d\x61\x6c\x65\x22\ \x3e\x20\x4d\x61\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ \x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x72\x61\x64\x69\ \x6f\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x65\x6e\x64\x65\x72\x22\ \x20\x69\x64\x3d\x22\x67\x65\x6e\x64\x65\x72\x46\x65\x6d\x61\x6c\ \x65\x22\x20\x76\x61\x6c\x75\x65\x3d\x22\x46\x65\x6d\x61\x6c\x65\ \x22\x3e\x20\x46\x65\x6d\x61\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\ \x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x3c\x74\x64\x20\x63\x6f\x6c\x73\x70\x61\x6e\x3d\x22\ \x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x6e\x70\ \x75\x74\x20\x74\x79\x70\x65\x3d\x22\x63\x68\x65\x63\x6b\x62\x6f\ \x78\x22\x20\x69\x64\x3d\x22\x75\x70\x64\x61\x74\x65\x73\x22\x20\ \x76\x61\x6c\x75\x65\x3d\x22\x72\x65\x63\x65\x69\x76\x65\x22\x3e\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x43\x68\x65\x63\x6b\x20\x68\ \x65\x72\x65\x20\x69\x66\x20\x79\x6f\x75\x20\x77\x6f\x75\x6c\x64\ \x20\x6c\x69\x6b\x65\x20\x74\x6f\x20\x72\x65\x63\x65\x69\x76\x65\ \x20\x72\x65\x67\x75\x6c\x61\x72\x20\x75\x70\x64\x61\x74\x65\x73\ \x20\x66\x72\x6f\x6d\x20\x75\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\ \x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x62\x6f\x64\x79\x3e\x3c\x2f\ \x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x70\x75\ \x74\x20\x74\x79\x70\x65\x3d\x22\x73\x75\x62\x6d\x69\x74\x22\x20\ \x76\x61\x6c\x75\x65\x3d\x22\x53\x75\x62\x6d\x69\x74\x22\x3e\x0a\ \x20\x20\x20\x20\x3c\x2f\x66\x6f\x72\x6d\x3e\x0a\x0a\x3c\x2f\x62\ \x6f\x64\x79\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\ " qt_resource_name = "\ \x00\x09\ \x09\x04\x21\xfc\ \x00\x66\ \x00\x6f\x00\x72\x00\x6d\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/webkit/formextractor/formextractor_rc3.py0000644000076500000240000001162612536324427026004 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:51:02 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x03\xfd\ \x3c\ \x68\x74\x6d\x6c\x3e\x3c\x62\x6f\x64\x79\x3e\x0a\x3c\x68\x31\x3e\ \x0a\x54\x68\x65\x20\x47\x72\x65\x65\x6e\x20\x50\x65\x6f\x70\x6c\ \x65\x20\x42\x6f\x6f\x6b\x20\x43\x6c\x75\x62\x0a\x3c\x2f\x68\x31\ \x3e\x0a\x0a\x3c\x70\x3e\x0a\x57\x65\x6c\x63\x6f\x6d\x65\x20\x74\ \x6f\x20\x54\x68\x65\x20\x47\x72\x65\x65\x6e\x20\x50\x65\x6f\x70\ \x6c\x65\x20\x42\x6f\x6f\x6b\x20\x43\x6c\x75\x62\x2e\x20\x50\x6c\ \x65\x61\x73\x65\x20\x72\x65\x67\x69\x73\x74\x65\x72\x20\x74\x6f\ \x20\x6f\x62\x74\x61\x69\x6e\x20\x61\x20\x6d\x65\x6d\x62\x65\x72\ \x73\x68\x69\x70\x20\x77\x69\x74\x68\x20\x75\x73\x2e\x0a\x3c\x2f\ \x70\x3e\x0a\x20\x20\x20\x20\x3c\x66\x6f\x72\x6d\x20\x6f\x6e\x73\ \x75\x62\x6d\x69\x74\x3d\x22\x66\x6f\x72\x6d\x45\x78\x74\x72\x61\ \x63\x74\x6f\x72\x2e\x73\x75\x62\x6d\x69\x74\x28\x29\x22\x3e\x0a\ \x20\x20\x20\x20\x3c\x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\ \x3c\x74\x62\x6f\x64\x79\x3e\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x46\x69\x72\x73\x74\x20\x6e\x61\x6d\x65\x3a\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x3c\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\ \x22\x74\x65\x78\x74\x22\x20\x69\x64\x3d\x22\x66\x69\x72\x73\x74\ \x6e\x61\x6d\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ \x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\ \x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x61\x73\ \x74\x20\x6e\x61\x6d\x65\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x74\ \x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ \x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\ \x22\x20\x69\x64\x3d\x22\x6c\x61\x73\x74\x6e\x61\x6d\x65\x22\x3e\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\ \x20\x20\x20\x3c\x2f\x74\x72\x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\ \x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x74\x64\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x47\x65\x6e\x64\x65\x72\x3a\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x74\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x3c\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x72\ \x61\x64\x69\x6f\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x65\x6e\x64\ \x65\x72\x22\x20\x69\x64\x3d\x22\x67\x65\x6e\x64\x65\x72\x4d\x61\ \x6c\x65\x22\x20\x76\x61\x6c\x75\x65\x3d\x22\x4d\x61\x6c\x65\x22\ \x3e\x20\x4d\x61\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ \x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x72\x61\x64\x69\ \x6f\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x65\x6e\x64\x65\x72\x22\ \x20\x69\x64\x3d\x22\x67\x65\x6e\x64\x65\x72\x46\x65\x6d\x61\x6c\ \x65\x22\x20\x76\x61\x6c\x75\x65\x3d\x22\x46\x65\x6d\x61\x6c\x65\ \x22\x3e\x20\x46\x65\x6d\x61\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\ \x3e\x0a\x20\x20\x20\x20\x3c\x74\x72\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x3c\x74\x64\x20\x63\x6f\x6c\x73\x70\x61\x6e\x3d\x22\ \x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x6e\x70\ \x75\x74\x20\x74\x79\x70\x65\x3d\x22\x63\x68\x65\x63\x6b\x62\x6f\ \x78\x22\x20\x69\x64\x3d\x22\x75\x70\x64\x61\x74\x65\x73\x22\x20\ \x76\x61\x6c\x75\x65\x3d\x22\x72\x65\x63\x65\x69\x76\x65\x22\x3e\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x43\x68\x65\x63\x6b\x20\x68\ \x65\x72\x65\x20\x69\x66\x20\x79\x6f\x75\x20\x77\x6f\x75\x6c\x64\ \x20\x6c\x69\x6b\x65\x20\x74\x6f\x20\x72\x65\x63\x65\x69\x76\x65\ \x20\x72\x65\x67\x75\x6c\x61\x72\x20\x75\x70\x64\x61\x74\x65\x73\ \x20\x66\x72\x6f\x6d\x20\x75\x73\x3a\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x3c\x2f\x74\x64\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x72\ \x3e\x0a\x20\x20\x20\x20\x3c\x2f\x74\x62\x6f\x64\x79\x3e\x3c\x2f\ \x74\x61\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x70\x75\ \x74\x20\x74\x79\x70\x65\x3d\x22\x73\x75\x62\x6d\x69\x74\x22\x20\ \x76\x61\x6c\x75\x65\x3d\x22\x53\x75\x62\x6d\x69\x74\x22\x3e\x0a\ \x20\x20\x20\x20\x3c\x2f\x66\x6f\x72\x6d\x3e\x0a\x0a\x3c\x2f\x62\ \x6f\x64\x79\x3e\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\ " qt_resource_name = b"\ \x00\x09\ \x09\x04\x21\xfc\ \x00\x66\ \x00\x6f\x00\x72\x00\x6d\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/webkit/formextractor/ui_formextractor.py0000644000076500000240000001226612536324427025733 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'formextractor.ui' # # Created: Sun Nov 28 14:37:13 2010 # by: PyQt4 UI code generator snapshot-4.8.2-a935ffc263c2 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(680, 218) self.horizontalLayout = QtGui.QHBoxLayout(Form) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.webFormGroupBox = QtGui.QGroupBox(Form) self.webFormGroupBox.setObjectName(_fromUtf8("webFormGroupBox")) self.verticalLayout_2 = QtGui.QVBoxLayout(self.webFormGroupBox) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.webView = QtWebKit.QWebView(self.webFormGroupBox) self.webView.setMinimumSize(QtCore.QSize(200, 150)) self.webView.setMaximumSize(QtCore.QSize(400, 16777215)) self.webView.setUrl(QtCore.QUrl(_fromUtf8("about:blank"))) self.webView.setObjectName(_fromUtf8("webView")) self.verticalLayout.addWidget(self.webView) self.verticalLayout_2.addLayout(self.verticalLayout) self.horizontalLayout.addWidget(self.webFormGroupBox) spacerItem = QtGui.QSpacerItem(28, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.dataGroupBox = QtGui.QGroupBox(Form) self.dataGroupBox.setObjectName(_fromUtf8("dataGroupBox")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.dataGroupBox) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.formLayout = QtGui.QFormLayout() self.formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.FieldsStayAtSizeHint) self.formLayout.setObjectName(_fromUtf8("formLayout")) self.firstNameLabel = QtGui.QLabel(self.dataGroupBox) self.firstNameLabel.setObjectName(_fromUtf8("firstNameLabel")) self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.firstNameLabel) self.firstNameEdit = QtGui.QLineEdit(self.dataGroupBox) self.firstNameEdit.setReadOnly(True) self.firstNameEdit.setObjectName(_fromUtf8("firstNameEdit")) self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.firstNameEdit) self.lastNameLabel = QtGui.QLabel(self.dataGroupBox) self.lastNameLabel.setObjectName(_fromUtf8("lastNameLabel")) self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.lastNameLabel) self.lastNameEdit = QtGui.QLineEdit(self.dataGroupBox) self.lastNameEdit.setReadOnly(True) self.lastNameEdit.setObjectName(_fromUtf8("lastNameEdit")) self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.lastNameEdit) self.genderLabel = QtGui.QLabel(self.dataGroupBox) self.genderLabel.setObjectName(_fromUtf8("genderLabel")) self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.genderLabel) self.genderEdit = QtGui.QLineEdit(self.dataGroupBox) self.genderEdit.setReadOnly(True) self.genderEdit.setObjectName(_fromUtf8("genderEdit")) self.formLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.genderEdit) self.updatesLabel = QtGui.QLabel(self.dataGroupBox) self.updatesLabel.setObjectName(_fromUtf8("updatesLabel")) self.formLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.updatesLabel) self.updatesEdit = QtGui.QLineEdit(self.dataGroupBox) self.updatesEdit.setReadOnly(True) self.updatesEdit.setObjectName(_fromUtf8("updatesEdit")) self.formLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.updatesEdit) self.verticalLayout_3.addLayout(self.formLayout) spacerItem1 = QtGui.QSpacerItem(20, 24, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_3.addItem(spacerItem1) self.horizontalLayout.addWidget(self.dataGroupBox) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8)) self.webFormGroupBox.setTitle(QtGui.QApplication.translate("Form", "Web Form", None, QtGui.QApplication.UnicodeUTF8)) self.dataGroupBox.setTitle(QtGui.QApplication.translate("Form", "Extracted Data", None, QtGui.QApplication.UnicodeUTF8)) self.firstNameLabel.setText(QtGui.QApplication.translate("Form", "First Name", None, QtGui.QApplication.UnicodeUTF8)) self.lastNameLabel.setText(QtGui.QApplication.translate("Form", "Last Name", None, QtGui.QApplication.UnicodeUTF8)) self.genderLabel.setText(QtGui.QApplication.translate("Form", "Gender", None, QtGui.QApplication.UnicodeUTF8)) self.updatesLabel.setText(QtGui.QApplication.translate("Form", "Receive Updates", None, QtGui.QApplication.UnicodeUTF8)) from PyQt4 import QtWebKit PyQt-x11-gpl-4.11.4/examples/webkit/framecapture.py0000755000076500000240000001271612536324427022121 0ustar philstaff00000000000000#!/usr/bin/env python """ Capture a web page and save its internal frames in different images framecapture.py Notes: 'url' is the URL of the web page to be captured 'outputfile' is the prefix of the image files to be generated Example: framecapture qt.nokia.com trolltech.png Result: trolltech.png (full page) trolltech_frame1.png (...) trolltech_frameN.png ('N' number of internal frames) """ ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### import sys from PyQt4 import QtCore, QtGui, QtWebKit def cout(s): sys.stdout.write(s) sys.stdout.flush() def cerr(s): sys.stderr.write(s) sys.stderr.flush() class FrameCapture(QtCore.QObject): finished = QtCore.pyqtSignal() def __init__(self): super(FrameCapture, self).__init__() self._percent = 0 self._page = QtWebKit.QWebPage() self._page.mainFrame().setScrollBarPolicy(QtCore.Qt.Vertical, QtCore.Qt.ScrollBarAlwaysOff) self._page.mainFrame().setScrollBarPolicy(QtCore.Qt.Horizontal, QtCore.Qt.ScrollBarAlwaysOff) self._page.loadProgress.connect(self.printProgress) self._page.loadFinished.connect(self.saveResult) def load(self, url, outputFileName): cout("Loading %s\n" % url.toString()) self._percent = 0 index = outputFileName.rfind('.') self._fileName = index == -1 and outputFileName + ".png" or outputFileName self._page.mainFrame().load(url) self._page.setViewportSize(QtCore.QSize(1024, 768)) def printProgress(self, percent): if self._percent >= percent: return self._percent += 1 while self._percent < percent: self._percent += 1 cout("#") def saveResult(self, ok): cout("\n") # Crude error-checking. if not ok: cerr("Failed loading %s\n" % self._page.mainFrame().url().toString()) self.finished.emit() return # Save each frame in different image files. self._frameCounter = 0 self.saveFrame(self._page.mainFrame()) self.finished.emit() def saveFrame(self, frame): fileName = self._fileName if self._frameCounter: index = fileName.rfind('.') fileName = "%s_frame%s%s" % (fileName[:index], self._frameCounter, fileName[index:]) self._page.setViewportSize(self._page.mainFrame().contentsSize()) image = QtGui.QImage(frame.contentsSize(), QtGui.QImage.Format_ARGB32_Premultiplied) image.fill(QtCore.Qt.transparent) painter = QtGui.QPainter(image) painter.setRenderHint(QtGui.QPainter.Antialiasing, True) painter.setRenderHint(QtGui.QPainter.TextAntialiasing, True) painter.setRenderHint(QtGui.QPainter.SmoothPixmapTransform, True) frame.documentElement().render(painter) painter.end() image.save(fileName) self._frameCounter += 1 for childFrame in frame.childFrames(): self.saveFrame(childFrame) if __name__ == '__main__': if len(sys.argv) != 3: cerr(__doc__) sys.exit(1) url = QtCore.QUrl.fromUserInput(sys.argv[1]) fileName = sys.argv[2] app = QtGui.QApplication(sys.argv) capture = FrameCapture() capture.finished.connect(app.quit) capture.load(url, fileName) app.exec_() # We can get a crash if this (specifically the QWebPage it contains) is not # garbage collected before the QApplication, so we do it explicitly. del capture PyQt-x11-gpl-4.11.4/examples/webkit/googlechat/0000755000076500000240000000000012536324427021173 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/webkit/googlechat/form.ui0000644000076500000240000001343512536324427022503 0ustar philstaff00000000000000 Form 0 0 286 413 Google Talk Client 0 0 1 Qt::Vertical 20 170 TextLabel Qt::AlignCenter true 24 Qt::Vertical 20 169 Qt::Vertical 20 119 Google username: Qt::Vertical QSizePolicy::Fixed 20 17 Password: QLineEdit::Password Qt::Vertical 20 118 Qt::Horizontal 40 20 Login true Qt::Horizontal 40 20 0 0 about:blank QWebView QWidget
      QtWebKit/QWebView
      PyQt-x11-gpl-4.11.4/examples/webkit/googlechat/googlechat.py0000755000076500000240000001511312536324427023665 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui, QtNetwork, QtWebKit from ui_form import Ui_Form class GoogleChat(QtGui.QWidget): URL = 'http://talkgadget.google.com/talkgadget/m' def __init__(self): super(GoogleChat, self).__init__() self.userName = "" self.password = "" self.form = Ui_Form() self.form.setupUi(self) self.setFixedSize(320, 480) self.form.userNameEdit.setFocus() self.form.userNameEdit.textChanged.connect(self.adjustLoginButton) self.form.userNameEdit.returnPressed.connect(self.inputPassword) self.form.passwordEdit.textChanged.connect(self.adjustLoginButton) self.form.passwordEdit.returnPressed.connect(self.doLogin) self.form.loginButton.setEnabled(False) self.form.loginButton.clicked.connect(self.doLogin) self.form.webView.loadFinished.connect(self.initialPage) self.form.webView.loadProgress.connect(self.form.progressBar.setValue) self.form.webView.setUrl(QtCore.QUrl(GoogleChat.URL)) self.form.webView.setContextMenuPolicy(QtCore.Qt.PreventContextMenu) self.showStatus("Wait...") def showStatus(self, msg): self.form.statusLabel.setText(msg) self.form.stackedWidget.setCurrentIndex(0) def showError(self, msg): self.form.progressBar.hide() self.showStatus("Error: %s" % msg) def document(self): return self.form.webView.page().mainFrame().documentElement() def adjustLoginButton(self): self.userName = self.form.userNameEdit.text() self.password = self.form.passwordEdit.text() self.form.loginButton.setEnabled(bool(self.userName and self.password)) def inputPassword(self): if self.form.userNameEdit.text(): self.form.passwordEdit.setFocus() def doLogin(self): self.userName = self.form.userNameEdit.text() self.password = self.form.passwordEdit.text() if not (self.userName and self.password): return self.form.progressBar.setValue(0) self.form.progressBar.show() self.form.webView.loadFinished.connect(self.loginPage) self.form.webView.loadProgress.connect(self.form.progressBar.setValue) self.showStatus("Logging in...") userEmail = self.userName + '@gmail.com' self.document().findFirst('#Email').setAttribute('value', userEmail) self.document().findFirst('#Passwd').setAttribute('value', self.password) self.document().findFirst('#gaia_loginform').evaluateJavaScript('this.submit();') @QtCore.pyqtSlot(bool) def initialPage(self, ok): if not QtNetwork.QSslSocket.supportsSsl(): self.showError("This example requires SSL support.") return if ok: email = self.document().findFirst('#Email') passwd = self.document().findFirst('#Passwd') loginForm = self.document().findFirst('#gaia_loginform') if not email.isNull() and not passwd.isNull() and not loginForm.isNull(): self.form.stackedWidget.setCurrentIndex(1) self.form.userNameEdit.setFocus() self.form.webView.loadFinished.disconnect() self.form.webView.loadProgress.disconnect() return self.showError("Service unavailable.") def hideElements(self): self.document().findFirst('.footer-footer').removeFromDocument() self.document().findFirst('.title-bar-bg .title-bar').removeFromDocument() QtCore.QTimer.singleShot(2000, self.hideElements) def loginPage(self, ok): location = self.form.webView.url().toString() if not ok: if 'CheckCookie' in location: return self.showError("Service unavailable") else: # Check for any error message. e = self.document().findFirst('.errormsg') if e.isNull(): self.form.stackedWidget.setCurrentIndex(2) QtCore.QTimer.singleShot(500, self.hideElements) return err = "Unknown login failure." errorMessage = e.toPlainText() if errorMessage: err = errorMessage err = err.simplified() self.showError(err) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration(True) chat = GoogleChat() chat.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/webkit/googlechat/ui_form.py0000644000076500000240000001305012536324427023204 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'form.ui' # # Created: Mon Nov 29 16:57:47 2010 # by: PyQt4 UI code generator snapshot-4.8.2-241fbaf4620d # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(286, 413) self.verticalLayout = QtGui.QVBoxLayout(Form) self.verticalLayout.setSpacing(0) self.verticalLayout.setMargin(0) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.stackedWidget = QtGui.QStackedWidget(Form) self.stackedWidget.setObjectName(_fromUtf8("stackedWidget")) self.page_3 = QtGui.QWidget() self.page_3.setObjectName(_fromUtf8("page_3")) self.verticalLayout_4 = QtGui.QVBoxLayout(self.page_3) self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4")) spacerItem = QtGui.QSpacerItem(20, 170, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_4.addItem(spacerItem) self.statusLabel = QtGui.QLabel(self.page_3) self.statusLabel.setAlignment(QtCore.Qt.AlignCenter) self.statusLabel.setWordWrap(True) self.statusLabel.setObjectName(_fromUtf8("statusLabel")) self.verticalLayout_4.addWidget(self.statusLabel) self.progressBar = QtGui.QProgressBar(self.page_3) self.progressBar.setProperty(_fromUtf8("value"), 24) self.progressBar.setObjectName(_fromUtf8("progressBar")) self.verticalLayout_4.addWidget(self.progressBar) spacerItem1 = QtGui.QSpacerItem(20, 169, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_4.addItem(spacerItem1) self.stackedWidget.addWidget(self.page_3) self.page = QtGui.QWidget() self.page.setObjectName(_fromUtf8("page")) self.verticalLayout_2 = QtGui.QVBoxLayout(self.page) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) spacerItem2 = QtGui.QSpacerItem(20, 119, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_2.addItem(spacerItem2) self.userNameLabel = QtGui.QLabel(self.page) self.userNameLabel.setObjectName(_fromUtf8("userNameLabel")) self.verticalLayout_2.addWidget(self.userNameLabel) self.userNameEdit = QtGui.QLineEdit(self.page) self.userNameEdit.setObjectName(_fromUtf8("userNameEdit")) self.verticalLayout_2.addWidget(self.userNameEdit) spacerItem3 = QtGui.QSpacerItem(20, 17, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) self.verticalLayout_2.addItem(spacerItem3) self.passwordLabel = QtGui.QLabel(self.page) self.passwordLabel.setObjectName(_fromUtf8("passwordLabel")) self.verticalLayout_2.addWidget(self.passwordLabel) self.passwordEdit = QtGui.QLineEdit(self.page) self.passwordEdit.setEchoMode(QtGui.QLineEdit.Password) self.passwordEdit.setObjectName(_fromUtf8("passwordEdit")) self.verticalLayout_2.addWidget(self.passwordEdit) spacerItem4 = QtGui.QSpacerItem(20, 118, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_2.addItem(spacerItem4) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) spacerItem5 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem5) self.loginButton = QtGui.QPushButton(self.page) self.loginButton.setDefault(True) self.loginButton.setObjectName(_fromUtf8("loginButton")) self.horizontalLayout.addWidget(self.loginButton) spacerItem6 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem6) self.verticalLayout_2.addLayout(self.horizontalLayout) self.stackedWidget.addWidget(self.page) self.page_2 = QtGui.QWidget() self.page_2.setObjectName(_fromUtf8("page_2")) self.verticalLayout_3 = QtGui.QVBoxLayout(self.page_2) self.verticalLayout_3.setSpacing(0) self.verticalLayout_3.setMargin(0) self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) self.webView = QtWebKit.QWebView(self.page_2) self.webView.setUrl(QtCore.QUrl(_fromUtf8("about:blank"))) self.webView.setObjectName(_fromUtf8("webView")) self.verticalLayout_3.addWidget(self.webView) self.stackedWidget.addWidget(self.page_2) self.verticalLayout.addWidget(self.stackedWidget) self.retranslateUi(Form) self.stackedWidget.setCurrentIndex(1) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle(QtGui.QApplication.translate("Form", "Google Talk Client", None, QtGui.QApplication.UnicodeUTF8)) self.statusLabel.setText(QtGui.QApplication.translate("Form", "TextLabel", None, QtGui.QApplication.UnicodeUTF8)) self.userNameLabel.setText(QtGui.QApplication.translate("Form", "Google username:", None, QtGui.QApplication.UnicodeUTF8)) self.passwordLabel.setText(QtGui.QApplication.translate("Form", "Password:", None, QtGui.QApplication.UnicodeUTF8)) self.loginButton.setText(QtGui.QApplication.translate("Form", "Login", None, QtGui.QApplication.UnicodeUTF8)) from PyQt4 import QtWebKit PyQt-x11-gpl-4.11.4/examples/webkit/previewer/0000755000076500000240000000000012536324427021067 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/webkit/previewer/previewer.py0000755000076500000240000001506712536324427023465 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui, QtWebKit from ui_previewer import Ui_Form class Previewer(QtGui.QWidget, Ui_Form): def __init__(self, parent=None): super(Previewer, self).__init__(parent) self.setupUi(self) self.baseUrl = QtCore.QUrl() def setBaseUrl(self, url): self.baseUrl = url def on_previewButton_clicked(self): # Update the contents in the web viewer. text = self.plainTextEdit.toPlainText() self.webView.setHtml(text, self.baseUrl) class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.createActions() self.createMenus() self.centralWidget = Previewer(self) self.setCentralWidget(self.centralWidget) self.centralWidget.webView.loadFinished.connect(self.updateTextEdit) self.setStartupText() def createActions(self): self.openAct = QtGui.QAction("&Open...", self, shortcut=QtGui.QKeySequence.Open, statusTip="Open an existing HTML file", triggered=self.open) self.openUrlAct = QtGui.QAction("&Open URL...", self, shortcut="Ctrl+U", statusTip="Open a URL", triggered=self.openUrl) self.saveAct = QtGui.QAction("&Save", self, shortcut=QtGui.QKeySequence.Save, statusTip="Save the HTML file to disk", triggered=self.save) self.exitAct = QtGui.QAction("E&xit", self, shortcut=QtGui.QKeySequence.Quit, statusTip="Exit the application", triggered=self.close) self.aboutAct = QtGui.QAction("&About", self, statusTip="Show the application's About box", triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, statusTip="Show the Qt library's About box", triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.openAct) self.fileMenu.addAction(self.openUrlAct) self.fileMenu.addAction(self.saveAct) self.fileMenu.addSeparator() self.fileMenu.addAction(self.exitAct) self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) def about(self): QtGui.QMessageBox.about(self, "About Previewer", "The Previewer example demonstrates how to view HTML " "documents using a QtWebKit.QWebView.") def open(self): fileName = QtGui.QFileDialog.getOpenFileName(self) if fileName: fd = QtCore.QFile(fileName) if not fd.open(QtCore.QIODevice.ReadOnly): QtGui.QMessageBox.information(self, "Unable to open file", fd.errorString()) return output = QtCore.QTextStream(fd).readAll() # Display contents. self.centralWidget.plainTextEdit.setPlainText(output) self.centralWidget.setBaseUrl(QtCore.QUrl.fromLocalFile(fileName)) def openUrl(self): url, ok = QtGui.QInputDialog.getText(self, "Enter a URL", "URL:", QtGui.QLineEdit.Normal, "http://") if ok and url: url = QtCore.QUrl(url) self.centralWidget.webView.setUrl(url) def save(self): content = self.centralWidget.plainTextEdit.toPlainText() fileName = QtGui.QFileDialog.getSaveFileName(self) if fileName: fd = QtCore.QFile(fileName) if not fd.open(QtCore.QIODevice.WriteOnly): QtGui.QMessageBox.information(self, "Unable to open file", fd.errorString()) return QtCore.QTextStream(fd) << content def updateTextEdit(self): mainFrame = self.centralWidget.webView.page().mainFrame() frameText = mainFrame.toHtml() self.centralWidget.plainTextEdit.setPlainText(frameText) def setStartupText(self): self.centralWidget.webView.setHtml("""

      HTML Previewer

      This example shows you how to use QtWebKit.QWebView to preview HTML data written in a QtGui.QPlainTextEdit.

      """) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWindow = MainWindow() mainWindow.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/webkit/previewer/previewer.ui0000644000076500000240000000475212536324427023446 0ustar philstaff00000000000000 Form 0 0 911 688 Form Qt::Horizontal HTML Editor Clear Preview HTML Preview about:blank QWebView QWidget
      QtWebKit/QWebView
      clearButton clicked() plainTextEdit clear() 56 653 98 551
      PyQt-x11-gpl-4.11.4/examples/webkit/previewer/ui_previewer.py0000644000076500000240000000661312536324427024154 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'previewer.ui' # # Created: Mon Nov 29 17:09:55 2010 # by: PyQt4 UI code generator snapshot-4.8.2-241fbaf4620d # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(911, 688) self.horizontalLayout_4 = QtGui.QHBoxLayout(Form) self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) self.splitter = QtGui.QSplitter(Form) self.splitter.setOrientation(QtCore.Qt.Horizontal) self.splitter.setObjectName(_fromUtf8("splitter")) self.editorBox = QtGui.QGroupBox(self.splitter) self.editorBox.setObjectName(_fromUtf8("editorBox")) self.horizontalLayout_2 = QtGui.QHBoxLayout(self.editorBox) self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) self.verticalLayout_2 = QtGui.QVBoxLayout() self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.plainTextEdit = QtGui.QPlainTextEdit(self.editorBox) self.plainTextEdit.setObjectName(_fromUtf8("plainTextEdit")) self.verticalLayout_2.addWidget(self.plainTextEdit) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.clearButton = QtGui.QPushButton(self.editorBox) self.clearButton.setObjectName(_fromUtf8("clearButton")) self.horizontalLayout.addWidget(self.clearButton) self.previewButton = QtGui.QPushButton(self.editorBox) self.previewButton.setObjectName(_fromUtf8("previewButton")) self.horizontalLayout.addWidget(self.previewButton) self.verticalLayout_2.addLayout(self.horizontalLayout) self.horizontalLayout_2.addLayout(self.verticalLayout_2) self.previewerBox = QtGui.QGroupBox(self.splitter) self.previewerBox.setObjectName(_fromUtf8("previewerBox")) self.horizontalLayout_3 = QtGui.QHBoxLayout(self.previewerBox) self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) self.webView = QtWebKit.QWebView(self.previewerBox) self.webView.setUrl(QtCore.QUrl(_fromUtf8("about:blank"))) self.webView.setObjectName(_fromUtf8("webView")) self.horizontalLayout_3.addWidget(self.webView) self.horizontalLayout_4.addWidget(self.splitter) self.retranslateUi(Form) QtCore.QObject.connect(self.clearButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.plainTextEdit.clear) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8)) self.editorBox.setTitle(QtGui.QApplication.translate("Form", "HTML Editor", None, QtGui.QApplication.UnicodeUTF8)) self.clearButton.setText(QtGui.QApplication.translate("Form", "Clear", None, QtGui.QApplication.UnicodeUTF8)) self.previewButton.setText(QtGui.QApplication.translate("Form", "Preview", None, QtGui.QApplication.UnicodeUTF8)) self.previewerBox.setTitle(QtGui.QApplication.translate("Form", "HTML Preview", None, QtGui.QApplication.UnicodeUTF8)) from PyQt4 import QtWebKit PyQt-x11-gpl-4.11.4/examples/webkit/simpleselector/0000755000076500000240000000000012536324427022111 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/webkit/simpleselector/simpleselector.py0000755000076500000240000000630412536324427025523 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui, QtWebKit from ui_window import Ui_Window class SimpleSelector(QtGui.QWidget, Ui_Window): def __init__(self, parent=None): super(SimpleSelector, self).__init__(parent) self.setupUi(self) self._lastElements = [] def on_elementLineEdit_returnPressed(self): frame = self.webView.page().mainFrame() # Select elements. document = frame.documentElement() elements = document.findAll(self.elementLineEdit.text()) for element in self._lastElements: element.removeAttribute('style') for element in elements: element.setAttribute('style', 'background-color: #f0f090') self._lastElements = elements def on_highlightButton_clicked(self): self.on_elementLineEdit_returnPressed() def setUrl(self, url): self.webView.setUrl(url) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) win = SimpleSelector() win.setUrl(QtCore.QUrl('http://www.webkit.org')) win.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/webkit/simpleselector/ui_window.py0000644000076500000240000000512512536324427024472 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'window.ui' # # Created: Mon Nov 29 17:25:27 2010 # by: PyQt4 UI code generator snapshot-4.8.2-241fbaf4620d # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_Window(object): def setupUi(self, Window): Window.setObjectName(_fromUtf8("Window")) Window.resize(640, 480) self.verticalLayout = QtGui.QVBoxLayout(Window) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.webView = QtWebKit.QWebView(Window) self.webView.setUrl(QtCore.QUrl(_fromUtf8("http://webkit.org/"))) self.webView.setObjectName(_fromUtf8("webView")) self.verticalLayout.addWidget(self.webView) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.formLayout = QtGui.QFormLayout() self.formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.ExpandingFieldsGrow) self.formLayout.setObjectName(_fromUtf8("formLayout")) self.elementLabel = QtGui.QLabel(Window) self.elementLabel.setObjectName(_fromUtf8("elementLabel")) self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.elementLabel) self.elementLineEdit = QtGui.QLineEdit(Window) self.elementLineEdit.setObjectName(_fromUtf8("elementLineEdit")) self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.elementLineEdit) self.horizontalLayout.addLayout(self.formLayout) self.highlightButton = QtGui.QPushButton(Window) self.highlightButton.setObjectName(_fromUtf8("highlightButton")) self.horizontalLayout.addWidget(self.highlightButton) self.verticalLayout.addLayout(self.horizontalLayout) self.elementLabel.setBuddy(self.elementLineEdit) self.retranslateUi(Window) QtCore.QMetaObject.connectSlotsByName(Window) def retranslateUi(self, Window): Window.setWindowTitle(QtGui.QApplication.translate("Window", "Web Element Selector", None, QtGui.QApplication.UnicodeUTF8)) self.elementLabel.setText(QtGui.QApplication.translate("Window", "&Element:", None, QtGui.QApplication.UnicodeUTF8)) self.elementLineEdit.setText(QtGui.QApplication.translate("Window", "li a", None, QtGui.QApplication.UnicodeUTF8)) self.highlightButton.setText(QtGui.QApplication.translate("Window", "&Highlight", None, QtGui.QApplication.UnicodeUTF8)) from PyQt4 import QtWebKit PyQt-x11-gpl-4.11.4/examples/webkit/simpleselector/window.ui0000644000076500000240000000344112536324427023761 0ustar philstaff00000000000000 Window 0 0 640 480 Web Element Selector http://webkit.org/ QFormLayout::ExpandingFieldsGrow &Element: elementLineEdit li a &Highlight QWebView QWidget
      QtWebKit/QWebView
      PyQt-x11-gpl-4.11.4/examples/webkit/webftpclient.py0000755000076500000240000002422712536324427022131 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################ ## ## Copyright (C) 2014 Moritz Warning . ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################ # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui, QtNetwork, QtWebKit class FtpView(QtWebKit.QWebView): def __init__(self): super(FtpView, self).__init__() oldManager = self.page().networkAccessManager() newManager = NetworkAccessManager(oldManager, self) self.page().setNetworkAccessManager(newManager) self.page().setForwardUnsupportedContent(True) self.downloader = Downloader(self, newManager) self.page().unsupportedContent.connect(self.downloader.saveFile) self.page().downloadRequested.connect(self.downloader.startDownload) self.urlChanged.connect(self.updateWindowTitle) def updateWindowTitle(self, url): self.setWindowTitle("FTP Client - %s" % url.toString()) def createWindow(self, _): newview = FtpView() newview.show() return newview class Downloader(QtCore.QObject): def __init__(self, parentWidget, manager): super(Downloader, self).__init__(parentWidget) self.manager = manager self.reply = None self.downloads = {} self.path = "" self.parentWidget = parentWidget def chooseSaveFile(self, url): fileName = url.path().split("/")[-1] if len(self.path) != 0: fileName = QDir(path).filePath(fileName) return QtGui.QFileDialog.getSaveFileName(self.parentWidget, "Save File", fileName); def startDownload(self, request): self.downloads[request.url().toString()] = self.chooseSaveFile(request.url()) reply = self.manager.get(request) reply.finished.connect(self.finishDownload) def saveFile(self, reply): newPath = self.downloads.get(reply.url().toString()) if not newPath: newPath = self.chooseSaveFile(reply.url()) if len(newPath) != 0: file = QtCore.QFile(newPath) if file.open(QtCore.QIODevice.WriteOnly): file.write(reply.readAll()) file.close() path = QtCore.QDir(newPath).dirName() QtGui.QMessageBox.information(self.parentWidget, "Download Completed", "Saved '%s'." % newPath) else: QtGui.QMessageBox.warning(self.parentWidget, "Download Failed", "Failed to save the file.") def finishDownload(self): reply = self.sender() self.saveFile(reply) self.downloads.pop(reply.url().toString(), None) reply.deleteLater() class NetworkAccessManager(QtNetwork.QNetworkAccessManager): def __init__(self, manager, parent): super(NetworkAccessManager, self).__init__(parent) self.setCache(manager.cache()) self.setCookieJar(manager.cookieJar()) self.setProxy(manager.proxy()) self.setProxyFactory(manager.proxyFactory()) def createRequest(self, operation, request, device): if request.url().scheme() != "ftp": return QtNetwork.QNetworkAccessManager.createRequest(self, operation, request, device) if operation == QtNetwork.QNetworkAccessManager.GetOperation: # Handle ftp:// URLs separately by creating custom QNetworkReply objects. return FtpReply(request.url(), self) else: return QtNetwork.QNetworkAccessManager.createRequest(self, operation, request, device) class FtpReply(QtNetwork.QNetworkReply): def __init__(self, url, parent): super(FtpReply, self).__init__(parent) self.items = [] self.content = QtCore.QByteArray() self.ftp = QtNetwork.QFtp(self) self.ftp.listInfo.connect(self.processListInfo) self.ftp.readyRead.connect(self.processData) self.ftp.commandFinished.connect(self.processCommand) self.offset = 0 self.units = ["bytes", "K", "M", "G", "Ti", "Pi", "Ei", "Zi", "Yi"] self.setUrl(url) self.ftp.connectToHost(url.host()) def processCommand(self, _, err): if err: self.setError(QtNetwork.QNetworkReply.ContentNotFoundError, "Unknown command") self.error.emit(QtNetwork.QNetworkReply.ContentNotFoundError) cmd = self.ftp.currentCommand() if cmd == QtNetwork.QFtp.ConnectToHost: self.ftp.login() elif cmd == QtNetwork.QFtp.Login: self.ftp.list(self.url().path()) elif cmd == QtNetwork.QFtp.List: if len(self.items) == 1: self.ftp.get(self.url().path()) else: self.setListContent() elif cmd == QtNetwork.QFtp.Get: self.setContent() def processListInfo(self, urlInfo): self.items.append(QtNetwork.QUrlInfo(urlInfo)) def processData(self): self.content += self.ftp.readAll() def setContent(self): self.open(QtCore.QIODevice.ReadOnly | QtCore.QIODevice.Unbuffered) self.setHeader(QtNetwork.QNetworkRequest.ContentLengthHeader, len(self.content)) self.readyRead.emit() self.finished.emit() self.ftp.close() def setListContent(self): u = self.url() if not u.path().endswith("/"): u.setPath(u.path() + "/") base_url = self.url().toString() base_path = u.path() self.open(QtCore.QIODevice.ReadOnly | QtCore.QIODevice.Unbuffered) content = ( '\n' '\n' ' %s\n' ' \n' '\n\n' '\n' '

      Listing for %s

      \n\n' '\n' '\n' % (QtCore.Qt.escape(base_url), base_path)) parent = u.resolved(QtCore.QUrl("..")) if parent.isParentOf(u): content += ('\n') i = 0 for item in self.items: child = u.resolved(QtCore.QUrl(item.name())) if i == 0: content += '' else: content += '' content += '' % (child.toString(), QtCore.Qt.escape(item.name())) size = item.size() unit = 0 while size: new_size = size // 1024 if new_size and unit < len(self.units) - 1: size = new_size unit += 1 else: break if item.isFile(): content += '\n' % (str(size), self.units[unit]) else: content += '\n' i = 1 - i content += '
      NameSize
      ' % parent.toString() + 'Parent directory
      %s%s %s
      \n\n\n' self.content = QtCore.QByteArray(content.encode('utf-8')) self.setHeader(QtNetwork.QNetworkRequest.ContentTypeHeader, "text/html; charset=UTF-8") self.setHeader(QtNetwork.QNetworkRequest.ContentLengthHeader, len(self.content)) self.readyRead.emit() self.finished.emit() self.ftp.close() def abort(self): pass def bytesAvailable(self): return len(self.content) - self.offset + QtNetwork.QNetworkReply.bytesAvailable(self) def isSequential(self): return True def readData(self, maxSize): if self.offset < len(self.content): number = min(maxSize, len(self.content) - self.offset) data = self.content[self.offset:self.offset+number] self.offset += number return data.data() return None if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) view = FtpView() view.setUrl(QtCore.QUrl("ftp://ftp.qt.nokia.com")) view.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/0000755000076500000240000000000012536324427017240 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/widgets/analogclock.py0000755000076500000240000001001312536324427022065 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class AnalogClock(QtGui.QWidget): hourHand = QtGui.QPolygon([ QtCore.QPoint(7, 8), QtCore.QPoint(-7, 8), QtCore.QPoint(0, -40) ]) minuteHand = QtGui.QPolygon([ QtCore.QPoint(7, 8), QtCore.QPoint(-7, 8), QtCore.QPoint(0, -70) ]) hourColor = QtGui.QColor(127, 0, 127) minuteColor = QtGui.QColor(0, 127, 127, 191) def __init__(self, parent=None): super(AnalogClock, self).__init__(parent) timer = QtCore.QTimer(self) timer.timeout.connect(self.update) timer.start(1000) self.setWindowTitle("Analog Clock") self.resize(200, 200) def paintEvent(self, event): side = min(self.width(), self.height()) time = QtCore.QTime.currentTime() painter = QtGui.QPainter(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.translate(self.width() / 2, self.height() / 2) painter.scale(side / 200.0, side / 200.0) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(AnalogClock.hourColor) painter.save() painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0))) painter.drawConvexPolygon(AnalogClock.hourHand) painter.restore() painter.setPen(AnalogClock.hourColor) for i in range(12): painter.drawLine(88, 0, 96, 0) painter.rotate(30.0) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(AnalogClock.minuteColor) painter.save() painter.rotate(6.0 * (time.minute() + time.second() / 60.0)) painter.drawConvexPolygon(AnalogClock.minuteHand) painter.restore() painter.setPen(AnalogClock.minuteColor) for j in range(60): if (j % 5) != 0: painter.drawLine(92, 0, 96, 0) painter.rotate(6.0) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) clock = AnalogClock() clock.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/calculator.py0000755000076500000240000002734112536324427021755 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import math from PyQt4 import QtCore, QtGui class Button(QtGui.QToolButton): def __init__(self, text, parent=None): super(Button, self).__init__(parent) self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) self.setText(text) def sizeHint(self): size = super(Button, self).sizeHint() size.setHeight(size.height() + 20) size.setWidth(max(size.width(), size.height())) return size class Calculator(QtGui.QDialog): NumDigitButtons = 10 def __init__(self, parent=None): super(Calculator, self).__init__(parent) self.pendingAdditiveOperator = '' self.pendingMultiplicativeOperator = '' self.sumInMemory = 0.0 self.sumSoFar = 0.0 self.factorSoFar = 0.0 self.waitingForOperand = True self.display = QtGui.QLineEdit('0') self.display.setReadOnly(True) self.display.setAlignment(QtCore.Qt.AlignRight) self.display.setMaxLength(15) font = self.display.font() font.setPointSize(font.pointSize() + 8) self.display.setFont(font) self.digitButtons = [] for i in range(Calculator.NumDigitButtons): self.digitButtons.append(self.createButton(str(i), self.digitClicked)) self.pointButton = self.createButton(".", self.pointClicked) self.changeSignButton = self.createButton("\261", self.changeSignClicked) self.backspaceButton = self.createButton("Backspace", self.backspaceClicked) self.clearButton = self.createButton("Clear", self.clear) self.clearAllButton = self.createButton("Clear All", self.clearAll) self.clearMemoryButton = self.createButton("MC", self.clearMemory) self.readMemoryButton = self.createButton("MR", self.readMemory) self.setMemoryButton = self.createButton("MS", self.setMemory) self.addToMemoryButton = self.createButton("M+", self.addToMemory) self.divisionButton = self.createButton("\367", self.multiplicativeOperatorClicked) self.timesButton = self.createButton("\327", self.multiplicativeOperatorClicked) self.minusButton = self.createButton("-", self.additiveOperatorClicked) self.plusButton = self.createButton("+", self.additiveOperatorClicked) self.squareRootButton = self.createButton("Sqrt", self.unaryOperatorClicked) self.powerButton = self.createButton("x\262", self.unaryOperatorClicked) self.reciprocalButton = self.createButton("1/x", self.unaryOperatorClicked) self.equalButton = self.createButton("=", self.equalClicked) mainLayout = QtGui.QGridLayout() mainLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize) mainLayout.addWidget(self.display, 0, 0, 1, 6) mainLayout.addWidget(self.backspaceButton, 1, 0, 1, 2) mainLayout.addWidget(self.clearButton, 1, 2, 1, 2) mainLayout.addWidget(self.clearAllButton, 1, 4, 1, 2) mainLayout.addWidget(self.clearMemoryButton, 2, 0) mainLayout.addWidget(self.readMemoryButton, 3, 0) mainLayout.addWidget(self.setMemoryButton, 4, 0) mainLayout.addWidget(self.addToMemoryButton, 5, 0) for i in range(1, Calculator.NumDigitButtons): row = ((9 - i) / 3) + 2 column = ((i - 1) % 3) + 1 mainLayout.addWidget(self.digitButtons[i], row, column) mainLayout.addWidget(self.digitButtons[0], 5, 1) mainLayout.addWidget(self.pointButton, 5, 2) mainLayout.addWidget(self.changeSignButton, 5, 3) mainLayout.addWidget(self.divisionButton, 2, 4) mainLayout.addWidget(self.timesButton, 3, 4) mainLayout.addWidget(self.minusButton, 4, 4) mainLayout.addWidget(self.plusButton, 5, 4) mainLayout.addWidget(self.squareRootButton, 2, 5) mainLayout.addWidget(self.powerButton, 3, 5) mainLayout.addWidget(self.reciprocalButton, 4, 5) mainLayout.addWidget(self.equalButton, 5, 5) self.setLayout(mainLayout) self.setWindowTitle("Calculator") def digitClicked(self): clickedButton = self.sender() digitValue = int(clickedButton.text()) if self.display.text() == '0' and digitValue == 0.0: return if self.waitingForOperand: self.display.clear() self.waitingForOperand = False self.display.setText(self.display.text() + str(digitValue)) def unaryOperatorClicked(self): clickedButton = self.sender() clickedOperator = clickedButton.text() operand = float(self.display.text()) if clickedOperator == "Sqrt": if operand < 0.0: self.abortOperation() return result = math.sqrt(operand) elif clickedOperator == "x\262": result = math.pow(operand, 2.0) elif clickedOperator == "1/x": if operand == 0.0: self.abortOperation() return result = 1.0 / operand self.display.setText(str(result)) self.waitingForOperand = True def additiveOperatorClicked(self): clickedButton = self.sender() clickedOperator = clickedButton.text() operand = float(self.display.text()) if self.pendingMultiplicativeOperator: if not self.calculate(operand, self.pendingMultiplicativeOperator): self.abortOperation() return self.display.setText(str(self.factorSoFar)) operand = self.factorSoFar self.factorSoFar = 0.0 self.pendingMultiplicativeOperator = '' if self.pendingAdditiveOperator: if not self.calculate(operand, self.pendingAdditiveOperator): self.abortOperation() return self.display.setText(str(self.sumSoFar)) else: self.sumSoFar = operand self.pendingAdditiveOperator = clickedOperator self.waitingForOperand = True def multiplicativeOperatorClicked(self): clickedButton = self.sender() clickedOperator = clickedButton.text() operand = float(self.display.text()) if self.pendingMultiplicativeOperator: if not self.calculate(operand, self.pendingMultiplicativeOperator): self.abortOperation() return self.display.setText(str(self.factorSoFar)) else: self.factorSoFar = operand self.pendingMultiplicativeOperator = clickedOperator self.waitingForOperand = True def equalClicked(self): operand = float(self.display.text()) if self.pendingMultiplicativeOperator: if not self.calculate(operand, self.pendingMultiplicativeOperator): self.abortOperation() return operand = self.factorSoFar self.factorSoFar = 0.0 self.pendingMultiplicativeOperator = '' if self.pendingAdditiveOperator: if not self.calculate(operand, self.pendingAdditiveOperator): self.abortOperation() return self.pendingAdditiveOperator = '' else: self.sumSoFar = operand self.display.setText(str(self.sumSoFar)) self.sumSoFar = 0.0 self.waitingForOperand = True def pointClicked(self): if self.waitingForOperand: self.display.setText('0') if "." not in self.display.text(): self.display.setText(self.display.text() + ".") self.waitingForOperand = False def changeSignClicked(self): text = self.display.text() value = float(text) if value > 0.0: text = "-" + text elif value < 0.0: text = text[1:] self.display.setText(text) def backspaceClicked(self): if self.waitingForOperand: return text = self.display.text()[:-1] if not text: text = '0' self.waitingForOperand = True self.display.setText(text) def clear(self): if self.waitingForOperand: return self.display.setText('0') self.waitingForOperand = True def clearAll(self): self.sumSoFar = 0.0 self.factorSoFar = 0.0 self.pendingAdditiveOperator = '' self.pendingMultiplicativeOperator = '' self.display.setText('0') self.waitingForOperand = True def clearMemory(self): self.sumInMemory = 0.0 def readMemory(self): self.display.setText(str(self.sumInMemory)) self.waitingForOperand = True def setMemory(self): self.equalClicked() self.sumInMemory = float(self.display.text()) def addToMemory(self): self.equalClicked() self.sumInMemory += float(self.display.text()) def createButton(self, text, member): button = Button(text) button.clicked.connect(member) return button def abortOperation(self): self.clearAll() self.display.setText("####") def calculate(self, rightOperand, pendingOperator): if pendingOperator == "+": self.sumSoFar += rightOperand elif pendingOperator == "-": self.sumSoFar -= rightOperand elif pendingOperator == "\327": self.factorSoFar *= rightOperand elif pendingOperator == "\367": if rightOperand == 0.0: return False self.factorSoFar /= rightOperand return True if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) calc = Calculator() sys.exit(calc.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/calendarwidget.py0000755000076500000240000004256012536324427022601 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() self.createPreviewGroupBox() self.createGeneralOptionsGroupBox() self.createDatesGroupBox() self.createTextFormatsGroupBox() layout = QtGui.QGridLayout() layout.addWidget(self.previewGroupBox, 0, 0) layout.addWidget(self.generalOptionsGroupBox, 0, 1) layout.addWidget(self.datesGroupBox, 1, 0) layout.addWidget(self.textFormatsGroupBox, 1, 1) layout.setSizeConstraint(QtGui.QLayout.SetFixedSize) self.setLayout(layout) self.previewLayout.setRowMinimumHeight(0, self.calendar.sizeHint().height()) self.previewLayout.setColumnMinimumWidth(0, self.calendar.sizeHint().width()) self.setWindowTitle("Calendar Widget") def localeChanged(self, index): self.calendar.setLocale(self.localeCombo.itemData(index)) def firstDayChanged(self, index): self.calendar.setFirstDayOfWeek( QtCore.Qt.DayOfWeek(self.firstDayCombo.itemData(index))) def selectionModeChanged(self, index): self.calendar.setSelectionMode( QtGui.QCalendarWidget.SelectionMode( self.selectionModeCombo.itemData(index))) def horizontalHeaderChanged(self, index): self.calendar.setHorizontalHeaderFormat( QtGui.QCalendarWidget.HorizontalHeaderFormat( self.horizontalHeaderCombo.itemData(index))) def verticalHeaderChanged(self, index): self.calendar.setVerticalHeaderFormat( QtGui.QCalendarWidget.VerticalHeaderFormat( self.verticalHeaderCombo.itemData(index))) def selectedDateChanged(self): self.currentDateEdit.setDate(self.calendar.selectedDate()) def minimumDateChanged(self, date): self.calendar.setMinimumDate(date) self.maximumDateEdit.setDate(self.calendar.maximumDate()) def maximumDateChanged(self, date): self.calendar.setMaximumDate(date) self.minimumDateEdit.setDate(self.calendar.minimumDate()) def weekdayFormatChanged(self): format = QtGui.QTextCharFormat() format.setForeground( QtCore.Qt.GlobalColor( self.weekdayColorCombo.itemData( self.weekdayColorCombo.currentIndex()))) self.calendar.setWeekdayTextFormat(QtCore.Qt.Monday, format) self.calendar.setWeekdayTextFormat(QtCore.Qt.Tuesday, format) self.calendar.setWeekdayTextFormat(QtCore.Qt.Wednesday, format) self.calendar.setWeekdayTextFormat(QtCore.Qt.Thursday, format) self.calendar.setWeekdayTextFormat(QtCore.Qt.Friday, format) def weekendFormatChanged(self): format = QtGui.QTextCharFormat() format.setForeground( QtCore.Qt.GlobalColor( self.weekendColorCombo.itemData( self.weekendColorCombo.currentIndex()))) self.calendar.setWeekdayTextFormat(QtCore.Qt.Saturday, format) self.calendar.setWeekdayTextFormat(QtCore.Qt.Sunday, format) def reformatHeaders(self): text = self.headerTextFormatCombo.currentText() format = QtGui.QTextCharFormat() if text == "Bold": format.setFontWeight(QtGui.QFont.Bold) elif text == "Italic": format.setFontItalic(True) elif text == "Green": format.setForeground(QtCore.Qt.green) self.calendar.setHeaderTextFormat(format) def reformatCalendarPage(self): if self.firstFridayCheckBox.isChecked(): firstFriday = QtCore.QDate(self.calendar.yearShown(), self.calendar.monthShown(), 1) while firstFriday.dayOfWeek() != QtCore.Qt.Friday: firstFriday = firstFriday.addDays(1) firstFridayFormat = QtGui.QTextCharFormat() firstFridayFormat.setForeground(QtCore.Qt.blue) self.calendar.setDateTextFormat(firstFriday, firstFridayFormat) # May 1st in Red takes precedence. if self.mayFirstCheckBox.isChecked(): mayFirst = QtCore.QDate(self.calendar.yearShown(), 5, 1) mayFirstFormat = QtGui.QTextCharFormat() mayFirstFormat.setForeground(QtCore.Qt.red) self.calendar.setDateTextFormat(mayFirst, mayFirstFormat) def createPreviewGroupBox(self): self.previewGroupBox = QtGui.QGroupBox("Preview") self.calendar = QtGui.QCalendarWidget() self.calendar.setMinimumDate(QtCore.QDate(1900, 1, 1)) self.calendar.setMaximumDate(QtCore.QDate(3000, 1, 1)) self.calendar.setGridVisible(True) self.calendar.currentPageChanged.connect(self.reformatCalendarPage) self.previewLayout = QtGui.QGridLayout() self.previewLayout.addWidget(self.calendar, 0, 0, QtCore.Qt.AlignCenter) self.previewGroupBox.setLayout(self.previewLayout) def createGeneralOptionsGroupBox(self): self.generalOptionsGroupBox = QtGui.QGroupBox("General Options") self.localeCombo = QtGui.QComboBox() curLocaleIndex = -1 index = 0 for lid in range(QtCore.QLocale.C, QtCore.QLocale.LastLanguage + 1): lang = QtCore.QLocale.Language(lid) countries = QtCore.QLocale.countriesForLanguage(lang) for country in countries: label = "%s/%s" % (QtCore.QLocale.languageToString(lang), QtCore.QLocale.countryToString(country)) locale = QtCore.QLocale(lang, country) if self.locale().language() == lang and self.locale().country() == country: curLocaleIndex = index self.localeCombo.addItem(label, locale) index += 1 if curLocaleIndex != -1: self.localeCombo.setCurrentIndex(curLocaleIndex) self.localeLabel = QtGui.QLabel("&Locale") self.localeLabel.setBuddy(self.localeCombo) self.firstDayCombo = QtGui.QComboBox() self.firstDayCombo.addItem("Sunday", QtCore.Qt.Sunday) self.firstDayCombo.addItem("Monday", QtCore.Qt.Monday) self.firstDayCombo.addItem("Tuesday", QtCore.Qt.Tuesday) self.firstDayCombo.addItem("Wednesday", QtCore.Qt.Wednesday) self.firstDayCombo.addItem("Thursday", QtCore.Qt.Thursday) self.firstDayCombo.addItem("Friday", QtCore.Qt.Friday) self.firstDayCombo.addItem("Saturday", QtCore.Qt.Saturday) self.firstDayLabel = QtGui.QLabel("Wee&k starts on:") self.firstDayLabel.setBuddy(self.firstDayCombo) self.selectionModeCombo = QtGui.QComboBox() self.selectionModeCombo.addItem("Single selection", QtGui.QCalendarWidget.SingleSelection) self.selectionModeCombo.addItem("None", QtGui.QCalendarWidget.NoSelection) self.selectionModeLabel = QtGui.QLabel("&Selection mode:") self.selectionModeLabel.setBuddy(self.selectionModeCombo) self.gridCheckBox = QtGui.QCheckBox("&Grid") self.gridCheckBox.setChecked(self.calendar.isGridVisible()) self.navigationCheckBox = QtGui.QCheckBox("&Navigation bar") self.navigationCheckBox.setChecked(True) self.horizontalHeaderCombo = QtGui.QComboBox() self.horizontalHeaderCombo.addItem("Single letter day names", QtGui.QCalendarWidget.SingleLetterDayNames) self.horizontalHeaderCombo.addItem("Short day names", QtGui.QCalendarWidget.ShortDayNames) self.horizontalHeaderCombo.addItem("Long day names", QtGui.QCalendarWidget.LongDayNames) self.horizontalHeaderCombo.addItem("None", QtGui.QCalendarWidget.NoHorizontalHeader) self.horizontalHeaderCombo.setCurrentIndex(1) self.horizontalHeaderLabel = QtGui.QLabel("&Horizontal header:") self.horizontalHeaderLabel.setBuddy(self.horizontalHeaderCombo) self.verticalHeaderCombo = QtGui.QComboBox() self.verticalHeaderCombo.addItem("ISO week numbers", QtGui.QCalendarWidget.ISOWeekNumbers) self.verticalHeaderCombo.addItem("None", QtGui.QCalendarWidget.NoVerticalHeader) self.verticalHeaderLabel = QtGui.QLabel("&Vertical header:") self.verticalHeaderLabel.setBuddy(self.verticalHeaderCombo) self.localeCombo.currentIndexChanged.connect(self.localeChanged) self.firstDayCombo.currentIndexChanged.connect(self.firstDayChanged) self.selectionModeCombo.currentIndexChanged.connect( self.selectionModeChanged) self.gridCheckBox.toggled.connect(self.calendar.setGridVisible) self.navigationCheckBox.toggled.connect( self.calendar.setNavigationBarVisible) self.horizontalHeaderCombo.currentIndexChanged.connect( self.horizontalHeaderChanged) self.verticalHeaderCombo.currentIndexChanged.connect( self.verticalHeaderChanged) checkBoxLayout = QtGui.QHBoxLayout() checkBoxLayout.addWidget(self.gridCheckBox) checkBoxLayout.addStretch() checkBoxLayout.addWidget(self.navigationCheckBox) outerLayout = QtGui.QGridLayout() outerLayout.addWidget(self.localeLabel, 0, 0) outerLayout.addWidget(self.localeCombo, 0, 1) outerLayout.addWidget(self.firstDayLabel, 1, 0) outerLayout.addWidget(self.firstDayCombo, 1, 1) outerLayout.addWidget(self.selectionModeLabel, 2, 0) outerLayout.addWidget(self.selectionModeCombo, 2, 1) outerLayout.addLayout(checkBoxLayout, 3, 0, 1, 2) outerLayout.addWidget(self.horizontalHeaderLabel, 4, 0) outerLayout.addWidget(self.horizontalHeaderCombo, 4, 1) outerLayout.addWidget(self.verticalHeaderLabel, 5, 0) outerLayout.addWidget(self.verticalHeaderCombo, 5, 1) self.generalOptionsGroupBox.setLayout(outerLayout) self.firstDayChanged(self.firstDayCombo.currentIndex()) self.selectionModeChanged(self.selectionModeCombo.currentIndex()) self.horizontalHeaderChanged(self.horizontalHeaderCombo.currentIndex()) self.verticalHeaderChanged(self.verticalHeaderCombo.currentIndex()) def createDatesGroupBox(self): self.datesGroupBox = QtGui.QGroupBox(self.tr("Dates")) self.minimumDateEdit = QtGui.QDateEdit() self.minimumDateEdit.setDisplayFormat('MMM d yyyy') self.minimumDateEdit.setDateRange(self.calendar.minimumDate(), self.calendar.maximumDate()) self.minimumDateEdit.setDate(self.calendar.minimumDate()) self.minimumDateLabel = QtGui.QLabel("&Minimum Date:") self.minimumDateLabel.setBuddy(self.minimumDateEdit) self.currentDateEdit = QtGui.QDateEdit() self.currentDateEdit.setDisplayFormat('MMM d yyyy') self.currentDateEdit.setDate(self.calendar.selectedDate()) self.currentDateEdit.setDateRange(self.calendar.minimumDate(), self.calendar.maximumDate()) self.currentDateLabel = QtGui.QLabel("&Current Date:") self.currentDateLabel.setBuddy(self.currentDateEdit) self.maximumDateEdit = QtGui.QDateEdit() self.maximumDateEdit.setDisplayFormat('MMM d yyyy') self.maximumDateEdit.setDateRange(self.calendar.minimumDate(), self.calendar.maximumDate()) self.maximumDateEdit.setDate(self.calendar.maximumDate()) self.maximumDateLabel = QtGui.QLabel("Ma&ximum Date:") self.maximumDateLabel.setBuddy(self.maximumDateEdit) self.currentDateEdit.dateChanged.connect(self.calendar.setSelectedDate) self.calendar.selectionChanged.connect(self.selectedDateChanged) self.minimumDateEdit.dateChanged.connect(self.minimumDateChanged) self.maximumDateEdit.dateChanged.connect(self.maximumDateChanged) dateBoxLayout = QtGui.QGridLayout() dateBoxLayout.addWidget(self.currentDateLabel, 1, 0) dateBoxLayout.addWidget(self.currentDateEdit, 1, 1) dateBoxLayout.addWidget(self.minimumDateLabel, 0, 0) dateBoxLayout.addWidget(self.minimumDateEdit, 0, 1) dateBoxLayout.addWidget(self.maximumDateLabel, 2, 0) dateBoxLayout.addWidget(self.maximumDateEdit, 2, 1) dateBoxLayout.setRowStretch(3, 1) self.datesGroupBox.setLayout(dateBoxLayout) def createTextFormatsGroupBox(self): self.textFormatsGroupBox = QtGui.QGroupBox("Text Formats") self.weekdayColorCombo = self.createColorComboBox() self.weekdayColorCombo.setCurrentIndex( self.weekdayColorCombo.findText("Black")) self.weekdayColorLabel = QtGui.QLabel("&Weekday color:") self.weekdayColorLabel.setBuddy(self.weekdayColorCombo) self.weekendColorCombo = self.createColorComboBox() self.weekendColorCombo.setCurrentIndex( self.weekendColorCombo.findText("Red")) self.weekendColorLabel = QtGui.QLabel("Week&end color:") self.weekendColorLabel.setBuddy(self.weekendColorCombo) self.headerTextFormatCombo = QtGui.QComboBox() self.headerTextFormatCombo.addItem("Bold") self.headerTextFormatCombo.addItem("Italic") self.headerTextFormatCombo.addItem("Plain") self.headerTextFormatLabel = QtGui.QLabel("&Header text:") self.headerTextFormatLabel.setBuddy(self.headerTextFormatCombo) self.firstFridayCheckBox = QtGui.QCheckBox("&First Friday in blue") self.mayFirstCheckBox = QtGui.QCheckBox("May &1 in red") self.weekdayColorCombo.currentIndexChanged.connect( self.weekdayFormatChanged) self.weekendColorCombo.currentIndexChanged.connect( self.weekendFormatChanged) self.headerTextFormatCombo.currentIndexChanged.connect( self.reformatHeaders) self.firstFridayCheckBox.toggled.connect(self.reformatCalendarPage) self.mayFirstCheckBox.toggled.connect(self.reformatCalendarPage) checkBoxLayout = QtGui.QHBoxLayout() checkBoxLayout.addWidget(self.firstFridayCheckBox) checkBoxLayout.addStretch() checkBoxLayout.addWidget(self.mayFirstCheckBox) outerLayout = QtGui.QGridLayout() outerLayout.addWidget(self.weekdayColorLabel, 0, 0) outerLayout.addWidget(self.weekdayColorCombo, 0, 1) outerLayout.addWidget(self.weekendColorLabel, 1, 0) outerLayout.addWidget(self.weekendColorCombo, 1, 1) outerLayout.addWidget(self.headerTextFormatLabel, 2, 0) outerLayout.addWidget(self.headerTextFormatCombo, 2, 1) outerLayout.addLayout(checkBoxLayout, 3, 0, 1, 2) self.textFormatsGroupBox.setLayout(outerLayout) self.weekdayFormatChanged() self.weekendFormatChanged() self.reformatHeaders() self.reformatCalendarPage() def createColorComboBox(self): comboBox = QtGui.QComboBox() comboBox.addItem("Red", QtCore.Qt.red) comboBox.addItem("Blue", QtCore.Qt.blue) comboBox.addItem("Black", QtCore.Qt.black) comboBox.addItem("Magenta", QtCore.Qt.magenta) return comboBox if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/charactermap.py0000755000076500000240000002524312536324427022255 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # Using the QString v1 API is easier than using the v2 API and code that runs # under both Python v2.x and v3.x. import sip sip.setapi('QString', 1) from PyQt4 import QtCore, QtGui class CharacterWidget(QtGui.QWidget): characterSelected = QtCore.pyqtSignal(str) def __init__(self, parent=None): super(CharacterWidget, self).__init__(parent) self.displayFont = QtGui.QFont() self.squareSize = 24 self.columns = 16 self.lastKey = -1 self.setMouseTracking(True) def updateFont(self, fontFamily): self.displayFont.setFamily(fontFamily) self.squareSize = max(24, QtGui.QFontMetrics(self.displayFont).xHeight() * 3) self.adjustSize() self.update() def updateSize(self, fontSize): fontSize, _ = fontSize.toInt() self.displayFont.setPointSize(fontSize) self.squareSize = max(24, QtGui.QFontMetrics(self.displayFont).xHeight() * 3) self.adjustSize() self.update() def updateStyle(self, fontStyle): fontDatabase = QtGui.QFontDatabase() oldStrategy = self.displayFont.styleStrategy() self.displayFont = fontDatabase.font(self.displayFont.family(), fontStyle, self.displayFont.pointSize()) self.displayFont.setStyleStrategy(oldStrategy) self.squareSize = max(24, QtGui.QFontMetrics(self.displayFont).xHeight() * 3) self.adjustSize() self.update() def updateFontMerging(self, enable): if enable: self.displayFont.setStyleStrategy(QtGui.QFont.PreferDefault) else: self.displayFont.setStyleStrategy(QtGui.QFont.NoFontMerging) self.adjustSize() self.update() def sizeHint(self): return QtCore.QSize(self.columns * self.squareSize, (65536 / self.columns) * self.squareSize) def mouseMoveEvent(self, event): widgetPosition = self.mapFromGlobal(event.globalPos()) key = (widgetPosition.y() // self.squareSize) * self.columns + widgetPosition.x() // self.squareSize text = QtCore.QString.fromLatin1("

      Character: ").arg(self.displayFont.family()) + \ QtCore.QChar(key) + \ QtCore.QString.fromLatin1("

      Value: 0x") + \ QtCore.QString.number(key, 16) QtGui.QToolTip.showText(event.globalPos(), text, self) def mousePressEvent(self, event): if event.button() == QtCore.Qt.LeftButton: self.lastKey = (event.y() // self.squareSize) * self.columns + event.x() // self.squareSize if QtCore.QChar(self.lastKey).category() != QtCore.QChar.NoCategory: self.characterSelected.emit(QtCore.QString(QtCore.QChar(self.lastKey))) self.update() else: super(CharacterWidget, self).mousePressEvent(event) def paintEvent(self, event): painter = QtGui.QPainter(self) painter.fillRect(event.rect(), QtCore.Qt.white) painter.setFont(self.displayFont) redrawRect = event.rect() beginRow = redrawRect.top() // self.squareSize endRow = redrawRect.bottom() // self.squareSize beginColumn = redrawRect.left() // self.squareSize endColumn = redrawRect.right() // self.squareSize painter.setPen(QtCore.Qt.gray) for row in range(beginRow, endRow + 1): for column in range(beginColumn, endColumn + 1): painter.drawRect(column * self.squareSize, row * self.squareSize, self.squareSize, self.squareSize) fontMetrics = QtGui.QFontMetrics(self.displayFont) painter.setPen(QtCore.Qt.black) for row in range(beginRow, endRow + 1): for column in range(beginColumn, endColumn + 1): key = row * self.columns + column painter.setClipRect(column * self.squareSize, row * self.squareSize, self.squareSize, self.squareSize) if key == self.lastKey: painter.fillRect(column * self.squareSize + 1, row * self.squareSize + 1, self.squareSize, self.squareSize, QtCore.Qt.red) painter.drawText(column * self.squareSize + (self.squareSize / 2) - fontMetrics.width(QtCore.QChar(key)) / 2, row * self.squareSize + 4 + fontMetrics.ascent(), QtCore.QChar(key)) class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() centralWidget = QtGui.QWidget() fontLabel = QtGui.QLabel("Font:") self.fontCombo = QtGui.QFontComboBox() sizeLabel = QtGui.QLabel("Size:") self.sizeCombo = QtGui.QComboBox() styleLabel = QtGui.QLabel("Style:") self.styleCombo = QtGui.QComboBox() fontMergingLabel = QtGui.QLabel("Automatic Font Merging:") self.fontMerging = QtGui.QCheckBox() self.fontMerging.setChecked(True) self.scrollArea = QtGui.QScrollArea() self.characterWidget = CharacterWidget() self.scrollArea.setWidget(self.characterWidget) self.findStyles(self.fontCombo.currentFont()) self.findSizes(self.fontCombo.currentFont()) self.lineEdit = QtGui.QLineEdit() clipboardButton = QtGui.QPushButton("&To clipboard") self.clipboard = QtGui.QApplication.clipboard() self.fontCombo.currentFontChanged.connect(self.findStyles) self.fontCombo.activated[str].connect(self.characterWidget.updateFont) self.styleCombo.activated[str].connect(self.characterWidget.updateStyle) self.sizeCombo.currentIndexChanged[str].connect(self.characterWidget.updateSize) self.characterWidget.characterSelected.connect(self.insertCharacter) clipboardButton.clicked.connect(self.updateClipboard) controlsLayout = QtGui.QHBoxLayout() controlsLayout.addWidget(fontLabel) controlsLayout.addWidget(self.fontCombo, 1) controlsLayout.addWidget(sizeLabel) controlsLayout.addWidget(self.sizeCombo, 1) controlsLayout.addWidget(styleLabel) controlsLayout.addWidget(self.styleCombo, 1) controlsLayout.addWidget(fontMergingLabel) controlsLayout.addWidget(self.fontMerging, 1) controlsLayout.addStretch(1) lineLayout = QtGui.QHBoxLayout() lineLayout.addWidget(self.lineEdit, 1) lineLayout.addSpacing(12) lineLayout.addWidget(clipboardButton) centralLayout = QtGui.QVBoxLayout() centralLayout.addLayout(controlsLayout) centralLayout.addWidget(self.scrollArea, 1) centralLayout.addSpacing(4) centralLayout.addLayout(lineLayout) centralWidget.setLayout(centralLayout) self.setCentralWidget(centralWidget) self.setWindowTitle("Character Map") def findStyles(self, font): fontDatabase = QtGui.QFontDatabase() currentItem = self.styleCombo.currentText() self.styleCombo.clear() for style in fontDatabase.styles(font.family()): self.styleCombo.addItem(style) styleIndex = self.styleCombo.findText(currentItem) if styleIndex == -1: self.styleCombo.setCurrentIndex(0) else: self.styleCombo.setCurrentIndex(styleIndex) def findSizes(self, font): fontDatabase = QtGui.QFontDatabase() currentSize = self.sizeCombo.currentText() self.sizeCombo.blockSignals(True) self.sizeCombo.clear() if fontDatabase.isSmoothlyScalable(font.family(), fontDatabase.styleString(font)): for size in QtGui.QFontDatabase.standardSizes(): self.sizeCombo.addItem(str(size)) self.sizeCombo.setEditable(True) else: for size in fontDatabase.smoothSizes(font.family(), fontDatabase.styleString(font)): self.sizeCombo.addItem(str(size)) self.sizeCombo.setEditable(False) self.sizeCombo.blockSignals(False) sizeIndex = self.sizeCombo.findText(currentSize) if sizeIndex == -1: self.sizeCombo.setCurrentIndex(max(0, self.sizeCombo.count() / 3)) else: self.sizeCombo.setCurrentIndex(sizeIndex) def insertCharacter(self, character): self.lineEdit.insert(character) def updateClipboard(self): self.clipboard.setText(self.lineEdit.text(), QtGui.QClipboard.Clipboard) self.clipboard.setText(self.lineEdit.text(), QtGui.QClipboard.Selection) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/digitalclock.py0000755000076500000240000000544312536324427022254 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class DigitalClock(QtGui.QLCDNumber): def __init__(self, parent=None): super(DigitalClock, self).__init__(parent) self.setSegmentStyle(QtGui.QLCDNumber.Filled) timer = QtCore.QTimer(self) timer.timeout.connect(self.showTime) timer.start(1000) self.showTime() self.setWindowTitle("Digital Clock") self.resize(150, 60) def showTime(self): time = QtCore.QTime.currentTime() text = time.toString('hh:mm') if (time.second() % 2) == 0: text = text[:2] + ' ' + text[3:] self.display(text) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) clock = DigitalClock() clock.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/groupbox.py0000755000076500000240000001333612536324427021470 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class Window(QtGui.QWidget): def __init__(self, parent=None): super(Window, self).__init__(parent) grid = QtGui.QGridLayout() grid.addWidget(self.createFirstExclusiveGroup(), 0, 0) grid.addWidget(self.createSecondExclusiveGroup(), 1, 0) grid.addWidget(self.createNonExclusiveGroup(), 0, 1) grid.addWidget(self.createPushButtonGroup(), 1, 1) self.setLayout(grid) self.setWindowTitle("Group Box") self.resize(480, 320) def createFirstExclusiveGroup(self): groupBox = QtGui.QGroupBox("Exclusive Radio Buttons") radio1 = QtGui.QRadioButton("&Radio button 1") radio2 = QtGui.QRadioButton("R&adio button 2") radio3 = QtGui.QRadioButton("Ra&dio button 3") radio1.setChecked(True) vbox = QtGui.QVBoxLayout() vbox.addWidget(radio1) vbox.addWidget(radio2) vbox.addWidget(radio3) vbox.addStretch(1) groupBox.setLayout(vbox) return groupBox def createSecondExclusiveGroup(self): groupBox = QtGui.QGroupBox("E&xclusive Radio Buttons") groupBox.setCheckable(True) groupBox.setChecked(False) radio1 = QtGui.QRadioButton("Rad&io button 1") radio2 = QtGui.QRadioButton("Radi&o button 2") radio3 = QtGui.QRadioButton("Radio &button 3") radio1.setChecked(True) checkBox = QtGui.QCheckBox("Ind&ependent checkbox") checkBox.setChecked(True) vbox = QtGui.QVBoxLayout() vbox.addWidget(radio1) vbox.addWidget(radio2) vbox.addWidget(radio3) vbox.addWidget(checkBox) vbox.addStretch(1) groupBox.setLayout(vbox) return groupBox def createNonExclusiveGroup(self): groupBox = QtGui.QGroupBox("Non-Exclusive Checkboxes") groupBox.setFlat(True) checkBox1 = QtGui.QCheckBox("&Checkbox 1") checkBox2 = QtGui.QCheckBox("C&heckbox 2") checkBox2.setChecked(True) tristateBox = QtGui.QCheckBox("Tri-&state button") tristateBox.setTristate(True) tristateBox.setCheckState(QtCore.Qt.PartiallyChecked) vbox = QtGui.QVBoxLayout() vbox.addWidget(checkBox1) vbox.addWidget(checkBox2) vbox.addWidget(tristateBox) vbox.addStretch(1) groupBox.setLayout(vbox) return groupBox def createPushButtonGroup(self): groupBox = QtGui.QGroupBox("&Push Buttons") groupBox.setCheckable(True) groupBox.setChecked(True) pushButton = QtGui.QPushButton("&Normal Button") toggleButton = QtGui.QPushButton("&Toggle Button") toggleButton.setCheckable(True) toggleButton.setChecked(True) flatButton = QtGui.QPushButton("&Flat Button") flatButton.setFlat(True) popupButton = QtGui.QPushButton("Pop&up Button") menu = QtGui.QMenu(self) menu.addAction("&First Item") menu.addAction("&Second Item") menu.addAction("&Third Item") menu.addAction("F&ourth Item") popupButton.setMenu(menu) newAction = menu.addAction("Submenu") subMenu = QtGui.QMenu("Popup Submenu", self) subMenu.addAction("Item 1") subMenu.addAction("Item 2") subMenu.addAction("Item 3") newAction.setMenu(subMenu) vbox = QtGui.QVBoxLayout() vbox.addWidget(pushButton) vbox.addWidget(toggleButton) vbox.addWidget(flatButton) vbox.addWidget(popupButton) vbox.addStretch(1) groupBox.setLayout(vbox) return groupBox if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) clock = Window() clock.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/icons/0000755000076500000240000000000012536324427020353 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/widgets/icons/icons.py0000755000076500000240000004262612536324427022055 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class IconSizeSpinBox(QtGui.QSpinBox): @staticmethod def valueFromText(text): regExp = QtCore.QRegExp("(\\d+)(\\s*[xx]\\s*\\d+)?") if regExp.exactMatch(text): return int(regExp.cap(1)) else: return 0 @staticmethod def textFromValue(value): return "%d x %d" % (value, value) class ImageDelegate(QtGui.QItemDelegate): def createEditor(self, parent, option, index): comboBox = QtGui.QComboBox(parent) if index.column() == 1: comboBox.addItem("Normal") comboBox.addItem("Active") comboBox.addItem("Disabled") comboBox.addItem("Selected") elif index.column() == 2: comboBox.addItem("Off") comboBox.addItem("On") comboBox.activated.connect(self.emitCommitData) return comboBox def setEditorData(self, editor, index): comboBox = editor if not comboBox: return pos = comboBox.findText(index.model().data(index), QtCore.Qt.MatchExactly) comboBox.setCurrentIndex(pos) def setModelData(self, editor, model, index): comboBox = editor if not comboBox: return model.setData(index, comboBox.currentText()) def emitCommitData(self): self.commitData.emit(self.sender()) class IconPreviewArea(QtGui.QWidget): def __init__(self, parent=None): super(IconPreviewArea, self).__init__(parent) mainLayout = QtGui.QGridLayout() self.setLayout(mainLayout) self.icon = QtGui.QIcon() self.size = QtCore.QSize() self.stateLabels = [] self.modeLabels = [] self.pixmapLabels = [] self.stateLabels.append(self.createHeaderLabel("Off")) self.stateLabels.append(self.createHeaderLabel("On")) self.modeLabels.append(self.createHeaderLabel("Normal")) self.modeLabels.append(self.createHeaderLabel("Active")) self.modeLabels.append(self.createHeaderLabel("Disabled")) self.modeLabels.append(self.createHeaderLabel("Selected")) for j, label in enumerate(self.stateLabels): mainLayout.addWidget(label, j + 1, 0) for i, label in enumerate(self.modeLabels): mainLayout.addWidget(label, 0, i + 1) self.pixmapLabels.append([]) for j in range(len(self.stateLabels)): self.pixmapLabels[i].append(self.createPixmapLabel()) mainLayout.addWidget(self.pixmapLabels[i][j], j + 1, i + 1) def setIcon(self, icon): self.icon = icon self.updatePixmapLabels() def setSize(self, size): if size != self.size: self.size = size self.updatePixmapLabels() def createHeaderLabel(self, text): label = QtGui.QLabel("%s" % text) label.setAlignment(QtCore.Qt.AlignCenter) return label def createPixmapLabel(self): label = QtGui.QLabel() label.setEnabled(False) label.setAlignment(QtCore.Qt.AlignCenter) label.setFrameShape(QtGui.QFrame.Box) label.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) label.setBackgroundRole(QtGui.QPalette.Base) label.setAutoFillBackground(True) label.setMinimumSize(132, 132) return label def updatePixmapLabels(self): for i in range(len(self.modeLabels)): if i == 0: mode = QtGui.QIcon.Normal elif i == 1: mode = QtGui.QIcon.Active elif i == 2: mode = QtGui.QIcon.Disabled else: mode = QtGui.QIcon.Selected for j in range(len(self.stateLabels)): state = {True: QtGui.QIcon.Off, False: QtGui.QIcon.On}[j == 0] pixmap = self.icon.pixmap(self.size, mode, state) self.pixmapLabels[i][j].setPixmap(pixmap) self.pixmapLabels[i][j].setEnabled(not pixmap.isNull()) class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.centralWidget = QtGui.QWidget() self.setCentralWidget(self.centralWidget) self.createPreviewGroupBox() self.createImagesGroupBox() self.createIconSizeGroupBox() self.createActions() self.createMenus() self.createContextMenu() mainLayout = QtGui.QGridLayout() mainLayout.addWidget(self.previewGroupBox, 0, 0, 1, 2) mainLayout.addWidget(self.imagesGroupBox, 1, 0) mainLayout.addWidget(self.iconSizeGroupBox, 1, 1) self.centralWidget.setLayout(mainLayout) self.setWindowTitle("Icons") self.checkCurrentStyle() self.otherRadioButton.click() self.resize(self.minimumSizeHint()) def about(self): QtGui.QMessageBox.about(self, "About Icons", "The Icons example illustrates how Qt renders an icon " "in different modes (active, normal, disabled and selected) " "and states (on and off) based on a set of images.") def changeStyle(self, checked): if not checked: return action = self.sender() style = QtGui.QStyleFactory.create(action.data()) if not style: return QtGui.QApplication.setStyle(style) self.setButtonText(self.smallRadioButton, "Small (%d x %d)", style, QtGui.QStyle.PM_SmallIconSize) self.setButtonText(self.largeRadioButton, "Large (%d x %d)", style, QtGui.QStyle.PM_LargeIconSize) self.setButtonText(self.toolBarRadioButton, "Toolbars (%d x %d)", style, QtGui.QStyle.PM_ToolBarIconSize) self.setButtonText(self.listViewRadioButton, "List views (%d x %d)", style, QtGui.QStyle.PM_ListViewIconSize) self.setButtonText(self.iconViewRadioButton, "Icon views (%d x %d)", style, QtGui.QStyle.PM_IconViewIconSize) self.setButtonText(self.tabBarRadioButton, "Tab bars (%d x %d)", style, QtGui.QStyle.PM_TabBarIconSize) self.changeSize() @staticmethod def setButtonText(button, label, style, metric): metric_value = style.pixelMetric(metric) button.setText(label % (metric_value, metric_value)) def changeSize(self, checked=True): if not checked: return if self.otherRadioButton.isChecked(): extent = self.otherSpinBox.value() else: if self.smallRadioButton.isChecked(): metric = QtGui.QStyle.PM_SmallIconSize elif self.largeRadioButton.isChecked(): metric = QtGui.QStyle.PM_LargeIconSize elif self.toolBarRadioButton.isChecked(): metric = QtGui.QStyle.PM_ToolBarIconSize elif self.listViewRadioButton.isChecked(): metric = QtGui.QStyle.PM_ListViewIconSize elif self.iconViewRadioButton.isChecked(): metric = QtGui.QStyle.PM_IconViewIconSize else: metric = QtGui.QStyle.PM_TabBarIconSize extent = QtGui.QApplication.style().pixelMetric(metric) self.previewArea.setSize(QtCore.QSize(extent, extent)) self.otherSpinBox.setEnabled(self.otherRadioButton.isChecked()) def changeIcon(self): icon = QtGui.QIcon() for row in range(self.imagesTable.rowCount()): item0 = self.imagesTable.item(row, 0) item1 = self.imagesTable.item(row, 1) item2 = self.imagesTable.item(row, 2) if item0.checkState() == QtCore.Qt.Checked: if item1.text() == "Normal": mode = QtGui.QIcon.Normal elif item1.text() == "Active": mode = QtGui.QIcon.Active elif item1.text() == "Disabled": mode = QtGui.QIcon.Disabled else: mode = QtGui.QIcon.Selected if item2.text() == "On": state = QtGui.QIcon.On else: state = QtGui.QIcon.Off fileName = item0.data(QtCore.Qt.UserRole) image = QtGui.QImage(fileName) if not image.isNull(): icon.addPixmap(QtGui.QPixmap.fromImage(image), mode, state) self.previewArea.setIcon(icon) def addImage(self): fileNames = QtGui.QFileDialog.getOpenFileNames(self, "Open Images", '', "Images (*.png *.xpm *.jpg);;All Files (*)") for fileName in fileNames: row = self.imagesTable.rowCount() self.imagesTable.setRowCount(row + 1) imageName = QtCore.QFileInfo(fileName).baseName() item0 = QtGui.QTableWidgetItem(imageName) item0.setData(QtCore.Qt.UserRole, fileName) item0.setFlags(item0.flags() & ~QtCore.Qt.ItemIsEditable) item1 = QtGui.QTableWidgetItem("Normal") item2 = QtGui.QTableWidgetItem("Off") if self.guessModeStateAct.isChecked(): if '_act' in fileName: item1.setText("Active") elif '_dis' in fileName: item1.setText("Disabled") elif '_sel' in fileName: item1.setText("Selected") if '_on' in fileName: item2.setText("On") self.imagesTable.setItem(row, 0, item0) self.imagesTable.setItem(row, 1, item1) self.imagesTable.setItem(row, 2, item2) self.imagesTable.openPersistentEditor(item1) self.imagesTable.openPersistentEditor(item2) item0.setCheckState(QtCore.Qt.Checked) def removeAllImages(self): self.imagesTable.setRowCount(0) self.changeIcon() def createPreviewGroupBox(self): self.previewGroupBox = QtGui.QGroupBox("Preview") self.previewArea = IconPreviewArea() layout = QtGui.QVBoxLayout() layout.addWidget(self.previewArea) self.previewGroupBox.setLayout(layout) def createImagesGroupBox(self): self.imagesGroupBox = QtGui.QGroupBox("Images") self.imagesTable = QtGui.QTableWidget() self.imagesTable.setSelectionMode(QtGui.QAbstractItemView.NoSelection) self.imagesTable.setItemDelegate(ImageDelegate(self)) self.imagesTable.horizontalHeader().setDefaultSectionSize(90) self.imagesTable.setColumnCount(3) self.imagesTable.setHorizontalHeaderLabels(("Image", "Mode", "State")) self.imagesTable.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch) self.imagesTable.horizontalHeader().setResizeMode(1, QtGui.QHeaderView.Fixed) self.imagesTable.horizontalHeader().setResizeMode(2, QtGui.QHeaderView.Fixed) self.imagesTable.verticalHeader().hide() self.imagesTable.itemChanged.connect(self.changeIcon) layout = QtGui.QVBoxLayout() layout.addWidget(self.imagesTable) self.imagesGroupBox.setLayout(layout) def createIconSizeGroupBox(self): self.iconSizeGroupBox = QtGui.QGroupBox("Icon Size") self.smallRadioButton = QtGui.QRadioButton() self.largeRadioButton = QtGui.QRadioButton() self.toolBarRadioButton = QtGui.QRadioButton() self.listViewRadioButton = QtGui.QRadioButton() self.iconViewRadioButton = QtGui.QRadioButton() self.tabBarRadioButton = QtGui.QRadioButton() self.otherRadioButton = QtGui.QRadioButton("Other:") self.otherSpinBox = IconSizeSpinBox() self.otherSpinBox.setRange(8, 128) self.otherSpinBox.setValue(64) self.smallRadioButton.toggled.connect(self.changeSize) self.largeRadioButton.toggled.connect(self.changeSize) self.toolBarRadioButton.toggled.connect(self.changeSize) self.listViewRadioButton.toggled.connect(self.changeSize) self.iconViewRadioButton.toggled.connect(self.changeSize) self.tabBarRadioButton.toggled.connect(self.changeSize) self.otherRadioButton.toggled.connect(self.changeSize) self.otherSpinBox.valueChanged.connect(self.changeSize) otherSizeLayout = QtGui.QHBoxLayout() otherSizeLayout.addWidget(self.otherRadioButton) otherSizeLayout.addWidget(self.otherSpinBox) otherSizeLayout.addStretch() layout = QtGui.QGridLayout() layout.addWidget(self.smallRadioButton, 0, 0) layout.addWidget(self.largeRadioButton, 1, 0) layout.addWidget(self.toolBarRadioButton, 2, 0) layout.addWidget(self.listViewRadioButton, 0, 1) layout.addWidget(self.iconViewRadioButton, 1, 1) layout.addWidget(self.tabBarRadioButton, 2, 1) layout.addLayout(otherSizeLayout, 3, 0, 1, 2) layout.setRowStretch(4, 1) self.iconSizeGroupBox.setLayout(layout) def createActions(self): self.addImagesAct = QtGui.QAction("&Add Images...", self, shortcut="Ctrl+A", triggered=self.addImage) self.removeAllImagesAct = QtGui.QAction("&Remove All Images", self, shortcut="Ctrl+R", triggered=self.removeAllImages) self.exitAct = QtGui.QAction("&Quit", self, shortcut="Ctrl+Q", triggered=self.close) self.styleActionGroup = QtGui.QActionGroup(self) for styleName in QtGui.QStyleFactory.keys(): action = QtGui.QAction(self.styleActionGroup, text="%s Style" % styleName, checkable=True, triggered=self.changeStyle) action.setData(styleName) self.guessModeStateAct = QtGui.QAction("&Guess Image Mode/State", self, checkable=True, checked=True) self.aboutAct = QtGui.QAction("&About", self, triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.addImagesAct) self.fileMenu.addAction(self.removeAllImagesAct) self.fileMenu.addSeparator() self.fileMenu.addAction(self.exitAct) self.viewMenu = self.menuBar().addMenu("&View") for action in self.styleActionGroup.actions(): self.viewMenu.addAction(action) self.viewMenu.addSeparator() self.viewMenu.addAction(self.guessModeStateAct) self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) def createContextMenu(self): self.imagesTable.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.imagesTable.addAction(self.addImagesAct) self.imagesTable.addAction(self.removeAllImagesAct) def checkCurrentStyle(self): for action in self.styleActionGroup.actions(): styleName = action.data() candidate = QtGui.QStyleFactory.create(styleName) if candidate is None: return if candidate.metaObject().className() == QtGui.QApplication.style().metaObject().className(): action.trigger() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/0000755000076500000240000000000012536324427021620 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/designer.png0000644000076500000240000001015512536324427024130 0ustar philstaff00000000000000‰PNG  IHDR€€Ã>aËgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<ÿIDATxÚì]mpõöî ¹¼˜‹Æ@IÐ5mÚi¢#©ƒÉt´¶3"ÅqÚ‚èøÁVAÚñS…Ê82SÑ`Ç*R§ˆ˜iŠ$T u*G@à"”„ËË%—{Ûî³w»Ù»Û»ûïæör{ûÿÍ,¹Ëm’ã~¿çõÿư, Æ…‰~T†…ôÆÌÆ’Z¿ÙTË0L™ßçËc¦¿_oEwd•d–gÊý¨ÖnfÌà;>ßÙÜÕA?úÔ+`ZÊó-~ÿFŽðµÀ/}-'Ç K–äÀí·g©ýÛT©,KÓüfŽ 6îa~øk••YPW— ™™šD^ Ýà7õ˜€év«»­ù„ƒÒ•$˜.ÙÎYüF¹@ò—.ÍŸ‰÷êà„ÑM…¡±8òÛ8ò[SŒ|E†;¥W¡,kæ·rÏÛän´Ù2 ¥åf]ýç8a`NyF—gtPaÄ—ð•™¼Þr1ÑØXQ²|Ý CF±\qñ,N6#||ø01¦“~¿¿“Ñ?7ÙöÀr³þÑnZµª,˜mdO™¶Âà`^³`#°þíÑnZ¿~. –q„¡×^/SSé> Ùàî?á½ =4¹ ©ôF´ä¯º:êêò(¥ ÆÎ5][Rá ­¼¨Å½FÝ>£¢Œ¦ÁÏú7§Ê¢ìTTTTTTFƒ%UÞHo¯Ün? zÄïÕTÜùÙ¹PvK ”•ÂÀøUï/ àüùq°Û]ÐÓã _»òQh¨®ãǸgÎ ‡îkp²÷ÿœB'@†ÑQÿü‘ºÕ°íÉ-¼¥“"+#j‹—ñ×xõ(|vñ8taB* ]|g§C´xtïooÜÆ `:@1<\µVTü >9»‹EŠ Éooc<ºø¿ÿv—"«'ÂcÕÏ@¥m ¼sâ÷н¾?ŠVÜSÞ11÷˜ðŒÁåásT‰ ÿ³Wöò@ `X°eö/~C,|o½½“âóÊÂ%°rá£÷aÞñ꿦e  ÛÈGÒÛ6¼ªùJó*aÓ}oð^CCžçË~POû‰ÀéÓN1æ#0Ù‹—á'RHËP|Ù™ÀÐdX ë?~|4Ī0¶ªò"_wñ×É‹gý\ýüF>$ÄÀ¤á¬_óàØ±^0ãW L¾^?²öì„sçÆE }ú‘õ°aͯˆ~ÇÚÅ/ò±;Z>06æKR!G1 4óø¡ „ YµR·Š÷:~ W'Oò+’–- L\²÷_MonuÚD\¬\øxÌP lDQLRò¤Ö*­uç—χX-®DD€xçÐßàµß"ú}Ø#ˆ–JÝ?&§Ô$Øæ•ºT¥*vöäúý(œ©,`ë{ÛÀá!ò˜ÄKÿ5ºTiLUšø¡ÕÇêæá¾ü„^`eÅ㲉ª4ÔÈú5€ÔúJ[½ñwp".VCÁ¿öý^lå›*x‹.˜]ðºÌ@ñ_³*`º5õÙÁ¯âÞƒKÕËŤËC’03—}þØþù”·ÚÓ ­‹Ï‡€9V¾K˜.mᄠܥªè¹2|>î=<`ÊKtœ>F$€ð “>%q›KÏÞ·S¶b9tqt}ßnì µ~µ55‰e…/U'm “L Fa–þÖP&\á5umù '_nT%Ã)j –èéÊ`l%…Õ:Á°MLŠƒ•zI€´õ«¦¦Vâl6u)̃ ôÌxPkq)®’æeTÚTR량¦ IGPðLØLÂñ sS)/ˆE¥°}ýæ¸!ërÿÿàòõÐ|#—zuÙTƒƒÞiÿ%! ¼Tæ+8f $^$š0õÁ;ß= ÃC>ðxB·ØËÊ6A–Õd\DdÛ +Ätfõ’z¡lëí=­úoå˜i/h=í+'/}C|/vô(,€ð…« *€©z›Ë¬µ„Ú>¢ªðnʾÖкަXÑ@A@A@‘šPÒ˜¡˜6¸«6¥ t…*àϸÕïaîÂó.)‚®C@øÜ%H“$Z¹k„nõ[CmÒ §², &t"ùüñ>þ‘Qp<ÎÃGùÇAA‰ ¡ŒI§jS$‡|GøèÑÿ‚grËòñf™>E|þ5–…kÙ³`tvF¤ÕgX ²éA˜c»‰/и«ECdN+ Ô/{ž3 ¦ÀóôD¾^¦çb’?8tƒÏnä[alŠÀÇ_`1â¦Õe+È_sµ@øIãû}ª¸Œµ»'&Òígq’dõHó“D’`˜û\úÞƒyÞßÅ$_ÀðM¹àœ3‹·ü»š‚ìÂHò5ö¤"Àýü”†úÒÆ¨¯áþÃRîAˆÛ·H{jKVÜt–âûøàƒ>صë*|øþd÷?¤ùæ^70nlL;”1[c’/Àuk!Tÿ´‰#ß&K>_FjåÓ*+³B¬½€’íâРµ…[,Z¿TXþ‘–€G/óuÒÁ+Ü€úÛ¯ª*VWòá=<µÿš‘/VZL`¢‹þ£’Ÿ‘‘÷ß[9y¹QÉ×Tè°ö Ä •îˆtøžÿxî€Pÿ 'ŽfÿrîËV¡¢èVгxéçϨþl‚Vª"_|ßl;Œõ¹á<•ü¼8äkH7tD÷Š¡@i9ˆ{þcs]î¾}×E²pÑ :AºødïéíqÖN¯ò[¿Ó!_óõš`ÞägðCïÕäk.ÜÖUÚ"ÝÖ5\Ïßû˜u})TϽ‡OøÐê¿Úñ)qæÏŸ.ÖÛÅSÍã{Sš°Îù¬›áŸÎóM‰@)ù†å’sS)ËŠ¥–¬h±h¹Ò„ H0|àŽã±š?V„¡eÕñ×þ©úï=µÿÇI#_ŠþÙ«!oéûŠÈ×Ü1V* ÜÝ[K+“sýñ:¸¹0Љ+ÒmèIKL­Ég2ò¡ôþW“Ÿ^«ø'cÍ–}$;wbûº±Ñ&v01WYñÂcDï‘ß!ôÂxá`³ìaRÉ ?³á0ù5ŠÉOJˆæj1ƒÇ$N«M‘”h‰_¼…å+~usd`’YSq'?Ö°¬ºž'w2;;ð¿¥m¬¹©N~Ò€8rÄ!&"À|@í9BÑb>?Ó{öêüßpá, ’êy5GÇFsùξ9ã£}z!Æ íèáÙB³=V JÃBª¯7ògTáq÷̧êаûÄ֔ئ]oä'­ )ñT0µ ™*ÛÝ”|= @€t"‰’¶,ÎHÖ‚’t"?âH{Âññ”| |"‰’Á#£oZôdR=ÞÉO™$P œ`!TX^xKù߬ <¡ÕQïé@~ÊyAppY͸Ž âd ¦o¥ù)) Òåe/¿¿=¥Þ_:‘Ÿ’@òëë§&xb"Hz>0%? €À‰$ÒÑCœH2Ó;Ž¥#ù)+D]]®ØÀ’tx–’Ÿ&ÀP€cô˜âcÁ’ ?­\NÌ (Ó™ü”,å ,ÁÕ@89ÇpÇèñXšÀ˜}`I˜•sn0ðõÀ·oRòõ.êö (ùT3l…|„…RЦª'ù¯^W/øÆÓ›|êd¬_hÙ/Âpÿ/Òš|ê°²âqþëä踸 °D=÷æ7Ò’|# ÀÁÛÍ0 ~S ˜îu?Úê¨-^†ûíÃHßEñF×hP¶7ÒŽ|# ‚h¸ºÛšOÈö༓ã0q#tr)ŠÀäôA>»#­ÈO'(!Z8!OÞ€á«geo÷¯ÜÈìHòE0 ó˲m :6"·~ŸœßG½i8°A¤ù¢¼¿;£©Ôî<~dÆÀÝ¡ÑѰÿ•Äþx"Èé}]÷䇄ÏË™%Ë}&æp2E€Ds_ìfÆÜÃYÿxgs—=‰ŸA«`ý£×.ýŠÀŸË@îÀëº&?"p·_éÖJ)@t4lÆ0ñCÂe]¨‚"Ð#ù²I (†  S–FDË¡§lEMþHD7ü®.Éç…‹£²/´”ç3^ïá»—äÔÊêŒèh@O×€‰ß४~ÁìœB(()‹u®îÈY²û.98,ϰ0mÙ-‡Ú €žï¾«YÙg·¼¹U`™%N]Óù1=€€eoë©S_ÖÍ/Á³ëš ôV[Ì0™3 çÖ…m+•ØÍ]/Cpf=Á¨ƒAeÁì>úh?Œ»ÜðêÛàòµAy7É‘m+_ skVI­-þOÜUÎ]Oè‘|#{\l°±¯¯Ö¶®¿™5;3Ä`|Ï)ª€97…bD¿´z‡Þ?#z€|Áúßýë{¡õ}И¬EP´è>¸…»$äw-½b´Êæ¸Ëœà æ°ˆiêäù€1ÍN.¡ÀˆL²m~¸ÙëW 8±“ ¼™aþvxÃØÄWrü lä<û¡bÔ!Ìócºåu–Sµ‘ïÙ8b8d7–°‡žÅ¸²o'w£Ë?¨*ªÒÛ£*Öµoñ¿uLQÎIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/find_normal.png0000644000076500000240000000150612536324427024620 0ustar philstaff00000000000000‰PNG  IHDRójœ ÎPLTEÿÿÿÜÜÜÄÄÄfÌÿÑÑÑÈÈÈÔÔÔ%%%ÏÏÏ’’’Z³à=z™úúúMMMcccèè袢¢>?@ÌÌÌ‘‘‘ÕÕÕáááäääÐÐÐ÷÷÷rrrÆÆÆ´´´ËËËÍÍÍxxx3@R£ÌøøøÛÛÛØØØ!!!§§§¦¦¦ÅÊÌææænnnttt¨¨¨¹¹¹hhh­­­õüÿôûÿ’—™___···>>>+++LLLóûÿïúÿÕÜàôôôòòòëëëžžžWWWvvv•˜™íùÿ•••ZZZßßßîîîÝÝÝœœœìùÿ¼ÆÌ¬¬¬ÇÇÇNNN¥¥¥Œ•™:>?666G6 QQQõõõ××תªªVVV\\\J8¬0‚T ñúÿÎÎÎÓÓÓŸŸŸ¸¸¸£££zO[vJ oooŽ•™÷üÿ iC~Pb> ©©©;>@bbbššškkk V7F,eeeÁÁÁÉÉÉ———òûÿÀÀÀiii  BBB«««½½½”””ÂÂÂÒÜàààà KKK€€€‡‡‡ƒƒƒîùÿüüü…ÔǽtRNS@™àcñI× IDATx^ÑSwA€Ñ,’îÏÚvhÛ¶mÛ¶müÛÌfÏNŸ$oùïCU×éˆÿÂýâO!•.#î§•PtRk{ v‰T4iv{¿uP “ÃéW*Õ†ÚÒ2K¼ÚfK¹Ä b%ÑànhL(@í|»TIefeç”ÃÔJ½P_ÐeŠ —8u07/ŸeÙBÌÅNëçž­ é* ù¨Y®³ÔC3Éq\W6·lkÚ „1B@|`gWwO¯ˆÒñœ¡á‘ѱqÇäÃ0Óâ¥À<ó<7¿°¸äáH’ÆL«kë›[”Ñ»‹ÙK¡½ýƒÃ£ãêô ³Ç…..¯®onïëóÏ›´¾—×7­‰ÇŒûûGry”<_mÀ8³›ŠIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/monkey_off_128x128.png0000644000076500000240000001560512536324427025506 0ustar philstaff00000000000000‰PNG  IHDR€€Ã>aËLIDATxÚí]xמոQB„ ‚ (JCq Z´¸;Á‹»{p/¥EÚB½}-T€Ê£î}µWãU“óî¹;w3;Ù™Ygí~ßÿñ‘ݹsÏ™{ŽóÿðQƒ Ÿ`0Á$‚"‚­ëæŒ#@Љ Ñ¿\ž=´ýÖ„Ëœ‡› Ñg\g[¹ü ˜ ©àwÙçîfÚuº¥h„ë3Ú̺tá žÏO9ƒëù[‚ož#˜v¯ ‚Ù¿p–‡Y¡ð³Œ?÷éß:$j|ŽøˆcDÐM 7Ê¿¤‹Là?Z¸¦7 š»šø­…!45Ô¯“êÕ ˜4õ壑äP»ŸdÄúæz¡<ðŠ9¯§¸È_>Fü%¼¹V«É#»ÃµÓ«áï/.AéWWŒøùÎ9xdîp 2™0q,k¬óYâ3 ©©®Ëw&/“Z ¹Í²`ý¢ÑpéèrxüÐR8µ{>Œ*ì•£#¥ŽÚÞ.Ñ×)Õ*Ø#>½~Ø„èæðíí“Ó0Ãø[<}øÌy„ꯘ˜Y™ipû™]²kz™0EFõªâß–òtr¸`¹Mx£ð°`:%Â3àΕ™JàÛ[¿¹ u™÷úäÂߟ_²h]ÿùâ2¬ ;,îÂ"F8îH&˜$¼xjÕ8EîcçªIÆß?\[ë'¼í T©TpýÒ«ÖñêÅÍSQÌ+A|ÔãKØE«ÄW¢Û¹5“ûùΣFŸF$ß“~‚—ÁXDQÛõ¬fÃ1{ 2k$‹™à!{ˆÇ«(ôbÑQápçÅ}VOlÅœáÆ a0¥Ÿàæ1°z™@øÜÙµ61ÁWoƒ¤ÄÊBÀ—·…­ p™](0@ÏŸ[gõ„~ÿäqˆã·& —òZ˜´Áû º´oj n^Ý a!B&@CR¨µÄ/n%ëˆ*bËdv­.;û4ô¿ýJÀp2& ܺ¶Ëf&xêÄJaXbƒ5į(´D5ήYN¿·TB­‘VÅxöÛïRÕÊ&zWG ã ¦eé`N},n¬s™\9EtT“©¥É(‹ÉÿO¶wœÛ8PcX÷A½ÚÛ̈òÅVØ&–2ÀjöCN o>½Ã¦ œÙ»Ð8)Y:›]¨}É[!Šª)oT« )T -ãÔ0 ]KcòvÚ™7°0æ>˜¢Ì(5j¥ç Ó¨ £æ!j(ƒØãÖîRÕ h5øòc63Àïk7-Q +íûSG÷´yùyMè5*ª¬~CÆ’7 “3™×,",Æ ì[ ƒç-€g‹çÃÅ]3áÄú °væ@Ü­5ÔÏHHFs3fͨ§ƒâ¶ò÷¶¾BxŒì“/-‚Òw¼§Œ’wŽÀ;¯†ckÇÜQ„)’g![j‘·´'yKWås0îN­ã5PFôZ©ñðP϶ptÍ8øäê&‹îxïâضpôê”Cï‹÷DFXc#`d ’!G¨= €hÖ(CÈÏ)¹v¿a_YØÅæ›®]8ʘ‹oIî†áV[)¾Å3G<wß<`ñÂËáÛ—vÀáÕàn­ ¾rãbD”ÕÀ{¶mš ëfÂWÖ;ä¾È …­ÈVn &&°¶Ð:±®Î8Ï—/l´‹Îí+ïÍ%ôêÝyi¿Í7Í®]^ÏEKˆß$ưHͲ«ÃÍó+B)¼qnÌó !xmèI¶uÜ-~}}ŸÓî÷ås[a@׆Զ`55ý*ª„„Q˜ahÌà®v1À?_^†ZéIB8+ÅçØ— :6³ù†o?»Ûx3””•ˆŸÃ<9ãIø{s[¦@Xp &-б&= #BáOŸ°‹ ö¬"d€¿835 °Ú…±´Jñæ™6߬hj¡1}ûH;yOX‹XñÇöï@Îù#^͈·/¬‚jI1ô™1¡TŽP›`ô¸rl…] p÷ÃÇ 8(PÈÄ ð€Q¥Ñjá‡wÏØ.tðnß,Ë.~¯° ¥OŸe›&YÕ¨€8_&µ’¯Fêa·0ˆ»º€NŠ`/û°]Ël›o‚Œƒú+5dÔÐÊ:?BõjÈLK€¿nòâ3|ýÂ6ˆ­AQµ¬½‚µk&ÛÍûÖO2À¯¼Ðo·Ø‡k‹FÙ|“;ço²^&Ò·-¾];8Ïcˆv–œáuj$A½šUáÎ¥uf¿SJ°aö ª>þrC^°ÄgǨ”¥’aFgjÚÔç7ŽØÅè-ÔhLìmñ5œ ÿÉØ|“aý:<‡*Ù| ¾ùÍ<†øÝ*† @½qñ’â*–Óðkß¼Žñ;–<ßÒ‰½éw‡ÕÔJ…ØõvAÎÞ] NÍ!Œe *Ô?³ƒÓ’«œ¼é/ŒFgÇÏnqqpáÑB¸h|Oøï«»Æ•¢ÂMô鉃:™|¾xB/“ÏC‚e›Þ9 ) • .DMÏ|sëÅJÐôíÖÆnèžßR8ÇŒ:±?bðf ÑmÝb”¢~ð!#ȹײaM‡¿Eƒ²ècd¬+{f;…¦íR.úµSKégWÌo¯Ð½Cc‹®‹¦lüþ ‰*g,Z¨zj¢Ý 0{|_á/3ÈþhécÙuÖHœÿ(õâç›ævQ¶,jZ”0š¿y§Ãà·7öC2y[…÷ËÎH¦;Yl%Ó(]Ü->·p‡ûéúj@߇¹5™¡5áþtçœ] °Ã4á<ßg Ðý1=%Áæ‹/Ÿ=Œ^cÝ¥„š<ÂÍø _=¿Í!D‰!’´ÈïM±tRo§ìOìœQî^L¯FK_Ú=Óªë¢ »¹Eù]àìÚÏœYcß1W8×ôdL©kóÅ{ÞßÊÀDÒúl°rê¥;„èô1çšEÔ©^Åi²@Ÿüf²®é¹£»Y}ÍgΗ´œ¢kY£²_CCÞ2K8×;ÂÀOúGôÛzñ´äxz t¿šM‡"‚Æá=Û:„[EÛ¿Ž2Åøæ…íP!"Äì=Û4É€Þ>lõ5¾¾—_%Ö [ãõ1Ã8°aºp¾ï0h,kä² €2‚£‰aûtãQgø†¬ÙríÕÓûÓkl4óÍkPæü÷ ûl">æpŠæn$ÚHø Öäý!Md0$é8I K½âw~ë Cˆ±cÑpY8¼êa‡ÿÓ«› bd¨É=0Â(½j¬Éßj¥%À7‹­g€$€ÉOôˆ>n›©3¸óü‘¯Ëh2^a_ÀÜ~kváý >”V]ÅWÌ•e uñÿ¼U M³ÒM®^Ïç/ Á¡â]¡h\‡2†’±kïYg½Oà—÷…°P“ý"sAýMÎÐyY|ƒnš+Æ8š((y›ë÷ #oáA‡1À‘ÕãÊÝcÅ”¾’òÆ~zm³U÷XÃ3€Ti\–/` ]$rPà7ÇXÌéšÐÖýâùõÝà¾Ü†Æ"®b)APútË,§ ~ù¹Ù&Žžþµ *WŒ0ùÎÞe#­º25“·0Ï,mláÔB«ˆ¡x‰x¶ËE'üľŒaDO^ªx“–M nPLÌp%|øäú¶«[0nÇ/-r( Q)œßBQüŸ™ˆåãë&æÀÁó‡Zu¡Ýsi‚‹TR –Ò£N£±½-&þÕS«È¼ƒ…Äÿ L)7 »°â.(†$ý)˜Ø «º!šHÆ Œ¸ð;ŽvÙbT/šÙ|çŒêæõ¯„¼ñJƥ맗AA^#†níõ1L,!TúJäÝÂã†XDüÇ.½N+NkjizÖšùS¸u bÿ†é4çO|³ŒêIƦR0ØÁv!~¹±ÖÎ7Î,óÈ1€ÑžÀÆä’Í-äå€b²ýÕã«b'ÆDÑD_`€ŸÞÑÂèÎ×=U#+0cs ˜ê €íOK”J¡b™öøPµ±¢†¯‹üþ•]Сy]úüX_JÄq5OXxV2ÆhUÃÔÔÙ‚ |5ÕR DaUÕä•·˜F”lô$XÊìÇÌlo™äa1ÙÄY< èÁõj/ЧdQÔ<ò=‰Œ%g&ŠÂœÇógÚ”¡]üÄžêœSΑÖ)I#l/ÄyØx'Ÿ-í?X§‚ÔÄJp÷ý~ k¾¶Bƒ ¤YàLxÙö¿—óÀ1›ãûôìâcÝX‰4»ú‰n¦â / »›\ ¶ÿ\Od€$¦  çÏܨ†äøh—\z0<ŒãÃÃX ‚OÜ%ê×–ñ4>öücA –í'¶L€hZ}Qíä—p<ŒF!ÖøÀYŽãÜ'ÜúÑù“ìÉ  cA"¡Dø‹©î'²R)š5&¥hNq^0&p|ý^´|ù‰,—Ž-2@co`Œ`ý‘…YÝë.yç0ܹ¼Ž¶Å6nXµôôÆIprÃD8»y Ü8½ ¾yqû=›öä‰ÿ1çEƒf a$Ž+;†"a'îLSÃ*W ·8&5éɱ´28ö6¸qf¹ÓcY¾¬ËÓÞÄ9ªfÙ,3}xWJ<ÎΜ1‚ƒhÌ æÚRÜRðím/z`IRÚeÛY}ø<Ü]1èÓ‘ÀŠaxOgD2¥V©Œö“«ÞÄ GÀ‡ûÕîê]Før‘ÄZ í€Q>Žz®Zi ¨þ½àM @ëï\äûñ | ¥lÑfWã±<¬#2‰êÕªŠ×|Í› ..†_Ûë?Çc£i¬%V=Åž~ ¾`lwؽdõI\Ø1žé¨`¡Ç53P¡;~‰DY<¿­íd®^ aî›ÞÄX™’Z¹lö–]ßcÒN‘àj5tn]–OîCU;[ýXƒV&ɇ ½…„Š>«¹j¢–‹R“kÜö&àA¾±5ßÓ»,}ë»äfSuS©m«mÝCÁéM“È=ê›-P-–‘ÿð)ë…Ä´¤Ÿá¼l¸¨ƒ›{ø[çWJZõPÐó”Ô@p—âdª™ó%üçÅí˜3ˆVÀbÎK‡^­V× 3¥´\gî×÷“·#^’ø®p$9¶¹äaÈkVG’ °Eœø7ëf²ÏÛs^<0Æ ßaZ}kÿòÑ.íÿçª"™ÕÍ>S#rL˜0ÌíC’X¹”0ûWÞºý³Iò‡š©ñ%Ø‚•-@aA+³ 5ˆüÝ“#|>¸²¢D½z‰urÛÂaì³Qœ ,gç6.ÚçÅ‹”AÞžß¼ û ¢³HølóÆ”õLÀöv±Ñ%äÅø€sB}wDPÝ ЕÜ~l]„ßß:€~pãUOŽ£o·Äú¡ŠˆÖÊ´¤G€>¢†Å¢87.묑A˜ài %wy§ zû°ë&–úH謑ŒøË9Ãðá»¶màÔ+wÆ+bì!Ñû/¡¿Œóѱ™kæ–¾ë;)cè  ç¾ ?Uà|x`ë™ýÈ=îkbS×mOËGŠ ¦bª|w9Cǟȇ êÖH*}ÿò:¯%þv¢î‰}~rü¤7#ÉyøgXHPÉéM“½ŠðXkD¯v̲ù&ù·ªŸÜæGr.~‚7Xß׊G}ôÔFTkY¿ElÂì'³ü@¡è¼Á{O1»³P X{ãô:m)‘ö1ÊgªŸ´Ö±äHø…w£–Z匀åo–NìÍ Kx7ö%oõï»b`q¤‰äXø3%±rɉõÝÒP„QÀVNdºÝ«Uªœ›W÷ö4F˜@Þ&l†ŒÑ5¥ýïoNc˜Yõ^}GÈ•ß:û ”ÞxÚØ±7¯Ýø‡ƒZÌF\& ýgÈÊ)E{úö¢áð¾ üŸ]ÛL»}axžïüÛŽ:=rt"ÐúÉäšÁ¢ŒŽ’ág®,q³[ÂbÎÞºYáòžYð¹ ¥i°ñ$¶ÃÌ!ì&Ú¥M}ÌO0vO'÷ü›ü{ /禼|mgÀfÖóÎ’7ò}NÔêwЍˆÐ’¤¸Š%ÕK1 C·h×úæ7ƒûZÔ…µS¡j|tIh°A€ãLûþJþ½Â*¡Dû—ݽúÖ³ø7t or>Ãñ%‚›µúc‚ïÔjÕoäß/ÈßÞ xŠà8gˆÍ_@Ð Ý¿œþá•ãÿZãÆþ†Wq¢Ë 5&¬šd¥Då}\-æ›(6vZ°}GÖŒŒ3´X®ëª+xºÚMjƒ»ˆ· 5è¿g»þgXKÿÀ¥äŠÕ®ìÿSÝõ¾ü}ºó|˜Û ^V_W‹E?nû¿c~ÍÿyŽÿçgØþ?² üÿ¾)Ùÿ7TûÿßÓŸú×´üÿGç—ýŸ®ñ¿ÁQüÿ‡›þ¿»±îŸ½¥^CQzÈ.í³ËÿOÐþÿïúòÿÿo,ÿ¿mV9˜á‰Õñÿ»J£ÿ¿>>óÿ7±ÿÛç×þéÉJðÛÀêkwÄ™”bÿ]…XÃó#3þ»ÛèÁ ¨Jø_”è f/L6ý¿¨%l@ˆÝnyq¹Ø— ¥Nr¿×–{Á5]ÚÔ g¿øpßd0{~¬Þÿú›‰îWä¤Åäá1§Æ²gaŠ\Ó›³ÿÛ›iþÏq‡‹}¿¸èÿTw‘ÿÖ̳ZQ¢2D‰yæ,7Áÿ/M+…Èï{€ 3`ÏÔÜÿËœÙÿë 3%a¤+ ¦’É¡ÿ¿œ›×€Žß±ÙCî+7 ƒ ¶ôľ¶+õ+²sç·güß:³ ú³à†L+ ½3¯êÍ~øëÊ’ÿažÿÝmõÿ¯ìÏû?¥6ñB =8þ\]úiwö6œL©KìÈ‹õ@I0¼fRáÿ–‚°ÿ­…áå¸3’ž2Pólþ*ÐK[eD9eH “ó7M/]¾snåáý‹jÏm˜Z¼ØÖD#(Ç„®wsÂg·ªã´IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/monkey_off_32x32.png0000644000076500000240000000311112536324427025317 0ustar philstaff00000000000000‰PNG  IHDR szzôIDATXõW PSWÍOÈ"a @Â’D ¨²%„M@YŠV ²X)RAÐRDD­E(¢‚ZD­Zµ"jÖ±uŠ V…QQÇ­­´Õ±â†äöýI‰ …Dý37óóÞ÷œwß݉¤ûCaâm™ØF¾vÂÎûÚ”†e£q'Ò{~èì« ä›Kܨ½Õ2ì¡Ã®`:¬ð ÂG#)#BçÌéØäwŽlFÇüF›b]¤4:˜àd¦ÛSº­™X=ZF{'à,:áË£ÏBm¬8%š‘cF¹Ù¨hkÙ(4÷‘Øæ&Ÿ—,™£Š€¤/Àc?[ÂÑ0wSe`ófLÒ?\³„\eg-uyªñÊŒ("§»ráéƒ*(êzPôÍ'2Ÿ9ËøÚÞºÂå“\“åKÌà÷SÕj OÎog¸°¿TƒÀ©Äݳ’ £/JèKsàöÙø‰Ýe}8æÀTMGÙj'Ê‚=⑽ø‚>Lèü®B«©u‘¢x)A Æ‘¡X4?ú…½€×mÅfA˜L­éÕùsø‚äÖgjUªè@g›9¦øº@l˜7òüµƒÈ u L²¥t“1lÁUÕü] ¯ J‚L«Òºây@&“ ‡ÄÅW,ÒúÝ­ãU°LbJèò´$ß$ÏPª`åÞýÍFV ú´$š¿6€•CW«f8>k߯ð«u&Ò6PÑ_gj!:Ô0vF† ðuÁ|y0$M“AT;P(db.EÇý¿T#è5vµÎfMóÛ©TÐZ¿è4*\ºHN„á›;Å{†Æ²O€eÂs–\EiY™¾½]ëLÀ}œ}Z÷O5Šv”÷q`´ è¹°eÈ3ÿóçpòˆ²}çäp¬~és¾5{¬>í¹Az|h{é¢8ÂÜ=ç· Ûñðã ö'P“23RrRïKÉxG;÷¢Œ˜N}¼oÕ2“Â.ðylÁ[ÝŒDöÖãrçFu Öj¼K ¹Èe›Ú½“ëò62iÙÂYámÈ'ž|ù`yoNrdê ñeïåŠ,´á$È&:­™ìU›ØŒÌ|xf¤t«Ì]´v´€ƒ—t]ôý ýýïËö«‡cIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/monkey_off_64x64.png0000644000076500000240000000671512536324427025346 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞ ”IDATxÚÝ[ XS×ΞBØd ²¯TdAªm« àBQ‹E[­VT7T (* Z­¢(ŠZ[—V­íkíb­[´ÏåÙÖå¹´µÕ*‹$Ó9×’@B¢I¤½ß7_¶{î™™33ç?3íÙ\,¤¤HHLÚ¿ü’0è´õ<&í[6ƒö~B–,Z½ò=~ÿ—I;‰ïK‘ìÿ Bs‘Ò8LÚq|•Kmõ£|YÛ Ë£9°# »¹PÏ…â˜Ñ• #}XàiE¯£ãýíŽKú§ZG‹A»ÉgÑ»3å«{q(aõ%¢ S†JhD˸¬p“ÄÅFS_Š${Áƒ)ÛÏ5HpMÚÒ— }]˜ðyÐ*¦âóéYx\õ ÖzýüpöS ®IÓÑ=,Кðù$Ft꣩ÞéfÇoíÇ5ªðJz'ŽÞ"z#*á"Îgב„wDá‰p`4îL0ðJÚ†Êõ106œÅy…Axkþ¼TÌhxZ×—*1.Hôzœ÷3ÅNcžUF Cêªò™øÚÊÞ`*³×FoÇrÀÞ‚NbÂ>S M"nÒn:Þ¤,H¼,@šŒÀ¦‘ø¦9…WRYo0é4Â׋ ~Ç"f0èá{b!èÓàË…&˜L†|ÄÐ~P^8V.š¾ž9õ=nu“ƒYÏDx%¥û°äh…·‘Ÿ]„'›©/Ä!śŤøD9âkŠA~Í Ó¿!ƒgæ¤Â½‹ïüÆáfztíCps¶ƒ@1ã™ Oˆ Ig>½ q¤ î¯ìoæóÁå}P¶$Ü$ät\,”çe}„£ùœB­Áê‚5Á•´gÃ<ಙ`(º3D°(à䡲6ù½õ} ù»ËJÈlO5Dø5K'·ù0BR ${1;„ðJê+aÁ€ØîZy¾ýC „xÈ1,Q+~'‡–±é´>èØÞ`3TÖÅP Ò¦8.¬Á@Eà¬Áû=n©pŽŠlŽÓï쀖 —WêPÂ.XZÈð¾Ú6X¸òÇx<ŽìÚéíZ’:8z»´-üFdxt\møâa½‚:àþîç îöèíe ©þ|Êdk4Á¤lä'?G+ˆ”@\Wx.ÜâC=ÁßÉ Ò¤(ŒÒ®x©=fd§håPIþ«ÊlŒ¦üƒÉ³¦¤i|ó»Àa1a¡Î'«=!„.¶xkú¨û®àÇí­èÊÑ•°gÕT=0D|• #ÐÂÜDÐÍ«äO‚÷×N‡¦sU­Æ6ÕVQcûGúAwµâš ˜Ì‘%Ô]9 U†ºŸ ˆVÀ¸ŽòZ¨*à¨Hh)»é}­ƒçf‚‡¸µ©ôâÃÈ‘Ððý–6×FŸn™ •…ÙðàìfƒÆÝ»<Ä0¥+O’WóÙP¹j†N+¨*ËUZÁD•#,½.9)FçÀnî᫾ïÀÄÔ~ ` ªû¶#ý!+H}A¹1aHb”N9¯~–|Ùö(I4Rº0[ë ‚Á2,Á¬NT +ÈÏo3º€Ÿl΃kŸ–©}W»ÿ-µÏÄâ"ü%PÙÂÉ*٢Ȯҩ„ø˜P šŒ;ÊüÂ4¢€“‡Öhp¸z)ð9Ìæ4¡h7!œAslO˜Û_VÀ…CË R€H\~ü „ú<3ke¶UE“ÔîûéãUàí P Ä(œûlƒNä¿1Zé¾DU!åMˆð´ ˜;u$tslžlq¡ÞŽz ßÉVb+Kصòu½0fh,Å`lD ¼»z*³”Öî/juï¨0/¬%0wÆ8µ®èu 8²c™RDåd‚úŸjÐîÕâÿ9!XòZr»‚Ì8”Z2™Ÿ§³Þ øíëõà`kEã[p©×â™#Û¼÷›]‹!ÁGÔÌ[‚+ FáÙE—žQ(€‚ÇyäÕ[´°à²Õ´<,@G6ÎjWçc»)'+ƒvŠÍK&4ÓUk¬y„[d€s‹&±ÀËÕA§ªËg+Ÿ@S€ÔÊò6oþýÇ=ÔÍ«T°?5ÄÿÚÂ×Ý©Y{T€>1CI“F$6Mî©ó^âŽÛ ™|\(K ŽNçW>[JàO>ŒNNhóæ _n¢nV…¤]\E¸ojWˆ˜ð€f!H,øù“Õz ¿cÅPoy ÉûCoçjŸ'Ä”y ’ÈýôhS@LT0‰+$¯ÁWn…Û ÈOYÛêæ¯ö¯&âì•ý6ÚÃþÿùÚv)x=•Âè”  Oë³eþz|}³Ð«ò2aÙéÔ{WG[¨×‚2ûtiQÀº>  ÒغX¹(…jY]ÔHC€Og¸zj›Ú€}• )„¥ 8â}ĸE·+Lí"°µPF†xëµú2“•Ïx1Fáã[!Ø×•z†6· óu¢¦Ês¹÷ìGå­„ÿãÂ^ðñt‘#¸KŽþšçá$õ…QW¶£b‚‰Çƒ6•N7uØ™ä/‚ã;ê%Ж‰Ð3Ôþ÷Q©ÞþÿP?úa+|U½@ëýþÎÖjüñ9,8ZS¨&üÁª°[HŽÅéÚŽÄ¡¨„KDƒ6b¡<#%Æáñ8ÀA])B8´!×ì¸-ºþÙèá¡®!vcâæÒW›¡0RXÝñÊÖ§½¤ˆi9 )²(à`AW› Cʇ¨:‚v#ÀJ °TãˤƒÔÏM™!“$i‘æ P¯ä(R –±›T'ÈbÃÊÙOÌ41éO*ó bþ8øîý§:OŒ TŽèÕŠ€«M*HËz 1žªÒKŠª»9½Ô'Ø`f 4ŽÀ`ÈBXKà1ŸÇk!w¤êICŸ)ílK ­äm½b@r1V}À‡Â}Õó~.Ö3äãJù¢J¡™xˆ6—NK3èy¿ ®ˆÒð²8ŠgòŒ¥²]´Ê÷öÁùƒÅ1,ÂÕnKx…ŸR‡ Cž·qqdJ-ÔøšHkuF­¡ 4䇱5JÖ˜:2Á †«Kr¦r)“W^hÉŸ <6'÷íEé±< `«Í5ãöº0i_§y«gƒª17àÙÉÊàTØå#+ <, é~N3ò9ÜQ^ƒ»'Þ6,b¼ðÂùk4rƒ¤³k†Û]'\Œ=>š‰ÈQ|(ÕrL55}¼y$ùYµJŽ:ò©RØxc+ ?ZA«ú?Nb¾Á‰McPjB(äug·j¢ ?FzRc+À ,{KÅßHn¿ŸR±"sÞüðŸÊ9 ±±¤:Δ<ÍÄ44ÿ{&é%B 8Ÿé×½0'+院ÀKOHXóX I˜ÆjñAS5 ÌsÐ먂d$Vqzv(|¢f„¹ ©„­MñǘªaÂÏMDø(7+ª@Ñ@(Zê ãYÄüï«&9LÐHÛÛÝžÑ4 Ê¿ÃO¨,/$VÒO¸ÜÔ½BqlC¶fîËJ¤hB’® ØnÒ‹n/Þ?V•ÿDŒÞ?ý|ºu.¬™7²†÷ƒ4<e§'ÂÌWÃâ׆ÃúEY­’!úÐckÁÉÞúžYÚÅœÄ'O¿»DoæÂ+ÉþXÐvÐ<ã‚ÉÉpî@‘^s\¡£õU³( ³“Ý»§v´ËÔÅÃËaZæó¤YI/ÁÛ"’P%–B %í͇pÕ\P¡+F’+fÆb §•@$7øJJ_ü=>zg6µÂ_lŸbÊ{{qL3¨MK± aÃâñ:'.ln˜E¸*©ù9ÃjËÏõ õScž‰ŸûÞ2½ÝæÏ“©t8É«>+¡g0•%Ö¼¿dhWÌÕ5ê…EË[šLÜú¢$Ž6*¾LƒWSã©À÷¤ÑýgLƒ¿®¦„äþQ­ºHHо³“íÇfkv°Ý‘©0ñ×™MÐ]êÑ̤£½5¨xÓhÛÜþŠj±dì°85w؃d,½›S+Ð'Éä²sÛà¹^!ÍÌaŒ \ÁØ{ýÞ²iÀRQ¼IC[*Cw4ú˜M~ÙyHìo+ø~_¡ZfçŒ !2é)b(rŠ8?õÝ?,AÿŸ1ÿŸì¬+VÎ~¹‰ý¤íðƼ|°©ézå²ìs.CKËÍrßÖZHþ@%ê(ÿb8˜žp—l‰¦ž´ÎEvñ¾‹àjùÓ–»Lran?û®OHKøóæçåFœô `éìwì2©UÔú:ôÅÀÚ_š‡Äát×÷Û%3G5^>Rj°Ð¤hºznfc¯ëmV§L‘ê6ÇeƒàeþÃäºÈ©·äÖˆ¤ž¿æe¿ôW鬌¦¯Rýƒäë‚õëÝÝÿ6i<@l{瓌4í_t±­¹/(zô&¡b‘W¤4¤X$ws2ô7©™›•£Êç§IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/monkey_on_128x128.png0000644000076500000240000001537512536324427025354 0ustar philstaff00000000000000‰PNG  IHDR€€Ã>aËÄIDATxÚí]t×ÞÝì&DHpˆHBÁ%¸4¸;E‹»Üݽ‡-´HÚBíQ£T}uãU¨òÚB“ûþovîf²ìÌÚì²vÏù‡ÍîÜ™ûsåW&ÐÍZB{ ÂDBa+aaa,¡¡-!.0\ÞÝô„>„5„+„? ÌNüJ8'¥ AVÏna„n„ã„»JÂ%I²Â!ZV¶ –Å„iYd°VøÌ !þ+ÎM AáöœV’°–ð»¹Ð¢H°µŠëX$=›YÝÀ¶5f‡3BØÉV–‘Ý"„mjÌ&V5°NeƒXå":ª·H†o“EÒÚCj‰„„¿¤Â)ªe™ Ale½`YAÛƒc-CØÜšÖ"6ˆE´æDø‘0—P8 ÷µpÂnÂ}.VÚÆ±ô–«!t9œ L¢Ù¡ Í ö ØDêâqmëDø’¼A§a­K±­‚]*xKXV× ,/f{‡× i1©ßJNJߺÆÑAlW÷ ÞkÒƒYéˆ|KÃ?„éÙ@½V[úÖcÇšü°Ÿoi }°Jz–Ãx•Ÿsm°ô ß.>ˆÍñ(áK±¿Y«VTg~ZHˆÑþ¥Ë|>8ŠM«fðXÁ›o{•Ó3­ÖDlV{DjŸï0~l¸–mhì—bV  Ï[rEõs YiQ“' \UšNd„xð¥KB©°|ÄiË·`Â)>X8by³ð9vÒI%&< fDmyÍ’R:ÞìÙ Wãò“`\@äùÛ>8Õ‹éõ«¯_ºÄ摺‚¶±[/q“Ä*òi_ÛÉU(X+U§ú»ðkñs~ Rðìiì³ÂçXJ*ä`i)øœPÌ—Z€Ð—0’0šð¡³ŒZ4ŠkøpÎ_[ß÷…Ï1¡ŠAjC¸¨ñrg}&á:ŸÊ-à„lB=Éïð¿{šj×èL&kÉøŒ²0®!„£åó Ñôü=á6á%ÂÔ‡½„„f~ÓØîf…ÍÏRqÝ>käwÂŽÒF71Ò´øƒl¦¿cã˜Þ 4p·ð›H 4RéX*ɬvµ dnZ°åCIr°Eˆ_XONÉ~à5KVO;p^ct|uyN¸'í\¯b“Fte—ŸXÍî}å~{É„_oa+æ cá¡ùnNKëüVøƒ+ê¥ãòC¾—I§cMë§±õ G± G–±§.a'wÏc#t`%Š’[j{ºå¼.Q§eý»e°/®Ê'tKøþæ –^+Åô[¬þ.|n<Âñ×\˜i©Iìæ•]Šcz‘H‘R¾ŒùosE9©¾±Ü&í(²`˜pÖÏ™!-5Qøm‘ÿžú-9•èò¬‡¬WfSvÿ« 6ë?__dËi†Å,lF„cj’`¢ôâ‰e¢­²Ó;WM4ýþ±Êú€àÍÐ2Î(@­VË®_ØbרoœßÌbJ5'Ár5„s|¿hé˜âÂtnÏÍýzëIV¤PAá÷I´ó=ø€Œ{5oXÍn—Ù“,µBYs<êŒð£Å#Šp±bE"Ù­kû쾱峇™nΔ[Fÿòy—N¯uˆß¾s”ÅÇ•/oCG p‘_¨@H0{ùÌ:»oèÏÏŸfÑâÔw©€ å •(ÑVСe=‡Üxa'‹*.%Iö €t*YGGGnf×ê¼µ~­ÀÛo p'ã{÷.ïr˜Ï_)uK6Ø#ü¢RMTê8ßÛºC­TÚ´ö;oR fËë³±UôlajšÍ&׫E¤Op×¾1Yµ ÂFvtª^FYDÿ?ÑR=³q ã¸ìÑÒaÃûµ7×ÂÖµ•«ù ={çùÝÀ©½ L709Íà° µ7½f^5j I'¡c¢u¬_²^ðÉÛédÜÀ>"b »Î"•¢ èåïÁ¤e)…‡$ijv‡2Æ>(ˆ}óöQ‡ pç£Óæ'ƒ¶ KõûSFuwøÚgÔ®Q¼€Öî7d ½aÎäV³(Ò;Œí߆m?”½tp>{1{;¿k;¾~<[;£?Ô¹ «‘’À fça¨›=4¼Š³›+÷yœîq1Í&ˆ-Œ/˜_9ʺµ©Ë–MêŲWŽaW/`WèžÚ6•íY2‚õíØ€Ž 3}?„‘^RǶ8µÒóç^<}°S³4‡fdí`³L¿Áì»w9Ô1~Ç•X×l}xDçV}ë G†³½2ص#Y,÷Ã#Œ}d9f<½š];ŽÍ™I¤(kZ ¡l©DoiwzKW¥s€HÙ© ÅF†ä ½Rb {´{svdÍXöù ›lêøèü¶mÁPÖ£mºÐ/úV§ÛGxF N2´„:C ~í)^¶fڽͿ<‚tÎŽvºvÁHS,¾-±{pÃT©oñŒá°»ïÇwW·±RE£h#ªSÔWðå±rŲN`ßú)Rü.núMí=þǵY#îäøÎ9¦NÖ+xú6×·Ëæúð9ðìðúÁFY.fTªÞtšúêÍÃNÖ  |úf\øAIþ³ÇW8ÜÉÐ>m–ÃZEpœ4û£‹f¿½©®#é®M…¹ ¤ÒŒFczÚ,üN®¢˜†0éýB(h-6 «4ã.I+8&ÖL+oô&R0£¾£¶É^½ÒÚì‘U7wk]7ÎmŸ¦zp‹âD³ðØ!™6 ÿìE,Ø 7«gkxrÍü-e>”ûI•ˆ˜?óÎRÊÇ›Š:È=À •õRüöæ^¶vföæ©¥.sÞxýøb¶aö@v÷íýª_KMÁð¬^Iy$‰Yņöi£(øO^;`îÿÇ…ßÕ‘Lž¤+IÓß4š†¤¹¸#ˆRîŸ)iƳì3;§û½'9¾¸¼I›î‰òã×1%ǗϬeº·BùÍdö§èôëP‹Õ 8XL™I»ÿ,Òð¬UJ@r|ç÷€Ðó/ÆE+­ Wf¾zë0[Cúý$JÛ#s\ýΞi_©5³}æ*½Û+,H›.dÕ% tÃ–Ü (e\jTMŽÝqÑŬÕ>ždIÙãlK ,Ö "=Ðq†BæO9ô´B$o@èù‰â¡Êqfåéä𞘣¹;Š< ºd“¨A̵v Ž2äÒ‚bòBÏï €Òæ±Ê¹ù1Pæmß%šõZò Õ-¡³ö Ÿ½œ‡ ôÓë»Ø¢ñ=„(#½2«ÍÒ)µGÛzB4òÞ¥#Ê}=¹Õ°1¾Šr¼ ¤ÖÀ'¢2g¡ŠÆCŠTžAS&@ßdãQðÆS+ܺÁÂkKÎÝrÎÌÛ]È3à®ûƒ_ÔÙ»­d4‘T2Ÿê‰iã÷I$­äZRÇxØ@­à YN›ºN VÆ_þµÇ¥÷SsÅBÖÓèôL2àGO­Êu£¬¤…AfX½⊻ôØ KQC¶btŸ–.þ¿i´¦ÿ7§w=¶}nÍ"È1@LŒ|iï,—ò³týÂQáv ÊBä®+ïmË·¶[Ž:ʼnÈZ™\˜2è<[ÀÛaí$ßµã6d­O ¢!éRÜ1à°¹?·o6ÛµèQ6oLW6¸KSáM_?k ñÓ]ç~®þ…³’dY'$™”µ…' ¿Ñ ¬çÂ[Y/Ø”!ÌßôÿÈ@ŠgŸdCº¸Ñ©zi= "žL€RœÖôÚ5©L<²t·ϟÐ¥Ud[í$Œš‡s{rÌÄrQ®óÑN½w‡ú~åýëŸ-Ó?·<á ÈæYºmMŒÌ>:¿Ö/°eÞ`«iô8v7 –ÚFyLÁ%›*ï²iú«&fÅŽ+YDÕäKž Ä+\P˜ùº’@iÌ⒠`¢7åOs¬¥BEšö˜£ðáåoÉ"SتAUáù‘_î(ólÞÐx€Õ*ny{œÊ¢”!ó'Œ-(øà¯ž@8–Â…gU?œñ Æ4*Ï d£7` ×µ0½¥ÒÃ"ØD>‘,r¢1/@K3JîE-¢½7À”rf‚™›ó8qM›L ˜€ðóЋ²ƒ˜ÒÚÆIˡj¼¬}ˆ›¯.qÃÔfвD2¹"ºÆ›«cD¨±4wœ‰Ì›þ÷j¼°ÍÒˆuzv‰¾n´Ào €ƒ¢ð?ÓøP¢†à‰#÷à°4©çÇß±Y a0|E°H);¼g VBÔõç»–«¢ÂIVLëò¼/  „ŠàK{Ò²×®’äBÔ É÷lÈ&÷}±¼íy_"R’ U¶å¤,9jŽÐÆë§ti½bBNB ª¡?yÁ—PǸ —¨´<Èyë"|Ú…txuª–³øLU+ÄËþ®RR,ŽW}‰Bâ å÷?“.N!– >ƒ§7Oö:SoWòû“#5*œÉ&¨®Tßù—/ *î×Jƒöê±EÌ?¯] èsoÉ.†s][ˇ¥¡B:¾£”/Ìå7|‰ÈL)h¹¬æËÑO>pƒf”Xódá#~ËúUdŸ¡ttQvûªr‘‰ziÉ ÀM_"€†@nÛo©³ÿ##xzцñ4'ØS­’|‰™°!6%²LŠ/‰MàµËÆϱe s(&o€Ð Q>ž"|è8^Fî~uv»mf𨈰_QKÛ: „­ÊföéÐÀj'2 ³1;³e²KÜ̱?€d6"ã–Îêý”¢ô¹öV]9µÿ}U¶g##BsÙÀ}G¬Ôä8»²{ $2 /ñ—Näù¹ODBýA”y/Z(Âæþ±Q½ã@ZüvMªƒÈx³Rë…ÁÙ½x¸C¸GvèÐÍõê¶ Œ~uó´aÙ&2Æ@»ø*™^‘þ‹Ùõ'– 5ˆ¬Í–NêÅFÒô[„RÁ(K@ ›ƒ«ú/Œ(fZÀl¶`š:¨™šë”eÎÑíéMÑ8™JM`ù™0°SR” ¯×Rãà >nìéÎgßzëÔ2¡Ú&j=<ÁkØ#-j±NVÇR“W"—fœo}uúç­=äOcrÎF qvcú¶Nî·‘•/Íë-¢gX@ÌÊ ›¢§0`bءչ{›ðá˜Æè›?ŸÐ‡Î@óÉöD®2H'#IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/monkey_on_16x16.png0000644000076500000240000000125112536324427025170 0ustar philstaff00000000000000‰PNG  IHDRóÿapIDAT8Ëc`ÀÔø™´Ýd™ÛR5YvE«²¬0cjá`` ˜‰17˜°>ZãÆþ†Wq¢Ë 5&¬šd¥Då}\-æ›(6vZ°}GÖŒŒ3´X®ëª+xºÚMjƒ»ˆ· 5è¿g»þgXKÿÀ¥äŠÕ®ìÿSÝõ¾ü}ºó|˜Û ^V_W‹E?nû¿c~ÍÿyŽÿçgØþ?² üÿ¾)Ùÿ7TûÿßÓŸú×´üÿGç—ýŸ®ñ¿ÁQüÿ‡›þ¿»±îŸ½¥^CQzÈ.í³ËÿOÐþÿïúòÿÿo,ÿ¿mV9˜á]s«Àôëã3ÿOpû¿}~힬¿ ¡¾v‡@œI)öÿ×Uø€>?2ã¿»˜ýëÊ’ÿfz*pÃ&›þ_Ô’6 ÄÇn7ƒ¼Œ¸\lˆË…R'¹ßk˽à /mêÄÊž«÷¿>Ææ_b„û9i1yxLÄ©±ìY˜bWøæÄìÿöfšÿscÜábß/.ú?Õ]俵ól F”¨ Qbž9ËMðÿ‹CSÁŠAa1±:þÿ`à Ø35÷ÿ2göÿzÂLIiÁJ‚©dr¨Æÿ/çæÃ5 ãwÀ@löûÊÍ ƒ-=±¯íJýzdYVÍ ]ÞÜõZYè}œÉxUoöÕýùÿ]MÿFrɇÓsÿ¸˜üß:³üÿÒîìm8 ˜R—ØÒ°cNÅ_G£ÿ!îæÿm5€šMÿßÙ5lXkax9§ÌL@[`6ÿ¾ºÅ óÛ3¶*ʈrÊ, öù›¦—.ß9·òðþEµç6L-^lk¢ ”cBW “ÑÄÄËoIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/monkey_on_32x32.png0000644000076500000240000000305112536324427025164 0ustar philstaff00000000000000‰PNG  IHDR szzôðIDATXõW PSGÎËÁ‹„#@Â)©"((äJwP±•r(WE`d@)9¤ ‚ £Œ©€Z„ZEkÔqœŽ§hE˜*êX±­ÌTÇEòw÷!‘4¡Ô7ó3aßÛïûv÷¿–FSÿap˜´¨éb@‹8g®E|§«Ad¢q[ÚG~HDöÍ|ú ެ¡*‰4KI8âOB3 >›Áø º¢O‹>8³IxÎÔ%úv‹5d˜t<Ãb–[1L9D-š¦ñAȹ$äaÂxØô?Äÿµ"ÖkÃiD>®©p²±ß’;¹Ñ¨C>j[²5‰fuˆ ¾n>G“ýÒÁî“ûèw¥6q³Ñ_}òQ[mÃ|Œ|"ј¯wI`fø7WGëI²U‘3 yܶ’Í ÏÞô·‚ìA$†zÉòY²©’cÃ;7‹Ë:ÛT"ØOoµ€Øá±žN¶»®6'7;5âþÛ£Þ`™ƒ‰àïG›ÈÇþ_æNBaF$Œbýq\mŸ0èty´ðÌÍ ¾¼û£ü£ÒœØæ:°ß‹„d‰ÊRƒ¡./Š“ƒ 0Z b Èu×µbSÈ‹p†¢x_(M] •é!ìeåŽ\D ÐÞÜo•ãßýµŒøz}ˆ›NÓœFfìÚ–24úÛ"GKùгWH`øÆ!€ÞÃJÖsjÈzT¿;Z– [ýž˜àb ÝÇ‹¦, ak |íÉE ŠðÙDÖ¤ÔÛµæ¡Bsñàæ÷‚ÕRð6eô#X“I ˜Æ Ib|æ¼~_rl¿Ÿ.+žf—Ú}Yäbç' ¹rä$…¨EŠw[FtŸ,…—u0¶ Jm)QÒ ÖZ“C…ZNâäDàò÷©' S:ßfL×¹%j @ ‡GA ÒÃ(.ógÂí3ã’÷µW`2@ ꊓåéÛmõzµ8ÙY¥ ü²O6 ~jßzªãb޲_ÞÚÏáèî hØžcA*š,&Œù\h“ÎÔn˜òæN¥=g¦FtŽ]!>Ïê‚Dðs·&"Í„˜Ø×ÍöæÆÃ›îƒïŽÙÊ`Ñù)_Jì­ÍòÓÂzÇÛr\-Ÿ^®×Òc—\˜ð,Þëfdcej—Ò3^_¨Êp—¼BÚeÌÓ5ÿ ×3-M6ÏßÝ~ûº¸Àäك㣰ÊZÜz†<<í£\‘-ÍøÑ’…¶;ùV'„ù4¡m>µ2X|@âd³s¦…q.éêàý ™€õf^qIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/monkey_on_64x64.png0000644000076500000240000000662712536324427025212 0ustar philstaff00000000000000‰PNG  IHDR@@ªiqÞ ^IDATxÚÝ[ \”ÕŸ}``˜6YÙ×ATD6•JŸ © (Š&iBdéÓÜPL%%AQQÈ0DE5[´”¬—¶˜¹e©=—gåò\*KS™9û9Ì Ì0£Ì@}¿ßù Ëwï=çÏ=÷ϹÃ`tÍÃA BŒ€ÂfüÃ)‹ÉØ`Æf|Ëe1~Ç߈‡Ñ@ÿŒÿ•ÏfßKQìþ FóQ2xlÆüTȬY ã|80§/VFòàíD>ìLâÃö>Gð`V.dzsÀÊYÏÄ÷y,F¶Kþ»zG8‡Å¸!à0Sܨеy”±ú $QÊ–#Mè—”ËäoñpÑÕ—¡È‡»³åÛø®)›ãøçÌ~ˆý=D¯˜Žý3»³ñî8ëçÅ*c¢_»[1åöÚäÍØ™3ILxߘF“ˆ‹²‹Éd6Ó„…—WQ^DbÓDÖ¦)§¥lØLÑ륾“P°XÌûDðgâ!£”¬ÓàÇ&Øl–bìÈx(/š«—䂇TAý·º{qºÄxZÆxsè…·PŸD'—éÃcQb€ËaSz¢ð3Í uÍb2¿!gç¥ÃÝ ï‚âúyxõ#pu²… «K'Bؤ“€ÙŒ<ÒR¢áÁåZô¼é}({-\¥=Lœ,´g‚>ÆKÐ}Ž#j°¶0OÍpZvW.>— †²;cIa(Çö—µ«ïÍïj!ÐÏM®abGÔã×-{±ÝΈȼ¥êÉîÆÓ'åÀà˜~Zu¾õ}-ù»+”1,I+'‡–Ickíèðžà²YTÖ¥P-JU,Öa "tÖàý·ÔJ£"Š›bõ;; çÂ¥#Õ:@Ø –ær|ïL»,œùÃff<ùÕÛ´v’žƒœÛ7~#*<ÞŸ.Ör·ƒ=ah„ô÷u7;Kä)†t?å²µ„‰pˆ©2. õ¯ƒDH!¶;<Õß‚=ÀÏÑ 2d–P®x™få¤iÕHIÁóôNö¬¦ý)äs§ehm|ãôàqذXƒç“ÙždÎ6–ðú̱Pºà‡mmäòÁÕ°{Ít?¤?Ø‹,µ„¬sqA_Ï?%Þ[?šÏnmÓ¶ùÌVªíÓa¾á&¢f\€i½¸`-²€úË{µÚPÿã^Ñ X×Ð^sUŠ„ò{ßÓÚx霉à.iëêC<9$ ¿ÛÜ®áÚä³Í  º(îŸÚdP»S{–‡£¦õ1SÓ…ä$.T¯™¥Ó ¶–Í¡½ WåˬOMŽÒÙ°¯¿dù¨ïû£ý-!7=Þ :Cê¿­†¤0?˜¨>!C]Ù0,)\§MW> ÙvÓ„DJçhmD¸"X®²K0«àŠs5&€ñ¸P?)†µêD²J6¸ ä×öë!!*ƒ&ë6_˜A8¶Ö¶/Ý’Æ"é*„“èŽ)zëË 8¿¥Þ†@mY¨°?~²¼ì-Õ1ZgUê àßãéeàCØŠRÑŒ O[ƒÓ3¡¯C«ñd‹ örÐËø6"XYÀÎÕ/ë@XX Ì i@^ï CZsOŒSo¬xY'uo/§È"”òÓðÓ>­ ¢C`´gëúÏ âÁk/¥v¨Ü‚ܑԌÁ|=œôšQ;k+ê}òùÓ§k:lóÍÎ¥è-jÑ-Ñ…ãðì¢ Âg”Pô8Ÿürùèf­ Ìù\5”Gù ¡nãÜ•ûWL_z °Gƒ:Ú)`Ÿb¡õ¾¹¶çu8ÆCÜ"ýZÈ ä€§‹½N¶—Ï£õJd(I¢²²Ý—ûa7õòîOH ™­Ž”óqsl€ÌhG1c킉Èë™-m²SãôZd9Ö(28Qæ<L¡ÇüÈ/ãSÛ}ùü—UÔ˪”´·‹÷懲êïßb ‰?}ºVçûï¬A­ºM~νˆ r:/AHiKH6¢Â{‘c2Ékè­°‘Wœ¨[ßæå¯>X läÙµ*ûm¤»þÿùú+|9âèÔ°±ê0²ßø¢œz¼/0DZJ_Ò €èÞ­¼ým”~ï–¥4ÀEjY]D¤Ñß»'\9^£ÖàýêÅÃR% ÞøáÃâ;³w؈-©It×ÇzÙvW?+Ó«Mˆ#•0¥Ï¤ý©ËÛÿûù=àíá¬@p‡ý5Ï£Iê ‘—¿]1ÉÄ£FU¥3ÁÕZv&û‰àÈŽÅz)·¹(ûÀÿ>.Õë}lxoØS6Coîàç$VÓOÀãÀÁÚ"5ã÷m-‰a€äXT,ʆÓï=Ñy"{X$¼ªrDß®Œ8Û¤‚´%…õD•^RìTÝÈAhDt/ƒ•%Ô8ƒ!V„ 숅ÜeX0fèŠÔÚ§¬§ e4­Ûå.€âÜYõoŠÄ©ç|Å+èíB­E•C‹˜!Û\6#àþ~F^®±þÉä(û4ë,ÈvÑ& <ÈCçö¤°g»=ã•ëžcP—N†‰2s5½!ÄšE}§Vˆp 4„p5JÖ<˜ž™hÂÛKò¦ò)—W5^haF1À ›‰¤Æõ†é±<< àU›«{×…Íø:ÃK=´s=¬ N…]ª[å“`X|øº;B^æS¸£¼w޾iX Åxá‰ã×jäÉͬnëì:á’^xÇG39.@¥³3»dûûdÓ|Höµj“uP¥°) ÀÓèmêÿ„v:J'6;CÒƒ!¿·Í% æ#¦'ël¬°cùë*ëäöã]Í = +2çLïÿ©žRk êÆ­Ól¼†î×(w‰ÐÎMômIž–0rr—²À‹OHXõ„dÌ cµxŸ±. ,t±dÖSÉ0¬â èTøhíqR [!—:ã?k¬ Nx6h&Ƈ»ZQŠî‘H™ L à÷¿§šä0Â%@Æž~v¬æÁá~ÝÆx"eùY µâ‘û„+}W(–ËaÉ×-˜Ð­8óÁëTÒUIÛú0í$Â{‡·¨)°ð…‘Pñj6U²2¶±ò³5PƒÙbÕ"ìõÃëÁÑN|×$×Åœì%ÇN¼óZËàŸ×´PÚ´Áá 7b©ìc!$Ѓ«~Òo@0lÅWL@OGÛwŽï*lü—#oPÇ[„WžK1ŠñlE‡¶f™õSCèWLåšé0R»§³¿D òFujÑ´ (ªE1æ4w!çÖ×MšŽ>ÐT²ø•Lµ^\¸Œ:¯?©ñ¬‚L’¶|ÉO“_l[¤ÈÐ.›êÖ¨gLhÀÍö”•¬ŸÇ…‚FÁŸ'« 6üÏUØ_ pñî_k8P9·ÝLrOG›OLvAØÞFt[~¶ýôÕ‡fƒ£½D r13e Ô½5OgÚëÁ·›¨k2“GÇS•$Õ>H í`ÕüvÛí^;”ÞŠM ÀªÊ¥Sš´rç›J‘ª5ûƒëžGDÃð„ˆ„`™»Z]P<XuyV¯okÜc6úcë.µ»¥Í h9ýîrÈ›¤3¦+E–×Êûëã¿•àú—œ4ý—lÅ«çMhÖ7Š“Ê螺±ÖÛ‹šÕöŒv°Á„g¢¡k‚w¿¥W¬âwSl ]ñ]3,d~ëRþ¸ôõ$ªñúܯG6<Ö¶¹xZÚ}\Ž»ôÛ"|n"¨©ù?Ö8ö‰Ç½ß™·µÈòZõòœFSN¨öœÉÃîÙˆ…ä T¢îò½!¡­D¸/gLâÇÙóõR.ÇrƒêÊ'-wåÁÜ~*Öõ¯MÍHüãÆçåf8¹f‹¥³ßœQÖúºõÃÂÃQ†»ÔþD·[%³Ç5]ª+5ØhR4Å£)ÐÇå–ƒø¸1Rݦx¬9öTü†ÉQ\"·e^Ò›c“ü‚wþ,›Õ¼±ðyêþ ùĺ`Ãóé ¿â)ï&^Ò¸ÜþÞN]D2ÒŒÐÃQ^Í®¼£÷³„|¢d Ä ¸™R¡¿¯}°Ôc4 ©IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/qt_extended_16x16.png0000644000076500000240000000150212536324427025475 0ustar philstaff00000000000000‰PNG  IHDRóÿagAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<ÔIDATxÚŒR]HQþî̬»;®mº®¶þ•)BeýSVh‰FÒÏK¡`½ØCad†TôóZDEú” ½ôо„%j`VVF¦¦¬­²®µºîÌîÌÎtïjbFÑoÎ9ßsîù¹¹IçvÄŸÎZ!j¡ 6  C€N5 H¯®ë£Ô–êöwêX ÄZ”6r¬Ô‘¤*a„0)ý€N£¬0òF„uE†NÆ9³„j ;jç'à8k*dxÜ@a攬¯‚I0# LhFÇ )´:ôÍ +àèmº` µöO¢tÕMìÈʇ<š€Šœ: ø°I<‰$k $eáäHÙ„äR”3ÍQ!U‚9¸ yë¶ãñ—[¨l< }ʆüäSØ»!' U‰Ì^¼æåóÖj¦Æä -i0˜è¤”bJ <šŸ4¢©³Ã>㪓‘r’sûî–(G`_:e:Œˆ =š®A Ëèéy‡ Å7`³ÛÙñÆYDä|eå¾HT”A€_¢T©Í ª,¦hÈ´5Ú7ÚÛÚqÿY¢ÌÑsà IÓ(Ù³»]4™1êǘ7€ôÅNµØl"ú—À㤼3-„ ˆMþŽëÍqéàU¬-;€–¯õpó¯àõȰ-Ú…åXš•=—`ÈÈ!8ÐŽ9¬dG¼Ÿ¹‡¨xpŽ8;zǺáHˆÃ7¥²,Ájâ' |Ìg¹Þ¸²¥mrq_kæ‹$ËtÈ@µ_P”QÛ©…IfLT|^CчãôÝ׸º}ïýS~\¾v^¯÷7Íx¶ð/aOöÈ¡ÃÕ;ðÒõº n÷è¼Ã±?Øm%23IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/qt_extended_32x32.png0000644000076500000240000000354412536324427025501 0ustar philstaff00000000000000‰PNG  IHDR szzôgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<öIDATxÚ¬W lTUþî{óß)ÓiéRJi),Ýþ¸²k\ùsA$dw×ífÃB²!ŠY•]“5+º$’T²ˆ×(Ý• ‰+‘ʰۥBµ? Å)´Ì”ÎL™yÓ™÷ç¹w^§:––å&'7çÜsßýîù»ç1Ó4ÁVÎzLv°­ë6{Ê+\r2i€Fˆ¨Ã„ÙNs; Ð|‰¨÷¥ '5ܤÁ°¶ìaÄÔ6ý®Õ5y¥@˜Æüà‹ÿ#`ÿ¥ù˽šƒ7à®Ò€×o+ûã¶2Ä šz×I59 ÆØ9âO¨S×ÛdƒaºÜ.IÜÚ0²mRº%™hÝnsÃ)»r܂Ѳ馃»Ø„0ái¢Û¯@"JòƒÅËô’Äàò0ôÐÛ…ÏYŠbï,$RCÅ{¡ZúXÒc6 qmš¡Ž~ =®NÆl¶¬«€¹=&š>ý síë°«áiÔ•W‰µ¾Øy¼ÕöŽ^ø'Š=¥„žáZDCùŒJ„• a“#_Ó'@ú.ÃÝàΓðù©nä_^†÷žzuéÿé a¦w.^ÒˆuÕ[pÍèÇW¸Ò\‹çV¿%sîA$1 Ü1•ñ=²,AÓSøâx /ïØ“‘ïùb;ê-AãÁ~Ë¢¿ ¼d>o a~eE•„r©ß8cçù *¦ßŽ[ªÊ…,0Ô‰£`á.üéõ'F•{걪| vÜÿÁ.(]†µU›¡ë:³6uLX¸ÜswUÿ,£ŒõBK1ÔT΃ÌÂè»2(ä…ú-øýÒ1¯¬TðËçü/}GeNÒúâƒÐ¤=¡A5uó3²èpˆ2pȸœ&¡~ÌœQˆuknÊíë±üÖ¯Q2ÝCg^ÁÙþf¤Œ$l²#;#Ò—dìçÜXDg¨f㘔” ¿¿0#R-sÊÕ Ù@$>$x¿/ÑP±xLðb§q$°ŸÀê” öñ.¼ ¥åÔ. DŽ4¤4à5AbÒw|$Y¥†–u8<œ'¥«n+ ÞiLƒq¾í'ÄÝu.»=’`Ycc£˜Égh>‘Uì^SGƒÈ°Ò™I&3xœîô£@~V5 ßÝÖ‹5s°uûQKhÔ`/vå2ÃÎϯç9·m{ðo¶ì˜ÌsH¾+.ÙmYÆ3|y^Ë5ªx™$+Öz»‚X»öìÞ÷*Žý§ ²=·tUÅÒÛæcEý­«‰m²e+úíhïíÊð~÷ Š~F‘­Cf(Î/r%7€lY€]0DWXÂâU›àtçåLÄÑÕ}uÁà÷c€ûͤά(ÄÇÇNd6LÏ+…ÛåB0ÒE÷¢rv‰w…[„_lÖã”ÔˆÊrÕQQ»²m Ðs+“Ù4íÒØB”Jøáœ` ÒŠÎ —…¬4.–-Ãá÷®à×õ¿q9N^ú€G"F _•¿ªªÃëõÂítЫÉ(uÇ_ã:\w U3à´;P[ïBÃseäÛºol~ž~QðÇ{¡'zåÕ<ûÖßÓ@ fS`ªte„#rŽC\G³)ë1„7°âŽ*ó?ÂÏ>$xsà7+ï MݯãÅæÇàÒüøÅêùøÒ܃?Ø€cAMiÔ3HtÈÄÄuT+Ó¤lQ-ÂpBÂú5Õè/z ¾ß££'~"_ãÉ0¬Çà”òÉ.TÿÈîkŸ¡'Ü.nÅMï²ML\GÍeLîë&’Š„Eµµðúqðýw…|vA5Þ¾¿ ?)Y‰X2BIiå †¥û4º• »<¾éGˆëhêFzå°þžjì>þ<šÛ:„¼ÒOQ^PEmTbÌžTJv=p®;’†ãöÀ<+ ¼¸{£†'>¹w^¹þüiè¶bš³pŒ>·€ OürUP4‘òð°"ïtxçÅÑ9ãªIåØOÒÕOÍç7¤Âél %2;5CÝl—Òé6Ñà:£0ÑJó’qûvÆÓSo—ànõ9Üü Ó:ô"ý „3zôðh«T„zΡª¦†:êÜ…ˆ*×ICnåDÿ&ZÄÝ:àïïin¥Þþüd»nÖP ‡÷ýuRº"Í£—UŠÄW)x¨óªÂwï&:<•ÃÓ·Ó ( <óÌND"Cbæ|.×–3'ø›Ò/clݲyÿWPâJ&²½yQÀb1%Sì<^ÕûöíÔ†›8ÃÔOØáñxFK+uR<§ôŒ„æPtˆª¦š£#úÿÆ™ææÓMÑhtõd”}>_ßs3]à±²iÁdó–ì[%AÑKwbChIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/icons/images/qt_extended_48x48.png0000644000076500000240000000713012536324427025512 0ustar philstaff00000000000000‰PNG  IHDR00Wù‡gAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe< êIDATxÚÄZ tUÕ™þιçu_yܼHHb‚„jQlÕbefÚñÑ:klµ•ÚêL§]Sgj]«ƒ}`Ûe×¢Xkmí¬ÎZÓ®Qq´V¡P(‚‘—@I`†››û>÷œùö¾‡›\Hb€Xlö=gŸ{ÏÿüþïßÅu]ˆC¹©a¹/„+õêk®Xµ“ Ýuä’¸áG'G‹ ·®ò&·+§EÁ™Cq.¹ùox—þáw ³üAWœ«P”¡_þ.äÐô›@9ŸCÚY^ZcâöÏÖÀïW‘Lä¼ÇÉ£‚ã Ž„ ùgʹq¼É±Ï›rtá/th4Ú]Ž‹åà?K¯+G èC|ІëŽëûB±EÞÈ[?¯Û;ü÷˜ðÇAonåh›p8¾‚ŒƒÒjõõ&-?náÇ:j¼qU!lòsŒã0Ç~Ž={½óû‚ á§ˆ*)Óàó)H§ßW‡9æ1oæQ¥;ÜBŠa=Çõê[þƸ­îÙ²à&Åû«\ŒbBã]xǧ9ˆ%cˆ§SòkŠ¢rr`úü°ô <¿@ER£À˜‡@IÓTÑa÷[=h®œ%º³ššaê*Ú£±çÔ´öµÀÒ‚ •“®ƒ©r9†Ï‚OÑ1z'"‰ÇÞo©Ø{¨›× à§_\ƒ{>õ÷nä…X†[g}¯u¾„'w=ˆDv= UU¥—Ú;1£þ2ü&zã'‘Ê&èMíbC®p¨c-¦‚ö®6ü× <÷­gqÏÍÅÂ?6܈•×=“ÈäRÐ =}Iüþ©¸oÞ¯ðkÿ77߃8„;q¨ Žóù<]ûÌaÜù·_Á²…‹‹Ö÷œØŠÏýðNünÓ‹…kµ¡&Üýá•2Åç ­#ŠÒš4ÖVæ ¢,76&RƒQ0hÁÖ£´VŸ…ïÞý¯EkGúö`Õ¶Ï¡M[‹Û¾qþwû†ÂÚ¢Æe˜9i.lu»[:1Ú¬¡LµHç’È:¸®ûþ) b_Äð®7»1köbÔUT­¿ðö“°iÈEW6£b^ xâ{Eë37`çö(®›ù)|þ†[†Œ¢ùQbU@W-ä\{B”1‰Eþe³9t·Çp÷mKÏYï8}~= ®h®Â–ö^ãûƒr½ÞúÞØèCnãóEß[zém¸öÒ[MöâÁ ŸF<¥RÖûã8ÉNÛX4cnÑZ‚ñ=È«ŠFh*+@ò4Žwñ·™MSÑ0©zddãŸ2¤MH.¨#'°Š W-\R3ù,µ3TÀ'øü&³]qpª¿w¨¬–”aÞ LûÒ_]o9¾k6>Œµ-OÁ&R©ªïýQ@„P<™eò£²¤¼h-m§‘_e :…0€†ÐðcjSoÛ†wcѵ¶Øn<{ôaüvÿJòÇ4|ª>ñ9pæ³6ÍëÓ øÏY^„dQ%è(6‚Ká]†oè~ÒH¨†‰¡Uô¶&=‘ÂÔ¾7bõÉ"ФŽãmŽÓcVâ,)6¡^Wö^üéL¦˜vš‘b‹2@ñ  `ËšN${¥tåU_¬FoO¸I AÄ´V8“ã]×/ñûýuV P×óÎ;»ˆ`7©€n0DHà.”·¤íä˜ë{ž>^Ö¸Û?>]Sm“ê§–•–G ËÒÂAòªP€aæ#R0܇‹²H:ÛÛë^ÝøÊoù3·i#3[wrH¥3‚…uG4g£‡ª .-V UømOv Þ»îù$2ÉÁÀñ9®»(L!“ÉÒ›Y&¹ÃÎ0I@ÑgU×- uS¦!ÚÝA‚¨¡qÊ¥·v´Ý4¢G  —ìúßEUùP"ª™G ©ˆ[@‘¸ß(ÆóL.3jïoKãÆåWbßÞ}(©šLK—’ª³#¬«C $‚pY•µU0YWJ+ªX0üBl‡~ö͇°£í0Ê««q¼£ý#* d8Dhaœ$ Îh˜ZX %’;Ž-ãÛÎRú,=*ö@,Í~_YÐ{º¯¬5+ŸX#PX8[‚x¶0 ¨ô?ä²¢b÷’6¢6é¸'`}í$ …’#*£û‚AU¢HKë\3ûªÂZÈ(E@ #šî‘ÂÇ'¹>T•F†¤Î &ù½ ÑM74 FŽ4˜ïà*Ca|͵IHoY¦TìÀþ}T2—SG !ÓòA¯´ðÊžs÷kªCÈæÒÐtݽ º« à މD+b¬ÖBá›s²tŠ#÷ƒü€ÌQÍ…¬í7’ühŽäæÑšM”Ë41½y&/7:OWÌŒà»þtÎÚ¬š¿’”BÓ²ïæ]v%,ÃB˜“[)s€¹âVmÃf9ŽìF*å²Á!œQnŒB‚ŠYV>×úûz¥7ÔÑr “q1› ¤zá÷Û_)Z¿þò;ÐTq9Öoñ)ühŃE믶¿€Hi©ÁÄ-n¼ÿ¾p-¦UÎA€‚¨"Ç!¼`9‚E*Aü–¼£« ±X|täl *°âÑb--„oìi,«ÿ6ýb;®™³¨°¶ùèÓ8Ò»µUÌ ‚×/_|¦ˆ%.¿êFø…¦Eª’O%¸Hl±‡p$´š„Ð a½²¦fì†Fx!•>ù‰&t%vãÎUïƒøk°ê¿%s®µŸ>ˆ_ïþ|aÖ@Ÿ¾å2<µm5~öÒ¯Ñë–DP4C=ñN¶«†¤BHUu½9?D. ÅRIƒyË»…k" ÈDÊÙÔ;¤º®â®»gâwÏ<†èC=xôËßE!¬ˆv0¡7·=ÿ~ëÖ…,›ú³˜TÂ-·ëX×ýlýÃY+L$™;Ýñv|†¬ò)¢‰)­+«¤LjÇq½¤Î3Ub%«²)bßÃÜ1›z™ YWfþçÁºu˜zï4|ãñ‡‹î{ýø:¬Üô²e„-è¢)â“Ê+`ȸ^ÑyMM7EJÄÒ´p–ÖΦÝ|=  „€o ;DyîÃá#GizB—^RÇCÔl2ÓLZÅÜæFLná±çÿ³è–ù“?Ž«›–Ka×-JL×Qh•!¥±•Ôå,7ÛéY…¡£ x×òÔE#÷:s.aŸI.†^ñ(‹ÃÐå&šÀu¼äLÈ•L8˜?{2’=G±é¡ú`²×}øãkñãëÿ(?gsÙ±!‘VÕ©ˆB OP‹±‰fR 1¼¦K% KÆ<­ä#nü ÈXgHÔTY˜²¸ŸýÞ¿ÀΜµ%žŒüûØœ F†iÀGJ!ÂDnY ‚–Š_!yÌÏÎâºÁ‚)¶6¥Å©h„Ï+ç¥@™,»¾ %S[qõCKñìk/ ëÝN6è§±¿ûuØ®ííÊõ;.¢ƒ1¸ªMK‹Ý? /„ŠáC؛ʏnr]Ó!ßñÁ}º*Ãi\{£çò¤¼"7,‚¾h~sø>ýù†i¾òúÎ×¾ô‡ÑÐÐ$|ݺõ’¡îùóNÌšý!ÄIØÚÛ;PBoÍœ= ϯ]Ë‚gáŠ9s …°Þj=x`Ó¢€®ë›vüyçƒôúä;'%»=ò}{qß½_•÷Ürûí¸zéRœThe Image Viewer example shows how to combine " "QLabel and QScrollArea to display an image. QLabel is " "typically used for displaying text, but it can also display " "an image. QScrollArea provides a scrolling view around " "another widget. If the child widget exceeds the size of the " "frame, QScrollArea automatically provides scroll bars.

      " "

      The example demonstrates how QLabel's ability to scale " "its contents (QLabel.scaledContents), and QScrollArea's " "ability to automatically resize its contents " "(QScrollArea.widgetResizable), can be used to implement " "zooming and scaling features.

      " "

      In addition the example shows how to use QPainter to " "print an image.

      ") def createActions(self): self.openAct = QtGui.QAction("&Open...", self, shortcut="Ctrl+O", triggered=self.open) self.printAct = QtGui.QAction("&Print...", self, shortcut="Ctrl+P", enabled=False, triggered=self.print_) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close) self.zoomInAct = QtGui.QAction("Zoom &In (25%)", self, shortcut="Ctrl++", enabled=False, triggered=self.zoomIn) self.zoomOutAct = QtGui.QAction("Zoom &Out (25%)", self, shortcut="Ctrl+-", enabled=False, triggered=self.zoomOut) self.normalSizeAct = QtGui.QAction("&Normal Size", self, shortcut="Ctrl+S", enabled=False, triggered=self.normalSize) self.fitToWindowAct = QtGui.QAction("&Fit to Window", self, enabled=False, checkable=True, shortcut="Ctrl+F", triggered=self.fitToWindow) self.aboutAct = QtGui.QAction("&About", self, triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = QtGui.QMenu("&File", self) self.fileMenu.addAction(self.openAct) self.fileMenu.addAction(self.printAct) self.fileMenu.addSeparator() self.fileMenu.addAction(self.exitAct) self.viewMenu = QtGui.QMenu("&View", self) self.viewMenu.addAction(self.zoomInAct) self.viewMenu.addAction(self.zoomOutAct) self.viewMenu.addAction(self.normalSizeAct) self.viewMenu.addSeparator() self.viewMenu.addAction(self.fitToWindowAct) self.helpMenu = QtGui.QMenu("&Help", self) self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) self.menuBar().addMenu(self.fileMenu) self.menuBar().addMenu(self.viewMenu) self.menuBar().addMenu(self.helpMenu) def updateActions(self): self.zoomInAct.setEnabled(not self.fitToWindowAct.isChecked()) self.zoomOutAct.setEnabled(not self.fitToWindowAct.isChecked()) self.normalSizeAct.setEnabled(not self.fitToWindowAct.isChecked()) def scaleImage(self, factor): self.scaleFactor *= factor self.imageLabel.resize(self.scaleFactor * self.imageLabel.pixmap().size()) self.adjustScrollBar(self.scrollArea.horizontalScrollBar(), factor) self.adjustScrollBar(self.scrollArea.verticalScrollBar(), factor) self.zoomInAct.setEnabled(self.scaleFactor < 3.0) self.zoomOutAct.setEnabled(self.scaleFactor > 0.333) def adjustScrollBar(self, scrollBar, factor): scrollBar.setValue(int(factor * scrollBar.value() + ((factor - 1) * scrollBar.pageStep()/2))) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) imageViewer = ImageViewer() imageViewer.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/lineedits.py0000755000076500000240000001735012536324427021603 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() echoGroup = QtGui.QGroupBox("Echo") echoLabel = QtGui.QLabel("Mode:") echoComboBox = QtGui.QComboBox() echoComboBox.addItem("Normal") echoComboBox.addItem("Password") echoComboBox.addItem("PasswordEchoOnEdit") echoComboBox.addItem("No Echo") self.echoLineEdit = QtGui.QLineEdit() self.echoLineEdit.setFocus() validatorGroup = QtGui.QGroupBox("Validator") validatorLabel = QtGui.QLabel("Type:") validatorComboBox = QtGui.QComboBox() validatorComboBox.addItem("No validator") validatorComboBox.addItem("Integer validator") validatorComboBox.addItem("Double validator") self.validatorLineEdit = QtGui.QLineEdit() alignmentGroup = QtGui.QGroupBox("Alignment") alignmentLabel = QtGui.QLabel("Type:") alignmentComboBox = QtGui.QComboBox() alignmentComboBox.addItem("Left") alignmentComboBox.addItem("Centered") alignmentComboBox.addItem("Right") self.alignmentLineEdit = QtGui.QLineEdit() inputMaskGroup = QtGui.QGroupBox("Input mask") inputMaskLabel = QtGui.QLabel("Type:") inputMaskComboBox = QtGui.QComboBox() inputMaskComboBox.addItem("No mask") inputMaskComboBox.addItem("Phone number") inputMaskComboBox.addItem("ISO date") inputMaskComboBox.addItem("License key") self.inputMaskLineEdit = QtGui.QLineEdit() accessGroup = QtGui.QGroupBox("Access") accessLabel = QtGui.QLabel("Read-only:") accessComboBox = QtGui.QComboBox() accessComboBox.addItem("False") accessComboBox.addItem("True") self.accessLineEdit = QtGui.QLineEdit() echoComboBox.activated.connect(self.echoChanged) validatorComboBox.activated.connect(self.validatorChanged) alignmentComboBox.activated.connect(self.alignmentChanged) inputMaskComboBox.activated.connect(self.inputMaskChanged) accessComboBox.activated.connect(self.accessChanged) echoLayout = QtGui.QGridLayout() echoLayout.addWidget(echoLabel, 0, 0) echoLayout.addWidget(echoComboBox, 0, 1) echoLayout.addWidget(self.echoLineEdit, 1, 0, 1, 2) echoGroup.setLayout(echoLayout) validatorLayout = QtGui.QGridLayout() validatorLayout.addWidget(validatorLabel, 0, 0) validatorLayout.addWidget(validatorComboBox, 0, 1) validatorLayout.addWidget(self.validatorLineEdit, 1, 0, 1, 2) validatorGroup.setLayout(validatorLayout) alignmentLayout = QtGui.QGridLayout() alignmentLayout.addWidget(alignmentLabel, 0, 0) alignmentLayout.addWidget(alignmentComboBox, 0, 1) alignmentLayout.addWidget(self.alignmentLineEdit, 1, 0, 1, 2) alignmentGroup. setLayout(alignmentLayout) inputMaskLayout = QtGui.QGridLayout() inputMaskLayout.addWidget(inputMaskLabel, 0, 0) inputMaskLayout.addWidget(inputMaskComboBox, 0, 1) inputMaskLayout.addWidget(self.inputMaskLineEdit, 1, 0, 1, 2) inputMaskGroup.setLayout(inputMaskLayout) accessLayout = QtGui.QGridLayout() accessLayout.addWidget(accessLabel, 0, 0) accessLayout.addWidget(accessComboBox, 0, 1) accessLayout.addWidget(self.accessLineEdit, 1, 0, 1, 2) accessGroup.setLayout(accessLayout) layout = QtGui.QGridLayout() layout.addWidget(echoGroup, 0, 0) layout.addWidget(validatorGroup, 1, 0) layout.addWidget(alignmentGroup, 2, 0) layout.addWidget(inputMaskGroup, 0, 1) layout.addWidget(accessGroup, 1, 1) self.setLayout(layout) self.setWindowTitle("Line Edits") def echoChanged(self, index): if index == 0: self.echoLineEdit.setEchoMode(QtGui.QLineEdit.Normal) elif index == 1: self.echoLineEdit.setEchoMode(QtGui.QLineEdit.Password) elif index == 2: self.echoLineEdit.setEchoMode(QtGui.QLineEdit.PasswordEchoOnEdit) elif index == 3: self.echoLineEdit.setEchoMode(QtGui.QLineEdit.NoEcho) def validatorChanged(self, index): if index == 0: self.validatorLineEdit.setValidator(0) elif index == 1: self.validatorLineEdit.setValidator(QtGui.QIntValidator(self.validatorLineEdit)) elif index == 2: self.validatorLineEdit.setValidator(QtGui.QDoubleValidator(-999.0, 999.0, 2, self.validatorLineEdit)) self.validatorLineEdit.clear() def alignmentChanged(self, index): if index == 0: self.alignmentLineEdit.setAlignment(QtCore.Qt.AlignLeft) elif index == 1: self.alignmentLineEdit.setAlignment(QtCore.Qt.AlignCenter) elif index == 2: self.alignmentLineEdit.setAlignment(QtCore.Qt.AlignRight) def inputMaskChanged(self, index): if index == 0: self.inputMaskLineEdit.setInputMask('') elif index == 1: self.inputMaskLineEdit.setInputMask('+99 99 99 99 99;_') elif index == 2: self.inputMaskLineEdit.setInputMask('0000-00-00') self.inputMaskLineEdit.setText('00000000') self.inputMaskLineEdit.setCursorPosition(0) elif index == 3: self.inputMaskLineEdit.setInputMask('>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#') def accessChanged(self, index): if index == 0: self.accessLineEdit.setReadOnly(False) elif index == 1: self.accessLineEdit.setReadOnly(True) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/movie/0000755000076500000240000000000012536324427020357 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/widgets/movie/animation.mng0000644000076500000240000001253012536324427023042 0ustar philstaff00000000000000ŠMNG  MHDRddI~iË IHDRddpâ•TìIDATxÚíÑ1 àù7ÝÙฅR¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜ø+¬Ö´hQÊIEND®B`‚ IHDRddpâ•T IDATxÚíÚ± ! ±ßÖìð¬@:$[JK‘+Ã÷“"HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Äl™™+ƒ 9‚Äì9º´“o¿HAb‰$FAb‰$FAb‰$FAb‰$FAbÜÔc‰$ÆÏÅAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰$FAb‰Y<äp¸¿Î¶hIEND®B`‚ IHDRddpâ•TUIDATxÚíÚ±m1A÷_Û—Âl…Ü û À”ÁmHþü’"HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚ļ亮É$æ ·ŽvçÝO$HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1ÞÔc‰$ÆÏÅAb‰$FAb‰äåœóñ#ˆ Ïq 2ô¨; 2jAáP ‚ ‡Zd8Ô‚ áµ Èp¨A†C-2jAáP ‚ ‡Zd8Ô‚ áµ Èp¨A†C-2jAáP ‚ ‡Zd8Ô‚ áµ Èp¨A|”{¦3X¡3X/%HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HÌþÄ›1L¹7IEND®B`‚ IHDRddpâ•TTIDATxÚíÚ±m1Awü²'[¡C÷¾00ep’?¿¤#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1o¹®ë#Ar‰y'È­£Ýy÷ #HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ7õAb‰ñs1FAb‰$FAby9ç|ü"ÈsœÁÀ‚ ýêN‚ ‡Zd8Ô‚ áµ Èp¨A†C-2jAáP ‚ ‡Zd8Ô‚ áµ Èp¨A†C-2jAáP ‚ ‡Zd8Ô‚ áµ Èp¨A†C-2jAåžé dè äK #HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Ä#HŒ 1‚Äó' 5kÖ£IEND®B`‚ IHDRddpâ•TdIDATxÚíÚ1nÃ@Aþ˜çd‡ìž›@5p™ ¦Béú(X@b‰$X@b‰$X@b‰u}õ¡ë:ò$X߬°:Úæw¿1 ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Äò›z, ±€Ä²B, ±€Ä H, ±€ÄòÛ}ßÇ ïéÈ`‡Ú ÈàPj" ƒCMdp¨‰€ 5Á¡&28ÔD@‡šÈàP%@žçù·79ÔD@‡šÈàPå@Nda Ó÷€,da Ó÷€,da Ó÷€,da Ó÷€,da Ó÷€,da Ó÷î?¾½ær@€™èM÷¦ H, ±€Ä H, ±€Ä H¬£ §ß H¬uyu@b‰$X@b‰$X@b‰õI+"EWâ‚IEND®B`‚ IHDRddpâ•TeIDATxÚíÚ1ŽAÁý1?Ê? Kî5£\ — T˜ÜçG©€Ä H, ±€Ä H, ±€Ä H¬_|>Ÿ+O@r‰õ££üí7$X@b‰$X@b‰$X@b‰$X@b‰$XþS$X¾\Œ$X@b‰$X@þŽð<× ïé dØ¿¡ÎÎd8Ô" áµÈp¨E@†C-2jáP‹€ ‡Zd8Ô¢È÷ûýoo9Ô" áµ(r# º}ÈÁ€èö= r` Û÷€ Ènßr0 º}ÈÁ€èö½gðáÛk>”Èz 7Ý[$X@b‰$X@b‰$XWAn¿7$XÇAäÕ‰$X@b‰$X@b‰$ÖeÆÐÓVˆIEND®B`‚ IHDRddpâ•T£IDATxÚíÚ1NQAn¼õQ| °ˆz׳¨ZrúøšÊl>>5±€Œd, c ÈX@Æ2±€ŒäWÏç3ûœòx<.ù,ô €„ýŒù¶@Â1‹9u´3o_=fqH8fqH8fqH8fqH8fqH8fqH8fqH8fqH8fqH8fqH8fqH8fqH8fqÈÝ©;ó6òd, cùM}, cË.Žd, c ÈX@Æ2ïŽã¸üÈ}:‚„½uf@Â¡Š€„C ‡*U$ªH8Tp¨" áPE@¡Š&@Žàk†úë oú”C ‡*š¹" Á#Ê€(<¢ Hðˆ2 Á#Ê€(<¢ Hðˆ2 Á#Ê€(<¢ìåïMß oø{u@Æ2±€Œd, c ÈX@Æ2Ö¥ Wî±€Œu:ˆ€Ü: c ÈX@Æ2±€Œd, cë uEB?¿¡IEND®B`‚ IHDRddpâ•TÔIDATxÚíš±qÃ@ľÿÚXŠz°8r¤»\ÊÀ Ó» “þ|Éà cd ƒŒa1 2†AÆ0Èà cä×ua_,Èëõª| \@ƒ€üʼm†A@™ÄŒw‚D¥%g·e3 Ê$f”IÌ0(“˜aP&1à  Lb†A@™Ä ƒ€2‰e3 Ê$f”IÌ0(“˜aP&1à Oÿ?„&9Û än 2†AÆ0Èþ§>†AÆ0Ⱦ\à cd ƒŒa1 2†AÆ0ü“û›ŸA ò .@°A@~!ÿ¥{ b= 2†AÆ0Èà cd ƒŒñ¯‚œsnûHQEE0¤A‚Úû Ä Aí} b€ ö>ƒ1H@P{ŸA‚$ ¨½Ï A ÔÞwßóPÎ 1-èIûhâW·µ÷Ñįn j_ÝÔÞG¿º-¨½&~u[P{Müê¶ ö>šøÕmAí}4ñ«Û‚ÚûhâW·µ÷Ñįn j_}€ˆé—‹Kį>€Xƒ€@¬Aä6 2†AÆ0Èà cd ƒŒa1 2†AÆ0Èߣúu9róÐIEND®B`‚ IHDRddpâ•T‘IDATxÚíÚ1nA ÅÐÜx.¾wˆS¤0RS2' ·à¿Òûõ]ª‘ˆ¬@d"+YÈ DV ²‘ˆ¬@þtÎÁ~"°ß1?v#pLâF à˜Ä@À1‰€c7Ç$nŽIÜ“¸8&q#pLâF à˜Ä@À1‰€c7Ç$nŽIܤÿCÜ"T ²‘ˆ¬@d"+YÈ DV ²‘ˆ¬@d"+ŸžçYÿÈ==ÀÀ€½5Y àPD€CE8Q àPD€CE8Q àPD |#;ýmm K?r(¢@À¡ˆt 20Ðö{ ÈÀ@Ûï2X m¿È` ´ý^ ƒ20Ðö{ ÈÀ@Ûï=À‡o×|(H ÐÝô] ²‘ˆ¬@d"+YÈ DV ²‘µ ²ý»±@d"k¤¹º@d"+YÈ DV ²‘ˆ¬@d"ëh!I[ 2çˆIEND®B`‚ IHDRddpâ•TMIDATxÚíÙ±Ã@ÁË?6æôrd½=¢šB5pî˜2yþ” H, ±€Ä H, ±€Ä H, ±€üäœÙ2è € {ùµ@†c.n޹¸d8æâᘋ@†c.n޹¸d8æâᘋ@†c.n޹¸d8æâᘋ@†c.n޹¸Äÿvgä‡ H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H¬ƒ\×õµ÷Ä€ÄëV;ºû{ë€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±n¹û=1 ±€Äú8ˆ€<: ±€Ä H, ±€Ä H, ±€Äz6wM€OÐQIEND®B`‚ IHDRddpâ•TMIDATxÚíÙ1nÃ@Aÿø>Î?؉"Ç#ª)T—.©?¿J$X@b‰$X@b‰$X@þuΙ= ƒÎȰט»d8æâᘋ@†c.n޹¸d8æâᘋ@†c.n޹¸d8æâᘋ@†c.n޹¸d8æâᘋ@üiw@¾( ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Äz;Èu]{O H, ±n¹£»¿·H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€Ä H, ±€ÄëV»ß H¬·ƒÈ£ H, ±€Ä H, ±€Ä H¬?X|wTIEND®B`‚ IHDRddpâ•T;IDATxÚíÙ± AAòms {¤o¡jéÜ5¦Ì{½• H, ±€Ä H, ±€Ä H, ±€ütw³dÐ € ûŽùØ Ã17€ Ç\Ü2sqÈpÌÅ Ã17€ Ç\Ü2sqÈpÌÅ Ã17€ Ç\Ü2sqÈpÌÅ Ã17€ Ç\Üâ?¤Ý €üQ@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b}‡´[ŽRØ$÷IEND®B`‚ IHDRddpâ•T;IDATxÚíÙ± AAòus {¤o¡jéÜ5¦Ì{½• H, ±€Ä H, ±€Ä H, ±€ütw³dÐ € ûŽùØ Ã17€ Ç\Ü2sqÈpÌÅ Ã17€ Ç\Ü2sqÈpÌÅ Ã17€ Ç\Ü2sqÈpÌÅ Ã17€ Ç\Üâ?¤Ý €üQ@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b‰$X@b}(©ŽŽÚŸ‰IEND®B`‚ IHDRddpâ•TìIDATxÚíÑ1 àù7ÝÙฅR¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜B0…` Á‚)S¦L!˜ø+¬Ö´hQÊIEND®B`‚MEND! ÷ÕPyQt-x11-gpl-4.11.4/examples/widgets/movie/movie.py0000755000076500000240000001761212536324427022062 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class MoviePlayer(QtGui.QWidget): def __init__(self, parent=None): super(MoviePlayer, self).__init__(parent) self.movie = QtGui.QMovie(self) self.movie.setCacheMode(QtGui.QMovie.CacheAll) self.movieLabel = QtGui.QLabel("No movie loaded") self.movieLabel.setAlignment(QtCore.Qt.AlignCenter) self.movieLabel.setSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored) self.movieLabel.setBackgroundRole(QtGui.QPalette.Dark) self.movieLabel.setAutoFillBackground(True) self.currentMovieDirectory = 'movies' self.createControls() self.createButtons() self.movie.frameChanged.connect(self.updateFrameSlider) self.movie.stateChanged.connect(self.updateButtons) self.fitCheckBox.clicked.connect(self.fitToWindow) self.frameSlider.valueChanged.connect(self.goToFrame) self.speedSpinBox.valueChanged.connect(self.movie.setSpeed) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.movieLabel) mainLayout.addLayout(self.controlsLayout) mainLayout.addLayout(self.buttonsLayout) self.setLayout(mainLayout) self.updateFrameSlider() self.updateButtons() self.setWindowTitle("Movie Player") self.resize(400, 400) def open(self): fileName = QtGui.QFileDialog.getOpenFileName(self, "Open a Movie", self.currentMovieDirectory) if fileName: self.openFile(fileName) def openFile(self, fileName): self.currentMovieDirectory = QtCore.QFileInfo(fileName).path() self.movie.stop() self.movieLabel.setMovie(self.movie) self.movie.setFileName(fileName) self.movie.start() self.updateFrameSlider(); self.updateButtons(); def goToFrame(self, frame): self.movie.jumpToFrame(frame) def fitToWindow(self): self.movieLabel.setScaledContents(self.fitCheckBox.isChecked()) def updateFrameSlider(self): hasFrames = (self.movie.currentFrameNumber() >= 0) if hasFrames: if self.movie.frameCount() > 0: self.frameSlider.setMaximum(self.movie.frameCount() - 1) elif self.movie.currentFrameNumber() > self.frameSlider.maximum(): self.frameSlider.setMaximum(self.movie.currentFrameNumber()) self.frameSlider.setValue(self.movie.currentFrameNumber()) else: self.frameSlider.setMaximum(0) self.frameLabel.setEnabled(hasFrames) self.frameSlider.setEnabled(hasFrames) def updateButtons(self): state = self.movie.state() self.playButton.setEnabled(self.movie.isValid() and self.movie.frameCount() != 1 and state == QtGui.QMovie.NotRunning) self.pauseButton.setEnabled(state != QtGui.QMovie.NotRunning) self.pauseButton.setChecked(state == QtGui.QMovie.Paused) self.stopButton.setEnabled(state != QtGui.QMovie.NotRunning) def createControls(self): self.fitCheckBox = QtGui.QCheckBox("Fit to Window") self.frameLabel = QtGui.QLabel("Current frame:") self.frameSlider = QtGui.QSlider(QtCore.Qt.Horizontal) self.frameSlider.setTickPosition(QtGui.QSlider.TicksBelow) self.frameSlider.setTickInterval(10) speedLabel = QtGui.QLabel("Speed:") self.speedSpinBox = QtGui.QSpinBox() self.speedSpinBox.setRange(1, 9999) self.speedSpinBox.setValue(100) self.speedSpinBox.setSuffix("%") self.controlsLayout = QtGui.QGridLayout() self.controlsLayout.addWidget(self.fitCheckBox, 0, 0, 1, 2) self.controlsLayout.addWidget(self.frameLabel, 1, 0) self.controlsLayout.addWidget(self.frameSlider, 1, 1, 1, 2) self.controlsLayout.addWidget(speedLabel, 2, 0) self.controlsLayout.addWidget(self.speedSpinBox, 2, 1) def createButtons(self): iconSize = QtCore.QSize(36, 36) openButton = QtGui.QToolButton() openButton.setIcon(self.style().standardIcon(QtGui.QStyle.SP_DialogOpenButton)) openButton.setIconSize(iconSize) openButton.setToolTip("Open File") openButton.clicked.connect(self.open) self.playButton = QtGui.QToolButton() self.playButton.setIcon(self.style().standardIcon(QtGui.QStyle.SP_MediaPlay)) self.playButton.setIconSize(iconSize) self.playButton.setToolTip("Play") self.playButton.clicked.connect(self.movie.start) self.pauseButton = QtGui.QToolButton() self.pauseButton.setCheckable(True) self.pauseButton.setIcon(self.style().standardIcon(QtGui.QStyle.SP_MediaPause)) self.pauseButton.setIconSize(iconSize) self.pauseButton.setToolTip("Pause") self.pauseButton.clicked.connect(self.movie.setPaused) self.stopButton = QtGui.QToolButton() self.stopButton.setIcon(self.style().standardIcon(QtGui.QStyle.SP_MediaStop)) self.stopButton.setIconSize(iconSize) self.stopButton.setToolTip("Stop") self.stopButton.clicked.connect(self.movie.stop) quitButton = QtGui.QToolButton() quitButton.setIcon(self.style().standardIcon(QtGui.QStyle.SP_DialogCloseButton)) quitButton.setIconSize(iconSize) quitButton.setToolTip("Quit") quitButton.clicked.connect(self.close) self.buttonsLayout = QtGui.QHBoxLayout() self.buttonsLayout.addStretch() self.buttonsLayout.addWidget(openButton) self.buttonsLayout.addWidget(self.playButton) self.buttonsLayout.addWidget(self.pauseButton) self.buttonsLayout.addWidget(self.stopButton) self.buttonsLayout.addWidget(quitButton) self.buttonsLayout.addStretch() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) player = MoviePlayer() player.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/README0000644000076500000240000000171712536324427020126 0ustar philstaff00000000000000PyQt comes with a large range of standard widgets that users of modern application have come to expect. You can also develop your own custom widgets and controls, and use them alongside standard widgets. It is even possible to provide custom styles and themes for widgets that can be used to change the appearance of standard widgets and appropriately written custom widgets. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/widgets/scribble.py0000755000076500000240000002661312536324427021412 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # These are only needed for Python v2 but are harmless for Python v3. import sip sip.setapi('QString', 2) sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui class ScribbleArea(QtGui.QWidget): def __init__(self, parent=None): super(ScribbleArea, self).__init__(parent) self.setAttribute(QtCore.Qt.WA_StaticContents) self.modified = False self.scribbling = False self.myPenWidth = 1 self.myPenColor = QtCore.Qt.blue self.image = QtGui.QImage() self.lastPoint = QtCore.QPoint() def openImage(self, fileName): loadedImage = QtGui.QImage() if not loadedImage.load(fileName): return False newSize = loadedImage.size().expandedTo(self.size()) self.resizeImage(loadedImage, newSize) self.image = loadedImage self.modified = False self.update() return True def saveImage(self, fileName, fileFormat): visibleImage = self.image self.resizeImage(visibleImage, self.size()) if visibleImage.save(fileName, fileFormat): self.modified = False return True else: return False def setPenColor(self, newColor): self.myPenColor = newColor def setPenWidth(self, newWidth): self.myPenWidth = newWidth def clearImage(self): self.image.fill(QtGui.qRgb(255, 255, 255)) self.modified = True self.update() def mousePressEvent(self, event): if event.button() == QtCore.Qt.LeftButton: self.lastPoint = event.pos() self.scribbling = True def mouseMoveEvent(self, event): if (event.buttons() & QtCore.Qt.LeftButton) and self.scribbling: self.drawLineTo(event.pos()) def mouseReleaseEvent(self, event): if event.button() == QtCore.Qt.LeftButton and self.scribbling: self.drawLineTo(event.pos()) self.scribbling = False def paintEvent(self, event): painter = QtGui.QPainter(self) painter.drawImage(event.rect(), self.image) def resizeEvent(self, event): if self.width() > self.image.width() or self.height() > self.image.height(): newWidth = max(self.width() + 128, self.image.width()) newHeight = max(self.height() + 128, self.image.height()) self.resizeImage(self.image, QtCore.QSize(newWidth, newHeight)) self.update() super(ScribbleArea, self).resizeEvent(event) def drawLineTo(self, endPoint): painter = QtGui.QPainter(self.image) painter.setPen(QtGui.QPen(self.myPenColor, self.myPenWidth, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) painter.drawLine(self.lastPoint, endPoint) self.modified = True rad = self.myPenWidth / 2 + 2 self.update(QtCore.QRect(self.lastPoint, endPoint).normalized().adjusted(-rad, -rad, +rad, +rad)) self.lastPoint = QtCore.QPoint(endPoint) def resizeImage(self, image, newSize): if image.size() == newSize: return newImage = QtGui.QImage(newSize, QtGui.QImage.Format_RGB32) newImage.fill(QtGui.qRgb(255, 255, 255)) painter = QtGui.QPainter(newImage) painter.drawImage(QtCore.QPoint(0, 0), image) self.image = newImage def print_(self): printer = QtGui.QPrinter(QtGui.QPrinter.HighResolution) printDialog = QtGui.QPrintDialog(printer, self) if printDialog.exec_() == QtGui.QDialog.Accepted: painter = QtGui.QPainter(printer) rect = painter.viewport() size = self.image.size() size.scale(rect.size(), QtCore.Qt.KeepAspectRatio) painter.setViewport(rect.x(), rect.y(), size.width(), size.height()) painter.setWindow(self.image.rect()) painter.drawImage(0, 0, self.image) painter.end() def isModified(self): return self.modified def penColor(self): return self.myPenColor def penWidth(self): return self.myPenWidth class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.saveAsActs = [] self.scribbleArea = ScribbleArea() self.setCentralWidget(self.scribbleArea) self.createActions() self.createMenus() self.setWindowTitle("Scribble") self.resize(500, 500) def closeEvent(self, event): if self.maybeSave(): event.accept() else: event.ignore() def open(self): if self.maybeSave(): fileName = QtGui.QFileDialog.getOpenFileName(self, "Open File", QtCore.QDir.currentPath()) if fileName: self.scribbleArea.openImage(fileName) def save(self): action = self.sender() fileFormat = action.data() self.saveFile(fileFormat) def penColor(self): newColor = QtGui.QColorDialog.getColor(self.scribbleArea.penColor()) if newColor.isValid(): self.scribbleArea.setPenColor(newColor) def penWidth(self): newWidth, ok = QtGui.QInputDialog.getInteger(self, "Scribble", "Select pen width:", self.scribbleArea.penWidth(), 1, 50, 1) if ok: self.scribbleArea.setPenWidth(newWidth) def about(self): QtGui.QMessageBox.about(self, "About Scribble", "

      The Scribble example shows how to use " "QMainWindow as the base widget for an application, and how " "to reimplement some of QWidget's event handlers to receive " "the events generated for the application's widgets:

      " "

      We reimplement the mouse event handlers to facilitate " "drawing, the paint event handler to update the application " "and the resize event handler to optimize the application's " "appearance. In addition we reimplement the close event " "handler to intercept the close events before terminating " "the application.

      " "

      The example also demonstrates how to use QPainter to " "draw an image in real time, as well as to repaint " "widgets.

      ") def createActions(self): self.openAct = QtGui.QAction("&Open...", self, shortcut="Ctrl+O", triggered=self.open) for format in QtGui.QImageWriter.supportedImageFormats(): format = str(format) text = format.upper() + "..." action = QtGui.QAction(text, self, triggered=self.save) action.setData(format) self.saveAsActs.append(action) self.printAct = QtGui.QAction("&Print...", self, triggered=self.scribbleArea.print_) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close) self.penColorAct = QtGui.QAction("&Pen Color...", self, triggered=self.penColor) self.penWidthAct = QtGui.QAction("Pen &Width...", self, triggered=self.penWidth) self.clearScreenAct = QtGui.QAction("&Clear Screen", self, shortcut="Ctrl+L", triggered=self.scribbleArea.clearImage) self.aboutAct = QtGui.QAction("&About", self, triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, triggered=QtGui.qApp.aboutQt) def createMenus(self): self.saveAsMenu = QtGui.QMenu("&Save As", self) for action in self.saveAsActs: self.saveAsMenu.addAction(action) fileMenu = QtGui.QMenu("&File", self) fileMenu.addAction(self.openAct) fileMenu.addMenu(self.saveAsMenu) fileMenu.addAction(self.printAct) fileMenu.addSeparator() fileMenu.addAction(self.exitAct) optionMenu = QtGui.QMenu("&Options", self) optionMenu.addAction(self.penColorAct) optionMenu.addAction(self.penWidthAct) optionMenu.addSeparator() optionMenu.addAction(self.clearScreenAct) helpMenu = QtGui.QMenu("&Help", self) helpMenu.addAction(self.aboutAct) helpMenu.addAction(self.aboutQtAct) self.menuBar().addMenu(fileMenu) self.menuBar().addMenu(optionMenu) self.menuBar().addMenu(helpMenu) def maybeSave(self): if self.scribbleArea.isModified(): ret = QtGui.QMessageBox.warning(self, "Scribble", "The image has been modified.\n" "Do you want to save your changes?", QtGui.QMessageBox.Save | QtGui.QMessageBox.Discard | QtGui.QMessageBox.Cancel) if ret == QtGui.QMessageBox.Save: return self.saveFile('png') elif ret == QtGui.QMessageBox.Cancel: return False return True def saveFile(self, fileFormat): initialPath = QtCore.QDir.currentPath() + '/untitled.' + fileFormat fileName = QtGui.QFileDialog.getSaveFileName(self, "Save As", initialPath, "%s Files (*.%s);;All Files (*)" % (fileFormat.upper(), fileFormat)) if fileName: return self.scribbleArea.saveImage(fileName, fileFormat) return False if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/shapedclock.py0000755000076500000240000001213612536324427022100 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class ShapedClock(QtGui.QWidget): hourHand = QtGui.QPolygon([ QtCore.QPoint(7, 8), QtCore.QPoint(-7, 8), QtCore.QPoint(0, -40) ]) minuteHand = QtGui.QPolygon([ QtCore.QPoint(7, 8), QtCore.QPoint(-7, 8), QtCore.QPoint(0, -70) ]) hourColor = QtGui.QColor(127, 0, 127) minuteColor = QtGui.QColor(0, 127, 127, 191) def __init__(self, parent=None): super(ShapedClock, self).__init__(parent, QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowSystemMenuHint) timer = QtCore.QTimer(self) timer.timeout.connect(self.update) timer.start(1000) quitAction = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", triggered=QtGui.qApp.quit) self.addAction(quitAction) self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.setToolTip("Drag the clock with the left mouse button.\n" "Use the right mouse button to open a context menu.") self.setWindowTitle(self.tr("Shaped Analog Clock")) def mousePressEvent(self, event): if event.button() == QtCore.Qt.LeftButton: self.dragPosition = event.globalPos() - self.frameGeometry().topLeft() event.accept() def mouseMoveEvent(self, event): if event.buttons() == QtCore.Qt.LeftButton: self.move(event.globalPos() - self.dragPosition) event.accept() def paintEvent(self, event): side = min(self.width(), self.height()) time = QtCore.QTime.currentTime() painter = QtGui.QPainter(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.translate(self.width() / 2, self.height() / 2) painter.scale(side / 200.0, side / 200.0) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(ShapedClock.hourColor) painter.save() painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0))) painter.drawConvexPolygon(ShapedClock.hourHand) painter.restore() painter.setPen(ShapedClock.hourColor) for i in range(12): painter.drawLine(88, 0, 96, 0) painter.rotate(30.0) painter.setPen(QtCore.Qt.NoPen) painter.setBrush(ShapedClock.minuteColor) painter.save() painter.rotate(6.0 * (time.minute() + time.second() / 60.0)) painter.drawConvexPolygon(ShapedClock.minuteHand) painter.restore() painter.setPen(ShapedClock.minuteColor) for j in range(60): if (j % 5) != 0: painter.drawLine(92, 0, 96, 0) painter.rotate(6.0) def resizeEvent(self, event): side = min(self.width(), self.height()) maskedRegion = QtGui.QRegion(self.width()/2 - side/2, self.height()/2 - side/2, side, side, QtGui.QRegion.Ellipse) self.setMask(maskedRegion) def sizeHint(self): return QtCore.QSize(100, 100) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) clock = ShapedClock() clock.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/sliders.py0000755000076500000240000001704312536324427021267 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class SlidersGroup(QtGui.QGroupBox): valueChanged = QtCore.pyqtSignal(int) def __init__(self, orientation, title, parent=None): super(SlidersGroup, self).__init__(title, parent) self.slider = QtGui.QSlider(orientation) self.slider.setFocusPolicy(QtCore.Qt.StrongFocus) self.slider.setTickPosition(QtGui.QSlider.TicksBothSides) self.slider.setTickInterval(10) self.slider.setSingleStep(1) self.scrollBar = QtGui.QScrollBar(orientation) self.scrollBar.setFocusPolicy(QtCore.Qt.StrongFocus) self.dial = QtGui.QDial() self.dial.setFocusPolicy(QtCore.Qt.StrongFocus) self.slider.valueChanged.connect(self.scrollBar.setValue) self.scrollBar.valueChanged.connect(self.dial.setValue) self.dial.valueChanged.connect(self.slider.setValue) self.dial.valueChanged.connect(self.valueChanged) if orientation == QtCore.Qt.Horizontal: direction = QtGui.QBoxLayout.TopToBottom else: direction = QtGui.QBoxLayout.LeftToRight slidersLayout = QtGui.QBoxLayout(direction) slidersLayout.addWidget(self.slider) slidersLayout.addWidget(self.scrollBar) slidersLayout.addWidget(self.dial) self.setLayout(slidersLayout) def setValue(self, value): self.slider.setValue(value) def setMinimum(self, value): self.slider.setMinimum(value) self.scrollBar.setMinimum(value) self.dial.setMinimum(value) def setMaximum(self, value): self.slider.setMaximum(value) self.scrollBar.setMaximum(value) self.dial.setMaximum(value) def invertAppearance(self, invert): self.slider.setInvertedAppearance(invert) self.scrollBar.setInvertedAppearance(invert) self.dial.setInvertedAppearance(invert) def invertKeyBindings(self, invert): self.slider.setInvertedControls(invert) self.scrollBar.setInvertedControls(invert) self.dial.setInvertedControls(invert) class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() self.horizontalSliders = SlidersGroup(QtCore.Qt.Horizontal, "Horizontal") self.verticalSliders = SlidersGroup(QtCore.Qt.Vertical, "Vertical") self.stackedWidget = QtGui.QStackedWidget() self.stackedWidget.addWidget(self.horizontalSliders) self.stackedWidget.addWidget(self.verticalSliders) self.createControls("Controls") self.horizontalSliders.valueChanged.connect(self.verticalSliders.setValue) self.verticalSliders.valueChanged.connect(self.valueSpinBox.setValue) self.valueSpinBox.valueChanged.connect(self.horizontalSliders.setValue) layout = QtGui.QHBoxLayout() layout.addWidget(self.controlsGroup) layout.addWidget(self.stackedWidget) self.setLayout(layout) self.minimumSpinBox.setValue(0) self.maximumSpinBox.setValue(20) self.valueSpinBox.setValue(5) self.setWindowTitle("Sliders") def createControls(self, title): self.controlsGroup = QtGui.QGroupBox(title) minimumLabel = QtGui.QLabel("Minimum value:") maximumLabel = QtGui.QLabel("Maximum value:") valueLabel = QtGui.QLabel("Current value:") invertedAppearance = QtGui.QCheckBox("Inverted appearance") invertedKeyBindings = QtGui.QCheckBox("Inverted key bindings") self.minimumSpinBox = QtGui.QSpinBox() self.minimumSpinBox.setRange(-100, 100) self.minimumSpinBox.setSingleStep(1) self.maximumSpinBox = QtGui.QSpinBox() self.maximumSpinBox.setRange(-100, 100) self.maximumSpinBox.setSingleStep(1) self.valueSpinBox = QtGui.QSpinBox() self.valueSpinBox.setRange(-100, 100) self.valueSpinBox.setSingleStep(1) orientationCombo = QtGui.QComboBox() orientationCombo.addItem("Horizontal slider-like widgets") orientationCombo.addItem("Vertical slider-like widgets") orientationCombo.activated.connect(self.stackedWidget.setCurrentIndex) self.minimumSpinBox.valueChanged.connect(self.horizontalSliders.setMinimum) self.minimumSpinBox.valueChanged.connect(self.verticalSliders.setMinimum) self.maximumSpinBox.valueChanged.connect(self.horizontalSliders.setMaximum) self.maximumSpinBox.valueChanged.connect(self.verticalSliders.setMaximum) invertedAppearance.toggled.connect(self.horizontalSliders.invertAppearance) invertedAppearance.toggled.connect(self.verticalSliders.invertAppearance) invertedKeyBindings.toggled.connect(self.horizontalSliders.invertKeyBindings) invertedKeyBindings.toggled.connect(self.verticalSliders.invertKeyBindings) controlsLayout = QtGui.QGridLayout() controlsLayout.addWidget(minimumLabel, 0, 0) controlsLayout.addWidget(maximumLabel, 1, 0) controlsLayout.addWidget(valueLabel, 2, 0) controlsLayout.addWidget(self.minimumSpinBox, 0, 1) controlsLayout.addWidget(self.maximumSpinBox, 1, 1) controlsLayout.addWidget(self.valueSpinBox, 2, 1) controlsLayout.addWidget(invertedAppearance, 0, 2) controlsLayout.addWidget(invertedKeyBindings, 1, 2) controlsLayout.addWidget(orientationCombo, 3, 0, 1, 3) self.controlsGroup.setLayout(controlsLayout) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/spinboxes.py0000755000076500000240000002125512536324427021634 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() self.createSpinBoxes() self.createDateTimeEdits() self.createDoubleSpinBoxes() layout = QtGui.QHBoxLayout() layout.addWidget(self.spinBoxesGroup) layout.addWidget(self.editsGroup) layout.addWidget(self.doubleSpinBoxesGroup) self.setLayout(layout) self.setWindowTitle("Spin Boxes") def createSpinBoxes(self): self.spinBoxesGroup = QtGui.QGroupBox("Spinboxes") integerLabel = QtGui.QLabel("Enter a value between %d and %d:" % (-20, 20)) integerSpinBox = QtGui.QSpinBox() integerSpinBox.setRange(-20, 20) integerSpinBox.setSingleStep(1) integerSpinBox.setValue(0) zoomLabel = QtGui.QLabel("Enter a zoom value between %d and %d:" % (0, 1000)) zoomSpinBox = QtGui.QSpinBox() zoomSpinBox.setRange(0, 1000) zoomSpinBox.setSingleStep(10) zoomSpinBox.setSuffix('%') zoomSpinBox.setSpecialValueText("Automatic") zoomSpinBox.setValue(100) priceLabel = QtGui.QLabel("Enter a price between %d and %d:" % (0, 999)) priceSpinBox = QtGui.QSpinBox() priceSpinBox.setRange(0, 999) priceSpinBox.setSingleStep(1) priceSpinBox.setPrefix('$') priceSpinBox.setValue(99) spinBoxLayout = QtGui.QVBoxLayout() spinBoxLayout.addWidget(integerLabel) spinBoxLayout.addWidget(integerSpinBox) spinBoxLayout.addWidget(zoomLabel) spinBoxLayout.addWidget(zoomSpinBox) spinBoxLayout.addWidget(priceLabel) spinBoxLayout.addWidget(priceSpinBox) self.spinBoxesGroup.setLayout(spinBoxLayout) def createDateTimeEdits(self): self.editsGroup = QtGui.QGroupBox("Date and time spin boxes") dateLabel = QtGui.QLabel() dateEdit = QtGui.QDateEdit(QtCore.QDate.currentDate()) dateEdit.setDateRange(QtCore.QDate(2005, 1, 1), QtCore.QDate(2010, 12, 31)) dateLabel.setText("Appointment date (between %s and %s):" % (dateEdit.minimumDate().toString(QtCore.Qt.ISODate), dateEdit.maximumDate().toString(QtCore.Qt.ISODate))) timeLabel = QtGui.QLabel() timeEdit = QtGui.QTimeEdit(QtCore.QTime.currentTime()) timeEdit.setTimeRange(QtCore.QTime(9, 0, 0, 0), QtCore.QTime(16, 30, 0, 0)) timeLabel.setText("Appointment time (between %s and %s):" % (timeEdit.minimumTime().toString(QtCore.Qt.ISODate), timeEdit.maximumTime().toString(QtCore.Qt.ISODate))) self.meetingLabel = QtGui.QLabel() self.meetingEdit = QtGui.QDateTimeEdit(QtCore.QDateTime.currentDateTime()) formatLabel = QtGui.QLabel("Format string for the meeting date and time:") formatComboBox = QtGui.QComboBox() formatComboBox.addItem('yyyy-MM-dd hh:mm:ss (zzz \'ms\')') formatComboBox.addItem('hh:mm:ss MM/dd/yyyy') formatComboBox.addItem('hh:mm:ss dd/MM/yyyy') formatComboBox.addItem('hh:mm:ss') formatComboBox.addItem('hh:mm ap') formatComboBox.activated[str].connect(self.setFormatString) self.setFormatString(formatComboBox.currentText()) editsLayout = QtGui.QVBoxLayout() editsLayout.addWidget(dateLabel) editsLayout.addWidget(dateEdit) editsLayout.addWidget(timeLabel) editsLayout.addWidget(timeEdit) editsLayout.addWidget(self.meetingLabel) editsLayout.addWidget(self.meetingEdit) editsLayout.addWidget(formatLabel) editsLayout.addWidget(formatComboBox) self.editsGroup.setLayout(editsLayout) def setFormatString(self, formatString): self.meetingEdit.setDisplayFormat(formatString) if self.meetingEdit.displayedSections() & QtGui.QDateTimeEdit.DateSections_Mask: self.meetingEdit.setDateRange(QtCore.QDate(2004, 11, 1), QtCore.QDate(2005, 11, 30)) self.meetingLabel.setText("Meeting date (between %s and %s):" % (self.meetingEdit.minimumDate().toString(QtCore.Qt.ISODate), self.meetingEdit.maximumDate().toString(QtCore.Qt.ISODate))) else: self.meetingEdit.setTimeRange(QtCore.QTime(0, 7, 20, 0), QtCore.QTime(21, 0, 0, 0)) self.meetingLabel.setText("Meeting time (between %s and %s):" % (self.meetingEdit.minimumTime().toString(QtCore.Qt.ISODate), self.meetingEdit.maximumTime().toString(QtCore.Qt.ISODate))) def createDoubleSpinBoxes(self): self.doubleSpinBoxesGroup = QtGui.QGroupBox("Double precision spinboxes") precisionLabel = QtGui.QLabel("Number of decimal places to show:") precisionSpinBox = QtGui.QSpinBox() precisionSpinBox.setRange(0, 100) precisionSpinBox.setValue(2) doubleLabel = QtGui.QLabel("Enter a value between %d and %d:" % (-20, 20)) self.doubleSpinBox = QtGui.QDoubleSpinBox() self.doubleSpinBox.setRange(-20.0, 20.0) self.doubleSpinBox.setSingleStep(1.0) self.doubleSpinBox.setValue(0.0) scaleLabel = QtGui.QLabel("Enter a scale factor between %d and %d:" % (0, 1000)) self.scaleSpinBox = QtGui.QDoubleSpinBox() self.scaleSpinBox.setRange(0.0, 1000.0) self.scaleSpinBox.setSingleStep(10.0) self.scaleSpinBox.setSuffix('%') self.scaleSpinBox.setSpecialValueText("No scaling") self.scaleSpinBox.setValue(100.0) priceLabel = QtGui.QLabel("Enter a price between %d and %d:" % (0, 1000)) self.priceSpinBox = QtGui.QDoubleSpinBox() self.priceSpinBox.setRange(0.0, 1000.0) self.priceSpinBox.setSingleStep(1.0) self.priceSpinBox.setPrefix('$') self.priceSpinBox.setValue(99.99) precisionSpinBox.valueChanged.connect(self.changePrecision) spinBoxLayout = QtGui.QVBoxLayout() spinBoxLayout.addWidget(precisionLabel) spinBoxLayout.addWidget(precisionSpinBox) spinBoxLayout.addWidget(doubleLabel) spinBoxLayout.addWidget(self.doubleSpinBox) spinBoxLayout.addWidget(scaleLabel) spinBoxLayout.addWidget(self.scaleSpinBox) spinBoxLayout.addWidget(priceLabel) spinBoxLayout.addWidget(self.priceSpinBox) self.doubleSpinBoxesGroup.setLayout(spinBoxLayout) def changePrecision(self, decimals): self.doubleSpinBox.setDecimals(decimals) self.scaleSpinBox.setDecimals(decimals) self.priceSpinBox.setDecimals(decimals) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/styles.py0000755000076500000240000002176312536324427021151 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class WidgetGallery(QtGui.QDialog): def __init__(self, parent=None): super(WidgetGallery, self).__init__(parent) self.originalPalette = QtGui.QApplication.palette() styleComboBox = QtGui.QComboBox() styleComboBox.addItems(QtGui.QStyleFactory.keys()) styleLabel = QtGui.QLabel("&Style:") styleLabel.setBuddy(styleComboBox) self.useStylePaletteCheckBox = QtGui.QCheckBox("&Use style's standard palette") self.useStylePaletteCheckBox.setChecked(True) disableWidgetsCheckBox = QtGui.QCheckBox("&Disable widgets") self.createTopLeftGroupBox() self.createTopRightGroupBox() self.createBottomLeftTabWidget() self.createBottomRightGroupBox() self.createProgressBar() styleComboBox.activated[str].connect(self.changeStyle) self.useStylePaletteCheckBox.toggled.connect(self.changePalette) disableWidgetsCheckBox.toggled.connect(self.topLeftGroupBox.setDisabled) disableWidgetsCheckBox.toggled.connect(self.topRightGroupBox.setDisabled) disableWidgetsCheckBox.toggled.connect(self.bottomLeftTabWidget.setDisabled) disableWidgetsCheckBox.toggled.connect(self.bottomRightGroupBox.setDisabled) topLayout = QtGui.QHBoxLayout() topLayout.addWidget(styleLabel) topLayout.addWidget(styleComboBox) topLayout.addStretch(1) topLayout.addWidget(self.useStylePaletteCheckBox) topLayout.addWidget(disableWidgetsCheckBox) mainLayout = QtGui.QGridLayout() mainLayout.addLayout(topLayout, 0, 0, 1, 2) mainLayout.addWidget(self.topLeftGroupBox, 1, 0) mainLayout.addWidget(self.topRightGroupBox, 1, 1) mainLayout.addWidget(self.bottomLeftTabWidget, 2, 0) mainLayout.addWidget(self.bottomRightGroupBox, 2, 1) mainLayout.addWidget(self.progressBar, 3, 0, 1, 2) mainLayout.setRowStretch(1, 1) mainLayout.setRowStretch(2, 1) mainLayout.setColumnStretch(0, 1) mainLayout.setColumnStretch(1, 1) self.setLayout(mainLayout) self.setWindowTitle("Styles") self.changeStyle('Windows') def changeStyle(self, styleName): QtGui.QApplication.setStyle(QtGui.QStyleFactory.create(styleName)) self.changePalette() def changePalette(self): if (self.useStylePaletteCheckBox.isChecked()): QtGui.QApplication.setPalette(QtGui.QApplication.style().standardPalette()) else: QtGui.QApplication.setPalette(self.originalPalette) def advanceProgressBar(self): curVal = self.progressBar.value() maxVal = self.progressBar.maximum() self.progressBar.setValue(curVal + (maxVal - curVal) / 100) def createTopLeftGroupBox(self): self.topLeftGroupBox = QtGui.QGroupBox("Group 1") radioButton1 = QtGui.QRadioButton("Radio button 1") radioButton2 = QtGui.QRadioButton("Radio button 2") radioButton3 = QtGui.QRadioButton("Radio button 3") radioButton1.setChecked(True) checkBox = QtGui.QCheckBox("Tri-state check box") checkBox.setTristate(True) checkBox.setCheckState(QtCore.Qt.PartiallyChecked) layout = QtGui.QVBoxLayout() layout.addWidget(radioButton1) layout.addWidget(radioButton2) layout.addWidget(radioButton3) layout.addWidget(checkBox) layout.addStretch(1) self.topLeftGroupBox.setLayout(layout) def createTopRightGroupBox(self): self.topRightGroupBox = QtGui.QGroupBox("Group 2") defaultPushButton = QtGui.QPushButton("Default Push Button") defaultPushButton.setDefault(True) togglePushButton = QtGui.QPushButton("Toggle Push Button") togglePushButton.setCheckable(True) togglePushButton.setChecked(True) flatPushButton = QtGui.QPushButton("Flat Push Button") flatPushButton.setFlat(True) layout = QtGui.QVBoxLayout() layout.addWidget(defaultPushButton) layout.addWidget(togglePushButton) layout.addWidget(flatPushButton) layout.addStretch(1) self.topRightGroupBox.setLayout(layout) def createBottomLeftTabWidget(self): self.bottomLeftTabWidget = QtGui.QTabWidget() self.bottomLeftTabWidget.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Ignored) tab1 = QtGui.QWidget() tableWidget = QtGui.QTableWidget(10, 10) tab1hbox = QtGui.QHBoxLayout() tab1hbox.setMargin(5) tab1hbox.addWidget(tableWidget) tab1.setLayout(tab1hbox) tab2 = QtGui.QWidget() textEdit = QtGui.QTextEdit() textEdit.setPlainText("Twinkle, twinkle, little star,\n" "How I wonder what you are.\n" "Up above the world so high,\n" "Like a diamond in the sky.\n" "Twinkle, twinkle, little star,\n" "How I wonder what you are!\n") tab2hbox = QtGui.QHBoxLayout() tab2hbox.setMargin(5) tab2hbox.addWidget(textEdit) tab2.setLayout(tab2hbox) self.bottomLeftTabWidget.addTab(tab1, "&Table") self.bottomLeftTabWidget.addTab(tab2, "Text &Edit") def createBottomRightGroupBox(self): self.bottomRightGroupBox = QtGui.QGroupBox("Group 3") self.bottomRightGroupBox.setCheckable(True) self.bottomRightGroupBox.setChecked(True) lineEdit = QtGui.QLineEdit('s3cRe7') lineEdit.setEchoMode(QtGui.QLineEdit.Password) spinBox = QtGui.QSpinBox(self.bottomRightGroupBox) spinBox.setValue(50) dateTimeEdit = QtGui.QDateTimeEdit(self.bottomRightGroupBox) dateTimeEdit.setDateTime(QtCore.QDateTime.currentDateTime()) slider = QtGui.QSlider(QtCore.Qt.Horizontal, self.bottomRightGroupBox) slider.setValue(40) scrollBar = QtGui.QScrollBar(QtCore.Qt.Horizontal, self.bottomRightGroupBox) scrollBar.setValue(60) dial = QtGui.QDial(self.bottomRightGroupBox) dial.setValue(30) dial.setNotchesVisible(True) layout = QtGui.QGridLayout() layout.addWidget(lineEdit, 0, 0, 1, 2) layout.addWidget(spinBox, 1, 0, 1, 2) layout.addWidget(dateTimeEdit, 2, 0, 1, 2) layout.addWidget(slider, 3, 0) layout.addWidget(scrollBar, 4, 0) layout.addWidget(dial, 3, 1, 2, 1) layout.setRowStretch(5, 1) self.bottomRightGroupBox.setLayout(layout) def createProgressBar(self): self.progressBar = QtGui.QProgressBar() self.progressBar.setRange(0, 10000) self.progressBar.setValue(0) timer = QtCore.QTimer(self) timer.timeout.connect(self.advanceProgressBar) timer.start(1000) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) gallery = WidgetGallery() gallery.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/0000755000076500000240000000000012536324427021431 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/0000755000076500000240000000000012536324427022676 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/checkbox_checked.png0000644000076500000240000000040712536324427026641 0ustar philstaff00000000000000‰PNG  IHDR Øâ,÷sBITUìFtEXtSoftwarewww.inkscape.org›î<›IDATÓch¬hüV04þÇÁR÷&¿ìA†÷&Ã¥>tüo€Ásó¦Ü=µ‹Ôíé­?ÿo܉$umP¢óÕÚžïÿ§Ü{Ó—Z¿»ñÿŠ{_OúÒø¿÷ÅÇöp©ã‹›þ6þïêèøø¼÷’Ô‡ŽM;@të›Ó@6¢HýoXxªíËéÇ IAüõ¼‹¿p…Î0•ÞøÐ`e9IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/checkbox_checked_hover.png0000644000076500000240000000041212536324427030040 0ustar philstaff00000000000000‰PNG  IHDR Øâ,÷sBITUìFtEXtSoftwarewww.inkscape.org›î<žIDATÓc˜U1ëVXÁ0ë?.–z2ùm2|2.õ¹ã Þ›·óî…X¤žO_ÿsíÿÓ;‘¤žÎJt~\»åûÚÿ;ï½ï‚KÚ½öÿ±{?oÿ²öÿÖ_Û?wÀ¥n.^û(Ô±ñã»Þÿ HRŸ;ÎîXûíÿõ?žOÙˆ"õ¿áЩ _î.€8I â¯×½Xü…+4p†!Œà>dýIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/checkbox_checked_pressed.png0000644000076500000240000000065112536324427030367 0ustar philstaff00000000000000‰PNG  IHDR rëä|sBIT|dˆtEXtSoftwarewww.inkscape.org›î<;IDAT(‘c˜5kVÿ W0‰ÿ¤b¸¦µ«V-ݸnÝÔÍ6ôlÝ´©yûæÍU;·n-ܽm[ÆžíÛãvlÞ¡iÓ† €Šê÷ìØQz`×®ìÃ{÷&;p |×Ö­‘S&Mš¸yݺ@ MÛ6nlÛ»cGÉÝ»³€€ÂìÜÔÞÖv£±±ñ_oï M;¶l©jÈjˆj½zñbÒäI“n‚4ñ›¥‹y`hš?gÎŒ–––7ë×®]üþíÛ©‹-ºÕðuÞìÙ¾wïÖÆÐ4cÚ´… EÍÍÍ¿-Z³áÏÔÉ“nœ?/‹UÓþ]»b»:;@ÿ‡ú£ ¤§& `ðÁ]»Ü6=ièìè˜Ó€S0^"¡çºiÝ:×éS§&ƒÚÅí14‘š"HN{±=¾x WÐõIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/checkbox_unchecked.png0000644000076500000240000000023712536324427027205 0ustar philstaff00000000000000‰PNG  IHDR Øâ,÷sBITUìFtEXtSoftwarewww.inkscape.org›î<3IDATÓch¬hüV04þÇÁR÷&¿ìA†÷&Ã¥>tüo@†:†á œaõùTÍßIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/checkbox_unchecked_hover.png0000644000076500000240000000023712536324427030410 0ustar philstaff00000000000000‰PNG  IHDR Øâ,÷sBITUìFtEXtSoftwarewww.inkscape.org›î<3IDATÓc˜U1ëVXÁ0ë?.–z2ùm2|2.õ¹ã2üÜ1„¤ðø Whà C2XuEsÂIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/checkbox_unchecked_pressed.png0000644000076500000240000000050012536324427030723 0ustar philstaff00000000000000‰PNG  IHDR rëä|sBIT|dˆtEXtSoftwarewww.inkscape.org›î<ÒIDAT(Ï•’¿‚0ÆÛëÆÄ„Ä—Õw`râÁtèà  “þñŠP‹e€KŽ»¤ß¯×~ëº>3ÆJ¶>J¤OŶE…Sw*Š_Ð Éy¨œs¥µæ7)¯^ ,Ï»,{ !(_‡h}U]“6@H»¡í(œ>I"¾‹­ˆ¦ŒÐ9‡)D»b E€ïIrH  Z8™abûâI3!Ž=9gÿ=ÿAs#&À-ý¨©¾Ïµ1{º°5Ö:ÝÁGÿ~è.e³öIxè²õí}ÊÑbÇn.éˆIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/down_arrow.png0000644000076500000240000000025712536324427025571 0ustar philstaff00000000000000‰PNG  IHDR#“>SsBITUìFtEXtSoftwarewww.inkscape.org›î<CIDATcÈ[8ã: æÌbp’ëÚSsBITUìFtEXtSoftwarewww.inkscape.org›î<BIDAT×c¨_½æ Ö.aHVÚñèÄWÜt>\„á?Ck&ˆ³ïUÅ —qÁ†ã_ûrþ3€¹ÿRÕzgþ³³")îòET¥IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/frame.png0000644000076500000240000000037512536324427024503 0ustar philstaff00000000000000‰PNG  IHDRaakpF•pž(hmm}¶òAUwG÷`%¾øV¢9[À+èèèx¥±±Ñ¥5X ¾ÉÕ% ’†y[­V{&‹¿Û3vW² “Éô®N§ ööö®Ìy0–ø^’ ƒÁpÞh4FFGG™Vor÷ OK„¢×ë?4›ÍQ¿ßÏìöÎ¸Ùæ|šÛýNr ”ØGV«5Øààà®Zk´xƒ ×%B‘Ëå_Q¿ŒÏçc&“9dïñ–I„"“ÉZÆÆÆ…`\.×¶FoQ¦6.K ¤®®®P«Õ&&&R0Ô7ÃÃÃL«3 õöK$B©¯¯ÿ+±J0ããã)˜‘‘ÖÙÙ¹¬3uþ31»S$ t‰UH(JÁPߢ˜J­sôûb7$RRRrZîD",³`0ȸ¨ÔÌfË´ÉæªÈ{JMMÍ›}}}‹SSS.‚q»ÝI¥Z¯ -_ÉkJKKK1Ap.‚¡¾‚ô~{ï𼡳X,#±XŒE£Q699ÉöJÀëõ2‡Ã±¡Ò›ÆcÛEy ’¶Ø5™™™IÁPßì•Áx<¦T©]ÎÁЯy ‚U9 õúâñx fzz:Ã%@0Ô78Þ0¬`\k´ÿÃóÚÑ@(MMM¿ÌÏÏ3Êììlf?£ ö¡ÝÖ¶vóàØÜµ¼Áª<…É/--e`¨Ü“@?Óju!húnÞ€P Åí••F0 lnnŽ&‚¡ "H(ÚÔ d½(/@JKKÏ¡lB«««lyy9Ã%@0\Ã%@0Ø ‚ö¡N×èÍS¡h4šû›››lmm-³¸¸È¸3õ Y "XQª5Á™Ó©ªªº€•HÌúú:£Rã0ÙH€`œN'“+Úìnoä§S¡ eâM$lkk+“†Kdž§ÒiÁö&ö͉ƒPpYQ¹»»Ëvvv20Ô7†K€`¸ø³PÔ7ARà±úÒ‰ƒÔÖÖ~B“ç0ÛÛÛlccƒí•À£Ž5ZgJ¥2`¶»?QÚé1‰P’Éd F(‚ÉFC}C0Á¦L¡úw,ºùõ‰€Pp}TÇA8 õ ‡9Ѝozzz˜L®pv¹ý×OwÇWhòB ‡Mx¬9èÙF(²êZUú?C³É‹9)++{}Ø r˜²=ÖPß ª¬¹EfôŒN_ÊiXØ'ûÁEB£ •šJ¥ CÓ·š„ÒÕÕ¥9D(‚9Ž· ‰Æf¹l4¼rQt\€—rÑ„Çêš¼Íf[Æïqráu‡£½½ÝŽ•°AËÖ¶¶63^P™š››•÷îÝoªøëA¡¨ Eû5ü~Ù+üûÛ˜|—Vl°ÕX[(­ß"äòò"òò<ò\:ôÝc¢‚”——¿Cÿn6 ¬FuÅ{ *Ò§\EÞGžÉvlQAÐðç Ñ…GÁp9Á?/Gýß|‰¼Šœù¿c‹ BAIø36ŽÚ7ÀFÅ*Ÿ—Ž3®è °Š}?ô5o@J?#ï!w\ÑA `ÅÞ¦îîîáû2åcäi±ÆMûC`÷ÞD#»pvº%¸¼%ö¸¢ƒ S{ væ \¯~‘.ñ©Sì1s‚›•«XkuuõËôÿ< ñR˜ ˆœ€@ÁOÒó ÿŒÉ¿œ§M+W”ÿ r,±LÉÁ©IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/pushbutton.png0000644000076500000240000000102512536324427025615 0ustar philstaff00000000000000‰PNG  IHDR0Ö:ŽsBIT|dˆtEXtSoftwarewww.inkscape.org›î<§IDATHÇÕ—¿ŽRAÆ¿fÿh$\Ín®Æìjìl(hÄ팕‚!¾€¥7±£Ó'0ò$·pílp*-Hn@®˜s> XC|‚;_7ÝùåwÎÉCY–cÞcž¨ê-T7´ÖNUõ€7½^O\–e÷1_†k·Ûë4M—€÷>L&¯I>ðÂdY6h6›Ï:ÎçœpD²Ê ¥÷þ`0ÜðÜYk;­V µš5"!T<ççg«$IŠ<ÏŸ:kmrà\6›šªV¾ø«Ôë78›Ín; ª"šPUë¶BBˆ `7§fg€U¨Hløg€¢À>Ihˆ„X ¢!.èžl hˆ@ÿo¡È l—ÿU ‰t¨º” N7âÙBÅŸª:w¢úyúÝ?>­ES}>_.~/¯—eyéH¾ütqqyr39}pïîòÚñqeûH•&Ÿ/¿M}ä—~¿ÿÁì>4mcÌ{’#° !|F¯†Ãá/³ûw»Ý“¢(Òõz]«èàr<ÿôÞ¯¬H®þžÅMa¾vìIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/pushbutton_hover.png0000644000076500000240000000101512536324427027017 0ustar philstaff00000000000000‰PNG  IHDR0Ö:ŽsBIT|dˆtEXtSoftwarewww.inkscape.org›î<ŸIDATHÇÕWÍJÃ@ÜMÖZ*ýÁŸF…Z)ˆô L=©'Á^|”Jñ˜(æPz²—*^¥·ª‡ØTHLbò­ßÒØö²öËifgv)眴Z­¥ô×1¬’ä‚+Šò†oqÝl6#†äw‘øs>Ÿgº®š¦9 @†Ã¡Öëõ®ðàp<§(À¨T*§õz}ÄøsY¸’`x(bÉ0Œ-ÜŸ1JÉQ­V㌩*@"ùˆ$åòŽ_(\Û¶O/¤ÓéŸ(!ˆ$Èå²Ü²¬M6kD”ƒ4ü‘0!Xf…ýOÄ™ø P6S#>.‘±Ÿ¿ðƒÈ¡Sþ\dJ6þd^bŒ—9B’–x!A¤íÀ´Æ’E(v/rN†ªJU©"ä8®HÌ·pài4z?,mÄ_âf°¾Æ){2Éxž×gHúâÑ4ûÅâÆZuÏYÉdÂ䯍eSƒ—×,ò´Ûí{?htŒÒî«ð‹‘0Mó²Óé|ÒÅØ4u×uµ Ôd:Ày·ÛýÀ÷€££ÿ-j÷ę̂IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/pushbutton_pressed.png0000644000076500000240000000100112536324427027334 0ustar philstaff00000000000000‰PNG  IHDR0Ö:ŽsBIT|dˆtEXtSoftwarewww.inkscape.org›î<“IDATHÇÕ—ÍjZQ…×ö¼ÞÛúcH )8í¤ƒÚR:É(b¼@†9Й³ä JûT œ¡RÐJ¡ÄãÕ£¸W¹J}ƒ{ìùÚ¬õmÎ’°Ö¾‘Þ’|†âŠ%‘ŸJÞ¸n6›c­­ ÐO“Š©Ÿgq\ž×>ðo6«ý¾p à\¬µ_Ò¤òáýëÓqE’(²&Ó¿É×ïý€3àMýä8‹¢ˆ$EIAÁ8xþÔ?J“lž-Þ’O’¤2Þ(EU(M*¼›¹#J`£*E¯ÎTµd¶W!-KL7”@Hþ·Vw 0´r¯f×§ rœ®>L€ Ú&_!šóþ‡´Àÿ ̽÷‘ÀÊ{¨ê]ID¾ý™N%…@3s®œ-ér¹ì’ιÞ`0¨ÖjµyÇ›â‚KqΕG£ÑcUýÑjµ>Iþ¡y%"·$_Оõz½þÜét.Ûíödï×h4ªY–®V«¨  °Û펇áàIú{U:!䟠ŠIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/radiobutton_checked.png0000644000076500000240000000054312536324427027406 0ustar philstaff00000000000000‰PNG  IHDR E5N{PLTEÿÿÿ‹‹‹‹‹‹ŽŽŽ÷÷÷ôóóðððòññìììíííïííëèèÞÞÞÜÜÜãáááÝÝßÚÚÞÙÙÃÃÃÚÔÔÂÂÂÔÏÏÒËËÐÈÈ   ÉÂÂû»Á··Á¸¸Á··ŒŒŒÁ¸¸ŒŒŒÂ¸¸Â¹¹ÃººÕO})tRNS3‡Ÿ¦ÈÊËËÌÌÍÑÒÓÕØÚÚÛÝÞÞßâäæçìðòõö÷ùùúúúý>+ønIDAT[]ŽAÁ0·I3¢¥¡¤‚ Eñÿ:ô¢æ¾³#I¦lmi$I…Í]ã›.ÛB’íkêÞJ&WLTÙÈ%`µYÉ)ØÞ†ëBÔèáòþ<àGŧûkØCˆr ‡ónÚÍó¿¿–ßÎ/¿ Æ©£TøIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/radiobutton_checked_hover.png0000644000076500000240000000102412536324427030604 0ustar philstaff00000000000000‰PNG  IHDR rëä|sBIT|dˆtEXtSoftwarewww.inkscape.org›î<¦IDAT(S}RËNÂP4ò/ƘøWºÕ¸qåÒŸÐDkð¥”G€†(š¶*ÏL€XÑi\œ!bjb\œœžsgzÎ̽s“Édn‚ ,"¶qDõ;³^ôãfàbá„C![ŒFo²ÜŽK’szrrutxh|Ÿü¤AhI±Ø£šÏ¿™†1hÖëÝ+ËrË¥Ò8“Nß„‚Á20ëSËœ@BY×_\×µ=Ï3g1|~n\_^”lÖ±@ˆ¬—ÍX^Á’™ ±f ñ ç]ôu„8‡®ã|ññšÅsˆŸ–MTÜ1D·±_ƒ¸õ;÷€XÿÿíýD 2©NÞIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/radiobutton_unchecked.png0000644000076500000240000000036012536324427027746 0ustar philstaff00000000000000‰PNG  IHDR E5N¢(FÇO¸æVóÂÊ[åå=Ÿó~Ïñ?㇂ðIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/radiobutton_unchecked_hover.png0000644000076500000240000000075412536324427031160 0ustar philstaff00000000000000‰PNG  IHDR rëä|sBIT|dˆtEXtSoftwarewww.inkscape.org›î<~IDAT(S}’ËNÂ`…‰¼‹!&¾•n%nX¹ä%4Ñ,…R®ÊUÓäÖ&°h©¢[–x¦¡¤Ââ¤íßóufÎÔ·^¯}®† @a(u6Wzx}®Ù!ƒ‹Fu>‘eÒéIJŒ‡X¬u‰È›÷~/t~Ë0!™üJ¥E–-­×›µTÕlÔjËB>?Œ²lž 8¦ 4êõ/Ó4õÕj¥¸²‹þk³i‰Å¢°B~‚ÂÔU°LSó®>m»¯Ê²-ð|­^”Jòü­]€+CÓæ¨&s,{MP'›ÉLi†}Ðd<žVËåî=ÇeJHi@CïƒF†1“DñÐ¥3Ó#b¥”hè]À÷rÙë¶Ûf.Σ½“†S(VJ‰†þ t}^¯VU|\€÷h»'ÚÅJ)éýþü3 ÑU ðñxžÓ?w†Ã2b-? /Ij—D±†–r¨@À <[ÈûïÑ`¸ÁÀ9è ÷!œz}¿¢Nü¾%$ÎIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/radiobutton_unchecked_pressed.png0000644000076500000240000000105412536324427031474 0ustar philstaff00000000000000‰PNG  IHDR rëä|sBIT|dˆtEXtSoftwarewww.inkscape.org›î<¾IDAT(S]’;KA…g7›"L:16&ˆøÄÆBì ÑBÁBAí²[FÁX vÚh)úí;ƒ$&»$&ÙGvfi+d˜ÇÄIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/spinup.png0000644000076500000240000000043312536324427024722 0ustar philstaff00000000000000‰PNG  IHDR  G×\sBIT|dˆtEXtSoftwarewww.inkscape.org›î<­IDAT(ÏAJÄ@EßOþ¸ÈNtçqÔk¨xïlïá*‚+Ï#CFHºÛr!ÙOúAAý‚GQ¥a¾º®»áŸ[¿åˆmD¬ëzL)½ö}ÿæƒÝ==>$ÎC˲\NÓÇË8Ž4H*9sn¹mïïn—ƒýlASrf'aû•œöʨQk¡šÍ`@¥¤ 70u7C¨FŽŒP®xžçÓÕûôù½×O?×õ‹jf41íYIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/spinup_hover.png0000644000076500000240000000042512536324427026126 0ustar philstaff00000000000000‰PNG  IHDR  G×\sBIT|dˆtEXtSoftwarewww.inkscape.org›î<§IDAT(ÏA Â@ Eÿ³Ýy½†=@Áx‡v#xAp]מGÇÕ´˜¸Ù·}HŸÿ6MóŒ1nñÇIzéËì^Vð¾ïÓ0 纮/¢ª±ªÆÁœóªë§¶mÐÌ0¶TÕöû]VÕ£ n†)ÒEd)$höÅTB !¦;— HÚ±B`¦3 ˜y³Ã!$ésc§ôY_o÷×Tí;¥ÍÚf°ÉeóaIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/spinup_off.png0000644000076500000240000000042212536324427025552 0ustar philstaff00000000000000‰PNG  IHDR  G×\sBIT|dˆtEXtSoftwarewww.inkscape.org›î<¤IDAT(Ï!Â@EÿL&+†^ ÈžŠ p<ÇAt5X…BP0Mwg…„Ô°ÛçþO~^ò©mÛ‹sn‹ÿ˜™©ª¾TõÜ4ÍI˜y±¯kE”RZ…ŽÞ{“±ˆ(@«j×w×çApŠ 1&r£9æ˜i ‚û&!Œ2ÍÝoˆq`óÌÓëótŽÏasÌÍ4›A†¤ëÛ½{”n£êæ ›bU-ão¢IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/spinup_pressed.png0000644000076500000240000000042512536324427026450 0ustar philstaff00000000000000‰PNG  IHDR  G×\sBIT|dˆtEXtSoftwarewww.inkscape.org›î<§IDAT(Ï¥Ž1 ÂPDßd? v¢7lì,,=¹GHìïc¡‚•x ±I$É_ µ7ñÁÂlñ˜Qže‡~¿7á ü›Gzÿî^7Í£®›Ý:M÷ÁÌ«å¢â7TUõðr½m¶yN"¡èίgÁâ|6}šY@ItÚ¡Äͬø4·E’AÒE ÅHGYÝš'éÙ¨éâ:„¢,GÇÓùÞÖ-Šbü`Ò`ÅT¥»[IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/up_arrow.png0000644000076500000240000000030512536324427025240 0ustar philstaff00000000000000‰PNG  IHDR¾Dê9PLTEÿÿÿn]]n\\QDD #YJJ4,,^OO$G<u>|`„@Ín(IDATÁ‡ Ã0§eoøÿX$€˜³ _÷}˜ÙÚIÒû ··MäÇêIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/images/up_arrow_disabled.png0000644000076500000240000000025412536324427027072 0ustar philstaff00000000000000‰PNG  IHDR#“>SsBITUìFtEXtSoftwarewww.inkscape.org›î<@IDAT×cøÏ‚ë“•@4˜3%êÁ®U} Œ`nÁ•-v=ÚÕä† ^â<ÚufC’C]÷®0Ø8e'n=]IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/mainwindow.ui0000644000076500000240000002456512536324427024160 0ustar philstaff00000000000000 MainWindow 0 0 400 413 Style Sheet 9 6 QFrame::StyledPanel QFrame::Raised 9 6 Please read the LICENSE file before checking I accept the terms and &conditions Profession: Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing professionList &Name: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter nameCombo Check this if you are male &Male &Password: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter passwordEdit Specify country of origin Specify country of origin 6 Egypt France Germany India Italy Norway Pakistan &Age: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter ageSpinBox Country: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter countryCombo Gender: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter Specify your password Specify your password Password QLineEdit::Password Check this if you are female &Female Specify your age Specify your age 12 22 Specify your name true Qt::Horizontal 40 20 Qt::Horizontal 61 20 Qt::Horizontal QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok Select your profession Specify your name here Specify your name here 0 Developer Student Fisherman 0 0 400 29 &File &Help &Exit About Qt Edit &Style... About PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/qss/0000755000076500000240000000000012536324427022237 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/qss/coffee.qss0000644000076500000240000000430712536324427024222 0ustar philstaff00000000000000.QWidget { background-color: beige; } /* Nice Windows-XP-style password character. */ QLineEdit[echoMode="2"] { lineedit-password-character: 9679; } /* We provide a min-width and min-height for push buttons so that they look elegant regardless of the width of the text. */ QPushButton { background-color: palegoldenrod; border-width: 2px; border-color: darkkhaki; border-style: solid; border-radius: 5; padding: 3px; min-width: 9ex; min-height: 2.5ex; } QPushButton:hover { background-color: khaki; } /* Increase the padding, so the text is shifted when the button is pressed. */ QPushButton:pressed { padding-left: 5px; padding-top: 5px; background-color: #d0d67c; } QLabel, QAbstractButton { font: bold; } /* Mark mandatory fields with a brownish color. */ .mandatory { color: brown; } /* Bold text on status bar looks awful. */ QStatusBar QLabel { font: normal; } QStatusBar::item { border-width: 1; border-color: darkkhaki; border-style: solid; border-radius: 2; } QComboBox, QLineEdit, QSpinBox, QTextEdit, QListView { background-color: cornsilk; selection-color: #0a214c; selection-background-color: #C19A6B; } QListView { show-decoration-selected: 1; } QListView::item:hover { background-color: wheat; } /* We reserve 1 pixel space in padding. When we get the focus, we kill the padding and enlarge the border. This makes the items glow. */ QLineEdit, QFrame { border-width: 2px; padding: 1px; border-style: solid; border-color: darkkhaki; border-radius: 5px; } /* As mentioned above, eliminate the padding and increase the border. */ QLineEdit:focus, QFrame:focus { border-width: 3px; padding: 0px; } /* A QLabel is a QFrame ... */ QLabel { border: none; padding: 0; background: none; } /* A QToolTip is a QLabel ... */ QToolTip { border: 2px solid darkkhaki; padding: 5px; border-radius: 3px; opacity: 200; } /* Nice to have the background color change when hovered. */ QRadioButton:hover, QCheckBox:hover { background-color: wheat; } /* Force the dialog's buttons to follow the Windows guidelines. */ QDialogButtonBox { button-layout: 0; } PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/qss/default.qss0000644000076500000240000000002712536324427024412 0ustar philstaff00000000000000/* empty stylesheet */ PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/qss/pagefold.qss0000644000076500000240000001517112536324427024555 0ustar philstaff00000000000000/* Customize any plain widget that is a child of a QMainWindow. */ QMainWindow > .QWidget { background-color: gainsboro; background-image: url(:/images/pagefold.png); background-position: top right; background-repeat: no-repeat } /* Provide a padding for the layout inside the frame. The frame exists only to provide a padding for the top-right image, so we explicitly disable the border. */ #mainFrame { padding-right: 30px; border-style: none; border-image: none; /* since we set a border-image below */ } /* mainFrame won't have this border-image since we have explicitly set it to 'none' using a more specific selector. */ QFrame, QLineEdit, QComboBox[editable="true"], QSpinBox { border-image: url(:/images/frame.png) 4; border-width: 3; } QLabel { border: none; border-image: none; padding: 0; background: none; } /* Make text in message boxes selectable. */ QMessageBox { /* LinksAccessibleByMouse | TextSelectableByMouse */ messagebox-text-interaction-flags: 5; } /* Set the selection colors for all widgets. */ QWidget { selection-color: black; selection-background-color: Silver; color: black; } /* Make the entire row selected in item views. */ QAbstractItemView { show-decoration-selected: 1; } /* Nice WindowsXP-style password character for password line edits. */ QLineEdit[echoMode="2"] { lineedit-password-character: 9679; } /* Customize tooltips. */ QToolTip { background-color: rgb(200,200,255); border-color: darkslategray; border-width: 1px; border-style: solid; padding: 3px; font: bold; border-radius: 3px; opacity: 200; } /* Customize radio buttons. */ QRadioButton { spacing: 5px; } QRadioButton::indicator { width: 13px; height: 13px; } QRadioButton::indicator::unchecked { image: url(:/images/radiobutton_unchecked.png); } QRadioButton::indicator:unchecked:hover { image: url(:/images/radiobutton_unchecked_hover.png); } QRadioButton::indicator:unchecked:pressed { image: url(:/images/radiobutton_unchecked_pressed.png); } QRadioButton::indicator::checked { image: url(:/images/radiobutton_checked.png); } QRadioButton::indicator:checked:hover { image: url(:/images/radiobutton_checked_hover.png); } QRadioButton::indicator:checked:pressed { image: url(:/images/radiobutton_checked_pressed.png); } /* Customize arrows. */ *::down-arrow, *::menu-indicator { image: url(:/images/down_arrow.png); width: 7px; height: 7px; } *::down-arrow:disabled, *::down-arrow:off { image: url(:/images/down_arrow_disabled.png); } *::up-arrow { image: url(:/images/up_arrow.png); width: 7px; height: 7px; } *::up-arrow:disabled, *::up-arrow:off { image: url(:/images/up_arrow_disabled.png); } /* Customize push buttons and comboboxes. Our read-only combobox is very similar to a push button, so they share the same border image. */ QPushButton { min-width: 4em; } QPushButton, QComboBox[editable="false"], QComboBox[editable="true"]::drop-down { border-image: url(:/images/pushbutton.png) 5; border-width: 5; } QPushButton:hover, QComboBox[editable="false"]:hover, QComboBox[editable="true"]::drop-down:hover, QMenuBar::item:hover { border-image: url(:/images/pushbutton_hover.png) 5; border-width: 5; } QPushButton:pressed, QComboBox[editable="false"]:on, QComboBox[editable="true"]::drop-down:on, QMenuBar::item:on { border-image: url(:/images/pushbutton_pressed.png) 5; border-width: 5; } /* Customize read-only comboboxes. */ QComboBox[editable="false"] { padding-left: 3px; padding-right: 20px; /* space for the arrow */ } QComboBox[editable="false"]::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 15px; border-left-style: solid; border-left-color: darkgray; border-left-width: 1px; } QComboBox[editable="false"]::down-arrow { subcontrol-origin: content; subcontrol-position: center; position: relative; left: 1px; /* 1 pixel dropdown border */ } /* The combobox arrow is on when the popup is open. */ QComboBox[editable="false"]::down-arrow:on { position: relative; top: 1px; left: 2px; } /* Customize editable comboboxes. */ QComboBox[editable="true"] { padding-right: 16px; } QComboBox[editable="true"]::drop-down { subcontrol-origin: border; subcontrol-position: top right; width: 13px; position: absolute; top: 2px; bottom: 2px; right: 2px; } QComboBox[editable="true"]::drop-down, QComboBox[editable="true"]::drop-down:hover, QComboBox[editable="true"]::drop-down:on { border-width: 0px; border-left-width: 3px; /* we need only left and center part */ } /* Shift the arrow when it's open. */ QComboBox[editable="true"]::down-arrow:on { position: relative; top: 1px; left: 1px; } /* Customize check boxes. */ QCheckBox { spacing: 5px; } QCheckBox::indicator { width: 13px; height: 13px; } QCheckBox::indicator:unchecked { image: url(:/images/checkbox_unchecked.png); } QCheckBox::indicator:unchecked:hover { image: url(:/images/checkbox_unchecked_hover.png); } QCheckBox::indicator:unchecked:pressed { image: url(:/images/checkbox_unchecked_pressed.png); } QCheckBox::indicator:checked { image: url(:/images/checkbox_checked.png); } QCheckBox::indicator:checked:hover { image: url(:/images/checkbox_checked_hover.png); } QCheckBox::indicator:checked:pressed { image: url(:/images/checkbox_checked_pressed.png); } /* Customize the size grip. */ QSizeGrip { image: url(:/images/sizegrip.png); width: 16px; height: 16px; } /* Customize the menu bar. */ QMenuBar { border-image: none; border-style: none; border-width: 1px; border-bottom-style: solid; border-bottom-color: darkslategray; padding: 2px; } /* Customize spin boxes. */ QSpinBox { padding-right: 15px; } QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width: 16px; /* 16 + 2*1px border-width = 15px padding + 3px parent border */ border-image: url(:/images/spinup.png) 1; border-width: 1px; } QSpinBox::up-button:hover { border-image: url(:/images/spinup_hover.png) 1; } QSpinBox::up-button:pressed { border-image: url(:/images/spinup_pressed.png) 1; } QSpinBox::down-button { subcontrol-origin: border; subcontrol-position: bottom right; width: 16px; border-image: url(:/images/spindown.png) 1; border-width: 1px; border-top-width: 0; } QSpinBox::down-button:hover { border-image: url(:/images/spindown_hover.png) 1; } QSpinBox::down-button:pressed { border-image: url(:/images/spindown_pressed.png) 1; } PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/stylesheet.py0000755000076500000240000000703712536324427024206 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QString', 2) from PyQt4 import QtCore, QtGui try: import stylesheet_rc3 except ImportError: import stylesheet_rc2 from stylesheeteditor import StyleSheetEditor from ui_mainwindow import Ui_MainWindow class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.nameLabel.setProperty('class', 'mandatory QLabel') self.styleSheetEditor = StyleSheetEditor(self) self.statusBar().addWidget(QtGui.QLabel("Ready")) self.ui.exitAction.triggered.connect(QtGui.qApp.quit) self.ui.aboutQtAction.triggered.connect(QtGui.qApp.aboutQt) def on_editStyleAction_triggered(self): self.styleSheetEditor.show() self.styleSheetEditor.activateWindow() def on_aboutAction_triggered(self): QtGui.QMessageBox.about(self, "About Style sheet", "The Style Sheet example shows how widgets can be " "styled using " "Qt " "Style Sheets. Click File|Edit Style Sheet to pop " "up the style editor, and either choose an existing style " "sheet or design your own.") if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/stylesheet.qrc0000644000076500000240000000274312536324427024337 0ustar philstaff00000000000000 qss/coffee.qss qss/default.qss qss/pagefold.qss images/pagefold.png images/frame.png images/radiobutton_unchecked.png images/radiobutton_unchecked_pressed.png images/radiobutton_unchecked_hover.png images/radiobutton_checked.png images/radiobutton_checked_pressed.png images/radiobutton_checked_hover.png images/pushbutton.png images/pushbutton_hover.png images/pushbutton_pressed.png images/checkbox_unchecked.png images/checkbox_unchecked_pressed.png images/checkbox_unchecked_hover.png images/checkbox_checked.png images/checkbox_checked_pressed.png images/checkbox_checked_hover.png images/down_arrow.png images/down_arrow_disabled.png images/up_arrow.png images/up_arrow_disabled.png images/sizegrip.png images/spinup.png images/spinup_off.png images/spinup_hover.png images/spinup_pressed.png images/spindown.png images/spindown_off.png images/spindown_hover.png images/spindown_pressed.png PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/stylesheet_rc2.py0000644000076500000240000021151112536324427024743 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:51:48 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x08\xc7\ \x2e\ \x51\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\x20\x20\x62\x61\x63\ \x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x62\ \x65\x69\x67\x65\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x4e\x69\x63\x65\ \x20\x57\x69\x6e\x64\x6f\x77\x73\x2d\x58\x50\x2d\x73\x74\x79\x6c\ \x65\x20\x70\x61\x73\x73\x77\x6f\x72\x64\x20\x63\x68\x61\x72\x61\ \x63\x74\x65\x72\x2e\x20\x2a\x2f\x0a\x51\x4c\x69\x6e\x65\x45\x64\ \x69\x74\x5b\x65\x63\x68\x6f\x4d\x6f\x64\x65\x3d\x22\x32\x22\x5d\ \x20\x7b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x65\x64\x69\x74\x2d\ \x70\x61\x73\x73\x77\x6f\x72\x64\x2d\x63\x68\x61\x72\x61\x63\x74\ \x65\x72\x3a\x20\x39\x36\x37\x39\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\ \x57\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x20\x61\x20\x6d\x69\x6e\ \x2d\x77\x69\x64\x74\x68\x20\x61\x6e\x64\x20\x6d\x69\x6e\x2d\x68\ \x65\x69\x67\x68\x74\x20\x66\x6f\x72\x20\x70\x75\x73\x68\x20\x62\ \x75\x74\x74\x6f\x6e\x73\x0a\x20\x20\x20\x73\x6f\x20\x74\x68\x61\ \x74\x20\x74\x68\x65\x79\x20\x6c\x6f\x6f\x6b\x20\x65\x6c\x65\x67\ \x61\x6e\x74\x20\x72\x65\x67\x61\x72\x64\x6c\x65\x73\x73\x20\x6f\ \x66\x20\x74\x68\x65\x20\x77\x69\x64\x74\x68\x20\x6f\x66\x20\x74\ \x68\x65\x20\x74\x65\x78\x74\x2e\x20\x2a\x2f\x0a\x51\x50\x75\x73\ \x68\x42\x75\x74\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\ \x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\ \x70\x61\x6c\x65\x67\x6f\x6c\x64\x65\x6e\x72\x6f\x64\x3b\x0a\x20\ \x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\ \x20\x32\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\ \x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x64\x61\x72\x6b\x6b\x68\x61\x6b\ \x69\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\ \x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\ \x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\ \x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x33\ \x70\x78\x3b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\x77\x69\x64\x74\ \x68\x3a\x20\x39\x65\x78\x3b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\ \x68\x65\x69\x67\x68\x74\x3a\x20\x32\x2e\x35\x65\x78\x3b\x0a\x7d\ \x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x3a\x68\x6f\ \x76\x65\x72\x20\x7b\x0a\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\ \x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x6b\x68\x61\x6b\x69\ \x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x49\x6e\x63\x72\x65\x61\x73\x65\ \x20\x74\x68\x65\x20\x70\x61\x64\x64\x69\x6e\x67\x2c\x20\x73\x6f\ \x20\x74\x68\x65\x20\x74\x65\x78\x74\x20\x69\x73\x20\x73\x68\x69\ \x66\x74\x65\x64\x20\x77\x68\x65\x6e\x20\x74\x68\x65\x20\x62\x75\ \x74\x74\x6f\x6e\x20\x69\x73\x0a\x20\x20\x20\x70\x72\x65\x73\x73\ \x65\x64\x2e\x20\x2a\x2f\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\ \x6f\x6e\x3a\x70\x72\x65\x73\x73\x65\x64\x20\x7b\x0a\x20\x20\x20\ \x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x6c\x65\x66\x74\x3a\x20\x35\ \x70\x78\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\ \x74\x6f\x70\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x61\ \x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\ \x23\x64\x30\x64\x36\x37\x63\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\ \x65\x6c\x2c\x20\x51\x41\x62\x73\x74\x72\x61\x63\x74\x42\x75\x74\ \x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x3a\x20\ \x62\x6f\x6c\x64\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x4d\x61\x72\x6b\ \x20\x6d\x61\x6e\x64\x61\x74\x6f\x72\x79\x20\x66\x69\x65\x6c\x64\ \x73\x20\x77\x69\x74\x68\x20\x61\x20\x62\x72\x6f\x77\x6e\x69\x73\ \x68\x20\x63\x6f\x6c\x6f\x72\x2e\x20\x2a\x2f\x0a\x2e\x6d\x61\x6e\ \x64\x61\x74\x6f\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\ \x6f\x72\x3a\x20\x62\x72\x6f\x77\x6e\x3b\x0a\x7d\x0a\x0a\x2f\x2a\ \x20\x42\x6f\x6c\x64\x20\x74\x65\x78\x74\x20\x6f\x6e\x20\x73\x74\ \x61\x74\x75\x73\x20\x62\x61\x72\x20\x6c\x6f\x6f\x6b\x73\x20\x61\ \x77\x66\x75\x6c\x2e\x20\x2a\x2f\x0a\x51\x53\x74\x61\x74\x75\x73\ \x42\x61\x72\x20\x51\x4c\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\ \x66\x6f\x6e\x74\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x3b\x0a\x7d\x0a\ \x0a\x51\x53\x74\x61\x74\x75\x73\x42\x61\x72\x3a\x3a\x69\x74\x65\ \x6d\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\ \x69\x64\x74\x68\x3a\x20\x31\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\ \x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x64\x61\x72\x6b\x6b\ \x68\x61\x6b\x69\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\ \x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\ \x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\ \x3a\x20\x32\x3b\x0a\x7d\x0a\x0a\x51\x43\x6f\x6d\x62\x6f\x42\x6f\ \x78\x2c\x20\x51\x4c\x69\x6e\x65\x45\x64\x69\x74\x2c\x20\x51\x53\ \x70\x69\x6e\x42\x6f\x78\x2c\x20\x51\x54\x65\x78\x74\x45\x64\x69\ \x74\x2c\x20\x51\x4c\x69\x73\x74\x56\x69\x65\x77\x20\x7b\x0a\x20\ \x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\ \x6c\x6f\x72\x3a\x20\x63\x6f\x72\x6e\x73\x69\x6c\x6b\x3b\x0a\x20\ \x20\x20\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x63\x6f\x6c\ \x6f\x72\x3a\x20\x23\x30\x61\x32\x31\x34\x63\x3b\x20\x0a\x20\x20\ \x20\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x62\x61\x63\x6b\ \x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x43\ \x31\x39\x41\x36\x42\x3b\x0a\x7d\x0a\x0a\x51\x4c\x69\x73\x74\x56\ \x69\x65\x77\x20\x7b\x0a\x20\x20\x20\x20\x73\x68\x6f\x77\x2d\x64\ \x65\x63\x6f\x72\x61\x74\x69\x6f\x6e\x2d\x73\x65\x6c\x65\x63\x74\ \x65\x64\x3a\x20\x31\x3b\x0a\x7d\x0a\x0a\x51\x4c\x69\x73\x74\x56\ \x69\x65\x77\x3a\x3a\x69\x74\x65\x6d\x3a\x68\x6f\x76\x65\x72\x20\ \x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ \x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x65\x61\x74\x3b\x0a\x7d\ \x0a\x0a\x2f\x2a\x20\x57\x65\x20\x72\x65\x73\x65\x72\x76\x65\x20\ \x31\x20\x70\x69\x78\x65\x6c\x20\x73\x70\x61\x63\x65\x20\x69\x6e\ \x20\x70\x61\x64\x64\x69\x6e\x67\x2e\x20\x57\x68\x65\x6e\x20\x77\ \x65\x20\x67\x65\x74\x20\x74\x68\x65\x20\x66\x6f\x63\x75\x73\x2c\ \x0a\x20\x20\x20\x77\x65\x20\x6b\x69\x6c\x6c\x20\x74\x68\x65\x20\ \x70\x61\x64\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x65\x6e\x6c\x61\ \x72\x67\x65\x20\x74\x68\x65\x20\x62\x6f\x72\x64\x65\x72\x2e\x20\ \x54\x68\x69\x73\x20\x6d\x61\x6b\x65\x73\x20\x74\x68\x65\x20\x69\ \x74\x65\x6d\x73\x0a\x20\x20\x20\x67\x6c\x6f\x77\x2e\x20\x2a\x2f\ \x0a\x51\x4c\x69\x6e\x65\x45\x64\x69\x74\x2c\x20\x51\x46\x72\x61\ \x6d\x65\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\ \x77\x69\x64\x74\x68\x3a\x20\x32\x70\x78\x3b\x0a\x20\x20\x20\x20\ \x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\ \x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\ \x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\ \x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x64\x61\x72\x6b\x6b\x68\x61\ \x6b\x69\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\ \x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x2f\ \x2a\x20\x41\x73\x20\x6d\x65\x6e\x74\x69\x6f\x6e\x65\x64\x20\x61\ \x62\x6f\x76\x65\x2c\x20\x65\x6c\x69\x6d\x69\x6e\x61\x74\x65\x20\ \x74\x68\x65\x20\x70\x61\x64\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\ \x69\x6e\x63\x72\x65\x61\x73\x65\x20\x74\x68\x65\x20\x62\x6f\x72\ \x64\x65\x72\x2e\x20\x2a\x2f\x0a\x51\x4c\x69\x6e\x65\x45\x64\x69\ \x74\x3a\x66\x6f\x63\x75\x73\x2c\x20\x51\x46\x72\x61\x6d\x65\x3a\ \x66\x6f\x63\x75\x73\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\ \x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x33\x70\x78\x3b\x0a\x20\ \x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x3b\ \x0a\x7d\x0a\x0a\x2f\x2a\x20\x41\x20\x51\x4c\x61\x62\x65\x6c\x20\ \x69\x73\x20\x61\x20\x51\x46\x72\x61\x6d\x65\x20\x2e\x2e\x2e\x20\ \x2a\x2f\x0a\x51\x4c\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\x20\ \x62\x6f\x72\x64\x65\x72\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\ \x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x3b\x0a\x20\x20\ \x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x6e\x6f\ \x6e\x65\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x41\x20\x51\x54\x6f\x6f\ \x6c\x54\x69\x70\x20\x69\x73\x20\x61\x20\x51\x4c\x61\x62\x65\x6c\ \x20\x2e\x2e\x2e\x20\x2a\x2f\x0a\x51\x54\x6f\x6f\x6c\x54\x69\x70\ \x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x32\ \x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x64\x61\x72\x6b\x6b\x68\x61\ \x6b\x69\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\ \x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\ \x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x33\x70\x78\x3b\x0a\x20\x20\ \x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x32\x30\x30\x3b\x0a\ \x7d\x0a\x0a\x2f\x2a\x20\x4e\x69\x63\x65\x20\x74\x6f\x20\x68\x61\ \x76\x65\x20\x74\x68\x65\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\ \x64\x20\x63\x6f\x6c\x6f\x72\x20\x63\x68\x61\x6e\x67\x65\x20\x77\ \x68\x65\x6e\x20\x68\x6f\x76\x65\x72\x65\x64\x2e\x20\x2a\x2f\x0a\ \x51\x52\x61\x64\x69\x6f\x42\x75\x74\x74\x6f\x6e\x3a\x68\x6f\x76\ \x65\x72\x2c\x20\x51\x43\x68\x65\x63\x6b\x42\x6f\x78\x3a\x68\x6f\ \x76\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\ \x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x65\x61\ \x74\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x46\x6f\x72\x63\x65\x20\x74\ \x68\x65\x20\x64\x69\x61\x6c\x6f\x67\x27\x73\x20\x62\x75\x74\x74\ \x6f\x6e\x73\x20\x74\x6f\x20\x66\x6f\x6c\x6c\x6f\x77\x20\x74\x68\ \x65\x20\x57\x69\x6e\x64\x6f\x77\x73\x20\x67\x75\x69\x64\x65\x6c\ \x69\x6e\x65\x73\x2e\x20\x2a\x2f\x0a\x51\x44\x69\x61\x6c\x6f\x67\ \x42\x75\x74\x74\x6f\x6e\x42\x6f\x78\x20\x7b\x0a\x20\x20\x20\x20\ \x62\x75\x74\x74\x6f\x6e\x2d\x6c\x61\x79\x6f\x75\x74\x3a\x20\x30\ \x3b\x0a\x7d\x0a\x0a\x0a\ \x00\x00\x00\x17\ \x2f\ \x2a\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x79\x6c\x65\x73\x68\x65\ \x65\x74\x20\x2a\x2f\x0a\ \x00\x00\x06\xb0\ \x00\ \x00\x1a\x79\x78\x9c\xa5\x59\x6d\x6f\xdb\x36\x10\xfe\xee\x5f\x71\ \xe8\x3e\xa4\x4d\xe3\xbc\xb5\x4e\x51\x05\x1d\xd0\x14\x5b\x31\xa0\ \xd9\xea\x25\x58\x07\x14\x45\x40\x49\xb4\x4d\x44\x16\x05\x92\x8a\ \xe3\x6d\xfd\xef\xbb\xe3\x8b\x2c\x59\x92\x5f\xd2\x02\x2d\x2c\xea\ \x78\x2f\xcf\x3d\x3c\xde\xa9\x27\x87\xf0\xa1\xd4\x46\xce\xc5\x3f\ \x1c\x58\xbe\x84\x22\x63\x22\x87\x85\x48\xa7\xdc\x80\x99\x31\x03\ \x42\x03\x83\x64\x26\xb2\x14\xe4\x04\x7f\x8e\xaf\x51\xe2\x8b\xc8\ \x53\xb9\x38\x86\xc3\x93\x41\xed\x19\x7e\x86\xe3\xf1\x17\xb7\xf7\ \xdf\x01\xe0\x9f\x98\x25\xf7\x53\x25\xcb\x3c\x1d\x26\x32\x93\x2a\ \x82\x29\x4a\xeb\x58\x2a\x79\xb9\x2e\x20\xe6\x6c\xca\x23\x28\x55\ \xf6\x3c\x3a\xb1\x0f\xfa\xa4\xc0\x7f\x27\x32\x4b\x8f\x8b\x7c\xfa\ \xa2\xb5\xa3\x90\x5a\x18\x21\xf3\x08\x8c\x2c\x40\x89\xe9\xcc\xb4\ \x64\x14\x2f\x38\x33\x11\xe4\xd2\xff\x1c\x7c\x1f\x0c\x4e\x0e\xe1\ \xb3\x92\x0f\x22\xc5\xa0\xa1\x60\x69\x2a\xf2\x29\x4c\xa4\xc2\x88\ \x39\x64\x6c\x29\x4b\x8c\x3b\xd7\xf4\x9e\x56\x26\x8a\xcd\xf9\x31\ \xdc\x86\x9f\x64\x83\x3f\x0a\x6d\x34\xc8\x3c\x5b\xa2\x75\x28\x7a\ \xd5\xa1\x6b\x43\xeb\x1a\xd8\x98\x8e\x40\x4b\x58\x78\x15\x45\x26\ \x12\x61\x50\x43\x2a\x34\x8b\x33\x67\x0d\xc1\x49\xb9\xb2\xd8\xfe\ \x34\x47\xb4\x7e\x25\x93\x1e\x4f\xaf\xdc\x29\x8c\xe0\xd5\x69\xf1\ \xe8\x23\xb6\x9b\x86\xda\x2c\x33\x4e\xc1\xe6\xbc\xb1\xee\xb1\xb5\ \xeb\x80\xd1\x6b\x91\x27\x1c\xdd\x00\x8d\xa9\x62\x0d\x29\x88\x79\ \x86\xa9\x44\xeb\x0e\xa8\x95\x0b\x0b\x99\x1f\x18\x98\xb1\x07\xf2\ \x13\x69\xd1\xd8\x55\x69\xa4\xf7\x6b\xd1\x91\x11\x61\x08\xa6\x03\ \xf2\xe0\x00\x4a\x4d\x08\x31\x98\x4b\x85\x3b\x0b\x9e\x88\x89\x48\ \x50\x2c\xe3\x89\x91\x2e\xf4\xb1\xb5\x79\x04\xe3\x4f\x22\xe7\xbf\ \xa4\xc2\xe0\xcf\x0f\x72\x1e\xcb\x2b\xf9\xf8\x95\xe3\x33\xe1\xf5\ \xee\x99\x51\x25\x7f\xf6\x0d\xdf\xdd\x14\x22\xc7\x57\x81\x77\x8d\ \xb0\x1b\x94\x72\xc9\x24\x3e\xc1\xeb\x06\x46\x48\x7a\x33\x43\x4c\ \x2f\x29\xf0\xf1\x27\x86\x38\x34\xb4\x6d\x81\xb5\x9e\x9f\x08\x4e\ \xd7\x89\x18\xa4\x1c\xa8\xd7\xec\x1e\x41\xe4\x8f\x44\x33\x98\x73\ \xad\x2d\xf0\xf2\x91\x6b\x8f\x02\x45\xe7\x8f\x97\x7b\xbb\x8a\x0d\ \xb7\x23\x26\xf7\xfa\x7d\x92\xe0\x2b\x81\x82\x57\xcb\x6b\x59\x6a\ \x0e\xff\xc1\x2d\xaa\xbc\xa9\x14\x84\x75\x54\x43\x1b\xbd\x1d\x34\ \x33\x24\xd3\x43\x91\x1b\xae\x58\x42\x27\x68\x38\xc9\xd8\x54\x47\ \x30\x22\x07\x51\x94\x7c\xbc\xb1\x15\x80\x7b\x87\x50\x08\xec\x11\ \xd6\x96\xd9\x2c\xcb\x7c\x95\xd0\xce\xcd\xc6\xb1\xaf\xb6\x84\x53\ \x1f\x67\x08\xc4\xe5\xda\xbb\x76\x71\xb8\x11\xd9\x03\x57\x4e\xae\ \xb9\xb3\x0e\x1b\xfa\xc4\x73\x23\x90\x3a\x0a\x89\xea\xf4\xf1\x94\ \x90\x14\x86\xcf\xe1\x41\xf0\x85\x77\xea\x7d\xac\x0d\x45\xf8\x1b\ \xae\xff\x85\xcb\xc1\xbd\x99\x5c\x0c\x53\x9e\x48\xc5\xac\x23\x41\ \x45\x04\x67\xc1\xd2\xef\x02\xd9\xec\xaa\x9a\xfe\xfb\xb3\x3b\x57\ \x98\x5d\xad\x17\x98\x79\x2c\x87\x8c\xd4\x72\x65\xb1\xa8\x96\x33\ \xa4\x2a\x10\x37\xbd\xf9\x40\xdd\xaf\x3c\x99\xc9\x6b\x99\x22\x5f\ \xcf\x9f\x7d\xf3\x4e\x90\x30\xc9\x0e\xc3\xf6\x61\xa5\x35\x82\xb7\ \x17\x6f\xde\x06\x57\x56\x05\xda\x48\x99\x19\x51\x78\xed\xb7\xf8\ \x74\x2b\x8a\xde\x4a\xab\xa6\xf1\xf3\xf3\xd3\xd3\x23\xfb\x77\x34\ \x7a\xd1\x60\xae\x97\x49\x99\xba\xd7\x19\x33\x7c\xaa\xd8\xb2\xeb\ \x34\x9c\x75\x17\x18\x2d\x33\x91\xae\x51\xfe\x55\x10\x9d\xc8\x1c\ \x6b\x53\x8c\x65\xbb\xb1\x55\xb1\x54\x94\xba\x26\x27\x0b\x86\xf5\ \x61\x19\x01\x7a\xd8\x0e\x96\xc4\x25\xc4\xa5\x31\x32\x77\x11\x0f\ \xc6\x7f\xd2\xda\x95\x5d\x0a\xa9\x24\x1d\x64\x7d\x44\x5a\xbf\x37\ \x65\xa2\x08\x13\x28\x12\x86\x35\xc5\x8b\x87\xa8\x2a\x1f\x66\xdc\ \x55\x52\xb7\xd2\xbf\x3f\x8a\xca\x3c\x99\xf1\xe4\x1e\x89\xe6\x54\ \x75\xd5\x16\xeb\xb3\x73\xf9\xae\x92\xf7\x77\xd7\x06\xdd\x95\x68\ \x34\x93\xc8\xff\x7d\x0d\xdc\xd9\x5d\xfb\x98\x29\x14\x96\x82\xfd\ \x23\xb9\xf3\xfb\xb6\x9b\x8a\xf6\xc3\x6a\x67\xa4\x9e\x82\xd3\x9e\ \x28\x3d\x0d\xa3\x5e\x84\x1a\x9c\x66\x0a\x2b\x96\x27\xf3\x61\x14\ \x61\x71\xc9\x87\x76\xed\x08\xf0\x71\xce\xf3\x72\xb8\xce\xd8\x2e\ \xc3\xb4\xef\xce\xee\xab\xf5\x45\x9e\xda\x6f\xd6\x99\xfd\xc6\x13\ \xbb\x61\x2f\xf2\x0d\x47\x6a\x0d\xd7\xd6\xe5\x64\xe2\x0c\x6f\xb6\ \x7b\x17\xf6\xaf\x02\x45\x3d\x65\xe1\xb4\x6c\x70\xbd\x2c\x9e\xe2\ \x78\x50\xdc\x74\xbb\x5a\xdd\xe8\x74\xb0\xd8\xe1\x72\x23\x37\x45\ \xa9\x67\xa1\xdc\x60\x2b\x8c\x45\x9e\xba\x0d\x7b\x27\x1f\xc3\x1f\ \xa5\x02\xc5\x59\x3a\xb4\xfd\x5e\x78\x63\x4d\x6a\x40\x5a\x61\x8f\ \x23\xe6\x22\x63\x8a\x9a\x1c\x56\xd7\x65\xfb\x3d\xbc\xb2\x50\x02\ \xcb\xbb\xbb\xbd\x34\x75\x53\xae\x2a\x3a\x97\x7d\x79\xfb\x8c\xdb\ \x1a\xd5\x6d\x2e\xf2\x50\x88\x5f\xf3\xb9\xa3\xed\x4a\xa8\xbb\x23\ \x9a\xb0\x4c\x53\x4b\x34\xe8\x6f\x97\x30\xe3\x0a\xbb\x52\x4a\xe7\ \xf6\x7e\x89\x62\x71\xa1\xb8\xa6\x69\xd4\x75\x4d\x8c\xd6\x7d\x73\ \x27\x74\xa3\x87\x5e\x64\x37\x3f\x2b\x7d\xd7\x78\x48\xae\x18\x56\ \x18\xba\xeb\x1b\x75\x60\xa7\x18\x6a\x55\x60\xd7\x48\xfc\x91\xde\ \x1c\x0b\x66\x63\xc7\x40\x6c\xde\x9a\x51\xc8\xbd\xd2\xd0\xa8\x31\ \x9b\x82\x68\x5e\xa7\x2d\xf6\xf2\x70\xab\xf6\x87\xb5\x36\x75\x64\ \x7c\x62\x6a\xf7\xf7\xda\x30\x72\x4e\xc3\x88\x1d\x2e\xf0\x4e\xe6\ \xd5\xfc\xe3\x2a\x82\x1b\x27\x36\x21\xd8\xe2\xa4\x2e\xe3\x04\x3b\ \x09\x25\xb3\xa1\x44\x13\x02\xc7\x3c\x6f\xf1\x72\xfd\x7d\xef\x20\ \x18\xee\xfb\xd1\x5a\x1b\x43\x91\x74\xf4\x32\xf5\xb7\xb5\x0e\xa9\ \xd5\x1c\x59\x81\x7a\x87\xb4\x35\xb6\xaa\xc2\xf6\x07\x47\xcf\xd8\ \xd7\x6e\x08\x2e\xe1\xd4\xb1\x7b\xf0\xab\x55\xc5\xb1\x81\x13\x0f\ \x7e\x02\x71\x39\x3a\xf3\xa9\x38\x83\x42\x3c\xe2\x1c\x43\xd8\x5a\ \x68\x7d\xd5\xa9\xa6\x3b\x9a\x69\x03\x21\x7c\xaa\x04\x4d\xb5\xb0\ \x98\xf1\xdc\xe6\xaf\x90\x45\x59\xd8\xc5\x82\xe7\xae\xf3\xdc\x2d\ \xd2\x15\xad\xfb\x7c\xc5\x64\xd5\x3a\x4c\xe7\xf9\xb9\x87\xb3\x41\ \xde\x60\x67\x27\xee\xba\x23\xd7\x3d\x30\x9f\x5d\x6c\xc8\x56\x5f\ \x71\xec\xc8\x95\x83\x71\x7f\x1e\xae\xce\x4e\x25\xc9\x62\x24\x60\ \x69\xea\x90\x9c\xaf\xd8\x8a\x07\x7e\x5e\x5b\x08\x47\x6d\x9f\x28\ \xf6\xab\xb0\x3b\x57\xb1\x66\xc9\xf2\x01\xda\x12\x00\x7d\x47\xe5\ \x95\x67\xe5\x82\x03\xcd\x3e\xee\xe3\x09\x09\xb8\xfb\xd6\xb2\x1b\ \x33\xa6\xcc\x8a\x9f\x37\x33\x31\x31\xb5\x3a\x62\x69\x29\xcc\xc1\ \x16\x3a\x56\x0e\xff\x20\x1b\xcf\xba\xd8\x68\x7b\x3d\x58\xb1\x70\ \xfc\x81\x16\x56\x03\x7a\x7b\x26\x09\x02\x4f\x1a\x48\x3a\x36\xef\ \x34\x8c\x58\x09\xf4\xb2\x73\x12\xd9\xa8\x74\x6b\x7b\xdd\x56\xdd\ \xea\xae\x37\x1b\xd8\xde\x5c\x77\x98\x68\x4f\x1f\x5d\x46\xf6\x00\ \x66\x37\x58\xf6\x06\x65\x1f\x48\x9e\x00\xc8\x6e\xa3\x86\xed\x33\ \xe9\xc7\x54\x89\xc2\xd1\xf4\x06\x1f\x3f\xaa\xea\x8b\x41\x97\x11\ \xda\x61\x37\xb4\xda\x73\x57\x39\x1b\x0c\xbd\xe8\x3a\x1c\x64\x97\ \x06\x19\x88\x99\x0a\x1f\xb0\x6c\xaf\xd3\xd9\xe2\xb4\xbe\xa8\xf5\ \x7d\xc0\xec\xf9\x1c\xe1\x0a\x64\xff\x4d\xee\xdf\xf7\x7f\xed\xa8\ \xbe\x5e\x74\xde\x3b\xba\x10\x39\xd4\xaf\x9b\xea\x2b\x23\x74\xde\ \x2e\xd5\x81\xf7\x72\x76\x46\x89\x1b\xdf\x2b\x7e\xec\x2e\x69\x65\ \xc4\x5e\xf2\x17\xf0\x12\xce\x0f\x11\x9b\x06\x5a\xf0\xce\x3a\x54\ \x7d\x90\x7e\x49\xf5\x97\xca\x2b\xd6\xd9\x5a\x1f\xb0\xa5\xef\x24\ \x08\x4a\xc7\x07\xfa\x3a\xd6\x93\x92\xee\x98\x77\x6d\xcf\x9d\x8d\ \x7a\x6b\x7e\xd6\xab\xb2\x79\x50\xb6\x2b\x6d\x34\xcb\xeb\x6a\xed\ \xf5\xf0\xc3\xf9\x71\x24\xeb\x4d\xd1\x2e\x8e\x92\x23\xdb\x30\xae\ \x2d\xd3\xff\x29\x84\x1b\xb7\x3f\xa4\x7d\xe0\xb7\xa3\xfd\x86\x04\ \xd4\xd5\xee\x95\x02\xab\xb8\x9d\x84\xff\x01\xe3\xe9\xc7\xaf\ \x00\x00\x01\x40\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xd2\x49\x44\x41\x54\x28\xcf\x95\ \x92\xbf\x0e\x82\x30\x10\xc6\xdb\xeb\x81\xc6\xc4\x84\xc4\x97\xd5\ \x8d\x8d\x77\x60\x72\xe2\xc1\x74\xe8\xe0\xa0\x0b\x05\x93\xfe\xf1\ \x8a\x50\x8b\x65\x80\x4b\x8e\xbb\xa4\xdf\xaf\xd7\x7e\x14\xeb\xba\ \x3e\x33\xc6\x4a\xb6\x3e\x4a\xa4\x4f\xc5\xb6\x45\x85\x53\x77\x2a\ \x8a\x06\x11\x5f\x00\xd0\x0d\xc9\x79\xa8\x9c\x73\xa5\xb5\xe6\x37\ \x29\xaf\x5e\x1b\xa0\x2c\xcf\x1f\xbb\x2c\x7b\x0a\x21\x14\x02\x28\ \x5f\x87\x04\x68\x7d\x55\x5d\x07\x93\x36\x40\x48\xbb\xa1\x10\xed\ \x28\x9c\x01\x3e\x49\x22\x12\x08\xbe\x8b\xad\x88\xa6\x8c\x13\x07\ \xd0\x39\x87\x29\x44\xbb\x62\x0c\x45\x80\xef\x49\x72\x48\xa0\x20\ \x5a\x38\x1a\x99\x61\x62\xfb\xe2\x49\x33\x21\x8e\x3d\x39\x67\xff\ \x3d\xff\x41\x73\x23\x26\xc0\x2d\xfd\xa8\x00\xa9\xbe\xcf\xb5\x31\ \x7b\xba\xb0\x35\xd6\x3a\x1e\xdd\xc1\x47\xff\x7e\x1f\x13\xe8\x2e\ \x65\xb3\xf6\x49\x78\xe8\xb2\xf5\xed\x7d\x00\xca\xd1\x62\xc7\x6e\ \x2e\xe9\x88\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x01\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x13\x08\x06\x00\x00\x00\xd6\x3a\x8e\x1f\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\x93\x49\x44\x41\x54\x48\xc7\xd5\ \x97\xcd\x6a\x5a\x51\x14\x85\xd7\xf6\x1e\xbc\xde\xdb\x0e\xfa\x63\ \x48\x0c\x29\x38\xed\x13\xa4\x83\x0e\xda\x52\x3a\xc9\x28\x8f\x62\ \x90\xbc\x40\x86\x39\xd0\x99\xb3\xe4\x09\x4a\xfb\x00\x0e\x04\x07\ \x1d\x54\x0a\x15\x9c\x16\xa1\x52\xd0\x4a\xa1\xc4\xe3\xd5\xa3\xb8\ \x57\x06\xb9\x4a\x7d\x83\x7b\x16\xec\xf9\xda\xac\xf5\x6d\xce\x11\ \x92\xb0\xd6\xbe\x10\x91\x8f\x00\xde\x92\x7c\x86\xe2\x8a\x25\x91\ \x9f\x4a\xde\x00\xb8\x6e\x36\x9b\x1b\x63\xad\xad\x0b\xd0\x4f\x93\ \x8a\xa9\x9f\x1c\x67\x71\x5c\x9e\x14\xd7\x3e\xf0\x6f\x36\xab\x0e\ \x7f\xfd\xbe\x02\x70\x0a\xe0\x5c\xac\xb5\x5f\xd2\xa4\xf2\xe1\xfd\ \xeb\xd3\x71\x14\x45\x04\x00\x92\x28\xb2\x26\xd3\xbf\xc9\xd7\xef\ \xfd\x1a\x80\x33\x03\xe0\x4d\xfd\xe4\x38\x8b\xa2\x88\x24\x45\x49\ \x41\xc1\x17\x38\x78\xfe\xd4\x3f\x4a\x93\x6c\x9e\x2d\xde\x19\x92\ \x4f\x92\xa4\x32\xde\x28\x45\x55\x05\x81\x28\x4d\x2a\xbc\x9b\xb9\ \x23\x03\x00\x4a\x60\xa3\x2a\x45\xaf\xce\x1e\x0e\x04\x54\xb5\x64\ \xb6\x9d\x57\x12\x21\x2d\x90\x4b\x4c\x0e\x37\x94\x40\x48\xfe\xb7\ \x56\x77\x09\x30\xb4\x04\x72\xaf\x66\xd7\xa7\xa0\x13\x00\x72\x06\ \x10\x9c\x1e\xae\x90\x3e\x4c\x80\x0d\xda\x26\x90\x5f\x21\x04\x9a\ \x00\xf3\xfe\x87\xb4\xc0\xff\x0c\xcc\xbd\xf7\x91\x06\x06\xc0\xca\ \x7b\xa8\xea\x5d\x49\x44\xbe\xfd\x99\x4e\x13\x25\x85\x40\x10\x33\ \x73\xae\x9c\x2d\x16\xe9\x72\xb9\xec\x19\x92\x17\xce\xb9\xde\x60\ \x30\xa8\xd6\x6a\xb5\x79\x1c\xc7\x9b\xe2\x82\x4b\x71\xce\x95\x47\ \xa3\xd1\x63\x55\xfd\xd1\x6a\xb5\x3e\x49\xfe\xa1\x79\x25\x22\xb7\ \x24\x5f\x06\xd0\x9e\xf5\x7a\xbd\xfe\xdc\xe9\x74\x2e\xdb\xed\xf6\ \x64\xef\x01\xd7\x68\x34\xaa\x59\x96\x1d\xae\x56\xab\xa8\xa0\x09\ \xb0\xdb\xed\x8e\x87\xc3\xa1\x07\xe0\x49\xfa\x7b\x55\x3a\x21\x14\ \xe4\x9f\xa0\x8a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x01\x08\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\x9a\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x3b\x0a\x02\x41\x10\x44\x6b\xb4\x11\x76\x35\x11\x3c\x8c\x81\ \x91\x37\xda\x5b\x98\x4c\x2e\x78\x16\x33\x03\x3f\x27\x70\xcf\xe0\ \x2f\x90\x05\x61\xba\xca\xc0\xdd\xdc\x99\x86\x86\x86\xe2\x51\x8f\ \xb6\x18\xe3\x63\x56\x57\x2f\x64\xce\xbb\xeb\x16\x36\xad\xab\xfb\ \x7a\xb5\x0c\xb9\xf0\xfe\x70\xbc\x99\x24\x51\xca\x86\x01\xc0\x24\ \x88\x02\xca\x60\x88\x94\xc6\xb9\xa0\x04\x18\x7e\xda\x28\xd5\x26\ \x59\xaa\x5d\xd8\x4c\xd2\x4d\x00\x73\x61\x92\xc1\xe9\x9f\xbe\xf9\ \x7f\x30\xa5\x34\xba\xb6\xed\xc4\x9d\x1b\x23\xd9\x9d\xce\x97\xf9\ \xf0\xc4\x7e\x11\xc2\x70\x07\x0d\x91\x04\xb9\xfb\xd3\xdd\xb7\x4d\ \xd3\xec\xbe\x3e\x15\x69\x2b\x64\x98\xc7\xc4\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\xa9\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\x3b\x49\x44\x41\x54\x28\x91\x63\ \x98\x35\x6b\x56\x05\x10\xff\x20\x01\x57\x30\x00\x89\xff\xa4\x62\ \xb8\xa6\xb5\xab\x56\x2d\xdd\xb8\x6e\xdd\xd4\xcd\x1b\x36\xf4\x6c\ \xdd\xb4\xa9\x79\xfb\xe6\xcd\x55\x3b\xb7\x6e\x2d\xdc\xbd\x6d\x5b\ \xc6\x9e\xed\xdb\xe3\x76\x6c\xde\x1c\x8f\xa1\x69\xd3\x86\x0d\x13\ \x80\x8a\xea\xf7\xec\xd8\x51\x7a\x60\xd7\xae\xec\xc3\x7b\xf7\x26\ \x1e\x3b\x70\x20\x7c\xd7\xd6\xad\x91\x53\x26\x4d\x9a\xb8\x79\xdd\ \xba\x40\x0c\x4d\xdb\x36\x6e\x6c\xdb\xbb\x63\x47\xc9\x81\xdd\xbb\ \xb3\x80\x1a\x12\x80\x1a\xc2\x0e\xec\xdc\x19\xd4\xde\xd6\x76\xa3\ \xb1\xb1\xf1\x7f\x5f\x6f\xef\x14\x0c\x4d\x3b\xb6\x6c\xa9\x01\x6a\ \xc8\x04\x6a\x88\x07\x6a\x08\xbd\x7a\xf1\x62\xd2\xe4\x49\x93\x6e\ \x82\x34\x00\xf1\x9b\xa5\x8b\x16\x79\x60\x68\x9a\x3f\x67\xce\x8c\ \x96\x96\x96\x37\xeb\xd7\xae\x5d\xfc\xfe\xed\xdb\xa9\x8b\x17\x2d\ \xba\x05\xd5\xf0\x75\xde\xec\xd9\xbe\x07\x77\xef\xd6\xc6\xd0\x34\ \x63\xda\xb4\x85\x20\x45\xcd\xcd\xcd\xbf\x17\x2d\x5a\x04\xb3\xe1\ \xcf\xd4\xc9\x93\x13\x6e\x9c\x3f\x2f\x8b\x55\xd3\xfe\x5d\xbb\x62\ \xbb\x3a\x3b\x8f\x40\x15\xff\x87\xfa\xa3\x0c\xa4\x01\xa7\x26\xa0\ \x60\xf0\xc1\x5d\xbb\xdc\x81\x36\x3d\x00\x69\xe8\xec\xe8\x98\x00\ \xd3\x80\x53\x13\x30\x5e\x22\x81\xa1\xe7\xba\x69\xdd\x3a\xd7\xe9\ \x53\xa7\x26\x02\x83\xda\x08\x19\x03\xc5\xed\x31\x34\x91\x9a\x22\ \x48\x4e\x7b\x00\xb1\x3d\xbe\x78\xa0\x57\xd0\xf5\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x15\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xa7\x49\x44\x41\x54\x28\xcf\xa5\ \x8e\x31\x0a\xc2\x50\x10\x44\xdf\x64\x3f\x0a\x76\xa2\x9d\x37\x10\ \x6c\xec\x2c\x2c\x3d\x8f\xb9\x81\x47\x48\xec\x04\xef\x63\xa1\x82\ \x95\x78\x0d\xb1\x49\x24\xc9\x5f\x0b\xb5\x37\xf1\xc1\xc2\x6c\xf1\ \x98\x51\x9e\x65\x87\x7e\xbf\x37\xe1\x8d\x0b\xfc\x9b\x01\x47\x7a\ \xff\xee\x00\x5e\x37\xcd\xa3\xae\x9b\xdd\x3a\x4d\xf7\xc1\xcc\x06\ \xab\xe5\xa2\xe2\x37\x54\x55\xf5\xf0\x72\xbd\x6d\xb6\x79\x4e\x22\ \xa1\xe8\xce\xaf\x67\xc1\xe2\x7c\x36\x7d\x9a\x59\x1a\x40\x49\x74\ \xda\xa1\xc4\xcd\xac\x17\xf8\x34\xb7\x45\x92\x05\x41\xd2\x45\x06\ \x08\x20\xc5\x48\x47\x59\xdd\x9a\x1d\x27\x08\xe9\x8f\xd9\xa8\xe9\ \xe2\x3a\x84\xa2\x2c\x47\xc7\xd3\xf9\xde\xd6\x2d\x8a\x62\xfc\x02\ \x60\xd2\x60\xc5\x54\xa5\xbb\x5b\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x01\x15\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xa7\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x41\x0a\xc2\x40\x0c\x45\xff\x1f\x13\x17\xb3\x13\xdd\x79\x1f\ \xbd\x86\x3d\x40\xc1\x1b\x78\x87\x76\x23\x78\x04\x41\x70\x5d\xd7\ \x9e\x47\xc7\xd5\xb4\x98\xb8\x90\xd9\xb7\x7d\x10\x48\x02\x9f\xff\ \x13\x36\x4d\xf3\x8c\x31\x6e\xf1\xc7\x49\x7a\xe9\xcb\xec\x5e\x56\ \xf0\xbe\xef\xd3\x30\x0c\xe7\xba\xae\x2f\xa2\xaa\xb1\xaa\x0e\x03\ \xc6\xc1\x9c\xf3\xaa\xeb\x1e\xa7\xb6\x6d\x11\x00\xd0\xcc\x30\xb6\ \x54\xd5\xf6\xfb\x5d\x56\xd5\xa3\x90\x0c\x6e\x86\x29\x04\xd2\x45\ \x64\x29\x24\x68\xf6\xc5\x54\x42\x08\x0b\x21\xa6\x3b\x97\x7f\x0a\ \x48\xda\x1c\xb1\x03\x42\x60\xa6\x33\x20\x98\x79\xb3\xc3\x21\x24\ \xe9\x73\x63\xa7\xf4\x59\x5f\x6f\xf7\xd7\x54\xed\x3b\xa5\xcd\x0f\ \xda\x7f\x66\xb0\xc9\x65\xf3\x61\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x00\xf9\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\x8b\x49\x44\x41\x54\x28\x91\x9d\ \xd0\x31\x12\x82\x30\x14\x84\xe1\xe5\x15\xe6\x2e\xd2\xcb\x19\xed\ \x1d\xcf\x04\x1d\x27\xb0\xa6\x20\x38\x50\xe8\x4c\x12\xde\x6f\xa3\ \xbd\xa1\xf8\xca\x9d\xdd\x59\x1b\x86\x21\x8e\xe3\xf8\xa8\xd5\xf7\ \xfd\x66\x21\x9c\x96\xb6\x3d\x7b\xad\x10\xc2\x6c\x38\xec\xa5\xa8\ \x96\x24\x19\xe0\x7b\xc9\xaa\x05\xc8\xe0\x60\x33\xc8\x10\x7e\x24\ \x8c\x7e\xcd\x7b\x56\x2d\x21\x99\xd0\xa1\xd9\xe0\xfe\x3d\xac\x2e\ \x58\x72\x6e\xdc\x49\x86\xa0\xe6\xe5\x9c\x92\xcd\xcf\x35\x00\x77\ \x03\x5e\x53\xdc\xec\x0f\xcd\x14\x57\xa6\x65\x5b\xdf\x29\x5f\x2f\ \x5d\x77\xfb\x00\x6e\x37\xd5\xb0\x67\xb7\x7c\x1f\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x2c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\xbe\x49\x44\x41\x54\x28\x53\x5d\ \x92\x3b\x4b\x03\x41\x14\x85\x67\x37\x9b\x18\x22\x12\x4c\x3a\x05\ \x31\x36\x16\x26\x88\x8d\xf8\x13\xc4\xc6\x42\xec\x14\x0b\xd1\x42\ \xc1\x42\x41\xed\xb2\x5b\x46\xc1\x07\x58\x09\x0a\x76\xda\x68\x29\ \xfa\x07\x14\xed\x04\x3b\x11\x05\x83\x24\x26\xbb\x24\x26\xd9\x47\ \x76\x66\x3c\x77\x49\x82\x3a\x70\xb8\x33\xc3\xf9\xe6\xde\x99\x3b\ \x9a\x94\x92\xb5\x47\x4e\xd7\x47\xc2\xe1\xf0\x82\xaa\xaa\x13\x42\ \x88\x41\xc4\x37\xce\xf9\xbd\xef\xfb\x67\x5b\xba\xfe\xdc\xf6\x69\ \x2d\x73\x08\x63\x3d\x16\x8b\xad\xa6\x52\xa9\x70\x3c\x1e\x77\x31\ \x77\x2a\x96\x95\xf8\x2a\x16\x27\xf3\x9f\x9f\xd3\x3b\xba\x7e\x8c\ \xe3\x0f\x00\xf3\x00\x22\x20\x99\x4c\xae\x65\x32\x19\x1b\x99\x1c\ \xda\xb3\xeb\x75\x4b\x11\xc2\xea\x89\x46\xcd\xfe\x44\xa2\x96\x2f\ \x95\x66\x9a\x42\x50\x59\x7b\x1a\x95\x44\x19\xd2\xe9\xb4\x03\x40\ \x08\xce\x7d\xbb\x56\xb3\x20\x33\x10\x60\x17\x31\xca\xf9\x4b\x93\ \xb1\x39\xf8\x6f\x34\x18\x97\xa8\xa4\x48\x24\xe2\x34\x3d\xcf\xfe\ \x03\xb4\xe6\x9e\xeb\x9a\xc8\x60\x85\x18\xbb\xe6\x52\xce\x6b\xb8\ \xec\x38\xee\xe0\xb9\xb6\xfd\xfd\xdf\x4c\x6a\xfa\xbe\xc5\x19\x33\ \x49\xa8\xed\x11\xf0\xa2\x86\x57\x1a\x50\xa4\xfc\xa8\x57\x2a\xa5\ \x06\x4c\x4e\x0b\xa0\x39\x4e\xed\x00\x02\x99\x00\xbc\x33\x45\x31\ \xe8\x21\xde\x4a\x85\x82\x1b\x92\xb2\xd8\xce\xe2\x34\x1a\x1d\x63\ \x1b\x82\x2c\xa1\x28\x7d\xe4\xd7\xd0\x87\x87\x72\xb9\x3c\xda\xad\ \xaa\x05\x02\x5c\xcf\x23\x73\x60\xfa\x0d\x6c\x1a\x46\x0d\x8f\x30\ \x05\xe8\x99\xca\x3b\x31\xab\xd5\x0b\x9f\xb1\x6f\x29\x44\xe1\xbf\ \x99\x0e\x00\xe0\x02\xe8\x05\xb0\x0c\xad\x68\xd4\xe9\x5c\x36\x7b\ \x5a\x65\x6c\xb2\x8b\x31\x6a\x20\x81\x9d\xd2\xb6\x0c\x43\x00\x88\ \xc3\xbc\x0b\x5d\x92\x3f\x68\x2e\x2e\x77\x28\xf0\x9f\x6c\xc6\x36\ \xb0\x3a\x87\xee\xb0\x97\x47\x1c\x06\x30\xd6\xca\x70\x05\x1d\x91\ \x3d\x80\xe8\x6b\x20\xec\xc3\x70\x8b\x38\x0b\x6d\x43\x43\xd0\x2b\ \xf4\x04\xad\xfe\xfe\x7b\x3f\x19\xc4\x49\xa6\x7a\x07\xda\xac\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xfd\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x61\x00\x00\x00\x15\x08\x03\x00\x00\x00\x61\x6b\x70\x46\ \x00\x00\x00\x3c\x50\x4c\x54\x45\xf7\xf7\xf7\xb0\xb0\xb0\xff\xff\ \xff\x8b\x8b\x8b\x8c\x8c\x8c\x9d\x9d\x9d\xae\xae\xae\x8b\x8b\x8b\ \x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xde\ \xde\xde\x97\x97\x97\x8b\x8b\x8b\xdf\xdf\xdf\x8b\x8b\x8b\x8b\x8b\ \x8b\x8b\x8b\x8b\x51\x5f\xc0\xbc\x00\x00\x00\x13\x74\x52\x4e\x53\ \xca\xea\x00\xf4\xfd\xf3\xeb\x52\x9d\xd6\xfc\x1e\x20\xd4\xf6\x9c\ \xd4\xda\xfe\x7e\x17\x61\x47\x00\x00\x00\x5d\x49\x44\x41\x54\x78\ \x5e\xed\xd5\xc7\x01\xc0\x20\x14\x02\x50\xfc\xcd\x6e\x8a\xfb\xef\ \x9a\x63\x26\xe0\xe6\x5b\x80\x13\x00\x91\x51\x6a\xdb\x0c\xad\x96\ \x21\x02\xc9\x6a\x1e\x89\x21\xdc\x34\x0b\xba\xae\x09\x96\xb9\xb4\ \xe3\xb2\x1b\x3c\xb7\x5d\x78\x1c\x4c\xfe\xe0\x0d\x30\xc5\x8b\x9d\ \xc0\x94\xf6\x49\xf8\x9d\x84\x93\xc0\xef\x34\x7f\x97\xf8\xdb\xca\ \xff\x07\xfe\xc7\xf1\x7f\xfa\x03\x24\xa3\x11\xb1\xa1\x0a\xfe\x19\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x0a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x04\x00\x00\x00\xd8\xe2\x2c\xf7\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x9e\x49\x44\x41\x54\x18\xd3\x63\x98\x55\ \x31\xeb\x07\x56\x58\xc1\x30\xeb\x3f\x2e\x08\x96\x7a\x32\xf9\x6d\ \x0f\x32\x7c\x32\x19\x2e\xf5\xb9\xe3\x7f\x03\x0c\xde\x9b\xb7\xf3\ \xee\x9d\x85\x58\xa4\x9e\x4f\x5f\xff\x73\xed\xff\xd3\x3b\x91\xa4\ \x9e\xce\x00\x4a\x74\x7e\x5c\xbb\xe5\xfb\xda\xff\x3b\xef\xbd\xef\ \x82\x4b\x9d\xda\xbd\xf6\xff\xb1\x7b\x3f\x0e\x6f\xff\xb2\xf6\xff\ \xd6\x17\x5f\xdb\x3f\x77\xc0\xa5\x6e\x2e\x5e\xfb\x17\x28\x08\xd4\ \xb1\xf1\xe3\xbb\xde\xff\x0d\x48\x52\x9f\x3b\xce\xee\x58\xfb\x7f\ \xed\xff\xf5\x3f\x9e\x4f\x03\xd9\x88\x22\xf5\xbf\xe1\xd0\xa9\x0d\ \x5f\xee\x2e\x80\x38\x06\x49\x0a\xe2\xaf\xd7\xbd\x58\xfc\x85\x2b\ \x34\x70\x86\x21\x00\x8c\xe0\x06\x11\x3e\x64\x1f\xfd\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\xec\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\x7e\x49\x44\x41\x54\x28\x53\x7d\ \x92\xcb\x4e\xc2\x60\x10\x85\x89\xbc\x8b\x21\x26\xbe\x95\x6e\x25\ \x6e\x58\xb9\xe4\x25\x34\xd1\x1a\x2c\x15\x85\x52\xae\x01\x1b\xca\ \x55\xd3\x16\xe4\xd6\x16\x90\x08\x26\xb0\x68\xa9\xa2\x5b\x96\x78\ \xa6\xa1\xa4\x1a\xc2\xe2\xa4\xed\xdf\xf3\x75\x66\xce\xd4\xb7\x5e\ \xaf\x7d\xae\x18\x86\x09\x40\x61\x28\x05\x75\x36\x57\x7a\x0e\x78\ \x7d\xae\xd9\x0f\x05\x21\x83\x8b\x46\x75\x3e\x91\x18\x65\xd2\xe9\ \x49\x4a\x10\x8c\x87\x58\xac\x75\x17\x89\xc8\x9b\xf7\x7e\x2f\x74\ \x7e\xcb\x30\x03\x21\x99\xfc\x90\x4a\xa5\x1f\x45\x96\x2d\xad\xd7\ \x9b\xb5\x54\xd5\x6c\xd4\x6a\xcb\x42\x3e\x3f\x8c\xb2\x6c\x03\x9e\ \xa0\x03\x01\x38\xa6\x0a\x04\x34\xea\xf5\x2f\xd3\x34\xf5\xd5\x6a\ \xa5\xb8\xb2\x17\x8b\xfe\x6b\xb3\x69\x89\xc5\xa2\x0e\xb0\x42\x7e\ \x82\xc2\xd4\x12\x55\xb0\x4c\x53\xf3\x02\xae\x3e\x6d\xbb\xaf\xca\ \xb2\x2d\xf0\x7c\x05\xad\x5e\x10\x94\x4a\xf2\xfc\x1b\x0e\xad\x5d\ \x80\x2b\x43\xd3\xe6\xa8\x26\x73\x2c\x7b\x4d\x50\x27\x9b\xc9\x4c\ \x69\x86\x7d\xd0\x64\x3c\x9e\x56\xcb\xe5\xee\x3d\xc7\x65\x9d\x4a\ \x48\x69\x40\x43\xef\x83\x46\x86\x31\x93\x44\xf1\x19\xd0\xa5\x33\ \xd3\x23\x62\xa5\x94\x68\xe8\x5d\xc0\xf7\x72\xd9\xeb\xb6\xdb\x66\ \x2e\x9d\xce\xa3\xbd\x90\x93\x1e\x86\x53\x28\x56\x4a\x89\x86\xfe\ \x0f\x0c\x74\x7d\x5e\xaf\x56\x55\x7c\x5c\x80\xf7\x68\xbb\x27\xda\ \x03\xc5\x4a\x29\xe9\xfd\xfe\xfc\x1d\x33\x0c\xd1\x12\x55\x00\xa0\ \xf0\xf1\x78\x12\x9e\xd3\x3f\x7f\x04\x16\x77\x86\xc3\x32\x62\x2d\ \x3f\x15\x0a\x2f\x15\x49\x6a\x97\x44\xb1\x86\x96\x72\xa8\x40\xc0\ \x09\x3c\x07\x5b\xc8\xfb\xef\xd1\x1e\x60\xb8\xc1\xc0\x39\xe8\x0a\ \xf7\x21\x9c\x1d\x7a\x7d\xbf\xa2\x4e\xfc\xbe\x25\x1e\x24\xce\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x14\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\xa6\x49\x44\x41\x54\x28\x53\x7d\ \x52\xcb\x4e\xc2\x50\x14\x34\xf2\x2f\xc6\x98\xf8\x57\xba\xd5\xb8\ \x71\xe5\xd2\x9f\xd0\x44\x6b\x14\xf0\x01\xa5\x94\x47\x80\x86\x16\ \x28\x9a\xb6\x2a\xcf\x16\x1f\x11\x4c\x80\x58\x04\xd1\x9d\x69\x5c\ \x18\x9c\x21\x62\x6a\x62\x5c\x9c\x9c\x9e\x73\x67\x7a\xce\xcc\xbd\ \x73\x93\xc9\x64\x6e\x16\x82\x20\x2c\x22\xb6\x11\x71\x44\xf5\x3b\ \xb3\x5e\xf4\xe3\x66\xe0\x00\x62\x1d\xe1\x84\x43\x21\x5b\x8c\x46\ \x6f\x13\xb2\xdc\x8e\x4b\x92\x73\x7a\x72\x72\x75\x74\x78\x68\x7c\ \x9f\x07\xfc\xa4\x8d\x03\x41\x68\x49\xb1\xd8\xa3\x9a\xcf\xbf\x99\ \x86\x31\x68\xd6\xeb\xdd\x2b\xcb\x72\xcb\xa5\xd2\x38\x93\x4e\xdf\ \x84\x82\xc1\x32\x30\xeb\x53\x12\x08\xcb\x9c\x40\x42\x59\xd7\x5f\ \x5c\xd7\xb5\x3d\xcf\x33\x67\x31\x7c\x7e\x6e\x5c\x5f\x5e\x0e\x94\ \x6c\xd6\x06\xb1\x40\x3c\x49\xdb\x5c\x89\x13\x06\xae\xdb\x24\xf0\ \x75\x34\xaa\x75\x3b\x9d\x3b\x66\xd6\xa3\xe1\xb0\x61\x19\xc6\x50\ \x12\xc5\x02\x56\xdd\x22\x29\x1e\x13\xc5\x3b\x34\x07\x04\x3c\xf5\ \xfb\x8e\x9e\xcd\xbe\xeb\xb9\x9c\xc7\xcc\x9a\x7d\xa7\xd9\xec\x61\ \x9a\x11\x0e\x06\xf7\x48\xaa\x26\x13\x89\x0e\x35\xf0\xd0\xae\x56\ \xfb\x00\x7f\x94\x15\xe5\x93\x99\x35\xfb\xed\xfb\xfb\x4e\x51\xd3\ \x6a\xc7\xe1\x70\x72\x3a\x09\x2e\xb5\x28\xfa\xbf\x49\xb7\x8e\xd3\ \x55\x15\xe5\x1c\xa4\x9d\xa9\xa6\x33\xd8\x4a\x97\x28\xfa\x2f\x4d\ \xaf\xe3\x71\xbd\x56\xa9\xb8\x29\x59\x4e\x63\xbd\xcd\xa9\x7b\x10\ \x67\xd2\x56\xba\x44\xd1\x7e\xf7\x48\x68\xd9\x76\x4f\x2f\x16\x2d\ \xfc\x5c\x02\x76\xe9\xe7\x9e\x78\x0f\xb4\x95\x2e\xd9\x8d\x46\xef\ \x01\x1a\x6e\xb0\x12\x27\x80\x60\x8a\x91\x48\x0c\x98\xd5\x5f\x2f\ \x02\x17\xb7\x86\xa6\x06\x5b\xb5\x5c\x26\x73\x51\x50\xd5\x4a\x5e\ \x51\x4a\x58\x29\x85\x09\x24\xac\x00\x33\xff\x43\xf2\xbf\x3d\xde\ \x03\x00\xfb\x10\x9c\x42\xec\xe2\x7b\x13\xbd\x05\x3f\xee\x0b\x45\ \x97\xf5\xcf\x14\x60\x2f\x66\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x01\x14\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xa6\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x31\x0e\x41\x51\x14\x44\xe7\x72\xa3\x7d\x91\x58\x1e\x6b\x60\ \x19\xba\xdf\x4a\x94\x2c\x41\xa5\xb0\x01\x85\xc4\x3a\xf0\x55\x12\ \xfe\xdc\x3b\x0a\x11\x0d\xc5\x33\xe5\x24\x27\x33\x39\xd6\x34\xcd\ \xa5\x94\x72\xc5\x8f\x98\xd9\xd7\xbe\x6d\xdb\x91\x97\x52\xce\x93\ \xc9\xd8\x50\x99\xd5\x6a\x7d\xf2\xcc\x54\x90\xd5\xb0\x24\xb8\x94\ \x0a\x76\xb5\x2c\x20\xc1\x95\xca\x20\xfb\xd5\x2c\x04\x4f\x49\x41\ \xfe\xb1\x0c\xb8\x94\x19\x51\x7f\x5b\x78\xdd\xfe\x6b\x39\x23\xc2\ \x25\x65\x2d\x1c\x99\x46\xf2\xee\x92\xaa\x6c\x3f\xba\xae\xb7\x3f\ \x1c\x07\x64\xcc\x9d\xc1\xdb\x66\xbb\x1b\x1a\x0c\x30\xe8\xa5\xe2\ \xad\x04\x32\x40\xfa\xb0\x22\xa3\x25\xb9\x98\xce\x66\xcb\x27\x2a\ \x8d\x77\x7e\xf9\xf5\x91\x67\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x00\xae\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x07\x00\x00\x00\x05\x08\x04\x00\x00\x00\x23\x93\x3e\x53\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x42\x49\x44\x41\x54\x08\xd7\x63\xa8\x5f\ \xbd\xe6\x15\x0c\xd6\x2e\x61\x48\x56\xda\xf1\xe8\xc4\x57\x10\xdc\ \x74\x3e\x5c\x84\xe1\x3f\x43\x6b\x26\x88\xb3\xef\x55\x8d\xc5\x7f\ \x06\x20\x97\x81\x71\xc1\x86\xe3\x5f\xfb\x72\xfe\x33\x80\xb9\xff\ \x19\x52\xd5\x7a\x67\xfe\x07\xb3\x00\xb3\x22\x29\xee\xf2\x45\x54\ \xa5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x15\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x13\x08\x06\x00\x00\x00\xd6\x3a\x8e\x1f\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\xa7\x49\x44\x41\x54\x48\xc7\xd5\ \x97\xbf\x8e\x52\x41\x14\xc6\xbf\x19\x66\xff\x68\x24\x5c\xcd\x6e\ \xae\xc6\xec\x6a\xec\x6c\x28\x68\xc4\x0e\xed\x8c\x95\x8f\x82\x21\ \xbe\x80\xa5\x37\xb1\xa3\xd3\x27\x30\xf2\x00\x24\x14\x04\xb7\x70\ \x1b\xed\x6c\x70\x2a\x13\x2d\x48\x6e\x40\xae\x17\x98\x73\x3e\x0b\ \x58\x43\x7c\x82\x3b\x5f\x37\xdd\xf9\xe5\x77\xce\xc9\x19\x43\x12\ \x59\x96\x9d\x19\x63\xde\x1a\x63\x9e\xa8\xea\x2d\x54\x37\xb4\xd6\ \x4e\x55\xf5\x1d\x80\x37\xbd\x5e\x4f\x5c\x96\x65\xf7\x8d\x31\x5f\ \x1b\x8d\x86\x6b\xb7\xdb\xeb\x34\x4d\x97\x15\x06\x80\xf7\x3e\x9d\ \x4c\x26\xaf\x49\x3e\x02\xf0\xc2\x64\x59\x36\x68\x36\x9b\xcf\x3a\ \x9d\xce\x0f\xe7\x9c\x03\x70\x44\xb2\xca\x0c\xa5\xf7\xfe\x60\x30\ \x18\xdc\x01\xf0\xdc\x59\x6b\x3b\xad\x56\x0b\xb5\x9a\x35\x22\x21\ \x90\x14\x54\x3c\xe7\xe7\x67\xab\x24\x49\x8a\x3c\xcf\x9f\x3a\x6b\ \x6d\x72\xe0\x5c\x19\x36\x9b\x9a\xaa\x56\xbe\xf8\xab\xd4\xeb\x37\ \x38\x9b\xcd\x6e\x3b\x00\x20\x00\x15\x81\xaa\x22\x9a\x10\x50\x55\ \xeb\xb6\x0f\x42\x42\x88\x0a\x60\x37\xa7\x66\x67\x80\x10\x55\xa8\ \x48\x6c\x00\xf8\x67\x80\x1a\xa2\x02\xc0\x3e\x00\x49\x68\x10\x88\ \x84\x58\x0d\x00\xa2\x21\x2e\x00\xe8\x9e\x01\x6c\x0d\x68\x88\x08\ \x40\xff\x6f\xa1\xc8\x0c\x6c\x97\xff\x55\x0b\x81\x10\x89\x74\x06\ \xa8\xba\x94\x20\x4e\x37\x01\x1a\xe2\xd9\x42\xc5\x9f\x12\xaa\x3a\ \x77\xa2\xfa\x79\xfa\xdd\x3f\x3e\xad\x1f\x45\x53\x7d\x3e\x5f\x1c\ \x2e\x7e\x2f\xaf\x97\x65\x79\xe9\x48\xbe\xfc\x74\x71\x71\x79\x72\ \x33\x39\x7d\x70\xef\xee\xf2\xda\xf1\x71\x65\xfb\x48\x95\x26\x9f\ \x2f\x0e\xbf\x4d\x7d\x9d\xe4\x97\x7e\xbf\xff\xc1\xec\x3e\x34\x6d\ \x63\xcc\x7b\x92\x0f\x23\x10\xb0\x09\x21\x7c\x1c\x8d\x46\xaf\x86\ \xc3\xe1\x2f\xb3\x7f\xfb\x77\xbb\xdd\x93\xa2\x28\xd2\xf5\x7a\x5d\ \xab\xe8\xe0\x72\x3c\x1e\xff\xf4\xde\xaf\x00\xac\x48\xae\xfe\x02\ \x9e\xc5\x10\x4d\x61\xbe\x76\xec\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x00\x9f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x04\x00\x00\x00\xd8\xe2\x2c\xf7\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x33\x49\x44\x41\x54\x18\xd3\x63\x98\x55\ \x31\xeb\x07\x56\x58\xc1\x30\xeb\x3f\x2e\x08\x96\x7a\x32\xf9\x6d\ \x0f\x32\x7c\x32\x19\x2e\xf5\xb9\xe3\x7f\x03\x32\xfc\xdc\x31\x84\ \xa4\xf0\xf8\x0b\x57\x68\xe0\x0c\x43\x00\x32\x58\x02\x75\x45\x0f\ \x73\xc2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x57\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\xe9\x49\x44\x41\x54\x28\x53\x4d\ \x92\x3f\x68\x14\x41\x14\xc6\x67\x77\x67\xf7\x92\xe5\x64\xd1\x2b\ \x0c\x18\x72\x9c\x57\xca\x59\x69\x61\x69\x63\x69\x61\x21\x28\x48\ \x8a\x80\x88\x11\x0b\x41\x6c\x2f\xa5\x82\xc4\xc2\x42\xc4\xc6\x2a\ \xa5\x82\x4d\x48\x25\xd8\x25\x75\x0c\x58\x5c\x4c\x10\x74\x2f\x38\ \x6b\xd8\xdb\x9d\xfd\x3b\xcf\xef\x9d\xbb\xe0\xc2\x63\x66\xd8\xef\ \xf7\xde\xf7\xe6\x8d\x24\x22\xd1\x7e\xcf\xc7\xe3\x4b\xae\xeb\xae\ \x3a\x8e\x73\xd5\x18\xd3\xb7\x6d\xfb\xa8\xae\xeb\xbd\xb2\x2c\xdf\ \x3f\x1b\x8f\xf7\x5b\x9d\x6c\xc4\xd0\x39\x4f\x7c\xdf\x5f\x1f\x0c\ \x06\x6e\x10\x04\x39\xf6\x55\x9a\xa6\x7d\xa5\xd4\xc5\xc3\xc9\xe4\ \xd6\x8b\x8d\x8d\x37\x28\xb0\x09\xb8\x9e\x43\x0c\xf4\x7a\xbd\xc7\ \xa3\xd1\x48\xa3\x52\xd6\x66\x5c\xf0\x3c\x75\xb6\xdb\x8d\x9c\x95\ \x95\x78\x72\x7c\x7c\x37\x2b\x0a\xb6\xf5\x52\xb2\x25\xae\xd0\x00\ \xa6\x05\x74\x92\x44\x7a\x36\xe3\x50\x79\x92\xa8\xc0\x75\xbf\x01\ \xba\x07\xfd\xb6\xf4\x3c\xef\xc1\x70\x38\x74\xdb\x0a\xa6\xae\xab\ \x34\x8e\x73\x40\x8b\x59\x9a\x2a\x1d\xc7\x53\x06\x33\x80\xb0\xf5\ \xb9\x14\x62\x55\x5a\x96\x75\x85\x7b\x60\xa0\x2c\x0a\x0d\x80\x20\ \x1e\x62\x6f\xe3\x02\x96\xcb\xaa\x2a\x90\xe0\xa0\x16\x22\xb2\x84\ \x88\x21\xbb\x23\xd1\xdc\x32\xec\xa5\xb9\xd6\x31\x67\x84\x60\xa9\ \xaa\x2a\x49\xc6\x78\x10\xd8\x8e\x94\x17\x2a\x21\xa6\x80\x14\xfd\ \x83\x9e\x72\xa5\x1f\xbf\x4f\x4e\x3a\x0e\x51\xc8\x3d\x64\x80\xf1\ \xf3\xbc\x20\x72\xc9\xb6\x35\x80\x3d\x86\xd0\xac\xc2\x1a\x08\xcb\ \x3a\x94\x98\xc3\xee\x34\x0c\xaf\x9d\xe9\x74\xe6\xde\x19\xac\x89\ \xbe\x7a\xbe\xbf\x84\x59\x1d\x44\x51\xf4\x85\xab\xb0\x3d\xb2\xac\ \xcb\xa8\xb4\x2f\x61\xe5\xed\xcf\x30\xbc\x61\xba\xdd\x3f\x65\x9a\ \x4e\xf3\xa2\x50\x9c\x35\xd1\x3a\x6a\xc4\x2d\xe0\x00\x78\x88\x78\ \x24\x79\xd2\xb8\xc6\x77\xbf\x4e\x4f\x6f\x2e\x12\x6d\x89\xc6\x7f\ \x2b\xe6\x04\x00\x16\x78\x3e\x88\x8f\xac\x97\xcd\x58\x5e\xc1\x92\ \x99\x09\xb1\x66\x0b\xf1\x09\xe7\x5d\xf4\x75\x84\x38\x87\x1e\xae\ \xe3\x7c\x1f\xf1\x01\xf1\x9a\xc5\x73\x88\x9f\x06\x96\x4d\x54\xdc\ \x31\x44\xb7\xb1\x5f\x83\xb8\x8f\xf5\x3b\xf7\x80\x58\xff\xff\xed\ \xfd\x05\x44\x20\x32\xa9\x4e\xde\x14\x18\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xaf\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x07\x00\x00\x00\x05\x08\x04\x00\x00\x00\x23\x93\x3e\x53\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x43\x49\x44\x41\x54\x08\x1d\x63\xc8\x5b\ \x38\xe3\x3a\x0c\xe6\xcc\x62\x70\x92\xeb\xda\x3c\x73\x1f\x08\xb6\ \x2c\xb5\x14\x62\xf8\xcf\xe0\x1e\x50\x3f\xaf\x7e\x5e\xd9\x6c\x27\ \x9d\xff\x0c\x40\x2e\x03\xa3\x4b\x76\x4a\xbd\x85\xfb\x7f\x10\x1b\ \x44\x88\x4a\x29\x87\x81\xe8\xff\x0c\x00\x6d\x8c\x21\x57\xad\xbb\ \x24\x67\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xc5\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x07\x00\x00\x00\x05\x08\x03\x00\x00\x00\xbe\x44\x06\xea\ \x00\x00\x00\x39\x50\x4c\x54\x45\xff\xff\xff\x6e\x5d\x5d\x6e\x5c\ \x5c\x51\x44\x44\x14\x11\x11\x05\x04\x04\x03\x02\x02\x20\x1a\x1a\ \x00\x00\x00\x1a\x16\x16\x23\x1d\x1d\x1c\x17\x17\x59\x4a\x4a\x34\ \x2c\x2c\x5e\x4f\x4f\x24\x1e\x1e\x47\x3c\x3c\x47\x3c\x3c\x49\x3d\ \x3d\x21\xaf\x18\x83\x00\x00\x00\x13\x74\x52\x4e\x53\x00\xa2\x7e\ \x5d\x32\x39\x16\x23\x01\x46\x3e\x0f\x75\x3e\x7c\x19\x7f\x60\x84\ \x40\x08\xcd\x6e\x00\x00\x00\x28\x49\x44\x41\x54\x08\x1d\x05\xc1\ \x87\x01\x00\x20\x0c\xc3\x30\xa7\x65\x6f\xf8\xff\x58\x24\x80\x98\ \x00\x08\xb3\x16\x20\x5f\xf7\x06\x7d\x98\xd9\xda\x1c\x49\xd2\xfb\ \x0b\xb7\x00\xb7\x4d\xe4\xc7\xea\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x01\x0c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\x9e\x49\x44\x41\x54\x28\xcf\x9d\ \x91\x31\x0a\x02\x41\x10\x04\x7b\x74\x30\x5d\x04\xdf\xe7\xfd\x40\ \xbf\x61\x76\xa9\x60\x74\x66\x82\xe0\x1f\x04\x7d\x8d\xba\x46\x82\ \xb7\xb3\xd3\x06\x87\x9a\x68\xb0\xdb\xe1\x40\x51\x14\x23\x6d\xdb\ \xde\x42\x08\x77\xfc\x99\x88\xfc\xbc\xc7\x18\x67\x1a\x42\xb8\x36\ \xcd\x5c\x50\xb8\xae\xdb\x5e\x94\x24\xdd\xbd\x18\x06\x00\x25\x9d\ \x74\xaf\x40\x09\x1d\xc4\x79\x5c\x8c\x12\x50\x3a\xeb\xcd\x4e\xba\ \xd7\xc0\x04\x94\xac\x33\x67\xf7\xfc\x6e\x2e\x03\x73\x16\x4b\xe9\ \x59\x6c\xee\xfb\x7e\x74\x3c\x9d\x27\x66\xb6\x52\x33\x7b\xec\xf6\ \x87\xe9\xa7\x44\xc0\xe1\xe9\xc2\xa1\x0c\xfc\x66\x92\x96\x2c\xa6\ \x94\xd6\x8b\xe5\x72\xf3\x02\x01\x4c\x73\x5c\x4d\x53\x9c\xcf\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x07\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x04\x00\x00\x00\xd8\xe2\x2c\xf7\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x9b\x49\x44\x41\x54\x18\xd3\x63\x68\xac\ \x68\xfc\x81\x15\x56\x30\x34\xfe\xc7\x05\xc1\x52\xf7\x26\xbf\xec\ \x41\x86\xf7\x26\xc3\xa5\x3e\x74\xfc\x6f\x80\xc1\x73\xf3\xa6\xdc\ \x3d\xb5\x10\x8b\xd4\xed\xe9\xad\x3f\x1b\xff\x6f\xdc\x89\x24\x75\ \x6d\x06\x50\xa2\xf3\xd5\xda\x9e\xef\x8d\xff\xa7\xdc\x7b\xd3\x05\ \x97\x5a\xbf\xbb\xf1\xff\x8a\x7b\x5f\x0e\x4f\xfa\xd2\xf8\xbf\xf7\ \xc5\xc7\xf6\x0f\x1d\x70\xa9\xe3\x8b\x9b\xfe\x36\xfe\xef\x03\xea\ \xe8\xf8\xf8\xbc\xf7\x7f\x03\x92\xd4\x87\x8e\x4d\x3b\x40\x74\xeb\ \x8f\x9b\xd3\x40\x36\xa2\x48\xfd\x6f\x58\x78\xaa\xed\xcb\xe9\x05\ \x10\xc7\x20\x49\x41\xfc\xf5\xbc\x17\x8b\xbf\x70\x85\x06\xce\x30\ \x04\x00\x95\xde\xf8\xd0\x60\x7f\x65\x39\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x12\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xa4\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x21\x0e\xc2\x40\x10\x45\xff\x4c\x26\x2b\x10\x90\x10\x04\x86\ \x5e\xa0\xc8\x9e\x8a\x0b\x70\x10\x3c\xc7\x41\x74\x35\x07\x58\x85\ \x42\x50\x30\x4d\x77\x67\x10\x85\x84\xd4\xb0\xdb\xe7\xfe\x4f\x7e\ \x5e\xf2\xa9\x6d\xdb\x8b\x73\x6e\x8b\xff\x98\x99\xa9\xaa\xbe\x54\ \xf5\xdc\x34\xcd\x49\x98\x79\xb1\xaf\x6b\x45\x1e\x94\x52\x5a\x85\ \x10\x8e\xde\x7b\x93\xb1\x88\x28\x40\xab\x6a\xd7\x77\xd7\xe7\x41\ \x00\x70\x8a\x03\x0a\x31\x26\x72\xa3\x39\xe6\x98\x69\x09\x82\xfb\ \x26\x11\x21\x01\x8c\x32\xcd\xdd\x6f\x88\x71\x60\x81\x81\xf3\xcc\ \xd3\xeb\x81\x12\xf3\x74\x8e\xcf\x61\x73\xcc\x06\x81\xcd\x34\x9b\ \x41\x86\xa4\xeb\xdb\xbd\x7b\x94\x6e\xa3\xea\xe6\x0d\x9b\x62\x55\ \x2d\xe3\x08\x6f\xa2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\x09\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x32\x00\x00\x00\x2d\x08\x06\x00\x00\x00\xec\xbf\x38\xff\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x05\x9b\x49\x44\x41\x54\x68\xde\xd5\ \x99\x4b\x4c\x63\x55\x18\xc7\x31\x63\x9c\x48\x4c\x34\xce\xca\xc4\ \xc4\x85\x0b\x17\x6a\x8c\xc6\xa8\x1b\x63\x62\x66\xa5\x9b\x89\x3b\ \x17\x46\x63\x8c\x2b\xc7\x07\xa3\xf3\xd0\x4c\xcc\x18\x1d\xc6\x30\ \x99\x90\xcc\x42\x98\x41\x23\x03\x03\x41\x79\xb6\x85\x96\xbe\x5f\ \xb4\x94\x47\x5b\xca\xa3\x40\x5b\x28\x2d\xa5\x14\x28\xef\x77\x29\ \xc7\xff\xd7\xf4\x34\x37\x04\x98\x0a\xb7\xd0\xbb\xf8\x2f\xda\x45\ \xcf\xf9\xf5\x7c\xdf\xef\x9c\x7b\x6e\x41\x75\x4d\xdd\x1d\xcf\x48\ \xf4\x72\x38\xce\x3e\x95\x70\x9e\x28\x68\x6d\x6d\x7d\xb6\xf2\x41\ \x55\x77\x47\xf7\x60\x25\xbe\xf8\x56\xa2\x39\x5b\xc0\x18\x2b\xe8\ \xe8\xe8\x78\xa5\xb1\xb1\xd1\xa5\x35\x58\x0d\xbe\xc9\xd5\x1f\x25\ \x0b\x92\x86\x79\x5b\xad\x56\x7b\x8d\x26\x8b\xbf\xdb\x33\x76\x57\ \xb2\x20\x14\x93\xc9\xf4\xae\x4e\xa7\x0b\xf6\xf6\xf6\xae\x1b\xcc\ \x0e\x79\x30\x96\xf8\x5e\x92\x20\x14\x83\xc1\x70\xde\x68\x34\x46\ \x46\x47\x47\x99\x56\x6f\x72\xf7\x0d\x4f\x15\x4b\x12\x84\xa2\xd7\ \xeb\x3f\x34\x9b\xcd\x51\xbf\xdf\xcf\xec\xf6\xce\xb8\xd9\xe6\x7c\ \x18\x9a\xdb\xfd\x4e\x72\x20\x14\x94\xd8\x47\x56\xab\x35\x16\x08\ \x04\xd8\xe0\xe0\xe0\xae\x5a\x6b\xb4\x78\x83\x0b\xd7\x25\x07\x42\ \x91\xcb\xe5\x5f\x51\xbf\x10\x8c\xcf\xe7\x63\x26\x93\x39\x64\xef\ \xf1\x96\x49\x0e\x84\x22\x93\xc9\x5a\xc6\xc6\xc6\x18\x85\x60\x5c\ \x2e\xd7\xb6\x46\x6f\x51\x05\xa6\x36\x2e\x4b\x0a\xa4\xae\xae\xae\ \x50\xab\xd5\x06\x26\x26\x26\x52\x30\xd4\x37\xc3\xc3\xc3\x4c\xab\ \x33\x0c\xf5\xf6\x07\x4b\x24\x03\x42\xa9\xaf\xaf\xff\x00\x2b\xb1\ \x4a\x30\xe3\xe3\xe3\x29\x98\x91\x91\x11\xd6\xd9\xd9\xb9\xac\x33\ \x75\xfe\x33\x31\xbb\x53\x24\x09\x90\x74\x89\x55\x10\x48\x28\x14\ \x4a\xc1\x50\xdf\x90\xa2\x07\x06\x06\x98\x4a\xad\x73\xf4\xfb\x62\ \x37\x24\x01\x52\x52\x52\x72\x06\x5a\xee\x8f\x44\x22\x2c\x1c\x0e\ \xb3\x60\x30\xc8\xb8\x04\xa8\xd4\xcc\x66\xcb\xb4\xc9\xe6\xaa\xc8\ \x7b\x10\x4a\x4d\x4d\xcd\x9b\x7d\x7d\x7d\x8b\x53\x53\x53\x19\x18\ \x2e\x01\x82\x71\xbb\xdd\x49\xa5\x5a\xaf\x1b\x09\x2d\x5f\xc9\x6b\ \x10\x4a\x4b\x4b\x4b\x31\x41\x70\x18\x2e\x01\x82\xa1\xbe\x19\x1a\ \x1a\x82\x08\xf4\x7e\x7b\xef\xf0\x9d\xbc\x06\xa1\x12\xb3\x58\x2c\ \x23\xb1\x58\x8c\x45\xa3\x51\x36\x39\x39\xc9\xf6\x4a\xc0\xeb\xf5\ \x32\x87\xc3\xb1\xa1\xd2\x18\x9b\xc6\x63\xdb\x45\x79\x09\x92\xb6\ \xd8\x35\x02\x99\x99\x99\x49\xc1\x50\xdf\xec\x95\x00\xc1\x78\x3c\ \x1e\xa6\x54\xa9\x5d\xce\xc1\xd0\xaf\x79\x09\x82\x55\x39\x0b\xf5\ \xfa\xe2\xf1\x78\x0a\x66\x7a\x7a\x3a\x03\xc3\x25\x40\x30\xd4\x37\ \x38\xde\x30\xac\x60\x5c\x6b\xb4\xff\x9d\xc3\xf3\xda\xd1\x40\x28\ \x4d\x4d\x4d\xbf\xcc\xcf\xcf\x33\xca\xec\xec\x6c\x06\x66\x3f\xa3\ \x11\x0c\xf6\xa1\xdd\xd6\xb6\x76\xf3\xe0\xd8\xdc\xb5\xbc\x02\xc1\ \xaa\x3c\x85\xc9\x8d\x2f\x2d\x2d\x65\x60\xa8\xdc\x0e\x93\x40\x7f\ \x7f\x3f\xd3\x6a\x75\x21\x68\xfa\x6e\xde\x80\x50\x14\x0a\xc5\xed\ \x95\x95\x15\x46\x30\x0b\x0b\x0b\x6c\x6e\x6e\x8e\x1d\x26\x01\x82\ \xa1\x0d\x14\x22\x48\x28\xda\xd4\x0a\x7f\x64\xbd\x28\x2f\x40\x4a\ \x4b\x4b\xcf\xa1\x6c\x42\xab\xab\xab\x6c\x79\x79\x39\x03\xc3\x25\ \x40\x30\x5c\x02\x04\xc3\x25\x40\x30\xd8\x8f\x20\x82\xf6\xa1\x4e\ \xd7\xe8\xcd\x53\x07\xa1\x68\x34\x9a\xfb\x9b\x9b\x9b\x6c\x6d\x6d\ \x2d\x05\xb3\xb8\xb8\xc8\xb8\x04\x0e\x33\x1a\xf5\x0d\x59\x0d\x22\ \x58\x51\xaa\x8d\x35\xc1\x99\x9d\xd3\x05\xa9\xaa\xaa\xba\x80\x95\ \x48\x12\xcc\xfa\xfa\x3a\xa3\x52\xe3\x30\xd9\x48\x80\x60\x9c\x4e\ \x27\x93\x2b\xda\xec\x6e\x6f\xe4\xa7\x53\x03\xa1\x0d\x12\x65\xe2\ \x4d\x24\x12\x6c\x6b\x6b\x2b\x03\x93\x8d\x04\x08\x86\x4b\x00\xc7\ \x1b\x86\xa7\xd2\x69\x8d\xc1\xf6\x07\x26\xf6\xcd\x89\x83\x50\x70\ \x59\x51\xb9\xbb\xbb\xcb\x76\x76\x76\x32\x30\xd4\x37\x1c\x86\x4b\ \x80\x60\xb8\x04\xf8\xb3\x8d\x50\x02\xd4\x37\x10\x41\x52\x06\x13\ \xe0\xb1\xfa\xd2\x89\x83\xd4\xd6\xd6\x7e\x42\x93\xe7\x30\xdb\xdb\ \xdb\x6c\x63\x63\x83\xed\x95\xc0\xa3\x8e\x35\x1c\x06\x5a\x67\x4a\ \xa5\x32\x60\xb6\xbb\x7f\x3f\x51\x10\xda\xe9\x31\x89\x00\x81\x50\ \x92\xc9\x64\x0a\x46\x28\x01\x82\xc9\x46\x02\x04\x43\x7d\x43\x30\ \x10\xc1\xa6\x4c\xa1\xfa\x77\x2c\xba\xf9\xf5\x89\x80\x50\x70\x7d\ \x54\xc7\x41\x38\x0c\xf5\x0d\x87\x39\x8a\x04\xa8\x6f\x7a\x7a\x7a\ \x98\x4c\xae\x70\x76\xb9\xfd\xd7\x4f\x04\x04\x77\xc7\x57\x68\xf2\ \x42\x18\x0a\x87\x11\x1a\x4d\x78\xac\x39\xe8\xd9\x46\x28\x01\xb2\ \x1a\x1e\xea\x16\x5a\x55\xfa\x3f\x43\xb3\xc9\x8b\x39\x05\x29\x2b\ \x2b\x7b\x1d\x7d\x90\xd8\x0b\x72\x98\x04\xb2\x3d\xd6\x50\xdf\x10\ \x0c\x0e\xaa\xac\xb9\x45\x66\xf4\x8c\x4e\x5f\xca\x19\x08\x69\x58\ \xd8\x27\xfb\xc1\x1c\x45\x02\x42\xa3\x11\x0c\x95\x9a\x4a\xa5\x0a\ \x43\xd3\xb7\x05\x9a\x16\x0f\x84\xd2\xd5\xd5\xa5\x39\x08\x44\x28\ \x01\x82\x39\x8e\x04\x08\x06\xb7\xa0\x89\xc6\x66\xb9\x6c\x34\xbc\ \x72\x51\x74\x10\x5c\x80\x97\x1d\x06\x72\x90\xd1\x84\xc7\x1a\xea\ \x1b\x9a\xbc\xcd\x66\x5b\xc6\xef\x05\x71\x04\x72\xe1\x75\x87\xa3\ \xbd\xbd\xdd\x8e\x95\xb0\x41\xcb\xd6\xb6\xb6\x36\x33\x5e\x50\x99\ \x9a\x9b\x9b\x95\xf7\xee\xdd\x6f\xaa\xf8\xeb\x41\xa1\xa8\x20\x0d\ \x0d\x0d\x45\xfb\x35\xfc\x7e\xd9\x2b\x01\xfc\xfb\xdb\x98\x7c\x10\ \x97\x81\x56\x6c\xb0\xd5\x58\x81\x5b\x28\xad\xdf\x90\x22\xe4\x02\ \xf2\x1a\xf2\x22\xf2\x02\xf2\x3c\xf2\x5c\x3a\xf4\xdd\x63\xa2\x82\ \x94\x97\x97\xbf\x43\xff\x6e\x36\x20\x14\xac\x46\x12\x75\x1f\xc5\ \x7b\x19\x07\x20\x2a\xd2\x13\xa7\x5c\x45\xde\x47\x9e\xc9\x76\x6c\ \x51\x41\xd0\xf0\xe7\xa0\xd1\x85\x47\x01\x90\xc1\x70\x39\x1e\xc1\ \x3f\x2f\x47\xfd\xdf\x14\x00\x7c\x89\xbc\x8a\x9c\xf9\xbf\x63\x8b\ \x0a\x42\x41\x49\xf8\x0f\x33\x17\x1a\x36\x8e\xda\x37\xc0\x46\xc5\ \x02\x00\x2a\x9f\x97\x8e\x33\xae\xe8\x20\xb0\x8a\x7d\x3f\x08\xf4\ \x00\x35\x6f\x17\x40\x4a\x04\x00\x3f\x23\xef\x21\x8f\x1f\x77\x5c\ \xd1\x41\xa0\x60\xc5\xde\xa6\xee\xee\xee\x0e\xe1\xfb\x32\x01\x00\ \xe5\x63\xe4\x69\xb1\xc6\x15\x1d\x04\x4d\xfb\x90\x43\x60\xf7\xde\ \x44\x23\xbb\x70\x76\xba\x25\x00\xb8\x81\xbc\x25\xf6\xb8\xa2\x83\ \xa0\x81\x53\x7b\x09\x76\xe6\x09\x5c\xaf\x7e\x91\x2e\x1f\x0e\xf1\ \x03\xa9\x53\xec\x31\x73\x02\x82\x9b\x95\xab\x58\x15\x6b\x75\x75\ \xf5\xcb\xf4\x19\x13\xff\x3c\x0d\xf1\x19\x52\x98\x0b\x88\x9c\x80\ \x40\xc1\x4f\xd2\xf3\x09\xff\x8c\xc9\xbf\x81\x9c\xa7\x4d\x2b\x57\ \x10\x94\xff\x00\x0c\x72\x2c\xb1\x4c\xc9\xc1\xa9\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xac\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x07\x00\x00\x00\x05\x08\x04\x00\x00\x00\x23\x93\x3e\x53\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x40\x49\x44\x41\x54\x08\xd7\x63\xf8\xcf\ \x00\x82\x13\xeb\x93\x95\x40\x34\x98\x33\x25\xea\xc1\xae\x55\x7d\ \x0c\x8c\x60\x6e\x9d\xc1\x95\x2d\x8f\x76\x3d\xda\xd5\x1e\x01\xe4\ \x86\x0a\x1d\x5e\x04\xe2\x3c\xda\x75\x66\x43\x92\x1c\x43\x5d\xf7\ \xae\x9d\x30\xd8\x38\x01\x00\x65\x08\x27\x8f\x6e\x3d\x5d\x1d\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x9f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x04\x00\x00\x00\xd8\xe2\x2c\xf7\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x33\x49\x44\x41\x54\x18\xd3\x63\x68\xac\ \x68\xfc\x81\x15\x56\x30\x34\xfe\xc7\x05\xc1\x52\xf7\x26\xbf\xec\ \x41\x86\xf7\x26\xc3\xa5\x3e\x74\xfc\x6f\x40\x86\x1f\x3a\x86\x90\ \x14\x1e\x7f\xe1\x0a\x0d\x9c\x61\x08\x00\xf5\x8f\xf9\x54\xcd\x1d\ \xdf\x00\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x1b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xad\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x41\x4a\xc4\x40\x10\x45\xdf\x4f\xfe\xb8\xc8\x4e\x74\xe7\x71\ \xd4\x6b\xa8\x17\x08\x78\x03\xef\x90\x6c\x04\xef\xe1\x2a\x82\x2b\ \xcf\x23\x43\x46\x48\xba\xdb\x72\x21\xd9\x4f\xfa\x41\x41\xfd\x82\ \x47\x51\xa5\x61\x18\xbe\xba\xae\xbb\xe1\x9f\x90\x14\x5b\xbf\xe5\ \x88\x6d\x44\xac\xeb\x7a\x4c\x29\xbd\xf6\x7d\xff\xe6\x83\xdd\x3d\ \x3d\x3e\x24\xce\x43\xcb\xb2\x5c\x4e\xd3\xc7\xcb\x38\x8e\x34\x48\ \x2a\x39\x73\x6e\xb9\x6d\x7f\xef\xef\x6e\x97\x83\xfd\x6c\x41\x53\ \x72\x66\x27\x61\xfb\xc2\x08\x95\x9c\xf6\xca\xa8\x51\x6b\xa1\x9a\ \xcd\x10\x60\x40\xa5\xa4\x0a\x37\x30\x75\x37\x43\x04\x16\xa8\x46\ \x8e\x08\x8c\x50\xae\x78\x18\x01\x9e\xe7\xd3\xd5\xfb\xf4\xf9\xbd\ \xd7\x9d\x4f\x3f\xd7\x7f\xf5\x8b\x6a\x66\x34\x31\xed\x59\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xf0\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x03\x00\x00\x00\x45\x35\x14\x4e\ \x00\x00\x00\x3c\x50\x4c\x54\x45\xf7\xf7\xf7\xff\xff\xff\x90\x90\ \x90\x8b\x8b\x8b\x8e\x8e\x8e\x8b\x8b\x8b\xec\xec\xec\x90\x90\x90\ \xc3\xc3\xc3\xde\xde\xde\xf0\xf0\xf0\xa0\xa0\xa0\xed\xed\xed\x90\ \x90\x90\xc2\xc2\xc2\x8f\x8f\x8f\xdc\xdc\xdc\x90\x90\x90\x8c\x8c\ \x8c\x8c\x8c\x8c\x20\x9b\x87\x59\x00\x00\x00\x14\x74\x52\x4e\x53\ \xc8\x00\xf0\x33\x87\x04\xcc\x9f\xde\xd2\xcb\xe7\xcc\xda\xdf\xa6\ \xd3\xdd\xf9\xfa\x54\x29\x6f\x66\x00\x00\x00\x4f\x49\x44\x41\x54\ \x78\x5e\x55\x8e\x59\x0a\x80\x30\x10\x43\x93\x99\x69\xab\xdd\xb5\ \xf7\xbf\xab\x88\x58\x98\xf7\x17\x42\x16\x90\xd4\xd4\xee\x96\x94\ \x24\x18\x4c\x8e\x33\x9f\x87\x58\x20\x68\xa5\xe2\xa5\x16\x23\x54\ \x22\x3e\xa2\x28\x46\xc7\x4f\x1f\xb8\xe6\x56\xf3\xc2\xca\x5b\xe5\ \xe5\x3d\x9f\xf3\x9d\x7e\xcf\x7f\xf1\x3f\x1f\x07\x1b\x02\xe3\x87\ \x82\x10\xf0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x81\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x01\x03\x00\x00\x00\x25\x3d\x6d\x22\ \x00\x00\x00\x06\x50\x4c\x54\x45\x00\x00\x00\xae\xae\xae\x77\x6b\ \xd6\x2d\x00\x00\x00\x01\x74\x52\x4e\x53\x00\x40\xe6\xd8\x66\x00\ \x00\x00\x29\x49\x44\x41\x54\x78\x5e\x05\xc0\xb1\x0d\x00\x20\x08\ \x04\xc0\xc3\x58\xd8\xfe\x0a\xcc\xc2\x70\x8c\x6d\x28\x0e\x97\x47\ \x68\x86\x55\x71\xda\x1d\x6f\x25\xba\xcd\xd8\xfd\x35\x0a\x04\x1b\ \xd6\xd9\x1a\x92\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x01\x63\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x03\x00\x00\x00\x45\x35\x14\x4e\ \x00\x00\x00\x7b\x50\x4c\x54\x45\xff\xff\xff\x8b\x8b\x8b\x8b\x8b\ \x8b\x8e\x8e\x8e\x90\x90\x90\x8f\x8f\x8f\xf7\xf7\xf7\xf4\xf3\xf3\ \xf0\xf0\xf0\xf2\xf1\xf1\xec\xec\xec\xed\xed\xed\xef\xed\xed\xeb\ \xe8\xe8\xde\xde\xde\xdc\xdc\xdc\xe3\xe1\xe1\xe1\xdd\xdd\x90\x90\ \x90\xdf\xda\xda\xde\xd9\xd9\x90\x90\x90\xc3\xc3\xc3\xda\xd4\xd4\ \xc2\xc2\xc2\xd4\xcf\xcf\xd2\xcb\xcb\xd0\xc8\xc8\xa0\xa0\xa0\xc9\ \xc2\xc2\x90\x90\x90\xc3\xbb\xbb\xc1\xb7\xb7\xc1\xb8\xb8\xc1\xb7\ \xb7\x8c\x8c\x8c\xc1\xb8\xb8\x8c\x8c\x8c\xc2\xb8\xb8\xc2\xb9\xb9\ \xc3\xba\xba\xd5\x0f\x4f\x7d\x00\x00\x00\x29\x74\x52\x4e\x53\x00\ \x04\x33\x87\x9f\xa6\xc8\xca\xcb\xcb\xcc\xcc\xcd\xd1\xd2\xd3\xd5\ \xd8\xda\xda\xdb\xdd\xde\xde\xdf\xe2\xe4\xe6\xe7\xec\xf0\xf2\xf5\ \xf6\xf7\xf9\xf9\xfa\xfa\xfa\xfd\x3e\x2b\x06\xf8\x00\x00\x00\x6e\ \x49\x44\x41\x54\x08\x5b\x5d\x8e\x41\x02\xc1\x30\x00\x04\xb7\x49\ \x33\xa2\xa5\xa1\xa4\x82\x0a\x45\xf1\xff\x17\x3a\xf4\xa2\xe6\xbe\ \xb3\x23\x49\xa6\x6c\x1f\x6d\x69\x24\x49\x85\xcd\x5d\xe3\x9b\x2e\ \xdb\x42\x92\xed\x6b\x00\xea\xde\x4a\x26\x57\x4c\x54\xd9\xc8\x25\ \x60\xb5\x59\x02\xc9\x29\x06\xd8\xde\x86\xeb\x1a\x42\xd4\xe8\xe1\ \xf2\xfe\x3c\x8f\xe0\x47\xc5\x00\xa7\xfb\x6b\xd8\x43\x88\x72\x09\ \x16\x87\xf3\x6e\xda\xcd\x9d\xf3\xbf\xbf\x96\xdf\xce\x2f\xbf\x0b\ \x07\xc6\xa9\xa3\x54\xf8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x02\x0d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x13\x08\x06\x00\x00\x00\xd6\x3a\x8e\x1f\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\x9f\x49\x44\x41\x54\x48\xc7\xd5\ \x57\xcd\x4a\xc3\x40\x18\xdc\x4d\xd6\x5a\x2a\xfd\xc1\x9f\x46\x85\ \x5a\x29\x88\xf4\x09\x4c\x3d\xa9\x27\xc1\x5e\x7c\x94\x4a\xf1\x05\ \x3c\x5a\xf0\xd6\x9b\x3e\x81\x98\x07\x28\xe6\x50\x7a\xb2\x97\x2a\ \x5e\xa5\xb7\xaa\x87\xd8\x54\x48\x4c\x62\xf2\xad\xdf\xd2\xd8\xf6\ \x11\xb2\x13\x16\xf6\xcb\x69\x66\x67\x06\x76\x29\xe7\x9c\xb4\x5a\ \xad\x12\xa5\xf4\x06\xd7\x31\x00\xac\x92\xe4\x82\x2b\x8a\xf2\x86\ \x1c\x6f\x71\x7f\xdd\x6c\x36\x23\x86\xe4\x77\x91\xf8\x73\x3e\x9f\ \x67\xba\xae\x07\x9a\xa6\x39\x09\x16\x40\x86\xc3\xa1\xd6\xeb\xf5\ \xae\xf0\xe0\x0f\x70\x3c\xa7\x28\xc0\xa8\x54\x2a\xa7\xf5\x7a\x7d\ \xc4\x10\xf8\x73\x59\xb8\x92\x60\x78\x28\x62\xc9\x30\x8c\x2d\xdc\ \x9f\x31\x4a\xc9\x51\xad\x56\xe3\x8c\xa9\x2a\x40\x14\x22\xf9\x88\ \x24\x1c\xe5\xf2\x8e\x5f\x28\x14\x5c\xdb\xb6\x4f\x18\x00\x2f\xa4\ \xd3\xe9\x9f\x28\x02\x21\x00\x88\x24\xc8\xe5\xb2\xdc\xb2\xac\x4d\ \x36\x6b\x07\x44\x94\x83\x34\xfc\x91\x30\x21\x58\x66\x85\xfd\x4f\ \x1c\xc4\x02\x99\xf8\x0b\x50\x36\x53\x23\x3e\x2e\x91\x03\xb1\x04\ \x16\x9f\xbf\xf0\x83\xc8\x15\xa1\x05\x01\x53\xfe\x5c\x64\x4a\x36\ \xfe\x64\x5e\x62\x8c\x10\x97\x39\x42\x92\x96\x78\x1e\x21\x41\x1e\ \xa4\xed\xc0\xb4\xc6\x92\x45\x28\x76\x00\x2f\x72\x4e\x18\x86\xaa\ \x4a\x55\xa9\x22\xe4\x38\xae\x48\xcc\xb7\x70\xe0\x69\x34\x7a\x3f\ \x2c\x6d\x17\xc3\x84\x5f\xe2\x66\xb0\xbe\xc6\x29\x7b\x32\xc9\x78\ \x9e\xd7\x67\x48\xfa\xe2\xd1\x34\xfb\xc5\xe2\xc6\x5a\x75\x7f\xcf\ \x59\xc9\x64\xc2\xe4\xc6\x1e\xa8\x65\x8d\x53\x83\x97\xd7\x2c\xf2\ \x1e\xb4\xdb\xed\x7b\x1a\x3f\x68\x74\x8c\xd2\x1d\xee\xab\x12\x18\ \xf0\x8b\x91\x7f\x30\x4d\xf3\xb2\xd3\xe9\x7c\xd2\xc5\xd8\x34\x1a\ \x8d\x75\xd7\x75\xb5\x20\x08\xd4\x64\x3a\xc0\x79\xb7\xdb\xfd\xc0\ \xf7\x80\x8f\xa3\x8f\xa3\xff\x07\x2d\x6a\xf7\xea\xcc\x13\x18\xa8\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x03\ \x00\x00\x78\xa3\ \x00\x71\ \x00\x73\x00\x73\ \x00\x0a\ \x0c\xbd\x13\x23\ \x00\x63\ \x00\x6f\x00\x66\x00\x66\x00\x65\x00\x65\x00\x2e\x00\x71\x00\x73\x00\x73\ \x00\x0b\ \x0c\xe2\x21\xa3\ \x00\x64\ \x00\x65\x00\x66\x00\x61\x00\x75\x00\x6c\x00\x74\x00\x2e\x00\x71\x00\x73\x00\x73\ \x00\x0c\ \x0c\xe8\xef\x03\ \x00\x70\ \x00\x61\x00\x67\x00\x65\x00\x66\x00\x6f\x00\x6c\x00\x64\x00\x2e\x00\x71\x00\x73\x00\x73\ \x00\x1e\ \x00\x4f\xcb\xe7\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\ \x00\x64\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x16\ \x0b\x31\x44\x87\ \x00\x70\ \x00\x75\x00\x73\x00\x68\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\ \x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x14\ \x05\x6a\xa8\xa7\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ \x00\x1c\ \x02\x75\x51\x87\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\x00\x64\x00\x5f\ \x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x12\ \x03\xe4\x59\x27\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x75\x00\x70\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\ \x00\x67\ \x00\x10\ \x07\x5f\x75\x87\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x75\x00\x70\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x10\ \x0c\xba\x0b\x87\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x21\ \x09\x84\x6e\x87\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\ \x00\x63\x00\x6b\x00\x65\x00\x64\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \ \x00\x09\ \x08\x38\x8c\x47\ \x00\x66\ \x00\x72\x00\x61\x00\x6d\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1a\ \x03\x0e\xe4\x87\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\x00\x64\x00\x5f\ \x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1f\ \x0c\x85\x15\xa7\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\ \x00\x63\x00\x6b\x00\x65\x00\x64\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1d\ \x05\xbc\x2c\x47\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\ \x00\x65\x00\x64\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x09\xaf\x5e\x27\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x17\ \x0c\xab\x51\x07\ \x00\x64\ \x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x5f\x00\x64\x00\x69\x00\x73\x00\x61\x00\x62\x00\x6c\ \x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x02\x9c\x73\xc7\ \x00\x70\ \x00\x75\x00\x73\x00\x68\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1c\ \x0e\x3c\xde\x07\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\ \x00\x64\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1f\ \x00\xbd\x9c\xe7\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\ \x00\x65\x00\x64\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x04\xa2\xfc\xa7\ \x00\x64\ \x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x06\xe6\xe6\x67\ \x00\x75\ \x00\x70\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x12\ \x0f\x99\xfb\x67\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\ \x00\x67\ \x00\x14\ \x07\xec\xd1\xc7\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\x00\x64\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x0b\xc2\xcd\x07\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x75\x00\x70\x00\x5f\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0c\xe8\xe0\xe7\ \x00\x70\ \x00\x61\x00\x67\x00\x65\x00\x66\x00\x6f\x00\x6c\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x15\ \x0f\xf3\xc0\x07\ \x00\x75\ \x00\x70\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x5f\x00\x64\x00\x69\x00\x73\x00\x61\x00\x62\x00\x6c\x00\x65\x00\x64\ \x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x16\ \x01\x75\xcc\x87\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\ \x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x05\xcc\x19\x47\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x75\x00\x70\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x19\ \x08\x11\x29\x47\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\ \x00\x63\x00\x6b\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x06\x41\x40\x87\ \x00\x73\ \x00\x69\x00\x7a\x00\x65\x00\x67\x00\x72\x00\x69\x00\x70\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x17\ \x04\xb5\xb5\xa7\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\ \x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x14\ \x09\x87\xa0\x87\ \x00\x70\ \x00\x75\x00\x73\x00\x68\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\ \x00\x00\x00\x12\x00\x02\x00\x00\x00\x03\x00\x00\x00\x21\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x1e\x00\x00\x00\x03\ \x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x9a\ \x00\x00\x03\x98\x00\x00\x00\x00\x00\x01\x00\x00\x25\x98\ \x00\x00\x04\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x33\x5d\ \x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00\x13\xef\ \x00\x00\x03\x38\x00\x00\x00\x00\x00\x01\x00\x00\x22\xdc\ \x00\x00\x02\x28\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xfc\ \x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\x15\x9c\ \x00\x00\x03\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x27\xf3\ \x00\x00\x05\x86\x00\x00\x00\x00\x00\x01\x00\x00\x36\x98\ \x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x12\xe3\ \x00\x00\x02\xa6\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xfa\ \x00\x00\x05\x16\x00\x00\x00\x00\x00\x01\x00\x00\x34\x00\ \x00\x00\x05\x68\x00\x00\x00\x00\x00\x01\x00\x00\x36\x13\ \x00\x00\x03\xfe\x00\x00\x00\x00\x00\x01\x00\x00\x28\xa6\ \x00\x00\x01\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x16\xb5\ \x00\x00\x04\x46\x00\x00\x00\x00\x00\x01\x00\x00\x2a\x7f\ \x00\x00\x05\x30\x00\x00\x00\x00\x00\x01\x00\x00\x35\x1f\ \x00\x00\x02\x10\x00\x00\x00\x00\x00\x01\x00\x00\x1a\xfb\ \x00\x00\x01\xc8\x00\x00\x00\x00\x00\x01\x00\x00\x18\xcb\ \x00\x00\x05\xba\x00\x00\x00\x00\x00\x01\x00\x00\x37\xff\ \x00\x00\x02\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x21\x12\ \x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x10\xde\ \x00\x00\x04\x74\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x8a\ \x00\x00\x02\x62\x00\x00\x00\x00\x00\x01\x00\x00\x1d\x0a\ \x00\x00\x03\x04\x00\x00\x00\x00\x00\x01\x00\x00\x22\x2a\ \x00\x00\x01\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x17\xce\ \x00\x00\x04\x96\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xa0\ \x00\x00\x03\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x24\xf5\ \x00\x00\x04\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x29\x6f\ \x00\x00\x04\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x32\xad\ \x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x08\xcb\ \x00\x00\x00\x54\x00\x01\x00\x00\x00\x01\x00\x00\x08\xe6\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/stylesheet_rc3.py0000644000076500000240000021151412536324427024747 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:51:48 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x08\xc7\ \x2e\ \x51\x57\x69\x64\x67\x65\x74\x20\x7b\x0a\x20\x20\x20\x62\x61\x63\ \x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x62\ \x65\x69\x67\x65\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x4e\x69\x63\x65\ \x20\x57\x69\x6e\x64\x6f\x77\x73\x2d\x58\x50\x2d\x73\x74\x79\x6c\ \x65\x20\x70\x61\x73\x73\x77\x6f\x72\x64\x20\x63\x68\x61\x72\x61\ \x63\x74\x65\x72\x2e\x20\x2a\x2f\x0a\x51\x4c\x69\x6e\x65\x45\x64\ \x69\x74\x5b\x65\x63\x68\x6f\x4d\x6f\x64\x65\x3d\x22\x32\x22\x5d\ \x20\x7b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x65\x64\x69\x74\x2d\ \x70\x61\x73\x73\x77\x6f\x72\x64\x2d\x63\x68\x61\x72\x61\x63\x74\ \x65\x72\x3a\x20\x39\x36\x37\x39\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\ \x57\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x20\x61\x20\x6d\x69\x6e\ \x2d\x77\x69\x64\x74\x68\x20\x61\x6e\x64\x20\x6d\x69\x6e\x2d\x68\ \x65\x69\x67\x68\x74\x20\x66\x6f\x72\x20\x70\x75\x73\x68\x20\x62\ \x75\x74\x74\x6f\x6e\x73\x0a\x20\x20\x20\x73\x6f\x20\x74\x68\x61\ \x74\x20\x74\x68\x65\x79\x20\x6c\x6f\x6f\x6b\x20\x65\x6c\x65\x67\ \x61\x6e\x74\x20\x72\x65\x67\x61\x72\x64\x6c\x65\x73\x73\x20\x6f\ \x66\x20\x74\x68\x65\x20\x77\x69\x64\x74\x68\x20\x6f\x66\x20\x74\ \x68\x65\x20\x74\x65\x78\x74\x2e\x20\x2a\x2f\x0a\x51\x50\x75\x73\ \x68\x42\x75\x74\x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\ \x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\ \x70\x61\x6c\x65\x67\x6f\x6c\x64\x65\x6e\x72\x6f\x64\x3b\x0a\x20\ \x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\ \x20\x32\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\ \x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x64\x61\x72\x6b\x6b\x68\x61\x6b\ \x69\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\ \x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\ \x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\ \x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x33\ \x70\x78\x3b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\x77\x69\x64\x74\ \x68\x3a\x20\x39\x65\x78\x3b\x0a\x20\x20\x20\x20\x6d\x69\x6e\x2d\ \x68\x65\x69\x67\x68\x74\x3a\x20\x32\x2e\x35\x65\x78\x3b\x0a\x7d\ \x0a\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\x6f\x6e\x3a\x68\x6f\ \x76\x65\x72\x20\x7b\x0a\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\ \x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x6b\x68\x61\x6b\x69\ \x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x49\x6e\x63\x72\x65\x61\x73\x65\ \x20\x74\x68\x65\x20\x70\x61\x64\x64\x69\x6e\x67\x2c\x20\x73\x6f\ \x20\x74\x68\x65\x20\x74\x65\x78\x74\x20\x69\x73\x20\x73\x68\x69\ \x66\x74\x65\x64\x20\x77\x68\x65\x6e\x20\x74\x68\x65\x20\x62\x75\ \x74\x74\x6f\x6e\x20\x69\x73\x0a\x20\x20\x20\x70\x72\x65\x73\x73\ \x65\x64\x2e\x20\x2a\x2f\x0a\x51\x50\x75\x73\x68\x42\x75\x74\x74\ \x6f\x6e\x3a\x70\x72\x65\x73\x73\x65\x64\x20\x7b\x0a\x20\x20\x20\ \x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x6c\x65\x66\x74\x3a\x20\x35\ \x70\x78\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\ \x74\x6f\x70\x3a\x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x61\ \x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\ \x23\x64\x30\x64\x36\x37\x63\x3b\x0a\x7d\x0a\x0a\x51\x4c\x61\x62\ \x65\x6c\x2c\x20\x51\x41\x62\x73\x74\x72\x61\x63\x74\x42\x75\x74\ \x74\x6f\x6e\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x3a\x20\ \x62\x6f\x6c\x64\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x4d\x61\x72\x6b\ \x20\x6d\x61\x6e\x64\x61\x74\x6f\x72\x79\x20\x66\x69\x65\x6c\x64\ \x73\x20\x77\x69\x74\x68\x20\x61\x20\x62\x72\x6f\x77\x6e\x69\x73\ \x68\x20\x63\x6f\x6c\x6f\x72\x2e\x20\x2a\x2f\x0a\x2e\x6d\x61\x6e\ \x64\x61\x74\x6f\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\ \x6f\x72\x3a\x20\x62\x72\x6f\x77\x6e\x3b\x0a\x7d\x0a\x0a\x2f\x2a\ \x20\x42\x6f\x6c\x64\x20\x74\x65\x78\x74\x20\x6f\x6e\x20\x73\x74\ \x61\x74\x75\x73\x20\x62\x61\x72\x20\x6c\x6f\x6f\x6b\x73\x20\x61\ \x77\x66\x75\x6c\x2e\x20\x2a\x2f\x0a\x51\x53\x74\x61\x74\x75\x73\ \x42\x61\x72\x20\x51\x4c\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\ \x66\x6f\x6e\x74\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x3b\x0a\x7d\x0a\ \x0a\x51\x53\x74\x61\x74\x75\x73\x42\x61\x72\x3a\x3a\x69\x74\x65\ \x6d\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\ \x69\x64\x74\x68\x3a\x20\x31\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\ \x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x64\x61\x72\x6b\x6b\ \x68\x61\x6b\x69\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\ \x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x0a\x20\ \x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\ \x3a\x20\x32\x3b\x0a\x7d\x0a\x0a\x51\x43\x6f\x6d\x62\x6f\x42\x6f\ \x78\x2c\x20\x51\x4c\x69\x6e\x65\x45\x64\x69\x74\x2c\x20\x51\x53\ \x70\x69\x6e\x42\x6f\x78\x2c\x20\x51\x54\x65\x78\x74\x45\x64\x69\ \x74\x2c\x20\x51\x4c\x69\x73\x74\x56\x69\x65\x77\x20\x7b\x0a\x20\ \x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\ \x6c\x6f\x72\x3a\x20\x63\x6f\x72\x6e\x73\x69\x6c\x6b\x3b\x0a\x20\ \x20\x20\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x63\x6f\x6c\ \x6f\x72\x3a\x20\x23\x30\x61\x32\x31\x34\x63\x3b\x20\x0a\x20\x20\ \x20\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x62\x61\x63\x6b\ \x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x43\ \x31\x39\x41\x36\x42\x3b\x0a\x7d\x0a\x0a\x51\x4c\x69\x73\x74\x56\ \x69\x65\x77\x20\x7b\x0a\x20\x20\x20\x20\x73\x68\x6f\x77\x2d\x64\ \x65\x63\x6f\x72\x61\x74\x69\x6f\x6e\x2d\x73\x65\x6c\x65\x63\x74\ \x65\x64\x3a\x20\x31\x3b\x0a\x7d\x0a\x0a\x51\x4c\x69\x73\x74\x56\ \x69\x65\x77\x3a\x3a\x69\x74\x65\x6d\x3a\x68\x6f\x76\x65\x72\x20\ \x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ \x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x65\x61\x74\x3b\x0a\x7d\ \x0a\x0a\x2f\x2a\x20\x57\x65\x20\x72\x65\x73\x65\x72\x76\x65\x20\ \x31\x20\x70\x69\x78\x65\x6c\x20\x73\x70\x61\x63\x65\x20\x69\x6e\ \x20\x70\x61\x64\x64\x69\x6e\x67\x2e\x20\x57\x68\x65\x6e\x20\x77\ \x65\x20\x67\x65\x74\x20\x74\x68\x65\x20\x66\x6f\x63\x75\x73\x2c\ \x0a\x20\x20\x20\x77\x65\x20\x6b\x69\x6c\x6c\x20\x74\x68\x65\x20\ \x70\x61\x64\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\x65\x6e\x6c\x61\ \x72\x67\x65\x20\x74\x68\x65\x20\x62\x6f\x72\x64\x65\x72\x2e\x20\ \x54\x68\x69\x73\x20\x6d\x61\x6b\x65\x73\x20\x74\x68\x65\x20\x69\ \x74\x65\x6d\x73\x0a\x20\x20\x20\x67\x6c\x6f\x77\x2e\x20\x2a\x2f\ \x0a\x51\x4c\x69\x6e\x65\x45\x64\x69\x74\x2c\x20\x51\x46\x72\x61\ \x6d\x65\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\ \x77\x69\x64\x74\x68\x3a\x20\x32\x70\x78\x3b\x0a\x20\x20\x20\x20\ \x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x31\x70\x78\x3b\x0a\x20\x20\ \x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\ \x73\x6f\x6c\x69\x64\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\ \x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x64\x61\x72\x6b\x6b\x68\x61\ \x6b\x69\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\ \x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x2f\ \x2a\x20\x41\x73\x20\x6d\x65\x6e\x74\x69\x6f\x6e\x65\x64\x20\x61\ \x62\x6f\x76\x65\x2c\x20\x65\x6c\x69\x6d\x69\x6e\x61\x74\x65\x20\ \x74\x68\x65\x20\x70\x61\x64\x64\x69\x6e\x67\x20\x61\x6e\x64\x20\ \x69\x6e\x63\x72\x65\x61\x73\x65\x20\x74\x68\x65\x20\x62\x6f\x72\ \x64\x65\x72\x2e\x20\x2a\x2f\x0a\x51\x4c\x69\x6e\x65\x45\x64\x69\ \x74\x3a\x66\x6f\x63\x75\x73\x2c\x20\x51\x46\x72\x61\x6d\x65\x3a\ \x66\x6f\x63\x75\x73\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\ \x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x33\x70\x78\x3b\x0a\x20\ \x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x3b\ \x0a\x7d\x0a\x0a\x2f\x2a\x20\x41\x20\x51\x4c\x61\x62\x65\x6c\x20\ \x69\x73\x20\x61\x20\x51\x46\x72\x61\x6d\x65\x20\x2e\x2e\x2e\x20\ \x2a\x2f\x0a\x51\x4c\x61\x62\x65\x6c\x20\x7b\x0a\x20\x20\x20\x20\ \x62\x6f\x72\x64\x65\x72\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x20\x20\ \x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x3b\x0a\x20\x20\ \x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x6e\x6f\ \x6e\x65\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x41\x20\x51\x54\x6f\x6f\ \x6c\x54\x69\x70\x20\x69\x73\x20\x61\x20\x51\x4c\x61\x62\x65\x6c\ \x20\x2e\x2e\x2e\x20\x2a\x2f\x0a\x51\x54\x6f\x6f\x6c\x54\x69\x70\ \x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x32\ \x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x64\x61\x72\x6b\x6b\x68\x61\ \x6b\x69\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\ \x20\x35\x70\x78\x3b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\ \x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x33\x70\x78\x3b\x0a\x20\x20\ \x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x32\x30\x30\x3b\x0a\ \x7d\x0a\x0a\x2f\x2a\x20\x4e\x69\x63\x65\x20\x74\x6f\x20\x68\x61\ \x76\x65\x20\x74\x68\x65\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\ \x64\x20\x63\x6f\x6c\x6f\x72\x20\x63\x68\x61\x6e\x67\x65\x20\x77\ \x68\x65\x6e\x20\x68\x6f\x76\x65\x72\x65\x64\x2e\x20\x2a\x2f\x0a\ \x51\x52\x61\x64\x69\x6f\x42\x75\x74\x74\x6f\x6e\x3a\x68\x6f\x76\ \x65\x72\x2c\x20\x51\x43\x68\x65\x63\x6b\x42\x6f\x78\x3a\x68\x6f\ \x76\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\ \x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x77\x68\x65\x61\ \x74\x3b\x0a\x7d\x0a\x0a\x2f\x2a\x20\x46\x6f\x72\x63\x65\x20\x74\ \x68\x65\x20\x64\x69\x61\x6c\x6f\x67\x27\x73\x20\x62\x75\x74\x74\ \x6f\x6e\x73\x20\x74\x6f\x20\x66\x6f\x6c\x6c\x6f\x77\x20\x74\x68\ \x65\x20\x57\x69\x6e\x64\x6f\x77\x73\x20\x67\x75\x69\x64\x65\x6c\ \x69\x6e\x65\x73\x2e\x20\x2a\x2f\x0a\x51\x44\x69\x61\x6c\x6f\x67\ \x42\x75\x74\x74\x6f\x6e\x42\x6f\x78\x20\x7b\x0a\x20\x20\x20\x20\ \x62\x75\x74\x74\x6f\x6e\x2d\x6c\x61\x79\x6f\x75\x74\x3a\x20\x30\ \x3b\x0a\x7d\x0a\x0a\x0a\ \x00\x00\x00\x17\ \x2f\ \x2a\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x79\x6c\x65\x73\x68\x65\ \x65\x74\x20\x2a\x2f\x0a\ \x00\x00\x06\xb0\ \x00\ \x00\x1a\x79\x78\x9c\xa5\x59\x6d\x6f\xdb\x36\x10\xfe\xee\x5f\x71\ \xe8\x3e\xa4\x4d\xe3\xbc\xb5\x4e\x51\x05\x1d\xd0\x14\x5b\x31\xa0\ \xd9\xea\x25\x58\x07\x14\x45\x40\x49\xb4\x4d\x44\x16\x05\x92\x8a\ \xe3\x6d\xfd\xef\xbb\xe3\x8b\x2c\x59\x92\x5f\xd2\x02\x2d\x2c\xea\ \x78\x2f\xcf\x3d\x3c\xde\xa9\x27\x87\xf0\xa1\xd4\x46\xce\xc5\x3f\ \x1c\x58\xbe\x84\x22\x63\x22\x87\x85\x48\xa7\xdc\x80\x99\x31\x03\ \x42\x03\x83\x64\x26\xb2\x14\xe4\x04\x7f\x8e\xaf\x51\xe2\x8b\xc8\ \x53\xb9\x38\x86\xc3\x93\x41\xed\x19\x7e\x86\xe3\xf1\x17\xb7\xf7\ \xdf\x01\xe0\x9f\x98\x25\xf7\x53\x25\xcb\x3c\x1d\x26\x32\x93\x2a\ \x82\x29\x4a\xeb\x58\x2a\x79\xb9\x2e\x20\xe6\x6c\xca\x23\x28\x55\ \xf6\x3c\x3a\xb1\x0f\xfa\xa4\xc0\x7f\x27\x32\x4b\x8f\x8b\x7c\xfa\ \xa2\xb5\xa3\x90\x5a\x18\x21\xf3\x08\x8c\x2c\x40\x89\xe9\xcc\xb4\ \x64\x14\x2f\x38\x33\x11\xe4\xd2\xff\x1c\x7c\x1f\x0c\x4e\x0e\xe1\ \xb3\x92\x0f\x22\xc5\xa0\xa1\x60\x69\x2a\xf2\x29\x4c\xa4\xc2\x88\ \x39\x64\x6c\x29\x4b\x8c\x3b\xd7\xf4\x9e\x56\x26\x8a\xcd\xf9\x31\ \xdc\x86\x9f\x64\x83\x3f\x0a\x6d\x34\xc8\x3c\x5b\xa2\x75\x28\x7a\ \xd5\xa1\x6b\x43\xeb\x1a\xd8\x98\x8e\x40\x4b\x58\x78\x15\x45\x26\ \x12\x61\x50\x43\x2a\x34\x8b\x33\x67\x0d\xc1\x49\xb9\xb2\xd8\xfe\ \x34\x47\xb4\x7e\x25\x93\x1e\x4f\xaf\xdc\x29\x8c\xe0\xd5\x69\xf1\ \xe8\x23\xb6\x9b\x86\xda\x2c\x33\x4e\xc1\xe6\xbc\xb1\xee\xb1\xb5\ \xeb\x80\xd1\x6b\x91\x27\x1c\xdd\x00\x8d\xa9\x62\x0d\x29\x88\x79\ \x86\xa9\x44\xeb\x0e\xa8\x95\x0b\x0b\x99\x1f\x18\x98\xb1\x07\xf2\ \x13\x69\xd1\xd8\x55\x69\xa4\xf7\x6b\xd1\x91\x11\x61\x08\xa6\x03\ \xf2\xe0\x00\x4a\x4d\x08\x31\x98\x4b\x85\x3b\x0b\x9e\x88\x89\x48\ \x50\x2c\xe3\x89\x91\x2e\xf4\xb1\xb5\x79\x04\xe3\x4f\x22\xe7\xbf\ \xa4\xc2\xe0\xcf\x0f\x72\x1e\xcb\x2b\xf9\xf8\x95\xe3\x33\xe1\xf5\ \xee\x99\x51\x25\x7f\xf6\x0d\xdf\xdd\x14\x22\xc7\x57\x81\x77\x8d\ \xb0\x1b\x94\x72\xc9\x24\x3e\xc1\xeb\x06\x46\x48\x7a\x33\x43\x4c\ \x2f\x29\xf0\xf1\x27\x86\x38\x34\xb4\x6d\x81\xb5\x9e\x9f\x08\x4e\ \xd7\x89\x18\xa4\x1c\xa8\xd7\xec\x1e\x41\xe4\x8f\x44\x33\x98\x73\ \xad\x2d\xf0\xf2\x91\x6b\x8f\x02\x45\xe7\x8f\x97\x7b\xbb\x8a\x0d\ \xb7\x23\x26\xf7\xfa\x7d\x92\xe0\x2b\x81\x82\x57\xcb\x6b\x59\x6a\ \x0e\xff\xc1\x2d\xaa\xbc\xa9\x14\x84\x75\x54\x43\x1b\xbd\x1d\x34\ \x33\x24\xd3\x43\x91\x1b\xae\x58\x42\x27\x68\x38\xc9\xd8\x54\x47\ \x30\x22\x07\x51\x94\x7c\xbc\xb1\x15\x80\x7b\x87\x50\x08\xec\x11\ \xd6\x96\xd9\x2c\xcb\x7c\x95\xd0\xce\xcd\xc6\xb1\xaf\xb6\x84\x53\ \x1f\x67\x08\xc4\xe5\xda\xbb\x76\x71\xb8\x11\xd9\x03\x57\x4e\xae\ \xb9\xb3\x0e\x1b\xfa\xc4\x73\x23\x90\x3a\x0a\x89\xea\xf4\xf1\x94\ \x90\x14\x86\xcf\xe1\x41\xf0\x85\x77\xea\x7d\xac\x0d\x45\xf8\x1b\ \xae\xff\x85\xcb\xc1\xbd\x99\x5c\x0c\x53\x9e\x48\xc5\xac\x23\x41\ \x45\x04\x67\xc1\xd2\xef\x02\xd9\xec\xaa\x9a\xfe\xfb\xb3\x3b\x57\ \x98\x5d\xad\x17\x98\x79\x2c\x87\x8c\xd4\x72\x65\xb1\xa8\x96\x33\ \xa4\x2a\x10\x37\xbd\xf9\x40\xdd\xaf\x3c\x99\xc9\x6b\x99\x22\x5f\ \xcf\x9f\x7d\xf3\x4e\x90\x30\xc9\x0e\xc3\xf6\x61\xa5\x35\x82\xb7\ \x17\x6f\xde\x06\x57\x56\x05\xda\x48\x99\x19\x51\x78\xed\xb7\xf8\ \x74\x2b\x8a\xde\x4a\xab\xa6\xf1\xf3\xf3\xd3\xd3\x23\xfb\x77\x34\ \x7a\xd1\x60\xae\x97\x49\x99\xba\xd7\x19\x33\x7c\xaa\xd8\xb2\xeb\ \x34\x9c\x75\x17\x18\x2d\x33\x91\xae\x51\xfe\x55\x10\x9d\xc8\x1c\ \x6b\x53\x8c\x65\xbb\xb1\x55\xb1\x54\x94\xba\x26\x27\x0b\x86\xf5\ \x61\x19\x01\x7a\xd8\x0e\x96\xc4\x25\xc4\xa5\x31\x32\x77\x11\x0f\ \xc6\x7f\xd2\xda\x95\x5d\x0a\xa9\x24\x1d\x64\x7d\x44\x5a\xbf\x37\ \x65\xa2\x08\x13\x28\x12\x86\x35\xc5\x8b\x87\xa8\x2a\x1f\x66\xdc\ \x55\x52\xb7\xd2\xbf\x3f\x8a\xca\x3c\x99\xf1\xe4\x1e\x89\xe6\x54\ \x75\xd5\x16\xeb\xb3\x73\xf9\xae\x92\xf7\x77\xd7\x06\xdd\x95\x68\ \x34\x93\xc8\xff\x7d\x0d\xdc\xd9\x5d\xfb\x98\x29\x14\x96\x82\xfd\ \x23\xb9\xf3\xfb\xb6\x9b\x8a\xf6\xc3\x6a\x67\xa4\x9e\x82\xd3\x9e\ \x28\x3d\x0d\xa3\x5e\x84\x1a\x9c\x66\x0a\x2b\x96\x27\xf3\x61\x14\ \x61\x71\xc9\x87\x76\xed\x08\xf0\x71\xce\xf3\x72\xb8\xce\xd8\x2e\ \xc3\xb4\xef\xce\xee\xab\xf5\x45\x9e\xda\x6f\xd6\x99\xfd\xc6\x13\ \xbb\x61\x2f\xf2\x0d\x47\x6a\x0d\xd7\xd6\xe5\x64\xe2\x0c\x6f\xb6\ \x7b\x17\xf6\xaf\x02\x45\x3d\x65\xe1\xb4\x6c\x70\xbd\x2c\x9e\xe2\ \x78\x50\xdc\x74\xbb\x5a\xdd\xe8\x74\xb0\xd8\xe1\x72\x23\x37\x45\ \xa9\x67\xa1\xdc\x60\x2b\x8c\x45\x9e\xba\x0d\x7b\x27\x1f\xc3\x1f\ \xa5\x02\xc5\x59\x3a\xb4\xfd\x5e\x78\x63\x4d\x6a\x40\x5a\x61\x8f\ \x23\xe6\x22\x63\x8a\x9a\x1c\x56\xd7\x65\xfb\x3d\xbc\xb2\x50\x02\ \xcb\xbb\xbb\xbd\x34\x75\x53\xae\x2a\x3a\x97\x7d\x79\xfb\x8c\xdb\ \x1a\xd5\x6d\x2e\xf2\x50\x88\x5f\xf3\xb9\xa3\xed\x4a\xa8\xbb\x23\ \x9a\xb0\x4c\x53\x4b\x34\xe8\x6f\x97\x30\xe3\x0a\xbb\x52\x4a\xe7\ \xf6\x7e\x89\x62\x71\xa1\xb8\xa6\x69\xd4\x75\x4d\x8c\xd6\x7d\x73\ \x27\x74\xa3\x87\x5e\x64\x37\x3f\x2b\x7d\xd7\x78\x48\xae\x18\x56\ \x18\xba\xeb\x1b\x75\x60\xa7\x18\x6a\x55\x60\xd7\x48\xfc\x91\xde\ \x1c\x0b\x66\x63\xc7\x40\x6c\xde\x9a\x51\xc8\xbd\xd2\xd0\xa8\x31\ \x9b\x82\x68\x5e\xa7\x2d\xf6\xf2\x70\xab\xf6\x87\xb5\x36\x75\x64\ \x7c\x62\x6a\xf7\xf7\xda\x30\x72\x4e\xc3\x88\x1d\x2e\xf0\x4e\xe6\ \xd5\xfc\xe3\x2a\x82\x1b\x27\x36\x21\xd8\xe2\xa4\x2e\xe3\x04\x3b\ \x09\x25\xb3\xa1\x44\x13\x02\xc7\x3c\x6f\xf1\x72\xfd\x7d\xef\x20\ \x18\xee\xfb\xd1\x5a\x1b\x43\x91\x74\xf4\x32\xf5\xb7\xb5\x0e\xa9\ \xd5\x1c\x59\x81\x7a\x87\xb4\x35\xb6\xaa\xc2\xf6\x07\x47\xcf\xd8\ \xd7\x6e\x08\x2e\xe1\xd4\xb1\x7b\xf0\xab\x55\xc5\xb1\x81\x13\x0f\ \x7e\x02\x71\x39\x3a\xf3\xa9\x38\x83\x42\x3c\xe2\x1c\x43\xd8\x5a\ \x68\x7d\xd5\xa9\xa6\x3b\x9a\x69\x03\x21\x7c\xaa\x04\x4d\xb5\xb0\ \x98\xf1\xdc\xe6\xaf\x90\x45\x59\xd8\xc5\x82\xe7\xae\xf3\xdc\x2d\ \xd2\x15\xad\xfb\x7c\xc5\x64\xd5\x3a\x4c\xe7\xf9\xb9\x87\xb3\x41\ \xde\x60\x67\x27\xee\xba\x23\xd7\x3d\x30\x9f\x5d\x6c\xc8\x56\x5f\ \x71\xec\xc8\x95\x83\x71\x7f\x1e\xae\xce\x4e\x25\xc9\x62\x24\x60\ \x69\xea\x90\x9c\xaf\xd8\x8a\x07\x7e\x5e\x5b\x08\x47\x6d\x9f\x28\ \xf6\xab\xb0\x3b\x57\xb1\x66\xc9\xf2\x01\xda\x12\x00\x7d\x47\xe5\ \x95\x67\xe5\x82\x03\xcd\x3e\xee\xe3\x09\x09\xb8\xfb\xd6\xb2\x1b\ \x33\xa6\xcc\x8a\x9f\x37\x33\x31\x31\xb5\x3a\x62\x69\x29\xcc\xc1\ \x16\x3a\x56\x0e\xff\x20\x1b\xcf\xba\xd8\x68\x7b\x3d\x58\xb1\x70\ \xfc\x81\x16\x56\x03\x7a\x7b\x26\x09\x02\x4f\x1a\x48\x3a\x36\xef\ \x34\x8c\x58\x09\xf4\xb2\x73\x12\xd9\xa8\x74\x6b\x7b\xdd\x56\xdd\ \xea\xae\x37\x1b\xd8\xde\x5c\x77\x98\x68\x4f\x1f\x5d\x46\xf6\x00\ \x66\x37\x58\xf6\x06\x65\x1f\x48\x9e\x00\xc8\x6e\xa3\x86\xed\x33\ \xe9\xc7\x54\x89\xc2\xd1\xf4\x06\x1f\x3f\xaa\xea\x8b\x41\x97\x11\ \xda\x61\x37\xb4\xda\x73\x57\x39\x1b\x0c\xbd\xe8\x3a\x1c\x64\x97\ \x06\x19\x88\x99\x0a\x1f\xb0\x6c\xaf\xd3\xd9\xe2\xb4\xbe\xa8\xf5\ \x7d\xc0\xec\xf9\x1c\xe1\x0a\x64\xff\x4d\xee\xdf\xf7\x7f\xed\xa8\ \xbe\x5e\x74\xde\x3b\xba\x10\x39\xd4\xaf\x9b\xea\x2b\x23\x74\xde\ \x2e\xd5\x81\xf7\x72\x76\x46\x89\x1b\xdf\x2b\x7e\xec\x2e\x69\x65\ \xc4\x5e\xf2\x17\xf0\x12\xce\x0f\x11\x9b\x06\x5a\xf0\xce\x3a\x54\ \x7d\x90\x7e\x49\xf5\x97\xca\x2b\xd6\xd9\x5a\x1f\xb0\xa5\xef\x24\ \x08\x4a\xc7\x07\xfa\x3a\xd6\x93\x92\xee\x98\x77\x6d\xcf\x9d\x8d\ \x7a\x6b\x7e\xd6\xab\xb2\x79\x50\xb6\x2b\x6d\x34\xcb\xeb\x6a\xed\ \xf5\xf0\xc3\xf9\x71\x24\xeb\x4d\xd1\x2e\x8e\x92\x23\xdb\x30\xae\ \x2d\xd3\xff\x29\x84\x1b\xb7\x3f\xa4\x7d\xe0\xb7\xa3\xfd\x86\x04\ \xd4\xd5\xee\x95\x02\xab\xb8\x9d\x84\xff\x01\xe3\xe9\xc7\xaf\ \x00\x00\x01\x40\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xd2\x49\x44\x41\x54\x28\xcf\x95\ \x92\xbf\x0e\x82\x30\x10\xc6\xdb\xeb\x81\xc6\xc4\x84\xc4\x97\xd5\ \x8d\x8d\x77\x60\x72\xe2\xc1\x74\xe8\xe0\xa0\x0b\x05\x93\xfe\xf1\ \x8a\x50\x8b\x65\x80\x4b\x8e\xbb\xa4\xdf\xaf\xd7\x7e\x14\xeb\xba\ \x3e\x33\xc6\x4a\xb6\x3e\x4a\xa4\x4f\xc5\xb6\x45\x85\x53\x77\x2a\ \x8a\x06\x11\x5f\x00\xd0\x0d\xc9\x79\xa8\x9c\x73\xa5\xb5\xe6\x37\ \x29\xaf\x5e\x1b\xa0\x2c\xcf\x1f\xbb\x2c\x7b\x0a\x21\x14\x02\x28\ \x5f\x87\x04\x68\x7d\x55\x5d\x07\x93\x36\x40\x48\xbb\xa1\x10\xed\ \x28\x9c\x01\x3e\x49\x22\x12\x08\xbe\x8b\xad\x88\xa6\x8c\x13\x07\ \xd0\x39\x87\x29\x44\xbb\x62\x0c\x45\x80\xef\x49\x72\x48\xa0\x20\ \x5a\x38\x1a\x99\x61\x62\xfb\xe2\x49\x33\x21\x8e\x3d\x39\x67\xff\ \x3d\xff\x41\x73\x23\x26\xc0\x2d\xfd\xa8\x00\xa9\xbe\xcf\xb5\x31\ \x7b\xba\xb0\x35\xd6\x3a\x1e\xdd\xc1\x47\xff\x7e\x1f\x13\xe8\x2e\ \x65\xb3\xf6\x49\x78\xe8\xb2\xf5\xed\x7d\x00\xca\xd1\x62\xc7\x6e\ \x2e\xe9\x88\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x01\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x13\x08\x06\x00\x00\x00\xd6\x3a\x8e\x1f\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\x93\x49\x44\x41\x54\x48\xc7\xd5\ \x97\xcd\x6a\x5a\x51\x14\x85\xd7\xf6\x1e\xbc\xde\xdb\x0e\xfa\x63\ \x48\x0c\x29\x38\xed\x13\xa4\x83\x0e\xda\x52\x3a\xc9\x28\x8f\x62\ \x90\xbc\x40\x86\x39\xd0\x99\xb3\xe4\x09\x4a\xfb\x00\x0e\x04\x07\ \x1d\x54\x0a\x15\x9c\x16\xa1\x52\xd0\x4a\xa1\xc4\xe3\xd5\xa3\xb8\ \x57\x06\xb9\x4a\x7d\x83\x7b\x16\xec\xf9\xda\xac\xf5\x6d\xce\x11\ \x92\xb0\xd6\xbe\x10\x91\x8f\x00\xde\x92\x7c\x86\xe2\x8a\x25\x91\ \x9f\x4a\xde\x00\xb8\x6e\x36\x9b\x1b\x63\xad\xad\x0b\xd0\x4f\x93\ \x8a\xa9\x9f\x1c\x67\x71\x5c\x9e\x14\xd7\x3e\xf0\x6f\x36\xab\x0e\ \x7f\xfd\xbe\x02\x70\x0a\xe0\x5c\xac\xb5\x5f\xd2\xa4\xf2\xe1\xfd\ \xeb\xd3\x71\x14\x45\x04\x00\x92\x28\xb2\x26\xd3\xbf\xc9\xd7\xef\ \xfd\x1a\x80\x33\x03\xe0\x4d\xfd\xe4\x38\x8b\xa2\x88\x24\x45\x49\ \x41\xc1\x17\x38\x78\xfe\xd4\x3f\x4a\x93\x6c\x9e\x2d\xde\x19\x92\ \x4f\x92\xa4\x32\xde\x28\x45\x55\x05\x81\x28\x4d\x2a\xbc\x9b\xb9\ \x23\x03\x00\x4a\x60\xa3\x2a\x45\xaf\xce\x1e\x0e\x04\x54\xb5\x64\ \xb6\x9d\x57\x12\x21\x2d\x90\x4b\x4c\x0e\x37\x94\x40\x48\xfe\xb7\ \x56\x77\x09\x30\xb4\x04\x72\xaf\x66\xd7\xa7\xa0\x13\x00\x72\x06\ \x10\x9c\x1e\xae\x90\x3e\x4c\x80\x0d\xda\x26\x90\x5f\x21\x04\x9a\ \x00\xf3\xfe\x87\xb4\xc0\xff\x0c\xcc\xbd\xf7\x91\x06\x06\xc0\xca\ \x7b\xa8\xea\x5d\x49\x44\xbe\xfd\x99\x4e\x13\x25\x85\x40\x10\x33\ \x73\xae\x9c\x2d\x16\xe9\x72\xb9\xec\x19\x92\x17\xce\xb9\xde\x60\ \x30\xa8\xd6\x6a\xb5\x79\x1c\xc7\x9b\xe2\x82\x4b\x71\xce\x95\x47\ \xa3\xd1\x63\x55\xfd\xd1\x6a\xb5\x3e\x49\xfe\xa1\x79\x25\x22\xb7\ \x24\x5f\x06\xd0\x9e\xf5\x7a\xbd\xfe\xdc\xe9\x74\x2e\xdb\xed\xf6\ \x64\xef\x01\xd7\x68\x34\xaa\x59\x96\x1d\xae\x56\xab\xa8\xa0\x09\ \xb0\xdb\xed\x8e\x87\xc3\xa1\x07\xe0\x49\xfa\x7b\x55\x3a\x21\x14\ \xe4\x9f\xa0\x8a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x01\x08\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\x9a\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x3b\x0a\x02\x41\x10\x44\x6b\xb4\x11\x76\x35\x11\x3c\x8c\x81\ \x91\x37\xda\x5b\x98\x4c\x2e\x78\x16\x33\x03\x3f\x27\x70\xcf\xe0\ \x2f\x90\x05\x61\xba\xca\xc0\xdd\xdc\x99\x86\x86\x86\xe2\x51\x8f\ \xb6\x18\xe3\x63\x56\x57\x2f\x64\xce\xbb\xeb\x16\x36\xad\xab\xfb\ \x7a\xb5\x0c\xb9\xf0\xfe\x70\xbc\x99\x24\x51\xca\x86\x01\xc0\x24\ \x88\x02\xca\x60\x88\x94\xc6\xb9\xa0\x04\x18\x7e\xda\x28\xd5\x26\ \x59\xaa\x5d\xd8\x4c\xd2\x4d\x00\x73\x61\x92\xc1\xe9\x9f\xbe\xf9\ \x7f\x30\xa5\x34\xba\xb6\xed\xc4\x9d\x1b\x23\xd9\x9d\xce\x97\xf9\ \xf0\xc4\x7e\x11\xc2\x70\x07\x0d\x91\x04\xb9\xfb\xd3\xdd\xb7\x4d\ \xd3\xec\xbe\x3e\x15\x69\x2b\x64\x98\xc7\xc4\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\xa9\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\x3b\x49\x44\x41\x54\x28\x91\x63\ \x98\x35\x6b\x56\x05\x10\xff\x20\x01\x57\x30\x00\x89\xff\xa4\x62\ \xb8\xa6\xb5\xab\x56\x2d\xdd\xb8\x6e\xdd\xd4\xcd\x1b\x36\xf4\x6c\ \xdd\xb4\xa9\x79\xfb\xe6\xcd\x55\x3b\xb7\x6e\x2d\xdc\xbd\x6d\x5b\ \xc6\x9e\xed\xdb\xe3\x76\x6c\xde\x1c\x8f\xa1\x69\xd3\x86\x0d\x13\ \x80\x8a\xea\xf7\xec\xd8\x51\x7a\x60\xd7\xae\xec\xc3\x7b\xf7\x26\ \x1e\x3b\x70\x20\x7c\xd7\xd6\xad\x91\x53\x26\x4d\x9a\xb8\x79\xdd\ \xba\x40\x0c\x4d\xdb\x36\x6e\x6c\xdb\xbb\x63\x47\xc9\x81\xdd\xbb\ \xb3\x80\x1a\x12\x80\x1a\xc2\x0e\xec\xdc\x19\xd4\xde\xd6\x76\xa3\ \xb1\xb1\xf1\x7f\x5f\x6f\xef\x14\x0c\x4d\x3b\xb6\x6c\xa9\x01\x6a\ \xc8\x04\x6a\x88\x07\x6a\x08\xbd\x7a\xf1\x62\xd2\xe4\x49\x93\x6e\ \x82\x34\x00\xf1\x9b\xa5\x8b\x16\x79\x60\x68\x9a\x3f\x67\xce\x8c\ \x96\x96\x96\x37\xeb\xd7\xae\x5d\xfc\xfe\xed\xdb\xa9\x8b\x17\x2d\ \xba\x05\xd5\xf0\x75\xde\xec\xd9\xbe\x07\x77\xef\xd6\xc6\xd0\x34\ \x63\xda\xb4\x85\x20\x45\xcd\xcd\xcd\xbf\x17\x2d\x5a\x04\xb3\xe1\ \xcf\xd4\xc9\x93\x13\x6e\x9c\x3f\x2f\x8b\x55\xd3\xfe\x5d\xbb\x62\ \xbb\x3a\x3b\x8f\x40\x15\xff\x87\xfa\xa3\x0c\xa4\x01\xa7\x26\xa0\ \x60\xf0\xc1\x5d\xbb\xdc\x81\x36\x3d\x00\x69\xe8\xec\xe8\x98\x00\ \xd3\x80\x53\x13\x30\x5e\x22\x81\xa1\xe7\xba\x69\xdd\x3a\xd7\xe9\ \x53\xa7\x26\x02\x83\xda\x08\x19\x03\xc5\xed\x31\x34\x91\x9a\x22\ \x48\x4e\x7b\x00\xb1\x3d\xbe\x78\xa0\x57\xd0\xf5\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x15\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xa7\x49\x44\x41\x54\x28\xcf\xa5\ \x8e\x31\x0a\xc2\x50\x10\x44\xdf\x64\x3f\x0a\x76\xa2\x9d\x37\x10\ \x6c\xec\x2c\x2c\x3d\x8f\xb9\x81\x47\x48\xec\x04\xef\x63\xa1\x82\ \x95\x78\x0d\xb1\x49\x24\xc9\x5f\x0b\xb5\x37\xf1\xc1\xc2\x6c\xf1\ \x98\x51\x9e\x65\x87\x7e\xbf\x37\xe1\x8d\x0b\xfc\x9b\x01\x47\x7a\ \xff\xee\x00\x5e\x37\xcd\xa3\xae\x9b\xdd\x3a\x4d\xf7\xc1\xcc\x06\ \xab\xe5\xa2\xe2\x37\x54\x55\xf5\xf0\x72\xbd\x6d\xb6\x79\x4e\x22\ \xa1\xe8\xce\xaf\x67\xc1\xe2\x7c\x36\x7d\x9a\x59\x1a\x40\x49\x74\ \xda\xa1\xc4\xcd\xac\x17\xf8\x34\xb7\x45\x92\x05\x41\xd2\x45\x06\ \x08\x20\xc5\x48\x47\x59\xdd\x9a\x1d\x27\x08\xe9\x8f\xd9\xa8\xe9\ \xe2\x3a\x84\xa2\x2c\x47\xc7\xd3\xf9\xde\xd6\x2d\x8a\x62\xfc\x02\ \x60\xd2\x60\xc5\x54\xa5\xbb\x5b\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x01\x15\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xa7\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x41\x0a\xc2\x40\x0c\x45\xff\x1f\x13\x17\xb3\x13\xdd\x79\x1f\ \xbd\x86\x3d\x40\xc1\x1b\x78\x87\x76\x23\x78\x04\x41\x70\x5d\xd7\ \x9e\x47\xc7\xd5\xb4\x98\xb8\x90\xd9\xb7\x7d\x10\x48\x02\x9f\xff\ \x13\x36\x4d\xf3\x8c\x31\x6e\xf1\xc7\x49\x7a\xe9\xcb\xec\x5e\x56\ \xf0\xbe\xef\xd3\x30\x0c\xe7\xba\xae\x2f\xa2\xaa\xb1\xaa\x0e\x03\ \xc6\xc1\x9c\xf3\xaa\xeb\x1e\xa7\xb6\x6d\x11\x00\xd0\xcc\x30\xb6\ \x54\xd5\xf6\xfb\x5d\x56\xd5\xa3\x90\x0c\x6e\x86\x29\x04\xd2\x45\ \x64\x29\x24\x68\xf6\xc5\x54\x42\x08\x0b\x21\xa6\x3b\x97\x7f\x0a\ \x48\xda\x1c\xb1\x03\x42\x60\xa6\x33\x20\x98\x79\xb3\xc3\x21\x24\ \xe9\x73\x63\xa7\xf4\x59\x5f\x6f\xf7\xd7\x54\xed\x3b\xa5\xcd\x0f\ \xda\x7f\x66\xb0\xc9\x65\xf3\x61\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x00\xf9\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\x8b\x49\x44\x41\x54\x28\x91\x9d\ \xd0\x31\x12\x82\x30\x14\x84\xe1\xe5\x15\xe6\x2e\xd2\xcb\x19\xed\ \x1d\xcf\x04\x1d\x27\xb0\xa6\x20\x38\x50\xe8\x4c\x12\xde\x6f\xa3\ \xbd\xa1\xf8\xca\x9d\xdd\x59\x1b\x86\x21\x8e\xe3\xf8\xa8\xd5\xf7\ \xfd\x66\x21\x9c\x96\xb6\x3d\x7b\xad\x10\xc2\x6c\x38\xec\xa5\xa8\ \x96\x24\x19\xe0\x7b\xc9\xaa\x05\xc8\xe0\x60\x33\xc8\x10\x7e\x24\ \x8c\x7e\xcd\x7b\x56\x2d\x21\x99\xd0\xa1\xd9\xe0\xfe\x3d\xac\x2e\ \x58\x72\x6e\xdc\x49\x86\xa0\xe6\xe5\x9c\x92\xcd\xcf\x35\x00\x77\ \x03\x5e\x53\xdc\xec\x0f\xcd\x14\x57\xa6\x65\x5b\xdf\x29\x5f\x2f\ \x5d\x77\xfb\x00\x6e\x37\xd5\xb0\x67\xb7\x7c\x1f\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x2c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\xbe\x49\x44\x41\x54\x28\x53\x5d\ \x92\x3b\x4b\x03\x41\x14\x85\x67\x37\x9b\x18\x22\x12\x4c\x3a\x05\ \x31\x36\x16\x26\x88\x8d\xf8\x13\xc4\xc6\x42\xec\x14\x0b\xd1\x42\ \xc1\x42\x41\xed\xb2\x5b\x46\xc1\x07\x58\x09\x0a\x76\xda\x68\x29\ \xfa\x07\x14\xed\x04\x3b\x11\x05\x83\x24\x26\xbb\x24\x26\xd9\x47\ \x76\x66\x3c\x77\x49\x82\x3a\x70\xb8\x33\xc3\xf9\xe6\xde\x99\x3b\ \x9a\x94\x92\xb5\x47\x4e\xd7\x47\xc2\xe1\xf0\x82\xaa\xaa\x13\x42\ \x88\x41\xc4\x37\xce\xf9\xbd\xef\xfb\x67\x5b\xba\xfe\xdc\xf6\x69\ \x2d\x73\x08\x63\x3d\x16\x8b\xad\xa6\x52\xa9\x70\x3c\x1e\x77\x31\ \x77\x2a\x96\x95\xf8\x2a\x16\x27\xf3\x9f\x9f\xd3\x3b\xba\x7e\x8c\ \xe3\x0f\x00\xf3\x00\x22\x20\x99\x4c\xae\x65\x32\x19\x1b\x99\x1c\ \xda\xb3\xeb\x75\x4b\x11\xc2\xea\x89\x46\xcd\xfe\x44\xa2\x96\x2f\ \x95\x66\x9a\x42\x50\x59\x7b\x1a\x95\x44\x19\xd2\xe9\xb4\x03\x40\ \x08\xce\x7d\xbb\x56\xb3\x20\x33\x10\x60\x17\x31\xca\xf9\x4b\x93\ \xb1\x39\xf8\x6f\x34\x18\x97\xa8\xa4\x48\x24\xe2\x34\x3d\xcf\xfe\ \x03\xb4\xe6\x9e\xeb\x9a\xc8\x60\x85\x18\xbb\xe6\x52\xce\x6b\xb8\ \xec\x38\xee\xe0\xb9\xb6\xfd\xfd\xdf\x4c\x6a\xfa\xbe\xc5\x19\x33\ \x49\xa8\xed\x11\xf0\xa2\x86\x57\x1a\x50\xa4\xfc\xa8\x57\x2a\xa5\ \x06\x4c\x4e\x0b\xa0\x39\x4e\xed\x00\x02\x99\x00\xbc\x33\x45\x31\ \xe8\x21\xde\x4a\x85\x82\x1b\x92\xb2\xd8\xce\xe2\x34\x1a\x1d\x63\ \x1b\x82\x2c\xa1\x28\x7d\xe4\xd7\xd0\x87\x87\x72\xb9\x3c\xda\xad\ \xaa\x05\x02\x5c\xcf\x23\x73\x60\xfa\x0d\x6c\x1a\x46\x0d\x8f\x30\ \x05\xe8\x99\xca\x3b\x31\xab\xd5\x0b\x9f\xb1\x6f\x29\x44\xe1\xbf\ \x99\x0e\x00\xe0\x02\xe8\x05\xb0\x0c\xad\x68\xd4\xe9\x5c\x36\x7b\ \x5a\x65\x6c\xb2\x8b\x31\x6a\x20\x81\x9d\xd2\xb6\x0c\x43\x00\x88\ \xc3\xbc\x0b\x5d\x92\x3f\x68\x2e\x2e\x77\x28\xf0\x9f\x6c\xc6\x36\ \xb0\x3a\x87\xee\xb0\x97\x47\x1c\x06\x30\xd6\xca\x70\x05\x1d\x91\ \x3d\x80\xe8\x6b\x20\xec\xc3\x70\x8b\x38\x0b\x6d\x43\x43\xd0\x2b\ \xf4\x04\xad\xfe\xfe\x7b\x3f\x19\xc4\x49\xa6\x7a\x07\xda\xac\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xfd\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x61\x00\x00\x00\x15\x08\x03\x00\x00\x00\x61\x6b\x70\x46\ \x00\x00\x00\x3c\x50\x4c\x54\x45\xf7\xf7\xf7\xb0\xb0\xb0\xff\xff\ \xff\x8b\x8b\x8b\x8c\x8c\x8c\x9d\x9d\x9d\xae\xae\xae\x8b\x8b\x8b\ \x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xde\ \xde\xde\x97\x97\x97\x8b\x8b\x8b\xdf\xdf\xdf\x8b\x8b\x8b\x8b\x8b\ \x8b\x8b\x8b\x8b\x51\x5f\xc0\xbc\x00\x00\x00\x13\x74\x52\x4e\x53\ \xca\xea\x00\xf4\xfd\xf3\xeb\x52\x9d\xd6\xfc\x1e\x20\xd4\xf6\x9c\ \xd4\xda\xfe\x7e\x17\x61\x47\x00\x00\x00\x5d\x49\x44\x41\x54\x78\ \x5e\xed\xd5\xc7\x01\xc0\x20\x14\x02\x50\xfc\xcd\x6e\x8a\xfb\xef\ \x9a\x63\x26\xe0\xe6\x5b\x80\x13\x00\x91\x51\x6a\xdb\x0c\xad\x96\ \x21\x02\xc9\x6a\x1e\x89\x21\xdc\x34\x0b\xba\xae\x09\x96\xb9\xb4\ \xe3\xb2\x1b\x3c\xb7\x5d\x78\x1c\x4c\xfe\xe0\x0d\x30\xc5\x8b\x9d\ \xc0\x94\xf6\x49\xf8\x9d\x84\x93\xc0\xef\x34\x7f\x97\xf8\xdb\xca\ \xff\x07\xfe\xc7\xf1\x7f\xfa\x03\x24\xa3\x11\xb1\xa1\x0a\xfe\x19\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x0a\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x04\x00\x00\x00\xd8\xe2\x2c\xf7\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x9e\x49\x44\x41\x54\x18\xd3\x63\x98\x55\ \x31\xeb\x07\x56\x58\xc1\x30\xeb\x3f\x2e\x08\x96\x7a\x32\xf9\x6d\ \x0f\x32\x7c\x32\x19\x2e\xf5\xb9\xe3\x7f\x03\x0c\xde\x9b\xb7\xf3\ \xee\x9d\x85\x58\xa4\x9e\x4f\x5f\xff\x73\xed\xff\xd3\x3b\x91\xa4\ \x9e\xce\x00\x4a\x74\x7e\x5c\xbb\xe5\xfb\xda\xff\x3b\xef\xbd\xef\ \x82\x4b\x9d\xda\xbd\xf6\xff\xb1\x7b\x3f\x0e\x6f\xff\xb2\xf6\xff\ \xd6\x17\x5f\xdb\x3f\x77\xc0\xa5\x6e\x2e\x5e\xfb\x17\x28\x08\xd4\ \xb1\xf1\xe3\xbb\xde\xff\x0d\x48\x52\x9f\x3b\xce\xee\x58\xfb\x7f\ \xed\xff\xf5\x3f\x9e\x4f\x03\xd9\x88\x22\xf5\xbf\xe1\xd0\xa9\x0d\ \x5f\xee\x2e\x80\x38\x06\x49\x0a\xe2\xaf\xd7\xbd\x58\xfc\x85\x2b\ \x34\x70\x86\x21\x00\x8c\xe0\x06\x11\x3e\x64\x1f\xfd\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\xec\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\x7e\x49\x44\x41\x54\x28\x53\x7d\ \x92\xcb\x4e\xc2\x60\x10\x85\x89\xbc\x8b\x21\x26\xbe\x95\x6e\x25\ \x6e\x58\xb9\xe4\x25\x34\xd1\x1a\x2c\x15\x85\x52\xae\x01\x1b\xca\ \x55\xd3\x16\xe4\xd6\x16\x90\x08\x26\xb0\x68\xa9\xa2\x5b\x96\x78\ \xa6\xa1\xa4\x1a\xc2\xe2\xa4\xed\xdf\xf3\x75\x66\xce\xd4\xb7\x5e\ \xaf\x7d\xae\x18\x86\x09\x40\x61\x28\x05\x75\x36\x57\x7a\x0e\x78\ \x7d\xae\xd9\x0f\x05\x21\x83\x8b\x46\x75\x3e\x91\x18\x65\xd2\xe9\ \x49\x4a\x10\x8c\x87\x58\xac\x75\x17\x89\xc8\x9b\xf7\x7e\x2f\x74\ \x7e\xcb\x30\x03\x21\x99\xfc\x90\x4a\xa5\x1f\x45\x96\x2d\xad\xd7\ \x9b\xb5\x54\xd5\x6c\xd4\x6a\xcb\x42\x3e\x3f\x8c\xb2\x6c\x03\x9e\ \xa0\x03\x01\x38\xa6\x0a\x04\x34\xea\xf5\x2f\xd3\x34\xf5\xd5\x6a\ \xa5\xb8\xb2\x17\x8b\xfe\x6b\xb3\x69\x89\xc5\xa2\x0e\xb0\x42\x7e\ \x82\xc2\xd4\x12\x55\xb0\x4c\x53\xf3\x02\xae\x3e\x6d\xbb\xaf\xca\ \xb2\x2d\xf0\x7c\x05\xad\x5e\x10\x94\x4a\xf2\xfc\x1b\x0e\xad\x5d\ \x80\x2b\x43\xd3\xe6\xa8\x26\x73\x2c\x7b\x4d\x50\x27\x9b\xc9\x4c\ \x69\x86\x7d\xd0\x64\x3c\x9e\x56\xcb\xe5\xee\x3d\xc7\x65\x9d\x4a\ \x48\x69\x40\x43\xef\x83\x46\x86\x31\x93\x44\xf1\x19\xd0\xa5\x33\ \xd3\x23\x62\xa5\x94\x68\xe8\x5d\xc0\xf7\x72\xd9\xeb\xb6\xdb\x66\ \x2e\x9d\xce\xa3\xbd\x90\x93\x1e\x86\x53\x28\x56\x4a\x89\x86\xfe\ \x0f\x0c\x74\x7d\x5e\xaf\x56\x55\x7c\x5c\x80\xf7\x68\xbb\x27\xda\ \x03\xc5\x4a\x29\xe9\xfd\xfe\xfc\x1d\x33\x0c\xd1\x12\x55\x00\xa0\ \xf0\xf1\x78\x12\x9e\xd3\x3f\x7f\x04\x16\x77\x86\xc3\x32\x62\x2d\ \x3f\x15\x0a\x2f\x15\x49\x6a\x97\x44\xb1\x86\x96\x72\xa8\x40\xc0\ \x09\x3c\x07\x5b\xc8\xfb\xef\xd1\x1e\x60\xb8\xc1\xc0\x39\xe8\x0a\ \xf7\x21\x9c\x1d\x7a\x7d\xbf\xa2\x4e\xfc\xbe\x25\x1e\x24\xce\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x14\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\xa6\x49\x44\x41\x54\x28\x53\x7d\ \x52\xcb\x4e\xc2\x50\x14\x34\xf2\x2f\xc6\x98\xf8\x57\xba\xd5\xb8\ \x71\xe5\xd2\x9f\xd0\x44\x6b\x14\xf0\x01\xa5\x94\x47\x80\x86\x16\ \x28\x9a\xb6\x2a\xcf\x16\x1f\x11\x4c\x80\x58\x04\xd1\x9d\x69\x5c\ \x18\x9c\x21\x62\x6a\x62\x5c\x9c\x9c\x9e\x73\x67\x7a\xce\xcc\xbd\ \x73\x93\xc9\x64\x6e\x16\x82\x20\x2c\x22\xb6\x11\x71\x44\xf5\x3b\ \xb3\x5e\xf4\xe3\x66\xe0\x00\x62\x1d\xe1\x84\x43\x21\x5b\x8c\x46\ \x6f\x13\xb2\xdc\x8e\x4b\x92\x73\x7a\x72\x72\x75\x74\x78\x68\x7c\ \x9f\x07\xfc\xa4\x8d\x03\x41\x68\x49\xb1\xd8\xa3\x9a\xcf\xbf\x99\ \x86\x31\x68\xd6\xeb\xdd\x2b\xcb\x72\xcb\xa5\xd2\x38\x93\x4e\xdf\ \x84\x82\xc1\x32\x30\xeb\x53\x12\x08\xcb\x9c\x40\x42\x59\xd7\x5f\ \x5c\xd7\xb5\x3d\xcf\x33\x67\x31\x7c\x7e\x6e\x5c\x5f\x5e\x0e\x94\ \x6c\xd6\x06\xb1\x40\x3c\x49\xdb\x5c\x89\x13\x06\xae\xdb\x24\xf0\ \x75\x34\xaa\x75\x3b\x9d\x3b\x66\xd6\xa3\xe1\xb0\x61\x19\xc6\x50\ \x12\xc5\x02\x56\xdd\x22\x29\x1e\x13\xc5\x3b\x34\x07\x04\x3c\xf5\ \xfb\x8e\x9e\xcd\xbe\xeb\xb9\x9c\xc7\xcc\x9a\x7d\xa7\xd9\xec\x61\ \x9a\x11\x0e\x06\xf7\x48\xaa\x26\x13\x89\x0e\x35\xf0\xd0\xae\x56\ \xfb\x00\x7f\x94\x15\xe5\x93\x99\x35\xfb\xed\xfb\xfb\x4e\x51\xd3\ \x6a\xc7\xe1\x70\x72\x3a\x09\x2e\xb5\x28\xfa\xbf\x49\xb7\x8e\xd3\ \x55\x15\xe5\x1c\xa4\x9d\xa9\xa6\x33\xd8\x4a\x97\x28\xfa\x2f\x4d\ \xaf\xe3\x71\xbd\x56\xa9\xb8\x29\x59\x4e\x63\xbd\xcd\xa9\x7b\x10\ \x67\xd2\x56\xba\x44\xd1\x7e\xf7\x48\x68\xd9\x76\x4f\x2f\x16\x2d\ \xfc\x5c\x02\x76\xe9\xe7\x9e\x78\x0f\xb4\x95\x2e\xd9\x8d\x46\xef\ \x01\x1a\x6e\xb0\x12\x27\x80\x60\x8a\x91\x48\x0c\x98\xd5\x5f\x2f\ \x02\x17\xb7\x86\xa6\x06\x5b\xb5\x5c\x26\x73\x51\x50\xd5\x4a\x5e\ \x51\x4a\x58\x29\x85\x09\x24\xac\x00\x33\xff\x43\xf2\xbf\x3d\xde\ \x03\x00\xfb\x10\x9c\x42\xec\xe2\x7b\x13\xbd\x05\x3f\xee\x0b\x45\ \x97\xf5\xcf\x14\x60\x2f\x66\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x01\x14\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xa6\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x31\x0e\x41\x51\x14\x44\xe7\x72\xa3\x7d\x91\x58\x1e\x6b\x60\ \x19\xba\xdf\x4a\x94\x2c\x41\xa5\xb0\x01\x85\xc4\x3a\xf0\x55\x12\ \xfe\xdc\x3b\x0a\x11\x0d\xc5\x33\xe5\x24\x27\x33\x39\xd6\x34\xcd\ \xa5\x94\x72\xc5\x8f\x98\xd9\xd7\xbe\x6d\xdb\x91\x97\x52\xce\x93\ \xc9\xd8\x50\x99\xd5\x6a\x7d\xf2\xcc\x54\x90\xd5\xb0\x24\xb8\x94\ \x0a\x76\xb5\x2c\x20\xc1\x95\xca\x20\xfb\xd5\x2c\x04\x4f\x49\x41\ \xfe\xb1\x0c\xb8\x94\x19\x51\x7f\x5b\x78\xdd\xfe\x6b\x39\x23\xc2\ \x25\x65\x2d\x1c\x99\x46\xf2\xee\x92\xaa\x6c\x3f\xba\xae\xb7\x3f\ \x1c\x07\x64\xcc\x9d\xc1\xdb\x66\xbb\x1b\x1a\x0c\x30\xe8\xa5\xe2\ \xad\x04\x32\x40\xfa\xb0\x22\xa3\x25\xb9\x98\xce\x66\xcb\x27\x2a\ \x8d\x77\x7e\xf9\xf5\x91\x67\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x00\xae\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x07\x00\x00\x00\x05\x08\x04\x00\x00\x00\x23\x93\x3e\x53\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x42\x49\x44\x41\x54\x08\xd7\x63\xa8\x5f\ \xbd\xe6\x15\x0c\xd6\x2e\x61\x48\x56\xda\xf1\xe8\xc4\x57\x10\xdc\ \x74\x3e\x5c\x84\xe1\x3f\x43\x6b\x26\x88\xb3\xef\x55\x8d\xc5\x7f\ \x06\x20\x97\x81\x71\xc1\x86\xe3\x5f\xfb\x72\xfe\x33\x80\xb9\xff\ \x19\x52\xd5\x7a\x67\xfe\x07\xb3\x00\xb3\x22\x29\xee\xf2\x45\x54\ \xa5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x15\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x13\x08\x06\x00\x00\x00\xd6\x3a\x8e\x1f\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\xa7\x49\x44\x41\x54\x48\xc7\xd5\ \x97\xbf\x8e\x52\x41\x14\xc6\xbf\x19\x66\xff\x68\x24\x5c\xcd\x6e\ \xae\xc6\xec\x6a\xec\x6c\x28\x68\xc4\x0e\xed\x8c\x95\x8f\x82\x21\ \xbe\x80\xa5\x37\xb1\xa3\xd3\x27\x30\xf2\x00\x24\x14\x04\xb7\x70\ \x1b\xed\x6c\x70\x2a\x13\x2d\x48\x6e\x40\xae\x17\x98\x73\x3e\x0b\ \x58\x43\x7c\x82\x3b\x5f\x37\xdd\xf9\xe5\x77\xce\xc9\x19\x43\x12\ \x59\x96\x9d\x19\x63\xde\x1a\x63\x9e\xa8\xea\x2d\x54\x37\xb4\xd6\ \x4e\x55\xf5\x1d\x80\x37\xbd\x5e\x4f\x5c\x96\x65\xf7\x8d\x31\x5f\ \x1b\x8d\x86\x6b\xb7\xdb\xeb\x34\x4d\x97\x15\x06\x80\xf7\x3e\x9d\ \x4c\x26\xaf\x49\x3e\x02\xf0\xc2\x64\x59\x36\x68\x36\x9b\xcf\x3a\ \x9d\xce\x0f\xe7\x9c\x03\x70\x44\xb2\xca\x0c\xa5\xf7\xfe\x60\x30\ \x18\xdc\x01\xf0\xdc\x59\x6b\x3b\xad\x56\x0b\xb5\x9a\x35\x22\x21\ \x90\x14\x54\x3c\xe7\xe7\x67\xab\x24\x49\x8a\x3c\xcf\x9f\x3a\x6b\ \x6d\x72\xe0\x5c\x19\x36\x9b\x9a\xaa\x56\xbe\xf8\xab\xd4\xeb\x37\ \x38\x9b\xcd\x6e\x3b\x00\x20\x00\x15\x81\xaa\x22\x9a\x10\x50\x55\ \xeb\xb6\x0f\x42\x42\x88\x0a\x60\x37\xa7\x66\x67\x80\x10\x55\xa8\ \x48\x6c\x00\xf8\x67\x80\x1a\xa2\x02\xc0\x3e\x00\x49\x68\x10\x88\ \x84\x58\x0d\x00\xa2\x21\x2e\x00\xe8\x9e\x01\x6c\x0d\x68\x88\x08\ \x40\xff\x6f\xa1\xc8\x0c\x6c\x97\xff\x55\x0b\x81\x10\x89\x74\x06\ \xa8\xba\x94\x20\x4e\x37\x01\x1a\xe2\xd9\x42\xc5\x9f\x12\xaa\x3a\ \x77\xa2\xfa\x79\xfa\xdd\x3f\x3e\xad\x1f\x45\x53\x7d\x3e\x5f\x1c\ \x2e\x7e\x2f\xaf\x97\x65\x79\xe9\x48\xbe\xfc\x74\x71\x71\x79\x72\ \x33\x39\x7d\x70\xef\xee\xf2\xda\xf1\x71\x65\xfb\x48\x95\x26\x9f\ \x2f\x0e\xbf\x4d\x7d\x9d\xe4\x97\x7e\xbf\xff\xc1\xec\x3e\x34\x6d\ \x63\xcc\x7b\x92\x0f\x23\x10\xb0\x09\x21\x7c\x1c\x8d\x46\xaf\x86\ \xc3\xe1\x2f\xb3\x7f\xfb\x77\xbb\xdd\x93\xa2\x28\xd2\xf5\x7a\x5d\ \xab\xe8\xe0\x72\x3c\x1e\xff\xf4\xde\xaf\x00\xac\x48\xae\xfe\x02\ \x9e\xc5\x10\x4d\x61\xbe\x76\xec\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x00\x9f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x04\x00\x00\x00\xd8\xe2\x2c\xf7\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x33\x49\x44\x41\x54\x18\xd3\x63\x98\x55\ \x31\xeb\x07\x56\x58\xc1\x30\xeb\x3f\x2e\x08\x96\x7a\x32\xf9\x6d\ \x0f\x32\x7c\x32\x19\x2e\xf5\xb9\xe3\x7f\x03\x32\xfc\xdc\x31\x84\ \xa4\xf0\xf8\x0b\x57\x68\xe0\x0c\x43\x00\x32\x58\x02\x75\x45\x0f\ \x73\xc2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x02\x57\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x06\x00\x00\x00\x72\xeb\xe4\x7c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\xe9\x49\x44\x41\x54\x28\x53\x4d\ \x92\x3f\x68\x14\x41\x14\xc6\x67\x77\x67\xf7\x92\xe5\x64\xd1\x2b\ \x0c\x18\x72\x9c\x57\xca\x59\x69\x61\x69\x63\x69\x61\x21\x28\x48\ \x8a\x80\x88\x11\x0b\x41\x6c\x2f\xa5\x82\xc4\xc2\x42\xc4\xc6\x2a\ \xa5\x82\x4d\x48\x25\xd8\x25\x75\x0c\x58\x5c\x4c\x10\x74\x2f\x38\ \x6b\xd8\xdb\x9d\xfd\x3b\xcf\xef\x9d\xbb\xe0\xc2\x63\x66\xd8\xef\ \xf7\xde\xf7\xe6\x8d\x24\x22\xd1\x7e\xcf\xc7\xe3\x4b\xae\xeb\xae\ \x3a\x8e\x73\xd5\x18\xd3\xb7\x6d\xfb\xa8\xae\xeb\xbd\xb2\x2c\xdf\ \x3f\x1b\x8f\xf7\x5b\x9d\x6c\xc4\xd0\x39\x4f\x7c\xdf\x5f\x1f\x0c\ \x06\x6e\x10\x04\x39\xf6\x55\x9a\xa6\x7d\xa5\xd4\xc5\xc3\xc9\xe4\ \xd6\x8b\x8d\x8d\x37\x28\xb0\x09\xb8\x9e\x43\x0c\xf4\x7a\xbd\xc7\ \xa3\xd1\x48\xa3\x52\xd6\x66\x5c\xf0\x3c\x75\xb6\xdb\x8d\x9c\x95\ \x95\x78\x72\x7c\x7c\x37\x2b\x0a\xb6\xf5\x52\xb2\x25\xae\xd0\x00\ \xa6\x05\x74\x92\x44\x7a\x36\xe3\x50\x79\x92\xa8\xc0\x75\xbf\x01\ \xba\x07\xfd\xb6\xf4\x3c\xef\xc1\x70\x38\x74\xdb\x0a\xa6\xae\xab\ \x34\x8e\x73\x40\x8b\x59\x9a\x2a\x1d\xc7\x53\x06\x33\x80\xb0\xf5\ \xb9\x14\x62\x55\x5a\x96\x75\x85\x7b\x60\xa0\x2c\x0a\x0d\x80\x20\ \x1e\x62\x6f\xe3\x02\x96\xcb\xaa\x2a\x90\xe0\xa0\x16\x22\xb2\x84\ \x88\x21\xbb\x23\xd1\xdc\x32\xec\xa5\xb9\xd6\x31\x67\x84\x60\xa9\ \xaa\x2a\x49\xc6\x78\x10\xd8\x8e\x94\x17\x2a\x21\xa6\x80\x14\xfd\ \x83\x9e\x72\xa5\x1f\xbf\x4f\x4e\x3a\x0e\x51\xc8\x3d\x64\x80\xf1\ \xf3\xbc\x20\x72\xc9\xb6\x35\x80\x3d\x86\xd0\xac\xc2\x1a\x08\xcb\ \x3a\x94\x98\xc3\xee\x34\x0c\xaf\x9d\xe9\x74\xe6\xde\x19\xac\x89\ \xbe\x7a\xbe\xbf\x84\x59\x1d\x44\x51\xf4\x85\xab\xb0\x3d\xb2\xac\ \xcb\xa8\xb4\x2f\x61\xe5\xed\xcf\x30\xbc\x61\xba\xdd\x3f\x65\x9a\ \x4e\xf3\xa2\x50\x9c\x35\xd1\x3a\x6a\xc4\x2d\xe0\x00\x78\x88\x78\ \x24\x79\xd2\xb8\xc6\x77\xbf\x4e\x4f\x6f\x2e\x12\x6d\x89\xc6\x7f\ \x2b\xe6\x04\x00\x16\x78\x3e\x88\x8f\xac\x97\xcd\x58\x5e\xc1\x92\ \x99\x09\xb1\x66\x0b\xf1\x09\xe7\x5d\xf4\x75\x84\x38\x87\x1e\xae\ \xe3\x7c\x1f\xf1\x01\xf1\x9a\xc5\x73\x88\x9f\x06\x96\x4d\x54\xdc\ \x31\x44\xb7\xb1\x5f\x83\xb8\x8f\xf5\x3b\xf7\x80\x58\xff\xff\xed\ \xfd\x05\x44\x20\x32\xa9\x4e\xde\x14\x18\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xaf\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x07\x00\x00\x00\x05\x08\x04\x00\x00\x00\x23\x93\x3e\x53\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x43\x49\x44\x41\x54\x08\x1d\x63\xc8\x5b\ \x38\xe3\x3a\x0c\xe6\xcc\x62\x70\x92\xeb\xda\x3c\x73\x1f\x08\xb6\ \x2c\xb5\x14\x62\xf8\xcf\xe0\x1e\x50\x3f\xaf\x7e\x5e\xd9\x6c\x27\ \x9d\xff\x0c\x40\x2e\x03\xa3\x4b\x76\x4a\xbd\x85\xfb\x7f\x10\x1b\ \x44\x88\x4a\x29\x87\x81\xe8\xff\x0c\x00\x6d\x8c\x21\x57\xad\xbb\ \x24\x67\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xc5\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x07\x00\x00\x00\x05\x08\x03\x00\x00\x00\xbe\x44\x06\xea\ \x00\x00\x00\x39\x50\x4c\x54\x45\xff\xff\xff\x6e\x5d\x5d\x6e\x5c\ \x5c\x51\x44\x44\x14\x11\x11\x05\x04\x04\x03\x02\x02\x20\x1a\x1a\ \x00\x00\x00\x1a\x16\x16\x23\x1d\x1d\x1c\x17\x17\x59\x4a\x4a\x34\ \x2c\x2c\x5e\x4f\x4f\x24\x1e\x1e\x47\x3c\x3c\x47\x3c\x3c\x49\x3d\ \x3d\x21\xaf\x18\x83\x00\x00\x00\x13\x74\x52\x4e\x53\x00\xa2\x7e\ \x5d\x32\x39\x16\x23\x01\x46\x3e\x0f\x75\x3e\x7c\x19\x7f\x60\x84\ \x40\x08\xcd\x6e\x00\x00\x00\x28\x49\x44\x41\x54\x08\x1d\x05\xc1\ \x87\x01\x00\x20\x0c\xc3\x30\xa7\x65\x6f\xf8\xff\x58\x24\x80\x98\ \x00\x08\xb3\x16\x20\x5f\xf7\x06\x7d\x98\xd9\xda\x1c\x49\xd2\xfb\ \x0b\xb7\x00\xb7\x4d\xe4\xc7\xea\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ \x00\x00\x01\x0c\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\x9e\x49\x44\x41\x54\x28\xcf\x9d\ \x91\x31\x0a\x02\x41\x10\x04\x7b\x74\x30\x5d\x04\xdf\xe7\xfd\x40\ \xbf\x61\x76\xa9\x60\x74\x66\x82\xe0\x1f\x04\x7d\x8d\xba\x46\x82\ \xb7\xb3\xd3\x06\x87\x9a\x68\xb0\xdb\xe1\x40\x51\x14\x23\x6d\xdb\ \xde\x42\x08\x77\xfc\x99\x88\xfc\xbc\xc7\x18\x67\x1a\x42\xb8\x36\ \xcd\x5c\x50\xb8\xae\xdb\x5e\x94\x24\xdd\xbd\x18\x06\x00\x25\x9d\ \x74\xaf\x40\x09\x1d\xc4\x79\x5c\x8c\x12\x50\x3a\xeb\xcd\x4e\xba\ \xd7\xc0\x04\x94\xac\x33\x67\xf7\xfc\x6e\x2e\x03\x73\x16\x4b\xe9\ \x59\x6c\xee\xfb\x7e\x74\x3c\x9d\x27\x66\xb6\x52\x33\x7b\xec\xf6\ \x87\xe9\xa7\x44\xc0\xe1\xe9\xc2\xa1\x0c\xfc\x66\x92\x96\x2c\xa6\ \x94\xd6\x8b\xe5\x72\xf3\x02\x01\x4c\x73\x5c\x4d\x53\x9c\xcf\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x07\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x04\x00\x00\x00\xd8\xe2\x2c\xf7\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x9b\x49\x44\x41\x54\x18\xd3\x63\x68\xac\ \x68\xfc\x81\x15\x56\x30\x34\xfe\xc7\x05\xc1\x52\xf7\x26\xbf\xec\ \x41\x86\xf7\x26\xc3\xa5\x3e\x74\xfc\x6f\x80\xc1\x73\xf3\xa6\xdc\ \x3d\xb5\x10\x8b\xd4\xed\xe9\xad\x3f\x1b\xff\x6f\xdc\x89\x24\x75\ \x6d\x06\x50\xa2\xf3\xd5\xda\x9e\xef\x8d\xff\xa7\xdc\x7b\xd3\x05\ \x97\x5a\xbf\xbb\xf1\xff\x8a\x7b\x5f\x0e\x4f\xfa\xd2\xf8\xbf\xf7\ \xc5\xc7\xf6\x0f\x1d\x70\xa9\xe3\x8b\x9b\xfe\x36\xfe\xef\x03\xea\ \xe8\xf8\xf8\xbc\xf7\x7f\x03\x92\xd4\x87\x8e\x4d\x3b\x40\x74\xeb\ \x8f\x9b\xd3\x40\x36\xa2\x48\xfd\x6f\x58\x78\xaa\xed\xcb\xe9\x05\ \x10\xc7\x20\x49\x41\xfc\xf5\xbc\x17\x8b\xbf\x70\x85\x06\xce\x30\ \x04\x00\x95\xde\xf8\xd0\x60\x7f\x65\x39\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x12\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xa4\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x21\x0e\xc2\x40\x10\x45\xff\x4c\x26\x2b\x10\x90\x10\x04\x86\ \x5e\xa0\xc8\x9e\x8a\x0b\x70\x10\x3c\xc7\x41\x74\x35\x07\x58\x85\ \x42\x50\x30\x4d\x77\x67\x10\x85\x84\xd4\xb0\xdb\xe7\xfe\x4f\x7e\ \x5e\xf2\xa9\x6d\xdb\x8b\x73\x6e\x8b\xff\x98\x99\xa9\xaa\xbe\x54\ \xf5\xdc\x34\xcd\x49\x98\x79\xb1\xaf\x6b\x45\x1e\x94\x52\x5a\x85\ \x10\x8e\xde\x7b\x93\xb1\x88\x28\x40\xab\x6a\xd7\x77\xd7\xe7\x41\ \x00\x70\x8a\x03\x0a\x31\x26\x72\xa3\x39\xe6\x98\x69\x09\x82\xfb\ \x26\x11\x21\x01\x8c\x32\xcd\xdd\x6f\x88\x71\x60\x81\x81\xf3\xcc\ \xd3\xeb\x81\x12\xf3\x74\x8e\xcf\x61\x73\xcc\x06\x81\xcd\x34\x9b\ \x41\x86\xa4\xeb\xdb\xbd\x7b\x94\x6e\xa3\xea\xe6\x0d\x9b\x62\x55\ \x2d\xe3\x08\x6f\xa2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\x09\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x32\x00\x00\x00\x2d\x08\x06\x00\x00\x00\xec\xbf\x38\xff\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x05\x9b\x49\x44\x41\x54\x68\xde\xd5\ \x99\x4b\x4c\x63\x55\x18\xc7\x31\x63\x9c\x48\x4c\x34\xce\xca\xc4\ \xc4\x85\x0b\x17\x6a\x8c\xc6\xa8\x1b\x63\x62\x66\xa5\x9b\x89\x3b\ \x17\x46\x63\x8c\x2b\xc7\x07\xa3\xf3\xd0\x4c\xcc\x18\x1d\xc6\x30\ \x99\x90\xcc\x42\x98\x41\x23\x03\x03\x41\x79\xb6\x85\x96\xbe\x5f\ \xb4\x94\x47\x5b\xca\xa3\x40\x5b\x28\x2d\xa5\x14\x28\xef\x77\x29\ \xc7\xff\xd7\xf4\x34\x37\x04\x98\x0a\xb7\xd0\xbb\xf8\x2f\xda\x45\ \xcf\xf9\xf5\x7c\xdf\xef\x9c\x7b\x6e\x41\x75\x4d\xdd\x1d\xcf\x48\ \xf4\x72\x38\xce\x3e\x95\x70\x9e\x28\x68\x6d\x6d\x7d\xb6\xf2\x41\ \x55\x77\x47\xf7\x60\x25\xbe\xf8\x56\xa2\x39\x5b\xc0\x18\x2b\xe8\ \xe8\xe8\x78\xa5\xb1\xb1\xd1\xa5\x35\x58\x0d\xbe\xc9\xd5\x1f\x25\ \x0b\x92\x86\x79\x5b\xad\x56\x7b\x8d\x26\x8b\xbf\xdb\x33\x76\x57\ \xb2\x20\x14\x93\xc9\xf4\xae\x4e\xa7\x0b\xf6\xf6\xf6\xae\x1b\xcc\ \x0e\x79\x30\x96\xf8\x5e\x92\x20\x14\x83\xc1\x70\xde\x68\x34\x46\ \x46\x47\x47\x99\x56\x6f\x72\xf7\x0d\x4f\x15\x4b\x12\x84\xa2\xd7\ \xeb\x3f\x34\x9b\xcd\x51\xbf\xdf\xcf\xec\xf6\xce\xb8\xd9\xe6\x7c\ \x18\x9a\xdb\xfd\x4e\x72\x20\x14\x94\xd8\x47\x56\xab\x35\x16\x08\ \x04\xd8\xe0\xe0\xe0\xae\x5a\x6b\xb4\x78\x83\x0b\xd7\x25\x07\x42\ \x91\xcb\xe5\x5f\x51\xbf\x10\x8c\xcf\xe7\x63\x26\x93\x39\x64\xef\ \xf1\x96\x49\x0e\x84\x22\x93\xc9\x5a\xc6\xc6\xc6\x18\x85\x60\x5c\ \x2e\xd7\xb6\x46\x6f\x51\x05\xa6\x36\x2e\x4b\x0a\xa4\xae\xae\xae\ \x50\xab\xd5\x06\x26\x26\x26\x52\x30\xd4\x37\xc3\xc3\xc3\x4c\xab\ \x33\x0c\xf5\xf6\x07\x4b\x24\x03\x42\xa9\xaf\xaf\xff\x00\x2b\xb1\ \x4a\x30\xe3\xe3\xe3\x29\x98\x91\x91\x11\xd6\xd9\xd9\xb9\xac\x33\ \x75\xfe\x33\x31\xbb\x53\x24\x09\x90\x74\x89\x55\x10\x48\x28\x14\ \x4a\xc1\x50\xdf\x90\xa2\x07\x06\x06\x98\x4a\xad\x73\xf4\xfb\x62\ \x37\x24\x01\x52\x52\x52\x72\x06\x5a\xee\x8f\x44\x22\x2c\x1c\x0e\ \xb3\x60\x30\xc8\xb8\x04\xa8\xd4\xcc\x66\xcb\xb4\xc9\xe6\xaa\xc8\ \x7b\x10\x4a\x4d\x4d\xcd\x9b\x7d\x7d\x7d\x8b\x53\x53\x53\x19\x18\ \x2e\x01\x82\x71\xbb\xdd\x49\xa5\x5a\xaf\x1b\x09\x2d\x5f\xc9\x6b\ \x10\x4a\x4b\x4b\x4b\x31\x41\x70\x18\x2e\x01\x82\xa1\xbe\x19\x1a\ \x1a\x82\x08\xf4\x7e\x7b\xef\xf0\x9d\xbc\x06\xa1\x12\xb3\x58\x2c\ \x23\xb1\x58\x8c\x45\xa3\x51\x36\x39\x39\xc9\xf6\x4a\xc0\xeb\xf5\ \x32\x87\xc3\xb1\xa1\xd2\x18\x9b\xc6\x63\xdb\x45\x79\x09\x92\xb6\ \xd8\x35\x02\x99\x99\x99\x49\xc1\x50\xdf\xec\x95\x00\xc1\x78\x3c\ \x1e\xa6\x54\xa9\x5d\xce\xc1\xd0\xaf\x79\x09\x82\x55\x39\x0b\xf5\ \xfa\xe2\xf1\x78\x0a\x66\x7a\x7a\x3a\x03\xc3\x25\x40\x30\xd4\x37\ \x38\xde\x30\xac\x60\x5c\x6b\xb4\xff\x9d\xc3\xf3\xda\xd1\x40\x28\ \x4d\x4d\x4d\xbf\xcc\xcf\xcf\x33\xca\xec\xec\x6c\x06\x66\x3f\xa3\ \x11\x0c\xf6\xa1\xdd\xd6\xb6\x76\xf3\xe0\xd8\xdc\xb5\xbc\x02\xc1\ \xaa\x3c\x85\xc9\x8d\x2f\x2d\x2d\x65\x60\xa8\xdc\x0e\x93\x40\x7f\ \x7f\x3f\xd3\x6a\x75\x21\x68\xfa\x6e\xde\x80\x50\x14\x0a\xc5\xed\ \x95\x95\x15\x46\x30\x0b\x0b\x0b\x6c\x6e\x6e\x8e\x1d\x26\x01\x82\ \xa1\x0d\x14\x22\x48\x28\xda\xd4\x0a\x7f\x64\xbd\x28\x2f\x40\x4a\ \x4b\x4b\xcf\xa1\x6c\x42\xab\xab\xab\x6c\x79\x79\x39\x03\xc3\x25\ \x40\x30\x5c\x02\x04\xc3\x25\x40\x30\xd8\x8f\x20\x82\xf6\xa1\x4e\ \xd7\xe8\xcd\x53\x07\xa1\x68\x34\x9a\xfb\x9b\x9b\x9b\x6c\x6d\x6d\ \x2d\x05\xb3\xb8\xb8\xc8\xb8\x04\x0e\x33\x1a\xf5\x0d\x59\x0d\x22\ \x58\x51\xaa\x8d\x35\xc1\x99\x9d\xd3\x05\xa9\xaa\xaa\xba\x80\x95\ \x48\x12\xcc\xfa\xfa\x3a\xa3\x52\xe3\x30\xd9\x48\x80\x60\x9c\x4e\ \x27\x93\x2b\xda\xec\x6e\x6f\xe4\xa7\x53\x03\xa1\x0d\x12\x65\xe2\ \x4d\x24\x12\x6c\x6b\x6b\x2b\x03\x93\x8d\x04\x08\x86\x4b\x00\xc7\ \x1b\x86\xa7\xd2\x69\x8d\xc1\xf6\x07\x26\xf6\xcd\x89\x83\x50\x70\ \x59\x51\xb9\xbb\xbb\xcb\x76\x76\x76\x32\x30\xd4\x37\x1c\x86\x4b\ \x80\x60\xb8\x04\xf8\xb3\x8d\x50\x02\xd4\x37\x10\x41\x52\x06\x13\ \xe0\xb1\xfa\xd2\x89\x83\xd4\xd6\xd6\x7e\x42\x93\xe7\x30\xdb\xdb\ \xdb\x6c\x63\x63\x83\xed\x95\xc0\xa3\x8e\x35\x1c\x06\x5a\x67\x4a\ \xa5\x32\x60\xb6\xbb\x7f\x3f\x51\x10\xda\xe9\x31\x89\x00\x81\x50\ \x92\xc9\x64\x0a\x46\x28\x01\x82\xc9\x46\x02\x04\x43\x7d\x43\x30\ \x10\xc1\xa6\x4c\xa1\xfa\x77\x2c\xba\xf9\xf5\x89\x80\x50\x70\x7d\ \x54\xc7\x41\x38\x0c\xf5\x0d\x87\x39\x8a\x04\xa8\x6f\x7a\x7a\x7a\ \x98\x4c\xae\x70\x76\xb9\xfd\xd7\x4f\x04\x04\x77\xc7\x57\x68\xf2\ \x42\x18\x0a\x87\x11\x1a\x4d\x78\xac\x39\xe8\xd9\x46\x28\x01\xb2\ \x1a\x1e\xea\x16\x5a\x55\xfa\x3f\x43\xb3\xc9\x8b\x39\x05\x29\x2b\ \x2b\x7b\x1d\x7d\x90\xd8\x0b\x72\x98\x04\xb2\x3d\xd6\x50\xdf\x10\ \x0c\x0e\xaa\xac\xb9\x45\x66\xf4\x8c\x4e\x5f\xca\x19\x08\x69\x58\ \xd8\x27\xfb\xc1\x1c\x45\x02\x42\xa3\x11\x0c\x95\x9a\x4a\xa5\x0a\ \x43\xd3\xb7\x05\x9a\x16\x0f\x84\xd2\xd5\xd5\xa5\x39\x08\x44\x28\ \x01\x82\x39\x8e\x04\x08\x06\xb7\xa0\x89\xc6\x66\xb9\x6c\x34\xbc\ \x72\x51\x74\x10\x5c\x80\x97\x1d\x06\x72\x90\xd1\x84\xc7\x1a\xea\ \x1b\x9a\xbc\xcd\x66\x5b\xc6\xef\x05\x71\x04\x72\xe1\x75\x87\xa3\ \xbd\xbd\xdd\x8e\x95\xb0\x41\xcb\xd6\xb6\xb6\x36\x33\x5e\x50\x99\ \x9a\x9b\x9b\x95\xf7\xee\xdd\x6f\xaa\xf8\xeb\x41\xa1\xa8\x20\x0d\ \x0d\x0d\x45\xfb\x35\xfc\x7e\xd9\x2b\x01\xfc\xfb\xdb\x98\x7c\x10\ \x97\x81\x56\x6c\xb0\xd5\x58\x81\x5b\x28\xad\xdf\x90\x22\xe4\x02\ \xf2\x1a\xf2\x22\xf2\x02\xf2\x3c\xf2\x5c\x3a\xf4\xdd\x63\xa2\x82\ \x94\x97\x97\xbf\x43\xff\x6e\x36\x20\x14\xac\x46\x12\x75\x1f\xc5\ \x7b\x19\x07\x20\x2a\xd2\x13\xa7\x5c\x45\xde\x47\x9e\xc9\x76\x6c\ \x51\x41\xd0\xf0\xe7\xa0\xd1\x85\x47\x01\x90\xc1\x70\x39\x1e\xc1\ \x3f\x2f\x47\xfd\xdf\x14\x00\x7c\x89\xbc\x8a\x9c\xf9\xbf\x63\x8b\ \x0a\x42\x41\x49\xf8\x0f\x33\x17\x1a\x36\x8e\xda\x37\xc0\x46\xc5\ \x02\x00\x2a\x9f\x97\x8e\x33\xae\xe8\x20\xb0\x8a\x7d\x3f\x08\xf4\ \x00\x35\x6f\x17\x40\x4a\x04\x00\x3f\x23\xef\x21\x8f\x1f\x77\x5c\ \xd1\x41\xa0\x60\xc5\xde\xa6\xee\xee\xee\x0e\xe1\xfb\x32\x01\x00\ \xe5\x63\xe4\x69\xb1\xc6\x15\x1d\x04\x4d\xfb\x90\x43\x60\xf7\xde\ \x44\x23\xbb\x70\x76\xba\x25\x00\xb8\x81\xbc\x25\xf6\xb8\xa2\x83\ \xa0\x81\x53\x7b\x09\x76\xe6\x09\x5c\xaf\x7e\x91\x2e\x1f\x0e\xf1\ \x03\xa9\x53\xec\x31\x73\x02\x82\x9b\x95\xab\x58\x15\x6b\x75\x75\ \xf5\xcb\xf4\x19\x13\xff\x3c\x0d\xf1\x19\x52\x98\x0b\x88\x9c\x80\ \x40\xc1\x4f\xd2\xf3\x09\xff\x8c\xc9\xbf\x81\x9c\xa7\x4d\x2b\x57\ \x10\x94\xff\x00\x0c\x72\x2c\xb1\x4c\xc9\xc1\xa9\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xac\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x07\x00\x00\x00\x05\x08\x04\x00\x00\x00\x23\x93\x3e\x53\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x40\x49\x44\x41\x54\x08\xd7\x63\xf8\xcf\ \x00\x82\x13\xeb\x93\x95\x40\x34\x98\x33\x25\xea\xc1\xae\x55\x7d\ \x0c\x8c\x60\x6e\x9d\xc1\x95\x2d\x8f\x76\x3d\xda\xd5\x1e\x01\xe4\ \x86\x0a\x1d\x5e\x04\xe2\x3c\xda\x75\x66\x43\x92\x1c\x43\x5d\xf7\ \xae\x9d\x30\xd8\x38\x01\x00\x65\x08\x27\x8f\x6e\x3d\x5d\x1d\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x9f\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x04\x00\x00\x00\xd8\xe2\x2c\xf7\ \x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ \x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\ \x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\ \xee\x3c\x1a\x00\x00\x00\x33\x49\x44\x41\x54\x18\xd3\x63\x68\xac\ \x68\xfc\x81\x15\x56\x30\x34\xfe\xc7\x05\xc1\x52\xf7\x26\xbf\xec\ \x41\x86\xf7\x26\xc3\xa5\x3e\x74\xfc\x6f\x40\x86\x1f\x3a\x86\x90\ \x14\x1e\x7f\xe1\x0a\x0d\x9c\x61\x08\x00\xf5\x8f\xf9\x54\xcd\x1d\ \xdf\x00\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x01\x1b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0f\x00\x00\x00\x0b\x08\x06\x00\x00\x00\xa0\x47\xd7\x5c\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x00\xad\x49\x44\x41\x54\x28\xcf\x9d\ \x90\x41\x4a\xc4\x40\x10\x45\xdf\x4f\xfe\xb8\xc8\x4e\x74\xe7\x71\ \xd4\x6b\xa8\x17\x08\x78\x03\xef\x90\x6c\x04\xef\xe1\x2a\x82\x2b\ \xcf\x23\x43\x46\x48\xba\xdb\x72\x21\xd9\x4f\xfa\x41\x41\xfd\x82\ \x47\x51\xa5\x61\x18\xbe\xba\xae\xbb\xe1\x9f\x90\x14\x5b\xbf\xe5\ \x88\x6d\x44\xac\xeb\x7a\x4c\x29\xbd\xf6\x7d\xff\xe6\x83\xdd\x3d\ \x3d\x3e\x24\xce\x43\xcb\xb2\x5c\x4e\xd3\xc7\xcb\x38\x8e\x34\x48\ \x2a\x39\x73\x6e\xb9\x6d\x7f\xef\xef\x6e\x97\x83\xfd\x6c\x41\x53\ \x72\x66\x27\x61\xfb\xc2\x08\x95\x9c\xf6\xca\xa8\x51\x6b\xa1\x9a\ \xcd\x10\x60\x40\xa5\xa4\x0a\x37\x30\x75\x37\x43\x04\x16\xa8\x46\ \x8e\x08\x8c\x50\xae\x78\x18\x01\x9e\xe7\xd3\xd5\xfb\xf4\xf9\xbd\ \xd7\x9d\x4f\x3f\xd7\x7f\xf5\x8b\x6a\x66\x34\x31\xed\x59\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xf0\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x03\x00\x00\x00\x45\x35\x14\x4e\ \x00\x00\x00\x3c\x50\x4c\x54\x45\xf7\xf7\xf7\xff\xff\xff\x90\x90\ \x90\x8b\x8b\x8b\x8e\x8e\x8e\x8b\x8b\x8b\xec\xec\xec\x90\x90\x90\ \xc3\xc3\xc3\xde\xde\xde\xf0\xf0\xf0\xa0\xa0\xa0\xed\xed\xed\x90\ \x90\x90\xc2\xc2\xc2\x8f\x8f\x8f\xdc\xdc\xdc\x90\x90\x90\x8c\x8c\ \x8c\x8c\x8c\x8c\x20\x9b\x87\x59\x00\x00\x00\x14\x74\x52\x4e\x53\ \xc8\x00\xf0\x33\x87\x04\xcc\x9f\xde\xd2\xcb\xe7\xcc\xda\xdf\xa6\ \xd3\xdd\xf9\xfa\x54\x29\x6f\x66\x00\x00\x00\x4f\x49\x44\x41\x54\ \x78\x5e\x55\x8e\x59\x0a\x80\x30\x10\x43\x93\x99\x69\xab\xdd\xb5\ \xf7\xbf\xab\x88\x58\x98\xf7\x17\x42\x16\x90\xd4\xd4\xee\x96\x94\ \x24\x18\x4c\x8e\x33\x9f\x87\x58\x20\x68\xa5\xe2\xa5\x16\x23\x54\ \x22\x3e\xa2\x28\x46\xc7\x4f\x1f\xb8\xe6\x56\xf3\xc2\xca\x5b\xe5\ \xe5\x3d\x9f\xf3\x9d\x7e\xcf\x7f\xf1\x3f\x1f\x07\x1b\x02\xe3\x87\ \x82\x10\xf0\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x81\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x01\x03\x00\x00\x00\x25\x3d\x6d\x22\ \x00\x00\x00\x06\x50\x4c\x54\x45\x00\x00\x00\xae\xae\xae\x77\x6b\ \xd6\x2d\x00\x00\x00\x01\x74\x52\x4e\x53\x00\x40\xe6\xd8\x66\x00\ \x00\x00\x29\x49\x44\x41\x54\x78\x5e\x05\xc0\xb1\x0d\x00\x20\x08\ \x04\xc0\xc3\x58\xd8\xfe\x0a\xcc\xc2\x70\x8c\x6d\x28\x0e\x97\x47\ \x68\x86\x55\x71\xda\x1d\x6f\x25\xba\xcd\xd8\xfd\x35\x0a\x04\x1b\ \xd6\xd9\x1a\x92\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x01\x63\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x0d\x00\x00\x00\x0d\x08\x03\x00\x00\x00\x45\x35\x14\x4e\ \x00\x00\x00\x7b\x50\x4c\x54\x45\xff\xff\xff\x8b\x8b\x8b\x8b\x8b\ \x8b\x8e\x8e\x8e\x90\x90\x90\x8f\x8f\x8f\xf7\xf7\xf7\xf4\xf3\xf3\ \xf0\xf0\xf0\xf2\xf1\xf1\xec\xec\xec\xed\xed\xed\xef\xed\xed\xeb\ \xe8\xe8\xde\xde\xde\xdc\xdc\xdc\xe3\xe1\xe1\xe1\xdd\xdd\x90\x90\ \x90\xdf\xda\xda\xde\xd9\xd9\x90\x90\x90\xc3\xc3\xc3\xda\xd4\xd4\ \xc2\xc2\xc2\xd4\xcf\xcf\xd2\xcb\xcb\xd0\xc8\xc8\xa0\xa0\xa0\xc9\ \xc2\xc2\x90\x90\x90\xc3\xbb\xbb\xc1\xb7\xb7\xc1\xb8\xb8\xc1\xb7\ \xb7\x8c\x8c\x8c\xc1\xb8\xb8\x8c\x8c\x8c\xc2\xb8\xb8\xc2\xb9\xb9\ \xc3\xba\xba\xd5\x0f\x4f\x7d\x00\x00\x00\x29\x74\x52\x4e\x53\x00\ \x04\x33\x87\x9f\xa6\xc8\xca\xcb\xcb\xcc\xcc\xcd\xd1\xd2\xd3\xd5\ \xd8\xda\xda\xdb\xdd\xde\xde\xdf\xe2\xe4\xe6\xe7\xec\xf0\xf2\xf5\ \xf6\xf7\xf9\xf9\xfa\xfa\xfa\xfd\x3e\x2b\x06\xf8\x00\x00\x00\x6e\ \x49\x44\x41\x54\x08\x5b\x5d\x8e\x41\x02\xc1\x30\x00\x04\xb7\x49\ \x33\xa2\xa5\xa1\xa4\x82\x0a\x45\xf1\xff\x17\x3a\xf4\xa2\xe6\xbe\ \xb3\x23\x49\xa6\x6c\x1f\x6d\x69\x24\x49\x85\xcd\x5d\xe3\x9b\x2e\ \xdb\x42\x92\xed\x6b\x00\xea\xde\x4a\x26\x57\x4c\x54\xd9\xc8\x25\ \x60\xb5\x59\x02\xc9\x29\x06\xd8\xde\x86\xeb\x1a\x42\xd4\xe8\xe1\ \xf2\xfe\x3c\x8f\xe0\x47\xc5\x00\xa7\xfb\x6b\xd8\x43\x88\x72\x09\ \x16\x87\xf3\x6e\xda\xcd\x9d\xf3\xbf\xbf\x96\xdf\xce\x2f\xbf\x0b\ \x07\xc6\xa9\xa3\x54\xf8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x02\x0d\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x13\x08\x06\x00\x00\x00\xd6\x3a\x8e\x1f\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ \x67\x9b\xee\x3c\x1a\x00\x00\x01\x9f\x49\x44\x41\x54\x48\xc7\xd5\ \x57\xcd\x4a\xc3\x40\x18\xdc\x4d\xd6\x5a\x2a\xfd\xc1\x9f\x46\x85\ \x5a\x29\x88\xf4\x09\x4c\x3d\xa9\x27\xc1\x5e\x7c\x94\x4a\xf1\x05\ \x3c\x5a\xf0\xd6\x9b\x3e\x81\x98\x07\x28\xe6\x50\x7a\xb2\x97\x2a\ \x5e\xa5\xb7\xaa\x87\xd8\x54\x48\x4c\x62\xf2\xad\xdf\xd2\xd8\xf6\ \x11\xb2\x13\x16\xf6\xcb\x69\x66\x67\x06\x76\x29\xe7\x9c\xb4\x5a\ \xad\x12\xa5\xf4\x06\xd7\x31\x00\xac\x92\xe4\x82\x2b\x8a\xf2\x86\ \x1c\x6f\x71\x7f\xdd\x6c\x36\x23\x86\xe4\x77\x91\xf8\x73\x3e\x9f\ \x67\xba\xae\x07\x9a\xa6\x39\x09\x16\x40\x86\xc3\xa1\xd6\xeb\xf5\ \xae\xf0\xe0\x0f\x70\x3c\xa7\x28\xc0\xa8\x54\x2a\xa7\xf5\x7a\x7d\ \xc4\x10\xf8\x73\x59\xb8\x92\x60\x78\x28\x62\xc9\x30\x8c\x2d\xdc\ \x9f\x31\x4a\xc9\x51\xad\x56\xe3\x8c\xa9\x2a\x40\x14\x22\xf9\x88\ \x24\x1c\xe5\xf2\x8e\x5f\x28\x14\x5c\xdb\xb6\x4f\x18\x00\x2f\xa4\ \xd3\xe9\x9f\x28\x02\x21\x00\x88\x24\xc8\xe5\xb2\xdc\xb2\xac\x4d\ \x36\x6b\x07\x44\x94\x83\x34\xfc\x91\x30\x21\x58\x66\x85\xfd\x4f\ \x1c\xc4\x02\x99\xf8\x0b\x50\x36\x53\x23\x3e\x2e\x91\x03\xb1\x04\ \x16\x9f\xbf\xf0\x83\xc8\x15\xa1\x05\x01\x53\xfe\x5c\x64\x4a\x36\ \xfe\x64\x5e\x62\x8c\x10\x97\x39\x42\x92\x96\x78\x1e\x21\x41\x1e\ \xa4\xed\xc0\xb4\xc6\x92\x45\x28\x76\x00\x2f\x72\x4e\x18\x86\xaa\ \x4a\x55\xa9\x22\xe4\x38\xae\x48\xcc\xb7\x70\xe0\x69\x34\x7a\x3f\ \x2c\x6d\x17\xc3\x84\x5f\xe2\x66\xb0\xbe\xc6\x29\x7b\x32\xc9\x78\ \x9e\xd7\x67\x48\xfa\xe2\xd1\x34\xfb\xc5\xe2\xc6\x5a\x75\x7f\xcf\ \x59\xc9\x64\xc2\xe4\xc6\x1e\xa8\x65\x8d\x53\x83\x97\xd7\x2c\xf2\ \x1e\xb4\xdb\xed\x7b\x1a\x3f\x68\x74\x8c\xd2\x1d\xee\xab\x12\x18\ \xf0\x8b\x91\x7f\x30\x4d\xf3\xb2\xd3\xe9\x7c\xd2\xc5\xd8\x34\x1a\ \x8d\x75\xd7\x75\xb5\x20\x08\xd4\x64\x3a\xc0\x79\xb7\xdb\xfd\xc0\ \xf7\x80\x8f\xa3\x8f\xa3\xff\x07\x2d\x6a\xf7\xea\xcc\x13\x18\xa8\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x03\ \x00\x00\x78\xa3\ \x00\x71\ \x00\x73\x00\x73\ \x00\x0a\ \x0c\xbd\x13\x23\ \x00\x63\ \x00\x6f\x00\x66\x00\x66\x00\x65\x00\x65\x00\x2e\x00\x71\x00\x73\x00\x73\ \x00\x0b\ \x0c\xe2\x21\xa3\ \x00\x64\ \x00\x65\x00\x66\x00\x61\x00\x75\x00\x6c\x00\x74\x00\x2e\x00\x71\x00\x73\x00\x73\ \x00\x0c\ \x0c\xe8\xef\x03\ \x00\x70\ \x00\x61\x00\x67\x00\x65\x00\x66\x00\x6f\x00\x6c\x00\x64\x00\x2e\x00\x71\x00\x73\x00\x73\ \x00\x1e\ \x00\x4f\xcb\xe7\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\ \x00\x64\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x16\ \x0b\x31\x44\x87\ \x00\x70\ \x00\x75\x00\x73\x00\x68\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\ \x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x14\ \x05\x6a\xa8\xa7\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ \x00\x1c\ \x02\x75\x51\x87\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\x00\x64\x00\x5f\ \x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x12\ \x03\xe4\x59\x27\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x75\x00\x70\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\ \x00\x67\ \x00\x10\ \x07\x5f\x75\x87\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x75\x00\x70\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x10\ \x0c\xba\x0b\x87\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x21\ \x09\x84\x6e\x87\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\ \x00\x63\x00\x6b\x00\x65\x00\x64\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \ \x00\x09\ \x08\x38\x8c\x47\ \x00\x66\ \x00\x72\x00\x61\x00\x6d\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1a\ \x03\x0e\xe4\x87\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\x00\x64\x00\x5f\ \x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1f\ \x0c\x85\x15\xa7\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\ \x00\x63\x00\x6b\x00\x65\x00\x64\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1d\ \x05\xbc\x2c\x47\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\ \x00\x65\x00\x64\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x09\xaf\x5e\x27\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x17\ \x0c\xab\x51\x07\ \x00\x64\ \x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x5f\x00\x64\x00\x69\x00\x73\x00\x61\x00\x62\x00\x6c\ \x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x02\x9c\x73\xc7\ \x00\x70\ \x00\x75\x00\x73\x00\x68\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1c\ \x0e\x3c\xde\x07\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\ \x00\x64\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x1f\ \x00\xbd\x9c\xe7\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\ \x00\x65\x00\x64\x00\x5f\x00\x70\x00\x72\x00\x65\x00\x73\x00\x73\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x04\xa2\xfc\xa7\ \x00\x64\ \x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x06\xe6\xe6\x67\ \x00\x75\ \x00\x70\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x12\ \x0f\x99\xfb\x67\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00\x6e\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\ \x00\x67\ \x00\x14\ \x07\xec\xd1\xc7\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\x00\x64\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ \x00\x0e\ \x0b\xc2\xcd\x07\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x75\x00\x70\x00\x5f\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x0c\xe8\xe0\xe7\ \x00\x70\ \x00\x61\x00\x67\x00\x65\x00\x66\x00\x6f\x00\x6c\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x15\ \x0f\xf3\xc0\x07\ \x00\x75\ \x00\x70\x00\x5f\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x5f\x00\x64\x00\x69\x00\x73\x00\x61\x00\x62\x00\x6c\x00\x65\x00\x64\ \x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x16\ \x01\x75\xcc\x87\ \x00\x63\ \x00\x68\x00\x65\x00\x63\x00\x6b\x00\x62\x00\x6f\x00\x78\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x65\ \x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x05\xcc\x19\x47\ \x00\x73\ \x00\x70\x00\x69\x00\x6e\x00\x75\x00\x70\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x19\ \x08\x11\x29\x47\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x75\x00\x6e\x00\x63\x00\x68\x00\x65\ \x00\x63\x00\x6b\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x06\x41\x40\x87\ \x00\x73\ \x00\x69\x00\x7a\x00\x65\x00\x67\x00\x72\x00\x69\x00\x70\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x17\ \x04\xb5\xb5\xa7\ \x00\x72\ \x00\x61\x00\x64\x00\x69\x00\x6f\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x63\x00\x68\x00\x65\x00\x63\x00\x6b\ \x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x14\ \x09\x87\xa0\x87\ \x00\x70\ \x00\x75\x00\x73\x00\x68\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x5f\x00\x68\x00\x6f\x00\x76\x00\x65\x00\x72\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\ \x00\x00\x00\x12\x00\x02\x00\x00\x00\x03\x00\x00\x00\x21\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x1e\x00\x00\x00\x03\ \x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x9a\ \x00\x00\x03\x98\x00\x00\x00\x00\x00\x01\x00\x00\x25\x98\ \x00\x00\x04\xe4\x00\x00\x00\x00\x00\x01\x00\x00\x33\x5d\ \x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00\x13\xef\ \x00\x00\x03\x38\x00\x00\x00\x00\x00\x01\x00\x00\x22\xdc\ \x00\x00\x02\x28\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xfc\ \x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x00\x15\x9c\ \x00\x00\x03\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x27\xf3\ \x00\x00\x05\x86\x00\x00\x00\x00\x00\x01\x00\x00\x36\x98\ \x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x12\xe3\ \x00\x00\x02\xa6\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xfa\ \x00\x00\x05\x16\x00\x00\x00\x00\x00\x01\x00\x00\x34\x00\ \x00\x00\x05\x68\x00\x00\x00\x00\x00\x01\x00\x00\x36\x13\ \x00\x00\x03\xfe\x00\x00\x00\x00\x00\x01\x00\x00\x28\xa6\ \x00\x00\x01\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x16\xb5\ \x00\x00\x04\x46\x00\x00\x00\x00\x00\x01\x00\x00\x2a\x7f\ \x00\x00\x05\x30\x00\x00\x00\x00\x00\x01\x00\x00\x35\x1f\ \x00\x00\x02\x10\x00\x00\x00\x00\x00\x01\x00\x00\x1a\xfb\ \x00\x00\x01\xc8\x00\x00\x00\x00\x00\x01\x00\x00\x18\xcb\ \x00\x00\x05\xba\x00\x00\x00\x00\x00\x01\x00\x00\x37\xff\ \x00\x00\x02\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x21\x12\ \x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x10\xde\ \x00\x00\x04\x74\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x8a\ \x00\x00\x02\x62\x00\x00\x00\x00\x00\x01\x00\x00\x1d\x0a\ \x00\x00\x03\x04\x00\x00\x00\x00\x00\x01\x00\x00\x22\x2a\ \x00\x00\x01\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x17\xce\ \x00\x00\x04\x96\x00\x00\x00\x00\x00\x01\x00\x00\x2c\xa0\ \x00\x00\x03\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x24\xf5\ \x00\x00\x04\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x29\x6f\ \x00\x00\x04\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x32\xad\ \x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x08\xcb\ \x00\x00\x00\x54\x00\x01\x00\x00\x00\x01\x00\x00\x08\xe6\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/stylesheeteditor.py0000644000076500000240000001061612536324427025407 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2010 Hans-Peter Jansen . ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ########################################################################### from PyQt4 import QtCore, QtGui from ui_stylesheeteditor import Ui_StyleSheetEditor class StyleSheetEditor(QtGui.QDialog): def __init__(self, parent=None): super(StyleSheetEditor, self).__init__(parent) self.ui = Ui_StyleSheetEditor() self.ui.setupUi(self) regExp = QtCore.QRegExp(r'.(.*)\+?Style') defaultStyle = QtGui.QApplication.style().metaObject().className() if regExp.exactMatch(defaultStyle): defaultStyle = regExp.cap(1) self.ui.styleCombo.addItems(QtGui.QStyleFactory.keys()) self.ui.styleCombo.setCurrentIndex( self.ui.styleCombo.findText(defaultStyle, QtCore.Qt.MatchContains)) self.ui.styleSheetCombo.setCurrentIndex( self.ui.styleSheetCombo.findText('Coffee')) self.loadStyleSheet('Coffee') @QtCore.pyqtSlot(str) def on_styleCombo_activated(self, styleName): QtGui.qApp.setStyle(styleName) self.ui.applyButton.setEnabled(False) @QtCore.pyqtSlot(str) def on_styleSheetCombo_activated(self, sheetName): self.loadStyleSheet(sheetName) def on_styleTextEdit_textChanged(self): self.ui.applyButton.setEnabled(True) def on_applyButton_clicked(self): QtGui.qApp.setStyleSheet(self.ui.styleTextEdit.toPlainText()) self.ui.applyButton.setEnabled(False) def on_saveButton_clicked(self): fileName = QtGui.QFileDialog.getSaveFileName(self) if fileName: self.saveStyleSheet(fileName) def loadStyleSheet(self, sheetName): file = QtCore.QFile(':/qss/%s.qss' % sheetName.lower()) file.open(QtCore.QFile.ReadOnly) styleSheet = file.readAll() try: # Python v2. styleSheet = unicode(styleSheet, encoding='utf8') except NameError: # Python v3. styleSheet = str(styleSheet, encoding='utf8') self.ui.styleTextEdit.setPlainText(styleSheet) QtGui.qApp.setStyleSheet(styleSheet) self.ui.applyButton.setEnabled(False) def saveStyleSheet(self, fileName): styleSheet = self.ui.styleTextEdit.toPlainText() file = QtCore.QFile(fileName) if file.open(QtCore.QIODevice.WriteOnly): QtCore.QTextStream(file) << styleSheet else: QtGui.QMessageBox.information(self, "Unable to open file", file.errorString()) PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/stylesheeteditor.ui0000644000076500000240000001042312536324427025370 0ustar philstaff00000000000000 StyleSheetEditor 0 0 445 289 Style Editor 9 6 Qt::Horizontal QSizePolicy::MinimumExpanding 32 20 Qt::Horizontal QSizePolicy::MinimumExpanding 32 20 Default Coffee Pagefold Qt::Horizontal QSizePolicy::Fixed 10 16 0 0 0 0 Style: 6 0 Qt::Horizontal 321 20 true &Save false &Apply 0 0 Style Sheet: PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/ui_mainwindow.py0000644000076500000240000003253512536324427024664 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'mainwindow.ui' # # Created: Fri Dec 3 17:10:42 2010 # by: PyQt4 UI code generator snapshot-4.8.2-4dddaa7e9c07 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(400, 413) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.vboxlayout = QtGui.QVBoxLayout(self.centralwidget) self.vboxlayout.setMargin(9) self.vboxlayout.setSpacing(6) self.vboxlayout.setObjectName(_fromUtf8("vboxlayout")) self.mainFrame = QtGui.QFrame(self.centralwidget) self.mainFrame.setFrameShape(QtGui.QFrame.StyledPanel) self.mainFrame.setFrameShadow(QtGui.QFrame.Raised) self.mainFrame.setObjectName(_fromUtf8("mainFrame")) self.gridlayout = QtGui.QGridLayout(self.mainFrame) self.gridlayout.setMargin(9) self.gridlayout.setSpacing(6) self.gridlayout.setObjectName(_fromUtf8("gridlayout")) self.agreeCheckBox = QtGui.QCheckBox(self.mainFrame) self.agreeCheckBox.setObjectName(_fromUtf8("agreeCheckBox")) self.gridlayout.addWidget(self.agreeCheckBox, 6, 0, 1, 5) self.label = QtGui.QLabel(self.mainFrame) self.label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTop|QtCore.Qt.AlignTrailing) self.label.setObjectName(_fromUtf8("label")) self.gridlayout.addWidget(self.label, 5, 0, 1, 1) self.nameLabel = QtGui.QLabel(self.mainFrame) self.nameLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.nameLabel.setObjectName(_fromUtf8("nameLabel")) self.gridlayout.addWidget(self.nameLabel, 0, 0, 1, 1) self.maleRadioButton = QtGui.QRadioButton(self.mainFrame) self.maleRadioButton.setObjectName(_fromUtf8("maleRadioButton")) self.gridlayout.addWidget(self.maleRadioButton, 1, 1, 1, 1) self.passwordLabel = QtGui.QLabel(self.mainFrame) self.passwordLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.passwordLabel.setObjectName(_fromUtf8("passwordLabel")) self.gridlayout.addWidget(self.passwordLabel, 3, 0, 1, 1) self.countryCombo = QtGui.QComboBox(self.mainFrame) self.countryCombo.setObjectName(_fromUtf8("countryCombo")) self.countryCombo.addItem(_fromUtf8("")) self.countryCombo.addItem(_fromUtf8("")) self.countryCombo.addItem(_fromUtf8("")) self.countryCombo.addItem(_fromUtf8("")) self.countryCombo.addItem(_fromUtf8("")) self.countryCombo.addItem(_fromUtf8("")) self.countryCombo.addItem(_fromUtf8("")) self.gridlayout.addWidget(self.countryCombo, 4, 1, 1, 4) self.ageLabel = QtGui.QLabel(self.mainFrame) self.ageLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.ageLabel.setObjectName(_fromUtf8("ageLabel")) self.gridlayout.addWidget(self.ageLabel, 2, 0, 1, 1) self.countryLabel = QtGui.QLabel(self.mainFrame) self.countryLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.countryLabel.setObjectName(_fromUtf8("countryLabel")) self.gridlayout.addWidget(self.countryLabel, 4, 0, 1, 1) self.genderLabel = QtGui.QLabel(self.mainFrame) self.genderLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.genderLabel.setObjectName(_fromUtf8("genderLabel")) self.gridlayout.addWidget(self.genderLabel, 1, 0, 1, 1) self.passwordEdit = QtGui.QLineEdit(self.mainFrame) self.passwordEdit.setEchoMode(QtGui.QLineEdit.Password) self.passwordEdit.setObjectName(_fromUtf8("passwordEdit")) self.gridlayout.addWidget(self.passwordEdit, 3, 1, 1, 4) self.femaleRadioButton = QtGui.QRadioButton(self.mainFrame) self.femaleRadioButton.setObjectName(_fromUtf8("femaleRadioButton")) self.gridlayout.addWidget(self.femaleRadioButton, 1, 2, 1, 2) self.ageSpinBox = QtGui.QSpinBox(self.mainFrame) self.ageSpinBox.setMinimum(12) self.ageSpinBox.setProperty(_fromUtf8("value"), 22) self.ageSpinBox.setObjectName(_fromUtf8("ageSpinBox")) self.gridlayout.addWidget(self.ageSpinBox, 2, 1, 1, 2) self.nameCombo = QtGui.QComboBox(self.mainFrame) self.nameCombo.setEditable(True) self.nameCombo.setObjectName(_fromUtf8("nameCombo")) self.gridlayout.addWidget(self.nameCombo, 0, 1, 1, 4) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridlayout.addItem(spacerItem, 1, 4, 1, 1) spacerItem1 = QtGui.QSpacerItem(61, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridlayout.addItem(spacerItem1, 2, 3, 1, 2) self.buttonBox = QtGui.QDialogButtonBox(self.mainFrame) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.NoButton|QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName(_fromUtf8("buttonBox")) self.gridlayout.addWidget(self.buttonBox, 7, 3, 1, 2) self.professionList = QtGui.QListWidget(self.mainFrame) self.professionList.setObjectName(_fromUtf8("professionList")) QtGui.QListWidgetItem(self.professionList) QtGui.QListWidgetItem(self.professionList) QtGui.QListWidgetItem(self.professionList) self.gridlayout.addWidget(self.professionList, 5, 1, 1, 4) self.vboxlayout.addWidget(self.mainFrame) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 400, 29)) self.menubar.setObjectName(_fromUtf8("menubar")) self.menu_File = QtGui.QMenu(self.menubar) self.menu_File.setObjectName(_fromUtf8("menu_File")) self.menu_Help = QtGui.QMenu(self.menubar) self.menu_Help.setObjectName(_fromUtf8("menu_Help")) MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.exitAction = QtGui.QAction(MainWindow) self.exitAction.setObjectName(_fromUtf8("exitAction")) self.aboutQtAction = QtGui.QAction(MainWindow) self.aboutQtAction.setObjectName(_fromUtf8("aboutQtAction")) self.editStyleAction = QtGui.QAction(MainWindow) self.editStyleAction.setObjectName(_fromUtf8("editStyleAction")) self.aboutAction = QtGui.QAction(MainWindow) self.aboutAction.setObjectName(_fromUtf8("aboutAction")) self.menu_File.addAction(self.editStyleAction) self.menu_File.addSeparator() self.menu_File.addAction(self.exitAction) self.menu_Help.addAction(self.aboutAction) self.menu_Help.addAction(self.aboutQtAction) self.menubar.addAction(self.menu_File.menuAction()) self.menubar.addAction(self.menu_Help.menuAction()) self.label.setBuddy(self.professionList) self.nameLabel.setBuddy(self.nameCombo) self.passwordLabel.setBuddy(self.passwordEdit) self.ageLabel.setBuddy(self.ageSpinBox) self.countryLabel.setBuddy(self.countryCombo) self.retranslateUi(MainWindow) self.countryCombo.setCurrentIndex(6) self.professionList.setCurrentRow(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Style Sheet", None, QtGui.QApplication.UnicodeUTF8)) self.agreeCheckBox.setToolTip(QtGui.QApplication.translate("MainWindow", "Please read the LICENSE file before checking", None, QtGui.QApplication.UnicodeUTF8)) self.agreeCheckBox.setText(QtGui.QApplication.translate("MainWindow", "I accept the terms and &conditions", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "Profession:", None, QtGui.QApplication.UnicodeUTF8)) self.nameLabel.setText(QtGui.QApplication.translate("MainWindow", "&Name:", None, QtGui.QApplication.UnicodeUTF8)) self.maleRadioButton.setToolTip(QtGui.QApplication.translate("MainWindow", "Check this if you are male", None, QtGui.QApplication.UnicodeUTF8)) self.maleRadioButton.setText(QtGui.QApplication.translate("MainWindow", "&Male", None, QtGui.QApplication.UnicodeUTF8)) self.passwordLabel.setText(QtGui.QApplication.translate("MainWindow", "&Password:", None, QtGui.QApplication.UnicodeUTF8)) self.countryCombo.setToolTip(QtGui.QApplication.translate("MainWindow", "Specify country of origin", None, QtGui.QApplication.UnicodeUTF8)) self.countryCombo.setStatusTip(QtGui.QApplication.translate("MainWindow", "Specify country of origin", None, QtGui.QApplication.UnicodeUTF8)) self.countryCombo.setItemText(0, QtGui.QApplication.translate("MainWindow", "Egypt", None, QtGui.QApplication.UnicodeUTF8)) self.countryCombo.setItemText(1, QtGui.QApplication.translate("MainWindow", "France", None, QtGui.QApplication.UnicodeUTF8)) self.countryCombo.setItemText(2, QtGui.QApplication.translate("MainWindow", "Germany", None, QtGui.QApplication.UnicodeUTF8)) self.countryCombo.setItemText(3, QtGui.QApplication.translate("MainWindow", "India", None, QtGui.QApplication.UnicodeUTF8)) self.countryCombo.setItemText(4, QtGui.QApplication.translate("MainWindow", "Italy", None, QtGui.QApplication.UnicodeUTF8)) self.countryCombo.setItemText(5, QtGui.QApplication.translate("MainWindow", "Norway", None, QtGui.QApplication.UnicodeUTF8)) self.countryCombo.setItemText(6, QtGui.QApplication.translate("MainWindow", "Pakistan", None, QtGui.QApplication.UnicodeUTF8)) self.ageLabel.setText(QtGui.QApplication.translate("MainWindow", "&Age:", None, QtGui.QApplication.UnicodeUTF8)) self.countryLabel.setText(QtGui.QApplication.translate("MainWindow", "Country:", None, QtGui.QApplication.UnicodeUTF8)) self.genderLabel.setText(QtGui.QApplication.translate("MainWindow", "Gender:", None, QtGui.QApplication.UnicodeUTF8)) self.passwordEdit.setToolTip(QtGui.QApplication.translate("MainWindow", "Specify your password", None, QtGui.QApplication.UnicodeUTF8)) self.passwordEdit.setStatusTip(QtGui.QApplication.translate("MainWindow", "Specify your password", None, QtGui.QApplication.UnicodeUTF8)) self.passwordEdit.setText(QtGui.QApplication.translate("MainWindow", "Password", None, QtGui.QApplication.UnicodeUTF8)) self.femaleRadioButton.setToolTip(QtGui.QApplication.translate("MainWindow", "Check this if you are female", None, QtGui.QApplication.UnicodeUTF8)) self.femaleRadioButton.setText(QtGui.QApplication.translate("MainWindow", "&Female", None, QtGui.QApplication.UnicodeUTF8)) self.ageSpinBox.setToolTip(QtGui.QApplication.translate("MainWindow", "Specify your age", None, QtGui.QApplication.UnicodeUTF8)) self.ageSpinBox.setStatusTip(QtGui.QApplication.translate("MainWindow", "Specify your age", None, QtGui.QApplication.UnicodeUTF8)) self.nameCombo.setToolTip(QtGui.QApplication.translate("MainWindow", "Specify your name", None, QtGui.QApplication.UnicodeUTF8)) self.professionList.setToolTip(QtGui.QApplication.translate("MainWindow", "Select your profession", None, QtGui.QApplication.UnicodeUTF8)) self.professionList.setStatusTip(QtGui.QApplication.translate("MainWindow", "Specify your name here", None, QtGui.QApplication.UnicodeUTF8)) self.professionList.setWhatsThis(QtGui.QApplication.translate("MainWindow", "Specify your name here", None, QtGui.QApplication.UnicodeUTF8)) __sortingEnabled = self.professionList.isSortingEnabled() self.professionList.setSortingEnabled(False) self.professionList.item(0).setText(QtGui.QApplication.translate("MainWindow", "Developer", None, QtGui.QApplication.UnicodeUTF8)) self.professionList.item(1).setText(QtGui.QApplication.translate("MainWindow", "Student", None, QtGui.QApplication.UnicodeUTF8)) self.professionList.item(2).setText(QtGui.QApplication.translate("MainWindow", "Fisherman", None, QtGui.QApplication.UnicodeUTF8)) self.professionList.setSortingEnabled(__sortingEnabled) self.menu_File.setTitle(QtGui.QApplication.translate("MainWindow", "&File", None, QtGui.QApplication.UnicodeUTF8)) self.menu_Help.setTitle(QtGui.QApplication.translate("MainWindow", "&Help", None, QtGui.QApplication.UnicodeUTF8)) self.exitAction.setText(QtGui.QApplication.translate("MainWindow", "&Exit", None, QtGui.QApplication.UnicodeUTF8)) self.aboutQtAction.setText(QtGui.QApplication.translate("MainWindow", "About Qt", None, QtGui.QApplication.UnicodeUTF8)) self.editStyleAction.setText(QtGui.QApplication.translate("MainWindow", "Edit &Style...", None, QtGui.QApplication.UnicodeUTF8)) self.aboutAction.setText(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8)) PyQt-x11-gpl-4.11.4/examples/widgets/stylesheet/ui_stylesheeteditor.py0000644000076500000240000001237712536324427026112 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'stylesheeteditor.ui' # # Created: Fri Dec 3 17:11:04 2010 # by: PyQt4 UI code generator snapshot-4.8.2-4dddaa7e9c07 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_StyleSheetEditor(object): def setupUi(self, StyleSheetEditor): StyleSheetEditor.setObjectName(_fromUtf8("StyleSheetEditor")) StyleSheetEditor.resize(445, 289) self.gridlayout = QtGui.QGridLayout(StyleSheetEditor) self.gridlayout.setMargin(9) self.gridlayout.setSpacing(6) self.gridlayout.setObjectName(_fromUtf8("gridlayout")) spacerItem = QtGui.QSpacerItem(32, 20, QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Minimum) self.gridlayout.addItem(spacerItem, 0, 6, 1, 1) spacerItem1 = QtGui.QSpacerItem(32, 20, QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Minimum) self.gridlayout.addItem(spacerItem1, 0, 0, 1, 1) self.styleSheetCombo = QtGui.QComboBox(StyleSheetEditor) self.styleSheetCombo.setObjectName(_fromUtf8("styleSheetCombo")) self.styleSheetCombo.addItem(_fromUtf8("")) self.styleSheetCombo.addItem(_fromUtf8("")) self.styleSheetCombo.addItem(_fromUtf8("")) self.gridlayout.addWidget(self.styleSheetCombo, 0, 5, 1, 1) spacerItem2 = QtGui.QSpacerItem(10, 16, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.gridlayout.addItem(spacerItem2, 0, 3, 1, 1) self.styleCombo = QtGui.QComboBox(StyleSheetEditor) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.styleCombo.sizePolicy().hasHeightForWidth()) self.styleCombo.setSizePolicy(sizePolicy) self.styleCombo.setObjectName(_fromUtf8("styleCombo")) self.gridlayout.addWidget(self.styleCombo, 0, 2, 1, 1) self.label_7 = QtGui.QLabel(StyleSheetEditor) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth()) self.label_7.setSizePolicy(sizePolicy) self.label_7.setObjectName(_fromUtf8("label_7")) self.gridlayout.addWidget(self.label_7, 0, 1, 1, 1) self.hboxlayout = QtGui.QHBoxLayout() self.hboxlayout.setSpacing(6) self.hboxlayout.setMargin(0) self.hboxlayout.setObjectName(_fromUtf8("hboxlayout")) spacerItem3 = QtGui.QSpacerItem(321, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.hboxlayout.addItem(spacerItem3) self.saveButton = QtGui.QPushButton(StyleSheetEditor) self.saveButton.setEnabled(True) self.saveButton.setObjectName(_fromUtf8("saveButton")) self.hboxlayout.addWidget(self.saveButton) self.applyButton = QtGui.QPushButton(StyleSheetEditor) self.applyButton.setEnabled(False) self.applyButton.setObjectName(_fromUtf8("applyButton")) self.hboxlayout.addWidget(self.applyButton) self.gridlayout.addLayout(self.hboxlayout, 2, 0, 1, 7) self.styleTextEdit = QtGui.QTextEdit(StyleSheetEditor) self.styleTextEdit.setObjectName(_fromUtf8("styleTextEdit")) self.gridlayout.addWidget(self.styleTextEdit, 1, 0, 1, 7) self.label_8 = QtGui.QLabel(StyleSheetEditor) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) self.label_8.setSizePolicy(sizePolicy) self.label_8.setObjectName(_fromUtf8("label_8")) self.gridlayout.addWidget(self.label_8, 0, 4, 1, 1) self.retranslateUi(StyleSheetEditor) QtCore.QMetaObject.connectSlotsByName(StyleSheetEditor) def retranslateUi(self, StyleSheetEditor): StyleSheetEditor.setWindowTitle(QtGui.QApplication.translate("StyleSheetEditor", "Style Editor", None, QtGui.QApplication.UnicodeUTF8)) self.styleSheetCombo.setItemText(0, QtGui.QApplication.translate("StyleSheetEditor", "Default", None, QtGui.QApplication.UnicodeUTF8)) self.styleSheetCombo.setItemText(1, QtGui.QApplication.translate("StyleSheetEditor", "Coffee", None, QtGui.QApplication.UnicodeUTF8)) self.styleSheetCombo.setItemText(2, QtGui.QApplication.translate("StyleSheetEditor", "Pagefold", None, QtGui.QApplication.UnicodeUTF8)) self.label_7.setText(QtGui.QApplication.translate("StyleSheetEditor", "Style:", None, QtGui.QApplication.UnicodeUTF8)) self.saveButton.setText(QtGui.QApplication.translate("StyleSheetEditor", "&Save", None, QtGui.QApplication.UnicodeUTF8)) self.applyButton.setText(QtGui.QApplication.translate("StyleSheetEditor", "&Apply", None, QtGui.QApplication.UnicodeUTF8)) self.label_8.setText(QtGui.QApplication.translate("StyleSheetEditor", "Style Sheet:", None, QtGui.QApplication.UnicodeUTF8)) PyQt-x11-gpl-4.11.4/examples/widgets/tetrix.py0000755000076500000240000004045112536324427021140 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import copy import random from PyQt4 import QtCore, QtGui NoShape, ZShape, SShape, LineShape, TShape, SquareShape, LShape, MirroredLShape = range(8) class TetrixWindow(QtGui.QWidget): def __init__(self): super(TetrixWindow, self).__init__() self.board = TetrixBoard() nextPieceLabel = QtGui.QLabel() nextPieceLabel.setFrameStyle(QtGui.QFrame.Box | QtGui.QFrame.Raised) nextPieceLabel.setAlignment(QtCore.Qt.AlignCenter) self.board.setNextPieceLabel(nextPieceLabel) scoreLcd = QtGui.QLCDNumber(5) scoreLcd.setSegmentStyle(QtGui.QLCDNumber.Filled) levelLcd = QtGui.QLCDNumber(2) levelLcd.setSegmentStyle(QtGui.QLCDNumber.Filled) linesLcd = QtGui.QLCDNumber(5) linesLcd.setSegmentStyle(QtGui.QLCDNumber.Filled) startButton = QtGui.QPushButton("&Start") startButton.setFocusPolicy(QtCore.Qt.NoFocus) quitButton = QtGui.QPushButton("&Quit") quitButton.setFocusPolicy(QtCore.Qt.NoFocus) pauseButton = QtGui.QPushButton("&Pause") pauseButton.setFocusPolicy(QtCore.Qt.NoFocus) startButton.clicked.connect(self.board.start) pauseButton.clicked.connect(self.board.pause) quitButton.clicked.connect(QtGui.qApp.quit) self.board.scoreChanged.connect(scoreLcd.display) self.board.levelChanged.connect(levelLcd.display) self.board.linesRemovedChanged.connect(linesLcd.display) layout = QtGui.QGridLayout() layout.addWidget(self.createLabel("NEXT"), 0, 0) layout.addWidget(nextPieceLabel, 1, 0) layout.addWidget(self.createLabel("LEVEL"), 2, 0) layout.addWidget(levelLcd, 3, 0) layout.addWidget(startButton, 4, 0) layout.addWidget(self.board, 0, 1, 6, 1) layout.addWidget(self.createLabel("SCORE"), 0, 2) layout.addWidget(scoreLcd, 1, 2) layout.addWidget(self.createLabel("LINES REMOVED"), 2, 2) layout.addWidget(linesLcd, 3, 2) layout.addWidget(quitButton, 4, 2) layout.addWidget(pauseButton, 5, 2) self.setLayout(layout) self.setWindowTitle("Tetrix") self.resize(550, 370) def createLabel(self, text): lbl = QtGui.QLabel(text) lbl.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignBottom) return lbl class TetrixBoard(QtGui.QFrame): BoardWidth = 10 BoardHeight = 22 scoreChanged = QtCore.pyqtSignal(int) levelChanged = QtCore.pyqtSignal(int) linesRemovedChanged = QtCore.pyqtSignal(int) def __init__(self, parent=None): super(TetrixBoard, self).__init__(parent) self.timer = QtCore.QBasicTimer() self.nextPieceLabel = None self.isWaitingAfterLine = False self.curPiece = TetrixPiece() self.nextPiece = TetrixPiece() self.curX = 0 self.curY = 0 self.numLinesRemoved = 0 self.numPiecesDropped = 0 self.score = 0 self.level = 0 self.board = None self.setFrameStyle(QtGui.QFrame.Panel | QtGui.QFrame.Sunken) self.setFocusPolicy(QtCore.Qt.StrongFocus) self.isStarted = False self.isPaused = False self.clearBoard() self.nextPiece.setRandomShape() def shapeAt(self, x, y): return self.board[(y * TetrixBoard.BoardWidth) + x] def setShapeAt(self, x, y, shape): self.board[(y * TetrixBoard.BoardWidth) + x] = shape def timeoutTime(self): return 1000 / (1 + self.level) def squareWidth(self): return self.contentsRect().width() / TetrixBoard.BoardWidth def squareHeight(self): return self.contentsRect().height() / TetrixBoard.BoardHeight def setNextPieceLabel(self, label): self.nextPieceLabel = label def sizeHint(self): return QtCore.QSize(TetrixBoard.BoardWidth * 15 + self.frameWidth() * 2, TetrixBoard.BoardHeight * 15 + self.frameWidth() * 2) def minimumSizeHint(self): return QtCore.QSize(TetrixBoard.BoardWidth * 5 + self.frameWidth() * 2, TetrixBoard.BoardHeight * 5 + self.frameWidth() * 2) def start(self): if self.isPaused: return self.isStarted = True self.isWaitingAfterLine = False self.numLinesRemoved = 0 self.numPiecesDropped = 0 self.score = 0 self.level = 1 self.clearBoard() self.linesRemovedChanged.emit(self.numLinesRemoved) self.scoreChanged.emit(self.score) self.levelChanged.emit(self.level) self.newPiece() self.timer.start(self.timeoutTime(), self) def pause(self): if not self.isStarted: return self.isPaused = not self.isPaused if self.isPaused: self.timer.stop() else: self.timer.start(self.timeoutTime(), self) self.update() def paintEvent(self, event): super(TetrixBoard, self).paintEvent(event) painter = QtGui.QPainter(self) rect = self.contentsRect() if self.isPaused: painter.drawText(rect, QtCore.Qt.AlignCenter, "Pause") return boardTop = rect.bottom() - TetrixBoard.BoardHeight * self.squareHeight() for i in range(TetrixBoard.BoardHeight): for j in range(TetrixBoard.BoardWidth): shape = self.shapeAt(j, TetrixBoard.BoardHeight - i - 1) if shape != NoShape: self.drawSquare(painter, rect.left() + j * self.squareWidth(), boardTop + i * self.squareHeight(), shape) if self.curPiece.shape() != NoShape: for i in range(4): x = self.curX + self.curPiece.x(i) y = self.curY - self.curPiece.y(i) self.drawSquare(painter, rect.left() + x * self.squareWidth(), boardTop + (TetrixBoard.BoardHeight - y - 1) * self.squareHeight(), self.curPiece.shape()) def keyPressEvent(self, event): if not self.isStarted or self.isPaused or self.curPiece.shape() == NoShape: super(TetrixBoard, self).keyPressEvent(event) return key = event.key() if key == QtCore.Qt.Key_Left: self.tryMove(self.curPiece, self.curX - 1, self.curY) elif key == QtCore.Qt.Key_Right: self.tryMove(self.curPiece, self.curX + 1, self.curY) elif key == QtCore.Qt.Key_Down: self.tryMove(self.curPiece.rotatedRight(), self.curX, self.curY) elif key == QtCore.Qt.Key_Up: self.tryMove(self.curPiece.rotatedLeft(), self.curX, self.curY) elif key == QtCore.Qt.Key_Space: self.dropDown() elif key == QtCore.Qt.Key_D: self.oneLineDown() else: super(TetrixBoard, self).keyPressEvent(event) def timerEvent(self, event): if event.timerId() == self.timer.timerId(): if self.isWaitingAfterLine: self.isWaitingAfterLine = False self.newPiece() self.timer.start(self.timeoutTime(), self) else: self.oneLineDown() else: super(TetrixBoard, self).timerEvent(event) def clearBoard(self): self.board = [NoShape for i in range(TetrixBoard.BoardHeight * TetrixBoard.BoardWidth)] def dropDown(self): dropHeight = 0 newY = self.curY while newY > 0: if not self.tryMove(self.curPiece, self.curX, newY - 1): break newY -= 1 dropHeight += 1 self.pieceDropped(dropHeight) def oneLineDown(self): if not self.tryMove(self.curPiece, self.curX, self.curY - 1): self.pieceDropped(0) def pieceDropped(self, dropHeight): for i in range(4): x = self.curX + self.curPiece.x(i) y = self.curY - self.curPiece.y(i) self.setShapeAt(x, y, self.curPiece.shape()) self.numPiecesDropped += 1 if self.numPiecesDropped % 25 == 0: self.level += 1 self.timer.start(self.timeoutTime(), self) self.levelChanged.emit(self.level) self.score += dropHeight + 7 self.scoreChanged.emit(self.score) self.removeFullLines() if not self.isWaitingAfterLine: self.newPiece() def removeFullLines(self): numFullLines = 0 for i in range(TetrixBoard.BoardHeight - 1, -1, -1): lineIsFull = True for j in range(TetrixBoard.BoardWidth): if self.shapeAt(j, i) == NoShape: lineIsFull = False break if lineIsFull: numFullLines += 1 for k in range(TetrixBoard.BoardHeight - 1): for j in range(TetrixBoard.BoardWidth): self.setShapeAt(j, k, self.shapeAt(j, k + 1)) for j in range(TetrixBoard.BoardWidth): self.setShapeAt(j, TetrixBoard.BoardHeight - 1, NoShape) if numFullLines > 0: self.numLinesRemoved += numFullLines self.score += 10 * numFullLines self.linesRemovedChanged.emit(self.numLinesRemoved) self.scoreChanged.emit(self.score) self.timer.start(500, self) self.isWaitingAfterLine = True self.curPiece.setShape(NoShape) self.update() def newPiece(self): self.curPiece = copy.deepcopy(self.nextPiece) self.nextPiece.setRandomShape() self.showNextPiece() self.curX = TetrixBoard.BoardWidth // 2 + 1 self.curY = TetrixBoard.BoardHeight - 1 + self.curPiece.minY() if not self.tryMove(self.curPiece, self.curX, self.curY): self.curPiece.setShape(NoShape) self.timer.stop() self.isStarted = False def showNextPiece(self): if self.nextPieceLabel is None: return dx = self.nextPiece.maxX() - self.nextPiece.minX() + 1 dy = self.nextPiece.maxY() - self.nextPiece.minY() + 1 pixmap = QtGui.QPixmap(dx * self.squareWidth(), dy * self.squareHeight()) painter = QtGui.QPainter(pixmap) painter.fillRect(pixmap.rect(), self.nextPieceLabel.palette().background()) for i in range(4): x = self.nextPiece.x(i) - self.nextPiece.minX() y = self.nextPiece.y(i) - self.nextPiece.minY() self.drawSquare(painter, x * self.squareWidth(), y * self.squareHeight(), self.nextPiece.shape()) painter.end() self.nextPieceLabel.setPixmap(pixmap) def tryMove(self, newPiece, newX, newY): for i in range(4): x = newX + newPiece.x(i) y = newY - newPiece.y(i) if x < 0 or x >= TetrixBoard.BoardWidth or y < 0 or y >= TetrixBoard.BoardHeight: return False if self.shapeAt(x, y) != NoShape: return False self.curPiece = newPiece self.curX = newX self.curY = newY self.update() return True def drawSquare(self, painter, x, y, shape): colorTable = [0x000000, 0xCC6666, 0x66CC66, 0x6666CC, 0xCCCC66, 0xCC66CC, 0x66CCCC, 0xDAAA00] color = QtGui.QColor(colorTable[shape]) painter.fillRect(x + 1, y + 1, self.squareWidth() - 2, self.squareHeight() - 2, color) painter.setPen(color.light()) painter.drawLine(x, y + self.squareHeight() - 1, x, y) painter.drawLine(x, y, x + self.squareWidth() - 1, y) painter.setPen(color.dark()) painter.drawLine(x + 1, y + self.squareHeight() - 1, x + self.squareWidth() - 1, y + self.squareHeight() - 1) painter.drawLine(x + self.squareWidth() - 1, y + self.squareHeight() - 1, x + self.squareWidth() - 1, y + 1) class TetrixPiece(object): coordsTable = ( ((0, 0), (0, 0), (0, 0), (0, 0)), ((0, -1), (0, 0), (-1, 0), (-1, 1)), ((0, -1), (0, 0), (1, 0), (1, 1)), ((0, -1), (0, 0), (0, 1), (0, 2)), ((-1, 0), (0, 0), (1, 0), (0, 1)), ((0, 0), (1, 0), (0, 1), (1, 1)), ((-1, -1), (0, -1), (0, 0), (0, 1)), ((1, -1), (0, -1), (0, 0), (0, 1)) ) def __init__(self): self.coords = [[0, 0] for _ in range(4)] self.pieceShape = NoShape self.setShape(NoShape) def shape(self): return self.pieceShape def setShape(self, shape): table = TetrixPiece.coordsTable[shape] for i in range(4): for j in range(2): self.coords[i][j] = table[i][j] self.pieceShape = shape def setRandomShape(self): self.setShape(random.randint(1, 7)) def x(self, index): return self.coords[index][0] def y(self, index): return self.coords[index][1] def setX(self, index, x): self.coords[index][0] = x def setY(self, index, y): self.coords[index][1] = y def minX(self): m = self.coords[0][0] for i in range(4): m = min(m, self.coords[i][0]) return m def maxX(self): m = self.coords[0][0] for i in range(4): m = max(m, self.coords[i][0]) return m def minY(self): m = self.coords[0][1] for i in range(4): m = min(m, self.coords[i][1]) return m def maxY(self): m = self.coords[0][1] for i in range(4): m = max(m, self.coords[i][1]) return m def rotatedLeft(self): if self.pieceShape == SquareShape: return self result = TetrixPiece() result.pieceShape = self.pieceShape for i in range(4): result.setX(i, self.y(i)) result.setY(i, -self.x(i)) return result def rotatedRight(self): if self.pieceShape == SquareShape: return self result = TetrixPiece() result.pieceShape = self.pieceShape for i in range(4): result.setX(i, -self.y(i)) result.setY(i, self.x(i)) return result if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = TetrixWindow() window.show() random.seed(None) sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/tooltips/0000755000076500000240000000000012536324427021115 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/widgets/tooltips/images/0000755000076500000240000000000012536324427022362 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/widgets/tooltips/images/circle.png0000644000076500000240000000024512536324427024332 0ustar philstaff00000000000000‰PNG  IHDR szzôlIDATXÃí×[ DQË´D»dÕ1ß÷|Ѧôè©“‹æR‡YF Ü@bâ^ÄÑø.·" q "p%>Cü ¸ï!@=D}ÇÅLH1Sì›ÅnÝŽTó¡#ÛÕIEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/tooltips/images/square.png0000644000076500000240000000013612536324427024370 0ustar philstaff00000000000000‰PNG  IHDR I´è·PLTEX¨ÿŒ«IDAT×c`úÿÿÿ >MhkÏ¸Ž†IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/tooltips/images/triangle.png0000644000076500000240000000025212536324427024674 0ustar philstaff00000000000000‰PNG  IHDR szzôqIDATXÃíÎK €0ÑÓ#zË‚¸Pb’ùÕfz]¯µZÍ6¹ÏÄSú ħ(àÏD ãY0G#PÀr<±÷F uÜaŽ[(À-®E ÷ø",¾Š@áñ?DZ|„@éñ7Bàר]o—ˆ8©IEND®B`‚PyQt-x11-gpl-4.11.4/examples/widgets/tooltips/tooltips.py0000755000076500000240000002306012536324427023350 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# import random from PyQt4 import QtCore, QtGui try: import tooltips_rc3 except ImportError: import tooltips_rc2 class ShapeItem(object): def __init__(self): self.myPath = QtGui.QPainterPath() self.myPosition = QtCore.QPoint() self.myColor = QtGui.QColor() self.myToolTip = '' def path(self): return self.myPath def position(self): return self.myPosition def color(self): return self.myColor def toolTip(self): return self.myToolTip def setPath(self, path): self.myPath = path def setToolTip(self, toolTip): self.myToolTip = toolTip def setPosition(self, position): self.myPosition = position def setColor(self, color): self.myColor = color class SortingBox(QtGui.QWidget): circle_count = square_count = triangle_count = 1 def __init__(self): super(SortingBox, self).__init__() self.circlePath = QtGui.QPainterPath() self.squarePath = QtGui.QPainterPath() self.trianglePath = QtGui.QPainterPath() self.shapeItems = [] self.previousPosition = QtCore.QPoint() self.setMouseTracking(True) self.setBackgroundRole(QtGui.QPalette.Base) self.itemInMotion = None self.newCircleButton = self.createToolButton("New Circle", QtGui.QIcon(':/images/circle.png'), self.createNewCircle) self.newSquareButton = self.createToolButton("New Square", QtGui.QIcon(':/images/square.png'), self.createNewSquare) self.newTriangleButton = self.createToolButton("New Triangle", QtGui.QIcon(':/images/triangle.png'), self.createNewTriangle) self.circlePath.addEllipse(0, 0, 100, 100) self.squarePath.addRect(0, 0, 100, 100) x = self.trianglePath.currentPosition().x() y = self.trianglePath.currentPosition().y() self.trianglePath.moveTo(x + 120 / 2, y) self.trianglePath.lineTo(0, 100) self.trianglePath.lineTo(120, 100) self.trianglePath.lineTo(x + 120 / 2, y) self.setWindowTitle("Tooltips") self.resize(500, 300) self.createShapeItem(self.circlePath, "Circle", self.initialItemPosition(self.circlePath), self.initialItemColor()) self.createShapeItem(self.squarePath, "Square", self.initialItemPosition(self.squarePath), self.initialItemColor()) self.createShapeItem(self.trianglePath, "Triangle", self.initialItemPosition(self.trianglePath), self.initialItemColor()) def event(self, event): if event.type() == QtCore.QEvent.ToolTip: helpEvent = event index = self.itemAt(helpEvent.pos()) if index != -1: QtGui.QToolTip.showText(helpEvent.globalPos(), self.shapeItems[index].toolTip()) else: QtGui.QToolTip.hideText() event.ignore() return True return super(SortingBox, self).event(event) def resizeEvent(self, event): margin = self.style().pixelMetric(QtGui.QStyle.PM_DefaultTopLevelMargin) x = self.width() - margin y = self.height() - margin y = self.updateButtonGeometry(self.newCircleButton, x, y) y = self.updateButtonGeometry(self.newSquareButton, x, y) self.updateButtonGeometry(self.newTriangleButton, x, y) def paintEvent(self, event): painter = QtGui.QPainter(self) painter.setRenderHint(QtGui.QPainter.Antialiasing) for shapeItem in self.shapeItems: painter.translate(shapeItem.position()) painter.setBrush(shapeItem.color()) painter.drawPath(shapeItem.path()) painter.translate(-shapeItem.position()) def mousePressEvent(self, event): if event.button() == QtCore.Qt.LeftButton: index = self.itemAt(event.pos()) if index != -1: self.itemInMotion = self.shapeItems[index] self.previousPosition = event.pos() value = self.shapeItems[index] del self.shapeItems[index] self.shapeItems.insert(len(self.shapeItems) - 1, value) self.update() def mouseMoveEvent(self, event): if (event.buttons() & QtCore.Qt.LeftButton) and self.itemInMotion: self.moveItemTo(event.pos()) def mouseReleaseEvent(self, event): if (event.button() == QtCore.Qt.LeftButton) and self.itemInMotion: self.moveItemTo(event.pos()) self.itemInMotion = None def createNewCircle(self): SortingBox.circle_count += 1 self.createShapeItem(self.circlePath, "Circle <%d>" % SortingBox.circle_count, self.randomItemPosition(), self.randomItemColor()) def createNewSquare(self): SortingBox.square_count += 1 self.createShapeItem(self.squarePath, "Square <%d>" % SortingBox.square_count, self.randomItemPosition(), self.randomItemColor()) def createNewTriangle(self): SortingBox.triangle_count += 1 self.createShapeItem(self.trianglePath, "Triangle <%d>" % SortingBox.triangle_count, self.randomItemPosition(), self.randomItemColor()) def itemAt(self, pos): for i in range(len(self.shapeItems) - 1, -1, -1): item = self.shapeItems[i] if item.path().contains(QtCore.QPointF(pos - item.position())): return i return -1 def moveItemTo(self, pos): offset = pos - self.previousPosition self.itemInMotion.setPosition(self.itemInMotion.position() + offset) self.previousPosition = QtCore.QPoint(pos) self.update() def updateButtonGeometry(self, button, x, y): size = button.sizeHint() button.setGeometry(x - size.width(), y - size.height(), size.width(), size.height()) return y - size.height() - self.style().pixelMetric(QtGui.QStyle.PM_DefaultLayoutSpacing) def createShapeItem(self, path, toolTip, pos, color): shapeItem = ShapeItem() shapeItem.setPath(path) shapeItem.setToolTip(toolTip) shapeItem.setPosition(pos) shapeItem.setColor(color) self.shapeItems.append(shapeItem) self.update() def createToolButton(self, toolTip, icon, member): button = QtGui.QToolButton(self) button.setToolTip(toolTip) button.setIcon(icon) button.setIconSize(QtCore.QSize(32, 32)) button.clicked.connect(member) return button def initialItemPosition(self, path): y = (self.height() - path.controlPointRect().height()) / 2 if len(self.shapeItems) == 0: x = ((3 * self.width()) / 2 - path.controlPointRect().width()) / 2 else: x = (self.width() / len(self.shapeItems) - path.controlPointRect().width()) / 2 return QtCore.QPoint(x, y) def randomItemPosition(self): x = random.randint(0, self.width() - 120) y = random.randint(0, self.height() - 120) return QtCore.QPoint(x, y) def initialItemColor(self): hue = ((len(self.shapeItems) + 1) * 85) % 256 return QtGui.QColor.fromHsv(hue, 255, 190) def randomItemColor(self): return QtGui.QColor.fromHsv(random.randint(0, 256), 255, 190) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) sortingBox = SortingBox() sortingBox.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/tooltips/tooltips.qrc0000644000076500000240000000025212536324427023500 0ustar philstaff00000000000000 images/circle.png images/square.png images/triangle.png PyQt-x11-gpl-4.11.4/examples/widgets/tooltips/tooltips_rc2.py0000644000076500000240000000605112536324427024114 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:52:27 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x00\xaa\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x71\x49\x44\x41\x54\x58\xc3\xed\xce\x4b\x0a\x80\x30\ \x10\x04\xd1\x1c\xd3\x23\x7a\xcb\x11\x82\xb8\x50\x62\x92\xf9\xd5\ \x66\x1a\x7a\x5d\xaf\xb5\x5a\xcd\x36\xb9\xcf\xc4\x8f\x53\xfa\x09\ \xc4\x13\xa7\x10\x28\xe0\x13\xcf\x44\x0c\xe3\x59\x08\x14\x30\x8d\ \x47\x23\x50\xc0\x72\x3c\x02\xb1\x1d\xf7\x46\xa0\x00\x75\xdc\x03\ \x61\x8e\x5b\x11\x28\xc0\x2d\xae\x45\xa0\x00\xf7\xf8\x0e\x22\x2c\ \xbe\x8a\x40\x01\xe1\xf1\x3f\x44\x5a\x7c\x84\x40\x01\xe9\xf1\x37\ \x42\xe0\xd7\xd8\x5d\x0f\x6f\x97\x11\x88\x38\xa9\x1e\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x5e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x01\x03\x00\x00\x00\x49\xb4\xe8\xb7\ \x00\x00\x00\x06\x50\x4c\x54\x45\x00\x00\x00\x58\xa8\xff\x8c\x14\ \x1f\xab\x00\x00\x00\x13\x49\x44\x41\x54\x08\xd7\x63\x60\x00\x81\ \xfa\xff\xff\xff\x0d\x3e\x02\x04\x00\x8d\x4d\x68\x6b\xcf\xb8\x8e\ \x86\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xa5\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x6c\x49\x44\x41\x54\x58\xc3\xed\xd7\x5b\x0e\x00\x10\ \x0c\x44\x51\xcb\xb4\x44\xbb\x64\x03\x1e\xd5\x18\x1d\x31\x12\xdf\ \xf7\x7c\xd1\xa6\xf4\xe8\xa9\x93\x8b\x8f\xe6\x52\x87\x17\x81\x59\ \x46\x0d\x18\x7f\xdc\x13\x1e\x40\x62\xe2\x5e\xc4\xd1\xf8\x2e\x02\ \x12\xb7\x22\xa0\x71\x0b\x22\x14\x70\x25\x3e\x43\xfc\x0d\xb8\x1a\ \xef\x21\x04\x10\x40\x00\x3d\x44\x14\x00\x7d\xc7\x14\x13\x11\xc5\ \x4c\x48\x31\x15\x53\xec\x05\x14\x9b\x11\xc5\x6e\x08\xdd\x8e\x1b\ \x14\x54\x19\xf3\xa1\x23\xdb\xd5\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0c\ \x05\x59\xa7\xc7\ \x00\x74\ \x00\x72\x00\x69\x00\x61\x00\x6e\x00\x67\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x08\x8b\x06\x27\ \x00\x73\ \x00\x71\x00\x75\x00\x61\x00\x72\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x0a\x2d\x16\x47\ \x00\x63\ \x00\x69\x00\x72\x00\x63\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x00\xae\ \x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x01\x10\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/widgets/tooltips/tooltips_rc3.py0000644000076500000240000000605412536324427024120 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:52:27 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x00\xaa\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x71\x49\x44\x41\x54\x58\xc3\xed\xce\x4b\x0a\x80\x30\ \x10\x04\xd1\x1c\xd3\x23\x7a\xcb\x11\x82\xb8\x50\x62\x92\xf9\xd5\ \x66\x1a\x7a\x5d\xaf\xb5\x5a\xcd\x36\xb9\xcf\xc4\x8f\x53\xfa\x09\ \xc4\x13\xa7\x10\x28\xe0\x13\xcf\x44\x0c\xe3\x59\x08\x14\x30\x8d\ \x47\x23\x50\xc0\x72\x3c\x02\xb1\x1d\xf7\x46\xa0\x00\x75\xdc\x03\ \x61\x8e\x5b\x11\x28\xc0\x2d\xae\x45\xa0\x00\xf7\xf8\x0e\x22\x2c\ \xbe\x8a\x40\x01\xe1\xf1\x3f\x44\x5a\x7c\x84\x40\x01\xe9\xf1\x37\ \x42\xe0\xd7\xd8\x5d\x0f\x6f\x97\x11\x88\x38\xa9\x1e\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\x5e\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x01\x03\x00\x00\x00\x49\xb4\xe8\xb7\ \x00\x00\x00\x06\x50\x4c\x54\x45\x00\x00\x00\x58\xa8\xff\x8c\x14\ \x1f\xab\x00\x00\x00\x13\x49\x44\x41\x54\x08\xd7\x63\x60\x00\x81\ \xfa\xff\xff\xff\x0d\x3e\x02\x04\x00\x8d\x4d\x68\x6b\xcf\xb8\x8e\ \x86\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x00\xa5\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ \x00\x00\x00\x6c\x49\x44\x41\x54\x58\xc3\xed\xd7\x5b\x0e\x00\x10\ \x0c\x44\x51\xcb\xb4\x44\xbb\x64\x03\x1e\xd5\x18\x1d\x31\x12\xdf\ \xf7\x7c\xd1\xa6\xf4\xe8\xa9\x93\x8b\x8f\xe6\x52\x87\x17\x81\x59\ \x46\x0d\x18\x7f\xdc\x13\x1e\x40\x62\xe2\x5e\xc4\xd1\xf8\x2e\x02\ \x12\xb7\x22\xa0\x71\x0b\x22\x14\x70\x25\x3e\x43\xfc\x0d\xb8\x1a\ \xef\x21\x04\x10\x40\x00\x3d\x44\x14\x00\x7d\xc7\x14\x13\x11\xc5\ \x4c\x48\x31\x15\x53\xec\x05\x14\x9b\x11\xc5\x6e\x08\xdd\x8e\x1b\ \x14\x54\x19\xf3\xa1\x23\xdb\xd5\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ " qt_resource_name = b"\ \x00\x06\ \x07\x03\x7d\xc3\ \x00\x69\ \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x73\ \x00\x0c\ \x05\x59\xa7\xc7\ \x00\x74\ \x00\x72\x00\x69\x00\x61\x00\x6e\x00\x67\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x08\x8b\x06\x27\ \x00\x73\ \x00\x71\x00\x75\x00\x61\x00\x72\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x0a\x2d\x16\x47\ \x00\x63\ \x00\x69\x00\x72\x00\x63\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ \x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x00\xae\ \x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x01\x10\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/widgets/wiggly.py0000755000076500000240000001007612536324427021123 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class WigglyWidget(QtGui.QWidget): def __init__(self, parent=None): super(WigglyWidget, self).__init__(parent) self.setBackgroundRole(QtGui.QPalette.Midlight) self.setAutoFillBackground(True) newFont = self.font() newFont.setPointSize(newFont.pointSize() + 20) self.setFont(newFont) self.timer = QtCore.QBasicTimer() self.text = '' self.step = 0; self.timer.start(60, self) def paintEvent(self, event): sineTable = (0, 38, 71, 92, 100, 92, 71, 38, 0, -38, -71, -92, -100, -92, -71, -38) metrics = QtGui.QFontMetrics(self.font()) x = (self.width() - metrics.width(self.text)) / 2 y = (self.height() + metrics.ascent() - metrics.descent()) / 2 color = QtGui.QColor() painter = QtGui.QPainter(self) for i, ch in enumerate(self.text): index = (self.step + i) % 16 color.setHsv((15 - index) * 16, 255, 191) painter.setPen(color) painter.drawText(x, y - ((sineTable[index] * metrics.height()) / 400), ch) x += metrics.width(ch) def setText(self, newText): self.text = newText def timerEvent(self, event): if event.timerId() == self.timer.timerId(): self.step += 1 self.update() else: super(WigglyWidget, self).timerEvent(event) class Dialog(QtGui.QDialog): def __init__(self, parent=None): super(Dialog, self).__init__(parent) wigglyWidget = WigglyWidget() lineEdit = QtGui.QLineEdit() layout = QtGui.QVBoxLayout() layout.addWidget(wigglyWidget) layout.addWidget(lineEdit) self.setLayout(layout) lineEdit.textChanged.connect(wigglyWidget.setText) lineEdit.setText("Hello world!") self.setWindowTitle("Wiggly") self.resize(360, 145) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) dialog = Dialog() dialog.show(); sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/widgets/windowflags.py0000755000076500000240000002737112536324427022153 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui class PreviewWindow(QtGui.QWidget): def __init__(self, parent=None): super(PreviewWindow, self).__init__(parent) self.textEdit = QtGui.QTextEdit() self.textEdit.setReadOnly(True) self.textEdit.setLineWrapMode(QtGui.QTextEdit.NoWrap) closeButton = QtGui.QPushButton("&Close") closeButton.clicked.connect(self.close) layout = QtGui.QVBoxLayout() layout.addWidget(self.textEdit) layout.addWidget(closeButton) self.setLayout(layout) self.setWindowTitle("Preview") def setWindowFlags(self, flags): super(PreviewWindow, self).setWindowFlags(flags) flag_type = (flags & QtCore.Qt.WindowType_Mask) if flag_type == QtCore.Qt.Window: text = "QtCore.Qt.Window" elif flag_type == QtCore.Qt.Dialog: text = "QtCore.Qt.Dialog" elif flag_type == QtCore.Qt.Sheet: text = "QtCore.Qt.Sheet" elif flag_type == QtCore.Qt.Drawer: text = "QtCore.Qt.Drawer" elif flag_type == QtCore.Qt.Popup: text = "QtCore.Qt.Popup" elif flag_type == QtCore.Qt.Tool: text = "QtCore.Qt.Tool" elif flag_type == QtCore.Qt.ToolTip: text = "QtCore.Qt.ToolTip" elif flag_type == QtCore.Qt.SplashScreen: text = "QtCore.Qt.SplashScreen" else: text = "" if flags & QtCore.Qt.MSWindowsFixedSizeDialogHint: text += "\n| QtCore.Qt.MSWindowsFixedSizeDialogHint" if flags & QtCore.Qt.X11BypassWindowManagerHint: text += "\n| QtCore.Qt.X11BypassWindowManagerHint" if flags & QtCore.Qt.FramelessWindowHint: text += "\n| QtCore.Qt.FramelessWindowHint" if flags & QtCore.Qt.WindowTitleHint: text += "\n| QtCore.Qt.WindowTitleHint" if flags & QtCore.Qt.WindowSystemMenuHint: text += "\n| QtCore.Qt.WindowSystemMenuHint" if flags & QtCore.Qt.WindowMinimizeButtonHint: text += "\n| QtCore.Qt.WindowMinimizeButtonHint" if flags & QtCore.Qt.WindowMaximizeButtonHint: text += "\n| QtCore.Qt.WindowMaximizeButtonHint" if flags & QtCore.Qt.WindowCloseButtonHint: text += "\n| QtCore.Qt.WindowCloseButtonHint" if flags & QtCore.Qt.WindowContextHelpButtonHint: text += "\n| QtCore.Qt.WindowContextHelpButtonHint" if flags & QtCore.Qt.WindowShadeButtonHint: text += "\n| QtCore.Qt.WindowShadeButtonHint" if flags & QtCore.Qt.WindowStaysOnTopHint: text += "\n| QtCore.Qt.WindowStaysOnTopHint" if flags & QtCore.Qt.WindowStaysOnBottomHint: text += "\n| QtCore.Qt.WindowStaysOnBottomHint" if flags & QtCore.Qt.CustomizeWindowHint: text += "\n| QtCore.Qt.CustomizeWindowHint" self.textEdit.setPlainText(text) class ControllerWindow(QtGui.QWidget): def __init__(self): super(ControllerWindow, self).__init__() self.previewWindow = PreviewWindow(self) self.createTypeGroupBox() self.createHintsGroupBox() quitButton = QtGui.QPushButton("&Quit") quitButton.clicked.connect(self.close) bottomLayout = QtGui.QHBoxLayout() bottomLayout.addStretch() bottomLayout.addWidget(quitButton) mainLayout = QtGui.QVBoxLayout() mainLayout.addWidget(self.typeGroupBox) mainLayout.addWidget(self.hintsGroupBox) mainLayout.addLayout(bottomLayout) self.setLayout(mainLayout) self.setWindowTitle("Window Flags") self.updatePreview() def updatePreview(self): flags = QtCore.Qt.WindowFlags() if self.windowRadioButton.isChecked(): flags = QtCore.Qt.Window elif self.dialogRadioButton.isChecked(): flags = QtCore.Qt.Dialog elif self.sheetRadioButton.isChecked(): flags = QtCore.Qt.Sheet elif self.drawerRadioButton.isChecked(): flags = QtCore.Qt.Drawer elif self.popupRadioButton.isChecked(): flags = QtCore.Qt.Popup elif self.toolRadioButton.isChecked(): flags = QtCore.Qt.Tool elif self.toolTipRadioButton.isChecked(): flags = QtCore.Qt.ToolTip elif self.splashScreenRadioButton.isChecked(): flags = QtCore.Qt.SplashScreen if self.msWindowsFixedSizeDialogCheckBox.isChecked(): flags |= QtCore.Qt.MSWindowsFixedSizeDialogHint if self.x11BypassWindowManagerCheckBox.isChecked(): flags |= QtCore.Qt.X11BypassWindowManagerHint if self.framelessWindowCheckBox.isChecked(): flags |= QtCore.Qt.FramelessWindowHint if self.windowTitleCheckBox.isChecked(): flags |= QtCore.Qt.WindowTitleHint if self.windowSystemMenuCheckBox.isChecked(): flags |= QtCore.Qt.WindowSystemMenuHint if self.windowMinimizeButtonCheckBox.isChecked(): flags |= QtCore.Qt.WindowMinimizeButtonHint if self.windowMaximizeButtonCheckBox.isChecked(): flags |= QtCore.Qt.WindowMaximizeButtonHint if self.windowCloseButtonCheckBox.isChecked(): flags |= QtCore.Qt.WindowCloseButtonHint if self.windowContextHelpButtonCheckBox.isChecked(): flags |= QtCore.Qt.WindowContextHelpButtonHint if self.windowShadeButtonCheckBox.isChecked(): flags |= QtCore.Qt.WindowShadeButtonHint if self.windowStaysOnTopCheckBox.isChecked(): flags |= QtCore.Qt.WindowStaysOnTopHint if self.windowStaysOnBottomCheckBox.isChecked(): flags |= QtCore.Qt.WindowStaysOnBottomHint if self.customizeWindowHintCheckBox.isChecked(): flags |= QtCore.Qt.CustomizeWindowHint self.previewWindow.setWindowFlags(flags) pos = self.previewWindow.pos() if pos.x() < 0: pos.setX(0) if pos.y() < 0: pos.setY(0) self.previewWindow.move(pos) self.previewWindow.show() def createTypeGroupBox(self): self.typeGroupBox = QtGui.QGroupBox("Type") self.windowRadioButton = self.createRadioButton("Window") self.dialogRadioButton = self.createRadioButton("Dialog") self.sheetRadioButton = self.createRadioButton("Sheet") self.drawerRadioButton = self.createRadioButton("Drawer") self.popupRadioButton = self.createRadioButton("Popup") self.toolRadioButton = self.createRadioButton("Tool") self.toolTipRadioButton = self.createRadioButton("Tooltip") self.splashScreenRadioButton = self.createRadioButton("Splash screen") self.windowRadioButton.setChecked(True) layout = QtGui.QGridLayout() layout.addWidget(self.windowRadioButton, 0, 0) layout.addWidget(self.dialogRadioButton, 1, 0) layout.addWidget(self.sheetRadioButton, 2, 0) layout.addWidget(self.drawerRadioButton, 3, 0) layout.addWidget(self.popupRadioButton, 0, 1) layout.addWidget(self.toolRadioButton, 1, 1) layout.addWidget(self.toolTipRadioButton, 2, 1) layout.addWidget(self.splashScreenRadioButton, 3, 1) self.typeGroupBox.setLayout(layout) def createHintsGroupBox(self): self.hintsGroupBox = QtGui.QGroupBox("Hints") self.msWindowsFixedSizeDialogCheckBox = self.createCheckBox("MS Windows fixed size dialog") self.x11BypassWindowManagerCheckBox = self.createCheckBox("X11 bypass window manager") self.framelessWindowCheckBox = self.createCheckBox("Frameless window") self.windowTitleCheckBox = self.createCheckBox("Window title") self.windowSystemMenuCheckBox = self.createCheckBox("Window system menu") self.windowMinimizeButtonCheckBox = self.createCheckBox("Window minimize button") self.windowMaximizeButtonCheckBox = self.createCheckBox("Window maximize button") self.windowCloseButtonCheckBox = self.createCheckBox("Window close button") self.windowContextHelpButtonCheckBox = self.createCheckBox("Window context help button") self.windowShadeButtonCheckBox = self.createCheckBox("Window shade button") self.windowStaysOnTopCheckBox = self.createCheckBox("Window stays on top") self.windowStaysOnBottomCheckBox = self.createCheckBox("Window stays on bottom") self.customizeWindowHintCheckBox = self.createCheckBox("Customize window") layout = QtGui.QGridLayout() layout.addWidget(self.msWindowsFixedSizeDialogCheckBox, 0, 0) layout.addWidget(self.x11BypassWindowManagerCheckBox, 1, 0) layout.addWidget(self.framelessWindowCheckBox, 2, 0) layout.addWidget(self.windowTitleCheckBox, 3, 0) layout.addWidget(self.windowSystemMenuCheckBox, 4, 0) layout.addWidget(self.windowMinimizeButtonCheckBox, 0, 1) layout.addWidget(self.windowMaximizeButtonCheckBox, 1, 1) layout.addWidget(self.windowCloseButtonCheckBox, 2, 1) layout.addWidget(self.windowContextHelpButtonCheckBox, 3, 1) layout.addWidget(self.windowShadeButtonCheckBox, 4, 1) layout.addWidget(self.windowStaysOnTopCheckBox, 5, 1) layout.addWidget(self.windowStaysOnBottomCheckBox, 6, 1) layout.addWidget(self.customizeWindowHintCheckBox, 5, 0) self.hintsGroupBox.setLayout(layout) def createCheckBox(self, text): checkBox = QtGui.QCheckBox(text) checkBox.clicked.connect(self.updatePreview) return checkBox def createRadioButton(self, text): button = QtGui.QRadioButton(text) button.clicked.connect(self.updatePreview) return button if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) controller = ControllerWindow() controller.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/xml/0000755000076500000240000000000012536324427016372 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/xml/dombookmarks/0000755000076500000240000000000012536324427021062 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/xml/dombookmarks/dombookmarks.py0000755000076500000240000002271212536324427024133 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtXml class MainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.xbelTree = XbelTree() self.setCentralWidget(self.xbelTree) self.createActions() self.createMenus() self.statusBar().showMessage("Ready") self.setWindowTitle("DOM Bookmarks") self.resize(480, 320) def open(self): fileName = QtGui.QFileDialog.getOpenFileName(self, "Open Bookmark File", QtCore.QDir.currentPath(), "XBEL Files (*.xbel *.xml)") if not fileName: return inFile = QtCore.QFile(fileName) if not inFile.open(QtCore.QFile.ReadOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "DOM Bookmarks", "Cannot read file %s:\n%s." % (fileName, inFile.errorString())) return if self.xbelTree.read(inFile): self.statusBar().showMessage("File loaded", 2000) def saveAs(self): fileName = QtGui.QFileDialog.getSaveFileName(self, "Save Bookmark File", QtCore.QDir.currentPath(), "XBEL Files (*.xbel *.xml)") if not fileName: return outFile = QtCore.QFile(fileName) if not outFile.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "DOM Bookmarks", "Cannot write file %s:\n%s." % (fileName, outFile.errorString())) return if self.xbelTree.write(outFile): self.statusBar().showMessage("File saved", 2000) def about(self): QtGui.QMessageBox.about(self, "About DOM Bookmarks", "The DOM Bookmarks example demonstrates how to use Qt's " "DOM classes to read and write XML documents.") def createActions(self): self.openAct = QtGui.QAction("&Open...", self, shortcut="Ctrl+O", triggered=self.open) self.saveAsAct = QtGui.QAction("&Save As...", self, shortcut="Ctrl+S", triggered=self.saveAs) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close) self.aboutAct = QtGui.QAction("&About", self, triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.openAct) self.fileMenu.addAction(self.saveAsAct) self.fileMenu.addAction(self.exitAct) self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) class XbelTree(QtGui.QTreeWidget): def __init__(self, parent=None): super(XbelTree, self).__init__(parent) self.header().setResizeMode(QtGui.QHeaderView.Stretch) self.setHeaderLabels(("Title", "Location")) self.domDocument = QtXml.QDomDocument() self.domElementForItem = {} self.folderIcon = QtGui.QIcon() self.bookmarkIcon = QtGui.QIcon() self.folderIcon.addPixmap(self.style().standardPixmap(QtGui.QStyle.SP_DirClosedIcon), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.folderIcon.addPixmap(self.style().standardPixmap(QtGui.QStyle.SP_DirOpenIcon), QtGui.QIcon.Normal, QtGui.QIcon.On) self.bookmarkIcon.addPixmap(self.style().standardPixmap(QtGui.QStyle.SP_FileIcon)) def read(self, device): ok, errorStr, errorLine, errorColumn = self.domDocument.setContent(device, True) if not ok: QtGui.QMessageBox.information(self.window(), "DOM Bookmarks", "Parse error at line %d, column %d:\n%s" % (errorLine, errorColumn, errorStr)) return False root = self.domDocument.documentElement() if root.tagName() != 'xbel': QtGui.QMessageBox.information(self.window(), "DOM Bookmarks", "The file is not an XBEL file.") return False elif root.hasAttribute('version') and root.attribute('version') != '1.0': QtGui.QMessageBox.information(self.window(), "DOM Bookmarks", "The file is not an XBEL version 1.0 file.") return False self.clear() # It might not be connected. try: self.itemChanged.disconnect(self.updateDomElement) except: pass child = root.firstChildElement('folder') while not child.isNull(): self.parseFolderElement(child) child = child.nextSiblingElement('folder') self.itemChanged.connect(self.updateDomElement) return True def write(self, device): indentSize = 4 out = QtCore.QTextStream(device) self.domDocument.save(out, indentSize) return True def updateDomElement(self, item, column): element = self.domElementForItem.get(id(item)) if not element.isNull(): if column == 0: oldTitleElement = element.firstChildElement('title') newTitleElement = self.domDocument.createElement('title') newTitleText = self.domDocument.createTextNode(item.text(0)) newTitleElement.appendChild(newTitleText) element.replaceChild(newTitleElement, oldTitleElement) else: if element.tagName() == 'bookmark': element.setAttribute('href', item.text(1)) def parseFolderElement(self, element, parentItem=None): item = self.createItem(element, parentItem) title = element.firstChildElement('title').text() if not title: title = "Folder" item.setFlags(item.flags() | QtCore.Qt.ItemIsEditable) item.setIcon(0, self.folderIcon) item.setText(0, title) folded = (element.attribute('folded') != 'no') self.setItemExpanded(item, not folded) child = element.firstChildElement() while not child.isNull(): if child.tagName() == 'folder': self.parseFolderElement(child, item) elif child.tagName() == 'bookmark': childItem = self.createItem(child, item) title = child.firstChildElement('title').text() if not title: title = "Folder" childItem.setFlags(item.flags() | QtCore.Qt.ItemIsEditable) childItem.setIcon(0, self.bookmarkIcon) childItem.setText(0, title) childItem.setText(1, child.attribute('href')) elif child.tagName() == 'separator': childItem = self.createItem(child, item) childItem.setFlags(item.flags() & ~(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEditable)) childItem.setText(0, 30 * "\xb7") child = child.nextSiblingElement() def createItem(self, element, parentItem=None): item = QtGui.QTreeWidgetItem() if parentItem is not None: item = QtGui.QTreeWidgetItem(parentItem) else: item = QtGui.QTreeWidgetItem(self) self.domElementForItem[id(item)] = element return item if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() mainWin.open() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/xml/dombookmarks/frank.xbel0000644000076500000240000002477112536324427023052 0ustar philstaff00000000000000 Literate Programming Synopsis of Literate Programming Literate Programming: Propaganda and Tools Literate Programming by Henrik Turbell Literate Programming Library Literate Programming Basics Literate Programming Overview POD is not Literate Programming Computers That We Can Count On Literate Programming - Issues and Problems Literate Programming - Wiki Pages What is well-commented code? Bibliography on literate programming - A searchable bibliography Program comprehension and code reading bibliography Elucidative Programming AVL Trees (TexiWeb) Literate Programming on Wikiverse Physically Based Rendering: From Theory to Implementation Useful C++ Links STL STL Reference Documentation STL Tutorial STL Reference Qt Qt 2.3 Reference Qt 3.3 Reference Qt 4.0 Reference Trolltech Home Page IOStreams IO Stream Library Binary I/O I/O Stream FAQ gdb GDB Tutorial Debugging with GDB GDB Quick Reference Page (PDF) (Handy) Classes and Constructors Constructor FAQ Organizing Classes Software Documentation or System Documentation The Almighty Thud Microsoft Coding Techniques and Programming Practices Software and Documentation The Source Code is the Design What is Software Design? How To Write Unmaintainable Code Self Documenting Program Code Remains a Distant Goal Place Tab A in Slot B UML Reference Card TeX Resources The TeX User's Group MikTeX website MetaPost website HEVEA is a quite complete and fast LATEX to HTML translator Portable Document Format (PDF) Adobe - The postscript and PDF standards Reference Manual Portable Document Format Adobe Acrobat Software Development Kit Literature Sites Guide to Special Collections (Columbia University) Literary Criticism on the Web from the Internet Public Library Victorian Web. Voice of the Shuttle. Modernist Journals Project Museum of American Poetics Modern American Poetry FindArticles.com Literary History Literary Encyclopedia The University of California Press Wright American Fiction, 1851-1875 Documenting the American South: Beginnings to 1920 Electronic Text Center at the University of Virginia The Schomburg Center for Research in Black Culture Alex Catalogue of Electronic Texts. PyQt-x11-gpl-4.11.4/examples/xml/dombookmarks/jennifer.xbel0000644000076500000240000000754212536324427023546 0ustar philstaff00000000000000 Qt Resources Trolltech Partners Training Partners Consultants and System Integrators Technology Partners Value Added Resellers (VARs) Community Resources QtForum.org The Independent Qt Tutorial French PROG.Qt German Qt Forum Korean Qt Community Site Russian Qt Forum Digitalfanatics: The QT 4 Resource Center QtQuestions Qt Quarterly Trolltech's home page Qt 4.0 documentation Frequently Asked Questions Online Dictionaries Dictionary.com Merriam-Webster Online Cambridge Dictionaries Online OneLook Dictionary Search The New English-German Dictionary TU Chemnitz German-English Dictionary Trésor de la Langue Française informatisé Dictionnaire de l'Académie Française Dictionnaire des synonymes PyQt-x11-gpl-4.11.4/examples/xml/README0000644000076500000240000000147712536324427017263 0ustar philstaff00000000000000XML parsing and handling is supported through SAX and DOM compliant APIs. PyQt's SAX compliant classes allow you to parse XML incrementally; the DOM classes enable more complex document-level operations to be performed on XML files. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/xml/saxbookmarks/0000755000076500000240000000000012536324427021076 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/xml/saxbookmarks/frank.xbel0000644000076500000240000002477112536324427023066 0ustar philstaff00000000000000 Literate Programming Synopsis of Literate Programming Literate Programming: Propaganda and Tools Literate Programming by Henrik Turbell Literate Programming Library Literate Programming Basics Literate Programming Overview POD is not Literate Programming Computers That We Can Count On Literate Programming - Issues and Problems Literate Programming - Wiki Pages What is well-commented code? Bibliography on literate programming - A searchable bibliography Program comprehension and code reading bibliography Elucidative Programming AVL Trees (TexiWeb) Literate Programming on Wikiverse Physically Based Rendering: From Theory to Implementation Useful C++ Links STL STL Reference Documentation STL Tutorial STL Reference Qt Qt 2.3 Reference Qt 3.3 Reference Qt 4.0 Reference Trolltech Home Page IOStreams IO Stream Library Binary I/O I/O Stream FAQ gdb GDB Tutorial Debugging with GDB GDB Quick Reference Page (PDF) (Handy) Classes and Constructors Constructor FAQ Organizing Classes Software Documentation or System Documentation The Almighty Thud Microsoft Coding Techniques and Programming Practices Software and Documentation The Source Code is the Design What is Software Design? How To Write Unmaintainable Code Self Documenting Program Code Remains a Distant Goal Place Tab A in Slot B UML Reference Card TeX Resources The TeX User's Group MikTeX website MetaPost website HEVEA is a quite complete and fast LATEX to HTML translator Portable Document Format (PDF) Adobe - The postscript and PDF standards Reference Manual Portable Document Format Adobe Acrobat Software Development Kit Literature Sites Guide to Special Collections (Columbia University) Literary Criticism on the Web from the Internet Public Library Victorian Web. Voice of the Shuttle. Modernist Journals Project Museum of American Poetics Modern American Poetry FindArticles.com Literary History Literary Encyclopedia The University of California Press Wright American Fiction, 1851-1875 Documenting the American South: Beginnings to 1920 Electronic Text Center at the University of Virginia The Schomburg Center for Research in Black Culture Alex Catalogue of Electronic Texts. PyQt-x11-gpl-4.11.4/examples/xml/saxbookmarks/jennifer.xbel0000644000076500000240000000754212536324427023562 0ustar philstaff00000000000000 Qt Resources Trolltech Partners Training Partners Consultants and System Integrators Technology Partners Value Added Resellers (VARs) Community Resources QtForum.org The Independent Qt Tutorial French PROG.Qt German Qt Forum Korean Qt Community Site Russian Qt Forum Digitalfanatics: The QT 4 Resource Center QtQuestions Qt Quarterly Trolltech's home page Qt 4.0 documentation Frequently Asked Questions Online Dictionaries Dictionary.com Merriam-Webster Online Cambridge Dictionaries Online OneLook Dictionary Search The New English-German Dictionary TU Chemnitz German-English Dictionary Trésor de la Langue Française informatisé Dictionnaire de l'Académie Française Dictionnaire des synonymes PyQt-x11-gpl-4.11.4/examples/xml/saxbookmarks/saxbookmarks.py0000755000076500000240000002564112536324427024167 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# # This is only needed for Python v2 but is harmless for Python v3. import sip sip.setapi('QVariant', 2) from PyQt4 import QtCore, QtGui, QtXml class XbelGenerator(object): def __init__(self, treeWidget): self.treeWidget = treeWidget self.out = QtCore.QTextStream() def write(self, device): self.out.setDevice(device) self.out.setCodec('UTF-8') self.out << '\n' \ << '\n' \ << '\n' for i in range(self.treeWidget.topLevelItemCount()): self.generateItem(self.treeWidget.topLevelItem(i), 1) self.out << '\n' return True def indent(self, depth): IndentSize = 4 return IndentSize * depth * ' ' def escapedText(self, txt): result = txt result.replace('&', '&') result.replace('<', '<') result.replace('>', '>') return result def escapedAttribute(self, txt): result = self.escapedText(txt) result.replace('"', '"') return '"' + result + '"' def generateItem(self, item, depth): tagName = item.data(0, QtCore.Qt.UserRole) if tagName == 'folder': folded = (not self.treeWidget.isItemExpanded(item)) self.out << self.indent(depth) << '\n' \ << self.indent(depth + 1) << '' \ << self.escapedText(item.text(0)) \ << '\n' for i in range(item.childCount()): self.generateItem(item.child(i), depth + 1) self.out << self.indent(depth) << '\n' elif tagName == 'bookmark': self.out << self.indent(depth) << '\n' \ << self.indent(depth + 1) << '' \ << self.escapedText(item.text(0)) \ << '\n' \ << self.indent(depth) << '\n' elif tagName == 'separator': self.out << self.indent(depth) << '\n' class XbelHandler(QtXml.QXmlDefaultHandler): def __init__(self, treeWidget): super(XbelHandler, self).__init__() self.treeWidget = treeWidget self.folderIcon = QtGui.QIcon() self.bookmarkIcon = QtGui.QIcon() self.currentText = '' self.errorStr = '' self.item = None self.metXbelTag = False style = self.treeWidget.style() self.folderIcon.addPixmap(style.standardPixmap(QtGui.QStyle.SP_DirClosedIcon), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.folderIcon.addPixmap(style.standardPixmap(QtGui.QStyle.SP_DirOpenIcon), QtGui.QIcon.Normal, QtGui.QIcon.On) self.bookmarkIcon.addPixmap(style.standardPixmap(QtGui.QStyle.SP_FileIcon)) def startElement(self, namespaceURI, localName, qName, attributes): if not self.metXbelTag and qName != 'xbel': self.errorStr = "The file is not an XBEL file." return False if qName == 'xbel': version = attributes.value('version') if version and version != '1.0': self.errorStr = "The File is not an XBEL version 1.0 file." return False self.metXbelTag = True elif qName == 'folder': self.item = self.createChildItem(qName) self.item.setFlags(self.item.flags() | QtCore.Qt.ItemIsEditable) self.item.setIcon(0, self.folderIcon) self.item.setText(0, "Folder") folded = (attributes.value('folded') != 'no') self.treeWidget.setItemExpanded(self.item, (not folded)) elif qName == 'bookmark': self.item = self.createChildItem(qName) self.item.setFlags(self.item.flags() | QtCore.Qt.ItemIsEditable) self.item.setIcon(0, self.bookmarkIcon) self.item.setText(0, "Unkown title") self.item.setText(1, attributes.value('href')) elif qName == 'separator': self.item = self.createChildItem(qName) self.item.setFlags(self.item.flags() & ~QtCore.Qt.ItemIsSelectable) self.item.setText(0, 30 * "\xb7") self.currentText = '' return True def endElement(self, namespaceURI, localName, qName): if qName == 'title': if self.item: self.item.setText(0, self.currentText) elif qName in ('folder', 'bookmark', 'separator'): self.item = self.item.parent() return True def characters(self, txt): self.currentText += txt return True def fatalError(self, exception): QtGui.QMessageBox.information(self.treeWidget.window(), "SAX Bookmarks", "Parse error at line %d, column %d:\n%s" % (exception.lineNumber(), exception.columnNumber(), exception.message())) return False def errorString(self): return self.errorStr def createChildItem(self, tagName): if self.item: childItem = QtGui.QTreeWidgetItem(self.item) else: childItem = QtGui.QTreeWidgetItem(self.treeWidget) childItem.setData(0, QtCore.Qt.UserRole, tagName) return childItem class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.treeWidget = QtGui.QTreeWidget() self.treeWidget.header().setResizeMode(QtGui.QHeaderView.Stretch) self.treeWidget.setHeaderLabels(("Title", "Location")) self.setCentralWidget(self.treeWidget) self.createActions() self.createMenus() self.statusBar().showMessage("Ready") self.setWindowTitle("SAX Bookmarks") self.resize(480, 320) def open(self): fileName = QtGui.QFileDialog.getOpenFileName(self, "Open Bookmark File", QtCore.QDir.currentPath(), "XBEL Files (*.xbel *.xml)") if not fileName: return self.treeWidget.clear() handler = XbelHandler(self.treeWidget) reader = QtXml.QXmlSimpleReader() reader.setContentHandler(handler) reader.setErrorHandler(handler) file = QtCore.QFile(fileName) if not file.open(QtCore.QFile.ReadOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "SAX Bookmarks", "Cannot read file %s:\n%s." % (fileName, file.errorString())) return xmlInputSource = QtXml.QXmlInputSource(file) if reader.parse(xmlInputSource): self.statusBar().showMessage("File loaded", 2000) def saveAs(self): fileName = QtGui.QFileDialog.getSaveFileName(self, "Save Bookmark File", QtCore.QDir.currentPath(), "XBEL Files (*.xbel *.xml)") if not fileName: return file = QtCore.QFile(fileName) if not file.open(QtCore.QFile.WriteOnly | QtCore.QFile.Text): QtGui.QMessageBox.warning(self, "SAX Bookmarks", "Cannot write file %s:\n%s." % (fileName, file.errorString())) return generator = XbelGenerator(self.treeWidget) if generator.write(file): self.statusBar().showMessage("File saved", 2000) def about(self): QtGui.QMessageBox.about(self, "About SAX Bookmarks", "The SAX Bookmarks example demonstrates how to use " "Qt's SAX classes to read XML documents and how to generate " "XML by hand.") def createActions(self): self.openAct = QtGui.QAction("&Open...", self, shortcut="Ctrl+O", triggered=self.open) self.saveAsAct = QtGui.QAction("&Save As...", self, shortcut="Ctrl+S", triggered=self.saveAs) self.exitAct = QtGui.QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close) self.aboutAct = QtGui.QAction("&About", self, triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, triggered=QtGui.qApp.aboutQt) def createMenus(self): self.fileMenu = self.menuBar().addMenu("&File") self.fileMenu.addAction(self.openAct) self.fileMenu.addAction(self.saveAsAct) self.fileMenu.addAction(self.exitAct) self.menuBar().addSeparator() self.helpMenu = self.menuBar().addMenu("&Help") self.helpMenu.addAction(self.aboutAct) self.helpMenu.addAction(self.aboutQtAct) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) mainWin = MainWindow() mainWin.show() mainWin.open() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/xmlpatterns/0000755000076500000240000000000012536324427020153 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/xmlpatterns/README0000644000076500000240000000137012536324427021034 0ustar philstaff00000000000000XQuery queries and XPath expressions can be used in PyQt with the QtXmlPatterns module. XQuery is a query language used to query XML in a concise and safe manner. The example launcher provided with PyQt can be used to explore each of the examples in this directory. Documentation for these examples can be found via the Tutorial and Examples link in the main Qt documentation. Finding the PyQt Examples and Demos launcher ============================================ On Windows: The launcher can be accessed via the Windows Start menu. Select the menu entry entitled "Examples and Demos" entry in the submenu containing PyQt4. On all platforms: The source code for the launcher can be found in the examples/demos/qtdemo directory in the PyQt package. PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/0000755000076500000240000000000012536324427021413 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/0000755000076500000240000000000012536324427022515 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/contact.xsd0000644000076500000240000000167312536324427024677 0ustar philstaff00000000000000 PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/invalid_contact.xml0000644000076500000240000000043512536324427026402 0ustar philstaff00000000000000 John Doe Prof. Sandakerveien 116 N-0550 Oslo Norway PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/invalid_order.xml0000644000076500000240000000045612536324427026065 0ustar philstaff00000000000000 234219
      21692 3
      24749 9
      2009-01-23 yes
      PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/invalid_recipe.xml0000644000076500000240000000112512536324427026213 0ustar philstaff00000000000000 Cheese on Toast PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/order.xsd0000644000076500000240000000154712536324427024357 0ustar philstaff00000000000000 PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/recipe.xsd0000644000076500000240000000300512536324427024502 0ustar philstaff00000000000000 PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/valid_contact.xml0000644000076500000240000000045212536324427026052 0ustar philstaff00000000000000 John Doe 1977-12-25 Sandakerveien 116 N-0550 Oslo Norway PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/valid_order.xml0000644000076500000240000000066612536324427025541 0ustar philstaff00000000000000 194223
      22242 5
      32372 12 without stripes
      23649 2
      2009-01-23 true
      PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/files/valid_recipe.xml0000644000076500000240000000104512536324427025665 0ustar philstaff00000000000000 Cheese on Toast PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/schema.py0000755000076500000240000002323412536324427023234 0ustar philstaff00000000000000#!/usr/bin/env python ############################################################################# ## ## Copyright (C) 2010 Riverbank Computing Limited. ## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## ## This file is part of the examples of PyQt. ## ## $QT_BEGIN_LICENSE:BSD$ ## You may use this file under the terms of the BSD license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ## the names of its contributors may be used to endorse or promote ## products derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## $QT_END_LICENSE$ ## ############################################################################# from PyQt4 import QtCore, QtGui, QtXmlPatterns try: import schema_rc3 except ImportError: import schema_rc2 from ui_schema import Ui_SchemaMainWindow try: # Python v2. unicode def encode_utf8(ba): return unicode(ba, encoding='utf8') def decode_utf8(qs): return qs.toUtf8() except NameError: # Python v3. def encode_utf8(ba): return str(ba, encoding='utf8') def decode_utf8(qs): return QtCore.QByteArray(bytes(qs, encoding='utf8')) class XmlSyntaxHighlighter(QtGui.QSyntaxHighlighter): def __init__(self, parent=None): super(XmlSyntaxHighlighter, self).__init__(parent) self.highlightingRules = [] # Tag format. format = QtGui.QTextCharFormat() format.setForeground(QtCore.Qt.darkBlue) format.setFontWeight(QtGui.QFont.Bold) pattern = QtCore.QRegExp("(<[a-zA-Z:]+\\b|<\\?[a-zA-Z:]+\\b|\\?>|>|/>|)") self.highlightingRules.append((pattern, format)) # Attribute format. format = QtGui.QTextCharFormat() format.setForeground(QtCore.Qt.darkGreen) pattern = QtCore.QRegExp("[a-zA-Z:]+=") self.highlightingRules.append((pattern, format)) # Attribute content format. format = QtGui.QTextCharFormat() format.setForeground(QtCore.Qt.red) pattern = QtCore.QRegExp("(\"[^\"]*\"|'[^']*')") self.highlightingRules.append((pattern, format)) # Comment format. self.commentFormat = QtGui.QTextCharFormat() self.commentFormat.setForeground(QtCore.Qt.lightGray) self.commentFormat.setFontItalic(True) self.commentStartExpression = QtCore.QRegExp("") def highlightBlock(self, text): for pattern, format in self.highlightingRules: expression = QtCore.QRegExp(pattern) index = expression.indexIn(text) while index >= 0: length = expression.matchedLength() self.setFormat(index, length, format) index = expression.indexIn(text, index + length) self.setCurrentBlockState(0) startIndex = 0 if self.previousBlockState() != 1: startIndex = self.commentStartExpression.indexIn(text) while startIndex >= 0: endIndex = self.commentEndExpression.indexIn(text, startIndex) if endIndex == -1: self.setCurrentBlockState(1) commentLength = text.length() - startIndex else: commentLength = endIndex - startIndex + self.commentEndExpression.matchedLength() self.setFormat(startIndex, commentLength, self.commentFormat) startIndex = self.commentStartExpression.indexIn(text, startIndex + commentLength) class MessageHandler(QtXmlPatterns.QAbstractMessageHandler): def __init__(self): super(MessageHandler, self).__init__() self.m_description = "" self.m_sourceLocation = QtXmlPatterns.QSourceLocation() def statusMessage(self): return self.m_description def line(self): return self.m_sourceLocation.line() def column(self): return self.m_sourceLocation.column() def handleMessage(self, type, description, identifier, sourceLocation): self.m_description = description self.m_sourceLocation = sourceLocation class MainWindow(QtGui.QMainWindow, Ui_SchemaMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.setupUi(self) XmlSyntaxHighlighter(self.schemaView.document()) XmlSyntaxHighlighter(self.instanceEdit.document()) self.schemaSelection.addItem("Contact Schema") self.schemaSelection.addItem("Recipe Schema") self.schemaSelection.addItem("Order Schema") self.instanceSelection.addItem("Valid Contact Instance") self.instanceSelection.addItem("Invalid Contact Instance") self.schemaSelection.currentIndexChanged.connect(self.schemaSelected) self.instanceSelection.currentIndexChanged.connect(self.instanceSelected) self.validateButton.clicked.connect(self.validate) self.instanceEdit.textChanged.connect(self.textChanged) self.validationStatus.setAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) self.schemaSelected(0) self.instanceSelected(0) def schemaSelected(self, index): self.instanceSelection.clear() if index == 0: self.instanceSelection.addItem("Valid Contact Instance") self.instanceSelection.addItem("Invalid Contact Instance") elif index == 1: self.instanceSelection.addItem("Valid Recipe Instance") self.instanceSelection.addItem("Invalid Recipe Instance") elif index == 2: self.instanceSelection.addItem("Valid Order Instance") self.instanceSelection.addItem("Invalid Order Instance") self.textChanged() schemaFile = QtCore.QFile(':/schema_%d.xsd' % index) schemaFile.open(QtCore.QIODevice.ReadOnly) schemaData = schemaFile.readAll() self.schemaView.setPlainText(encode_utf8(schemaData)) self.validate() def instanceSelected(self, index): index += 2 * self.schemaSelection.currentIndex() instanceFile = QtCore.QFile(':/instance_%d.xml' % index) instanceFile.open(QtCore.QIODevice.ReadOnly) instanceData = instanceFile.readAll() self.instanceEdit.setPlainText(encode_utf8(instanceData)) self.validate() def validate(self): schemaData = decode_utf8(self.schemaView.toPlainText()) instanceData = decode_utf8(self.instanceEdit.toPlainText()) messageHandler = MessageHandler() schema = QtXmlPatterns.QXmlSchema() schema.setMessageHandler(messageHandler) schema.load(schemaData) errorOccurred = False if not schema.isValid(): errorOccurred = True else: validator = QtXmlPatterns.QXmlSchemaValidator(schema) if not validator.validate(instanceData): errorOccurred = True if errorOccurred: self.validationStatus.setText(messageHandler.statusMessage()) self.moveCursor(messageHandler.line(), messageHandler.column()) background = QtCore.Qt.red else: self.validationStatus.setText("validation successful") background = QtCore.Qt.green styleSheet = 'QLabel {background: %s; padding: 3px}' % QtGui.QColor(background).light(160).name() self.validationStatus.setStyleSheet(styleSheet) def textChanged(self): self.instanceEdit.setExtraSelections([]) def moveCursor(self, line, column): self.instanceEdit.moveCursor(QtGui.QTextCursor.Start) for i in range(1, line): self.instanceEdit.moveCursor(QtGui.QTextCursor.Down) for i in range(1, column): self.instanceEdit.moveCursor(QtGui.QTextCursor.Right) extraSelections = [] selection = QtGui.QTextEdit.ExtraSelection() lineColor = QtGui.QColor(QtCore.Qt.red).lighter(160) selection.format.setBackground(lineColor) selection.format.setProperty(QtGui.QTextFormat.FullWidthSelection, True) selection.cursor = self.instanceEdit.textCursor() selection.cursor.clearSelection() extraSelections.append(selection) self.instanceEdit.setExtraSelections(extraSelections) self.instanceEdit.setFocus() if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/schema.qrc0000644000076500000240000000114712536324427023365 0ustar philstaff00000000000000 files/contact.xsd files/recipe.xsd files/order.xsd files/valid_contact.xml files/invalid_contact.xml files/valid_recipe.xml files/invalid_recipe.xml files/valid_order.xml files/invalid_order.xml PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/schema.ui0000644000076500000240000000375212536324427023221 0ustar philstaff00000000000000 SchemaMainWindow 0 0 417 594 XML Schema Validation XML Schema Document: XML Instance Document: Status: not validated Validate PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/schema_rc2.py0000644000076500000240000005257112536324427024005 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:53:10 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x03\x67\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x3f\x3e\x0a\x3c\x78\x73\x64\x3a\x73\x63\x68\x65\x6d\x61\ \x20\x78\x6d\x6c\x6e\x73\x3a\x78\x73\x64\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\ \x30\x31\x2f\x58\x4d\x4c\x53\x63\x68\x65\x6d\x61\x22\x3e\x0a\x0a\ \x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\ \x20\x6e\x61\x6d\x65\x3d\x22\x6f\x72\x64\x65\x72\x22\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x63\x6f\x6d\x70\ \x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\ \x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\ \x20\x6e\x61\x6d\x65\x3d\x22\x63\x75\x73\x74\x6f\x6d\x65\x72\x49\ \x64\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x70\x6f\x73\ \x69\x74\x69\x76\x65\x49\x6e\x74\x65\x67\x65\x72\x22\x2f\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\ \x65\x3d\x22\x61\x72\x74\x69\x63\x6c\x65\x22\x20\x74\x79\x70\x65\ \x3d\x22\x61\x72\x74\x69\x63\x6c\x65\x54\x79\x70\x65\x22\x20\x6d\ \x61\x78\x4f\x63\x63\x75\x72\x73\x3d\x22\x75\x6e\x62\x6f\x75\x6e\ \x64\x65\x64\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\ \x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x64\x65\x6c\x69\x76\x65\ \x72\x79\x44\x61\x74\x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\ \x64\x3a\x64\x61\x74\x65\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\ \x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x70\x61\x79\ \x65\x64\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x62\x6f\ \x6f\x6c\x65\x61\x6e\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x73\x65\x71\x75\x65\ \x6e\x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x78\ \x73\x64\x3a\x63\x6f\x6d\x70\x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\ \x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\ \x74\x3e\x0a\x0a\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x63\x6f\x6d\ \x70\x6c\x65\x78\x54\x79\x70\x65\x20\x6e\x61\x6d\x65\x3d\x22\x61\ \x72\x74\x69\x63\x6c\x65\x54\x79\x70\x65\x22\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\ \x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\ \x65\x3d\x22\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x22\x20\x74\x79\ \x70\x65\x3d\x22\x78\x73\x64\x3a\x70\x6f\x73\x69\x74\x69\x76\x65\ \x49\x6e\x74\x65\x67\x65\x72\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\ \x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x63\x6f\x75\x6e\x74\x22\ \x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x70\x6f\x73\x69\x74\ \x69\x76\x65\x49\x6e\x74\x65\x67\x65\x72\x22\x2f\x3e\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\ \x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x63\x6f\x6d\ \x6d\x65\x6e\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\ \x73\x74\x72\x69\x6e\x67\x22\x20\x6d\x69\x6e\x4f\x63\x63\x75\x72\ \x73\x3d\x22\x30\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x2f\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\x63\x65\x3e\x0a\ \x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x63\x6f\x6d\x70\x6c\x65\ \x78\x54\x79\x70\x65\x3e\x0a\x0a\x3c\x2f\x78\x73\x64\x3a\x73\x63\ \x68\x65\x6d\x61\x3e\x0a\ \x00\x00\x01\x1d\ \x3c\ \x63\x6f\x6e\x74\x61\x63\x74\x3e\x0a\x20\x20\x20\x20\x3c\x67\x69\ \x76\x65\x6e\x4e\x61\x6d\x65\x3e\x4a\x6f\x68\x6e\x3c\x2f\x67\x69\ \x76\x65\x6e\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x66\x61\ \x6d\x69\x6c\x79\x4e\x61\x6d\x65\x3e\x44\x6f\x65\x3c\x2f\x66\x61\ \x6d\x69\x6c\x79\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x74\ \x69\x74\x6c\x65\x3e\x50\x72\x6f\x66\x2e\x3c\x2f\x74\x69\x74\x6c\ \x65\x3e\x0a\x20\x20\x20\x20\x3c\x77\x6f\x72\x6b\x41\x64\x64\x72\ \x65\x73\x73\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ \x72\x65\x65\x74\x3e\x53\x61\x6e\x64\x61\x6b\x65\x72\x76\x65\x69\ \x65\x6e\x20\x31\x31\x36\x3c\x2f\x73\x74\x72\x65\x65\x74\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x3c\x7a\x69\x70\x43\x6f\x64\x65\ \x3e\x4e\x2d\x30\x35\x35\x30\x3c\x2f\x7a\x69\x70\x43\x6f\x64\x65\ \x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x69\x74\x79\x3e\ \x4f\x73\x6c\x6f\x3c\x2f\x63\x69\x74\x79\x3e\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x63\x6f\x75\x6e\x74\x72\x79\x3e\x4e\x6f\x72\ \x77\x61\x79\x3c\x2f\x63\x6f\x75\x6e\x74\x72\x79\x3e\x0a\x20\x20\ \x20\x20\x3c\x2f\x77\x6f\x72\x6b\x41\x64\x64\x72\x65\x73\x73\x3e\ \x0a\x3c\x2f\x63\x6f\x6e\x74\x61\x63\x74\x3e\x0a\ \x00\x00\x02\x25\ \x3c\ \x72\x65\x63\x69\x70\x65\x3e\x0a\x20\x20\x20\x20\x3c\x74\x69\x74\ \x6c\x65\x3e\x43\x68\x65\x65\x73\x65\x20\x6f\x6e\x20\x54\x6f\x61\ \x73\x74\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\ \x69\x6e\x67\x72\x65\x64\x69\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\ \x22\x42\x72\x65\x61\x64\x22\x20\x71\x75\x61\x6e\x74\x69\x74\x79\ \x3d\x22\x32\x22\x20\x75\x6e\x69\x74\x3d\x22\x73\x6c\x69\x63\x65\ \x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x67\x72\x65\x64\ \x69\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x43\x68\x65\x65\x73\ \x65\x22\x20\x71\x75\x61\x6e\x74\x69\x74\x79\x3d\x22\x32\x22\x20\ \x75\x6e\x69\x74\x3d\x22\x73\x6c\x69\x63\x65\x73\x22\x2f\x3e\x0a\ \x20\x20\x20\x20\x3c\x74\x69\x6d\x65\x20\x71\x75\x61\x6e\x74\x69\ \x74\x79\x3d\x22\x33\x22\x20\x75\x6e\x69\x74\x3d\x22\x6d\x69\x6e\ \x75\x74\x65\x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\ \x68\x6f\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ \x65\x70\x3e\x31\x2e\x20\x53\x6c\x69\x63\x65\x20\x74\x68\x65\x20\ \x62\x72\x65\x61\x64\x20\x61\x6e\x64\x20\x63\x68\x65\x65\x73\x65\ \x2e\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x73\x74\x65\x70\x3e\x32\x2e\x20\x47\x72\x69\x6c\x6c\x20\ \x6f\x6e\x65\x20\x73\x69\x64\x65\x20\x6f\x66\x20\x65\x61\x63\x68\ \x20\x73\x6c\x69\x63\x65\x20\x6f\x66\x20\x62\x72\x65\x61\x64\x2e\ \x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x73\x74\x65\x70\x3e\x33\x2e\x20\x54\x75\x72\x6e\x20\x6f\x76\ \x65\x72\x20\x74\x68\x65\x20\x62\x72\x65\x61\x64\x20\x61\x6e\x64\ \x20\x70\x6c\x61\x63\x65\x20\x61\x20\x73\x6c\x69\x63\x65\x20\x6f\ \x66\x20\x63\x68\x65\x65\x73\x65\x20\x6f\x6e\x20\x65\x61\x63\x68\ \x20\x70\x69\x65\x63\x65\x2e\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x65\x70\x3e\x34\x2e\x20\ \x47\x72\x69\x6c\x6c\x20\x75\x6e\x74\x69\x6c\x20\x74\x68\x65\x20\ \x63\x68\x65\x65\x73\x65\x20\x68\x61\x73\x20\x73\x74\x61\x72\x74\ \x65\x64\x20\x74\x6f\x20\x6d\x65\x6c\x74\x2e\x3c\x2f\x73\x74\x65\ \x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x65\x70\ \x3e\x35\x2e\x20\x53\x65\x72\x76\x65\x20\x61\x6e\x64\x20\x65\x6e\ \x6a\x6f\x79\x21\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\ \x3c\x2f\x6d\x65\x74\x68\x6f\x64\x3e\x0a\x3c\x2f\x72\x65\x63\x69\ \x70\x65\x3e\x0a\ \x00\x00\x03\xbb\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x3f\x3e\x0a\x3c\x78\x73\x64\x3a\x73\x63\x68\x65\x6d\x61\ \x20\x78\x6d\x6c\x6e\x73\x3a\x78\x73\x64\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\ \x30\x31\x2f\x58\x4d\x4c\x53\x63\x68\x65\x6d\x61\x22\x3e\x0a\x0a\ \x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\ \x20\x6e\x61\x6d\x65\x3d\x22\x63\x6f\x6e\x74\x61\x63\x74\x22\x3e\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x63\x6f\ \x6d\x70\x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x73\x65\x71\x75\ \x65\x6e\x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\ \x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x67\x69\x76\x65\x6e\x4e\x61\ \x6d\x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x73\x74\ \x72\x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\ \x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x66\x61\x6d\x69\x6c\ \x79\x4e\x61\x6d\x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\ \x3a\x73\x74\x72\x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\ \x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x62\x69\ \x72\x74\x68\x64\x61\x74\x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\ \x73\x64\x3a\x64\x61\x74\x65\x22\x20\x6d\x69\x6e\x4f\x63\x63\x75\ \x72\x73\x3d\x22\x30\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\ \x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x68\x6f\x6d\x65\ \x41\x64\x64\x72\x65\x73\x73\x22\x20\x74\x79\x70\x65\x3d\x22\x61\ \x64\x64\x72\x65\x73\x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\ \x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x77\x6f\x72\ \x6b\x41\x64\x64\x72\x65\x73\x73\x22\x20\x74\x79\x70\x65\x3d\x22\ \x61\x64\x64\x72\x65\x73\x73\x22\x20\x6d\x69\x6e\x4f\x63\x63\x75\ \x72\x73\x3d\x22\x30\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x73\x65\x71\x75\x65\ \x6e\x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x78\ \x73\x64\x3a\x63\x6f\x6d\x70\x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\ \x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\ \x74\x3e\x0a\x0a\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x63\x6f\x6d\ \x70\x6c\x65\x78\x54\x79\x70\x65\x20\x6e\x61\x6d\x65\x3d\x22\x61\ \x64\x64\x72\x65\x73\x73\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\x63\x65\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\ \x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x73\ \x74\x72\x65\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\ \x3a\x73\x74\x72\x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\ \x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x7a\x69\x70\x43\x6f\x64\ \x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x73\x74\x72\ \x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\ \x6e\x61\x6d\x65\x3d\x22\x63\x69\x74\x79\x22\x20\x74\x79\x70\x65\ \x3d\x22\x78\x73\x64\x3a\x73\x74\x72\x69\x6e\x67\x22\x2f\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\ \x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x63\ \x6f\x75\x6e\x74\x72\x79\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\ \x64\x3a\x73\x74\x72\x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\ \x63\x65\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x63\x6f\ \x6d\x70\x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\x0a\x3c\x2f\x78\x73\ \x64\x3a\x73\x63\x68\x65\x6d\x61\x3e\x0a\ \x00\x00\x01\xb6\ \x3c\ \x6f\x72\x64\x65\x72\x3e\x0a\x20\x20\x20\x20\x3c\x63\x75\x73\x74\ \x6f\x6d\x65\x72\x49\x64\x3e\x31\x39\x34\x32\x32\x33\x3c\x2f\x63\ \x75\x73\x74\x6f\x6d\x65\x72\x49\x64\x3e\x0a\x20\x20\x20\x20\x3c\ \x61\x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x32\x32\x32\x34\ \x32\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x3c\x63\x6f\x75\x6e\x74\x3e\x35\x3c\x2f\ \x63\x6f\x75\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x61\x72\x74\ \x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\x61\x72\x74\x69\x63\ \x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x72\x74\ \x69\x63\x6c\x65\x49\x64\x3e\x33\x32\x33\x37\x32\x3c\x2f\x61\x72\ \x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x63\x6f\x75\x6e\x74\x3e\x31\x32\x3c\x2f\x63\x6f\x75\x6e\ \x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x6f\x6d\x6d\ \x65\x6e\x74\x3e\x77\x69\x74\x68\x6f\x75\x74\x20\x73\x74\x72\x69\ \x70\x65\x73\x3c\x2f\x63\x6f\x6d\x6d\x65\x6e\x74\x3e\x0a\x20\x20\ \x20\x20\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\ \x20\x3c\x61\x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x3c\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x32\x33\ \x36\x34\x39\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x6f\x75\x6e\x74\x3e\x32\ \x3c\x2f\x63\x6f\x75\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x61\ \x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\x64\x65\x6c\ \x69\x76\x65\x72\x79\x44\x61\x74\x65\x3e\x32\x30\x30\x39\x2d\x30\ \x31\x2d\x32\x33\x3c\x2f\x64\x65\x6c\x69\x76\x65\x72\x79\x44\x61\ \x74\x65\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x79\x65\x64\x3e\x74\ \x72\x75\x65\x3c\x2f\x70\x61\x79\x65\x64\x3e\x0a\x3c\x2f\x6f\x72\ \x64\x65\x72\x3e\x0a\ \x00\x00\x02\x55\ \x3c\ \x72\x65\x63\x69\x70\x65\x3e\x0a\x20\x20\x20\x20\x3c\x74\x69\x74\ \x6c\x65\x3e\x43\x68\x65\x65\x73\x65\x20\x6f\x6e\x20\x54\x6f\x61\ \x73\x74\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\ \x69\x6e\x67\x72\x65\x64\x69\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\ \x22\x42\x72\x65\x61\x64\x22\x20\x71\x75\x61\x6e\x74\x69\x74\x79\ \x3d\x22\x32\x22\x20\x75\x6e\x69\x74\x3d\x22\x73\x6c\x69\x63\x65\ \x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x67\x72\x65\x64\ \x69\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x43\x68\x65\x65\x73\ \x65\x22\x20\x71\x75\x61\x6e\x74\x69\x74\x79\x3d\x22\x32\x22\x20\ \x75\x6e\x69\x74\x3d\x22\x73\x6c\x69\x63\x65\x73\x22\x2f\x3e\x0a\ \x20\x20\x20\x20\x3c\x74\x69\x6d\x65\x20\x71\x75\x61\x6e\x74\x69\ \x74\x79\x3d\x22\x33\x22\x20\x75\x6e\x69\x74\x3d\x22\x64\x61\x79\ \x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x68\x6f\x64\ \x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x65\x70\x3e\ \x31\x2e\x20\x53\x6c\x69\x63\x65\x20\x74\x68\x65\x20\x62\x72\x65\ \x61\x64\x20\x61\x6e\x64\x20\x63\x68\x65\x65\x73\x65\x2e\x3c\x2f\ \x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\ \x74\x65\x70\x3e\x32\x2e\x20\x47\x72\x69\x6c\x6c\x20\x6f\x6e\x65\ \x20\x73\x69\x64\x65\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x73\x6c\ \x69\x63\x65\x20\x6f\x66\x20\x62\x72\x65\x61\x64\x2e\x3c\x2f\x73\ \x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ \x65\x70\x3e\x33\x2e\x20\x54\x75\x72\x6e\x20\x6f\x76\x65\x72\x20\ \x74\x68\x65\x20\x62\x72\x65\x61\x64\x20\x61\x6e\x64\x20\x70\x6c\ \x61\x63\x65\x20\x61\x20\x73\x6c\x69\x63\x65\x20\x6f\x66\x20\x63\ \x68\x65\x65\x73\x65\x20\x6f\x6e\x20\x65\x61\x63\x68\x20\x70\x69\ \x65\x63\x65\x2e\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x73\x74\x65\x70\x3e\x34\x2e\x20\x47\x72\x69\ \x6c\x6c\x20\x75\x6e\x74\x69\x6c\x20\x74\x68\x65\x20\x63\x68\x65\ \x65\x73\x65\x20\x68\x61\x73\x20\x73\x74\x61\x72\x74\x65\x64\x20\ \x74\x6f\x20\x6d\x65\x6c\x74\x2e\x3c\x2f\x73\x74\x65\x70\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x65\x70\x3e\x35\x2e\ \x20\x53\x65\x72\x76\x65\x20\x61\x6e\x64\x20\x65\x6e\x6a\x6f\x79\ \x21\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6d\ \x65\x74\x68\x6f\x64\x3e\x0a\x20\x20\x20\x20\x3c\x63\x6f\x6d\x6d\ \x65\x6e\x74\x3e\x54\x65\x6c\x6c\x20\x79\x6f\x75\x72\x20\x66\x72\ \x69\x65\x6e\x64\x73\x20\x61\x62\x6f\x75\x74\x20\x69\x74\x21\x3c\ \x2f\x63\x6f\x6d\x6d\x65\x6e\x74\x3e\x0a\x3c\x2f\x72\x65\x63\x69\ \x70\x65\x3e\x0a\ \x00\x00\x01\x81\ \x00\ \x00\x06\x05\x78\x9c\xbd\x54\xc1\x72\xc2\x20\x10\xbd\xfb\x15\x0c\ \x1f\x60\xb4\xbd\x39\x46\xcf\x9d\x69\xa7\x87\xf6\xd0\x2b\x92\x1d\ \xc3\x4c\x80\x08\x8b\x89\x7f\x5f\x82\x1a\x6d\x0c\x49\xbc\x94\x43\ \x26\xc3\xbe\xf7\xd8\x5d\x1e\xbb\xde\xd6\xb2\x20\x47\x30\x56\x68\ \x95\xd2\xe5\x7c\x41\xb7\x9b\xd9\xba\xb6\xd9\xca\xf2\x1c\x24\x23\ \x3e\xae\xec\xca\x6f\xa4\x34\x47\x2c\x57\x49\x52\x55\xd5\xbc\x7a\ \x9d\x6b\xb3\x4f\x5e\x16\x8b\x65\xf2\xf3\xf1\xfe\x15\xb0\x74\x33\ \x9b\x11\xbf\x02\x1d\x0a\x90\xa0\x90\x28\x26\x21\xa5\x06\xb8\x28\ \xc1\x03\xc8\x65\x05\x0c\xd7\xb2\x2c\xa0\xfe\x3e\x95\x70\x8b\xb4\ \x51\x0b\x07\x07\x8a\x77\x42\x91\x03\x50\x60\x01\x94\xa0\x97\x4a\ \x69\x60\xa3\x11\x6a\x4f\x93\x49\x6c\x8f\x34\x90\x09\xbf\x71\x95\ \xb8\xed\x34\xd9\x51\x22\x59\xfd\xc9\xb9\x33\x36\xa5\x4e\xed\xb4\ \x53\x19\x64\x13\xc5\x51\xc8\x36\xb3\xe6\x3f\x08\x4e\xa3\x4a\xc0\ \x5c\x67\xf4\x11\x3b\xde\xc2\x27\xda\x39\x92\x84\x45\x28\x7b\x3a\ \x3b\xb9\x25\xad\x74\x32\x9e\xc6\x19\x33\x58\xd4\x19\x72\x49\xb1\ \x63\x9b\xc8\x09\x11\xd5\x8e\xd2\xcd\xbb\x77\xc8\x07\x83\x84\xdb\ \xeb\xf8\x98\xa1\x6f\xc9\xce\xe1\x15\xdd\x7c\x87\xbd\xd8\x4b\x3b\ \x38\xa6\xbc\x8f\x4f\xf7\xd4\x52\x5b\x81\xe2\x08\x6f\x0a\x61\x0f\ \x66\x54\xc3\x29\x81\xf1\xa3\x7b\x1a\x31\x54\x75\xeb\xd6\xff\x4a\ \xbc\x6f\x0a\x88\x26\xab\x88\x15\x1a\x80\x81\xa6\x46\x8e\x7e\x80\ \x91\x1d\xb3\x7f\xeb\x1e\x78\x39\xa0\x9c\x04\xc3\x02\xef\xc8\x0a\ \xd7\x38\x1d\xb8\x56\x99\x8d\x99\x38\x46\x93\x42\xf9\x3a\x9e\xa6\ \xe5\xda\xbf\x9d\xde\x41\x90\x74\xea\xea\x75\x79\x4f\x5f\xce\x91\ \xb6\xb3\xf1\x3b\xbf\x48\x84\xa9\xbd\x99\xfd\x02\x2c\xd8\xc0\x1d\ \ \x00\x00\x01\x2e\ \x3c\ \x6f\x72\x64\x65\x72\x3e\x0a\x20\x20\x20\x20\x3c\x63\x75\x73\x74\ \x6f\x6d\x65\x72\x49\x64\x3e\x32\x33\x34\x32\x31\x39\x3c\x2f\x63\ \x75\x73\x74\x6f\x6d\x65\x72\x49\x64\x3e\x0a\x20\x20\x20\x20\x3c\ \x61\x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x32\x31\x36\x39\ \x32\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x3c\x63\x6f\x75\x6e\x74\x3e\x33\x3c\x2f\ \x63\x6f\x75\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x61\x72\x74\ \x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\x61\x72\x74\x69\x63\ \x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x72\x74\ \x69\x63\x6c\x65\x49\x64\x3e\x32\x34\x37\x34\x39\x3c\x2f\x61\x72\ \x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x63\x6f\x75\x6e\x74\x3e\x39\x3c\x2f\x63\x6f\x75\x6e\x74\ \x3e\x0a\x20\x20\x20\x20\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x3e\ \x0a\x20\x20\x20\x20\x3c\x64\x65\x6c\x69\x76\x65\x72\x79\x44\x61\ \x74\x65\x3e\x32\x30\x30\x39\x2d\x30\x31\x2d\x32\x33\x3c\x2f\x64\ \x65\x6c\x69\x76\x65\x72\x79\x44\x61\x74\x65\x3e\x0a\x20\x20\x20\ \x20\x3c\x70\x61\x79\x65\x64\x3e\x79\x65\x73\x3c\x2f\x70\x61\x79\ \x65\x64\x3e\x0a\x3c\x2f\x6f\x72\x64\x65\x72\x3e\x0a\ \x00\x00\x01\x2a\ \x3c\ \x63\x6f\x6e\x74\x61\x63\x74\x3e\x0a\x20\x20\x20\x20\x3c\x67\x69\ \x76\x65\x6e\x4e\x61\x6d\x65\x3e\x4a\x6f\x68\x6e\x3c\x2f\x67\x69\ \x76\x65\x6e\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x66\x61\ \x6d\x69\x6c\x79\x4e\x61\x6d\x65\x3e\x44\x6f\x65\x3c\x2f\x66\x61\ \x6d\x69\x6c\x79\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x62\ \x69\x72\x74\x68\x64\x61\x74\x65\x3e\x31\x39\x37\x37\x2d\x31\x32\ \x2d\x32\x35\x3c\x2f\x62\x69\x72\x74\x68\x64\x61\x74\x65\x3e\x0a\ \x20\x20\x20\x20\x3c\x68\x6f\x6d\x65\x41\x64\x64\x72\x65\x73\x73\ \x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x65\x65\ \x74\x3e\x53\x61\x6e\x64\x61\x6b\x65\x72\x76\x65\x69\x65\x6e\x20\ \x31\x31\x36\x3c\x2f\x73\x74\x72\x65\x65\x74\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x7a\x69\x70\x43\x6f\x64\x65\x3e\x4e\x2d\ \x30\x35\x35\x30\x3c\x2f\x7a\x69\x70\x43\x6f\x64\x65\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x63\x69\x74\x79\x3e\x4f\x73\x6c\ \x6f\x3c\x2f\x63\x69\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x63\x6f\x75\x6e\x74\x72\x79\x3e\x4e\x6f\x72\x77\x61\x79\ \x3c\x2f\x63\x6f\x75\x6e\x74\x72\x79\x3e\x0a\x20\x20\x20\x20\x3c\ \x2f\x68\x6f\x6d\x65\x41\x64\x64\x72\x65\x73\x73\x3e\x0a\x3c\x2f\ \x63\x6f\x6e\x74\x61\x63\x74\x3e\x0a\ " qt_resource_name = "\ \x00\x0c\ \x08\x16\x87\xf4\ \x00\x73\ \x00\x63\x00\x68\x00\x65\x00\x6d\x00\x61\x00\x5f\x00\x32\x00\x2e\x00\x78\x00\x73\x00\x64\ \x00\x0e\ \x00\x79\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x31\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0e\ \x00\x70\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x32\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0c\ \x08\x10\x87\xf4\ \x00\x73\ \x00\x63\x00\x68\x00\x65\x00\x6d\x00\x61\x00\x5f\x00\x30\x00\x2e\x00\x78\x00\x73\x00\x64\ \x00\x0e\ \x00\x72\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x34\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0e\ \x00\x73\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x33\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0c\ \x08\x13\x87\xf4\ \x00\x73\ \x00\x63\x00\x68\x00\x65\x00\x6d\x00\x61\x00\x5f\x00\x31\x00\x2e\x00\x78\x00\x73\x00\x64\ \x00\x0e\ \x00\x75\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x35\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0e\ \x00\x76\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x30\x00\x2e\x00\x78\x00\x6d\x00\x6c\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x01\ \x00\x00\x00\x40\x00\x00\x00\x00\x00\x01\x00\x00\x04\x8c\ \x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x74\ \x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x2e\ \x00\x00\x00\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x10\x0c\ \x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x00\x11\x3e\ \x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x03\x6b\ \x00\x00\x00\x62\x00\x00\x00\x00\x00\x01\x00\x00\x06\xb5\ \x00\x00\x00\xc4\x00\x01\x00\x00\x00\x01\x00\x00\x0e\x87\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/schema_rc3.py0000644000076500000240000005257412536324427024011 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: Wed Mar 20 13:53:10 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = b"\ \x00\x00\x03\x67\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x3f\x3e\x0a\x3c\x78\x73\x64\x3a\x73\x63\x68\x65\x6d\x61\ \x20\x78\x6d\x6c\x6e\x73\x3a\x78\x73\x64\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\ \x30\x31\x2f\x58\x4d\x4c\x53\x63\x68\x65\x6d\x61\x22\x3e\x0a\x0a\ \x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\ \x20\x6e\x61\x6d\x65\x3d\x22\x6f\x72\x64\x65\x72\x22\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x63\x6f\x6d\x70\ \x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\ \x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\ \x20\x6e\x61\x6d\x65\x3d\x22\x63\x75\x73\x74\x6f\x6d\x65\x72\x49\ \x64\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x70\x6f\x73\ \x69\x74\x69\x76\x65\x49\x6e\x74\x65\x67\x65\x72\x22\x2f\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\ \x65\x3d\x22\x61\x72\x74\x69\x63\x6c\x65\x22\x20\x74\x79\x70\x65\ \x3d\x22\x61\x72\x74\x69\x63\x6c\x65\x54\x79\x70\x65\x22\x20\x6d\ \x61\x78\x4f\x63\x63\x75\x72\x73\x3d\x22\x75\x6e\x62\x6f\x75\x6e\ \x64\x65\x64\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\ \x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x64\x65\x6c\x69\x76\x65\ \x72\x79\x44\x61\x74\x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\ \x64\x3a\x64\x61\x74\x65\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\ \x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x70\x61\x79\ \x65\x64\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x62\x6f\ \x6f\x6c\x65\x61\x6e\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x73\x65\x71\x75\x65\ \x6e\x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x78\ \x73\x64\x3a\x63\x6f\x6d\x70\x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\ \x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\ \x74\x3e\x0a\x0a\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x63\x6f\x6d\ \x70\x6c\x65\x78\x54\x79\x70\x65\x20\x6e\x61\x6d\x65\x3d\x22\x61\ \x72\x74\x69\x63\x6c\x65\x54\x79\x70\x65\x22\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\ \x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\ \x65\x3d\x22\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x22\x20\x74\x79\ \x70\x65\x3d\x22\x78\x73\x64\x3a\x70\x6f\x73\x69\x74\x69\x76\x65\ \x49\x6e\x74\x65\x67\x65\x72\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\ \x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x63\x6f\x75\x6e\x74\x22\ \x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x70\x6f\x73\x69\x74\ \x69\x76\x65\x49\x6e\x74\x65\x67\x65\x72\x22\x2f\x3e\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\ \x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x63\x6f\x6d\ \x6d\x65\x6e\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\ \x73\x74\x72\x69\x6e\x67\x22\x20\x6d\x69\x6e\x4f\x63\x63\x75\x72\ \x73\x3d\x22\x30\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x2f\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\x63\x65\x3e\x0a\ \x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x63\x6f\x6d\x70\x6c\x65\ \x78\x54\x79\x70\x65\x3e\x0a\x0a\x3c\x2f\x78\x73\x64\x3a\x73\x63\ \x68\x65\x6d\x61\x3e\x0a\ \x00\x00\x01\x1d\ \x3c\ \x63\x6f\x6e\x74\x61\x63\x74\x3e\x0a\x20\x20\x20\x20\x3c\x67\x69\ \x76\x65\x6e\x4e\x61\x6d\x65\x3e\x4a\x6f\x68\x6e\x3c\x2f\x67\x69\ \x76\x65\x6e\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x66\x61\ \x6d\x69\x6c\x79\x4e\x61\x6d\x65\x3e\x44\x6f\x65\x3c\x2f\x66\x61\ \x6d\x69\x6c\x79\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x74\ \x69\x74\x6c\x65\x3e\x50\x72\x6f\x66\x2e\x3c\x2f\x74\x69\x74\x6c\ \x65\x3e\x0a\x20\x20\x20\x20\x3c\x77\x6f\x72\x6b\x41\x64\x64\x72\ \x65\x73\x73\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ \x72\x65\x65\x74\x3e\x53\x61\x6e\x64\x61\x6b\x65\x72\x76\x65\x69\ \x65\x6e\x20\x31\x31\x36\x3c\x2f\x73\x74\x72\x65\x65\x74\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x3c\x7a\x69\x70\x43\x6f\x64\x65\ \x3e\x4e\x2d\x30\x35\x35\x30\x3c\x2f\x7a\x69\x70\x43\x6f\x64\x65\ \x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x69\x74\x79\x3e\ \x4f\x73\x6c\x6f\x3c\x2f\x63\x69\x74\x79\x3e\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x63\x6f\x75\x6e\x74\x72\x79\x3e\x4e\x6f\x72\ \x77\x61\x79\x3c\x2f\x63\x6f\x75\x6e\x74\x72\x79\x3e\x0a\x20\x20\ \x20\x20\x3c\x2f\x77\x6f\x72\x6b\x41\x64\x64\x72\x65\x73\x73\x3e\ \x0a\x3c\x2f\x63\x6f\x6e\x74\x61\x63\x74\x3e\x0a\ \x00\x00\x02\x25\ \x3c\ \x72\x65\x63\x69\x70\x65\x3e\x0a\x20\x20\x20\x20\x3c\x74\x69\x74\ \x6c\x65\x3e\x43\x68\x65\x65\x73\x65\x20\x6f\x6e\x20\x54\x6f\x61\ \x73\x74\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\ \x69\x6e\x67\x72\x65\x64\x69\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\ \x22\x42\x72\x65\x61\x64\x22\x20\x71\x75\x61\x6e\x74\x69\x74\x79\ \x3d\x22\x32\x22\x20\x75\x6e\x69\x74\x3d\x22\x73\x6c\x69\x63\x65\ \x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x67\x72\x65\x64\ \x69\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x43\x68\x65\x65\x73\ \x65\x22\x20\x71\x75\x61\x6e\x74\x69\x74\x79\x3d\x22\x32\x22\x20\ \x75\x6e\x69\x74\x3d\x22\x73\x6c\x69\x63\x65\x73\x22\x2f\x3e\x0a\ \x20\x20\x20\x20\x3c\x74\x69\x6d\x65\x20\x71\x75\x61\x6e\x74\x69\ \x74\x79\x3d\x22\x33\x22\x20\x75\x6e\x69\x74\x3d\x22\x6d\x69\x6e\ \x75\x74\x65\x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\ \x68\x6f\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ \x65\x70\x3e\x31\x2e\x20\x53\x6c\x69\x63\x65\x20\x74\x68\x65\x20\ \x62\x72\x65\x61\x64\x20\x61\x6e\x64\x20\x63\x68\x65\x65\x73\x65\ \x2e\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x73\x74\x65\x70\x3e\x32\x2e\x20\x47\x72\x69\x6c\x6c\x20\ \x6f\x6e\x65\x20\x73\x69\x64\x65\x20\x6f\x66\x20\x65\x61\x63\x68\ \x20\x73\x6c\x69\x63\x65\x20\x6f\x66\x20\x62\x72\x65\x61\x64\x2e\ \x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x3c\x73\x74\x65\x70\x3e\x33\x2e\x20\x54\x75\x72\x6e\x20\x6f\x76\ \x65\x72\x20\x74\x68\x65\x20\x62\x72\x65\x61\x64\x20\x61\x6e\x64\ \x20\x70\x6c\x61\x63\x65\x20\x61\x20\x73\x6c\x69\x63\x65\x20\x6f\ \x66\x20\x63\x68\x65\x65\x73\x65\x20\x6f\x6e\x20\x65\x61\x63\x68\ \x20\x70\x69\x65\x63\x65\x2e\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x65\x70\x3e\x34\x2e\x20\ \x47\x72\x69\x6c\x6c\x20\x75\x6e\x74\x69\x6c\x20\x74\x68\x65\x20\ \x63\x68\x65\x65\x73\x65\x20\x68\x61\x73\x20\x73\x74\x61\x72\x74\ \x65\x64\x20\x74\x6f\x20\x6d\x65\x6c\x74\x2e\x3c\x2f\x73\x74\x65\ \x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x65\x70\ \x3e\x35\x2e\x20\x53\x65\x72\x76\x65\x20\x61\x6e\x64\x20\x65\x6e\ \x6a\x6f\x79\x21\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\ \x3c\x2f\x6d\x65\x74\x68\x6f\x64\x3e\x0a\x3c\x2f\x72\x65\x63\x69\ \x70\x65\x3e\x0a\ \x00\x00\x03\xbb\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x3f\x3e\x0a\x3c\x78\x73\x64\x3a\x73\x63\x68\x65\x6d\x61\ \x20\x78\x6d\x6c\x6e\x73\x3a\x78\x73\x64\x3d\x22\x68\x74\x74\x70\ \x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\ \x30\x31\x2f\x58\x4d\x4c\x53\x63\x68\x65\x6d\x61\x22\x3e\x0a\x0a\ \x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\ \x20\x6e\x61\x6d\x65\x3d\x22\x63\x6f\x6e\x74\x61\x63\x74\x22\x3e\ \x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x63\x6f\ \x6d\x70\x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x73\x65\x71\x75\ \x65\x6e\x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\ \x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x67\x69\x76\x65\x6e\x4e\x61\ \x6d\x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x73\x74\ \x72\x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\ \x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x66\x61\x6d\x69\x6c\ \x79\x4e\x61\x6d\x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\ \x3a\x73\x74\x72\x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\ \x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x62\x69\ \x72\x74\x68\x64\x61\x74\x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\ \x73\x64\x3a\x64\x61\x74\x65\x22\x20\x6d\x69\x6e\x4f\x63\x63\x75\ \x72\x73\x3d\x22\x30\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\ \x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x68\x6f\x6d\x65\ \x41\x64\x64\x72\x65\x73\x73\x22\x20\x74\x79\x70\x65\x3d\x22\x61\ \x64\x64\x72\x65\x73\x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\ \x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x77\x6f\x72\ \x6b\x41\x64\x64\x72\x65\x73\x73\x22\x20\x74\x79\x70\x65\x3d\x22\ \x61\x64\x64\x72\x65\x73\x73\x22\x20\x6d\x69\x6e\x4f\x63\x63\x75\ \x72\x73\x3d\x22\x30\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x73\x65\x71\x75\x65\ \x6e\x63\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x78\ \x73\x64\x3a\x63\x6f\x6d\x70\x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\ \x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\ \x74\x3e\x0a\x0a\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x63\x6f\x6d\ \x70\x6c\x65\x78\x54\x79\x70\x65\x20\x6e\x61\x6d\x65\x3d\x22\x61\ \x64\x64\x72\x65\x73\x73\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\x63\x65\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\ \x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x73\ \x74\x72\x65\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\ \x3a\x73\x74\x72\x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\ \x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x7a\x69\x70\x43\x6f\x64\ \x65\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\x64\x3a\x73\x74\x72\ \x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x3c\x78\x73\x64\x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\ \x6e\x61\x6d\x65\x3d\x22\x63\x69\x74\x79\x22\x20\x74\x79\x70\x65\ \x3d\x22\x78\x73\x64\x3a\x73\x74\x72\x69\x6e\x67\x22\x2f\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x78\x73\x64\ \x3a\x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x63\ \x6f\x75\x6e\x74\x72\x79\x22\x20\x74\x79\x70\x65\x3d\x22\x78\x73\ \x64\x3a\x73\x74\x72\x69\x6e\x67\x22\x2f\x3e\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x73\x65\x71\x75\x65\x6e\ \x63\x65\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x78\x73\x64\x3a\x63\x6f\ \x6d\x70\x6c\x65\x78\x54\x79\x70\x65\x3e\x0a\x0a\x3c\x2f\x78\x73\ \x64\x3a\x73\x63\x68\x65\x6d\x61\x3e\x0a\ \x00\x00\x01\xb6\ \x3c\ \x6f\x72\x64\x65\x72\x3e\x0a\x20\x20\x20\x20\x3c\x63\x75\x73\x74\ \x6f\x6d\x65\x72\x49\x64\x3e\x31\x39\x34\x32\x32\x33\x3c\x2f\x63\ \x75\x73\x74\x6f\x6d\x65\x72\x49\x64\x3e\x0a\x20\x20\x20\x20\x3c\ \x61\x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x32\x32\x32\x34\ \x32\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x3c\x63\x6f\x75\x6e\x74\x3e\x35\x3c\x2f\ \x63\x6f\x75\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x61\x72\x74\ \x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\x61\x72\x74\x69\x63\ \x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x72\x74\ \x69\x63\x6c\x65\x49\x64\x3e\x33\x32\x33\x37\x32\x3c\x2f\x61\x72\ \x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x63\x6f\x75\x6e\x74\x3e\x31\x32\x3c\x2f\x63\x6f\x75\x6e\ \x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x6f\x6d\x6d\ \x65\x6e\x74\x3e\x77\x69\x74\x68\x6f\x75\x74\x20\x73\x74\x72\x69\ \x70\x65\x73\x3c\x2f\x63\x6f\x6d\x6d\x65\x6e\x74\x3e\x0a\x20\x20\ \x20\x20\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\ \x20\x3c\x61\x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\ \x20\x20\x20\x3c\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x32\x33\ \x36\x34\x39\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x6f\x75\x6e\x74\x3e\x32\ \x3c\x2f\x63\x6f\x75\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x61\ \x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\x64\x65\x6c\ \x69\x76\x65\x72\x79\x44\x61\x74\x65\x3e\x32\x30\x30\x39\x2d\x30\ \x31\x2d\x32\x33\x3c\x2f\x64\x65\x6c\x69\x76\x65\x72\x79\x44\x61\ \x74\x65\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x79\x65\x64\x3e\x74\ \x72\x75\x65\x3c\x2f\x70\x61\x79\x65\x64\x3e\x0a\x3c\x2f\x6f\x72\ \x64\x65\x72\x3e\x0a\ \x00\x00\x02\x55\ \x3c\ \x72\x65\x63\x69\x70\x65\x3e\x0a\x20\x20\x20\x20\x3c\x74\x69\x74\ \x6c\x65\x3e\x43\x68\x65\x65\x73\x65\x20\x6f\x6e\x20\x54\x6f\x61\ \x73\x74\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\ \x69\x6e\x67\x72\x65\x64\x69\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\ \x22\x42\x72\x65\x61\x64\x22\x20\x71\x75\x61\x6e\x74\x69\x74\x79\ \x3d\x22\x32\x22\x20\x75\x6e\x69\x74\x3d\x22\x73\x6c\x69\x63\x65\ \x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x67\x72\x65\x64\ \x69\x65\x6e\x74\x20\x6e\x61\x6d\x65\x3d\x22\x43\x68\x65\x65\x73\ \x65\x22\x20\x71\x75\x61\x6e\x74\x69\x74\x79\x3d\x22\x32\x22\x20\ \x75\x6e\x69\x74\x3d\x22\x73\x6c\x69\x63\x65\x73\x22\x2f\x3e\x0a\ \x20\x20\x20\x20\x3c\x74\x69\x6d\x65\x20\x71\x75\x61\x6e\x74\x69\ \x74\x79\x3d\x22\x33\x22\x20\x75\x6e\x69\x74\x3d\x22\x64\x61\x79\ \x73\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x68\x6f\x64\ \x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x65\x70\x3e\ \x31\x2e\x20\x53\x6c\x69\x63\x65\x20\x74\x68\x65\x20\x62\x72\x65\ \x61\x64\x20\x61\x6e\x64\x20\x63\x68\x65\x65\x73\x65\x2e\x3c\x2f\ \x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\ \x74\x65\x70\x3e\x32\x2e\x20\x47\x72\x69\x6c\x6c\x20\x6f\x6e\x65\ \x20\x73\x69\x64\x65\x20\x6f\x66\x20\x65\x61\x63\x68\x20\x73\x6c\ \x69\x63\x65\x20\x6f\x66\x20\x62\x72\x65\x61\x64\x2e\x3c\x2f\x73\ \x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ \x65\x70\x3e\x33\x2e\x20\x54\x75\x72\x6e\x20\x6f\x76\x65\x72\x20\ \x74\x68\x65\x20\x62\x72\x65\x61\x64\x20\x61\x6e\x64\x20\x70\x6c\ \x61\x63\x65\x20\x61\x20\x73\x6c\x69\x63\x65\x20\x6f\x66\x20\x63\ \x68\x65\x65\x73\x65\x20\x6f\x6e\x20\x65\x61\x63\x68\x20\x70\x69\ \x65\x63\x65\x2e\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\ \x20\x20\x20\x20\x3c\x73\x74\x65\x70\x3e\x34\x2e\x20\x47\x72\x69\ \x6c\x6c\x20\x75\x6e\x74\x69\x6c\x20\x74\x68\x65\x20\x63\x68\x65\ \x65\x73\x65\x20\x68\x61\x73\x20\x73\x74\x61\x72\x74\x65\x64\x20\ \x74\x6f\x20\x6d\x65\x6c\x74\x2e\x3c\x2f\x73\x74\x65\x70\x3e\x0a\ \x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x65\x70\x3e\x35\x2e\ \x20\x53\x65\x72\x76\x65\x20\x61\x6e\x64\x20\x65\x6e\x6a\x6f\x79\ \x21\x3c\x2f\x73\x74\x65\x70\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6d\ \x65\x74\x68\x6f\x64\x3e\x0a\x20\x20\x20\x20\x3c\x63\x6f\x6d\x6d\ \x65\x6e\x74\x3e\x54\x65\x6c\x6c\x20\x79\x6f\x75\x72\x20\x66\x72\ \x69\x65\x6e\x64\x73\x20\x61\x62\x6f\x75\x74\x20\x69\x74\x21\x3c\ \x2f\x63\x6f\x6d\x6d\x65\x6e\x74\x3e\x0a\x3c\x2f\x72\x65\x63\x69\ \x70\x65\x3e\x0a\ \x00\x00\x01\x81\ \x00\ \x00\x06\x05\x78\x9c\xbd\x54\xc1\x72\xc2\x20\x10\xbd\xfb\x15\x0c\ \x1f\x60\xb4\xbd\x39\x46\xcf\x9d\x69\xa7\x87\xf6\xd0\x2b\x92\x1d\ \xc3\x4c\x80\x08\x8b\x89\x7f\x5f\x82\x1a\x6d\x0c\x49\xbc\x94\x43\ \x26\xc3\xbe\xf7\xd8\x5d\x1e\xbb\xde\xd6\xb2\x20\x47\x30\x56\x68\ \x95\xd2\xe5\x7c\x41\xb7\x9b\xd9\xba\xb6\xd9\xca\xf2\x1c\x24\x23\ \x3e\xae\xec\xca\x6f\xa4\x34\x47\x2c\x57\x49\x52\x55\xd5\xbc\x7a\ \x9d\x6b\xb3\x4f\x5e\x16\x8b\x65\xf2\xf3\xf1\xfe\x15\xb0\x74\x33\ \x9b\x11\xbf\x02\x1d\x0a\x90\xa0\x90\x28\x26\x21\xa5\x06\xb8\x28\ \xc1\x03\xc8\x65\x05\x0c\xd7\xb2\x2c\xa0\xfe\x3e\x95\x70\x8b\xb4\ \x51\x0b\x07\x07\x8a\x77\x42\x91\x03\x50\x60\x01\x94\xa0\x97\x4a\ \x69\x60\xa3\x11\x6a\x4f\x93\x49\x6c\x8f\x34\x90\x09\xbf\x71\x95\ \xb8\xed\x34\xd9\x51\x22\x59\xfd\xc9\xb9\x33\x36\xa5\x4e\xed\xb4\ \x53\x19\x64\x13\xc5\x51\xc8\x36\xb3\xe6\x3f\x08\x4e\xa3\x4a\xc0\ \x5c\x67\xf4\x11\x3b\xde\xc2\x27\xda\x39\x92\x84\x45\x28\x7b\x3a\ \x3b\xb9\x25\xad\x74\x32\x9e\xc6\x19\x33\x58\xd4\x19\x72\x49\xb1\ \x63\x9b\xc8\x09\x11\xd5\x8e\xd2\xcd\xbb\x77\xc8\x07\x83\x84\xdb\ \xeb\xf8\x98\xa1\x6f\xc9\xce\xe1\x15\xdd\x7c\x87\xbd\xd8\x4b\x3b\ \x38\xa6\xbc\x8f\x4f\xf7\xd4\x52\x5b\x81\xe2\x08\x6f\x0a\x61\x0f\ \x66\x54\xc3\x29\x81\xf1\xa3\x7b\x1a\x31\x54\x75\xeb\xd6\xff\x4a\ \xbc\x6f\x0a\x88\x26\xab\x88\x15\x1a\x80\x81\xa6\x46\x8e\x7e\x80\ \x91\x1d\xb3\x7f\xeb\x1e\x78\x39\xa0\x9c\x04\xc3\x02\xef\xc8\x0a\ \xd7\x38\x1d\xb8\x56\x99\x8d\x99\x38\x46\x93\x42\xf9\x3a\x9e\xa6\ \xe5\xda\xbf\x9d\xde\x41\x90\x74\xea\xea\x75\x79\x4f\x5f\xce\x91\ \xb6\xb3\xf1\x3b\xbf\x48\x84\xa9\xbd\x99\xfd\x02\x2c\xd8\xc0\x1d\ \ \x00\x00\x01\x2e\ \x3c\ \x6f\x72\x64\x65\x72\x3e\x0a\x20\x20\x20\x20\x3c\x63\x75\x73\x74\ \x6f\x6d\x65\x72\x49\x64\x3e\x32\x33\x34\x32\x31\x39\x3c\x2f\x63\ \x75\x73\x74\x6f\x6d\x65\x72\x49\x64\x3e\x0a\x20\x20\x20\x20\x3c\ \x61\x72\x74\x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x32\x31\x36\x39\ \x32\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\x20\x20\ \x20\x20\x20\x20\x20\x20\x3c\x63\x6f\x75\x6e\x74\x3e\x33\x3c\x2f\ \x63\x6f\x75\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x61\x72\x74\ \x69\x63\x6c\x65\x3e\x0a\x20\x20\x20\x20\x3c\x61\x72\x74\x69\x63\ \x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x72\x74\ \x69\x63\x6c\x65\x49\x64\x3e\x32\x34\x37\x34\x39\x3c\x2f\x61\x72\ \x74\x69\x63\x6c\x65\x49\x64\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x63\x6f\x75\x6e\x74\x3e\x39\x3c\x2f\x63\x6f\x75\x6e\x74\ \x3e\x0a\x20\x20\x20\x20\x3c\x2f\x61\x72\x74\x69\x63\x6c\x65\x3e\ \x0a\x20\x20\x20\x20\x3c\x64\x65\x6c\x69\x76\x65\x72\x79\x44\x61\ \x74\x65\x3e\x32\x30\x30\x39\x2d\x30\x31\x2d\x32\x33\x3c\x2f\x64\ \x65\x6c\x69\x76\x65\x72\x79\x44\x61\x74\x65\x3e\x0a\x20\x20\x20\ \x20\x3c\x70\x61\x79\x65\x64\x3e\x79\x65\x73\x3c\x2f\x70\x61\x79\ \x65\x64\x3e\x0a\x3c\x2f\x6f\x72\x64\x65\x72\x3e\x0a\ \x00\x00\x01\x2a\ \x3c\ \x63\x6f\x6e\x74\x61\x63\x74\x3e\x0a\x20\x20\x20\x20\x3c\x67\x69\ \x76\x65\x6e\x4e\x61\x6d\x65\x3e\x4a\x6f\x68\x6e\x3c\x2f\x67\x69\ \x76\x65\x6e\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x66\x61\ \x6d\x69\x6c\x79\x4e\x61\x6d\x65\x3e\x44\x6f\x65\x3c\x2f\x66\x61\ \x6d\x69\x6c\x79\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x62\ \x69\x72\x74\x68\x64\x61\x74\x65\x3e\x31\x39\x37\x37\x2d\x31\x32\ \x2d\x32\x35\x3c\x2f\x62\x69\x72\x74\x68\x64\x61\x74\x65\x3e\x0a\ \x20\x20\x20\x20\x3c\x68\x6f\x6d\x65\x41\x64\x64\x72\x65\x73\x73\ \x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x65\x65\ \x74\x3e\x53\x61\x6e\x64\x61\x6b\x65\x72\x76\x65\x69\x65\x6e\x20\ \x31\x31\x36\x3c\x2f\x73\x74\x72\x65\x65\x74\x3e\x0a\x20\x20\x20\ \x20\x20\x20\x20\x20\x3c\x7a\x69\x70\x43\x6f\x64\x65\x3e\x4e\x2d\ \x30\x35\x35\x30\x3c\x2f\x7a\x69\x70\x43\x6f\x64\x65\x3e\x0a\x20\ \x20\x20\x20\x20\x20\x20\x20\x3c\x63\x69\x74\x79\x3e\x4f\x73\x6c\ \x6f\x3c\x2f\x63\x69\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ \x20\x3c\x63\x6f\x75\x6e\x74\x72\x79\x3e\x4e\x6f\x72\x77\x61\x79\ \x3c\x2f\x63\x6f\x75\x6e\x74\x72\x79\x3e\x0a\x20\x20\x20\x20\x3c\ \x2f\x68\x6f\x6d\x65\x41\x64\x64\x72\x65\x73\x73\x3e\x0a\x3c\x2f\ \x63\x6f\x6e\x74\x61\x63\x74\x3e\x0a\ " qt_resource_name = b"\ \x00\x0c\ \x08\x16\x87\xf4\ \x00\x73\ \x00\x63\x00\x68\x00\x65\x00\x6d\x00\x61\x00\x5f\x00\x32\x00\x2e\x00\x78\x00\x73\x00\x64\ \x00\x0e\ \x00\x79\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x31\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0e\ \x00\x70\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x32\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0c\ \x08\x10\x87\xf4\ \x00\x73\ \x00\x63\x00\x68\x00\x65\x00\x6d\x00\x61\x00\x5f\x00\x30\x00\x2e\x00\x78\x00\x73\x00\x64\ \x00\x0e\ \x00\x72\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x34\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0e\ \x00\x73\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x33\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0c\ \x08\x13\x87\xf4\ \x00\x73\ \x00\x63\x00\x68\x00\x65\x00\x6d\x00\x61\x00\x5f\x00\x31\x00\x2e\x00\x78\x00\x73\x00\x64\ \x00\x0e\ \x00\x75\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x35\x00\x2e\x00\x78\x00\x6d\x00\x6c\ \x00\x0e\ \x00\x76\x4a\x1c\ \x00\x69\ \x00\x6e\x00\x73\x00\x74\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x5f\x00\x30\x00\x2e\x00\x78\x00\x6d\x00\x6c\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x09\x00\x00\x00\x01\ \x00\x00\x00\x40\x00\x00\x00\x00\x00\x01\x00\x00\x04\x8c\ \x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x74\ \x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x2e\ \x00\x00\x00\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x10\x0c\ \x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x00\x11\x3e\ \x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x03\x6b\ \x00\x00\x00\x62\x00\x00\x00\x00\x00\x01\x00\x00\x06\xb5\ \x00\x00\x00\xc4\x00\x01\x00\x00\x00\x01\x00\x00\x0e\x87\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() PyQt-x11-gpl-4.11.4/examples/xmlpatterns/schema/ui_schema.py0000644000076500000240000000703112536324427023723 0ustar philstaff00000000000000# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'schema.ui' # # Created: Fri Feb 5 15:27:54 2010 # by: PyQt4 UI code generator snapshot-4.7.1-c39e85a8e2ec # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui class Ui_SchemaMainWindow(object): def setupUi(self, SchemaMainWindow): SchemaMainWindow.setObjectName("SchemaMainWindow") SchemaMainWindow.resize(417, 594) self.centralwidget = QtGui.QWidget(SchemaMainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout = QtGui.QGridLayout(self.centralwidget) self.gridLayout.setObjectName("gridLayout") self.schemaLabel = QtGui.QLabel(self.centralwidget) self.schemaLabel.setObjectName("schemaLabel") self.gridLayout.addWidget(self.schemaLabel, 0, 0, 1, 2) self.schemaSelection = QtGui.QComboBox(self.centralwidget) self.schemaSelection.setObjectName("schemaSelection") self.gridLayout.addWidget(self.schemaSelection, 0, 2, 1, 2) self.schemaView = QtGui.QTextBrowser(self.centralwidget) self.schemaView.setObjectName("schemaView") self.gridLayout.addWidget(self.schemaView, 1, 0, 1, 4) self.instanceLabel = QtGui.QLabel(self.centralwidget) self.instanceLabel.setObjectName("instanceLabel") self.gridLayout.addWidget(self.instanceLabel, 2, 0, 1, 2) self.instanceSelection = QtGui.QComboBox(self.centralwidget) self.instanceSelection.setObjectName("instanceSelection") self.gridLayout.addWidget(self.instanceSelection, 2, 2, 1, 2) self.instanceEdit = QtGui.QTextEdit(self.centralwidget) self.instanceEdit.setObjectName("instanceEdit") self.gridLayout.addWidget(self.instanceEdit, 3, 0, 1, 4) self.label = QtGui.QLabel(self.centralwidget) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 4, 0, 1, 1) self.validationStatus = QtGui.QLabel(self.centralwidget) self.validationStatus.setObjectName("validationStatus") self.gridLayout.addWidget(self.validationStatus, 4, 1, 1, 2) self.validateButton = QtGui.QPushButton(self.centralwidget) self.validateButton.setObjectName("validateButton") self.gridLayout.addWidget(self.validateButton, 4, 3, 1, 1) SchemaMainWindow.setCentralWidget(self.centralwidget) self.statusbar = QtGui.QStatusBar(SchemaMainWindow) self.statusbar.setObjectName("statusbar") SchemaMainWindow.setStatusBar(self.statusbar) self.retranslateUi(SchemaMainWindow) QtCore.QMetaObject.connectSlotsByName(SchemaMainWindow) def retranslateUi(self, SchemaMainWindow): SchemaMainWindow.setWindowTitle(QtGui.QApplication.translate("SchemaMainWindow", "XML Schema Validation", None, QtGui.QApplication.UnicodeUTF8)) self.schemaLabel.setText(QtGui.QApplication.translate("SchemaMainWindow", "XML Schema Document:", None, QtGui.QApplication.UnicodeUTF8)) self.instanceLabel.setText(QtGui.QApplication.translate("SchemaMainWindow", "XML Instance Document:", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("SchemaMainWindow", "Status:", None, QtGui.QApplication.UnicodeUTF8)) self.validationStatus.setText(QtGui.QApplication.translate("SchemaMainWindow", "not validated", None, QtGui.QApplication.UnicodeUTF8)) self.validateButton.setText(QtGui.QApplication.translate("SchemaMainWindow", "Validate", None, QtGui.QApplication.UnicodeUTF8)) PyQt-x11-gpl-4.11.4/LICENSE0000644000076500000240000010534112536324420014756 0ustar philstaff00000000000000 PyQt is Copyright (C) 2015 Riverbank Computing Limited You may use, distribute and copy PyQt under the terms of GNU General Public License version 3, which is displayed below. ------------------------------------------------------------------------- GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 3 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 . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ------------------------------------------------------------------------- PyQt-x11-gpl-4.11.4/NEWS0000644000076500000240000004644312536324420014457 0ustar philstaff00000000000000v4.11.4 11th June 2015 - Added support for Qt v4.8.7. - Added QWIDGETSIZE_MAX to QtGui. - Added some missing QEvent.Type enum values. - Added the --license-dir command line option to configure-ng.py. - Added the --no-python-dbus command line option to configure-ng.py. - Bug fixes. v4.11.3 9th November 2014 - Bug fixes. v4.11.2 11th September 2014 - Bug fixes. v4.11.1 3rd July 2014 - Added the -tr-function, -trUtf8-function and -translate-function command line options to pylupdate4. - Bug fixes. v4.11 26th May 2014 - By default a Python slot is only invoked if the underlying C++ instance still exists. - Added the no_receiver_check argument to connect(). - Added support for Qt v4.8.6. - Added --target-py-version, --sysroot and --no-tools options to configure-ng.py. - Cross-compiling (specifically to iOS and Android when building against Qt v5) is now supported. - SIP v4.16 is now required. - Bug fixes. v4.10.4 14th March 2014 - Added the port of the webftpclient from Moritz Warning. - The --use-arch argument to configure.py can now be specified more than once. - Bug fixes. v4.10.3 21st August 2013 - Bug fixes. v4.10.2 16th June 2013 - Bug fixes. v4.10.1 21st April 2013 - Added support for QtCore.pyqtSetPickleProtocol() and QtCore.pyqtPickleProtocol() to set and get the protocol used to pickle Python objects when serialising them for Qt. - Added support for the --resource-suffix option to pyuic4. - Added a new build system (configure-ng.py) which will be compatible with SIP v5 and will eventually support cross-compilation. - Added support for Qt v5.0.2. - Bug fixes. v4.10 1st March 2013 - Added support for QtCore.PYQT_CONFIGURATION in anticipation of SIP v5. - Added support for Qt v5.0.1. - Bug fixes. v4.9.6 8th December 2012 - Added the missing constBits() and constScanLine() methods to QImage. - A QPoint can now be specified whenever a QPointF is expected. - Added support for Qt v4.8.4. - Added support for Qt v5-rc1 (QtCore, QtGui, QtHelp, QtNetwork, QtSql, QtSvg, QtWebKit and QtXml only). - Added the --no-deprecated option to configure.py. - SIP v4.14.2 is now required. - Bug fixes. v4.9.5 29th September 2012 - Added support for Qt v4.8.3. - Added support for Qt v5-beta1 (QtCore, QtGui, QtHelp, QtNetwork, QtSql, QtSvg, QtWebKit and QtXml only). - Implemented __str__ and __unicode__ for QChar. - Added the missing QPointF operator*(qreal, QPointF). - Added the customcompleter.py example. - SIP v4.14 is now required. - Bug fixes. v4.9.4 26th June 2012 - Bug fixes. v4.9.3 24th June 2012 - Bug fixes. v4.9.2 20th June 2012 - Added support for Qt v4.8.2. - Added support for Qt v5-alpha (QtCore and QtGui only). - Added support for Python v3.3. - bool(QPyNullVariant(...)) now returns False rather than True to mimic the behaviour of None. - Exposed the pyqtBoundSignal type object in the QtCore module. - Added the signal attribute to pyqtBoundSignal containing the signature that would be returned by SIGNAL(). - Added the optional package argument to uic.loadUi() to properly handle relative imports. - pyuic4 now supports themed icons. - Added the spreadsheet example from Hans-Peter Jansen. - Bug fixes. v4.9.1 10th February 2012 - QPainter can now be used as a context manager. - Added QMacPasteboardMime on OS/X. - Added the missing QPixmap.HBitmapFormat.Alpha enum member on Windows. - Added support for the Python v3 implementation of dbus-python. - Bug fixes. v4.9 22nd December 2011 - Added support for Qt v4.8.0 - Added the QtDBus module and related examples. - Added support for QtCore.Q_CLASSINFO(). - Added the missing QMenuBar.cornerWidget() and QMenuBar.setCornerWidget(). - Bug fixes. v4.8.6 25th October 2011 - Added support for Qt v4.7.4. - Bug fixes. v4.8.5 2nd August 2011 - Added support for Qt v4.7.3. - Added IPv6 support for QHostAddress. - Added the missing QAbstractFileEngine.beginEntryList(). - Bug fixes. v4.8.4 1st May 2011 - Added support for Qt v4.7.2. - QObject.findChild() and QObject.findChildren() now allow a tuple of type objects as well as a single type argument so that children of a number of types may be found. - Added support for QCommonStyle. - Added limited support for setEventFilter() and filterEvent() to QAbstractEventDispatcher. - Added support for setAttributeArray() to QGLShaderProgram. - pyrcc4 will now compress by default to match the behaviour of rcc. - Removed QTouchEventSequence as its C++ API makes it impossible to be used from Python. - Bug fixes. v4.8.3 23rd January 2011 - Added the QPyNullVariant class to the QVariant v2 API to allow null QVariants to be implemented. - Added the optional type keyword argument to QSettings.value() to allow the type of the returned value to be specified. - QDeclarativeItem will now act as a transparent proxy for any QML signals and JavaScript functions. - Any QObject invokable methods can now be called transparently even if they haven't been explicitly wrapped. - QWizardPage.registerField() can now take an unbound or bound signal as its 'changedSignal' argument. - Converted the Reference Guide to Sphinx. - Bug fixes. v4.8.2 23rd December 2010 - Added support for Qt v4.7.1. - Added the coloreditorfactory.py, combowidgetmapper.py, customsortfiltermodel.py and simplewidgetmapper.py item view examples from Hans-Peter Jansen. - Added the IPC examples from Hans-Peter Jansen. - Added the WebKit examples from Hans-Peter Jansen. - Added the calendarwidget.py, stylesheet.py and textedit.py examples from Hans-Peter Jansen. - Added the --no-timestamp option to configure.py. - Added the lang example from Hans-Peter Jansen to the contrib directory. - The support for the detection of the destruction by Qt of internally constructed QObject instances (added in PyQt v4.7.5) has been disabled until a reliable thread-safe solution can be found. - Bug fixes. v4.8.1 29th October 2010 - Support for the QT_BEGIN_NAMESPACE and QT_END_NAMESPACE macros to allow PyQt to be built against Qt built with namespace support. - Bug fixes. v4.8 22nd October 2010 - Added support for Qt v4.7 including the new QtDeclarative module. - pyqtProperty() can now be used as a method decorator in the same way that the standard Python property type can be used. - Added the notify argument to pyqtProperty(). - Unbound signals can now be subscripted in the same way that bound signals can. - Added the missing << operator to QPolygon, QPolygonF and QXmlStreamAttributes. - PyQt will now automatically keep a reference to objects set with some sort of setter method when Qt expects the underlying C++ instance to stay valid but does not take ownership of it. - Added the lightmaps.py and stardelegate.py examples from Hans-Peter Jansen. - Added the --assume-shared option to configure.py. - The QtAssistant module is no longer built with Qt v4.7 and later. v4.7.7 21st September 2010 - A bug fix release. v4.7.6 6th September 2010 - A bug fix release. v4.7.5 31st August 2010 - Added QStringRef.__str__() and QStringRef.__unicode__() to the QString v1 API. - The destruction by Qt of internally constructed QObject instances is now automatically detected. - A signal defined with pyqtSignal() can now be used with methods that make an internal call to QObject::connect(), e.g. QTimer.singleShot(). - Added the --from-imports command line argument to pyuic4 and the from_imports argument to PyQt4.uic.compileUi(). - Added support for Python v3.2. - The Windows installer now includes qcollectiongenerator.exe and qhelpgenerator.exe. v4.7.4 12th July 2010 - Any class with a count() method now supports the len() builtin. - Added the missing == and != operators to QItemSelection. - Added readQVariantHash(), readQVariantList(), readQVariantMap, writeQVariantHash(), writeQVariantList() and writeQVariantMap() to QDataStream. - Added the ErrorPageExtensionOption and ErrorPageExtensionReturn classes, and the ErrorDomain enum to QWebPage. v4.7.3 16th April 2010 - Added evaluateToString() and evaluateToStringList() to QXmlQuery. v4.7.2 17th March 2010 - A bug fix release. v4.7.1 17th March 2010 - Added the schema.py example. - Added the missing pushContext() and popContext() to QScriptEngine. - A QStyleOption instance will be wrapped as a specific sub-class where possible. v4.7 14th January 2010 - Qt v4.6 is fully supported. - Added the QtMultimedia module. - Added keyword support for optional arguments. - Added docstrings for all classes, functions and methods that describe the Python signatures of all callables. - Any Python object that can be pickled can now be automatically written to and read from QSettings. - A QHostAddress.SpecialAddress can be used whenever a QHostAddress is expected. - Added the optional initialFilter argument to the QFileDialog.get*AndFilter() functions. - Added the readInt(), readQString(), readQStringList(), readQVariant(), writeInt(), writeQString(), writeQStringList() and writeQVariant() methods to QDataStream. - Added 'widgetPluginPath' to the uic module to specify the directories that are searched for widget plugins. - Added the anchorlayout.py, animatedtiles.py, appchooser.py, easing.py, lighting.py, moveblocks.py, states.py and stickman.py examples. - Significantly reduced the size of the modules on Linux and MacOS/X. - Added support for configuring and building outside of the source tree (for standard builds). v4.6.2 20th November 2009 - A bug fix release. v4.6.1 23rd October 2009 - Added the missing setDropAction() method to QGraphicsSceneDragDropEvent. - Added the QMacCocoaViewContainer class on OS/X. - An updated sandbox.py from Mark Summerfield. v4.6 26th September 2009 - Qt properties can be initialised using keyword arguments passed when creating an instance. - Signals can be connected using keyword arguments passed when creating an instance. - Added the QObject.pyqtConfigure() method to set Qt properties and connect signals using keyword arguments at any time. - Python v2.6 and later allow a Python bytearray to be used whenever a QByteArray is expected. - Added the getOpenFileNameAndFilter(), getOpenFileNamesAndFilter() and getSaveFileNameAndFilter() static methods to QFileDialog. - A QLatin1String can be passed whenever a QString is expected. - The following APIs have been defined to allow applications to specify which incompatible API they want to use: QDate, QDateTime, QString, QTextStream, QTime, QUrl and QVariant. See the section "Selecting Incompatible APIs" in the documentation for a description of the differences in the APIs. - Added the compileUiDir() function to the uic module. v4.5.4 27th July 2009 - A bug fix release. v4.5.3 27th July 2009 - A bug fix release. v4.5.2 14th July 2009 - Added support for the two QImage constructors that operate on non-const data by allowing a sip.voidptr to be passed. - Added support for QHeaderView to pyuic4. - Any Python object can now be passed where a QVariant is expected. None is interpreted as an invalid QVariant. - Added the QAxContainer module to the GPL version. v4.5.1 16th June 2009 - Added the setCoordinateMode() and coordinateMode() methods to QGradient. v4.5 5th June 2009 - Added support for Qt v4.5.1. - Added support for Python v3. - Added the QInputContextFactory class. - A new, more Pythonic, API has been added for connecting signals and slots which does not require knowledge of C++ data types. - New signals can now be defined using pyqtSignal as a more Pythonic replacement of the (now deprecated) __pyqtSignals__ class attribute. - Added the pyqtSlot decorator as a more Pythonic replacement of the (now deprecated) pyqtSignature decorator. - The "type" argument to pyqtProperty() can also be a Python type object. - The "type" argument to Q_ARG() can also be a Python type object. - The "type" argument to Q_RETURN_ARG() can also be a Python type object. - Added QT_TR_NOOP_UTF8(). - super() works without restrictions. - Replaced the old qtdemo example launcher with a port of the newer version with help from Grissiom, Matthew Smith and Henning Schroeder. - Added the editabletreemodel.py example from Cyril Romain. - Added the fetchmore.py example from Darryl Wallace. - Replaced the old tutorial with the newer Address Book tutorial. v4.4.4 8th November 2008 - QVariant.toPyObject() will now handle any Python object. The way in which QVariant wraps objects has subtlely changed in that the name returned by typeName() may now be different, but is now more consistent. - Added the data() method to the QPolygon, QPolygonF and QXmlAttributes classes. - Added the --no-designer-plugin option to configure.py to disable the building of the Python plugin for Qt Designer. - Added the missing Windows and Mac versions to QSysInfo. v4.4.3 8th Aug 2008 - Added support for Qt v4.4.1. - A QChar can now be used whenever a QString is expected. - All read related methods that take a maximum read length will now raise an exception if the length is negative. - The QVariant constructor that took a QVariantList argument has been replaced with the fromList() static method. - The QVariant constructor that took a QVariantMap argument has been replaced with the fromMap() static method. - Added the embeddeddialogs.py and padnavigator.py examples from Igor Prischepoff. v4.4.2 20th May 2008 - A bug fix release. v4.4.1 20th May 2008 - Added the QRunnable and QThreadPool classes. v4.4 13th May 2008 - Added support for Qt v4.4 including the new QtHelp, QtWebKit, QtXmlPatterns and phonon modules. - Added support for QMetaObject.invokeMethod(), Q_ARG() and Q_RETURN_ARG(). - Added support for QObject.staticMetaObject. - Added support for QScriptEngine.newFunction(). - pyqtSignature() now supports the specification of the types of return values. - Added support for slots that return values. - Any Python object can now be wrapped as a QVariant. - pyqtProperty() now supports DESIGNABLE, SCRIPTABLE, STORED and USER (based on a patch from Ulrich Berning). - Added __repr__ support to QByteArray, QChar, QDate, QDateTime, QLatin1Char, QLatin1String, QLine, QLineF, QPoint, QPointF, QRect, QRectF, QRegExp, QSize, QSizeF, QString, QTime, QUrl and QUuid (based on a patch from Giovanni Bajo). - Added the --pyqt3-wrapper argument to pyuic4 to generate a PyQt3 style wrapper (from a patch from Ulrich Berning). - Added the musicplayer.py and capabilities.py Phonon examples. - Added the diagramscene.py example from Rajev Sebastian. - Added the systray.py example from Daniel Harding. - Added the Qt Designer multi-page widget, PyDateEdit and PyDateTimeEdit plugin examples from Ulrich Berning. v4.3.3 5th December 2007 - Added support for Qt v4.3.3. v4.3.2 5th December 2007 - Added the --confirm-license option to configure.py. - The GPL license now has the same exceptions as Qt. v4.3.1 28th September 2007 - Added the pyqtRemoveInputHook() and pyqtRestoreInputHook() functions to the QtCore module. - Added the sandbox GUI shell from Mark Summerfield. - Added the dragdroprobot.py example from Lieven Buts. v4.3 30th July 2007 - Added support for Qt v4.3.0. - partial functions may now be used as slots. - The QByteArray, QChar, QColor, QDate, QDateTime, QKeySequence, QLatin1Char, QLatin1String, QLine, QLineF, QMatrix, QPoint, QPointF, QPolygon, QRect, QRectF, QSize, QSizeF, QString and QTime classes and all enums may be pickled. - configure.py now supports long option names. - Changed the meaning of the -d (--destdir) option to configure.py so that the PyQt4 directory always exists. - Added the --consolidate option to configure.py to generate a consolidated module (only useful if Qt was built as static libraries). - Added the --plugin option to configure.py to specify which of Qt's static plugins should be included (only useful if Qt was built as static libraries). - Added the --enable option to configure.py to specify explicitly which modules are to be built. - Added the --no-qsci-api option to configure.py to disable the installation of the QScintilla API file. - Added the --no-sip-files option to configure.py to disable the installation of the .sip files. v4.2 10th April 2007 - Added the QtDesigner module to allow Qt Designer to be extended using PyQt. This includes the ability to write widget plugins in Python. Many examples are included. - The __pyqtSignals__ class attribute is used to dynamically create new Qt signals. - The existing QtCore.pyqtSignature() decorator can now be used to dynamically create new Qt slots. - The QtCore.pyqtProperty() function is used to dynamically create properties that behave as Qt properties and Python properties at the same time. - Added an implementation of the Qt event loop to be used with the standard Python DBus bindings (v0.80 and later). - A QGradient can be used whenever a QBrush is expected. - A StandardKey can be used whenever a QKeySequence is expected. - On X11 added the QApplication ctors that accept a Display *. - Added qt_set_sequence_auto_mnemonic(), qt_x11_wait_for_window_manager(), qt_mac_secure_keyboard(), qt_mac_set_dock_menu(), qt_mac_set_menubar_icons(), qt_mac_set_menubar_merge(), qt_mac_set_native_menubar() and qt_mac_set_press_and_hold_context() to the QtGui module. - Added support for PyOS_InputHook. - Added the basicsortfiltermodel.py example. v4.1.1 9th December 2006 - lambda functions may now be used as slots. - Added support for Qt Designer v4.2 palettes to pyuic4. v4.1 4th November 2006 - Added support for Python v2.5. - Added support for Qt v4.2 (except for the QtDBus module). - Added the QAxContainer module for the commercial version for Windows. - Added context manager support to the QMutexLocker, QReadLocker and QWriteLocker classes. - Added the QtTest module (only those functions that simulate user interaction). - Added the missing QStylePainter class. - Added the QX11EmbedContainer and QX11EmbedWidget classes for X11. - A Python date object can be used whenever a QDate is expected. - Added the QDate.toPyDate() method to convert a QDate to a Python date object. - A Python datetime object can be used whenever a QDateTime is expected. - Added the QDateTime.toPyDateTime() method to convert a QDateTime to a Python datetime object. - A Python time object can be used whenever a QTime is expected. - Added the QTime.toPyTime() method to convert a QTime to a Python time object. - Added support for Q_ENUMS and Q_FLAGS. - pyrcc4 now conforms to PEP 263. - Added the 2dpainting.py, collidingmice.py, elasticnodes.py, overpainting.py and webbrowser.py examples. - A PyQt4 API file is installed if QScintilla2 is found. v4.0.1 15th July 2006 - QPolygon can be constructed from a Python list of pairs of integer coordinates. QPolygon.setPoints() can also take a Python list of pairs of integer coordinates. - pylupdate4 can now handle .ui files. - pyqt_config_args was added to pyqtconfig.py. v4.0 10th June 2006 - A complete rewrite for Qt v4. PyQt-x11-gpl-4.11.4/pylupdate/0000755000076500000240000000000012536324426015762 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/pylupdate/fetchtr.cpp0000644000076500000240000010217112536324426020127 0ustar philstaff00000000000000/********************************************************************** ** Copyright (C) 2014 Riverbank Computing Limited ** Copyright (C) 2002-2007 Detlev Offenbach ** ** This is a modified version of lupdate. The original is part of Qt-Linguist. ** The copyright of the original file can be found below. ** ** This version is modified to handle python sources. ** ** The file is provided AS IS with NO WARRANTY OF ANY KIND, ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE. ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include static const char MagicComment[] = "TRANSLATOR "; static QMap needs_Q_OBJECT; static QMap lacks_Q_OBJECT; /* The first part of this source file is the Python tokenizer. We skip most of Python; the only tokens that interest us are defined here. */ enum { Tok_Eof, Tok_class, Tok_return, Tok_tr, Tok_trUtf8, Tok_translate, Tok_Ident, Tok_Comment, Tok_Dot, Tok_String, Tok_LeftParen, Tok_RightParen, Tok_Comma, Tok_None, Tok_Integer}; // The names of function aliases passed on the command line. static const char *tr_function; static const char *trUtf8_function; static const char *translate_function; /* The tokenizer maintains the following global variables. The names should be self-explanatory. */ static QByteArray yyFileName; static int yyCh; static char yyIdent[128]; static size_t yyIdentLen; static char yyComment[65536]; static size_t yyCommentLen; static char yyString[65536]; static size_t yyStringLen; static qlonglong yyInteger; static QStack yySavedParenDepth; static int yyParenDepth; static int yyLineNo; static int yyCurLineNo; static int yyParenLineNo; static QTextCodec *yyCodecForTr = 0; static QTextCodec *yyCodecForSource = 0; // the file to read from (if reading from a file) static FILE *yyInFile; // the string to read from and current position in the string (otherwise) static QString yyInStr; static int yyInPos; // - 'rawbuf' is used to hold bytes before universal newline translation. // - 'buf' is its higher-level counterpart, where every end-of-line appears as // a single '\n' character, regardless of the end-of-line style used in input // files. static int buf, rawbuf; static int (*getChar)(); static int (*peekChar)(); static bool yyParsingUtf8; static int getTranslatedCharFromFile() { int c; if ( rawbuf < 0 ) // Empty raw buffer? c = getc( yyInFile ); else { c = rawbuf; rawbuf = -1; // Declare the raw buffer empty. } // Universal newline translation, similar to what Python does if ( c == '\r' ) { c = getc( yyInFile ); // Last byte of a \r\n sequence? if ( c != '\n') { rawbuf = c; // No, put it in 'rawbuf' for later processing. // Logical character that will be seen by higher-level functions c = '\n'; } // In all cases, c == '\n' here. } return c; } static int getCharFromFile() { int c; if ( buf < 0 ) { // Empty buffer? c = getTranslatedCharFromFile(); } else { c = buf; buf = -1; // Declare the buffer empty. } if ( c == '\n' ) // This is after universal newline translation yyCurLineNo++; // (i.e., a "logical" newline character). return c; } static int peekCharFromFile() { // Read a character, possibly performing universal newline translation, // and put it in 'buf' so that the next call to getCharFromFile() finds it // already available. buf = getCharFromFile(); return buf; } static void startTokenizer( const char *fileName, int (*getCharFunc)(), int (*peekCharFunc)(), QTextCodec *codecForTr, QTextCodec *codecForSource ) { yyInPos = 0; buf = rawbuf = -1; getChar = getCharFunc; peekChar = peekCharFunc; yyFileName = fileName; yyCh = getChar(); yySavedParenDepth.clear(); yyParenDepth = 0; yyCurLineNo = 1; yyParenLineNo = 1; yyCodecForTr = codecForTr; if (!yyCodecForTr) yyCodecForTr = QTextCodec::codecForName("ISO-8859-1"); Q_ASSERT(yyCodecForTr); yyCodecForSource = codecForSource; yyParsingUtf8 = false; } static int getToken() { const char tab[] = "abfnrtv"; const char backTab[] = "\a\b\f\n\r\t\v"; uint n; bool quiet; yyIdentLen = 0; yyCommentLen = 0; yyStringLen = 0; while ( yyCh != EOF ) { yyLineNo = yyCurLineNo; if ( isalpha(yyCh) || yyCh == '_' ) { do { if ( yyIdentLen < sizeof(yyIdent) - 1 ) yyIdent[yyIdentLen++] = (char) yyCh; yyCh = getChar(); } while ( isalnum(yyCh) || yyCh == '_' ); yyIdent[yyIdentLen] = '\0'; // Check for names passed on the command line. if (tr_function && strcmp(yyIdent, tr_function) == 0) return Tok_tr; if (trUtf8_function && strcmp(yyIdent, trUtf8_function) == 0) return Tok_trUtf8; if (translate_function && strcmp(yyIdent, translate_function) == 0) return Tok_translate; bool might_be_str = false; switch ( yyIdent[0] ) { case 'N': if ( strcmp(yyIdent + 1, "one") == 0 ) return Tok_None; break; case 'Q': if (strcmp(yyIdent + 1, "T_TR_NOOP") == 0) { yyParsingUtf8 = false; return Tok_tr; } else if (strcmp(yyIdent + 1, "T_TR_NOOP_UTF8") == 0) { yyParsingUtf8 = true; return Tok_trUtf8; } else if (strcmp(yyIdent + 1, "T_TRANSLATE_NOOP") == 0) { yyParsingUtf8 = false; return Tok_translate; } break; case 'c': if ( strcmp(yyIdent + 1, "lass") == 0 ) return Tok_class; break; case 'f': /* * QTranslator::findMessage() has the same parameters as * QApplication::translate(). */ if ( strcmp(yyIdent + 1, "indMessage") == 0 ) return Tok_translate; break; case 'r': if ( strcmp(yyIdent + 1, "eturn") == 0 ) return Tok_return; /* Drop through. */ case 'R': if (yyIdent[1] == '\0') might_be_str = true; break; case 'b': case 'B': case 'u': case 'U': if (yyIdent[1] == '\0') might_be_str = true; else if ((yyIdent[1] == 'r' || yyIdent[1] == 'R') && yyIdent[2] == '\0') might_be_str = true; break; case 't': if ( strcmp(yyIdent + 1, "r") == 0 ) { yyParsingUtf8 = false; return Tok_tr; } else if ( qstrcmp(yyIdent + 1, "rUtf8") == 0 ) { yyParsingUtf8 = true; return Tok_trUtf8; } else if ( qstrcmp(yyIdent + 1, "ranslate") == 0 ) { yyParsingUtf8 = false; return Tok_translate; } break; case '_': if ( strcmp(yyIdent + 1, "_tr") == 0 ) { yyParsingUtf8 = false; return Tok_tr; } else if ( strcmp(yyIdent + 1, "_trUtf8") == 0 ) { yyParsingUtf8 = true; return Tok_trUtf8; } else if ( qstrcmp(yyIdent + 1, "translate") == 0 ) { yyParsingUtf8 = false; return Tok_translate; } break; } /* * Handle the standard Python v2 and v3 string prefixes by simply * ignoring them. */ if (!might_be_str) return Tok_Ident; if (yyCh != '"' && yyCh != '\'') return Tok_Ident; } { switch ( yyCh ) { case '#': do { yyCh = getChar(); } while ( yyCh != EOF && yyCh != '\n' ); break; case '"': case '\'': int quoteChar; int trippelQuote, singleQuote; int in; quoteChar = yyCh; trippelQuote = 0; singleQuote = 1; in = 0; yyCh = getChar(); quiet = false; while ( yyCh != EOF ) { if ( singleQuote && (yyCh == '\n' || (in && yyCh == quoteChar)) ) break; if ( yyCh == quoteChar ) { if (peekChar() == quoteChar) { yyCh = getChar(); if (!trippelQuote) { trippelQuote = 1; singleQuote = 0; in = 1; yyCh = getChar(); } else { yyCh = getChar(); if (yyCh == quoteChar) { trippelQuote = 0; break; } } } else if (trippelQuote) { if ( yyStringLen < sizeof(yyString) - 1 ) yyString[yyStringLen++] = (char) yyCh; yyCh = getChar(); continue; } else break; } else in = 1; if ( yyCh == '\\' ) { yyCh = getChar(); if ( yyCh == 'x' ) { QByteArray hex = "0"; yyCh = getChar(); while ( isxdigit(yyCh) ) { hex += (char) yyCh; yyCh = getChar(); } #if defined(_MSC_VER) && _MSC_VER >= 1400 sscanf_s( hex, "%x", &n ); #else sscanf( hex, "%x", &n ); #endif if ( yyStringLen < sizeof(yyString) - 1 ) yyString[yyStringLen++] = (char) n; } else if ( yyCh >= '0' && yyCh < '8' ) { QByteArray oct = ""; int n = 0; do { oct += (char) yyCh; ++n; yyCh = getChar(); } while ( yyCh >= '0' && yyCh < '8' && n < 3 ); #if defined(_MSC_VER) && _MSC_VER >= 1400 sscanf_s( oct, "%o", &n ); #else sscanf( oct, "%o", &n ); #endif if ( yyStringLen < sizeof(yyString) - 1 ) yyString[yyStringLen++] = (char) n; } else if ( yyCh == '\n' ) { yyCh = getChar(); } else { const char *p = strchr( tab, yyCh ); if ( yyStringLen < sizeof(yyString) - 1 ) yyString[yyStringLen++] = ( p == 0 ) ? (char) yyCh : backTab[p - tab]; yyCh = getChar(); } } else { if (!yyCodecForSource) { if ( yyParsingUtf8 && yyCh >= 0x80 && !quiet) { qWarning( "%s:%d: Non-ASCII character detected in trUtf8 string", (const char *) yyFileName, yyLineNo ); quiet = true; } // common case: optimized if ( yyStringLen < sizeof(yyString) - 1 ) yyString[yyStringLen++] = (char) yyCh; yyCh = getChar(); } else { QByteArray originalBytes; while ( yyCh != EOF && (trippelQuote || yyCh != '\n') && yyCh != quoteChar && yyCh != '\\' ) { if ( yyParsingUtf8 && yyCh >= 0x80 && !quiet) { qWarning( "%s:%d: Non-ASCII character detected in trUtf8 string", (const char *) yyFileName, yyLineNo ); quiet = true; } originalBytes += (char)yyCh; yyCh = getChar(); } QString unicodeStr = yyCodecForSource->toUnicode(originalBytes); QByteArray convertedBytes; if (!yyCodecForTr->canEncode(unicodeStr) && !quiet) { qWarning( "%s:%d: Cannot convert Python string from %s to %s", (const char *) yyFileName, yyLineNo, yyCodecForSource->name().constData(), yyCodecForTr->name().constData() ); quiet = true; } convertedBytes = yyCodecForTr->fromUnicode(unicodeStr); size_t len = qMin((size_t)convertedBytes.size(), sizeof(yyString) - yyStringLen - 1); memcpy(yyString + yyStringLen, convertedBytes.constData(), len); yyStringLen += len; } } } yyString[yyStringLen] = '\0'; if ( yyCh != quoteChar ) { if (trippelQuote) qWarning("%s:%d: Empty or unterminated triple quoted string", (const char *)yyFileName, yyLineNo); else qWarning("%s:%d: Unterminated string", (const char *)yyFileName, yyLineNo); } if ( yyCh == EOF ) { return Tok_Eof; } else { yyCh = getChar(); return Tok_String; } break; case '(': if (yyParenDepth == 0) yyParenLineNo = yyCurLineNo; yyParenDepth++; yyCh = getChar(); return Tok_LeftParen; case ')': if (yyParenDepth == 0) yyParenLineNo = yyCurLineNo; yyParenDepth--; yyCh = getChar(); return Tok_RightParen; case ',': yyCh = getChar(); return Tok_Comma; case '.': yyCh = getChar(); return Tok_Dot; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { QByteArray ba; ba+=yyCh; yyCh = getChar(); bool hex = yyCh == 'x'; if ( hex ) { ba+=yyCh; yyCh = getChar(); } while ( (hex ? isxdigit(yyCh) : isdigit(yyCh)) ) { ba+=yyCh; yyCh = getChar(); } bool ok; yyInteger = ba.toLongLong(&ok); if (ok) return Tok_Integer; break; } default: yyCh = getChar(); } } } return Tok_Eof; } /* The second part of this source file is the parser. It accomplishes a very easy task: It finds all strings inside a tr() or translate() call, and possibly finds out the context of the call. It supports three cases: (1) the context is specified, as in FunnyDialog.tr("Hello") or translate("FunnyDialog", "Hello"); (2) the call appears within an inlined function; (3) the call appears within a function defined outside the class definition. */ static int yyTok; static bool match( int t ) { bool matches = ( yyTok == t ); if ( matches ) yyTok = getToken(); return matches; } static bool matchString( QByteArray *s ) { bool matches = ( yyTok == Tok_String ); *s = ""; while ( yyTok == Tok_String ) { *s += yyString; yyTok = getToken(); } return matches; } static bool matchEncoding( bool *utf8 ) { // Remove any leading module paths. if (yyTok == Tok_Ident && strcmp(yyIdent, "PyQt4") == 0) { yyTok = getToken(); if (yyTok != Tok_Dot) return false; yyTok = getToken(); } if (yyTok == Tok_Ident && (strcmp(yyIdent, "QtGui") == 0 || strcmp(yyIdent, "QtCore") == 0)) { yyTok = getToken(); if (yyTok != Tok_Dot) return false; yyTok = getToken(); } if ( yyTok == Tok_Ident ) { if (strcmp(yyIdent, "QApplication") == 0 || strcmp(yyIdent, "QCoreApplication") == 0) { yyTok = getToken(); if (yyTok == Tok_Dot) yyTok = getToken(); } *utf8 = QString( yyIdent ).endsWith( QString("UTF8") ); yyTok = getToken(); return true; } else { return false; } } static bool matchStringOrNone(QByteArray *s) { bool matches = matchString(s); if (!matches) matches = match(Tok_None); return matches; } /* * match any expression that can return a number, which can be * 1. Literal number (e.g. '11') * 2. simple identifier (e.g. 'm_count') * 3. simple function call (e.g. 'size()' ) * 4. function call on an object (e.g. 'list.size()') * * Other cases: * size(2,4) * list().size() * list(a,b).size(2,4) * etc... */ static bool matchExpression() { if (match(Tok_Integer)) { return true; } int parenlevel = 0; while (match(Tok_Ident) || parenlevel > 0) { if (yyTok == Tok_RightParen) { if (parenlevel == 0) break; --parenlevel; yyTok = getToken(); } else if (yyTok == Tok_LeftParen) { yyTok = getToken(); if (yyTok == Tok_RightParen) { yyTok = getToken(); } else { ++parenlevel; } } else if (yyTok == Tok_Ident) { continue; } else if (parenlevel == 0) { return false; } } return true; } static void parse( MetaTranslator *tor, const char *initialContext, const char *defaultContext ) { QMap qualifiedContexts; QByteArray context; QByteArray text; QByteArray com; QByteArray functionContext = initialContext; QByteArray prefix; bool utf8 = false; yyTok = getToken(); while ( yyTok != Tok_Eof ) { switch ( yyTok ) { case Tok_class: yyTok = getToken(); functionContext = yyIdent; yyTok = getToken(); break; case Tok_tr: case Tok_trUtf8: utf8 = (yyTok == Tok_trUtf8 || (yyCodecForTr && strcmp(yyCodecForTr->name(), "UTF-8") == 0)); yyTok = getToken(); if (match(Tok_LeftParen) && matchString(&text)) { com = ""; bool plural = false; if (match(Tok_RightParen)) { // There is no comment or plural arguments. } else if (match(Tok_Comma) && matchStringOrNone(&com)) { // There is a comment argument. if (match(Tok_RightParen)) { // There is no plural argument. } else if (match(Tok_Comma)) { // There is a plural argument. plural = true; } } if (prefix.isNull()) context = defaultContext; else if (qstrcmp(prefix, "self") == 0) context = functionContext; else context = prefix; prefix = (const char *) 0; if (qualifiedContexts.contains(context)) context = qualifiedContexts[context]; if (!text.isEmpty()) { tor->insert(MetaTranslatorMessage(context, text, com, yyFileName, yyParenLineNo, QStringList(), utf8, MetaTranslatorMessage::Unfinished, plural)); } } break; case Tok_translate: utf8 = false; yyTok = getToken(); if ( match(Tok_LeftParen) && matchString(&context) && match(Tok_Comma) && matchString(&text) ) { com = ""; bool plural = false; if (!match(Tok_RightParen)) { // look for comment if ( match(Tok_Comma) && matchStringOrNone(&com)) { if (!match(Tok_RightParen)) { // look for encoding if (match(Tok_Comma)) { if (matchEncoding(&utf8)) { if (!match(Tok_RightParen)) { // look for the plural quantifier, // this can be a number, an identifier or a function call, // so for simplicity we mark it as plural if we know we have a comma instead of an // right parentheses. plural = match(Tok_Comma); } } else { // This can be a QTranslator::translate("context", "source", "comment", n) plural translation if (matchExpression() && match(Tok_RightParen)) { plural = true; } else { break; } } } else { break; } } } else { break; } } if (!text.isEmpty()) { tor->insert( MetaTranslatorMessage(context, text, com, yyFileName, yyParenLineNo, QStringList(), utf8, MetaTranslatorMessage::Unfinished, plural) ); } } break; case Tok_Ident: if ( !prefix.isNull() ) prefix += "."; prefix += yyIdent; yyTok = getToken(); if ( yyTok != Tok_Dot ) prefix = (const char *) 0; break; case Tok_Comment: com = yyComment; com = com.simplified(); if ( com.left(sizeof(MagicComment) - 1) == MagicComment ) { com.remove( 0, sizeof(MagicComment) - 1 ); int k = com.indexOf( ' ' ); if ( k == -1 ) { context = com; } else { context = com.left( k ); com.remove( 0, k + 1 ); tor->insert( MetaTranslatorMessage(context, "", com, yyFileName, yyParenLineNo, QStringList(), false) ); } } yyTok = getToken(); break; default: yyTok = getToken(); } } if ( yyParenDepth != 0 ) qWarning( "%s: Unbalanced parentheses in Python code", (const char *) yyFileName ); } void fetchtr_py(const char *fileName, MetaTranslator *tor, const char *defaultContext, bool mustExist, const QByteArray &codecForSource, const char *tr_func, const char *trUtf8_func, const char *translate_func) { tr_function = tr_func; trUtf8_function = trUtf8_func; translate_function = translate_func; #if defined(_MSC_VER) && _MSC_VER >= 1400 if (fopen_s(&yyInFile, fileName, "r")) { if ( mustExist ) { char buf[100]; strerror_s(buf, sizeof(buf), errno); fprintf( stderr, "pylupdate5 error: Cannot open Python source file '%s': %s\n", fileName, buf ); } #else yyInFile = fopen( fileName, "r" ); if ( yyInFile == 0 ) { if ( mustExist ) fprintf( stderr, "pylupdate5 error: Cannot open Python source file '%s': %s\n", fileName, strerror(errno) ); #endif return; } startTokenizer( fileName, getCharFromFile, peekCharFromFile, tor->codecForTr(), QTextCodec::codecForName(codecForSource) ); parse( tor, 0, defaultContext ); fclose( yyInFile ); } class UiHandler : public QXmlDefaultHandler { public: UiHandler( MetaTranslator *translator, const char *fileName ) : tor( translator ), fname( fileName ), comment( "" ) { } virtual bool startElement( const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts ); virtual bool endElement( const QString& namespaceURI, const QString& localName, const QString& qName ); virtual bool characters( const QString& ch ); virtual bool fatalError( const QXmlParseException& exception ); virtual void setDocumentLocator(QXmlLocator *locator) { m_locator = locator; } QXmlLocator *m_locator; private: void flush(); MetaTranslator *tor; QByteArray fname; QString context; QString source; QString comment; QString accum; int m_lineNumber; bool trString; }; bool UiHandler::startElement( const QString& /* namespaceURI */, const QString& /* localName */, const QString& qName, const QXmlAttributes& atts ) { if ( qName == QString("item") ) { flush(); if ( !atts.value(QString("text")).isEmpty() ) source = atts.value( QString("text") ); } else if ( qName == QString("string") ) { flush(); if (atts.value(QString("notr")).isEmpty() || atts.value(QString("notr")) != QString("true")) { trString = true; comment = atts.value(QString("comment")); } else { trString = false; } } if (trString) m_lineNumber = m_locator->lineNumber(); accum.truncate( 0 ); return true; } bool UiHandler::endElement( const QString& /* namespaceURI */, const QString& /* localName */, const QString& qName ) { accum.replace( QRegExp(QString("\r\n")), "\n" ); if ( qName == QString("class") ) { if ( context.isEmpty() ) context = accum; } else if ( qName == QString("string") && trString ) { source = accum; } else if ( qName == QString("comment") ) { comment = accum; flush(); } else { flush(); } return true; } bool UiHandler::characters( const QString& ch ) { accum += ch; return true; } bool UiHandler::fatalError( const QXmlParseException& exception ) { QString msg; msg.sprintf( "Parse error at line %d, column %d (%s).", exception.lineNumber(), exception.columnNumber(), exception.message().toLatin1().data() ); fprintf( stderr, "XML error: %s\n", msg.toLatin1().data() ); return false; } void UiHandler::flush() { if ( !context.isEmpty() && !source.isEmpty() ) tor->insert( MetaTranslatorMessage(context.toUtf8(), source.toUtf8(), comment.toUtf8(), QString(fname), m_lineNumber, QStringList(), true) ); source.truncate( 0 ); comment.truncate( 0 ); } void fetchtr_ui( const char *fileName, MetaTranslator *tor, const char * /* defaultContext */, bool mustExist ) { QFile f( fileName ); if ( !f.open(QIODevice::ReadOnly) ) { if ( mustExist ) { #if defined(_MSC_VER) && _MSC_VER >= 1400 char buf[100]; strerror_s(buf, sizeof(buf), errno); fprintf( stderr, "pylupdate5 error: cannot open UI file '%s': %s\n", fileName, buf ); #else fprintf( stderr, "pylupdate5 error: cannot open UI file '%s': %s\n", fileName, strerror(errno) ); #endif } return; } QXmlInputSource in( &f ); QXmlSimpleReader reader; reader.setFeature( "http://xml.org/sax/features/namespaces", false ); reader.setFeature( "http://xml.org/sax/features/namespace-prefixes", true ); reader.setFeature( "http://trolltech.com/xml/features/report-whitespace" "-only-CharData", false ); QXmlDefaultHandler *hand = new UiHandler( tor, fileName ); reader.setContentHandler( hand ); reader.setErrorHandler( hand ); if ( !reader.parse(in) ) fprintf( stderr, "%s: Parse error in UI file\n", fileName ); reader.setContentHandler( 0 ); reader.setErrorHandler( 0 ); delete hand; f.close(); } PyQt-x11-gpl-4.11.4/pylupdate/main.cpp0000644000076500000240000002630412536324426017417 0ustar philstaff00000000000000/********************************************************************** ** Copyright (C) 2002-2007 Detlev Offenbach ** ** This is a modified version of lupdate. The original is part of Qt-Linguist. ** The copyright of the original file can be found below. ** ** This version is modified to handle python sources. ** ** The file is provided AS IS with NO WARRANTY OF ANY KIND, ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE. ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include // defined in fetchtr.cpp extern void fetchtr_py(const char *fileName, MetaTranslator *tor, const char *defaultContext, bool mustExist, const QByteArray &codecForSource, const char *tr_func, const char *trUtf8_func, const char *translate_func); extern void fetchtr_ui( const char *fileName, MetaTranslator *tor, const char *defaultContext, bool mustExist ); // defined in merge.cpp extern void merge( const MetaTranslator *tor, const MetaTranslator *virginTor, MetaTranslator *out, bool verbose, bool noObsolete ); typedef QList TML; static void printUsage() { fprintf( stderr, "Usage:\n" " pylupdate4 [options] project-file\n" " pylupdate4 [options] source-files -ts ts-files\n" "Options:\n" " -help Display this information and exit\n" " -version\n" " Display the version of pylupdate4 and exit\n" " -verbose\n" " Explain what is being done\n" " -noobsolete\n" " Drop all obsolete strings\n" " -tr-function name\n" " name() may be used instead of tr()\n" " -trUtf8-function name\n" " name() may be used instead of trUtf8()\n" " -translate-function name\n" " name() may be used instead of translate()\n"); } static void updateTsFiles( const MetaTranslator& fetchedTor, const QStringList& tsFileNames, const QString& codecForTr, bool noObsolete, bool verbose ) { QStringList::ConstIterator t = tsFileNames.begin(); QDir dir; while ( t != tsFileNames.end() ) { QString fn = dir.relativeFilePath(*t); MetaTranslator tor; MetaTranslator out; tor.load( *t ); if ( !codecForTr.isEmpty() ) tor.setCodec( codecForTr.toLatin1() ); if ( verbose ) fprintf( stderr, "Updating '%s'...\n", fn.toLatin1().constData() ); merge( &tor, &fetchedTor, &out, verbose, noObsolete ); if ( noObsolete ) out.stripObsoleteMessages(); out.stripEmptyContexts(); if ( !out.save(*t) ) { #if defined(_MSC_VER) && _MSC_VER >= 1400 char buf[100]; strerror_s(buf, sizeof(buf), errno); fprintf( stderr, "pylupdate4 error: Cannot save '%s': %s\n", fn.toLatin1().constData(), buf ); #else fprintf( stderr, "pylupdate4 error: Cannot save '%s': %s\n", fn.toLatin1().constData(), strerror(errno) ); #endif } ++t; } } int main( int argc, char **argv ) { QString defaultContext = "@default"; MetaTranslator fetchedTor; QByteArray codecForTr; QByteArray codecForSource; QStringList tsFileNames; QStringList uiFileNames; bool verbose = false; bool noObsolete = false; bool metSomething = false; int numFiles = 0; bool standardSyntax = true; bool metTsFlag = false; const char *tr_func = 0; const char *trUtf8_func = 0; const char *translate_func = 0; int i; for ( i = 1; i < argc; i++ ) { if ( qstrcmp(argv[i], "-ts") == 0 ) standardSyntax = false; } for ( i = 1; i < argc; i++ ) { if ( qstrcmp(argv[i], "-help") == 0 ) { printUsage(); return 0; } else if ( qstrcmp(argv[i], "-noobsolete") == 0 ) { noObsolete = true; continue; } else if ( qstrcmp(argv[i], "-verbose") == 0 ) { verbose = true; continue; } else if ( qstrcmp(argv[i], "-version") == 0 ) { fprintf( stderr, "pylupdate4 version %s\n", QT_VERSION_STR ); return 0; } else if ( qstrcmp(argv[i], "-ts") == 0 ) { metTsFlag = true; continue; } else if ( qstrcmp(argv[i], "-tr-function") == 0 ) { if (!argv[++i]) { fprintf(stderr, "pylupdate5 error: missing -tr-function name\n"); return 2; } tr_func = argv[i]; continue; } else if ( qstrcmp(argv[i], "-trUtf8-function") == 0 ) { if (!argv[++i]) { fprintf(stderr, "pylupdate5 error: missing -trUtf8-function name\n"); return 2; } trUtf8_func = argv[i]; continue; } else if ( qstrcmp(argv[i], "-translate-function") == 0 ) { if (!argv[++i]) { fprintf(stderr, "pylupdate5 error: missing -translate-function name\n"); return 2; } translate_func = argv[i]; continue; } numFiles++; QString fullText; if ( !metTsFlag ) { QFile f( argv[i] ); if ( !f.open(QIODevice::ReadOnly) ) { #if defined(_MSC_VER) && _MSC_VER >= 1400 char buf[100]; strerror_s(buf, sizeof(buf), errno); fprintf( stderr, "pylupdate4 error: Cannot open file '%s': %s\n", argv[i], buf ); #else fprintf( stderr, "pylupdate4 error: Cannot open file '%s': %s\n", argv[i], strerror(errno) ); #endif return 1; } QTextStream t( &f ); fullText = t.readAll(); f.close(); } QString oldDir = QDir::currentPath(); QDir::setCurrent( QFileInfo(argv[i]).path() ); if ( standardSyntax ) { fetchedTor = MetaTranslator(); codecForTr.clear(); codecForSource.clear(); tsFileNames.clear(); uiFileNames.clear(); QMap tagMap = proFileTagMap( fullText ); QMap::Iterator it; for ( it = tagMap.begin(); it != tagMap.end(); ++it ) { QStringList toks = it.value().split(' '); QStringList::Iterator t; for ( t = toks.begin(); t != toks.end(); ++t ) { if ( it.key() == "SOURCES" ) { QString abs = QDir::current().absoluteFilePath(*t); fetchtr_py(abs.toLatin1(), &fetchedTor, defaultContext.toLatin1(), true, codecForSource, tr_func, trUtf8_func, translate_func); metSomething = true; } else if ( it.key() == "TRANSLATIONS" ) { QString abs = QDir::current().absoluteFilePath(*t); tsFileNames.append(abs); metSomething = true; } else if ( it.key() == "CODEC" || it.key() == "DEFAULTCODEC" || it.key() == "CODECFORTR" ) { codecForTr = (*t).toLatin1(); fetchedTor.setCodecForTr(codecForTr); } else if ( it.key() == "CODECFORSRC" ) { codecForSource = (*t).toLatin1(); } else if ( it.key() == "FORMS" ) { QString abs = QDir::current().absoluteFilePath(*t); fetchtr_ui(abs.toLatin1(), &fetchedTor, defaultContext.toLatin1(), true); } } } updateTsFiles( fetchedTor, tsFileNames, codecForTr, noObsolete, verbose ); if ( !metSomething ) { fprintf( stderr, "pylupdate4 warning: File '%s' does not look like a" " project file\n", argv[i] ); } else if ( tsFileNames.isEmpty() ) { fprintf( stderr, "pylupdate4 warning: Met no 'TRANSLATIONS' entry in" " project file '%s'\n", argv[i] ); } } else { if ( metTsFlag ) { if ( QString(argv[i]).toLower().endsWith(".ts") ) { QFileInfo fi( argv[i] ); if ( !fi.exists() || fi.isWritable() ) { tsFileNames.append( argv[i] ); } else { fprintf( stderr, "pylupdate4 warning: For some reason, I cannot" " save '%s'\n", argv[i] ); } } else { fprintf( stderr, "pylupdate4 error: File '%s' lacks .ts extension\n", argv[i] ); } } else { QFileInfo fi(argv[i]); if ( fi.suffix() == "py" || fi.suffix() == "pyw" ) { fetchtr_py(fi.fileName().toLatin1(), &fetchedTor, defaultContext.toLatin1(), true, codecForSource, tr_func, trUtf8_func, translate_func); } else { fetchtr_ui( fi.fileName().toLatin1(), &fetchedTor, defaultContext.toLatin1(), true); } } } QDir::setCurrent( oldDir ); } if ( !standardSyntax ) updateTsFiles( fetchedTor, tsFileNames, codecForTr, noObsolete, verbose ); if ( numFiles == 0 ) { printUsage(); return 1; } return 0; } PyQt-x11-gpl-4.11.4/pylupdate/merge.cpp0000644000076500000240000002054312536324426017571 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http://www.trolltech.com/products/qt/opensource.html ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://www.trolltech.com/products/qt/licensing.html or contact the ** sales department at sales@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "metatranslator.h" #include "simtexth.h" #include // defined in numberh.cpp extern int applyNumberHeuristic( MetaTranslator *tor ); // defined in sametexth.cpp extern int applySameTextHeuristic( MetaTranslator *tor ); typedef QList TML; /* Merges two MetaTranslator objects into the first one. The first one is a set of source texts and translations for a previous version of the internationalized program; the second one is a set of fresh source texts newly extracted from the source code, without any translation yet. */ void merge( const MetaTranslator *tor, const MetaTranslator *virginTor, MetaTranslator *outTor, bool verbose, bool noObsolete ) { int known = 0; int neww = 0; int obsoleted = 0; int UntranslatedObsoleted = 0; int similarTextHeuristicCount = 0; TML all = tor->messages(); TML::Iterator it; outTor->setLanguageCode(tor->languageCode()); outTor->setSourceLanguageCode(tor->sourceLanguageCode()); /* The types of all the messages from the vernacular translator are updated according to the virgin translator. */ for ( it = all.begin(); it != all.end(); ++it ) { MetaTranslatorMessage::Type newType = MetaTranslatorMessage::Finished; MetaTranslatorMessage m = *it; // skip context comment if ( !QByteArray(m.sourceText()).isEmpty() ) { MetaTranslatorMessage mv = virginTor->find(m.context(), m.sourceText(), m.comment()); if ( mv.isNull() ) { mv = virginTor->find(m.context(), m.comment(), m.fileName(), m.lineNumber()); if ( mv.isNull() ) { // did not find it in the virgin, mark it as obsolete newType = MetaTranslatorMessage::Obsolete; if ( m.type() != MetaTranslatorMessage::Obsolete ) obsoleted++; } else { // Do not just accept it if its on the same line number, but different source text. // Also check if the texts are more or less similar before we consider them to represent the same message... // ### The QString() cast is evil if (getSimilarityScore(QString(m.sourceText()), mv.sourceText()) >= textSimilarityThreshold) { // It is just slightly modified, assume that it is the same string m = MetaTranslatorMessage(m.context(), mv.sourceText(), m.comment(), m.fileName(), m.lineNumber(), m.translations()); m.setPlural(mv.isPlural()); // Mark it as unfinished. (Since the source text was changed it might require re-translating...) newType = MetaTranslatorMessage::Unfinished; ++similarTextHeuristicCount; } else { // The virgin and vernacular sourceTexts are so different that we could not find it. newType = MetaTranslatorMessage::Obsolete; if ( m.type() != MetaTranslatorMessage::Obsolete ) obsoleted++; } neww++; } } else { switch ( m.type() ) { case MetaTranslatorMessage::Finished: default: if (m.isPlural() == mv.isPlural()) { newType = MetaTranslatorMessage::Finished; } else { newType = MetaTranslatorMessage::Unfinished; } known++; break; case MetaTranslatorMessage::Unfinished: newType = MetaTranslatorMessage::Unfinished; known++; break; case MetaTranslatorMessage::Obsolete: newType = MetaTranslatorMessage::Unfinished; neww++; } // Always get the filename and linenumber info from the virgin Translator, in case it has changed location. // This should also enable us to read a file that does not have the element. m.setFileName(mv.fileName()); m.setLineNumber(mv.lineNumber()); m.setPlural(mv.isPlural()); // ### why not use operator=? } if (newType == MetaTranslatorMessage::Obsolete && !m.isTranslated()) { ++UntranslatedObsoleted; } m.setType(newType); outTor->insert(m); } } /* Messages found only in the virgin translator are added to the vernacular translator. Among these are all the context comments. */ all = virginTor->messages(); for ( it = all.begin(); it != all.end(); ++it ) { MetaTranslatorMessage mv = *it; bool found = tor->contains(mv.context(), mv.sourceText(), mv.comment()); if (!found) { MetaTranslatorMessage m = tor->find(mv.context(), mv.comment(), mv.fileName(), mv.lineNumber()); if (!m.isNull()) { if (getSimilarityScore(QString(m.sourceText()), mv.sourceText()) >= textSimilarityThreshold) { found = true; } } else { found = false; } } if ( !found ) { outTor->insert( mv ); if ( !QByteArray(mv.sourceText()).isEmpty() ) neww++; } } /* The same-text heuristic handles cases where a message has an obsolete counterpart with a different context or comment. */ int sameTextHeuristicCount = applySameTextHeuristic( outTor ); /* The number heuristic handles cases where a message has an obsolete counterpart with mostly numbers differing in the source text. */ int sameNumberHeuristicCount = applyNumberHeuristic( outTor ); if ( verbose ) { int totalFound = neww + known; fprintf( stderr, " Found %d source text%s (%d new and %d already existing)\n", totalFound, totalFound == 1 ? "" : "s", neww, known); if (obsoleted) { if (noObsolete) { fprintf( stderr, " Removed %d obsolete entr%s\n", obsoleted, obsoleted == 1 ? "y" : "ies" ); } else { int total = obsoleted - UntranslatedObsoleted; fprintf( stderr, " Kept %d obsolete translation%s\n", total, total == 1 ? "" : "s" ); fprintf( stderr, " Removed %d obsolete untranslated entr%s\n", UntranslatedObsoleted, UntranslatedObsoleted == 1 ? "y" : "ies" ); } } if (sameNumberHeuristicCount) fprintf( stderr, " Number heuristic provided %d translation%s\n", sameNumberHeuristicCount, sameNumberHeuristicCount == 1 ? "" : "s" ); if (sameTextHeuristicCount) fprintf( stderr, " Same-text heuristic provided %d translation%s\n", sameTextHeuristicCount, sameTextHeuristicCount == 1 ? "" : "s" ); if (similarTextHeuristicCount) fprintf( stderr, " Similar-text heuristic provided %d translation%s\n", similarTextHeuristicCount, similarTextHeuristicCount == 1 ? "" : "s" ); } } PyQt-x11-gpl-4.11.4/pylupdate/metatranslator.cpp0000644000076500000240000006357712536324426021550 0ustar philstaff00000000000000/********************************************************************** ** Copyright (C) 2002-2007 Detlev Offenbach ** ** This is a modified version of lupdate. The original is part of Qt-Linguist. ** The copyright of the original file can be found below. ** ** This version is modified to handle python sources. ** ** The file is provided AS IS with NO WARRANTY OF ANY KIND, ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE. ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "metatranslator.h" #include #include #include #include #include #include #include static bool encodingIsUtf8( const QXmlAttributes& atts ) { for ( int i = 0; i < atts.length(); i++ ) { // utf8="true" is a pre-3.0 syntax if ( atts.qName(i) == QString("utf8") ) { return ( atts.value(i) == QString("true") ); } else if ( atts.qName(i) == QString("encoding") ) { return ( atts.value(i) == QString("UTF-8") ); } } return false; } class TsHandler : public QXmlDefaultHandler { public: TsHandler( MetaTranslator *translator ) : tor( translator ), type( MetaTranslatorMessage::Finished ), inMessage( false ), ferrorCount( 0 ), contextIsUtf8( false ), messageIsUtf8( false ), m_isPlural(false) { } virtual bool startElement( const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts ); virtual bool endElement( const QString& namespaceURI, const QString& localName, const QString& qName ); virtual bool characters( const QString& ch ); virtual bool fatalError( const QXmlParseException& exception ); QString language() const { return m_language; } QString sourceLanguage() const { return m_sourceLanguage; } private: MetaTranslator *tor; MetaTranslatorMessage::Type type; bool inMessage; QString m_language; QString m_sourceLanguage; QString context; QString source; QString comment; QStringList translations; QString m_fileName; int m_lineNumber; QString accum; int ferrorCount; bool contextIsUtf8; bool messageIsUtf8; bool m_isPlural; }; bool TsHandler::startElement( const QString& /* namespaceURI */, const QString& /* localName */, const QString& qName, const QXmlAttributes& atts ) { if ( qName == QString("byte") ) { for ( int i = 0; i < atts.length(); i++ ) { if ( atts.qName(i) == QString("value") ) { QString value = atts.value( i ); int base = 10; if ( value.startsWith("x") ) { base = 16; value = value.mid( 1 ); } int n = value.toUInt( 0, base ); if ( n != 0 ) accum += QChar( n ); } } } else { if ( qName == QString("TS") ) { m_language = atts.value(QLatin1String("language")); m_sourceLanguage = atts.value(QLatin1String("sourcelanguage")); } else if ( qName == QString("context") ) { context.truncate( 0 ); source.truncate( 0 ); comment.truncate( 0 ); translations.clear(); contextIsUtf8 = encodingIsUtf8( atts ); } else if ( qName == QString("message") ) { inMessage = true; type = MetaTranslatorMessage::Finished; source.truncate( 0 ); comment.truncate( 0 ); translations.clear(); messageIsUtf8 = encodingIsUtf8( atts ); m_isPlural = atts.value(QLatin1String("numerus")).compare(QLatin1String("yes")) == 0; } else if (qName == QString("location") && inMessage) { bool bOK; int lineNo = atts.value(QString("line")).toInt(&bOK); if (!bOK) lineNo = -1; m_fileName = atts.value(QString("filename")); m_lineNumber = lineNo; } else if ( qName == QString("translation") ) { for ( int i = 0; i < atts.length(); i++ ) { if ( atts.qName(i) == QString("type") ) { if ( atts.value(i) == QString("unfinished") ) type = MetaTranslatorMessage::Unfinished; else if ( atts.value(i) == QString("obsolete") ) type = MetaTranslatorMessage::Obsolete; else type = MetaTranslatorMessage::Finished; } } } accum.truncate( 0 ); } return true; } bool TsHandler::endElement( const QString& /* namespaceURI */, const QString& /* localName */, const QString& qName ) { if ( qName == QString("codec") || qName == QString("defaultcodec") ) { // "codec" is a pre-3.0 syntax tor->setCodec( accum.toLatin1() ); } else if ( qName == QString("name") ) { context = accum; } else if ( qName == QString("source") ) { source = accum; } else if ( qName == QString("comment") ) { if ( inMessage ) { comment = accum; } else { if ( contextIsUtf8 ) tor->insert( MetaTranslatorMessage(context.toUtf8(), ContextComment, accum.toUtf8(), QString(), 0, QStringList(), true, MetaTranslatorMessage::Unfinished) ); else tor->insert( MetaTranslatorMessage(context.toLatin1(), ContextComment, accum.toLatin1(), QString(), 0, QStringList(), false, MetaTranslatorMessage::Unfinished) ); } } else if ( qName == QString("numerusform") ) { translations.append(accum); m_isPlural = true; } else if ( qName == QString("translation") ) { if (translations.isEmpty()) translations.append(accum); } else if ( qName == QString("message") ) { if ( messageIsUtf8 ) tor->insert( MetaTranslatorMessage(context.toUtf8(), source.toUtf8(), comment.toUtf8(), m_fileName, m_lineNumber, translations, true, type, m_isPlural) ); else tor->insert( MetaTranslatorMessage(context.toLatin1(), source.toLatin1(), comment.toLatin1(), m_fileName, m_lineNumber, translations, false, type, m_isPlural) ); inMessage = false; } return true; } bool TsHandler::characters( const QString& ch ) { QString t = ch; t.replace( "\r", "" ); accum += t; return true; } bool TsHandler::fatalError( const QXmlParseException& exception ) { if ( ferrorCount++ == 0 ) { QString msg; msg.sprintf( "Parse error at line %d, column %d (%s).", exception.lineNumber(), exception.columnNumber(), exception.message().toLatin1().data() ); fprintf( stderr, "XML error: %s\n", msg.toLatin1().data() ); } return false; } static QString numericEntity( int ch ) { return QString( ch <= 0x20 ? "" : "&#x%1;" ) .arg( ch, 0, 16 ); } static QString protect( const QByteArray& str ) { QString result; int len = (int) str.length(); for ( int k = 0; k < len; k++ ) { switch( str[k] ) { case '\"': result += QString( """ ); break; case '&': result += QString( "&" ); break; case '>': result += QString( ">" ); break; case '<': result += QString( "<" ); break; case '\'': result += QString( "'" ); break; default: if ( (uchar) str[k] < 0x20 && str[k] != '\n' ) result += numericEntity( (uchar) str[k] ); else result += str[k]; } } return result; } static QString evilBytes( const QByteArray& str, bool utf8 ) { if ( utf8 ) { return protect( str ); } else { QString result; QByteArray t = protect( str ).toLatin1(); int len = (int) t.length(); for ( int k = 0; k < len; k++ ) { if ( (uchar) t[k] >= 0x7f ) result += numericEntity( (uchar) t[k] ); else result += QChar( t[k] ); } return result; } } MetaTranslatorMessage::MetaTranslatorMessage() : utfeight( false ), ty( Unfinished ), m_plural(false) { } MetaTranslatorMessage::MetaTranslatorMessage( const char *context, const char *sourceText, const char *comment, const QString &fileName, int lineNumber, const QStringList& translations, bool utf8, Type type, bool plural ) : TranslatorMessage( context, sourceText, comment, fileName, lineNumber, translations ), utfeight( false ), ty( type ), m_plural(plural) { /* Don't use UTF-8 if it makes no difference. UTF-8 should be reserved for the real problematic case: non-ASCII (possibly non-Latin1) characters in .ui files. */ if ( utf8 ) { if ( sourceText != 0 ) { int i = 0; while ( sourceText[i] != '\0' ) { if ( (uchar) sourceText[i] >= 0x80 ) { utfeight = true; break; } i++; } } if ( !utfeight && comment != 0 ) { int i = 0; while ( comment[i] != '\0' ) { if ( (uchar) comment[i] >= 0x80 ) { utfeight = true; break; } i++; } } } } MetaTranslatorMessage::MetaTranslatorMessage( const MetaTranslatorMessage& m ) : TranslatorMessage( m ), utfeight( m.utfeight ), ty( m.ty ), m_plural(m.m_plural) { } MetaTranslatorMessage& MetaTranslatorMessage::operator=( const MetaTranslatorMessage& m ) { TranslatorMessage::operator=( m ); utfeight = m.utfeight; ty = m.ty; m_plural = m.m_plural; return *this; } bool MetaTranslatorMessage::operator==( const MetaTranslatorMessage& m ) const { return qstrcmp( context(), m.context() ) == 0 && qstrcmp( sourceText(), m.sourceText() ) == 0 && qstrcmp( comment(), m.comment() ) == 0; } bool MetaTranslatorMessage::operator<( const MetaTranslatorMessage& m ) const { int delta = qstrcmp( context(), m.context() ); if ( delta == 0 ) { delta = qstrcmp( sourceText(), m.sourceText() ); if ( delta == 0 ) delta = qstrcmp( comment(), m.comment() ); } return delta < 0; } MetaTranslator::MetaTranslator() { clear(); } MetaTranslator::MetaTranslator( const MetaTranslator& tor ) : mm( tor.mm ), codecName( tor.codecName ), codec( tor.codec ) { } MetaTranslator& MetaTranslator::operator=( const MetaTranslator& tor ) { mm = tor.mm; codecName = tor.codecName; codec = tor.codec; return *this; } void MetaTranslator::clear() { mm.clear(); codecName = "ISO-8859-1"; codec = 0; } bool MetaTranslator::load( const QString& filename ) { QFile f( filename ); if ( !f.open(QIODevice::ReadOnly) ) return false; QXmlInputSource in( &f ); QXmlSimpleReader reader; reader.setFeature( "http://xml.org/sax/features/namespaces", false ); reader.setFeature( "http://xml.org/sax/features/namespace-prefixes", true ); TsHandler *hand = new TsHandler( this ); reader.setContentHandler( static_cast(hand) ); reader.setErrorHandler( static_cast(hand) ); bool ok = reader.parse( in ); reader.setContentHandler( 0 ); reader.setErrorHandler( 0 ); m_language = hand->language(); m_sourceLanguage = hand->sourceLanguage(); makeFileNamesAbsolute(QFileInfo(filename).absoluteDir()); delete hand; f.close(); return ok; } bool MetaTranslator::save( const QString& filename ) const { QFile f( filename ); if ( !f.open(QIODevice::WriteOnly) ) return false; QTextStream t( &f ); t.setCodec( QTextCodec::codecForName("ISO-8859-1") ); //### The xml prolog allows processors to easily detect the correct encoding t << "\n\n"; if ( codecName != "ISO-8859-1" ) t << "" << codecName << "\n"; TMM::ConstIterator m = mm.begin(); while ( m != mm.end() ) { TMMInv inv; TMMInv::Iterator i; bool contextIsUtf8 = m.key().utf8(); QByteArray context = m.key().context(); QByteArray comment = ""; do { if (QByteArray(m.key().sourceText()) == ContextComment) { if ( m.key().type() != MetaTranslatorMessage::Obsolete ) { contextIsUtf8 = m.key().utf8(); comment = QByteArray(m.key().comment()); } } else { inv.insert( *m, m.key() ); } } while ( ++m != mm.end() && QByteArray(m.key().context()) == context ); t << "\n"; t << " " << evilBytes( context, contextIsUtf8 ) << "\n"; if ( !comment.isEmpty() ) t << " " << evilBytes( comment, contextIsUtf8 ) << "\n"; for ( i = inv.begin(); i != inv.end(); ++i ) { MetaTranslatorMessage msg = *i; // no need for such noise if ( msg.type() == MetaTranslatorMessage::Obsolete && msg.translation().isEmpty() ) continue; t << " \n"; if (!msg.fileName().isEmpty() && msg.lineNumber() >= 0) { QDir tsPath = QFileInfo(filename).absoluteDir(); QString fn = tsPath.relativeFilePath(msg.fileName()).replace('\\','/'); t << " \n"; } t << " " << evilBytes( msg.sourceText(), msg.utf8() ) << "\n"; if ( !QByteArray(msg.comment()).isEmpty() ) t << " " << evilBytes( msg.comment(), msg.utf8() ) << "\n"; t << " "; if (msg.isPlural()) { t << "\n"; QLocale::Language l; QLocale::Country c; languageAndCountry(m_language, &l, &c); QStringList translns = normalizedTranslations(msg, l, c); for (int j = 0; j < qMax(1, translns.count()); ++j) t << " " << protect( translns.value(j).toUtf8() ) << "\n"; t << " "; } else { t << protect( msg.translation().toUtf8() ); } t << "\n"; t << " \n"; } t << "\n"; } t << "\n"; f.close(); return true; } void MetaTranslator::languageAndCountry(const QString &languageCode, QLocale::Language *lang, QLocale::Country *country) { QLocale locale(languageCode); if (lang) *lang = locale.language(); if (country) { if (languageCode.indexOf(QLatin1Char('_')) != -1) { *country = locale.country(); } else { *country = QLocale::AnyCountry; } } } bool MetaTranslator::release( const QString& filename, bool verbose, bool ignoreUnfinished, Translator::SaveMode mode ) const { Translator tor( 0 ); int finished = 0; int unfinished = 0; int untranslated = 0; TMM::ConstIterator m; for ( m = mm.begin(); m != mm.end(); ++m ) { if ( m.key().type() != MetaTranslatorMessage::Obsolete ) { if ( m.key().translation().isEmpty() ) { untranslated++; } else { if ( m.key().type() == MetaTranslatorMessage::Unfinished ) unfinished++; else finished++; QByteArray context = m.key().context(); QByteArray sourceText = m.key().sourceText(); QByteArray comment = m.key().comment(); QStringList translations = m.key().translations(); if ( !ignoreUnfinished || m.key().type() != MetaTranslatorMessage::Unfinished ) { /* Drop the comment in (context, sourceText, comment), unless the context is empty, unless (context, sourceText, "") already exists or unless we already dropped the comment of (context, sourceText, comment0). */ if ( comment.isEmpty() || context.isEmpty() || contains(context, sourceText, "") || !tor.findMessage(context, sourceText, "").translation() .isNull() ) { tor.insert( m.key() ); } else { tor.insert( TranslatorMessage(context, sourceText, "", QString(), -1, translations) ); //filename and lineNumbers will be ignored from now. } } } } } bool saved = tor.save( filename, mode ); if ( saved && verbose ) fprintf( stderr, " %d finished, %d unfinished and %d untranslated messages\n", finished, unfinished, untranslated ); return saved; } QString MetaTranslator::languageCode() const { return m_language; } QString MetaTranslator::sourceLanguageCode() const { return m_sourceLanguage; } void MetaTranslator::setLanguageCode(const QString &languageCode) { m_language = languageCode; } void MetaTranslator::setSourceLanguageCode(const QString &languageCode) { m_sourceLanguage = languageCode; } bool MetaTranslator::contains( const char *context, const char *sourceText, const char *comment ) const { return mm.contains(MetaTranslatorMessage(context, sourceText, comment, QString(), 0)); } MetaTranslatorMessage MetaTranslator::find( const char *context, const char *sourceText, const char *comment ) const { QMap::const_iterator it = mm.constFind(MetaTranslatorMessage(context, sourceText, comment, QString(), 0)); return (it == mm.constEnd() ? MetaTranslatorMessage() : it.key()); } MetaTranslatorMessage MetaTranslator::find(const char *context, const char *comment, const QString &fileName, int lineNumber) const { if (lineNumber >= 0 && !fileName.isEmpty()) { MetaTranslatorMessage m; for (QMap::const_iterator it = mm.constBegin(); it != mm.constEnd(); ++it) { m = it.key(); int delta = qstrcmp(m.context(), context); if (delta == 0) { delta = qstrcmp(m.comment(), comment); if (delta == 0) { delta = QString::compare(m.fileName(), fileName); if (delta == 0) { delta = m.lineNumber() - lineNumber; if (delta == 0) return m; } } } } } return MetaTranslatorMessage(); } void MetaTranslator::insert( const MetaTranslatorMessage& m ) { int pos = mm.count(); if (mm.contains(m)) { pos = mm.value(m); mm.remove(m); } mm.insert(m, pos); } void MetaTranslator::stripObsoleteMessages() { TMM newmm; TMM::Iterator m = mm.begin(); while ( m != mm.end() ) { if ( m.key().type() != MetaTranslatorMessage::Obsolete ) newmm.insert( m.key(), *m ); ++m; } mm = newmm; } void MetaTranslator::stripEmptyContexts() { TMM newmm; TMM::Iterator m = mm.begin(); while ( m != mm.end() ) { if ( QByteArray(m.key().sourceText()) == ContextComment ) { TMM::Iterator n = m; ++n; // the context comment is followed by other messages if ( n != newmm.end() && qstrcmp(m.key().context(), n.key().context()) == 0 ) newmm.insert( m.key(), *m ); } else { newmm.insert( m.key(), *m ); } ++m; } mm = newmm; } void MetaTranslator::makeFileNamesAbsolute(const QDir &oldPath) { TMM newmm; for (TMM::iterator m = mm.begin(); m != mm.end(); ++m) { MetaTranslatorMessage msg = m.key(); QString fileName = m.key().fileName(); QFileInfo fi (fileName); if (fi.isRelative()) { fileName = oldPath.absoluteFilePath(fileName); } msg.setFileName(fileName); newmm.insert(msg, m.value()); } mm = newmm; } void MetaTranslator::setCodec( const char *name ) { const int latin1 = 4; codecName = name; codec = QTextCodec::codecForName( name ); if ( codec == 0 || codec->mibEnum() == latin1 ) codec = 0; } QString MetaTranslator::toUnicode( const char *str, bool utf8 ) const { if ( utf8 ) return QString::fromUtf8( str ); else if ( codec == 0 ) return QString( str ); else return codec->toUnicode( str ); } QList MetaTranslator::messages() const { int n = mm.count(); TMM::ConstIterator *t = new TMM::ConstIterator[n + 1]; TMM::ConstIterator m; for ( m = mm.begin(); m != mm.end(); ++m ) t[*m] = m; QList val; for ( int i = 0; i < n; i++ ) val.append( t[i].key() ); delete[] t; return val; } QList MetaTranslator::translatedMessages() const { QList val; TMM::ConstIterator m; for ( m = mm.begin(); m != mm.end(); ++m ) { if ( m.key().type() == MetaTranslatorMessage::Finished ) val.append( m.key() ); } return val; } // the grammatical numerus is the number of plural forms + singular forms. // i.e english has two forms: singular og plural. // and polish has three forms: // 1. singular (1), // 2. plural form 1 (numbers that ends with 2,3,4 except 12,13,14) // 3. plural form 2 (all others) // Thus, english returns 2, polish returns 3 int MetaTranslator::grammaticalNumerus(QLocale::Language language, QLocale::Country country) { QStringList forms; getNumerusInfo(language, country, &forms); return forms.count(); } QStringList MetaTranslator::normalizedTranslations(const MetaTranslatorMessage& m, QLocale::Language language, QLocale::Country country) { QStringList translations = m.translations(); int numTranslations = 1; if (m.isPlural()) { numTranslations = grammaticalNumerus(language, country); } // make sure that the stringlist always have the size of the language's current numerus, or 1 if its not plural if (translations.count() > numTranslations) { for (int i = translations.count(); i > numTranslations; --i) translations.removeLast(); } else if (translations.count() < numTranslations) { for (int i = translations.count(); i < numTranslations; ++i) translations << QString(); } return translations; } PyQt-x11-gpl-4.11.4/pylupdate/metatranslator.h0000644000076500000240000001423612536324426021201 0ustar philstaff00000000000000/********************************************************************** ** Copyright (C) 2002-2007 Detlev Offenbach ** ** This is a modified version of lupdate. The original is part of Qt-Linguist. ** The copyright of the original file can be found below. ** ** This version is modified to handle python sources. ** ** The file is provided AS IS with NO WARRANTY OF ANY KIND, ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE. ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef METATRANSLATOR_H #define METATRANSLATOR_H #include #include #include #include #include #include #if !defined(QT_BEGIN_NAMESPACE) #define QT_BEGIN_NAMESPACE #define QT_END_NAMESPACE #endif QT_BEGIN_NAMESPACE class QTextCodec; QT_END_NAMESPACE class MetaTranslatorMessage : public TranslatorMessage { public: enum Type { Unfinished, Finished, Obsolete }; MetaTranslatorMessage(); MetaTranslatorMessage( const char *context, const char *sourceText, const char *comment, const QString &fileName, int lineNumber, const QStringList& translations = QStringList(), bool utf8 = false, Type type = Unfinished, bool plural = false ); MetaTranslatorMessage( const MetaTranslatorMessage& m ); MetaTranslatorMessage& operator=( const MetaTranslatorMessage& m ); void setType( Type nt ) { ty = nt; } Type type() const { return ty; } bool utf8() const { return utfeight; } bool isPlural() const { return m_plural; } void setPlural(bool isplural) { m_plural = isplural; } bool operator==( const MetaTranslatorMessage& m ) const; bool operator!=( const MetaTranslatorMessage& m ) const { return !operator==( m ); } bool operator<( const MetaTranslatorMessage& m ) const; bool operator<=( const MetaTranslatorMessage& m ) { return !operator>( m ); } bool operator>( const MetaTranslatorMessage& m ) const { return this->operator<( m ); } bool operator>=( const MetaTranslatorMessage& m ) const { return !operator<( m ); } private: bool utfeight; Type ty; bool m_plural; }; class MetaTranslator { public: MetaTranslator(); MetaTranslator( const MetaTranslator& tor ); MetaTranslator& operator=( const MetaTranslator& tor ); void clear(); bool load( const QString& filename ); bool save( const QString& filename ) const; bool release( const QString& filename, bool verbose = false, bool ignoreUnfinished = false, Translator::SaveMode mode = Translator::Stripped ) const; bool contains( const char *context, const char *sourceText, const char *comment ) const; MetaTranslatorMessage find( const char *context, const char *sourceText, const char *comment ) const; MetaTranslatorMessage find(const char *context, const char *comment, const QString &fileName, int lineNumber) const; void insert( const MetaTranslatorMessage& m ); void stripObsoleteMessages(); void stripEmptyContexts(); void setCodec( const char *name ); // kill me void setCodecForTr( const char *name ) { setCodec(name); } QTextCodec *codecForTr() const { return codec; } QString toUnicode( const char *str, bool utf8 ) const; QString languageCode() const; QString sourceLanguageCode() const; static void languageAndCountry(const QString &languageCode, QLocale::Language *lang, QLocale::Country *country); void setLanguageCode(const QString &languageCode); void setSourceLanguageCode(const QString &languageCode); QList messages() const; QList translatedMessages() const; static int grammaticalNumerus(QLocale::Language language, QLocale::Country country); static QStringList normalizedTranslations(const MetaTranslatorMessage& m, QLocale::Language lang, QLocale::Country country); private: void makeFileNamesAbsolute(const QDir &oldPath); typedef QMap TMM; typedef QMap TMMInv; TMM mm; QByteArray codecName; QTextCodec *codec; QString m_language; // A string beginning with a 2 or 3 letter language code (ISO 639-1 or ISO-639-2), // followed by the optional country variant to distinguist between country-specific variations // of the language. The language code and country code are always separated by '_' // Note that the language part can also be a 3-letter ISO 639-2 code. // Legal examples: // 'pt' portuguese, assumes portuguese from portugal // 'pt_BR' Brazilian portuguese (ISO 639-1 language code) // 'por_BR' Brazilian portuguese (ISO 639-2 language code) QString m_sourceLanguage; }; /* This is a quick hack. The proper way to handle this would be to extend MetaTranslator's interface. */ #define ContextComment "QT_LINGUIST_INTERNAL_CONTEXT_COMMENT" #endif PyQt-x11-gpl-4.11.4/pylupdate/numberh.cpp0000644000076500000240000001762112536324426020135 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http://www.trolltech.com/products/qt/opensource.html ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://www.trolltech.com/products/qt/licensing.html or contact the ** sales department at sales@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "metatranslator.h" #include #include #include #include #include typedef QMap TMM; typedef QList TML; static bool isDigitFriendly( int c ) { return ispunct((uchar)c) || isspace((uchar)c); } static int numberLength( const char *s ) { int i = 0; if ( isdigit((uchar)s[0]) ) { do { i++; } while (isdigit((uchar)s[i]) || (isDigitFriendly(s[i]) && (isdigit((uchar)s[i + 1]) || (isDigitFriendly(s[i + 1]) && isdigit((uchar)s[i + 2]))))); } return i; } /* Returns a version of 'key' where all numbers have been replaced by zeroes. If there were none, returns "". */ static QByteArray zeroKey( const char *key ) { QByteArray zeroed; zeroed.resize( int(strlen(key)) + 1 ); char *z = zeroed.data(); int i = 0, j = 0; int len; bool metSomething = false; while ( key[i] != '\0' ) { len = numberLength( key + i ); if ( len > 0 ) { i += len; z[j++] = '0'; metSomething = true; } else { z[j++] = key[i++]; } } z[j] = '\0'; if ( metSomething ) return zeroed; else return ""; } static QString translationAttempt( const QString& oldTranslation, const char *oldSource, const char *newSource ) { int p = zeroKey( oldSource ).count( '0' ); int oldSourceLen = qstrlen( oldSource ); QString attempt; QStringList oldNumbers; QStringList newNumbers; QVector met( p ); QVector matchedYet( p ); int i, j; int k = 0, ell, best; int m, n; int pass; /* This algorithm is hard to follow, so we'll consider an example all along: oldTranslation is "XeT 3.0", oldSource is "TeX 3.0" and newSource is "XeT 3.1". First, we set up two tables: oldNumbers and newNumbers. In our example, oldNumber[0] is "3.0" and newNumber[0] is "3.1". */ for ( i = 0, j = 0; i < oldSourceLen; i++, j++ ) { m = numberLength( oldSource + i ); n = numberLength( newSource + j ); if ( m > 0 ) { oldNumbers.append( QByteArray(oldSource + i, m + 1) ); newNumbers.append( QByteArray(newSource + j, n + 1) ); i += m; j += n; met[k] = false; matchedYet[k] = 0; k++; } } /* We now go over the old translation, "XeT 3.0", one letter at a time, looking for numbers found in oldNumbers. Whenever such a number is met, it is replaced with its newNumber equivalent. In our example, the "3.0" of "XeT 3.0" becomes "3.1". */ for ( i = 0; i < (int) oldTranslation.length(); i++ ) { attempt += oldTranslation[i]; for ( k = 0; k < p; k++ ) { if ( oldTranslation[i] == oldNumbers[k][matchedYet[k]] ) matchedYet[k]++; else matchedYet[k] = 0; } /* Let's find out if the last character ended a match. We make two passes over the data. In the first pass, we try to match only numbers that weren't matched yet; if that fails, the second pass does the trick. This is useful in some suspicious cases, flagged below. */ for ( pass = 0; pass < 2; pass++ ) { best = p; // an impossible value for ( k = 0; k < p; k++ ) { if ( (!met[k] || pass > 0) && matchedYet[k] == (int) oldNumbers[k].length() && numberLength(oldTranslation.toLatin1().constData() + (i + 1) - matchedYet[k]) == matchedYet[k] ) { // the longer the better if ( best == p || matchedYet[k] > matchedYet[best] ) best = k; } } if ( best != p ) { attempt.truncate( attempt.length() - matchedYet[best] ); attempt += newNumbers[best]; met[best] = true; for ( k = 0; k < p; k++ ) matchedYet[k] = 0; break; } } } /* We flag two kinds of suspicious cases. They are identified as such with comments such as "{2000?}" at the end. Example of the first kind: old source text "TeX 3.0" translated as "XeT 2.0" is flagged "TeX 2.0 {3.0?}", no matter what the new text is. */ for ( k = 0; k < p; k++ ) { if ( !met[k] ) attempt += QString( " {" ) + newNumbers[k] + QString( "?}" ); } /* Example of the second kind: "1 of 1" translated as "1 af 1", with new source text "1 of 2", generates "1 af 2 {1 or 2?}" because it's not clear which of "1 af 2" and "2 af 1" is right. */ for ( k = 0; k < p; k++ ) { for ( ell = 0; ell < p; ell++ ) { if ( k != ell && oldNumbers[k] == oldNumbers[ell] && newNumbers[k] < newNumbers[ell] ) attempt += QString( " {" ) + newNumbers[k] + QString( " or " ) + newNumbers[ell] + QString( "?}" ); } } return attempt; } /* Augments a MetaTranslator with translations easily derived from similar existing (probably obsolete) translations. For example, if "TeX 3.0" is translated as "XeT 3.0" and "TeX 3.1" has no translation, "XeT 3.1" is added to the translator and is marked Unfinished. Returns the number of additional messages that this heuristic translated. */ int applyNumberHeuristic( MetaTranslator *tor ) { TMM translated, untranslated; TMM::Iterator t, u; TML all = tor->messages(); TML::Iterator it; int inserted = 0; for ( it = all.begin(); it != all.end(); ++it ) { bool hasTranslation = (*it).isTranslated(); if ( (*it).type() == MetaTranslatorMessage::Unfinished ) { if ( !hasTranslation ) untranslated.insert(QByteArray((*it).context()) + "\n" + (*it).sourceText() + "\n" + (*it).comment(), *it); } else if ( hasTranslation && (*it).translations().count() == 1 ) { translated.insert( zeroKey((*it).sourceText()), *it ); } } for ( u = untranslated.begin(); u != untranslated.end(); ++u ) { t = translated.find( zeroKey((*u).sourceText()) ); if ( t != translated.end() && !t.key().isEmpty() && qstrcmp((*t).sourceText(), (*u).sourceText()) != 0 ) { MetaTranslatorMessage m( *u ); m.setTranslation(translationAttempt((*t).translation(), (*t).sourceText(), (*u).sourceText())); tor->insert( m ); inserted++; } } return inserted; } PyQt-x11-gpl-4.11.4/pylupdate/proparser.cpp0000644000076500000240000001653312536324426020513 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "proparser.h" #include #include #include #include #include #include #ifdef Q_OS_UNIX #include #endif #ifdef Q_OS_WIN32 #define QT_POPEN _popen #else #define QT_POPEN popen #endif QString loadFile( const QString &fileName ) { QFile file( fileName ); if ( !file.open(QIODevice::ReadOnly) ) { fprintf( stderr, "error: Cannot load '%s': %s\n", file.fileName().toLatin1().constData(), file.errorString().toLatin1().constData() ); return QString(); } QTextStream in( &file ); return in.readAll(); } QMap proFileTagMap( const QString& text ) { QString t = text; QMap tagMap; bool stillProcess = true; // If include() has a $$tag then we need to reprocess while (stillProcess) { /* Strip any commments before we try to include. We still need to do it after we include to make sure the included file does not have comments */ t.replace( QRegExp(QString("#[^\n]*\n")), QString(" ") ); /* Process include() commands. $$PWD is a special case so we have to change it while we know where the included file is. */ QRegExp callToInclude("include\\s*\\(\\s*([^()\\s]+)\\s*\\)"); int i = 0; while ( (i = callToInclude.indexIn(t, i)) != -1 ) { bool doneWithVar = false; QString fileName = callToInclude.cap(1); QString after = fileName.replace("$$PWD", QDir::currentPath()); if (!tagMap.isEmpty() && after.contains("$$")) { QRegExp var( "\\$\\$[({]?([a-zA-Z0-9_]+)[)}]?" ); int ii = 0; while ((ii = after.indexOf(var, ii)) != -1) { if (tagMap.contains(var.cap(1))) { after.replace(ii, var.cap(0).length(), tagMap[var.cap(1)]); } else { // Couldn't find it doneWithVar = true; break; } } } if (doneWithVar || !after.contains("$$")) { after = loadFile(after); QFileInfo fi(callToInclude.cap(1)); after.replace("$$PWD", fi.path()); t.replace( i, callToInclude.matchedLength(), after ); } i += after.length(); } /* Strip comments, merge lines ending with backslash, add spaces around '=' and '+=', replace '\n' with ';', and simplify white spaces. */ t.replace( QRegExp(QString("#[^\n]*\n")), QString(" ") ); t.replace( QRegExp(QString("\\\\[^\n\\S]*\n")), QString(" ") ); t.replace( "=", QString(" = ") ); t.replace( "+ =", QString(" += ") ); t.replace( "\n", QString(";") ); t.replace( "\r", QString("") ); // remove carriage return t = t.simplified(); /* Populate tagMap with 'key = value' entries. */ QStringList lines = t.split(';', QString::SkipEmptyParts); QStringList::Iterator line; for ( line = lines.begin(); line != lines.end(); ++line ) { QStringList toks = (*line).split(' ', QString::SkipEmptyParts); if ( toks.count() >= 3 && (toks[1] == QString("=") || toks[1] == QString("+=") || toks[1] == QString("*=")) ) { QString tag = toks.first(); int k = tag.lastIndexOf( QChar(':') ); // as in 'unix:' if ( k != -1 ) tag = tag.mid( k + 1 ); toks.erase( toks.begin() ); QString action = toks.first(); toks.erase( toks.begin() ); if ( tagMap.contains(tag) ) { if ( action == QString("=") ) tagMap.insert( tag, toks.join(" ") ); else tagMap[tag] += QChar( ' ' ) + toks.join( " " ); } else { tagMap[tag] = toks.join( " " ); } } } /* Expand $$variables within the 'value' part of a 'key = value' pair. */ QRegExp var( "\\$\\$[({]?([a-zA-Z0-9_]+)[)}]?" ); QMap::Iterator it; for ( it = tagMap.begin(); it != tagMap.end(); ++it ) { int i = 0; while ( (i = var.indexIn((*it), i)) != -1 ) { int len = var.matchedLength(); QString invocation = var.cap(1); QString after; if ( invocation == "system" ) { // skip system(); it will be handled in the next pass ++i; } else { if ( tagMap.contains(invocation) ) after = tagMap[invocation]; else if (invocation.toLower() == "pwd") after = QDir::currentPath(); (*it).replace( i, len, after ); i += after.length(); } } } /* Execute system() calls. */ QRegExp callToSystem( "\\$\\$system\\s*\\(([^()]*)\\)" ); for ( it = tagMap.begin(); it != tagMap.end(); ++it ) { int i = 0; while ( (i = callToSystem.indexIn((*it), i)) != -1 ) { /* This code is stolen from qmake's project.cpp file. Ideally we would use the same parser, so we wouldn't have this code duplication. */ QString after; char buff[256]; FILE *proc = QT_POPEN( callToSystem.cap(1).toLatin1().constData(), "r" ); while ( proc && !feof(proc) ) { int read_in = int(fread( buff, 1, 255, proc )); if ( !read_in ) break; for ( int i = 0; i < read_in; i++ ) { if ( buff[i] == '\n' || buff[i] == '\t' ) buff[i] = ' '; } buff[read_in] = '\0'; after += buff; } (*it).replace( i, callToSystem.matchedLength(), after ); i += after.length(); } } stillProcess = callToInclude.indexIn(t) != -1; } return tagMap; } PyQt-x11-gpl-4.11.4/pylupdate/proparser.h0000644000076500000240000000203712536324426020152 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef PROPARSER_H #define PROPARSER_H #include #include QMap proFileTagMap( const QString& text ); #endif PyQt-x11-gpl-4.11.4/pylupdate/pylupdate.sbf0000644000076500000240000000210412536324426020462 0ustar philstaff00000000000000# This is the build file for pylupdate for Qt v4. # # Copyright (c) 2008 # Riverbank Computing Limited # # This file is part of PyQt. # # This copy of PyQt 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, or (at your option) any later # version. # # PyQt is supplied 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 # PyQt; see the file LICENSE. If not, write to the Free Software Foundation, # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. target = pylupdate4 sources = fetchtr.cpp merge.cpp numberh.cpp sametexth.cpp main.cpp metatranslator.cpp proparser.cpp translator.cpp simtexth.cpp headers = metatranslator.h proparser.h simtexth.h moc_headers = translator.h PyQt-x11-gpl-4.11.4/pylupdate/sametexth.cpp0000644000076500000240000000573412536324426020501 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http://www.trolltech.com/products/qt/opensource.html ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://www.trolltech.com/products/qt/licensing.html or contact the ** sales department at sales@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "metatranslator.h" #include #include typedef QMap TMM; typedef QList TML; /* Augments a MetaTranslator with trivially derived translations. For example, if "Enabled:" is consistendly translated as "Eingeschaltet:" no matter the context or the comment, "Eingeschaltet:" is added as the translation of any untranslated "Enabled:" text and is marked Unfinished. Returns the number of additional messages that this heuristic translated. */ int applySameTextHeuristic( MetaTranslator *tor ) { TMM translated; TMM avoid; TMM::Iterator t; TML untranslated; TML::Iterator u; TML all = tor->messages(); TML::Iterator it; int inserted = 0; for ( it = all.begin(); it != all.end(); ++it ) { if ( (*it).type() == MetaTranslatorMessage::Unfinished ) { if ( !(*it).isTranslated() ) untranslated.append( *it ); } else { QByteArray key = (*it).sourceText(); t = translated.find( key ); if ( t != translated.end() ) { /* The same source text is translated at least two different ways. Do nothing then. */ if ( (*t).translations() != (*it).translations() ) { translated.remove( key ); avoid.insert( key, *it ); } } else if ( !avoid.contains(key) && (*it).isTranslated() ) { translated.insert( key, *it ); } } } for ( u = untranslated.begin(); u != untranslated.end(); ++u ) { QByteArray key = (*u).sourceText(); t = translated.find( key ); if ( t != translated.end() ) { MetaTranslatorMessage m( *u ); m.setTranslations( (*t).translations() ); tor->insert( m ); inserted++; } } return inserted; } PyQt-x11-gpl-4.11.4/pylupdate/simtexth.cpp0000644000076500000240000002176612536324426020347 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http://www.trolltech.com/products/qt/opensource.html ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://www.trolltech.com/products/qt/licensing.html or contact the ** sales department at sales@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "simtexth.h" #include "metatranslator.h" #include #include #include typedef QList TML; /* How similar are two texts? The approach used here relies on co-occurrence matrices and is very efficient. Let's see with an example: how similar are "here" and "hither"? The co-occurrence matrix M for "here" is M[h,e] = 1, M[e,r] = 1, M[r,e] = 1, and 0 elsewhere; the matrix N for "hither" is N[h,i] = 1, N[i,t] = 1, ..., N[h,e] = 1, N[e,r] = 1, and 0 elsewhere. The union U of both matrices is the matrix U[i,j] = max { M[i,j], N[i,j] }, and the intersection V is V[i,j] = min { M[i,j], N[i,j] }. The score for a pair of texts is score = (sum of V[i,j] over all i, j) / (sum of U[i,j] over all i, j), a formula suggested by Arnt Gulbrandsen. Here we have score = 2 / 6, or one third. The implementation differs from this in a few details. Most importantly, repetitions are ignored; for input "xxx", M[x,x] equals 1, not 2. */ /* Every character is assigned to one of 20 buckets so that the co-occurrence matrix requires only 20 * 20 = 400 bits, not 256 * 256 = 65536 bits or even more if we want the whole Unicode. Which character falls in which bucket is arbitrary. The second half of the table is a replica of the first half, because of laziness. */ static const int indexOf[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ! " # $ % & ' ( ) * + , - . / 0, 2, 6, 7, 10, 12, 15, 19, 2, 6, 7, 10, 12, 15, 19, 0, // 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 1, 3, 4, 5, 8, 9, 11, 13, 14, 16, 2, 6, 7, 10, 12, 15, // @ A B C D E F G H I J K L M N O 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6, 10, 11, 12, 13, 14, // P Q R S T U V W X Y Z [ \ ] ^ _ 15, 12, 16, 17, 18, 19, 2, 10, 15, 7, 19, 2, 6, 7, 10, 0, // ` a b c d e f g h i j k l m n o 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6, 10, 11, 12, 13, 14, // p q r s t u v w x y z { | } ~ 15, 12, 16, 17, 18, 19, 2, 10, 15, 7, 19, 2, 6, 7, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 7, 10, 12, 15, 19, 2, 6, 7, 10, 12, 15, 19, 0, 1, 3, 4, 5, 8, 9, 11, 13, 14, 16, 2, 6, 7, 10, 12, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6, 10, 11, 12, 13, 14, 15, 12, 16, 17, 18, 19, 2, 10, 15, 7, 19, 2, 6, 7, 10, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6, 10, 11, 12, 13, 14, 15, 12, 16, 17, 18, 19, 2, 10, 15, 7, 19, 2, 6, 7, 10, 0 }; /* The entry bitCount[i] (for i between 0 and 255) is the number of bits used to represent i in binary. */ static const int bitCount[256] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8 }; struct CoMatrix { /* The matrix has 20 * 20 = 400 entries. This requires 50 bytes, or 13 words. Some operations are performed on words for more efficiency. */ union { quint8 b[52]; quint32 w[13]; }; CoMatrix() { memset( b, 0, 52 ); } CoMatrix( const char *text ) { char c = '\0', d; memset( b, 0, 52 ); /* The Knuth books are not in the office only for show; they help make loops 30% faster and 20% as readable. */ while ( (d = *text) != '\0' ) { setCoocc( c, d ); if ( (c = *++text) != '\0' ) { setCoocc( d, c ); text++; } } } void setCoocc( char c, char d ) { int k = indexOf[(uchar) c] + 20 * indexOf[(uchar) d]; b[k >> 3] |= k & 0x7; } int worth() const { int w = 0; for ( int i = 0; i < 50; i++ ) w += bitCount[b[i]]; return w; } }; static inline CoMatrix reunion( const CoMatrix& m, const CoMatrix& n ) { CoMatrix p; for ( int i = 0; i < 13; i++ ) p.w[i] = m.w[i] | n.w[i]; return p; } static inline CoMatrix intersection( const CoMatrix& m, const CoMatrix& n ) { CoMatrix p; for ( int i = 0; i < 13; i++ ) p.w[i] = m.w[i] & n.w[i]; return p; } StringSimilarityMatcher::StringSimilarityMatcher(const QString &stringToMatch) { m_cm = new CoMatrix( stringToMatch.toLatin1().constData() ); m_length = stringToMatch.length(); } int StringSimilarityMatcher::getSimilarityScore(const QString &strCandidate) { CoMatrix cmTarget( strCandidate.toLatin1().constData() ); int targetLen = strCandidate.length(); int delta = qAbs( m_length - targetLen ); int score = ( (intersection(*m_cm, cmTarget).worth() + 1) << 10 ) / ( reunion(*m_cm, cmTarget).worth() + (delta << 1) + 1 ); return score; } StringSimilarityMatcher::~StringSimilarityMatcher() { delete m_cm; } /** * Checks how similar two strings are. * The return value is the score, and a higher score is more similar than one with a low score. * Linguist considers a score over 190 to be a good match. * \sa StringSimilarityMatcher */ int getSimilarityScore(const QString &str1, const char* str2) { CoMatrix cmTarget( str2 ); int targetLen = qstrlen( str2 ); CoMatrix cm( str1.toLatin1().constData() ); int delta = qAbs( (int) str1.length() - targetLen ); int score = ( (intersection(cm, cmTarget).worth() + 1) << 10 ) / ( reunion(cm, cmTarget).worth() + (delta << 1) + 1 ); return score; } CandidateList similarTextHeuristicCandidates( const MetaTranslator *tor, const char *text, int maxCandidates ) { QList scores; CandidateList candidates; TML all = tor->translatedMessages(); foreach ( MetaTranslatorMessage mtm, all ) { if ( mtm.type() == MetaTranslatorMessage::Unfinished || mtm.translation().isEmpty() ) continue; QString s = tor->toUnicode( mtm.sourceText(), mtm.utf8() ); int score = getSimilarityScore(s, text); if ( (int) candidates.count() == maxCandidates && score > scores[maxCandidates - 1] ) candidates.removeAt( candidates.size()-1 ); if ( (int) candidates.count() < maxCandidates && score >= textSimilarityThreshold ) { Candidate cand( s, mtm.translation() ); int i; for ( i = 0; i < (int) candidates.size(); i++ ) { if ( score >= scores.at(i) ) { if ( score == scores.at(i) ) { if ( candidates.at(i) == cand ) goto continue_outer_loop; } else { break; } } } scores.insert( i, score ); candidates.insert( i, cand ); } continue_outer_loop: ; } return candidates; } PyQt-x11-gpl-4.11.4/pylupdate/simtexth.h0000644000076500000240000000456212536324426020007 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http://www.trolltech.com/products/qt/opensource.html ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://www.trolltech.com/products/qt/licensing.html or contact the ** sales department at sales@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef SIMTEXTH_H #define SIMTEXTH_H const int textSimilarityThreshold = 190; #include #include class MetaTranslator; struct Candidate { QString source; QString target; Candidate() { } Candidate( const QString& source0, const QString& target0 ) : source( source0 ), target( target0 ) { } }; inline bool operator==( const Candidate& c, const Candidate& d ) { return c.target == d.target && c.source == d.source; } inline bool operator!=( const Candidate& c, const Candidate& d ) { return !operator==( c, d ); } typedef QList CandidateList; struct CoMatrix; /** * This class is more efficient for searching through a large array of candidate strings, since we only * have to construct the CoMatrix for the \a stringToMatch once, * after that we just call getSimilarityScore(strCandidate). * \sa getSimilarityScore */ class StringSimilarityMatcher { public: StringSimilarityMatcher(const QString &stringToMatch); ~StringSimilarityMatcher(); int getSimilarityScore(const QString &strCandidate); private: CoMatrix *m_cm; int m_length; }; int getSimilarityScore(const QString &str1, const char* str2); CandidateList similarTextHeuristicCandidates( const MetaTranslator *tor, const char *text, int maxCandidates ); #endif PyQt-x11-gpl-4.11.4/pylupdate/translator.cpp0000644000076500000240000010461612536324426020667 0ustar philstaff00000000000000/********************************************************************** ** Copyright (C) 2002-2007 Detlev Offenbach ** ** This is a modified version of lupdate. The original is part of Qt-Linguist. ** The copyright of the original file can be found below. ** ** This version is modified to handle python sources. ** ** The file is provided AS IS with NO WARRANTY OF ANY KIND, ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE. ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "translator.h" #ifndef QT_NO_TRANSLATION #include "qfileinfo.h" #include "qstring.h" #include "qcoreapplication.h" #include "qdatastream.h" #include "qfile.h" #include "qmap.h" #include "qalgorithms.h" #include "qhash.h" #include "qglobal.h" // most of the headers below are already included in qplatformdefs.h // also this lacks Large File support but that's probably irrelevant #if defined(QT_USE_MMAP) // for mmap #include #include #endif #include /* $ mcookie 3cb86418caef9c95cd211cbf60a1bddd $ */ // magic number for the file static const int MagicLength = 16; static const uchar magic[MagicLength] = { 0x3c, 0xb8, 0x64, 0x18, 0xca, 0xef, 0x9c, 0x95, 0xcd, 0x21, 0x1c, 0xbf, 0x60, 0xa1, 0xbd, 0xdd }; static uint elfHash(const char * name) { const uchar *k; uint h = 0; uint g; if (name) { k = (const uchar *) name; while (*k) { h = (h << 4) + *k++; if ((g = (h & 0xf0000000)) != 0) h ^= g >> 24; h &= ~g; } } if (!h) h = 1; return h; } extern bool qt_detectRTLLanguage(); class TranslatorPrivate { public: struct Offset { Offset() : h(0), o(0) { } Offset(const TranslatorMessage& m, int offset) : h(m.hash()), o(offset) { } bool operator<(const Offset &other) const { return (h != other.h) ? h < other.h : o < other.o; } bool operator==(const Offset &other) const { return h == other.h && o == other.o; } uint h; uint o; }; enum { Contexts = 0x2f, Hashes = 0x42, Messages = 0x69 }; TranslatorPrivate(Translator *qq) : q(qq), unmapPointer(0), unmapLength(0) {} // Translator must finalize this before deallocating it Translator *q; // for mmap'ed files, this is what needs to be unmapped. char *unmapPointer; unsigned int unmapLength; // for squeezed but non-file data, this is what needs to be deleted QByteArray messageArray; QByteArray offsetArray; QByteArray contextArray; #ifndef QT_NO_TRANSLATION_BUILDER QMap messages; #endif bool do_load(const uchar *data, int len); }; /*! \class Translator \brief The Translator class provides internationalization support for text output. \ingroup i18n \ingroup environment \mainclass An object of this class contains a set of TranslatorMessage objects, each of which specifies a translation from a source language to a target language. Translator provides functions to look up translations, add new ones, remove them, load and save them, etc. The most common use of Translator is to: load a translator file created with \l{Qt Linguist Manual}, install it using QCoreApplication::installTranslator(), and use it via QObject::tr(). For example: \code int main(int argc, char ** argv) { QCoreApplication app(argc, argv); Translator translator(0); translator.load("french.qm", "."); app.installTranslator(&translator); MyWidget m; app.setMainWidget(&m); m.show(); return app.exec(); } \endcode Note that the translator must be created \e before the application's main window. Most applications will never need to do anything else with this class. The other functions provided by this class are useful for applications that work on translator files. We call a translation a "messsage". For this reason, translation files are sometimes referred to as "message files". It is possible to lookup a translation using findMessage() (as tr() and QCoreApplication::translate() do) and contains(), to insert a new translation messsage using insert(), and to remove one using remove(). Translation tools often need more information than the bare source text and translation, for example, context information to help the translator. But end-user programs that are using translations usually only need lookup. To cater for these different needs, Translator can use stripped translator files that use the minimum of memory and which support little more functionality than findMessage(). Thus, load() may not load enough information to make anything more than findMessage() work. save() has an argument indicating whether to save just this minimum of information or to save everything. "Everything" means that for each translation item the following information is kept: \list \i The \e {translated text} - the return value from tr(). \i The input key: \list \i The \e {source text} - usually the argument to tr(). \i The \e context - usually the class name for the tr() caller. \i The \e comment - a comment that helps disambiguate different uses of the same text in the same context. \endlist \endlist The minimum for each item is just the information necessary for findMessage() to return the right text. This may include the source, context and comment, but usually it is just a hash value and the translated text. For example, the "Cancel" in a dialog might have "Anuluj" when the program runs in Polish (in this case the source text would be "Cancel"). The context would (normally) be the dialog's class name; there would normally be no comment, and the translated text would be "Anuluj". But it's not always so simple. The Spanish version of a printer dialog with settings for two-sided printing and binding would probably require both "Activado" and "Activada" as translations for "Enabled". In this case the source text would be "Enabled" in both cases, and the context would be the dialog's class name, but the two items would have disambiguating comments such as "two-sided printing" for one and "binding" for the other. The comment enables the translator to choose the appropriate gender for the Spanish version, and enables Qt to distinguish between translations. Note that when Translator loads a stripped file, most functions do not work. The functions that do work with stripped files are explicitly documented as such. \sa TranslatorMessage QCoreApplication::installTranslator() QCoreApplication::removeTranslator() QObject::tr() QCoreApplication::translate() */ /*! \enum Translator::SaveMode This enum type defines how Translator writes translation files. There are two modes: \value Everything files are saved with all available information \value Stripped files are saved with just enough information for end-user applications Note that when Translator loads a stripped file, most functions do not work. The functions that do work with stripped files are explicitly documented as such. */ /*! Constructs an empty message file object with parent \a parent that is not connected to any file. */ Translator::Translator(QObject * parent) : QTranslator(parent) { d = new TranslatorPrivate(this); } /*! Destroys the object and frees any allocated resources. */ Translator::~Translator() { if (QCoreApplication::instance()) QCoreApplication::instance()->removeTranslator(this); clear(); delete d; } /*! Loads \a filename + \a suffix (".qm" if the \a suffix is not specified), which may be an absolute file name or relative to \a directory. The previous contents of this translator object is discarded. If the file name does not exist, other file names are tried in the following order: \list 1 \i File name without \a suffix appended. \i File name with text after a character in \a search_delimiters stripped ("_." is the default for \a search_delimiters if it is an empty string) and \a suffix. \i File name stripped without \a suffix appended. \i File name stripped further, etc. \endlist For example, an application running in the fr_CA locale (French-speaking Canada) might call load("foo.fr_ca", "/opt/foolib"). load() would then try to open the first existing readable file from this list: \list 1 \i /opt/foolib/foo.fr_ca.qm \i /opt/foolib/foo.fr_ca \i /opt/foolib/foo.fr.qm \i /opt/foolib/foo.fr \i /opt/foolib/foo.qm \i /opt/foolib/foo \endlist \sa save() */ bool Translator::load(const QString & filename, const QString & directory, const QString & search_delimiters, const QString & suffix) { clear(); QString prefix; if (filename[0] == QLatin1Char('/') #ifdef Q_WS_WIN || (filename[0].isLetter() && filename[1] == QLatin1Char(':')) || filename[0] == QLatin1Char('\\') #endif ) prefix = QLatin1String(""); else prefix = directory; if (prefix.length()) { if (prefix[int(prefix.length()-1)] != QLatin1Char('/')) prefix += QLatin1Char('/'); } QString fname = filename; QString realname; QString delims; delims = search_delimiters.isNull() ? QString::fromLatin1("_.") : search_delimiters; for (;;) { QFileInfo fi; realname = prefix + fname + (suffix.isNull() ? QString::fromLatin1(".qm") : suffix); fi.setFile(realname); if (fi.isReadable()) break; realname = prefix + fname; fi.setFile(realname); if (fi.isReadable()) break; int rightmost = 0; for (int i = 0; i < (int)delims.length(); i++) { int k = fname.lastIndexOf(delims[i]); if (k > rightmost) rightmost = k; } // no truncations? fail if (rightmost == 0) return false; fname.truncate(rightmost); } // realname is now the fully qualified name of a readable file. bool ok = false; #ifdef QT_USE_MMAP #ifndef MAP_FILE #define MAP_FILE 0 #endif #ifndef MAP_FAILED #define MAP_FAILED -1 #endif int fd = -1; if (!realname.startsWith(QLatin1String(":"))) fd = QT_OPEN(QFile::encodeName(realname), O_RDONLY, #if defined(Q_OS_WIN) _S_IREAD | _S_IWRITE #else 0666 #endif ); if (fd >= 0) { struct stat st; if (!fstat(fd, &st)) { char *ptr; ptr = reinterpret_cast( mmap(0, st.st_size, // any address, whole file PROT_READ, // read-only memory MAP_FILE | MAP_PRIVATE, // swap-backed map from file fd, 0)); // from offset 0 of fd if (ptr && ptr != reinterpret_cast(MAP_FAILED)) { d->unmapPointer = ptr; d->unmapLength = st.st_size; ok = true; } } ::close(fd); } #endif // QT_USE_MMAP if (!ok) { QFile file(realname); if (!file.exists()) return false; d->unmapLength = file.size(); d->unmapPointer = new char[d->unmapLength]; if (file.open(QIODevice::ReadOnly)) ok = (d->unmapLength == (uint)file.read(d->unmapPointer, d->unmapLength)); if (!ok) { delete [] d->unmapPointer; d->unmapPointer = 0; d->unmapLength = 0; return false; } } return d->do_load(reinterpret_cast(d->unmapPointer), d->unmapLength); } /*! \overload \fn bool Translator::load(const uchar *data, int len) Loads the .qm file data \a data of length \a len into the translator. The data is not copied. The caller must be able to guarantee that \a data will not be deleted or modified. */ bool Translator::load(const uchar *data, int len) { clear(); return d->do_load(data, len); } bool TranslatorPrivate::do_load(const uchar *data, int len) { if (len < MagicLength || memcmp(data, magic, MagicLength) != 0) { q->clear(); return false; } QByteArray array = QByteArray::fromRawData((const char *) data, len); QDataStream s(&array, QIODevice::ReadOnly); bool ok = true; s.device()->seek(MagicLength); quint8 tag = 0; quint32 blockLen = 0; s >> tag >> blockLen; while (tag && blockLen) { if ((quint32) s.device()->pos() + blockLen > (quint32) len) { ok = false; break; } if (tag == TranslatorPrivate::Contexts) { contextArray = QByteArray(array.constData() + s.device()->pos(), blockLen); } else if (tag == TranslatorPrivate::Hashes) { offsetArray = QByteArray(array.constData() + s.device()->pos(), blockLen); } else if (tag == TranslatorPrivate::Messages) { messageArray = QByteArray(array.constData() + s.device()->pos(), blockLen); } if (!s.device()->seek(s.device()->pos() + blockLen)) { ok = false; break; } tag = 0; blockLen = 0; if (!s.atEnd()) s >> tag >> blockLen; } return ok; } #ifndef QT_NO_TRANSLATION_BUILDER /*! Saves this message file to \a filename, overwriting the previous contents of \a filename. If \a mode is \c Everything (the default), all the information is preserved. If \a mode is \c Stripped, any information that is not necessary for findMessage() is stripped away. \sa load() */ bool Translator::save(const QString & filename, SaveMode mode) { QFile file(filename); if (file.open(QIODevice::WriteOnly)) { squeeze(mode); QDataStream s(&file); s.writeRawData((const char *)magic, MagicLength); quint8 tag; if (!d->offsetArray.isEmpty()) { tag = (quint8)TranslatorPrivate::Hashes; quint32 oas = (quint32)d->offsetArray.size(); s << tag << oas; s.writeRawData(d->offsetArray, oas); } if (!d->messageArray.isEmpty()) { tag = (quint8)TranslatorPrivate::Messages; quint32 mas = (quint32)d->messageArray.size(); s << tag << mas; s.writeRawData(d->messageArray, mas); } if (!d->contextArray.isEmpty()) { tag = (quint8)TranslatorPrivate::Contexts; quint32 cas = (quint32)d->contextArray.size(); s << tag << cas; s.writeRawData(d->contextArray, cas); } return true; } return false; } #endif /*! Empties this translator of all contents. This function works with stripped translator files. */ void Translator::clear() { if (d->unmapPointer && d->unmapLength) { #if defined(QT_USE_MMAP) munmap(d->unmapPointer, d->unmapLength); #else delete [] d->unmapPointer; #endif d->unmapPointer = 0; d->unmapLength = 0; } d->messageArray.clear(); d->offsetArray.clear(); d->contextArray.clear(); #ifndef QT_NO_TRANSLATION_BUILDER d->messages.clear(); #endif QEvent ev(QEvent::LanguageChange); QCoreApplication::sendEvent(QCoreApplication::instance(), &ev); } #ifndef QT_NO_TRANSLATION_BUILDER /*! Converts this message file to the compact format used to store message files on disk. You should never need to call this directly; save() and other functions call it as necessary. \a mode is for internal use. \sa save() unsqueeze() */ void Translator::squeeze(SaveMode mode) { if (d->messages.isEmpty()) { if (mode == Stripped) unsqueeze(); else return; } QMap messages = d->messages; clear(); QMap offsets; QDataStream ms(&d->messageArray, QIODevice::WriteOnly); QMap::const_iterator it, next; int cpPrev = 0, cpNext = 0; for (it = messages.constBegin(); it != messages.constEnd(); ++it) { cpPrev = cpNext; next = it; ++next; if (next == messages.constEnd()) cpNext = 0; else cpNext = (int) it.key().commonPrefix(next.key()); offsets.insert(TranslatorPrivate::Offset(it.key(), ms.device()->pos()), (void *)0); it.key().write(ms, mode == Stripped, (TranslatorMessage::Prefix)qMax(cpPrev, cpNext + 1)); } QMap::Iterator offset; offset = offsets.begin(); QDataStream ds(&d->offsetArray, QIODevice::WriteOnly); while (offset != offsets.end()) { TranslatorPrivate::Offset k = offset.key(); ++offset; ds << (quint32)k.h << (quint32)k.o; } if (mode == Stripped) { QMap contextSet; for (it = messages.constBegin(); it != messages.constEnd(); ++it) ++contextSet[it.key().context()]; quint16 hTableSize; if (contextSet.size() < 200) hTableSize = (contextSet.size() < 60) ? 151 : 503; else if (contextSet.size() < 2500) hTableSize = (contextSet.size() < 750) ? 1511 : 5003; else hTableSize = (contextSet.size() < 10000) ? 15013 : 3 * contextSet.size() / 2; QMultiMap hashMap; QMap::const_iterator c; for (c = contextSet.constBegin(); c != contextSet.constEnd(); ++c) hashMap.insert(elfHash(c.key()) % hTableSize, c.key()); /* The contexts found in this translator are stored in a hash table to provide fast lookup. The context array has the following format: quint16 hTableSize; quint16 hTable[hTableSize]; quint8 contextPool[...]; The context pool stores the contexts as Pascal strings: quint8 len; quint8 data[len]; Let's consider the look-up of context "FunnyDialog". A hash value between 0 and hTableSize - 1 is computed, say h. If hTable[h] is 0, "FunnyDialog" is not covered by this translator. Else, we check in the contextPool at offset 2 * hTable[h] to see if "FunnyDialog" is one of the contexts stored there, until we find it or we meet the empty string. */ d->contextArray.resize(2 + (hTableSize << 1)); QDataStream t(&d->contextArray, QIODevice::WriteOnly); quint16 *hTable = new quint16[hTableSize]; memset(hTable, 0, hTableSize * sizeof(quint16)); t << hTableSize; t.device()->seek(2 + (hTableSize << 1)); t << (quint16)0; // the entry at offset 0 cannot be used uint upto = 2; QMap::const_iterator entry = hashMap.constBegin(); while (entry != hashMap.constEnd()) { int i = entry.key(); hTable[i] = (quint16)(upto >> 1); do { const char *con = entry.value(); uint len = (uint)qstrlen(con); len = qMin(len, 255u); t << (quint8)len; t.writeRawData(con, len); upto += 1 + len; ++entry; } while (entry != hashMap.constEnd() && entry.key() == i); do { t << (quint8) 0; // empty string ++upto; } while ((upto & 0x1) != 0); // offsets have to be even } t.device()->seek(2); for (int j = 0; j < hTableSize; j++) t << hTable[j]; delete [] hTable; if (upto > 131072) { qWarning("Translator::squeeze: Too many contexts"); d->contextArray.clear(); } } } /*! Converts this message file into an easily modifiable data structure, less compact than the format used in the files. You should never need to call this function; it is called by insert() and friends as necessary. \sa squeeze() */ void Translator::unsqueeze() { if (!d->messages.isEmpty() || d->messageArray.isEmpty()) return; qFatal("Cannot unsqueeze (bug in Linguist?)"); } /*! Returns true if this message file contains a message with the key (\a context, \a sourceText, \a comment); otherwise returns false. This function works with stripped translator files. (This is is a one-liner that calls findMessage().) */ bool Translator::contains(const char* context, const char* sourceText, const char* comment) const { return !findMessage(context, sourceText, comment).translation().isNull(); } bool Translator::contains(const char *context, const char *comment, const QString &fileName, int lineNumber) const { return !findMessage(context, 0, comment, fileName, lineNumber).isNull(); } /*! Inserts \a message into this message file. This function does \e not work with stripped translator files. It may appear to, but that is not dependable. \sa remove() */ void Translator::insert(const TranslatorMessage& message) { unsqueeze(); d->messages.remove(message); // safer d->messages.insert(message, (void *) 0); } /*! \fn void Translator::insert(const char *context, const char *sourceText, const QString &translation) \overload \obsolete Inserts the \a sourceText and \a translation into the translator with the given \a context. */ /*! Removes \a message from this translator. This function works with stripped translator files. \sa insert() */ void Translator::remove(const TranslatorMessage& message) { unsqueeze(); d->messages.remove(message); } /*! \fn void Translator::remove(const char *, const char *) \overload \obsolete Removes the translation associated to the key (\a context, \a sourceText, "") from this translator. */ #endif /*! Returns the TranslatorMessage for the key (\a context, \a sourceText, \a comment). If none is found, also tries (\a context, \a sourceText, ""). */ TranslatorMessage Translator::findMessage(const char *context, const char *sourceText, const char *comment, const QString &fileName, int lineNumber) const { if (context == 0) context = ""; if (sourceText == 0) sourceText = ""; if (comment == 0) comment = ""; QString myFilename = fileName; int myLineNumber = lineNumber; if (!d->messages.isEmpty()) { QMap::const_iterator it; // Either we want to find an item that matches context, sourcetext (and optionally comment) // Or we want to find an item that matches context, filename, linenumber (and optionally comment) it = d->messages.find(TranslatorMessage(context, sourceText, comment, myFilename, myLineNumber)); if (it != d->messages.constEnd()) return it.key(); if (comment[0]) { it = d->messages.find(TranslatorMessage(context, sourceText, "", myFilename, myLineNumber)); if (it != d->messages.constEnd()) return it.key(); } it = d->messages.find(TranslatorMessage(context, "", comment, myFilename, myLineNumber)); if (it != d->messages.constEnd()) return it.key(); if (comment[0]) { it = d->messages.find(TranslatorMessage(context, "", "", myFilename, myLineNumber)); if (it != d->messages.constEnd()) return it.key(); } return TranslatorMessage(); } return TranslatorMessage(); } /*! Returns true if this translator is empty, otherwise returns false. This function works with stripped and unstripped translation files. */ bool Translator::isEmpty() const { return !d->unmapPointer && !d->unmapLength && d->messageArray.isEmpty() && d->offsetArray.isEmpty() && d->contextArray.isEmpty() && d->messages.isEmpty(); } #ifndef QT_NO_TRANSLATION_BUILDER /*! Returns a list of the messages in the translator. This function is rather slow. Because it is seldom called, it's optimized for simplicity and small size, rather than speed. If you want to iterate over the list, you should iterate over a copy, e.g. \code QList list = myTranslator.messages(); QList::Iterator it = list.begin(); while (it != list.end()) { process_message(*it); ++it; } \endcode */ QList Translator::messages() const { ((Translator *) this)->unsqueeze(); return d->messages.keys(); } #endif /*! \class TranslatorMessage \brief The TranslatorMessage class contains a translator message and its properties. \ingroup i18n \ingroup environment This class is of no interest to most applications. It is useful for translation tools such as \l{Qt Linguist Manual}{Qt Linguist}. It is provided simply to make the API complete and regular. For a Translator object, a lookup key is a triple (\e context, \e {source text}, \e comment) that uniquely identifies a message. An extended key is a quadruple (\e hash, \e context, \e {source text}, \e comment), where \e hash is computed from the source text and the comment. Unless you plan to read and write messages yourself, you need not worry about the hash value. TranslatorMessage stores this triple or quadruple and the relevant translation if there is any. \sa Translator */ /*! Constructs a translator message with the extended key (0, 0, 0, 0) and an empty string as translation. */ TranslatorMessage::TranslatorMessage() : h(0), m_fileName(), m_lineNumber(-1) { } /*! Constructs an translator message with the extended key (\e h, \a context, \a sourceText, \a comment), where \e h is computed from \a sourceText and \a comment, and possibly with a \a translation. */ TranslatorMessage::TranslatorMessage(const char * context, const char * sourceText, const char * comment, const QString &fileName, int lineNumber, const QStringList& translations) : cx(context), st(sourceText), cm(comment), m_translations(translations), m_fileName(fileName), m_lineNumber(lineNumber) { // 0 means we don't know, "" means empty if (cx == (const char*)0) cx = ""; if (st == (const char*)0) st = ""; if (cm == (const char*)0) cm = ""; h = elfHash(st + cm); } /*! Constructs a copy of translator message \a m. */ TranslatorMessage::TranslatorMessage(const TranslatorMessage & m) : cx(m.cx), st(m.st), cm(m.cm), m_translations(m.m_translations), m_fileName(m.m_fileName), m_lineNumber(m.m_lineNumber) { h = m.h; } /*! Assigns message \a m to this translator message and returns a reference to this translator message. */ TranslatorMessage & TranslatorMessage::operator=( const TranslatorMessage & m) { h = m.h; cx = m.cx; st = m.st; cm = m.cm; m_translations = m.m_translations; m_fileName = m.m_fileName; m_lineNumber = m.m_lineNumber; return *this; } /*! \fn uint TranslatorMessage::hash() const Returns the hash value used internally to represent the lookup key. This value is zero only if this translator message was constructed from a stream containing invalid data. The hashing function is unspecified, but it will remain unchanged in future versions of Qt. */ /*! \fn const char *TranslatorMessage::context() const Returns the context for this message (e.g. "MyDialog"). */ /*! \fn const char *TranslatorMessage::sourceText() const Returns the source text of this message (e.g. "&Save"). */ /*! \fn const char *TranslatorMessage::comment() const Returns the comment for this message (e.g. "File|Save"). */ /*! \fn void TranslatorMessage::setTranslation(const QString & translation) Sets the translation of the source text to \a translation. \sa translation() */ /*! \fn QString TranslatorMessage::translation() const Returns the translation of the source text (e.g., "&Sauvegarder"). \sa setTranslation() */ /*! \enum TranslatorMessage::Prefix Let (\e h, \e c, \e s, \e m) be the extended key. The possible prefixes are \value NoPrefix no prefix \value Hash only (\e h) \value HashContext only (\e h, \e c) \value HashContextSourceText only (\e h, \e c, \e s) \value HashContextSourceTextComment the whole extended key, (\e h, \e c, \e s, \e m) \sa write() commonPrefix() */ /*! Writes this translator message to the \a stream. If \a strip is false (the default), all the information in the message is written. If \a strip is true, only the part of the extended key specified by \a prefix is written with the translation (\c HashContextSourceTextComment by default). \sa commonPrefix() */ void TranslatorMessage::write(QDataStream & stream, bool strip, Prefix prefix) const { for (int i = 0; i < m_translations.count(); ++i) stream << quint8(Tag_Translation) << m_translations.at(i); if (!strip) prefix = HashContextSourceTextComment; switch (prefix) { case HashContextSourceTextComment: stream << quint8(Tag_Comment) << cm; // fall through case HashContextSourceText: stream << quint8(Tag_SourceText) << st; // fall through case HashContext: stream << quint8(Tag_Context) << cx; default: ; } stream << quint8(Tag_End); } /*! Returns the widest lookup prefix that is common to this translator message and to message \a m. For example, if the extended key is for this message is (71, "PrintDialog", "Yes", "Print?") and that for \a m is (71, "PrintDialog", "No", "Print?"), this function returns \c HashContext. \sa write() */ TranslatorMessage::Prefix TranslatorMessage::commonPrefix( const TranslatorMessage& m) const { if (h != m.h) return NoPrefix; if (cx != m.cx) return Hash; if (st != m.st) return HashContext; if (cm != m.cm) return HashContextSourceText; return HashContextSourceTextComment; } /*! Returns true if the extended key of this object is equal to that of \a m; otherwise returns false. */ bool TranslatorMessage::operator==(const TranslatorMessage& m) const { bool isHashEq = (h == m.h ? true : false); bool isContextEq = (cx == m.cx ? true : false); bool isSourceEq = (st == m.st ? true : false); bool isCommentEq = (cm == m.cm ? true : false); bool isLocationEq = m_lineNumber == m.m_lineNumber && m_fileName == m.m_fileName; return (isHashEq && isContextEq && isSourceEq && isCommentEq) || // translation can be different, but treat the equal (st.isEmpty() && isContextEq && isCommentEq && isLocationEq); } /*! \fn bool TranslatorMessage::operator!=(const TranslatorMessage& m) const Returns true if the extended key of this object is different from that of \a m; otherwise returns false. */ /*! Returns true if the extended key of this object is lexicographically before than that of \a m; otherwise returns false. */ bool TranslatorMessage::operator<(const TranslatorMessage& m) const { return h != m.h ? h < m.h : (cx != m.cx ? cx < m.cx : (st != m.st ? st < m.st : cm < m.cm)); } /*! \fn bool TranslatorMessage::operator<=(const TranslatorMessage& m) const Returns true if the extended key of this object is lexicographically before that of \a m or if they are equal; otherwise returns false. */ /*! \fn bool TranslatorMessage::operator>(const TranslatorMessage& m) const Returns true if the extended key of this object is lexicographically after that of \a m; otherwise returns false. */ /*! \fn bool TranslatorMessage::operator>=(const TranslatorMessage& m) const Returns true if the extended key of this object is lexicographically after that of \a m or if they are equal; otherwise returns false. */ /*! \fn QString Translator::find(const char *context, const char *sourceText, const char * comment) const Use findMessage() instead. */ bool getNumerusInfo(QLocale::Language language, QLocale::Country country, QStringList *forms) { forever { for (int i = 0; i < NumerusTableSize; ++i) { const NumerusTableEntry &entry = numerusTable[i]; for (int j = 0; entry.languages[j] != EOL; ++j) { if (entry.languages[j] == language && ((!entry.countries && country == QLocale::AnyCountry) || (entry.countries && entry.countries[j] == country))) { if (forms) { forms->clear(); for (int k = 0; entry.forms[k]; ++k) forms->append(QLatin1String(entry.forms[k])); } return true; } } } if (country == QLocale::AnyCountry) break; country = QLocale::AnyCountry; } return false; } #endif // QT_NO_TRANSLATION PyQt-x11-gpl-4.11.4/pylupdate/translator.h0000644000076500000240000003357312536324426020337 0ustar philstaff00000000000000/********************************************************************** ** Copyright (C) 2002-2007 Detlev Offenbach ** ** This is a modified version of lupdate. The original is part of Qt-Linguist. ** The copyright of the original file can be found below. ** ** This version is modified to handle python sources. ** ** The file is provided AS IS with NO WARRANTY OF ANY KIND, ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE. ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the Qt Linguist of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef TRANSLATOR_H #define TRANSLATOR_H #include "QtCore/qobject.h" #include "QtCore/qbytearray.h" #include "QtCore/qstringlist.h" #include "QtCore/qlocale.h" #include class TranslatorPrivate; #if !defined(QT_BEGIN_NAMESPACE) #define QT_BEGIN_NAMESPACE #define QT_END_NAMESPACE #endif QT_BEGIN_NAMESPACE template class QList; QT_END_NAMESPACE class TranslatorMessage { public: TranslatorMessage(); TranslatorMessage(const char * context, const char * sourceText, const char * comment, const QString &fileName, int lineNumber, const QStringList& translations = QStringList()); TranslatorMessage(const TranslatorMessage & m); TranslatorMessage & operator=(const TranslatorMessage & m); uint hash() const { return h; } const char *context() const { return cx.isNull() ? 0 : cx.constData(); } const char *sourceText() const { return st.isNull() ? 0 : st.constData(); } const char *comment() const { return cm.isNull() ? 0 : cm.constData(); } inline void setTranslations(const QStringList &translations); QStringList translations() const { return m_translations; } void setTranslation(const QString &translation) { m_translations = QStringList(translation); } QString translation() const { return m_translations.value(0); } bool isTranslated() const { return m_translations.count() > 1 || !m_translations.value(0).isEmpty(); } enum Prefix { NoPrefix, Hash, HashContext, HashContextSourceText, HashContextSourceTextComment }; void write(QDataStream & s, bool strip = false, Prefix prefix = HashContextSourceTextComment) const; Prefix commonPrefix(const TranslatorMessage&) const; bool operator==(const TranslatorMessage& m) const; bool operator!=(const TranslatorMessage& m) const { return !operator==(m); } bool operator<(const TranslatorMessage& m) const; bool operator<=(const TranslatorMessage& m) const { return !m.operator<(*this); } bool operator>(const TranslatorMessage& m) const { return m.operator<(*this); } bool operator>=(const TranslatorMessage& m) const { return !operator<(m); } QString fileName(void) const { return m_fileName; } void setFileName(const QString &fileName) { m_fileName = fileName; } int lineNumber(void) const { return m_lineNumber; } void setLineNumber(int lineNumber) { m_lineNumber = lineNumber; } bool isNull() const { return st.isNull() && m_lineNumber == -1 && m_translations.isEmpty(); } private: uint h; QByteArray cx; QByteArray st; QByteArray cm; QStringList m_translations; QString m_fileName; int m_lineNumber; enum Tag { Tag_End = 1, Tag_SourceText16, Tag_Translation, Tag_Context16, Tag_Hash, Tag_SourceText, Tag_Context, Tag_Comment, Tag_Obsolete1 }; }; Q_DECLARE_TYPEINFO(TranslatorMessage, Q_MOVABLE_TYPE); inline void TranslatorMessage::setTranslations(const QStringList &translations) { m_translations = translations; } class Translator : public QTranslator { Q_OBJECT public: explicit Translator(QObject *parent = 0); ~Translator(); virtual TranslatorMessage findMessage(const char *context, const char *sourceText, const char *comment = 0, const QString &fileName = 0, int lineNumber = -1) const; virtual QString translate(const char *context, const char *sourceText, const char *comment = 0) const { return findMessage(context, sourceText, comment).translation(); } bool load(const QString & filename, const QString & directory = QString(), const QString & search_delimiters = QString(), const QString & suffix = QString()); bool load(const uchar *data, int len); void clear(); enum SaveMode { Everything, Stripped }; bool save(const QString & filename, SaveMode mode = Everything); void insert(const TranslatorMessage&); inline void insert(const char *context, const char *sourceText, const QString &fileName, int lineNo, const QStringList &translations) { insert(TranslatorMessage(context, sourceText, "", fileName, lineNo, translations)); } void remove(const TranslatorMessage&); inline void remove(const char *context, const char *sourceText) { remove(TranslatorMessage(context, sourceText, "", QLatin1String(""), -1)); } bool contains(const char *context, const char *sourceText, const char * comment = 0) const; bool contains(const char *context, const char *comment, const QString &fileName, int lineNumber) const; void squeeze(SaveMode = Everything); void unsqueeze(); QList messages() const; bool isEmpty() const; private: Q_DISABLE_COPY(Translator) TranslatorPrivate *d; }; static const char * const japaneseStyleForms[] = { "Unique Form", 0 }; static const char * const englishStyleForms[] = { "Singular", "Plural", 0 }; static const char * const frenchStyleForms[] = { "Singular", "Plural", 0 }; static const char * const latvianForms[] = { "Singular", "Plural", "Nullar", 0 }; static const char * const irishStyleForms[] = { "Singular", "Dual", "Plural", 0 }; static const char * const czechForms[] = { "Singular", "Dual", "Plural", 0 }; static const char * const slovakForms[] = { "Singular", "Dual", "Plural", 0 }; static const char * const macedonianForms[] = { "Singular", "Dual", "Plural", 0 }; static const char * const lithuanianForms[] = { "Singular", "Dual", "Plural", 0 }; static const char * const russianStyleForms[] = { "Singular", "Dual", "Plural", 0 }; static const char * const polishForms[] = { "Singular", "Paucal", "Plural", 0 }; static const char * const romanianForms[] = { "Singular", "Plural Form for 2 to 19", "Plural", 0 }; static const char * const slovenianForms[] = { "Singular", "Dual", "Trial", "Plural", 0 }; static const char * const malteseForms[] = { "Singular", "Plural Form for 2 to 10", "Plural Form for 11 to 19", "Plural", 0 }; static const char * const welshForms[] = { "Nullar", "Singular", "Dual", "Sexal", "Plural", 0 }; static const char * const arabicForms[] = { "Nullar", "Singular", "Dual", "Minority Plural", "Plural", "Plural Form for 100, 200, ...", 0 }; #define EOL QLocale::C static const QLocale::Language japaneseStyleLanguages[] = { QLocale::Afan, QLocale::Armenian, QLocale::Bhutani, QLocale::Bislama, QLocale::Burmese, QLocale::Chinese, #if QT_VERSION >= 0x050000 QLocale::Fijian, #else QLocale::FijiLanguage, #endif QLocale::Guarani, QLocale::Hungarian, QLocale::Indonesian, QLocale::Japanese, QLocale::Javanese, QLocale::Korean, QLocale::Malay, QLocale::NauruLanguage, QLocale::Persian, QLocale::Sundanese, QLocale::Thai, QLocale::Tibetan, QLocale::Vietnamese, QLocale::Yoruba, QLocale::Zhuang, EOL }; static const QLocale::Language englishStyleLanguages[] = { QLocale::Abkhazian, QLocale::Afar, QLocale::Afrikaans, QLocale::Albanian, QLocale::Amharic, QLocale::Assamese, QLocale::Aymara, QLocale::Azerbaijani, QLocale::Bashkir, QLocale::Basque, QLocale::Bengali, QLocale::Bihari, // Missing: Bokmal, QLocale::Bulgarian, QLocale::Cambodian, QLocale::Catalan, QLocale::Cornish, QLocale::Corsican, QLocale::Danish, QLocale::Dutch, QLocale::English, QLocale::Esperanto, QLocale::Estonian, QLocale::Faroese, QLocale::Finnish, // Missing: Friulian, QLocale::Frisian, QLocale::Galician, QLocale::Georgian, QLocale::German, QLocale::Greek, QLocale::Greenlandic, QLocale::Gujarati, QLocale::Hausa, QLocale::Hebrew, QLocale::Hindi, QLocale::Icelandic, QLocale::Interlingua, QLocale::Interlingue, QLocale::Italian, QLocale::Kannada, QLocale::Kashmiri, QLocale::Kazakh, QLocale::Kinyarwanda, QLocale::Kirghiz, QLocale::Kurdish, QLocale::Kurundi, #if QT_VERSION >= 0x050000 QLocale::Lao, #else QLocale::Laothian, #endif QLocale::Latin, // Missing: Letzeburgesch, QLocale::Lingala, QLocale::Malagasy, QLocale::Malayalam, QLocale::Marathi, QLocale::Mongolian, // Missing: Nahuatl, QLocale::Nepali, // Missing: Northern Sotho, QLocale::Norwegian, #if QT_VERSION >= 0x050000 QLocale::NorwegianNynorsk, #else QLocale::Nynorsk, #endif QLocale::Occitan, QLocale::Oriya, QLocale::Pashto, QLocale::Portuguese, QLocale::Punjabi, QLocale::Quechua, QLocale::RhaetoRomance, #if QT_VERSION >= 0x050000 QLocale::SouthernSotho, QLocale::Tswana, #else QLocale::Sesotho, QLocale::Setswana, #endif QLocale::Shona, QLocale::Sindhi, #if QT_VERSION >= 0x050000 QLocale::Sinhala, QLocale::Swati, #else QLocale::Singhalese, QLocale::Siswati, #endif QLocale::Somali, QLocale::Spanish, QLocale::Swahili, QLocale::Swedish, QLocale::Tagalog, QLocale::Tajik, QLocale::Tamil, QLocale::Tatar, QLocale::Telugu, #if QT_VERSION >= 0x050000 QLocale::Tongan, #else QLocale::TongaLanguage, #endif QLocale::Tsonga, QLocale::Turkish, QLocale::Turkmen, QLocale::Twi, QLocale::Uigur, QLocale::Uzbek, QLocale::Volapuk, QLocale::Wolof, QLocale::Xhosa, QLocale::Yiddish, QLocale::Zulu, EOL }; static const QLocale::Language frenchStyleLanguages[] = { // keep synchronized with frenchStyleCountries QLocale::Breton, QLocale::French, QLocale::Portuguese, // Missing: Filipino, QLocale::Tigrinya, // Missing: Walloon EOL }; static const QLocale::Language latvianLanguage[] = { QLocale::Latvian, EOL }; static const QLocale::Language irishStyleLanguages[] = { QLocale::Divehi, QLocale::Gaelic, QLocale::Inuktitut, QLocale::Inupiak, QLocale::Irish, QLocale::Manx, QLocale::Maori, // Missing: Sami, QLocale::Samoan, QLocale::Sanskrit, EOL }; static const QLocale::Language czechLanguage[] = { QLocale::Czech, EOL }; static const QLocale::Language slovakLanguage[] = { QLocale::Slovak, EOL }; static const QLocale::Language macedonianLanguage[] = { QLocale::Macedonian, EOL }; static const QLocale::Language lithuanianLanguage[] = { QLocale::Lithuanian, EOL }; static const QLocale::Language russianStyleLanguages[] = { QLocale::Bosnian, QLocale::Byelorussian, QLocale::Croatian, QLocale::Russian, QLocale::Serbian, QLocale::SerboCroatian, QLocale::Ukrainian, EOL }; static const QLocale::Language polishLanguage[] = { QLocale::Polish, EOL }; static const QLocale::Language romanianLanguages[] = { QLocale::Moldavian, QLocale::Romanian, EOL }; static const QLocale::Language slovenianLanguage[] = { QLocale::Slovenian, EOL }; static const QLocale::Language malteseLanguage[] = { QLocale::Maltese, EOL }; static const QLocale::Language welshLanguage[] = { QLocale::Welsh, EOL }; static const QLocale::Language arabicLanguage[] = { QLocale::Arabic, EOL }; static const QLocale::Country frenchStyleCountries[] = { // keep synchronized with frenchStyleLanguages QLocale::AnyCountry, QLocale::AnyCountry, QLocale::Brazil, QLocale::AnyCountry }; struct NumerusTableEntry { const char * const *forms; const QLocale::Language *languages; const QLocale::Country *countries; }; static const NumerusTableEntry numerusTable[] = { { japaneseStyleForms, japaneseStyleLanguages, 0 }, { englishStyleForms, englishStyleLanguages, 0 }, { frenchStyleForms, frenchStyleLanguages, frenchStyleCountries }, { latvianForms, latvianLanguage, 0 }, { irishStyleForms, irishStyleLanguages, 0 }, { czechForms, czechLanguage, 0 }, { slovakForms, slovakLanguage, 0 }, { macedonianForms, macedonianLanguage, 0 }, { lithuanianForms, lithuanianLanguage, 0 }, { russianStyleForms, russianStyleLanguages, 0 }, { polishForms, polishLanguage, 0 }, { romanianForms, romanianLanguages, 0 }, { slovenianForms, slovenianLanguage, 0 }, { malteseForms, malteseLanguage, 0 }, { welshForms, welshLanguage, 0 }, { arabicForms, arabicLanguage, 0 } }; static const int NumerusTableSize = sizeof(numerusTable) / sizeof(numerusTable[0]); bool getNumerusInfo(QLocale::Language language, QLocale::Country country, QStringList *forms); #endif // TRANSLATOR_H PyQt-x11-gpl-4.11.4/pyqtconfig.py.in0000644000076500000240000002137312536324420017115 0ustar philstaff00000000000000# Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. # # This module is intended to be used by the configuration scripts of extension # modules that %Import PyQt4 modules. import sipconfig # These are installation specific values created when PyQt4 was configured. # @SIP_CONFIGURATION@ class Configuration(sipconfig.Configuration): """The class that represents PyQt configuration values. """ def __init__(self, sub_cfg=None): """Initialise an instance of the class. sub_cfg is the list of sub-class configurations. It should be None when called normally. """ if sub_cfg: cfg = sub_cfg else: cfg = [] cfg.append(_pkg_config) sipconfig.Configuration.__init__(self, cfg) class QtCoreModuleMakefile(sipconfig.SIPModuleMakefile): """The Makefile class for modules that %Import QtCore. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore"] sipconfig.SIPModuleMakefile.__init__(self, *args, **kw) class QtGuiModuleMakefile(QtCoreModuleMakefile): """The Makefile class for modules that %Import QtGui. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui"] QtCoreModuleMakefile.__init__(self, *args, **kw) class QtHelpModuleMakefile(QtGuiModuleMakefile): """The Makefile class for modules that %Import QtHelp. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtHelp"] QtGuiModuleMakefile.__init__(self, *args, **kw) class QtMultimediaModuleMakefile(QtGuiModuleMakefile): """The Makefile class for modules that %Import QtMultimedia. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtMultimedia"] QtGuiModuleMakefile.__init__(self, *args, **kw) class QtNetworkModuleMakefile(QtCoreModuleMakefile): """The Makefile class for modules that %Import QtNetwork. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtNetwork"] QtCoreModuleMakefile.__init__(self, *args, **kw) class QtDeclarativeModuleMakefile(QtNetworkModuleMakefile): """The Makefile class for modules that %Import QtDeclarative. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtNetwork", "QtDeclarative"] QtNetworkModuleMakefile.__init__(self, *args, **kw) class QtAssistantModuleMakefile(QtNetworkModuleMakefile): """The Makefile class for modules that %Import QtAssistant. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtNetwork", "QtAssistant"] QtNetworkModuleMakefile.__init__(self, *args, **kw) class QtOpenGLModuleMakefile(QtGuiModuleMakefile): """The Makefile class for modules that %Import QtOpenGL. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ kw["opengl"] = 1 if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtOpenGL"] QtGuiModuleMakefile.__init__(self, *args, **kw) class QtScriptModuleMakefile(QtCoreModuleMakefile): """The Makefile class for modules that %Import QtScript. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtScript"] QtCoreModuleMakefile.__init__(self, *args, **kw) class QtScriptToolsModuleMakefile(QtScriptModuleMakefile): """The Makefile class for modules that %Import QtScriptTools. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtScript", "QtScriptTools"] QtScriptModuleMakefile.__init__(self, *args, **kw) class QtSqlModuleMakefile(QtGuiModuleMakefile): """The Makefile class for modules that %Import QtSql. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtSql"] QtGuiModuleMakefile.__init__(self, *args, **kw) class QtSvgModuleMakefile(QtGuiModuleMakefile): """The Makefile class for modules that %Import QtSvg. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtSvg"] QtGuiModuleMakefile.__init__(self, *args, **kw) class QtTestModuleMakefile(QtGuiModuleMakefile): """The Makefile class for modules that %Import QtTest. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtTest"] QtGuiModuleMakefile.__init__(self, *args, **kw) class QtWebKitModuleMakefile(QtNetworkModuleMakefile): """The Makefile class for modules that %Import QtWebKit. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtNetwork", "QtWebKit"] QtNetworkModuleMakefile.__init__(self, *args, **kw) class QtXmlModuleMakefile(QtCoreModuleMakefile): """The Makefile class for modules that %Import QtXml. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtXml"] QtCoreModuleMakefile.__init__(self, *args, **kw) class QtXmlPatternsModuleMakefile(QtCoreModuleMakefile): """The Makefile class for modules that %Import QtXmlPatterns. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtXmlPatterns"] QtCoreModuleMakefile.__init__(self, *args, **kw) class phononModuleMakefile(QtGuiModuleMakefile): """The Makefile class for modules that %Import phonon. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "phonon"] QtGuiModuleMakefile.__init__(self, *args, **kw) class QtDesignerModuleMakefile(QtGuiModuleMakefile): """The Makefile class for modules that %Import QtDesigner. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QtDesigner"] QtGuiModuleMakefile.__init__(self, *args, **kw) class QAxContainerModuleMakefile(QtGuiModuleMakefile): """The Makefile class for modules that %Import QAxContainer. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtGui", "QAxContainer"] QtGuiModuleMakefile.__init__(self, *args, **kw) class QtDBusModuleMakefile(QtCoreModuleMakefile): """The Makefile class for modules that %Import QtDBus. """ def __init__(self, *args, **kw): """Initialise an instance of a module Makefile. """ if "qt" not in kw: kw["qt"] = ["QtCore", "QtDBus"] QtCoreModuleMakefile.__init__(self, *args, **kw) PyQt-x11-gpl-4.11.4/pyrcc/0000755000076500000240000000000012536324426015073 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/pyrcc/main.cpp0000644000076500000240000001513312536324426016526 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the tools applications of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include "rcc.h" // Some static globals static QString initName; static bool verbose = false; static int py_version = 2; static int compressLevel = CONSTANT_COMPRESSLEVEL_DEFAULT; static int compressThreshold = CONSTANT_COMPRESSTHRESHOLD_DEFAULT; static QString resourceRoot; bool processResourceFile(const QStringList &filenamesIn, const QString &filenameOut, bool list) { if (verbose) fprintf(stderr, "PyQt4 resource compiler\n"); //setup RCCResourceLibrary library; library.setInputFiles(filenamesIn); library.setInitName(initName); library.setVerbose(verbose); library.setPythonVersion(py_version); library.setCompressLevel(compressLevel); library.setCompressThreshold(compressThreshold); library.setResourceRoot(resourceRoot); if(!library.readFiles()) return false; //open output FILE *out_fd = stdout; if (!filenameOut.isEmpty() && filenameOut != QLatin1String("-")) { #if defined(_MSC_VER) && _MSC_VER >= 1400 if (fopen_s(&out_fd, filenameOut.toLocal8Bit().constData(), "w")) { #else out_fd = fopen(filenameOut.toLocal8Bit().constData(), "w"); if(!out_fd) { #endif fprintf(stderr, "Unable to open %s for writing\n", filenameOut.toLatin1().constData()); return false; } } //do the task bool ret = true; if(list) { const QStringList data = library.dataFiles(); for(int i = 0; i < data.size(); ++i) fprintf(out_fd, "%s\n", QDir::cleanPath(data.at(i)).toLatin1().constData()); } else { ret = library.output(out_fd); } if(out_fd != stdout) fclose(out_fd); //done return ret; } int showHelp(const char *argv0, const QString &error) { fprintf(stderr, "PyQt resource compiler\n"); if (!error.isEmpty()) fprintf(stderr, "%s: %s\n", argv0, error.toLatin1().constData()); fprintf(stderr, "Usage: %s [options] \n\n" "Options:\n" " -o file Write output to file rather than stdout\n" " -py2 Generate code for any Python v2.x version (default)\n" " -py3 Generate code for any Python v3.x version\n" " -name name Create an external initialization function with name\n" " -threshold level Threshold to consider compressing files\n" " -compress level Compress input files by level\n" " -root path Prefix resource access path with root path\n" " -no-compress Disable all compression\n" " -version Display version\n" " -help Display this information\n", argv0); return 1; } int main(int argc, char *argv[]) { QString outFilename; bool helpRequested = false, list = false; QStringList files; //parse options QString errorMsg; for (int i = 1; i < argc && errorMsg.isEmpty(); i++) { if (argv[i][0] == '-') { // option QByteArray opt = argv[i] + 1; if (opt == "o") { if (!(i < argc-1)) { errorMsg = QLatin1String("Missing output name"); break; } outFilename = argv[++i]; } else if(opt == "name") { if (!(i < argc-1)) { errorMsg = QLatin1String("Missing target name"); break; } initName = argv[++i]; } else if(opt == "root") { if (!(i < argc-1)) { errorMsg = QLatin1String("Missing root path"); break; } resourceRoot = QDir::cleanPath(argv[++i]); if(resourceRoot.isEmpty() || resourceRoot[0] != '/') errorMsg = QLatin1String("Root must start with a /"); } else if(opt == "compress") { if (!(i < argc-1)) { errorMsg = QLatin1String("Missing compression level"); break; } compressLevel = QString(argv[++i]).toInt(); } else if(opt == "threshold") { if (!(i < argc-1)) { errorMsg = QLatin1String("Missing compression threshold"); break; } compressThreshold = QString(argv[++i]).toInt(); } else if(opt == "verbose") { verbose = true; } else if(opt == "py2") { py_version = 2; } else if(opt == "py3") { py_version = 3; } else if(opt == "list") { list = true; } else if(opt == "version") { fprintf(stderr, "Resource Compiler for Qt version %s\n", QT_VERSION_STR); return 1; } else if(opt == "help" || opt == "h") { helpRequested = true; } else if(opt == "no-compress") { compressLevel = -2; } else { errorMsg = QString(QLatin1String("Unknown option: '%1'")).arg(argv[i]); } } else { QString fname = QString::fromLocal8Bit(argv[i]); if(!QFile::exists(fname)) { qWarning("%s: File does not exist '%s'", argv[0], argv[i]); return 1; } files.append(fname); } } if (!files.size() || !errorMsg.isEmpty() || helpRequested) return showHelp(argv[0], errorMsg); return int(!processResourceFile(files, outFilename, list)); } PyQt-x11-gpl-4.11.4/pyrcc/pyrcc.sbf0000644000076500000240000000164612536324426016716 0ustar philstaff00000000000000# This is the build file for pyrcc for Qt v4. # # Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. target = pyrcc4 sources = main.cpp rcc.cpp headers = rcc.h PyQt-x11-gpl-4.11.4/pyrcc/rcc.cpp0000644000076500000240000004205412536324426016353 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the tools applications of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include "rcc.h" #if QT_VERSION >= 0x050000 #define hash_name qt_hash #else #define hash_name qHash #endif static bool qt_rcc_write_number(FILE *out, quint32 number, int width) { int dividend = 1; switch (width) { case 2: dividend = 256; break; case 3: dividend = 65536; break; case 4: dividend = 16777216; break; default: break; } // Write bytes while (dividend >= 1) { const quint8 tmp = number / dividend; fprintf(out, "\\x%02x", tmp); number -= tmp * dividend; dividend /= 256; } return true; } bool RCCFileInfo::writeDataInfo(FILE *out) { //pointer data if(flags & RCCFileInfo::Directory) { //name offset qt_rcc_write_number(out, nameOffset, 4); //flags qt_rcc_write_number(out, flags, 2); //child count qt_rcc_write_number(out, children.size(), 4); //first child offset qt_rcc_write_number(out, childOffset, 4); } else { //name offset qt_rcc_write_number(out, nameOffset, 4); //flags qt_rcc_write_number(out, flags, 2); //locale qt_rcc_write_number(out, locale.country(), 2); qt_rcc_write_number(out, locale.language(), 2); //data offset qt_rcc_write_number(out, dataOffset, 4); } fprintf(out, "\\\n"); return true; } qint64 RCCFileInfo::writeDataBlob(FILE *out, qint64 offset) { //capture the offset dataOffset = offset; //find the data to be written QFile file(fileInfo.absoluteFilePath()); if (!file.open(QFile::ReadOnly)) { fprintf(stderr, "Couldn't open %s\n", fileInfo.absoluteFilePath().toLatin1().constData()); return false; } QByteArray data = file.readAll(); #ifndef QT_NO_COMPRESS // Check if compression is useful for this file if (mCompressLevel != 0 && data.size() != 0) { QByteArray compressed = qCompress(reinterpret_cast(data.data()), data.size(), mCompressLevel); int compressRatio = int(100.0f * (float(data.size() - compressed.size()) / float(data.size()))); if (compressRatio >= mCompressThreshold) { data = compressed; flags |= Compressed; } } #endif // QT_NO_COMPRESS //write the length qt_rcc_write_number(out, data.size(), 4); fprintf(out, "\\\n"); offset += 4; //write the payload for (int i=0; iroot == 0) { fprintf(stderr, "No resources in resource description.\n"); return false; } return true; } bool RCCResourceLibrary::addFile(const QString &alias, const RCCFileInfo &file) { if (file.fileInfo.size() > 0xffffffff) { fprintf(stderr, "File too big: %s", file.fileInfo.absoluteFilePath().toLatin1().constData()); return false; } if(!root) root = new RCCFileInfo("", QFileInfo(), QLocale(), RCCFileInfo::Directory); RCCFileInfo *parent = root; const QStringList nodes = alias.split('/'); for(int i = 1; i < nodes.size()-1; ++i) { const QString node = nodes.at(i); if(!parent->children.contains(node)) { RCCFileInfo *s = new RCCFileInfo(node, QFileInfo(), QLocale(), RCCFileInfo::Directory); s->parent = parent; parent->children.insert(node, s); parent = s; } else { parent = parent->children[node]; } } const QString filename = nodes.at(nodes.size()-1); RCCFileInfo *s = new RCCFileInfo(file); s->parent = parent; parent->children.insertMulti(filename, s); return true; } bool RCCResourceLibrary::readFiles() { //read in data if (mVerbose) fprintf(stderr, "Processing %d files\n", mFileNames.size()); for (int i=0; i pending; if (!root) return ret; pending.push(root); while(!pending.isEmpty()) { RCCFileInfo *file = pending.pop(); for(QHash::iterator it = file->children.begin(); it != file->children.end(); ++it) { RCCFileInfo *child = it.value(); if(child->flags & RCCFileInfo::Directory) pending.push(child); ret.append(child->fileInfo.filePath()); } } return ret; } bool RCCResourceLibrary::output(FILE *out) { //write out if (mVerbose) fprintf(stderr, "Outputting code\n"); if (!writeHeader(out)) { fprintf(stderr, "Couldn't write header\n"); return false; } if (!writeDataBlobs(out)) { fprintf(stderr, "Couldn't write data blob\n"); return false; } if (!writeDataNames(out)) { fprintf(stderr, "Couldn't write file names\n"); return false; } if (!writeDataStructure(out)) { fprintf(stderr, "Couldn't write data tree\n"); return false; } if (!writeInitializer(out)) { fprintf(stderr, "Couldn't write footer\n"); return false; } return true; } bool RCCResourceLibrary::writeHeader(FILE *out) { fprintf(out, "# -*- coding: utf-8 -*-\n\n"); fprintf(out, "# Resource object code\n"); fprintf(out, "#\n"); fprintf(out, "# Created by: The Resource Compiler for PyQt4 (Qt v%s)\n", QT_VERSION_STR); fprintf(out, "#\n"); fprintf(out, "# WARNING! All changes made in this file will be lost!\n"); fprintf(out, "\n"); fprintf(out, "from PyQt4 import QtCore\n\n"); return true; } bool RCCResourceLibrary::writeDataBlobs(FILE *out) { fprintf(out, "qt_resource_data = %s\"\\\n", mPrefix); QStack pending; if (!root) return false; pending.push(root); qint64 offset = 0; while(!pending.isEmpty()) { RCCFileInfo *file = pending.pop(); for(QHash::iterator it = file->children.begin(); it != file->children.end(); ++it) { RCCFileInfo *child = it.value(); if(child->flags & RCCFileInfo::Directory) pending.push(child); else offset = child->writeDataBlob(out, offset); } } fprintf(out, "\"\n\n"); return true; } bool RCCResourceLibrary::writeDataNames(FILE *out) { fprintf(out, "qt_resource_name = %s\"\\\n", mPrefix); QHash names; QStack pending; if (!root) return false; pending.push(root); qint64 offset = 0; while(!pending.isEmpty()) { RCCFileInfo *file = pending.pop(); for(QHash::iterator it = file->children.begin(); it != file->children.end(); ++it) { RCCFileInfo *child = it.value(); if(child->flags & RCCFileInfo::Directory) pending.push(child); if(names.contains(child->name)) { child->nameOffset = names.value(child->name); } else { names.insert(child->name, offset); offset = child->writeDataName(out, offset); } } } fprintf(out, "\"\n\n"); return true; } static bool qt_rcc_compare_hash(const RCCFileInfo *left, const RCCFileInfo *right) { return hash_name(left->name) < hash_name(right->name); } bool RCCResourceLibrary::writeDataStructure(FILE *out) { fprintf(out, "qt_resource_struct = %s\"\\\n", mPrefix); QStack pending; if (!root) return false; //calculate the child offsets (flat) pending.push(root); int offset = 1; while(!pending.isEmpty()) { RCCFileInfo *file = pending.pop(); file->childOffset = offset; //sort by hash value for binary lookup QList children = file->children.values(); qSort(children.begin(), children.end(), qt_rcc_compare_hash); //write out the actual data now for(int i = 0; i < children.size(); ++i) { RCCFileInfo *child = children.at(i); ++offset; if(child->flags & RCCFileInfo::Directory) pending.push(child); } } //write out the structure (ie iterate again!) pending.push(root); root->writeDataInfo(out); while(!pending.isEmpty()) { RCCFileInfo *file = pending.pop(); //sort by hash value for binary lookup QList children = file->children.values(); qSort(children.begin(), children.end(), qt_rcc_compare_hash); //write out the actual data now for(int i = 0; i < children.size(); ++i) { RCCFileInfo *child = children.at(i); child->writeDataInfo(out); if(child->flags & RCCFileInfo::Directory) pending.push(child); } } fprintf(out, "\"\n\n"); return true; } bool RCCResourceLibrary::writeInitializer(FILE *out) { fprintf(out, "def qInitResources():\n"); fprintf(out, " QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)\n"); fprintf(out, "\n"); fprintf(out, "def qCleanupResources():\n"); fprintf(out, " QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)\n"); fprintf(out, "\n"); fprintf(out, "qInitResources()\n"); return true; } PyQt-x11-gpl-4.11.4/pyrcc/rcc.h0000644000076500000240000001114412536324426016014 0ustar philstaff00000000000000/**************************************************************************** ** ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved. ** ** This file is part of the tools applications of the Qt Toolkit. ** ** Licensees holding a valid Qt License Agreement may use this file in ** accordance with the rights, responsibilities and obligations ** contained therein. Please consult your licensing agreement or ** contact sales@trolltech.com if any conditions of this licensing ** agreement are not clear to you. ** ** Further information about Qt licensing is available at: ** http://www.trolltech.com/products/qt/licensing.html or by ** contacting info@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef RCC_H #define RCC_H #define TAG_RCC "RCC" #define TAG_RESOURCE "qresource" #define TAG_FILE "file" #define ATTRIBUTE_LANG "lang" #define ATTRIBUTE_PREFIX "prefix" #define ATTRIBUTE_ALIAS "alias" #define ATTRIBUTE_THRESHOLD "threshold" #define ATTRIBUTE_COMPRESS "compress" #define CONSTANT_HEADER_SIZE 8 #define CONSTANT_COMPRESSLEVEL_DEFAULT -1 #define CONSTANT_COMPRESSTHRESHOLD_DEFAULT 70 struct RCCFileInfo; class RCCResourceLibrary { public: inline RCCResourceLibrary(); ~RCCResourceLibrary(); bool output(FILE *out); bool readFiles(); inline void setInputFiles(QStringList files) { mFileNames = files; } inline QStringList inputFiles() const { return mFileNames; } QStringList dataFiles() const; inline void setVerbose(bool b) { mVerbose = b; } inline bool verbose() const { return mVerbose; } inline void setPythonVersion(int v) { mPrefix = (v == 2 ? "" : "b"); } inline void setInitName(const QString &n) { mInitName = n; } inline QString initName() const { return mInitName; } inline void setCompressLevel(int c) { mCompressLevel = c; } inline int compressLevel() const { return mCompressLevel; } inline void setCompressThreshold(int t) { mCompressThreshold = t; } inline int compressThreshold() const { return mCompressThreshold; } inline void setResourceRoot(QString str) { mResourceRoot = str; } inline QString resourceRoot() const { return mResourceRoot; } private: RCCFileInfo *root; bool addFile(const QString &alias, const RCCFileInfo &file); bool interpretResourceFile(QIODevice *inputDevice, QString file, QString currentPath = QString()); bool writeHeader(FILE *out); bool writeDataBlobs(FILE *out); bool writeDataNames(FILE *out); bool writeDataStructure(FILE *out); bool writeInitializer(FILE *out); QStringList mFileNames; QString mResourceRoot, mInitName; bool mVerbose; int mCompressLevel; int mCompressThreshold; int mTreeOffset, mNamesOffset, mDataOffset; const char *mPrefix; }; inline RCCResourceLibrary::RCCResourceLibrary() { root = 0; mVerbose = false; mCompressLevel = -1; mCompressThreshold = 70; mTreeOffset = mNamesOffset = mDataOffset = 0; } struct RCCFileInfo { enum Flags { NoFlags = 0x00, Compressed = 0x01, Directory = 0x02 }; inline RCCFileInfo(QString name = QString(), QFileInfo fileInfo = QFileInfo(), QLocale locale = QLocale(), uint flags = NoFlags, int compressLevel = CONSTANT_COMPRESSLEVEL_DEFAULT, int compressThreshold = CONSTANT_COMPRESSTHRESHOLD_DEFAULT); ~RCCFileInfo() { qDeleteAll(children); } inline QString resourceName() { QString resource = name; for(RCCFileInfo *p = parent; p; p = p->parent) resource = resource.prepend(p->name + "/"); return ":" + resource; } int flags; QString name; QLocale locale; QFileInfo fileInfo; RCCFileInfo *parent; QHash children; int mCompressLevel; int mCompressThreshold; qint64 nameOffset, dataOffset, childOffset; qint64 writeDataBlob(FILE *out, qint64 offset); qint64 writeDataName(FILE *out, qint64 offset); bool writeDataInfo(FILE *out); }; inline RCCFileInfo::RCCFileInfo(QString name, QFileInfo fileInfo, QLocale locale, uint flags, int compressLevel, int compressThreshold) { this->name = name; this->fileInfo = fileInfo; this->locale = locale; this->flags = flags; this->parent = 0; this->nameOffset = this->dataOffset = this->childOffset = 0; this->mCompressLevel = compressLevel; this->mCompressThreshold = compressThreshold; } #endif PyQt-x11-gpl-4.11.4/pyuic/0000755000076500000240000000000012536324426015104 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/pyuic/uic/0000755000076500000240000000000012536324426015664 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/pyuic/uic/__init__.py0000644000076500000240000002172312536324426020002 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2015 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# __all__ = ("compileUi", "compileUiDir", "loadUiType", "loadUi", "widgetPluginPath") from PyQt4.uic.Compiler import indenter, compiler _header = """# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '%s' # # Created by: PyQt4 UI code generator %s # # WARNING! All changes made in this file will be lost! """ _pyqt3_wrapper_code = """ class %(widgetname)s(QtGui.%(baseclass)s, %(uiclass)s): \tdef __init__(self, parent=None, f=QtCore.Qt.WindowFlags()): \t\tQtGui.%(baseclass)s.__init__(self, parent, f) \t\tself.setupUi(self) """ _display_code = """ if __name__ == "__main__": \timport sys \tapp = QtGui.QApplication(sys.argv) \t%(widgetname)s = QtGui.%(baseclass)s() \tui = %(uiclass)s() \tui.setupUi(%(widgetname)s) \t%(widgetname)s.show() \tsys.exit(app.exec_()) """ def compileUiDir(dir, recurse=False, map=None, **compileUi_args): """compileUiDir(dir, recurse=False, map=None, **compileUi_args) Creates Python modules from Qt Designer .ui files in a directory or directory tree. dir is the name of the directory to scan for files whose name ends with '.ui'. By default the generated Python module is created in the same directory ending with '.py'. recurse is set if any sub-directories should be scanned. The default is False. map is an optional callable that is passed the name of the directory containing the '.ui' file and the name of the Python module that will be created. The callable should return a tuple of the name of the directory in which the Python module will be created and the (possibly modified) name of the module. The default is None. compileUi_args are any additional keyword arguments that are passed to the compileUi() function that is called to create each Python module. """ import os # Compile a single .ui file. def compile_ui(ui_dir, ui_file): # Ignore if it doesn't seem to be a .ui file. if ui_file.endswith('.ui'): py_dir = ui_dir py_file = ui_file[:-3] + '.py' # Allow the caller to change the name of the .py file or generate # it in a different directory. if map is not None: py_dir, py_file = map(py_dir, py_file) # Make sure the destination directory exists. try: os.makedirs(py_dir) except: pass ui_path = os.path.join(ui_dir, ui_file) py_path = os.path.join(py_dir, py_file) ui_file = open(ui_path, 'r') py_file = open(py_path, 'w') try: compileUi(ui_file, py_file, **compileUi_args) finally: ui_file.close() py_file.close() if recurse: for root, _, files in os.walk(dir): for ui in files: compile_ui(root, ui) else: for ui in os.listdir(dir): if os.path.isfile(os.path.join(dir, ui)): compile_ui(dir, ui) def compileUi(uifile, pyfile, execute=False, indent=4, pyqt3_wrapper=False, from_imports=False, resource_suffix='_rc'): """compileUi(uifile, pyfile, execute=False, indent=4, pyqt3_wrapper=False, from_imports=False, resource_suffix='_rc') Creates a Python module from a Qt Designer .ui file. uifile is a file name or file-like object containing the .ui file. pyfile is the file-like object to which the Python code will be written to. execute is optionally set to generate extra Python code that allows the code to be run as a standalone application. The default is False. indent is the optional indentation width using spaces. If it is 0 then a tab is used. The default is 4. pyqt3_wrapper is optionally set to generate extra code that allows the code to be used as it would be with PyQt v3. from_imports is optionally set to generate import statements that are relative to '.'. resource_suffix is the suffix appended to the basename of any resource file specified in the .ui file to create the name of the Python module generated from the resource file by pyrcc4. The default is '_rc', i.e. if the .ui file specified a resource file called foo.qrc then the corresponding Python module is foo_rc. """ from PyQt4.QtCore import PYQT_VERSION_STR try: uifname = uifile.name except AttributeError: uifname = uifile indenter.indentwidth = indent pyfile.write(_header % (uifname, PYQT_VERSION_STR)) winfo = compiler.UICompiler().compileUi(uifile, pyfile, from_imports, resource_suffix) if pyqt3_wrapper: indenter.write_code(_pyqt3_wrapper_code % winfo) if execute: indenter.write_code(_display_code % winfo) def loadUiType(uifile, from_imports=False, resource_suffix='_rc'): """loadUiType(uifile, from_imports=False) -> (form class, base class) Load a Qt Designer .ui file and return the generated form class and the Qt base class. uifile is a file name or file-like object containing the .ui file. from_imports is optionally set to use import statements that are relative to '.'. resource_suffix is the suffix appended to the basename of any resource file specified in the .ui file to create the name of the Python module generated from the resource file by pyrcc4. The default is '_rc', i.e. if the .ui file specified a resource file called foo.qrc then the corresponding Python module is foo_rc. """ import sys from PyQt4 import QtGui if sys.hexversion >= 0x03000000: from PyQt4.uic.port_v3.string_io import StringIO else: from PyQt4.uic.port_v2.string_io import StringIO code_string = StringIO() winfo = compiler.UICompiler().compileUi(uifile, code_string, from_imports, resource_suffix) ui_globals = {} exec(code_string.getvalue(), ui_globals) return (ui_globals[winfo["uiclass"]], getattr(QtGui, winfo["baseclass"])) def loadUi(uifile, baseinstance=None, package='', resource_suffix='_rc'): """loadUi(uifile, baseinstance=None, package='') -> widget Load a Qt Designer .ui file and return an instance of the user interface. uifile is a file name or file-like object containing the .ui file. baseinstance is an optional instance of the Qt base class. If specified then the user interface is created in it. Otherwise a new instance of the base class is automatically created. package is the optional package which is used as the base for any relative imports of custom widgets. resource_suffix is the suffix appended to the basename of any resource file specified in the .ui file to create the name of the Python module generated from the resource file by pyrcc4. The default is '_rc', i.e. if the .ui file specified a resource file called foo.qrc then the corresponding Python module is foo_rc. """ from PyQt4.uic.Loader.loader import DynamicUILoader return DynamicUILoader(package).loadUi(uifile, baseinstance, resource_suffix) # The list of directories that are searched for widget plugins. from PyQt4.uic.objcreator import widgetPluginPath PyQt-x11-gpl-4.11.4/pyuic/uic/Compiler/0000755000076500000240000000000012536324426017436 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/pyuic/uic/Compiler/__init__.py0000644000076500000240000000175412536324426021556 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# PyQt-x11-gpl-4.11.4/pyuic/uic/Compiler/compiler.py0000644000076500000240000001305312536324426021624 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import sys from PyQt4.uic.properties import Properties from PyQt4.uic.uiparser import UIParser from PyQt4.uic.Compiler import qtproxies from PyQt4.uic.Compiler.indenter import createCodeIndenter, getIndenter, \ write_code from PyQt4.uic.Compiler.qobjectcreator import CompilerCreatorPolicy from PyQt4.uic.Compiler.misc import write_import class UICompiler(UIParser): def __init__(self): UIParser.__init__(self, qtproxies.QtCore, qtproxies.QtGui, CompilerCreatorPolicy()) def reset(self): qtproxies.i18n_strings = [] UIParser.reset(self) def setContext(self, context): qtproxies.i18n_context = context def createToplevelWidget(self, classname, widgetname): indenter = getIndenter() indenter.level = 0 indenter.write("from PyQt4 import QtCore, QtGui") indenter.write("") indenter.write("try:") indenter.indent() indenter.write("_fromUtf8 = QtCore.QString.fromUtf8") indenter.dedent() indenter.write("except AttributeError:") indenter.indent() indenter.write("def _fromUtf8(s):") indenter.indent() indenter.write("return s") indenter.dedent() indenter.dedent() indenter.write("") indenter.write("try:") indenter.indent() indenter.write("_encoding = QtGui.QApplication.UnicodeUTF8") indenter.write("def _translate(context, text, disambig):") indenter.indent() indenter.write("return QtGui.QApplication.translate(context, text, disambig, _encoding)") indenter.dedent() indenter.dedent() indenter.write("except AttributeError:") indenter.indent() indenter.write("def _translate(context, text, disambig):") indenter.indent() indenter.write("return QtGui.QApplication.translate(context, text, disambig)") indenter.dedent() indenter.dedent() indenter.write("") indenter.write("class Ui_%s(object):" % self.uiname) indenter.indent() indenter.write("def setupUi(self, %s):" % widgetname) indenter.indent() w = self.factory.createQObject(classname, widgetname, (), is_attribute = False, no_instantiation = True) w.baseclass = classname w.uiclass = "Ui_%s" % self.uiname return w def setDelayedProps(self): write_code("") write_code("self.retranslateUi(%s)" % self.toplevelWidget) UIParser.setDelayedProps(self) def finalize(self): indenter = getIndenter() indenter.level = 1 indenter.write("") indenter.write("def retranslateUi(self, %s):" % self.toplevelWidget) indenter.indent() if qtproxies.i18n_strings: for s in qtproxies.i18n_strings: indenter.write(s) else: indenter.write("pass") indenter.dedent() indenter.dedent() # Keep a reference to the resource modules to import because the parser # will reset() before returning. self._resources = self.resources self._resources.sort() def compileUi(self, input_stream, output_stream, from_imports, resource_suffix): createCodeIndenter(output_stream) w = self.parse(input_stream, resource_suffix) indenter = getIndenter() indenter.write("") self.factory._cpolicy._writeOutImports() for res in self._resources: write_import(res, from_imports) return {"widgetname": str(w), "uiclass" : w.uiclass, "baseclass" : w.baseclass} PyQt-x11-gpl-4.11.4/pyuic/uic/Compiler/indenter.py0000644000076500000240000000526612536324426021631 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# indentwidth = 4 _indenter = None class _IndentedCodeWriter(object): def __init__(self, output): self.level = 0 self.output = output def indent(self): self.level += 1 def dedent(self): self.level -= 1 def write(self, line): if line.strip(): if indentwidth > 0: indent = " " * indentwidth line = line.replace("\t", indent) else: indent = "\t" self.output.write("%s%s\n" % (indent * self.level, line)) else: self.output.write("\n") def createCodeIndenter(output): global _indenter _indenter = _IndentedCodeWriter(output) def getIndenter(): return _indenter def write_code(string): _indenter.write(string) PyQt-x11-gpl-4.11.4/pyuic/uic/Compiler/misc.py0000644000076500000240000000505412536324426020747 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# from PyQt4.uic.Compiler.indenter import write_code def write_import(module_name, from_imports): if from_imports: write_code("from . import %s" % module_name) else: write_code("import %s" % module_name) def moduleMember(module, name): if module: return "%s.%s" % (module, name) return name class Literal(object): """Literal(string) -> new literal string will not be quoted when put into an argument list""" def __init__(self, string): self.string = string def __str__(self): return self.string def __or__(self, r_op): return Literal("%s|%s" % (self, r_op)) PyQt-x11-gpl-4.11.4/pyuic/uic/Compiler/proxy_metaclass.py0000644000076500000240000001041012536324426023221 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2012 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# from PyQt4.uic.Compiler.misc import Literal, moduleMember class ProxyMetaclass(type): """ ProxyMetaclass is the meta-class for proxies. """ def __init__(*args): """ Initialise the meta-class. """ # Initialise as normal. type.__init__(*args) # The proxy type object we have created. proxy = args[0] # Go through the proxy's attributes looking for other proxies. for sub_proxy in proxy.__dict__.values(): if type(sub_proxy) is ProxyMetaclass: # Set the module name of the contained proxy to the name of the # container proxy. sub_proxy.module = proxy.__name__ # Attribute hierachies are created depth first so any proxies # contained in the sub-proxy whose module we have just set will # already exist and have an incomplete module name. We need to # revisit them and prepend the new name to their module names. # Note that this should be recursive but with current usage we # know there will be only one level to revisit. for sub_sub_proxy in sub_proxy.__dict__.values(): if type(sub_sub_proxy) is ProxyMetaclass: sub_sub_proxy.module = '%s.%s' % (proxy.__name__, sub_sub_proxy.module) # Makes sure there is a 'module' attribute. if not hasattr(proxy, 'module'): proxy.module = '' def __getattribute__(cls, name): try: return type.__getattribute__(cls, name) except AttributeError: # Make sure __init__()'s use of hasattr() works. if name == 'module': raise # Avoid a circular import. from PyQt4.uic.Compiler.qtproxies import LiteralProxyClass return type(name, (LiteralProxyClass, ), {"module": moduleMember(type.__getattribute__(cls, "module"), type.__getattribute__(cls, "__name__"))}) def __str__(cls): return moduleMember(type.__getattribute__(cls, "module"), type.__getattribute__(cls, "__name__")) def __or__(self, r_op): return Literal("%s|%s" % (self, r_op)) def __eq__(self, other): return str(self) == str(other) PyQt-x11-gpl-4.11.4/pyuic/uic/Compiler/qobjectcreator.py0000644000076500000240000001362312536324426023024 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2015 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import logging import sys try: set() except NameError: from sets import Set as set from PyQt4.uic.Compiler.indenter import write_code from PyQt4.uic.Compiler.qtproxies import QtGui, Literal, strict_getattr if sys.hexversion >= 0x03000000: from PyQt4.uic.port_v3.as_string import as_string else: from PyQt4.uic.port_v2.as_string import as_string logger = logging.getLogger(__name__) DEBUG = logger.debug class _QtGuiWrapper(object): def search(clsname): try: return strict_getattr(QtGui, clsname) except AttributeError: return None search = staticmethod(search) class _ModuleWrapper(object): def __init__(self, name, classes): if "." in name: idx = name.rfind(".") self._package = name[:idx] self._module = name[idx + 1:] else: self._package = None self._module = name self._classes = classes self._used = False def search(self, cls): if cls in self._classes: self._used = True return type(cls, (QtGui.QWidget,), {"module": self._module}) else: return None def _writeImportCode(self): if self._used: if self._package is None: write_code("import %s" % self._module) else: write_code("from %s import %s" % (self._package, self._module)) class _CustomWidgetLoader(object): def __init__(self): self._widgets = {} self._usedWidgets = set() def addCustomWidget(self, widgetClass, baseClass, module): assert widgetClass not in self._widgets self._widgets[widgetClass] = (baseClass, module) def _resolveBaseclass(self, baseClass): try: for x in range(0, 10): try: return strict_getattr(QtGui, baseClass) except AttributeError: pass baseClass = self._widgets[baseClass][0] else: raise ValueError("baseclass resolve took too long, check custom widgets") except KeyError: raise ValueError("unknown baseclass %s" % baseClass) def search(self, cls): try: baseClass = self._resolveBaseclass(self._widgets[cls][0]) DEBUG("resolved baseclass of %s: %s" % (cls, baseClass)) except KeyError: return None self._usedWidgets.add(cls) return type(cls, (baseClass, ), {"module" : ""}) def _writeImportCode(self): imports = {} for widget in self._usedWidgets: _, module = self._widgets[widget] imports.setdefault(module, []).append(widget) # For repeatability sort the imports and the classes being imported and # in a way that is portable between Python v2 and v3. modules = list(imports.keys()) modules.sort() for module in modules: classes = imports[module] classes.sort() write_code("from %s import %s" % (module, ", ".join(classes))) class CompilerCreatorPolicy(object): def __init__(self): self._modules = [] def createQtGuiWrapper(self): return _QtGuiWrapper def createModuleWrapper(self, name, classes): mw = _ModuleWrapper(name, classes) self._modules.append(mw) return mw def createCustomWidgetLoader(self): cw = _CustomWidgetLoader() self._modules.append(cw) return cw def instantiate(self, clsObject, objectname, ctor_args, is_attribute=True, no_instantiation=False): return clsObject(objectname, is_attribute, ctor_args, no_instantiation) def invoke(self, rname, method, args): return method(rname, *args) def getSlot(self, object, slotname): return Literal("%s.%s" % (object, slotname)) def asString(self, s): return as_string(s) def _writeOutImports(self): for module in self._modules: module._writeImportCode() PyQt-x11-gpl-4.11.4/pyuic/uic/Compiler/qtproxies.py0000644000076500000240000003524212536324426022054 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2012 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import sys import re from PyQt4.uic.Compiler.indenter import write_code from PyQt4.uic.Compiler.misc import Literal, moduleMember if sys.hexversion >= 0x03000000: from PyQt4.uic.port_v3.proxy_base import ProxyBase from PyQt4.uic.port_v3.as_string import as_string else: from PyQt4.uic.port_v2.proxy_base import ProxyBase from PyQt4.uic.port_v2.as_string import as_string i18n_strings = [] i18n_context = "" def i18n_print(string): i18n_strings.append(string) def i18n_void_func(name): def _printer(self, *args): i18n_print("%s.%s(%s)" % (self, name, ", ".join(map(as_string, args)))) return _printer def i18n_func(name): def _printer(self, rname, *args): i18n_print("%s = %s.%s(%s)" % (rname, self, name, ", ".join(map(as_string, args)))) return Literal(rname) return _printer def strict_getattr(module, clsname): cls = getattr(module, clsname) if issubclass(cls, LiteralProxyClass): raise AttributeError(cls) else: return cls class i18n_string(object): def __init__(self, string, disambig): self.string = string self.disambig = disambig def __str__(self): if self.disambig is None: disambig = "None" else: disambig = as_string(self.disambig, encode=False) return '_translate("%s", %s, %s)' % (i18n_context, as_string(self.string, encode=False), disambig) # Classes with this flag will be handled as literal values. If functions are # called on these classes, the literal value changes. # Example: # the code # >>> QSize(9,10).expandedTo(...) # will print just that code. AS_ARGUMENT = 2 # ATTENTION: currently, classes can either be literal or normal. If a class # should need both kinds of behaviour, the code has to be changed. class ProxyClassMember(object): def __init__(self, proxy, function_name, flags): self.proxy = proxy self.function_name = function_name self.flags = flags def __str__(self): return "%s.%s" % (self.proxy, self.function_name) def __call__(self, *args): if self.function_name == 'setProperty': str_args = (as_string(args[0], encode=False), as_string(args[1])) else: str_args = map(as_string, args) func_call = "%s.%s(%s)" % (self.proxy, self.function_name, ", ".join(str_args)) if self.flags & AS_ARGUMENT: self.proxy._uic_name = func_call return self.proxy else: needs_translation = False for arg in args: if isinstance(arg, i18n_string): needs_translation = True if needs_translation: i18n_print(func_call) else: write_code(func_call) class ProxyClass(ProxyBase): flags = 0 def __init__(self, objectname, is_attribute, args=(), noInstantiation=False): if objectname: if is_attribute: objectname = "self." + objectname self._uic_name = objectname else: self._uic_name = "Unnamed" if not noInstantiation: funcall = "%s(%s)" % \ (moduleMember(self.module, self.__class__.__name__), ", ".join(map(str, args))) if objectname: funcall = "%s = %s" % (objectname, funcall) write_code(funcall) def __str__(self): return self._uic_name def __getattribute__(self, attribute): try: return object.__getattribute__(self, attribute) except AttributeError: return ProxyClassMember(self, attribute, self.flags) class LiteralProxyClass(ProxyClass): """LiteralObject(*args) -> new literal class a literal class can be used as argument in a function call >>> class Foo(LiteralProxyClass): pass >>> str(Foo(1,2,3)) == "Foo(1,2,3)" """ flags = AS_ARGUMENT def __init__(self, *args): self._uic_name = "%s(%s)" % \ (moduleMember(self.module, self.__class__.__name__), ", ".join(map(as_string, args))) class ProxyNamespace(ProxyBase): pass # These are all the Qt classes used by pyuic4 in their namespaces. If a class # is missing, the compiler will fail, normally with an AttributeError. # # For adding new classes: # - utility classes used as literal values do not need to be listed # because they are created on the fly as subclasses of LiteralProxyClass # - classes which are *not* QWidgets inherit from ProxyClass and they # have to be listed explicitly in the correct namespace. These classes # are created via a ProxyQObjectCreator # - new QWidget-derived classes have to inherit from qtproxies.QWidget # If the widget does not need any special methods, it can be listed # in _qwidgets class QtCore(ProxyNamespace): class Qt(ProxyNamespace): pass ## connectSlotsByName and connect have to be handled as class methods, ## otherwise they would be created as LiteralProxyClasses and never be ## printed class QMetaObject(ProxyClass): def connectSlotsByName(cls, *args): ProxyClassMember(cls, "connectSlotsByName", 0)(*args) connectSlotsByName = classmethod(connectSlotsByName) class QObject(ProxyClass): def metaObject(self): class _FakeMetaObject(object): def className(*args): return self.__class__.__name__ return _FakeMetaObject() def objectName(self): return self._uic_name.split(".")[-1] def connect(cls, *args): # Handle slots that have names corresponding to Python keywords. slot_name = str(args[-1]) if slot_name.endswith('.raise'): args = list(args[:-1]) args.append(Literal(slot_name + '_')) ProxyClassMember(cls, "connect", 0)(*args) connect = classmethod(connect) # These sub-class QWidget but aren't themselves sub-classed. _qwidgets = ("QCalendarWidget", "QDialogButtonBox", "QDockWidget", "QGroupBox", "QLineEdit", "QMainWindow", "QMenuBar", "QProgressBar", "QStatusBar", "QToolBar", "QWizardPage") class QtGui(ProxyNamespace): class QApplication(QtCore.QObject): def translate(uiname, text, disambig, encoding): return i18n_string(text or "", disambig) translate = staticmethod(translate) class QIcon(ProxyClass): class fromTheme(ProxyClass): pass class QConicalGradient(ProxyClass): pass class QLinearGradient(ProxyClass): pass class QRadialGradient(ProxyClass): pass class QBrush(ProxyClass): pass class QPainter(ProxyClass): pass class QPalette(ProxyClass): pass class QFont(ProxyClass): pass class QSpacerItem(ProxyClass): pass class QSizePolicy(ProxyClass): pass ## QActions inherit from QObject for the metaobject stuff ## and the hierarchy has to be correct since we have a ## isinstance(x, QtGui.QLayout) call in the ui parser class QAction(QtCore.QObject): pass class QActionGroup(QtCore.QObject): pass class QButtonGroup(QtCore.QObject): pass class QLayout(QtCore.QObject): pass class QGridLayout(QLayout): pass class QBoxLayout(QLayout): pass class QHBoxLayout(QBoxLayout): pass class QVBoxLayout(QBoxLayout): pass class QFormLayout(QLayout): pass class QWidget(QtCore.QObject): def font(self): return Literal("%s.font()" % self) def minimumSizeHint(self): return Literal("%s.minimumSizeHint()" % self) def sizePolicy(self): sp = LiteralProxyClass() sp._uic_name = "%s.sizePolicy()" % self return sp class QDialog(QWidget): pass class QAbstractPrintDialog(QDialog): pass class QColorDialog(QDialog): pass class QFileDialog(QDialog): pass class QFontDialog(QDialog): pass class QInputDialog(QDialog): pass class QMessageBox(QDialog): pass class QPageSetupDialog(QDialog): pass class QWizard(QDialog): pass class QAbstractSlider(QWidget): pass class QDial(QAbstractSlider): pass class QScrollBar(QAbstractSlider): pass class QSlider(QAbstractSlider): pass class QMenu(QWidget): def menuAction(self): return Literal("%s.menuAction()" % self) class QTabWidget(QWidget): def addTab(self, *args): text = args[-1] if isinstance(text, i18n_string): i18n_print("%s.setTabText(%s.indexOf(%s), %s)" % \ (self._uic_name, self._uic_name, args[0], text)) args = args[:-1] + ("", ) ProxyClassMember(self, "addTab", 0)(*args) def indexOf(self, page): return Literal("%s.indexOf(%s)" % (self, page)) class QComboBox(QWidget): pass class QFontComboBox(QComboBox): pass class QAbstractSpinBox(QWidget): pass class QDoubleSpinBox(QAbstractSpinBox): pass class QSpinBox(QAbstractSpinBox): pass class QDateTimeEdit(QAbstractSpinBox): pass class QDateEdit(QDateTimeEdit): pass class QTimeEdit(QDateTimeEdit): pass class QFrame(QWidget): pass class QLabel(QFrame): pass class QLCDNumber(QFrame): pass class QSplitter(QFrame): pass class QStackedWidget(QFrame): pass class QToolBox(QFrame): def addItem(self, *args): text = args[-1] if isinstance(text, i18n_string): i18n_print("%s.setItemText(%s.indexOf(%s), %s)" % \ (self._uic_name, self._uic_name, args[0], text)) args = args[:-1] + ("", ) ProxyClassMember(self, "addItem", 0)(*args) def indexOf(self, page): return Literal("%s.indexOf(%s)" % (self, page)) def layout(self): return QtGui.QLayout("%s.layout()" % self, False, (), noInstantiation=True) class QAbstractScrollArea(QFrame): def viewport(self): return QtGui.QWidget("%s.viewport()" % self, False, (), noInstantiation=True) class QGraphicsView(QAbstractScrollArea): pass class QMdiArea(QAbstractScrollArea): pass class QPlainTextEdit(QAbstractScrollArea): pass class QScrollArea(QAbstractScrollArea): pass class QTextEdit(QAbstractScrollArea): pass class QTextBrowser(QTextEdit): pass class QAbstractItemView(QAbstractScrollArea): pass class QColumnView(QAbstractItemView): pass class QHeaderView(QAbstractItemView): pass class QListView(QAbstractItemView): pass class QTableView(QAbstractItemView): def horizontalHeader(self): return QtGui.QHeaderView("%s.horizontalHeader()" % self, False, (), noInstantiation=True) def verticalHeader(self): return QtGui.QHeaderView("%s.verticalHeader()" % self, False, (), noInstantiation=True) class QTreeView(QAbstractItemView): def header(self): return QtGui.QHeaderView("%s.header()" % self, False, (), noInstantiation=True) class QListWidgetItem(ProxyClass): pass class QListWidget(QListView): setSortingEnabled = i18n_void_func("setSortingEnabled") isSortingEnabled = i18n_func("isSortingEnabled") item = i18n_func("item") class QTableWidgetItem(ProxyClass): pass class QTableWidget(QTableView): setSortingEnabled = i18n_void_func("setSortingEnabled") isSortingEnabled = i18n_func("isSortingEnabled") item = i18n_func("item") horizontalHeaderItem = i18n_func("horizontalHeaderItem") verticalHeaderItem = i18n_func("verticalHeaderItem") class QTreeWidgetItem(ProxyClass): def child(self, index): return QtGui.QTreeWidgetItem("%s.child(%i)" % (self, index), False, (), noInstantiation=True) class QTreeWidget(QTreeView): setSortingEnabled = i18n_void_func("setSortingEnabled") isSortingEnabled = i18n_func("isSortingEnabled") def headerItem(self): return QtGui.QWidget("%s.headerItem()" % self, False, (), noInstantiation=True) def topLevelItem(self, index): return QtGui.QTreeWidgetItem("%s.topLevelItem(%i)" % (self, index), False, (), noInstantiation=True) class QAbstractButton(QWidget): pass class QCheckBox(QAbstractButton): pass class QRadioButton(QAbstractButton): pass class QToolButton(QAbstractButton): pass class QPushButton(QAbstractButton): pass class QCommandLinkButton(QPushButton): pass # Add all remaining classes. for _class in _qwidgets: if _class not in locals(): locals()[_class] = type(_class, (QWidget, ), {}) PyQt-x11-gpl-4.11.4/pyuic/uic/driver.py0000644000076500000240000001054012536324426017531 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# import sys import logging from PyQt4.uic import compileUi, loadUi class Driver(object): """ This encapsulates access to the pyuic functionality so that it can be called by code that is Python v2/v3 specific. """ LOGGER_NAME = 'PyQt4.uic' def __init__(self, opts, ui_file): """ Initialise the object. opts is the parsed options. ui_file is the name of the .ui file. """ if opts.debug: logger = logging.getLogger(self.LOGGER_NAME) handler = logging.StreamHandler() handler.setFormatter(logging.Formatter("%(name)s: %(message)s")) logger.addHandler(handler) logger.setLevel(logging.DEBUG) self._opts = opts self._ui_file = ui_file def invoke(self): """ Invoke the action as specified by the parsed options. Returns 0 if there was no error. """ if self._opts.preview: return self._preview() self._generate() return 0 def _preview(self): """ Preview the .ui file. Return the exit status to be passed back to the parent process. """ from PyQt4 import QtGui app = QtGui.QApplication([self._ui_file]) widget = loadUi(self._ui_file) widget.show() return app.exec_() def _generate(self): """ Generate the Python code. """ needs_close = False if sys.hexversion >= 0x03000000: if self._opts.output == '-': from io import TextIOWrapper pyfile = TextIOWrapper(sys.stdout.buffer, encoding='utf8') else: pyfile = open(self._opts.output, 'wt', encoding='utf8') needs_close = True else: if self._opts.output == '-': pyfile = sys.stdout else: pyfile = open(self._opts.output, 'wt') needs_close = True compileUi(self._ui_file, pyfile, self._opts.execute, self._opts.indent, self._opts.pyqt3_wrapper, self._opts.from_imports, self._opts.resource_suffix) if needs_close: pyfile.close() def on_IOError(self, e): """ Handle an IOError exception. """ sys.stderr.write("Error: %s: \"%s\"\n" % (e.strerror, e.filename)) def on_SyntaxError(self, e): """ Handle a SyntaxError exception. """ sys.stderr.write("Error in input file: %s\n" % e) def on_NoSuchWidgetError(self, e): """ Handle a NoSuchWidgetError exception. """ if e.args[0].startswith("Q3"): sys.stderr.write("Error: Q3Support widgets are not supported by PyQt4.\n") else: sys.stderr.write(str(e) + "\n") def on_Exception(self, e): """ Handle a generic exception. """ if logging.getLogger(self.LOGGER_NAME).level == logging.DEBUG: import traceback traceback.print_exception(*sys.exc_info()) else: from PyQt4 import QtCore sys.stderr.write("""An unexpected error occurred. Check that you are using the latest version of PyQt and send an error report to support@riverbankcomputing.com, including the following information: * your version of PyQt (%s) * the UI file that caused this error * the debug output of pyuic4 (use the -d flag when calling pyuic4) """ % QtCore.PYQT_VERSION_STR) PyQt-x11-gpl-4.11.4/pyuic/uic/exceptions.py0000644000076500000240000000417112536324426020422 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# class NoSuchWidgetError(Exception): def __str__(self): return "Unknown Qt widget: %s" % (self.args[0],) class UnsupportedPropertyError(Exception): pass class WidgetPluginError(Exception): pass PyQt-x11-gpl-4.11.4/pyuic/uic/icon_cache.py0000644000076500000240000001163612536324426020320 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# import os.path class IconCache(object): """Maintain a cache of icons. If an icon is used more than once by a GUI then ensure that only one copy is created. """ def __init__(self, object_factory, qtgui_module): """Initialise the cache.""" self._object_factory = object_factory self._qtgui_module = qtgui_module self._base_dir = '' self._cache = [] def set_base_dir(self, base_dir): """ Set the base directory to be used for all relative filenames. """ self._base_dir = base_dir def get_icon(self, iconset): """Return an icon described by the given iconset tag.""" # Handle a themed icon. theme = iconset.attrib.get('theme') if theme is not None: return self._object_factory.createQObject("QIcon.fromTheme", 'icon', (self._object_factory.asString(theme), ), is_attribute=False) # Handle an empty iconset property. if iconset.text is None: return None iset = _IconSet(iconset, self._base_dir) try: idx = self._cache.index(iset) except ValueError: idx = -1 if idx >= 0: # Return the icon from the cache. iset = self._cache[idx] else: # Follow uic's naming convention. name = 'icon' idx = len(self._cache) if idx > 0: name += str(idx) icon = self._object_factory.createQObject("QIcon", name, (), is_attribute=False) iset.set_icon(icon, self._qtgui_module) self._cache.append(iset) return iset.icon class _IconSet(object): """An icon set, ie. the mode and state and the pixmap used for each.""" def __init__(self, iconset, base_dir): """Initialise the icon set from an XML tag.""" # Set the pre-Qt v4.4 fallback (ie. with no roles). self._fallback = self._file_name(iconset.text, base_dir) self._use_fallback = True # Parse the icon set. self._roles = {} for i in iconset: file_name = i.text if file_name is not None: file_name = self._file_name(file_name, base_dir) self._roles[i.tag] = file_name self._use_fallback = False # There is no real icon yet. self.icon = None @staticmethod def _file_name(fname, base_dir): """ Convert a relative filename if we have a base directory. """ fname = fname.replace("\\", "\\\\") if base_dir != '' and fname[0] != ':' and not os.path.isabs(fname): fname = os.path.join(base_dir, fname) return fname def set_icon(self, icon, qtgui_module): """Save the icon and set its attributes.""" if self._use_fallback: icon.addFile(self._fallback) else: for role, pixmap in self._roles.items(): if role.endswith("off"): mode = role[:-3] state = qtgui_module.QIcon.Off elif role.endswith("on"): mode = role[:-2] state = qtgui_module.QIcon.On else: continue mode = getattr(qtgui_module.QIcon, mode.title()) if pixmap: icon.addPixmap(qtgui_module.QPixmap(pixmap), mode, state) else: icon.addPixmap(qtgui_module.QPixmap(), mode, state) self.icon = icon def __eq__(self, other): """Compare two icon sets for equality.""" if not isinstance(other, type(self)): return NotImplemented if self._use_fallback: if other._use_fallback: return self._fallback == other._fallback return False if other._use_fallback: return False return self._roles == other._roles PyQt-x11-gpl-4.11.4/pyuic/uic/Loader/0000755000076500000240000000000012536324426017072 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/pyuic/uic/Loader/__init__.py0000644000076500000240000000175412536324426021212 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# PyQt-x11-gpl-4.11.4/pyuic/uic/Loader/loader.py0000644000076500000240000000602612536324426020716 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import os.path from PyQt4 import QtGui, QtCore from PyQt4.uic.uiparser import UIParser from PyQt4.uic.Loader.qobjectcreator import LoaderCreatorPolicy class DynamicUILoader(UIParser): def __init__(self, package): UIParser.__init__(self, QtCore, QtGui, LoaderCreatorPolicy(package)) def createToplevelWidget(self, classname, widgetname): if self.toplevelInst is not None: if not isinstance(self.toplevelInst, self.factory.findQObjectType(classname)): raise TypeError(("Wrong base class of toplevel widget", (type(self.toplevelInst), classname))) return self.toplevelInst else: return self.factory.createQObject(classname, widgetname, ()) def loadUi(self, filename, toplevelInst, resource_suffix): self.toplevelInst = toplevelInst if hasattr(filename, 'read'): basedir = '' else: # Allow the filename to be a QString. filename = str(filename) basedir = os.path.dirname(filename) return self.parse(filename, resource_suffix, basedir) PyQt-x11-gpl-4.11.4/pyuic/uic/Loader/qobjectcreator.py0000644000076500000240000001151712536324426022460 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2015 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import sys from PyQt4 import QtGui class _QtGuiWrapper(object): def search(cls): return getattr(QtGui, cls, None) search = staticmethod(search) class _ModuleWrapper(object): def __init__(self, moduleName, classes): self._moduleName = moduleName self._module = None self._classes = classes def search(self, cls): if cls in self._classes: if self._module is None: self._module = __import__(self._moduleName, {}, {}, self._classes) # Allow for namespaces. obj = self._module for attr in cls.split('.'): obj = getattr(obj, attr) return obj else: return None class _CustomWidgetLoader(object): def __init__(self, package): # should it stay this way? if '.' not in sys.path: sys.path.append('.') self._widgets = {} self._modules = {} self._package = package def addCustomWidget(self, widgetClass, baseClass, module): assert widgetClass not in self._widgets self._widgets[widgetClass] = module def search(self, cls): module_name = self._widgets.get(cls) if module_name is None: return None module = self._modules.get(module_name) if module is None: if module_name.startswith('.'): if self._package == '': raise ImportError( "relative import of %s without base package specified" % module_name) if self._package.startswith('.'): raise ImportError( "base package %s is relative" % self._package) mname = self._package + module_name else: mname = module_name try: module = __import__(mname, {}, {}, (cls,)) except ValueError: # Raise a more helpful exception. raise ImportError("unable to import module %s" % mname) self._modules[module_name] = module return getattr(module, cls) class LoaderCreatorPolicy(object): def __init__(self, package): self._package = package def createQtGuiWrapper(self): return _QtGuiWrapper def createModuleWrapper(self, moduleName, classes): return _ModuleWrapper(moduleName, classes) def createCustomWidgetLoader(self): return _CustomWidgetLoader(self._package) def instantiate(self, clsObject, objectName, ctor_args, is_attribute=True): return clsObject(*ctor_args) def invoke(self, rname, method, args): return method(*args) def getSlot(self, object, slotname): # Rename slots that correspond to Python keyword arguments. if slotname == 'raise': slotname += '_' return getattr(object, slotname) def asString(self, s): return s PyQt-x11-gpl-4.11.4/pyuic/uic/objcreator.py0000644000076500000240000001263112536324426020373 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2015 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import sys import os.path from PyQt4.uic.exceptions import NoSuchWidgetError, WidgetPluginError if sys.hexversion >= 0x03000000: from PyQt4.uic.port_v3.load_plugin import load_plugin else: from PyQt4.uic.port_v2.load_plugin import load_plugin # The list of directories that are searched for widget plugins. This is # exposed as part of the API. widgetPluginPath = [os.path.join(os.path.dirname(__file__), 'widget-plugins')] MATCH = True NO_MATCH = False MODULE = 0 CW_FILTER = 1 class QObjectCreator(object): def __init__(self, creatorPolicy): self._cpolicy = creatorPolicy self._cwFilters = [] self._modules = [self._cpolicy.createQtGuiWrapper()] # Get the optional plugins. for plugindir in widgetPluginPath: try: plugins = os.listdir(plugindir) except: plugins = [] for filename in plugins: if not filename.endswith('.py'): continue filename = os.path.join(plugindir, filename) plugin_globals = { "MODULE": MODULE, "CW_FILTER": CW_FILTER, "MATCH": MATCH, "NO_MATCH": NO_MATCH} plugin_locals = {} if load_plugin(filename, plugin_globals, plugin_locals): pluginType = plugin_locals["pluginType"] if pluginType == MODULE: modinfo = plugin_locals["moduleInformation"]() self._modules.append(self._cpolicy.createModuleWrapper(*modinfo)) elif pluginType == CW_FILTER: self._cwFilters.append(plugin_locals["getFilter"]()) else: raise WidgetPluginError("Unknown plugin type of %s" % filename) self._customWidgets = self._cpolicy.createCustomWidgetLoader() self._modules.append(self._customWidgets) def createQObject(self, classname, *args, **kwargs): # Handle regular and custom widgets. factory = self.findQObjectType(classname) if factory is None: # Handle scoped names, typically static factory methods. parts = classname.split('.') if len(parts) > 1: factory = self.findQObjectType(parts[0]) if factory is not None: for part in parts[1:]: factory = getattr(factory, part, None) if factory is None: break if factory is None: raise NoSuchWidgetError(classname) return self._cpolicy.instantiate(factory, *args, **kwargs) def invoke(self, rname, method, args=()): return self._cpolicy.invoke(rname, method, args) def findQObjectType(self, classname): for module in self._modules: w = module.search(classname) if w is not None: return w return None def getSlot(self, obj, slotname): return self._cpolicy.getSlot(obj, slotname) def asString(self, s): return self._cpolicy.asString(s) def addCustomWidget(self, widgetClass, baseClass, module): for cwFilter in self._cwFilters: match, result = cwFilter(widgetClass, baseClass, module) if match: widgetClass, baseClass, module = result break self._customWidgets.addCustomWidget(widgetClass, baseClass, module) PyQt-x11-gpl-4.11.4/pyuic/uic/port_v2/0000755000076500000240000000000012536324426017257 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/pyuic/uic/port_v2/__init__.py0000644000076500000240000000175412536324426021377 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# PyQt-x11-gpl-4.11.4/pyuic/uic/port_v2/as_string.py0000644000076500000240000000276212536324426021631 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# import re def as_string(obj, encode=True): if isinstance(obj, basestring): s = '"' + _escape(obj.encode('UTF-8')) + '"' if encode: s = '_fromUtf8(' + s + ')' return s return str(obj) _esc_regex = re.compile(r"(\"|\'|\\)") def _escape(text): # This escapes any escaped single or double quote or backslash. x = _esc_regex.sub(r"\\\1", text) # This replaces any '\n' with an escaped version and a real line break. return re.sub(r'\n', r'\\n"\n"', x) PyQt-x11-gpl-4.11.4/pyuic/uic/port_v2/ascii_upper.py0000644000076500000240000000245512536324426022142 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# import string # A translation table for converting ASCII lower case to upper case. _ascii_trans_table = string.maketrans(string.ascii_lowercase, string.ascii_uppercase) # Convert a string to ASCII upper case irrespective of the current locale. def ascii_upper(s): return s.translate(_ascii_trans_table) PyQt-x11-gpl-4.11.4/pyuic/uic/port_v2/invoke.py0000644000076500000240000000300312536324426021120 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# from PyQt4.uic.exceptions import NoSuchWidgetError def invoke(driver): """ Invoke the given command line driver. Return the exit status to be passed back to the parent process. """ exit_status = 1 try: exit_status = driver.invoke() except IOError, e: driver.on_IOError(e) except SyntaxError, e: driver.on_SyntaxError(e) except NoSuchWidgetError, e: driver.on_NoSuchWidgetError(e) except Exception, e: driver.on_Exception(e) return exit_status PyQt-x11-gpl-4.11.4/pyuic/uic/port_v2/load_plugin.py0000644000076500000240000000306612536324426022133 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# from PyQt4.uic.exceptions import WidgetPluginError def load_plugin(filename, plugin_globals, plugin_locals): """ Load the plugin from the given file. Return True if the plugin was loaded, or False if it wanted to be ignored. Raise an exception if there was an error. """ plugin = open(filename, 'rU') try: exec(plugin.read(), plugin_globals, plugin_locals) except ImportError: return False except Exception, e: raise WidgetPluginError("%s: %s" % (e.__class__, str(e))) finally: plugin.close() return True PyQt-x11-gpl-4.11.4/pyuic/uic/port_v2/proxy_base.py0000644000076500000240000000231312536324426022003 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# from PyQt4.uic.Compiler.proxy_metaclass import ProxyMetaclass class ProxyBase(object): """ A base class for proxies using Python v2 syntax for setting the meta-class. """ __metaclass__ = ProxyMetaclass PyQt-x11-gpl-4.11.4/pyuic/uic/port_v2/string_io.py0000644000076500000240000000215212536324426021626 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# # Import the StringIO object. try: from cStringIO import StringIO except ImportError: from StringIO import StringIO PyQt-x11-gpl-4.11.4/pyuic/uic/port_v3/0000755000076500000240000000000012536324426017260 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/pyuic/uic/port_v3/__init__.py0000644000076500000240000000175412536324426021400 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# PyQt-x11-gpl-4.11.4/pyuic/uic/port_v3/as_string.py0000644000076500000240000000314412536324426021625 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# import re def as_string(obj, encode=True): if isinstance(obj, str): s = '"' + _escape(obj) + '"' if encode: # Using _fromUtf8() ensures that (for the default QString API) the # code will run under both Python v2 and v3. s = '_fromUtf8(' + s + ')' return s return str(obj) _esc_regex = re.compile(r"(\"|\'|\\)") def _escape(text): # This escapes any escaped single or double quote or backslash. x = _esc_regex.sub(r"\\\1", text) # This replaces any '\n' with an escaped version and a real line break. return re.sub(r'\n', r'\\n"\n"', x) PyQt-x11-gpl-4.11.4/pyuic/uic/port_v3/ascii_upper.py0000644000076500000240000000245212536324426022140 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# # A translation table for converting ASCII lower case to upper case. _ascii_trans_table = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ') # Convert a string to ASCII upper case irrespective of the current locale. def ascii_upper(s): return s.translate(_ascii_trans_table) PyQt-x11-gpl-4.11.4/pyuic/uic/port_v3/invoke.py0000644000076500000240000000301312536324426021122 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# from PyQt4.uic.exceptions import NoSuchWidgetError def invoke(driver): """ Invoke the given command line driver. Return the exit status to be passed back to the parent process. """ exit_status = 1 try: exit_status = driver.invoke() except IOError as e: driver.on_IOError(e) except SyntaxError as e: driver.on_SyntaxError(e) except NoSuchWidgetError as e: driver.on_NoSuchWidgetError(e) except Exception as e: driver.on_Exception(e) return exit_status PyQt-x11-gpl-4.11.4/pyuic/uic/port_v3/load_plugin.py0000644000076500000240000000306612536324426022134 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# from PyQt4.uic.exceptions import WidgetPluginError def load_plugin(filename, plugin_globals, plugin_locals): """ Load the plugin fom the given file. Return True if the plugin was loaded, or False if it wanted to be ignored. Raise an exception if there was an error. """ plugin = open(filename, 'r') try: exec(plugin.read(), plugin_globals, plugin_locals) except ImportError: return False except Exception as e: raise WidgetPluginError("%s: %s" % (e.__class__, str(e))) finally: plugin.close() return True PyQt-x11-gpl-4.11.4/pyuic/uic/port_v3/proxy_base.py0000644000076500000240000000227112536324426022007 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# from PyQt4.uic.Compiler.proxy_metaclass import ProxyMetaclass class ProxyBase(metaclass=ProxyMetaclass): """ A base class for proxies using Python v3 syntax for setting the meta-class. """ PyQt-x11-gpl-4.11.4/pyuic/uic/port_v3/string_io.py0000644000076500000240000000204412536324426021627 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# # Import the StringIO object. from io import StringIO PyQt-x11-gpl-4.11.4/pyuic/uic/properties.py0000644000076500000240000004333112536324426020436 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2015 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import logging import os.path import sys from PyQt4.uic.exceptions import UnsupportedPropertyError from PyQt4.uic.icon_cache import IconCache if sys.hexversion >= 0x03000000: from PyQt4.uic.port_v3.ascii_upper import ascii_upper else: from PyQt4.uic.port_v2.ascii_upper import ascii_upper logger = logging.getLogger(__name__) DEBUG = logger.debug QtCore = None QtGui = None def int_list(prop): return [int(child.text) for child in prop] def float_list(prop): return [float(child.text) for child in prop] bool_ = lambda v: v == "true" def qfont_enum(v): return getattr(QtGui.QFont, v) def needsWidget(func): func.needsWidget = True return func class Properties(object): def __init__(self, factory, QtCore_mod, QtGui_mod): global QtGui, QtCore QtGui = QtGui_mod QtCore = QtCore_mod self.factory = factory self._base_dir = '' self.reset() def set_base_dir(self, base_dir): """ Set the base directory to be used for all relative filenames. """ self._base_dir = base_dir self.icon_cache.set_base_dir(base_dir) def reset(self): self.buddies = [] self.delayed_props = [] self.icon_cache = IconCache(self.factory, QtGui) def _pyEnumMember(self, cpp_name): try: prefix, membername = cpp_name.split("::") except ValueError: prefix = "Qt" membername = cpp_name if prefix == "Qt": return getattr(QtCore.Qt, membername) scope = self.factory.findQObjectType(prefix) if scope is None: raise AttributeError("unknown enum %s" % cpp_name) return getattr(scope, membername) def _set(self, prop): expr = [self._pyEnumMember(v) for v in prop.text.split('|')] value = expr[0] for v in expr[1:]: value |= v return value def _enum(self, prop): return self._pyEnumMember(prop.text) def _number(self, prop): return int(prop.text) _uInt = _longLong = _uLongLong = _number def _double(self, prop): return float(prop.text) def _bool(self, prop): return prop.text == 'true' def _stringlist(self, prop): return [self._string(p, notr='true') for p in prop] def _string(self, prop, notr=None): text = prop.text if text is None: return "" if prop.get('notr', notr) == 'true': return text disambig = prop.get('comment') # Allow for Qt5 without deprecated features. try: encoding = QtGui.QApplication.UnicodeUTF8 translated = QtGui.QApplication.translate(self.uiname, text, disambig, encoding) except AttributeError: translated = QtGui.QApplication.translate(self.uiname, text, disambig) return translated _char = _string def _cstring(self, prop): return str(prop.text) def _color(self, prop): args = int_list(prop) # Handle the optional alpha component. alpha = int(prop.get("alpha", "255")) if alpha != 255: args.append(alpha) return QtGui.QColor(*args) def _point(self, prop): return QtCore.QPoint(*int_list(prop)) def _pointf(self, prop): return QtCore.QPointF(*float_list(prop)) def _rect(self, prop): return QtCore.QRect(*int_list(prop)) def _rectf(self, prop): return QtCore.QRectF(*float_list(prop)) def _size(self, prop): return QtCore.QSize(*int_list(prop)) def _sizef(self, prop): return QtCore.QSizeF(*float_list(prop)) def _pixmap(self, prop): if prop.text: fname = prop.text.replace("\\", "\\\\") if self._base_dir != '' and fname[0] != ':' and not os.path.isabs(fname): fname = os.path.join(self._base_dir, fname) return QtGui.QPixmap(fname) # Don't bother to set the property if the pixmap is empty. return None def _iconset(self, prop): return self.icon_cache.get_icon(prop) def _url(self, prop): return QtCore.QUrl(prop[0].text) def _locale(self, prop): lang = getattr(QtCore.QLocale, prop.attrib['language']) country = getattr(QtCore.QLocale, prop.attrib['country']) return QtCore.QLocale(lang, country) def _date(self, prop): return QtCore.QDate(*int_list(prop)) def _datetime(self, prop): args = int_list(prop) return QtCore.QDateTime(QtCore.QDate(*args[-3:]), QtCore.QTime(*args[:-3])) def _time(self, prop): return QtCore.QTime(*int_list(prop)) def _gradient(self, prop): name = 'gradient' # Create the specific gradient. gtype = prop.get('type', '') if gtype == 'LinearGradient': startx = float(prop.get('startx')) starty = float(prop.get('starty')) endx = float(prop.get('endx')) endy = float(prop.get('endy')) gradient = self.factory.createQObject('QLinearGradient', name, (startx, starty, endx, endy), is_attribute=False) elif gtype == 'ConicalGradient': centralx = float(prop.get('centralx')) centraly = float(prop.get('centraly')) angle = float(prop.get('angle')) gradient = self.factory.createQObject('QConicalGradient', name, (centralx, centraly, angle), is_attribute=False) elif gtype == 'RadialGradient': centralx = float(prop.get('centralx')) centraly = float(prop.get('centraly')) radius = float(prop.get('radius')) focalx = float(prop.get('focalx')) focaly = float(prop.get('focaly')) gradient = self.factory.createQObject('QRadialGradient', name, (centralx, centraly, radius, focalx, focaly), is_attribute=False) else: raise UnsupportedPropertyError(prop.tag) # Set the common values. spread = prop.get('spread') if spread: gradient.setSpread(getattr(QtGui.QGradient, spread)) cmode = prop.get('coordinatemode') if cmode: gradient.setCoordinateMode(getattr(QtGui.QGradient, cmode)) # Get the gradient stops. for gstop in prop: if gstop.tag != 'gradientstop': raise UnsupportedPropertyError(gstop.tag) position = float(gstop.get('position')) color = self._color(gstop[0]) gradient.setColorAt(position, color) return name def _palette(self, prop): palette = self.factory.createQObject("QPalette", "palette", (), is_attribute=False) for palette_elem in prop: sub_palette = getattr(QtGui.QPalette, palette_elem.tag.title()) for role, color in enumerate(palette_elem): if color.tag == 'color': # Handle simple colour descriptions where the role is # implied by the colour's position. palette.setColor(sub_palette, QtGui.QPalette.ColorRole(role), self._color(color)) elif color.tag == 'colorrole': role = getattr(QtGui.QPalette, color.get('role')) brush = self._brush(color[0]) palette.setBrush(sub_palette, role, brush) else: raise UnsupportedPropertyError(color.tag) return palette def _brush(self, prop): brushstyle = prop.get('brushstyle') if brushstyle in ('LinearGradientPattern', 'ConicalGradientPattern', 'RadialGradientPattern'): gradient = self._gradient(prop[0]) brush = self.factory.createQObject("QBrush", "brush", (gradient, ), is_attribute=False) else: color = self._color(prop[0]) brush = self.factory.createQObject("QBrush", "brush", (color, ), is_attribute=False) brushstyle = getattr(QtCore.Qt, brushstyle) brush.setStyle(brushstyle) return brush #@needsWidget def _sizepolicy(self, prop, widget): values = [int(child.text) for child in prop] if len(values) == 2: # Qt v4.3.0 and later. horstretch, verstretch = values hsizetype = getattr(QtGui.QSizePolicy, prop.get('hsizetype')) vsizetype = getattr(QtGui.QSizePolicy, prop.get('vsizetype')) else: hsizetype, vsizetype, horstretch, verstretch = values hsizetype = QtGui.QSizePolicy.Policy(hsizetype) vsizetype = QtGui.QSizePolicy.Policy(vsizetype) sizePolicy = self.factory.createQObject("QSizePolicy", "sizePolicy", (hsizetype, vsizetype), is_attribute=False) sizePolicy.setHorizontalStretch(horstretch) sizePolicy.setVerticalStretch(verstretch) sizePolicy.setHeightForWidth(widget.sizePolicy().hasHeightForWidth()) return sizePolicy _sizepolicy = needsWidget(_sizepolicy) # font needs special handling/conversion of all child elements. _font_attributes = (("Family", str), ("PointSize", int), ("Bold", bool_), ("Italic", bool_), ("Underline", bool_), ("Weight", int), ("StrikeOut", bool_), ("Kerning", bool_), ("StyleStrategy", qfont_enum)) def _font(self, prop): newfont = self.factory.createQObject("QFont", "font", (), is_attribute = False) for attr, converter in self._font_attributes: v = prop.findtext("./%s" % (attr.lower(),)) if v is None: continue getattr(newfont, "set%s" % (attr,))(converter(v)) return newfont def _cursor(self, prop): return QtGui.QCursor(QtCore.Qt.CursorShape(int(prop.text))) def _cursorShape(self, prop): return QtGui.QCursor(getattr(QtCore.Qt, prop.text)) def convert(self, prop, widget=None): try: func = getattr(self, "_" + prop[0].tag) except AttributeError: raise UnsupportedPropertyError(prop[0].tag) else: args = {} if getattr(func, "needsWidget", False): assert widget is not None args["widget"] = widget return func(prop[0], **args) def _getChild(self, elem_tag, elem, name, default=None): for prop in elem.findall(elem_tag): if prop.attrib["name"] == name: return self.convert(prop) else: return default def getProperty(self, elem, name, default=None): return self._getChild("property", elem, name, default) def getAttribute(self, elem, name, default=None): return self._getChild("attribute", elem, name, default) def setProperties(self, widget, elem): # Lines are sunken unless the frame shadow is explicitly set. set_sunken = (elem.attrib.get('class') == 'Line') for prop in elem.findall('property'): prop_name = prop.attrib['name'] DEBUG("setting property %s" % (prop_name,)) if prop_name == 'frameShadow': set_sunken = False try: stdset = bool(int(prop.attrib['stdset'])) except KeyError: stdset = True if not stdset: self._setViaSetProperty(widget, prop) elif hasattr(self, prop_name): getattr(self, prop_name)(widget, prop) else: prop_value = self.convert(prop, widget) if prop_value is not None: getattr(widget, 'set%s%s' % (ascii_upper(prop_name[0]), prop_name[1:]))(prop_value) if set_sunken: widget.setFrameShadow(QtGui.QFrame.Sunken) # SPECIAL PROPERTIES # If a property has a well-known value type but needs special, # context-dependent handling, the default behaviour can be overridden here. # Delayed properties will be set after the whole widget tree has been # populated. def _delayed_property(self, widget, prop): prop_value = self.convert(prop) if prop_value is not None: prop_name = prop.attrib["name"] self.delayed_props.append((widget, False, 'set%s%s' % (ascii_upper(prop_name[0]), prop_name[1:]), prop_value)) # These properties will be set with a widget.setProperty call rather than # calling the set function. def _setViaSetProperty(self, widget, prop): prop_value = self.convert(prop) if prop_value is not None: prop_name = prop.attrib['name'] # This appears to be a Designer/uic hack where stdset=0 means that # the viewport should be used. if prop[0].tag == 'cursorShape': widget.viewport().setProperty(prop_name, prop_value) else: widget.setProperty(prop_name, prop_value) # Ignore the property. def _ignore(self, widget, prop): pass # Define properties that use the canned handlers. currentIndex = _delayed_property currentRow = _delayed_property showDropIndicator = _setViaSetProperty intValue = _setViaSetProperty value = _setViaSetProperty objectName = _ignore margin = _ignore leftMargin = _ignore topMargin = _ignore rightMargin = _ignore bottomMargin = _ignore spacing = _ignore horizontalSpacing = _ignore verticalSpacing = _ignore # tabSpacing is actually the spacing property of the widget's layout. def tabSpacing(self, widget, prop): prop_value = self.convert(prop) if prop_value is not None: self.delayed_props.append((widget, True, 'setSpacing', prop_value)) # buddy setting has to be done after the whole widget tree has been # populated. We can't use delay here because we cannot get the actual # buddy yet. def buddy(self, widget, prop): buddy_name = prop[0].text if buddy_name: self.buddies.append((widget, buddy_name)) # geometry is handled specially if set on the toplevel widget. def geometry(self, widget, prop): if widget.objectName() == self.uiname: geom = int_list(prop[0]) widget.resize(geom[2], geom[3]) else: widget.setGeometry(self._rect(prop[0])) def orientation(self, widget, prop): # If the class is a QFrame, it's a line. if widget.metaObject().className() == "QFrame": widget.setFrameShape( {"Qt::Horizontal": QtGui.QFrame.HLine, "Qt::Vertical" : QtGui.QFrame.VLine}[prop[0].text]) else: widget.setOrientation(self._enum(prop[0])) # The isWrapping attribute of QListView is named inconsistently, it should # be wrapping. def isWrapping(self, widget, prop): widget.setWrapping(self.convert(prop)) # This is a pseudo-property injected to deal with margins. def pyuicMargins(self, widget, prop): left, top, right, bottom = int_list(prop) if left == top and left == right and left == bottom: widget.setMargin(left) else: widget.setContentsMargins(left, top, right, bottom) # This is a pseudo-property injected to deal with spacing. def pyuicSpacing(self, widget, prop): horiz, vert = int_list(prop) if horiz == vert: widget.setSpacing(horiz) else: if horiz >= 0: widget.setHorizontalSpacing(horiz) if vert >= 0: widget.setVerticalSpacing(vert) PyQt-x11-gpl-4.11.4/pyuic/uic/pyuic.py0000644000076500000240000000566312536324426017401 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# import sys import optparse from PyQt4 import QtCore from PyQt4.uic.driver import Driver Version = "Python User Interface Compiler %s for Qt version %s" % (QtCore.PYQT_VERSION_STR, QtCore.QT_VERSION_STR) if sys.hexversion >= 0x03000000: from PyQt4.uic.port_v3.invoke import invoke else: from PyQt4.uic.port_v2.invoke import invoke parser = optparse.OptionParser(usage="pyuic4 [options] ", version=Version) parser.add_option("-p", "--preview", dest="preview", action="store_true", default=False, help="show a preview of the UI instead of generating code") parser.add_option("-o", "--output", dest="output", default="-", metavar="FILE", help="write generated code to FILE instead of stdout") parser.add_option("-x", "--execute", dest="execute", action="store_true", default=False, help="generate extra code to test and display the class") parser.add_option("-d", "--debug", dest="debug", action="store_true", default=False, help="show debug output") parser.add_option("-i", "--indent", dest="indent", action="store", type="int", default=4, metavar="N", help="set indent width to N spaces, tab if N is 0 [default: 4]") parser.add_option("-w", "--pyqt3-wrapper", dest="pyqt3_wrapper", action="store_true", default=False, help="generate a PyQt v3 style wrapper") g = optparse.OptionGroup(parser, title="Code generation options") g.add_option("--from-imports", dest="from_imports", action="store_true", default=False, help="generate imports relative to '.'") g.add_option("--resource-suffix", dest="resource_suffix", action="store", type="string", default="_rc", metavar="SUFFIX", help="append SUFFIX to the basename of resource files [default: _rc]") parser.add_option_group(g) opts, args = parser.parse_args() if len(args) != 1: sys.stderr.write("Error: one input ui-file must be specified\n") sys.exit(1) sys.exit(invoke(Driver(opts, args[0]))) PyQt-x11-gpl-4.11.4/pyuic/uic/uiparser.py0000644000076500000240000010634212536324426020076 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2015 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# import sys import logging import os.path import re try: from xml.etree.ElementTree import parse, SubElement except ImportError: try: from ElementTree import parse, SubElement except ImportError: try: from elementtree.ElementTree import parse, SubElement except ImportError: from PyQt4.elementtree.ElementTree import parse, SubElement from PyQt4.uic.exceptions import NoSuchWidgetError from PyQt4.uic.objcreator import QObjectCreator from PyQt4.uic.properties import Properties logger = logging.getLogger(__name__) DEBUG = logger.debug if sys.version_info < (2,4,0): def reversed(seq): for i in xrange(len(seq)-1, -1, -1): yield seq[i] QtCore = None QtGui = None def _parse_alignment(alignment): """ Convert a C++ alignment to the corresponding flags. """ align_flags = None for qt_align in alignment.split('|'): _, qt_align = qt_align.split('::') align = getattr(QtCore.Qt, qt_align) if align_flags is None: align_flags = align else: align_flags |= align return align_flags def _layout_position(elem): """ Return either (), (alignment), (row, column, rowspan, colspan) or (row, column, rowspan, colspan, alignment) depending on the type of layout and its configuration. The result will be suitable to use as arguments to the layout. """ row = elem.attrib.get('row') column = elem.attrib.get('column') alignment = elem.attrib.get('alignment') # See if it is a box layout. if row is None or column is None: if alignment is None: return () return (_parse_alignment(alignment), ) # It must be a grid or a form layout. row = int(row) column = int(column) rowspan = int(elem.attrib.get('rowspan', 1)) colspan = int(elem.attrib.get('colspan', 1)) if alignment is None: return (row, column, rowspan, colspan) return (row, column, rowspan, colspan, _parse_alignment(alignment)) class WidgetStack(list): topwidget = None def push(self, item): DEBUG("push %s %s" % (item.metaObject().className(), item.objectName())) self.append(item) if isinstance(item, QtGui.QWidget): self.topwidget = item def popLayout(self): layout = list.pop(self) DEBUG("pop layout %s %s" % (layout.metaObject().className(), layout.objectName())) return layout def popWidget(self): widget = list.pop(self) DEBUG("pop widget %s %s" % (widget.metaObject().className(), widget.objectName())) for item in reversed(self): if isinstance(item, QtGui.QWidget): self.topwidget = item break else: self.topwidget = None DEBUG("new topwidget %s" % (self.topwidget,)) return widget def peek(self): return self[-1] def topIsLayout(self): return isinstance(self[-1], QtGui.QLayout) class ButtonGroup(object): """ Encapsulate the configuration of a button group and its implementation. """ def __init__(self): """ Initialise the button group. """ self.exclusive = True self.object = None class UIParser(object): def __init__(self, QtCoreModule, QtGuiModule, creatorPolicy): self.factory = QObjectCreator(creatorPolicy) self.wprops = Properties(self.factory, QtCoreModule, QtGuiModule) global QtCore, QtGui QtCore = QtCoreModule QtGui = QtGuiModule self.reset() def uniqueName(self, name): """UIParser.uniqueName(string) -> string Create a unique name from a string. >>> p = UIParser(QtCore, QtGui) >>> p.uniqueName("foo") 'foo' >>> p.uniqueName("foo") 'foo1' """ try: suffix = self.name_suffixes[name] except KeyError: self.name_suffixes[name] = 0 return name suffix += 1 self.name_suffixes[name] = suffix return "%s%i" % (name, suffix) def reset(self): try: self.wprops.reset() except AttributeError: pass self.toplevelWidget = None self.stack = WidgetStack() self.name_suffixes = {} self.defaults = {'spacing': -1, 'margin': -1} self.actions = [] self.currentActionGroup = None self.resources = [] self.button_groups = {} def setupObject(self, clsname, parent, branch, is_attribute=True): name = self.uniqueName(branch.attrib.get('name') or clsname[1:].lower()) if parent is None: args = () else: args = (parent, ) obj = self.factory.createQObject(clsname, name, args, is_attribute) self.wprops.setProperties(obj, branch) obj.setObjectName(name) if is_attribute: setattr(self.toplevelWidget, name, obj) return obj def getProperty(self, elem, name): for prop in elem.findall('property'): if prop.attrib['name'] == name: return prop return None def createWidget(self, elem): self.column_counter = 0 self.row_counter = 0 self.item_nr = 0 self.itemstack = [] self.sorting_enabled = None widget_class = elem.attrib['class'].replace('::', '.') if widget_class == 'Line': widget_class = 'QFrame' # Ignore the parent if it is a container. parent = self.stack.topwidget if isinstance(parent, (QtGui.QDockWidget, QtGui.QMdiArea, QtGui.QScrollArea, QtGui.QStackedWidget, QtGui.QToolBox, QtGui.QTabWidget, QtGui.QWizard)): parent = None self.stack.push(self.setupObject(widget_class, parent, elem)) if isinstance(self.stack.topwidget, QtGui.QTableWidget): if self.getProperty(elem, 'columnCount') is None: self.stack.topwidget.setColumnCount(len(elem.findall("column"))) if self.getProperty(elem, 'rowCount') is None: self.stack.topwidget.setRowCount(len(elem.findall("row"))) self.traverseWidgetTree(elem) widget = self.stack.popWidget() if isinstance(widget, QtGui.QTreeView): self.handleHeaderView(elem, "header", widget.header()) elif isinstance(widget, QtGui.QTableView): self.handleHeaderView(elem, "horizontalHeader", widget.horizontalHeader()) self.handleHeaderView(elem, "verticalHeader", widget.verticalHeader()) elif isinstance(widget, QtGui.QAbstractButton): bg_i18n = self.wprops.getAttribute(elem, "buttonGroup") if bg_i18n is not None: # This should be handled properly in case the problem arises # elsewhere as well. try: # We are compiling the .ui file. bg_name = bg_i18n.string except AttributeError: # We are loading the .ui file. bg_name = bg_i18n bg = self.button_groups[bg_name] if bg.object is None: bg.object = self.factory.createQObject("QButtonGroup", bg_name, (self.toplevelWidget, )) setattr(self.toplevelWidget, bg_name, bg.object) bg.object.setObjectName(bg_name) if not bg.exclusive: bg.object.setExclusive(False) bg.object.addButton(widget) if self.sorting_enabled is not None: widget.setSortingEnabled(self.sorting_enabled) self.sorting_enabled = None if self.stack.topIsLayout(): lay = self.stack.peek() lp = elem.attrib['layout-position'] if isinstance(lay, QtGui.QFormLayout): lay.setWidget(lp[0], self._form_layout_role(lp), widget) else: lay.addWidget(widget, *lp) topwidget = self.stack.topwidget if isinstance(topwidget, QtGui.QToolBox): icon = self.wprops.getAttribute(elem, "icon") if icon is not None: topwidget.addItem(widget, icon, self.wprops.getAttribute(elem, "label")) else: topwidget.addItem(widget, self.wprops.getAttribute(elem, "label")) tooltip = self.wprops.getAttribute(elem, "toolTip") if tooltip is not None: topwidget.setItemToolTip(topwidget.indexOf(widget), tooltip) elif isinstance(topwidget, QtGui.QTabWidget): icon = self.wprops.getAttribute(elem, "icon") if icon is not None: topwidget.addTab(widget, icon, self.wprops.getAttribute(elem, "title")) else: topwidget.addTab(widget, self.wprops.getAttribute(elem, "title")) tooltip = self.wprops.getAttribute(elem, "toolTip") if tooltip is not None: topwidget.setTabToolTip(topwidget.indexOf(widget), tooltip) elif isinstance(topwidget, QtGui.QWizard): topwidget.addPage(widget) elif isinstance(topwidget, QtGui.QStackedWidget): topwidget.addWidget(widget) elif isinstance(topwidget, (QtGui.QDockWidget, QtGui.QScrollArea)): topwidget.setWidget(widget) elif isinstance(topwidget, QtGui.QMainWindow): if type(widget) == QtGui.QWidget: topwidget.setCentralWidget(widget) elif isinstance(widget, QtGui.QToolBar): tbArea = self.wprops.getAttribute(elem, "toolBarArea") if tbArea is None: topwidget.addToolBar(widget) else: topwidget.addToolBar(tbArea, widget) tbBreak = self.wprops.getAttribute(elem, "toolBarBreak") if tbBreak: topwidget.insertToolBarBreak(widget) elif isinstance(widget, QtGui.QMenuBar): topwidget.setMenuBar(widget) elif isinstance(widget, QtGui.QStatusBar): topwidget.setStatusBar(widget) elif isinstance(widget, QtGui.QDockWidget): dwArea = self.wprops.getAttribute(elem, "dockWidgetArea") topwidget.addDockWidget(QtCore.Qt.DockWidgetArea(dwArea), widget) def handleHeaderView(self, elem, name, header): value = self.wprops.getAttribute(elem, name + "Visible") if value is not None: header.setVisible(value) value = self.wprops.getAttribute(elem, name + "CascadingSectionResizes") if value is not None: header.setCascadingSectionResizes(value) value = self.wprops.getAttribute(elem, name + "DefaultSectionSize") if value is not None: header.setDefaultSectionSize(value) value = self.wprops.getAttribute(elem, name + "HighlightSections") if value is not None: header.setHighlightSections(value) value = self.wprops.getAttribute(elem, name + "MinimumSectionSize") if value is not None: header.setMinimumSectionSize(value) value = self.wprops.getAttribute(elem, name + "ShowSortIndicator") if value is not None: header.setSortIndicatorShown(value) value = self.wprops.getAttribute(elem, name + "StretchLastSection") if value is not None: header.setStretchLastSection(value) def createSpacer(self, elem): width = elem.findtext("property/size/width") height = elem.findtext("property/size/height") if width is None or height is None: size_args = () else: size_args = (int(width), int(height)) sizeType = self.wprops.getProperty(elem, "sizeType", QtGui.QSizePolicy.Expanding) policy = (QtGui.QSizePolicy.Minimum, sizeType) if self.wprops.getProperty(elem, "orientation") == QtCore.Qt.Horizontal: policy = policy[1], policy[0] spacer = self.factory.createQObject("QSpacerItem", self.uniqueName("spacerItem"), size_args + policy, is_attribute=False) if self.stack.topIsLayout(): lay = self.stack.peek() lp = elem.attrib['layout-position'] if isinstance(lay, QtGui.QFormLayout): lay.setItem(lp[0], self._form_layout_role(lp), spacer) else: lay.addItem(spacer, *lp) def createLayout(self, elem): # We use an internal property to handle margins which will use separate # left, top, right and bottom margins if they are found to be # different. The following will select, in order of preference, # separate margins, the same margin in all directions, and the default # margin. margin = self.wprops.getProperty(elem, 'margin', self.defaults['margin']) left = self.wprops.getProperty(elem, 'leftMargin', margin) top = self.wprops.getProperty(elem, 'topMargin', margin) right = self.wprops.getProperty(elem, 'rightMargin', margin) bottom = self.wprops.getProperty(elem, 'bottomMargin', margin) if left >= 0 or top >= 0 or right >= 0 or bottom >= 0: # We inject the new internal property. cme = SubElement(elem, 'property', name='pyuicMargins') SubElement(cme, 'number').text = str(left) SubElement(cme, 'number').text = str(top) SubElement(cme, 'number').text = str(right) SubElement(cme, 'number').text = str(bottom) # We use an internal property to handle spacing which will use separate # horizontal and vertical spacing if they are found to be different. # The following will select, in order of preference, separate # horizontal and vertical spacing, the same spacing in both directions, # and the default spacing. spacing = self.wprops.getProperty(elem, 'spacing', self.defaults['spacing']) horiz = self.wprops.getProperty(elem, 'horizontalSpacing', spacing) vert = self.wprops.getProperty(elem, 'verticalSpacing', spacing) if horiz >= 0 or vert >= 0: # We inject the new internal property. cme = SubElement(elem, 'property', name='pyuicSpacing') SubElement(cme, 'number').text = str(horiz) SubElement(cme, 'number').text = str(vert) classname = elem.attrib["class"] if self.stack.topIsLayout(): parent = None else: parent = self.stack.topwidget if "name" not in elem.attrib: elem.attrib["name"] = classname[1:].lower() self.stack.push(self.setupObject(classname, parent, elem)) self.traverseWidgetTree(elem) layout = self.stack.popLayout() self.configureLayout(elem, layout) if self.stack.topIsLayout(): top_layout = self.stack.peek() lp = elem.attrib['layout-position'] if isinstance(top_layout, QtGui.QFormLayout): top_layout.setLayout(lp[0], self._form_layout_role(lp), layout) else: top_layout.addLayout(layout, *lp) def configureLayout(self, elem, layout): if isinstance(layout, QtGui.QGridLayout): self.setArray(elem, 'columnminimumwidth', layout.setColumnMinimumWidth) self.setArray(elem, 'rowminimumheight', layout.setRowMinimumHeight) self.setArray(elem, 'columnstretch', layout.setColumnStretch) self.setArray(elem, 'rowstretch', layout.setRowStretch) elif isinstance(layout, QtGui.QBoxLayout): self.setArray(elem, 'stretch', layout.setStretch) def setArray(self, elem, name, setter): array = elem.attrib.get(name) if array: for idx, value in enumerate(array.split(',')): value = int(value) if value > 0: setter(idx, value) def disableSorting(self, w): if self.item_nr == 0: self.sorting_enabled = self.factory.invoke("__sortingEnabled", w.isSortingEnabled) w.setSortingEnabled(False) def handleItem(self, elem): if self.stack.topIsLayout(): elem[0].attrib['layout-position'] = _layout_position(elem) self.traverseWidgetTree(elem) else: w = self.stack.topwidget if isinstance(w, QtGui.QComboBox): text = self.wprops.getProperty(elem, "text") icon = self.wprops.getProperty(elem, "icon") if icon: w.addItem(icon, '') else: w.addItem('') w.setItemText(self.item_nr, text) elif isinstance(w, QtGui.QListWidget): self.disableSorting(w) item = self.createWidgetItem('QListWidgetItem', elem, w.item, self.item_nr) w.addItem(item) elif isinstance(w, QtGui.QTreeWidget): if self.itemstack: parent, _ = self.itemstack[-1] _, nr_in_root = self.itemstack[0] else: parent = w nr_in_root = self.item_nr item = self.factory.createQObject("QTreeWidgetItem", "item_%d" % len(self.itemstack), (parent, ), False) if self.item_nr == 0 and not self.itemstack: self.sorting_enabled = self.factory.invoke("__sortingEnabled", w.isSortingEnabled) w.setSortingEnabled(False) self.itemstack.append((item, self.item_nr)) self.item_nr = 0 # We have to access the item via the tree when setting the # text. titm = w.topLevelItem(nr_in_root) for child, nr_in_parent in self.itemstack[1:]: titm = titm.child(nr_in_parent) column = -1 for prop in elem.findall('property'): c_prop = self.wprops.convert(prop) c_prop_name = prop.attrib['name'] if c_prop_name == 'text': column += 1 if c_prop: titm.setText(column, c_prop) elif c_prop_name == 'statusTip': item.setStatusTip(column, c_prop) elif c_prop_name == 'toolTip': item.setToolTip(column, c_prop) elif c_prop_name == 'whatsThis': item.setWhatsThis(column, c_prop) elif c_prop_name == 'font': item.setFont(column, c_prop) elif c_prop_name == 'icon': item.setIcon(column, c_prop) elif c_prop_name == 'background': item.setBackground(column, c_prop) elif c_prop_name == 'foreground': item.setForeground(column, c_prop) elif c_prop_name == 'flags': item.setFlags(c_prop) elif c_prop_name == 'checkState': item.setCheckState(column, c_prop) self.traverseWidgetTree(elem) _, self.item_nr = self.itemstack.pop() elif isinstance(w, QtGui.QTableWidget): row = int(elem.attrib['row']) col = int(elem.attrib['column']) self.disableSorting(w) item = self.createWidgetItem('QTableWidgetItem', elem, w.item, row, col) w.setItem(row, col, item) self.item_nr += 1 def addAction(self, elem): self.actions.append((self.stack.topwidget, elem.attrib["name"])) @staticmethod def any_i18n(*args): """ Return True if any argument appears to be an i18n string. """ for a in args: if a is not None and not isinstance(a, str): return True return False def createWidgetItem(self, item_type, elem, getter, *getter_args): """ Create a specific type of widget item. """ item = self.factory.createQObject(item_type, "item", (), False) props = self.wprops # Note that not all types of widget items support the full set of # properties. text = props.getProperty(elem, 'text') status_tip = props.getProperty(elem, 'statusTip') tool_tip = props.getProperty(elem, 'toolTip') whats_this = props.getProperty(elem, 'whatsThis') if self.any_i18n(text, status_tip, tool_tip, whats_this): self.factory.invoke("item", getter, getter_args) if text: item.setText(text) if status_tip: item.setStatusTip(status_tip) if tool_tip: item.setToolTip(tool_tip) if whats_this: item.setWhatsThis(whats_this) text_alignment = props.getProperty(elem, 'textAlignment') if text_alignment: item.setTextAlignment(text_alignment) font = props.getProperty(elem, 'font') if font: item.setFont(font) icon = props.getProperty(elem, 'icon') if icon: item.setIcon(icon) background = props.getProperty(elem, 'background') if background: item.setBackground(background) foreground = props.getProperty(elem, 'foreground') if foreground: item.setForeground(foreground) flags = props.getProperty(elem, 'flags') if flags: item.setFlags(flags) check_state = props.getProperty(elem, 'checkState') if check_state: item.setCheckState(check_state) return item def addHeader(self, elem): w = self.stack.topwidget if isinstance(w, QtGui.QTreeWidget): props = self.wprops col = self.column_counter text = props.getProperty(elem, 'text') if text: w.headerItem().setText(col, text) status_tip = props.getProperty(elem, 'statusTip') if status_tip: w.headerItem().setStatusTip(col, status_tip) tool_tip = props.getProperty(elem, 'toolTip') if tool_tip: w.headerItem().setToolTip(col, tool_tip) whats_this = props.getProperty(elem, 'whatsThis') if whats_this: w.headerItem().setWhatsThis(col, whats_this) text_alignment = props.getProperty(elem, 'textAlignment') if text_alignment: w.headerItem().setTextAlignment(col, text_alignment) font = props.getProperty(elem, 'font') if font: w.headerItem().setFont(col, font) icon = props.getProperty(elem, 'icon') if icon: w.headerItem().setIcon(col, icon) background = props.getProperty(elem, 'background') if background: w.headerItem().setBackground(col, background) foreground = props.getProperty(elem, 'foreground') if foreground: w.headerItem().setForeground(col, foreground) self.column_counter += 1 elif isinstance(w, QtGui.QTableWidget): if len(elem) != 0: if elem.tag == 'column': item = self.createWidgetItem('QTableWidgetItem', elem, w.horizontalHeaderItem, self.column_counter) w.setHorizontalHeaderItem(self.column_counter, item) self.column_counter += 1 elif elem.tag == 'row': item = self.createWidgetItem('QTableWidgetItem', elem, w.verticalHeaderItem, self.row_counter) w.setVerticalHeaderItem(self.row_counter, item) self.row_counter += 1 def setZOrder(self, elem): # Designer can generate empty zorder elements. if elem.text is None: return # Designer allows the z-order of spacer items to be specified even # though they can't be raised, so ignore any missing raise_() method. try: getattr(self.toplevelWidget, elem.text).raise_() except AttributeError: # Note that uic issues a warning message. pass def createAction(self, elem): self.setupObject("QAction", self.currentActionGroup or self.toplevelWidget, elem) def createActionGroup(self, elem): action_group = self.setupObject("QActionGroup", self.toplevelWidget, elem) self.currentActionGroup = action_group self.traverseWidgetTree(elem) self.currentActionGroup = None widgetTreeItemHandlers = { "widget" : createWidget, "addaction" : addAction, "layout" : createLayout, "spacer" : createSpacer, "item" : handleItem, "action" : createAction, "actiongroup": createActionGroup, "column" : addHeader, "row" : addHeader, "zorder" : setZOrder, } def traverseWidgetTree(self, elem): for child in iter(elem): try: handler = self.widgetTreeItemHandlers[child.tag] except KeyError: continue handler(self, child) def createUserInterface(self, elem): # Get the names of the class and widget. cname = elem.attrib["class"] wname = elem.attrib["name"] # If there was no widget name then derive it from the class name. if not wname: wname = cname if wname.startswith("Q"): wname = wname[1:] wname = wname[0].lower() + wname[1:] self.toplevelWidget = self.createToplevelWidget(cname, wname) self.toplevelWidget.setObjectName(wname) DEBUG("toplevel widget is %s", self.toplevelWidget.metaObject().className()) self.wprops.setProperties(self.toplevelWidget, elem) self.stack.push(self.toplevelWidget) self.traverseWidgetTree(elem) self.stack.popWidget() self.addActions() self.setBuddies() self.setDelayedProps() def addActions(self): for widget, action_name in self.actions: if action_name == "separator": widget.addSeparator() else: DEBUG("add action %s to %s", action_name, widget.objectName()) action_obj = getattr(self.toplevelWidget, action_name) if isinstance(action_obj, QtGui.QMenu): widget.addAction(action_obj.menuAction()) elif not isinstance(action_obj, QtGui.QActionGroup): widget.addAction(action_obj) def setDelayedProps(self): for widget, layout, setter, args in self.wprops.delayed_props: if layout: widget = widget.layout() setter = getattr(widget, setter) setter(args) def setBuddies(self): for widget, buddy in self.wprops.buddies: DEBUG("%s is buddy of %s", buddy, widget.objectName()) try: widget.setBuddy(getattr(self.toplevelWidget, buddy)) except AttributeError: DEBUG("ERROR in ui spec: %s (buddy of %s) does not exist", buddy, widget.objectName()) def classname(self, elem): DEBUG("uiname is %s", elem.text) name = elem.text if name is None: name = "" self.uiname = name self.wprops.uiname = name self.setContext(name) def setContext(self, context): """ Reimplemented by a sub-class if it needs to know the translation context. """ pass def readDefaults(self, elem): self.defaults['margin'] = int(elem.attrib['margin']) self.defaults['spacing'] = int(elem.attrib['spacing']) def setTaborder(self, elem): lastwidget = None for widget_elem in elem: widget = getattr(self.toplevelWidget, widget_elem.text) if lastwidget is not None: self.toplevelWidget.setTabOrder(lastwidget, widget) lastwidget = widget def readResources(self, elem): """ Read a "resources" tag and add the module to import to the parser's list of them. """ try: iterator = getattr(elem, 'iter') except AttributeError: iterator = getattr(elem, 'getiterator') for include in iterator("include"): loc = include.attrib.get("location") # Apply the convention for naming the Python files generated by # pyrcc4. if loc and loc.endswith('.qrc'): mname = os.path.basename(loc[:-4] + self._resource_suffix) if mname not in self.resources: self.resources.append(mname) def createConnections(self, elem): def name2object(obj): if obj == self.uiname: return self.toplevelWidget else: return getattr(self.toplevelWidget, obj) for conn in iter(elem): QtCore.QObject.connect(name2object(conn.findtext("sender")), QtCore.SIGNAL(conn.findtext("signal")), self.factory.getSlot(name2object(conn.findtext("receiver")), conn.findtext("slot").split("(")[0])) QtCore.QMetaObject.connectSlotsByName(self.toplevelWidget) def customWidgets(self, elem): def header2module(header): """header2module(header) -> string Convert paths to C++ header files to according Python modules >>> header2module("foo/bar/baz.h") 'foo.bar.baz' """ if header.endswith(".h"): header = header[:-2] mpath = [] for part in header.split('/'): # Ignore any empty parts or those that refer to the current # directory. if part not in ('', '.'): if part == '..': # We should allow this for Python3. raise SyntaxError("custom widget header file name may not contain '..'.") mpath.append(part) return '.'.join(mpath) for custom_widget in iter(elem): classname = custom_widget.findtext("class") if classname.startswith("Q3"): raise NoSuchWidgetError(classname) self.factory.addCustomWidget(classname, custom_widget.findtext("extends") or "QWidget", header2module(custom_widget.findtext("header"))) def createToplevelWidget(self, classname, widgetname): raise NotImplementedError def buttonGroups(self, elem): for button_group in iter(elem): if button_group.tag == 'buttongroup': bg_name = button_group.attrib['name'] bg = ButtonGroup() self.button_groups[bg_name] = bg prop = self.getProperty(button_group, 'exclusive') if prop is not None: if prop.findtext('bool') == 'false': bg.exclusive = False # finalize will be called after the whole tree has been parsed and can be # overridden. def finalize(self): pass def parse(self, filename, resource_suffix, base_dir=''): self.wprops.set_base_dir(base_dir) self._resource_suffix = resource_suffix # The order in which the different branches are handled is important. # The widget tree handler relies on all custom widgets being known, and # in order to create the connections, all widgets have to be populated. branchHandlers = ( ("layoutdefault", self.readDefaults), ("class", self.classname), ("buttongroups", self.buttonGroups), ("customwidgets", self.customWidgets), ("widget", self.createUserInterface), ("connections", self.createConnections), ("tabstops", self.setTaborder), ("resources", self.readResources), ) document = parse(filename) version = document.getroot().attrib["version"] DEBUG("UI version is %s" % (version,)) # Right now, only version 4.0 is supported. assert version in ("4.0",) for tagname, actor in branchHandlers: elem = document.find(tagname) if elem is not None: actor(elem) self.finalize() w = self.toplevelWidget self.reset() return w @staticmethod def _form_layout_role(layout_position): if layout_position[3] > 1: role = QtGui.QFormLayout.SpanningRole elif layout_position[1] == 1: role = QtGui.QFormLayout.FieldRole else: role = QtGui.QFormLayout.LabelRole return role PyQt-x11-gpl-4.11.4/pyuic/uic/widget-plugins/0000755000076500000240000000000012536324426020626 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/pyuic/uic/widget-plugins/phonon.py0000644000076500000240000000310212536324426022475 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# # If pluginType is MODULE, the plugin loader will call moduleInformation. The # variable MODULE is inserted into the local namespace by the plugin loader. pluginType = MODULE # moduleInformation() must return a tuple (module, widget_list). If "module" # is "A" and any widget from this module is used, the code generator will write # "import A". If "module" is "A[.B].C", the code generator will write # "from A[.B] import C". Each entry in "widget_list" must be unique. def moduleInformation(): return "PyQt4.phonon", ("Phonon.SeekSlider", "Phonon.VideoPlayer", "Phonon.VolumeSlider") PyQt-x11-gpl-4.11.4/pyuic/uic/widget-plugins/qaxcontainer.py0000644000076500000240000000302512536324426023674 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# # If pluginType is MODULE, the plugin loader will call moduleInformation. The # variable MODULE is inserted into the local namespace by the plugin loader. pluginType = MODULE # moduleInformation() must return a tuple (module, widget_list). If "module" # is "A" and any widget from this module is used, the code generator will write # "import A". If "module" is "A[.B].C", the code generator will write # "from A[.B] import C". Each entry in "widget_list" must be unique. def moduleInformation(): return "PyQt4.QAxContainer", ("QAxWidget", ) PyQt-x11-gpl-4.11.4/pyuic/uic/widget-plugins/qscintilla.py0000644000076500000240000000302112536324426023337 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# # If pluginType is MODULE, the plugin loader will call moduleInformation. The # variable MODULE is inserted into the local namespace by the plugin loader. pluginType = MODULE # moduleInformation() must return a tuple (module, widget_list). If "module" # is "A" and any widget from this module is used, the code generator will write # "import A". If "module" is "A[.B].C", the code generator will write # "from A[.B] import C". Each entry in "widget_list" must be unique. def moduleInformation(): return "PyQt4.Qsci", ("QsciScintilla", ) PyQt-x11-gpl-4.11.4/pyuic/uic/widget-plugins/qtdeclarative.py0000644000076500000240000000303512536324426024031 0ustar philstaff00000000000000############################################################################# ## ## Copyright (c) 2015 Riverbank Computing Limited ## ## This file is part of PyQt4. ## ## This file may be used under the terms of the GNU General Public License ## version 3.0 as published by the Free Software Foundation and appearing in ## the file LICENSE included in the packaging of this file. Please review the ## following information to ensure the GNU General Public License version 3.0 ## requirements will be met: http://www.gnu.org/copyleft/gpl.html. ## ## If you do not wish to use this file under the terms of the GPL version 3.0 ## then you may purchase a commercial license. For more information contact ## info@riverbankcomputing.com. ## ## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ## ############################################################################# # If pluginType is MODULE, the plugin loader will call moduleInformation. The # variable MODULE is inserted into the local namespace by the plugin loader. pluginType = MODULE # moduleInformation() must return a tuple (module, widget_list). If "module" # is "A" and any widget from this module is used, the code generator will write # "import A". If "module" is "A[.B].C", the code generator will write # "from A[.B] import C". Each entry in "widget_list" must be unique. def moduleInformation(): return "PyQt4.QtDeclarative", ("QDeclarativeView", ) PyQt-x11-gpl-4.11.4/pyuic/uic/widget-plugins/qtwebkit.py0000644000076500000240000000470412536324426023037 0ustar philstaff00000000000000############################################################################# ## ## Copyright (C) 2011 Riverbank Computing Limited. ## Copyright (C) 2006 Thorsten Marek. ## All right reserved. ## ## This file is part of PyQt. ## ## You may use this file under the terms of the GPL v2 or the revised BSD ## license as follows: ## ## "Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are ## met: ## * Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## * Neither the name of the Riverbank Computing Limited nor the names ## of its contributors may be used to endorse or promote products ## derived from this software without specific prior written ## permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ## ############################################################################# # If pluginType is MODULE, the plugin loader will call moduleInformation. The # variable MODULE is inserted into the local namespace by the plugin loader. pluginType = MODULE # moduleInformation() must return a tuple (module, widget_list). If "module" # is "A" and any widget from this module is used, the code generator will write # "import A". If "module" is "A[.B].C", the code generator will write # "from A[.B] import C". Each entry in "widget_list" must be unique. def moduleInformation(): return "PyQt4.QtWebKit", ("QWebView", ) PyQt-x11-gpl-4.11.4/qpy/0000755000076500000240000000000012536324426014564 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/qpy/QtCore/0000755000076500000240000000000012536324426015761 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore.pro0000644000076500000240000000554212536324426020173 0ustar philstaff00000000000000# This is the qmake project file for the QPy support code for the QtCore # module. Note that it is not required by configure-ng.py. # # Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. CONFIG += static warn_on TARGET = qpycore TEMPLATE = lib DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x04ffff # Python's type system relies on type punning. !win32: QMAKE_CXXFLAGS += -fno-strict-aliasing # This seems to be necessary for Qt v4.5.2. win32: INCLUDEPATH += . SOURCES = \ qpycore_qabstracteventdispatcher.cpp \ qpycore_chimera.cpp \ qpycore_chimera_signature.cpp \ qpycore_chimera_storage.cpp \ qpycore_classinfo.cpp \ qpycore_init.cpp \ qpycore_misc.cpp \ qpycore_post_init.cpp \ qpycore_pyqtboundsignal.cpp \ qpycore_pyqtconfigure.cpp \ qpycore_pyqtmethodproxy.cpp \ qpycore_pyqtproperty.cpp \ qpycore_pyqtproxy.cpp \ qpycore_pyqtpyobject.cpp \ qpycore_pyqtsignal.cpp \ qpycore_pyqtslot.cpp \ qpycore_qmetaobject.cpp \ qpycore_qmetaobject_helpers.cpp \ qpycore_qobject_getattr.cpp \ qpycore_qobject_helpers.cpp \ qpycore_qpynullvariant.cpp \ qpycore_qstring.cpp \ qpycore_qstringlist.cpp \ qpycore_sip_helpers.cpp \ qpycore_types.cpp \ qpycore_qvariant.cpp \ qpycore_qvariant_value.cpp HEADERS = \ qpycore_api.h \ qpycore_chimera.h \ qpycore_classinfo.h \ qpycore_misc.h \ qpycore_namespace.h \ qpycore_pyqtboundsignal.h \ qpycore_pyqtproperty.h \ qpycore_pyqtproxy.h \ qpycore_pyqtpyobject.h \ qpycore_pyqtsignal.h \ qpycore_pyqtmethodproxy.h \ qpycore_qmetaobjectbuilder.h \ qpycore_qobject_helpers.h \ qpycore_qpynullvariant.h \ qpycore_sip.h \ qpycore_sip_helpers.h \ qpycore_types.h PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_api.h0000644000076500000240000000765312536324426020460 0ustar philstaff00000000000000// This defines the API provided by this library. It must not be explicitly // included by the library itself. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_API_H #define _QPYCORE_API_H #include #include #include #include "qpycore_namespace.h" #include "qpycore_shared.h" QT_BEGIN_NAMESPACE class QAbstractEventDispatcher; class QObject; QT_END_NAMESPACE // Support for pyqtSlot() and pyqtSignature(). PyObject *qpycore_pyqtslot(PyObject *args, PyObject *kwds); PyObject *qpycore_pyqtsignature(PyObject *args, PyObject *kwds); // Support for pyqtConfigure(). PyObject *qpycore_pyqtconfigure(PyObject *self, PyObject *args, PyObject *kwds); // Support for the QObject %FinalisationCode. int qpycore_qobject_finalisation(PyObject *self, QObject *qobj, PyObject *kwds, PyObject **updated_kwds); // Support for converting between PyObject and QString. PyObject *qpycore_PyObject_FromQString(const QString &qstr); QString qpycore_PyObject_AsQString(PyObject *obj); #if !defined(QT_DEPRECATED_SINCE) #define QT_DEPRECATED_SINCE(m, n) 1 #endif #if QT_DEPRECATED_SINCE(5, 0) const char *qpycore_encode(PyObject **s, QCoreApplication::Encoding encoding); #endif // Support for converting between PyObject and QStringList. PyObject *qpycore_PyObject_FromQStringList(const QStringList &qstrlst); QStringList qpycore_PySequence_AsQStringList(PyObject *obj); int qpycore_PySequence_Check_QStringList(PyObject *obj); // Support for converting between PyObject and QVariant. PyObject *qpycore_PyObject_FromQVariant(const QVariant &qvar); QVariant qpycore_PyObject_AsQVariant(PyObject *obj, int *is_err); // Support for Q_CLASSINFO(). PyObject *qpycore_ClassInfo(const char *name, const char *value); // Support for Q_FLAGS and Q_ENUMS. PyObject *qpycore_register_int_types(PyObject *type_names); // Support for creating QGenericArgument and QGenericReturnArgument instances. PyObject *qpycore_ArgumentFactory(PyObject *type, PyObject *data); PyObject *qpycore_ReturnFactory(PyObject *type); PyObject *qpycore_ReturnValue(PyObject *gra); // Support for QObject.__getattr__(). PyObject *qpycore_qobject_getattr(QObject *qobj, PyObject *py_qobj, const char *name); // Support for QObject.staticMetaObject %GetCode. PyObject *qpycore_qobject_staticmetaobject(PyObject *type_obj); // Support for emitting signals. bool qpycore_qobject_emit(QObject *qtx, const char *sig, PyObject *sigargs); #if QT_VERSION < 0x050000 // Support for QAbstractEventDispatcher.setEventFilter(). PyObject *qpycore_qabstracteventdispatcher_seteventfilter( QAbstractEventDispatcher *disp, PyObject *filter); #endif // Support for QMetaObject.connectSlotsByName(). void qpycore_qmetaobject_connectslotsbyname(QObject *qobj, PyObject *qobj_wrapper); // Support for QPyNullVariant. QVariant *qpycore_qpynullvariant(PyObject *type); // Support for pyqt[Set]PickleProtocol(). extern PyObject *qpycore_pickle_protocol; // Utilities. #if PY_MAJOR_VERSION >= 3 void qpycore_Unicode_ConcatAndDel(PyObject **string, PyObject *newpart); #endif // Initialisation. void qpycore_init(); void qpycore_post_init(PyObject *module_dict); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_chimera.cpp0000644000076500000240000013605212536324426021646 0ustar philstaff00000000000000// This is the implementation of the Chimera class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_misc.h" #include "qpycore_pyqtpyobject.h" #include "qpycore_qpynullvariant.h" #include "qpycore_sip.h" #include "qpycore_types.h" // The registered int types. QList Chimera::_registered_int_types; // The cache of previously parsed argument type lists. QHash > Chimera::_previously_parsed; // The registered QVariant to PyObject convertors. Chimera::ToPyObjectConvertors Chimera::_registered_PyObject_convertors; // The registered PyObject to QVariant convertors. Chimera::ToQVariantConvertors Chimera::_registered_QVariant_convertors; // The registered PyObject to QVariant data convertors. Chimera::ToQVariantDataConvertors Chimera::_registered_QVariant_data_convertors; #if QT_VERSION >= 0x050000 const int UnknownType = QMetaType::UnknownType; #else const int UnknownType = QMetaType::Void; #endif // Construct an invalid type. Chimera::Chimera() : _type(0), _py_type(0), _metatype(UnknownType), _inexact(false), _is_flag(false) { } // Construct a copy. Chimera::Chimera(const Chimera &other) { _type = other._type; _py_type = other._py_type; Py_XINCREF(_py_type); _metatype = other._metatype; _inexact = other._inexact; _is_flag = other._is_flag; _name = other._name; } // Destroy the type. Chimera::~Chimera() { Py_XDECREF(_py_type); } // Register the name of an int type. void Chimera::registerIntType(const char *name) { QByteArray name_ba(name); if (!_registered_int_types.contains(name_ba)) _registered_int_types.append(name_ba); } // Register a QVariant to PyObject convertor. void Chimera::registerToPyObject(ToPyObjectFn fn) { _registered_PyObject_convertors.append(fn); } // Register a PyObject to QVariant convertor. void Chimera::registerToQVariant(ToQVariantFn fn) { _registered_QVariant_convertors.append(fn); } // Register a PyObject to QVariant data convertor. void Chimera::registerToQVariantData(ToQVariantDataFn fn) { _registered_QVariant_data_convertors.append(fn); } // Parse an object as a type. const Chimera *Chimera::parse(PyObject *obj) { Chimera *ct = new Chimera; bool parse_ok; if (PyType_Check(obj)) { // Parse the type object. parse_ok = ct->parse_py_type((PyTypeObject *)obj); } else { const char *cpp_type_name = sipString_AsASCIIString(&obj); if (cpp_type_name) { // Always use normalised type names so that we have a consistent // standard. QByteArray norm_name = QMetaObject::normalizedType(cpp_type_name); Py_DECREF(obj); // Parse the type name. parse_ok = ct->parse_cpp_type(norm_name); } else { parse_ok = false; } } if (!parse_ok) { delete ct; return 0; } return ct; } // Parse a C++ type name as a type. const Chimera *Chimera::parse(const QByteArray &name) { Chimera *ct = new Chimera; if (!ct->parse_cpp_type(name)) { delete ct; return 0; } return ct; } // Parse a meta-property as a type. const Chimera *Chimera::parse(const QMetaProperty &mprop) { Chimera *ct = new Chimera; const char *type_name = mprop.typeName(); ct->_type = sipFindType(type_name); ct->_metatype = mprop.userType(); ct->_inexact = true; ct->_is_flag = mprop.isFlagType(); ct->_name = type_name; return ct; } // Parse a normalised C++ signature as a list of types. Chimera::Signature *Chimera::parse(const QByteArray &sig, const char *context) { // Extract the argument list. int start_idx = sig.indexOf('('); if (start_idx < 0) start_idx = 0; else ++start_idx; int end_idx = sig.lastIndexOf(')'); int len; if (end_idx < start_idx) len = -1; else len = end_idx - start_idx; // Parse each argument type. Chimera::Signature *parsed_sig = new Chimera::Signature(sig, true); if (len > 0) { QByteArray args_str = sig.mid(start_idx, len); // Check we haven't already done it. QList parsed_args = _previously_parsed.value(args_str); if (parsed_args.isEmpty()) { int i, arg_start, template_level; i = arg_start = template_level = 0; // Extract each argument allowing for commas in templates. for (;;) { char ch = (i < args_str.size() ? args_str.at(i) : '\0'); QByteArray arg; switch (ch) { case '<': ++template_level; break; case '>': --template_level; break; case '\0': arg = args_str.mid(arg_start, i - arg_start); break; case ',': if (template_level == 0) { arg = args_str.mid(arg_start, i - arg_start); arg_start = i + 1; } break; } if (!arg.isEmpty()) { Chimera *ct = new Chimera; if (!ct->parse_cpp_type(arg)) { delete ct; delete parsed_sig; qDeleteAll(parsed_args.constBegin(), parsed_args.constEnd()); raiseParseException(arg.constData(), context); return 0; } parsed_args.append(ct); if (ch == '\0') break; } ++i; } // Only parse once. _previously_parsed.insert(args_str, parsed_args); } parsed_sig->parsed_arguments = parsed_args; } return parsed_sig; } // Parses a C++ signature given as a Python tuple of types and an optional // name. Return 0 if there was an error. Chimera::Signature *Chimera::parse(PyObject *types, const char *name, const char *context) { if (!name) name = ""; Chimera::Signature *parsed_sig = new Chimera::Signature(name, false); parsed_sig->signature.append('('); parsed_sig->py_signature.append('['); for (SIP_SSIZE_T i = 0; i < PyTuple_GET_SIZE(types); ++i) { PyObject *type = PyTuple_GET_ITEM(types, i); const Chimera *parsed_type = parse(type); if (!parsed_type) { delete parsed_sig; raiseParseException(type, context); return 0; } parsed_sig->parsed_arguments.append(parsed_type); if (i > 0) { parsed_sig->signature.append(','); parsed_sig->py_signature.append(", "); } parsed_sig->signature.append(parsed_type->name()); if (parsed_type->_py_type) parsed_sig->py_signature.append(((PyTypeObject *)parsed_type->_py_type)->tp_name); else parsed_sig->py_signature.append(parsed_type->name()); } parsed_sig->signature.append(')'); parsed_sig->py_signature.append(']'); return parsed_sig; } // Raise an exception after parse() of a Python type has failed. void Chimera::raiseParseException(PyObject *type, const char *context) { if (PyType_Check(type)) { PyErr_Format(PyExc_TypeError, "Python type '%s' is not supported as %s type", ((PyTypeObject *)type)->tp_name, context); } else { const char *cpp_type_name = sipString_AsASCIIString(&type); if (cpp_type_name) { raiseParseException(cpp_type_name, context); Py_DECREF(type); } } } // Raise an exception after parse() of a C++ type has failed. void Chimera::raiseParseException(const char *type, const char *context) { PyErr_Format(PyExc_TypeError, "C++ type '%s' is not supported as %s type", type, context); } // Parse the given Python type object. bool Chimera::parse_py_type(PyTypeObject *type_obj) { const sipTypeDef *td = sipTypeFromPyTypeObject(type_obj); if (td) { if (sipTypeIsNamespace(td)) return false; _type = td; _name = sipTypeName(td); if (sipTypeIsClass(td)) set_flag(); if (sipTypeIsEnum(td) || isFlag()) { _metatype = QMetaType::Int; } else { bool is_a_QObject = PyType_IsSubtype(type_obj, sipTypeAsPyTypeObject(sipType_QObject)); // If there is no assignment helper then assume it is a // pointer-type. if (!get_assign_helper()) _name.append('*'); _metatype = QMetaType::type(_name.constData()); // This will deal with cases where the registered type is a // super-class and specifically allows for multiple inheritance. // The problem we are solving is that we want a QGraphicsWidget to // be handled as a QGraphicsItem (which Qt registers) rather than a // QObject, specifically in the value passed as a QVariant to // QGraphicsItem::itemChange(). This solution means that it will // always be passed as a QGraphicsItem, even if there are // circumstances where it should be passed as a QObject. If we // come across such a circumstance then we may need to remove this // and implement a more specific solution in %MethodCode for the // various itemChange() implementations. if (_metatype == 0 && is_a_QObject) { #if QT_VERSION >= 0x050000 static int QWidget_metatype = -1; // Qt5 seems to register QWidget. if (QWidget_metatype < 0) QWidget_metatype = QMetaType::type("QWidget*"); #endif PyObject *mro = type_obj->tp_mro; Q_ASSERT(PyTuple_Check(mro)); Q_ASSERT(PyTuple_GET_SIZE(mro) >= 3); for (SIP_SSIZE_T i = 1; i < PyTuple_GET_SIZE(mro) - 1; ++i) { PyTypeObject *sc = (PyTypeObject *)PyTuple_GET_ITEM(mro, i); if (sc == sipSimpleWrapper_Type || sc == sipWrapper_Type) continue; QByteArray sc_name(sc->tp_name); // QObjects are always pointers. sc_name.append('*'); int sc_metatype = QMetaType::type(sc_name.constData()); #if QT_VERSION >= 0x050000 if (sc_metatype >= QMetaType::User && sc_metatype != QWidget_metatype) #else if (sc_metatype >= QMetaType::User) #endif { _metatype = sc_metatype; _type = sipTypeFromPyTypeObject(sc); _name = sc_name; _py_type = (PyObject *)sc; Py_INCREF(_py_type); return true; } } } // If it is a user type then it must be a type that SIP knows // about but was registered by Qt. if (_metatype < QMetaType::User) { #if QT_VERSION < 0x050000 if (sipType_QWidget && PyType_IsSubtype(type_obj, sipTypeAsPyTypeObject(sipType_QWidget))) { _metatype = QMetaType::QWidgetStar; } else if (is_a_QObject) #else if (is_a_QObject) #endif { _metatype = QMetaType::QObjectStar; } else if (!sipIsExactWrappedType((sipWrapperType *)type_obj)) { // It must be a (non-QObject, non-QWidget) Python // sub-class so make sure it gets wrapped in a // PyQt_PyObject. _type = 0; _metatype = PyQt_PyObject::metatype; _name.clear(); } } } } #if PY_MAJOR_VERSION >= 3 else if (type_obj == &PyUnicode_Type) { _type = sipType_QString; _metatype = QMetaType::QString; } #else else if (type_obj == &PyString_Type || type_obj == &PyUnicode_Type) { // In this case we accept that the reverse conversion will result in an // object of a different type (i.e. a QString rather than a Python // string). _type = sipType_QString; _metatype = QMetaType::QString; } #endif else if (type_obj == &PyBool_Type) { _metatype = QMetaType::Bool; } #if PY_MAJOR_VERSION < 3 else if (type_obj == &PyInt_Type) { // We choose to map to a C++ int, even though a Python int is // potentially much larger, as it represents the most common usage in // Qt. However we will allow a larger type to be used if the context // is right. _metatype = QMetaType::Int; _inexact = true; } #endif else if (type_obj == &PyLong_Type) { // We choose to map to a C++ int for the same reasons as above and to // be consistent with Python3 where everything is a long object. If // this isn't appropriate the user can always use a string to specify // the exact C++ type they want. _metatype = QMetaType::Int; _inexact = true; } else if (type_obj == &PyFloat_Type) { _metatype = QMetaType::Double; } // Fallback to using a PyQt_PyObject. if (_metatype == UnknownType) _metatype = PyQt_PyObject::metatype; // If there is no name so far then use the meta-type name. if (_name.isEmpty()) _name = QMetaType::typeName(_metatype); _py_type = (PyObject *)type_obj; Py_INCREF(_py_type); return true; } // Set the internal flag flag. void Chimera::set_flag() { if (qpycore_is_pyqt4_class(_type)) _is_flag = ((pyqt4ClassTypeDef *)_type)->flags & 0x01; } // Update a C++ type so that any typedefs and registered ints are resolved. QByteArray Chimera::resolve_types(const QByteArray &type) { // Split into a base type and a possible list of template arguments. QByteArray resolved = type.simplified(); // Get the raw type, ie. without any "const", "&" or "*". QByteArray raw_type; int original_raw_start; if (resolved.startsWith("const ")) original_raw_start = 6; else original_raw_start = 0; raw_type = resolved.mid(original_raw_start); while (raw_type.endsWith('&') || raw_type.endsWith('*') || raw_type.endsWith(' ')) raw_type.chop(1); int original_raw_len = raw_type.size(); if (original_raw_len == 0) return QByteArray(); // Get any template arguments. QList args; int tstart = raw_type.indexOf('<'); if (tstart >= 0) { // Make sure the template arguments are terminated. if (!raw_type.endsWith('>')) return QByteArray(); // Split the template arguments taking nested templates into account. int depth = 1, arg_start = tstart + 1; for (int i = arg_start; i < raw_type.size(); ++i) { int arg_end = -1; char ch = raw_type.at(i); if (ch == '<') { ++depth; } else if (ch == '>') { --depth; if (depth < 0) return QByteArray(); if (depth == 0) arg_end = i; } else if (ch == ',' && depth == 1) { arg_end = i; } if (arg_end >= 0) { QByteArray arg = resolve_types(raw_type.mid(arg_start, arg_end - arg_start)); if (arg.isEmpty()) return QByteArray(); args.append(arg); arg_start = arg_end + 1; } } if (depth != 0) return QByteArray(); // Remove the template arguments. raw_type.truncate(tstart); } // Expand any typedef. const char *base_type = sipResolveTypedef(raw_type.constData()); if (base_type) raw_type = base_type; // Do the same for any registered int types. if (_registered_int_types.contains(raw_type)) raw_type = "int"; // Add any (now resolved) template arguments. if (args.count() > 0) { raw_type.append('<'); for (QList::const_iterator it = args.begin();;) { raw_type.append(*it); if (++it == args.end()) break; raw_type.append(','); } if (raw_type.endsWith('>')) raw_type.append(' '); raw_type.append('>'); } // Replace the original raw type with the resolved one. resolved.replace(original_raw_start, original_raw_len, raw_type); return resolved; } // Parse the given C++ type name. bool Chimera::parse_cpp_type(const QByteArray &type) { _name = type; // Resolve any types. QByteArray resolved = resolve_types(type); if (resolved.isEmpty()) return false; // See if the type is known to Qt. _metatype = QMetaType::type(resolved.constData()); // If not then use the PyQt_PyObject wrapper. if (_metatype == UnknownType) _metatype = PyQt_PyObject::metatype; // See if the type (without a pointer) is known to SIP. bool is_ptr = resolved.endsWith('*'); if (is_ptr) { resolved.chop(1); if (resolved.endsWith('*')) return false; } _type = sipFindType(resolved.constData()); if (!_type) { // This is the only fundamental pointer type recognised by Qt. if (_metatype == QMetaType::VoidStar) return true; // This is 'int', 'bool', etc. if (_metatype != PyQt_PyObject::metatype && !is_ptr) return true; if ((resolved == "char" || resolved == "const char") && is_ptr) { // This is a special value meaning a (hopefully) '\0' terminated // string. _metatype = -1; return true; } // This is an explicit 'PyQt_PyObject'. if (resolved == "PyQt_PyObject" && !is_ptr) return true; return false; } if (sipTypeIsNamespace(_type)) return false; if (sipTypeIsClass(_type)) { set_flag(); if (is_ptr) { PyTypeObject *type_obj = sipTypeAsPyTypeObject(_type); #if QT_VERSION < 0x050000 if (sipType_QWidget && PyType_IsSubtype(type_obj, sipTypeAsPyTypeObject(sipType_QWidget))) { _metatype = QMetaType::QWidgetStar; } else if (PyType_IsSubtype(type_obj, sipTypeAsPyTypeObject(sipType_QObject))) #else if (PyType_IsSubtype(type_obj, sipTypeAsPyTypeObject(sipType_QObject))) #endif { _metatype = QMetaType::QObjectStar; } } } // We don't support pointers to enums. if (sipTypeIsEnum(_type) && is_ptr) _type = 0; if (sipTypeIsEnum(_type) || isFlag()) _metatype = QMetaType::Int; return true; } // Convert a Python object to C++ at a given address. This has a lot in common // with the method that converts to a QVariant. However, unlike that method, // we have no control over the size of the destination storage and so must // convert exactly as requested. bool Chimera::fromPyObject(PyObject *py, void *cpp) const { // Let any registered convertors have a go first. for (int i = 0; i < _registered_QVariant_data_convertors.count(); ++i) { bool ok; if (_registered_QVariant_data_convertors.at(i)(py, cpp, _metatype, &ok)) return ok; } int iserr = 0; PyErr_Clear(); switch (_metatype) { case QMetaType::Bool: *reinterpret_cast(cpp) = PyLong_AsLong(py); break; case QMetaType::Int: // Truncate it if necessary to fit into a C++ int. This will // automatically handle enums and flag types as Python knows how to // convert them to ints. #if PY_MAJOR_VERSION >= 3 *reinterpret_cast(cpp) = PyLong_AsLong(py); #else *reinterpret_cast(cpp) = PyInt_AsLong(py); #endif break; case QMetaType::UInt: *reinterpret_cast(cpp) = sipLong_AsUnsignedLong(py); break; case QMetaType::Double: *reinterpret_cast(cpp) = PyFloat_AsDouble(py); break; case QMetaType::VoidStar: *reinterpret_cast(cpp) = sipConvertToVoidPtr(py); break; case QMetaType::Long: *reinterpret_cast(cpp) = PyLong_AsLong(py); break; case QMetaType::LongLong: *reinterpret_cast(cpp) = PyLong_AsLongLong(py); break; case QMetaType::Short: *reinterpret_cast(cpp) = PyLong_AsLong(py); break; case QMetaType::Char: if (SIPBytes_Check(py) && SIPBytes_GET_SIZE(py) == 1) *reinterpret_cast(cpp) = *SIPBytes_AS_STRING(py); else iserr = 1; break; case QMetaType::ULong: *reinterpret_cast(cpp) = sipLong_AsUnsignedLong(py); break; case QMetaType::ULongLong: *reinterpret_cast(cpp) = static_cast(PyLong_AsUnsignedLongLong(py)); break; case QMetaType::UShort: *reinterpret_cast(cpp) = sipLong_AsUnsignedLong(py); break; case QMetaType::UChar: if (SIPBytes_Check(py) && SIPBytes_GET_SIZE(py) == 1) *reinterpret_cast(cpp) = *SIPBytes_AS_STRING(py); else iserr = 1; break; case QMetaType::Float: *reinterpret_cast(cpp) = PyFloat_AsDouble(py); break; case QMetaType::QObjectStar: *reinterpret_cast(cpp) = sipForceConvertToType(py, sipType_QObject, 0, SIP_NO_CONVERTORS, 0, &iserr); break; #if QT_VERSION < 0x050000 case QMetaType::QWidgetStar: if (sipType_QWidget) { *reinterpret_cast(cpp) = sipForceConvertToType(py, sipType_QWidget, 0, SIP_NO_CONVERTORS, 0, &iserr); } else { iserr = 1; } break; #endif case QMetaType::QVariantList: { QVariantList ql; if (to_QVariantList(py, ql)) *reinterpret_cast(cpp) = ql; else iserr = 1; break; } case QMetaType::QVariantMap: { QVariantMap qm; if (to_QVariantMap(py, qm)) *reinterpret_cast(cpp) = qm; else iserr = 1; break; } #if QT_VERSION >= 0x040500 case QMetaType::QVariantHash: { QVariantHash qh; if (to_QVariantHash(py, qh)) *reinterpret_cast(cpp) = qh; else iserr = 1; break; } #endif case -1: { char **ptr = reinterpret_cast(cpp); if (SIPBytes_Check(py)) *ptr = SIPBytes_AS_STRING(py); else if (py == Py_None) *ptr = 0; else iserr = 1; break; } default: if (_type) { if (_name.endsWith('*')) { // This must be a pointer-type. *reinterpret_cast(cpp) = sipForceConvertToType(py, _type, 0, SIP_NO_CONVERTORS, 0, &iserr); } else { // This must be a value-type. sipAssignFunc assign = get_assign_helper(); if (assign) { int state; void *value_class; value_class = sipForceConvertToType(py, _type, 0, SIP_NOT_NONE, &state, &iserr); if (!iserr) assign(cpp, 0, value_class); sipReleaseType(value_class, _type, state); } else { iserr = 1; } } } else { iserr = 1; } } if (iserr || PyErr_Occurred()) { PyErr_Format(PyExc_TypeError, "unable to convert a Python '%s' object to a C++ '%s' instance", Py_TYPE(py)->tp_name, _name.constData()); return false; } return true; } // Return the assignment helper for the type, if any. sipAssignFunc Chimera::get_assign_helper() const { if (sipTypeIsClass(_type)) return ((sipClassTypeDef *)_type)->ctd_assign; if (sipTypeIsMapped(_type)) return ((sipMappedTypeDef *)_type)->mtd_assign; return 0; } // Convert a Python object to a QVariant. bool Chimera::fromPyObject(PyObject *py, QVariant *var, bool strict) const { // Deal with the simple case of wrapping the Python object rather than // converting it. if (_type != sipType_QVariant && _metatype == PyQt_PyObject::metatype) { // If the type was specified by a Python type (as opposed to // 'PyQt_PyObject') then check the object is an instance of it. if (_py_type && !PyObject_IsInstance(py, _py_type)) return false; *var = keep_as_pyobject(py); return true; } // Let any registered convertors have a go first. for (int i = 0; i < _registered_QVariant_convertors.count(); ++i) { bool ok; if (_registered_QVariant_convertors.at(i)(py, var, &ok)) return ok; } int iserr = 0, value_class_state; void *ptr_class, *value_class = 0; // Temporary storage for different types. union { bool tmp_bool; int tmp_int; unsigned int tmp_unsigned_int; double tmp_double; void *tmp_void_ptr; long tmp_long; qlonglong tmp_qlonglong; short tmp_short; char tmp_char; unsigned long tmp_unsigned_long; qulonglong tmp_qulonglong; unsigned short tmp_unsigned_short; unsigned char tmp_unsigned_char; float tmp_float; } tmp_storage; void *variant_data = &tmp_storage; PyErr_Clear(); QVariant variant; int metatype_used = _metatype; switch (_metatype) { case QMetaType::Bool: tmp_storage.tmp_bool = PyLong_AsLong(py); break; case QMetaType::Int: if (!_inexact || isEnum() || isFlag()) { // It must fit into a C++ int. #if PY_MAJOR_VERSION >= 3 tmp_storage.tmp_int = PyLong_AsLong(py); #else tmp_storage.tmp_int = PyInt_AsLong(py); #endif } else { // Fit it into the smallest C++ type we can. qlonglong qll = PyLong_AsLongLong(py); if (PyErr_Occurred()) { // Try again in case the value is unsigned and will fit with // the extra bit. PyErr_Clear(); qulonglong qull = static_cast(PyLong_AsUnsignedLongLong(py)); if (PyErr_Occurred()) { // It won't fit into any C++ type so pass it as a Python // object. PyErr_Clear(); *var = keep_as_pyobject(py); metatype_used = UnknownType; } else { tmp_storage.tmp_qulonglong = qull; metatype_used = QMetaType::ULongLong; } } else if ((qlonglong)(int)qll == qll) { // It fits in a C++ int. tmp_storage.tmp_int = qll; } else if ((qulonglong)(unsigned int)qll == (qulonglong)qll) { // The extra bit is enough for it to fit. tmp_storage.tmp_unsigned_int = qll; metatype_used = QMetaType::UInt; } else { // This fits. tmp_storage.tmp_qlonglong = qll; metatype_used = QMetaType::LongLong; } } break; case QMetaType::UInt: tmp_storage.tmp_unsigned_int = sipLong_AsUnsignedLong(py); break; case QMetaType::Double: tmp_storage.tmp_double = PyFloat_AsDouble(py); break; case QMetaType::VoidStar: tmp_storage.tmp_void_ptr = sipConvertToVoidPtr(py); break; case QMetaType::Long: tmp_storage.tmp_long = PyLong_AsLong(py); break; case QMetaType::LongLong: tmp_storage.tmp_qlonglong = PyLong_AsLongLong(py); break; case QMetaType::Short: tmp_storage.tmp_short = PyLong_AsLong(py); break; case QMetaType::Char: if (SIPBytes_Check(py) && SIPBytes_GET_SIZE(py) == 1) tmp_storage.tmp_char = *SIPBytes_AS_STRING(py); else iserr = 1; break; case QMetaType::ULong: tmp_storage.tmp_unsigned_long = sipLong_AsUnsignedLong(py); break; case QMetaType::ULongLong: tmp_storage.tmp_qulonglong = static_cast(PyLong_AsUnsignedLongLong(py)); break; case QMetaType::UShort: tmp_storage.tmp_unsigned_short = sipLong_AsUnsignedLong(py); break; case QMetaType::UChar: if (SIPBytes_Check(py) && SIPBytes_GET_SIZE(py) == 1) tmp_storage.tmp_unsigned_char = *SIPBytes_AS_STRING(py); else iserr = 1; break; case QMetaType::Float: tmp_storage.tmp_float = PyFloat_AsDouble(py); break; case QMetaType::QObjectStar: tmp_storage.tmp_void_ptr = sipForceConvertToType(py, sipType_QObject, 0, SIP_NO_CONVERTORS, 0, &iserr); break; #if QT_VERSION < 0x050000 case QMetaType::QWidgetStar: if (sipType_QWidget) { tmp_storage.tmp_void_ptr = sipForceConvertToType(py, sipType_QWidget, 0, SIP_NO_CONVERTORS, 0, &iserr); } else { iserr = 1; } break; #endif case QMetaType::QVariantList: { QVariantList ql; if (to_QVariantList(py, ql)) { *var = QVariant(ql); metatype_used = UnknownType; } else { iserr = 1; } break; } case QMetaType::QVariantMap: { QVariantMap qm; if (to_QVariantMap(py, qm)) { *var = QVariant(qm); metatype_used = UnknownType; } else if (strict) { iserr = 1; } else { // Assume the failure is because the key was the wrong type. PyErr_Clear(); *var = keep_as_pyobject(py); metatype_used = UnknownType; } break; } #if QT_VERSION >= 0x040500 case QMetaType::QVariantHash: { QVariantHash qh; if (to_QVariantHash(py, qh)) { *var = QVariant(qh); metatype_used = UnknownType; } else { iserr = 1; } break; } #endif case -1: metatype_used = QMetaType::VoidStar; if (SIPBytes_Check(py)) tmp_storage.tmp_void_ptr = SIPBytes_AS_STRING(py); else if (py == Py_None) tmp_storage.tmp_void_ptr = 0; else iserr = 1; break; default: if (_type) { if (_name.endsWith('*')) { ptr_class = sipForceConvertToType(py, _type, 0, SIP_NO_CONVERTORS, 0, &iserr); variant_data = &ptr_class; } else { value_class = sipForceConvertToType(py, _type, 0, SIP_NOT_NONE, &value_class_state, &iserr); variant_data = value_class; } } else { // This is a class we don't recognise. iserr = 1; } } if (iserr || PyErr_Occurred()) { PyErr_Format(PyExc_TypeError, "unable to convert a Python '%s' object to a C++ '%s' instance", Py_TYPE(py)->tp_name, _name.constData()); iserr = 1; } else if (_type == sipType_QVariant) { *var = QVariant(*reinterpret_cast(variant_data)); } else if (metatype_used != UnknownType) { *var = QVariant(metatype_used, variant_data); } // Release any temporary value-class instance now that QVariant will have // made a copy. if (value_class) sipReleaseType(value_class, _type, value_class_state); return (iserr == 0); } // Convert a Python object to a QVariant based on the type of the object. QVariant Chimera::fromAnyPyObject(PyObject *py, int *is_err) { QVariant variant; if (py != Py_None) { Chimera ct; if (ct.parse_py_type(Py_TYPE(py))) { // If the type is a list or dict then try and convert it to a // QVariantList or QVariantMap respectively if possible. if (Py_TYPE(py) == &PyList_Type) ct._metatype = QMetaType::QVariantList; else if (Py_TYPE(py) == &PyDict_Type) ct._metatype = QMetaType::QVariantMap; // The conversion is non-strict in case the type was a dict and we // can't convert it to a QVariantMap. if (!ct.fromPyObject(py, &variant, false)) { *is_err = 1; } } else { *is_err = 1; } } return variant; } // Convert a QVariant to Python. PyObject *Chimera::toPyObject(const QVariant &var) const { if (_type != sipType_QVariant) { // A sanity check. if (_metatype != var.userType()) { PyErr_Format(PyExc_TypeError, "unable to convert a QVariant of type %d to a QMetaType of type %d", var.userType(), _metatype); return 0; } // Deal with the simple case of unwrapping a Python object rather than // converting it. if (_type != sipType_QVariant && _metatype == PyQt_PyObject::metatype) { #if QT_VERSION >= 0x050000 PyQt_PyObject pyobj_wrapper = var.value(); #else PyQt_PyObject pyobj_wrapper = qVariantValue(var); #endif if (!pyobj_wrapper.pyobject) { PyErr_SetString(PyExc_TypeError, "unable to convert a QVariant back to a Python object"); return 0; } Py_INCREF(pyobj_wrapper.pyobject); return pyobj_wrapper.pyobject; } } // Let any registered convertors have a go first. for (int i = 0; i < _registered_PyObject_convertors.count(); ++i) { PyObject *py; if (_registered_PyObject_convertors.at(i)(&var, &py)) return py; } return toPyObject(const_cast(var.data())); } // Convert a C++ object at an arbitary address to Python. PyObject *Chimera::toPyObject(void *cpp) const { if (_metatype == PyQt_PyObject::metatype) { if (_type) { // SIP knows the type (therefore it isn't really wrapped in a // PyQt_PyObject) but it's not registered with Qt. if (_name.endsWith('*')) cpp = *reinterpret_cast(cpp); return sipConvertFromType(cpp, _type, 0); } else { // Otherwise unwrap the Python object. PyQt_PyObject *pyobj_wrapper = reinterpret_cast(cpp); if (!pyobj_wrapper->pyobject) { PyErr_SetString(PyExc_TypeError, "unable to convert a QVariant back to a Python object"); return 0; } Py_INCREF(pyobj_wrapper->pyobject); return pyobj_wrapper->pyobject; } } PyObject *py = 0; switch (_metatype) { case QMetaType::Bool: py = PyBool_FromLong(*reinterpret_cast(cpp)); break; case QMetaType::Int: if (isFlag()) { py = sipConvertFromType(cpp, _type, 0); } else if (isEnum()) { py = sipConvertFromEnum(*reinterpret_cast(cpp), _type); } else { py = SIPLong_FromLong(*reinterpret_cast(cpp)); } break; case QMetaType::UInt: { long ui = *reinterpret_cast(cpp); if (ui < 0) py = PyLong_FromUnsignedLong((unsigned long)ui); else py = SIPLong_FromLong(ui); break; } case QMetaType::Double: py = PyFloat_FromDouble(*reinterpret_cast(cpp)); break; case QMetaType::VoidStar: py = sipConvertFromVoidPtr(*reinterpret_cast(cpp)); break; case QMetaType::Long: py = SIPLong_FromLong(*reinterpret_cast(cpp)); break; case QMetaType::LongLong: py = PyLong_FromLongLong(*reinterpret_cast(cpp)); break; case QMetaType::Short: py = SIPLong_FromLong(*reinterpret_cast(cpp)); break; case QMetaType::Char: case QMetaType::UChar: py = SIPBytes_FromStringAndSize(reinterpret_cast(cpp), 1); break; case QMetaType::ULong: py = PyLong_FromUnsignedLong(*reinterpret_cast(cpp)); break; case QMetaType::ULongLong: py = PyLong_FromUnsignedLongLong(*reinterpret_cast(cpp)); break; case QMetaType::UShort: py = SIPLong_FromLong(*reinterpret_cast(cpp)); break; case QMetaType::Float: py = PyFloat_FromDouble(*reinterpret_cast(cpp)); break; case QMetaType::QObjectStar: py = sipConvertFromType(*reinterpret_cast(cpp), sipType_QObject, 0); break; #if QT_VERSION < 0x050000 case QMetaType::QWidgetStar: if (sipType_QWidget) py = sipConvertFromType(*reinterpret_cast(cpp), sipType_QWidget, 0); break; #endif case QMetaType::QVariantList: { QVariantList *ql = reinterpret_cast(cpp); py = PyList_New(ql->size()); if (py) { for (int i = 0; i < ql->size(); ++i) { PyObject *val_obj = toAnyPyObject(ql->at(i)); if (!val_obj) { Py_DECREF(py); py = 0; break; } PyList_SET_ITEM(py, i, val_obj); } } break; } case QMetaType::QVariantMap: { py = PyDict_New(); if (py) { QVariantMap *qm = reinterpret_cast(cpp); for (QVariantMap::const_iterator it = qm->constBegin(); it != qm->constEnd(); ++it) if (!add_variant_to_dict(py, it.key(), it.value())) { Py_DECREF(py); py = 0; break; } } break; } #if QT_VERSION >= 0x040500 case QMetaType::QVariantHash: { py = PyDict_New(); if (py) { QVariantHash *qh = reinterpret_cast(cpp); for (QVariantHash::const_iterator it = qh->constBegin(); it != qh->constEnd(); ++it) if (!add_variant_to_dict(py, it.key(), it.value())) { Py_DECREF(py); py = 0; break; } } break; } #endif case -1: { char *s = *reinterpret_cast(cpp); if (s) { py = SIPBytes_FromString(s); } else { Py_INCREF(Py_None); py = Py_None; } break; } default: if (_type) { if (_name.endsWith('*')) { py = sipConvertFromType(*reinterpret_cast(cpp), _type, 0); } else { // Make a copy as it is a value type. #if QT_VERSION >= 0x050000 void *copy = QMetaType::create(_metatype, cpp); #else void *copy = QMetaType::construct(_metatype, cpp); #endif py = sipConvertFromNewType(copy, _type, 0); if (!py) QMetaType::destroy(_metatype, copy); } } } if (!py) PyErr_Format(PyExc_TypeError, "unable to convert a C++ '%s' instance to a Python object", _name.constData()); return py; } // Add a QVariant to a Python dict with a QString key. bool Chimera::add_variant_to_dict(PyObject *dict, const QString &key_ref, const QVariant &val_ref) { QString *key = new QString(key_ref); PyObject *key_obj = sipConvertFromNewType(key, sipType_QString, 0); PyObject *val_obj = toAnyPyObject(val_ref); if (!key_obj || !val_obj || PyDict_SetItem(dict, key_obj, val_obj) < 0) { if (key_obj) Py_DECREF(key_obj); else delete key; Py_XDECREF(val_obj); return false; } Py_DECREF(key_obj); Py_DECREF(val_obj); return true; } // Convert a QVariant to a Python object based on the type of the object. PyObject *Chimera::toAnyPyObject(const QVariant &var) { if (!var.isValid()) { Py_INCREF(Py_None); return Py_None; } // Handle null variants for the v2 API. if (var.isNull() && sipIsAPIEnabled("QVariant", 2, 0)) return qpycore_qpynullvariant_FromQVariant(var); const char *type_name = var.typeName(); const sipTypeDef *td = sipFindType(type_name); Chimera *ct = new Chimera; ct->_type = td; ct->_name = type_name; ct->_metatype = var.userType(); if (td && sipTypeIsClass(td)) ct->set_flag(); PyObject *py = ct->toPyObject(var); delete ct; return py; } // Wrap a Python object in a QVariant without any conversion. QVariant Chimera::keep_as_pyobject(PyObject *py) { PyQt_PyObject pyobj_wrapper(py); return QVariant(PyQt_PyObject::metatype, &pyobj_wrapper); } // Convert a Python list object to a QVariantList and return true if there was // no error. bool Chimera::to_QVariantList(PyObject *py, QVariantList &cpp) const { Q_ASSERT(PyList_CheckExact(py)); for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(py); ++i) { PyObject *val_obj = PyList_GET_ITEM(py, i); if (!val_obj) return false; int val_state, iserr = 0; QVariant *val = reinterpret_cast(sipForceConvertToType( val_obj, sipType_QVariant, 0, SIP_NOT_NONE, &val_state, &iserr)); if (iserr) return false; cpp.append(*val); sipReleaseType(val, sipType_QVariant, val_state); } return true; } // Convert a Python object to a QVariantMap and return true if there was no // error. bool Chimera::to_QVariantMap(PyObject *py, QVariantMap &cpp) const { Q_ASSERT(PyDict_CheckExact(py)); PyObject *key_obj, *val_obj; SIP_SSIZE_T i; i = 0; while (PyDict_Next(py, &i, &key_obj, &val_obj)) { int key_state, val_state, iserr = 0; QString *key = reinterpret_cast(sipForceConvertToType( key_obj, sipType_QString, NULL, SIP_NOT_NONE, &key_state, &iserr)); QVariant *val = reinterpret_cast(sipForceConvertToType( val_obj, sipType_QVariant, NULL, SIP_NOT_NONE, &val_state, &iserr)); if (iserr) return false; cpp.insert(*key, *val); sipReleaseType(key, sipType_QString, key_state); sipReleaseType(val, sipType_QVariant, val_state); } return true; } #if QT_VERSION >= 0x040500 // Convert a Python object to a QVariantHash and return true if there was no // error. bool Chimera::to_QVariantHash(PyObject *py, QVariantHash &cpp) const { Q_ASSERT(PyDict_CheckExact(py)); PyObject *key_obj, *val_obj; SIP_SSIZE_T i; i = 0; while (PyDict_Next(py, &i, &key_obj, &val_obj)) { int key_state, val_state, iserr = 0; QString *key = reinterpret_cast(sipForceConvertToType( key_obj, sipType_QString, NULL, SIP_NOT_NONE, &key_state, &iserr)); QVariant *val = reinterpret_cast(sipForceConvertToType( val_obj, sipType_QVariant, NULL, SIP_NOT_NONE, &val_state, &iserr)); if (iserr) return false; cpp.insert(*key, *val); sipReleaseType(key, sipType_QString, key_state); sipReleaseType(val, sipType_QVariant, val_state); } return true; } #endif // Convert a Python object to C++, allocating storage as necessary. Chimera::Storage *Chimera::fromPyObjectToStorage(PyObject *py) const { Chimera::Storage *st = new Chimera::Storage(this, py); if (!st->isValid()) { delete st; st = 0; } return st; } // Create the storage for a type. Chimera::Storage *Chimera::storageFactory() const { return new Chimera::Storage(this); } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_chimera.h0000644000076500000240000002327412536324426021314 0ustar philstaff00000000000000// This is the interface of the Chimera and related classes. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_CHIMERA_H #define _QPYCORE_CHIMERA_H #include #include #include #include #include #include #include "qpycore_sip.h" // This describes a type that can be understood by Python and C++ (specifically // Qt's meta-type system). The implementation assumes that the GIL is held. class Chimera { public: // Construct a copy. Chimera(const Chimera &other); // Destroy the type. ~Chimera(); // Parses a Python object as a type. Return 0 if there was an error. static const Chimera *parse(PyObject *obj); // Parses a Qt meta-property as a type. Return 0 if there was an error. static const Chimera *parse(const QMetaProperty &mprop); // Parses a C++ type name as a type. Return 0 if there was an error. static const Chimera *parse(const QByteArray &name); // Register a function for converting a QVariant to a Python object. typedef bool (*ToPyObjectFn)(const QVariant *, PyObject **); typedef QList ToPyObjectConvertors; static void registerToPyObject(ToPyObjectFn); // Register a function for converting a Python object to a QVariant. typedef bool (*ToQVariantFn)(PyObject *, QVariant *, bool *); typedef QList ToQVariantConvertors; static void registerToQVariant(ToQVariantFn); // Register a function for converting a Python object to QVariant data. typedef bool (*ToQVariantDataFn)(PyObject *, void *, int, bool *); typedef QList ToQVariantDataConvertors; static void registerToQVariantData(ToQVariantDataFn); class Signature { public: // Destroy the signature and any result type objects. ~Signature(); // The list of parsed argument types. QList parsed_arguments; // The optional parsed result type. const Chimera *result; // The original normalised signature (possibly including a method name // but excluding a return type). QByteArray signature; // The signature as declared by the user for use in exceptions. QByteArray py_signature; // Return the parsed signature wrapped in a Python object. Ownership // of the signature is passed to the Python object. Return 0 if there // was an error. static PyObject *toPyObject(Signature *parsed_signature); // Return the parsed signature extracted from a Python object. static Signature *fromPyObject(PyObject *py); // Return the name from the signature. QByteArray name() const {return name(signature);} // Return the name from a signature. static QByteArray name(const QByteArray &signature); // Return the arguments from the signature. QByteArray arguments() const {return arguments(signature);} // Return the arguments from a signature. static QByteArray arguments(const QByteArray &signature); private: friend class Chimera; // Set if the parsed arguments are cached. bool _cached; Signature(const QByteArray &sig, bool cached) : result(0), signature(sig), py_signature(sig), _cached(cached) {} Signature(const Signature &); Signature &operator=(const Signature &); }; // Parses a normalised C++ signature. Return 0 if there was an error. static Signature *parse(const QByteArray &sig, const char *context); // Parses a C++ signature given as a Python tuple of types and an optional // name. Return 0 if there was an error. static Signature *parse(PyObject *types, const char *name, const char *context); // Raise an exception after parse() has failed. static void raiseParseException(PyObject *type, const char *context); class Storage { public: // Destroy the type and any temporary data. ~Storage(); // Return the parsed type. const Chimera *type() const {return _parsed_type;} // Return the address of the stored value. void *address(); // Convert the stored value to a Python object. PyObject *toPyObject() const; private: friend class Chimera; // The parsed type. const Chimera *_parsed_type; // The storage for fundamental and value types. QVariant _value_storage; // The storage for pointer types. void *_ptr_storage; // The state of any temporary stored data. int _tmp_state; // Set if the value is valid. bool _valid; Storage(const Chimera *ct); Storage(const Chimera *ct, PyObject *py); // Return true if the value is valid. bool isValid() const {return _valid;} // Return true is the value is a pointer type. bool isPointerType() const; Storage(const Storage &); Storage &operator=(const Storage &); }; // Convert a Python object to C++, allocating storage as necessary. Return // 0 if there was an error. Storage *fromPyObjectToStorage(PyObject *py) const; // Create a storage instance for this type. Storage *storageFactory() const; // Convert a Python object to C++ at a given address. Return false if // there was an error. bool fromPyObject(PyObject *py, void *cpp) const; // Convert a Python object to a QVariant. Return false if there was an // error. bool fromPyObject(PyObject *py, QVariant *var, bool strict = true) const; // Convert a Python object to a QVariant based on the type of the object. static QVariant fromAnyPyObject(PyObject *py, int *is_err); // Convert a QVariant to a Python object. PyObject *toPyObject(const QVariant &var) const; // Convert a C++ object at an arbitary address to a Python object. PyObject *toPyObject(void *cpp) const; // Convert a QVariant to a Python object based on the type of the object. static PyObject *toAnyPyObject(const QVariant &var); // Returns the Qt meta-type id. It will be QMetaType::Void (Qt4) or // QMetaType::UnknownType (Qt5) if the type isn't known to Qt's meta-type // system. int metatype() const {return _metatype;} // Returns a borrowed reference to the Python type object that was used to // define the type (if any). PyObject *py_type() const {return _py_type;} // Returns the C++ name of the type. const QByteArray &name() const {return _name;} // Returns true if the type is an enum. bool isEnum() const {return (_type && sipTypeIsEnum(_type));} // Returns true if the type is a flag. bool isFlag() const {return _is_flag;} // Returns the SIP generated type structure. const sipTypeDef *typeDef() const {return _type;} // Register a type name as an int type. static void registerIntType(const char *name); private: // The generated type structure. This may be 0 if the type is known by Qt // but hasn't been wrapped. const sipTypeDef *_type; // The Python type object if a Python type (rather than a C++ type string) // was given. PyObject *_py_type; // The Qt meta-type. This will always be valid but may refer to the // PyObject wrapper if the underlying type isn't known to Qt. int _metatype; // Set if the meta-type needn't be exact. bool _inexact; // Set if the the type is derived from QFlags. bool _is_flag; // The C++ name of the type. QByteArray _name; // The registered int types. static QList _registered_int_types; // The cache of previously parsed argument type lists. static QHash > _previously_parsed; // The registered QVariant to PyObject convertors. static ToPyObjectConvertors _registered_PyObject_convertors; // The registered PyObject to QVariant convertors. static ToQVariantConvertors _registered_QVariant_convertors; // The registered PyObject to QVariant data convertors. static ToQVariantDataConvertors _registered_QVariant_data_convertors; Chimera(); bool parse_cpp_type(const QByteArray &type); bool parse_py_type(PyTypeObject *type_obj); sipAssignFunc get_assign_helper() const; void set_flag(); bool to_QVariantList(PyObject *py, QVariantList &cpp) const; bool to_QVariantMap(PyObject *py, QVariantMap &cpp) const; #if QT_VERSION >= 0x040500 bool to_QVariantHash(PyObject *py, QVariantHash &cpp) const; #endif static bool add_variant_to_dict(PyObject *dict, const QString &key_ref, const QVariant &val_ref); static void raiseParseException(const char *type, const char *context); static QVariant keep_as_pyobject(PyObject *py); static int extract_raw_type(const QByteArray &type, QByteArray &raw_type); static QByteArray resolve_types(const QByteArray &type); Chimera &operator=(const Chimera &); }; #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_chimera_signature.cpp0000644000076500000240000000603612536324426023725 0ustar philstaff00000000000000// This is the implementation of the Chimera::Signature class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include "qpycore_chimera.h" // Forward declarations. #if defined(SIP_USE_PYCAPSULE) extern "C" {static void Signature_delete(PyObject *cap);} #else extern "C" {static void Signature_delete(void *sig);} #endif // Destroy the signature and any type objects. Chimera::Signature::~Signature() { if (!_cached) qDeleteAll(parsed_arguments.constBegin(), parsed_arguments.constEnd()); if (result) delete result; } // Return the parsed signature wrapped in a Python object. PyObject *Chimera::Signature::toPyObject(Chimera::Signature *parsed_signature) { #if defined(SIP_USE_PYCAPSULE) PyObject *py = PyCapsule_New(parsed_signature, NULL, Signature_delete); #else PyObject *py = PyCObject_FromVoidPtr(parsed_signature, Signature_delete); #endif if (!py) delete parsed_signature; return py; } // Return the parsed signature extracted from a Python object. Chimera::Signature *Chimera::Signature::fromPyObject(PyObject *py) { #if defined(SIP_USE_PYCAPSULE) return reinterpret_cast(PyCapsule_GetPointer(py, NULL)); #else return reinterpret_cast(PyCObject_AsVoidPtr(py)); #endif } // Return the name from a signature. QByteArray Chimera::Signature::name(const QByteArray &signature) { QByteArray nm = signature; int idx = signature.indexOf('('); if (idx >= 0) nm.truncate(idx); return nm; } // Return the arguments from a signature. QByteArray Chimera::Signature::arguments(const QByteArray &signature) { QByteArray args; int oparen = signature.indexOf('('); int cparen = signature.lastIndexOf(')'); if (oparen >= 0 && cparen >= 0) args = signature.mid(oparen, cparen - oparen + 1); return args; } #if defined(SIP_USE_PYCAPSULE) // The PyCapsule destructor for the Chimera::Signature type. static void Signature_delete(PyObject *cap) { delete reinterpret_cast( PyCapsule_GetPointer(cap, NULL)); } #else // The PyCObject destructor for the Chimera::Signature type. static void Signature_delete(void *sig) { delete reinterpret_cast(sig); } #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_chimera_storage.cpp0000644000076500000240000000642212536324426023367 0ustar philstaff00000000000000// This is the implementation of the Chimera::Storage class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include "qpycore_chimera.h" #include "qpycore_pyqtpyobject.h" #include "qpycore_sip.h" // Create a new storage instance containing a converted Python object. Chimera::Storage::Storage(const Chimera *ct, PyObject *py) : _parsed_type(ct), _ptr_storage(0), _tmp_state(0) { // We convert to a QVariant even for pointer types because this has the // side-effect of ensuring the object doesn't get garbage collected. _valid = _parsed_type->fromPyObject(py, &_value_storage); if (isPointerType()) { int is_err = 0; _ptr_storage = sipForceConvertToType(py, _parsed_type->typeDef(), 0, 0, &_tmp_state, &is_err); if (is_err) { _value_storage = QVariant(); _valid = false; } } } // Create a new storage instance. Chimera::Storage::Storage(const Chimera *ct) : _parsed_type(ct), _ptr_storage(0), _tmp_state(0), _valid(true) { if (!isPointerType()) { // Create a default fundamental or value type. _value_storage = QVariant(_parsed_type->metatype(), (const void *)0); } } // Destroy the storage and any temporary value. Chimera::Storage::~Storage() { if (_tmp_state) sipReleaseType(_ptr_storage, _parsed_type->typeDef(), _tmp_state); } // Return the address of the storage. void *Chimera::Storage::address() { if (isPointerType()) { if (_parsed_type->name().endsWith('*')) return &_ptr_storage; return _ptr_storage; } if (_parsed_type->typeDef() == sipType_QVariant) return &_value_storage; return _value_storage.data(); } // Return true if the value is a pointer type. bool Chimera::Storage::isPointerType() const { return (_parsed_type->metatype() == PyQt_PyObject::metatype && _parsed_type->typeDef()); } // Convert the stored value to a Python object. PyObject *Chimera::Storage::toPyObject() const { // Pointer-class and mapped types are not stored in the QVariant. if (isPointerType()) { if (!_ptr_storage) { Py_INCREF(Py_None); return Py_None; } return sipConvertFromType(_ptr_storage, _parsed_type->typeDef(), 0); } if (_parsed_type->typeDef() == sipType_QVariant) return Chimera::toAnyPyObject(_value_storage); return _parsed_type->toPyObject(_value_storage); } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_classinfo.cpp0000644000076500000240000000356012536324426022214 0ustar philstaff00000000000000// This contains the implementation of the Q_CLASSINFO support. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include "qpycore_classinfo.h" static QMultiHash class_info_hash; // Add the given name/value pair to the current class info hash. PyObject *qpycore_ClassInfo(const char *name, const char *value) { PyFrameObject *frame = PyEval_GetFrame(); // We need the frame we were called from, not the current one. if (frame) frame = frame->f_back; if (!frame) { PyErr_SetString(PyExc_RuntimeError, "no current frame"); return 0; } class_info_hash.insert(frame, ClassInfo(QByteArray(name), QByteArray(value))); Py_INCREF(Py_None); return Py_None; } // Return the current class info list. QList qpycore_get_class_info_list() { PyFrameObject *frame = PyEval_GetFrame(); QList class_info_list = class_info_hash.values(frame); class_info_hash.remove(frame); return class_info_list; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_classinfo.h0000644000076500000240000000215412536324426021657 0ustar philstaff00000000000000// This defines the interfaces to the Q_CLASSINFO support. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_CLASSINFO_H #define _QPYCORE_CLASSINFO_H #include #include #include typedef QPair ClassInfo; QList qpycore_get_class_info_list(); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_init.cpp0000644000076500000240000000532212536324426021174 0ustar philstaff00000000000000// This is the initialisation support code for the QtCore module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include "qpycore_chimera.h" #include "qpycore_qobject_helpers.h" #include "qpycore_shared.h" #include "qpycore_sip.h" #include "qpycore_types.h" // Perform any required initialisation. void qpycore_init() { // Initialise the meta-type. qpycore_pyqtWrapperType_Type.tp_base = sipWrapperType_Type; if (PyType_Ready(&qpycore_pyqtWrapperType_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to initialise pyqtWrapperType type"); // Register the meta-type. if (sipRegisterPyType((PyTypeObject *)&qpycore_pyqtWrapperType_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to register pyqtWrapperType type"); // Export the helpers. sipExportSymbol("qtcore_qt_metaobject", (void *)qpycore_qobject_metaobject); sipExportSymbol("qtcore_qt_metacall", (void *)qpycore_qobject_qt_metacall); sipExportSymbol("qtcore_qt_metacast", (void *)qpycore_qobject_qt_metacast); sipExportSymbol("qpycore_qobject_sender", (void *)qpycore_qobject_sender); sipExportSymbol("qpycore_qobject_receivers", (void *)qpycore_qobject_receivers); sipExportSymbol("qpycore_ArgvToC", (void *)qpycore_ArgvToC); sipExportSymbol("qpycore_UpdatePyArgv", (void *)qpycore_UpdatePyArgv); sipExportSymbol("qpycore_pyqtsignal_get_parts", (void *)qpycore_pyqtsignal_get_parts); sipExportSymbol("qpycore_pyqtslot_get_parts", (void *)qpycore_pyqtslot_get_parts); sipExportSymbol("qpycore_qvariant_value", (void *)qpycore_qvariant_value); sipExportSymbol("qpycore_register_to_pyobject", (void *)Chimera::registerToPyObject); sipExportSymbol("qpycore_register_to_qvariant", (void *)Chimera::registerToQVariant); sipExportSymbol("qpycore_register_to_qvariant_data", (void *)Chimera::registerToQVariantData); } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_misc.cpp0000644000076500000240000000567612536324426021200 0ustar philstaff00000000000000// This contains the implementation of various odds and ends. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include "qpycore_misc.h" #include "qpycore_types.h" // Return true if the given type (which must be a class) was wrapped for PyQt4. bool qpycore_is_pyqt4_class(const sipTypeDef *td) { return PyType_IsSubtype(Py_TYPE(sipTypeAsPyTypeObject(td)), &qpycore_pyqtWrapperType_Type); } #if PY_MAJOR_VERSION >= 3 // Python v3 doesn't have the Unicode equivalent of Python v2's // PyString_ConcatAndDel(). void qpycore_Unicode_ConcatAndDel(PyObject **string, PyObject *newpart) { PyObject *old = *string; if (old) { if (newpart) *string = PyUnicode_Concat(old, newpart); else *string = 0; Py_DECREF(old); } Py_XDECREF(newpart); } #endif // Convert a Python argv list to a conventional C argc count and argv array. char **qpycore_ArgvToC(PyObject *argvlist, int &argc) { argc = PyList_GET_SIZE(argvlist); // Allocate space for two copies of the argument pointers, plus the // terminating NULL. char **argv = new char *[2 * (argc + 1)]; // Convert the list. for (int a = 0; a < argc; ++a) { PyObject *arg_obj = PyList_GET_ITEM(argvlist, a); char *arg; if (PyUnicode_Check(arg_obj)) { QByteArray ba_arg = qpycore_PyObject_AsQString(arg_obj).toLocal8Bit(); arg = qstrdup(ba_arg.constData()); } else if (SIPBytes_Check(arg_obj)) { arg = qstrdup(SIPBytes_AS_STRING(arg_obj)); } else { arg = const_cast("invalid"); } argv[a] = argv[a + argc + 1] = arg; } argv[argc + argc + 1] = argv[argc] = NULL; return argv; } // Remove arguments from the Python argv list that have been removed from the // C argv array. void qpycore_UpdatePyArgv(PyObject *argvlist, int argc, char **argv) { for (int a = 0, na = 0; a < argc; ++a) { // See if it was removed. if (argv[na] == argv[a + argc + 1]) ++na; else PyList_SetSlice(argvlist, na, na + 1, 0); } } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_misc.h0000644000076500000240000000210112536324426020621 0ustar philstaff00000000000000// This defines the interfaces to various odd and ends. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_MISC_H #define _QPYCORE_MISC_H #include #include "qpycore_shared.h" #include "qpycore_sip.h" bool qpycore_is_pyqt4_class(const sipTypeDef *td); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_namespace.h0000644000076500000240000000215212536324426021630 0ustar philstaff00000000000000// This ensure the Qt namespace macros are defined irrespective of the version // of Qt being used. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_NAMESPACE_H #define _QPYCORE_NAMESPACE_H #include #if !defined(QT_BEGIN_NAMESPACE) #define QT_BEGIN_NAMESPACE #define QT_END_NAMESPACE #endif #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_post_init.cpp.in0000644000076500000240000001227012536324426022646 0ustar philstaff00000000000000// This is the post-initialisation support code for the QtCore module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include "qpycore_pyqtboundsignal.h" #include "qpycore_pyqtmethodproxy.h" #include "qpycore_pyqtproperty.h" #include "qpycore_pyqtproxy.h" #include "qpycore_pyqtpyobject.h" #include "qpycore_pyqtsignal.h" #include "qpycore_sip.h" // The name attribute name as an object. PyObject *qpycore_name_attr_name; // The signature attribute name as an object. PyObject *qpycore_signature_attr_name; // Perform any required post-initialisation. void qpycore_post_init(PyObject *module_dict) { // Add the meta-type to the module dictionary. if (PyDict_SetItemString(module_dict, "pyqtWrapperType", (PyObject *)&qpycore_pyqtWrapperType_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to set pyqtWrapperType type"); // Initialise the pyqtProperty type and add it to the module dictionary. if (PyType_Ready(&qpycore_pyqtProperty_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to initialise pyqtProperty type"); if (PyDict_SetItemString(module_dict, "pyqtProperty", (PyObject *)&qpycore_pyqtProperty_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to set pyqtProperty type"); // Initialise the pyqtSignal type and add it to the module dictionary. if (PyType_Ready(&qpycore_pyqtSignal_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to initialise pyqtSignal type"); if (PyDict_SetItemString(module_dict, "pyqtSignal", (PyObject *)&qpycore_pyqtSignal_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to set pyqtSignal type"); // Initialise the pyqtBoundSignal type and add it to the module dictionary. if (PyType_Ready(&qpycore_pyqtBoundSignal_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to initialise pyqtBoundSignal type"); if (PyDict_SetItemString(module_dict, "pyqtBoundSignal", (PyObject *)&qpycore_pyqtBoundSignal_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to set pyqtBoundSignal type"); // Initialise the private pyqtMethodProxy type. if (PyType_Ready(&qpycore_pyqtMethodProxy_Type) < 0) Py_FatalError("PyQt4.QtCore: Failed to initialise pyqtMethodProxy type"); // Register the C++ type that wraps Python objects. PyQt_PyObject::metatype = qRegisterMetaType("PyQt_PyObject"); qRegisterMetaTypeStreamOperators("PyQt_PyObject"); // Register the lazy attribute getter. if (sipRegisterAttributeGetter(sipType_QObject, qpycore_get_lazy_attr) < 0) Py_FatalError("PyQt4.QtCore: Failed to register attribute getter"); // Objectify some strings. #if PY_MAJOR_VERSION >= 3 qpycore_signature_attr_name = PyUnicode_FromString("__pyqtSignature__"); #else qpycore_signature_attr_name = PyString_FromString("__pyqtSignature__"); #endif if (!qpycore_signature_attr_name) Py_FatalError("PyQt4.QtCore: Failed to objectify '__pyqtSignature__'"); #if PY_MAJOR_VERSION >= 3 qpycore_name_attr_name = PyUnicode_FromString("__name__"); #else qpycore_name_attr_name = PyString_FromString("__name__"); #endif if (!qpycore_name_attr_name) Py_FatalError("PyQt4.QtCore: Failed to objectify '__name__'"); // Embed the configuration. PyObject *config = PyDict_New(); if (!config) Py_FatalError("PyQt4.QtCore: Failed to create PYQT_CONFIGURATION dict"); #if PY_MAJOR_VERSION >= 3 PyObject *sip_flags = PyUnicode_FromString("@@PYQT_SIP_FLAGS@@"); #else PyObject *sip_flags = PyString_FromString("@@PYQT_SIP_FLAGS@@"); #endif if (!sip_flags) Py_FatalError("PyQt4.QtCore: Failed to create PYQT_CONFIGURATION.sip_flags"); if (PyDict_SetItemString(config, "sip_flags", sip_flags) < 0) Py_FatalError("PyQt4.QtCore: Failed to set PYQT_CONFIGURATION.sip_flags"); Py_DECREF(sip_flags); if (PyDict_SetItemString(module_dict, "PYQT_CONFIGURATION", config) < 0) Py_FatalError("PyQt4.QtCore: Failed to set PYQT_CONFIGURATION dict"); Py_DECREF(config); // Create the mutex that serialises access to the signal/slot proxies. We // don't use a statically initialised one because Qt needs some things to // be initialised first (at least for Windows) and this is the only way to // guarantee things are done in the right order. PyQtProxy::mutex = new QMutex(QMutex::Recursive); } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtboundsignal.cpp0000644000076500000240000007210312536324426023455 0ustar philstaff00000000000000// This contains the implementation of the pyqtBoundSignal type. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_misc.h" #include "qpycore_pyqtboundsignal.h" #include "qpycore_pyqtproxy.h" #include "qpycore_pyqtpyobject.h" #include "qpycore_pyqtsignal.h" #include "qpycore_sip.h" #include "qpycore_sip_helpers.h" // Forward declarations. extern "C" { static PyObject *pyqtBoundSignal_call(PyObject *self, PyObject *args, PyObject *kw); static void pyqtBoundSignal_dealloc(PyObject *self); static PyObject *pyqtBoundSignal_repr(PyObject *self); static PyObject *pyqtBoundSignal_get_doc(PyObject *self, void *); static PyObject *pyqtBoundSignal_get_signal(PyObject *self, void *); static PyObject *pyqtBoundSignal_connect(PyObject *self, PyObject *args, PyObject *kwd_args); static PyObject *pyqtBoundSignal_disconnect(PyObject *self, PyObject *args); static PyObject *pyqtBoundSignal_emit(PyObject *self, PyObject *args); static PyObject *pyqtBoundSignal_mp_subscript(PyObject *self, PyObject *subscript); } static PyObject *connect(qpycore_pyqtBoundSignal *bs, QObject *qrx, const char *slot, Qt::ConnectionType type); static PyObject *disconnect(qpycore_pyqtBoundSignal *bs, QObject *qrx, const char *slot); static QObject *get_receiver(qpycore_pyqtBoundSignal *bs, PyObject *slot_obj, QByteArray &name); static QByteArray slot_signature_from_decorations(Chimera::Signature *signal, PyObject *decorations, int nr_args); static QByteArray slot_signature_from_metaobject(Chimera::Signature *signal, const QMetaObject *slot_mo, const QByteArray &slot_name, int nr_args); static QByteArray slot_signature(Chimera::Signature *signal, const QByteArray &slot_name, int nr_args); // Doc-strings. PyDoc_STRVAR(pyqtBoundSignal_connect_doc, "connect(slot, type=Qt.AutoConnection, no_receiver_check=False)\n" "\n" "slot is either a Python callable or another signal.\n" "type is a Qt.ConnectionType.\n" "no_receiver_check is True to disable the check that the receiver's C++\n" "instance still exists when the signal is emitted.\n"); PyDoc_STRVAR(pyqtBoundSignal_disconnect_doc, "disconnect([slot])\n" "\n" "slot is an optional Python callable or another signal. If it is omitted\n" "then the signal is disconnected from everything it is connected to."); PyDoc_STRVAR(pyqtBoundSignal_emit_doc, "emit(*args)\n" "\n" "*args are the values that will be passed as arguments to all connected\n" "slots."); PyDoc_STRVAR(pyqtBoundSignal_signal_doc, "The signature of the signal that would be returned by SIGNAL()"); // Define the methods. static PyMethodDef pyqtBoundSignal_methods[] = { {SIP_MLNAME_CAST("connect"), (PyCFunction)pyqtBoundSignal_connect, METH_VARARGS|METH_KEYWORDS, SIP_MLDOC_CAST(pyqtBoundSignal_connect_doc)}, {SIP_MLNAME_CAST("disconnect"), pyqtBoundSignal_disconnect, METH_VARARGS, SIP_MLDOC_CAST(pyqtBoundSignal_disconnect_doc)}, {SIP_MLNAME_CAST("emit"), pyqtBoundSignal_emit, METH_VARARGS, SIP_MLDOC_CAST(pyqtBoundSignal_emit_doc)}, {0, 0, 0, 0} }; // Define the mapping methods. static PyMappingMethods pyqtBoundSignal_as_mapping = { 0, /* mp_length */ pyqtBoundSignal_mp_subscript, /* mp_subscript */ 0, /* mp_ass_subscript */ }; // The getters/setters. static PyGetSetDef pyqtBoundSignal_getsets[] = { {(char *)"__doc__", pyqtBoundSignal_get_doc, NULL, NULL, NULL}, {(char *)"signal", pyqtBoundSignal_get_signal, NULL, (char *)pyqtBoundSignal_signal_doc, NULL}, {NULL, NULL, NULL, NULL, NULL} }; // The pyqtBoundSignal type object. PyTypeObject qpycore_pyqtBoundSignal_Type = { PyVarObject_HEAD_INIT(NULL, 0) SIP_TPNAME_CAST("PyQt4.QtCore.pyqtBoundSignal"), /* tp_name */ sizeof (qpycore_pyqtBoundSignal), /* tp_basicsize */ 0, /* tp_itemsize */ pyqtBoundSignal_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ 0, /* tp_compare */ pyqtBoundSignal_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ &pyqtBoundSignal_as_mapping, /* tp_as_mapping */ 0, /* tp_hash */ pyqtBoundSignal_call, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ 0, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ pyqtBoundSignal_methods, /* tp_methods */ 0, /* tp_members */ pyqtBoundSignal_getsets, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ PyType_GenericNew, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ 0, /* tp_del */ #if PY_VERSION_HEX >= 0x02060000 0, /* tp_version_tag */ #endif #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif }; // The __doc__ getter. static PyObject *pyqtBoundSignal_get_doc(PyObject *self, void *) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; const char *docstring = bs->unbound_signal->docstring; if (!docstring) { Py_INCREF(Py_None); return Py_None; } if (*docstring == '\1') ++docstring; return #if PY_MAJOR_VERSION >= 3 PyUnicode_FromString #else PyString_FromString #endif (docstring); } // The __signal__ getter. static PyObject *pyqtBoundSignal_get_signal(PyObject *self, void *) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; return #if PY_MAJOR_VERSION >= 3 PyUnicode_FromString #else PyString_FromString #endif (bs->unbound_signal->signature->signature.constData()); } // The type repr slot. static PyObject *pyqtBoundSignal_repr(PyObject *self) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; QByteArray name = bs->unbound_signal->signature->name(); return #if PY_MAJOR_VERSION >= 3 PyUnicode_FromFormat #else PyString_FromFormat #endif ("", name.constData() + 1, bs->bound_pyobject->ob_type->tp_name, bs->bound_pyobject); } // The type call slot. static PyObject *pyqtBoundSignal_call(PyObject *self, PyObject *args, PyObject *kw) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; return qpycore_call_signal_overload(bs->unbound_signal, bs->bound_pyobject, args, kw); } // The type dealloc slot. static void pyqtBoundSignal_dealloc(PyObject *self) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; Py_XDECREF((PyObject *)bs->unbound_signal); Py_TYPE(self)->tp_free(self); } // Create a bound signal. PyObject *qpycore_pyqtBoundSignal_New(qpycore_pyqtSignal *unbound_signal, PyObject *bound_pyobject, QObject *bound_qobject) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)PyType_GenericNew(&qpycore_pyqtBoundSignal_Type, 0, 0); if (bs) { Py_INCREF((PyObject *)unbound_signal); bs->unbound_signal = unbound_signal; bs->bound_pyobject = bound_pyobject; bs->bound_qobject = bound_qobject; } return (PyObject *)bs; } // The mapping subscript slot. static PyObject *pyqtBoundSignal_mp_subscript(PyObject *self, PyObject *subscript) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; qpycore_pyqtSignal *ps = qpycore_find_signal(bs->unbound_signal, subscript, "a bound signal type argument"); if (!ps) return 0; // Create a new bound signal. return qpycore_pyqtBoundSignal_New(ps, bs->bound_pyobject, bs->bound_qobject); } // Connect a signal. static PyObject *pyqtBoundSignal_connect(PyObject *self, PyObject *args, PyObject *kwd_args) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; static const char *kwds[] = { "slot", "type", "no_receiver_check", 0 }; PyObject *slot_obj, *type_obj = 0; int no_receiver_check = 0; if (!PyArg_ParseTupleAndKeywords(args, kwd_args, #if PY_VERSION_HEX >= 0x03030000 "O|Op:connect", #elif PY_VERSION_HEX >= 0x02050000 "O|Oi:connect", #else const_cast("O|Oi:connect"), #endif const_cast(kwds), &slot_obj, &type_obj, &no_receiver_check)) return 0; Qt::ConnectionType type = Qt::AutoConnection; if (type_obj) { if (!sipCanConvertToEnum(type_obj, sipType_Qt_ConnectionType)) { PyErr_Format(PyExc_TypeError, "connect() type argument should be Qt.ConnectionType, not '%s'", Py_TYPE(slot_obj)->tp_name); return 0; } type = (Qt::ConnectionType)SIPLong_AsLong(type_obj); } // See if the slot is a signal. if (Py_TYPE(slot_obj) == &qpycore_pyqtBoundSignal_Type) { qpycore_pyqtBoundSignal *slot_bs = (qpycore_pyqtBoundSignal *)slot_obj; // Check we are not connecting to ourself. We do this because Qt // doesn't do a similar check and will recurse its way to a crash. if (slot_bs->unbound_signal == bs->unbound_signal && slot_bs->bound_qobject == bs->bound_qobject) { PyErr_SetString(PyExc_ValueError, "cannot connect a signal to itself"); return 0; } return connect(bs, slot_bs->bound_qobject, slot_bs->unbound_signal->signature->signature.constData(), type); } // Make sure the slot is callable. if (!PyCallable_Check(slot_obj)) { PyErr_Format(PyExc_TypeError, "connect() slot argument should be a callable or a signal, not '%s'", Py_TYPE(slot_obj)->tp_name); return 0; } // See if the slot can be used directly (ie. it wraps a Qt slot) or if it // needs a proxy. QByteArray rx_name; QObject *rx_qobj = get_receiver(bs, slot_obj, rx_name); if (PyErr_Occurred()) return 0; if (!rx_name.isEmpty()) return connect(bs, rx_qobj, rx_name.constData(), type); // Create a proxy for the slot. PyQtProxy *proxy; const char *member; #if QT_VERSION >= 0x040600 if ((type & Qt::UniqueConnection) == Qt::UniqueConnection) { proxy = PyQtProxy::findSlotProxy(bs->bound_qobject, bs->unbound_signal->signature->signature.constData(), slot_obj, 0, &member); if (proxy) { // We give more information than we could if it was a Qt slot but // to be consistent we raise a TypeError even though it's not the // most appropriate for the type of error. PyErr_SetString(PyExc_TypeError, "connection is not unique"); return 0; } } #endif Py_BEGIN_ALLOW_THREADS proxy = new PyQtProxy(bs, slot_obj, &member); if (no_receiver_check) proxy->disableReceiverCheck(); if (proxy->metaObject()) { if (rx_qobj) proxy->moveToThread(rx_qobj->thread()); } else { delete proxy; proxy = 0; } Py_END_ALLOW_THREADS if (!proxy) return 0; return connect(bs, proxy, member, type); } // Connect a signal to a slot and handle any errors. static PyObject *connect(qpycore_pyqtBoundSignal *bs, QObject *qrx, const char *slot, Qt::ConnectionType type) { bool ok; Chimera::Signature *signature = bs->unbound_signal->signature; Py_BEGIN_ALLOW_THREADS ok = QObject::connect(bs->bound_qobject, signature->signature.constData(), qrx, slot, type); Py_END_ALLOW_THREADS if (!ok) { QByteArray rx_name = Chimera::Signature::name(slot); PyErr_Format(PyExc_TypeError, "connect() failed between %s and %s()", signature->py_signature.constData(), rx_name.constData() + 1); return 0; } Py_INCREF(Py_None); return Py_None; } // Disconnect a signal. static PyObject *pyqtBoundSignal_disconnect(PyObject *self, PyObject *args) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; PyObject *slot_obj = 0, *res_obj; Chimera::Signature *signature = bs->unbound_signal->signature; #if PY_VERSION_HEX >= 0x02050000 if (!PyArg_ParseTuple(args, "|O:disconnect", &slot_obj)) #else if (!PyArg_ParseTuple(args, const_cast("|O:disconnect"), &slot_obj)) #endif return 0; // See if we are disconnecting everything from the overload. if (!slot_obj) { res_obj = disconnect(bs, 0, 0); PyQtProxy::deleteSlotProxies(bs->bound_qobject, signature->signature.constData()); return res_obj; } // See if the slot is a signal. if (Py_TYPE(slot_obj) == &qpycore_pyqtBoundSignal_Type) { qpycore_pyqtBoundSignal *slot_bs = (qpycore_pyqtBoundSignal *)slot_obj; return disconnect(bs, slot_bs->bound_qobject, slot_bs->unbound_signal->signature->signature.constData()); } if (!PyCallable_Check(slot_obj)) { PyErr_Format(PyExc_TypeError, "disconnect() argument should be callable, not '%s'", Py_TYPE(slot_obj)->tp_name); return 0; } // See if the slot has been used directly (ie. it wraps a Qt slot) or if it // has a proxy. QByteArray rx_name; QObject *rx_qobj = get_receiver(bs, slot_obj, rx_name); if (PyErr_Occurred()) return 0; if (!rx_name.isEmpty()) return disconnect(bs, rx_qobj, rx_name.constData()); const char *member; PyQtProxy *proxy = PyQtProxy::findSlotProxy(bs->bound_qobject, signature->signature.constData(), slot_obj, 0, &member); if (!proxy) { PyErr_Format(PyExc_TypeError, "'%s' object is not connected", Py_TYPE(slot_obj)->tp_name); return 0; } res_obj = disconnect(bs, proxy, member); proxy->disable(); return res_obj; } // Disonnect a signal from a slot and handle any errors. static PyObject *disconnect(qpycore_pyqtBoundSignal *bs, QObject *qrx, const char *slot) { Chimera::Signature *signature = bs->unbound_signal->signature; bool ok; Py_BEGIN_ALLOW_THREADS ok = QObject::disconnect(bs->bound_qobject, signature->signature.constData(), qrx, slot); Py_END_ALLOW_THREADS if (!ok) { QByteArray tx_name = signature->name(); if (slot) { QByteArray rx_name = Chimera::Signature::name(slot); PyErr_Format(PyExc_TypeError, "disconnect() failed between '%s' and '%s'", tx_name.constData() + 1, rx_name.constData() + 1); } else { PyErr_Format(PyExc_TypeError, "disconnect() failed between '%s' and all its connections", tx_name.constData() + 1); } return 0; } Py_INCREF(Py_None); return Py_None; } // Emit a signal. static PyObject *pyqtBoundSignal_emit(PyObject *self, PyObject *args) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; if (!bs->bound_qobject->signalsBlocked()) { Chimera::Signature *signature = bs->unbound_signal->signature; int mo_index = bs->bound_qobject->metaObject()->indexOfSignal(signature->signature.constData() + 1); if (mo_index < 0) { PyErr_Format(PyExc_AttributeError, "signal was not defined in the first super-class of class '%s'", Py_TYPE(bs->bound_pyobject)->tp_name); return 0; } // Use the docstring if there is one and it is auto-generated. const char *docstring = bs->unbound_signal->docstring; if (!docstring || *docstring != '\1') { docstring = signature->py_signature.constData(); } else { // Skip the auto-generated marker. ++docstring; } #if QT_VERSION < 0x050000 if (!qpycore_emit(bs->bound_qobject, mo_index, signature, docstring, args)) return 0; #else // Qt5 changes the way signals with optional arguments are handled in // that the version with all arguments used is always used when making // connections. (Note that it's possible Qt4 does this as well but we // have never noticed because Qt4 only has one signal with optional // arguments.) We can't do what PyQt5 does because it exploits the // fact that Qt5 signals are public rather than protected. We could do // what PyQt3 does (by creating a public wrapper in the derived class) // but that is a bit complicated. We could implement the parsing of // optional arguments in Chimera, but that is also a bit complicated. // Instead, at this late stage in the life of PyQt4, we keep the code // changes to a minimum and handle it with a big hack. Each // problematic signal has a number attached to it which specifies // exactly what hack is needed. PyObject *hacked_args; int hack = bs->unbound_signal->hack; // If all the arguments has been provided then we don't need the hack. if (PyTuple_GET_SIZE(args) == signature->parsed_arguments.size()) { hack = 0; } else { hacked_args = PyTuple_New(PyTuple_GET_SIZE(args) + 1); if (!hacked_args) return 0; for (SIP_SSIZE_T i = 0; i < PyTuple_GET_SIZE(args); ++i) { PyObject *arg = PyTuple_GET_ITEM(args, i); Py_INCREF(arg); PyTuple_SET_ITEM(hacked_args, i, arg); } } switch (hack) { case 1: // Supply the missing None. Py_INCREF(Py_None); PyTuple_SET_ITEM(hacked_args, PyTuple_GET_SIZE(args), Py_None); break; case 2: // Supply the missing []. { PyObject *empty_list = PyList_New(0); if (!empty_list) { Py_DECREF(hacked_args); return 0; } PyTuple_SET_ITEM(hacked_args, PyTuple_GET_SIZE(args), empty_list); } break; case 3: // Supply the missing False. Py_INCREF(Py_False); PyTuple_SET_ITEM(hacked_args, PyTuple_GET_SIZE(args), Py_False); break; default: hacked_args = args; Py_INCREF(hacked_args); } bool ok = qpycore_emit(bs->bound_qobject, mo_index, signature, docstring, hacked_args); Py_DECREF(hacked_args); if (!ok) return 0; #endif } Py_INCREF(Py_None); return Py_None; } // Get the receiver QObject from the slot (if there is one) and its signature // (if it wraps a Qt slot). A Python exception will be raised if there was an // error. static QObject *get_receiver(qpycore_pyqtBoundSignal *bs, PyObject *slot_obj, QByteArray &name) { PyObject *rx_self, *decorations; QByteArray rx_name; bool try_qt_slot; Chimera::Signature *signature = bs->unbound_signal->signature; decorations = 0; if (PyMethod_Check(slot_obj)) { rx_self = PyMethod_GET_SELF(slot_obj); PyObject *f = PyMethod_GET_FUNCTION(slot_obj); Q_ASSERT(PyFunction_Check(f)); PyObject *f_name_obj = ((PyFunctionObject *)f)->func_name; const char *f_name = sipString_AsASCIIString(&f_name_obj); Q_ASSERT(f_name); rx_name = f_name; Py_DECREF(f_name_obj); // See if this has been decorated. decorations = PyObject_GetAttr(f, qpycore_signature_attr_name); if (decorations) { try_qt_slot = true; // It's convenient to do this here as it's not going to disappear. Py_DECREF(decorations); } else { try_qt_slot = false; } Py_XINCREF(rx_self); } else if (PyCFunction_Check(slot_obj)) { rx_self = PyCFunction_GET_SELF(slot_obj); rx_name = ((PyCFunctionObject *)slot_obj)->m_ml->ml_name; // We actually want the C++ name which may (in theory) be completely // different. However this will cope with the exec_ case which is // probably good enough. if (rx_name.endsWith('_')) rx_name.chop(1); try_qt_slot = true; Py_XINCREF(rx_self); } else { static PyObject *partial = 0; // Get the functools.partial type object if we haven't already got it. if (!partial) { PyObject *functools = PyImport_ImportModule("functools"); if (functools) { partial = PyObject_GetAttrString(functools, "partial"); Py_DECREF(functools); } } // If we know about functools.partial then remove the outer partials to // get to the original function. if (partial && PyObject_IsInstance(slot_obj, partial)) { PyObject *func = slot_obj; Py_INCREF(func); do { PyObject *subfunc = PyObject_GetAttrString(func, "func"); Py_DECREF(func); // This should never happen. if (!subfunc) return 0; func = subfunc; } while (PyObject_IsInstance(func, partial)); if (PyMethod_Check(func)) rx_self = PyMethod_GET_SELF(func); else if (PyCFunction_Check(func)) rx_self = PyCFunction_GET_SELF(func); else rx_self = 0; Py_XINCREF(rx_self); Py_DECREF(func); try_qt_slot = false; } else { rx_self = 0; } } if (!rx_self) return 0; int iserr = 0; void *rx = sipForceConvertToType(rx_self, sipType_QObject, 0, SIP_NO_CONVERTORS, 0, &iserr); Py_DECREF(rx_self); PyErr_Clear(); if (iserr) return 0; QObject *rx_qobj = reinterpret_cast(rx); // If there might be a Qt slot that can handle the arguments (or a subset // of them) then use it. Otherwise we will fallback to using a proxy. if (try_qt_slot) { for (int ol = signature->parsed_arguments.count(); ol >= 0; --ol) { // If there are decorations then we compare the signal's signature // against them so that we distinguish between Python types that // are passed to Qt as PyQt_PyObject objects. Qt will not make the // distinction. If there are no decorations then let Qt determine // if a slot is available. if (decorations) name = slot_signature_from_decorations(signature, decorations, ol); else name = slot_signature_from_metaobject(signature, rx_qobj->metaObject(), rx_name, ol); if (!name.isEmpty()) { // Prepend the magic slot marker. name.prepend('1'); break; } } } return rx_qobj; } // Return the full name and signature of a Qt slot that a signal can be // connected to, taking the slot decorators into account. static QByteArray slot_signature_from_decorations(Chimera::Signature *signal, PyObject *decorations, int nr_args) { for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(decorations); ++i) { Chimera::Signature *slot = Chimera::Signature::fromPyObject( PyList_GET_ITEM(decorations, i)); if (slot->parsed_arguments.count() != nr_args) continue; int a; for (a = 0; a < nr_args; ++a) { const Chimera *sig_arg = signal->parsed_arguments.at(a); const Chimera *slot_arg = slot->parsed_arguments.at(a); // The same type names must be compatible. if (sig_arg->name() == slot_arg->name()) continue; enum Match { // The type is PyQt_PyObject because it was explicitly // specified as such as a string. MatchesAll, // The type is PyQt_PyObject because it was specified as a type // object that needed wrapping. MatchesPyType, // The type is something other than PyQt_PyObject. MatchesName }; Match sig_match, slot_match; if (sig_arg->name() != "PyQt_PyObject") sig_match = MatchesName; else sig_match = sig_arg->py_type() ? MatchesPyType : MatchesAll; if (slot_arg->name() != "PyQt_PyObject") slot_match = MatchesName; else slot_match = slot_arg->py_type() ? MatchesPyType : MatchesAll; // They are incompatible unless one is called PyQt_PyObject. if (sig_match == MatchesName || slot_match == MatchesName) break; // They are compatible if neither was a Python type. if (sig_match == MatchesAll || slot_match == MatchesAll) continue; // The signal type can be a sub-type of the slot type. if (!PyType_IsSubtype((PyTypeObject *)sig_arg->py_type(), (PyTypeObject *)slot_arg->py_type())) break; } if (a == nr_args) return slot_signature(signal, slot->name(), nr_args); } return QByteArray(); } // Return the full name and signature of a Qt slot that a signal can be // connected to, taking the Qt meta-object into account. static QByteArray slot_signature_from_metaobject(Chimera::Signature *signal, const QMetaObject *slot_mo, const QByteArray &slot_name, int nr_args) { QByteArray slot_sig = slot_signature(signal, slot_name, nr_args); if (slot_mo->indexOfSlot(slot_sig.constData()) < 0) slot_sig.clear(); return slot_sig; } // Return the full name and signature of the Qt slot that a signal would be // connected to. static QByteArray slot_signature(Chimera::Signature *signal, const QByteArray &slot_name, int nr_args) { QByteArray slot_sig = slot_name; slot_sig.append('('); for (int a = 0; a < nr_args; ++a) { if (a != 0) slot_sig.append(','); slot_sig.append(signal->parsed_arguments.at(a)->name()); } slot_sig.append(')'); return slot_sig; } // Check that an object is a signal and return the bound QObject (if requested) // and the signal signature. const char *qpycore_pyqtsignal_get_parts(PyObject *sig_obj, QObject **qtx) { if (PyObject_TypeCheck(sig_obj, &qpycore_pyqtBoundSignal_Type)) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)sig_obj; if (qtx) *qtx = bs->bound_qobject; return bs->unbound_signal->signature->signature.constData(); } if (PyObject_TypeCheck(sig_obj, &qpycore_pyqtSignal_Type) && !qtx) { qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)sig_obj; return ps->signature->signature.constData(); } return 0; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtboundsignal.h0000644000076500000240000000325012536324426023117 0ustar philstaff00000000000000// This defines the interfaces for the pyqtBoundSignal type. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_PYQTBOUNDSIGNAL_H #define _QPYCORE_PYQTBOUNDSIGNAL_H #include #include "qpycore_pyqtsignal.h" #include "qpycore_namespace.h" QT_BEGIN_NAMESPACE class QObject; QT_END_NAMESPACE extern "C" { // This defines the structure of a bound PyQt signal. typedef struct { PyObject_HEAD // The unbound signal. qpycore_pyqtSignal *unbound_signal; // A borrowed reference to the wrapped QObject that is bound to the signal. PyObject *bound_pyobject; // The QObject that is bound to the signal. QObject *bound_qobject; } qpycore_pyqtBoundSignal; extern PyTypeObject qpycore_pyqtBoundSignal_Type; } PyObject *qpycore_pyqtBoundSignal_New(qpycore_pyqtSignal *unbound_signal, PyObject *bound_pyobject, QObject *bound_qobject); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtconfigure.cpp0000644000076500000240000001524512536324426023135 0ustar philstaff00000000000000// This implements the helper for QObject.pyqtConfigure(). // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_pyqtboundsignal.h" #include "qpycore_sip.h" // The result of handling a keyword argument. enum ArgStatus { AsError, AsHandled, AsUnknown }; static ArgStatus handle_argument(PyObject *self, QObject *qobj, PyObject *name_obj, PyObject *value_obj); // This is the helper for QObject.pyqtConfigure(). PyObject *qpycore_pyqtconfigure(PyObject *self, PyObject *args, PyObject *kwds) { // Check there are no positional arguments. if (PyTuple_Size(args) > 0) { PyErr_SetString(PyExc_TypeError, "QObject.pyqtConfigure() has no positional arguments"); return 0; } // Get the QObject self. QObject *qobj = reinterpret_cast( sipGetCppPtr((sipSimpleWrapper *)self, sipType_QObject)); if (!qobj) return 0; PyObject *name_obj, *value_obj; SIP_SSIZE_T pos = 0; while (PyDict_Next(kwds, &pos, &name_obj, &value_obj)) { ArgStatus as = handle_argument(self, qobj, name_obj, value_obj); if (as == AsError) return 0; if (as == AsUnknown) { #if PY_MAJOR_VERSION >= 3 PyErr_Format(PyExc_AttributeError, "'%S' is not the name of a Qt property or signal", name_obj); #else PyObject *name_s = PyObject_Str(name_obj); if (name_s != NULL) { PyErr_Format(PyExc_AttributeError, "'%s' is not the name of a Qt property or signal", PyString_AsString(name_s)); Py_DECREF(name_s); } #endif return 0; } } Py_INCREF(Py_None); return Py_None; } // This is the helper for the QObject %FinalisationCode. int qpycore_qobject_finalisation(PyObject *self, QObject *qobj, PyObject *kwds, PyObject **updated_kwds) { // Handle the trivial case. if (!kwds) return 0; // The dict we will be removing handled arguments from, 0 if it needs to be // created. PyObject *unused = (updated_kwds ? 0 : kwds); PyObject *name_obj, *value_obj; SIP_SSIZE_T pos = 0; while (PyDict_Next(kwds, &pos, &name_obj, &value_obj)) { ArgStatus as = handle_argument(self, qobj, name_obj, value_obj); if (as == AsError) return -1; if (as == AsHandled) { if (!unused) { unused = PyDict_Copy(kwds); if (!unused) return -1; *updated_kwds = unused; } if (PyDict_DelItem(unused, name_obj) < 0) { if (updated_kwds) Py_DECREF(unused); return -1; } } } return 0; } // Handle a single keyword argument. static ArgStatus handle_argument(PyObject *self, QObject *qobj, PyObject *name_obj, PyObject *value_obj) { const QMetaObject *mo = qobj->metaObject(); // Get the name encoded name. PyObject *enc_name_obj = name_obj; const char *name = sipString_AsASCIIString(&enc_name_obj); if (!name) return AsError; QByteArray enc_name(name); Py_DECREF(enc_name_obj); // See if it is a property. int idx = mo->indexOfProperty(enc_name.constData()); if (idx >= 0) { QMetaProperty prop = mo->property(idx); // A negative type means a QVariant property. if (prop.userType() >= 0) { const Chimera *ct = Chimera::parse(prop); if (!ct) { PyErr_Format(PyExc_TypeError, "'%s' keyword argument has an invalid type", enc_name.constData()); return AsError; } QVariant value; bool valid = ct->fromPyObject(value_obj, &value); delete ct; if (!valid) return AsError; qobj->setProperty(enc_name.constData(), value); } else { int value_state, iserr = 0; QVariant *value = reinterpret_cast( sipForceConvertToType(value_obj, sipType_QVariant, 0, SIP_NOT_NONE, &value_state, &iserr)); if (iserr) return AsError; qobj->setProperty(enc_name.constData(), *value); sipReleaseType(value, sipType_QVariant, value_state); } } else { bool unknown = true; // See if it is a signal. PyObject *sig = PyObject_GetAttr(self, name_obj); if (sig) { if (PyObject_TypeCheck(sig, &qpycore_pyqtBoundSignal_Type)) { static PyObject *connect_obj = NULL; if (!connect_obj) { #if PY_MAJOR_VERSION >= 3 connect_obj = PyUnicode_FromString("connect"); #else connect_obj = PyString_FromString("connect"); #endif if (!connect_obj) { Py_DECREF(sig); return AsError; } } // Connect the slot. PyObject *res = PyObject_CallMethodObjArgs(sig, connect_obj, value_obj, 0); if (!res) { Py_DECREF(sig); return AsError; } Py_DECREF(res); unknown = false; } Py_DECREF(sig); } if (unknown) { PyErr_Clear(); return AsUnknown; } } return AsHandled; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtmethodproxy.cpp0000644000076500000240000002205612536324426023534 0ustar philstaff00000000000000// This contains the implementation of the pyqtMethodProxy type. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_pyqtmethodproxy.h" // Forward declarations. extern "C" { static PyObject *pyqtMethodProxy_call(PyObject *self, PyObject *args, PyObject *kw_args); static void pyqtMethodProxy_dealloc(PyObject *self); } static void parse_arg(PyObject *args, int arg_nr, const QList &types, QGenericArgument &arg, Chimera::Storage **storage, bool &failed, const char *py_name); // The pyqtMethodProxy type object. PyTypeObject qpycore_pyqtMethodProxy_Type = { PyVarObject_HEAD_INIT(NULL, 0) SIP_TPNAME_CAST("PyQt4.QtCore.pyqtMethodProxy"), /* tp_name */ sizeof (qpycore_pyqtMethodProxy), /* tp_basicsize */ 0, /* tp_itemsize */ pyqtMethodProxy_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ 0, /* tp_compare */ 0, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ pyqtMethodProxy_call, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ 0, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ PyType_GenericNew, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ 0, /* tp_del */ #if PY_VERSION_HEX >= 0x02060000 0, /* tp_version_tag */ #endif #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif }; // The type dealloc slot. static void pyqtMethodProxy_dealloc(PyObject *self) { qpycore_pyqtMethodProxy *mp = (qpycore_pyqtMethodProxy *)self; delete mp->py_name; Py_TYPE(self)->tp_free(self); } // The type call slot. static PyObject *pyqtMethodProxy_call(PyObject *self, PyObject *args, PyObject *kw_args) { qpycore_pyqtMethodProxy *mp = (qpycore_pyqtMethodProxy *)self; const char *py_name = mp->py_name->constData(); // Check for keyword arguments. if (kw_args) { PyErr_Format(PyExc_TypeError, "%s() does not support keyword arguments", py_name); return 0; } QMetaMethod method = mp->qobject->metaObject()->method(mp->method_index); QList arg_types = method.parameterTypes(); if (PyTuple_Size(args) != arg_types.size()) { PyErr_Format(PyExc_TypeError, #if PY_VERSION_HEX >= 0x02050000 "%s() called with %zd arguments but %d expected", #else "%s() called with %d arguments but %d expected", #endif py_name, PyTuple_Size(args), arg_types.size()); return 0; } // Parse the return type and the arguments. QGenericReturnArgument ret; QGenericArgument a0, a1, a2, a3, a4, a5, a6, a7, a8, a9; Chimera::Storage *return_storage, *storage[10]; QByteArray return_type(method.typeName()); bool failed = false; return_storage = 0; if (!return_type.isEmpty()) { const Chimera *ct = Chimera::parse(return_type); if (!ct) { PyErr_Format(PyExc_TypeError, "unable to convert return value of %s from '%s' to a Python object", py_name, return_type.constData()); return 0; } return_storage = ct->storageFactory(); ret = QGenericReturnArgument(return_type.constData(), return_storage->address()); } parse_arg(args, 0, arg_types, a0, storage, failed, py_name); parse_arg(args, 1, arg_types, a1, storage, failed, py_name); parse_arg(args, 2, arg_types, a2, storage, failed, py_name); parse_arg(args, 3, arg_types, a3, storage, failed, py_name); parse_arg(args, 4, arg_types, a4, storage, failed, py_name); parse_arg(args, 5, arg_types, a5, storage, failed, py_name); parse_arg(args, 6, arg_types, a6, storage, failed, py_name); parse_arg(args, 7, arg_types, a7, storage, failed, py_name); parse_arg(args, 8, arg_types, a8, storage, failed, py_name); parse_arg(args, 9, arg_types, a9, storage, failed, py_name); // Invoke the method. PyObject *result = 0; if (!failed) { #if QT_VERSION >= 0x040500 failed = !method.invoke(mp->qobject, ret, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); #else // Get the method name. QByteArray mname(method.signature()); mname.truncate(mname.indexOf('(')); failed = !QMetaObject::invokeMethod(mp->qobject, mname.constData(), ret, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); #endif if (failed) { PyErr_Format(PyExc_TypeError, "invocation of %s() failed", py_name); } else if (return_storage) { result = return_storage->toPyObject(); } else { result = Py_None; Py_INCREF(result); } } // Release any storage. if (return_storage) { delete return_storage->type(); delete return_storage; } for (int i = 0; i < 10; ++i) { Chimera::Storage *st = storage[i]; if (st) { delete st->type(); delete st; } } return result; } // Convert a Python object to a QGenericArgument. static void parse_arg(PyObject *args, int arg_nr, const QList &types, QGenericArgument &arg, Chimera::Storage **storage, bool &failed, const char *py_name) { // Initialise so that we can safely release later. storage[arg_nr] = 0; // If we have already failed then there is nothing to do. if (failed) return; // If we have run out of arguments then there is nothing to do. if (arg_nr >= types.size()) return; PyObject *py_arg = PyTuple_GET_ITEM(args, arg_nr); const QByteArray &cpp_type = types.at(arg_nr); const Chimera *ct = Chimera::parse(cpp_type); Chimera::Storage *st; if (ct) st = ct->fromPyObjectToStorage(py_arg); else st = 0; if (!st) { if (ct) delete ct; PyErr_Format(PyExc_TypeError, "unable to convert argument %d of %s from '%s' to '%s'", arg_nr, py_name, Py_TYPE(py_arg)->tp_name, cpp_type.constData()); failed = true; return; } storage[arg_nr] = st; arg = QGenericArgument(cpp_type.constData(), st->address()); } // Create a proxy for a bound introspected method. PyObject *qpycore_pyqtMethodProxy_New(QObject *qobject, int method_index, const QByteArray &py_name) { qpycore_pyqtMethodProxy *mp; mp = (qpycore_pyqtMethodProxy *)PyType_GenericAlloc( &qpycore_pyqtMethodProxy_Type, 0); if (!mp) return 0; mp->qobject = qobject; mp->method_index = method_index; mp->py_name = new QByteArray(py_name); return (PyObject *)mp; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtmethodproxy.h0000644000076500000240000000324212536324426023175 0ustar philstaff00000000000000// This defines the interfaces for the pyqtMethodProxy type. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_PYQTMETHODPROXY_H #define _QPYCORE_PYQTMETHODPROXY_H #include #include #include #include "qpycore_namespace.h" QT_BEGIN_NAMESPACE class QObject; QT_END_NAMESPACE extern "C" { // This defines the structure of a pyqtMethodProxy object. typedef struct _qpycore_pyqtMethodProxy { PyObject_HEAD // The QObject whose method being proxied. QObject *qobject; // The method index in the QObject's meta-object. int method_index; // The fully qualified Python name of the method. const QByteArray *py_name; } qpycore_pyqtMethodProxy; extern PyTypeObject qpycore_pyqtMethodProxy_Type; } PyObject *qpycore_pyqtMethodProxy_New(QObject *qobject, int method_index, const QByteArray &py_name); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtproperty.cpp0000644000076500000240000003500112536324426023030 0ustar philstaff00000000000000// This is the implementation of pyqtProperty. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include "qpycore_chimera.h" #include "qpycore_pyqtproperty.h" #include "qpycore_pyqtsignal.h" // Forward declarations. extern "C" { static PyObject *pyqtProperty_getter(PyObject *self, PyObject *getter); static PyObject *pyqtProperty_setter(PyObject *self, PyObject *setter); static PyObject *pyqtProperty_deleter(PyObject *self, PyObject *deleter); static PyObject *pyqtProperty_reset(PyObject *self, PyObject *reset); static PyObject *pyqtProperty_descr_get(PyObject *self, PyObject *obj, PyObject *); static int pyqtProperty_descr_set(PyObject *self, PyObject *obj, PyObject *value); static PyObject *pyqtProperty_call(PyObject *self, PyObject *args, PyObject *kwds); static void pyqtProperty_dealloc(PyObject *self); static int pyqtProperty_init(PyObject *self, PyObject *args, PyObject *kwds); static int pyqtProperty_traverse(PyObject *self, visitproc visit, void *arg); } static qpycore_pyqtProperty *clone(qpycore_pyqtProperty *orig); // Doc-strings. PyDoc_STRVAR(pyqtProperty_doc, "pyqtProperty(type, fget=None, fset=None, freset=None, fdel=None, doc=None,\n" " designable=True, scriptable=True, stored=True, user=False,\n" " constant=False, final=False, notify=None) -> property attribute\n" "\n" "type is the type of the property. It is either a type object or a string\n" "that is the name of a C++ type.\n" "freset is a function for resetting an attribute to its default value.\n" "designable sets the DESIGNABLE flag (the default is True for writable\n" "properties and False otherwise).\n" "scriptable sets the SCRIPTABLE flag.\n" "stored sets the STORED flag.\n" "user sets the USER flag.\n" "constant sets the CONSTANT flag.\n" "final sets the FINAL flag.\n" "notify is the NOTIFY signal.\n" "The other parameters are the same as those required by the standard Python\n" "property type. Properties defined using pyqtProperty behave as both Python\n" "and Qt properties." "\n" "Decorators can be used to define new properties or to modify existing ones."); PyDoc_STRVAR(getter_doc, "Descriptor to change the getter on a property."); PyDoc_STRVAR(setter_doc, "Descriptor to change the setter on a property."); PyDoc_STRVAR(deleter_doc, "Descriptor to change the deleter on a property."); PyDoc_STRVAR(reset_doc, "Descriptor to change the reset on a property."); // Define the attributes. static PyMemberDef pyqtProperty_members[] = { {const_cast("type"), T_OBJECT, offsetof(qpycore_pyqtProperty, pyqtprop_type), READONLY, 0}, {const_cast("fget"), T_OBJECT, offsetof(qpycore_pyqtProperty, pyqtprop_get), READONLY, 0}, {const_cast("fset"), T_OBJECT, offsetof(qpycore_pyqtProperty, pyqtprop_set), READONLY, 0}, {const_cast("fdel"), T_OBJECT, offsetof(qpycore_pyqtProperty, pyqtprop_del), READONLY, 0}, {const_cast("freset"), T_OBJECT, offsetof(qpycore_pyqtProperty, pyqtprop_reset), READONLY, 0}, {const_cast("__doc__"), T_OBJECT, offsetof(qpycore_pyqtProperty, pyqtprop_doc), READONLY, 0}, {0, 0, 0, 0, 0} }; // Define the methods. static PyMethodDef pyqtProperty_methods[] = { {"getter", pyqtProperty_getter, METH_O, getter_doc}, {"read", pyqtProperty_getter, METH_O, getter_doc}, {"setter", pyqtProperty_setter, METH_O, setter_doc}, {"write", pyqtProperty_setter, METH_O, setter_doc}, {"deleter", pyqtProperty_deleter, METH_O, deleter_doc}, {"reset", pyqtProperty_reset, METH_O, reset_doc}, {0, 0, 0, 0} }; // This implements the PyQt version of the standard Python property type. PyTypeObject qpycore_pyqtProperty_Type = { PyVarObject_HEAD_INIT(NULL, 0) SIP_TPNAME_CAST("PyQt4.QtCore.pyqtProperty"), sizeof (qpycore_pyqtProperty), 0, pyqtProperty_dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, pyqtProperty_call, 0, PyObject_GenericGetAttr, 0, 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_BASETYPE, pyqtProperty_doc, pyqtProperty_traverse, 0, 0, 0, 0, 0, pyqtProperty_methods, pyqtProperty_members, 0, 0, 0, pyqtProperty_descr_get, pyqtProperty_descr_set, 0, pyqtProperty_init, PyType_GenericAlloc, PyType_GenericNew, PyObject_GC_Del, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x02060000 0, #endif #if PY_VERSION_HEX >= 0x03040000 0, #endif }; // This is the sequence number to allocate to the next PyQt property to be // defined. This ensures that properties appear in the QMetaObject in the same // order that they are defined in Python. static uint pyqtprop_sequence_nr = 0; // The pyqtProperty dealloc function. static void pyqtProperty_dealloc(PyObject *self) { qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)self; PyObject_GC_UnTrack(self); Py_XDECREF(pp->pyqtprop_get); Py_XDECREF(pp->pyqtprop_set); Py_XDECREF(pp->pyqtprop_del); Py_XDECREF(pp->pyqtprop_doc); Py_XDECREF(pp->pyqtprop_reset); Py_XDECREF(pp->pyqtprop_notify); Py_XDECREF(pp->pyqtprop_type); delete pp->pyqtprop_parsed_type; Py_TYPE(self)->tp_free(self); } // The descriptor getter. static PyObject *pyqtProperty_descr_get(PyObject *self, PyObject *obj, PyObject *) { qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)self; if (!obj || obj == Py_None) { Py_INCREF(self); return self; } if (!pp->pyqtprop_get) { PyErr_SetString(PyExc_AttributeError, "unreadable attribute"); return 0; } return PyObject_CallFunction(pp->pyqtprop_get, const_cast("(O)"), obj); } // The descriptor setter. static int pyqtProperty_descr_set(PyObject *self, PyObject *obj, PyObject *value) { qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)self; PyObject *func, *res; func = (value ? pp->pyqtprop_set : pp->pyqtprop_del); if (!func) { PyErr_SetString(PyExc_AttributeError, (value ? "can't set attribute" : "can't delete attribute")); return -1; } if (value) res = PyObject_CallFunction(func, const_cast("(OO)"), obj, value); else res = PyObject_CallFunction(func, const_cast("(O)"), obj); if (!res) return -1; Py_DECREF(res); return 0; } // The pyqtProperty traverse function. static int pyqtProperty_traverse(PyObject *self, visitproc visit, void *arg) { qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)self; int vret; if (pp->pyqtprop_get) { vret = visit(pp->pyqtprop_get, arg); if (vret != 0) return vret; } if (pp->pyqtprop_set) { vret = visit(pp->pyqtprop_set, arg); if (vret != 0) return vret; } if (pp->pyqtprop_del) { vret = visit(pp->pyqtprop_del, arg); if (vret != 0) return vret; } if (pp->pyqtprop_doc) { vret = visit(pp->pyqtprop_doc, arg); if (vret != 0) return vret; } if (pp->pyqtprop_reset) { vret = visit(pp->pyqtprop_reset, arg); if (vret != 0) return vret; } if (pp->pyqtprop_notify) { vret = visit(pp->pyqtprop_notify, arg); if (vret != 0) return vret; } if (pp->pyqtprop_type) { vret = visit(pp->pyqtprop_type, arg); if (vret != 0) return vret; } return 0; } // The pyqtProperty init function. static int pyqtProperty_init(PyObject *self, PyObject *args, PyObject *kwds) { PyObject *type, *get = 0, *set = 0, *reset = 0, *del = 0, *doc = 0, *notify = 0; int scriptable = 1, stored = 1, user = 0, constant = 0, final = 0; #if QT_VERSION >= 0x040600 int designable = 1; #else int designable = -1; #endif static const char *kwlist[] = {"type", "fget", "fset", "freset", "fdel", "doc", "designable", "scriptable", "stored", "user", "constant", "final", "notify", 0}; qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)self; pp->pyqtprop_sequence = pyqtprop_sequence_nr++; if (!PyArg_ParseTupleAndKeywords(args, kwds, #if PY_VERSION_HEX >= 0x02050000 "O|OOOOOiiiiiiO!:pyqtProperty", #else const_cast("O|OOOOOiiiiiiO!:pyqtProperty"), #endif const_cast(kwlist), &type, &get, &set, &reset, &del, &doc, &designable, &scriptable, &stored, &user, &constant, &final, &qpycore_pyqtSignal_Type, ¬ify)) return -1; if (get == Py_None) get = 0; if (set == Py_None) set = 0; if (del == Py_None) del = 0; if (reset == Py_None) reset = 0; if (notify == Py_None) notify = 0; #if QT_VERSION < 0x040600 // The default value of designable depends on whether the property is // writable. if (designable < 0) designable = (set != 0); #endif // Parse the type. const Chimera *ptype = Chimera::parse(type); if (!ptype) { Chimera::raiseParseException(type, "a property"); return -1; } pp->pyqtprop_parsed_type = ptype; Py_XINCREF(get); Py_XINCREF(set); Py_XINCREF(del); Py_XINCREF(doc); Py_XINCREF(reset); Py_XINCREF(notify); Py_INCREF(type); /* If no docstring was given and the getter has one, then use it. */ if ((!doc || doc == Py_None) && get) { #if PY_VERSION_HEX >= 0x02050000 PyObject *get_doc = PyObject_GetAttrString(get, "__doc__"); #else PyObject *get_doc = PyObject_GetAttrString(get, const_cast("__doc__")); #endif if (get_doc) { Py_XDECREF(doc); doc = get_doc; } else { PyErr_Clear(); } } pp->pyqtprop_get = get; pp->pyqtprop_set = set; pp->pyqtprop_del = del; pp->pyqtprop_doc = doc; pp->pyqtprop_reset = reset; pp->pyqtprop_notify = notify; pp->pyqtprop_type = type; // ResolveEditable is always set. unsigned flags = 0x00080000; if (designable) flags |= 0x00001000; if (scriptable) flags |= 0x00004000; if (stored) flags |= 0x00010000; if (user) flags |= 0x00100000; if (constant) flags |= 0x00000400; if (final) flags |= 0x00000800; pp->pyqtprop_flags = flags; return 0; } // Calling the property is a shorthand way of changing the getter. static PyObject *pyqtProperty_call(PyObject *self, PyObject *args, PyObject *kwds) { PyObject *get; static const char *kwlist[] = {"fget", 0}; if (!PyArg_ParseTupleAndKeywords(args, kwds, #if PY_VERSION_HEX >= 0x02050000 "O:pyqtProperty", #else const_cast("O:pyqtProperty"), #endif const_cast(kwlist), &get)) return 0; return pyqtProperty_getter(self, get); } // Return a copy of the property with a different getter. static PyObject *pyqtProperty_getter(PyObject *self, PyObject *getter) { qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)self; pp = clone(pp); if (pp) { Py_XDECREF(pp->pyqtprop_get); if (getter == Py_None) getter = 0; else Py_INCREF(getter); pp->pyqtprop_get = getter; } return (PyObject *)pp; } // Return a copy of the property with a different setter. static PyObject *pyqtProperty_setter(PyObject *self, PyObject *setter) { qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)self; pp = clone(pp); if (pp) { Py_XDECREF(pp->pyqtprop_set); if (setter == Py_None) setter = 0; else Py_INCREF(setter); pp->pyqtprop_set = setter; } return (PyObject *)pp; } // Return a copy of the property with a different deleter. static PyObject *pyqtProperty_deleter(PyObject *self, PyObject *deleter) { qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)self; pp = clone(pp); if (pp) { Py_XDECREF(pp->pyqtprop_del); if (deleter == Py_None) deleter = 0; else Py_INCREF(deleter); pp->pyqtprop_del = deleter; } return (PyObject *)pp; } // Return a copy of the property with a different reset. static PyObject *pyqtProperty_reset(PyObject *self, PyObject *reset) { qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)self; pp = clone(pp); if (pp) { Py_XDECREF(pp->pyqtprop_reset); if (reset == Py_None) reset = 0; else Py_INCREF(reset); pp->pyqtprop_reset = reset; } return (PyObject *)pp; } // Create a clone of a property. static qpycore_pyqtProperty *clone(qpycore_pyqtProperty *orig) { qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)PyType_GenericNew( Py_TYPE(orig), 0, 0); if (pp) { pp->pyqtprop_get = orig->pyqtprop_get; Py_XINCREF(pp->pyqtprop_get); pp->pyqtprop_set = orig->pyqtprop_set; Py_XINCREF(pp->pyqtprop_set); pp->pyqtprop_del = orig->pyqtprop_del; Py_XINCREF(pp->pyqtprop_del); pp->pyqtprop_doc = orig->pyqtprop_doc; Py_XINCREF(pp->pyqtprop_doc); pp->pyqtprop_reset = orig->pyqtprop_reset; Py_XINCREF(pp->pyqtprop_reset); pp->pyqtprop_notify = orig->pyqtprop_notify; Py_XINCREF(pp->pyqtprop_notify); pp->pyqtprop_type = orig->pyqtprop_type; Py_XINCREF(pp->pyqtprop_type); pp->pyqtprop_parsed_type = new Chimera(*orig->pyqtprop_parsed_type); pp->pyqtprop_flags = orig->pyqtprop_flags; pp->pyqtprop_sequence = orig->pyqtprop_sequence; } return pp; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtproperty.h0000644000076500000240000000376112536324426022505 0ustar philstaff00000000000000// This contains the definitions for the implementation of pyqtProperty. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_PYQTPROPERTY_H #define _QPYCORE_PYQTPROPERTY_H #include class Chimera; extern "C" { // This defines the structure of a PyQt property. typedef struct { PyObject_HEAD // The fget/getter/read callable. PyObject *pyqtprop_get; // The fset/setter/write callable. PyObject *pyqtprop_set; // The fdel/deleter callable. PyObject *pyqtprop_del; // The docstring. PyObject *pyqtprop_doc; // The freset/reset callable. PyObject *pyqtprop_reset; // The notify signal. PyObject *pyqtprop_notify; // The property type. PyObject *pyqtprop_type; // The parsed type information. const Chimera *pyqtprop_parsed_type; // The DESIGNABLE, SCRIPTABLE, STORED, USER, CONSTANT and FINAL flags. unsigned pyqtprop_flags; // The property's sequence number that determines the position of the // property in the QMetaObject. uint pyqtprop_sequence; } qpycore_pyqtProperty; // This implements the PyQt version of the standard Python property type. extern PyTypeObject qpycore_pyqtProperty_Type; } #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtproxy.cpp0000644000076500000240000004173512536324426022340 0ustar philstaff00000000000000// This contains the implementation of the PyQtProxy class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_qmetaobjectbuilder.h" #include "qpycore_pyqtproxy.h" #include "qpycore_pyqtpyobject.h" #include "qpycore_sip.h" // Proxy flags. Note that SIP_SINGLE_SHOT is part of the same flag-space. #define PROXY_OWNS_SLOT_SIG 0x10 // The proxy owns the slot signature. #define PROXY_SLOT_INVOKED 0x20 // The proxied slot is executing. #define PROXY_SLOT_DISABLED 0x40 // The proxy deleteLater() has been called // or should be called after the slot has // finished executing. #define PROXY_NO_RCVR_CHECK 0x80 // The existence of the receiver C++ object // should not be checked. // The last QObject sender. QObject *PyQtProxy::last_sender = 0; #if QT_VERSION < 0x050000 static const uint slot_meta_data[] = { // content: 1, // revision 0, // classname 0, 0, // classinfo 2, 10, // methods (number, offset in this array of first one) 0, 0, // properties 0, 0, // enums/sets // slots: signature, parameters, type, tag, flags 21, 10, 10, 10, 0x0a, 11, 10, 10, 10, 0x0a, 0 // eod }; static const char slot_meta_stringdata[] = { "PyQtProxy\0\0disable()\0unislot()\0" }; const QMetaObject PyQtProxy::staticMetaObject = { { &QObject::staticMetaObject, slot_meta_stringdata, slot_meta_data, 0 } }; #endif // Create a universal proxy used as a signal. PyQtProxy::PyQtProxy(QObject *qtx, const char *sig) : QObject(), type(PyQtProxy::ProxySignal), proxy_flags(0), signature(QMetaObject::normalizedSignature(sig)), meta_object(0) { init(qtx, &proxy_signals, qtx); } // Create a universal proxy used as a slot. Note that this will leak if there // is no signal transmitter (ie. no parent) and not marked as single shot. // There will be no meta-object if there was a problem creating the proxy. PyQtProxy::PyQtProxy(sipWrapper *txObj, const char *sig, PyObject *rxObj, const char *slot, const char **member, int flags) : QObject(), type(PyQtProxy::ProxySlot), proxy_flags(PROXY_OWNS_SLOT_SIG | flags), signature(QMetaObject::normalizedSignature(sig)), meta_object(0) { void *tx = 0; QObject *qtx = 0; // Parse the signature. SIP_BLOCK_THREADS real_slot.signature = Chimera::parse(signature, "a slot argument"); if (real_slot.signature) { // Save the slot. if (sipSaveSlot(&real_slot.sip_slot, rxObj, slot) < 0) { delete real_slot.signature; real_slot.signature = 0; } else { // See if there is a transmitter and that it is a QObject. if (txObj) { tx = sipGetCppPtr((sipSimpleWrapper *)txObj, 0); if (tx && PyObject_TypeCheck((PyObject *)txObj, sipTypeAsPyTypeObject(sipType_QObject))) qtx = reinterpret_cast(tx); } } } SIP_UNBLOCK_THREADS if (real_slot.signature) { // Return the slot to connect to. *member = SLOT(unislot()); init(qtx, &proxy_slots, tx); } } // Create a universal proxy used as a slot being connected to a bound signal. // There will be no meta-object if there was a problem creating the proxy. PyQtProxy::PyQtProxy(qpycore_pyqtBoundSignal *bs, PyObject *rxObj, const char **member) : QObject(), type(PyQtProxy::ProxySlot), proxy_flags(0), signature(bs->unbound_signal->signature->signature) { SIP_BLOCK_THREADS real_slot.signature = bs->unbound_signal->signature; // Save the slot. if (sipSaveSlot(&real_slot.sip_slot, rxObj, 0) < 0) real_slot.signature = 0; SIP_UNBLOCK_THREADS if (real_slot.signature) { // Return the slot to connect to. *member = SLOT(unislot()); init(bs->bound_qobject, &proxy_slots, bs->bound_qobject); } } // Initialisation common to all ctors. void PyQtProxy::init(QObject *qtx, PyQtProxy::ProxyHash *hash, void *key) { // Create a new meta-object on the heap so that it looks like it has a // signal of the right name and signature. #if QT_VERSION >= 0x050000 QMetaObjectBuilder builder; builder.setClassName("PyQtProxy"); builder.setSuperClass(&QObject::staticMetaObject); // Note that signals must be added before slots. if (type == ProxySignal) builder.addSignal(signature); else builder.addSlot("unislot()"); builder.addSlot("disable()"); meta_object = builder.toMetaObject(); #else if (type == ProxySignal) { QMetaObject *mo = new QMetaObject; mo->d.superdata = &QObject::staticMetaObject; mo->d.extradata = 0; // Calculate the size of the string meta-data as follows: // - "PyQtProxy" and its terminating '\0' (ie. 9 + 1 bytes), // - a '\0' used for any empty string, // - "disable()" and its terminating '\0' (ie. 9 + 1 bytes), // - the (non-existent) argument names (ie. use the empty string if // there is less that two arguments, otherwise a comma between each // argument and the terminating '\0'), // - the name and full signature, less the initial type character, plus // the terminating '\0'. const size_t fixed_len = 9 + 1 + 1 + 9 + 1; const size_t empty_str = 9 + 1; int nr_commas = signature.count(','); size_t len = fixed_len + (nr_commas >= 0 ? nr_commas + 1 : 0) + signature.size() + 1; char *smd = new char[len]; memcpy(smd, slot_meta_stringdata, fixed_len); uint i = fixed_len, args_pos; if (nr_commas > 0) { args_pos = i; for (int c = 0; c < nr_commas; ++c) smd[i++] = ','; smd[i++] = '\0'; } else { args_pos = empty_str; } uint sig_pos = i; qstrcpy(&smd[i], signature.constData()); mo->d.stringdata = smd; // Add the non-string data. uint *data = new uint[21]; memcpy(data, slot_meta_data, 21 * sizeof (uint)); // Replace the first method (ie. unislot()) with the new signal. data[10] = sig_pos; data[11] = args_pos; data[14] = 0x05; mo->d.data = data; meta_object = mo; } else { meta_object = &staticMetaObject; } #endif hashed = true; saved_key = key; transmitter = qtx; // Add this one to the global hashes. mutex->lock(); hash->insert(key, this); mutex->unlock(); // Detect when the transmitter is destroyed. (Note that we used to do this // by making the proxy a child of the transmitter. This doesn't work as // expected because QWidget destroys its children before emitting the // destroyed signal.) We use a queued connection in case the proxy is also // connected to the same signal and we want to make sure it has a chance // to invoke the slot before being destroyed. if (qtx) connect(qtx, SIGNAL(destroyed(QObject *)), SLOT(disable()), Qt::QueuedConnection); } // Destroy a universal proxy. PyQtProxy::~PyQtProxy() { Q_ASSERT((proxy_flags & PROXY_SLOT_INVOKED) == 0); if (hashed) { mutex->lock(); switch (type) { case ProxySlot: { ProxyHash::iterator it(proxy_slots.find(saved_key)); ProxyHash::iterator end(proxy_slots.end()); while (it != end && it.key() == saved_key) { if (it.value() == this) it = proxy_slots.erase(it); else ++it; } break; } case ProxySignal: { ProxyHash::iterator it(proxy_signals.find(saved_key)); ProxyHash::iterator end(proxy_signals.end()); while (it != end && it.key() == saved_key) { if (it.value() == this) it = proxy_signals.erase(it); else ++it; } break; } } mutex->unlock(); } if (type == ProxySlot && real_slot.signature) { // Qt can still be tidying up after Python has gone so make sure that // it hasn't. if (Py_IsInitialized()) { SIP_BLOCK_THREADS sipFreeSipslot(&real_slot.sip_slot); SIP_UNBLOCK_THREADS } if (proxy_flags & PROXY_OWNS_SLOT_SIG) delete real_slot.signature; real_slot.signature = 0; } if (meta_object) { #if QT_VERSION >= 0x050000 free(const_cast(meta_object)); #else if (meta_object != &staticMetaObject) { // The casts are needed for MSVC 6. delete[] const_cast(meta_object->d.stringdata); delete[] const_cast(meta_object->d.data); delete meta_object; } #endif } } // The static members of PyQtProxy. QMutex *PyQtProxy::mutex; PyQtProxy::ProxyHash PyQtProxy::proxy_slots; PyQtProxy::ProxyHash PyQtProxy::proxy_signals; const QMetaObject *PyQtProxy::metaObject() const { return meta_object; } void *PyQtProxy::qt_metacast(const char *_clname) { if (!_clname) return 0; if (qstrcmp(_clname, "PyQtProxy") == 0) return static_cast(const_cast(this)); return QObject::qt_metacast(_clname); } int PyQtProxy::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: if (type == ProxySignal) QMetaObject::activate(this, meta_object, _id, _a); else unislot(_a); break; case 1: disable(); break; } _id -= 2; } return _id; } // This is the universal slot itself that dispatches to the real slot. void PyQtProxy::unislot(void **qargs) { // If we are marked as disabled (possible if a queued signal has been // disconnected but there is still a signal in the event queue) then just // ignore the call. if (proxy_flags & PROXY_SLOT_DISABLED) return; // sender() must be called without the GIL to avoid possible deadlocks // between the GIL and Qt's internal thread data mutex. QObject *new_last_sender = sender(); SIP_BLOCK_THREADS QObject *saved_last_sender = last_sender; last_sender = new_last_sender; int no_receiver_check = (proxy_flags & PROXY_NO_RCVR_CHECK); PyObject *res; // See if the sender was a short-circuit signal. */ if (last_sender && PyQtShortcircuitSignalProxy::shortcircuitSignal(last_sender)) { // The Python arguments will be the only argument. PyObject *pyargs = reinterpret_cast(qargs[1])->pyobject; res = sipInvokeSlotEx(&real_slot.sip_slot, pyargs, no_receiver_check); } else { proxy_flags |= PROXY_SLOT_INVOKED; res = invokeSlot(real_slot, qargs, no_receiver_check); proxy_flags &= ~PROXY_SLOT_INVOKED; // Self destruct if we are a single shot or disabled. if (proxy_flags & (SIP_SINGLE_SHOT|PROXY_SLOT_DISABLED)) { // See the comment in disable() for why we deleteLater(). deleteLater(); } } if (res) Py_DECREF(res); else PyErr_Print(); last_sender = saved_last_sender; SIP_UNBLOCK_THREADS } // Disable the slot by destroying it if possible, or delaying its destruction // until the proxied slot returns. void PyQtProxy::disable() { proxy_flags |= PROXY_SLOT_DISABLED; // Delete it if the slot isn't currently executing, otherwise it will be // done after the slot returns. Note that we don't rely on deleteLater() // providing the necessary delay because the slot could process the event // loop and the proxy would be deleted too soon. if ((proxy_flags & PROXY_SLOT_INVOKED) == 0) { // Despite what the Qt documentation suggests, if there are outstanding // queued signals then we may crash so we always delete later when the // event queue will have been flushed. deleteLater(); } } // Invoke a slot on behalf of C++. PyObject *PyQtProxy::invokeSlot(const qpycore_slot &slot, void **qargs, int no_receiver_check) { const QList &args = slot.signature->parsed_arguments; PyObject *argtup = PyTuple_New(args.size()); if (!argtup) return 0; QList::const_iterator it = args.constBegin(); for (int a = 0; it != args.constEnd(); ++a) { PyObject *arg = (*it)->toPyObject(*++qargs); if (!arg) { Py_DECREF(argtup); return 0; } PyTuple_SET_ITEM(argtup, a, arg); ++it; } // Dispatch to the real slot. PyObject *res = sipInvokeSlotEx(&slot.sip_slot, argtup, no_receiver_check); Py_DECREF(argtup); return res; } // Disable the check that the receiver C++ object exists before invoking a // slot. void PyQtProxy::disableReceiverCheck() { proxy_flags |= PROXY_NO_RCVR_CHECK; } // Find a slot proxy connected to a transmitter. PyQtProxy *PyQtProxy::findSlotProxy(void *tx, const char *sig, PyObject *rxObj, const char *slot, const char **member) { PyQtProxy *proxy = 0; mutex->lock(); ProxyHash::const_iterator it(proxy_slots.find(tx)); ProxyHash::const_iterator end(proxy_slots.end()); while (it != end && it.key() == tx) { PyQtProxy *up = it.value(); if (up->signature == sig && sipSameSlot(&up->real_slot.sip_slot, rxObj, slot)) { *member = SLOT(unislot()); proxy = up; break; } ++it; } mutex->unlock(); return proxy; } // Delete any slot proxies for a particular signal. void PyQtProxy::deleteSlotProxies(void *tx, const char *sig) { mutex->lock(); ProxyHash::iterator it(proxy_slots.find(tx)); ProxyHash::iterator end(proxy_slots.end()); while (it != end && it.key() == tx) { PyQtProxy *up = it.value(); if (up->signature == sig) { up->hashed = false; it = proxy_slots.erase(it); up->disable(); } else ++it; } mutex->unlock(); } // This is set if a PyQtShortcircuitSignalProxy has never been created. bool PyQtShortcircuitSignalProxy::no_shortcircuit_signals = true; // Create the short-circuit signal proxy. PyQtShortcircuitSignalProxy::PyQtShortcircuitSignalProxy(QObject *parent) : QObject() { no_shortcircuit_signals = false; // We can't just set the parent because we might be in a different thread. moveToThread(parent->thread()); setParent(parent); } // Find an object's short-circuit signal proxy for a signature, if any. PyQtShortcircuitSignalProxy *PyQtShortcircuitSignalProxy::find(QObject *tx, const char *sig) { if (no_shortcircuit_signals) return 0; // Only check immediate children. const QObjectList &kids = tx->children(); for (int i = 0; i < kids.size(); ++i) { PyQtShortcircuitSignalProxy *proxy = qobject_cast(kids.at(i)); if (proxy && proxy->objectName() == sig) return proxy; } return 0; } // Return true if an object is a PyQtShortcircuitSignalProxy instance. This is // done without calling qobject_cast() unless absolutely necessary in case the // object has been deleted. PyQtShortcircuitSignalProxy *PyQtShortcircuitSignalProxy::shortcircuitSignal(QObject *obj) { if (no_shortcircuit_signals) return 0; return qobject_cast(obj); } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtproxy.h0000644000076500000240000001110312536324426021767 0ustar philstaff00000000000000// This contains the definition of the PyQtProxy class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_PYQTPROXY_H #define _QPYCORE_PYQTPROXY_H #include #include #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_namespace.h" #include "qpycore_pyqtboundsignal.h" #include "qpycore_sip.h" #include "qpycore_types.h" QT_BEGIN_NAMESPACE class QMutex; QT_END_NAMESPACE class PyQt_PyObject; // This class is used as a signal on behalf of Python signals and as a slot on // behalf of Python callables. It is derived from QObject but is not run // through moc. Instead the normal moc-generated methods are handwritten in // order to implement a universal signal or slot. This requires some knowledge // of the internal implementation of signals and slots but it is likely that // they will only change between major Qt versions. class PyQtProxy : public QObject { public: // The different roles a proxy can fulfill. It might have been better to // implement each as a sub-class. enum ProxyType { ProxySlot, ProxySignal, }; PyQtProxy(QObject *tx, const char *sig); PyQtProxy(sipWrapper *txObj, const char *sig, PyObject *rxObj, const char *slot, const char **member, int flags); PyQtProxy(qpycore_pyqtBoundSignal *bs, PyObject *rxObj, const char **member); ~PyQtProxy(); static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void *qt_metacast(const char *); virtual int qt_metacall(QMetaObject::Call, int, void **); void unislot(void **qargs); static PyObject *invokeSlot(const qpycore_slot &slot, void **qargs, int no_receiver_check = 0); void disable(); int getReceivers(const char *signal) const {return receivers(signal);} static void deleteSlotProxies(void *tx, const char *sig); static PyQtProxy *findSlotProxy(void *tx, const char *sig, PyObject *rxObj, const char *slot, const char **member); void disableReceiverCheck(); // The type of a proxy hash. typedef QMultiHash ProxyHash; // Each proxy type is held in a different hash. static ProxyHash proxy_slots; static ProxyHash proxy_signals; // The mutex around the proxies hashes. static QMutex *mutex; // The proxy type. ProxyType type; // The proxy flags. int proxy_flags; // The normalised signature. QByteArray signature; // Set if the proxy is in a hash. bool hashed; // The QObject transmitter we are proxying for (if any). QObject *transmitter; // The slot we are proxying for. (Only used when type is ProxySlot.) qpycore_slot real_slot; // The last QObject sender. static QObject *last_sender; private: void init(QObject *qtx, ProxyHash *hash, void *key); void remove(); // This object's key in the relevant hash. void *saved_key; // The meta-object. const QMetaObject *meta_object; PyQtProxy(const PyQtProxy &); PyQtProxy &operator=(const PyQtProxy &); }; // This acts as a proxy for short-circuit signals. The parent is the object we // are proxying for. The object name is the name of the signal. class PyQtShortcircuitSignalProxy : public QObject { Q_OBJECT public: PyQtShortcircuitSignalProxy(QObject *parent); int getReceivers(const char *signal) const {return receivers(signal);} void emit_signal(const PyQt_PyObject &args) {emit pysignal(args);} static PyQtShortcircuitSignalProxy *find(QObject *tx, const char *sig); static PyQtShortcircuitSignalProxy *shortcircuitSignal(QObject *obj); signals: void pysignal(const PyQt_PyObject &); private: static bool no_shortcircuit_signals; }; #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtpyobject.cpp0000644000076500000240000001065712536324426022775 0ustar philstaff00000000000000// This contains the support for Python objects and Qt's metatype system. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include "qpycore_pyqtpyobject.h" #include "qpycore_sip.h" // The Qt metatype id. int PyQt_PyObject::metatype; // The current pickle protocol. PyObject *qpycore_pickle_protocol; // Wrap a Python object. PyQt_PyObject::PyQt_PyObject(PyObject *py) { pyobject = py; SIP_BLOCK_THREADS Py_XINCREF(pyobject); SIP_UNBLOCK_THREADS } // Create a new wrapper, with no Python object. This is called by Qt's // metatype system. PyQt_PyObject::PyQt_PyObject() { pyobject = 0; } // Create a copy of an existing wrapper. This is called by Qt's metatype // system. PyQt_PyObject::PyQt_PyObject(const PyQt_PyObject &other) { pyobject = other.pyobject; SIP_BLOCK_THREADS Py_XINCREF(pyobject); SIP_UNBLOCK_THREADS } // Destroy a wrapper. PyQt_PyObject::~PyQt_PyObject() { // Qt can still be tidying up after Python has gone so make sure that it // hasn't. if (Py_IsInitialized()) { SIP_BLOCK_THREADS Py_XDECREF(pyobject); SIP_UNBLOCK_THREADS } pyobject = 0; } // Assignment operator. PyQt_PyObject &PyQt_PyObject::operator=(const PyQt_PyObject &other) { pyobject = other.pyobject; SIP_BLOCK_THREADS Py_XINCREF(pyobject); SIP_UNBLOCK_THREADS return *this; } // Serialise operator. QDataStream &operator<<(QDataStream &out, const PyQt_PyObject &obj) { PyObject *ser_obj = 0; const char *ser = 0; uint len = 0; if (obj.pyobject) { static PyObject *dumps = 0; SIP_BLOCK_THREADS if (!dumps) { PyObject *pickle = PyImport_ImportModule("pickle"); if (pickle) { dumps = PyObject_GetAttrString(pickle, "dumps"); Py_DECREF(pickle); } } if (dumps) { if (!qpycore_pickle_protocol) { Py_INCREF(Py_None); qpycore_pickle_protocol = Py_None; } ser_obj = PyObject_CallFunctionObjArgs(dumps, obj.pyobject, qpycore_pickle_protocol, 0); if (ser_obj) { if (SIPBytes_Check(ser_obj)) { ser = SIPBytes_AS_STRING(ser_obj); len = SIPBytes_GET_SIZE(ser_obj); } else { Py_DECREF(ser_obj); ser_obj = 0; } } else { PyErr_Print(); } } SIP_UNBLOCK_THREADS } out.writeBytes(ser, len); if (ser_obj) { SIP_BLOCK_THREADS Py_DECREF(ser_obj); SIP_UNBLOCK_THREADS } return out; } // De-serialise operator. QDataStream &operator>>(QDataStream &in, PyQt_PyObject &obj) { char *ser; uint len; in.readBytes(ser, len); if (len) { static PyObject *loads = 0; SIP_BLOCK_THREADS if (!loads) { PyObject *pickle = PyImport_ImportModule("pickle"); if (pickle) { loads = PyObject_GetAttrString(pickle, "loads"); Py_DECREF(pickle); } } if (loads) { PyObject *ser_obj = SIPBytes_FromStringAndSize(ser, len); if (ser_obj) { obj.pyobject = PyObject_CallFunctionObjArgs(loads, ser_obj, 0); Py_DECREF(ser_obj); } } SIP_UNBLOCK_THREADS } delete[] ser; return in; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtpyobject.h0000644000076500000240000000327712536324426022442 0ustar philstaff00000000000000// This contains definitions related to the support for Python objects and Qt's // meta-type system. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_PYQTPYOBJECT_H #define _QPYCORE_PYQTPYOBJECT_H #include #include #include // This class is used to wrap a PyObject so it can be passed around Qt's // meta-type system while maintaining its reference count. class PyQt_PyObject { public: PyQt_PyObject(PyObject *py); PyQt_PyObject(); PyQt_PyObject(const PyQt_PyObject &other); ~PyQt_PyObject(); PyQt_PyObject &operator=(const PyQt_PyObject &other); // The Python object being wrapped. PyObject *pyobject; // The Qt meta-type id. static int metatype; }; QDataStream &operator<<(QDataStream &out, const PyQt_PyObject &obj); QDataStream &operator>>(QDataStream &in, PyQt_PyObject &obj); Q_DECLARE_METATYPE(PyQt_PyObject) #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtsignal.cpp0000644000076500000240000004240412536324426022426 0ustar philstaff00000000000000// This contains the implementation of the pyqtSignal type. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_misc.h" #include "qpycore_pyqtboundsignal.h" #include "qpycore_pyqtsignal.h" // Forward declarations. extern "C" { static PyObject *pyqtSignal_call(PyObject *self, PyObject *args, PyObject *kw); static void pyqtSignal_dealloc(PyObject *self); static PyObject *pyqtSignal_descr_get(PyObject *self, PyObject *obj, PyObject *type); static int pyqtSignal_init(PyObject *self, PyObject *args, PyObject *kwd_args); static PyObject *pyqtSignal_repr(PyObject *self); static PyObject *pyqtSignal_mp_subscript(PyObject *self, PyObject *subscript); static PyObject *pyqtSignal_get_doc(PyObject *self, void *); } static int init_signal_from_types(qpycore_pyqtSignal *ps, const char *name, PyObject *types); static void append_overload(qpycore_pyqtSignal *ps); static bool is_signal_name(const char *sig, const char *name, uint name_len); // Define the mapping methods. static PyMappingMethods pyqtSignal_as_mapping = { 0, /* mp_length */ pyqtSignal_mp_subscript, /* mp_subscript */ 0, /* mp_ass_subscript */ }; // The getters/setters. static PyGetSetDef pyqtSignal_getsets[] = { {(char *)"__doc__", pyqtSignal_get_doc, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL, NULL} }; PyDoc_STRVAR(pyqtSignal_doc, "pyqtSignal(*types, name=str) -> signal\n" "\n" "types is normally a sequence of individual types. Each type is either a\n" "type object or a string that is the name of a C++ type. Alternatively\n" "each type could itself be a sequence of types each describing a different\n" "overloaded signal.\n" "name is the optional C++ name of the signal. If it is not specified then\n" "the name of the class attribute that is bound to the signal is used."); // The pyqtSignal type object. PyTypeObject qpycore_pyqtSignal_Type = { PyVarObject_HEAD_INIT(NULL, 0) SIP_TPNAME_CAST("PyQt4.QtCore.pyqtSignal"), /* tp_name */ sizeof (qpycore_pyqtSignal), /* tp_basicsize */ 0, /* tp_itemsize */ pyqtSignal_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ 0, /* tp_compare */ pyqtSignal_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ &pyqtSignal_as_mapping, /* tp_as_mapping */ 0, /* tp_hash */ pyqtSignal_call, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ pyqtSignal_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ pyqtSignal_getsets, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ pyqtSignal_descr_get, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ pyqtSignal_init, /* tp_init */ 0, /* tp_alloc */ PyType_GenericNew, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ 0, /* tp_del */ #if PY_VERSION_HEX >= 0x02060000 0, /* tp_version_tag */ #endif #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif }; // The __doc__ getter. static PyObject *pyqtSignal_get_doc(PyObject *self, void *) { qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)self; // Make sure we have the default signal. ps = ps->default_signal; QByteArray doc; // Get any docstrings from any non-signal overloads. if (ps->non_signals && ps->non_signals->ml_doc) { doc.append('\n'); doc.append(ps->non_signals->ml_doc); } // Get any docstrings from the signals. do { const char *docstring = ps->docstring; if (docstring) { if (*docstring == '\1') ++docstring; doc.append('\n'); doc.append(docstring); doc.append(" [signal]"); } ps = ps->next; } while (ps); if (doc.isEmpty()) { Py_INCREF(Py_None); return Py_None; } return #if PY_MAJOR_VERSION >= 3 PyUnicode_FromString #else PyString_FromString #endif (doc.constData() + 1); } // The type repr slot. static PyObject *pyqtSignal_repr(PyObject *self) { qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)self; return #if PY_MAJOR_VERSION >= 3 PyUnicode_FromFormat #else PyString_FromFormat #endif ("", ps->signature->name().constData() + 1); } // The type call slot. static PyObject *pyqtSignal_call(PyObject *self, PyObject *args, PyObject *kw) { return qpycore_call_signal_overload((qpycore_pyqtSignal *)self, 0, args, kw); } // The type dealloc slot. static void pyqtSignal_dealloc(PyObject *self) { qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)self; delete ps->signature; // If we are the default then we own the overloads references. if (ps == ps->default_signal) { qpycore_pyqtSignal *next = ps->next; while (next) { ps = next; next = ps->next; Py_DECREF((PyObject *)ps); } } Py_TYPE(self)->tp_free(self); } // The type descriptor get slot. static PyObject *pyqtSignal_descr_get(PyObject *self, PyObject *obj, PyObject *) { qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)self; // Return the unbound signal if there is nothing to bind it to. if (obj == NULL || obj == Py_None) { Py_INCREF(self); return self; } // Get the QObject. int is_err = 0; void *qobject = sipForceConvertToType(obj, sipType_QObject, 0, SIP_NO_CONVERTORS, 0, &is_err); if (is_err) return 0; // Return the bound signal. return qpycore_pyqtBoundSignal_New(ps, obj, reinterpret_cast(qobject)); } // The type init slot. static int pyqtSignal_init(PyObject *self, PyObject *args, PyObject *kwd_args) { qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)self; // Get the keyword arguments. PyObject *name_obj = 0; const char *name = 0; if (kwd_args) { SIP_SSIZE_T pos = 0; PyObject *key, *value; while (PyDict_Next(kwd_args, &pos, &key, &value)) { #if PY_MAJOR_VERSION >= 3 if (PyUnicode_CompareWithASCIIString(key, "name") != 0) { PyErr_Format(PyExc_TypeError, "pyqtSignal() got an unexpected keyword argument '%U'", key); Py_XDECREF(name_obj); return -1; } #else Q_ASSERT(PyString_Check(key)); if (qstrcmp(PyString_AS_STRING(key), "name") != 0) { PyErr_Format(PyExc_TypeError, "pyqtSignal() got an unexpected keyword argument '%s'", PyString_AS_STRING(key)); Py_XDECREF(name_obj); return -1; } #endif name_obj = value; name = sipString_AsASCIIString(&name_obj); if (!name) return -1; } } // If there is at least one argument and it is a sequence then assume all // arguments are sequences. Unfortunately a string is also a sequence so // check for tuples and lists explicitly. if (PyTuple_GET_SIZE(args) > 0 && (PyTuple_Check(PyTuple_GET_ITEM(args, 0)) || PyList_Check(PyTuple_GET_ITEM(args, 0)))) { for (SIP_SSIZE_T i = 0; i < PyTuple_GET_SIZE(args); ++i) { PyObject *types = PySequence_Tuple(PyTuple_GET_ITEM(args, i)); if (!types) { PyErr_SetString(PyExc_TypeError, "pyqtSignal() argument expected to be sequence of types"); if (name) { Py_DECREF(name_obj); } return -1; } int rc; if (i == 0) { // The first is the default. rc = init_signal_from_types(ps, name, types); } else { qpycore_pyqtSignal *overload = (qpycore_pyqtSignal *)PyType_GenericNew(&qpycore_pyqtSignal_Type, 0, 0); if (!overload) { rc = -1; } else if ((rc = init_signal_from_types(overload, name, types)) < 0) { Py_DECREF((PyObject *)overload); } else { overload->default_signal = ps; append_overload(overload); } } Py_DECREF(types); if (rc < 0) { if (name) { Py_DECREF(name_obj); } return -1; } } } else if (init_signal_from_types(ps, name, args) < 0) { if (name) { Py_DECREF(name_obj); } return -1; } if (name) { Py_DECREF(name_obj); } return 0; } // The mapping subscript slot. static PyObject *pyqtSignal_mp_subscript(PyObject *self, PyObject *subscript) { qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)self; PyObject *sig = (PyObject *)qpycore_find_signal(ps, subscript, "an unbound signal type argument"); Py_XINCREF(sig); return sig; } // Create a new signal instance. qpycore_pyqtSignal *qpycore_pyqtSignal_New(const char *signature_str, bool *fatal) { // Assume any error is fatal. if (fatal) *fatal = true; QByteArray norm = QMetaObject::normalizedSignature(signature_str); Chimera::Signature *signature = Chimera::parse(norm, "a signal argument"); // At first glance the parse should never fail because the signature // originates from the .sip file. However it might if it includes a type // that has been forward declared, but not yet defined. The only example // in PyQt is the declaration of QWidget by QSignalMapper. Therefore we // assume the error isn't fatal. if (!signature) { if (fatal) *fatal = false; return 0; } signature->signature.prepend('2'); qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)PyType_GenericNew( &qpycore_pyqtSignal_Type, 0, 0); if (!ps) { delete signature; return 0; } ps->default_signal = ps; ps->next = 0; ps->docstring = 0; ps->signature = signature; ps->non_signals = 0; ps->hack = 0; return ps; } // Find an overload that matches a subscript. qpycore_pyqtSignal *qpycore_find_signal(qpycore_pyqtSignal *ps, PyObject *subscript, const char *context) { // Make sure the subscript is a tuple. PyObject *args; if (PyTuple_Check(subscript)) { args = subscript; } else { args = PyTuple_New(1); if (!args) return 0; PyTuple_SET_ITEM(args, 0, subscript); } Py_INCREF(subscript); // Parse the subscript as a tuple of types. Chimera::Signature *ss_signature = Chimera::parse(args, 0, context); Py_DECREF(args); if (!ss_signature) return 0; // Search for an overload with this signature. qpycore_pyqtSignal *overload = ps->default_signal; do { if (overload->signature->arguments() == ss_signature->signature) break; overload = overload->next; } while (overload); delete ss_signature; if (!overload) PyErr_SetString(PyExc_KeyError, "there is no matching overloaded signal"); return overload; } // Initialise a signal when given a tuple of types. static int init_signal_from_types(qpycore_pyqtSignal *ps, const char *name, PyObject *types) { Chimera::Signature *signature = Chimera::parse(types, name, "a pyqtSignal() type argument"); if (!signature) return -1; if (name) signature->signature.prepend('2'); ps->default_signal = ps; ps->next = 0; ps->docstring = 0; ps->signature = signature; ps->non_signals = 0; ps->hack = 0; return 0; } // Append an overload to the default signal's list. static void append_overload(qpycore_pyqtSignal *ps) { // Append to the list of overloads. qpycore_pyqtSignal **tailp = &ps->default_signal->next; while (*tailp) tailp = &(*tailp)->next; *tailp = ps; } // Give a signal a name if it hasn't already got one. void qpycore_set_signal_name(qpycore_pyqtSignal *ps, const char *type_name, const char *name) { ps = ps->default_signal; // If the signature already has a name then they all have and there is // nothing more to do. if (!ps->signature->signature.startsWith('(')) return; do { QByteArray &sig = ps->signature->signature; sig.prepend(name); sig.prepend('2'); QByteArray &py_sig = ps->signature->py_signature; py_sig.prepend(name); py_sig.prepend('.'); py_sig.prepend(type_name); ps = ps->next; } while (ps); } // Handle the getting of a lazy attribute, ie. a native Qt signal. int qpycore_get_lazy_attr(const sipTypeDef *td, PyObject *dict) { pyqt4ClassTypeDef *ctd = (pyqt4ClassTypeDef *)td; const pyqt4QtSignal *sigs = ctd->qt_signals; // Handle the trvial case. if (!sigs) return 0; QByteArray default_name; qpycore_pyqtSignal *default_signal = 0; do { // See if we have come to the end of the current signal. if (default_signal && !is_signal_name(sigs->signature, default_name.constData(), default_name.size())) { if (PyDict_SetItemString(dict, default_name.constData(), (PyObject *)default_signal) < 0) return -1; default_signal = 0; } bool fatal; qpycore_pyqtSignal *sig = qpycore_pyqtSignal_New(sigs->signature, &fatal); if (!sig) { if (fatal) return -1; PyErr_Clear(); continue; } sig->docstring = sigs->docstring; sig->hack = sigs->hack; // See if this is a new default. if (default_signal) { sig->default_signal = default_signal; append_overload(sig); } else { sig->non_signals = sigs->non_signals; default_signal = sig->default_signal = sig; // Get the name. default_name = sig->signature->name().mid(1); } } while ((++sigs)->signature); // Save the last one, if any (in case of a non-fatal error). if (!default_signal) return 0; return PyDict_SetItemString(dict, default_name.constData(), (PyObject *)default_signal); } // Return true if the signal has the given name. static bool is_signal_name(const char *sig, const char *name, uint name_len) { return (qstrncmp(sig, name, name_len) == 0 && sig[name_len] == '('); } // Call a signal's overloaded method (if there is one). PyObject *qpycore_call_signal_overload(qpycore_pyqtSignal *ps, PyObject *bound, PyObject *args, PyObject *kw) { if (!ps->non_signals) { PyErr_SetString(PyExc_TypeError, "native Qt signal is not callable"); return 0; } PyObject *func = PyCFunction_New(ps->non_signals, bound); if (!func) return 0; PyObject *result = PyCFunction_Call(func, args, kw); Py_DECREF(func); return result; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtsignal.h0000644000076500000240000000433712536324426022076 0ustar philstaff00000000000000// This defines the interfaces for the pyqtSignal type. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_PYQTSIGNAL_H #define _QPYCORE_PYQTSIGNAL_H #include #include "qpycore_chimera.h" extern "C" { // This defines the structure of a PyQt signal. typedef struct _qpycore_pyqtSignal { PyObject_HEAD // The default signal. This is the head of the linked list of overloads // and holds references to rest of the list elements. struct _qpycore_pyqtSignal *default_signal; // The next overload in the list. struct _qpycore_pyqtSignal *next; // The docstring. const char *docstring; // The parsed signature. Chimera::Signature *signature; // The non-signal overloads (if any). This is only set for the default. PyMethodDef *non_signals; // The signal hack to apply when built against Qt5. int hack; } qpycore_pyqtSignal; extern PyTypeObject qpycore_pyqtSignal_Type; int qpycore_get_lazy_attr(const sipTypeDef *td, PyObject *dict); } qpycore_pyqtSignal *qpycore_pyqtSignal_New(const char *signature_str, bool *fatal = 0); qpycore_pyqtSignal *qpycore_find_signal(qpycore_pyqtSignal *ps, PyObject *subscript, const char *context); void qpycore_set_signal_name(qpycore_pyqtSignal *ps, const char *type_name, const char *name); PyObject *qpycore_call_signal_overload(qpycore_pyqtSignal *ps, PyObject *bound, PyObject *args, PyObject *kw); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_pyqtslot.cpp0000644000076500000240000001535612536324426022140 0ustar philstaff00000000000000// This is the implementation of the pySlot (and deprecated pyqtSignature) // decorator. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_misc.h" #include "qpycore_sip.h" // Forward declarations. static PyObject *decorate(Chimera::Signature *parsed_sig, PyObject *res_obj, const char *context); extern "C" {static PyObject *decorator(PyObject *self, PyObject *f);} // Get the bound QObject and slot signature from a callable (which should be a // decorated method). QByteArray qpycore_pyqtslot_get_parts(PyObject *callable, QObject **qrx) { PyObject *qobj_obj, *decorations; int is_err = 0; void *qobj; Chimera::Signature *sig; QByteArray slot; // Get the QObject. qobj_obj = PyMethod_Self(callable); if (!qobj_obj) goto bad_callable; qobj = sipForceConvertToType(qobj_obj, sipType_QObject, 0, SIP_NO_CONVERTORS, 0, &is_err); if (is_err) goto bad_callable; *qrx = reinterpret_cast(qobj); // Get the decoration. decorations = PyObject_GetAttr(callable, qpycore_signature_attr_name); if (!decorations) goto bad_callable; // Use the first one ignoring any others. sig = Chimera::Signature::fromPyObject(PyList_GET_ITEM(decorations, 0)); Py_DECREF(decorations); slot = sig->signature; slot.prepend('1'); return slot; bad_callable: PyErr_SetString(PyExc_TypeError, "callable must be a method of a QtCore.QObject instance decorated " "by QtCore.pyqtSlot"); return QByteArray(); } // This implements the pyqtSlot decorator. PyObject *qpycore_pyqtslot(PyObject *args, PyObject *kwds) { const char *name_str = 0; PyObject *res_obj = 0; static const char *kwlist[] = {"name", "result", 0}; static PyObject *no_args = 0; if (!no_args) { no_args = PyTuple_New(0); if (!no_args) return 0; } if (!PyArg_ParseTupleAndKeywords(no_args, kwds, #if PY_VERSION_HEX >= 0x02050000 "|sO:pyqtSlot", #else const_cast("|sO:pyqtSlot"), #endif const_cast(kwlist), &name_str, &res_obj)) return 0; Chimera::Signature *parsed_sig = Chimera::parse(args, name_str, "a pyqtSlot type argument"); if (!parsed_sig) return 0; return decorate(parsed_sig, res_obj, "a pyqtSlot result"); } // This implements the pyqtSignature decorator. PyObject *qpycore_pyqtsignature(PyObject *args, PyObject *kwds) { const char *sig_str; PyObject *res_obj = 0; static const char *kwlist[] = {"signature", "result", 0}; if (!PyArg_ParseTupleAndKeywords(args, kwds, #if PY_VERSION_HEX >= 0x02050000 "s|O:pyqtSignature", #else const_cast("s|O:pyqtSignature"), #endif const_cast(kwlist), &sig_str, &res_obj)) return 0; // Parse the signature. QByteArray sig(sig_str); // Make sure the signature has parentheses before normalising it. if (!sig.contains('(')) { sig.prepend('('); sig.append(')'); } sig = QMetaObject::normalizedSignature(sig); Chimera::Signature *parsed_sig = Chimera::parse(sig, "a pyqtSlot signature argument"); if (!parsed_sig) return 0; return decorate(parsed_sig, res_obj, "a pyqtSignature result"); } // Decorate the method now the arguments have been parsed. static PyObject *decorate(Chimera::Signature *parsed_sig, PyObject *res_obj, const char *context) { // Parse any result type. if (res_obj) { parsed_sig->result = Chimera::parse(res_obj); if (!parsed_sig->result) { Chimera::raiseParseException(res_obj, context); delete parsed_sig; return 0; } } // Wrap the parsed signature in a Python object. PyObject *sig_obj = Chimera::Signature::toPyObject(parsed_sig); if (!sig_obj) return 0; // Create the decorator function itself. We stash the arguments in "self". // This may be an abuse, but it seems to be Ok. static PyMethodDef deco_method = { SIP_MLNAME_CAST("_deco"), decorator, METH_O, 0 }; PyObject *obj = PyCFunction_New(&deco_method, sig_obj); Py_DECREF(sig_obj); return obj; } // This is the decorator function that saves the C++ signature as a function // attribute. static PyObject *decorator(PyObject *self, PyObject *f) { Chimera::Signature *parsed_sig = Chimera::Signature::fromPyObject(self); const QByteArray &sig = parsed_sig->signature; // Use the function name if there isn't already one. if (sig.startsWith('(')) { // Get the function's name. PyObject *nobj = PyObject_GetAttr(f, qpycore_name_attr_name); if (!nobj) return 0; PyObject *ascii_obj = nobj; const char *ascii = sipString_AsASCIIString(&ascii_obj); Py_DECREF(nobj); if (!ascii) return 0; parsed_sig->signature.prepend(ascii); parsed_sig->py_signature.prepend(ascii); Py_DECREF(ascii_obj); } // See if the function has already been decorated. PyObject *decorations = PyObject_GetAttr(f, qpycore_signature_attr_name); int rc; if (decorations) { // Insert the new decoration at the head of the existing ones so that // the list order matches the order they appear in the script. rc = PyList_Insert(decorations, 0, self); } else { PyErr_Clear(); decorations = PyList_New(1); if (!decorations) return 0; Py_INCREF(self); PyList_SET_ITEM(decorations, 0, self); // Save the new decoration. rc = PyObject_SetAttr(f, qpycore_signature_attr_name, decorations); } Py_DECREF(decorations); if (rc < 0) return 0; // Return the function. Py_INCREF(f); return f; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qabstracteventdispatcher.cpp0000644000076500000240000000711312536324426025326 0ustar philstaff00000000000000// This implements the helpers for QAbstractEventDispatcher. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include "qpycore_sip.h" #if QT_VERSION < 0x050000 // A reference to the current Python event filter. static PyObject *py_event_filter = 0; // The dispatcher that the event filter is installed for. Note that we only // support one dispatcher (because, as usual, the C++ API for callbacks is // badly designed) and this allows us to raise an exception if the user tries // to set a filter for more than one (i.e. one from another thread). static QAbstractEventDispatcher *dispatcher = 0; // Forward declarations. static bool event_filter(void *message); // The helper for QAbstractEventDispatcher::setEventFilter(). PyObject *qpycore_qabstracteventdispatcher_seteventfilter( QAbstractEventDispatcher *dist, PyObject *filter) { // Check that this isn't a different dispatcher. if (dispatcher && dispatcher != dist) { PyErr_SetString(PyExc_ValueError, "PyQt only supports setting an event filter on a single " "QAbstractEventDispatcher"); return 0; } // Make sure any previous filter has a corresponding Python object. PyObject *old_filter = py_event_filter; if (!old_filter) { old_filter = Py_None; Py_INCREF(old_filter); } if (filter == Py_None) { // Remove any existing filter. dist->setEventFilter(0); py_event_filter = 0; dispatcher = 0; } else { // Install the new filter. Py_INCREF(filter); py_event_filter = filter; dispatcher = dist; dist->setEventFilter(event_filter); } return old_filter; } // The event filter. static bool event_filter(void *message) { bool res = false, raised = true; SIP_BLOCK_THREADS #if defined(Q_WS_WIN) PyObject *msg_obj = sipConvertFromType(reinterpret_cast(message), sipType_MSG, 0); #else PyObject *msg_obj = sipConvertFromVoidPtr(message); #endif if (msg_obj) { PyObject *res_obj = PyObject_CallFunctionObjArgs(py_event_filter, msg_obj, 0); Py_DECREF(msg_obj); if (res_obj) { if (PyBool_Check(res_obj)) { if (res_obj == Py_True) res = true; raised = false; } else { PyErr_Format(PyExc_TypeError, "QAbstractEventDispatcher event filter returned a " "'%s' instead of a 'bool'", Py_TYPE(res_obj)->tp_name); } Py_DECREF(res_obj); } } if (raised) PyErr_Print(); SIP_UNBLOCK_THREADS return res; } #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qmetaobject.cpp0000644000076500000240000001327212536324426022532 0ustar philstaff00000000000000// This is the support code for QMetaObject. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include "qpycore_chimera.h" #include "qpycore_misc.h" #include "qpycore_sip.h" // Forward declarations. static PyObject *ArgumentStorage_New(PyObject *type, PyObject *data); #if defined(SIP_USE_PYCAPSULE) extern "C" {static void ArgumentStorage_delete(PyObject *cap);} #else extern "C" {static void ArgumentStorage_delete(void *stv);} #endif // Register a number of named types and integer types for Q_FLAGS and Q_ENUMS. // Note that this support is half-baked but provided for backwards // compatibility until something better is done. PyObject *qpycore_register_int_types(PyObject *type_names) { for (SIP_SSIZE_T i = 0; i < PyTuple_GET_SIZE(type_names); ++i) { PyObject *name = PyTuple_GET_ITEM(type_names, i); const char *ascii = sipString_AsASCIIString(&name); if (!ascii) return 0; Chimera::registerIntType(ascii); Py_DECREF(name); } Py_INCREF(Py_None); return Py_None; } // Return a wrapped QGenericArgument for the given type and Python object. PyObject *qpycore_ArgumentFactory(PyObject *type, PyObject *data) { PyObject *as_obj = ArgumentStorage_New(type, data); if (!as_obj) { Chimera::raiseParseException(type, "a Q_ARG()"); return 0; } #if defined(SIP_USE_PYCAPSULE) Chimera::Storage *st = reinterpret_cast( PyCapsule_GetPointer(as_obj, NULL)); #else Chimera::Storage *st = reinterpret_cast( PyCObject_AsVoidPtr(as_obj)); #endif QGenericArgument *arg = new QGenericArgument( st->type()->name().constData(), st->address()); PyObject *ga_obj = sipConvertFromNewType(arg, sipType_QGenericArgument, 0); if (ga_obj) { // Stash the storage in the user field so that everything will be // properly garbage collected. ((sipSimpleWrapper *)ga_obj)->user = as_obj; } else { delete arg; Py_DECREF(as_obj); } return ga_obj; } // Return a wrapped QGenericReturnArgument for the given type. PyObject *qpycore_ReturnFactory(PyObject *type) { PyObject *as_obj = ArgumentStorage_New(type, 0); if (!as_obj) { Chimera::raiseParseException(type, "a Q_RETURN_ARG()"); return 0; } #if defined(SIP_USE_PYCAPSULE) Chimera::Storage *st = reinterpret_cast( PyCapsule_GetPointer(as_obj, NULL)); #else Chimera::Storage *st = reinterpret_cast( PyCObject_AsVoidPtr(as_obj)); #endif QGenericReturnArgument *arg = new QGenericReturnArgument( st->type()->name().constData(), st->address()); PyObject *gra_obj = sipConvertFromNewType(arg, sipType_QGenericReturnArgument, 0); if (gra_obj) { // Stash the storage in the user field so that everything will be // properly garbage collected. ((sipSimpleWrapper *)gra_obj)->user = as_obj; } else { delete arg; Py_DECREF(as_obj); } return gra_obj; } // Return the Python result from a QGenericReturnArgument. PyObject *qpycore_ReturnValue(PyObject *gra_obj) { PyObject *as_obj = ((sipSimpleWrapper *)gra_obj)->user; #if defined(SIP_USE_PYCAPSULE) Chimera::Storage *st = reinterpret_cast( PyCapsule_GetPointer(as_obj, NULL)); #else Chimera::Storage *st = reinterpret_cast( PyCObject_AsVoidPtr(as_obj)); #endif return st->toPyObject(); } #if defined(SIP_USE_PYCAPSULE) // The PyCapsule destructor for the ArgumentStorage type. static void ArgumentStorage_delete(PyObject *cap) { Chimera::Storage *st = reinterpret_cast( PyCapsule_GetPointer(cap, NULL)); const Chimera *ct = st->type(); delete st; delete ct; } #else // The PyCObject destructor for the ArgumentStorage type. static void ArgumentStorage_delete(void *stv) { Chimera::Storage *st = reinterpret_cast(stv); const Chimera *ct = st->type(); delete st; delete ct; } #endif // Returns a Python object wrapping an ArgumentStorage instance. static PyObject *ArgumentStorage_New(PyObject *type, PyObject *data) { const Chimera *ct = Chimera::parse(type); if (!ct) return 0; Chimera::Storage *st; if (data) st = ct->fromPyObjectToStorage(data); else st = ct->storageFactory(); if (!st) { delete ct; return 0; } // Convert to a Python object. #if defined(SIP_USE_PYCAPSULE) PyObject *as_obj = PyCapsule_New(st, NULL, ArgumentStorage_delete); #else PyObject *as_obj = PyCObject_FromVoidPtr(st, ArgumentStorage_delete); #endif if (!as_obj) { delete st; delete ct; } return as_obj; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qmetaobject_helpers.cpp0000644000076500000240000001131712536324426024252 0ustar philstaff00000000000000// This implements the helpers for QMetaObject. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_misc.h" #include "qpycore_sip.h" // Forward declarations. static void connect(QObject *qobj, PyObject *slot_obj, const QByteArray &slot_nm, const QByteArray &args); void qpycore_qmetaobject_connectslotsbyname(QObject *qobj, PyObject *qobj_wrapper) { // Get the class attributes. PyObject *dir = PyObject_Dir((PyObject *)Py_TYPE(qobj_wrapper)); if (!dir) return; PyObject *slot_obj = 0; for (SIP_SSIZE_T li = 0; li < PyList_GET_SIZE(dir); ++li) { PyObject *name_obj = PyList_GET_ITEM(dir, li); // Get the slot object. Py_XDECREF(slot_obj); slot_obj = PyObject_GetAttr(qobj_wrapper, name_obj); if (!slot_obj) continue; // Ignore it if it is not a callable. if (!PyCallable_Check(slot_obj)) continue; // Use the signature attribute instead of the name if there is one. PyObject *sigattr = PyObject_GetAttr(slot_obj, qpycore_signature_attr_name); if (sigattr) { for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sigattr); ++i) { PyObject *decoration = PyList_GET_ITEM(sigattr, i); Chimera::Signature *sig = Chimera::Signature::fromPyObject(decoration); QByteArray args = sig->arguments(); if (!args.isEmpty()) connect(qobj, slot_obj, sig->name(), args); } Py_DECREF(sigattr); } else { const char *ascii_name = sipString_AsASCIIString(&name_obj); if (!ascii_name) continue; PyErr_Clear(); connect(qobj, slot_obj, QByteArray(ascii_name), QByteArray()); Py_DECREF(name_obj); } } Py_XDECREF(slot_obj); Py_DECREF(dir); } // Connect up a particular slot name, with optional arguments. static void connect(QObject *qobj, PyObject *slot_obj, const QByteArray &slot_nm, const QByteArray &args) { // Ignore if it's not an autoconnect slot. if (!slot_nm.startsWith("on_")) return; // Extract the names of the emitting object and the signal. int i; i = slot_nm.lastIndexOf('_'); if (i - 3 < 1 || i + 1 >= slot_nm.size()) return; QByteArray ename = slot_nm.mid(3, i - 3); QByteArray sname = slot_nm.mid(i + 1); // Find the emitting object and get its meta-object. #if defined(QT_NO_MEMBER_TEMPLATES) QObject *eobj = qFindChild(qobj, ename); #else QObject *eobj = qobj->findChild(ename); #endif if (!eobj) return; const QMetaObject *mo = eobj->metaObject(); // Got through the methods looking for a matching signal. PyObject *epyobj = 0; for (int m = 0; m < mo->methodCount(); ++m) { QMetaMethod mm = mo->method(m); if (mm.methodType() != QMetaMethod::Signal) continue; #if QT_VERSION >= 0x050000 QByteArray sig(mm.methodSignature()); #else QByteArray sig(mm.signature()); #endif if (Chimera::Signature::name(sig) != sname) continue; // If we have slot arguments then they must match as well. if (!args.isEmpty() && Chimera::Signature::arguments(sig) != args) continue; // Add the type character. sig.prepend('2'); // Get the wrapper now we know it is needed. if (!epyobj) { epyobj = sipConvertFromType(eobj, sipType_QObject, 0); if (!epyobj) break; } // Connect the signal. PyObject *res = sipConnectRx(epyobj, sig.constData(), slot_obj, 0, 0); Py_XDECREF(res); } Py_XDECREF(epyobj); } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qmetaobjectbuilder.h0000644000076500000240000000563712536324426023554 0ustar philstaff00000000000000// This defines the subset of the interface to Qt5's internal // QMetaObjectBuilder class. The internal representation of a QMetaObject // changed in Qt5 (specifically revision 7) sufficiently to justify using this // internal code. The alternative would be to reverse engineer other internal // data structures which would be even more fragile. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_QMETAOBJECTBUILDER_H #define _QPYCORE_QMETAOBJECTBUILDER_H #include #if QT_VERSION >= 0x050000 #include #include QT_BEGIN_NAMESPACE class QMetaMethodBuilder; class QMetaPropertyBuilder; class Q_CORE_EXPORT QMetaObjectBuilder { public: QMetaObjectBuilder(); virtual ~QMetaObjectBuilder(); void setClassName(const QByteArray &name); void setSuperClass(const QMetaObject *meta); QMetaMethodBuilder addSlot(const QByteArray &signature); QMetaMethodBuilder addSignal(const QByteArray &signature); QMetaPropertyBuilder addProperty(const QByteArray &name, const QByteArray &type, int notifierId=-1); int addClassInfo(const QByteArray &name, const QByteArray &value); int addRelatedMetaObject(const QMetaObject *meta); int indexOfSignal(const QByteArray &signature); QMetaObject *toMetaObject() const; private: Q_DISABLE_COPY(QMetaObjectBuilder) void *d; }; class Q_CORE_EXPORT QMetaMethodBuilder { public: QMetaMethodBuilder() : _mobj(0), _index(0) {} void setReturnType(const QByteArray &type); private: const QMetaObjectBuilder *_mobj; int _index; }; class Q_CORE_EXPORT QMetaPropertyBuilder { public: QMetaPropertyBuilder() : _mobj(0), _index(0) {} void setReadable(bool value); void setWritable(bool value); void setResettable(bool value); void setDesignable(bool value); void setScriptable(bool value); void setStored(bool value); void setUser(bool value); void setStdCppSet(bool value); void setEnumOrFlag(bool value); void setConstant(bool value); void setFinal(bool value); private: const QMetaObjectBuilder *_mobj; int _index; }; QT_END_NAMESPACE #endif #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qobject_getattr.cpp0000644000076500000240000001006212536324426023407 0ustar philstaff00000000000000// This implements the helper for QObject.__getattr__(). // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include "qpycore_pyqtboundsignal.h" #include "qpycore_pyqtmethodproxy.h" #include "qpycore_pyqtsignal.h" // See if we can find an attribute in the Qt meta-type system. This is // primarily to support access to JavaScript (e.g. QDeclarativeItem) so we // don't support overloads. PyObject *qpycore_qobject_getattr(QObject *qobj, PyObject *py_qobj, const char *name) { const QMetaObject *mo = qobj->metaObject(); // Try and find a method with the name. QMetaMethod method; int method_index = -1; // Count down to allow overrides (assuming they are possible). for (int m = mo->methodCount() - 1; m >= 0; --m) { method = mo->method(m); #if QT_VERSION >= 0x040500 if (method.methodType() == QMetaMethod::Constructor) continue; #endif // Get the method name. #if QT_VERSION >= 0x050000 QByteArray mname(method.methodSignature()); #else QByteArray mname(method.signature()); #endif int idx = mname.indexOf('('); if (idx >= 0) mname.truncate(idx); if (mname == name) { method_index = m; break; } } if (method_index < 0) { // Replicate the standard Python exception. PyErr_Format(PyExc_AttributeError, "'%s' object has no attribute '%s'", Py_TYPE(py_qobj)->tp_name, name); return 0; } // Get the value to return. Note that this is recreated each time. We // could put a descriptor in the type dictionary to satisfy the request in // future but the typical use case is getting a value from a C++ proxy // (e.g. QDeclarativeItem) and we can't assume that what is being proxied // is the same each time. PyObject *value; if (method.methodType() == QMetaMethod::Signal) { // We need to keep explicit references to the unbound signals (because // we don't use the type dictionary to do so) because they own the // parsed signature which may be needed by a PyQtProxy at some point. typedef QHash SignalHash; static SignalHash *sig_hash = 0; // For crappy compilers. if (!sig_hash) sig_hash = new SignalHash; PyObject *sig_obj; #if QT_VERSION >= 0x050000 QByteArray sig_str(method.methodSignature()); #else QByteArray sig_str(method.signature()); #endif SignalHash::const_iterator it = sig_hash->find(sig_str); if (it == sig_hash->end()) { sig_obj = (PyObject *)qpycore_pyqtSignal_New(sig_str.constData()); if (!sig_obj) return 0; sig_hash->insert(sig_str, sig_obj); } else { sig_obj = it.value(); } value = qpycore_pyqtBoundSignal_New((qpycore_pyqtSignal *)sig_obj, py_qobj, qobj); } else { QByteArray py_name(Py_TYPE(py_qobj)->tp_name); py_name.append('.'); py_name.append(name); value = qpycore_pyqtMethodProxy_New(qobj, method_index, py_name); } return value; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qobject_helpers.cpp0000644000076500000240000002673212536324426023412 0ustar philstaff00000000000000// This implements the helpers for QObject. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_pyqtboundsignal.h" #include "qpycore_pyqtproxy.h" #include "qpycore_pyqtproperty.h" #include "qpycore_pyqtpyobject.h" #include "qpycore_qobject_helpers.h" #include "qpycore_sip.h" #include "qpycore_sip_helpers.h" #include "qpycore_types.h" // Forward declarations. static int qt_metacall_worker(sipSimpleWrapper *pySelf, PyTypeObject *pytype, sipTypeDef *base, QMetaObject::Call _c, int _id, void **_a); // This is the helper for all implementations of QObject::metaObject(). const QMetaObject *qpycore_qobject_metaobject(sipSimpleWrapper *pySelf, sipTypeDef *base) { // Return the dynamic meta-object if there is one. if (pySelf && ((pyqtWrapperType *)Py_TYPE(pySelf))->metaobject) return QPYCORE_QMETAOBJECT(((pyqtWrapperType *)Py_TYPE(pySelf))->metaobject); // Fall back to the static Qt meta-object. return reinterpret_cast(((pyqt4ClassTypeDef *)base)->static_metaobject); } // This is the helper for all implementations of QObject::qt_metacall(). int qpycore_qobject_qt_metacall(sipSimpleWrapper *pySelf, sipTypeDef *base, QMetaObject::Call _c, int _id, void **_a) { // Check if the Python object has gone. if (!pySelf) return -1; SIP_BLOCK_THREADS _id = qt_metacall_worker(pySelf, Py_TYPE(pySelf), base, _c, _id, _a); SIP_UNBLOCK_THREADS return _id; } // This does the real work for all implementations of QObject::qt_metacall(). static int qt_metacall_worker(sipSimpleWrapper *pySelf, PyTypeObject *pytype, sipTypeDef *base, QMetaObject::Call _c, int _id, void **_a) { // See if this is a wrapped C++ type rather than a Python sub-type. if (pytype == sipTypeAsPyTypeObject(base)) return _id; _id = qt_metacall_worker(pySelf, pytype->tp_base, base, _c, _id, _a); if (_id < 0) return _id; pyqtWrapperType *pyqt_wt = (pyqtWrapperType *)pytype; qpycore_metaobject *qo = pyqt_wt->metaobject; bool ok = true; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < qo->nr_signals + qo->pslots.count()) { if (_id < qo->nr_signals) { QObject *qthis = reinterpret_cast(sipGetCppPtr(pySelf, sipType_QObject)); Py_BEGIN_ALLOW_THREADS QMetaObject::activate(qthis, QPYCORE_QMETAOBJECT(qo), _id, _a); Py_END_ALLOW_THREADS } else { // We take a copy just to be safe. qpycore_slot slot = qo->pslots.at(_id - qo->nr_signals); // Set up the instance specific parts. slot.sip_slot.meth.mself = (PyObject *)pySelf; PyObject *py = PyQtProxy::invokeSlot(slot, _a); if (!py) ok = false; else { if (_a[0] && slot.signature->result) { ok = slot.signature->result->fromPyObject(py, _a[0]); } Py_DECREF(py); } } } _id -= qo->nr_signals + qo->pslots.count(); } else if (_c == QMetaObject::ReadProperty) { if (_id < qo->pprops.count()) { qpycore_pyqtProperty *prop = qo->pprops.at(_id); if (prop->pyqtprop_get) { PyObject *py = PyObject_CallFunction(prop->pyqtprop_get, const_cast("O"), pySelf); if (py) { // Get the underlying QVariant. As of Qt v4.7.0, // QtDeclarative doesn't pass a QVariant and this value is // 0. QVariant *var = reinterpret_cast(_a[1]); if (var) { ok = prop->pyqtprop_parsed_type->fromPyObject(py, var); // Make sure that _a[0] still points to the QVariant // data (whose address we may have just changed) so // that QMetaProperty::read() doesn't try to create a // new QVariant. if (ok) _a[0] = var->data(); } else { ok = prop->pyqtprop_parsed_type->fromPyObject(py, _a[0]); } Py_DECREF(py); } else { ok = false; } } } _id -= qo->pprops.count(); } else if (_c == QMetaObject::WriteProperty) { if (_id < qo->pprops.count()) { qpycore_pyqtProperty *prop = qo->pprops.at(_id); if (prop->pyqtprop_set) { // _a is an array whose length and contents vary according to // the version of Qt. Prior to v4.6 _a[1] was the address of // the QVariant containing the property value and _a[0] was the // address of the actual data in the QVariant. We used to // convert the QVariant at _a[1], rather than the data at // _a[0], which gave us a little bit more type checking. In Qt // v4.6 the QPropertyAnimation class contains an optimised path // that bypasses QMetaProperty and only sets _a[0], so now // that is all we can rely on. PyObject *py = prop->pyqtprop_parsed_type->toPyObject(_a[0]); if (py) { PyObject *res = PyObject_CallFunction(prop->pyqtprop_set, const_cast("OO"), pySelf, py); if (res) Py_DECREF(res); else ok = false; Py_DECREF(py); } else ok = false; } } _id -= qo->pprops.count(); } else if (_c == QMetaObject::ResetProperty) { if (_id < qo->pprops.count()) { qpycore_pyqtProperty *prop = qo->pprops.at(_id); if (prop->pyqtprop_reset) { PyObject *py = PyObject_CallFunction(prop->pyqtprop_reset, const_cast("O"), pySelf); if (py) Py_DECREF(py); else ok = false; } } _id -= qo->pprops.count(); } else if (_c == QMetaObject::QueryPropertyDesignable) _id -= qo->pprops.count(); else if (_c == QMetaObject::QueryPropertyScriptable) _id -= qo->pprops.count(); else if (_c == QMetaObject::QueryPropertyStored) _id -= qo->pprops.count(); else if (_c == QMetaObject::QueryPropertyEditable) _id -= qo->pprops.count(); else if (_c == QMetaObject::QueryPropertyUser) _id -= qo->pprops.count(); // Handle any Python errors. if (!ok) { PyErr_Print(); return -1; } return _id; } // This is the helper for all implementations of QObject::qt_metacast(). int qpycore_qobject_qt_metacast(sipSimpleWrapper *pySelf, sipTypeDef *base, const char *_clname) { if (!_clname) return 0; // Check if the Python object has gone. if (!pySelf) return 0; int is_py_class = 0; SIP_BLOCK_THREADS PyObject *mro = Py_TYPE(pySelf)->tp_mro; for (int i = 0; i < PyTuple_GET_SIZE(mro); ++i) { PyTypeObject *pytype = (PyTypeObject *)PyTuple_GET_ITEM(mro, i); if (pytype == sipTypeAsPyTypeObject(base)) break; if (qstrcmp(pytype->tp_name, _clname) == 0) { is_py_class = 1; break; } } SIP_UNBLOCK_THREADS return is_py_class; } // This is a helper for QObject.staticMetaObject %GetCode. PyObject *qpycore_qobject_staticmetaobject(PyObject *type_obj) { pyqtWrapperType *pyqt_wt = (pyqtWrapperType *)type_obj; const QMetaObject *mo; if (pyqt_wt->metaobject) { // It's a sub-type of a wrapped type. mo = QPYCORE_QMETAOBJECT(pyqt_wt->metaobject); } else { // It's a wrapped type. pyqt4ClassTypeDef *p4ctd = (pyqt4ClassTypeDef *)((sipWrapperType *)pyqt_wt)->type; if (!p4ctd) { /* * This is a side effect of a wrapped class not being fully ready * until sip's meta-class's __init__() has run (rather than after * its __new__() method as might be expected). */ PyErr_SetString(PyExc_AttributeError, "staticMetaObject isn't available until the meta-class's __init__ returns"); return 0; } mo = reinterpret_cast(p4ctd->static_metaobject); } return sipConvertFromType(const_cast(mo), sipType_QMetaObject, 0); } // This is a helper for QObject.sender(). QObject *qpycore_qobject_sender(QObject *obj) { if (obj || !PyQtProxy::last_sender) return obj; // See if it is a short-circuit signal proxy. PyQtShortcircuitSignalProxy *ssp = PyQtShortcircuitSignalProxy::shortcircuitSignal(PyQtProxy::last_sender); if (ssp) return ssp->parent(); // See if it is an ordinary signal proxy. if (qstrcmp(PyQtProxy::last_sender->metaObject()->className(), "PyQtProxy") == 0) return static_cast(PyQtProxy::last_sender)->transmitter; return PyQtProxy::last_sender; } // This is a helper for QObject.receivers() that returns the number of // receivers for an object if it is a signal proxy. It is exported because // QObject::receivers() is protected. int qpycore_qobject_receivers(QObject *obj, const char *signal, int nr) { // Find the object that is really emitting the signal. QObject *qtx = qpycore_find_signal(obj, &signal); if (!qtx) return 0; // If the emitter is the same then it is a Qt signal and the supplied // value is the correct one. if (qtx == obj) return nr; // See if it is a short-circuit signal proxy. PyQtShortcircuitSignalProxy *ssp = PyQtShortcircuitSignalProxy::shortcircuitSignal(qtx); if (ssp) return ssp->getReceivers(signal); if (qstrcmp(qtx->metaObject()->className(), "PyQtProxy") == 0) return static_cast(qtx)->getReceivers(signal); // We should never get here. return 0; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qobject_helpers.h0000644000076500000240000000307312536324426023050 0ustar philstaff00000000000000// This defines the interfaces of the helpers for QObject. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_QOBJECT_HELPERS_H #define _QPYCORE_QOBJECT_HELPERS_H #include #include #include "qpycore_namespace.h" #include "qpycore_sip.h" QT_BEGIN_NAMESPACE class QObject; QT_END_NAMESPACE const QMetaObject *qpycore_qobject_metaobject(sipSimpleWrapper *pySelf, sipTypeDef *base); int qpycore_qobject_qt_metacall(sipSimpleWrapper *pySelf, sipTypeDef *base, QMetaObject::Call _c, int _id, void **_a); int qpycore_qobject_qt_metacast(sipSimpleWrapper *pySelf, sipTypeDef *base, const char *_clname); QObject *qpycore_qobject_sender(QObject *obj); int qpycore_qobject_receivers(QObject *obj, const char *signal, int nr); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qpynullvariant.cpp0000644000076500000240000000746412536324426023333 0ustar philstaff00000000000000// This implements the helpers for QPyNullVariant. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_qpynullvariant.h" #include "qpycore_sip.h" // Create a null QVariant. QVariant *qpycore_qpynullvariant(PyObject *type) { // Parse the type. const Chimera *ct = Chimera::parse(type); if (!ct) return 0; int metatype = ct->metatype(); delete ct; // We can only create null QVariants of the core types. if (metatype >= static_cast(QVariant::UserType)) { PyErr_SetString(PyExc_TypeError, "can only create QPyNullVariant for types corresponding to " "QVariant.Type"); return 0; } return new QVariant(static_cast(metatype)); } // Convert a null QVariant to a Python object as part of the v2 API. PyObject *qpycore_qpynullvariant_FromQVariant(const QVariant &var) { sipTypeDef *td; void *cpp; // If the C++ type of the QVariant has an isNull() method then create a // null instance of that type. Otherwise create a QPyNullVariant. The // exception is QString where we create a QPyNullVariant even though it has // an isNull() method. This is because the QString v2 API converts a null // QString to an empty Python string (because Qt often returns a null // QString when it should really return an empty QString and if we didn't // hide that then it would be a pain for the programmer). switch (var.type()) { case QVariant::Date: td = sipType_QDate; cpp = new QDate; break; case QVariant::Time: td = sipType_QTime; cpp = new QTime; break; case QVariant::DateTime: td = sipType_QDateTime; cpp = new QDateTime; break; case QVariant::ByteArray: td = sipType_QByteArray; cpp = new QByteArray; break; case QVariant::Size: td = sipType_QSize; cpp = new QSize; break; case QVariant::SizeF: td = sipType_QSizeF; cpp = new QSizeF; break; case QVariant::Rect: td = sipType_QRect; cpp = new QRect; break; case QVariant::RectF: td = sipType_QRectF; cpp = new QRectF; break; case QVariant::Line: td = sipType_QLine; cpp = new QLine; break; case QVariant::LineF: td = sipType_QLineF; cpp = new QLineF; break; case QVariant::Point: td = sipType_QPoint; cpp = new QPoint; break; case QVariant::PointF: td = sipType_QPointF; cpp = new QPointF; break; default: td = sipType_QPyNullVariant; cpp = new QVariant(var); } return sipConvertFromNewType(cpp, td, 0); } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qpynullvariant.h0000644000076500000240000000217312536324426022770 0ustar philstaff00000000000000// This defines access to the QPyNullVariant helpers for the rest of the // library. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_QPYNULLVARIANT_H #define _QPYCORE_QPYNULLVARIANT_H #include #include // Forward declarations. PyObject *qpycore_qpynullvariant_FromQVariant(const QVariant &var); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qstring.cpp0000644000076500000240000002073712536324426021727 0ustar philstaff00000000000000// This is the support for QString. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include "qpycore_sip.h" // Work out if we should enable PEP 393 support. This is complicated by the // broken LLVM that XCode v4 installs. #if PY_VERSION_HEX >= 0x03030000 #if defined(Q_OS_MAC) #if !defined(__llvm__) || defined(__clang__) // Python v3.3 on a Mac using either g++ or Clang, but not LLVM. #define PYQT_PEP_393 #endif #else // Python v3.3 on a non-Mac. #define PYQT_PEP_393 #endif #endif // Convert a QString to a Python Unicode object. PyObject *qpycore_PyObject_FromQString(const QString &qstr) { PyObject *obj; #if defined(PYQT_PEP_393) // We have to work out exactly which kind to use. We assume ASCII while we // are checking so that we only go through the string once in the most // common case. Note that we can't use PyUnicode_FromKindAndData() because // it doesn't handle surrogates in UCS2 strings. int qt_len = qstr.length(); if ((obj = PyUnicode_New(qt_len, 0x007f)) == NULL) return NULL; int kind = PyUnicode_KIND(obj); void *data = PyUnicode_DATA(obj); const QChar *qch = qstr.constData(); for (int qt_i = 0; qt_i < qt_len; ++qt_i) { ushort uch = qch->unicode(); if (uch > 0x007f) { // This is useless. Py_DECREF(obj); // Work out what kind we really need and what the Python length // should be. Py_UCS4 maxchar = 0x00ff; int py_len = qt_len; while (qt_i < qt_len) { uch = qch->unicode(); if (uch > 0x00ff) { if (maxchar == 0x00ff) maxchar = 0x00ffff; // See if this is a surrogate pair. Note that we cannot // trust that the QString is terminated by a null QChar. if (qch->isHighSurrogate() && qt_i + 1 < qt_len && (qch + 1)->isLowSurrogate()) { maxchar = 0x10ffff; --py_len; ++qch; ++qt_i; } } ++qch; ++qt_i; } // Create the correctly sized object. if ((obj = PyUnicode_New(py_len, maxchar)) == NULL) return NULL; kind = PyUnicode_KIND(obj); data = PyUnicode_DATA(obj); qch = qstr.constData(); int qt_i2 = 0; for (int py_i = 0; py_i < py_len; ++py_i) { Py_UCS4 py_ch; if (qch->isHighSurrogate() && qt_i2 + 1 < qt_len && (qch + 1)->isLowSurrogate()) { py_ch = QChar::surrogateToUcs4(*qch, *(qch + 1)); ++qt_i2; ++qch; } else { py_ch = qch->unicode(); } ++qt_i2; ++qch; PyUnicode_WRITE(kind, data, py_i, py_ch); } break; } ++qch; PyUnicode_WRITE(kind, data, qt_i, uch); } #elif defined(Py_UNICODE_WIDE) #if QT_VERSION >= 0x040200 QVector ucs4 = qstr.toUcs4(); if ((obj = PyUnicode_FromUnicode(NULL, ucs4.size())) == NULL) return NULL; memcpy(PyUnicode_AS_UNICODE(obj), ucs4.constData(), ucs4.size() * sizeof (Py_UNICODE)); #else // Note that this doesn't handle code points greater than 0xffff. It could // but it's only an issue for old versions of Qt. if ((obj = PyUnicode_FromUnicode(NULL, qstr.length())) == NULL) return NULL; Py_UNICODE *pyu = PyUnicode_AS_UNICODE(obj); for (int i = 0; i < qstr.length(); ++i) *pyu++ = (qstr.at(i)).unicode(); #endif #else if ((obj = PyUnicode_FromUnicode(NULL, qstr.length())) == NULL) return NULL; memcpy(PyUnicode_AS_UNICODE(obj), qstr.utf16(), qstr.length() * sizeof (Py_UNICODE)); #endif return obj; } // Convert a Python Unicode object to a QString. QString qpycore_PyObject_AsQString(PyObject *obj) { #if defined(PYQT_PEP_393) SIP_SSIZE_T len = PyUnicode_GET_LENGTH(obj); switch (PyUnicode_KIND(obj)) { case PyUnicode_1BYTE_KIND: return QString::fromLatin1((char *)PyUnicode_1BYTE_DATA(obj), len); case PyUnicode_2BYTE_KIND: // The (QChar *) cast should be safe. return QString((QChar *)PyUnicode_2BYTE_DATA(obj), len); case PyUnicode_4BYTE_KIND: #if QT_VERSION >= 0x040200 return QString::fromUcs4(PyUnicode_4BYTE_DATA(obj), len); #else // Note that this doesn't handle code points greater than 0xffff. It // could but it's only an issue for old versions of Qt. QString qstr; Py_UCS4 *ucode = PyUnicode_4BYTE_DATA(obj); for (SIP_SSIZE_T i = 0; i < len; ++i) qstr.append((uint)ucode[i]); return qstr; #endif } return QString(); #elif defined(Py_UNICODE_WIDE) #if QT_VERSION >= 0x040200 return QString::fromUcs4((const uint *)PyUnicode_AS_UNICODE(obj), PyUnicode_GET_SIZE(obj)); #else // Note that this doesn't handle code points greater than 0xffff. It could // but it's only an issue for old versions of Qt. QString qstr; Py_UNICODE *ucode = PyUnicode_AS_UNICODE(obj); SIP_SSIZE_T len = PyUnicode_GET_SIZE(obj); for (SIP_SSIZE_T i = 0; i < len; ++i) qstr.append((uint)ucode[i]); return qstr; #endif #else return QString::fromUtf16((const ushort *)PyUnicode_AS_UNICODE(obj), PyUnicode_GET_SIZE(obj)); #endif } #if !defined(QT_DEPRECATED_SINCE) #define QT_DEPRECATED_SINCE(m, n) 1 #endif #if QT_DEPRECATED_SINCE(5, 0) // Convert a Python unicode/string/bytes object to a character string encoded // according to the given encoding. Update the object with a new reference to // the object that owns the data. const char *qpycore_encode(PyObject **s, QCoreApplication::Encoding encoding) { PyObject *obj = *s; const char *es = 0; SIP_SSIZE_T sz; if (PyUnicode_Check(obj)) { if (encoding == QCoreApplication::UnicodeUTF8) { obj = PyUnicode_AsUTF8String(obj); } else { QTextCodec *codec = QTextCodec::codecForTr(); if (codec) { // Use the Qt codec to get to a byte string, and then to a // Python object. QString qs = qpycore_PyObject_AsQString(obj); QByteArray ba = codec->fromUnicode(qs); #if PY_MAJOR_VERSION >= 3 obj = PyBytes_FromStringAndSize(ba.constData(), ba.size()); #else obj = PyString_FromStringAndSize(ba.constData(), ba.size()); #endif } else { obj = PyUnicode_AsLatin1String(obj); } } if (obj) { #if PY_MAJOR_VERSION >= 3 es = PyBytes_AS_STRING(obj); #else es = PyString_AS_STRING(obj); #endif } } #if PY_MAJOR_VERSION >= 3 else if (PyBytes_Check(obj)) { es = PyBytes_AS_STRING(obj); Py_INCREF(obj); } #else else if (PyString_Check(obj)) { es = PyString_AS_STRING(obj); Py_INCREF(obj); } #endif else if (PyObject_AsCharBuffer(obj, &es, &sz) >= 0) { Py_INCREF(obj); } if (es) { *s = obj; } else { PyErr_Format(PyExc_UnicodeEncodeError, "unable to convert '%s' to requested encoding", Py_TYPE(*s)->tp_name); } return es; } #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qstringlist.cpp0000644000076500000240000000551012536324426022613 0ustar philstaff00000000000000// This is the support for QStringList. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include "qpycore_sip.h" // Convert a QStringList to a Python list object. PyObject *qpycore_PyObject_FromQStringList(const QStringList &qstrlst) { PyObject *obj; if ((obj = PyList_New(qstrlst.size())) == NULL) return NULL; for (int i = 0; i < qstrlst.size(); ++i) { QString *qs = new QString(qstrlst.at(i)); PyObject *qs_obj = sipConvertFromNewType(qs, sipType_QString, 0); if (!qs_obj) { Py_DECREF(obj); delete qs; return 0; } PyList_SET_ITEM(obj, i, qs_obj); } return obj; } // Convert a Python sequence object to a QStringList. This should only be // called after a successful call to qpycore_PySequence_Check_QStringList(). QStringList qpycore_PySequence_AsQStringList(PyObject *obj) { QStringList qstrlst; SIP_SSIZE_T len = PySequence_Size(obj); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *itm = PySequence_ITEM(obj, i); int state, iserr = 0; QString *qs = reinterpret_cast(sipConvertToType(itm, sipType_QString, 0, SIP_NOT_NONE, &state, &iserr)); Py_DECREF(itm); if (iserr) { // This should never happen. sipReleaseType(qs, sipType_QString, state); return QStringList(); } qstrlst.append(*qs); sipReleaseType(qs, sipType_QString, state); } return qstrlst; } // See if a Python sequence object can be converted to a QStringList. int qpycore_PySequence_Check_QStringList(PyObject *obj) { SIP_SSIZE_T len; if (!PySequence_Check(obj) || (len = PySequence_Size(obj)) < 0) return 0; for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *itm = PySequence_ITEM(obj, i); bool ok = (itm && sipCanConvertToType(itm, sipType_QString, SIP_NOT_NONE)); Py_XDECREF(itm); if (!ok) return 0; } return 1; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qvariant.cpp0000644000076500000240000000310212536324426022050 0ustar philstaff00000000000000// This is the support for QVariant. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include "qpycore_chimera.h" // Return the Python object from the variant. PyObject *qpycore_PyObject_FromQVariant(const QVariant &qvar) { return Chimera::toAnyPyObject(qvar); } // Return a variant containing the Python object. It will be converted to a // C++ instance if possible (ie. if it is a fundamental type or a direct // wrapped type). Otherwise it is left as a Python object (with an increased // reference count). An exception is raised if there was a conversion error. // (The type of the object will never be the cause of an error.) QVariant qpycore_PyObject_AsQVariant(PyObject *obj, int *is_err) { return Chimera::fromAnyPyObject(obj, is_err); } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_qvariant_value.cpp0000644000076500000240000001432112536324426023251 0ustar philstaff00000000000000// This implements the helper for QSettings.value(). // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include "qpycore_chimera.h" #include "qpycore_sip.h" // Forward declarations. #if QT_VERSION >= 0x040500 static PyObject *convert_hash(const Chimera *ct, const QVariantHash &value); #endif static PyObject *convert_list(const Chimera *ct, const QVariantList &value); static PyObject *convert_map(const Chimera *ct, const QVariantMap &value); static PyObject *convert(const Chimera *ct, const QVariant &value); static int add_variant_to_dict(const Chimera *ct, PyObject *dict, const QString &key, const QVariant &value); // Convert a QVariant to a Python object with an optional specific type. PyObject *qpycore_qvariant_value(QVariant &value, PyObject *type) { PyObject *value_obj; if (type) { const Chimera *ct = Chimera::parse(type); if (!ct) return 0; QVariant::Type wanted = static_cast(ct->metatype()); // Get QVariant to do a conversion if there is one to do. if (value.isValid() && ct->metatype() < static_cast(QVariant::UserType)) { // If we have a QStringList but are not wanting one then convert it // to a QVariantList. if (wanted != QVariant::StringList && value.type() == QVariant::StringList) value.convert(QVariant::List); // If we have a container but are not wanting one then assume we // want a container with elements of the wanted type. if (wanted != QVariant::List && value.type() == QVariant::List) { // If we have a QVariantList but we wanted a QStringList then // assume each variant is a string. if (wanted == QVariant::StringList) value_obj = convert(ct, value); else value_obj = convert_list(ct, value.toList()); } else if (wanted != QVariant::Map && value.type() == QVariant::Map) { value_obj = convert_map(ct, value.toMap()); } #if QT_VERSION >= 0x040500 else if (wanted != QVariant::Hash && value.type() == QVariant::Hash) { value_obj = convert_hash(ct, value.toHash()); } #endif else { value_obj = convert(ct, value); } } else if (!value.isValid()) { // Convert an invalid value to the default value of the requested // type. if (ct->py_type()) value_obj = PyObject_CallObject(ct->py_type(), NULL); else value_obj = ct->toPyObject(QVariant(wanted)); } else { // This is likely to fail and the exception will say why. value_obj = ct->toPyObject(value); } delete ct; } else { QVariant *heap = new QVariant(value); value_obj = sipConvertFromNewType(heap, sipType_QVariant, 0); if (!value_obj) delete heap; } return value_obj; } // Convert a QVariantList to a list of Python objects. static PyObject *convert_list(const Chimera *ct, const QVariantList &value) { PyObject *list = PyList_New(value.size()); if (!list) return 0; for (int i = 0; i < value.size(); ++i) { PyObject *el = convert(ct, value.at(i)); if (!el) { Py_DECREF(list); return 0; } PyList_SET_ITEM(list, i, el); } return list; } // Convert a QVariantMap to a dict of Python objects. static PyObject *convert_map(const Chimera *ct, const QVariantMap &value) { PyObject *dict = PyDict_New(); if (!dict) return 0; for (QVariantMap::const_iterator it = value.constBegin(); it != value.constEnd(); ++it) { if (add_variant_to_dict(ct, dict, it.key(), it.value()) < 0) { Py_DECREF(dict); return 0; } } return dict; } #if QT_VERSION >= 0x040500 // Convert a QVariantHash to a dict of Python objects. static PyObject *convert_hash(const Chimera *ct, const QVariantHash &value) { PyObject *dict = PyDict_New(); if (!dict) return 0; for (QVariantHash::const_iterator it = value.constBegin(); it != value.constEnd(); ++it) { if (add_variant_to_dict(ct, dict, it.key(), it.value()) < 0) { Py_DECREF(dict); return 0; } } return dict; } #endif // Convert a QVariant to a Python object. static PyObject *convert(const Chimera *ct, const QVariant &value) { QVariant converted = value; if (!converted.convert(static_cast(ct->metatype()))) converted = value; return ct->toPyObject(converted); } // Add a QVariant to a Python dict with a QString key. static int add_variant_to_dict(const Chimera *ct, PyObject *dict, const QString &key, const QVariant &value) { QString *key_heap = new QString(key); PyObject *key_obj = sipConvertFromNewType(key_heap, sipType_QString, 0); if (!key_obj) { delete key_heap; return 0; } PyObject *value_obj = convert(ct, value); if (!value_obj) { Py_DECREF(key_obj); return 0; } int rc = PyDict_SetItem(dict, key_obj, value_obj); Py_DECREF(key_obj); Py_DECREF(value_obj); return rc; } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_shared.h0000644000076500000240000000302012536324426021135 0ustar philstaff00000000000000// This defines the interfaces to various odd and ends that are used internally // by this library and called from handwritten code. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_SHARED_H #define _QPYCORE_SHARED_H #include #include #include #include "qpycore_namespace.h" QT_BEGIN_NAMESPACE class QObject; class QVariant; QT_END_NAMESPACE char **qpycore_ArgvToC(PyObject *argvlist, int &argc); void qpycore_UpdatePyArgv(PyObject *argvlist, int argc, char **argv); const char *qpycore_pyqtsignal_get_parts(PyObject *sig_obj, QObject **qtx); QByteArray qpycore_pyqtslot_get_parts(PyObject *callable, QObject **qrx); PyObject *qpycore_qvariant_value(QVariant &value, PyObject *type); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_sip.h0000644000076500000240000000226112536324426020470 0ustar philstaff00000000000000// This provides access to the SIP generated code for the QtCore module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_SIP_H #define _QPYCORE_SIP_H #include #include "sipAPIQtCore.h" // The name attribute name as an object. extern PyObject *qpycore_name_attr_name; // The signature attribute name as an object. extern PyObject *qpycore_signature_attr_name; #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_sip_helpers.cpp0000644000076500000240000003140512536324426022547 0ustar philstaff00000000000000// This is the signal/slot helper code for SIP. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_pyqtboundsignal.h" #include "qpycore_pyqtproxy.h" #include "qpycore_pyqtpyobject.h" #include "qpycore_sip.h" #include "qpycore_sip_helpers.h" // Forward declarations. static PyQtShortcircuitSignalProxy *find_shortcircuit_signal(QObject *qtx, const char **sig); static PyQtProxy *find_signal(QObject *qtx, const QByteArray &sig); static void emit_shortcircuit_signal(QObject *tx, const char *sig, PyObject *sigargs); static bool is_shortcircuit_signal(const char *sig); // Find an existing Python short-circuited signal proxy. Returns a pointer to // the instance or 0 there wasn't one. static PyQtShortcircuitSignalProxy *find_shortcircuit_signal(QObject *qtx, const char **sig) { PyQtShortcircuitSignalProxy *proxy = PyQtShortcircuitSignalProxy::find(qtx, *sig); if (proxy) *sig = SIGNAL(pysignal(const PyQt_PyObject &)); return proxy; } // Find an existing Python signal proxy. Returns a pointer to the instance or // 0 there wasn't one. static PyQtProxy *find_signal(QObject *qtx, const QByteArray &sig) { PyQtProxy::ProxyHash::const_iterator it(PyQtProxy::proxy_signals.find(qtx)); while (it != PyQtProxy::proxy_signals.end() && it.key() == qtx) { PyQtProxy *proxy = it.value(); if (proxy->signature == sig) return proxy; ++it; } return 0; } // Find an existing signal emitter for the given object and signature. Returns // a pointer to the emitter or 0 if there wasn't one, and updates the signature // if necessary. QObject *qpycore_find_signal(QObject *qtx, const char **sig) { // See if it a short-circuit signal. if (is_shortcircuit_signal(*sig)) return find_shortcircuit_signal(qtx, sig); // See if the object can be used itself. QByteArray norm_sig = QMetaObject::normalizedSignature(&(*sig)[1]); if (qtx->metaObject()->indexOfSignal(norm_sig.constData()) >= 0) return qtx; // Look for an existing proxy. return find_signal(qtx, norm_sig); } // Find an existing signal emitter for the given object and signature. Returns // a pointer to the emitter or 0 if there wasn't one, and updates the signature // if necessary. extern "C" void *sipQtFindUniversalSignal(void *tx, const char **sig) { return qpycore_find_signal(reinterpret_cast(tx), sig); } // Factory function to create a signal emitter for the given object and // signature. Returns a pointer to the emitter or 0 if there was an error, and // updates the signature if necessary. extern "C" void *sipQtCreateUniversalSignal(void *tx, const char **sigp) { QObject *proxy; QObject *qtx = reinterpret_cast(tx); const char *sig = *sigp; // See if it a short-circuit signal. if (is_shortcircuit_signal(sig)) { Py_BEGIN_ALLOW_THREADS proxy = new PyQtShortcircuitSignalProxy(qtx); proxy->setObjectName(sig); Py_END_ALLOW_THREADS *sigp = SIGNAL(pysignal(const PyQt_PyObject &)); } else { Py_BEGIN_ALLOW_THREADS proxy = new PyQtProxy(qtx, &sig[1]); Py_END_ALLOW_THREADS } return proxy; } // Factory function to create a universal slot instance. Returns a pointer to // the instance or 0 if there was an error. Note that we may also return a // Qt signal (from a bound signal). extern "C" void *sipQtCreateUniversalSlot(sipWrapper *tx, const char *sig, PyObject *rxObj, const char *slot, const char **member, int flags) { // Get the receiver C++ QObject if there is one. PyObject *qrxObj; if (slot) { qrxObj = rxObj; } else if (Py_TYPE(rxObj) == &qpycore_pyqtBoundSignal_Type) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)rxObj; *member = bs->unbound_signal->signature->signature.constData(); return bs->bound_qobject; } else if (PyMethod_Check(rxObj)) { qrxObj = PyMethod_GET_SELF(rxObj); } else { qrxObj = 0; } QObject *qrx = 0; if (qrxObj) { int iserr = 0; void *rx = sipForceConvertToType(qrxObj, sipType_QObject, 0, SIP_NOT_NONE|SIP_NO_CONVERTORS, 0, &iserr); if (iserr) PyErr_Clear(); else qrx = reinterpret_cast(rx); } PyQtProxy *res; Py_BEGIN_ALLOW_THREADS res = new PyQtProxy(tx, sig, rxObj, slot, member, flags); if (res->metaObject()) { // If the receiver is a QObject then move the proxy to the same thread. if (qrx) res->moveToThread(qrx->thread()); } else { delete res; res = 0; } Py_END_ALLOW_THREADS return res; } // Dispose of a receiver that might be a universal slot. extern "C" void sipQtDestroyUniversalSlot(void *rx) { Py_BEGIN_ALLOW_THREADS PyQtProxy::mutex->lock(); PyQtProxy::ProxyHash::const_iterator it(PyQtProxy::proxy_slots.begin()); while (it != PyQtProxy::proxy_slots.end()) { PyQtProxy *up = it.value(); if (up == reinterpret_cast(rx)) { // If we are disconnecting within the slot that is connected then // disable() will make sure the proxy isn't deleted until the slot // returns. up->disable(); break; } ++it; } PyQtProxy::mutex->unlock(); Py_END_ALLOW_THREADS } // Search for the universal slot connected to a particular Qt signal. extern "C" void *sipQtFindSlot(void *tx, const char *sig, PyObject *rxObj, const char *slot, const char **member) { return PyQtProxy::findSlotProxy(tx, sig, rxObj, slot, member); } // Connect a Qt signal to a Qt slot. extern "C" int sipQtConnect(void *tx, const char *sig, void *rx, const char *slot, int type) { // Unlike Qt3, Qt4 does not check that the signal and slot arguments are // compatible in a release build. I think this is a bug, so we do the // missing check here. #if defined(QT_NO_DEBUG) if (!QMetaObject::checkConnectArgs(sig, slot)) return 0; #endif int res; Py_BEGIN_ALLOW_THREADS res = (bool)QObject::connect(reinterpret_cast(tx), sig, reinterpret_cast(rx), slot, (Qt::ConnectionType)type); Py_END_ALLOW_THREADS return res; } // Disconnect a Qt signal from a Qt slot. extern "C" int sipQtDisconnect(void *tx, const char *sig, void *rx, const char *slot) { int res; Py_BEGIN_ALLOW_THREADS res = QObject::disconnect(reinterpret_cast(tx), sig, reinterpret_cast(rx), slot); Py_END_ALLOW_THREADS return res; } // See if two signal or slot names are the same. extern "C" int sipQtSameSignalSlotName(const char *s1, const char *s2) { // Signal and slot names are always normalised so a simple string // comparison will do. return (qstrcmp(s1, s2) == 0); } // Return the next slot for a particular transmitter. This will be called with // the GIL locked. extern "C" sipSlot *sipQtFindSipslot(void *tx, void **context) { PyQtProxy::ProxyHash::const_iterator it; PyQtProxy::ProxyHash::const_iterator *itp = *reinterpret_cast(context); // Use the existing context if there is one, otherwise initialise a new // one. if (itp) it = *itp; else { it = PyQtProxy::proxy_slots.find(tx); itp = new PyQtProxy::ProxyHash::const_iterator(it); *context = itp; } if (it != PyQtProxy::proxy_slots.end() && it.key() == tx) { PyQtProxy *up = it++.value(); // Save the current context. *itp = it; return &up->real_slot.sip_slot; } // Discard the context as it is no longer needed. delete itp; *context = 0; return 0; } // Emit the given signal from the given object. Note that we do not apply the // hacks when building against Qt5 that workaround the problems with signals // with optional arguments. New style signals must be used instead. bool qpycore_qobject_emit(QObject *qtx, const char *sig, PyObject *sigargs) { // We need to explicitly check for anything that uses a proxy, so we might // as well check for everything. if (qtx->signalsBlocked()) return true; // See if it is a short-circuit signal. if (is_shortcircuit_signal(sig)) { emit_shortcircuit_signal(qtx, sig, sigargs); return true; } QByteArray norm_sig = QMetaObject::normalizedSignature(&sig[1]); int signal_index = qtx->metaObject()->indexOfSignal(norm_sig.constData()); // If the signal doesn't exist then see if there is a proxy for it. if (signal_index < 0) { PyQtProxy *proxy = find_signal(qtx, norm_sig); // Unfortunately we can't distinguish between a Qt name with a typo and // an unconnected Python signal - so we just ignore the emit. if (!proxy) return true; // Use the proxy instead. qtx = proxy; signal_index = proxy->metaObject()->indexOfSignal(norm_sig.constData()); } // Parse the signature. const Chimera::Signature *parsed_signature = Chimera::parse(norm_sig, "a signal argument"); if (!parsed_signature) return false; bool ok = qpycore_emit(qtx, signal_index, parsed_signature, parsed_signature->py_signature.constData(), sigargs); delete parsed_signature; return ok; } // Emit a signal based on a parsed signature. bool qpycore_emit(QObject *qtx, int signal_index, const Chimera::Signature *parsed_signature, const char *docstring, PyObject *sigargs) { const QList &args = parsed_signature->parsed_arguments; if (args.size() != PyTuple_GET_SIZE(sigargs)) { PyErr_Format(PyExc_TypeError, "%s signal has %d argument(s) but %d provided", docstring, args.size(), (int)PyTuple_GET_SIZE(sigargs)); return false; } // Convert the arguments. QList values; void **argv = new void *[1 + args.size()]; argv[0] = 0; QList::const_iterator it = args.constBegin(); for (int a = 0; it != args.constEnd(); ++a) { PyObject *arg_obj = PyTuple_GET_ITEM(sigargs, a); Chimera::Storage *val = (*it)->fromPyObjectToStorage(arg_obj); if (!val) { // Mimic SIP's exception text. PyErr_Format(PyExc_TypeError, "%s.emit(): argument %d has unexpected type '%s'", docstring, a + 1, Py_TYPE(arg_obj)->tp_name); delete[] argv; qDeleteAll(values.constBegin(), values.constEnd()); return false; } argv[1 + a] = val->address(); values << val; ++it; } Py_BEGIN_ALLOW_THREADS #if QT_VERSION >= 0x050000 QMetaObject::activate(qtx, signal_index, argv); #else QMetaObject::activate(qtx, signal_index, signal_index, argv); #endif Py_END_ALLOW_THREADS delete[] argv; qDeleteAll(values.constBegin(), values.constEnd()); return true; } // Emit a shortcircuit signal. static void emit_shortcircuit_signal(QObject *tx, const char *sig, PyObject *sigargs) { // Find the proxy emitter. Unfortunately we can't distinguish between a Qt // name with a typo and an unconnected Python signal - so we just ignore // the emit. PyQtShortcircuitSignalProxy *proxy = PyQtShortcircuitSignalProxy::find(tx, sig); if (proxy) { PyQt_PyObject wrapped_args(sigargs); Py_BEGIN_ALLOW_THREADS proxy->emit_signal(wrapped_args); Py_END_ALLOW_THREADS } } // Return true if the signature is of a short-circuit signal. static bool is_shortcircuit_signal(const char *sig) { return !strchr(sig, '('); } PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_sip_helpers.h0000644000076500000240000000252712536324426022217 0ustar philstaff00000000000000// This defines access to the SIP helpers for the rest of the library. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_SIP_HELPERS_H #define _QPYCORE_SIP_HELPERS_H #include #include "qpycore_chimera.h" #include "qpycore_namespace.h" QT_BEGIN_NAMESPACE class QObject; QT_END_NAMESPACE // Forward declarations. QObject *qpycore_find_signal(QObject *qtx, const char **sig); bool qpycore_emit(QObject *qtx, int signal_index, const Chimera::Signature *parsed_signature, const char *docstring, PyObject *sigargs); #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_types.cpp0000644000076500000240000006734112536324426021406 0ustar philstaff00000000000000// This contains the meta-type used by PyQt. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include #include #include #include // Defining PYQT_QOBJECT_GUARD will enable code that tries to detect when a // QObject created by Qt (ie. where we don't have a generated virtual dtor) is // destroyed thus allowing us to raise an exception rather than crashing. // However, there are problems: // // 1. The obvious choice to implement this is QWeakPointer (for Qt v4.5 and // later) or QPointer. However they cannot be used across threads. The // code checks to see if QObject is in the current thread, but can't do // anything about the QObject being moved to another thread later on. // // 2. A QObject dtor may invoke a Python reimplementation that causes the // QObject to be wrapped. QWeakPointer will fail an assertion if it is // being created for a QObject that is being deleted (rather than the more // sensible behaviour of creating a null QWeakPointer). // // For the moment we disable the code until we have a better solution. (If you // connect the destroyed signal of a QObject then move the QObject to a // different thread, will the signal be delivered properly?) #if defined(PYQT_QOBJECT_GUARD) #include #if QT_VERSION >= 0x040500 #include #else #include #endif #endif #include "qpycore_chimera.h" #include "qpycore_classinfo.h" #include "qpycore_misc.h" #include "qpycore_pyqtproperty.h" #include "qpycore_pyqtsignal.h" #include "qpycore_qmetaobjectbuilder.h" #include "qpycore_sip.h" #include "qpycore_types.h" // Forward declarations. extern "C" { static int pyqtWrapperType_init(pyqtWrapperType *self, PyObject *args, PyObject *kwds); #if defined(PYQT_QOBJECT_GUARD) static PyObject *pyqtWrapperType_call(PyObject *type, PyObject *args, PyObject *kwds); static void *qpointer_access_func(sipSimpleWrapper *w, AccessFuncOp op); #endif } static int create_dynamic_metaobject(pyqtWrapperType *pyqt_wt); #if QT_VERSION < 0x050000 static int add_arg_names(qpycore_metaobject *qo, const QByteArray &sig, int empty); #endif static const QMetaObject *get_scope_qmetaobject(const Chimera *ct); static const QMetaObject *get_qmetaobject(pyqtWrapperType *pyqt_wt); // The meta-type for PyQt classes. PyTypeObject qpycore_pyqtWrapperType_Type = { PyVarObject_HEAD_INIT(NULL, 0) SIP_TPNAME_CAST("PyQt4.QtCore.pyqtWrapperType"), /* tp_name */ sizeof (pyqtWrapperType), /* tp_basicsize */ 0, /* tp_itemsize */ 0, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ 0, /* tp_compare */ 0, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ #if defined(PYQT_QOBJECT_GUARD) pyqtWrapperType_call, /* tp_call */ #else 0, /* tp_call */ #endif 0, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ 0, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ (initproc)pyqtWrapperType_init, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ 0, /* tp_del */ #if PY_VERSION_HEX >= 0x02060000 0, /* tp_version_tag */ #endif #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif }; // The type init slot. static int pyqtWrapperType_init(pyqtWrapperType *self, PyObject *args, PyObject *kwds) { // Let the super-type complete the basic initialisation. if (sipWrapperType_Type->tp_init((PyObject *)self, args, kwds) < 0) return -1; pyqt4ClassTypeDef *pyqt_td = (pyqt4ClassTypeDef *)((sipWrapperType *)self)->type; if (pyqt_td && !sipIsExactWrappedType((sipWrapperType *)self)) { // Create a dynamic meta-object as its base wrapped type has a static // Qt meta-object. if (pyqt_td->static_metaobject && create_dynamic_metaobject(self) < 0) return -1; } return 0; } // Create a dynamic meta-object for a Python type by introspecting its // attributes. Note that it leaks if the type is deleted. static int create_dynamic_metaobject(pyqtWrapperType *pyqt_wt) { PyTypeObject *pytype = (PyTypeObject *)pyqt_wt; qpycore_metaobject *qo = new qpycore_metaobject; #if QT_VERSION >= 0x050000 QMetaObjectBuilder builder; #endif // Get any class info. QList class_info_list = qpycore_get_class_info_list(); // Get the super-type's meta-object. #if QT_VERSION >= 0x050000 builder.setSuperClass(get_qmetaobject((pyqtWrapperType *)pytype->tp_base)); #else qo->mo.d.superdata = get_qmetaobject((pyqtWrapperType *)pytype->tp_base); #endif // Get the name of the type. Dynamic types have simple names. #if QT_VERSION >= 0x050000 builder.setClassName(pytype->tp_name); #else qo->str_data = pytype->tp_name; qo->str_data.append('\0'); #endif // Go through the class dictionary getting all PyQt properties, slots, // signals or a (deprecated) sequence of signals. typedef QPair prop_data; QMap pprops; QList psigs; SIP_SSIZE_T pos = 0; PyObject *key, *value; #if QT_VERSION < 0x050000 bool has_notify_signal = false; QList enum_scopes; #endif while (PyDict_Next(pytype->tp_dict, &pos, &key, &value)) { // See if it is a slot, ie. it has been decorated with pyqtSlot(). PyObject *sig_obj = PyObject_GetAttr(value, qpycore_signature_attr_name); if (sig_obj) { // Make sure it is a list and not some legitimate attribute that // happens to use our special name. if (PyList_Check(sig_obj)) { for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sig_obj); ++i) { qpycore_slot slot; // Set up the skeleton slot. PyObject *decoration = PyList_GET_ITEM(sig_obj, i); slot.signature = Chimera::Signature::fromPyObject(decoration); slot.sip_slot.pyobj = 0; slot.sip_slot.name = 0; slot.sip_slot.meth.mfunc = value; slot.sip_slot.meth.mself = 0; #if PY_MAJOR_VERSION < 3 slot.sip_slot.meth.mclass = (PyObject *)pyqt_wt; #endif slot.sip_slot.weakSlot = 0; qo->pslots.append(slot); } } Py_DECREF(sig_obj); } else { PyErr_Clear(); // Make sure the key is an ASCII string. Delay the error checking // until we know we actually need it. const char *ascii_key = sipString_AsASCIIString(&key); // See if the value is of interest. if (PyType_IsSubtype(Py_TYPE(value), &qpycore_pyqtProperty_Type)) { // It is a property. if (!ascii_key) return -1; Py_INCREF(value); qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)value; pprops.insert(pp->pyqtprop_sequence, prop_data(key, value)); // See if the property has a scope. If so, collect all // QMetaObject pointers that are not in the super-class // hierarchy. const QMetaObject *mo = get_scope_qmetaobject(pp->pyqtprop_parsed_type); #if QT_VERSION >= 0x050000 if (mo) builder.addRelatedMetaObject(mo); #else if (mo && !enum_scopes.contains(mo)) enum_scopes.append(mo); #endif #if QT_VERSION < 0x050000 // See if the property has a notify signal so that we can // allocate space for it in the meta-object. We will check if // it is valid later on. If there is one property with a // notify signal then a signal index is stored for all // properties. if (pp->pyqtprop_notify) has_notify_signal = true; #endif } else if (PyType_IsSubtype(Py_TYPE(value), &qpycore_pyqtSignal_Type)) { // It is a signal. if (!ascii_key) return -1; qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)value; // Make sure the signal has a name. qpycore_set_signal_name(ps, pytype->tp_name, ascii_key); // Add all the overloads. do { psigs.append(ps->signature->signature); ps = ps->next; } while (ps); Py_DECREF(key); } else if (ascii_key && qstrcmp(ascii_key, "__pyqtSignals__") == 0) { // It is a sequence of signal signatures. This is deprecated // in favour of pyqtSignal(). if (PySequence_Check(value)) { SIP_SSIZE_T seq_sz = PySequence_Size(value); for (SIP_SSIZE_T i = 0; i < seq_sz; ++i) { PyObject *itm = PySequence_ITEM(value, i); if (!itm) { Py_DECREF(key); return -1; } PyObject *ascii_itm = itm; const char *ascii = sipString_AsASCIIString(&ascii_itm); Py_DECREF(itm); if (!ascii) { Py_DECREF(key); return -1; } QByteArray old_sig = QMetaObject::normalizedSignature(ascii); old_sig.prepend('2'); psigs.append(old_sig); Py_DECREF(ascii_itm); } } Py_DECREF(key); } else { PyErr_Clear(); } } } qo->nr_signals = psigs.count(); #if QT_VERSION < 0x050000 // Create and fill the extradata array. if (enum_scopes.isEmpty()) { qo->mo.d.extradata = 0; } else { const QMetaObject **objects = new const QMetaObject *[enum_scopes.size() + 1]; for (int i = 0; i < enum_scopes.size(); ++i) objects[i] = enum_scopes.at(i); objects[enum_scopes.size()] = 0; #if QT_VERSION >= 0x040600 qo->ed.objects = objects; qo->ed.static_metacall = 0; qo->mo.d.extradata = &qo->ed; #else qo->mo.d.extradata = objects; #endif } #endif // Initialise the header section of the data table. Note that Qt v4.5 // introduced revision 2 which added constructors. However the design is // broken in that the static meta-call function doesn't provide enough // information to determine which Python sub-class of a Qt class is to be // created. So we stick with revision 1 (and don't allow pyqtSlot() to // decorate __init__). #if QT_VERSION < 0x050000 #if QT_VERSION >= 0x040600 const int revision = 4; const int header_size = 14; #else const int revision = 1; const int header_size = 10; #endif int data_len = header_size + class_info_list.count() * 2 + qo->nr_signals * 5 + qo->pslots.count() * 5 + pprops.count() * (has_notify_signal ? 4 : 3) + 1; uint *data = new uint[data_len]; int i_offset = header_size; int g_offset = i_offset + class_info_list.count() * 2; int s_offset = g_offset + qo->nr_signals * 5; int p_offset = s_offset + qo->pslots.count() * 5; int n_offset = p_offset + pprops.count() * 3; int empty = 0; for (int i = 0; i < data_len; ++i) data[i] = 0; // The revision number. data[0] = revision; #endif // Set up any class information. if (class_info_list.count() > 0) { #if QT_VERSION < 0x050000 data[2] = class_info_list.count(); data[3] = i_offset; #endif for (int i = 0; i < class_info_list.count(); ++i) { const ClassInfo &ci = class_info_list.at(i); #if QT_VERSION >= 0x050000 builder.addClassInfo(ci.first, ci.second); #else data[i_offset + (i * 2) + 0] = qo->str_data.size(); qo->str_data.append(ci.first.constData()); qo->str_data.append('\0'); data[i_offset + (i * 2) + 1] = qo->str_data.size(); qo->str_data.append(ci.second.constData()); qo->str_data.append('\0'); #endif } } #if QT_VERSION < 0x050000 // Set up the methods count and offset. if (qo->nr_signals || qo->pslots.count()) { data[4] = qo->nr_signals + qo->pslots.count(); data[5] = g_offset; // We might need an empty string. empty = qo->str_data.size(); qo->str_data.append('\0'); } // Set up the properties count and offset. if (pprops.count()) { data[6] = pprops.count(); data[7] = p_offset; } #if QT_VERSION >= 0x040600 data[13] = qo->nr_signals; #endif #endif // Add the signals to the meta-object. for (int g = 0; g < qo->nr_signals; ++g) { const QByteArray &norm = psigs.at(g); #if QT_VERSION >= 0x050000 builder.addSignal(norm.mid(1)); #else // Add the (non-existent) argument names. data[g_offset + (g * 5) + 1] = add_arg_names(qo, norm, empty); // Add the full signature. data[g_offset + (g * 5) + 0] = qo->str_data.size(); qo->str_data.append(norm.constData() + 1); qo->str_data.append('\0'); // Add the type, tag and flags. data[g_offset + (g * 5) + 2] = empty; data[g_offset + (g * 5) + 3] = empty; data[g_offset + (g * 5) + 4] = 0x05; #endif } // Add the slots to the meta-object. for (int s = 0; s < qo->pslots.count(); ++s) { const qpycore_slot &slot = qo->pslots.at(s); const QByteArray &sig = slot.signature->signature; #if QT_VERSION >= 0x050000 QMetaMethodBuilder slot_builder = builder.addSlot(sig); #else // Add the (non-existent) argument names. data[s_offset + (s * 5) + 1] = add_arg_names(qo, sig, empty); // Add the full signature. data[s_offset + (s * 5) + 0] = qo->str_data.size(); qo->str_data.append(sig); qo->str_data.append('\0'); #endif // Add any type. if (slot.signature->result) { #if QT_VERSION >= 0x050000 slot_builder.setReturnType(slot.signature->result->name()); #else data[s_offset + (s * 5) + 2] = qo->str_data.size(); qo->str_data.append(slot.signature->result->name()); qo->str_data.append('\0'); #endif } #if QT_VERSION < 0x050000 else { data[s_offset + (s * 5) + 2] = empty; } // Add the tag and flags. data[s_offset + (s * 5) + 3] = empty; data[s_offset + (s * 5) + 4] = 0x0a; #endif } // Add the properties to the meta-object. #if QT_VERSION < 0x050000 QList notify_signals; #endif QMapIterator it(pprops); for (int p = 0; it.hasNext(); ++p) { it.next(); const prop_data &pprop = it.value(); const char *prop_name = SIPBytes_AS_STRING(pprop.first); qpycore_pyqtProperty *pp = (qpycore_pyqtProperty *)pprop.second; int notifier_id; #if QT_VERSION < 0x050000 uint flags = 0; #endif if (pp->pyqtprop_notify) { qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)pp->pyqtprop_notify; const QByteArray &sig = ps->signature->signature; #if QT_VERSION >= 0x050000 notifier_id = builder.indexOfSignal(sig.mid(1)); #else notifier_id = psigs.indexOf(sig); #endif if (notifier_id < 0) { PyErr_Format(PyExc_TypeError, "the notify signal '%s' was not defined in this class", sig.constData() + 1); // Note that we leak the property name. return -1; } #if QT_VERSION < 0x050000 notify_signals.append(notifier_id); flags |= 0x00400000; #endif } else { #if QT_VERSION >= 0x050000 notifier_id = -1; #else notify_signals.append(0); #endif } #if QT_VERSION >= 0x050000 // A Qt v5 revision 7 meta-object holds the QMetaType::Type of the type // or its name if it is unresolved (ie. not known to the type system). // In Qt v4 both are held. For QObject sub-classes Chimera will fall // back to the QMetaType::QObjectStar if there is no specific meta-type // for the sub-class. This means that, for Qt v4, // QMetaProperty::read() can handle the type. However, Qt v5 doesn't // know that the unresolved type is a QObject sub-class. Therefore we // have to tell it that the property is a QObject, rather than the // sub-class. This means that QMetaProperty.typeName() will always // return "QObject*". QByteArray prop_type; if (pp->pyqtprop_parsed_type->metatype() == QMetaType::QObjectStar) prop_type = "QObject*"; else prop_type = pp->pyqtprop_parsed_type->name(); QMetaPropertyBuilder prop_builder = builder.addProperty(prop_name, prop_type, notifier_id); // Reset the defaults. prop_builder.setReadable(false); prop_builder.setWritable(false); #else // Add the property name. data[p_offset + (p * 3) + 0] = qo->str_data.size(); qo->str_data.append(prop_name); qo->str_data.append('\0'); // Add the name of the property type. data[p_offset + (p * 3) + 1] = qo->str_data.size(); qo->str_data.append(pp->pyqtprop_parsed_type->name()); qo->str_data.append('\0'); // There are only 8 bits available for the type so use the special // value if more are required. uint metatype = pp->pyqtprop_parsed_type->metatype(); if (metatype > 0xff) { #if QT_VERSION >= 0x040600 // Qt assumes it is an enum. metatype = 0; flags |= 0x00000008; #else // This is the old PyQt behaviour. It may not be correct, but // nobody has complained, and if it ain't broke... metatype = 0xff; #endif } #endif // Enum or flag. if (pp->pyqtprop_parsed_type->isEnum() || pp->pyqtprop_parsed_type->isFlag()) { #if QT_VERSION >= 0x050000 prop_builder.setEnumOrFlag(true); #else #if QT_VERSION >= 0x040600 metatype = 0; #endif flags |= 0x00000008; #endif } #if QT_VERSION < 0x050000 flags |= metatype << 24; #endif if (pp->pyqtprop_get && PyCallable_Check(pp->pyqtprop_get)) // Readable. #if QT_VERSION >= 0x050000 prop_builder.setReadable(true); #else flags |= 0x00000001; #endif if (pp->pyqtprop_set && PyCallable_Check(pp->pyqtprop_set)) { // Writable. #if QT_VERSION >= 0x050000 prop_builder.setWritable(true); #else flags |= 0x00000002; #endif // See if the name of the setter follows the Designer convention. // If so tell the UI compilers not to use setProperty(). PyObject *setter_name_obj = PyObject_GetAttr(pp->pyqtprop_set, qpycore_name_attr_name); if (setter_name_obj) { PyObject *ascii_obj = setter_name_obj; const char *ascii = sipString_AsASCIIString(&ascii_obj); Py_DECREF(setter_name_obj); if (ascii) { if (qstrlen(ascii) > 3 && ascii[0] == 's' && ascii[1] == 'e' && ascii[2] == 't' && ascii[3] == toupper(prop_name[0]) && qstrcmp(&ascii[4], &prop_name[1]) == 0) #if QT_VERSION >= 0x050000 prop_builder.setStdCppSet(true); #else flags |= 0x00000100; #endif } Py_DECREF(ascii_obj); } PyErr_Clear(); } if (pp->pyqtprop_reset && PyCallable_Check(pp->pyqtprop_reset)) // Resetable. #if QT_VERSION >= 0x050000 prop_builder.setResettable(true); #else flags |= 0x00000004; #endif // Add the property flags. #if QT_VERSION >= 0x050000 // Note that Qt4 always seems to have ResolveEditable set but // QMetaObjectBuilder doesn't provide an API call to do it. prop_builder.setDesignable(pp->pyqtprop_flags & 0x00001000); prop_builder.setScriptable(pp->pyqtprop_flags & 0x00004000); prop_builder.setStored(pp->pyqtprop_flags & 0x00010000); prop_builder.setUser(pp->pyqtprop_flags & 0x00100000); prop_builder.setConstant(pp->pyqtprop_flags & 0x00000400); prop_builder.setFinal(pp->pyqtprop_flags & 0x00000800); #else flags |= pp->pyqtprop_flags; data[p_offset + (p * 3) + 2] = flags; #endif // Save the property data for qt_metacall(). (We already have a // reference.) qo->pprops.append(pp); // We've finished with the property name. Py_DECREF(pprop.first); } #if QT_VERSION < 0x050000 // Add the indices of the notify signals. if (has_notify_signal) { QListIterator notify_it(notify_signals); while (notify_it.hasNext()) data[n_offset++] = notify_it.next(); } #endif // Initialise the rest of the meta-object. #if QT_VERSION >= 0x050000 qo->mo = builder.toMetaObject(); #else qo->mo.d.stringdata = qo->str_data.constData(); qo->mo.d.data = data; #endif // Save the meta-object. pyqt_wt->metaobject = qo; return 0; } #if QT_VERSION < 0x050000 // Add the (non-existent) argument names for a signature and return their index // in the meta-object string data. static int add_arg_names(qpycore_metaobject *qo, const QByteArray &sig, int empty) { int anames = -1; for (const char *com = sig.constData(); *com != '\0'; ++com) if (*com == ',') { if (anames < 0) anames = qo->str_data.size(); qo->str_data.append(','); } if (anames < 0) anames = empty; else qo->str_data.append('\0'); return anames; } #endif // Return the QMetaObject for an enum type's scope. static const QMetaObject *get_scope_qmetaobject(const Chimera *ct) { // Check it is an enum. if (!ct->isEnum()) return 0; // Check it has a scope. const sipTypeDef *td = sipTypeScope(ct->typeDef()); if (!td) return 0; // Check the scope is wrapped by PyQt. if (!qpycore_is_pyqt4_class(td)) return 0; return get_qmetaobject((pyqtWrapperType *)sipTypeAsPyTypeObject(td)); } // Return the QMetaObject for a type. static const QMetaObject *get_qmetaobject(pyqtWrapperType *pyqt_wt) { // See if it's a sub-type of a wrapped type. if (pyqt_wt->metaobject) return QPYCORE_QMETAOBJECT(pyqt_wt->metaobject); // It's a wrapped type. return reinterpret_cast(((pyqt4ClassTypeDef *)((sipWrapperType *)pyqt_wt)->type)->static_metaobject); } #if defined(PYQT_QOBJECT_GUARD) #if QT_VERSION < 0x040500 // The guard for Qt generated QObjects. struct QObjectGuard { QObjectGuard(void *addr) : guarded(reinterpret_cast(addr)), unguarded(addr) {} QPointer guarded; void *unguarded; }; #endif // Reimplemented to wrap any QObjects created internally by Qt so that we can // detect if they get destroyed. static PyObject *pyqtWrapperType_call(PyObject *type, PyObject *args, PyObject *kwds) { PyObject *self = sipWrapperType_Type->tp_call(type, args, kwds); // See if the object was created and it is a QObject sub-class. if (self && PyObject_TypeCheck(self, sipTypeAsPyTypeObject(sipType_QObject))) { sipSimpleWrapper *w = (sipSimpleWrapper *)self; // See if it is created internally by Qt and doesn't already have an // access function (e.g. qApp). if (!sipIsDerived(w) && !w->access_func) { QObject *qobj = reinterpret_cast(w->data); // We can only guard objects in the same thread. if (qobj->thread() == QThread::currentThread()) { #if QT_VERSION >= 0x040500 QWeakPointer *guard = new QWeakPointer(qobj); #else QObjectGuard *guard = new QObjectGuard(w->data); #endif w->data = guard; w->access_func = qpointer_access_func; } } } return self; } // The access function for guarded QObject pointers. static void *qpointer_access_func(sipSimpleWrapper *w, AccessFuncOp op) { #if QT_VERSION >= 0x040500 QWeakPointer *guard = reinterpret_cast *>(w->data); #else QObjectGuard *guard = reinterpret_cast(w->data); #endif void *addr; switch (op) { case UnguardedPointer: #if QT_VERSION >= 0x040500 addr = guard->data(); #else addr = guard->unguarded; #endif break; case GuardedPointer: #if QT_VERSION >= 0x040500 addr = guard->isNull() ? 0 : guard->data(); #else addr = (QObject *)guard->guarded; #endif break; case ReleaseGuard: delete guard; addr = 0; break; } return addr; } #endif PyQt-x11-gpl-4.11.4/qpy/QtCore/qpycore_types.h0000644000076500000240000000460412536324426021044 0ustar philstaff00000000000000// This defines the interfaces for the meta-type used by PyQt. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYCORE_TYPES_H #define _QPYCORE_TYPES_H #include #include #include #include #include "qpycore_chimera.h" #include "qpycore_pyqtproperty.h" #include "qpycore_sip.h" // This describes a slot. struct qpycore_slot { // The slot itself. sipSlot sip_slot; // The parsed signature. const Chimera::Signature *signature; }; // This describes a dynamic meta-object. struct qpycore_metaobject { #if QT_VERSION >= 0x050000 // The meta-object built by QMetaObjectBuilder. QMetaObject *mo; #define QPYCORE_QMETAOBJECT(qo) ((qo)->mo) #else // The meta-object. QMetaObject mo; #define QPYCORE_QMETAOBJECT(qo) (&(qo)->mo) // The meta-object string data. QByteArray str_data; #if QT_VERSION >= 0x040600 QMetaObjectExtraData ed; #endif #endif // The list of properties. QList pprops; // The list of slots. QList pslots; // The number of signals. int nr_signals; }; extern "C" { /* * The meta-type of a PyQt wrapper type. */ typedef struct _pyqtWrapperType { /* * The super-meta-type. This must be first in the structure so that it can * be cast to a sipWrapperType *. */ sipWrapperType super; /* * The type's dynamic metaobject (for QObject sub-classes) created by * introspecting the Python type. */ qpycore_metaobject *metaobject; } pyqtWrapperType; extern PyTypeObject qpycore_pyqtWrapperType_Type; } #endif PyQt-x11-gpl-4.11.4/qpy/QtDBus/0000755000076500000240000000000012536324426015726 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/qpy/QtDBus/qpydbus.pro0000644000076500000240000000251712536324426020144 0ustar philstaff00000000000000# This is the qmake project file for the QPy support code for the QtDBus # module. Note that it is not required by configure-ng.py. # # Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. QT += dbus CONFIG += static warn_on TARGET = qpydbus TEMPLATE = lib SOURCES = \ qpydbus_chimera_helpers.cpp \ qpydbus_post_init.cpp \ qpydbuspendingreply.cpp \ qpydbusreply.cpp HEADERS = \ qpydbus_api.h \ qpydbus_chimera_helpers.h \ qpydbuspendingreply.h \ qpydbusreply.h PyQt-x11-gpl-4.11.4/qpy/QtDBus/qpydbus_api.h0000644000076500000240000000204512536324426020420 0ustar philstaff00000000000000// This defines the API provided by this library. It must not be explicitly // included by the library itself. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDBUS_API_H #define _QPYDBUS_API_H // Initialisation. void qpydbus_post_init(); #endif PyQt-x11-gpl-4.11.4/qpy/QtDBus/qpydbus_chimera_helpers.cpp0000644000076500000240000001313512536324426023336 0ustar philstaff00000000000000// This is the implementation of the various Chimera helpers. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include "sipAPIQtDBus.h" #include "qpydbus_chimera_helpers.h" #include #include #include #include #include // Forward declarations. static PyObject *from_variant_type(const QDBusArgument &arg); static PyObject *from_array_type(const QDBusArgument &arg); static PyObject *from_structure_type(const QDBusArgument &arg); static PyObject *from_map_type(const QDBusArgument &arg); static PyObject *from_qstring(const QString &arg); static PyObject *from_qvariant(const QVariant &arg); // Convert a QVariant to a Python object. bool qpydbus_to_pyobject(const QVariant *varp, PyObject **objp) { // Handle QDBusObjectPath. if (varp->userType() == qMetaTypeId()) { *objp = from_qstring(varp->value().path()); return true; } // Handle QDBusSignature. if (varp->userType() == qMetaTypeId()) { *objp = from_qstring(varp->value().signature()); return true; } // Handle QDBusVariant. if (varp->userType() == qMetaTypeId()) { *objp = from_qvariant(varp->value().variant()); return true; } // Anything else must be a QDBusArgument. if (varp->userType() != qMetaTypeId()) return false; QDBusArgument arg = varp->value(); switch (arg.currentType()) { case QDBusArgument::BasicType: *objp = from_qvariant(arg.asVariant()); break; case QDBusArgument::VariantType: *objp = from_variant_type(arg); break; case QDBusArgument::ArrayType: *objp = from_array_type(arg); break; case QDBusArgument::StructureType: *objp = from_structure_type(arg); break; case QDBusArgument::MapType: *objp = from_map_type(arg); break; default: PyErr_Format(PyExc_TypeError, "unsupported DBus argument type %d", (int)arg.currentType()); *objp = 0; } return true; } // Convert a QDBusArgument variant type to a Python object. static PyObject *from_variant_type(const QDBusArgument &arg) { QDBusVariant dbv; arg >> dbv; return from_qvariant(dbv.variant()); } // Convert a QDBusArgument array type to a Python object. static PyObject *from_array_type(const QDBusArgument &arg) { QVariantList vl; arg.beginArray(); while (!arg.atEnd()) vl.append(arg.asVariant()); arg.endArray(); PyObject *obj = PyList_New(vl.count()); if (!obj) return 0; for (int i = 0; i < vl.count(); ++i) { PyObject *itm = from_qvariant(vl.at(i)); if (!itm) { Py_DECREF(obj); return 0; } PyList_SET_ITEM(obj, i, itm); } return obj; } // Convert a QDBusArgument structure type to a Python object. static PyObject *from_structure_type(const QDBusArgument &arg) { QVariantList vl; arg.beginStructure(); while (!arg.atEnd()) vl.append(arg.asVariant()); arg.endStructure(); PyObject *obj = PyTuple_New(vl.count()); if (!obj) return 0; for (int i = 0; i < vl.count(); ++i) { PyObject *itm = from_qvariant(vl.at(i)); if (!itm) { Py_DECREF(obj); return 0; } PyTuple_SET_ITEM(obj, i, itm); } return obj; } // Convert a QDBusArgument map type to a Python object. static PyObject *from_map_type(const QDBusArgument &arg) { PyObject *obj = PyDict_New(); if (!obj) return 0; arg.beginMap(); while (!arg.atEnd()) { arg.beginMapEntry(); PyObject *key = from_qvariant(arg.asVariant()); PyObject *value = from_qvariant(arg.asVariant()); arg.endMapEntry(); if (!key || !value) { Py_XDECREF(key); Py_XDECREF(value); Py_DECREF(obj); return 0; } int rc = PyDict_SetItem(obj, key, value); Py_DECREF(key); Py_DECREF(value); if (rc < 0) { Py_DECREF(obj); return 0; } } arg.endMap(); return obj; } // Convert a QString to a Python object. static PyObject *from_qstring(const QString &arg) { QString *heap = new QString(arg); PyObject *obj = sipConvertFromNewType(heap, sipType_QString, 0); if (!obj) delete heap; return obj; } // Convert a QVariant to a Python object. static PyObject *from_qvariant(const QVariant &arg) { QVariant *heap = new QVariant(arg); PyObject *obj = sipConvertFromNewType(heap, sipType_QVariant, 0); if (!obj) delete heap; return obj; } PyQt-x11-gpl-4.11.4/qpy/QtDBus/qpydbus_chimera_helpers.h0000644000076500000240000000227712536324426023010 0ustar philstaff00000000000000// This is the definition of the various Chimera helpers. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDBUSCHIMERAHELPERS_H #define _QPYDBUSCHIMERAHELPERS_H #include #include // Keep this in sync. with that defined in the Chimera class. typedef bool (*ToPyObjectFn)(const QVariant *, PyObject **); bool qpydbus_to_pyobject(const QVariant *varp, PyObject **objp); #endif PyQt-x11-gpl-4.11.4/qpy/QtDBus/qpydbus_post_init.cpp0000644000076500000240000000246212536324426022215 0ustar philstaff00000000000000// This is the initialisation support code for the QtDBus module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include "sipAPIQtDBus.h" #include "qpydbus_chimera_helpers.h" // Perform any required initialisation. void qpydbus_post_init() { // Get the Chimera helper registration function. void (*register_to_pyobject)(ToPyObjectFn); register_to_pyobject = (void (*)(ToPyObjectFn))sipImportSymbol( "qpycore_register_to_pyobject"); register_to_pyobject(qpydbus_to_pyobject); } PyQt-x11-gpl-4.11.4/qpy/QtDBus/qpydbuspendingreply.cpp0000644000076500000240000000347512536324426022553 0ustar philstaff00000000000000// This is the implementation of the QPyDBusPendingReply class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include "sipAPIQtDBus.h" #include "qpydbuspendingreply.h" // Default ctor. QPyDBusPendingReply::QPyDBusPendingReply() : QDBusPendingReply() { } // Copy a reply. QPyDBusPendingReply::QPyDBusPendingReply(const QPyDBusPendingReply &other) : QDBusPendingReply(other) { } // Extract a reply from another pending call. QPyDBusPendingReply::QPyDBusPendingReply(const QDBusPendingCall &call) : QDBusPendingReply(call) { } // Extract a reply from a message. QPyDBusPendingReply::QPyDBusPendingReply(const QDBusMessage &reply) : QDBusPendingReply(reply) { } // Return the value of the reply. The GIL should be held. PyObject *QPyDBusPendingReply::value(PyObject *type) const { QVariant val; // This will wait for the call to complete. Py_BEGIN_ALLOW_THREADS val = argumentAt(0); Py_END_ALLOW_THREADS return qpycore_qvariant_value(val, type); } PyQt-x11-gpl-4.11.4/qpy/QtDBus/qpydbuspendingreply.h0000644000076500000240000000247412536324426022216 0ustar philstaff00000000000000// This is the definition of the QPyDBusPendingReply class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDBUSPENDINGREPLY_H #define _QPYDBUSPENDINGREPLY_H #include #include class QPyDBusPendingReply : public QDBusPendingReply { public: QPyDBusPendingReply(); QPyDBusPendingReply(const QPyDBusPendingReply &other); QPyDBusPendingReply(const QDBusPendingCall &call); QPyDBusPendingReply(const QDBusMessage &reply); PyObject *value(PyObject *type) const; }; #endif PyQt-x11-gpl-4.11.4/qpy/QtDBus/qpydbusreply.cpp0000644000076500000240000000676312536324426021211 0ustar philstaff00000000000000// This is the implementation of the QPyDBusReply class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #include "sipAPIQtDBus.h" #include "qpydbusreply.h" // Extract a reply from a message. The GIL should be held. QPyDBusReply::QPyDBusReply(const QDBusMessage &reply) { *this = reply; } // Extract a reply from a pending call. The GIL should be held. QPyDBusReply::QPyDBusReply(const QDBusPendingCall &call) { *this = call; } // Extract a reply from an error. QPyDBusReply::QPyDBusReply(const QDBusError &error) { _q_value = 0; _q_is_valid = !error.isValid(); _q_error = error; } // Copy a reply. The GIL should be held. QPyDBusReply::QPyDBusReply(const QPyDBusReply &other) { _q_value = other._q_value; Py_XINCREF(_q_value); _q_value_variant = other._q_value_variant; _q_is_valid = other._q_is_valid; _q_error = other._q_error; } // A reply created from a QDBusReply<> mapped type convertor. QPyDBusReply::QPyDBusReply(PyObject *q_value, bool q_is_valid, const QDBusError &q_error) : _q_value(q_value), _q_is_valid(q_is_valid), _q_error(q_error) { } // The dtor. The GIL should be held. QPyDBusReply::~QPyDBusReply() { Py_XDECREF(_q_value); } // Return the value of the reply. The GIL should be held. PyObject *QPyDBusReply::value(PyObject *type) const { if (!_q_is_valid) { PyErr_SetString(PyExc_ValueError, "QDBusReply value is invalid"); return 0; } // Return any explicit value. if (_q_value) { if (type) { PyErr_SetString(PyExc_ValueError, "'type' argument cannot be used with an explcitly typed reply"); return 0; } Py_INCREF(_q_value); return _q_value; } QVariant val(_q_value_variant); return qpycore_qvariant_value(val, type); } // Extract a reply from a message. The GIL should be held. QPyDBusReply &QPyDBusReply::operator=(const QDBusMessage &reply) { _q_value = 0; _q_error = reply; _q_is_valid = !_q_error.isValid(); if (_q_is_valid) { QList results = reply.arguments(); if (results.count() == 0) { Py_INCREF(Py_None); _q_value = Py_None; } else { // Convert this later if requested. _q_value_variant = results.at(0); } } return *this; } // Extract a reply from a pending call. The GIL should be held. QPyDBusReply &QPyDBusReply::operator=(const QDBusPendingCall &call) { QDBusPendingCall other(call); Py_BEGIN_ALLOW_THREADS other.waitForFinished(); Py_END_ALLOW_THREADS return *this = other.reply(); } PyQt-x11-gpl-4.11.4/qpy/QtDBus/qpydbusreply.h0000644000076500000240000000337412536324426020651 0ustar philstaff00000000000000// This is the definition of the QPyDBusReply class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDBUSREPLY_H #define _QPYDBUSREPLY_H #include #include #include class QDBusMessage; class QDBusPendingCall; class QPyDBusReply { public: QPyDBusReply(const QDBusMessage &reply); QPyDBusReply(const QDBusPendingCall &call); QPyDBusReply(const QDBusError &error = QDBusError()); QPyDBusReply(const QPyDBusReply &other); QPyDBusReply(PyObject *q_value, bool q_is_valid, const QDBusError &q_error); ~QPyDBusReply(); inline const QDBusError &error() const {return _q_error;} inline bool isValid() const {return _q_is_valid;} PyObject *value(PyObject *type) const; QPyDBusReply &operator=(const QDBusMessage &reply); QPyDBusReply &operator=(const QDBusPendingCall &call); private: PyObject *_q_value; QVariant _q_value_variant; bool _q_is_valid; QDBusError _q_error; }; #endif PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/0000755000076500000240000000000012536324426017314 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarative.pro0000644000076500000240000000273412536324426023061 0ustar philstaff00000000000000# This is the qmake project file for the QPy support code for the QtDeclarative # module. Note that it is not required by configure-ng.py. # # Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. QT += declarative CONFIG += static warn_on TARGET = qpydeclarative TEMPLATE = lib SOURCES = \ qpydeclarative_chimera_helpers.cpp \ qpydeclarative_listwrapper.cpp \ qpydeclarative_post_init.cpp \ qpydeclarativelistproperty.cpp HEADERS = \ qpydeclarative_api.h \ qpydeclarative_chimera_helpers.h \ qpydeclarative_listwrapper.h \ qpydeclarativelistproperty.h \ qpydeclarativepropertyvaluesource.h PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarative_api.h0000644000076500000240000000211712536324426023334 0ustar philstaff00000000000000// This defines the API provided by this library. It must not be explicitly // included by the library itself. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDECLARATIVE_API_H #define _QPYDECLARATIVE_API_H // Initialisation. void qpydeclarative_post_init(PyObject *module_dict); #endif PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarative_chimera_helpers.cpp0000644000076500000240000001001312536324426026242 0ustar philstaff00000000000000// This is the implementation of the various Chimera helpers. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include "sipAPIQtDeclarative.h" #include "qpydeclarative_chimera_helpers.h" #include #include #include // Forward declarations. static int QList_QObject_metatype(); static bool to_QList_QObject(PyObject *obj, QList&cpp); // Convert a QVariant to a Python object. bool qpydeclarative_to_pyobject(const QVariant *varp, PyObject **objp) { // Check we handle the meta-type. if (varp->userType() != QList_QObject_metatype()) return false; const QList *cpp = reinterpret_cast *>(varp->data()); PyObject *obj = PyList_New(cpp->count()); if (obj) { for (int i = 0; i < cpp->count(); ++i) { PyObject *itm = sipConvertFromType(cpp->at(i), sipType_QObject, 0); if (!itm) { Py_DECREF(obj); obj = 0; break; } PyList_SET_ITEM(obj, i, itm); } } *objp = obj; return true; } // Convert a Python object to a QVariant. bool qpydeclarative_to_qvariant(PyObject *obj, QVariant *varp, bool *okp) { int metatype = QList_QObject_metatype(); // Check the meta-type has been defined. if (metatype == 0) return false; QList qlo; // A failure to convert isn't an error, just the wrong type of Python // object. if (!to_QList_QObject(obj, qlo)) return false; *varp = QVariant(metatype, &qlo); *okp = true; return true; } // Convert a Python object to QVariant data. bool qpydeclarative_to_qvariant_data(PyObject *obj, void *data, int metatype, bool *okp) { // Check we handle the meta-type. if (metatype != QList_QObject_metatype()) return false; QList qlo; // A failure to convert isn't an error, just the wrong type of Python // object. if (!to_QList_QObject(obj, qlo)) return false; *reinterpret_cast *>(data) = qlo; *okp = true; return true; } // Get the metatype for QList or 0 if it hasn't been registered. static int QList_QObject_metatype() { static int lo_metatype = 0; // We look each time until we find it rather than rely on any particular // behaviour from QtDeclarative. if (lo_metatype == 0) lo_metatype = QMetaType::type("QList"); return lo_metatype; } // Convert a Python list object to a QList and return true if the // conversion was successful. An empty list is never converted and left to the // QtCore module to handle. static bool to_QList_QObject(PyObject *obj, QList&cpp) { if (!PyList_CheckExact(obj) || PyList_GET_SIZE(obj) == 0) return false; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(obj); ++i) { PyObject *val_obj = PyList_GET_ITEM(obj, i); if (!val_obj) return false; int iserr = 0; QObject *val = reinterpret_cast(sipForceConvertToType( val_obj, sipType_QObject, 0, SIP_NO_CONVERTORS, 0, &iserr)); if (iserr) return false; cpp.append(val); } return true; } PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarative_chimera_helpers.h0000644000076500000240000000300412536324426025711 0ustar philstaff00000000000000// This is the definition of the various Chimera helpers. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDECLARATIVECHIMERAHELPERS_H #define _QPYDECLARATIVECHIMERAHELPERS_H #include #include // Keep these in sync. with those defined in the Chimera class. typedef bool (*ToPyObjectFn)(const QVariant *, PyObject **); typedef bool (*ToQVariantFn)(PyObject *, QVariant *, bool *); typedef bool (*ToQVariantDataFn)(PyObject *, void *, int, bool *); bool qpydeclarative_to_pyobject(const QVariant *varp, PyObject **objp); bool qpydeclarative_to_qvariant(PyObject *obj, QVariant *varp, bool *okp); bool qpydeclarative_to_qvariant_data(PyObject *obj, void *data, int metatype, bool *okp); #endif PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarative_listwrapper.cpp0000644000076500000240000000655312536324426025502 0ustar philstaff00000000000000// This is the implementation of the ListWrapper class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include "sipAPIQtDeclarative.h" #include "qpydeclarative_listwrapper.h" // Create a wrapper from validated objects. ListWrapper::ListWrapper(PyObject *py_list, QObject *parent) : QObject(parent), _py_list(py_list) { Py_INCREF(_py_list); } // Destroy the wrapper. ListWrapper::~ListWrapper() { Py_DECREF(_py_list); } // Get a wrapper after validating any list elements. ListWrapper *ListWrapper::wrapper(PyObject *py_list, QObject *parent) { ListWrapper *lw; // A wrapper might be created every time the property getter is called, so // try and reuse an existing one. const QObjectList &children = parent->children(); for (int i = 0; i < children.count(); ++i) { lw = qobject_cast(children.at(i)); if (lw && lw->_py_list == py_list) return lw; } // Create a new one. lw = new ListWrapper(py_list, parent); for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(py_list); ++i) { int iserr = 0; void *cpp = sipForceConvertToType(PyList_GET_ITEM(py_list, i), sipType_QObject, 0, SIP_NO_CONVERTORS, 0, &iserr); if (iserr) { delete lw; return 0; } lw->qobject_list.append(reinterpret_cast(cpp)); } return lw; } // Append to the list. void ListWrapper::append(QObject *qobj, QList *qlist, QObject *el) { qlist->append(el); ListWrapper *lw = findWrapper(qobj, qlist); if (lw) { PyObject *el_obj = sipConvertFromType(el, sipType_QObject, 0); if (!el_obj || PyList_Append(lw->_py_list, el_obj) < 0) { PyErr_Print(); } Py_XDECREF(el_obj); } else { PyErr_Print(); } } // Clear the list. void ListWrapper::clear(QObject *qobj, QList *qlist) { qlist->clear(); ListWrapper *lw = findWrapper(qobj, qlist); if (!lw || PyList_SetSlice(lw->_py_list, 0, PyList_GET_SIZE(lw->_py_list), NULL) < 0) PyErr_Print(); } // Find the wrapper that handles a given C++ list. ListWrapper *ListWrapper::findWrapper(QObject *qobj, QList *qlist) { const QObjectList &children = qobj->children(); for (int i = 0; i < children.count(); ++i) { ListWrapper *lw = qobject_cast(children.at(i)); if (lw && &lw->qobject_list == qlist) return lw; } PyErr_SetString(PyExc_AttributeError, "unable to find list wrapper"); return 0; } PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarative_listwrapper.h0000644000076500000240000000300112536324426025130 0ustar philstaff00000000000000// This is the definition of the ListWrapper class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDECLARATIVELISTWRAPPER_H #define _QPYDECLARATIVELISTWRAPPER_H #include #include #include class ListWrapper : public QObject { Q_OBJECT public: static ListWrapper *wrapper(PyObject *py_list, QObject *parent); static void append(QObject *qobj, QList *qlist, QObject *el); static void clear(QObject *qobj, QList *qlist); QList qobject_list; private: ListWrapper(PyObject *py_list, QObject *parent); ~ListWrapper(); static ListWrapper *findWrapper(QObject *qobj, QList *qlist); PyObject *_py_list; }; #endif PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarative_post_init.cpp0000644000076500000240000000547512536324426025140 0ustar philstaff00000000000000// This is the initialisation support code for the QtDeclarative module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include "sipAPIQtDeclarative.h" #include "qpydeclarative_chimera_helpers.h" #include "qpydeclarativelistproperty.h" // Perform any required initialisation. void qpydeclarative_post_init(PyObject *module_dict) { // Initialise the QPyDeclarativeListProperty type. #if PY_MAJOR_VERSION >= 3 qpydeclarative_QPyDeclarativeListProperty_Type.tp_base = &PyUnicode_Type; #else qpydeclarative_QPyDeclarativeListProperty_Type.tp_base = &PyString_Type; #endif if (PyType_Ready(&qpydeclarative_QPyDeclarativeListProperty_Type) < 0) Py_FatalError("PyQt4.QtDeclarative: Failed to initialise QPyDeclarativeListProperty type"); // Create the only instance and add it to the module dictionary. PyObject *inst = PyObject_CallFunction( (PyObject *)&qpydeclarative_QPyDeclarativeListProperty_Type, const_cast("s"), "QDeclarativeListProperty"); if (!inst) Py_FatalError("PyQt4.QtDeclarative: Failed to create QPyDeclarativeListProperty instance"); if (PyDict_SetItemString(module_dict, "QPyDeclarativeListProperty", inst) < 0) Py_FatalError("PyQt4.QtDeclarative: Failed to set QPyDeclarativeListProperty instance"); // Get the Chimera helper registration functions. void (*register_to_pyobject)(ToPyObjectFn); register_to_pyobject = (void (*)(ToPyObjectFn))sipImportSymbol( "qpycore_register_to_pyobject"); register_to_pyobject(qpydeclarative_to_pyobject); void (*register_to_qvariant)(ToQVariantFn); register_to_qvariant = (void (*)(ToQVariantFn))sipImportSymbol( "qpycore_register_to_qvariant"); register_to_qvariant(qpydeclarative_to_qvariant); void (*register_to_qvariant_data)(ToQVariantDataFn); register_to_qvariant_data = (void (*)(ToQVariantDataFn))sipImportSymbol( "qpycore_register_to_qvariant_data"); register_to_qvariant_data(qpydeclarative_to_qvariant_data); } PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarativelistproperty.cpp0000644000076500000240000001153612536324426025544 0ustar philstaff00000000000000// This is the implementation of the QPyDeclarativeListProperty class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include "sipAPIQtDeclarative.h" #include "qpydeclarativelistproperty.h" #include "qpydeclarative_listwrapper.h" // Forward declarations. extern "C" { static PyObject *QPyDeclarativeListProperty_call(PyObject *, PyObject *args, PyObject *); } static void list_append(QDeclarativeListProperty *p, QObject *el); static QObject *list_at(QDeclarativeListProperty *p, int idx); static void list_clear(QDeclarativeListProperty *p); static int list_count(QDeclarativeListProperty *p); // The type's doc-string. PyDoc_STRVAR(QPyDeclarativeListProperty_doc, "QPyDeclarativeListProperty(QObject, list-of-QObject)"); // This implements the QPyDeclarativeListProperty Python type. It is a // sub-type of the standard string type that is callable. PyTypeObject qpydeclarative_QPyDeclarativeListProperty_Type = { PyVarObject_HEAD_INIT(NULL, 0) SIP_TPNAME_CAST("PyQt4.QtDeclarative.QPyDeclarativeListProperty"), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, QPyDeclarativeListProperty_call, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE| #if PY_VERSION_HEX >= 0x03000000 Py_TPFLAGS_UNICODE_SUBCLASS, #elif PY_VERSION_HEX >= 0x02060000 Py_TPFLAGS_STRING_SUBCLASS, #else 0, #endif QPyDeclarativeListProperty_doc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x02060000 0, #endif #if PY_VERSION_HEX >= 0x03040000 0, #endif }; // This is a factory for the wrapped QDeclarativeListProperty. static PyObject *QPyDeclarativeListProperty_call(PyObject *, PyObject *args, PyObject *) { PyTypeObject *qobject_type = sipTypeAsPyTypeObject(sipType_QObject); PyObject *qobj_obj, *list_obj; if (!PyArg_ParseTuple(args, #if PY_VERSION_HEX >= 0x02050000 "O!O!:QPyDeclarativeListProperty", #else const_cast("O!O!:QPyDeclarativeListProperty"), #endif qobject_type, &qobj_obj, &PyList_Type, &list_obj, &PyType_Type)) return 0; // Get the C++ QObject. int iserr = 0; QObject *qobj = reinterpret_cast(sipConvertToType(qobj_obj, sipType_QObject, 0, SIP_NOT_NONE|SIP_NO_CONVERTORS, 0, &iserr)); if (iserr) return 0; // Get a list wrapper with the C++ QObject as its parent. ListWrapper *list_wrapper = ListWrapper::wrapper(list_obj, qobj); if (!list_wrapper) return 0; // Create the C++ QDeclarativeListProperty with the list as the // data. QDeclarativeListProperty *prop = new QDeclarativeListProperty(qobj, &list_wrapper->qobject_list, list_append, list_count, list_at, list_clear); // Convert it to a Python object. static const sipTypeDef *mapped_type = 0; if (!mapped_type) mapped_type = sipFindType("QDeclarativeListProperty"); Q_ASSERT(mapped_type); // Make sure ownership is with Python. PyObject *prop_obj = sipConvertFromNewType(prop, mapped_type, qobj_obj); if (!prop_obj) { delete prop; return 0; } return prop_obj; } // Append to the list. static void list_append(QDeclarativeListProperty *p, QObject *el) { ListWrapper::append(p->object, reinterpret_cast *>(p->data), el); } // Get the length of the list. static int list_count(QDeclarativeListProperty *p) { return reinterpret_cast *>(p->data)->count(); } // Get an item from the list. static QObject *list_at(QDeclarativeListProperty *p, int idx) { return reinterpret_cast *>(p->data)->at(idx); } // Clear the list. static void list_clear(QDeclarativeListProperty *p) { ListWrapper::clear(p->object, reinterpret_cast *>(p->data)); } PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarativelistproperty.h0000644000076500000240000000221412536324426025202 0ustar philstaff00000000000000// This is the definition of the QPyDeclarativeListProperty class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDECLARATIVELISTPROPERTY_H #define _QPYDECLARATIVELISTPROPERTY_H #include extern "C" { // This implements the QPyDeclarativeListProperty type. extern PyTypeObject qpydeclarative_QPyDeclarativeListProperty_Type; } #endif PyQt-x11-gpl-4.11.4/qpy/QtDeclarative/qpydeclarativepropertyvaluesource.h0000644000076500000240000000274212536324426026572 0ustar philstaff00000000000000// This is the definition and implementation of the // QPyDeclarativePropertyValueSource class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDECLARATIVEPROPERTYVALUESOURCE_H #define _QPYDECLARATIVEPROPERTYVALUESOURCE_H #include #include class QPyDeclarativePropertyValueSource : public QObject, public QDeclarativePropertyValueSource { Q_OBJECT Q_INTERFACES(QDeclarativePropertyValueSource) public: explicit QPyDeclarativePropertyValueSource(QObject *parent = 0) : QObject(parent) {} ~QPyDeclarativePropertyValueSource() {} private: QPyDeclarativePropertyValueSource(const QPyDeclarativePropertyValueSource &); }; #endif PyQt-x11-gpl-4.11.4/qpy/QtDesigner/0000755000076500000240000000000012536324426016631 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/qpy/QtDesigner/qpydesigner.pro0000644000076500000240000000267412536324426021716 0ustar philstaff00000000000000# This is the qmake project file for the QPy support code for the QtDesigner # module. Note that it is not required by configure-ng.py. # # Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. CONFIG += static plugin warn_on greaterThan(QT_MAJOR_VERSION, 4) { QT += designer } lessThan(QT_MAJOR_VERSION, 5) { CONFIG += designer } TARGET = qpydesigner TEMPLATE = lib HEADERS = \ qpydesignercontainerextension.h \ qpydesignercustomwidgetcollectionplugin.h \ qpydesignercustomwidgetplugin.h \ qpydesignermembersheetextension.h \ qpydesignerpropertysheetextension.h \ qpydesignertaskmenuextension.h PyQt-x11-gpl-4.11.4/qpy/QtDesigner/qpydesignercontainerextension.h0000644000076500000240000000260212536324426025174 0ustar philstaff00000000000000// This is the definition and implementation of the // QPyDesignerContainerExtension class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDESIGNERCONTAINEREXTENSION_H #define _QPYDESIGNERCONTAINEREXTENSION_H #include #include class QPyDesignerContainerExtension : public QObject, public QDesignerContainerExtension { Q_OBJECT Q_INTERFACES(QDesignerContainerExtension) public: QPyDesignerContainerExtension(QObject *parent) : QObject(parent) {}; private: QPyDesignerContainerExtension(const QPyDesignerContainerExtension &); }; #endif PyQt-x11-gpl-4.11.4/qpy/QtDesigner/qpydesignercustomwidgetcollectionplugin.h0000644000076500000240000000276212536324426027275 0ustar philstaff00000000000000// This is the definition and implementation of the // QPyDesignerCustomWidgetCollectionPlugin class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDESIGNERCUSTOMWIDGETCOLLECTIONPLUGIN_H #define _QPYDESIGNERCUSTOMWIDGETCOLLECTIONPLUGIN_H #include #include class QPyDesignerCustomWidgetCollectionPlugin : public QObject, public QDesignerCustomWidgetCollectionInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetCollectionInterface) public: QPyDesignerCustomWidgetCollectionPlugin(QObject *parent = 0) : QObject(parent) {} private: QPyDesignerCustomWidgetCollectionPlugin(const QPyDesignerCustomWidgetCollectionPlugin &); }; #endif PyQt-x11-gpl-4.11.4/qpy/QtDesigner/qpydesignercustomwidgetplugin.h0000644000076500000240000000261612536324426025217 0ustar philstaff00000000000000// This is the definition and implementation of the // QPyDesignerCustomWidgetPlugin class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDESIGNERCUSTOMWIDGETPLUGIN_H #define _QPYDESIGNERCUSTOMWIDGETPLUGIN_H #include #include class QPyDesignerCustomWidgetPlugin : public QObject, public QDesignerCustomWidgetInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetInterface) public: QPyDesignerCustomWidgetPlugin(QObject *parent = 0) : QObject(parent) {} private: QPyDesignerCustomWidgetPlugin(const QPyDesignerCustomWidgetPlugin &); }; #endif PyQt-x11-gpl-4.11.4/qpy/QtDesigner/qpydesignermembersheetextension.h0000644000076500000240000000262612536324426025520 0ustar philstaff00000000000000// This is the definition and implementation of the // QPyDesignerMemberSheetExtension class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDESIGNERMEMBERSHEETEXTENSION_H #define _QPYDESIGNERMEMBERSHEETEXTENSION_H #include #include class QPyDesignerMemberSheetExtension : public QObject, public QDesignerMemberSheetExtension { Q_OBJECT Q_INTERFACES(QDesignerMemberSheetExtension) public: QPyDesignerMemberSheetExtension(QObject *parent) : QObject(parent) {}; private: QPyDesignerMemberSheetExtension(const QPyDesignerMemberSheetExtension &); }; #endif PyQt-x11-gpl-4.11.4/qpy/QtDesigner/qpydesignerpropertysheetextension.h0000644000076500000240000000265212536324426026134 0ustar philstaff00000000000000// This is the definition and implementation of the // QPyDesignerPropertySheetExtension class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDESIGNERPROPERTYSHEETEXTENSION_H #define _QPYDESIGNERPROPERTYSHEETEXTENSION_H #include #include class QPyDesignerPropertySheetExtension : public QObject, public QDesignerPropertySheetExtension { Q_OBJECT Q_INTERFACES(QDesignerPropertySheetExtension) public: QPyDesignerPropertySheetExtension(QObject *parent) : QObject(parent) {}; private: QPyDesignerPropertySheetExtension(const QPyDesignerPropertySheetExtension &); }; #endif PyQt-x11-gpl-4.11.4/qpy/QtDesigner/qpydesignertaskmenuextension.h0000644000076500000240000000257012536324426025045 0ustar philstaff00000000000000// This is the definition and implementation of the // QPyDesignerTaskMenuExtension class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYDESIGNERTASKMENUEXTENSION_H #define _QPYDESIGNERTASKMENUEXTENSION_H #include #include class QPyDesignerTaskMenuExtension : public QObject, public QDesignerTaskMenuExtension { Q_OBJECT Q_INTERFACES(QDesignerTaskMenuExtension) public: QPyDesignerTaskMenuExtension(QObject *parent) : QObject(parent) {}; private: QPyDesignerTaskMenuExtension(const QPyDesignerTaskMenuExtension &); }; #endif PyQt-x11-gpl-4.11.4/qpy/QtGui/0000755000076500000240000000000012536324426015615 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/qpy/QtGui/qpygui.pro0000644000076500000240000000206112536324426017654 0ustar philstaff00000000000000# This is the qmake project file for the QPy support code for the QtGui module. # Note that it is not required by configure-ng.py. # # Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. CONFIG += static warn_on TARGET = qpygui TEMPLATE = lib HEADERS = \ qpytextobject.h PyQt-x11-gpl-4.11.4/qpy/QtGui/qpytextobject.h0000644000076500000240000000237612536324426020703 0ustar philstaff00000000000000// This is the definition and implementation of the QPyTextObject class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYTEXTOBJECT_H #define _QPYTEXTOBJECT_H #include #include class QPyTextObject : public QObject, public QTextObjectInterface { Q_OBJECT Q_INTERFACES(QTextObjectInterface) public: QPyTextObject(QObject *parent = 0) : QObject(parent) {}; private: QPyTextObject(const QPyTextObject &); }; #endif PyQt-x11-gpl-4.11.4/qpy/QtOpenGL/0000755000076500000240000000000012536324426016215 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/qpy/QtOpenGL/qpyopengl.pro0000644000076500000240000000226712536324426020764 0ustar philstaff00000000000000# This is the qmake project file for the QPy support code for the QtOpenGL # module. Note that it is not required by configure-ng.py. # # Copyright (c) 2015 Riverbank Computing Limited # # This file is part of PyQt4. # # This file may be used under the terms of the GNU General Public License # version 3.0 as published by the Free Software Foundation and appearing in # the file LICENSE included in the packaging of this file. Please review the # following information to ensure the GNU General Public License version 3.0 # requirements will be met: http://www.gnu.org/copyleft/gpl.html. # # If you do not wish to use this file under the terms of the GPL version 3.0 # then you may purchase a commercial license. For more information contact # info@riverbankcomputing.com. # # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. QT += opengl CONFIG += static warn_on TARGET = qpyopengl TEMPLATE = lib SOURCES = \ qpyopengl_attribute_array.cpp \ qpyopengl_uniform_value_array.cpp HEADERS = \ qpyopengl_api.h PyQt-x11-gpl-4.11.4/qpy/QtOpenGL/qpyopengl_api.h0000644000076500000240000000265612536324426021246 0ustar philstaff00000000000000// This defines the API provided by this library. It must not be explicitly // included by the library itself. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _QPYOPENGL_API_H #define _QPYOPENGL_API_H #include #if QT_VERSION >= 0x040600 #include // Support for shader arrays. const GLfloat *qpyopengl_attribute_array(PyObject *values, PyObject *shader, PyObject *key, int *tsize, sipErrorState *estate); const void *qpyopengl_uniform_value_array(PyObject *values, PyObject *shader, PyObject *key, const sipTypeDef **array_type, int *array_len, int *tsize, sipErrorState *estate); #endif #endif PyQt-x11-gpl-4.11.4/qpy/QtOpenGL/qpyopengl_attribute_array.cpp0000644000076500000240000001672012536324426024226 0ustar philstaff00000000000000// This contains the support for shader attribute arrays. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #if QT_VERSION >= 0x040600 #include #include #include #include #include "sipAPIQtOpenGL.h" // Forward declaratations. #if defined(SIP_USE_PYCAPSULE) static void array_dtor(PyObject *capsule); #else static void array_dtor(void *array); #endif // Parse a Python object as a sequence of either QVector[234]D instances or a // sequence of sequence of floats and return an array that can be passed to // QGLShaderProgram::setAttributeArray(). The array is destroyed only when the // shader is garbage collected or when replaced by another array. const GLfloat *qpyopengl_attribute_array(PyObject *values, PyObject *shader, PyObject *key, int *tsize, sipErrorState *estate) { // Check the key was created correctly. if (!key) { *estate = sipErrorFail; return 0; } // Get the dict that holds the converted arrays. PyObject *dict = ((sipSimpleWrapper *)shader)->user; if (!dict) { dict = PyDict_New(); if (!dict) { Py_DECREF(key); *estate = sipErrorFail; return 0; } ((sipSimpleWrapper *)shader)->user = dict; } // Check that values is a non-empty sequence. values = PySequence_Fast(values, "an attribute array must be a sequence"); if (!values) { Py_DECREF(key); *estate = sipErrorContinue; return 0; } SIP_SSIZE_T nr_items = PySequence_Fast_GET_SIZE(values); if (nr_items < 1) { PyErr_SetString(PyExc_TypeError, "an attribute array must have at least one element"); Py_DECREF(key); Py_DECREF(values); *estate = sipErrorFail; return 0; } // The first element determines the type expected. PyObject *itm = PySequence_Fast_GET_ITEM(values, 0); const sipTypeDef *td; SIP_SSIZE_T nr_dim; if (sipCanConvertToType(itm, sipType_QVector2D, SIP_NOT_NONE)) { td = sipType_QVector2D; nr_dim = 2; } else if (sipCanConvertToType(itm, sipType_QVector3D, SIP_NOT_NONE)) { td = sipType_QVector3D; nr_dim = 3; } else if (sipCanConvertToType(itm, sipType_QVector4D, SIP_NOT_NONE)) { td = sipType_QVector4D; nr_dim = 4; } else if (PySequence_Check(itm) && (nr_dim = PySequence_Size(itm)) >= 1) { td = 0; } else { PyErr_SetString(PyExc_TypeError, "an attribute array must be a sequence of QVector2D, " "QVector3D, QVector4D, or a sequence of sequences of floats"); Py_DECREF(key); Py_DECREF(values); *estate = sipErrorFail; return 0; } // Create the array that will be returned. GLfloat *array = new GLfloat[nr_items * nr_dim]; // Convert the values. GLfloat *ap = array; for (SIP_SSIZE_T i = 0; i < nr_items; ++i) { int iserr = 0; itm = PySequence_Fast_GET_ITEM(values, i); if (td) { void *cpp; cpp = sipForceConvertToType(itm, td, 0, SIP_NOT_NONE | SIP_NO_CONVERTORS, 0, &iserr); if (iserr) { PyErr_Format(PyExc_TypeError, "attribute array elements should all be '%s', not '%s'", sipTypeAsPyTypeObject(td)->tp_name, Py_TYPE(itm)->tp_name); } else if (td == sipType_QVector2D) { QVector2D *v = reinterpret_cast(cpp); *ap++ = v->x(); *ap++ = v->y(); } else if (td == sipType_QVector3D) { QVector3D *v = reinterpret_cast(cpp); *ap++ = v->x(); *ap++ = v->y(); *ap++ = v->z(); } else if (td == sipType_QVector4D) { QVector4D *v = reinterpret_cast(cpp); *ap++ = v->x(); *ap++ = v->y(); *ap++ = v->z(); *ap++ = v->w(); } } else { itm = PySequence_Fast(itm, "attribute array elements should all be sequences"); if (itm) { if (PySequence_Fast_GET_SIZE(itm) != nr_dim) { PyErr_Format(PyExc_TypeError, "attribute array elements should all be sequences " #if PY_VERSION_HEX >= 0x02050000 "of length %zd", #else "of length %d", #endif nr_dim); Py_DECREF(itm); iserr = 1; } else { PyErr_Clear(); for (SIP_SSIZE_T j = 0; j < nr_dim; ++j) *ap++ = PyFloat_AsDouble( PySequence_Fast_GET_ITEM(itm, j)); if (PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "attribute array elements should all be " "sequences of floats"); Py_DECREF(itm); iserr = 1; } } } else { iserr = 1; } } if (iserr) { Py_DECREF(key); Py_DECREF(values); delete[] array; *estate = sipErrorFail; return 0; } } Py_DECREF(values); *tsize = nr_dim; // Wrap the array in a Python object so that it won't leak. #if defined(SIP_USE_PYCAPSULE) PyObject *array_obj = PyCapsule_New(array, 0, array_dtor); #else PyObject *array_obj = PyCObject_FromVoidPtr(array, array_dtor); #endif if (!array_obj) { Py_DECREF(key); delete[] array; *estate = sipErrorFail; return 0; } int rc = PyDict_SetItem(dict, key, array_obj); Py_DECREF(key); Py_DECREF(array_obj); if (rc < 0) { *estate = sipErrorFail; return 0; } return array; } // The dtor for the saved attribute array. #if defined(SIP_USE_PYCAPSULE) static void array_dtor(PyObject *capsule) { delete[] reinterpret_cast(PyCapsule_GetPointer(capsule, 0)); } #else static void array_dtor(void *array) { delete[] reinterpret_cast(array); } #endif #endif PyQt-x11-gpl-4.11.4/qpy/QtOpenGL/qpyopengl_uniform_value_array.cpp0000644000076500000240000003155412536324426025100 0ustar philstaff00000000000000// This contains the support for shader uniform value arrays. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #include #include #include #if QT_VERSION >= 0x040600 #include #include #include #include #include #include #include #include #include #include #include #include #include #include "sipAPIQtOpenGL.h" // Forward declaratations. static void delete_array(void *array, const sipTypeDef *td); #if defined(SIP_USE_PYCAPSULE) static void array_dtor(PyObject *capsule); #else static void array_dtor(void *array, void *td); #endif // Parse a Python object as a sequence of either QVector[234]D or // QMatrix[234]x[234] instances, or a sequence of sequence of floats and return // an array that can be passed to QGLShaderProgram::setUniformValueArray(). // The array is destroyed only when the shader is garbage collected or when // replaced by another array. const void *qpyopengl_uniform_value_array(PyObject *values, PyObject *shader, PyObject *key, const sipTypeDef **array_type, int *array_len, int *tsize, sipErrorState *estate) { // Check the key was created correctly. if (!key) { *estate = sipErrorFail; return 0; } // Get the dict that holds the converted arrays. PyObject *dict = ((sipSimpleWrapper *)shader)->user; if (!dict) { dict = PyDict_New(); if (!dict) { Py_DECREF(key); *estate = sipErrorFail; return 0; } ((sipSimpleWrapper *)shader)->user = dict; } // Check that values is a non-empty sequence. values = PySequence_Fast(values, "a uniform value array must be a sequence"); if (!values) { Py_DECREF(key); *estate = sipErrorContinue; return 0; } SIP_SSIZE_T nr_items = PySequence_Fast_GET_SIZE(values); if (nr_items < 1) { PyErr_SetString(PyExc_TypeError, "a uniform value array must have at least one element"); Py_DECREF(key); Py_DECREF(values); *estate = sipErrorFail; return 0; } // The first element determines the type expected. PyObject *itm = PySequence_Fast_GET_ITEM(values, 0); const sipTypeDef *td; SIP_SSIZE_T nr_dim = 0; void *array; if (sipCanConvertToType(itm, sipType_QVector2D, SIP_NOT_NONE)) { td = sipType_QVector2D; array = new QVector2D[nr_items]; } else if (sipCanConvertToType(itm, sipType_QVector3D, SIP_NOT_NONE)) { td = sipType_QVector3D; array = new QVector3D[nr_items]; } else if (sipCanConvertToType(itm, sipType_QVector4D, SIP_NOT_NONE)) { td = sipType_QVector4D; array = new QVector4D[nr_items]; } else if (sipCanConvertToType(itm, sipType_QMatrix2x2, SIP_NOT_NONE)) { td = sipType_QMatrix2x2; array = new QMatrix2x2[nr_items]; } else if (sipCanConvertToType(itm, sipType_QMatrix2x3, SIP_NOT_NONE)) { td = sipType_QMatrix2x3; array = new QMatrix2x3[nr_items]; } else if (sipCanConvertToType(itm, sipType_QMatrix2x4, SIP_NOT_NONE)) { td = sipType_QMatrix2x4; array = new QMatrix2x4[nr_items]; } else if (sipCanConvertToType(itm, sipType_QMatrix3x2, SIP_NOT_NONE)) { td = sipType_QMatrix3x2; array = new QMatrix3x2[nr_items]; } else if (sipCanConvertToType(itm, sipType_QMatrix3x3, SIP_NOT_NONE)) { td = sipType_QMatrix3x3; array = new QMatrix3x3[nr_items]; } else if (sipCanConvertToType(itm, sipType_QMatrix3x4, SIP_NOT_NONE)) { td = sipType_QMatrix3x4; array = new QMatrix3x4[nr_items]; } else if (sipCanConvertToType(itm, sipType_QMatrix4x2, SIP_NOT_NONE)) { td = sipType_QMatrix4x2; array = new QMatrix4x2[nr_items]; } else if (sipCanConvertToType(itm, sipType_QMatrix4x3, SIP_NOT_NONE)) { td = sipType_QMatrix4x3; array = new QMatrix4x3[nr_items]; } else if (sipCanConvertToType(itm, sipType_QMatrix4x4, SIP_NOT_NONE)) { td = sipType_QMatrix4x4; array = new QMatrix4x4[nr_items]; } else if (PySequence_Check(itm) && (nr_dim = PySequence_Size(itm)) >= 1) { td = 0; array = new GLfloat[nr_items * nr_dim]; } else { PyErr_SetString(PyExc_TypeError, "a uniform value array must be a sequence of QVector2D, " "QVector3D, QVector4D, QMatrix2x2, QMatrix2x3, QMatrix2x4, " "QMatrix3x2, QMatrix3x3, QMatrix3x4, QMatrix4x2, QMatrix4x3, " "QMatrix4x4, or a sequence of sequences of floats"); Py_DECREF(key); Py_DECREF(values); *estate = sipErrorFail; return 0; } // Convert the values. for (SIP_SSIZE_T i = 0; i < nr_items; ++i) { int iserr = 0; itm = PySequence_Fast_GET_ITEM(values, i); if (td) { void *cpp; cpp = sipForceConvertToType(itm, td, 0, SIP_NOT_NONE | SIP_NO_CONVERTORS, 0, &iserr); if (iserr) { PyErr_Format(PyExc_TypeError, "uniform value array elements should all be '%s', not " "'%s'", sipTypeAsPyTypeObject(td)->tp_name, Py_TYPE(itm)->tp_name); } else if (td == sipType_QVector2D) { QVector2D *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QVector3D) { QVector3D *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QVector4D) { QVector4D *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QMatrix2x2) { QMatrix2x2 *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QMatrix2x3) { QMatrix2x3 *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QMatrix2x4) { QMatrix2x4 *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QMatrix3x2) { QMatrix3x2 *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QMatrix3x3) { QMatrix3x3 *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QMatrix3x4) { QMatrix3x4 *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QMatrix4x2) { QMatrix4x2 *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QMatrix4x3) { QMatrix4x3 *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } else if (td == sipType_QMatrix4x4) { QMatrix4x4 *a = reinterpret_cast(array); a[i] = *reinterpret_cast(cpp); } } else { itm = PySequence_Fast(itm, "uniform value array elements should all be sequences"); if (itm) { if (PySequence_Fast_GET_SIZE(itm) != nr_dim) { PyErr_Format(PyExc_TypeError, "uniform value array elements should all be " "sequences of length " #if PY_VERSION_HEX >= 0x02050000 "%zd", #else "%d", #endif nr_dim); Py_DECREF(itm); iserr = 1; } else { GLfloat *ap = reinterpret_cast(array); PyErr_Clear(); for (SIP_SSIZE_T j = 0; j < nr_dim; ++j) *ap++ = PyFloat_AsDouble( PySequence_Fast_GET_ITEM(itm, j)); if (PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "uniform value array elements should all be " "sequences of floats"); Py_DECREF(itm); iserr = 1; } } } else { iserr = 1; } } if (iserr) { Py_DECREF(key); Py_DECREF(values); delete_array(array, td); *estate = sipErrorFail; return 0; } } Py_DECREF(values); // Wrap the array in a Python object so that it won't leak. #if defined(SIP_USE_PYCAPSULE) PyObject *array_obj = PyCapsule_New(array, 0, array_dtor); if (array_obj && PyCapsule_SetContext(array_obj, const_cast(td)) != 0) { Py_DECREF(array_obj); array_obj = 0; } #else PyObject *array_obj = PyCObject_FromVoidPtrAndDesc(array, const_cast(td), array_dtor); #endif if (!array_obj) { Py_DECREF(key); delete_array(array, td); *estate = sipErrorFail; return 0; } int rc = PyDict_SetItem(dict, key, array_obj); Py_DECREF(key); Py_DECREF(array_obj); if (rc < 0) { *estate = sipErrorFail; return 0; } *array_type = td; *array_len = nr_items; *tsize = nr_dim; return array; } // Do the actual work of deleting the array. static void delete_array(void *array, const sipTypeDef *td) { if (td == sipType_QVector2D) delete[] reinterpret_cast(array); else if (td == sipType_QVector3D) delete[] reinterpret_cast(array); else if (td == sipType_QVector4D) delete[] reinterpret_cast(array); else if (td == sipType_QMatrix2x2) delete[] reinterpret_cast(array); else if (td == sipType_QMatrix2x3) delete[] reinterpret_cast(array); else if (td == sipType_QMatrix2x4) delete[] reinterpret_cast(array); else if (td == sipType_QMatrix3x2) delete[] reinterpret_cast(array); else if (td == sipType_QMatrix3x3) delete[] reinterpret_cast(array); else if (td == sipType_QMatrix3x4) delete[] reinterpret_cast(array); else if (td == sipType_QMatrix4x2) delete[] reinterpret_cast(array); else if (td == sipType_QMatrix4x3) delete[] reinterpret_cast(array); else if (td == sipType_QMatrix4x4) delete[] reinterpret_cast(array); else delete[] reinterpret_cast(array); } // The dtor for the saved array. #if defined(SIP_USE_PYCAPSULE) static void array_dtor(PyObject *capsule) { delete_array(PyCapsule_GetPointer(capsule, 0), reinterpret_cast( PyCapsule_GetContext(capsule))); } #else static void array_dtor(void *array, void *td) { delete_array(array, reinterpret_cast(td)); } #endif #endif PyQt-x11-gpl-4.11.4/README0000644000076500000240000000335112536324420014627 0ustar philstaff00000000000000 PyQt4 - Python Bindings for the Qt Toolkit INTRODUCTION These are the Python bindings for Qt v4 and v5. You must also have the SIP Python bindings generator installed. The homepage is http://www.riverbankcomputing.com/software/pyqt/. The homepage of SIP is http://www.riverbankcomputing.com/software/sip/. COMMERCIAL VERSION If you have the Commercial version of PyQt4 then you should also have a license file that you downloaded separately. The license file must be copied to the "sip" directory before starting to build PyQt4. INSTALLATION Check for any other README files in this directory that relate to your particular platform. Feel free to contribute a README for your platform or to provide updates to any existing documentation. The first step is to configure PyQt4 by running the following command. python configure-ng.py This assumes that the correct Python interpreter is on your path. Something like the following may be appropriate on Windows. c:\python33\python configure-ng.py If you have multiple versions of Python installed then make sure you use the interpreter for which you wish to generate bindings for. The configure-ng.py script takes many options. Use the "--help" command line option to display a full list of the available options. The next step is to build PyQt4 using your platform's make command. make The final step is to install PyQt4 by running the following command. (Depending on your system you may require root or administrator privileges.) make install THE REST OF THE DISTRIBUTION The "examples" directory contain some examples of Python scripts, including versions of the standard Qt tutorials and examples. The "doc" directory contains HTML documentation for the bindings. PyQt-x11-gpl-4.11.4/sip/0000755000076500000240000000000012536324426014546 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/phonon/0000755000076500000240000000000012536324426016047 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/phonon/abstractaudiooutput.sip0000644000076500000240000000234712536324426022700 0ustar philstaff00000000000000// abstractaudiooutput.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class AbstractAudioOutput : QObject, Phonon::MediaNode /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~AbstractAudioOutput(); }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/abstractvideooutput.sip0000644000076500000240000000225112536324426022677 0ustar philstaff00000000000000// abstractvideooutput.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class AbstractVideoOutput : Phonon::MediaNode /NoDefaultCtors/ { %TypeHeaderCode #include %End }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/audiooutput.sip0000644000076500000240000000372412536324426021154 0ustar philstaff00000000000000// audiooutput.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class AudioOutput : Phonon::AbstractAudioOutput { %TypeHeaderCode #include %End public: AudioOutput(Phonon::Category category, QObject *parent /TransferThis/ = 0); explicit AudioOutput(QObject *parent /TransferThis/ = 0); QString name() const; qreal volume() const; qreal volumeDecibel() const; Phonon::Category category() const; Phonon::AudioOutputDevice outputDevice() const; bool isMuted() const; public slots: void setName(const QString &newName); void setVolume(qreal newVolume); void setVolumeDecibel(qreal newVolumeDecibel); bool setOutputDevice(const Phonon::AudioOutputDevice &newAudioOutputDevice); void setMuted(bool mute); signals: void volumeChanged(qreal newVolume); void mutedChanged(bool); void outputDeviceChanged(const Phonon::AudioOutputDevice &newAudioOutputDevice); }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/backendcapabilities.sip0000644000076500000240000000354212536324426022531 0ustar philstaff00000000000000// backendcapabilities.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End namespace BackendCapabilities { %TypeHeaderCode #include %End class Notifier : QObject /NoDefaultCtors,PyQtNoQMetaObject/ { %TypeHeaderCode #include %End signals: void capabilitiesChanged(); void availableAudioOutputDevicesChanged(); %If (Qt_4_5_0 -) void availableAudioCaptureDevicesChanged(); %End }; Phonon::BackendCapabilities::Notifier *notifier(); QStringList availableMimeTypes(); bool isMimeTypeAvailable(const QString &mimeType); QList availableAudioOutputDevices(); QList availableAudioEffects(); %If (Qt_4_5_0 -) QList availableAudioCaptureDevices(); %End }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/effect.sip0000644000076500000240000000301112536324426020013 0ustar philstaff00000000000000// effect.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class Effect : QObject, Phonon::MediaNode { %TypeHeaderCode #include %End public: Effect(const Phonon::EffectDescription &description, QObject *parent /TransferThis/ = 0); virtual ~Effect(); Phonon::EffectDescription description() const; QList parameters() const; QVariant parameterValue(const Phonon::EffectParameter &) const; void setParameterValue(const Phonon::EffectParameter &, const QVariant &value); }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/effectparameter.sip0000644000076500000240000000456712536324426021735 0ustar philstaff00000000000000// effectparameter.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %ModuleCode #include %End %End %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class EffectParameter { %TypeHeaderCode #include %End public: enum Hint { ToggledHint, LogarithmicHint, IntegerHint, }; typedef QFlags Hints; EffectParameter(int parameterId, const QString &name, QFlags hints, const QVariant &defaultValue, const QVariant &min /DocValue="Py_v3:None"/ = QVariant(), const QVariant &max /DocValue="Py_v3:None"/ = QVariant(), const QVariantList &values /DocValue="[]"/ = QVariantList(), const QString &description /DocValue="Py_v3:''"/ = QString()); EffectParameter(const Phonon::EffectParameter &rhs); ~EffectParameter(); const QString &name() const; const QString &description() const; QVariant::Type type() const; bool isLogarithmicControl() const; QVariant minimumValue() const; QVariant maximumValue() const; QVariant defaultValue() const; QVariantList possibleValues() const; long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End }; }; %End %If (Qt_4_4_0 -) QFlags operator|(Phonon::EffectParameter::Hint f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/phonon/effectwidget.sip0000644000076500000240000000236212536324426021227 0ustar philstaff00000000000000// effectwidget.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class EffectWidget : QWidget { %TypeHeaderCode #include %End public: EffectWidget(Phonon::Effect *effect, QWidget *parent /TransferThis/ = 0); virtual ~EffectWidget(); }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/mediacontroller.sip0000644000076500000240000000636012536324426021754 0ustar philstaff00000000000000// mediacontroller.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %ModuleCode #include %End %End %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class MediaController : QObject { %TypeHeaderCode #include %End public: enum Feature { Angles, Chapters, Titles, }; typedef QFlags Features; MediaController(Phonon::MediaObject *parent /TransferThis/); virtual ~MediaController(); QFlags supportedFeatures() const; int availableAngles() const; int currentAngle() const; int availableChapters() const; int currentChapter() const; int availableTitles() const; int currentTitle() const; bool autoplayTitles() const; public slots: void setCurrentAngle(int angleNumber); void setCurrentChapter(int chapterNumber); void setCurrentTitle(int titleNumber); void setAutoplayTitles(bool); void nextTitle(); void previousTitle(); signals: void availableAnglesChanged(int availableAngles); void angleChanged(int angleNumber); void availableChaptersChanged(int availableChapters); void chapterChanged(int chapterNumber); void availableTitlesChanged(int availableTitles); void titleChanged(int titleNumber); public: %If (Qt_4_5_0 -) Phonon::AudioChannelDescription currentAudioChannel() const; %End %If (Qt_4_5_0 -) Phonon::SubtitleDescription currentSubtitle() const; %End %If (Qt_4_5_0 -) QList availableAudioChannels() const; %End %If (Qt_4_5_0 -) QList availableSubtitles() const; %End %If (Qt_4_5_0 -) void setCurrentAudioChannel(const Phonon::AudioChannelDescription &stream); %End %If (Qt_4_5_0 -) void setCurrentSubtitle(const Phonon::SubtitleDescription &stream); %End signals: %If (Qt_4_5_0 -) void availableSubtitlesChanged(); %End %If (Qt_4_5_0 -) void availableAudioChannelsChanged(); %End }; }; %End %If (Qt_4_4_0 -) QFlags operator|(Phonon::MediaController::Feature f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/phonon/medianode.sip0000644000076500000240000000242712536324426020516 0ustar philstaff00000000000000// medianode.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class MediaNode /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~MediaNode(); bool isValid() const; QList inputPaths() const; QList outputPaths() const; }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/mediaobject.sip0000644000076500000240000001154412536324426021037 0ustar philstaff00000000000000// mediaobject.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class MediaObject : QObject, Phonon::MediaNode { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_Phonon__Effect, &sipType_Phonon_Effect, -1, 1}, {sipName_Phonon__EffectWidget, &sipType_Phonon_EffectWidget, -1, 2}, {sipName_Phonon__MediaObject, &sipType_Phonon_MediaObject, -1, 3}, {sipName_Phonon__VideoPlayer, &sipType_Phonon_VideoPlayer, -1, 4}, {sipName_Phonon__VideoWidget, &sipType_Phonon_VideoWidget, -1, 5}, {sipName_Phonon__SeekSlider, &sipType_Phonon_SeekSlider, -1, 6}, {sipName_Phonon__EffectDescriptionModel, &sipType_Phonon_EffectDescriptionModel, -1, 7}, {sipName_Phonon__AbstractAudioOutput, &sipType_Phonon_AbstractAudioOutput, 12, 8}, {sipName_Phonon__AudioOutputDeviceModel, &sipType_Phonon_AudioOutputDeviceModel, -1, 9}, {sipName_Phonon__BackendCapabilities__Notifier, &sipType_Phonon_BackendCapabilities_Notifier, -1, 10}, {sipName_Phonon__MediaController, &sipType_Phonon_MediaController, -1, 11}, {sipName_Phonon__VolumeSlider, &sipType_Phonon_VolumeSlider, -1, -1}, {sipName_Phonon__AudioOutput, &sipType_Phonon_AudioOutput, -1, -1}, }; int i = 0; sipType = 0; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: MediaObject(QObject *parent /TransferThis/ = 0); virtual ~MediaObject(); Phonon::State state() const; bool hasVideo() const; bool isSeekable() const; qint32 tickInterval() const; QStringList metaData(const QString &key) const; QStringList metaData(Phonon::MetaData key) const; QMultiMap metaData() const; QString errorString() const; Phonon::ErrorType errorType() const; Phonon::MediaSource currentSource() const; void setCurrentSource(const Phonon::MediaSource &source); QList queue() const; void setQueue(const QList &sources); void setQueue(const QList &urls); void enqueue(const Phonon::MediaSource &source); void enqueue(const QList &sources); void enqueue(const QList &urls); void clearQueue(); qint64 currentTime() const; qint64 totalTime() const; qint64 remainingTime() const; qint32 prefinishMark() const; void setPrefinishMark(qint32 msecToEnd); qint32 transitionTime() const; void setTransitionTime(qint32 msec); public slots: void setTickInterval(qint32 newTickInterval); void play(); void pause(); void stop(); void seek(qint64 time); %If (Qt_4_5_0 -) void clear(); %End signals: void stateChanged(Phonon::State newstate, Phonon::State oldstate); void tick(qint64 time); void metaDataChanged(); void seekableChanged(bool isSeekable); void hasVideoChanged(bool hasVideo); void bufferStatus(int percentFilled); void finished(); void currentSourceChanged(const Phonon::MediaSource &newSource); void aboutToFinish(); void prefinishMarkReached(qint32 msecToEnd); void totalTimeChanged(qint64 newTotalTime); }; Phonon::MediaObject *createPlayer(Phonon::Category category, const Phonon::MediaSource &source = Phonon::MediaSource()) /Factory/; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/mediasource.sip0000644000076500000240000000364112536324426021070 0ustar philstaff00000000000000// mediasource.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class MediaSource { %TypeHeaderCode #include %End public: enum Type { Invalid, LocalFile, Url, Disc, Stream, %If (Qt_4_5_0 -) Empty, %End }; MediaSource(const QString &fileName); MediaSource(const QUrl &url); MediaSource(Phonon::DiscType discType, const QString &deviceName /DocValue="Py_v3:''"/ = QString()); MediaSource(QIODevice *ioDevice); MediaSource(const Phonon::MediaSource &rhs); ~MediaSource(); bool operator==(const Phonon::MediaSource &rhs) const; void setAutoDelete(bool enable); bool autoDelete() const; Phonon::MediaSource::Type type() const; QString fileName() const; QUrl url() const; Phonon::DiscType discType() const; QString deviceName() const; }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/objectdescription.sip0000644000076500000240000001003612536324426022276 0ustar philstaff00000000000000// objectdescription.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End // The ObjectDescription template and implementations. // ObjectDescription is a template but has a limited, and well defined, set of // concrete implementations with appropriate typedefs. template class ObjectDescription { %TypeHeaderCode #include %End public: ObjectDescription(); ObjectDescription(int index, const QHash& properties); QString description() const; int index() const; bool isValid() const; QString name() const; QVariant property(const char *name) const; QList propertyNames() const; bool operator!=(const ObjectDescription& otherDescription) const; bool operator==(const ObjectDescription& otherDescription) const; static ObjectDescription fromIndex(int index); }; typedef Phonon::ObjectDescription AudioOutputDevice; typedef Phonon::ObjectDescription EffectDescription; %If (Qt_4_5_0 -) typedef Phonon::ObjectDescription SubtitleDescription; typedef Phonon::ObjectDescription AudioChannelDescription; typedef Phonon::ObjectDescription AudioCaptureDevice; %End // The ObjectDescriptionModel template and implementations. // ObjectDescriptionModel is a template but has a limited, and well defined, // set of concrete implementations with appropriate typedefs. // // Note that this isn't in objectdescriptionmodel.sip as might be expected // because the .h file can't be parsed with the version of GCC-XML that metasip // uses. template class ObjectDescriptionModel : QAbstractListModel { %TypeHeaderCode #include %End public: ObjectDescriptionModel(QObject *parent /TransferThis/ = 0); ObjectDescriptionModel(const QList > &data, QObject *parent /TransferThis/ = 0); QList tupleIndexOrder() const; int tupleIndexAtPositionIndex(int positionIndex) const; void moveUp(const QModelIndex &index); void moveDown(const QModelIndex &index); void setModelData(const QList > &data); QList > modelData() const; Phonon::ObjectDescription modelData(const QModelIndex &index) const; // Reimplementations. int rowCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; Qt::ItemFlags flags(const QModelIndex &index) const; QMimeData *mimeData(const QModelIndexList &indexes) const; Qt::DropActions supportedDropActions() const; bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); QStringList mimeTypes() const; }; typedef Phonon::ObjectDescriptionModel AudioOutputDeviceModel; typedef Phonon::ObjectDescriptionModel EffectDescriptionModel; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/path.sip0000644000076500000240000000357312536324426017530 0ustar philstaff00000000000000// path.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class Path { %TypeHeaderCode #include %End public: Path(); Path(const Phonon::Path &); ~Path(); bool isValid() const; Phonon::Effect *insertEffect(const Phonon::EffectDescription &desc, Phonon::Effect *before = 0); bool insertEffect(Phonon::Effect *newEffect, Phonon::Effect *before = 0); bool removeEffect(Phonon::Effect *effect); QList effects() const; bool reconnect(Phonon::MediaNode *source, Phonon::MediaNode *sink); bool disconnect(); bool operator==(const Phonon::Path &p) const; bool operator!=(const Phonon::Path &p) const; %If (Qt_4_5_0 -) Phonon::MediaNode *source() const; %End %If (Qt_4_5_0 -) Phonon::MediaNode *sink() const; %End }; Phonon::Path createPath(Phonon::MediaNode *source, Phonon::MediaNode *sink); }; %End PyQt-x11-gpl-4.11.4/sip/phonon/phononmod.sip0000644000076500000240000000452412536324426020572 0ustar philstaff00000000000000// phononmod.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.phonon, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include abstractaudiooutput.sip %Include abstractvideooutput.sip %Include audiooutput.sip %Include backendcapabilities.sip %Include effect.sip %Include effectparameter.sip %Include effectwidget.sip %Include mediacontroller.sip %Include medianode.sip %Include mediaobject.sip %Include mediasource.sip %Include objectdescription.sip %Include path.sip %Include phononnamespace.sip %Include seekslider.sip %Include videoplayer.sip %Include videowidget.sip %Include volumeslider.sip PyQt-x11-gpl-4.11.4/sip/phonon/phononnamespace.sip0000644000076500000240000000360312536324426021744 0ustar philstaff00000000000000// phononnamespace.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End enum DiscType { NoDisc, Cd, Dvd, Vcd, }; enum MetaData { ArtistMetaData, AlbumMetaData, TitleMetaData, DateMetaData, GenreMetaData, TracknumberMetaData, DescriptionMetaData, MusicBrainzDiscIdMetaData, }; enum State { LoadingState, StoppedState, PlayingState, BufferingState, PausedState, ErrorState, }; enum Category { NoCategory, NotificationCategory, MusicCategory, VideoCategory, CommunicationCategory, GameCategory, AccessibilityCategory, }; enum ErrorType { NoError, NormalError, FatalError, }; QString categoryToString(Phonon::Category c); const char *phononVersion(); }; %End PyQt-x11-gpl-4.11.4/sip/phonon/seekslider.sip0000644000076500000240000000363212536324426020722 0ustar philstaff00000000000000// seekslider.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class SeekSlider : QWidget { %TypeHeaderCode #include %End public: explicit SeekSlider(QWidget *parent /TransferThis/ = 0); SeekSlider(Phonon::MediaObject *media /KeepReference=0/, QWidget *parent /TransferThis/ = 0); virtual ~SeekSlider(); bool hasTracking() const; void setTracking(bool tracking); int pageStep() const; void setPageStep(int milliseconds); int singleStep() const; void setSingleStep(int milliseconds); Qt::Orientation orientation() const; bool isIconVisible() const; QSize iconSize() const; Phonon::MediaObject *mediaObject() const; public slots: void setOrientation(Qt::Orientation); void setIconVisible(bool); void setIconSize(const QSize &size); void setMediaObject(Phonon::MediaObject * /KeepReference=0/); }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/videoplayer.sip0000644000076500000240000000365612536324426021121 0ustar philstaff00000000000000// videoplayer.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class VideoPlayer : QWidget { %TypeHeaderCode #include %End public: VideoPlayer(Phonon::Category category, QWidget *parent /TransferThis/ = 0); %If (Qt_4_5_0 -) VideoPlayer(QWidget *parent /TransferThis/ = 0); %End virtual ~VideoPlayer(); qint64 totalTime() const; qint64 currentTime() const; float volume() const; bool isPlaying() const; bool isPaused() const; public slots: void load(const Phonon::MediaSource &source); void play(const Phonon::MediaSource &source); void play(); void pause(); void stop(); void seek(qint64 ms); void setVolume(float volume); public: Phonon::MediaObject *mediaObject() const; Phonon::AudioOutput *audioOutput() const; Phonon::VideoWidget *videoWidget() const; signals: void finished(); }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/videowidget.sip0000644000076500000240000000441412536324426021101 0ustar philstaff00000000000000// videowidget.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class VideoWidget : QWidget, Phonon::AbstractVideoOutput { %TypeHeaderCode #include %End public: enum AspectRatio { AspectRatioAuto, AspectRatioWidget, AspectRatio4_3, AspectRatio16_9, }; enum ScaleMode { FitInView, ScaleAndCrop, }; VideoWidget(QWidget *parent /TransferThis/ = 0); Phonon::VideoWidget::AspectRatio aspectRatio() const; Phonon::VideoWidget::ScaleMode scaleMode() const; qreal brightness() const; qreal contrast() const; qreal hue() const; qreal saturation() const; public slots: void setFullScreen(bool fullscreen); void exitFullScreen(); void enterFullScreen(); void setAspectRatio(Phonon::VideoWidget::AspectRatio); void setScaleMode(Phonon::VideoWidget::ScaleMode); void setBrightness(qreal value); void setContrast(qreal value); void setHue(qreal value); void setSaturation(qreal value); protected: virtual void mouseMoveEvent(QMouseEvent *); virtual bool event(QEvent *); public: %If (Qt_4_7_0 -) QImage snapshot() const; %End }; }; %End PyQt-x11-gpl-4.11.4/sip/phonon/volumeslider.sip0000644000076500000240000000375612536324426021311 0ustar philstaff00000000000000// volumeslider.sip generated by MetaSIP // // This file is part of the phonon Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) namespace Phonon { %TypeHeaderCode #include %End class VolumeSlider : QWidget { %TypeHeaderCode #include %End public: explicit VolumeSlider(QWidget *parent /TransferThis/ = 0); VolumeSlider(Phonon::AudioOutput * /KeepReference=0/, QWidget *parent /TransferThis/ = 0); virtual ~VolumeSlider(); bool hasTracking() const; void setTracking(bool tracking); int pageStep() const; void setPageStep(int milliseconds); int singleStep() const; void setSingleStep(int milliseconds); bool isMuteVisible() const; QSize iconSize() const; qreal maximumVolume() const; Qt::Orientation orientation() const; Phonon::AudioOutput *audioOutput() const; public slots: void setMaximumVolume(qreal); void setOrientation(Qt::Orientation); void setMuteVisible(bool); void setIconSize(const QSize &size); void setAudioOutput(Phonon::AudioOutput * /KeepReference=0/); }; }; %End PyQt-x11-gpl-4.11.4/sip/pyqt-gpl.sip0000644000076500000240000000002612536324426017036 0ustar philstaff00000000000000%License /Type="gpl"/ PyQt-x11-gpl-4.11.4/sip/QAxContainer/0000755000076500000240000000000012536324426017102 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QAxContainer/qaxbase.sip0000644000076500000240000001257312536324426021253 0ustar philstaff00000000000000// This is the SIP interface definition for QAxBase. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (WS_WIN) class QAxBase /Abstract, PyQtNoQMetaObject/ { %TypeHeaderCode #include %End public: //QAxBase(IUnknown *iface = 0); virtual ~QAxBase(); QString control() const; //long queryInterface(const QUuid &, void **) const; // Note that the order of these overloads is significant. QVariant dynamicCall(const char *, QList & /GetWrapper/); %MethodCode Py_BEGIN_ALLOW_THREADS sipRes = new QVariant(sipCpp->dynamicCall(a0, *a1)); Py_END_ALLOW_THREADS // Update the input list with the (possibly) new values. for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(a1Wrapper); ++i) { QVariant *v = new QVariant(a1->at(i)); PyObject *v_obj = sipConvertFromNewType(v, sipType_QVariant, NULL); if (!v_obj) { delete v; sipIsErr = 1; break; } if (PyList_SetItem(a1Wrapper, i, v_obj) < 0) { Py_DECREF(v_obj); sipIsErr = 1; break; } } %End QVariant dynamicCall(const char *, const QVariant &value1 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value2 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value3 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value4 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value5 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value6 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value7 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value8 /DocValue="Py_v3:None"/ = QVariant()); // Note that the order of these overloads is significant. QAxObject *querySubObject(const char *, QList & /GetWrapper/); %MethodCode Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->querySubObject(a0, *a1); Py_END_ALLOW_THREADS // Update the input list with the (possibly) new values. for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(a1Wrapper); ++i) { QVariant *v = new QVariant(a1->at(i)); PyObject *v_obj = sipConvertFromNewType(v, sipType_QVariant, NULL); if (!v_obj) { delete v; sipIsErr = 1; break; } if (PyList_SetItem(a1Wrapper, i, v_obj) < 0) { Py_DECREF(v_obj); sipIsErr = 1; break; } } %End QAxObject *querySubObject(const char *, const QVariant &value1 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value2 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value3 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value4 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value5 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value6 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value7 /DocValue="Py_v3:None"/ = QVariant(), const QVariant &value8 /DocValue="Py_v3:None"/ = QVariant()); // SIP has a bug triggered by a template definition being the subject of // multiple typedefs. It only really matters when building everything as // one big module (the code that implements the type is duplicated in // other cases). Until it is fixed we just avoid the problematic typedef. //typedef QMap PropertyBag; //PropertyBag propertyBag() const; //void setPropertyBag(const PropertyBag &); QVariantMap propertyBag() const; void setPropertyBag(const QVariantMap &); QString generateDocumentation(); virtual bool propertyWritable(const char *) const; virtual void setPropertyWritable(const char *, bool); bool isNull() const; QStringList verbs() const; QVariant asVariant() const; signals: void signal(const QString &, int, void *); void propertyChanged(const QString &); void exception(int, const QString &, const QString &, const QString &); public: virtual void clear(); bool setControl(const QString &); void disableMetaObject(); void disableClassInfo(); void disableEventSink(); protected: //virtual bool initialize(IUnknown** ptr); //bool initializeRemote(IUnknown** ptr); //bool initializeLicensed(IUnknown** ptr); //bool initializeActive(IUnknown** ptr); //bool initializeFromFile(IUnknown** ptr); }; %End PyQt-x11-gpl-4.11.4/sip/QAxContainer/QAxContainermod.sip0000644000076500000240000000361412536324426022657 0ustar philstaff00000000000000// This is the SIP interface definition for the QAxContainer module of PyQt v4. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QAxContainer, keyword_arguments="Optional") %Import QtGui/QtGuimod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qaxbase.sip %Include qaxobject.sip %Include qaxwidget.sip PyQt-x11-gpl-4.11.4/sip/QAxContainer/qaxobject.sip0000644000076500000240000000371312536324426021603 0ustar philstaff00000000000000// This is the SIP interface definition for QAxObject. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (WS_WIN) class QAxObject : QObject, QAxBase /PyQtNoQMetaObject/ { %TypeHeaderCode #include %End public: QAxObject(QObject *parent /TransferThis/ = 0); QAxObject(const QString &, QObject *parent /TransferThis/ = 0); //QAxObject(IUnknown *, QObject *parent /TransferThis/ = 0); ~QAxObject(); %ConvertToSubClassCode static struct class_graph { const char *name; sipWrapperType **type; int yes, no; } graph[] = { {sipName_QAxObject, &sipClass_QAxObject, 1, -1}, {sipName_QAxWidget, &sipClass_QAxWidget, -1, -1}, }; int i = 0; sipClass = NULL; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipClass = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End bool doVerb(const QString &); protected: %If (Qt_5_0_0 -) void connectNotify(const QMetaMethod &); %End %If (- Qt_5_0_0) void connectNotify(const char *); %End }; %End PyQt-x11-gpl-4.11.4/sip/QAxContainer/qaxwidget.sip0000644000076500000240000000343512536324426021621 0ustar philstaff00000000000000// This is the SIP interface definition for QAxWidget. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (WS_WIN) class QAxWidget : QWidget, QAxBase /PyQtNoQMetaObject/ { %TypeHeaderCode #include %End public: QAxWidget(QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); QAxWidget(const QString &, QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); //QAxWidget(IUnknown *, QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); ~QAxWidget(); void clear(); bool doVerb(const QString &); QSize sizeHint() const; QSize minimumSizeHint() const; //virtual QaxAggregated *createAggregate(); protected: //bool initialize(IUnknown **); virtual bool createHostWindow(bool); void changeEvent(QEvent *); void resizeEvent(QResizeEvent *); virtual bool translateKeyEvent(int,int) const; %If (Qt_5_0_0 -) void connectNotify(const QMetaMethod &); %End %If (- Qt_5_0_0) void connectNotify(const char *); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtAssistant/0000755000076500000240000000000012536324426017024 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtAssistant/qassistantclient.sip0000644000076500000240000000411012536324426023126 0ustar philstaff00000000000000// qassistantclient.sip generated by MetaSIP // // This file is part of the QtAssistant Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAssistantClient : QObject { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QAssistantClient, &sipType_QAssistantClient, -1, -1}, }; int i = 0; sipType = 0; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: QAssistantClient(const QString &path, QObject *parent /TransferThis/ = 0); virtual ~QAssistantClient(); bool isOpen() const; void setArguments(const QStringList &arguments); public slots: virtual void openAssistant() /ReleaseGIL/; virtual void closeAssistant(); virtual void showPage(const QString &page); signals: void assistantOpened(); void assistantClosed(); void error(const QString &message); }; PyQt-x11-gpl-4.11.4/sip/QtAssistant/QtAssistantmod.sip0000644000076500000240000000360712536324426022525 0ustar philstaff00000000000000// QtAssistantmod.sip generated by MetaSIP // // This file is part of the QtAssistant Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtAssistant, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qassistantclient.sip PyQt-x11-gpl-4.11.4/sip/QtCore/0000755000076500000240000000000012536324426015743 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtCore/qabstractanimation.sip0000644000076500000240000000512312536324426022345 0ustar philstaff00000000000000// qabstractanimation.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAbstractAnimation : QObject { %TypeHeaderCode #include %End public: enum Direction { Forward, Backward, }; enum State { Stopped, Paused, Running, }; enum DeletionPolicy { KeepWhenStopped, DeleteWhenStopped, }; QAbstractAnimation(QObject *parent /TransferThis/ = 0); virtual ~QAbstractAnimation(); QAbstractAnimation::State state() const; QAnimationGroup *group() const; QAbstractAnimation::Direction direction() const; void setDirection(QAbstractAnimation::Direction direction); int currentTime() const; int currentLoopTime() const; int loopCount() const; void setLoopCount(int loopCount); int currentLoop() const; virtual int duration() const = 0; int totalDuration() const; signals: void finished(); void stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); void currentLoopChanged(int currentLoop); void directionChanged(QAbstractAnimation::Direction); public slots: void start(QAbstractAnimation::DeletionPolicy policy = QAbstractAnimation::KeepWhenStopped); void pause(); void resume(); void setPaused(bool); void stop(); void setCurrentTime(int msecs); protected: virtual bool event(QEvent *event); virtual void updateCurrentTime(int currentTime) = 0; virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); virtual void updateDirection(QAbstractAnimation::Direction direction); private: QAbstractAnimation(const QAbstractAnimation &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qabstracteventdispatcher.sip0000644000076500000240000000676512536324426023573 0ustar philstaff00000000000000// qabstracteventdispatcher.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAbstractEventDispatcher : QObject { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) struct TimerInfo { %TypeHeaderCode #include %End int timerId; int interval; Qt::TimerType timerType; TimerInfo(int id, int i, Qt::TimerType t); }; %End %If (- Qt_5_0_0) typedef QPair TimerInfo; %End explicit QAbstractEventDispatcher(QObject *parent /TransferThis/ = 0); virtual ~QAbstractEventDispatcher(); static QAbstractEventDispatcher *instance(QThread *thread = 0); virtual bool processEvents(QFlags flags) = 0 /ReleaseGIL/; virtual bool hasPendingEvents() = 0; virtual void registerSocketNotifier(QSocketNotifier *notifier) = 0; virtual void unregisterSocketNotifier(QSocketNotifier *notifier) = 0; %If (Qt_5_0_0 -) int registerTimer(int interval, Qt::TimerType timerType /Constrained/, QObject *object); %End %If (PyQt_Deprecated_5_0) int registerTimer(int interval, QObject *object); %End %If (Qt_5_0_0 -) virtual void registerTimer(int timerId, int interval, Qt::TimerType timerType, QObject *object) = 0; %End %If (PyQt_Deprecated_5_0) virtual void registerTimer(int timerId, int interval, QObject *object) = 0; %End virtual bool unregisterTimer(int timerId) = 0; virtual bool unregisterTimers(QObject *object) = 0; %If (Qt_5_0_0 -) virtual QList registeredTimers(QObject *object) const = 0; %End %If (- Qt_5_0_0) virtual QList> registeredTimers(QObject *object) const = 0; %End virtual void wakeUp() = 0; virtual void interrupt() = 0; virtual void flush() = 0; virtual void startingUp(); virtual void closingDown(); %If (- Qt_5_0_0) SIP_PYCALLABLE setEventFilter(SIP_PYCALLABLE filter /AllowNone/); %MethodCode sipRes = qpycore_qabstracteventdispatcher_seteventfilter(sipCpp, a0); %End %End %If (PyQt_Deprecated_5_0) bool filterEvent(void *message); %End %If (Qt_5_0_0 -) virtual int remainingTime(int timerId) = 0; %End %If (Qt_5_0_0 -) void installNativeEventFilter(QAbstractNativeEventFilter *filterObj); %End %If (Qt_5_0_0 -) void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj); %End %If (Qt_5_0_0 -) %If (WS_WIN) virtual bool registerEventNotifier(QWinEventNotifier *notifier) = 0; %End %End %If (Qt_5_0_0 -) %If (WS_WIN) virtual void unregisterEventNotifier(QWinEventNotifier *notifier) = 0; %End %End signals: void aboutToBlock(); void awake(); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qabstractfileengine.sip0000644000076500000240000002215112536324426022473 0ustar philstaff00000000000000// qabstractfileengine.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) %ModuleCode #include %End %End %If (- Qt_5_0_0) class QAbstractFileEngine /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: enum FileFlag { ReadOwnerPerm, WriteOwnerPerm, ExeOwnerPerm, ReadUserPerm, WriteUserPerm, ExeUserPerm, ReadGroupPerm, WriteGroupPerm, ExeGroupPerm, ReadOtherPerm, WriteOtherPerm, ExeOtherPerm, LinkType, FileType, DirectoryType, HiddenFlag, LocalDiskFlag, ExistsFlag, RootFlag, PermsMask, TypesMask, FlagsMask, FileInfoAll, %If (Qt_4_3_0 -) BundleType, %End %If (Qt_4_3_0 -) Refresh, %End }; typedef QFlags FileFlags; enum FileName { DefaultName, BaseName, PathName, AbsoluteName, AbsolutePathName, LinkName, CanonicalName, CanonicalPathName, %If (Qt_4_3_0 -) BundleName, %End }; enum FileOwner { OwnerUser, OwnerGroup, }; enum FileTime { CreationTime, ModificationTime, AccessTime, }; virtual ~QAbstractFileEngine(); %If (Qt_4_3_0 -) bool atEnd() const; %End virtual bool open(QFlags openMode) /ReleaseGIL/; virtual bool close() /ReleaseGIL/; virtual bool flush() /ReleaseGIL/; virtual qint64 size() const; virtual qint64 pos() const; virtual bool seek(qint64 pos) /ReleaseGIL/; virtual bool isSequential() const; virtual bool remove() /ReleaseGIL/; virtual bool copy(const QString &newName) /ReleaseGIL/; virtual bool rename(const QString &newName) /ReleaseGIL/; virtual bool link(const QString &newName) /ReleaseGIL/; virtual bool mkdir(const QString &dirName, bool createParentDirectories) const /ReleaseGIL/; virtual bool rmdir(const QString &dirName, bool recurseParentDirectories) const /ReleaseGIL/; virtual bool setSize(qint64 size); virtual bool caseSensitive() const; virtual bool isRelativePath() const; virtual QStringList entryList(QFlags filters, const QStringList &filterNames) const; virtual QFlags fileFlags(QFlags type = FileInfoAll) const; virtual bool setPermissions(uint perms); virtual QString fileName(QAbstractFileEngine::FileName file = DefaultName) const; virtual uint ownerId(QAbstractFileEngine::FileOwner) const; virtual QString owner(QAbstractFileEngine::FileOwner) const; virtual QDateTime fileTime(QAbstractFileEngine::FileTime time) const; virtual void setFileName(const QString &file); virtual int handle() const; %If (Qt_4_3_0 -) typedef QAbstractFileEngineIterator Iterator; %End %If (Qt_4_3_0 -) virtual QAbstractFileEngineIterator *beginEntryList(QFlags filters, const QStringList &filterNames) /Factory/; %End virtual SIP_PYOBJECT read(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS len = sipSelfWasArg ? sipCpp->QAbstractFileEngine::read(s, a0) : sipCpp->read(s, a0); Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End %VirtualCatcherCode PyObject *result = sipCallMethod(&sipIsErr, sipMethod, "n", a1); if (result != NULL) { PyObject *buf; sipParseResult(&sipIsErr, sipMethod, result, "O", &buf); if (buf == Py_None) sipRes = -1L; else if (!SIPBytes_Check(buf)) { sipBadCatcherResult(sipMethod); sipIsErr = 1; } else { memcpy(a0, SIPBytes_AS_STRING(buf), SIPBytes_GET_SIZE(buf)); sipRes = SIPBytes_GET_SIZE(buf); } Py_DECREF(buf); Py_DECREF(result); } %End virtual SIP_PYOBJECT readLine(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS len = sipSelfWasArg ? sipCpp->QAbstractFileEngine::readLine(s, a0) : sipCpp->readLine(s, a0); Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End %VirtualCatcherCode PyObject *result = sipCallMethod(&sipIsErr, sipMethod, "n", a1); if (result != NULL) { PyObject *buf; sipParseResult(&sipIsErr, sipMethod, result, "O", &buf); if (buf == Py_None) sipRes = -1L; else if (!SIPBytes_Check(buf)) { sipBadCatcherResult(sipMethod); sipIsErr = 1; } else { memcpy(a0, SIPBytes_AS_STRING(buf), SIPBytes_GET_SIZE(buf)); sipRes = SIPBytes_GET_SIZE(buf); } Py_DECREF(buf); Py_DECREF(result); } %End virtual qint64 write(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; QFile::FileError error() const; QString errorString() const; static QAbstractFileEngine *create(const QString &fileName) /Factory/; %If (Qt_4_4_0 -) void *map(qint64 offset, qint64 size /ResultSize/, QFile::MemoryMapFlags flags) [uchar * (qint64 offset, qint64 size, QFile::MemoryMapFlags flags)]; %End %If (Qt_4_4_0 -) bool unmap(void *ptr) [bool (uchar *ptr)]; %End protected: QAbstractFileEngine(); void setError(QFile::FileError error, const QString &str); private: %If (Qt_4_2_0 -) QAbstractFileEngine(const QAbstractFileEngine &); %End }; %End %If (- Qt_5_0_0) QFlags operator|(QAbstractFileEngine::FileFlag f1, QFlags f2); %End %If (- Qt_5_0_0) class QAbstractFileEngineHandler { %TypeHeaderCode #include %End public: QAbstractFileEngineHandler(); virtual ~QAbstractFileEngineHandler(); virtual QAbstractFileEngine *create(const QString &fileName) const = 0 /Factory/; }; %End %If (Qt_4_3_0 - Qt_5_0_0) class QAbstractFileEngineIterator /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: QAbstractFileEngineIterator(QFlags filters, const QStringList &nameFilters); virtual ~QAbstractFileEngineIterator(); virtual QString next() = 0; virtual bool hasNext() const = 0; QString path() const; QStringList nameFilters() const; QFlags filters() const; virtual QString currentFileName() const = 0; virtual QFileInfo currentFileInfo() const; QString currentFilePath() const; private: QAbstractFileEngineIterator(const QAbstractFileEngineIterator &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qabstractitemmodel.sip0000644000076500000240000003344512536324426022355 0ustar philstaff00000000000000// qabstractitemmodel.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QModelIndex { %TypeHeaderCode #include %End public: QModelIndex(); %If (- Qt_5_0_0) QModelIndex(const QModelIndex &other); %End %If (- Qt_5_0_0) ~QModelIndex(); %End QModelIndex child(int arow, int acolumn) const; int row() const; int column() const; QVariant data(int role = Qt::DisplayRole) const; %If (Qt_4_2_0 -) Qt::ItemFlags flags() const; %End SIP_PYOBJECT internalPointer() const; %MethodCode sipRes = reinterpret_cast(sipCpp->internalPointer()); if (!sipRes) sipRes = Py_None; Py_INCREF(sipRes); %End SIP_PYOBJECT internalId() const /DocType="int"/; %MethodCode // Python needs to treat the result as an unsigned value (which may not happen // on 64 bit systems). Instead we get the real value as it is stored (as a // void *) and let Python convert that. sipRes = PyLong_FromVoidPtr(sipCpp->internalPointer()); %End const QAbstractItemModel *model() const; bool isValid() const; QModelIndex parent() const; QModelIndex sibling(int arow, int acolumn) const; bool operator==(const QModelIndex &other) const; bool operator<(const QModelIndex &other) const; bool operator!=(const QModelIndex &other) const; long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End }; class QPersistentModelIndex { %TypeHeaderCode #include %End public: QPersistentModelIndex(); QPersistentModelIndex(const QModelIndex &index); QPersistentModelIndex(const QPersistentModelIndex &other); ~QPersistentModelIndex(); int row() const; int column() const; QVariant data(int role = Qt::DisplayRole) const; %If (Qt_4_2_0 -) Qt::ItemFlags flags() const; %End QModelIndex parent() const; QModelIndex sibling(int row, int column) const; QModelIndex child(int row, int column) const; const QAbstractItemModel *model() const; bool isValid() const; %If (Qt_5_0_0 -) void swap(QPersistentModelIndex &other); %End operator const QModelIndex &() const; bool operator<(const QPersistentModelIndex &other) const; bool operator==(const QPersistentModelIndex &other) const; bool operator==(const QModelIndex &other) const; %If (Qt_4_2_0 -) bool operator!=(const QPersistentModelIndex &other) const; %End bool operator!=(const QModelIndex &other) const; %If (Qt_4_5_0 -) long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End %End }; typedef QList QModelIndexList; class QAbstractItemModel : QObject { %TypeHeaderCode #include %End public: explicit QAbstractItemModel(QObject *parent /TransferThis/ = 0); virtual ~QAbstractItemModel(); bool hasIndex(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const = 0; virtual QModelIndex parent(const QModelIndex &child) const = 0; QObject *parent() const; %If (Qt_5_0_0 -) virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const; %End %If (- Qt_5_0_0) QModelIndex sibling(int row, int column, const QModelIndex &idx) const; %End virtual int rowCount(const QModelIndex &parent = QModelIndex()) const = 0; virtual int columnCount(const QModelIndex &parent = QModelIndex()) const = 0; virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const; virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const = 0; virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole); virtual QMap itemData(const QModelIndex &index) const /DocType="Py_v3:dict-of-int-object;dict-of-int-QVariant"/; virtual bool setItemData(const QModelIndex &index, const QMap &roles /DocType="Py_v3:dict-of-int-object;dict-of-int-QVariant"/); virtual QStringList mimeTypes() const; virtual QMimeData *mimeData(const QModelIndexList &indexes) const /TransferBack/; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); virtual Qt::DropActions supportedDropActions() const; virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual void fetchMore(const QModelIndex &parent); virtual bool canFetchMore(const QModelIndex &parent) const; virtual Qt::ItemFlags flags(const QModelIndex &index) const; virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); virtual QModelIndex buddy(const QModelIndex &index) const; virtual QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags = Qt::MatchStartsWith|Qt::MatchWrap) const; virtual QSize span(const QModelIndex &index) const; signals: %If (Qt_5_0_0 -) void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles /DocValue="[]"/ = QVector()) /PyQtSignalHack=2/; %End %If (- Qt_5_0_0) void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); %End void headerDataChanged(Qt::Orientation orientation, int first, int last); %If (Qt_4_2_0 -) void layoutAboutToBeChanged(); %End void layoutChanged(); void rowsAboutToBeInserted(const QModelIndex &parent, int first, int last); void rowsInserted(const QModelIndex &parent, int first, int last); void rowsAboutToBeRemoved(const QModelIndex &parent, int first, int last); void rowsRemoved(const QModelIndex &parent, int first, int last); void columnsAboutToBeInserted(const QModelIndex &parent, int first, int last); void columnsInserted(const QModelIndex &parent, int first, int last); void columnsAboutToBeRemoved(const QModelIndex &parent, int first, int last); void columnsRemoved(const QModelIndex &parent, int first, int last); %If (Qt_4_2_0 -) void modelAboutToBeReset(); %End void modelReset(); public slots: virtual bool submit(); virtual void revert(); protected slots: %If (Qt_4_8_0 - Qt_5_0_0) void resetInternalData(); %End protected: void encodeData(const QModelIndexList &indexes, QDataStream &stream) const; bool decodeData(int row, int column, const QModelIndex &parent, QDataStream &stream); void beginInsertRows(const QModelIndex &parent, int first, int last); void endInsertRows(); void beginRemoveRows(const QModelIndex &parent, int first, int last); void endRemoveRows(); void beginInsertColumns(const QModelIndex &parent, int first, int last); void endInsertColumns(); void beginRemoveColumns(const QModelIndex &parent, int first, int last); void endRemoveColumns(); %If (Qt_4_2_0 -) QModelIndexList persistentIndexList() const; %End %If (PyQt_Deprecated_5_0) void reset(); %End void changePersistentIndex(const QModelIndex &from, const QModelIndex &to); void changePersistentIndexList(const QModelIndexList &from, const QModelIndexList &to); public: bool insertRow(int row, const QModelIndex &parent = QModelIndex()); bool insertColumn(int column, const QModelIndex &parent = QModelIndex()); bool removeRow(int row, const QModelIndex &parent = QModelIndex()); bool removeColumn(int column, const QModelIndex &parent = QModelIndex()); %If (Qt_4_2_0 -) %If (PyQt_Deprecated_5_0) void setSupportedDragActions(Qt::DropActions); %End %End %If (Qt_5_0_0 -) virtual Qt::DropActions supportedDragActions() const; %End %If (Qt_4_2_0 - Qt_5_0_0) Qt::DropActions supportedDragActions() const; %End %If (Qt_5_0_0 -) virtual QHash roleNames() const; %End %If (Qt_4_6_0 - Qt_5_0_0) const QHash &roleNames() const; %End protected: QModelIndex createIndex(int row, int column, SIP_PYOBJECT object = 0) const [QModelIndex (int row, int column, void *object = 0)]; %MethodCode // The Qt API is broken (and won't be fixed as it would break binary // compatibility) regarding the internal id of a model index on different // architectures (32 vs 64 bits). We choose to work around the breakage as it // is fairly subtle and continues to catch people out. Instead of letting Qt // convert betweed an integer id and a pointer id (the internal format used by // Qt) we let Python do it. void *ptr; if (a2) { // Try and convert it to a Python long and fallback to the object's // address if it fails. ptr = PyLong_AsVoidPtr(a2); if (PyErr_Occurred()) { PyErr_Clear(); ptr = a2; } } else { ptr = 0; } #if defined(SIP_PROTECTED_IS_PUBLIC) sipRes = new QModelIndex(sipCpp->createIndex(a0, a1, ptr)); #else sipRes = new QModelIndex(sipCpp->sipProtect_createIndex(a0, a1, ptr)); #endif %End signals: %If (Qt_4_6_0 -) void rowsAboutToBeMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow); %End %If (Qt_4_6_0 -) void rowsMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row); %End %If (Qt_4_6_0 -) void columnsAboutToBeMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn); %End %If (Qt_4_6_0 -) void columnsMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int column); %End protected: %If (Qt_4_6_0 -) bool beginMoveRows(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationRow); %End %If (Qt_4_6_0 -) void endMoveRows(); %End %If (Qt_4_6_0 -) bool beginMoveColumns(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationColumn); %End %If (Qt_4_6_0 -) void endMoveColumns(); %End %If (Qt_4_6_0 -) void beginResetModel(); %End %If (Qt_4_6_0 -) void endResetModel(); %End %If (Qt_4_6_0 -) %If (PyQt_Deprecated_5_0) void setRoleNames(const QHash &roleNames); %End %End public: %If (Qt_5_0_0 -) virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const; %End %If (Qt_5_0_0 -) virtual bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild); %End %If (Qt_5_0_0 -) virtual bool moveColumns(const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild); %End %If (Qt_5_0_0 -) bool moveRow(const QModelIndex &sourceParent, int sourceRow, const QModelIndex &destinationParent, int destinationChild); %End %If (Qt_5_0_0 -) bool moveColumn(const QModelIndex &sourceParent, int sourceColumn, const QModelIndex &destinationParent, int destinationChild); %End private: QAbstractItemModel(const QAbstractItemModel &); }; class QAbstractTableModel : QAbstractItemModel { %TypeHeaderCode #include %End public: explicit QAbstractTableModel(QObject *parent /TransferThis/ = 0); virtual ~QAbstractTableModel(); virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); private: QAbstractTableModel(const QAbstractTableModel &); virtual QModelIndex parent(const QModelIndex &child) const; virtual bool hasChildren(const QModelIndex &parent) const; }; class QAbstractListModel : QAbstractItemModel { %TypeHeaderCode #include %End public: explicit QAbstractListModel(QObject *parent /TransferThis/ = 0); virtual ~QAbstractListModel(); virtual QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); private: QAbstractListModel(const QAbstractListModel &); virtual QModelIndex parent(const QModelIndex &child) const; virtual int columnCount(const QModelIndex &parent) const; virtual bool hasChildren(const QModelIndex &parent) const; }; PyQt-x11-gpl-4.11.4/sip/QtCore/qabstractnativeeventfilter.sip0000644000076500000240000000250612536324426024126 0ustar philstaff00000000000000// qabstractnativeeventfilter.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) class QAbstractNativeEventFilter { %TypeHeaderCode #include %End public: QAbstractNativeEventFilter(); virtual ~QAbstractNativeEventFilter(); virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) = 0; private: QAbstractNativeEventFilter(const QAbstractNativeEventFilter &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qabstractstate.sip0000644000076500000240000000267112536324426021513 0ustar philstaff00000000000000// qabstractstate.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAbstractState : QObject { %TypeHeaderCode #include %End public: virtual ~QAbstractState(); QState *parentState() const; QStateMachine *machine() const; signals: void entered(); void exited(); protected: QAbstractState(QState *parent /TransferThis/ = 0); virtual void onEntry(QEvent *event) = 0; virtual void onExit(QEvent *event) = 0; virtual bool event(QEvent *e); private: QAbstractState(const QAbstractState &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qabstracttransition.sip0000644000076500000240000000604112536324426022560 0ustar philstaff00000000000000// qabstracttransition.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAbstractTransition : QObject { %TypeHeaderCode #include %End public: QAbstractTransition(QState *sourceState /TransferThis/ = 0); virtual ~QAbstractTransition(); QState *sourceState() const; QAbstractState *targetState() const; void setTargetState(QAbstractState *target /KeepReference=0/); QList targetStates() const; void setTargetStates(const QList &targets /KeepReference=0/); QStateMachine *machine() const; void addAnimation(QAbstractAnimation *animation /GetWrapper/); %MethodCode // We want to keep a reference to the animation but this is in addition to the // existing ones and does not replace them - so we can't use /KeepReference/. sipCpp->addAnimation(a0); // Use the user object as a list of the references. PyObject *user = ((sipSimpleWrapper *)sipSelf)->user; if (!user) user = ((sipSimpleWrapper *)sipSelf)->user = PyList_New(0); if (user) PyList_Append(user, a0Wrapper); %End void removeAnimation(QAbstractAnimation *animation /GetWrapper/); %MethodCode // Discard the extra animation reference that we took in addAnimation(). sipCpp->removeAnimation(a0); // Use the user object as a list of the references. PyObject *user = ((sipSimpleWrapper *)sipSelf)->user; if (user) { SIP_SSIZE_T i = 0; // Note that we deal with an object appearing in the list more than once. while (i < PyList_GET_SIZE(user)) if (PyList_GET_ITEM(user, i) == a0Wrapper) PyList_SetSlice(user, i, i + 1, NULL); else ++i; } %End QList animations() const; signals: void triggered(); protected: virtual bool eventTest(QEvent *event) = 0; virtual void onTransition(QEvent *event) = 0; virtual bool event(QEvent *e); private: QAbstractTransition(const QAbstractTransition &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qanimationgroup.sip0000644000076500000240000000330112536324426021672 0ustar philstaff00000000000000// qanimationgroup.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAnimationGroup : QAbstractAnimation { %TypeHeaderCode #include %End public: QAnimationGroup(QObject *parent /TransferThis/ = 0); virtual ~QAnimationGroup(); QAbstractAnimation *animationAt(int index) const; int animationCount() const; int indexOfAnimation(QAbstractAnimation *animation) const; void addAnimation(QAbstractAnimation *animation /Transfer/); void insertAnimation(int index, QAbstractAnimation *animation /Transfer/); void removeAnimation(QAbstractAnimation *animation /TransferBack/); QAbstractAnimation *takeAnimation(int index) /TransferBack/; void clear(); protected: virtual bool event(QEvent *event); private: QAnimationGroup(const QAnimationGroup &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qbasictimer.sip0000644000076500000240000000235712536324426020772 0ustar philstaff00000000000000// qbasictimer.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QBasicTimer { %TypeHeaderCode #include %End public: QBasicTimer(); ~QBasicTimer(); bool isActive() const; int timerId() const; %If (Qt_5_0_0 -) void start(int msec, Qt::TimerType timerType, QObject *obj); %End void start(int msec, QObject *obj); void stop(); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qbitarray.sip0000644000076500000240000000536312536324426020465 0ustar philstaff00000000000000// qbitarray.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QBitArray { %TypeHeaderCode #include %End %TypeCode // This is needed by __hash__(). #include %End public: QBitArray(); QBitArray(int size, bool value = false); QBitArray(const QBitArray &other); int size() const; int count() const /__len__/; bool isEmpty() const; bool isNull() const; void resize(int size); void detach(); bool isDetached() const; void clear(); QBitArray &operator&=(const QBitArray &); QBitArray &operator|=(const QBitArray &); QBitArray &operator^=(const QBitArray &); QBitArray operator~() const; bool operator==(const QBitArray &a) const; bool operator!=(const QBitArray &a) const; void fill(bool val, int first, int last); void truncate(int pos); bool fill(bool value, int size = -1); bool testBit(int i) const; void setBit(int i); void clearBit(int i); void setBit(int i, bool val); bool toggleBit(int i); bool operator[](int i) const; %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = sipCpp->operator[]((int)idx); %End bool at(int i) const; int count(bool on) const; %If (Qt_4_3_0 -) long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End %End %If (Qt_4_8_0 -) void swap(QBitArray &other); %End }; QBitArray operator&(const QBitArray &, const QBitArray &); QBitArray operator|(const QBitArray &, const QBitArray &); QBitArray operator^(const QBitArray &, const QBitArray &); QDataStream &operator<<(QDataStream &, const QBitArray & /Constrained/); QDataStream &operator>>(QDataStream &, QBitArray & /Constrained/); %If (Qt_4_3_0 -) void qSwap(QBitArray &value1, QBitArray &value2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qbuffer.sip0000644000076500000240000000623612536324426020121 0ustar philstaff00000000000000// qbuffer.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QBuffer : QIODevice { %TypeHeaderCode #include %End public: explicit QBuffer(QObject *parent /TransferThis/ = 0); QBuffer(QByteArray *byteArray, QObject *parent /TransferThis/ = 0); virtual ~QBuffer(); QByteArray &buffer(); const QByteArray &data() const; void setBuffer(QByteArray *a); void setData(const QByteArray &data); void setData(const char *adata /Array/, int alen /ArraySize/); virtual bool open(QFlags openMode); virtual void close(); virtual qint64 size() const; virtual qint64 pos() const; virtual bool seek(qint64 off); virtual bool atEnd() const; virtual bool canReadLine() const; protected: virtual SIP_PYOBJECT readData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QBuffer::readData(s, a0) : sipCpp->readData(s, a0); #else len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; %If (Qt_5_0_0 -) virtual void connectNotify(const QMetaMethod &); %End %If (Qt_4_5_0 - Qt_5_0_0) virtual void connectNotify(SIP_SIGNAL); %End %If (Qt_5_0_0 -) virtual void disconnectNotify(const QMetaMethod &); %End %If (Qt_4_5_0 - Qt_5_0_0) virtual void disconnectNotify(SIP_SIGNAL); %End private: QBuffer(const QBuffer &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qbytearray.sip0000644000076500000240000003210012536324426020637 0ustar philstaff00000000000000// qbytearray.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End quint16 qChecksum(const char *s /Array/, uint len /ArraySize/); class QByteArray { %TypeHeaderCode #include %End %TypeCode // This is needed by __hash__(). #include // Convenience function for converting a QByteArray to a Python str object. static PyObject *QByteArrayToPyStr(QByteArray *ba) { char *data = ba->data(); if (data) // QByteArrays may have embedded '\0's so set the size explicitly. return SIPBytes_FromStringAndSize(data, ba->size()); return SIPBytes_FromString(""); } %End %ConvertToTypeCode // We have to be very careful about what we allow to be converted to a // QByteArray and to a QString as we need to take into account the v1 and v2 // APIs and Python v2.x and v3.x. // // QSvgRenderer() is a good example of what needs to work "naturally". This // has a ctor that takes a QString argument that is the name of the SVG file. // It has another ctor that takes a QByteArray argument that is the SVG data. // // In Python v2.x we want a str object to be interpreted as the name of the // file (as that is the historical behaviour). This has the following // implications. // // - The QString version of the ctor must appear before the QByteArray version // in the .sip file. This rule should be applied wherever a similar // situation arises. // - A QString must not automatically convert a QByteArray. // - QByteArray must also exist in the v2 API. // // In Python v3.x we want a bytes object to be used wherever a QByteArray is // expected. This means that a QString must not automatically convert a bytes // object. // // Qt uses QByteArray to represent binary data and also '\0' terminated C // strings. If we only allowed a bytes object to be automatically converted to // a QByteArray then we would force such strings to be either explicitly // specified as bytes (ie. have a leading 'b') or wrapped in a call to the // QByteArray ctor - neither of which is very Pythonic. We therefore allow a // Latin-1 encoded str object to be automatcially converted to a QByteArray. // For consistency we also allow a Python v2.x unicode object to be similarly // converted. if (sipIsErr == NULL) return ( #if PY_VERSION_HEX >= 0x02060000 PyByteArray_Check(sipPy) || #endif PyUnicode_Check(sipPy) || SIPBytes_Check(sipPy) || sipCanConvertToType(sipPy, sipType_QByteArray, SIP_NO_CONVERTORS)); #if PY_VERSION_HEX >= 0x02060000 if (PyByteArray_Check(sipPy)) { *sipCppPtr = new QByteArray(PyByteArray_AS_STRING(sipPy), PyByteArray_GET_SIZE(sipPy)); return sipGetState(sipTransferObj); } #endif if (PyUnicode_Check(sipPy)) { const char *bytes = sipString_AsLatin1String(&sipPy); if (!sipPy) { *sipIsErr = 1; return 0; } *sipCppPtr = new QByteArray(bytes); Py_DECREF(sipPy); return sipGetState(sipTransferObj); } if (SIPBytes_Check(sipPy)) { *sipCppPtr = new QByteArray(SIPBytes_AS_STRING(sipPy), SIPBytes_GET_SIZE(sipPy)); return sipGetState(sipTransferObj); } *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QByteArray, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End %BIGetBufferCode sipRes = PyBuffer_FillInfo(sipBuffer, sipSelf, sipCpp->data(), sipCpp->size(), 0, sipFlags); %End %BIGetReadBufferCode if (sipSegment != 0) { PyErr_SetString(PyExc_SystemError, "accessing non-existent QByteArray segment"); sipRes = -1; } else { *sipPtrPtr = (void *)sipCpp->data(); sipRes = sipCpp->size(); } %End %BIGetSegCountCode if (sipLenPtr) *sipLenPtr = sipCpp->size(); sipRes = 1; %End %BIGetCharBufferCode if (sipSegment != 0) { PyErr_SetString(PyExc_SystemError, "accessing non-existent QByteArray segment"); sipRes = -1; } else { *sipPtrPtr = (void *)sipCpp->data(); sipRes = sipCpp->size(); } %End %PickleCode #if PY_MAJOR_VERSION >= 3 sipRes = Py_BuildValue((char *)"(y#)", sipCpp->data(), sipCpp->size()); #else sipRes = Py_BuildValue((char *)"(s#)", sipCpp->data(), sipCpp->size()); #endif %End public: QByteArray(); QByteArray(int size, char c); QByteArray(const QByteArray &a); ~QByteArray(); void resize(int size); QByteArray &fill(char ch, int size = -1); void clear(); int indexOf(const QByteArray &ba, int from = 0) const; int indexOf(const QString &str, int from = 0) const; int lastIndexOf(const QByteArray &ba, int from = -1) const; int lastIndexOf(const QString &str, int from = -1) const; int count(const QByteArray &a) const; QByteArray left(int len) const; QByteArray right(int len) const; QByteArray mid(int pos, int length = -1) const; bool startsWith(const QByteArray &a) const; bool endsWith(const QByteArray &a) const; void truncate(int pos); void chop(int n); QByteArray toLower() const; QByteArray toUpper() const; QByteArray trimmed() const; QByteArray simplified() const; QByteArray leftJustified(int width, char fill = ' ', bool truncate = false) const; QByteArray rightJustified(int width, char fill = ' ', bool truncate = false) const; QByteArray &prepend(const QByteArray &a); QByteArray &append(const QByteArray &a); QByteArray &append(const QString &s); QByteArray &insert(int i, const QByteArray &a); QByteArray &insert(int i, const QString &s); QByteArray &remove(int index, int len); QByteArray &replace(int index, int len, const QByteArray &s); QByteArray &replace(const QByteArray &before, const QByteArray &after); QByteArray &replace(const QString &before, const QByteArray &after); QList split(char sep) const; QByteArray &operator+=(const QByteArray &a); QByteArray &operator+=(const QString &s); bool operator==(const QString &s2) const; bool operator!=(const QString &s2) const; bool operator<(const QString &s2) const; bool operator>(const QString &s2) const; bool operator<=(const QString &s2) const; bool operator>=(const QString &s2) const; short toShort(bool *ok = 0, int base = 10) const; ushort toUShort(bool *ok = 0, int base = 10) const; int toInt(bool *ok = 0, int base = 10) const; uint toUInt(bool *ok = 0, int base = 10) const; long toLong(bool *ok = 0, int base = 10) const; ulong toULong(bool *ok = 0, int base = 10) const; qlonglong toLongLong(bool *ok = 0, int base = 10) const; qulonglong toULongLong(bool *ok = 0, int base = 10) const; float toFloat(bool *ok = 0) const; double toDouble(bool *ok = 0) const; QByteArray toBase64() const; QByteArray &setNum(int n /Constrained/, int base = 10); QByteArray &setNum(double n /Constrained/, char format = 'g', int precision = 6); QByteArray &setNum(qlonglong n, int base = 10); QByteArray &setNum(qulonglong n, int base = 10); static QByteArray number(int n /Constrained/, int base = 10); static QByteArray number(double n /Constrained/, char format = 'g', int precision = 6); static QByteArray number(qlonglong n, int base = 10); static QByteArray number(qulonglong n, int base = 10); static QByteArray fromBase64(const QByteArray &base64); static QByteArray fromRawData(const char * /Array/, int size /ArraySize/); %If (Qt_4_3_0 -) static QByteArray fromHex(const QByteArray &hexEncoded); %End int count() const /__len__/; int length() const; bool isNull() const; int size() const; char at(int i) const; char operator[](int i) const; %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = sipCpp->operator[]((int)idx); %End QByteArray operator[](SIP_PYSLICE slice) const; %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->length(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { sipRes = new QByteArray(); for (i = 0; i < slicelength; ++i) { sipRes -> append(sipCpp->at(start)); start += step; } } %End int __contains__(const QByteArray &a) const; %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End SIP_PYOBJECT __str__() const /DocType="str"/; %MethodCode sipRes = QByteArrayToPyStr(sipCpp); #if PY_MAJOR_VERSION >= 3 PyObject *repr = PyObject_Repr(sipRes); if (repr) { Py_DECREF(sipRes); sipRes = repr; } #endif %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QByteArray()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QByteArray()"); #endif } else { PyObject *str = QByteArrayToPyStr(sipCpp); if (str) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QByteArray(%R)", str); #else sipRes = PyString_FromString("PyQt4.QtCore.QByteArray("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(str)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif Py_DECREF(str); } } %End QByteArray operator*(int m) const; %MethodCode sipRes = new QByteArray(); while (a0-- > 0) *sipRes += *sipCpp; %End QByteArray &operator*=(int m); %MethodCode QByteArray orig(*sipCpp); sipCpp->clear(); while (a0-- > 0) *sipCpp += orig; %End bool isEmpty() const; SIP_PYOBJECT data() /DocType="Py_v3:bytes;str"/; %MethodCode // QByteArrays may contain embedded '\0's so set the size explicitly. char *res = sipCpp->data(); int len = sipCpp->size(); if (res) { if ((sipRes = SIPBytes_FromStringAndSize(res, len)) == NULL) sipIsErr = 1; } else { Py_INCREF(Py_None); sipRes = Py_None; } %End int capacity() const; void reserve(int size); void squeeze(); void push_back(const QByteArray &a); void push_front(const QByteArray &a); %If (Qt_5_0_0 -) bool contains(const QByteArray &a) const; %End %If (- Qt_5_0_0) QBool contains(const QByteArray &a) const; %End %If (Qt_4_3_0 -) QByteArray toHex() const; %End %If (Qt_4_4_0 -) QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray(), char percent = '%') const; %End %If (Qt_4_4_0 -) static QByteArray fromPercentEncoding(const QByteArray &input, char percent = '%'); %End %If (Qt_4_5_0 -) QByteArray repeated(int times) const; %End %If (Qt_4_8_0 -) void swap(QByteArray &other); %End }; bool operator==(const QByteArray &a1, const QByteArray &a2); bool operator!=(const QByteArray &a1, const QByteArray &a2); bool operator<(const QByteArray &a1, const QByteArray &a2); bool operator<=(const QByteArray &a1, const QByteArray &a2); bool operator>(const QByteArray &a1, const QByteArray &a2); bool operator>=(const QByteArray &a1, const QByteArray &a2); const QByteArray operator+(const QByteArray &a1, const QByteArray &a2); QDataStream &operator<<(QDataStream &, const QByteArray & /Constrained/); QDataStream &operator>>(QDataStream &, QByteArray & /Constrained/); QByteArray qCompress(const QByteArray &data, int compressionLevel = -1); QByteArray qUncompress(const QByteArray &data); %If (Qt_4_3_0 -) void qSwap(QByteArray &value1, QByteArray &value2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qbytearraymatcher.sip0000644000076500000240000000250612536324426022212 0ustar philstaff00000000000000// qbytearraymatcher.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QByteArrayMatcher { %TypeHeaderCode #include %End public: QByteArrayMatcher(); explicit QByteArrayMatcher(const QByteArray &pattern); QByteArrayMatcher(const QByteArrayMatcher &other); ~QByteArrayMatcher(); void setPattern(const QByteArray &pattern); int indexIn(const QByteArray &ba, int from = 0) const; QByteArray pattern() const; }; PyQt-x11-gpl-4.11.4/sip/QtCore/qchar.sip0000644000076500000240000002637612536324426017574 0ustar philstaff00000000000000// qchar.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End struct QLatin1Char /API=QString: - 2/ { %TypeHeaderCode #include %End %PickleCode char ch = sipCpp->toLatin1(); sipRes = Py_BuildValue((char *)"(s#)", &ch, 1); %End explicit QLatin1Char(char c /Encoding="Latin-1"/); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode char ch = sipCpp->toLatin1(); PyObject *str = SIPBytes_FromStringAndSize(&ch, 1); if (str) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QLatin1Char(%R)", str); #else sipRes = PyString_FromString("PyQt4.QtCore.QLatin1Char("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(str)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif Py_DECREF(str); } %End char toLatin1() const /Encoding="None"/; ushort unicode() const; }; // class QChar /API=QString:2 - ,DocType="str"/ %MappedType QChar /API=QString:2 -,DocType="str"/ { %TypeHeaderCode #include %End %ConvertToTypeCode if (sipIsErr == NULL) #if PY_MAJOR_VERSION < 3 return (PyString_Check(sipPy) || PyUnicode_Check(sipPy)); #else return PyUnicode_Check(sipPy); #endif #if PY_MAJOR_VERSION < 3 if (PyString_Check(sipPy)) { if (PyString_GET_SIZE(sipPy) != 1) { PyErr_SetString(PyExc_ValueError, "string of length 1 expected"); *sipIsErr = 1; return 0; } *sipCppPtr = new QChar(*PyString_AS_STRING(sipPy)); return sipGetState(sipTransferObj); } #endif QString qs = qpycore_PyObject_AsQString(sipPy); if (qs.size() != 1) { PyErr_SetString(PyExc_ValueError, "string of length 1 expected"); *sipIsErr = 1; return 0; } *sipCppPtr = new QChar(qs.at(0)); return sipGetState(sipTransferObj); %End %ConvertFromTypeCode return qpycore_PyObject_FromQString(QString(*sipCpp)); %End }; class QChar /API=QString: - 2/ { %TypeHeaderCode #include %End %TypeCode // This is needed by __hash__(). #include %End %PickleCode sipRes = Py_BuildValue((char *)"(H)", sipCpp->unicode()); %End public: QChar(); %If (Qt_5_0_0 -) explicit QChar(char c /Encoding="Latin-1"/); %End %If (- Qt_5_0_0) QChar(char c /Encoding="Latin-1"/); %End QChar(QLatin1Char ch); QChar(uchar c, uchar r); QChar(int rc); QChar(QChar::SpecialCharacter s /Constrained/); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode sipRes = #if PY_MAJOR_VERSION >= 3 PyUnicode_FromFormat #else PyString_FromFormat #endif ("PyQt4.QtCore.QChar(0x%04x)", sipCpp->unicode()); %End SIP_PYOBJECT __str__() const /DocType="str"/; %MethodCode sipRes = qpycore_PyObject_FromQString(QString(*sipCpp)); %End long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End enum SpecialCharacter { Null, Nbsp, ReplacementCharacter, ObjectReplacementCharacter, ByteOrderMark, ByteOrderSwapped, ParagraphSeparator, LineSeparator, %If (Qt_5_0_0 -) Tabulation, %End %If (Qt_5_0_0 -) LineFeed, %End %If (Qt_5_0_0 -) CarriageReturn, %End %If (Qt_5_0_0 -) Space, %End %If (Qt_5_0_0 -) SoftHyphen, %End %If (Qt_5_0_0 -) LastValidCodePoint, %End }; enum Category { %If (- Qt_5_0_0) NoCategory, %End Mark_NonSpacing, Mark_SpacingCombining, Mark_Enclosing, Number_DecimalDigit, Number_Letter, Number_Other, Separator_Space, Separator_Line, Separator_Paragraph, Other_Control, Other_Format, Other_Surrogate, Other_PrivateUse, Other_NotAssigned, Letter_Uppercase, Letter_Lowercase, Letter_Titlecase, Letter_Modifier, Letter_Other, Punctuation_Connector, Punctuation_Dash, %If (- Qt_5_0_0) Punctuation_Dask, %End Punctuation_Open, Punctuation_Close, Punctuation_InitialQuote, Punctuation_FinalQuote, Punctuation_Other, Symbol_Math, Symbol_Currency, Symbol_Modifier, Symbol_Other, }; enum Direction { DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN, }; enum Decomposition { NoDecomposition, Canonical, Font, NoBreak, Initial, Medial, Final, Isolated, Circle, Super, Sub, Vertical, Wide, Narrow, Small, Square, Compat, Fraction, }; enum Joining { OtherJoining, Dual, Right, Center, }; enum CombiningClass { Combining_BelowLeftAttached, Combining_BelowAttached, Combining_BelowRightAttached, Combining_LeftAttached, Combining_RightAttached, Combining_AboveLeftAttached, Combining_AboveAttached, Combining_AboveRightAttached, Combining_BelowLeft, Combining_Below, Combining_BelowRight, Combining_Left, Combining_Right, Combining_AboveLeft, Combining_Above, Combining_AboveRight, Combining_DoubleBelow, Combining_DoubleAbove, Combining_IotaSubscript, }; enum UnicodeVersion { Unicode_Unassigned, Unicode_1_1, Unicode_2_0, Unicode_2_1_2, Unicode_3_0, Unicode_3_1, Unicode_3_2, Unicode_4_0, %If (Qt_4_3_0 -) Unicode_4_1, %End %If (Qt_4_3_0 -) Unicode_5_0, %End %If (Qt_5_0_0 -) Unicode_5_1, %End %If (Qt_5_0_0 -) Unicode_5_2, %End %If (Qt_5_0_0 -) Unicode_6_0, %End %If (Qt_5_0_0 -) Unicode_6_1, %End %If (Qt_5_0_0 -) Unicode_6_2, %End }; int digitValue() const; QChar toLower() const; QChar toUpper() const; QChar::Category category() const; QChar::Direction direction() const; QChar::Joining joining() const; bool hasMirrored() const; bool isLower() const; bool isUpper() const; QChar mirroredChar() const; QString decomposition() const; QChar::Decomposition decompositionTag() const; unsigned char combiningClass() const; QChar::UnicodeVersion unicodeVersion() const; %If (PyQt_Deprecated_5_0) char toAscii() const /Encoding="None"/; %End ushort unicode() const; %If (PyQt_Deprecated_5_0) static QChar fromAscii(char c /Encoding="ASCII"/); %End bool isNull() const; bool isPrint() const; bool isPunct() const; bool isSpace() const; bool isMark() const; bool isLetter() const; bool isNumber() const; bool isLetterOrNumber() const; bool isDigit() const; bool isSymbol() const; uchar cell() const; uchar row() const; char toLatin1() const /Encoding="None"/; static QChar fromLatin1(char c /Encoding="Latin-1"/); void setCell(uchar acell); void setRow(uchar arow); %If (Qt_4_3_0 -) QChar toTitleCase() const; %End %If (Qt_4_3_0 -) QChar toCaseFolded() const; %End %If (Qt_4_3_0 -) bool isTitleCase() const; %End %If (Qt_4_3_0 -) bool isHighSurrogate() const; %End %If (Qt_4_3_0 -) bool isLowSurrogate() const; %End %If (Qt_4_3_0 -) static uint surrogateToUcs4(ushort high, ushort low); %End %If (Qt_4_3_0 -) static uint surrogateToUcs4(QChar high, QChar low); %End %If (Qt_4_3_0 -) static ushort highSurrogate(uint ucs4); %End %If (Qt_4_3_0 -) static ushort lowSurrogate(uint ucs4); %End %If (Qt_4_3_0 -) static QChar::Category category(uint ucs4); %End %If (Qt_4_3_0 -) static QChar::Direction direction(uint ucs4); %End %If (Qt_4_3_0 -) static QChar::Joining joining(uint ucs4); %End %If (Qt_4_3_0 -) static unsigned char combiningClass(uint ucs4); %End %If (Qt_4_3_0 -) static uint mirroredChar(uint ucs4); %End %If (Qt_4_3_0 -) static QChar::Decomposition decompositionTag(uint ucs4); %End %If (Qt_4_3_0 -) static int digitValue(uint ucs4); %End %If (Qt_4_3_0 -) static uint toLower(uint ucs4); %End %If (Qt_4_3_0 -) static uint toUpper(uint ucs4); %End %If (Qt_4_3_0 -) static uint toTitleCase(uint ucs4); %End %If (Qt_4_3_0 -) static uint toCaseFolded(uint ucs4); %End %If (Qt_4_3_0 -) static QChar::UnicodeVersion unicodeVersion(uint ucs4); %End %If (Qt_4_3_0 -) static QString decomposition(uint ucs4); %End %If (Qt_4_7_0 -) static bool isHighSurrogate(uint ucs4); %End %If (Qt_4_7_0 -) static bool isLowSurrogate(uint ucs4); %End %If (Qt_4_7_0 -) static bool requiresSurrogates(uint ucs4); %End %If (Qt_4_8_0 -) static QChar::UnicodeVersion currentUnicodeVersion(); %End %If (Qt_5_0_0 -) bool isNonCharacter() const; %End %If (Qt_5_0_0 -) bool isSurrogate() const; %End %If (Qt_5_0_0 -) static bool isNonCharacter(uint ucs4); %End %If (Qt_5_0_0 -) static bool isSurrogate(uint ucs4); %End %If (Qt_5_0_0 -) static bool hasMirrored(uint ucs4); %End %If (Qt_5_0_0 -) static bool isPrint(uint ucs4); %End %If (Qt_5_0_0 -) static bool isMark(uint ucs4); %End %If (Qt_5_0_0 -) static bool isPunct(uint ucs4); %End %If (Qt_5_0_0 -) static bool isSymbol(uint ucs4); %End %If (Qt_5_0_0 -) static bool isSpace(uint ucs4); %End %If (Qt_5_0_0 -) static bool isLetter(uint ucs4); %End %If (Qt_5_0_0 -) static bool isNumber(uint ucs4); %End %If (Qt_5_0_0 -) static bool isLetterOrNumber(uint ucs4); %End %If (Qt_5_0_0 -) static bool isDigit(uint ucs4); %End %If (Qt_5_0_0 -) static bool isLower(uint ucs4); %End %If (Qt_5_0_0 -) static bool isUpper(uint ucs4); %End %If (Qt_5_0_0 -) static bool isTitleCase(uint ucs4); %End }; bool operator==(QChar c1, QChar c2); bool operator!=(QChar c1, QChar c2); bool operator<=(QChar c1, QChar c2); bool operator>=(QChar c1, QChar c2); bool operator<(QChar c1, QChar c2); bool operator>(QChar c1, QChar c2); %If (Qt_5_0_0 -) QDataStream &operator<<(QDataStream &, QChar /Constrained/); %End %If (- Qt_5_0_0) QDataStream &operator<<(QDataStream &, const QChar & /Constrained/); %End QDataStream &operator>>(QDataStream &, QChar & /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtCore/qcoreapplication.sip0000644000076500000240000003057512536324426022027 0ustar philstaff00000000000000// qcoreapplication.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End %If (- Qt_5_0_0) %If (WS_WIN) // Windows specific definitions. // These would normally be in qwindowdefs.h but are needed by // qcoreapplication.h. typedef struct HWND__ *HWND; typedef unsigned UINT; typedef long LONG; typedef unsigned long DWORD; typedef UINT WPARAM; typedef LONG LPARAM; struct POINT { %TypeHeaderCode #include %End LONG x; LONG y; }; struct MSG { %TypeHeaderCode #include %End HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; }; %End %End class QCoreApplication : QObject { %TypeHeaderCode #include %End public: QCoreApplication(SIP_PYLIST argv /DocType="list-of-str"/) /PostHook=__pyQtQAppHook__/ [(int &argc, char **argv)]; %MethodCode // The Python interface is a list of argument strings that is modified. int argc; char **argv; // Convert the list. if ((argv = qpycore_ArgvToC(a0, argc)) == NULL) sipIsErr = 1; else { // Create it now the arguments are right. static int nargc; nargc = argc; Py_BEGIN_ALLOW_THREADS sipCpp = new sipQCoreApplication(nargc, argv); Py_END_ALLOW_THREADS // Now modify the original list. qpycore_UpdatePyArgv(a0, argc, argv); } %End virtual ~QCoreApplication(); %If (- Qt_5_0_0) static int argc(); %End %If (- Qt_5_0_0) static SIP_PYLIST argv() /DocType="list-of-str"/; %MethodCode // The Python interface returns a list of strings. int argc = QCoreApplication::argc(); if ((sipRes = PyList_New(argc)) == NULL) { sipIsErr = 1; } else { char **argv = QCoreApplication::argv(); for (int a = 0; a < argc; ++a) { #if PY_MAJOR_VERSION >= 3 PyObject *arg_obj = PyUnicode_FromString(argv[a]); #else PyObject *arg_obj = PyString_FromString(argv[a]); #endif if (!arg_obj) { Py_DECREF(sipRes); sipIsErr = 1; break; } PyList_SET_ITEM(sipRes, a, arg_obj); } } %End %End static void setOrganizationDomain(const QString &orgDomain); static QString organizationDomain(); static void setOrganizationName(const QString &orgName); static QString organizationName(); static void setApplicationName(const QString &application); static QString applicationName(); static QStringList arguments(); static QCoreApplication *instance(); static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %If (Py_v3) static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %End static void processEvents(QFlags flags = QEventLoop::AllEvents) /ReleaseGIL/; static void processEvents(QFlags flags, int maxtime) /ReleaseGIL/; static void exit(int returnCode = 0); static bool sendEvent(QObject *receiver, QEvent *event) /ReleaseGIL/; %If (Qt_5_0_0 -) static void postEvent(QObject *receiver, QEvent *event /Transfer/, int priority = Qt::NormalEventPriority); %End %If (- Qt_5_0_0) static void postEvent(QObject *receiver, QEvent *event /Transfer/); %End %If (Qt_4_3_0 - Qt_5_0_0) static void postEvent(QObject *receiver, QEvent *event /Transfer/, int priority); %End %If (Qt_5_0_0 -) static void sendPostedEvents(QObject *receiver = 0, int eventType = 0) /ReleaseGIL/; %End %If (- Qt_5_0_0) static void sendPostedEvents(QObject *receiver, int event_type) /ReleaseGIL/; %End %If (- Qt_5_0_0) static void sendPostedEvents() /ReleaseGIL/; %End %If (Qt_5_0_0 -) static void removePostedEvents(QObject *receiver, int eventType = 0); %End %If (- Qt_5_0_0) static void removePostedEvents(QObject *receiver); %End %If (Qt_4_3_0 - Qt_5_0_0) static void removePostedEvents(QObject *receiver, int eventType); %End static bool hasPendingEvents(); virtual bool notify(QObject *, QEvent *) /ReleaseGIL/; static bool startingUp(); static bool closingDown(); static QString applicationDirPath(); static QString applicationFilePath(); static void setLibraryPaths(const QStringList &); static QStringList libraryPaths(); static void addLibraryPath(const QString &); static void removeLibraryPath(const QString &); %If (Qt_5_0_0 -) static bool installTranslator(QTranslator *messageFile); %End %If (- Qt_5_0_0) static void installTranslator(QTranslator *); %End %If (Qt_5_0_0 -) static bool removeTranslator(QTranslator *messageFile); %End %If (- Qt_5_0_0) static void removeTranslator(QTranslator *); %End %If (PyQt_Deprecated_5_0) enum Encoding { %If (Qt_4_2_0 -) CodecForTr, %End UnicodeUTF8, DefaultCodec, %If (Qt_5_0_0 -) Latin1, %End }; %End %If (Qt_5_0_0 -) static QString translate(const char *context, const char *sourceText /Encoding="UTF-8"/, const char *disambiguation = 0, int n = -1); %End %If (Qt_4_2_0 -) %If (PyQt_Deprecated_5_0) static QString translate(const char *context, SIP_PYOBJECT sourceText /DocType="str"/, const char *disambiguation = 0, QCoreApplication::Encoding encoding = QCoreApplication::CodecForTr); %MethodCode const char *source = qpycore_encode(&a1, a3); if (source) { sipRes = new QString(QCoreApplication::translate(a0, source, a2, a3)); Py_DECREF(a1); } else { sipIsErr = 1; } %End %End %End %If (Qt_4_2_0 -) %If (PyQt_Deprecated_5_0) static QString translate(const char *context, SIP_PYOBJECT sourceText /DocType="str"/, const char *disambiguation, QCoreApplication::Encoding encoding, int n); %MethodCode const char *source = qpycore_encode(&a1, a3); if (source) { sipRes = new QString(QCoreApplication::translate(a0, source, a2, a3, a4)); Py_DECREF(a1); } else { sipIsErr = 1; } %End %End %End %If (- Qt_4_2_0) static QString translate(const char *context, SIP_PYOBJECT sourceText /DocType="str"/, const char *disambiguation = 0, QCoreApplication::Encoding encoding = QCoreApplication::DefaultCodec); %MethodCode const char *source = qpycore_encode(&a1, a3); if (source) { sipRes = new QString(QCoreApplication::translate(a0, source, a2, a3)); Py_DECREF(a1); } else { sipIsErr = 1; } %End %End static void flush() /ReleaseGIL/; %If (Qt_4_2_0 -) static void setAttribute(Qt::ApplicationAttribute attribute, bool on = true); %End %If (Qt_4_2_0 -) static bool testAttribute(Qt::ApplicationAttribute attribute); %End %If (- Qt_5_0_0) %If (WS_WIN) virtual bool winEventFilter(MSG *message, long *result); %End %End public slots: static void quit(); signals: void aboutToQuit(); protected: virtual bool event(QEvent *); public: %If (Qt_4_4_0 -) static void setApplicationVersion(const QString &version); %End %If (Qt_4_4_0 -) static QString applicationVersion(); %End %If (Qt_4_4_0 -) static qint64 applicationPid(); %End %If (Qt_5_0_0 -) static QAbstractEventDispatcher *eventDispatcher(); %End %If (Qt_5_0_0 -) static void setEventDispatcher(QAbstractEventDispatcher *eventDispatcher /Transfer/); %End %If (Qt_5_0_0 -) static bool isQuitLockEnabled(); %End %If (Qt_5_0_0 -) static void setQuitLockEnabled(bool enabled); %End %If (Qt_5_0_0 -) void installNativeEventFilter(QAbstractNativeEventFilter *filterObj); %End %If (Qt_5_0_0 -) void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj); %End private: %If (Qt_4_6_0 -) QCoreApplication(const QCoreApplication &); %End }; void qAddPostRoutine(SIP_PYCALLABLE); %MethodCode // Add it to the list of post routines if it already exists. if (qtcore_PostRoutines != NULL) { // See if there is an empty slot. bool app = true; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(qtcore_PostRoutines); ++i) if (PyList_GET_ITEM(qtcore_PostRoutines, i) == Py_None) { Py_DECREF(Py_None); Py_INCREF(a0); PyList_SET_ITEM(qtcore_PostRoutines, i, a0); app = false; break; } if (app && PyList_Append(qtcore_PostRoutines, a0) < 0) sipIsErr = 1; } else if ((qtcore_PostRoutines = PyList_New(1)) != NULL) { Py_INCREF(a0); PyList_SET_ITEM(qtcore_PostRoutines, 0, a0); qAddPostRoutine(qtcore_CallPostRoutines); } else sipIsErr = 1; %End void qRemovePostRoutine(SIP_PYCALLABLE); %MethodCode // Remove it from the list of post routines if it exists. if (qtcore_PostRoutines != NULL) for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(qtcore_PostRoutines); ++i) if (PyList_GET_ITEM(qtcore_PostRoutines, i) == a0) { Py_DECREF(a0); Py_INCREF(Py_None); PyList_SET_ITEM(qtcore_PostRoutines, i, Py_None); break; } %End // Module code needed by qAddPostRoutine() and qRemovePostRoutine(). %ModuleCode // The list of Python post routines. static PyObject *qtcore_PostRoutines = NULL; // Call all of the registered Python post routines. static void qtcore_CallPostRoutines() { for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(qtcore_PostRoutines); ++i) { PyObject *pr = PyList_GET_ITEM(qtcore_PostRoutines, i); if (pr != Py_None) { PyObject *res = PyObject_CallObject(pr, NULL); Py_XDECREF(res); } } } %End void pyqtRemoveInputHook(); %MethodCode // Clear the Python input hook installed when the module was initialised. PyOS_InputHook = 0; %End void pyqtRestoreInputHook(); %MethodCode // Restore the input hook. PyOS_InputHook = qtcore_input_hook; %End %ModuleCode #include #include #if defined(Q_OS_WIN) #include #include #else #include #endif // This is the input hook that will process events while the interpreter is // waiting for interactive input. extern "C" {static int qtcore_input_hook();} static int qtcore_input_hook() { QCoreApplication *app = QCoreApplication::instance(); if (app && app->thread() == QThread::currentThread()) { #if defined(Q_OS_WIN) QTimer timer; QObject::connect(&timer, SIGNAL(timeout()), app, SLOT(quit())); while (!_kbhit()) { // The delay is based on feedback from users. timer.start(35); QCoreApplication::exec(); timer.stop(); } QObject::disconnect(&timer, SIGNAL(timeout()), app, SLOT(quit())); #else QSocketNotifier notifier(0, QSocketNotifier::Read, 0); QObject::connect(¬ifier, SIGNAL(activated(int)), app, SLOT(quit())); QCoreApplication::exec(); QObject::disconnect(¬ifier, SIGNAL(activated(int)), app, SLOT(quit())); #endif } return 0; } %End %PostInitialisationCode // Process events from the input hook. PyOS_InputHook = qtcore_input_hook; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qcoreevent.sip0000644000076500000240000001746612536324426020651 0ustar philstaff00000000000000// qcoreevent.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QEvent /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End %ConvertToSubClassCode switch (sipCpp->type()) { case QEvent::Timer: sipType = sipType_QTimerEvent; break; case QEvent::ChildAdded: case QEvent::ChildPolished: case QEvent::ChildRemoved: sipType = sipType_QChildEvent; break; #if QT_VERSION >= 0x040200 case QEvent::DynamicPropertyChange: sipType = sipType_QDynamicPropertyChangeEvent; break; #endif #if QT_VERSION >= 0x040600 case QEvent::StateMachineSignal: sipType = sipType_QStateMachine_SignalEvent; break; case QEvent::StateMachineWrapped: sipType = sipType_QStateMachine_WrappedEvent; break; #endif default: sipType = 0; } %End public: enum Type { None, Timer, MouseButtonPress, MouseButtonRelease, MouseButtonDblClick, MouseMove, KeyPress, KeyRelease, FocusIn, FocusOut, Enter, Leave, Paint, Move, Resize, Show, Hide, Close, ParentChange, ParentAboutToChange, WindowActivate, WindowDeactivate, ShowToParent, HideToParent, Wheel, WindowTitleChange, WindowIconChange, ApplicationWindowIconChange, ApplicationFontChange, ApplicationLayoutDirectionChange, ApplicationPaletteChange, PaletteChange, Clipboard, MetaCall, SockAct, WinEventAct, DeferredDelete, DragEnter, DragMove, DragLeave, Drop, ChildAdded, ChildPolished, ChildRemoved, PolishRequest, Polish, LayoutRequest, UpdateRequest, UpdateLater, ContextMenu, InputMethod, %If (- Qt_5_0_0) AccessibilityPrepare, %End TabletMove, LocaleChange, LanguageChange, LayoutDirectionChange, TabletPress, TabletRelease, OkRequest, IconDrag, FontChange, EnabledChange, ActivationChange, StyleChange, IconTextChange, ModifiedChange, MouseTrackingChange, WindowBlocked, WindowUnblocked, WindowStateChange, ToolTip, WhatsThis, StatusTip, ActionChanged, ActionAdded, ActionRemoved, FileOpen, Shortcut, ShortcutOverride, WhatsThisClicked, ToolBarChange, %If (Qt_4_3_0 -) ApplicationActivate, %End ApplicationActivated, %If (Qt_4_3_0 -) ApplicationDeactivate, %End ApplicationDeactivated, QueryWhatsThis, EnterWhatsThisMode, LeaveWhatsThisMode, ZOrderChange, HoverEnter, HoverLeave, HoverMove, %If (- Qt_5_0_0) AccessibilityHelp, %End %If (- Qt_5_0_0) AccessibilityDescription, %End %If (- Qt_5_0_0) MenubarUpdated, %End %If (Qt_4_2_0 -) GraphicsSceneMouseMove, %End %If (Qt_4_2_0 -) GraphicsSceneMousePress, %End %If (Qt_4_2_0 -) GraphicsSceneMouseRelease, %End %If (Qt_4_2_0 -) GraphicsSceneMouseDoubleClick, %End %If (Qt_4_2_0 -) GraphicsSceneContextMenu, %End %If (Qt_4_2_0 -) GraphicsSceneHoverEnter, %End %If (Qt_4_2_0 -) GraphicsSceneHoverMove, %End %If (Qt_4_2_0 -) GraphicsSceneHoverLeave, %End %If (Qt_4_2_0 -) GraphicsSceneHelp, %End %If (Qt_4_2_0 -) GraphicsSceneDragEnter, %End %If (Qt_4_2_0 -) GraphicsSceneDragMove, %End %If (Qt_4_2_0 -) GraphicsSceneDragLeave, %End %If (Qt_4_2_0 -) GraphicsSceneDrop, %End %If (Qt_4_2_0 -) GraphicsSceneWheel, %End %If (Qt_4_4_0 -) GraphicsSceneResize, %End %If (Qt_4_4_0 -) GraphicsSceneMove, %End %If (Qt_4_2_0 -) KeyboardLayoutChange, %End %If (Qt_4_2_0 -) DynamicPropertyChange, %End %If (Qt_4_2_0 -) TabletEnterProximity, %End %If (Qt_4_2_0 -) TabletLeaveProximity, %End %If (Qt_4_3_0 -) NonClientAreaMouseMove, %End %If (Qt_4_3_0 -) NonClientAreaMouseButtonPress, %End %If (Qt_4_3_0 -) NonClientAreaMouseButtonRelease, %End %If (Qt_4_3_0 -) NonClientAreaMouseButtonDblClick, %End %If (Qt_4_3_0 -) MacSizeChange, %End %If (Qt_4_3_0 -) ContentsRectChange, %End %If (Qt_4_4_0 -) CursorChange, %End %If (Qt_4_4_0 -) ToolTipChange, %End %If (Qt_4_4_0 -) GrabMouse, %End %If (Qt_4_4_0 -) UngrabMouse, %End %If (Qt_4_4_0 -) GrabKeyboard, %End %If (Qt_4_4_0 -) UngrabKeyboard, %End %If (Qt_4_6_0 -) StateMachineSignal, %End %If (Qt_4_6_0 -) StateMachineWrapped, %End %If (Qt_4_6_0 -) TouchBegin, %End %If (Qt_4_6_0 -) TouchUpdate, %End %If (Qt_4_6_0 -) TouchEnd, %End %If (Qt_4_6_0 -) RequestSoftwareInputPanel, %End %If (Qt_4_6_0 -) CloseSoftwareInputPanel, %End %If (Qt_4_6_0 -) WinIdChange, %End %If (Qt_4_6_0 -) Gesture, %End %If (Qt_4_6_0 -) GestureOverride, %End %If (Qt_5_0_0 -) FocusAboutToChange, %End %If (Qt_5_0_0 -) ScrollPrepare, %End %If (Qt_5_0_0 -) Scroll, %End %If (Qt_5_0_0 -) Expose, %End %If (Qt_5_0_0 -) InputMethodQuery, %End %If (Qt_5_0_0 -) OrientationChange, %End %If (Qt_5_0_0 -) TouchCancel, %End %If (Qt_4_8_4 -) PlatformPanel, %End User, MaxUser, }; %If (Qt_5_0_0 -) explicit QEvent(QEvent::Type type); %End %If (- Qt_5_0_0) QEvent(QEvent::Type type); %End %If (Qt_5_0_0 -) QEvent(const QEvent &other); %End virtual ~QEvent(); QEvent::Type type() const; bool spontaneous() const; void setAccepted(bool accepted); bool isAccepted() const; void accept(); void ignore(); %If (Qt_4_4_0 -) static int registerEventType(int hint = -1); %End }; class QTimerEvent : QEvent { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QTimerEvent(int timerId); %End %If (- Qt_5_0_0) QTimerEvent(int timerId); %End virtual ~QTimerEvent(); int timerId() const; }; class QChildEvent : QEvent { %TypeHeaderCode #include %End public: QChildEvent(QEvent::Type type, QObject *child); virtual ~QChildEvent(); QObject *child() const; bool added() const; bool polished() const; bool removed() const; }; %If (Qt_4_2_0 -) class QDynamicPropertyChangeEvent : QEvent { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QDynamicPropertyChangeEvent(const QByteArray &name); %End %If (- Qt_5_0_0) QDynamicPropertyChangeEvent(const QByteArray &name); %End virtual ~QDynamicPropertyChangeEvent(); QByteArray propertyName() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qcryptographichash.sip0000644000076500000240000000352012536324426022363 0ustar philstaff00000000000000// qcryptographichash.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) class QCryptographicHash { %TypeHeaderCode #include %End public: enum Algorithm { Md4, Md5, Sha1, %If (Qt_5_0_0 -) Sha224, %End %If (Qt_5_0_0 -) Sha256, %End %If (Qt_5_0_0 -) Sha384, %End %If (Qt_5_0_0 -) Sha512, %End }; %If (Qt_5_0_0 -) explicit QCryptographicHash(QCryptographicHash::Algorithm method); %End %If (- Qt_5_0_0) QCryptographicHash(QCryptographicHash::Algorithm method); %End ~QCryptographicHash(); void reset(); void addData(const char *data /Array/, int length /ArraySize/); void addData(const QByteArray &data); %If (Qt_5_0_0 -) bool addData(QIODevice *device); %End QByteArray result() const; static QByteArray hash(const QByteArray &data, QCryptographicHash::Algorithm method); private: QCryptographicHash(const QCryptographicHash &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qdatastream.sip0000644000076500000240000002216612536324426020775 0ustar philstaff00000000000000// qdatastream.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDataStream { %TypeHeaderCode #include %End public: enum Version { Qt_1_0, Qt_2_0, Qt_2_1, Qt_3_0, Qt_3_1, Qt_3_3, Qt_4_0, Qt_4_1, %If (Qt_4_2_0 -) Qt_4_2, %End %If (Qt_4_3_0 -) Qt_4_3, %End %If (Qt_4_4_0 -) Qt_4_4, %End %If (Qt_4_5_0 -) Qt_4_5, %End %If (Qt_4_6_0 -) Qt_4_6, %End %If (Qt_4_7_0 -) Qt_4_7, %End %If (Qt_4_8_0 -) Qt_4_8, %End %If (Qt_5_0_0 -) Qt_4_9, %End %If (Qt_5_0_0 -) Qt_5_0, %End }; enum ByteOrder { BigEndian, LittleEndian, }; enum Status { Ok, ReadPastEnd, ReadCorruptData, %If (Qt_4_8_0 -) WriteFailed, %End }; QDataStream(); explicit QDataStream(QIODevice *); QDataStream(QByteArray * /Constrained/, QFlags flags); QDataStream(const QByteArray & /Constrained/); %If (Qt_5_0_0 -) ~QDataStream(); %End %If (- Qt_5_0_0) virtual ~QDataStream(); %End QIODevice *device() const; void setDevice(QIODevice *); void unsetDevice(); bool atEnd() const; QDataStream::Status status() const; void setStatus(QDataStream::Status status); void resetStatus(); QDataStream::ByteOrder byteOrder() const; void setByteOrder(QDataStream::ByteOrder); int version() const; void setVersion(int v); int skipRawData(int len) /ReleaseGIL/; // Extra methods to give explicit control over the simple data types being read and written. int readInt() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End qint8 readInt8() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End quint8 readUInt8() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End qint16 readInt16() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End quint16 readUInt16() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End qint32 readInt32() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End quint32 readUInt32() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End qint64 readInt64() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End quint64 readUInt64() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End bool readBool() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End float readFloat() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End double readDouble() /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp >> sipRes; Py_END_ALLOW_THREADS %End SIP_PYOBJECT readString() /ReleaseGIL,DocType="Py_v3:bytes;str"/; %MethodCode char *s; Py_BEGIN_ALLOW_THREADS *sipCpp >> s; Py_END_ALLOW_THREADS if (s) { sipRes = SIPBytes_FromString(s); delete[] s; } else { sipRes = Py_None; Py_INCREF(Py_None); } %End void writeInt(int i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeInt8(qint8 i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeUInt8(quint8 i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeInt16(qint16 i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeUInt16(quint16 i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeInt32(qint32 i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeUInt32(quint32 i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeInt64(qint64 i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeUInt64(quint64 i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeBool(bool i) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeFloat(float f) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeDouble(double f) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End void writeString(const char *str /Encoding="None"/) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << a0; Py_END_ALLOW_THREADS %End // Extra methods to support v2 of the QString and QVariant APIs. QString readQString() /ReleaseGIL/; %MethodCode sipRes = new QString; Py_BEGIN_ALLOW_THREADS *sipCpp >> *sipRes; Py_END_ALLOW_THREADS %End void writeQString(const QString &qstr) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << *a0; Py_END_ALLOW_THREADS %End QStringList readQStringList() /ReleaseGIL/; %MethodCode sipRes = new QStringList; Py_BEGIN_ALLOW_THREADS *sipCpp >> *sipRes; Py_END_ALLOW_THREADS %End void writeQStringList(const QStringList &qstrlst) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << *a0; Py_END_ALLOW_THREADS %End QVariant readQVariant() /ReleaseGIL/; %MethodCode sipRes = new QVariant; Py_BEGIN_ALLOW_THREADS *sipCpp >> *sipRes; Py_END_ALLOW_THREADS %End void writeQVariant(const QVariant &qvar) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << *a0; Py_END_ALLOW_THREADS %End QVariantList readQVariantList() /ReleaseGIL/; %MethodCode sipRes = new QVariantList; Py_BEGIN_ALLOW_THREADS *sipCpp >> *sipRes; Py_END_ALLOW_THREADS %End void writeQVariantList(const QVariantList &qvarlst) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << *a0; Py_END_ALLOW_THREADS %End QVariantMap readQVariantMap() /ReleaseGIL/; %MethodCode sipRes = new QVariantMap; Py_BEGIN_ALLOW_THREADS *sipCpp >> *sipRes; Py_END_ALLOW_THREADS %End void writeQVariantMap(const QVariantMap &qvarmap) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << *a0; Py_END_ALLOW_THREADS %End %If (Qt_4_5_0 -) QVariantHash readQVariantHash() /ReleaseGIL/; %MethodCode sipRes = new QVariantHash; Py_BEGIN_ALLOW_THREADS *sipCpp >> *sipRes; Py_END_ALLOW_THREADS %End void writeQVariantHash(const QVariantHash &qvarhash) /ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS *sipCpp << *a0; Py_END_ALLOW_THREADS %End %End SIP_PYOBJECT readBytes() /DocType="Py_v3:bytes;str",ReleaseGIL/; %MethodCode char *s; uint l; Py_BEGIN_ALLOW_THREADS sipCpp->readBytes(s, l); Py_END_ALLOW_THREADS if ((sipRes = SIPBytes_FromStringAndSize(s, l)) == NULL) sipIsErr = 1; if (s) delete[] s; %End SIP_PYOBJECT readRawData(int len) /DocType="Py_v3:bytes;str",ReleaseGIL/; %MethodCode char *s = new char[a0]; Py_BEGIN_ALLOW_THREADS sipCpp->readRawData(s, a0); Py_END_ALLOW_THREADS sipRes = SIPBytes_FromStringAndSize(s, a0); if (!sipRes) sipIsErr = 1; delete[] s; %End QDataStream &writeBytes(const char * /Array/, uint len /ArraySize/) /ReleaseGIL/; int writeRawData(const char * /Array/, int len /ArraySize/) /ReleaseGIL/; %If (Qt_4_6_0 -) enum FloatingPointPrecision { SinglePrecision, DoublePrecision, }; %End %If (Qt_4_6_0 -) QDataStream::FloatingPointPrecision floatingPointPrecision() const; %End %If (Qt_4_6_0 -) void setFloatingPointPrecision(QDataStream::FloatingPointPrecision precision); %End private: QDataStream(const QDataStream &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qdatetime.sip0000644000076500000240000004530412536324426020443 0ustar philstaff00000000000000// qdatetime.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QDate { %TypeHeaderCode #include %End %TypeCode #include #if PY_VERSION_HEX >= 0x02040000 #include #endif %End %ConvertToTypeCode #if PY_VERSION_HEX >= 0x02040000 if (!PyDateTimeAPI) PyDateTime_IMPORT; #endif // Allow a Python date object whenever a QDate is expected. if (sipIsErr == NULL) return ( #if PY_VERSION_HEX >= 0x02040000 PyDate_Check(sipPy) || #endif sipCanConvertToType(sipPy, sipType_QDate, SIP_NO_CONVERTORS)); #if PY_VERSION_HEX >= 0x02040000 if (PyDate_Check(sipPy)) { *sipCppPtr = new QDate(PyDateTime_GET_YEAR(sipPy), PyDateTime_GET_MONTH(sipPy), PyDateTime_GET_DAY(sipPy)); return sipGetState(sipTransferObj); } #endif *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QDate, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End %PickleCode sipRes = Py_BuildValue((char *)"iii", sipCpp->year(), sipCpp->month(), sipCpp->day()); %End public: QDate(); QDate(int y, int m, int d); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QDate()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QDate()"); #endif } else { sipRes = #if PY_MAJOR_VERSION >= 3 PyUnicode_FromFormat #else PyString_FromFormat #endif ("PyQt4.QtCore.QDate(%i, %i, %i)", sipCpp->year(), sipCpp->month(), sipCpp->day()); } %End long __hash__() const; %MethodCode if (sipIsAPIEnabled("QDate", 2, 0)) { sipRes = qHash(sipCpp->toString(Qt::ISODate)); } else { // Mimic Python's default behavour. sipRes = _Py_HashPointer(sipSelf); } %End %If (Py_DateTime) SIP_PYOBJECT toPyDate() const /DocType="datetime.date"/; %MethodCode if (!PyDateTimeAPI) PyDateTime_IMPORT; // Convert to a Python date object. sipRes = PyDate_FromDate(sipCpp->year(), sipCpp->month(), sipCpp->day()); %End %End bool isNull() const; int __bool__() const; %MethodCode sipRes = !sipCpp->isNull(); %End bool isValid() const; int year() const; int month() const; int day() const; int dayOfWeek() const; int dayOfYear() const; int daysInMonth() const; int daysInYear() const; int weekNumber(int *yearNumber = 0) const; %If (Qt_5_0_0 -) static QString shortMonthName(int month, QDate::MonthNameType type = QDate::DateFormat); %End %If (- Qt_5_0_0) static QString shortMonthName(int month); %End %If (Qt_4_5_0 - Qt_5_0_0) static QString shortMonthName(int month, QDate::MonthNameType type); %End %If (Qt_5_0_0 -) static QString shortDayName(int weekday, QDate::MonthNameType type = QDate::DateFormat); %End %If (- Qt_5_0_0) static QString shortDayName(int weekday); %End %If (Qt_4_5_0 - Qt_5_0_0) static QString shortDayName(int weekday, QDate::MonthNameType type); %End %If (Qt_5_0_0 -) static QString longMonthName(int month, QDate::MonthNameType type = QDate::DateFormat); %End %If (- Qt_5_0_0) static QString longMonthName(int month); %End %If (Qt_4_5_0 - Qt_5_0_0) static QString longMonthName(int month, QDate::MonthNameType type); %End %If (Qt_5_0_0 -) static QString longDayName(int weekday, QDate::MonthNameType type = QDate::DateFormat); %End %If (- Qt_5_0_0) static QString longDayName(int weekday); %End %If (Qt_4_5_0 - Qt_5_0_0) static QString longDayName(int weekday, QDate::MonthNameType type); %End QString toString(Qt::DateFormat format = Qt::TextDate) const; QString toString(const QString &format) const; %If (PyQt_Deprecated_5_0) bool setYMD(int y, int m, int d); %End %If (Qt_5_0_0 -) QDate addDays(qint64 days) const; %End %If (- Qt_5_0_0) QDate addDays(int days) const; %End QDate addMonths(int months) const; QDate addYears(int years) const; %If (Qt_5_0_0 -) qint64 daysTo(const QDate &) const; %End %If (- Qt_5_0_0) int daysTo(const QDate &) const; %End bool operator==(const QDate &other) const; bool operator!=(const QDate &other) const; bool operator<(const QDate &other) const; bool operator<=(const QDate &other) const; bool operator>(const QDate &other) const; bool operator>=(const QDate &other) const; static QDate currentDate(); static QDate fromString(const QString &string, Qt::DateFormat format = Qt::TextDate); static QDate fromString(const QString &s, const QString &format); static bool isValid(int y, int m, int d); static bool isLeapYear(int year); %If (- Qt_5_0_0) static uint gregorianToJulian(int y, int m, int d); %End %If (- Qt_5_0_0) static void julianToGregorian(uint jd, int &y, int &m, int &d); %End %If (Qt_5_0_0 -) static QDate fromJulianDay(qint64 jd); %End %If (- Qt_5_0_0) static QDate fromJulianDay(int jd); %End %If (Qt_5_0_0 -) qint64 toJulianDay() const; %End %If (- Qt_5_0_0) int toJulianDay() const; %End %If (Qt_4_2_0 -) bool setDate(int year, int month, int date); %End %If (Qt_4_5_0 -) void getDate(int *year, int *month, int *day); %End %If (Qt_4_5_0 -) enum MonthNameType { DateFormat, StandaloneFormat, }; %End }; class QTime { %TypeHeaderCode #include %End %TypeCode #include #if PY_VERSION_HEX >= 0x02040000 #include #endif %End %ConvertToTypeCode #if PY_VERSION_HEX >= 0x02040000 if (!PyDateTimeAPI) PyDateTime_IMPORT; #endif // Allow a Python time object whenever a QTime is expected. if (sipIsErr == NULL) return ( #if PY_VERSION_HEX >= 0x02040000 PyTime_Check(sipPy) || #endif sipCanConvertToType(sipPy, sipType_QTime, SIP_NO_CONVERTORS)); #if PY_VERSION_HEX >= 0x02040000 if (PyTime_Check(sipPy)) { *sipCppPtr = new QTime(PyDateTime_TIME_GET_HOUR(sipPy), PyDateTime_TIME_GET_MINUTE(sipPy), PyDateTime_TIME_GET_SECOND(sipPy), PyDateTime_TIME_GET_MICROSECOND(sipPy) / 1000); return sipGetState(sipTransferObj); } #endif *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QTime, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End %PickleCode sipRes = Py_BuildValue((char *)"iiii", sipCpp->hour(), sipCpp->minute(), sipCpp->second(), sipCpp->msec()); %End public: QTime(); QTime(int h, int m, int second = 0, int msec = 0); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QTime()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QTime()"); #endif } else { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QTime(%i, %i", sipCpp->hour(), sipCpp->minute()); if (sipCpp->second() || sipCpp->msec()) { qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromFormat(", %i", sipCpp->second())); if (sipCpp->msec()) qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromFormat(", %i", sipCpp->msec())); } qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromString(")")); #else sipRes = PyString_FromFormat("PyQt4.QtCore.QTime(%i, %i", sipCpp->hour(), sipCpp->minute()); if (sipCpp->second() || sipCpp->msec()) { PyString_ConcatAndDel(&sipRes, PyString_FromFormat(", %i", sipCpp->second())); if (sipCpp->msec()) PyString_ConcatAndDel(&sipRes, PyString_FromFormat(", %i", sipCpp->msec())); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } %End long __hash__() const; %MethodCode if (sipIsAPIEnabled("QTime", 2, 0)) { sipRes = qHash(sipCpp->toString(Qt::ISODate)); } else { // Mimic Python's default behavour. sipRes = _Py_HashPointer(sipSelf); } %End %If (Py_DateTime) SIP_PYOBJECT toPyTime() const /DocType="datetime.time"/; %MethodCode if (!PyDateTimeAPI) PyDateTime_IMPORT; // Convert to a Python time object. sipRes = PyTime_FromTime(sipCpp->hour(), sipCpp->minute(), sipCpp->second(), sipCpp->msec() * 1000); %End %End bool isNull() const; int __bool__() const; %MethodCode sipRes = !sipCpp->isNull(); %End bool isValid() const; int hour() const; int minute() const; int second() const; int msec() const; QString toString(Qt::DateFormat format = Qt::TextDate) const; QString toString(const QString &format) const; bool setHMS(int h, int m, int s, int msec = 0); QTime addSecs(int secs) const; int secsTo(const QTime &) const; QTime addMSecs(int ms) const; int msecsTo(const QTime &) const; bool operator==(const QTime &other) const; bool operator!=(const QTime &other) const; bool operator<(const QTime &other) const; bool operator<=(const QTime &other) const; bool operator>(const QTime &other) const; bool operator>=(const QTime &other) const; static QTime currentTime(); static QTime fromString(const QString &string, Qt::DateFormat format = Qt::TextDate); static QTime fromString(const QString &s, const QString &format); static bool isValid(int h, int m, int s, int msec = 0); void start(); int restart(); int elapsed() const; }; class QDateTime { %TypeHeaderCode #include %End %TypeCode #include #if PY_VERSION_HEX >= 0x02040000 #include #endif %End %ConvertToTypeCode #if PY_VERSION_HEX >= 0x02040000 if (!PyDateTimeAPI) PyDateTime_IMPORT; #endif // Allow a Python datetime object whenever a QDateTime is expected. if (sipIsErr == NULL) return ( #if PY_VERSION_HEX >= 0x02040000 PyDateTime_Check(sipPy) || #endif sipCanConvertToType(sipPy, sipType_QDateTime, SIP_NO_CONVERTORS)); #if PY_VERSION_HEX >= 0x02040000 if (PyDateTime_Check(sipPy)) { QDate qdate(PyDateTime_GET_YEAR(sipPy), PyDateTime_GET_MONTH(sipPy), PyDateTime_GET_DAY(sipPy)); QTime qtime(PyDateTime_DATE_GET_HOUR(sipPy), PyDateTime_DATE_GET_MINUTE(sipPy), PyDateTime_DATE_GET_SECOND(sipPy), PyDateTime_DATE_GET_MICROSECOND(sipPy) / 1000); QDateTime *qdt = new QDateTime(qdate, qtime); *sipCppPtr = qdt; return sipGetState(sipTransferObj); } #endif *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QDateTime, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End %PickleCode QDate qd = sipCpp->date(); QTime qt = sipCpp->time(); sipRes = Py_BuildValue((char *)"iiiiiiii", qd.year(), qd.month(), qd.day(), qt.hour(), qt.minute(), qt.second(), qt.msec(), (int)sipCpp->timeSpec()); %End public: QDateTime(); QDateTime(const QDateTime &other); explicit QDateTime(const QDate &); QDateTime(const QDate &date, const QTime &time, Qt::TimeSpec timeSpec = Qt::LocalTime); QDateTime(int y, int m, int d, int h, int m, int s = 0, int msec = 0, int timeSpec = 0) /NoDerived/; %MethodCode // This ctor is mainly supplied to allow pickling. QDate qd(a0, a1, a2); QTime qt(a3, a4, a5, a6); sipCpp = new QDateTime(qd, qt, (Qt::TimeSpec)a7); %End ~QDateTime(); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QDateTime()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QDateTime()"); #endif } else { QDate qd = sipCpp->date(); QTime qt = sipCpp->time(); #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QDateTime(%i, %i, %i, %i, %i", qd.year(), qd.month(), qd.day(), qt.hour(), qt.minute()); if (qt.second() || qt.msec() || sipCpp->timeSpec() != Qt::LocalTime) { qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromFormat(", %i", qt.second())); if (qt.msec() || sipCpp->timeSpec() != Qt::LocalTime) { qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromFormat(", %i", qt.msec())); if (sipCpp->timeSpec() != Qt::LocalTime) qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromFormat(", PyQt4.QtCore.Qt.TimeSpec(%i)", (int)sipCpp->timeSpec())); } } qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromString(")")); #else sipRes = PyString_FromFormat("PyQt4.QtCore.QDateTime(%i, %i, %i, %i, %i", qd.year(), qd.month(), qd.day(), qt.hour(), qt.minute()); if (qt.second() || qt.msec() || sipCpp->timeSpec() != Qt::LocalTime) { PyString_ConcatAndDel(&sipRes, PyString_FromFormat(", %i", qt.second())); if (qt.msec() || sipCpp->timeSpec() != Qt::LocalTime) { PyString_ConcatAndDel(&sipRes, PyString_FromFormat(", %i", qt.msec())); if (sipCpp->timeSpec() != Qt::LocalTime) PyString_ConcatAndDel(&sipRes, PyString_FromFormat(", PyQt4.QtCore.Qt.TimeSpec(%i)", (int)sipCpp->timeSpec())); } } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } %End long __hash__() const; %MethodCode if (sipIsAPIEnabled("QDateTime", 2, 0)) { sipRes = qHash(sipCpp->toString(Qt::ISODate)); } else { // Mimic Python's default behavour. sipRes = _Py_HashPointer(sipSelf); } %End %If (Py_DateTime) SIP_PYOBJECT toPyDateTime() const /DocType="datetime.datetime"/; %MethodCode if (!PyDateTimeAPI) PyDateTime_IMPORT; // Convert to a Python datetime object. QDate qd = sipCpp->date(); QTime qt = sipCpp->time(); sipRes = PyDateTime_FromDateAndTime(qd.year(), qd.month(), qd.day(), qt.hour(), qt.minute(), qt.second(), qt.msec() * 1000); %End %End bool isNull() const; int __bool__() const; %MethodCode sipRes = !sipCpp->isNull(); %End bool isValid() const; QDate date() const; QTime time() const; Qt::TimeSpec timeSpec() const; uint toTime_t() const; void setDate(const QDate &date); void setTime(const QTime &time); void setTimeSpec(Qt::TimeSpec spec); void setTime_t(uint secsSince1Jan1970UTC); QString toString(Qt::DateFormat format = Qt::TextDate) const; QString toString(const QString &format) const; %If (Qt_5_0_0 -) QDateTime addDays(qint64 days) const; %End %If (- Qt_5_0_0) QDateTime addDays(int days) const; %End QDateTime addMonths(int months) const; QDateTime addYears(int years) const; %If (Qt_5_0_0 -) QDateTime addSecs(qint64 secs) const; %End %If (- Qt_5_0_0) QDateTime addSecs(int secs) const; %End QDateTime addMSecs(qint64 msecs) const; QDateTime toTimeSpec(Qt::TimeSpec spec) const; QDateTime toLocalTime() const; QDateTime toUTC() const; %If (Qt_5_0_0 -) qint64 daysTo(const QDateTime &) const; %End %If (- Qt_5_0_0) int daysTo(const QDateTime &) const; %End %If (Qt_5_0_0 -) qint64 secsTo(const QDateTime &) const; %End %If (- Qt_5_0_0) int secsTo(const QDateTime &) const; %End bool operator==(const QDateTime &other) const; bool operator!=(const QDateTime &other) const; bool operator<(const QDateTime &other) const; bool operator<=(const QDateTime &other) const; bool operator>(const QDateTime &other) const; bool operator>=(const QDateTime &other) const; static QDateTime currentDateTime(); static QDateTime fromString(const QString &string, Qt::DateFormat format = Qt::TextDate); static QDateTime fromString(const QString &s, const QString &format); %If (Qt_4_2_0 -) static QDateTime fromTime_t(uint secsSince1Jan1970UTC); %End %If (Qt_4_7_0 -) qint64 toMSecsSinceEpoch() const; %End %If (Qt_4_7_0 -) void setMSecsSinceEpoch(qint64 msecs); %End %If (Qt_4_7_0 -) qint64 msecsTo(const QDateTime &) const; %End %If (Qt_4_7_0 -) static QDateTime currentDateTimeUtc(); %End %If (Qt_4_7_0 -) static QDateTime fromMSecsSinceEpoch(qint64 msecs); %End %If (Qt_4_7_0 -) static qint64 currentMSecsSinceEpoch(); %End %If (Qt_5_0_0 -) void swap(QDateTime &other); %End }; QDataStream &operator<<(QDataStream &, const QDate & /Constrained/); QDataStream &operator>>(QDataStream &, QDate & /Constrained/); QDataStream &operator<<(QDataStream &, const QTime & /Constrained/); QDataStream &operator>>(QDataStream &, QTime & /Constrained/); QDataStream &operator<<(QDataStream &, const QDateTime & /Constrained/); QDataStream &operator>>(QDataStream &, QDateTime & /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtCore/qdir.sip0000644000076500000240000001473512536324426017431 0ustar philstaff00000000000000// qdir.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QDir { %TypeHeaderCode #include %End public: enum Filter { Dirs, Files, Drives, NoSymLinks, AllEntries, TypeMask, Readable, Writable, Executable, PermissionMask, Modified, Hidden, System, AccessMask, AllDirs, CaseSensitive, NoDotAndDotDot, NoFilter, %If (Qt_4_7_0 -) NoDot, %End %If (Qt_4_7_0 -) NoDotDot, %End }; typedef QFlags Filters; enum SortFlag { Name, Time, Size, Unsorted, SortByMask, DirsFirst, Reversed, IgnoreCase, DirsLast, LocaleAware, Type, NoSort, }; typedef QFlags SortFlags; QDir(const QDir &); QDir(const QString &path /DocValue="Py_v3:''"/ = QString()); QDir(const QString &path, const QString &nameFilter, QFlags sort /DocValue="QDir.Name|QDir.IgnoreCase"/ = QDir::SortFlags(QDir::Name|QDir::IgnoreCase), QFlags filters = AllEntries); ~QDir(); void setPath(const QString &path); QString path() const; QString absolutePath() const; QString canonicalPath() const; static void addResourceSearchPath(const QString &path); QString dirName() const; QString filePath(const QString &fileName) const; QString absoluteFilePath(const QString &fileName) const; QString relativeFilePath(const QString &fileName) const; %If (- Qt_5_0_0) static QString convertSeparators(const QString &pathName); %End bool cd(const QString &dirName); bool cdUp(); QStringList nameFilters() const; void setNameFilters(const QStringList &nameFilters); QFlags filter() const; void setFilter(QFlags filter); QFlags sorting() const; void setSorting(QFlags sort); uint count() const /__len__/; QString operator[](int) const; %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = new QString(sipCpp->operator[]((int)idx)); %End QStringList operator[](SIP_PYSLICE) const; %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { sipRes = new QStringList(); for (i = 0; i < slicelength; ++i) { (*sipRes) += (*sipCpp)[start]; start += step; } } %End int __contains__(const QString &) const; %MethodCode sipRes = bool(sipCpp->entryList().contains(*a0)); %End static QStringList nameFiltersFromString(const QString &nameFilter); QStringList entryList(QFlags filters = NoFilter, QFlags sort = NoSort) const; QStringList entryList(const QStringList &nameFilters, QFlags filters = NoFilter, QFlags sort = NoSort) const; QFileInfoList entryInfoList(QFlags filters = NoFilter, QFlags sort = NoSort) const; QFileInfoList entryInfoList(const QStringList &nameFilters, QFlags filters = NoFilter, QFlags sort = NoSort) const; bool mkdir(const QString &dirName) const; bool rmdir(const QString &dirName) const; bool mkpath(const QString &dirPath) const; bool rmpath(const QString &dirPath) const; bool isReadable() const; bool exists() const; bool isRoot() const; static bool isRelativePath(const QString &path); static bool isAbsolutePath(const QString &path); bool isRelative() const; bool isAbsolute() const; bool makeAbsolute(); bool operator==(const QDir &dir) const; bool operator!=(const QDir &dir) const; bool remove(const QString &fileName); bool rename(const QString &oldName, const QString &newName); bool exists(const QString &name) const; void refresh() const; static QFileInfoList drives(); static QChar separator(); static bool setCurrent(const QString &path); static QDir current(); static QString currentPath(); static QDir home(); static QString homePath(); static QDir root(); static QString rootPath(); static QDir temp(); static QString tempPath(); static bool match(const QStringList &filters, const QString &fileName); static bool match(const QString &filter, const QString &fileName); static QString cleanPath(const QString &path); %If (Qt_4_2_0 -) static QString toNativeSeparators(const QString &pathName); %End %If (Qt_4_2_0 -) static QString fromNativeSeparators(const QString &pathName); %End %If (Qt_4_3_0 -) static void setSearchPaths(const QString &prefix, const QStringList &searchPaths); %End %If (Qt_4_3_0 -) static void addSearchPath(const QString &prefix, const QString &path); %End %If (Qt_4_3_0 -) static QStringList searchPaths(const QString &prefix); %End %If (Qt_5_0_0 -) bool removeRecursively(); %End %If (Qt_5_0_0 -) void swap(QDir &other); %End }; QFlags operator|(QDir::Filter f1, QFlags f2); QFlags operator|(QDir::SortFlag f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtCore/qdiriterator.sip0000644000076500000240000000427712536324426021203 0ustar philstaff00000000000000// qdiriterator.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %ModuleCode #include %End %End %If (Qt_4_3_0 -) class QDirIterator { %TypeHeaderCode #include %End public: enum IteratorFlag { NoIteratorFlags, FollowSymlinks, Subdirectories, }; typedef QFlags IteratorFlags; QDirIterator(const QDir &dir, QFlags flags = NoIteratorFlags); QDirIterator(const QString &path, QFlags flags = NoIteratorFlags); QDirIterator(const QString &path, QFlags filters, QFlags flags = NoIteratorFlags); QDirIterator(const QString &path, const QStringList &nameFilters, QFlags filters = QDir::NoFilter, QFlags flags = NoIteratorFlags); %If (Qt_5_0_0 -) ~QDirIterator(); %End %If (- Qt_5_0_0) virtual ~QDirIterator(); %End QString next(); bool hasNext() const; QString fileName() const; QString filePath() const; QFileInfo fileInfo() const; QString path() const; private: QDirIterator(const QDirIterator &); }; %End %If (Qt_4_3_0 -) QFlags operator|(QDirIterator::IteratorFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qeasingcurve.sip0000644000076500000240000001515312536324426021161 0ustar philstaff00000000000000// qeasingcurve.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) class QEasingCurve { %TypeHeaderCode #include %End %TypeCode // The EasingFunction callback doesn't provide a context so we support a fixed // number of different functions. const int ec_nr_custom_types = 10; struct ec_custom_type { PyObject *py_func; QEasingCurve::EasingFunction func; }; static qreal ec_call(int ec, qreal v); static qreal ec_func_0(qreal v) { return ec_call(0, v); } static qreal ec_func_1(qreal v) { return ec_call(1, v); } static qreal ec_func_2(qreal v) { return ec_call(2, v); } static qreal ec_func_3(qreal v) { return ec_call(3, v); } static qreal ec_func_4(qreal v) { return ec_call(4, v); } static qreal ec_func_5(qreal v) { return ec_call(5, v); } static qreal ec_func_6(qreal v) { return ec_call(6, v); } static qreal ec_func_7(qreal v) { return ec_call(7, v); } static qreal ec_func_8(qreal v) { return ec_call(8, v); } static qreal ec_func_9(qreal v) { return ec_call(9, v); } static ec_custom_type ec_custom_types[ec_nr_custom_types] = { {0, ec_func_0}, {0, ec_func_1}, {0, ec_func_2}, {0, ec_func_3}, {0, ec_func_4}, {0, ec_func_5}, {0, ec_func_6}, {0, ec_func_7}, {0, ec_func_8}, {0, ec_func_9}, }; static qreal ec_call(int ec, qreal v) { PyObject *res_obj; qreal res = 0.0; SIP_BLOCK_THREADS res_obj = PyObject_CallFunction(ec_custom_types[ec].py_func, (char *)"(d)", (double)v); if (res_obj) { PyErr_Clear(); res = PyFloat_AsDouble(res_obj); Py_DECREF(res_obj); if (PyErr_Occurred()) res_obj = 0; } if (!res_obj) PyErr_Print(); SIP_UNBLOCK_THREADS return res; } %End %ConvertToTypeCode // Allow a QEasingCurve::Type whenever a QEasingCurve is expected. if (sipIsErr == NULL) { if (sipCanConvertToType(sipPy, sipType_QEasingCurve, SIP_NO_CONVERTORS)) return 1; if (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_QEasingCurve_Type))) return 1; return 0; } if (sipCanConvertToType(sipPy, sipType_QEasingCurve, SIP_NO_CONVERTORS)) { *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QEasingCurve, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; } *sipCppPtr = new QEasingCurve((QEasingCurve::Type)SIPLong_AsLong(sipPy)); return sipGetState(sipTransferObj); %End public: enum Type { Linear, InQuad, OutQuad, InOutQuad, OutInQuad, InCubic, OutCubic, InOutCubic, OutInCubic, InQuart, OutQuart, InOutQuart, OutInQuart, InQuint, OutQuint, InOutQuint, OutInQuint, InSine, OutSine, InOutSine, OutInSine, InExpo, OutExpo, InOutExpo, OutInExpo, InCirc, OutCirc, InOutCirc, OutInCirc, InElastic, OutElastic, InOutElastic, OutInElastic, InBack, OutBack, InOutBack, OutInBack, InBounce, OutBounce, InOutBounce, OutInBounce, InCurve, OutCurve, SineCurve, CosineCurve, %If (Qt_5_0_0 -) BezierSpline, %End %If (Qt_5_0_0 -) TCBSpline, %End Custom, }; QEasingCurve(QEasingCurve::Type type = QEasingCurve::Linear); QEasingCurve(const QEasingCurve &other); ~QEasingCurve(); bool operator==(const QEasingCurve &other) const; bool operator!=(const QEasingCurve &other) const; qreal amplitude() const; void setAmplitude(qreal amplitude); qreal period() const; void setPeriod(qreal period); qreal overshoot() const; void setOvershoot(qreal overshoot); QEasingCurve::Type type() const; void setType(QEasingCurve::Type type); void setCustomType(SIP_PYCALLABLE func); %MethodCode int i; ec_custom_type *ct; for (i = 0; i < ec_nr_custom_types; ++i) { ct = &ec_custom_types[i]; if (!ct->py_func || ct->py_func == a0) break; } if (i == ec_nr_custom_types) { PyErr_Format(PyExc_ValueError, "a maximum of %d different easing functions are supported", ec_nr_custom_types); sipError = sipErrorFail; } else { if (!ct->py_func) { ct->py_func = a0; Py_INCREF(a0); } sipCpp->setCustomType(ct->func); } %End SIP_PYCALLABLE customType() const; %MethodCode QEasingCurve::EasingFunction func = sipCpp->customType(); sipRes = Py_None; if (func) { for (int i = 0; i < ec_nr_custom_types; ++i) { if (ec_custom_types[i].func == func) { sipRes = ec_custom_types[i].py_func; break; } } } Py_INCREF(sipRes); %End qreal valueForProgress(qreal progress) const; %If (Qt_5_0_0 -) void swap(QEasingCurve &other); %End %If (Qt_5_0_0 -) void addCubicBezierSegment(const QPointF &c1, const QPointF &c2, const QPointF &endPoint); %End %If (Qt_5_0_0 -) void addTCBSegment(const QPointF &nextPoint, qreal t, qreal c, qreal b); %End %If (Qt_5_0_0 -) QVector toCubicSpline() const; %End }; %End %If (Qt_4_7_0 -) QDataStream &operator<<(QDataStream &, const QEasingCurve & /Constrained/); %End %If (Qt_4_7_0 -) QDataStream &operator>>(QDataStream &, QEasingCurve & /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qelapsedtimer.sip0000644000076500000240000000362312536324426021323 0ustar philstaff00000000000000// qelapsedtimer.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) %ModuleCode #include %End %End %If (Qt_4_7_0 -) class QElapsedTimer { %TypeHeaderCode #include %End public: enum ClockType { SystemTime, MonotonicClock, TickCounter, MachAbsoluteTime, %If (Qt_4_8_0 -) PerformanceCounter, %End }; static QElapsedTimer::ClockType clockType(); static bool isMonotonic(); void start(); qint64 restart(); void invalidate(); bool isValid() const; qint64 elapsed() const; bool hasExpired(qint64 timeout) const; qint64 msecsSinceReference() const; qint64 msecsTo(const QElapsedTimer &other) const; qint64 secsTo(const QElapsedTimer &other) const; bool operator==(const QElapsedTimer &other) const; bool operator!=(const QElapsedTimer &other) const; %If (Qt_4_8_0 -) qint64 nsecsElapsed() const; %End }; %End %If (Qt_4_7_0 -) bool operator<(const QElapsedTimer &v1, const QElapsedTimer &v2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qeventloop.sip0000644000076500000240000000437212536324426020662 0ustar philstaff00000000000000// qeventloop.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QEventLoop : QObject { %TypeHeaderCode #include %End public: explicit QEventLoop(QObject *parent /TransferThis/ = 0); virtual ~QEventLoop(); enum ProcessEventsFlag { AllEvents, ExcludeUserInputEvents, ExcludeSocketNotifiers, WaitForMoreEvents, X11ExcludeTimers, %If (- Qt_5_0_0) DeferredDeletion, %End }; typedef QFlags ProcessEventsFlags; bool processEvents(QFlags flags = AllEvents) /ReleaseGIL/; void processEvents(QFlags flags, int maximumTime) /ReleaseGIL/; int exec(QFlags flags = AllEvents) /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %If (Py_v3) int exec(QFlags flags = AllEvents) /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %End void exit(int returnCode = 0); bool isRunning() const; void wakeUp(); public slots: void quit(); public: %If (Qt_5_0_0 -) virtual bool event(QEvent *event); %End }; QFlags operator|(QEventLoop::ProcessEventsFlag f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtCore/qeventtransition.sip0000644000076500000240000000320412536324426022074 0ustar philstaff00000000000000// qeventtransition.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QEventTransition : QAbstractTransition { %TypeHeaderCode #include %End public: QEventTransition(QState *sourceState /TransferThis/ = 0); QEventTransition(QObject *object /KeepReference=10/, QEvent::Type type, QState *sourceState /TransferThis/ = 0); virtual ~QEventTransition(); QObject *eventSource() const; void setEventSource(QObject *object /KeepReference=10/); QEvent::Type eventType() const; void setEventType(QEvent::Type type); protected: virtual bool eventTest(QEvent *event); virtual void onTransition(QEvent *event); virtual bool event(QEvent *e); private: QEventTransition(const QEventTransition &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qfile.sip0000644000076500000240000002152512536324426017565 0ustar philstaff00000000000000// qfile.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End %If (Qt_5_0_0 -) class QFile : QFileDevice { %TypeHeaderCode #include %End public: QFile(); QFile(const QString &name); explicit QFile(QObject *parent /TransferThis/); QFile(const QString &name, QObject *parent /TransferThis/); virtual ~QFile(); virtual QString fileName() const; void setFileName(const QString &name); static QByteArray encodeName(const QString &fileName); static QString decodeName(const QByteArray &localFileName); static QString decodeName(const char *localFileName /Encoding="ASCII"/); bool exists() const; static bool exists(const QString &fileName); QString readLink() const; static QString readLink(const QString &fileName); QString symLinkTarget() const; static QString symLinkTarget(const QString &fileName); bool remove() /ReleaseGIL/; static bool remove(const QString &fileName) /ReleaseGIL/; bool rename(const QString &newName) /ReleaseGIL/; static bool rename(const QString &oldName, const QString &newName) /ReleaseGIL/; bool link(const QString &newName) /ReleaseGIL/; static bool link(const QString &oldname, const QString &newName) /ReleaseGIL/; bool copy(const QString &newName) /ReleaseGIL/; static bool copy(const QString &fileName, const QString &newName) /ReleaseGIL/; virtual bool open(QFlags flags) /ReleaseGIL/; virtual qint64 size() const; virtual bool resize(qint64 sz); static bool resize(const QString &filename, qint64 sz); virtual QFlags permissions() const; static QFlags permissions(const QString &filename); virtual bool setPermissions(QFlags permissionSpec); static bool setPermissions(const QString &filename, QFlags permissionSpec); private: QFile(const QFile &); }; %End %If (- Qt_5_0_0) class QFile : QIODevice { %TypeHeaderCode #include %End public: enum FileError { NoError, ReadError, WriteError, FatalError, ResourceError, OpenError, AbortError, TimeOutError, UnspecifiedError, RemoveError, RenameError, PositionError, ResizeError, PermissionsError, CopyError, }; %If (Qt_4_4_0 -) enum MemoryMapFlags { NoOptions, }; %End enum Permission { ReadOwner, WriteOwner, ExeOwner, ReadUser, WriteUser, ExeUser, ReadGroup, WriteGroup, ExeGroup, ReadOther, WriteOther, ExeOther, }; typedef QFlags Permissions; QFile(); QFile(const QString &name); explicit QFile(QObject *parent /TransferThis/); QFile(const QString &name, QObject *parent /TransferThis/); virtual ~QFile(); QFile::FileError error() const; void unsetError(); QString fileName() const; void setFileName(const QString &name); static QByteArray encodeName(const QString &fileName); static QString decodeName(const QByteArray &localFileName); static QString decodeName(const char *localFileName /Encoding="ASCII"/); bool exists() const; static bool exists(const QString &fileName); QString readLink() const; static QString readLink(const QString &fileName); bool remove() /ReleaseGIL/; static bool remove(const QString &fileName) /ReleaseGIL/; bool rename(const QString &newName) /ReleaseGIL/; static bool rename(const QString &oldName, const QString &newName) /ReleaseGIL/; bool link(const QString &newName) /ReleaseGIL/; static bool link(const QString &oldname, const QString &newName) /ReleaseGIL/; bool copy(const QString &newName) /ReleaseGIL/; static bool copy(const QString &fileName, const QString &newName) /ReleaseGIL/; virtual bool isSequential() const; %If (Qt_4_8_0 -) enum FileHandleFlag { AutoCloseHandle, DontCloseHandle, }; %End %If (Qt_4_8_0 -) typedef QFlags FileHandleFlags; %End virtual bool open(QFlags flags) /ReleaseGIL/; bool open(int fd, QFlags flags) /ReleaseGIL/; %If (Qt_4_8_0 -) bool open(int fd, QFlags flags, QFlags handleFlags) /ReleaseGIL/; %End virtual void close() /ReleaseGIL/; virtual qint64 size() const; virtual qint64 pos() const; virtual bool seek(qint64 offset) /ReleaseGIL/; virtual bool atEnd() const; bool flush() /ReleaseGIL/; bool resize(qint64 sz); static bool resize(const QString &filename, qint64 sz); QFlags permissions() const; static QFlags permissions(const QString &filename); bool setPermissions(QFlags permissionSpec); static bool setPermissions(const QString &filename, QFlags permissionSpec); int handle() const; virtual QAbstractFileEngine *fileEngine() const; %If (Qt_4_2_0 -) QString symLinkTarget() const; %End %If (Qt_4_2_0 -) static QString symLinkTarget(const QString &fileName); %End %If (Qt_4_4_0 -) void *map(qint64 offset, qint64 size /ResultSize/, QFile::MemoryMapFlags flags = QFile::NoOptions) [uchar * (qint64 offset, qint64 size, QFile::MemoryMapFlags flags = QFile::NoOptions)]; %End %If (Qt_4_4_0 -) bool unmap(void *address) [bool (uchar *address)]; %End protected: virtual SIP_PYOBJECT readData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QFile::readData(s, a0) : sipCpp->readData(s, a0); #else len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual SIP_PYOBJECT readLineData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QFile::readLineData(s, a0) : sipCpp->readLineData(s, a0); #else len = sipCpp->sipProtectVirt_readLineData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; private: QFile(const QFile &); }; %End %If (- Qt_5_0_0) QFlags operator|(QFile::Permission f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qfiledevice.sip0000644000076500000240000001251512536324426020744 0ustar philstaff00000000000000// qfiledevice.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) %ModuleCode #include %End %End %If (Qt_5_0_0 -) class QFileDevice : QIODevice /NoDefaultCtors/ { %TypeHeaderCode #include %End public: enum FileError { NoError, ReadError, WriteError, FatalError, ResourceError, OpenError, AbortError, TimeOutError, UnspecifiedError, RemoveError, RenameError, PositionError, ResizeError, PermissionsError, CopyError, }; enum Permission { ReadOwner, WriteOwner, ExeOwner, ReadUser, WriteUser, ExeUser, ReadGroup, WriteGroup, ExeGroup, ReadOther, WriteOther, ExeOther, }; typedef QFlags Permissions; enum FileHandleFlag { AutoCloseHandle, DontCloseHandle, }; typedef QFlags FileHandleFlags; virtual ~QFileDevice(); QFileDevice::FileError error() const; void unsetError(); virtual void close() /ReleaseGIL/; virtual bool isSequential() const; int handle() const; virtual QString fileName() const; virtual qint64 pos() const; virtual bool seek(qint64 offset) /ReleaseGIL/; virtual bool atEnd() const; bool flush() /ReleaseGIL/; virtual qint64 size() const; virtual bool resize(qint64 sz); virtual QFlags permissions() const; virtual bool setPermissions(QFlags permissionSpec); enum MemoryMapFlags { NoOptions, }; void *map(qint64 offset, qint64 size /ResultSize/, QFileDevice::MemoryMapFlags flags = QFileDevice::NoOptions) [uchar * (qint64 offset, qint64 size, QFileDevice::MemoryMapFlags flags = QFileDevice::NoOptions)]; bool unmap(void *address) [bool (uchar *address)]; protected: virtual SIP_PYOBJECT readData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QFileDevice::readData(s, a0) : sipCpp->readData(s, a0); #else len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; virtual SIP_PYOBJECT readLineData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QFileDevice::readLineData(s, a0) : sipCpp->readLineData(s, a0); #else len = sipCpp->sipProtectVirt_readLineData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End private: QFileDevice(const QFileDevice &); }; %End %If (Qt_5_0_0 -) QFlags operator|(QFileDevice::Permission f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qfileinfo.sip0000644000076500000240000000615712536324426020445 0ustar philstaff00000000000000// qfileinfo.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QFileInfo { %TypeHeaderCode #include %End public: QFileInfo(); QFileInfo(const QString &file); QFileInfo(const QFile &file); QFileInfo(const QDir &dir, const QString &file); QFileInfo(const QFileInfo &fileinfo); ~QFileInfo(); bool operator==(const QFileInfo &fileinfo) const; bool operator!=(const QFileInfo &fileinfo) const; void setFile(const QString &file); void setFile(const QFile &file); void setFile(const QDir &dir, const QString &file); bool exists() const; void refresh(); QString filePath() const; QString absoluteFilePath() const; QString canonicalFilePath() const; QString fileName() const; QString baseName() const; QString completeBaseName() const; QString suffix() const; QString completeSuffix() const; QString path() const; QString absolutePath() const; QString canonicalPath() const; QDir dir() const; QDir absoluteDir() const; bool isReadable() const; bool isWritable() const; bool isExecutable() const; bool isHidden() const; bool isRelative() const; bool isAbsolute() const; bool makeAbsolute(); bool isFile() const; bool isDir() const; bool isSymLink() const; bool isRoot() const; QString readLink() const; QString owner() const; uint ownerId() const; QString group() const; uint groupId() const; %If (Qt_5_0_0 -) bool permission(QFlags permissions) const; %End %If (- Qt_5_0_0) bool permission(QFlags permissions) const; %End %If (Qt_5_0_0 -) QFlags permissions() const; %End %If (- Qt_5_0_0) QFlags permissions() const; %End qint64 size() const; QDateTime created() const; QDateTime lastModified() const; QDateTime lastRead() const; bool caching() const; void setCaching(bool on); %If (Qt_4_2_0 -) QString symLinkTarget() const; %End %If (Qt_4_3_0 -) QString bundleName() const; %End %If (Qt_4_3_0 -) bool isBundle() const; %End %If (Qt_5_0_0 -) bool isNativePath() const; %End %If (Qt_5_0_0 -) void swap(QFileInfo &other); %End }; typedef QList QFileInfoList; PyQt-x11-gpl-4.11.4/sip/QtCore/qfilesystemwatcher.sip0000644000076500000240000000366312536324426022413 0ustar philstaff00000000000000// qfilesystemwatcher.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QFileSystemWatcher : QObject { %TypeHeaderCode #include %End public: QFileSystemWatcher(QObject *parent /TransferThis/ = 0); QFileSystemWatcher(const QStringList &paths, QObject *parent /TransferThis/ = 0); virtual ~QFileSystemWatcher(); %If (Qt_5_0_0 -) bool addPath(const QString &file); %End %If (- Qt_5_0_0) void addPath(const QString &file); %End %If (Qt_5_0_0 -) QStringList addPaths(const QStringList &files); %End %If (- Qt_5_0_0) void addPaths(const QStringList &files); %End QStringList directories() const; QStringList files() const; %If (Qt_5_0_0 -) bool removePath(const QString &file); %End %If (- Qt_5_0_0) void removePath(const QString &file); %End %If (Qt_5_0_0 -) QStringList removePaths(const QStringList &files); %End %If (- Qt_5_0_0) void removePaths(const QStringList &files); %End signals: void directoryChanged(const QString &path); void fileChanged(const QString &path); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qfinalstate.sip0000644000076500000240000000245512536324426021001 0ustar philstaff00000000000000// qfinalstate.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QFinalState : QAbstractState { %TypeHeaderCode #include %End public: QFinalState(QState *parent /TransferThis/ = 0); virtual ~QFinalState(); protected: virtual void onEntry(QEvent *event); virtual void onExit(QEvent *event); virtual bool event(QEvent *e); private: QFinalState(const QFinalState &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qfsfileengine.sip0000644000076500000240000001217712536324426021307 0ustar philstaff00000000000000// qfsfileengine.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) class QFSFileEngine : QAbstractFileEngine { %TypeHeaderCode #include %End public: QFSFileEngine(); explicit QFSFileEngine(const QString &file); virtual ~QFSFileEngine(); virtual bool open(QFlags openMode) /ReleaseGIL/; %If (Qt_4_8_0 -) bool open(QFlags openMode, int fd, QFlags handleFlags) /ReleaseGIL/; %End virtual bool close() /ReleaseGIL/; virtual bool flush() /ReleaseGIL/; virtual qint64 size() const; virtual qint64 pos() const; virtual bool seek(qint64) /ReleaseGIL/; virtual bool isSequential() const; virtual bool remove() /ReleaseGIL/; virtual bool copy(const QString &newName) /ReleaseGIL/; virtual bool rename(const QString &newName) /ReleaseGIL/; virtual bool link(const QString &newName) /ReleaseGIL/; virtual bool mkdir(const QString &dirName, bool createParentDirectories) const /ReleaseGIL/; virtual bool rmdir(const QString &dirName, bool recurseParentDirectories) const /ReleaseGIL/; virtual bool setSize(qint64 size); virtual bool caseSensitive() const; virtual bool isRelativePath() const; virtual QStringList entryList(QFlags filters, const QStringList &filterNames) const; virtual QFlags fileFlags(QFlags type) const; virtual bool setPermissions(uint perms); virtual QString fileName(QAbstractFileEngine::FileName file) const; virtual uint ownerId(QAbstractFileEngine::FileOwner) const; virtual QString owner(QAbstractFileEngine::FileOwner) const; virtual QDateTime fileTime(QAbstractFileEngine::FileTime time) const; virtual void setFileName(const QString &file); virtual int handle() const; virtual SIP_PYOBJECT read(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS len = sipSelfWasArg ? sipCpp->QFSFileEngine::read(s, a0) : sipCpp->read(s, a0); Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual SIP_PYOBJECT readLine(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS len = sipSelfWasArg ? sipCpp->QFSFileEngine::readLine(s, a0) : sipCpp->readLine(s, a0); Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual qint64 write(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; bool open(QFlags flags, int fd) /ReleaseGIL/; static bool setCurrentPath(const QString &path); static QString currentPath(const QString &fileName /DocValue="Py_v3:''"/ = QString()); static QString homePath(); static QString rootPath(); static QString tempPath(); static QFileInfoList drives(); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qglobal.sip0000644000076500000240000002626112536324426020110 0ustar philstaff00000000000000// qglobal.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End // PyQt version information. int PYQT_VERSION; const char *PYQT_VERSION_STR; %ModuleCode static int PYQT_VERSION = 0x040b04; static const char *PYQT_VERSION_STR = "4.11.4"; %End const int QT_VERSION; const char *QT_VERSION_STR; typedef signed char qint8; typedef unsigned char quint8; typedef short qint16; typedef unsigned short quint16; typedef int qint32; typedef unsigned int quint32; typedef long long qint64; typedef unsigned long long quint64; typedef qint64 qlonglong; typedef quint64 qulonglong; %If (PyQt_qreal_double) typedef double qreal; %End %If (!PyQt_qreal_double) typedef float qreal; %End typedef unsigned char uchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; double qAbs(const double &t); int qRound(qreal d); qint64 qRound64(qreal d); class QSysInfo { %TypeHeaderCode #include %End public: %If (- Qt_4_2_0) enum { WordSize, }; %End %If (Qt_4_2_0 -) enum Sizes { WordSize, }; %End enum Endian { BigEndian, LittleEndian, ByteOrder, }; %If (WS_WIN) // Windows specific system info. enum WinVersion { WV_32s, WV_95, WV_98, WV_Me, WV_DOS_based, WV_NT, WV_2000, WV_XP, WV_2003, %If (Qt_4_2_0 -) WV_VISTA, %End %If (Qt_4_5_1 -) WV_WINDOWS7, %End %If (Qt_4_8_3 -) WV_WINDOWS8, %End %If (Qt_4_8_6 -) WV_WINDOWS8_1, %End %If (Qt_4_8_7 - Qt_5_0_0) WV_WINDOWS10, %End WV_NT_based, %If (Qt_4_5_0 -) WV_4_0, WV_5_0, WV_5_1, WV_5_2, WV_6_0, %End %If (Qt_4_5_1 -) WV_6_1, %End %If (Qt_4_8_3 -) WV_6_2, %End %If (Qt_4_8_6 -) WV_6_3, %End %If (Qt_4_8_7 - Qt_5_0_0) WV_10_0, %End WV_CE, WV_CENET, %If (Qt_4_4_0 -) WV_CE_5, WV_CE_6, %End WV_CE_based }; static const WinVersion WindowsVersion; %End %If (WS_MACX) // Mac specific system info. enum MacVersion { MV_Unknown, MV_9, MV_10_0, MV_10_1, MV_10_2, MV_10_3, MV_10_4, %If (Qt_4_2_0 -) MV_10_5, %End %If (Qt_4_5_1 -) MV_10_6, %End %If (Qt_4_8_0 -) MV_10_7, %End %If (Qt_4_8_3 -) MV_10_8, %End %If (Qt_4_8_6 -) MV_10_9, %End %If (Qt_4_8_7 -) MV_10_10, %End MV_CHEETAH, MV_PUMA, MV_JAGUAR, MV_PANTHER, MV_TIGER, %If (Qt_4_2_0 -) MV_LEOPARD, %End %If (Qt_4_5_1 -) MV_SNOWLEOPARD, %End %If (Qt_4_8_0 -) MV_LION, %End %If (Qt_4_8_3 -) MV_MOUNTAINLION, %End %If (Qt_4_8_6 -) MV_MAVERICKS, %End %If (Qt_4_8_7 -) MV_YOSEMITE, %End }; static const MacVersion MacintoshVersion; %End }; const char *qVersion(); bool qSharedBuild(); void qDebug(const char *); %MethodCode Py_BEGIN_ALLOW_THREADS qDebug("%s", a0); Py_END_ALLOW_THREADS %End void qWarning(const char *); %MethodCode Py_BEGIN_ALLOW_THREADS qWarning("%s", a0); Py_END_ALLOW_THREADS %End void qCritical(const char *); %MethodCode Py_BEGIN_ALLOW_THREADS qCritical("%s", a0); Py_END_ALLOW_THREADS %End void qFatal(const char *); %MethodCode Py_BEGIN_ALLOW_THREADS qFatal("%s", a0); Py_END_ALLOW_THREADS %End void qErrnoWarning(int code, const char *msg); %MethodCode Py_BEGIN_ALLOW_THREADS qErrnoWarning(a0, "%s", a1); Py_END_ALLOW_THREADS %End void qErrnoWarning(const char *msg); %MethodCode Py_BEGIN_ALLOW_THREADS qErrnoWarning("%s", a0); Py_END_ALLOW_THREADS %End enum QtMsgType { QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtSystemMsg, }; SIP_PYCALLABLE qInstallMsgHandler(SIP_PYCALLABLE /AllowNone/); %MethodCode // Treat None as the default handler. #if QT_VERSION >= 0x050000 QtMessageHandler old = qInstallMessageHandler((a0 != Py_None) ? qtcore_MsgHandler : 0); #else QtMsgHandler old = qInstallMsgHandler((a0 != Py_None) ? qtcore_MsgHandler : 0); #endif // If we recognise the old handler, then return it. Otherwise return // the default handler. This doesn't exactly mimic the Qt behaviour // but it is probably close enough for the way it will be used. sipRes = (old == qtcore_MsgHandler) ? qtcore_PyMsgHandler : Py_None; Py_INCREF(sipRes); // Save the new Python handler. Py_XDECREF(qtcore_PyMsgHandler); qtcore_PyMsgHandler = a0; Py_INCREF(qtcore_PyMsgHandler); %End // Module code needed by qInstallMsgHandler(). %ModuleCode // The user supplied Python handler. static PyObject *qtcore_PyMsgHandler = 0; // The C++ wrapper around the Python handler. #if QT_VERSION >= 0x050000 static void qtcore_MsgHandler(QtMsgType type, const QMessageLogContext &, const QString &msg) #else static void qtcore_MsgHandler(QtMsgType type, const char *msg) #endif { PyObject *res; SIP_BLOCK_THREADS #if QT_VERSION >= 0x050000 res = sipCallMethod(0, qtcore_PyMsgHandler, "Fs", type, sipType_QtMsgType, msg.toLatin1().constData()); #else res = sipCallMethod(0, qtcore_PyMsgHandler, "Fs", type, sipType_QtMsgType, msg); #endif Py_XDECREF(res); if (res != NULL && res != Py_None) { PyErr_SetString(PyExc_TypeError, "invalid result type from PyQt message handler"); res = NULL; } if (res == NULL) PyErr_Print(); SIP_UNBLOCK_THREADS } %End %If (- Qt_5_0_0) typedef bool QBool /NoTypeName/; %End // Template definition for QFlags. template class QFlags /PyQtFlags=0x1/ { public: QFlags(const QFlags &); // This is handled by the %ConvertToTypeCode. //QFlags(ENUM); // This is a convenience, eg. to restore a set of flags from QSettings. QFlags(int); QFlags(); QFlags &operator&=(int mask); QFlags &operator|=(QFlags f); //QFlags &operator|=(ENUM f); QFlags &operator^=(QFlags f); //QFlags &operator^=(ENUM f); operator int() const; QFlags operator|(QFlags f) const; //QFlags operator|(ENUM f) const; QFlags operator^(QFlags f) const; //QFlags operator^(ENUM f) const; QFlags operator&(int mask) const; //QFlags operator&(ENUM f) const; QFlags operator~() const; // These are here to ensure consistency between, for example: // Qt.AlignLeft | Qt.AlignTop | Qt.TextWordWrap and // Qt.AlignLeft | Qt.TextWordWrap | Qt.AlignTop // In the first of the above Qt.TextWordWrap is ored with a // Qt.AlignmentFlag enum. In the second it is being ored with a // Qt.Alignment class. QFlags operator|(int f); %MethodCode sipRes = new QFlags(*a0 | a1); %End QFlags operator^(int f); %MethodCode sipRes = new QFlags(*a0 ^ a1); %End // These are necessary to prevent Python comparing object IDs. bool operator==(const QFlags &f) const; %MethodCode #if QT_VERSION >= 0x050000 sipRes = (sipCpp->operator QFlags::Int() == a0->operator QFlags::Int()); #else sipRes = (sipCpp->operator int() == a0->operator int()); #endif %End bool operator!=(const QFlags &f) const; %MethodCode #if QT_VERSION >= 0x050000 sipRes = (sipCpp->operator QFlags::Int() != a0->operator QFlags::Int()); #else sipRes = (sipCpp->operator int() != a0->operator int()); #endif %End int __bool__() const; %MethodCode #if QT_VERSION >= 0x050000 sipRes = (sipCpp->operator QFlags::Int() != 0); #else sipRes = (sipCpp->operator int() != 0); #endif %End %ConvertToTypeCode // Allow an instance of the base enum whenever a QFlags is expected. if (sipIsErr == NULL) return (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_ENUM)) || sipCanConvertToType(sipPy, sipType_QFlags, SIP_NO_CONVERTORS)); if (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_ENUM))) { *sipCppPtr = new QFlags(int(SIPLong_AsLong(sipPy))); return sipGetState(sipTransferObj); } *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QFlags, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End }; // Hook's into Qt's resource system. %ModuleCode QT_BEGIN_NAMESPACE extern bool qRegisterResourceData(int, const unsigned char *, const unsigned char *, const unsigned char *); extern bool qUnregisterResourceData(int, const unsigned char *, const unsigned char *, const unsigned char *); QT_END_NAMESPACE %End bool qRegisterResourceData(int, const unsigned char *, const unsigned char *, const unsigned char *); bool qUnregisterResourceData(int, const unsigned char *, const unsigned char *, const unsigned char *); bool qFuzzyCompare(double p1, double p2); bool qIsNull(double d); %If (Qt_4_2_0 -) void qsrand(uint seed); %End %If (Qt_4_2_0 -) int qrand(); %End %If (Qt_5_0_0 -) typedef void *QFunctionPointer; %End %If (Qt_5_0_0 -) // Mapped type for qintptr. // Map qintptr onto sip.voidptr. This means either an address (on Windows) or // an integer file descriptor (on everything else) can be used. %MappedType qintptr /DocType="sip.voidptr"/ { %TypeHeaderCode #include %End %ConvertToTypeCode qintptr ptr = (qintptr)sipConvertToVoidPtr(sipPy); if (!sipIsErr) return !PyErr_Occurred(); // Mapped types deal with pointers, so create one on the heap. qintptr *heap = new qintptr; *heap = ptr; *sipCppPtr = heap; // Make sure the pointer doesn't leak. return SIP_TEMPORARY; %End %ConvertFromTypeCode return sipConvertFromVoidPtr((void *)*sipCpp); %End }; %End // Mapped type for quintptr. // Map quintptr onto sip.voidptr. This means either an address (on Windows) or // an integer file descriptor (on everything else) can be used. %MappedType quintptr /DocType="sip.voidptr"/ { %TypeHeaderCode #include %End %ConvertToTypeCode quintptr ptr = (quintptr)sipConvertToVoidPtr(sipPy); if (!sipIsErr) return !PyErr_Occurred(); // Mapped types deal with pointers, so create one on the heap. quintptr *heap = new quintptr; *heap = ptr; *sipCppPtr = heap; // Make sure the pointer doesn't leak. return SIP_TEMPORARY; %End %ConvertFromTypeCode return sipConvertFromVoidPtr((void *)*sipCpp); %End }; // Implementations of pyqt[Set]PickleProtocol(). void pyqtSetPickleProtocol(SIP_PYOBJECT /DocType="int-or-None"/); %MethodCode Py_XDECREF(qpycore_pickle_protocol); qpycore_pickle_protocol = a0; Py_INCREF(qpycore_pickle_protocol); %End SIP_PYOBJECT pyqtPickleProtocol() /DocType="int-or-None"/; %MethodCode sipRes = qpycore_pickle_protocol; if (!sipRes) sipRes = Py_None; Py_INCREF(sipRes); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qhash.sip0000644000076500000240000002342312536324426017570 0ustar philstaff00000000000000// qhash.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // QHash is implemented as a Python dictionary. template %MappedType QHash /DocType="dict-of-TYPE1-TYPE2"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the dictionary. PyObject *d = PyDict_New(); if (!d) return NULL; // Set the dictionary elements. QHash::const_iterator i = sipCpp->constBegin(); while (i != sipCpp->constEnd()) { TYPE1 *t1 = new TYPE1(i.key()); TYPE2 *t2 = new TYPE2(i.value()); PyObject *t1obj = sipConvertFromNewType(t1, sipType_TYPE1, sipTransferObj); PyObject *t2obj = sipConvertFromNewType(t2, sipType_TYPE2, sipTransferObj); if (t1obj == NULL || t2obj == NULL || PyDict_SetItem(d, t1obj, t2obj) < 0) { Py_DECREF(d); if (t1obj) { Py_DECREF(t1obj); } else { delete t1; } if (t2obj) { Py_DECREF(t2obj); } else { delete t2; } return NULL; } Py_DECREF(t1obj); Py_DECREF(t2obj); ++i; } return d; %End %ConvertToTypeCode PyObject *t1obj, *t2obj; SIP_SSIZE_T i = 0; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyDict_Check(sipPy)) return 0; while (PyDict_Next(sipPy, &i, &t1obj, &t2obj)) { if (!sipCanConvertToType(t1obj, sipType_TYPE1, SIP_NOT_NONE)) return 0; if (!sipCanConvertToType(t2obj, sipType_TYPE2, SIP_NOT_NONE)) return 0; } return 1; } QHash *qm = new QHash; while (PyDict_Next(sipPy, &i, &t1obj, &t2obj)) { int state1, state2; TYPE1 *t1 = reinterpret_cast(sipConvertToType(t1obj, sipType_TYPE1, sipTransferObj, SIP_NOT_NONE, &state1, sipIsErr)); TYPE2 *t2 = reinterpret_cast(sipConvertToType(t2obj, sipType_TYPE2, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr)); if (*sipIsErr) { sipReleaseType(t1, sipType_TYPE1, state1); sipReleaseType(t2, sipType_TYPE2, state2); delete qm; return 0; } qm->insert(*t1, *t2); sipReleaseType(t1, sipType_TYPE1, state1); sipReleaseType(t2, sipType_TYPE2, state2); } *sipCppPtr = qm; return sipGetState(sipTransferObj); %End }; // QHash is implemented as a Python dictionary. template %MappedType QHash /DocType="dict-of-int-TYPE"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the dictionary. PyObject *d = PyDict_New(); if (!d) return NULL; // Set the dictionary elements. QHash::const_iterator i = sipCpp->constBegin(); while (i != sipCpp->constEnd()) { TYPE *t = new TYPE(i.value()); PyObject *kobj = SIPLong_FromLong(i.key()); PyObject *tobj = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj); if (kobj == NULL || tobj == NULL || PyDict_SetItem(d, kobj, tobj) < 0) { Py_DECREF(d); if (kobj) { Py_DECREF(kobj); } if (tobj) { Py_DECREF(tobj); } else { delete t; } return NULL; } Py_DECREF(kobj); Py_DECREF(tobj); ++i; } return d; %End %ConvertToTypeCode PyObject *kobj, *tobj; SIP_SSIZE_T i = 0; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyDict_Check(sipPy)) return 0; while (PyDict_Next(sipPy, &i, &kobj, &tobj)) if (!sipCanConvertToType(tobj, sipType_TYPE, SIP_NOT_NONE)) return 0; return 1; } QHash *qm = new QHash; while (PyDict_Next(sipPy, &i, &kobj, &tobj)) { int state, k = SIPLong_AsLong(kobj); TYPE *t = reinterpret_cast(sipConvertToType(tobj, sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(t, sipType_TYPE, state); delete qm; return 0; } qm->insert(k, *t); sipReleaseType(t, sipType_TYPE, state); } *sipCppPtr = qm; return sipGetState(sipTransferObj); %End }; // QMultiHash is implemented as a Python dictionary. template %MappedType QMultiHash /DocType="dict-of-TYPE1-list-of-TYPE2"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the dictionary. PyObject *d = PyDict_New(); if (!d) return NULL; // Set the dictionary elements. QMultiHash::const_iterator i = sipCpp->constBegin(); while (i != sipCpp->constEnd()) { TYPE1 *t1 = new TYPE1(i.key()); TYPE2 *t2 = new TYPE2(i.value()); PyObject *t1obj = sipConvertFromNewType(t1, sipType_TYPE1, sipTransferObj); PyObject *t2obj = sipConvertFromNewType(t2, sipType_TYPE2, sipTransferObj); if (t1obj == NULL || t2obj == NULL) { Py_DECREF(d); if (t1obj) { Py_DECREF(t1obj); } else { delete t1; } if (t2obj) { Py_DECREF(t2obj); } else { delete t2; } return NULL; } PyObject *vobj = PyDict_GetItem(d, t1obj); if (vobj != NULL) { // Newer items are inserted (rather than appended) to mimic the // behaviour of QMultiHash::find() that returns an iterator that // initially references the most recently inserted item. if (PyList_Insert(vobj, 0, t2obj) < 0) vobj = NULL; } else { if ((vobj = PyList_New(1)) != NULL) { PyList_SET_ITEM(vobj, 0, t2obj); Py_INCREF(t2obj); if (PyDict_SetItem(d, t1obj, vobj) < 0) { Py_DECREF(vobj); vobj = NULL; } } } Py_DECREF(t1obj); Py_DECREF(t2obj); if (vobj == NULL) { Py_DECREF(d); return NULL; } ++i; } return d; %End %ConvertToTypeCode PyObject *t1obj, *t2obj, *vobj; SIP_SSIZE_T i = 0, vi, len; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyDict_Check(sipPy)) return 0; while (PyDict_Next(sipPy, &i, &t1obj, &vobj)) { if (!sipCanConvertToType(t1obj, sipType_TYPE1, SIP_NOT_NONE)) return 0; if (!PySequence_Check(vobj)) return 0; len = PySequence_Size(vobj); // The sequence cannot be empty. if (len <= 0) return 0; for (vi = 0; vi < len; ++vi) { if ((t2obj = PySequence_ITEM(vobj, vi)) == NULL) return 0; if (!sipCanConvertToType(t2obj, sipType_TYPE2, SIP_NOT_NONE)) { Py_DECREF(t2obj); return 0; } Py_DECREF(t2obj); } } return 1; } QMultiHash *qm = new QMultiHash; while (PyDict_Next(sipPy, &i, &t1obj, &vobj)) { int state1; TYPE1 *t1 = reinterpret_cast(sipConvertToType(t1obj, sipType_TYPE1, sipTransferObj, SIP_NOT_NONE, &state1, sipIsErr)); // Insert from the end of the sequence (see the above comment about // QMultiHash::find(). for (vi = PySequence_Size(vobj) - 1; vi >= 0; --vi) { if ((t2obj = PySequence_ITEM(vobj, vi)) == NULL) *sipIsErr = 1; int state2; TYPE2 *t2 = reinterpret_cast(sipConvertToType(t2obj, sipType_TYPE2, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr)); if (*sipIsErr) { Py_XDECREF(t2obj); sipReleaseType(t1, sipType_TYPE1, state1); sipReleaseType(t2, sipType_TYPE2, state2); delete qm; return 0; } qm->insert(*t1, *t2); sipReleaseType(t2, sipType_TYPE2, state2); Py_DECREF(t2obj); } sipReleaseType(t1, sipType_TYPE1, state1); } *sipCppPtr = qm; return sipGetState(sipTransferObj); %End }; PyQt-x11-gpl-4.11.4/sip/QtCore/qhistorystate.sip0000644000076500000240000000327312536324426021410 0ustar philstaff00000000000000// qhistorystate.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QHistoryState : QAbstractState { %TypeHeaderCode #include %End public: enum HistoryType { ShallowHistory, DeepHistory, }; QHistoryState(QState *parent /TransferThis/ = 0); QHistoryState(QHistoryState::HistoryType type, QState *parent /TransferThis/ = 0); virtual ~QHistoryState(); QAbstractState *defaultState() const; void setDefaultState(QAbstractState *state /KeepReference/); QHistoryState::HistoryType historyType() const; void setHistoryType(QHistoryState::HistoryType type); protected: virtual void onEntry(QEvent *event); virtual void onExit(QEvent *event); virtual bool event(QEvent *e); private: QHistoryState(const QHistoryState &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qiodevice.sip0000644000076500000240000002136512536324426020437 0ustar philstaff00000000000000// qiodevice.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QIODevice : QObject { %TypeHeaderCode #include %End public: enum OpenModeFlag { NotOpen, ReadOnly, WriteOnly, ReadWrite, Append, Truncate, Text, Unbuffered, }; typedef QFlags OpenMode; QIODevice(); explicit QIODevice(QObject *parent /TransferThis/); virtual ~QIODevice(); QFlags openMode() const; void setTextModeEnabled(bool enabled); bool isTextModeEnabled() const; bool isOpen() const; bool isReadable() const; bool isWritable() const; virtual bool isSequential() const; virtual bool open(QFlags mode) /ReleaseGIL/; virtual void close() /ReleaseGIL/; virtual qint64 pos() const; virtual qint64 size() const; virtual bool seek(qint64 pos) /ReleaseGIL/; virtual bool atEnd() const; virtual bool reset(); virtual qint64 bytesAvailable() const; virtual qint64 bytesToWrite() const; SIP_PYOBJECT read(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS len = sipCpp->read(s, a0); Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End QByteArray readAll() /ReleaseGIL/; SIP_PYOBJECT readLine(qint64 maxlen=0) /DocType="Py_v3:bytes;str",ReleaseGIL/; %MethodCode // The two C++ overloads would have the same Python signature so we get most of // the combined functionality by treating an argument of 0 (the default) as // meaning return a QByteArray of any length. Otherwise it is treated as a // maximum buffer size and a Python string is returned. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else if (a0 == 0) { QByteArray *ba; Py_BEGIN_ALLOW_THREADS ba = new QByteArray(sipCpp->readLine(a0)); Py_END_ALLOW_THREADS sipRes = sipBuildResult(&sipIsErr, "N", ba, sipType_QByteArray, 0); } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS len = sipCpp->readLine(s, a0); Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual bool canReadLine() const; QByteArray peek(qint64 maxlen) /ReleaseGIL/; qint64 write(const QByteArray &data) /ReleaseGIL/; virtual bool waitForReadyRead(int msecs) /ReleaseGIL/; virtual bool waitForBytesWritten(int msecs) /ReleaseGIL/; void ungetChar(char c); bool putChar(char c); bool getChar(char *c /Encoding="None",Out/); QString errorString() const; signals: void readyRead(); void bytesWritten(qint64 bytes); void aboutToClose(); %If (Qt_4_4_0 -) void readChannelFinished(); %End protected: virtual SIP_PYOBJECT readData(qint64 maxlen) = 0 /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipCpp->readData(s, a0); #else len = sipCpp->sipProtect_readData(s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End %VirtualCatcherCode PyObject *result = sipCallMethod(&sipIsErr, sipMethod, "n", a1); if (result != NULL) { PyObject *buf; sipParseResult(&sipIsErr, sipMethod, result, "O", &buf); if (buf == Py_None) sipRes = -1L; else if (!SIPBytes_Check(buf)) { sipBadCatcherResult(sipMethod); sipIsErr = 1; } else { memcpy(a0, SIPBytes_AS_STRING(buf), SIPBytes_GET_SIZE(buf)); sipRes = SIPBytes_GET_SIZE(buf); } Py_DECREF(buf); Py_DECREF(result); } %End virtual SIP_PYOBJECT readLineData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QIODevice::readLineData(s, a0) : sipCpp->readLineData(s, a0); #else len = sipCpp->sipProtectVirt_readLineData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End %VirtualCatcherCode PyObject *result = sipCallMethod(&sipIsErr, sipMethod, "n", a1); if (result != NULL) { PyObject *buf; sipParseResult(&sipIsErr, sipMethod, result, "O", &buf); if (buf == Py_None) sipRes = -1L; else if (!SIPBytes_Check(buf)) { sipBadCatcherResult(sipMethod); sipIsErr = 1; } else { memcpy(a0, SIPBytes_AS_STRING(buf), SIPBytes_GET_SIZE(buf)); sipRes = SIPBytes_GET_SIZE(buf); } Py_DECREF(buf); Py_DECREF(result); } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) = 0; void setOpenMode(QFlags openMode); void setErrorString(const QString &errorString); private: QIODevice(const QIODevice &); }; QFlags operator|(QIODevice::OpenModeFlag f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtCore/qlibrary.sip0000644000076500000240000000617712536324426020320 0ustar philstaff00000000000000// qlibrary.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QLibrary : QObject { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum LoadHint { ResolveAllSymbolsHint, ExportExternalSymbolsHint, LoadArchiveMemberHint, %If (Qt_5_0_0 -) PreventUnloadHint, %End }; %End %If (Qt_4_2_0 -) typedef QFlags LoadHints; %End explicit QLibrary(QObject *parent /TransferThis/ = 0); QLibrary(const QString &fileName, QObject *parent /TransferThis/ = 0); QLibrary(const QString &fileName, int verNum, QObject *parent /TransferThis/ = 0); %If (Qt_4_4_0 -) QLibrary(const QString &fileName, const QString &version, QObject *parent /TransferThis/ = 0); %End virtual ~QLibrary(); %If (Qt_4_2_0 -) QString errorString() const; %End QString fileName() const; bool isLoaded() const; bool load(); %If (Qt_4_2_0 -) QFlags loadHints() const; %End %If (Qt_5_0_0 -) QFunctionPointer resolve(const char *symbol); %End %If (- Qt_5_0_0) void *resolve(const char *symbol); %End %If (Qt_5_0_0 -) static QFunctionPointer resolve(const QString &fileName, const char *symbol); %End %If (- Qt_5_0_0) static void *resolve(const QString &fileName, const char *symbol); %End %If (Qt_5_0_0 -) static QFunctionPointer resolve(const QString &fileName, int verNum, const char *symbol); %End %If (- Qt_5_0_0) static void *resolve(const QString &fileName, int verNum, const char *symbol); %End %If (Qt_5_0_0 -) static QFunctionPointer resolve(const QString &fileName, const QString &version, const char *symbol); %End %If (Qt_4_4_0 - Qt_5_0_0) static void *resolve(const QString &fileName, const QString &version, const char *symbol); %End bool unload(); static bool isLibrary(const QString &fileName); void setFileName(const QString &fileName); void setFileNameAndVersion(const QString &fileName, int verNum); %If (Qt_4_4_0 -) void setFileNameAndVersion(const QString &fileName, const QString &version); %End %If (Qt_4_2_0 -) void setLoadHints(QFlags hints); %End }; %If (Qt_4_2_0 -) QFlags operator|(QLibrary::LoadHint f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qlibraryinfo.sip0000644000076500000240000000353212536324426021164 0ustar philstaff00000000000000// qlibraryinfo.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QLibraryInfo { %TypeHeaderCode #include %End public: static QString licensee(); static QString licensedProducts(); %If (- Qt_5_0_0) static QString buildKey(); %End enum LibraryLocation { PrefixPath, DocumentationPath, HeadersPath, LibrariesPath, BinariesPath, PluginsPath, DataPath, TranslationsPath, SettingsPath, %If (- Qt_5_0_0) DemosPath, %End ExamplesPath, %If (Qt_4_7_0 -) ImportsPath, %End %If (Qt_5_0_0 -) TestsPath, %End %If (Qt_5_0_0 -) LibraryExecutablesPath, %End %If (Qt_5_0_0 -) Qml2ImportsPath, %End %If (Qt_5_0_0 -) ArchDataPath, %End }; static QString location(QLibraryInfo::LibraryLocation); %If (Qt_4_6_0 -) static QDate buildDate(); %End %If (Qt_5_0_0 -) static bool isDebugBuild(); %End private: QLibraryInfo(); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qline.sip0000644000076500000240000001463312536324426017577 0ustar philstaff00000000000000// qline.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QLine { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"iiii", sipCpp->x1(), sipCpp->y1(), sipCpp->x2(), sipCpp->y2()); %End public: bool operator!=(const QLine &d) const; QLine(); QLine(const QPoint &pt1_, const QPoint &pt2_); QLine(int x1pos, int y1pos, int x2pos, int y2pos); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QLine()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QLine()"); #endif } else { sipRes = #if PY_MAJOR_VERSION >= 3 PyUnicode_FromFormat #else PyString_FromFormat #endif ("PyQt4.QtCore.QLine(%i, %i, %i, %i)", sipCpp->x1(), sipCpp->y1(), sipCpp->x2(), sipCpp->y2()); } %End bool isNull() const; int __bool__() const; %MethodCode sipRes = !sipCpp->isNull(); %End int x1() const; int y1() const; int x2() const; int y2() const; QPoint p1() const; QPoint p2() const; int dx() const; int dy() const; void translate(const QPoint &point); void translate(int adx, int ady); bool operator==(const QLine &d) const; %If (Qt_4_4_0 -) QLine translated(const QPoint &p) const; %End %If (Qt_4_4_0 -) QLine translated(int adx, int ady) const; %End %If (Qt_4_4_0 -) void setP1(const QPoint &aP1); %End %If (Qt_4_4_0 -) void setP2(const QPoint &aP2); %End %If (Qt_4_4_0 -) void setPoints(const QPoint &aP1, const QPoint &aP2); %End %If (Qt_4_4_0 -) void setLine(int aX1, int aY1, int aX2, int aY2); %End }; QDataStream &operator<<(QDataStream &, const QLine & /Constrained/); QDataStream &operator>>(QDataStream &, QLine & /Constrained/); class QLineF { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"dddd", sipCpp->x1(), sipCpp->y1(), sipCpp->x2(), sipCpp->y2()); %End public: enum IntersectType { NoIntersection, BoundedIntersection, UnboundedIntersection, }; QLineF(const QLine &line); bool isNull() const; int __bool__() const; %MethodCode sipRes = !sipCpp->isNull(); %End qreal length() const; QLineF unitVector() const; QLineF::IntersectType intersect(const QLineF &l, QPointF *intersectionPoint) const; qreal angle(const QLineF &l) const; bool operator!=(const QLineF &d) const; QLineF(); QLineF(const QPointF &apt1, const QPointF &apt2); QLineF(qreal x1pos, qreal y1pos, qreal x2pos, qreal y2pos); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QLineF()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QLineF()"); #endif } else { PyObject *x1 = PyFloat_FromDouble(sipCpp->x1()); PyObject *y1 = PyFloat_FromDouble(sipCpp->y1()); PyObject *x2 = PyFloat_FromDouble(sipCpp->x2()); PyObject *y2 = PyFloat_FromDouble(sipCpp->y2()); if (x1 && y1 && x2 && y2) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QLineF(%R, %R, %R, %R)", x1, y1, x2, y2); #else sipRes = PyString_FromString("PyQt4.QtCore.QLineF("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(x1)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(y1)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(x2)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(y2)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } Py_XDECREF(x1); Py_XDECREF(y1); Py_XDECREF(x2); Py_XDECREF(y2); } %End qreal x1() const; qreal y1() const; qreal x2() const; qreal y2() const; QPointF p1() const; QPointF p2() const; qreal dx() const; qreal dy() const; QLineF normalVector() const; void translate(const QPointF &point); void translate(qreal adx, qreal ady); void setLength(qreal len); QPointF pointAt(qreal t) const; QLine toLine() const; bool operator==(const QLineF &d) const; %If (Qt_4_4_0 -) static QLineF fromPolar(qreal length, qreal angle); %End %If (Qt_4_4_0 -) qreal angle() const; %End %If (Qt_4_4_0 -) void setAngle(qreal angle); %End %If (Qt_4_4_0 -) qreal angleTo(const QLineF &l) const; %End %If (Qt_4_4_0 -) QLineF translated(const QPointF &p) const; %End %If (Qt_4_4_0 -) QLineF translated(qreal adx, qreal ady) const; %End %If (Qt_4_4_0 -) void setP1(const QPointF &aP1); %End %If (Qt_4_4_0 -) void setP2(const QPointF &aP2); %End %If (Qt_4_4_0 -) void setPoints(const QPointF &aP1, const QPointF &aP2); %End %If (Qt_4_4_0 -) void setLine(qreal aX1, qreal aY1, qreal aX2, qreal aY2); %End }; QDataStream &operator<<(QDataStream &, const QLineF & /Constrained/); QDataStream &operator>>(QDataStream &, QLineF & /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtCore/qlist.sip0000644000076500000240000004444112536324426017623 0ustar philstaff00000000000000// qlist.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // QList is implemented as a Python list. template %MappedType QList /DocType="list-of-TYPE"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { TYPE *t = new TYPE(sipCpp->at(i)); PyObject *tobj; if ((tobj = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj)) == NULL) { Py_DECREF(l); delete t; return NULL; } PyList_SET_ITEM(l, i, tobj); } return l; %End %ConvertToTypeCode SIP_SSIZE_T len; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0) return 0; for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *itm = PySequence_ITEM(sipPy, i); bool ok = (itm && sipCanConvertToType(itm, sipType_TYPE, SIP_NOT_NONE)); Py_XDECREF(itm); if (!ok) return 0; } return 1; } QList *ql = new QList; len = PySequence_Size(sipPy); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *itm = PySequence_ITEM(sipPy, i); int state; TYPE *t = reinterpret_cast(sipConvertToType(itm, sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); Py_DECREF(itm); if (*sipIsErr) { sipReleaseType(t, sipType_TYPE, state); delete ql; return 0; } ql->append(*t); sipReleaseType(t, sipType_TYPE, state); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; // QList is implemented as a Python list. template %MappedType QList /DocType="list-of-TYPE"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { TYPE *t = sipCpp->at(i); PyObject *tobj; // The explicit (void *) cast allows TYPE to be const. if ((tobj = sipConvertFromType((void *)t, sipType_TYPE, sipTransferObj)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, tobj); } return l; %End %ConvertToTypeCode SIP_SSIZE_T len; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0) return 0; for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *itm = PySequence_ITEM(sipPy, i); bool ok = (itm && sipCanConvertToType(itm, sipType_TYPE, 0)); Py_XDECREF(itm); if (!ok) return 0; } return 1; } QList *ql = new QList; len = PySequence_Size(sipPy); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *itm = PySequence_ITEM(sipPy, i); TYPE *t = reinterpret_cast(sipConvertToType(itm, sipType_TYPE, sipTransferObj, 0, 0, sipIsErr)); Py_DECREF(itm); if (*sipIsErr) { delete ql; return 0; } ql->append(t); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; // QList > is implemented as a Python list of 2-element tuples. template %MappedType QList > /DocType="list-of-tuple-of-TYPE1-TYPE2"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { const QPair &p = sipCpp->at(i); TYPE1 *s1 = new TYPE1(p.first); TYPE2 *s2 = new TYPE2(p.second); PyObject *pobj; if ((pobj = sipBuildResult(NULL, "(NN)", s1, sipType_TYPE1, sipTransferObj, s2, sipType_TYPE2, sipTransferObj)) == NULL) { Py_DECREF(l); delete s1; delete s2; return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode SIP_SSIZE_T len; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0) return 0; for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *seq = PySequence_ITEM(sipPy, i); if (!seq || !PySequence_Check(seq) || PySequence_Size(seq) != 2) { Py_XDECREF(seq); return 0; } PyObject *itm0 = PySequence_ITEM(seq, 0); PyObject *itm1 = PySequence_ITEM(seq, 1); if (!itm0 || !itm1) { Py_XDECREF(itm0); Py_XDECREF(itm1); Py_DECREF(seq); return 0; } if (!sipCanConvertToType(itm0, sipType_TYPE1, SIP_NOT_NONE) || !sipCanConvertToType(itm1, sipType_TYPE2, SIP_NOT_NONE)) { Py_DECREF(itm0); Py_DECREF(itm1); Py_DECREF(seq); return 0; } } return 1; } QList > *ql = new QList >; len = PySequence_Size(sipPy); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *seq = PySequence_ITEM(sipPy, i); PyObject *itm0 = PySequence_ITEM(seq, 0); PyObject *itm1 = PySequence_ITEM(seq, 1); int state1, state2; TYPE1 *s1 = reinterpret_cast(sipConvertToType(itm0, sipType_TYPE1, sipTransferObj, SIP_NOT_NONE, &state1, sipIsErr)); TYPE2 *s2 = reinterpret_cast(sipConvertToType(itm1, sipType_TYPE2, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr)); Py_DECREF(itm0); Py_DECREF(itm1); Py_DECREF(seq); if (*sipIsErr) { sipReleaseType(s1, sipType_TYPE1, state1); sipReleaseType(s2, sipType_TYPE2, state2); delete ql; return 0; } ql->append(QPair(*s1, *s2)); sipReleaseType(s1, sipType_TYPE1, state1); sipReleaseType(s2, sipType_TYPE2, state2); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; // QList > is implemented as a Python list of 2-element tuples. %MappedType QList > /DocType="list-of-tuple-of-int-int"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { const QPair &p = sipCpp->at(i); PyObject *pobj; if ((pobj = Py_BuildValue((char *)"ii", p.first, p.second)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode SIP_SSIZE_T len; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0) return 0; for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *seq = PySequence_ITEM(sipPy, i); if (!seq || !PySequence_Check(seq) || PySequence_Size(seq) != 2) { Py_XDECREF(seq); return 0; } Py_DECREF(seq); } return 1; } QList > *ql = new QList >; len = PySequence_Size(sipPy); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *seq = PySequence_ITEM(sipPy, i); PyObject *itm0 = PySequence_ITEM(seq, 0); PyObject *itm1 = PySequence_ITEM(seq, 1); Py_DECREF(seq); if (!itm0 || !itm1) { Py_XDECREF(itm0); Py_XDECREF(itm1); delete ql; *sipIsErr = 1; return 0; } int first = SIPLong_AsLong(itm0); int second = SIPLong_AsLong(itm1); Py_DECREF(itm0); Py_DECREF(itm1); ql->append(QPair(first, second)); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; %If (Qt_4_3_0 -) // QList > is implemented as a Python list of 2-element tuples. %MappedType QList > /DocType="list-of-tuple-of-float-float"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { const QPair &p = sipCpp->at(i); PyObject *pobj; if ((pobj = Py_BuildValue((char *)"dd", p.first, p.second)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode SIP_SSIZE_T len; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0) return 0; for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *seq = PySequence_ITEM(sipPy, i); if (!seq || !PySequence_Check(seq) || PySequence_Size(seq) != 2) { Py_XDECREF(seq); return 0; } } return 1; } QList > *ql = new QList >; len = PySequence_Size(sipPy); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *seq = PySequence_ITEM(sipPy, i); PyObject *itm0 = PySequence_ITEM(seq, 0); PyObject *itm1 = PySequence_ITEM(seq, 1); Py_DECREF(seq); if (!itm0 || !itm1) { Py_XDECREF(itm0); Py_XDECREF(itm1); delete ql; *sipIsErr = 1; return 0; } qreal first = PyFloat_AsDouble(itm0); qreal second = PyFloat_AsDouble(itm1); Py_DECREF(itm0); Py_DECREF(itm1); ql->append(QPair(first, second)); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; %End %If (Qt_4_3_0 -) // QList > is implemented as a Python list of 2-element tuples. template %MappedType QList > /DocType="list-of-tuple-of-float-TYPE"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { const QPair &p = sipCpp->at(i); TYPE *t = new TYPE(p.second); PyObject *pobj; if ((pobj = sipBuildResult(NULL, "(dN)", p.first, t, sipType_TYPE, sipTransferObj)) == NULL) { Py_DECREF(l); delete t; return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode SIP_SSIZE_T len; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0) return 0; for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *seq = PySequence_ITEM(sipPy, i); if (!seq || !PySequence_Check(seq) || PySequence_Size(seq) != 2) { Py_XDECREF(seq); return 0; } PyObject *itm1 = PySequence_ITEM(seq, 1); bool ok = (itm1 && sipCanConvertToType(itm1, sipType_TYPE, SIP_NOT_NONE)); Py_XDECREF(itm1); Py_DECREF(seq); if (!ok) return 0; } return 1; } QList > *ql = new QList >; len = PySequence_Size(sipPy); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *seq = PySequence_ITEM(sipPy, i); PyObject *itm0 = PySequence_ITEM(seq, 0); PyObject *itm1 = PySequence_ITEM(seq, 1); Py_DECREF(seq); if (!itm0) { Py_DECREF(itm1); delete ql; *sipIsErr = 1; return 0; } qreal d; int state; d = PyFloat_AsDouble(itm0); TYPE *t = reinterpret_cast(sipConvertToType(itm1, sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); Py_DECREF(itm0); Py_DECREF(itm1); if (*sipIsErr) { sipReleaseType(t, sipType_TYPE, state); delete ql; return 0; } ql->append(QPair(d, *t)); sipReleaseType(t, sipType_TYPE, state); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; %End // QList is implemented as a Python list of integers. %MappedType QList /DocType="list-of-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { PyObject *pobj; if ((pobj = SIPLong_FromLong(sipCpp->value(i))) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return (PySequence_Check(sipPy) && PySequence_Size(sipPy) >= 0); QList *ql = new QList; SIP_SSIZE_T len = PySequence_Size(sipPy); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *itm = PySequence_ITEM(sipPy, i); PyErr_Clear(); long val = itm ? SIPLong_AsLong(itm) : -1; if (!itm || (val == -1 && PyErr_Occurred())) { Py_XDECREF(itm); delete ql; *sipIsErr = 1; return 0; } ql->append(val); Py_DECREF(itm); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; // QList is implemented as a Python list of unsigned longs. %MappedType QList /DocType="list-of-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { PyObject *pobj; if ((pobj = PyLong_FromUnsignedLong(sipCpp->value(i))) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return (PySequence_Check(sipPy) && PySequence_Size(sipPy) >= 0); QList *ql = new QList; SIP_SSIZE_T len = PySequence_Size(sipPy); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *itm = PySequence_ITEM(sipPy, i); PyErr_Clear(); unsigned long val = itm ? PyLong_AsUnsignedLong(itm) : (unsigned long)-1; if (!itm || (val == (unsigned long)-1 && PyErr_Occurred())) { Py_XDECREF(itm); delete ql; *sipIsErr = 1; return 0; } ql->append(val); Py_DECREF(itm); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; // QList is implemented as a Python list of floats. %MappedType QList /DocType="list-of-float"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { PyObject *pobj; if ((pobj = PyFloat_FromDouble(sipCpp->value(i))) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return (PySequence_Check(sipPy) && PySequence_Size(sipPy) >= 0); QList *ql = new QList; SIP_SSIZE_T len = PySequence_Size(sipPy); for (SIP_SSIZE_T i = 0; i < len; ++i) { PyObject *itm = PySequence_ITEM(sipPy, i); PyErr_Clear(); double val = itm ? PyFloat_AsDouble(itm) : -1.0; if (!itm || (val == -1.0 && PyErr_Occurred())) { Py_XDECREF(itm); delete ql; *sipIsErr = 1; return 0; } ql->append(val); Py_DECREF(itm); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; PyQt-x11-gpl-4.11.4/sip/QtCore/qlocale.sip0000644000076500000240000006667612536324426020125 0ustar philstaff00000000000000// qlocale.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QLocale { %TypeHeaderCode #include %End public: enum Language { C, Abkhazian, Afan, Afar, Afrikaans, Albanian, Amharic, Arabic, Armenian, Assamese, Aymara, Azerbaijani, Bashkir, Basque, Bengali, Bhutani, Bihari, Bislama, Breton, Bulgarian, Burmese, Byelorussian, Cambodian, Catalan, Chinese, Corsican, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Faroese, %If (- Qt_5_0_0) FijiLanguage, %End Finnish, French, Frisian, Gaelic, Galician, Georgian, German, Greek, Greenlandic, Guarani, Gujarati, Hausa, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Interlingua, Interlingue, Inuktitut, Inupiak, Irish, Italian, Japanese, Javanese, Kannada, Kashmiri, Kazakh, Kinyarwanda, Kirghiz, Korean, Kurdish, Kurundi, %If (- Qt_5_0_0) Laothian, %End Latin, Latvian, Lingala, Lithuanian, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Moldavian, Mongolian, NauruLanguage, Nepali, Norwegian, Occitan, Oriya, Pashto, Persian, Polish, Portuguese, Punjabi, Quechua, RhaetoRomance, Romanian, Russian, Samoan, %If (- Qt_5_0_0) Sangho, %End Sanskrit, Serbian, SerboCroatian, %If (- Qt_5_0_0) Sesotho, %End %If (- Qt_5_0_0) Setswana, %End Shona, Sindhi, %If (- Qt_5_0_0) Singhalese, %End %If (- Qt_5_0_0) Siswati, %End Slovak, Slovenian, Somali, Spanish, Sundanese, Swahili, Swedish, Tagalog, Tajik, Tamil, Tatar, Telugu, Thai, Tibetan, Tigrinya, %If (- Qt_5_0_0) TongaLanguage, %End Tsonga, Turkish, Turkmen, Twi, Uigur, Ukrainian, Urdu, Uzbek, Vietnamese, Volapuk, Welsh, Wolof, Xhosa, Yiddish, Yoruba, Zhuang, Zulu, %If (- Qt_5_0_0) Nynorsk, %End Bosnian, Divehi, Manx, Cornish, LastLanguage, %If (Qt_4_3_0 -) NorwegianBokmal, %End %If (Qt_4_3_0 -) NorwegianNynorsk, %End %If (Qt_4_3_0 -) Akan, %End %If (Qt_4_3_0 -) Konkani, %End %If (Qt_4_3_0 -) Ga, %End %If (Qt_4_3_0 -) Igbo, %End %If (Qt_4_3_0 -) Kamba, %End %If (Qt_4_3_0 -) Syriac, %End %If (Qt_4_3_0 -) Blin, %End %If (Qt_4_3_0 -) Geez, %End %If (Qt_4_3_0 -) Koro, %End %If (Qt_4_3_0 -) Sidamo, %End %If (Qt_4_3_0 -) Atsam, %End %If (Qt_4_3_0 -) Tigre, %End %If (Qt_4_3_0 -) Jju, %End %If (Qt_4_3_0 -) Friulian, %End %If (Qt_4_3_0 -) Venda, %End %If (Qt_4_3_0 -) Ewe, %End %If (Qt_4_3_0 -) Walamo, %End %If (Qt_4_3_0 -) Hawaiian, %End %If (Qt_4_3_0 -) Tyap, %End %If (Qt_4_3_0 -) Chewa, %End %If (Qt_4_7_0 -) Filipino, %End %If (Qt_4_7_0 -) SwissGerman, %End %If (Qt_4_7_0 -) SichuanYi, %End %If (Qt_4_7_0 -) Kpelle, %End %If (Qt_4_7_0 -) LowGerman, %End %If (Qt_4_7_0 -) SouthNdebele, %End %If (Qt_4_7_0 -) NorthernSotho, %End %If (Qt_4_7_0 -) NorthernSami, %End %If (Qt_4_7_0 -) Taroko, %End %If (Qt_4_7_0 -) Gusii, %End %If (Qt_4_7_0 -) Taita, %End %If (Qt_4_7_0 -) Fulah, %End %If (Qt_4_7_0 -) Kikuyu, %End %If (Qt_4_7_0 -) Samburu, %End %If (Qt_4_7_0 -) Sena, %End %If (Qt_4_7_0 -) NorthNdebele, %End %If (Qt_4_7_0 -) Rombo, %End %If (Qt_4_7_0 -) Tachelhit, %End %If (Qt_4_7_0 -) Kabyle, %End %If (Qt_4_7_0 -) Nyankole, %End %If (Qt_4_7_0 -) Bena, %End %If (Qt_4_7_0 -) Vunjo, %End %If (Qt_4_7_0 -) Bambara, %End %If (Qt_4_7_0 -) Embu, %End %If (Qt_4_7_0 -) Cherokee, %End %If (Qt_4_7_0 -) Morisyen, %End %If (Qt_4_7_0 -) Makonde, %End %If (Qt_4_7_0 -) Langi, %End %If (Qt_4_7_0 -) Ganda, %End %If (Qt_4_7_0 -) Bemba, %End %If (Qt_4_7_0 -) Kabuverdianu, %End %If (Qt_4_7_0 -) Meru, %End %If (Qt_4_7_0 -) Kalenjin, %End %If (Qt_4_7_0 -) Nama, %End %If (Qt_4_7_0 -) Machame, %End %If (Qt_4_7_0 -) Colognian, %End %If (Qt_4_7_0 -) Masai, %End %If (Qt_4_7_0 -) Soga, %End %If (Qt_4_7_0 -) Luyia, %End %If (Qt_4_7_0 -) Asu, %End %If (Qt_4_7_0 -) Teso, %End %If (Qt_4_7_0 -) Saho, %End %If (Qt_4_7_0 -) KoyraChiini, %End %If (Qt_4_7_0 -) Rwa, %End %If (Qt_4_7_0 -) Luo, %End %If (Qt_4_7_0 -) Chiga, %End %If (Qt_4_7_0 -) CentralMoroccoTamazight, %End %If (Qt_4_7_0 -) KoyraboroSenni, %End %If (Qt_4_7_0 -) Shambala, %End %If (Qt_4_8_0 -) AnyLanguage, %End %If (Qt_4_8_4 -) Rundi, %End %If (Qt_4_8_4 -) Bodo, %End %If (Qt_4_8_4 -) Aghem, %End %If (Qt_4_8_4 -) Basaa, %End %If (Qt_4_8_4 -) Zarma, %End %If (Qt_4_8_4 -) Duala, %End %If (Qt_4_8_4 -) JolaFonyi, %End %If (Qt_4_8_4 -) Ewondo, %End %If (Qt_4_8_4 -) Bafia, %End %If (Qt_4_8_4 -) LubaKatanga, %End %If (Qt_4_8_4 -) MakhuwaMeetto, %End %If (Qt_4_8_4 -) Mundang, %End %If (Qt_4_8_4 -) Kwasio, %End %If (Qt_4_8_4 -) Nuer, %End %If (Qt_4_8_4 -) Sakha, %End %If (Qt_4_8_4 -) Sangu, %End %If (Qt_4_8_4 -) CongoSwahili, %End %If (Qt_4_8_4 -) Tasawaq, %End %If (Qt_4_8_4 -) Vai, %End %If (Qt_4_8_4 -) Walser, %End %If (Qt_4_8_4 -) Yangben, %End %If (Qt_5_0_0 -) Oromo, %End %If (Qt_5_0_0 -) Dzongkha, %End %If (Qt_5_0_0 -) Belarusian, %End %If (Qt_5_0_0 -) Khmer, %End %If (Qt_5_0_0 -) Fijian, %End %If (Qt_5_0_0 -) WesternFrisian, %End %If (Qt_5_0_0 -) Lao, %End %If (Qt_5_0_0 -) Marshallese, %End %If (Qt_5_0_0 -) Romansh, %End %If (Qt_5_0_0 -) Sango, %End %If (Qt_5_0_0 -) Ossetic, %End %If (Qt_5_0_0 -) SouthernSotho, %End %If (Qt_5_0_0 -) Tswana, %End %If (Qt_5_0_0 -) Sinhala, %End %If (Qt_5_0_0 -) Swati, %End %If (Qt_5_0_0 -) Sardinian, %End %If (Qt_5_0_0 -) Tongan, %End %If (Qt_5_0_0 -) Tahitian, %End %If (Qt_5_0_0 -) Nyanja, %End %If (Qt_5_0_0 -) Avaric, %End %If (Qt_5_0_0 -) Chamorro, %End %If (Qt_5_0_0 -) Chechen, %End %If (Qt_5_0_0 -) Church, %End %If (Qt_5_0_0 -) Chuvash, %End %If (Qt_5_0_0 -) Cree, %End %If (Qt_5_0_0 -) Haitian, %End %If (Qt_5_0_0 -) Herero, %End %If (Qt_5_0_0 -) HiriMotu, %End %If (Qt_5_0_0 -) Kanuri, %End %If (Qt_5_0_0 -) Komi, %End %If (Qt_5_0_0 -) Kongo, %End %If (Qt_5_0_0 -) Kwanyama, %End %If (Qt_5_0_0 -) Limburgish, %End %If (Qt_5_0_0 -) Luxembourgish, %End %If (Qt_5_0_0 -) Navaho, %End %If (Qt_5_0_0 -) Ndonga, %End %If (Qt_5_0_0 -) Ojibwa, %End %If (Qt_5_0_0 -) Pali, %End %If (Qt_5_0_0 -) Walloon, %End %If (Qt_5_0_0 -) Avestan, %End %If (Qt_5_0_0 -) Asturian, %End %If (Qt_5_0_0 -) Ngomba, %End %If (Qt_5_0_0 -) Kako, %End %If (Qt_5_0_0 -) Meta, %End %If (Qt_5_0_0 -) Ngiemboon, %End }; enum Country { AnyCountry, Afghanistan, Albania, Algeria, AmericanSamoa, Andorra, Angola, Anguilla, Antarctica, AntiguaAndBarbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, BosniaAndHerzegowina, Botswana, BouvetIsland, Brazil, BritishIndianOceanTerritory, %If (- Qt_5_0_0) BruneiDarussalam, %End Bulgaria, BurkinaFaso, Burundi, Cambodia, Cameroon, Canada, CapeVerde, CaymanIslands, CentralAfricanRepublic, Chad, Chile, China, ChristmasIsland, CocosIslands, Colombia, Comoros, DemocraticRepublicOfCongo, PeoplesRepublicOfCongo, CookIslands, CostaRica, IvoryCoast, Croatia, Cuba, Cyprus, CzechRepublic, Denmark, Djibouti, Dominica, DominicanRepublic, EastTimor, Ecuador, Egypt, ElSalvador, EquatorialGuinea, Eritrea, Estonia, Ethiopia, FalklandIslands, FaroeIslands, %If (- Qt_5_0_0) FijiCountry, %End Finland, France, %If (- Qt_5_0_0) MetropolitanFrance, %End FrenchGuiana, FrenchPolynesia, FrenchSouthernTerritories, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guinea, GuineaBissau, Guyana, Haiti, HeardAndMcDonaldIslands, Honduras, HongKong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan, Kenya, Kiribati, DemocraticRepublicOfKorea, RepublicOfKorea, Kuwait, Kyrgyzstan, %If (- Qt_5_0_0) Lao, %End Latvia, Lebanon, Lesotho, Liberia, %If (- Qt_5_0_0) LibyanArabJamahiriya, %End Liechtenstein, Lithuania, Luxembourg, Macau, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, MarshallIslands, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montserrat, Morocco, Mozambique, Myanmar, Namibia, NauruCountry, Nepal, Netherlands, %If (- Qt_5_0_0) NetherlandsAntilles, %End NewCaledonia, NewZealand, Nicaragua, Niger, Nigeria, Niue, NorfolkIsland, NorthernMarianaIslands, Norway, Oman, Pakistan, Palau, %If (- Qt_5_0_0) PalestinianTerritory, %End Panama, PapuaNewGuinea, Paraguay, Peru, Philippines, Pitcairn, Poland, Portugal, PuertoRico, Qatar, Reunion, Romania, RussianFederation, Rwanda, SaintKittsAndNevis, %If (- Qt_5_0_0) StLucia, %End %If (- Qt_5_0_0) StVincentAndTheGrenadines, %End Samoa, SanMarino, SaoTomeAndPrincipe, SaudiArabia, Senegal, Seychelles, SierraLeone, Singapore, Slovakia, Slovenia, SolomonIslands, Somalia, SouthAfrica, SouthGeorgiaAndTheSouthSandwichIslands, Spain, SriLanka, %If (- Qt_5_0_0) StHelena, %End %If (- Qt_5_0_0) StPierreAndMiquelon, %End Sudan, Suriname, SvalbardAndJanMayenIslands, Swaziland, Sweden, Switzerland, SyrianArabRepublic, Taiwan, Tajikistan, Tanzania, Thailand, Togo, Tokelau, %If (- Qt_5_0_0) TongaCountry, %End TrinidadAndTobago, Tunisia, Turkey, Turkmenistan, TurksAndCaicosIslands, Tuvalu, Uganda, Ukraine, UnitedArabEmirates, UnitedKingdom, UnitedStates, UnitedStatesMinorOutlyingIslands, Uruguay, Uzbekistan, Vanuatu, VaticanCityState, Venezuela, %If (- Qt_5_0_0) VietNam, %End BritishVirginIslands, %If (- Qt_5_0_0) USVirginIslands, %End WallisAndFutunaIslands, WesternSahara, Yemen, %If (- Qt_5_0_0) Yugoslavia, %End Zambia, Zimbabwe, %If (- Qt_5_0_0) SerbiaAndMontenegro, %End %If (Qt_4_7_0 -) Montenegro, %End %If (Qt_4_7_0 -) Serbia, %End %If (Qt_4_7_0 -) SaintBarthelemy, %End %If (Qt_4_7_0 -) SaintMartin, %End %If (Qt_4_7_0 -) LatinAmericaAndTheCaribbean, %End LastCountry, %If (Qt_5_0_0 -) Brunei, %End %If (Qt_5_0_0 -) CongoKinshasa, %End %If (Qt_5_0_0 -) CongoBrazzaville, %End %If (Qt_5_0_0 -) Fiji, %End %If (Qt_5_0_0 -) Guernsey, %End %If (Qt_5_0_0 -) NorthKorea, %End %If (Qt_5_0_0 -) SouthKorea, %End %If (Qt_5_0_0 -) Laos, %End %If (Qt_5_0_0 -) Libya, %End %If (Qt_5_0_0 -) CuraSao, %End %If (Qt_5_0_0 -) PalestinianTerritories, %End %If (Qt_5_0_0 -) Russia, %End %If (Qt_5_0_0 -) SaintLucia, %End %If (Qt_5_0_0 -) SaintVincentAndTheGrenadines, %End %If (Qt_5_0_0 -) SaintHelena, %End %If (Qt_5_0_0 -) SaintPierreAndMiquelon, %End %If (Qt_5_0_0 -) Syria, %End %If (Qt_5_0_0 -) Tonga, %End %If (Qt_5_0_0 -) Vietnam, %End %If (Qt_5_0_0 -) UnitedStatesVirginIslands, %End %If (Qt_5_0_0 -) CanaryIslands, %End %If (Qt_5_0_0 -) ClippertonIsland, %End %If (Qt_5_0_0 -) AscensionIsland, %End %If (Qt_5_0_0 -) AlandIslands, %End %If (Qt_5_0_0 -) DiegoGarcia, %End %If (Qt_5_0_0 -) CeutaAndMelilla, %End %If (Qt_5_0_0 -) IsleOfMan, %End %If (Qt_5_0_0 -) Jersey, %End %If (Qt_5_0_0 -) TristanDaCunha, %End %If (Qt_5_0_0 -) SouthSudan, %End %If (Qt_5_0_0 -) Bonaire, %End %If (Qt_5_0_0 -) SintMaarten, %End }; %If (Qt_4_2_0 -) enum NumberOption { OmitGroupSeparator, RejectGroupSeparator, }; %End %If (Qt_4_2_0 -) typedef QFlags NumberOptions; %End QLocale(); QLocale(const QString &name); QLocale(QLocale::Language language, QLocale::Country country = QLocale::AnyCountry); QLocale(const QLocale &other); %If (Qt_5_0_0 -) ~QLocale(); %End QLocale::Language language() const; QLocale::Country country() const; QString name() const; %If (Qt_5_0_0 -) short toShort(const QString &s, bool *ok = 0) const; %End %If (- Qt_5_0_0) short toShort(const QString &s, bool *ok = 0, int base = 0) const; %End %If (Qt_5_0_0 -) ushort toUShort(const QString &s, bool *ok = 0) const; %End %If (- Qt_5_0_0) ushort toUShort(const QString &s, bool *ok = 0, int base = 0) const; %End %If (Qt_5_0_0 -) int toInt(const QString &s, bool *ok = 0) const; %End %If (- Qt_5_0_0) int toInt(const QString &s, bool *ok = 0, int base = 0) const; %End %If (Qt_5_0_0 -) uint toUInt(const QString &s, bool *ok = 0) const; %End %If (- Qt_5_0_0) uint toUInt(const QString &s, bool *ok = 0, int base = 0) const; %End %If (Qt_5_0_0 -) qlonglong toLongLong(const QString &s, bool *ok = 0) const; %End %If (- Qt_5_0_0) qlonglong toLongLong(const QString &s, bool *ok = 0, int base = 0) const; %End %If (Qt_5_0_0 -) qulonglong toULongLong(const QString &s, bool *ok = 0) const; %End %If (- Qt_5_0_0) qlonglong toULongLong(const QString &s, bool *ok = 0, int base = 0) const; %End float toFloat(const QString &s, bool *ok = 0) const; double toDouble(const QString &s, bool *ok = 0) const; QString toString(int i /Constrained/) const; QString toString(double i /Constrained/, char format = 'g', int precision = 6) const; QString toString(qlonglong i) const; QString toString(qulonglong i) const; bool operator==(const QLocale &other) const; bool operator!=(const QLocale &other) const; static QString languageToString(QLocale::Language language); static QString countryToString(QLocale::Country country); static void setDefault(const QLocale &locale); static QLocale c(); static QLocale system(); enum FormatType { LongFormat, ShortFormat, %If (Qt_4_5_0 -) NarrowFormat, %End }; %If (Qt_4_4_0 -) QString toString(const QDateTime &dateTime, const QString &format) const; %End %If (Qt_4_4_0 -) QString toString(const QDateTime &dateTime, QLocale::FormatType format = QLocale::LongFormat) const; %End QString toString(const QDate &date, const QString &formatStr) const; QString toString(const QDate &date, QLocale::FormatType format = QLocale::LongFormat) const; QString toString(const QTime &time, const QString &formatStr) const; QString toString(const QTime &time, QLocale::FormatType format = QLocale::LongFormat) const; QString dateFormat(QLocale::FormatType format = QLocale::LongFormat) const; QString timeFormat(QLocale::FormatType format = QLocale::LongFormat) const; %If (Qt_4_4_0 -) QString dateTimeFormat(QLocale::FormatType format = QLocale::LongFormat) const; %End %If (Qt_4_4_0 -) QDate toDate(const QString &string, QLocale::FormatType format = QLocale::LongFormat) const; %End %If (Qt_4_4_0 -) QDate toDate(const QString &string, const QString &format) const; %End %If (Qt_4_4_0 -) QTime toTime(const QString &string, QLocale::FormatType format = QLocale::LongFormat) const; %End %If (Qt_4_4_0 -) QTime toTime(const QString &string, const QString &format) const; %End %If (Qt_4_4_0 -) QDateTime toDateTime(const QString &string, QLocale::FormatType format = QLocale::LongFormat) const; %End %If (Qt_4_4_0 -) QDateTime toDateTime(const QString &string, const QString &format) const; %End QChar decimalPoint() const; QChar groupSeparator() const; QChar percent() const; QChar zeroDigit() const; QChar negativeSign() const; QChar exponential() const; %If (Qt_4_2_0 -) QString monthName(int, QLocale::FormatType format = QLocale::LongFormat) const; %End %If (Qt_4_2_0 -) QString dayName(int, QLocale::FormatType format = QLocale::LongFormat) const; %End %If (Qt_4_2_0 -) void setNumberOptions(QFlags options); %End %If (Qt_4_2_0 -) QFlags numberOptions() const; %End %If (Qt_4_3_0 -) static QList countriesForLanguage(QLocale::Language lang); %End %If (Qt_4_4_0 -) enum MeasurementSystem { MetricSystem, ImperialSystem, %If (Qt_5_0_0 -) ImperialUSSystem, %End %If (Qt_5_0_0 -) ImperialUKSystem, %End }; %End %If (Qt_4_4_0 -) QLocale::MeasurementSystem measurementSystem() const; %End %If (Qt_4_5_0 -) QChar positiveSign() const; %End %If (Qt_4_5_0 -) QString standaloneMonthName(int, QLocale::FormatType format = QLocale::LongFormat) const; %End %If (Qt_4_5_0 -) QString standaloneDayName(int, QLocale::FormatType format = QLocale::LongFormat) const; %End %If (Qt_4_5_0 -) QString amText() const; %End %If (Qt_4_5_0 -) QString pmText() const; %End %If (Qt_4_7_0 -) Qt::LayoutDirection textDirection() const; %End %If (Qt_4_8_0 -) enum Script { AnyScript, ArabicScript, CyrillicScript, DeseretScript, GurmukhiScript, SimplifiedHanScript, TraditionalHanScript, LatinScript, MongolianScript, TifinaghScript, SimplifiedChineseScript, TraditionalChineseScript, %If (Qt_5_0_0 -) ArmenianScript, %End %If (Qt_5_0_0 -) BengaliScript, %End %If (Qt_5_0_0 -) CherokeeScript, %End %If (Qt_5_0_0 -) DevanagariScript, %End %If (Qt_5_0_0 -) EthiopicScript, %End %If (Qt_5_0_0 -) GeorgianScript, %End %If (Qt_5_0_0 -) GreekScript, %End %If (Qt_5_0_0 -) GujaratiScript, %End %If (Qt_5_0_0 -) HebrewScript, %End %If (Qt_5_0_0 -) JapaneseScript, %End %If (Qt_5_0_0 -) KhmerScript, %End %If (Qt_5_0_0 -) KannadaScript, %End %If (Qt_5_0_0 -) KoreanScript, %End %If (Qt_5_0_0 -) LaoScript, %End %If (Qt_5_0_0 -) MalayalamScript, %End %If (Qt_5_0_0 -) MyanmarScript, %End %If (Qt_5_0_0 -) OriyaScript, %End %If (Qt_5_0_0 -) TamilScript, %End %If (Qt_5_0_0 -) TeluguScript, %End %If (Qt_5_0_0 -) ThaanaScript, %End %If (Qt_5_0_0 -) ThaiScript, %End %If (Qt_5_0_0 -) TibetanScript, %End %If (Qt_5_0_0 -) SinhalaScript, %End %If (Qt_5_0_0 -) SyriacScript, %End %If (Qt_5_0_0 -) YiScript, %End %If (Qt_5_0_0 -) VaiScript, %End }; %End %If (Qt_4_8_0 -) enum CurrencySymbolFormat { CurrencyIsoCode, CurrencySymbol, CurrencyDisplayName, }; %End %If (Qt_4_8_0 -) QLocale(QLocale::Language language, QLocale::Script script, QLocale::Country country); %End %If (Qt_4_8_0 -) QLocale::Script script() const; %End %If (Qt_4_8_0 -) QString bcp47Name() const; %End %If (Qt_4_8_0 -) QString nativeLanguageName() const; %End %If (Qt_4_8_0 -) QString nativeCountryName() const; %End %If (Qt_4_8_0 -) Qt::DayOfWeek firstDayOfWeek() const; %End %If (Qt_4_8_0 -) QList weekdays() const; %End %If (Qt_4_8_0 -) QString toUpper(const QString &str) const; %End %If (Qt_4_8_0 -) QString toLower(const QString &str) const; %End %If (Qt_4_8_0 -) QString currencySymbol(QLocale::CurrencySymbolFormat format = QLocale::CurrencySymbol) const; %End %If (Qt_4_8_0 -) QString toCurrencyString(int value /Constrained/, const QString &symbol /DocValue="Py_v3:''"/ = QString()) const; %End %If (Qt_4_8_0 -) QString toCurrencyString(double value /Constrained/, const QString &symbol /DocValue="Py_v3:''"/ = QString()) const; %End %If (Qt_4_8_0 -) QString toCurrencyString(qlonglong value, const QString &symbol /DocValue="Py_v3:''"/ = QString()) const; %End %If (Qt_4_8_0 -) QString toCurrencyString(qulonglong value, const QString &symbol /DocValue="Py_v3:''"/ = QString()) const; %End %If (Qt_4_8_0 -) QStringList uiLanguages() const; %End %If (Qt_4_8_0 -) static QString scriptToString(QLocale::Script script); %End %If (Qt_4_8_0 -) static QList matchingLocales(QLocale::Language language, QLocale::Script script, QLocale::Country country); %End %If (Qt_4_8_0 -) enum QuotationStyle { StandardQuotation, AlternateQuotation, }; %End %If (Qt_4_8_0 -) QString quoteString(const QString &str, QLocale::QuotationStyle style = QLocale::StandardQuotation) const; %End %If (Qt_4_8_0 -) QString createSeparatedList(const QStringList &list) const; %End }; QDataStream &operator<<(QDataStream &, const QLocale & /Constrained/); QDataStream &operator>>(QDataStream &, QLocale & /Constrained/); %If (Qt_4_2_0 -) QFlags operator|(QLocale::NumberOption f1, QFlags f2); %End %If (Qt_4_2_0 - Qt_5_0_0) class QSystemLocale { %TypeHeaderCode #include %End public: QSystemLocale(); virtual ~QSystemLocale(); enum QueryType { LanguageId, %If (Qt_4_8_0 -) ScriptId, %End CountryId, DecimalPoint, GroupSeparator, ZeroDigit, NegativeSign, DateFormatLong, DateFormatShort, TimeFormatLong, TimeFormatShort, DayNameLong, DayNameShort, MonthNameLong, MonthNameShort, DateToStringLong, DateToStringShort, TimeToStringLong, TimeToStringShort, %If (Qt_4_4_0 -) DateTimeFormatLong, %End %If (Qt_4_4_0 -) DateTimeFormatShort, %End %If (Qt_4_4_0 -) DateTimeToStringLong, %End %If (Qt_4_4_0 -) DateTimeToStringShort, %End %If (Qt_4_4_0 -) MeasurementSystem, %End %If (Qt_4_5_0 -) PositiveSign, %End %If (Qt_4_5_0 -) AMText, %End %If (Qt_4_5_0 -) PMText, %End %If (Qt_4_8_0 -) FirstDayOfWeek, %End %If (Qt_4_8_0 -) Weekdays, %End %If (Qt_4_8_0 -) CurrencySymbol, %End %If (Qt_4_8_0 -) CurrencyToString, %End %If (Qt_4_8_0 -) UILanguages, %End %If (Qt_4_8_0 -) StringToStandardQuotation, %End %If (Qt_4_8_0 -) StringToAlternateQuotation, %End %If (Qt_4_8_0 -) ListToSeparatedString, %End %If (Qt_4_8_0 -) LocaleChanged, %End %If (Qt_4_8_0 -) NativeLanguageName, %End %If (Qt_4_8_0 -) NativeCountryName, %End }; virtual QVariant query(QSystemLocale::QueryType type, QVariant in) const; virtual QLocale fallbackLocale() const; }; %End %If (Qt_4_3_0 -) // Mapped type for QList. %MappedType QList /DocType="list-of-QLocale.Country"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { QLocale::Country e = sipCpp->at(i); PyObject *eobj; if ((eobj = sipConvertFromEnum(e, sipType_QLocale_Country)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, eobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyList_Check(sipPy)) return 0; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) if (!sipCanConvertToEnum(PyList_GET_ITEM(sipPy, i), sipType_QLocale_Country)) return 0; return 1; } QList *ql = new QList; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { long l = SIPLong_AsLong(PyList_GET_ITEM(sipPy, i)); ql->append(static_cast(l)); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qmap.sip0000644000076500000240000002253612536324426017426 0ustar philstaff00000000000000// qmap.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // QMap is implemented as a Python dictionary. template %MappedType QMap /DocType="dict-of-TYPE1-TYPE2"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the dictionary. PyObject *d = PyDict_New(); if (!d) return NULL; // Set the dictionary elements. QMap::const_iterator i = sipCpp->constBegin(); while (i != sipCpp->constEnd()) { TYPE1 *t1 = new TYPE1(i.key()); TYPE2 *t2 = new TYPE2(i.value()); PyObject *t1obj = sipConvertFromNewType(t1, sipType_TYPE1, sipTransferObj); PyObject *t2obj = sipConvertFromNewType(t2, sipType_TYPE2, sipTransferObj); if (t1obj == NULL || t2obj == NULL || PyDict_SetItem(d, t1obj, t2obj) < 0) { Py_DECREF(d); if (t1obj) { Py_DECREF(t1obj); } else { delete t1; } if (t2obj) { Py_DECREF(t2obj); } else { delete t2; } return NULL; } Py_DECREF(t1obj); Py_DECREF(t2obj); ++i; } return d; %End %ConvertToTypeCode PyObject *t1obj, *t2obj; SIP_SSIZE_T i = 0; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyDict_Check(sipPy)) return 0; while (PyDict_Next(sipPy, &i, &t1obj, &t2obj)) { if (!sipCanConvertToType(t1obj, sipType_TYPE1, SIP_NOT_NONE)) return 0; if (!sipCanConvertToType(t2obj, sipType_TYPE2, SIP_NOT_NONE)) return 0; } return 1; } QMap *qm = new QMap; while (PyDict_Next(sipPy, &i, &t1obj, &t2obj)) { int state1, state2; TYPE1 *t1 = reinterpret_cast(sipConvertToType(t1obj, sipType_TYPE1, sipTransferObj, SIP_NOT_NONE, &state1, sipIsErr)); TYPE2 *t2 = reinterpret_cast(sipConvertToType(t2obj, sipType_TYPE2, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr)); if (*sipIsErr) { sipReleaseType(t1, sipType_TYPE1, state1); sipReleaseType(t2, sipType_TYPE2, state2); delete qm; return 0; } qm->insert(*t1, *t2); sipReleaseType(t1, sipType_TYPE1, state1); sipReleaseType(t2, sipType_TYPE2, state2); } *sipCppPtr = qm; return sipGetState(sipTransferObj); %End }; // QMap is implemented as a Python dictionary. template %MappedType QMap /DocType="dict-of-int-TYPE"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the dictionary. PyObject *d = PyDict_New(); if (!d) return NULL; // Set the dictionary elements. QMap::const_iterator i = sipCpp->constBegin(); while (i != sipCpp->constEnd()) { TYPE *t = new TYPE(i.value()); PyObject *kobj = SIPLong_FromLong(i.key()); PyObject *tobj = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj); if (kobj == NULL || tobj == NULL || PyDict_SetItem(d, kobj, tobj) < 0) { Py_DECREF(d); if (kobj) { Py_DECREF(kobj); } if (tobj) { Py_DECREF(tobj); } else { delete t; } return NULL; } Py_DECREF(kobj); Py_DECREF(tobj); ++i; } return d; %End %ConvertToTypeCode PyObject *kobj, *tobj; SIP_SSIZE_T i = 0; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyDict_Check(sipPy)) return 0; while (PyDict_Next(sipPy, &i, &kobj, &tobj)) if (!sipCanConvertToType(tobj, sipType_TYPE, SIP_NOT_NONE)) return 0; return 1; } QMap *qm = new QMap; while (PyDict_Next(sipPy, &i, &kobj, &tobj)) { int state, k = SIPLong_AsLong(kobj); TYPE *t = reinterpret_cast(sipConvertToType(tobj, sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(t, sipType_TYPE, state); delete qm; return 0; } qm->insert(k, *t); sipReleaseType(t, sipType_TYPE, state); } *sipCppPtr = qm; return sipGetState(sipTransferObj); %End }; // QMultiMap is implemented as a Python dictionary with a Python list as the value type. template %MappedType QMultiMap /DocType="dict-of-TYPE1-list-of-TYPE2"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the dictionary. PyObject *d = PyDict_New(); if (!d) return NULL; // Set the dictionary elements. QList keys = sipCpp->keys(); QList::const_iterator kit = keys.constBegin(); while (kit != keys.constEnd()) { // Create a Python list as the dictionary value. QList values = sipCpp->values(*kit); PyObject *value_obj = PyList_New(values.count()); if (!value_obj) { Py_DECREF(d); return NULL; } // Wrap each value associated with the key. QList::const_iterator vit = values.constBegin(); int i = 0; while (vit != values.constEnd()) { TYPE2 *val_copy = new TYPE2(*vit); PyObject *val_obj = sipConvertFromNewType(val_copy, sipType_TYPE2, sipTransferObj); if (!val_obj) { delete val_copy; Py_DECREF(value_obj); Py_DECREF(d); return NULL; } PyList_SET_ITEM(value_obj, i, val_obj); ++i; ++vit; } // Wrap a copy of the key. TYPE1 *key_copy = new TYPE1(*kit); PyObject *key_obj = sipConvertFromNewType(key_copy, sipType_TYPE1, sipTransferObj); if (!key_obj) { delete key_copy; Py_DECREF(value_obj); Py_DECREF(d); return NULL; } // Add to the dictionary. if (PyDict_SetItem(d, key_obj, value_obj) < 0) { Py_DECREF(key_obj); Py_DECREF(value_obj); Py_DECREF(d); return NULL; } Py_DECREF(key_obj); Py_DECREF(value_obj); ++kit; } return d; %End %ConvertToTypeCode PyObject *key_obj, *value_obj; SIP_SSIZE_T i = 0; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyDict_Check(sipPy)) return 0; while (PyDict_Next(sipPy, &i, &key_obj, &value_obj)) { if (!sipCanConvertToType(key_obj, sipType_TYPE1, SIP_NOT_NONE)) return 0; if (!PyList_Check(value_obj)) return 0; for (SIP_SSIZE_T vi = 0; vi < PyList_GET_SIZE(value_obj); ++vi) if (!sipCanConvertToType(PyList_GET_ITEM(value_obj, vi), sipType_TYPE2, SIP_NOT_NONE)) return 0; } return 1; } QMultiMap *qm = new QMultiMap; while (PyDict_Next(sipPy, &i, &key_obj, &value_obj)) { int key_state; TYPE1 *key = reinterpret_cast(sipConvertToType(key_obj, sipType_TYPE1, sipTransferObj, SIP_NOT_NONE, &key_state, sipIsErr)); SIP_SSIZE_T vi = PyList_GET_SIZE(value_obj); // We go through the list backwards to maintain the Qt semantics of // later items appearing first. while (vi--) { int val_state; TYPE2 *val = reinterpret_cast(sipConvertToType(PyList_GET_ITEM(value_obj, vi), sipType_TYPE2, sipTransferObj, SIP_NOT_NONE, &val_state, sipIsErr)); if (*sipIsErr) { sipReleaseType(val, sipType_TYPE2, val_state); break; } qm->insert(*key, *val); sipReleaseType(val, sipType_TYPE2, val_state); } sipReleaseType(key, sipType_TYPE1, key_state); if (*sipIsErr) { delete qm; return 0; } } *sipCppPtr = qm; return sipGetState(sipTransferObj); %End }; PyQt-x11-gpl-4.11.4/sip/QtCore/qmargins.sip0000644000076500000240000000333412536324426020304 0ustar philstaff00000000000000// qmargins.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) class QMargins { %TypeHeaderCode #include %End public: QMargins(); QMargins(int aleft, int atop, int aright, int abottom); bool isNull() const; int left() const; int top() const; int right() const; int bottom() const; void setLeft(int aleft); void setTop(int atop); void setRight(int aright); void setBottom(int abottom); }; %End %If (Qt_4_6_0 -) bool operator==(const QMargins &m1, const QMargins &m2); %End %If (Qt_4_6_0 -) bool operator!=(const QMargins &m1, const QMargins &m2); %End %If (Qt_5_0_0 -) QDataStream &operator<<(QDataStream &, const QMargins & /Constrained/); %End %If (Qt_5_0_0 -) QDataStream &operator>>(QDataStream &, QMargins & /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qmetaobject.sip0000644000076500000240000002037412536324426020764 0ustar philstaff00000000000000// qmetaobject.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QMetaMethod { %TypeHeaderCode #include %End %TypeCode // Raise an exception when QMetaMethod::invoke() returns false. static void qtcore_invoke_exception() { PyErr_SetString(PyExc_RuntimeError, "QMetaMethod.invoke() call failed"); } %End public: QMetaMethod(); %If (- Qt_5_0_0) const char *signature() const; %End const char *typeName() const; QList parameterTypes() const; QList parameterNames() const; const char *tag() const; enum Access { Private, Protected, Public, }; QMetaMethod::Access access() const; enum MethodType { Method, Signal, Slot, %If (Qt_4_5_0 -) Constructor, %End }; QMetaMethod::MethodType methodType() const; %If (Qt_4_5_0 -) SIP_PYOBJECT invoke(QObject *object, Qt::ConnectionType connectionType, QGenericReturnArgument returnValue /GetWrapper/, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)) const; %MethodCode // Raise an exception if the call failed. bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->invoke(a0, a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8, *a9, *a10, *a11, *a12); Py_END_ALLOW_THREADS if (ok) sipRes = qpycore_ReturnValue(a2Wrapper); else qtcore_invoke_exception(); %End %End %If (Qt_4_5_0 -) SIP_PYOBJECT invoke(QObject *object, QGenericReturnArgument returnValue /GetWrapper/, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)) const; %MethodCode // Raise an exception if the call failed. bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->invoke(a0, *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8, *a9, *a10, *a11); Py_END_ALLOW_THREADS if (ok) sipRes = qpycore_ReturnValue(a1Wrapper); else qtcore_invoke_exception(); %End %End %If (Qt_4_5_0 -) SIP_PYOBJECT invoke(QObject *object, Qt::ConnectionType connectionType, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)) const; %MethodCode // Raise an exception if the call failed. bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->invoke(a0, a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8, *a9, *a10, *a11); Py_END_ALLOW_THREADS if (ok) { Py_INCREF(Py_None); sipRes = Py_None; } else qtcore_invoke_exception(); %End %End %If (Qt_4_5_0 -) SIP_PYOBJECT invoke(QObject *object, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)) const; %MethodCode // Raise an exception if the call failed. bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->invoke(a0, *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8, *a9, *a10); Py_END_ALLOW_THREADS if (ok) { Py_INCREF(Py_None); sipRes = Py_None; } else qtcore_invoke_exception(); %End %End %If (Qt_4_6_0 -) int methodIndex() const; %End %If (Qt_5_0_0 -) bool isValid() const; %End %If (Qt_5_0_0 -) QByteArray methodSignature() const; %End %If (Qt_5_0_0 -) QByteArray name() const; %End %If (Qt_5_0_0 -) int returnType() const; %End %If (Qt_5_0_0 -) int parameterCount() const; %End %If (Qt_5_0_0 -) int parameterType(int index) const; %End }; class QMetaEnum { %TypeHeaderCode #include %End public: QMetaEnum(); const char *name() const; bool isFlag() const; int keyCount() const; const char *key(int index) const; int value(int index) const; const char *scope() const; %If (Qt_5_0_0 -) int keyToValue(const char *key, bool *ok = 0) const; %End %If (- Qt_5_0_0) int keyToValue(const char *key) const; %End const char *valueToKey(int value) const; %If (Qt_5_0_0 -) int keysToValue(const char *keys, bool *ok = 0) const; %End %If (- Qt_5_0_0) int keysToValue(const char *keys) const; %End QByteArray valueToKeys(int value) const; bool isValid() const; }; class QMetaProperty { %TypeHeaderCode #include %End public: QMetaProperty(); const char *name() const; const char *typeName() const; QVariant::Type type() const; bool isReadable() const; bool isWritable() const; bool isDesignable(const QObject *object = 0) const; bool isScriptable(const QObject *object = 0) const; bool isStored(const QObject *object = 0) const; bool isEditable(const QObject *object = 0) const; bool isFlagType() const; bool isEnumType() const; QMetaEnum enumerator() const; QVariant read(const QObject *obj) const; bool write(QObject *obj, const QVariant &value) const; bool reset(QObject *obj) const; bool hasStdCppSet() const; bool isValid() const; bool isResettable() const; bool isUser(const QObject *object = 0) const; %If (Qt_4_2_0 -) int userType() const; %End %If (Qt_4_5_0 -) bool hasNotifySignal() const; %End %If (Qt_4_5_0 -) QMetaMethod notifySignal() const; %End %If (Qt_4_5_0 -) int notifySignalIndex() const; %End %If (Qt_4_6_0 -) int propertyIndex() const; %End %If (Qt_4_6_0 -) bool isConstant() const; %End %If (Qt_4_6_0 -) bool isFinal() const; %End }; class QMetaClassInfo { %TypeHeaderCode #include %End public: QMetaClassInfo(); const char *name() const; const char *value() const; }; %If (Qt_5_0_0 -) bool operator==(const QMetaMethod &m1, const QMetaMethod &m2); %End %If (Qt_5_0_0 -) bool operator!=(const QMetaMethod &m1, const QMetaMethod &m2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qmetatype.sip0000644000076500000240000000741412536324426020477 0ustar philstaff00000000000000// qmetatype.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QMetaType { %TypeHeaderCode #include %End public: enum Type { %If (Qt_5_0_0 -) UnknownType, %End Void, Bool, Int, UInt, LongLong, ULongLong, Double, QChar, QVariantMap, QVariantList, %If (Qt_4_5_0 -) QVariantHash, %End QString, QStringList, QByteArray, QBitArray, QDate, QTime, QDateTime, QUrl, QLocale, QRect, QRectF, QSize, QSizeF, QLine, QLineF, QPoint, QPointF, QRegExp, LastCoreType, FirstGuiType, QFont, QPixmap, QBrush, QColor, QPalette, QIcon, QImage, QPolygon, QRegion, QBitmap, QCursor, QSizePolicy, QKeySequence, QPen, QTextLength, QTextFormat, QMatrix, %If (Qt_4_3_0 -) QTransform, %End VoidStar, Long, Short, Char, ULong, UShort, UChar, Float, QObjectStar, %If (- Qt_5_0_0) QWidgetStar, %End %If (Qt_4_6_0 -) QMatrix4x4, %End %If (Qt_4_6_0 -) QVector2D, %End %If (Qt_4_6_0 -) QVector3D, %End %If (Qt_4_6_0 -) QVector4D, %End %If (Qt_4_6_0 -) QQuaternion, %End %If (Qt_4_7_0 -) QEasingCurve, %End %If (Qt_4_7_0 -) QVariant, %End %If (Qt_5_0_0 -) QUuid, %End %If (Qt_5_0_0 -) QModelIndex, %End %If (Qt_5_0_0 -) QPolygonF, %End %If (Qt_5_0_0 -) SChar, %End %If (Qt_5_0_0 -) QRegularExpression, %End %If (Qt_5_0_0 -) QJsonValue, %End %If (Qt_5_0_0 -) QJsonObject, %End %If (Qt_5_0_0 -) QJsonArray, %End %If (Qt_5_0_0 -) QJsonDocument, %End User, }; static int type(const char *typeName); static const char *typeName(int type); static bool isRegistered(int type); %If (Qt_5_0_0 -) explicit QMetaType(const int type); %End %If (Qt_5_0_0 -) ~QMetaType(); %End %If (Qt_5_0_0 -) enum TypeFlag { NeedsConstruction, NeedsDestruction, MovableType, }; %End %If (Qt_5_0_0 -) typedef QFlags TypeFlags; %End %If (Qt_5_0_0 -) static QFlags typeFlags(int type); %End %If (Qt_5_0_0 -) bool isValid() const; %End %If (Qt_5_0_0 -) bool isRegistered() const; %End %If (Qt_5_0_0 -) QFlags flags() const; %End %If (Qt_5_0_0 -) static const QMetaObject *metaObjectForType(int type); %End private: %If (Qt_5_0_0 -) QMetaType(const QMetaType &other); %End }; %If (Qt_5_0_0 -) QFlags operator|(QMetaType::TypeFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qmimedata.sip0000644000076500000240000000375112536324426020430 0ustar philstaff00000000000000// qmimedata.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QMimeData : QObject { %TypeHeaderCode #include %End public: QMimeData(); virtual ~QMimeData(); QList urls() const; void setUrls(const QList &urls); bool hasUrls() const; QString text() const; void setText(const QString &text); bool hasText() const; QString html() const; void setHtml(const QString &html); bool hasHtml() const; QVariant imageData() const; void setImageData(const QVariant &image); bool hasImage() const; QVariant colorData() const; void setColorData(const QVariant &color); bool hasColor() const; QByteArray data(const QString &mimetype) const; void setData(const QString &mimetype, const QByteArray &data); virtual bool hasFormat(const QString &mimetype) const; virtual QStringList formats() const; void clear(); %If (Qt_4_4_0 -) void removeFormat(const QString &mimetype); %End protected: virtual QVariant retrieveData(const QString &mimetype, QVariant::Type preferredType) const; private: QMimeData(const QMimeData &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qmutex.sip0000644000076500000240000000355012536324426020006 0ustar philstaff00000000000000// qmutex.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QMutex { %TypeHeaderCode #include %End public: enum RecursionMode { NonRecursive, Recursive, }; explicit QMutex(QMutex::RecursionMode mode = QMutex::NonRecursive); ~QMutex(); void lock() /ReleaseGIL/; bool tryLock(); %If (Qt_4_3_0 -) bool tryLock(int timeout) /ReleaseGIL/; %End void unlock(); private: QMutex(const QMutex &); }; class QMutexLocker { %TypeHeaderCode #include %End public: explicit QMutexLocker(QMutex *m) /ReleaseGIL/; ~QMutexLocker(); void unlock(); void relock() /ReleaseGIL/; QMutex *mutex() const; SIP_PYOBJECT __enter__(); %MethodCode // Just return a reference to self. sipRes = sipSelf; Py_INCREF(sipRes); %End void __exit__(SIP_PYOBJECT type, SIP_PYOBJECT value, SIP_PYOBJECT traceback); %MethodCode sipCpp->unlock(); %End private: QMutexLocker(const QMutexLocker &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qnamespace.sip0000644000076500000240000012013012536324426020572 0ustar philstaff00000000000000// qnamespace.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End namespace Qt { %TypeHeaderCode #include %End enum GlobalColor { color0, color1, black, white, darkGray, gray, lightGray, red, green, blue, cyan, magenta, yellow, darkRed, darkGreen, darkBlue, darkCyan, darkMagenta, darkYellow, transparent, }; enum KeyboardModifier { NoModifier, ShiftModifier, ControlModifier, AltModifier, MetaModifier, KeypadModifier, %If (Qt_4_2_0 -) GroupSwitchModifier, %End KeyboardModifierMask, }; typedef QFlags KeyboardModifiers; enum Modifier { META, SHIFT, CTRL, ALT, MODIFIER_MASK, UNICODE_ACCEL, }; enum MouseButton { NoButton, %If (Qt_5_0_0 -) AllButtons, %End LeftButton, RightButton, MidButton, %If (Qt_4_7_0 -) MiddleButton, %End XButton1, XButton2, %If (Qt_5_0_0 -) BackButton, %End %If (Qt_5_0_0 -) ExtraButton1, %End %If (Qt_5_0_0 -) ForwardButton, %End %If (Qt_5_0_0 -) ExtraButton2, %End %If (Qt_5_0_0 -) TaskButton, %End %If (Qt_5_0_0 -) ExtraButton3, %End %If (Qt_5_0_0 -) ExtraButton4, %End %If (Qt_5_0_0 -) ExtraButton5, %End %If (Qt_5_0_0 -) ExtraButton6, %End %If (Qt_5_0_0 -) ExtraButton7, %End %If (Qt_5_0_0 -) ExtraButton8, %End %If (Qt_5_0_0 -) ExtraButton9, %End %If (Qt_5_0_0 -) ExtraButton10, %End %If (Qt_5_0_0 -) ExtraButton11, %End %If (Qt_5_0_0 -) ExtraButton12, %End %If (Qt_5_0_0 -) ExtraButton13, %End %If (Qt_5_0_0 -) ExtraButton14, %End %If (Qt_5_0_0 -) ExtraButton15, %End %If (Qt_5_0_0 -) ExtraButton16, %End %If (Qt_5_0_0 -) ExtraButton17, %End %If (Qt_5_0_0 -) ExtraButton18, %End %If (Qt_5_0_0 -) ExtraButton19, %End %If (Qt_5_0_0 -) ExtraButton20, %End %If (Qt_5_0_0 -) ExtraButton21, %End %If (Qt_5_0_0 -) ExtraButton22, %End %If (Qt_5_0_0 -) ExtraButton23, %End %If (Qt_5_0_0 -) ExtraButton24, %End }; typedef QFlags MouseButtons; enum Orientation { Horizontal, Vertical, }; typedef QFlags Orientations; enum FocusPolicy { NoFocus, TabFocus, ClickFocus, StrongFocus, WheelFocus, }; enum SortOrder { AscendingOrder, DescendingOrder, }; enum AlignmentFlag { AlignLeft, AlignLeading, AlignRight, AlignTrailing, AlignHCenter, AlignJustify, AlignAbsolute, AlignHorizontal_Mask, AlignTop, AlignBottom, AlignVCenter, AlignVertical_Mask, AlignCenter, }; typedef QFlags Alignment; enum TextFlag { TextSingleLine, TextDontClip, TextExpandTabs, TextShowMnemonic, TextWordWrap, TextWrapAnywhere, TextDontPrint, TextIncludeTrailingSpaces, TextHideMnemonic, %If (Qt_4_3_0 -) TextJustificationForced, %End }; enum TextElideMode { ElideLeft, ElideRight, ElideMiddle, %If (Qt_4_2_0 -) ElideNone, %End }; enum WindowType { Widget, Window, Dialog, Sheet, Drawer, Popup, Tool, ToolTip, SplashScreen, Desktop, SubWindow, WindowType_Mask, MSWindowsFixedSizeDialogHint, MSWindowsOwnDC, X11BypassWindowManagerHint, FramelessWindowHint, %If (Qt_4_2_0 -) CustomizeWindowHint, %End WindowTitleHint, WindowSystemMenuHint, WindowMinimizeButtonHint, WindowMaximizeButtonHint, WindowMinMaxButtonsHint, WindowContextHelpButtonHint, WindowShadeButtonHint, WindowStaysOnTopHint, %If (Qt_4_4_0 -) WindowOkButtonHint, %End %If (Qt_4_4_0 -) WindowCancelButtonHint, %End %If (Qt_4_5_0 -) WindowStaysOnBottomHint, %End %If (Qt_4_5_0 -) WindowCloseButtonHint, %End %If (Qt_4_5_0 -) MacWindowToolBarButtonHint, %End %If (Qt_4_5_0 -) BypassGraphicsProxyWidget, %End %If (Qt_4_6_3 - Qt_5_0_0) WindowSoftkeysVisibleHint, %End %If (Qt_4_6_3 - Qt_5_0_0) WindowSoftkeysRespondHint, %End %If (Qt_5_0_0 -) WindowTransparentForInput, %End %If (Qt_5_0_0 -) WindowOverridesSystemGestures, %End %If (Qt_5_0_0 -) WindowDoesNotAcceptFocus, %End %If (Qt_5_0_0 -) NoDropShadowWindowHint, %End %If (Qt_5_0_0 -) WindowFullscreenButtonHint, %End }; typedef QFlags WindowFlags; enum WindowState { WindowNoState, WindowMinimized, WindowMaximized, WindowFullScreen, WindowActive, }; typedef QFlags WindowStates; enum WidgetAttribute { WA_Disabled, WA_UnderMouse, WA_MouseTracking, WA_OpaquePaintEvent, WA_StaticContents, WA_LaidOut, WA_PaintOnScreen, WA_NoSystemBackground, WA_UpdatesDisabled, WA_Mapped, WA_MacNoClickThrough, %If (- Qt_5_0_0) WA_PaintOutsidePaintEvent, %End WA_InputMethodEnabled, WA_WState_Visible, WA_WState_Hidden, WA_ForceDisabled, WA_KeyCompression, WA_PendingMoveEvent, WA_PendingResizeEvent, WA_SetPalette, WA_SetFont, WA_SetCursor, WA_NoChildEventsFromChildren, WA_WindowModified, WA_Resized, WA_Moved, WA_PendingUpdate, WA_InvalidSize, WA_MacMetalStyle, WA_CustomWhatsThis, WA_LayoutOnEntireRect, WA_OutsideWSRange, WA_GrabbedShortcut, WA_TransparentForMouseEvents, WA_PaintUnclipped, WA_SetWindowIcon, WA_NoMouseReplay, WA_DeleteOnClose, WA_RightToLeft, WA_SetLayoutDirection, WA_NoChildEventsForParent, WA_ForceUpdatesDisabled, WA_WState_Created, WA_WState_CompressKeys, WA_WState_InPaintEvent, WA_WState_Reparented, WA_WState_ConfigPending, WA_WState_Polished, WA_WState_OwnSizePolicy, WA_WState_ExplicitShowHide, WA_MouseNoMask, WA_GroupLeader, WA_NoMousePropagation, WA_Hover, WA_InputMethodTransparent, WA_QuitOnClose, WA_KeyboardFocusChange, WA_AcceptDrops, WA_WindowPropagation, WA_NoX11EventCompression, WA_TintedBackground, %If (Qt_4_1_3 -) WA_X11OpenGLOverlay, %End WA_AttributeCount, %If (Qt_4_2_0 -) WA_AlwaysShowToolTips, %End %If (Qt_4_2_0 -) WA_MacOpaqueSizeGrip, %End %If (Qt_4_2_0 -) WA_SetStyle, %End %If (Qt_4_3_0 -) WA_MacBrushedMetal, %End %If (Qt_4_3_0 -) WA_SetLocale, %End %If (Qt_4_3_0 -) WA_MacShowFocusRect, %End %If (Qt_4_3_0 -) WA_MacNormalSize, %End %If (Qt_4_3_0 -) WA_MacSmallSize, %End %If (Qt_4_3_0 -) WA_MacMiniSize, %End %If (Qt_4_3_0 -) WA_LayoutUsesWidgetRect, %End %If (Qt_4_3_0 -) WA_StyledBackground, %End %If (Qt_4_3_0 -) WA_MSWindowsUseDirect3D, %End %If (Qt_4_3_0 -) WA_MacAlwaysShowToolWindow, %End %If (Qt_4_3_0 -) WA_StyleSheet, %End %If (Qt_4_4_0 -) WA_ShowWithoutActivating, %End %If (Qt_4_4_0 -) WA_NativeWindow, %End %If (Qt_4_4_0 -) WA_DontCreateNativeAncestors, %End %If (Qt_4_4_0 -) WA_MacVariableSize, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeDesktop, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeDock, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeToolBar, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeMenu, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeUtility, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeSplash, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeDialog, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeDropDownMenu, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypePopupMenu, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeToolTip, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeNotification, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeCombo, %End %If (Qt_4_4_0 -) WA_X11NetWmWindowTypeDND, %End %If (Qt_4_5_0 -) WA_MacFrameworkScaled, %End %If (Qt_4_5_0 -) WA_TranslucentBackground, %End %If (Qt_4_6_0 -) WA_AcceptTouchEvents, %End %If (Qt_4_6_0 -) WA_TouchPadAcceptSingleTouchEvents, %End %If (Qt_4_6_2 - Qt_5_0_0) WA_MergeSoftkeys, %End %If (Qt_4_6_2 - Qt_5_0_0) WA_MergeSoftkeysRecursively, %End %If (Qt_4_7_0 -) WA_X11DoNotAcceptFocus, %End %If (Qt_4_7_2 - Qt_5_0_0) WA_LockPortraitOrientation, %End %If (Qt_4_7_2 - Qt_5_0_0) WA_LockLandscapeOrientation, %End %If (Qt_4_7_2 - Qt_5_0_0) WA_AutoOrientation, %End %If (Qt_4_8_0 -) WA_MacNoShadow, %End }; enum ImageConversionFlag { AutoColor, ColorOnly, MonoOnly, ThresholdAlphaDither, OrderedAlphaDither, DiffuseAlphaDither, DiffuseDither, OrderedDither, ThresholdDither, AutoDither, PreferDither, AvoidDither, }; typedef QFlags ImageConversionFlags; enum BGMode { TransparentMode, OpaqueMode, }; enum Key { Key_Escape, Key_Tab, Key_Backtab, Key_Backspace, Key_Return, Key_Enter, Key_Insert, Key_Delete, Key_Pause, Key_Print, Key_SysReq, Key_Clear, Key_Home, Key_End, Key_Left, Key_Up, Key_Right, Key_Down, Key_PageUp, Key_PageDown, Key_Shift, Key_Control, Key_Meta, Key_Alt, Key_CapsLock, Key_NumLock, Key_ScrollLock, Key_F1, Key_F2, Key_F3, Key_F4, Key_F5, Key_F6, Key_F7, Key_F8, Key_F9, Key_F10, Key_F11, Key_F12, Key_F13, Key_F14, Key_F15, Key_F16, Key_F17, Key_F18, Key_F19, Key_F20, Key_F21, Key_F22, Key_F23, Key_F24, Key_F25, Key_F26, Key_F27, Key_F28, Key_F29, Key_F30, Key_F31, Key_F32, Key_F33, Key_F34, Key_F35, Key_Super_L, Key_Super_R, Key_Menu, Key_Hyper_L, Key_Hyper_R, Key_Help, Key_Direction_L, Key_Direction_R, Key_Space, Key_Any, Key_Exclam, Key_QuoteDbl, Key_NumberSign, Key_Dollar, Key_Percent, Key_Ampersand, Key_Apostrophe, Key_ParenLeft, Key_ParenRight, Key_Asterisk, Key_Plus, Key_Comma, Key_Minus, Key_Period, Key_Slash, Key_0, Key_1, Key_2, Key_3, Key_4, Key_5, Key_6, Key_7, Key_8, Key_9, Key_Colon, Key_Semicolon, Key_Less, Key_Equal, Key_Greater, Key_Question, Key_At, Key_A, Key_B, Key_C, Key_D, Key_E, Key_F, Key_G, Key_H, Key_I, Key_J, Key_K, Key_L, Key_M, Key_N, Key_O, Key_P, Key_Q, Key_R, Key_S, Key_T, Key_U, Key_V, Key_W, Key_X, Key_Y, Key_Z, Key_BracketLeft, Key_Backslash, Key_BracketRight, Key_AsciiCircum, Key_Underscore, Key_QuoteLeft, Key_BraceLeft, Key_Bar, Key_BraceRight, Key_AsciiTilde, Key_nobreakspace, Key_exclamdown, Key_cent, Key_sterling, Key_currency, Key_yen, Key_brokenbar, Key_section, Key_diaeresis, Key_copyright, Key_ordfeminine, Key_guillemotleft, Key_notsign, Key_hyphen, Key_registered, Key_macron, Key_degree, Key_plusminus, Key_twosuperior, Key_threesuperior, Key_acute, Key_mu, Key_paragraph, Key_periodcentered, Key_cedilla, Key_onesuperior, Key_masculine, Key_guillemotright, Key_onequarter, Key_onehalf, Key_threequarters, Key_questiondown, Key_Agrave, Key_Aacute, Key_Acircumflex, Key_Atilde, Key_Adiaeresis, Key_Aring, Key_AE, Key_Ccedilla, Key_Egrave, Key_Eacute, Key_Ecircumflex, Key_Ediaeresis, Key_Igrave, Key_Iacute, Key_Icircumflex, Key_Idiaeresis, Key_ETH, Key_Ntilde, Key_Ograve, Key_Oacute, Key_Ocircumflex, Key_Otilde, Key_Odiaeresis, Key_multiply, Key_Ooblique, Key_Ugrave, Key_Uacute, Key_Ucircumflex, Key_Udiaeresis, Key_Yacute, Key_THORN, Key_ssharp, Key_division, Key_ydiaeresis, Key_AltGr, Key_Multi_key, Key_Codeinput, Key_SingleCandidate, Key_MultipleCandidate, Key_PreviousCandidate, Key_Mode_switch, Key_Kanji, Key_Muhenkan, Key_Henkan, Key_Romaji, Key_Hiragana, Key_Katakana, Key_Hiragana_Katakana, Key_Zenkaku, Key_Hankaku, Key_Zenkaku_Hankaku, Key_Touroku, Key_Massyo, Key_Kana_Lock, Key_Kana_Shift, Key_Eisu_Shift, Key_Eisu_toggle, Key_Hangul, Key_Hangul_Start, Key_Hangul_End, Key_Hangul_Hanja, Key_Hangul_Jamo, Key_Hangul_Romaja, Key_Hangul_Jeonja, Key_Hangul_Banja, Key_Hangul_PreHanja, Key_Hangul_PostHanja, Key_Hangul_Special, Key_Dead_Grave, Key_Dead_Acute, Key_Dead_Circumflex, Key_Dead_Tilde, Key_Dead_Macron, Key_Dead_Breve, Key_Dead_Abovedot, Key_Dead_Diaeresis, Key_Dead_Abovering, Key_Dead_Doubleacute, Key_Dead_Caron, Key_Dead_Cedilla, Key_Dead_Ogonek, Key_Dead_Iota, Key_Dead_Voiced_Sound, Key_Dead_Semivoiced_Sound, Key_Dead_Belowdot, Key_Dead_Hook, Key_Dead_Horn, Key_Back, Key_Forward, Key_Stop, Key_Refresh, Key_VolumeDown, Key_VolumeMute, Key_VolumeUp, Key_BassBoost, Key_BassUp, Key_BassDown, Key_TrebleUp, Key_TrebleDown, Key_MediaPlay, Key_MediaStop, Key_MediaPrevious, Key_MediaNext, Key_MediaRecord, Key_HomePage, Key_Favorites, Key_Search, Key_Standby, Key_OpenUrl, Key_LaunchMail, Key_LaunchMedia, Key_Launch0, Key_Launch1, Key_Launch2, Key_Launch3, Key_Launch4, Key_Launch5, Key_Launch6, Key_Launch7, Key_Launch8, Key_Launch9, Key_LaunchA, Key_LaunchB, Key_LaunchC, Key_LaunchD, Key_LaunchE, Key_LaunchF, Key_MediaLast, Key_Select, Key_Yes, Key_No, Key_Context1, Key_Context2, Key_Context3, Key_Context4, Key_Call, Key_Hangup, Key_Flip, Key_unknown, %If (Qt_4_2_0 -) Key_Execute, %End %If (Qt_4_2_0 -) Key_Printer, %End %If (Qt_4_2_0 -) Key_Play, %End %If (Qt_4_2_0 -) Key_Sleep, %End %If (Qt_4_2_0 -) Key_Zoom, %End %If (Qt_4_2_0 -) Key_Cancel, %End %If (Qt_4_6_0 -) Key_MonBrightnessUp, %End %If (Qt_4_6_0 -) Key_MonBrightnessDown, %End %If (Qt_4_6_0 -) Key_KeyboardLightOnOff, %End %If (Qt_4_6_0 -) Key_KeyboardBrightnessUp, %End %If (Qt_4_6_0 -) Key_KeyboardBrightnessDown, %End %If (Qt_4_6_0 -) Key_PowerOff, %End %If (Qt_4_6_0 -) Key_WakeUp, %End %If (Qt_4_6_0 -) Key_Eject, %End %If (Qt_4_6_0 -) Key_ScreenSaver, %End %If (Qt_4_6_0 -) Key_WWW, %End %If (Qt_4_6_0 -) Key_Memo, %End %If (Qt_4_6_0 -) Key_LightBulb, %End %If (Qt_4_6_0 -) Key_Shop, %End %If (Qt_4_6_0 -) Key_History, %End %If (Qt_4_6_0 -) Key_AddFavorite, %End %If (Qt_4_6_0 -) Key_HotLinks, %End %If (Qt_4_6_0 -) Key_BrightnessAdjust, %End %If (Qt_4_6_0 -) Key_Finance, %End %If (Qt_4_6_0 -) Key_Community, %End %If (Qt_4_6_0 -) Key_AudioRewind, %End %If (Qt_4_6_0 -) Key_BackForward, %End %If (Qt_4_6_0 -) Key_ApplicationLeft, %End %If (Qt_4_6_0 -) Key_ApplicationRight, %End %If (Qt_4_6_0 -) Key_Book, %End %If (Qt_4_6_0 -) Key_CD, %End %If (Qt_4_6_0 -) Key_Calculator, %End %If (Qt_4_6_0 -) Key_ToDoList, %End %If (Qt_4_6_0 -) Key_ClearGrab, %End %If (Qt_4_6_0 -) Key_Close, %End %If (Qt_4_6_0 -) Key_Copy, %End %If (Qt_4_6_0 -) Key_Cut, %End %If (Qt_4_6_0 -) Key_Display, %End %If (Qt_4_6_0 -) Key_DOS, %End %If (Qt_4_6_0 -) Key_Documents, %End %If (Qt_4_6_0 -) Key_Excel, %End %If (Qt_4_6_0 -) Key_Explorer, %End %If (Qt_4_6_0 -) Key_Game, %End %If (Qt_4_6_0 -) Key_Go, %End %If (Qt_4_6_0 -) Key_iTouch, %End %If (Qt_4_6_0 -) Key_LogOff, %End %If (Qt_4_6_0 -) Key_Market, %End %If (Qt_4_6_0 -) Key_Meeting, %End %If (Qt_4_6_0 -) Key_MenuKB, %End %If (Qt_4_6_0 -) Key_MenuPB, %End %If (Qt_4_6_0 -) Key_MySites, %End %If (Qt_4_6_0 -) Key_News, %End %If (Qt_4_6_0 -) Key_OfficeHome, %End %If (Qt_4_6_0 -) Key_Option, %End %If (Qt_4_6_0 -) Key_Paste, %End %If (Qt_4_6_0 -) Key_Phone, %End %If (Qt_4_6_0 -) Key_Calendar, %End %If (Qt_4_6_0 -) Key_Reply, %End %If (Qt_4_6_0 -) Key_Reload, %End %If (Qt_4_6_0 -) Key_RotateWindows, %End %If (Qt_4_6_0 -) Key_RotationPB, %End %If (Qt_4_6_0 -) Key_RotationKB, %End %If (Qt_4_6_0 -) Key_Save, %End %If (Qt_4_6_0 -) Key_Send, %End %If (Qt_4_6_0 -) Key_Spell, %End %If (Qt_4_6_0 -) Key_SplitScreen, %End %If (Qt_4_6_0 -) Key_Support, %End %If (Qt_4_6_0 -) Key_TaskPane, %End %If (Qt_4_6_0 -) Key_Terminal, %End %If (Qt_4_6_0 -) Key_Tools, %End %If (Qt_4_6_0 -) Key_Travel, %End %If (Qt_4_6_0 -) Key_Video, %End %If (Qt_4_6_0 -) Key_Word, %End %If (Qt_4_6_0 -) Key_Xfer, %End %If (Qt_4_6_0 -) Key_ZoomIn, %End %If (Qt_4_6_0 -) Key_ZoomOut, %End %If (Qt_4_6_0 -) Key_Away, %End %If (Qt_4_6_0 -) Key_Messenger, %End %If (Qt_4_6_0 -) Key_WebCam, %End %If (Qt_4_6_0 -) Key_MailForward, %End %If (Qt_4_6_0 -) Key_Pictures, %End %If (Qt_4_6_0 -) Key_Music, %End %If (Qt_4_6_0 -) Key_Battery, %End %If (Qt_4_6_0 -) Key_Bluetooth, %End %If (Qt_4_6_0 -) Key_WLAN, %End %If (Qt_4_6_0 -) Key_UWB, %End %If (Qt_4_6_0 -) Key_AudioForward, %End %If (Qt_4_6_0 -) Key_AudioRepeat, %End %If (Qt_4_6_0 -) Key_AudioRandomPlay, %End %If (Qt_4_6_0 -) Key_Subtitle, %End %If (Qt_4_6_0 -) Key_AudioCycleTrack, %End %If (Qt_4_6_0 -) Key_Time, %End %If (Qt_4_6_0 -) Key_Hibernate, %End %If (Qt_4_6_0 -) Key_View, %End %If (Qt_4_6_0 -) Key_TopMenu, %End %If (Qt_4_6_0 -) Key_PowerDown, %End %If (Qt_4_6_0 -) Key_Suspend, %End %If (Qt_4_6_0 -) Key_ContrastAdjust, %End %If (Qt_4_7_0 -) Key_MediaPause, %End %If (Qt_4_7_0 -) Key_MediaTogglePlayPause, %End %If (Qt_4_7_0 -) Key_LaunchG, %End %If (Qt_4_7_0 -) Key_LaunchH, %End %If (Qt_4_7_0 -) Key_ToggleCallHangup, %End %If (Qt_4_7_0 -) Key_VoiceDial, %End %If (Qt_4_7_0 -) Key_LastNumberRedial, %End %If (Qt_4_7_0 -) Key_Camera, %End %If (Qt_4_7_0 -) Key_CameraFocus, %End %If (Qt_5_0_0 -) Key_TouchpadToggle, %End %If (Qt_5_0_0 -) Key_TouchpadOn, %End %If (Qt_5_0_0 -) Key_TouchpadOff, %End }; enum ArrowType { NoArrow, UpArrow, DownArrow, LeftArrow, RightArrow, }; enum PenStyle { NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine, CustomDashLine, MPenStyle, }; enum PenCapStyle { FlatCap, SquareCap, RoundCap, MPenCapStyle, }; enum PenJoinStyle { MiterJoin, BevelJoin, RoundJoin, MPenJoinStyle, %If (Qt_4_2_0 -) SvgMiterJoin, %End }; enum BrushStyle { NoBrush, SolidPattern, Dense1Pattern, Dense2Pattern, Dense3Pattern, Dense4Pattern, Dense5Pattern, Dense6Pattern, Dense7Pattern, HorPattern, VerPattern, CrossPattern, BDiagPattern, FDiagPattern, DiagCrossPattern, LinearGradientPattern, RadialGradientPattern, ConicalGradientPattern, TexturePattern, }; enum UIEffect { UI_General, UI_AnimateMenu, UI_FadeMenu, UI_AnimateCombo, UI_AnimateTooltip, UI_FadeTooltip, UI_AnimateToolBox, }; enum CursorShape { ArrowCursor, UpArrowCursor, CrossCursor, WaitCursor, IBeamCursor, SizeVerCursor, SizeHorCursor, SizeBDiagCursor, SizeFDiagCursor, SizeAllCursor, BlankCursor, SplitVCursor, SplitHCursor, PointingHandCursor, ForbiddenCursor, %If (Qt_4_2_0 -) OpenHandCursor, %End %If (Qt_4_2_0 -) ClosedHandCursor, %End WhatsThisCursor, BusyCursor, LastCursor, BitmapCursor, %If (Qt_4_1_3 -) CustomCursor, %End %If (Qt_4_7_0 -) DragCopyCursor, %End %If (Qt_4_7_0 -) DragMoveCursor, %End %If (Qt_4_7_0 -) DragLinkCursor, %End }; enum TextFormat { PlainText, RichText, AutoText, %If (- Qt_5_0_0) LogText, %End }; enum AspectRatioMode { IgnoreAspectRatio, KeepAspectRatio, KeepAspectRatioByExpanding, }; %If (- Qt_5_0_0) enum AnchorAttribute { AnchorName, AnchorHref, }; %End enum DockWidgetArea { LeftDockWidgetArea, RightDockWidgetArea, TopDockWidgetArea, BottomDockWidgetArea, DockWidgetArea_Mask, AllDockWidgetAreas, %If (Qt_4_2_0 -) NoDockWidgetArea, %End }; typedef QFlags DockWidgetAreas; %If (Qt_5_0_0 -) enum TimerType { PreciseTimer, CoarseTimer, VeryCoarseTimer, }; %End enum ToolBarArea { LeftToolBarArea, RightToolBarArea, TopToolBarArea, BottomToolBarArea, ToolBarArea_Mask, AllToolBarAreas, %If (Qt_4_2_0 -) NoToolBarArea, %End }; typedef QFlags ToolBarAreas; enum DateFormat { TextDate, ISODate, LocalDate, %If (Qt_4_2_0 -) SystemLocaleDate, %End %If (Qt_4_2_0 -) LocaleDate, %End %If (Qt_4_4_0 -) SystemLocaleShortDate, %End %If (Qt_4_4_0 -) SystemLocaleLongDate, %End %If (Qt_4_4_0 -) DefaultLocaleShortDate, %End %If (Qt_4_4_0 -) DefaultLocaleLongDate, %End }; enum TimeSpec { LocalTime, UTC, %If (Qt_4_4_0 -) OffsetFromUTC, %End }; enum DayOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, }; enum ScrollBarPolicy { ScrollBarAsNeeded, ScrollBarAlwaysOff, ScrollBarAlwaysOn, }; enum CaseSensitivity { CaseInsensitive, CaseSensitive, }; enum Corner { TopLeftCorner, TopRightCorner, BottomLeftCorner, BottomRightCorner, }; enum ConnectionType { AutoConnection, DirectConnection, QueuedConnection, %If (- Qt_5_0_0) AutoCompatConnection, %End %If (Qt_4_3_0 -) BlockingQueuedConnection, %End %If (Qt_4_6_0 -) UniqueConnection, %End }; enum ShortcutContext { WidgetShortcut, WindowShortcut, ApplicationShortcut, %If (Qt_4_4_0 -) WidgetWithChildrenShortcut, %End }; enum FillRule { OddEvenFill, WindingFill, }; enum ClipOperation { NoClip, ReplaceClip, IntersectClip, %If (- Qt_5_0_0) UniteClip, %End }; enum TransformationMode { FastTransformation, SmoothTransformation, }; enum FocusReason { MouseFocusReason, TabFocusReason, BacktabFocusReason, ActiveWindowFocusReason, PopupFocusReason, ShortcutFocusReason, MenuBarFocusReason, OtherFocusReason, NoFocusReason, }; enum ContextMenuPolicy { NoContextMenu, %If (Qt_4_2_0 -) PreventContextMenu, %End DefaultContextMenu, ActionsContextMenu, CustomContextMenu, }; enum InputMethodQuery { ImMicroFocus, ImFont, ImCursorPosition, ImSurroundingText, ImCurrentSelection, %If (Qt_4_6_0 -) ImMaximumTextLength, %End %If (Qt_4_6_0 -) ImAnchorPosition, %End %If (Qt_5_0_0 -) ImEnabled, %End %If (Qt_5_0_0 -) ImCursorRectangle, %End %If (Qt_5_0_0 -) ImHints, %End %If (Qt_5_0_0 -) ImPreferredLanguage, %End %If (Qt_5_0_0 -) ImPlatformData, %End %If (Qt_5_0_0 -) ImQueryInput, %End %If (Qt_5_0_0 -) ImQueryAll, %End }; %If (Qt_5_0_0 -) typedef QFlags InputMethodQueries; %End enum ToolButtonStyle { ToolButtonIconOnly, ToolButtonTextOnly, ToolButtonTextBesideIcon, ToolButtonTextUnderIcon, %If (Qt_4_6_0 -) ToolButtonFollowStyle, %End }; enum LayoutDirection { LeftToRight, RightToLeft, %If (Qt_4_7_0 -) LayoutDirectionAuto, %End }; enum DropAction { CopyAction, MoveAction, LinkAction, ActionMask, TargetMoveAction, IgnoreAction, }; typedef QFlags DropActions; enum CheckState { Unchecked, PartiallyChecked, Checked, }; enum ItemDataRole { DisplayRole, DecorationRole, EditRole, ToolTipRole, StatusTipRole, WhatsThisRole, FontRole, TextAlignmentRole, %If (Qt_4_2_0 -) BackgroundRole, %End BackgroundColorRole, %If (Qt_4_2_0 -) ForegroundRole, %End TextColorRole, CheckStateRole, AccessibleTextRole, AccessibleDescriptionRole, SizeHintRole, %If (Qt_4_8_0 -) InitialSortOrderRole, %End UserRole, }; enum ItemFlag { %If (Qt_4_4_0 -) NoItemFlags, %End ItemIsSelectable, ItemIsEditable, ItemIsDragEnabled, ItemIsDropEnabled, ItemIsUserCheckable, ItemIsEnabled, ItemIsTristate, }; typedef QFlags ItemFlags; enum MatchFlag { MatchExactly, %If (Qt_4_2_0 -) MatchFixedString, %End MatchContains, MatchStartsWith, MatchEndsWith, MatchRegExp, MatchWildcard, MatchCaseSensitive, MatchWrap, MatchRecursive, }; typedef QFlags MatchFlags; %If (Qt_5_0_0 -) typedef void *HANDLE; %End %If (- Qt_5_0_0) %If (WS_WIN || WS_MACX) typedef void *HANDLE; %End %End %If (- Qt_5_0_0) %If (WS_X11) typedef unsigned long HANDLE; %End %End %If (PyQt_Deprecated_5_0) typedef Qt::WindowFlags WFlags; %End enum WindowModality { NonModal, WindowModal, ApplicationModal, }; %If (Qt_4_2_0 -) enum ApplicationAttribute { AA_ImmediateWidgetCreation, %If (Qt_4_3_0 -) AA_MSWindowsUseDirect3DByDefault, %End %If (Qt_4_4_0 -) AA_DontShowIconsInMenus, %End %If (Qt_4_4_0 -) AA_NativeWindows, %End %If (Qt_4_4_1 -) AA_DontCreateNativeWidgetSiblings, %End %If (Qt_4_5_0 -) AA_MacPluginApplication, %End %If (Qt_4_6_0 -) AA_DontUseNativeMenuBar, %End %If (Qt_4_6_0 -) AA_MacDontSwapCtrlAndMeta, %End %If (Qt_4_6_1 - Qt_5_0_0) AA_S60DontConstructApplicationPanes, %End %If (Qt_4_7_2 - Qt_5_0_0) AA_S60DisablePartialScreenInputMode, %End %If (Qt_4_8_0 -) AA_X11InitThreads, %End %If (Qt_4_8_0 - Qt_5_0_0) AA_CaptureMultimediaKeys, %End %If (Qt_5_0_0 -) AA_Use96Dpi, %End %If (Qt_5_0_0 -) AA_SynthesizeTouchForUnhandledMouseEvents, %End %If (Qt_5_0_0 -) AA_SynthesizeMouseForUnhandledTouchEvents, %End }; %End %If (Qt_4_2_0 -) enum ItemSelectionMode { ContainsItemShape, IntersectsItemShape, ContainsItemBoundingRect, IntersectsItemBoundingRect, }; %End %If (Qt_4_2_0 -) enum TextInteractionFlag { NoTextInteraction, TextSelectableByMouse, TextSelectableByKeyboard, LinksAccessibleByMouse, LinksAccessibleByKeyboard, TextEditable, TextEditorInteraction, TextBrowserInteraction, }; %End %If (Qt_4_2_0 -) typedef QFlags TextInteractionFlags; %End %If (Qt_4_3_0 -) enum MaskMode { MaskInColor, MaskOutColor, }; %End %If (Qt_4_3_0 -) enum Axis { XAxis, YAxis, ZAxis, }; %End %If (Qt_4_3_0 -) enum EventPriority { HighEventPriority, NormalEventPriority, LowEventPriority, }; %End %If (Qt_4_4_0 -) enum SizeMode { AbsoluteSize, RelativeSize, }; %End %If (Qt_4_4_0 -) enum SizeHint { MinimumSize, PreferredSize, MaximumSize, MinimumDescent, }; %End %If (Qt_4_4_0 -) enum WindowFrameSection { NoSection, LeftSection, TopLeftSection, TopSection, TopRightSection, RightSection, BottomRightSection, BottomSection, BottomLeftSection, TitleBarArea, }; %End %If (Qt_4_6_0 -) enum TileRule { StretchTile, RepeatTile, RoundTile, }; %End %If (Qt_4_6_0 -) enum InputMethodHint { ImhNone, ImhHiddenText, ImhNoAutoUppercase, ImhPreferNumbers, ImhPreferUppercase, ImhPreferLowercase, ImhNoPredictiveText, ImhDigitsOnly, ImhFormattedNumbersOnly, ImhUppercaseOnly, ImhLowercaseOnly, ImhDialableCharactersOnly, ImhEmailCharactersOnly, ImhUrlCharactersOnly, ImhExclusiveInputMask, %If (Qt_5_0_0 -) ImhSensitiveData, %End %If (Qt_5_0_0 -) ImhDate, %End %If (Qt_5_0_0 -) ImhTime, %End %If (Qt_5_0_0 -) ImhPreferLatin, %End %If (Qt_5_0_0 -) ImhLatinOnly, %End }; %End %If (Qt_4_6_0 -) typedef QFlags InputMethodHints; %End %If (Qt_4_6_0 -) enum AnchorPoint { AnchorLeft, AnchorHorizontalCenter, AnchorRight, AnchorTop, AnchorVerticalCenter, AnchorBottom, }; %End %If (Qt_4_6_0 -) enum CoordinateSystem { DeviceCoordinates, LogicalCoordinates, }; %End %If (Qt_4_6_0 -) enum TouchPointState { TouchPointPressed, TouchPointMoved, TouchPointStationary, TouchPointReleased, }; %End %If (Qt_4_6_0 -) typedef QFlags TouchPointStates; %End %If (Qt_4_6_0 -) enum GestureState { GestureStarted, GestureUpdated, GestureFinished, GestureCanceled, }; %End %If (Qt_4_6_0 -) enum GestureType { TapGesture, TapAndHoldGesture, PanGesture, PinchGesture, SwipeGesture, CustomGesture, }; %End %If (Qt_4_6_0 -) enum GestureFlag { DontStartGestureOnChildren, ReceivePartialGestures, %If (Qt_4_7_0 -) IgnoredGesturesPropagateToParent, %End }; %End %If (Qt_4_6_0 -) typedef QFlags GestureFlags; %End %If (Qt_4_6_0 -) enum NavigationMode { NavigationModeNone, NavigationModeKeypadTabOrder, NavigationModeKeypadDirectional, NavigationModeCursorAuto, NavigationModeCursorForceVisible, }; %End %If (Qt_4_8_0 -) enum CursorMoveStyle { LogicalMoveStyle, VisualMoveStyle, }; %End %If (Qt_5_0_0 -) enum ScreenOrientation { PrimaryOrientation, PortraitOrientation, LandscapeOrientation, InvertedPortraitOrientation, InvertedLandscapeOrientation, }; %End %If (Qt_5_0_0 -) typedef QFlags ScreenOrientations; %End %If (Qt_5_0_0 -) enum FindChildOption { FindDirectChildrenOnly, FindChildrenRecursively, }; %End %If (Qt_5_0_0 -) typedef QFlags FindChildOptions; %End %If (Qt_5_0_0 -) enum WhiteSpaceMode { WhiteSpaceNormal, WhiteSpacePre, WhiteSpaceNoWrap, WhiteSpaceModeUndefined, }; %End %If (Qt_5_0_0 -) enum HitTestAccuracy { ExactHit, FuzzyHit, }; %End }; %If (Py_v3) // Mapped type for QSet in Python v3. %MappedType QSet /DocType="set-of-Qt.DayOfWeek"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Create the set. PyObject *s; if ((s = PySet_New(NULL)) == NULL) return NULL; // Set the set elements. QSet::const_iterator it = sipCpp->constBegin(); QSet::const_iterator end = sipCpp->constEnd(); while (it != end) { PyObject *el_obj; if ((el_obj = sipConvertFromEnum(*it, sipType_Qt_DayOfWeek)) == NULL) { Py_DECREF(s); return NULL; } PySet_Add(s, el_obj); ++it; } return s; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; while ((itm = PyIter_Next(it)) != NULL) { int ok = sipCanConvertToEnum(itm, sipType_Qt_DayOfWeek); Py_DECREF(itm); if (!ok) { Py_DECREF(it); return 0; } } Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { long l = SIPLong_AsLong(itm); Py_DECREF(itm); qs->insert(static_cast(l)); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End %If (!Py_v3) // Mapped type for QSet in Python v2. %MappedType QSet /DocType="list-of-Qt.DayOfWeek"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. QSet::const_iterator it = sipCpp->constBegin(); for (int i = 0; i < sipCpp->size(); ++i) { PyObject *el_obj; if ((el_obj = sipConvertFromEnum(*it, sipType_Qt_DayOfWeek)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, el_obj); ++it; } return l; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; while ((itm = PyIter_Next(it)) != NULL) { int ok = sipCanConvertToEnum(itm, sipType_Qt_DayOfWeek); Py_DECREF(itm); if (!ok) { Py_DECREF(it); return 0; } } Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { long l = SIPLong_AsLong(itm); Py_DECREF(itm); qs->insert(static_cast(l)); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End QFlags operator|(Qt::MouseButton f1, QFlags f2); QFlags operator|(Qt::Orientation f1, QFlags f2); QFlags operator|(Qt::KeyboardModifier f1, QFlags f2); QFlags operator|(Qt::WindowType f1, QFlags f2); QFlags operator|(Qt::AlignmentFlag f1, QFlags f2); QFlags operator|(Qt::ImageConversionFlag f1, QFlags f2); QFlags operator|(Qt::DockWidgetArea f1, QFlags f2); QFlags operator|(Qt::ToolBarArea f1, QFlags f2); QFlags operator|(Qt::WindowState f1, QFlags f2); QFlags operator|(Qt::DropAction f1, QFlags f2); QFlags operator|(Qt::ItemFlag f1, QFlags f2); QFlags operator|(Qt::MatchFlag f1, QFlags f2); %If (Qt_4_2_0 -) QFlags operator|(Qt::TextInteractionFlag f1, QFlags f2); %End %If (Qt_4_6_0 -) QFlags operator|(Qt::InputMethodHint f1, QFlags f2); %End %If (Qt_4_6_0 -) QFlags operator|(Qt::TouchPointState f1, QFlags f2); %End %If (Qt_4_6_0 -) QFlags operator|(Qt::GestureFlag f1, QFlags f2); %End %If (Qt_5_0_0 -) QFlags operator|(Qt::ScreenOrientation f1, QFlags f2); %End %If (Qt_5_0_0 -) QFlags operator|(Qt::InputMethodQuery f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qnumeric.sip0000644000076500000240000000235412536324426020307 0ustar philstaff00000000000000// qnumeric.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %ModuleCode #include %End %End %If (Qt_4_3_0 -) bool qIsInf(double d); %End %If (Qt_4_3_0 -) bool qIsFinite(double d); %End %If (Qt_4_3_0 -) bool qIsNaN(double d); %End %If (Qt_4_3_0 -) double qInf(); %End %If (Qt_4_3_0 -) double qSNaN(); %End %If (Qt_4_3_0 -) double qQNaN(); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qobject.sip0000644000076500000240000006071312536324426020116 0ustar philstaff00000000000000// qobject.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QWidget /External/; typedef QList QObjectList; class QObject /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End %TypeCode // This is needed by the tr() and trUt8() handwritten implementations. #include // These are the helper functions for QObject::findChild() and // QObject::findChildren. // Wrap the given type in a 1-tuple. static PyObject *qtcore_type_to_tuple(PyObject *type) { PyObject *tuple = PyTuple_New(1); if (tuple) { Py_INCREF(type); PyTuple_SET_ITEM(tuple, 0, type); } return tuple; } // Check all elements of a given tuple are type objects and return a new // reference to the tuple if so. static PyObject *qtcore_check_tuple_types(PyObject *types) { for (SIP_SSIZE_T i = 0; i < PyTuple_GET_SIZE(types); ++i) if (!PyObject_TypeCheck(PyTuple_GET_ITEM(types, i), &PyType_Type)) { PyErr_SetString(PyExc_TypeError, "all elements of the types argument must be type objects"); return 0; } Py_INCREF(types); return types; } // Do the main work of finding a child. static PyObject *qtcore_do_find_child(const QObject *parent, PyObject *types, const QString &name) { const QObjectList &children = parent->children(); int i; for (i = 0; i < children.size(); ++i) { QObject *obj = children.at(i); PyObject *pyo = sipConvertFromType(obj, sipType_QObject, 0); if (!pyo) return 0; if (name.isNull() || obj->objectName() == name) for (SIP_SSIZE_T t = 0; t < PyTuple_GET_SIZE(types); ++t) if (PyType_IsSubtype(Py_TYPE(pyo), (PyTypeObject *)PyTuple_GET_ITEM(types, t))) return pyo; Py_DECREF(pyo); } for (i = 0; i < children.size(); ++i) { PyObject *pyo = qtcore_do_find_child(children.at(i), types, name); if (pyo != Py_None) return pyo; Py_DECREF(pyo); } Py_INCREF(Py_None); return Py_None; } // Find a child that is one of a number of types and with an optional name. static PyObject *qtcore_FindChild(const QObject *parent, PyObject *types, const QString &name) { // Check that the types checking was successful. if (!types) return 0; PyObject *child = qtcore_do_find_child(parent, types, name); Py_DECREF(types); return child; } // Do the main work of finding the children with a string name. static bool qtcore_do_find_children(const QObject *parent, PyObject *types, const QString &name, PyObject *list) { const QObjectList &children = parent->children(); int i; for (i = 0; i < children.size(); ++i) { QObject *obj = children.at(i); PyObject *pyo = sipConvertFromType(obj, sipType_QObject, 0); if (!pyo) return false; if (name.isNull() || obj->objectName() == name) for (SIP_SSIZE_T t = 0; t < PyTuple_GET_SIZE(types); ++t) if (PyType_IsSubtype(Py_TYPE(pyo), (PyTypeObject *)PyTuple_GET_ITEM(types, t))) if (PyList_Append(list, pyo) < 0) { Py_DECREF(pyo); return false; } Py_DECREF(pyo); bool ok = qtcore_do_find_children(obj, types, name, list); if (!ok) return false; } return true; } // Find a child that is one of a number of types and with an optional string // name. static PyObject *qtcore_FindChildren(const QObject *parent, PyObject *types, const QString &name) { // Check that the types checking was successful. if (!types) return 0; PyObject *list = PyList_New(0); if (list) if (!qtcore_do_find_children(parent, types, name, list)) Py_DECREF(list); Py_DECREF(types); return list; } // Do the main work of finding the children with a regular expression name. static bool qtcore_do_find_children(const QObject *parent, PyObject *types, const QRegExp &re, PyObject *list) { const QObjectList &children = parent->children(); int i; for (i = 0; i < children.size(); ++i) { QObject *obj = children.at(i); PyObject *pyo = sipConvertFromType(obj, sipType_QObject, 0); if (!pyo) return false; if (re.indexIn(obj->objectName()) >= 0) for (SIP_SSIZE_T t = 0; t < PyTuple_GET_SIZE(types); ++t) if (PyType_IsSubtype(Py_TYPE(pyo), (PyTypeObject *)PyTuple_GET_ITEM(types, t))) if (PyList_Append(list, pyo) < 0) { Py_DECREF(pyo); return false; } Py_DECREF(pyo); bool ok = qtcore_do_find_children(obj, types, re, list); if (!ok) return false; } return true; } // Find a child that is one of a number of types and with an optional regular // expression name. static PyObject *qtcore_FindChildren(const QObject *parent, PyObject *types, const QRegExp &re) { // Check that the types checking was successful. if (!types) return 0; PyObject *list = PyList_New(0); if (list) if (!qtcore_do_find_children(parent, types, re, list)) Py_DECREF(list); Py_DECREF(types); return list; } %End %FinalisationCode return qpycore_qobject_finalisation(sipSelf, sipCpp, sipKwds, sipUnused); %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { #if QT_VERSION >= 0x040400 {sipName_QSharedMemory, &sipType_QSharedMemory, -1, 1}, #else {0, 0, -1, 1}, #endif {sipName_QObjectCleanupHandler, &sipType_QObjectCleanupHandler, -1, 2}, {sipName_QMimeData, &sipType_QMimeData, -1, 3}, {sipName_QSettings, &sipType_QSettings, -1, 4}, {sipName_QAbstractEventDispatcher, &sipType_QAbstractEventDispatcher, -1, 5}, #if QT_VERSION >= 0x040400 {sipName_QThreadPool, &sipType_QThreadPool, -1, 6}, #else {0, 0, -1, 6}, #endif {sipName_QSocketNotifier, &sipType_QSocketNotifier, -1, 7}, {sipName_QTimer, &sipType_QTimer, -1, 8}, {sipName_QPluginLoader, &sipType_QPluginLoader, -1, 9}, {sipName_QSignalMapper, &sipType_QSignalMapper, -1, 10}, #if QT_VERSION >= 0x040600 {sipName_QAbstractState, &sipType_QAbstractState, 22, 11}, #else {0, 0, 22, 11}, #endif {sipName_QIODevice, &sipType_QIODevice, 26, 12}, {sipName_QTranslator, &sipType_QTranslator, -1, 13}, #if QT_VERSION >= 0x040600 {sipName_QAbstractTransition, &sipType_QAbstractTransition, 30, 14}, #else {0, 0, 30, 14}, #endif {sipName_QCoreApplication, &sipType_QCoreApplication, -1, 15}, #if QT_VERSION >= 0x040200 {sipName_QTimeLine, &sipType_QTimeLine, -1, 16}, #else {0, 0, -1, 16}, #endif {sipName_QAbstractItemModel, &sipType_QAbstractItemModel, 32, 17}, #if QT_VERSION >= 0x040600 {sipName_QAbstractAnimation, &sipType_QAbstractAnimation, 34, 18}, #else {0, 0, 34, 18}, #endif {sipName_QEventLoop, &sipType_QEventLoop, -1, 19}, #if QT_VERSION >= 0x040200 {sipName_QFileSystemWatcher, &sipType_QFileSystemWatcher, -1, 20}, #else {0, 0, -1, 20}, #endif {sipName_QLibrary, &sipType_QLibrary, -1, 21}, {sipName_QThread, &sipType_QThread, -1, -1}, #if QT_VERSION >= 0x040600 {sipName_QState, &sipType_QState, 25, 23}, {sipName_QFinalState, &sipType_QFinalState, -1, 24}, {sipName_QHistoryState, &sipType_QHistoryState, -1, -1}, {sipName_QStateMachine, &sipType_QStateMachine, -1, -1}, #else {0, 0, 25, 23}, {0, 0, -1, 24}, {0, 0, -1, -1}, {0, 0, -1, -1}, #endif {sipName_QBuffer, &sipType_QBuffer, -1, 27}, {sipName_QFile, &sipType_QFile, 29, 28}, {sipName_QProcess, &sipType_QProcess, -1, -1}, {sipName_QTemporaryFile, &sipType_QTemporaryFile, -1, -1}, #if QT_VERSION >= 0x040600 {sipName_QEventTransition, &sipType_QEventTransition, -1, 31}, {sipName_QSignalTransition, &sipType_QSignalTransition, -1, -1}, #else {0, 0, -1, 31}, {0, 0, -1, -1}, #endif {sipName_QAbstractListModel, &sipType_QAbstractListModel, -1, 33}, {sipName_QAbstractTableModel, &sipType_QAbstractTableModel, -1, -1}, #if QT_VERSION >= 0x040600 {sipName_QAnimationGroup, &sipType_QAnimationGroup, 37, 35}, {sipName_QVariantAnimation, &sipType_QVariantAnimation, 39, 36}, {sipName_QPauseAnimation, &sipType_QPauseAnimation, -1, -1}, {sipName_QSequentialAnimationGroup, &sipType_QSequentialAnimationGroup, -1, 38}, {sipName_QParallelAnimationGroup, &sipType_QParallelAnimationGroup, -1, -1}, {sipName_QPropertyAnimation, &sipType_QPropertyAnimation, -1, -1}, #else {0, 0, 37, 35}, {0, 0, 39, 36}, {0, 0, -1, -1}, {0, 0, -1, 38}, {0, 0, -1, -1}, {0, 0, -1, -1}, #endif }; int i = 0; sipType = 0; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: static const QMetaObject staticMetaObject { %GetCode sipPy = qpycore_qobject_staticmetaobject(sipPyType); %End }; const QMetaObject *metaObject() const; explicit QObject(QObject *parent /TransferThis/ = 0); virtual ~QObject(); void pyqtConfigure(SIP_PYOBJECT) /NoArgParser/; %Docstring QObject.pyqtConfigure(...) Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable. %End %MethodCode return qpycore_pyqtconfigure(sipSelf, sipArgs, sipKwds); %End SIP_PYOBJECT __getattr__(const char *name) const; %MethodCode sipRes = qpycore_qobject_getattr(const_cast(sipCpp), sipSelf, a0); %End virtual bool event(QEvent *); virtual bool eventFilter(QObject *, QEvent *); %If (Qt_5_0_0 -) QString tr(const char *sourceText /Encoding="UTF-8"/, const char *disambiguation = 0, int n = -1) const; %MethodCode // Note that tr() is really a static method. We pretend it isn't so we can use // self to get hold of the class name. sipRes = new QString(QCoreApplication::translate(Py_TYPE(sipSelf)->tp_name, a0, a1, a2)); %End %End %If (Qt_4_2_0 - Qt_5_0_0) QString tr(SIP_PYOBJECT sourceText /DocType="str"/, const char *disambiguation = 0, int n = -1) const; %MethodCode // Note that tr() is really a static method. We pretend it isn't so we can use // self to get hold of the class name. const char *source = qpycore_encode(&a0, QCoreApplication::CodecForTr); if (source) { sipRes = new QString(QCoreApplication::translate(Py_TYPE(sipSelf)->tp_name, source, a1, QCoreApplication::CodecForTr, a2)); Py_DECREF(a0); } else { sipIsErr = 1; } %End %End %If (- Qt_4_2_0) QString tr(SIP_PYOBJECT sourceText /DocType="str"/, const char *disambiguation = 0) const; %MethodCode // Note that tr() is really a static method. We pretend it isn't so we can use // self to get hold of the class name. if (QCoreApplication::instance()) { const char *source = qpycore_encode(&a0, QCoreApplication::DefaultCodec); if (source) { sipRes = new QString(QCoreApplication::instance()->translate(Py_TYPE(sipSelf)->tp_name, source, a1, QCoreApplication::DefaultCodec)); Py_DECREF(a0); } else { sipIsErr = 1; } } else { const char *source = sipString_AsLatin1String(&a0); if (source) { sipRes = new QString(QString::fromLatin1(source)); Py_DECREF(a0); } else { sipIsErr = 1; } } %End %End %If (Qt_4_2_0 -) %If (PyQt_Deprecated_5_0) QString trUtf8(SIP_PYOBJECT sourceText /DocType="str"/, const char *disambiguation = 0, int n = -1) const; %MethodCode // Note that trUtf8() is really a static method. We pretend it isn't aren't so // we can use self to get hold of the class name. const char *source = qpycore_encode(&a0, QCoreApplication::UnicodeUTF8); if (source) { sipRes = new QString(QCoreApplication::translate(Py_TYPE(sipSelf)->tp_name, source, a1, QCoreApplication::UnicodeUTF8, a2)); Py_DECREF(a0); } else { sipIsErr = 1; } %End %End %End %If (- Qt_4_2_0) QString trUtf8(SIP_PYOBJECT sourceText /DocType="str"/, const char *disambiguation = 0) const; %MethodCode // Note that trUtf8() is really a static method. We pretend it isn't aren't so // we can use self to get hold of the class name. if (QCoreApplication::instance()) { const char *source = qpycore_encode(&a0, QCoreApplication::UnicodeUTF8); if (source) { sipRes = new QString(QCoreApplication::instance()->translate(Py_TYPE(sipSelf)->tp_name, source, a1, QCoreApplication::UnicodeUTF8)); Py_DECREF(a0); } else { sipIsErr = 1; } } else { const char *source = sipString_AsUTF8String(&a0); if (source) { sipRes = new QString(QString::fromUtf8(source)); Py_DECREF(a0); } else { sipIsErr = 1; } } %End %End SIP_PYOBJECT findChild(SIP_PYTYPE type, const QString &name /DocValue="Py_v3:''"/ = QString()) const /DocType="QObject"/; %MethodCode sipRes = qtcore_FindChild(sipCpp, qtcore_type_to_tuple(a0), *a1); if (!sipRes) sipIsErr = 1; %End SIP_PYOBJECT findChild(SIP_PYTUPLE types /DocValue="tuple-of-types"/, const QString &name /DocValue="Py_v3:''"/ = QString()) const /DocType="QObject"/; %MethodCode sipRes = qtcore_FindChild(sipCpp, qtcore_check_tuple_types(a0), *a1); if (!sipRes) sipIsErr = 1; %End SIP_PYLIST findChildren(SIP_PYTYPE type, const QString &name /DocValue="Py_v3:''"/ = QString()) const /DocType="list-of-QObject"/; %MethodCode sipRes = qtcore_FindChildren(sipCpp, qtcore_type_to_tuple(a0), *a1); if (!sipRes) sipIsErr = 1; %End SIP_PYLIST findChildren(SIP_PYTUPLE types /DocValue="tuple-of-types"/, const QString &name /DocValue="Py_v3:''"/ = QString()) const /DocType="list-of-QObject"/; %MethodCode sipRes = qtcore_FindChildren(sipCpp, qtcore_check_tuple_types(a0), *a1); if (!sipRes) sipIsErr = 1; %End SIP_PYLIST findChildren(SIP_PYTYPE type, const QRegExp ®Exp) const /DocType="list-of-QObject"/; %MethodCode sipRes = qtcore_FindChildren(sipCpp, qtcore_type_to_tuple(a0), *a1); if (!sipRes) sipIsErr = 1; %End SIP_PYLIST findChildren(SIP_PYTUPLE types /DocValue="tuple-of-types"/, const QRegExp ®Exp) const /DocType="list-of-QObject"/; %MethodCode sipRes = qtcore_FindChildren(sipCpp, qtcore_check_tuple_types(a0), *a1); if (!sipRes) sipIsErr = 1; %End void emit(SIP_SIGNAL, ...); %MethodCode if (!qpycore_qobject_emit(sipCpp, a0, a1)) sipIsErr = 1; %End QString objectName() const; void setObjectName(const QString &name); bool isWidgetType() const; %If (Qt_5_0_0 -) bool isWindowType() const; %End bool signalsBlocked() const; bool blockSignals(bool b); QThread *thread() const; void moveToThread(QThread *thread); %If (Qt_5_0_0 -) int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer); %End %If (- Qt_5_0_0) int startTimer(int interval); %End void killTimer(int id); const QObjectList &children() const; void setParent(QObject * /TransferThis/); void installEventFilter(QObject *); void removeEventFilter(QObject *); static SIP_PYOBJECT connect(SIP_QOBJECT, SIP_SIGNAL, SIP_QOBJECT, SIP_SLOT, Qt::ConnectionType=Qt::AutoConnection) /DocType="bool"/; %MethodCode sipRes = sipConnectRx(a0, a1, a2, a3, (int)a4); %End static SIP_PYOBJECT connect(SIP_QOBJECT, SIP_SIGNAL, SIP_PYCALLABLE, Qt::ConnectionType=Qt::AutoConnection) /DocType="bool"/; %MethodCode sipRes = sipConnectRx(a0, a1, a2, 0, (int)a3); %End SIP_PYOBJECT connect(SIP_QOBJECT, SIP_SIGNAL, SIP_SLOT, Qt::ConnectionType=Qt::AutoConnection) const /DocType="bool"/; %MethodCode sipRes = sipConnectRx(a0, a1, sipSelf, a2, (int)a3); %End static SIP_PYOBJECT disconnect(SIP_QOBJECT, SIP_SIGNAL, SIP_QOBJECT, SIP_SLOT) /DocType="bool"/; %MethodCode sipRes = sipDisconnectRx(a0, a1, a2, a3); %End static SIP_PYOBJECT disconnect(SIP_QOBJECT, SIP_SIGNAL, SIP_PYCALLABLE) /DocType="bool"/; %MethodCode sipRes = sipDisconnectRx(a0, a1, a2, 0); %End void dumpObjectInfo(); void dumpObjectTree(); %If (Qt_4_2_0 -) QList dynamicPropertyNames() const; %End bool setProperty(const char *name, const QVariant &value); QVariant property(const char *name) const; signals: void destroyed(QObject *object = 0) /PyQtSignalHack=1/; %If (Qt_5_0_0 -) void objectNameChanged(const QString &objectName); %End public: QObject *parent() const; bool inherits(const char *classname) const; public slots: void deleteLater() /TransferThis/; protected: QObject *sender() const /ReleaseGIL/; %MethodCode typedef QObject *(*helper_func)(QObject *); static helper_func helper = 0; if (!helper) helper = (helper_func)sipImportSymbol("qpycore_qobject_sender"); // sender() must be called without the GIL to avoid possible deadlocks between // the GIL and Qt's internal thread data mutex. Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) sipRes = sipCpp->sender(); #else sipRes = sipCpp->sipProtect_sender(); #endif Py_END_ALLOW_THREADS if (helper) sipRes = helper(sipRes); %End int receivers(SIP_SIGNAL signal) const; %MethodCode // We need to take into account any proxies for Python signals. Import the // helper if it hasn't already been done. typedef int (*helper_func)(QObject *, const char *, int); static helper_func helper = 0; if (!helper) helper = (helper_func)sipImportSymbol("qpycore_qobject_receivers"); // PyQt5: Get rid of the const casts. if (helper) #if defined(SIP_PROTECTED_IS_PUBLIC) sipRes = helper(const_cast(sipCpp), a0, sipCpp->receivers(a0)); #else sipRes = helper(const_cast(static_cast(sipCpp)), a0, sipCpp->sipProtect_receivers(a0)); #endif %End virtual void timerEvent(QTimerEvent *); virtual void childEvent(QChildEvent *); virtual void customEvent(QEvent *); %If (Qt_5_0_0 -) virtual void connectNotify(const QMetaMethod &signal); %End %If (- Qt_5_0_0) virtual void connectNotify(SIP_SIGNAL signal); %End %If (Qt_5_0_0 -) virtual void disconnectNotify(const QMetaMethod &signal); %End %If (- Qt_5_0_0) virtual void disconnectNotify(SIP_SIGNAL signal); %End %If (Qt_4_8_0 -) int senderSignalIndex() const; %End %If (Qt_5_0_0 -) bool isSignalConnected(const QMetaMethod &signal) const; %End private: QObject(const QObject &); }; SIP_PYOBJECT Q_CLASSINFO(const char *name, const char *value) /DocType=""/; %MethodCode sipRes = qpycore_ClassInfo(a0, a1); %End SIP_PYOBJECT Q_ENUMS(...) /DocType=""/; %MethodCode sipRes = qpycore_register_int_types(a0); %End SIP_PYOBJECT Q_FLAGS(...) /DocType=""/; %MethodCode sipRes = qpycore_register_int_types(a0); %End SIP_PYOBJECT QT_TR_NOOP(SIP_PYOBJECT /DocType="str"/) /DocType="str"/; %MethodCode Py_INCREF(a0); sipRes = a0; %End SIP_PYOBJECT QT_TR_NOOP_UTF8(SIP_PYOBJECT /DocType="str"/) /DocType="str"/; %MethodCode Py_INCREF(a0); sipRes = a0; %End SIP_PYOBJECT QT_TRANSLATE_NOOP(SIP_PYOBJECT /DocType="str"/, SIP_PYOBJECT /DocType="str"/) /DocType="str"/; %MethodCode Py_INCREF(a1); sipRes = a1; %End SIP_PYOBJECT SLOT(const char * /Encoding="ASCII"/) /DocType="str"/; %MethodCode QByteArray ns = QMetaObject::normalizedSignature(a0); ns.prepend('1'); if ((sipRes = SIPBytes_FromString(ns.constData())) == NULL) sipIsErr = 1; %End SIP_PYOBJECT SIGNAL(const char * /Encoding="ASCII"/) /DocType="str"/; %MethodCode QByteArray ns = QMetaObject::normalizedSignature(a0); ns.prepend('2'); if ((sipRes = SIPBytes_FromString(ns.constData())) == NULL) sipIsErr = 1; %End SIP_PYOBJECT pyqtSlot(const char *signature, const char *name = 0, const char *result = 0) /NoArgParser/; %Docstring @pyqtSlot(*types, str name=None, str result=None) This is a decorator applied to Python methods of a QObject that marks them as Qt slots. The non-keyword arguments are the types of the slot arguments and each may be a Python type object or a string specifying a C++ type. name is the name of the slot and defaults to the name of the method. result is type of the value returned by the slot. %End %MethodCode return qpycore_pyqtslot(sipArgs, sipKwds); %End SIP_PYOBJECT pyqtSignature(const char *signature, const char *result = 0) /NoArgParser/; %Docstring @pyqtSignature(str signature, str result=None) This is deprecated, use pyqtSlot() instead. This is a decorator applied to Python methods of a QObject that marks them as Qt slots. signature is a string specifying the C++ signature of the slot. result is type of the value returned by the slot. %End %MethodCode return qpycore_pyqtsignature(sipArgs, sipKwds); %End %ModuleHeaderCode #include %End %ModuleCode // These optional parts of the legacy Qt support API for SIP are implemented. // This cannot go into qpycore_api.h as they need to be in a particular // position in the generated code. #undef sipQtCreateUniversalSignal #undef sipQtFindUniversalSignal extern "C" { void *sipQtCreateUniversalSignal(void *tx, const char **sig); void *sipQtFindUniversalSignal(void *tx, const char **sig); void *sipQtCreateUniversalSlot(sipWrapper *tx, const char *sig, PyObject *rxObj, const char *slot, const char **member, int flags); void sipQtDestroyUniversalSlot(void *rx); void *sipQtFindSlot(void *tx, const char *sig, PyObject *rxObj, const char *slot, const char **member); int sipQtConnect(void *tx, const char *sig, void *rx, const char *slot, int type); int sipQtDisconnect(void *tx, const char *sig, void *rx, const char *slot); int sipQtSameSignalSlotName(const char *s1, const char *s2); sipSlot *sipQtFindSipslot(void *tx, void **context); } %End %InitialisationCode qpycore_init(); %End %PostInitialisationCode qpycore_post_init(sipModuleDict); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qobjectcleanuphandler.sip0000644000076500000240000000234012536324426023014 0ustar philstaff00000000000000// qobjectcleanuphandler.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QObjectCleanupHandler : QObject { %TypeHeaderCode #include %End public: QObjectCleanupHandler(); virtual ~QObjectCleanupHandler(); QObject *add(QObject *object); void remove(QObject *object); bool isEmpty() const; void clear(); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qobjectdefs.sip0000644000076500000240000001730012536324426020752 0ustar philstaff00000000000000// qobjectdefs.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. struct QMetaObject { %TypeHeaderCode #include %End %TypeCode // Raise an exception when QMetaObject::invokeMethod() returns false. static void qtcore_invokeMethod_exception() { PyErr_SetString(PyExc_RuntimeError, "QMetaObject.invokeMethod() call failed"); } %End const char *className() const; const QMetaObject *superClass() const; %If (Qt_4_2_0 -) QMetaProperty userProperty() const; %End int methodOffset() const; int enumeratorOffset() const; int propertyOffset() const; int classInfoOffset() const; int methodCount() const; int enumeratorCount() const; int propertyCount() const; int classInfoCount() const; int indexOfMethod(const char *method) const; int indexOfSignal(const char *signal) const; int indexOfSlot(const char *slot) const; int indexOfEnumerator(const char *name) const; int indexOfProperty(const char *name) const; int indexOfClassInfo(const char *name) const; QMetaMethod method(int index) const; QMetaEnum enumerator(int index) const; QMetaProperty property(int index) const; QMetaClassInfo classInfo(int index) const; static bool checkConnectArgs(const char *signal, const char *method); static void connectSlotsByName(QObject *o /GetWrapper/); %MethodCode qpycore_qmetaobject_connectslotsbyname(a0, a0Wrapper); %End static QByteArray normalizedSignature(const char *method); %If (Qt_4_2_0 -) static QByteArray normalizedType(const char *type); %End static SIP_PYOBJECT invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QGenericReturnArgument ret /GetWrapper/, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)); %MethodCode // Raise an exception if the call failed. bool ok; Py_BEGIN_ALLOW_THREADS ok = QMetaObject::invokeMethod(a0,a1,a2,*a3,*a4,*a5,*a6,*a7,*a8,*a9,*a10,*a11,*a12,*a13); Py_END_ALLOW_THREADS if (ok) sipRes = qpycore_ReturnValue(a3Wrapper); else qtcore_invokeMethod_exception(); %End static SIP_PYOBJECT invokeMethod(QObject *obj, const char *member, QGenericReturnArgument ret /GetWrapper/, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)); %MethodCode // Raise an exception if the call failed. bool ok; Py_BEGIN_ALLOW_THREADS ok = QMetaObject::invokeMethod(a0,a1,*a2,*a3,*a4,*a5,*a6,*a7,*a8,*a9,*a10,*a11,*a12); Py_END_ALLOW_THREADS if (ok) sipRes = qpycore_ReturnValue(a2Wrapper); else qtcore_invokeMethod_exception(); %End static SIP_PYOBJECT invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)); %MethodCode // Raise an exception if the call failed. bool ok; Py_BEGIN_ALLOW_THREADS ok = QMetaObject::invokeMethod(a0,a1,a2,*a3,*a4,*a5,*a6,*a7,*a8,*a9,*a10,*a11,*a12); Py_END_ALLOW_THREADS if (ok) { Py_INCREF(Py_None); sipRes = Py_None; } else qtcore_invokeMethod_exception(); %End static SIP_PYOBJECT invokeMethod(QObject *obj, const char *member, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)); %MethodCode // Raise an exception if the call failed. bool ok; Py_BEGIN_ALLOW_THREADS ok = QMetaObject::invokeMethod(a0,a1,*a2,*a3,*a4,*a5,*a6,*a7,*a8,*a9,*a10,*a11); Py_END_ALLOW_THREADS if (ok) { Py_INCREF(Py_None); sipRes = Py_None; } else qtcore_invokeMethod_exception(); %End %If (Qt_4_5_0 -) int constructorCount() const; %End %If (Qt_4_5_0 -) int indexOfConstructor(const char *constructor) const; %End %If (Qt_4_5_0 -) QMetaMethod constructor(int index) const; %End %If (Qt_4_5_0 - Qt_5_0_0) QObject *newInstance(QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)) const /Factory/; %End }; // The support for Q_ARG(), Q_RETURN_ARG() and supporting classes. class QGenericArgument /NoDefaultCtors/ { %TypeHeaderCode #include %End public: ~QGenericArgument(); }; SIP_PYOBJECT Q_ARG(SIP_PYOBJECT type, SIP_PYOBJECT data) /DocType="QGenericArgument"/; %MethodCode sipRes = qpycore_ArgumentFactory(a0, a1); %End class QGenericReturnArgument /NoDefaultCtors/ { %TypeHeaderCode #include %End public: ~QGenericReturnArgument(); }; SIP_PYOBJECT Q_RETURN_ARG(SIP_PYOBJECT type) /DocType="QGenericReturnArgument"/; %MethodCode sipRes = qpycore_ReturnFactory(a0); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qpair.sip0000644000076500000240000000747312536324426017607 0ustar philstaff00000000000000// qpair.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // QPair is implemented as a Python 2-element tuple. %MappedType QPair /DocType="tuple-of-int-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the tuple. return Py_BuildValue((char *)"ii", sipCpp->first, sipCpp->second); %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return (PyTuple_Size(sipPy) == 2); QPair *qp = new QPair; qp->first = SIPLong_AsLong(PyTuple_GET_ITEM(sipPy, 0)); qp->second = SIPLong_AsLong(PyTuple_GET_ITEM(sipPy, 1)); *sipCppPtr = qp; return sipGetState(sipTransferObj); %End }; // QPair is implemented as a Python 2-element tuple. %MappedType QPair /DocType="tuple-of-int-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the tuple. return Py_BuildValue((char *)"II", sipCpp->first, sipCpp->second); %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return (PyTuple_Size(sipPy) == 2); QPair *qp = new QPair; qp->first = PyLong_AsUnsignedLong(PyTuple_GET_ITEM(sipPy, 0)); qp->second = PyLong_AsUnsignedLong(PyTuple_GET_ITEM(sipPy, 1)); *sipCppPtr = qp; return sipGetState(sipTransferObj); %End }; %If (Qt_4_5_0 -) // QPair is implemented as a Python 2-element tuple. template %MappedType QPair /DocType="tuple-of-TYPE-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the tuple. PyObject *tup = PyTuple_New(2); if (!tup) return 0; PyObject *obj; // Convert the first part. TYPE *t = new TYPE(sipCpp->first); obj = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj); if (!obj) { delete t; Py_DECREF(tup); return 0; } PyTuple_SET_ITEM(tup, 0, obj); // Convert the second part. obj = SIPLong_FromLong(sipCpp->second); if (!obj) { Py_DECREF(tup); return 0; } PyTuple_SET_ITEM(tup, 1, obj); return tup; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return (PyTuple_Size(sipPy) == 2 && sipCanConvertToType(PyTuple_GET_ITEM(sipPy, 0), sipType_TYPE, SIP_NOT_NONE)); QPair *qp = new QPair; int state; TYPE *t = reinterpret_cast(sipConvertToType(PyTuple_GET_ITEM(sipPy, 0), sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(t, sipType_TYPE, state); delete qp; return 0; } qp->first = *t; sipReleaseType(t, sipType_TYPE, state); qp->second = SIPLong_AsLong(PyTuple_GET_ITEM(sipPy, 1)); *sipCppPtr = qp; return sipGetState(sipTransferObj); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qparallelanimationgroup.sip0000644000076500000240000000307612536324426023420 0ustar philstaff00000000000000// qparallelanimationgroup.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QParallelAnimationGroup : QAnimationGroup { %TypeHeaderCode #include %End public: QParallelAnimationGroup(QObject *parent /TransferThis/ = 0); virtual ~QParallelAnimationGroup(); virtual int duration() const; protected: virtual bool event(QEvent *event); virtual void updateCurrentTime(int currentTime); virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); virtual void updateDirection(QAbstractAnimation::Direction direction); private: QParallelAnimationGroup(const QParallelAnimationGroup &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qpauseanimation.sip0000644000076500000240000000265512536324426021666 0ustar philstaff00000000000000// qpauseanimation.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QPauseAnimation : QAbstractAnimation { %TypeHeaderCode #include %End public: QPauseAnimation(QObject *parent /TransferThis/ = 0); QPauseAnimation(int msecs, QObject *parent /TransferThis/ = 0); virtual ~QPauseAnimation(); virtual int duration() const; void setDuration(int msecs); protected: virtual bool event(QEvent *e); virtual void updateCurrentTime(int); private: QPauseAnimation(const QPauseAnimation &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qpluginloader.sip0000644000076500000240000000323712536324426021333 0ustar philstaff00000000000000// qpluginloader.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPluginLoader : QObject { %TypeHeaderCode #include %End public: explicit QPluginLoader(QObject *parent /TransferThis/ = 0); QPluginLoader(const QString &fileName, QObject *parent /TransferThis/ = 0); virtual ~QPluginLoader(); QObject *instance(); static QObjectList staticInstances(); bool load(); bool unload(); bool isLoaded() const; void setFileName(const QString &fileName); QString fileName() const; %If (Qt_4_2_0 -) QString errorString() const; %End %If (Qt_4_4_0 -) void setLoadHints(QLibrary::LoadHints loadHints); %End %If (Qt_4_4_0 -) QLibrary::LoadHints loadHints() const; %End private: %If (Qt_4_2_0 -) QPluginLoader(const QPluginLoader &); %End }; PyQt-x11-gpl-4.11.4/sip/QtCore/qpoint.sip0000644000076500000240000001443412536324426020000 0ustar philstaff00000000000000// qpoint.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QPoint { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"ii", sipCpp->x(), sipCpp->y()); %End public: int manhattanLength() const; QPoint(); QPoint(int xpos, int ypos); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QPoint()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QPoint()"); #endif } else { sipRes = #if PY_MAJOR_VERSION >= 3 PyUnicode_FromFormat #else PyString_FromFormat #endif ("PyQt4.QtCore.QPoint(%i, %i)", sipCpp->x(), sipCpp->y()); } %End bool isNull() const; int __bool__() const; %MethodCode sipRes = !sipCpp->isNull(); %End int x() const; int y() const; void setX(int xpos); void setY(int ypos); QPoint &operator+=(const QPoint &p); QPoint &operator-=(const QPoint &p); %If (Qt_4_8_0 -) QPoint &operator*=(int c /Constrained/); %End %If (Qt_4_8_0 -) QPoint &operator*=(double c); %End %If (- Qt_4_8_0) QPoint &operator*=(qreal c); %End QPoint &operator/=(qreal c); }; QDataStream &operator<<(QDataStream &, const QPoint & /Constrained/); QDataStream &operator>>(QDataStream &, QPoint & /Constrained/); bool operator==(const QPoint &p1, const QPoint &p2); bool operator!=(const QPoint &p1, const QPoint &p2); const QPoint operator+(const QPoint &p1, const QPoint &p2); const QPoint operator-(const QPoint &p1, const QPoint &p2); %If (Qt_4_8_0 -) const QPoint operator*(const QPoint &p, int c /Constrained/); %End %If (Qt_4_8_0 -) const QPoint operator*(int c /Constrained/, const QPoint &p); %End %If (Qt_4_8_0 -) const QPoint operator*(const QPoint &p, double c); %End %If (Qt_4_8_0 -) const QPoint operator*(double c, const QPoint &p); %End %If (- Qt_4_8_0) const QPoint operator*(const QPoint &p, qreal c); %End const QPoint operator-(const QPoint &p); const QPoint operator/(const QPoint &p, qreal c); class QPointF { %TypeHeaderCode #include %End %ConvertToTypeCode // Allow a QPoint whenever a QPointF is expected. This is mainly to help source // compatibility for Qt5. if (sipIsErr == NULL) return (sipCanConvertToType(sipPy, sipType_QPointF, SIP_NO_CONVERTORS) || sipCanConvertToType(sipPy, sipType_QPoint, 0)); if (sipCanConvertToType(sipPy, sipType_QPointF, SIP_NO_CONVERTORS)) { *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QPointF, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; } int state; QPoint *pt = reinterpret_cast(sipConvertToType(sipPy, sipType_QPoint, 0, 0, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(pt, sipType_QPoint, state); return 0; } *sipCppPtr = new QPointF(*pt); sipReleaseType(pt, sipType_QPoint, state); return sipGetState(sipTransferObj); %End %PickleCode sipRes = Py_BuildValue((char *)"dd", sipCpp->x(), sipCpp->y()); %End public: QPointF(); QPointF(qreal xpos, qreal ypos); QPointF(const QPoint &p); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QPointF()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QPointF()"); #endif } else { PyObject *x = PyFloat_FromDouble(sipCpp->x()); PyObject *y = PyFloat_FromDouble(sipCpp->y()); if (x && y) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QPointF(%R, %R)", x, y); #else sipRes = PyString_FromString("PyQt4.QtCore.QPointF("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(x)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(y)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } Py_XDECREF(x); Py_XDECREF(y); } %End bool isNull() const; int __bool__() const; %MethodCode sipRes = !sipCpp->isNull(); %End qreal x() const; qreal y() const; void setX(qreal xpos); void setY(qreal ypos); QPointF &operator+=(const QPointF &p); QPointF &operator-=(const QPointF &p); QPointF &operator*=(qreal c); QPointF &operator/=(qreal c); QPoint toPoint() const; %If (Qt_4_6_0 -) qreal manhattanLength() const; %End }; QDataStream &operator<<(QDataStream &, const QPointF & /Constrained/); QDataStream &operator>>(QDataStream &, QPointF & /Constrained/); bool operator==(const QPointF &p1, const QPointF &p2); bool operator!=(const QPointF &p1, const QPointF &p2); const QPointF operator+(const QPointF &p1, const QPointF &p2); const QPointF operator-(const QPointF &p1, const QPointF &p2); const QPointF operator*(const QPointF &p, qreal c); const QPointF operator*(qreal c, const QPointF &p); const QPointF operator-(const QPointF &p); const QPointF operator/(const QPointF &p, qreal c); %If (Qt_5_0_0 -) const QPoint operator+(const QPoint &p); %End %If (Qt_5_0_0 -) const QPointF operator+(const QPointF &p); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qprocess.sip0000644000076500000240000001606612536324426020330 0ustar philstaff00000000000000// qprocess.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (WS_WIN) typedef void *Q_PID; %End %If (WS_X11 || WS_MACX) typedef qint64 Q_PID; %End class QProcess : QIODevice { %TypeHeaderCode #include %End public: enum ExitStatus { NormalExit, CrashExit, }; enum ProcessError { FailedToStart, Crashed, Timedout, ReadError, WriteError, UnknownError, }; enum ProcessState { NotRunning, Starting, Running, }; enum ProcessChannel { StandardOutput, StandardError, }; enum ProcessChannelMode { SeparateChannels, MergedChannels, ForwardedChannels, }; explicit QProcess(QObject *parent /TransferThis/ = 0); virtual ~QProcess(); void start(const QString &program, const QStringList &arguments, QFlags mode = ReadWrite) /HoldGIL/; void start(const QString &program, QFlags mode = ReadWrite) /HoldGIL/; QProcess::ProcessChannelMode readChannelMode() const; void setReadChannelMode(QProcess::ProcessChannelMode mode); QProcess::ProcessChannel readChannel() const; void setReadChannel(QProcess::ProcessChannel channel); void closeReadChannel(QProcess::ProcessChannel channel); void closeWriteChannel(); QString workingDirectory() const; void setWorkingDirectory(const QString &dir); void setEnvironment(const QStringList &environment); QStringList environment() const; QProcess::ProcessError error() const; QProcess::ProcessState state() const; Q_PID pid() const; bool waitForStarted(int msecs = 30000) /ReleaseGIL/; virtual bool waitForReadyRead(int msecs = 30000) /ReleaseGIL/; virtual bool waitForBytesWritten(int msecs = 30000) /ReleaseGIL/; bool waitForFinished(int msecs = 30000) /ReleaseGIL/; QByteArray readAllStandardOutput() /ReleaseGIL/; QByteArray readAllStandardError() /ReleaseGIL/; int exitCode() const; QProcess::ExitStatus exitStatus() const; virtual qint64 bytesAvailable() const; virtual qint64 bytesToWrite() const; virtual bool isSequential() const; virtual bool canReadLine() const; virtual void close(); virtual bool atEnd() const; static int execute(const QString &program, const QStringList &arguments) /ReleaseGIL/; static int execute(const QString &program) /ReleaseGIL/; %If (Qt_4_3_0 -) static bool startDetached(const QString &program, const QStringList &arguments, const QString &workingDirectory, qint64 *pid = 0); %End static bool startDetached(const QString &program, const QStringList &arguments); static bool startDetached(const QString &program); static QStringList systemEnvironment(); %If (Qt_4_2_0 -) QProcess::ProcessChannelMode processChannelMode() const; %End %If (Qt_4_2_0 -) void setProcessChannelMode(QProcess::ProcessChannelMode mode); %End %If (Qt_4_2_0 -) void setStandardInputFile(const QString &fileName); %End %If (Qt_4_2_0 -) void setStandardOutputFile(const QString &fileName, QFlags mode = Truncate); %End %If (Qt_4_2_0 -) void setStandardErrorFile(const QString &fileName, QFlags mode = Truncate); %End %If (Qt_4_2_0 -) void setStandardOutputProcess(QProcess *destination); %End public slots: void terminate(); void kill(); signals: void started(); void finished(int exitCode, QProcess::ExitStatus exitStatus); void finished(int exitCode); void error(QProcess::ProcessError error); void stateChanged(QProcess::ProcessState state); void readyReadStandardOutput(); void readyReadStandardError(); protected: void setProcessState(QProcess::ProcessState state); virtual void setupChildProcess(); virtual SIP_PYOBJECT readData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QProcess::readData(s, a0) : sipCpp->readData(s, a0); #else len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; public: %If (Qt_4_6_0 -) void setProcessEnvironment(const QProcessEnvironment &environment); %End %If (Qt_4_6_0 -) QProcessEnvironment processEnvironment() const; %End %If (Qt_5_0_0 -) QString program() const; %End %If (Qt_5_0_0 -) QStringList arguments() const; %End private: QProcess(const QProcess &); }; %If (Qt_4_6_0 -) class QProcessEnvironment { %TypeHeaderCode #include %End public: QProcessEnvironment(); QProcessEnvironment(const QProcessEnvironment &other); ~QProcessEnvironment(); bool operator==(const QProcessEnvironment &other) const; bool operator!=(const QProcessEnvironment &other) const; bool isEmpty() const; void clear(); bool contains(const QString &name) const; void insert(const QString &name, const QString &value); %If (Qt_4_8_0 -) void insert(const QProcessEnvironment &e); %End void remove(const QString &name); QString value(const QString &name, const QString &defaultValue /DocValue="Py_v3:''"/ = QString()) const; QStringList toStringList() const; static QProcessEnvironment systemEnvironment(); %If (Qt_4_8_0 -) QStringList keys() const; %End %If (Qt_5_0_0 -) void swap(QProcessEnvironment &other); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qpropertyanimation.sip0000644000076500000240000000336512536324426022434 0ustar philstaff00000000000000// qpropertyanimation.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QPropertyAnimation : QVariantAnimation { %TypeHeaderCode #include %End public: QPropertyAnimation(QObject *parent /TransferThis/ = 0); QPropertyAnimation(QObject *target /KeepReference=0/, const QByteArray &propertyName, QObject *parent /TransferThis/ = 0); virtual ~QPropertyAnimation(); QObject *targetObject() const; void setTargetObject(QObject *target /KeepReference=0/); QByteArray propertyName() const; void setPropertyName(const QByteArray &propertyName); protected: virtual bool event(QEvent *event); virtual void updateCurrentValue(const QVariant &value); virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); private: QPropertyAnimation(const QPropertyAnimation &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qpynullvariant.sip0000644000076500000240000000264612536324426021561 0ustar philstaff00000000000000// This is the SIP specification of the QPyNullVariant class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPyNullVariant /API=QVariant:2 -/ { %TypeHeaderCode #include typedef QVariant QPyNullVariant; %End public: QPyNullVariant(SIP_PYOBJECT type); %MethodCode sipCpp = qpycore_qpynullvariant(a0); %End QVariant::Type type() const; int userType() const; const char *typeName(); bool isNull() const; int __bool__() const; %MethodCode // This makes QPyNullVariant behave like None when truth testing. sipRes = 0; %End private: QPyNullVariant(const QPyNullVariant &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qreadwritelock.sip0000644000076500000240000000556712536324426021515 0ustar philstaff00000000000000// qreadwritelock.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QReadWriteLock { %TypeHeaderCode #include %End public: %If (Qt_4_4_0 -) enum RecursionMode { NonRecursive, Recursive, }; %End %If (Qt_5_0_0 -) explicit QReadWriteLock(QReadWriteLock::RecursionMode recursionMode = QReadWriteLock::NonRecursive); %End %If (- Qt_5_0_0) QReadWriteLock(); %End %If (Qt_4_4_0 - Qt_5_0_0) QReadWriteLock(QReadWriteLock::RecursionMode recursionMode); %End ~QReadWriteLock(); void lockForRead() /ReleaseGIL/; bool tryLockForRead(); %If (Qt_4_3_0 -) bool tryLockForRead(int timeout) /ReleaseGIL/; %End void lockForWrite() /ReleaseGIL/; bool tryLockForWrite(); %If (Qt_4_3_0 -) bool tryLockForWrite(int timeout) /ReleaseGIL/; %End void unlock(); private: QReadWriteLock(const QReadWriteLock &); }; class QReadLocker { %TypeHeaderCode #include %End public: QReadLocker(QReadWriteLock *areadWriteLock) /ReleaseGIL/; ~QReadLocker(); void unlock(); void relock() /ReleaseGIL/; QReadWriteLock *readWriteLock() const; SIP_PYOBJECT __enter__(); %MethodCode // Just return a reference to self. sipRes = sipSelf; Py_INCREF(sipRes); %End void __exit__(SIP_PYOBJECT type, SIP_PYOBJECT value, SIP_PYOBJECT traceback); %MethodCode sipCpp->unlock(); %End private: QReadLocker(const QReadLocker &); }; class QWriteLocker { %TypeHeaderCode #include %End public: QWriteLocker(QReadWriteLock *areadWriteLock) /ReleaseGIL/; ~QWriteLocker(); void unlock(); void relock() /ReleaseGIL/; QReadWriteLock *readWriteLock() const; SIP_PYOBJECT __enter__(); %MethodCode // Just return a reference to self. sipRes = sipSelf; Py_INCREF(sipRes); %End void __exit__(SIP_PYOBJECT type, SIP_PYOBJECT value, SIP_PYOBJECT traceback); %MethodCode sipCpp->unlock(); %End private: QWriteLocker(const QWriteLocker &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qrect.sip0000644000076500000240000002366012536324426017605 0ustar philstaff00000000000000// qrect.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QRect { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"iiii", sipCpp->x(), sipCpp->y(), sipCpp->width(), sipCpp->height()); %End public: QRect(); QRect normalized() const; void moveCenter(const QPoint &p); QRect operator|(const QRect &r) const; QRect operator&(const QRect &r) const; bool contains(const QPoint &point, bool proper = false) const; int __contains__(const QPoint &p) const; %MethodCode sipRes = sipCpp->contains(*a0); %End bool contains(const QRect &rectangle, bool proper = false) const; int __contains__(const QRect &r) const; %MethodCode sipRes = sipCpp->contains(*a0); %End bool intersects(const QRect &r) const; QRect(int aleft, int atop, int awidth, int aheight); QRect(const QPoint &atopLeft, const QPoint &abottomRight); QRect(const QPoint &atopLeft, const QSize &asize); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QRect()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QRect()"); #endif } else { sipRes = #if PY_MAJOR_VERSION >= 3 PyUnicode_FromFormat #else PyString_FromFormat #endif ("PyQt4.QtCore.QRect(%i, %i, %i, %i)", sipCpp->left(), sipCpp->top(), sipCpp->width(), sipCpp->height()); } %End bool isNull() const; bool isEmpty() const; bool isValid() const; int __bool__() const; %MethodCode sipRes = sipCpp->isValid(); %End int left() const; int top() const; int right() const; int bottom() const; int x() const; int y() const; void setLeft(int pos); void setTop(int pos); void setRight(int pos); void setBottom(int pos); void setTopLeft(const QPoint &p); void setBottomRight(const QPoint &p); void setTopRight(const QPoint &p); void setBottomLeft(const QPoint &p); void setX(int ax); void setY(int ay); QPoint topLeft() const; QPoint bottomRight() const; QPoint topRight() const; QPoint bottomLeft() const; QPoint center() const; int width() const; int height() const; QSize size() const; void translate(int dx, int dy); void translate(const QPoint &p); QRect translated(int dx, int dy) const; QRect translated(const QPoint &p) const; void moveTo(int ax, int ay); void moveTo(const QPoint &p); void moveLeft(int pos); void moveTop(int pos); void moveRight(int pos); void moveBottom(int pos); void moveTopLeft(const QPoint &p); void moveBottomRight(const QPoint &p); void moveTopRight(const QPoint &p); void moveBottomLeft(const QPoint &p); void getRect(int *ax, int *ay, int *aw, int *ah) const; void setRect(int ax, int ay, int aw, int ah); void getCoords(int *xp1, int *yp1, int *xp2, int *yp2) const; void setCoords(int xp1, int yp1, int xp2, int yp2); QRect adjusted(int xp1, int yp1, int xp2, int yp2) const; void adjust(int dx1, int dy1, int dx2, int dy2); void setWidth(int w); void setHeight(int h); void setSize(const QSize &s); bool contains(int ax, int ay, bool aproper) const; bool contains(int ax, int ay) const; QRect &operator|=(const QRect &r); QRect &operator&=(const QRect &r); %If (PyQt_Deprecated_5_0) QRect intersect(const QRect &r) const; %End %If (PyQt_Deprecated_5_0) QRect unite(const QRect &r) const; %End %If (Qt_4_2_0 -) QRect intersected(const QRect &other) const; %End %If (Qt_4_2_0 -) QRect united(const QRect &r) const; %End }; QDataStream &operator<<(QDataStream &, const QRect & /Constrained/); QDataStream &operator>>(QDataStream &, QRect & /Constrained/); bool operator==(const QRect &r1, const QRect &r2); bool operator!=(const QRect &r1, const QRect &r2); class QRectF { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"dddd", sipCpp->x(), sipCpp->y(), sipCpp->width(), sipCpp->height()); %End public: QRectF(); QRectF(const QPointF &atopLeft, const QSizeF &asize); %If (Qt_4_3_0 -) QRectF(const QPointF &atopLeft, const QPointF &abottomRight); %End QRectF(qreal aleft, qreal atop, qreal awidth, qreal aheight); QRectF(const QRect &r); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QRectF()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QRectF()"); #endif } else { PyObject *l = PyFloat_FromDouble(sipCpp->left()); PyObject *t = PyFloat_FromDouble(sipCpp->top()); PyObject *w = PyFloat_FromDouble(sipCpp->width()); PyObject *h = PyFloat_FromDouble(sipCpp->height()); if (l && t && w && h) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QRectF(%R, %R, %R, %R)", l, t, w, h); #else sipRes = PyString_FromString("PyQt4.QtCore.QRectF("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(l)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(t)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(w)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(h)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } Py_XDECREF(l); Py_XDECREF(t); Py_XDECREF(w); Py_XDECREF(h); } %End QRectF normalized() const; qreal left() const; qreal top() const; qreal right() const; qreal bottom() const; void setX(qreal pos); void setY(qreal pos); QPointF topLeft() const; QPointF bottomRight() const; QPointF topRight() const; QPointF bottomLeft() const; QRectF operator|(const QRectF &r) const; QRectF operator&(const QRectF &r) const; bool contains(const QPointF &p) const; int __contains__(const QPointF &p) const; %MethodCode sipRes = sipCpp->contains(*a0); %End bool contains(const QRectF &r) const; int __contains__(const QRectF &r) const; %MethodCode sipRes = sipCpp->contains(*a0); %End bool intersects(const QRectF &r) const; bool isNull() const; bool isEmpty() const; bool isValid() const; int __bool__() const; %MethodCode sipRes = sipCpp->isValid(); %End qreal x() const; qreal y() const; void setLeft(qreal pos); void setRight(qreal pos); void setTop(qreal pos); void setBottom(qreal pos); void setTopLeft(const QPointF &p); void setTopRight(const QPointF &p); void setBottomLeft(const QPointF &p); void setBottomRight(const QPointF &p); QPointF center() const; void moveLeft(qreal pos); void moveTop(qreal pos); void moveRight(qreal pos); void moveBottom(qreal pos); void moveTopLeft(const QPointF &p); void moveTopRight(const QPointF &p); void moveBottomLeft(const QPointF &p); void moveBottomRight(const QPointF &p); void moveCenter(const QPointF &p); qreal width() const; qreal height() const; QSizeF size() const; void translate(qreal dx, qreal dy); void translate(const QPointF &p); void moveTo(qreal ax, qreal ay); void moveTo(const QPointF &p); QRectF translated(qreal dx, qreal dy) const; QRectF translated(const QPointF &p) const; void getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) const; void setRect(qreal ax, qreal ay, qreal aaw, qreal aah); void getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) const; void setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2); void adjust(qreal xp1, qreal yp1, qreal xp2, qreal yp2); QRectF adjusted(qreal xp1, qreal yp1, qreal xp2, qreal yp2) const; void setWidth(qreal aw); void setHeight(qreal ah); void setSize(const QSizeF &s); bool contains(qreal ax, qreal ay) const; QRectF &operator|=(const QRectF &r); QRectF &operator&=(const QRectF &r); %If (PyQt_Deprecated_5_0) QRectF intersect(const QRectF &r) const; %End %If (PyQt_Deprecated_5_0) QRectF unite(const QRectF &r) const; %End %If (Qt_4_2_0 -) QRectF intersected(const QRectF &r) const; %End %If (Qt_4_2_0 -) QRectF united(const QRectF &r) const; %End %If (Qt_4_3_0 -) QRect toAlignedRect() const; %End QRect toRect() const; }; QDataStream &operator<<(QDataStream &, const QRectF & /Constrained/); QDataStream &operator>>(QDataStream &, QRectF & /Constrained/); bool operator==(const QRectF &r1, const QRectF &r2); bool operator!=(const QRectF &r1, const QRectF &r2); PyQt-x11-gpl-4.11.4/sip/QtCore/qregexp.sip0000644000076500000240000001151212536324426020133 0ustar philstaff00000000000000// qregexp.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QRegExp { %TypeHeaderCode #include %End public: enum PatternSyntax { RegExp, %If (Qt_4_2_0 -) RegExp2, %End Wildcard, FixedString, %If (Qt_4_6_0 -) WildcardUnix, %End %If (Qt_4_6_0 -) W3CXmlSchema11, %End }; enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch, }; QRegExp(); QRegExp(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, QRegExp::PatternSyntax syntax = QRegExp::RegExp); QRegExp(const QRegExp &rx); ~QRegExp(); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *uni = qpycore_PyObject_FromQString(sipCpp->pattern()); if (uni) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QRegExp(%R", uni); if (sipCpp->caseSensitivity() != Qt::CaseSensitive || sipCpp->patternSyntax() != QRegExp::RegExp) { qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromFormat(", PyQt4.QtCore.Qt.CaseSensitivity(%i)", (int)sipCpp->caseSensitivity())); if (sipCpp->patternSyntax() != QRegExp::RegExp) qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromFormat( ", PyQt4.QtCore.QRegExp.PatternSyntax(%i)", (int)sipCpp->patternSyntax())); } qpycore_Unicode_ConcatAndDel(&sipRes, PyUnicode_FromString(")")); #else sipRes = PyString_FromString("PyQt4.QtCore.QRegExp("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(uni)); if (sipCpp->caseSensitivity() != Qt::CaseSensitive || sipCpp->patternSyntax() != QRegExp::RegExp) { PyString_ConcatAndDel(&sipRes, PyString_FromFormat(", PyQt4.QtCore.Qt.CaseSensitivity(%i)", (int)sipCpp->caseSensitivity())); if (sipCpp->patternSyntax() != QRegExp::RegExp) PyString_ConcatAndDel(&sipRes, PyString_FromFormat( ", PyQt4.QtCore.QRegExp.PatternSyntax(%i)", (int)sipCpp->patternSyntax())); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif Py_DECREF(uni); } else { sipRes = 0; } %End bool operator==(const QRegExp &rx) const; bool operator!=(const QRegExp &rx) const; bool isEmpty() const; bool isValid() const; QString pattern() const; void setPattern(const QString &pattern); Qt::CaseSensitivity caseSensitivity() const; void setCaseSensitivity(Qt::CaseSensitivity cs); QRegExp::PatternSyntax patternSyntax() const; void setPatternSyntax(QRegExp::PatternSyntax syntax); bool isMinimal() const; void setMinimal(bool minimal); bool exactMatch(const QString &str) const; int indexIn(const QString &str, int offset = 0, QRegExp::CaretMode caretMode = QRegExp::CaretAtZero) const; int lastIndexIn(const QString &str, int offset = -1, QRegExp::CaretMode caretMode = QRegExp::CaretAtZero) const; int matchedLength() const; %If (- Qt_5_0_0) int numCaptures() const; %End QStringList capturedTexts(); QString cap(int nth = 0); int pos(int nth = 0); QString errorString(); static QString escape(const QString &str); %If (Qt_4_6_0 -) int captureCount() const; %End %If (Qt_4_8_0 -) void swap(QRegExp &other); %End }; QDataStream &operator<<(QDataStream &out, const QRegExp ®Exp /Constrained/); QDataStream &operator>>(QDataStream &in, QRegExp ®Exp /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtCore/qresource.sip0000644000076500000240000000521712536324426020475 0ustar philstaff00000000000000// qresource.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QResource { %TypeHeaderCode #include %End public: QResource(const QString &fileName /DocValue="Py_v3:''"/ = QString(), const QLocale &locale = QLocale()); ~QResource(); QString absoluteFilePath() const; SIP_PYOBJECT data() const /DocType="Py_v3:bytes;str"/; %MethodCode // The data may contain embedded '\0's so set the size explicitly. if (sipCpp->data()) { if ((sipRes = SIPBytes_FromStringAndSize((char *)sipCpp->data(), sipCpp->size())) == NULL) sipIsErr = 1; } else { Py_INCREF(Py_None); sipRes = Py_None; } %End QString fileName() const; bool isCompressed() const; bool isValid() const; QLocale locale() const; void setFileName(const QString &file); void setLocale(const QLocale &locale); qint64 size() const; static void addSearchPath(const QString &path); static bool registerResource(const QString &rccFileName, const QString &mapRoot /DocValue="Py_v3:''"/ = QString()); %If (Qt_4_3_0 -) static bool registerResource(const uchar *rccData, const QString &mapRoot /DocValue="Py_v3:''"/ = QString()) /PyName=registerResourceData/; %End static QStringList searchPaths(); static bool unregisterResource(const QString &rccFileName, const QString &mapRoot /DocValue="Py_v3:''"/ = QString()); %If (Qt_4_3_0 -) static bool unregisterResource(const uchar *rccData, const QString &mapRoot /DocValue="Py_v3:''"/ = QString()) /PyName=unregisterResourceData/; %End protected: QStringList children() const; bool isDir() const; bool isFile() const; private: %If (Qt_4_6_0 -) QResource(const QResource &); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qrunnable.sip0000644000076500000240000000227412536324426020454 0ustar philstaff00000000000000// qrunnable.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QRunnable /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: QRunnable(); virtual ~QRunnable(); virtual void run() = 0; bool autoDelete() const; void setAutoDelete(bool _autoDelete); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qsemaphore.sip0000644000076500000240000000246412536324426020632 0ustar philstaff00000000000000// qsemaphore.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSemaphore { %TypeHeaderCode #include %End public: explicit QSemaphore(int n = 0); ~QSemaphore(); void acquire(int n = 1) /ReleaseGIL/; bool tryAcquire(int n = 1); %If (Qt_4_3_0 -) bool tryAcquire(int n, int timeout) /ReleaseGIL/; %End void release(int n = 1); int available() const; private: QSemaphore(const QSemaphore &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qsequentialanimationgroup.sip0000644000076500000240000000343512536324426023775 0ustar philstaff00000000000000// qsequentialanimationgroup.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QSequentialAnimationGroup : QAnimationGroup { %TypeHeaderCode #include %End public: QSequentialAnimationGroup(QObject *parent /TransferThis/ = 0); virtual ~QSequentialAnimationGroup(); QPauseAnimation *addPause(int msecs); QPauseAnimation *insertPause(int index, int msecs); QAbstractAnimation *currentAnimation() const; virtual int duration() const; signals: void currentAnimationChanged(QAbstractAnimation *current); protected: virtual bool event(QEvent *event); virtual void updateCurrentTime(int); virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); virtual void updateDirection(QAbstractAnimation::Direction direction); private: QSequentialAnimationGroup(const QSequentialAnimationGroup &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qset.sip0000644000076500000240000003264012536324426017441 0ustar philstaff00000000000000// qset.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Py_v3) // QSet is implemented as a Python set in Python v3. %MappedType QSet /DocType="set-of-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the set. PyObject *s; if ((s = PySet_New(NULL)) == NULL) return NULL; // Set the set elements. QSet::const_iterator it = sipCpp->constBegin(); QSet::const_iterator end = sipCpp->constEnd(); while (it != end) { PyObject *el_obj; if ((el_obj = SIPLong_FromLong(*it)) == NULL) { Py_DECREF(s); return NULL; } PySet_Add(s, el_obj); ++it; } return s; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { qs->insert(SIPLong_AsLong(itm)); Py_DECREF(itm); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End %If (!Py_v3) // QSet is implemented as a Python list in Python v2. %MappedType QSet /DocType="list-of-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. QSet::const_iterator it = sipCpp->constBegin(); for (int i = 0; i < sipCpp->size(); ++i) { PyObject *el_obj; if ((el_obj = SIPLong_FromLong(*it)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, el_obj); ++it; } return l; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { qs->insert(SIPLong_AsLong(itm)); Py_DECREF(itm); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End %If (Py_v3) // QSet is implemented as a Python set in Python v3. %MappedType QSet /DocType="set-of-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the set. PyObject *s; if ((s = PySet_New(NULL)) == NULL) return NULL; // Set the set elements. QSet::const_iterator it = sipCpp->constBegin(); QSet::const_iterator end = sipCpp->constEnd(); while (it != end) { PyObject *el_obj; if ((el_obj = PyLong_FromUnsignedLong(*it)) == NULL) { Py_DECREF(s); return NULL; } PySet_Add(s, el_obj); ++it; } return s; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { qs->insert(PyLong_AsUnsignedLong(itm)); Py_DECREF(itm); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End %If (!Py_v3) // QSet is implemented as a Python list in Python v2. %MappedType QSet /DocType="list-of-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. QSet::const_iterator it = sipCpp->constBegin(); for (int i = 0; i < sipCpp->size(); ++i) { PyObject *el_obj; if ((el_obj = PyLong_FromUnsignedLong(*it)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, el_obj); ++it; } return l; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { qs->insert(PyLong_AsUnsignedLong(itm)); Py_DECREF(itm); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End %If (Py_v3) // QSet is implemented as a Python set in Python v3. template %MappedType QSet /DocType="set-of-TYPE"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the set. PyObject *s; if ((s = PySet_New(NULL)) == NULL) return NULL; // Set the set elements. QSet::const_iterator it = sipCpp->constBegin(); QSet::const_iterator end = sipCpp->constEnd(); while (it != end) { PyObject *tobj; // The explicit (void *) cast allows TYPE to be const. if ((tobj = sipConvertFromType((void *)*it, sipType_TYPE, sipTransferObj)) == NULL) { Py_DECREF(s); return NULL; } PySet_Add(s, tobj); ++it; } return s; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; while ((itm = PyIter_Next(it)) != NULL) { int ok = sipCanConvertToType(itm, sipType_TYPE, 0); Py_DECREF(itm); if (!ok) { Py_DECREF(it); return 0; } } Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { TYPE *t = reinterpret_cast(sipConvertToType(itm, sipType_TYPE, sipTransferObj, 0, 0, sipIsErr)); Py_DECREF(itm); if (*sipIsErr) { delete qs; Py_DECREF(it); return 0; } qs->insert(t); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End %If (!Py_v3) // QSet is implemented as a Python list in Python v2. template %MappedType QSet /DocType="list-of-TYPE"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. QSet::const_iterator it = sipCpp->constBegin(); for (int i = 0; i < sipCpp->size(); ++i) { PyObject *tobj; // The explicit (void *) cast allows TYPE to be const. if ((tobj = sipConvertFromType((void *)*it, sipType_TYPE, sipTransferObj)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, tobj); ++it; } return l; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; while ((itm = PyIter_Next(it)) != NULL) { int ok = sipCanConvertToType(itm, sipType_TYPE, 0); Py_DECREF(itm); if (!ok) { Py_DECREF(it); return 0; } } Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { TYPE *t = reinterpret_cast(sipConvertToType(itm, sipType_TYPE, sipTransferObj, 0, 0, sipIsErr)); Py_DECREF(itm); if (*sipIsErr) { delete qs; Py_DECREF(it); return 0; } qs->insert(t); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End %If (Py_v3) // QSet is implemented as a Python set in Python v3. template %MappedType QSet /DocType="set-of-TYPE"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the set. PyObject *s; if ((s = PySet_New(NULL)) == NULL) return NULL; // Set the set elements. QSet::const_iterator it = sipCpp->constBegin(); QSet::const_iterator end = sipCpp->constEnd(); while (it != end) { TYPE *t = new TYPE(*it); PyObject *tobj; if ((tobj = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj)) == NULL) { Py_DECREF(s); delete t; return NULL; } PySet_Add(s, tobj); ++it; } return s; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; while ((itm = PyIter_Next(it)) != NULL) { int ok = sipCanConvertToType(itm, sipType_TYPE, SIP_NOT_NONE); Py_DECREF(itm); if (!ok) { Py_DECREF(it); return 0; } } Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { int state; TYPE *t = reinterpret_cast(sipConvertToType(itm, sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); Py_DECREF(itm); if (*sipIsErr) { sipReleaseType(t, sipType_TYPE, state); delete qs; Py_DECREF(it); return 0; } qs->insert(*t); sipReleaseType(t, sipType_TYPE, state); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End %If (!Py_v3) // QSet is implemented as a Python list in Python v2. template %MappedType QSet /DocType="list-of-TYPE"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. QSet::const_iterator it = sipCpp->constBegin(); for (int i = 0; i < sipCpp->size(); ++i) { TYPE *t = new TYPE(*it); PyObject *tobj; if ((tobj = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj)) == NULL) { Py_DECREF(l); delete t; return NULL; } PyList_SET_ITEM(l, i, tobj); ++it; } return l; %End %ConvertToTypeCode PyObject *it = PyObject_GetIter(sipPy), *itm; // Check the type if that is all that is required. if (sipIsErr == NULL) { if (it == NULL) return 0; while ((itm = PyIter_Next(it)) != NULL) { int ok = sipCanConvertToType(itm, sipType_TYPE, SIP_NOT_NONE); Py_DECREF(itm); if (!ok) { Py_DECREF(it); return 0; } } Py_DECREF(it); return 1; } if (it == NULL) { *sipIsErr = 1; return 0; } QSet *qs = new QSet; while ((itm = PyIter_Next(it)) != NULL) { int state; TYPE *t = reinterpret_cast(sipConvertToType(itm, sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); Py_DECREF(itm); if (*sipIsErr) { sipReleaseType(t, sipType_TYPE, state); delete qs; Py_DECREF(it); return 0; } qs->insert(*t); sipReleaseType(t, sipType_TYPE, state); } Py_DECREF(it); *sipCppPtr = qs; return sipGetState(sipTransferObj); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qsettings.sip0000644000076500000240000001000412536324426020474 0ustar philstaff00000000000000// qsettings.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSettings : QObject { %TypeHeaderCode #include %End public: enum Status { NoError, AccessError, FormatError, }; enum Format { NativeFormat, IniFormat, InvalidFormat, }; enum Scope { UserScope, SystemScope, }; QSettings(const QString &organization, const QString &application /DocValue="Py_v3:''"/ = QString(), QObject *parent /TransferThis/ = 0); QSettings(QSettings::Scope scope, const QString &organization, const QString &application /DocValue="Py_v3:''"/ = QString(), QObject *parent /TransferThis/ = 0); QSettings(QSettings::Format format, QSettings::Scope scope, const QString &organization, const QString &application /DocValue="Py_v3:''"/ = QString(), QObject *parent /TransferThis/ = 0); QSettings(const QString &fileName, QSettings::Format format, QObject *parent /TransferThis/ = 0); explicit QSettings(QObject *parent /TransferThis/ = 0); virtual ~QSettings(); void clear(); void sync(); QSettings::Status status() const; void beginGroup(const QString &prefix); void endGroup(); QString group() const; int beginReadArray(const QString &prefix); void beginWriteArray(const QString &prefix, int size = -1); void endArray(); void setArrayIndex(int i); QStringList allKeys() const; QStringList childKeys() const; QStringList childGroups() const; bool isWritable() const; void setValue(const QString &key, const QVariant &value); SIP_PYOBJECT value(const QString &key, const QVariant &defaultValue /DocValue="Py_v3:None"/ = QVariant(), SIP_PYOBJECT type /DocValue="None"/ = 0) const /ReleaseGIL/; %MethodCode QVariant value; // QSettings has an internal mutex so release the GIL to avoid the possibility // of deadlocks. Py_BEGIN_ALLOW_THREADS value = sipCpp->value(*a0, *a1); Py_END_ALLOW_THREADS sipRes = qpycore_qvariant_value(value, a2); sipIsErr = !sipRes; %End void remove(const QString &key); bool contains(const QString &key) const; void setFallbacksEnabled(bool b); bool fallbacksEnabled() const; QString fileName() const; static void setSystemIniPath(const QString &dir); static void setUserIniPath(const QString &dir); static void setPath(QSettings::Format format, QSettings::Scope scope, const QString &path); %If (Qt_4_4_0 -) QSettings::Format format() const; %End %If (Qt_4_4_0 -) QSettings::Scope scope() const; %End %If (Qt_4_4_0 -) QString organizationName() const; %End %If (Qt_4_4_0 -) QString applicationName() const; %End %If (Qt_4_4_0 -) static void setDefaultFormat(QSettings::Format format); %End %If (Qt_4_4_0 -) static QSettings::Format defaultFormat(); %End %If (Qt_4_5_0 -) void setIniCodec(QTextCodec *codec /KeepReference/); %End %If (Qt_4_5_0 -) void setIniCodec(const char *codecName); %End %If (Qt_4_5_0 -) QTextCodec *iniCodec() const; %End protected: virtual bool event(QEvent *event); private: QSettings(const QSettings &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qsharedmemory.sip0000644000076500000240000000457212536324426021350 0ustar philstaff00000000000000// qsharedmemory.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QSharedMemory : QObject { %TypeHeaderCode #include %End public: enum AccessMode { ReadOnly, ReadWrite, }; enum SharedMemoryError { NoError, PermissionDenied, InvalidSize, KeyError, AlreadyExists, NotFound, LockError, OutOfResources, UnknownError, }; QSharedMemory(QObject *parent /TransferThis/ = 0); QSharedMemory(const QString &key, QObject *parent /TransferThis/ = 0); virtual ~QSharedMemory(); void setKey(const QString &key); QString key() const; bool create(int size, QSharedMemory::AccessMode mode = QSharedMemory::ReadWrite); int size() const; bool attach(QSharedMemory::AccessMode mode = QSharedMemory::ReadWrite); bool isAttached() const; bool detach(); SIP_PYOBJECT data() /DocType="sip.voidptr"/; %MethodCode sipRes = sipConvertFromVoidPtrAndSize(sipCpp->data(), sipCpp->size()); %End SIP_PYOBJECT constData() const /DocType="sip.voidptr"/; %MethodCode sipRes = sipConvertFromConstVoidPtrAndSize(sipCpp->constData(), sipCpp->size()); %End bool lock(); bool unlock(); QSharedMemory::SharedMemoryError error() const; QString errorString() const; %If (Qt_4_8_0 -) void setNativeKey(const QString &key); %End %If (Qt_4_8_0 -) QString nativeKey() const; %End private: QSharedMemory(const QSharedMemory &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qsignalmapper.sip0000644000076500000240000000341612536324426021327 0ustar philstaff00000000000000// qsignalmapper.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSignalMapper : QObject { %TypeHeaderCode #include %End public: explicit QSignalMapper(QObject *parent /TransferThis/ = 0); virtual ~QSignalMapper(); void setMapping(QObject *sender, int id); void setMapping(QObject *sender, const QString &text); void setMapping(QObject *sender, QWidget *widget); void setMapping(QObject *sender, QObject *object); void removeMappings(QObject *sender); QObject *mapping(int id) const; QObject *mapping(const QString &text) const; QObject *mapping(QWidget *widget) const; QObject *mapping(QObject *object) const; signals: void mapped(int); void mapped(const QString &); void mapped(QWidget *); void mapped(QObject *); public slots: void map(); void map(QObject *sender); private: QSignalMapper(const QSignalMapper &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qsignaltransition.sip0000644000076500000240000000451112536324426022232 0ustar philstaff00000000000000// qsignaltransition.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QSignalTransition : QAbstractTransition { %TypeHeaderCode #include %End public: QSignalTransition(QState *sourceState /TransferThis/ = 0); %If (Qt_5_0_0 -) QSignalTransition(const QObject *sender, SIP_SIGNAL signal, QState *sourceState /TransferThis/ = 0); %End %If (- Qt_5_0_0) QSignalTransition(QObject *sender, SIP_SIGNAL signal, QState *sourceState /TransferThis/ = 0); %End QSignalTransition(SIP_PYOBJECT signal /DocType="signal"/, QState *sourceState /TransferThis/ = 0) /NoDerived/; %MethodCode QObject *sender; const char *signal = qpycore_pyqtsignal_get_parts(a0, &sender); if (signal) { Py_BEGIN_ALLOW_THREADS sipCpp = new sipQSignalTransition(sender, signal, a1); Py_END_ALLOW_THREADS } else { sipError = sipBadCallableArg(0, a0); } %End virtual ~QSignalTransition(); QObject *senderObject() const; %If (Qt_5_0_0 -) void setSenderObject(const QObject *sender); %End %If (- Qt_5_0_0) void setSenderObject(QObject *sender); %End QByteArray signal() const; void setSignal(const QByteArray &signal); protected: virtual bool eventTest(QEvent *event); virtual void onTransition(QEvent *event); virtual bool event(QEvent *e); private: QSignalTransition(const QSignalTransition &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qsize.sip0000644000076500000240000001341012536324426017612 0ustar philstaff00000000000000// qsize.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QSize { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"ii", sipCpp->width(), sipCpp->height()); %End public: void transpose(); void scale(const QSize &s, Qt::AspectRatioMode mode); QSize(); QSize(int w, int h); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QSize()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QSize()"); #endif } else { sipRes = #if PY_MAJOR_VERSION >= 3 PyUnicode_FromFormat #else PyString_FromFormat #endif ("PyQt4.QtCore.QSize(%i, %i)", sipCpp->width(), sipCpp->height()); } %End bool isNull() const; bool isEmpty() const; bool isValid() const; int __bool__() const; %MethodCode sipRes = sipCpp->isValid(); %End int width() const; int height() const; void setWidth(int w); void setHeight(int h); void scale(int w, int h, Qt::AspectRatioMode mode); QSize &operator+=(const QSize &s); QSize &operator-=(const QSize &s); QSize &operator*=(qreal c); QSize &operator/=(qreal c); QSize expandedTo(const QSize &otherSize) const; QSize boundedTo(const QSize &otherSize) const; %If (Qt_5_0_0 -) QSize scaled(const QSize &s, Qt::AspectRatioMode mode) const; %End %If (Qt_5_0_0 -) QSize scaled(int w, int h, Qt::AspectRatioMode mode) const; %End %If (Qt_5_0_0 -) QSize transposed() const; %End }; QDataStream &operator<<(QDataStream &, const QSize & /Constrained/); QDataStream &operator>>(QDataStream &, QSize & /Constrained/); bool operator==(const QSize &s1, const QSize &s2); bool operator!=(const QSize &s1, const QSize &s2); const QSize operator+(const QSize &s1, const QSize &s2); const QSize operator-(const QSize &s1, const QSize &s2); const QSize operator*(const QSize &s, qreal c); const QSize operator*(qreal c, const QSize &s); const QSize operator/(const QSize &s, qreal c); class QSizeF { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"dd", sipCpp->width(), sipCpp->height()); %End public: void transpose(); void scale(const QSizeF &s, Qt::AspectRatioMode mode); QSizeF(); QSizeF(const QSize &sz); QSizeF(qreal w, qreal h); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode if (sipCpp->isNull()) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromString("PyQt4.QtCore.QSizeF()"); #else sipRes = PyString_FromString("PyQt4.QtCore.QSizeF()"); #endif } else { PyObject *w = PyFloat_FromDouble(sipCpp->width()); PyObject *h = PyFloat_FromDouble(sipCpp->height()); if (w && h) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QSizeF(%R, %R)", w, h); #else sipRes = PyString_FromString("PyQt4.QtCore.QSizeF("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(w)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(h)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } Py_XDECREF(w); Py_XDECREF(h); } %End bool isNull() const; bool isEmpty() const; bool isValid() const; int __bool__() const; %MethodCode sipRes = sipCpp->isValid(); %End qreal width() const; qreal height() const; void setWidth(qreal w); void setHeight(qreal h); void scale(qreal w, qreal h, Qt::AspectRatioMode mode); QSizeF &operator+=(const QSizeF &s); QSizeF &operator-=(const QSizeF &s); QSizeF &operator*=(qreal c); QSizeF &operator/=(qreal c); QSizeF expandedTo(const QSizeF &otherSize) const; QSizeF boundedTo(const QSizeF &otherSize) const; QSize toSize() const; %If (Qt_5_0_0 -) QSizeF scaled(const QSizeF &s, Qt::AspectRatioMode mode) const; %End %If (Qt_5_0_0 -) QSizeF scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const; %End %If (Qt_5_0_0 -) QSizeF transposed() const; %End }; QDataStream &operator<<(QDataStream &, const QSizeF & /Constrained/); QDataStream &operator>>(QDataStream &, QSizeF & /Constrained/); bool operator==(const QSizeF &s1, const QSizeF &s2); bool operator!=(const QSizeF &s1, const QSizeF &s2); const QSizeF operator+(const QSizeF &s1, const QSizeF &s2); const QSizeF operator-(const QSizeF &s1, const QSizeF &s2); const QSizeF operator*(const QSizeF &s, qreal c); const QSizeF operator*(qreal c, const QSizeF &s); const QSizeF operator/(const QSizeF &s, qreal c); PyQt-x11-gpl-4.11.4/sip/QtCore/qsocketnotifier.sip0000644000076500000240000000277512536324426021704 0ustar philstaff00000000000000// qsocketnotifier.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSocketNotifier : QObject { %TypeHeaderCode #include %End public: enum Type { Read, Write, Exception, }; QSocketNotifier(int socket, QSocketNotifier::Type type, QObject *parent /TransferThis/ = 0); virtual ~QSocketNotifier(); int socket() const; QSocketNotifier::Type type() const; bool isEnabled() const; public slots: void setEnabled(bool); signals: void activated(int socket); protected: virtual bool event(QEvent *); private: QSocketNotifier(const QSocketNotifier &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qstate.sip0000644000076500000240000000572412536324426017771 0ustar philstaff00000000000000// qstate.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QState : QAbstractState { %TypeHeaderCode #include %End public: enum ChildMode { ExclusiveStates, ParallelStates, }; %If (Qt_5_0_0 -) enum RestorePolicy { DontRestoreProperties, RestoreProperties, }; %End QState(QState *parent /TransferThis/ = 0); QState(QState::ChildMode childMode, QState *parent /TransferThis/ = 0); virtual ~QState(); QAbstractState *errorState() const; void setErrorState(QAbstractState *state /KeepReference/); void addTransition(QAbstractTransition *transition /Transfer/); %If (Qt_5_0_0 -) QSignalTransition *addTransition(const QObject *sender, SIP_SIGNAL signal, QAbstractState *target); %End %If (- Qt_5_0_0) QSignalTransition *addTransition(QObject *sender, SIP_SIGNAL signal, QAbstractState *target); %End QSignalTransition *addTransition(SIP_PYOBJECT signal /DocType="signal"/, QAbstractState *target); %MethodCode QObject *sender; const char *signal = qpycore_pyqtsignal_get_parts(a0, &sender); if (signal) { Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->addTransition(sender, signal, a1); Py_END_ALLOW_THREADS } else { sipError = sipBadCallableArg(0, a0); } %End QAbstractTransition *addTransition(QAbstractState *target /Transfer/); void removeTransition(QAbstractTransition *transition /TransferBack/); %If (Qt_4_7_0 -) QList transitions() const; %End QAbstractState *initialState() const; void setInitialState(QAbstractState *state /KeepReference/); QState::ChildMode childMode() const; void setChildMode(QState::ChildMode mode); void assignProperty(QObject *object, const char *name, const QVariant &value); signals: void finished(); void propertiesAssigned(); protected: virtual void onEntry(QEvent *event); virtual void onExit(QEvent *event); virtual bool event(QEvent *e); private: QState(const QState &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qstatemachine.sip0000644000076500000240000001143112536324426021306 0ustar philstaff00000000000000// qstatemachine.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QStateMachine : QState { %TypeHeaderCode #include %End public: class SignalEvent : QEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~SignalEvent(); QObject *sender() const; int signalIndex() const; QList arguments() const; }; class WrappedEvent : QEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~WrappedEvent(); QObject *object() const; QEvent *event() const; }; enum EventPriority { NormalPriority, HighPriority, }; %If (- Qt_5_0_0) enum RestorePolicy { DontRestoreProperties, RestoreProperties, }; %End enum Error { NoError, NoInitialStateError, NoDefaultStateInHistoryStateError, NoCommonAncestorForTransitionError, }; %If (Qt_5_0_0 -) explicit QStateMachine(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QStateMachine(QObject *parent /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QStateMachine(QState::ChildMode childMode, QObject *parent /TransferThis/ = 0); %End virtual ~QStateMachine(); void addState(QAbstractState *state /Transfer/); void removeState(QAbstractState *state /TransferBack/); QStateMachine::Error error() const; QString errorString() const; void clearError(); bool isRunning() const; bool isAnimated() const; void setAnimated(bool enabled); void addDefaultAnimation(QAbstractAnimation *animation /GetWrapper/); %MethodCode // We want to keep a reference to the animation but this is in addition to the // existing ones and does not replace them - so we can't use /KeepReference/. sipCpp->addDefaultAnimation(a0); // Use the user object as a list of the references. PyObject *user = ((sipSimpleWrapper *)sipSelf)->user; if (!user) user = ((sipSimpleWrapper *)sipSelf)->user = PyList_New(0); if (user) PyList_Append(user, a0Wrapper); %End QList defaultAnimations() const; void removeDefaultAnimation(QAbstractAnimation *animation /GetWrapper/); %MethodCode // Discard the extra animation reference that we took in addDefaultAnimation(). sipCpp->removeDefaultAnimation(a0); // Use the user object as a list of the references. PyObject *user = ((sipSimpleWrapper *)sipSelf)->user; if (user) { SIP_SSIZE_T i = 0; // Note that we deal with an object appearing in the list more than once. while (i < PyList_GET_SIZE(user)) if (PyList_GET_ITEM(user, i) == a0Wrapper) PyList_SetSlice(user, i, i + 1, NULL); else ++i; } %End %If (Qt_5_0_0 -) QState::RestorePolicy globalRestorePolicy() const; %End %If (- Qt_5_0_0) QStateMachine::RestorePolicy globalRestorePolicy() const; %End %If (Qt_5_0_0 -) void setGlobalRestorePolicy(QState::RestorePolicy restorePolicy); %End %If (- Qt_5_0_0) void setGlobalRestorePolicy(QStateMachine::RestorePolicy restorePolicy); %End void postEvent(QEvent *event /Transfer/, QStateMachine::EventPriority priority = QStateMachine::NormalPriority); int postDelayedEvent(QEvent *event /Transfer/, int delay); bool cancelDelayedEvent(int id); QSet configuration() const; virtual bool eventFilter(QObject *watched, QEvent *event); public slots: void start(); void stop(); signals: void started(); void stopped(); protected: virtual void onEntry(QEvent *event); virtual void onExit(QEvent *event); virtual bool event(QEvent *e); private: QStateMachine(const QStateMachine &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qstring.sip0000644000076500000240000010107712536324426020155 0ustar philstaff00000000000000// qstring.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End // class QString /AllowNone,API=QString:2 -,DocType="str"/ %MappedType QString /AllowNone,API=QString:2 -,DocType="str"/ { %TypeHeaderCode #include %End %ConvertToTypeCode if (sipIsErr == NULL) #if PY_MAJOR_VERSION < 3 return (sipPy == Py_None || PyString_Check(sipPy) || PyUnicode_Check(sipPy)); #else return (sipPy == Py_None || PyUnicode_Check(sipPy)); #endif if (sipPy == Py_None) { // None is the only way to create a null (as opposed to empty) QString. *sipCppPtr = new QString(); return sipGetState(sipTransferObj); } #if PY_MAJOR_VERSION < 3 if (PyString_Check(sipPy)) { *sipCppPtr = new QString(PyString_AS_STRING(sipPy)); return sipGetState(sipTransferObj); } #endif *sipCppPtr = new QString(qpycore_PyObject_AsQString(sipPy)); return sipGetState(sipTransferObj); %End %ConvertFromTypeCode return qpycore_PyObject_FromQString(*sipCpp); %End }; class QString /API=QString: - 2/ { %TypeHeaderCode #include %End %TypeCode // This is needed by __hash__(). #include // This is needed by the %BIGetCharBufferCode. #include %End %ConvertToTypeCode // See the comments for the QByteArray %ConvertToTypeCode for an explanation // of the conversions that are done below. if (sipIsErr == NULL) return (PyUnicode_Check(sipPy) || #if PY_MAJOR_VERSION < 3 PyString_Check(sipPy) || #endif sipCanConvertToType(sipPy, sipType_QLatin1String, 0) || sipCanConvertToType(sipPy, sipType_QChar, 0) || sipCanConvertToType(sipPy, sipType_QString, SIP_NO_CONVERTORS)); if (PyUnicode_Check(sipPy)) { *sipCppPtr = new QString(qpycore_PyObject_AsQString(sipPy)); return sipGetState(sipTransferObj); } #if PY_MAJOR_VERSION < 3 if (PyString_Check(sipPy)) { *sipCppPtr = new QString(PyString_AS_STRING(sipPy)); return sipGetState(sipTransferObj); } #endif if (sipCanConvertToType(sipPy, sipType_QLatin1String, 0)) { int state; QLatin1String *q = reinterpret_cast(sipConvertToType(sipPy, sipType_QLatin1String, 0, 0, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(q, sipType_QLatin1String, state); return 0; } *sipCppPtr = new QString(*q); sipReleaseType(q, sipType_QLatin1String, state); return sipGetState(sipTransferObj); } if (sipCanConvertToType(sipPy, sipType_QChar, 0)) { int state; QChar *q = reinterpret_cast(sipConvertToType(sipPy, sipType_QChar, 0, 0, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(q, sipType_QChar, state); return 0; } *sipCppPtr = new QString(*q); sipReleaseType(q, sipType_QChar, state); return sipGetState(sipTransferObj); } *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QString, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End %BIGetReadBufferCode if (sipSegment != 0) { PyErr_SetString(PyExc_SystemError, "accessing non-existent QString segment"); sipRes = -1; } else { // To keep things easy we convert to a Python Unicode object, keep a // reference to it and expose its contents. PyObject *uobj = qpycore_PyObject_FromQString(*sipCpp); if (uobj) { Py_XDECREF(((sipSimpleWrapper *)sipSelf)->user); ((sipSimpleWrapper *)sipSelf)->user = uobj; *sipPtrPtr = (void *)PyUnicode_AS_UNICODE(uobj); sipRes = PyUnicode_GET_DATA_SIZE(uobj); } else { sipRes = -1; } } %End %BIGetSegCountCode if (sipLenPtr) *sipLenPtr = sipCpp->size() * sizeof (Py_UNICODE); sipRes = 1; %End %BIGetCharBufferCode if (sipSegment != 0) { PyErr_SetString(PyExc_SystemError, "accessing non-existent QString segment"); sipRes = -1; } else { static QTextCodec *codec = 0; static bool check_codec = true; // For the first time only, try and find a Qt codec that corresponds to the // default Python codec. If one wasn't found then fall back to ASCII // (which is actually the codec returned by QTextCodec::codecForCStrings()). if (check_codec) { codec = QTextCodec::codecForName(PyUnicode_GetDefaultEncoding()); check_codec = false; } QByteArray enc; if (codec) enc = codec->fromUnicode(*sipCpp); else #if QT_VERSION >= 0x050000 enc = sipCpp->toLatin1(); #else enc = sipCpp->toAscii(); #endif // A Python string is the most convenient method to save the encoded // version on the heap. PyObject *encobj = ((sipSimpleWrapper *)sipSelf)->user; Py_XDECREF(encobj); if ((encobj = PyString_FromStringAndSize(enc.data(), enc.size())) != NULL) { *sipPtrPtr = (void *)PyString_AS_STRING(encobj); sipRes = PyString_GET_SIZE(encobj); ((sipSimpleWrapper *)sipSelf)->user = encobj; } else sipRes = -1; } %End %PickleCode sipRes = Py_BuildValue((char *)"(O)", qpycore_PyObject_FromQString(*sipCpp)); %End public: QString(); QString(int size, QChar c); QString(const QString &s); QString(const QByteArray &a); ~QString(); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *uni = qpycore_PyObject_FromQString(*sipCpp); if (uni) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QString(%R)", uni); #else sipRes = PyString_FromString("PyQt4.QtCore.QString("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(uni)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif Py_DECREF(uni); } %End int size() const; int count() const /__len__/; void resize(int size); QString &fill(QChar ch, int size = -1); void truncate(int pos); void chop(int n); void squeeze(); %If (Qt_5_0_0 -) QString arg(int a /Constrained/, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const; %End %If (- Qt_5_0_0) QString arg(int a /Constrained/, int fieldWidth = 0, int base = 10, const QChar &fillChar = QLatin1Char(' ')) const; %End %If (Qt_5_0_0 -) QString arg(double a /Constrained/, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' ')) const; %End %If (- Qt_5_0_0) QString arg(double a /Constrained/, int fieldWidth = 0, char format = 'g', int precision = -1, const QChar &fillChar = QLatin1Char(' ')) const; %End %If (Qt_5_0_0 -) QString arg(qlonglong a, int fieldwidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const; %End %If (- Qt_5_0_0) QString arg(qlonglong a, int fieldWidth = 0, int base = 10, const QChar &fillChar = QLatin1Char(' ')) const; %End %If (Qt_5_0_0 -) QString arg(qulonglong a, int fieldwidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const; %End %If (- Qt_5_0_0) QString arg(qulonglong a, int fieldWidth = 0, int base = 10, const QChar &fillChar = QLatin1Char(' ')) const; %End %If (Qt_5_0_0 -) QString arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const; %End %If (- Qt_5_0_0) QString arg(const QString &a, int fieldWidth = 0, const QChar &fillChar = QLatin1Char(' ')) const; %End QString arg(const QString &a1, const QString &a2) const; QString arg(const QString &a1, const QString &a2, const QString &a3) const; QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4) const; %If (Qt_4_3_0 -) QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5) const; %End %If (Qt_4_3_0 -) QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6) const; %End %If (Qt_4_3_0 -) QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7) const; %End %If (Qt_4_3_0 -) QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8) const; %End %If (Qt_4_3_0 -) QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8, const QString &a9) const; %End int count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %If (Qt_4_8_0 -) int count(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End int count(const QRegExp &) const; int indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %If (Qt_4_8_0 -) int indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_5_0 -) int indexOf(const QLatin1String &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End int indexOf(const QRegExp &rx, int from = 0) const; int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %If (Qt_4_8_0 -) int lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_5_0 -) int lastIndexOf(const QLatin1String &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End int lastIndexOf(const QRegExp &rx, int from = -1) const; %If (Qt_5_0_0 -) bool contains(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (- Qt_5_0_0) QBool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_5_0_0 -) bool contains(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 - Qt_5_0_0) QBool contains(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_5_0_0 -) bool contains(const QRegExp &rx) const; %End %If (- Qt_5_0_0) QBool contains(const QRegExp &rx) const; %End enum SectionFlag { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps, }; typedef QFlags SectionFlags; QString section(const QString &sep, int start, int end = -1, QFlags flags = SectionDefault) const; QString section(const QRegExp ®, int start, int end = -1, QFlags flags = SectionDefault) const; QString left(int len) const; QString right(int len) const; QString mid(int position, int n = -1) const; bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %If (Qt_4_8_0 -) bool startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End bool startsWith(const QLatin1String &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %If (Qt_4_8_0 -) bool endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End bool endsWith(const QLatin1String &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; QString leftJustified(int width, QChar fillChar = QLatin1Char(' '), bool truncate = false) const; QString rightJustified(int width, QChar fillChar = QLatin1Char(' '), bool truncate = false) const; QString toLower() const; QString toUpper() const; QString trimmed() const; QString simplified() const; QString &insert(int i, const QString &s); QString &insert(int i, const QLatin1String &s); QString &append(const QString &s); QString &append(const QLatin1String &s); QString &prepend(const QString &s); QString &prepend(const QLatin1String &s); QString &operator+=(QChar::SpecialCharacter c); QString &operator+=(const QString &s); QString &operator+=(const QLatin1String &s); QString &remove(int i, int len); QString &remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive); QString &replace(int i, int len, const QString &after); QString &replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); QString &replace(const QRegExp &rx, const QString &after); QString &remove(const QRegExp &rx); enum SplitBehavior { KeepEmptyParts, SkipEmptyParts, }; QStringList split(const QString &sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; QStringList split(const QRegExp &sep, QString::SplitBehavior behavior = QString::KeepEmptyParts) const; enum NormalizationForm { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC, }; %If (Qt_5_0_0 -) QString normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const; %End %If (- Qt_5_0_0) QString normalized(QString::NormalizationForm mode) const; %End %If (- Qt_5_0_0) QString normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version) const; %End %If (PyQt_Deprecated_5_0) QByteArray toAscii() const; %End QByteArray toLatin1() const; QByteArray toUtf8() const; QByteArray toLocal8Bit() const; %If (PyQt_Deprecated_5_0) static QString fromAscii(const char *str /Encoding="ASCII"/, int size = -1); %End static QString fromLatin1(const char *str /Encoding="Latin-1"/, int size = -1); static QString fromUtf8(const char *str /Encoding="UTF-8"/, int size = -1); static QString fromLocal8Bit(const char *str /Encoding="None"/, int size = -1); %If (Qt_5_0_0 -) int compare(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (- Qt_5_0_0) int compare(const QString &s) const; %End %If (Qt_4_2_0 - Qt_5_0_0) int compare(const QString &s, Qt::CaseSensitivity cs) const; %End %If (Qt_4_2_0 -) int compare(const QLatin1String &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_5_0 -) int compare(const QStringRef &ref, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_5_0_0 -) static int compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (- Qt_5_0_0) static int compare(const QString &s1, const QString &s2); %End %If (Qt_4_2_0 - Qt_5_0_0) static int compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs); %End %If (Qt_4_2_0 -) static int compare(const QString &s1, const QLatin1String &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (Qt_4_2_0 -) static int compare(const QLatin1String &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (Qt_4_5_0 -) static int compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End int localeAwareCompare(const QString &s) const; %If (Qt_4_5_0 -) int localeAwareCompare(const QStringRef &s) const; %End static int localeAwareCompare(const QString &s1, const QString &s2); %If (Qt_4_5_0 -) static int localeAwareCompare(const QString &s1, const QStringRef &s2); %End short toShort(bool *ok = 0, int base = 10) const; ushort toUShort(bool *ok = 0, int base = 10) const; int toInt(bool *ok = 0, int base = 10) const; uint toUInt(bool *ok = 0, int base = 10) const; long toLong(bool *ok = 0, int base = 10) const; ulong toULong(bool *ok = 0, int base = 10) const; qlonglong toLongLong(bool *ok = 0, int base = 10) const; qulonglong toULongLong(bool *ok = 0, int base = 10) const; float toFloat(bool *ok = 0) const; double toDouble(bool *ok = 0) const; QString &setNum(int n /Constrained/, int base = 10); QString &setNum(double n /Constrained/, char format = 'g', int precision = 6); QString &setNum(qlonglong n, int base = 10); QString &setNum(qulonglong n, int base = 10); static QString number(int n /Constrained/, int base = 10); static QString number(double n /Constrained/, char format = 'g', int precision = 6); static QString number(qlonglong n, int base = 10); static QString number(qulonglong n, int base = 10); bool operator==(const QString &s) const; %MethodCode // In Qt5 this is a global operator and so SIP appends it to the list of class operators. // However these must appear before the corresponding QByteArray argument operator. #if QT_VERSION >= 0x050000 sipRes = operator==(*sipCpp, *a0); #else sipRes = sipCpp->QString::operator==(*a0); #endif %End bool operator<(const QString &s) const; %MethodCode // In Qt5 this is a global operator and so SIP appends it to the list of class operators. // However these must appear before the corresponding QByteArray argument operator. #if QT_VERSION >= 0x050000 sipRes = operator<(*sipCpp, *a0); #else sipRes = sipCpp->QString::operator<(*a0); #endif %End bool operator>(const QString &s) const; %MethodCode // In Qt5 this is a global operator and so SIP appends it to the list of class operators. // However these must appear before the corresponding QByteArray argument operator. #if QT_VERSION >= 0x050000 sipRes = operator>(*sipCpp, *a0); #else sipRes = sipCpp->QString::operator<(*a0); #endif %End bool operator!=(const QString &s) const; %MethodCode // In Qt5 this is a global operator and so SIP appends it to the list of class operators. // However these must appear before the corresponding QByteArray argument operator. #if QT_VERSION >= 0x050000 sipRes = operator!=(*sipCpp, *a0); #else sipRes = sipCpp->QString::operator!=(*a0); #endif %End bool operator<=(const QString &s) const; %MethodCode // In Qt5 this is a global operator and so SIP appends it to the list of class operators. // However these must appear before the corresponding QByteArray argument operator. #if QT_VERSION >= 0x050000 sipRes = operator<=(*sipCpp, *a0); #else sipRes = sipCpp->QString::operator<=(*a0); #endif %End bool operator>=(const QString &s) const; %MethodCode // In Qt5 this is a global operator and so SIP appends it to the list of class operators. // However these must appear before the corresponding QByteArray argument operator. #if QT_VERSION >= 0x050000 sipRes = operator>=(*sipCpp, *a0); #else sipRes = sipCpp->QString::operator>=(*a0); #endif %End bool operator==(const QLatin1String &s) const; bool operator<(const QLatin1String &s) const; bool operator>(const QLatin1String &s) const; bool operator!=(const QLatin1String &s) const; bool operator<=(const QLatin1String &s) const; bool operator>=(const QLatin1String &s) const; QString &prepend(const QByteArray &s); QString &append(const QByteArray &s); QString &operator+=(const QByteArray &s); bool operator==(const QByteArray &s) const; bool operator!=(const QByteArray &s) const; bool operator<(const QByteArray &s) const; bool operator>(const QByteArray &s) const; bool operator<=(const QByteArray &s) const; bool operator>=(const QByteArray &s) const; void push_back(const QString &s); void push_front(const QString &s); bool isNull() const; bool isSimpleText() const; bool isRightToLeft() const; int length() const; const QChar at(int i) const; QString operator[](int i) const; %MethodCode // Note that we return a QString (rather than a QChar as Qt does). This makes // things a bit easier in Python (because it doesn't distinguish between // characters and strings), although now that a QChar can be used whenever a // QString is expected it doesn't really matter. SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = new QString(sipCpp->operator[]((int)idx)); %End QString operator[](SIP_PYSLICE slice) const; %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->length(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { sipRes = new QString(); for (i = 0; i < slicelength; ++i) { sipRes -> append(sipCpp->at(start)); start += step; } } %End int __contains__(const QString &s) const; %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End SIP_PYOBJECT __str__() const /DocType="str"/; %MethodCode sipRes = qpycore_PyObject_FromQString(*sipCpp); %End long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End QString operator*(int m) const; %MethodCode sipRes = new QString(); while (a0-- > 0) *sipRes += *sipCpp; %End QString &operator*=(int m); %MethodCode QString orig(*sipCpp); sipCpp->clear(); while (a0-- > 0) *sipCpp += orig; %End bool isEmpty() const; void clear(); int capacity() const; void reserve(int asize); %If (Qt_4_3_0 -) QString toCaseFolded() const; %End %If (Qt_4_5_0 -) QString &replace(const QLatin1String &before, const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (Qt_4_5_0 -) QString &replace(const QLatin1String &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (Qt_4_5_0 -) QString &replace(const QString &before, const QLatin1String &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (Qt_4_5_0 -) QString repeated(int times) const; %End %If (Qt_4_8_0 -) void swap(QString &other); %End %If (Qt_5_0_0 -) QString toHtmlEscaped() const; %End %If (Qt_5_0_0 -) static QString fromLatin1(const QByteArray &str); %End %If (Qt_5_0_0 -) static QString fromUtf8(const QByteArray &str); %End %If (Qt_5_0_0 -) static QString fromLocal8Bit(const QByteArray &str); %End }; class QLatin1String /API=QString: - 2/ { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"(s)", sipCpp->latin1()); %End public: explicit QLatin1String(const char *s /Encoding="Latin-1",KeepReference/); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *str = SIPBytes_FromString(sipCpp->latin1()); if (str) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QLatin1String(%R)", str); #else sipRes = PyString_FromString("PyQt4.QtCore.QLatin1String("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(str)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif Py_DECREF(str); } %End const char *latin1() const /Encoding="None"/; bool operator==(const QString &s) const; bool operator!=(const QString &s) const; bool operator>(const QString &s) const; bool operator<(const QString &s) const; bool operator>=(const QString &s) const; bool operator<=(const QString &s) const; %If (Qt_5_0_0 -) int size() const; %End }; const QString operator+(const QString &s1, const QString &s2) /Numeric/; const QString operator+(QChar s1, const QString &s2) /Numeric/; const QString operator+(const QByteArray &ba, const QString &s) /Numeric/; const QString operator+(const QString &s, const QByteArray &ba) /Numeric/; QDataStream &operator<<(QDataStream &, const QString & /Constrained/) /API=QString: - 2/; QDataStream &operator>>(QDataStream &, QString & /Constrained/) /API=QString: - 2/; QFlags operator|(QString::SectionFlag f1, QFlags f2); %If (Qt_5_0_0 -) bool operator==(QLatin1String s1, QLatin1String s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator==(const QLatin1String &s1, const QLatin1String &s2); %End %If (Qt_5_0_0 -) bool operator!=(QLatin1String s1, QLatin1String s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator!=(const QLatin1String &s1, const QLatin1String &s2); %End %If (Qt_5_0_0 -) bool operator<(QLatin1String s1, QLatin1String s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator<(const QLatin1String &s1, const QLatin1String &s2); %End %If (Qt_5_0_0 -) bool operator<=(QLatin1String s1, QLatin1String s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator<=(const QLatin1String &s1, const QLatin1String &s2); %End %If (Qt_5_0_0 -) bool operator>(QLatin1String s1, QLatin1String s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator>(const QLatin1String &s1, const QLatin1String &s2); %End %If (Qt_5_0_0 -) bool operator>=(QLatin1String s1, QLatin1String s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator>=(const QLatin1String &s1, const QLatin1String &s2); %End %If (Qt_4_3_0 -) void qSwap(QString &value1, QString &value2) /API=QString: - 2/; %End %If (Qt_4_3_0 -) // class QStringRef /API=QString:2 - / %MappedType QStringRef /API=QString:2 - / { %TypeHeaderCode #include %End %ConvertToTypeCode // Qt only ever returns a QStringRef so this conversion isn't needed. return 0; %End %ConvertFromTypeCode return qpycore_PyObject_FromQString(sipCpp->toString()); %End }; %End %If (Qt_4_3_0 -) class QStringRef /API=QString: - 2/ { %TypeHeaderCode #include %End public: QStringRef(); QStringRef(const QString *aString, int aPosition, int aSize); QStringRef(const QString *aString); QStringRef(const QStringRef &other); ~QStringRef(); const QString *string() const; int position() const; int size() const; int count() const /__len__/; int length() const; const QChar *unicode() const; const QChar *data() const; const QChar *constData() const; void clear(); QString toString() const; bool isEmpty() const; bool isNull() const; QStringRef appendTo(QString *string) const; const QChar at(int i) const; %If (Qt_4_5_0 -) int compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_5_0 -) int compare(const QStringRef &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_5_0 -) int compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_5_0 -) static int compare(const QStringRef &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (Qt_4_5_0 -) static int compare(const QStringRef &s1, const QStringRef &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (Qt_4_5_0 -) static int compare(const QStringRef &s1, QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (Qt_4_5_0 -) int localeAwareCompare(const QString &s) const; %End %If (Qt_4_5_0 -) int localeAwareCompare(const QStringRef &s) const; %End %If (Qt_4_5_0 -) static int localeAwareCompare(const QStringRef &s1, const QString &s2); %End %If (Qt_4_5_0 -) static int localeAwareCompare(const QStringRef &s1, const QStringRef &s2); %End SIP_PYOBJECT __str__() const /DocType="str"/; %MethodCode sipRes = qpycore_PyObject_FromQString(sipCpp->toString()); %End %If (Qt_4_8_0 -) int indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) int indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) int indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) int lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) int lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) int count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) int count(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) bool startsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) bool startsWith(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) bool startsWith(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) bool endsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) bool endsWith(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) bool endsWith(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 -) %If (PyQt_Deprecated_5_0) QByteArray toAscii() const; %End %End %If (Qt_4_8_0 -) QByteArray toLatin1() const; %End %If (Qt_4_8_0 -) QByteArray toUtf8() const; %End %If (Qt_4_8_0 -) QByteArray toLocal8Bit() const; %End %If (Qt_4_8_0 -) QVector toUcs4() const; %End %If (Qt_5_0_0 -) bool contains(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 - Qt_5_0_0) QBool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_5_0_0 -) bool contains(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 - Qt_5_0_0) QBool contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_5_0_0 -) bool contains(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (Qt_4_8_0 - Qt_5_0_0) QBool contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End }; %End %If (Qt_4_3_0 -) bool operator==(const QStringRef &s1, const QStringRef &s2); %End %If (Qt_4_3_0 -) bool operator!=(const QStringRef &s1, const QStringRef &s2); %End %If (Qt_4_3_0 -) bool operator==(const QString &s1, const QStringRef &s2); %End %If (Qt_4_3_0 -) bool operator!=(const QString &s1, const QStringRef &s2); %End %If (Qt_4_3_0 -) bool operator==(const QStringRef &s1, const QString &s2); %End %If (Qt_4_3_0 -) bool operator!=(const QStringRef &s1, const QString &s2); %End %If (Qt_5_0_0 -) bool operator==(QLatin1String s1, const QStringRef &s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator==(const QLatin1String &s1, const QStringRef &s2); %End %If (Qt_5_0_0 -) bool operator!=(QLatin1String s1, const QStringRef &s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator!=(const QLatin1String &s1, const QStringRef &s2); %End %If (Qt_5_0_0 -) bool operator==(const QStringRef &s1, QLatin1String s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator==(const QStringRef &s1, const QLatin1String &s2); %End %If (Qt_5_0_0 -) bool operator!=(const QStringRef &s1, QLatin1String s2); %End %If (Qt_4_3_0 - Qt_5_0_0) bool operator!=(const QStringRef &s1, const QLatin1String &s2); %End %If (Qt_4_3_0 -) bool operator<(const QStringRef &s1, const QStringRef &s2); %End %If (Qt_4_3_0 -) bool operator>(const QStringRef &s1, const QStringRef &s2); %End %If (Qt_4_3_0 -) bool operator<=(const QStringRef &s1, const QStringRef &s2); %End %If (Qt_4_3_0 -) bool operator>=(const QStringRef &s1, const QStringRef &s2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qstringlist.sip0000644000076500000240000001754412536324426021056 0ustar philstaff00000000000000// qstringlist.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End // class QStringList /API=QString:2 -,DocType="list-of-str"/ %MappedType QStringList /API=QString:2 -,DocType="list-of-str"/ { %TypeHeaderCode #include %End %ConvertToTypeCode if (sipIsErr == NULL) return qpycore_PySequence_Check_QStringList(sipPy); *sipCppPtr = new QStringList(qpycore_PySequence_AsQStringList(sipPy)); return sipGetState(sipTransferObj); %End %ConvertFromTypeCode return qpycore_PyObject_FromQStringList(*sipCpp); %End }; class QStringList /API=QString: - 2/ { %TypeHeaderCode #include %End %ConvertToTypeCode // Allow a Python sequence of QStrings whenever a QStringList is expected. if (sipIsErr == NULL) { if (sipCanConvertToType(sipPy, sipType_QStringList, SIP_NO_CONVERTORS)) return 1; return qpycore_PySequence_Check_QStringList(sipPy); } if (sipCanConvertToType(sipPy, sipType_QStringList, SIP_NO_CONVERTORS)) { *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QStringList, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; } *sipCppPtr = new QStringList(qpycore_PySequence_AsQStringList(sipPy)); return sipGetState(sipTransferObj); %End public: QStringList(); explicit QStringList(const QString &i); QStringList(const QStringList &l); QStringList &operator<<(const QString &str); QStringList &operator<<(const QStringList &l); %If (Qt_5_0_0 -) void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive); %End %If (- Qt_5_0_0) void sort(); %End QString join(const QString &sep) const; QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %If (Qt_5_0_0 -) bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End %If (- Qt_5_0_0) QBool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; %End QStringList &replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive); QStringList &replaceInStrings(const QRegExp &rx, const QString &after); QStringList filter(const QRegExp &rx) const; int indexOf(const QString &value, int from = 0) const; int indexOf(const QRegExp &rx, int from = 0) const; int lastIndexOf(const QString &value, int from = -1) const; int lastIndexOf(const QRegExp &rx, int from = -1) const; %If (Qt_4_5_0 -) int removeDuplicates(); %End void __setitem__(int i, const QString &str); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else (*sipCpp)[a0] = *a1; %End void __setitem__(SIP_PYSLICE slice, const QStringList &list); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { int vlen = a1->count(); if (vlen != slicelength) { sipBadLengthForSlice(vlen, slicelength); sipIsErr = 1; } else { QStringList::const_iterator it = a1->begin(); for (i = 0; i < slicelength; ++i) { (*sipCpp)[start] = *it; start += step; ++it; } } } %End void __delitem__(int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipCpp->removeAt(a0); %End void __delitem__(SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else for (i = 0; i < slicelength; ++i) { sipCpp->removeAt(start); start += step - 1; } %End QString operator[](int i); %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = new QString(sipCpp->operator[]((int)idx)); %End QStringList operator[](SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { sipRes = new QStringList(); for (i = 0; i < slicelength; ++i) { (*sipRes) += (*sipCpp)[start]; start += step; } } %End int __contains__(const QString &str); %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End QStringList operator+(const QStringList &other) const; QStringList operator*(int by); %MethodCode sipRes = new QStringList(); while (a0-- > 0) *sipRes += *sipCpp; %End QStringList &operator*=(int by); %MethodCode QStringList orig(*sipCpp); sipCpp->clear(); while (a0-- > 0) *sipCpp += orig; %End bool operator==(const QStringList &other); bool operator!=(const QStringList &other); // Methods inherited from QList. // Keep this in sync with QItemSelection. void clear(); bool isEmpty() const; void append(const QString &str); void prepend(const QString &str); void insert(int i, const QString &str); void replace(int i, const QString &str); void removeAt(int i); int removeAll(const QString &str); QString takeAt(int i); QString takeFirst(); QString takeLast(); void move(int from, int to); void swap(int i, int j); int count(const QString &str) const; int count() const /__len__/; QString &first(); QString &last(); QStringList mid(int pos, int length = -1) const; QStringList &operator+=(const QStringList &other); QStringList &operator+=(const QString &value); }; QDataStream &operator>>(QDataStream &in, QStringList &list /Constrained/) /API=QString: - 2/; QDataStream &operator<<(QDataStream &out, const QStringList &list /Constrained/) /API=QString: - 2/; PyQt-x11-gpl-4.11.4/sip/QtCore/qstringmatcher.sip0000644000076500000240000000267712536324426021527 0ustar philstaff00000000000000// qstringmatcher.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QStringMatcher /API=QString: - 2/ { %TypeHeaderCode #include %End public: QStringMatcher(); QStringMatcher(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive); QStringMatcher(const QStringMatcher &other); ~QStringMatcher(); void setPattern(const QString &pattern); void setCaseSensitivity(Qt::CaseSensitivity cs); int indexIn(const QString &str, int from = 0) const; QString pattern() const; Qt::CaseSensitivity caseSensitivity() const; }; PyQt-x11-gpl-4.11.4/sip/QtCore/qsystemsemaphore.sip0000644000076500000240000000342612536324426022076 0ustar philstaff00000000000000// qsystemsemaphore.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QSystemSemaphore { %TypeHeaderCode #include %End public: enum AccessMode { Open, Create, }; enum SystemSemaphoreError { NoError, PermissionDenied, KeyError, AlreadyExists, NotFound, OutOfResources, UnknownError, }; QSystemSemaphore(const QString &key, int initialValue = 0, QSystemSemaphore::AccessMode mode = QSystemSemaphore::Open); ~QSystemSemaphore(); void setKey(const QString &key, int initialValue = 0, QSystemSemaphore::AccessMode mode = QSystemSemaphore::Open); QString key() const; bool acquire(); bool release(int n = 1); QSystemSemaphore::SystemSemaphoreError error() const; QString errorString() const; private: QSystemSemaphore(const QSystemSemaphore &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/QtCoremod.sip0000644000076500000240000001440012536324426020354 0ustar philstaff00000000000000// QtCoremod.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtCore, keyword_arguments="Optional", version=1) %Timeline {Qt_4_1_0 Qt_4_1_1 Qt_4_1_2 Qt_4_1_3 Qt_4_2_0 Qt_4_2_1 Qt_4_2_2 Qt_4_2_3 Qt_4_3_0 Qt_4_3_1 Qt_4_3_2 Qt_4_3_3 Qt_4_3_4 Qt_4_4_0 Qt_4_4_1 Qt_4_4_2 Qt_4_5_0 Qt_4_5_1 Qt_4_5_2 Qt_4_5_3 Qt_4_6_0 Qt_4_6_1 Qt_4_6_2 Qt_4_6_3 Qt_4_7_0 Qt_4_7_1 Qt_4_7_2 Qt_4_7_3 Qt_4_7_4 Qt_4_8_0 Qt_4_8_1 Qt_4_8_2 Qt_4_8_3 Qt_4_8_4 Qt_4_8_5 Qt_4_8_6 Qt_4_8_7 Qt_5_0_0} %Platforms {WS_X11 WS_WIN WS_MACX} %Feature PyQt_Accessibility %Feature PyQt_SessionManager %Feature PyQt_StatusTip %Feature PyQt_ToolTip %Feature PyQt_WhatsThis %Feature PyQt_NoQtPrintRangeBug %Feature Py_DateTime %Feature PyQt_OpenSSL %Feature PyQt_SizeGrip %Feature PyQt_qreal_double %Feature Py_v3 %Feature PyQt_PrintDialog %Feature PyQt_Printer %Feature PyQt_PrintPreviewWidget %Feature PyQt_PrintPreviewDialog %Feature PyQt_SystemTrayIcon %Feature PyQt_RawFont %Feature PyQt_NoOpenGLES %Feature PyQt_Deprecated_5_0 %Feature PyQt_NotBootstrapped %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %Plugin PyQt4 %If (Py_v3) // Default to new, incompatible APIs for Python v3. %API(name=QDate, version=2) %API(name=QDateTime, version=2) %API(name=QString, version=2) %API(name=QTextStream, version=2) %API(name=QTime, version=2) %API(name=QUrl, version=2) %API(name=QVariant, version=2) %DefaultEncoding "ASCII" %End %If (!Py_v3) // Default to the compatible APIs for Python v2. %API(name=QDate, version=1) %API(name=QDateTime, version=1) %API(name=QString, version=1) %API(name=QTextStream, version=1) %API(name=QTime, version=1) %API(name=QUrl, version=1) %API(name=QVariant, version=1) %End %Include(name=staticplugins.sip, optional=True) %If (!Py_v3) // Hook into the VendorID package if it is enabled. %Feature VendorID %If (VendorID) %ModuleCode #include %End %PreInitialisationCode if (!vendorid_check()) { PyErr_SetString(PyExc_RuntimeError, "PyQt cannot be used with this Python interpreter"); return; } %End %End %End %Include(name=pyqt-internal.sip5, optional=True) %Include(name=pyqt-gpl.sip5, optional=True) %Include(name=pyqt-commercial.sip5, optional=True) %DefaultMetatype PyQt4.QtCore.pyqtWrapperType %DefaultSupertype sip.simplewrapper %Include qglobal.sip %Include qnamespace.sip %Include qabstractanimation.sip %Include qabstracteventdispatcher.sip %Include qabstractfileengine.sip %Include qabstractitemmodel.sip %Include qabstractnativeeventfilter.sip %Include qabstractstate.sip %Include qabstracttransition.sip %Include qanimationgroup.sip %Include qbasictimer.sip %Include qbitarray.sip %Include qbuffer.sip %Include qbytearray.sip %Include qbytearraymatcher.sip %Include qchar.sip %Include qcoreapplication.sip %Include qcoreevent.sip %Include qcryptographichash.sip %Include qdatastream.sip %Include qdatetime.sip %Include qdir.sip %Include qdiriterator.sip %Include qeasingcurve.sip %Include qelapsedtimer.sip %Include qeventloop.sip %Include qeventtransition.sip %Include qfile.sip %Include qfiledevice.sip %Include qfileinfo.sip %Include qfilesystemwatcher.sip %Include qfinalstate.sip %Include qfsfileengine.sip %Include qhash.sip %Include qhistorystate.sip %Include qiodevice.sip %Include qlibrary.sip %Include qlibraryinfo.sip %Include qline.sip %Include qlist.sip %Include qlocale.sip %Include qmap.sip %Include qmargins.sip %Include qmetaobject.sip %Include qmetatype.sip %Include qmimedata.sip %Include qmutex.sip %Include qnumeric.sip %Include qobject.sip %Include qobjectcleanuphandler.sip %Include qobjectdefs.sip %Include qpair.sip %Include qparallelanimationgroup.sip %Include qpauseanimation.sip %Include qpropertyanimation.sip %Include qpluginloader.sip %Include qpoint.sip %Include qprocess.sip %Include qreadwritelock.sip %Include qrect.sip %Include qregexp.sip %Include qresource.sip %Include qrunnable.sip %Include qsemaphore.sip %Include qsequentialanimationgroup.sip %Include qset.sip %Include qsettings.sip %Include qsharedmemory.sip %Include qsignalmapper.sip %Include qsignaltransition.sip %Include qsize.sip %Include qsocketnotifier.sip %Include qstate.sip %Include qstatemachine.sip %Include qstring.sip %Include qstringlist.sip %Include qstringmatcher.sip %Include qsystemsemaphore.sip %Include qtemporaryfile.sip %Include qtextboundaryfinder.sip %Include qtextcodec.sip %Include qtextstream.sip %Include qthread.sip %Include qthreadpool.sip %Include qtimeline.sip %Include qtimer.sip %Include qtranslator.sip %Include qurl.sip %Include qurlquery.sip %Include quuid.sip %Include qvariant.sip %Include qvariantanimation.sip %Include qvector.sip %Include qwaitcondition.sip %Include qxmlstream.sip %Include qpynullvariant.sip %Include qwineventnotifier.sip PyQt-x11-gpl-4.11.4/sip/QtCore/qtemporaryfile.sip0000644000076500000240000000430212536324426021522 0ustar philstaff00000000000000// qtemporaryfile.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTemporaryFile : QFile { %TypeHeaderCode #include %End public: QTemporaryFile(); explicit QTemporaryFile(const QString &templateName); explicit QTemporaryFile(QObject *parent /TransferThis/); QTemporaryFile(const QString &templateName, QObject *parent /TransferThis/); virtual ~QTemporaryFile(); bool autoRemove() const; void setAutoRemove(bool b); bool open() /ReleaseGIL/; %If (Qt_5_0_0 -) virtual QString fileName() const; %End %If (- Qt_5_0_0) QString fileName() const; %End QString fileTemplate() const; void setFileTemplate(const QString &name); %If (PyQt_Deprecated_5_0) static QTemporaryFile *createLocalFile(const QString &fileName) /Factory,ReleaseGIL/; %End %If (PyQt_Deprecated_5_0) static QTemporaryFile *createLocalFile(QFile &file) /Factory,ReleaseGIL/; %End %If (Qt_5_0_0 -) static QTemporaryFile *createNativeFile(const QString &fileName) /Factory,ReleaseGIL/; %End %If (Qt_5_0_0 -) static QTemporaryFile *createNativeFile(QFile &file) /Factory,ReleaseGIL/; %End %If (- Qt_5_0_0) virtual QAbstractFileEngine *fileEngine() const; %End protected: virtual bool open(QFlags flags) /ReleaseGIL/; private: QTemporaryFile(const QTemporaryFile &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qtextboundaryfinder.sip0000644000076500000240000000456112536324426022567 0ustar philstaff00000000000000// qtextboundaryfinder.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %ModuleCode #include %End %End %If (Qt_4_4_0 -) class QTextBoundaryFinder { %TypeHeaderCode #include %End public: enum BoundaryReason { NotAtBoundary, %If (- Qt_5_0_0) StartWord, %End %If (- Qt_5_0_0) EndWord, %End %If (Qt_5_0_0 -) SoftHyphen, %End %If (Qt_5_0_0 -) BreakOpportunity, %End %If (Qt_5_0_0 -) StartOfItem, %End %If (Qt_5_0_0 -) EndOfItem, %End %If (Qt_5_0_0 -) MandatoryBreak, %End }; typedef QFlags BoundaryReasons; enum BoundaryType { Grapheme, Word, Line, Sentence, }; QTextBoundaryFinder(); QTextBoundaryFinder(const QTextBoundaryFinder &other); QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType type, const QString &string); ~QTextBoundaryFinder(); bool isValid() const; QTextBoundaryFinder::BoundaryType type() const; QString string() const; void toStart(); void toEnd(); int position() const; void setPosition(int position); int toNextBoundary(); int toPreviousBoundary(); bool isAtBoundary() const; QFlags boundaryReasons() const; }; %End %If (Qt_5_0_0 -) QFlags operator|(QTextBoundaryFinder::BoundaryReason f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qtextcodec.sip0000644000076500000240000001167312536324426020633 0ustar philstaff00000000000000// qtextcodec.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QTextCodec /Abstract,Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: static QTextCodec *codecForName(const QByteArray &name); static QTextCodec *codecForName(const char *name); static QTextCodec *codecForMib(int mib); static QTextCodec *codecForHtml(const QByteArray &ba); %If (Qt_4_4_0 -) static QTextCodec *codecForHtml(const QByteArray &ba, QTextCodec *defaultCodec); %End %If (Qt_4_6_0 -) static QTextCodec *codecForUtfText(const QByteArray &ba); %End %If (Qt_4_6_0 -) static QTextCodec *codecForUtfText(const QByteArray &ba, QTextCodec *defaultCodec); %End static QList availableCodecs(); static QList availableMibs(); static QTextCodec *codecForLocale(); static void setCodecForLocale(QTextCodec *c /KeepReference/); %If (Qt_5_0_0 -) QTextDecoder *makeDecoder(QFlags flags = QTextCodec::DefaultConversion) const /Factory/; %End %If (- Qt_5_0_0) QTextDecoder *makeDecoder() const /Factory/; %End %If (Qt_4_7_0 - Qt_5_0_0) QTextDecoder *makeDecoder(QFlags flags) const /Factory/; %End %If (Qt_5_0_0 -) QTextEncoder *makeEncoder(QFlags flags = QTextCodec::DefaultConversion) const /Factory/; %End %If (- Qt_5_0_0) QTextEncoder *makeEncoder() const /Factory/; %End %If (Qt_4_7_0 - Qt_5_0_0) QTextEncoder *makeEncoder(QFlags flags) const /Factory/; %End bool canEncode(const QString &) const; QString toUnicode(const QByteArray &) const; QString toUnicode(const char *chars /Encoding="None"/) const; QByteArray fromUnicode(const QString &uc) const; enum ConversionFlag { DefaultConversion, ConvertInvalidToNull, IgnoreHeader, }; typedef QFlags ConversionFlags; struct ConverterState { %TypeHeaderCode #include %End ConverterState(QFlags flags = QTextCodec::DefaultConversion); ~ConverterState(); private: ConverterState(const QTextCodec::ConverterState &); }; QString toUnicode(const char *in /Array/, int length /ArraySize/, QTextCodec::ConverterState *state = 0) const; virtual QByteArray name() const = 0; virtual QList aliases() const; virtual int mibEnum() const = 0; protected: virtual QString convertToUnicode(const char *in /Array/, int length /ArraySize/, QTextCodec::ConverterState *state) const = 0; QTextCodec() /Transfer/; virtual ~QTextCodec(); public: %If (PyQt_Deprecated_5_0) static QTextCodec *codecForTr(); %End %If (- Qt_5_0_0) static void setCodecForTr(QTextCodec *c /KeepReference/); %End %If (- Qt_5_0_0) static QTextCodec *codecForCStrings(); %End %If (- Qt_5_0_0) static void setCodecForCStrings(QTextCodec *c /KeepReference/); %End private: QTextCodec(const QTextCodec &); }; QFlags operator|(QTextCodec::ConversionFlag f1, QFlags f2); class QTextEncoder /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: explicit QTextEncoder(const QTextCodec *codec); %If (Qt_4_7_0 -) QTextEncoder(const QTextCodec *codec, QFlags flags); %End ~QTextEncoder(); QByteArray fromUnicode(const QString &str); private: QTextEncoder(const QTextEncoder &); }; class QTextDecoder /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: explicit QTextDecoder(const QTextCodec *codec); %If (Qt_4_7_0 -) QTextDecoder(const QTextCodec *codec, QFlags flags); %End ~QTextDecoder(); QString toUnicode(const char *chars /Array/, int len /ArraySize/); %If (Qt_4_3_0 -) void toUnicode(QString *target /Constrained/, const char *chars /Array/, int len /ArraySize/) /API=QString: - 2/; %End QString toUnicode(const QByteArray &ba); private: QTextDecoder(const QTextDecoder &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qtextstream.sip0000644000076500000240000001344012536324426021043 0ustar philstaff00000000000000// qtextstream.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QTextStream { %TypeHeaderCode #include %End public: enum RealNumberNotation { SmartNotation, FixedNotation, ScientificNotation, }; enum FieldAlignment { AlignLeft, AlignRight, AlignCenter, AlignAccountingStyle, }; enum NumberFlag { ShowBase, ForcePoint, ForceSign, UppercaseBase, UppercaseDigits, }; enum Status { Ok, ReadPastEnd, ReadCorruptData, %If (Qt_4_8_0 -) WriteFailed, %End }; typedef QFlags NumberFlags; QTextStream(); explicit QTextStream(QIODevice *device); QTextStream(QString *string /Constrained/, QFlags mode = QIODevice::ReadWrite) /API=QString: - 2/; QTextStream(QByteArray *array /Constrained/, QFlags mode = QIODevice::ReadWrite); virtual ~QTextStream(); void setCodec(QTextCodec *codec /KeepReference/); void setCodec(const char *codecName); QTextCodec *codec() const; void setAutoDetectUnicode(bool enabled); bool autoDetectUnicode() const; void setGenerateByteOrderMark(bool generate); bool generateByteOrderMark() const; void setDevice(QIODevice *device); QIODevice *device() const; void setString(QString *string /Constrained/, QFlags mode = QIODevice::ReadWrite) /API=QString: - 2/; QString *string() const /API=QString: - 2/; bool atEnd() const; void reset(); void flush() /ReleaseGIL/; bool seek(qint64 pos); void skipWhiteSpace(); QString read(qint64 maxlen) /ReleaseGIL/; QString readLine(qint64 maxLength = 0) /ReleaseGIL/; QString readAll() /ReleaseGIL/; void setFieldAlignment(QTextStream::FieldAlignment alignment); QTextStream::FieldAlignment fieldAlignment() const; void setPadChar(QChar ch); QChar padChar() const; void setFieldWidth(int width); int fieldWidth() const; void setNumberFlags(QFlags flags); QFlags numberFlags() const; void setIntegerBase(int base); int integerBase() const; void setRealNumberNotation(QTextStream::RealNumberNotation notation); QTextStream::RealNumberNotation realNumberNotation() const; void setRealNumberPrecision(int precision); int realNumberPrecision() const; QTextStream::Status status() const; void setStatus(QTextStream::Status status); void resetStatus(); %If (Qt_4_2_0 -) qint64 pos() const; %End QTextStream &operator>>(QChar &ch /Constrained/) /API=QString: - 2/; QTextStream &operator>>(QString &s /Constrained/) /API=QString: - 2/; QTextStream &operator>>(QByteArray &array /Constrained/); QTextStream &operator<<(double f /Constrained/); %If (- Qt_5_0_0) QTextStream &operator<<(bool b /Constrained/) [QTextStream & (QBool b)]; %End QTextStream &operator<<(int i /Constrained/); QTextStream &operator<<(qlonglong i); QTextStream &operator<<(qulonglong i); QTextStream &operator<<(const QString &s); QTextStream &operator<<(const QByteArray &array); %If (Qt_4_5_0 -) void setLocale(const QLocale &locale); %End %If (Qt_4_5_0 -) QLocale locale() const; %End private: QTextStream(const QTextStream &); }; QFlags operator|(QTextStream::NumberFlag f1, QFlags f2); class QTextStreamManipulator; QTextStream &operator<<(QTextStream &s, QTextStreamManipulator m); QTextStream &bin(QTextStream &s) /API=QTextStream: - 2/; QTextStream &bin(QTextStream &s) /API=QTextStream:2 - , PyName=bin_/; QTextStream &oct(QTextStream &s) /API=QTextStream: - 2/; QTextStream &oct(QTextStream &s) /API=QTextStream:2 - , PyName=oct_/; QTextStream &dec(QTextStream &s); QTextStream &hex(QTextStream &s) /API=QTextStream: - 2/; QTextStream &hex(QTextStream &s) /API=QTextStream:2 - , PyName=hex_/; QTextStream &showbase(QTextStream &s); QTextStream &forcesign(QTextStream &s); QTextStream &forcepoint(QTextStream &s); QTextStream &noshowbase(QTextStream &s); QTextStream &noforcesign(QTextStream &s); QTextStream &noforcepoint(QTextStream &s); QTextStream &uppercasebase(QTextStream &s); QTextStream &uppercasedigits(QTextStream &s); QTextStream &lowercasebase(QTextStream &s); QTextStream &lowercasedigits(QTextStream &s); QTextStream &fixed(QTextStream &s); QTextStream &scientific(QTextStream &s); QTextStream &left(QTextStream &s); QTextStream &right(QTextStream &s); QTextStream ¢er(QTextStream &s); QTextStream &endl(QTextStream &s); QTextStream &flush(QTextStream &s); QTextStream &reset(QTextStream &s); QTextStream &bom(QTextStream &s); QTextStream &ws(QTextStream &s); QTextStreamManipulator qSetFieldWidth(int width); QTextStreamManipulator qSetPadChar(QChar ch); QTextStreamManipulator qSetRealNumberPrecision(int precision); PyQt-x11-gpl-4.11.4/sip/QtCore/qthread.sip0000644000076500000240000000601212536324426020107 0ustar philstaff00000000000000// qthread.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QThread : QObject { %TypeHeaderCode #include %End public: static QThread *currentThread(); static Qt::HANDLE currentThreadId(); %If (Qt_4_3_0 -) static int idealThreadCount(); %End %If (Qt_4_5_0 -) static void yieldCurrentThread() /ReleaseGIL/; %End explicit QThread(QObject *parent /TransferThis/ = 0); virtual ~QThread(); enum Priority { IdlePriority, LowestPriority, LowPriority, NormalPriority, HighPriority, HighestPriority, TimeCriticalPriority, InheritPriority, }; bool isFinished() const; bool isRunning() const; void setPriority(QThread::Priority priority); QThread::Priority priority() const; void setStackSize(uint stackSize); uint stackSize() const; void exit(int returnCode = 0) /ReleaseGIL/; public slots: void start(QThread::Priority priority = QThread::InheritPriority) /ReleaseGIL/; void terminate(); void quit(); public: bool wait(unsigned long msecs = ULONG_MAX) /ReleaseGIL/; signals: void started(); void finished(); %If (- Qt_5_0_0) void terminated(); %End protected: %If (- Qt_4_4_0) virtual void run() = 0 /NewThread/; %End %If (Qt_4_4_0 -) virtual void run() /NewThread/; %End int exec() /PyName=exec_,ReleaseGIL/; %If (Py_v3) int exec() /ReleaseGIL/; %End static void setTerminationEnabled(bool enabled = true); %If (- Qt_5_0_0) static void sleep(unsigned long) /ReleaseGIL/; %End %If (- Qt_5_0_0) static void msleep(unsigned long) /ReleaseGIL/; %End %If (- Qt_5_0_0) static void usleep(unsigned long) /ReleaseGIL/; %End public: %If (Qt_5_0_0 -) virtual bool event(QEvent *event); %End %If (Qt_5_0_0 -) static void sleep(unsigned long) /ReleaseGIL/; %End %If (Qt_5_0_0 -) static void msleep(unsigned long) /ReleaseGIL/; %End %If (Qt_5_0_0 -) static void usleep(unsigned long) /ReleaseGIL/; %End %If (Qt_5_0_0 -) QAbstractEventDispatcher *eventDispatcher() const; %End %If (Qt_5_0_0 -) void setEventDispatcher(QAbstractEventDispatcher *eventDispatcher /Transfer/); %End }; PyQt-x11-gpl-4.11.4/sip/QtCore/qthreadpool.sip0000644000076500000240000000441712536324426021010 0ustar philstaff00000000000000// qthreadpool.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QThreadPool : QObject { %TypeHeaderCode #include %End public: QThreadPool(QObject *parent /TransferThis/ = 0); virtual ~QThreadPool(); static QThreadPool *globalInstance() /KeepReference/; void start(QRunnable *runnable /GetWrapper/, int priority = 0) /ReleaseGIL/; %MethodCode // We have to handle the object ownership manually. if (a0->autoDelete()) sipTransferTo(a0Wrapper, sipSelf); Py_BEGIN_ALLOW_THREADS sipCpp->start(a0, a1); Py_END_ALLOW_THREADS %End bool tryStart(QRunnable *runnable /GetWrapper/) /ReleaseGIL/; %MethodCode // We have to handle the object ownership manually. if (a0->autoDelete()) sipTransferTo(a0Wrapper, sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->tryStart(a0); Py_END_ALLOW_THREADS %End int expiryTimeout() const; void setExpiryTimeout(int expiryTimeout); int maxThreadCount() const; void setMaxThreadCount(int maxThreadCount); int activeThreadCount() const; void reserveThread(); void releaseThread(); %If (Qt_5_0_0 -) bool waitForDone(int msecs = -1) /ReleaseGIL/; %End %If (- Qt_5_0_0) void waitForDone() /ReleaseGIL/; %End %If (Qt_4_8_0 - Qt_5_0_0) bool waitForDone(int msecs) /ReleaseGIL/; %End }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qtimeline.sip0000644000076500000240000000544012536324426020452 0ustar philstaff00000000000000// qtimeline.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QTimeLine : QObject { %TypeHeaderCode #include %End public: enum CurveShape { EaseInCurve, EaseOutCurve, EaseInOutCurve, LinearCurve, SineCurve, %If (Qt_4_4_0 -) CosineCurve, %End }; enum Direction { Forward, Backward, }; enum State { NotRunning, Paused, Running, }; QTimeLine(int duration = 1000, QObject *parent /TransferThis/ = 0); virtual ~QTimeLine(); QTimeLine::State state() const; int loopCount() const; void setLoopCount(int count); QTimeLine::Direction direction() const; void setDirection(QTimeLine::Direction direction); int duration() const; void setDuration(int duration); int startFrame() const; void setStartFrame(int frame); int endFrame() const; void setEndFrame(int frame); void setFrameRange(int startFrame, int endFrame); int updateInterval() const; void setUpdateInterval(int interval); QTimeLine::CurveShape curveShape() const; void setCurveShape(QTimeLine::CurveShape shape); int currentTime() const; int currentFrame() const; qreal currentValue() const; int frameForTime(int msec) const; virtual qreal valueForTime(int msec) const; public slots: %If (Qt_4_3_0 -) void resume(); %End void setCurrentTime(int msec); void setPaused(bool paused); void start(); void stop(); void toggleDirection(); signals: void finished(); void frameChanged(int); void stateChanged(QTimeLine::State newState); void valueChanged(qreal x); protected: virtual void timerEvent(QTimerEvent *event); public: %If (Qt_4_6_0 -) QEasingCurve easingCurve() const; %End %If (Qt_4_6_0 -) void setEasingCurve(const QEasingCurve &curve); %End private: QTimeLine(const QTimeLine &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qtimer.sip0000644000076500000240000000344412536324426017766 0ustar philstaff00000000000000// qtimer.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTimer : QObject { %TypeHeaderCode #include %End public: explicit QTimer(QObject *parent /TransferThis/ = 0); virtual ~QTimer(); bool isActive() const; int timerId() const; void setInterval(int msec); int interval() const; bool isSingleShot() const; void setSingleShot(bool asingleShot); static void singleShot(int msec, SIP_RXOBJ_CON receiver /SingleShot/, SIP_SLOT_CON() member) [void (int msec, QObject *receiver, const char *member)]; public slots: void start(int msec); void start(); void stop(); signals: void timeout(); protected: virtual void timerEvent(QTimerEvent *); public: %If (Qt_5_0_0 -) void setTimerType(Qt::TimerType atype); %End %If (Qt_5_0_0 -) Qt::TimerType timerType() const; %End %If (Qt_5_0_0 -) int remainingTime() const; %End private: QTimer(const QTimer &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qtranslator.sip0000644000076500000240000000455212536324426021040 0ustar philstaff00000000000000// qtranslator.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTranslator : QObject { %TypeHeaderCode #include %End public: explicit QTranslator(QObject *parent /TransferThis/ = 0); virtual ~QTranslator(); %If (Qt_5_0_0 -) virtual QString translate(const char *context, const char *sourceText, const char *disambiguation = 0, int n = -1) const; %End %If (- Qt_5_0_0) virtual QString translate(const char *context, const char *sourceText, const char *disambiguation = 0) const; %End %If (Qt_4_2_0 - Qt_5_0_0) QString translate(const char *context, const char *sourceText, const char *comment, int n) const; %End virtual bool isEmpty() const; bool load(const QString &fileName, const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &searchDelimiters /DocValue="Py_v3:''"/ = QString(), const QString &suffix /DocValue="Py_v3:''"/ = QString()) /ReleaseGIL/; %If (Qt_4_8_0 -) bool load(const QLocale &locale, const QString &fileName, const QString &prefix /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &suffix /DocValue="Py_v3:''"/ = QString()) /ReleaseGIL/; %End %If (Qt_5_0_0 -) bool load(const uchar *data /Array/, int len /ArraySize/, const QString &directory = QString()) /PyName=loadFromData,ReleaseGIL/; %End %If (- Qt_5_0_0) bool load(const uchar *data /Array/, int len /ArraySize/) /PyName=loadFromData,ReleaseGIL/; %End private: QTranslator(const QTranslator &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qurl.sip0000644000076500000240000003664412536324426017460 0ustar philstaff00000000000000// qurl.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End %If (Qt_5_0_0 -) // Template definition for QUrlTwoFlags. template class QUrlTwoFlags /PyQtFlags=0x1/ { // These are handled by the %ConvertToTypeCode. //QUrlTwoFlags(E1); //QUrlTwoFlags(E2); QUrlTwoFlags(); QUrlTwoFlags &operator&=(int mask); //QUrlTwoFlags &operator&=(uint mask); QUrlTwoFlags &operator|=(QUrlTwoFlags f); //QUrlTwoFlags &operator|=(E1 f); //QUrlTwoFlags &operator|=(E2 f); QUrlTwoFlags &operator^=(QUrlTwoFlags f); //QUrlTwoFlags &operator^=(E1 f); //QUrlTwoFlags &operator^=(E2 f); operator int() const; QUrlTwoFlags operator|(QUrlTwoFlags f) const; //QUrlTwoFlags operator|(E1 f) const; //QUrlTwoFlags operator|(E2 f) const; QUrlTwoFlags operator^(QUrlTwoFlags f) const; //QUrlTwoFlags operator^(E1 f) const; //QUrlTwoFlags operator^(E2 f) const; QUrlTwoFlags operator&(int mask) const; //QUrlTwoFlags operator&(uint mask) const; //QUrlTwoFlags operator&(E1 f) const; //QUrlTwoFlags operator&(E2 f) const; QUrlTwoFlags operator~() const; // These are necessary to prevent Python comparing object IDs. bool operator==(const QUrlTwoFlags &f) const; %MethodCode sipRes = (sipCpp->operator int() == a0->operator int()); %End bool operator!=(const QUrlTwoFlags &f) const; %MethodCode sipRes = (sipCpp->operator int() != a0->operator int()); %End int __bool__() const; %MethodCode sipRes = (sipCpp->operator int() != 0); %End %ConvertToTypeCode // Allow an instance of the base enums whenever a QUrlTwoFlags is expected. if (sipIsErr == NULL) return (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_E1)) || PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_E2)) || sipCanConvertToType(sipPy, sipType_QUrlTwoFlags, SIP_NO_CONVERTORS)); if (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_E1)) || PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_E2))) { *sipCppPtr = new QUrlTwoFlags(int(SIPLong_AsLong(sipPy))); return sipGetState(sipTransferObj); } *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QUrlTwoFlags, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End }; %End class QUrl { %TypeHeaderCode #include %End %TypeCode #include %End public: enum ParsingMode { TolerantMode, StrictMode, %If (Qt_5_0_0 -) DecodedMode, %End }; QUrl(); %If (Qt_5_0_0 -) QUrl(const QString &url, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) QUrl(const QString &url); %End %If (- Qt_5_0_0) QUrl(const QString &url, QUrl::ParsingMode mode); %End QUrl(const QUrl ©); ~QUrl(); long __hash__() const; %MethodCode if (sipIsAPIEnabled("QUrl", 2, 0)) { #if QT_VERSION >= 0x040700 sipRes = qHash(*sipCpp); #else sipRes = qHash(sipCpp->toString()); #endif } else { // Mimic Python's default behavour. sipRes = _Py_HashPointer(sipSelf); } %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *uni = qpycore_PyObject_FromQString(sipCpp->toString()); if (uni) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QUrl(%R)", uni); #else sipRes = PyString_FromFormat("PyQt4.QtCore.QUrl("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(uni)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif Py_DECREF(uni); } %End %If (Qt_5_0_0 -) enum UrlFormattingOption { None, RemoveScheme, RemovePassword, RemoveUserInfo, RemovePort, RemoveAuthority, RemovePath, RemoveQuery, RemoveFragment, PreferLocalFile, StripTrailingSlash, }; %End %If (Qt_5_0_0 -) typedef QUrlTwoFlags FormattingOptions; %End %If (- Qt_5_0_0) enum FormattingOption { None, RemoveScheme, RemovePassword, RemoveUserInfo, RemovePort, RemoveAuthority, RemovePath, RemoveQuery, RemoveFragment, StripTrailingSlash, }; %End %If (- Qt_5_0_0) typedef QFlags FormattingOptions; %End %If (Qt_5_0_0 -) enum ComponentFormattingOption { PrettyDecoded, EncodeSpaces, EncodeUnicode, EncodeDelimiters, EncodeReserved, DecodeReserved, FullyEncoded, FullyDecoded, }; %End %If (Qt_5_0_0 -) typedef QFlags ComponentFormattingOptions; %End %If (Qt_5_0_0 -) void setUrl(const QString &url, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) void setUrl(const QString &url); %End %If (- Qt_5_0_0) void setUrl(const QString &url, QUrl::ParsingMode mode); %End %If (Qt_5_0_0 -) %If (PyQt_Deprecated_5_0) void setEncodedUrl(const QByteArray &url, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %End %If (- Qt_5_0_0) void setEncodedUrl(const QByteArray &url); %End %If (- Qt_5_0_0) void setEncodedUrl(const QByteArray &url, QUrl::ParsingMode mode); %End bool isValid() const; bool isEmpty() const; void clear(); void setScheme(const QString &scheme); QString scheme() const; %If (Qt_5_0_0 -) void setAuthority(const QString &authority, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) void setAuthority(const QString &authority); %End %If (Qt_5_0_0 -) QString authority(QFlags options = QUrl::PrettyDecoded) const; %End %If (- Qt_5_0_0) QString authority() const; %End %If (Qt_5_0_0 -) void setUserInfo(const QString &userInfo, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) void setUserInfo(const QString &userInfo); %End %If (Qt_5_0_0 -) QString userInfo(QFlags options = QUrl::PrettyDecoded) const; %End %If (- Qt_5_0_0) QString userInfo() const; %End %If (Qt_5_0_0 -) void setUserName(const QString &userName, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) void setUserName(const QString &userName); %End %If (Qt_5_0_0 -) QString userName(QFlags options = QUrl::PrettyDecoded) const; %End %If (- Qt_5_0_0) QString userName() const; %End %If (Qt_5_0_0 -) void setPassword(const QString &password, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) void setPassword(const QString &password); %End %If (Qt_5_0_0 -) QString password(QFlags options = QUrl::PrettyDecoded) const; %End %If (- Qt_5_0_0) QString password() const; %End %If (Qt_5_0_0 -) void setHost(const QString &host, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) void setHost(const QString &host); %End %If (Qt_5_0_0 -) QString host(QFlags options = QUrl::PrettyDecoded) const; %End %If (- Qt_5_0_0) QString host() const; %End void setPort(int port); %If (Qt_5_0_0 -) int port(int defaultPort = -1) const; %End %If (- Qt_5_0_0) int port() const; %End %If (- Qt_5_0_0) int port(int defaultPort) const; %End %If (Qt_5_0_0 -) void setPath(const QString &path, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) void setPath(const QString &path); %End %If (Qt_5_0_0 -) QString path(QFlags options = QUrl::PrettyDecoded) const; %End %If (- Qt_5_0_0) QString path() const; %End %If (PyQt_Deprecated_5_0) void setEncodedQuery(const QByteArray &query); %End %If (PyQt_Deprecated_5_0) QByteArray encodedQuery() const; %End %If (- Qt_5_0_0) void setQueryDelimiters(char valueDelimiter, char pairDelimiter); %End %If (- Qt_5_0_0) char queryValueDelimiter() const; %End %If (- Qt_5_0_0) char queryPairDelimiter() const; %End %If (PyQt_Deprecated_5_0) void setQueryItems(const QList> &query); %End %If (PyQt_Deprecated_5_0) void addQueryItem(const QString &key, const QString &value); %End %If (PyQt_Deprecated_5_0) QList> queryItems() const; %End %If (PyQt_Deprecated_5_0) bool hasQueryItem(const QString &key) const; %End %If (PyQt_Deprecated_5_0) QString queryItemValue(const QString &key) const; %End %If (PyQt_Deprecated_5_0) QStringList allQueryItemValues(const QString &key) const; %End %If (PyQt_Deprecated_5_0) void removeQueryItem(const QString &key); %End %If (PyQt_Deprecated_5_0) void removeAllQueryItems(const QString &key); %End %If (Qt_5_0_0 -) void setFragment(const QString &fragment, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) void setFragment(const QString &fragment); %End %If (Qt_5_0_0 -) QString fragment(QFlags options = QUrl::PrettyDecoded) const; %End %If (- Qt_5_0_0) QString fragment() const; %End QUrl resolved(const QUrl &relative) const; bool isRelative() const; bool isParentOf(const QUrl &url) const; static QUrl fromLocalFile(const QString &localfile); QString toLocalFile() const; %If (Qt_5_0_0 -) QString toString(QUrlTwoFlags options = QUrl::PrettyDecoded) const; %End %If (- Qt_5_0_0) QString toString(QFlags options = QUrl::None) const; %End %If (Qt_5_0_0 -) QByteArray toEncoded(QUrlTwoFlags options = QUrl::FullyEncoded) const; %End %If (- Qt_5_0_0) QByteArray toEncoded(QFlags options = QUrl::None) const; %End %If (Qt_5_0_0 -) static QUrl fromEncoded(const QByteArray &u, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (- Qt_5_0_0) static QUrl fromEncoded(const QByteArray &url); %End %If (- Qt_5_0_0) static QUrl fromEncoded(const QByteArray &url, QUrl::ParsingMode mode); %End void detach(); bool isDetached() const; bool operator<(const QUrl &url) const; bool operator==(const QUrl &url) const; bool operator!=(const QUrl &url) const; static QString fromPercentEncoding(const QByteArray &); static QByteArray toPercentEncoding(const QString &input, const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray()); %If (PyQt_Deprecated_5_0) static QString fromPunycode(const QByteArray &); %End %If (PyQt_Deprecated_5_0) static QByteArray toPunycode(const QString &); %End %If (Qt_4_2_0 -) bool hasQuery() const; %End %If (Qt_4_2_0 -) bool hasFragment() const; %End %If (Qt_4_2_0 -) QString errorString() const; %End %If (Qt_4_2_0 -) static QString fromAce(const QByteArray &); %End %If (Qt_4_2_0 -) static QByteArray toAce(const QString &); %End %If (Qt_4_2_0 -) static QStringList idnWhitelist(); %End %If (Qt_4_2_0 -) static void setIdnWhitelist(const QStringList &); %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) void setEncodedUserName(const QByteArray &userName); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) QByteArray encodedUserName() const; %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) void setEncodedPassword(const QByteArray &password); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) QByteArray encodedPassword() const; %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) void setEncodedHost(const QByteArray &host); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) QByteArray encodedHost() const; %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) void setEncodedPath(const QByteArray &path); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) QByteArray encodedPath() const; %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) void setEncodedQueryItems(const QList> &query); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) void addEncodedQueryItem(const QByteArray &key, const QByteArray &value); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) QList> encodedQueryItems() const; %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) bool hasEncodedQueryItem(const QByteArray &key) const; %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) QByteArray encodedQueryItemValue(const QByteArray &key) const; %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) QList allEncodedQueryItemValues(const QByteArray &key) const; %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) void removeEncodedQueryItem(const QByteArray &key); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) void removeAllEncodedQueryItems(const QByteArray &key); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) void setEncodedFragment(const QByteArray &fragment); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) QByteArray encodedFragment() const; %End %End %If (Qt_4_6_0 -) static QUrl fromUserInput(const QString &userInput); %End %If (Qt_4_8_0 -) void swap(QUrl &other); %End %If (Qt_5_0_0 -) QString topLevelDomain(QFlags options = QUrl::PrettyDecoded) const; %End %If (Qt_4_8_0 - Qt_5_0_0) QString topLevelDomain() const; %End %If (Qt_4_8_0 -) bool isLocalFile() const; %End %If (Qt_5_0_0 -) void setQuery(const QString &query, QUrl::ParsingMode mode = QUrl::TolerantMode); %End %If (Qt_5_0_0 -) void setQuery(const QUrlQuery &query); %End %If (Qt_5_0_0 -) QString query(QFlags options = QUrl::PrettyDecoded) const; %End }; %If (- Qt_5_0_0) QFlags operator|(QUrl::FormattingOption f1, QFlags f2); %End %If (Qt_5_0_0 -) QFlags operator|(QUrl::ComponentFormattingOption f1, QFlags f2); %End QDataStream &operator<<(QDataStream &, const QUrl & /Constrained/); QDataStream &operator>>(QDataStream &, QUrl & /Constrained/); %If (Qt_4_3_0 -) void qSwap(QUrl &value1, QUrl &value2); %End %If (Qt_5_0_0 -) QUrlTwoFlags operator|(QUrl::UrlFormattingOption f1, QUrlTwoFlags f2); %End %If (Qt_5_0_0 -) QUrlTwoFlags operator|(QUrl::ComponentFormattingOption f, QUrlTwoFlags i); %End PyQt-x11-gpl-4.11.4/sip/QtCore/qurlquery.sip0000644000076500000240000000500612536324426020532 0ustar philstaff00000000000000// qurlquery.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) class QUrlQuery { %TypeHeaderCode #include %End public: QUrlQuery(); explicit QUrlQuery(const QUrl &url); explicit QUrlQuery(const QString &queryString); QUrlQuery(const QUrlQuery &other); ~QUrlQuery(); bool operator==(const QUrlQuery &other) const; bool operator!=(const QUrlQuery &other) const; void swap(QUrlQuery &other); bool isEmpty() const; bool isDetached() const; void clear(); QString query(QFlags options = QUrl::PrettyDecoded) const; void setQuery(const QString &queryString); QString toString(QFlags options = QUrl::PrettyDecoded) const; void setQueryDelimiters(QChar valueDelimiter, QChar pairDelimiter); QChar queryValueDelimiter() const; QChar queryPairDelimiter() const; void setQueryItems(const QList> &query); QList> queryItems(QFlags options = QUrl::PrettyDecoded) const; bool hasQueryItem(const QString &key) const; void addQueryItem(const QString &key, const QString &value); void removeQueryItem(const QString &key); QString queryItemValue(const QString &key, QFlags options = QUrl::PrettyDecoded) const; QStringList allQueryItemValues(const QString &key, QFlags options = QUrl::PrettyDecoded) const; void removeAllQueryItems(const QString &key); static QChar defaultQueryValueDelimiter(); static QChar defaultQueryPairDelimiter(); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/quuid.sip0000644000076500000240000001114112536324426017605 0ustar philstaff00000000000000// quuid.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End %If (Qt_5_0_0 -) class QUuid { %TypeHeaderCode #include %End public: enum Variant { VarUnknown, NCS, DCE, Microsoft, Reserved, }; enum Version { VerUnknown, Time, EmbeddedPOSIX, Md5, Name, Random, Sha1, }; QUuid(); QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8); QUuid(const QString &); QUuid(const QByteArray &); long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *uni = qpycore_PyObject_FromQString(sipCpp->toString()); if (uni) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QUuid(%R)", uni); #else sipRes = PyString_FromFormat("PyQt4.QtCore.QUuid("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(uni)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif Py_DECREF(uni); } %End QString toString() const; bool isNull() const; bool operator==(const QUuid &orig) const; bool operator!=(const QUuid &orig) const; bool operator<(const QUuid &other) const; bool operator>(const QUuid &other) const; static QUuid createUuid(); static QUuid createUuidV3(const QUuid &ns, const QByteArray &baseData); static QUuid createUuidV5(const QUuid &ns, const QByteArray &baseData); static QUuid createUuidV3(const QUuid &ns, const QString &baseData); static QUuid createUuidV5(const QUuid &ns, const QString &baseData); QUuid::Variant variant() const; QUuid::Version version() const; QByteArray toByteArray() const; QByteArray toRfc4122() const; static QUuid fromRfc4122(const QByteArray &); }; %End %If (- Qt_5_0_0) struct QUuid { %TypeHeaderCode #include %End enum Variant { VarUnknown, NCS, DCE, Microsoft, Reserved, }; enum Version { VerUnknown, Time, EmbeddedPOSIX, Name, Random, }; QUuid(); QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8); QUuid(const QString &); %If (Qt_4_8_0 -) QUuid(const QByteArray &); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *uni = qpycore_PyObject_FromQString(sipCpp->toString()); if (uni) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QUuid(%R)", uni); #else sipRes = PyString_FromFormat("PyQt4.QtCore.QUuid("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(uni)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif Py_DECREF(uni); } %End QString toString() const; bool isNull() const; bool operator==(const QUuid &orig) const; bool operator!=(const QUuid &orig) const; bool operator<(const QUuid &other) const; bool operator>(const QUuid &other) const; static QUuid createUuid(); QUuid::Variant variant() const; QUuid::Version version() const; operator QString() const; %If (Qt_4_8_0 -) QByteArray toByteArray() const; %End %If (Qt_4_8_0 -) QByteArray toRfc4122() const; %End %If (Qt_4_8_0 -) static QUuid fromRfc4122(const QByteArray &); %End }; %End QDataStream &operator<<(QDataStream &, const QUuid & /Constrained/); QDataStream &operator>>(QDataStream &, QUuid & /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtCore/qvariant.sip0000644000076500000240000002445412536324426020316 0ustar philstaff00000000000000// qvariant.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QVariant /AllowNone,API=QVariant: - 2/ { %TypeHeaderCode #include %End %ConvertToTypeCode if (sipIsErr == NULL) // We can convert everything to a QVariant. return 1; // If it is already a QVariant then just return it. if (Py_TYPE(sipPy) == sipTypeAsPyTypeObject(sipType_QVariant)) { *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QVariant, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; } // Convert it to a QVariant. QVariant var = qpycore_PyObject_AsQVariant(sipPy, sipIsErr); if (*sipIsErr) return 0; *sipCppPtr = new QVariant(var); return sipGetState(sipTransferObj); %End public: enum Type { Invalid, Bool, Int, UInt, LongLong, ULongLong, Double, Char, Map, List, String, StringList, ByteArray, BitArray, Date, Time, DateTime, Url, Locale, Rect, RectF, Size, SizeF, Line, LineF, Point, PointF, RegExp, Font, Pixmap, Brush, Color, Palette, Icon, Image, Polygon, Region, Bitmap, Cursor, SizePolicy, KeySequence, Pen, TextLength, TextFormat, %If (Qt_4_2_0 -) Matrix, %End %If (Qt_4_3_0 -) Transform, %End %If (Qt_4_5_0 -) Hash, %End %If (Qt_4_6_0 -) Matrix4x4, %End %If (Qt_4_6_0 -) Vector2D, %End %If (Qt_4_6_0 -) Vector3D, %End %If (Qt_4_6_0 -) Vector4D, %End %If (Qt_4_6_0 -) Quaternion, %End %If (Qt_4_7_0 -) EasingCurve, %End %If (Qt_5_0_0 -) Uuid, %End %If (Qt_5_0_0 -) ModelIndex, %End %If (Qt_5_0_0 -) PolygonF, %End %If (Qt_5_0_0 -) RegularExpression, %End UserType, }; QVariant(); QVariant(QVariant::Type type /Constrained/); QVariant(int typeOrUserType, const void *copy); QVariant(const QVariant &other); QVariant(SIP_PYOBJECT); %MethodCode int is_err = 0; QVariant var = qpycore_PyObject_AsQVariant(a0, &is_err); if (is_err) sipCpp = 0; else sipCpp = new QVariant(var); %End ~QVariant(); static QVariant fromList(const QList &list); %MethodCode // We don't implement this as a Python ctor to allow an empty Python list to be // handled as a Python object. sipRes = new QVariant(*a0); %End static QVariant fromMap(const QMap &map); %MethodCode // We don't implement this as a Python ctor to allow an empty Python dictionary // to be handled as a Python object. sipRes = new QVariant(*a0); %End QVariant::Type type() const; int userType() const; const char *typeName() const; %If (Qt_5_0_0 -) bool canConvert(int targetTypeId) const; %End %If (- Qt_5_0_0) bool canConvert(QVariant::Type t) const; %End %If (Qt_5_0_0 -) bool convert(int targetTypeId); %End %If (- Qt_5_0_0) bool convert(QVariant::Type t); %End bool isValid() const; bool isNull() const; void clear(); void detach(); bool isDetached() const; int toInt(bool *ok = 0) const; uint toUInt(bool *ok = 0) const; qlonglong toLongLong(bool *ok = 0) const; qulonglong toULongLong(bool *ok = 0) const; bool toBool() const; double toDouble(bool *ok = 0) const; QByteArray toByteArray() const; QBitArray toBitArray() const; QString toString() const; QStringList toStringList() const; QChar toChar() const; QDate toDate() const; QTime toTime() const; QDateTime toDateTime() const; QList toList() const; QMap toMap() const; %If (Qt_4_5_0 -) QHash toHash() const; %End QPoint toPoint() const; QPointF toPointF() const; QSize toSize() const; QSizeF toSizeF() const; QLine toLine() const; QLineF toLineF() const; QRect toRect() const; QRectF toRectF() const; QUrl toUrl() const; QLocale toLocale() const; QRegExp toRegExp() const; SIP_PYOBJECT toPyObject() const; %MethodCode sipRes = qpycore_PyObject_FromQVariant(*sipCpp); %End void load(QDataStream &ds); void save(QDataStream &ds) const; %If (Qt_5_0_0 -) static const char *typeToName(int typeId); %End %If (- Qt_5_0_0) static const char *typeToName(QVariant::Type type); %End static QVariant::Type nameToType(const char *name); void *data(); bool operator==(const QVariant &v) const; bool operator!=(const QVariant &v) const; %If (Qt_4_6_0 -) float toFloat(bool *ok = 0) const; %End %If (Qt_4_6_0 -) qreal toReal(bool *ok = 0) const; %End %If (Qt_4_7_0 -) QEasingCurve toEasingCurve() const; %End %If (Qt_4_8_0 -) void swap(QVariant &other); %End %If (Qt_5_0_0 -) QUuid toUuid() const; %End %If (Qt_5_0_0 -) QModelIndex toModelIndex() const; %End }; typedef QList QVariantList /DocType="Py_v3:list-of-object"/; // class QVariant /AllowNone,API=QVariant:2 -,DocType="object"/ %MappedType QVariant /AllowNone,API=QVariant:2 -,DocType="object"/ { %TypeHeaderCode #include %End %ConvertToTypeCode if (!sipIsErr) // We can always convert to a QVariant. return 1; // If it is a null QVariant then just return it. if (Py_TYPE(sipPy) == sipTypeAsPyTypeObject(sipType_QPyNullVariant)) { *sipCppPtr = reinterpret_cast( sipConvertToType(sipPy, sipType_QPyNullVariant, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; } QVariant var = qpycore_PyObject_AsQVariant(sipPy, sipIsErr); if (*sipIsErr) return 0; *sipCppPtr = new QVariant(var); return sipGetState(sipTransferObj); %End %ConvertFromTypeCode return qpycore_PyObject_FromQVariant(*sipCpp); %End // The following must match the v1 API. enum Type { Invalid, Bool, Int, UInt, LongLong, ULongLong, Double, Char, Map, List, String, StringList, ByteArray, BitArray, Date, Time, DateTime, Url, Locale, Rect, RectF, Size, SizeF, Line, LineF, Point, PointF, RegExp, Font, Pixmap, Brush, Color, Palette, Icon, Image, Polygon, Region, Bitmap, Cursor, SizePolicy, KeySequence, Pen, TextLength, TextFormat, %If (Qt_4_2_0 -) Matrix, %End %If (Qt_4_3_0 -) Transform, %End %If (Qt_4_5_0 -) Hash, %End %If (Qt_4_6_0 -) Matrix4x4, %End %If (Qt_4_6_0 -) Vector2D, %End %If (Qt_4_6_0 -) Vector3D, %End %If (Qt_4_6_0 -) Vector4D, %End %If (Qt_4_6_0 -) Quaternion, %End %If (Qt_4_7_0 -) EasingCurve, %End %If (Qt_5_0_0 -) Uuid, %End %If (Qt_5_0_0 -) ModelIndex, %End %If (Qt_5_0_0 -) PolygonF, %End %If (Qt_5_0_0 -) RegularExpression, %End UserType, }; %If (Qt_5_0_0 -) static const char *typeToName(int typeId); %End %If (- Qt_5_0_0) static const char *typeToName(QVariant::Type type); %End static QVariant::Type nameToType(const char *name); }; %If (Qt_4_5_0 -) typedef QHash QVariantHash /DocType="Py_v3:dict-of-str-object"/; %End QDataStream &operator>>(QDataStream &s, QVariant &p /Constrained/) /API=QVariant: - 2/; typedef QMap QVariantMap /DocType="Py_v3:dict-of-str-object"/; QDataStream &operator<<(QDataStream &s, const QVariant &p /Constrained/) /API=QVariant: - 2/; QDataStream &operator>>(QDataStream &s, QVariant::Type &p /Constrained,In/); QDataStream &operator<<(QDataStream &s, const QVariant::Type p /Constrained/); %If (Qt_4_3_0 -) void qSwap(QVariant &value1, QVariant &value2) /API=QVariant: - 2/; %End // QList is implemented as a Python list. %MappedType QList /DocType="list-of-QVariant.Type"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { QVariant::Type e = sipCpp->at(i); PyObject *eobj; if ((eobj = sipConvertFromEnum(e, sipType_QVariant_Type)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, eobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyList_Check(sipPy)) return 0; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) if (!sipCanConvertToEnum(PyList_GET_ITEM(sipPy, i), sipType_QVariant_Type)) return 0; return 1; } QList *ql = new QList; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { long l = SIPLong_AsLong(PyList_GET_ITEM(sipPy, i)); ql->append(static_cast(l)); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; PyQt-x11-gpl-4.11.4/sip/QtCore/qvariantanimation.sip0000644000076500000240000000445512536324426022215 0ustar philstaff00000000000000// qvariantanimation.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QVariantAnimation : QAbstractAnimation { %TypeHeaderCode #include %End typedef QVector> KeyValues; public: QVariantAnimation(QObject *parent /TransferThis/ = 0); virtual ~QVariantAnimation(); QVariant startValue() const; void setStartValue(const QVariant &value); QVariant endValue() const; void setEndValue(const QVariant &value); QVariant keyValueAt(qreal step) const; void setKeyValueAt(qreal step, const QVariant &value); KeyValues keyValues() const; void setKeyValues(const KeyValues &values); QVariant currentValue() const; virtual int duration() const; void setDuration(int msecs); QEasingCurve easingCurve() const; void setEasingCurve(const QEasingCurve &easing); signals: void valueChanged(const QVariant &value); protected: virtual bool event(QEvent *event); virtual void updateCurrentTime(int); virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); %If (Qt_5_0_0 -) virtual void updateCurrentValue(const QVariant &value); %End %If (- Qt_5_0_0) virtual void updateCurrentValue(const QVariant &value) = 0; %End virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const; private: QVariantAnimation(const QVariantAnimation &); }; %End PyQt-x11-gpl-4.11.4/sip/QtCore/qvector.sip0000644000076500000240000001734412536324426020154 0ustar philstaff00000000000000// qvector.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // QVector is implemented as a Python list. template %MappedType QVector /DocType="list-of-TYPE"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { TYPE *t = new TYPE(sipCpp->at(i)); PyObject *tobj; if ((tobj = sipConvertFromNewType(t, sipType_TYPE, sipTransferObj)) == NULL) { Py_DECREF(l); delete t; return NULL; } PyList_SET_ITEM(l, i, tobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyList_Check(sipPy)) return 0; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) if (!sipCanConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, SIP_NOT_NONE)) return 0; return 1; } QVector *qv = new QVector; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { int state; TYPE *t = reinterpret_cast(sipConvertToType(PyList_GET_ITEM(sipPy, i), sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(t, sipType_TYPE, state); delete qv; return 0; } qv->append(*t); sipReleaseType(t, sipType_TYPE, state); } *sipCppPtr = qv; return sipGetState(sipTransferObj); %End }; // QVector is implemented as a Python list of integers. %MappedType QVector /DocType="list-of-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { PyObject *pobj; // Convert to a Python long to make sure it doesn't get interpreted as // a signed value. if ((pobj = SIPLong_FromLong(sipCpp->value(i))) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return PyList_Check(sipPy); QVector *qv = new QVector; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) qv->append(SIPLong_AsLong(PyList_GET_ITEM(sipPy, i))); *sipCppPtr = qv; return sipGetState(sipTransferObj); %End }; // QVector is implemented as a Python list of integers. %MappedType QVector /DocType="list-of-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { PyObject *pobj; // Convert to a Python long to make sure it doesn't get interpreted as // a signed value. if ((pobj = PyLong_FromUnsignedLong(sipCpp->value(i))) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return PyList_Check(sipPy); QVector *qv = new QVector; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) qv->append(PyLong_AsUnsignedLong(PyList_GET_ITEM(sipPy, i))); *sipCppPtr = qv; return sipGetState(sipTransferObj); %End }; // QVector is implemented as a Python list of floats. %MappedType QVector /DocType="list-of-float"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { PyObject *pobj; if ((pobj = PyFloat_FromDouble(sipCpp->value(i))) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return PyList_Check(sipPy); QVector *ql = new QVector; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) ql->append(PyFloat_AsDouble(PyList_GET_ITEM(sipPy, i))); *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; // QVector > is implemented as a Python list of 2-element tuples. template %MappedType QVector > /DocType="list-of-tuple-of-float-TYPE"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { const QPair &p = sipCpp->at(i); TYPE *pt = new TYPE(p.second); PyObject *pobj; if ((pobj = sipBuildResult(NULL, "(dN)", p.first, pt, sipType_TYPE, sipTransferObj)) == NULL) { Py_DECREF(l); delete pt; return NULL; } PyList_SET_ITEM(l, i, pobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyList_Check(sipPy)) return 0; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { PyObject *tup = PyList_GET_ITEM(sipPy, i); if (PyTuple_Size(tup) != 2) return 0; if (!sipCanConvertToType(PyTuple_GET_ITEM(tup, 1), sipType_TYPE, SIP_NOT_NONE)) return 0; } return 1; } QVector > *qv = new QVector >; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { PyObject *tup = PyList_GET_ITEM(sipPy, i); int state; TYPE *s; QPair p; p.first = PyFloat_AsDouble(PyTuple_GET_ITEM(tup, 0)); s = reinterpret_cast(sipConvertToType(PyTuple_GET_ITEM(tup, 1), sipType_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(s, sipType_TYPE, state); delete qv; return 0; } p.second = *s; qv->append(p); sipReleaseType(s, sipType_TYPE, state); } *sipCppPtr = qv; return sipGetState(sipTransferObj); %End }; PyQt-x11-gpl-4.11.4/sip/QtCore/qwaitcondition.sip0000644000076500000240000000252612536324426021521 0ustar philstaff00000000000000// qwaitcondition.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QWaitCondition { %TypeHeaderCode #include %End public: QWaitCondition(); ~QWaitCondition(); bool wait(QMutex *mutex, unsigned long msecs = ULONG_MAX) /ReleaseGIL/; %If (Qt_4_4_0 -) bool wait(QReadWriteLock *readWriteLock, unsigned long msecs = ULONG_MAX) /ReleaseGIL/; %End void wakeOne(); void wakeAll(); private: QWaitCondition(const QWaitCondition &); }; PyQt-x11-gpl-4.11.4/sip/QtCore/qwineventnotifier.sip0000644000076500000240000000277212536324426022250 0ustar philstaff00000000000000// This is the SIP specification of the QWinEventNotifier class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (WS_WIN) %If (Qt_5_0_0 -) class QWinEventNotifier: QObject { %TypeHeaderCode #include %End public: explicit QWinEventNotifier(QObject *parent /TransferThis/ = 0); explicit QWinEventNotifier(Qt::HANDLE hEvent, QObject *parent /TransferThis/ = 0); ~QWinEventNotifier(); Qt::HANDLE handle() const; bool isEnabled() const; void setHandle(Qt::HANDLE hEvent); public slots: void setEnabled(bool enable); signals: void activated(Qt::HANDLE hEvent); protected: bool event(QEvent *e); private: QWinEventNotifier(const QWinEventNotifier &); }; %End %End PyQt-x11-gpl-4.11.4/sip/QtCore/qxmlstream.sip0000644000076500000240000003645412536324426020671 0ustar philstaff00000000000000// qxmlstream.sip generated by MetaSIP // // This file is part of the QtCore Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QXmlStreamAttribute { %TypeHeaderCode #include %End public: QXmlStreamAttribute(); QXmlStreamAttribute(const QString &qualifiedName, const QString &value); QXmlStreamAttribute(const QString &namespaceUri, const QString &name, const QString &value); QXmlStreamAttribute(const QXmlStreamAttribute &); ~QXmlStreamAttribute(); QStringRef namespaceUri() const; QStringRef name() const; QStringRef qualifiedName() const; QStringRef prefix() const; QStringRef value() const; bool isDefault() const; bool operator==(const QXmlStreamAttribute &other) const; bool operator!=(const QXmlStreamAttribute &other) const; }; %End %If (Qt_4_4_0 -) class QXmlStreamAttributes { %TypeHeaderCode #include %End public: %If (Qt_4_8_0 -) QXmlStreamAttributes(); %End QStringRef value(const QString &namespaceUri, const QString &name) const; QStringRef value(const QString &qualifiedName) const; void append(const QString &namespaceUri, const QString &name, const QString &value); void append(const QString &qualifiedName, const QString &value); void append(const QXmlStreamAttribute &attribute); %If (Qt_4_5_0 -) bool hasAttribute(const QString &qualifiedName) const; %End %If (Qt_4_5_0 -) bool hasAttribute(const QString &namespaceUri, const QString &name) const; %End // Methods inherited from QVector and Python special methods. // Keep in sync with QPolygon and QPolygonF. // This is picked up with "using" by QXmlStreamAttributes. //void append(const QXmlStreamAttribute &value); const QXmlStreamAttribute &at(int i) const; void clear(); bool contains(const QXmlStreamAttribute &value) const; int count(const QXmlStreamAttribute &value) const; int count() const /__len__/; void *data(); // Note the Qt return value is discarded as it would require handwritten code // and seems pretty useless. void fill(const QXmlStreamAttribute &value, int size = -1); QXmlStreamAttribute &first(); int indexOf(const QXmlStreamAttribute &value, int from = 0) const; void insert(int i, const QXmlStreamAttribute &value); bool isEmpty() const; QXmlStreamAttribute &last(); int lastIndexOf(const QXmlStreamAttribute &value, int from = -1) const; // Note the Qt return type is QVector. We can't do the // usual trick because there is no QXmlStreamAttributes ctor that takes a // QVector argument. We could use handwritten code but we // don't bother. //QXmlStreamAttributes mid(int pos, int length = -1) const; void prepend(const QXmlStreamAttribute &value); void remove(int i); void remove(int i, int count); void replace(int i, const QXmlStreamAttribute &value); int size() const; // These are hidden by other implementations in QXmlStreamAttributes. //QXmlStreamAttribute value(int i) const; //QXmlStreamAttribute value(int i, const QXmlStreamAttribute &defaultValue) const; bool operator!=(const QXmlStreamAttributes &other) const; // Note the Qt return type is QVector. We can't do the // usual trick because there is no QXmlStreamAttributes ctor that takes a // QVector argument. We could use handwritten code but we // don't bother. //QXmlStreamAttributes operator+(const QXmlStreamAttributes &other) const; QXmlStreamAttributes &operator+=(const QXmlStreamAttributes &other); QXmlStreamAttributes &operator+=(const QXmlStreamAttribute &value); bool operator==(const QXmlStreamAttributes &other) const; QXmlStreamAttribute &operator[](int i); %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = new QXmlStreamAttribute(sipCpp->operator[]((int)idx)); %End // Some additional Python special methods. void __setitem__(int i, const QXmlStreamAttribute &value); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else (*sipCpp)[a0] = *a1; %End void __setitem__(SIP_PYSLICE slice, const QXmlStreamAttributes &list); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { int vlen = a1->count(); if (vlen != slicelength) { sipBadLengthForSlice(vlen, slicelength); sipIsErr = 1; } else { QVector::const_iterator it = a1->begin(); for (i = 0; i < slicelength; ++i) { (*sipCpp)[start] = *it; start += step; ++it; } } } %End void __delitem__(int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipCpp->remove(a0); %End void __delitem__(SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else for (i = 0; i < slicelength; ++i) { sipCpp->remove(start); start += step - 1; } %End QXmlStreamAttributes &operator[](SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { sipRes = new QXmlStreamAttributes(); for (i = 0; i < slicelength; ++i) { (*sipRes) += (*sipCpp)[start]; start += step; } } %End int __contains__(const QXmlStreamAttribute &value); %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End }; %End %If (Qt_4_4_0 -) class QXmlStreamNamespaceDeclaration { %TypeHeaderCode #include %End public: QXmlStreamNamespaceDeclaration(); QXmlStreamNamespaceDeclaration(const QXmlStreamNamespaceDeclaration &); QXmlStreamNamespaceDeclaration(const QString &prefix, const QString &namespaceUri); ~QXmlStreamNamespaceDeclaration(); QStringRef prefix() const; QStringRef namespaceUri() const; bool operator==(const QXmlStreamNamespaceDeclaration &other) const; bool operator!=(const QXmlStreamNamespaceDeclaration &other) const; }; %End %If (Qt_4_4_0 -) typedef QVector QXmlStreamNamespaceDeclarations; %End %If (Qt_4_4_0 -) class QXmlStreamNotationDeclaration { %TypeHeaderCode #include %End public: QXmlStreamNotationDeclaration(); QXmlStreamNotationDeclaration(const QXmlStreamNotationDeclaration &); ~QXmlStreamNotationDeclaration(); QStringRef name() const; QStringRef systemId() const; QStringRef publicId() const; bool operator==(const QXmlStreamNotationDeclaration &other) const; bool operator!=(const QXmlStreamNotationDeclaration &other) const; }; %End %If (Qt_4_4_0 -) typedef QVector QXmlStreamNotationDeclarations; %End %If (Qt_4_4_0 -) class QXmlStreamEntityDeclaration { %TypeHeaderCode #include %End public: QXmlStreamEntityDeclaration(); QXmlStreamEntityDeclaration(const QXmlStreamEntityDeclaration &); ~QXmlStreamEntityDeclaration(); QStringRef name() const; QStringRef notationName() const; QStringRef systemId() const; QStringRef publicId() const; QStringRef value() const; bool operator==(const QXmlStreamEntityDeclaration &other) const; bool operator!=(const QXmlStreamEntityDeclaration &other) const; }; %End %If (Qt_4_4_0 -) typedef QVector QXmlStreamEntityDeclarations; %End %If (Qt_4_4_0 -) class QXmlStreamEntityResolver { %TypeHeaderCode #include %End public: virtual ~QXmlStreamEntityResolver(); virtual QString resolveUndeclaredEntity(const QString &name); }; %End %If (Qt_4_4_0 -) class QXmlStreamReader { %TypeHeaderCode #include %End public: enum TokenType { NoToken, Invalid, StartDocument, EndDocument, StartElement, EndElement, Characters, Comment, DTD, EntityReference, ProcessingInstruction, }; QXmlStreamReader(); %If (Qt_5_0_0 -) explicit QXmlStreamReader(QIODevice *device); %End %If (- Qt_5_0_0) QXmlStreamReader(QIODevice *device); %End %If (Qt_5_0_0 -) explicit QXmlStreamReader(const QByteArray &data); %End %If (- Qt_5_0_0) QXmlStreamReader(const QByteArray &data); %End %If (Qt_5_0_0 -) explicit QXmlStreamReader(const QString &data); %End %If (- Qt_5_0_0) QXmlStreamReader(const QString &data); %End ~QXmlStreamReader(); void setDevice(QIODevice *device); QIODevice *device() const; void addData(const QByteArray &data); void addData(const QString &data); void clear(); bool atEnd() const; QXmlStreamReader::TokenType readNext(); QXmlStreamReader::TokenType tokenType() const; QString tokenString() const; void setNamespaceProcessing(bool); bool namespaceProcessing() const; bool isStartDocument() const; bool isEndDocument() const; bool isStartElement() const; bool isEndElement() const; bool isCharacters() const; bool isWhitespace() const; bool isCDATA() const; bool isComment() const; bool isDTD() const; bool isEntityReference() const; bool isProcessingInstruction() const; bool isStandaloneDocument() const; QStringRef documentVersion() const; QStringRef documentEncoding() const; qint64 lineNumber() const; qint64 columnNumber() const; qint64 characterOffset() const; QXmlStreamAttributes attributes() const; %If (Qt_4_6_0 -) enum ReadElementTextBehaviour { ErrorOnUnexpectedElement, IncludeChildElements, SkipChildElements, }; %End %If (Qt_5_0_0 -) QString readElementText(QXmlStreamReader::ReadElementTextBehaviour behaviour = QXmlStreamReader::ErrorOnUnexpectedElement); %End %If (- Qt_5_0_0) QString readElementText(); %End %If (Qt_4_6_0 - Qt_5_0_0) QString readElementText(QXmlStreamReader::ReadElementTextBehaviour behaviour); %End QStringRef name() const; QStringRef namespaceUri() const; QStringRef qualifiedName() const; QStringRef prefix() const; QStringRef processingInstructionTarget() const; QStringRef processingInstructionData() const; QStringRef text() const; QXmlStreamNamespaceDeclarations namespaceDeclarations() const; void addExtraNamespaceDeclaration(const QXmlStreamNamespaceDeclaration &extraNamespaceDeclaraction); void addExtraNamespaceDeclarations(const QXmlStreamNamespaceDeclarations &extraNamespaceDeclaractions); QXmlStreamNotationDeclarations notationDeclarations() const; QXmlStreamEntityDeclarations entityDeclarations() const; QStringRef dtdName() const; QStringRef dtdPublicId() const; QStringRef dtdSystemId() const; enum Error { NoError, UnexpectedElementError, CustomError, NotWellFormedError, PrematureEndOfDocumentError, }; void raiseError(const QString &message /DocValue="Py_v3:''"/ = QString()); QString errorString() const; QXmlStreamReader::Error error() const; bool hasError() const; void setEntityResolver(QXmlStreamEntityResolver *resolver /KeepReference/); QXmlStreamEntityResolver *entityResolver() const; %If (Qt_4_6_0 -) bool readNextStartElement(); %End %If (Qt_4_6_0 -) void skipCurrentElement(); %End private: QXmlStreamReader(const QXmlStreamReader &); }; %End %If (Qt_4_4_0 -) class QXmlStreamWriter { %TypeHeaderCode #include %End public: QXmlStreamWriter(); %If (Qt_5_0_0 -) explicit QXmlStreamWriter(QIODevice *device); %End %If (- Qt_5_0_0) QXmlStreamWriter(QIODevice *device); %End %If (Qt_5_0_0 -) explicit QXmlStreamWriter(QByteArray *array); %End %If (- Qt_5_0_0) QXmlStreamWriter(QByteArray *array); %End %If (Qt_5_0_0 -) explicit QXmlStreamWriter(QString *string /Constrained/) /API=QString: - 2/; %End %If (- Qt_5_0_0) QXmlStreamWriter(QString *string /Constrained/) /API=QString: - 2/; %End ~QXmlStreamWriter(); void setDevice(QIODevice *device); QIODevice *device() const; void setCodec(QTextCodec *codec /KeepReference/); void setCodec(const char *codecName); QTextCodec *codec() const; void setAutoFormatting(bool); bool autoFormatting() const; void setAutoFormattingIndent(int spaces); int autoFormattingIndent() const; void writeAttribute(const QString &qualifiedName, const QString &value); void writeAttribute(const QString &namespaceUri, const QString &name, const QString &value); void writeAttribute(const QXmlStreamAttribute &attribute); void writeAttributes(const QXmlStreamAttributes &attributes); void writeCDATA(const QString &text); void writeCharacters(const QString &text); void writeComment(const QString &text); void writeDTD(const QString &dtd); void writeEmptyElement(const QString &qualifiedName); void writeEmptyElement(const QString &namespaceUri, const QString &name); void writeTextElement(const QString &qualifiedName, const QString &text); void writeTextElement(const QString &namespaceUri, const QString &name, const QString &text); void writeEndDocument(); void writeEndElement(); void writeEntityReference(const QString &name); void writeNamespace(const QString &namespaceUri, const QString &prefix /DocValue="Py_v3:''"/ = QString()); void writeDefaultNamespace(const QString &namespaceUri); void writeProcessingInstruction(const QString &target, const QString &data /DocValue="Py_v3:''"/ = QString()); void writeStartDocument(); void writeStartDocument(const QString &version); %If (Qt_4_5_0 -) void writeStartDocument(const QString &version, bool standalone); %End void writeStartElement(const QString &qualifiedName); void writeStartElement(const QString &namespaceUri, const QString &name); void writeCurrentToken(const QXmlStreamReader &reader); %If (Qt_4_8_0 -) bool hasError() const; %End private: QXmlStreamWriter(const QXmlStreamWriter &); }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/0000755000076500000240000000000012536324426015710 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusabstractadaptor.sip0000644000076500000240000000256512536324426022652 0ustar philstaff00000000000000// qdbusabstractadaptor.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDBusAbstractAdaptor : QObject { %TypeHeaderCode #include %End protected: %If (Qt_5_0_0 -) explicit QDBusAbstractAdaptor(QObject *parent /TransferThis/); %End %If (- Qt_5_0_0) QDBusAbstractAdaptor(QObject *parent /TransferThis/); %End public: virtual ~QDBusAbstractAdaptor(); protected: void setAutoRelaySignals(bool enable); bool autoRelaySignals() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusabstractinterface.sip0000644000076500000240000001366412536324426023162 0ustar philstaff00000000000000// qdbusabstractinterface.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDBusAbstractInterface : QObject { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QDBusPendingCallWatcher, &sipType_QDBusPendingCallWatcher, -1, 1}, {sipName_QDBusAbstractInterface, &sipType_QDBusAbstractInterface, 4, 2}, {sipName_QDBusServiceWatcher, &sipType_QDBusServiceWatcher, -1, 3}, {sipName_QDBusAbstractAdaptor, &sipType_QDBusAbstractAdaptor, -1, -1}, {sipName_QDBusConnectionInterface, &sipType_QDBusConnectionInterface, -1, 5}, {sipName_QDBusInterface, &sipType_QDBusInterface, -1, -1}, }; int i = 0; sipType = NULL; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: virtual ~QDBusAbstractInterface(); bool isValid() const; QDBusConnection connection() const; QString service() const; QString path() const; QString interface() const; QDBusError lastError() const; %If (Qt_4_8_0 -) void setTimeout(int timeout); %End %If (Qt_4_8_0 -) int timeout() const; %End QDBusMessage call(const QString &method, const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant()) /ReleaseGIL/; QDBusMessage call(QDBus::CallMode mode, const QString &method, const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant()) /ReleaseGIL/; QDBusMessage callWithArgumentList(QDBus::CallMode mode, const QString &method, const QList &args) /ReleaseGIL/; bool callWithCallback(const QString &method, const QList &args, QObject *receiver, SIP_SLOT returnMethod, SIP_SLOT errorMethod); SIP_PYOBJECT callWithCallback(const QString &method, const QList &args, SIP_PYCALLABLE returnMethod, SIP_PYCALLABLE errorMethod); %MethodCode QObject *qrx; QByteArray return_slot = qpycore_pyqtslot_get_parts(a2, &qrx); if (!return_slot.isNull()) { QObject *error_qrx; QByteArray error_slot = qpycore_pyqtslot_get_parts(a3, &error_qrx); if (!error_slot.isNull()) { if (qrx == error_qrx) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->callWithCallback(*a0, *a1, qrx, return_slot.constData(), error_slot.constData()); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } else { PyErr_SetString(PyExc_ValueError, "the return and error methods must be bound to the same QObject instance"); } } } %End bool callWithCallback(const QString &method, const QList &args, QObject *receiver, SIP_SLOT slot); SIP_PYOBJECT callWithCallback(const QString &method, const QList &args, SIP_PYCALLABLE slot); %MethodCode QObject *qrx; QByteArray slot = qpycore_pyqtslot_get_parts(a2, &qrx); if (!slot.isNull()) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->callWithCallback(*a0, *a1, qrx, slot.constData()); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } %End QDBusPendingCall asyncCall(const QString &method, const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant()); QDBusPendingCall asyncCallWithArgumentList(const QString &method, const QList &args); protected: QDBusAbstractInterface(const QString &service, const QString &path, const char *interface, const QDBusConnection &connection, QObject *parent /TransferThis/); %If (Qt_5_0_0 -) virtual void connectNotify(const QMetaMethod &signal); %End %If (- Qt_5_0_0) virtual void connectNotify(SIP_SIGNAL signal); %End %If (Qt_5_0_0 -) virtual void disconnectNotify(const QMetaMethod &signal); %End %If (- Qt_5_0_0) virtual void disconnectNotify(SIP_SIGNAL signal); %End }; %End %ModuleHeaderCode #include %End %PostInitialisationCode qpydbus_post_init(); %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusargument.sip0000644000076500000240000001161212536324426021307 0ustar philstaff00000000000000// qdbusargument.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDBusArgument { %TypeHeaderCode #include %End %TypeCode #include static PyObject *qdbusargument_add(QDBusArgument *arg, PyObject *obj, int mtype) { int iserr = 0; if (PyLong_CheckExact(obj) #if PY_MAJOR_VERSION < 3 || PyInt_CheckExact(obj) #endif ) { if (mtype == QMetaType::UChar || mtype == QMetaType::UShort || mtype == QMetaType::UInt || mtype == QMetaType::ULongLong) { // Handle the unsigned values. #if defined(HAVE_LONG_LONG) unsigned PY_LONG_LONG v = PyLong_AsUnsignedLongLongMask(obj); #else unsigned long v = PyLong_AsUnsignedLongMask(obj); #endif switch (mtype) { case QMetaType::UChar: *arg << (uchar)v; break; case QMetaType::UShort: *arg << (ushort)v; break; case QMetaType::UInt: *arg << (uint)v; break; case QMetaType::ULongLong: *arg << (qulonglong)v; break; } } else if (mtype == QMetaType::Short || mtype == QMetaType::Int || mtype == QMetaType::LongLong) { // Handle the signed values. #if defined(HAVE_LONG_LONG) PY_LONG_LONG v = PyLong_AsLongLong(obj); #else long v = PyLong_AsLong(obj); #endif switch (mtype) { case QMetaType::Short: *arg << (short)v; break; case QMetaType::Int: *arg << (int)v; break; case QMetaType::LongLong: *arg << (qlonglong)v; break; } } else { PyErr_Format(PyExc_ValueError, "%d is an invalid QMetaType::Type for an interger object", mtype); iserr = 1; } } else if (mtype == QMetaType::QStringList) { // A QStringList has to be handled explicitly to prevent it being seen // as a vialiant list. int value_state; QStringList *qsl = reinterpret_cast( sipForceConvertToType(obj, sipType_QStringList, 0, SIP_NOT_NONE, &value_state, &iserr)); if (!iserr) { arg->beginArray(QMetaType::QString); for (int i = 0; i < qsl->count(); ++i) *arg << qsl->at(i); arg->endArray(); sipReleaseType(qsl, sipType_QStringList, value_state); } } else { int value_state; QVariant *qv = reinterpret_cast( sipForceConvertToType(obj, sipType_QVariant, 0, SIP_NOT_NONE, &value_state, &iserr)); if (!iserr) { // This is an internal method. If it proves to be a problem then we // will have to handle each type explicitly. arg->appendVariant(*qv); sipReleaseType(qv, sipType_QVariant, value_state); } } if (iserr) return 0; Py_INCREF(Py_None); return Py_None; } %End public: QDBusArgument(); QDBusArgument(const QDBusArgument &other); QDBusArgument(SIP_PYOBJECT arg, int id = QMetaType::Int); %MethodCode sipCpp = new QDBusArgument(); PyObject *res = qdbusargument_add(sipCpp, a0, a1); if (res) { Py_DECREF(res); } else { delete sipCpp; sipCpp = 0; } %End ~QDBusArgument(); SIP_PYOBJECT add(SIP_PYOBJECT arg, int id = QMetaType::Int) /DocType=""/; %MethodCode sipRes = qdbusargument_add(sipCpp, a0, a1); %End void beginStructure(); void endStructure(); void beginArray(int id); void endArray(); void beginMap(int kid, int vid); void endMap(); void beginMapEntry(); void endMapEntry(); }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusconnection.sip0000644000076500000240000002623212536324426021630 0ustar philstaff00000000000000// qdbusconnection.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) %ModuleCode #include %End %End %If (Qt_4_7_0 -) namespace QDBus { %TypeHeaderCode #include %End enum CallMode { NoBlock, Block, BlockWithGui, AutoDetect, }; }; %End %If (Qt_4_7_0 -) class QDBusConnection { %TypeHeaderCode #include %End public: enum BusType { SessionBus, SystemBus, ActivationBus, }; enum RegisterOption { ExportAdaptors, ExportScriptableSlots, ExportScriptableSignals, ExportScriptableProperties, ExportScriptableInvokables, ExportScriptableContents, ExportNonScriptableSlots, ExportNonScriptableSignals, ExportNonScriptableProperties, ExportNonScriptableInvokables, ExportNonScriptableContents, ExportAllSlots, ExportAllSignals, ExportAllProperties, ExportAllInvokables, ExportAllContents, ExportAllSignal, ExportChildObjects, }; enum UnregisterMode { UnregisterNode, UnregisterTree, }; typedef QFlags RegisterOptions; %If (Qt_4_8_0 -) enum ConnectionCapability { UnixFileDescriptorPassing, }; %End %If (Qt_4_8_0 -) typedef QFlags ConnectionCapabilities; %End %If (Qt_5_0_0 -) explicit QDBusConnection(const QString &name); %End %If (- Qt_5_0_0) QDBusConnection(const QString &name); %End QDBusConnection(const QDBusConnection &other); ~QDBusConnection(); bool isConnected() const; QString baseService() const; QDBusError lastError() const; QString name() const; %If (Qt_4_8_0 -) QFlags connectionCapabilities() const; %End bool send(const QDBusMessage &message) const; bool callWithCallback(const QDBusMessage &message, QObject *receiver, SIP_SLOT returnMethod, SIP_SLOT errorMethod, int timeout = -1) const; SIP_PYOBJECT callWithCallback(const QDBusMessage &message, SIP_PYCALLABLE returnMethod, SIP_PYCALLABLE errorMethod, int timeout = -1); %MethodCode QObject *qrx; QByteArray return_slot = qpycore_pyqtslot_get_parts(a1, &qrx); if (!return_slot.isNull()) { QObject *error_qrx; QByteArray error_slot = qpycore_pyqtslot_get_parts(a2, &error_qrx); if (!error_slot.isNull()) { if (qrx == error_qrx) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->callWithCallback(*a0, qrx, return_slot.constData(), error_slot.constData(), a3); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } else { PyErr_SetString(PyExc_ValueError, "the return and error methods must be bound to the same QObject instance"); } } } %End bool callWithCallback(const QDBusMessage &message, QObject *receiver, SIP_SLOT slot, int timeout = -1) const; SIP_PYOBJECT callWithCallback(const QDBusMessage &message, SIP_PYCALLABLE slot, int timeout = -1); %MethodCode QObject *qrx; QByteArray slot = qpycore_pyqtslot_get_parts(a1, &qrx); if (!slot.isNull()) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->callWithCallback(*a0, qrx, slot.constData(), a2); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } %End QDBusMessage call(const QDBusMessage &message, QDBus::CallMode mode = QDBus::Block, int timeout = -1) const /ReleaseGIL/; QDBusPendingCall asyncCall(const QDBusMessage &message, int timeout = -1) const; bool connect(const QString &service, const QString &path, const QString &interface, const QString &name, QObject *receiver, SIP_SLOT slot); SIP_PYOBJECT connect(const QString &service, const QString &path, const QString &interface, const QString &name, SIP_PYCALLABLE slot); %MethodCode QObject *qrx; QByteArray slot = qpycore_pyqtslot_get_parts(a4, &qrx); if (!slot.isNull()) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->connect(*a0, *a1, *a2, *a3, qrx, slot.constData()); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } %End bool connect(const QString &service, const QString &path, const QString &interface, const QString &name, const QString &signature, QObject *receiver, SIP_SLOT slot); SIP_PYOBJECT connect(const QString &service, const QString &path, const QString &interface, const QString &name, const QString &signature, SIP_PYCALLABLE slot); %MethodCode QObject *qrx; QByteArray slot = qpycore_pyqtslot_get_parts(a5, &qrx); if (!slot.isNull()) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->connect(*a0, *a1, *a2, *a3, *a4, qrx, slot.constData()); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } %End bool connect(const QString &service, const QString &path, const QString &interface, const QString &name, const QStringList &argumentMatch, const QString &signature, QObject *receiver, SIP_SLOT slot); SIP_PYOBJECT connect(const QString &service, const QString &path, const QString &interface, const QString &name, const QStringList &argumentMatch, const QString &signature, SIP_PYCALLABLE slot); %MethodCode QObject *qrx; QByteArray slot = qpycore_pyqtslot_get_parts(a6, &qrx); if (!slot.isNull()) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->connect(*a0, *a1, *a2, *a3, *a4, *a5, qrx, slot.constData()); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } %End bool disconnect(const QString &service, const QString &path, const QString &interface, const QString &name, QObject *receiver, SIP_SLOT slot); SIP_PYOBJECT disconnect(const QString &service, const QString &path, const QString &interface, const QString &name, SIP_PYCALLABLE slot); %MethodCode QObject *qrx; QByteArray slot = qpycore_pyqtslot_get_parts(a4, &qrx); if (!slot.isNull()) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->disconnect(*a0, *a1, *a2, *a3, qrx, slot.constData()); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } %End bool disconnect(const QString &service, const QString &path, const QString &interface, const QString &name, const QString &signature, QObject *receiver, SIP_SLOT slot); SIP_PYOBJECT disconnect(const QString &service, const QString &path, const QString &interface, const QString &name, const QString &signature, SIP_PYCALLABLE slot); %MethodCode QObject *qrx; QByteArray slot = qpycore_pyqtslot_get_parts(a5, &qrx); if (!slot.isNull()) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->disconnect(*a0, *a1, *a2, *a3, *a4, qrx, slot.constData()); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } %End bool disconnect(const QString &service, const QString &path, const QString &interface, const QString &name, const QStringList &argumentMatch, const QString &signature, QObject *receiver, SIP_SLOT slot); SIP_PYOBJECT disconnect(const QString &service, const QString &path, const QString &interface, const QString &name, const QStringList &argumentMatch, const QString &signature, SIP_PYCALLABLE slot); %MethodCode QObject *qrx; QByteArray slot = qpycore_pyqtslot_get_parts(a6, &qrx); if (!slot.isNull()) { bool ok; Py_BEGIN_ALLOW_THREADS ok = sipCpp->disconnect(*a0, *a1, *a2, *a3, *a4, *a5, qrx, slot.constData()); Py_END_ALLOW_THREADS sipRes = PyBool_FromLong(ok); } %End bool registerObject(const QString &path, QObject *object, QDBusConnection::RegisterOptions options = QDBusConnection::ExportAdaptors); void unregisterObject(const QString &path, QDBusConnection::UnregisterMode mode = QDBusConnection::UnregisterNode); QObject *objectRegisteredAt(const QString &path) const; bool registerService(const QString &serviceName); bool unregisterService(const QString &serviceName); QDBusConnectionInterface *interface() const; static QDBusConnection connectToBus(QDBusConnection::BusType type, const QString &name) /ReleaseGIL/; static QDBusConnection connectToBus(const QString &address, const QString &name) /ReleaseGIL/; %If (Qt_4_8_0 -) static QDBusConnection connectToPeer(const QString &address, const QString &name) /ReleaseGIL/; %End static void disconnectFromBus(const QString &name) /ReleaseGIL/; %If (Qt_4_8_0 -) static void disconnectFromPeer(const QString &name) /ReleaseGIL/; %End %If (Qt_4_8_0 -) static QByteArray localMachineId(); %End static QDBusConnection sessionBus(); static QDBusConnection systemBus(); static QDBusConnection sender(); }; %End %If (Qt_4_7_0 -) QFlags operator|(QDBusConnection::RegisterOption f1, QFlags f2); %End %If (Qt_4_7_0 -) QFlags operator|(QDBusConnection::RegisterOption f1, QDBusConnection::RegisterOption f2); %End %ModuleHeaderCode extern QByteArray (*qpycore_pyqtslot_get_parts)(PyObject *, QObject **); extern PyObject *(*qpycore_qvariant_value)(QVariant &, PyObject *); %End %ModuleCode QByteArray (*qpycore_pyqtslot_get_parts)(PyObject *, QObject **); PyObject *(*qpycore_qvariant_value)(QVariant &, PyObject *); %End %PostInitialisationCode // Import helpers from the QtCore module. qpycore_pyqtslot_get_parts = (QByteArray (*)(PyObject *, QObject **))sipImportSymbol("qpycore_pyqtslot_get_parts"); qpycore_qvariant_value = (PyObject *(*)(QVariant &, PyObject *))sipImportSymbol("qpycore_qvariant_value"); %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusconnectioninterface.sip0000644000076500000240000000604112536324426023505 0ustar philstaff00000000000000// qdbusconnectioninterface.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDBusConnectionInterface : QDBusAbstractInterface { %TypeHeaderCode #include %End QDBusConnectionInterface(const QDBusConnection &connection, QObject *parent /TransferThis/); virtual ~QDBusConnectionInterface(); public: enum ServiceQueueOptions { DontQueueService, QueueService, ReplaceExistingService, }; enum ServiceReplacementOptions { DontAllowReplacement, AllowReplacement, }; enum RegisterServiceReply { ServiceNotRegistered, ServiceRegistered, ServiceQueued, }; QDBusReply registeredServiceNames() const /ReleaseGIL/; QDBusReply isServiceRegistered(const QString &serviceName) const /ReleaseGIL/; QDBusReply serviceOwner(const QString &name) const /ReleaseGIL/; QDBusReply unregisterService(const QString &serviceName) /ReleaseGIL/; QDBusReply registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = QDBusConnectionInterface::DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = QDBusConnectionInterface::DontAllowReplacement) /ReleaseGIL/; QDBusReply servicePid(const QString &serviceName) const /ReleaseGIL/; QDBusReply serviceUid(const QString &serviceName) const /ReleaseGIL/; QDBusReply startService(const QString &name) /ReleaseGIL/; signals: void serviceRegistered(const QString &service); void serviceUnregistered(const QString &service); void serviceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner); void callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call); protected: %If (Qt_5_0_0 -) virtual void connectNotify(const QMetaMethod &); %End %If (- Qt_5_0_0) virtual void connectNotify(SIP_SIGNAL); %End %If (Qt_5_0_0 -) virtual void disconnectNotify(const QMetaMethod &); %End %If (- Qt_5_0_0) virtual void disconnectNotify(SIP_SIGNAL); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbuserror.sip0000644000076500000240000000364112536324426020621 0ustar philstaff00000000000000// qdbuserror.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDBusError { %TypeHeaderCode #include %End public: enum ErrorType { NoError, Other, Failed, NoMemory, ServiceUnknown, NoReply, BadAddress, NotSupported, LimitsExceeded, AccessDenied, NoServer, Timeout, NoNetwork, AddressInUse, Disconnected, InvalidArgs, UnknownMethod, TimedOut, InvalidSignature, UnknownInterface, InternalError, UnknownObject, InvalidService, InvalidObjectPath, InvalidInterface, InvalidMember, %If (Qt_5_0_0 -) UnknownProperty, %End %If (Qt_5_0_0 -) PropertyReadOnly, %End }; QDBusError(const QDBusError &other); QDBusError::ErrorType type() const; QString name() const; QString message() const; bool isValid() const; static QString errorString(QDBusError::ErrorType error); }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusextratypes.sip0000644000076500000240000000716612536324426021706 0ustar philstaff00000000000000// qdbusextratypes.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) %ModuleCode #include %End %End %If (Qt_5_0_0 -) class QDBusObjectPath { %TypeHeaderCode #include %End public: QDBusObjectPath(); explicit QDBusObjectPath(const QString &objectPath); QString path() const; void setPath(const QString &objectPath); long __hash__() const; %MethodCode sipRes = qHash(*sipCpp, 0); %End }; %End %If (Qt_4_7_0 - Qt_5_0_0) class QDBusObjectPath : private QString { %TypeHeaderCode #include %End %TypeCode #include %End public: QDBusObjectPath(); explicit QDBusObjectPath(const QString &path); QString path() const; void setPath(const QString &path); long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End }; %End %If (Qt_4_7_0 -) bool operator==(const QDBusObjectPath &lhs, const QDBusObjectPath &rhs); %End %If (Qt_4_7_0 -) bool operator!=(const QDBusObjectPath &lhs, const QDBusObjectPath &rhs); %End %If (Qt_4_7_0 -) bool operator<(const QDBusObjectPath &lhs, const QDBusObjectPath &rhs); %End %If (Qt_5_0_0 -) class QDBusSignature { %TypeHeaderCode #include %End public: QDBusSignature(); explicit QDBusSignature(const QString &dBusSignature); QString signature() const; void setSignature(const QString &dBusSignature); long __hash__() const; %MethodCode sipRes = qHash(*sipCpp, 0); %End }; %End %If (Qt_4_7_0 - Qt_5_0_0) class QDBusSignature : private QString { %TypeHeaderCode #include %End %TypeCode #include %End public: QDBusSignature(); explicit QDBusSignature(const QString &signature); QString signature() const; void setSignature(const QString &signature); long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End }; %End %If (Qt_4_7_0 -) bool operator==(const QDBusSignature &lhs, const QDBusSignature &rhs); %End %If (Qt_4_7_0 -) bool operator!=(const QDBusSignature &lhs, const QDBusSignature &rhs); %End %If (Qt_4_7_0 -) bool operator<(const QDBusSignature &lhs, const QDBusSignature &rhs); %End %If (Qt_5_0_0 -) class QDBusVariant { %TypeHeaderCode #include %End public: QDBusVariant(); explicit QDBusVariant(const QVariant &dBusVariant); QVariant variant() const; void setVariant(const QVariant &dBusVariant); }; %End %If (Qt_4_7_0 - Qt_5_0_0) class QDBusVariant : private QVariant { %TypeHeaderCode #include %End public: QDBusVariant(); explicit QDBusVariant(const QVariant &variant); QVariant variant() const; void setVariant(const QVariant &variant); }; %End %If (Qt_4_7_0 -) bool operator==(const QDBusVariant &v1, const QDBusVariant &v2); %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusinterface.sip0000644000076500000240000000243412536324426021427 0ustar philstaff00000000000000// qdbusinterface.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDBusInterface : QDBusAbstractInterface { %TypeHeaderCode #include %End public: QDBusInterface(const QString &service, const QString &path, const QString &interface = QString(), const QDBusConnection &connection = QDBusConnection::sessionBus(), QObject *parent = 0); virtual ~QDBusInterface(); }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusmessage.sip0000644000076500000240000000526412536324426021117 0ustar philstaff00000000000000// qdbusmessage.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDBusMessage { %TypeHeaderCode #include %End public: enum MessageType { InvalidMessage, MethodCallMessage, ReplyMessage, ErrorMessage, SignalMessage, }; QDBusMessage(); QDBusMessage(const QDBusMessage &other); ~QDBusMessage(); static QDBusMessage createSignal(const QString &path, const QString &interface, const QString &name); static QDBusMessage createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method); static QDBusMessage createError(const QString &name, const QString &msg); static QDBusMessage createError(const QDBusError &error); static QDBusMessage createError(QDBusError::ErrorType type, const QString &msg); QDBusMessage createReply(const QList &arguments = QList()) const; QDBusMessage createReply(const QVariant &argument) const; QDBusMessage createErrorReply(const QString name, const QString &msg) const; QDBusMessage createErrorReply(const QDBusError &error) const; QDBusMessage createErrorReply(QDBusError::ErrorType type, const QString &msg) const; QString service() const; QString path() const; QString interface() const; QString member() const; QString errorName() const; QString errorMessage() const; QDBusMessage::MessageType type() const; QString signature() const; bool isReplyRequired() const; void setDelayedReply(bool enable) const; bool isDelayedReply() const; void setAutoStartService(bool enable); bool autoStartService() const; void setArguments(const QList &arguments); QList arguments() const; QDBusMessage &operator<<(const QVariant &arg); }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbuspendingcall.sip0000644000076500000240000000340112536324426021742 0ustar philstaff00000000000000// qdbuspendingcall.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDBusPendingCall { %TypeHeaderCode #include %End public: QDBusPendingCall(const QDBusPendingCall &other); ~QDBusPendingCall(); static QDBusPendingCall fromError(const QDBusError &error); static QDBusPendingCall fromCompletedCall(const QDBusMessage &message); %If (Qt_5_0_0 -) void swap(QDBusPendingCall &other); %End private: QDBusPendingCall(); }; %End %If (Qt_4_7_0 -) class QDBusPendingCallWatcher : QObject, QDBusPendingCall { %TypeHeaderCode #include %End public: QDBusPendingCallWatcher(const QDBusPendingCall &call, QObject *parent /TransferThis/ = 0); virtual ~QDBusPendingCallWatcher(); bool isFinished() const; void waitForFinished() /ReleaseGIL/; signals: void finished(QDBusPendingCallWatcher *self); }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusservicewatcher.sip0000644000076500000240000000522612536324426022507 0ustar philstaff00000000000000// qdbusservicewatcher.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) %ModuleCode #include %End %End %If (Qt_4_7_0 -) class QDBusServiceWatcher : QObject { %TypeHeaderCode #include %End public: enum WatchModeFlag { WatchForRegistration, WatchForUnregistration, WatchForOwnerChange, }; typedef QFlags WatchMode; explicit QDBusServiceWatcher(QObject *parent /TransferThis/ = 0); QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, QDBusServiceWatcher::WatchMode watchMode = QDBusServiceWatcher::WatchForOwnerChange, QObject *parent /TransferThis/ = 0); virtual ~QDBusServiceWatcher(); QStringList watchedServices() const; void setWatchedServices(const QStringList &services); void addWatchedService(const QString &newService); bool removeWatchedService(const QString &service); QFlags watchMode() const; void setWatchMode(QFlags mode); QDBusConnection connection() const; void setConnection(const QDBusConnection &connection); signals: void serviceRegistered(const QString &service); void serviceUnregistered(const QString &service); void serviceOwnerChanged(const QString &service, const QString &oldOwner, const QString &newOwner); private: QDBusServiceWatcher(const QDBusServiceWatcher &); }; %End %If (Qt_4_7_0 -) QFlags operator|(QDBusServiceWatcher::WatchModeFlag f1, QFlags f2); %End %If (Qt_4_7_0 -) QFlags operator|(QDBusServiceWatcher::WatchModeFlag f1, QDBusServiceWatcher::WatchModeFlag f2); %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qdbusunixfiledescriptor.sip0000644000076500000240000000271212536324426023410 0ustar philstaff00000000000000// qdbusunixfiledescriptor.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_8_0 -) class QDBusUnixFileDescriptor { %TypeHeaderCode #include %End public: QDBusUnixFileDescriptor(); explicit QDBusUnixFileDescriptor(int fileDescriptor); QDBusUnixFileDescriptor(const QDBusUnixFileDescriptor &other); ~QDBusUnixFileDescriptor(); bool isValid() const; int fileDescriptor() const; void setFileDescriptor(int fileDescriptor); static bool isSupported(); %If (Qt_5_0_0 -) void swap(QDBusUnixFileDescriptor &other); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qpydbuspendingreply.sip0000644000076500000240000000333612536324426022542 0ustar philstaff00000000000000// This is the SIP specification of the QPyDBusPendingReply class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QPyDBusPendingReply : QDBusPendingCall /PyName=QDBusPendingReply/ { %TypeHeaderCode #include %End public: QPyDBusPendingReply(); QPyDBusPendingReply(const QPyDBusPendingReply &other); QPyDBusPendingReply(const QDBusPendingCall &call); QPyDBusPendingReply(const QDBusMessage &reply); // The /ReleaseGIL/ annotation is needed because QDBusPendingCall has an // internal mutex. QVariant argumentAt(int index) const /ReleaseGIL/; QDBusError error() const /ReleaseGIL/; bool isError() const /ReleaseGIL/; bool isFinished() const /ReleaseGIL/; bool isValid() const /ReleaseGIL/; QDBusMessage reply() const /ReleaseGIL/; void waitForFinished() /ReleaseGIL/; SIP_PYOBJECT value(SIP_PYOBJECT type /DocValue="None"/ = 0) const /HoldGIL/; }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/qpydbusreply.sip0000644000076500000240000001227112536324426021173 0ustar philstaff00000000000000// This is the SIP specification of the QPyDBusReply class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QPyDBusReply /PyName=QDBusReply/ { %TypeHeaderCode #include %End public: QPyDBusReply(const QDBusMessage &reply) /HoldGIL/; QPyDBusReply(const QDBusPendingCall &call) /HoldGIL/; QPyDBusReply(const QDBusError &error); QPyDBusReply(const QPyDBusReply &other) /HoldGIL/; ~QPyDBusReply() /HoldGIL/; const QDBusError &error() const /HoldGIL/; bool isValid() const /HoldGIL/; SIP_PYOBJECT value(SIP_PYOBJECT type /DocValue="None"/ = 0) const /HoldGIL/; }; template %MappedType QDBusReply /DocType="QDBusReply"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode PyObject *value_obj; if (sipCpp->isValid()) { // Convert the value to a Python object. TYPE *value = new TYPE(sipCpp->value()); if ((value_obj = sipConvertFromNewType(value, sipType_TYPE, NULL)) == NULL) { delete value; return NULL; } } else { value_obj = 0; } QPyDBusReply *reply = new QPyDBusReply(value_obj, sipCpp->isValid(), sipCpp->error()); PyObject *reply_obj = sipConvertFromNewType(reply, sipType_QPyDBusReply, sipTransferObj); if (reply_obj == NULL) { delete reply; return NULL; } return reply_obj; %End %ConvertToTypeCode // We never create a QDBusReply from Python. return 0; %End }; %MappedType QDBusReply /DocType="QDBusReply"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode Py_INCREF(Py_None); QPyDBusReply *reply = new QPyDBusReply(Py_None, sipCpp->isValid(), sipCpp->error()); PyObject *reply_obj = sipConvertFromNewType(reply, sipType_QPyDBusReply, sipTransferObj); if (reply_obj == NULL) { delete reply; return NULL; } return reply_obj; %End %ConvertToTypeCode // We never create a QDBusReply from Python. return 0; %End }; %MappedType QDBusReply /DocType="QDBusReply"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode PyObject *value_obj; if (sipCpp->isValid()) { if ((value_obj = PyBool_FromLong(sipCpp->value())) == NULL) return NULL; } else { value_obj = 0; } QPyDBusReply *reply = new QPyDBusReply(value_obj, sipCpp->isValid(), sipCpp->error()); PyObject *reply_obj = sipConvertFromNewType(reply, sipType_QPyDBusReply, sipTransferObj); if (reply_obj == NULL) { delete reply; return NULL; } return reply_obj; %End %ConvertToTypeCode // We never create a QDBusReply from Python. return 0; %End }; %MappedType QDBusReply /DocType="QDBusReply"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode PyObject *value_obj; if (sipCpp->isValid()) { if ((value_obj = PyLong_FromUnsignedLong(sipCpp->value())) == NULL) return NULL; } else { value_obj = 0; } QPyDBusReply *reply = new QPyDBusReply(value_obj, sipCpp->isValid(), sipCpp->error()); PyObject *reply_obj = sipConvertFromNewType(reply, sipType_QPyDBusReply, sipTransferObj); if (reply_obj == NULL) { delete reply; return NULL; } return reply_obj; %End %ConvertToTypeCode // We never create a QDBusReply from Python. return 0; %End }; %MappedType QDBusReply /DocType="QDBusReply"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode PyObject *value_obj; if (sipCpp->isValid()) { if ((value_obj = sipConvertFromEnum(sipCpp->value(), sipType_QDBusConnectionInterface_RegisterServiceReply)) == NULL) return NULL; } else { value_obj = 0; } QPyDBusReply *reply = new QPyDBusReply(value_obj, sipCpp->isValid(), sipCpp->error()); PyObject *reply_obj = sipConvertFromNewType(reply, sipType_QPyDBusReply, sipTransferObj); if (reply_obj == NULL) { delete reply; return NULL; } return reply_obj; %End %ConvertToTypeCode // We never create a QDBusReply from Python. return 0; %End }; %End PyQt-x11-gpl-4.11.4/sip/QtDBus/QtDBusmod.sip0000644000076500000240000000441012536324426020266 0ustar philstaff00000000000000// QtDBusmod.sip generated by MetaSIP // // This file is part of the QtDBus Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtDBus, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qdbusabstractadaptor.sip %Include qdbusabstractinterface.sip %Include qdbusargument.sip %Include qdbusconnection.sip %Include qdbusconnectioninterface.sip %Include qdbuserror.sip %Include qdbusextratypes.sip %Include qdbusinterface.sip %Include qdbusmessage.sip %Include qdbuspendingcall.sip %Include qdbusservicewatcher.sip %Include qdbusunixfiledescriptor.sip %Include qpydbuspendingreply.sip %Include qpydbusreply.sip PyQt-x11-gpl-4.11.4/sip/QtDeclarative/0000755000076500000240000000000012536324426017276 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativecomponent.sip0000644000076500000240000000432512536324426024406 0ustar philstaff00000000000000// qdeclarativecomponent.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeComponent : QObject { %TypeHeaderCode #include %End public: QDeclarativeComponent(QDeclarativeEngine *, QObject *parent /TransferThis/ = 0); QDeclarativeComponent(QDeclarativeEngine *, const QString &fileName, QObject *parent /TransferThis/ = 0); QDeclarativeComponent(QDeclarativeEngine *, const QUrl &url, QObject *parent /TransferThis/ = 0); virtual ~QDeclarativeComponent(); enum Status { Null, Ready, Loading, Error, }; QDeclarativeComponent::Status status() const; bool isNull() const; bool isReady() const; bool isError() const; bool isLoading() const; QList errors() const; qreal progress() const; QUrl url() const; virtual QObject *create(QDeclarativeContext *context = 0) /Factory/; virtual QObject *beginCreate(QDeclarativeContext *) /Factory/; virtual void completeCreate(); void loadUrl(const QUrl &url); void setData(const QByteArray &, const QUrl &baseUrl); QDeclarativeContext *creationContext() const; signals: void statusChanged(QDeclarativeComponent::Status); void progressChanged(qreal); private: QDeclarativeComponent(const QDeclarativeComponent &); }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativecontext.sip0000644000076500000240000000351012536324426024063 0ustar philstaff00000000000000// qdeclarativecontext.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeContext : QObject { %TypeHeaderCode #include %End public: QDeclarativeContext(QDeclarativeEngine *engine, QObject *parent /TransferThis/ = 0); QDeclarativeContext(QDeclarativeContext *context, QObject *parent /TransferThis/ = 0); virtual ~QDeclarativeContext(); bool isValid() const; QDeclarativeEngine *engine() const; QDeclarativeContext *parentContext() const; QObject *contextObject() const; void setContextObject(QObject * /KeepReference/); QVariant contextProperty(const QString &) const; void setContextProperty(const QString &, QObject * /KeepReference/); void setContextProperty(const QString &, const QVariant &); QUrl resolvedUrl(const QUrl &); void setBaseUrl(const QUrl &); QUrl baseUrl() const; private: QDeclarativeContext(const QDeclarativeContext &); }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativeengine.sip0000644000076500000240000000740412536324426023652 0ustar philstaff00000000000000// qdeclarativeengine.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeEngine : QObject { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QDeclarativeView, &sipType_QDeclarativeView, -1, 1}, {sipName_QDeclarativeEngine, &sipType_QDeclarativeEngine, -1, 2}, {sipName_QDeclarativeComponent, &sipType_QDeclarativeComponent, -1, 3}, {sipName_QDeclarativeItem, &sipType_QDeclarativeItem, -1, 4}, {sipName_QDeclarativeContext, &sipType_QDeclarativeContext, -1, -1}, }; int i = 0; sipType = NULL; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: QDeclarativeEngine(QObject *parent /TransferThis/ = 0); virtual ~QDeclarativeEngine(); QDeclarativeContext *rootContext() const /KeepReference/; void clearComponentCache(); QStringList importPathList() const; void setImportPathList(const QStringList &paths); void addImportPath(const QString &dir); QStringList pluginPathList() const; void setPluginPathList(const QStringList &paths); void addPluginPath(const QString &dir); bool importPlugin(const QString &filePath, const QString &uri, QString *errorString /Out/); void setNetworkAccessManagerFactory(QDeclarativeNetworkAccessManagerFactory * /KeepReference/); QDeclarativeNetworkAccessManagerFactory *networkAccessManagerFactory() const; QNetworkAccessManager *networkAccessManager() const; void addImageProvider(const QString &id, QDeclarativeImageProvider *); QDeclarativeImageProvider *imageProvider(const QString &id) const; void removeImageProvider(const QString &id); void setOfflineStoragePath(const QString &dir); QString offlineStoragePath() const; QUrl baseUrl() const; void setBaseUrl(const QUrl &); bool outputWarningsToStandardError() const; void setOutputWarningsToStandardError(bool); static QDeclarativeContext *contextForObject(const QObject *); static void setContextForObject(QObject *, QDeclarativeContext *); enum ObjectOwnership { CppOwnership, JavaScriptOwnership, }; static void setObjectOwnership(QObject *, QDeclarativeEngine::ObjectOwnership); static QDeclarativeEngine::ObjectOwnership objectOwnership(QObject *); signals: void quit(); void warnings(const QList &warnings); private: QDeclarativeEngine(const QDeclarativeEngine &); }; %End %ModuleHeaderCode #include %End %PostInitialisationCode qpydeclarative_post_init(sipModuleDict); %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativeerror.sip0000644000076500000240000000266012536324426023535 0ustar philstaff00000000000000// qdeclarativeerror.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeError { %TypeHeaderCode #include %End public: QDeclarativeError(); QDeclarativeError(const QDeclarativeError &); ~QDeclarativeError(); bool isValid() const; QUrl url() const; void setUrl(const QUrl &); QString description() const; void setDescription(const QString &); int line() const; void setLine(int); int column() const; void setColumn(int); QString toString() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativeexpression.sip0000644000076500000240000000360012536324426024576 0ustar philstaff00000000000000// qdeclarativeexpression.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeExpression : QObject { %TypeHeaderCode #include %End public: QDeclarativeExpression(); QDeclarativeExpression(QDeclarativeContext *, QObject *, const QString &, QObject *parent /TransferThis/ = 0); virtual ~QDeclarativeExpression(); QDeclarativeEngine *engine() const; QDeclarativeContext *context() const; QString expression() const; void setExpression(const QString &); bool notifyOnValueChanged() const; void setNotifyOnValueChanged(bool); QString sourceFile() const; int lineNumber() const; void setSourceLocation(const QString &fileName, int line); QObject *scopeObject() const; bool hasError() const; void clearError(); QDeclarativeError error() const; QVariant evaluate(bool *valueIsUndefined = 0); signals: void valueChanged(); private: QDeclarativeExpression(const QDeclarativeExpression &); }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativeextensionplugin.sip0000644000076500000240000000265412536324426025642 0ustar philstaff00000000000000// qdeclarativeextensionplugin.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeExtensionPlugin : QObject { %TypeHeaderCode #include %End public: explicit QDeclarativeExtensionPlugin(QObject *parent /TransferThis/ = 0); virtual ~QDeclarativeExtensionPlugin(); virtual void registerTypes(const char *uri) = 0; virtual void initializeEngine(QDeclarativeEngine *engine, const char *uri); private: QDeclarativeExtensionPlugin(const QDeclarativeExtensionPlugin &); }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativeimageprovider.sip0000644000076500000240000000277112536324426025244 0ustar philstaff00000000000000// qdeclarativeimageprovider.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeImageProvider { %TypeHeaderCode #include %End public: enum ImageType { Image, Pixmap, }; QDeclarativeImageProvider(QDeclarativeImageProvider::ImageType type); virtual ~QDeclarativeImageProvider(); QDeclarativeImageProvider::ImageType imageType() const; virtual QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize); virtual QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize); }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativeitem.sip0000644000076500000240000000561012536324426023340 0ustar philstaff00000000000000// qdeclarativeitem.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeItem : QGraphicsObject, QDeclarativeParserStatus { %TypeHeaderCode #include %End public: enum TransformOrigin { TopLeft, Top, TopRight, Left, Center, Right, BottomLeft, Bottom, BottomRight, }; QDeclarativeItem(QDeclarativeItem *parent /TransferThis/ = 0); virtual ~QDeclarativeItem(); QDeclarativeItem *parentItem() const; void setParentItem(QDeclarativeItem *parent /TransferThis/); QRectF childrenRect(); bool clip() const; void setClip(bool); qreal baselineOffset() const; void setBaselineOffset(qreal); void setWidth(qreal); qreal implicitWidth() const; void setHeight(qreal); qreal implicitHeight() const; QDeclarativeItem::TransformOrigin transformOrigin() const; void setTransformOrigin(QDeclarativeItem::TransformOrigin); bool smooth() const; void setSmooth(bool); virtual QRectF boundingRect() const; virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); bool hasFocus() const; bool keepMouseGrab() const; void setKeepMouseGrab(bool); protected: bool isComponentComplete() const; virtual bool sceneEvent(QEvent *); virtual bool event(QEvent *); virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange, const QVariant &); void setImplicitWidth(qreal); bool widthValid() const; void setImplicitHeight(qreal); bool heightValid() const; virtual void classBegin(); virtual void componentComplete(); virtual void keyPressEvent(QKeyEvent *event); virtual void keyReleaseEvent(QKeyEvent *event); virtual void inputMethodEvent(QInputMethodEvent *); virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); private: QDeclarativeItem(const QDeclarativeItem &); }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativelist.sip0000644000076500000240000000313612536324426023356 0ustar philstaff00000000000000// qdeclarativelist.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeListReference { %TypeHeaderCode #include %End public: QDeclarativeListReference(); QDeclarativeListReference(QObject *, const char *property, QDeclarativeEngine *engine = 0); QDeclarativeListReference(const QDeclarativeListReference &); ~QDeclarativeListReference(); bool isValid() const; QObject *object() const; const QMetaObject *listElementType() const; bool canAppend() const; bool canAt() const; bool canClear() const; bool canCount() const; bool append(QObject *) const; QObject *at(int) const; bool clear() const; int count() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativenetworkaccessmanagerfactory.sip0000644000076500000240000000241012536324426030173 0ustar philstaff00000000000000// qdeclarativenetworkaccessmanagerfactory.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeNetworkAccessManagerFactory { %TypeHeaderCode #include %End public: virtual ~QDeclarativeNetworkAccessManagerFactory(); virtual QNetworkAccessManager *create(QObject *parent /TransferThis/) = 0 /Factory/; }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativeparserstatus.sip0000644000076500000240000000234012536324426025137 0ustar philstaff00000000000000// qdeclarativeparserstatus.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeParserStatus { %TypeHeaderCode #include %End public: QDeclarativeParserStatus(); virtual ~QDeclarativeParserStatus(); virtual void classBegin() = 0; virtual void componentComplete() = 0; }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativeproperty.sip0000644000076500000240000000622412536324426024270 0ustar philstaff00000000000000// qdeclarativeproperty.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeProperty { %TypeHeaderCode #include %End public: enum PropertyTypeCategory { InvalidCategory, List, Object, Normal, }; enum Type { Invalid, Property, SignalProperty, }; QDeclarativeProperty(); QDeclarativeProperty(QObject *); QDeclarativeProperty(QObject *, QDeclarativeContext *); QDeclarativeProperty(QObject *, QDeclarativeEngine *); QDeclarativeProperty(QObject *, const QString &); QDeclarativeProperty(QObject *, const QString &, QDeclarativeContext *); QDeclarativeProperty(QObject *, const QString &, QDeclarativeEngine *); QDeclarativeProperty(const QDeclarativeProperty &); ~QDeclarativeProperty(); bool operator==(const QDeclarativeProperty &) const; QDeclarativeProperty::Type type() const; bool isValid() const; bool isProperty() const; bool isSignalProperty() const; int propertyType() const; QDeclarativeProperty::PropertyTypeCategory propertyTypeCategory() const; const char *propertyTypeName() const; QString name() const; QVariant read() const; static QVariant read(QObject *, const QString &); static QVariant read(QObject *, const QString &, QDeclarativeContext *); static QVariant read(QObject *, const QString &, QDeclarativeEngine *); bool write(const QVariant &) const; static bool write(QObject *, const QString &, const QVariant &); static bool write(QObject *, const QString &, const QVariant &, QDeclarativeContext *); static bool write(QObject *, const QString &, const QVariant &, QDeclarativeEngine *); bool reset() const; bool hasNotifySignal() const; bool needsNotifySignal() const; bool connectNotifySignal(SIP_RXOBJ_CON dest, SIP_SLOT_CON() slot) const [bool (QObject *dest, const char *slot)]; bool connectNotifySignal(QObject *dest, int method) const; bool isWritable() const; bool isDesignable() const; bool isResettable() const; QObject *object() const; int index() const; QMetaProperty property() const; QMetaMethod method() const; long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativepropertymap.sip0000644000076500000240000000325312536324426024765 0ustar philstaff00000000000000// qdeclarativepropertymap.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativePropertyMap : QObject { %TypeHeaderCode #include %End public: QDeclarativePropertyMap(QObject *parent /TransferThis/ = 0); virtual ~QDeclarativePropertyMap(); QVariant value(const QString &key) const; void insert(const QString &key, const QVariant &value); void clear(const QString &key); QStringList keys() const; int count() const /__len__/; int size() const; bool isEmpty() const; bool contains(const QString &key) const; QVariant operator[](const QString &key) const; signals: void valueChanged(const QString &key, const QVariant &value); private: QDeclarativePropertyMap(const QDeclarativePropertyMap &); }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativepropertyvaluesource.sip0000644000076500000240000000236412536324426026547 0ustar philstaff00000000000000// qdeclarativepropertyvaluesource.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativePropertyValueSource { %TypeHeaderCode #include %End public: QDeclarativePropertyValueSource(); virtual ~QDeclarativePropertyValueSource(); virtual void setTarget(const QDeclarativeProperty &) = 0; }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativescriptstring.sip0000644000076500000240000000271012536324426025133 0ustar philstaff00000000000000// qdeclarativescriptstring.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeScriptString { %TypeHeaderCode #include %End public: QDeclarativeScriptString(); QDeclarativeScriptString(const QDeclarativeScriptString &); ~QDeclarativeScriptString(); QDeclarativeContext *context() const; void setContext(QDeclarativeContext * /KeepReference/); QObject *scopeObject() const; void setScopeObject(QObject * /KeepReference/); QString script() const; void setScript(const QString &); }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qdeclarativeview.sip0000644000076500000240000000441412536324426023355 0ustar philstaff00000000000000// qdeclarativeview.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QDeclarativeView : QGraphicsView { %TypeHeaderCode #include %End public: explicit QDeclarativeView(QWidget *parent /TransferThis/ = 0); QDeclarativeView(const QUrl &source, QWidget *parent /TransferThis/ = 0); virtual ~QDeclarativeView(); QUrl source() const; void setSource(const QUrl &); QDeclarativeEngine *engine() const /KeepReference/; QDeclarativeContext *rootContext() const /KeepReference/; QGraphicsObject *rootObject() const /KeepReference/; enum ResizeMode { SizeViewToRootObject, SizeRootObjectToView, }; QDeclarativeView::ResizeMode resizeMode() const; void setResizeMode(QDeclarativeView::ResizeMode); enum Status { Null, Ready, Loading, Error, }; QDeclarativeView::Status status() const; QList errors() const; virtual QSize sizeHint() const; QSize initialSize() const; signals: void sceneResized(QSize size); void statusChanged(QDeclarativeView::Status); protected: virtual void resizeEvent(QResizeEvent *); virtual void paintEvent(QPaintEvent *event); virtual void timerEvent(QTimerEvent *); virtual bool eventFilter(QObject *watched, QEvent *e); private: QDeclarativeView(const QDeclarativeView &); }; %End PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qpydeclarativelistproperty.sip0000644000076500000240000000435112536324426025534 0ustar philstaff00000000000000// This is the SIP specification of the QDeclarativeListProperty mapped type. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %MappedType QDeclarativeListProperty /DocType="QPyDeclarativeListProperty"/ { %TypeHeaderCode #include %End %TypeCode #if defined(SIP_USE_PYCAPSULE) extern "C" { static void qpydeclarative_QPyDeclarativeListProperty_delete(PyObject *capsule) { delete reinterpret_cast *>(PyCapsule_GetPointer(capsule, 0)); } } #else extern "C" { static void qpydeclarative_QPyDeclarativeListProperty_delete(void *ptr) { delete reinterpret_cast *>(ptr); } } #endif %End %ConvertFromTypeCode #if defined(SIP_USE_PYCAPSULE) return PyCapsule_New(sipCpp, 0, qpydeclarative_QPyDeclarativeListProperty_delete); #else return PyCObject_FromVoidPtr(sipCpp, qpydeclarative_QPyDeclarativeListProperty_delete); #endif %End %ConvertToTypeCode if (sipIsErr == NULL) { #if defined(SIP_USE_PYCAPSULE) return PyCapsule_CheckExact(sipPy); #else return PyCObject_Check(sipPy); #endif } #if defined(SIP_USE_PYCAPSULE) *sipCppPtr = reinterpret_cast *>( PyCapsule_GetPointer(sipPy, 0)); #else *sipCppPtr = reinterpret_cast *>( PyCObject_AsVoidPtr(sipPy)); #endif // It isn't a temporary copy. return 0; %End }; PyQt-x11-gpl-4.11.4/sip/QtDeclarative/qpydeclarativepropertyvaluesource.sip0000644000076500000240000000244212536324426027115 0ustar philstaff00000000000000// This is the SIP specification of the QPyDeclarativePropertyValueSource // class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPyDeclarativePropertyValueSource : QObject, QDeclarativePropertyValueSource { %TypeHeaderCode #include %End public: explicit QPyDeclarativePropertyValueSource(QObject *parent /TransferThis/ = 0); ~QPyDeclarativePropertyValueSource(); private: QPyDeclarativePropertyValueSource(const QPyDeclarativePropertyValueSource &); }; PyQt-x11-gpl-4.11.4/sip/QtDeclarative/QtDeclarativemod.sip0000644000076500000240000000511212536324426023242 0ustar philstaff00000000000000// QtDeclarativemod.sip generated by MetaSIP // // This file is part of the QtDeclarative Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtDeclarative, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Import QtNetwork/QtNetworkmod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qdeclarativecomponent.sip %Include qdeclarativecontext.sip %Include qdeclarativeengine.sip %Include qdeclarativeerror.sip %Include qdeclarativeexpression.sip %Include qdeclarativeextensionplugin.sip %Include qdeclarativeimageprovider.sip %Include qdeclarativeitem.sip %Include qdeclarativelist.sip %Include qdeclarativenetworkaccessmanagerfactory.sip %Include qdeclarativeparserstatus.sip %Include qdeclarativeproperty.sip %Include qdeclarativepropertymap.sip %Include qdeclarativepropertyvaluesource.sip %Include qdeclarativescriptstring.sip %Include qdeclarativeview.sip %Include qpydeclarativelistproperty.sip %Include qpydeclarativepropertyvaluesource.sip PyQt-x11-gpl-4.11.4/sip/QtDesigner/0000755000076500000240000000000012536324426016613 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtDesigner/abstractactioneditor.sip0000644000076500000240000000272412536324426023545 0ustar philstaff00000000000000// abstractactioneditor.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerActionEditorInterface : QWidget { %TypeHeaderCode #include %End public: QDesignerActionEditorInterface(QWidget *parent /TransferThis/, Qt::WindowFlags flags = 0); virtual ~QDesignerActionEditorInterface(); virtual QDesignerFormEditorInterface *core() const; virtual void manageAction(QAction *action) = 0; virtual void unmanageAction(QAction *action) = 0; public slots: virtual void setFormWindow(QDesignerFormWindowInterface *formWindow /KeepReference/) = 0; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/abstractformbuilder.sip0000644000076500000240000000271412536324426023372 0ustar philstaff00000000000000// abstractformbuilder.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAbstractFormBuilder { %TypeHeaderCode #include %End public: QAbstractFormBuilder(); virtual ~QAbstractFormBuilder(); virtual QWidget *load(QIODevice *device, QWidget *parent /TransferThis/ = 0) /Factory/; virtual void save(QIODevice *dev, QWidget *widget); void setWorkingDirectory(const QDir &directory); QDir workingDirectory() const; %If (Qt_5_0_0 -) QString errorString() const; %End private: QAbstractFormBuilder(const QAbstractFormBuilder &other); }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/abstractformeditor.sip0000644000076500000240000000374112536324426023233 0ustar philstaff00000000000000// abstractformeditor.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerFormEditorInterface : QObject { %TypeHeaderCode #include %End public: QDesignerFormEditorInterface(QObject *parent /TransferThis/ = 0); virtual ~QDesignerFormEditorInterface(); QExtensionManager *extensionManager() const; QWidget *topLevel() const; QDesignerWidgetBoxInterface *widgetBox() const; QDesignerPropertyEditorInterface *propertyEditor() const; QDesignerObjectInspectorInterface *objectInspector() const; QDesignerFormWindowManagerInterface *formWindowManager() const; QDesignerActionEditorInterface *actionEditor() const; void setWidgetBox(QDesignerWidgetBoxInterface *widgetBox /KeepReference/); void setPropertyEditor(QDesignerPropertyEditorInterface *propertyEditor /KeepReference/); void setObjectInspector(QDesignerObjectInspectorInterface *objectInspector /KeepReference/); void setActionEditor(QDesignerActionEditorInterface *actionEditor /KeepReference/); private: QDesignerFormEditorInterface(const QDesignerFormEditorInterface &other); }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/abstractformwindow.sip0000644000076500000240000001172612536324426023256 0ustar philstaff00000000000000// abstractformwindow.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerFormWindowInterface : QWidget /Abstract/ { %TypeHeaderCode #include %End public: enum FeatureFlag { EditFeature, GridFeature, TabOrderFeature, DefaultFeature, }; typedef QFlags Feature; QDesignerFormWindowInterface(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); virtual ~QDesignerFormWindowInterface(); virtual QString fileName() const = 0; virtual QDir absoluteDir() const = 0; virtual QString contents() const = 0; %If (Qt_5_0_0 -) virtual bool setContents(QIODevice *dev, QString *errorMessage = 0) = 0; %End %If (- Qt_5_0_0) virtual void setContents(QIODevice *dev) = 0; %End virtual QFlags features() const = 0; virtual bool hasFeature(QFlags f) const = 0; virtual QString author() const = 0; virtual void setAuthor(const QString &author) = 0; virtual QString comment() const = 0; virtual void setComment(const QString &comment) = 0; virtual void layoutDefault(int *margin, int *spacing) = 0; virtual void setLayoutDefault(int margin, int spacing) = 0; virtual void layoutFunction(QString *margin /Out/, QString *spacing /Out/) = 0; virtual void setLayoutFunction(const QString &margin, const QString &spacing) = 0; virtual QString pixmapFunction() const = 0; virtual void setPixmapFunction(const QString &pixmapFunction) = 0; virtual QString exportMacro() const = 0; virtual void setExportMacro(const QString &exportMacro) = 0; virtual QStringList includeHints() const = 0; virtual void setIncludeHints(const QStringList &includeHints) = 0; virtual QDesignerFormEditorInterface *core() const; virtual QDesignerFormWindowCursorInterface *cursor() const = 0; virtual QPoint grid() const = 0; virtual QWidget *mainContainer() const = 0; virtual void setMainContainer(QWidget *mainContainer /KeepReference/) = 0; virtual bool isManaged(QWidget *widget) const = 0; virtual bool isDirty() const = 0; static QDesignerFormWindowInterface *findFormWindow(QWidget *w); %If (Qt_4_4_0 -) static QDesignerFormWindowInterface *findFormWindow(QObject *obj); %End virtual void emitSelectionChanged() = 0; virtual QStringList resourceFiles() const = 0; virtual void addResourceFile(const QString &path) = 0; virtual void removeResourceFile(const QString &path) = 0; public slots: virtual void manageWidget(QWidget *widget) = 0; virtual void unmanageWidget(QWidget *widget) = 0; virtual void setFeatures(QFlags f) = 0; virtual void setDirty(bool dirty) = 0; virtual void clearSelection(bool update = true) = 0; virtual void selectWidget(QWidget *widget, bool select = true) = 0; virtual void setGrid(const QPoint &grid) = 0; virtual void setFileName(const QString &fileName) = 0; %If (Qt_5_0_0 -) virtual bool setContents(const QString &contents) = 0; %End %If (- Qt_5_0_0) virtual void setContents(const QString &contents) = 0; %End signals: void mainContainerChanged(QWidget *mainContainer); void fileNameChanged(const QString &fileName); void featureChanged(QFlags f); void selectionChanged(); void geometryChanged(); void resourceFilesChanged(); void widgetManaged(QWidget *widget); void widgetUnmanaged(QWidget *widget); void aboutToUnmanageWidget(QWidget *widget); void activated(QWidget *widget); void changed(); void widgetRemoved(QWidget *w); %If (Qt_4_5_0 -) void objectRemoved(QObject *o); %End public: %If (Qt_5_0_0 -) virtual QStringList checkContents() const = 0; %End %If (Qt_5_0_0 -) QStringList activeResourceFilePaths() const; %End %If (Qt_5_0_0 -) virtual QWidget *formContainer() const = 0; %End %If (Qt_5_0_0 -) void activateResourceFilePaths(const QStringList &paths, int *errorCount = 0, QString *errorMessages /Out/ = 0); %End }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/abstractformwindowcursor.sip0000644000076500000240000000453412536324426024513 0ustar philstaff00000000000000// abstractformwindowcursor.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerFormWindowCursorInterface { %TypeHeaderCode #include %End public: enum MoveOperation { NoMove, Start, End, Next, Prev, Left, Right, Up, Down, }; enum MoveMode { MoveAnchor, KeepAnchor, }; virtual ~QDesignerFormWindowCursorInterface(); virtual QDesignerFormWindowInterface *formWindow() const = 0; virtual bool movePosition(QDesignerFormWindowCursorInterface::MoveOperation op, QDesignerFormWindowCursorInterface::MoveMode mode = QDesignerFormWindowCursorInterface::MoveAnchor) = 0; virtual int position() const = 0; virtual void setPosition(int pos, QDesignerFormWindowCursorInterface::MoveMode mode = QDesignerFormWindowCursorInterface::MoveAnchor) = 0; virtual QWidget *current() const = 0; virtual int widgetCount() const = 0; virtual QWidget *widget(int index) const = 0; virtual bool hasSelection() const = 0; virtual int selectedWidgetCount() const = 0; virtual QWidget *selectedWidget(int index) const = 0; virtual void setProperty(const QString &name, const QVariant &value) = 0; virtual void setWidgetProperty(QWidget *widget, const QString &name, const QVariant &value) = 0; virtual void resetWidgetProperty(QWidget *widget, const QString &name) = 0; bool isWidgetSelected(QWidget *widget) const; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/abstractformwindowmanager.sip0000644000076500000240000001566012536324426024612 0ustar philstaff00000000000000// abstractformwindowmanager.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerFormWindowManagerInterface : QObject /Abstract/ { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QDesignerFormWindowManagerInterface(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QDesignerFormWindowManagerInterface(QObject *parent /TransferThis/ = 0); %End virtual ~QDesignerFormWindowManagerInterface(); %If (- Qt_5_0_0) virtual QAction *actionCut() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionCopy() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionPaste() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionDelete() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionSelectAll() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionLower() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionRaise() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionUndo() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionRedo() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionHorizontalLayout() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionVerticalLayout() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionSplitHorizontal() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionSplitVertical() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionGridLayout() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionBreakLayout() const /Transfer/; %End %If (- Qt_5_0_0) virtual QAction *actionAdjustSize() const /Transfer/; %End %If (Qt_4_4_0 -) QAction *actionFormLayout() const /Transfer/; %End %If (Qt_4_4_0 -) QAction *actionSimplifyLayout() const /Transfer/; %End %If (Qt_5_0_0 -) virtual QDesignerFormWindowInterface *activeFormWindow() const = 0; %End %If (- Qt_5_0_0) virtual QDesignerFormWindowInterface *activeFormWindow() const; %End %If (Qt_5_0_0 -) virtual int formWindowCount() const = 0; %End %If (- Qt_5_0_0) virtual int formWindowCount() const; %End %If (Qt_5_0_0 -) virtual QDesignerFormWindowInterface *formWindow(int index) const = 0 /Transfer/; %End %If (- Qt_5_0_0) virtual QDesignerFormWindowInterface *formWindow(int index) const /Transfer/; %End %If (Qt_5_0_0 -) virtual QDesignerFormWindowInterface *createFormWindow(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0) = 0; %End %If (- Qt_5_0_0) virtual QDesignerFormWindowInterface *createFormWindow(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0) /Factory/; %End %If (Qt_5_0_0 -) virtual QDesignerFormEditorInterface *core() const = 0; %End %If (- Qt_5_0_0) virtual QDesignerFormEditorInterface *core() const; %End signals: void formWindowAdded(QDesignerFormWindowInterface *formWindow); void formWindowRemoved(QDesignerFormWindowInterface *formWindow); void activeFormWindowChanged(QDesignerFormWindowInterface *formWindow); %If (Qt_5_0_0 -) void formWindowSettingsChanged(QDesignerFormWindowInterface *fw); %End public slots: %If (Qt_5_0_0 -) virtual void addFormWindow(QDesignerFormWindowInterface *formWindow) = 0; %End %If (- Qt_5_0_0) virtual void addFormWindow(QDesignerFormWindowInterface *formWindow); %End %If (Qt_5_0_0 -) virtual void removeFormWindow(QDesignerFormWindowInterface *formWindow) = 0; %End %If (- Qt_5_0_0) virtual void removeFormWindow(QDesignerFormWindowInterface *formWindow); %End %If (Qt_5_0_0 -) virtual void setActiveFormWindow(QDesignerFormWindowInterface *formWindow) = 0; %End %If (- Qt_5_0_0) virtual void setActiveFormWindow(QDesignerFormWindowInterface *formWindow); %End private: %If (Qt_4_4_0 - Qt_5_0_0) QDesignerFormWindowManagerInterface(const QDesignerFormWindowManagerInterface &other); %End public: %If (Qt_5_0_0 -) enum Action { CutAction, CopyAction, PasteAction, DeleteAction, SelectAllAction, LowerAction, RaiseAction, UndoAction, RedoAction, HorizontalLayoutAction, VerticalLayoutAction, SplitHorizontalAction, SplitVerticalAction, GridLayoutAction, FormLayoutAction, BreakLayoutAction, AdjustSizeAction, SimplifyLayoutAction, DefaultPreviewAction, FormWindowSettingsDialogAction, }; %End %If (Qt_5_0_0 -) enum ActionGroup { StyledPreviewActionGroup, }; %End %If (Qt_5_0_0 -) virtual QAction *action(QDesignerFormWindowManagerInterface::Action action) const = 0 /Transfer/; %End %If (Qt_5_0_0 -) virtual QActionGroup *actionGroup(QDesignerFormWindowManagerInterface::ActionGroup actionGroup) const = 0 /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionCut() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionCopy() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionPaste() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionDelete() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionSelectAll() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionLower() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionRaise() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionUndo() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionRedo() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionHorizontalLayout() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionVerticalLayout() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionSplitHorizontal() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionSplitVertical() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionGridLayout() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionBreakLayout() const /Transfer/; %End %If (Qt_5_0_0 -) QAction *actionAdjustSize() const /Transfer/; %End public slots: %If (Qt_5_0_0 -) virtual void showPreview() = 0; %End %If (Qt_5_0_0 -) virtual void closeAllPreviews() = 0; %End %If (Qt_5_0_0 -) virtual void showPluginDialog() = 0; %End }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/abstractobjectinspector.sip0000644000076500000240000000257112536324426024256 0ustar philstaff00000000000000// abstractobjectinspector.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerObjectInspectorInterface : QWidget { %TypeHeaderCode #include %End public: QDesignerObjectInspectorInterface(QWidget *parent /TransferThis/, Qt::WindowFlags flags = 0); virtual ~QDesignerObjectInspectorInterface(); virtual QDesignerFormEditorInterface *core() const; public slots: virtual void setFormWindow(QDesignerFormWindowInterface *formWindow /KeepReference/) = 0; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/abstractpropertyeditor.sip0000644000076500000240000000330712536324426024152 0ustar philstaff00000000000000// abstractpropertyeditor.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerPropertyEditorInterface : QWidget { %TypeHeaderCode #include %End public: QDesignerPropertyEditorInterface(QWidget *parent /TransferThis/, Qt::WindowFlags flags = 0); virtual ~QDesignerPropertyEditorInterface(); virtual QDesignerFormEditorInterface *core() const; virtual bool isReadOnly() const = 0; virtual QObject *object() const = 0; virtual QString currentPropertyName() const = 0; signals: void propertyChanged(const QString &name, const QVariant &value); public slots: virtual void setObject(QObject *object /KeepReference/) = 0; virtual void setPropertyValue(const QString &name, const QVariant &value, bool changed = true) = 0; virtual void setReadOnly(bool readOnly) = 0; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/abstractwidgetbox.sip0000644000076500000240000000254512536324426023056 0ustar philstaff00000000000000// abstractwidgetbox.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerWidgetBoxInterface : QWidget /Abstract/ { %TypeHeaderCode #include %End public: QDesignerWidgetBoxInterface(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); virtual ~QDesignerWidgetBoxInterface(); virtual void setFileName(const QString &file_name) = 0; virtual QString fileName() const = 0; virtual bool load() = 0; virtual bool save() = 0; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/container.sip0000644000076500000240000000302212536324426021307 0ustar philstaff00000000000000// container.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerContainerExtension { %TypeHeaderCode #include %End public: virtual ~QDesignerContainerExtension(); virtual int count() const = 0 /__len__/; virtual QWidget *widget(int index) const = 0; virtual int currentIndex() const = 0; virtual void setCurrentIndex(int index) = 0; virtual void addWidget(QWidget *widget) = 0; virtual void insertWidget(int index, QWidget *widget) = 0; virtual void remove(int index) = 0; %If (Qt_5_0_0 -) virtual bool canAddWidget() const; %End %If (Qt_5_0_0 -) virtual bool canRemove(int index) const; %End }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/customwidget.sip0000644000076500000240000000354412536324426022054 0ustar philstaff00000000000000// customwidget.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerCustomWidgetInterface { %TypeHeaderCode #include %End public: virtual ~QDesignerCustomWidgetInterface(); virtual QString name() const = 0; virtual QString group() const = 0; virtual QString toolTip() const = 0; virtual QString whatsThis() const = 0; virtual QString includeFile() const = 0; virtual QIcon icon() const = 0; virtual bool isContainer() const = 0; virtual QWidget *createWidget(QWidget *parent /TransferThis/) = 0 /Factory/; virtual bool isInitialized() const; virtual void initialize(QDesignerFormEditorInterface *core); virtual QString domXml() const; virtual QString codeTemplate() const; }; class QDesignerCustomWidgetCollectionInterface { %TypeHeaderCode #include %End public: virtual ~QDesignerCustomWidgetCollectionInterface(); virtual QList customWidgets() const = 0; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/default_extensionfactory.sip0000644000076500000240000000262512536324426024445 0ustar philstaff00000000000000// default_extensionfactory.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QExtensionFactory : QObject, QAbstractExtensionFactory { %TypeHeaderCode #include %End public: QExtensionFactory(QExtensionManager *parent /TransferThis/ = 0); virtual QObject *extension(QObject *object, const QString &iid) const; QExtensionManager *extensionManager() const; protected: virtual QObject *createExtension(QObject *object, const QString &iid, QObject *parent /TransferThis/) const /Factory/; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/extension.sip0000644000076500000240000000304312536324426021344 0ustar philstaff00000000000000// extension.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAbstractExtensionFactory { %TypeHeaderCode #include %End public: virtual ~QAbstractExtensionFactory(); virtual QObject *extension(QObject *object, const QString &iid) const = 0; }; class QAbstractExtensionManager { %TypeHeaderCode #include %End public: virtual ~QAbstractExtensionManager(); virtual void registerExtensions(QAbstractExtensionFactory *factory, const QString &iid) = 0; virtual void unregisterExtensions(QAbstractExtensionFactory *factory, const QString &iid) = 0; virtual QObject *extension(QObject *object, const QString &iid) const = 0; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/formbuilder.sip0000644000076500000240000000250012536324426021637 0ustar philstaff00000000000000// formbuilder.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QFormBuilder : QAbstractFormBuilder { %TypeHeaderCode #include %End public: QFormBuilder(); virtual ~QFormBuilder(); QStringList pluginPaths() const; void clearPluginPaths(); void addPluginPath(const QString &pluginPath); void setPluginPath(const QStringList &pluginPaths); QList customWidgets() const; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/membersheet.sip0000644000076500000240000000352012536324426021630 0ustar philstaff00000000000000// membersheet.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerMemberSheetExtension { %TypeHeaderCode #include %End public: virtual ~QDesignerMemberSheetExtension(); virtual int count() const = 0 /__len__/; virtual int indexOf(const QString &name) const = 0; virtual QString memberName(int index) const = 0; virtual QString memberGroup(int index) const = 0; virtual void setMemberGroup(int index, const QString &group) = 0; virtual bool isVisible(int index) const = 0; virtual void setVisible(int index, bool b) = 0; virtual bool isSignal(int index) const = 0; virtual bool isSlot(int index) const = 0; virtual bool inheritedFromWidget(int index) const = 0; virtual QString declaredInClass(int index) const = 0; virtual QString signature(int index) const = 0; virtual QList parameterTypes(int index) const = 0; virtual QList parameterNames(int index) const = 0; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/propertysheet.sip0000644000076500000240000000366712536324426022261 0ustar philstaff00000000000000// propertysheet.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerPropertySheetExtension { %TypeHeaderCode #include %End public: virtual ~QDesignerPropertySheetExtension(); virtual int count() const = 0 /__len__/; virtual int indexOf(const QString &name) const = 0; virtual QString propertyName(int index) const = 0; virtual QString propertyGroup(int index) const = 0; virtual void setPropertyGroup(int index, const QString &group) = 0; virtual bool hasReset(int index) const = 0; virtual bool reset(int index) = 0; virtual bool isVisible(int index) const = 0; virtual void setVisible(int index, bool b) = 0; virtual bool isAttribute(int index) const = 0; virtual void setAttribute(int index, bool b) = 0; virtual QVariant property(int index) const = 0; virtual void setProperty(int index, const QVariant &value) = 0; virtual bool isChanged(int index) const = 0; virtual void setChanged(int index, bool changed) = 0; %If (Qt_5_0_0 -) virtual bool isEnabled(int index) const; %End }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/qextensionmanager.sip0000644000076500000240000000675512536324426023075 0ustar philstaff00000000000000// qextensionmanager.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QExtensionManager : QObject, QAbstractExtensionManager { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QPyDesignerPropertySheetExtension, &sipType_QPyDesignerPropertySheetExtension, -1, 1}, {sipName_QDesignerWidgetBoxInterface, &sipType_QDesignerWidgetBoxInterface, -1, 2}, {sipName_QDesignerFormWindowManagerInterface, &sipType_QDesignerFormWindowManagerInterface, -1, 3}, {sipName_QPyDesignerTaskMenuExtension, &sipType_QPyDesignerTaskMenuExtension, -1, 4}, {sipName_QPyDesignerCustomWidgetCollectionPlugin, &sipType_QPyDesignerCustomWidgetCollectionPlugin, -1, 5}, {sipName_QExtensionManager, &sipType_QExtensionManager, -1, 6}, {sipName_QPyDesignerContainerExtension, &sipType_QPyDesignerContainerExtension, -1, 7}, {sipName_QDesignerActionEditorInterface, &sipType_QDesignerActionEditorInterface, -1, 8}, {sipName_QPyDesignerCustomWidgetPlugin, &sipType_QPyDesignerCustomWidgetPlugin, -1, 9}, {sipName_QDesignerFormWindowInterface, &sipType_QDesignerFormWindowInterface, -1, 10}, {sipName_QDesignerObjectInspectorInterface, &sipType_QDesignerObjectInspectorInterface, -1, 11}, {sipName_QDesignerPropertyEditorInterface, &sipType_QDesignerPropertyEditorInterface, -1, 12}, {sipName_QDesignerFormEditorInterface, &sipType_QDesignerFormEditorInterface, -1, 13}, {sipName_QExtensionFactory, &sipType_QExtensionFactory, -1, 14}, {sipName_QPyDesignerMemberSheetExtension, &sipType_QPyDesignerMemberSheetExtension, -1, -1}, }; int i = 0; sipType = 0; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: QExtensionManager(QObject *parent /TransferThis/ = 0); virtual ~QExtensionManager(); virtual void registerExtensions(QAbstractExtensionFactory *factory, const QString &iid /DocValue="Py_v3:''"/ = QString()); virtual void unregisterExtensions(QAbstractExtensionFactory *factory, const QString &iid /DocValue="Py_v3:''"/ = QString()); virtual QObject *extension(QObject *object, const QString &iid) const; }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/qpydesignercontainerextension.sip0000644000076500000240000000231412536324426025522 0ustar philstaff00000000000000// This is the SIP specification of the QPyDesignerContainerExtension class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPyDesignerContainerExtension : QObject, QDesignerContainerExtension { %TypeHeaderCode #include %End public: QPyDesignerContainerExtension(QObject *parent /TransferThis/); private: QPyDesignerContainerExtension(const QPyDesignerContainerExtension &); }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/qpydesignercustomwidgetcollectionplugin.sip0000644000076500000240000000243412536324426027617 0ustar philstaff00000000000000// This is the SIP specification of the QPyDesignerCustomWidgetCollectionPlugin // class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPyDesignerCustomWidgetCollectionPlugin : QObject, QDesignerCustomWidgetCollectionInterface { %TypeHeaderCode #include %End public: QPyDesignerCustomWidgetCollectionPlugin(QObject *parent /TransferThis/ = 0); private: QPyDesignerCustomWidgetCollectionPlugin(const QPyDesignerCustomWidgetCollectionPlugin &); }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/qpydesignercustomwidgetplugin.sip0000644000076500000240000000232312536324426025540 0ustar philstaff00000000000000// This is the SIP specification of the QPyDesignerCustomWidgetPlugin class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPyDesignerCustomWidgetPlugin : QObject, QDesignerCustomWidgetInterface { %TypeHeaderCode #include %End public: QPyDesignerCustomWidgetPlugin(QObject *parent /TransferThis/ = 0); private: QPyDesignerCustomWidgetPlugin(const QPyDesignerCustomWidgetPlugin &); }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/qpydesignermembersheetextension.sip0000644000076500000240000000233212536324426026040 0ustar philstaff00000000000000// This is the SIP specification of the QPyDesignerMemberSheetExtension class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPyDesignerMemberSheetExtension : QObject, QDesignerMemberSheetExtension { %TypeHeaderCode #include %End public: QPyDesignerMemberSheetExtension(QObject *parent /TransferThis/); private: QPyDesignerMemberSheetExtension(const QPyDesignerMemberSheetExtension &); }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/qpydesignerpropertysheetextension.sip0000644000076500000240000000235312536324426026460 0ustar philstaff00000000000000// This is the SIP specification of the QPyDesignerPropertySheetExtension // class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPyDesignerPropertySheetExtension : QObject, QDesignerPropertySheetExtension { %TypeHeaderCode #include %End public: QPyDesignerPropertySheetExtension(QObject *parent /TransferThis/); private: QPyDesignerPropertySheetExtension(const QPyDesignerPropertySheetExtension &); }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/qpydesignertaskmenuextension.sip0000644000076500000240000000230512536324426025367 0ustar philstaff00000000000000// This is the SIP specification of the QPyDesignerTaskMenuExtension class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPyDesignerTaskMenuExtension : QObject, QDesignerTaskMenuExtension { %TypeHeaderCode #include %End public: QPyDesignerTaskMenuExtension(QObject *parent /TransferThis/); private: QPyDesignerTaskMenuExtension(const QPyDesignerTaskMenuExtension &); }; PyQt-x11-gpl-4.11.4/sip/QtDesigner/QtDesignermod.sip0000644000076500000240000000527212536324426022103 0ustar philstaff00000000000000// QtDesignermod.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtDesigner, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include abstractactioneditor.sip %Include abstractformbuilder.sip %Include abstractformeditor.sip %Include abstractformwindow.sip %Include abstractformwindowcursor.sip %Include abstractformwindowmanager.sip %Include abstractobjectinspector.sip %Include abstractpropertyeditor.sip %Include abstractwidgetbox.sip %Include container.sip %Include customwidget.sip %Include default_extensionfactory.sip %Include extension.sip %Include formbuilder.sip %Include membersheet.sip %Include propertysheet.sip %Include qextensionmanager.sip %Include taskmenu.sip %Include qpydesignercontainerextension.sip %Include qpydesignercustomwidgetcollectionplugin.sip %Include qpydesignercustomwidgetplugin.sip %Include qpydesignermembersheetextension.sip %Include qpydesignerpropertysheetextension.sip %Include qpydesignertaskmenuextension.sip PyQt-x11-gpl-4.11.4/sip/QtDesigner/taskmenu.sip0000644000076500000240000000224312536324426021160 0ustar philstaff00000000000000// taskmenu.sip generated by MetaSIP // // This file is part of the QtDesigner Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesignerTaskMenuExtension { %TypeHeaderCode #include %End public: virtual ~QDesignerTaskMenuExtension(); virtual QList taskActions() const = 0; virtual QAction *preferredEditAction() const; }; PyQt-x11-gpl-4.11.4/sip/QtGui/0000755000076500000240000000000012536324426015577 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtGui/opengl_types.sip0000644000076500000240000000254212536324426021027 0ustar philstaff00000000000000// This implements the typedefs for the OpenGL data types. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. typedef char GLchar; typedef qint8 GLbyte; typedef quint8 GLubyte; typedef quint8 GLboolean; typedef qint16 GLshort; typedef quint16 GLushort; typedef qint32 GLint; typedef qint32 GLsizei; typedef quint32 GLuint; typedef quint32 GLenum; typedef quint32 GLbitfield; %If (PyQt_NoOpenGLES) typedef quint64 GLuint64; // This is in OpenGL ES v3. typedef double GLdouble; %End typedef float GLfloat; typedef float GLclampf; typedef long GLintptr; typedef long GLsizeiptr; PyQt-x11-gpl-4.11.4/sip/QtGui/qabstractbutton.sip0000644000076500000240000000544212536324426021541 0ustar philstaff00000000000000// qabstractbutton.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAbstractButton : QWidget { %TypeHeaderCode #include %End public: explicit QAbstractButton(QWidget *parent /TransferThis/ = 0); virtual ~QAbstractButton(); %If (Qt_4_2_0 -) void setAutoRepeatDelay(int); %End %If (Qt_4_2_0 -) int autoRepeatDelay() const; %End %If (Qt_4_2_0 -) void setAutoRepeatInterval(int); %End %If (Qt_4_2_0 -) int autoRepeatInterval() const; %End void setText(const QString &text); QString text() const; void setIcon(const QIcon &icon); QIcon icon() const; QSize iconSize() const; void setShortcut(const QKeySequence &key); QKeySequence shortcut() const; void setCheckable(bool); bool isCheckable() const; bool isChecked() const; void setDown(bool); bool isDown() const; void setAutoRepeat(bool); bool autoRepeat() const; void setAutoExclusive(bool); bool autoExclusive() const; QButtonGroup *group() const; public slots: void setIconSize(const QSize &size); void animateClick(int msecs = 100); void click(); void toggle(); void setChecked(bool); signals: void pressed(); void released(); void clicked(bool checked = false) /PyQtSignalHack=3/; void toggled(bool checked); protected: virtual void paintEvent(QPaintEvent *e) = 0; virtual bool hitButton(const QPoint &pos) const; virtual void checkStateSet(); virtual void nextCheckState(); virtual bool event(QEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual void keyReleaseEvent(QKeyEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void focusInEvent(QFocusEvent *e); virtual void focusOutEvent(QFocusEvent *e); virtual void changeEvent(QEvent *e); virtual void timerEvent(QTimerEvent *e); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qabstractitemdelegate.sip0000644000076500000240000000574312536324426022663 0ustar philstaff00000000000000// qabstractitemdelegate.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAbstractItemDelegate : QObject { %TypeHeaderCode #include %End public: enum EndEditHint { NoHint, EditNextItem, EditPreviousItem, SubmitModelCache, RevertModelCache, }; explicit QAbstractItemDelegate(QObject *parent /TransferThis/ = 0); virtual ~QAbstractItemDelegate(); virtual void paint(QPainter *painter, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const = 0; virtual QSize sizeHint(const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const = 0; virtual QWidget *createEditor(QWidget *parent /TransferThis/, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const /Factory/; virtual void setEditorData(QWidget *editor, const QModelIndex &index) const; virtual void setModelData(QWidget *editor, QAbstractItemModel *model /KeepReference/, const QModelIndex &index) const; virtual void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const; %If (Qt_5_0_0 -) virtual void destroyEditor(QWidget *editor, const QModelIndex &index) const; %End virtual bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index); static QString elidedText(const QFontMetrics &fontMetrics, int width, Qt::TextElideMode mode, const QString &text); %If (Qt_5_0_0 -) virtual bool helpEvent(QHelpEvent *event, QAbstractItemView *view, const QStyleOptionViewItem &option, const QModelIndex &index); %End public slots: %If (Qt_4_3_0 - Qt_5_0_0) bool helpEvent(QHelpEvent *event, QAbstractItemView *view, const QStyleOptionViewItem &option, const QModelIndex &index); %End signals: void commitData(QWidget *editor); void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint = QAbstractItemDelegate::NoHint); %If (Qt_4_4_0 -) void sizeHintChanged(const QModelIndex &); %End private: QAbstractItemDelegate(const QAbstractItemDelegate &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qabstractitemview.sip0000644000076500000240000002565612536324426022070 0ustar philstaff00000000000000// qabstractitemview.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QAbstractItemView : QAbstractScrollArea { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove, }; %End enum EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, EditKeyPressed, AnyKeyPressed, AllEditTriggers, }; typedef QFlags EditTriggers; enum ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, %If (Qt_4_2_0 -) PositionAtCenter, %End }; %If (Qt_4_2_0 -) enum ScrollMode { ScrollPerItem, ScrollPerPixel, }; %End enum SelectionBehavior { SelectItems, SelectRows, SelectColumns, }; enum SelectionMode { NoSelection, SingleSelection, MultiSelection, ExtendedSelection, ContiguousSelection, }; explicit QAbstractItemView(QWidget *parent /TransferThis/ = 0); virtual ~QAbstractItemView(); virtual void setModel(QAbstractItemModel *model /KeepReference/); QAbstractItemModel *model() const; virtual void setSelectionModel(QItemSelectionModel *selectionModel /KeepReference/); QItemSelectionModel *selectionModel() const; void setItemDelegate(QAbstractItemDelegate *delegate /KeepReference/); QAbstractItemDelegate *itemDelegate() const; void setSelectionMode(QAbstractItemView::SelectionMode mode); QAbstractItemView::SelectionMode selectionMode() const; void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior); QAbstractItemView::SelectionBehavior selectionBehavior() const; QModelIndex currentIndex() const; QModelIndex rootIndex() const; void setEditTriggers(QFlags triggers); QFlags editTriggers() const; void setAutoScroll(bool enable); bool hasAutoScroll() const; void setTabKeyNavigation(bool enable); bool tabKeyNavigation() const; void setDropIndicatorShown(bool enable); bool showDropIndicator() const; void setDragEnabled(bool enable); bool dragEnabled() const; void setAlternatingRowColors(bool enable); bool alternatingRowColors() const; void setIconSize(const QSize &size); QSize iconSize() const; void setTextElideMode(Qt::TextElideMode mode); Qt::TextElideMode textElideMode() const; virtual void keyboardSearch(const QString &search); virtual QRect visualRect(const QModelIndex &index) const = 0; virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible) = 0; virtual QModelIndex indexAt(const QPoint &p) const = 0; QSize sizeHintForIndex(const QModelIndex &index) const; virtual int sizeHintForRow(int row) const; virtual int sizeHintForColumn(int column) const; void openPersistentEditor(const QModelIndex &index); void closePersistentEditor(const QModelIndex &index); void setIndexWidget(const QModelIndex &index, QWidget *widget /Transfer/); %MethodCode // We have to break the association with any existing widget. QWidget *w = sipCpp->indexWidget(*a0); if (w) { PyObject *wo = sipGetPyObject(w, sipType_QWidget); if (wo) sipTransferTo(wo, 0); } Py_BEGIN_ALLOW_THREADS sipCpp->setIndexWidget(*a0, a1); Py_END_ALLOW_THREADS %End QWidget *indexWidget(const QModelIndex &index) const; public slots: virtual void reset(); virtual void setRootIndex(const QModelIndex &index); virtual void selectAll(); void edit(const QModelIndex &index); void clearSelection(); void setCurrentIndex(const QModelIndex &index); void scrollToTop(); void scrollToBottom(); %If (Qt_4_3_0 -) void update(); %End %If (Qt_4_3_0 -) void update(const QModelIndex &index); %End protected slots: %If (Qt_5_0_0 -) virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles /DocValue="[]"/ = QVector()); %End %If (- Qt_5_0_0) virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); %End virtual void rowsInserted(const QModelIndex &parent, int start, int end); virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); virtual void updateEditorData(); virtual void updateEditorGeometries(); virtual void updateGeometries(); virtual void verticalScrollbarAction(int action); virtual void horizontalScrollbarAction(int action); virtual void verticalScrollbarValueChanged(int value); virtual void horizontalScrollbarValueChanged(int value); virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint); virtual void commitData(QWidget *editor); virtual void editorDestroyed(QObject *editor); signals: void pressed(const QModelIndex &index); void clicked(const QModelIndex &index); void doubleClicked(const QModelIndex &index); void activated(const QModelIndex &index); void entered(const QModelIndex &index); void viewportEntered(); protected: void setHorizontalStepsPerItem(int steps); int horizontalStepsPerItem() const; void setVerticalStepsPerItem(int steps); int verticalStepsPerItem() const; enum CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, MoveHome, MoveEnd, MovePageUp, MovePageDown, MoveNext, MovePrevious, }; virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0; virtual int horizontalOffset() const = 0; virtual int verticalOffset() const = 0; virtual bool isIndexHidden(const QModelIndex &index) const = 0; virtual void setSelection(const QRect &rect, QFlags command) = 0; virtual QRegion visualRegionForSelection(const QItemSelection &selection) const = 0; virtual QModelIndexList selectedIndexes() const; virtual bool edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event); virtual QFlags selectionCommand(const QModelIndex &index, const QEvent *event = 0) const; virtual void startDrag(Qt::DropActions supportedActions); virtual QStyleOptionViewItem viewOptions() const; enum State { NoState, DraggingState, DragSelectingState, EditingState, ExpandingState, CollapsingState, %If (Qt_4_2_0 -) AnimatingState, %End }; QAbstractItemView::State state() const; void setState(QAbstractItemView::State state); void scheduleDelayedItemsLayout(); void executeDelayedItemsLayout(); void scrollDirtyRegion(int dx, int dy); void setDirtyRegion(const QRegion ®ion); QPoint dirtyRegionOffset() const; virtual bool event(QEvent *event); virtual bool viewportEvent(QEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseDoubleClickEvent(QMouseEvent *e); virtual void dragEnterEvent(QDragEnterEvent *e); virtual void dragMoveEvent(QDragMoveEvent *e); virtual void dragLeaveEvent(QDragLeaveEvent *e); virtual void dropEvent(QDropEvent *e); virtual void focusInEvent(QFocusEvent *e); virtual void focusOutEvent(QFocusEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual void resizeEvent(QResizeEvent *e); virtual void timerEvent(QTimerEvent *e); enum DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport, }; QAbstractItemView::DropIndicatorPosition dropIndicatorPosition() const; public: %If (Qt_4_2_0 -) void setVerticalScrollMode(QAbstractItemView::ScrollMode mode); %End %If (Qt_4_2_0 -) QAbstractItemView::ScrollMode verticalScrollMode() const; %End %If (Qt_4_2_0 -) void setHorizontalScrollMode(QAbstractItemView::ScrollMode mode); %End %If (Qt_4_2_0 -) QAbstractItemView::ScrollMode horizontalScrollMode() const; %End %If (Qt_4_2_0 -) void setDragDropOverwriteMode(bool overwrite); %End %If (Qt_4_2_0 -) bool dragDropOverwriteMode() const; %End %If (Qt_4_2_0 -) void setDragDropMode(QAbstractItemView::DragDropMode behavior); %End %If (Qt_4_2_0 -) QAbstractItemView::DragDropMode dragDropMode() const; %End %If (Qt_4_2_0 -) void setItemDelegateForRow(int row, QAbstractItemDelegate *delegate /KeepReference/); %End %If (Qt_4_2_0 -) QAbstractItemDelegate *itemDelegateForRow(int row) const; %End %If (Qt_4_2_0 -) void setItemDelegateForColumn(int column, QAbstractItemDelegate *delegate /KeepReference/); %End %If (Qt_4_2_0 -) QAbstractItemDelegate *itemDelegateForColumn(int column) const; %End %If (Qt_4_2_0 -) QAbstractItemDelegate *itemDelegate(const QModelIndex &index) const; %End %If (Qt_4_2_0 -) virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; %End %If (Qt_4_4_0 -) void setAutoScrollMargin(int margin); %End %If (Qt_4_4_0 -) int autoScrollMargin() const; %End protected: %If (Qt_4_2_0 -) virtual bool focusNextPrevChild(bool next); %End %If (Qt_4_2_0 -) virtual void inputMethodEvent(QInputMethodEvent *event); %End public: %If (Qt_4_6_0 -) void setDefaultDropAction(Qt::DropAction dropAction); %End %If (Qt_4_6_0 -) Qt::DropAction defaultDropAction() const; %End private: QAbstractItemView(const QAbstractItemView &); }; QFlags operator|(QAbstractItemView::EditTrigger f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qabstractprintdialog.sip0000644000076500000240000000642412536324426022543 0ustar philstaff00000000000000// qabstractprintdialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End %If (PyQt_Printer) class QAbstractPrintDialog : QDialog { %TypeHeaderCode #include %End public: enum PrintRange { AllPages, Selection, PageRange, %If (Qt_4_7_0 -) CurrentPage, %End }; %If (Py_v3) enum PrintDialogOption { None /PyName=None_/, PrintToFile, PrintSelection, PrintPageRange, PrintCollateCopies, %If (Qt_4_4_0 -) PrintShowPageSize, %End %If (Qt_4_4_0 -) DontUseSheet, %End %If (Qt_4_7_0 -) PrintCurrentPage, %End }; %End %If (!Py_v3) // Backwards compatible PrintDialogOption for Python v2. // Note that we have to duplicate the whole enum because MetaSIP doesn't // support handwritten code in enum definitions. enum PrintDialogOption { None, None /PyName=None_/, PrintToFile, PrintSelection, PrintPageRange, PrintCollateCopies, PrintShowPageSize, PrintCurrentPage }; %End typedef QFlags PrintDialogOptions; %If (PyQt_PrintDialog) QAbstractPrintDialog(QPrinter *printer, QWidget *parent /TransferThis/ = 0); %If (Qt_4_5_0 -) virtual ~QAbstractPrintDialog(); %End virtual int exec() = 0 /PyName=exec_,ReleaseGIL/; %If (Py_v3) virtual int exec() = 0 /ReleaseGIL/; %End void addEnabledOption(QAbstractPrintDialog::PrintDialogOption option); void setEnabledOptions(QFlags options); QFlags enabledOptions() const; bool isOptionEnabled(QAbstractPrintDialog::PrintDialogOption option) const; void setPrintRange(QAbstractPrintDialog::PrintRange range); QAbstractPrintDialog::PrintRange printRange() const; void setMinMax(int min, int max); int minPage() const; int maxPage() const; void setFromTo(int fromPage, int toPage); int fromPage() const; int toPage() const; QPrinter *printer() const; %If (Qt_4_4_0 -) void setOptionTabs(const QList &tabs); %End private: QAbstractPrintDialog(const QAbstractPrintDialog &); public: %End // PyQt_PrintDialog }; %End %If (PyQt_Printer) QFlags operator|(QAbstractPrintDialog::PrintDialogOption f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qabstractproxymodel.sip0000644000076500000240000000720512536324426022427 0ustar philstaff00000000000000// qabstractproxymodel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAbstractProxyModel : QAbstractItemModel { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QAbstractProxyModel(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QAbstractProxyModel(QObject *parent /TransferThis/ = 0); %End virtual ~QAbstractProxyModel(); virtual void setSourceModel(QAbstractItemModel *sourceModel /KeepReference/); QAbstractItemModel *sourceModel() const; virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const = 0; virtual QModelIndex mapFromSource(const QModelIndex &sourceIndex) const = 0; virtual QItemSelection mapSelectionToSource(const QItemSelection &selection) const; virtual QItemSelection mapSelectionFromSource(const QItemSelection &selection) const; virtual bool submit(); virtual void revert(); %If (Qt_4_4_0 -) virtual QVariant data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const; %End %If (Qt_4_4_0 -) virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); %End %If (Qt_4_2_0 -) virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const; %End %If (Qt_4_4_0 -) virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole); %End %If (Qt_4_3_0 -) virtual QMap itemData(const QModelIndex &index) const /DocType="Py_v3:dict-of-int-object;dict-of-int-QVariant"/; %End %If (Qt_4_2_0 -) virtual Qt::ItemFlags flags(const QModelIndex &index) const; %End %If (Qt_4_8_0 -) virtual bool setItemData(const QModelIndex &index, const QMap &roles /DocType="Py_v3:dict-of-int-object;dict-of-int-QVariant"/); %End %If (Qt_4_8_0 -) virtual QModelIndex buddy(const QModelIndex &index) const; %End %If (Qt_4_8_0 -) virtual bool canFetchMore(const QModelIndex &parent) const; %End %If (Qt_4_8_0 -) virtual void fetchMore(const QModelIndex &parent); %End %If (Qt_4_8_0 -) virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); %End %If (Qt_4_8_0 -) virtual QSize span(const QModelIndex &index) const; %End %If (Qt_4_8_0 -) virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const; %End %If (Qt_4_8_0 -) virtual QMimeData *mimeData(const QModelIndexList &indexes) const /TransferBack/; %End %If (Qt_4_8_0 -) virtual QStringList mimeTypes() const; %End %If (Qt_4_8_0 -) virtual Qt::DropActions supportedDropActions() const; %End %If (Qt_5_0_0 -) virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const; %End signals: %If (Qt_5_0_0 -) void sourceModelChanged(); %End private: QAbstractProxyModel(const QAbstractProxyModel &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qabstractscrollarea.sip0000644000076500000240000000664212536324426022360 0ustar philstaff00000000000000// qabstractscrollarea.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAbstractScrollArea : QFrame { %TypeHeaderCode #include %End public: explicit QAbstractScrollArea(QWidget *parent /TransferThis/ = 0); virtual ~QAbstractScrollArea(); Qt::ScrollBarPolicy verticalScrollBarPolicy() const; void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy); QScrollBar *verticalScrollBar() const /Transfer/; Qt::ScrollBarPolicy horizontalScrollBarPolicy() const; void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy); QScrollBar *horizontalScrollBar() const /Transfer/; QWidget *viewport() const /Transfer/; QSize maximumViewportSize() const; virtual QSize minimumSizeHint() const; virtual QSize sizeHint() const; protected: void setViewportMargins(int left, int top, int right, int bottom); virtual bool event(QEvent *); virtual bool viewportEvent(QEvent *); virtual void resizeEvent(QResizeEvent *); virtual void paintEvent(QPaintEvent *); virtual void mousePressEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void mouseDoubleClickEvent(QMouseEvent *); virtual void mouseMoveEvent(QMouseEvent *); virtual void wheelEvent(QWheelEvent *); virtual void contextMenuEvent(QContextMenuEvent *); virtual void dragEnterEvent(QDragEnterEvent *); virtual void dragMoveEvent(QDragMoveEvent *); virtual void dragLeaveEvent(QDragLeaveEvent *); virtual void dropEvent(QDropEvent *); virtual void keyPressEvent(QKeyEvent *); %If (Qt_5_0_0 -) virtual bool eventFilter(QObject *, QEvent *); %End virtual void scrollContentsBy(int dx, int dy); public: %If (Qt_4_2_0 -) void setVerticalScrollBar(QScrollBar *scrollbar /Transfer/); %End %If (Qt_4_2_0 -) void setHorizontalScrollBar(QScrollBar *scrollbar /Transfer/); %End %If (Qt_4_2_0 -) QWidget *cornerWidget() const; %End %If (Qt_4_2_0 -) void setCornerWidget(QWidget *widget /Transfer/); %End %If (Qt_4_2_0 -) void addScrollBarWidget(QWidget *widget /Transfer/, Qt::Alignment alignment); %End %If (Qt_4_2_0 -) QWidgetList scrollBarWidgets(Qt::Alignment alignment) /Transfer/; %End %If (Qt_4_2_0 -) void setViewport(QWidget *widget /Transfer/); %End %If (Qt_5_0_0 -) virtual void setupViewport(QWidget *viewport); %End protected slots: %If (Qt_4_2_0 - Qt_5_0_0) void setupViewport(QWidget *viewport); %End protected: %If (Qt_4_6_0 -) void setViewportMargins(const QMargins &margins); %End private: QAbstractScrollArea(const QAbstractScrollArea &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qabstractslider.sip0000644000076500000240000000576512536324426021520 0ustar philstaff00000000000000// qabstractslider.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAbstractSlider : QWidget { %TypeHeaderCode #include %End public: explicit QAbstractSlider(QWidget *parent /TransferThis/ = 0); virtual ~QAbstractSlider(); Qt::Orientation orientation() const; void setMinimum(int); int minimum() const; void setMaximum(int); int maximum() const; void setRange(int min, int max); void setSingleStep(int); int singleStep() const; void setPageStep(int); int pageStep() const; void setTracking(bool enable); bool hasTracking() const; void setSliderDown(bool); bool isSliderDown() const; void setSliderPosition(int); int sliderPosition() const; void setInvertedAppearance(bool); bool invertedAppearance() const; void setInvertedControls(bool); bool invertedControls() const; enum SliderAction { SliderNoAction, SliderSingleStepAdd, SliderSingleStepSub, SliderPageStepAdd, SliderPageStepSub, SliderToMinimum, SliderToMaximum, SliderMove, }; int value() const; void triggerAction(QAbstractSlider::SliderAction action); public slots: void setValue(int); void setOrientation(Qt::Orientation); signals: void valueChanged(int value); void sliderPressed(); void sliderMoved(int position); void sliderReleased(); void rangeChanged(int min, int max); void actionTriggered(int action); protected: void setRepeatAction(QAbstractSlider::SliderAction action, int thresholdTime = 500, int repeatTime = 50); QAbstractSlider::SliderAction repeatAction() const; enum SliderChange { SliderRangeChange, SliderOrientationChange, SliderStepsChange, SliderValueChange, }; virtual void sliderChange(QAbstractSlider::SliderChange change); virtual bool event(QEvent *e); virtual void keyPressEvent(QKeyEvent *ev); virtual void timerEvent(QTimerEvent *); virtual void wheelEvent(QWheelEvent *e); virtual void changeEvent(QEvent *e); private: QAbstractSlider(const QAbstractSlider &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qabstractspinbox.sip0000644000076500000240000001073112536324426021705 0ustar philstaff00000000000000// qabstractspinbox.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QAbstractSpinBox : QWidget { %TypeHeaderCode #include %End public: explicit QAbstractSpinBox(QWidget *parent /TransferThis/ = 0); virtual ~QAbstractSpinBox(); enum StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled, }; typedef QFlags StepEnabled; enum ButtonSymbols { UpDownArrows, PlusMinus, %If (Qt_4_3_0 -) NoButtons, %End }; QAbstractSpinBox::ButtonSymbols buttonSymbols() const; void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs); QString text() const; QString specialValueText() const; void setSpecialValueText(const QString &s); bool wrapping() const; void setWrapping(bool w); void setReadOnly(bool r); bool isReadOnly() const; void setAlignment(Qt::Alignment flag); Qt::Alignment alignment() const; void setFrame(bool); bool hasFrame() const; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void interpretText(); virtual bool event(QEvent *event); virtual QValidator::State validate(QString &input /In,Out/, int &pos /In,Out/) const /API=QString:2 - /; virtual QValidator::State validate(QString &input /Constrained/, int &pos /In,Out/) const /API=QString: - 2/; virtual void fixup(QString &input /In,Out/) const /API=QString:2 - /; virtual void fixup(QString &input /Constrained/) const /API=QString: - 2/; virtual void stepBy(int steps); public slots: void stepUp(); void stepDown(); void selectAll(); virtual void clear(); signals: void editingFinished(); protected: virtual void resizeEvent(QResizeEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual void keyReleaseEvent(QKeyEvent *e); virtual void wheelEvent(QWheelEvent *e); virtual void focusInEvent(QFocusEvent *e); virtual void focusOutEvent(QFocusEvent *e); virtual void contextMenuEvent(QContextMenuEvent *e); virtual void changeEvent(QEvent *e); virtual void closeEvent(QCloseEvent *e); virtual void hideEvent(QHideEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void timerEvent(QTimerEvent *e); virtual void paintEvent(QPaintEvent *e); virtual void showEvent(QShowEvent *e); QLineEdit *lineEdit() const; void setLineEdit(QLineEdit *e /Transfer/); virtual QFlags stepEnabled() const; public: %If (Qt_4_2_0 -) enum CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue, }; %End %If (Qt_4_2_0 -) void setCorrectionMode(QAbstractSpinBox::CorrectionMode cm); %End %If (Qt_4_2_0 -) QAbstractSpinBox::CorrectionMode correctionMode() const; %End %If (Qt_4_2_0 -) bool hasAcceptableInput() const; %End %If (Qt_4_2_0 -) void setAccelerated(bool on); %End %If (Qt_4_2_0 -) bool isAccelerated() const; %End %If (Qt_4_3_0 -) void setKeyboardTracking(bool kt); %End %If (Qt_4_3_0 -) bool keyboardTracking() const; %End protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionSpinBox *option) const; %End public: %If (Qt_4_6_0 -) virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const; %End private: QAbstractSpinBox(const QAbstractSpinBox &); }; QFlags operator|(QAbstractSpinBox::StepEnabledFlag f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qabstracttextdocumentlayout.sip0000644000076500000240000000661512536324426024212 0ustar philstaff00000000000000// qabstracttextdocumentlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAbstractTextDocumentLayout : QObject { %TypeHeaderCode #include %End public: explicit QAbstractTextDocumentLayout(QTextDocument *doc); virtual ~QAbstractTextDocumentLayout(); struct Selection { %TypeHeaderCode #include %End QTextCursor cursor; QTextCharFormat format; }; struct PaintContext { %TypeHeaderCode #include %End PaintContext(); int cursorPosition; QPalette palette; QRectF clip; QVector selections; }; virtual void draw(QPainter *painter, const QAbstractTextDocumentLayout::PaintContext &context) = 0; virtual int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const = 0; QString anchorAt(const QPointF &pos) const; virtual int pageCount() const = 0; virtual QSizeF documentSize() const = 0; virtual QRectF frameBoundingRect(QTextFrame *frame) const = 0; virtual QRectF blockBoundingRect(const QTextBlock &block) const = 0; void setPaintDevice(QPaintDevice *device); QPaintDevice *paintDevice() const; QTextDocument *document() const; void registerHandler(int objectType, QObject *component /KeepReference/); QTextObjectInterface *handlerForObject(int objectType) const; signals: void update(const QRectF &rect = QRectF(0.0, 0.0, 1.0e+9, 1.0e+9)); void documentSizeChanged(const QSizeF &newSize); void pageCountChanged(int newPages); %If (Qt_4_4_0 -) void updateBlock(const QTextBlock &block); %End protected: virtual void documentChanged(int from, int charsRemoved, int charsAdded) = 0; virtual void resizeInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format); virtual void positionInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format); virtual void drawInlineObject(QPainter *painter, const QRectF &rect, QTextInlineObject object, int posInDocument, const QTextFormat &format); QTextCharFormat format(int pos); }; class QTextObjectInterface { %TypeHeaderCode #include %End public: virtual ~QTextObjectInterface(); virtual QSizeF intrinsicSize(QTextDocument *doc, int posInDocument, const QTextFormat &format) = 0; virtual void drawObject(QPainter *painter, const QRectF &rect, QTextDocument *doc, int posInDocument, const QTextFormat &format) = 0; }; PyQt-x11-gpl-4.11.4/sip/QtGui/qaction.sip0000644000076500000240000001064712536324426017762 0ustar philstaff00000000000000// qaction.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QAction : QObject { %TypeHeaderCode #include %End public: explicit QAction(QObject *parent /TransferThis/); QAction(const QString &text, QObject *parent /TransferThis/); QAction(const QIcon &icon, const QString &text, QObject *parent /TransferThis/); virtual ~QAction(); void setActionGroup(QActionGroup *group /KeepReference/); QActionGroup *actionGroup() const; void setIcon(const QIcon &icon); QIcon icon() const; void setText(const QString &text); QString text() const; void setIconText(const QString &text); QString iconText() const; void setToolTip(const QString &tip); QString toolTip() const; void setStatusTip(const QString &statusTip); QString statusTip() const; void setWhatsThis(const QString &what); QString whatsThis() const; QMenu *menu() const; void setMenu(QMenu *menu /KeepReference/); void setSeparator(bool b); bool isSeparator() const; void setShortcut(const QKeySequence &shortcut); QKeySequence shortcut() const; void setShortcutContext(Qt::ShortcutContext context); Qt::ShortcutContext shortcutContext() const; void setFont(const QFont &font); QFont font() const; void setCheckable(bool); bool isCheckable() const; QVariant data() const; void setData(const QVariant &var); bool isChecked() const; bool isEnabled() const; bool isVisible() const; enum ActionEvent { Trigger, Hover, }; void activate(QAction::ActionEvent event); bool showStatusText(QWidget *widget = 0); QWidget *parentWidget() const; protected: virtual bool event(QEvent *); public slots: void trigger(); void hover(); void setChecked(bool); void toggle(); void setEnabled(bool); void setDisabled(bool b); void setVisible(bool); signals: void changed(); void triggered(bool checked = false) /PyQtSignalHack=3/; void hovered(); void toggled(bool); public: %If (Qt_4_2_0 -) enum MenuRole { NoRole, TextHeuristicRole, ApplicationSpecificRole, AboutQtRole, AboutRole, PreferencesRole, QuitRole, }; %End %If (Qt_4_2_0 -) void setShortcuts(const QList &shortcuts); %End %If (Qt_4_2_0 -) void setShortcuts(QKeySequence::StandardKey); %End %If (Qt_4_2_0 -) QList shortcuts() const; %End %If (Qt_4_2_0 -) void setAutoRepeat(bool); %End %If (Qt_4_2_0 -) bool autoRepeat() const; %End %If (Qt_4_2_0 -) void setMenuRole(QAction::MenuRole menuRole); %End %If (Qt_4_2_0 -) QAction::MenuRole menuRole() const; %End %If (Qt_4_2_0 -) QList associatedWidgets() const; %End %If (Qt_4_5_0 -) QList associatedGraphicsWidgets() const; %End %If (Qt_4_4_0 -) void setIconVisibleInMenu(bool visible); %End %If (Qt_4_4_0 -) bool isIconVisibleInMenu() const; %End %If (Qt_4_6_0 - Qt_5_0_0) enum SoftKeyRole { NoSoftKey, PositiveSoftKey, NegativeSoftKey, SelectSoftKey, }; %End %If (Qt_4_6_0 -) enum Priority { LowPriority, NormalPriority, HighPriority, }; %End %If (Qt_4_6_0 -) void setPriority(QAction::Priority priority); %End %If (Qt_4_6_0 -) QAction::Priority priority() const; %End %If (Qt_4_6_0 - Qt_5_0_0) void setSoftKeyRole(QAction::SoftKeyRole softKeyRole); %End %If (Qt_4_6_0 - Qt_5_0_0) QAction::SoftKeyRole softKeyRole() const; %End private: QAction(const QAction &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qactiongroup.sip0000644000076500000240000000342712536324426021035 0ustar philstaff00000000000000// qactiongroup.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QActionGroup : QObject { %TypeHeaderCode #include %End public: explicit QActionGroup(QObject *parent /TransferThis/); virtual ~QActionGroup(); QAction *addAction(QAction *a /Transfer/); QAction *addAction(const QString &text) /Transfer/; QAction *addAction(const QIcon &icon, const QString &text) /Transfer/; void removeAction(QAction *a /TransferBack/); QList actions() const; QAction *checkedAction() const; bool isExclusive() const; bool isEnabled() const; bool isVisible() const; public slots: void setEnabled(bool); void setDisabled(bool b); void setVisible(bool); void setExclusive(bool); signals: void triggered(QAction *); %If (- Qt_5_0_0) void selected(QAction *); %End void hovered(QAction *); private: QActionGroup(const QActionGroup &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qapplication.sip0000644000076500000240000013257112536324426021011 0ustar philstaff00000000000000// qapplication.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) %If (WS_X11) // Mapped type for XEvent. // Map XEvent onto sip.voidptr so that Python code can use the struct module to // read and/or update it. %MappedType XEvent /NoRelease, DocType="sip.voidptr"/ { %TypeHeaderCode #include %End %ConvertToTypeCode void *addr = sipConvertToVoidPtr(sipPy); if (!sipIsErr) return !PyErr_Occurred(); *sipCppPtr = reinterpret_cast(addr); return 0; %End %ConvertFromTypeCode return sipConvertFromVoidPtr(sipCpp); %End }; %End %End %If (- Qt_5_0_0) %If (WS_X11) void qt_x11_wait_for_window_manager(QWidget *widget); %End %End %If (- Qt_5_0_0) %If (WS_MACX) void qt_set_sequence_auto_mnemonic(bool enable); %End %End %If (- Qt_5_0_0) %If (WS_MACX) void qt_mac_set_menubar_icons(bool enable); %End %End %If (- Qt_5_0_0) %If (WS_MACX) void qt_mac_set_menubar_merge(bool enable); %End %End %If (- Qt_5_0_0) %If (WS_MACX) void qt_mac_set_native_menubar(bool enable); %End %End %If (- Qt_5_0_0) %If (WS_MACX) void qt_mac_secure_keyboard(bool enable); %End %End %If (- Qt_5_0_0) %If (WS_MACX) void qt_mac_set_dock_menu(QMenu *menu /KeepReference/); %End %End %If (- Qt_5_0_0) %If (WS_MACX) void qt_mac_set_press_and_hold_context(bool enable); %End %End %If (- Qt_5_0_0) // class QMacCocoaViewContainer : public QWidget %If (WS_MACX) %If (Qt_4_5_0 -) class QMacCocoaViewContainer : QWidget { %TypeHeaderCode #include %End public: QMacCocoaViewContainer(void *cocoaViewToWrap, QWidget *parent /TransferThis/ = 0); virtual ~QMacCocoaViewContainer(); void setCocoaView(void *cocoaViewToWrap); void *cocoaView() const; private: QMacCocoaViewContainer(const QMacCocoaViewContainer &); }; %End %End %End // QApplication *qApp QApplication *qApp { %AccessCode // Qt implements this has a #define to a function call so we have to handle // it like this. return qApp; %End }; %If (Qt_5_0_0 -) class QApplication : QGuiApplication { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QScreen, &sipType_QScreen, -1, 1}, {sipName_QSyntaxHighlighter, &sipType_QSyntaxHighlighter, -1, 2}, {sipName_QAction, &sipType_QAction, 40, 3}, {sipName_QDrag, &sipType_QDrag, -1, 4}, {sipName_QPyTextObject, &sipType_QPyTextObject, -1, 5}, {sipName_QGraphicsTransform, &sipType_QGraphicsTransform, 41, 6}, {sipName_QLayout, &sipType_QLayout, 43, 7}, {sipName_QGraphicsItemAnimation, &sipType_QGraphicsItemAnimation, -1, 8}, {sipName_QGuiApplication, &sipType_QGuiApplication, 49, 9}, {sipName_QSystemTrayIcon, &sipType_QSystemTrayIcon, -1, 10}, {sipName_QShortcut, &sipType_QShortcut, -1, 11}, {sipName_QTextDocument, &sipType_QTextDocument, -1, 12}, {sipName_QMouseEventTransition, &sipType_QMouseEventTransition, -1, 13}, {sipName_QCompleter, &sipType_QCompleter, -1, 14}, {sipName_QWidget, &sipType_QWidget, 50, 15}, {sipName_QGraphicsEffect, &sipType_QGraphicsEffect, 126, 16}, {sipName_QTextObject, &sipType_QTextObject, 130, 17}, {sipName_QUndoGroup, &sipType_QUndoGroup, -1, 18}, {sipName_QItemSelectionModel, &sipType_QItemSelectionModel, -1, 19}, {sipName_QGraphicsScene, &sipType_QGraphicsScene, -1, 20}, {sipName_QUndoStack, &sipType_QUndoStack, -1, 21}, {sipName_QAbstractProxyModel, &sipType_QAbstractProxyModel, 134, 22}, {sipName_QMovie, &sipType_QMovie, -1, 23}, {sipName_QAbstractTextDocumentLayout, &sipType_QAbstractTextDocumentLayout, 136, 24}, {sipName_QDirModel, &sipType_QDirModel, -1, 25}, {sipName_QKeyEventTransition, &sipType_QKeyEventTransition, -1, 26}, {sipName_QValidator, &sipType_QValidator, 137, 27}, {sipName_QClipboard, &sipType_QClipboard, -1, 28}, {sipName_QFileSystemModel, &sipType_QFileSystemModel, -1, 29}, {sipName_QStringListModel, &sipType_QStringListModel, -1, 30}, {sipName_QGraphicsObject, &sipType_QGraphicsObject, 140, 31}, {sipName_QGraphicsAnchor, &sipType_QGraphicsAnchor, -1, 32}, {sipName_QGesture, &sipType_QGesture, 143, 33}, {sipName_QAbstractItemDelegate, &sipType_QAbstractItemDelegate, 148, 34}, {sipName_QButtonGroup, &sipType_QButtonGroup, -1, 35}, {sipName_QDataWidgetMapper, &sipType_QDataWidgetMapper, -1, 36}, {sipName_QStandardItemModel, &sipType_QStandardItemModel, -1, 37}, {sipName_QSessionManager, &sipType_QSessionManager, -1, 38}, {sipName_QStyle, &sipType_QStyle, 150, 39}, {sipName_QActionGroup, &sipType_QActionGroup, -1, -1}, {sipName_QWidgetAction, &sipType_QWidgetAction, -1, -1}, {sipName_QGraphicsRotation, &sipType_QGraphicsRotation, -1, 42}, {sipName_QGraphicsScale, &sipType_QGraphicsScale, -1, -1}, {sipName_QStackedLayout, &sipType_QStackedLayout, -1, 44}, {sipName_QBoxLayout, &sipType_QBoxLayout, 47, 45}, {sipName_QGridLayout, &sipType_QGridLayout, -1, 46}, {sipName_QFormLayout, &sipType_QFormLayout, -1, -1}, {sipName_QHBoxLayout, &sipType_QHBoxLayout, -1, 48}, {sipName_QVBoxLayout, &sipType_QVBoxLayout, -1, -1}, {sipName_QApplication, &sipType_QApplication, -1, -1}, {sipName_QFrame, &sipType_QFrame, 78, 51}, {sipName_QWizardPage, &sipType_QWizardPage, -1, 52}, {sipName_QMdiSubWindow, &sipType_QMdiSubWindow, -1, 53}, {sipName_QDialog, &sipType_QDialog, 100, 54}, {sipName_QDesktopWidget, &sipType_QDesktopWidget, -1, 55}, {sipName_QAbstractSlider, &sipType_QAbstractSlider, 112, 56}, {sipName_QFocusFrame, &sipType_QFocusFrame, -1, 57}, {sipName_QTabWidget, &sipType_QTabWidget, -1, 58}, {sipName_QComboBox, &sipType_QComboBox, 115, 59}, {sipName_QProgressBar, &sipType_QProgressBar, -1, 60}, {sipName_QRubberBand, &sipType_QRubberBand, -1, 61}, {sipName_QLineEdit, &sipType_QLineEdit, -1, 62}, {sipName_QStatusBar, &sipType_QStatusBar, -1, 63}, {sipName_QAbstractButton, &sipType_QAbstractButton, 116, 64}, {sipName_QSplashScreen, &sipType_QSplashScreen, -1, 65}, {sipName_QTabBar, &sipType_QTabBar, -1, 66}, {sipName_QDialogButtonBox, &sipType_QDialogButtonBox, -1, 67}, {sipName_QGroupBox, &sipType_QGroupBox, -1, 68}, {sipName_QSizeGrip, &sipType_QSizeGrip, -1, 69}, {sipName_QAbstractSpinBox, &sipType_QAbstractSpinBox, 121, 70}, {sipName_QMenu, &sipType_QMenu, -1, 71}, {sipName_QToolBar, &sipType_QToolBar, -1, 72}, {sipName_QDockWidget, &sipType_QDockWidget, -1, 73}, {sipName_QMainWindow, &sipType_QMainWindow, -1, 74}, {sipName_QSplitterHandle, &sipType_QSplitterHandle, -1, 75}, {sipName_QMenuBar, &sipType_QMenuBar, -1, 76}, #if defined(SIP_FEATURE_PyQt_PrintPreviewWidget) {sipName_QPrintPreviewWidget, &sipType_QPrintPreviewWidget, -1, 77}, #else {0, 0, -1, 77}, #endif {sipName_QCalendarWidget, &sipType_QCalendarWidget, -1, -1}, {sipName_QLabel, &sipType_QLabel, -1, 79}, {sipName_QAbstractScrollArea, &sipType_QAbstractScrollArea, 84, 80}, {sipName_QStackedWidget, &sipType_QStackedWidget, -1, 81}, {sipName_QLCDNumber, &sipType_QLCDNumber, -1, 82}, {sipName_QSplitter, &sipType_QSplitter, -1, 83}, {sipName_QToolBox, &sipType_QToolBox, -1, -1}, {sipName_QScrollArea, &sipType_QScrollArea, -1, 85}, {sipName_QAbstractItemView, &sipType_QAbstractItemView, 90, 86}, {sipName_QPlainTextEdit, &sipType_QPlainTextEdit, -1, 87}, {sipName_QMdiArea, &sipType_QMdiArea, -1, 88}, {sipName_QTextEdit, &sipType_QTextEdit, 99, 89}, {sipName_QGraphicsView, &sipType_QGraphicsView, -1, -1}, {sipName_QColumnView, &sipType_QColumnView, -1, 91}, {sipName_QTreeView, &sipType_QTreeView, 95, 92}, {sipName_QTableView, &sipType_QTableView, 96, 93}, {sipName_QListView, &sipType_QListView, 97, 94}, {sipName_QHeaderView, &sipType_QHeaderView, -1, -1}, {sipName_QTreeWidget, &sipType_QTreeWidget, -1, -1}, {sipName_QTableWidget, &sipType_QTableWidget, -1, -1}, {sipName_QUndoView, &sipType_QUndoView, -1, 98}, {sipName_QListWidget, &sipType_QListWidget, -1, -1}, {sipName_QTextBrowser, &sipType_QTextBrowser, -1, -1}, {sipName_QMessageBox, &sipType_QMessageBox, -1, 101}, #if defined(SIP_FEATURE_PyQt_PrintDialog) {sipName_QPageSetupDialog, &sipType_QPageSetupDialog, -1, 102}, #else {0, 0, -1, 102}, #endif {sipName_QWizard, &sipType_QWizard, -1, 103}, {sipName_QFileDialog, &sipType_QFileDialog, -1, 104}, {sipName_QInputDialog, &sipType_QInputDialog, -1, 105}, #if defined(SIP_FEATURE_PyQt_Printer) {sipName_QAbstractPrintDialog, &sipType_QAbstractPrintDialog, 111, 106}, #else {0, 0, 111, 106}, #endif {sipName_QFontDialog, &sipType_QFontDialog, -1, 107}, {sipName_QProgressDialog, &sipType_QProgressDialog, -1, 108}, {sipName_QColorDialog, &sipType_QColorDialog, -1, 109}, #if defined(SIP_FEATURE_PyQt_PrintPreviewDialog) {sipName_QPrintPreviewDialog, &sipType_QPrintPreviewDialog, -1, 110}, #else {0, 0, -1, 110}, #endif {sipName_QErrorMessage, &sipType_QErrorMessage, -1, -1}, #if defined(SIP_FEATURE_PyQt_PrintDialog) {sipName_QPrintDialog, &sipType_QPrintDialog, -1, -1}, #else {0, 0, -1, -1}, #endif {sipName_QScrollBar, &sipType_QScrollBar, -1, 113}, {sipName_QDial, &sipType_QDial, -1, 114}, {sipName_QSlider, &sipType_QSlider, -1, -1}, {sipName_QFontComboBox, &sipType_QFontComboBox, -1, -1}, {sipName_QToolButton, &sipType_QToolButton, -1, 117}, {sipName_QRadioButton, &sipType_QRadioButton, -1, 118}, {sipName_QCheckBox, &sipType_QCheckBox, -1, 119}, {sipName_QPushButton, &sipType_QPushButton, 120, -1}, {sipName_QCommandLinkButton, &sipType_QCommandLinkButton, -1, -1}, {sipName_QSpinBox, &sipType_QSpinBox, -1, 122}, {sipName_QDoubleSpinBox, &sipType_QDoubleSpinBox, -1, 123}, {sipName_QDateTimeEdit, &sipType_QDateTimeEdit, 124, -1}, {sipName_QDateEdit, &sipType_QDateEdit, -1, 125}, {sipName_QTimeEdit, &sipType_QTimeEdit, -1, -1}, {sipName_QGraphicsColorizeEffect, &sipType_QGraphicsColorizeEffect, -1, 127}, {sipName_QGraphicsDropShadowEffect, &sipType_QGraphicsDropShadowEffect, -1, 128}, {sipName_QGraphicsBlurEffect, &sipType_QGraphicsBlurEffect, -1, 129}, {sipName_QGraphicsOpacityEffect, &sipType_QGraphicsOpacityEffect, -1, -1}, {sipName_QTextBlockGroup, &sipType_QTextBlockGroup, 132, 131}, {sipName_QTextFrame, &sipType_QTextFrame, 133, -1}, {sipName_QTextList, &sipType_QTextList, -1, -1}, {sipName_QTextTable, &sipType_QTextTable, -1, -1}, {sipName_QSortFilterProxyModel, &sipType_QSortFilterProxyModel, -1, 135}, {sipName_QIdentityProxyModel, &sipType_QIdentityProxyModel, -1, -1}, {sipName_QPlainTextDocumentLayout, &sipType_QPlainTextDocumentLayout, -1, -1}, {sipName_QRegExpValidator, &sipType_QRegExpValidator, -1, 138}, {sipName_QDoubleValidator, &sipType_QDoubleValidator, -1, 139}, {sipName_QIntValidator, &sipType_QIntValidator, -1, -1}, {sipName_QGraphicsWidget, &sipType_QGraphicsWidget, 142, 141}, {sipName_QGraphicsTextItem, &sipType_QGraphicsTextItem, -1, -1}, {sipName_QGraphicsProxyWidget, &sipType_QGraphicsProxyWidget, -1, -1}, {sipName_QTapAndHoldGesture, &sipType_QTapAndHoldGesture, -1, 144}, {sipName_QTapGesture, &sipType_QTapGesture, -1, 145}, {sipName_QPanGesture, &sipType_QPanGesture, -1, 146}, {sipName_QPinchGesture, &sipType_QPinchGesture, -1, 147}, {sipName_QSwipeGesture, &sipType_QSwipeGesture, -1, -1}, {sipName_QStyledItemDelegate, &sipType_QStyledItemDelegate, -1, 149}, {sipName_QItemDelegate, &sipType_QItemDelegate, -1, -1}, {sipName_QCommonStyle, &sipType_QCommonStyle, -1, -1}, }; int i = 0; sipType = NULL; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: QApplication(SIP_PYLIST argv /DocType="list-of-str"/) /PostHook=__pyQtQAppHook__/ [(int &argc, char **argv, int = ApplicationFlags)]; %MethodCode // The Python interface is a list of argument strings that is modified. int argc; char **argv; // Convert the list. if ((argv = qpycore_ArgvToC(a0, argc)) == NULL) sipIsErr = 1; else { // Create it now the arguments are right. static int nargc; nargc = argc; Py_BEGIN_ALLOW_THREADS sipCpp = new sipQApplication(nargc, argv, QCoreApplication::ApplicationFlags); Py_END_ALLOW_THREADS // Now modify the original list. qpycore_UpdatePyArgv(a0, argc, argv); } %End virtual ~QApplication(); %MethodCode // Make sure all top level widgets are not owned by Python and so won't be // destroyed by the garbage collector after QApplication is destroyed. QWidgetList tlw = QApplication::topLevelWidgets(); for (int i = 0; i < tlw.count(); ++i) { PyObject *sw = sipGetPyObject(tlw.at(i), sipType_QWidget); if (sw) sipTransferTo(sw, 0); } // Handle all other QObject instances that we want to make sure are deleted // before the QApplication is deleted. qtgui_delete_tracked(); %End static QStyle *style(); static void setStyle(QStyle * /Transfer/); static QStyle *setStyle(const QString &); enum ColorSpec { NormalColor, CustomColor, ManyColor, }; static int colorSpec(); static void setColorSpec(int); static QPalette palette(); static QPalette palette(const QWidget *); static QPalette palette(const char *className); static void setPalette(const QPalette &, const char *className = 0); static QFont font(); static QFont font(const QWidget *); static QFont font(const char *className); static void setFont(const QFont &, const char *className = 0); static QFontMetrics fontMetrics(); static void setWindowIcon(const QIcon &icon); static QIcon windowIcon(); static QWidgetList allWidgets(); static QWidgetList topLevelWidgets(); static QDesktopWidget *desktop(); static QWidget *activePopupWidget(); static QWidget *activeModalWidget(); static QWidget *focusWidget(); static QWidget *activeWindow(); static void setActiveWindow(QWidget *act); static QWidget *widgetAt(const QPoint &p); static QWidget *widgetAt(int x, int y); static QWidget *topLevelAt(const QPoint &p); static QWidget *topLevelAt(int x, int y); static void beep(); static void alert(QWidget *widget, int msecs = 0) /ReleaseGIL/; static void setCursorFlashTime(int); static int cursorFlashTime(); static void setDoubleClickInterval(int); static int doubleClickInterval(); static void setKeyboardInputInterval(int); static int keyboardInputInterval(); static void setWheelScrollLines(int); static int wheelScrollLines(); static void setGlobalStrut(const QSize &); static QSize globalStrut(); static void setStartDragTime(int ms); static int startDragTime(); static void setStartDragDistance(int l); static int startDragDistance(); static bool isEffectEnabled(Qt::UIEffect); static void setEffectEnabled(Qt::UIEffect, bool enabled = true); static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %If (Py_v3) static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %End virtual bool notify(QObject *, QEvent *) /ReleaseGIL/; bool autoSipEnabled() const; QString styleSheet() const; signals: void focusChanged(QWidget *old, QWidget *now); public slots: static void aboutQt(); static void closeAllWindows(); void setAutoSipEnabled(const bool enabled); void setStyleSheet(const QString &sheet); protected: virtual bool event(QEvent *); public: %If (PyQt_Deprecated_5_0) static void setGraphicsSystem(const QString &); %End %If (PyQt_Deprecated_5_0) static void syncX(); %End %If (PyQt_Deprecated_5_0) static QLocale keyboardInputLocale(); %End %If (PyQt_Deprecated_5_0) static Qt::LayoutDirection keyboardInputDirection(); %End private: QApplication(const QApplication &); }; %End %If (- Qt_5_0_0) class QApplication : QCoreApplication { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QAbstractProxyModel, &sipType_QAbstractProxyModel, 42, 1}, {sipName_QStringListModel, &sipType_QStringListModel, -1, 2}, {sipName_QDrag, &sipType_QDrag, -1, 3}, #if QT_VERSION >= 0x040200 {sipName_QUndoGroup, &sipType_QUndoGroup, -1, 4}, #else {0, 0, -1, 4}, #endif #if QT_VERSION >= 0x040200 {sipName_QCompleter, &sipType_QCompleter, -1, 5}, #else {0, 0, -1, 5}, #endif #if defined(SIP_FEATURE_PyQt_SessionManager) {sipName_QSessionManager, &sipType_QSessionManager, -1, 6}, #else {0, 0, -1, 6}, #endif {sipName_QSyntaxHighlighter, &sipType_QSyntaxHighlighter, -1, 7}, #if QT_VERSION >= 0x040200 {sipName_QGraphicsScene, &sipType_QGraphicsScene, -1, 8}, #else {0, 0, -1, 8}, #endif {sipName_QSound, &sipType_QSound, -1, 9}, {sipName_QItemSelectionModel, &sipType_QItemSelectionModel, -1, 10}, #if QT_VERSION >= 0x040400 {sipName_QFileSystemModel, &sipType_QFileSystemModel, -1, 11}, #else {0, 0, -1, 11}, #endif #if QT_VERSION >= 0x040600 {sipName_QGesture, &sipType_QGesture, 44, 12}, #else {0, 0, 44, 12}, #endif #if QT_VERSION >= 0x040600 {sipName_QGraphicsTransform, &sipType_QGraphicsTransform, 49, 13}, #else {0, 0, 49, 13}, #endif {sipName_QPyTextObject, &sipType_QPyTextObject, -1, 14}, {sipName_QApplication, &sipType_QApplication, -1, 15}, {sipName_QValidator, &sipType_QValidator, 51, 16}, {sipName_QClipboard, &sipType_QClipboard, -1, 17}, #if QT_VERSION >= 0x040200 {sipName_QUndoStack, &sipType_QUndoStack, -1, 18}, #else {0, 0, -1, 18}, #endif {sipName_QActionGroup, &sipType_QActionGroup, -1, 19}, {sipName_QLayout, &sipType_QLayout, 54, 20}, {sipName_QTextObject, &sipType_QTextObject, 60, 21}, {sipName_QAction, &sipType_QAction, 64, 22}, {sipName_QStyle, &sipType_QStyle, 65, 23}, {sipName_QButtonGroup, &sipType_QButtonGroup, -1, 24}, {sipName_QInputContext, &sipType_QInputContext, -1, 25}, {sipName_QMovie, &sipType_QMovie, -1, 26}, {sipName_QTextDocument, &sipType_QTextDocument, -1, 27}, {sipName_QWidget, &sipType_QWidget, 66, 28}, #if QT_VERSION >= 0x040600 {sipName_QKeyEventTransition, &sipType_QKeyEventTransition, -1, 29}, #else {0, 0, -1, 29}, #endif {sipName_QStandardItemModel, &sipType_QStandardItemModel, -1, 30}, {sipName_QShortcut, &sipType_QShortcut, -1, 31}, #if QT_VERSION >= 0x040200 {sipName_QGraphicsItemAnimation, &sipType_QGraphicsItemAnimation, -1, 32}, #else {0, 0, -1, 32}, #endif #if QT_VERSION >= 0x040200 && defined(SIP_FEATURE_PyQt_SystemTrayIcon) {sipName_QSystemTrayIcon, &sipType_QSystemTrayIcon, -1, 33}, #else {0, 0, -1, 33}, #endif #if QT_VERSION >= 0x040200 {sipName_QDataWidgetMapper, &sipType_QDataWidgetMapper, -1, 34}, #else {0, 0, -1, 34}, #endif #if QT_VERSION >= 0x040600 {sipName_QGraphicsAnchor, &sipType_QGraphicsAnchor, -1, 35}, #else {0, 0, -1, 35}, #endif #if QT_VERSION >= 0x040600 {sipName_QMouseEventTransition, &sipType_QMouseEventTransition, -1, 36}, #else {0, 0, -1, 36}, #endif #if QT_VERSION >= 0x040600 {sipName_QGraphicsObject, &sipType_QGraphicsObject, 146, 37}, #else {0, 0, 146, 37}, #endif {sipName_QDirModel, &sipType_QDirModel, -1, 38}, {sipName_QAbstractItemDelegate, &sipType_QAbstractItemDelegate, 149, 39}, {sipName_QAbstractTextDocumentLayout, &sipType_QAbstractTextDocumentLayout, 151, 40}, {sipName_QProxyModel, &sipType_QProxyModel, -1, 41}, #if QT_VERSION >= 0x040600 {sipName_QGraphicsEffect, &sipType_QGraphicsEffect, 152, -1}, #else {0, 0, 152, -1}, #endif #if QT_VERSION >= 0x040800 {sipName_QIdentityProxyModel, &sipType_QIdentityProxyModel, -1, 43}, #else {0, 0, -1, 43}, #endif {sipName_QSortFilterProxyModel, &sipType_QSortFilterProxyModel, -1, -1}, #if QT_VERSION >= 0x040600 {sipName_QTapGesture, &sipType_QTapGesture, -1, 45}, #else {0, 0, -1, 45}, #endif #if QT_VERSION >= 0x040600 {sipName_QTapAndHoldGesture, &sipType_QTapAndHoldGesture, -1, 46}, #else {0, 0, -1, 46}, #endif #if QT_VERSION >= 0x040600 {sipName_QPanGesture, &sipType_QPanGesture, -1, 47}, #else {0, 0, -1, 47}, #endif #if QT_VERSION >= 0x040600 {sipName_QPinchGesture, &sipType_QPinchGesture, -1, 48}, #else {0, 0, -1, 48}, #endif #if QT_VERSION >= 0x040600 {sipName_QSwipeGesture, &sipType_QSwipeGesture, -1, -1}, #else {0, 0, -1, -1}, #endif #if QT_VERSION >= 0x040600 {sipName_QGraphicsRotation, &sipType_QGraphicsRotation, -1, 50}, #else {0, 0, -1, 50}, #endif #if QT_VERSION >= 0x040600 {sipName_QGraphicsScale, &sipType_QGraphicsScale, -1, -1}, #else {0, 0, -1, -1}, #endif {sipName_QIntValidator, &sipType_QIntValidator, -1, 52}, {sipName_QDoubleValidator, &sipType_QDoubleValidator, -1, 53}, {sipName_QRegExpValidator, &sipType_QRegExpValidator, -1, -1}, {sipName_QGridLayout, &sipType_QGridLayout, -1, 55}, {sipName_QStackedLayout, &sipType_QStackedLayout, -1, 56}, #if QT_VERSION >= 0x040400 {sipName_QFormLayout, &sipType_QFormLayout, -1, 57}, #else {0, 0, -1, 57}, #endif {sipName_QBoxLayout, &sipType_QBoxLayout, 58, -1}, {sipName_QVBoxLayout, &sipType_QVBoxLayout, -1, 59}, {sipName_QHBoxLayout, &sipType_QHBoxLayout, -1, -1}, {sipName_QTextBlockGroup, &sipType_QTextBlockGroup, 62, 61}, {sipName_QTextFrame, &sipType_QTextFrame, 63, -1}, {sipName_QTextList, &sipType_QTextList, -1, -1}, {sipName_QTextTable, &sipType_QTextTable, -1, -1}, #if QT_VERSION >= 0x040200 {sipName_QWidgetAction, &sipType_QWidgetAction, -1, -1}, #else {0, 0, -1, -1}, #endif {sipName_QCommonStyle, &sipType_QCommonStyle, -1, -1}, {sipName_QDockWidget, &sipType_QDockWidget, -1, 67}, {sipName_QMenuBar, &sipType_QMenuBar, -1, 68}, {sipName_QDialog, &sipType_QDialog, 98, 69}, {sipName_QAbstractButton, &sipType_QAbstractButton, 110, 70}, {sipName_QRubberBand, &sipType_QRubberBand, -1, 71}, #if QT_VERSION >= 0x040200 {sipName_QDialogButtonBox, &sipType_QDialogButtonBox, -1, 72}, #else {0, 0, -1, 72}, #endif {sipName_QComboBox, &sipType_QComboBox, 115, 73}, #if defined(Q_WS_X11) {sipName_QX11EmbedContainer, &sipType_QX11EmbedContainer, -1, 74}, #else {0, 0, -1, 74}, #endif {sipName_QAbstractSpinBox, &sipType_QAbstractSpinBox, 116, 75}, {sipName_QToolBar, &sipType_QToolBar, -1, 76}, {sipName_QAbstractSlider, &sipType_QAbstractSlider, 121, 77}, {sipName_QGroupBox, &sipType_QGroupBox, -1, 78}, {sipName_QMainWindow, &sipType_QMainWindow, -1, 79}, #if defined(Q_WS_X11) {sipName_QX11EmbedWidget, &sipType_QX11EmbedWidget, -1, 80}, #else {0, 0, -1, 80}, #endif {sipName_QSplitterHandle, &sipType_QSplitterHandle, -1, 81}, {sipName_QFrame, &sipType_QFrame, 124, 82}, {sipName_QFocusFrame, &sipType_QFocusFrame, -1, 83}, #if QT_VERSION >= 0x040500 && defined(Q_OS_MAC) {sipName_QMacCocoaViewContainer, &sipType_QMacCocoaViewContainer, -1, 84}, #else {0, 0, -1, 84}, #endif #if QT_VERSION >= 0x040300 {sipName_QWizardPage, &sipType_QWizardPage, -1, 85}, #else {0, 0, -1, 85}, #endif {sipName_QStatusBar, &sipType_QStatusBar, -1, 86}, #if QT_VERSION >= 0x040300 {sipName_QMdiSubWindow, &sipType_QMdiSubWindow, -1, 87}, #else {0, 0, -1, 87}, #endif {sipName_QWorkspace, &sipType_QWorkspace, -1, 88}, {sipName_QTabWidget, &sipType_QTabWidget, -1, 89}, {sipName_QSplashScreen, &sipType_QSplashScreen, -1, 90}, {sipName_QProgressBar, &sipType_QProgressBar, -1, 91}, #if QT_VERSION >= 0x040400 && defined(SIP_FEATURE_PyQt_PrintPreviewWidget) {sipName_QPrintPreviewWidget, &sipType_QPrintPreviewWidget, -1, 92}, #else {0, 0, -1, 92}, #endif {sipName_QTabBar, &sipType_QTabBar, -1, 93}, {sipName_QLineEdit, &sipType_QLineEdit, -1, 94}, {sipName_QDesktopWidget, &sipType_QDesktopWidget, -1, 95}, {sipName_QMenu, &sipType_QMenu, -1, 96}, #if defined(SIP_FEATURE_PyQt_SizeGrip) {sipName_QSizeGrip, &sipType_QSizeGrip, -1, 97}, #else {0, 0, -1, 97}, #endif #if QT_VERSION >= 0x040200 {sipName_QCalendarWidget, &sipType_QCalendarWidget, -1, -1}, #else {0, 0, -1, -1}, #endif {sipName_QColorDialog, &sipType_QColorDialog, -1, 99}, {sipName_QProgressDialog, &sipType_QProgressDialog, -1, 100}, #if QT_VERSION >= 0x040400 && defined(SIP_FEATURE_PyQt_PrintPreviewDialog) {sipName_QPrintPreviewDialog, &sipType_QPrintPreviewDialog, -1, 101}, #else {0, 0, -1, 101}, #endif #if QT_VERSION >= 0x040300 {sipName_QWizard, &sipType_QWizard, -1, 102}, #else {0, 0, -1, 102}, #endif #if defined(SIP_FEATURE_PyQt_PrintDialog) {sipName_QPageSetupDialog, &sipType_QPageSetupDialog, -1, 103}, #else {0, 0, -1, 103}, #endif {sipName_QFileDialog, &sipType_QFileDialog, -1, 104}, {sipName_QFontDialog, &sipType_QFontDialog, -1, 105}, {sipName_QInputDialog, &sipType_QInputDialog, -1, 106}, #if defined(SIP_FEATURE_PyQt_Printer) {sipName_QAbstractPrintDialog, &sipType_QAbstractPrintDialog, 109, 107}, #else {0, 0, 109, 107}, #endif {sipName_QErrorMessage, &sipType_QErrorMessage, -1, 108}, {sipName_QMessageBox, &sipType_QMessageBox, -1, -1}, #if defined(SIP_FEATURE_PyQt_PrintDialog) {sipName_QPrintDialog, &sipType_QPrintDialog, -1, -1}, #else {0, 0, -1, -1}, #endif {sipName_QRadioButton, &sipType_QRadioButton, -1, 111}, {sipName_QToolButton, &sipType_QToolButton, -1, 112}, {sipName_QPushButton, &sipType_QPushButton, 114, 113}, {sipName_QCheckBox, &sipType_QCheckBox, -1, -1}, #if QT_VERSION >= 0x040400 {sipName_QCommandLinkButton, &sipType_QCommandLinkButton, -1, -1}, #else {0, 0, -1, -1}, #endif #if QT_VERSION >= 0x040200 {sipName_QFontComboBox, &sipType_QFontComboBox, -1, -1}, #else {0, 0, -1, -1}, #endif {sipName_QSpinBox, &sipType_QSpinBox, -1, 117}, {sipName_QDateTimeEdit, &sipType_QDateTimeEdit, 119, 118}, {sipName_QDoubleSpinBox, &sipType_QDoubleSpinBox, -1, -1}, {sipName_QTimeEdit, &sipType_QTimeEdit, -1, 120}, {sipName_QDateEdit, &sipType_QDateEdit, -1, -1}, {sipName_QDial, &sipType_QDial, -1, 122}, {sipName_QSlider, &sipType_QSlider, -1, 123}, {sipName_QScrollBar, &sipType_QScrollBar, -1, -1}, {sipName_QStackedWidget, &sipType_QStackedWidget, -1, 125}, {sipName_QToolBox, &sipType_QToolBox, -1, 126}, {sipName_QLabel, &sipType_QLabel, -1, 127}, {sipName_QSplitter, &sipType_QSplitter, -1, 128}, {sipName_QAbstractScrollArea, &sipType_QAbstractScrollArea, 130, 129}, {sipName_QLCDNumber, &sipType_QLCDNumber, -1, -1}, {sipName_QAbstractItemView, &sipType_QAbstractItemView, 136, 131}, {sipName_QTextEdit, &sipType_QTextEdit, 145, 132}, #if QT_VERSION >= 0x040400 {sipName_QPlainTextEdit, &sipType_QPlainTextEdit, -1, 133}, #else {0, 0, -1, 133}, #endif #if QT_VERSION >= 0x040200 {sipName_QGraphicsView, &sipType_QGraphicsView, -1, 134}, #else {0, 0, -1, 134}, #endif {sipName_QScrollArea, &sipType_QScrollArea, -1, 135}, #if QT_VERSION >= 0x040300 {sipName_QMdiArea, &sipType_QMdiArea, -1, -1}, #else {0, 0, -1, -1}, #endif {sipName_QTableView, &sipType_QTableView, 141, 137}, {sipName_QTreeView, &sipType_QTreeView, 142, 138}, #if QT_VERSION >= 0x040300 {sipName_QColumnView, &sipType_QColumnView, -1, 139}, #else {0, 0, -1, 139}, #endif {sipName_QHeaderView, &sipType_QHeaderView, -1, 140}, {sipName_QListView, &sipType_QListView, 143, -1}, {sipName_QTableWidget, &sipType_QTableWidget, -1, -1}, {sipName_QTreeWidget, &sipType_QTreeWidget, -1, -1}, #if QT_VERSION >= 0x040200 {sipName_QUndoView, &sipType_QUndoView, -1, 144}, #else {0, 0, -1, 144}, #endif {sipName_QListWidget, &sipType_QListWidget, -1, -1}, {sipName_QTextBrowser, &sipType_QTextBrowser, -1, -1}, #if QT_VERSION >= 0x040200 {sipName_QGraphicsTextItem, &sipType_QGraphicsTextItem, -1, 147}, #else {0, 0, -1, 147}, #endif #if QT_VERSION >= 0x040400 {sipName_QGraphicsWidget, &sipType_QGraphicsWidget, 148, -1}, #else {0, 0, 148, -1}, #endif #if QT_VERSION >= 0x040400 {sipName_QGraphicsProxyWidget, &sipType_QGraphicsProxyWidget, -1, -1}, #else {0, 0, -1, -1}, #endif #if QT_VERSION >= 0x040400 {sipName_QStyledItemDelegate, &sipType_QStyledItemDelegate, -1, 150}, #else {0, 0, -1, 150}, #endif {sipName_QItemDelegate, &sipType_QItemDelegate, -1, -1}, #if QT_VERSION >= 0x040400 {sipName_QPlainTextDocumentLayout, &sipType_QPlainTextDocumentLayout, -1, -1}, #else {0, 0, -1, -1}, #endif #if QT_VERSION >= 0x040600 {sipName_QGraphicsColorizeEffect, &sipType_QGraphicsColorizeEffect, -1, 153}, #else {0, 0, -1, 153}, #endif #if QT_VERSION >= 0x040600 {sipName_QGraphicsOpacityEffect, &sipType_QGraphicsOpacityEffect, -1, 154}, #else {0, 0, -1, 154}, #endif #if QT_VERSION >= 0x040600 {sipName_QGraphicsBlurEffect, &sipType_QGraphicsBlurEffect, -1, 155}, #else {0, 0, -1, 155}, #endif #if QT_VERSION >= 0x040600 {sipName_QGraphicsDropShadowEffect, &sipType_QGraphicsDropShadowEffect, -1, -1}, #else {0, 0, -1, -1}, #endif }; int i = 0; sipType = NULL; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: QApplication(SIP_PYLIST argv /DocType="list-of-str"/) /PostHook=__pyQtQAppHook__/ [(int &argc, char **argv)]; %MethodCode // The Python interface is a list of argument strings that is modified. int argc; char **argv; // Convert the list. if ((argv = qpycore_ArgvToC(a0, argc)) == NULL) sipIsErr = 1; else { // Create it now the arguments are right. static int nargc; nargc = argc; Py_BEGIN_ALLOW_THREADS sipCpp = new sipQApplication(nargc, argv); Py_END_ALLOW_THREADS // Now modify the original list. qpycore_UpdatePyArgv(a0, argc, argv); } %End QApplication(SIP_PYLIST argv /DocType="list-of-str"/, bool GUIenabled) /PostHook=__pyQtQAppHook__/ [(int &argc, char **argv, bool GUIenabled)]; %MethodCode // The Python interface is a list of argument strings that is modified. int argc; char **argv; // Convert the list. if ((argv = qpycore_ArgvToC(a0, argc)) == NULL) sipIsErr = 1; else { // Create it now the arguments are right. static int nargc; nargc = argc; Py_BEGIN_ALLOW_THREADS sipCpp = new sipQApplication(nargc, argv, a1); Py_END_ALLOW_THREADS // Now modify the original list. qpycore_UpdatePyArgv(a0, argc, argv); } %End enum Type { Tty, GuiClient, GuiServer, }; QApplication(SIP_PYLIST argv /DocType="list-of-str"/, QApplication::Type /Constrained/) /PostHook=__pyQtQAppHook__/ [(int &argc, char **argv, QApplication::Type)]; %MethodCode // The Python interface is a list of argument strings that is modified. int argc; char **argv; // Convert the list. if ((argv = qpycore_ArgvToC(a0, argc)) == NULL) sipIsErr = 1; else { // Create it now the arguments are right. static int nargc; nargc = argc; Py_BEGIN_ALLOW_THREADS sipCpp = new sipQApplication(nargc, argv, a1); Py_END_ALLOW_THREADS // Now modify the original list. qpycore_UpdatePyArgv(a0, argc, argv); } %End %If (WS_X11) QApplication(Display *display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0) /PostHook=__pyQtQAppHook__/; %End %If (WS_X11) QApplication(Display *dpy, SIP_PYLIST argv /DocType="list-of-str"/, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0) /PostHook=__pyQtQAppHook__/ [(Display *display, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0)]; %MethodCode // The Python interface is a list of argument strings that is modified. int argc; char **argv; // Convert the list. if ((argv = qpycore_ArgvToC(a1, argc)) == NULL) sipIsErr = 1; else { // Create it now the arguments are right. static int nargc; nargc = argc; Py_BEGIN_ALLOW_THREADS sipCpp = new sipQApplication(a0, nargc, argv, a2, a3); Py_END_ALLOW_THREADS // Now modify the original list. qpycore_UpdatePyArgv(a1, argc, argv); } %End %End virtual ~QApplication(); %MethodCode // Make sure all top level widgets are not owned by Python and so won't be // destroyed by the garbage collector after QApplication is destroyed. QWidgetList tlw = QApplication::topLevelWidgets(); for (int i = 0; i < tlw.count(); ++i) { PyObject *sw = sipGetPyObject(tlw.at(i), sipType_QWidget); if (sw) sipTransferTo(sw, 0); } // Handle all other QObject instances that we want to make sure are deleted // before the QApplication is deleted. qtgui_delete_tracked(); %End static QApplication::Type type(); static QStyle *style(); static void setStyle(QStyle * /Transfer/); static QStyle *setStyle(const QString &); enum ColorSpec { NormalColor, CustomColor, ManyColor, }; static int colorSpec(); static void setColorSpec(int); static QCursor *overrideCursor(); static void setOverrideCursor(const QCursor &); static void changeOverrideCursor(const QCursor &); static void restoreOverrideCursor(); static QPalette palette(); static QPalette palette(const QWidget *); static QPalette palette(const char *className); static void setPalette(const QPalette &palette, const char *className = 0); %If (- Qt_4_2_0) static QFont font(const QWidget *widget = 0); %End static void setFont(const QFont &font, const char *className = 0); static QFontMetrics fontMetrics(); static void setWindowIcon(const QIcon &icon); static QIcon windowIcon(); static QWidgetList allWidgets(); static QWidgetList topLevelWidgets(); static QDesktopWidget *desktop(); static QWidget *activePopupWidget(); static QWidget *activeModalWidget(); static QClipboard *clipboard(); static QWidget *focusWidget(); static QWidget *activeWindow(); static void setActiveWindow(QWidget *act); static QWidget *widgetAt(const QPoint &p); static QWidget *widgetAt(int x, int y); static QWidget *topLevelAt(const QPoint &p); static QWidget *topLevelAt(int x, int y); static void syncX(); static void beep(); static Qt::KeyboardModifiers keyboardModifiers(); static Qt::MouseButtons mouseButtons(); static void setDesktopSettingsAware(bool); static bool desktopSettingsAware(); static void setCursorFlashTime(int); static int cursorFlashTime(); static void setDoubleClickInterval(int); static int doubleClickInterval(); static void setKeyboardInputInterval(int); static int keyboardInputInterval(); static void setWheelScrollLines(int); static int wheelScrollLines(); static void setGlobalStrut(const QSize &); static QSize globalStrut(); static void setStartDragTime(int ms); static int startDragTime(); static void setStartDragDistance(int l); static int startDragDistance(); static void setLayoutDirection(Qt::LayoutDirection direction); static Qt::LayoutDirection layoutDirection(); static bool isRightToLeft(); static bool isLeftToRight(); static bool isEffectEnabled(Qt::UIEffect); static void setEffectEnabled(Qt::UIEffect effect, bool enabled = true); %If (WS_X11) virtual bool x11EventFilter(XEvent *); %End %If (WS_X11) int x11ProcessEvent(XEvent *); %End %If (PyQt_SessionManager) bool isSessionRestored() const; %End %If (PyQt_SessionManager) QString sessionId() const; %End %If (PyQt_SessionManager) QString sessionKey() const; %End %If (PyQt_SessionManager) virtual void commitData(QSessionManager &sm); %End %If (PyQt_SessionManager) virtual void saveState(QSessionManager &sm); %End void setInputContext(QInputContext * /Transfer/); QInputContext *inputContext() const; static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %If (Py_v3) static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %End virtual bool notify(QObject *, QEvent *) /ReleaseGIL/; static void setQuitOnLastWindowClosed(bool quit); static bool quitOnLastWindowClosed(); signals: %If (Qt_4_2_0 -) %If (PyQt_SessionManager) void commitDataRequest(QSessionManager &sessionManager); %End %End void focusChanged(QWidget *old, QWidget *now); void lastWindowClosed(); %If (Qt_4_2_0 -) %If (PyQt_SessionManager) void saveStateRequest(QSessionManager &sessionManager); %End %End %If (Qt_4_5_0 -) void fontDatabaseChanged(); %End public slots: static void aboutQt(); static void closeAllWindows(); %If (Qt_4_2_0 -) void setStyleSheet(const QString &sheet); %End protected: virtual bool event(QEvent *); public: %If (Qt_4_2_0 -) static QFont font(); %End %If (Qt_4_2_0 -) static QFont font(const QWidget *); %End %If (Qt_4_2_0 -) static QFont font(const char *className); %End %If (Qt_4_2_0 -) static QLocale keyboardInputLocale(); %End %If (Qt_4_2_0 -) static Qt::LayoutDirection keyboardInputDirection(); %End %If (Qt_4_2_0 -) QString styleSheet() const; %End %If (Qt_4_3_0 -) static void alert(QWidget *widget, int msecs = 0) /ReleaseGIL/; %End %If (Qt_4_5_0 -) static void setGraphicsSystem(const QString &); %End public slots: %If (Qt_4_6_0 -) void setAutoSipEnabled(const bool enabled); %End public: %If (Qt_4_6_0 -) bool autoSipEnabled() const; %End %If (Qt_4_8_0 -) static Qt::KeyboardModifiers queryKeyboardModifiers(); %End private: QApplication(const QApplication &); }; %End %ModuleHeaderCode // Used to track QObject instances that must be explicitly destroyed before the // QApplication instance is destroyed. Typically these are instances that // sometimes don't have a parent (and are not QWidgets). void qtgui_track(QObject *o); void qtgui_untrack(QObject *o); void qtgui_delete_tracked(); extern char **(*qpycore_ArgvToC)(PyObject *, int &); extern void (*qpycore_UpdatePyArgv)(PyObject *, int, char **); extern const char *(*qpycore_pyqtsignal_get_parts)(PyObject *, QObject **); // This is needed for Qt v5.0.0. #if defined(B0) #undef B0 #endif %End %ModuleCode // Symbols imported from the QtCore module. char **(*qpycore_ArgvToC)(PyObject *, int &); void (*qpycore_UpdatePyArgv)(PyObject *, int, char **); const char *(*qpycore_pyqtsignal_get_parts)(PyObject *, QObject **); // Forward declarations of the low level exported functions. #if defined(Q_WS_X11) && QT_VERSION < 0x050000 void qt_x11_wait_for_window_manager(QWidget *widget); #endif #if defined(Q_OS_MAC) && QT_VERSION < 0x050000 void qt_set_sequence_auto_mnemonic(bool enable); void qt_mac_set_menubar_icons(bool enable); void qt_mac_set_menubar_merge(bool enable); void qt_mac_set_native_menubar(bool enable); void qt_mac_secure_keyboard(bool enable); void qt_mac_set_dock_menu(QMenu *menu); void qt_mac_set_press_and_hold_context(bool enable); #endif // These are the implementations of the functions that handle object tracking. #include QObjectCleanupHandler *qtgui_cleanup_handler = 0; void qtgui_track(QObject *o) { if (!qtgui_cleanup_handler) qtgui_cleanup_handler = new QObjectCleanupHandler; qtgui_cleanup_handler->add(o); } void qtgui_untrack(QObject *o) { // Note that we specifically untrack a tracked object rather than let Qt // detect the object being destroyed and doing it itself. This is done to // work around a problem in threaded applications. if (qtgui_cleanup_handler) qtgui_cleanup_handler->remove(o); } void qtgui_delete_tracked() { if (qtgui_cleanup_handler) { // Watch out for recursive calls (which should never happen). QObjectCleanupHandler *hnd = qtgui_cleanup_handler; qtgui_cleanup_handler = 0; Py_BEGIN_ALLOW_THREADS delete hnd; Py_END_ALLOW_THREADS } } %End %PostInitialisationCode // Import helpers from the QtCore module. qpycore_ArgvToC = (char **(*)(PyObject *, int &))sipImportSymbol("qpycore_ArgvToC"); qpycore_UpdatePyArgv = (void (*)(PyObject *, int, char **))sipImportSymbol("qpycore_UpdatePyArgv"); qpycore_pyqtsignal_get_parts = (const char *(*)(PyObject *, QObject **))sipImportSymbol("qpycore_pyqtsignal_get_parts"); // Export our own helpers. sipExportSymbol("qtgui_wrap_ancestors", (void *)qtgui_wrap_ancestors); #if QT_VERSION >= 0x050000 // These correspond to typedefs used to define compatibility synonyms for Qt4 // classes that no longer exist. SIP's support for typedefs should be extended // to do this automatically. static const char *name_table[] = { "QStyleOptionFrame", "QStyleOptionFrameV2", "QStyleOptionFrameV3", 0, "QStyleOptionProgressBar", "QStyleOptionProgressBarV2", 0, "QStyleOptionTab", "QStyleOptionTabV2", "QStyleOptionTabV3", 0, "QStyleOptionTabBarBase", "QStyleOptionTabBarBaseV2", 0, "QStyleOptionTabWidgetFrame", "QStyleOptionTabWidgetFrameV2", 0, "QStyleOptionToolBox", "QStyleOptionToolBoxV2", 0, "QStyleOptionViewItem", "QStyleOptionViewItemV2", "QStyleOptionViewItemV3", "QStyleOptionViewItemV4", 0, 0}; for (const char **names = name_table; *names; ++names) { const char *name = *names; PyObject *type_obj = PyDict_GetItemString(sipModuleDict, name); Q_ASSERT(type_obj); while (const char *synonym = *++names) PyDict_SetItemString(sipModuleDict, synonym, type_obj); } #endif %End PyQt-x11-gpl-4.11.4/sip/QtGui/qbitmap.sip0000644000076500000240000000416412536324426017756 0ustar philstaff00000000000000// qbitmap.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QBitmap : QPixmap { %TypeHeaderCode #include %End public: QBitmap(); QBitmap(const QPixmap &); QBitmap(int w, int h); explicit QBitmap(const QSize &); QBitmap(const QString &fileName, const char *format = 0); QBitmap(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new sipQBitmap(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new sipQBitmap(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End virtual ~QBitmap(); void clear(); static QBitmap fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor); static QBitmap fromData(const QSize &size, const uchar *bits, QImage::Format format = QImage::Format_MonoLSB); QBitmap transformed(const QMatrix &) const; %If (Qt_4_3_0 -) QBitmap transformed(const QTransform &matrix) const; %End %If (Qt_4_8_0 -) void swap(QBitmap &other); %End }; %If (Qt_4_3_0 -) void qSwap(QBitmap &value1, QBitmap &value2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qboxlayout.sip0000644000076500000240000001203712536324426020526 0ustar philstaff00000000000000// qboxlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QBoxLayout : QLayout { %TypeHeaderCode #include %End public: enum Direction { LeftToRight, RightToLeft, TopToBottom, BottomToTop, Down, Up, }; QBoxLayout(QBoxLayout::Direction direction, QWidget *parent /TransferThis/ = 0); virtual ~QBoxLayout(); QBoxLayout::Direction direction() const; void setDirection(QBoxLayout::Direction); void addSpacing(int size); void addStretch(int stretch = 0); void addWidget(QWidget * /GetWrapper/, int stretch = 0, Qt::Alignment alignment = 0); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->addWidget(a0, a1, *a2); Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a0Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows addWidget(QWidget()). sipTransferTo(a0Wrapper, sipSelf); } %End void addLayout(QLayout *layout /Transfer/, int stretch = 0); void addStrut(int); virtual void addItem(QLayoutItem * /Transfer/); void insertSpacing(int index, int size); void insertStretch(int index, int stretch = 0); void insertWidget(int index, QWidget *widget /GetWrapper/, int stretch = 0, Qt::Alignment alignment = 0); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->insertWidget(a0, a1, a2, *a3); Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a1Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows insertWidget(QWidget()). sipTransferTo(a1Wrapper, sipSelf); } %End void insertLayout(int index, QLayout *layout /Transfer/, int stretch = 0); bool setStretchFactor(QWidget *w, int stretch); bool setStretchFactor(QLayout *l, int stretch); virtual QSize sizeHint() const; virtual QSize minimumSize() const; virtual QSize maximumSize() const; virtual bool hasHeightForWidth() const; virtual int heightForWidth(int) const; virtual int minimumHeightForWidth(int) const; virtual Qt::Orientations expandingDirections() const; virtual void invalidate(); virtual QLayoutItem *itemAt(int) const; virtual QLayoutItem *takeAt(int) /TransferBack/; virtual int count() const; virtual void setGeometry(const QRect &); %If (Qt_4_3_0 -) int spacing() const; %End %If (Qt_4_3_0 -) void setSpacing(int spacing); %End %If (Qt_4_4_0 -) void addSpacerItem(QSpacerItem *spacerItem /Transfer/); %End %If (Qt_4_4_0 -) void insertSpacerItem(int index, QSpacerItem *spacerItem /Transfer/); %End %If (Qt_4_5_0 -) void setStretch(int index, int stretch); %End %If (Qt_4_5_0 -) int stretch(int index) const; %End %If (Qt_5_0_0 -) void insertItem(int index, QLayoutItem * /TransferThis/); %End protected: %If (- Qt_5_0_0) void insertItem(int index, QLayoutItem * /TransferThis/); %End private: QBoxLayout(const QBoxLayout &); }; class QHBoxLayout : QBoxLayout { %TypeHeaderCode #include %End public: QHBoxLayout(); explicit QHBoxLayout(QWidget *parent /TransferThis/); virtual ~QHBoxLayout(); private: QHBoxLayout(const QHBoxLayout &); }; class QVBoxLayout : QBoxLayout { %TypeHeaderCode #include %End public: QVBoxLayout(); explicit QVBoxLayout(QWidget *parent /TransferThis/); virtual ~QVBoxLayout(); private: QVBoxLayout(const QVBoxLayout &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qbrush.sip0000644000076500000240000001774412536324426017635 0ustar philstaff00000000000000// qbrush.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QBrush { %TypeHeaderCode #include %End %ConvertToTypeCode // SIP doesn't support automatic type convertors so we explicitly allow a // QColor or a QGradient to be used whenever a QBrush is expected. Note that // SIP must process QColor before QBrush so that the former's QVariant cast // operator is applied before the latter's. if (sipIsErr == NULL) return (sipCanConvertToType(sipPy, sipType_QBrush, SIP_NO_CONVERTORS) || sipCanConvertToType(sipPy, sipType_QColor, 0) || sipCanConvertToType(sipPy, sipType_QGradient, 0)); if (sipCanConvertToType(sipPy, sipType_QBrush, SIP_NO_CONVERTORS)) { *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QBrush, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; } int state; if (sipCanConvertToType(sipPy, sipType_QColor, 0)) { QColor *c = reinterpret_cast(sipConvertToType(sipPy, sipType_QColor, 0, 0, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(c, sipType_QColor, state); return 0; } *sipCppPtr = new QBrush(*c); sipReleaseType(c, sipType_QColor, state); return sipGetState(sipTransferObj); } QGradient *g = reinterpret_cast(sipConvertToType(sipPy, sipType_QGradient, 0, 0, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(g, sipType_QGradient, state); return 0; } *sipCppPtr = new QBrush(*g); sipReleaseType(g, sipType_QGradient, state); return sipGetState(sipTransferObj); %End public: QBrush(); QBrush(Qt::BrushStyle bs); QBrush(const QColor &color, Qt::BrushStyle style = Qt::SolidPattern); QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern); QBrush(const QColor &color, const QPixmap &pixmap); QBrush(Qt::GlobalColor color, const QPixmap &pixmap); QBrush(const QPixmap &pixmap); %If (Qt_4_2_0 -) QBrush(const QImage &image); %End QBrush(const QGradient &gradient); QBrush(const QBrush &brush); QBrush(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QBrush(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QBrush(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End ~QBrush(); void setStyle(Qt::BrushStyle); QPixmap texture() const; void setTexture(const QPixmap &pixmap); void setColor(const QColor &color); const QGradient *gradient() const; bool isOpaque() const; bool operator==(const QBrush &b) const; bool operator!=(const QBrush &b) const; void setColor(Qt::GlobalColor acolor); Qt::BrushStyle style() const; const QColor &color() const; %If (Qt_4_2_0 -) void setMatrix(const QMatrix &mat); %End %If (Qt_4_2_0 -) const QMatrix &matrix() const; %End %If (Qt_4_2_0 -) void setTextureImage(const QImage &image); %End %If (Qt_4_2_0 -) QImage textureImage() const; %End %If (Qt_4_3_0 -) void setTransform(const QTransform &); %End %If (Qt_4_3_0 -) QTransform transform() const; %End %If (Qt_4_8_0 -) void swap(QBrush &other); %End }; QDataStream &operator>>(QDataStream &, QBrush & /Constrained/); QDataStream &operator<<(QDataStream &, const QBrush & /Constrained/); typedef QVector> QGradientStops; class QGradient { %TypeHeaderCode #include %End public: %If (Qt_4_4_0 -) enum CoordinateMode { LogicalMode, StretchToDeviceMode, ObjectBoundingMode, }; %End enum Type { LinearGradient, RadialGradient, ConicalGradient, NoGradient, }; enum Spread { PadSpread, ReflectSpread, RepeatSpread, }; QGradient(); QGradient::Type type() const; QGradient::Spread spread() const; void setColorAt(qreal pos, const QColor &color); void setStops(const QGradientStops &stops); QGradientStops stops() const; bool operator==(const QGradient &gradient) const; %If (Qt_4_2_0 -) bool operator!=(const QGradient &other) const; %End void setSpread(QGradient::Spread aspread); %If (Qt_4_4_0 -) QGradient::CoordinateMode coordinateMode() const; %End %If (Qt_4_4_0 -) void setCoordinateMode(QGradient::CoordinateMode mode); %End }; class QLinearGradient : QGradient { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QLinearGradient(); %End QLinearGradient(const QPointF &start, const QPointF &finalStop); QLinearGradient(qreal xStart, qreal yStart, qreal xFinalStop, qreal yFinalStop); QPointF start() const; QPointF finalStop() const; %If (Qt_4_2_0 -) void setStart(const QPointF &start); %End %If (Qt_4_2_0 -) void setStart(qreal x, qreal y); %End %If (Qt_4_2_0 -) void setFinalStop(const QPointF &stop); %End %If (Qt_4_2_0 -) void setFinalStop(qreal x, qreal y); %End }; class QRadialGradient : QGradient { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QRadialGradient(); %End %If (Qt_4_2_0 -) QRadialGradient(const QPointF ¢er, qreal radius, const QPointF &focalPoint); %End %If (Qt_4_8_0 -) QRadialGradient(const QPointF ¢er, qreal centerRadius, const QPointF &focalPoint, qreal focalRadius); %End %If (Qt_4_2_0 -) QRadialGradient(const QPointF ¢er, qreal radius); %End %If (- Qt_4_2_0) QRadialGradient(const QPointF ¢er, qreal radius, const QPointF &focalPoint = QPointF()); %End %If (Qt_4_2_0 -) QRadialGradient(qreal cx, qreal cy, qreal radius, qreal fx, qreal fy); %End %If (Qt_4_8_0 -) QRadialGradient(qreal cx, qreal cy, qreal centerRadius, qreal fx, qreal fy, qreal focalRadius); %End %If (Qt_4_2_0 -) QRadialGradient(qreal cx, qreal cy, qreal radius); %End %If (- Qt_4_2_0) QRadialGradient(qreal cx, qreal cy, qreal radius, qreal fx = 0, qreal fy = 0); %End QPointF center() const; QPointF focalPoint() const; qreal radius() const; %If (Qt_4_2_0 -) void setCenter(const QPointF ¢er); %End %If (Qt_4_2_0 -) void setCenter(qreal x, qreal y); %End %If (Qt_4_2_0 -) void setFocalPoint(const QPointF &focalPoint); %End %If (Qt_4_2_0 -) void setFocalPoint(qreal x, qreal y); %End %If (Qt_4_2_0 -) void setRadius(qreal radius); %End %If (Qt_4_8_0 -) qreal centerRadius() const; %End %If (Qt_4_8_0 -) void setCenterRadius(qreal radius); %End %If (Qt_4_8_0 -) qreal focalRadius() const; %End %If (Qt_4_8_0 -) void setFocalRadius(qreal radius); %End }; class QConicalGradient : QGradient { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QConicalGradient(); %End QConicalGradient(const QPointF ¢er, qreal startAngle); QConicalGradient(qreal cx, qreal cy, qreal startAngle); QPointF center() const; qreal angle() const; %If (Qt_4_2_0 -) void setCenter(const QPointF ¢er); %End %If (Qt_4_2_0 -) void setCenter(qreal x, qreal y); %End %If (Qt_4_2_0 -) void setAngle(qreal angle); %End }; %If (Qt_4_3_0 -) void qSwap(QBrush &value1, QBrush &value2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qbuttongroup.sip0000644000076500000240000000400412536324426021063 0ustar philstaff00000000000000// qbuttongroup.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QButtonGroup : QObject { %TypeHeaderCode #include %End public: explicit QButtonGroup(QObject *parent /TransferThis/ = 0); virtual ~QButtonGroup(); void setExclusive(bool); bool exclusive() const; %If (Qt_5_0_0 -) void addButton(QAbstractButton *, int id = -1); %End %If (- Qt_5_0_0) void addButton(QAbstractButton *); %End %If (- Qt_5_0_0) void addButton(QAbstractButton *, int id); %End void removeButton(QAbstractButton *); QList buttons() const; QAbstractButton *button(int id) const; QAbstractButton *checkedButton() const; void setId(QAbstractButton *button, int id); int id(QAbstractButton *button) const; int checkedId() const; signals: void buttonClicked(QAbstractButton *); void buttonClicked(int); %If (Qt_4_2_0 -) void buttonPressed(QAbstractButton *); %End %If (Qt_4_2_0 -) void buttonPressed(int); %End %If (Qt_4_2_0 -) void buttonReleased(QAbstractButton *); %End %If (Qt_4_2_0 -) void buttonReleased(int); %End private: QButtonGroup(const QButtonGroup &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qcalendarwidget.sip0000644000076500000240000001051212536324426021451 0ustar philstaff00000000000000// qcalendarwidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QCalendarWidget : QWidget { %TypeHeaderCode #include %End public: enum HorizontalHeaderFormat { NoHorizontalHeader, SingleLetterDayNames, ShortDayNames, LongDayNames, }; enum VerticalHeaderFormat { NoVerticalHeader, ISOWeekNumbers, }; enum SelectionMode { NoSelection, SingleSelection, }; explicit QCalendarWidget(QWidget *parent /TransferThis/ = 0); virtual ~QCalendarWidget(); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; QDate selectedDate() const; int yearShown() const; int monthShown() const; QDate minimumDate() const; void setMinimumDate(const QDate &date); QDate maximumDate() const; void setMaximumDate(const QDate &date); Qt::DayOfWeek firstDayOfWeek() const; void setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek); %If (- Qt_5_0_0) bool isHeaderVisible() const; %End %If (- Qt_5_0_0) void setHeaderVisible(bool show); %End bool isGridVisible() const; void setGridVisible(bool show); QCalendarWidget::SelectionMode selectionMode() const; void setSelectionMode(QCalendarWidget::SelectionMode mode); QCalendarWidget::HorizontalHeaderFormat horizontalHeaderFormat() const; void setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat format); QCalendarWidget::VerticalHeaderFormat verticalHeaderFormat() const; void setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat format); QTextCharFormat headerTextFormat() const; void setHeaderTextFormat(const QTextCharFormat &format); QTextCharFormat weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const; void setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format); QMap dateTextFormat() const; QTextCharFormat dateTextFormat(const QDate &date) const; void setDateTextFormat(const QDate &date, const QTextCharFormat &color); protected: %If (Qt_4_4_0 -) void updateCell(const QDate &date); %End %If (Qt_4_4_0 -) void updateCells(); %End virtual bool event(QEvent *event); %If (Qt_4_5_0 -) virtual bool eventFilter(QObject *watched, QEvent *event); %End virtual void mousePressEvent(QMouseEvent *event); virtual void resizeEvent(QResizeEvent *event); virtual void keyPressEvent(QKeyEvent *event); virtual void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const; public slots: void setCurrentPage(int year, int month); void setDateRange(const QDate &min, const QDate &max); void setSelectedDate(const QDate &date); void showNextMonth(); void showNextYear(); void showPreviousMonth(); void showPreviousYear(); void showSelectedDate(); void showToday(); signals: void activated(const QDate &date); void clicked(const QDate &date); void currentPageChanged(int year, int month); void selectionChanged(); public: %If (Qt_4_3_0 -) bool isNavigationBarVisible() const; %End %If (Qt_4_3_0 -) bool isDateEditEnabled() const; %End %If (Qt_4_3_0 -) void setDateEditEnabled(bool enable); %End %If (Qt_4_3_0 -) int dateEditAcceptDelay() const; %End %If (Qt_4_3_0 -) void setDateEditAcceptDelay(int delay); %End public slots: %If (Qt_4_3_0 -) void setNavigationBarVisible(bool visible); %End private: QCalendarWidget(const QCalendarWidget &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qcheckbox.sip0000644000076500000240000000355112536324426020267 0ustar philstaff00000000000000// qcheckbox.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QCheckBox : QAbstractButton { %TypeHeaderCode #include %End public: explicit QCheckBox(QWidget *parent /TransferThis/ = 0); QCheckBox(const QString &text, QWidget *parent /TransferThis/ = 0); %If (Qt_5_0_0 -) virtual ~QCheckBox(); %End virtual QSize sizeHint() const; void setTristate(bool on = true); bool isTristate() const; Qt::CheckState checkState() const; void setCheckState(Qt::CheckState state); %If (Qt_4_8_0 -) virtual QSize minimumSizeHint() const; %End signals: void stateChanged(int); protected: virtual bool hitButton(const QPoint &pos) const; virtual void checkStateSet(); virtual void nextCheckState(); virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); virtual void mouseMoveEvent(QMouseEvent *); %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionButton *option) const; %End private: QCheckBox(const QCheckBox &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qclipboard.sip0000644000076500000240000001011012536324426020425 0ustar philstaff00000000000000// qclipboard.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QClipboard : QObject { %TypeHeaderCode #include %End %If (Qt_5_0_0 -) explicit QClipboard(QObject *parent /TransferThis/); %End %If (- Qt_5_0_0) QClipboard(QObject *parent /TransferThis/); %End virtual ~QClipboard(); public: enum Mode { Clipboard, Selection, %If (Qt_4_2_0 -) FindBuffer, %End }; void clear(QClipboard::Mode mode = QClipboard::Clipboard); %If (Qt_4_2_0 -) bool supportsFindBuffer() const; %End bool supportsSelection() const; bool ownsClipboard() const; %If (Qt_4_2_0 -) bool ownsFindBuffer() const; %End bool ownsSelection() const; QString text(QClipboard::Mode mode = QClipboard::Clipboard) const; SIP_PYTUPLE text(const QString &subtype, QClipboard::Mode mode = QClipboard::Clipboard) const /DocType="Py_v3:(str, str);(QString, QString)", API=QString:2 - /; %MethodCode QString *text; QString *subtype = new QString(*a0); Py_BEGIN_ALLOW_THREADS text = new QString(sipCpp->text(*subtype, a1)); Py_END_ALLOW_THREADS PyObject *text_obj = sipConvertFromNewType(text, sipType_QString, NULL); PyObject *subtype_obj = sipConvertFromNewType(subtype, sipType_QString, NULL); if (text_obj && subtype_obj) { #if PY_VERSION_HEX >= 0x02040000 sipRes = PyTuple_Pack(2, text_obj, subtype_obj); #else sipRes = Py_BuildValue("(OO)", text_obj, subtype_obj); #endif } Py_XDECREF(text_obj); Py_XDECREF(subtype_obj); %End QString text(QString &subtype, QClipboard::Mode mode = QClipboard::Clipboard) const /API=QString: - 2/; void setText(const QString &, QClipboard::Mode mode = QClipboard::Clipboard); const QMimeData *mimeData(QClipboard::Mode mode = QClipboard::Clipboard) const; void setMimeData(QMimeData *data /GetWrapper/, QClipboard::Mode mode = QClipboard::Clipboard); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->setMimeData(a0, a1); Py_END_ALLOW_THREADS // Transfer ownership to C++ and make sure the Python object stays alive by // giving it a reference to itself. The cycle will be broken by QMimeData's // virtual dtor. The reason we don't do the obvious and just use /Transfer/ is // that the QClipboard Python object we would transfer ownership to is likely // to be garbage collected immediately afterwards. sipTransferTo(a0Wrapper, a0Wrapper); %End QImage image(QClipboard::Mode mode = QClipboard::Clipboard) const; QPixmap pixmap(QClipboard::Mode mode = QClipboard::Clipboard) const; void setImage(const QImage &, QClipboard::Mode mode = QClipboard::Clipboard); void setPixmap(const QPixmap &, QClipboard::Mode mode = QClipboard::Clipboard); signals: %If (Qt_4_2_0 -) void changed(QClipboard::Mode mode); %End void dataChanged(); %If (Qt_4_2_0 -) void findBufferChanged(); %End void selectionChanged(); protected: %If (- Qt_5_0_0) virtual void connectNotify(SIP_SIGNAL); %End %If (- Qt_5_0_0) virtual bool event(QEvent *); %End private: QClipboard(const QClipboard &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qcolor.sip0000644000076500000240000001563612536324426017626 0ustar philstaff00000000000000// qcolor.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QColor { %TypeHeaderCode #include %End %ConvertToTypeCode // SIP doesn't support automatic type convertors so we explicitly allow a // Qt::GlobalColor to be used whenever a QColor is expected. Note that SIP // must process QColor before QBrush so that the former's QVariant cast // operator is applied before the latter's. if (sipIsErr == NULL) return (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_Qt_GlobalColor)) || sipCanConvertToType(sipPy, sipType_QColor, SIP_NO_CONVERTORS)); if (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_Qt_GlobalColor))) { *sipCppPtr = new QColor((Qt::GlobalColor)SIPLong_AsLong(sipPy)); return sipGetState(sipTransferObj); } *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QColor, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End %PickleCode sipRes = Py_BuildValue((char *)"iiii", sipCpp->red(), sipCpp->green(), sipCpp->blue(), sipCpp->alpha()); %End public: enum Spec { Invalid, Rgb, Hsv, Cmyk, %If (Qt_4_6_0 -) Hsl, %End }; QColor(Qt::GlobalColor color /Constrained/); QColor(QRgb rgb); QColor(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QColor(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QColor(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End QString name() const; void setNamedColor(const QString &name); static QStringList colorNames(); QColor::Spec spec() const; int alpha() const; void setAlpha(int alpha); qreal alphaF() const; void setAlphaF(qreal alpha); int red() const; int green() const; int blue() const; void setRed(int red); void setGreen(int green); void setBlue(int blue); qreal redF() const; qreal greenF() const; qreal blueF() const; void setRedF(qreal red); void setGreenF(qreal green); void setBlueF(qreal blue); void getRgb(int *r, int *g, int *b, int *alpha = 0) const; void setRgb(int r, int g, int b, int alpha = 255); void getRgbF(qreal *r, qreal *g, qreal *b, qreal *alpha = 0) const; void setRgbF(qreal r, qreal g, qreal b, qreal alpha = 1.0e+0); QRgb rgba() const; void setRgba(QRgb rgba); QRgb rgb() const; void setRgb(QRgb rgb); int hue() const; int saturation() const; int value() const; qreal hueF() const; qreal saturationF() const; qreal valueF() const; void getHsv(int *h, int *s, int *v, int *alpha = 0) const; void setHsv(int h, int s, int v, int alpha = 255); void getHsvF(qreal *h, qreal *s, qreal *v, qreal *alpha = 0) const; void setHsvF(qreal h, qreal s, qreal v, qreal alpha = 1.0e+0); int cyan() const; int magenta() const; int yellow() const; int black() const; qreal cyanF() const; qreal magentaF() const; qreal yellowF() const; qreal blackF() const; void getCmyk(int *c, int *m, int *y, int *k, int *alpha = 0); void setCmyk(int c, int m, int y, int k, int alpha = 255); void getCmykF(qreal *c, qreal *m, qreal *y, qreal *k, qreal *alpha = 0); void setCmykF(qreal c, qreal m, qreal y, qreal k, qreal alpha = 1.0e+0); QColor toRgb() const; QColor toHsv() const; QColor toCmyk() const; QColor convertTo(QColor::Spec colorSpec) const; static QColor fromRgb(QRgb rgb); static QColor fromRgba(QRgb rgba); static QColor fromRgb(int r, int g, int b, int alpha = 255); static QColor fromRgbF(qreal r, qreal g, qreal b, qreal alpha = 1.0e+0); static QColor fromHsv(int h, int s, int v, int alpha = 255); static QColor fromHsvF(qreal h, qreal s, qreal v, qreal alpha = 1.0e+0); static QColor fromCmyk(int c, int m, int y, int k, int alpha = 255); static QColor fromCmykF(qreal c, qreal m, qreal y, qreal k, qreal alpha = 1.0e+0); %If (PyQt_Deprecated_5_0) QColor light(int factor = 150) const; %End %If (PyQt_Deprecated_5_0) QColor dark(int factor = 200) const; %End bool operator==(const QColor &c) const; bool operator!=(const QColor &c) const; QColor(); QColor(int r, int g, int b, int alpha = 255); QColor(const QString &aname); QColor(const QColor &acolor); bool isValid() const; %If (Qt_4_3_0 - Qt_5_0_0) %If (WS_X11) static bool allowX11ColorNames(); %End %End %If (Qt_4_3_0 - Qt_5_0_0) %If (WS_X11) static void setAllowX11ColorNames(bool enabled); %End %End %If (Qt_4_3_0 -) QColor lighter(int factor = 150) const; %End %If (Qt_4_3_0 -) QColor darker(int factor = 200) const; %End %If (Qt_4_6_0 -) int hsvHue() const; %End %If (Qt_4_6_0 -) int hsvSaturation() const; %End %If (Qt_4_6_0 -) qreal hsvHueF() const; %End %If (Qt_4_6_0 -) qreal hsvSaturationF() const; %End %If (Qt_4_6_0 -) int hslHue() const; %End %If (Qt_4_6_0 -) int hslSaturation() const; %End %If (Qt_4_6_0 -) int lightness() const; %End %If (Qt_4_6_0 -) qreal hslHueF() const; %End %If (Qt_4_6_0 -) qreal hslSaturationF() const; %End %If (Qt_4_6_0 -) qreal lightnessF() const; %End %If (Qt_4_6_0 -) void getHsl(int *h, int *s, int *l, int *alpha = 0) const; %End %If (Qt_4_6_0 -) void setHsl(int h, int s, int l, int alpha = 255); %End %If (Qt_4_6_0 -) void getHslF(qreal *h, qreal *s, qreal *l, qreal *alpha = 0) const; %End %If (Qt_4_6_0 -) void setHslF(qreal h, qreal s, qreal l, qreal alpha = 1.0e+0); %End %If (Qt_4_6_0 -) QColor toHsl() const; %End %If (Qt_4_6_0 -) static QColor fromHsl(int h, int s, int l, int alpha = 255); %End %If (Qt_4_6_0 -) static QColor fromHslF(qreal h, qreal s, qreal l, qreal alpha = 1.0e+0); %End %If (Qt_4_7_0 -) static bool isValidColor(const QString &name); %End }; QDataStream &operator<<(QDataStream &, const QColor & /Constrained/); QDataStream &operator>>(QDataStream &, QColor & /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtGui/qcolordialog.sip0000644000076500000240000001026512536324426020777 0ustar philstaff00000000000000// qcolordialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QColorDialog : QDialog { %TypeHeaderCode #include %End public: %If (Qt_4_5_0 -) enum ColorDialogOption { ShowAlphaChannel, NoButtons, DontUseNativeDialog, }; %End %If (Qt_4_5_0 -) typedef QFlags ColorDialogOptions; %End %If (Qt_4_5_0 -) explicit QColorDialog(QWidget *parent /TransferThis/ = 0); %End %If (Qt_4_5_0 -) QColorDialog(const QColor &initial, QWidget *parent /TransferThis/ = 0); %End %If (Qt_4_5_0 -) virtual ~QColorDialog(); %End %If (Qt_5_0_0 -) static QColor getColor(const QColor &initial = Qt::white, QWidget *parent = 0, const QString &title = QString(), QFlags options = 0) /ReleaseGIL/; %End %If (- Qt_5_0_0) static QColor getColor(const QColor &initial = Qt::white, QWidget *parent = 0) /ReleaseGIL/; %End %If (Qt_4_5_0 - Qt_5_0_0) static QColor getColor(const QColor &initial, QWidget *parent, const QString &title, QFlags options = 0) /ReleaseGIL/; %End %If (- Qt_4_3_0) static QRgb getRgba(QRgb initial, bool *ok = 0, QWidget *parent = 0) /ReleaseGIL/; %End %If (Qt_4_3_0 -) static QRgb getRgba(QRgb initial = 0xffffffff, bool *ok = 0, QWidget *parent = 0) /ReleaseGIL/; %End static int customCount(); %If (Qt_5_0_0 -) static QColor customColor(int index); %End %If (- Qt_5_0_0) static QRgb customColor(int); %End %If (Qt_5_0_0 -) static void setCustomColor(int index, QColor color); %End %If (- Qt_5_0_0) static void setCustomColor(int, QRgb); %End %If (Qt_5_0_0 -) static QColor standardColor(int index); %End %If (Qt_5_0_0 -) static void setStandardColor(int index, QColor color); %End %If (- Qt_5_0_0) static void setStandardColor(int, QRgb); %End signals: %If (Qt_4_5_0 -) void colorSelected(const QColor &color); %End %If (Qt_4_5_0 -) void currentColorChanged(const QColor &color); %End protected: %If (Qt_4_3_0 -) virtual void changeEvent(QEvent *e); %End %If (Qt_4_5_0 -) virtual void done(int result); %End private: %If (- Qt_4_5_0) QColorDialog(QWidget *parent /TransferThis/ = 0, bool modal = false); %End QColorDialog(const QColorDialog &); %If (- Qt_4_5_0) virtual ~QColorDialog(); %End public: %If (Qt_4_5_0 -) void setCurrentColor(const QColor &color); %End %If (Qt_4_5_0 -) QColor currentColor() const; %End %If (Qt_4_5_0 -) QColor selectedColor() const; %End %If (Qt_4_5_0 -) void setOption(QColorDialog::ColorDialogOption option, bool on = true); %End %If (Qt_4_5_0 -) bool testOption(QColorDialog::ColorDialogOption option) const; %End %If (Qt_4_5_0 -) void setOptions(QFlags options); %End %If (Qt_4_5_0 -) QFlags options() const; %End %If (Qt_5_0_0 -) virtual void open(); %End %If (Qt_4_5_0 - Qt_5_0_0) void open(); %End %If (Qt_4_5_0 -) void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; %End %If (Qt_4_5_0 -) virtual void setVisible(bool visible); %End }; %If (Qt_4_5_0 -) QFlags operator|(QColorDialog::ColorDialogOption f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qcolumnview.sip0000644000076500000240000000565712536324426020702 0ustar philstaff00000000000000// qcolumnview.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) class QColumnView : QAbstractItemView { %TypeHeaderCode #include %End public: explicit QColumnView(QWidget *parent /TransferThis/ = 0); virtual ~QColumnView(); QList columnWidths() const; QWidget *previewWidget() const; bool resizeGripsVisible() const; void setColumnWidths(const QList &list); void setPreviewWidget(QWidget *widget /Transfer/); void setResizeGripsVisible(bool visible); virtual QModelIndex indexAt(const QPoint &point) const; virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible); virtual QSize sizeHint() const; virtual QRect visualRect(const QModelIndex &index) const; virtual void setModel(QAbstractItemModel *model /KeepReference/); virtual void setSelectionModel(QItemSelectionModel *selectionModel /KeepReference/); virtual void setRootIndex(const QModelIndex &index); virtual void selectAll(); signals: void updatePreviewWidget(const QModelIndex &index); protected: virtual QAbstractItemView *createColumn(const QModelIndex &rootIndex); %If (Qt_4_4_0 -) void initializeColumn(QAbstractItemView *column) const; %End virtual bool isIndexHidden(const QModelIndex &index) const; virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers); virtual void resizeEvent(QResizeEvent *event); virtual void setSelection(const QRect &rect, QFlags command); virtual QRegion visualRegionForSelection(const QItemSelection &selection) const; virtual int horizontalOffset() const; virtual int verticalOffset() const; virtual void scrollContentsBy(int dx, int dy); %If (Qt_4_6_0 -) virtual void rowsInserted(const QModelIndex &parent, int start, int end); %End protected slots: virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); private: QColumnView(const QColumnView &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qcombobox.sip0000644000076500000240000001434012536324426020307 0ustar philstaff00000000000000// qcombobox.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QComboBox : QWidget { %TypeHeaderCode #include %End public: explicit QComboBox(QWidget *parent /TransferThis/ = 0); virtual ~QComboBox(); int maxVisibleItems() const; void setMaxVisibleItems(int maxItems); int count() const /__len__/; void setMaxCount(int max); int maxCount() const; bool autoCompletion() const; void setAutoCompletion(bool enable); Qt::CaseSensitivity autoCompletionCaseSensitivity() const; void setAutoCompletionCaseSensitivity(Qt::CaseSensitivity sensitivity); bool duplicatesEnabled() const; void setDuplicatesEnabled(bool enable); void setFrame(bool); bool hasFrame() const; int findText(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const; int findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const; enum InsertPolicy { NoInsert, InsertAtTop, InsertAtCurrent, InsertAtBottom, InsertAfterCurrent, InsertBeforeCurrent, %If (Qt_4_2_0 -) InsertAlphabetically, %End }; QComboBox::InsertPolicy insertPolicy() const; void setInsertPolicy(QComboBox::InsertPolicy policy); enum SizeAdjustPolicy { AdjustToContents, AdjustToContentsOnFirstShow, AdjustToMinimumContentsLength, %If (Qt_4_3_0 -) AdjustToMinimumContentsLengthWithIcon, %End }; QComboBox::SizeAdjustPolicy sizeAdjustPolicy() const; void setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy); int minimumContentsLength() const; void setMinimumContentsLength(int characters); QSize iconSize() const; void setIconSize(const QSize &size); bool isEditable() const; void setEditable(bool editable); void setLineEdit(QLineEdit *edit /Transfer/); QLineEdit *lineEdit() const; void setValidator(const QValidator *v /KeepReference/); const QValidator *validator() const; QAbstractItemDelegate *itemDelegate() const; void setItemDelegate(QAbstractItemDelegate *delegate /KeepReference/); QAbstractItemModel *model() const; void setModel(QAbstractItemModel *model /KeepReference/); QModelIndex rootModelIndex() const; void setRootModelIndex(const QModelIndex &index); int modelColumn() const; void setModelColumn(int visibleColumn); int currentIndex() const; void setCurrentIndex(int index); QString currentText() const; QString itemText(int index) const; QIcon itemIcon(int index) const; QVariant itemData(int index, int role = Qt::UserRole) const; void addItems(const QStringList &texts); void addItem(const QString &text, const QVariant &userData /DocValue="Py_v3:None"/ = QVariant()); void addItem(const QIcon &icon, const QString &text, const QVariant &userData /DocValue="Py_v3:None"/ = QVariant()); void insertItem(int index, const QString &text, const QVariant &userData /DocValue="Py_v3:None"/ = QVariant()); void insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData /DocValue="Py_v3:None"/ = QVariant()); void insertItems(int index, const QStringList &texts); void removeItem(int index); void setItemText(int index, const QString &text); void setItemIcon(int index, const QIcon &icon); void setItemData(int index, const QVariant &value, int role = Qt::UserRole); QAbstractItemView *view() const; void setView(QAbstractItemView *itemView /Transfer/); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; virtual void showPopup(); virtual void hidePopup(); virtual bool event(QEvent *event); %If (Qt_4_2_0 -) void setCompleter(QCompleter *c /KeepReference/); %End %If (Qt_4_2_0 -) QCompleter *completer() const; %End %If (Qt_4_4_0 -) void insertSeparator(int index); %End public slots: void clear(); void clearEditText(); void setEditText(const QString &text); %If (Qt_5_0_0 -) void setCurrentText(const QString &text); %End signals: void editTextChanged(const QString &); void activated(int index); void activated(const QString &); void currentIndexChanged(int index); void currentIndexChanged(const QString &); %If (Qt_5_0_0 -) void currentTextChanged(const QString &); %End void highlighted(int index); void highlighted(const QString &); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionComboBox *option) const; %End virtual void focusInEvent(QFocusEvent *e); virtual void focusOutEvent(QFocusEvent *e); virtual void changeEvent(QEvent *e); virtual void resizeEvent(QResizeEvent *e); virtual void paintEvent(QPaintEvent *e); virtual void showEvent(QShowEvent *e); virtual void hideEvent(QHideEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual void keyReleaseEvent(QKeyEvent *e); virtual void wheelEvent(QWheelEvent *e); virtual void contextMenuEvent(QContextMenuEvent *e); virtual void inputMethodEvent(QInputMethodEvent *); %If (- Qt_5_0_0) virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const; %End public: %If (Qt_5_0_0 -) virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const; %End private: QComboBox(const QComboBox &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qcommandlinkbutton.sip0000644000076500000240000000334312536324426022230 0ustar philstaff00000000000000// qcommandlinkbutton.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QCommandLinkButton : QPushButton { %TypeHeaderCode #include %End public: explicit QCommandLinkButton(QWidget *parent /TransferThis/ = 0); QCommandLinkButton(const QString &text, QWidget *parent /TransferThis/ = 0); QCommandLinkButton(const QString &text, const QString &description, QWidget *parent /TransferThis/ = 0); %If (Qt_5_0_0 -) virtual ~QCommandLinkButton(); %End QString description() const; void setDescription(const QString &description); protected: virtual QSize sizeHint() const; virtual int heightForWidth(int) const; virtual QSize minimumSizeHint() const; virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); private: QCommandLinkButton(const QCommandLinkButton &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qcommonstyle.sip0000644000076500000240000000652312536324426021054 0ustar philstaff00000000000000// qcommonstyle.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QCommonStyle : QStyle { %TypeHeaderCode #include %End public: QCommonStyle(); virtual ~QCommonStyle(); virtual void polish(QWidget *widget); virtual void unpolish(QWidget *widget); virtual void polish(QApplication *app); virtual void unpolish(QApplication *application); virtual void polish(QPalette & /In,Out/); virtual void drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *widget = 0) const; virtual void drawControl(QStyle::ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *widget = 0) const; virtual QRect subElementRect(QStyle::SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const; virtual void drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, const QWidget *widget = 0) const; virtual QStyle::SubControl hitTestComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt, const QWidget *widget = 0) const; virtual QRect subControlRect(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, QStyle::SubControl sc, const QWidget *widget = 0) const; virtual QSize sizeFromContents(QStyle::ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *widget = 0) const; virtual int pixelMetric(QStyle::PixelMetric m, const QStyleOption *option = 0, const QWidget *widget = 0) const; virtual int styleHint(QStyle::StyleHint sh, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0) const; virtual QPixmap standardPixmap(QStyle::StandardPixmap sp, const QStyleOption *option = 0, const QWidget *widget = 0) const; virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const; %If (Qt_5_0_0 -) virtual QIcon standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = 0, const QWidget *widget = 0) const; %End %If (Qt_5_0_0 -) virtual int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = 0, const QWidget *widget = 0) const; %End protected slots: %If (- Qt_5_0_0) QIcon standardIconImplementation(QStyle::StandardPixmap standardIcon, const QStyleOption *option = 0, const QWidget *widget = 0) const; %End private: QCommonStyle(const QCommonStyle &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qcompleter.sip0000644000076500000240000000640512536324426020474 0ustar philstaff00000000000000// qcompleter.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QCompleter : QObject { %TypeHeaderCode #include %End public: enum CompletionMode { PopupCompletion, UnfilteredPopupCompletion, InlineCompletion, }; enum ModelSorting { UnsortedModel, CaseSensitivelySortedModel, CaseInsensitivelySortedModel, }; QCompleter(QObject *parent /TransferThis/ = 0); QCompleter(QAbstractItemModel *model, QObject *parent /TransferThis/ = 0); QCompleter(const QStringList &list, QObject *parent /TransferThis/ = 0); virtual ~QCompleter(); void setWidget(QWidget *widget /Transfer/); QWidget *widget() const; void setModel(QAbstractItemModel *c /KeepReference/); QAbstractItemModel *model() const; void setCompletionMode(QCompleter::CompletionMode mode); QCompleter::CompletionMode completionMode() const; QAbstractItemView *popup() const; void setPopup(QAbstractItemView *popup /Transfer/); void setCaseSensitivity(Qt::CaseSensitivity caseSensitivity); Qt::CaseSensitivity caseSensitivity() const; void setModelSorting(QCompleter::ModelSorting sorting); QCompleter::ModelSorting modelSorting() const; void setCompletionColumn(int column); int completionColumn() const; void setCompletionRole(int role); int completionRole() const; int completionCount() const; bool setCurrentRow(int row); int currentRow() const; QModelIndex currentIndex() const; QString currentCompletion() const; QAbstractItemModel *completionModel() const; QString completionPrefix() const; virtual QString pathFromIndex(const QModelIndex &index) const; virtual QStringList splitPath(const QString &path) const; %If (Qt_4_3_0 -) bool wrapAround() const; %End public slots: void complete(const QRect &rect = QRect()); void setCompletionPrefix(const QString &prefix); %If (Qt_4_3_0 -) void setWrapAround(bool wrap); %End protected: virtual bool eventFilter(QObject *o, QEvent *e); virtual bool event(QEvent *); signals: void activated(const QString &text); void activated(const QModelIndex &index); void highlighted(const QString &text); void highlighted(const QModelIndex &index); public: %If (Qt_4_6_0 -) int maxVisibleItems() const; %End %If (Qt_4_6_0 -) void setMaxVisibleItems(int maxItems); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qcursor.sip0000644000076500000240000000547712536324426020027 0ustar philstaff00000000000000// qcursor.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QCursor { %TypeHeaderCode #include %End %ConvertToTypeCode // SIP doesn't support automatic type convertors so we explicitly allow a // Qt::CursorShape to be used whenever a QCursor is expected. if (sipIsErr == NULL) return (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_Qt_CursorShape)) || sipCanConvertToType(sipPy, sipType_QCursor, SIP_NO_CONVERTORS)); if (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_Qt_CursorShape))) { *sipCppPtr = new QCursor((Qt::CursorShape)SIPLong_AsLong(sipPy)); return sipGetState(sipTransferObj); } *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QCursor, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End public: QCursor(); QCursor(Qt::CursorShape shape); QCursor(const QBitmap &bitmap, const QBitmap &mask, int hotX = -1, int hotY = -1); QCursor(const QPixmap &pixmap, int hotX = -1, int hotY = -1); QCursor(const QCursor &cursor); QCursor(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QCursor(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QCursor(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End ~QCursor(); Qt::CursorShape shape() const; void setShape(Qt::CursorShape newShape); const QBitmap *bitmap() const; const QBitmap *mask() const; QPixmap pixmap() const; QPoint hotSpot() const; static QPoint pos(); static void setPos(int x, int y); static void setPos(const QPoint &p); }; QDataStream &operator<<(QDataStream &outS, const QCursor &cursor /Constrained/); QDataStream &operator>>(QDataStream &inS, QCursor &cursor /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtGui/qdatawidgetmapper.sip0000644000076500000240000000515012536324426022020 0ustar philstaff00000000000000// qdatawidgetmapper.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QDataWidgetMapper : QObject { %TypeHeaderCode #include %End public: enum SubmitPolicy { AutoSubmit, ManualSubmit, }; %If (Qt_5_0_0 -) explicit QDataWidgetMapper(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QDataWidgetMapper(QObject *parent /TransferThis/ = 0); %End virtual ~QDataWidgetMapper(); void setModel(QAbstractItemModel *model /KeepReference/); QAbstractItemModel *model() const; void setItemDelegate(QAbstractItemDelegate *delegate /KeepReference/); QAbstractItemDelegate *itemDelegate() const; void setRootIndex(const QModelIndex &index); QModelIndex rootIndex() const; void setOrientation(Qt::Orientation aOrientation); Qt::Orientation orientation() const; void setSubmitPolicy(QDataWidgetMapper::SubmitPolicy policy); QDataWidgetMapper::SubmitPolicy submitPolicy() const; void addMapping(QWidget *widget, int section); %If (Qt_4_3_0 -) void addMapping(QWidget *widget, int section, const QByteArray &propertyName); %End void removeMapping(QWidget *widget); %If (Qt_4_3_0 -) QByteArray mappedPropertyName(QWidget *widget) const; %End int mappedSection(QWidget *widget) const; QWidget *mappedWidgetAt(int section) const; void clearMapping(); int currentIndex() const; public slots: void revert(); virtual void setCurrentIndex(int index); void setCurrentModelIndex(const QModelIndex &index); bool submit(); void toFirst(); void toLast(); void toNext(); void toPrevious(); signals: void currentIndexChanged(int index); private: QDataWidgetMapper(const QDataWidgetMapper &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qdatetimeedit.sip0000644000076500000240000001412112536324426021136 0ustar philstaff00000000000000// qdatetimeedit.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QDateTimeEdit : QAbstractSpinBox { %TypeHeaderCode #include %End public: enum Section { NoSection, AmPmSection, MSecSection, SecondSection, MinuteSection, HourSection, DaySection, MonthSection, YearSection, TimeSections_Mask, DateSections_Mask, }; typedef QFlags Sections; explicit QDateTimeEdit(QWidget *parent /TransferThis/ = 0); QDateTimeEdit(const QDateTime &datetime, QWidget *parent /TransferThis/ = 0); QDateTimeEdit(const QDate &date, QWidget *parent /TransferThis/ = 0); QDateTimeEdit(const QTime &time, QWidget *parent /TransferThis/ = 0); %If (Qt_5_0_0 -) virtual ~QDateTimeEdit(); %End QDateTime dateTime() const; QDate date() const; QTime time() const; QDate minimumDate() const; void setMinimumDate(const QDate &min); void clearMinimumDate(); QDate maximumDate() const; void setMaximumDate(const QDate &max); void clearMaximumDate(); void setDateRange(const QDate &min, const QDate &max); QTime minimumTime() const; void setMinimumTime(const QTime &min); void clearMinimumTime(); QTime maximumTime() const; void setMaximumTime(const QTime &max); void clearMaximumTime(); void setTimeRange(const QTime &min, const QTime &max); QFlags displayedSections() const; QDateTimeEdit::Section currentSection() const; void setCurrentSection(QDateTimeEdit::Section section); QString sectionText(QDateTimeEdit::Section s) const; QString displayFormat() const; void setDisplayFormat(const QString &format); %If (Qt_4_2_0 -) bool calendarPopup() const; %End %If (Qt_4_2_0 -) void setCalendarPopup(bool enable); %End %If (Qt_4_2_0 -) void setSelectedSection(QDateTimeEdit::Section section); %End virtual QSize sizeHint() const; virtual void clear(); virtual void stepBy(int steps); virtual bool event(QEvent *e); %If (Qt_4_3_0 -) QDateTimeEdit::Section sectionAt(int index) const; %End %If (Qt_4_3_0 -) int currentSectionIndex() const; %End %If (Qt_4_3_0 -) void setCurrentSectionIndex(int index); %End %If (Qt_4_3_0 -) int sectionCount() const; %End signals: void dateTimeChanged(const QDateTime &date); void timeChanged(const QTime &date); void dateChanged(const QDate &date); public slots: void setDateTime(const QDateTime &dateTime); void setDate(const QDate &date); void setTime(const QTime &time); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionSpinBox *option) const; %End virtual void keyPressEvent(QKeyEvent *e); virtual void wheelEvent(QWheelEvent *e); virtual void focusInEvent(QFocusEvent *e); virtual bool focusNextPrevChild(bool next); %If (Qt_4_2_0 -) virtual void mousePressEvent(QMouseEvent *event); %End %If (Qt_4_2_0 -) virtual void paintEvent(QPaintEvent *event); %End virtual QValidator::State validate(QString &input /In,Out/, int &pos /In,Out/) const /API=QString:2 - /; virtual QValidator::State validate(QString &input /Constrained/, int &pos /In,Out/) const /API=QString: - 2/; virtual void fixup(QString &input /In,Out/) const /API=QString:2 - /; virtual void fixup(QString &input /Constrained/) const /API=QString: - 2/; virtual QDateTime dateTimeFromText(const QString &text) const; virtual QString textFromDateTime(const QDateTime &dt) const; virtual QFlags stepEnabled() const; public: %If (Qt_4_4_0 -) QDateTime minimumDateTime() const; %End %If (Qt_4_4_0 -) void clearMinimumDateTime(); %End %If (Qt_4_4_0 -) void setMinimumDateTime(const QDateTime &dt); %End %If (Qt_4_4_0 -) QDateTime maximumDateTime() const; %End %If (Qt_4_4_0 -) void clearMaximumDateTime(); %End %If (Qt_4_4_0 -) void setMaximumDateTime(const QDateTime &dt); %End %If (Qt_4_4_0 -) void setDateTimeRange(const QDateTime &min, const QDateTime &max); %End %If (Qt_4_4_0 -) QCalendarWidget *calendarWidget() const; %End %If (Qt_4_4_0 -) void setCalendarWidget(QCalendarWidget *calendarWidget /Transfer/); %End %If (Qt_4_4_0 -) Qt::TimeSpec timeSpec() const; %End %If (Qt_4_4_0 -) void setTimeSpec(Qt::TimeSpec spec); %End private: QDateTimeEdit(const QDateTimeEdit &); }; class QTimeEdit : QDateTimeEdit { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QTimeEdit(QWidget *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QTimeEdit(QWidget *parent /TransferThis/ = 0); %End QTimeEdit(const QTime &time, QWidget *parent /TransferThis/ = 0); %If (Qt_5_0_0 -) virtual ~QTimeEdit(); %End }; class QDateEdit : QDateTimeEdit { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QDateEdit(QWidget *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QDateEdit(QWidget *parent /TransferThis/ = 0); %End QDateEdit(const QDate &date, QWidget *parent /TransferThis/ = 0); %If (Qt_5_0_0 -) virtual ~QDateEdit(); %End }; QFlags operator|(QDateTimeEdit::Section f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qdesktopservices.sip0000644000076500000240000000560312536324426021716 0ustar philstaff00000000000000// qdesktopservices.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QDesktopServices { %TypeHeaderCode #include %End public: %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) enum StandardLocation { DesktopLocation, DocumentsLocation, FontsLocation, ApplicationsLocation, MusicLocation, MoviesLocation, PicturesLocation, TempLocation, HomeLocation, DataLocation, %If (Qt_4_5_0 -) CacheLocation, %End }; %End %End static bool openUrl(const QUrl &url) /ReleaseGIL/; static void setUrlHandler(const QString &scheme, QObject *receiver, const char *method); static void setUrlHandler(const QString &scheme, SIP_PYCALLABLE method); %MethodCode // Allow a callable that must be a slot of a QObject, although we never tell // the user if it isn't. if (PyMethod_Check(a1)) { PyObject *self = PyMethod_GET_SELF(a1); PyObject *func = PyMethod_GET_FUNCTION(a1); int iserr = 0; QObject *receiver = reinterpret_cast(sipForceConvertToType( self, sipType_QObject, NULL, SIP_NOT_NONE, NULL, &iserr)); if (!iserr && PyFunction_Check(func)) { PyObject *ascii_obj = ((PyFunctionObject *)func)->func_name; const char *ascii = sipString_AsASCIIString(&ascii_obj); if (ascii) { QDesktopServices::setUrlHandler(*a0, receiver, ascii); Py_DECREF(ascii_obj); } } } %End static void unsetUrlHandler(const QString &scheme); %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) static QString storageLocation(QDesktopServices::StandardLocation type); %End %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) %If (PyQt_NotBootstrapped) static QString displayName(QDesktopServices::StandardLocation type); %End %End %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qdesktopwidget.sip0000644000076500000240000000366512536324426021364 0ustar philstaff00000000000000// qdesktopwidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDesktopWidget : QWidget { %TypeHeaderCode #include %End public: QDesktopWidget(); virtual ~QDesktopWidget(); bool isVirtualDesktop() const; int numScreens() const; int primaryScreen() const; int screenNumber(const QWidget *widget = 0) const; int screenNumber(const QPoint &) const; QWidget *screen(int screen = -1); %If (Qt_4_6_0 -) int screenCount() const; %End const QRect screenGeometry(int screen = -1) const; const QRect screenGeometry(const QWidget *widget) const; const QRect screenGeometry(const QPoint &point) const; const QRect availableGeometry(int screen = -1) const; const QRect availableGeometry(const QWidget *widget) const; const QRect availableGeometry(const QPoint &point) const; signals: void resized(int); void workAreaResized(int); %If (Qt_4_6_0 -) void screenCountChanged(int); %End protected: virtual void resizeEvent(QResizeEvent *e); private: QDesktopWidget(const QDesktopWidget &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qdial.sip0000644000076500000240000000357012536324426017413 0ustar philstaff00000000000000// qdial.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDial : QAbstractSlider { %TypeHeaderCode #include %End public: explicit QDial(QWidget *parent /TransferThis/ = 0); virtual ~QDial(); bool wrapping() const; int notchSize() const; void setNotchTarget(double target); qreal notchTarget() const; bool notchesVisible() const; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; public slots: void setNotchesVisible(bool visible); void setWrapping(bool on); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionSlider *option) const; %End virtual bool event(QEvent *e); virtual void resizeEvent(QResizeEvent *re); virtual void paintEvent(QPaintEvent *pe); virtual void mousePressEvent(QMouseEvent *me); virtual void mouseReleaseEvent(QMouseEvent *me); virtual void mouseMoveEvent(QMouseEvent *me); virtual void sliderChange(QAbstractSlider::SliderChange change); private: QDial(const QDial &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qdialog.sip0000644000076500000240000001203212536324426017732 0ustar philstaff00000000000000// qdialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDialog : QWidget { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QDialog(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QDialog(QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End virtual ~QDialog(); enum DialogCode { Rejected, Accepted, }; int result() const; virtual void setVisible(bool visible); void setOrientation(Qt::Orientation orientation); Qt::Orientation orientation() const; void setExtension(QWidget *extension /Transfer/); QWidget *extension() const; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void setSizeGripEnabled(bool); bool isSizeGripEnabled() const; void setModal(bool modal); void setResult(int r); %If (Qt_5_0_0 -) virtual int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipSelfWasArg ? sipCpp->QDialog::exec() : sipCpp->exec(); Py_END_ALLOW_THREADS %End %End public slots: %If (- Qt_5_0_0) int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->exec(); Py_END_ALLOW_THREADS %End %End public: %If (Qt_5_0_0 -) %If (Py_v3) virtual int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipSelfWasArg ? sipCpp->QDialog::exec() : sipCpp->exec(); Py_END_ALLOW_THREADS %End %End %End public slots: %If (- Qt_5_0_0) %If (Py_v3) int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->exec(); Py_END_ALLOW_THREADS %End %End %End virtual void done(int); virtual void accept(); virtual void reject(); void showExtension(bool); %If (Qt_5_0_0 -) virtual void open(); %End %If (Qt_4_5_0 - Qt_5_0_0) void open(); %End signals: void accepted(); void finished(int result); void rejected(); protected: virtual void keyPressEvent(QKeyEvent *); virtual void closeEvent(QCloseEvent *); virtual void showEvent(QShowEvent *); virtual void resizeEvent(QResizeEvent *); virtual void contextMenuEvent(QContextMenuEvent *); virtual bool eventFilter(QObject *, QEvent *); private: QDialog(const QDialog &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qdialogbuttonbox.sip0000644000076500000240000000701512536324426021704 0ustar philstaff00000000000000// qdialogbuttonbox.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) %ModuleCode #include %End %End %If (Qt_4_2_0 -) class QDialogButtonBox : QWidget { %TypeHeaderCode #include %End public: enum ButtonLayout { WinLayout, MacLayout, KdeLayout, GnomeLayout, }; enum ButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ActionRole, HelpRole, YesRole, NoRole, ResetRole, ApplyRole, }; enum StandardButton { NoButton, Ok, Save, SaveAll, Open, Yes, YesToAll, No, NoToAll, Abort, Retry, Ignore, Close, Cancel, Discard, Help, Apply, Reset, RestoreDefaults, }; typedef QFlags StandardButtons; QDialogButtonBox(QWidget *parent /TransferThis/ = 0); QDialogButtonBox(Qt::Orientation orientation, QWidget *parent /TransferThis/ = 0); QDialogButtonBox(QFlags buttons, Qt::Orientation orientation = Qt::Horizontal, QWidget *parent /TransferThis/ = 0); virtual ~QDialogButtonBox(); void setOrientation(Qt::Orientation orientation); Qt::Orientation orientation() const; void addButton(QAbstractButton *button /Transfer/, QDialogButtonBox::ButtonRole role); QPushButton *addButton(const QString &text, QDialogButtonBox::ButtonRole role) /Transfer/; QPushButton *addButton(QDialogButtonBox::StandardButton button) /Transfer/; void removeButton(QAbstractButton *button /TransferBack/); void clear(); QList buttons() const; QDialogButtonBox::ButtonRole buttonRole(QAbstractButton *button) const; void setStandardButtons(QFlags buttons); QFlags standardButtons() const; QDialogButtonBox::StandardButton standardButton(QAbstractButton *button) const; QPushButton *button(QDialogButtonBox::StandardButton which) const; void setCenterButtons(bool center); bool centerButtons() const; signals: void accepted(); void clicked(QAbstractButton *button); void helpRequested(); void rejected(); protected: virtual void changeEvent(QEvent *event); virtual bool event(QEvent *event); private: QDialogButtonBox(const QDialogButtonBox &); }; %End %If (Qt_4_2_0 -) QFlags operator|(QDialogButtonBox::StandardButton f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qdirmodel.sip0000644000076500000240000001157012536324426020300 0ustar philstaff00000000000000// qdirmodel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDirModel : QAbstractItemModel { %TypeHeaderCode #include %End public: enum Roles { FileIconRole, FilePathRole, FileNameRole, }; QDirModel(const QStringList &nameFilters, QFlags filters, QFlags sort, QObject *parent /TransferThis/ = 0); explicit QDirModel(QObject *parent /TransferThis/ = 0); virtual ~QDirModel(); virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex parent(const QModelIndex &child) const; QObject *parent() const; %If (- Qt_4_2_0) virtual int rowCount(const QModelIndex &parent) const; %End %If (Qt_4_2_0 -) virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; %End %If (- Qt_4_2_0) virtual int columnCount(const QModelIndex &parent) const; %End %If (Qt_4_2_0 -) virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; %End virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; %If (- Qt_4_2_0) virtual bool setData(const QModelIndex &index, const QVariant &value, int role); %End %If (Qt_4_2_0 -) virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); %End %If (- Qt_4_2_0) virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const; %End %If (Qt_4_2_0 -) virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; %End %If (- Qt_4_2_0) virtual bool hasChildren(const QModelIndex &index) const; %End %If (Qt_4_2_0 -) virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const; %End virtual Qt::ItemFlags flags(const QModelIndex &index) const; %If (- Qt_4_2_0) virtual void sort(int column, Qt::SortOrder order); %End %If (Qt_4_2_0 -) virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); %End virtual QStringList mimeTypes() const; virtual QMimeData *mimeData(const QModelIndexList &indexes) const /TransferBack/; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); virtual Qt::DropActions supportedDropActions() const; void setIconProvider(QFileIconProvider *provider /KeepReference/); QFileIconProvider *iconProvider() const; void setNameFilters(const QStringList &filters); QStringList nameFilters() const; void setFilter(QFlags filters); QFlags filter() const; void setSorting(QFlags sort); QFlags sorting() const; void setResolveSymlinks(bool enable); bool resolveSymlinks() const; void setReadOnly(bool enable); bool isReadOnly() const; void setLazyChildCount(bool enable); bool lazyChildCount() const; void refresh(const QModelIndex &parent = QModelIndex()); QModelIndex index(const QString &path, int column = 0) const; bool isDir(const QModelIndex &index) const; QModelIndex mkdir(const QModelIndex &parent, const QString &name); bool rmdir(const QModelIndex &index); bool remove(const QModelIndex &index); QString filePath(const QModelIndex &index) const; QString fileName(const QModelIndex &index) const; QIcon fileIcon(const QModelIndex &index) const; QFileInfo fileInfo(const QModelIndex &index) const; private: QDirModel(const QDirModel &); }; %If (- Qt_4_3_0) class QFileIconProvider { %TypeHeaderCode #include %End public: QFileIconProvider(); virtual ~QFileIconProvider(); enum IconType { Computer, Desktop, Trashcan, Network, Drive, Folder, File, }; virtual QIcon icon(QFileIconProvider::IconType type) const; virtual QIcon icon(const QFileInfo &info) const; virtual QString type(const QFileInfo &info) const; private: %If (Qt_4_2_0 -) QFileIconProvider(const QFileIconProvider &); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qdockwidget.sip0000644000076500000240000000630612536324426020626 0ustar philstaff00000000000000// qdockwidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QDockWidget : QWidget { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QDockWidget(const QString &title, QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QDockWidget(const QString &title, QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End %If (Qt_4_2_0 -) QDockWidget(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QDockWidget(QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End virtual ~QDockWidget(); QWidget *widget() const; void setWidget(QWidget *widget /Transfer/); enum DockWidgetFeature { DockWidgetClosable, DockWidgetMovable, DockWidgetFloatable, %If (Qt_4_3_0 -) DockWidgetVerticalTitleBar, %End AllDockWidgetFeatures, NoDockWidgetFeatures, }; typedef QFlags DockWidgetFeatures; void setFeatures(QFlags features); QFlags features() const; void setFloating(bool floating); bool isFloating() const; void setAllowedAreas(Qt::DockWidgetAreas areas); Qt::DockWidgetAreas allowedAreas() const; bool isAreaAllowed(Qt::DockWidgetArea area) const; QAction *toggleViewAction() const /Transfer/; %If (Qt_4_3_0 -) void setTitleBarWidget(QWidget *widget /Transfer/); %End %If (Qt_4_3_0 -) QWidget *titleBarWidget() const; %End signals: void featuresChanged(QFlags features); void topLevelChanged(bool topLevel); void allowedAreasChanged(Qt::DockWidgetAreas allowedAreas); %If (Qt_4_3_0 -) void dockLocationChanged(Qt::DockWidgetArea area); %End %If (Qt_4_3_0 -) void visibilityChanged(bool visible); %End protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionDockWidget *option) const; %End virtual void changeEvent(QEvent *event); virtual void closeEvent(QCloseEvent *event); virtual void paintEvent(QPaintEvent *event); virtual bool event(QEvent *event); private: QDockWidget(const QDockWidget &); }; QFlags operator|(QDockWidget::DockWidgetFeature f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qdrag.sip0000644000076500000240000000526712536324426017424 0ustar philstaff00000000000000// qdrag.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QDrag : QObject { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QDrag(QObject *dragSource /TransferThis/); %End %If (- Qt_5_0_0) explicit QDrag(QWidget *dragSource /TransferThis/); %End virtual ~QDrag(); %If (Qt_4_3_0 -) Qt::DropAction exec(Qt::DropActions supportedActions = Qt::MoveAction) /PyName=exec_,ReleaseGIL/; %End %If (Qt_4_3_0 -) %If (Py_v3) Qt::DropAction exec(Qt::DropActions supportedActions = Qt::MoveAction) /ReleaseGIL/; %End %End %If (Qt_4_3_0 -) Qt::DropAction exec(Qt::DropActions supportedActions, Qt::DropAction defaultDropAction) /PyName=exec_,ReleaseGIL/; %End %If (Qt_4_3_0 -) Qt::DropAction exec(Qt::DropActions supportedActions, Qt::DropAction defaultDropAction) /ReleaseGIL/; %End void setMimeData(QMimeData *data /Transfer/); QMimeData *mimeData() const; void setPixmap(const QPixmap &); QPixmap pixmap() const; void setHotSpot(const QPoint &hotspot); QPoint hotSpot() const; %If (Qt_5_0_0 -) QObject *source() const; %End %If (- Qt_5_0_0) QWidget *source() const; %End %If (Qt_5_0_0 -) QObject *target() const; %End %If (- Qt_5_0_0) QWidget *target() const; %End Qt::DropAction start(Qt::DropActions supportedActions = Qt::CopyAction) /ReleaseGIL/; void setDragCursor(const QPixmap &cursor, Qt::DropAction action); signals: void actionChanged(Qt::DropAction action); %If (Qt_5_0_0 -) void targetChanged(QObject *newTarget); %End %If (- Qt_5_0_0) void targetChanged(QWidget *newTarget); %End public: %If (Qt_5_0_0 -) QPixmap dragCursor(Qt::DropAction action) const; %End %If (Qt_5_0_0 -) Qt::DropActions supportedActions() const; %End %If (Qt_5_0_0 -) Qt::DropAction defaultAction() const; %End private: QDrag(const QDrag &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qdrawutil.sip0000644000076500000240000000527412536324426020340 0ustar philstaff00000000000000// qdrawutil.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End void qDrawShadeLine(QPainter *p, int x1, int y1, int x2, int y2, const QPalette &pal, bool sunken = true, int lineWidth = 1, int midLineWidth = 0); void qDrawShadeLine(QPainter *p, const QPoint &p1, const QPoint &p2, const QPalette &pal, bool sunken = true, int lineWidth = 1, int midLineWidth = 0); void qDrawShadeRect(QPainter *p, int x, int y, int w, int h, const QPalette &pal, bool sunken = false, int lineWidth = 1, int midLineWidth = 0, const QBrush *fill = 0); void qDrawShadeRect(QPainter *p, const QRect &r, const QPalette &pal, bool sunken = false, int lineWidth = 1, int midLineWidth = 0, const QBrush *fill = 0); void qDrawShadePanel(QPainter *p, int x, int y, int w, int h, const QPalette &pal, bool sunken = false, int lineWidth = 1, const QBrush *fill = 0); void qDrawShadePanel(QPainter *p, const QRect &r, const QPalette &pal, bool sunken = false, int lineWidth = 1, const QBrush *fill = 0); void qDrawWinButton(QPainter *p, int x, int y, int w, int h, const QPalette &pal, bool sunken = false, const QBrush *fill = 0); void qDrawWinButton(QPainter *p, const QRect &r, const QPalette &pal, bool sunken = false, const QBrush *fill = 0); void qDrawWinPanel(QPainter *p, int x, int y, int w, int h, const QPalette &pal, bool sunken = false, const QBrush *fill = 0); void qDrawWinPanel(QPainter *p, const QRect &r, const QPalette &pal, bool sunken = false, const QBrush *fill = 0); void qDrawPlainRect(QPainter *p, int x, int y, int w, int h, const QColor &, int lineWidth = 1, const QBrush *fill = 0); void qDrawPlainRect(QPainter *p, const QRect &r, const QColor &, int lineWidth = 1, const QBrush *fill = 0); %If (Qt_4_6_0 -) void qDrawBorderPixmap(QPainter *painter, const QRect &target, const QMargins &margins, const QPixmap &pixmap); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qerrormessage.sip0000644000076500000240000000271112536324426021174 0ustar philstaff00000000000000// qerrormessage.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QErrorMessage : QDialog { %TypeHeaderCode #include %End public: explicit QErrorMessage(QWidget *parent /TransferThis/ = 0); virtual ~QErrorMessage(); static QErrorMessage *qtHandler(); public slots: void showMessage(const QString &message); %If (Qt_4_5_0 -) void showMessage(const QString &message, const QString &type); %End protected: %If (Qt_4_3_0 -) virtual void changeEvent(QEvent *e); %End virtual void done(int); private: QErrorMessage(const QErrorMessage &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qevent.sip0000644000076500000240000006514512536324426017631 0ustar philstaff00000000000000// qevent.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QInputEvent : QEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End %ConvertToSubClassCode switch (sipCpp->type()) { case QEvent::ActionAdded: case QEvent::ActionChanged: case QEvent::ActionRemoved: sipType = sipType_QActionEvent; break; case QEvent::Close: sipType = sipType_QCloseEvent; break; case QEvent::ContextMenu: sipType = sipType_QContextMenuEvent; break; case QEvent::DragEnter: sipType = sipType_QDragEnterEvent; break; case QEvent::DragLeave: sipType = sipType_QDragLeaveEvent; break; case QEvent::DragMove: sipType = sipType_QDragMoveEvent; break; case QEvent::Drop: sipType = sipType_QDropEvent; break; #if QT_VERSION >= 0x050000 case QEvent::Enter: sipType = sipType_QEnterEvent; break; #endif case QEvent::FileOpen: sipType = sipType_QFileOpenEvent; break; case QEvent::FocusIn: case QEvent::FocusOut: sipType = sipType_QFocusEvent; break; case QEvent::Hide: sipType = sipType_QHideEvent; break; case QEvent::HoverEnter: case QEvent::HoverLeave: case QEvent::HoverMove: sipType = sipType_QHoverEvent; break; case QEvent::IconDrag: sipType = sipType_QIconDragEvent; break; case QEvent::InputMethod: sipType = sipType_QInputMethodEvent; break; case QEvent::KeyPress: case QEvent::KeyRelease: case QEvent::ShortcutOverride: sipType = sipType_QKeyEvent; break; case QEvent::MouseButtonDblClick: case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseMove: sipType = sipType_QMouseEvent; break; case QEvent::Move: sipType = sipType_QMoveEvent; break; case QEvent::Paint: sipType = sipType_QPaintEvent; break; case QEvent::Resize: sipType = sipType_QResizeEvent; break; case QEvent::Shortcut: sipType = sipType_QShortcutEvent; break; case QEvent::Show: sipType = sipType_QShowEvent; break; case QEvent::StatusTip: sipType = sipType_QStatusTipEvent; break; case QEvent::TabletMove: case QEvent::TabletPress: case QEvent::TabletRelease: #if QT_VERSION >= 0x040200 case QEvent::TabletEnterProximity: case QEvent::TabletLeaveProximity: #endif sipType = sipType_QTabletEvent; break; case QEvent::ToolTip: case QEvent::WhatsThis: sipType = sipType_QHelpEvent; break; case QEvent::WhatsThisClicked: sipType = sipType_QWhatsThisClickedEvent; break; case QEvent::Wheel: sipType = sipType_QWheelEvent; break; case QEvent::WindowStateChange: sipType = sipType_QWindowStateChangeEvent; break; #if QT_VERSION >= 0x040200 case QEvent::GraphicsSceneContextMenu: sipType = sipType_QGraphicsSceneContextMenuEvent; break; case QEvent::GraphicsSceneDragEnter: case QEvent::GraphicsSceneDragLeave: case QEvent::GraphicsSceneDragMove: case QEvent::GraphicsSceneDrop: sipType = sipType_QGraphicsSceneDragDropEvent; break; case QEvent::GraphicsSceneHelp: sipType = sipType_QGraphicsSceneHelpEvent; break; case QEvent::GraphicsSceneHoverEnter: case QEvent::GraphicsSceneHoverLeave: case QEvent::GraphicsSceneHoverMove: sipType = sipType_QGraphicsSceneHoverEvent; break; case QEvent::GraphicsSceneMouseDoubleClick: case QEvent::GraphicsSceneMouseMove: case QEvent::GraphicsSceneMousePress: case QEvent::GraphicsSceneMouseRelease: sipType = sipType_QGraphicsSceneMouseEvent; break; case QEvent::GraphicsSceneWheel: sipType = sipType_QGraphicsSceneWheelEvent; break; #endif #if QT_VERSION >= 0x040400 case QEvent::GraphicsSceneMove: sipType = sipType_QGraphicsSceneMoveEvent; break; case QEvent::GraphicsSceneResize: sipType = sipType_QGraphicsSceneResizeEvent; break; #endif #if QT_VERSION >= 0x040600 case QEvent::TouchBegin: case QEvent::TouchUpdate: case QEvent::TouchEnd: sipType = sipType_QTouchEvent; break; case QEvent::Gesture: sipType = sipType_QGestureEvent; break; #endif #if QT_VERSION >= 0x050000 case QEvent::InputMethodQuery: sipType = sipType_QInputMethodQueryEvent; break; case QEvent::Expose: sipType = sipType_QExposeEvent; break; case QEvent::ScrollPrepare: sipType = sipType_QScrollPrepareEvent; break; case QEvent::Scroll: sipType = sipType_QScrollEvent; break; #endif default: sipType = 0; } %End public: virtual ~QInputEvent(); Qt::KeyboardModifiers modifiers() const; %If (Qt_5_0_0 -) ulong timestamp() const; %End %If (Qt_5_0_0 -) void setTimestamp(ulong atimestamp); %End }; class QMouseEvent : QInputEvent { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) QMouseEvent(QEvent::Type type, const QPointF &pos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); %End %If (- Qt_5_0_0) QMouseEvent(QEvent::Type type, const QPoint &pos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); %End %If (Qt_5_0_0 -) QMouseEvent(QEvent::Type type, const QPointF &pos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); %End %If (- Qt_5_0_0) QMouseEvent(QEvent::Type type, const QPoint &pos, const QPoint &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); %End %If (Qt_5_0_0 -) QMouseEvent(QEvent::Type type, const QPointF &pos, const QPointF &windowPos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); %End virtual ~QMouseEvent(); %If (Qt_5_0_0 -) QPoint pos() const; %End %If (- Qt_5_0_0) const QPoint &pos() const; %End %If (Qt_5_0_0 -) QPoint globalPos() const; %End %If (- Qt_5_0_0) const QPoint &globalPos() const; %End int x() const; int y() const; int globalX() const; int globalY() const; Qt::MouseButton button() const; Qt::MouseButtons buttons() const; %If (Qt_4_4_0 - Qt_5_0_0) bool hasExtendedInfo() const; %End %If (Qt_4_4_0 -) %If (PyQt_Deprecated_5_0) QPointF posF() const; %End %End %If (Qt_5_0_0 -) const QPointF &localPos() const; %End %If (Qt_5_0_0 -) const QPointF &windowPos() const; %End %If (Qt_5_0_0 -) const QPointF &screenPos() const; %End }; %If (Qt_5_0_0 -) class QHoverEvent : QInputEvent { %TypeHeaderCode #include %End public: QHoverEvent(QEvent::Type type, const QPointF &pos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier); virtual ~QHoverEvent(); QPoint pos() const; QPoint oldPos() const; const QPointF &posF() const; const QPointF &oldPosF() const; }; %End %If (- Qt_5_0_0) class QHoverEvent : QEvent { %TypeHeaderCode #include %End public: QHoverEvent(QEvent::Type type, const QPoint &pos, const QPoint &oldPos); virtual ~QHoverEvent(); const QPoint &pos() const; const QPoint &oldPos() const; }; %End class QWheelEvent : QInputEvent { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) QWheelEvent(const QPointF &pos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::Orientation orientation = Qt::Vertical); %End %If (- Qt_5_0_0) QWheelEvent(const QPoint &pos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::Orientation orientation = Qt::Vertical); %End %If (Qt_5_0_0 -) QWheelEvent(const QPointF &pos, const QPointF &globalPos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::Orientation orientation = Qt::Vertical); %End %If (- Qt_5_0_0) QWheelEvent(const QPoint &pos, const QPoint &globalPos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::Orientation orientation = Qt::Vertical); %End %If (Qt_5_0_0 -) QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); %End virtual ~QWheelEvent(); int delta() const; %If (Qt_5_0_0 -) QPoint pos() const; %End %If (- Qt_5_0_0) const QPoint &pos() const; %End %If (Qt_5_0_0 -) QPoint globalPos() const; %End %If (- Qt_5_0_0) const QPoint &globalPos() const; %End int x() const; int y() const; int globalX() const; int globalY() const; Qt::MouseButtons buttons() const; Qt::Orientation orientation() const; %If (Qt_5_0_0 -) QPoint pixelDelta() const; %End %If (Qt_5_0_0 -) QPoint angleDelta() const; %End %If (Qt_5_0_0 -) const QPointF &posF() const; %End %If (Qt_5_0_0 -) const QPointF &globalPosF() const; %End }; class QTabletEvent : QInputEvent { %TypeHeaderCode #include %End public: enum TabletDevice { NoDevice, Puck, Stylus, Airbrush, FourDMouse, XFreeEraser, RotationStylus, }; enum PointerType { UnknownPointer, Pen, Cursor, Eraser, }; %If (Qt_5_0_0 -) QTabletEvent(QEvent::Type t, const QPointF &pos, const QPointF &globalPos, int device, int pointerType, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, Qt::KeyboardModifiers keyState, qint64 uniqueID); %End %If (- Qt_5_0_0) QTabletEvent(QEvent::Type t, const QPoint &pos, const QPoint &globalPos, const QPointF &hiResGlobalPos, int device, int pointerType, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, Qt::KeyboardModifiers keyState, qint64 uniqueID); %End virtual ~QTabletEvent(); %If (Qt_5_0_0 -) QPoint pos() const; %End %If (- Qt_5_0_0) const QPoint &pos() const; %End %If (Qt_5_0_0 -) QPoint globalPos() const; %End %If (- Qt_5_0_0) const QPoint &globalPos() const; %End %If (PyQt_Deprecated_5_0) const QPointF &hiResGlobalPos() const; %End int x() const; int y() const; int globalX() const; int globalY() const; qreal hiResGlobalX() const; qreal hiResGlobalY() const; QTabletEvent::TabletDevice device() const; QTabletEvent::PointerType pointerType() const; qint64 uniqueId() const; qreal pressure() const; int z() const; qreal tangentialPressure() const; qreal rotation() const; int xTilt() const; int yTilt() const; %If (Qt_5_0_0 -) const QPointF &posF() const; %End %If (Qt_5_0_0 -) const QPointF &globalPosF() const; %End }; class QKeyEvent : QInputEvent { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers, const QString &text = QString(), bool autorep = false, ushort count = 1); %End QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString &text /DocValue="Py_v3:''"/ = QString(), bool autorep = false, ushort count = 1); virtual ~QKeyEvent(); int key() const; Qt::KeyboardModifiers modifiers() const; QString text() const; bool isAutoRepeat() const; int count() const /__len__/; %If (Qt_4_2_0 -) bool matches(QKeySequence::StandardKey key) const; %End %If (Qt_4_2_0 -) quint32 nativeModifiers() const; %End %If (Qt_4_2_0 -) quint32 nativeScanCode() const; %End %If (Qt_4_2_0 -) quint32 nativeVirtualKey() const; %End }; class QFocusEvent : QEvent { %TypeHeaderCode #include %End public: QFocusEvent(QEvent::Type type, Qt::FocusReason reason = Qt::OtherFocusReason); virtual ~QFocusEvent(); bool gotFocus() const; bool lostFocus() const; %If (Qt_4_2_0 -) Qt::FocusReason reason() const; %End %If (- Qt_4_2_0) Qt::FocusReason reason(); %End }; class QPaintEvent : QEvent { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QPaintEvent(const QRegion &paintRegion); %End %If (- Qt_5_0_0) QPaintEvent(const QRegion &paintRegion); %End %If (Qt_5_0_0 -) explicit QPaintEvent(const QRect &paintRect); %End %If (- Qt_5_0_0) QPaintEvent(const QRect &paintRect); %End virtual ~QPaintEvent(); const QRect &rect() const; const QRegion ®ion() const; }; class QMoveEvent : QEvent { %TypeHeaderCode #include %End public: QMoveEvent(const QPoint &pos, const QPoint &oldPos); virtual ~QMoveEvent(); const QPoint &pos() const; const QPoint &oldPos() const; }; class QResizeEvent : QEvent { %TypeHeaderCode #include %End public: QResizeEvent(const QSize &size, const QSize &oldSize); virtual ~QResizeEvent(); const QSize &size() const; const QSize &oldSize() const; }; class QCloseEvent : QEvent { %TypeHeaderCode #include %End public: QCloseEvent(); virtual ~QCloseEvent(); }; class QIconDragEvent : QEvent { %TypeHeaderCode #include %End public: QIconDragEvent(); virtual ~QIconDragEvent(); }; class QShowEvent : QEvent { %TypeHeaderCode #include %End public: QShowEvent(); virtual ~QShowEvent(); }; class QHideEvent : QEvent { %TypeHeaderCode #include %End public: QHideEvent(); virtual ~QHideEvent(); }; class QContextMenuEvent : QInputEvent { %TypeHeaderCode #include %End public: enum Reason { Mouse, Keyboard, Other, }; %If (Qt_4_4_0 -) QContextMenuEvent(QContextMenuEvent::Reason reason, const QPoint &pos, const QPoint &globalPos, Qt::KeyboardModifiers modifiers); %End QContextMenuEvent(QContextMenuEvent::Reason reason, const QPoint &pos, const QPoint &globalPos); QContextMenuEvent(QContextMenuEvent::Reason reason, const QPoint &pos); virtual ~QContextMenuEvent(); int x() const; int y() const; int globalX() const; int globalY() const; const QPoint &pos() const; const QPoint &globalPos() const; QContextMenuEvent::Reason reason() const; }; class QInputMethodEvent : QEvent { %TypeHeaderCode #include %End public: enum AttributeType { TextFormat, Cursor, Language, Ruby, %If (Qt_4_6_0 -) Selection, %End }; class Attribute { %TypeHeaderCode #include %End public: Attribute(QInputMethodEvent::AttributeType t, int s, int l, QVariant val); QInputMethodEvent::AttributeType type; int start; int length; QVariant value; }; QInputMethodEvent(); QInputMethodEvent(const QString &preeditText, const QList &attributes); QInputMethodEvent(const QInputMethodEvent &other); void setCommitString(const QString &commitString, int from = 0, int length = 0); const QList &attributes() const; const QString &preeditString() const; const QString &commitString() const; int replacementStart() const; int replacementLength() const; }; %If (Qt_5_0_0 -) class QInputMethodQueryEvent : QEvent { %TypeHeaderCode #include %End public: explicit QInputMethodQueryEvent(Qt::InputMethodQueries queries); virtual ~QInputMethodQueryEvent(); Qt::InputMethodQueries queries() const; void setValue(Qt::InputMethodQuery query, const QVariant &value); QVariant value(Qt::InputMethodQuery query) const; }; %End %If (Qt_5_0_0 -) class QDropEvent : QEvent { %TypeHeaderCode #include %End public: QDropEvent(const QPointF &pos, Qt::DropActions actions, const QMimeData *data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, QEvent::Type type = QEvent::Drop); virtual ~QDropEvent(); %If (Qt_5_0_0 -) QPoint pos() const; %End %If (- Qt_5_0_0) const QPoint pos() const; %End const QPointF &posF() const; Qt::MouseButtons mouseButtons() const; Qt::KeyboardModifiers keyboardModifiers() const; Qt::DropActions possibleActions() const; Qt::DropAction proposedAction() const; void acceptProposedAction(); Qt::DropAction dropAction() const; void setDropAction(Qt::DropAction action); QObject *source() const; const QMimeData *mimeData() const; }; %End %If (- Qt_5_0_0) class QDropEvent : QEvent, QMimeSource { %TypeHeaderCode #include %End public: QDropEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, QEvent::Type type = QEvent::Drop); virtual ~QDropEvent(); const QPoint &pos() const; Qt::MouseButtons mouseButtons() const; Qt::KeyboardModifiers keyboardModifiers() const; Qt::DropActions possibleActions() const; Qt::DropAction proposedAction() const; void acceptProposedAction(); Qt::DropAction dropAction() const; void setDropAction(Qt::DropAction action); QWidget *source() const; const QMimeData *mimeData() const; virtual const char *format(int n = 0) const; virtual QByteArray encodedData(const char *) const; virtual bool provides(const char *) const; }; %End class QDragMoveEvent : QDropEvent { %TypeHeaderCode #include %End public: QDragMoveEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, QEvent::Type type = QEvent::DragMove); virtual ~QDragMoveEvent(); QRect answerRect() const; void accept(); void ignore(); void accept(const QRect &r); void ignore(const QRect &r); }; class QDragEnterEvent : QDragMoveEvent { %TypeHeaderCode #include %End public: QDragEnterEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); virtual ~QDragEnterEvent(); }; class QDragLeaveEvent : QEvent { %TypeHeaderCode #include %End public: QDragLeaveEvent(); virtual ~QDragLeaveEvent(); }; class QHelpEvent : QEvent { %TypeHeaderCode #include %End public: QHelpEvent(QEvent::Type type, const QPoint &pos, const QPoint &globalPos); virtual ~QHelpEvent(); int x() const; int y() const; int globalX() const; int globalY() const; const QPoint &pos() const; const QPoint &globalPos() const; }; class QStatusTipEvent : QEvent { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QStatusTipEvent(const QString &tip); %End %If (- Qt_5_0_0) QStatusTipEvent(const QString &tip); %End virtual ~QStatusTipEvent(); QString tip() const; }; class QWhatsThisClickedEvent : QEvent { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QWhatsThisClickedEvent(const QString &href); %End %If (- Qt_5_0_0) QWhatsThisClickedEvent(const QString &href); %End virtual ~QWhatsThisClickedEvent(); QString href() const; }; class QActionEvent : QEvent { %TypeHeaderCode #include %End public: QActionEvent(int type, QAction *action, QAction *before = 0); virtual ~QActionEvent(); QAction *action() const; QAction *before() const; }; class QFileOpenEvent : QEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QFileOpenEvent(); QString file() const; %If (Qt_4_6_0 -) QUrl url() const; %End %If (Qt_4_8_0 -) bool openFile(QFile &file, QFlags flags) const; %End }; class QShortcutEvent : QEvent { %TypeHeaderCode #include %End public: QShortcutEvent(const QKeySequence &key, int id, bool ambiguous = false); virtual ~QShortcutEvent(); %If (Qt_4_2_0 -) bool isAmbiguous() const; %End %If (- Qt_4_2_0) bool isAmbiguous(); %End %If (Qt_4_2_0 -) const QKeySequence &key() const; %End %If (- Qt_4_2_0) const QKeySequence &key(); %End %If (Qt_4_2_0 -) int shortcutId() const; %End %If (- Qt_4_2_0) int shortcutId(); %End }; class QWindowStateChangeEvent : QEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QWindowStateChangeEvent(); Qt::WindowStates oldState() const; }; %If (Qt_4_6_0 -) class QTouchEvent : QInputEvent { %TypeHeaderCode #include %End public: class TouchPoint /NoDefaultCtors/ { %TypeHeaderCode #include %End public: int id() const; Qt::TouchPointState state() const; %If (- Qt_5_0_0) bool isPrimary() const; %End QPointF pos() const; QPointF startPos() const; QPointF lastPos() const; QPointF scenePos() const; QPointF startScenePos() const; QPointF lastScenePos() const; QPointF screenPos() const; QPointF startScreenPos() const; QPointF lastScreenPos() const; QPointF normalizedPos() const; QPointF startNormalizedPos() const; QPointF lastNormalizedPos() const; QRectF rect() const; QRectF sceneRect() const; QRectF screenRect() const; qreal pressure() const; %If (Qt_5_0_0 -) enum InfoFlag { Pen, }; %End %If (Qt_5_0_0 -) typedef QFlags InfoFlags; %End %If (Qt_5_0_0 -) QVector2D velocity() const; %End %If (Qt_5_0_0 -) QFlags flags() const; %End %If (Qt_5_0_0 -) QVector rawScreenPositions() const; %End }; %If (PyQt_Deprecated_5_0) enum DeviceType { TouchScreen, TouchPad, }; %End %If (Qt_5_0_0 -) QTouchEvent(QEvent::Type eventType, QTouchDevice *device = 0, Qt::KeyboardModifiers modifiers = Qt::NoModifier, Qt::TouchPointStates touchPointStates = 0, const QList &touchPoints = QList()); %End %If (- Qt_5_0_0) QTouchEvent(QEvent::Type eventType, QTouchEvent::DeviceType deviceType = QTouchEvent::TouchScreen, Qt::KeyboardModifiers modifiers = Qt::NoModifier, Qt::TouchPointStates touchPointStates = 0, const QList &touchPoints = QList()); %End virtual ~QTouchEvent(); %If (Qt_5_0_0 -) QObject *target() const; %End %If (- Qt_5_0_0) QWidget *widget() const; %End %If (PyQt_Deprecated_5_0) QTouchEvent::DeviceType deviceType() const; %End Qt::TouchPointStates touchPointStates() const; const QList &touchPoints() const; %If (Qt_5_0_0 -) QTouchDevice *device() const; %End %If (Qt_5_0_0 -) void setDevice(QTouchDevice *adevice); %End }; %End %If (Qt_5_0_0 -) QFlags operator|(QTouchEvent::TouchPoint::InfoFlag f1, QFlags f2); %End %If (Qt_5_0_0 -) QFlags operator|(QTouchEvent::TouchPoint::InfoFlag f1, QTouchEvent::TouchPoint::InfoFlag f2); %End %If (Qt_4_6_0 - Qt_5_0_0) class QGestureEvent : QEvent { %TypeHeaderCode #include %End public: QGestureEvent(const QList &gestures); virtual ~QGestureEvent(); QList gestures() const; QGesture *gesture(Qt::GestureType type) const; QList activeGestures() const; QList canceledGestures() const; void setAccepted(bool accepted); bool isAccepted() const; void accept(); void ignore(); void setAccepted(QGesture *, bool); void accept(QGesture *); void ignore(QGesture *); bool isAccepted(QGesture *) const; void setAccepted(Qt::GestureType, bool); void accept(Qt::GestureType); void ignore(Qt::GestureType); bool isAccepted(Qt::GestureType) const; QWidget *widget() const; QPointF mapToGraphicsScene(const QPointF &gesturePoint) const; }; %End %If (Qt_5_0_0 -) class QExposeEvent : QEvent { %TypeHeaderCode #include %End public: explicit QExposeEvent(const QRegion &rgn); virtual ~QExposeEvent(); const QRegion ®ion() const; }; %End %If (Qt_5_0_0 -) class QScrollPrepareEvent : QEvent { %TypeHeaderCode #include %End public: explicit QScrollPrepareEvent(const QPointF &startPos); virtual ~QScrollPrepareEvent(); QPointF startPos() const; QSizeF viewportSize() const; QRectF contentPosRange() const; QPointF contentPos() const; void setViewportSize(const QSizeF &size); void setContentPosRange(const QRectF &rect); void setContentPos(const QPointF &pos); }; %End %If (Qt_5_0_0 -) class QScrollEvent : QEvent { %TypeHeaderCode #include %End public: enum ScrollState { ScrollStarted, ScrollUpdated, ScrollFinished, }; QScrollEvent(const QPointF &contentPos, const QPointF &overshoot, QScrollEvent::ScrollState scrollState); virtual ~QScrollEvent(); QPointF contentPos() const; QPointF overshootDistance() const; QScrollEvent::ScrollState scrollState() const; }; %End %If (Qt_4_2_0 -) bool operator==(QKeyEvent *e, QKeySequence::StandardKey key); %End %If (Qt_4_2_0 -) bool operator==(QKeySequence::StandardKey key, QKeyEvent *e); %End %If (Qt_5_0_0 -) class QEnterEvent : QEvent { %TypeHeaderCode #include %End public: QEnterEvent(const QPointF &localPos, const QPointF &windowPos, const QPointF &screenPos); virtual ~QEnterEvent(); QPoint pos() const; QPoint globalPos() const; int x() const; int y() const; int globalX() const; int globalY() const; const QPointF &localPos() const; const QPointF &windowPos() const; const QPointF &screenPos() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qfiledialog.sip0000644000076500000240000003010412536324426020572 0ustar philstaff00000000000000// qfiledialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QFileDialog : QDialog { %TypeHeaderCode #include %End public: enum ViewMode { Detail, List, }; enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly, }; enum AcceptMode { AcceptOpen, AcceptSave, }; enum DialogLabel { LookIn, FileName, FileType, Accept, Reject, }; enum Option { ShowDirsOnly, DontResolveSymlinks, DontConfirmOverwrite, DontUseSheet, DontUseNativeDialog, %If (Qt_4_5_0 -) ReadOnly, %End %If (Qt_4_5_0 -) HideNameFilterDetails, %End %If (Qt_4_8_6 - Qt_5_0_0) DontUseCustomDirectoryIcons, %End }; typedef QFlags Options; %If (- Qt_4_2_0) QFileDialog(QWidget *parent /TransferThis/, Qt::WFlags f); %End %If (Qt_4_2_0 -) QFileDialog(QWidget *parent /TransferThis/, Qt::WindowFlags f); %End QFileDialog(QWidget *parent /TransferThis/ = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString()); virtual ~QFileDialog(); void setDirectory(const QString &directory); void setDirectory(const QDir &adirectory); QDir directory() const; void selectFile(const QString &filename); QStringList selectedFiles() const; %If (- Qt_5_0_0) void setFilter(const QString &filter); %End %If (- Qt_5_0_0) void setFilters(const QStringList &filters); %End %If (- Qt_5_0_0) QStringList filters() const; %End %If (- Qt_5_0_0) void selectFilter(const QString &filter); %End %If (- Qt_5_0_0) QString selectedFilter() const; %End void setViewMode(QFileDialog::ViewMode mode); QFileDialog::ViewMode viewMode() const; void setFileMode(QFileDialog::FileMode mode); QFileDialog::FileMode fileMode() const; void setAcceptMode(QFileDialog::AcceptMode mode); QFileDialog::AcceptMode acceptMode() const; void setReadOnly(bool enabled); bool isReadOnly() const; void setResolveSymlinks(bool enabled); bool resolveSymlinks() const; void setConfirmOverwrite(bool enabled); bool confirmOverwrite() const; void setDefaultSuffix(const QString &suffix); QString defaultSuffix() const; void setHistory(const QStringList &paths); QStringList history() const; void setItemDelegate(QAbstractItemDelegate *delegate /KeepReference/); QAbstractItemDelegate *itemDelegate() const; void setIconProvider(QFileIconProvider *provider /KeepReference/); QFileIconProvider *iconProvider() const; void setLabelText(QFileDialog::DialogLabel label, const QString &text); QString labelText(QFileDialog::DialogLabel label) const; signals: void currentChanged(const QString &path); %If (Qt_4_3_0 -) void directoryEntered(const QString &directory); %End void filesSelected(const QStringList &files); %If (Qt_4_3_0 -) void filterSelected(const QString &filter); %End %If (Qt_4_5_0 -) void fileSelected(const QString &file); %End public: static QString getExistingDirectory(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), QFlags options = ShowDirsOnly) /ReleaseGIL/; static QString getOpenFileName(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString(), Options options = 0) /API=QString:2 - , ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS // Pass a 0 filter return. sipRes = new QString(QFileDialog::getOpenFileName(a0, *a1, *a2, *a3, 0, *a4)); Py_END_ALLOW_THREADS %End static QString getOpenFileName(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString(), QString *selectedFilter = 0, QFlags options = 0) /API=QString: - 2,ReleaseGIL/; static SIP_PYTUPLE getOpenFileNameAndFilter(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString(), const QString &initialFilter /DocValue="Py_v3:''"/ = QString(), Options options = 0) /DocType="Py_v3:(str, str);(QString, QString)", ReleaseGIL/; %MethodCode QString *name; QString *filter = new QString(*a4); Py_BEGIN_ALLOW_THREADS name = new QString(QFileDialog::getOpenFileName(a0, *a1, *a2, *a3, filter, *a5)); Py_END_ALLOW_THREADS PyObject *name_obj = sipConvertFromNewType(name, sipType_QString, NULL); PyObject *filter_obj = sipConvertFromNewType(filter, sipType_QString, NULL); if (name_obj && filter_obj) { #if PY_VERSION_HEX >= 0x02040000 sipRes = PyTuple_Pack(2, name_obj, filter_obj); #else sipRes = Py_BuildValue("(OO)", name_obj, filter_obj); #endif } Py_XDECREF(name_obj); Py_XDECREF(filter_obj); %End static QStringList getOpenFileNames(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString(), Options options = 0) /API=QString:2 - , ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS // Pass a 0 filter return. sipRes = new QStringList(QFileDialog::getOpenFileNames(a0, *a1, *a2, *a3, 0, *a4)); Py_END_ALLOW_THREADS %End static QStringList getOpenFileNames(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString(), QString *selectedFilter = 0, QFlags options = 0) /API=QString: - 2,ReleaseGIL/; static SIP_PYTUPLE getOpenFileNamesAndFilter(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString(), const QString &initialFilter /DocValue="Py_v3:''"/ = QString(), Options options = 0) /DocType="Py_v3:(str, str);(QString, QString)", ReleaseGIL/; %MethodCode QStringList *names; QString *filter = new QString(*a4); Py_BEGIN_ALLOW_THREADS names = new QStringList(QFileDialog::getOpenFileNames(a0, *a1, *a2, *a3, filter, *a5)); Py_END_ALLOW_THREADS PyObject *names_obj = sipConvertFromNewType(names, sipType_QStringList, NULL); PyObject *filter_obj = sipConvertFromNewType(filter, sipType_QString, NULL); if (names_obj && filter_obj) { #if PY_VERSION_HEX >= 0x02040000 sipRes = PyTuple_Pack(2, names_obj, filter_obj); #else sipRes = Py_BuildValue("(OO)", names_obj, filter_obj); #endif } Py_XDECREF(names_obj); Py_XDECREF(filter_obj); %End static QString getSaveFileName(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString(), Options options = 0) /API=QString:2 - , ReleaseGIL/; %MethodCode Py_BEGIN_ALLOW_THREADS // Pass a 0 filter return. sipRes = new QString(QFileDialog::getSaveFileName(a0, *a1, *a2, *a3, 0, *a4)); Py_END_ALLOW_THREADS %End static QString getSaveFileName(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString(), QString *selectedFilter = 0, QFlags options = 0) /API=QString: - 2,ReleaseGIL/; static SIP_PYTUPLE getSaveFileNameAndFilter(QWidget *parent = 0, const QString &caption /DocValue="Py_v3:''"/ = QString(), const QString &directory /DocValue="Py_v3:''"/ = QString(), const QString &filter /DocValue="Py_v3:''"/ = QString(), const QString &initialFilter /DocValue="Py_v3:''"/ = QString(), Options options = 0) /DocType="Py_v3:(str, str);(QString, QString)", ReleaseGIL/; %MethodCode QString *name; QString *filter = new QString(*a4); Py_BEGIN_ALLOW_THREADS name = new QString(QFileDialog::getSaveFileName(a0, *a1, *a2, *a3, filter, *a5)); Py_END_ALLOW_THREADS PyObject *name_obj = sipConvertFromNewType(name, sipType_QString, NULL); PyObject *filter_obj = sipConvertFromNewType(filter, sipType_QString, NULL); if (name_obj && filter_obj) { #if PY_VERSION_HEX >= 0x02040000 sipRes = PyTuple_Pack(2, name_obj, filter_obj); #else sipRes = Py_BuildValue("(OO)", name_obj, filter_obj); #endif } Py_XDECREF(name_obj); Py_XDECREF(filter_obj); %End protected: virtual void done(int result); virtual void accept(); %If (Qt_4_3_0 -) virtual void changeEvent(QEvent *e); %End public: %If (Qt_4_3_0 -) void setSidebarUrls(const QList &urls); %End %If (Qt_4_3_0 -) QList sidebarUrls() const; %End %If (Qt_4_3_0 -) QByteArray saveState() const; %End %If (Qt_4_3_0 -) bool restoreState(const QByteArray &state); %End %If (Qt_4_3_0 -) void setProxyModel(QAbstractProxyModel *model /Transfer/); %End %If (Qt_4_3_0 -) QAbstractProxyModel *proxyModel() const; %End %If (Qt_4_4_0 -) void setNameFilterDetailsVisible(bool enabled); %End %If (Qt_4_4_0 -) bool isNameFilterDetailsVisible() const; %End %If (Qt_4_4_0 -) void setNameFilter(const QString &filter); %End %If (Qt_4_4_0 -) void setNameFilters(const QStringList &filters); %End %If (Qt_4_4_0 -) QStringList nameFilters() const; %End %If (Qt_4_4_0 -) void selectNameFilter(const QString &filter); %End %If (Qt_4_4_0 -) QString selectedNameFilter() const; %End %If (Qt_4_4_0 -) QFlags filter() const; %End %If (Qt_4_4_0 -) void setFilter(QFlags filters); %End %If (Qt_4_5_0 -) void setOption(QFileDialog::Option option, bool on = true); %End %If (Qt_4_5_0 -) bool testOption(QFileDialog::Option option) const; %End %If (Qt_4_5_0 -) void setOptions(QFlags options); %End %If (Qt_4_5_0 -) QFlags options() const; %End %If (Qt_5_0_0 -) virtual void open(); %End %If (Qt_4_5_0 - Qt_5_0_0) void open(); %End %If (Qt_4_5_0 -) void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; %End %If (Qt_4_5_0 -) virtual void setVisible(bool visible); %End private: QFileDialog(const QFileDialog &); }; QFlags operator|(QFileDialog::Option f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qfileiconprovider.sip0000644000076500000240000000277212536324426022050 0ustar philstaff00000000000000// qfileiconprovider.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) class QFileIconProvider { %TypeHeaderCode #include %End public: QFileIconProvider(); virtual ~QFileIconProvider(); enum IconType { Computer, Desktop, Trashcan, Network, Drive, Folder, File, }; virtual QIcon icon(QFileIconProvider::IconType type) const; virtual QIcon icon(const QFileInfo &info) const; virtual QString type(const QFileInfo &info) const; private: %If (Qt_4_2_0 -) QFileIconProvider(const QFileIconProvider &); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qfilesystemmodel.sip0000644000076500000240000001111112536324426021675 0ustar philstaff00000000000000// qfilesystemmodel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QFileSystemModel : QAbstractItemModel { %TypeHeaderCode #include %End public: enum Roles { FileIconRole, FilePathRole, FileNameRole, FilePermissions, }; explicit QFileSystemModel(QObject *parent /TransferThis/ = 0); virtual ~QFileSystemModel(); virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; QModelIndex index(const QString &path, int column = 0) const; virtual QModelIndex parent(const QModelIndex &child) const; virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const; virtual bool canFetchMore(const QModelIndex &parent) const; virtual void fetchMore(const QModelIndex &parent); virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; QVariant myComputer(int role = Qt::DisplayRole) const; virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; virtual bool setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole); virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; virtual Qt::ItemFlags flags(const QModelIndex &index) const; virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); virtual QStringList mimeTypes() const; virtual QMimeData *mimeData(const QModelIndexList &indexes) const; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); virtual Qt::DropActions supportedDropActions() const; QModelIndex setRootPath(const QString &path); QString rootPath() const; QDir rootDirectory() const; void setIconProvider(QFileIconProvider *provider /KeepReference/); QFileIconProvider *iconProvider() const; void setFilter(QFlags filters); QFlags filter() const; void setResolveSymlinks(bool enable); bool resolveSymlinks() const; void setReadOnly(bool enable); bool isReadOnly() const; void setNameFilterDisables(bool enable); bool nameFilterDisables() const; void setNameFilters(const QStringList &filters); QStringList nameFilters() const; QString filePath(const QModelIndex &index) const; bool isDir(const QModelIndex &index) const; qint64 size(const QModelIndex &index) const; QString type(const QModelIndex &index) const; QDateTime lastModified(const QModelIndex &index) const; QModelIndex mkdir(const QModelIndex &parent, const QString &name); %If (Qt_5_0_0 -) QFlags permissions(const QModelIndex &index) const; %End %If (- Qt_5_0_0) QFlags permissions(const QModelIndex &index) const; %End %If (Qt_5_0_0 -) bool rmdir(const QModelIndex &index); %End %If (- Qt_5_0_0) bool rmdir(const QModelIndex &aindex) const; %End QString fileName(const QModelIndex &aindex) const; QIcon fileIcon(const QModelIndex &aindex) const; QFileInfo fileInfo(const QModelIndex &aindex) const; %If (Qt_5_0_0 -) bool remove(const QModelIndex &index); %End %If (- Qt_5_0_0) bool remove(const QModelIndex &aindex) const; %End signals: void fileRenamed(const QString &path, const QString &oldName, const QString &newName); void rootPathChanged(const QString &newPath); %If (Qt_4_7_0 -) void directoryLoaded(const QString &path); %End protected: %If (Qt_4_4_1 -) virtual bool event(QEvent *event); %End virtual void timerEvent(QTimerEvent *event); private: QFileSystemModel(const QFileSystemModel &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qfocusframe.sip0000644000076500000240000000265212536324426020634 0ustar philstaff00000000000000// qfocusframe.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QFocusFrame : QWidget { %TypeHeaderCode #include %End public: QFocusFrame(QWidget *parent /TransferThis/ = 0); virtual ~QFocusFrame(); void setWidget(QWidget *widget); QWidget *widget() const; protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOption *option) const; %End virtual bool eventFilter(QObject *, QEvent *); virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); private: QFocusFrame(const QFocusFrame &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qfont.sip0000644000076500000240000001445512536324426017454 0ustar philstaff00000000000000// qfont.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QFont { %TypeHeaderCode #include %End public: enum StyleHint { Helvetica, SansSerif, Times, Serif, Courier, TypeWriter, OldEnglish, Decorative, System, AnyStyle, %If (Qt_4_7_0 -) Cursive, %End %If (Qt_4_7_0 -) Monospace, %End %If (Qt_4_7_0 -) Fantasy, %End }; enum StyleStrategy { PreferDefault, PreferBitmap, PreferDevice, PreferOutline, ForceOutline, PreferMatch, PreferQuality, PreferAntialias, NoAntialias, OpenGLCompatible, %If (Qt_4_2_0 -) NoFontMerging, %End %If (Qt_4_7_0 -) ForceIntegerMetrics, %End }; enum Weight { Light, Normal, DemiBold, Bold, Black, }; enum Style { StyleNormal, StyleItalic, StyleOblique, }; enum Stretch { UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, Unstretched, SemiExpanded, Expanded, ExtraExpanded, UltraExpanded, }; QFont(); QFont(const QString &family, int pointSize = -1, int weight = -1, bool italic = false); QFont(const QFont &, QPaintDevice *pd); QFont(const QFont &); QFont(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QFont(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QFont(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End ~QFont(); QString family() const; void setFamily(const QString &); int pointSize() const; void setPointSize(int); qreal pointSizeF() const; void setPointSizeF(qreal); int pixelSize() const; void setPixelSize(int); int weight() const; void setWeight(int); void setStyle(QFont::Style style); QFont::Style style() const; bool underline() const; void setUnderline(bool); bool overline() const; void setOverline(bool); bool strikeOut() const; void setStrikeOut(bool); bool fixedPitch() const; void setFixedPitch(bool); bool kerning() const; void setKerning(bool); QFont::StyleHint styleHint() const; QFont::StyleStrategy styleStrategy() const; void setStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = QFont::PreferDefault); void setStyleStrategy(QFont::StyleStrategy s); int stretch() const; void setStretch(int); bool rawMode() const; void setRawMode(bool); bool exactMatch() const; bool operator==(const QFont &) const; bool operator!=(const QFont &) const; bool operator<(const QFont &) const; bool isCopyOf(const QFont &) const; %If (- Qt_5_0_0) %If (WS_WIN) HFONT handle() const; %End %End %If (- Qt_5_0_0) %If (WS_X11 || WS_MACX) Qt::HANDLE handle() const; %End %End void setRawName(const QString &); QString rawName() const; QString key() const; QString toString() const; bool fromString(const QString &); static QString substitute(const QString &); static QStringList substitutes(const QString &); static QStringList substitutions(); static void insertSubstitution(const QString &, const QString &); static void insertSubstitutions(const QString &, const QStringList &); %If (Qt_5_0_0 -) static void removeSubstitutions(const QString &); %End %If (PyQt_Deprecated_5_0) static void removeSubstitution(const QString &); %End static void initialize(); static void cleanup(); static void cacheStatistics(); QString defaultFamily() const; QString lastResortFamily() const; QString lastResortFont() const; QFont resolve(const QFont &) const; bool bold() const; void setBold(bool enable); bool italic() const; void setItalic(bool b); %If (Qt_4_4_0 -) enum Capitalization { MixedCase, AllUppercase, AllLowercase, SmallCaps, Capitalize, }; %End %If (Qt_4_4_0 -) enum SpacingType { PercentageSpacing, AbsoluteSpacing, }; %End %If (Qt_4_4_0 -) qreal letterSpacing() const; %End %If (Qt_4_4_0 -) QFont::SpacingType letterSpacingType() const; %End %If (Qt_4_4_0 -) void setLetterSpacing(QFont::SpacingType type, qreal spacing); %End %If (Qt_4_4_0 -) qreal wordSpacing() const; %End %If (Qt_4_4_0 -) void setWordSpacing(qreal spacing); %End %If (Qt_4_4_0 -) void setCapitalization(QFont::Capitalization); %End %If (Qt_4_4_0 -) QFont::Capitalization capitalization() const; %End %If (Qt_4_8_0 -) enum HintingPreference { PreferDefaultHinting, PreferNoHinting, PreferVerticalHinting, PreferFullHinting, }; %End %If (Qt_4_8_0 -) QString styleName() const; %End %If (Qt_4_8_0 -) void setStyleName(const QString &styleName); %End %If (Qt_4_8_0 -) void setHintingPreference(QFont::HintingPreference hintingPreference); %End %If (Qt_4_8_0 -) QFont::HintingPreference hintingPreference() const; %End %If (Qt_5_0_0 -) void swap(QFont &other); %End }; QDataStream &operator<<(QDataStream &, const QFont & /Constrained/); QDataStream &operator>>(QDataStream &, QFont & /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtGui/qfontcombobox.sip0000644000076500000240000000405612536324426021201 0ustar philstaff00000000000000// qfontcombobox.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) %ModuleCode #include %End %End %If (Qt_4_2_0 -) class QFontComboBox : QComboBox { %TypeHeaderCode #include %End public: enum FontFilter { AllFonts, ScalableFonts, NonScalableFonts, MonospacedFonts, ProportionalFonts, }; QFlags fontFilters() const; explicit QFontComboBox(QWidget *parent /TransferThis/ = 0); virtual ~QFontComboBox(); void setWritingSystem(QFontDatabase::WritingSystem); QFontDatabase::WritingSystem writingSystem() const; typedef QFlags FontFilters; void setFontFilters(QFlags filters); QFont currentFont() const; virtual QSize sizeHint() const; public slots: void setCurrentFont(const QFont &f); signals: void currentFontChanged(const QFont &f); protected: virtual bool event(QEvent *e); private: QFontComboBox(const QFontComboBox &); }; %End %If (Qt_4_2_0 -) QFlags operator|(QFontComboBox::FontFilter f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qfontdatabase.sip0000644000076500000240000001222112536324426021126 0ustar philstaff00000000000000// qfontdatabase.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QFontDatabase { %TypeHeaderCode #include %End public: enum WritingSystem { Any, Latin, Greek, Cyrillic, Armenian, Hebrew, Arabic, Syriac, Thaana, Devanagari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, Malayalam, Sinhala, Thai, Lao, Tibetan, Myanmar, Georgian, Khmer, SimplifiedChinese, TraditionalChinese, Japanese, Korean, Vietnamese, Other, %If (Qt_4_2_0 -) Symbol, %End %If (Qt_4_2_0 -) Ogham, %End %If (Qt_4_2_0 -) Runic, %End %If (Qt_4_6_0 -) Nko, %End }; static QList standardSizes(); QFontDatabase(); QList writingSystems() const; %If (Qt_4_2_0 -) QList writingSystems(const QString &family) const; %End QStringList families(QFontDatabase::WritingSystem writingSystem = QFontDatabase::Any) const; QStringList styles(const QString &family) const; QList pointSizes(const QString &family, const QString &style /DocValue="Py_v3:''"/ = QString()); QList smoothSizes(const QString &family, const QString &style); QString styleString(const QFont &font); QString styleString(const QFontInfo &fontInfo); QFont font(const QString &family, const QString &style, int pointSize) const; bool isBitmapScalable(const QString &family, const QString &style /DocValue="Py_v3:''"/ = QString()) const; bool isSmoothlyScalable(const QString &family, const QString &style /DocValue="Py_v3:''"/ = QString()) const; bool isScalable(const QString &family, const QString &style /DocValue="Py_v3:''"/ = QString()) const; bool isFixedPitch(const QString &family, const QString &style /DocValue="Py_v3:''"/ = QString()) const; bool italic(const QString &family, const QString &style) const; bool bold(const QString &family, const QString &style) const; int weight(const QString &family, const QString &style) const; static QString writingSystemName(QFontDatabase::WritingSystem writingSystem); static QString writingSystemSample(QFontDatabase::WritingSystem writingSystem); %If (Qt_4_2_0 -) static int addApplicationFont(const QString &fileName); %End %If (Qt_4_2_0 -) static int addApplicationFontFromData(const QByteArray &fontData); %End %If (Qt_4_2_0 -) static QStringList applicationFontFamilies(int id); %End %If (Qt_4_2_0 -) static bool removeApplicationFont(int id); %End %If (Qt_4_2_0 -) static bool removeAllApplicationFonts(); %End %If (Qt_4_4_0 -) static bool supportsThreadedFontRendering(); %End }; // QList is implemented as a Python list. %MappedType QList /DocType="list-of-QFontDatabase.WritingSystem"/ { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { QFontDatabase::WritingSystem ws = sipCpp->at(i); PyObject *wsobj; if ((wsobj = sipConvertFromEnum(ws, sipType_QFontDatabase_WritingSystem)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, wsobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyList_Check(sipPy)) return 0; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) if (!sipCanConvertToEnum(PyList_GET_ITEM(sipPy, i), sipType_QFontDatabase_WritingSystem)) return 0; return 1; } QList *ql = new QList; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { long l = SIPLong_AsLong(PyList_GET_ITEM(sipPy, i)); ql->append(static_cast(l)); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; PyQt-x11-gpl-4.11.4/sip/QtGui/qfontdialog.sip0000644000076500000240000000760312536324426020631 0ustar philstaff00000000000000// qfontdialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QFontDialog : QDialog { %TypeHeaderCode #include %End public: %If (Qt_4_5_0 -) enum FontDialogOption { NoButtons, DontUseNativeDialog, }; %End %If (Qt_4_5_0 -) typedef QFlags FontDialogOptions; %End %If (Qt_4_5_0 -) explicit QFontDialog(QWidget *parent /TransferThis/ = 0); %End %If (Qt_4_5_0 -) QFontDialog(const QFont &initial, QWidget *parent /TransferThis/ = 0); %End %If (Qt_4_5_0 -) virtual ~QFontDialog(); %End %If (Qt_5_0_0 -) static QFont getFont(bool *ok, const QFont &initial, QWidget *parent = 0, const QString &caption = QString(), QFlags options = 0) /ReleaseGIL/; %End %If (Qt_4_5_0 - Qt_5_0_0) static QFont getFont(bool *ok, const QFont &initial, QWidget *parent, const QString &title, QFlags options) /ReleaseGIL/; %End %If (Qt_4_2_0 - Qt_5_0_0) static QFont getFont(bool *ok, const QFont &def, QWidget *parent, const QString &caption) /ReleaseGIL/; %End %If (- Qt_5_0_0) static QFont getFont(bool *ok, const QFont &initial, QWidget *parent = 0) /ReleaseGIL/; %End static QFont getFont(bool *ok, QWidget *parent = 0) /ReleaseGIL/; protected: %If (Qt_4_3_0 -) virtual void changeEvent(QEvent *e); %End %If (Qt_4_5_0 -) virtual void done(int result); %End %If (Qt_5_0_0 -) virtual bool eventFilter(QObject *object, QEvent *event); %End private: %If (- Qt_5_0_0) virtual bool eventFilter(QObject *, QEvent *); %End %If (Qt_4_2_0 - Qt_4_5_0) QFontDialog(QWidget *parent /TransferThis/ = 0, bool modal = false, Qt::WindowFlags f = 0); %End %If (- Qt_4_2_0) QFontDialog(QWidget *parent /TransferThis/ = 0, bool modal = false, Qt::WFlags f = 0); %End QFontDialog(const QFontDialog &); %If (- Qt_4_5_0) virtual ~QFontDialog(); %End public: %If (Qt_4_5_0 -) void setCurrentFont(const QFont &font); %End %If (Qt_4_5_0 -) QFont currentFont() const; %End %If (Qt_4_5_0 -) QFont selectedFont() const; %End %If (Qt_4_5_0 -) void setOption(QFontDialog::FontDialogOption option, bool on = true); %End %If (Qt_4_5_0 -) bool testOption(QFontDialog::FontDialogOption option) const; %End %If (Qt_4_5_0 -) void setOptions(QFlags options); %End %If (Qt_4_5_0 -) QFlags options() const; %End %If (Qt_5_0_0 -) virtual void open(); %End %If (Qt_4_5_0 - Qt_5_0_0) void open(); %End %If (Qt_4_5_0 -) void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; %End %If (Qt_4_5_0 -) virtual void setVisible(bool visible); %End signals: %If (Qt_4_5_0 -) void currentFontChanged(const QFont &font); %End %If (Qt_4_5_0 -) void fontSelected(const QFont &font); %End }; %If (Qt_4_5_0 -) QFlags operator|(QFontDialog::FontDialogOption f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qfontinfo.sip0000644000076500000240000000301712536324426020320 0ustar philstaff00000000000000// qfontinfo.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QFontInfo { %TypeHeaderCode #include %End public: QFontInfo(const QFont &); QFontInfo(const QFontInfo &); ~QFontInfo(); QString family() const; int pixelSize() const; int pointSize() const; qreal pointSizeF() const; bool italic() const; QFont::Style style() const; int weight() const; bool bold() const; bool fixedPitch() const; QFont::StyleHint styleHint() const; bool rawMode() const; bool exactMatch() const; %If (Qt_4_8_0 -) QString styleName() const; %End %If (Qt_5_0_0 -) void swap(QFontInfo &other); %End }; PyQt-x11-gpl-4.11.4/sip/QtGui/qfontmetrics.sip0000644000076500000240000001511212536324426021032 0ustar philstaff00000000000000// qfontmetrics.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QFontMetrics { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QFontMetrics(const QFont &); %End %If (- Qt_5_0_0) QFontMetrics(const QFont &); %End QFontMetrics(const QFont &, QPaintDevice *pd); QFontMetrics(const QFontMetrics &); ~QFontMetrics(); int ascent() const; int descent() const; int height() const; int leading() const; int lineSpacing() const; int minLeftBearing() const; int minRightBearing() const; int maxWidth() const; int xHeight() const; bool inFont(QChar) const; int leftBearing(QChar) const; int rightBearing(QChar) const; int width(QChar) const /API=QString:2 - , PyName=widthChar/; int width(QChar) const /API=QString: - 2/; int width(const QString &text, int length = -1) const; int charWidth(const QString &str, int pos) const; QRect boundingRect(QChar) const /API=QString:2 - , PyName=boundingRectChar/; QRect boundingRect(QChar) const /API=QString: - 2/; QRect boundingRect(const QString &text) const; QRect boundingRect(const QRect &rect, int flags, const QString &text, int tabStops = 0, SIP_PYLIST tabArray /AllowNone,DocType="list-of-int"/ = 0) const; %MethodCode int *tabarray = qtgui_tabarray(a4); sipRes = new QRect(sipCpp->boundingRect(*a0, a1, *a2, a3, tabarray)); if (!tabarray) delete[] tabarray; %End QRect boundingRect(int x, int y, int width, int height, int flags, const QString &text, int tabStops = 0, SIP_PYLIST tabArray /AllowNone,DocType="list-of-int"/ = 0) const; %MethodCode int *tabarray = qtgui_tabarray(a7); sipRes = new QRect(sipCpp->boundingRect(a0, a1, a2, a3, a4, *a5, a6, tabarray)); if (!tabarray) delete[] tabarray; %End QSize size(int flags, const QString &text, int tabStops = 0, SIP_PYLIST tabArray /AllowNone,DocType="list-of-int"/ = 0) const; %MethodCode int *tabarray = qtgui_tabarray(a3); sipRes = new QSize(sipCpp->size(a0, *a1, a2, tabarray)); if (!tabarray) delete[] tabarray; %End int underlinePos() const; int overlinePos() const; int strikeOutPos() const; int lineWidth() const; %If (Qt_4_2_0 -) int averageCharWidth() const; %End %If (Qt_4_2_0 -) QString elidedText(const QString &text, Qt::TextElideMode mode, int width, int flags = 0) const; %End bool operator==(const QFontMetrics &other) const; %If (Qt_4_2_0 -) bool operator!=(const QFontMetrics &other) const; %End %If (- Qt_4_2_0) bool operator!=(const QFontMetrics &other); %End %If (Qt_4_3_0 -) QRect tightBoundingRect(const QString &text) const; %End %If (Qt_4_8_0 -) bool inFontUcs4(uint character) const; %End %If (Qt_5_0_0 -) void swap(QFontMetrics &other); %End }; class QFontMetricsF { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QFontMetricsF(const QFont &); %End %If (- Qt_5_0_0) QFontMetricsF(const QFont &); %End QFontMetricsF(const QFont &, QPaintDevice *pd); %If (Qt_4_2_0 -) QFontMetricsF(const QFontMetrics &); %End QFontMetricsF(const QFontMetricsF &); ~QFontMetricsF(); qreal ascent() const; qreal descent() const; qreal height() const; qreal leading() const; qreal lineSpacing() const; qreal minLeftBearing() const; qreal minRightBearing() const; qreal maxWidth() const; qreal xHeight() const; bool inFont(QChar) const; qreal leftBearing(QChar) const; qreal rightBearing(QChar) const; qreal width(QChar) const /API=QString:2 - , PyName=widthChar/; qreal width(QChar) const /API=QString: - 2/; qreal width(const QString &string) const; QRectF boundingRect(QChar) const /API=QString:2 - , PyName=boundingRectChar/; QRectF boundingRect(QChar) const /API=QString: - 2/; QRectF boundingRect(const QString &string) const; QRectF boundingRect(const QRectF &rect, int flags, const QString &text, int tabStops = 0, SIP_PYLIST tabArray /AllowNone,DocType="list-of-int"/ = 0) const; %MethodCode int *tabarray = qtgui_tabarray(a4); sipRes = new QRectF(sipCpp->boundingRect(*a0, a1, *a2, a3, tabarray)); if (!tabarray) delete[] tabarray; %End QSizeF size(int flags, const QString &text, int tabStops = 0, SIP_PYLIST tabArray /AllowNone,DocType="list-of-int"/ = 0) const; %MethodCode int *tabarray = qtgui_tabarray(a3); sipRes = new QSizeF(sipCpp->size(a0, *a1, a2, tabarray)); if (!tabarray) delete[] tabarray; %End qreal underlinePos() const; qreal overlinePos() const; qreal strikeOutPos() const; qreal lineWidth() const; %If (Qt_4_2_0 -) qreal averageCharWidth() const; %End %If (Qt_4_2_0 -) QString elidedText(const QString &text, Qt::TextElideMode mode, qreal width, int flags = 0) const; %End bool operator==(const QFontMetricsF &other) const; bool operator!=(const QFontMetricsF &other) const; %If (Qt_4_3_0 -) QRectF tightBoundingRect(const QString &text) const; %End %If (Qt_4_8_0 -) bool inFontUcs4(uint character) const; %End %If (Qt_5_0_0 -) void swap(QFontMetricsF &other); %End }; %ModuleHeaderCode // Used by QFontMetrics and QFontMetricsF. int *qtgui_tabarray(PyObject *l); %End %ModuleCode // Convert an optional Python list to a 0 terminated array of integers on the // heap. int *qtgui_tabarray(PyObject *l) { if (!l || l == Py_None) return 0; int *arr = new int[PyList_GET_SIZE(l) + 1]; SIP_SSIZE_T i; for (i = 0; i < PyList_GET_SIZE(l); ++i) arr[i] = SIPLong_AsLong(PyList_GET_ITEM(l, i)); arr[i] = 0; return arr; } %End PyQt-x11-gpl-4.11.4/sip/QtGui/qformlayout.sip0000644000076500000240000001013212536324426020673 0ustar philstaff00000000000000// qformlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QFormLayout : QLayout { %TypeHeaderCode #include %End public: enum FieldGrowthPolicy { FieldsStayAtSizeHint, ExpandingFieldsGrow, AllNonFixedFieldsGrow, }; enum RowWrapPolicy { DontWrapRows, WrapLongRows, WrapAllRows, }; enum ItemRole { LabelRole, FieldRole, %If (Qt_4_5_0 -) SpanningRole, %End }; explicit QFormLayout(QWidget *parent /TransferThis/ = 0); virtual ~QFormLayout(); void setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy policy); QFormLayout::FieldGrowthPolicy fieldGrowthPolicy() const; void setRowWrapPolicy(QFormLayout::RowWrapPolicy policy); QFormLayout::RowWrapPolicy rowWrapPolicy() const; void setLabelAlignment(Qt::Alignment alignment); Qt::Alignment labelAlignment() const; void setFormAlignment(Qt::Alignment alignment); Qt::Alignment formAlignment() const; void setHorizontalSpacing(int spacing); int horizontalSpacing() const; void setVerticalSpacing(int spacing); int verticalSpacing() const; int spacing() const; void setSpacing(int); void addRow(QWidget *label /Transfer/, QWidget *field /Transfer/); void addRow(QWidget *label /Transfer/, QLayout *field /Transfer/); void addRow(const QString &labelText, QWidget *field /Transfer/); void addRow(const QString &labelText, QLayout *field /Transfer/); void addRow(QWidget *widget /Transfer/); void addRow(QLayout *layout /Transfer/); void insertRow(int row, QWidget *label /Transfer/, QWidget *field /Transfer/); void insertRow(int row, QWidget *label /Transfer/, QLayout *field /Transfer/); void insertRow(int row, const QString &labelText, QWidget *field /Transfer/); void insertRow(int row, const QString &labelText, QLayout *field /Transfer/); void insertRow(int row, QWidget *widget /Transfer/); void insertRow(int row, QLayout *layout /Transfer/); void setItem(int row, QFormLayout::ItemRole role, QLayoutItem *item /Transfer/); void setWidget(int row, QFormLayout::ItemRole role, QWidget *widget /Transfer/); void setLayout(int row, QFormLayout::ItemRole role, QLayout *layout /Transfer/); QLayoutItem *itemAt(int row, QFormLayout::ItemRole role) const; void getItemPosition(int index, int *rowPtr, QFormLayout::ItemRole *rolePtr) const; void getWidgetPosition(QWidget *widget, int *rowPtr, QFormLayout::ItemRole *rolePtr) const; void getLayoutPosition(QLayout *layout, int *rowPtr, QFormLayout::ItemRole *rolePtr) const; QWidget *labelForField(QWidget *field) const; QWidget *labelForField(QLayout *field) const; virtual void addItem(QLayoutItem *item /Transfer/); virtual QLayoutItem *itemAt(int index) const; virtual QLayoutItem *takeAt(int index) /TransferBack/; virtual void setGeometry(const QRect &rect); virtual QSize minimumSize() const; virtual QSize sizeHint() const; virtual void invalidate(); virtual bool hasHeightForWidth() const; virtual int heightForWidth(int width) const; virtual Qt::Orientations expandingDirections() const; virtual int count() const; int rowCount() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qframe.sip0000644000076500000240000000424612536324426017575 0ustar philstaff00000000000000// qframe.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QFrame : QWidget { %TypeHeaderCode #include %End public: enum Shadow { Plain, Raised, Sunken, }; enum Shape { NoFrame, Box, Panel, WinPanel, HLine, VLine, StyledPanel, }; %If (Qt_4_2_0 -) enum StyleMask { Shadow_Mask, Shape_Mask, }; %End %If (Qt_4_2_0 -) QFrame(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QFrame(QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End virtual ~QFrame(); int frameStyle() const; void setFrameStyle(int); int frameWidth() const; virtual QSize sizeHint() const; QFrame::Shape frameShape() const; void setFrameShape(QFrame::Shape); QFrame::Shadow frameShadow() const; void setFrameShadow(QFrame::Shadow); int lineWidth() const; void setLineWidth(int); int midLineWidth() const; void setMidLineWidth(int); QRect frameRect() const; void setFrameRect(const QRect &); protected: virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); virtual void changeEvent(QEvent *); void drawFrame(QPainter *); private: QFrame(const QFrame &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qgenericmatrix.sip0000644000076500000240000007552212536324426021351 0ustar philstaff00000000000000// qgenericmatrix.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) // The implementation of QMatrix4x3. class QMatrix4x3 { %TypeHeaderCode #include %End %PickleCode PYQT_FLOAT data[12]; // We want the data in row-major order. sipCpp->copyDataTo(data); sipRes = Py_BuildValue((char *)"dddddddddddd", (double)data[0], (double)data[1], (double)data[2], (double)data[3], (double)data[4], (double)data[5], (double)data[6], (double)data[7], (double)data[8], (double)data[9], (double)data[10], (double)data[11]); %End public: QMatrix4x3(); QMatrix4x3(const QMatrix4x3 &other); explicit QMatrix4x3(SIP_PYOBJECT values /DocType="sequence-of-float"/); %MethodCode PYQT_FLOAT values[12]; if ((sipError = qtgui_matrixDataFromSequence(a0, 12, values)) == sipErrorNone) sipCpp = new QMatrix4x3(values); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode bool bad = false; int i; PyObject *m[12]; PYQT_FLOAT data[12]; // The raw data is in column-major order but we want row-major order. sipCpp->copyDataTo(data); for (i = 0; i < 12; ++i) { m[i] = PyFloat_FromDouble(data[i]); if (!m[i]) bad = true; } if (!bad) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QMatrix4x3(" "%R, %R, %R, " "%R, %R, %R, " "%R, %R, %R, " "%R, %R, %R)", m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8], m[9], m[10], m[11]); #else sipRes = PyString_FromString("PyQt4.QtGui.QMatrix4x3("); for (i = 0; i < 12; ++i) { if (i != 0) PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(m[i])); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } for (i = 0; i < 12; ++i) Py_XDECREF(m[i]); %End SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(12, sipCpp->constData(), &sipRes); %End SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode PYQT_FLOAT values[12]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(12, values, &sipRes); %End SIP_PYOBJECT __getitem__(SIP_PYOBJECT) const; %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 4, 3, &row, &column)) == sipErrorNone) { sipRes = PyFloat_FromDouble(sipCpp->operator()(row, column)); if (!sipRes) sipError = sipErrorFail; } %End %If (Qt_5_0_0 -) void __setitem__(SIP_PYOBJECT, float); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 4, 3, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End %If (- Qt_5_0_0) void __setitem__(SIP_PYOBJECT, qreal); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 4, 3, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End bool isIdentity() const; void setToIdentity(); %If (Qt_5_0_0 -) void fill(float value); %End %If (- Qt_5_0_0) void fill(qreal value); %End QMatrix3x4 transposed() const; QMatrix4x3 &operator+=(const QMatrix4x3 &); QMatrix4x3 &operator-=(const QMatrix4x3 &); %If (Qt_5_0_0 -) QMatrix4x3 &operator*=(float); QMatrix4x3 &operator/=(float); %End %If (- Qt_5_0_0) QMatrix4x3 &operator*=(qreal); QMatrix4x3 &operator/=(qreal); %End bool operator==(const QMatrix4x3 &) const; bool operator!=(const QMatrix4x3 &) const; }; %End %If (Qt_4_6_0 -) // The implementation of QMatrix4x2. class QMatrix4x2 { %TypeHeaderCode #include %End %PickleCode PYQT_FLOAT data[8]; // We want the data in row-major order. sipCpp->copyDataTo(data); sipRes = Py_BuildValue((char *)"dddddddd", (double)data[0], (double)data[1], (double)data[2], (double)data[3], (double)data[4], (double)data[5], (double)data[6], (double)data[7]); %End public: QMatrix4x2(); QMatrix4x2(const QMatrix4x2 &other); explicit QMatrix4x2(SIP_PYOBJECT values /DocType="sequence-of-float"/); %MethodCode PYQT_FLOAT values[8]; if ((sipError = qtgui_matrixDataFromSequence(a0, 8, values)) == sipErrorNone) sipCpp = new QMatrix4x2(values); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode bool bad = false; int i; PyObject *m[8]; PYQT_FLOAT data[8]; // The raw data is in column-major order but we want row-major order. sipCpp->copyDataTo(data); for (i = 0; i < 8; ++i) { m[i] = PyFloat_FromDouble(data[i]); if (!m[i]) bad = true; } if (!bad) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QMatrix4x2(" "%R, %R, " "%R, %R, " "%R, %R, " "%R, %R)", m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7]); #else sipRes = PyString_FromString("PyQt4.QtGui.QMatrix4x2("); for (i = 0; i < 8; ++i) { if (i != 0) PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(m[i])); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } for (i = 0; i < 8; ++i) Py_XDECREF(m[i]); %End SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(8, sipCpp->constData(), &sipRes); %End SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode PYQT_FLOAT values[8]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(8, values, &sipRes); %End SIP_PYOBJECT __getitem__(SIP_PYOBJECT) const; %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 4, 2, &row, &column)) == sipErrorNone) { sipRes = PyFloat_FromDouble(sipCpp->operator()(row, column)); if (!sipRes) sipError = sipErrorFail; } %End %If (Qt_5_0_0 -) void __setitem__(SIP_PYOBJECT, float); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 4, 2, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End %If (- Qt_5_0_0) void __setitem__(SIP_PYOBJECT, qreal); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 4, 2, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End bool isIdentity() const; void setToIdentity(); %If (Qt_5_0_0 -) void fill(float value); %End %If (- Qt_5_0_0) void fill(qreal value); %End QMatrix2x4 transposed() const; QMatrix4x2 &operator+=(const QMatrix4x2 &); QMatrix4x2 &operator-=(const QMatrix4x2 &); %If (Qt_5_0_0 -) QMatrix4x2 &operator*=(float); QMatrix4x2 &operator/=(float); %End %If (- Qt_5_0_0) QMatrix4x2 &operator*=(qreal); QMatrix4x2 &operator/=(qreal); %End bool operator==(const QMatrix4x2 &) const; bool operator!=(const QMatrix4x2 &) const; }; %End %If (Qt_4_6_0 -) // The implementation of QMatrix3x4. class QMatrix3x4 { %TypeHeaderCode #include %End %PickleCode PYQT_FLOAT data[12]; // We want the data in row-major order. sipCpp->copyDataTo(data); sipRes = Py_BuildValue((char *)"dddddddddddd", (double)data[0], (double)data[1], (double)data[2], (double)data[3], (double)data[4], (double)data[5], (double)data[6], (double)data[7], (double)data[8], (double)data[9], (double)data[10], (double)data[11]); %End public: QMatrix3x4(); QMatrix3x4(const QMatrix3x4 &other); explicit QMatrix3x4(SIP_PYOBJECT values /DocType="sequence-of-float"/); %MethodCode PYQT_FLOAT values[12]; if ((sipError = qtgui_matrixDataFromSequence(a0, 12, values)) == sipErrorNone) sipCpp = new QMatrix3x4(values); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode bool bad = false; int i; PyObject *m[12]; PYQT_FLOAT data[12]; // The raw data is in column-major order but we want row-major order. sipCpp->copyDataTo(data); for (i = 0; i < 12; ++i) { m[i] = PyFloat_FromDouble(data[i]); if (!m[i]) bad = true; } if (!bad) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QMatrix3x4(" "%R, %R, %R, " "%R, %R, %R, " "%R, %R, %R, " "%R, %R, %R)", m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8], m[9], m[10], m[11]); #else sipRes = PyString_FromString("PyQt4.QtGui.QMatrix3x4("); for (i = 0; i < 12; ++i) { if (i != 0) PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(m[i])); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } for (i = 0; i < 12; ++i) Py_XDECREF(m[i]); %End SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(12, sipCpp->constData(), &sipRes); %End SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode PYQT_FLOAT values[12]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(12, values, &sipRes); %End SIP_PYOBJECT __getitem__(SIP_PYOBJECT) const; %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 3, 4, &row, &column)) == sipErrorNone) { sipRes = PyFloat_FromDouble(sipCpp->operator()(row, column)); if (!sipRes) sipError = sipErrorFail; } %End %If (Qt_5_0_0 -) void __setitem__(SIP_PYOBJECT, float); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 3, 4, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End %If (- Qt_5_0_0) void __setitem__(SIP_PYOBJECT, qreal); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 3, 4, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End bool isIdentity() const; void setToIdentity(); %If (Qt_5_0_0 -) void fill(qreal value); %End %If (- Qt_5_0_0) void fill(qreal value); %End QMatrix4x3 transposed() const; QMatrix3x4 &operator+=(const QMatrix3x4 &); QMatrix3x4 &operator-=(const QMatrix3x4 &); %If (Qt_5_0_0 -) QMatrix3x4 &operator*=(float); QMatrix3x4 &operator/=(float); %End %If (- Qt_5_0_0) QMatrix3x4 &operator*=(qreal); QMatrix3x4 &operator/=(qreal); %End bool operator==(const QMatrix3x4 &) const; bool operator!=(const QMatrix3x4 &) const; }; %End %If (Qt_4_6_0 -) // The implementation of QMatrix3x3. class QMatrix3x3 { %TypeHeaderCode #include %End %PickleCode PYQT_FLOAT data[9]; // We want the data in row-major order. sipCpp->copyDataTo(data); sipRes = Py_BuildValue((char *)"ddddddddd", (double)data[0], (double)data[1], (double)data[2], (double)data[3], (double)data[4], (double)data[5], (double)data[6], (double)data[7], (double)data[8]); %End public: QMatrix3x3(); QMatrix3x3(const QMatrix3x3 &other); explicit QMatrix3x3(SIP_PYOBJECT values /DocType="sequence-of-float"/); %MethodCode PYQT_FLOAT values[9]; if ((sipError = qtgui_matrixDataFromSequence(a0, 9, values)) == sipErrorNone) sipCpp = new QMatrix3x3(values); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode bool bad = false; int i; PyObject *m[9]; PYQT_FLOAT data[9]; // The raw data is in column-major order but we want row-major order. sipCpp->copyDataTo(data); for (i = 0; i < 9; ++i) { m[i] = PyFloat_FromDouble(data[i]); if (!m[i]) bad = true; } if (!bad) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QMatrix3x3(" "%R, %R, %R, " "%R, %R, %R, " "%R, %R, %R)", m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8]); #else sipRes = PyString_FromString("PyQt4.QtGui.QMatrix3x3("); for (i = 0; i < 9; ++i) { if (i != 0) PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(m[i])); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } for (i = 0; i < 9; ++i) Py_XDECREF(m[i]); %End SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(9, sipCpp->constData(), &sipRes); %End SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode PYQT_FLOAT values[9]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(9, values, &sipRes); %End SIP_PYOBJECT __getitem__(SIP_PYOBJECT) const; %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 3, 3, &row, &column)) == sipErrorNone) { sipRes = PyFloat_FromDouble(sipCpp->operator()(row, column)); if (!sipRes) sipError = sipErrorFail; } %End %If (Qt_5_0_0 -) void __setitem__(SIP_PYOBJECT, float); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 3, 3, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End %If (- Qt_5_0_0) void __setitem__(SIP_PYOBJECT, qreal); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 3, 3, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End bool isIdentity() const; void setToIdentity(); %If (Qt_5_0_0 -) void fill(float value); %End %If (- Qt_5_0_0) void fill(qreal value); %End QMatrix3x3 transposed() const; QMatrix3x3 &operator+=(const QMatrix3x3 &); QMatrix3x3 &operator-=(const QMatrix3x3 &); %If (Qt_5_0_0 -) QMatrix3x3 &operator*=(float); QMatrix3x3 &operator/=(float); %End %If (- Qt_5_0_0) QMatrix3x3 &operator*=(qreal); QMatrix3x3 &operator/=(qreal); %End bool operator==(const QMatrix3x3 &) const; bool operator!=(const QMatrix3x3 &) const; }; %End %If (Qt_4_6_0 -) // The implementation of QMatrix3x2. class QMatrix3x2 { %TypeHeaderCode #include %End %PickleCode PYQT_FLOAT data[6]; // We want the data in row-major order. sipCpp->copyDataTo(data); sipRes = Py_BuildValue((char *)"dddddd", (double)data[0], (double)data[1], (double)data[2], (double)data[3], (double)data[4], (double)data[5]); %End public: QMatrix3x2(); QMatrix3x2(const QMatrix3x2 &other); explicit QMatrix3x2(SIP_PYOBJECT values /DocType="sequence-of-float"/); %MethodCode PYQT_FLOAT values[6]; if ((sipError = qtgui_matrixDataFromSequence(a0, 6, values)) == sipErrorNone) sipCpp = new QMatrix3x2(values); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode bool bad = false; int i; PyObject *m[6]; PYQT_FLOAT data[6]; // The raw data is in column-major order but we want row-major order. sipCpp->copyDataTo(data); for (i = 0; i < 6; ++i) { m[i] = PyFloat_FromDouble(data[i]); if (!m[i]) bad = true; } if (!bad) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QMatrix3x2(" "%R, %R, " "%R, %R, " "%R, %R)", m[0], m[1], m[2], m[3], m[4], m[5]); #else sipRes = PyString_FromString("PyQt4.QtGui.QMatrix3x2("); for (i = 0; i < 6; ++i) { if (i != 0) PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(m[i])); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } for (i = 0; i < 6; ++i) Py_XDECREF(m[i]); %End SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(6, sipCpp->constData(), &sipRes); %End SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode PYQT_FLOAT values[6]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(6, values, &sipRes); %End SIP_PYOBJECT __getitem__(SIP_PYOBJECT) const; %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 3, 2, &row, &column)) == sipErrorNone) { sipRes = PyFloat_FromDouble(sipCpp->operator()(row, column)); if (!sipRes) sipError = sipErrorFail; } %End %If (Qt_5_0_0 -) void __setitem__(SIP_PYOBJECT, float); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 3, 2, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End %If (- Qt_5_0_0) void __setitem__(SIP_PYOBJECT, qreal); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 3, 2, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End bool isIdentity() const; void setToIdentity(); %If (Qt_5_0_0 -) void fill(float value); %End %If (- Qt_5_0_0) void fill(qreal value); %End QMatrix2x3 transposed() const; QMatrix3x2 &operator+=(const QMatrix3x2 &); QMatrix3x2 &operator-=(const QMatrix3x2 &); %If (Qt_5_0_0 -) QMatrix3x2 &operator*=(float); QMatrix3x2 &operator/=(float); %End %If (- Qt_5_0_0) QMatrix3x2 &operator*=(qreal); QMatrix3x2 &operator/=(qreal); %End bool operator==(const QMatrix3x2 &) const; bool operator!=(const QMatrix3x2 &) const; }; %End %If (Qt_4_6_0 -) // The implementation of QMatrix2x4. class QMatrix2x4 { %TypeHeaderCode #include %End %PickleCode PYQT_FLOAT data[8]; // We want the data in row-major order. sipCpp->copyDataTo(data); sipRes = Py_BuildValue((char *)"dddddddd", (double)data[0], (double)data[1], (double)data[2], (double)data[3], (double)data[4], (double)data[5], (double)data[6], (double)data[7]); %End public: QMatrix2x4(); QMatrix2x4(const QMatrix2x4 &other); explicit QMatrix2x4(SIP_PYOBJECT values /DocType="sequence-of-float"/); %MethodCode PYQT_FLOAT values[8]; if ((sipError = qtgui_matrixDataFromSequence(a0, 8, values)) == sipErrorNone) sipCpp = new QMatrix2x4(values); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode bool bad = false; int i; PyObject *m[8]; PYQT_FLOAT data[8]; // The raw data is in column-major order but we want row-major order. sipCpp->copyDataTo(data); for (i = 0; i < 8; ++i) { m[i] = PyFloat_FromDouble(data[i]); if (!m[i]) bad = true; } if (!bad) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QMatrix2x4(" "%R, %R, %R, %R, " "%R, %R, %R, %R)", m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7]); #else sipRes = PyString_FromString("PyQt4.QtGui.QMatrix2x4("); for (i = 0; i < 8; ++i) { if (i != 0) PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(m[i])); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } for (i = 0; i < 8; ++i) Py_XDECREF(m[i]); %End SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(8, sipCpp->constData(), &sipRes); %End SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode PYQT_FLOAT values[8]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(8, values, &sipRes); %End SIP_PYOBJECT __getitem__(SIP_PYOBJECT) const; %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 2, 4, &row, &column)) == sipErrorNone) { sipRes = PyFloat_FromDouble(sipCpp->operator()(row, column)); if (!sipRes) sipError = sipErrorFail; } %End %If (Qt_5_0_0 -) void __setitem__(SIP_PYOBJECT, float); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 2, 4, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End %If (- Qt_5_0_0) void __setitem__(SIP_PYOBJECT, qreal); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 2, 4, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End bool isIdentity() const; void setToIdentity(); %If (Qt_5_0_0 -) void fill(float value); %End %If (- Qt_5_0_0) void fill(qreal value); %End QMatrix4x2 transposed() const; QMatrix2x4 &operator+=(const QMatrix2x4 &); QMatrix2x4 &operator-=(const QMatrix2x4 &); %If (Qt_5_0_0 -) QMatrix2x4 &operator*=(float); QMatrix2x4 &operator/=(float); %End %If (- Qt_5_0_0) QMatrix2x4 &operator*=(qreal); QMatrix2x4 &operator/=(qreal); %End bool operator==(const QMatrix2x4 &) const; bool operator!=(const QMatrix2x4 &) const; }; %End %If (Qt_4_6_0 -) // The implementation of QMatrix2x3. class QMatrix2x3 { %TypeHeaderCode #include %End %PickleCode PYQT_FLOAT data[6]; // We want the data in row-major order. sipCpp->copyDataTo(data); sipRes = Py_BuildValue((char *)"dddddd", (double)data[0], (double)data[1], (double)data[2], (double)data[3], (double)data[4], (double)data[5]); %End public: QMatrix2x3(); QMatrix2x3(const QMatrix2x3 &other); explicit QMatrix2x3(SIP_PYOBJECT values /DocType="sequence-of-float"/); %MethodCode PYQT_FLOAT values[6]; if ((sipError = qtgui_matrixDataFromSequence(a0, 6, values)) == sipErrorNone) sipCpp = new QMatrix2x3(values); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode bool bad = false; int i; PyObject *m[6]; PYQT_FLOAT data[6]; // The raw data is in column-major order but we want row-major order. sipCpp->copyDataTo(data); for (i = 0; i < 6; ++i) { m[i] = PyFloat_FromDouble(data[i]); if (!m[i]) bad = true; } if (!bad) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QMatrix2x3(" "%R, %R, %R, " "%R, %R, %R)", m[0], m[1], m[2], m[3], m[4], m[5]); #else sipRes = PyString_FromString("PyQt4.QtGui.QMatrix2x3("); for (i = 0; i < 6; ++i) { if (i != 0) PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(m[i])); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } for (i = 0; i < 6; ++i) Py_XDECREF(m[i]); %End SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(6, sipCpp->constData(), &sipRes); %End SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode PYQT_FLOAT values[6]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(6, values, &sipRes); %End SIP_PYOBJECT __getitem__(SIP_PYOBJECT) const; %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 2, 3, &row, &column)) == sipErrorNone) { sipRes = PyFloat_FromDouble(sipCpp->operator()(row, column)); if (!sipRes) sipError = sipErrorFail; } %End %If (Qt_5_0_0 -) void __setitem__(SIP_PYOBJECT, float); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 2, 3, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End %If (- Qt_5_0_0) void __setitem__(SIP_PYOBJECT, qreal); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 2, 3, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End bool isIdentity() const; void setToIdentity(); %If (Qt_5_0_0 -) void fill(float value); %End %If (- Qt_5_0_0) void fill(qreal value); %End QMatrix3x2 transposed() const; QMatrix2x3 &operator+=(const QMatrix2x3 &); QMatrix2x3 &operator-=(const QMatrix2x3 &); %If (Qt_5_0_0 -) QMatrix2x3 &operator*=(float); QMatrix2x3 &operator/=(float); %End %If (- Qt_5_0_0) QMatrix2x3 &operator*=(qreal); QMatrix2x3 &operator/=(qreal); %End bool operator==(const QMatrix2x3 &) const; bool operator!=(const QMatrix2x3 &) const; }; %End %If (Qt_4_6_0 -) // The implementation of QMatrix2x2. class QMatrix2x2 { %TypeHeaderCode #include %End %PickleCode PYQT_FLOAT data[4]; // We want the data in row-major order. sipCpp->copyDataTo(data); sipRes = Py_BuildValue((char *)"dddd", (double)data[0], (double)data[1], (double)data[2], (double)data[3]); %End public: QMatrix2x2(); QMatrix2x2(const QMatrix2x2 &other); explicit QMatrix2x2(SIP_PYOBJECT values /DocType="sequence-of-float"/); %MethodCode PYQT_FLOAT values[4]; if ((sipError = qtgui_matrixDataFromSequence(a0, 4, values)) == sipErrorNone) sipCpp = new QMatrix2x2(values); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode bool bad = false; int i; PyObject *m[4]; PYQT_FLOAT data[4]; // The raw data is in column-major order but we want row-major order. sipCpp->copyDataTo(data); for (i = 0; i < 4; ++i) { m[i] = PyFloat_FromDouble(data[i]); if (!m[i]) bad = true; } if (!bad) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QMatrix2x2(" "%R, %R, " "%R, %R)", m[0], m[1], m[2], m[3]); #else sipRes = PyString_FromString("PyQt4.QtGui.QMatrix2x2("); for (i = 0; i < 4; ++i) { if (i != 0) PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(m[i])); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } for (i = 0; i < 4; ++i) Py_XDECREF(m[i]); %End SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(4, sipCpp->constData(), &sipRes); %End SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode PYQT_FLOAT values[4]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(4, values, &sipRes); %End SIP_PYOBJECT __getitem__(SIP_PYOBJECT) const; %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 2, 2, &row, &column)) == sipErrorNone) { sipRes = PyFloat_FromDouble(sipCpp->operator()(row, column)); if (!sipRes) sipError = sipErrorFail; } %End %If (Qt_5_0_0 -) void __setitem__(SIP_PYOBJECT, float); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 2, 2, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End %If (- Qt_5_0_0) void __setitem__(SIP_PYOBJECT, qreal); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 2, 2, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End %End bool isIdentity() const; void setToIdentity(); %If (Qt_5_0_0 -) void fill(float value); %End %If (- Qt_5_0_0) void fill(qreal value); %End QMatrix2x2 transposed() const; QMatrix2x2 &operator+=(const QMatrix2x2 &); QMatrix2x2 &operator-=(const QMatrix2x2 &); %If (Qt_5_0_0 -) QMatrix2x2 &operator*=(float); QMatrix2x2 &operator/=(float); %End %If (- Qt_5_0_0) QMatrix2x2 &operator*=(qreal); QMatrix2x2 &operator/=(qreal); %End bool operator==(const QMatrix2x2 &) const; bool operator!=(const QMatrix2x2 &) const; }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgesture.sip0000644000076500000240000001363512536324426020163 0ustar philstaff00000000000000// qgesture.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QGesture : QObject { %TypeHeaderCode #include %End public: explicit QGesture(QObject *parent /TransferThis/ = 0); virtual ~QGesture(); Qt::GestureType gestureType() const; Qt::GestureState state() const; QPointF hotSpot() const; void setHotSpot(const QPointF &value); bool hasHotSpot() const; void unsetHotSpot(); enum GestureCancelPolicy { CancelNone, CancelAllInContext, }; void setGestureCancelPolicy(QGesture::GestureCancelPolicy policy); QGesture::GestureCancelPolicy gestureCancelPolicy() const; }; %End %If (Qt_4_6_0 -) class QPanGesture : QGesture { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QPanGesture(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QPanGesture(QObject *parent /TransferThis/ = 0); %End %If (Qt_5_0_0 -) virtual ~QPanGesture(); %End QPointF lastOffset() const; QPointF offset() const; QPointF delta() const; qreal acceleration() const; void setLastOffset(const QPointF &value); void setOffset(const QPointF &value); void setAcceleration(qreal value); }; %End %If (Qt_4_6_0 -) class QPinchGesture : QGesture { %TypeHeaderCode #include %End public: enum ChangeFlag { ScaleFactorChanged, RotationAngleChanged, CenterPointChanged, }; typedef QFlags ChangeFlags; %If (Qt_5_0_0 -) explicit QPinchGesture(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QPinchGesture(QObject *parent /TransferThis/ = 0); %End %If (Qt_5_0_0 -) virtual ~QPinchGesture(); %End QFlags totalChangeFlags() const; void setTotalChangeFlags(QFlags value); QFlags changeFlags() const; void setChangeFlags(QFlags value); QPointF startCenterPoint() const; QPointF lastCenterPoint() const; QPointF centerPoint() const; void setStartCenterPoint(const QPointF &value); void setLastCenterPoint(const QPointF &value); void setCenterPoint(const QPointF &value); qreal totalScaleFactor() const; qreal lastScaleFactor() const; qreal scaleFactor() const; void setTotalScaleFactor(qreal value); void setLastScaleFactor(qreal value); void setScaleFactor(qreal value); qreal totalRotationAngle() const; qreal lastRotationAngle() const; qreal rotationAngle() const; void setTotalRotationAngle(qreal value); void setLastRotationAngle(qreal value); void setRotationAngle(qreal value); }; %End %If (Qt_4_6_0 -) class QSwipeGesture : QGesture { %TypeHeaderCode #include %End public: enum SwipeDirection { NoDirection, Left, Right, Up, Down, }; %If (Qt_5_0_0 -) explicit QSwipeGesture(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QSwipeGesture(QObject *parent /TransferThis/ = 0); %End %If (Qt_5_0_0 -) virtual ~QSwipeGesture(); %End QSwipeGesture::SwipeDirection horizontalDirection() const; QSwipeGesture::SwipeDirection verticalDirection() const; qreal swipeAngle() const; void setSwipeAngle(qreal value); }; %End %If (Qt_4_6_0 -) class QTapGesture : QGesture { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QTapGesture(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QTapGesture(QObject *parent /TransferThis/ = 0); %End %If (Qt_5_0_0 -) virtual ~QTapGesture(); %End QPointF position() const; void setPosition(const QPointF &pos); }; %End %If (Qt_4_6_0 -) class QTapAndHoldGesture : QGesture { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QTapAndHoldGesture(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QTapAndHoldGesture(QObject *parent /TransferThis/ = 0); %End %If (Qt_5_0_0 -) virtual ~QTapAndHoldGesture(); %End QPointF position() const; void setPosition(const QPointF &pos); %If (Qt_4_7_1 -) static void setTimeout(int msecs); %End %If (Qt_4_7_1 -) static int timeout(); %End }; %End %If (Qt_5_0_0 -) class QGestureEvent : QEvent { %TypeHeaderCode #include %End public: explicit QGestureEvent(const QList &gestures); virtual ~QGestureEvent(); QList gestures() const; QGesture *gesture(Qt::GestureType type) const; QList activeGestures() const; QList canceledGestures() const; void setAccepted(bool accepted); bool isAccepted() const; void accept(); void ignore(); void setAccepted(QGesture *, bool); void accept(QGesture *); void ignore(QGesture *); bool isAccepted(QGesture *) const; void setAccepted(Qt::GestureType, bool); void accept(Qt::GestureType); void ignore(Qt::GestureType); bool isAccepted(Qt::GestureType) const; QWidget *widget() const; QPointF mapToGraphicsScene(const QPointF &gesturePoint) const; }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgesturerecognizer.sip0000644000076500000240000000366212536324426022252 0ustar philstaff00000000000000// qgesturerecognizer.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) class QGestureRecognizer /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: enum ResultFlag { Ignore, MayBeGesture, TriggerGesture, FinishGesture, CancelGesture, ConsumeEventHint, }; typedef QFlags Result; QGestureRecognizer(); virtual ~QGestureRecognizer(); virtual QGesture *create(QObject *target) /Factory/; virtual QFlags recognize(QGesture *state, QObject *watched, QEvent *event) = 0; virtual void reset(QGesture *state); static Qt::GestureType registerRecognizer(QGestureRecognizer *recognizer /Transfer/); static void unregisterRecognizer(Qt::GestureType type); }; %End %If (Qt_4_6_0 -) QFlags operator|(QGestureRecognizer::ResultFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qglyphrun.sip0000644000076500000240000000502412536324426020346 0ustar philstaff00000000000000// qglyphrun.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_8_0 -) %If (PyQt_RawFont) class QGlyphRun { %TypeHeaderCode #include %End public: QGlyphRun(); QGlyphRun(const QGlyphRun &other); ~QGlyphRun(); QRawFont rawFont() const; void setRawFont(const QRawFont &rawFont); QVector glyphIndexes() const; void setGlyphIndexes(const QVector &glyphIndexes); QVector positions() const; void setPositions(const QVector &positions); void clear(); bool operator==(const QGlyphRun &other) const; bool operator!=(const QGlyphRun &other) const; void setOverline(bool overline); bool overline() const; void setUnderline(bool underline); bool underline() const; void setStrikeOut(bool strikeOut); bool strikeOut() const; %If (Qt_5_0_0 -) enum GlyphRunFlag { Overline, Underline, StrikeOut, RightToLeft, SplitLigature, }; %End %If (Qt_5_0_0 -) typedef QFlags GlyphRunFlags; %End %If (Qt_5_0_0 -) void setRightToLeft(bool on); %End %If (Qt_5_0_0 -) bool isRightToLeft() const; %End %If (Qt_5_0_0 -) void setFlag(QGlyphRun::GlyphRunFlag flag, bool enabled = true); %End %If (Qt_5_0_0 -) void setFlags(QFlags flags); %End %If (Qt_5_0_0 -) QFlags flags() const; %End %If (Qt_5_0_0 -) void setBoundingRect(const QRectF &boundingRect); %End %If (Qt_5_0_0 -) QRectF boundingRect() const; %End %If (Qt_5_0_0 -) bool isEmpty() const; %End %If (Qt_5_0_0 -) void swap(QGlyphRun &other); %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicsanchorlayout.sip0000644000076500000240000000544112536324426022732 0ustar philstaff00000000000000// qgraphicsanchorlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QGraphicsAnchor : QObject { %TypeHeaderCode #include %End public: virtual ~QGraphicsAnchor(); void setSpacing(qreal spacing); void unsetSpacing(); qreal spacing() const; void setSizePolicy(QSizePolicy::Policy policy); QSizePolicy::Policy sizePolicy() const; private: QGraphicsAnchor(QGraphicsAnchorLayout *parent); }; %End %If (Qt_4_6_0 -) class QGraphicsAnchorLayout : QGraphicsLayout { %TypeHeaderCode #include %End public: QGraphicsAnchorLayout(QGraphicsLayoutItem *parent /TransferThis/ = 0); virtual ~QGraphicsAnchorLayout(); QGraphicsAnchor *addAnchor(QGraphicsLayoutItem *firstItem /Transfer/, Qt::AnchorPoint firstEdge, QGraphicsLayoutItem *secondItem /Transfer/, Qt::AnchorPoint secondEdge); QGraphicsAnchor *anchor(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge, QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge); void addCornerAnchors(QGraphicsLayoutItem *firstItem /Transfer/, Qt::Corner firstCorner, QGraphicsLayoutItem *secondItem /Transfer/, Qt::Corner secondCorner); void addAnchors(QGraphicsLayoutItem *firstItem /Transfer/, QGraphicsLayoutItem *secondItem /Transfer/, Qt::Orientations orientations = Qt::Horizontal|Qt::Vertical); void setHorizontalSpacing(qreal spacing); void setVerticalSpacing(qreal spacing); void setSpacing(qreal spacing); qreal horizontalSpacing() const; qreal verticalSpacing() const; virtual void removeAt(int index); virtual void setGeometry(const QRectF &rect); virtual int count() const; virtual QGraphicsLayoutItem *itemAt(int index) const; virtual void invalidate(); protected: virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; private: QGraphicsAnchorLayout(const QGraphicsAnchorLayout &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicseffect.sip0000644000076500000240000001324712536324426021461 0ustar philstaff00000000000000// qgraphicseffect.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) class QGraphicsEffect : QObject { %TypeHeaderCode #include %End public: enum ChangeFlag { SourceAttached, SourceDetached, SourceBoundingRectChanged, SourceInvalidated, }; typedef QFlags ChangeFlags; enum PixmapPadMode { NoPad, PadToTransparentBorder, PadToEffectiveBoundingRect, }; QGraphicsEffect(QObject *parent /TransferThis/ = 0); virtual ~QGraphicsEffect(); virtual QRectF boundingRectFor(const QRectF &sourceRect) const; QRectF boundingRect() const; bool isEnabled() const; public slots: void setEnabled(bool enable); void update(); signals: void enabledChanged(bool enabled); protected: virtual void draw(QPainter *painter) = 0; virtual void sourceChanged(QFlags flags); void updateBoundingRect(); bool sourceIsPixmap() const; QRectF sourceBoundingRect(Qt::CoordinateSystem system = Qt::LogicalCoordinates) const; void drawSource(QPainter *painter); QPixmap sourcePixmap(Qt::CoordinateSystem system = Qt::LogicalCoordinates, QPoint *offset /Out/ = 0, QGraphicsEffect::PixmapPadMode mode = QGraphicsEffect::PadToEffectiveBoundingRect) const; private: QGraphicsEffect(const QGraphicsEffect &); }; %End %If (Qt_4_6_0 -) QFlags operator|(QGraphicsEffect::ChangeFlag f1, QFlags f2); %End %If (Qt_4_6_0 -) class QGraphicsColorizeEffect : QGraphicsEffect { %TypeHeaderCode #include %End public: QGraphicsColorizeEffect(QObject *parent /TransferThis/ = 0); virtual ~QGraphicsColorizeEffect(); QColor color() const; qreal strength() const; public slots: void setColor(const QColor &c); void setStrength(qreal strength); signals: void colorChanged(const QColor &color); void strengthChanged(qreal strength); protected: virtual void draw(QPainter *painter); private: QGraphicsColorizeEffect(const QGraphicsColorizeEffect &); }; %End %If (Qt_4_6_0 -) class QGraphicsBlurEffect : QGraphicsEffect { %TypeHeaderCode #include %End public: enum BlurHint { PerformanceHint, QualityHint, AnimationHint, }; typedef QFlags BlurHints; QGraphicsBlurEffect(QObject *parent /TransferThis/ = 0); virtual ~QGraphicsBlurEffect(); virtual QRectF boundingRectFor(const QRectF &rect) const; qreal blurRadius() const; QFlags blurHints() const; public slots: void setBlurRadius(qreal blurRadius); void setBlurHints(QFlags hints); signals: void blurRadiusChanged(qreal blurRadius); void blurHintsChanged(QFlags hints); protected: virtual void draw(QPainter *painter); private: QGraphicsBlurEffect(const QGraphicsBlurEffect &); }; %End %If (Qt_4_6_0 -) QFlags operator|(QGraphicsBlurEffect::BlurHint f1, QFlags f2); %End %If (Qt_4_6_0 -) class QGraphicsDropShadowEffect : QGraphicsEffect { %TypeHeaderCode #include %End public: QGraphicsDropShadowEffect(QObject *parent /TransferThis/ = 0); virtual ~QGraphicsDropShadowEffect(); virtual QRectF boundingRectFor(const QRectF &rect) const; QPointF offset() const; qreal xOffset() const; qreal yOffset() const; qreal blurRadius() const; QColor color() const; public slots: void setOffset(const QPointF &ofs); void setOffset(qreal dx, qreal dy); void setOffset(qreal d); void setXOffset(qreal dx); void setYOffset(qreal dy); void setBlurRadius(qreal blurRadius); void setColor(const QColor &color); signals: void offsetChanged(const QPointF &offset); void blurRadiusChanged(qreal blurRadius); void colorChanged(const QColor &color); protected: virtual void draw(QPainter *painter); private: QGraphicsDropShadowEffect(const QGraphicsDropShadowEffect &); }; %End %If (Qt_4_6_0 -) class QGraphicsOpacityEffect : QGraphicsEffect { %TypeHeaderCode #include %End public: QGraphicsOpacityEffect(QObject *parent /TransferThis/ = 0); virtual ~QGraphicsOpacityEffect(); qreal opacity() const; QBrush opacityMask() const; public slots: void setOpacity(qreal opacity); void setOpacityMask(const QBrush &mask); signals: void opacityChanged(qreal opacity); void opacityMaskChanged(const QBrush &mask); protected: virtual void draw(QPainter *painter); private: QGraphicsOpacityEffect(const QGraphicsOpacityEffect &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicsgridlayout.sip0000644000076500000240000001030412536324426022377 0ustar philstaff00000000000000// qgraphicsgridlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QGraphicsGridLayout : QGraphicsLayout { %TypeHeaderCode #include %End public: QGraphicsGridLayout(QGraphicsLayoutItem *parent /TransferThis/ = 0); virtual ~QGraphicsGridLayout(); void addItem(QGraphicsLayoutItem *item /Transfer/, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = 0); void addItem(QGraphicsLayoutItem *aitem /TransferThis/, int arow, int acolumn, Qt::Alignment alignment = 0); void setHorizontalSpacing(qreal spacing); qreal horizontalSpacing() const; void setVerticalSpacing(qreal spacing); qreal verticalSpacing() const; void setSpacing(qreal spacing); void setRowSpacing(int row, qreal spacing); qreal rowSpacing(int row) const; void setColumnSpacing(int column, qreal spacing); qreal columnSpacing(int column) const; void setRowStretchFactor(int row, int stretch); int rowStretchFactor(int row) const; void setColumnStretchFactor(int column, int stretch); int columnStretchFactor(int column) const; void setRowMinimumHeight(int row, qreal height); qreal rowMinimumHeight(int row) const; void setRowPreferredHeight(int row, qreal height); qreal rowPreferredHeight(int row) const; void setRowMaximumHeight(int row, qreal height); qreal rowMaximumHeight(int row) const; void setRowFixedHeight(int row, qreal height); void setColumnMinimumWidth(int column, qreal width); qreal columnMinimumWidth(int column) const; void setColumnPreferredWidth(int column, qreal width); qreal columnPreferredWidth(int column) const; void setColumnMaximumWidth(int column, qreal width); qreal columnMaximumWidth(int column) const; void setColumnFixedWidth(int column, qreal width); void setRowAlignment(int row, Qt::Alignment alignment); Qt::Alignment rowAlignment(int row) const; void setColumnAlignment(int column, Qt::Alignment alignment); Qt::Alignment columnAlignment(int column) const; void setAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment); Qt::Alignment alignment(QGraphicsLayoutItem *item) const; int rowCount() const; int columnCount() const; QGraphicsLayoutItem *itemAt(int row, int column) const; virtual int count() const; virtual QGraphicsLayoutItem *itemAt(int index) const; virtual void removeAt(int index); %MethodCode // The ownership of any existing item must be passed back to Python. QGraphicsLayoutItem *itm; if (a0 < sipCpp->count()) itm = sipCpp->itemAt(a0); else itm = 0; Py_BEGIN_ALLOW_THREADS sipSelfWasArg ? sipCpp->QGraphicsGridLayout::removeAt(a0) : sipCpp->removeAt(a0); Py_END_ALLOW_THREADS if (itm) { PyObject *itmo = sipGetPyObject(itm, sipType_QGraphicsLayoutItem); if (itmo) sipTransferBack(itmo); } %End virtual void invalidate(); virtual void setGeometry(const QRectF &rect); virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; %If (Qt_4_8_0 -) void removeItem(QGraphicsLayoutItem *item /TransferBack/); %End private: QGraphicsGridLayout(const QGraphicsGridLayout &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicsitem.sip0000644000076500000240000011334512536324426021163 0ustar philstaff00000000000000// qgraphicsitem.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) %ModuleCode #include %End %End %If (Qt_4_2_0 -) class QGraphicsItem /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End %ConvertToSubClassCode switch (sipCpp->type()) { case 2: sipType = sipType_QGraphicsPathItem; break; case 3: sipType = sipType_QGraphicsRectItem; break; case 4: sipType = sipType_QGraphicsEllipseItem; break; case 5: sipType = sipType_QGraphicsPolygonItem; break; case 6: sipType = sipType_QGraphicsLineItem; break; case 7: sipType = sipType_QGraphicsPixmapItem; break; case 8: // We need to explicitly cast because of the multiple inheritance. *sipCppRet = static_cast(sipCpp); sipType = sipType_QGraphicsTextItem; break; case 9: sipType = sipType_QGraphicsSimpleTextItem; break; case 10: sipType = sipType_QGraphicsItemGroup; break; #if QT_VERSION >= 0x040400 case 11: // We need to explicitly cast because of the multiple inheritance. *sipCppRet = static_cast(sipCpp); sipType = sipType_QGraphicsWidget; break; case 12: // We need to explicitly cast because of the multiple inheritance. *sipCppRet = static_cast(sipCpp); sipType = sipType_QGraphicsProxyWidget; break; #endif default: sipType = 0; } %End public: %If (Qt_4_4_0 -) enum CacheMode { NoCache, ItemCoordinateCache, DeviceCoordinateCache, }; %End enum GraphicsItemChange { ItemPositionChange, ItemMatrixChange, ItemVisibleChange, ItemEnabledChange, ItemSelectedChange, ItemParentChange, ItemChildAddedChange, ItemChildRemovedChange, %If (Qt_4_3_0 -) ItemTransformChange, %End %If (Qt_4_3_0 -) ItemPositionHasChanged, %End %If (Qt_4_3_0 -) ItemTransformHasChanged, %End %If (Qt_4_3_0 -) ItemSceneChange, %End %If (Qt_4_4_0 -) ItemVisibleHasChanged, %End %If (Qt_4_4_0 -) ItemEnabledHasChanged, %End %If (Qt_4_4_0 -) ItemSelectedHasChanged, %End %If (Qt_4_4_0 -) ItemParentHasChanged, %End %If (Qt_4_4_0 -) ItemSceneHasChanged, %End %If (Qt_4_4_0 -) ItemCursorChange, %End %If (Qt_4_4_0 -) ItemCursorHasChanged, %End %If (Qt_4_4_0 -) ItemToolTipChange, %End %If (Qt_4_4_0 -) ItemToolTipHasChanged, %End %If (Qt_4_4_0 -) ItemFlagsChange, %End %If (Qt_4_4_0 -) ItemFlagsHaveChanged, %End %If (Qt_4_4_0 -) ItemZValueChange, %End %If (Qt_4_4_0 -) ItemZValueHasChanged, %End %If (Qt_4_5_0 -) ItemOpacityChange, %End %If (Qt_4_5_0 -) ItemOpacityHasChanged, %End %If (Qt_4_6_0 -) ItemScenePositionHasChanged, %End %If (Qt_4_7_0 -) ItemRotationChange, %End %If (Qt_4_7_0 -) ItemRotationHasChanged, %End %If (Qt_4_7_0 -) ItemScaleChange, %End %If (Qt_4_7_0 -) ItemScaleHasChanged, %End %If (Qt_4_7_0 -) ItemTransformOriginPointChange, %End %If (Qt_4_7_0 -) ItemTransformOriginPointHasChanged, %End }; enum GraphicsItemFlag { ItemIsMovable, ItemIsSelectable, ItemIsFocusable, %If (Qt_4_3_0 -) ItemClipsToShape, %End %If (Qt_4_3_0 -) ItemClipsChildrenToShape, %End %If (Qt_4_3_0 -) ItemIgnoresTransformations, %End %If (Qt_4_5_0 -) ItemIgnoresParentOpacity, %End %If (Qt_4_5_0 -) ItemDoesntPropagateOpacityToChildren, %End %If (Qt_4_5_0 -) ItemStacksBehindParent, %End %If (Qt_4_6_0 -) ItemUsesExtendedStyleOption, %End %If (Qt_4_6_0 -) ItemHasNoContents, %End %If (Qt_4_6_0 -) ItemSendsGeometryChanges, %End %If (Qt_4_6_0 -) ItemAcceptsInputMethod, %End %If (Qt_4_6_0 -) ItemNegativeZStacksBehindParent, %End %If (Qt_4_6_0 -) ItemIsPanel, %End %If (Qt_4_6_0 -) ItemSendsScenePositionChanges, %End }; typedef QFlags GraphicsItemFlags; %If (Qt_5_0_0 -) explicit QGraphicsItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsItem(); QGraphicsScene *scene() const; QGraphicsItem *parentItem() const; QGraphicsItem *topLevelItem() const; void setParentItem(QGraphicsItem *parent /TransferThis/); %If (- Qt_4_6_0) QList children() const; %End QGraphicsItemGroup *group() const; void setGroup(QGraphicsItemGroup *group /KeepReference/); QFlags flags() const; void setFlag(QGraphicsItem::GraphicsItemFlag flag, bool enabled = true); void setFlags(QFlags flags); QString toolTip() const; void setToolTip(const QString &toolTip); QCursor cursor() const; void setCursor(const QCursor &cursor); bool hasCursor() const; void unsetCursor(); bool isVisible() const; void setVisible(bool visible); void hide(); void show(); bool isEnabled() const; void setEnabled(bool enabled); bool isSelected() const; void setSelected(bool selected); bool acceptDrops() const; void setAcceptDrops(bool on); Qt::MouseButtons acceptedMouseButtons() const; void setAcceptedMouseButtons(Qt::MouseButtons buttons); %If (PyQt_Deprecated_5_0) bool acceptsHoverEvents() const; %End %If (PyQt_Deprecated_5_0) void setAcceptsHoverEvents(bool enabled); %End bool handlesChildEvents() const; void setHandlesChildEvents(bool enabled); bool hasFocus() const; void setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason); void clearFocus(); QPointF pos() const; qreal x() const; qreal y() const; QPointF scenePos() const; void setPos(const QPointF &pos); void moveBy(qreal dx, qreal dy); void ensureVisible(const QRectF &rect = QRectF(), int xMargin = 50, int yMargin = 50); QMatrix matrix() const; QMatrix sceneMatrix() const; void setMatrix(const QMatrix &matrix, bool combine = false); void resetMatrix(); %If (PyQt_Deprecated_5_0) void rotate(qreal angle); %End %If (PyQt_Deprecated_5_0) void scale(qreal sx, qreal sy); %End %If (PyQt_Deprecated_5_0) void shear(qreal sh, qreal sv); %End %If (PyQt_Deprecated_5_0) void translate(qreal dx, qreal dy); %End virtual void advance(int phase); qreal zValue() const; void setZValue(qreal z); virtual QRectF boundingRect() const = 0; QRectF childrenBoundingRect() const; QRectF sceneBoundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual bool collidesWithItem(const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; virtual bool collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; QList collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) = 0; void update(const QRectF &rect = QRectF()); QPointF mapToItem(const QGraphicsItem *item, const QPointF &point) const; QPointF mapToParent(const QPointF &point) const; QPointF mapToScene(const QPointF &point) const; QPolygonF mapToItem(const QGraphicsItem *item, const QRectF &rect) const; QPolygonF mapToParent(const QRectF &rect) const; QPolygonF mapToScene(const QRectF &rect) const; QPolygonF mapToItem(const QGraphicsItem *item, const QPolygonF &polygon) const; QPolygonF mapToParent(const QPolygonF &polygon) const; QPolygonF mapToScene(const QPolygonF &polygon) const; QPainterPath mapToItem(const QGraphicsItem *item, const QPainterPath &path) const; QPainterPath mapToParent(const QPainterPath &path) const; QPainterPath mapToScene(const QPainterPath &path) const; QPointF mapFromItem(const QGraphicsItem *item, const QPointF &point) const; QPointF mapFromParent(const QPointF &point) const; QPointF mapFromScene(const QPointF &point) const; QPolygonF mapFromItem(const QGraphicsItem *item, const QRectF &rect) const; QPolygonF mapFromParent(const QRectF &rect) const; QPolygonF mapFromScene(const QRectF &rect) const; QPolygonF mapFromItem(const QGraphicsItem *item, const QPolygonF &polygon) const; QPolygonF mapFromParent(const QPolygonF &polygon) const; QPolygonF mapFromScene(const QPolygonF &polygon) const; QPainterPath mapFromItem(const QGraphicsItem *item, const QPainterPath &path) const; QPainterPath mapFromParent(const QPainterPath &path) const; QPainterPath mapFromScene(const QPainterPath &path) const; bool isAncestorOf(const QGraphicsItem *child) const; QVariant data(int key) const; void setData(int key, const QVariant &value); %If (- Qt_5_0_0) enum { UserType, }; %End virtual int type() const; void installSceneEventFilter(QGraphicsItem *filterItem); void removeSceneEventFilter(QGraphicsItem *filterItem); protected: virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event); virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event); virtual void dropEvent(QGraphicsSceneDragDropEvent *event); virtual void focusInEvent(QFocusEvent *event); virtual void focusOutEvent(QFocusEvent *event); virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); virtual void inputMethodEvent(QInputMethodEvent *event); virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value); virtual void keyPressEvent(QKeyEvent *event); virtual void keyReleaseEvent(QKeyEvent *event); virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); void prepareGeometryChange(); virtual bool sceneEvent(QEvent *event); virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event); virtual void wheelEvent(QGraphicsSceneWheelEvent *event); public: void setPos(qreal ax, qreal ay); void ensureVisible(qreal x, qreal y, qreal w, qreal h, int xMargin = 50, int yMargin = 50); void update(qreal ax, qreal ay, qreal width, qreal height); QPointF mapToItem(const QGraphicsItem *item, qreal ax, qreal ay) const; QPointF mapToParent(qreal ax, qreal ay) const; QPointF mapToScene(qreal ax, qreal ay) const; QPointF mapFromItem(const QGraphicsItem *item, qreal ax, qreal ay) const; QPointF mapFromParent(qreal ax, qreal ay) const; QPointF mapFromScene(qreal ax, qreal ay) const; %If (Qt_4_3_0 -) QTransform transform() const; %End %If (Qt_4_3_0 -) QTransform sceneTransform() const; %End %If (Qt_4_3_0 -) QTransform deviceTransform(const QTransform &viewportTransform) const; %End %If (Qt_4_3_0 -) void setTransform(const QTransform &matrix, bool combine = false); %End %If (Qt_4_3_0 -) void resetTransform(); %End %If (Qt_5_0_0 -) bool isObscured(const QRectF &rect = QRectF()) const; %End %If (- Qt_5_0_0) bool isObscured() const; %End %If (Qt_4_3_0 - Qt_5_0_0) bool isObscured(const QRectF &rect) const; %End %If (Qt_4_3_0 -) bool isObscured(qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_3_0 -) QPolygonF mapToItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_3_0 -) QPolygonF mapToParent(qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_3_0 -) QPolygonF mapToScene(qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_3_0 -) QPolygonF mapFromItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_3_0 -) QPolygonF mapFromParent(qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_3_0 -) QPolygonF mapFromScene(qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_4_0 -) QGraphicsWidget *parentWidget() const; %End %If (Qt_4_4_0 -) QGraphicsWidget *topLevelWidget() const; %End %If (Qt_4_4_0 -) QGraphicsWidget *window() const; %End %If (Qt_4_4_0 -) QList childItems() const; %End %If (Qt_4_4_0 -) bool isWidget() const; %End %If (Qt_4_4_0 -) bool isWindow() const; %End %If (Qt_4_4_0 -) QGraphicsItem::CacheMode cacheMode() const; %End %If (Qt_4_4_0 -) void setCacheMode(QGraphicsItem::CacheMode mode, const QSize &logicalCacheSize = QSize()); %End %If (Qt_4_4_0 -) bool isVisibleTo(const QGraphicsItem *parent) const; %End %If (Qt_4_4_0 -) bool acceptHoverEvents() const; %End %If (Qt_4_4_0 -) void setAcceptHoverEvents(bool enabled); %End %If (Qt_4_4_0 -) void grabMouse(); %End %If (Qt_4_4_0 -) void ungrabMouse(); %End %If (Qt_4_4_0 -) void grabKeyboard(); %End %If (Qt_4_4_0 -) void ungrabKeyboard(); %End %If (Qt_4_4_0 -) QRegion boundingRegion(const QTransform &itemToDeviceTransform) const; %End %If (Qt_4_4_0 -) qreal boundingRegionGranularity() const; %End %If (Qt_4_4_0 -) void setBoundingRegionGranularity(qreal granularity); %End %If (Qt_4_4_0 -) void scroll(qreal dx, qreal dy, const QRectF &rect = QRectF()); %End %If (Qt_4_4_0 -) QGraphicsItem *commonAncestorItem(const QGraphicsItem *other) const; %End %If (Qt_4_4_0 -) bool isUnderMouse() const; %End %If (Qt_4_5_0 -) qreal opacity() const; %End %If (Qt_4_5_0 -) qreal effectiveOpacity() const; %End %If (Qt_4_5_0 -) void setOpacity(qreal opacity); %End %If (Qt_4_5_0 -) QTransform itemTransform(const QGraphicsItem *other, bool *ok = 0) const; %End %If (Qt_4_5_0 -) bool isClipped() const; %End %If (Qt_4_5_0 -) QPainterPath clipPath() const; %End %If (Qt_4_5_0 -) QRectF mapRectToItem(const QGraphicsItem *item, const QRectF &rect) const; %End %If (Qt_4_5_0 -) QRectF mapRectToParent(const QRectF &rect) const; %End %If (Qt_4_5_0 -) QRectF mapRectToScene(const QRectF &rect) const; %End %If (Qt_4_5_0 -) QRectF mapRectFromItem(const QGraphicsItem *item, const QRectF &rect) const; %End %If (Qt_4_5_0 -) QRectF mapRectFromParent(const QRectF &rect) const; %End %If (Qt_4_5_0 -) QRectF mapRectFromScene(const QRectF &rect) const; %End %If (Qt_4_5_0 -) QRectF mapRectToItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_5_0 -) QRectF mapRectToParent(qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_5_0 -) QRectF mapRectToScene(qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_5_0 -) QRectF mapRectFromItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_5_0 -) QRectF mapRectFromParent(qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_5_0 -) QRectF mapRectFromScene(qreal ax, qreal ay, qreal w, qreal h) const; %End %If (Qt_4_6_0 -) enum PanelModality { NonModal, PanelModal, SceneModal, }; %End %If (Qt_4_6_0 -) QGraphicsObject *parentObject() const; %End %If (Qt_4_6_0 -) QGraphicsItem *panel() const; %End %If (Qt_4_6_0 -) bool isPanel() const; %End %If (Qt_4_6_0 -) QGraphicsObject *toGraphicsObject(); %End %If (Qt_4_6_0 -) QGraphicsItem::PanelModality panelModality() const; %End %If (Qt_4_6_0 -) void setPanelModality(QGraphicsItem::PanelModality panelModality); %End %If (Qt_4_6_0 -) bool isBlockedByModalPanel(QGraphicsItem **blockingPanel /Out/ = 0) const; %End %If (Qt_4_6_0 -) QGraphicsEffect *graphicsEffect() const; %End %If (Qt_4_6_0 -) void setGraphicsEffect(QGraphicsEffect *effect /Transfer/); %End %If (Qt_4_6_0 -) bool acceptTouchEvents() const; %End %If (Qt_4_6_0 -) void setAcceptTouchEvents(bool enabled); %End %If (Qt_4_6_0 -) bool filtersChildEvents() const; %End %If (Qt_4_6_0 -) void setFiltersChildEvents(bool enabled); %End %If (Qt_4_6_0 -) bool isActive() const; %End %If (Qt_4_6_0 -) void setActive(bool active); %End %If (Qt_4_6_0 -) QGraphicsItem *focusProxy() const; %End %If (Qt_4_6_0 -) void setFocusProxy(QGraphicsItem *item /KeepReference/); %End %If (Qt_4_6_0 -) QGraphicsItem *focusItem() const; %End %If (Qt_4_6_0 -) void setX(qreal x); %End %If (Qt_4_6_0 -) void setY(qreal y); %End %If (Qt_4_6_0 -) void setRotation(qreal angle); %End %If (Qt_4_6_0 -) qreal rotation() const; %End %If (Qt_4_6_0 -) void setScale(qreal scale); %End %If (Qt_4_6_0 -) qreal scale() const; %End %If (Qt_4_6_0 -) QList transformations() const; %End %If (Qt_4_6_0 -) void setTransformations(const QList &transformations /KeepReference/); %End %If (Qt_4_6_0 -) QPointF transformOriginPoint() const; %End %If (Qt_4_6_0 -) void setTransformOriginPoint(const QPointF &origin); %End %If (Qt_4_6_0 -) void setTransformOriginPoint(qreal ax, qreal ay); %End %If (Qt_4_6_0 -) void stackBefore(const QGraphicsItem *sibling); %End %If (Qt_4_6_0 -) Qt::InputMethodHints inputMethodHints() const; %End %If (Qt_4_6_0 -) void setInputMethodHints(Qt::InputMethodHints hints); %End protected: %If (Qt_4_7_0 -) void updateMicroFocus(); %End private: QGraphicsItem(const QGraphicsItem &); }; %End %If (Qt_4_2_0 -) QFlags operator|(QGraphicsItem::GraphicsItemFlag f1, QFlags f2); %End %If (Qt_4_2_0 -) class QAbstractGraphicsShapeItem : QGraphicsItem { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QAbstractGraphicsShapeItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QAbstractGraphicsShapeItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QAbstractGraphicsShapeItem(); QPen pen() const; void setPen(const QPen &pen); QBrush brush() const; void setBrush(const QBrush &brush); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; private: QAbstractGraphicsShapeItem(const QAbstractGraphicsShapeItem &); }; %End %If (Qt_4_2_0 -) class QGraphicsPathItem : QAbstractGraphicsShapeItem { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QGraphicsPathItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsPathItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsPathItem(const QPainterPath &path, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsPathItem(const QPainterPath &path, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsPathItem(); QPainterPath path() const; void setPath(const QPainterPath &path); virtual QRectF boundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; private: QGraphicsPathItem(const QGraphicsPathItem &); }; %End %If (Qt_4_2_0 -) class QGraphicsRectItem : QAbstractGraphicsShapeItem { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QGraphicsRectItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsRectItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsRectItem(const QRectF &rect, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsRectItem(const QRectF &rect, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsRectItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsRectItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsRectItem(); QRectF rect() const; void setRect(const QRectF &rect); void setRect(qreal ax, qreal ay, qreal w, qreal h); virtual QRectF boundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; private: QGraphicsRectItem(const QGraphicsRectItem &); }; %End %If (Qt_4_2_0 -) class QGraphicsEllipseItem : QAbstractGraphicsShapeItem { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QGraphicsEllipseItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsEllipseItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsEllipseItem(const QRectF &rect, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsEllipseItem(const QRectF &rect, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsEllipseItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsEllipseItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsEllipseItem(); QRectF rect() const; void setRect(const QRectF &rect); void setRect(qreal ax, qreal ay, qreal w, qreal h); int startAngle() const; void setStartAngle(int angle); int spanAngle() const; void setSpanAngle(int angle); virtual QRectF boundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; private: QGraphicsEllipseItem(const QGraphicsEllipseItem &); }; %End %If (Qt_4_2_0 -) class QGraphicsPolygonItem : QAbstractGraphicsShapeItem { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QGraphicsPolygonItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsPolygonItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsPolygonItem(const QPolygonF &polygon, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsPolygonItem(const QPolygonF &polygon, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsPolygonItem(); QPolygonF polygon() const; void setPolygon(const QPolygonF &polygon); Qt::FillRule fillRule() const; void setFillRule(Qt::FillRule rule); virtual QRectF boundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; private: QGraphicsPolygonItem(const QGraphicsPolygonItem &); }; %End %If (Qt_4_2_0 -) class QGraphicsLineItem : QGraphicsItem { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QGraphicsLineItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsLineItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsLineItem(const QLineF &line, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsLineItem(const QLineF &line, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsLineItem(qreal x1, qreal y1, qreal x2, qreal y2, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsLineItem(qreal x1, qreal y1, qreal x2, qreal y2, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsLineItem(); QPen pen() const; void setPen(const QPen &pen); QLineF line() const; void setLine(const QLineF &line); void setLine(qreal x1, qreal y1, qreal x2, qreal y2); virtual QRectF boundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; private: QGraphicsLineItem(const QGraphicsLineItem &); }; %End %If (Qt_4_2_0 -) class QGraphicsPixmapItem : QGraphicsItem { %TypeHeaderCode #include %End public: enum ShapeMode { MaskShape, BoundingRectShape, HeuristicMaskShape, }; %If (Qt_5_0_0 -) explicit QGraphicsPixmapItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsPixmapItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsPixmapItem(); QPixmap pixmap() const; void setPixmap(const QPixmap &pixmap); Qt::TransformationMode transformationMode() const; void setTransformationMode(Qt::TransformationMode mode); QPointF offset() const; void setOffset(const QPointF &offset); %If (Qt_4_3_0 -) void setOffset(qreal ax, qreal ay); %End virtual QRectF boundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; QGraphicsPixmapItem::ShapeMode shapeMode() const; void setShapeMode(QGraphicsPixmapItem::ShapeMode mode); private: QGraphicsPixmapItem(const QGraphicsPixmapItem &); }; %End %If (Qt_4_2_0 - Qt_4_6_0) class QGraphicsTextItem : QObject, QGraphicsItem { %TypeHeaderCode #include %End public: QGraphicsTextItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); QGraphicsTextItem(const QString &text, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); virtual ~QGraphicsTextItem(); QString toHtml() const; void setHtml(const QString &html); QString toPlainText() const; void setPlainText(const QString &text); QFont font() const; void setFont(const QFont &font); void setDefaultTextColor(const QColor &c); QColor defaultTextColor() const; virtual QRectF boundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; void setTextWidth(qreal width); qreal textWidth() const; void adjustSize(); void setDocument(QTextDocument *document /KeepReference/); QTextDocument *document() const; void setTextInteractionFlags(Qt::TextInteractionFlags flags); Qt::TextInteractionFlags textInteractionFlags() const; void setOpenExternalLinks(bool open); bool openExternalLinks() const; void setTextCursor(const QTextCursor &cursor); QTextCursor textCursor() const; signals: void linkActivated(const QString &); void linkHovered(const QString &); protected: virtual bool sceneEvent(QEvent *event); virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); virtual void keyPressEvent(QKeyEvent *event); virtual void keyReleaseEvent(QKeyEvent *event); virtual void focusInEvent(QFocusEvent *event); virtual void focusOutEvent(QFocusEvent *event); virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event); virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event); virtual void dropEvent(QGraphicsSceneDragDropEvent *event); virtual void inputMethodEvent(QInputMethodEvent *event); virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; public: %If (Qt_4_5_0 -) void setTabChangesFocus(bool b); %End %If (Qt_4_5_0 -) bool tabChangesFocus() const; %End private: QGraphicsTextItem(const QGraphicsTextItem &); }; %End %If (Qt_4_2_0 -) class QGraphicsSimpleTextItem : QAbstractGraphicsShapeItem { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QGraphicsSimpleTextItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsSimpleTextItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsSimpleTextItem(const QString &text, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsSimpleTextItem(const QString &text, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsSimpleTextItem(); void setText(const QString &text); QString text() const; void setFont(const QFont &font); QFont font() const; virtual QRectF boundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; private: QGraphicsSimpleTextItem(const QGraphicsSimpleTextItem &); }; %End %If (Qt_4_2_0 -) class QGraphicsItemGroup : QGraphicsItem { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QGraphicsItemGroup(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsItemGroup(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsItemGroup(); void addToGroup(QGraphicsItem *item /Transfer/); void removeFromGroup(QGraphicsItem *item /GetWrapper/); %MethodCode sipCpp->removeFromGroup(a0); // The item will be passed to the group's parent if there is one. If not, // transfer ownership back to Python. if (sipCpp->parentItem()) sipTransferTo(a0Wrapper, sipGetPyObject(sipCpp->parentItem(), sipType_QGraphicsItem)); else sipTransferBack(a0Wrapper); %End virtual QRectF boundingRect() const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; private: QGraphicsItemGroup(const QGraphicsItemGroup &); }; %End %If (Qt_4_6_0 -) class QGraphicsObject : QObject, QGraphicsItem { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QGraphicsObject(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsObject(QGraphicsItem *parent /TransferThis/ = 0); %End %If (Qt_5_0_0 -) virtual ~QGraphicsObject(); %End void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags(0)); void ungrabGesture(Qt::GestureType type); signals: void parentChanged(); void opacityChanged(); void visibleChanged(); void enabledChanged(); void xChanged(); void yChanged(); void zChanged(); void rotationChanged(); void scaleChanged(); protected slots: %If (Qt_4_7_0 -) void updateMicroFocus(); %End protected: %If (Qt_5_0_0 -) virtual bool event(QEvent *ev); %End }; %End %If (Qt_4_6_0 -) class QGraphicsTextItem : QGraphicsObject { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QGraphicsTextItem(QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsTextItem(QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End %If (Qt_5_0_0 -) QGraphicsTextItem(const QString &text, QGraphicsItem *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QGraphicsTextItem(const QString &text, QGraphicsItem *parent /TransferThis/ = 0, QGraphicsScene *scene /TransferThis/ = 0); %End virtual ~QGraphicsTextItem(); QString toHtml() const; void setHtml(const QString &html); QString toPlainText() const; void setPlainText(const QString &text); QFont font() const; void setFont(const QFont &font); void setDefaultTextColor(const QColor &c); QColor defaultTextColor() const; virtual QRectF boundingRect() const; virtual QPainterPath shape() const; virtual bool contains(const QPointF &point) const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); virtual bool isObscuredBy(const QGraphicsItem *item) const; virtual QPainterPath opaqueArea() const; virtual int type() const; void setTextWidth(qreal width); qreal textWidth() const; void adjustSize(); void setDocument(QTextDocument *document /KeepReference/); QTextDocument *document() const; void setTextInteractionFlags(Qt::TextInteractionFlags flags); Qt::TextInteractionFlags textInteractionFlags() const; void setTabChangesFocus(bool b); bool tabChangesFocus() const; void setOpenExternalLinks(bool open); bool openExternalLinks() const; void setTextCursor(const QTextCursor &cursor); QTextCursor textCursor() const; signals: void linkActivated(const QString &); void linkHovered(const QString &); protected: virtual bool sceneEvent(QEvent *event); virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); virtual void keyPressEvent(QKeyEvent *event); virtual void keyReleaseEvent(QKeyEvent *event); virtual void focusInEvent(QFocusEvent *event); virtual void focusOutEvent(QFocusEvent *event); virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event); virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event); virtual void dropEvent(QGraphicsSceneDragDropEvent *event); virtual void inputMethodEvent(QInputMethodEvent *event); virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; private: QGraphicsTextItem(const QGraphicsTextItem &); }; %End %ModuleCode #if QT_VERSION >= 0x040400 // These are needed by the %ConvertToSubClassCode. #include #include #endif %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicsitemanimation.sip0000644000076500000240000000516212536324426023060 0ustar philstaff00000000000000// qgraphicsitemanimation.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QGraphicsItemAnimation : QObject { %TypeHeaderCode #include %End public: QGraphicsItemAnimation(QObject *parent /TransferThis/ = 0); virtual ~QGraphicsItemAnimation(); QGraphicsItem *item() const; void setItem(QGraphicsItem *item /KeepReference/); QTimeLine *timeLine() const; void setTimeLine(QTimeLine *timeLine /KeepReference/); QPointF posAt(qreal step) const; void setPosAt(qreal step, const QPointF &pos); QMatrix matrixAt(qreal step) const; qreal rotationAt(qreal step) const; void setRotationAt(qreal step, qreal angle); qreal xTranslationAt(qreal step) const; qreal yTranslationAt(qreal step) const; void setTranslationAt(qreal step, qreal dx, qreal dy); qreal verticalScaleAt(qreal step) const; qreal horizontalScaleAt(qreal step) const; void setScaleAt(qreal step, qreal sx, qreal sy); qreal verticalShearAt(qreal step) const; qreal horizontalShearAt(qreal step) const; void setShearAt(qreal step, qreal sh, qreal sv); void clear(); public slots: void reset(); void setStep(qreal x); protected: virtual void afterAnimationStep(qreal step); virtual void beforeAnimationStep(qreal step); public: %If (Qt_4_3_0 -) QList> posList() const; %End %If (Qt_4_3_0 -) QList> rotationList() const; %End %If (Qt_4_3_0 -) QList> translationList() const; %End %If (Qt_4_3_0 -) QList> scaleList() const; %End %If (Qt_4_3_0 -) QList> shearList() const; %End private: QGraphicsItemAnimation(const QGraphicsItemAnimation &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicslayout.sip0000644000076500000240000000347212536324426021541 0ustar philstaff00000000000000// qgraphicslayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QGraphicsLayout : QGraphicsLayoutItem { %TypeHeaderCode #include %End public: QGraphicsLayout(QGraphicsLayoutItem *parent /TransferThis/ = 0); virtual ~QGraphicsLayout(); void setContentsMargins(qreal left, qreal top, qreal right, qreal bottom); virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const; void activate(); bool isActivated() const; virtual void invalidate(); virtual void widgetEvent(QEvent *e); virtual int count() const = 0 /__len__/; virtual QGraphicsLayoutItem *itemAt(int i) const = 0; virtual void removeAt(int index) = 0; %If (Qt_4_5_0 -) virtual void updateGeometry(); %End protected: %If (Qt_4_6_0 -) void addChildLayoutItem(QGraphicsLayoutItem *layoutItem /Transfer/); %End private: QGraphicsLayout(const QGraphicsLayout &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicslayoutitem.sip0000644000076500000240000000622212536324426022414 0ustar philstaff00000000000000// qgraphicslayoutitem.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QGraphicsLayoutItem /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: QGraphicsLayoutItem(QGraphicsLayoutItem *parent /TransferThis/ = 0, bool isLayout = false); virtual ~QGraphicsLayoutItem(); void setSizePolicy(const QSizePolicy &policy); void setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType); QSizePolicy sizePolicy() const; void setMinimumSize(const QSizeF &size); QSizeF minimumSize() const; void setMinimumWidth(qreal width); void setMinimumHeight(qreal height); void setPreferredSize(const QSizeF &size); QSizeF preferredSize() const; void setPreferredWidth(qreal width); void setPreferredHeight(qreal height); void setMaximumSize(const QSizeF &size); QSizeF maximumSize() const; void setMaximumWidth(qreal width); void setMaximumHeight(qreal height); virtual void setGeometry(const QRectF &rect); QRectF geometry() const; virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const; QRectF contentsRect() const; QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; virtual void updateGeometry(); QGraphicsLayoutItem *parentLayoutItem() const; void setParentLayoutItem(QGraphicsLayoutItem *parent /TransferThis/); bool isLayout() const; void setMinimumSize(qreal aw, qreal ah); void setPreferredSize(qreal aw, qreal ah); void setMaximumSize(qreal aw, qreal ah); qreal minimumWidth() const; qreal minimumHeight() const; qreal preferredWidth() const; qreal preferredHeight() const; qreal maximumWidth() const; qreal maximumHeight() const; %If (Qt_4_5_0 -) QGraphicsItem *graphicsItem() const; %End %If (Qt_4_5_0 -) bool ownedByLayout() const; %End protected: virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0; %If (Qt_4_5_0 -) void setGraphicsItem(QGraphicsItem *item); %End %If (Qt_4_5_0 -) void setOwnedByLayout(bool ownedByLayout); %End private: %If (Qt_4_6_0 -) QGraphicsLayoutItem(const QGraphicsLayoutItem &); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicslinearlayout.sip0000644000076500000240000000624612536324426022736 0ustar philstaff00000000000000// qgraphicslinearlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QGraphicsLinearLayout : QGraphicsLayout { %TypeHeaderCode #include %End public: QGraphicsLinearLayout(QGraphicsLayoutItem *parent /TransferThis/ = 0); QGraphicsLinearLayout(Qt::Orientation orientation, QGraphicsLayoutItem *parent /TransferThis/ = 0); virtual ~QGraphicsLinearLayout(); void setOrientation(Qt::Orientation orientation); Qt::Orientation orientation() const; void addItem(QGraphicsLayoutItem *item /Transfer/); void addStretch(int stretch = 1); void insertItem(int index, QGraphicsLayoutItem *item /Transfer/); void insertStretch(int index, int stretch = 1); void removeItem(QGraphicsLayoutItem *item /TransferBack/); virtual void removeAt(int index); %MethodCode // The ownership of any existing item must be passed back to Python. QGraphicsLayoutItem *itm; if (a0 < sipCpp->count()) itm = sipCpp->itemAt(a0); else itm = 0; Py_BEGIN_ALLOW_THREADS sipSelfWasArg ? sipCpp->QGraphicsLinearLayout::removeAt(a0) : sipCpp->removeAt(a0); Py_END_ALLOW_THREADS // The Qt documentation isn't quite correct as ownership isn't always passed // back to the caller. if (itm && !itm->parentLayoutItem()) { PyObject *itmo = sipGetPyObject(itm, sipType_QGraphicsLayoutItem); if (itmo) sipTransferBack(itmo); } %End void setSpacing(qreal spacing); qreal spacing() const; void setItemSpacing(int index, qreal spacing); qreal itemSpacing(int index) const; void setStretchFactor(QGraphicsLayoutItem *item, int stretch); int stretchFactor(QGraphicsLayoutItem *item) const; void setAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment); Qt::Alignment alignment(QGraphicsLayoutItem *item) const; virtual void setGeometry(const QRectF &rect); virtual int count() const; virtual QGraphicsLayoutItem *itemAt(int index) const; virtual void invalidate(); virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; private: QGraphicsLinearLayout(const QGraphicsLinearLayout &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicsproxywidget.sip0000644000076500000240000001010612536324426022601 0ustar philstaff00000000000000// qgraphicsproxywidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QGraphicsProxyWidget : QGraphicsWidget { %TypeHeaderCode #include %End public: QGraphicsProxyWidget(QGraphicsItem *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); virtual ~QGraphicsProxyWidget(); void setWidget(QWidget *widget /Transfer/); %MethodCode // The ownership of any existing widget must be passed back to Python. QWidget *w = sipCpp->widget(); Py_BEGIN_ALLOW_THREADS sipCpp->setWidget(a0); Py_END_ALLOW_THREADS if (w) { PyObject *wo = sipGetPyObject(w, sipType_QWidget); if (wo) sipTransferBack(wo); } %End QWidget *widget() const; QRectF subWidgetRect(const QWidget *widget) const; virtual void setGeometry(const QRectF &rect); virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); virtual int type() const; %If (Qt_4_5_0 -) QGraphicsProxyWidget *createProxyForChildWidget(QWidget *child) /Factory/; %End protected: virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value); virtual bool event(QEvent *event); virtual bool eventFilter(QObject *object, QEvent *event); virtual void showEvent(QShowEvent *event); virtual void hideEvent(QHideEvent *event); virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); virtual void grabMouseEvent(QEvent *event); virtual void ungrabMouseEvent(QEvent *event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); virtual void wheelEvent(QGraphicsSceneWheelEvent *event); virtual void keyPressEvent(QKeyEvent *event); virtual void keyReleaseEvent(QKeyEvent *event); virtual void focusInEvent(QFocusEvent *event); virtual void focusOutEvent(QFocusEvent *event); virtual bool focusNextPrevChild(bool next); virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; virtual void resizeEvent(QGraphicsSceneResizeEvent *event); %If (Qt_4_5_0 -) virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event); %End %If (Qt_4_5_0 -) virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); %End %If (Qt_4_5_0 -) virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event); %End %If (Qt_4_5_0 -) virtual void dropEvent(QGraphicsSceneDragDropEvent *event); %End %If (Qt_4_5_0 -) QGraphicsProxyWidget *newProxyWidget(const QWidget *) /Factory/; %End %If (Qt_5_0_0 -) virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; %End %If (Qt_5_0_0 -) virtual void inputMethodEvent(QInputMethodEvent *event); %End private: QGraphicsProxyWidget(const QGraphicsProxyWidget &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicsscene.sip0000644000076500000240000003550612536324426021324 0ustar philstaff00000000000000// qgraphicsscene.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) %ModuleCode #include %End %End %If (Qt_4_2_0 -) class QGraphicsScene : QObject { %TypeHeaderCode #include %End public: enum ItemIndexMethod { BspTreeIndex, NoIndex, }; QGraphicsScene(QObject *parent /TransferThis/ = 0); QGraphicsScene(const QRectF &sceneRect, QObject *parent /TransferThis/ = 0); QGraphicsScene(qreal x, qreal y, qreal width, qreal height, QObject *parent /TransferThis/ = 0); virtual ~QGraphicsScene(); QRectF sceneRect() const; qreal width() const; qreal height() const; void setSceneRect(const QRectF &rect); void setSceneRect(qreal x, qreal y, qreal w, qreal h); void render(QPainter *painter, const QRectF &target = QRectF(), const QRectF &source = QRectF(), Qt::AspectRatioMode mode = Qt::KeepAspectRatio); QGraphicsScene::ItemIndexMethod itemIndexMethod() const; void setItemIndexMethod(QGraphicsScene::ItemIndexMethod method); QRectF itemsBoundingRect() const; %If (Qt_5_0_0 -) QList items(Qt::SortOrder order = Qt::DescendingOrder) const; %End %If (- Qt_5_0_0) QList items() const; %End %If (Qt_4_6_0 - Qt_5_0_0) QList items(Qt::SortOrder order) const; %End %If (Qt_5_0_0 -) QList items(const QPointF &pos, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const; %End %If (- Qt_5_0_0) QList items(const QPointF &pos) const; %End %If (Qt_4_6_0 - Qt_5_0_0) QList items(const QPointF &pos, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const; %End %If (Qt_5_0_0 -) QList items(const QRectF &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const; %End %If (- Qt_5_0_0) QList items(const QRectF &rectangle, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; %End %If (Qt_4_6_0 - Qt_5_0_0) QList items(const QRectF &rect, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const; %End %If (Qt_5_0_0 -) QList items(const QPolygonF &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const; %End %If (- Qt_5_0_0) QList items(const QPolygonF &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; %End %If (Qt_4_6_0 - Qt_5_0_0) QList items(const QPolygonF &polygon, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const; %End %If (Qt_5_0_0 -) QList items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, Qt::SortOrder order = Qt::DescendingOrder, const QTransform &deviceTransform = QTransform()) const; %End %If (- Qt_5_0_0) QList items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; %End %If (Qt_4_6_0 - Qt_5_0_0) QList items(const QPainterPath &path, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const; %End %If (Qt_4_3_0 -) %If (PyQt_Deprecated_5_0) QList items(qreal x, qreal y, qreal w, qreal h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; %End %End %If (Qt_4_6_0 -) QList items(qreal x, qreal y, qreal w, qreal h, Qt::ItemSelectionMode mode, Qt::SortOrder order, const QTransform &deviceTransform = QTransform()) const; %End QList collidingItems(const QGraphicsItem *item, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; %If (PyQt_Deprecated_5_0) QGraphicsItem *itemAt(const QPointF &pos) const; %End %If (PyQt_Deprecated_5_0) QGraphicsItem *itemAt(qreal x, qreal y) const; %End QList selectedItems() const; %If (Qt_4_6_0 -) void setSelectionArea(const QPainterPath &path, const QTransform &deviceTransform); %End %If (Qt_5_0_0 -) void setSelectionArea(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape, const QTransform &deviceTransform = QTransform()); %End %If (- Qt_5_0_0) void setSelectionArea(const QPainterPath &path); %End %If (Qt_4_3_0 - Qt_5_0_0) void setSelectionArea(const QPainterPath &path, Qt::ItemSelectionMode); %End %If (Qt_4_6_0 - Qt_5_0_0) void setSelectionArea(const QPainterPath &path, Qt::ItemSelectionMode mode, const QTransform &deviceTransform); %End void clearSelection(); QGraphicsItemGroup *createItemGroup(const QList &items /Transfer/); void destroyItemGroup(QGraphicsItemGroup *group /Transfer/); void addItem(QGraphicsItem *item /Transfer/); QGraphicsEllipseItem *addEllipse(const QRectF &rect, const QPen &pen = QPen(), const QBrush &brush = QBrush()); %If (Qt_4_3_0 -) QGraphicsEllipseItem *addEllipse(qreal x, qreal y, qreal w, qreal h, const QPen &pen = QPen(), const QBrush &brush = QBrush()); %End QGraphicsLineItem *addLine(const QLineF &line, const QPen &pen = QPen()); %If (Qt_4_3_0 -) QGraphicsLineItem *addLine(qreal x1, qreal y1, qreal x2, qreal y2, const QPen &pen = QPen()); %End QGraphicsPathItem *addPath(const QPainterPath &path, const QPen &pen = QPen(), const QBrush &brush = QBrush()); QGraphicsPixmapItem *addPixmap(const QPixmap &pixmap); QGraphicsPolygonItem *addPolygon(const QPolygonF &polygon, const QPen &pen = QPen(), const QBrush &brush = QBrush()); QGraphicsRectItem *addRect(const QRectF &rect, const QPen &pen = QPen(), const QBrush &brush = QBrush()); %If (Qt_4_3_0 -) QGraphicsRectItem *addRect(qreal x, qreal y, qreal w, qreal h, const QPen &pen = QPen(), const QBrush &brush = QBrush()); %End %If (Qt_4_3_0 -) QGraphicsSimpleTextItem *addSimpleText(const QString &text, const QFont &font = QFont()); %End QGraphicsTextItem *addText(const QString &text, const QFont &font = QFont()); void removeItem(QGraphicsItem *item /TransferBack/); QGraphicsItem *focusItem() const; void setFocusItem(QGraphicsItem *item, Qt::FocusReason focusReason = Qt::OtherFocusReason); bool hasFocus() const; void setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason); void clearFocus(); QGraphicsItem *mouseGrabberItem() const; QBrush backgroundBrush() const; void setBackgroundBrush(const QBrush &brush); QBrush foregroundBrush() const; void setForegroundBrush(const QBrush &brush); virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; QList views() const; public slots: void advance(); void update(const QRectF &rect = QRectF()); %If (Qt_4_3_0 -) void invalidate(const QRectF &rect = QRectF(), QFlags layers = QGraphicsScene::AllLayers); %End %If (Qt_4_4_0 -) void clear(); %End signals: void changed(const QList ®ion); void sceneRectChanged(const QRectF &rect); %If (Qt_4_3_0 -) void selectionChanged(); %End protected: virtual bool event(QEvent *event); virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event); virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event); virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event); virtual void dropEvent(QGraphicsSceneDragDropEvent *event); virtual void focusInEvent(QFocusEvent *event); virtual void focusOutEvent(QFocusEvent *event); virtual void helpEvent(QGraphicsSceneHelpEvent *event); virtual void keyPressEvent(QKeyEvent *event); virtual void keyReleaseEvent(QKeyEvent *event); virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); virtual void wheelEvent(QGraphicsSceneWheelEvent *event); virtual void inputMethodEvent(QInputMethodEvent *event); virtual void drawBackground(QPainter *painter, const QRectF &rect); virtual void drawForeground(QPainter *painter, const QRectF &rect); virtual void drawItems(QPainter *painter, SIP_PYLIST items /DocType="list-of-QGraphicsItem"/, SIP_PYLIST options /DocType="list-of-QStyleOptionGraphicsItem"/, QWidget *widget = 0) [void (QPainter *painter, int numItems, QGraphicsItem **items, const QStyleOptionGraphicsItem *options, QWidget *widget = 0)]; %MethodCode // PyQt takes lists as the items and options arguments. // Adjust the number items according to the actual list lengths. SIP_SSIZE_T numItems = PyList_GET_SIZE(a1); if (numItems > PyList_GET_SIZE(a2)) numItems = PyList_GET_SIZE(a2); // Allocate temporary storage for the C++ conversions. QGraphicsItem **items = new QGraphicsItem *[numItems]; QStyleOptionGraphicsItem *options = new QStyleOptionGraphicsItem[numItems]; for (int i = 0; i < numItems; ++i) { void *cpp; cpp = sipForceConvertToType(PyList_GET_ITEM(a1, i), sipType_QGraphicsItem, NULL, SIP_NO_CONVERTORS, NULL, &sipIsErr); items[i] = reinterpret_cast(cpp); cpp = sipForceConvertToType(PyList_GET_ITEM(a2, i), sipType_QStyleOptionGraphicsItem, NULL, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &sipIsErr); options[i] = *reinterpret_cast(cpp); } if (!sipIsErr) { Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) if (sipSelfWasArg) sipCpp->QGraphicsScene::drawItems(a0, numItems, items, options, a3); else sipCpp->drawItems(a0, numItems, items, options, a3); #else sipCpp->sipProtectVirt_drawItems(sipSelfWasArg, a0, numItems, items, options, a3); #endif Py_END_ALLOW_THREADS } delete[] items; delete[] options; %End %VirtualCatcherCode // PyQt handles the items and options arguments as lists, but keeps the // numItems argument. PyObject *items = PyList_New(a1); PyObject *options = PyList_New(a1); sipIsErr = (!items || !options); if (!sipIsErr) for (int i = 0; i < a1; ++i) { PyObject *obj; obj = sipConvertFromType(a2[i], sipType_QGraphicsItem, 0); if (!obj) { sipIsErr = true; break; } PyList_SET_ITEM(items, i, obj); obj = sipConvertFromType(const_cast(&a3[i]), sipType_QStyleOptionGraphicsItem, 0); if (!obj) { sipIsErr = true; break; } PyList_SET_ITEM(options, i, obj); } if (!sipIsErr) { PyObject *res = sipCallMethod(&sipIsErr, sipMethod, "DSSD", a0, sipType_QPainter, NULL, items, options, a4, sipType_QWidget, NULL); if (res) { sipParseResult(&sipIsErr, sipMethod, res, "Z"); Py_DECREF(res); } } Py_XDECREF(items); Py_XDECREF(options); %End public: %If (Qt_4_3_0 -) enum SceneLayer { ItemLayer, BackgroundLayer, ForegroundLayer, AllLayers, }; %End %If (Qt_4_3_0 -) typedef QFlags SceneLayers; %End %If (Qt_4_3_0 -) int bspTreeDepth() const; %End %If (Qt_4_3_0 -) void setBspTreeDepth(int depth); %End %If (Qt_4_3_0 -) QPainterPath selectionArea() const; %End %If (Qt_4_3_0 -) void update(qreal x, qreal y, qreal w, qreal h); %End %If (Qt_4_3_0 -) void invalidate(qreal x, qreal y, qreal w, qreal h, QFlags layers = QGraphicsScene::AllLayers); %End %If (Qt_4_4_0 -) QGraphicsProxyWidget *addWidget(QWidget *widget /Transfer/, Qt::WindowFlags flags = 0); %End %If (Qt_4_4_0 -) QStyle *style() const; %End %If (Qt_4_4_0 -) void setStyle(QStyle *style /Transfer/); %End %If (Qt_4_4_0 -) QFont font() const; %End %If (Qt_4_4_0 -) void setFont(const QFont &font); %End %If (Qt_4_4_0 -) QPalette palette() const; %End %If (Qt_4_4_0 -) void setPalette(const QPalette &palette); %End %If (Qt_4_4_0 -) QGraphicsWidget *activeWindow() const; %End %If (Qt_4_4_0 -) void setActiveWindow(QGraphicsWidget *widget); %End protected: %If (Qt_4_4_0 -) virtual bool eventFilter(QObject *watched, QEvent *event); %End %If (Qt_4_4_0 -) bool focusNextPrevChild(bool next); %End public: %If (Qt_4_5_0 -) bool isSortCacheEnabled() const; %End %If (Qt_4_5_0 -) void setSortCacheEnabled(bool enabled); %End %If (Qt_4_5_0 -) void setStickyFocus(bool enabled); %End %If (Qt_4_5_0 -) bool stickyFocus() const; %End %If (Qt_4_6_0 -) QGraphicsItem *itemAt(const QPointF &pos, const QTransform &deviceTransform) const; %End %If (Qt_4_6_0 -) QGraphicsItem *itemAt(qreal x, qreal y, const QTransform &deviceTransform) const; %End %If (Qt_4_6_0 -) bool isActive() const; %End %If (Qt_4_6_0 -) QGraphicsItem *activePanel() const; %End %If (Qt_4_6_0 -) void setActivePanel(QGraphicsItem *item); %End %If (Qt_4_6_0 -) bool sendEvent(QGraphicsItem *item, QEvent *event); %End private: %If (Qt_4_4_0 -) QGraphicsScene(const QGraphicsScene &); %End }; %End %If (Qt_4_3_0 -) QFlags operator|(QGraphicsScene::SceneLayer f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicssceneevent.sip0000644000076500000240000001305412536324426022360 0ustar philstaff00000000000000// qgraphicssceneevent.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QGraphicsSceneEvent : QEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QGraphicsSceneEvent(); QWidget *widget() const; void setWidget(QWidget *widget); private: %If (Qt_4_6_0 -) QGraphicsSceneEvent(const QGraphicsSceneEvent &); %End }; %End %If (Qt_4_2_0 -) class QGraphicsSceneMouseEvent : QGraphicsSceneEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QGraphicsSceneMouseEvent(); QPointF pos() const; QPointF scenePos() const; QPoint screenPos() const; QPointF buttonDownPos(Qt::MouseButton button) const; QPointF buttonDownScenePos(Qt::MouseButton button) const; QPoint buttonDownScreenPos(Qt::MouseButton button) const; QPointF lastPos() const; QPointF lastScenePos() const; QPoint lastScreenPos() const; Qt::MouseButtons buttons() const; Qt::MouseButton button() const; Qt::KeyboardModifiers modifiers() const; private: %If (Qt_4_6_3 -) QGraphicsSceneMouseEvent(const QGraphicsSceneMouseEvent &); %End }; %End %If (Qt_4_2_0 -) class QGraphicsSceneWheelEvent : QGraphicsSceneEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QGraphicsSceneWheelEvent(); QPointF pos() const; QPointF scenePos() const; QPoint screenPos() const; Qt::MouseButtons buttons() const; Qt::KeyboardModifiers modifiers() const; int delta() const; %If (Qt_4_3_0 -) Qt::Orientation orientation() const; %End private: %If (Qt_4_6_3 -) QGraphicsSceneWheelEvent(const QGraphicsSceneWheelEvent &); %End }; %End %If (Qt_4_2_0 -) class QGraphicsSceneContextMenuEvent : QGraphicsSceneEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: enum Reason { Mouse, Keyboard, Other, }; virtual ~QGraphicsSceneContextMenuEvent(); QPointF pos() const; QPointF scenePos() const; QPoint screenPos() const; Qt::KeyboardModifiers modifiers() const; QGraphicsSceneContextMenuEvent::Reason reason() const; private: %If (Qt_4_6_3 -) QGraphicsSceneContextMenuEvent(const QGraphicsSceneContextMenuEvent &); %End }; %End %If (Qt_4_2_0 -) class QGraphicsSceneHoverEvent : QGraphicsSceneEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QGraphicsSceneHoverEvent(); QPointF pos() const; QPointF scenePos() const; QPoint screenPos() const; %If (Qt_4_4_0 -) QPointF lastPos() const; %End %If (Qt_4_4_0 -) QPointF lastScenePos() const; %End %If (Qt_4_4_0 -) QPoint lastScreenPos() const; %End %If (Qt_4_4_0 -) Qt::KeyboardModifiers modifiers() const; %End private: %If (Qt_4_6_3 -) QGraphicsSceneHoverEvent(const QGraphicsSceneHoverEvent &); %End }; %End %If (Qt_4_2_0 -) class QGraphicsSceneHelpEvent : QGraphicsSceneEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QGraphicsSceneHelpEvent(); QPointF scenePos() const; QPoint screenPos() const; private: %If (Qt_4_6_3 -) QGraphicsSceneHelpEvent(const QGraphicsSceneHelpEvent &); %End }; %End %If (Qt_4_2_0 -) class QGraphicsSceneDragDropEvent : QGraphicsSceneEvent /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QGraphicsSceneDragDropEvent(); QPointF pos() const; QPointF scenePos() const; QPoint screenPos() const; Qt::MouseButtons buttons() const; Qt::KeyboardModifiers modifiers() const; Qt::DropActions possibleActions() const; Qt::DropAction proposedAction() const; void acceptProposedAction(); Qt::DropAction dropAction() const; void setDropAction(Qt::DropAction action); QWidget *source() const; const QMimeData *mimeData() const; private: %If (Qt_4_6_3 -) QGraphicsSceneDragDropEvent(const QGraphicsSceneDragDropEvent &); %End }; %End %If (Qt_4_4_0 -) class QGraphicsSceneResizeEvent : QGraphicsSceneEvent { %TypeHeaderCode #include %End public: QGraphicsSceneResizeEvent(); virtual ~QGraphicsSceneResizeEvent(); QSizeF oldSize() const; QSizeF newSize() const; private: %If (Qt_4_6_3 -) QGraphicsSceneResizeEvent(const QGraphicsSceneResizeEvent &); %End }; %End %If (Qt_4_4_0 -) class QGraphicsSceneMoveEvent : QGraphicsSceneEvent { %TypeHeaderCode #include %End public: QGraphicsSceneMoveEvent(); virtual ~QGraphicsSceneMoveEvent(); QPointF oldPos() const; QPointF newPos() const; private: %If (Qt_4_6_3 -) QGraphicsSceneMoveEvent(const QGraphicsSceneMoveEvent &); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicstransform.sip0000644000076500000240000000501512536324426022232 0ustar philstaff00000000000000// qgraphicstransform.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QGraphicsTransform : QObject { %TypeHeaderCode #include %End public: QGraphicsTransform(QObject *parent /TransferThis/ = 0); virtual ~QGraphicsTransform(); virtual void applyTo(QMatrix4x4 *matrix) const = 0; protected slots: void update(); }; %End %If (Qt_4_6_0 -) class QGraphicsScale : QGraphicsTransform { %TypeHeaderCode #include %End public: QGraphicsScale(QObject *parent /TransferThis/ = 0); virtual ~QGraphicsScale(); QVector3D origin() const; void setOrigin(const QVector3D &point); qreal xScale() const; void setXScale(qreal); qreal yScale() const; void setYScale(qreal); qreal zScale() const; void setZScale(qreal); virtual void applyTo(QMatrix4x4 *matrix) const; signals: void originChanged(); void scaleChanged(); %If (Qt_4_7_0 -) void xScaleChanged(); %End %If (Qt_4_7_0 -) void yScaleChanged(); %End %If (Qt_4_7_0 -) void zScaleChanged(); %End }; %End %If (Qt_4_6_0 -) class QGraphicsRotation : QGraphicsTransform { %TypeHeaderCode #include %End public: QGraphicsRotation(QObject *parent /TransferThis/ = 0); virtual ~QGraphicsRotation(); QVector3D origin() const; void setOrigin(const QVector3D &point); qreal angle() const; void setAngle(qreal); QVector3D axis() const; void setAxis(const QVector3D &axis); void setAxis(Qt::Axis axis); virtual void applyTo(QMatrix4x4 *matrix) const; signals: void originChanged(); void angleChanged(); void axisChanged(); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicsview.sip0000644000076500000240000003014612536324426021174 0ustar philstaff00000000000000// qgraphicsview.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) %ModuleCode #include %End %End %If (Qt_4_2_0 -) class QGraphicsView : QAbstractScrollArea { %TypeHeaderCode #include %End public: enum CacheModeFlag { CacheNone, CacheBackground, }; typedef QFlags CacheMode; enum DragMode { NoDrag, ScrollHandDrag, RubberBandDrag, }; enum ViewportAnchor { NoAnchor, AnchorViewCenter, AnchorUnderMouse, }; QGraphicsView(QWidget *parent /TransferThis/ = 0); QGraphicsView(QGraphicsScene *scene /KeepReference/, QWidget *parent /TransferThis/ = 0); virtual ~QGraphicsView(); virtual QSize sizeHint() const; QFlags renderHints() const; void setRenderHint(QPainter::RenderHint hint, bool on = true); void setRenderHints(QFlags hints); Qt::Alignment alignment() const; void setAlignment(Qt::Alignment alignment); QGraphicsView::ViewportAnchor transformationAnchor() const; void setTransformationAnchor(QGraphicsView::ViewportAnchor anchor); QGraphicsView::ViewportAnchor resizeAnchor() const; void setResizeAnchor(QGraphicsView::ViewportAnchor anchor); QGraphicsView::DragMode dragMode() const; void setDragMode(QGraphicsView::DragMode mode); QFlags cacheMode() const; void setCacheMode(QFlags mode); void resetCachedContent(); bool isInteractive() const; void setInteractive(bool allowed); QGraphicsScene *scene() const; void setScene(QGraphicsScene *scene /KeepReference/); QRectF sceneRect() const; void setSceneRect(const QRectF &rect); QMatrix matrix() const; void setMatrix(const QMatrix &matrix, bool combine = false); void resetMatrix(); void rotate(qreal angle); void scale(qreal sx, qreal sy); void shear(qreal sh, qreal sv); void translate(qreal dx, qreal dy); void centerOn(const QPointF &pos); void centerOn(const QGraphicsItem *item); void ensureVisible(const QRectF &rect, int xMargin = 50, int yMargin = 50); void ensureVisible(const QGraphicsItem *item, int xMargin = 50, int yMargin = 50); void fitInView(const QRectF &rect, Qt::AspectRatioMode mode = Qt::IgnoreAspectRatio); void fitInView(const QGraphicsItem *item, Qt::AspectRatioMode mode = Qt::IgnoreAspectRatio); void render(QPainter *painter, const QRectF &target = QRectF(), const QRect &source = QRect(), Qt::AspectRatioMode mode = Qt::KeepAspectRatio); QList items() const; QList items(const QPoint &pos) const; QList items(int ax, int ay) const; %If (Qt_4_3_0 -) QList items(int x, int y, int w, int h, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; %End QList items(const QRect &rect, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; QList items(const QPolygon &polygon, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; QList items(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const; QGraphicsItem *itemAt(const QPoint &pos) const; QPointF mapToScene(const QPoint &point) const; QPolygonF mapToScene(const QRect &rect) const; QPolygonF mapToScene(const QPolygon &polygon) const; QPainterPath mapToScene(const QPainterPath &path) const; QPoint mapFromScene(const QPointF &point) const; QPolygon mapFromScene(const QRectF &rect) const; QPolygon mapFromScene(const QPolygonF &polygon) const; QPainterPath mapFromScene(const QPainterPath &path) const; virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; QBrush backgroundBrush() const; void setBackgroundBrush(const QBrush &brush); QBrush foregroundBrush() const; void setForegroundBrush(const QBrush &brush); public slots: %If (Qt_4_3_0 -) void invalidateScene(const QRectF &rect = QRectF(), QFlags layers = QGraphicsScene::AllLayers); %End void updateScene(const QList &rects); void updateSceneRect(const QRectF &rect); protected slots: %If (Qt_5_0_0 -) virtual void setupViewport(QWidget *widget); %End %If (- Qt_5_0_0) void setupViewport(QWidget *widget); %End protected: virtual bool event(QEvent *event); virtual bool viewportEvent(QEvent *event); virtual void contextMenuEvent(QContextMenuEvent *event); virtual void dragEnterEvent(QDragEnterEvent *event); virtual void dragLeaveEvent(QDragLeaveEvent *event); virtual void dragMoveEvent(QDragMoveEvent *event); virtual void dropEvent(QDropEvent *event); virtual void focusInEvent(QFocusEvent *event); virtual void focusOutEvent(QFocusEvent *event); %If (Qt_4_4_0 -) virtual bool focusNextPrevChild(bool next); %End virtual void keyPressEvent(QKeyEvent *event); virtual void keyReleaseEvent(QKeyEvent *event); virtual void mouseDoubleClickEvent(QMouseEvent *event); virtual void mousePressEvent(QMouseEvent *event); virtual void mouseMoveEvent(QMouseEvent *event); virtual void mouseReleaseEvent(QMouseEvent *event); virtual void wheelEvent(QWheelEvent *event); virtual void paintEvent(QPaintEvent *event); virtual void resizeEvent(QResizeEvent *event); virtual void scrollContentsBy(int dx, int dy); virtual void showEvent(QShowEvent *event); virtual void inputMethodEvent(QInputMethodEvent *event); virtual void drawBackground(QPainter *painter, const QRectF &rect); virtual void drawForeground(QPainter *painter, const QRectF &rect); virtual void drawItems(QPainter *painter, SIP_PYLIST items /DocType="list-of-QGraphicsItem"/, SIP_PYLIST options /DocType="list-of-QStyleOptionGraphicsItem"/) [void (QPainter *painter, int numItems, QGraphicsItem **items, const QStyleOptionGraphicsItem *options)]; %MethodCode // PyQt takes lists as the items and options arguments. // Adjust the number items according to the actual list lengths. SIP_SSIZE_T numItems = PyList_GET_SIZE(a1); if (numItems > PyList_GET_SIZE(a2)) numItems = PyList_GET_SIZE(a2); // Allocate temporary storage for the C++ conversions. QGraphicsItem **items = new QGraphicsItem *[numItems]; QStyleOptionGraphicsItem *options = new QStyleOptionGraphicsItem[numItems]; for (int i = 0; i < numItems; ++i) { void *cpp; cpp = sipForceConvertToType(PyList_GET_ITEM(a1, i), sipType_QGraphicsItem, NULL, SIP_NO_CONVERTORS, NULL, &sipIsErr); items[i] = reinterpret_cast(cpp); cpp = sipForceConvertToType(PyList_GET_ITEM(a2, i), sipType_QStyleOptionGraphicsItem, NULL, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &sipIsErr); options[i] = *reinterpret_cast(cpp); } if (!sipIsErr) { Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) if (sipSelfWasArg) sipCpp->QGraphicsView::drawItems(a0, numItems, items, options); else sipCpp->drawItems(a0, numItems, items, options); #else sipCpp->sipProtectVirt_drawItems(sipSelfWasArg, a0, numItems, items, options); #endif Py_END_ALLOW_THREADS } delete[] items; delete[] options; %End %VirtualCatcherCode // PyQt handles the items and options arguments as lists, but keeps the // numItems argument. PyObject *items = PyList_New(a1); PyObject *options = PyList_New(a1); sipIsErr = (!items || !options); if (!sipIsErr) for (int i = 0; i < a1; ++i) { PyObject *obj; obj = sipConvertFromType(a2[i], sipType_QGraphicsItem, 0); if (!obj) { sipIsErr = true; break; } PyList_SET_ITEM(items, i, obj); obj = sipConvertFromType(const_cast(&a3[i]), sipType_QStyleOptionGraphicsItem, 0); if (!obj) { sipIsErr = true; break; } PyList_SET_ITEM(options, i, obj); } if (!sipIsErr) { PyObject *res = sipCallMethod(&sipIsErr, sipMethod, "DSS", a0, sipType_QPainter, NULL, items, options, NULL); if (res) { sipParseResult(&sipIsErr, sipMethod, res, "Z"); Py_DECREF(res); } } Py_XDECREF(items); Py_XDECREF(options); %End public: void setSceneRect(qreal ax, qreal ay, qreal aw, qreal ah); void centerOn(qreal ax, qreal ay); void ensureVisible(qreal x, qreal y, qreal w, qreal h, int xMargin = 50, int yMargin = 50); void fitInView(qreal x, qreal y, qreal w, qreal h, Qt::AspectRatioMode mode = Qt::IgnoreAspectRatio); QGraphicsItem *itemAt(int ax, int ay) const; QPointF mapToScene(int ax, int ay) const; QPolygonF mapToScene(int ax, int ay, int w, int h) const; QPoint mapFromScene(qreal ax, qreal ay) const; QPolygon mapFromScene(qreal ax, qreal ay, qreal w, qreal h) const; %If (Qt_4_3_0 -) enum ViewportUpdateMode { FullViewportUpdate, MinimalViewportUpdate, SmartViewportUpdate, %If (Qt_4_4_0 -) BoundingRectViewportUpdate, %End NoViewportUpdate, }; %End %If (Qt_4_3_0 -) enum OptimizationFlag { DontClipPainter, DontSavePainterState, DontAdjustForAntialiasing, }; %End %If (Qt_4_3_0 -) typedef QFlags OptimizationFlags; %End %If (Qt_4_3_0 -) QGraphicsView::ViewportUpdateMode viewportUpdateMode() const; %End %If (Qt_4_3_0 -) void setViewportUpdateMode(QGraphicsView::ViewportUpdateMode mode); %End %If (Qt_4_3_0 -) QFlags optimizationFlags() const; %End %If (Qt_4_3_0 -) void setOptimizationFlag(QGraphicsView::OptimizationFlag flag, bool enabled = true); %End %If (Qt_4_3_0 -) void setOptimizationFlags(QFlags flags); %End %If (Qt_4_3_0 -) Qt::ItemSelectionMode rubberBandSelectionMode() const; %End %If (Qt_4_3_0 -) void setRubberBandSelectionMode(Qt::ItemSelectionMode mode); %End %If (Qt_4_3_0 -) QTransform transform() const; %End %If (Qt_4_3_0 -) QTransform viewportTransform() const; %End %If (Qt_4_3_0 -) void setTransform(const QTransform &matrix, bool combine = false); %End %If (Qt_4_3_0 -) void resetTransform(); %End %If (Qt_4_6_0 -) bool isTransformed() const; %End private: %If (Qt_4_4_0 -) QGraphicsView(const QGraphicsView &); %End }; %End %If (Qt_4_2_0 -) QFlags operator|(QGraphicsView::CacheModeFlag f1, QFlags f2); %End %If (Qt_4_3_0 -) QFlags operator|(QGraphicsView::OptimizationFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgraphicswidget.sip0000644000076500000240000002537212536324426021512 0ustar philstaff00000000000000// qgraphicswidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 - Qt_4_6_0) class QGraphicsWidget : QObject, QGraphicsItem, QGraphicsLayoutItem { %TypeHeaderCode #include %End %TypeCode // Transfer ownership of all widgets in a layout to their new parent. static void qtgui_TransferGraphicsLayoutWidgets(QGraphicsLayout *lay, PyObject *pw) { int n = lay->count(); for (int i = 0; i < n; ++i) { QGraphicsLayoutItem *item = lay->itemAt(i); if (item->isLayout()) qtgui_TransferGraphicsLayoutWidgets(static_cast(item), pw); else { PyObject *obj = sipGetPyObject(static_cast(item), sipType_QGraphicsWidget); if (obj) sipTransferTo(obj, pw); } } } %End public: QGraphicsWidget(QGraphicsItem *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); virtual ~QGraphicsWidget(); QGraphicsLayout *layout() const; void setLayout(QGraphicsLayout *layout /Transfer/); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->setLayout(a0); Py_END_ALLOW_THREADS // Internally Qt has reparented all of the widgets in the layout, so we need // to update the ownership hierachy. qtgui_TransferGraphicsLayoutWidgets(a0, sipSelf); %End void adjustSize(); Qt::LayoutDirection layoutDirection() const; void setLayoutDirection(Qt::LayoutDirection direction); void unsetLayoutDirection(); QStyle *style() const; void setStyle(QStyle *style /KeepReference/); QFont font() const; void setFont(const QFont &font); QPalette palette() const; void setPalette(const QPalette &palette); void resize(const QSizeF &size); void resize(qreal w, qreal h); QSizeF size() const; virtual void setGeometry(const QRectF &rect); void setGeometry(qreal ax, qreal ay, qreal aw, qreal ah); QRectF rect() const; void setContentsMargins(qreal left, qreal top, qreal right, qreal bottom); virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const; void setWindowFrameMargins(qreal left, qreal top, qreal right, qreal bottom); void getWindowFrameMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const; void unsetWindowFrameMargins(); QRectF windowFrameGeometry() const; QRectF windowFrameRect() const; Qt::WindowFlags windowFlags() const; Qt::WindowType windowType() const; void setWindowFlags(Qt::WindowFlags wFlags); bool isActiveWindow() const; void setWindowTitle(const QString &title); QString windowTitle() const; Qt::FocusPolicy focusPolicy() const; void setFocusPolicy(Qt::FocusPolicy policy); static void setTabOrder(QGraphicsWidget *first, QGraphicsWidget *second); QGraphicsWidget *focusWidget() const; void setAttribute(Qt::WidgetAttribute attribute, bool on = true); bool testAttribute(Qt::WidgetAttribute attribute) const; virtual int type() const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual void paintWindowFrame(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual QRectF boundingRect() const; virtual QPainterPath shape() const; const QObjectList &children() const; public slots: bool close(); protected: virtual void initStyleOption(QStyleOption *option) const; virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; virtual void updateGeometry(); virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value); virtual bool sceneEvent(QEvent *event); virtual bool windowFrameEvent(QEvent *e); virtual Qt::WindowFrameSection windowFrameSectionAt(const QPointF &pos) const; virtual bool event(QEvent *event); virtual void changeEvent(QEvent *event); virtual void closeEvent(QCloseEvent *event); virtual void focusInEvent(QFocusEvent *event); virtual bool focusNextPrevChild(bool next); virtual void focusOutEvent(QFocusEvent *event); virtual void hideEvent(QHideEvent *event); virtual void moveEvent(QGraphicsSceneMoveEvent *event); virtual void polishEvent(); virtual void resizeEvent(QGraphicsSceneResizeEvent *event); virtual void showEvent(QShowEvent *event); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); virtual void grabMouseEvent(QEvent *event); virtual void ungrabMouseEvent(QEvent *event); virtual void grabKeyboardEvent(QEvent *event); virtual void ungrabKeyboardEvent(QEvent *event); public: %If (Qt_4_5_0 -) int grabShortcut(const QKeySequence &sequence, Qt::ShortcutContext context = Qt::WindowShortcut); %End %If (Qt_4_5_0 -) void releaseShortcut(int id); %End %If (Qt_4_5_0 -) void setShortcutEnabled(int id, bool enabled = true); %End %If (Qt_4_5_0 -) void setShortcutAutoRepeat(int id, bool enabled = true); %End %If (Qt_4_5_0 -) void addAction(QAction *action); %End %If (Qt_4_5_0 -) void addActions(QList actions); %End %If (Qt_4_5_0 -) void insertAction(QAction *before, QAction *action); %End %If (Qt_4_5_0 -) void insertActions(QAction *before, QList actions); %End %If (Qt_4_5_0 -) void removeAction(QAction *action); %End %If (Qt_4_5_0 -) QList actions() const; %End private: QGraphicsWidget(const QGraphicsWidget &); }; %End %If (Qt_4_6_0 -) class QGraphicsWidget : QGraphicsObject, QGraphicsLayoutItem { %TypeHeaderCode #include %End public: QGraphicsWidget(QGraphicsItem *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); virtual ~QGraphicsWidget(); QGraphicsLayout *layout() const; void setLayout(QGraphicsLayout *layout /Transfer/); void adjustSize(); Qt::LayoutDirection layoutDirection() const; void setLayoutDirection(Qt::LayoutDirection direction); void unsetLayoutDirection(); QStyle *style() const; void setStyle(QStyle *style /KeepReference/); QFont font() const; void setFont(const QFont &font); QPalette palette() const; void setPalette(const QPalette &palette); void resize(const QSizeF &size); void resize(qreal w, qreal h); QSizeF size() const; virtual void setGeometry(const QRectF &rect); QRectF rect() const; void setContentsMargins(qreal left, qreal top, qreal right, qreal bottom); virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const; void setWindowFrameMargins(qreal left, qreal top, qreal right, qreal bottom); void getWindowFrameMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const; void unsetWindowFrameMargins(); QRectF windowFrameGeometry() const; QRectF windowFrameRect() const; Qt::WindowFlags windowFlags() const; Qt::WindowType windowType() const; void setWindowFlags(Qt::WindowFlags wFlags); bool isActiveWindow() const; void setWindowTitle(const QString &title); QString windowTitle() const; Qt::FocusPolicy focusPolicy() const; void setFocusPolicy(Qt::FocusPolicy policy); static void setTabOrder(QGraphicsWidget *first, QGraphicsWidget *second); QGraphicsWidget *focusWidget() const; int grabShortcut(const QKeySequence &sequence, Qt::ShortcutContext context = Qt::WindowShortcut); void releaseShortcut(int id); void setShortcutEnabled(int id, bool enabled = true); void setShortcutAutoRepeat(int id, bool enabled = true); void addAction(QAction *action); void addActions(QList actions); void insertAction(QAction *before, QAction *action); void insertActions(QAction *before, QList actions); void removeAction(QAction *action); QList actions() const; void setAttribute(Qt::WidgetAttribute attribute, bool on = true); bool testAttribute(Qt::WidgetAttribute attribute) const; virtual int type() const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual void paintWindowFrame(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual QRectF boundingRect() const; virtual QPainterPath shape() const; void setGeometry(qreal ax, qreal ay, qreal aw, qreal ah); public slots: bool close(); protected: virtual void initStyleOption(QStyleOption *option) const; virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const; virtual void updateGeometry(); virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value); virtual bool sceneEvent(QEvent *event); virtual bool windowFrameEvent(QEvent *e); virtual Qt::WindowFrameSection windowFrameSectionAt(const QPointF &pos) const; virtual bool event(QEvent *event); virtual void changeEvent(QEvent *event); virtual void closeEvent(QCloseEvent *event); virtual void focusInEvent(QFocusEvent *event); virtual bool focusNextPrevChild(bool next); virtual void focusOutEvent(QFocusEvent *event); virtual void hideEvent(QHideEvent *event); virtual void moveEvent(QGraphicsSceneMoveEvent *event); virtual void polishEvent(); virtual void resizeEvent(QGraphicsSceneResizeEvent *event); virtual void showEvent(QShowEvent *event); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); virtual void grabMouseEvent(QEvent *event); virtual void ungrabMouseEvent(QEvent *event); virtual void grabKeyboardEvent(QEvent *event); virtual void ungrabKeyboardEvent(QEvent *event); public: %If (Qt_4_7_0 -) bool autoFillBackground() const; %End %If (Qt_4_7_0 -) void setAutoFillBackground(bool enabled); %End signals: %If (Qt_4_7_0 -) void geometryChanged(); %End private: QGraphicsWidget(const QGraphicsWidget &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qgridlayout.sip0000644000076500000240000001326112536324426020663 0ustar philstaff00000000000000// qgridlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QGridLayout : QLayout { %TypeHeaderCode #include %End public: explicit QGridLayout(QWidget *parent /TransferThis/); QGridLayout(); virtual ~QGridLayout(); virtual QSize sizeHint() const; virtual QSize minimumSize() const; virtual QSize maximumSize() const; void setRowStretch(int row, int stretch); void setColumnStretch(int column, int stretch); int rowStretch(int row) const; int columnStretch(int column) const; void setRowMinimumHeight(int row, int minSize); void setColumnMinimumWidth(int column, int minSize); int rowMinimumHeight(int row) const; int columnMinimumWidth(int column) const; int columnCount() const; int rowCount() const; QRect cellRect(int row, int column) const; virtual bool hasHeightForWidth() const; virtual int heightForWidth(int) const; virtual int minimumHeightForWidth(int) const; virtual Qt::Orientations expandingDirections() const; virtual void invalidate(); void addWidget(QWidget *w /GetWrapper/); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->addWidget(a0); Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a0Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows addWidget(QWidget()). sipTransferTo(a0Wrapper, sipSelf); } %End void addWidget(QWidget * /GetWrapper/, int row, int column, Qt::Alignment alignment = 0); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->addWidget(a0, a1, a2, *a3); Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a0Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows addWidget(QWidget()). sipTransferTo(a0Wrapper, sipSelf); } %End void addWidget(QWidget * /GetWrapper/, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = 0); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->addWidget(a0, a1, a2, a3, a4, *a5); Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a0Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows addWidget(QWidget()). sipTransferTo(a0Wrapper, sipSelf); } %End void addLayout(QLayout * /Transfer/, int row, int column, Qt::Alignment alignment = 0); void addLayout(QLayout * /Transfer/, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = 0); void setOriginCorner(Qt::Corner); Qt::Corner originCorner() const; virtual QLayoutItem *itemAt(int) const; virtual QLayoutItem *takeAt(int) /TransferBack/; virtual int count() const; virtual void setGeometry(const QRect &); void addItem(QLayoutItem *item /Transfer/, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = 0); void setDefaultPositioning(int n, Qt::Orientation orient); %If (Qt_5_0_0 -) void getItemPosition(int idx, int *row, int *column, int *rowSpan, int *columnSpan) const; %End %If (- Qt_5_0_0) void getItemPosition(int idx, int *row, int *column, int *rowSpan, int *columnSpan); %End %If (Qt_4_3_0 -) void setHorizontalSpacing(int spacing); %End %If (Qt_4_3_0 -) int horizontalSpacing() const; %End %If (Qt_4_3_0 -) void setVerticalSpacing(int spacing); %End %If (Qt_4_3_0 -) int verticalSpacing() const; %End %If (Qt_4_3_0 -) void setSpacing(int spacing); %End %If (Qt_4_3_0 -) int spacing() const; %End %If (Qt_4_4_0 -) QLayoutItem *itemAtPosition(int row, int column) const; %End protected: virtual void addItem(QLayoutItem * /Transfer/); private: QGridLayout(const QGridLayout &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qgroupbox.sip0000644000076500000240000000422612536324426020346 0ustar philstaff00000000000000// qgroupbox.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QGroupBox : QWidget { %TypeHeaderCode #include %End public: explicit QGroupBox(QWidget *parent /TransferThis/ = 0); QGroupBox(const QString &title, QWidget *parent /TransferThis/ = 0); virtual ~QGroupBox(); QString title() const; void setTitle(const QString &); Qt::Alignment alignment() const; void setAlignment(int); virtual QSize minimumSizeHint() const; bool isFlat() const; void setFlat(bool b); bool isCheckable() const; void setCheckable(bool b); bool isChecked() const; public slots: void setChecked(bool b); signals: %If (Qt_4_2_0 -) void clicked(bool checked = false); %End void toggled(bool); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionGroupBox *option) const; %End virtual bool event(QEvent *); virtual void childEvent(QChildEvent *); virtual void resizeEvent(QResizeEvent *); virtual void paintEvent(QPaintEvent *); virtual void focusInEvent(QFocusEvent *); virtual void changeEvent(QEvent *); virtual void mousePressEvent(QMouseEvent *event); virtual void mouseMoveEvent(QMouseEvent *event); virtual void mouseReleaseEvent(QMouseEvent *event); private: QGroupBox(const QGroupBox &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qguiapplication.sip0000644000076500000240000000753412536324426021516 0ustar philstaff00000000000000// qguiapplication.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) class QGuiApplication : QCoreApplication { %TypeHeaderCode #include %End public: QGuiApplication(SIP_PYLIST argv /DocType="list-of-str"/) /PostHook=__pyQtQAppHook__/ [(int &argc, char **argv, int = ApplicationFlags)]; %MethodCode // The Python interface is a list of argument strings that is modified. int argc; char **argv; // Convert the list. if ((argv = qpycore_ArgvToC(a0, argc)) == NULL) sipIsErr = 1; else { // Create it now the arguments are right. static int nargc; nargc = argc; Py_BEGIN_ALLOW_THREADS sipCpp = new sipQGuiApplication(nargc, argv, QCoreApplication::ApplicationFlags); Py_END_ALLOW_THREADS // Now modify the original list. qpycore_UpdatePyArgv(a0, argc, argv); } %End virtual ~QGuiApplication(); static QString platformName(); static QObject *focusObject(); static QScreen *primaryScreen(); static QList screens(); static QCursor *overrideCursor(); static void setOverrideCursor(const QCursor &); static void changeOverrideCursor(const QCursor &); static void restoreOverrideCursor(); static QFont font(); static void setFont(const QFont &); static QClipboard *clipboard(); static QPalette palette(); static void setPalette(const QPalette &pal); static Qt::KeyboardModifiers keyboardModifiers(); static Qt::KeyboardModifiers queryKeyboardModifiers(); static Qt::MouseButtons mouseButtons(); static void setLayoutDirection(Qt::LayoutDirection direction); static Qt::LayoutDirection layoutDirection(); static bool isRightToLeft(); static bool isLeftToRight(); static void setDesktopSettingsAware(bool on); static bool desktopSettingsAware(); static void setQuitOnLastWindowClosed(bool quit); static bool quitOnLastWindowClosed(); static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %If (Py_v3) static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %End virtual bool notify(QObject *, QEvent *); signals: void fontDatabaseChanged(); void screenAdded(QScreen *screen); void lastWindowClosed(); void focusObjectChanged(QObject *focusObject); void commitDataRequest(QSessionManager &sessionManager); void saveStateRequest(QSessionManager &sessionManager); public: static void setApplicationDisplayName(const QString &name); static QString applicationDisplayName(); qreal devicePixelRatio() const; bool isSessionRestored() const; QString sessionId() const; QString sessionKey() const; bool isSavingSession() const; protected: virtual bool event(QEvent *); private: QGuiApplication(const QGuiApplication &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qheaderview.sip0000644000076500000240000001725012536324426020625 0ustar philstaff00000000000000// qheaderview.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QHeaderView : QAbstractItemView { %TypeHeaderCode #include %End public: enum ResizeMode { Interactive, %If (Qt_4_2_0 -) Fixed, %End Stretch, %If (Qt_4_2_0 -) ResizeToContents, %End Custom, }; QHeaderView(Qt::Orientation orientation, QWidget *parent /TransferThis/ = 0); virtual ~QHeaderView(); virtual void setModel(QAbstractItemModel *model /KeepReference/); Qt::Orientation orientation() const; int offset() const; int length() const; virtual QSize sizeHint() const; int sectionSizeHint(int logicalIndex) const; int visualIndexAt(int position) const; int logicalIndexAt(int position) const; int sectionSize(int logicalIndex) const; int sectionPosition(int logicalIndex) const; int sectionViewportPosition(int logicalIndex) const; void moveSection(int from, int to); void resizeSection(int logicalIndex, int size); bool isSectionHidden(int logicalIndex) const; void setSectionHidden(int logicalIndex, bool hide); int count() const /__len__/; int visualIndex(int logicalIndex) const; int logicalIndex(int visualIndex) const; %If (PyQt_Deprecated_5_0) void setMovable(bool movable); %End %If (PyQt_Deprecated_5_0) bool isMovable() const; %End %If (PyQt_Deprecated_5_0) void setClickable(bool clickable); %End %If (PyQt_Deprecated_5_0) bool isClickable() const; %End void setHighlightSections(bool highlight); bool highlightSections() const; %If (PyQt_Deprecated_5_0) void setResizeMode(QHeaderView::ResizeMode mode); %End %If (PyQt_Deprecated_5_0) void setResizeMode(int logicalIndex, QHeaderView::ResizeMode mode); %End %If (PyQt_Deprecated_5_0) QHeaderView::ResizeMode resizeMode(int logicalIndex) const; %End int stretchSectionCount() const; void setSortIndicatorShown(bool show); bool isSortIndicatorShown() const; void setSortIndicator(int logicalIndex, Qt::SortOrder order); int sortIndicatorSection() const; Qt::SortOrder sortIndicatorOrder() const; bool stretchLastSection() const; void setStretchLastSection(bool stretch); bool sectionsMoved() const; public slots: void setOffset(int offset); void headerDataChanged(Qt::Orientation orientation, int logicalFirst, int logicalLast); %If (Qt_4_2_0 -) void setOffsetToSectionPosition(int visualIndex); %End signals: %If (Qt_4_2_0 -) void geometriesChanged(); %End void sectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex); void sectionResized(int logicalIndex, int oldSize, int newSize); void sectionPressed(int logicalIndex); void sectionClicked(int logicalIndex); void sectionDoubleClicked(int logicalIndex); void sectionCountChanged(int oldCount, int newCount); void sectionHandleDoubleClicked(int logicalIndex); %If (- Qt_5_0_0) void sectionAutoResize(int logicalIndex, QHeaderView::ResizeMode mode); %End protected slots: void updateSection(int logicalIndex); void resizeSections(); void sectionsInserted(const QModelIndex &parent, int logicalFirst, int logicalLast); void sectionsAboutToBeRemoved(const QModelIndex &parent, int logicalFirst, int logicalLast); protected: void initialize(); void initializeSections(); void initializeSections(int start, int end); virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &old); virtual bool event(QEvent *e); virtual bool viewportEvent(QEvent *e); virtual void paintEvent(QPaintEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseDoubleClickEvent(QMouseEvent *e); virtual void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const; virtual QSize sectionSizeFromContents(int logicalIndex) const; virtual int horizontalOffset() const; virtual int verticalOffset() const; virtual void updateGeometries(); virtual void scrollContentsBy(int dx, int dy); %If (Qt_5_0_0 -) virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles /DocValue="[]"/ = QVector()); %End %If (- Qt_5_0_0) virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); %End virtual void rowsInserted(const QModelIndex &parent, int start, int end); virtual QRect visualRect(const QModelIndex &index) const; virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint); virtual QModelIndex indexAt(const QPoint &p) const; virtual bool isIndexHidden(const QModelIndex &index) const; virtual QModelIndex moveCursor(QAbstractItemView::CursorAction, Qt::KeyboardModifiers); virtual void setSelection(const QRect &, QFlags); virtual QRegion visualRegionForSelection(const QItemSelection &selection) const; public: int logicalIndexAt(int ax, int ay) const; int logicalIndexAt(const QPoint &apos) const; void hideSection(int alogicalIndex); void showSection(int alogicalIndex); void resizeSections(QHeaderView::ResizeMode mode); int hiddenSectionCount() const; int defaultSectionSize() const; void setDefaultSectionSize(int size); Qt::Alignment defaultAlignment() const; void setDefaultAlignment(Qt::Alignment alignment); bool sectionsHidden() const; %If (Qt_4_2_0 -) void swapSections(int first, int second); %End %If (Qt_4_2_0 -) bool cascadingSectionResizes() const; %End %If (Qt_4_2_0 -) void setCascadingSectionResizes(bool enable); %End %If (Qt_4_2_0 -) int minimumSectionSize() const; %End %If (Qt_4_2_0 -) void setMinimumSectionSize(int size); %End %If (Qt_4_3_0 -) QByteArray saveState() const; %End %If (Qt_4_3_0 -) bool restoreState(const QByteArray &state); %End %If (Qt_4_3_0 -) virtual void reset(); %End public slots: %If (Qt_4_3_0 -) void setOffsetToLastSection(); %End signals: %If (Qt_4_3_0 -) void sectionEntered(int logicalIndex); %End %If (Qt_4_3_0 -) void sortIndicatorChanged(int logicalIndex, Qt::SortOrder order); %End protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionHeader *option) const; %End public: %If (Qt_5_0_0 -) void setSectionsMovable(bool movable); %End %If (Qt_5_0_0 -) bool sectionsMovable() const; %End %If (Qt_5_0_0 -) void setSectionsClickable(bool clickable); %End %If (Qt_5_0_0 -) bool sectionsClickable() const; %End %If (Qt_5_0_0 -) QHeaderView::ResizeMode sectionResizeMode(int logicalIndex) const; %End %If (Qt_5_0_0 -) void setSectionResizeMode(int logicalIndex, QHeaderView::ResizeMode mode); %End %If (Qt_5_0_0 -) void setSectionResizeMode(QHeaderView::ResizeMode mode); %End private: QHeaderView(const QHeaderView &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qicon.sip0000644000076500000240000000772112536324426017434 0ustar philstaff00000000000000// qicon.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QIcon /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: enum Mode { Normal, Disabled, Active, %If (Qt_4_2_0 -) Selected, %End }; enum State { On, Off, }; QIcon(); QIcon(const QPixmap &pixmap); QIcon(const QIcon &other); explicit QIcon(const QString &fileName); explicit QIcon(QIconEngine *engine /Transfer/); %If (Qt_4_3_0 - Qt_5_0_0) explicit QIcon(QIconEngineV2 *engine /Transfer/); %End QIcon(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QIcon(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QIcon(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End ~QIcon(); QPixmap pixmap(const QSize &size, QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) const; QPixmap pixmap(int w, int h, QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) const; QPixmap pixmap(int extent, QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) const; QSize actualSize(const QSize &size, QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) const; %If (Qt_4_5_0 -) QList availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) const; %End void paint(QPainter *painter, const QRect &rect, Qt::Alignment alignment = Qt::AlignCenter, QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) const; void paint(QPainter *painter, int x, int y, int w, int h, Qt::Alignment alignment = Qt::AlignCenter, QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) const; bool isNull() const; bool isDetached() const; %If (PyQt_Deprecated_5_0) int serialNumber() const; %End void addPixmap(const QPixmap &pixmap, QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off); void addFile(const QString &fileName, const QSize &size = QSize(), QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off); %If (Qt_4_3_0 -) qint64 cacheKey() const; %End %If (Qt_4_6_0 -) static QIcon fromTheme(const QString &name, const QIcon &fallback = QIcon()); %End %If (Qt_4_6_0 -) static bool hasThemeIcon(const QString &name); %End %If (Qt_4_6_0 -) static QStringList themeSearchPaths(); %End %If (Qt_4_6_0 -) static void setThemeSearchPaths(const QStringList &searchpath); %End %If (Qt_4_6_0 -) static QString themeName(); %End %If (Qt_4_6_0 -) static void setThemeName(const QString &path); %End %If (Qt_4_7_0 -) QString name() const; %End %If (Qt_4_8_0 -) void swap(QIcon &other); %End }; %If (Qt_4_2_0 -) QDataStream &operator<<(QDataStream &, const QIcon & /Constrained/); %End %If (Qt_4_2_0 -) QDataStream &operator>>(QDataStream &, QIcon & /Constrained/); %End %If (Qt_4_3_0 -) void qSwap(QIcon &value1, QIcon &value2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qiconengine.sip0000644000076500000240000000606412536324426020621 0ustar philstaff00000000000000// qiconengine.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QIconEngine /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: virtual ~QIconEngine(); virtual void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) = 0; virtual QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state); virtual QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state); virtual void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state); virtual void addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state); %If (Qt_5_0_0 -) virtual QString key() const; %End %If (Qt_5_0_0 -) virtual QIconEngine *clone() const = 0 /Factory/; %End %If (Qt_5_0_0 -) virtual bool read(QDataStream &in); %End %If (Qt_5_0_0 -) virtual bool write(QDataStream &out) const; %End %If (Qt_5_0_0 -) enum IconEngineHook { AvailableSizesHook, IconNameHook, }; %End %If (Qt_5_0_0 -) struct AvailableSizesArgument { %TypeHeaderCode #include %End QIcon::Mode mode; QIcon::State state; QList sizes; }; %End %If (Qt_5_0_0 -) virtual QList availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) const; %End %If (Qt_5_0_0 -) virtual QString iconName() const; %End }; %If (Qt_4_3_0 - Qt_5_0_0) class QIconEngineV2 : QIconEngine { %TypeHeaderCode #include %End public: virtual QString key() const; virtual QIconEngineV2 *clone() const /Factory/; virtual bool read(QDataStream &in); virtual bool write(QDataStream &out) const; %If (Qt_4_5_0 -) enum IconEngineHook { AvailableSizesHook, %If (Qt_4_7_0 -) IconNameHook, %End }; %End %If (Qt_4_5_0 -) struct AvailableSizesArgument { %TypeHeaderCode #include %End QIcon::Mode mode; QIcon::State state; QList sizes; }; %End %If (Qt_4_5_0 -) QList availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off); %End %If (Qt_4_7_0 -) QString iconName(); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qidentityproxymodel.sip0000644000076500000240000000551412536324426022456 0ustar philstaff00000000000000// qidentityproxymodel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_8_0 -) class QIdentityProxyModel : QAbstractProxyModel { %TypeHeaderCode #include %End public: explicit QIdentityProxyModel(QObject *parent /TransferThis/ = 0); virtual ~QIdentityProxyModel(); virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex mapFromSource(const QModelIndex &sourceIndex) const; virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const; virtual QModelIndex parent(const QModelIndex &child) const; virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); virtual QItemSelection mapSelectionFromSource(const QItemSelection &selection) const; virtual QItemSelection mapSelectionToSource(const QItemSelection &selection) const; virtual QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags = Qt::MatchStartsWith|Qt::MatchWrap) const; virtual void setSourceModel(QAbstractItemModel *sourceModel /KeepReference/); virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); %If (Qt_5_0_0 -) virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const; %End %If (Qt_5_0_0 -) virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const; %End private: QIdentityProxyModel(const QIdentityProxyModel &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qimage.sip0000644000076500000240000002361412536324426017565 0ustar philstaff00000000000000// qimage.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QImage : QPaintDevice { %TypeHeaderCode #include %End public: enum InvertMode { InvertRgb, InvertRgba, }; enum Format { Format_Invalid, Format_Mono, Format_MonoLSB, Format_Indexed8, Format_RGB32, Format_ARGB32, Format_ARGB32_Premultiplied, %If (Qt_4_2_0 -) Format_RGB16, %End %If (Qt_4_4_0 -) Format_ARGB8565_Premultiplied, %End %If (Qt_4_4_0 -) Format_RGB666, %End %If (Qt_4_4_0 -) Format_ARGB6666_Premultiplied, %End %If (Qt_4_4_0 -) Format_RGB555, %End %If (Qt_4_4_0 -) Format_ARGB8555_Premultiplied, %End %If (Qt_4_4_0 -) Format_RGB888, %End %If (Qt_4_4_0 -) Format_RGB444, %End %If (Qt_4_4_0 -) Format_ARGB4444_Premultiplied, %End }; QImage(); QImage(const QSize &size, QImage::Format format); QImage(int width, int height, QImage::Format format); %If (Qt_4_2_0 -) QImage(const uchar *data /KeepReference/, int width, int height, QImage::Format format); %End %If (- Qt_4_2_0) QImage(uchar *data /KeepReference/, int width, int height, QImage::Format format); %End %If (Qt_4_3_0 -) QImage(void *data, int width, int height, QImage::Format format) [(uchar *data, int width, int height, QImage::Format format)]; %End %If (Qt_4_3_0 -) QImage(const uchar *data /KeepReference/, int width, int height, int bytesPerLine, QImage::Format format); %End %If (Qt_4_3_0 -) QImage(void *data, int width, int height, int bytesPerLine, QImage::Format format) [(uchar *data, int width, int height, int bytesPerLine, QImage::Format format)]; %End explicit QImage(SIP_PYLIST xpm /DocType="list-of-str"/) [(const char **xpm)]; %MethodCode // The Python interface is a list of strings that make up the image. const char **str = QtGui_ListToArray(a0); if (str) { sipCpp = new sipQImage(str); QtGui_DeleteArray(str); } else sipIsErr = 1; %End QImage(const QString &fileName, const char *format = 0); QImage(const QImage &); QImage(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new sipQImage(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new sipQImage(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End virtual ~QImage(); bool isNull() const; virtual int devType() const; bool operator==(const QImage &) const; bool operator!=(const QImage &) const; void detach(); bool isDetached() const; QImage copy(const QRect &rect = QRect()) const; QImage copy(int x, int y, int w, int h) const; QImage::Format format() const; QImage convertToFormat(QImage::Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const; QImage convertToFormat(QImage::Format format, const QVector &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const; int width() const; int height() const; QSize size() const; QRect rect() const; int depth() const; %If (PyQt_Deprecated_5_0) int numColors() const; %End QRgb color(int i) const; void setColor(int i, QRgb c); %If (PyQt_Deprecated_5_0) void setNumColors(int); %End bool allGray() const; bool isGrayscale() const; void *bits() [uchar * ()]; %If (Qt_4_7_0 -) const void *constBits() const [const uchar * ()]; %End %If (PyQt_Deprecated_5_0) int numBytes() const; %End void *scanLine(int) [uchar * (int)]; %If (Qt_4_7_0 -) const void *constScanLine(int) const [const uchar * (int)]; %End int bytesPerLine() const; %If (Qt_4_2_0 -) bool valid(const QPoint &pt) const; %End bool valid(int x, int y) const; %If (Qt_4_2_0 -) int pixelIndex(const QPoint &pt) const; %End int pixelIndex(int x, int y) const; %If (Qt_4_2_0 -) QRgb pixel(const QPoint &pt) const; %End QRgb pixel(int x, int y) const; %If (Qt_4_2_0 -) void setPixel(const QPoint &pt, uint index_or_rgb); %End void setPixel(int x, int y, uint index_or_rgb); QVector colorTable() const; void setColorTable(const QVector colors); %If (Qt_4_8_0 -) void fill(Qt::GlobalColor color /Constrained/); %End %If (Qt_4_8_0 -) void fill(const QColor &color); %End void fill(uint pixel); bool hasAlphaChannel() const; void setAlphaChannel(const QImage &alphaChannel); QImage alphaChannel() const; QImage createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const; QImage createHeuristicMask(bool clipTight = true) const; QImage scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const; QImage scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const; QImage scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const; QImage scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const; QImage transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const; static QMatrix trueMatrix(const QMatrix &, int w, int h); QImage mirrored(bool horizontal = false, bool vertical = true) const; QImage rgbSwapped() const; void invertPixels(QImage::InvertMode mode = QImage::InvertRgb); bool load(QIODevice *device, const char *format); bool load(const QString &fileName, const char *format = 0); bool loadFromData(const uchar *data /Array/, int len /ArraySize/, const char *format = 0); bool loadFromData(const QByteArray &data, const char *format = 0); %If (Qt_4_2_0 -) bool save(const QString &fileName, const char *format = 0, int quality = -1) const; %End %If (- Qt_4_2_0) bool save(const QString &fileName, const char *format, int quality = -1) const; %End %If (Qt_4_2_0 -) bool save(QIODevice *device, const char *format = 0, int quality = -1) const; %End %If (- Qt_4_2_0) bool save(QIODevice *device, const char *format, int quality = -1) const; %End static QImage fromData(const uchar *data /Array/, int size /ArraySize/, const char *format = 0); static QImage fromData(const QByteArray &data, const char *format = 0); %If (PyQt_Deprecated_5_0) int serialNumber() const; %End virtual QPaintEngine *paintEngine() const; int dotsPerMeterX() const; int dotsPerMeterY() const; void setDotsPerMeterX(int); void setDotsPerMeterY(int); QPoint offset() const; void setOffset(const QPoint &); QStringList textKeys() const; QString text(const QString &key /DocValue="Py_v3:''"/ = QString()) const; void setText(const QString &key, const QString &value); protected: virtual int metric(QPaintDevice::PaintDeviceMetric metric) const; public: %If (Qt_4_3_0 -) QImage createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const; %End %If (Qt_4_3_0 -) QImage transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const; %End %If (Qt_4_3_0 -) static QTransform trueMatrix(const QTransform &, int w, int h); %End %If (Qt_4_3_0 -) qint64 cacheKey() const; %End %If (Qt_4_6_0 -) int colorCount() const; %End %If (Qt_4_6_0 -) void setColorCount(int); %End %If (Qt_4_6_0 -) int byteCount() const; %End %If (Qt_4_7_0 -) int bitPlaneCount() const; %End %If (Qt_4_8_0 -) void swap(QImage &other); %End %If (Qt_5_0_0 -) qreal devicePixelRatio() const; %End %If (Qt_5_0_0 -) void setDevicePixelRatio(qreal scaleFactor); %End }; QDataStream &operator<<(QDataStream &, const QImage & /Constrained/); QDataStream &operator>>(QDataStream &, QImage & /Constrained/); %If (Qt_4_3_0 -) void qSwap(QImage &value1, QImage &value2); %End %ModuleHeaderCode const char **QtGui_ListToArray(PyObject *lst); void QtGui_DeleteArray(const char **arr); %End %ModuleCode // Convert a list of strings to an array of ASCII strings on the heap. Used by // QImage and QPixmap. const char **QtGui_ListToArray(PyObject *lst) { SIP_SSIZE_T nstr = PyList_Size(lst); const char **arr = new const char *[nstr + 1]; for (SIP_SSIZE_T i = 0; i < nstr; ++i) { PyObject *ascii_obj = PyList_GetItem(lst, i); const char *ascii = sipString_AsASCIIString(&ascii_obj); if (!ascii) { while (i-- > 0) delete[] arr[i]; delete[] arr; return 0; } // Copy the string. arr[i] = qstrdup(ascii); Py_DECREF(ascii_obj); } // The sentinal. arr[nstr] = 0; return arr; } // Return a string array created by QtGui_ListToArray() to the heap. void QtGui_DeleteArray(const char **arr) { for (SIP_SSIZE_T i = 0; arr[i]; ++i) delete[] arr[i]; delete[] arr; } %End PyQt-x11-gpl-4.11.4/sip/QtGui/qimageiohandler.sip0000644000076500000240000000436212536324426021452 0ustar philstaff00000000000000// qimageiohandler.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QImageIOHandler { %TypeHeaderCode #include %End public: enum ImageOption { Size, ClipRect, Description, ScaledClipRect, ScaledSize, CompressionRatio, Gamma, Quality, Name, SubType, IncrementalReading, Endianness, Animation, BackgroundColor, }; QImageIOHandler(); virtual ~QImageIOHandler(); void setDevice(QIODevice *device); QIODevice *device() const; void setFormat(const QByteArray &format); QByteArray format() const; virtual QByteArray name() const; virtual bool canRead() const = 0; virtual bool read(QImage *image) = 0; virtual bool write(const QImage &image); virtual QVariant option(QImageIOHandler::ImageOption option) const; virtual void setOption(QImageIOHandler::ImageOption option, const QVariant &value); virtual bool supportsOption(QImageIOHandler::ImageOption option) const; virtual bool jumpToNextImage(); virtual bool jumpToImage(int imageNumber); virtual int loopCount() const; virtual int imageCount() const; virtual int nextImageDelay() const; virtual int currentImageNumber() const; virtual QRect currentImageRect() const; private: QImageIOHandler(const QImageIOHandler &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qimagereader.sip0000644000076500000240000000625712536324426020754 0ustar philstaff00000000000000// qimagereader.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QImageReader { %TypeHeaderCode #include %End public: enum ImageReaderError { UnknownError, FileNotFoundError, DeviceError, UnsupportedFormatError, InvalidDataError, }; QImageReader(); QImageReader(QIODevice *device, const QByteArray &format = QByteArray()); QImageReader(const QString &fileName, const QByteArray &format = QByteArray()); ~QImageReader(); void setFormat(const QByteArray &format); QByteArray format() const; void setDevice(QIODevice *device); QIODevice *device() const; void setFileName(const QString &fileName); QString fileName() const; QSize size() const; void setClipRect(const QRect &rect); QRect clipRect() const; void setScaledSize(const QSize &size); QSize scaledSize() const; void setScaledClipRect(const QRect &rect); QRect scaledClipRect() const; bool canRead() const; QImage read() /ReleaseGIL/; %If (Qt_4_2_0 -) bool read(QImage *image) /ReleaseGIL/; %End bool jumpToNextImage(); bool jumpToImage(int imageNumber); int loopCount() const; int imageCount() const; int nextImageDelay() const; int currentImageNumber() const; QRect currentImageRect() const; QImageReader::ImageReaderError error() const; QString errorString() const; static QByteArray imageFormat(const QString &fileName); static QByteArray imageFormat(QIODevice *device); static QList supportedImageFormats(); QStringList textKeys() const; QString text(const QString &key) const; void setBackgroundColor(const QColor &color); QColor backgroundColor() const; bool supportsAnimation() const; %If (Qt_4_2_0 -) void setQuality(int quality); %End %If (Qt_4_2_0 -) int quality() const; %End %If (Qt_4_2_0 -) bool supportsOption(QImageIOHandler::ImageOption option) const; %End %If (Qt_4_5_0 -) void setAutoDetectImageFormat(bool enabled); %End %If (Qt_4_5_0 -) bool autoDetectImageFormat() const; %End %If (Qt_4_5_0 -) QImage::Format imageFormat() const; %End %If (Qt_4_6_0 -) void setDecideFormatFromContent(bool ignored); %End %If (Qt_4_6_0 -) bool decideFormatFromContent() const; %End private: QImageReader(const QImageReader &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qimagewriter.sip0000644000076500000240000000435712536324426021025 0ustar philstaff00000000000000// qimagewriter.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QImageWriter { %TypeHeaderCode #include %End public: enum ImageWriterError { UnknownError, DeviceError, UnsupportedFormatError, }; QImageWriter(); QImageWriter(QIODevice *device, const QByteArray &format); QImageWriter(const QString &fileName, const QByteArray &format = QByteArray()); ~QImageWriter(); void setFormat(const QByteArray &format); QByteArray format() const; void setDevice(QIODevice *device); QIODevice *device() const; void setFileName(const QString &fileName); QString fileName() const; void setQuality(int quality); int quality() const; void setGamma(float gamma); float gamma() const; void setDescription(const QString &description); QString description() const; bool canWrite() const; bool write(const QImage &image) /ReleaseGIL/; QImageWriter::ImageWriterError error() const; QString errorString() const; static QList supportedImageFormats(); void setText(const QString &key, const QString &text); %If (Qt_4_2_0 -) bool supportsOption(QImageIOHandler::ImageOption option) const; %End %If (Qt_4_3_0 -) void setCompression(int compression); %End %If (Qt_4_3_0 -) int compression() const; %End private: QImageWriter(const QImageWriter &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qinputcontext.sip0000644000076500000240000000356112536324426021246 0ustar philstaff00000000000000// qinputcontext.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) class QInputContext : QObject { %TypeHeaderCode #include %End public: explicit QInputContext(QObject *parent /TransferThis/ = 0); virtual ~QInputContext(); virtual QString identifierName() = 0; virtual QString language() = 0; virtual void reset() = 0; virtual void update(); virtual void mouseHandler(int x, QMouseEvent *event); virtual QFont font() const; virtual bool isComposing() const = 0; QWidget *focusWidget() const; virtual void setFocusWidget(QWidget *w); virtual void widgetDestroyed(QWidget *w); virtual QList actions(); virtual bool filterEvent(const QEvent *event); void sendEvent(const QInputMethodEvent &event); enum StandardFormat { PreeditFormat, SelectionFormat, }; QTextFormat standardFormat(QInputContext::StandardFormat s) const; private: QInputContext(const QInputContext &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qinputcontextfactory.sip0000644000076500000240000000252312536324426022633 0ustar philstaff00000000000000// qinputcontextfactory.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) class QInputContextFactory { %TypeHeaderCode #include %End public: static QStringList keys(); static QInputContext *create(const QString &key, QObject *parent /TransferThis/) /Factory/; static QStringList languages(const QString &key); static QString displayName(const QString &key); static QString description(const QString &key); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qinputdialog.sip0000644000076500000240000002032012536324426021011 0ustar philstaff00000000000000// qinputdialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QInputDialog : QDialog { %TypeHeaderCode #include %End public: %If (Qt_4_5_0 -) enum InputDialogOption { NoButtons, UseListViewForComboBoxItems, }; %End %If (Qt_4_5_0 -) typedef QFlags InputDialogOptions; %End %If (Qt_4_5_0 -) enum InputMode { TextInput, IntInput, DoubleInput, }; %End %If (Qt_5_0_0 -) static QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode echo = QLineEdit::Normal, const QString &text = QString(), bool *ok = 0, Qt::WindowFlags flags = 0, Qt::InputMethodHints inputMethodHints = Qt::ImhNone); %End %If (Qt_4_2_0 - Qt_5_0_0) static QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text /DocValue="Py_v3:''"/ = QString(), bool *ok = 0, Qt::WindowFlags flags = 0) /ReleaseGIL/; %End %If (Qt_4_8_0 - Qt_5_0_0) static QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode, const QString &text, bool *ok, Qt::WindowFlags flags, Qt::InputMethodHints inputMethodHints); %End %If (- Qt_4_2_0) static QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode = QLineEdit::Normal, const QString &text /DocValue="Py_v3:''"/ = QString(), bool *ok = 0, Qt::WFlags flags = 0) /ReleaseGIL/; %End %If (Qt_4_5_0 -) static int getInt(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = 0, Qt::WindowFlags flags = 0); %End %If (Qt_4_2_0 -) %If (PyQt_Deprecated_5_0) static int getInteger(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = 0, Qt::WindowFlags flags = 0) /ReleaseGIL/; %End %End %If (- Qt_4_2_0) static int getInteger(QWidget *parent, const QString &title, const QString &label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, bool *ok = 0, Qt::WFlags flags = 0) /ReleaseGIL/; %End %If (Qt_4_2_0 -) static double getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = 0, Qt::WindowFlags flags = 0) /ReleaseGIL/; %End %If (- Qt_4_2_0) static double getDouble(QWidget *parent, const QString &title, const QString &label, double value = 0, double min = -2147483647, double max = 2147483647, int decimals = 1, bool *ok = 0, Qt::WFlags flags = 0) /ReleaseGIL/; %End %If (Qt_5_0_0 -) static QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, int current = 0, bool editable = true, bool *ok = 0, Qt::WindowFlags flags = 0, Qt::InputMethodHints inputMethodHints = Qt::ImhNone); %End %If (Qt_4_2_0 - Qt_5_0_0) static QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &list, int current = 0, bool editable = true, bool *ok = 0, Qt::WindowFlags flags = 0) /ReleaseGIL/; %End %If (Qt_4_8_0 - Qt_5_0_0) static QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &list, int current, bool editable, bool *ok, Qt::WindowFlags flags, Qt::InputMethodHints inputMethodHints); %End %If (- Qt_4_2_0) static QString getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &list, int current = 0, bool editable = true, bool *ok = 0, Qt::WFlags flags = 0) /ReleaseGIL/; %End %If (Qt_4_5_0 -) QInputDialog(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End private: QInputDialog(const QInputDialog &); public: %If (Qt_4_5_0 -) virtual ~QInputDialog(); %End private: %If (- Qt_4_5_0) virtual ~QInputDialog(); %End public: %If (Qt_4_5_0 -) void setInputMode(QInputDialog::InputMode mode); %End %If (Qt_4_5_0 -) QInputDialog::InputMode inputMode() const; %End %If (Qt_4_5_0 -) void setLabelText(const QString &text); %End %If (Qt_4_5_0 -) QString labelText() const; %End %If (Qt_4_5_0 -) void setOption(QInputDialog::InputDialogOption option, bool on = true); %End %If (Qt_4_5_0 -) bool testOption(QInputDialog::InputDialogOption option) const; %End %If (Qt_4_5_0 -) void setOptions(QFlags options); %End %If (Qt_4_5_0 -) QFlags options() const; %End %If (Qt_4_5_0 -) void setTextValue(const QString &text); %End %If (Qt_4_5_0 -) QString textValue() const; %End %If (Qt_4_5_0 -) void setTextEchoMode(QLineEdit::EchoMode mode); %End %If (Qt_4_5_0 -) QLineEdit::EchoMode textEchoMode() const; %End %If (Qt_4_5_0 -) void setComboBoxEditable(bool editable); %End %If (Qt_4_5_0 -) bool isComboBoxEditable() const; %End %If (Qt_4_5_0 -) void setComboBoxItems(const QStringList &items); %End %If (Qt_4_5_0 -) QStringList comboBoxItems() const; %End %If (Qt_4_5_0 -) void setIntValue(int value); %End %If (Qt_4_5_0 -) int intValue() const; %End %If (Qt_4_5_0 -) void setIntMinimum(int min); %End %If (Qt_4_5_0 -) int intMinimum() const; %End %If (Qt_4_5_0 -) void setIntMaximum(int max); %End %If (Qt_4_5_0 -) int intMaximum() const; %End %If (Qt_4_5_0 -) void setIntRange(int min, int max); %End %If (Qt_4_5_0 -) void setIntStep(int step); %End %If (Qt_4_5_0 -) int intStep() const; %End %If (Qt_4_5_0 -) void setDoubleValue(double value); %End %If (Qt_4_5_0 -) double doubleValue() const; %End %If (Qt_4_5_0 -) void setDoubleMinimum(double min); %End %If (Qt_4_5_0 -) double doubleMinimum() const; %End %If (Qt_4_5_0 -) void setDoubleMaximum(double max); %End %If (Qt_4_5_0 -) double doubleMaximum() const; %End %If (Qt_4_5_0 -) void setDoubleRange(double min, double max); %End %If (Qt_4_5_0 -) void setDoubleDecimals(int decimals); %End %If (Qt_4_5_0 -) int doubleDecimals() const; %End %If (Qt_4_5_0 -) void setOkButtonText(const QString &text); %End %If (Qt_4_5_0 -) QString okButtonText() const; %End %If (Qt_4_5_0 -) void setCancelButtonText(const QString &text); %End %If (Qt_4_5_0 -) QString cancelButtonText() const; %End %If (Qt_5_0_0 -) virtual void open(); %End %If (Qt_4_5_0 - Qt_5_0_0) void open(); %End %If (Qt_4_5_0 -) void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; %End %If (Qt_4_5_0 -) virtual QSize minimumSizeHint() const; %End %If (Qt_4_5_0 -) virtual QSize sizeHint() const; %End %If (Qt_4_5_0 -) virtual void setVisible(bool visible); %End %If (Qt_4_5_0 -) virtual void done(int result); %End signals: %If (Qt_4_5_0 -) void textValueChanged(const QString &text); %End %If (Qt_4_5_0 -) void textValueSelected(const QString &text); %End %If (Qt_4_5_0 -) void intValueChanged(int value); %End %If (Qt_4_5_0 -) void intValueSelected(int value); %End %If (Qt_4_5_0 -) void doubleValueChanged(double value); %End %If (Qt_4_5_0 -) void doubleValueSelected(double value); %End }; %If (Qt_4_5_0 -) QFlags operator|(QInputDialog::InputDialogOption f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qitemdelegate.sip0000644000076500000240000000574512536324426021141 0ustar philstaff00000000000000// qitemdelegate.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QItemDelegate : QAbstractItemDelegate { %TypeHeaderCode #include %End public: explicit QItemDelegate(QObject *parent /TransferThis/ = 0); virtual ~QItemDelegate(); virtual void paint(QPainter *painter, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const; virtual QSize sizeHint(const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const; virtual QWidget *createEditor(QWidget *parent /TransferThis/, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const /Factory/; virtual void setEditorData(QWidget *editor, const QModelIndex &index) const; virtual void setModelData(QWidget *editor, QAbstractItemModel *model /KeepReference/, const QModelIndex &index) const; virtual void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const; QItemEditorFactory *itemEditorFactory() const; void setItemEditorFactory(QItemEditorFactory *factory /KeepReference/); %If (Qt_4_2_0 -) bool hasClipping() const; %End %If (Qt_4_2_0 -) void setClipping(bool clip); %End protected: %If (Qt_4_2_0 -) void drawBackground(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; %End virtual void drawCheck(QPainter *painter, const QStyleOptionViewItem &option /NoCopy/, const QRect &rect, Qt::CheckState state) const; virtual void drawDecoration(QPainter *painter, const QStyleOptionViewItem &option /NoCopy/, const QRect &rect, const QPixmap &pixmap) const; virtual void drawDisplay(QPainter *painter, const QStyleOptionViewItem &option /NoCopy/, const QRect &rect, const QString &text) const; virtual void drawFocus(QPainter *painter, const QStyleOptionViewItem &option /NoCopy/, const QRect &rect) const; virtual bool eventFilter(QObject *object, QEvent *event); virtual bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index); private: QItemDelegate(const QItemDelegate &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qitemeditorfactory.sip0000644000076500000240000000421712536324426022236 0ustar philstaff00000000000000// qitemeditorfactory.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QItemEditorCreatorBase /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: virtual ~QItemEditorCreatorBase(); virtual QWidget *createWidget(QWidget *parent /TransferThis/) const = 0 /Factory/; virtual QByteArray valuePropertyName() const = 0; }; class QItemEditorFactory /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: QItemEditorFactory(); virtual ~QItemEditorFactory(); %If (Qt_5_0_0 -) virtual QWidget *createEditor(int userType, QWidget *parent /TransferThis/) const; %End %If (- Qt_5_0_0) virtual QWidget *createEditor(QVariant::Type type, QWidget *parent /TransferThis/) const /Factory/; %End %If (Qt_5_0_0 -) virtual QByteArray valuePropertyName(int userType) const; %End %If (- Qt_5_0_0) virtual QByteArray valuePropertyName(QVariant::Type type) const; %End %If (Qt_5_0_0 -) void registerEditor(int userType, QItemEditorCreatorBase *creator /Transfer/); %End %If (- Qt_5_0_0) void registerEditor(QVariant::Type type, QItemEditorCreatorBase *creator /Transfer/); %End static const QItemEditorFactory *defaultFactory(); static void setDefaultFactory(QItemEditorFactory *factory /Transfer/); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qitemselectionmodel.sip0000644000076500000240000002402112536324426022361 0ustar philstaff00000000000000// qitemselectionmodel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QItemSelectionRange { %TypeHeaderCode #include %End public: QItemSelectionRange(); QItemSelectionRange(const QItemSelectionRange &other); QItemSelectionRange(const QModelIndex &atopLeft, const QModelIndex &abottomRight); explicit QItemSelectionRange(const QModelIndex &index); int top() const; int left() const; int bottom() const; int right() const; int width() const; int height() const; %If (Qt_5_0_0 -) const QPersistentModelIndex &topLeft() const; %End %If (- Qt_5_0_0) QModelIndex topLeft() const; %End %If (Qt_5_0_0 -) const QPersistentModelIndex &bottomRight() const; %End %If (- Qt_5_0_0) QModelIndex bottomRight() const; %End QModelIndex parent() const; const QAbstractItemModel *model() const; bool contains(const QModelIndex &index) const; %If (Qt_4_2_0 -) bool contains(int row, int column, const QModelIndex &parentIndex) const; %End bool intersects(const QItemSelectionRange &other) const; %If (PyQt_Deprecated_5_0) QItemSelectionRange intersect(const QItemSelectionRange &other) const; %End bool operator==(const QItemSelectionRange &other) const; bool operator!=(const QItemSelectionRange &other) const; bool isValid() const; QModelIndexList indexes() const; %If (Qt_4_2_0 -) QItemSelectionRange intersected(const QItemSelectionRange &other) const; %End long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End %If (Qt_4_7_0 -) bool isEmpty() const; %End %If (Qt_4_8_0 -) bool operator<(const QItemSelectionRange &other) const; %End }; class QItemSelectionModel : QObject { %TypeHeaderCode #include %End public: enum SelectionFlag { NoUpdate, Clear, Select, Deselect, Toggle, Current, Rows, Columns, SelectCurrent, ToggleCurrent, ClearAndSelect, }; typedef QFlags SelectionFlags; explicit QItemSelectionModel(QAbstractItemModel *model /TransferThis/); QItemSelectionModel(QAbstractItemModel *model, QObject *parent /TransferThis/); virtual ~QItemSelectionModel(); QModelIndex currentIndex() const; bool isSelected(const QModelIndex &index) const; bool isRowSelected(int row, const QModelIndex &parent) const; bool isColumnSelected(int column, const QModelIndex &parent) const; bool rowIntersectsSelection(int row, const QModelIndex &parent) const; bool columnIntersectsSelection(int column, const QModelIndex &parent) const; QModelIndexList selectedIndexes() const; const QItemSelection selection() const; const QAbstractItemModel *model() const; public slots: virtual void clear(); %If (Qt_4_2_0 -) void clearSelection(); %End virtual void reset(); virtual void select(const QModelIndex &index, QFlags command); virtual void select(const QItemSelection &selection, QFlags command); %If (Qt_5_0_0 -) virtual void setCurrentIndex(const QModelIndex &index, QFlags command); %End %If (- Qt_5_0_0) void setCurrentIndex(const QModelIndex &index, QFlags command); %End %If (Qt_5_0_0 -) virtual void clearCurrentIndex(); %End signals: void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); void currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous); void currentColumnChanged(const QModelIndex ¤t, const QModelIndex &previous); protected: void emitSelectionChanged(const QItemSelection &newSelection, const QItemSelection &oldSelection); public: %If (Qt_4_2_0 -) bool hasSelection() const; %End %If (Qt_4_2_0 -) QModelIndexList selectedRows(int column = 0) const; %End %If (Qt_4_2_0 -) QModelIndexList selectedColumns(int row = 0) const; %End private: QItemSelectionModel(const QItemSelectionModel &); }; QFlags operator|(QItemSelectionModel::SelectionFlag f1, QFlags f2); class QItemSelection { %TypeHeaderCode #include %End public: QItemSelection(); QItemSelection(const QModelIndex &topLeft, const QModelIndex &bottomRight); void select(const QModelIndex &topLeft, const QModelIndex &bottomRight); bool contains(const QModelIndex &index) const; int __contains__(const QModelIndex &index); %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End QModelIndexList indexes() const; void merge(const QItemSelection &other, QFlags command); static void split(const QItemSelectionRange &range, const QItemSelectionRange &other, QItemSelection *result); void __setitem__(int i, const QItemSelectionRange &range); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else (*sipCpp)[a0] = *a1; %End void __setitem__(SIP_PYSLICE slice, const QItemSelection &list); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { int vlen = a1->count(); if (vlen != slicelength) { sipBadLengthForSlice(vlen, slicelength); sipIsErr = 1; } else { QItemSelection::const_iterator it = a1->begin(); for (i = 0; i < slicelength; ++i) { (*sipCpp)[start] = *it; start += step; ++it; } } } %End void __delitem__(int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipCpp->removeAt(a0); %End void __delitem__(SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else for (i = 0; i < slicelength; ++i) { sipCpp->removeAt(start); start += step - 1; } %End QItemSelectionRange operator[](int i); %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = new QItemSelectionRange(sipCpp->operator[]((int)idx)); %End QItemSelection operator[](SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { sipRes = new QItemSelection(); for (i = 0; i < slicelength; ++i) { (*sipRes) += (*sipCpp)[start]; start += step; } } %End // Methods inherited from QList. bool operator!=(const QItemSelection &other) const; bool operator==(const QItemSelection &other) const; // Keep the following in sync with QStringList (except for mid()). void clear(); bool isEmpty() const; void append(const QItemSelectionRange &range); void prepend(const QItemSelectionRange &range); void insert(int i, const QItemSelectionRange &range); void replace(int i, const QItemSelectionRange &range); void removeAt(int i); int removeAll(const QItemSelectionRange &range); QItemSelectionRange takeAt(int i); QItemSelectionRange takeFirst(); QItemSelectionRange takeLast(); void move(int from, int to); void swap(int i, int j); int count(const QItemSelectionRange &range) const; int count() const /__len__/; QItemSelectionRange &first(); QItemSelectionRange &last(); int indexOf(const QItemSelectionRange &value, int from = 0) const; int lastIndexOf(const QItemSelectionRange &value, int from = -1) const; QItemSelection &operator+=(const QItemSelection &other); QItemSelection &operator+=(const QItemSelectionRange &value); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qkeyeventtransition.sip0000644000076500000240000000315312536324426022444 0ustar philstaff00000000000000// qkeyeventtransition.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QKeyEventTransition : QEventTransition { %TypeHeaderCode #include %End public: QKeyEventTransition(QState *sourceState /TransferThis/ = 0); QKeyEventTransition(QObject *object /KeepReference=10/, QEvent::Type type, int key, QState *sourceState /TransferThis/ = 0); virtual ~QKeyEventTransition(); int key() const; void setKey(int key); Qt::KeyboardModifiers modifierMask() const; void setModifierMask(Qt::KeyboardModifiers modifiers); protected: virtual void onTransition(QEvent *event); virtual bool eventTest(QEvent *event); private: QKeyEventTransition(const QKeyEventTransition &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qkeysequence.sip0000644000076500000240000001555012536324426021024 0ustar philstaff00000000000000// qkeysequence.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QKeySequence { %TypeHeaderCode #include %End %ConvertToTypeCode // Allow a StandardKey, QString or an integer whenever a QKeySequence is // expected. if (sipIsErr == NULL) { if (sipCanConvertToType(sipPy, sipType_QKeySequence, SIP_NO_CONVERTORS)) return 1; #if QT_VERSION >= 0x040200 if (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_QKeySequence_StandardKey))) return 1; #endif if (sipCanConvertToType(sipPy, sipType_QString, 0)) return 1; PyErr_Clear(); SIPLong_AsLong(sipPy); return !PyErr_Occurred(); } if (sipCanConvertToType(sipPy, sipType_QKeySequence, SIP_NO_CONVERTORS)) { *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QKeySequence, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; } #if QT_VERSION >= 0x040200 if (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_QKeySequence_StandardKey))) { *sipCppPtr = new QKeySequence((QKeySequence::StandardKey)SIPLong_AsLong(sipPy)); return sipGetState(sipTransferObj); } #endif if (sipCanConvertToType(sipPy, sipType_QString, 0)) { int state; QString *qs = reinterpret_cast(sipConvertToType(sipPy, sipType_QString, 0, 0, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(qs, sipType_QString, state); return 0; } *sipCppPtr = new QKeySequence(*qs); sipReleaseType(qs, sipType_QString, state); return sipGetState(sipTransferObj); } int key = SIPLong_AsLong(sipPy); *sipCppPtr = new QKeySequence(key); return sipGetState(sipTransferObj); %End %PickleCode sipRes = Py_BuildValue((char *)"iiii", sipCpp->operator[](0), sipCpp->operator[](1), sipCpp->operator[](2), sipCpp->operator[](3)); %End public: enum SequenceFormat { NativeText, PortableText, }; enum SequenceMatch { NoMatch, PartialMatch, ExactMatch, }; %If (Qt_4_2_0 -) enum StandardKey { UnknownKey, HelpContents, WhatsThis, Open, Close, Save, New, Delete, Cut, Copy, Paste, Undo, Redo, Back, Forward, Refresh, ZoomIn, ZoomOut, Print, AddTab, NextChild, PreviousChild, Find, FindNext, FindPrevious, Replace, SelectAll, Bold, Italic, Underline, MoveToNextChar, MoveToPreviousChar, MoveToNextWord, MoveToPreviousWord, MoveToNextLine, MoveToPreviousLine, MoveToNextPage, MoveToPreviousPage, MoveToStartOfLine, MoveToEndOfLine, MoveToStartOfBlock, MoveToEndOfBlock, MoveToStartOfDocument, MoveToEndOfDocument, SelectNextChar, SelectPreviousChar, SelectNextWord, SelectPreviousWord, SelectNextLine, SelectPreviousLine, SelectNextPage, SelectPreviousPage, SelectStartOfLine, SelectEndOfLine, SelectStartOfBlock, SelectEndOfBlock, SelectStartOfDocument, SelectEndOfDocument, DeleteStartOfWord, DeleteEndOfWord, DeleteEndOfLine, %If (Qt_4_5_0 -) InsertParagraphSeparator, %End %If (Qt_4_5_0 -) InsertLineSeparator, %End %If (Qt_4_5_0 -) SaveAs, %End %If (Qt_4_6_0 -) Preferences, %End %If (Qt_4_6_0 -) Quit, %End %If (Qt_5_0_0 -) FullScreen, %End }; %End QKeySequence(); QKeySequence(const QKeySequence &ks); %If (Qt_5_0_0 -) QKeySequence(const QString &key, QKeySequence::SequenceFormat format = QKeySequence::NativeText); %End %If (Qt_4_7_0 - Qt_5_0_0) QKeySequence(const QString &key, QKeySequence::SequenceFormat format); %End QKeySequence(int k1, int key2 = 0, int key3 = 0, int key4 = 0); QKeySequence(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QKeySequence(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QKeySequence(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End ~QKeySequence(); %If (Qt_5_0_0 -) int count() const /__len__/; %End %If (- Qt_5_0_0) uint count() const /__len__/; %End bool isEmpty() const; QKeySequence::SequenceMatch matches(const QKeySequence &seq) const; static QKeySequence mnemonic(const QString &text); %If (PyQt_Deprecated_5_0) operator QString() const; %End %If (PyQt_Deprecated_5_0) operator int() const; %End int operator[](int i) const; %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = sipCpp->operator[]((uint)idx); %End bool operator==(const QKeySequence &other) const; bool operator!=(const QKeySequence &other) const; bool operator<(const QKeySequence &ks) const; bool operator>(const QKeySequence &other) const; bool operator<=(const QKeySequence &other) const; bool operator>=(const QKeySequence &other) const; bool isDetached() const; QString toString(QKeySequence::SequenceFormat format = QKeySequence::PortableText) const; static QKeySequence fromString(const QString &str, QKeySequence::SequenceFormat format = QKeySequence::PortableText); %If (Qt_4_2_0 -) static QList keyBindings(QKeySequence::StandardKey key); %End %If (Qt_4_8_0 -) void swap(QKeySequence &other); %End }; QDataStream &operator<<(QDataStream &in, const QKeySequence &ks /Constrained/); QDataStream &operator>>(QDataStream &out, QKeySequence &ks /Constrained/); %If (Qt_4_3_0 -) void qSwap(QKeySequence &value1, QKeySequence &value2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qlabel.sip0000644000076500000240000000737012536324426017563 0ustar philstaff00000000000000// qlabel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QLabel : QFrame { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QLabel(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QLabel(QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End %If (Qt_4_2_0 -) QLabel(const QString &text, QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QLabel(const QString &text, QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End virtual ~QLabel(); QString text() const; const QPixmap *pixmap() const; const QPicture *picture() const; QMovie *movie() const; Qt::TextFormat textFormat() const; void setTextFormat(Qt::TextFormat); Qt::Alignment alignment() const; void setAlignment(Qt::Alignment); void setWordWrap(bool on); bool wordWrap() const; int indent() const; void setIndent(int); int margin() const; void setMargin(int); bool hasScaledContents() const; void setScaledContents(bool); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void setBuddy(QWidget * /KeepReference/); QWidget *buddy() const; virtual int heightForWidth(int) const; %If (Qt_4_2_0 -) bool openExternalLinks() const; %End %If (Qt_4_2_0 -) void setTextInteractionFlags(Qt::TextInteractionFlags flags); %End %If (Qt_4_2_0 -) Qt::TextInteractionFlags textInteractionFlags() const; %End %If (Qt_4_2_0 -) void setOpenExternalLinks(bool open); %End public slots: void clear(); void setMovie(QMovie *movie /KeepReference/); void setNum(double /Constrained/); void setNum(int); void setPicture(const QPicture &); void setPixmap(const QPixmap &); void setText(const QString &); signals: %If (Qt_4_2_0 -) void linkActivated(const QString &link); %End %If (Qt_4_2_0 -) void linkHovered(const QString &link); %End protected: virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); virtual void changeEvent(QEvent *); %If (Qt_4_2_0 -) virtual void keyPressEvent(QKeyEvent *ev); %End %If (Qt_4_2_0 -) virtual void mousePressEvent(QMouseEvent *ev); %End %If (Qt_4_2_0 -) virtual void mouseMoveEvent(QMouseEvent *ev); %End %If (Qt_4_2_0 -) virtual void mouseReleaseEvent(QMouseEvent *ev); %End %If (Qt_4_2_0 -) virtual void contextMenuEvent(QContextMenuEvent *ev); %End %If (Qt_4_2_0 -) virtual void focusInEvent(QFocusEvent *ev); %End %If (Qt_4_2_0 -) virtual void focusOutEvent(QFocusEvent *ev); %End %If (Qt_4_2_0 -) virtual bool focusNextPrevChild(bool next); %End public: %If (Qt_4_7_0 -) void setSelection(int, int); %End %If (Qt_4_7_0 -) bool hasSelectedText() const; %End %If (Qt_4_7_0 -) QString selectedText() const; %End %If (Qt_4_7_0 -) int selectionStart() const; %End private: QLabel(const QLabel &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qlayout.sip0000644000076500000240000001333712536324426020021 0ustar philstaff00000000000000// qlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QLayout : QObject, QLayoutItem { %TypeHeaderCode #include %End public: enum SizeConstraint { SetDefaultConstraint, SetNoConstraint, SetMinimumSize, SetFixedSize, SetMaximumSize, SetMinAndMaxSize, }; QLayout(QWidget *parent /TransferThis/); QLayout(); virtual ~QLayout(); int margin() const; int spacing() const; void setMargin(int); void setSpacing(int); bool setAlignment(QWidget *w, Qt::Alignment alignment); bool setAlignment(QLayout *l, Qt::Alignment alignment); void setAlignment(Qt::Alignment alignment); void setSizeConstraint(QLayout::SizeConstraint); QLayout::SizeConstraint sizeConstraint() const; void setMenuBar(QWidget *w /GetWrapper/); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->setMenuBar(a0); Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (a0 && parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a0Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows setMenuBar(QWidget()). sipTransferTo(a0Wrapper, sipSelf); } %End QWidget *menuBar() const; QWidget *parentWidget() const; virtual void invalidate(); virtual QRect geometry() const; bool activate(); void update(); void addWidget(QWidget *w /GetWrapper/); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->addWidget(a0); Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a0Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows addWidget(QWidget()). sipTransferTo(a0Wrapper, sipSelf); } %End virtual void addItem(QLayoutItem * /Transfer/) = 0; void removeWidget(QWidget *w); void removeItem(QLayoutItem * /TransferBack/); virtual Qt::Orientations expandingDirections() const; virtual QSize minimumSize() const; virtual QSize maximumSize() const; virtual void setGeometry(const QRect &); virtual QLayoutItem *itemAt(int index) const = 0; virtual QLayoutItem *takeAt(int index) = 0 /TransferBack/; virtual int indexOf(QWidget *) const; virtual int count() const = 0 /__len__/; virtual bool isEmpty() const; int totalHeightForWidth(int w) const; QSize totalMinimumSize() const; QSize totalMaximumSize() const; QSize totalSizeHint() const; virtual QLayout *layout(); void setEnabled(bool); bool isEnabled() const; static QSize closestAcceptableSize(const QWidget *w, const QSize &s); protected: void widgetEvent(QEvent *); virtual void childEvent(QChildEvent *e); void addChildLayout(QLayout *l /Transfer/); void addChildWidget(QWidget *w /GetWrapper/); %MethodCode Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) sipCpp->addChildWidget(a0); #else sipCpp->sipProtect_addChildWidget(a0); #endif Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a0Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows // addChildWidget(QWidget()). sipTransferTo(a0Wrapper, sipSelf); } %End QRect alignmentRect(const QRect &) const; public: %If (Qt_4_3_0 -) void setContentsMargins(int left, int top, int right, int bottom); %End %If (Qt_4_3_0 -) void getContentsMargins(int *left, int *top, int *right, int *bottom) const; %End %If (Qt_4_3_0 -) QRect contentsRect() const; %End %If (Qt_4_6_0 -) void setContentsMargins(const QMargins &margins); %End %If (Qt_4_6_0 -) QMargins contentsMargins() const; %End %If (Qt_5_0_0 -) virtual QFlags controlTypes() const; %End private: QLayout(const QLayout &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qlayoutitem.sip0000644000076500000240000000732712536324426020702 0ustar philstaff00000000000000// qlayoutitem.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QLayoutItem /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End %ConvertToSubClassCode if (sipCpp->widget()) { sipType = sipType_QWidgetItem; } else if (sipCpp->spacerItem()) { sipType = sipType_QSpacerItem; } else { // Cause a restart looking for a QLayout. *sipCppRet = sipCpp->layout(); sipType = sipType_QLayout; } %End public: explicit QLayoutItem(Qt::Alignment alignment = 0); virtual ~QLayoutItem(); virtual QSize sizeHint() const = 0; virtual QSize minimumSize() const = 0; virtual QSize maximumSize() const = 0; virtual Qt::Orientations expandingDirections() const = 0; virtual void setGeometry(const QRect &) = 0; virtual QRect geometry() const = 0; virtual bool isEmpty() const = 0; virtual bool hasHeightForWidth() const; virtual int heightForWidth(int) const; virtual int minimumHeightForWidth(int) const; virtual void invalidate(); virtual QWidget *widget(); virtual QLayout *layout(); virtual QSpacerItem *spacerItem(); Qt::Alignment alignment() const; void setAlignment(Qt::Alignment a); %If (Qt_4_3_0 - Qt_5_0_0) QFlags controlTypes() const; %End %If (Qt_5_0_0 -) virtual QFlags controlTypes() const; %End }; class QSpacerItem : QLayoutItem { %TypeHeaderCode #include %End public: QSpacerItem(int w, int h, QSizePolicy::Policy hPolicy = QSizePolicy::Minimum, QSizePolicy::Policy vPolicy = QSizePolicy::Minimum); %If (Qt_5_0_0 -) virtual ~QSpacerItem(); %End void changeSize(int w, int h, QSizePolicy::Policy hPolicy = QSizePolicy::Minimum, QSizePolicy::Policy vPolicy = QSizePolicy::Minimum); virtual QSize sizeHint() const; virtual QSize minimumSize() const; virtual QSize maximumSize() const; virtual Qt::Orientations expandingDirections() const; virtual bool isEmpty() const; virtual void setGeometry(const QRect &); virtual QRect geometry() const; virtual QSpacerItem *spacerItem(); }; class QWidgetItem : QLayoutItem { %TypeHeaderCode #include %End public: explicit QWidgetItem(QWidget *w); %If (Qt_5_0_0 -) virtual ~QWidgetItem(); %End virtual QSize sizeHint() const; virtual QSize minimumSize() const; virtual QSize maximumSize() const; virtual Qt::Orientations expandingDirections() const; virtual bool isEmpty() const; virtual void setGeometry(const QRect &); virtual QRect geometry() const; virtual QWidget *widget(); virtual bool hasHeightForWidth() const; virtual int heightForWidth(int) const; %If (Qt_5_0_0 -) virtual QFlags controlTypes() const; %End private: %If (Qt_4_2_0 -) QWidgetItem(const QWidgetItem &); %End }; PyQt-x11-gpl-4.11.4/sip/QtGui/qlcdnumber.sip0000644000076500000240000000504112536324426020450 0ustar philstaff00000000000000// qlcdnumber.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QLCDNumber : QFrame { %TypeHeaderCode #include %End public: explicit QLCDNumber(QWidget *parent /TransferThis/ = 0); QLCDNumber(uint numDigits, QWidget *parent /TransferThis/ = 0); virtual ~QLCDNumber(); enum Mode { Hex, Dec, Oct, Bin, }; enum SegmentStyle { Outline, Filled, Flat, }; bool smallDecimalPoint() const; %If (Qt_4_6_0 -) int digitCount() const; %End %If (Qt_4_6_0 -) void setDigitCount(int nDigits); %End %If (- Qt_5_0_0) int numDigits() const; %End %If (- Qt_5_0_0) void setNumDigits(int nDigits); %End %If (Qt_5_0_0 -) void setNumDigits(int nDigits); %MethodCode // This is implemented for Qt v5 so that .ui files created with Designer for Qt v4 will continue to work. sipCpp->setDigitCount(a0); %End %End bool checkOverflow(double num /Constrained/) const; bool checkOverflow(int num) const; QLCDNumber::Mode mode() const; void setMode(QLCDNumber::Mode); QLCDNumber::SegmentStyle segmentStyle() const; void setSegmentStyle(QLCDNumber::SegmentStyle); double value() const; int intValue() const; virtual QSize sizeHint() const; void display(const QString &str); void display(double num /Constrained/); void display(int num); void setHexMode(); void setDecMode(); void setOctMode(); void setBinMode(); void setSmallDecimalPoint(bool); signals: void overflow(); protected: virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); private: QLCDNumber(const QLCDNumber &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qlineedit.sip0000644000076500000240000001155612536324426020302 0ustar philstaff00000000000000// qlineedit.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QLineEdit : QWidget { %TypeHeaderCode #include %End public: explicit QLineEdit(QWidget *parent /TransferThis/ = 0); QLineEdit(const QString &contents, QWidget *parent /TransferThis/ = 0); virtual ~QLineEdit(); QString text() const; QString displayText() const; int maxLength() const; void setMaxLength(int); void setFrame(bool); bool hasFrame() const; enum EchoMode { Normal, NoEcho, Password, %If (Qt_4_2_0 -) PasswordEchoOnEdit, %End }; QLineEdit::EchoMode echoMode() const; void setEchoMode(QLineEdit::EchoMode); bool isReadOnly() const; void setReadOnly(bool); void setValidator(const QValidator * /KeepReference/); const QValidator *validator() const; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; int cursorPosition() const; void setCursorPosition(int); int cursorPositionAt(const QPoint &pos); void setAlignment(Qt::Alignment flag); Qt::Alignment alignment() const; void cursorForward(bool mark, int steps = 1); void cursorBackward(bool mark, int steps = 1); void cursorWordForward(bool mark); void cursorWordBackward(bool mark); void backspace(); void del() /PyName=del_/; void home(bool mark); void end(bool mark); bool isModified() const; void setModified(bool); void setSelection(int, int); bool hasSelectedText() const; QString selectedText() const; int selectionStart() const; bool isUndoAvailable() const; bool isRedoAvailable() const; void setDragEnabled(bool b); bool dragEnabled() const; QString inputMask() const; void setInputMask(const QString &inputMask); bool hasAcceptableInput() const; void setText(const QString &); void clear(); void selectAll(); void undo(); void redo(); void cut(); void copy() const; void paste(); void deselect(); void insert(const QString &); QMenu *createStandardContextMenu() /Factory/; signals: void textChanged(const QString &); void textEdited(const QString &); void cursorPositionChanged(int, int); void returnPressed(); void editingFinished(); void selectionChanged(); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionFrame *option) const; %End virtual void mousePressEvent(QMouseEvent *); virtual void mouseMoveEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void mouseDoubleClickEvent(QMouseEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void focusInEvent(QFocusEvent *); virtual void focusOutEvent(QFocusEvent *); virtual void paintEvent(QPaintEvent *); virtual void dragEnterEvent(QDragEnterEvent *); virtual void dragMoveEvent(QDragMoveEvent *e); virtual void dragLeaveEvent(QDragLeaveEvent *e); virtual void dropEvent(QDropEvent *); virtual void changeEvent(QEvent *); virtual void contextMenuEvent(QContextMenuEvent *); virtual void inputMethodEvent(QInputMethodEvent *); %If (Qt_4_4_0 -) QRect cursorRect() const; %End public: virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const; virtual bool event(QEvent *); %If (Qt_4_2_0 -) void setCompleter(QCompleter *completer /KeepReference/); %End %If (Qt_4_2_0 -) QCompleter *completer() const; %End %If (Qt_4_5_0 -) void setTextMargins(int left, int top, int right, int bottom); %End %If (Qt_4_5_0 -) void getTextMargins(int *left, int *top, int *right, int *bottom) const; %End %If (Qt_4_6_0 -) void setTextMargins(const QMargins &margins); %End %If (Qt_4_6_0 -) QMargins textMargins() const; %End %If (Qt_4_7_0 -) QString placeholderText() const; %End %If (Qt_4_7_0 -) void setPlaceholderText(const QString &); %End %If (Qt_4_8_0 -) void setCursorMoveStyle(Qt::CursorMoveStyle style); %End %If (Qt_4_8_0 -) Qt::CursorMoveStyle cursorMoveStyle() const; %End private: QLineEdit(const QLineEdit &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qlistview.sip0000644000076500000240000001203612536324426020345 0ustar philstaff00000000000000// qlistview.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QListView : QAbstractItemView { %TypeHeaderCode #include %End public: enum Movement { Static, Free, Snap, }; enum Flow { LeftToRight, TopToBottom, }; enum ResizeMode { Fixed, Adjust, }; enum LayoutMode { SinglePass, Batched, }; enum ViewMode { ListMode, IconMode, }; explicit QListView(QWidget *parent /TransferThis/ = 0); virtual ~QListView(); void setMovement(QListView::Movement movement); QListView::Movement movement() const; void setFlow(QListView::Flow flow); QListView::Flow flow() const; void setWrapping(bool enable); bool isWrapping() const; void setResizeMode(QListView::ResizeMode mode); QListView::ResizeMode resizeMode() const; void setLayoutMode(QListView::LayoutMode mode); QListView::LayoutMode layoutMode() const; void setSpacing(int space); int spacing() const; void setGridSize(const QSize &size); QSize gridSize() const; void setViewMode(QListView::ViewMode mode); QListView::ViewMode viewMode() const; void clearPropertyFlags(); bool isRowHidden(int row) const; void setRowHidden(int row, bool hide); void setModelColumn(int column); int modelColumn() const; void setUniformItemSizes(bool enable); bool uniformItemSizes() const; virtual QRect visualRect(const QModelIndex &index) const; virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible); virtual QModelIndex indexAt(const QPoint &p) const; virtual void reset(); virtual void setRootIndex(const QModelIndex &index); signals: %If (Qt_4_2_0 -) void indexesMoved(const QModelIndexList &indexes); %End protected: virtual void scrollContentsBy(int dx, int dy); %If (Qt_5_0_0 -) virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles /DocValue="[]"/ = QVector()); %End %If (- Qt_5_0_0) virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); %End virtual void rowsInserted(const QModelIndex &parent, int start, int end); virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); virtual bool event(QEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void timerEvent(QTimerEvent *e); virtual void resizeEvent(QResizeEvent *e); virtual void dragMoveEvent(QDragMoveEvent *e); virtual void dragLeaveEvent(QDragLeaveEvent *e); virtual void dropEvent(QDropEvent *e); virtual void startDrag(Qt::DropActions supportedActions); virtual QStyleOptionViewItem viewOptions() const; virtual void paintEvent(QPaintEvent *e); virtual int horizontalOffset() const; virtual int verticalOffset() const; virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers); QRect rectForIndex(const QModelIndex &index) const; void setPositionForIndex(const QPoint &position, const QModelIndex &index); virtual void setSelection(const QRect &rect, QFlags command); virtual QRegion visualRegionForSelection(const QItemSelection &selection) const; virtual QModelIndexList selectedIndexes() const; virtual void updateGeometries(); virtual bool isIndexHidden(const QModelIndex &index) const; public: %If (Qt_4_2_0 -) void setBatchSize(int batchSize); %End %If (Qt_4_2_0 -) int batchSize() const; %End %If (Qt_4_2_0 -) void setWordWrap(bool on); %End %If (Qt_4_2_0 -) bool wordWrap() const; %End %If (Qt_4_3_0 -) void setSelectionRectVisible(bool show); %End %If (Qt_4_3_0 -) bool isSelectionRectVisible() const; %End protected: %If (Qt_4_3_0 -) virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); %End %If (Qt_4_3_0 -) virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); %End private: QListView(const QListView &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qlistwidget.sip0000644000076500000240000001760412536324426020664 0ustar philstaff00000000000000// qlistwidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QListWidgetItem /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum ItemType { Type, UserType, }; %End %If (- Qt_4_2_0) enum { Type, UserType, }; %End QListWidgetItem(QListWidget *parent /TransferThis/ = 0, int type = Type); QListWidgetItem(const QString &text, QListWidget *parent /TransferThis/ = 0, int type = Type); QListWidgetItem(const QIcon &icon, const QString &text, QListWidget *parent /TransferThis/ = 0, int type = Type); QListWidgetItem(const QListWidgetItem &other); virtual ~QListWidgetItem(); virtual QListWidgetItem *clone() const /Factory/; QListWidget *listWidget() const; Qt::ItemFlags flags() const; QString text() const; QIcon icon() const; QString statusTip() const; %If (PyQt_ToolTip) QString toolTip() const; %End %If (PyQt_WhatsThis) QString whatsThis() const; %End QFont font() const; int textAlignment() const; void setTextAlignment(int alignment); QColor backgroundColor() const; virtual void setBackgroundColor(const QColor &color); QColor textColor() const; void setTextColor(const QColor &color); Qt::CheckState checkState() const; void setCheckState(Qt::CheckState state); QSize sizeHint() const; void setSizeHint(const QSize &size); virtual QVariant data(int role) const; virtual void setData(int role, const QVariant &value); virtual bool operator<(const QListWidgetItem &other /NoCopy/) const; virtual void read(QDataStream &in) /ReleaseGIL/; virtual void write(QDataStream &out) const /ReleaseGIL/; int type() const; void setFlags(Qt::ItemFlags aflags); void setText(const QString &atext); void setIcon(const QIcon &aicon); void setStatusTip(const QString &astatusTip); %If (PyQt_ToolTip) void setToolTip(const QString &atoolTip); %End %If (PyQt_WhatsThis) void setWhatsThis(const QString &awhatsThis); %End void setFont(const QFont &afont); %If (Qt_4_2_0 -) QBrush background() const; %End %If (Qt_4_2_0 -) void setBackground(const QBrush &brush); %End %If (Qt_4_2_0 -) QBrush foreground() const; %End %If (Qt_4_2_0 -) void setForeground(const QBrush &brush); %End %If (Qt_4_2_0 -) void setSelected(bool aselect); %End %If (Qt_4_2_0 -) bool isSelected() const; %End %If (Qt_4_2_0 -) void setHidden(bool ahide); %End %If (Qt_4_2_0 -) bool isHidden() const; %End private: QListWidgetItem &operator=(const QListWidgetItem &); }; QDataStream &operator<<(QDataStream &out, const QListWidgetItem &item /Constrained/); QDataStream &operator>>(QDataStream &in, QListWidgetItem &item /Constrained/); class QListWidget : QListView { %TypeHeaderCode #include %End public: explicit QListWidget(QWidget *parent /TransferThis/ = 0); virtual ~QListWidget(); QListWidgetItem *item(int row) const; int row(const QListWidgetItem *item) const; void insertItem(int row, QListWidgetItem *item /Transfer/); void insertItem(int row, const QString &label); void insertItems(int row, const QStringList &labels); void addItem(QListWidgetItem *aitem /Transfer/); void addItem(const QString &label); void addItems(const QStringList &labels); QListWidgetItem *takeItem(int row) /TransferBack/; int count() const /__len__/; QListWidgetItem *currentItem() const; void setCurrentItem(QListWidgetItem *item); %If (Qt_4_4_0 -) void setCurrentItem(QListWidgetItem *item, QFlags command); %End int currentRow() const; void setCurrentRow(int row); %If (Qt_4_4_0 -) void setCurrentRow(int row, QFlags command); %End QListWidgetItem *itemAt(const QPoint &p) const; QListWidgetItem *itemAt(int ax, int ay) const; QWidget *itemWidget(QListWidgetItem *item) const; void setItemWidget(QListWidgetItem *item, QWidget *widget /Transfer/); %MethodCode // We have to break the association with any existing widget. QWidget *w = sipCpp->itemWidget(a0); if (w) { PyObject *wo = sipGetPyObject(w, sipType_QWidget); if (wo) sipTransferTo(wo, 0); } Py_BEGIN_ALLOW_THREADS sipCpp->setItemWidget(a0, a1); Py_END_ALLOW_THREADS %End QRect visualItemRect(const QListWidgetItem *item) const; void sortItems(Qt::SortOrder order = Qt::AscendingOrder); void editItem(QListWidgetItem *item); void openPersistentEditor(QListWidgetItem *item); void closePersistentEditor(QListWidgetItem *item); bool isItemSelected(const QListWidgetItem *item) const; void setItemSelected(const QListWidgetItem *item, bool select); QList selectedItems() const; QList findItems(const QString &text, Qt::MatchFlags flags) const; bool isItemHidden(const QListWidgetItem *item) const; void setItemHidden(const QListWidgetItem *item, bool hide); public slots: void clear(); void scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible); signals: void itemPressed(QListWidgetItem *item); void itemClicked(QListWidgetItem *item); void itemDoubleClicked(QListWidgetItem *item); void itemActivated(QListWidgetItem *item); void itemEntered(QListWidgetItem *item); void itemChanged(QListWidgetItem *item); void currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous); void currentTextChanged(const QString ¤tText); void currentRowChanged(int currentRow); void itemSelectionChanged(); protected: virtual QStringList mimeTypes() const; virtual QMimeData *mimeData(const QList items) const /TransferBack/; virtual bool dropMimeData(int index, const QMimeData *data, Qt::DropAction action); virtual Qt::DropActions supportedDropActions() const; QList items(const QMimeData *data) const; QModelIndex indexFromItem(QListWidgetItem *item) const; QListWidgetItem *itemFromIndex(const QModelIndex &index) const; virtual bool event(QEvent *e); public: %If (Qt_4_2_0 -) void setSortingEnabled(bool enable); %End %If (Qt_4_2_0 -) bool isSortingEnabled() const; %End %If (Qt_4_2_0 -) virtual void dropEvent(QDropEvent *event); %End %If (Qt_4_3_0 -) void removeItemWidget(QListWidgetItem *aItem); %MethodCode // We have to break the association with any existing widget. QWidget *w = sipCpp->itemWidget(a0); if (w) { PyObject *wo = sipGetPyObject(w, sipType_QWidget); if (wo) sipTransferTo(wo, 0); } Py_BEGIN_ALLOW_THREADS sipCpp->removeItemWidget(a0); Py_END_ALLOW_THREADS %End %End private: virtual void setModel(QAbstractItemModel *model /KeepReference/); QListWidget(const QListWidget &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qmainwindow.sip0000644000076500000240000001224212536324426020652 0ustar philstaff00000000000000// qmainwindow.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QMainWindow : QWidget { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QMainWindow(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QMainWindow(QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End virtual ~QMainWindow(); QSize iconSize() const; void setIconSize(const QSize &iconSize); Qt::ToolButtonStyle toolButtonStyle() const; void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle); QMenuBar *menuBar() const /Transfer/; void setMenuBar(QMenuBar *menubar /Transfer/); QStatusBar *statusBar() const /Transfer/; void setStatusBar(QStatusBar *statusbar /Transfer/); QWidget *centralWidget() const; void setCentralWidget(QWidget *widget /Transfer/); void setCorner(Qt::Corner corner, Qt::DockWidgetArea area); Qt::DockWidgetArea corner(Qt::Corner corner) const; void addToolBarBreak(Qt::ToolBarArea area = Qt::TopToolBarArea); void insertToolBarBreak(QToolBar *before); void addToolBar(Qt::ToolBarArea area, QToolBar *toolbar /Transfer/); void addToolBar(QToolBar *toolbar /Transfer/); QToolBar *addToolBar(const QString &title) /Transfer/; void insertToolBar(QToolBar *before, QToolBar *toolbar /Transfer/); void removeToolBar(QToolBar *toolbar); Qt::ToolBarArea toolBarArea(QToolBar *toolbar) const; void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget /Transfer/); void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget /Transfer/, Qt::Orientation orientation); void splitDockWidget(QDockWidget *after, QDockWidget *dockwidget /Transfer/, Qt::Orientation orientation); void removeDockWidget(QDockWidget *dockwidget /TransferBack/); Qt::DockWidgetArea dockWidgetArea(QDockWidget *dockwidget) const; QByteArray saveState(int version = 0) const; bool restoreState(const QByteArray &state, int version = 0); virtual QMenu *createPopupMenu(); public slots: %If (Qt_4_2_0 -) void setAnimated(bool enabled); %End %If (Qt_4_2_0 -) void setDockNestingEnabled(bool enabled); %End signals: void iconSizeChanged(const QSize &iconSize); void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle); protected: virtual void contextMenuEvent(QContextMenuEvent *event); virtual bool event(QEvent *event); public: %If (Qt_4_2_0 -) bool isAnimated() const; %End %If (Qt_4_2_0 -) bool isDockNestingEnabled() const; %End %If (Qt_4_2_0 -) bool isSeparator(const QPoint &pos) const; %End %If (Qt_4_2_0 -) QWidget *menuWidget() const; %End %If (Qt_4_2_0 -) void setMenuWidget(QWidget *menubar /Transfer/); %End %If (Qt_4_2_0 -) void tabifyDockWidget(QDockWidget *first, QDockWidget *second); %End %If (Qt_4_3_0 -) enum DockOption { AnimatedDocks, AllowNestedDocks, AllowTabbedDocks, ForceTabbedDocks, VerticalTabs, }; %End %If (Qt_4_3_0 -) typedef QFlags DockOptions; %End %If (Qt_4_3_0 -) void setDockOptions(QFlags options); %End %If (Qt_4_3_0 -) QFlags dockOptions() const; %End %If (Qt_4_3_0 -) void removeToolBarBreak(QToolBar *before); %End %If (Qt_4_3_0 -) bool toolBarBreak(QToolBar *toolbar) const; %End %If (Qt_4_3_0 -) void setUnifiedTitleAndToolBarOnMac(bool set); %End %If (Qt_4_3_0 -) bool unifiedTitleAndToolBarOnMac() const; %End %If (Qt_4_4_0 -) bool restoreDockWidget(QDockWidget *dockwidget); %End %If (Qt_4_5_0 -) bool documentMode() const; %End %If (Qt_4_5_0 -) void setDocumentMode(bool enabled); %End %If (Qt_4_5_0 -) QTabWidget::TabShape tabShape() const; %End %If (Qt_4_5_0 -) void setTabShape(QTabWidget::TabShape tabShape); %End %If (Qt_4_5_0 -) QTabWidget::TabPosition tabPosition(Qt::DockWidgetArea area) const; %End %If (Qt_4_5_0 -) void setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition); %End %If (Qt_4_5_0 -) QList tabifiedDockWidgets(QDockWidget *dockwidget) const; %End private: QMainWindow(const QMainWindow &); }; %If (Qt_4_3_0 -) QFlags operator|(QMainWindow::DockOption f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qmatrix.sip0000644000076500000240000000646712536324426020016 0ustar philstaff00000000000000// qmatrix.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QMatrix { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"dddddd", sipCpp->m11(), sipCpp->m12(), sipCpp->m21(), sipCpp->m22(), sipCpp->dx(), sipCpp->dy()); %End public: QMatrix(); QMatrix(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy); QMatrix(const QMatrix &matrix); void setMatrix(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy); qreal m11() const; qreal m12() const; qreal m21() const; qreal m22() const; qreal dx() const; qreal dy() const; void map(int x /Constrained/, int y /Constrained/, int *tx, int *ty) const; void map(qreal x, qreal y, qreal *tx, qreal *ty) const; QRect mapRect(const QRect &) const; QRectF mapRect(const QRectF &) const; QPoint map(const QPoint &p) const; QPointF map(const QPointF &p) const; QLine map(const QLine &l) const; QLineF map(const QLineF &l) const; QPolygonF map(const QPolygonF &a) const; QPolygon map(const QPolygon &a) const; QRegion map(const QRegion &r) const; QPainterPath map(const QPainterPath &p) const; QPolygon mapToPolygon(const QRect &r) const; void reset(); QMatrix &translate(qreal dx, qreal dy); QMatrix &scale(qreal sx, qreal sy); QMatrix &shear(qreal sh, qreal sv); QMatrix &rotate(qreal a); bool isInvertible() const; %If (- Qt_5_0_0) qreal det() const; %End QMatrix inverted(bool *invertible = 0) const; bool operator==(const QMatrix &) const; bool operator!=(const QMatrix &) const; QMatrix &operator*=(const QMatrix &); QMatrix operator*(const QMatrix &o) const; bool isIdentity() const; %If (Qt_4_6_0 -) qreal determinant() const; %End }; QPoint operator*(const QPoint &p, const QMatrix &m); QPointF operator*(const QPointF &p, const QMatrix &m); QLineF operator*(const QLineF &l, const QMatrix &m); QLine operator*(const QLine &l, const QMatrix &m); QPolygon operator*(const QPolygon &a, const QMatrix &m); QPolygonF operator*(const QPolygonF &a, const QMatrix &m); QRegion operator*(const QRegion &r, const QMatrix &m); QPainterPath operator*(const QPainterPath &p, const QMatrix &m); QDataStream &operator<<(QDataStream &, const QMatrix & /Constrained/); QDataStream &operator>>(QDataStream &, QMatrix & /Constrained/); %If (Qt_4_6_0 -) bool qFuzzyCompare(const QMatrix &m1, const QMatrix &m2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qmatrix4x4.sip0000644000076500000240000003301512536324426020343 0ustar philstaff00000000000000// qmatrix4x4.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) class QMatrix4x4 { %TypeHeaderCode #include %End %PickleCode PYQT_FLOAT data[16]; // We want the data in row-major order. sipCpp->copyDataTo(data); sipRes = Py_BuildValue((char *)"dddddddddddddddd", (double)data[0], (double)data[1], (double)data[2], (double)data[3], (double)data[4], (double)data[5], (double)data[6], (double)data[7], (double)data[8], (double)data[9], (double)data[10], (double)data[11], (double)data[12], (double)data[13], (double)data[14], (double)data[15]); %End public: QMatrix4x4(); %If (Qt_5_0_0 -) explicit QMatrix4x4(SIP_PYOBJECT values /DocType="sequence-of-float"/) [(const float *values)]; %MethodCode float values[16]; if ((sipError = qtgui_matrixDataFromSequence(a0, 16, values)) == sipErrorNone) sipCpp = new QMatrix4x4(values); %End %End %If (- Qt_5_0_0) explicit QMatrix4x4(SIP_PYOBJECT values /DocType="sequence-of-float"/) [(const qreal *values)]; %MethodCode qreal values[16]; if ((sipError = qtgui_matrixDataFromSequence(a0, 16, values)) == sipErrorNone) sipCpp = new QMatrix4x4(values); %End %End %If (Qt_5_0_0 -) QMatrix4x4(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44); %End %If (- Qt_5_0_0) QMatrix4x4(qreal m11, qreal m12, qreal m13, qreal m14, qreal m21, qreal m22, qreal m23, qreal m24, qreal m31, qreal m32, qreal m33, qreal m34, qreal m41, qreal m42, qreal m43, qreal m44); %End QMatrix4x4(const QTransform &transform); QMatrix4x4(const QMatrix &matrix); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode bool bad = false; int i; PyObject *m[16]; PYQT_FLOAT data[16]; // The raw data is in column-major order but we want row-major order. sipCpp->copyDataTo(data); for (i = 0; i < 16; ++i) { m[i] = PyFloat_FromDouble(data[i]); if (!m[i]) bad = true; } if (!bad) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QMatrix4x4(" "%R, %R, %R, %R, " "%R, %R, %R, %R, " "%R, %R, %R, %R, " "%R, %R, %R, %R)", m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8], m[9], m[10], m[11], m[12], m[13], m[14], m[15]); #else sipRes = PyString_FromString("PyQt4.QtGui.QMatrix4x4("); for (i = 0; i < 16; ++i) { if (i != 0) PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(m[i])); } PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } for (i = 0; i < 16; ++i) Py_XDECREF(m[i]); %End %If (Qt_5_0_0 -) double determinant() const; %End %If (- Qt_5_0_0) qreal determinant() const; %End QMatrix4x4 inverted(bool *invertible = 0) const; QMatrix4x4 transposed() const; QMatrix3x3 normalMatrix() const; void scale(const QVector3D &vector); %If (Qt_5_0_0 -) void scale(float x, float y); %End %If (- Qt_5_0_0) void scale(qreal x, qreal y); %End %If (Qt_5_0_0 -) void scale(float x, float y, float z); %End %If (- Qt_5_0_0) void scale(qreal x, qreal y, qreal z); %End %If (Qt_5_0_0 -) void scale(float factor); %End %If (- Qt_5_0_0) void scale(qreal factor); %End void translate(const QVector3D &vector); %If (Qt_5_0_0 -) void translate(float x, float y); %End %If (- Qt_5_0_0) void translate(qreal x, qreal y); %End %If (Qt_5_0_0 -) void translate(float x, float y, float z); %End %If (- Qt_5_0_0) void translate(qreal x, qreal y, qreal z); %End %If (Qt_5_0_0 -) void rotate(float angle, const QVector3D &vector); %End %If (- Qt_5_0_0) void rotate(qreal angle, const QVector3D &vector); %End %If (Qt_5_0_0 -) void rotate(float angle, float x, float y, float z = 0.0f); %End %If (- Qt_5_0_0) void rotate(qreal angle, qreal x, qreal y, qreal z = 0.0); %End void rotate(const QQuaternion &quaternion); void ortho(const QRect &rect); void ortho(const QRectF &rect); %If (Qt_5_0_0 -) void ortho(float left, float right, float bottom, float top, float nearPlane, float farPlane); %End %If (- Qt_5_0_0) void ortho(qreal left, qreal right, qreal bottom, qreal top, qreal nearPlane, qreal farPlane); %End %If (Qt_5_0_0 -) void frustum(float left, float right, float bottom, float top, float nearPlane, float farPlane); %End %If (- Qt_5_0_0) void frustum(qreal left, qreal right, qreal bottom, qreal top, qreal nearPlane, qreal farPlane); %End %If (Qt_5_0_0 -) void perspective(float angle, float aspect, float nearPlane, float farPlane); %End %If (- Qt_5_0_0) void perspective(qreal angle, qreal aspect, qreal nearPlane, qreal farPlane); %End void lookAt(const QVector3D &eye, const QVector3D ¢er, const QVector3D &up); void flipCoordinates(); %If (Qt_5_0_0 -) SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode float values[16]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(16, values, &sipRes); %End %End %If (- Qt_5_0_0) SIP_PYLIST copyDataTo() const /DocType="list-of-float"/; %MethodCode qreal values[16]; sipCpp->copyDataTo(values); sipError = qtgui_matrixDataAsList(16, values, &sipRes); %End %End QMatrix toAffine() const; QTransform toTransform() const; %If (Qt_5_0_0 -) QTransform toTransform(float distanceToPlane) const; %End %If (- Qt_5_0_0) QTransform toTransform(qreal distanceToPlane) const; %End QRect mapRect(const QRect &rect) const; QRectF mapRect(const QRectF &rect) const; %If (Qt_5_0_0 -) SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(16, sipCpp->constData(), &sipRes); %End %End %If (- Qt_5_0_0) SIP_PYLIST data() /DocType="list-of-float"/; %MethodCode sipError = qtgui_matrixDataAsList(16, sipCpp->constData(), &sipRes); %End %End void optimize(); SIP_PYOBJECT __getitem__(SIP_PYOBJECT) const; %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 4, 4, &row, &column)) == sipErrorNone) { sipRes = PyFloat_FromDouble(sipCpp->operator()(row, column)); if (!sipRes) sipError = sipErrorFail; } %End void __setitem__(SIP_PYOBJECT, qreal); %MethodCode int row, column; if ((sipError = qtgui_matrixParseIndex(a0, 4, 4, &row, &column)) == sipErrorNone) sipCpp->operator()(row, column) = a1; %End QVector4D column(int index) const; void setColumn(int index, const QVector4D &value); QVector4D row(int index) const; void setRow(int index, const QVector4D &value); bool isIdentity() const; void setToIdentity(); %If (Qt_5_0_0 -) void fill(float value); %End %If (- Qt_5_0_0) void fill(qreal value); %End QMatrix4x4 &operator+=(const QMatrix4x4 &other); QMatrix4x4 &operator-=(const QMatrix4x4 &other); QMatrix4x4 &operator*=(const QMatrix4x4 &other); %If (Qt_5_0_0 -) QMatrix4x4 &operator*=(float factor); %End %If (- Qt_5_0_0) QMatrix4x4 &operator*=(qreal factor); %End %If (Qt_5_0_0 -) QMatrix4x4 &operator/=(float divisor); %End %If (- Qt_5_0_0) QMatrix4x4 &operator/=(qreal divisor); %End bool operator==(const QMatrix4x4 &other) const; bool operator!=(const QMatrix4x4 &other) const; QPoint map(const QPoint &point) const; QPointF map(const QPointF &point) const; QVector3D map(const QVector3D &point) const; QVector3D mapVector(const QVector3D &vector) const; QVector4D map(const QVector4D &point) const; }; %End %If (Qt_5_0_0 -) QMatrix4x4 operator/(const QMatrix4x4 &matrix, float divisor); %End %If (Qt_4_6_0 - Qt_5_0_0) QMatrix4x4 operator/(const QMatrix4x4 &matrix, qreal divisor); %End %If (Qt_4_6_0 -) QMatrix4x4 operator+(const QMatrix4x4 &m1, const QMatrix4x4 &m2); %End %If (Qt_4_6_0 -) QMatrix4x4 operator-(const QMatrix4x4 &m1, const QMatrix4x4 &m2); %End %If (Qt_4_6_0 -) QMatrix4x4 operator*(const QMatrix4x4 &m1, const QMatrix4x4 &m2); %End %If (Qt_4_6_0 -) QVector3D operator*(const QVector3D &vector, const QMatrix4x4 &matrix); %End %If (Qt_4_6_0 -) QVector3D operator*(const QMatrix4x4 &matrix, const QVector3D &vector); %End %If (Qt_4_6_0 -) QVector4D operator*(const QVector4D &vector, const QMatrix4x4 &matrix); %End %If (Qt_4_6_0 -) QVector4D operator*(const QMatrix4x4 &matrix, const QVector4D &vector); %End %If (Qt_4_6_0 -) QPoint operator*(const QPoint &point, const QMatrix4x4 &matrix); %End %If (Qt_4_6_0 -) QPointF operator*(const QPointF &point, const QMatrix4x4 &matrix); %End %If (Qt_4_6_0 -) QPoint operator*(const QMatrix4x4 &matrix, const QPoint &point); %End %If (Qt_4_6_0 -) QPointF operator*(const QMatrix4x4 &matrix, const QPointF &point); %End %If (Qt_4_6_0 -) QMatrix4x4 operator-(const QMatrix4x4 &matrix); %End %If (Qt_5_0_0 -) QMatrix4x4 operator*(float factor, const QMatrix4x4 &matrix); %End %If (Qt_4_6_0 - Qt_5_0_0) QMatrix4x4 operator*(qreal factor, const QMatrix4x4 &matrix); %End %If (Qt_5_0_0 -) QMatrix4x4 operator*(const QMatrix4x4 &matrix, float factor); %End %If (Qt_4_6_0 - Qt_5_0_0) QMatrix4x4 operator*(const QMatrix4x4 &matrix, qreal factor); %End %If (Qt_4_6_0 -) bool qFuzzyCompare(const QMatrix4x4 &m1, const QMatrix4x4 &m2); %End %If (Qt_4_6_0 -) QDataStream &operator<<(QDataStream &, const QMatrix4x4 & /Constrained/); %End %If (Qt_4_6_0 -) QDataStream &operator>>(QDataStream &, QMatrix4x4 & /Constrained/); %End %ModuleHeaderCode // Helpers for the matrix classes. #if QT_VERSION >= 0x050000 typedef float PYQT_FLOAT; #else typedef qreal PYQT_FLOAT; #endif sipErrorState qtgui_matrixParseIndex(PyObject *tup, int nr_rows, int nr_columns, int *row, int *column); sipErrorState qtgui_matrixDataFromSequence(PyObject *seq, int nr_values, PYQT_FLOAT *values); sipErrorState qtgui_matrixDataAsList(int nr_values, const PYQT_FLOAT *values, PyObject **list); %End %ModuleCode // Convert a Python object to a row and column. sipErrorState qtgui_matrixParseIndex(PyObject *tup, int nr_rows, int nr_columns, int *row, int *column) { sipErrorState es = sipErrorContinue; #if PY_VERSION_HEX >= 0x02050000 if (PyTuple_Check(tup) && PyArg_ParseTuple(tup, "ii", row, column)) #else if (PyTuple_Check(tup) && PyArg_ParseTuple(tup, const_cast("ii"), row, column)) #endif if (*row >= 0 && *row < nr_rows && *column >= 0 && *column < nr_columns) es = sipErrorNone; if (es == sipErrorContinue) PyErr_Format(PyExc_IndexError, "an index must be a row in the range 0 to %d and a column in the range 0 to %d", nr_rows - 1, nr_columns - 1); return es; } // Convert a Python object to an array of qreals. sipErrorState qtgui_matrixDataFromSequence(PyObject *seq, int nr_values, PYQT_FLOAT *values) { sipErrorState es; if (PySequence_Size(seq) == nr_values) { es = sipErrorNone; for (int i = 0; i < nr_values; ++i) { PyObject *value = PySequence_GetItem(seq, i); if (!value) { es = sipErrorFail; break; } PyErr_Clear(); double d = PyFloat_AsDouble(value); if (PyErr_Occurred()) { Py_DECREF(value); es = sipErrorContinue; break; } Py_DECREF(value); *values++ = d; } } else { es = sipErrorContinue; } if (es == sipErrorContinue) PyErr_Format(PyExc_TypeError, "a sequence of %d floats is expected", nr_values); return es; } // Convert an array of qreals to a Python list. sipErrorState qtgui_matrixDataAsList(int nr_values, const PYQT_FLOAT *values, PyObject **list) { PyObject *l = PyList_New(nr_values); if (!l) return sipErrorFail; for (int i = 0; i < nr_values; ++i) { PyObject *value = PyFloat_FromDouble(*values++); if (!value) { Py_DECREF(l); return sipErrorFail; } PyList_SET_ITEM(l, i, value); } *list = l; return sipErrorNone; } %End PyQt-x11-gpl-4.11.4/sip/QtGui/qmdiarea.sip0000644000076500000240000001133112536324426020076 0ustar philstaff00000000000000// qmdiarea.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %ModuleCode #include %End %End %If (Qt_4_3_0 -) class QMdiArea : QAbstractScrollArea { %TypeHeaderCode #include %End public: enum AreaOption { DontMaximizeSubWindowOnActivation, }; typedef QFlags AreaOptions; %If (Qt_4_4_0 -) enum ViewMode { SubWindowView, TabbedView, }; %End enum WindowOrder { CreationOrder, StackingOrder, %If (Qt_4_4_0 -) ActivationHistoryOrder, %End }; QMdiArea(QWidget *parent /TransferThis/ = 0); virtual ~QMdiArea(); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; QMdiSubWindow *activeSubWindow() const; QMdiSubWindow *addSubWindow(QWidget *widget /Transfer/, Qt::WindowFlags flags = 0); QList subWindowList(QMdiArea::WindowOrder order = QMdiArea::CreationOrder) const; QMdiSubWindow *currentSubWindow() const; void removeSubWindow(QWidget *widget /GetWrapper/); %MethodCode // We need to implement /TransferBack/ on the argument, but it might be the // QMdiSubWindow that wraps the widget we are really after. QMdiSubWindow *swin = qobject_cast(a0); if (swin) { QWidget *w = swin->widget(); a0Wrapper = (w ? sipGetPyObject(w, sipType_QWidget) : 0); } else a0Wrapper = 0; Py_BEGIN_ALLOW_THREADS sipCpp->removeSubWindow(a0); Py_END_ALLOW_THREADS if (a0Wrapper) sipTransferBack(a0Wrapper); %End QBrush background() const; void setBackground(const QBrush &background); void setOption(QMdiArea::AreaOption option, bool on = true); bool testOption(QMdiArea::AreaOption opton) const; signals: void subWindowActivated(QMdiSubWindow *); public slots: void setActiveSubWindow(QMdiSubWindow *window); void tileSubWindows(); void cascadeSubWindows(); void closeActiveSubWindow(); void closeAllSubWindows(); void activateNextSubWindow(); void activatePreviousSubWindow(); protected: %If (Qt_5_0_0 -) virtual void setupViewport(QWidget *viewport); %End %If (- Qt_5_0_0) void setupViewport(QWidget *viewport); %End virtual bool event(QEvent *event); virtual bool eventFilter(QObject *object, QEvent *event); virtual void paintEvent(QPaintEvent *paintEvent); virtual void childEvent(QChildEvent *childEvent); virtual void resizeEvent(QResizeEvent *resizeEvent); virtual void timerEvent(QTimerEvent *timerEvent); virtual void showEvent(QShowEvent *showEvent); virtual bool viewportEvent(QEvent *event); virtual void scrollContentsBy(int dx, int dy); public: %If (Qt_4_4_0 -) QMdiArea::WindowOrder activationOrder() const; %End %If (Qt_4_4_0 -) void setActivationOrder(QMdiArea::WindowOrder order); %End %If (Qt_4_4_0 -) void setViewMode(QMdiArea::ViewMode mode); %End %If (Qt_4_4_0 -) QMdiArea::ViewMode viewMode() const; %End %If (Qt_4_4_0 -) void setTabShape(QTabWidget::TabShape shape); %End %If (Qt_4_4_0 -) QTabWidget::TabShape tabShape() const; %End %If (Qt_4_4_0 -) void setTabPosition(QTabWidget::TabPosition position); %End %If (Qt_4_4_0 -) QTabWidget::TabPosition tabPosition() const; %End %If (Qt_4_5_0 -) bool documentMode() const; %End %If (Qt_4_5_0 -) void setDocumentMode(bool enabled); %End %If (Qt_4_8_0 -) void setTabsClosable(bool closable); %End %If (Qt_4_8_0 -) bool tabsClosable() const; %End %If (Qt_4_8_0 -) void setTabsMovable(bool movable); %End %If (Qt_4_8_0 -) bool tabsMovable() const; %End private: QMdiArea(const QMdiArea &); }; %End %If (Qt_4_3_0 -) QFlags operator|(QMdiArea::AreaOption f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qmdisubwindow.sip0000644000076500000240000001035512536324426021214 0ustar philstaff00000000000000// qmdisubwindow.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %ModuleCode #include %End %End %If (Qt_4_3_0 -) class QMdiSubWindow : QWidget { %TypeHeaderCode #include %End public: enum SubWindowOption { RubberBandResize, RubberBandMove, }; typedef QFlags SubWindowOptions; QMdiSubWindow(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); virtual ~QMdiSubWindow(); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void setWidget(QWidget *widget /Transfer/); %MethodCode // We have to implement /TransferBack/ on any existing widget. QWidget *w = sipCpp->widget(); Py_BEGIN_ALLOW_THREADS sipCpp->setWidget(a0); Py_END_ALLOW_THREADS if (w) { PyObject *wo = sipGetPyObject(w, sipType_QWidget); if (wo) sipTransferBack(wo); } %End QWidget *widget() const; bool isShaded() const; void setOption(QMdiSubWindow::SubWindowOption option, bool on = true); bool testOption(QMdiSubWindow::SubWindowOption) const; void setKeyboardSingleStep(int step); int keyboardSingleStep() const; void setKeyboardPageStep(int step); int keyboardPageStep() const; void setSystemMenu(QMenu *systemMenu /Transfer/); %MethodCode // We have to break the parent association on any existing menu. QMenu *w = sipCpp->systemMenu(); if (w) { PyObject *wo = sipGetPyObject(w, sipType_QMenu); if (wo) sipTransferTo(wo, 0); } Py_BEGIN_ALLOW_THREADS sipCpp->setSystemMenu(a0); Py_END_ALLOW_THREADS %End QMenu *systemMenu() const; %If (Qt_4_4_0 -) QMdiArea *mdiArea() const; %End signals: void windowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState); void aboutToActivate(); public slots: void showSystemMenu(); void showShaded(); protected: virtual bool eventFilter(QObject *object, QEvent *event); virtual bool event(QEvent *event); virtual void showEvent(QShowEvent *showEvent); virtual void hideEvent(QHideEvent *hideEvent); virtual void changeEvent(QEvent *changeEvent); virtual void closeEvent(QCloseEvent *closeEvent); virtual void leaveEvent(QEvent *leaveEvent); virtual void resizeEvent(QResizeEvent *resizeEvent); virtual void timerEvent(QTimerEvent *timerEvent); virtual void moveEvent(QMoveEvent *moveEvent); virtual void paintEvent(QPaintEvent *paintEvent); virtual void mousePressEvent(QMouseEvent *mouseEvent); virtual void mouseDoubleClickEvent(QMouseEvent *mouseEvent); virtual void mouseReleaseEvent(QMouseEvent *mouseEvent); virtual void mouseMoveEvent(QMouseEvent *mouseEvent); virtual void keyPressEvent(QKeyEvent *keyEvent); virtual void contextMenuEvent(QContextMenuEvent *contextMenuEvent); virtual void focusInEvent(QFocusEvent *focusInEvent); virtual void focusOutEvent(QFocusEvent *focusOutEvent); virtual void childEvent(QChildEvent *childEvent); private: QMdiSubWindow(const QMdiSubWindow &); }; %End %If (Qt_4_3_0 -) QFlags operator|(QMdiSubWindow::SubWindowOption f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qmenu.sip0000644000076500000240000001322212536324426017441 0ustar philstaff00000000000000// qmenu.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QMenu : QWidget { %TypeHeaderCode #include %End public: explicit QMenu(QWidget *parent /TransferThis/ = 0); QMenu(const QString &title, QWidget *parent /TransferThis/ = 0); virtual ~QMenu(); void addAction(QAction *action); QAction *addAction(const QString &text) /Transfer/; QAction *addAction(const QIcon &icon, const QString &text) /Transfer/; QAction *addAction(const QString &text, SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member, const QKeySequence &shortcut = 0) /Transfer/ [QAction * (const QString &text, const QObject *receiver, const char *member, const QKeySequence &shortcut = 0)]; QAction *addAction(const QIcon &icon, const QString &text, SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member, const QKeySequence &shortcut = 0) /Transfer/ [QAction * (const QIcon &icon, const QString &text, const QObject *receiver, const char *member, const QKeySequence &shortcut = 0)]; QAction *addMenu(QMenu *menu); QMenu *addMenu(const QString &title) /Transfer/; QMenu *addMenu(const QIcon &icon, const QString &title) /Transfer/; QAction *addSeparator() /Transfer/; QAction *insertMenu(QAction *before, QMenu *menu); QAction *insertSeparator(QAction *before) /Transfer/; void clear(); void setTearOffEnabled(bool); bool isTearOffEnabled() const; bool isTearOffMenuVisible() const; void hideTearOffMenu(); void setDefaultAction(QAction * /KeepReference/); QAction *defaultAction() const; void setActiveAction(QAction *act); QAction *activeAction() const; void popup(const QPoint &p, QAction *action = 0); QAction *exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %If (Py_v3) QAction *exec() /ReleaseGIL/; %End QAction *exec(const QPoint &p, QAction *action = 0) /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %If (Py_v3) QAction *exec(const QPoint &pos, QAction *action = 0) /ReleaseGIL/; %End %If (Qt_5_0_0 -) static QAction *exec(QList actions, const QPoint &pos, QAction *at = 0, QWidget *parent = 0) /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %End %If (Qt_5_0_0 -) %If (Py_v3) static QAction *exec(QList actions, const QPoint &pos, QAction *at = 0, QWidget *parent = 0) /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %End %End %If (- Qt_5_0_0) static QAction *exec(QList actions, const QPoint &pos, QAction *action = 0) /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %End %If (- Qt_5_0_0) %If (Py_v3) static QAction *exec(QList actions, const QPoint &pos, QAction *action = 0) /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %End %End %If (Qt_4_5_0 - Qt_5_0_0) static QAction *exec(QList actions, const QPoint &pos, QAction *at, QWidget *parent) /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %End %If (Qt_4_5_0 - Qt_5_0_0) %If (Py_v3) static QAction *exec(QList actions, const QPoint &pos, QAction *at, QWidget *parent) /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %End %End virtual QSize sizeHint() const; QRect actionGeometry(QAction *) const; QAction *actionAt(const QPoint &) const; QAction *menuAction() const; QString title() const; void setTitle(const QString &title); QIcon icon() const; void setIcon(const QIcon &icon); void setNoReplayFor(QWidget *widget); signals: %If (Qt_4_2_0 -) void aboutToHide(); %End void aboutToShow(); void hovered(QAction *action); void triggered(QAction *action); protected: int columnCount() const; %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const; %End virtual void changeEvent(QEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void mousePressEvent(QMouseEvent *); virtual void mouseMoveEvent(QMouseEvent *); virtual void wheelEvent(QWheelEvent *); virtual void enterEvent(QEvent *); virtual void leaveEvent(QEvent *); virtual void hideEvent(QHideEvent *); virtual void paintEvent(QPaintEvent *); virtual void actionEvent(QActionEvent *); virtual void timerEvent(QTimerEvent *); virtual bool event(QEvent *); %If (Qt_4_2_0 -) virtual bool focusNextPrevChild(bool next); %End public: %If (Qt_4_2_0 -) bool isEmpty() const; %End %If (Qt_4_2_0 -) bool separatorsCollapsible() const; %End %If (Qt_4_2_0 -) void setSeparatorsCollapsible(bool collapse); %End private: QMenu(const QMenu &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qmenubar.sip0000644000076500000240000000642412536324426020134 0ustar philstaff00000000000000// qmenubar.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QMenuBar : QWidget { %TypeHeaderCode #include %End public: explicit QMenuBar(QWidget *parent /TransferThis/ = 0); virtual ~QMenuBar(); void addAction(QAction *action); QAction *addAction(const QString &text) /Transfer/; QAction *addAction(const QString &text, SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) /Transfer/ [QAction * (const QString &text, const QObject *receiver, const char *member)]; QAction *addMenu(QMenu *menu); QMenu *addMenu(const QString &title) /Transfer/; QMenu *addMenu(const QIcon &icon, const QString &title) /Transfer/; QAction *addSeparator() /Transfer/; QAction *insertMenu(QAction *before, QMenu *menu); %If (Qt_4_2_0 -) QAction *insertSeparator(QAction *before) /Transfer/; %End void clear(); QAction *activeAction() const; void setActiveAction(QAction *action); void setDefaultUp(bool); bool isDefaultUp() const; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; virtual int heightForWidth(int) const; QRect actionGeometry(QAction *) const; QAction *actionAt(const QPoint &) const; void setCornerWidget(QWidget *widget /Transfer/, Qt::Corner corner = Qt::TopRightCorner); QWidget *cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const; %If (Qt_4_3_0 -) virtual void setVisible(bool visible); %End signals: void triggered(QAction *action); void hovered(QAction *action); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const; %End virtual void changeEvent(QEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void mousePressEvent(QMouseEvent *); virtual void mouseMoveEvent(QMouseEvent *); virtual void leaveEvent(QEvent *); virtual void paintEvent(QPaintEvent *); virtual void resizeEvent(QResizeEvent *); virtual void actionEvent(QActionEvent *); virtual void focusOutEvent(QFocusEvent *); virtual void focusInEvent(QFocusEvent *); virtual bool eventFilter(QObject *, QEvent *); virtual bool event(QEvent *); %If (Qt_4_4_0 -) virtual void timerEvent(QTimerEvent *); %End public: %If (Qt_4_6_0 -) bool isNativeMenuBar() const; %End %If (Qt_4_6_0 -) void setNativeMenuBar(bool nativeMenuBar); %End private: QMenuBar(const QMenuBar &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qmessagebox.sip0000644000076500000240000002534212536324426020640 0ustar philstaff00000000000000// qmessagebox.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QMessageBox : QDialog { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum ButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ActionRole, HelpRole, YesRole, NoRole, ResetRole, ApplyRole, }; %End enum Icon { NoIcon, Information, Warning, Critical, Question, }; %If (Qt_4_2_0 -) enum StandardButton { NoButton, Ok, Save, SaveAll, Open, Yes, YesToAll, No, NoToAll, Abort, Retry, Ignore, Close, Cancel, Discard, Help, Apply, Reset, RestoreDefaults, FirstButton, LastButton, YesAll, NoAll, Default, Escape, FlagMask, ButtonMask, }; %End %If (Qt_4_2_0 -) typedef QFlags StandardButtons; %End %If (Qt_4_2_0 -) typedef QMessageBox::StandardButton Button; %End %If (- Qt_4_2_0) enum Button { NoButton, Ok, Cancel, Yes, No, Abort, Retry, Ignore, YesAll, NoAll, ButtonMask, Default, Escape, FlagMask, }; %End explicit QMessageBox(QWidget *parent /TransferThis/ = 0); %If (Qt_4_2_0 -) QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = QMessageBox::NoButton, QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = Qt::Dialog|Qt::MSWindowsFixedSizeDialogHint); %End %If (Qt_4_2_0 -) QMessageBox(const QString &title, const QString &text, QMessageBox::Icon icon, int button0, int button1, int button2, QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = Qt::Dialog|Qt::MSWindowsFixedSizeDialogHint); %End %If (- Qt_4_2_0) QMessageBox(const QString &caption, const QString &text, QMessageBox::Icon icon, int button0, int button1, int button2, QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = Qt::Dialog|Qt::MSWindowsFixedSizeDialogHint); %End virtual ~QMessageBox(); QString text() const; void setText(const QString &); QMessageBox::Icon icon() const; void setIcon(QMessageBox::Icon); QPixmap iconPixmap() const; void setIconPixmap(const QPixmap &); QString buttonText(int button) const; void setButtonText(int button, const QString &); Qt::TextFormat textFormat() const; void setTextFormat(Qt::TextFormat); %If (Qt_4_2_0 -) static QMessageBox::StandardButton information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton) /ReleaseGIL/; %End static int information(QWidget *parent, const QString &title, const QString &text, int button0, int button1 = 0, int button2 = 0) /ReleaseGIL/; %If (Qt_4_2_0 -) static int information(QWidget *parent, const QString &title, const QString &text, const QString &button0Text, const QString &button1Text /DocValue="Py_v3:''"/ = QString(), const QString &button2Text /DocValue="Py_v3:''"/ = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1) /ReleaseGIL/; %End %If (- Qt_4_2_0) static int information(QWidget *parent, const QString &title, const QString &text, const QString &button0Text /DocValue="Py_v3:''"/ = QString(), const QString &button1Text /DocValue="Py_v3:''"/ = QString(), const QString &button2Text /DocValue="Py_v3:''"/ = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1) /ReleaseGIL/; %End %If (Qt_4_2_0 -) static QMessageBox::StandardButton question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton) /ReleaseGIL/; %End static int question(QWidget *parent, const QString &title, const QString &text, int button0, int button1 = 0, int button2 = 0) /ReleaseGIL/; %If (Qt_4_2_0 -) static int question(QWidget *parent, const QString &title, const QString &text, const QString &button0Text, const QString &button1Text /DocValue="Py_v3:''"/ = QString(), const QString &button2Text /DocValue="Py_v3:''"/ = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1) /ReleaseGIL/; %End %If (- Qt_4_2_0) static int question(QWidget *parent, const QString &title, const QString &text, const QString &button0Text /DocValue="Py_v3:''"/ = QString(), const QString &button1Text /DocValue="Py_v3:''"/ = QString(), const QString &button2Text /DocValue="Py_v3:''"/ = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1) /ReleaseGIL/; %End %If (Qt_4_2_0 -) static QMessageBox::StandardButton warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton) /ReleaseGIL/; %End static int warning(QWidget *parent, const QString &title, const QString &text, int button0, int button1, int button2 = 0) /ReleaseGIL/; %If (Qt_4_2_0 -) static int warning(QWidget *parent, const QString &title, const QString &text, const QString &button0Text, const QString &button1Text /DocValue="Py_v3:''"/ = QString(), const QString &button2Text /DocValue="Py_v3:''"/ = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1) /ReleaseGIL/; %End %If (- Qt_4_2_0) static int warning(QWidget *parent, const QString &title, const QString &text, const QString &button0Text /DocValue="Py_v3:''"/ = QString(), const QString &button1Text /DocValue="Py_v3:''"/ = QString(), const QString &button2Text /DocValue="Py_v3:''"/ = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1) /ReleaseGIL/; %End %If (Qt_4_2_0 -) static QMessageBox::StandardButton critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton) /ReleaseGIL/; %End static int critical(QWidget *parent, const QString &title, const QString &text, int button0, int button1, int button2 = 0) /ReleaseGIL/; %If (Qt_4_2_0 -) static int critical(QWidget *parent, const QString &title, const QString &text, const QString &button0Text, const QString &button1Text /DocValue="Py_v3:''"/ = QString(), const QString &button2Text /DocValue="Py_v3:''"/ = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1) /ReleaseGIL/; %End %If (- Qt_4_2_0) static int critical(QWidget *parent, const QString &title, const QString &text, const QString &button0Text /DocValue="Py_v3:''"/ = QString(), const QString &button1Text /DocValue="Py_v3:''"/ = QString(), const QString &button2Text /DocValue="Py_v3:''"/ = QString(), int defaultButtonNumber = 0, int escapeButtonNumber = -1) /ReleaseGIL/; %End static void about(QWidget *parent, const QString &caption, const QString &text) /ReleaseGIL/; static void aboutQt(QWidget *parent, const QString &title /DocValue="Py_v3:''"/ = QString()) /ReleaseGIL/; %If (- Qt_5_0_0) virtual QSize sizeHint() const; %End static QPixmap standardIcon(QMessageBox::Icon icon); protected: %If (Qt_4_3_0 -) virtual bool event(QEvent *e); %End virtual void resizeEvent(QResizeEvent *); virtual void showEvent(QShowEvent *); virtual void closeEvent(QCloseEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void changeEvent(QEvent *); public: %If (Qt_4_2_0 -) void addButton(QAbstractButton *button /Transfer/, QMessageBox::ButtonRole role); %End %If (Qt_4_2_0 -) QPushButton *addButton(const QString &text, QMessageBox::ButtonRole role) /Transfer/; %End %If (Qt_4_2_0 -) QPushButton *addButton(QMessageBox::StandardButton button) /Transfer/; %End %If (Qt_4_2_0 -) void removeButton(QAbstractButton *button /TransferBack/); %End %If (Qt_4_2_0 -) void setStandardButtons(QMessageBox::StandardButtons buttons); %End %If (Qt_4_2_0 -) QMessageBox::StandardButtons standardButtons() const; %End %If (Qt_4_2_0 -) QMessageBox::StandardButton standardButton(QAbstractButton *button) const; %End %If (Qt_4_2_0 -) QAbstractButton *button(QMessageBox::StandardButton which) const; %End %If (Qt_4_2_0 -) QPushButton *defaultButton() const; %End %If (Qt_4_2_0 -) void setDefaultButton(QPushButton *button /KeepReference/); %End %If (Qt_4_3_0 -) void setDefaultButton(QMessageBox::StandardButton button); %End %If (Qt_4_2_0 -) QAbstractButton *escapeButton() const; %End %If (Qt_4_2_0 -) void setEscapeButton(QAbstractButton *button /KeepReference/); %End %If (Qt_4_3_0 -) void setEscapeButton(QMessageBox::StandardButton button); %End %If (Qt_4_2_0 -) QAbstractButton *clickedButton() const; %End %If (Qt_4_2_0 -) QString informativeText() const; %End %If (Qt_4_2_0 -) void setInformativeText(const QString &text); %End %If (Qt_4_2_0 -) QString detailedText() const; %End %If (Qt_4_2_0 -) void setDetailedText(const QString &text); %End %If (Qt_4_2_0 -) void setWindowTitle(const QString &title); %End %If (Qt_4_2_0 -) void setWindowModality(Qt::WindowModality windowModality); %End %If (Qt_4_5_0 -) void open(); %End %If (Qt_4_5_0 -) void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; %End %If (Qt_4_5_0 -) QList buttons() const; %End %If (Qt_4_5_0 -) QMessageBox::ButtonRole buttonRole(QAbstractButton *button) const; %End signals: %If (Qt_4_5_0 -) void buttonClicked(QAbstractButton *button); %End private: QMessageBox(const QMessageBox &); }; %If (Qt_4_2_0 -) QFlags operator|(QMessageBox::StandardButton f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qmime.sip0000644000076500000240000000452712536324426017434 0ustar philstaff00000000000000// qmime.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) %ModuleCode #include %End %End %If (- Qt_5_0_0) class QMimeSource { %TypeHeaderCode #include %End public: virtual ~QMimeSource(); virtual const char *format(int i = 0) const = 0; virtual bool provides(const char *) const; virtual QByteArray encodedData(const char *) const = 0; }; %End %If (Qt_4_2_0 - Qt_5_0_0) %If (WS_MACX) class QMacPasteboardMime { %TypeHeaderCode #include %End public: enum QMacPasteboardMimeType { MIME_DND, MIME_CLIP, MIME_QT_CONVERTOR, MIME_QT3_CONVERTOR, MIME_ALL, }; explicit QMacPasteboardMime(char t /PyInt/); virtual ~QMacPasteboardMime(); static QList all(uchar t /PyInt/); static QMacPasteboardMime *convertor(uchar t /PyInt/, const QString &mime, QString flav); static QString flavorToMime(uchar t /PyInt/, QString flav); virtual QString convertorName() = 0; virtual bool canConvert(const QString &mime, QString flav) = 0; virtual QString mimeFor(QString flav) = 0; virtual QString flavorFor(const QString &mime) = 0; virtual QVariant convertToMime(const QString &mime, QList data, QString flav) = 0; virtual QList convertFromMime(const QString &mime, QVariant data, QString flav) = 0; }; %End %End %If (Qt_4_5_0 - Qt_5_0_0) %If (WS_MACX) void qRegisterDraggedTypes(const QStringList &types); %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qmouseeventtransition.sip0000644000076500000240000000340412536324426023003 0ustar philstaff00000000000000// qmouseeventtransition.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QMouseEventTransition : QEventTransition { %TypeHeaderCode #include %End public: QMouseEventTransition(QState *sourceState /TransferThis/ = 0); QMouseEventTransition(QObject *object /KeepReference=10/, QEvent::Type type, Qt::MouseButton button, QState *sourceState /TransferThis/ = 0); virtual ~QMouseEventTransition(); Qt::MouseButton button() const; void setButton(Qt::MouseButton button); Qt::KeyboardModifiers modifierMask() const; void setModifierMask(Qt::KeyboardModifiers modifiers); QPainterPath hitTestPath() const; void setHitTestPath(const QPainterPath &path); protected: virtual void onTransition(QEvent *event); virtual bool eventTest(QEvent *event); private: QMouseEventTransition(const QMouseEventTransition &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qmovie.sip0000644000076500000240000000562612536324426017625 0ustar philstaff00000000000000// qmovie.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QMovie : QObject { %TypeHeaderCode #include %End public: enum MovieState { NotRunning, Paused, Running, }; enum CacheMode { CacheNone, CacheAll, }; %If (Qt_5_0_0 -) explicit QMovie(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QMovie(QObject *parent /TransferThis/ = 0); %End QMovie(QIODevice *device, const QByteArray &format = QByteArray(), QObject *parent /TransferThis/ = 0); QMovie(const QString &fileName, const QByteArray &format = QByteArray(), QObject *parent /TransferThis/ = 0); virtual ~QMovie(); static QList supportedFormats(); void setDevice(QIODevice *device); QIODevice *device() const; void setFileName(const QString &fileName); QString fileName() const; void setFormat(const QByteArray &format); QByteArray format() const; void setBackgroundColor(const QColor &color); QColor backgroundColor() const; QMovie::MovieState state() const; QRect frameRect() const; QImage currentImage() const; QPixmap currentPixmap() const; bool isValid() const; bool jumpToFrame(int frameNumber); int loopCount() const; int frameCount() const; int nextFrameDelay() const; int currentFrameNumber() const; void setSpeed(int percentSpeed); int speed() const; QSize scaledSize(); void setScaledSize(const QSize &size); %If (Qt_4_2_0 -) QMovie::CacheMode cacheMode() const; %End %If (- Qt_4_2_0) QMovie::CacheMode cacheMode(); %End void setCacheMode(QMovie::CacheMode mode); signals: void started(); void resized(const QSize &size); void updated(const QRect &rect); void stateChanged(QMovie::MovieState state); void error(QImageReader::ImageReaderError error); void finished(); void frameChanged(int frameNumber); public slots: void start(); bool jumpToNextFrame(); void setPaused(bool paused); void stop(); private: QMovie(const QMovie &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qpagedpaintdevice.sip0000644000076500000240000000407012536324426021772 0ustar philstaff00000000000000// qpagedpaintdevice.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) class QPagedPaintDevice : QPaintDevice { %TypeHeaderCode #include %End public: QPagedPaintDevice(); virtual ~QPagedPaintDevice(); virtual bool newPage() = 0; enum PageSize { A4, B5, Letter, Legal, Executive, A0, A1, A2, A3, A5, A6, A7, A8, A9, B0, B1, B10, B2, B3, B4, B6, B7, B8, B9, C5E, Comm10E, DLE, Folio, Ledger, Tabloid, Custom, }; virtual void setPageSize(QPagedPaintDevice::PageSize size); QPagedPaintDevice::PageSize pageSize() const; virtual void setPageSizeMM(const QSizeF &size); QSizeF pageSizeMM() const; struct Margins { %TypeHeaderCode #include %End qreal left; qreal right; qreal top; qreal bottom; }; virtual void setMargins(const QPagedPaintDevice::Margins &margins); QPagedPaintDevice::Margins margins() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qpagesetupdialog.sip0000644000076500000240000001353612536324426021662 0ustar philstaff00000000000000// qpagesetupdialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) %If (PyQt_PrintDialog) class QPageSetupDialog : QDialog { %TypeHeaderCode #include %End public: %If (Qt_4_4_0 -) enum PageSetupDialogOption { DontUseSheet, }; %End %If (Qt_4_4_0 -) typedef QFlags PageSetupDialogOptions; %End %If (Qt_4_5_0 -) explicit QPageSetupDialog(QWidget *parent /TransferThis/ = 0); %End QPageSetupDialog(QPrinter *printer, QWidget *parent /TransferThis/ = 0); virtual int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipSelfWasArg ? sipCpp->QPageSetupDialog::exec() : sipCpp->exec(); Py_END_ALLOW_THREADS %End %If (Py_v3) virtual int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipSelfWasArg ? sipCpp->QPageSetupDialog::exec() : sipCpp->exec(); Py_END_ALLOW_THREADS %End %End QPrinter *printer(); %If (Qt_4_4_0 -) void addEnabledOption(QPageSetupDialog::PageSetupDialogOption option); %End %If (Qt_4_4_0 -) void setEnabledOptions(QFlags options); %End %If (Qt_4_4_0 -) QFlags enabledOptions() const; %End %If (Qt_4_4_0 -) bool isOptionEnabled(QPageSetupDialog::PageSetupDialogOption option) const; %End %If (Qt_4_5_0 -) void setOption(QPageSetupDialog::PageSetupDialogOption option, bool on = true); %End %If (Qt_4_5_0 -) bool testOption(QPageSetupDialog::PageSetupDialogOption option) const; %End %If (Qt_4_5_0 -) void setOptions(QFlags options); %End %If (Qt_4_5_0 -) QFlags options() const; %End %If (Qt_4_5_0 -) void open(); %End %If (Qt_4_5_0 -) void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; %End // Public platform specific methods. %If (WS_WIN) virtual void setVisible(bool visible); %End %If (WS_MACX) virtual void setVisible(bool visible); %End }; %End %End %If (Qt_5_0_0 -) %If (PyQt_PrintDialog) class QPageSetupDialog : QDialog { %TypeHeaderCode #include %End public: QPageSetupDialog(QPrinter *printer, QWidget *parent /TransferThis/ = 0); explicit QPageSetupDialog(QWidget *parent /TransferThis/ = 0); virtual ~QPageSetupDialog(); virtual void setVisible(bool visible); virtual int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipSelfWasArg ? sipCpp->QPageSetupDialog::exec() : sipCpp->exec(); Py_END_ALLOW_THREADS %End virtual int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipSelfWasArg ? sipCpp->QPageSetupDialog::exec() : sipCpp->exec(); Py_END_ALLOW_THREADS %End virtual void open(); void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; virtual void done(int result); QPrinter *printer(); }; %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qpaintdevice.sip0000644000076500000240000000352412536324426020774 0ustar philstaff00000000000000// qpaintdevice.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPaintDevice { %TypeHeaderCode #include %End public: enum PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, PdmDepth, PdmDpiX, PdmDpiY, PdmPhysicalDpiX, PdmPhysicalDpiY, }; virtual ~QPaintDevice(); virtual QPaintEngine *paintEngine() const = 0; int width() const; int height() const; int widthMM() const; int heightMM() const; int logicalDpiX() const; int logicalDpiY() const; int physicalDpiX() const; int physicalDpiY() const; %If (- Qt_5_0_0) int numColors() const; %End int depth() const; bool paintingActive() const; %If (Qt_4_6_0 -) int colorCount() const; %End protected: QPaintDevice(); virtual int metric(QPaintDevice::PaintDeviceMetric metric) const; private: QPaintDevice(const QPaintDevice &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qpaintengine.sip0000644000076500000240000001426512536324426021006 0ustar philstaff00000000000000// qpaintengine.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QTextItem { %TypeHeaderCode #include %End public: enum RenderFlag { RightToLeft, Overline, Underline, StrikeOut, }; typedef QFlags RenderFlags; qreal descent() const; qreal ascent() const; qreal width() const; QFlags renderFlags() const; QString text() const; QFont font() const; }; QFlags operator|(QTextItem::RenderFlag f1, QFlags f2); class QPaintEngine { %TypeHeaderCode #include %End public: enum PaintEngineFeature { PrimitiveTransform, PatternTransform, PixmapTransform, PatternBrush, LinearGradientFill, RadialGradientFill, ConicalGradientFill, AlphaBlend, PorterDuff, PainterPaths, Antialiasing, BrushStroke, %If (Qt_4_2_0 -) ConstantOpacity, %End %If (Qt_4_2_0 -) MaskedBrush, %End PaintOutsidePaintEvent, %If (Qt_4_3_0 -) PerspectiveTransform, %End %If (Qt_4_3_0 -) BlendModes, %End %If (Qt_4_4_0 -) ObjectBoundingModeGradients, %End %If (Qt_4_5_0 -) RasterOpModes, %End AllFeatures, }; typedef QFlags PaintEngineFeatures; enum DirtyFlag { DirtyPen, DirtyBrush, DirtyBrushOrigin, DirtyFont, DirtyBackground, DirtyBackgroundMode, DirtyTransform, DirtyClipRegion, DirtyClipPath, DirtyHints, DirtyCompositionMode, DirtyClipEnabled, %If (Qt_4_2_0 -) DirtyOpacity, %End AllDirty, }; typedef QFlags DirtyFlags; enum PolygonDrawMode { OddEvenMode, WindingMode, ConvexMode, PolylineMode, }; explicit QPaintEngine(QFlags features = 0); virtual ~QPaintEngine(); bool isActive() const; void setActive(bool newState); virtual bool begin(QPaintDevice *pdev) = 0; virtual bool end() = 0; virtual void updateState(const QPaintEngineState &state /NoCopy/) = 0; virtual void drawRects(const QRect *rects /Array/, int rectCount /ArraySize/); virtual void drawRects(const QRectF *rects /Array/, int rectCount /ArraySize/); virtual void drawLines(const QLine *lines /Array/, int lineCount /ArraySize/); virtual void drawLines(const QLineF *lines /Array/, int lineCount /ArraySize/); virtual void drawEllipse(const QRectF &r); virtual void drawEllipse(const QRect &r); virtual void drawPath(const QPainterPath &path); virtual void drawPoints(const QPointF *points /Array/, int pointCount /ArraySize/); virtual void drawPoints(const QPoint *points /Array/, int pointCount /ArraySize/); virtual void drawPolygon(const QPointF *points /Array/, int pointCount /ArraySize/, QPaintEngine::PolygonDrawMode mode); virtual void drawPolygon(const QPoint *points /Array/, int pointCount /ArraySize/, QPaintEngine::PolygonDrawMode mode); virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) = 0; virtual void drawTextItem(const QPointF &p, const QTextItem &textItem /NoCopy/); virtual void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s); virtual void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, Qt::ImageConversionFlags flags = Qt::AutoColor); void setPaintDevice(QPaintDevice *device); QPaintDevice *paintDevice() const; enum Type { X11, Windows, QuickDraw, CoreGraphics, MacPrinter, QWindowSystem, PostScript, OpenGL, Picture, SVG, Raster, %If (Qt_4_3_0 -) Direct3D, %End %If (Qt_4_4_0 -) Pdf, %End %If (Qt_4_5_0 -) OpenVG, %End %If (Qt_4_6_0 -) OpenGL2, %End %If (Qt_4_6_0 -) PaintBuffer, %End %If (Qt_4_8_0 -) Blitter, %End User, MaxUser, }; virtual QPaintEngine::Type type() const = 0; bool hasFeature(QFlags feature) const; QPainter *painter() const; private: %If (Qt_4_2_0 -) QPaintEngine(const QPaintEngine &); %End }; QFlags operator|(QPaintEngine::PaintEngineFeature f1, QFlags f2); class QPaintEngineState { %TypeHeaderCode #include %End public: QFlags state() const; QPen pen() const; QBrush brush() const; QPointF brushOrigin() const; QBrush backgroundBrush() const; Qt::BGMode backgroundMode() const; QFont font() const; QMatrix matrix() const; %If (Qt_4_2_0 -) qreal opacity() const; %End Qt::ClipOperation clipOperation() const; QRegion clipRegion() const; QPainterPath clipPath() const; bool isClipEnabled() const; QFlags renderHints() const; QPainter::CompositionMode compositionMode() const; QPainter *painter() const; %If (Qt_4_3_0 -) QTransform transform() const; %End %If (Qt_4_3_0 -) bool brushNeedsResolving() const; %End %If (Qt_4_3_0 -) bool penNeedsResolving() const; %End }; PyQt-x11-gpl-4.11.4/sip/QtGui/qpainter.sip0000644000076500000240000006025212536324426020144 0ustar philstaff00000000000000// qpainter.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QPainter { %TypeHeaderCode #include %End %TypeCode // Return an array on the heap of class instances extracted from a set of // Python arguments. template static TYPE *qtgui_inst_array(const TYPE *first, PyObject *t, sipTypeDef *td) { TYPE *arr = new TYPE[1 + PyTuple_GET_SIZE(t)]; arr[0] = *first; for (SIP_SSIZE_T i = 0; i < PyTuple_GET_SIZE(t); ++i) { int iserr = 0, state; TYPE *itm; itm = reinterpret_cast(sipForceConvertToType(PyTuple_GET_ITEM(t, i), td, 0, SIP_NOT_NONE, &state, &iserr)); if (iserr) { sipReleaseType(itm, td, state); PyErr_Format(PyExc_TypeError, "each argument must be an instance of %s", sipTypeAsPyTypeObject(td)->tp_name); delete[] arr; return 0; } arr[1 + i] = *itm; sipReleaseType(itm, td, state); } return arr; } %End public: enum RenderHint { Antialiasing, TextAntialiasing, SmoothPixmapTransform, %If (Qt_4_3_0 -) HighQualityAntialiasing, %End %If (Qt_4_4_0 -) NonCosmeticDefaultPen, %End %If (Qt_5_0_0 -) Qt4CompatiblePainting, %End }; typedef QFlags RenderHints; QPainter(); explicit QPainter(QPaintDevice *); ~QPainter(); SIP_PYOBJECT __enter__(); %MethodCode // Check a device was passed. if (sipCpp->isActive()) { // Just return a reference to self. sipRes = sipSelf; Py_INCREF(sipRes); } else { PyErr_SetString(PyExc_ValueError, "QPainter must be created with a device"); sipRes = 0; } %End void __exit__(SIP_PYOBJECT type, SIP_PYOBJECT value, SIP_PYOBJECT traceback); %MethodCode sipCpp->end(); %End QPaintDevice *device() const; bool begin(QPaintDevice *); bool end(); bool isActive() const; %If (Qt_5_0_0 -) void initFrom(const QPaintDevice *device); %End %If (- Qt_5_0_0) void initFrom(const QWidget *widget); %End enum CompositionMode { CompositionMode_SourceOver, CompositionMode_DestinationOver, CompositionMode_Clear, CompositionMode_Source, CompositionMode_Destination, CompositionMode_SourceIn, CompositionMode_DestinationIn, CompositionMode_SourceOut, CompositionMode_DestinationOut, CompositionMode_SourceAtop, CompositionMode_DestinationAtop, CompositionMode_Xor, %If (Qt_4_3_0 -) CompositionMode_Plus, %End %If (Qt_4_3_0 -) CompositionMode_Multiply, %End %If (Qt_4_3_0 -) CompositionMode_Screen, %End %If (Qt_4_3_0 -) CompositionMode_Overlay, %End %If (Qt_4_3_0 -) CompositionMode_Darken, %End %If (Qt_4_3_0 -) CompositionMode_Lighten, %End %If (Qt_4_3_0 -) CompositionMode_ColorDodge, %End %If (Qt_4_3_0 -) CompositionMode_ColorBurn, %End %If (Qt_4_3_0 -) CompositionMode_HardLight, %End %If (Qt_4_3_0 -) CompositionMode_SoftLight, %End %If (Qt_4_3_0 -) CompositionMode_Difference, %End %If (Qt_4_3_0 -) CompositionMode_Exclusion, %End %If (Qt_4_5_0 -) RasterOp_SourceOrDestination, %End %If (Qt_4_5_0 -) RasterOp_SourceAndDestination, %End %If (Qt_4_5_0 -) RasterOp_SourceXorDestination, %End %If (Qt_4_5_0 -) RasterOp_NotSourceAndNotDestination, %End %If (Qt_4_5_0 -) RasterOp_NotSourceOrNotDestination, %End %If (Qt_4_5_0 -) RasterOp_NotSourceXorDestination, %End %If (Qt_4_5_0 -) RasterOp_NotSource, %End %If (Qt_4_5_0 -) RasterOp_NotSourceAndDestination, %End %If (Qt_4_5_0 -) RasterOp_SourceAndNotDestination, %End %If (Qt_5_0_0 -) RasterOp_NotSourceOrDestination, %End %If (Qt_5_0_0 -) RasterOp_SourceOrNotDestination, %End %If (Qt_5_0_0 -) RasterOp_ClearDestination, %End %If (Qt_5_0_0 -) RasterOp_SetDestination, %End %If (Qt_5_0_0 -) RasterOp_NotDestination, %End }; void setCompositionMode(QPainter::CompositionMode mode); QPainter::CompositionMode compositionMode() const; const QFont &font() const; void setFont(const QFont &f); QFontMetrics fontMetrics() const; QFontInfo fontInfo() const; void setPen(const QColor &color); void setPen(const QPen &pen); void setPen(Qt::PenStyle style); const QPen &pen() const; void setBrush(const QBrush &brush); void setBrush(Qt::BrushStyle style); const QBrush &brush() const; void setBackgroundMode(Qt::BGMode mode); Qt::BGMode backgroundMode() const; QPoint brushOrigin() const; void setBrushOrigin(const QPointF &); void setBackground(const QBrush &bg); const QBrush &background() const; QRegion clipRegion() const; QPainterPath clipPath() const; void setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip); void setClipRegion(const QRegion ®ion, Qt::ClipOperation operation = Qt::ReplaceClip); void setClipPath(const QPainterPath &path, Qt::ClipOperation operation = Qt::ReplaceClip); void setClipping(bool enable); bool hasClipping() const; void save(); void restore(); void setMatrix(const QMatrix &matrix, bool combine = false); const QMatrix &matrix() const; const QMatrix &deviceMatrix() const; void resetMatrix(); void setMatrixEnabled(bool enabled); bool matrixEnabled() const; void scale(qreal sx, qreal sy); void shear(qreal sh, qreal sv); void rotate(qreal a); void translate(const QPointF &offset); QRect window() const; void setWindow(const QRect &window); QRect viewport() const; void setViewport(const QRect &viewport); void setViewTransformEnabled(bool enable); bool viewTransformEnabled() const; void strokePath(const QPainterPath &path, const QPen &pen); void fillPath(const QPainterPath &path, const QBrush &brush); void drawPath(const QPainterPath &path); void drawPoints(const QPointF *point, ...); %MethodCode QPointF *points = qtgui_inst_array(a0, a1, sipType_QPointF); if (points) { sipCpp->drawPoints(points, 1 + PyTuple_GET_SIZE(a1)); delete[] points; } else sipIsErr = 1; %End void drawPoints(const QPolygonF &points); void drawPoints(const QPoint *point, ...); %MethodCode QPoint *points = qtgui_inst_array(a0, a1, sipType_QPoint); if (points) { sipCpp->drawPoints(points, 1 + PyTuple_GET_SIZE(a1)); delete[] points; } else sipIsErr = 1; %End void drawPoints(const QPolygon &points); void drawLines(const QLineF *line, ...); %MethodCode QLineF *lines = qtgui_inst_array(a0, a1, sipType_QLineF); if (lines) { sipCpp->drawLines(lines, 1 + PyTuple_GET_SIZE(a1)); delete[] lines; } else sipIsErr = 1; %End void drawLines(const QVector &lines); void drawLines(const QPointF *pointPair, ...); %MethodCode QPointF *pairs = qtgui_inst_array(a0, a1, sipType_QPointF); if (pairs) { sipCpp->drawLines(pairs, (1 + PyTuple_GET_SIZE(a1)) / 2); delete[] pairs; } else sipIsErr = 1; %End void drawLines(const QVector &pointPairs); void drawLines(const QLine *line, ...); %MethodCode QLine *lines = qtgui_inst_array(a0, a1, sipType_QLine); if (lines) { sipCpp->drawLines(lines, 1 + PyTuple_GET_SIZE(a1)); delete[] lines; } else sipIsErr = 1; %End void drawLines(const QVector &lines); void drawLines(const QPoint *pointPair, ...); %MethodCode QPoint *pairs = qtgui_inst_array(a0, a1, sipType_QPoint); if (pairs) { sipCpp->drawLines(pairs, (1 + PyTuple_GET_SIZE(a1)) / 2); delete[] pairs; } else sipIsErr = 1; %End void drawLines(const QVector &pointPairs); void drawRects(const QRectF *rect, ...); %MethodCode QRectF *rects = qtgui_inst_array(a0, a1, sipType_QRectF); if (rects) { sipCpp->drawRects(rects, 1 + PyTuple_GET_SIZE(a1)); delete[] rects; } else sipIsErr = 1; %End void drawRects(const QVector &rects); void drawRects(const QRect *rect, ...); %MethodCode QRect *rects = qtgui_inst_array(a0, a1, sipType_QRect); if (rects) { sipCpp->drawRects(rects, 1 + PyTuple_GET_SIZE(a1)); delete[] rects; } else sipIsErr = 1; %End void drawRects(const QVector &rects); void drawEllipse(const QRectF &r); void drawEllipse(const QRect &r); void drawPolyline(const QPointF *point, ...); %MethodCode QPointF *points = qtgui_inst_array(a0, a1, sipType_QPointF); if (points) { sipCpp->drawPolyline(points, 1 + PyTuple_GET_SIZE(a1)); delete[] points; } else sipIsErr = 1; %End void drawPolyline(const QPolygonF &polyline); void drawPolyline(const QPoint *point, ...); %MethodCode QPoint *points = qtgui_inst_array(a0, a1, sipType_QPoint); if (points) { sipCpp->drawPolyline(points, 1 + PyTuple_GET_SIZE(a1)); delete[] points; } else sipIsErr = 1; %End void drawPolyline(const QPolygon &polyline); void drawPolygon(const QPointF *point, ...); %MethodCode QPointF *points = qtgui_inst_array(a0, a1, sipType_QPointF); if (points) { sipCpp->drawPolygon(points, 1 + PyTuple_GET_SIZE(a1)); delete[] points; } else sipIsErr = 1; %End void drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill); void drawPolygon(const QPoint *point, ...); %MethodCode QPoint *points = qtgui_inst_array(a0, a1, sipType_QPoint); if (points) { sipCpp->drawPolygon(points, 1 + PyTuple_GET_SIZE(a1)); delete[] points; } else sipIsErr = 1; %End void drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill); void drawConvexPolygon(const QPointF *point, ...); %MethodCode QPointF *points = qtgui_inst_array(a0, a1, sipType_QPointF); if (points) { sipCpp->drawConvexPolygon(points, 1 + PyTuple_GET_SIZE(a1)); delete[] points; } else sipIsErr = 1; %End void drawConvexPolygon(const QPolygonF &poly); void drawConvexPolygon(const QPoint *point, ...); %MethodCode QPoint *points = qtgui_inst_array(a0, a1, sipType_QPoint); if (points) { sipCpp->drawConvexPolygon(points, 1 + PyTuple_GET_SIZE(a1)); delete[] points; } else sipIsErr = 1; %End void drawConvexPolygon(const QPolygon &poly); void drawArc(const QRectF &rect, int a, int alen); void drawPie(const QRectF &rect, int a, int alen); void drawChord(const QRectF &rect, int a, int alen); void drawRoundRect(const QRectF &r, int xRound = 25, int yRound = 25); void drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &pos = QPointF()); void drawPicture(const QPointF &p, const QPicture &picture); void drawPixmap(const QRectF &targetRect, const QPixmap &pixmap, const QRectF &sourceRect); void setLayoutDirection(Qt::LayoutDirection direction); Qt::LayoutDirection layoutDirection() const; void drawText(const QPointF &p, const QString &s); void drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect /Out/ = 0); void drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect /Out/ = 0); void drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption()); QRectF boundingRect(const QRectF &rect, int flags, const QString &text); QRect boundingRect(const QRect &rect, int flags, const QString &text); QRectF boundingRect(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption()); void fillRect(const QRectF &, const QBrush &); void fillRect(const QRect &, const QBrush &); void eraseRect(const QRectF &); void setRenderHint(QPainter::RenderHint hint, bool on = true); QFlags renderHints() const; %If (Qt_4_2_0 -) void setRenderHints(QFlags hints, bool on = true); %End QPaintEngine *paintEngine() const; static void setRedirected(const QPaintDevice *device, QPaintDevice *replacement, const QPoint &offset = QPoint()); static QPaintDevice *redirected(const QPaintDevice *device, QPoint *offset = 0); static void restoreRedirected(const QPaintDevice *device); void drawLine(const QLineF &l); void drawLine(const QLine &line); void drawLine(int x1, int y1, int x2, int y2); void drawLine(const QPoint &p1, const QPoint &p2); void drawLine(const QPointF &p1, const QPointF &p2); void drawRect(const QRectF &rect); void drawRect(int x, int y, int w, int h); void drawRect(const QRect &r); void drawPoint(const QPointF &p); void drawPoint(int x, int y); void drawPoint(const QPoint &p); void drawRoundRect(int x, int y, int w, int h, int xRound = 25, int yRound = 25); void drawRoundRect(const QRect &r, int xRound = 25, int yRound = 25); void drawEllipse(int x, int y, int w, int h); void drawArc(const QRect &r, int a, int alen); void drawArc(int x, int y, int w, int h, int a, int alen); void drawPie(const QRect &rect, int a, int alen); void drawPie(int x, int y, int w, int h, int a, int alen); void drawChord(const QRect &rect, int a, int alen); void drawChord(int x, int y, int w, int h, int a, int alen); void setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip); void setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip); void eraseRect(const QRect &rect); void eraseRect(int x, int y, int w, int h); void fillRect(int x, int y, int w, int h, const QBrush &b); void setBrushOrigin(int x, int y); void setBrushOrigin(const QPoint &p); void drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &pos = QPoint()); void drawTiledPixmap(int x, int y, int width, int height, const QPixmap &pixmap, int sx = 0, int sy = 0); void drawPixmap(const QRect &targetRect, const QPixmap &pixmap, const QRect &sourceRect); void drawPixmap(const QPointF &p, const QPixmap &pm); void drawPixmap(const QPoint &p, const QPixmap &pm); void drawPixmap(const QRect &r, const QPixmap &pm); void drawPixmap(int x, int y, const QPixmap &pm); void drawPixmap(int x, int y, int w, int h, const QPixmap &pm); void drawPixmap(int x, int y, int w, int h, const QPixmap &pm, int sx, int sy, int sw, int sh); void drawPixmap(int x, int y, const QPixmap &pm, int sx, int sy, int sw, int sh); void drawPixmap(const QPointF &p, const QPixmap &pm, const QRectF &sr); void drawPixmap(const QPoint &p, const QPixmap &pm, const QRect &sr); void drawImage(const QRectF &targetRect, const QImage &image, const QRectF &sourceRect, Qt::ImageConversionFlags flags = Qt::AutoColor); void drawImage(const QRect &targetRect, const QImage &image, const QRect &sourceRect, Qt::ImageConversionFlags flags = Qt::AutoColor); void drawImage(const QPointF &p, const QImage &image, const QRectF &sr, Qt::ImageConversionFlags flags = Qt::AutoColor); void drawImage(const QPoint &p, const QImage &image, const QRect &sr, Qt::ImageConversionFlags flags = Qt::AutoColor); void drawImage(const QRectF &r, const QImage &image); void drawImage(const QRect &r, const QImage &image); void drawImage(const QPointF &p, const QImage &image); void drawImage(const QPoint &p, const QImage &image); void drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor); void drawText(const QPoint &p, const QString &s); void drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect /Out/ = 0); void drawText(int x, int y, const QString &s); QRect boundingRect(int x, int y, int w, int h, int flags, const QString &text); %If (Qt_4_2_0 -) QMatrix combinedMatrix() const; %End %If (Qt_4_2_0 -) qreal opacity() const; %End %If (Qt_4_2_0 -) void setOpacity(qreal opacity); %End void translate(qreal dx, qreal dy); void translate(const QPoint &offset); void setViewport(int x, int y, int w, int h); void setWindow(int x, int y, int w, int h); %If (Qt_4_2_0 -) const QMatrix &worldMatrix() const; %End %If (Qt_4_2_0 -) void setWorldMatrix(const QMatrix &matrix, bool combine = false); %End %If (Qt_4_2_0 -) bool worldMatrixEnabled() const; %End %If (Qt_4_2_0 -) void setWorldMatrixEnabled(bool enabled); %End void drawPicture(int x, int y, const QPicture &p); void drawPicture(const QPoint &pt, const QPicture &p); %If (Qt_4_3_0 -) void setTransform(const QTransform &transform, bool combine = false); %End %If (Qt_4_3_0 -) const QTransform &transform() const; %End %If (Qt_4_3_0 -) const QTransform &deviceTransform() const; %End %If (Qt_4_3_0 -) void resetTransform(); %End %If (Qt_4_3_0 -) void setWorldTransform(const QTransform &matrix, bool combine = false); %End %If (Qt_4_3_0 -) const QTransform &worldTransform() const; %End %If (Qt_4_3_0 -) QTransform combinedTransform() const; %End %If (Qt_4_3_0 -) bool testRenderHint(QPainter::RenderHint hint) const; %End %If (Qt_4_4_0 -) void drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize); %End %If (Qt_4_4_0 -) void drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize); %End %If (Qt_4_4_0 -) void drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize); %End %If (Qt_4_4_0 -) void drawEllipse(const QPointF ¢er, qreal rx, qreal ry); %End %If (Qt_4_4_0 -) void drawEllipse(const QPoint ¢er, int rx, int ry); %End %If (Qt_4_5_0 -) void fillRect(const QRectF &, const QColor &color); %End %If (Qt_4_5_0 -) void fillRect(const QRect &, const QColor &color); %End %If (Qt_4_5_0 -) void fillRect(int x, int y, int w, int h, const QColor &b); %End %If (Qt_4_5_0 -) void fillRect(int x, int y, int w, int h, Qt::GlobalColor c); %End %If (Qt_4_5_0 -) void fillRect(const QRect &r, Qt::GlobalColor c); %End %If (Qt_4_5_0 -) void fillRect(const QRectF &r, Qt::GlobalColor c); %End %If (Qt_4_5_0 -) void fillRect(int x, int y, int w, int h, Qt::BrushStyle style); %End %If (Qt_4_5_0 -) void fillRect(const QRect &r, Qt::BrushStyle style); %End %If (Qt_4_5_0 -) void fillRect(const QRectF &r, Qt::BrushStyle style); %End %If (Qt_4_6_0 -) void beginNativePainting(); %End %If (Qt_4_6_0 -) void endNativePainting(); %End %If (Qt_4_7_0 -) class PixmapFragment { %TypeHeaderCode #include %End public: qreal x; qreal y; qreal sourceLeft; qreal sourceTop; qreal width; qreal height; qreal scaleX; qreal scaleY; qreal rotation; qreal opacity; static QPainter::PixmapFragment create(const QPointF &pos, const QRectF &sourceRect, qreal scaleX = 1, qreal scaleY = 1, qreal rotation = 0, qreal opacity = 1) /Factory/; }; %End %If (Qt_4_7_0 -) enum PixmapFragmentHint { OpaqueHint, }; %End %If (Qt_4_7_0 -) typedef QFlags PixmapFragmentHints; %End %If (Qt_4_7_0 -) void drawPixmapFragments(SIP_PYLIST fragments /DocType="list-of-QPainter.PixmapFragment"/, const QPixmap &pixmap, QFlags hints = 0); %MethodCode // Allocate temporary storage for the C++ conversions. SIP_SSIZE_T numFragments = PyList_GET_SIZE(a0); QPainter::PixmapFragment *fragments = new QPainter::PixmapFragment[numFragments]; // Convert the fragments. for (SIP_SSIZE_T i = 0; i < numFragments; ++i) { void *cpp = sipForceConvertToType(PyList_GET_ITEM(a0, i), sipType_QPainter_PixmapFragment, NULL, SIP_NO_CONVERTORS, NULL, &sipIsErr); fragments[i] = *reinterpret_cast(cpp); } if (!sipIsErr) { Py_BEGIN_ALLOW_THREADS sipCpp->drawPixmapFragments(fragments, numFragments, *a1, *a2); Py_END_ALLOW_THREADS } delete[] fragments; %End %End %If (Qt_4_8_0 - Qt_5_0_0) void drawPixmapFragments(SIP_PYLIST targetRects /DocType="list-of-QRectF"/, SIP_PYLIST sourceRects /AllowNone, DocType="list-of-QRectF"/, const QPixmap &pixmap, QFlags hints = 0); %MethodCode // Allocate temporary storage for the C++ conversions. QRectF *target, *source; SIP_SSIZE_T numFragments = PyList_GET_SIZE(a0); if (a1) { if (PyList_GET_SIZE(a1) < numFragments) numFragments = PyList_GET_SIZE(a1); source = new QRectF[numFragments]; } else { source = 0; } target = new QRectF[numFragments]; // Convert the target and source. for (SIP_SSIZE_T i = 0; i < numFragments; ++i) { void *cpp; cpp = sipForceConvertToType(PyList_GET_ITEM(a0, i), sipType_QRectF, NULL, SIP_NO_CONVERTORS, NULL, &sipIsErr); target[i] = *reinterpret_cast(cpp); if (source) { cpp = sipForceConvertToType(PyList_GET_ITEM(a1, i), sipType_QRectF, NULL, SIP_NO_CONVERTORS, NULL, &sipIsErr); source[i] = *reinterpret_cast(cpp); } } if (!sipIsErr) { Py_BEGIN_ALLOW_THREADS sipCpp->drawPixmapFragments(target, source, numFragments, *a2, *a3); Py_END_ALLOW_THREADS } delete[] target; if (source) delete[] source; %End %End %If (Qt_4_7_0 -) void drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText); %End %If (Qt_4_7_0 -) void drawStaticText(const QPoint &p, const QStaticText &staticText); %End %If (Qt_4_7_0 -) void drawStaticText(int x, int y, const QStaticText &staticText); %End %If (Qt_4_8_0 -) QRectF clipBoundingRect() const; %End %If (Qt_4_8_0 -) %If (PyQt_RawFont) void drawGlyphRun(const QPointF &position, const QGlyphRun &glyphRun); %End %End private: %If (Qt_4_2_0 -) QPainter(const QPainter &); %End }; QFlags operator|(QPainter::RenderHint f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qpainterpath.sip0000644000076500000240000001750212536324426021021 0ustar philstaff00000000000000// qpainterpath.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QPainterPath { %TypeHeaderCode #include %End public: enum ElementType { MoveToElement, LineToElement, CurveToElement, CurveToDataElement, }; class Element { %TypeHeaderCode #include %End public: qreal x; qreal y; QPainterPath::ElementType type; bool isMoveTo() const; bool isLineTo() const; bool isCurveTo() const; bool operator==(const QPainterPath::Element &e) const; %If (Qt_4_2_0 -) bool operator!=(const QPainterPath::Element &e) const; %End operator QPointF() const; }; QPainterPath(); explicit QPainterPath(const QPointF &startPoint); QPainterPath(const QPainterPath &other); ~QPainterPath(); void closeSubpath(); void moveTo(const QPointF &p); void lineTo(const QPointF &p); void arcTo(const QRectF &rect, qreal startAngle, qreal arcLength); void cubicTo(const QPointF &ctrlPt1, const QPointF &ctrlPt2, const QPointF &endPt); void quadTo(const QPointF &ctrlPt, const QPointF &endPt); QPointF currentPosition() const; void addRect(const QRectF &rect); void addEllipse(const QRectF &rect); void addPolygon(const QPolygonF &polygon); void addText(const QPointF &point, const QFont &f, const QString &text); void addPath(const QPainterPath &path); void addRegion(const QRegion ®ion); void connectPath(const QPainterPath &path); bool contains(const QPointF &pt) const; bool contains(const QRectF &rect) const; bool intersects(const QRectF &rect) const; QRectF boundingRect() const; QRectF controlPointRect() const; Qt::FillRule fillRule() const; void setFillRule(Qt::FillRule fillRule); QPainterPath toReversed() const; QList toSubpathPolygons(const QMatrix &matrix = QMatrix()) const; QList toFillPolygons(const QMatrix &matrix = QMatrix()) const; QPolygonF toFillPolygon(const QMatrix &matrix = QMatrix()) const; bool operator==(const QPainterPath &other) const; bool operator!=(const QPainterPath &other) const; void moveTo(qreal x, qreal y); %If (Qt_4_2_0 -) void arcMoveTo(const QRectF &rect, qreal angle); %End %If (Qt_4_2_0 -) void arcMoveTo(qreal x, qreal y, qreal w, qreal h, qreal angle); %End void arcTo(qreal x, qreal y, qreal w, qreal h, qreal startAngle, qreal arcLenght); void lineTo(qreal x, qreal y); void cubicTo(qreal ctrlPt1x, qreal ctrlPt1y, qreal ctrlPt2x, qreal ctrlPt2y, qreal endPtx, qreal endPty); void quadTo(qreal ctrlPtx, qreal ctrlPty, qreal endPtx, qreal endPty); void addEllipse(qreal x, qreal y, qreal w, qreal h); void addRect(qreal x, qreal y, qreal w, qreal h); void addText(qreal x, qreal y, const QFont &f, const QString &text); bool isEmpty() const; int elementCount() const; %If (Qt_5_0_0 -) QPainterPath::Element elementAt(int i) const; %End %If (- Qt_5_0_0) const QPainterPath::Element &elementAt(int i) const; %End %If (Qt_4_2_0 -) void setElementPositionAt(int i, qreal x, qreal y); %End %If (Qt_4_3_0 -) void addRoundRect(const QRectF &rect, int xRnd, int yRnd); %End %If (Qt_4_3_0 -) QList toSubpathPolygons(const QTransform &matrix) const; %End %If (Qt_4_3_0 -) QList toFillPolygons(const QTransform &matrix) const; %End %If (Qt_4_3_0 -) QPolygonF toFillPolygon(const QTransform &matrix) const; %End %If (Qt_4_3_0 -) qreal length() const; %End %If (Qt_4_3_0 -) qreal percentAtLength(qreal t) const; %End %If (Qt_4_3_0 -) QPointF pointAtPercent(qreal t) const; %End %If (Qt_4_3_0 -) qreal angleAtPercent(qreal t) const; %End %If (Qt_4_3_0 -) qreal slopeAtPercent(qreal t) const; %End %If (Qt_4_3_0 -) bool intersects(const QPainterPath &p) const; %End %If (Qt_4_3_0 -) bool contains(const QPainterPath &p) const; %End %If (Qt_4_3_0 -) QPainterPath united(const QPainterPath &r) const; %End %If (Qt_4_3_0 -) QPainterPath intersected(const QPainterPath &r) const; %End %If (Qt_4_3_0 -) QPainterPath subtracted(const QPainterPath &r) const; %End %If (Qt_4_3_0 -) QPainterPath subtractedInverted(const QPainterPath &r) const; %End %If (Qt_4_3_0 -) void addRoundRect(qreal x, qreal y, qreal w, qreal h, int xRnd, int yRnd); %End %If (Qt_4_3_0 -) void addRoundRect(const QRectF &rect, int roundness); %End %If (Qt_4_3_0 -) void addRoundRect(qreal x, qreal y, qreal w, qreal h, int roundness); %End %If (Qt_4_4_0 -) void addRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize); %End %If (Qt_4_4_0 -) void addRoundedRect(qreal x, qreal y, qreal w, qreal h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize); %End %If (Qt_4_4_0 -) void addEllipse(const QPointF ¢er, qreal rx, qreal ry); %End %If (Qt_4_4_0 -) QPainterPath simplified() const; %End %If (Qt_4_5_0 -) QPainterPath operator&(const QPainterPath &other) const; %End %If (Qt_4_5_0 -) QPainterPath operator|(const QPainterPath &other) const; %End %If (Qt_4_5_0 -) QPainterPath operator+(const QPainterPath &other) const; %End %If (Qt_4_5_0 -) QPainterPath operator-(const QPainterPath &other) const; %End %If (Qt_4_5_0 -) QPainterPath &operator&=(const QPainterPath &other); %End %If (Qt_4_5_0 -) QPainterPath &operator|=(const QPainterPath &other); %End %If (Qt_4_5_0 -) QPainterPath &operator+=(const QPainterPath &other); %End %If (Qt_4_5_0 -) QPainterPath &operator-=(const QPainterPath &other); %End %If (Qt_4_6_0 -) void translate(qreal dx, qreal dy); %End %If (Qt_4_6_0 -) QPainterPath translated(qreal dx, qreal dy) const; %End %If (Qt_4_6_0 -) void translate(const QPointF &offset); %End %If (Qt_4_6_0 -) QPainterPath translated(const QPointF &offset) const; %End %If (Qt_4_8_0 -) void swap(QPainterPath &other); %End }; QDataStream &operator<<(QDataStream &, const QPainterPath & /Constrained/); QDataStream &operator>>(QDataStream &, QPainterPath & /Constrained/); class QPainterPathStroker { %TypeHeaderCode #include %End public: QPainterPathStroker(); ~QPainterPathStroker(); void setWidth(qreal width); qreal width() const; void setCapStyle(Qt::PenCapStyle style); Qt::PenCapStyle capStyle() const; void setJoinStyle(Qt::PenJoinStyle style); Qt::PenJoinStyle joinStyle() const; void setMiterLimit(qreal length); qreal miterLimit() const; void setCurveThreshold(qreal threshold); qreal curveThreshold() const; void setDashPattern(Qt::PenStyle); void setDashPattern(const QVector &dashPattern); QVector dashPattern() const; QPainterPath createStroke(const QPainterPath &path) const; %If (Qt_4_3_0 -) void setDashOffset(qreal offset); %End %If (Qt_4_3_0 -) qreal dashOffset() const; %End private: %If (Qt_4_6_0 -) QPainterPathStroker(const QPainterPathStroker &); %End }; PyQt-x11-gpl-4.11.4/sip/QtGui/qpalette.sip0000644000076500000240000001210112536324426020126 0ustar philstaff00000000000000// qpalette.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QPalette { %TypeHeaderCode #include %End public: QPalette(); QPalette(const QColor &button); QPalette(Qt::GlobalColor button); QPalette(const QColor &button, const QColor &background); QPalette(const QBrush &foreground, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &background); QPalette(const QColor &foreground, const QColor &background, const QColor &light, const QColor &dark, const QColor &mid, const QColor &text, const QColor &base); QPalette(const QPalette &palette); QPalette(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QPalette(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QPalette(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End ~QPalette(); enum ColorGroup { Active, Disabled, Inactive, NColorGroups, Current, All, Normal, }; enum ColorRole { WindowText, Foreground, Button, Light, Midlight, Dark, Mid, Text, BrightText, ButtonText, Base, Window, Background, Shadow, Highlight, HighlightedText, Link, LinkVisited, AlternateBase, %If (Qt_4_4_0 -) ToolTipBase, %End %If (Qt_4_4_0 -) ToolTipText, %End NColorRoles, NoRole, }; QPalette::ColorGroup currentColorGroup() const; void setCurrentColorGroup(QPalette::ColorGroup cg); const QColor &color(QPalette::ColorGroup cg, QPalette::ColorRole cr) const; const QBrush &brush(QPalette::ColorGroup cg, QPalette::ColorRole cr) const; void setBrush(QPalette::ColorGroup cg, QPalette::ColorRole cr, const QBrush &brush); void setColorGroup(QPalette::ColorGroup cr, const QBrush &foreground, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &background); bool isEqual(QPalette::ColorGroup cr1, QPalette::ColorGroup cr2) const; const QColor &color(QPalette::ColorRole cr) const; const QBrush &brush(QPalette::ColorRole cr) const; const QBrush &foreground() const; const QBrush &windowText() const; const QBrush &button() const; const QBrush &light() const; const QBrush &dark() const; const QBrush &mid() const; const QBrush &text() const; const QBrush &base() const; const QBrush &alternateBase() const; const QBrush &window() const; const QBrush &background() const; const QBrush &midlight() const; const QBrush &brightText() const; const QBrush &buttonText() const; const QBrush &shadow() const; const QBrush &highlight() const; const QBrush &highlightedText() const; const QBrush &link() const; const QBrush &linkVisited() const; %If (Qt_4_4_0 -) const QBrush &toolTipBase() const; %End %If (Qt_4_4_0 -) const QBrush &toolTipText() const; %End bool operator==(const QPalette &p) const; bool operator!=(const QPalette &p) const; bool isCopyOf(const QPalette &p) const; %If (PyQt_Deprecated_5_0) int serialNumber() const; %End QPalette resolve(const QPalette &) const; uint resolve() const; void resolve(uint mask); void setColor(QPalette::ColorGroup acg, QPalette::ColorRole acr, const QColor &acolor); void setColor(QPalette::ColorRole acr, const QColor &acolor); void setBrush(QPalette::ColorRole acr, const QBrush &abrush); %If (Qt_4_2_0 -) bool isBrushSet(QPalette::ColorGroup cg, QPalette::ColorRole cr) const; %End %If (Qt_4_3_0 -) qint64 cacheKey() const; %End %If (Qt_5_0_0 -) void swap(QPalette &other); %End }; QDataStream &operator<<(QDataStream &s, const QPalette &p /Constrained/); QDataStream &operator>>(QDataStream &ds, QPalette &p /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtGui/qpen.sip0000644000076500000240000000723712536324426017270 0ustar philstaff00000000000000// qpen.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QPen { %TypeHeaderCode #include %End %ConvertToTypeCode // SIP doesn't support automatic type convertors so we explicitly allow a // QColor to be used whenever a QPen is expected. if (sipIsErr == NULL) return (sipCanConvertToType(sipPy, sipType_QPen, SIP_NO_CONVERTORS) || sipCanConvertToType(sipPy, sipType_QColor, 0)); if (sipCanConvertToType(sipPy, sipType_QPen, SIP_NO_CONVERTORS)) { *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QPen, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; } int state; QColor *c = reinterpret_cast(sipConvertToType(sipPy, sipType_QColor, 0, 0, &state, sipIsErr)); if (*sipIsErr) { sipReleaseType(c, sipType_QColor, state); return 0; } *sipCppPtr = new QPen(*c); sipReleaseType(c, sipType_QColor, state); return sipGetState(sipTransferObj); %End public: QPen(); QPen(Qt::PenStyle); QPen(const QColor &color); QPen(const QBrush &brush, qreal width, Qt::PenStyle style = Qt::SolidLine, Qt::PenCapStyle cap = Qt::SquareCap, Qt::PenJoinStyle join = Qt::BevelJoin); QPen(const QPen &pen); QPen(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QPen(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QPen(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End ~QPen(); Qt::PenStyle style() const; void setStyle(Qt::PenStyle); qreal widthF() const; void setWidthF(qreal width); int width() const; void setWidth(int width); QColor color() const; void setColor(const QColor &color); QBrush brush() const; void setBrush(const QBrush &brush); bool isSolid() const; Qt::PenCapStyle capStyle() const; void setCapStyle(Qt::PenCapStyle pcs); Qt::PenJoinStyle joinStyle() const; void setJoinStyle(Qt::PenJoinStyle pcs); QVector dashPattern() const; void setDashPattern(const QVector &pattern); qreal miterLimit() const; void setMiterLimit(qreal limit); bool operator==(const QPen &p) const; bool operator!=(const QPen &p) const; %If (Qt_4_3_0 -) qreal dashOffset() const; %End %If (Qt_4_3_0 -) void setDashOffset(qreal doffset); %End %If (Qt_4_3_0 -) bool isCosmetic() const; %End %If (Qt_4_3_0 -) void setCosmetic(bool cosmetic); %End %If (Qt_4_8_0 -) void swap(QPen &other); %End }; QDataStream &operator<<(QDataStream &, const QPen & /Constrained/); QDataStream &operator>>(QDataStream &, QPen & /Constrained/); %If (Qt_4_3_0 -) void qSwap(QPen &value1, QPen &value2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qpicture.sip0000644000076500000240000001344512536324426020157 0ustar philstaff00000000000000// qpicture.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QPicture : QPaintDevice { %TypeHeaderCode #include %End public: explicit QPicture(int formatVersion = -1); QPicture(const QPicture &); virtual ~QPicture(); bool isNull() const; virtual int devType() const; uint size() const; const char *data() const /Encoding="None"/; virtual void setData(const char *data /Array/, uint size /ArraySize/); bool play(QPainter *p); bool load(QIODevice *dev, const char *format = 0) /ReleaseGIL/; bool load(const QString &fileName, const char *format = 0) /ReleaseGIL/; bool save(QIODevice *dev, const char *format = 0) /ReleaseGIL/; bool save(const QString &fileName, const char *format = 0) /ReleaseGIL/; QRect boundingRect() const; void setBoundingRect(const QRect &r); void detach(); bool isDetached() const; static const char *pictureFormat(const QString &fileName); static QList inputFormats(); static QList outputFormats(); static QStringList inputFormatList(); static QStringList outputFormatList(); virtual QPaintEngine *paintEngine() const; protected: virtual int metric(QPaintDevice::PaintDeviceMetric m) const; public: %If (Qt_4_8_0 -) void swap(QPicture &other); %End }; class QPictureIO { %TypeHeaderCode #include %End %TypeCode // This defines the mapping between picture formats and the corresponding // Python i/o handler callables. struct qtgui_pio { const char *format; // The format. PyObject *read; // The read handler. PyObject *write; // The write handler. qtgui_pio *next; // The next in the list. }; // The head of the list. static qtgui_pio *qtgui_pio_head = 0; // Find the entry for the given picture. static const qtgui_pio *qtgui_pio_find(QPictureIO *pio) { for (const qtgui_pio *p = qtgui_pio_head; p; p = p->next) if (qstrcmp(pio->format(), p->format) == 0) return p; return 0; } // This is the C++ read handler. static void qtgui_pio_read(QPictureIO *pio) { const qtgui_pio *p = qtgui_pio_find(pio); if (p && p->read) { Py_XDECREF(sipCallMethod(0, p->read, "D", pio, sipType_QPictureIO, NULL)); } } // This is the C++ write handler. static void qtgui_pio_write(QPictureIO *pio) { const qtgui_pio *p = qtgui_pio_find(pio); if (p && p->write) { Py_XDECREF(sipCallMethod(0, p->write, "D", pio, sipType_QPictureIO, NULL)); } } %End public: QPictureIO(); QPictureIO(QIODevice *ioDevice, const char *format); QPictureIO(const QString &fileName, const char *format); ~QPictureIO(); const QPicture &picture() const; int status() const; const char *format() const; QIODevice *ioDevice() const; QString fileName() const; int quality() const; QString description() const; const char *parameters() const; float gamma() const; void setPicture(const QPicture &); void setStatus(int); void setFormat(const char *); void setIODevice(QIODevice *); void setFileName(const QString &); void setQuality(int); void setDescription(const QString &); void setParameters(const char *); void setGamma(float); bool read() /ReleaseGIL/; bool write() /ReleaseGIL/; static QByteArray pictureFormat(const QString &fileName); static QByteArray pictureFormat(QIODevice *); static QList inputFormats(); static QList outputFormats(); static void defineIOHandler(const char *format, const char *header, const char *flags, SIP_PYCALLABLE read_picture /AllowNone/, SIP_PYCALLABLE write_picture /AllowNone/); %MethodCode // Convert None to NULL. if (a3 == Py_None) a3 = 0; if (a4 == Py_None) a4 = 0; // See if we already know about the format. qtgui_pio *p; for (p = qtgui_pio_head; p; p = p->next) if (qstrcmp(a0, p->format) == 0) break; if (!p) { // Handle the new format. p = new qtgui_pio; p->format = qstrdup(a0); p->read = 0; p->write = 0; p->next = qtgui_pio_head; qtgui_pio_head = p; } // Replace the old callables with the new ones. Py_XDECREF(p->read); p->read = a3; Py_XINCREF(p->read); Py_XDECREF(p->write); p->write = a4; Py_XINCREF(p->write); // Install the generic handlers. QPictureIO::defineIOHandler(a0, a1, a2, qtgui_pio_read, qtgui_pio_write); %End private: QPictureIO(const QPictureIO &); }; QDataStream &operator<<(QDataStream &in, const QPicture &p /Constrained/); QDataStream &operator>>(QDataStream &in, QPicture &p /Constrained/); %If (Qt_4_3_0 -) void qSwap(QPicture &value1, QPicture &value2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qpixmap.sip0000644000076500000240000001754712536324426020011 0ustar philstaff00000000000000// qpixmap.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QPixmap : QPaintDevice { %TypeHeaderCode #include %End public: QPixmap(); QPixmap(int w, int h); %If (Qt_5_0_0 -) explicit QPixmap(const QSize &); %End %If (- Qt_5_0_0) QPixmap(const QSize &); %End QPixmap(const QString &fileName, const char *format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor); QPixmap(SIP_PYLIST xpm /DocType="list-of-str"/) [(const char **xpm)]; %MethodCode // The Python interface is a list of strings that make up the image. const char **str = QtGui_ListToArray(a0); if (str) { sipCpp = new sipQPixmap(str); QtGui_DeleteArray(str); } else sipIsErr = 1; %End QPixmap(const QPixmap &); QPixmap(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new sipQPixmap(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new sipQPixmap(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End virtual ~QPixmap(); bool isNull() const; virtual int devType() const; int width() const; int height() const; QSize size() const; QRect rect() const; int depth() const; static int defaultDepth(); void fill(const QColor &color = Qt::white); %If (Qt_5_0_0 -) void fill(const QPaintDevice *device, const QPoint &ofs); %End %If (- Qt_5_0_0) void fill(const QWidget *widget, const QPoint &ofs); %End %If (Qt_5_0_0 -) void fill(const QPaintDevice *device, int xofs, int yofs); %End %If (- Qt_5_0_0) void fill(const QWidget *widget, int xofs, int yofs); %End QBitmap mask() const; void setMask(const QBitmap &); %If (PyQt_Deprecated_5_0) QPixmap alphaChannel() const; %End %If (PyQt_Deprecated_5_0) void setAlphaChannel(const QPixmap &); %End bool hasAlpha() const; bool hasAlphaChannel() const; QBitmap createHeuristicMask(bool clipTight = true) const; %If (Qt_5_0_0 -) QBitmap createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode = Qt::MaskInColor) const; %End %If (Qt_4_3_0 - Qt_5_0_0) QBitmap createMaskFromColor(const QColor &maskColor, Qt::MaskMode mode) const; %End %If (- Qt_5_0_0) QBitmap createMaskFromColor(const QColor &maskColor) const; %End static QPixmap grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1); %If (Qt_5_0_0 -) static QPixmap grabWidget(QObject *widget, const QRect &rect); %End %If (- Qt_5_0_0) static QPixmap grabWidget(QWidget *widget, const QRect &rect); %End %If (Qt_5_0_0 -) static QPixmap grabWidget(QObject *widget, int x = 0, int y = 0, int width = -1, int height = -1); %End %If (- Qt_5_0_0) static QPixmap grabWidget(QWidget *widget, int x = 0, int y = 0, int width = -1, int height = -1); %End QPixmap scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const; QPixmap scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const; QPixmap scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const; QPixmap scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const; QPixmap transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const; static QMatrix trueMatrix(const QMatrix &m, int w, int h); QImage toImage() const; static QPixmap fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor); %If (Qt_4_7_0 -) static QPixmap fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags = Qt::AutoColor); %End %If (Qt_4_7_0 -) bool convertFromImage(const QImage &img, Qt::ImageConversionFlags flags = Qt::AutoColor); %End bool load(const QString &fileName, const char *format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor); bool loadFromData(const uchar *buf /Array/, uint len /ArraySize/, const char *format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor); bool loadFromData(const QByteArray &buf, const char *format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor); %If (Qt_4_2_0 -) bool save(const QString &fileName, const char *format = 0, int quality = -1) const; %End %If (- Qt_4_2_0) bool save(const QString &fileName, const char *format, int quality = -1) const; %End %If (Qt_4_2_0 -) bool save(QIODevice *device, const char *format = 0, int quality = -1) const; %End %If (- Qt_4_2_0) bool save(QIODevice *device, const char *format, int quality = -1) const; %End %If (WS_WIN) // Windows specific conversion functions. %If (- Qt_5_0_0) enum HBitmapFormat { NoAlpha, PremultipliedAlpha, %If (Qt_4_5_0 -) Alpha, %End }; HBITMAP toWinHBITMAP(QPixmap::HBitmapFormat format = QPixmap::NoAlpha) const; static QPixmap fromWinHBITMAP(HBITMAP bitmap, QPixmap::HBitmapFormat format = QPixmap::NoAlpha); %If (Qt_4_6_0 -) HICON toWinHICON() const; static QPixmap fromWinHICON(HICON icon); %End %End %End QPixmap copy(const QRect &rect = QRect()) const; %If (PyQt_Deprecated_5_0) int serialNumber() const; %End void detach(); %If (- Qt_5_0_0) %If (WS_X11) Qt::HANDLE x11PictureHandle() const; %End %End bool isQBitmap() const; %If (- Qt_5_0_0) %If (WS_X11) const QX11Info &x11Info() const; %End %End %If (- Qt_5_0_0) %If (WS_X11) Qt::HANDLE handle() const; %End %End virtual QPaintEngine *paintEngine() const; protected: virtual int metric(QPaintDevice::PaintDeviceMetric) const; public: QPixmap copy(int ax, int ay, int awidth, int aheight) const; %If (Qt_4_3_0 -) QPixmap transformed(const QTransform &transform, Qt::TransformationMode mode = Qt::FastTransformation) const; %End %If (Qt_4_3_0 -) static QTransform trueMatrix(const QTransform &m, int w, int h); %End %If (Qt_4_3_0 -) qint64 cacheKey() const; %End %If (Qt_4_5_0 - Qt_5_0_0) %If (WS_X11) enum ShareMode { ImplicitlyShared, ExplicitlyShared, }; %End %End %If (Qt_4_5_0 - Qt_5_0_0) %If (WS_X11) static QPixmap fromX11Pixmap(Qt::HANDLE pixmap, QPixmap::ShareMode mode = QPixmap::ImplicitlyShared); %End %End %If (Qt_4_6_0 -) void scroll(int dx, int dy, const QRect &rect, QRegion *exposed /Out/ = 0); %End %If (Qt_4_6_0 -) void scroll(int dx, int dy, int x, int y, int width, int height, QRegion *exposed /Out/ = 0); %End %If (Qt_4_8_0 -) void swap(QPixmap &other); %End %If (Qt_5_0_0 -) qreal devicePixelRatio() const; %End %If (Qt_5_0_0 -) void setDevicePixelRatio(qreal scaleFactor); %End }; QDataStream &operator<<(QDataStream &, const QPixmap & /Constrained/); QDataStream &operator>>(QDataStream &, QPixmap & /Constrained/); %If (Qt_4_3_0 -) void qSwap(QPixmap &value1, QPixmap &value2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qpixmapcache.sip0000644000076500000240000000404512536324426020762 0ustar philstaff00000000000000// qpixmapcache.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPixmapCache { %TypeHeaderCode #include %End public: %If (Qt_4_6_0 -) class Key { %TypeHeaderCode #include %End public: Key(); Key(const QPixmapCache::Key &other); ~Key(); bool operator==(const QPixmapCache::Key &key) const; bool operator!=(const QPixmapCache::Key &key) const; }; %End static int cacheLimit(); static void clear(); static QPixmap *find(const QString &key); %If (- Qt_4_6_0) static bool find(const QString &key, QPixmap &); %End %If (Qt_4_6_0 -) static bool find(const QString &key, QPixmap *pixmap); %End %If (Qt_4_6_0 -) static bool find(const QPixmapCache::Key &key, QPixmap *pixmap); %End static bool insert(const QString &key, const QPixmap &); %If (Qt_4_6_0 -) static QPixmapCache::Key insert(const QPixmap &pixmap); %End static void remove(const QString &key); %If (Qt_4_6_0 -) static void remove(const QPixmapCache::Key &key); %End %If (Qt_4_6_0 -) static bool replace(const QPixmapCache::Key &key, const QPixmap &pixmap); %End static void setCacheLimit(int); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qplaintextedit.sip0000644000076500000240000001630312536324426021356 0ustar philstaff00000000000000// qplaintextedit.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QPlainTextEdit : QAbstractScrollArea { %TypeHeaderCode #include %End public: enum LineWrapMode { NoWrap, WidgetWidth, }; explicit QPlainTextEdit(QWidget *parent /TransferThis/ = 0); QPlainTextEdit(const QString &text, QWidget *parent /TransferThis/ = 0); virtual ~QPlainTextEdit(); void setDocument(QTextDocument *document /KeepReference/); QTextDocument *document() const; void setTextCursor(const QTextCursor &cursor); QTextCursor textCursor() const; bool isReadOnly() const; void setReadOnly(bool ro); void setTextInteractionFlags(Qt::TextInteractionFlags flags); Qt::TextInteractionFlags textInteractionFlags() const; void mergeCurrentCharFormat(const QTextCharFormat &modifier); void setCurrentCharFormat(const QTextCharFormat &format); QTextCharFormat currentCharFormat() const; bool tabChangesFocus() const; void setTabChangesFocus(bool b); void setDocumentTitle(const QString &title); QString documentTitle() const; bool isUndoRedoEnabled() const; void setUndoRedoEnabled(bool enable); void setMaximumBlockCount(int maximum); int maximumBlockCount() const; QPlainTextEdit::LineWrapMode lineWrapMode() const; void setLineWrapMode(QPlainTextEdit::LineWrapMode mode); QTextOption::WrapMode wordWrapMode() const; void setWordWrapMode(QTextOption::WrapMode policy); void setBackgroundVisible(bool visible); bool backgroundVisible() const; void setCenterOnScroll(bool enabled); bool centerOnScroll() const; bool find(const QString &exp, QFlags options = 0); QString toPlainText() const; void ensureCursorVisible(); virtual QVariant loadResource(int type, const QUrl &name); QMenu *createStandardContextMenu() /Factory/; QTextCursor cursorForPosition(const QPoint &pos) const; QRect cursorRect(const QTextCursor &cursor) const; QRect cursorRect() const; bool overwriteMode() const; void setOverwriteMode(bool overwrite); int tabStopWidth() const; void setTabStopWidth(int width); int cursorWidth() const; void setCursorWidth(int width); void setExtraSelections(const QList &selections); QList extraSelections() const; void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor); bool canPaste() const; %If (Qt_5_0_0 -) %If (PyQt_Printer) void print(QPagedPaintDevice *printer) const /PyName=print_/; %End %End %If (Qt_5_0_0 -) %If (Py_v3) %If (PyQt_Printer) void print(QPagedPaintDevice *printer) const; %End %End %End %If (- Qt_5_0_0) %If (PyQt_Printer) void print(QPrinter *printer) const /PyName=print_/; %End %End %If (- Qt_5_0_0) %If (Py_v3) %If (PyQt_Printer) void print(QPrinter *printer) const; %End %End %End int blockCount() const; public slots: void setPlainText(const QString &text); void cut(); void copy(); void paste(); void undo(); void redo(); void clear(); void selectAll(); void insertPlainText(const QString &text); void appendPlainText(const QString &text); void appendHtml(const QString &html); void centerCursor(); signals: void textChanged(); void undoAvailable(bool b); void redoAvailable(bool b); void copyAvailable(bool b); void selectionChanged(); void cursorPositionChanged(); void updateRequest(const QRect &rect, int dy); void blockCountChanged(int newBlockCount); void modificationChanged(bool); protected: virtual bool event(QEvent *e); virtual void timerEvent(QTimerEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual void keyReleaseEvent(QKeyEvent *e); virtual void resizeEvent(QResizeEvent *e); virtual void paintEvent(QPaintEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseDoubleClickEvent(QMouseEvent *e); virtual bool focusNextPrevChild(bool next); virtual void contextMenuEvent(QContextMenuEvent *e); virtual void dragEnterEvent(QDragEnterEvent *e); virtual void dragLeaveEvent(QDragLeaveEvent *e); virtual void dragMoveEvent(QDragMoveEvent *e); virtual void dropEvent(QDropEvent *e); virtual void focusInEvent(QFocusEvent *e); virtual void focusOutEvent(QFocusEvent *e); virtual void showEvent(QShowEvent *); virtual void changeEvent(QEvent *e); virtual void wheelEvent(QWheelEvent *e); virtual void inputMethodEvent(QInputMethodEvent *); public: %If (Qt_5_0_0 -) virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const; %End protected: %If (- Qt_5_0_0) virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const; %End virtual QMimeData *createMimeDataFromSelection() const /Factory/; virtual bool canInsertFromMimeData(const QMimeData *source) const; virtual void insertFromMimeData(const QMimeData *source); virtual void scrollContentsBy(int dx, int dy); QTextBlock firstVisibleBlock() const; QPointF contentOffset() const; QRectF blockBoundingRect(const QTextBlock &block) const; QRectF blockBoundingGeometry(const QTextBlock &block) const; QAbstractTextDocumentLayout::PaintContext getPaintContext() const; public: %If (Qt_4_7_0 -) QString anchorAt(const QPoint &pos) const; %End private: QPlainTextEdit(const QPlainTextEdit &); }; %End %If (Qt_4_4_0 -) class QPlainTextDocumentLayout : QAbstractTextDocumentLayout { %TypeHeaderCode #include %End public: QPlainTextDocumentLayout(QTextDocument *document); virtual ~QPlainTextDocumentLayout(); virtual void draw(QPainter *, const QAbstractTextDocumentLayout::PaintContext &); virtual int hitTest(const QPointF &, Qt::HitTestAccuracy) const; virtual int pageCount() const; virtual QSizeF documentSize() const; virtual QRectF frameBoundingRect(QTextFrame *) const; virtual QRectF blockBoundingRect(const QTextBlock &block) const; void ensureBlockLayout(const QTextBlock &block) const; void setCursorWidth(int width); int cursorWidth() const; void requestUpdate(); protected: virtual void documentChanged(int from, int, int charsAdded); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qpolygon.sip0000644000076500000240000003375212536324426020176 0ustar philstaff00000000000000// qpolygon.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QPolygon { %TypeHeaderCode #include %End %TypeCode // Set the points of a polygon from a Python list. static bool setPointsFromList(QPolygon *poly, PyObject *l) { int *coords = new int[PyList_GET_SIZE(l)]; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(l); ++i) { coords[i] = SIPLong_AsLong(PyList_GET_ITEM(l, i)); if (PyErr_Occurred() != NULL) { delete[] coords; return false; } } poly->setPoints(PyList_GET_SIZE(l) >> 1, coords); delete[] coords; return true; } %End %PickleCode PyObject *pl = PyList_New(sipCpp->count() * 2); for (int p = 0, i = 0; i < sipCpp->count(); ++i, p += 2) { int x, y; sipCpp->point(i, &x, &y); PyList_SET_ITEM(pl, p, SIPLong_FromLong(x)); PyList_SET_ITEM(pl, p + 1, SIPLong_FromLong(y)); } sipRes = Py_BuildValue((char *)"(N)", pl); %End public: QPolygon(); ~QPolygon(); QPolygon(const QPolygon &a); QPolygon(const QVector &v); QPolygon(const QRect &rectangle, bool closed = false); %If (Qt_5_0_0 -) explicit QPolygon(int asize); %End %If (- Qt_5_0_0) QPolygon(int asize); %End QPolygon(SIP_PYLIST points /DocType="list-of-int"/) /NoDerived/; %MethodCode sipCpp = new QPolygon(); if (!setPointsFromList(sipCpp, a0)) { delete sipCpp; sipCpp = 0; sipIsErr = 1; } %End QPolygon(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QPolygon(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QPolygon(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End void translate(int dx, int dy); QRect boundingRect() const; QPoint point(int index) const; void setPoints(SIP_PYLIST points /DocType="list-of-int"/); %MethodCode if (!setPointsFromList(sipCpp, a0)) sipIsErr = 1; %End void setPoints(int firstx, int firsty, ...); %MethodCode // Accept at least one pair of integer coordinates. int nPoints = 1 + ((PyTuple_GET_SIZE(a2) + 1) >> 1); int *points = new int[nPoints * 2]; points[0] = a0; points[1] = a1; for (SIP_SSIZE_T i = 0; i < PyTuple_GET_SIZE(a2); ++i) points[2 + i] = SIPLong_AsLong(PyTuple_GET_ITEM(a2, i)); sipCpp->setPoints(nPoints, points); delete[] points; %End void putPoints(int index, int firstx, int firsty, ...); %MethodCode // Accept at least one pair of integer coordinates. int nPoints = 1 + ((PyTuple_GET_SIZE(a3) + 1) >> 1); int *points = new int[nPoints * 2]; points[0] = a1; points[1] = a2; for (SIP_SSIZE_T i = 0; i < PyTuple_GET_SIZE(a3); ++i) points[2 + i] = SIPLong_AsLong(PyTuple_GET_ITEM(a3, i)); sipCpp->putPoints(a0, nPoints, points); delete[] points; %End void putPoints(int index, int nPoints, const QPolygon &fromPolygon, int from = 0); void setPoint(int index, const QPoint &pt); void setPoint(int index, int x, int y); void translate(const QPoint &offset); %If (Qt_4_3_0 -) bool containsPoint(const QPoint &pt, Qt::FillRule fillRule) const; %End %If (Qt_4_3_0 -) QPolygon united(const QPolygon &r) const; %End %If (Qt_4_3_0 -) QPolygon intersected(const QPolygon &r) const; %End %If (Qt_4_3_0 -) QPolygon subtracted(const QPolygon &r) const; %End %If (Qt_4_6_0 -) QPolygon translated(int dx, int dy) const; %End %If (Qt_4_6_0 -) QPolygon translated(const QPoint &offset) const; %End // Methods inherited from QVector and Python special methods. // Keep in sync with QPolygonF and QXmlStreamAttributes. void append(const QPoint &value); const QPoint &at(int i) const; void clear(); bool contains(const QPoint &value) const; int count(const QPoint &value) const; int count() const /__len__/; void *data(); // Note the Qt return value is discarded as it would require handwritten code // and seems pretty useless. void fill(const QPoint &value, int size = -1); QPoint &first(); int indexOf(const QPoint &value, int from = 0) const; void insert(int i, const QPoint &value); bool isEmpty() const; QPoint &last(); int lastIndexOf(const QPoint &value, int from = -1) const; // Note the Qt return type is QVector. QPolygon mid(int pos, int length = -1) const; void prepend(const QPoint &value); void remove(int i); void remove(int i, int count); void replace(int i, const QPoint &value); int size() const; QPoint value(int i) const; QPoint value(int i, const QPoint &defaultValue) const; bool operator!=(const QPolygon &other) const; // Note the Qt return type is QVector. QPolygon operator+(const QPolygon &other) const; QPolygon &operator+=(const QPolygon &other); QPolygon &operator+=(const QPoint &value); bool operator==(const QPolygon &other) const; SIP_PYOBJECT operator<<(const QPoint &value); %MethodCode *a0 << *a1; sipRes = sipArg0; Py_INCREF(sipRes); %End QPoint &operator[](int i); %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = new QPoint(sipCpp->operator[]((int)idx)); %End // Some additional Python special methods. void __setitem__(int i, const QPoint &value); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else (*sipCpp)[a0] = *a1; %End void __setitem__(SIP_PYSLICE slice, const QPolygon &list); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { int vlen = a1->count(); if (vlen != slicelength) { sipBadLengthForSlice(vlen, slicelength); sipIsErr = 1; } else { QVector::const_iterator it = a1->begin(); for (i = 0; i < slicelength; ++i) { (*sipCpp)[start] = *it; start += step; ++it; } } } %End void __delitem__(int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipCpp->remove(a0); %End void __delitem__(SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else for (i = 0; i < slicelength; ++i) { sipCpp->remove(start); start += step - 1; } %End QPolygon &operator[](SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { sipRes = new QPolygon(); for (i = 0; i < slicelength; ++i) { (*sipRes) += (*sipCpp)[start]; start += step; } } %End int __contains__(const QPoint &value); %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End %If (Qt_4_8_0 -) void swap(QPolygon &other); %End }; class QPolygonF { %TypeHeaderCode #include %End public: QPolygonF(); ~QPolygonF(); QPolygonF(const QPolygonF &a); QPolygonF(const QVector &v); QPolygonF(const QRectF &r); QPolygonF(const QPolygon &a); %If (Qt_5_0_0 -) explicit QPolygonF(int asize); %End %If (- Qt_5_0_0) QPolygonF(int asize); %End void translate(const QPointF &offset); QPolygon toPolygon() const; bool isClosed() const; QRectF boundingRect() const; void translate(qreal dx, qreal dy); %If (Qt_4_3_0 -) bool containsPoint(const QPointF &pt, Qt::FillRule fillRule) const; %End %If (Qt_4_3_0 -) QPolygonF united(const QPolygonF &r) const; %End %If (Qt_4_3_0 -) QPolygonF intersected(const QPolygonF &r) const; %End %If (Qt_4_3_0 -) QPolygonF subtracted(const QPolygonF &r) const; %End %If (Qt_4_6_0 -) QPolygonF translated(const QPointF &offset) const; %End %If (Qt_4_6_0 -) QPolygonF translated(qreal dx, qreal dy) const; %End // Methods inherited from QVector and Python special methods. // Keep in sync with QPolygon and QXmlStreamAttributes. void append(const QPointF &value); const QPointF &at(int i) const; void clear(); bool contains(const QPointF &value) const; int count(const QPointF &value) const; int count() const /__len__/; void *data(); // Note the Qt return value is discarded as it would require handwritten code // and seems pretty useless. void fill(const QPointF &value, int size = -1); QPointF &first(); int indexOf(const QPointF &value, int from = 0) const; void insert(int i, const QPointF &value); bool isEmpty() const; QPointF &last(); int lastIndexOf(const QPointF &value, int from = -1) const; // Note the Qt return type is QVector. QPolygonF mid(int pos, int length = -1) const; void prepend(const QPointF &value); void remove(int i); void remove(int i, int count); void replace(int i, const QPointF &value); int size() const; QPointF value(int i) const; QPointF value(int i, const QPointF &defaultValue) const; bool operator!=(const QPolygonF &other) const; // Note the Qt return type is QVector. QPolygonF operator+(const QPolygonF &other) const; QPolygonF &operator+=(const QPolygonF &other); QPolygonF &operator+=(const QPointF &value); bool operator==(const QPolygonF &other) const; SIP_PYOBJECT operator<<(const QPointF &value); %MethodCode *a0 << *a1; sipRes = sipArg0; Py_INCREF(sipRes); %End QPointF &operator[](int i); %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = new QPointF(sipCpp->operator[]((int)idx)); %End // Some additional Python special methods. void __setitem__(int i, const QPointF &value); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else (*sipCpp)[a0] = *a1; %End void __setitem__(SIP_PYSLICE slice, const QPolygonF &list); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { int vlen = a1->count(); if (vlen != slicelength) { sipBadLengthForSlice(vlen, slicelength); sipIsErr = 1; } else { QVector::const_iterator it = a1->begin(); for (i = 0; i < slicelength; ++i) { (*sipCpp)[start] = *it; start += step; ++it; } } } %End void __delitem__(int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipCpp->remove(a0); %End void __delitem__(SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else for (i = 0; i < slicelength; ++i) { sipCpp->remove(start); start += step - 1; } %End QPolygonF &operator[](SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { sipRes = new QPolygonF(); for (i = 0; i < slicelength; ++i) { (*sipRes) += (*sipCpp)[start]; start += step; } } %End int __contains__(const QPointF &value); %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End %If (Qt_4_8_0 -) void swap(QPolygonF &other); %End }; QDataStream &operator<<(QDataStream &stream, const QPolygonF &array /Constrained/); QDataStream &operator>>(QDataStream &stream, QPolygonF &array /Constrained/); %If (Qt_4_4_0 -) QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon /Constrained/); %End %If (Qt_4_4_0 -) QDataStream &operator>>(QDataStream &stream, QPolygon &polygon /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qprintdialog.sip0000644000076500000240000000712412536324426021015 0ustar philstaff00000000000000// qprintdialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (PyQt_PrintDialog) class QPrintDialog : QAbstractPrintDialog { %TypeHeaderCode #include %End public: QPrintDialog(QPrinter *printer, QWidget *parent /TransferThis/ = 0); %If (Qt_4_5_0 -) explicit QPrintDialog(QWidget *parent /TransferThis/ = 0); %End virtual ~QPrintDialog(); virtual int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,PyName=exec_,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipSelfWasArg ? sipCpp->QPrintDialog::exec() : sipCpp->exec(); Py_END_ALLOW_THREADS %End %If (Py_v3) virtual int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/; %MethodCode // Transfer ownership back to Python (a modal dialog will probably have the // main window as it's parent). This means the Qt dialog will be deleted when // the Python wrapper is garbage collected. Although this is a little // inconsistent, it saves having to code it explicitly to avoid the memory // leak. sipTransferBack(sipSelf); Py_BEGIN_ALLOW_THREADS sipRes = sipSelfWasArg ? sipCpp->QPrintDialog::exec() : sipCpp->exec(); Py_END_ALLOW_THREADS %End %End %If (Qt_4_4_0 -) %If (WS_X11) virtual void accept(); %End %End %If (Qt_4_5_0 -) virtual void done(int result); %End %If (Qt_4_5_0 -) void setOption(QAbstractPrintDialog::PrintDialogOption option, bool on = true); %End %If (Qt_4_5_0 -) bool testOption(QAbstractPrintDialog::PrintDialogOption option) const; %End %If (Qt_4_5_0 -) void setOptions(QFlags options); %End %If (Qt_4_5_0 -) QFlags options() const; %End %If (Qt_4_5_0 -) virtual void setVisible(bool visible); %End %If (Qt_5_0_0 -) virtual void open(); %End %If (Qt_4_5_0 - Qt_5_0_0) void open(); %End %If (Qt_4_5_0 -) void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; %End %If (Qt_4_5_0 -) void accepted(); %End signals: %If (Qt_4_5_0 -) void accepted(QPrinter *printer); %End private: %If (- Qt_4_2_0) QPrintDialog(const QPrintDialog &); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qprintengine.sip0000644000076500000240000000460412536324426021023 0ustar philstaff00000000000000// qprintengine.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (PyQt_Printer) class QPrintEngine { %TypeHeaderCode #include %End public: virtual ~QPrintEngine(); enum PrintEnginePropertyKey { PPK_CollateCopies, PPK_ColorMode, PPK_Creator, PPK_DocumentName, PPK_FullPage, PPK_NumberOfCopies, PPK_Orientation, PPK_OutputFileName, PPK_PageOrder, PPK_PageRect, PPK_PageSize, PPK_PaperRect, PPK_PaperSource, PPK_PrinterName, PPK_PrinterProgram, PPK_Resolution, PPK_SelectionOption, PPK_SupportedResolutions, PPK_WindowsPageSize, PPK_FontEmbedding, %If (- Qt_5_0_0) PPK_SuppressSystemPrintStatus, %End %If (Qt_4_2_0 -) PPK_Duplex, %End %If (Qt_4_3_0 -) PPK_PaperSources, %End %If (Qt_4_4_0 -) PPK_CustomPaperSize, %End %If (Qt_4_4_0 -) PPK_PageMargins, %End %If (Qt_4_4_0 -) PPK_PaperSize, %End %If (Qt_4_7_0 -) PPK_CopyCount, %End %If (Qt_4_7_0 -) PPK_SupportsMultipleCopies, %End PPK_CustomBase, }; virtual void setProperty(QPrintEngine::PrintEnginePropertyKey key, const QVariant &value) = 0; virtual QVariant property(QPrintEngine::PrintEnginePropertyKey key) const = 0; virtual bool newPage() = 0; virtual bool abort() = 0; virtual int metric(QPaintDevice::PaintDeviceMetric) const = 0; virtual QPrinter::PrinterState printerState() const = 0; }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qprinter.sip0000644000076500000240000002574412536324426020174 0ustar philstaff00000000000000// qprinter.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) %If (PyQt_Printer) class QPrinter : QPagedPaintDevice { %TypeHeaderCode #include %End public: enum PrinterMode { ScreenResolution, PrinterResolution, HighResolution, }; explicit QPrinter(QPrinter::PrinterMode mode = QPrinter::ScreenResolution); QPrinter(const QPrinterInfo &printer, QPrinter::PrinterMode mode = QPrinter::ScreenResolution); virtual ~QPrinter(); enum Orientation { Portrait, Landscape, }; typedef QPagedPaintDevice::PageSize PaperSize; enum PageOrder { FirstPageFirst, LastPageFirst, }; enum ColorMode { GrayScale, Color, }; enum PaperSource { OnlyOne, Lower, Middle, Manual, Envelope, EnvelopeManual, Auto, Tractor, SmallFormat, LargeFormat, LargeCapacity, Cassette, FormSource, MaxPageSource, }; enum PrinterState { Idle, Active, Aborted, Error, }; enum OutputFormat { NativeFormat, PdfFormat, }; enum PrintRange { AllPages, Selection, PageRange, CurrentPage, }; enum Unit { Millimeter, Point, Inch, Pica, Didot, Cicero, DevicePixel, }; enum DuplexMode { DuplexNone, DuplexAuto, DuplexLongSide, DuplexShortSide, }; void setOutputFormat(QPrinter::OutputFormat format); QPrinter::OutputFormat outputFormat() const; void setPrinterName(const QString &); QString printerName() const; bool isValid() const; void setOutputFileName(const QString &); QString outputFileName() const; void setPrintProgram(const QString &); QString printProgram() const; void setDocName(const QString &); QString docName() const; void setCreator(const QString &); QString creator() const; void setOrientation(QPrinter::Orientation); QPrinter::Orientation orientation() const; virtual void setPageSize(QPagedPaintDevice::PageSize); QPagedPaintDevice::PageSize pageSize() const; virtual void setPageSizeMM(const QSizeF &size); void setPaperSize(QPagedPaintDevice::PageSize); QPagedPaintDevice::PageSize paperSize() const; void setPaperSize(const QSizeF &paperSize, QPrinter::Unit unit); QSizeF paperSize(QPrinter::Unit unit) const; void setPageOrder(QPrinter::PageOrder); QPrinter::PageOrder pageOrder() const; void setResolution(int); int resolution() const; void setColorMode(QPrinter::ColorMode); QPrinter::ColorMode colorMode() const; void setCollateCopies(bool collate); bool collateCopies() const; void setFullPage(bool); bool fullPage() const; void setNumCopies(int); int numCopies() const; int actualNumCopies() const; void setCopyCount(int); int copyCount() const; bool supportsMultipleCopies() const; void setPaperSource(QPrinter::PaperSource); QPrinter::PaperSource paperSource() const; void setDuplex(QPrinter::DuplexMode duplex); QPrinter::DuplexMode duplex() const; QList supportedResolutions() const; void setFontEmbeddingEnabled(bool enable); bool fontEmbeddingEnabled() const; void setDoubleSidedPrinting(bool enable); bool doubleSidedPrinting() const; QRect paperRect() const; QRect pageRect() const; QRectF paperRect(QPrinter::Unit) const; QRectF pageRect(QPrinter::Unit) const; %If (WS_X11 || WS_MACX) QString printerSelectionOption() const; %End %If (WS_X11 || WS_MACX) void setPrinterSelectionOption(const QString &); %End virtual bool newPage(); bool abort(); QPrinter::PrinterState printerState() const; virtual QPaintEngine *paintEngine() const; QPrintEngine *printEngine() const; void setFromTo(int fromPage, int toPage); int fromPage() const; int toPage() const; void setPrintRange(QPrinter::PrintRange range); QPrinter::PrintRange printRange() const; virtual void setMargins(const QPagedPaintDevice::Margins &m); void setPageMargins(qreal left, qreal top, qreal right, qreal bottom, QPrinter::Unit unit); void getPageMargins(qreal *left, qreal *top, qreal *right, qreal *bottom, QPrinter::Unit unit) const; protected: virtual int metric(QPaintDevice::PaintDeviceMetric) const; void setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine); private: QPrinter(const QPrinter &); }; %End %End %If (- Qt_5_0_0) %If (PyQt_Printer) class QPrinter : QPaintDevice { %TypeHeaderCode #include %End public: enum PrinterMode { ScreenResolution, PrinterResolution, HighResolution, }; enum Orientation { Portrait, Landscape, }; enum PageSize { A4, B5, Letter, Legal, Executive, A0, A1, A2, A3, A5, A6, A7, A8, A9, B0, B1, B10, B2, B3, B4, B6, B7, B8, B9, C5E, Comm10E, DLE, Folio, Ledger, Tabloid, Custom, }; enum PageOrder { FirstPageFirst, LastPageFirst, }; enum ColorMode { GrayScale, Color, }; enum PaperSource { OnlyOne, Lower, Middle, Manual, Envelope, EnvelopeManual, Auto, Tractor, SmallFormat, LargeFormat, LargeCapacity, Cassette, FormSource, %If (Qt_4_3_0 -) MaxPageSource, %End }; enum PrinterState { Idle, Active, Aborted, Error, }; enum OutputFormat { NativeFormat, PdfFormat, %If (Qt_4_2_0 -) PostScriptFormat, %End }; enum PrintRange { AllPages, Selection, PageRange, %If (Qt_4_7_0 -) CurrentPage, %End }; %If (Qt_4_4_0 -) enum DuplexMode { DuplexNone, DuplexAuto, DuplexLongSide, DuplexShortSide, }; %End %If (Qt_4_4_0 -) enum Unit { Millimeter, Point, Inch, Pica, Didot, Cicero, DevicePixel, }; %End %If (Qt_4_4_0 -) typedef QPrinter::PageSize PaperSize; %End explicit QPrinter(QPrinter::PrinterMode mode = QPrinter::ScreenResolution); %If (Qt_4_4_0 -) QPrinter(const QPrinterInfo &printer, QPrinter::PrinterMode mode = QPrinter::ScreenResolution); %End virtual ~QPrinter(); void setPrinterName(const QString &); QString printerName() const; void setOutputFileName(const QString &); QString outputFileName() const; void setPrintProgram(const QString &); QString printProgram() const; void setDocName(const QString &); QString docName() const; void setCreator(const QString &); QString creator() const; void setOrientation(QPrinter::Orientation); QPrinter::Orientation orientation() const; void setPageSize(QPrinter::PageSize); QPrinter::PageSize pageSize() const; void setPageOrder(QPrinter::PageOrder); QPrinter::PageOrder pageOrder() const; void setResolution(int); int resolution() const; void setColorMode(QPrinter::ColorMode); QPrinter::ColorMode colorMode() const; void setCollateCopies(bool collate); bool collateCopies() const; void setFullPage(bool); bool fullPage() const; void setNumCopies(int); int numCopies() const; void setPaperSource(QPrinter::PaperSource); QPrinter::PaperSource paperSource() const; QList supportedResolutions() const; %If (WS_WIN) void setWinPageSize(int winPageSize); %End %If (WS_WIN) int winPageSize() const; %End QRect paperRect() const; QRect pageRect() const; %If (WS_X11 || WS_MACX) QString printerSelectionOption() const; %End %If (WS_X11 || WS_MACX) void setPrinterSelectionOption(const QString &); %End bool newPage(); bool abort(); QPrinter::PrinterState printerState() const; virtual QPaintEngine *paintEngine() const; void setOutputFormat(QPrinter::OutputFormat format); QPrinter::OutputFormat outputFormat() const; void setFontEmbeddingEnabled(bool enable); bool fontEmbeddingEnabled() const; QPrintEngine *printEngine() const; void setFromTo(int fromPage, int toPage); int fromPage() const; int toPage() const; %If (PyQt_NoQtPrintRangeBug) void setPrintRange(QPrinter::PrintRange range); %End %If (PyQt_NoQtPrintRangeBug) QPrinter::PrintRange printRange() const; %End %If (Qt_4_2_0 -) void setDoubleSidedPrinting(bool enable); %End %If (Qt_4_2_0 -) bool doubleSidedPrinting() const; %End %If (Qt_4_4_0 -) bool isValid() const; %End %If (Qt_4_4_0 -) void setPaperSize(QPrinter::PageSize); %End %If (Qt_4_4_0 -) QPrinter::PageSize paperSize() const; %End %If (Qt_4_4_0 -) void setPaperSize(const QSizeF &paperSize, QPrinter::Unit unit); %End %If (Qt_4_4_0 -) QSizeF paperSize(QPrinter::Unit unit) const; %End %If (Qt_4_4_0 -) void setDuplex(QPrinter::DuplexMode duplex); %End %If (Qt_4_4_0 -) QPrinter::DuplexMode duplex() const; %End %If (Qt_4_4_0 -) QRectF paperRect(QPrinter::Unit) const; %End %If (Qt_4_4_0 -) QRectF pageRect(QPrinter::Unit) const; %End %If (Qt_4_4_0 -) void setPageMargins(qreal left, qreal top, qreal right, qreal bottom, QPrinter::Unit unit); %End %If (Qt_4_4_0 -) void getPageMargins(qreal *left, qreal *top, qreal *right, qreal *bottom, QPrinter::Unit unit) const; %End %If (Qt_4_6_0 -) int actualNumCopies() const; %End protected: virtual int metric(QPaintDevice::PaintDeviceMetric) const; void setEngines(QPrintEngine *printEngine /KeepReference/, QPaintEngine *paintEngine /KeepReference/); public: %If (Qt_4_7_0 -) void setCopyCount(int); %End %If (Qt_4_7_0 -) int copyCount() const; %End %If (Qt_4_7_0 -) bool supportsMultipleCopies() const; %End private: QPrinter(const QPrinter &); }; %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qprinterinfo.sip0000644000076500000240000000762012536324426021041 0ustar philstaff00000000000000// qprinterinfo.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %If (PyQt_Printer) class QPrinterInfo { %TypeHeaderCode #include %End public: QPrinterInfo(); QPrinterInfo(const QPrinterInfo &src); %If (Qt_5_0_0 -) explicit QPrinterInfo(const QPrinter &printer); %End %If (- Qt_5_0_0) QPrinterInfo(const QPrinter &printer); %End ~QPrinterInfo(); QString printerName() const; bool isNull() const; bool isDefault() const; %If (Qt_5_0_0 -) QList supportedPaperSizes() const; %End %If (- Qt_5_0_0) QList supportedPaperSizes() const; %End static QList availablePrinters(); static QPrinterInfo defaultPrinter(); %If (Qt_5_0_0 -) QString description() const; %End %If (Qt_5_0_0 -) QString location() const; %End %If (Qt_5_0_0 -) QString makeAndModel() const; %End %If (Qt_5_0_0 -) static QPrinterInfo printerInfo(const QString &printerName); %End }; %End %End %If (Qt_5_0_0 -) // Mapped type for QList. %If (PyQt_Printer) %MappedType QList /DocType="list-of-QPagedPaintDevice.PageSize"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l = PyList_New(sipCpp->size()); if (!l) return 0; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { PyObject *obj = sipConvertFromEnum(sipCpp->at(i), sipType_QPagedPaintDevice_PageSize); if (!obj) { Py_DECREF(l); return 0; } PyList_SET_ITEM(l, i, obj); } return l; %End %ConvertToTypeCode if (sipIsErr == NULL) { // We don't support passing the type as an argument as it isn't // currently needed. PyErr_SetString(PyExc_NotImplementedError, "converting to QList is unsupported"); return 0; } // Keep the compiler quiet. sipPy = NULL; return 0; %End }; %End %End %If (Qt_4_4_0 - Qt_5_0_0) // Mapped type for QList. %If (PyQt_Printer) %MappedType QList /DocType="list-of-QPrinter.PageSize"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l = PyList_New(sipCpp->size()); if (!l) return 0; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { PyObject *obj = sipConvertFromEnum(sipCpp->at(i), sipType_QPrinter_PageSize); if (!obj) { Py_DECREF(l); return 0; } PyList_SET_ITEM(l, i, obj); } return l; %End %ConvertToTypeCode if (sipIsErr == NULL) { // We don't support passing the type as an argument as it isn't // currently needed. PyErr_SetString(PyExc_NotImplementedError, "converting to QList is unsupported"); return 0; } // Keep the compiler quiet. sipPy = NULL; return 0; %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qprintpreviewdialog.sip0000644000076500000240000000336212536324426022417 0ustar philstaff00000000000000// qprintpreviewdialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %If (PyQt_PrintPreviewDialog) class QPrintPreviewDialog : QDialog { %TypeHeaderCode #include %End public: QPrintPreviewDialog(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); QPrintPreviewDialog(QPrinter *printer, QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); virtual ~QPrintPreviewDialog(); virtual void setVisible(bool visible); %If (Qt_5_0_0 -) virtual void open(); %End %If (Qt_4_5_0 - Qt_5_0_0) void open(); %End %If (Qt_4_5_0 -) void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; %End %If (Qt_4_5_0 -) QPrinter *printer(); %End %If (Qt_4_5_0 -) virtual void done(int result); %End signals: void paintRequested(QPrinter *printer); }; %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qprintpreviewwidget.sip0000644000076500000240000000513612536324426022444 0ustar philstaff00000000000000// qprintpreviewwidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %If (PyQt_PrintPreviewWidget) class QPrintPreviewWidget : QWidget { %TypeHeaderCode #include %End public: enum ViewMode { SinglePageView, FacingPagesView, AllPagesView, }; enum ZoomMode { CustomZoom, FitToWidth, FitInView, }; QPrintPreviewWidget(QPrinter *printer, QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); QPrintPreviewWidget(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); virtual ~QPrintPreviewWidget(); qreal zoomFactor() const; QPrinter::Orientation orientation() const; QPrintPreviewWidget::ViewMode viewMode() const; QPrintPreviewWidget::ZoomMode zoomMode() const; int currentPage() const; %If (- Qt_5_0_0) int numPages() const; %End public slots: virtual void setVisible(bool visible); void print() /PyName=print_/; %If (Py_v3) void print(); %End void zoomIn(qreal factor = 1.1); void zoomOut(qreal factor = 1.1); void setZoomFactor(qreal zoomFactor); void setOrientation(QPrinter::Orientation orientation); void setViewMode(QPrintPreviewWidget::ViewMode viewMode); void setZoomMode(QPrintPreviewWidget::ZoomMode zoomMode); void setCurrentPage(int pageNumber); void fitToWidth(); void fitInView(); void setLandscapeOrientation(); void setPortraitOrientation(); void setSinglePageViewMode(); void setFacingPagesViewMode(); void setAllPagesViewMode(); void updatePreview(); signals: void paintRequested(QPrinter *printer); void previewChanged(); public: %If (Qt_4_6_0 -) int pageCount() const; %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qprogressbar.sip0000644000076500000240000000462012536324426021030 0ustar philstaff00000000000000// qprogressbar.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QProgressBar : QWidget { %TypeHeaderCode #include %End public: enum Direction { TopToBottom, BottomToTop, }; explicit QProgressBar(QWidget *parent /TransferThis/ = 0); %If (Qt_5_0_0 -) virtual ~QProgressBar(); %End int minimum() const; int maximum() const; void setRange(int minimum, int maximum); int value() const; virtual QString text() const; void setTextVisible(bool visible); bool isTextVisible() const; Qt::Alignment alignment() const; void setAlignment(Qt::Alignment alignment); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; Qt::Orientation orientation() const; void setInvertedAppearance(bool invert); %If (- Qt_5_0_0) bool invertedAppearance(); %End void setTextDirection(QProgressBar::Direction textDirection); %If (- Qt_5_0_0) QProgressBar::Direction textDirection(); %End %If (Qt_4_2_0 -) void setFormat(const QString &format); %End %If (Qt_4_2_0 -) QString format() const; %End public slots: void reset(); void setMinimum(int minimum); void setMaximum(int maximum); void setValue(int value); void setOrientation(Qt::Orientation); signals: void valueChanged(int value); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionProgressBar *option) const; %End virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); private: QProgressBar(const QProgressBar &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qprogressdialog.sip0000644000076500000240000000556312536324426021532 0ustar philstaff00000000000000// qprogressdialog.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QProgressDialog : QDialog { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QProgressDialog(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QProgressDialog(QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End %If (Qt_4_2_0 -) QProgressDialog(const QString &labelText, const QString &cancelButtonText, int minimum, int maximum, QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QProgressDialog(const QString &labelText, const QString &cancelButtonText, int minimum, int maximum, QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End virtual ~QProgressDialog(); void setLabel(QLabel *label /Transfer/); void setCancelButton(QPushButton *button /Transfer/); void setBar(QProgressBar *bar /Transfer/); bool wasCanceled() const; int minimum() const; int maximum() const; void setRange(int minimum, int maximum); int value() const; virtual QSize sizeHint() const; QString labelText() const; int minimumDuration() const; void setAutoReset(bool b); bool autoReset() const; void setAutoClose(bool b); bool autoClose() const; public slots: void cancel(); void reset(); void setMaximum(int maximum); void setMinimum(int minimum); void setValue(int progress); void setLabelText(const QString &); void setCancelButtonText(const QString &); void setMinimumDuration(int ms); signals: void canceled(); protected: virtual void resizeEvent(QResizeEvent *); virtual void closeEvent(QCloseEvent *); virtual void changeEvent(QEvent *); virtual void showEvent(QShowEvent *e); void forceShow(); public: %If (Qt_4_5_0 -) void open(); %End %If (Qt_4_5_0 -) void open(SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) [void (QObject *receiver, const char *member)]; %End private: QProgressDialog(const QProgressDialog &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qproxymodel.sip0000644000076500000240000001105712536324426020703 0ustar philstaff00000000000000// qproxymodel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) class QProxyModel : QAbstractItemModel { %TypeHeaderCode #include %End public: explicit QProxyModel(QObject *parent /TransferThis/ = 0); virtual ~QProxyModel(); virtual void setModel(QAbstractItemModel *model /KeepReference/); QAbstractItemModel *model() const; %If (- Qt_4_7_0) virtual QModelIndex index(int row, int column, const QModelIndex &parent) const; %End %If (Qt_4_7_0 -) virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; %End virtual QModelIndex parent(const QModelIndex &child) const; QObject *parent() const; %If (- Qt_4_7_0) virtual int rowCount(const QModelIndex &parent) const; %End %If (Qt_4_7_0 -) virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; %End %If (- Qt_4_7_0) virtual int columnCount(const QModelIndex &parent) const; %End %If (Qt_4_7_0 -) virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; %End %If (- Qt_4_7_0) virtual bool hasChildren(const QModelIndex &parent) const; %End %If (Qt_4_7_0 -) virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const; %End %If (- Qt_4_7_0) virtual QVariant data(const QModelIndex &index, int role) const; %End %If (Qt_4_7_0 -) virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; %End %If (- Qt_4_7_0) virtual bool setData(const QModelIndex &index, const QVariant &value, int role); %End %If (Qt_4_7_0 -) virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); %End %If (- Qt_4_7_0) virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const; %End %If (Qt_4_7_0 -) virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; %End %If (- Qt_4_7_0) virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role); %End %If (Qt_4_7_0 -) virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole); %End virtual QStringList mimeTypes() const; virtual QMimeData *mimeData(const QModelIndexList &indexes) const /TransferBack/; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); virtual Qt::DropActions supportedDropActions() const; %If (- Qt_4_7_0) virtual bool insertRows(int row, int count, const QModelIndex &parent); %End %If (Qt_4_7_0 -) virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); %End %If (- Qt_4_7_0) virtual bool insertColumns(int column, int count, const QModelIndex &parent); %End %If (Qt_4_7_0 -) virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()); %End virtual void fetchMore(const QModelIndex &parent); virtual Qt::ItemFlags flags(const QModelIndex &index) const; %If (- Qt_4_7_0) virtual void sort(int column, Qt::SortOrder order); %End %If (Qt_4_7_0 -) virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); %End %If (- Qt_4_7_0) virtual QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const; %End %If (Qt_4_7_0 -) virtual QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const; %End virtual QSize span(const QModelIndex &index) const; virtual bool submit(); virtual void revert(); private: QProxyModel(const QProxyModel &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qpushbutton.sip0000644000076500000240000000412712536324426020714 0ustar philstaff00000000000000// qpushbutton.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPushButton : QAbstractButton { %TypeHeaderCode #include %End public: explicit QPushButton(QWidget *parent /TransferThis/ = 0); QPushButton(const QString &text, QWidget *parent /TransferThis/ = 0); QPushButton(const QIcon &icon, const QString &text, QWidget *parent /TransferThis/ = 0); virtual ~QPushButton(); virtual QSize sizeHint() const; %If (Qt_4_3_0 -) virtual QSize minimumSizeHint() const; %End bool autoDefault() const; void setAutoDefault(bool); bool isDefault() const; void setDefault(bool); void setMenu(QMenu *menu /KeepReference/); QMenu *menu() const; void setFlat(bool); bool isFlat() const; public slots: void showMenu(); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionButton *option) const; %End virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void focusInEvent(QFocusEvent *); virtual void focusOutEvent(QFocusEvent *); // Protected platform specific methods. %If (WS_MACX) bool hitButton(const QPoint &pos) const; %End private: QPushButton(const QPushButton &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qpytextobject.sip0000644000076500000240000000215112536324426021220 0ustar philstaff00000000000000// This is the SIP specification of the QPyTextObject class. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QPyTextObject : QObject, QTextObjectInterface { %TypeHeaderCode #include %End public: QPyTextObject(QObject *parent /TransferThis/ = 0); private: QPyTextObject(const QPyTextObject &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qquaternion.sip0000644000076500000240000001563212536324426020671 0ustar philstaff00000000000000// qquaternion.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) class QQuaternion { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"dddd", (double)sipCpp->scalar(), (double)sipCpp->x(), (double)sipCpp->y(), (double)sipCpp->z()); %End public: QQuaternion(); %If (Qt_5_0_0 -) QQuaternion(float aScalar, float xpos, float ypos, float zpos); %End %If (- Qt_5_0_0) QQuaternion(qreal aScalar, qreal xpos, qreal ypos, qreal zpos); %End %If (Qt_5_0_0 -) QQuaternion(float aScalar, const QVector3D &aVector); %End %If (- Qt_5_0_0) QQuaternion(qreal aScalar, const QVector3D &aVector); %End explicit QQuaternion(const QVector4D &aVector); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *scalar = PyFloat_FromDouble(sipCpp->scalar()); PyObject *x = PyFloat_FromDouble(sipCpp->x()); PyObject *y = PyFloat_FromDouble(sipCpp->y()); PyObject *z = PyFloat_FromDouble(sipCpp->z()); if (scalar && x && y && z) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QQuaternion(%R, %R, %R, %R)", scalar, x, y, z); #else sipRes = PyString_FromString("PyQt4.QtGui.QQuaternion("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(scalar)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(x)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(y)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(z)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } Py_XDECREF(scalar); Py_XDECREF(x); Py_XDECREF(y); Py_XDECREF(z); %End %If (Qt_5_0_0 -) float length() const; %End %If (- Qt_5_0_0) qreal length() const; %End %If (Qt_5_0_0 -) float lengthSquared() const; %End %If (- Qt_5_0_0) qreal lengthSquared() const; %End QQuaternion normalized() const; void normalize(); QVector3D rotatedVector(const QVector3D &vector) const; %If (Qt_5_0_0 -) static QQuaternion fromAxisAndAngle(const QVector3D &axis, float angle); %End %If (- Qt_5_0_0) static QQuaternion fromAxisAndAngle(const QVector3D &axis, qreal angle); %End %If (Qt_5_0_0 -) static QQuaternion fromAxisAndAngle(float x, float y, float z, float angle); %End %If (- Qt_5_0_0) static QQuaternion fromAxisAndAngle(qreal x, qreal y, qreal z, qreal angle); %End %If (Qt_5_0_0 -) static QQuaternion slerp(const QQuaternion &q1, const QQuaternion &q2, float t); %End %If (- Qt_5_0_0) static QQuaternion slerp(const QQuaternion &q1, const QQuaternion &q2, qreal t); %End %If (Qt_5_0_0 -) static QQuaternion nlerp(const QQuaternion &q1, const QQuaternion &q2, float t); %End %If (- Qt_5_0_0) static QQuaternion nlerp(const QQuaternion &q1, const QQuaternion &q2, qreal t); %End bool isNull() const; bool isIdentity() const; %If (Qt_5_0_0 -) float x() const; %End %If (- Qt_5_0_0) qreal x() const; %End %If (Qt_5_0_0 -) float y() const; %End %If (- Qt_5_0_0) qreal y() const; %End %If (Qt_5_0_0 -) float z() const; %End %If (- Qt_5_0_0) qreal z() const; %End %If (Qt_5_0_0 -) float scalar() const; %End %If (- Qt_5_0_0) qreal scalar() const; %End %If (Qt_5_0_0 -) void setX(float aX); %End %If (- Qt_5_0_0) void setX(qreal aX); %End %If (Qt_5_0_0 -) void setY(float aY); %End %If (- Qt_5_0_0) void setY(qreal aY); %End %If (Qt_5_0_0 -) void setZ(float aZ); %End %If (- Qt_5_0_0) void setZ(qreal aZ); %End %If (Qt_5_0_0 -) void setScalar(float aScalar); %End %If (- Qt_5_0_0) void setScalar(qreal aScalar); %End QQuaternion conjugate() const; QQuaternion &operator+=(const QQuaternion &quaternion); QQuaternion &operator-=(const QQuaternion &quaternion); %If (Qt_5_0_0 -) QQuaternion &operator*=(float factor); %End %If (- Qt_5_0_0) QQuaternion &operator*=(qreal factor); %End QQuaternion &operator*=(const QQuaternion &quaternion); %If (Qt_5_0_0 -) QQuaternion &operator/=(float divisor); %End %If (- Qt_5_0_0) QQuaternion &operator/=(qreal divisor); %End void setVector(const QVector3D &aVector); QVector3D vector() const; %If (Qt_5_0_0 -) void setVector(float aX, float aY, float aZ); %End %If (- Qt_5_0_0) void setVector(qreal aX, qreal aY, qreal aZ); %End QVector4D toVector4D() const; }; %End %If (Qt_4_6_0 -) const QQuaternion operator*(const QQuaternion &q1, const QQuaternion &q2); %End %If (Qt_4_6_0 -) bool operator==(const QQuaternion &q1, const QQuaternion &q2); %End %If (Qt_4_6_0 -) bool operator!=(const QQuaternion &q1, const QQuaternion &q2); %End %If (Qt_4_6_0 -) const QQuaternion operator+(const QQuaternion &q1, const QQuaternion &q2); %End %If (Qt_4_6_0 -) const QQuaternion operator-(const QQuaternion &q1, const QQuaternion &q2); %End %If (Qt_5_0_0 -) const QQuaternion operator*(float factor, const QQuaternion &quaternion); %End %If (Qt_4_6_0 - Qt_5_0_0) const QQuaternion operator*(qreal factor, const QQuaternion &quaternion); %End %If (Qt_5_0_0 -) const QQuaternion operator*(const QQuaternion &quaternion, float factor); %End %If (Qt_4_6_0 - Qt_5_0_0) const QQuaternion operator*(const QQuaternion &quaternion, qreal factor); %End %If (Qt_4_6_0 -) const QQuaternion operator-(const QQuaternion &quaternion); %End %If (Qt_5_0_0 -) const QQuaternion operator/(const QQuaternion &quaternion, float divisor); %End %If (Qt_4_6_0 - Qt_5_0_0) const QQuaternion operator/(const QQuaternion &quaternion, qreal divisor); %End %If (Qt_4_6_0 -) bool qFuzzyCompare(const QQuaternion &q1, const QQuaternion &q2); %End %If (Qt_4_6_0 -) QDataStream &operator<<(QDataStream &, const QQuaternion & /Constrained/); %End %If (Qt_4_6_0 -) QDataStream &operator>>(QDataStream &, QQuaternion & /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qradiobutton.sip0000644000076500000240000000317312536324426021033 0ustar philstaff00000000000000// qradiobutton.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QRadioButton : QAbstractButton { %TypeHeaderCode #include %End public: explicit QRadioButton(QWidget *parent /TransferThis/ = 0); QRadioButton(const QString &text, QWidget *parent /TransferThis/ = 0); %If (Qt_5_0_0 -) virtual ~QRadioButton(); %End virtual QSize sizeHint() const; %If (Qt_4_8_0 -) virtual QSize minimumSizeHint() const; %End protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionButton *button) const; %End virtual bool hitButton(const QPoint &) const; virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); virtual void mouseMoveEvent(QMouseEvent *); private: QRadioButton(const QRadioButton &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qrawfont.sip0000644000076500000240000000650012536324426020156 0ustar philstaff00000000000000// qrawfont.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_8_0 -) %If (PyQt_RawFont) class QRawFont { %TypeHeaderCode #include %End public: enum AntialiasingType { PixelAntialiasing, SubPixelAntialiasing, }; QRawFont(); QRawFont(const QString &fileName, qreal pixelSize, QFont::HintingPreference hintingPreference = QFont::PreferDefaultHinting); QRawFont(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference = QFont::PreferDefaultHinting); QRawFont(const QRawFont &other); ~QRawFont(); bool isValid() const; bool operator==(const QRawFont &other) const; bool operator!=(const QRawFont &other) const; QString familyName() const; QString styleName() const; QFont::Style style() const; int weight() const; QVector glyphIndexesForString(const QString &text) const; QVector advancesForGlyphIndexes(const QVector &glyphIndexes) const; QImage alphaMapForGlyph(quint32 glyphIndex, QRawFont::AntialiasingType antialiasingType = QRawFont::SubPixelAntialiasing, const QTransform &transform = QTransform()) const; QPainterPath pathForGlyph(quint32 glyphIndex) const; void setPixelSize(qreal pixelSize); qreal pixelSize() const; QFont::HintingPreference hintingPreference() const; qreal ascent() const; qreal descent() const; qreal leading() const; qreal xHeight() const; qreal averageCharWidth() const; qreal maxCharWidth() const; qreal unitsPerEm() const; void loadFromFile(const QString &fileName, qreal pixelSize, QFont::HintingPreference hintingPreference) /ReleaseGIL/; void loadFromData(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) /ReleaseGIL/; %If (Qt_5_0_0 -) bool supportsCharacter(uint ucs4) const; %End %If (- Qt_5_0_0) bool supportsCharacter(quint32 ucs4) const; %End bool supportsCharacter(QChar character) const; QList supportedWritingSystems() const; QByteArray fontTable(const char *tagName) const; static QRawFont fromFont(const QFont &font, QFontDatabase::WritingSystem writingSystem = QFontDatabase::Any); %If (Qt_5_0_0 -) QRectF boundingRect(quint32 glyphIndex) const; %End %If (Qt_5_0_0 -) qreal lineThickness() const; %End %If (Qt_5_0_0 -) qreal underlinePosition() const; %End %If (Qt_5_0_0 -) void swap(QRawFont &other); %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qregion.sip0000644000076500000240000001066412536324426017767 0ustar philstaff00000000000000// qregion.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QRegion { %TypeHeaderCode #include %End public: enum RegionType { Rectangle, Ellipse, }; QRegion(); QRegion(int x, int y, int w, int h, QRegion::RegionType type = QRegion::Rectangle); QRegion(const QRect &r, QRegion::RegionType type = QRegion::Rectangle); QRegion(const QPolygon &a, Qt::FillRule fillRule = Qt::OddEvenFill); QRegion(const QBitmap &bitmap); QRegion(const QRegion ®ion); QRegion(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QRegion(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QRegion(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End ~QRegion(); bool isEmpty() const; int __bool__() const; %MethodCode sipRes = !sipCpp->isEmpty(); %End bool contains(const QPoint &p) const; int __contains__(const QPoint &p) const; %MethodCode sipRes = sipCpp->contains(*a0); %End bool contains(const QRect &r) const; int __contains__(const QRect &r) const; %MethodCode sipRes = sipCpp->contains(*a0); %End void translate(int dx, int dy); void translate(const QPoint &p); QRegion translated(int dx, int dy) const; QRegion translated(const QPoint &p) const; %If (PyQt_Deprecated_5_0) QRegion unite(const QRegion &r) const; %End %If (Qt_4_2_0 -) QRegion united(const QRegion &r) const; %End %If (Qt_4_4_0 -) QRegion united(const QRect &r) const; %End %If (PyQt_Deprecated_5_0) QRegion intersect(const QRegion &r) const; %End %If (PyQt_Deprecated_5_0) QRegion subtract(const QRegion &r) const; %End %If (PyQt_Deprecated_5_0) QRegion eor(const QRegion &r) const; %End QRect boundingRect() const; QVector rects() const; const QRegion operator|(const QRegion &r) const; const QRegion operator+(const QRegion &r) const; %If (Qt_4_4_0 -) const QRegion operator+(const QRect &r) const; %End const QRegion operator&(const QRegion &r) const; %If (Qt_4_4_0 -) const QRegion operator&(const QRect &r) const; %End const QRegion operator-(const QRegion &r) const; const QRegion operator^(const QRegion &r) const; QRegion &operator|=(const QRegion &r); QRegion &operator+=(const QRegion &r); %If (Qt_4_4_0 -) QRegion &operator+=(const QRect &r); %End QRegion &operator&=(const QRegion &r); %If (Qt_4_4_0 -) QRegion &operator&=(const QRect &r); %End QRegion &operator-=(const QRegion &r); QRegion &operator^=(const QRegion &r); bool operator==(const QRegion &r) const; bool operator!=(const QRegion &r) const; %If (Qt_4_2_0 -) QRegion intersected(const QRegion &r) const; %End %If (Qt_4_4_0 -) QRegion intersected(const QRect &r) const; %End %If (Qt_4_2_0 -) QRegion subtracted(const QRegion &r) const; %End %If (Qt_4_2_0 -) QRegion xored(const QRegion &r) const; %End %If (Qt_4_2_0 -) bool intersects(const QRegion &r) const; %End %If (Qt_4_2_0 -) bool intersects(const QRect &r) const; %End %If (Qt_4_4_0 - Qt_5_0_0) int numRects() const; %End %If (Qt_4_6_0 -) int rectCount() const; %End %If (Qt_4_8_0 -) void swap(QRegion &other); %End %If (Qt_5_0_0 -) bool isNull() const; %End }; QDataStream &operator<<(QDataStream &, const QRegion & /Constrained/); QDataStream &operator>>(QDataStream &, QRegion & /Constrained/); PyQt-x11-gpl-4.11.4/sip/QtGui/qrgb.sip0000644000076500000240000000232712536324426017253 0ustar philstaff00000000000000// qrgb.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End typedef unsigned int QRgb; int qRed(QRgb rgb); int qGreen(QRgb rgb); int qBlue(QRgb rgb); int qAlpha(QRgb rgb); QRgb qRgb(int r, int g, int b); QRgb qRgba(int r, int g, int b, int a); int qGray(int r, int g, int b); int qGray(QRgb rgb); bool qIsGray(QRgb rgb); PyQt-x11-gpl-4.11.4/sip/QtGui/qrubberband.sip0000644000076500000240000000341412536324426020605 0ustar philstaff00000000000000// qrubberband.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QRubberBand : QWidget { %TypeHeaderCode #include %End public: enum Shape { Line, Rectangle, }; QRubberBand(QRubberBand::Shape, QWidget *parent /TransferThis/ = 0); virtual ~QRubberBand(); QRubberBand::Shape shape() const; void setGeometry(const QRect &r); void setGeometry(int ax, int ay, int aw, int ah); void move(const QPoint &p); void move(int ax, int ay); void resize(int w, int h); void resize(const QSize &s); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionRubberBand *option) const; %End virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *); virtual void changeEvent(QEvent *); virtual void showEvent(QShowEvent *); virtual void resizeEvent(QResizeEvent *); virtual void moveEvent(QMoveEvent *); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qscreen.sip0000644000076500000240000000563212536324426017762 0ustar philstaff00000000000000// qscreen.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) class QScreen : QObject /NoDefaultCtors/ { %TypeHeaderCode #include %End public: QString name() const; int depth() const; QSize size() const; QRect geometry() const; QSizeF physicalSize() const; qreal physicalDotsPerInchX() const; qreal physicalDotsPerInchY() const; qreal physicalDotsPerInch() const; qreal logicalDotsPerInchX() const; qreal logicalDotsPerInchY() const; qreal logicalDotsPerInch() const; QSize availableSize() const; QRect availableGeometry() const; QList virtualSiblings() const; QSize virtualSize() const; QRect virtualGeometry() const; QSize availableVirtualSize() const; QRect availableVirtualGeometry() const; Qt::ScreenOrientation primaryOrientation() const; Qt::ScreenOrientation orientation() const; Qt::ScreenOrientations orientationUpdateMask() const; void setOrientationUpdateMask(Qt::ScreenOrientations mask); int angleBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b) const; QTransform transformBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &target) const; QRect mapBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &rect) const; bool isPortrait(Qt::ScreenOrientation orientation) const; bool isLandscape(Qt::ScreenOrientation orientation) const; QPixmap grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1); qreal refreshRate() const; qreal devicePixelRatio() const; signals: void geometryChanged(const QRect &geometry); void physicalDotsPerInchChanged(qreal dpi); void logicalDotsPerInchChanged(qreal dpi); void primaryOrientationChanged(Qt::ScreenOrientation orientation); void orientationChanged(Qt::ScreenOrientation orientation); void refreshRateChanged(qreal refreshRate); void physicalSizeChanged(const QSizeF &size); void virtualGeometryChanged(const QRect &rect); private: QScreen(const QScreen &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qscrollarea.sip0000644000076500000240000000365112536324426020631 0ustar philstaff00000000000000// qscrollarea.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QScrollArea : QAbstractScrollArea { %TypeHeaderCode #include %End public: explicit QScrollArea(QWidget *parent /TransferThis/ = 0); virtual ~QScrollArea(); QWidget *widget() const; void setWidget(QWidget *w /Transfer/); QWidget *takeWidget() /TransferBack/; bool widgetResizable() const; void setWidgetResizable(bool resizable); %If (Qt_4_2_0 -) Qt::Alignment alignment() const; %End %If (Qt_4_2_0 -) void setAlignment(Qt::Alignment); %End virtual QSize sizeHint() const; virtual bool focusNextPrevChild(bool next); void ensureVisible(int x, int y, int xMargin = 50, int yMargin = 50); %If (Qt_4_2_0 -) void ensureWidgetVisible(QWidget *childWidget, int xMargin = 50, int yMargin = 50); %End protected: virtual bool event(QEvent *); virtual bool eventFilter(QObject *, QEvent *); virtual void resizeEvent(QResizeEvent *); virtual void scrollContentsBy(int dx, int dy); private: QScrollArea(const QScrollArea &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qscrollbar.sip0000644000076500000240000000347312536324426020467 0ustar philstaff00000000000000// qscrollbar.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QScrollBar : QAbstractSlider { %TypeHeaderCode #include %End public: explicit QScrollBar(QWidget *parent /TransferThis/ = 0); QScrollBar(Qt::Orientation orientation, QWidget *parent /TransferThis/ = 0); virtual ~QScrollBar(); virtual QSize sizeHint() const; virtual bool event(QEvent *event); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionSlider *option) const; %End virtual void paintEvent(QPaintEvent *); virtual void mousePressEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void mouseMoveEvent(QMouseEvent *); virtual void hideEvent(QHideEvent *); virtual void contextMenuEvent(QContextMenuEvent *); %If (Qt_5_0_0 -) virtual void wheelEvent(QWheelEvent *); %End virtual void sliderChange(QAbstractSlider::SliderChange change); private: QScrollBar(const QScrollBar &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qsessionmanager.sip0000644000076500000240000000410412536324426021512 0ustar philstaff00000000000000// qsessionmanager.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (PyQt_SessionManager) class QSessionManager : QObject { %TypeHeaderCode #include %End %If (Qt_5_0_0 -) QSessionManager(QGuiApplication *app /TransferThis/, QString &id, QString &key); %End %If (- Qt_5_0_0) QSessionManager(QApplication *app /TransferThis/, QString &id, QString &key); %End virtual ~QSessionManager(); public: QString sessionId() const; QString sessionKey() const; bool allowsInteraction(); bool allowsErrorInteraction(); void release(); void cancel(); enum RestartHint { RestartIfRunning, RestartAnyway, RestartImmediately, RestartNever, }; void setRestartHint(QSessionManager::RestartHint); QSessionManager::RestartHint restartHint() const; void setRestartCommand(const QStringList &); QStringList restartCommand() const; void setDiscardCommand(const QStringList &); QStringList discardCommand() const; void setManagerProperty(const QString &name, const QString &value); void setManagerProperty(const QString &name, const QStringList &value); bool isPhase2() const; void requestPhase2(); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qshortcut.sip0000644000076500000240000000721412536324426020354 0ustar philstaff00000000000000// qshortcut.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QShortcut : QObject { %TypeHeaderCode #include %End public: explicit QShortcut(QWidget *parent /TransferThis/); QShortcut(const QKeySequence &key, QWidget *parent /TransferThis/, SIP_ANYSLOT member = 0, SIP_ANYSLOT ambiguousMember = 0, Qt::ShortcutContext context = Qt::WindowShortcut) [(const QKeySequence &key, QWidget *parent, const char *member = 0, const char *ambiguousMember = 0, Qt::ShortcutContext context = Qt::WindowShortcut)]; %MethodCode // Construct the shortcut without any connections. Py_BEGIN_ALLOW_THREADS sipCpp = new sipQShortcut(*a0, a1, 0, 0, a4); Py_END_ALLOW_THREADS if (a2Name || a2Callable) { void *rx2; const char *member2; // For convenience we use sipOwner from /TransferThis/ rather than // a1Wrapper from /GetWrapper/. rx2 = sipConvertRx(0, "()", (a2Callable ? a2Callable : (PyObject *)*sipOwner), a2Name, &member2, 0); if (rx2) { Py_BEGIN_ALLOW_THREADS QObject::connect(sipCpp, SIGNAL(activated()), reinterpret_cast(rx2), member2); Py_END_ALLOW_THREADS } else sipIsErr = 1; } if (a3Name || a3Callable) { void *rx3; const char *member3; // For convenience we use sipOwner from /TransferThis/ rather than // a1Wrapper from /GetWrapper/. rx3 = sipConvertRx(0, "()", (a3Callable ? a3Callable : (PyObject *)*sipOwner), a3Name, &member3, 0); if (rx3) { Py_BEGIN_ALLOW_THREADS QObject::connect(sipCpp, SIGNAL(activatedAmbiguously()), reinterpret_cast(rx3), member3); Py_END_ALLOW_THREADS } else sipIsErr = 1; } if (sipIsErr) delete sipCpp; %End virtual ~QShortcut(); void setKey(const QKeySequence &key); QKeySequence key() const; void setEnabled(bool enable); bool isEnabled() const; void setContext(Qt::ShortcutContext context); %If (Qt_5_0_0 -) Qt::ShortcutContext context() const; %End %If (- Qt_5_0_0) Qt::ShortcutContext context(); %End void setWhatsThis(const QString &text); QString whatsThis() const; int id() const; QWidget *parentWidget() const; %If (Qt_4_2_0 -) void setAutoRepeat(bool on); %End %If (Qt_4_2_0 -) bool autoRepeat() const; %End signals: void activated(); void activatedAmbiguously(); protected: virtual bool event(QEvent *e); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qsizegrip.sip0000644000076500000240000000352412536324426020335 0ustar philstaff00000000000000// qsizegrip.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (PyQt_SizeGrip) class QSizeGrip : QWidget { %TypeHeaderCode #include %End public: explicit QSizeGrip(QWidget *parent /TransferThis/); virtual ~QSizeGrip(); virtual QSize sizeHint() const; virtual void setVisible(bool); protected: virtual void paintEvent(QPaintEvent *); virtual void mousePressEvent(QMouseEvent *); %If (Qt_4_3_0 -) virtual void mouseReleaseEvent(QMouseEvent *mouseEvent); %End virtual void mouseMoveEvent(QMouseEvent *); virtual bool eventFilter(QObject *, QEvent *); virtual bool event(QEvent *); %If (- Qt_5_0_0) %If (WS_WIN) bool winEvent(MSG *m, long *result); %End %End %If (Qt_4_3_0 -) virtual void moveEvent(QMoveEvent *moveEvent); %End %If (Qt_4_3_0 -) virtual void showEvent(QShowEvent *showEvent); %End %If (Qt_4_3_0 -) virtual void hideEvent(QHideEvent *hideEvent); %End private: QSizeGrip(const QSizeGrip &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qsizepolicy.sip0000644000076500000240000000773312536324426020701 0ustar philstaff00000000000000// qsizepolicy.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QSizePolicy { %TypeHeaderCode #include %End public: enum PolicyFlag { GrowFlag, ExpandFlag, ShrinkFlag, IgnoreFlag, }; enum Policy { Fixed, Minimum, Maximum, Preferred, MinimumExpanding, Expanding, Ignored, }; QSizePolicy(); %If (Qt_5_0_0 -) QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical, QSizePolicy::ControlType type = QSizePolicy::DefaultType); %End %If (- Qt_5_0_0) QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical); %End %If (Qt_4_3_0 - Qt_5_0_0) QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical, QSizePolicy::ControlType type); %End QSizePolicy(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QSizePolicy(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QSizePolicy(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End QSizePolicy::Policy horizontalPolicy() const; QSizePolicy::Policy verticalPolicy() const; void setHorizontalPolicy(QSizePolicy::Policy d); void setVerticalPolicy(QSizePolicy::Policy d); Qt::Orientations expandingDirections() const; void setHeightForWidth(bool b); bool hasHeightForWidth() const; bool operator==(const QSizePolicy &s) const; bool operator!=(const QSizePolicy &s) const; int horizontalStretch() const; int verticalStretch() const; %If (Qt_5_0_0 -) void setHorizontalStretch(int stretchFactor); %End %If (- Qt_5_0_0) void setHorizontalStretch(uint stretchFactor) [void (uchar stretchFactor)]; %End %If (Qt_5_0_0 -) void setVerticalStretch(int stretchFactor); %End %If (- Qt_5_0_0) void setVerticalStretch(uint stretchFactor) [void (uchar stretchFactor)]; %End void transpose(); %If (Qt_4_3_0 -) enum ControlType { DefaultType, ButtonBox, CheckBox, ComboBox, Frame, GroupBox, Label, Line, LineEdit, PushButton, RadioButton, Slider, SpinBox, TabWidget, ToolButton, }; %End %If (Qt_4_3_0 -) typedef QFlags ControlTypes; %End %If (Qt_4_3_0 -) QSizePolicy::ControlType controlType() const; %End %If (Qt_4_3_0 -) void setControlType(QSizePolicy::ControlType type); %End %If (Qt_4_8_0 -) void setWidthForHeight(bool b); %End %If (Qt_4_8_0 -) bool hasWidthForHeight() const; %End }; %If (Qt_4_2_0 -) QDataStream &operator<<(QDataStream &, const QSizePolicy & /Constrained/); %End %If (Qt_4_2_0 -) QDataStream &operator>>(QDataStream &, QSizePolicy & /Constrained/); %End %If (Qt_4_3_0 -) QFlags operator|(QSizePolicy::ControlType f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qslider.sip0000644000076500000240000000366312536324426017767 0ustar philstaff00000000000000// qslider.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSlider : QAbstractSlider { %TypeHeaderCode #include %End public: enum TickPosition { NoTicks, TicksAbove, TicksLeft, TicksBelow, TicksRight, TicksBothSides, }; explicit QSlider(QWidget *parent /TransferThis/ = 0); QSlider(Qt::Orientation orientation, QWidget *parent /TransferThis/ = 0); virtual ~QSlider(); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void setTickPosition(QSlider::TickPosition position); QSlider::TickPosition tickPosition() const; void setTickInterval(int ti); int tickInterval() const; virtual bool event(QEvent *event); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionSlider *option) const; %End virtual void paintEvent(QPaintEvent *ev); virtual void mousePressEvent(QMouseEvent *ev); virtual void mouseReleaseEvent(QMouseEvent *ev); virtual void mouseMoveEvent(QMouseEvent *ev); private: QSlider(const QSlider &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qsortfilterproxymodel.sip0000644000076500000240000001435512536324426023025 0ustar philstaff00000000000000// qsortfilterproxymodel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSortFilterProxyModel : QAbstractProxyModel { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QSortFilterProxyModel(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QSortFilterProxyModel(QObject *parent /TransferThis/ = 0); %End virtual ~QSortFilterProxyModel(); virtual void setSourceModel(QAbstractItemModel *sourceModel /KeepReference/); virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const; virtual QModelIndex mapFromSource(const QModelIndex &sourceIndex) const; virtual QItemSelection mapSelectionToSource(const QItemSelection &proxySelection) const; virtual QItemSelection mapSelectionFromSource(const QItemSelection &sourceSelection) const; QRegExp filterRegExp() const; void setFilterRegExp(const QRegExp ®Exp); int filterKeyColumn() const; void setFilterKeyColumn(int column); Qt::CaseSensitivity filterCaseSensitivity() const; void setFilterCaseSensitivity(Qt::CaseSensitivity cs); public slots: void setFilterRegExp(const QString &pattern); void setFilterWildcard(const QString &pattern); void setFilterFixedString(const QString &pattern); void clear(); protected: virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; virtual bool filterAcceptsColumn(int source_column, const QModelIndex &source_parent) const; %If (Qt_4_2_0 -) void filterChanged(); %End virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const; public: virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex parent(const QModelIndex &child) const; QObject *parent() const; virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const; %If (Qt_4_3_0 -) virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; %End %If (- Qt_4_3_0) virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; %End %If (Qt_4_3_0 -) virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); %End %If (- Qt_4_3_0) virtual bool setData(const QModelIndex &index, const QVariant &value, int role); %End %If (Qt_4_3_0 -) virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::EditRole) const; %End %If (- Qt_4_3_0) virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const; %End %If (Qt_4_3_0 -) virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole); %End %If (- Qt_4_3_0) virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role); %End virtual QMimeData *mimeData(const QModelIndexList &indexes) const /TransferBack/; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual void fetchMore(const QModelIndex &parent); virtual bool canFetchMore(const QModelIndex &parent) const; virtual Qt::ItemFlags flags(const QModelIndex &index) const; virtual QModelIndex buddy(const QModelIndex &index) const; virtual QSize span(const QModelIndex &index) const; %If (Qt_4_3_0 -) virtual QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits = 1, Qt::MatchFlags flags = Qt::MatchStartsWith|Qt::MatchWrap) const; %End %If (- Qt_4_3_0) virtual QModelIndexList match(const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const; %End virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); %If (Qt_4_2_0 -) Qt::CaseSensitivity sortCaseSensitivity() const; %End %If (Qt_4_2_0 -) void setSortCaseSensitivity(Qt::CaseSensitivity cs); %End %If (Qt_4_2_0 -) bool dynamicSortFilter() const; %End %If (Qt_4_2_0 -) void setDynamicSortFilter(bool enable); %End %If (Qt_4_2_0 -) int sortRole() const; %End %If (Qt_4_2_0 -) void setSortRole(int role); %End %If (Qt_4_5_0 -) int sortColumn() const; %End %If (Qt_4_5_0 -) Qt::SortOrder sortOrder() const; %End %If (Qt_4_2_0 -) int filterRole() const; %End %If (Qt_4_2_0 -) void setFilterRole(int role); %End %If (Qt_4_2_0 -) virtual QStringList mimeTypes() const; %End %If (Qt_4_2_0 -) virtual Qt::DropActions supportedDropActions() const; %End %If (Qt_4_3_0 -) bool isSortLocaleAware() const; %End %If (Qt_4_3_0 -) void setSortLocaleAware(bool on); %End %If (Qt_5_0_0 -) virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const; %End public slots: %If (Qt_4_3_0 -) void invalidate(); %End protected: %If (Qt_4_3_0 -) void invalidateFilter(); %End private: QSortFilterProxyModel(const QSortFilterProxyModel &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qsound.sip0000644000076500000240000000257712536324426017640 0ustar philstaff00000000000000// qsound.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) class QSound : QObject { %TypeHeaderCode #include %End public: QSound(const QString &filename, QObject *parent /TransferThis/ = 0); virtual ~QSound(); static bool isAvailable(); static void play(const QString &filename); int loops() const; int loopsRemaining() const; void setLoops(int); QString fileName() const; bool isFinished() const; public slots: void play(); void stop(); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qspinbox.sip0000644000076500000240000000700112536324426020155 0ustar philstaff00000000000000// qspinbox.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSpinBox : QAbstractSpinBox { %TypeHeaderCode #include %End public: explicit QSpinBox(QWidget *parent /TransferThis/ = 0); %If (Qt_5_0_0 -) virtual ~QSpinBox(); %End int value() const; QString prefix() const; void setPrefix(const QString &p); QString suffix() const; void setSuffix(const QString &s); QString cleanText() const; int singleStep() const; void setSingleStep(int val); int minimum() const; void setMinimum(int min); int maximum() const; void setMaximum(int max); void setRange(int min, int max); protected: virtual QValidator::State validate(QString &input /In,Out/, int &pos /In,Out/) const /API=QString:2 - /; virtual QValidator::State validate(QString &input /Constrained/, int &pos /In,Out/) const /API=QString: - 2/; virtual int valueFromText(const QString &text) const; virtual QString textFromValue(int v) const; virtual void fixup(QString &str /In,Out/) const /API=QString:2 - /; virtual void fixup(QString &str /Constrained/) const /API=QString: - 2/; virtual bool event(QEvent *e); public slots: void setValue(int val); signals: void valueChanged(int); void valueChanged(const QString &); private: QSpinBox(const QSpinBox &); }; class QDoubleSpinBox : QAbstractSpinBox { %TypeHeaderCode #include %End public: explicit QDoubleSpinBox(QWidget *parent /TransferThis/ = 0); %If (Qt_5_0_0 -) virtual ~QDoubleSpinBox(); %End double value() const; QString prefix() const; void setPrefix(const QString &p); QString suffix() const; void setSuffix(const QString &s); QString cleanText() const; double singleStep() const; void setSingleStep(double val); double minimum() const; void setMinimum(double min); double maximum() const; void setMaximum(double max); void setRange(double min, double max); int decimals() const; void setDecimals(int prec); virtual QValidator::State validate(QString &input /In,Out/, int &pos /In,Out/) const /API=QString:2 - /; virtual QValidator::State validate(QString &input /Constrained/, int &pos /In,Out/) const /API=QString: - 2/; virtual double valueFromText(const QString &text) const; virtual QString textFromValue(double v) const; virtual void fixup(QString &str /In,Out/) const /API=QString:2 - /; virtual void fixup(QString &str /Constrained/) const /API=QString: - 2/; public slots: void setValue(double val); signals: void valueChanged(double); void valueChanged(const QString &); private: QDoubleSpinBox(const QDoubleSpinBox &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qsplashscreen.sip0000644000076500000240000000403012536324426021164 0ustar philstaff00000000000000// qsplashscreen.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSplashScreen : QWidget { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QSplashScreen(const QPixmap &pixmap = QPixmap(), Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QSplashScreen(const QPixmap &pixmap = QPixmap(), Qt::WFlags flags = 0); %End %If (Qt_4_2_0 -) QSplashScreen(QWidget *parent /TransferThis/, const QPixmap &pixmap = QPixmap(), Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QSplashScreen(QWidget *parent /TransferThis/, const QPixmap &pixmap = QPixmap(), Qt::WFlags flags = 0); %End virtual ~QSplashScreen(); void setPixmap(const QPixmap &pixmap); const QPixmap pixmap() const; void finish(QWidget *w); void repaint(); public slots: void showMessage(const QString &message, int alignment = Qt::AlignLeft, const QColor &color = Qt::black); void clearMessage(); signals: void messageChanged(const QString &message); protected: virtual void drawContents(QPainter *painter); virtual bool event(QEvent *e); virtual void mousePressEvent(QMouseEvent *); private: QSplashScreen(const QSplashScreen &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qsplitter.sip0000644000076500000240000000707112536324426020350 0ustar philstaff00000000000000// qsplitter.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QSplitter : QFrame { %TypeHeaderCode #include %End public: explicit QSplitter(QWidget *parent /TransferThis/ = 0); QSplitter(Qt::Orientation orientation, QWidget *parent /TransferThis/ = 0); virtual ~QSplitter(); void addWidget(QWidget *widget /Transfer/); void insertWidget(int index, QWidget *widget /Transfer/); void setOrientation(Qt::Orientation); Qt::Orientation orientation() const; void setChildrenCollapsible(bool); bool childrenCollapsible() const; void setCollapsible(int index, bool); bool isCollapsible(int index) const; void setOpaqueResize(bool opaque = true); bool opaqueResize() const; void refresh(); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; QList sizes() const; void setSizes(const QList &list); QByteArray saveState() const; bool restoreState(const QByteArray &state); int handleWidth() const; void setHandleWidth(int); int indexOf(QWidget *w) const; QWidget *widget(int index) const; int count() const /__len__/; void getRange(int index, int *, int *) const; QSplitterHandle *handle(int index) const /Transfer/; void setStretchFactor(int index, int stretch); signals: void splitterMoved(int pos, int index); protected: virtual QSplitterHandle *createHandle() /Transfer/; virtual void childEvent(QChildEvent *); virtual bool event(QEvent *); virtual void resizeEvent(QResizeEvent *); virtual void changeEvent(QEvent *); void moveSplitter(int pos, int index); void setRubberBand(int position); int closestLegalPosition(int, int); private: QSplitter(const QSplitter &); }; QTextStream &operator<<(QTextStream &, const QSplitter &); QTextStream &operator>>(QTextStream &, QSplitter &); class QSplitterHandle : QWidget { %TypeHeaderCode #include %End public: QSplitterHandle(Qt::Orientation o, QSplitter *parent /TransferThis/); %If (Qt_5_0_0 -) virtual ~QSplitterHandle(); %End void setOrientation(Qt::Orientation o); Qt::Orientation orientation() const; bool opaqueResize() const; QSplitter *splitter() const; virtual QSize sizeHint() const; protected: virtual void paintEvent(QPaintEvent *); virtual void mouseMoveEvent(QMouseEvent *); virtual void mousePressEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual bool event(QEvent *); void moveSplitter(int p); int closestLegalPosition(int p); %If (Qt_4_7_0 -) virtual void resizeEvent(QResizeEvent *); %End private: QSplitterHandle(const QSplitterHandle &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qstackedlayout.sip0000644000076500000240000000741312536324426021356 0ustar philstaff00000000000000// qstackedlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QStackedLayout : QLayout { %TypeHeaderCode #include %End public: %If (Qt_4_4_0 -) enum StackingMode { StackOne, StackAll, }; %End QStackedLayout(); explicit QStackedLayout(QWidget *parent /TransferThis/); explicit QStackedLayout(QLayout *parentLayout /TransferThis/); virtual ~QStackedLayout(); int addWidget(QWidget *w /GetWrapper/); %MethodCode Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->addWidget(a0); Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a0Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows addWidget(QWidget()). sipTransferTo(a0Wrapper, sipSelf); } %End int insertWidget(int index, QWidget *w /GetWrapper/); %MethodCode Py_BEGIN_ALLOW_THREADS sipRes = sipCpp->insertWidget(a0, a1); Py_END_ALLOW_THREADS // The layout's parent widget (if there is one) will now have ownership. QWidget *parent = sipCpp->parentWidget(); if (parent) { PyObject *py_parent = sipGetPyObject(parent, sipType_QWidget); if (py_parent) sipTransferTo(a1Wrapper, py_parent); } else { // For now give the Python ownership to the layout. This maintains // compatibility with previous versions and allows insertWidget(QWidget()). sipTransferTo(a1Wrapper, sipSelf); } %End QWidget *currentWidget() const; int currentIndex() const; QWidget *widget(int) const; virtual QWidget *widget(); virtual int count() const; virtual void addItem(QLayoutItem *item /Transfer/); virtual QSize sizeHint() const; virtual QSize minimumSize() const; virtual QLayoutItem *itemAt(int) const; virtual QLayoutItem *takeAt(int) /TransferBack/; virtual void setGeometry(const QRect &rect); signals: void widgetRemoved(int index); void currentChanged(int index); public slots: void setCurrentIndex(int index); void setCurrentWidget(QWidget *w); public: %If (Qt_4_4_0 -) QStackedLayout::StackingMode stackingMode() const; %End %If (Qt_4_4_0 -) void setStackingMode(QStackedLayout::StackingMode stackingMode); %End %If (Qt_5_0_0 -) virtual bool hasHeightForWidth() const; %End %If (Qt_5_0_0 -) virtual int heightForWidth(int width) const; %End private: QStackedLayout(const QStackedLayout &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qstackedwidget.sip0000644000076500000240000000325212536324426021321 0ustar philstaff00000000000000// qstackedwidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QStackedWidget : QFrame { %TypeHeaderCode #include %End public: explicit QStackedWidget(QWidget *parent /TransferThis/ = 0); virtual ~QStackedWidget(); int addWidget(QWidget *w /Transfer/); int insertWidget(int index, QWidget *w /Transfer/); void removeWidget(QWidget *w); QWidget *currentWidget() const; int currentIndex() const; int indexOf(QWidget *) const; QWidget *widget(int) const; int count() const /__len__/; public slots: void setCurrentIndex(int index); void setCurrentWidget(QWidget *w); signals: void currentChanged(int); void widgetRemoved(int index); protected: virtual bool event(QEvent *e); private: QStackedWidget(const QStackedWidget &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qstandarditemmodel.sip0000644000076500000240000002470412536324426022204 0ustar philstaff00000000000000// qstandarditemmodel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QStandardItemModel : QAbstractItemModel { %TypeHeaderCode #include %End public: explicit QStandardItemModel(QObject *parent /TransferThis/ = 0); QStandardItemModel(int rows, int columns, QObject *parent /TransferThis/ = 0); virtual ~QStandardItemModel(); virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex parent(const QModelIndex &child) const; QObject *parent() const; virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const; virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole); virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual Qt::ItemFlags flags(const QModelIndex &index) const; void clear(); %If (Qt_4_2_0 -) virtual Qt::DropActions supportedDropActions() const; %End %If (Qt_4_2_0 -) virtual QMap itemData(const QModelIndex &index) const; %End %If (Qt_4_2_0 -) virtual bool setItemData(const QModelIndex &index, const QMap &roles); %End %If (Qt_4_2_0 -) virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); %End %If (Qt_4_2_0 -) QStandardItem *itemFromIndex(const QModelIndex &index) const; %End %If (Qt_4_2_0 -) QModelIndex indexFromItem(const QStandardItem *item) const; %End %If (Qt_4_2_0 -) QStandardItem *item(int row, int column = 0) const; %End %If (Qt_4_2_0 -) void setItem(int row, int column, QStandardItem *item /Transfer/); %End %If (Qt_4_2_0 -) void setItem(int arow, QStandardItem *aitem /Transfer/); %End %If (Qt_4_2_0 -) QStandardItem *invisibleRootItem() const /Transfer/; %End %If (Qt_4_2_0 -) QStandardItem *horizontalHeaderItem(int column) const; %End %If (Qt_4_2_0 -) void setHorizontalHeaderItem(int column, QStandardItem *item /Transfer/); %End %If (Qt_4_2_0 -) QStandardItem *verticalHeaderItem(int row) const; %End %If (Qt_4_2_0 -) void setVerticalHeaderItem(int row, QStandardItem *item /Transfer/); %End %If (Qt_4_2_0 -) void setHorizontalHeaderLabels(const QStringList &labels); %End %If (Qt_4_2_0 -) void setVerticalHeaderLabels(const QStringList &labels); %End %If (Qt_4_2_0 -) void setRowCount(int rows); %End %If (Qt_4_2_0 -) void setColumnCount(int columns); %End %If (Qt_4_2_0 -) void appendRow(const QList &items /Transfer/); %End %If (Qt_4_2_0 -) void appendColumn(const QList &items /Transfer/); %End %If (Qt_4_2_0 -) void insertRow(int row, const QList &items /Transfer/); %End %If (Qt_4_2_0 -) void insertColumn(int column, const QList &items /Transfer/); %End %If (Qt_4_2_0 -) QStandardItem *takeItem(int row, int column = 0) /TransferBack/; %End %If (Qt_4_2_0 -) QList takeRow(int row) /TransferBack/; %End %If (Qt_4_2_0 -) QList takeColumn(int column) /TransferBack/; %End %If (Qt_4_2_0 -) QStandardItem *takeHorizontalHeaderItem(int column) /TransferBack/; %End %If (Qt_4_2_0 -) QStandardItem *takeVerticalHeaderItem(int row) /TransferBack/; %End %If (Qt_4_2_0 -) const QStandardItem *itemPrototype() const; %End %If (Qt_4_2_0 -) void setItemPrototype(const QStandardItem *item /Transfer/); %End %If (Qt_4_2_0 -) QList findItems(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly, int column = 0) const; %End %If (Qt_4_2_0 -) int sortRole() const; %End %If (Qt_4_2_0 -) void setSortRole(int role); %End %If (Qt_4_2_0 -) void appendRow(QStandardItem *aitem /Transfer/); %End %If (Qt_4_2_0 -) void insertRow(int arow, QStandardItem *aitem /Transfer/); %End %If (Qt_4_2_0 -) bool insertRow(int row, const QModelIndex &parent = QModelIndex()); %End %If (Qt_4_2_0 -) bool insertColumn(int column, const QModelIndex &parent = QModelIndex()); %End %If (Qt_4_5_0 -) virtual QStringList mimeTypes() const; %End %If (Qt_4_5_0 -) virtual QMimeData *mimeData(const QModelIndexList &indexes) const /TransferBack/; %End %If (Qt_4_5_0 -) virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); %End %If (Qt_5_0_0 -) virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const; %End signals: %If (Qt_4_2_0 -) void itemChanged(QStandardItem *item); %End private: QStandardItemModel(const QStandardItemModel &); }; %If (Qt_4_2_0 -) class QStandardItem /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: QStandardItem(); %If (Qt_5_0_0 -) explicit QStandardItem(const QString &text); %End %If (- Qt_5_0_0) QStandardItem(const QString &text); %End QStandardItem(const QIcon &icon, const QString &text); QStandardItem(int rows, int columns = 1); virtual ~QStandardItem(); virtual QVariant data(int role = Qt::UserRole+1) const; virtual void setData(const QVariant &value, int role = Qt::UserRole+1); QString text() const; QIcon icon() const; QString toolTip() const; QString statusTip() const; QString whatsThis() const; QSize sizeHint() const; QFont font() const; Qt::Alignment textAlignment() const; QBrush background() const; QBrush foreground() const; Qt::CheckState checkState() const; QString accessibleText() const; QString accessibleDescription() const; Qt::ItemFlags flags() const; void setFlags(Qt::ItemFlags flags); bool isEnabled() const; void setEnabled(bool enabled); bool isEditable() const; void setEditable(bool editable); bool isSelectable() const; void setSelectable(bool selectable); bool isCheckable() const; void setCheckable(bool checkable); bool isTristate() const; void setTristate(bool tristate); bool isDragEnabled() const; void setDragEnabled(bool dragEnabled); bool isDropEnabled() const; void setDropEnabled(bool dropEnabled); QStandardItem *parent() const; int row() const; int column() const; QModelIndex index() const; QStandardItemModel *model() const; int rowCount() const; void setRowCount(int rows); int columnCount() const; void setColumnCount(int columns); bool hasChildren() const; QStandardItem *child(int row, int column = 0) const; void setChild(int row, int column, QStandardItem *item /Transfer/); void setChild(int arow, QStandardItem *aitem /Transfer/); void insertRow(int row, const QList &items /Transfer/); void insertRow(int arow, QStandardItem *aitem /Transfer/); void insertRows(int row, int count); void insertColumn(int column, const QList &items /Transfer/); void insertColumns(int column, int count); void removeRow(int row); void removeColumn(int column); void removeRows(int row, int count); void removeColumns(int column, int count); QStandardItem *takeChild(int row, int column = 0) /TransferBack/; QList takeRow(int row) /TransferBack/; QList takeColumn(int column) /TransferBack/; void sortChildren(int column, Qt::SortOrder order = Qt::AscendingOrder); virtual QStandardItem *clone() const /Factory/; enum ItemType { Type, UserType, }; virtual int type() const; virtual void read(QDataStream &in); virtual void write(QDataStream &out) const; virtual bool operator<(const QStandardItem &other /NoCopy/) const; void setText(const QString &atext); void setIcon(const QIcon &aicon); void setToolTip(const QString &atoolTip); void setStatusTip(const QString &astatusTip); void setWhatsThis(const QString &awhatsThis); void setSizeHint(const QSize &asizeHint); void setFont(const QFont &afont); void setTextAlignment(Qt::Alignment atextAlignment); void setBackground(const QBrush &abrush); void setForeground(const QBrush &abrush); void setCheckState(Qt::CheckState acheckState); void setAccessibleText(const QString &aaccessibleText); void setAccessibleDescription(const QString &aaccessibleDescription); void appendRow(const QList &aitems /Transfer/); void appendRow(QStandardItem *aitem /Transfer/); void appendColumn(const QList &aitems /Transfer/); %If (Qt_4_3_0 -) void insertRows(int row, const QList &items /Transfer/); %End %If (Qt_4_3_0 -) void appendRows(const QList &aitems /Transfer/); %End protected: QStandardItem(const QStandardItem &other); %If (Qt_4_4_0 -) void emitDataChanged(); %End }; %End %If (Qt_4_2_0 -) QDataStream &operator>>(QDataStream &in, QStandardItem &item /Constrained/); %End %If (Qt_4_2_0 -) QDataStream &operator<<(QDataStream &out, const QStandardItem &item /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qstatictext.sip0000644000076500000240000000367012536324426020677 0ustar philstaff00000000000000// qstatictext.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QStaticText { %TypeHeaderCode #include %End public: enum PerformanceHint { ModerateCaching, AggressiveCaching, }; QStaticText(); QStaticText(const QString &text); QStaticText(const QStaticText &other); ~QStaticText(); void setText(const QString &text); QString text() const; void setTextFormat(Qt::TextFormat textFormat); Qt::TextFormat textFormat() const; void setTextWidth(qreal textWidth); qreal textWidth() const; void setTextOption(const QTextOption &textOption); QTextOption textOption() const; QSizeF size() const; void prepare(const QTransform &matrix = QTransform(), const QFont &font = QFont()); void setPerformanceHint(QStaticText::PerformanceHint performanceHint); QStaticText::PerformanceHint performanceHint() const; bool operator==(const QStaticText &) const; bool operator!=(const QStaticText &) const; %If (Qt_5_0_0 -) void swap(QStaticText &other); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qstatusbar.sip0000644000076500000240000000402012536324426020501 0ustar philstaff00000000000000// qstatusbar.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QStatusBar : QWidget { %TypeHeaderCode #include %End public: explicit QStatusBar(QWidget *parent /TransferThis/ = 0); virtual ~QStatusBar(); void addWidget(QWidget *widget /Transfer/, int stretch = 0); void addPermanentWidget(QWidget *widget /Transfer/, int stretch = 0); void removeWidget(QWidget *widget); void setSizeGripEnabled(bool); bool isSizeGripEnabled() const; QString currentMessage() const; %If (Qt_4_2_0 -) int insertWidget(int index, QWidget *widget /Transfer/, int stretch = 0); %End %If (Qt_4_2_0 -) int insertPermanentWidget(int index, QWidget *widget /Transfer/, int stretch = 0); %End public slots: void showMessage(const QString &message, int msecs = 0); void clearMessage(); signals: void messageChanged(const QString &text); protected: virtual void paintEvent(QPaintEvent *); virtual void resizeEvent(QResizeEvent *); void reformat(); void hideOrShow(); virtual bool event(QEvent *); %If (Qt_4_4_0 -) virtual void showEvent(QShowEvent *); %End private: QStatusBar(const QStatusBar &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qstringlistmodel.sip0000644000076500000240000000410612536324426021721 0ustar philstaff00000000000000// qstringlistmodel.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QStringListModel : QAbstractListModel { %TypeHeaderCode #include %End public: explicit QStringListModel(QObject *parent /TransferThis/ = 0); QStringListModel(const QStringList &strings, QObject *parent /TransferThis/ = 0); virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual QVariant data(const QModelIndex &index, int role) const; virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); virtual Qt::ItemFlags flags(const QModelIndex &index) const; virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); QStringList stringList() const; void setStringList(const QStringList &strings); virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); %If (Qt_4_4_0 -) virtual Qt::DropActions supportedDropActions() const; %End %If (Qt_5_0_0 -) virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const; %End private: QStringListModel(const QStringListModel &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qstyle.sip0000644000076500000240000006404612536324426017647 0ustar philstaff00000000000000// qstyle.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QStyle : QObject { %TypeHeaderCode #include %End public: QStyle(); virtual ~QStyle(); virtual void polish(QWidget *); virtual void unpolish(QWidget *); virtual void polish(QApplication *); virtual void unpolish(QApplication *); virtual void polish(QPalette & /In,Out/); virtual QRect itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const; virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const; virtual void drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; virtual void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const; virtual QPalette standardPalette() const; enum StateFlag { State_None, State_Enabled, State_Raised, State_Sunken, State_Off, State_NoChange, State_On, State_DownArrow, State_Horizontal, State_HasFocus, State_Top, State_Bottom, State_FocusAtBorder, State_AutoRaise, State_MouseOver, State_UpArrow, State_Selected, State_Active, State_Open, State_Children, State_Item, State_Sibling, State_Editing, State_KeyboardFocusChange, State_ReadOnly, %If (Qt_4_3_0 -) State_Window, %End %If (Qt_4_3_0 -) State_Small, %End %If (Qt_4_3_0 -) State_Mini, %End }; typedef QFlags State; enum PrimitiveElement { %If (- Qt_5_0_0) PE_Q3CheckListController, %End %If (- Qt_5_0_0) PE_Q3CheckListExclusiveIndicator, %End %If (- Qt_5_0_0) PE_Q3CheckListIndicator, %End %If (- Qt_5_0_0) PE_Q3DockWindowSeparator, %End %If (- Qt_5_0_0) PE_Q3Separator, %End PE_Frame, PE_FrameDefaultButton, PE_FrameDockWidget, PE_FrameFocusRect, PE_FrameGroupBox, PE_FrameLineEdit, PE_FrameMenu, PE_FrameStatusBar, PE_FrameTabWidget, PE_FrameWindow, PE_FrameButtonBevel, PE_FrameButtonTool, PE_FrameTabBarBase, PE_PanelButtonCommand, PE_PanelButtonBevel, PE_PanelButtonTool, PE_PanelMenuBar, PE_PanelToolBar, PE_PanelLineEdit, PE_IndicatorArrowDown, PE_IndicatorArrowLeft, PE_IndicatorArrowRight, PE_IndicatorArrowUp, PE_IndicatorBranch, PE_IndicatorButtonDropDown, PE_IndicatorViewItemCheck, PE_IndicatorCheckBox, PE_IndicatorDockWidgetResizeHandle, PE_IndicatorHeaderArrow, PE_IndicatorMenuCheckMark, PE_IndicatorProgressChunk, PE_IndicatorRadioButton, PE_IndicatorSpinDown, PE_IndicatorSpinMinus, PE_IndicatorSpinPlus, PE_IndicatorSpinUp, PE_IndicatorToolBarHandle, PE_IndicatorToolBarSeparator, PE_PanelTipLabel, PE_IndicatorTabTear, %If (Qt_4_2_0 -) PE_PanelScrollAreaCorner, %End %If (Qt_4_2_0 -) PE_Widget, %End %If (Qt_4_3_0 -) PE_IndicatorColumnViewArrow, %End %If (Qt_4_4_0 -) PE_FrameStatusBarItem, %End %If (Qt_4_4_0 -) PE_IndicatorItemViewItemCheck, %End %If (Qt_4_4_0 -) PE_IndicatorItemViewItemDrop, %End %If (Qt_4_4_0 -) PE_PanelItemViewItem, %End %If (Qt_4_4_0 -) PE_PanelItemViewRow, %End %If (Qt_4_4_0 -) PE_PanelStatusBar, %End %If (Qt_4_5_0 -) PE_IndicatorTabClose, %End %If (Qt_4_5_0 -) PE_PanelMenu, %End PE_CustomBase, }; virtual void drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *widget = 0) const = 0; enum ControlElement { CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel, CE_CheckBox, CE_CheckBoxLabel, CE_RadioButton, CE_RadioButtonLabel, CE_TabBarTab, CE_TabBarTabShape, CE_TabBarTabLabel, CE_ProgressBar, CE_ProgressBarGroove, CE_ProgressBarContents, CE_ProgressBarLabel, CE_MenuItem, CE_MenuScroller, CE_MenuVMargin, CE_MenuHMargin, CE_MenuTearoff, CE_MenuEmptyArea, CE_MenuBarItem, CE_MenuBarEmptyArea, CE_ToolButtonLabel, CE_Header, CE_HeaderSection, CE_HeaderLabel, %If (- Qt_5_0_0) CE_Q3DockWindowEmptyArea, %End CE_ToolBoxTab, CE_SizeGrip, CE_Splitter, CE_RubberBand, CE_DockWidgetTitle, CE_ScrollBarAddLine, CE_ScrollBarSubLine, CE_ScrollBarAddPage, CE_ScrollBarSubPage, CE_ScrollBarSlider, CE_ScrollBarFirst, CE_ScrollBarLast, CE_FocusFrame, CE_ComboBoxLabel, CE_ToolBar, %If (Qt_4_3_0 -) CE_ToolBoxTabShape, %End %If (Qt_4_3_0 -) CE_ToolBoxTabLabel, %End %If (Qt_4_3_0 -) CE_HeaderEmptyArea, %End %If (Qt_4_3_0 -) CE_ColumnViewGrip, %End %If (Qt_4_4_0 -) CE_ItemViewItem, %End %If (Qt_4_5_0 -) CE_ShapedFrame, %End CE_CustomBase, }; virtual void drawControl(QStyle::ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *widget = 0) const = 0; enum SubElement { SE_PushButtonContents, SE_PushButtonFocusRect, SE_CheckBoxIndicator, SE_CheckBoxContents, SE_CheckBoxFocusRect, SE_CheckBoxClickRect, SE_RadioButtonIndicator, SE_RadioButtonContents, SE_RadioButtonFocusRect, SE_RadioButtonClickRect, SE_ComboBoxFocusRect, SE_SliderFocusRect, %If (- Qt_5_0_0) SE_Q3DockWindowHandleRect, %End SE_ProgressBarGroove, SE_ProgressBarContents, SE_ProgressBarLabel, %If (- Qt_5_0_0) SE_DialogButtonAccept, %End %If (- Qt_5_0_0) SE_DialogButtonReject, %End %If (- Qt_5_0_0) SE_DialogButtonApply, %End %If (- Qt_5_0_0) SE_DialogButtonHelp, %End %If (- Qt_5_0_0) SE_DialogButtonAll, %End %If (- Qt_5_0_0) SE_DialogButtonAbort, %End %If (- Qt_5_0_0) SE_DialogButtonIgnore, %End %If (- Qt_5_0_0) SE_DialogButtonRetry, %End %If (- Qt_5_0_0) SE_DialogButtonCustom, %End SE_ToolBoxTabContents, SE_HeaderLabel, SE_HeaderArrow, SE_TabWidgetTabBar, SE_TabWidgetTabPane, SE_TabWidgetTabContents, SE_TabWidgetLeftCorner, SE_TabWidgetRightCorner, SE_ViewItemCheckIndicator, SE_TabBarTearIndicator, SE_TreeViewDisclosureItem, %If (Qt_4_2_0 -) SE_LineEditContents, %End %If (Qt_4_2_0 -) SE_FrameContents, %End %If (Qt_4_3_0 -) SE_DockWidgetCloseButton, %End %If (Qt_4_3_0 -) SE_DockWidgetFloatButton, %End %If (Qt_4_3_0 -) SE_DockWidgetTitleBarText, %End %If (Qt_4_3_0 -) SE_DockWidgetIcon, %End %If (Qt_4_3_0 -) SE_CheckBoxLayoutItem, %End %If (Qt_4_3_0 -) SE_ComboBoxLayoutItem, %End %If (Qt_4_3_0 -) SE_DateTimeEditLayoutItem, %End %If (Qt_4_3_0 -) SE_DialogButtonBoxLayoutItem, %End %If (Qt_4_3_0 -) SE_LabelLayoutItem, %End %If (Qt_4_3_0 -) SE_ProgressBarLayoutItem, %End %If (Qt_4_3_0 -) SE_PushButtonLayoutItem, %End %If (Qt_4_3_0 -) SE_RadioButtonLayoutItem, %End %If (Qt_4_3_0 -) SE_SliderLayoutItem, %End %If (Qt_4_3_0 -) SE_SpinBoxLayoutItem, %End %If (Qt_4_3_0 -) SE_ToolButtonLayoutItem, %End %If (Qt_4_3_0 -) SE_FrameLayoutItem, %End %If (Qt_4_3_0 -) SE_GroupBoxLayoutItem, %End %If (Qt_4_3_0 -) SE_TabWidgetLayoutItem, %End %If (Qt_4_4_0 -) SE_ItemViewItemCheckIndicator, %End %If (Qt_4_4_0 -) SE_ItemViewItemDecoration, %End %If (Qt_4_4_0 -) SE_ItemViewItemText, %End %If (Qt_4_4_0 -) SE_ItemViewItemFocusRect, %End %If (Qt_4_5_0 -) SE_TabBarTabLeftButton, %End %If (Qt_4_5_0 -) SE_TabBarTabRightButton, %End %If (Qt_4_5_0 -) SE_TabBarTabText, %End %If (Qt_4_5_0 -) SE_ShapedFrameContents, %End %If (Qt_4_6_0 -) SE_ToolBarHandle, %End SE_CustomBase, }; virtual QRect subElementRect(QStyle::SubElement subElement, const QStyleOption *option, const QWidget *widget = 0) const = 0; enum ComplexControl { CC_SpinBox, CC_ComboBox, CC_ScrollBar, CC_Slider, CC_ToolButton, CC_TitleBar, %If (- Qt_5_0_0) CC_Q3ListView, %End CC_Dial, CC_GroupBox, %If (Qt_4_3_0 -) CC_MdiControls, %End CC_CustomBase, }; enum SubControl { SC_None, SC_ScrollBarAddLine, SC_ScrollBarSubLine, SC_ScrollBarAddPage, SC_ScrollBarSubPage, SC_ScrollBarFirst, SC_ScrollBarLast, SC_ScrollBarSlider, SC_ScrollBarGroove, SC_SpinBoxUp, SC_SpinBoxDown, SC_SpinBoxFrame, SC_SpinBoxEditField, SC_ComboBoxFrame, SC_ComboBoxEditField, SC_ComboBoxArrow, SC_ComboBoxListBoxPopup, SC_SliderGroove, SC_SliderHandle, SC_SliderTickmarks, SC_ToolButton, SC_ToolButtonMenu, SC_TitleBarSysMenu, SC_TitleBarMinButton, SC_TitleBarMaxButton, SC_TitleBarCloseButton, SC_TitleBarNormalButton, SC_TitleBarShadeButton, SC_TitleBarUnshadeButton, SC_TitleBarContextHelpButton, SC_TitleBarLabel, %If (- Qt_5_0_0) SC_Q3ListView, %End %If (- Qt_5_0_0) SC_Q3ListViewBranch, %End %If (- Qt_5_0_0) SC_Q3ListViewExpand, %End SC_DialGroove, SC_DialHandle, SC_DialTickmarks, SC_GroupBoxCheckBox, SC_GroupBoxLabel, SC_GroupBoxContents, SC_GroupBoxFrame, %If (Qt_4_3_0 -) SC_MdiMinButton, %End %If (Qt_4_3_0 -) SC_MdiNormalButton, %End %If (Qt_4_3_0 -) SC_MdiCloseButton, %End %If (Qt_4_6_0 -) SC_CustomBase, %End SC_All, }; typedef QFlags SubControls; virtual void drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, const QWidget *widget = 0) const = 0; virtual QStyle::SubControl hitTestComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt, const QWidget *widget = 0) const = 0; virtual QRect subControlRect(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, QStyle::SubControl sc, const QWidget *widget = 0) const = 0; enum PixelMetric { PM_ButtonMargin, PM_ButtonDefaultIndicator, PM_MenuButtonIndicator, PM_ButtonShiftHorizontal, PM_ButtonShiftVertical, PM_DefaultFrameWidth, PM_SpinBoxFrameWidth, PM_ComboBoxFrameWidth, PM_MaximumDragDistance, PM_ScrollBarExtent, PM_ScrollBarSliderMin, PM_SliderThickness, PM_SliderControlThickness, PM_SliderLength, PM_SliderTickmarkOffset, PM_SliderSpaceAvailable, PM_DockWidgetSeparatorExtent, PM_DockWidgetHandleExtent, PM_DockWidgetFrameWidth, PM_TabBarTabOverlap, PM_TabBarTabHSpace, PM_TabBarTabVSpace, PM_TabBarBaseHeight, PM_TabBarBaseOverlap, PM_ProgressBarChunkWidth, PM_SplitterWidth, PM_TitleBarHeight, PM_MenuScrollerHeight, PM_MenuHMargin, PM_MenuVMargin, PM_MenuPanelWidth, PM_MenuTearoffHeight, PM_MenuDesktopFrameWidth, PM_MenuBarPanelWidth, PM_MenuBarItemSpacing, PM_MenuBarVMargin, PM_MenuBarHMargin, PM_IndicatorWidth, PM_IndicatorHeight, PM_ExclusiveIndicatorWidth, PM_ExclusiveIndicatorHeight, %If (- Qt_5_0_0) PM_CheckListButtonSize, %End %If (- Qt_5_0_0) PM_CheckListControllerSize, %End PM_DialogButtonsSeparator, PM_DialogButtonsButtonWidth, PM_DialogButtonsButtonHeight, %If (Qt_4_3_0 -) PM_MdiSubWindowFrameWidth, %End PM_MDIFrameWidth, %If (Qt_4_3_0 -) PM_MdiSubWindowMinimizedWidth, %End PM_MDIMinimizedWidth, PM_HeaderMargin, PM_HeaderMarkSize, PM_HeaderGripMargin, PM_TabBarTabShiftHorizontal, PM_TabBarTabShiftVertical, PM_TabBarScrollButtonWidth, PM_ToolBarFrameWidth, PM_ToolBarHandleExtent, PM_ToolBarItemSpacing, PM_ToolBarItemMargin, PM_ToolBarSeparatorExtent, PM_ToolBarExtensionExtent, PM_SpinBoxSliderHeight, PM_DefaultTopLevelMargin, PM_DefaultChildMargin, PM_DefaultLayoutSpacing, PM_ToolBarIconSize, PM_ListViewIconSize, PM_IconViewIconSize, PM_SmallIconSize, PM_LargeIconSize, PM_FocusFrameVMargin, PM_FocusFrameHMargin, PM_ToolTipLabelFrameWidth, PM_CheckBoxLabelSpacing, PM_TabBarIconSize, PM_SizeGripSize, PM_DockWidgetTitleMargin, %If (Qt_4_2_0 -) PM_MessageBoxIconSize, %End %If (Qt_4_2_0 -) PM_ButtonIconSize, %End %If (Qt_4_3_0 -) PM_DockWidgetTitleBarButtonMargin, %End %If (Qt_4_3_0 -) PM_RadioButtonLabelSpacing, %End %If (Qt_4_3_0 -) PM_LayoutLeftMargin, %End %If (Qt_4_3_0 -) PM_LayoutTopMargin, %End %If (Qt_4_3_0 -) PM_LayoutRightMargin, %End %If (Qt_4_3_0 -) PM_LayoutBottomMargin, %End %If (Qt_4_3_0 -) PM_LayoutHorizontalSpacing, %End %If (Qt_4_3_0 -) PM_LayoutVerticalSpacing, %End %If (Qt_4_4_0 -) PM_TabBar_ScrollButtonOverlap, %End %If (Qt_4_4_0 -) PM_TextCursorWidth, %End %If (Qt_4_5_0 -) PM_TabCloseIndicatorWidth, %End %If (Qt_4_5_0 -) PM_TabCloseIndicatorHeight, %End %If (Qt_4_5_0 -) PM_ScrollView_ScrollBarSpacing, %End %If (Qt_4_5_0 -) PM_SubMenuOverlap, %End %If (Qt_5_0_0 -) PM_ScrollView_ScrollBarOverlap, %End PM_CustomBase, }; virtual int pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const = 0; enum ContentsType { CT_PushButton, CT_CheckBox, CT_RadioButton, CT_ToolButton, CT_ComboBox, CT_Splitter, %If (- Qt_5_0_0) CT_Q3DockWindow, %End CT_ProgressBar, CT_MenuItem, CT_MenuBarItem, CT_MenuBar, CT_Menu, CT_TabBarTab, CT_Slider, CT_ScrollBar, %If (- Qt_5_0_0) CT_Q3Header, %End CT_LineEdit, CT_SpinBox, CT_SizeGrip, CT_TabWidget, CT_DialogButtons, CT_HeaderSection, CT_GroupBox, %If (Qt_4_3_0 -) CT_MdiControls, %End %If (Qt_4_4_0 -) CT_ItemViewItem, %End CT_CustomBase, }; virtual QSize sizeFromContents(QStyle::ContentsType ct, const QStyleOption *opt, const QSize &contentsSize, const QWidget *widget = 0) const = 0; enum StyleHint { SH_EtchDisabledText, SH_DitherDisabledText, SH_ScrollBar_MiddleClickAbsolutePosition, SH_ScrollBar_ScrollWhenPointerLeavesControl, SH_TabBar_SelectMouseType, SH_TabBar_Alignment, SH_Header_ArrowAlignment, SH_Slider_SnapToValue, SH_Slider_SloppyKeyEvents, SH_ProgressDialog_CenterCancelButton, SH_ProgressDialog_TextLabelAlignment, SH_PrintDialog_RightAlignButtons, SH_MainWindow_SpaceBelowMenuBar, SH_FontDialog_SelectAssociatedText, SH_Menu_AllowActiveAndDisabled, SH_Menu_SpaceActivatesItem, SH_Menu_SubMenuPopupDelay, SH_ScrollView_FrameOnlyAroundContents, SH_MenuBar_AltKeyNavigation, SH_ComboBox_ListMouseTracking, SH_Menu_MouseTracking, SH_MenuBar_MouseTracking, SH_ItemView_ChangeHighlightOnFocus, SH_Widget_ShareActivation, SH_Workspace_FillSpaceOnMaximize, SH_ComboBox_Popup, SH_TitleBar_NoBorder, SH_ScrollBar_StopMouseOverSlider, SH_BlinkCursorWhenTextSelected, SH_RichText_FullWidthSelection, SH_Menu_Scrollable, SH_GroupBox_TextLabelVerticalAlignment, SH_GroupBox_TextLabelColor, SH_Menu_SloppySubMenus, SH_Table_GridLineColor, SH_LineEdit_PasswordCharacter, SH_DialogButtons_DefaultButton, SH_ToolBox_SelectedPageTitleBold, SH_TabBar_PreferNoArrows, SH_ScrollBar_LeftClickAbsolutePosition, %If (- Qt_5_0_0) SH_Q3ListViewExpand_SelectMouseType, %End SH_UnderlineShortcut, SH_SpinBox_AnimateButton, SH_SpinBox_KeyPressAutoRepeatRate, SH_SpinBox_ClickAutoRepeatRate, SH_Menu_FillScreenWithScroll, SH_ToolTipLabel_Opacity, SH_DrawMenuBarSeparator, SH_TitleBar_ModifyNotification, SH_Button_FocusPolicy, %If (- Qt_5_0_0) SH_MenuBar_DismissOnSecondClick, %End SH_MessageBox_UseBorderForButtonSpacing, SH_TitleBar_AutoRaise, SH_ToolButton_PopupDelay, SH_FocusFrame_Mask, SH_RubberBand_Mask, SH_WindowFrame_Mask, SH_SpinControls_DisableOnBounds, SH_Dial_BackgroundRole, SH_ComboBox_LayoutDirection, SH_ItemView_EllipsisLocation, SH_ItemView_ShowDecorationSelected, SH_ItemView_ActivateItemOnSingleClick, SH_ScrollBar_ContextMenu, SH_ScrollBar_RollBetweenButtons, %If (Qt_4_2_0 -) SH_Slider_StopMouseOverSlider, %End %If (Qt_4_2_0 -) SH_Slider_AbsoluteSetButtons, %End %If (Qt_4_2_0 -) SH_Slider_PageSetButtons, %End %If (Qt_4_2_0 -) SH_Menu_KeyboardSearch, %End %If (Qt_4_2_0 -) SH_TabBar_ElideMode, %End %If (Qt_4_2_0 -) SH_DialogButtonLayout, %End %If (Qt_4_2_0 -) SH_ComboBox_PopupFrameStyle, %End %If (Qt_4_2_0 -) SH_MessageBox_TextInteractionFlags, %End %If (Qt_4_2_0 -) SH_DialogButtonBox_ButtonsHaveIcons, %End %If (Qt_4_2_0 -) SH_SpellCheckUnderlineStyle, %End %If (Qt_4_2_0 -) SH_MessageBox_CenterButtons, %End %If (Qt_4_2_0 -) SH_Menu_SelectionWrap, %End %If (Qt_4_2_0 -) SH_ItemView_MovementWithoutUpdatingSelection, %End %If (Qt_4_3_0 -) SH_ToolTip_Mask, %End %If (Qt_4_3_0 -) SH_FocusFrame_AboveWidget, %End %If (Qt_4_3_0 -) SH_TextControl_FocusIndicatorTextCharFormat, %End %If (Qt_4_3_0 -) SH_WizardStyle, %End %If (Qt_4_3_0 -) SH_ItemView_ArrowKeysNavigateIntoChildren, %End %If (Qt_4_3_3 -) SH_Menu_Mask, %End %If (Qt_4_4_0 -) SH_Menu_FlashTriggeredItem, %End %If (Qt_4_4_0 -) SH_Menu_FadeOutOnHide, %End %If (Qt_4_4_0 -) SH_SpinBox_ClickAutoRepeatThreshold, %End %If (Qt_4_4_0 -) SH_ItemView_PaintAlternatingRowColorsForEmptyArea, %End %If (Qt_4_4_0 -) SH_FormLayoutWrapPolicy, %End %If (Qt_4_4_0 -) SH_TabWidget_DefaultTabPosition, %End %If (Qt_4_4_0 -) SH_ToolBar_Movable, %End %If (Qt_4_4_0 -) SH_FormLayoutFieldGrowthPolicy, %End %If (Qt_4_4_0 -) SH_FormLayoutFormAlignment, %End %If (Qt_4_4_0 -) SH_FormLayoutLabelAlignment, %End %If (Qt_4_5_0 -) SH_ItemView_DrawDelegateFrame, %End %If (Qt_4_5_0 -) SH_TabBar_CloseButtonPosition, %End %If (Qt_4_5_0 -) SH_DockWidget_ButtonsHaveFrame, %End %If (Qt_4_6_0 -) SH_ToolButtonStyle, %End %If (Qt_4_6_0 -) SH_RequestSoftwareInputPanel, %End %If (Qt_5_0_0 -) SH_ListViewExpand_SelectMouseType, %End %If (Qt_5_0_0 -) SH_ScrollBar_Transient, %End SH_CustomBase, }; virtual int styleHint(QStyle::StyleHint stylehint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0) const = 0; enum StandardPixmap { SP_TitleBarMenuButton, SP_TitleBarMinButton, SP_TitleBarMaxButton, SP_TitleBarCloseButton, SP_TitleBarNormalButton, SP_TitleBarShadeButton, SP_TitleBarUnshadeButton, SP_TitleBarContextHelpButton, SP_DockWidgetCloseButton, SP_MessageBoxInformation, SP_MessageBoxWarning, SP_MessageBoxCritical, SP_MessageBoxQuestion, SP_DesktopIcon, SP_TrashIcon, SP_ComputerIcon, SP_DriveFDIcon, SP_DriveHDIcon, SP_DriveCDIcon, SP_DriveDVDIcon, SP_DriveNetIcon, SP_DirOpenIcon, SP_DirClosedIcon, SP_DirLinkIcon, SP_FileIcon, SP_FileLinkIcon, SP_ToolBarHorizontalExtensionButton, SP_ToolBarVerticalExtensionButton, SP_FileDialogStart, SP_FileDialogEnd, SP_FileDialogToParent, SP_FileDialogNewFolder, SP_FileDialogDetailedView, SP_FileDialogInfoView, SP_FileDialogContentsView, SP_FileDialogListView, SP_FileDialogBack, %If (Qt_4_2_0 -) SP_DirIcon, %End %If (Qt_4_2_0 -) SP_DialogOkButton, %End %If (Qt_4_2_0 -) SP_DialogCancelButton, %End %If (Qt_4_2_0 -) SP_DialogHelpButton, %End %If (Qt_4_2_0 -) SP_DialogOpenButton, %End %If (Qt_4_2_0 -) SP_DialogSaveButton, %End %If (Qt_4_2_0 -) SP_DialogCloseButton, %End %If (Qt_4_2_0 -) SP_DialogApplyButton, %End %If (Qt_4_2_0 -) SP_DialogResetButton, %End %If (Qt_4_2_0 -) SP_DialogDiscardButton, %End %If (Qt_4_2_0 -) SP_DialogYesButton, %End %If (Qt_4_2_0 -) SP_DialogNoButton, %End %If (Qt_4_2_0 -) SP_ArrowUp, %End %If (Qt_4_2_0 -) SP_ArrowDown, %End %If (Qt_4_2_0 -) SP_ArrowLeft, %End %If (Qt_4_2_0 -) SP_ArrowRight, %End %If (Qt_4_2_0 -) SP_ArrowBack, %End %If (Qt_4_2_0 -) SP_ArrowForward, %End %If (Qt_4_3_0 -) SP_DirHomeIcon, %End %If (Qt_4_3_0 -) SP_CommandLink, %End %If (Qt_4_3_0 -) SP_VistaShield, %End %If (Qt_4_4_0 -) SP_BrowserReload, %End %If (Qt_4_4_0 -) SP_BrowserStop, %End %If (Qt_4_4_0 -) SP_MediaPlay, %End %If (Qt_4_4_0 -) SP_MediaStop, %End %If (Qt_4_4_0 -) SP_MediaPause, %End %If (Qt_4_4_0 -) SP_MediaSkipForward, %End %If (Qt_4_4_0 -) SP_MediaSkipBackward, %End %If (Qt_4_4_0 -) SP_MediaSeekForward, %End %If (Qt_4_4_0 -) SP_MediaSeekBackward, %End %If (Qt_4_4_0 -) SP_MediaVolume, %End %If (Qt_4_4_0 -) SP_MediaVolumeMuted, %End %If (Qt_5_0_0 -) SP_DirLinkOpenIcon, %End SP_CustomBase, }; virtual QPixmap standardPixmap(QStyle::StandardPixmap standardPixmap, const QStyleOption *option = 0, const QWidget *widget = 0) const = 0; %If (Qt_5_0_0 -) virtual QIcon standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = 0, const QWidget *widget = 0) const = 0; %End %If (- Qt_5_0_0) QIcon standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = 0, const QWidget *widget = 0) const; %End virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const = 0; static QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, const QRect &logicalRect); static QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, const QPoint &logicalPos); static int sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false); static int sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false); static Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment); static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle); %If (Qt_5_0_0 -) virtual int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = 0, const QWidget *widget = 0) const = 0; %End %If (Qt_4_3_0 - Qt_5_0_0) int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = 0, const QWidget *widget = 0) const; %End %If (Qt_4_3_0 -) int combinedLayoutSpacing(QFlags controls1, QFlags controls2, Qt::Orientation orientation, QStyleOption *option = 0, QWidget *widget = 0) const; %End protected slots: %If (- Qt_5_0_0) QIcon standardIconImplementation(QStyle::StandardPixmap standardIcon, const QStyleOption *option = 0, const QWidget *widget = 0) const; %End %If (Qt_4_3_0 - Qt_5_0_0) int layoutSpacingImplementation(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = 0, const QWidget *widget = 0) const; %End public: %If (Qt_4_6_0 -) enum RequestSoftwareInputPanel { RSIP_OnMouseClickAndAlreadyFocused, RSIP_OnMouseClick, }; %End %If (Qt_4_6_0 -) const QStyle *proxy() const; %End private: QStyle(const QStyle &); }; QFlags operator|(QStyle::StateFlag f1, QFlags f2); QFlags operator|(QStyle::SubControl f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qstyleditemdelegate.sip0000644000076500000240000000471612536324426022363 0ustar philstaff00000000000000// qstyleditemdelegate.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QStyledItemDelegate : QAbstractItemDelegate { %TypeHeaderCode #include %End public: explicit QStyledItemDelegate(QObject *parent /TransferThis/ = 0); virtual ~QStyledItemDelegate(); virtual void paint(QPainter *painter, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const; virtual QSize sizeHint(const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const; virtual QWidget *createEditor(QWidget *parent /TransferThis/, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const /Factory/; virtual void setEditorData(QWidget *editor, const QModelIndex &index) const; virtual void setModelData(QWidget *editor, QAbstractItemModel *model /KeepReference/, const QModelIndex &index) const; virtual void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const; QItemEditorFactory *itemEditorFactory() const; void setItemEditorFactory(QItemEditorFactory *factory /KeepReference/); virtual QString displayText(const QVariant &value, const QLocale &locale) const; protected: virtual void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const; virtual bool eventFilter(QObject *object, QEvent *event); virtual bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index); private: QStyledItemDelegate(const QStyledItemDelegate &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qstylefactory.sip0000644000076500000240000000213612536324426021227 0ustar philstaff00000000000000// qstylefactory.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QStyleFactory { %TypeHeaderCode #include %End public: static QStringList keys(); static QStyle *create(const QString &) /Factory/; }; PyQt-x11-gpl-4.11.4/sip/QtGui/qstyleoption.sip0000644000076500000240000010544512536324426021077 0ustar philstaff00000000000000// qstyleoption.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QStyleOption { %TypeHeaderCode #include %End %ConvertToSubClassCode switch (sipCpp->type) { case QStyleOption::SO_Button: sipType = sipType_QStyleOptionButton; break; case QStyleOption::SO_ComboBox: sipType = sipType_QStyleOptionComboBox; break; case QStyleOption::SO_DockWidget: sipType = sipType_QStyleOptionDockWidget; break; case QStyleOption::SO_FocusRect: sipType = sipType_QStyleOptionFocusRect; break; case QStyleOption::SO_Frame: #if QT_VERSION >= 0x050000 sipType = sipType_QStyleOptionFrame; break; #else switch (sipCpp->version) { #if QT_VERSION >= 0x040500 case 3: sipType = sipType_QStyleOptionFrameV3; break; #endif #if QT_VERSION >= 0x040100 case 2: sipType = sipType_QStyleOptionFrameV2; break; #endif default: sipType = sipType_QStyleOptionFrame; } break; #endif #if QT_VERSION >= 0x040200 case QStyleOption::SO_GraphicsItem: sipType = sipType_QStyleOptionGraphicsItem; break; #endif #if QT_VERSION >= 0x040100 case QStyleOption::SO_GroupBox: sipType = sipType_QStyleOptionGroupBox; break; #endif case QStyleOption::SO_Header: sipType = sipType_QStyleOptionHeader; break; case QStyleOption::SO_MenuItem: sipType = sipType_QStyleOptionMenuItem; break; case QStyleOption::SO_ProgressBar: #if QT_VERSION >= 0x050000 sipType = sipType_QStyleOptionProgressBar; break; #else switch (sipCpp->version) { #if QT_VERSION >= 0x040100 case 2: sipType = sipType_QStyleOptionProgressBarV2; break; #endif default: sipType = sipType_QStyleOptionProgressBar; } break; #endif case QStyleOption::SO_RubberBand: sipType = sipType_QStyleOptionRubberBand; break; #if QT_VERSION >= 0x040200 case QStyleOption::SO_SizeGrip: sipType = sipType_QStyleOptionSizeGrip; break; #endif case QStyleOption::SO_Slider: sipType = sipType_QStyleOptionSlider; break; case QStyleOption::SO_SpinBox: sipType = sipType_QStyleOptionSpinBox; break; case QStyleOption::SO_Tab: #if QT_VERSION >= 0x050000 sipType = sipType_QStyleOptionTab; break; #else switch (sipCpp->version) { #if QT_VERSION >= 0x040500 case 3: sipType = sipType_QStyleOptionTabV3; break; #endif #if QT_VERSION >= 0x040100 case 2: sipType = sipType_QStyleOptionTabV2; break; #endif default: sipType = sipType_QStyleOptionTab; } break; #endif case QStyleOption::SO_TabBarBase: #if QT_VERSION >= 0x050000 sipType = sipType_QStyleOptionTabBarBase; break; #else switch (sipCpp->version) { #if QT_VERSION >= 0x040500 case 2: sipType = sipType_QStyleOptionTabBarBaseV2; break; #endif default: sipType = sipType_QStyleOptionTabBarBase; } break; #endif case QStyleOption::SO_TabWidgetFrame: #if QT_VERSION >= 0x050000 sipType = sipType_QStyleOptionTabWidgetFrame; break; #else switch (sipCpp->version) { #if QT_VERSION >= 0x040600 case 2: sipType = sipType_QStyleOptionTabWidgetFrameV2; break; #endif default: sipType = sipType_QStyleOptionTabWidgetFrame; } break; #endif case QStyleOption::SO_TitleBar: sipType = sipType_QStyleOptionTitleBar; break; #if QT_VERSION >= 0x040100 case QStyleOption::SO_ToolBar: sipType = sipType_QStyleOptionToolBar; break; #endif case QStyleOption::SO_ToolBox: #if QT_VERSION >= 0x050000 sipType = sipType_QStyleOptionToolBox; break; #else switch (sipCpp->version) { #if QT_VERSION >= 0x040300 case 2: sipType = sipType_QStyleOptionToolBoxV2; break; #endif default: sipType = sipType_QStyleOptionToolBox; } break; #endif case QStyleOption::SO_ToolButton: sipType = sipType_QStyleOptionToolButton; break; case QStyleOption::SO_ViewItem: #if QT_VERSION >= 0x050000 sipType = sipType_QStyleOptionViewItem; break; #else switch (sipCpp->version) { #if QT_VERSION >= 0x040400 case 4: sipType = sipType_QStyleOptionViewItemV4; break; #endif #if QT_VERSION >= 0x040300 case 3: sipType = sipType_QStyleOptionViewItemV3; break; #endif #if QT_VERSION >= 0x040200 case 2: sipType = sipType_QStyleOptionViewItemV2; break; #endif default: sipType = sipType_QStyleOptionViewItem; } break; #endif default: if ((sipCpp->type & QStyleOption::SO_ComplexCustomBase) == QStyleOption::SO_ComplexCustomBase) sipType = sipType_QStyleOptionComplex; else sipType = 0; } %End public: enum OptionType { SO_Default, SO_FocusRect, SO_Button, SO_Tab, SO_MenuItem, SO_Frame, SO_ProgressBar, SO_ToolBox, SO_Header, %If (- Qt_5_0_0) SO_Q3DockWindow, %End SO_DockWidget, %If (- Qt_5_0_0) SO_Q3ListViewItem, %End SO_ViewItem, SO_TabWidgetFrame, SO_TabBarBase, SO_RubberBand, SO_ToolBar, SO_Complex, SO_Slider, SO_SpinBox, SO_ToolButton, SO_ComboBox, %If (- Qt_5_0_0) SO_Q3ListView, %End SO_TitleBar, SO_GroupBox, SO_ComplexCustomBase, %If (Qt_4_2_0 -) SO_GraphicsItem, %End %If (Qt_4_2_0 -) SO_SizeGrip, %End SO_CustomBase, }; %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End int version; int type; QFlags state; Qt::LayoutDirection direction; QRect rect; QFontMetrics fontMetrics; QPalette palette; %If (Qt_5_0_0 -) QObject *styleObject; %End QStyleOption(int version = QStyleOption::Version, int type = SO_Default); QStyleOption(const QStyleOption &other); ~QStyleOption(); void init(const QWidget *w); void initFrom(const QWidget *w); }; class QStyleOptionFocusRect : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QColor backgroundColor; QStyleOptionFocusRect(); QStyleOptionFocusRect(const QStyleOptionFocusRect &other); }; class QStyleOptionFrame : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End %If (Qt_5_0_0 -) enum FrameFeature { None, Flat, Rounded, }; %End %If (Qt_5_0_0 -) typedef QFlags FrameFeatures; %End %If (Qt_5_0_0 -) QFlags features; %End %If (Qt_5_0_0 -) QFrame::Shape frameShape; %End int lineWidth; int midLineWidth; QStyleOptionFrame(); QStyleOptionFrame(const QStyleOptionFrame &other); }; %If (Qt_5_0_0 -) QFlags operator|(QStyleOptionFrame::FrameFeature f1, QFlags f2); %End %If (- Qt_5_0_0) class QStyleOptionFrameV2 : QStyleOptionFrame { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End enum FrameFeature { None, Flat, }; typedef QFlags FrameFeatures; QFlags features; QStyleOptionFrameV2(); QStyleOptionFrameV2(const QStyleOptionFrameV2 &other); QStyleOptionFrameV2(const QStyleOptionFrame &other); }; %End %If (- Qt_5_0_0) QFlags operator|(QStyleOptionFrameV2::FrameFeature f1, QFlags f2); %End class QStyleOptionTabWidgetFrame : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End int lineWidth; int midLineWidth; QTabBar::Shape shape; QSize tabBarSize; QSize rightCornerWidgetSize; QSize leftCornerWidgetSize; %If (Qt_5_0_0 -) QRect tabBarRect; %End %If (Qt_5_0_0 -) QRect selectedTabRect; %End QStyleOptionTabWidgetFrame(); QStyleOptionTabWidgetFrame(const QStyleOptionTabWidgetFrame &other); }; class QStyleOptionTabBarBase : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QTabBar::Shape shape; QRect tabBarRect; QRect selectedTabRect; %If (Qt_5_0_0 -) bool documentMode; %End QStyleOptionTabBarBase(); QStyleOptionTabBarBase(const QStyleOptionTabBarBase &other); }; class QStyleOptionHeader : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End enum SectionPosition { Beginning, Middle, End, OnlyOneSection, }; enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected, NextAndPreviousAreSelected, }; enum SortIndicator { None, SortUp, SortDown, }; int section; QString text; Qt::Alignment textAlignment; QIcon icon; Qt::Alignment iconAlignment; QStyleOptionHeader::SectionPosition position; QStyleOptionHeader::SelectedPosition selectedPosition; QStyleOptionHeader::SortIndicator sortIndicator; Qt::Orientation orientation; QStyleOptionHeader(); QStyleOptionHeader(const QStyleOptionHeader &other); }; class QStyleOptionButton : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End enum ButtonFeature { None, Flat, HasMenu, DefaultButton, AutoDefaultButton, %If (Qt_4_3_0 -) CommandLinkButton, %End }; typedef QFlags ButtonFeatures; QFlags features; QString text; QIcon icon; QSize iconSize; QStyleOptionButton(); QStyleOptionButton(const QStyleOptionButton &other); }; QFlags operator|(QStyleOptionButton::ButtonFeature f1, QFlags f2); class QStyleOptionTab : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End enum TabPosition { Beginning, Middle, End, OnlyOneTab, }; enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected, }; enum CornerWidget { NoCornerWidgets, LeftCornerWidget, RightCornerWidget, }; typedef QFlags CornerWidgets; QTabBar::Shape shape; QString text; QIcon icon; int row; QStyleOptionTab::TabPosition position; QStyleOptionTab::SelectedPosition selectedPosition; QFlags cornerWidgets; %If (Qt_5_0_0 -) QSize iconSize; %End %If (Qt_5_0_0 -) bool documentMode; %End %If (Qt_5_0_0 -) QSize leftButtonSize; %End %If (Qt_5_0_0 -) QSize rightButtonSize; %End %If (Qt_5_0_0 -) enum TabFeature { None, HasFrame, }; %End %If (Qt_5_0_0 -) typedef QFlags TabFeatures; %End %If (Qt_5_0_0 -) QFlags features; %End QStyleOptionTab(); QStyleOptionTab(const QStyleOptionTab &other); }; QFlags operator|(QStyleOptionTab::CornerWidget f1, QFlags f2); %If (- Qt_5_0_0) class QStyleOptionTabV2 : QStyleOptionTab { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QSize iconSize; QStyleOptionTabV2(); QStyleOptionTabV2(const QStyleOptionTabV2 &other); QStyleOptionTabV2(const QStyleOptionTab &other); }; %End class QStyleOptionProgressBar : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End int minimum; int maximum; int progress; QString text; Qt::Alignment textAlignment; bool textVisible; %If (Qt_5_0_0 -) Qt::Orientation orientation; %End %If (Qt_5_0_0 -) bool invertedAppearance; %End %If (Qt_5_0_0 -) bool bottomToTop; %End QStyleOptionProgressBar(); QStyleOptionProgressBar(const QStyleOptionProgressBar &other); }; %If (- Qt_5_0_0) class QStyleOptionProgressBarV2 : QStyleOptionProgressBar { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End Qt::Orientation orientation; bool invertedAppearance; bool bottomToTop; QStyleOptionProgressBarV2(); QStyleOptionProgressBarV2(const QStyleOptionProgressBar &other); QStyleOptionProgressBarV2(const QStyleOptionProgressBarV2 &other); }; %End class QStyleOptionMenuItem : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End enum MenuItemType { Normal, DefaultItem, Separator, SubMenu, Scroller, TearOff, Margin, EmptyArea, }; enum CheckType { NotCheckable, Exclusive, NonExclusive, }; QStyleOptionMenuItem::MenuItemType menuItemType; QStyleOptionMenuItem::CheckType checkType; bool checked; bool menuHasCheckableItems; QRect menuRect; QString text; QIcon icon; int maxIconWidth; int tabWidth; QFont font; QStyleOptionMenuItem(); QStyleOptionMenuItem(const QStyleOptionMenuItem &other); }; class QStyleOptionDockWidget : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QString title; bool closable; bool movable; bool floatable; %If (Qt_5_0_0 -) bool verticalTitleBar; %End QStyleOptionDockWidget(); QStyleOptionDockWidget(const QStyleOptionDockWidget &other); }; class QStyleOptionViewItem : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End enum Position { Left, Right, Top, Bottom, }; Qt::Alignment displayAlignment; Qt::Alignment decorationAlignment; Qt::TextElideMode textElideMode; QStyleOptionViewItem::Position decorationPosition; QSize decorationSize; QFont font; bool showDecorationSelected; %If (Qt_5_0_0 -) enum ViewItemFeature { None, WrapText, Alternate, HasCheckIndicator, HasDisplay, HasDecoration, }; %End %If (Qt_5_0_0 -) typedef QFlags ViewItemFeatures; %End %If (Qt_5_0_0 -) QFlags features; %End %If (Qt_5_0_0 -) QLocale locale; %End %If (Qt_5_0_0 -) const QWidget *widget; %End %If (Qt_5_0_0 -) enum ViewItemPosition { Invalid, Beginning, Middle, End, OnlyOne, }; %End %If (Qt_5_0_0 -) QModelIndex index; %End %If (Qt_5_0_0 -) Qt::CheckState checkState; %End %If (Qt_5_0_0 -) QIcon icon; %End %If (Qt_5_0_0 -) QString text; %End %If (Qt_5_0_0 -) QStyleOptionViewItem::ViewItemPosition viewItemPosition; %End %If (Qt_5_0_0 -) QBrush backgroundBrush; %End QStyleOptionViewItem(); QStyleOptionViewItem(const QStyleOptionViewItem &other); }; %If (Qt_5_0_0 -) QFlags operator|(QStyleOptionViewItem::ViewItemFeature f1, QFlags f2); %End class QStyleOptionToolBox : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QString text; QIcon icon; %If (Qt_5_0_0 -) enum TabPosition { Beginning, Middle, End, OnlyOneTab, }; %End %If (Qt_5_0_0 -) enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected, }; %End %If (Qt_5_0_0 -) QStyleOptionToolBox::TabPosition position; %End %If (Qt_5_0_0 -) QStyleOptionToolBox::SelectedPosition selectedPosition; %End QStyleOptionToolBox(); QStyleOptionToolBox(const QStyleOptionToolBox &other); }; class QStyleOptionRubberBand : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QRubberBand::Shape shape; bool opaque; QStyleOptionRubberBand(); QStyleOptionRubberBand(const QStyleOptionRubberBand &other); }; class QStyleOptionComplex : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QFlags subControls; QFlags activeSubControls; QStyleOptionComplex(int version = QStyleOptionComplex::Version, int type = SO_Complex); QStyleOptionComplex(const QStyleOptionComplex &other); }; class QStyleOptionSlider : QStyleOptionComplex { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End Qt::Orientation orientation; int minimum; int maximum; QSlider::TickPosition tickPosition; int tickInterval; bool upsideDown; int sliderPosition; int sliderValue; int singleStep; int pageStep; qreal notchTarget; bool dialWrapping; QStyleOptionSlider(); QStyleOptionSlider(const QStyleOptionSlider &other); }; class QStyleOptionSpinBox : QStyleOptionComplex { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QAbstractSpinBox::ButtonSymbols buttonSymbols; QFlags stepEnabled; bool frame; QStyleOptionSpinBox(); QStyleOptionSpinBox(const QStyleOptionSpinBox &other); }; class QStyleOptionToolButton : QStyleOptionComplex { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End enum ToolButtonFeature { None, Arrow, Menu, PopupDelay, %If (Qt_4_3_0 -) MenuButtonPopup, %End %If (Qt_4_3_0 -) HasMenu, %End }; typedef QFlags ToolButtonFeatures; QFlags features; QIcon icon; QSize iconSize; QString text; Qt::ArrowType arrowType; Qt::ToolButtonStyle toolButtonStyle; QPoint pos; QFont font; QStyleOptionToolButton(); QStyleOptionToolButton(const QStyleOptionToolButton &other); }; QFlags operator|(QStyleOptionToolButton::ToolButtonFeature f1, QFlags f2); class QStyleOptionComboBox : QStyleOptionComplex { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End bool editable; QRect popupRect; bool frame; QString currentText; QIcon currentIcon; QSize iconSize; QStyleOptionComboBox(); QStyleOptionComboBox(const QStyleOptionComboBox &other); }; class QStyleOptionTitleBar : QStyleOptionComplex { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QString text; QIcon icon; int titleBarState; %If (Qt_4_2_0 -) Qt::WindowFlags titleBarFlags; %End %If (- Qt_4_2_0) Qt::WFlags titleBarFlags; %End QStyleOptionTitleBar(); QStyleOptionTitleBar(const QStyleOptionTitleBar &other); }; class QStyleHintReturn { %TypeHeaderCode #include %End public: enum HintReturnType { SH_Default, SH_Mask, %If (Qt_4_3_0 -) SH_Variant, %End }; %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QStyleHintReturn(int version = QStyleOption::Version, int type = SH_Default); ~QStyleHintReturn(); int version; int type; }; class QStyleHintReturnMask : QStyleHintReturn { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End QStyleHintReturnMask(); %If (Qt_5_0_0 -) ~QStyleHintReturnMask(); %End QRegion region; }; class QStyleOptionToolBar : QStyleOption { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End enum ToolBarPosition { Beginning, Middle, End, OnlyOne, }; enum ToolBarFeature { None, Movable, }; typedef QFlags ToolBarFeatures; QStyleOptionToolBar::ToolBarPosition positionOfLine; QStyleOptionToolBar::ToolBarPosition positionWithinLine; Qt::ToolBarArea toolBarArea; QFlags features; int lineWidth; int midLineWidth; QStyleOptionToolBar(); QStyleOptionToolBar(const QStyleOptionToolBar &other); }; QFlags operator|(QStyleOptionToolBar::ToolBarFeature f1, QFlags f2); class QStyleOptionGroupBox : QStyleOptionComplex { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum StyleOptionType { Type, }; %End %If (- Qt_4_2_0) enum { Type, }; %End %If (Qt_4_2_0 -) enum StyleOptionVersion { Version, }; %End %If (- Qt_4_2_0) enum { Version, }; %End %If (Qt_5_0_0 -) QFlags features; %End %If (- Qt_5_0_0) QFlags features; %End QString text; Qt::Alignment textAlignment; QColor textColor; int lineWidth; int midLineWidth; QStyleOptionGroupBox(); QStyleOptionGroupBox(const QStyleOptionGroupBox &other); }; %If (Qt_4_2_0 - Qt_5_0_0) class QStyleOptionViewItemV2 : QStyleOptionViewItem { %TypeHeaderCode #include %End public: enum StyleOptionVersion { Version, }; enum ViewItemFeature { None, WrapText, Alternate, %If (Qt_4_4_0 -) HasCheckIndicator, %End %If (Qt_4_4_0 -) HasDisplay, %End %If (Qt_4_4_0 -) HasDecoration, %End }; typedef QFlags ViewItemFeatures; QFlags features; QStyleOptionViewItemV2(); QStyleOptionViewItemV2(const QStyleOptionViewItemV2 &other); QStyleOptionViewItemV2(const QStyleOptionViewItem &other); }; %End %If (Qt_4_2_0 - Qt_5_0_0) QFlags operator|(QStyleOptionViewItemV2::ViewItemFeature f1, QFlags f2); %End %If (Qt_4_2_0 -) class QStyleOptionSizeGrip : QStyleOptionComplex { %TypeHeaderCode #include %End public: enum StyleOptionType { Type, }; enum StyleOptionVersion { Version, }; Qt::Corner corner; QStyleOptionSizeGrip(); QStyleOptionSizeGrip(const QStyleOptionSizeGrip &other); }; %End %If (Qt_4_2_0 -) class QStyleOptionGraphicsItem : QStyleOption { %TypeHeaderCode #include %End public: enum StyleOptionType { Type, }; enum StyleOptionVersion { Version, }; QRectF exposedRect; QMatrix matrix; qreal levelOfDetail; %If (Qt_4_6_0 -) static qreal levelOfDetailFromTransform(const QTransform &worldTransform); %End QStyleOptionGraphicsItem(); QStyleOptionGraphicsItem(const QStyleOptionGraphicsItem &other); }; %End %If (Qt_4_3_0 - Qt_5_0_0) class QStyleOptionDockWidgetV2 : QStyleOptionDockWidget { %TypeHeaderCode #include %End public: enum StyleOptionVersion { Version, }; bool verticalTitleBar; QStyleOptionDockWidgetV2(); QStyleOptionDockWidgetV2(const QStyleOptionDockWidgetV2 &other); QStyleOptionDockWidgetV2(const QStyleOptionDockWidget &other); }; %End %If (Qt_4_3_0 - Qt_5_0_0) class QStyleOptionViewItemV3 : QStyleOptionViewItemV2 { %TypeHeaderCode #include %End public: enum StyleOptionVersion { Version, }; QLocale locale; const QWidget *widget; QStyleOptionViewItemV3(); QStyleOptionViewItemV3(const QStyleOptionViewItemV3 &other); QStyleOptionViewItemV3(const QStyleOptionViewItem &other); }; %End %If (Qt_4_3_0 - Qt_5_0_0) class QStyleOptionToolBoxV2 : QStyleOptionToolBox { %TypeHeaderCode #include %End public: enum StyleOptionVersion { Version, }; enum TabPosition { Beginning, Middle, End, OnlyOneTab, }; enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected, }; QStyleOptionToolBoxV2::TabPosition position; QStyleOptionToolBoxV2::SelectedPosition selectedPosition; QStyleOptionToolBoxV2(); QStyleOptionToolBoxV2(const QStyleOptionToolBoxV2 &other); QStyleOptionToolBoxV2(const QStyleOptionToolBox &other); }; %End %If (Qt_4_3_0 -) class QStyleHintReturnVariant : QStyleHintReturn { %TypeHeaderCode #include %End public: enum StyleOptionType { Type, }; enum StyleOptionVersion { Version, }; QStyleHintReturnVariant(); %If (Qt_5_0_0 -) ~QStyleHintReturnVariant(); %End QVariant variant; }; %End %If (Qt_4_4_0 - Qt_5_0_0) class QStyleOptionViewItemV4 : QStyleOptionViewItemV3 { %TypeHeaderCode #include %End public: enum StyleOptionVersion { Version, }; enum ViewItemPosition { Invalid, Beginning, Middle, End, OnlyOne, }; QModelIndex index; Qt::CheckState checkState; QIcon icon; QString text; QStyleOptionViewItemV4::ViewItemPosition viewItemPosition; QBrush backgroundBrush; QStyleOptionViewItemV4(); QStyleOptionViewItemV4(const QStyleOptionViewItemV4 &other); QStyleOptionViewItemV4(const QStyleOptionViewItem &other); }; %End %If (Qt_4_5_0 - Qt_5_0_0) class QStyleOptionFrameV3 : QStyleOptionFrameV2 { %TypeHeaderCode #include %End public: enum StyleOptionVersion { Version, }; QFrame::Shape frameShape; uint unused; QStyleOptionFrameV3(); QStyleOptionFrameV3(const QStyleOptionFrameV3 &other); QStyleOptionFrameV3(const QStyleOptionFrame &other); }; %End %If (Qt_4_5_0 - Qt_5_0_0) class QStyleOptionTabBarBaseV2 : QStyleOptionTabBarBase { %TypeHeaderCode #include %End public: enum StyleOptionVersion { Version, }; bool documentMode; QStyleOptionTabBarBaseV2(); QStyleOptionTabBarBaseV2(const QStyleOptionTabBarBaseV2 &other); QStyleOptionTabBarBaseV2(const QStyleOptionTabBarBase &other); }; %End %If (Qt_4_5_0 - Qt_5_0_0) class QStyleOptionTabV3 : QStyleOptionTabV2 { %TypeHeaderCode #include %End public: enum StyleOptionVersion { Version, }; bool documentMode; QSize leftButtonSize; QSize rightButtonSize; QStyleOptionTabV3(); QStyleOptionTabV3(const QStyleOptionTabV3 &other); QStyleOptionTabV3(const QStyleOptionTabV2 &other); QStyleOptionTabV3(const QStyleOptionTab &other); }; %End %If (Qt_4_6_0 - Qt_5_0_0) class QStyleOptionTabWidgetFrameV2 : QStyleOptionTabWidgetFrame { %TypeHeaderCode #include %End public: enum StyleOptionVersion { Version, }; QRect tabBarRect; QRect selectedTabRect; QStyleOptionTabWidgetFrameV2(); QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrameV2 &other); QStyleOptionTabWidgetFrameV2(const QStyleOptionTabWidgetFrame &other); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qstylepainter.sip0000644000076500000240000000341212536324426021220 0ustar philstaff00000000000000// qstylepainter.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QStylePainter : QPainter { %TypeHeaderCode #include %End public: QStylePainter(); explicit QStylePainter(QWidget *w); QStylePainter(QPaintDevice *pd, QWidget *w); bool begin(QWidget *w); bool begin(QPaintDevice *pd, QWidget *w); QStyle *style() const; void drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &opt); void drawControl(QStyle::ControlElement ce, const QStyleOption &opt); void drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex &opt); void drawItemText(const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole); void drawItemPixmap(const QRect &r, int flags, const QPixmap &pixmap); private: %If (Qt_4_2_0 -) QStylePainter(const QStylePainter &); %End }; PyQt-x11-gpl-4.11.4/sip/QtGui/qsyntaxhighlighter.sip0000644000076500000240000000642012536324426022244 0ustar philstaff00000000000000// qsyntaxhighlighter.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSyntaxHighlighter : QObject { %TypeHeaderCode #include %End public: %If (- Qt_5_0_0) QSyntaxHighlighter(QTextEdit *parent /TransferThis/); %End %If (Qt_5_0_0 -) explicit QSyntaxHighlighter(QTextDocument *parent /TransferThis/); %End %If (- Qt_5_0_0) QSyntaxHighlighter(QTextDocument *parent /TransferThis/); %End %If (Qt_5_0_0 -) explicit QSyntaxHighlighter(QObject *parent /TransferThis/); %End %If (- Qt_5_0_0) QSyntaxHighlighter(QObject *parent /TransferThis/); %End virtual ~QSyntaxHighlighter(); void setDocument(QTextDocument *doc /KeepReference/); QTextDocument *document() const; public slots: %If (Qt_4_2_0 -) void rehighlight(); %End %If (Qt_4_6_0 -) void rehighlightBlock(const QTextBlock &block); %End protected: virtual void highlightBlock(const QString &text) = 0; void setFormat(int start, int count, const QTextCharFormat &format); void setFormat(int start, int count, const QColor &color); void setFormat(int start, int count, const QFont &font); QTextCharFormat format(int pos) const; int previousBlockState() const; int currentBlockState() const; void setCurrentBlockState(int newState); void setCurrentBlockUserData(QTextBlockUserData *data /GetWrapper/); %MethodCode // Ownership of the user data is with the document not the syntax highlighter. typedef PyObject *(*helper_func)(QObject *, const sipTypeDef *); static helper_func helper = 0; if (!helper) helper = (helper_func)sipImportSymbol("qtgui_wrap_ancestors"); QTextDocument *td = sipCpp->document(); if (td) { PyObject *py_td = (helper ? helper(td, sipType_QTextDocument) : 0); if (!py_td) { sipIsErr = 1; } else { sipTransferTo(a0Wrapper, py_td); Py_DECREF(py_td); } } #if defined(SIP_PROTECTED_IS_PUBLIC) sipCpp->setCurrentBlockUserData(a0); #else sipCpp->sipProtect_setCurrentBlockUserData(a0); #endif %End QTextBlockUserData *currentBlockUserData() const; %If (Qt_4_4_0 -) QTextBlock currentBlock() const; %End private: QSyntaxHighlighter(const QSyntaxHighlighter &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qsystemtrayicon.sip0000644000076500000240000000533412536324426021577 0ustar philstaff00000000000000// qsystemtrayicon.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) %If (PyQt_SystemTrayIcon) class QSystemTrayIcon : QObject { %TypeHeaderCode #include %End public: enum ActivationReason { Unknown, Context, DoubleClick, Trigger, MiddleClick, }; enum MessageIcon { NoIcon, Information, Warning, Critical, }; QSystemTrayIcon(QObject *parent /TransferThis/ = 0); %MethodCode // We want to track the instance. Py_BEGIN_ALLOW_THREADS sipCpp = new sipQSystemTrayIcon(a0); qtgui_track(sipCpp); Py_END_ALLOW_THREADS %End QSystemTrayIcon(const QIcon &icon, QObject *parent /TransferThis/ = 0); %MethodCode // We want to track the instance. Py_BEGIN_ALLOW_THREADS sipCpp = new sipQSystemTrayIcon(*a0, a1); qtgui_track(sipCpp); Py_END_ALLOW_THREADS %End virtual ~QSystemTrayIcon(); %MethodCode qtgui_untrack(sipCpp); %End void setContextMenu(QMenu *menu /KeepReference/); QMenu *contextMenu() const; %If (Qt_4_3_0 -) QRect geometry() const; %End QIcon icon() const; void setIcon(const QIcon &icon); QString toolTip() const; void setToolTip(const QString &tip); static bool isSystemTrayAvailable(); static bool supportsMessages(); void showMessage(const QString &title, const QString &msg, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int msecs = 10000); bool isVisible() const; public slots: void hide(); void setVisible(bool visible); void show(); signals: void activated(QSystemTrayIcon::ActivationReason reason); void messageClicked(); protected: virtual bool event(QEvent *event); private: QSystemTrayIcon(const QSystemTrayIcon &); }; %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qtabbar.sip0000644000076500000240000001232112536324426017727 0ustar philstaff00000000000000// qtabbar.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTabBar : QWidget { %TypeHeaderCode #include %End public: explicit QTabBar(QWidget *parent /TransferThis/ = 0); virtual ~QTabBar(); enum Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast, TriangularNorth, TriangularSouth, TriangularWest, TriangularEast, }; QTabBar::Shape shape() const; void setShape(QTabBar::Shape shape); int addTab(const QString &text); int addTab(const QIcon &icon, const QString &text); int insertTab(int index, const QString &text); int insertTab(int index, const QIcon &icon, const QString &text); void removeTab(int index); bool isTabEnabled(int index) const; void setTabEnabled(int index, bool); QString tabText(int index) const; void setTabText(int index, const QString &text); QColor tabTextColor(int index) const; void setTabTextColor(int index, const QColor &color); QIcon tabIcon(int index) const; void setTabIcon(int index, const QIcon &icon); %If (PyQt_ToolTip) void setTabToolTip(int index, const QString &tip); %End %If (PyQt_ToolTip) QString tabToolTip(int index) const; %End %If (PyQt_WhatsThis) void setTabWhatsThis(int index, const QString &text); %End %If (PyQt_WhatsThis) QString tabWhatsThis(int index) const; %End void setTabData(int index, const QVariant &data); QVariant tabData(int index) const; %If (Qt_4_3_0 -) int tabAt(const QPoint &pos) const; %End QRect tabRect(int index) const; int currentIndex() const; int count() const /__len__/; virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void setDrawBase(bool drawTheBase); bool drawBase() const; QSize iconSize() const; void setIconSize(const QSize &size); %If (Qt_4_2_0 -) Qt::TextElideMode elideMode() const; %End %If (Qt_4_2_0 -) void setElideMode(Qt::TextElideMode); %End %If (Qt_4_2_0 -) void setUsesScrollButtons(bool useButtons); %End %If (Qt_4_2_0 -) bool usesScrollButtons() const; %End public slots: void setCurrentIndex(int index); signals: void currentChanged(int index); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionTab *option, int tabIndex) const; %End virtual QSize tabSizeHint(int index) const; virtual void tabInserted(int index); virtual void tabRemoved(int index); virtual void tabLayoutChange(); virtual bool event(QEvent *); virtual void resizeEvent(QResizeEvent *); virtual void showEvent(QShowEvent *); virtual void paintEvent(QPaintEvent *); virtual void mousePressEvent(QMouseEvent *); virtual void mouseMoveEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void changeEvent(QEvent *); public: %If (Qt_4_5_0 -) enum ButtonPosition { LeftSide, RightSide, }; %End %If (Qt_4_5_0 -) enum SelectionBehavior { SelectLeftTab, SelectRightTab, SelectPreviousTab, }; %End %If (Qt_4_5_0 -) void moveTab(int from, int to); %End %If (Qt_4_5_0 -) bool tabsClosable() const; %End %If (Qt_4_5_0 -) void setTabsClosable(bool closable); %End %If (Qt_4_5_0 -) void setTabButton(int index, QTabBar::ButtonPosition position, QWidget *widget /Transfer/); %End %If (Qt_4_5_0 -) QWidget *tabButton(int index, QTabBar::ButtonPosition position) const; %End %If (Qt_4_5_0 -) QTabBar::SelectionBehavior selectionBehaviorOnRemove() const; %End %If (Qt_4_5_0 -) void setSelectionBehaviorOnRemove(QTabBar::SelectionBehavior behavior); %End %If (Qt_4_5_0 -) bool expanding() const; %End %If (Qt_4_5_0 -) void setExpanding(bool enabled); %End %If (Qt_4_5_0 -) bool isMovable() const; %End %If (Qt_4_5_0 -) void setMovable(bool movable); %End %If (Qt_4_5_0 -) bool documentMode() const; %End %If (Qt_4_5_0 -) void setDocumentMode(bool set); %End signals: %If (Qt_4_5_0 -) void tabCloseRequested(int index); %End %If (Qt_4_5_0 -) void tabMoved(int from, int to); %End protected: %If (Qt_4_5_0 -) virtual void hideEvent(QHideEvent *); %End %If (Qt_4_5_0 -) virtual void wheelEvent(QWheelEvent *event); %End %If (Qt_5_0_0 -) virtual QSize minimumTabSizeHint(int index) const; %End private: QTabBar(const QTabBar &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtableview.sip0000644000076500000240000001203012536324426020453 0ustar philstaff00000000000000// qtableview.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTableView : QAbstractItemView { %TypeHeaderCode #include %End public: explicit QTableView(QWidget *parent /TransferThis/ = 0); virtual ~QTableView(); virtual void setModel(QAbstractItemModel *model /KeepReference/); virtual void setRootIndex(const QModelIndex &index); virtual void setSelectionModel(QItemSelectionModel *selectionModel /KeepReference/); QHeaderView *horizontalHeader() const; QHeaderView *verticalHeader() const; void setHorizontalHeader(QHeaderView *header /Transfer/); void setVerticalHeader(QHeaderView *header /Transfer/); int rowViewportPosition(int row) const; void setRowHeight(int row, int height); int rowHeight(int row) const; int rowAt(int y) const; int columnViewportPosition(int column) const; void setColumnWidth(int column, int width); int columnWidth(int column) const; int columnAt(int x) const; bool isRowHidden(int row) const; void setRowHidden(int row, bool hide); bool isColumnHidden(int column) const; void setColumnHidden(int column, bool hide); bool showGrid() const; void setShowGrid(bool show); Qt::PenStyle gridStyle() const; void setGridStyle(Qt::PenStyle style); virtual QRect visualRect(const QModelIndex &index) const; virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible); virtual QModelIndex indexAt(const QPoint &p) const; public slots: void selectRow(int row); void selectColumn(int column); void hideRow(int row); void hideColumn(int column); void showRow(int row); void showColumn(int column); void resizeRowToContents(int row); void resizeRowsToContents(); void resizeColumnToContents(int column); void resizeColumnsToContents(); void sortByColumn(int column); protected slots: void rowMoved(int row, int oldIndex, int newIndex); void columnMoved(int column, int oldIndex, int newIndex); void rowResized(int row, int oldHeight, int newHeight); void columnResized(int column, int oldWidth, int newWidth); void rowCountChanged(int oldCount, int newCount); void columnCountChanged(int oldCount, int newCount); protected: virtual void scrollContentsBy(int dx, int dy); virtual QStyleOptionViewItem viewOptions() const; virtual void paintEvent(QPaintEvent *e); virtual void timerEvent(QTimerEvent *event); virtual int horizontalOffset() const; virtual int verticalOffset() const; virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers); virtual void setSelection(const QRect &rect, QFlags command); virtual QRegion visualRegionForSelection(const QItemSelection &selection) const; virtual QModelIndexList selectedIndexes() const; virtual void updateGeometries(); virtual int sizeHintForRow(int row) const; virtual int sizeHintForColumn(int column) const; virtual void verticalScrollbarAction(int action); virtual void horizontalScrollbarAction(int action); virtual bool isIndexHidden(const QModelIndex &index) const; public: %If (Qt_4_2_0 -) void setSortingEnabled(bool enable); %End %If (Qt_4_2_0 -) bool isSortingEnabled() const; %End %If (Qt_4_2_0 -) void setSpan(int row, int column, int rowSpan, int columnSpan); %End %If (Qt_4_2_0 -) int rowSpan(int row, int column) const; %End %If (Qt_4_2_0 -) int columnSpan(int row, int column) const; %End %If (Qt_4_2_0 -) void sortByColumn(int column, Qt::SortOrder order); %End %If (Qt_4_3_0 -) void setWordWrap(bool on); %End %If (Qt_4_3_0 -) bool wordWrap() const; %End %If (Qt_4_3_0 -) void setCornerButtonEnabled(bool enable); %End %If (Qt_4_3_0 -) bool isCornerButtonEnabled() const; %End %If (Qt_4_4_0 -) void clearSpans(); %End protected: %If (Qt_4_3_0 -) virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); %End %If (Qt_4_3_0 -) virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); %End private: QTableView(const QTableView &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtablewidget.sip0000644000076500000240000002327412536324426021000 0ustar philstaff00000000000000// qtablewidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QTableWidgetSelectionRange { %TypeHeaderCode #include %End public: QTableWidgetSelectionRange(); QTableWidgetSelectionRange(int top, int left, int bottom, int right); QTableWidgetSelectionRange(const QTableWidgetSelectionRange &other); ~QTableWidgetSelectionRange(); int topRow() const; int bottomRow() const; int leftColumn() const; int rightColumn() const; int rowCount() const; int columnCount() const; }; class QTableWidgetItem /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum ItemType { Type, UserType, }; %End %If (- Qt_4_2_0) enum { Type, UserType, }; %End %If (Qt_5_0_0 -) explicit QTableWidgetItem(int type = Type); %End %If (- Qt_5_0_0) QTableWidgetItem(int type = Type); %End QTableWidgetItem(const QString &text, int type = Type); %If (Qt_4_2_0 -) QTableWidgetItem(const QIcon &icon, const QString &text, int type = Type); %End QTableWidgetItem(const QTableWidgetItem &other); virtual ~QTableWidgetItem(); virtual QTableWidgetItem *clone() const /Factory/; QTableWidget *tableWidget() const; Qt::ItemFlags flags() const; QString text() const; QIcon icon() const; QString statusTip() const; %If (PyQt_ToolTip) QString toolTip() const; %End %If (PyQt_WhatsThis) QString whatsThis() const; %End QFont font() const; int textAlignment() const; void setTextAlignment(int alignment); QColor backgroundColor() const; void setBackgroundColor(const QColor &color); QColor textColor() const; void setTextColor(const QColor &color); Qt::CheckState checkState() const; void setCheckState(Qt::CheckState state); virtual QVariant data(int role) const; virtual void setData(int role, const QVariant &value); virtual bool operator<(const QTableWidgetItem &other /NoCopy/) const; virtual void read(QDataStream &in) /ReleaseGIL/; virtual void write(QDataStream &out) const /ReleaseGIL/; int type() const; void setFlags(Qt::ItemFlags aflags); void setText(const QString &atext); void setIcon(const QIcon &aicon); void setStatusTip(const QString &astatusTip); %If (PyQt_ToolTip) void setToolTip(const QString &atoolTip); %End %If (PyQt_WhatsThis) void setWhatsThis(const QString &awhatsThis); %End void setFont(const QFont &afont); QSize sizeHint() const; void setSizeHint(const QSize &size); %If (Qt_4_2_0 -) QBrush background() const; %End %If (Qt_4_2_0 -) void setBackground(const QBrush &brush); %End %If (Qt_4_2_0 -) QBrush foreground() const; %End %If (Qt_4_2_0 -) void setForeground(const QBrush &brush); %End %If (Qt_4_2_0 -) int row() const; %End %If (Qt_4_2_0 -) int column() const; %End %If (Qt_4_2_0 -) void setSelected(bool aselect); %End %If (Qt_4_2_0 -) bool isSelected() const; %End private: QTableWidgetItem &operator=(const QTableWidgetItem &); }; QDataStream &operator>>(QDataStream &in, QTableWidgetItem &item /Constrained/); QDataStream &operator<<(QDataStream &out, const QTableWidgetItem &item /Constrained/); class QTableWidget : QTableView { %TypeHeaderCode #include %End public: explicit QTableWidget(QWidget *parent /TransferThis/ = 0); QTableWidget(int rows, int columns, QWidget *parent /TransferThis/ = 0); virtual ~QTableWidget(); void setRowCount(int rows); int rowCount() const; void setColumnCount(int columns); int columnCount() const; int row(const QTableWidgetItem *item) const; int column(const QTableWidgetItem *item) const; QTableWidgetItem *item(int row, int column) const; void setItem(int row, int column, QTableWidgetItem *item /Transfer/); QTableWidgetItem *takeItem(int row, int column) /TransferBack/; QTableWidgetItem *verticalHeaderItem(int row) const; void setVerticalHeaderItem(int row, QTableWidgetItem *item /Transfer/); QTableWidgetItem *takeVerticalHeaderItem(int row) /TransferBack/; QTableWidgetItem *horizontalHeaderItem(int column) const; void setHorizontalHeaderItem(int column, QTableWidgetItem *item /Transfer/); QTableWidgetItem *takeHorizontalHeaderItem(int column) /TransferBack/; void setVerticalHeaderLabels(const QStringList &labels); void setHorizontalHeaderLabels(const QStringList &labels); int currentRow() const; int currentColumn() const; QTableWidgetItem *currentItem() const; void setCurrentItem(QTableWidgetItem *item); %If (Qt_4_4_0 -) void setCurrentItem(QTableWidgetItem *item, QFlags command); %End void setCurrentCell(int row, int column); %If (Qt_4_4_0 -) void setCurrentCell(int row, int column, QFlags command); %End void sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder); void setSortingEnabled(bool enable); bool isSortingEnabled() const; void editItem(QTableWidgetItem *item); void openPersistentEditor(QTableWidgetItem *item); void closePersistentEditor(QTableWidgetItem *item); QWidget *cellWidget(int row, int column) const; void setCellWidget(int row, int column, QWidget *widget /Transfer/); %MethodCode // We have to break the association with any existing widget. QWidget *w = sipCpp->cellWidget(a0, a1); if (w) { PyObject *wo = sipGetPyObject(w, sipType_QWidget); if (wo) sipTransferTo(wo, 0); } Py_BEGIN_ALLOW_THREADS sipCpp->setCellWidget(a0, a1, a2); Py_END_ALLOW_THREADS %End %If (Qt_4_3_0 -) void removeCellWidget(int arow, int acolumn); %MethodCode // We have to break the association with any existing widget. QWidget *w = sipCpp->cellWidget(a0, a1); if (w) { PyObject *wo = sipGetPyObject(w, sipType_QWidget); if (wo) sipTransferTo(wo, 0); } Py_BEGIN_ALLOW_THREADS sipCpp->removeCellWidget(a0, a1); Py_END_ALLOW_THREADS %End %End bool isItemSelected(const QTableWidgetItem *item) const; void setItemSelected(const QTableWidgetItem *item, bool select); void setRangeSelected(const QTableWidgetSelectionRange &range, bool select); QList selectedRanges() const; %If (Qt_5_0_0 -) QList selectedItems() const; %End %If (- Qt_5_0_0) QList selectedItems(); %End QList findItems(const QString &text, Qt::MatchFlags flags) const; int visualRow(int logicalRow) const; int visualColumn(int logicalColumn) const; QTableWidgetItem *itemAt(const QPoint &p) const; QTableWidgetItem *itemAt(int ax, int ay) const; QRect visualItemRect(const QTableWidgetItem *item) const; const QTableWidgetItem *itemPrototype() const; void setItemPrototype(const QTableWidgetItem *item /Transfer/); public slots: void scrollToItem(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible); void insertRow(int row); void insertColumn(int column); void removeRow(int row); void removeColumn(int column); void clear(); %If (Qt_4_2_0 -) void clearContents(); %End signals: void itemPressed(QTableWidgetItem *item); void itemClicked(QTableWidgetItem *item); void itemDoubleClicked(QTableWidgetItem *item); void itemActivated(QTableWidgetItem *item); void itemEntered(QTableWidgetItem *item); void itemChanged(QTableWidgetItem *item); void currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous); void itemSelectionChanged(); void cellPressed(int row, int column); void cellClicked(int row, int column); void cellDoubleClicked(int row, int column); void cellActivated(int row, int column); void cellEntered(int row, int column); void cellChanged(int row, int column); void currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn); protected: virtual QStringList mimeTypes() const; virtual QMimeData *mimeData(const QList items) const /TransferBack/; virtual bool dropMimeData(int row, int column, const QMimeData *data, Qt::DropAction action); virtual Qt::DropActions supportedDropActions() const; QList items(const QMimeData *data) const; QModelIndex indexFromItem(QTableWidgetItem *item) const; QTableWidgetItem *itemFromIndex(const QModelIndex &index) const; virtual bool event(QEvent *e); %If (Qt_4_2_0 -) virtual void dropEvent(QDropEvent *event); %End private: virtual void setModel(QAbstractItemModel *model /KeepReference/); QTableWidget(const QTableWidget &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtabwidget.sip0000644000076500000240000001071412536324426020452 0ustar philstaff00000000000000// qtabwidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTabWidget : QWidget { %TypeHeaderCode #include %End public: explicit QTabWidget(QWidget *parent /TransferThis/ = 0); virtual ~QTabWidget(); %If (Qt_4_3_0 -) void clear(); %End int addTab(QWidget *widget /Transfer/, const QString &); int addTab(QWidget *widget /Transfer/, const QIcon &icon, const QString &label); int insertTab(int index, QWidget *widget /Transfer/, const QString &); int insertTab(int index, QWidget *widget /Transfer/, const QIcon &icon, const QString &label); void removeTab(int index); bool isTabEnabled(int index) const; void setTabEnabled(int index, bool); QString tabText(int index) const; void setTabText(int index, const QString &); QIcon tabIcon(int index) const; void setTabIcon(int index, const QIcon &icon); %If (PyQt_ToolTip) void setTabToolTip(int index, const QString &tip); %End %If (PyQt_ToolTip) QString tabToolTip(int index) const; %End %If (PyQt_WhatsThis) void setTabWhatsThis(int index, const QString &text); %End %If (PyQt_WhatsThis) QString tabWhatsThis(int index) const; %End int currentIndex() const; QWidget *currentWidget() const; QWidget *widget(int index) const; int indexOf(QWidget *widget) const; int count() const /__len__/; enum TabPosition { North, South, West, East, }; QTabWidget::TabPosition tabPosition() const; void setTabPosition(QTabWidget::TabPosition); enum TabShape { Rounded, Triangular, }; QTabWidget::TabShape tabShape() const; void setTabShape(QTabWidget::TabShape s); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; void setCornerWidget(QWidget *widget /Transfer/, Qt::Corner corner = Qt::TopRightCorner); QWidget *cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const; public slots: void setCurrentIndex(int index); void setCurrentWidget(QWidget *widget); signals: void currentChanged(int index); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionTabWidgetFrame *option) const; %End virtual void tabInserted(int index); virtual void tabRemoved(int index); virtual bool event(QEvent *); virtual void showEvent(QShowEvent *); virtual void resizeEvent(QResizeEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void paintEvent(QPaintEvent *); void setTabBar(QTabBar * /Transfer/); public: %If (Qt_5_0_0 -) QTabBar *tabBar() const; %End protected: %If (- Qt_5_0_0) QTabBar *tabBar() const; %End virtual void changeEvent(QEvent *); public: %If (Qt_4_2_0 -) Qt::TextElideMode elideMode() const; %End %If (Qt_4_2_0 -) void setElideMode(Qt::TextElideMode); %End %If (Qt_4_2_0 -) QSize iconSize() const; %End %If (Qt_4_2_0 -) void setIconSize(const QSize &size); %End %If (Qt_4_2_0 -) bool usesScrollButtons() const; %End %If (Qt_4_2_0 -) void setUsesScrollButtons(bool useButtons); %End %If (Qt_4_5_0 -) bool tabsClosable() const; %End %If (Qt_4_5_0 -) void setTabsClosable(bool closeable); %End %If (Qt_4_5_0 -) bool isMovable() const; %End %If (Qt_4_5_0 -) void setMovable(bool movable); %End %If (Qt_4_5_0 -) bool documentMode() const; %End %If (Qt_4_5_0 -) void setDocumentMode(bool set); %End signals: %If (Qt_4_5_0 -) void tabCloseRequested(int index); %End public: %If (Qt_4_8_0 -) virtual int heightForWidth(int width) const; %End %If (Qt_5_0_0 -) virtual bool hasHeightForWidth() const; %End private: QTabWidget(const QTabWidget &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtextbrowser.sip0000644000076500000240000000543212536324426021071 0ustar philstaff00000000000000// qtextbrowser.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTextBrowser : QTextEdit { %TypeHeaderCode #include %End public: explicit QTextBrowser(QWidget *parent /TransferThis/ = 0); virtual ~QTextBrowser(); QUrl source() const; QStringList searchPaths() const; void setSearchPaths(const QStringList &paths); virtual QVariant loadResource(int type, const QUrl &name); public slots: virtual void setSource(const QUrl &name); virtual void backward(); virtual void forward(); virtual void home(); virtual void reload(); signals: void backwardAvailable(bool); void forwardAvailable(bool); void sourceChanged(const QUrl &); void highlighted(const QUrl &); void highlighted(const QString &); void anchorClicked(const QUrl &); protected: virtual bool event(QEvent *e); virtual void keyPressEvent(QKeyEvent *ev); virtual void mouseMoveEvent(QMouseEvent *ev); virtual void mousePressEvent(QMouseEvent *ev); virtual void mouseReleaseEvent(QMouseEvent *ev); virtual void focusOutEvent(QFocusEvent *ev); virtual bool focusNextPrevChild(bool next); virtual void paintEvent(QPaintEvent *e); public: %If (Qt_4_2_0 -) bool isBackwardAvailable() const; %End %If (Qt_4_2_0 -) bool isForwardAvailable() const; %End %If (Qt_4_2_0 -) void clearHistory(); %End %If (Qt_4_2_0 -) bool openExternalLinks() const; %End %If (Qt_4_2_0 -) void setOpenExternalLinks(bool open); %End %If (Qt_4_3_0 -) bool openLinks() const; %End %If (Qt_4_3_0 -) void setOpenLinks(bool open); %End %If (Qt_4_4_0 -) QString historyTitle(int) const; %End %If (Qt_4_4_0 -) QUrl historyUrl(int) const; %End %If (Qt_4_4_0 -) int backwardHistoryCount() const; %End %If (Qt_4_4_0 -) int forwardHistoryCount() const; %End signals: %If (Qt_4_4_0 -) void historyChanged(); %End private: QTextBrowser(const QTextBrowser &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtextcursor.sip0000644000076500000240000001325412536324426020724 0ustar philstaff00000000000000// qtextcursor.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTextCursor { %TypeHeaderCode #include %End public: QTextCursor(); explicit QTextCursor(QTextDocument *document); explicit QTextCursor(QTextFrame *frame); explicit QTextCursor(const QTextBlock &block); QTextCursor(const QTextCursor &cursor); ~QTextCursor(); bool isNull() const; enum MoveMode { MoveAnchor, KeepAnchor, }; void setPosition(int pos, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor); int position() const; int anchor() const; void insertText(const QString &text); void insertText(const QString &text, const QTextCharFormat &format); enum MoveOperation { NoMove, Start, Up, StartOfLine, StartOfBlock, StartOfWord, PreviousBlock, PreviousCharacter, PreviousWord, Left, WordLeft, End, Down, EndOfLine, EndOfWord, EndOfBlock, NextBlock, NextCharacter, NextWord, Right, WordRight, %If (Qt_4_5_0 -) NextCell, %End %If (Qt_4_5_0 -) PreviousCell, %End %If (Qt_4_5_0 -) NextRow, %End %If (Qt_4_5_0 -) PreviousRow, %End }; bool movePosition(QTextCursor::MoveOperation op, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor, int n = 1); void deleteChar(); void deletePreviousChar(); enum SelectionType { WordUnderCursor, LineUnderCursor, BlockUnderCursor, %If (Qt_4_2_0 -) Document, %End }; void select(QTextCursor::SelectionType selection); bool hasSelection() const; bool hasComplexSelection() const; void removeSelectedText(); void clearSelection(); int selectionStart() const; int selectionEnd() const; QString selectedText() const; QTextDocumentFragment selection() const; void selectedTableCells(int *firstRow, int *numRows, int *firstColumn, int *numColumns) const; QTextBlock block() const; QTextCharFormat charFormat() const; void setCharFormat(const QTextCharFormat &format); void mergeCharFormat(const QTextCharFormat &modifier); QTextBlockFormat blockFormat() const; void setBlockFormat(const QTextBlockFormat &format); void mergeBlockFormat(const QTextBlockFormat &modifier); QTextCharFormat blockCharFormat() const; void setBlockCharFormat(const QTextCharFormat &format); void mergeBlockCharFormat(const QTextCharFormat &modifier); bool atBlockStart() const; bool atBlockEnd() const; bool atStart() const; bool atEnd() const; void insertBlock(); void insertBlock(const QTextBlockFormat &format); void insertBlock(const QTextBlockFormat &format, const QTextCharFormat &charFormat); QTextList *insertList(const QTextListFormat &format); QTextList *insertList(QTextListFormat::Style style); QTextList *createList(const QTextListFormat &format); QTextList *createList(QTextListFormat::Style style); QTextList *currentList() const; QTextTable *insertTable(int rows, int cols, const QTextTableFormat &format); QTextTable *insertTable(int rows, int cols); QTextTable *currentTable() const; QTextFrame *insertFrame(const QTextFrameFormat &format); QTextFrame *currentFrame() const; void insertFragment(const QTextDocumentFragment &fragment); %If (Qt_4_2_0 -) void insertHtml(const QString &html); %End void insertImage(const QTextImageFormat &format); %If (Qt_4_2_0 -) void insertImage(const QTextImageFormat &format, QTextFrameFormat::Position alignment); %End void insertImage(const QString &name); %If (Qt_4_5_0 -) void insertImage(const QImage &image, const QString &name /DocValue="Py_v3:''"/ = QString()); %End void beginEditBlock(); void joinPreviousEditBlock(); void endEditBlock(); %If (Qt_4_2_0 -) int blockNumber() const; %End %If (Qt_4_2_0 -) int columnNumber() const; %End bool operator!=(const QTextCursor &rhs) const; bool operator<(const QTextCursor &rhs) const; bool operator<=(const QTextCursor &rhs) const; bool operator==(const QTextCursor &rhs) const; bool operator>=(const QTextCursor &rhs) const; bool operator>(const QTextCursor &rhs) const; bool isCopyOf(const QTextCursor &other) const; %If (Qt_4_4_0 -) bool visualNavigation() const; %End %If (Qt_4_4_0 -) void setVisualNavigation(bool b); %End %If (Qt_4_5_0 -) QTextDocument *document() const; %End %If (Qt_4_7_0 -) int positionInBlock() const; %End %If (Qt_4_7_0 -) void setVerticalMovementX(int x); %End %If (Qt_4_7_0 -) int verticalMovementX() const; %End %If (Qt_4_7_0 -) void setKeepPositionOnInsert(bool b); %End %If (Qt_4_7_0 -) bool keepPositionOnInsert() const; %End %If (Qt_5_0_0 -) void swap(QTextCursor &other); %End }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtextdocument.sip0000644000076500000240000001677512536324426021240 0ustar philstaff00000000000000// qtextdocument.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End namespace Qt { %TypeHeaderCode #include %End %If (- Qt_5_0_0) enum HitTestAccuracy { ExactHit, FuzzyHit, }; %End %If (- Qt_5_0_0) enum WhiteSpaceMode { WhiteSpaceNormal, WhiteSpacePre, WhiteSpaceNoWrap, WhiteSpaceModeUndefined, }; %End bool mightBeRichText(const QString &); %If (- Qt_5_0_0) QString escape(const QString &plain); %End QString convertFromPlainText(const QString &plain, Qt::WhiteSpaceMode mode = Qt::WhiteSpacePre); }; class QTextDocument : QObject { %TypeHeaderCode #include %End public: explicit QTextDocument(QObject *parent /TransferThis/ = 0); QTextDocument(const QString &text, QObject *parent /TransferThis/ = 0); virtual ~QTextDocument(); QTextDocument *clone(QObject *parent /TransferThis/ = 0) const /Factory/; bool isEmpty() const; virtual void clear(); void setUndoRedoEnabled(bool enable); bool isUndoRedoEnabled() const; bool isUndoAvailable() const; bool isRedoAvailable() const; void setDocumentLayout(QAbstractTextDocumentLayout *layout /Transfer/); QAbstractTextDocumentLayout *documentLayout() const; enum MetaInformation { DocumentTitle, %If (Qt_4_4_0 -) DocumentUrl, %End }; void setMetaInformation(QTextDocument::MetaInformation info, const QString &); QString metaInformation(QTextDocument::MetaInformation info) const; QString toHtml(const QByteArray &encoding = QByteArray()) const; void setHtml(const QString &html); QString toPlainText() const; void setPlainText(const QString &text); enum FindFlag { FindBackward, FindCaseSensitively, FindWholeWords, }; typedef QFlags FindFlags; QTextCursor find(const QString &subString, int position = 0, QFlags options = 0) const; %If (Qt_4_2_0 -) QTextCursor find(const QRegExp &expr, int position = 0, QFlags options = 0) const; %End QTextCursor find(const QString &subString, const QTextCursor &cursor, QFlags options = 0) const; %If (Qt_4_2_0 -) QTextCursor find(const QRegExp &expr, const QTextCursor &cursor, QFlags options = 0) const; %End QTextFrame *rootFrame() const; QTextObject *object(int objectIndex) const; QTextObject *objectForFormat(const QTextFormat &) const; QTextBlock findBlock(int pos) const; QTextBlock begin() const; QTextBlock end() const; void setPageSize(const QSizeF &size); QSizeF pageSize() const; void setDefaultFont(const QFont &font); QFont defaultFont() const; int pageCount() const; bool isModified() const; %If (Qt_5_0_0 -) %If (PyQt_Printer) void print(QPagedPaintDevice *printer) const /PyName=print_/; %End %End %If (- Qt_5_0_0) %If (PyQt_Printer) void print(QPrinter *printer) const /PyName=print_/; %End %End %If (Qt_5_0_0 -) %If (Py_v3) %If (PyQt_Printer) void print(QPagedPaintDevice *printer) const; %End %End %End %If (- Qt_5_0_0) %If (Py_v3) %If (PyQt_Printer) void print(QPrinter *printer) const; %End %End %End enum ResourceType { HtmlResource, ImageResource, %If (Qt_4_2_0 -) StyleSheetResource, %End UserResource, }; QVariant resource(int type, const QUrl &name) const; void addResource(int type, const QUrl &name, const QVariant &resource); QVector allFormats() const; void markContentsDirty(int from, int length); void setUseDesignMetrics(bool b); bool useDesignMetrics() const; signals: %If (Qt_4_3_0 -) void blockCountChanged(int newBlockCount); %End void contentsChange(int from, int charsRemoves, int charsAdded); void contentsChanged(); void cursorPositionChanged(const QTextCursor &cursor); void modificationChanged(bool m); void redoAvailable(bool); void undoAvailable(bool); public slots: void undo(); void redo(); void setModified(bool on = true); protected: virtual QTextObject *createObject(const QTextFormat &f) /Factory/; virtual QVariant loadResource(int type, const QUrl &name); public: %If (Qt_4_2_0 -) void drawContents(QPainter *p, const QRectF &rect = QRectF()); %End %If (Qt_4_2_0 -) void setTextWidth(qreal width); %End %If (Qt_4_2_0 -) qreal textWidth() const; %End %If (Qt_4_2_0 -) qreal idealWidth() const; %End %If (Qt_4_2_0 -) void adjustSize(); %End %If (Qt_4_2_0 -) QSizeF size() const; %End %If (Qt_4_2_0 -) int blockCount() const; %End %If (Qt_4_2_0 -) void setDefaultStyleSheet(const QString &sheet); %End %If (Qt_4_2_0 -) QString defaultStyleSheet() const; %End %If (Qt_4_2_0 -) void undo(QTextCursor *cursor); %End %If (Qt_4_2_0 -) void redo(QTextCursor *cursor); %End %If (Qt_4_2_0 -) int maximumBlockCount() const; %End %If (Qt_4_2_0 -) void setMaximumBlockCount(int maximum); %End %If (Qt_4_3_0 -) QTextOption defaultTextOption() const; %End %If (Qt_4_3_0 -) void setDefaultTextOption(const QTextOption &option); %End %If (Qt_4_4_0 -) int revision() const; %End %If (Qt_4_4_0 -) QTextBlock findBlockByNumber(int blockNumber) const; %End %If (Qt_4_5_0 -) QTextBlock findBlockByLineNumber(int blockNumber) const; %End %If (Qt_4_4_0 -) QTextBlock firstBlock() const; %End %If (Qt_4_4_0 -) QTextBlock lastBlock() const; %End %If (Qt_4_4_0 -) qreal indentWidth() const; %End %If (Qt_4_4_0 -) void setIndentWidth(qreal width); %End signals: %If (Qt_4_4_0 -) void undoCommandAdded(); %End %If (Qt_4_4_0 -) void documentLayoutChanged(); %End public: %If (Qt_4_5_0 -) QChar characterAt(int pos) const; %End %If (Qt_4_5_0 -) qreal documentMargin() const; %End %If (Qt_4_5_0 -) void setDocumentMargin(qreal margin); %End %If (Qt_4_5_0 -) int lineCount() const; %End %If (Qt_4_5_0 -) int characterCount() const; %End %If (Qt_4_6_0 -) int availableUndoSteps() const; %End %If (Qt_4_6_0 -) int availableRedoSteps() const; %End %If (Qt_4_7_0 -) enum Stacks { UndoStack, RedoStack, UndoAndRedoStacks, }; %End %If (Qt_4_7_0 -) void clearUndoRedoStacks(QTextDocument::Stacks stacks = QTextDocument::UndoAndRedoStacks); %End %If (Qt_4_8_0 -) Qt::CursorMoveStyle defaultCursorMoveStyle() const; %End %If (Qt_4_8_0 -) void setDefaultCursorMoveStyle(Qt::CursorMoveStyle style); %End private: QTextDocument(const QTextDocument &); }; QFlags operator|(QTextDocument::FindFlag f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qtextdocumentfragment.sip0000644000076500000240000000347612536324426022756 0ustar philstaff00000000000000// qtextdocumentfragment.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTextDocumentFragment { %TypeHeaderCode #include %End public: QTextDocumentFragment(); explicit QTextDocumentFragment(const QTextDocument *document); explicit QTextDocumentFragment(const QTextCursor &range); QTextDocumentFragment(const QTextDocumentFragment &rhs); ~QTextDocumentFragment(); bool isEmpty() const; QString toPlainText() const; %If (Qt_5_0_0 -) QString toHtml(const QByteArray &encoding = QByteArray()) const; %End %If (- Qt_5_0_0) QString toHtml() const; %End %If (Qt_4_2_0 - Qt_5_0_0) QString toHtml(const QByteArray &encoding) const; %End static QTextDocumentFragment fromPlainText(const QString &plainText); static QTextDocumentFragment fromHtml(const QString &html); %If (Qt_4_2_0 -) static QTextDocumentFragment fromHtml(const QString &html, const QTextDocument *resourceProvider); %End }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtextdocumentwriter.sip0000644000076500000240000000343712536324426022464 0ustar philstaff00000000000000// qtextdocumentwriter.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_5_0 -) class QTextDocumentWriter { %TypeHeaderCode #include %End public: QTextDocumentWriter(); QTextDocumentWriter(QIODevice *device, const QByteArray &format); QTextDocumentWriter(const QString &fileName, const QByteArray &format = QByteArray()); ~QTextDocumentWriter(); void setFormat(const QByteArray &format); QByteArray format() const; void setDevice(QIODevice *device); QIODevice *device() const; void setFileName(const QString &fileName); QString fileName() const; bool write(const QTextDocument *document); bool write(const QTextDocumentFragment &fragment); void setCodec(QTextCodec *codec /KeepReference/); QTextCodec *codec() const; static QList supportedDocumentFormats(); private: QTextDocumentWriter(const QTextDocumentWriter &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qtextedit.sip0000644000076500000240000002012712536324426020331 0ustar philstaff00000000000000// qtextedit.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QTextEdit : QAbstractScrollArea { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) struct ExtraSelection { %TypeHeaderCode #include %End QTextCursor cursor; QTextCharFormat format; }; %End enum LineWrapMode { NoWrap, WidgetWidth, FixedPixelWidth, FixedColumnWidth, }; enum AutoFormattingFlag { AutoNone, AutoBulletList, AutoAll, }; typedef QFlags AutoFormatting; %If (- Qt_4_2_0) enum CursorAction { MoveBackward, MoveForward, MoveWordBackward, MoveWordForward, MoveUp, MoveDown, MoveLineStart, MoveLineEnd, MoveHome, MoveEnd, MovePageUp, MovePageDown, }; %End explicit QTextEdit(QWidget *parent /TransferThis/ = 0); QTextEdit(const QString &text, QWidget *parent /TransferThis/ = 0); virtual ~QTextEdit(); void setDocument(QTextDocument *document /KeepReference/); QTextDocument *document() const; void setTextCursor(const QTextCursor &cursor); QTextCursor textCursor() const; bool isReadOnly() const; void setReadOnly(bool ro); qreal fontPointSize() const; QString fontFamily() const; int fontWeight() const; bool fontUnderline() const; bool fontItalic() const; QColor textColor() const; QFont currentFont() const; Qt::Alignment alignment() const; void mergeCurrentCharFormat(const QTextCharFormat &modifier); void setCurrentCharFormat(const QTextCharFormat &format); QTextCharFormat currentCharFormat() const; QFlags autoFormatting() const; void setAutoFormatting(QFlags features); bool tabChangesFocus() const; void setTabChangesFocus(bool b); void setDocumentTitle(const QString &title); QString documentTitle() const; bool isUndoRedoEnabled() const; void setUndoRedoEnabled(bool enable); QTextEdit::LineWrapMode lineWrapMode() const; void setLineWrapMode(QTextEdit::LineWrapMode mode); int lineWrapColumnOrWidth() const; void setLineWrapColumnOrWidth(int w); QTextOption::WrapMode wordWrapMode() const; void setWordWrapMode(QTextOption::WrapMode policy); bool find(const QString &exp, QFlags options = 0); QString toPlainText() const; QString toHtml() const; void append(const QString &text); void ensureCursorVisible(); virtual QVariant loadResource(int type, const QUrl &name); QMenu *createStandardContextMenu() /Factory/; %If (Qt_4_4_0 -) QMenu *createStandardContextMenu(const QPoint &position) /Factory/; %End QTextCursor cursorForPosition(const QPoint &pos) const; QRect cursorRect(const QTextCursor &cursor) const; QRect cursorRect() const; QString anchorAt(const QPoint &pos) const; bool overwriteMode() const; void setOverwriteMode(bool overwrite); int tabStopWidth() const; void setTabStopWidth(int width); bool acceptRichText() const; void setAcceptRichText(bool accept); %If (Qt_4_2_0 -) void setTextInteractionFlags(Qt::TextInteractionFlags flags); %End %If (Qt_4_2_0 -) Qt::TextInteractionFlags textInteractionFlags() const; %End %If (Qt_4_2_0 -) void setCursorWidth(int width); %End %If (Qt_4_2_0 -) int cursorWidth() const; %End %If (Qt_4_2_0 -) void setExtraSelections(const QList &selections); %End %If (Qt_4_2_0 -) QList extraSelections() const; %End %If (Qt_4_2_0 -) bool canPaste() const; %End %If (Qt_4_2_0 -) void moveCursor(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor); %End %If (Qt_5_0_0 -) %If (PyQt_Printer) void print(QPagedPaintDevice *printer) const /PyName=print_/; %End %End %If (Qt_5_0_0 -) %If (Py_v3) %If (PyQt_Printer) void print(QPagedPaintDevice *printer) const; %End %End %End %If (Qt_4_3_0 - Qt_5_0_0) %If (PyQt_Printer) void print(QPrinter *printer) const /PyName=print_/; %End %End %If (Qt_4_3_0 - Qt_5_0_0) %If (Py_v3) %If (PyQt_Printer) void print(QPrinter *printer) const; %End %End %End public slots: void setFontPointSize(qreal s); void setFontFamily(const QString &fontFamily); void setFontWeight(int w); void setFontUnderline(bool b); void setFontItalic(bool b); %If (Qt_4_2_0 -) void setText(const QString &text); %End void setTextColor(const QColor &c); void setCurrentFont(const QFont &f); void setAlignment(Qt::Alignment a); void setPlainText(const QString &text); void setHtml(const QString &text); void cut(); void copy(); void paste(); void clear(); void selectAll(); void insertPlainText(const QString &text); void insertHtml(const QString &text); void scrollToAnchor(const QString &name); %If (Qt_4_2_0 -) void redo(); %End %If (Qt_4_2_0 -) void undo(); %End void zoomIn(int range = 1); void zoomOut(int range = 1); signals: void textChanged(); void undoAvailable(bool b); void redoAvailable(bool b); void currentCharFormatChanged(const QTextCharFormat &format); void copyAvailable(bool b); void selectionChanged(); void cursorPositionChanged(); protected: virtual bool event(QEvent *e); virtual void timerEvent(QTimerEvent *e); virtual void keyPressEvent(QKeyEvent *e); %If (Qt_4_2_0 -) virtual void keyReleaseEvent(QKeyEvent *e); %End virtual void resizeEvent(QResizeEvent *); virtual void paintEvent(QPaintEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseDoubleClickEvent(QMouseEvent *e); virtual bool focusNextPrevChild(bool next); virtual void contextMenuEvent(QContextMenuEvent *e); virtual void dragEnterEvent(QDragEnterEvent *e); virtual void dragLeaveEvent(QDragLeaveEvent *e); virtual void dragMoveEvent(QDragMoveEvent *e); virtual void dropEvent(QDropEvent *e); virtual void focusInEvent(QFocusEvent *e); virtual void focusOutEvent(QFocusEvent *e); virtual void showEvent(QShowEvent *); virtual void changeEvent(QEvent *e); virtual void wheelEvent(QWheelEvent *e); virtual QMimeData *createMimeDataFromSelection() const /Factory/; virtual bool canInsertFromMimeData(const QMimeData *source) const; virtual void insertFromMimeData(const QMimeData *source); virtual void inputMethodEvent(QInputMethodEvent *); public: %If (Qt_5_0_0 -) virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const; %End protected: %If (- Qt_5_0_0) virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const; %End virtual void scrollContentsBy(int dx, int dy); public: %If (Qt_4_4_0 -) QColor textBackgroundColor() const; %End public slots: %If (Qt_4_4_0 -) void setTextBackgroundColor(const QColor &c); %End private: QTextEdit(const QTextEdit &); }; %If (Qt_4_2_0 -) QFlags operator|(QTextEdit::AutoFormattingFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qtextformat.sip0000644000076500000240000004331012536324426020673 0ustar philstaff00000000000000// qtextformat.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QTextLength { %TypeHeaderCode #include %End public: enum Type { VariableLength, FixedLength, PercentageLength, }; QTextLength(); QTextLength::Type type() const; QTextLength(QTextLength::Type atype, qreal avalue); QTextLength(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QTextLength(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QTextLength(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End qreal value(qreal maximumLength) const; qreal rawValue() const; bool operator==(const QTextLength &other) const; bool operator!=(const QTextLength &other) const; }; QDataStream &operator<<(QDataStream &, const QTextLength & /Constrained/); QDataStream &operator>>(QDataStream &, QTextLength & /Constrained/); class QTextFormat { %TypeHeaderCode #include %End public: enum FormatType { InvalidFormat, BlockFormat, CharFormat, ListFormat, TableFormat, FrameFormat, UserFormat, }; enum ObjectTypes { NoObject, ImageObject, TableObject, %If (Qt_4_4_0 -) TableCellObject, %End UserObject, }; %If (Qt_4_2_0 -) enum PageBreakFlag { PageBreak_Auto, PageBreak_AlwaysBefore, PageBreak_AlwaysAfter, }; %End %If (Qt_4_2_0 -) typedef QFlags PageBreakFlags; %End enum Property { ObjectIndex, CssFloat, LayoutDirection, OutlinePen, BackgroundBrush, ForegroundBrush, BlockAlignment, BlockTopMargin, BlockBottomMargin, BlockLeftMargin, BlockRightMargin, TextIndent, BlockIndent, BlockNonBreakableLines, BlockTrailingHorizontalRulerWidth, FontFamily, FontPointSize, FontSizeAdjustment, FontSizeIncrement, FontWeight, FontItalic, FontUnderline, FontOverline, FontStrikeOut, FontFixedPitch, FontPixelSize, TextUnderlineColor, TextVerticalAlignment, TextOutline, IsAnchor, AnchorHref, AnchorName, ObjectType, ListStyle, ListIndent, FrameBorder, FrameMargin, FramePadding, FrameWidth, FrameHeight, TableColumns, TableColumnWidthConstraints, TableCellSpacing, TableCellPadding, TableCellRowSpan, TableCellColumnSpan, ImageName, ImageWidth, ImageHeight, %If (Qt_4_2_0 -) TextUnderlineStyle, %End %If (Qt_4_2_0 -) TableHeaderRowCount, %End %If (Qt_4_2_0 -) FullWidthSelection, %End %If (Qt_4_2_0 -) PageBreakPolicy, %End %If (Qt_4_3_0 -) TextToolTip, %End %If (Qt_4_3_0 -) FrameTopMargin, %End %If (Qt_4_3_0 -) FrameBottomMargin, %End %If (Qt_4_3_0 -) FrameLeftMargin, %End %If (Qt_4_3_0 -) FrameRightMargin, %End %If (Qt_4_3_0 -) FrameBorderBrush, %End %If (Qt_4_3_0 -) FrameBorderStyle, %End %If (Qt_4_4_0 -) BackgroundImageUrl, %End %If (Qt_4_4_0 -) TabPositions, %End %If (Qt_4_4_0 -) FirstFontProperty, %End %If (Qt_4_4_0 -) FontCapitalization, %End %If (Qt_4_4_0 -) FontLetterSpacing, %End %If (Qt_4_4_0 -) FontWordSpacing, %End %If (Qt_4_4_0 -) LastFontProperty, %End %If (Qt_4_4_0 -) TableCellTopPadding, %End %If (Qt_4_4_0 -) TableCellBottomPadding, %End %If (Qt_4_4_0 -) TableCellLeftPadding, %End %If (Qt_4_4_0 -) TableCellRightPadding, %End %If (Qt_4_5_0 -) FontStyleHint, %End %If (Qt_4_5_0 -) FontStyleStrategy, %End %If (Qt_4_5_0 -) FontKerning, %End %If (Qt_4_8_0 -) LineHeight, %End %If (Qt_4_8_0 -) LineHeightType, %End %If (Qt_4_8_0 -) FontHintingPreference, %End %If (Qt_4_8_0 -) ListNumberPrefix, %End %If (Qt_4_8_0 -) ListNumberSuffix, %End %If (Qt_5_0_0 -) FontStretch, %End %If (Qt_5_0_0 -) FontLetterSpacingType, %End UserProperty, }; QTextFormat(); explicit QTextFormat(int type); QTextFormat(const QTextFormat &rhs); QTextFormat(const QVariant &variant /GetWrapper/) /NoDerived/; %MethodCode #if QT_VERSION >= 0x050000 if (a0->canConvert()) sipCpp = new QTextFormat(a0->value()); #else if (qVariantCanConvert(*a0)) sipCpp = new QTextFormat(qVariantValue(*a0)); #endif else sipError = sipBadCallableArg(0, a0Wrapper); %End ~QTextFormat(); void merge(const QTextFormat &other); bool isValid() const; int type() const; int objectIndex() const; void setObjectIndex(int object); QVariant property(int propertyId) const; void setProperty(int propertyId, const QVariant &value); void clearProperty(int propertyId); bool hasProperty(int propertyId) const; bool boolProperty(int propertyId) const; int intProperty(int propertyId) const; qreal doubleProperty(int propertyId) const; QString stringProperty(int propertyId) const; QColor colorProperty(int propertyId) const; QPen penProperty(int propertyId) const; QBrush brushProperty(int propertyId) const; QTextLength lengthProperty(int propertyId) const; QVector lengthVectorProperty(int propertyId) const; void setProperty(int propertyId, const QVector &lengths); QMap properties() const; int objectType() const; bool isCharFormat() const; bool isBlockFormat() const; bool isListFormat() const; bool isFrameFormat() const; bool isImageFormat() const; bool isTableFormat() const; QTextBlockFormat toBlockFormat() const; QTextCharFormat toCharFormat() const; QTextListFormat toListFormat() const; QTextTableFormat toTableFormat() const; QTextFrameFormat toFrameFormat() const; QTextImageFormat toImageFormat() const; bool operator==(const QTextFormat &rhs) const; bool operator!=(const QTextFormat &rhs) const; void setLayoutDirection(Qt::LayoutDirection direction); Qt::LayoutDirection layoutDirection() const; void setBackground(const QBrush &brush); QBrush background() const; void clearBackground(); void setForeground(const QBrush &brush); QBrush foreground() const; void clearForeground(); void setObjectType(int atype); %If (Qt_4_3_0 -) int propertyCount() const; %End %If (Qt_4_4_0 -) bool isTableCellFormat() const; %End %If (Qt_4_4_0 -) QTextTableCellFormat toTableCellFormat() const; %End %If (Qt_5_0_0 -) void swap(QTextFormat &other); %End }; QDataStream &operator<<(QDataStream &, const QTextFormat & /Constrained/); QDataStream &operator>>(QDataStream &, QTextFormat & /Constrained/); class QTextCharFormat : QTextFormat { %TypeHeaderCode #include %End public: enum VerticalAlignment { AlignNormal, AlignSuperScript, AlignSubScript, %If (Qt_4_3_0 -) AlignMiddle, %End %If (Qt_4_3_0 -) AlignTop, %End %If (Qt_4_3_0 -) AlignBottom, %End %If (Qt_4_8_0 -) AlignBaseline, %End }; QTextCharFormat(); bool isValid() const; void setFont(const QFont &font); QFont font() const; void setFontFamily(const QString &family); QString fontFamily() const; void setFontPointSize(qreal size); qreal fontPointSize() const; void setFontWeight(int weight); int fontWeight() const; void setFontItalic(bool italic); bool fontItalic() const; void setFontUnderline(bool underline); bool fontUnderline() const; void setFontOverline(bool overline); bool fontOverline() const; void setFontStrikeOut(bool strikeOut); bool fontStrikeOut() const; void setUnderlineColor(const QColor &color); QColor underlineColor() const; void setFontFixedPitch(bool fixedPitch); bool fontFixedPitch() const; void setVerticalAlignment(QTextCharFormat::VerticalAlignment alignment); QTextCharFormat::VerticalAlignment verticalAlignment() const; void setAnchor(bool anchor); bool isAnchor() const; void setAnchorHref(const QString &value); QString anchorHref() const; void setAnchorName(const QString &name); QString anchorName() const; int tableCellRowSpan() const; int tableCellColumnSpan() const; void setTableCellRowSpan(int atableCellRowSpan); void setTableCellColumnSpan(int atableCellColumnSpan); void setTextOutline(const QPen &pen); QPen textOutline() const; %If (Qt_4_2_0 -) enum UnderlineStyle { NoUnderline, SingleUnderline, DashUnderline, DotLine, DashDotLine, DashDotDotLine, WaveUnderline, SpellCheckUnderline, }; %End %If (Qt_4_2_0 -) void setUnderlineStyle(QTextCharFormat::UnderlineStyle style); %End %If (Qt_4_2_0 -) QTextCharFormat::UnderlineStyle underlineStyle() const; %End %If (Qt_4_3_0 -) void setToolTip(const QString &tip); %End %If (Qt_4_3_0 -) QString toolTip() const; %End %If (Qt_4_3_0 -) void setAnchorNames(const QStringList &names); %End %If (Qt_4_3_0 -) QStringList anchorNames() const; %End %If (Qt_4_4_0 -) void setFontCapitalization(QFont::Capitalization capitalization); %End %If (Qt_4_4_0 -) QFont::Capitalization fontCapitalization() const; %End %If (Qt_4_4_0 -) void setFontLetterSpacing(qreal spacing); %End %If (Qt_4_4_0 -) qreal fontLetterSpacing() const; %End %If (Qt_4_4_0 -) void setFontWordSpacing(qreal spacing); %End %If (Qt_4_4_0 -) qreal fontWordSpacing() const; %End %If (Qt_4_5_0 -) void setFontStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = QFont::PreferDefault); %End %If (Qt_4_5_0 -) void setFontStyleStrategy(QFont::StyleStrategy strategy); %End %If (Qt_4_5_0 -) QFont::StyleHint fontStyleHint() const; %End %If (Qt_4_5_0 -) QFont::StyleStrategy fontStyleStrategy() const; %End %If (Qt_4_5_0 -) void setFontKerning(bool enable); %End %If (Qt_4_5_0 -) bool fontKerning() const; %End %If (Qt_4_8_0 -) void setFontHintingPreference(QFont::HintingPreference hintingPreference); %End %If (Qt_4_8_0 -) QFont::HintingPreference fontHintingPreference() const; %End %If (Qt_5_0_0 -) int fontStretch() const; %End %If (Qt_5_0_0 -) void setFontStretch(int factor); %End %If (Qt_5_0_0 -) void setFontLetterSpacingType(QFont::SpacingType letterSpacingType); %End %If (Qt_5_0_0 -) QFont::SpacingType fontLetterSpacingType() const; %End }; class QTextBlockFormat : QTextFormat { %TypeHeaderCode #include %End public: QTextBlockFormat(); bool isValid() const; Qt::Alignment alignment() const; void setTopMargin(qreal margin); qreal topMargin() const; void setBottomMargin(qreal margin); qreal bottomMargin() const; void setLeftMargin(qreal margin); qreal leftMargin() const; void setRightMargin(qreal margin); qreal rightMargin() const; void setTextIndent(qreal margin); qreal textIndent() const; int indent() const; void setNonBreakableLines(bool b); bool nonBreakableLines() const; void setAlignment(Qt::Alignment aalignment); void setIndent(int aindent); %If (Qt_4_2_0 -) void setPageBreakPolicy(QFlags flags); %End %If (Qt_4_2_0 -) QFlags pageBreakPolicy() const; %End %If (Qt_4_4_0 -) void setTabPositions(const QList &tabs); %End %If (Qt_4_4_0 -) QList tabPositions() const; %End %If (Qt_4_8_0 -) enum LineHeightTypes { SingleHeight, ProportionalHeight, FixedHeight, MinimumHeight, LineDistanceHeight, }; %End %If (Qt_4_8_0 -) void setLineHeight(qreal height, int heightType); %End %If (Qt_4_8_0 -) qreal lineHeight(qreal scriptLineHeight, qreal scaling) const [qreal (qreal scriptLineHeight, qreal scaling = 1.0e+0)]; %End %If (Qt_4_8_0 -) qreal lineHeight() const; %End %If (Qt_4_8_0 -) int lineHeightType() const; %End }; class QTextListFormat : QTextFormat { %TypeHeaderCode #include %End public: QTextListFormat(); bool isValid() const; enum Style { ListDisc, ListCircle, ListSquare, ListDecimal, ListLowerAlpha, ListUpperAlpha, %If (Qt_4_6_0 -) ListLowerRoman, %End %If (Qt_4_6_0 -) ListUpperRoman, %End }; QTextListFormat::Style style() const; int indent() const; void setStyle(QTextListFormat::Style astyle); void setIndent(int aindent); %If (Qt_4_8_0 -) QString numberPrefix() const; %End %If (Qt_4_8_0 -) QString numberSuffix() const; %End %If (Qt_4_8_0 -) void setNumberPrefix(const QString &np); %End %If (Qt_4_8_0 -) void setNumberSuffix(const QString &ns); %End }; class QTextImageFormat : QTextCharFormat { %TypeHeaderCode #include %End public: QTextImageFormat(); bool isValid() const; QString name() const; qreal width() const; qreal height() const; void setName(const QString &aname); void setWidth(qreal awidth); void setHeight(qreal aheight); }; class QTextFrameFormat : QTextFormat { %TypeHeaderCode #include %End public: QTextFrameFormat(); bool isValid() const; enum Position { InFlow, FloatLeft, FloatRight, }; void setPosition(QTextFrameFormat::Position f); QTextFrameFormat::Position position() const; qreal border() const; qreal margin() const; qreal padding() const; void setWidth(const QTextLength &length); QTextLength width() const; QTextLength height() const; void setBorder(qreal aborder); void setMargin(qreal amargin); void setPadding(qreal apadding); void setWidth(qreal awidth); void setHeight(qreal aheight); void setHeight(const QTextLength &aheight); %If (Qt_4_2_0 -) void setPageBreakPolicy(QFlags flags); %End %If (Qt_4_2_0 -) QFlags pageBreakPolicy() const; %End %If (Qt_4_3_0 -) enum BorderStyle { BorderStyle_None, BorderStyle_Dotted, BorderStyle_Dashed, BorderStyle_Solid, BorderStyle_Double, BorderStyle_DotDash, BorderStyle_DotDotDash, BorderStyle_Groove, BorderStyle_Ridge, BorderStyle_Inset, BorderStyle_Outset, }; %End %If (Qt_4_3_0 -) void setBorderBrush(const QBrush &brush); %End %If (Qt_4_3_0 -) QBrush borderBrush() const; %End %If (Qt_4_3_0 -) void setBorderStyle(QTextFrameFormat::BorderStyle style); %End %If (Qt_4_3_0 -) QTextFrameFormat::BorderStyle borderStyle() const; %End %If (Qt_4_3_0 -) qreal topMargin() const; %End %If (Qt_4_3_0 -) qreal bottomMargin() const; %End %If (Qt_4_3_0 -) qreal leftMargin() const; %End %If (Qt_4_3_0 -) qreal rightMargin() const; %End %If (Qt_4_3_0 -) void setTopMargin(qreal amargin); %End %If (Qt_4_3_0 -) void setBottomMargin(qreal amargin); %End %If (Qt_4_3_0 -) void setLeftMargin(qreal amargin); %End %If (Qt_4_3_0 -) void setRightMargin(qreal amargin); %End }; class QTextTableFormat : QTextFrameFormat { %TypeHeaderCode #include %End public: QTextTableFormat(); bool isValid() const; int columns() const; void setColumnWidthConstraints(const QVector &constraints); QVector columnWidthConstraints() const; void clearColumnWidthConstraints(); qreal cellSpacing() const; void setCellSpacing(qreal spacing); qreal cellPadding() const; Qt::Alignment alignment() const; void setColumns(int acolumns); void setCellPadding(qreal apadding); void setAlignment(Qt::Alignment aalignment); %If (Qt_4_2_0 -) void setHeaderRowCount(int count); %End %If (Qt_4_2_0 -) int headerRowCount() const; %End }; %If (Qt_4_2_0 -) QFlags operator|(QTextFormat::PageBreakFlag f1, QFlags f2); %End %If (Qt_4_4_0 -) class QTextTableCellFormat : QTextCharFormat { %TypeHeaderCode #include %End public: QTextTableCellFormat(); bool isValid() const; void setTopPadding(qreal padding); qreal topPadding() const; void setBottomPadding(qreal padding); qreal bottomPadding() const; void setLeftPadding(qreal padding); qreal leftPadding() const; void setRightPadding(qreal padding); qreal rightPadding() const; void setPadding(qreal padding); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qtextlayout.sip0000644000076500000240000001310012536324426020712 0ustar philstaff00000000000000// qtextlayout.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTextInlineObject { %TypeHeaderCode #include %End public: bool isValid() const; QRectF rect() const; qreal width() const; qreal ascent() const; qreal descent() const; qreal height() const; Qt::LayoutDirection textDirection() const; void setWidth(qreal w); void setAscent(qreal a); void setDescent(qreal d); int textPosition() const; int formatIndex() const; QTextFormat format() const; }; class QTextLayout { %TypeHeaderCode #include %End public: QTextLayout(); QTextLayout(const QString &text); QTextLayout(const QString &text, const QFont &font, QPaintDevice *paintDevice = 0); QTextLayout(const QTextBlock &b); ~QTextLayout(); void setFont(const QFont &f); QFont font() const; void setText(const QString &string); QString text() const; void setTextOption(const QTextOption &option); %If (Qt_5_0_0 -) const QTextOption &textOption() const; %End %If (- Qt_5_0_0) QTextOption textOption() const; %End void setPreeditArea(int position, const QString &text); int preeditAreaPosition() const; QString preeditAreaText() const; struct FormatRange { %TypeHeaderCode #include %End int start; int length; QTextCharFormat format; }; void setAdditionalFormats(const QList &overrides); QList additionalFormats() const; void clearAdditionalFormats(); void setCacheEnabled(bool enable); bool cacheEnabled() const; void beginLayout(); void endLayout(); QTextLine createLine(); int lineCount() const; QTextLine lineAt(int i) const; QTextLine lineForTextPosition(int pos) const; enum CursorMode { SkipCharacters, SkipWords, }; bool isValidCursorPosition(int pos) const; int nextCursorPosition(int oldPos, QTextLayout::CursorMode mode = QTextLayout::SkipCharacters) const; int previousCursorPosition(int oldPos, QTextLayout::CursorMode mode = QTextLayout::SkipCharacters) const; void draw(QPainter *p, const QPointF &pos, const QVector &selections /DocValue="list-of-QTextLayout.FormatRange"/ = QVector(), const QRectF &clip = QRectF()) const; void drawCursor(QPainter *p, const QPointF &pos, int cursorPosition) const; %If (Qt_4_2_0 -) void drawCursor(QPainter *p, const QPointF &pos, int cursorPosition, int width) const; %End QPointF position() const; void setPosition(const QPointF &p); QRectF boundingRect() const; qreal minimumWidth() const; qreal maximumWidth() const; %If (Qt_4_4_0 -) void clearLayout(); %End %If (Qt_4_8_0 -) void setCursorMoveStyle(Qt::CursorMoveStyle style); %End %If (Qt_4_8_0 -) Qt::CursorMoveStyle cursorMoveStyle() const; %End %If (Qt_4_8_0 -) int leftCursorPosition(int oldPos) const; %End %If (Qt_4_8_0 -) int rightCursorPosition(int oldPos) const; %End %If (Qt_5_0_0 -) QList glyphRuns(int from = -1, int length = -1) const; %End %If (Qt_4_8_0 - Qt_5_0_0) %If (PyQt_RawFont) QList glyphRuns() const; %End %End private: QTextLayout(const QTextLayout &); }; class QTextLine { %TypeHeaderCode #include %End public: QTextLine(); bool isValid() const; QRectF rect() const; qreal x() const; qreal y() const; qreal width() const; qreal ascent() const; qreal descent() const; qreal height() const; qreal naturalTextWidth() const; QRectF naturalTextRect() const; enum Edge { Leading, Trailing, }; enum CursorPosition { CursorBetweenCharacters, CursorOnCharacter, }; qreal cursorToX(int *cursorPos /In,Out/, QTextLine::Edge edge = QTextLine::Leading) const; int xToCursor(qreal x, QTextLine::CursorPosition edge = QTextLine::CursorBetweenCharacters) const; void setLineWidth(qreal width); void setNumColumns(int columns); %If (Qt_4_3_0 -) void setNumColumns(int columns, qreal alignmentWidth); %End void setPosition(const QPointF &pos); int textStart() const; int textLength() const; int lineNumber() const; void draw(QPainter *painter, const QPointF &position, const QTextLayout::FormatRange *selection = 0) const; %If (Qt_4_2_0 -) QPointF position() const; %End %If (Qt_4_6_0 -) qreal leading() const; %End %If (Qt_4_6_0 -) void setLeadingIncluded(bool included); %End %If (Qt_4_6_0 -) bool leadingIncluded() const; %End %If (Qt_4_7_0 -) qreal horizontalAdvance() const; %End %If (Qt_5_0_0 -) QList glyphRuns(int from = -1, int length = -1) const; %End }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtextlist.sip0000644000076500000240000000277412536324426020367 0ustar philstaff00000000000000// qtextlist.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTextList : QTextBlockGroup { %TypeHeaderCode #include %End public: explicit QTextList(QTextDocument *doc); virtual ~QTextList(); int count() const /__len__/; bool isEmpty() const; QTextBlock item(int i) const; int itemNumber(const QTextBlock &) const; QString itemText(const QTextBlock &) const; void removeItem(int i); void remove(const QTextBlock &); void add(const QTextBlock &block); QTextListFormat format() const; void setFormat(const QTextListFormat &aformat); private: QTextList(const QTextList &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtextobject.sip0000644000076500000240000002001112536324426020642 0ustar philstaff00000000000000// qtextobject.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTextObject : QObject { %TypeHeaderCode #include %End protected: explicit QTextObject(QTextDocument *doc); virtual ~QTextObject(); void setFormat(const QTextFormat &format); public: QTextFormat format() const; int formatIndex() const; QTextDocument *document() const; int objectIndex() const; private: QTextObject(const QTextObject &); }; class QTextBlockGroup : QTextObject { %TypeHeaderCode #include %End protected: explicit QTextBlockGroup(QTextDocument *doc); virtual ~QTextBlockGroup(); virtual void blockInserted(const QTextBlock &block); virtual void blockRemoved(const QTextBlock &block); virtual void blockFormatChanged(const QTextBlock &block); QList blockList() const; private: QTextBlockGroup(const QTextBlockGroup &); }; class QTextFrame : QTextObject { %TypeHeaderCode #include %End public: explicit QTextFrame(QTextDocument *doc); virtual ~QTextFrame(); QTextFrameFormat frameFormat() const; QTextCursor firstCursorPosition() const; QTextCursor lastCursorPosition() const; int firstPosition() const; int lastPosition() const; QList childFrames() const; QTextFrame *parentFrame() const; class iterator { %TypeHeaderCode #include %End public: iterator(); iterator(const QTextFrame::iterator &o); QTextFrame *parentFrame() const; QTextFrame *currentFrame() const; QTextBlock currentBlock() const; bool atEnd() const; bool operator==(const QTextFrame::iterator &o) const; bool operator!=(const QTextFrame::iterator &o) const; QTextFrame::iterator &operator+=(int); %MethodCode if (a0 > 0) while (a0--) (*sipCpp)++; else if (a0 < 0) while (a0++) (*sipCpp)--; %End QTextFrame::iterator &operator-=(int); %MethodCode if (a0 > 0) while (a0--) (*sipCpp)--; else if (a0 < 0) while (a0++) (*sipCpp)++; %End }; typedef QTextFrame::iterator Iterator; QTextFrame::iterator begin() const; QTextFrame::iterator end() const; private: QTextFrame(const QTextFrame &); public: void setFrameFormat(const QTextFrameFormat &aformat); }; class QTextBlock /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: QTextBlock(); QTextBlock(const QTextBlock &o); bool isValid() const; bool operator==(const QTextBlock &o) const; bool operator!=(const QTextBlock &o) const; bool operator<(const QTextBlock &o) const; int position() const; int length() const; bool contains(int position) const; QTextLayout *layout() const; QTextBlockFormat blockFormat() const; int blockFormatIndex() const; QTextCharFormat charFormat() const; int charFormatIndex() const; QString text() const; const QTextDocument *document() const; QTextList *textList() const; class iterator { %TypeHeaderCode #include %End public: iterator(); iterator(const QTextBlock::iterator &o); QTextFragment fragment() const; bool atEnd() const; bool operator==(const QTextBlock::iterator &o) const; bool operator!=(const QTextBlock::iterator &o) const; QTextBlock::iterator &operator+=(int); %MethodCode if (a0 > 0) while (a0--) (*sipCpp)++; else if (a0 < 0) while (a0++) (*sipCpp)--; %End QTextBlock::iterator &operator-=(int); %MethodCode if (a0 > 0) while (a0--) (*sipCpp)--; else if (a0 < 0) while (a0++) (*sipCpp)++; %End }; typedef QTextBlock::iterator Iterator; QTextBlock::iterator begin() const; QTextBlock::iterator end() const; QTextBlock next() const; QTextBlock previous() const; QTextBlockUserData *userData() const; void setUserData(QTextBlockUserData *data /GetWrapper/); %MethodCode // Ownership of the user data is with the document not the text block. const QTextDocument *td = sipCpp->document(); if (td) { PyObject *py_td = qtgui_wrap_ancestors(const_cast(td), sipType_QTextDocument); if (!py_td) { sipIsErr = 1; } else { sipTransferTo(a0Wrapper, py_td); Py_DECREF(py_td); } } sipCpp->setUserData(a0); %End int userState() const; void setUserState(int state); %If (Qt_4_4_0 -) void clearLayout(); %End %If (Qt_4_4_0 -) int revision() const; %End %If (Qt_4_4_0 -) void setRevision(int rev); %End %If (Qt_4_4_0 -) bool isVisible() const; %End %If (Qt_4_4_0 -) void setVisible(bool visible); %End %If (Qt_4_4_0 -) int blockNumber() const; %End %If (Qt_4_5_0 -) int firstLineNumber() const; %End %If (Qt_4_5_0 -) void setLineCount(int count); %End %If (Qt_4_5_0 -) int lineCount() const; %End %If (Qt_4_7_0 -) Qt::LayoutDirection textDirection() const; %End }; class QTextFragment { %TypeHeaderCode #include %End public: QTextFragment(); QTextFragment(const QTextFragment &o); bool isValid() const; bool operator==(const QTextFragment &o) const; bool operator!=(const QTextFragment &o) const; bool operator<(const QTextFragment &o) const; int position() const; int length() const; bool contains(int position) const; QTextCharFormat charFormat() const; int charFormatIndex() const; QString text() const; %If (Qt_5_0_0 -) QList glyphRuns(int from = -1, int length = -1) const; %End %If (Qt_4_8_0 - Qt_5_0_0) %If (PyQt_RawFont) QList glyphRuns() const; %End %End }; class QTextBlockUserData /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: virtual ~QTextBlockUserData(); }; %ModuleHeaderCode PyObject *qtgui_wrap_ancestors(QObject *obj, const sipTypeDef *td); %End %ModuleCode // Wrap a QObject and ensure that it's ancestors are all wrapped with the // correct ownerships. static PyObject *qtgui_wrap_ancestors_worker(QObject *obj) { if (!obj) { Py_INCREF(Py_None); return Py_None; } PyObject *py_parent = qtgui_wrap_ancestors_worker(obj->parent()); if (!py_parent) return 0; PyObject *py_obj = sipConvertFromType(obj, sipType_QObject, (py_parent != Py_None ? py_parent : 0)); Py_DECREF(py_parent); return py_obj; } PyObject *qtgui_wrap_ancestors(QObject *obj, const sipTypeDef *td) { PyObject *py_parent = qtgui_wrap_ancestors_worker(obj->parent()); if (!py_parent) return 0; PyObject *py_obj = sipConvertFromType(obj, td, (py_parent != Py_None ? py_parent : 0)); Py_DECREF(py_parent); return py_obj; } %End PyQt-x11-gpl-4.11.4/sip/QtGui/qtextoption.sip0000644000076500000240000000624212536324426020716 0ustar philstaff00000000000000// qtextoption.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QTextOption { %TypeHeaderCode #include %End public: QTextOption(); QTextOption(Qt::Alignment alignment); ~QTextOption(); QTextOption(const QTextOption &o); Qt::Alignment alignment() const; void setTextDirection(Qt::LayoutDirection aDirection); Qt::LayoutDirection textDirection() const; enum WrapMode { NoWrap, WordWrap, ManualWrap, WrapAnywhere, WrapAtWordBoundaryOrAnywhere, }; void setWrapMode(QTextOption::WrapMode wrap); QTextOption::WrapMode wrapMode() const; enum Flag { IncludeTrailingSpaces, %If (Qt_4_5_0 -) ShowTabsAndSpaces, %End %If (Qt_4_5_0 -) ShowLineAndParagraphSeparators, %End %If (Qt_4_5_0 -) AddSpaceForLineAndParagraphSeparators, %End %If (Qt_4_5_0 -) SuppressColors, %End }; typedef QFlags Flags; QFlags flags() const; qreal tabStop() const; %If (Qt_5_0_0 -) void setTabArray(const QList &tabStops); %End %If (- Qt_5_0_0) void setTabArray(QList tabStops); %End QList tabArray() const; void setUseDesignMetrics(bool b); bool useDesignMetrics() const; void setAlignment(Qt::Alignment aalignment); void setFlags(QFlags aflags); void setTabStop(qreal atabStop); %If (Qt_4_4_0 -) enum TabType { LeftTab, RightTab, CenterTab, DelimiterTab, }; %End %If (Qt_4_4_0 -) struct Tab { %TypeHeaderCode #include %End Tab(); %If (Qt_4_7_0 -) Tab(qreal pos, QTextOption::TabType tabType, QChar delim = QChar()); %End bool operator==(const QTextOption::Tab &other) const; bool operator!=(const QTextOption::Tab &other) const; qreal position; QTextOption::TabType type; QChar delimiter; }; %End %If (Qt_5_0_0 -) void setTabs(const QList &tabStops); %End %If (Qt_4_4_0 - Qt_5_0_0) void setTabs(QList tabStops); %End %If (Qt_4_4_0 -) QList tabs() const; %End }; QFlags operator|(QTextOption::Flag f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qtexttable.sip0000644000076500000240000000521712536324426020476 0ustar philstaff00000000000000// qtexttable.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTextTableCell { %TypeHeaderCode #include %End public: QTextTableCell(); ~QTextTableCell(); QTextTableCell(const QTextTableCell &o); QTextCharFormat format() const; %If (Qt_4_2_0 -) void setFormat(const QTextCharFormat &format); %End int row() const; int column() const; int rowSpan() const; int columnSpan() const; bool isValid() const; QTextCursor firstCursorPosition() const; QTextCursor lastCursorPosition() const; %If (Qt_4_5_0 -) int tableCellFormatIndex() const; %End bool operator==(const QTextTableCell &other) const; bool operator!=(const QTextTableCell &other) const; }; class QTextTable : QTextFrame { %TypeHeaderCode #include %End public: explicit QTextTable(QTextDocument *doc); virtual ~QTextTable(); void resize(int rows, int cols); void insertRows(int pos, int num); void insertColumns(int pos, int num); void removeRows(int pos, int num); void removeColumns(int pos, int num); void mergeCells(int row, int col, int numRows, int numCols); void mergeCells(const QTextCursor &cursor); void splitCell(int row, int col, int numRows, int numCols); int rows() const; int columns() const; QTextTableCell cellAt(int row, int col) const; QTextTableCell cellAt(int position) const; QTextTableCell cellAt(const QTextCursor &c) const; QTextCursor rowStart(const QTextCursor &c) const; QTextCursor rowEnd(const QTextCursor &c) const; QTextTableFormat format() const; void setFormat(const QTextTableFormat &aformat); %If (Qt_4_5_0 -) void appendRows(int count); %End %If (Qt_4_5_0 -) void appendColumns(int count); %End private: QTextTable(const QTextTable &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/QtGuimod.sip0000644000076500000240000001607112536324426020052 0ustar philstaff00000000000000// QtGuimod.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtGui, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %Include(name=staticplugins.sip, optional=True) %DefaultSupertype sip.simplewrapper %Include qabstractbutton.sip %Include qabstractitemdelegate.sip %Include qabstractitemview.sip %Include qabstractprintdialog.sip %Include qabstractproxymodel.sip %Include qabstractscrollarea.sip %Include qabstractslider.sip %Include qabstractspinbox.sip %Include qabstracttextdocumentlayout.sip %Include qaction.sip %Include qactiongroup.sip %Include qapplication.sip %Include qbitmap.sip %Include qboxlayout.sip %Include qcolor.sip %Include qcommandlinkbutton.sip %Include qbrush.sip %Include qbuttongroup.sip %Include qcalendarwidget.sip %Include qcheckbox.sip %Include qclipboard.sip %Include qcolumnview.sip %Include qcolordialog.sip %Include qcombobox.sip %Include qcommonstyle.sip %Include qcompleter.sip %Include qcursor.sip %Include qdatawidgetmapper.sip %Include qdatetimeedit.sip %Include qdesktopservices.sip %Include qdesktopwidget.sip %Include qdial.sip %Include qdialog.sip %Include qdialogbuttonbox.sip %Include qdirmodel.sip %Include qdockwidget.sip %Include qdrag.sip %Include qdrawutil.sip %Include qerrormessage.sip %Include qevent.sip %Include qfiledialog.sip %Include qfileiconprovider.sip %Include qfilesystemmodel.sip %Include qfocusframe.sip %Include qfont.sip %Include qfontcombobox.sip %Include qfontdatabase.sip %Include qfontdialog.sip %Include qfontinfo.sip %Include qfontmetrics.sip %Include qformlayout.sip %Include qframe.sip %Include qgenericmatrix.sip %Include qgesture.sip %Include qgesturerecognizer.sip %Include qglyphrun.sip %Include qgraphicsanchorlayout.sip %Include qgraphicseffect.sip %Include qgraphicsgridlayout.sip %Include qgraphicsitem.sip %Include qgraphicsitemanimation.sip %Include qgraphicslayout.sip %Include qgraphicslayoutitem.sip %Include qgraphicslinearlayout.sip %Include qgraphicsproxywidget.sip %Include qgraphicsscene.sip %Include qgraphicswidget.sip %Include qgraphicssceneevent.sip %Include qgraphicstransform.sip %Include qgraphicsview.sip %Include qgridlayout.sip %Include qgroupbox.sip %Include qguiapplication.sip %Include qheaderview.sip %Include qicon.sip %Include qiconengine.sip %Include qidentityproxymodel.sip %Include qimage.sip %Include qimageiohandler.sip %Include qimagereader.sip %Include qimagewriter.sip %Include qinputcontext.sip %Include qinputcontextfactory.sip %Include qinputdialog.sip %Include qitemdelegate.sip %Include qitemeditorfactory.sip %Include qitemselectionmodel.sip %Include qkeyeventtransition.sip %Include qkeysequence.sip %Include qlabel.sip %Include qlayout.sip %Include qlayoutitem.sip %Include qlcdnumber.sip %Include qlineedit.sip %Include qlistview.sip %Include qlistwidget.sip %Include qmainwindow.sip %Include qmatrix.sip %Include qmatrix4x4.sip %Include qmdiarea.sip %Include qmdisubwindow.sip %Include qmenu.sip %Include qmenubar.sip %Include qmessagebox.sip %Include qmime.sip %Include qmouseeventtransition.sip %Include qmovie.sip %Include qpagedpaintdevice.sip %Include qpagesetupdialog.sip %Include qpainter.sip %Include qpaintdevice.sip %Include qpaintengine.sip %Include qpainterpath.sip %Include qpalette.sip %Include qpen.sip %Include qpicture.sip %Include qpixmap.sip %Include qpixmapcache.sip %Include qplaintextedit.sip %Include qpolygon.sip %Include qprinter.sip %Include qprintdialog.sip %Include qprintengine.sip %Include qprinterinfo.sip %Include qprintpreviewdialog.sip %Include qprintpreviewwidget.sip %Include qprogressbar.sip %Include qprogressdialog.sip %Include qproxymodel.sip %Include qpushbutton.sip %Include qquaternion.sip %Include qradiobutton.sip %Include qrawfont.sip %Include qregion.sip %Include qrgb.sip %Include qrubberband.sip %Include qscreen.sip %Include qscrollarea.sip %Include qscrollbar.sip %Include qsessionmanager.sip %Include qshortcut.sip %Include qsizegrip.sip %Include qsizepolicy.sip %Include qslider.sip %Include qsortfilterproxymodel.sip %Include qsound.sip %Include qspinbox.sip %Include qsplashscreen.sip %Include qsplitter.sip %Include qstackedlayout.sip %Include qstackedwidget.sip %Include qstandarditemmodel.sip %Include qstatictext.sip %Include qstatusbar.sip %Include qstringlistmodel.sip %Include qstyle.sip %Include qstyleditemdelegate.sip %Include qstylefactory.sip %Include qstyleoption.sip %Include qstylepainter.sip %Include qsyntaxhighlighter.sip %Include qsystemtrayicon.sip %Include qtabbar.sip %Include qtableview.sip %Include qtablewidget.sip %Include qtabwidget.sip %Include qtextbrowser.sip %Include qtextcursor.sip %Include qtextdocument.sip %Include qtextdocumentfragment.sip %Include qtextdocumentwriter.sip %Include qtextedit.sip %Include qtextformat.sip %Include qtextlayout.sip %Include qtextlist.sip %Include qtextobject.sip %Include qtextoption.sip %Include qtexttable.sip %Include qtoolbar.sip %Include qtoolbox.sip %Include qtoolbutton.sip %Include qtooltip.sip %Include qtouchdevice.sip %Include qtransform.sip %Include qtreeview.sip %Include qtreewidget.sip %Include qtreewidgetitemiterator.sip %Include qundogroup.sip %Include qundostack.sip %Include qundoview.sip %Include qvalidator.sip %Include qvector2d.sip %Include qvector3d.sip %Include qvector4d.sip %Include qwhatsthis.sip %Include qwidget.sip %Include qwidgetaction.sip %Include qwindowdefs.sip %Include qwizard.sip %Include qworkspace.sip %Include qx11embed_x11.sip %Include qx11info_x11.sip %Include opengl_types.sip %Include qpytextobject.sip PyQt-x11-gpl-4.11.4/sip/QtGui/qtoolbar.sip0000644000076500000240000000743712536324426020152 0ustar philstaff00000000000000// qtoolbar.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QToolBar : QWidget { %TypeHeaderCode #include %End public: QToolBar(const QString &title, QWidget *parent /TransferThis/ = 0); explicit QToolBar(QWidget *parent /TransferThis/ = 0); virtual ~QToolBar(); void setMovable(bool movable); bool isMovable() const; void setAllowedAreas(Qt::ToolBarAreas areas); Qt::ToolBarAreas allowedAreas() const; bool isAreaAllowed(Qt::ToolBarArea area) const; void setOrientation(Qt::Orientation orientation); Qt::Orientation orientation() const; void clear(); void addAction(QAction *action); QAction *addAction(const QString &text) /Transfer/; QAction *addAction(const QIcon &icon, const QString &text) /Transfer/; QAction *addAction(const QString &text, SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) /Transfer/ [QAction * (const QString &text, const QObject *receiver, const char *member)]; QAction *addAction(const QIcon &icon, const QString &text, SIP_RXOBJ_CON receiver, SIP_SLOT_CON() member) /Transfer/ [QAction * (const QIcon &icon, const QString &text, const QObject *receiver, const char *member)]; QAction *addSeparator() /Transfer/; QAction *insertSeparator(QAction *before) /Transfer/; QAction *addWidget(QWidget *widget /Transfer/) /Transfer/; QAction *insertWidget(QAction *before, QWidget *widget /Transfer/) /Transfer/; QRect actionGeometry(QAction *action) const; QAction *actionAt(const QPoint &p) const; QAction *actionAt(int ax, int ay) const; QAction *toggleViewAction() const; QSize iconSize() const; Qt::ToolButtonStyle toolButtonStyle() const; %If (Qt_4_2_0 -) QWidget *widgetForAction(QAction *action) const; %End public slots: void setIconSize(const QSize &iconSize); void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle); signals: void actionTriggered(QAction *action); void movableChanged(bool movable); void allowedAreasChanged(Qt::ToolBarAreas allowedAreas); void orientationChanged(Qt::Orientation orientation); void iconSizeChanged(const QSize &iconSize); void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle); %If (Qt_4_6_0 -) void topLevelChanged(bool topLevel); %End %If (Qt_4_7_0 -) void visibilityChanged(bool visible); %End protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionToolBar *option) const; %End virtual void actionEvent(QActionEvent *event); virtual void changeEvent(QEvent *event); %If (- Qt_5_0_0) virtual void childEvent(QChildEvent *event); %End virtual void paintEvent(QPaintEvent *event); %If (- Qt_5_0_0) virtual void resizeEvent(QResizeEvent *event); %End virtual bool event(QEvent *event); public: %If (Qt_4_3_0 -) bool isFloatable() const; %End %If (Qt_4_3_0 -) void setFloatable(bool floatable); %End %If (Qt_4_3_0 -) bool isFloating() const; %End private: QToolBar(const QToolBar &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtoolbox.sip0000644000076500000240000000477112536324426020174 0ustar philstaff00000000000000// qtoolbox.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QToolBox : QFrame { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) QToolBox(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QToolBox(QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End virtual ~QToolBox(); int addItem(QWidget *item /Transfer/, const QString &text); int addItem(QWidget *item /Transfer/, const QIcon &iconSet, const QString &text); int insertItem(int index, QWidget *item /Transfer/, const QString &text); int insertItem(int index, QWidget *widget /Transfer/, const QIcon &icon, const QString &text); void removeItem(int index); void setItemEnabled(int index, bool enabled); bool isItemEnabled(int index) const; void setItemText(int index, const QString &text); QString itemText(int index) const; void setItemIcon(int index, const QIcon &icon); QIcon itemIcon(int index) const; void setItemToolTip(int index, const QString &toolTip); QString itemToolTip(int index) const; int currentIndex() const; QWidget *currentWidget() const; QWidget *widget(int index) const; int indexOf(QWidget *widget) const; int count() const /__len__/; public slots: void setCurrentIndex(int index); void setCurrentWidget(QWidget *widget); signals: void currentChanged(int index); protected: virtual void itemInserted(int index); virtual void itemRemoved(int index); virtual bool event(QEvent *e); virtual void showEvent(QShowEvent *e); virtual void changeEvent(QEvent *); private: QToolBox(const QToolBox &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtoolbutton.sip0000644000076500000240000000504512536324426020712 0ustar philstaff00000000000000// qtoolbutton.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QToolButton : QAbstractButton { %TypeHeaderCode #include %End public: enum ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup, }; explicit QToolButton(QWidget *parent /TransferThis/ = 0); virtual ~QToolButton(); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; Qt::ToolButtonStyle toolButtonStyle() const; Qt::ArrowType arrowType() const; void setArrowType(Qt::ArrowType type); void setMenu(QMenu *menu /KeepReference/); QMenu *menu() const; void setPopupMode(QToolButton::ToolButtonPopupMode mode); QToolButton::ToolButtonPopupMode popupMode() const; QAction *defaultAction() const; void setAutoRaise(bool enable); bool autoRaise() const; public slots: void showMenu(); void setToolButtonStyle(Qt::ToolButtonStyle style); void setDefaultAction(QAction * /KeepReference/); signals: void triggered(QAction *); protected: %If (Qt_4_3_0 -) void initStyleOption(QStyleOptionToolButton *option) const; %End virtual bool event(QEvent *e); virtual void mousePressEvent(QMouseEvent *); virtual void paintEvent(QPaintEvent *); virtual void actionEvent(QActionEvent *); virtual void enterEvent(QEvent *); virtual void leaveEvent(QEvent *); virtual void timerEvent(QTimerEvent *); virtual void changeEvent(QEvent *); %If (Qt_4_2_0 -) virtual void mouseReleaseEvent(QMouseEvent *); %End virtual void nextCheckState(); %If (Qt_4_2_0 -) virtual bool hitButton(const QPoint &pos) const; %End private: QToolButton(const QToolButton &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtooltip.sip0000644000076500000240000000313112536324426020165 0ustar philstaff00000000000000// qtooltip.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (PyQt_ToolTip) class QToolTip { %TypeHeaderCode #include %End QToolTip(); public: static void showText(const QPoint &pos, const QString &text, QWidget *widget = 0); %If (Qt_4_2_0 -) static void showText(const QPoint &pos, const QString &text, QWidget *w, const QRect &rect); %End static QPalette palette(); %If (Qt_4_2_0 -) static void hideText(); %End %If (Qt_4_2_0 -) static void setPalette(const QPalette &); %End %If (Qt_4_2_0 -) static QFont font(); %End %If (Qt_4_2_0 -) static void setFont(const QFont &); %End %If (Qt_4_4_0 -) static bool isVisible(); %End %If (Qt_4_4_0 -) static QString text(); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qtouchdevice.sip0000644000076500000240000000403212536324426020776 0ustar philstaff00000000000000// qtouchdevice.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) %ModuleCode #include %End %End %If (Qt_5_0_0 -) class QTouchDevice { %TypeHeaderCode #include %End public: enum DeviceType { TouchScreen, TouchPad, }; enum CapabilityFlag { Position, Area, Pressure, Velocity, RawPositions, NormalizedPosition, }; typedef QFlags Capabilities; QTouchDevice(); ~QTouchDevice(); static QList devices(); QString name() const; QTouchDevice::DeviceType type() const; QFlags capabilities() const; void setName(const QString &name); void setType(QTouchDevice::DeviceType devType); void setCapabilities(QFlags caps); }; %End %If (Qt_5_0_0 -) QFlags operator|(QTouchDevice::CapabilityFlag f1, QFlags f2); %End %If (Qt_5_0_0 -) QFlags operator|(QTouchDevice::CapabilityFlag f1, QTouchDevice::CapabilityFlag f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qtransform.sip0000644000076500000240000001242112536324426020510 0ustar philstaff00000000000000// qtransform.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %ModuleCode #include %End %End %If (Qt_4_3_0 -) class QTransform { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"ddddddddd", sipCpp->m11(), sipCpp->m12(), sipCpp->m13(), sipCpp->m21(), sipCpp->m22(), sipCpp->m23(), sipCpp->m31(), sipCpp->m32(), sipCpp->m33()); %End public: enum TransformationType { TxNone, TxTranslate, TxScale, TxRotate, TxShear, TxProject, }; QTransform(); QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33 = 1.0e+0); QTransform(qreal h11, qreal h12, qreal h13, qreal h21, qreal h22, qreal h23); explicit QTransform(const QMatrix &mtx); QTransform::TransformationType type() const; void setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33); QTransform inverted(bool *invertible = 0) const; QTransform adjoint() const; QTransform transposed() const; QTransform &translate(qreal dx, qreal dy); QTransform &scale(qreal sx, qreal sy); QTransform &shear(qreal sh, qreal sv); QTransform &rotate(qreal angle, Qt::Axis axis = Qt::ZAxis); QTransform &rotateRadians(qreal angle, Qt::Axis axis = Qt::ZAxis); static bool squareToQuad(const QPolygonF &square, QTransform &result); static bool quadToSquare(const QPolygonF &quad, QTransform &result); static bool quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &result); bool operator==(const QTransform &) const; bool operator!=(const QTransform &) const; QTransform &operator*=(const QTransform &); QTransform operator*(const QTransform &o) const; void reset(); void map(int x /Constrained/, int y /Constrained/, int *tx, int *ty) const; void map(qreal x, qreal y, qreal *tx, qreal *ty) const; QPoint map(const QPoint &p) const; QPointF map(const QPointF &p) const; QLine map(const QLine &l) const; QLineF map(const QLineF &l) const; QPolygonF map(const QPolygonF &a) const; QPolygon map(const QPolygon &a) const; QRegion map(const QRegion &r) const; QPainterPath map(const QPainterPath &p) const; QPolygon mapToPolygon(const QRect &r) const; QRect mapRect(const QRect &) const; QRectF mapRect(const QRectF &) const; const QMatrix &toAffine() const; bool isAffine() const; bool isIdentity() const; bool isInvertible() const; bool isScaling() const; bool isRotating() const; bool isTranslating() const; qreal determinant() const; qreal det() const; qreal m11() const; qreal m12() const; qreal m13() const; qreal m21() const; qreal m22() const; qreal m23() const; qreal m31() const; qreal m32() const; qreal m33() const; qreal dx() const; qreal dy() const; %If (Qt_4_5_0 -) static QTransform fromTranslate(qreal dx, qreal dy); %End %If (Qt_4_5_0 -) static QTransform fromScale(qreal dx, qreal dy); %End QTransform &operator*=(qreal num); QTransform &operator/=(qreal div); QTransform &operator+=(qreal num); QTransform &operator-=(qreal num); }; %End %If (Qt_4_3_0 -) QDataStream &operator<<(QDataStream &, const QTransform & /Constrained/); %End %If (Qt_4_3_0 -) QDataStream &operator>>(QDataStream &, QTransform & /Constrained/); %End %If (Qt_4_3_0 -) QPoint operator*(const QPoint &p, const QTransform &m); %End %If (Qt_4_3_0 -) QPointF operator*(const QPointF &p, const QTransform &m); %End %If (Qt_4_3_0 -) QLineF operator*(const QLineF &l, const QTransform &m); %End %If (Qt_4_3_0 -) QLine operator*(const QLine &l, const QTransform &m); %End %If (Qt_4_3_0 -) QPolygon operator*(const QPolygon &a, const QTransform &m); %End %If (Qt_4_3_0 -) QPolygonF operator*(const QPolygonF &a, const QTransform &m); %End %If (Qt_4_3_0 -) QRegion operator*(const QRegion &r, const QTransform &m); %End %If (Qt_4_3_0 -) QPainterPath operator*(const QPainterPath &p, const QTransform &m); %End %If (Qt_4_3_0 -) QTransform operator*(const QTransform &a, qreal n); %End %If (Qt_4_3_0 -) QTransform operator/(const QTransform &a, qreal n); %End %If (Qt_4_3_0 -) QTransform operator+(const QTransform &a, qreal n); %End %If (Qt_4_3_0 -) QTransform operator-(const QTransform &a, qreal n); %End %If (Qt_4_6_0 -) bool qFuzzyCompare(const QTransform &t1, const QTransform &t2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qtreeview.sip0000644000076500000240000001561212536324426020334 0ustar philstaff00000000000000// qtreeview.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTreeView : QAbstractItemView { %TypeHeaderCode #include %End public: explicit QTreeView(QWidget *parent /TransferThis/ = 0); virtual ~QTreeView(); virtual void setModel(QAbstractItemModel *model /KeepReference/); virtual void setRootIndex(const QModelIndex &index); virtual void setSelectionModel(QItemSelectionModel *selectionModel /KeepReference/); QHeaderView *header() const; void setHeader(QHeaderView *header /Transfer/); int indentation() const; void setIndentation(int i); bool rootIsDecorated() const; void setRootIsDecorated(bool show); bool uniformRowHeights() const; void setUniformRowHeights(bool uniform); bool itemsExpandable() const; void setItemsExpandable(bool enable); int columnViewportPosition(int column) const; int columnWidth(int column) const; int columnAt(int x) const; bool isColumnHidden(int column) const; void setColumnHidden(int column, bool hide); bool isRowHidden(int row, const QModelIndex &parent) const; void setRowHidden(int row, const QModelIndex &parent, bool hide); bool isExpanded(const QModelIndex &index) const; void setExpanded(const QModelIndex &index, bool expand); virtual void keyboardSearch(const QString &search); virtual QRect visualRect(const QModelIndex &index) const; virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible); virtual QModelIndex indexAt(const QPoint &p) const; QModelIndex indexAbove(const QModelIndex &index) const; QModelIndex indexBelow(const QModelIndex &index) const; virtual void reset(); signals: void expanded(const QModelIndex &index); void collapsed(const QModelIndex &index); public: %If (Qt_5_0_0 -) virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles /DocValue="[]"/ = QVector()); %End public slots: %If (- Qt_5_0_0) virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); %End void hideColumn(int column); void showColumn(int column); void expand(const QModelIndex &index); %If (Qt_4_2_0 -) void expandAll(); %End void collapse(const QModelIndex &index); %If (Qt_4_2_0 -) void collapseAll(); %End void resizeColumnToContents(int column); void sortByColumn(int column); virtual void selectAll(); protected slots: void columnResized(int column, int oldSize, int newSize); void columnCountChanged(int oldCount, int newCount); void columnMoved(); void reexpand(); void rowsRemoved(const QModelIndex &parent, int first, int last); protected: virtual void scrollContentsBy(int dx, int dy); virtual void rowsInserted(const QModelIndex &parent, int start, int end); virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); virtual QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers); virtual int horizontalOffset() const; virtual int verticalOffset() const; virtual void setSelection(const QRect &rect, QFlags command); virtual QRegion visualRegionForSelection(const QItemSelection &selection) const; virtual QModelIndexList selectedIndexes() const; virtual void paintEvent(QPaintEvent *e); virtual void timerEvent(QTimerEvent *event); virtual void mouseReleaseEvent(QMouseEvent *event); virtual void drawRow(QPainter *painter, const QStyleOptionViewItem &options /NoCopy/, const QModelIndex &index) const; virtual void drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const; %If (Qt_4_2_0 -) void drawTree(QPainter *painter, const QRegion ®ion) const; %End virtual void mousePressEvent(QMouseEvent *e); %If (Qt_4_2_0 -) virtual void mouseMoveEvent(QMouseEvent *event); %End virtual void mouseDoubleClickEvent(QMouseEvent *e); %If (Qt_4_2_0 -) virtual void keyPressEvent(QKeyEvent *event); %End virtual void updateGeometries(); virtual int sizeHintForColumn(int column) const; int indexRowSizeHint(const QModelIndex &index) const; virtual void horizontalScrollbarAction(int action); virtual bool isIndexHidden(const QModelIndex &index) const; public: %If (Qt_4_2_0 -) void setColumnWidth(int column, int width); %End %If (Qt_4_2_0 -) void setSortingEnabled(bool enable); %End %If (Qt_4_2_0 -) bool isSortingEnabled() const; %End %If (Qt_4_2_0 -) void setAnimated(bool enable); %End %If (Qt_4_2_0 -) bool isAnimated() const; %End %If (Qt_4_2_0 -) void setAllColumnsShowFocus(bool enable); %End %If (Qt_4_2_0 -) bool allColumnsShowFocus() const; %End %If (Qt_4_2_0 -) void sortByColumn(int column, Qt::SortOrder order); %End %If (Qt_4_3_0 -) int autoExpandDelay() const; %End %If (Qt_4_3_0 -) void setAutoExpandDelay(int delay); %End %If (Qt_4_3_0 -) bool isFirstColumnSpanned(int row, const QModelIndex &parent) const; %End %If (Qt_4_3_0 -) void setFirstColumnSpanned(int row, const QModelIndex &parent, bool span); %End %If (Qt_4_3_0 -) void setWordWrap(bool on); %End %If (Qt_4_3_0 -) bool wordWrap() const; %End public slots: %If (Qt_4_3_0 -) void expandToDepth(int depth); %End protected: %If (Qt_4_3_0 -) virtual void dragMoveEvent(QDragMoveEvent *event); %End %If (Qt_4_3_0 -) virtual bool viewportEvent(QEvent *event); %End %If (Qt_4_3_0 -) int rowHeight(const QModelIndex &index) const; %End %If (Qt_4_3_0 -) virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); %End %If (Qt_4_3_0 -) virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); %End public: %If (Qt_4_4_0 -) bool expandsOnDoubleClick() const; %End %If (Qt_4_4_0 -) void setExpandsOnDoubleClick(bool enable); %End %If (Qt_4_4_0 -) bool isHeaderHidden() const; %End %If (Qt_4_4_0 -) void setHeaderHidden(bool hide); %End private: QTreeView(const QTreeView &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtreewidget.sip0000644000076500000240000002733612536324426020653 0ustar philstaff00000000000000// qtreewidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QTreeWidgetItem /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum ItemType { Type, UserType, }; %End %If (- Qt_4_2_0) enum { Type, UserType, }; %End %If (Qt_4_5_0 -) explicit QTreeWidgetItem(int type = Type); %End %If (- Qt_4_5_0) QTreeWidgetItem(int type = Type); %End QTreeWidgetItem(const QStringList &strings, int type = Type); QTreeWidgetItem(QTreeWidget *parent /TransferThis/, int type = Type); QTreeWidgetItem(QTreeWidget *parent /TransferThis/, const QStringList &strings, int type = Type); QTreeWidgetItem(QTreeWidget *parent /TransferThis/, QTreeWidgetItem *preceding, int type = Type); QTreeWidgetItem(QTreeWidgetItem *parent /TransferThis/, int type = Type); QTreeWidgetItem(QTreeWidgetItem *parent /TransferThis/, const QStringList &strings, int type = Type); QTreeWidgetItem(QTreeWidgetItem *parent /TransferThis/, QTreeWidgetItem *preceding, int type = Type); QTreeWidgetItem(const QTreeWidgetItem &other); virtual ~QTreeWidgetItem(); virtual QTreeWidgetItem *clone() const /Factory/; QTreeWidget *treeWidget() const; Qt::ItemFlags flags() const; QString text(int column) const; QIcon icon(int column) const; QString statusTip(int column) const; %If (PyQt_ToolTip) QString toolTip(int column) const; %End %If (PyQt_WhatsThis) QString whatsThis(int column) const; %End QFont font(int column) const; int textAlignment(int column) const; void setTextAlignment(int column, int alignment); QColor backgroundColor(int column) const; void setBackgroundColor(int column, const QColor &color); QColor textColor(int column) const; void setTextColor(int column, const QColor &color); Qt::CheckState checkState(int column) const; void setCheckState(int column, Qt::CheckState state); virtual QVariant data(int column, int role) const; virtual void setData(int column, int role, const QVariant &value); virtual bool operator<(const QTreeWidgetItem &other /NoCopy/) const; virtual void read(QDataStream &in) /ReleaseGIL/; virtual void write(QDataStream &out) const /ReleaseGIL/; QTreeWidgetItem *parent() const; QTreeWidgetItem *child(int index) const; int childCount() const; int columnCount() const; void addChild(QTreeWidgetItem *child /Transfer/); void insertChild(int index, QTreeWidgetItem *child /Transfer/); QTreeWidgetItem *takeChild(int index) /TransferBack/; int type() const; void setFlags(Qt::ItemFlags aflags); void setText(int column, const QString &atext); void setIcon(int column, const QIcon &aicon); void setStatusTip(int column, const QString &astatusTip); %If (PyQt_ToolTip) void setToolTip(int column, const QString &atoolTip); %End %If (PyQt_WhatsThis) void setWhatsThis(int column, const QString &awhatsThis); %End void setFont(int column, const QFont &afont); int indexOfChild(QTreeWidgetItem *achild) const; QSize sizeHint(int column) const; void setSizeHint(int column, const QSize &size); void addChildren(const QList &children /Transfer/); void insertChildren(int index, const QList &children /Transfer/); QList takeChildren() /TransferBack/; %If (Qt_4_2_0 -) QBrush background(int column) const; %End %If (Qt_4_2_0 -) void setBackground(int column, const QBrush &brush); %End %If (Qt_4_2_0 -) QBrush foreground(int column) const; %End %If (Qt_4_2_0 -) void setForeground(int column, const QBrush &brush); %End %If (Qt_4_2_0 -) void sortChildren(int column, Qt::SortOrder order); %End %If (Qt_4_2_0 -) void setSelected(bool aselect); %End %If (Qt_4_2_0 -) bool isSelected() const; %End %If (Qt_4_2_0 -) void setHidden(bool ahide); %End %If (Qt_4_2_0 -) bool isHidden() const; %End %If (Qt_4_2_0 -) void setExpanded(bool aexpand); %End %If (Qt_4_2_0 -) bool isExpanded() const; %End %If (Qt_4_3_0 -) enum ChildIndicatorPolicy { ShowIndicator, DontShowIndicator, DontShowIndicatorWhenChildless, }; %End %If (Qt_4_3_0 -) void setChildIndicatorPolicy(QTreeWidgetItem::ChildIndicatorPolicy policy); %End %If (Qt_4_3_0 -) QTreeWidgetItem::ChildIndicatorPolicy childIndicatorPolicy() const; %End %If (Qt_4_3_0 -) void removeChild(QTreeWidgetItem *child /TransferBack/); %End %If (Qt_4_3_0 -) void setFirstColumnSpanned(bool aspan); %End %If (Qt_4_3_0 -) bool isFirstColumnSpanned() const; %End %If (Qt_4_3_0 -) void setDisabled(bool disabled); %End %If (Qt_4_3_0 -) bool isDisabled() const; %End protected: %If (Qt_4_5_0 -) void emitDataChanged(); %End private: QTreeWidgetItem &operator=(const QTreeWidgetItem &); }; QDataStream &operator<<(QDataStream &out, const QTreeWidgetItem &item /Constrained/); QDataStream &operator>>(QDataStream &in, QTreeWidgetItem &item /Constrained/); class QTreeWidget : QTreeView { %TypeHeaderCode #include %End public: explicit QTreeWidget(QWidget *parent /TransferThis/ = 0); virtual ~QTreeWidget(); int columnCount() const; void setColumnCount(int columns); QTreeWidgetItem *topLevelItem(int index) const; int topLevelItemCount() const; void insertTopLevelItem(int index, QTreeWidgetItem *item /Transfer/); void addTopLevelItem(QTreeWidgetItem *item /Transfer/); QTreeWidgetItem *takeTopLevelItem(int index) /TransferBack/; %If (Qt_4_2_0 -) int indexOfTopLevelItem(QTreeWidgetItem *item) const; %End %If (- Qt_4_2_0) int indexOfTopLevelItem(QTreeWidgetItem *item); %End void insertTopLevelItems(int index, const QList &items /Transfer/); void addTopLevelItems(const QList &items /Transfer/); QTreeWidgetItem *headerItem() const; void setHeaderItem(QTreeWidgetItem *item /Transfer/); void setHeaderLabels(const QStringList &labels); QTreeWidgetItem *currentItem() const; int currentColumn() const; void setCurrentItem(QTreeWidgetItem *item); void setCurrentItem(QTreeWidgetItem *item, int column); %If (Qt_4_4_0 -) void setCurrentItem(QTreeWidgetItem *item, int column, QFlags command); %End QTreeWidgetItem *itemAt(const QPoint &p) const; QTreeWidgetItem *itemAt(int ax, int ay) const; QRect visualItemRect(const QTreeWidgetItem *item) const; int sortColumn() const; void sortItems(int column, Qt::SortOrder order); %If (- Qt_5_0_0) void setSortingEnabled(bool enable); %End %If (- Qt_5_0_0) bool isSortingEnabled() const; %End void editItem(QTreeWidgetItem *item, int column = 0); void openPersistentEditor(QTreeWidgetItem *item, int column = 0); void closePersistentEditor(QTreeWidgetItem *item, int column = 0); QWidget *itemWidget(QTreeWidgetItem *item, int column) const; void setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget /Transfer/); %MethodCode // We have to break the association with any existing widget. Note that I'm // not sure this is really necessary as it should get tidied up when Qt // destroys any current widget, except (possibly) when the widget wasn't // created from PyQt. See also removeItemWidget(), QListWidget and // QTableWidget. QWidget *w = sipCpp->itemWidget(a0, a1); if (w) { PyObject *wo = sipGetPyObject(w, sipType_QWidget); if (wo) sipTransferTo(wo, 0); } Py_BEGIN_ALLOW_THREADS sipCpp->setItemWidget(a0, a1, a2); Py_END_ALLOW_THREADS %End bool isItemSelected(const QTreeWidgetItem *item) const; void setItemSelected(const QTreeWidgetItem *item, bool select); QList selectedItems() const; QList findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const; bool isItemHidden(const QTreeWidgetItem *item) const; void setItemHidden(const QTreeWidgetItem *item, bool hide); bool isItemExpanded(const QTreeWidgetItem *item) const; void setItemExpanded(const QTreeWidgetItem *item, bool expand); public slots: void scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible); void expandItem(const QTreeWidgetItem *item); void collapseItem(const QTreeWidgetItem *item); void clear(); signals: void itemPressed(QTreeWidgetItem *item, int column); void itemClicked(QTreeWidgetItem *item, int column); void itemDoubleClicked(QTreeWidgetItem *item, int column); void itemActivated(QTreeWidgetItem *item, int column); void itemEntered(QTreeWidgetItem *item, int column); void itemChanged(QTreeWidgetItem *item, int column); void itemExpanded(QTreeWidgetItem *item); void itemCollapsed(QTreeWidgetItem *item); void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); void itemSelectionChanged(); protected: virtual QStringList mimeTypes() const; virtual QMimeData *mimeData(const QList items) const /TransferBack/; virtual bool dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action); virtual Qt::DropActions supportedDropActions() const; QList items(const QMimeData *data) const; QModelIndex indexFromItem(QTreeWidgetItem *item, int column = 0) const; QTreeWidgetItem *itemFromIndex(const QModelIndex &index) const; virtual bool event(QEvent *e); %If (Qt_4_2_0 -) virtual void dropEvent(QDropEvent *event); %End public: %If (Qt_4_2_0 -) QTreeWidgetItem *invisibleRootItem() const /Transfer/; %End %If (Qt_4_2_0 -) void setHeaderLabel(const QString &alabel); %End %If (Qt_4_3_0 -) bool isFirstItemColumnSpanned(const QTreeWidgetItem *item) const; %End %If (Qt_4_3_0 -) void setFirstItemColumnSpanned(const QTreeWidgetItem *item, bool span); %End %If (Qt_4_3_0 -) QTreeWidgetItem *itemAbove(const QTreeWidgetItem *item) const; %End %If (Qt_4_3_0 -) QTreeWidgetItem *itemBelow(const QTreeWidgetItem *item) const; %End %If (Qt_4_3_0 -) void removeItemWidget(QTreeWidgetItem *item, int column); %MethodCode // We have to break the association with any existing widget. QWidget *w = sipCpp->itemWidget(a0, a1); if (w) { PyObject *wo = sipGetPyObject(w, sipType_QWidget); if (wo) sipTransferTo(wo, 0); } Py_BEGIN_ALLOW_THREADS sipCpp->removeItemWidget(a0, a1); Py_END_ALLOW_THREADS %End %End %If (Qt_4_5_0 -) virtual void setSelectionModel(QItemSelectionModel *selectionModel /KeepReference/); %End private: virtual void setModel(QAbstractItemModel *model /KeepReference/); QTreeWidget(const QTreeWidget &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qtreewidgetitemiterator.sip0000644000076500000240000000445012536324426023274 0ustar philstaff00000000000000// qtreewidgetitemiterator.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QTreeWidgetItemIterator { %TypeHeaderCode #include %End public: enum IteratorFlag { All, Hidden, NotHidden, Selected, Unselected, Selectable, NotSelectable, DragEnabled, DragDisabled, DropEnabled, DropDisabled, HasChildren, NoChildren, Checked, NotChecked, Enabled, Disabled, Editable, NotEditable, UserFlag, }; typedef QFlags IteratorFlags; QTreeWidgetItemIterator(const QTreeWidgetItemIterator &it); QTreeWidgetItemIterator(QTreeWidget *widget, QFlags flags = All); QTreeWidgetItemIterator(QTreeWidgetItem *item, QFlags flags = All); ~QTreeWidgetItemIterator(); QTreeWidgetItem *value() const; %MethodCode // SIP doesn't support operator* so this is a thin wrapper around it. sipRes = sipCpp->operator*(); %End QTreeWidgetItemIterator &operator+=(int n); QTreeWidgetItemIterator &operator-=(int n); }; QFlags operator|(QTreeWidgetItemIterator::IteratorFlag f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtGui/qundogroup.sip0000644000076500000240000000420112536324426020514 0ustar philstaff00000000000000// qundogroup.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QUndoGroup : QObject { %TypeHeaderCode #include %End public: explicit QUndoGroup(QObject *parent /TransferThis/ = 0); %If (Qt_4_5_0 -) virtual ~QUndoGroup(); %End void addStack(QUndoStack *stack); void removeStack(QUndoStack *stack); QList stacks() const; QUndoStack *activeStack() const; QAction *createRedoAction(QObject *parent /TransferThis/, const QString &prefix /DocValue="Py_v3:''"/ = QString()) const /Factory/; QAction *createUndoAction(QObject *parent /TransferThis/, const QString &prefix /DocValue="Py_v3:''"/ = QString()) const /Factory/; bool canUndo() const; bool canRedo() const; QString undoText() const; QString redoText() const; bool isClean() const; public slots: void redo(); void setActiveStack(QUndoStack *stack); void undo(); signals: void activeStackChanged(QUndoStack *stack); void canRedoChanged(bool canRedo); void canUndoChanged(bool canUndo); void cleanChanged(bool clean); void indexChanged(int idx); void redoTextChanged(const QString &redoText); void undoTextChanged(const QString &undoText); private: QUndoGroup(const QUndoGroup &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qundostack.sip0000644000076500000240000000615212536324426020474 0ustar philstaff00000000000000// qundostack.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QUndoCommand /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: explicit QUndoCommand(QUndoCommand *parent /TransferThis/ = 0); QUndoCommand(const QString &text, QUndoCommand *parent /TransferThis/ = 0); virtual ~QUndoCommand(); virtual int id() const; virtual bool mergeWith(const QUndoCommand *other); virtual void redo(); void setText(const QString &text); QString text() const; virtual void undo(); %If (Qt_4_4_0 -) int childCount() const; %End %If (Qt_4_4_0 -) const QUndoCommand *child(int index) const; %End %If (Qt_4_8_0 -) QString actionText() const; %End private: QUndoCommand(const QUndoCommand &); }; %End %If (Qt_4_2_0 -) class QUndoStack : QObject { %TypeHeaderCode #include %End public: explicit QUndoStack(QObject *parent /TransferThis/ = 0); virtual ~QUndoStack(); void clear(); void push(QUndoCommand *cmd /Transfer/); bool canUndo() const; bool canRedo() const; QString undoText() const; QString redoText() const; int count() const /__len__/; int index() const; QString text(int idx) const; QAction *createUndoAction(QObject *parent /TransferThis/, const QString &prefix /DocValue="Py_v3:''"/ = QString()) const /Factory/; QAction *createRedoAction(QObject *parent /TransferThis/, const QString &prefix /DocValue="Py_v3:''"/ = QString()) const /Factory/; bool isActive() const; bool isClean() const; int cleanIndex() const; void beginMacro(const QString &text); void endMacro(); public slots: void redo(); void setActive(bool active = true); void setClean(); void setIndex(int idx); void undo(); signals: void canRedoChanged(bool canRedo); void canUndoChanged(bool canUndo); void cleanChanged(bool clean); void indexChanged(int idx); void redoTextChanged(const QString &redoText); void undoTextChanged(const QString &undoText); public: %If (Qt_4_3_0 -) void setUndoLimit(int limit); %End %If (Qt_4_3_0 -) int undoLimit() const; %End %If (Qt_4_4_0 -) const QUndoCommand *command(int index) const; %End private: QUndoStack(const QUndoStack &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qundoview.sip0000644000076500000240000000312112536324426020332 0ustar philstaff00000000000000// qundoview.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QUndoView : QListView { %TypeHeaderCode #include %End public: explicit QUndoView(QWidget *parent /TransferThis/ = 0); QUndoView(QUndoStack *stack, QWidget *parent /TransferThis/ = 0); QUndoView(QUndoGroup *group, QWidget *parent /TransferThis/ = 0); virtual ~QUndoView(); QUndoStack *stack() const; QUndoGroup *group() const; void setEmptyLabel(const QString &label); QString emptyLabel() const; void setCleanIcon(const QIcon &icon); QIcon cleanIcon() const; public slots: void setStack(QUndoStack *stack /KeepReference/); void setGroup(QUndoGroup *group /KeepReference/); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qvalidator.sip0000644000076500000240000001266112536324426020470 0ustar philstaff00000000000000// qvalidator.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QValidator : QObject { %TypeHeaderCode #include %End public: %If (- Qt_4_6_0) explicit QValidator(QObject *parent /TransferThis/); %End %If (Qt_4_6_0 -) explicit QValidator(QObject *parent /TransferThis/ = 0); %End virtual ~QValidator(); enum State { Invalid, Intermediate, Acceptable, }; virtual QValidator::State validate(QString & /In,Out/, int & /In,Out/) const = 0 /API=QString:2 - /; virtual QValidator::State validate(QString & /Constrained/, int & /In,Out/) const = 0 /API=QString: - 2/; virtual void fixup(QString &input /In,Out/) const /API=QString:2 - /; virtual void fixup(QString & /Constrained/) const /API=QString: - 2/; %If (Qt_4_3_0 -) void setLocale(const QLocale &locale); %End %If (Qt_4_3_0 -) QLocale locale() const; %End signals: %If (Qt_5_0_0 -) void changed(); %End private: QValidator(const QValidator &); }; class QIntValidator : QValidator { %TypeHeaderCode #include %End public: %If (- Qt_4_6_0) explicit QIntValidator(QObject *parent /TransferThis/); %End %If (Qt_4_6_0 -) explicit QIntValidator(QObject *parent /TransferThis/ = 0); %End %If (- Qt_4_8_0) QIntValidator(int bottom, int top, QObject *parent /TransferThis/); %End %If (Qt_4_8_0 -) QIntValidator(int bottom, int top, QObject *parent /TransferThis/ = 0); %End virtual ~QIntValidator(); virtual QValidator::State validate(QString & /In,Out/, int & /In,Out/) const /API=QString:2 - /; virtual QValidator::State validate(QString & /Constrained/, int & /In,Out/) const /API=QString: - 2/; %If (Qt_4_7_0 -) virtual void fixup(QString &input /In,Out/) const /API=QString:2 - /; %End %If (Qt_4_7_0 -) virtual void fixup(QString &input /Constrained/) const /API=QString: - 2/; %End void setBottom(int); void setTop(int); virtual void setRange(int bottom, int top); int bottom() const; int top() const; %If (Qt_5_0_0 -) void bottomChanged(int bottom); %End %If (Qt_5_0_0 -) void topChanged(int top); %End private: QIntValidator(const QIntValidator &); }; class QDoubleValidator : QValidator { %TypeHeaderCode #include %End public: %If (- Qt_4_7_0) explicit QDoubleValidator(QObject *parent /TransferThis/); %End %If (Qt_4_7_0 -) explicit QDoubleValidator(QObject *parent /TransferThis/ = 0); %End %If (- Qt_4_8_0) QDoubleValidator(double bottom, double top, int decimals, QObject *parent /TransferThis/); %End %If (Qt_4_8_0 -) QDoubleValidator(double bottom, double top, int decimals, QObject *parent /TransferThis/ = 0); %End virtual ~QDoubleValidator(); virtual QValidator::State validate(QString & /In,Out/, int & /In,Out/) const /API=QString:2 - /; virtual QValidator::State validate(QString & /Constrained/, int & /In,Out/) const /API=QString: - 2/; virtual void setRange(double minimum, double maximum, int decimals = 0); void setBottom(double); void setTop(double); void setDecimals(int); double bottom() const; double top() const; int decimals() const; %If (Qt_4_3_0 -) enum Notation { StandardNotation, ScientificNotation, }; %End %If (Qt_4_3_0 -) void setNotation(QDoubleValidator::Notation); %End %If (Qt_4_3_0 -) QDoubleValidator::Notation notation() const; %End %If (Qt_5_0_0 -) void bottomChanged(double bottom); %End %If (Qt_5_0_0 -) void topChanged(double top); %End %If (Qt_5_0_0 -) void decimalsChanged(int decimals); %End %If (Qt_5_0_0 -) void notationChanged(QDoubleValidator::Notation notation); %End private: QDoubleValidator(const QDoubleValidator &); }; class QRegExpValidator : QValidator { %TypeHeaderCode #include %End public: %If (- Qt_4_7_0) explicit QRegExpValidator(QObject *parent /TransferThis/); %End %If (Qt_4_7_0 -) explicit QRegExpValidator(QObject *parent /TransferThis/ = 0); %End %If (- Qt_4_8_0) QRegExpValidator(const QRegExp &rx, QObject *parent /TransferThis/); %End %If (Qt_4_8_0 -) QRegExpValidator(const QRegExp &rx, QObject *parent /TransferThis/ = 0); %End virtual ~QRegExpValidator(); virtual QValidator::State validate(QString &input /In,Out/, int &pos /In,Out/) const /API=QString:2 - /; virtual QValidator::State validate(QString &input /Constrained/, int &pos /In,Out/) const /API=QString: - 2/; void setRegExp(const QRegExp &rx); const QRegExp ®Exp() const; %If (Qt_5_0_0 -) void regExpChanged(const QRegExp ®Exp); %End private: QRegExpValidator(const QRegExpValidator &); }; PyQt-x11-gpl-4.11.4/sip/QtGui/qvector2d.sip0000644000076500000240000001161212536324426020226 0ustar philstaff00000000000000// qvector2d.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) class QVector2D { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"dd", (double)sipCpp->x(), (double)sipCpp->y()); %End public: QVector2D(); %If (Qt_5_0_0 -) QVector2D(float xpos, float ypos); %End %If (- Qt_5_0_0) QVector2D(qreal xpos, qreal ypos); %End explicit QVector2D(const QPoint &point); explicit QVector2D(const QPointF &point); explicit QVector2D(const QVector3D &vector); explicit QVector2D(const QVector4D &vector); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *x = PyFloat_FromDouble(sipCpp->x()); PyObject *y = PyFloat_FromDouble(sipCpp->y()); if (x && y) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QVector2D(%R, %R)", x, y); #else sipRes = PyString_FromString("PyQt4.QtGui.QVector2D("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(x)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(y)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } Py_XDECREF(x); Py_XDECREF(y); %End %If (Qt_5_0_0 -) float length() const; %End %If (- Qt_5_0_0) qreal length() const; %End %If (Qt_5_0_0 -) float lengthSquared() const; %End %If (- Qt_5_0_0) qreal lengthSquared() const; %End QVector2D normalized() const; void normalize(); %If (Qt_5_0_0 -) static float dotProduct(const QVector2D &v1, const QVector2D &v2); %End %If (- Qt_5_0_0) static qreal dotProduct(const QVector2D &v1, const QVector2D &v2); %End QVector3D toVector3D() const; QVector4D toVector4D() const; bool isNull() const; %If (Qt_5_0_0 -) float x() const; %End %If (- Qt_5_0_0) qreal x() const; %End %If (Qt_5_0_0 -) float y() const; %End %If (- Qt_5_0_0) qreal y() const; %End %If (Qt_5_0_0 -) void setX(float aX); %End %If (- Qt_5_0_0) void setX(qreal aX); %End %If (Qt_5_0_0 -) void setY(float aY); %End %If (- Qt_5_0_0) void setY(qreal aY); %End QVector2D &operator+=(const QVector2D &vector); QVector2D &operator-=(const QVector2D &vector); %If (Qt_5_0_0 -) QVector2D &operator*=(float factor); %End %If (- Qt_5_0_0) QVector2D &operator*=(qreal factor); %End QVector2D &operator*=(const QVector2D &vector); %If (Qt_5_0_0 -) QVector2D &operator/=(float divisor); %End %If (- Qt_5_0_0) QVector2D &operator/=(qreal divisor); %End QPoint toPoint() const; QPointF toPointF() const; }; %End %If (Qt_4_6_0 -) bool operator==(const QVector2D &v1, const QVector2D &v2); %End %If (Qt_4_6_0 -) bool operator!=(const QVector2D &v1, const QVector2D &v2); %End %If (Qt_4_6_0 -) const QVector2D operator+(const QVector2D &v1, const QVector2D &v2); %End %If (Qt_4_6_0 -) const QVector2D operator-(const QVector2D &v1, const QVector2D &v2); %End %If (Qt_5_0_0 -) const QVector2D operator*(float factor, const QVector2D &vector); %End %If (Qt_4_6_0 - Qt_5_0_0) const QVector2D operator*(qreal factor, const QVector2D &vector); %End %If (Qt_5_0_0 -) const QVector2D operator*(const QVector2D &vector, float factor); %End %If (Qt_4_6_0 - Qt_5_0_0) const QVector2D operator*(const QVector2D &vector, qreal factor); %End %If (Qt_4_6_0 -) const QVector2D operator*(const QVector2D &v1, const QVector2D &v2); %End %If (Qt_4_6_0 -) const QVector2D operator-(const QVector2D &vector); %End %If (Qt_5_0_0 -) const QVector2D operator/(const QVector2D &vector, float divisor); %End %If (Qt_4_6_0 - Qt_5_0_0) const QVector2D operator/(const QVector2D &vector, qreal divisor); %End %If (Qt_4_6_0 -) bool qFuzzyCompare(const QVector2D &v1, const QVector2D &v2); %End %If (Qt_4_6_0 -) QDataStream &operator<<(QDataStream &, const QVector2D & /Constrained/); %End %If (Qt_4_6_0 -) QDataStream &operator>>(QDataStream &, QVector2D & /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qvector3d.sip0000644000076500000240000001461612536324426020236 0ustar philstaff00000000000000// qvector3d.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) class QVector3D { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"ddd", (double)sipCpp->x(), (double)sipCpp->y(), (double)sipCpp->z()); %End public: QVector3D(); %If (Qt_5_0_0 -) QVector3D(float xpos, float ypos, float zpos); %End %If (- Qt_5_0_0) QVector3D(qreal xpos, qreal ypos, qreal zpos); %End explicit QVector3D(const QPoint &point); explicit QVector3D(const QPointF &point); QVector3D(const QVector2D &vector); %If (Qt_5_0_0 -) QVector3D(const QVector2D &vector, float zpos); %End %If (- Qt_5_0_0) QVector3D(const QVector2D &vector, qreal zpos); %End explicit QVector3D(const QVector4D &vector); SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *x = PyFloat_FromDouble(sipCpp->x()); PyObject *y = PyFloat_FromDouble(sipCpp->y()); PyObject *z = PyFloat_FromDouble(sipCpp->z()); if (x && y && z) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QVector3D(%R, %R, %R)", x, y, z); #else sipRes = PyString_FromString("PyQt4.QtGui.QVector3D("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(x)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(y)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(z)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } Py_XDECREF(x); Py_XDECREF(y); Py_XDECREF(z); %End %If (Qt_5_0_0 -) float length() const; %End %If (- Qt_5_0_0) qreal length() const; %End %If (Qt_5_0_0 -) float lengthSquared() const; %End %If (- Qt_5_0_0) qreal lengthSquared() const; %End QVector3D normalized() const; void normalize(); %If (Qt_5_0_0 -) static float dotProduct(const QVector3D &v1, const QVector3D &v2); %End %If (- Qt_5_0_0) static qreal dotProduct(const QVector3D &v1, const QVector3D &v2); %End static QVector3D crossProduct(const QVector3D &v1, const QVector3D &v2); static QVector3D normal(const QVector3D &v1, const QVector3D &v2); static QVector3D normal(const QVector3D &v1, const QVector3D &v2, const QVector3D &v3); %If (Qt_5_0_0 -) float distanceToPlane(const QVector3D &plane, const QVector3D &normal) const; %End %If (- Qt_5_0_0) qreal distanceToPlane(const QVector3D &plane, const QVector3D &normal) const; %End %If (Qt_5_0_0 -) float distanceToPlane(const QVector3D &plane1, const QVector3D &plane2, const QVector3D &plane3) const; %End %If (- Qt_5_0_0) qreal distanceToPlane(const QVector3D &plane1, const QVector3D &plane2, const QVector3D &plane3) const; %End %If (Qt_5_0_0 -) float distanceToLine(const QVector3D &point, const QVector3D &direction) const; %End %If (- Qt_5_0_0) qreal distanceToLine(const QVector3D &point, const QVector3D &direction) const; %End QVector2D toVector2D() const; QVector4D toVector4D() const; bool isNull() const; %If (Qt_5_0_0 -) float x() const; %End %If (- Qt_5_0_0) qreal x() const; %End %If (Qt_5_0_0 -) float y() const; %End %If (- Qt_5_0_0) qreal y() const; %End %If (Qt_5_0_0 -) float z() const; %End %If (- Qt_5_0_0) qreal z() const; %End %If (Qt_5_0_0 -) void setX(float aX); %End %If (- Qt_5_0_0) void setX(qreal aX); %End %If (Qt_5_0_0 -) void setY(float aY); %End %If (- Qt_5_0_0) void setY(qreal aY); %End %If (Qt_5_0_0 -) void setZ(float aZ); %End %If (- Qt_5_0_0) void setZ(qreal aZ); %End QVector3D &operator+=(const QVector3D &vector); QVector3D &operator-=(const QVector3D &vector); %If (Qt_5_0_0 -) QVector3D &operator*=(float factor); %End %If (- Qt_5_0_0) QVector3D &operator*=(qreal factor); %End QVector3D &operator*=(const QVector3D &vector); %If (Qt_5_0_0 -) QVector3D &operator/=(float divisor); %End %If (- Qt_5_0_0) QVector3D &operator/=(qreal divisor); %End QPoint toPoint() const; QPointF toPointF() const; }; %End %If (Qt_4_6_0 -) bool operator==(const QVector3D &v1, const QVector3D &v2); %End %If (Qt_4_6_0 -) bool operator!=(const QVector3D &v1, const QVector3D &v2); %End %If (Qt_4_6_0 -) const QVector3D operator+(const QVector3D &v1, const QVector3D &v2); %End %If (Qt_4_6_0 -) const QVector3D operator-(const QVector3D &v1, const QVector3D &v2); %End %If (Qt_5_0_0 -) const QVector3D operator*(float factor, const QVector3D &vector); %End %If (Qt_4_6_0 - Qt_5_0_0) const QVector3D operator*(qreal factor, const QVector3D &vector); %End %If (Qt_5_0_0 -) const QVector3D operator*(const QVector3D &vector, float factor); %End %If (Qt_4_6_0 - Qt_5_0_0) const QVector3D operator*(const QVector3D &vector, qreal factor); %End %If (Qt_4_6_0 -) const QVector3D operator*(const QVector3D &v1, const QVector3D &v2); %End %If (Qt_4_6_0 -) const QVector3D operator-(const QVector3D &vector); %End %If (Qt_5_0_0 -) const QVector3D operator/(const QVector3D &vector, float divisor); %End %If (Qt_4_6_0 - Qt_5_0_0) const QVector3D operator/(const QVector3D &vector, qreal divisor); %End %If (Qt_4_6_0 -) bool qFuzzyCompare(const QVector3D &v1, const QVector3D &v2); %End %If (Qt_4_6_0 -) QDataStream &operator<<(QDataStream &, const QVector3D & /Constrained/); %End %If (Qt_4_6_0 -) QDataStream &operator>>(QDataStream &, QVector3D & /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qvector4d.sip0000644000076500000240000001425212536324426020233 0ustar philstaff00000000000000// qvector4d.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) class QVector4D { %TypeHeaderCode #include %End %PickleCode sipRes = Py_BuildValue((char *)"dddd", (double)sipCpp->x(), (double)sipCpp->y(), (double)sipCpp->z(), (double)sipCpp->w()); %End public: QVector4D(); %If (Qt_5_0_0 -) QVector4D(float xpos, float ypos, float zpos, float wpos); %End %If (- Qt_5_0_0) QVector4D(qreal xpos, qreal ypos, qreal zpos, qreal wpos); %End explicit QVector4D(const QPoint &point); explicit QVector4D(const QPointF &point); QVector4D(const QVector2D &vector); %If (Qt_5_0_0 -) QVector4D(const QVector2D &vector, float zpos, float wpos); %End %If (- Qt_5_0_0) QVector4D(const QVector2D &vector, qreal zpos, qreal wpos); %End QVector4D(const QVector3D &vector); %If (Qt_5_0_0 -) QVector4D(const QVector3D &vector, float wpos); %End %If (- Qt_5_0_0) QVector4D(const QVector3D &vector, qreal wpos); %End SIP_PYOBJECT __repr__() const /DocType="str"/; %MethodCode PyObject *x = PyFloat_FromDouble(sipCpp->x()); PyObject *y = PyFloat_FromDouble(sipCpp->y()); PyObject *z = PyFloat_FromDouble(sipCpp->z()); PyObject *w = PyFloat_FromDouble(sipCpp->w()); if (x && y && z && w) { #if PY_MAJOR_VERSION >= 3 sipRes = PyUnicode_FromFormat("PyQt4.QtGui.QVector4D(%R, %R, %R, %R)", x, y, z, w); #else sipRes = PyString_FromString("PyQt4.QtGui.QVector4D("); PyString_ConcatAndDel(&sipRes, PyObject_Repr(x)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(y)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(z)); PyString_ConcatAndDel(&sipRes, PyString_FromString(", ")); PyString_ConcatAndDel(&sipRes, PyObject_Repr(w)); PyString_ConcatAndDel(&sipRes, PyString_FromString(")")); #endif } Py_XDECREF(x); Py_XDECREF(y); Py_XDECREF(z); Py_XDECREF(w); %End %If (Qt_5_0_0 -) float length() const; %End %If (- Qt_5_0_0) qreal length() const; %End %If (Qt_5_0_0 -) float lengthSquared() const; %End %If (- Qt_5_0_0) qreal lengthSquared() const; %End QVector4D normalized() const; void normalize(); %If (Qt_5_0_0 -) static float dotProduct(const QVector4D &v1, const QVector4D &v2); %End %If (- Qt_5_0_0) static qreal dotProduct(const QVector4D &v1, const QVector4D &v2); %End QVector2D toVector2D() const; QVector2D toVector2DAffine() const; QVector3D toVector3D() const; QVector3D toVector3DAffine() const; bool isNull() const; %If (Qt_5_0_0 -) float x() const; %End %If (- Qt_5_0_0) qreal x() const; %End %If (Qt_5_0_0 -) float y() const; %End %If (- Qt_5_0_0) qreal y() const; %End %If (Qt_5_0_0 -) float z() const; %End %If (- Qt_5_0_0) qreal z() const; %End %If (Qt_5_0_0 -) float w() const; %End %If (- Qt_5_0_0) qreal w() const; %End %If (Qt_5_0_0 -) void setX(float aX); %End %If (- Qt_5_0_0) void setX(qreal aX); %End %If (Qt_5_0_0 -) void setY(float aY); %End %If (- Qt_5_0_0) void setY(qreal aY); %End %If (Qt_5_0_0 -) void setZ(float aZ); %End %If (- Qt_5_0_0) void setZ(qreal aZ); %End %If (Qt_5_0_0 -) void setW(float aW); %End %If (- Qt_5_0_0) void setW(qreal aW); %End QVector4D &operator+=(const QVector4D &vector); QVector4D &operator-=(const QVector4D &vector); %If (Qt_5_0_0 -) QVector4D &operator*=(float factor); %End %If (- Qt_5_0_0) QVector4D &operator*=(qreal factor); %End QVector4D &operator*=(const QVector4D &vector); %If (Qt_5_0_0 -) QVector4D &operator/=(float divisor); %End %If (- Qt_5_0_0) QVector4D &operator/=(qreal divisor); %End QPoint toPoint() const; QPointF toPointF() const; }; %End %If (Qt_4_6_0 -) bool operator==(const QVector4D &v1, const QVector4D &v2); %End %If (Qt_4_6_0 -) bool operator!=(const QVector4D &v1, const QVector4D &v2); %End %If (Qt_4_6_0 -) const QVector4D operator+(const QVector4D &v1, const QVector4D &v2); %End %If (Qt_4_6_0 -) const QVector4D operator-(const QVector4D &v1, const QVector4D &v2); %End %If (Qt_5_0_0 -) const QVector4D operator*(float factor, const QVector4D &vector); %End %If (Qt_4_6_0 - Qt_5_0_0) const QVector4D operator*(qreal factor, const QVector4D &vector); %End %If (Qt_5_0_0 -) const QVector4D operator*(const QVector4D &vector, float factor); %End %If (Qt_4_6_0 - Qt_5_0_0) const QVector4D operator*(const QVector4D &vector, qreal factor); %End %If (Qt_4_6_0 -) const QVector4D operator*(const QVector4D &v1, const QVector4D &v2); %End %If (Qt_4_6_0 -) const QVector4D operator-(const QVector4D &vector); %End %If (Qt_5_0_0 -) const QVector4D operator/(const QVector4D &vector, float divisor); %End %If (Qt_4_6_0 - Qt_5_0_0) const QVector4D operator/(const QVector4D &vector, qreal divisor); %End %If (Qt_4_6_0 -) bool qFuzzyCompare(const QVector4D &v1, const QVector4D &v2); %End %If (Qt_4_6_0 -) QDataStream &operator<<(QDataStream &, const QVector4D & /Constrained/); %End %If (Qt_4_6_0 -) QDataStream &operator>>(QDataStream &, QVector4D & /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qwhatsthis.sip0000644000076500000240000000254112536324426020515 0ustar philstaff00000000000000// qwhatsthis.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (PyQt_WhatsThis) class QWhatsThis { %TypeHeaderCode #include %End QWhatsThis(); public: static void enterWhatsThisMode(); static bool inWhatsThisMode(); static void leaveWhatsThisMode(); static void showText(const QPoint &pos, const QString &text, QWidget *widget = 0); static void hideText(); static QAction *createAction(QObject *parent /TransferThis/ = 0) /Factory/; }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qwidget.sip0000644000076500000240000004052612536324426017767 0ustar philstaff00000000000000// qwidget.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End const int QWIDGETSIZE_MAX; class QWidget : QObject, QPaintDevice { %TypeHeaderCode #include %End %TypeCode // Transfer the ownership of a single widget to a parent. static void qtgui_TransferWidget(QWidget *w, PyObject *py_parent) { PyObject *py_w = sipGetPyObject(w, sipType_QWidget); if (py_w) sipTransferTo(py_w, py_parent); } // Transfer ownership of all widgets in a layout to their new parent. static void qtgui_TransferLayoutWidgets(QLayout *lay, PyObject *pw) { int n = lay->count(); for (int i = 0; i < n; ++i) { QLayoutItem *item = lay->itemAt(i); QWidget *w = item->widget(); if (w) { qtgui_TransferWidget(w, pw); } else { QLayout *l = item->layout(); if (l) qtgui_TransferLayoutWidgets(l, pw); } } QWidget *mb = lay->menuBar(); if (mb) qtgui_TransferWidget(mb, pw); } %End public: %If (Qt_4_2_0 -) QWidget(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QWidget(QWidget *parent /TransferThis/ = 0, Qt::WFlags flags = 0); %End virtual ~QWidget(); virtual int devType() const; QStyle *style() const; void setStyle(QStyle * /KeepReference/); %If (Qt_5_0_0 -) bool isEnabledTo(const QWidget *) const; %End %If (- Qt_5_0_0) bool isEnabledTo(QWidget *) const; %End public slots: void setEnabled(bool); void setDisabled(bool); void setWindowModified(bool); public: QRect frameGeometry() const; QRect normalGeometry() const; int x() const; int y() const; QPoint pos() const; QSize frameSize() const; QRect childrenRect() const; QRegion childrenRegion() const; QSize minimumSize() const; QSize maximumSize() const; void setMinimumSize(int minw, int minh); void setMaximumSize(int maxw, int maxh); void setMinimumWidth(int minw); void setMinimumHeight(int minh); void setMaximumWidth(int maxw); void setMaximumHeight(int maxh); QSize sizeIncrement() const; void setSizeIncrement(int w, int h); QSize baseSize() const; void setBaseSize(int basew, int baseh); void setFixedSize(const QSize &); void setFixedSize(int w, int h); void setFixedWidth(int w); void setFixedHeight(int h); QPoint mapToGlobal(const QPoint &) const; QPoint mapFromGlobal(const QPoint &) const; QPoint mapToParent(const QPoint &) const; QPoint mapFromParent(const QPoint &) const; %If (Qt_5_0_0 -) QPoint mapTo(const QWidget *, const QPoint &) const; %End %If (- Qt_5_0_0) QPoint mapTo(QWidget *, const QPoint &) const; %End %If (Qt_5_0_0 -) QPoint mapFrom(const QWidget *, const QPoint &) const; %End %If (- Qt_5_0_0) QPoint mapFrom(QWidget *, const QPoint &) const; %End QWidget *window() const; QWidget *topLevelWidget() const; const QPalette &palette() const; void setPalette(const QPalette &); void setBackgroundRole(QPalette::ColorRole); QPalette::ColorRole backgroundRole() const; void setForegroundRole(QPalette::ColorRole); QPalette::ColorRole foregroundRole() const; void setFont(const QFont &); QCursor cursor() const; void setCursor(const QCursor &); void unsetCursor(); void setMask(const QBitmap &); void setMask(const QRegion &); QRegion mask() const; void clearMask(); void setWindowTitle(const QString &); QString windowTitle() const; void setWindowIcon(const QIcon &icon); QIcon windowIcon() const; void setWindowIconText(const QString &); QString windowIconText() const; void setWindowRole(const QString &); QString windowRole() const; void setWindowOpacity(qreal level); qreal windowOpacity() const; bool isWindowModified() const; %If (PyQt_ToolTip) void setToolTip(const QString &); %End %If (PyQt_ToolTip) QString toolTip() const; %End %If (PyQt_StatusTip) void setStatusTip(const QString &); %End %If (PyQt_StatusTip) QString statusTip() const; %End %If (PyQt_WhatsThis) void setWhatsThis(const QString &); %End %If (PyQt_WhatsThis) QString whatsThis() const; %End %If (PyQt_Accessibility) QString accessibleName() const; %End %If (PyQt_Accessibility) void setAccessibleName(const QString &name); %End %If (PyQt_Accessibility) QString accessibleDescription() const; %End %If (PyQt_Accessibility) void setAccessibleDescription(const QString &description); %End void setLayoutDirection(Qt::LayoutDirection direction); Qt::LayoutDirection layoutDirection() const; void unsetLayoutDirection(); bool isRightToLeft() const; bool isLeftToRight() const; public slots: void setFocus(); public: bool isActiveWindow() const; void activateWindow(); void clearFocus(); void setFocus(Qt::FocusReason reason); Qt::FocusPolicy focusPolicy() const; void setFocusPolicy(Qt::FocusPolicy policy); bool hasFocus() const; static void setTabOrder(QWidget *, QWidget *); void setFocusProxy(QWidget * /KeepReference/); QWidget *focusProxy() const; Qt::ContextMenuPolicy contextMenuPolicy() const; void setContextMenuPolicy(Qt::ContextMenuPolicy policy); void grabMouse(); void grabMouse(const QCursor &); void releaseMouse(); void grabKeyboard(); void releaseKeyboard(); int grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut); void releaseShortcut(int id); void setShortcutEnabled(int id, bool enabled = true); static QWidget *mouseGrabber(); static QWidget *keyboardGrabber(); void setUpdatesEnabled(bool enable); public slots: void update(); void repaint(); public: void update(const QRect &); void update(const QRegion &); void repaint(int x, int y, int w, int h); void repaint(const QRect &); void repaint(const QRegion &); public slots: virtual void setVisible(bool visible); void setHidden(bool hidden); void show(); void hide(); %If (- Qt_5_0_0) void setShown(bool shown); %End void showMinimized(); void showMaximized(); void showFullScreen(); void showNormal(); bool close(); void raise() /PyName=raise_/; void lower(); public: void stackUnder(QWidget *); void move(const QPoint &); void resize(const QSize &); void setGeometry(const QRect &); void adjustSize(); %If (Qt_5_0_0 -) bool isVisibleTo(const QWidget *) const; %End %If (- Qt_5_0_0) bool isVisibleTo(QWidget *) const; %End bool isMinimized() const; bool isMaximized() const; bool isFullScreen() const; Qt::WindowStates windowState() const; void setWindowState(Qt::WindowStates state); void overrideWindowState(Qt::WindowStates state); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; QSizePolicy sizePolicy() const; void setSizePolicy(QSizePolicy); virtual int heightForWidth(int) const; QRegion visibleRegion() const; void setContentsMargins(int left, int top, int right, int bottom); void getContentsMargins(int *left, int *top, int *right, int *bottom) const; QRect contentsRect() const; QLayout *layout() const; void setLayout(QLayout * /Transfer/); %MethodCode Py_BEGIN_ALLOW_THREADS sipCpp->setLayout(a0); Py_END_ALLOW_THREADS // Internally Qt has reparented all of the widgets in the layout, so we need // to update the ownership hierachy. qtgui_TransferLayoutWidgets(a0, sipSelf); %End void updateGeometry(); void setParent(QWidget *parent /TransferThis/); %If (Qt_4_2_0 -) void setParent(QWidget *parent /TransferThis/, Qt::WindowFlags f); %End %If (- Qt_4_2_0) void setParent(QWidget *parent /TransferThis/, Qt::WFlags f); %End void scroll(int dx, int dy); void scroll(int dx, int dy, const QRect &); QWidget *focusWidget() const; QWidget *nextInFocusChain() const; bool acceptDrops() const; void setAcceptDrops(bool on); void addAction(QAction *action); void addActions(QList actions); void insertAction(QAction *before, QAction *action); void insertActions(QAction *before, QList actions); void removeAction(QAction *action); QList actions() const; void setWindowFlags(Qt::WindowFlags type); void overrideWindowFlags(Qt::WindowFlags type); static QWidget *find(WId); QWidget *childAt(const QPoint &p) const; %If (- Qt_5_0_0) %If (WS_X11) const QX11Info &x11Info() const; %End %End %If (- Qt_5_0_0) %If (WS_X11) Qt::HANDLE x11PictureHandle() const; %End %End %If (- Qt_5_0_0) %If (WS_X11 || WS_MACX) Qt::HANDLE handle() const; %End %End void setAttribute(Qt::WidgetAttribute attribute, bool on = true); virtual QPaintEngine *paintEngine() const; void ensurePolished() const; %If (- Qt_5_0_0) QInputContext *inputContext(); %End %If (- Qt_5_0_0) void setInputContext(QInputContext * /Transfer/); %End bool isAncestorOf(const QWidget *child) const; signals: void customContextMenuRequested(const QPoint &pos); protected: virtual bool event(QEvent *); virtual void mousePressEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void mouseDoubleClickEvent(QMouseEvent *); virtual void mouseMoveEvent(QMouseEvent *); virtual void wheelEvent(QWheelEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void keyReleaseEvent(QKeyEvent *); virtual void focusInEvent(QFocusEvent *); virtual void focusOutEvent(QFocusEvent *); virtual void enterEvent(QEvent *); virtual void leaveEvent(QEvent *); virtual void paintEvent(QPaintEvent *); virtual void moveEvent(QMoveEvent *); virtual void resizeEvent(QResizeEvent *); virtual void closeEvent(QCloseEvent *); virtual void contextMenuEvent(QContextMenuEvent *); virtual void tabletEvent(QTabletEvent *); virtual void actionEvent(QActionEvent *); virtual void dragEnterEvent(QDragEnterEvent *); virtual void dragMoveEvent(QDragMoveEvent *); virtual void dragLeaveEvent(QDragLeaveEvent *); virtual void dropEvent(QDropEvent *); virtual void showEvent(QShowEvent *); virtual void hideEvent(QHideEvent *); %If (- Qt_5_0_0) %If (WS_WIN) virtual bool winEvent(MSG *message, long *result); %End %End virtual void changeEvent(QEvent *); virtual int metric(QPaintDevice::PaintDeviceMetric) const; virtual void inputMethodEvent(QInputMethodEvent *); public: virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const; protected: %If (- Qt_5_0_0) void resetInputContext(); %End void updateMicroFocus(); void create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true); void destroy(bool destroyWindow = true, bool destroySubWindows = true); virtual bool focusNextPrevChild(bool next); bool focusNextChild(); bool focusPreviousChild(); %If (- Qt_5_0_0) virtual void enabledChange(bool); %End %If (- Qt_5_0_0) virtual void paletteChange(const QPalette &); %End %If (- Qt_5_0_0) virtual void fontChange(const QFont &); %End %If (- Qt_5_0_0) virtual void windowActivationChange(bool); %End %If (- Qt_5_0_0) virtual void languageChange(); %End public: QWidget *childAt(int ax, int ay) const; Qt::WindowType windowType() const; Qt::WindowFlags windowFlags() const; WId winId() const; bool isTopLevel() const; bool isWindow() const; bool isEnabled() const; bool isModal() const; bool isEnabledToTLW() const; int minimumWidth() const; int minimumHeight() const; int maximumWidth() const; int maximumHeight() const; void setMinimumSize(const QSize &s); void setMaximumSize(const QSize &s); void setSizeIncrement(const QSize &s); void setBaseSize(const QSize &s); const QFont &font() const; QFontMetrics fontMetrics() const; QFontInfo fontInfo() const; void setMouseTracking(bool enable); bool hasMouseTracking() const; bool underMouse() const; bool updatesEnabled() const; void update(int ax, int ay, int aw, int ah); bool isVisible() const; bool isHidden() const; void move(int ax, int ay); void resize(int w, int h); void setGeometry(int ax, int ay, int aw, int ah); QRect rect() const; const QRect &geometry() const; QSize size() const; int width() const; int height() const; QWidget *parentWidget() const; void setSizePolicy(QSizePolicy::Policy hor, QSizePolicy::Policy ver); bool testAttribute(Qt::WidgetAttribute attribute) const; Qt::WindowModality windowModality() const; void setWindowModality(Qt::WindowModality windowModality); bool autoFillBackground() const; void setAutoFillBackground(bool enabled); %If (Qt_4_2_0 -) void setStyleSheet(const QString &styleSheet); %End %If (Qt_4_2_0 -) QString styleSheet() const; %End %If (Qt_4_2_0 -) void setShortcutAutoRepeat(int id, bool enabled = true); %End %If (Qt_4_2_0 -) QByteArray saveGeometry() const; %End %If (Qt_4_2_0 -) bool restoreGeometry(const QByteArray &geometry); %End %If (Qt_4_3_0 -) enum RenderFlag { DrawWindowBackground, DrawChildren, IgnoreMask, }; %End %If (Qt_4_3_0 -) typedef QFlags RenderFlags; %End %If (Qt_4_4_0 -) void render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QFlags flags = QWidget::DrawWindowBackground|QWidget::DrawChildren); %End %If (Qt_4_4_0 -) void render(QPainter *painter, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QFlags flags = QWidget::DrawWindowBackground|QWidget::DrawChildren); %End %If (Qt_4_3_0 -) void setLocale(const QLocale &locale); %End %If (Qt_4_3_0 -) QLocale locale() const; %End %If (Qt_4_3_0 -) void unsetLocale(); %End %If (Qt_4_4_0 -) WId effectiveWinId() const; %End %If (Qt_4_4_0 -) QWidget *nativeParentWidget() const; %End %If (Qt_4_4_0 -) void setWindowFilePath(const QString &filePath); %End %If (Qt_4_4_0 -) QString windowFilePath() const; %End %If (Qt_4_5_0 -) QGraphicsProxyWidget *graphicsProxyWidget() const; %End %If (Qt_4_6_0 -) QGraphicsEffect *graphicsEffect() const; %End %If (Qt_4_6_0 -) void setGraphicsEffect(QGraphicsEffect *effect /Transfer/); %End %If (Qt_4_6_0 -) void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags(0)); %End %If (Qt_4_6_0 -) void ungrabGesture(Qt::GestureType type); %End %If (Qt_4_6_0 -) void setContentsMargins(const QMargins &margins); %End %If (Qt_4_6_0 -) QMargins contentsMargins() const; %End %If (Qt_4_6_0 -) QWidget *previousInFocusChain() const; %End %If (Qt_4_6_0 -) Qt::InputMethodHints inputMethodHints() const; %End %If (Qt_4_6_0 -) void setInputMethodHints(Qt::InputMethodHints hints); %End %If (Qt_5_0_0 -) virtual bool hasHeightForWidth() const; %End %If (Qt_5_0_0 -) QPixmap grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1))); %End protected: %If (Qt_5_0_0 -) virtual bool nativeEvent(const QByteArray &eventType, void *message, long *result); %End %If (Qt_5_0_0 -) virtual QPaintDevice *redirected(QPoint *offset) const; %End %If (Qt_5_0_0 -) virtual QPainter *sharedPainter() const; %End %If (Qt_5_0_0 -) virtual void initPainter(QPainter *painter) const; %End private: QWidget(const QWidget &); }; %If (Qt_4_3_0 -) QFlags operator|(QWidget::RenderFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtGui/qwidgetaction.sip0000644000076500000240000000327012536324426021160 0ustar philstaff00000000000000// qwidgetaction.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) class QWidgetAction : QAction { %TypeHeaderCode #include %End public: explicit QWidgetAction(QObject *parent /TransferThis/); virtual ~QWidgetAction(); void setDefaultWidget(QWidget *w /Transfer/); QWidget *defaultWidget() const; QWidget *requestWidget(QWidget *parent /TransferThis/) /Factory/; void releaseWidget(QWidget *widget /TransferBack/); protected: virtual bool event(QEvent *); %If (Qt_4_4_0 -) virtual bool eventFilter(QObject *, QEvent *); %End virtual QWidget *createWidget(QWidget *parent /TransferThis/) /Factory/; virtual void deleteWidget(QWidget *widget /Transfer/); QList createdWidgets() const; private: QWidgetAction(const QWidgetAction &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qwindowdefs.sip0000644000076500000240000000257612536324426020660 0ustar philstaff00000000000000// qwindowdefs.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. typedef QList QWidgetList; %If (- Qt_5_0_0) %If (WS_X11) // X11 specific definitions. typedef unsigned long WId; %End %End %If (- Qt_5_0_0) %If (WS_WIN) // Windows specific definitions. typedef struct HFONT__ *HFONT; typedef struct HBITMAP__ *HBITMAP; typedef struct HICON__ *HICON; typedef HWND WId; %End %End %If (- Qt_5_0_0) %If (WS_MACX) // MacOS/X specific definitions. typedef long WId; %End %End %If (Qt_5_0_0 -) typedef quintptr WId; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qwizard.sip0000644000076500000240000002144412536324426020002 0ustar philstaff00000000000000// qwizard.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %ModuleCode #include %End %End %If (Qt_4_3_0 -) class QWizard : QDialog { %TypeHeaderCode #include %End public: enum WizardButton { BackButton, NextButton, CommitButton, FinishButton, CancelButton, HelpButton, CustomButton1, CustomButton2, CustomButton3, Stretch, }; enum WizardPixmap { WatermarkPixmap, LogoPixmap, BannerPixmap, BackgroundPixmap, }; enum WizardStyle { ClassicStyle, ModernStyle, MacStyle, AeroStyle, }; enum WizardOption { IndependentPages, IgnoreSubTitles, ExtendedWatermarkPixmap, NoDefaultButton, NoBackButtonOnStartPage, NoBackButtonOnLastPage, DisabledBackButtonOnLastPage, HaveNextButtonOnLastPage, HaveFinishButtonOnEarlyPages, NoCancelButton, CancelButtonOnLeft, HaveHelpButton, HelpButtonOnRight, HaveCustomButton1, HaveCustomButton2, HaveCustomButton3, }; typedef QFlags WizardOptions; QWizard(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0); virtual ~QWizard(); int addPage(QWizardPage *page /Transfer/); void setPage(int id, QWizardPage *page /Transfer/); QWizardPage *page(int id) const; bool hasVisitedPage(int id) const; QList visitedPages() const; void setStartId(int id); int startId() const; QWizardPage *currentPage() const; int currentId() const; virtual bool validateCurrentPage(); virtual int nextId() const; void setField(const QString &name, const QVariant &value); QVariant field(const QString &name) const; void setWizardStyle(QWizard::WizardStyle style); QWizard::WizardStyle wizardStyle() const; void setOption(QWizard::WizardOption option, bool on = true); bool testOption(QWizard::WizardOption option) const; void setOptions(QFlags options); QFlags options() const; void setButtonText(QWizard::WizardButton which, const QString &text); QString buttonText(QWizard::WizardButton which) const; void setButtonLayout(const QList &layout); void setButton(QWizard::WizardButton which, QAbstractButton *button /Transfer/); QAbstractButton *button(QWizard::WizardButton which) const /Transfer/; void setTitleFormat(Qt::TextFormat format); Qt::TextFormat titleFormat() const; void setSubTitleFormat(Qt::TextFormat format); Qt::TextFormat subTitleFormat() const; void setPixmap(QWizard::WizardPixmap which, const QPixmap &pixmap); QPixmap pixmap(QWizard::WizardPixmap which) const; void setDefaultProperty(const char *className, const char *property, const char *changedSignal); virtual void setVisible(bool visible); virtual QSize sizeHint() const; signals: void currentIdChanged(int id); void helpRequested(); void customButtonClicked(int which); public slots: void back(); void next(); void restart(); protected: virtual bool event(QEvent *event); virtual void resizeEvent(QResizeEvent *event); virtual void paintEvent(QPaintEvent *event); %If (- Qt_5_0_0) %If (WS_WIN) bool winEvent(MSG *message, long *result); %End %End virtual void done(int result); virtual void initializePage(int id); virtual void cleanupPage(int id); public: %If (Qt_4_5_0 -) void removePage(int id); %End %If (Qt_4_5_0 -) QList pageIds() const; %End %If (Qt_4_7_0 -) void setSideWidget(QWidget *widget /Transfer/); %End %If (Qt_4_7_0 -) QWidget *sideWidget() const; %End signals: %If (Qt_4_7_0 -) void pageAdded(int id); %End %If (Qt_4_7_0 -) void pageRemoved(int id); %End private: QWizard(const QWizard &); }; %End %If (Qt_4_3_0 -) QFlags operator|(QWizard::WizardOption f1, QFlags f2); %End %If (Qt_4_3_0 -) class QWizardPage : QWidget { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QWizardPage(QWidget *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QWizardPage(QWidget *parent /TransferThis/ = 0); %End %If (Qt_5_0_0 -) virtual ~QWizardPage(); %End void setTitle(const QString &title); QString title() const; void setSubTitle(const QString &subTitle); QString subTitle() const; void setPixmap(QWizard::WizardPixmap which, const QPixmap &pixmap); QPixmap pixmap(QWizard::WizardPixmap which) const; void setFinalPage(bool finalPage); bool isFinalPage() const; void setCommitPage(bool commitPage); bool isCommitPage() const; void setButtonText(QWizard::WizardButton which, const QString &text); QString buttonText(QWizard::WizardButton which) const; virtual void initializePage(); virtual void cleanupPage(); virtual bool validatePage(); virtual bool isComplete() const; virtual int nextId() const; signals: void completeChanged(); protected: void setField(const QString &name, const QVariant &value); QVariant field(const QString &name) const; public: void registerField(const QString &name, QWidget *widget, const char *property = 0, SIP_PYOBJECT changedSignal /DocType="signal"/ = 0); %MethodCode const char *signal; if (a3 && a3 != Py_None) { signal = qpycore_pyqtsignal_get_parts(a3, 0); if (!signal) { PyErr_Format(PyExc_TypeError, "argument 'changedSignal' has unexpected type '%s'", Py_TYPE(a3)->tp_name); sipError = sipErrorContinue; } } else { signal = 0; } if (sipError == sipErrorNone) { Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) sipCpp->registerField(*a0, a1, a2, signal); #else // We should really change SIP to implement /NoDerived/ for protected // methods rather than do this (possibly unsafe) cast. static_cast(sipCpp)->sipProtect_registerField(*a0, a1, a2, signal); #endif Py_END_ALLOW_THREADS } %End protected: void registerField(const QString &name, QWidget *widget, const char *property = 0, SIP_SIGNAL changedSignal = 0); QWizard *wizard() const; private: QWizardPage(const QWizardPage &); }; %End %If (Qt_4_3_0 -) // Mapped type for QList. %MappedType QList /DocType="list-of-QWizard.WizardButton"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { QWizard::WizardButton e = sipCpp->at(i); PyObject *eobj; if ((eobj = sipConvertFromEnum(e, sipType_QWizard_WizardButton)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, eobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyList_Check(sipPy)) return 0; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) if (!sipCanConvertToEnum(PyList_GET_ITEM(sipPy, i), sipType_QWizard_WizardButton)) return 0; return 1; } QList *ql = new QList; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { long l = SIPLong_AsLong(PyList_GET_ITEM(sipPy, i)); ql->append(static_cast(l)); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qworkspace.sip0000644000076500000240000000465512536324426020505 0ustar philstaff00000000000000// qworkspace.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) class QWorkspace : QWidget { %TypeHeaderCode #include %End public: explicit QWorkspace(QWidget *parent /TransferThis/ = 0); virtual ~QWorkspace(); enum WindowOrder { CreationOrder, StackingOrder, }; QWidget *activeWindow() const; QWidgetList windowList(QWorkspace::WindowOrder order = QWorkspace::CreationOrder) const; %If (Qt_4_2_0 -) QWidget *addWindow(QWidget *w /Transfer/, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QWidget *addWindow(QWidget *w /Transfer/, Qt::WFlags flags = 0); %End virtual QSize sizeHint() const; bool scrollBarsEnabled() const; void setScrollBarsEnabled(bool enable); void setBackground(const QBrush &background); QBrush background() const; signals: void windowActivated(QWidget *w); public slots: void setActiveWindow(QWidget *w); void cascade(); void tile(); void arrangeIcons(); void closeActiveWindow(); void closeAllWindows(); void activateNextWindow(); void activatePreviousWindow(); protected: virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *e); virtual void changeEvent(QEvent *); virtual void childEvent(QChildEvent *); virtual void resizeEvent(QResizeEvent *); virtual bool eventFilter(QObject *, QEvent *); virtual void showEvent(QShowEvent *e); virtual void hideEvent(QHideEvent *e); virtual void wheelEvent(QWheelEvent *e); private: QWorkspace(const QWorkspace &); }; %End PyQt-x11-gpl-4.11.4/sip/QtGui/qx11embed_x11.sip0000644000076500000240000000513412536324426020577 0ustar philstaff00000000000000// qx11embed_x11.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) %If (WS_X11) class QX11EmbedWidget : QWidget { %TypeHeaderCode #include %End public: enum Error { Unknown, Internal, InvalidWindowID, }; QX11EmbedWidget(QWidget *parent /TransferThis/ = 0); virtual ~QX11EmbedWidget(); void embedInto(WId id); WId containerWinId() const; %If (Qt_4_2_0 -) QX11EmbedWidget::Error error() const; %End signals: void containerClosed(); void embedded(); void error(QX11EmbedWidget::Error error); protected: virtual bool eventFilter(QObject *, QEvent *); virtual bool event(QEvent *); virtual void resizeEvent(QResizeEvent *); private: QX11EmbedWidget(const QX11EmbedWidget &); }; %End %End %If (- Qt_5_0_0) %If (WS_X11) class QX11EmbedContainer : QWidget { %TypeHeaderCode #include %End public: enum Error { Unknown, Internal, InvalidWindowID, }; QX11EmbedContainer(QWidget *parent /TransferThis/ = 0); virtual ~QX11EmbedContainer(); WId clientWinId() const; void discardClient(); void embedClient(WId id); %If (Qt_4_2_0 -) QX11EmbedContainer::Error error() const; %End virtual QSize minimumSizeHint() const; signals: void clientClosed(); void clientIsEmbedded(); void error(QX11EmbedContainer::Error); protected: virtual bool eventFilter(QObject *, QEvent *); virtual void paintEvent(QPaintEvent *e); virtual void resizeEvent(QResizeEvent *); virtual void showEvent(QShowEvent *); virtual void hideEvent(QHideEvent *); virtual bool event(QEvent *); private: QX11EmbedContainer(const QX11EmbedContainer &); }; %End %End PyQt-x11-gpl-4.11.4/sip/QtGui/qx11info_x11.sip0000644000076500000240000000430612536324426020456 0ustar philstaff00000000000000// qx11info_x11.sip generated by MetaSIP // // This file is part of the QtGui Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) %If (WS_X11) class Display; %End %End %If (- Qt_5_0_0) %If (WS_X11) class QX11Info { %TypeHeaderCode #include %End public: QX11Info(); ~QX11Info(); QX11Info(const QX11Info &other); static Display *display(); static const char *appClass(); int screen() const; int depth() const; int cells() const; Qt::HANDLE colormap() const; bool defaultColormap() const; void *visual() const; bool defaultVisual() const; static int appScreen(); static int appDepth(int screen = -1); static int appCells(int screen = -1); static Qt::HANDLE appColormap(int screen = -1); static void *appVisual(int screen = -1); static Qt::HANDLE appRootWindow(int screen = -1); static bool appDefaultColormap(int screen = -1); static bool appDefaultVisual(int screen = -1); static int appDpiX(int screen = -1); static int appDpiY(int screen = -1); static void setAppDpiX(int screen, int dpi); static void setAppDpiY(int screen, int dpi); static unsigned long appTime(); static unsigned long appUserTime(); static void setAppTime(unsigned long time); static void setAppUserTime(unsigned long time); %If (Qt_4_4_0 -) static bool isCompositingManagerRunning(); %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtHelp/0000755000076500000240000000000012536324426015743 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtHelp/qhelpcontentwidget.sip0000644000076500000240000000456212536324426022377 0ustar philstaff00000000000000// qhelpcontentwidget.sip generated by MetaSIP // // This file is part of the QtHelp Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QHelpContentItem /NoDefaultCtors/ { %TypeHeaderCode #include %End public: ~QHelpContentItem(); QHelpContentItem *child(int row) const; int childCount() const; QString title() const; QUrl url() const; int row() const; QHelpContentItem *parent() const; int childPosition(QHelpContentItem *child) const; }; %End %If (Qt_4_4_0 -) class QHelpContentModel : QAbstractItemModel /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QHelpContentModel(); void createContents(const QString &customFilterName); QHelpContentItem *contentItemAt(const QModelIndex &index) const; virtual QVariant data(const QModelIndex &index, int role) const; virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; virtual QModelIndex parent(const QModelIndex &index) const; virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; bool isCreatingContents() const; signals: void contentsCreationStarted(); void contentsCreated(); }; %End %If (Qt_4_4_0 -) class QHelpContentWidget : QTreeView { %TypeHeaderCode #include %End public: QModelIndex indexOf(const QUrl &link); signals: void linkActivated(const QUrl &link); private: QHelpContentWidget(); }; %End PyQt-x11-gpl-4.11.4/sip/QtHelp/qhelpengine.sip0000644000076500000240000000255112536324426020762 0ustar philstaff00000000000000// qhelpengine.sip generated by MetaSIP // // This file is part of the QtHelp Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QHelpEngine : QHelpEngineCore { %TypeHeaderCode #include %End public: QHelpEngine(const QString &collectionFile, QObject *parent /TransferThis/ = 0); virtual ~QHelpEngine(); QHelpContentModel *contentModel() const; QHelpIndexModel *indexModel() const; QHelpContentWidget *contentWidget(); QHelpIndexWidget *indexWidget(); QHelpSearchEngine *searchEngine(); }; %End PyQt-x11-gpl-4.11.4/sip/QtHelp/qhelpenginecore.sip0000644000076500000240000001032312536324426021627 0ustar philstaff00000000000000// qhelpenginecore.sip generated by MetaSIP // // This file is part of the QtHelp Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QHelpEngineCore : QObject { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QHelpIndexWidget, &sipType_QHelpIndexWidget, -1, 1}, {sipName_QHelpContentWidget, &sipType_QHelpContentWidget, -1, 2}, {sipName_QHelpContentModel, &sipType_QHelpContentModel, -1, 3}, {sipName_QHelpIndexModel, &sipType_QHelpIndexModel, -1, 4}, {sipName_QHelpSearchResultWidget, &sipType_QHelpSearchResultWidget, -1, 5}, {sipName_QHelpEngineCore, &sipType_QHelpEngineCore, 8, 6}, {sipName_QHelpSearchQueryWidget, &sipType_QHelpSearchQueryWidget, -1, 7}, {sipName_QHelpSearchEngine, &sipType_QHelpSearchEngine, -1, -1}, {sipName_QHelpEngine, &sipType_QHelpEngine, -1, -1}, }; int i = 0; sipType = 0; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: QHelpEngineCore(const QString &collectionFile, QObject *parent /TransferThis/ = 0); virtual ~QHelpEngineCore(); bool setupData(); QString collectionFile() const; void setCollectionFile(const QString &fileName); bool copyCollectionFile(const QString &fileName); static QString namespaceName(const QString &documentationFileName); bool registerDocumentation(const QString &documentationFileName); bool unregisterDocumentation(const QString &namespaceName); QString documentationFileName(const QString &namespaceName); QStringList customFilters() const; bool removeCustomFilter(const QString &filterName); bool addCustomFilter(const QString &filterName, const QStringList &attributes); QStringList filterAttributes() const; QStringList filterAttributes(const QString &filterName) const; QString currentFilter() const; void setCurrentFilter(const QString &filterName); QStringList registeredDocumentations() const; QList filterAttributeSets(const QString &namespaceName) const; QList files(const QString namespaceName, const QStringList &filterAttributes, const QString &extensionFilter /DocValue="Py_v3:''"/ = QString()); QUrl findFile(const QUrl &url) const; QByteArray fileData(const QUrl &url) const; QMap linksForIdentifier(const QString &id) const; bool removeCustomValue(const QString &key); QVariant customValue(const QString &key, const QVariant &defaultValue /DocValue="Py_v3:None"/ = QVariant()) const; bool setCustomValue(const QString &key, const QVariant &value); static QVariant metaData(const QString &documentationFileName, const QString &name); QString error() const; %If (Qt_4_5_0 -) bool autoSaveFilter() const; %End %If (Qt_4_5_0 -) void setAutoSaveFilter(bool save); %End signals: void setupStarted(); void setupFinished(); void currentFilterChanged(const QString &newFilter); void warning(const QString &msg); }; %End PyQt-x11-gpl-4.11.4/sip/QtHelp/qhelpindexwidget.sip0000644000076500000240000000362312536324426022031 0ustar philstaff00000000000000// qhelpindexwidget.sip generated by MetaSIP // // This file is part of the QtHelp Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QHelpIndexModel : QStringListModel /NoDefaultCtors/ { %TypeHeaderCode #include %End public: void createIndex(const QString &customFilterName); QModelIndex filter(const QString &filter, const QString &wildcard /DocValue="Py_v3:''"/ = QString()); QMap linksForKeyword(const QString &keyword) const; bool isCreatingIndex() const; signals: void indexCreationStarted(); void indexCreated(); private: virtual ~QHelpIndexModel(); }; %End %If (Qt_4_4_0 -) class QHelpIndexWidget : QListView { %TypeHeaderCode #include %End signals: void linkActivated(const QUrl &link, const QString &keyword); void linksActivated(const QMap &links, const QString &keyword); public slots: void filterIndices(const QString &filter, const QString &wildcard /DocValue="Py_v3:''"/ = QString()); void activateCurrentItem(); private: QHelpIndexWidget(); }; %End PyQt-x11-gpl-4.11.4/sip/QtHelp/qhelpsearchengine.sip0000644000076500000240000000415112536324426022146 0ustar philstaff00000000000000// qhelpsearchengine.sip generated by MetaSIP // // This file is part of the QtHelp Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QHelpSearchQuery { %TypeHeaderCode #include %End public: enum FieldName { DEFAULT, FUZZY, WITHOUT, PHRASE, ALL, ATLEAST, }; QHelpSearchQuery(); QHelpSearchQuery(QHelpSearchQuery::FieldName field, const QStringList &wordList); }; %End %If (Qt_4_4_0 -) class QHelpSearchEngine : QObject { %TypeHeaderCode #include %End public: QHelpSearchEngine(QHelpEngineCore *helpEngine, QObject *parent /TransferThis/ = 0); virtual ~QHelpSearchEngine(); %If (Qt_4_5_0 -) QList query() const; %End QHelpSearchQueryWidget *queryWidget(); QHelpSearchResultWidget *resultWidget(); int hitsCount() const; QList> hits(int start, int end) const; public slots: void reindexDocumentation(); void cancelIndexing(); void search(const QList &queryList); void cancelSearching(); signals: void indexingStarted(); void indexingFinished(); void searchingStarted(); void searchingFinished(int hits); public: %If (Qt_4_6_0 -) int hitCount() const; %End }; %End PyQt-x11-gpl-4.11.4/sip/QtHelp/qhelpsearchquerywidget.sip0000644000076500000240000000307612536324426023257 0ustar philstaff00000000000000// qhelpsearchquerywidget.sip generated by MetaSIP // // This file is part of the QtHelp Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QHelpSearchQueryWidget : QWidget { %TypeHeaderCode #include %End public: QHelpSearchQueryWidget(QWidget *parent /TransferThis/ = 0); virtual ~QHelpSearchQueryWidget(); QList query() const; %If (Qt_4_8_0 -) void setQuery(const QList &queryList); %End %If (Qt_4_8_0 -) void expandExtendedSearch(); %End %If (Qt_4_8_0 -) void collapseExtendedSearch(); %End signals: void search(); private: virtual void focusInEvent(QFocusEvent *focusEvent); %If (Qt_4_6_2 -) virtual void changeEvent(QEvent *event); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtHelp/qhelpsearchresultwidget.sip0000644000076500000240000000233612536324426023426 0ustar philstaff00000000000000// qhelpsearchresultwidget.sip generated by MetaSIP // // This file is part of the QtHelp Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QHelpSearchResultWidget : QWidget /NoDefaultCtors/ { %TypeHeaderCode #include %End public: virtual ~QHelpSearchResultWidget(); QUrl linkAt(const QPoint &point); signals: void requestShowLink(const QUrl &url); }; %End PyQt-x11-gpl-4.11.4/sip/QtHelp/QtHelpmod.sip0000644000076500000240000000412112536324426020353 0ustar philstaff00000000000000// QtHelpmod.sip generated by MetaSIP // // This file is part of the QtHelp Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtHelp, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qhelpcontentwidget.sip %Include qhelpengine.sip %Include qhelpenginecore.sip %Include qhelpindexwidget.sip %Include qhelpsearchengine.sip %Include qhelpsearchquerywidget.sip %Include qhelpsearchresultwidget.sip PyQt-x11-gpl-4.11.4/sip/QtMultimedia/0000755000076500000240000000000012536324426017145 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtMultimedia/qabstractvideobuffer.sip0000644000076500000240000000474612536324426024102 0ustar philstaff00000000000000// qabstractvideobuffer.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAbstractVideoBuffer { %TypeHeaderCode #include %End public: enum HandleType { NoHandle, GLTextureHandle, %If (Qt_4_7_0 -) XvShmImageHandle, %End %If (Qt_4_7_0 -) CoreImageHandle, %End %If (Qt_4_7_0 -) QPixmapHandle, %End UserHandle, }; enum MapMode { NotMapped, ReadOnly, WriteOnly, ReadWrite, }; QAbstractVideoBuffer(QAbstractVideoBuffer::HandleType type); virtual ~QAbstractVideoBuffer(); QAbstractVideoBuffer::HandleType handleType() const; virtual QAbstractVideoBuffer::MapMode mapMode() const = 0; virtual SIP_PYOBJECT map(QAbstractVideoBuffer::MapMode mode, int *numBytes, int *bytesPerLine) = 0 /DocType="sip.voidptr"/ [uchar * (QAbstractVideoBuffer::MapMode mode, int *numBytes, int *bytesPerLine)]; %MethodCode uchar *mem; Py_BEGIN_ALLOW_THREADS mem = sipCpp->map(a0, &a1, &a2); Py_END_ALLOW_THREADS if (mem) { if (a0 & QAbstractVideoBuffer::WriteOnly) sipRes = sipConvertFromVoidPtrAndSize(mem, a1); else sipRes = sipConvertFromConstVoidPtrAndSize(mem, a1); } else { sipRes = Py_None; Py_INCREF(sipRes); } %End virtual void unmap() = 0; virtual QVariant handle() const; %If (Qt_5_0_0 -) virtual void release(); %End private: QAbstractVideoBuffer(const QAbstractVideoBuffer &); }; %End PyQt-x11-gpl-4.11.4/sip/QtMultimedia/qabstractvideosurface.sip0000644000076500000240000000577212536324426024261 0ustar philstaff00000000000000// qabstractvideosurface.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAbstractVideoSurface : QObject { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QAudioOutput, &sipType_QAudioOutput, -1, 1}, {sipName_QAudioInput, &sipType_QAudioInput, -1, 2}, {sipName_QAbstractVideoSurface, &sipType_QAbstractVideoSurface, -1, -1}, }; int i = 0; sipType = NULL; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: enum Error { NoError, UnsupportedFormatError, IncorrectFormatError, StoppedError, ResourceError, }; explicit QAbstractVideoSurface(QObject *parent /TransferThis/ = 0); virtual ~QAbstractVideoSurface(); virtual QList supportedPixelFormats(QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle) const = 0; virtual bool isFormatSupported(const QVideoSurfaceFormat &format) const; virtual QVideoSurfaceFormat nearestFormat(const QVideoSurfaceFormat &format) const; QVideoSurfaceFormat surfaceFormat() const; virtual bool start(const QVideoSurfaceFormat &format); virtual void stop(); bool isActive() const; virtual bool present(const QVideoFrame &frame) = 0; QAbstractVideoSurface::Error error() const; signals: void activeChanged(bool active); void surfaceFormatChanged(const QVideoSurfaceFormat &format); void supportedFormatsChanged(); protected: void setError(QAbstractVideoSurface::Error error); public: %If (Qt_5_0_0 -) QSize nativeResolution() const; %End protected: %If (Qt_5_0_0 -) void setNativeResolution(const QSize &resolution); %End signals: %If (Qt_5_0_0 -) void nativeResolutionChanged(const QSize &); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtMultimedia/qaudio.sip0000644000076500000240000000250312536324426021144 0ustar philstaff00000000000000// qaudio.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) namespace QAudio { %TypeHeaderCode #include %End enum Error { NoError, OpenError, IOError, UnderrunError, FatalError, }; enum State { ActiveState, SuspendedState, StoppedState, IdleState, }; enum Mode { AudioInput, AudioOutput, }; }; %End PyQt-x11-gpl-4.11.4/sip/QtMultimedia/qaudiodeviceinfo.sip0000644000076500000240000000424712536324426023207 0ustar philstaff00000000000000// qaudiodeviceinfo.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAudioDeviceInfo { %TypeHeaderCode #include %End public: QAudioDeviceInfo(); QAudioDeviceInfo(const QAudioDeviceInfo &other); ~QAudioDeviceInfo(); bool isNull() const; QString deviceName() const; bool isFormatSupported(const QAudioFormat &format) const; QAudioFormat preferredFormat() const; QAudioFormat nearestFormat(const QAudioFormat &format) const; QStringList supportedCodecs() const; %If (- Qt_5_0_0) QList supportedFrequencies() const; %End %If (- Qt_5_0_0) QList supportedChannels() const; %End QList supportedSampleSizes() const; QList supportedByteOrders() const; QList supportedSampleTypes() const; static QAudioDeviceInfo defaultInputDevice(); static QAudioDeviceInfo defaultOutputDevice(); static QList availableDevices(QAudio::Mode mode); %If (Qt_4_7_0 -) QList supportedSampleRates() const; %End %If (Qt_4_7_0 -) QList supportedChannelCounts() const; %End %If (Qt_5_0_0 -) bool operator==(const QAudioDeviceInfo &other) const; %End %If (Qt_5_0_0 -) bool operator!=(const QAudioDeviceInfo &other) const; %End }; %End PyQt-x11-gpl-4.11.4/sip/QtMultimedia/qaudioformat.sip0000644000076500000240000001276512536324426022370 0ustar philstaff00000000000000// qaudioformat.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAudioFormat { %TypeHeaderCode #include %End public: enum SampleType { Unknown, SignedInt, UnSignedInt, Float, }; enum Endian { BigEndian, LittleEndian, }; QAudioFormat(); QAudioFormat(const QAudioFormat &other); ~QAudioFormat(); bool operator==(const QAudioFormat &other) const; bool operator!=(const QAudioFormat &other) const; bool isValid() const; %If (- Qt_5_0_0) void setFrequency(int frequency); %End %If (- Qt_5_0_0) int frequency() const; %End %If (- Qt_5_0_0) void setChannels(int channels); %End %If (- Qt_5_0_0) int channels() const; %End void setSampleSize(int sampleSize); int sampleSize() const; void setCodec(const QString &codec); QString codec() const; void setByteOrder(QAudioFormat::Endian byteOrder); QAudioFormat::Endian byteOrder() const; void setSampleType(QAudioFormat::SampleType sampleType); QAudioFormat::SampleType sampleType() const; %If (Qt_4_7_0 -) void setSampleRate(int sampleRate); %End %If (Qt_4_7_0 -) int sampleRate() const; %End %If (Qt_4_7_0 -) void setChannelCount(int channelCount); %End %If (Qt_4_7_0 -) int channelCount() const; %End %If (Qt_5_0_0 -) qint32 bytesForDuration(qint64 duration) const; %End %If (Qt_5_0_0 -) qint64 durationForBytes(qint32 byteCount) const; %End %If (Qt_5_0_0 -) qint32 bytesForFrames(qint32 frameCount) const; %End %If (Qt_5_0_0 -) qint32 framesForBytes(qint32 byteCount) const; %End %If (Qt_5_0_0 -) qint32 framesForDuration(qint64 duration) const; %End %If (Qt_5_0_0 -) qint64 durationForFrames(qint32 frameCount) const; %End %If (Qt_5_0_0 -) int bytesPerFrame() const; %End }; %End %If (Qt_4_6_0 -) // Mapped type for QList. %MappedType QList /DocType="list-of-QAudioFormat.Endian"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { QAudioFormat::Endian e = sipCpp->at(i); PyObject *eobj; if ((eobj = sipConvertFromEnum(e, sipType_QAudioFormat_Endian)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, eobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyList_Check(sipPy)) return 0; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) if (!sipCanConvertToEnum(PyList_GET_ITEM(sipPy, i), sipType_QAudioFormat_Endian)) return 0; return 1; } QList *ql = new QList; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { long l = SIPLong_AsLong(PyList_GET_ITEM(sipPy, i)); ql->append(static_cast(l)); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; %End %If (Qt_4_6_0 -) // Mapped type for QList. %MappedType QList /DocType="list-of-QAudioFormat.SampleType"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { QAudioFormat::SampleType e = sipCpp->at(i); PyObject *eobj; if ((eobj = sipConvertFromEnum(e, sipType_QAudioFormat_SampleType)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, eobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyList_Check(sipPy)) return 0; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) if (!sipCanConvertToEnum(PyList_GET_ITEM(sipPy, i), sipType_QAudioFormat_SampleType)) return 0; return 1; } QList *ql = new QList; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { long l = SIPLong_AsLong(PyList_GET_ITEM(sipPy, i)); ql->append(static_cast(l)); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtMultimedia/qaudioinput.sip0000644000076500000240000000400612536324426022224 0ustar philstaff00000000000000// qaudioinput.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAudioInput : QObject { %TypeHeaderCode #include %End public: QAudioInput(const QAudioFormat &format = QAudioFormat(), QObject *parent /TransferThis/ = 0); QAudioInput(const QAudioDeviceInfo &audioDevice, const QAudioFormat &format = QAudioFormat(), QObject *parent /TransferThis/ = 0); virtual ~QAudioInput(); QAudioFormat format() const; void start(QIODevice *device); QIODevice *start(); void stop(); void reset(); void suspend(); void resume(); void setBufferSize(int bytes); int bufferSize() const; int bytesReady() const; int periodSize() const; void setNotifyInterval(int milliSeconds); int notifyInterval() const; qint64 processedUSecs() const; qint64 elapsedUSecs() const; QAudio::Error error() const; QAudio::State state() const; signals: void stateChanged(QAudio::State); void notify(); public: %If (Qt_5_0_0 -) void setVolume(qreal volume); %End %If (Qt_5_0_0 -) qreal volume() const; %End private: QAudioInput(const QAudioInput &); }; %End PyQt-x11-gpl-4.11.4/sip/QtMultimedia/qaudiooutput.sip0000644000076500000240000000417712536324426022436 0ustar philstaff00000000000000// qaudiooutput.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QAudioOutput : QObject { %TypeHeaderCode #include %End public: QAudioOutput(const QAudioFormat &format = QAudioFormat(), QObject *parent /TransferThis/ = 0); QAudioOutput(const QAudioDeviceInfo &audioDevice, const QAudioFormat &format = QAudioFormat(), QObject *parent /TransferThis/ = 0); virtual ~QAudioOutput(); QAudioFormat format() const; void start(QIODevice *device); QIODevice *start(); void stop(); void reset(); void suspend(); void resume(); void setBufferSize(int bytes); int bufferSize() const; int bytesFree() const; int periodSize() const; void setNotifyInterval(int milliSeconds); int notifyInterval() const; qint64 processedUSecs() const; qint64 elapsedUSecs() const; QAudio::Error error() const; QAudio::State state() const; signals: void stateChanged(QAudio::State); void notify(); public: %If (Qt_5_0_0 -) void setVolume(qreal); %End %If (Qt_5_0_0 -) qreal volume() const; %End %If (Qt_5_0_0 -) QString category() const; %End %If (Qt_5_0_0 -) void setCategory(const QString &category); %End private: QAudioOutput(const QAudioOutput &); }; %End PyQt-x11-gpl-4.11.4/sip/QtMultimedia/QtMultimediamod.sip0000644000076500000240000000420512536324426022762 0ustar philstaff00000000000000// QtMultimediamod.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtMultimedia, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qabstractvideobuffer.sip %Include qabstractvideosurface.sip %Include qaudio.sip %Include qaudiodeviceinfo.sip %Include qaudioformat.sip %Include qaudioinput.sip %Include qaudiooutput.sip %Include qvideoframe.sip %Include qvideosurfaceformat.sip PyQt-x11-gpl-4.11.4/sip/QtMultimedia/qvideoframe.sip0000644000076500000240000001243312536324426022167 0ustar philstaff00000000000000// qvideoframe.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QVideoFrame { %TypeHeaderCode #include %End public: enum FieldType { ProgressiveFrame, TopField, BottomField, InterlacedFrame, }; enum PixelFormat { Format_Invalid, Format_ARGB32, Format_ARGB32_Premultiplied, Format_RGB32, Format_RGB24, Format_RGB565, Format_RGB555, Format_ARGB8565_Premultiplied, Format_BGRA32, Format_BGRA32_Premultiplied, Format_BGR32, Format_BGR24, Format_BGR565, Format_BGR555, Format_BGRA5658_Premultiplied, Format_AYUV444, Format_AYUV444_Premultiplied, Format_YUV444, Format_YUV420P, Format_YV12, Format_UYVY, Format_YUYV, Format_NV12, Format_NV21, Format_IMC1, Format_IMC2, Format_IMC3, Format_IMC4, Format_Y8, Format_Y16, %If (Qt_5_0_0 -) Format_Jpeg, %End %If (Qt_5_0_0 -) Format_CameraRaw, %End %If (Qt_5_0_0 -) Format_AdobeDng, %End Format_User, }; QVideoFrame(); QVideoFrame(QAbstractVideoBuffer *buffer, const QSize &size, QVideoFrame::PixelFormat format); QVideoFrame(int bytes, const QSize &size, int bytesPerLine, QVideoFrame::PixelFormat format); QVideoFrame(const QImage &image); QVideoFrame(const QVideoFrame &other); ~QVideoFrame(); bool isValid() const; QVideoFrame::PixelFormat pixelFormat() const; QAbstractVideoBuffer::HandleType handleType() const; QSize size() const; int width() const; int height() const; QVideoFrame::FieldType fieldType() const; void setFieldType(QVideoFrame::FieldType); bool isMapped() const; bool isReadable() const; bool isWritable() const; QAbstractVideoBuffer::MapMode mapMode() const; bool map(QAbstractVideoBuffer::MapMode mode); void unmap(); int bytesPerLine() const; SIP_PYOBJECT bits() /DocType="sip.voidptr"/; %MethodCode uchar *mem; Py_BEGIN_ALLOW_THREADS mem = sipCpp->bits(); Py_END_ALLOW_THREADS if (mem) { sipRes = sipConvertFromVoidPtrAndSize(mem, sipCpp->mappedBytes()); } else { sipRes = Py_None; Py_INCREF(sipRes); } %End int mappedBytes() const; QVariant handle() const; qint64 startTime() const; void setStartTime(qint64 time); qint64 endTime() const; void setEndTime(qint64 time); static QVideoFrame::PixelFormat pixelFormatFromImageFormat(QImage::Format format); static QImage::Format imageFormatFromPixelFormat(QVideoFrame::PixelFormat format); %If (Qt_5_0_0 -) QVariantMap availableMetaData() const; %End %If (Qt_5_0_0 -) QVariant metaData(const QString &key) const; %End %If (Qt_5_0_0 -) void setMetaData(const QString &key, const QVariant &value); %End }; %End %If (Qt_4_6_0 -) // Mapped type for QList. %MappedType QList /DocType="list-of-QVideoFrame.PixelFormat"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the list. PyObject *l; if ((l = PyList_New(sipCpp->size())) == NULL) return NULL; // Set the list elements. for (int i = 0; i < sipCpp->size(); ++i) { QVideoFrame::PixelFormat e = sipCpp->at(i); PyObject *eobj; if ((eobj = sipConvertFromEnum(e, sipType_QVideoFrame_PixelFormat)) == NULL) { Py_DECREF(l); return NULL; } PyList_SET_ITEM(l, i, eobj); } return l; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) { if (!PyList_Check(sipPy)) return 0; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) if (!sipCanConvertToEnum(PyList_GET_ITEM(sipPy, i), sipType_QVideoFrame_PixelFormat)) return 0; return 1; } QList *ql = new QList; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i) { long l = SIPLong_AsLong(PyList_GET_ITEM(sipPy, i)); ql->append(static_cast(l)); } *sipCppPtr = ql; return sipGetState(sipTransferObj); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtMultimedia/qvideosurfaceformat.sip0000644000076500000240000000531412536324426023736 0ustar philstaff00000000000000// qvideosurfaceformat.sip generated by MetaSIP // // This file is part of the QtMultimedia Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QVideoSurfaceFormat { %TypeHeaderCode #include %End public: enum Direction { TopToBottom, BottomToTop, }; enum YCbCrColorSpace { YCbCr_Undefined, YCbCr_BT601, YCbCr_BT709, YCbCr_xvYCC601, YCbCr_xvYCC709, YCbCr_JPEG, }; QVideoSurfaceFormat(); QVideoSurfaceFormat(const QSize &size, QVideoFrame::PixelFormat format, QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle); QVideoSurfaceFormat(const QVideoSurfaceFormat &format); ~QVideoSurfaceFormat(); bool operator==(const QVideoSurfaceFormat &format) const; bool operator!=(const QVideoSurfaceFormat &format) const; bool isValid() const; QVideoFrame::PixelFormat pixelFormat() const; QAbstractVideoBuffer::HandleType handleType() const; QSize frameSize() const; void setFrameSize(const QSize &size); void setFrameSize(int width, int height); int frameWidth() const; int frameHeight() const; QRect viewport() const; void setViewport(const QRect &viewport); QVideoSurfaceFormat::Direction scanLineDirection() const; void setScanLineDirection(QVideoSurfaceFormat::Direction direction); qreal frameRate() const; void setFrameRate(qreal rate); QSize pixelAspectRatio() const; void setPixelAspectRatio(const QSize &ratio); void setPixelAspectRatio(int width, int height); QVideoSurfaceFormat::YCbCrColorSpace yCbCrColorSpace() const; void setYCbCrColorSpace(QVideoSurfaceFormat::YCbCrColorSpace colorSpace); QSize sizeHint() const; QList propertyNames() const; QVariant property(const char *name) const; void setProperty(const char *name, const QVariant &value); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/0000755000076500000240000000000012536324426016504 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtNetwork/qabstractnetworkcache.sip0000644000076500000240000001316312536324426023607 0ustar philstaff00000000000000// qabstractnetworkcache.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_5_0 -) %ModuleCode #include %End %End %If (Qt_4_5_0 -) // QHash is implemented as a Python dict. %MappedType QHash /DocType="Py_v3:dict-of-QNetworkRequest.Attribute-object;dict-of-QNetworkRequest.Attribute-QVariant"/ { %TypeHeaderCode #include #include #include %End %ConvertFromTypeCode // Create the dictionary. PyObject *d = PyDict_New(); if (!d) return NULL; // Set the dictionary elements. QHash::const_iterator i = sipCpp->constBegin(); while (i != sipCpp->constEnd()) { PyObject *t1obj = sipConvertFromEnum((int)i.key(), sipType_QNetworkRequest_Attribute); QVariant *t2 = new QVariant(i.value()); PyObject *t2obj = sipConvertFromNewType(t2, sipType_QVariant, sipTransferObj); if (!t1obj || !t2obj || PyDict_SetItem(d, t1obj, t2obj) < 0) { Py_DECREF(d); Py_XDECREF(t1obj); if (t2obj) { Py_DECREF(t2obj); } else { delete t2; } return 0; } Py_DECREF(t1obj); Py_DECREF(t2obj); ++i; } return d; %End %ConvertToTypeCode PyObject *t1obj, *t2obj; SIP_SSIZE_T i = 0; // Check the type if that is all that is required. if (!sipIsErr) { if (!PyDict_Check(sipPy)) return 0; while (PyDict_Next(sipPy, &i, &t1obj, &t2obj)) { if (!sipCanConvertToEnum(t1obj, sipType_QNetworkRequest_Attribute)) return 0; if (!sipCanConvertToType(t2obj, sipType_QVariant, SIP_NOT_NONE)) return 0; } return 1; } QHash *qm = new QHash; while (PyDict_Next(sipPy, &i, &t1obj, &t2obj)) { PyErr_Clear(); QNetworkRequest::Attribute t1 = (QNetworkRequest::Attribute)SIPLong_AsLong(t1obj); if (PyErr_Occurred()) *sipIsErr = 1; int state2; QVariant *t2 = reinterpret_cast(sipConvertToType(t2obj, sipType_QVariant, sipTransferObj, SIP_NOT_NONE, &state2, sipIsErr)); if (*sipIsErr) { delete qm; return 0; } qm->insert(t1, *t2); sipReleaseType(t2, sipType_QVariant, state2); } *sipCppPtr = qm; return sipGetState(sipTransferObj); %End }; %End %If (Qt_4_5_0 -) class QNetworkCacheMetaData { %TypeHeaderCode #include %End typedef QList> RawHeaderList; typedef QHash AttributesMap; public: QNetworkCacheMetaData(); QNetworkCacheMetaData(const QNetworkCacheMetaData &other); ~QNetworkCacheMetaData(); bool operator==(const QNetworkCacheMetaData &other) const; bool operator!=(const QNetworkCacheMetaData &other) const; bool isValid() const; QUrl url() const; void setUrl(const QUrl &url); RawHeaderList rawHeaders() const; void setRawHeaders(const RawHeaderList &headers); QDateTime lastModified() const; void setLastModified(const QDateTime &dateTime); QDateTime expirationDate() const; void setExpirationDate(const QDateTime &dateTime); bool saveToDisk() const; void setSaveToDisk(bool allow); AttributesMap attributes() const; void setAttributes(const AttributesMap &attributes); %If (Qt_5_0_0 -) void swap(QNetworkCacheMetaData &other); %End }; %End %If (Qt_4_5_0 -) QDataStream &operator<<(QDataStream &, const QNetworkCacheMetaData & /Constrained/); %End %If (Qt_4_5_0 -) QDataStream &operator>>(QDataStream &, QNetworkCacheMetaData & /Constrained/); %End %If (Qt_4_5_0 -) class QAbstractNetworkCache : QObject { %TypeHeaderCode #include %End public: virtual ~QAbstractNetworkCache(); virtual QNetworkCacheMetaData metaData(const QUrl &url) = 0; virtual void updateMetaData(const QNetworkCacheMetaData &metaData) = 0; virtual QIODevice *data(const QUrl &url) = 0 /Factory/; virtual bool remove(const QUrl &url) = 0; virtual qint64 cacheSize() const = 0; virtual QIODevice *prepare(const QNetworkCacheMetaData &metaData) = 0; virtual void insert(QIODevice *device) = 0; public slots: virtual void clear() = 0; protected: explicit QAbstractNetworkCache(QObject *parent /TransferThis/ = 0); private: QAbstractNetworkCache(const QAbstractNetworkCache &); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qabstractsocket.sip0000644000076500000240000003216012536324426022420 0ustar philstaff00000000000000// qabstractsocket.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QAbstractSocket : QIODevice { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { #if QT_VERSION < 0x050000 {sipName_QFtp, &sipType_QFtp, -1, 1}, #else {0, 0, -1, 1}, #endif #if QT_VERSION >= 0x040400 {sipName_QNetworkCookieJar, &sipType_QNetworkCookieJar, -1, 2}, #else {0, 0, -1, 2}, #endif #if QT_VERSION >= 0x040700 {sipName_QNetworkSession, &sipType_QNetworkSession, -1, 3}, #else {0, 0, -1, 3}, #endif {sipName_QTcpServer, &sipType_QTcpServer, -1, 4}, #if QT_VERSION >= 0x040700 {sipName_QNetworkConfigurationManager, &sipType_QNetworkConfigurationManager, -1, 5}, #else {0, 0, -1, 5}, #endif #if QT_VERSION >= 0x040800 {sipName_QHttpMultiPart, &sipType_QHttpMultiPart, -1, 6}, #else {0, 0, -1, 6}, #endif {sipName_QAbstractSocket, &sipType_QAbstractSocket, 13, 7}, #if QT_VERSION < 0x050000 {sipName_QHttp, &sipType_QHttp, -1, 8}, #else {0, 0, -1, 8}, #endif #if QT_VERSION >= 0x040400 {sipName_QLocalServer, &sipType_QLocalServer, -1, 9}, #else {0, 0, -1, 9}, #endif #if QT_VERSION >= 0x040500 {sipName_QAbstractNetworkCache, &sipType_QAbstractNetworkCache, 16, 10}, #else {0, 0, 16, 10}, #endif #if QT_VERSION >= 0x040400 {sipName_QNetworkAccessManager, &sipType_QNetworkAccessManager, -1, 11}, #else {0, 0, -1, 11}, #endif #if QT_VERSION >= 0x040400 {sipName_QNetworkReply, &sipType_QNetworkReply, -1, 12}, #else {0, 0, -1, 12}, #endif #if QT_VERSION >= 0x040400 {sipName_QLocalSocket, &sipType_QLocalSocket, -1, -1}, #else {0, 0, -1, -1}, #endif {sipName_QUdpSocket, &sipType_QUdpSocket, -1, 14}, {sipName_QTcpSocket, &sipType_QTcpSocket, 15, -1}, #if QT_VERSION >= 0x040300 && (defined(SIP_FEATURE_PyQt_OpenSSL) || defined(SIP_FEATURE_PyQt_SSL)) {sipName_QSslSocket, &sipType_QSslSocket, -1, -1}, #else {0, 0, -1, -1}, #endif #if QT_VERSION >= 0x040500 {sipName_QNetworkDiskCache, &sipType_QNetworkDiskCache, -1, -1}, #else {0, 0, -1, -1}, #endif }; int i = 0; sipType = NULL; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: enum SocketType { TcpSocket, UdpSocket, UnknownSocketType, }; enum NetworkLayerProtocol { IPv4Protocol, IPv6Protocol, %If (Qt_5_0_0 -) AnyIPProtocol, %End UnknownNetworkLayerProtocol, }; enum SocketError { ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, SocketAccessError, SocketResourceError, SocketTimeoutError, DatagramTooLargeError, NetworkError, AddressInUseError, SocketAddressNotAvailableError, UnsupportedSocketOperationError, %If (Qt_4_3_0 -) UnfinishedSocketOperationError, %End %If (Qt_4_3_0 -) ProxyAuthenticationRequiredError, %End %If (Qt_4_4_0 -) SslHandshakeFailedError, %End %If (Qt_4_5_0 -) ProxyConnectionRefusedError, %End %If (Qt_4_5_0 -) ProxyConnectionClosedError, %End %If (Qt_4_5_0 -) ProxyConnectionTimeoutError, %End %If (Qt_4_5_0 -) ProxyNotFoundError, %End %If (Qt_4_5_0 -) ProxyProtocolError, %End %If (Qt_5_0_0 -) OperationError, %End %If (Qt_5_0_0 -) SslInternalError, %End %If (Qt_5_0_0 -) SslInvalidUserDataError, %End %If (Qt_5_0_0 -) TemporaryError, %End UnknownSocketError, }; enum SocketState { UnconnectedState, HostLookupState, ConnectingState, ConnectedState, BoundState, ListeningState, ClosingState, }; QAbstractSocket(QAbstractSocket::SocketType socketType, QObject *parent /TransferThis/); virtual ~QAbstractSocket(); %If (Qt_5_0_0 -) virtual void connectToHost(const QString &hostName, quint16 port, QFlags mode = QIODevice::ReadWrite, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::AnyIPProtocol) /ReleaseGIL/; %End %If (- Qt_5_0_0) void connectToHost(const QString &hostName, quint16 port, QFlags mode = QIODevice::ReadWrite) /ReleaseGIL/; %End %If (Qt_5_0_0 -) virtual void connectToHost(const QHostAddress &address, quint16 port, QFlags mode = QIODevice::ReadWrite) /ReleaseGIL/; %End %If (- Qt_5_0_0) void connectToHost(const QHostAddress &address, quint16 port, QFlags mode = QIODevice::ReadWrite) /ReleaseGIL/; %End %If (Qt_5_0_0 -) virtual void disconnectFromHost() /ReleaseGIL/; %End %If (- Qt_5_0_0) void disconnectFromHost() /ReleaseGIL/; %End bool isValid() const; virtual qint64 bytesAvailable() const; virtual qint64 bytesToWrite() const; virtual bool canReadLine() const; quint16 localPort() const; QHostAddress localAddress() const; quint16 peerPort() const; QHostAddress peerAddress() const; QString peerName() const; qint64 readBufferSize() const; %If (Qt_5_0_0 -) virtual void setReadBufferSize(qint64 size); %End %If (- Qt_5_0_0) void setReadBufferSize(qint64 size); %End void abort(); %If (Qt_5_0_0 -) virtual bool setSocketDescriptor(qintptr socketDescriptor, QAbstractSocket::SocketState state = QAbstractSocket::ConnectedState, QFlags mode = QIODevice::ReadWrite); %End %If (Qt_5_0_0 -) virtual qintptr socketDescriptor() const; %End %If (- Qt_5_0_0) int socketDescriptor() const; %End %If (- Qt_5_0_0) bool setSocketDescriptor(int socketDescriptor, QAbstractSocket::SocketState state = QAbstractSocket::ConnectedState, QIODevice::OpenMode mode = QIODevice::ReadWrite); %End QAbstractSocket::SocketType socketType() const; QAbstractSocket::SocketState state() const; QAbstractSocket::SocketError error() const; virtual void close(); virtual bool isSequential() const; virtual bool atEnd() const; bool flush() /ReleaseGIL/; %If (Qt_5_0_0 -) virtual bool waitForConnected(int msecs = 30000) /ReleaseGIL/; %End %If (- Qt_5_0_0) bool waitForConnected(int msecs = 30000) /ReleaseGIL/; %End virtual bool waitForReadyRead(int msecs = 30000) /ReleaseGIL/; virtual bool waitForBytesWritten(int msecs = 30000) /ReleaseGIL/; %If (Qt_5_0_0 -) virtual bool waitForDisconnected(int msecs = 30000) /ReleaseGIL/; %End %If (- Qt_5_0_0) bool waitForDisconnected(int msecs = 30000) /ReleaseGIL/; %End void setProxy(const QNetworkProxy &networkProxy); QNetworkProxy proxy() const; signals: void hostFound(); void connected(); void disconnected(); void stateChanged(QAbstractSocket::SocketState); void error(QAbstractSocket::SocketError); %If (Qt_4_3_0 -) void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator); %End protected slots: %If (- Qt_5_0_0) void connectToHostImplementation(const QString &hostName, quint16 port, QFlags mode = QIODevice::ReadWrite); %End %If (- Qt_5_0_0) void disconnectFromHostImplementation(); %End protected: virtual SIP_PYOBJECT readData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QAbstractSocket::readData(s, a0) : sipCpp->readData(s, a0); #else len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual SIP_PYOBJECT readLineData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QAbstractSocket::readLineData(s, a0) : sipCpp->readLineData(s, a0); #else len = sipCpp->sipProtectVirt_readLineData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; void setSocketState(QAbstractSocket::SocketState state); void setSocketError(QAbstractSocket::SocketError socketError); void setLocalPort(quint16 port); void setLocalAddress(const QHostAddress &address); void setPeerPort(quint16 port); void setPeerAddress(const QHostAddress &address); void setPeerName(const QString &name); public: %If (Qt_4_6_0 -) enum SocketOption { LowDelayOption, KeepAliveOption, %If (Qt_4_8_0 -) MulticastTtlOption, %End %If (Qt_4_8_0 -) MulticastLoopbackOption, %End %If (Qt_5_0_0 -) TypeOfServiceOption, %End }; %End %If (Qt_5_0_0 -) virtual void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value); %End %If (Qt_4_6_0 - Qt_5_0_0) void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value); %End %If (Qt_5_0_0 -) virtual QVariant socketOption(QAbstractSocket::SocketOption option); %End %If (Qt_4_6_0 - Qt_5_0_0) QVariant socketOption(QAbstractSocket::SocketOption option); %End %If (Qt_5_0_0 -) enum BindFlag { DefaultForPlatform, ShareAddress, DontShareAddress, ReuseAddressHint, }; %End %If (Qt_5_0_0 -) typedef QFlags BindMode; %End %If (Qt_5_0_0 -) enum PauseMode { PauseNever, PauseOnSslErrors, }; %End %If (Qt_5_0_0 -) typedef QFlags PauseModes; %End %If (Qt_5_0_0 -) virtual void resume() /ReleaseGIL/; %End %If (Qt_5_0_0 -) QFlags pauseMode() const; %End %If (Qt_5_0_0 -) void setPauseMode(QFlags pauseMode); %End %If (Qt_5_0_0 -) bool bind(const QHostAddress &address, quint16 port = 0, QFlags mode = QAbstractSocket::DefaultForPlatform); %End %If (Qt_5_0_0 -) bool bind(quint16 port = 0, QFlags mode = QAbstractSocket::DefaultForPlatform); %End private: QAbstractSocket(const QAbstractSocket &); }; %If (Qt_5_0_0 -) QFlags operator|(QAbstractSocket::BindFlag f1, QFlags f2); %End %If (Qt_5_0_0 -) QFlags operator|(QAbstractSocket::PauseMode f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qauthenticator.sip0000644000076500000240000000321212536324426022252 0ustar philstaff00000000000000// qauthenticator.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) class QAuthenticator { %TypeHeaderCode #include %End public: QAuthenticator(); QAuthenticator(const QAuthenticator &other); ~QAuthenticator(); bool operator==(const QAuthenticator &other) const; bool operator!=(const QAuthenticator &other) const; QString user() const; void setUser(const QString &user); QString password() const; void setPassword(const QString &password); QString realm() const; bool isNull() const; %If (Qt_4_7_0 -) QVariant option(const QString &opt) const; %End %If (Qt_4_7_0 -) QVariantHash options() const; %End %If (Qt_4_7_0 -) void setOption(const QString &opt, const QVariant &value); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qdnslookup.sip0000644000076500000240000001037112536324426021422 0ustar philstaff00000000000000// qdnslookup.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) class QDnsDomainNameRecord { %TypeHeaderCode #include %End public: QDnsDomainNameRecord(); QDnsDomainNameRecord(const QDnsDomainNameRecord &other); ~QDnsDomainNameRecord(); void swap(QDnsDomainNameRecord &other); QString name() const; quint32 timeToLive() const; QString value() const; }; %End %If (Qt_5_0_0 -) class QDnsHostAddressRecord { %TypeHeaderCode #include %End public: QDnsHostAddressRecord(); QDnsHostAddressRecord(const QDnsHostAddressRecord &other); ~QDnsHostAddressRecord(); void swap(QDnsHostAddressRecord &other); QString name() const; quint32 timeToLive() const; QHostAddress value() const; }; %End %If (Qt_5_0_0 -) class QDnsMailExchangeRecord { %TypeHeaderCode #include %End public: QDnsMailExchangeRecord(); QDnsMailExchangeRecord(const QDnsMailExchangeRecord &other); ~QDnsMailExchangeRecord(); void swap(QDnsMailExchangeRecord &other); QString exchange() const; QString name() const; quint16 preference() const; quint32 timeToLive() const; }; %End %If (Qt_5_0_0 -) class QDnsServiceRecord { %TypeHeaderCode #include %End public: QDnsServiceRecord(); QDnsServiceRecord(const QDnsServiceRecord &other); ~QDnsServiceRecord(); void swap(QDnsServiceRecord &other); QString name() const; quint16 port() const; quint16 priority() const; QString target() const; quint32 timeToLive() const; quint16 weight() const; }; %End %If (Qt_5_0_0 -) class QDnsTextRecord { %TypeHeaderCode #include %End public: QDnsTextRecord(); QDnsTextRecord(const QDnsTextRecord &other); ~QDnsTextRecord(); void swap(QDnsTextRecord &other); QString name() const; quint32 timeToLive() const; QList values() const; }; %End %If (Qt_5_0_0 -) class QDnsLookup : QObject { %TypeHeaderCode #include %End public: enum Error { NoError, ResolverError, OperationCancelledError, InvalidRequestError, InvalidReplyError, ServerFailureError, ServerRefusedError, NotFoundError, }; enum Type { A, AAAA, ANY, CNAME, MX, NS, PTR, SRV, TXT, }; explicit QDnsLookup(QObject *parent /TransferThis/ = 0); QDnsLookup(QDnsLookup::Type type, const QString &name, QObject *parent /TransferThis/ = 0); virtual ~QDnsLookup(); QDnsLookup::Error error() const; QString errorString() const; bool isFinished() const; QString name() const; void setName(const QString &name); QDnsLookup::Type type() const; void setType(QDnsLookup::Type); QList canonicalNameRecords() const; QList hostAddressRecords() const; QList mailExchangeRecords() const; QList nameServerRecords() const; QList pointerRecords() const; QList serviceRecords() const; QList textRecords() const; public slots: void abort() /ReleaseGIL/; void lookup() /ReleaseGIL/; signals: void finished(); void nameChanged(const QString &name); void typeChanged(QDnsLookup::Type type); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qftp.sip0000644000076500000240000001062212536324426020174 0ustar philstaff00000000000000// qftp.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) class QFtp : QObject { %TypeHeaderCode #include %End public: explicit QFtp(QObject *parent /TransferThis/ = 0); virtual ~QFtp(); enum State { Unconnected, HostLookup, Connecting, Connected, LoggedIn, Closing, }; enum Error { NoError, UnknownError, HostNotFound, ConnectionRefused, NotConnected, }; enum Command { None /PyName=None_/, SetTransferMode, SetProxy, ConnectToHost, Login, Close, List, Cd, Get, Put, Remove, Mkdir, Rmdir, Rename, RawCommand, }; enum TransferMode { Active, Passive, }; enum TransferType { Binary, Ascii, }; int setProxy(const QString &host, quint16 port); int connectToHost(const QString &host, quint16 port = 21) /ReleaseGIL/; int login(const QString &user /DocValue="Py_v3:''"/ = QString(), const QString &password /DocValue="Py_v3:''"/ = QString()) /ReleaseGIL/; int close() /ReleaseGIL/; int setTransferMode(QFtp::TransferMode mode); int list(const QString &directory /DocValue="Py_v3:''"/ = QString()) /ReleaseGIL/; int cd(const QString &directory) /ReleaseGIL/; int get(const QString &file, QIODevice *device = 0, QFtp::TransferType type = QFtp::Binary) /ReleaseGIL/; int put(const QByteArray &data, const QString &file, QFtp::TransferType type = QFtp::Binary) /ReleaseGIL/; int put(QIODevice *device, const QString &file, QFtp::TransferType type = QFtp::Binary) /ReleaseGIL/; int remove(const QString &file) /ReleaseGIL/; int mkdir(const QString &dir) /ReleaseGIL/; int rmdir(const QString &dir) /ReleaseGIL/; int rename(const QString &oldname, const QString &newname) /ReleaseGIL/; int rawCommand(const QString &command) /ReleaseGIL/; qint64 bytesAvailable() const; SIP_PYOBJECT read(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS len = sipCpp->read(s, a0); Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End QByteArray readAll() /ReleaseGIL/; int currentId() const; QIODevice *currentDevice() const; QFtp::Command currentCommand() const; bool hasPendingCommands() const; void clearPendingCommands(); QFtp::State state() const; QFtp::Error error() const; QString errorString() const; public slots: void abort(); signals: void stateChanged(int); void listInfo(const QUrlInfo &); void readyRead(); void dataTransferProgress(qint64, qint64); void rawCommandReply(int, const QString &); void commandStarted(int); void commandFinished(int, bool); void done(bool); private: QFtp(const QFtp &); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qhostaddress.sip0000644000076500000240000001135112536324426021726 0ustar philstaff00000000000000// qhostaddress.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QHostAddress { %TypeHeaderCode #include %End %ConvertToTypeCode // SIP doesn't support automatic type convertors so we explicitly allow a // QHostAddress::SpecialAddress to be used whenever a QHostAddress is expected. if (sipIsErr == NULL) return (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_QHostAddress_SpecialAddress)) || sipCanConvertToType(sipPy, sipType_QHostAddress, SIP_NO_CONVERTORS)); if (PyObject_TypeCheck(sipPy, sipTypeAsPyTypeObject(sipType_QHostAddress_SpecialAddress))) { *sipCppPtr = new QHostAddress((QHostAddress::SpecialAddress)SIPLong_AsLong(sipPy)); return sipGetState(sipTransferObj); } *sipCppPtr = reinterpret_cast(sipConvertToType(sipPy, sipType_QHostAddress, sipTransferObj, SIP_NO_CONVERTORS, 0, sipIsErr)); return 0; %End public: enum SpecialAddress { Null, Broadcast, LocalHost, LocalHostIPv6, %If (Qt_5_0_0 -) AnyIPv4, %End AnyIPv6, Any, }; QHostAddress(); QHostAddress(QHostAddress::SpecialAddress address /Constrained/); explicit QHostAddress(quint32 ip4Addr); explicit QHostAddress(const QString &address); explicit QHostAddress(const Q_IPV6ADDR &ip6Addr); QHostAddress(const QHostAddress ©); ~QHostAddress(); void setAddress(quint32 ip4Addr); bool setAddress(const QString &address); void setAddress(const Q_IPV6ADDR &ip6Addr); QAbstractSocket::NetworkLayerProtocol protocol() const; quint32 toIPv4Address() const; Q_IPV6ADDR toIPv6Address() const; QString toString() const; QString scopeId() const; void setScopeId(const QString &id); bool operator==(const QHostAddress &address) const; bool operator==(QHostAddress::SpecialAddress address) const; %If (Qt_4_2_0 -) bool operator!=(const QHostAddress &address) const; %End %If (Qt_4_2_0 -) bool operator!=(QHostAddress::SpecialAddress address) const; %End bool isNull() const; void clear(); %If (Qt_4_2_0 -) long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End %End %If (Qt_4_5_0 -) bool isInSubnet(const QHostAddress &subnet, int netmask) const; %End %If (Qt_4_5_0 -) bool isInSubnet(const QPair &subnet) const; %End %If (Qt_5_0_0 -) bool isLoopback() const; %End %If (Qt_4_5_0 -) static QPair parseSubnet(const QString &subnet); %End }; bool operator==(QHostAddress::SpecialAddress address1, const QHostAddress &address2); %If (Qt_4_2_0 -) QDataStream &operator<<(QDataStream &, const QHostAddress &); %End %If (Qt_4_2_0 -) QDataStream &operator>>(QDataStream &, QHostAddress &); %End // Q_IPV6ADDR is implemented as a Python 16-tuple of ints. %MappedType Q_IPV6ADDR /DocType="16-tuple-of-int"/ { %TypeHeaderCode #include %End %ConvertFromTypeCode // Create the tuple. PyObject *t; if ((t = PyTuple_New(16)) == NULL) return NULL; // Set the tuple elements. for (int i = 0; i < 16; ++i) { PyObject *pobj; if ((pobj = SIPLong_FromLong((*sipCpp)[i])) == NULL) { Py_DECREF(t); return NULL; } PyTuple_SET_ITEM(t, i, pobj); } return t; %End %ConvertToTypeCode // Check the type if that is all that is required. if (sipIsErr == NULL) return (PySequence_Check(sipPy) && PySequence_Size(sipPy) == 16); Q_IPV6ADDR *qa = new Q_IPV6ADDR; for (SIP_SSIZE_T i = 0; i < 16; ++i) { PyObject *itm = PySequence_ITEM(sipPy, i); if (!itm) { delete qa; *sipIsErr = 1; return 0; } (*qa)[i] = SIPLong_AsLong(itm); Py_DECREF(itm); } *sipCppPtr = qa; return sipGetState(sipTransferObj); %End }; PyQt-x11-gpl-4.11.4/sip/QtNetwork/qhostinfo.sip0000644000076500000240000000403612536324426021236 0ustar philstaff00000000000000// qhostinfo.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QHostInfo { %TypeHeaderCode #include %End public: enum HostInfoError { NoError, HostNotFound, UnknownError, }; %If (Qt_5_0_0 -) explicit QHostInfo(int id = -1); %End %If (- Qt_5_0_0) QHostInfo(int id = -1); %End QHostInfo(const QHostInfo &d); ~QHostInfo(); QString hostName() const; void setHostName(const QString &name); QList addresses() const; void setAddresses(const QList &addresses); QHostInfo::HostInfoError error() const; void setError(QHostInfo::HostInfoError error); QString errorString() const; void setErrorString(const QString &errorString); void setLookupId(int id); int lookupId() const; static int lookupHost(const QString &name, SIP_RXOBJ_CON receiver, SIP_SLOT_CON(QHostInfo) member) /ReleaseGIL/ [int (const QString &name, QObject *receiver, const char *member)]; static void abortHostLookup(int lookupId); static QHostInfo fromName(const QString &name); static QString localHostName(); %If (Qt_4_5_0 -) static QString localDomainName(); %End }; PyQt-x11-gpl-4.11.4/sip/QtNetwork/qhttp.sip0000644000076500000240000001705012536324426020364 0ustar philstaff00000000000000// qhttp.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) class QHttpHeader { %TypeHeaderCode #include %End public: QHttpHeader(); QHttpHeader(const QHttpHeader &header); QHttpHeader(const QString &str); virtual ~QHttpHeader(); void setValue(const QString &key, const QString &value); void setValues(const QList> &values); void addValue(const QString &key, const QString &value); QList> values() const; bool hasKey(const QString &key) const; QStringList keys() const; QString value(const QString &key) const; QStringList allValues(const QString &key) const; void removeValue(const QString &key); void removeAllValues(const QString &key); bool hasContentLength() const; uint contentLength() const; void setContentLength(int len); bool hasContentType() const; QString contentType() const; void setContentType(const QString &type); virtual QString toString() const; bool isValid() const; virtual int majorVersion() const = 0; virtual int minorVersion() const = 0; protected: virtual bool parseLine(const QString &line, int number); bool parse(const QString &str); void setValid(bool); }; %End %If (- Qt_5_0_0) class QHttpResponseHeader : QHttpHeader { %TypeHeaderCode #include %End public: QHttpResponseHeader(); QHttpResponseHeader(const QHttpResponseHeader &header); QHttpResponseHeader(const QString &str); QHttpResponseHeader(int code, const QString &text /DocValue="Py_v3:''"/ = QString(), int major = 1, int minor = 1); void setStatusLine(int code, const QString &text /DocValue="Py_v3:''"/ = QString(), int major = 1, int minor = 1); int statusCode() const; QString reasonPhrase() const; virtual int majorVersion() const; virtual int minorVersion() const; virtual QString toString() const; protected: virtual bool parseLine(const QString &line, int number); }; %End %If (- Qt_5_0_0) class QHttpRequestHeader : QHttpHeader { %TypeHeaderCode #include %End public: QHttpRequestHeader(); QHttpRequestHeader(const QString &method, const QString &path, int major = 1, int minor = 1); QHttpRequestHeader(const QHttpRequestHeader &header); QHttpRequestHeader(const QString &str); void setRequest(const QString &method, const QString &path, int major = 1, int minor = 1); QString method() const; QString path() const; virtual int majorVersion() const; virtual int minorVersion() const; virtual QString toString() const; protected: virtual bool parseLine(const QString &line, int number); }; %End %If (- Qt_5_0_0) class QHttp : QObject { %TypeHeaderCode #include %End public: explicit QHttp(QObject *parent /TransferThis/ = 0); QHttp(const QString &hostName, quint16 port = 80, QObject *parent /TransferThis/ = 0); %If (Qt_4_3_0 -) QHttp(const QString &hostname, QHttp::ConnectionMode mode, quint16 port = 0, QObject *parent /TransferThis/ = 0); %End virtual ~QHttp(); %If (Qt_4_3_0 -) enum ConnectionMode { ConnectionModeHttp, ConnectionModeHttps, }; %End enum State { Unconnected, HostLookup, Connecting, Sending, Reading, Connected, Closing, }; enum Error { NoError, UnknownError, HostNotFound, ConnectionRefused, UnexpectedClose, InvalidResponseHeader, WrongContentLength, Aborted, %If (Qt_4_3_0 -) AuthenticationRequiredError, %End %If (Qt_4_3_0 -) ProxyAuthenticationRequiredError, %End }; int setHost(const QString &hostName, quint16 port = 80); %If (Qt_4_3_0 -) int setHost(const QString &hostname, QHttp::ConnectionMode mode, quint16 port = 0); %End int setSocket(QTcpSocket *socket /KeepReference/); int setUser(const QString &userName, const QString &password /DocValue="Py_v3:''"/ = QString()); int setProxy(const QString &host, int port, const QString &user /DocValue="Py_v3:''"/ = QString(), const QString &password /DocValue="Py_v3:''"/ = QString()); %If (Qt_4_3_0 -) int setProxy(const QNetworkProxy &proxy); %End int get(const QString &path, QIODevice *to = 0); int post(const QString &path, QIODevice *data, QIODevice *to = 0); int post(const QString &path, const QByteArray &data, QIODevice *to = 0); int head(const QString &path); int request(const QHttpRequestHeader &header, QIODevice *data = 0, QIODevice *to = 0); int request(const QHttpRequestHeader &header, const QByteArray &data, QIODevice *to = 0); int close(); qint64 bytesAvailable() const; SIP_PYOBJECT read(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS len = sipCpp->read(s, a0); Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End QByteArray readAll() /ReleaseGIL/; int currentId() const; QIODevice *currentSourceDevice() const; QIODevice *currentDestinationDevice() const; QHttpRequestHeader currentRequest() const; QHttpResponseHeader lastResponse() const; bool hasPendingRequests() const; void clearPendingRequests(); QHttp::State state() const; QHttp::Error error() const; QString errorString() const; public slots: void abort(); %If (Qt_4_3_0 -) %If (PyQt_OpenSSL) void ignoreSslErrors(); %End %End signals: void stateChanged(int); void responseHeaderReceived(const QHttpResponseHeader &resp); void readyRead(const QHttpResponseHeader &resp); void dataSendProgress(int, int); void dataReadProgress(int, int); void requestStarted(int); void requestFinished(int, bool); void done(bool); %If (Qt_4_3_0 -) void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *); %End %If (Qt_4_3_0 -) void authenticationRequired(const QString &hostname, quint16 port, QAuthenticator *); %End %If (Qt_4_3_0 -) %If (PyQt_OpenSSL) void sslErrors(const QList &errors); %End %End private: QHttp(const QHttp &); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qhttpmultipart.sip0000644000076500000240000000442012536324426022323 0ustar philstaff00000000000000// qhttpmultipart.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_8_0 -) class QHttpPart { %TypeHeaderCode #include %End public: QHttpPart(); QHttpPart(const QHttpPart &other); ~QHttpPart(); bool operator==(const QHttpPart &other) const; bool operator!=(const QHttpPart &other) const; void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value); void setRawHeader(const QByteArray &headerName, const QByteArray &headerValue); void setBody(const QByteArray &body); void setBodyDevice(QIODevice *device); %If (Qt_5_0_0 -) void swap(QHttpPart &other); %End }; %End %If (Qt_4_8_0 -) class QHttpMultiPart : QObject { %TypeHeaderCode #include %End public: enum ContentType { MixedType, RelatedType, FormDataType, AlternativeType, }; %If (Qt_5_0_0 -) explicit QHttpMultiPart(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QHttpMultiPart(QObject *parent /TransferThis/ = 0); %End QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent /TransferThis/ = 0); virtual ~QHttpMultiPart(); void append(const QHttpPart &httpPart); void setContentType(QHttpMultiPart::ContentType contentType); QByteArray boundary() const; void setBoundary(const QByteArray &boundary); private: QHttpMultiPart(const QHttpMultiPart &); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qlocalserver.sip0000644000076500000240000000522712536324426021731 0ustar philstaff00000000000000// qlocalserver.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %ModuleCode #include %End %End %If (Qt_4_4_0 -) class QLocalServer : QObject { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QLocalServer(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QLocalServer(QObject *parent /TransferThis/ = 0); %End virtual ~QLocalServer(); void close(); QString errorString() const; virtual bool hasPendingConnections() const; bool isListening() const; bool listen(const QString &name); %If (Qt_5_0_0 -) bool listen(qintptr socketDescriptor); %End int maxPendingConnections() const; virtual QLocalSocket *nextPendingConnection(); QString serverName() const; QString fullServerName() const; QAbstractSocket::SocketError serverError() const; void setMaxPendingConnections(int numConnections); bool waitForNewConnection(int msecs = 0, bool *timedOut = 0) /ReleaseGIL/; %If (Qt_4_5_0 -) static bool removeServer(const QString &name); %End signals: void newConnection(); protected: virtual void incomingConnection(quintptr socketDescriptor); public: %If (Qt_5_0_0 -) enum SocketOption { UserAccessOption, GroupAccessOption, OtherAccessOption, WorldAccessOption, }; %End %If (Qt_5_0_0 -) typedef QFlags SocketOptions; %End %If (Qt_5_0_0 -) void setSocketOptions(QFlags options); %End %If (Qt_5_0_0 -) QFlags socketOptions() const; %End private: QLocalServer(const QLocalServer &); }; %End %If (Qt_5_0_0 -) QFlags operator|(QLocalServer::SocketOption f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qlocalsocket.sip0000644000076500000240000001116312536324426021707 0ustar philstaff00000000000000// qlocalsocket.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QLocalSocket : QIODevice { %TypeHeaderCode #include %End public: enum LocalSocketError { ConnectionRefusedError, PeerClosedError, ServerNotFoundError, SocketAccessError, SocketResourceError, SocketTimeoutError, DatagramTooLargeError, ConnectionError, UnsupportedSocketOperationError, %If (Qt_5_0_0 -) OperationError, %End UnknownSocketError, }; enum LocalSocketState { UnconnectedState, ConnectingState, ConnectedState, ClosingState, }; QLocalSocket(QObject *parent /TransferThis/ = 0); virtual ~QLocalSocket(); %If (Qt_5_0_0 -) void connectToServer(const QString &name, QFlags mode = QIODevice::ReadWrite) /ReleaseGIL/; %End %If (- Qt_5_0_0) void connectToServer(const QString &name, QIODevice::OpenMode mode = QIODevice::ReadWrite) /ReleaseGIL/; %End void disconnectFromServer() /ReleaseGIL/; QString serverName() const; QString fullServerName() const; void abort(); virtual bool isSequential() const; virtual qint64 bytesAvailable() const; virtual qint64 bytesToWrite() const; virtual bool canReadLine() const; virtual void close(); QLocalSocket::LocalSocketError error() const; bool flush(); bool isValid() const; qint64 readBufferSize() const; void setReadBufferSize(qint64 size); %If (Qt_5_0_0 -) bool setSocketDescriptor(qintptr socketDescriptor, QLocalSocket::LocalSocketState state = QLocalSocket::ConnectedState, QFlags mode = QIODevice::ReadWrite); %End %If (- Qt_5_0_0) bool setSocketDescriptor(quintptr socketDescriptor, QLocalSocket::LocalSocketState state = QLocalSocket::ConnectedState, QIODevice::OpenMode mode = QIODevice::ReadWrite); %End %If (Qt_5_0_0 -) qintptr socketDescriptor() const; %End %If (- Qt_5_0_0) quintptr socketDescriptor() const; %End QLocalSocket::LocalSocketState state() const; virtual bool waitForBytesWritten(int msecs = 30000) /ReleaseGIL/; bool waitForConnected(int msecs = 30000) /ReleaseGIL/; bool waitForDisconnected(int msecs = 30000) /ReleaseGIL/; virtual bool waitForReadyRead(int msecs = 30000) /ReleaseGIL/; signals: void connected(); void disconnected(); void error(QLocalSocket::LocalSocketError socketError); void stateChanged(QLocalSocket::LocalSocketState socketState); protected: virtual SIP_PYOBJECT readData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *, qint64)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QLocalSocket::readData(s, a0) : sipCpp->readData(s, a0); #else len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual qint64 writeData(const char * /Array/, qint64 /ArraySize/) /ReleaseGIL/; private: QLocalSocket(const QLocalSocket &); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkaccessmanager.sip0000644000076500000240000000770312536324426023617 0ustar philstaff00000000000000// qnetworkaccessmanager.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QNetworkAccessManager : QObject { %TypeHeaderCode #include %End public: enum Operation { HeadOperation, GetOperation, PutOperation, PostOperation, %If (Qt_4_6_0 -) DeleteOperation, %End %If (Qt_4_7_0 -) CustomOperation, %End }; explicit QNetworkAccessManager(QObject *parent /TransferThis/ = 0); virtual ~QNetworkAccessManager(); QNetworkProxy proxy() const; void setProxy(const QNetworkProxy &proxy); QNetworkCookieJar *cookieJar() const; void setCookieJar(QNetworkCookieJar *cookieJar /Transfer/); QNetworkReply *head(const QNetworkRequest &request); QNetworkReply *get(const QNetworkRequest &request); QNetworkReply *post(const QNetworkRequest &request, QIODevice *data); QNetworkReply *post(const QNetworkRequest &request, const QByteArray &data); %If (Qt_4_8_0 -) QNetworkReply *post(const QNetworkRequest &request, QHttpMultiPart *multiPart); %End QNetworkReply *put(const QNetworkRequest &request, QIODevice *data); QNetworkReply *put(const QNetworkRequest &request, const QByteArray &data); %If (Qt_4_8_0 -) QNetworkReply *put(const QNetworkRequest &request, QHttpMultiPart *multiPart); %End signals: void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator); void authenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator); void finished(QNetworkReply *reply); %If (PyQt_OpenSSL) void sslErrors(QNetworkReply *reply, const QList &errors); %End %If (Qt_4_7_0 -) void networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility accessible); %End protected: virtual QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *device = 0) /AbortOnException,DisallowNone/; public: %If (Qt_4_5_0 -) QNetworkProxyFactory *proxyFactory() const; %End %If (Qt_4_5_0 -) void setProxyFactory(QNetworkProxyFactory *factory /Transfer/); %End %If (Qt_4_5_0 -) QAbstractNetworkCache *cache() const; %End %If (Qt_4_5_0 -) void setCache(QAbstractNetworkCache *cache /Transfer/); %End %If (Qt_4_6_0 -) QNetworkReply *deleteResource(const QNetworkRequest &request); %End %If (Qt_4_7_0 -) enum NetworkAccessibility { UnknownAccessibility, NotAccessible, Accessible, }; %End %If (Qt_4_7_0 -) QNetworkReply *sendCustomRequest(const QNetworkRequest &request, const QByteArray &verb, QIODevice *data = 0); %End %If (Qt_4_7_0 -) void setConfiguration(const QNetworkConfiguration &config); %End %If (Qt_4_7_0 -) QNetworkConfiguration configuration() const; %End %If (Qt_4_7_0 -) QNetworkConfiguration activeConfiguration() const; %End %If (Qt_4_7_0 -) void setNetworkAccessible(QNetworkAccessManager::NetworkAccessibility accessible); %End %If (Qt_4_7_0 -) QNetworkAccessManager::NetworkAccessibility networkAccessible() const; %End %If (Qt_5_0_0 -) void clearAccessCache(); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkconfigmanager.sip0000644000076500000240000000545712536324426023627 0ustar philstaff00000000000000// qnetworkconfigmanager.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) %ModuleCode #include %End %End %If (Qt_4_7_0 -) class QNetworkConfigurationManager : QObject { %TypeHeaderCode #include %End public: enum Capability { CanStartAndStopInterfaces, DirectConnectionRouting, SystemSessionSupport, ApplicationLevelRoaming, ForcedRoaming, DataStatistics, NetworkSessionRequired, }; typedef QFlags Capabilities; %If (Qt_4_8_0 -) explicit QNetworkConfigurationManager(QObject *parent /TransferThis/ = 0); %End %If (- Qt_4_8_0) QNetworkConfigurationManager(QObject *parent /TransferThis/ = 0); %End virtual ~QNetworkConfigurationManager(); QFlags capabilities() const; QNetworkConfiguration defaultConfiguration() const; QList allConfigurations(QFlags flags = 0) const; QNetworkConfiguration configurationFromIdentifier(const QString &identifier) const; void updateConfigurations(); bool isOnline() const; signals: void configurationAdded(const QNetworkConfiguration &config); void configurationRemoved(const QNetworkConfiguration &config); void configurationChanged(const QNetworkConfiguration &config); void onlineStateChanged(bool isOnline); void updateCompleted(); private: %If (Qt_5_0_0 -) QNetworkConfigurationManager(const QNetworkConfigurationManager &); %End }; %End %If (Qt_4_7_0 -) QFlags operator|(QNetworkConfigurationManager::Capability f1, QFlags f2); %End %If (Qt_4_7_0 -) QFlags operator|(QNetworkConfigurationManager::Capability f1, QNetworkConfigurationManager::Capability f2); %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkconfiguration.sip0000644000076500000240000000473612536324426023675 0ustar philstaff00000000000000// qnetworkconfiguration.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QNetworkConfiguration { %TypeHeaderCode #include %End public: QNetworkConfiguration(); QNetworkConfiguration(const QNetworkConfiguration &other); ~QNetworkConfiguration(); bool operator==(const QNetworkConfiguration &cp) const; bool operator!=(const QNetworkConfiguration &cp) const; enum Type { InternetAccessPoint, ServiceNetwork, UserChoice, Invalid, }; enum Purpose { UnknownPurpose, PublicPurpose, PrivatePurpose, ServiceSpecificPurpose, }; enum StateFlag { Undefined, Defined, Discovered, Active, }; typedef QFlags StateFlags; enum BearerType { BearerUnknown, BearerEthernet, BearerWLAN, Bearer2G, BearerCDMA2000, BearerWCDMA, BearerHSPA, BearerBluetooth, BearerWiMAX, }; QFlags state() const; QNetworkConfiguration::Type type() const; QNetworkConfiguration::Purpose purpose() const; %If (- Qt_5_0_0) QString bearerName() const; %End QNetworkConfiguration::BearerType bearerType() const; QString bearerTypeName() const; QString identifier() const; bool isRoamingAvailable() const; QList children() const; QString name() const; bool isValid() const; %If (Qt_5_0_0 -) void swap(QNetworkConfiguration &other); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkcookie.sip0000644000076500000240000000557012536324426022274 0ustar philstaff00000000000000// qnetworkcookie.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QNetworkCookie { %TypeHeaderCode #include %End public: enum RawForm { NameAndValueOnly, Full, }; QNetworkCookie(const QByteArray &name = QByteArray(), const QByteArray &value = QByteArray()); QNetworkCookie(const QNetworkCookie &other); ~QNetworkCookie(); bool isSecure() const; void setSecure(bool enable); bool isSessionCookie() const; QDateTime expirationDate() const; void setExpirationDate(const QDateTime &date); QString domain() const; void setDomain(const QString &domain); QString path() const; void setPath(const QString &path); QByteArray name() const; void setName(const QByteArray &cookieName); QByteArray value() const; void setValue(const QByteArray &value); QByteArray toRawForm(QNetworkCookie::RawForm form = QNetworkCookie::Full) const; static QList parseCookies(const QByteArray &cookieString); bool operator==(const QNetworkCookie &other) const; bool operator!=(const QNetworkCookie &other) const; %If (Qt_4_5_0 -) bool isHttpOnly() const; %End %If (Qt_4_5_0 -) void setHttpOnly(bool enable); %End %If (Qt_5_0_0 -) void swap(QNetworkCookie &other); %End %If (Qt_5_0_0 -) bool hasSameIdentifier(const QNetworkCookie &other) const; %End %If (Qt_5_0_0 -) void normalize(const QUrl &url); %End }; %End %If (Qt_4_4_0 - Qt_4_6_0) class QNetworkCookieJar : QObject { %TypeHeaderCode #include %End public: QNetworkCookieJar(QObject *parent /TransferThis/ = 0); virtual ~QNetworkCookieJar(); virtual QList cookiesForUrl(const QUrl &url) const; virtual bool setCookiesFromUrl(const QList &cookieList, const QUrl &url); protected: QList allCookies() const; void setAllCookies(const QList &cookieList); private: QNetworkCookieJar(const QNetworkCookieJar &); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkcookiejar.sip0000644000076500000240000000371212536324426022765 0ustar philstaff00000000000000// qnetworkcookiejar.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QNetworkCookieJar : QObject { %TypeHeaderCode #include %End public: %If (Qt_5_0_0 -) explicit QNetworkCookieJar(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QNetworkCookieJar(QObject *parent /TransferThis/ = 0); %End virtual ~QNetworkCookieJar(); virtual QList cookiesForUrl(const QUrl &url) const; virtual bool setCookiesFromUrl(const QList &cookieList, const QUrl &url); %If (Qt_5_0_0 -) virtual bool insertCookie(const QNetworkCookie &cookie); %End %If (Qt_5_0_0 -) virtual bool updateCookie(const QNetworkCookie &cookie); %End %If (Qt_5_0_0 -) virtual bool deleteCookie(const QNetworkCookie &cookie); %End protected: void setAllCookies(const QList &cookieList); QList allCookies() const; %If (Qt_5_0_0 -) virtual bool validateCookie(const QNetworkCookie &cookie, const QUrl &url) const; %End private: QNetworkCookieJar(const QNetworkCookieJar &); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkdiskcache.sip0000644000076500000240000000365512536324426022743 0ustar philstaff00000000000000// qnetworkdiskcache.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_5_0 -) class QNetworkDiskCache : QAbstractNetworkCache { %TypeHeaderCode #include %End public: explicit QNetworkDiskCache(QObject *parent /TransferThis/ = 0); virtual ~QNetworkDiskCache(); QString cacheDirectory() const; void setCacheDirectory(const QString &cacheDir); qint64 maximumCacheSize() const; void setMaximumCacheSize(qint64 size); virtual qint64 cacheSize() const; virtual QNetworkCacheMetaData metaData(const QUrl &url); virtual void updateMetaData(const QNetworkCacheMetaData &metaData); virtual QIODevice *data(const QUrl &url) /Factory/; virtual bool remove(const QUrl &url); virtual QIODevice *prepare(const QNetworkCacheMetaData &metaData); virtual void insert(QIODevice *device); QNetworkCacheMetaData fileMetaData(const QString &fileName) const; public slots: virtual void clear(); protected: virtual qint64 expire(); private: QNetworkDiskCache(const QNetworkDiskCache &); }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkinterface.sip0000644000076500000240000000577512536324426022772 0ustar philstaff00000000000000// qnetworkinterface.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) %ModuleCode #include %End %End %If (Qt_4_2_0 -) class QNetworkAddressEntry { %TypeHeaderCode #include %End public: QNetworkAddressEntry(); QNetworkAddressEntry(const QNetworkAddressEntry &other); ~QNetworkAddressEntry(); QHostAddress ip() const; void setIp(const QHostAddress &newIp); QHostAddress netmask() const; void setNetmask(const QHostAddress &newNetmask); QHostAddress broadcast() const; void setBroadcast(const QHostAddress &newBroadcast); %If (Qt_4_5_0 -) bool operator==(const QNetworkAddressEntry &other) const; %End %If (Qt_4_5_0 -) bool operator!=(const QNetworkAddressEntry &other) const; %End %If (Qt_4_5_0 -) int prefixLength() const; %End %If (Qt_4_5_0 -) void setPrefixLength(int length); %End %If (Qt_5_0_0 -) void swap(QNetworkAddressEntry &other); %End }; %End %If (Qt_4_2_0 -) class QNetworkInterface { %TypeHeaderCode #include %End public: enum InterfaceFlag { IsUp, IsRunning, CanBroadcast, IsLoopBack, IsPointToPoint, CanMulticast, }; typedef QFlags InterfaceFlags; QNetworkInterface(); QNetworkInterface(const QNetworkInterface &other); ~QNetworkInterface(); bool isValid() const; QString name() const; QFlags flags() const; QString hardwareAddress() const; QList addressEntries() const; static QNetworkInterface interfaceFromName(const QString &name); static QNetworkInterface interfaceFromIndex(int index); static QList allInterfaces(); static QList allAddresses(); %If (Qt_4_5_0 -) int index() const; %End %If (Qt_4_5_0 -) QString humanReadableName() const; %End %If (Qt_5_0_0 -) void swap(QNetworkInterface &other); %End }; %End %If (Qt_4_2_0 -) QFlags operator|(QNetworkInterface::InterfaceFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkproxy.sip0000644000076500000240000001436412536324426022205 0ustar philstaff00000000000000// qnetworkproxy.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QNetworkProxy { %TypeHeaderCode #include %End public: enum ProxyType { DefaultProxy, Socks5Proxy, NoProxy, %If (Qt_4_3_0 -) HttpProxy, %End %If (Qt_4_4_0 -) HttpCachingProxy, %End %If (Qt_4_4_0 -) FtpCachingProxy, %End }; QNetworkProxy(); QNetworkProxy(QNetworkProxy::ProxyType type, const QString &hostName /DocValue="Py_v3:''"/ = QString(), quint16 port = 0, const QString &user /DocValue="Py_v3:''"/ = QString(), const QString &password /DocValue="Py_v3:''"/ = QString()); QNetworkProxy(const QNetworkProxy &other); ~QNetworkProxy(); void setType(QNetworkProxy::ProxyType type); QNetworkProxy::ProxyType type() const; void setUser(const QString &userName); QString user() const; void setPassword(const QString &password); QString password() const; void setHostName(const QString &hostName); QString hostName() const; void setPort(quint16 port); quint16 port() const; static void setApplicationProxy(const QNetworkProxy &proxy); static QNetworkProxy applicationProxy(); %If (Qt_4_4_0 -) bool isCachingProxy() const; %End %If (Qt_4_4_0 -) bool isTransparentProxy() const; %End %If (Qt_4_4_0 -) bool operator==(const QNetworkProxy &other) const; %End %If (Qt_4_4_0 -) bool operator!=(const QNetworkProxy &other) const; %End %If (Qt_4_5_0 -) enum Capability { TunnelingCapability, ListeningCapability, UdpTunnelingCapability, CachingCapability, HostNameLookupCapability, }; %End %If (Qt_4_5_0 -) typedef QFlags Capabilities; %End %If (Qt_4_5_0 -) void setCapabilities(QFlags capab); %End %If (Qt_4_5_0 -) QFlags capabilities() const; %End %If (Qt_5_0_0 -) void swap(QNetworkProxy &other); %End %If (Qt_5_0_0 -) QVariant header(QNetworkRequest::KnownHeaders header) const; %End %If (Qt_5_0_0 -) void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value); %End %If (Qt_5_0_0 -) bool hasRawHeader(const QByteArray &headerName) const; %End %If (Qt_5_0_0 -) QList rawHeaderList() const; %End %If (Qt_5_0_0 -) QByteArray rawHeader(const QByteArray &headerName) const; %End %If (Qt_5_0_0 -) void setRawHeader(const QByteArray &headerName, const QByteArray &value); %End }; %If (Qt_4_5_0 -) class QNetworkProxyQuery { %TypeHeaderCode #include %End public: enum QueryType { TcpSocket, UdpSocket, TcpServer, UrlRequest, }; QNetworkProxyQuery(); QNetworkProxyQuery(const QUrl &requestUrl, QNetworkProxyQuery::QueryType type = QNetworkProxyQuery::UrlRequest); QNetworkProxyQuery(const QString &hostname, int port, const QString &protocolTag /DocValue="Py_v3:''"/ = QString(), QNetworkProxyQuery::QueryType type = QNetworkProxyQuery::TcpSocket); QNetworkProxyQuery(quint16 bindPort, const QString &protocolTag /DocValue="Py_v3:''"/ = QString(), QNetworkProxyQuery::QueryType type = QNetworkProxyQuery::TcpServer); %If (Qt_4_8_0 -) QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, const QUrl &requestUrl, QNetworkProxyQuery::QueryType queryType = QNetworkProxyQuery::UrlRequest); %End %If (Qt_4_8_0 -) QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, const QString &hostname, int port, const QString &protocolTag /DocValue="Py_v3:''"/ = QString(), QNetworkProxyQuery::QueryType type = QNetworkProxyQuery::TcpSocket); %End %If (Qt_4_8_0 -) QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, quint16 bindPort, const QString &protocolTag /DocValue="Py_v3:''"/ = QString(), QNetworkProxyQuery::QueryType type = QNetworkProxyQuery::TcpServer); %End QNetworkProxyQuery(const QNetworkProxyQuery &other); ~QNetworkProxyQuery(); bool operator==(const QNetworkProxyQuery &other) const; bool operator!=(const QNetworkProxyQuery &other) const; QNetworkProxyQuery::QueryType queryType() const; void setQueryType(QNetworkProxyQuery::QueryType type); int peerPort() const; void setPeerPort(int port); QString peerHostName() const; void setPeerHostName(const QString &hostname); int localPort() const; void setLocalPort(int port); QString protocolTag() const; void setProtocolTag(const QString &protocolTag); QUrl url() const; void setUrl(const QUrl &url); %If (Qt_4_8_0 -) QNetworkConfiguration networkConfiguration() const; %End %If (Qt_4_8_0 -) void setNetworkConfiguration(const QNetworkConfiguration &networkConfiguration); %End %If (Qt_5_0_0 -) void swap(QNetworkProxyQuery &other); %End }; %End %If (Qt_4_5_0 -) class QNetworkProxyFactory /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: QNetworkProxyFactory(); virtual ~QNetworkProxyFactory(); virtual QList queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery()) = 0; static void setApplicationProxyFactory(QNetworkProxyFactory *factory /Transfer/); static QList proxyForQuery(const QNetworkProxyQuery &query); static QList systemProxyForQuery(const QNetworkProxyQuery &query = QNetworkProxyQuery()); %If (Qt_4_6_0 -) static void setUseSystemConfiguration(bool enable); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkreply.sip0000644000076500000240000001121612536324426022150 0ustar philstaff00000000000000// qnetworkreply.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QNetworkReply : QIODevice { %TypeHeaderCode #include %End public: enum NetworkError { NoError, ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, TimeoutError, OperationCanceledError, SslHandshakeFailedError, UnknownNetworkError, ProxyConnectionRefusedError, ProxyConnectionClosedError, ProxyNotFoundError, ProxyTimeoutError, ProxyAuthenticationRequiredError, UnknownProxyError, ContentAccessDenied, ContentOperationNotPermittedError, ContentNotFoundError, AuthenticationRequiredError, UnknownContentError, ProtocolUnknownError, ProtocolInvalidOperationError, ProtocolFailure, %If (Qt_4_6_0 -) ContentReSendError, %End %If (Qt_4_7_0 -) TemporaryNetworkFailureError, %End %If (Qt_5_0_0 -) NetworkSessionFailedError, %End %If (Qt_5_0_0 -) BackgroundRequestNotAllowedError, %End }; virtual ~QNetworkReply(); virtual void abort() = 0; virtual void close(); virtual bool isSequential() const; qint64 readBufferSize() const; virtual void setReadBufferSize(qint64 size); QNetworkAccessManager *manager() const; QNetworkAccessManager::Operation operation() const; QNetworkRequest request() const; QNetworkReply::NetworkError error() const; QUrl url() const; QVariant header(QNetworkRequest::KnownHeaders header) const; bool hasRawHeader(const QByteArray &headerName) const; QList rawHeaderList() const; QByteArray rawHeader(const QByteArray &headerName) const; QVariant attribute(QNetworkRequest::Attribute code) const; %If (PyQt_OpenSSL) QSslConfiguration sslConfiguration() const; %End %If (PyQt_OpenSSL) void setSslConfiguration(const QSslConfiguration &configuration); %End public slots: virtual void ignoreSslErrors(); signals: void metaDataChanged(); void finished(); void error(QNetworkReply::NetworkError); %If (PyQt_OpenSSL) void sslErrors(const QList &errors); %End void uploadProgress(qint64 bytesSent, qint64 bytesTotal); void downloadProgress(qint64 bytesReceived, qint64 bytesTotal); protected: %If (Qt_5_0_0 -) explicit QNetworkReply(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QNetworkReply(QObject *parent /TransferThis/ = 0); %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; void setOperation(QNetworkAccessManager::Operation operation); void setRequest(const QNetworkRequest &request); void setError(QNetworkReply::NetworkError errorCode, const QString &errorString); void setUrl(const QUrl &url); void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value); void setRawHeader(const QByteArray &headerName, const QByteArray &value); void setAttribute(QNetworkRequest::Attribute code, const QVariant &value); %If (Qt_4_8_0 -) void setFinished(bool finished); %End public: %If (Qt_4_6_0 -) bool isFinished() const; %End %If (Qt_4_6_0 -) bool isRunning() const; %End %If (Qt_4_6_0 -) %If (PyQt_OpenSSL) void ignoreSslErrors(const QList &errors); %End %End %If (Qt_4_7_0 -) const QList> &rawHeaderPairs() const; %End protected: %If (Qt_5_0_0 -) %If (PyQt_OpenSSL) virtual void sslConfigurationImplementation(QSslConfiguration &) const; %End %End %If (Qt_5_0_0 -) %If (PyQt_OpenSSL) virtual void setSslConfigurationImplementation(const QSslConfiguration &); %End %End %If (Qt_5_0_0 -) %If (PyQt_OpenSSL) virtual void ignoreSslErrorsImplementation(const QList &); %End %End }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworkrequest.sip0000644000076500000240000000761212536324426022512 0ustar philstaff00000000000000// qnetworkrequest.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QNetworkRequest { %TypeHeaderCode #include %End public: enum KnownHeaders { ContentTypeHeader, ContentLengthHeader, LocationHeader, LastModifiedHeader, CookieHeader, SetCookieHeader, %If (Qt_4_8_0 -) ContentDispositionHeader, %End %If (Qt_5_0_0 -) UserAgentHeader, %End %If (Qt_5_0_0 -) ServerHeader, %End }; enum Attribute { HttpStatusCodeAttribute, HttpReasonPhraseAttribute, RedirectionTargetAttribute, ConnectionEncryptedAttribute, CacheLoadControlAttribute, CacheSaveControlAttribute, %If (Qt_4_5_0 -) SourceIsFromCacheAttribute, %End %If (Qt_4_6_0 -) DoNotBufferUploadDataAttribute, %End %If (Qt_4_6_0 -) HttpPipeliningAllowedAttribute, %End %If (Qt_4_6_0 -) HttpPipeliningWasUsedAttribute, %End %If (Qt_4_7_0 -) CustomVerbAttribute, %End %If (Qt_4_7_0 -) CookieLoadControlAttribute, %End %If (Qt_4_7_0 -) AuthenticationReuseAttribute, %End %If (Qt_4_7_0 -) CookieSaveControlAttribute, %End %If (Qt_5_0_0 -) BackgroundRequestAttribute, %End User, UserMax, }; enum CacheLoadControl { AlwaysNetwork, PreferNetwork, PreferCache, AlwaysCache, }; %If (Qt_4_7_0 -) enum LoadControl { Automatic, Manual, }; %End %If (Qt_4_7_0 -) enum Priority { HighPriority, NormalPriority, LowPriority, }; %End explicit QNetworkRequest(const QUrl &url = QUrl()); QNetworkRequest(const QNetworkRequest &other); ~QNetworkRequest(); QUrl url() const; void setUrl(const QUrl &url); QVariant header(QNetworkRequest::KnownHeaders header) const; void setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value); bool hasRawHeader(const QByteArray &headerName) const; QList rawHeaderList() const; QByteArray rawHeader(const QByteArray &headerName) const; void setRawHeader(const QByteArray &headerName, const QByteArray &value); QVariant attribute(QNetworkRequest::Attribute code, const QVariant &defaultValue /DocValue="Py_v3:None"/ = QVariant()) const; void setAttribute(QNetworkRequest::Attribute code, const QVariant &value); %If (PyQt_OpenSSL) QSslConfiguration sslConfiguration() const; %End %If (PyQt_OpenSSL) void setSslConfiguration(const QSslConfiguration &configuration); %End bool operator==(const QNetworkRequest &other) const; bool operator!=(const QNetworkRequest &other) const; %If (Qt_4_6_0 -) void setOriginatingObject(QObject *object /KeepReference/); %End %If (Qt_4_6_0 -) QObject *originatingObject() const; %End %If (Qt_4_7_0 -) QNetworkRequest::Priority priority() const; %End %If (Qt_4_7_0 -) void setPriority(QNetworkRequest::Priority priority); %End %If (Qt_5_0_0 -) void swap(QNetworkRequest &other); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qnetworksession.sip0000644000076500000240000000634012536324426022502 0ustar philstaff00000000000000// qnetworksession.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) class QNetworkSession : QObject { %TypeHeaderCode #include %End public: enum State { Invalid, NotAvailable, Connecting, Connected, Closing, Disconnected, Roaming, }; enum SessionError { UnknownSessionError, SessionAbortedError, RoamingError, OperationNotSupportedError, InvalidConfigurationError, }; QNetworkSession(const QNetworkConfiguration &connConfig, QObject *parent /TransferThis/ = 0); virtual ~QNetworkSession(); bool isOpen() const; QNetworkConfiguration configuration() const; QNetworkInterface interface() const; QNetworkSession::State state() const; QNetworkSession::SessionError error() const; QString errorString() const; QVariant sessionProperty(const QString &key) const; void setSessionProperty(const QString &key, const QVariant &value); quint64 bytesWritten() const; quint64 bytesReceived() const; quint64 activeTime() const; bool waitForOpened(int msecs = 30000) /ReleaseGIL/; public slots: void open(); void close(); void stop(); void migrate(); void ignore(); void accept(); void reject(); signals: void stateChanged(QNetworkSession::State); void opened(); void closed(); void error(QNetworkSession::SessionError); void preferredConfigurationChanged(const QNetworkConfiguration &config, bool isSeamless); void newConfigurationActivated(); protected: %If (Qt_5_0_0 -) virtual void connectNotify(const QMetaMethod &signal); %End %If (- Qt_5_0_0) virtual void connectNotify(SIP_SIGNAL signal); %End %If (Qt_5_0_0 -) virtual void disconnectNotify(const QMetaMethod &signal); %End %If (- Qt_5_0_0) virtual void disconnectNotify(SIP_SIGNAL signal); %End public: %If (Qt_5_0_0 -) enum UsagePolicy { NoPolicy, NoBackgroundTrafficPolicy, }; %End %If (Qt_5_0_0 -) typedef QFlags UsagePolicies; %End %If (Qt_5_0_0 -) QFlags usagePolicies() const; %End signals: %If (Qt_5_0_0 -) void usagePoliciesChanged(QFlags); %End private: %If (Qt_5_0_0 -) QNetworkSession(const QNetworkSession &); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qssl.sip0000644000076500000240000000510612536324426020205 0ustar philstaff00000000000000// qssl.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %ModuleCode #include %End %End %If (Qt_4_3_0 -) %If (PyQt_OpenSSL) namespace QSsl { %TypeHeaderCode #include %End enum KeyType { PrivateKey, PublicKey, }; enum EncodingFormat { Pem, Der, }; enum KeyAlgorithm { %If (Qt_5_0_0 -) Opaque, %End Rsa, Dsa, }; %If (Qt_5_0_0 -) enum AlternativeNameEntryType { EmailEntry, DnsEntry, }; %End %If (Qt_5_0_0 -) %If (PyQt_Deprecated_5_0) typedef QSsl::AlternativeNameEntryType AlternateNameEntryType; %End %End %If (- Qt_5_0_0) enum AlternateNameEntryType { EmailEntry, DnsEntry, }; %End enum SslProtocol { UnknownProtocol, SslV3, SslV2, %If (PyQt_Deprecated_5_0) TlsV1, %End %If (Qt_5_0_0 -) TlsV1_0, %End %If (Qt_5_0_0 -) TlsV1_1, %End %If (Qt_5_0_0 -) TlsV1_2, %End AnyProtocol, %If (Qt_4_8_0 -) TlsV1SslV3, %End %If (Qt_4_8_0 -) SecureProtocols, %End }; %If (Qt_4_8_0 -) enum SslOption { SslOptionDisableEmptyFragments, SslOptionDisableSessionTickets, SslOptionDisableCompression, SslOptionDisableServerNameIndication, SslOptionDisableLegacyRenegotiation, }; %End %If (Qt_4_8_0 -) typedef QFlags SslOptions; %End }; %End %End %If (Qt_4_8_0 -) %If (PyQt_OpenSSL) QFlags operator|(QSsl::SslOption f1, QFlags f2); %End %End %If (Qt_4_8_0 -) %If (PyQt_OpenSSL) QFlags operator|(QSsl::SslOption f1, QSsl::SslOption f2); %End %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qsslcertificate.sip0000644000076500000240000002551212536324426022413 0ustar philstaff00000000000000// qsslcertificate.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %If (PyQt_OpenSSL) class QSslCertificate { %TypeHeaderCode #include %End public: enum SubjectInfo { Organization, CommonName, LocalityName, OrganizationalUnitName, CountryName, StateOrProvinceName, %If (Qt_5_0_0 -) DistinguishedNameQualifier, %End %If (Qt_5_0_0 -) SerialNumber, %End %If (Qt_5_0_0 -) EmailAddress, %End }; QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem); QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem); QSslCertificate(const QSslCertificate &other); ~QSslCertificate(); bool operator==(const QSslCertificate &other) const; bool operator!=(const QSslCertificate &other) const; bool isNull() const; %If (PyQt_Deprecated_5_0) bool isValid() const; %End void clear(); QByteArray version() const; QByteArray serialNumber() const; QByteArray digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const; %If (Qt_5_0_0 -) QStringList issuerInfo(QSslCertificate::SubjectInfo info) const; %End %If (- Qt_5_0_0) QString issuerInfo(QSslCertificate::SubjectInfo info) const; %End %If (Qt_5_0_0 -) QStringList issuerInfo(const QByteArray &attribute) const; %End %If (- Qt_5_0_0) QString issuerInfo(const QByteArray &tag) const; %End %If (Qt_5_0_0 -) QStringList subjectInfo(QSslCertificate::SubjectInfo info) const; %End %If (- Qt_5_0_0) QString subjectInfo(QSslCertificate::SubjectInfo info) const; %End %If (Qt_5_0_0 -) QStringList subjectInfo(const QByteArray &attribute) const; %End %If (- Qt_5_0_0) QString subjectInfo(const QByteArray &tag) const; %End %If (Qt_5_0_0 -) QMultiMap subjectAlternativeNames() const; %End %If (PyQt_Deprecated_5_0) QMultiMap alternateSubjectNames() const; %End QDateTime effectiveDate() const; QDateTime expiryDate() const; QSslKey publicKey() const; QByteArray toPem() const; QByteArray toDer() const; static QList fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QRegExp::PatternSyntax syntax = QRegExp::FixedString); static QList fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem); static QList fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem); Qt::HANDLE handle() const; %If (Qt_5_0_0 -) void swap(QSslCertificate &other); %End %If (Qt_5_0_0 -) bool isBlacklisted() const; %End %If (Qt_5_0_0 -) QList subjectInfoAttributes() const; %End %If (Qt_5_0_0 -) QList issuerInfoAttributes() const; %End %If (Qt_5_0_0 -) QList extensions() const; %End %If (Qt_5_0_0 -) QString toText() const; %End %If (Qt_5_0_0 -) static QList verify(QList certificateChain, const QString &hostName = QString()); %End }; %End %End %If (Qt_5_0_0 -) %If (PyQt_OpenSSL) // Mapped type for QMultiMap. %MappedType QMultiMap /DocType="Py_v3:dict-of-QSsl.AlternativeNameEntryType-list-of-str;dict-of-QSsl.AlternateNameEntryType-list-of-QString"/ { %TypeHeaderCode #include #include #include %End %ConvertFromTypeCode // Get the enum objects that are the dictionary keys. static PyObject *email_entry = NULL; static PyObject *dns_entry = NULL; if (email_entry == NULL) { email_entry = PyObject_GetAttrString((PyObject *)sipTypeAsPyTypeObject(sipType_QSsl), #if PY_VERSION_HEX >= 0x02050000 "EmailEntry"); #else const_cast("EmailEntry")); #endif if (email_entry == NULL) return NULL; } if (dns_entry == NULL) { dns_entry = PyObject_GetAttrString((PyObject *)sipTypeAsPyTypeObject(sipType_QSsl), #if PY_VERSION_HEX >= 0x02050000 "DnsEntry"); #else const_cast("DnsEntry")); #endif if (dns_entry == NULL) return NULL; } // Create the dictionary. PyObject *d = PyDict_New(); if (d == NULL) return NULL; QList vl; // Handle the Qssl::EmailEntry key. vl = sipCpp->values(QSsl::EmailEntry); if (!vl.isEmpty()) { PyObject *vlobj = PyList_New(vl.count()); if (vlobj == NULL) { Py_DECREF(d); return NULL; } int rc = PyDict_SetItem(d, email_entry, vlobj); Py_DECREF(email_entry); Py_DECREF(vlobj); if (rc < 0) { Py_DECREF(d); return NULL; } for (int i = 0; i < vl.count(); ++i) { QString *s = new QString(vl.at(i)); PyObject *vobj = sipConvertFromNewType(s, sipType_QString, sipTransferObj); if (vobj == NULL) { delete s; Py_DECREF(d); return NULL; } PyList_SET_ITEM(vlobj, i, vobj); } } // Handle the Qssl::DnsEntry key. vl = sipCpp->values(QSsl::DnsEntry); if (!vl.isEmpty()) { PyObject *vlobj = PyList_New(vl.count()); if (vlobj == NULL) { Py_DECREF(d); return NULL; } int rc = PyDict_SetItem(d, dns_entry, vlobj); Py_DECREF(dns_entry); Py_DECREF(vlobj); if (rc < 0) { Py_DECREF(d); return NULL; } for (int i = 0; i < vl.count(); ++i) { QString *s = new QString(vl.at(i)); PyObject *vobj = sipConvertFromNewType(s, sipType_QString, sipTransferObj); if (vobj == NULL) { delete s; Py_DECREF(d); return NULL; } PyList_SET_ITEM(vlobj, i, vobj); } } return d; %End %ConvertToTypeCode if (sipIsErr == NULL) { // We don't support passing the type as an argument as it isn't // currently needed (and is unlikely to be in the future). PyErr_SetString(PyExc_NotImplementedError, "converting to QMultiMap is unsupported"); return 0; } // Keep the compiler quiet. sipPy = NULL; return 0; %End }; %End %End %If (Qt_4_3_0 -) %If (PyQt_Deprecated_5_0) // Mapped type for QMultiMap. %If (PyQt_OpenSSL) %MappedType QMultiMap /DocType="Py_v3:dict-of-QSsl.AlternateNameEntryType-list-of-str;dict-of-QSsl.AlternateNameEntryType-list-of-QString"/ { %TypeHeaderCode #include #include #include %End %ConvertFromTypeCode // Get the enum objects that are the dictionary keys. static PyObject *email_entry = NULL; static PyObject *dns_entry = NULL; if (email_entry == NULL) { email_entry = PyObject_GetAttrString((PyObject *)sipTypeAsPyTypeObject(sipType_QSsl), #if PY_VERSION_HEX >= 0x02050000 "EmailEntry"); #else const_cast("EmailEntry")); #endif if (email_entry == NULL) return NULL; } if (dns_entry == NULL) { dns_entry = PyObject_GetAttrString((PyObject *)sipTypeAsPyTypeObject(sipType_QSsl), #if PY_VERSION_HEX >= 0x02050000 "DnsEntry"); #else const_cast("DnsEntry")); #endif if (dns_entry == NULL) return NULL; } // Create the dictionary. PyObject *d = PyDict_New(); if (d == NULL) return NULL; QList vl; // Handle the Qssl::EmailEntry key. vl = sipCpp->values(QSsl::EmailEntry); if (!vl.isEmpty()) { PyObject *vlobj = PyList_New(vl.count()); if (vlobj == NULL) { Py_DECREF(d); return NULL; } int rc = PyDict_SetItem(d, email_entry, vlobj); Py_DECREF(email_entry); Py_DECREF(vlobj); if (rc < 0) { Py_DECREF(d); return NULL; } for (int i = 0; i < vl.count(); ++i) { QString *s = new QString(vl.at(i)); PyObject *vobj = sipConvertFromNewType(s, sipType_QString, sipTransferObj); if (vobj == NULL) { delete s; Py_DECREF(d); return NULL; } PyList_SET_ITEM(vlobj, i, vobj); } } // Handle the Qssl::DnsEntry key. vl = sipCpp->values(QSsl::DnsEntry); if (!vl.isEmpty()) { PyObject *vlobj = PyList_New(vl.count()); if (vlobj == NULL) { Py_DECREF(d); return NULL; } int rc = PyDict_SetItem(d, dns_entry, vlobj); Py_DECREF(dns_entry); Py_DECREF(vlobj); if (rc < 0) { Py_DECREF(d); return NULL; } for (int i = 0; i < vl.count(); ++i) { QString *s = new QString(vl.at(i)); PyObject *vobj = sipConvertFromNewType(s, sipType_QString, sipTransferObj); if (vobj == NULL) { delete s; Py_DECREF(d); return NULL; } PyList_SET_ITEM(vlobj, i, vobj); } } return d; %End %ConvertToTypeCode if (sipIsErr == NULL) { // We don't support passing the type as an argument as it isn't // currently needed (and is unlikely to be in the future). PyErr_SetString(PyExc_NotImplementedError, "converting to QMultiMap is unsupported"); return 0; } // Keep the compiler quiet. sipPy = NULL; return 0; %End }; %End %End %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qsslcertificateextension.sip0000644000076500000240000000263612536324426024352 0ustar philstaff00000000000000// qsslcertificateextension.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) %If (PyQt_OpenSSL) class QSslCertificateExtension { %TypeHeaderCode #include %End public: QSslCertificateExtension(); QSslCertificateExtension(const QSslCertificateExtension &other); ~QSslCertificateExtension(); void swap(QSslCertificateExtension &other); QString oid() const; QString name() const; QVariant value() const; bool isCritical() const; bool isSupported() const; }; %End %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qsslcipher.sip0000644000076500000240000000322212536324426021375 0ustar philstaff00000000000000// qsslcipher.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %If (PyQt_OpenSSL) class QSslCipher { %TypeHeaderCode #include %End public: QSslCipher(); QSslCipher(const QString &name, QSsl::SslProtocol protocol); QSslCipher(const QSslCipher &other); ~QSslCipher(); bool operator==(const QSslCipher &other) const; bool operator!=(const QSslCipher &other) const; bool isNull() const; QString name() const; int supportedBits() const; int usedBits() const; QString keyExchangeMethod() const; QString authenticationMethod() const; QString encryptionMethod() const; QString protocolString() const; QSsl::SslProtocol protocol() const; %If (Qt_5_0_0 -) void swap(QSslCipher &other); %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qsslconfiguration.sip0000644000076500000240000000473112536324426023000 0ustar philstaff00000000000000// qsslconfiguration.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %If (PyQt_OpenSSL) class QSslConfiguration { %TypeHeaderCode #include %End public: QSslConfiguration(); QSslConfiguration(const QSslConfiguration &other); ~QSslConfiguration(); bool isNull() const; QSsl::SslProtocol protocol() const; void setProtocol(QSsl::SslProtocol protocol); QSslSocket::PeerVerifyMode peerVerifyMode() const; void setPeerVerifyMode(QSslSocket::PeerVerifyMode mode); int peerVerifyDepth() const; void setPeerVerifyDepth(int depth); QSslCertificate localCertificate() const; void setLocalCertificate(const QSslCertificate &certificate); QSslCertificate peerCertificate() const; QList peerCertificateChain() const; QSslCipher sessionCipher() const; QSslKey privateKey() const; void setPrivateKey(const QSslKey &key); QList ciphers() const; void setCiphers(const QList &ciphers); QList caCertificates() const; void setCaCertificates(const QList &certificates); static QSslConfiguration defaultConfiguration(); static void setDefaultConfiguration(const QSslConfiguration &configuration); bool operator==(const QSslConfiguration &other) const; bool operator!=(const QSslConfiguration &other) const; %If (Qt_4_8_0 -) void setSslOption(QSsl::SslOption option, bool on); %End %If (Qt_4_8_0 -) bool testSslOption(QSsl::SslOption option) const; %End %If (Qt_5_0_0 -) void swap(QSslConfiguration &other); %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qsslerror.sip0000644000076500000240000000515412536324426021262 0ustar philstaff00000000000000// qsslerror.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %If (PyQt_OpenSSL) class QSslError { %TypeHeaderCode #include %End public: enum SslError { UnspecifiedError, NoError, UnableToGetIssuerCertificate, UnableToDecryptCertificateSignature, UnableToDecodeIssuerPublicKey, CertificateSignatureFailed, CertificateNotYetValid, CertificateExpired, InvalidNotBeforeField, InvalidNotAfterField, SelfSignedCertificate, SelfSignedCertificateInChain, UnableToGetLocalIssuerCertificate, UnableToVerifyFirstCertificate, CertificateRevoked, InvalidCaCertificate, PathLengthExceeded, InvalidPurpose, CertificateUntrusted, CertificateRejected, SubjectIssuerMismatch, AuthorityIssuerSerialNumberMismatch, NoPeerCertificate, HostNameMismatch, NoSslSupport, %If (Qt_4_8_0 -) CertificateBlacklisted, %End }; %If (Qt_4_6_0 -) QSslError(); %End %If (Qt_4_6_0 -) QSslError(QSslError::SslError error); %End %If (Qt_4_6_0 -) QSslError(QSslError::SslError error, const QSslCertificate &certificate); %End %If (- Qt_4_6_0) QSslError(QSslError::SslError error = QSslError::NoError, const QSslCertificate &certificate = QSslCertificate()); %End QSslError(const QSslError &other); ~QSslError(); QSslError::SslError error() const; QString errorString() const; QSslCertificate certificate() const; %If (Qt_4_4_0 -) bool operator==(const QSslError &other) const; %End %If (Qt_4_4_0 -) bool operator!=(const QSslError &other) const; %End %If (Qt_5_0_0 -) void swap(QSslError &other); %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qsslkey.sip0000644000076500000240000000403512536324426020716 0ustar philstaff00000000000000// qsslkey.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %If (PyQt_OpenSSL) class QSslKey { %TypeHeaderCode #include %End public: QSslKey(); QSslKey(const QByteArray &encoded, QSsl::KeyAlgorithm algorithm, QSsl::EncodingFormat encoding = QSsl::Pem, QSsl::KeyType type = QSsl::PrivateKey, const QByteArray &passPhrase = QByteArray()); QSslKey(QIODevice *device, QSsl::KeyAlgorithm algorithm, QSsl::EncodingFormat encoding = QSsl::Pem, QSsl::KeyType type = QSsl::PrivateKey, const QByteArray &passPhrase = QByteArray()); %If (Qt_5_0_0 -) QSslKey(Qt::HANDLE handle, QSsl::KeyType type = QSsl::PrivateKey); %End QSslKey(const QSslKey &other); ~QSslKey(); bool isNull() const; void clear(); int length() const; QSsl::KeyType type() const; QSsl::KeyAlgorithm algorithm() const; QByteArray toPem(const QByteArray &passPhrase = QByteArray()) const; QByteArray toDer(const QByteArray &passPhrase = QByteArray()) const; Qt::HANDLE handle() const; bool operator==(const QSslKey &key) const; bool operator!=(const QSslKey &key) const; %If (Qt_5_0_0 -) void swap(QSslKey &other); %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qsslsocket.sip0000644000076500000240000002233012536324426021414 0ustar philstaff00000000000000// qsslsocket.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %If (PyQt_OpenSSL) class QSslSocket : QTcpSocket { %TypeHeaderCode #include %End public: enum SslMode { UnencryptedMode, SslClientMode, SslServerMode, }; %If (Qt_5_0_0 -) explicit QSslSocket(QObject *parent /TransferThis/ = 0); %End %If (- Qt_5_0_0) QSslSocket(QObject *parent /TransferThis/ = 0); %End virtual ~QSslSocket(); %If (Qt_5_0_0 -) void connectToHostEncrypted(const QString &hostName, quint16 port, QFlags mode = QIODevice::ReadWrite, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::AnyIPProtocol) /ReleaseGIL/; %End %If (- Qt_5_0_0) void connectToHostEncrypted(const QString &hostName, quint16 port, QFlags mode = QIODevice::ReadWrite) /ReleaseGIL/; %End %If (Qt_5_0_0 -) void connectToHostEncrypted(const QString &hostName, quint16 port, const QString &sslPeerName, QFlags mode = QIODevice::ReadWrite, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::AnyIPProtocol) /ReleaseGIL/; %End %If (Qt_4_6_0 - Qt_5_0_0) void connectToHostEncrypted(const QString &hostName, quint16 port, const QString &sslPeerName, QFlags mode = QIODevice::ReadWrite) /ReleaseGIL/; %End %If (Qt_5_0_0 -) virtual bool setSocketDescriptor(qintptr socketDescriptor, QAbstractSocket::SocketState state = QAbstractSocket::ConnectedState, QFlags mode = QIODevice::ReadWrite); %End %If (- Qt_5_0_0) bool setSocketDescriptor(int socketDescriptor, QAbstractSocket::SocketState state = QAbstractSocket::ConnectedState, QIODevice::OpenMode mode = QIODevice::ReadWrite); %End QSslSocket::SslMode mode() const; bool isEncrypted() const; QSsl::SslProtocol protocol() const; void setProtocol(QSsl::SslProtocol protocol); virtual qint64 bytesAvailable() const; virtual qint64 bytesToWrite() const; virtual bool canReadLine() const; virtual void close(); virtual bool atEnd() const; bool flush(); void abort(); void setLocalCertificate(const QSslCertificate &certificate); void setLocalCertificate(const QString &path, QSsl::EncodingFormat format = QSsl::Pem); QSslCertificate localCertificate() const; QSslCertificate peerCertificate() const; QList peerCertificateChain() const; QSslCipher sessionCipher() const; void setPrivateKey(const QSslKey &key); void setPrivateKey(const QString &fileName, QSsl::KeyAlgorithm algorithm = QSsl::Rsa, QSsl::EncodingFormat format = QSsl::Pem, const QByteArray &passPhrase = QByteArray()); QSslKey privateKey() const; QList ciphers() const; void setCiphers(const QList &ciphers); void setCiphers(const QString &ciphers); static void setDefaultCiphers(const QList &ciphers); static QList defaultCiphers(); static QList supportedCiphers(); bool addCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QRegExp::PatternSyntax syntax = QRegExp::FixedString); void addCaCertificate(const QSslCertificate &certificate); void addCaCertificates(const QList &certificates); void setCaCertificates(const QList &certificates); QList caCertificates() const; static bool addDefaultCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QRegExp::PatternSyntax syntax = QRegExp::FixedString); static void addDefaultCaCertificate(const QSslCertificate &certificate); static void addDefaultCaCertificates(const QList &certificates); static void setDefaultCaCertificates(const QList &certificates); static QList defaultCaCertificates(); static QList systemCaCertificates(); %If (Qt_5_0_0 -) virtual bool waitForConnected(int msecs = 30000) /ReleaseGIL/; %End %If (- Qt_5_0_0) bool waitForConnected(int msecs = 30000) /ReleaseGIL/; %End bool waitForEncrypted(int msecs = 30000) /ReleaseGIL/; virtual bool waitForReadyRead(int msecs = 30000) /ReleaseGIL/; virtual bool waitForBytesWritten(int msecs = 30000) /ReleaseGIL/; %If (Qt_5_0_0 -) virtual bool waitForDisconnected(int msecs = 30000) /ReleaseGIL/; %End %If (- Qt_5_0_0) bool waitForDisconnected(int msecs = 30000) /ReleaseGIL/; %End QList sslErrors() const; static bool supportsSsl(); public slots: void startClientEncryption(); void startServerEncryption(); void ignoreSslErrors(); signals: void encrypted(); void sslErrors(const QList &errors); void modeChanged(QSslSocket::SslMode newMode); protected slots: %If (- Qt_5_0_0) void connectToHostImplementation(const QString &hostName, quint16 port, QFlags openMode); %End %If (- Qt_5_0_0) void disconnectFromHostImplementation(); %End protected: virtual SIP_PYOBJECT readData(qint64 maxlen) /DocType="Py_v3:bytes;str",ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS #if defined(SIP_PROTECTED_IS_PUBLIC) len = sipSelfWasArg ? sipCpp->QSslSocket::readData(s, a0) : sipCpp->readData(s, a0); #else len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); #endif Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; public: %If (Qt_4_4_0 -) enum PeerVerifyMode { VerifyNone, QueryPeer, VerifyPeer, AutoVerifyPeer, }; %End %If (Qt_4_4_0 -) QSslSocket::PeerVerifyMode peerVerifyMode() const; %End %If (Qt_4_4_0 -) void setPeerVerifyMode(QSslSocket::PeerVerifyMode mode); %End %If (Qt_4_4_0 -) int peerVerifyDepth() const; %End %If (Qt_4_4_0 -) void setPeerVerifyDepth(int depth); %End %If (Qt_5_0_0 -) virtual void setReadBufferSize(qint64 size); %End %If (Qt_4_4_0 - Qt_5_0_0) void setReadBufferSize(qint64 size); %End %If (Qt_4_4_0 -) qint64 encryptedBytesAvailable() const; %End %If (Qt_4_4_0 -) qint64 encryptedBytesToWrite() const; %End %If (Qt_4_4_0 -) QSslConfiguration sslConfiguration() const; %End %If (Qt_4_4_0 -) void setSslConfiguration(const QSslConfiguration &config); %End signals: %If (Qt_4_4_0 -) void peerVerifyError(const QSslError &error); %End %If (Qt_4_4_0 -) void encryptedBytesWritten(qint64 totalBytes); %End public: %If (Qt_5_0_0 -) virtual void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value); %End %If (Qt_4_6_0 - Qt_5_0_0) void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value); %End %If (Qt_5_0_0 -) virtual QVariant socketOption(QAbstractSocket::SocketOption option); %End %If (Qt_4_6_0 - Qt_5_0_0) QVariant socketOption(QAbstractSocket::SocketOption option); %End %If (Qt_4_6_0 -) void ignoreSslErrors(const QList &errors); %End %If (Qt_4_8_0 -) QString peerVerifyName() const; %End %If (Qt_4_8_0 -) void setPeerVerifyName(const QString &hostName); %End %If (Qt_5_0_0 -) virtual void resume() /ReleaseGIL/; %End %If (Qt_5_0_0 -) virtual void connectToHost(const QString &hostName, quint16 port, QFlags mode = QIODevice::ReadWrite, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::AnyIPProtocol) /ReleaseGIL/; %End %If (Qt_5_0_0 -) virtual void disconnectFromHost() /ReleaseGIL/; %End %If (Qt_5_0_0 -) static long sslLibraryVersionNumber(); %End %If (Qt_5_0_0 -) static QString sslLibraryVersionString(); %End private: QSslSocket(const QSslSocket &); }; %End %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qtcpserver.sip0000644000076500000240000000475412536324426021431 0ustar philstaff00000000000000// qtcpserver.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTcpServer : QObject { %TypeHeaderCode #include %End public: explicit QTcpServer(QObject *parent /TransferThis/ = 0); virtual ~QTcpServer(); bool listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0); void close(); bool isListening() const; void setMaxPendingConnections(int numConnections); int maxPendingConnections() const; quint16 serverPort() const; QHostAddress serverAddress() const; %If (Qt_5_0_0 -) qintptr socketDescriptor() const; %End %If (- Qt_5_0_0) int socketDescriptor() const; %End %If (Qt_5_0_0 -) bool setSocketDescriptor(qintptr socketDescriptor); %End %If (- Qt_5_0_0) bool setSocketDescriptor(int socketDescriptor); %End bool waitForNewConnection(int msecs = 0, bool *timedOut = 0) /ReleaseGIL/; virtual bool hasPendingConnections() const; virtual QTcpSocket *nextPendingConnection(); QAbstractSocket::SocketError serverError() const; QString errorString() const; void setProxy(const QNetworkProxy &networkProxy); QNetworkProxy proxy() const; %If (Qt_5_0_0 -) void pauseAccepting(); %End %If (Qt_5_0_0 -) void resumeAccepting(); %End protected: %If (Qt_5_0_0 -) virtual void incomingConnection(qintptr handle); %End %If (- Qt_5_0_0) virtual void incomingConnection(int handle); %End %If (Qt_4_7_0 -) void addPendingConnection(QTcpSocket *socket); %End signals: void newConnection(); %If (Qt_5_0_0 -) void acceptError(QAbstractSocket::SocketError socketError); %End private: QTcpServer(const QTcpServer &); }; PyQt-x11-gpl-4.11.4/sip/QtNetwork/qtcpsocket.sip0000644000076500000240000000223412536324426021402 0ustar philstaff00000000000000// qtcpsocket.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QTcpSocket : QAbstractSocket { %TypeHeaderCode #include %End public: explicit QTcpSocket(QObject *parent /TransferThis/ = 0); virtual ~QTcpSocket(); private: QTcpSocket(const QTcpSocket &); }; PyQt-x11-gpl-4.11.4/sip/QtNetwork/QtNetworkmod.sip0000644000076500000240000000537512536324426021671 0ustar philstaff00000000000000// QtNetworkmod.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtNetwork, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qabstractnetworkcache.sip %Include qabstractsocket.sip %Include qauthenticator.sip %Include qdnslookup.sip %Include qftp.sip %Include qhostaddress.sip %Include qhostinfo.sip %Include qhttp.sip %Include qhttpmultipart.sip %Include qlocalserver.sip %Include qlocalsocket.sip %Include qnetworkaccessmanager.sip %Include qnetworkconfigmanager.sip %Include qnetworkconfiguration.sip %Include qnetworkcookie.sip %Include qnetworkcookiejar.sip %Include qnetworkdiskcache.sip %Include qnetworkinterface.sip %Include qnetworkproxy.sip %Include qnetworkreply.sip %Include qnetworkrequest.sip %Include qnetworksession.sip %Include qssl.sip %Include qsslcertificate.sip %Include qsslcertificateextension.sip %Include qsslconfiguration.sip %Include qsslcipher.sip %Include qsslerror.sip %Include qsslkey.sip %Include qsslsocket.sip %Include qtcpserver.sip %Include qtcpsocket.sip %Include qudpsocket.sip %Include qurlinfo.sip PyQt-x11-gpl-4.11.4/sip/QtNetwork/qudpsocket.sip0000644000076500000240000000724512536324426021413 0ustar philstaff00000000000000// qudpsocket.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QUdpSocket : QAbstractSocket { %TypeHeaderCode #include %End public: %If (- Qt_5_0_0) enum BindFlag { DefaultForPlatform, ShareAddress, DontShareAddress, ReuseAddressHint, }; %End %If (- Qt_5_0_0) typedef QFlags BindMode; %End explicit QUdpSocket(QObject *parent /TransferThis/ = 0); virtual ~QUdpSocket(); %If (- Qt_5_0_0) bool bind(const QHostAddress &address, quint16 port); %End %If (- Qt_5_0_0) bool bind(quint16 port = 0); %End %If (- Qt_5_0_0) bool bind(const QHostAddress &address, quint16 port, QFlags mode); %End %If (- Qt_5_0_0) bool bind(quint16 port, QFlags mode); %End bool hasPendingDatagrams() const; qint64 pendingDatagramSize() const; SIP_PYOBJECT readDatagram(qint64 maxlen, QHostAddress *host /Out/ = 0, quint16 *port = 0) /DocType="Py_v3:bytes;str",ReleaseGIL/; %MethodCode // Return the data read or None if there was an error. if (a0 < 0) { PyErr_SetString(PyExc_ValueError, "maximum length of data to be read cannot be negative"); sipIsErr = 1; } else { char *s = new char[a0]; qint64 len; Py_BEGIN_ALLOW_THREADS len = sipCpp->readDatagram(s, a0, a1, &a2); Py_END_ALLOW_THREADS if (len < 0) { Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = SIPBytes_FromStringAndSize(s, len); if (!sipRes) sipIsErr = 1; } delete[] s; } %End qint64 writeDatagram(const char *data /Array/, qint64 len /ArraySize/, const QHostAddress &host, quint16 port) /ReleaseGIL/; qint64 writeDatagram(const QByteArray &datagram, const QHostAddress &host, quint16 port) /ReleaseGIL/; %If (Qt_4_8_0 -) bool joinMulticastGroup(const QHostAddress &groupAddress); %End %If (Qt_4_8_0 -) bool joinMulticastGroup(const QHostAddress &groupAddress, const QNetworkInterface &iface); %End %If (Qt_4_8_0 -) bool leaveMulticastGroup(const QHostAddress &groupAddress); %End %If (Qt_4_8_0 -) bool leaveMulticastGroup(const QHostAddress &groupAddress, const QNetworkInterface &iface); %End %If (Qt_4_8_0 -) QNetworkInterface multicastInterface() const; %End %If (Qt_4_8_0 -) void setMulticastInterface(const QNetworkInterface &iface); %End private: QUdpSocket(const QUdpSocket &); }; %If (Qt_4_2_0 - Qt_5_0_0) QFlags operator|(QUdpSocket::BindFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtNetwork/qurlinfo.sip0000644000076500000240000000604212536324426021062 0ustar philstaff00000000000000// qurlinfo.sip generated by MetaSIP // // This file is part of the QtNetwork Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (- Qt_5_0_0) class QUrlInfo { %TypeHeaderCode #include %End public: enum PermissionSpec { ReadOwner, WriteOwner, ExeOwner, ReadGroup, WriteGroup, ExeGroup, ReadOther, WriteOther, ExeOther, }; QUrlInfo(); QUrlInfo(const QUrlInfo &ui); QUrlInfo(const QString &name, int permissions, const QString &owner, const QString &group, qint64 size, const QDateTime &lastModified, const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink, bool isWritable, bool isReadable, bool isExecutable); QUrlInfo(const QUrl &url, int permissions, const QString &owner, const QString &group, qint64 size, const QDateTime &lastModified, const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink, bool isWritable, bool isReadable, bool isExecutable); virtual ~QUrlInfo(); virtual void setName(const QString &name); virtual void setDir(bool b); virtual void setFile(bool b); virtual void setSymLink(bool b); virtual void setOwner(const QString &s); virtual void setGroup(const QString &s); virtual void setSize(qint64 size); virtual void setWritable(bool b); virtual void setReadable(bool b); virtual void setPermissions(int p); virtual void setLastModified(const QDateTime &dt); bool isValid() const; QString name() const; int permissions() const; QString owner() const; QString group() const; qint64 size() const; QDateTime lastModified() const; QDateTime lastRead() const; bool isDir() const; bool isFile() const; bool isSymLink() const; bool isWritable() const; bool isReadable() const; bool isExecutable() const; static bool greaterThan(const QUrlInfo &i1, const QUrlInfo &i2, int sortBy); static bool lessThan(const QUrlInfo &i1, const QUrlInfo &i2, int sortBy); static bool equal(const QUrlInfo &i1, const QUrlInfo &i2, int sortBy); %If (Qt_4_4_0 -) void setLastRead(const QDateTime &dt); %End bool operator==(const QUrlInfo &i) const; %If (Qt_4_2_0 -) bool operator!=(const QUrlInfo &i) const; %End }; %End PyQt-x11-gpl-4.11.4/sip/QtOpenGL/0000755000076500000240000000000012536324426016177 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtOpenGL/qgl.sip0000644000076500000240000003237712536324426017513 0ustar philstaff00000000000000// qgl.sip generated by MetaSIP // // This file is part of the QtOpenGL Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End namespace QGL { %TypeHeaderCode #include %End enum FormatOption { DoubleBuffer, DepthBuffer, Rgba, AlphaChannel, AccumBuffer, StencilBuffer, StereoBuffers, DirectRendering, HasOverlay, SampleBuffers, SingleBuffer, NoDepthBuffer, ColorIndex, NoAlphaChannel, NoAccumBuffer, NoStencilBuffer, NoStereoBuffers, IndirectRendering, NoOverlay, NoSampleBuffers, %If (Qt_4_7_0 -) DeprecatedFunctions, %End %If (Qt_4_7_0 -) NoDeprecatedFunctions, %End }; typedef QFlags FormatOptions; %If (Qt_4_6_0 - Qt_5_0_0) void setPreferredPaintEngine(QPaintEngine::Type engineType); %End }; QFlags operator|(QGL::FormatOption f1, QFlags f2); class QGLFormat { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum OpenGLVersionFlag { OpenGL_Version_None, OpenGL_Version_1_1, OpenGL_Version_1_2, OpenGL_Version_1_3, OpenGL_Version_1_4, OpenGL_Version_1_5, OpenGL_Version_2_0, OpenGL_Version_2_1, %If (Qt_4_5_0 -) OpenGL_Version_3_0, %End %If (Qt_4_7_0 -) OpenGL_Version_3_1, %End %If (Qt_4_7_0 -) OpenGL_Version_3_2, %End %If (Qt_4_7_0 -) OpenGL_Version_3_3, %End %If (Qt_4_7_0 -) OpenGL_Version_4_0, %End %If (Qt_5_0_0 -) OpenGL_Version_4_1, %End %If (Qt_5_0_0 -) OpenGL_Version_4_2, %End %If (Qt_5_0_0 -) OpenGL_Version_4_3, %End OpenGL_ES_Common_Version_1_0, OpenGL_ES_CommonLite_Version_1_0, OpenGL_ES_Common_Version_1_1, OpenGL_ES_CommonLite_Version_1_1, OpenGL_ES_Version_2_0, }; %End %If (Qt_4_2_0 -) typedef QFlags OpenGLVersionFlags; %End QGLFormat(); QGLFormat(QGL::FormatOptions options, int plane = 0); QGLFormat(const QGLFormat &other); ~QGLFormat(); void setDepthBufferSize(int size); int depthBufferSize() const; void setAccumBufferSize(int size); int accumBufferSize() const; void setAlphaBufferSize(int size); int alphaBufferSize() const; void setStencilBufferSize(int size); int stencilBufferSize() const; void setSampleBuffers(bool enable); void setSamples(int numSamples); int samples() const; void setDoubleBuffer(bool enable); void setDepth(bool enable); void setRgba(bool enable); void setAlpha(bool enable); void setAccum(bool enable); void setStencil(bool enable); void setStereo(bool enable); void setDirectRendering(bool enable); void setOverlay(bool enable); int plane() const; void setPlane(int plane); void setOption(QGL::FormatOptions opt); bool testOption(QGL::FormatOptions opt) const; static QGLFormat defaultFormat(); static void setDefaultFormat(const QGLFormat &f); static QGLFormat defaultOverlayFormat(); static void setDefaultOverlayFormat(const QGLFormat &f); static bool hasOpenGL(); static bool hasOpenGLOverlays(); bool doubleBuffer() const; bool depth() const; bool rgba() const; bool alpha() const; bool accum() const; bool stencil() const; bool stereo() const; bool directRendering() const; bool hasOverlay() const; bool sampleBuffers() const; %If (Qt_4_2_0 -) void setRedBufferSize(int size); %End %If (Qt_4_2_0 -) int redBufferSize() const; %End %If (Qt_4_2_0 -) void setGreenBufferSize(int size); %End %If (Qt_4_2_0 -) int greenBufferSize() const; %End %If (Qt_4_2_0 -) void setBlueBufferSize(int size); %End %If (Qt_4_2_0 -) int blueBufferSize() const; %End %If (Qt_4_2_0 -) void setSwapInterval(int interval); %End %If (Qt_4_2_0 -) int swapInterval() const; %End %If (Qt_4_2_0 -) static QFlags openGLVersionFlags(); %End %If (Qt_4_7_0 -) void setVersion(int major, int minor); %End %If (Qt_4_7_0 -) int majorVersion() const; %End %If (Qt_4_7_0 -) int minorVersion() const; %End %If (Qt_4_7_0 -) enum OpenGLContextProfile { NoProfile, CoreProfile, CompatibilityProfile, }; %End %If (Qt_4_7_0 -) void setProfile(QGLFormat::OpenGLContextProfile profile); %End %If (Qt_4_7_0 -) QGLFormat::OpenGLContextProfile profile() const; %End }; bool operator==(const QGLFormat &, const QGLFormat &); bool operator!=(const QGLFormat &, const QGLFormat &); class QGLContext /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: QGLContext(const QGLFormat &format, QPaintDevice *device); virtual ~QGLContext(); virtual bool create(const QGLContext *shareContext = 0); bool isValid() const; bool isSharing() const; void reset(); QGLFormat format() const; QGLFormat requestedFormat() const; void setFormat(const QGLFormat &format); virtual void makeCurrent(); virtual void doneCurrent(); virtual void swapBuffers() const; GLuint bindTexture(const QImage &image, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA); GLuint bindTexture(const QPixmap &pixmap, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA); %If (Qt_4_4_0 -) void drawTexture(const QRectF &target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D); %End %If (Qt_4_4_0 -) void drawTexture(const QPointF &point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D); %End GLuint bindTexture(const QString &fileName); protected: %If (- Qt_5_0_0) %If (WS_X11) %If (PyQt_NoOpenGLES) virtual void *chooseVisual(); %End %End %End public: void deleteTexture(GLuint tx_id); static void setTextureCacheLimit(int size); static int textureCacheLimit(); %If (Qt_5_0_0 -) QFunctionPointer getProcAddress(const QString &proc) const; %End %If (- Qt_5_0_0) void *getProcAddress(const QString &proc) const; %End QPaintDevice *device() const; QColor overlayTransparentColor() const; static const QGLContext *currentContext(); protected: virtual bool chooseContext(const QGLContext *shareContext = 0); bool deviceIsPixmap() const; bool windowCreated() const; void setWindowCreated(bool on); bool initialized() const; void setInitialized(bool on); %If (- Qt_5_0_0) void generateFontDisplayLists(const QFont &fnt, int listBase); %End public: %If (Qt_4_6_0 -) static bool areSharing(const QGLContext *context1, const QGLContext *context2); %End %If (Qt_4_6_0 -) enum BindOption { NoBindOption, InvertedYBindOption, MipmapBindOption, PremultipliedAlphaBindOption, LinearFilteringBindOption, DefaultBindOption, }; %End %If (Qt_4_6_0 -) typedef QFlags BindOptions; %End %If (Qt_4_6_0 -) GLuint bindTexture(const QImage &image, GLenum target, GLint format, QFlags options); %End %If (Qt_4_6_0 -) GLuint bindTexture(const QPixmap &pixmap, GLenum target, GLint format, QFlags options); %End %If (Qt_5_0_0 -) void moveToThread(QThread *thread); %End private: QGLContext(const QGLContext &); }; class QGLWidget : QWidget { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QGLWidget, &sipType_QGLWidget, -1, 1}, #if QT_VERSION >= 0x040600 && defined(SIP_FEATURE_PyQt_Deprecated_5_0) {sipName_QGLShaderProgram, &sipType_QGLShaderProgram, -1, 2}, #else {0, 0, -1, 2}, #endif #if QT_VERSION >= 0x040600 && defined(SIP_FEATURE_PyQt_Deprecated_5_0) {sipName_QGLShader, &sipType_QGLShader, -1, -1}, #else {0, 0, -1, -1}, #endif }; int i = 0; sipType = NULL; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: %If (- Qt_4_2_0) QGLWidget(QWidget *parent /TransferThis/ = 0, const QGLWidget *shareWidget = 0, Qt::WFlags flags = 0); %End %If (Qt_4_2_0 -) QGLWidget(QWidget *parent /TransferThis/ = 0, const QGLWidget *shareWidget = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QGLWidget(QGLContext *context /Transfer/, QWidget *parent /TransferThis/ = 0, const QGLWidget *shareWidget = 0, Qt::WFlags flags = 0); %End %If (Qt_4_2_0 -) QGLWidget(QGLContext *context /Transfer/, QWidget *parent /TransferThis/ = 0, const QGLWidget *shareWidget = 0, Qt::WindowFlags flags = 0); %End %If (- Qt_4_2_0) QGLWidget(const QGLFormat &format, QWidget *parent /TransferThis/ = 0, const QGLWidget *shareWidget = 0, Qt::WFlags flags = 0); %End %If (Qt_4_2_0 -) QGLWidget(const QGLFormat &format, QWidget *parent /TransferThis/ = 0, const QGLWidget *shareWidget = 0, Qt::WindowFlags flags = 0); %End virtual ~QGLWidget(); void qglColor(const QColor &c) const; void qglClearColor(const QColor &c) const; bool isValid() const; bool isSharing() const; void makeCurrent(); void doneCurrent(); bool doubleBuffer() const; void swapBuffers(); QGLFormat format() const; void setFormat(const QGLFormat &format); %If (Qt_5_0_0 -) QGLContext *context() const; %End %If (- Qt_5_0_0) const QGLContext *context() const; %End void setContext(QGLContext *context /Transfer/, const QGLContext *shareContext = 0, bool deleteOldContext = true); QPixmap renderPixmap(int width = 0, int height = 0, bool useContext = false); QImage grabFrameBuffer(bool withAlpha = false); void makeOverlayCurrent(); const QGLContext *overlayContext() const; static QImage convertToGLFormat(const QImage &img); %If (- Qt_5_0_0) void setMouseTracking(bool enable); %End %If (PyQt_Deprecated_5_0) const QGLColormap &colormap() const; %End %If (PyQt_Deprecated_5_0) void setColormap(const QGLColormap &map); %End %If (Qt_5_0_0 -) void renderText(int x, int y, const QString &str, const QFont &font = QFont()); %End %If (- Qt_5_0_0) void renderText(int x, int y, const QString &str, const QFont &font = QFont(), int listBase = 2000); %End %If (Qt_5_0_0 -) void renderText(double x, double y, double z, const QString &str, const QFont &font = QFont()); %End %If (- Qt_5_0_0) void renderText(double x, double y, double z, const QString &str, const QFont &font = QFont(), int listBase = 2000); %End virtual QPaintEngine *paintEngine() const; GLuint bindTexture(const QImage &image, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA); GLuint bindTexture(const QPixmap &pixmap, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA); GLuint bindTexture(const QString &fileName); %If (Qt_4_4_0 -) void drawTexture(const QRectF &target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D); %End %If (Qt_4_4_0 -) void drawTexture(const QPointF &point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D); %End void deleteTexture(GLuint tx_id); public slots: virtual void updateGL(); virtual void updateOverlayGL(); protected: virtual bool event(QEvent *); virtual void initializeGL(); virtual void resizeGL(int w, int h); virtual void paintGL(); virtual void initializeOverlayGL(); virtual void resizeOverlayGL(int w, int h); virtual void paintOverlayGL(); void setAutoBufferSwap(bool on); bool autoBufferSwap() const; virtual void paintEvent(QPaintEvent *); virtual void resizeEvent(QResizeEvent *); virtual void glInit(); virtual void glDraw(); %If (- Qt_5_0_0) int fontDisplayListBase(const QFont &font, int listBase = 2000); %End public: %If (Qt_4_6_0 -) GLuint bindTexture(const QImage &image, GLenum target, GLint format, QFlags options); %End %If (Qt_4_6_0 -) GLuint bindTexture(const QPixmap &pixmap, GLenum target, GLint format, QFlags options); %End private: QGLWidget(const QGLWidget &); }; %If (Qt_4_2_0 -) QFlags operator|(QGLFormat::OpenGLVersionFlag f1, QFlags f2); %End %If (Qt_4_6_0 -) QFlags operator|(QGLContext::BindOption f1, QFlags f2); %End %ModuleHeaderCode #include %End PyQt-x11-gpl-4.11.4/sip/QtOpenGL/qglbuffer.sip0000644000076500000240000000424612536324426020677 0ustar philstaff00000000000000// qglbuffer.sip generated by MetaSIP // // This file is part of the QtOpenGL Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_7_0 -) %If (PyQt_Deprecated_5_0) class QGLBuffer { %TypeHeaderCode #include %End public: enum Access { ReadOnly, WriteOnly, ReadWrite, }; enum Type { VertexBuffer, IndexBuffer, PixelPackBuffer, PixelUnpackBuffer, }; enum UsagePattern { StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, DynamicCopy, }; QGLBuffer(); explicit QGLBuffer(QGLBuffer::Type type); QGLBuffer(const QGLBuffer &other); ~QGLBuffer(); QGLBuffer::Type type() const; QGLBuffer::UsagePattern usagePattern() const; void setUsagePattern(QGLBuffer::UsagePattern value); bool create(); bool isCreated() const; void destroy(); bool bind(); void release(); static void release(QGLBuffer::Type type); GLuint bufferId() const; int size() const; bool read(int offset, void *data, int count); void write(int offset, const void *data, int count); void allocate(const void *data, int count); void allocate(int count); void *map(QGLBuffer::Access access); bool unmap(); }; %End %End PyQt-x11-gpl-4.11.4/sip/QtOpenGL/qglcolormap.sip0000644000076500000240000000367212536324426021244 0ustar philstaff00000000000000// qglcolormap.sip generated by MetaSIP // // This file is part of the QtOpenGL Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (PyQt_Deprecated_5_0) class QGLColormap { %TypeHeaderCode #include %End public: QGLColormap(); QGLColormap(const QGLColormap &); ~QGLColormap(); void detach(); bool isEmpty() const; int size() const; void setEntries(SIP_PYLIST colors /DocType="list-of-int"/, int base = 0); %MethodCode // The Python implementation takes a list of numbers. QRgb *colours = new QRgb[PyList_GET_SIZE(a0)]; for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(a0); ++i) colours[i] = PyLong_AsUnsignedLong(PyList_GET_ITEM(a0, i)); sipCpp->setEntries(PyList_GET_SIZE(a0), colours, a1); delete[] colours; %End void setEntry(int idx, QRgb color); void setEntry(int idx, const QColor &color); QRgb entryRgb(int idx) const; QColor entryColor(int idx) const; int find(QRgb color) const; int findNearest(QRgb color) const; protected: Qt::HANDLE handle(); void setHandle(Qt::HANDLE ahandle); }; %End PyQt-x11-gpl-4.11.4/sip/QtOpenGL/qglframebufferobject.sip0000644000076500000240000001063012536324426023073 0ustar philstaff00000000000000// qglframebufferobject.sip generated by MetaSIP // // This file is part of the QtOpenGL Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 -) %If (PyQt_Deprecated_5_0) class QGLFramebufferObject : QPaintDevice { %TypeHeaderCode #include %End public: %If (Qt_4_3_0 -) enum Attachment { NoAttachment, CombinedDepthStencil, Depth, }; %End QGLFramebufferObject(const QSize &size, GLenum target = GL_TEXTURE_2D); QGLFramebufferObject(int width, int height, GLenum target = GL_TEXTURE_2D); %If (Qt_4_3_0 -) %If (PyQt_NoOpenGLES) QGLFramebufferObject(const QSize &size, QGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = GL_RGBA8); %End %End %If (Qt_4_3_0 -) %If (PyQt_NoOpenGLES) QGLFramebufferObject(int width, int height, QGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = GL_RGBA8); %End %End %If (Qt_4_6_0 -) %If (!PyQt_NoOpenGLES) // Alternative ctors if OpenGL ES is used. QGLFramebufferObject(const QSize &, QGLFramebufferObject::Attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = GL_RGBA); QGLFramebufferObject(int, int, QGLFramebufferObject::Attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = GL_RGBA); %End %End %If (Qt_4_6_0 -) QGLFramebufferObject(const QSize &size, const QGLFramebufferObjectFormat &format); %End %If (Qt_4_6_0 -) QGLFramebufferObject(int width, int height, const QGLFramebufferObjectFormat &format); %End virtual ~QGLFramebufferObject(); %If (Qt_4_3_0 -) QGLFramebufferObject::Attachment attachment() const; %End bool isValid() const; bool bind(); %If (Qt_4_5_0 -) bool isBound() const; %End bool release(); GLuint texture() const; %If (Qt_4_4_0 -) void drawTexture(const QRectF &target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D); %End %If (Qt_4_4_0 -) void drawTexture(const QPointF &point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D); %End QSize size() const; QImage toImage() const; virtual QPaintEngine *paintEngine() const; GLuint handle() const; static bool hasOpenGLFramebufferObjects(); protected: virtual int metric(QPaintDevice::PaintDeviceMetric metric) const; public: %If (Qt_4_6_0 -) QGLFramebufferObjectFormat format() const; %End %If (Qt_4_6_0 -) static bool hasOpenGLFramebufferBlit(); %End %If (Qt_4_6_0 -) static void blitFramebuffer(QGLFramebufferObject *target, const QRect &targetRect, QGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST); %End private: QGLFramebufferObject(const QGLFramebufferObject &); }; %End %End %If (Qt_4_6_0 -) %If (PyQt_Deprecated_5_0) class QGLFramebufferObjectFormat { %TypeHeaderCode #include %End public: QGLFramebufferObjectFormat(); QGLFramebufferObjectFormat(const QGLFramebufferObjectFormat &other); ~QGLFramebufferObjectFormat(); void setSamples(int samples); int samples() const; void setAttachment(QGLFramebufferObject::Attachment attachment); QGLFramebufferObject::Attachment attachment() const; void setTextureTarget(GLenum target); GLenum textureTarget() const; void setInternalTextureFormat(GLenum internalTextureFormat); GLenum internalTextureFormat() const; bool operator==(const QGLFramebufferObjectFormat &other) const; bool operator!=(const QGLFramebufferObjectFormat &other) const; %If (Qt_4_8_0 -) void setMipmap(bool enabled); %End %If (Qt_4_8_0 -) bool mipmap() const; %End }; %End %End PyQt-x11-gpl-4.11.4/sip/QtOpenGL/qglpixelbuffer.sip0000644000076500000240000000477312536324426021746 0ustar philstaff00000000000000// qglpixelbuffer.sip generated by MetaSIP // // This file is part of the QtOpenGL Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (PyQt_Deprecated_5_0) class QGLPixelBuffer : QPaintDevice { %TypeHeaderCode #include %End public: QGLPixelBuffer(const QSize &size, const QGLFormat &format = QGLFormat::defaultFormat(), QGLWidget *shareWidget = 0); %If (Qt_4_2_0 -) QGLPixelBuffer(int width, int height, const QGLFormat &format = QGLFormat::defaultFormat(), QGLWidget *shareWidget = 0); %End virtual ~QGLPixelBuffer(); bool isValid() const; bool makeCurrent(); bool doneCurrent(); GLuint generateDynamicTexture() const; bool bindToDynamicTexture(GLuint texture); void releaseFromDynamicTexture(); void updateDynamicTexture(GLuint texture_id) const; GLuint bindTexture(const QImage &image, GLenum target = GL_TEXTURE_2D); GLuint bindTexture(const QPixmap &pixmap, GLenum target = GL_TEXTURE_2D); GLuint bindTexture(const QString &fileName); %If (Qt_4_4_0 -) void drawTexture(const QRectF &target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D); %End %If (Qt_4_4_0 -) void drawTexture(const QPointF &point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D); %End void deleteTexture(GLuint texture_id); QSize size() const; Qt::HANDLE handle() const; QImage toImage() const; virtual QPaintEngine *paintEngine() const; QGLFormat format() const; %If (Qt_5_0_0 -) QGLContext *context() const; %End static bool hasOpenGLPbuffers(); protected: virtual int metric(QPaintDevice::PaintDeviceMetric metric) const; virtual int devType() const; private: QGLPixelBuffer(const QGLPixelBuffer &); }; %End PyQt-x11-gpl-4.11.4/sip/QtOpenGL/qglshaderprogram.sip0000644000076500000240000003524112536324426022263 0ustar philstaff00000000000000// qglshaderprogram.sip generated by MetaSIP // // This file is part of the QtOpenGL Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) %ModuleCode #include %End %End %If (Qt_4_6_0 -) %If (PyQt_Deprecated_5_0) class QGLShader : QObject { %TypeHeaderCode #include %End public: enum ShaderTypeBit { Vertex, Fragment, %If (Qt_4_7_0 -) Geometry, %End }; typedef QFlags ShaderType; QGLShader(QFlags type, QObject *parent /TransferThis/ = 0); QGLShader(QFlags type, const QGLContext *context, QObject *parent /TransferThis/ = 0); virtual ~QGLShader(); QFlags shaderType() const; bool compileSourceCode(const QByteArray &source); bool compileSourceCode(const QString &source); bool compileSourceFile(const QString &fileName); QByteArray sourceCode() const; bool isCompiled() const; QString log() const; GLuint shaderId() const; %If (Qt_4_7_0 -) static bool hasOpenGLShaders(QFlags type, const QGLContext *context = 0); %End private: QGLShader(const QGLShader &); }; %End %End %If (Qt_4_6_0 -) %If (PyQt_Deprecated_5_0) QFlags operator|(QGLShader::ShaderTypeBit f1, QFlags f2); %End %End %If (Qt_4_6_0 -) %If (PyQt_Deprecated_5_0) class QGLShaderProgram : QObject { %TypeHeaderCode #include %End public: explicit QGLShaderProgram(QObject *parent /TransferThis/ = 0); QGLShaderProgram(const QGLContext *context, QObject *parent /TransferThis/ = 0); virtual ~QGLShaderProgram(); bool addShader(QGLShader *shader); void removeShader(QGLShader *shader); QList shaders() const; bool addShaderFromSourceCode(QFlags type, const QByteArray &source); bool addShaderFromSourceCode(QFlags type, const QString &source); bool addShaderFromSourceFile(QFlags type, const QString &fileName); void removeAllShaders(); virtual bool link(); bool isLinked() const; QString log() const; bool bind(); void release(); GLuint programId() const; void bindAttributeLocation(const QByteArray &name, int location); void bindAttributeLocation(const QString &name, int location); int attributeLocation(const QByteArray &name) const; int attributeLocation(const QString &name) const; void setAttributeArray(int location, SIP_PYOBJECT values /DocType="sequence"/); %MethodCode const GLfloat *values; int tsize; values = qpyopengl_attribute_array(a1, sipSelf, SIPLong_FromLong(a0), &tsize, &sipError); if (values) sipCpp->setAttributeArray(a0, values, tsize); %End void setAttributeArray(const char *name, SIP_PYOBJECT values /DocType="sequence"/); %MethodCode const GLfloat *values; int tsize; values = qpyopengl_attribute_array(a1, sipSelf, SIPBytes_FromString(a0), &tsize, &sipError); if (values) sipCpp->setAttributeArray(a0, values, tsize); %End void setAttributeValue(int location, GLfloat value); void setAttributeValue(int location, GLfloat x, GLfloat y); void setAttributeValue(int location, GLfloat x, GLfloat y, GLfloat z); void setAttributeValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void setAttributeValue(int location, const QVector2D &value); void setAttributeValue(int location, const QVector3D &value); void setAttributeValue(int location, const QVector4D &value); void setAttributeValue(int location, const QColor &value); void setAttributeValue(const char *name, GLfloat value); void setAttributeValue(const char *name, GLfloat x, GLfloat y); void setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z); void setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void setAttributeValue(const char *name, const QVector2D &value); void setAttributeValue(const char *name, const QVector3D &value); void setAttributeValue(const char *name, const QVector4D &value); void setAttributeValue(const char *name, const QColor &value); void enableAttributeArray(int location); void enableAttributeArray(const char *name); void disableAttributeArray(int location); void disableAttributeArray(const char *name); int uniformLocation(const QByteArray &name) const; int uniformLocation(const QString &name) const; void setUniformValueArray(int location, SIP_PYOBJECT values /DocType="sequence"/); %MethodCode const void *values; const sipTypeDef *array_type; int array_len, tsize; values = qpyopengl_uniform_value_array(a1, sipSelf, SIPLong_FromLong(a0), &array_type, &array_len, &tsize, &sipError); if (values) { if (array_type == sipType_QVector2D) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QVector3D) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QVector4D) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix2x2) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix2x3) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix2x4) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix3x2) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix3x3) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix3x4) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix4x2) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix4x3) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix4x4) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len, tsize); } %End void setUniformValueArray(const char *name, SIP_PYOBJECT values /DocType="sequence"/); %MethodCode const void *values; const sipTypeDef *array_type; int array_len, tsize; values = qpyopengl_uniform_value_array(a1, sipSelf, SIPBytes_FromString(a0), &array_type, &array_len, &tsize, &sipError); if (values) { if (array_type == sipType_QVector2D) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QVector3D) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QVector4D) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix2x2) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix2x3) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix2x4) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix3x2) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix3x3) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix3x4) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix4x2) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix4x3) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else if (array_type == sipType_QMatrix4x4) sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len); else sipCpp->setUniformValueArray(a0, reinterpret_cast(values), array_len, tsize); } %End void setUniformValue(int location, GLint value /Constrained/); void setUniformValue(int location, GLfloat value /Constrained/); void setUniformValue(int location, GLfloat x, GLfloat y); void setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z); void setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void setUniformValue(int location, const QVector2D &value); void setUniformValue(int location, const QVector3D &value); void setUniformValue(int location, const QVector4D &value); void setUniformValue(int location, const QColor &color); void setUniformValue(int location, const QPoint &point); void setUniformValue(int location, const QPointF &point); void setUniformValue(int location, const QSize &size); void setUniformValue(int location, const QSizeF &size); void setUniformValue(int location, const QMatrix2x2 &value); void setUniformValue(int location, const QMatrix2x3 &value); void setUniformValue(int location, const QMatrix2x4 &value); void setUniformValue(int location, const QMatrix3x2 &value); void setUniformValue(int location, const QMatrix3x3 &value); void setUniformValue(int location, const QMatrix3x4 &value); void setUniformValue(int location, const QMatrix4x2 &value); void setUniformValue(int location, const QMatrix4x3 &value); void setUniformValue(int location, const QMatrix4x4 &value); void setUniformValue(int location, const QTransform &value); void setUniformValue(const char *name, GLint value /Constrained/); void setUniformValue(const char *name, GLfloat value /Constrained/); void setUniformValue(const char *name, GLfloat x, GLfloat y); void setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z); void setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void setUniformValue(const char *name, const QVector2D &value); void setUniformValue(const char *name, const QVector3D &value); void setUniformValue(const char *name, const QVector4D &value); void setUniformValue(const char *name, const QColor &color); void setUniformValue(const char *name, const QPoint &point); void setUniformValue(const char *name, const QPointF &point); void setUniformValue(const char *name, const QSize &size); void setUniformValue(const char *name, const QSizeF &size); void setUniformValue(const char *name, const QMatrix2x2 &value); void setUniformValue(const char *name, const QMatrix2x3 &value); void setUniformValue(const char *name, const QMatrix2x4 &value); void setUniformValue(const char *name, const QMatrix3x2 &value); void setUniformValue(const char *name, const QMatrix3x3 &value); void setUniformValue(const char *name, const QMatrix3x4 &value); void setUniformValue(const char *name, const QMatrix4x2 &value); void setUniformValue(const char *name, const QMatrix4x3 &value); void setUniformValue(const char *name, const QMatrix4x4 &value); void setUniformValue(const char *name, const QTransform &value); static bool hasOpenGLShaderPrograms(const QGLContext *context = 0); %If (Qt_4_7_0 -) void setGeometryOutputVertexCount(int count); %End %If (Qt_4_7_0 -) int geometryOutputVertexCount() const; %End %If (Qt_4_7_0 -) void setGeometryInputType(GLenum inputType); %End %If (Qt_4_7_0 -) GLenum geometryInputType() const; %End %If (Qt_4_7_0 -) void setGeometryOutputType(GLenum outputType); %End %If (Qt_4_7_0 -) GLenum geometryOutputType() const; %End %If (Qt_4_7_0 -) void setAttributeBuffer(int location, GLenum type, int offset, int tupleSize, int stride = 0); %End %If (Qt_4_7_0 -) void setAttributeBuffer(const char *name, GLenum type, int offset, int tupleSize, int stride = 0); %End private: QGLShaderProgram(const QGLShaderProgram &); }; %End %End PyQt-x11-gpl-4.11.4/sip/QtOpenGL/QtOpenGLmod.sip0000644000076500000240000000403012536324426021042 0ustar philstaff00000000000000// QtOpenGLmod.sip generated by MetaSIP // // This file is part of the QtOpenGL Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtOpenGL, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qgl.sip %Include qglbuffer.sip %Include qglcolormap.sip %Include qglframebufferobject.sip %Include qglpixelbuffer.sip %Include qglshaderprogram.sip PyQt-x11-gpl-4.11.4/sip/QtScript/0000755000076500000240000000000012536324426016317 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtScript/qscriptclass.sip0000644000076500000240000000472512536324426021557 0ustar philstaff00000000000000// qscriptclass.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %ModuleCode #include %End %End %If (Qt_4_4_0 -) class QScriptClass { %TypeHeaderCode #include %End public: enum QueryFlag { HandlesReadAccess, HandlesWriteAccess, }; typedef QFlags QueryFlags; enum Extension { Callable, %If (Qt_4_5_0 -) HasInstance, %End }; QScriptClass(QScriptEngine *engine); virtual ~QScriptClass(); QScriptEngine *engine() const; virtual QFlags queryProperty(const QScriptValue &object, const QScriptString &name, QFlags flags, uint *id); virtual QScriptValue property(const QScriptValue &object, const QScriptString &name, uint id); virtual void setProperty(QScriptValue &object, const QScriptString &name, uint id, const QScriptValue &value); virtual QFlags propertyFlags(const QScriptValue &object, const QScriptString &name, uint id); virtual QScriptClassPropertyIterator *newIterator(const QScriptValue &object); virtual QScriptValue prototype() const; virtual QString name() const; virtual bool supportsExtension(QScriptClass::Extension extension) const; virtual QVariant extension(QScriptClass::Extension extension, const QVariant &argument /DocValue="Py_v3:None"/ = QVariant()); private: QScriptClass(const QScriptClass &); }; %End %If (Qt_4_4_0 -) QFlags operator|(QScriptClass::QueryFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtScript/qscriptclasspropertyiterator.sip0000644000076500000240000000321712536324426025131 0ustar philstaff00000000000000// qscriptclasspropertyiterator.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QScriptClassPropertyIterator { %TypeHeaderCode #include %End public: virtual ~QScriptClassPropertyIterator(); QScriptValue object() const; virtual bool hasNext() const = 0; virtual void next() = 0; virtual bool hasPrevious() const = 0; virtual void previous() = 0; virtual void toFront() = 0; virtual void toBack() = 0; virtual QScriptString name() const = 0; virtual uint id() const; virtual QFlags flags() const; protected: QScriptClassPropertyIterator(const QScriptValue &object); private: QScriptClassPropertyIterator(const QScriptClassPropertyIterator &); }; %End PyQt-x11-gpl-4.11.4/sip/QtScript/qscriptcontext.sip0000644000076500000240000000421212536324426022125 0ustar philstaff00000000000000// qscriptcontext.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) class QScriptContext { %TypeHeaderCode #include %End public: enum ExecutionState { NormalState, ExceptionState, }; enum Error { UnknownError, ReferenceError, SyntaxError, TypeError, RangeError, URIError, }; ~QScriptContext(); QScriptContext *parentContext() const; QScriptEngine *engine() const; QScriptContext::ExecutionState state() const; QScriptValue callee() const; int argumentCount() const; QScriptValue argument(int index) const; QScriptValue argumentsObject() const; QScriptValue activationObject() const; void setActivationObject(const QScriptValue &activation); QScriptValue thisObject() const; void setThisObject(const QScriptValue &thisObject); bool isCalledAsConstructor() const; QStringList backtrace() const; QScriptValue throwValue(const QScriptValue &value); QScriptValue throwError(QScriptContext::Error error, const QString &text); QScriptValue throwError(const QString &text); %If (Qt_4_4_0 -) QString toString() const; %End private: QScriptContext(); QScriptContext(const QScriptContext &); }; %End PyQt-x11-gpl-4.11.4/sip/QtScript/qscriptcontextinfo.sip0000644000076500000240000000434312536324426023006 0ustar philstaff00000000000000// qscriptcontextinfo.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %ModuleCode #include %End %End %If (Qt_4_4_0 -) class QScriptContextInfo { %TypeHeaderCode #include %End public: enum FunctionType { ScriptFunction, QtFunction, QtPropertyFunction, NativeFunction, }; QScriptContextInfo(const QScriptContext *context); QScriptContextInfo(const QScriptContextInfo &other); QScriptContextInfo(); ~QScriptContextInfo(); bool isNull() const; qint64 scriptId() const; QString fileName() const; int lineNumber() const; %If (PyQt_Deprecated_5_0) int columnNumber() const; %End QString functionName() const; QScriptContextInfo::FunctionType functionType() const; QStringList functionParameterNames() const; int functionStartLineNumber() const; int functionEndLineNumber() const; int functionMetaIndex() const; bool operator==(const QScriptContextInfo &other) const; bool operator!=(const QScriptContextInfo &other) const; }; %End %If (Qt_4_4_0 -) typedef QList QScriptContextInfoList; %End %If (Qt_4_4_0 -) QDataStream &operator<<(QDataStream &, const QScriptContextInfo & /Constrained/); %End %If (Qt_4_4_0 -) QDataStream &operator>>(QDataStream &, QScriptContextInfo & /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtScript/qscriptengine.sip0000644000076500000240000002131412536324426021710 0ustar philstaff00000000000000// qscriptengine.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %ModuleCode #include %End %End %If (Qt_4_3_0 -) class QScriptEngine : QObject { %TypeHeaderCode #include %End %TypeCode #if QT_VERSION >= 0x040400 // Save a Python callable in a QScriptValue so that it can be retrieved later // by the handler. static void qtscript_func_wrapper(QScriptEngine *eng, QScriptValue *qsv, PyObject *py) { QString addr = QString::number((qulonglong)py); qsv->setData(QScriptValue(eng, addr)); // Make sure that the callable isn't garbage collected. This shouldn't be // a problem as we wouldn't normally be called in a loop. Py_INCREF(py); } // Invoke the saved Python callable on behalf of C++. static QScriptValue qtscript_func_handler(QScriptContext *context, QScriptEngine *eng) { QScriptValue qsv; QString addr = context->callee().data().toString(); PyObject *py = (PyObject *)addr.toULongLong(); SIP_BLOCK_THREADS PyObject *res_obj = sipCallMethod(0, py, "DD", context, sipType_QScriptContext, NULL, eng, sipType_QScriptEngine, NULL); if (!res_obj) PyErr_Print(); else { QScriptValue *res; if (sipParseResult(0, py, res_obj, "D5", sipType_QScriptValue, &res) < 0) PyErr_Print(); else qsv = *res; } Py_XDECREF(res_obj); SIP_UNBLOCK_THREADS return qsv; } #endif %End %ConvertToSubClassCode sipType = (sipCpp->inherits(sipName_QScriptEngine) ? sipType_QScriptEngine : 0); %End public: enum ValueOwnership { QtOwnership, ScriptOwnership, AutoOwnership, }; enum QObjectWrapOption { ExcludeChildObjects, ExcludeSuperClassMethods, ExcludeSuperClassProperties, AutoCreateDynamicProperties, %If (Qt_4_4_0 -) SkipMethodsInEnumeration, %End %If (Qt_4_4_0 -) PreferExistingWrapperObject, %End %If (Qt_4_5_0 -) ExcludeSuperClassContents, %End %If (Qt_4_5_0 -) ExcludeDeleteLater, %End %If (Qt_4_7_0 -) ExcludeSlots, %End }; typedef QFlags QObjectWrapOptions; QScriptEngine(); explicit QScriptEngine(QObject *parent /TransferThis/); virtual ~QScriptEngine(); QScriptValue globalObject() const; QScriptContext *currentContext() const; QScriptContext *pushContext(); void popContext(); bool canEvaluate(const QString &program) const; QScriptValue evaluate(const QString &program, const QString &fileName /DocValue="Py_v3:''"/ = QString(), int lineNumber = 1); bool hasUncaughtException() const; QStringList uncaughtExceptionBacktrace() const; QScriptValue uncaughtException() const; int uncaughtExceptionLineNumber() const; QScriptValue nullValue(); QScriptValue undefinedValue(); %If (Qt_4_4_0 -) QScriptValue newFunction(SIP_PYCALLABLE signature, int length = 0); %MethodCode // This is implemented for Qt v4.4 and later because we rely on the // QScriptValue::setData() support. Py_BEGIN_ALLOW_THREADS sipRes = new QScriptValue(sipCpp->newFunction(qtscript_func_handler, a1)); Py_END_ALLOW_THREADS qtscript_func_wrapper(sipCpp, sipRes, a0); %End %End %If (Qt_4_4_0 -) QScriptValue newFunction(SIP_PYCALLABLE signature, const QScriptValue &prototype, int length = 0); %MethodCode // This is implemented for Qt v4.4 and later because we rely on the // QScriptValue::setData() support. Py_BEGIN_ALLOW_THREADS sipRes = new QScriptValue(sipCpp->newFunction(qtscript_func_handler, *a1, a2)); Py_END_ALLOW_THREADS qtscript_func_wrapper(sipCpp, sipRes, a0); %End %End QScriptValue newVariant(const QVariant &value); %If (Qt_4_4_0 -) QScriptValue newVariant(const QScriptValue &object, const QVariant &value); %End QScriptValue newRegExp(const QRegExp ®exp); QScriptValue newObject(); %If (Qt_4_4_0 -) QScriptValue newObject(QScriptClass *scriptClass, const QScriptValue &data = QScriptValue()); %End QScriptValue newArray(uint length = 0); QScriptValue newRegExp(const QString &pattern, const QString &flags); QScriptValue newDate(qsreal value); QScriptValue newDate(const QDateTime &value); QScriptValue newQObject(QObject *object /GetWrapper/, QScriptEngine::ValueOwnership ownership = QScriptEngine::QtOwnership, const QFlags &options = 0); %MethodCode // We have to handle the object ownership manually. Py_BEGIN_ALLOW_THREADS sipRes = new QScriptValue(sipCpp->newQObject(a0, a1, *a2)); Py_END_ALLOW_THREADS if (a1 == QScriptEngine::ScriptOwnership || (a1 == QScriptEngine::AutoOwnership && !a0->parent())) sipTransferTo(a0Wrapper, sipSelf); %End %If (Qt_4_4_0 -) QScriptValue newQObject(const QScriptValue &scriptObject, QObject *qtObject /GetWrapper/, QScriptEngine::ValueOwnership ownership = QScriptEngine::QtOwnership, const QFlags &options = 0); %MethodCode // We have to handle the object ownership manually. Py_BEGIN_ALLOW_THREADS sipRes = new QScriptValue(sipCpp->newQObject(*a0, a1, a2, *a3)); Py_END_ALLOW_THREADS if (a2 == QScriptEngine::ScriptOwnership || (a2 == QScriptEngine::AutoOwnership && !a1->parent())) sipTransferTo(a1Wrapper, sipSelf); %End %End QScriptValue newQMetaObject(const QMetaObject *metaObject, const QScriptValue &ctor = QScriptValue()); QScriptValue defaultPrototype(int metaTypeId) const; void setDefaultPrototype(int metaTypeId, const QScriptValue &prototype); QScriptValue importExtension(const QString &extension); void collectGarbage(); void setProcessEventsInterval(int interval); int processEventsInterval() const; %If (Qt_4_4_0 -) bool isEvaluating() const; %End %If (Qt_4_4_0 -) void abortEvaluation(const QScriptValue &result = QScriptValue()); %End %If (Qt_4_4_0 -) void clearExceptions(); %End %If (Qt_4_4_0 -) QStringList availableExtensions() const; %End %If (Qt_4_4_0 -) QStringList importedExtensions() const; %End %If (Qt_4_4_0 -) void setAgent(QScriptEngineAgent *agent); %End %If (Qt_4_4_0 -) QScriptEngineAgent *agent() const; %End %If (Qt_4_4_0 -) QScriptString toStringHandle(const QString &str); %End %If (Qt_4_5_0 -) void setGlobalObject(const QScriptValue &object); %End %If (Qt_4_5_0 -) static QScriptSyntaxCheckResult checkSyntax(const QString &program); %End %If (Qt_4_5_0 -) void installTranslatorFunctions(const QScriptValue &object = QScriptValue()); %End %If (Qt_4_5_0 -) QScriptValue toObject(const QScriptValue &value); %End signals: %If (Qt_4_4_0 -) void signalHandlerException(const QScriptValue &exception); %End public: %If (Qt_4_7_0 -) void reportAdditionalMemoryCost(int size); %End private: QScriptEngine(const QScriptEngine &); }; %End %If (Qt_4_3_0 -) QFlags operator|(QScriptEngine::QObjectWrapOption f1, QFlags f2); %End %If (Qt_4_4_0 -) bool qScriptConnect(QObject *sender, SIP_SIGNAL signal, const QScriptValue &receiver, const QScriptValue &function); %End %If (Qt_4_4_0 -) bool qScriptDisconnect(QObject *sender, SIP_SIGNAL signal, const QScriptValue &receiver, const QScriptValue &function); %End %If (Qt_4_5_0 -) class QScriptSyntaxCheckResult { %TypeHeaderCode #include %End public: enum State { Error, Intermediate, Valid, }; QScriptSyntaxCheckResult(const QScriptSyntaxCheckResult &other); ~QScriptSyntaxCheckResult(); QScriptSyntaxCheckResult::State state() const; int errorLineNumber() const; int errorColumnNumber() const; QString errorMessage() const; private: QScriptSyntaxCheckResult(); }; %End PyQt-x11-gpl-4.11.4/sip/QtScript/qscriptengineagent.sip0000644000076500000240000000424112536324426022727 0ustar philstaff00000000000000// qscriptengineagent.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QScriptEngineAgent /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: enum Extension { %If (Qt_4_5_0 -) DebuggerInvocationRequest, %End }; QScriptEngineAgent(QScriptEngine *engine /TransferThis/); virtual ~QScriptEngineAgent(); virtual void scriptLoad(qint64 id, const QString &program, const QString &fileName, int baseLineNumber); virtual void scriptUnload(qint64 id); virtual void contextPush(); virtual void contextPop(); virtual void functionEntry(qint64 scriptId); virtual void functionExit(qint64 scriptId, const QScriptValue &returnValue); virtual void positionChange(qint64 scriptId, int lineNumber, int columnNumber); virtual void exceptionThrow(qint64 scriptId, const QScriptValue &exception, bool hasHandler); virtual void exceptionCatch(qint64 scriptId, const QScriptValue &exception); virtual bool supportsExtension(QScriptEngineAgent::Extension extension) const; virtual QVariant extension(QScriptEngineAgent::Extension extension, const QVariant &argument /DocValue="Py_v3:None"/ = QVariant()); QScriptEngine *engine() const; private: QScriptEngineAgent(const QScriptEngineAgent &); }; %End PyQt-x11-gpl-4.11.4/sip/QtScript/qscriptstring.sip0000644000076500000240000000301312536324426021745 0ustar philstaff00000000000000// qscriptstring.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QScriptString { %TypeHeaderCode #include %End %TypeCode #include %End public: QScriptString(); QScriptString(const QScriptString &other); ~QScriptString(); %If (Qt_4_6_0 -) long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End %End bool isValid() const; bool operator==(const QScriptString &other) const; bool operator!=(const QScriptString &other) const; QString toString() const; operator QString() const; %If (Qt_4_6_0 -) quint32 toArrayIndex(bool *ok = 0) const; %End }; %End PyQt-x11-gpl-4.11.4/sip/QtScript/qscriptvalue.sip0000644000076500000240000001352712536324426021566 0ustar philstaff00000000000000// qscriptvalue.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) %ModuleCode #include %End %End %If (Qt_4_3_0 -) typedef QList QScriptValueList; %End %If (Qt_4_3_0 -) typedef double qsreal; %End %If (Qt_4_3_0 -) class QScriptValue { %TypeHeaderCode #include %End public: enum ResolveFlag { ResolveLocal, ResolvePrototype, ResolveScope, ResolveFull, }; typedef QFlags ResolveFlags; enum PropertyFlag { ReadOnly, Undeletable, SkipInEnumeration, PropertyGetter, PropertySetter, QObjectMember, KeepExistingFlags, UserRange, }; typedef QFlags PropertyFlags; enum SpecialValue { NullValue, UndefinedValue, }; QScriptValue(); QScriptValue(const QScriptValue &other); %If (Qt_4_5_0 -) QScriptValue(QScriptValue::SpecialValue value /Constrained/); %End QScriptValue(QScriptEngine *engine, QScriptValue::SpecialValue val /Constrained/); %If (Qt_4_5_0 -) QScriptValue(bool value /Constrained/); %End QScriptValue(QScriptEngine *engine, bool val /Constrained/); %If (Qt_4_5_0 -) QScriptValue(int value /Constrained/); %End QScriptValue(QScriptEngine *engine, int val /Constrained/); %If (Qt_4_5_0 -) QScriptValue(qsreal value /Constrained/); %End QScriptValue(QScriptEngine *engine, qsreal val /Constrained/); %If (Qt_4_5_0 -) QScriptValue(const QString &value); %End QScriptValue(QScriptEngine *engine, const QString &val); ~QScriptValue(); QScriptEngine *engine() const; bool isValid() const; %If (Qt_4_5_0 -) bool isBool() const; %End bool isBoolean() const; bool isNumber() const; bool isFunction() const; bool isNull() const; bool isString() const; bool isUndefined() const; bool isVariant() const; bool isQObject() const; bool isQMetaObject() const; bool isObject() const; bool isDate() const; bool isRegExp() const; bool isArray() const; bool isError() const; QString toString() const; qsreal toNumber() const; %If (Qt_4_5_0 -) bool toBool() const; %End bool toBoolean() const; qsreal toInteger() const; qint32 toInt32() const; quint32 toUInt32() const; quint16 toUInt16() const; QVariant toVariant() const; QObject *toQObject() const; const QMetaObject *toQMetaObject() const; QScriptValue toObject() const; QDateTime toDateTime() const; QRegExp toRegExp() const; bool instanceOf(const QScriptValue &ctor) const; bool lessThan(const QScriptValue &other) const; bool equals(const QScriptValue &other) const; bool strictlyEquals(const QScriptValue &other) const; QScriptValue prototype() const; void setPrototype(const QScriptValue &prototype); QScriptValue property(const QString &name, const QFlags &mode = QScriptValue::ResolvePrototype) const; void setProperty(const QString &name, const QScriptValue &value, const QFlags &flags = QScriptValue::KeepExistingFlags); %If (Qt_4_4_0 -) QScriptValue property(const QScriptString &name, const QFlags &mode = QScriptValue::ResolvePrototype) const; %End %If (Qt_4_4_0 -) void setProperty(const QScriptString &name, const QScriptValue &value, const QFlags &flags = QScriptValue::KeepExistingFlags); %End QScriptValue property(quint32 arrayIndex, const QFlags &mode = QScriptValue::ResolvePrototype) const; void setProperty(quint32 arrayIndex, const QScriptValue &value, const QFlags &flags = QScriptValue::KeepExistingFlags); QFlags propertyFlags(const QString &name, const QFlags &mode = QScriptValue::ResolvePrototype) const; %If (Qt_4_4_0 -) QFlags propertyFlags(const QScriptString &name, const QFlags &mode = QScriptValue::ResolvePrototype) const; %End QScriptValue call(const QScriptValue &thisObject = QScriptValue(), const QScriptValueList &args = QScriptValueList()); QScriptValue call(const QScriptValue &thisObject, const QScriptValue &arguments); QScriptValue construct(const QScriptValueList &args = QScriptValueList()); QScriptValue construct(const QScriptValue &arguments); %If (Qt_4_4_0 -) QScriptValue data() const; %End %If (Qt_4_4_0 -) void setData(const QScriptValue &data); %End %If (Qt_4_4_0 -) QScriptClass *scriptClass() const; %End %If (Qt_4_4_0 -) void setScriptClass(QScriptClass *scriptClass /KeepReference/); %End }; %End %If (Qt_4_3_0 -) QFlags operator|(QScriptValue::ResolveFlag f1, QFlags f2); %End %If (Qt_4_3_0 -) QFlags operator|(QScriptValue::PropertyFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtScript/qscriptvalueiterator.sip0000644000076500000240000000307712536324426023337 0ustar philstaff00000000000000// qscriptvalueiterator.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) class QScriptValueIterator { %TypeHeaderCode #include %End public: QScriptValueIterator(const QScriptValue &value); ~QScriptValueIterator(); bool hasNext() const; void next(); bool hasPrevious() const; void previous(); QString name() const; QScriptValue value() const; void setValue(const QScriptValue &value); QFlags flags() const; void remove(); void toFront(); void toBack(); %If (Qt_4_4_0 -) QScriptString scriptName() const; %End private: QScriptValueIterator(const QScriptValueIterator &); }; %End PyQt-x11-gpl-4.11.4/sip/QtScript/QtScriptmod.sip0000644000076500000240000000416212536324426021310 0ustar philstaff00000000000000// QtScriptmod.sip generated by MetaSIP // // This file is part of the QtScript Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtScript, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qscriptclass.sip %Include qscriptclasspropertyiterator.sip %Include qscriptcontext.sip %Include qscriptcontextinfo.sip %Include qscriptengine.sip %Include qscriptengineagent.sip %Include qscriptstring.sip %Include qscriptvalue.sip %Include qscriptvalueiterator.sip PyQt-x11-gpl-4.11.4/sip/QtScriptTools/0000755000076500000240000000000012536324426017340 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtScriptTools/qscriptenginedebugger.sip0000644000076500000240000000551712536324426024445 0ustar philstaff00000000000000// qscriptenginedebugger.sip generated by MetaSIP // // This file is part of the QtScriptTools Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_5_0 -) class QScriptEngineDebugger : QObject { %TypeHeaderCode #include %End %ConvertToSubClassCode if (sipCpp->inherits(sipName_QScriptEngineDebugger)) sipType = sipType_QScriptEngineDebugger; else sipType = 0; %End public: enum DebuggerWidget { ConsoleWidget, StackWidget, ScriptsWidget, LocalsWidget, CodeWidget, CodeFinderWidget, BreakpointsWidget, DebugOutputWidget, ErrorLogWidget, }; enum DebuggerAction { InterruptAction, ContinueAction, StepIntoAction, StepOverAction, StepOutAction, RunToCursorAction, RunToNewScriptAction, ToggleBreakpointAction, ClearDebugOutputAction, ClearErrorLogAction, ClearConsoleAction, FindInScriptAction, FindNextInScriptAction, FindPreviousInScriptAction, GoToLineAction, }; QScriptEngineDebugger(QObject *parent /TransferThis/ = 0); virtual ~QScriptEngineDebugger(); void attachTo(QScriptEngine *engine); void detach(); bool autoShowStandardWindow() const; void setAutoShowStandardWindow(bool autoShow); QMainWindow *standardWindow() const /Factory/; QToolBar *createStandardToolBar(QWidget *parent /TransferThis/ = 0); QMenu *createStandardMenu(QWidget *parent /TransferThis/ = 0); QWidget *widget(QScriptEngineDebugger::DebuggerWidget widget) const; QAction *action(QScriptEngineDebugger::DebuggerAction action) const; signals: void evaluationSuspended(); void evaluationResumed(); public: %If (Qt_4_6_0 -) enum DebuggerState { RunningState, SuspendedState, }; %End %If (Qt_4_6_0 -) QScriptEngineDebugger::DebuggerState state() const; %End private: QScriptEngineDebugger(const QScriptEngineDebugger &); }; %End PyQt-x11-gpl-4.11.4/sip/QtScriptTools/QtScriptToolsmod.sip0000644000076500000240000000371612536324426023356 0ustar philstaff00000000000000// QtScriptToolsmod.sip generated by MetaSIP // // This file is part of the QtScriptTools Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtScriptTools, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Import QtScript/QtScriptmod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qscriptenginedebugger.sip PyQt-x11-gpl-4.11.4/sip/QtSql/0000755000076500000240000000000012536324426015612 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtSql/qsql.sip0000644000076500000240000000314612536324426017313 0ustar philstaff00000000000000// qsql.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End namespace QSql { %TypeHeaderCode #include %End enum Location { BeforeFirstRow, AfterLastRow, }; enum ParamTypeFlag { In, Out, InOut, Binary, }; typedef QFlags ParamType; enum TableType { Tables, SystemTables, Views, AllTables, }; %If (Qt_4_3_0 -) enum NumericalPrecisionPolicy { LowPrecisionInt32, LowPrecisionInt64, LowPrecisionDouble, HighPrecision, }; %End }; QFlags operator|(QSql::ParamTypeFlag f1, QFlags f2); PyQt-x11-gpl-4.11.4/sip/QtSql/qsqldatabase.sip0000644000076500000240000000745312536324426021005 0ustar philstaff00000000000000// qsqldatabase.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlDriverCreatorBase /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: virtual ~QSqlDriverCreatorBase(); virtual QSqlDriver *createObject() const = 0 /Factory/; }; class QSqlDatabase { %TypeHeaderCode #include %End public: QSqlDatabase(); QSqlDatabase(const QSqlDatabase &other); ~QSqlDatabase(); bool open() /ReleaseGIL/; bool open(const QString &user, const QString &password) /ReleaseGIL/; void close(); bool isOpen() const; bool isOpenError() const; QStringList tables(QSql::TableType type = QSql::Tables) const; QSqlIndex primaryIndex(const QString &tablename) const; QSqlRecord record(const QString &tablename) const; QSqlQuery exec(const QString &query /DocValue="Py_v3:''"/ = QString()) const /PyName=exec_,ReleaseGIL/; %If (Py_v3) QSqlQuery exec(const QString &query /DocValue="Py_v3:''"/ = QString()) const /ReleaseGIL/; %End QSqlError lastError() const; bool isValid() const; bool transaction() /ReleaseGIL/; bool commit() /ReleaseGIL/; bool rollback() /ReleaseGIL/; void setDatabaseName(const QString &name); void setUserName(const QString &name); void setPassword(const QString &password); void setHostName(const QString &host); void setPort(int p); void setConnectOptions(const QString &options /DocValue="Py_v3:''"/ = QString()); QString databaseName() const; QString userName() const; QString password() const; QString hostName() const; QString driverName() const; int port() const; QString connectOptions() const; %If (Qt_4_4_0 -) QString connectionName() const; %End QSqlDriver *driver() const; static QSqlDatabase addDatabase(const QString &type, const QString &connectionName = QLatin1String(QSqlDatabase::defaultConnection)); static QSqlDatabase addDatabase(QSqlDriver *driver, const QString &connectionName = QLatin1String(QSqlDatabase::defaultConnection)); static QSqlDatabase cloneDatabase(const QSqlDatabase &other, const QString &connectionName); static QSqlDatabase database(const QString &connectionName = QLatin1String(QSqlDatabase::defaultConnection), bool open = true); static void removeDatabase(const QString &connectionName); static bool contains(const QString &connectionName = QLatin1String(QSqlDatabase::defaultConnection)); static QStringList drivers(); static QStringList connectionNames(); static void registerSqlDriver(const QString &name, QSqlDriverCreatorBase *creator /Transfer/); static bool isDriverAvailable(const QString &name); protected: explicit QSqlDatabase(const QString &type); explicit QSqlDatabase(QSqlDriver *driver); public: %If (Qt_4_6_0 -) void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy); %End %If (Qt_4_6_0 -) QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const; %End }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqldriver.sip0000644000076500000240000001437112536324426020531 0ustar philstaff00000000000000// qsqldriver.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlDriver : QObject { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QSqlQueryModel, &sipType_QSqlQueryModel, 3, 1}, {sipName_QSqlRelationalDelegate, &sipType_QSqlRelationalDelegate, -1, 2}, {sipName_QSqlDriver, &sipType_QSqlDriver, -1, -1}, {sipName_QSqlTableModel, &sipType_QSqlTableModel, 4, -1}, {sipName_QSqlRelationalTableModel, &sipType_QSqlRelationalTableModel, -1, -1}, }; int i = 0; sipType = 0; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: enum DriverFeature { Transactions, QuerySize, BLOB, Unicode, PreparedQueries, NamedPlaceholders, PositionalPlaceholders, LastInsertId, BatchOperations, %If (Qt_4_3_0 -) SimpleLocking, %End %If (Qt_4_3_0 -) LowPrecisionNumbers, %End %If (Qt_4_4_0 -) EventNotifications, %End %If (Qt_4_4_0 -) FinishQuery, %End %If (Qt_4_4_0 -) MultipleResultSets, %End }; enum StatementType { WhereStatement, SelectStatement, UpdateStatement, InsertStatement, DeleteStatement, }; enum IdentifierType { FieldName, TableName, }; explicit QSqlDriver(QObject *parent /TransferThis/ = 0); virtual ~QSqlDriver(); virtual bool isOpen() const; bool isOpenError() const; virtual bool beginTransaction() /ReleaseGIL/; virtual bool commitTransaction() /ReleaseGIL/; virtual bool rollbackTransaction() /ReleaseGIL/; virtual QStringList tables(QSql::TableType tableType) const; virtual QSqlIndex primaryIndex(const QString &tableName) const; virtual QSqlRecord record(const QString &tableName) const; virtual QString formatValue(const QSqlField &field, bool trimStrings = false) const; virtual QString escapeIdentifier(const QString &identifier, QSqlDriver::IdentifierType type) const; virtual QString sqlStatement(QSqlDriver::StatementType type, const QString &tableName, const QSqlRecord &rec, bool preparedStatement) const; QSqlError lastError() const; virtual QVariant handle() const; virtual bool hasFeature(QSqlDriver::DriverFeature f) const = 0; virtual void close() = 0; virtual QSqlResult *createResult() const = 0 /Factory/; virtual bool open(const QString &db, const QString &user /DocValue="Py_v3:''"/ = QString(), const QString &password /DocValue="Py_v3:''"/ = QString(), const QString &host /DocValue="Py_v3:''"/ = QString(), int port = -1, const QString &options /DocValue="Py_v3:''"/ = QString()) = 0 /ReleaseGIL/; protected: virtual void setOpen(bool o); virtual void setOpenError(bool e); virtual void setLastError(const QSqlError &e); public: %If (Qt_5_0_0 -) virtual bool subscribeToNotification(const QString &name); %End %If (Qt_4_4_0 - Qt_5_0_0) bool subscribeToNotification(const QString &name); %End %If (Qt_5_0_0 -) virtual bool unsubscribeFromNotification(const QString &name); %End %If (Qt_4_4_0 - Qt_5_0_0) bool unsubscribeFromNotification(const QString &name); %End %If (Qt_5_0_0 -) virtual QStringList subscribedToNotifications() const; %End %If (Qt_4_4_0 - Qt_5_0_0) QStringList subscribedToNotifications() const; %End %If (Qt_5_0_0 -) enum NotificationSource { UnknownSource, SelfSource, OtherSource, }; %End signals: %If (Qt_4_4_0 -) void notification(const QString &name); %End %If (Qt_5_0_0 -) void notification(const QString &name, QSqlDriver::NotificationSource source, const QVariant &payload); %End protected slots: %If (Qt_4_4_0 - Qt_5_0_0) bool subscribeToNotificationImplementation(const QString &name); %End %If (Qt_4_4_0 - Qt_5_0_0) bool unsubscribeFromNotificationImplementation(const QString &name); %End %If (Qt_4_4_0 - Qt_5_0_0) QStringList subscribedToNotificationsImplementation() const; %End %If (Qt_4_6_0 - Qt_5_0_0) bool isIdentifierEscapedImplementation(const QString &identifier, QSqlDriver::IdentifierType type) const; %End %If (Qt_4_6_0 - Qt_5_0_0) QString stripDelimitersImplementation(const QString &identifier, QSqlDriver::IdentifierType type) const; %End public: %If (Qt_5_0_0 -) virtual bool isIdentifierEscaped(const QString &identifier, QSqlDriver::IdentifierType type) const; %End %If (Qt_4_6_0 - Qt_5_0_0) bool isIdentifierEscaped(const QString &identifier, QSqlDriver::IdentifierType type) const; %End %If (Qt_5_0_0 -) virtual QString stripDelimiters(const QString &identifier, QSqlDriver::IdentifierType type) const; %End %If (Qt_4_6_0 - Qt_5_0_0) QString stripDelimiters(const QString &identifier, QSqlDriver::IdentifierType type) const; %End %If (Qt_4_6_0 -) void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy); %End %If (Qt_4_6_0 -) QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const; %End private: QSqlDriver(const QSqlDriver &); }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqlerror.sip0000644000076500000240000000362312536324426020365 0ustar philstaff00000000000000// qsqlerror.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlError { %TypeHeaderCode #include %End public: enum ErrorType { NoError, ConnectionError, StatementError, TransactionError, UnknownError, }; QSqlError(const QString &driverText /DocValue="Py_v3:''"/ = QString(), const QString &databaseText /DocValue="Py_v3:''"/ = QString(), QSqlError::ErrorType type = QSqlError::NoError, int number = -1); QSqlError(const QSqlError &other); ~QSqlError(); QString driverText() const; void setDriverText(const QString &driverText); QString databaseText() const; void setDatabaseText(const QString &databaseText); QSqlError::ErrorType type() const; void setType(QSqlError::ErrorType type); int number() const; void setNumber(int number); QString text() const; bool isValid() const; %If (Qt_5_0_0 -) bool operator==(const QSqlError &other) const; %End %If (Qt_5_0_0 -) bool operator!=(const QSqlError &other) const; %End }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqlfield.sip0000644000076500000240000000434512536324426020321 0ustar philstaff00000000000000// qsqlfield.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlField { %TypeHeaderCode #include %End public: enum RequiredStatus { Unknown, Optional, Required, }; QSqlField(const QString &fieldName /DocValue="Py_v3:''"/ = QString(), QVariant::Type type = QVariant::Invalid); QSqlField(const QSqlField &other); bool operator==(const QSqlField &other) const; bool operator!=(const QSqlField &other) const; ~QSqlField(); void setValue(const QVariant &value); QVariant value() const; void setName(const QString &name); QString name() const; bool isNull() const; void setReadOnly(bool readOnly); bool isReadOnly() const; void clear(); QVariant::Type type() const; bool isAutoValue() const; void setType(QVariant::Type type); void setRequiredStatus(QSqlField::RequiredStatus status); void setRequired(bool required); void setLength(int fieldLength); void setPrecision(int precision); void setDefaultValue(const QVariant &value); void setSqlType(int type); void setGenerated(bool gen); void setAutoValue(bool autoVal); QSqlField::RequiredStatus requiredStatus() const; int length() const; int precision() const; QVariant defaultValue() const; int typeID() const; bool isGenerated() const; bool isValid() const; }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqlindex.sip0000644000076500000240000000300512536324426020335 0ustar philstaff00000000000000// qsqlindex.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlIndex : QSqlRecord { %TypeHeaderCode #include %End public: QSqlIndex(const QString &cursorName /DocValue="Py_v3:''"/ = QString(), const QString &name /DocValue="Py_v3:''"/ = QString()); QSqlIndex(const QSqlIndex &other); ~QSqlIndex(); void setCursorName(const QString &cursorName); QString cursorName() const; void setName(const QString &name); QString name() const; void append(const QSqlField &field); void append(const QSqlField &field, bool desc); bool isDescending(int i) const; void setDescending(int i, bool desc); }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqlquery.sip0000644000076500000240000000633712536324426020406 0ustar philstaff00000000000000// qsqlquery.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlQuery { %TypeHeaderCode #include %End public: %If (Qt_4_2_0 -) enum BatchExecutionMode { ValuesAsRows, ValuesAsColumns, }; %End %If (Qt_5_0_0 -) explicit QSqlQuery(QSqlResult *r); %End %If (- Qt_5_0_0) QSqlQuery(QSqlResult *r); %End QSqlQuery(const QString &query /DocValue="Py_v3:''"/ = QString(), QSqlDatabase db = QSqlDatabase()); explicit QSqlQuery(QSqlDatabase db); QSqlQuery(const QSqlQuery &other); ~QSqlQuery(); bool isValid() const; bool isActive() const; bool isNull(int field) const; int at() const; QString lastQuery() const; int numRowsAffected() const; QSqlError lastError() const; bool isSelect() const; int size() const; const QSqlDriver *driver() const; const QSqlResult *result() const; bool isForwardOnly() const; QSqlRecord record() const; void setForwardOnly(bool forward); bool exec(const QString &query) /PyName=exec_,ReleaseGIL/; %If (Py_v3) bool exec(const QString &query) /ReleaseGIL/; %End QVariant value(int i) const; %If (Qt_5_0_0 -) QVariant value(const QString &name) const; %End bool seek(int index, bool relative = false) /ReleaseGIL/; bool next() /ReleaseGIL/; bool previous() /ReleaseGIL/; bool first() /ReleaseGIL/; bool last() /ReleaseGIL/; void clear() /ReleaseGIL/; bool exec() /PyName=exec_,ReleaseGIL/; %If (Qt_4_2_0 -) bool execBatch(QSqlQuery::BatchExecutionMode mode = QSqlQuery::ValuesAsRows); %End bool prepare(const QString &query) /ReleaseGIL/; void bindValue(const QString &placeholder, const QVariant &val, QSql::ParamType type = QSql::In); void bindValue(int pos, const QVariant &val, QSql::ParamType type = QSql::In); void addBindValue(const QVariant &val, QSql::ParamType type = QSql::In); QVariant boundValue(const QString &placeholder) const; QVariant boundValue(int pos) const; QMap boundValues() const; QString executedQuery() const; QVariant lastInsertId() const; %If (Qt_4_3_0 -) void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy); %End %If (Qt_4_3_0 -) QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const; %End %If (Qt_4_4_0 -) void finish(); %End %If (Qt_4_4_0 -) bool nextResult(); %End }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqlquerymodel.sip0000644000076500000240000000620412536324426021420 0ustar philstaff00000000000000// qsqlquerymodel.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlQueryModel : QAbstractTableModel { %TypeHeaderCode #include %End public: explicit QSqlQueryModel(QObject *parent /TransferThis/ = 0); virtual ~QSqlQueryModel(); virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; QSqlRecord record(int row) const; QSqlRecord record() const; virtual QVariant data(const QModelIndex &item, int role = Qt::DisplayRole) const; virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole); virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()); void setQuery(const QSqlQuery &query); void setQuery(const QString &query, const QSqlDatabase &db = QSqlDatabase()); QSqlQuery query() const; virtual void clear(); QSqlError lastError() const; virtual void fetchMore(const QModelIndex &parent = QModelIndex()); virtual bool canFetchMore(const QModelIndex &parent = QModelIndex()) const; protected: virtual void queryChange(); %If (Qt_5_0_0 -) virtual QModelIndex indexInQuery(const QModelIndex &item) const; %End %If (- Qt_5_0_0) QModelIndex indexInQuery(const QModelIndex &item) const; %End void setLastError(const QSqlError &error); %If (Qt_5_0_0 -) void beginResetModel(); %End %If (Qt_5_0_0 -) void endResetModel(); %End %If (Qt_5_0_0 -) void beginInsertRows(const QModelIndex &parent, int first, int last); %End %If (Qt_5_0_0 -) void endInsertRows(); %End %If (Qt_5_0_0 -) void beginRemoveRows(const QModelIndex &parent, int first, int last); %End %If (Qt_5_0_0 -) void endRemoveRows(); %End %If (Qt_5_0_0 -) void beginInsertColumns(const QModelIndex &parent, int first, int last); %End %If (Qt_5_0_0 -) void endInsertColumns(); %End %If (Qt_5_0_0 -) void beginRemoveColumns(const QModelIndex &parent, int first, int last); %End %If (Qt_5_0_0 -) void endRemoveColumns(); %End }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqlrecord.sip0000644000076500000240000000422712536324426020513 0ustar philstaff00000000000000// qsqlrecord.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlRecord { %TypeHeaderCode #include %End public: QSqlRecord(); QSqlRecord(const QSqlRecord &other); ~QSqlRecord(); bool operator==(const QSqlRecord &other) const; bool operator!=(const QSqlRecord &other) const; QVariant value(int i) const; QVariant value(const QString &name) const; void setValue(int i, const QVariant &val); void setValue(const QString &name, const QVariant &val); void setNull(int i); void setNull(const QString &name); bool isNull(int i) const; bool isNull(const QString &name) const; int indexOf(const QString &name) const; QString fieldName(int i) const; QSqlField field(int i) const; QSqlField field(const QString &name) const; bool isGenerated(int i) const; bool isGenerated(const QString &name) const; void setGenerated(const QString &name, bool generated); void setGenerated(int i, bool generated); void append(const QSqlField &field); void replace(int pos, const QSqlField &field); void insert(int pos, const QSqlField &field); void remove(int pos); bool isEmpty() const; bool contains(const QString &name) const; void clear(); void clearValues(); int count() const /__len__/; }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqlrelationaldelegate.sip0000644000076500000240000000304012536324426023052 0ustar philstaff00000000000000// qsqlrelationaldelegate.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlRelationalDelegate : QItemDelegate { %TypeHeaderCode #include %End public: explicit QSqlRelationalDelegate(QObject *parent /TransferThis/ = 0); virtual ~QSqlRelationalDelegate(); virtual QWidget *createEditor(QWidget *parent /TransferThis/, const QStyleOptionViewItem &option /NoCopy/, const QModelIndex &index) const /Factory/; %If (- Qt_5_0_0) virtual void setEditorData(QWidget *editor, const QModelIndex &index) const; %End virtual void setModelData(QWidget *editor, QAbstractItemModel *model /KeepReference/, const QModelIndex &index) const; }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqlrelationaltablemodel.sip0000644000076500000240000000511012536324426023410 0ustar philstaff00000000000000// qsqlrelationaltablemodel.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlRelation { %TypeHeaderCode #include %End public: QSqlRelation(); QSqlRelation(const QString &aTableName, const QString &indexCol, const QString &displayCol); QString tableName() const; QString indexColumn() const; QString displayColumn() const; bool isValid() const; }; class QSqlRelationalTableModel : QSqlTableModel { %TypeHeaderCode #include %End public: QSqlRelationalTableModel(QObject *parent /TransferThis/ = 0, QSqlDatabase db = QSqlDatabase()); virtual ~QSqlRelationalTableModel(); virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); virtual void clear(); virtual bool select(); virtual void setTable(const QString &tableName); virtual void setRelation(int column, const QSqlRelation &relation); QSqlRelation relation(int column) const; virtual QSqlTableModel *relationModel(int column) const; virtual void revertRow(int row); %If (Qt_4_2_0 -) virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()); %End protected: virtual QString selectStatement() const; virtual bool updateRowInTable(int row, const QSqlRecord &values); virtual QString orderByClause() const; %If (Qt_4_2_0 -) virtual bool insertRowIntoTable(const QSqlRecord &values); %End public: %If (Qt_4_8_0 -) enum JoinMode { InnerJoin, LeftJoin, }; %End %If (Qt_4_8_0 -) void setJoinMode(QSqlRelationalTableModel::JoinMode joinMode); %End }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqlresult.sip0000644000076500000240000000624712536324426020557 0ustar philstaff00000000000000// qsqlresult.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlResult /Supertype=sip.wrapper/ { %TypeHeaderCode #include %End public: virtual ~QSqlResult(); virtual QVariant handle() const; protected: enum BindingSyntax { PositionalBinding, NamedBinding, }; explicit QSqlResult(const QSqlDriver *db); int at() const; QString lastQuery() const; QSqlError lastError() const; bool isValid() const; bool isActive() const; bool isSelect() const; bool isForwardOnly() const; const QSqlDriver *driver() const; virtual void setAt(int at); virtual void setActive(bool a); virtual void setLastError(const QSqlError &e); virtual void setQuery(const QString &query); virtual void setSelect(bool s); virtual void setForwardOnly(bool forward); virtual bool exec() /PyName=exec_,ReleaseGIL/; %If (Py_v3) virtual bool exec() /ReleaseGIL/; %End virtual bool prepare(const QString &query) /ReleaseGIL/; virtual bool savePrepare(const QString &sqlquery); virtual void bindValue(int pos, const QVariant &val, QSql::ParamType type); virtual void bindValue(const QString &placeholder, const QVariant &val, QSql::ParamType type); void addBindValue(const QVariant &val, QSql::ParamType type); QVariant boundValue(const QString &placeholder) const; QVariant boundValue(int pos) const; QSql::ParamType bindValueType(const QString &placeholder) const; QSql::ParamType bindValueType(int pos) const; int boundValueCount() const; QVector &boundValues() const; QString executedQuery() const; QString boundValueName(int pos) const; void clear(); bool hasOutValues() const; QSqlResult::BindingSyntax bindingSyntax() const; virtual QVariant data(int i) = 0; virtual bool isNull(int i) = 0; virtual bool reset(const QString &sqlquery) = 0; virtual bool fetch(int i) = 0 /ReleaseGIL/; virtual bool fetchNext() /ReleaseGIL/; virtual bool fetchPrevious() /ReleaseGIL/; virtual bool fetchFirst() = 0 /ReleaseGIL/; virtual bool fetchLast() = 0 /ReleaseGIL/; virtual int size() = 0; virtual int numRowsAffected() = 0; virtual QSqlRecord record() const; virtual QVariant lastInsertId() const; private: QSqlResult(const QSqlResult &); }; PyQt-x11-gpl-4.11.4/sip/QtSql/qsqltablemodel.sip0000644000076500000240000000741012536324426021342 0ustar philstaff00000000000000// qsqltablemodel.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSqlTableModel : QSqlQueryModel { %TypeHeaderCode #include %End public: enum EditStrategy { OnFieldChange, OnRowChange, OnManualSubmit, }; QSqlTableModel(QObject *parent /TransferThis/ = 0, QSqlDatabase db = QSqlDatabase()); virtual ~QSqlTableModel(); virtual bool select(); virtual void setTable(const QString &tableName); QString tableName() const; virtual Qt::ItemFlags flags(const QModelIndex &index) const; virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; bool isDirty(const QModelIndex &index) const; %If (Qt_5_0_0 -) bool isDirty() const; %End virtual void clear(); virtual void setEditStrategy(QSqlTableModel::EditStrategy strategy); QSqlTableModel::EditStrategy editStrategy() const; QSqlIndex primaryKey() const; QSqlDatabase database() const; int fieldIndex(const QString &fieldName) const; virtual void sort(int column, Qt::SortOrder order); virtual void setSort(int column, Qt::SortOrder order); QString filter() const; virtual void setFilter(const QString &filter); virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()); virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); bool insertRecord(int row, const QSqlRecord &record); bool setRecord(int row, const QSqlRecord &record); virtual void revertRow(int row); public slots: virtual bool submit(); virtual void revert(); bool submitAll(); void revertAll(); signals: void primeInsert(int row, QSqlRecord &record); void beforeInsert(QSqlRecord &record); void beforeUpdate(int row, QSqlRecord &record); void beforeDelete(int row); protected: virtual bool updateRowInTable(int row, const QSqlRecord &values); virtual bool insertRowIntoTable(const QSqlRecord &values); virtual bool deleteRowFromTable(int row); virtual QString orderByClause() const; virtual QString selectStatement() const; void setPrimaryKey(const QSqlIndex &key); void setQuery(const QSqlQuery &query); %If (Qt_5_0_0 -) virtual QModelIndex indexInQuery(const QModelIndex &item) const; %End %If (- Qt_5_0_0) QModelIndex indexInQuery(const QModelIndex &item) const; %End public: %If (Qt_5_0_0 -) virtual bool selectRow(int row); %End %If (Qt_5_0_0 -) QSqlRecord record() const; %End %If (Qt_5_0_0 -) QSqlRecord record(int row) const; %End }; PyQt-x11-gpl-4.11.4/sip/QtSql/QtSqlmod.sip0000644000076500000240000000436512536324426020103 0ustar philstaff00000000000000// QtSqlmod.sip generated by MetaSIP // // This file is part of the QtSql Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtSql, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %Include(name=staticplugins.sip, optional=True) %DefaultSupertype sip.simplewrapper %Include qsql.sip %Include qsqldatabase.sip %Include qsqldriver.sip %Include qsqlerror.sip %Include qsqlfield.sip %Include qsqlindex.sip %Include qsqlquery.sip %Include qsqlquerymodel.sip %Include qsqlrecord.sip %Include qsqlrelationaldelegate.sip %Include qsqlrelationaltablemodel.sip %Include qsqlresult.sip %Include qsqltablemodel.sip PyQt-x11-gpl-4.11.4/sip/QtSvg/0000755000076500000240000000000012536324426015612 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtSvg/qgraphicssvgitem.sip0000644000076500000240000000647512536324426021723 0ustar philstaff00000000000000// qgraphicssvgitem.sip generated by MetaSIP // // This file is part of the QtSvg Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_2_0 - Qt_4_6_0) class QGraphicsSvgItem : QObject, QGraphicsItem { %TypeHeaderCode #include %End %ConvertToSubClassCode if (sipCpp->type() == 13) { // We need to explicitly cast because of the multiple inheritance. *sipCppRet = static_cast(sipCpp); sipType = sipType_QGraphicsSvgItem; } else sipType = 0; %End public: QGraphicsSvgItem(QGraphicsItem *parent /TransferThis/ = 0); QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent /TransferThis/ = 0); void setSharedRenderer(QSvgRenderer *renderer /KeepReference/); QSvgRenderer *renderer() const; void setElementId(const QString &id); QString elementId() const; void setCachingEnabled(bool); bool isCachingEnabled() const; void setMaximumCacheSize(const QSize &size); QSize maximumCacheSize() const; virtual QRectF boundingRect() const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual int type() const; private: QGraphicsSvgItem(const QGraphicsSvgItem &); }; %End %If (Qt_4_6_0 -) class QGraphicsSvgItem : QGraphicsObject { %TypeHeaderCode #include %End %ConvertToSubClassCode if (sipCpp->type() == 13) { // We need to explicitly cast because of the multiple inheritance. *sipCppRet = static_cast(sipCpp); sipType = sipType_QGraphicsSvgItem; } else sipType = 0; %End public: QGraphicsSvgItem(QGraphicsItem *parent /TransferThis/ = 0); QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent /TransferThis/ = 0); void setSharedRenderer(QSvgRenderer *renderer /KeepReference/); QSvgRenderer *renderer() const; void setElementId(const QString &id); QString elementId() const; void setCachingEnabled(bool); bool isCachingEnabled() const; void setMaximumCacheSize(const QSize &size); QSize maximumCacheSize() const; virtual QRectF boundingRect() const; virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual int type() const; private: QGraphicsSvgItem(const QGraphicsSvgItem &); }; %End %ModuleHeaderCode #include #if QT_VERSION >= 0x040200 // This is needed by the %ConvertToSubClassCode. #include #endif %End PyQt-x11-gpl-4.11.4/sip/QtSvg/qsvggenerator.sip0000644000076500000240000000374312536324426021225 0ustar philstaff00000000000000// qsvggenerator.sip generated by MetaSIP // // This file is part of the QtSvg Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 -) class QSvgGenerator : QPaintDevice { %TypeHeaderCode #include %End public: QSvgGenerator(); virtual ~QSvgGenerator(); QSize size() const; void setSize(const QSize &size); QString fileName() const; void setFileName(const QString &fileName); QIODevice *outputDevice() const; void setOutputDevice(QIODevice *outputDevice); int resolution() const; void setResolution(int resolution); %If (Qt_4_5_0 -) QString title() const; %End %If (Qt_4_5_0 -) void setTitle(const QString &title); %End %If (Qt_4_5_0 -) QString description() const; %End %If (Qt_4_5_0 -) void setDescription(const QString &description); %End %If (Qt_4_5_0 -) QRect viewBox() const; %End %If (Qt_4_5_0 -) QRectF viewBoxF() const; %End %If (Qt_4_5_0 -) void setViewBox(const QRect &viewBox); %End %If (Qt_4_5_0 -) void setViewBox(const QRectF &viewBox); %End protected: virtual QPaintEngine *paintEngine() const; virtual int metric(QPaintDevice::PaintDeviceMetric metric) const; }; %End PyQt-x11-gpl-4.11.4/sip/QtSvg/qsvgrenderer.sip0000644000076500000240000000634112536324426021042 0ustar philstaff00000000000000// qsvgrenderer.sip generated by MetaSIP // // This file is part of the QtSvg Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSvgRenderer : QObject { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QSvgWidget, &sipType_QSvgWidget, -1, 1}, #if QT_VERSION >= 0x040200 {sipName_QGraphicsSvgItem, &sipType_QGraphicsSvgItem, -1, 2}, #else {0, 0, -1, 2}, #endif {sipName_QSvgRenderer, &sipType_QSvgRenderer, -1, -1}, }; int i = 0; sipType = 0; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: QSvgRenderer(QObject *parent /TransferThis/ = 0); QSvgRenderer(const QString &filename, QObject *parent /TransferThis/ = 0); QSvgRenderer(const QByteArray &contents, QObject *parent /TransferThis/ = 0); %If (Qt_4_5_0 -) QSvgRenderer(QXmlStreamReader *contents, QObject *parent /TransferThis/ = 0); %End virtual ~QSvgRenderer(); bool isValid() const; %If (Qt_4_2_0 -) QMatrix matrixForElement(const QString &id) const; %End QSize defaultSize() const; %If (Qt_4_2_0 -) bool elementExists(const QString &id) const; %End QRect viewBox() const; %If (Qt_4_2_0 -) QRectF viewBoxF() const; %End void setViewBox(const QRect &viewbox); %If (Qt_4_2_0 -) void setViewBox(const QRectF &viewbox); %End bool animated() const; %If (Qt_4_2_0 -) QRectF boundsOnElement(const QString &id) const; %End int framesPerSecond() const; void setFramesPerSecond(int num); int currentFrame() const; void setCurrentFrame(int); int animationDuration() const; public slots: bool load(const QString &filename); bool load(const QByteArray &contents); %If (Qt_4_5_0 -) bool load(QXmlStreamReader *contents); %End void render(QPainter *p); %If (Qt_4_2_0 -) void render(QPainter *p, const QRectF &bounds); %End %If (Qt_4_2_0 -) void render(QPainter *painter, const QString &elementId, const QRectF &bounds = QRectF()); %End signals: void repaintNeeded(); }; PyQt-x11-gpl-4.11.4/sip/QtSvg/qsvgwidget.sip0000644000076500000240000000266312536324426020522 0ustar philstaff00000000000000// qsvgwidget.sip generated by MetaSIP // // This file is part of the QtSvg Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QSvgWidget : QWidget { %TypeHeaderCode #include %End public: QSvgWidget(QWidget *parent /TransferThis/ = 0); QSvgWidget(const QString &file, QWidget *parent /TransferThis/ = 0); virtual ~QSvgWidget(); QSvgRenderer *renderer() const; virtual QSize sizeHint() const; public slots: void load(const QString &file); void load(const QByteArray &contents); protected: virtual void paintEvent(QPaintEvent *event); private: QSvgWidget(const QSvgWidget &); }; PyQt-x11-gpl-4.11.4/sip/QtSvg/QtSvgmod.sip0000644000076500000240000000373512536324426020103 0ustar philstaff00000000000000// QtSvgmod.sip generated by MetaSIP // // This file is part of the QtSvg Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtSvg, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qgraphicssvgitem.sip %Include qsvggenerator.sip %Include qsvgrenderer.sip %Include qsvgwidget.sip PyQt-x11-gpl-4.11.4/sip/QtTest/0000755000076500000240000000000012536324426015772 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtTest/qtestcase.sip0000644000076500000240000000201712536324426020503 0ustar philstaff00000000000000// qtestcase.sip generated by MetaSIP // // This file is part of the QtTest Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. namespace QTest { %TypeHeaderCode #include %End void qSleep(int ms); }; PyQt-x11-gpl-4.11.4/sip/QtTest/qtestkeyboard.sip0000644000076500000240000000421112536324426021366 0ustar philstaff00000000000000// qtestkeyboard.sip generated by MetaSIP // // This file is part of the QtTest Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. namespace QTest { %TypeHeaderCode #include %End enum KeyAction { Press, Release, Click, }; void keyClick(QWidget *widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1); void keyClick(QWidget *widget, char key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1); void keyClicks(QWidget *widget, const QString &sequence, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1); void keyEvent(QTest::KeyAction action, QWidget *widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1); void keyEvent(QTest::KeyAction action, QWidget *widget, char ascii, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1); void keyPress(QWidget *widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1); void keyPress(QWidget *widget, char key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1); void keyRelease(QWidget *widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1); void keyRelease(QWidget *widget, char key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay = -1); }; PyQt-x11-gpl-4.11.4/sip/QtTest/qtestmouse.sip0000644000076500000240000000371712536324426020730 0ustar philstaff00000000000000// qtestmouse.sip generated by MetaSIP // // This file is part of the QtTest Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. namespace QTest { %TypeHeaderCode #include %End enum MouseAction { MousePress, MouseRelease, MouseClick, MouseDClick, MouseMove, }; void mouseClick(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1); void mouseDClick(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1); void mouseMove(QWidget *widget, QPoint pos = QPoint(), int delay = -1); void mousePress(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1); void mouseRelease(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1); %If (Qt_4_8_0 -) void mouseEvent(QTest::MouseAction action, QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers stateKey, QPoint pos, int delay = -1); %End %If (Qt_5_0_0 -) void waitForEvents(); %End }; PyQt-x11-gpl-4.11.4/sip/QtTest/qtestsystem.sip0000644000076500000240000000261512536324426021120 0ustar philstaff00000000000000// qtestsystem.sip generated by MetaSIP // // This file is part of the QtTest Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. namespace QTest { %TypeHeaderCode #include %End void qWait(int ms); %If (Qt_4_6_0 - Qt_5_0_0) bool qWaitForWindowShown(QWidget *window); %End %If (Qt_5_0_0 -) bool qWaitForWindowActive(QWidget *widget, int timeout = 1000); %End %If (Qt_5_0_0 -) bool qWaitForWindowExposed(QWidget *widget, int timeout = 1000); %End %If (Qt_5_0_0 -) %If (PyQt_Deprecated_5_0) bool qWaitForWindowShown(QWidget *widget, int timeout = 1000); %End %End }; PyQt-x11-gpl-4.11.4/sip/QtTest/QtTestmod.sip0000644000076500000240000000373012536324426020436 0ustar philstaff00000000000000// QtTestmod.sip generated by MetaSIP // // This file is part of the QtTest Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtTest, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qtestcase.sip %Include qtestkeyboard.sip %Include qtestmouse.sip %Include qtestsystem.sip PyQt-x11-gpl-4.11.4/sip/QtWebKit/0000755000076500000240000000000012536324426016240 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtWebKit/qgraphicswebview.sip0000644000076500000240000001225412536324426022333 0ustar philstaff00000000000000// qgraphicswebview.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QGraphicsWebView : QGraphicsWidget { %TypeHeaderCode #include %End %ConvertToSubClassCode sipType = 0; // For some reason Qt doesn't allocate a new type for this so we have to test // the numeric and QObject types. if (sipCpp->type() == 11) { QGraphicsWidget *gw = static_cast(sipCpp); if (gw->inherits("QGraphicsWebView")) { *sipCppRet = static_cast(gw); sipType = sipType_QGraphicsWebView; } } %End public: explicit QGraphicsWebView(QGraphicsItem *parent /TransferThis/ = 0); virtual ~QGraphicsWebView(); QWebPage *page() const; void setPage(QWebPage * /KeepReference/); QUrl url() const; void setUrl(const QUrl &); QString title() const; QIcon icon() const; qreal zoomFactor() const; void setZoomFactor(qreal); bool isModified() const; void load(const QUrl &url) /ReleaseGIL/; void load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray()) /ReleaseGIL/; void setHtml(const QString &html, const QUrl &baseUrl = QUrl()); void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl()); QWebHistory *history() const; QWebSettings *settings() const; QAction *pageAction(QWebPage::WebAction action) const; void triggerPageAction(QWebPage::WebAction action, bool checked = false); bool findText(const QString &subString, QFlags options = 0); virtual void setGeometry(const QRectF &rect); virtual void updateGeometry(); virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value); virtual bool event(QEvent *); virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint) const; virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const; public slots: void stop(); void back(); void forward(); void reload(); signals: void loadStarted(); void loadFinished(bool); void loadProgress(int progress); void urlChanged(const QUrl &); void titleChanged(const QString &); void iconChanged(); void statusBarMessage(const QString &message); void linkClicked(const QUrl &); protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *); virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *); virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *); virtual void wheelEvent(QGraphicsSceneWheelEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void keyReleaseEvent(QKeyEvent *); virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *); virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *); virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *); virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *); virtual void dropEvent(QGraphicsSceneDragDropEvent *); virtual void focusInEvent(QFocusEvent *); virtual void focusOutEvent(QFocusEvent *); virtual void inputMethodEvent(QInputMethodEvent *); virtual bool focusNextPrevChild(bool next); virtual bool sceneEvent(QEvent *); public: %If (Qt_4_7_0 -) bool resizesToContents() const; %End %If (Qt_4_7_0 -) void setResizesToContents(bool enabled); %End %If (Qt_4_7_0 -) bool isTiledBackingStoreFrozen() const; %End %If (Qt_4_7_0 -) void setTiledBackingStoreFrozen(bool frozen); %End %If (Qt_4_8_0 -) QFlags renderHints() const; %End %If (Qt_4_8_0 -) void setRenderHints(QFlags hints); %End %If (Qt_4_8_0 -) void setRenderHint(QPainter::RenderHint hint, bool enabled = true); %End }; %End %ModuleHeaderCode #if QT_VERSION >= 0x040600 // This is needed by the %ConvertSubClassCode. #include #endif // This is needed for Qt v5.0.0. #if defined(B0) #undef B0 #endif %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/QtWebKitmod.sip0000644000076500000240000000443012536324426021150 0ustar philstaff00000000000000// QtWebKitmod.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtWebKit, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtGui/QtGuimod.sip %Import QtNetwork/QtNetworkmod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qgraphicswebview.sip %Include qwebdatabase.sip %Include qwebelement.sip %Include qwebframe.sip %Include qwebkitglobal.sip %Include qwebhistory.sip %Include qwebhistoryinterface.sip %Include qwebinspector.sip %Include qwebkitversion.sip %Include qwebpage.sip %Include qwebpluginfactory.sip %Include qwebsecurityorigin.sip %Include qwebsettings.sip %Include qwebview.sip PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebdatabase.sip0000644000076500000240000000262112536324426021401 0ustar philstaff00000000000000// qwebdatabase.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_5_0 -) class QWebDatabase { %TypeHeaderCode #include %End public: QWebDatabase(const QWebDatabase &other); ~QWebDatabase(); QString name() const; QString displayName() const; qint64 expectedSize() const; qint64 size() const; QString fileName() const; QWebSecurityOrigin origin() const; static void removeDatabase(const QWebDatabase &db); %If (Qt_4_6_0 -) static void removeAllDatabases(); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebelement.sip0000644000076500000240000001220112536324426021261 0ustar philstaff00000000000000// qwebelement.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QWebElement { %TypeHeaderCode #include %End public: QWebElement(); QWebElement(const QWebElement &); ~QWebElement(); bool operator==(const QWebElement &o) const; bool operator!=(const QWebElement &o) const; bool isNull() const; QWebElementCollection findAll(const QString &selectorQuery) const; QWebElement findFirst(const QString &selectorQuery) const; void setPlainText(const QString &text); QString toPlainText() const; void setOuterXml(const QString &markup); QString toOuterXml() const; void setInnerXml(const QString &markup); QString toInnerXml() const; void setAttribute(const QString &name, const QString &value); void setAttributeNS(const QString &namespaceUri, const QString &name, const QString &value); QString attribute(const QString &name, const QString &defaultValue = QString()) const; QString attributeNS(const QString &namespaceUri, const QString &name, const QString &defaultValue = QString()) const; bool hasAttribute(const QString &name) const; bool hasAttributeNS(const QString &namespaceUri, const QString &name) const; void removeAttribute(const QString &name); void removeAttributeNS(const QString &namespaceUri, const QString &name); bool hasAttributes() const; QStringList attributeNames(const QString &namespaceUri = QString()) const; QStringList classes() const; bool hasClass(const QString &name) const; void addClass(const QString &name); void removeClass(const QString &name); void toggleClass(const QString &name); bool hasFocus() const; void setFocus(); QRect geometry() const; QString tagName() const; QString prefix() const; QString localName() const; QString namespaceUri() const; QWebElement parent() const; QWebElement firstChild() const; QWebElement lastChild() const; QWebElement nextSibling() const; QWebElement previousSibling() const; QWebElement document() const; QWebFrame *webFrame() const; void appendInside(const QString &markup); void appendInside(const QWebElement &element); void prependInside(const QString &markup); void prependInside(const QWebElement &element); void appendOutside(const QString &markup); void appendOutside(const QWebElement &element); void prependOutside(const QString &markup); void prependOutside(const QWebElement &element); void encloseContentsWith(const QWebElement &element); void encloseContentsWith(const QString &markup); void encloseWith(const QString &markup); void encloseWith(const QWebElement &element); void replace(const QString &markup); void replace(const QWebElement &element); QWebElement clone() const; QWebElement &takeFromDocument(); void removeFromDocument(); void removeAllChildren(); QVariant evaluateJavaScript(const QString &scriptSource); enum StyleResolveStrategy { InlineStyle, CascadedStyle, ComputedStyle, }; QString styleProperty(const QString &name, QWebElement::StyleResolveStrategy strategy) const; void setStyleProperty(const QString &name, const QString &value); void render(QPainter *painter); %If (Qt_4_8_0 -) void render(QPainter *painter, const QRect &clip); %End }; %End %If (Qt_4_6_0 -) class QWebElementCollection { %TypeHeaderCode #include %End public: QWebElementCollection(); QWebElementCollection(const QWebElement &contextElement, const QString &query); QWebElementCollection(const QWebElementCollection &); ~QWebElementCollection(); QWebElementCollection operator+(const QWebElementCollection &other) const; QWebElementCollection &operator+=(const QWebElementCollection &other); void append(const QWebElementCollection &collection); int count() const /__len__/; QWebElement at(int i) const; QWebElement operator[](int i) const; %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = new QWebElement(sipCpp->operator[]((int)idx)); %End QWebElement first() const; QWebElement last() const; QList toList() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebframe.sip0000644000076500000240000001433612536324426020735 0ustar philstaff00000000000000// qwebframe.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %ModuleCode #include %End %End %If (Qt_4_4_0 -) class QWebHitTestResult { %TypeHeaderCode #include %End public: QWebHitTestResult(); QWebHitTestResult(const QWebHitTestResult &other); ~QWebHitTestResult(); bool isNull() const; QPoint pos() const; QString title() const; QString linkText() const; QUrl linkUrl() const; QUrl linkTitle() const; QWebFrame *linkTargetFrame() const; QString alternateText() const; QUrl imageUrl() const; QPixmap pixmap() const; bool isContentEditable() const; bool isContentSelected() const; QWebFrame *frame() const; %If (Qt_4_5_0 -) QRect boundingRect() const; %End %If (Qt_4_6_0 -) QWebElement enclosingBlockElement() const; %End %If (Qt_4_6_0 -) QWebElement linkElement() const; %End %If (Qt_4_6_0 -) QWebElement element() const; %End }; %End %If (Qt_4_4_0 -) class QWebFrame : QObject /NoDefaultCtors/ { %TypeHeaderCode #include %End virtual ~QWebFrame(); public: QWebPage *page() const; void load(const QUrl &url); void load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray()); void setHtml(const QString &html, const QUrl &baseUrl = QUrl()); void setContent(const QByteArray &data, const QString &mimeType /DocValue="Py_v3:''"/ = QString(), const QUrl &baseUrl = QUrl()); %If (Qt_5_0_0 -) enum ValueOwnership { QtOwnership, ScriptOwnership, AutoOwnership, }; %End %If (Qt_5_0_0 -) void addToJavaScriptWindowObject(const QString &name, QObject *object, QWebFrame::ValueOwnership ownership = QWebFrame::QtOwnership); %End %If (- Qt_5_0_0) void addToJavaScriptWindowObject(const QString &name, QObject *object); %End QString toHtml() const; QString toPlainText() const; %If (- Qt_5_0_0) QString renderTreeDump() const; %End QString title() const; void setUrl(const QUrl &url); QUrl url() const; QIcon icon() const; QString frameName() const; QWebFrame *parentFrame() const; QList childFrames() const; Qt::ScrollBarPolicy scrollBarPolicy(Qt::Orientation orientation) const; void setScrollBarPolicy(Qt::Orientation orientation, Qt::ScrollBarPolicy policy); void setScrollBarValue(Qt::Orientation orientation, int value); int scrollBarValue(Qt::Orientation orientation) const; int scrollBarMinimum(Qt::Orientation orientation) const; int scrollBarMaximum(Qt::Orientation orientation) const; %If (- Qt_5_0_0) void render(QPainter *painter, const QRegion &clip); %End %If (- Qt_5_0_0) void render(QPainter *painter); %End void setTextSizeMultiplier(qreal factor); qreal textSizeMultiplier() const; QPoint pos() const; QRect geometry() const; QSize contentsSize() const; QWebHitTestResult hitTestContent(const QPoint &pos) const; virtual bool event(QEvent *); public slots: QVariant evaluateJavaScript(const QString &scriptSource); %If (PyQt_Printer) void print(QPrinter *printer) const /PyName=print_/; %End %If (Py_v3) %If (PyQt_Printer) void print(QPrinter *printer) const; %End %End signals: void javaScriptWindowObjectCleared(); void titleChanged(const QString &title); void urlChanged(const QUrl &url); void initialLayoutCompleted(); void iconChanged(); public: %If (Qt_4_5_0 -) QMultiMap metaData() const; %End %If (Qt_4_5_0 -) void scroll(int, int); %End %If (Qt_4_5_0 -) QPoint scrollPosition() const; %End %If (Qt_4_5_0 -) void setScrollPosition(const QPoint &pos); %End %If (Qt_4_5_0 -) qreal zoomFactor() const; %End %If (Qt_4_5_0 -) void setZoomFactor(qreal factor); %End %If (Qt_4_5_0 -) QWebSecurityOrigin securityOrigin() const; %End %If (Qt_4_6_0 -) QUrl requestedUrl() const; %End %If (Qt_4_6_0 -) QUrl baseUrl() const; %End %If (Qt_4_6_0 -) QRect scrollBarGeometry(Qt::Orientation orientation) const; %End %If (Qt_4_6_0 -) enum RenderLayer { ContentsLayer, ScrollBarLayer, PanIconLayer, AllLayers, }; %End %If (Qt_5_0_0 -) typedef QFlags RenderLayers; %End %If (Qt_4_6_0 - Qt_5_0_0) void render(QPainter *, QWebFrame::RenderLayer layer, const QRegion &clip = QRegion()); %End %If (Qt_5_0_0 -) void render(QPainter *, const QRegion &clip = QRegion()); %End %If (Qt_5_0_0 -) void render(QPainter *, QFlags layer, const QRegion &clip = QRegion()); %End %If (Qt_4_6_0 -) bool hasFocus() const; %End %If (Qt_4_6_0 -) void setFocus(); %End %If (Qt_4_6_0 -) QWebElement documentElement() const; %End %If (Qt_4_6_0 -) QWebElementCollection findAllElements(const QString &selectorQuery) const; %End %If (Qt_4_6_0 -) QWebElement findFirstElement(const QString &selectorQuery) const; %End signals: %If (Qt_4_6_0 -) void contentsSizeChanged(const QSize &size); %End %If (Qt_4_6_0 -) void loadStarted(); %End %If (Qt_4_6_0 -) void loadFinished(bool ok); %End %If (Qt_4_7_0 -) void pageChanged(); %End public: %If (Qt_4_7_0 -) void scrollToAnchor(const QString &anchor); %End }; %End %If (Qt_5_0_0 -) QFlags operator|(QWebFrame::RenderLayer f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebhistory.sip0000644000076500000240000000503112536324426021334 0ustar philstaff00000000000000// qwebhistory.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %ModuleCode #include %End %End %If (Qt_4_4_0 -) class QWebHistoryItem { %TypeHeaderCode #include %End public: QWebHistoryItem(const QWebHistoryItem &other); ~QWebHistoryItem(); QUrl originalUrl() const; QUrl url() const; QString title() const; QDateTime lastVisited() const; QIcon icon() const; %If (Qt_4_5_0 -) QVariant userData() const; %End %If (Qt_4_5_0 -) void setUserData(const QVariant &userData); %End %If (Qt_4_5_0 -) bool isValid() const; %End }; %End %If (Qt_4_4_0 -) class QWebHistory { %TypeHeaderCode #include %End public: void clear(); QList items() const; QList backItems(int maxItems) const; QList forwardItems(int maxItems) const; bool canGoBack() const; bool canGoForward() const; void back(); void forward(); void goToItem(const QWebHistoryItem &item); QWebHistoryItem backItem() const; QWebHistoryItem currentItem() const; QWebHistoryItem forwardItem() const; QWebHistoryItem itemAt(int i) const; int count() const /__len__/; private: QWebHistory(); QWebHistory(const QWebHistory &); ~QWebHistory(); public: %If (Qt_4_5_0 -) int currentItemIndex() const; %End %If (Qt_4_5_0 -) int maximumItemCount() const; %End %If (Qt_4_5_0 -) void setMaximumItemCount(int count); %End }; %End %If (Qt_4_6_0 -) QDataStream &operator<<(QDataStream &, const QWebHistory & /Constrained/); %End %If (Qt_4_6_0 -) QDataStream &operator>>(QDataStream &, QWebHistory & /Constrained/); %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebhistoryinterface.sip0000644000076500000240000000266212536324426023224 0ustar philstaff00000000000000// qwebhistoryinterface.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QWebHistoryInterface : QObject { %TypeHeaderCode #include %End public: QWebHistoryInterface(QObject *parent /TransferThis/ = 0); virtual ~QWebHistoryInterface(); static void setDefaultInterface(QWebHistoryInterface *defaultInterface /KeepReference/); static QWebHistoryInterface *defaultInterface(); virtual bool historyContains(const QString &url) const = 0; virtual void addHistoryEntry(const QString &url) = 0; }; %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebinspector.sip0000644000076500000240000000277312536324426021653 0ustar philstaff00000000000000// qwebinspector.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QWebInspector : QWidget { %TypeHeaderCode #include %End public: QWebInspector(QWidget *parent /TransferThis/ = 0); virtual ~QWebInspector(); void setPage(QWebPage *page /KeepReference/); QWebPage *page() const; virtual QSize sizeHint() const; virtual bool event(QEvent *); protected: virtual void resizeEvent(QResizeEvent *event); virtual void showEvent(QShowEvent *event); virtual void hideEvent(QHideEvent *event); %If (Qt_4_7_0 -) virtual void closeEvent(QCloseEvent *event); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebkitglobal.sip0000644000076500000240000000221712536324426021606 0ustar philstaff00000000000000// qwebkitglobal.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_5_0_0 -) %ModuleCode #include %End %End %If (Qt_5_0_0 -) QString qWebKitVersion(); %End %If (Qt_5_0_0 -) int qWebKitMajorVersion(); %End %If (Qt_5_0_0 -) int qWebKitMinorVersion(); %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebkitversion.sip0000644000076500000240000000226512536324426022036 0ustar philstaff00000000000000// qwebkitversion.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 - Qt_5_0_0) %ModuleCode #include %End %End %If (Qt_4_6_0 - Qt_5_0_0) QString qWebKitVersion(); %End %If (Qt_4_6_0 - Qt_5_0_0) int qWebKitMajorVersion(); %End %If (Qt_4_6_0 - Qt_5_0_0) int qWebKitMinorVersion(); %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebpage.sip0000644000076500000240000003224312536324426020554 0ustar philstaff00000000000000// qwebpage.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) %ModuleCode #include %End %End %If (Qt_4_4_0 -) class QWebPage : QObject { %TypeHeaderCode #include %End public: enum NavigationType { NavigationTypeLinkClicked, NavigationTypeFormSubmitted, NavigationTypeBackOrForward, NavigationTypeReload, NavigationTypeFormResubmitted, NavigationTypeOther, }; enum WebAction { NoWebAction, OpenLink, OpenLinkInNewWindow, OpenFrameInNewWindow, DownloadLinkToDisk, CopyLinkToClipboard, OpenImageInNewWindow, DownloadImageToDisk, CopyImageToClipboard, Back, Forward, Stop, Reload, Cut, Copy, Paste, Undo, Redo, MoveToNextChar, MoveToPreviousChar, MoveToNextWord, MoveToPreviousWord, MoveToNextLine, MoveToPreviousLine, MoveToStartOfLine, MoveToEndOfLine, MoveToStartOfBlock, MoveToEndOfBlock, MoveToStartOfDocument, MoveToEndOfDocument, SelectNextChar, SelectPreviousChar, SelectNextWord, SelectPreviousWord, SelectNextLine, SelectPreviousLine, SelectStartOfLine, SelectEndOfLine, SelectStartOfBlock, SelectEndOfBlock, SelectStartOfDocument, SelectEndOfDocument, DeleteStartOfWord, DeleteEndOfWord, SetTextDirectionDefault, SetTextDirectionLeftToRight, SetTextDirectionRightToLeft, ToggleBold, ToggleItalic, ToggleUnderline, InspectElement, %If (Qt_4_5_0 -) InsertParagraphSeparator, %End %If (Qt_4_5_0 -) InsertLineSeparator, %End %If (Qt_4_5_0 -) SelectAll, %End %If (Qt_4_6_0 -) ReloadAndBypassCache, %End %If (Qt_4_6_0 -) PasteAndMatchStyle, %End %If (Qt_4_6_0 -) RemoveFormat, %End %If (Qt_4_6_0 -) ToggleStrikethrough, %End %If (Qt_4_6_0 -) ToggleSubscript, %End %If (Qt_4_6_0 -) ToggleSuperscript, %End %If (Qt_4_6_0 -) InsertUnorderedList, %End %If (Qt_4_6_0 -) InsertOrderedList, %End %If (Qt_4_6_0 -) Indent, %End %If (Qt_4_6_0 -) Outdent, %End %If (Qt_4_6_0 -) AlignCenter, %End %If (Qt_4_6_0 -) AlignJustified, %End %If (Qt_4_6_0 -) AlignLeft, %End %If (Qt_4_6_0 -) AlignRight, %End %If (Qt_4_7_0 -) StopScheduledPageRefresh, %End %If (Qt_4_8_0 -) CopyImageUrlToClipboard, %End %If (Qt_5_0_0 -) OpenLinkInThisWindow, %End }; enum FindFlag { FindBackward, FindCaseSensitively, FindWrapsAroundDocument, %If (Qt_4_6_0 -) HighlightAllOccurrences, %End }; typedef QFlags FindFlags; enum LinkDelegationPolicy { DontDelegateLinks, DelegateExternalLinks, DelegateAllLinks, }; enum WebWindowType { WebBrowserWindow, WebModalDialog, }; explicit QWebPage(QObject *parent /TransferThis/ = 0); virtual ~QWebPage(); QWebFrame *mainFrame() const; QWebFrame *currentFrame() const; QWebHistory *history() const; QWebSettings *settings() const; void setView(QWidget *view /KeepReference/); QWidget *view() const; bool isModified() const; QUndoStack *undoStack() const; void setNetworkAccessManager(QNetworkAccessManager *manager /KeepReference/); QNetworkAccessManager *networkAccessManager() const; void setPluginFactory(QWebPluginFactory *factory /KeepReference/); QWebPluginFactory *pluginFactory() const; quint64 totalBytes() const; quint64 bytesReceived() const; QString selectedText() const; QAction *action(QWebPage::WebAction action) const; virtual void triggerAction(QWebPage::WebAction action, bool checked = false); QSize viewportSize() const; void setViewportSize(const QSize &size) const; virtual bool event(QEvent *); bool focusNextPrevChild(bool next); QVariant inputMethodQuery(Qt::InputMethodQuery property) const; bool findText(const QString &subString, QFlags options = 0); void setForwardUnsupportedContent(bool forward); bool forwardUnsupportedContent() const; void setLinkDelegationPolicy(QWebPage::LinkDelegationPolicy policy); QWebPage::LinkDelegationPolicy linkDelegationPolicy() const; void setPalette(const QPalette &palette); QPalette palette() const; bool swallowContextMenuEvent(QContextMenuEvent *event); void updatePositionDependentActions(const QPoint &pos); enum Extension { %If (Qt_4_5_0 -) ChooseMultipleFilesExtension, %End %If (Qt_4_6_0 -) ErrorPageExtension, %End }; class ExtensionOption { %TypeHeaderCode #include %End }; class ExtensionReturn { %TypeHeaderCode #include %End }; virtual bool extension(QWebPage::Extension extension, const QWebPage::ExtensionOption *option = 0, QWebPage::ExtensionReturn *output = 0); %VirtualCatcherCode const sipTypeDef *option_type = sipType_QWebPage_ExtensionOption; const sipTypeDef *return_type = sipType_QWebPage_ExtensionReturn; #if QT_VERSION >= 0x040500 if (a0 == QWebPage::ChooseMultipleFilesExtension) { option_type = sipType_QWebPage_ChooseMultipleFilesExtensionOption; return_type = sipType_QWebPage_ChooseMultipleFilesExtensionReturn; } #if QT_VERSION >= 0x040600 else if (a0 == QWebPage::ErrorPageExtension) { option_type = sipType_QWebPage_ErrorPageExtensionOption; return_type = sipType_QWebPage_ErrorPageExtensionReturn; } #endif #endif PyObject *res_obj = sipCallMethod(&sipIsErr, sipMethod, "FDD", a0, sipType_QWebPage_Extension, a1, option_type, NULL, a2, return_type, NULL); if (res_obj) { sipParseResult(&sipIsErr, sipMethod, res_obj, "b", &sipRes); Py_DECREF(res_obj); } else { sipIsErr = 1; } %End virtual bool supportsExtension(QWebPage::Extension extension) const; signals: void loadFinished(bool ok); void loadProgress(int progress); void loadStarted(); void linkHovered(const QString &link, const QString &title, const QString &textContent); void statusBarMessage(const QString &text); void selectionChanged(); void frameCreated(QWebFrame *frame); void geometryChangeRequested(const QRect &geom); void repaintRequested(const QRect &dirtyRect); void scrollRequested(int dx, int dy, const QRect &scrollViewRect); void windowCloseRequested(); void printRequested(QWebFrame *frame); void linkClicked(const QUrl &url); void toolBarVisibilityChangeRequested(bool visible); void statusBarVisibilityChangeRequested(bool visible); void menuBarVisibilityChangeRequested(bool visible); void unsupportedContent(QNetworkReply *reply); void downloadRequested(const QNetworkRequest &request); void microFocusChanged(); protected: virtual QWebPage *createWindow(QWebPage::WebWindowType type); virtual QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); virtual bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, QWebPage::NavigationType type); virtual QString chooseFile(QWebFrame *originatingFrame, const QString &oldFile); virtual void javaScriptAlert(QWebFrame *originatingFrame, const QString &msg); virtual bool javaScriptConfirm(QWebFrame *originatingFrame, const QString &msg); virtual bool javaScriptPrompt(QWebFrame *originatingFrame, const QString &msg, const QString &defaultValue, QString *result /Out/) /API=QString:2 - /; virtual bool javaScriptPrompt(QWebFrame *originatingFrame, const QString &msg, const QString &defaultValue, QString *result /Constrained/) /API=QString: - 2/; virtual void javaScriptConsoleMessage(const QString &message, int lineNumber, const QString &sourceID); virtual QString userAgentForUrl(const QUrl &url) const; public: %If (Qt_4_5_0 -) void setContentEditable(bool editable); %End %If (Qt_4_5_0 -) bool isContentEditable() const; %End %If (Qt_4_5_0 -) QMenu *createStandardContextMenu() /Factory/; %End %If (Qt_4_5_0 -) class ChooseMultipleFilesExtensionOption : QWebPage::ExtensionOption { %TypeHeaderCode #include %End public: QWebFrame *parentFrame; QStringList suggestedFileNames; }; %End %If (Qt_4_5_0 -) class ChooseMultipleFilesExtensionReturn : QWebPage::ExtensionReturn { %TypeHeaderCode #include %End public: QStringList fileNames; }; %End signals: %If (Qt_4_5_0 -) void contentsChanged(); %End %If (Qt_4_5_0 -) void databaseQuotaExceeded(QWebFrame *frame, QString databaseName); %End %If (Qt_4_5_0 -) void saveFrameStateRequested(QWebFrame *frame, QWebHistoryItem *item); %End %If (Qt_4_5_0 -) void restoreFrameStateRequested(QWebFrame *frame); %End public: %If (Qt_4_6_0 -) QWebFrame *frameAt(const QPoint &pos) const; %End %If (Qt_4_6_0 -) QSize preferredContentsSize() const; %End %If (Qt_4_6_0 -) void setPreferredContentsSize(const QSize &size) const; %End %If (Qt_4_6_0 -) enum ErrorDomain { QtNetwork, Http, WebKit, }; %End %If (Qt_4_6_0 -) class ErrorPageExtensionOption : QWebPage::ExtensionOption { %TypeHeaderCode #include %End public: QUrl url; QWebFrame *frame; QWebPage::ErrorDomain domain; int error; QString errorString; }; %End %If (Qt_4_6_0 -) class ErrorPageExtensionReturn : QWebPage::ExtensionReturn { %TypeHeaderCode #include %End public: ErrorPageExtensionReturn(); QString contentType; QString encoding; QUrl baseUrl; QByteArray content; }; %End %If (Qt_5_0_0 -) virtual bool shouldInterruptJavaScript(); %End public slots: %If (Qt_4_6_0 - Qt_5_0_0) bool shouldInterruptJavaScript(); %End public: %If (Qt_4_8_0 -) enum PermissionPolicy { PermissionUnknown, PermissionGrantedByUser, PermissionDeniedByUser, }; %End %If (Qt_4_8_0 -) enum Feature { Notifications, Geolocation, }; %End %If (Qt_4_8_0 -) class ViewportAttributes { %TypeHeaderCode #include %End public: ViewportAttributes(); ViewportAttributes(const QWebPage::ViewportAttributes &other); ~ViewportAttributes(); qreal initialScaleFactor() const; qreal minimumScaleFactor() const; qreal maximumScaleFactor() const; qreal devicePixelRatio() const; bool isUserScalable() const; bool isValid() const; %If (Qt_5_0_0 -) QSizeF size() const; %End %If (- Qt_5_0_0) QSize size() const; %End }; %End %If (Qt_4_8_0 -) bool hasSelection() const; %End %If (Qt_4_8_0 -) QString selectedHtml() const; %End %If (Qt_4_8_0 -) QWebPage::ViewportAttributes viewportAttributesForSize(const QSize &availableSize) const; %End %If (Qt_4_8_0 -) void setActualVisibleContentRect(const QRect &rect) const; %End %If (Qt_4_8_0 -) void setFeaturePermission(QWebFrame *frame, QWebPage::Feature feature, QWebPage::PermissionPolicy policy); %End %If (Qt_4_8_0 -) QStringList supportedContentTypes() const; %End %If (Qt_4_8_0 -) bool supportsContentType(const QString &mimeType) const; %End signals: %If (Qt_5_0_0 -) void applicationCacheQuotaExceeded(QWebSecurityOrigin *origin, quint64 defaultOriginQuota, quint64 totalSpaceNeeded); %End %If (Qt_4_8_0 - Qt_5_0_0) void applicationCacheQuotaExceeded(QWebSecurityOrigin *origin, quint64 defaultOriginQuota); %End %If (Qt_4_8_0 -) void viewportChangeRequested(); %End %If (Qt_4_8_0 -) void featurePermissionRequested(QWebFrame *frame, QWebPage::Feature feature); %End %If (Qt_4_8_0 -) void featurePermissionRequestCanceled(QWebFrame *frame, QWebPage::Feature feature); %End }; %End %If (Qt_4_4_0 -) QFlags operator|(QWebPage::FindFlag f1, QFlags f2); %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebpluginfactory.sip0000644000076500000240000000464512536324426022533 0ustar philstaff00000000000000// qwebpluginfactory.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QWebPluginFactory : QObject { %TypeHeaderCode #include %End public: struct MimeType { %TypeHeaderCode #include %End QString name; QString description; QStringList fileExtensions; %If (Qt_4_6_0 -) bool operator==(const QWebPluginFactory::MimeType &other) const; %End %If (Qt_4_6_0 -) bool operator!=(const QWebPluginFactory::MimeType &other) const; %End }; struct Plugin { %TypeHeaderCode #include %End QString name; QString description; QList mimeTypes; }; explicit QWebPluginFactory(QObject *parent /TransferThis/ = 0); virtual ~QWebPluginFactory(); virtual QList plugins() const = 0; virtual void refreshPlugins(); virtual QObject *create(const QString &mimeType, const QUrl &url, const QStringList &argumentNames, const QStringList &argumentValues) const = 0 /Factory/; enum Extension { }; class ExtensionOption { %TypeHeaderCode #include %End }; class ExtensionReturn { %TypeHeaderCode #include %End }; virtual bool extension(QWebPluginFactory::Extension extension, const QWebPluginFactory::ExtensionOption *option = 0, QWebPluginFactory::ExtensionReturn *output = 0); virtual bool supportsExtension(QWebPluginFactory::Extension extension) const; }; %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebsecurityorigin.sip0000644000076500000240000000327712536324426022724 0ustar philstaff00000000000000// qwebsecurityorigin.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_5_0 -) class QWebSecurityOrigin { %TypeHeaderCode #include %End public: QWebSecurityOrigin(const QWebSecurityOrigin &other); ~QWebSecurityOrigin(); static QList allOrigins(); QString scheme() const; QString host() const; int port() const; qint64 databaseUsage() const; qint64 databaseQuota() const; void setDatabaseQuota(qint64 quota); QList databases() const; %If (Qt_4_6_0 -) static void addLocalScheme(const QString &scheme); %End %If (Qt_4_6_0 -) static void removeLocalScheme(const QString &scheme); %End %If (Qt_4_6_0 -) static QStringList localSchemes(); %End %If (Qt_4_8_0 -) void setApplicationCacheQuota(qint64 quota); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebsettings.sip0000644000076500000240000001361212536324426021477 0ustar philstaff00000000000000// qwebsettings.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QWebSettings { %TypeHeaderCode #include %End public: enum FontFamily { StandardFont, FixedFont, SerifFont, SansSerifFont, CursiveFont, FantasyFont, }; enum WebAttribute { AutoLoadImages, JavascriptEnabled, JavaEnabled, PluginsEnabled, PrivateBrowsingEnabled, JavascriptCanOpenWindows, %If (Qt_4_8_0 -) JavascriptCanCloseWindows, %End JavascriptCanAccessClipboard, DeveloperExtrasEnabled, LinksIncludedInFocusChain, %If (Qt_4_5_0 -) ZoomTextOnly, %End %If (Qt_4_5_0 -) PrintElementBackgrounds, %End %If (Qt_4_5_0 -) OfflineStorageDatabaseEnabled, %End %If (Qt_4_5_0 -) OfflineWebApplicationCacheEnabled, %End %If (Qt_4_5_0 -) LocalStorageDatabaseEnabled, %End %If (Qt_4_6_0 -) LocalStorageEnabled, %End %If (Qt_4_6_0 -) LocalContentCanAccessRemoteUrls, %End %If (Qt_4_6_0 -) DnsPrefetchEnabled, %End %If (Qt_4_7_0 -) XSSAuditingEnabled, %End %If (Qt_4_7_0 -) AcceleratedCompositingEnabled, %End %If (Qt_4_7_0 -) SpatialNavigationEnabled, %End %If (Qt_4_7_0 -) LocalContentCanAccessFileUrls, %End %If (Qt_4_7_0 -) TiledBackingStoreEnabled, %End %If (Qt_4_7_0 -) FrameFlatteningEnabled, %End %If (Qt_4_7_0 -) SiteSpecificQuirksEnabled, %End %If (Qt_4_8_0 -) WebGLEnabled, %End %If (Qt_4_8_0 -) HyperlinkAuditingEnabled, %End %If (Qt_5_0_0 -) CSSRegionsEnabled, %End %If (Qt_5_0_0 -) CSSGridLayoutEnabled, %End %If (Qt_5_0_0 -) ScrollAnimatorEnabled, %End %If (Qt_5_0_0 -) CaretBrowsingEnabled, %End %If (Qt_5_0_0 -) NotificationsEnabled, %End }; enum WebGraphic { MissingImageGraphic, MissingPluginGraphic, DefaultFrameIconGraphic, TextAreaSizeGripCornerGraphic, %If (Qt_4_8_0 -) InputSpeechButtonGraphic, %End %If (Qt_4_8_0 -) SearchCancelButtonGraphic, %End %If (Qt_4_8_0 -) SearchCancelButtonPressedGraphic, %End }; enum FontSize { MinimumFontSize, MinimumLogicalFontSize, DefaultFontSize, DefaultFixedFontSize, }; static QWebSettings *globalSettings(); void setFontFamily(QWebSettings::FontFamily which, const QString &family); QString fontFamily(QWebSettings::FontFamily which) const; void resetFontFamily(QWebSettings::FontFamily which); void setFontSize(QWebSettings::FontSize type, int size); int fontSize(QWebSettings::FontSize type) const; void resetFontSize(QWebSettings::FontSize type); void setAttribute(QWebSettings::WebAttribute attr, bool on); bool testAttribute(QWebSettings::WebAttribute attr) const; void resetAttribute(QWebSettings::WebAttribute attr); void setUserStyleSheetUrl(const QUrl &location); QUrl userStyleSheetUrl() const; static void setIconDatabasePath(const QString &location); static QString iconDatabasePath(); static void clearIconDatabase(); static QIcon iconForUrl(const QUrl &url); static void setWebGraphic(QWebSettings::WebGraphic type, const QPixmap &graphic); static QPixmap webGraphic(QWebSettings::WebGraphic type); static void setMaximumPagesInCache(int pages); static int maximumPagesInCache(); static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity); private: QWebSettings(); QWebSettings(const QWebSettings &); ~QWebSettings(); public: %If (Qt_4_5_0 -) static void setOfflineStoragePath(const QString &path); %End %If (Qt_4_5_0 -) static QString offlineStoragePath(); %End %If (Qt_4_5_0 -) static void setOfflineStorageDefaultQuota(qint64 maximumSize); %End %If (Qt_4_5_0 -) static qint64 offlineStorageDefaultQuota(); %End %If (Qt_4_6_0 -) void setDefaultTextEncoding(const QString &encoding); %End %If (Qt_4_6_0 -) QString defaultTextEncoding() const; %End %If (Qt_4_6_0 -) static void setOfflineWebApplicationCachePath(const QString &path); %End %If (Qt_4_6_0 -) static QString offlineWebApplicationCachePath(); %End %If (Qt_4_6_0 -) static void setOfflineWebApplicationCacheQuota(qint64 maximumSize); %End %If (Qt_4_6_0 -) static qint64 offlineWebApplicationCacheQuota(); %End %If (Qt_4_6_0 -) void setLocalStoragePath(const QString &path); %End %If (Qt_4_6_0 -) QString localStoragePath() const; %End %If (Qt_4_6_0 -) static void clearMemoryCaches(); %End %If (Qt_4_6_0 -) static void enablePersistentStorage(const QString &path = QString()); %End %If (Qt_5_0_0 -) enum ThirdPartyCookiePolicy { AlwaysAllowThirdPartyCookies, AlwaysBlockThirdPartyCookies, AllowThirdPartyWithExistingCookies, }; %End %If (Qt_5_0_0 -) void setThirdPartyCookiePolicy(QWebSettings::ThirdPartyCookiePolicy); %End %If (Qt_5_0_0 -) QWebSettings::ThirdPartyCookiePolicy thirdPartyCookiePolicy() const; %End }; %End PyQt-x11-gpl-4.11.4/sip/QtWebKit/qwebview.sip0000644000076500000240000001262412536324426020613 0ustar philstaff00000000000000// qwebview.sip generated by MetaSIP // // This file is part of the QtWebKit Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QWebView : QWidget { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QWebPluginFactory, &sipType_QWebPluginFactory, -1, 1}, {sipName_QWebFrame, &sipType_QWebFrame, -1, 2}, {sipName_QWebPage, &sipType_QWebPage, -1, 3}, {sipName_QWebHistoryInterface, &sipType_QWebHistoryInterface, -1, 4}, {sipName_QWebView, &sipType_QWebView, -1, 5}, #if QT_VERSION >= 0x040600 {sipName_QWebInspector, &sipType_QWebInspector, -1, 6}, {sipName_QGraphicsWebView, &sipType_QGraphicsWebView, -1, -1}, #else {0, 0, -1, 6}, {0, 0, -1, -1}, #endif }; int i = 0; sipType = 0; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: explicit QWebView(QWidget *parent /TransferThis/ = 0); virtual ~QWebView(); QWebPage *page() const; void setPage(QWebPage *page /KeepReference/); void load(const QUrl &url) /ReleaseGIL/; void load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray()) /ReleaseGIL/; void setHtml(const QString &html, const QUrl &baseUrl = QUrl()); void setContent(const QByteArray &data, const QString &mimeType /DocValue="Py_v3:''"/ = QString(), const QUrl &baseUrl = QUrl()); QWebHistory *history() const; QWebSettings *settings() const; QString title() const; void setUrl(const QUrl &url); QUrl url() const; QIcon icon() const; QString selectedText() const; QAction *pageAction(QWebPage::WebAction action) const; void triggerPageAction(QWebPage::WebAction action, bool checked = false); bool isModified() const; virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const; virtual QSize sizeHint() const; void setTextSizeMultiplier(qreal factor); qreal textSizeMultiplier() const; bool findText(const QString &subString, QFlags options = 0); virtual bool event(QEvent *); public slots: void stop(); void back(); void forward(); void reload(); %If (PyQt_Printer) void print(QPrinter *printer) const /PyName=print_/; %End %If (Py_v3) %If (PyQt_Printer) void print(QPrinter *printer) const; %End %End signals: void loadStarted(); void loadProgress(int progress); void loadFinished(bool); void titleChanged(const QString &title); void statusBarMessage(const QString &text); void linkClicked(const QUrl &url); void selectionChanged(); void iconChanged(); void urlChanged(const QUrl &url); protected: virtual QWebView *createWindow(QWebPage::WebWindowType type); virtual void resizeEvent(QResizeEvent *e); virtual void paintEvent(QPaintEvent *ev); virtual void changeEvent(QEvent *); virtual void mouseMoveEvent(QMouseEvent *); virtual void mousePressEvent(QMouseEvent *); virtual void mouseDoubleClickEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void contextMenuEvent(QContextMenuEvent *); virtual void wheelEvent(QWheelEvent *); virtual void keyPressEvent(QKeyEvent *); virtual void keyReleaseEvent(QKeyEvent *); virtual void dragEnterEvent(QDragEnterEvent *); virtual void dragLeaveEvent(QDragLeaveEvent *); virtual void dragMoveEvent(QDragMoveEvent *); virtual void dropEvent(QDropEvent *); virtual void focusInEvent(QFocusEvent *); virtual void focusOutEvent(QFocusEvent *); virtual void inputMethodEvent(QInputMethodEvent *); virtual bool focusNextPrevChild(bool next); public: %If (Qt_4_5_0 -) qreal zoomFactor() const; %End %If (Qt_4_5_0 -) void setZoomFactor(qreal factor); %End %If (Qt_4_6_0 -) QFlags renderHints() const; %End %If (Qt_4_6_0 -) void setRenderHints(QFlags hints); %End %If (Qt_4_6_0 -) void setRenderHint(QPainter::RenderHint hint, bool enabled = true); %End %If (Qt_4_8_0 -) bool hasSelection() const; %End %If (Qt_4_8_0 -) QString selectedHtml() const; %End }; %End PyQt-x11-gpl-4.11.4/sip/QtXml/0000755000076500000240000000000012536324426015613 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtXml/qdom.sip0000644000076500000240000003502212536324426017272 0ustar philstaff00000000000000// qdom.sip generated by MetaSIP // // This file is part of the QtXml Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %ModuleCode #include %End class QDomImplementation { %TypeHeaderCode #include %End public: enum InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode, }; QDomImplementation(); QDomImplementation(const QDomImplementation &); ~QDomImplementation(); bool operator==(const QDomImplementation &) const; bool operator!=(const QDomImplementation &) const; bool hasFeature(const QString &feature, const QString &version) const; QDomDocumentType createDocumentType(const QString &qName, const QString &publicId, const QString &systemId); QDomDocument createDocument(const QString &nsURI, const QString &qName, const QDomDocumentType &doctype); bool isNull(); static QDomImplementation::InvalidDataPolicy invalidDataPolicy(); static void setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy); }; class QDomNode { %TypeHeaderCode #include %End public: enum NodeType { ElementNode, AttributeNode, TextNode, CDATASectionNode, EntityReferenceNode, EntityNode, ProcessingInstructionNode, CommentNode, DocumentNode, DocumentTypeNode, DocumentFragmentNode, NotationNode, BaseNode, CharacterDataNode, }; QDomNode(); QDomNode(const QDomNode &); bool operator==(const QDomNode &) const; bool operator!=(const QDomNode &) const; ~QDomNode(); QDomNode insertBefore(const QDomNode &newChild, const QDomNode &refChild); QDomNode insertAfter(const QDomNode &newChild, const QDomNode &refChild); QDomNode replaceChild(const QDomNode &newChild, const QDomNode &oldChild); QDomNode removeChild(const QDomNode &oldChild); QDomNode appendChild(const QDomNode &newChild); bool hasChildNodes() const; QDomNode cloneNode(bool deep = true) const; void normalize(); bool isSupported(const QString &feature, const QString &version) const; QString nodeName() const; QDomNode::NodeType nodeType() const; QDomNode parentNode() const; QDomNodeList childNodes() const; QDomNode firstChild() const; QDomNode lastChild() const; QDomNode previousSibling() const; QDomNode nextSibling() const; QDomNamedNodeMap attributes() const; QDomDocument ownerDocument() const; QString namespaceURI() const; QString localName() const; bool hasAttributes() const; QString nodeValue() const; void setNodeValue(const QString &); QString prefix() const; void setPrefix(const QString &pre); bool isAttr() const; bool isCDATASection() const; bool isDocumentFragment() const; bool isDocument() const; bool isDocumentType() const; bool isElement() const; bool isEntityReference() const; bool isText() const; bool isEntity() const; bool isNotation() const; bool isProcessingInstruction() const; bool isCharacterData() const; bool isComment() const; QDomNode namedItem(const QString &name) const; bool isNull() const; void clear(); QDomAttr toAttr() const; QDomCDATASection toCDATASection() const; QDomDocumentFragment toDocumentFragment() const; QDomDocument toDocument() const; QDomDocumentType toDocumentType() const; QDomElement toElement() const; QDomEntityReference toEntityReference() const; QDomText toText() const; QDomEntity toEntity() const; QDomNotation toNotation() const; QDomProcessingInstruction toProcessingInstruction() const; QDomCharacterData toCharacterData() const; QDomComment toComment() const; %If (- Qt_5_0_0) void save(QTextStream &, int) const /ReleaseGIL/; %End QDomElement firstChildElement(const QString &tagName /DocValue="Py_v3:''"/ = QString()) const; QDomElement lastChildElement(const QString &tagName /DocValue="Py_v3:''"/ = QString()) const; QDomElement previousSiblingElement(const QString &tagName /DocValue="Py_v3:''"/ = QString()) const; QDomElement nextSiblingElement(const QString &tagName /DocValue="Py_v3:''"/ = QString()) const; int lineNumber() const; int columnNumber() const; %If (Qt_4_3_0 -) enum EncodingPolicy { EncodingFromDocument, EncodingFromTextStream, }; %End %If (Qt_4_3_0 - Qt_5_0_0) void save(QTextStream &, int, QDomNode::EncodingPolicy) const /ReleaseGIL/; %End %If (Qt_5_0_0 -) void save(QTextStream &, int, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const /ReleaseGIL/; %End }; class QDomNodeList { %TypeHeaderCode #include %End public: QDomNodeList(); QDomNodeList(const QDomNodeList &); bool operator==(const QDomNodeList &) const; bool operator!=(const QDomNodeList &) const; ~QDomNodeList(); QDomNode item(int index) const; %If (Qt_5_0_0 -) int length() const; %End %If (- Qt_5_0_0) uint length() const; %End int count() const /__len__/; QDomNode at(int index) const; int size() const; bool isEmpty() const; }; class QDomDocumentType : QDomNode { %TypeHeaderCode #include %End public: QDomDocumentType(); QDomDocumentType(const QDomDocumentType &x); QString name() const; QDomNamedNodeMap entities() const; QDomNamedNodeMap notations() const; QString publicId() const; QString systemId() const; QString internalSubset() const; QDomNode::NodeType nodeType() const; }; class QDomDocument : QDomNode { %TypeHeaderCode #include %End public: QDomDocument(); explicit QDomDocument(const QString &name); explicit QDomDocument(const QDomDocumentType &doctype); QDomDocument(const QDomDocument &x); ~QDomDocument(); QDomElement createElement(const QString &tagName); QDomDocumentFragment createDocumentFragment(); QDomText createTextNode(const QString &data); QDomComment createComment(const QString &data); QDomCDATASection createCDATASection(const QString &data); QDomProcessingInstruction createProcessingInstruction(const QString &target, const QString &data); QDomAttr createAttribute(const QString &name); QDomEntityReference createEntityReference(const QString &name); QDomNodeList elementsByTagName(const QString &tagname) const; QDomNode importNode(const QDomNode &importedNode, bool deep); QDomElement createElementNS(const QString &nsURI, const QString &qName); QDomAttr createAttributeNS(const QString &nsURI, const QString &qName); QDomNodeList elementsByTagNameNS(const QString &nsURI, const QString &localName); QDomElement elementById(const QString &elementId); QDomDocumentType doctype() const; QDomImplementation implementation() const; QDomElement documentElement() const; QDomNode::NodeType nodeType() const; bool setContent(const QByteArray &data, bool namespaceProcessing, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0); bool setContent(const QString &text, bool namespaceProcessing, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0); bool setContent(QIODevice *dev, bool namespaceProcessing, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0) /ReleaseGIL/; %If (Qt_4_5_0 -) bool setContent(QXmlInputSource *source, bool namespaceProcessing, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0); %End bool setContent(const QByteArray &buffer, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0); bool setContent(const QString &text, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0); bool setContent(QIODevice *dev, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0) /ReleaseGIL/; bool setContent(QXmlInputSource *source, QXmlReader *reader, QString *errorMsg /Out/ = 0, int *errorLine = 0, int *errorColumn = 0) /ReleaseGIL/; QString toString(int indent = 1) const; QByteArray toByteArray(int indent = 1) const; }; class QDomNamedNodeMap { %TypeHeaderCode #include %End public: QDomNamedNodeMap(); QDomNamedNodeMap(const QDomNamedNodeMap &); bool operator==(const QDomNamedNodeMap &) const; bool operator!=(const QDomNamedNodeMap &) const; ~QDomNamedNodeMap(); QDomNode namedItem(const QString &name) const; QDomNode setNamedItem(const QDomNode &newNode); QDomNode removeNamedItem(const QString &name); QDomNode item(int index) const; QDomNode namedItemNS(const QString &nsURI, const QString &localName) const; QDomNode setNamedItemNS(const QDomNode &newNode); QDomNode removeNamedItemNS(const QString &nsURI, const QString &localName); %If (Qt_5_0_0 -) int length() const; %End %If (- Qt_5_0_0) uint length() const; %End int count() const /__len__/; int size() const; bool isEmpty() const; bool contains(const QString &name) const; }; class QDomDocumentFragment : QDomNode { %TypeHeaderCode #include %End public: QDomDocumentFragment(); QDomDocumentFragment(const QDomDocumentFragment &x); QDomNode::NodeType nodeType() const; }; class QDomCharacterData : QDomNode { %TypeHeaderCode #include %End public: QDomCharacterData(); QDomCharacterData(const QDomCharacterData &x); QString substringData(unsigned long offset, unsigned long count); void appendData(const QString &arg); void insertData(unsigned long offset, const QString &arg); void deleteData(unsigned long offset, unsigned long count); void replaceData(unsigned long offset, unsigned long count, const QString &arg); %If (Qt_5_0_0 -) int length() const; %End %If (- Qt_5_0_0) uint length() const; %End QString data() const; void setData(const QString &); QDomNode::NodeType nodeType() const; }; class QDomAttr : QDomNode { %TypeHeaderCode #include %End public: QDomAttr(); QDomAttr(const QDomAttr &x); QString name() const; bool specified() const; QDomElement ownerElement() const; QString value() const; void setValue(const QString &); QDomNode::NodeType nodeType() const; }; class QDomElement : QDomNode { %TypeHeaderCode #include %End public: QDomElement(); QDomElement(const QDomElement &x); QString attribute(const QString &name, const QString &defaultValue /DocValue="Py_v3:''"/ = QString()) const; void setAttribute(const QString &name, const QString &value); void setAttribute(const QString &name, qlonglong value); void setAttribute(const QString &name, qulonglong value); void setAttribute(const QString &name, double value /Constrained/); void setAttribute(const QString &name, int value); void removeAttribute(const QString &name); QDomAttr attributeNode(const QString &name); QDomAttr setAttributeNode(const QDomAttr &newAttr); QDomAttr removeAttributeNode(const QDomAttr &oldAttr); QDomNodeList elementsByTagName(const QString &tagname) const; bool hasAttribute(const QString &name) const; QString attributeNS(const QString nsURI, const QString &localName, const QString &defaultValue /DocValue="Py_v3:''"/ = QString()) const; void setAttributeNS(const QString nsURI, const QString &qName, const QString &value); void setAttributeNS(const QString nsURI, const QString &qName, qlonglong value); void setAttributeNS(const QString nsURI, const QString &qName, qulonglong value); void setAttributeNS(const QString nsURI, const QString &qName, double value /Constrained/); void setAttributeNS(const QString nsURI, const QString &qName, int value); void removeAttributeNS(const QString &nsURI, const QString &localName); QDomAttr attributeNodeNS(const QString &nsURI, const QString &localName); QDomAttr setAttributeNodeNS(const QDomAttr &newAttr); QDomNodeList elementsByTagNameNS(const QString &nsURI, const QString &localName) const; bool hasAttributeNS(const QString &nsURI, const QString &localName) const; QString tagName() const; void setTagName(const QString &name); QDomNamedNodeMap attributes() const; QDomNode::NodeType nodeType() const; QString text() const; }; class QDomText : QDomCharacterData { %TypeHeaderCode #include %End public: QDomText(); QDomText(const QDomText &x); QDomText splitText(int offset); QDomNode::NodeType nodeType() const; }; class QDomComment : QDomCharacterData { %TypeHeaderCode #include %End public: QDomComment(); QDomComment(const QDomComment &x); QDomNode::NodeType nodeType() const; }; class QDomCDATASection : QDomText { %TypeHeaderCode #include %End public: QDomCDATASection(); QDomCDATASection(const QDomCDATASection &x); QDomNode::NodeType nodeType() const; }; class QDomNotation : QDomNode { %TypeHeaderCode #include %End public: QDomNotation(); QDomNotation(const QDomNotation &x); QString publicId() const; QString systemId() const; QDomNode::NodeType nodeType() const; }; class QDomEntity : QDomNode { %TypeHeaderCode #include %End public: QDomEntity(); QDomEntity(const QDomEntity &x); QString publicId() const; QString systemId() const; QString notationName() const; QDomNode::NodeType nodeType() const; }; class QDomEntityReference : QDomNode { %TypeHeaderCode #include %End public: QDomEntityReference(); QDomEntityReference(const QDomEntityReference &x); QDomNode::NodeType nodeType() const; }; class QDomProcessingInstruction : QDomNode { %TypeHeaderCode #include %End public: QDomProcessingInstruction(); QDomProcessingInstruction(const QDomProcessingInstruction &x); QString target() const; QString data() const; void setData(const QString &d); QDomNode::NodeType nodeType() const; }; QTextStream &operator<<(QTextStream &, const QDomNode &); PyQt-x11-gpl-4.11.4/sip/QtXml/QtXmlmod.sip0000644000076500000240000000362312536324426020101 0ustar philstaff00000000000000// QtXmlmod.sip generated by MetaSIP // // This file is part of the QtXml Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtXml, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qdom.sip %Include qxml.sip %Include qxmlstream.sip PyQt-x11-gpl-4.11.4/sip/QtXml/qxml.sip0000644000076500000240000003012012536324426017305 0ustar philstaff00000000000000// qxml.sip generated by MetaSIP // // This file is part of the QtXml Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. class QXmlNamespaceSupport { %TypeHeaderCode #include %End public: QXmlNamespaceSupport(); ~QXmlNamespaceSupport(); void setPrefix(const QString &, const QString &); QString prefix(const QString &) const; QString uri(const QString &) const; void splitName(const QString &, QString &, QString &) const; void processName(const QString &, bool, QString &, QString &) const; QStringList prefixes() const; QStringList prefixes(const QString &) const; void pushContext(); void popContext(); void reset(); private: %If (Qt_4_2_0 -) QXmlNamespaceSupport(const QXmlNamespaceSupport &); %End }; class QXmlAttributes { %TypeHeaderCode #include %End public: QXmlAttributes(); virtual ~QXmlAttributes(); int index(const QString &qName) const; int index(const QString &uri, const QString &localPart) const; int length() const; QString localName(int index) const; QString qName(int index) const; QString uri(int index) const; QString type(int index) const; QString type(const QString &qName) const; QString type(const QString &uri, const QString &localName) const; QString value(int index) const; QString value(const QString &qName) const; QString value(const QString &uri, const QString &localName) const; void clear(); void append(const QString &qName, const QString &uri, const QString &localPart, const QString &value); int count() const /__len__/; }; class QXmlInputSource { %TypeHeaderCode #include %End public: QXmlInputSource(); %If (Qt_5_0_0 -) explicit QXmlInputSource(QIODevice *dev); %End %If (- Qt_5_0_0) QXmlInputSource(QIODevice *dev); %End virtual ~QXmlInputSource(); virtual void setData(const QString &dat); virtual void setData(const QByteArray &dat); virtual void fetchData(); virtual QString data() const; virtual QChar next(); virtual void reset(); static const ushort EndOfData; static const ushort EndOfDocument; protected: virtual QString fromRawData(const QByteArray &data, bool beginning = false); private: %If (- Qt_4_2_0) QXmlInputSource(const QXmlInputSource &); %End }; class QXmlParseException { %TypeHeaderCode #include %End public: QXmlParseException(const QString &name /DocValue="Py_v3:''"/ = QString(), int column = -1, int line = -1, const QString &publicId /DocValue="Py_v3:''"/ = QString(), const QString &systemId /DocValue="Py_v3:''"/ = QString()); ~QXmlParseException(); int columnNumber() const; int lineNumber() const; QString publicId() const; QString systemId() const; QString message() const; %If (Qt_4_6_0 -) QXmlParseException(const QXmlParseException &other); %End private: %If (- Qt_4_2_0) QXmlParseException(const QXmlParseException &); %End QXmlParseException &operator=(const QXmlParseException &); }; class QXmlReader { %TypeHeaderCode #include %End public: virtual ~QXmlReader(); virtual bool feature(const QString &name, bool *ok = 0) const = 0; virtual void setFeature(const QString &name, bool value) = 0; virtual bool hasFeature(const QString &name) const = 0; virtual void *property(const QString &name, bool *ok = 0) const = 0; virtual void setProperty(const QString &name, void *value) = 0; virtual bool hasProperty(const QString &name) const = 0; virtual void setEntityResolver(QXmlEntityResolver *handler /KeepReference/) = 0; virtual QXmlEntityResolver *entityResolver() const = 0; virtual void setDTDHandler(QXmlDTDHandler *handler /KeepReference/) = 0; virtual QXmlDTDHandler *DTDHandler() const = 0; virtual void setContentHandler(QXmlContentHandler *handler /KeepReference/) = 0; virtual QXmlContentHandler *contentHandler() const = 0; virtual void setErrorHandler(QXmlErrorHandler *handler /KeepReference/) = 0; virtual QXmlErrorHandler *errorHandler() const = 0; virtual void setLexicalHandler(QXmlLexicalHandler *handler /KeepReference/) = 0; virtual QXmlLexicalHandler *lexicalHandler() const = 0; virtual void setDeclHandler(QXmlDeclHandler *handler /KeepReference/) = 0; virtual QXmlDeclHandler *declHandler() const = 0; virtual bool parse(const QXmlInputSource &input) = 0; virtual bool parse(const QXmlInputSource *input) = 0; }; class QXmlSimpleReader : QXmlReader { %TypeHeaderCode #include %End public: QXmlSimpleReader(); virtual ~QXmlSimpleReader(); virtual bool feature(const QString &name, bool *ok = 0) const; virtual void setFeature(const QString &name, bool value); virtual bool hasFeature(const QString &name) const; virtual void *property(const QString &name, bool *ok = 0) const; virtual void setProperty(const QString &name, void *value); virtual bool hasProperty(const QString &name) const; virtual void setEntityResolver(QXmlEntityResolver *handler /KeepReference/); virtual QXmlEntityResolver *entityResolver() const; virtual void setDTDHandler(QXmlDTDHandler *handler /KeepReference/); virtual QXmlDTDHandler *DTDHandler() const; virtual void setContentHandler(QXmlContentHandler *handler /KeepReference/); virtual QXmlContentHandler *contentHandler() const; virtual void setErrorHandler(QXmlErrorHandler *handler /KeepReference/); virtual QXmlErrorHandler *errorHandler() const; virtual void setLexicalHandler(QXmlLexicalHandler *handler /KeepReference/); virtual QXmlLexicalHandler *lexicalHandler() const; virtual void setDeclHandler(QXmlDeclHandler *handler /KeepReference/); virtual QXmlDeclHandler *declHandler() const; virtual bool parse(const QXmlInputSource *input); virtual bool parse(const QXmlInputSource *input, bool incremental); virtual bool parseContinue(); private: QXmlSimpleReader(const QXmlSimpleReader &); }; class QXmlLocator { %TypeHeaderCode #include %End public: QXmlLocator(); virtual ~QXmlLocator(); virtual int columnNumber() const = 0; virtual int lineNumber() const = 0; }; class QXmlContentHandler { %TypeHeaderCode #include %End public: virtual ~QXmlContentHandler(); virtual void setDocumentLocator(QXmlLocator *locator /KeepReference/) = 0; virtual bool startDocument() = 0; virtual bool endDocument() = 0; virtual bool startPrefixMapping(const QString &prefix, const QString &uri) = 0; virtual bool endPrefixMapping(const QString &prefix) = 0; virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts) = 0; virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) = 0; virtual bool characters(const QString &ch) = 0; virtual bool ignorableWhitespace(const QString &ch) = 0; virtual bool processingInstruction(const QString &target, const QString &data) = 0; virtual bool skippedEntity(const QString &name) = 0; virtual QString errorString() const = 0; }; class QXmlErrorHandler { %TypeHeaderCode #include %End public: virtual ~QXmlErrorHandler(); virtual bool warning(const QXmlParseException &exception) = 0; virtual bool error(const QXmlParseException &exception) = 0; virtual bool fatalError(const QXmlParseException &exception) = 0; virtual QString errorString() const = 0; }; class QXmlDTDHandler { %TypeHeaderCode #include %End public: virtual ~QXmlDTDHandler(); virtual bool notationDecl(const QString &name, const QString &publicId, const QString &systemId) = 0; virtual bool unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString ¬ationName) = 0; virtual QString errorString() const = 0; }; class QXmlEntityResolver { %TypeHeaderCode #include %End public: virtual ~QXmlEntityResolver(); virtual bool resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret) = 0; virtual QString errorString() const = 0; }; class QXmlLexicalHandler { %TypeHeaderCode #include %End public: virtual ~QXmlLexicalHandler(); virtual bool startDTD(const QString &name, const QString &publicId, const QString &systemId) = 0; virtual bool endDTD() = 0; virtual bool startEntity(const QString &name) = 0; virtual bool endEntity(const QString &name) = 0; virtual bool startCDATA() = 0; virtual bool endCDATA() = 0; virtual bool comment(const QString &ch) = 0; virtual QString errorString() const = 0; }; class QXmlDeclHandler { %TypeHeaderCode #include %End public: virtual ~QXmlDeclHandler(); virtual bool attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value) = 0; virtual bool internalEntityDecl(const QString &name, const QString &value) = 0; virtual bool externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId) = 0; virtual QString errorString() const = 0; }; class QXmlDefaultHandler : QXmlContentHandler, QXmlErrorHandler, QXmlDTDHandler, QXmlEntityResolver, QXmlLexicalHandler, QXmlDeclHandler { %TypeHeaderCode #include %End public: QXmlDefaultHandler(); virtual ~QXmlDefaultHandler(); virtual void setDocumentLocator(QXmlLocator *locator /KeepReference/); virtual bool startDocument(); virtual bool endDocument(); virtual bool startPrefixMapping(const QString &prefix, const QString &uri); virtual bool endPrefixMapping(const QString &prefix); virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts); virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName); virtual bool characters(const QString &ch); virtual bool ignorableWhitespace(const QString &ch); virtual bool processingInstruction(const QString &target, const QString &data); virtual bool skippedEntity(const QString &name); virtual bool warning(const QXmlParseException &exception); virtual bool error(const QXmlParseException &exception); virtual bool fatalError(const QXmlParseException &exception); virtual bool notationDecl(const QString &name, const QString &publicId, const QString &systemId); virtual bool unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString ¬ationName); virtual bool resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret); virtual bool startDTD(const QString &name, const QString &publicId, const QString &systemId); virtual bool endDTD(); virtual bool startEntity(const QString &name); virtual bool endEntity(const QString &name); virtual bool startCDATA(); virtual bool endCDATA(); virtual bool comment(const QString &ch); virtual bool attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value); virtual bool internalEntityDecl(const QString &name, const QString &value); virtual bool externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId); virtual QString errorString() const; private: %If (Qt_4_2_0 -) QXmlDefaultHandler(const QXmlDefaultHandler &); %End }; PyQt-x11-gpl-4.11.4/sip/QtXml/qxmlstream.sip0000644000076500000240000003207112536324426020530 0ustar philstaff00000000000000// qxmlstream.sip generated by MetaSIP // // This file is part of the QtXml Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_3_0 - Qt_4_4_0) class QXmlStreamAttribute { %TypeHeaderCode #include %End public: QXmlStreamAttribute(); QXmlStreamAttribute(const QString &qualifiedName, const QString &value); QXmlStreamAttribute(const QString &namespaceUri, const QString &name, const QString &value); QXmlStreamAttribute(const QXmlStreamAttribute &); ~QXmlStreamAttribute(); QStringRef namespaceUri() const; QStringRef name() const; QStringRef qualifiedName() const; QStringRef value() const; bool isDefault() const; bool operator==(const QXmlStreamAttribute &other) const; bool operator!=(const QXmlStreamAttribute &other) const; }; %End %If (Qt_4_3_0 - Qt_4_4_0) class QXmlStreamAttributes { %TypeHeaderCode #include %End public: QStringRef value(const QString &namespaceUri, const QString &name) const; QStringRef value(const QString &qualifiedName) const; void append(const QString &namespaceUri, const QString &name, const QString &value); void append(const QString &qualifiedName, const QString &value); void append(const QXmlStreamAttribute &attribute); // Methods inherited from QVector and Python special methods. // Keep in sync with QPolygon and QPolygonF. // This is picked up with "using" by QXmlStreamAttributes. //void append(const QXmlStreamAttribute &value); const QXmlStreamAttribute &at(int i) const; void clear(); bool contains(const QXmlStreamAttribute &value) const; int count(const QXmlStreamAttribute &value) const; int count() const /__len__/; void *data(); // Note the Qt return value is discarded as it would require handwritten code // and seems pretty useless. void fill(const QXmlStreamAttribute &value, int size = -1); QXmlStreamAttribute &first(); int indexOf(const QXmlStreamAttribute &value, int from = 0) const; void insert(int i, const QXmlStreamAttribute &value); bool isEmpty() const; QXmlStreamAttribute &last(); int lastIndexOf(const QXmlStreamAttribute &value, int from = -1) const; // Note the Qt return type is QVector. We can't do the // usual trick because there is no QXmlStreamAttributes ctor that takes a // QVector argument. We could use handwritten code but we // don't bother. //QXmlStreamAttributes mid(int pos, int length = -1) const; void prepend(const QXmlStreamAttribute &value); void remove(int i); void remove(int i, int count); void replace(int i, const QXmlStreamAttribute &value); int size() const; // These are hidden by other implementations in QXmlStreamAttributes. //QXmlStreamAttribute value(int i) const; //QXmlStreamAttribute value(int i, const QXmlStreamAttribute &defaultValue) const; bool operator!=(const QXmlStreamAttributes &other) const; // Note the Qt return type is QVector. We can't do the // usual trick because there is no QXmlStreamAttributes ctor that takes a // QVector argument. We could use handwritten code but we // don't bother. //QXmlStreamAttributes operator+(const QXmlStreamAttributes &other) const; QXmlStreamAttributes &operator+=(const QXmlStreamAttributes &other); QXmlStreamAttributes &operator+=(const QXmlStreamAttribute &value); bool operator==(const QXmlStreamAttributes &other) const; SIP_PYOBJECT operator<<(const QXmlStreamAttribute &value); %MethodCode *a0 << *a1; sipRes = sipArg0; Py_INCREF(sipRes); %End QXmlStreamAttribute &operator[](int i); %MethodCode SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); if (idx < 0) sipIsErr = 1; else sipRes = new QXmlStreamAttribute(sipCpp->operator[]((int)idx)); %End // Some additional Python special methods. void __setitem__(int i, const QXmlStreamAttribute &value); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else (*sipCpp)[a0] = *a1; %End void __setitem__(SIP_PYSLICE slice, const QXmlStreamAttributes &list); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { int vlen = a1->count(); if (vlen != slicelength) { sipBadLengthForSlice(vlen, slicelength); sipIsErr = 1; } else { QVector::const_iterator it = a1->begin(); for (i = 0; i < slicelength; ++i) { (*sipCpp)[start] = *it; start += step; ++it; } } } %End void __delitem__(int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipCpp->remove(a0); %End void __delitem__(SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else for (i = 0; i < slicelength; ++i) { sipCpp->remove(start); start += step - 1; } %End QXmlStreamAttributes &operator[](SIP_PYSLICE slice); %MethodCode SIP_SSIZE_T len, start, stop, step, slicelength, i; len = sipCpp->count(); #if PY_VERSION_HEX >= 0x03020000 if (PySlice_GetIndicesEx(a0, len, &start, &stop, &step, &slicelength) < 0) #else if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) #endif sipIsErr = 1; else { sipRes = new QXmlStreamAttributes(); for (i = 0; i < slicelength; ++i) { (*sipRes) += (*sipCpp)[start]; start += step; } } %End int __contains__(const QXmlStreamAttribute &value); %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End }; %End %If (Qt_4_3_0 - Qt_4_4_0) class QXmlStreamNamespaceDeclaration { %TypeHeaderCode #include %End public: QXmlStreamNamespaceDeclaration(); QXmlStreamNamespaceDeclaration(const QXmlStreamNamespaceDeclaration &); ~QXmlStreamNamespaceDeclaration(); QStringRef prefix() const; QStringRef namespaceUri() const; bool operator==(const QXmlStreamNamespaceDeclaration &other) const; bool operator!=(const QXmlStreamNamespaceDeclaration &other) const; }; %End %If (Qt_4_3_0 - Qt_4_4_0) typedef QVector QXmlStreamNamespaceDeclarations; %End %If (Qt_4_3_0 - Qt_4_4_0) class QXmlStreamNotationDeclaration { %TypeHeaderCode #include %End public: QXmlStreamNotationDeclaration(); QXmlStreamNotationDeclaration(const QXmlStreamNotationDeclaration &); ~QXmlStreamNotationDeclaration(); QStringRef name() const; QStringRef systemId() const; QStringRef publicId() const; bool operator==(const QXmlStreamNotationDeclaration &other) const; bool operator!=(const QXmlStreamNotationDeclaration &other) const; }; %End %If (Qt_4_3_0 - Qt_4_4_0) typedef QVector QXmlStreamNotationDeclarations; %End %If (Qt_4_3_0 - Qt_4_4_0) class QXmlStreamEntityDeclaration { %TypeHeaderCode #include %End public: QXmlStreamEntityDeclaration(); QXmlStreamEntityDeclaration(const QXmlStreamEntityDeclaration &); ~QXmlStreamEntityDeclaration(); QStringRef name() const; QStringRef notationName() const; QStringRef systemId() const; QStringRef publicId() const; QStringRef value() const; bool operator==(const QXmlStreamEntityDeclaration &other) const; bool operator!=(const QXmlStreamEntityDeclaration &other) const; }; %End %If (Qt_4_3_0 - Qt_4_4_0) typedef QVector QXmlStreamEntityDeclarations; %End %If (Qt_4_3_0 - Qt_4_4_0) class QXmlStreamReader { %TypeHeaderCode #include %End public: enum Error { NoError, UnexpectedElementError, CustomError, NotWellFormedError, PrematureEndOfDocumentError, }; enum TokenType { NoToken, Invalid, StartDocument, EndDocument, StartElement, EndElement, Characters, Comment, DTD, EntityReference, ProcessingInstruction, }; QXmlStreamReader(); QXmlStreamReader(QIODevice *device); QXmlStreamReader(const QByteArray &data); QXmlStreamReader(const QString &data); ~QXmlStreamReader(); void setDevice(QIODevice *device); QIODevice *device() const; void addData(const QByteArray &data); void addData(const QString &data); void clear(); bool atEnd() const; QXmlStreamReader::TokenType readNext(); QXmlStreamReader::TokenType tokenType() const; QString tokenString() const; void setNamespaceProcessing(bool); bool namespaceProcessing() const; bool isStartDocument() const; bool isEndDocument() const; bool isStartElement() const; bool isEndElement() const; bool isCharacters() const; bool isWhitespace() const; bool isCDATA() const; bool isComment() const; bool isDTD() const; bool isEntityReference() const; bool isProcessingInstruction() const; bool isStandaloneDocument() const; qint64 lineNumber() const; qint64 columnNumber() const; qint64 characterOffset() const; QXmlStreamAttributes attributes() const; QString readElementText(); QStringRef name() const; QStringRef namespaceUri() const; QStringRef qualifiedName() const; QStringRef processingInstructionTarget() const; QStringRef processingInstructionData() const; QStringRef text() const; QXmlStreamNamespaceDeclarations namespaceDeclarations() const; QXmlStreamNotationDeclarations notationDeclarations() const; QXmlStreamEntityDeclarations entityDeclarations() const; void raiseError(const QString &message /DocValue="Py_v3:''"/ = QString()); QString errorString() const; QXmlStreamReader::Error error() const; bool hasError() const; private: QXmlStreamReader(const QXmlStreamReader &); }; %End %If (Qt_4_3_0 - Qt_4_4_0) class QXmlStreamWriter { %TypeHeaderCode #include %End public: QXmlStreamWriter(); QXmlStreamWriter(QIODevice *device); QXmlStreamWriter(QByteArray *array); QXmlStreamWriter(QString *string /Constrained/) /API=QString: - 2/; ~QXmlStreamWriter(); void setDevice(QIODevice *device); QIODevice *device() const; void setCodec(QTextCodec *codec /KeepReference/); void setCodec(const char *codecName); QTextCodec *codec() const; void setAutoFormatting(bool); bool autoFormatting() const; void writeAttribute(const QString &qualifiedName, const QString &value); void writeAttribute(const QString &namespaceUri, const QString &name, const QString &value); void writeAttribute(const QXmlStreamAttribute &attribute); void writeAttributes(const QXmlStreamAttributes &attributes); void writeCDATA(const QString &text); void writeCharacters(const QString &text); void writeComment(const QString &text); void writeDTD(const QString &dtd); void writeEmptyElement(const QString &qualifiedName); void writeEmptyElement(const QString &namespaceUri, const QString &name); void writeTextElement(const QString &qualifiedName, const QString &text); void writeTextElement(const QString &namespaceUri, const QString &name, const QString &text); void writeEndDocument(); void writeEndElement(); void writeEntityReference(const QString &name); void writeNamespace(const QString &namespaceUri, const QString &prefix /DocValue="Py_v3:''"/ = QString()); void writeDefaultNamespace(const QString &namespaceUri); void writeProcessingInstruction(const QString &target, const QString &data /DocValue="Py_v3:''"/ = QString()); void writeStartDocument(); void writeStartDocument(const QString &version); void writeStartElement(const QString &qualifiedName); void writeStartElement(const QString &namespaceUri, const QString &name); void writeCurrentToken(const QXmlStreamReader &reader); private: QXmlStreamWriter(const QXmlStreamWriter &); }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/0000755000076500000240000000000012536324426017334 5ustar philstaff00000000000000PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qabstractmessagehandler.sip0000644000076500000240000000440412536324426024742 0ustar philstaff00000000000000// qabstractmessagehandler.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QAbstractMessageHandler : QObject { %TypeHeaderCode #include %End %ConvertToSubClassCode static struct class_graph { const char *name; sipTypeDef **type; int yes, no; } graph[] = { {sipName_QAbstractUriResolver, &sipType_QAbstractUriResolver, -1, 1}, {sipName_QAbstractMessageHandler, &sipType_QAbstractMessageHandler, -1, -1}, }; int i = 0; sipType = 0; do { struct class_graph *cg = &graph[i]; if (cg->name != NULL && sipCpp->inherits(cg->name)) { sipType = *cg->type; i = cg->yes; } else i = cg->no; } while (i >= 0); %End public: QAbstractMessageHandler(QObject *parent /TransferThis/ = 0); virtual ~QAbstractMessageHandler(); void message(QtMsgType type, const QString &description, const QUrl &identifier = QUrl(), const QSourceLocation &sourceLocation = QSourceLocation()); protected: virtual void handleMessage(QtMsgType type, const QString &description, const QUrl &identifier, const QSourceLocation &sourceLocation) = 0; private: QAbstractMessageHandler(const QAbstractMessageHandler &); }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qabstracturiresolver.sip0000644000076500000240000000247412536324426024346 0ustar philstaff00000000000000// qabstracturiresolver.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QAbstractUriResolver : QObject { %TypeHeaderCode #include %End public: QAbstractUriResolver(QObject *parent /TransferThis/ = 0); virtual ~QAbstractUriResolver(); virtual QUrl resolve(const QUrl &relative, const QUrl &baseURI) const = 0; private: QAbstractUriResolver(const QAbstractUriResolver &); }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qabstractxmlnodemodel.sip0000644000076500000240000001033212536324426024444 0ustar philstaff00000000000000// qabstractxmlnodemodel.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QXmlNodeModelIndex { %TypeHeaderCode #include %End public: QXmlNodeModelIndex(); QXmlNodeModelIndex(const QXmlNodeModelIndex &other); bool operator==(const QXmlNodeModelIndex &other) const; bool operator!=(const QXmlNodeModelIndex &other) const; enum NodeKind { Attribute, Comment, Document, Element, Namespace, ProcessingInstruction, Text, }; enum DocumentOrder { Precedes, Is, Follows, }; qint64 data() const; SIP_PYOBJECT internalPointer() const; %MethodCode sipRes = reinterpret_cast(sipCpp->internalPointer()); if (!sipRes) sipRes = Py_None; Py_INCREF(sipRes); %End const QAbstractXmlNodeModel *model() const; qint64 additionalData() const; bool isNull() const; long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End }; %End %If (Qt_4_4_0 -) class QAbstractXmlNodeModel { %TypeHeaderCode #include %End public: enum SimpleAxis { Parent, FirstChild, PreviousSibling, NextSibling, }; QAbstractXmlNodeModel(); virtual ~QAbstractXmlNodeModel(); virtual QUrl baseUri(const QXmlNodeModelIndex &ni) const = 0; virtual QUrl documentUri(const QXmlNodeModelIndex &ni) const = 0; virtual QXmlNodeModelIndex::NodeKind kind(const QXmlNodeModelIndex &ni) const = 0; virtual QXmlNodeModelIndex::DocumentOrder compareOrder(const QXmlNodeModelIndex &ni1, const QXmlNodeModelIndex &ni2) const = 0; virtual QXmlNodeModelIndex root(const QXmlNodeModelIndex &n) const = 0; virtual QXmlName name(const QXmlNodeModelIndex &ni) const = 0; virtual QString stringValue(const QXmlNodeModelIndex &n) const = 0; virtual QVariant typedValue(const QXmlNodeModelIndex &n) const = 0; virtual QVector namespaceBindings(const QXmlNodeModelIndex &n) const = 0; virtual QXmlNodeModelIndex elementById(const QXmlName &NCName) const = 0; virtual QVector nodesByIdref(const QXmlName &NCName) const = 0; %If (Qt_4_6_0 -) QSourceLocation sourceLocation(const QXmlNodeModelIndex &index) const; %End protected: virtual QXmlNodeModelIndex nextFromSimpleAxis(QAbstractXmlNodeModel::SimpleAxis axis, const QXmlNodeModelIndex &origin) const = 0; virtual QVector attributes(const QXmlNodeModelIndex &element) const = 0; QXmlNodeModelIndex createIndex(qint64 data) const; QXmlNodeModelIndex createIndex(qint64 data, qint64 additionalData) const; QXmlNodeModelIndex createIndex(SIP_PYOBJECT pointer, qint64 additionalData = 0) const [QXmlNodeModelIndex (void *pointer, qint64 additionalData = 0)]; private: QAbstractXmlNodeModel(const QAbstractXmlNodeModel &); }; %End %If (Qt_4_4_0 -) class QXmlItem { %TypeHeaderCode #include %End public: QXmlItem(); QXmlItem(const QXmlItem &other); QXmlItem(const QXmlNodeModelIndex &node); QXmlItem(const QVariant &atomicValue); ~QXmlItem(); bool isNull() const; bool isNode() const; bool isAtomicValue() const; QVariant toAtomicValue() const; QXmlNodeModelIndex toNodeModelIndex() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qabstractxmlreceiver.sip0000644000076500000240000000350212536324426024303 0ustar philstaff00000000000000// qabstractxmlreceiver.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QAbstractXmlReceiver { %TypeHeaderCode #include %End public: QAbstractXmlReceiver(); virtual ~QAbstractXmlReceiver(); virtual void startElement(const QXmlName &name) = 0; virtual void endElement() = 0; virtual void attribute(const QXmlName &name, const QStringRef &value) = 0; virtual void comment(const QString &value) = 0; virtual void characters(const QStringRef &value) = 0; virtual void startDocument() = 0; virtual void endDocument() = 0; virtual void processingInstruction(const QXmlName &target, const QString &value) = 0; virtual void atomicValue(const QVariant &value) = 0; virtual void namespaceBinding(const QXmlName &name) = 0; virtual void startOfSequence() = 0; virtual void endOfSequence() = 0; private: QAbstractXmlReceiver(const QAbstractXmlReceiver &); }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qsimplexmlnodemodel.sip0000644000076500000240000000310512536324426024132 0ustar philstaff00000000000000// qsimplexmlnodemodel.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QSimpleXmlNodeModel : QAbstractXmlNodeModel { %TypeHeaderCode #include %End public: QSimpleXmlNodeModel(const QXmlNamePool &namePool); virtual ~QSimpleXmlNodeModel(); virtual QUrl baseUri(const QXmlNodeModelIndex &node) const; QXmlNamePool &namePool() const; virtual QVector namespaceBindings(const QXmlNodeModelIndex &) const; virtual QString stringValue(const QXmlNodeModelIndex &node) const; virtual QXmlNodeModelIndex elementById(const QXmlName &id) const; virtual QVector nodesByIdref(const QXmlName &idref) const; }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qsourcelocation.sip0000644000076500000240000000314412536324426023265 0ustar philstaff00000000000000// qsourcelocation.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QSourceLocation { %TypeHeaderCode #include %End public: QSourceLocation(); QSourceLocation(const QSourceLocation &other); QSourceLocation(const QUrl &u, int line = -1, int column = -1); ~QSourceLocation(); bool operator==(const QSourceLocation &other) const; bool operator!=(const QSourceLocation &other) const; qint64 column() const; void setColumn(qint64 newColumn); qint64 line() const; void setLine(qint64 newLine); QUrl uri() const; void setUri(const QUrl &newUri); bool isNull() const; long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/QtXmlPatternsmod.sip0000644000076500000240000000446012536324426023343 0ustar philstaff00000000000000// QtXmlPatternsmod.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %Module(name=PyQt4.QtXmlPatterns, keyword_arguments="Optional") %Import QtCore/QtCoremod.sip %Import QtNetwork/QtNetworkmod.sip %Copying Copyright (c) 2015 Riverbank Computing Limited This file is part of PyQt4. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. If you do not wish to use this file under the terms of the GPL version 3.0 then you may purchase a commercial license. For more information contact info@riverbankcomputing.com. This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %End %DefaultSupertype sip.simplewrapper %Include qabstractmessagehandler.sip %Include qabstracturiresolver.sip %Include qabstractxmlnodemodel.sip %Include qabstractxmlreceiver.sip %Include qsimplexmlnodemodel.sip %Include qsourcelocation.sip %Include qxmlformatter.sip %Include qxmlname.sip %Include qxmlnamepool.sip %Include qxmlquery.sip %Include qxmlresultitems.sip %Include qxmlschema.sip %Include qxmlschemavalidator.sip %Include qxmlserializer.sip PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qxmlformatter.sip0000644000076500000240000000333712536324426022764 0ustar philstaff00000000000000// qxmlformatter.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QXmlFormatter : QXmlSerializer { %TypeHeaderCode #include %End public: QXmlFormatter(const QXmlQuery &query, QIODevice *outputDevice); virtual void characters(const QStringRef &value); virtual void comment(const QString &value); virtual void startElement(const QXmlName &name); virtual void endElement(); virtual void attribute(const QXmlName &name, const QStringRef &value); virtual void processingInstruction(const QXmlName &name, const QString &value); virtual void atomicValue(const QVariant &value); virtual void startDocument(); virtual void endDocument(); virtual void startOfSequence(); virtual void endOfSequence(); int indentationDepth() const; void setIndentationDepth(int depth); }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qxmlname.sip0000644000076500000240000000346312536324426021701 0ustar philstaff00000000000000// qxmlname.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QXmlName { %TypeHeaderCode #include %End public: QXmlName(); QXmlName(QXmlNamePool &namePool, const QString &localName, const QString &namespaceUri /DocValue="Py_v3:''"/ = QString(), const QString &prefix /DocValue="Py_v3:''"/ = QString()); QString namespaceUri(const QXmlNamePool &query) const; QString prefix(const QXmlNamePool &query) const; QString localName(const QXmlNamePool &query) const; QString toClarkName(const QXmlNamePool &query) const; bool operator==(const QXmlName &other) const; bool operator!=(const QXmlName &other) const; bool isNull() const; static bool isNCName(const QString &candidate); %If (Qt_4_5_0 -) static QXmlName fromClarkName(const QString &clarkName, const QXmlNamePool &namePool); %End long __hash__() const; %MethodCode sipRes = qHash(*sipCpp); %End }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qxmlnamepool.sip0000644000076500000240000000217412536324426022571 0ustar philstaff00000000000000// qxmlnamepool.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QXmlNamePool { %TypeHeaderCode #include %End public: QXmlNamePool(); QXmlNamePool(const QXmlNamePool &other); ~QXmlNamePool(); }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qxmlquery.sip0000644000076500000240000001057012536324426022123 0ustar philstaff00000000000000// qxmlquery.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QXmlQuery { %TypeHeaderCode #include %End public: %If (Qt_4_5_0 -) enum QueryLanguage { XQuery10, XSLT20, }; %End QXmlQuery(); QXmlQuery(const QXmlQuery &other); QXmlQuery(const QXmlNamePool &np); %If (Qt_4_5_0 -) QXmlQuery(QXmlQuery::QueryLanguage queryLanguage, const QXmlNamePool &pool = QXmlNamePool()); %End ~QXmlQuery(); void setMessageHandler(QAbstractMessageHandler *messageHandler /KeepReference/); QAbstractMessageHandler *messageHandler() const; void setQuery(const QString &sourceCode, const QUrl &documentUri = QUrl()); void setQuery(QIODevice *sourceCode, const QUrl &documentUri = QUrl()); void setQuery(const QUrl &queryURI, const QUrl &baseUri = QUrl()); QXmlNamePool namePool() const; void bindVariable(const QXmlName &name, const QXmlItem &value); void bindVariable(const QXmlName &name, QIODevice *); %If (Qt_4_5_0 -) void bindVariable(const QXmlName &name, const QXmlQuery &query); %End void bindVariable(const QString &localName, const QXmlItem &value); void bindVariable(const QString &localName, QIODevice *); %If (Qt_4_5_0 -) void bindVariable(const QString &localName, const QXmlQuery &query); %End bool isValid() const; void evaluateTo(QXmlResultItems *result) const; bool evaluateTo(QAbstractXmlReceiver *callback) const; bool evaluateTo(QStringList *target) const /API=QString: - 2/; SIP_PYOBJECT evaluateToStringList() const /DocType="Py_v3:list-of-str;QStringList"/; %MethodCode bool ok; QStringList *result = new QStringList; Py_BEGIN_ALLOW_THREADS ok = sipCpp->evaluateTo(result); Py_END_ALLOW_THREADS if (ok) { sipRes = sipConvertFromNewType(result, sipType_QStringList, NULL); } else { delete result; sipRes = Py_None; Py_INCREF(Py_None); } %End %If (Qt_4_5_0 -) bool evaluateTo(QIODevice *target) const; %End %If (Qt_4_5_0 -) bool evaluateTo(QString *output) const /API=QString: - 2/; %End %If (Qt_4_5_0 -) SIP_PYOBJECT evaluateToString() const /DocType="Py_v3:str;QString"/; %MethodCode bool ok; QString *result = new QString; Py_BEGIN_ALLOW_THREADS ok = sipCpp->evaluateTo(result); Py_END_ALLOW_THREADS if (ok) { sipRes = sipConvertFromNewType(result, sipType_QString, NULL); } else { delete result; sipRes = Py_None; Py_INCREF(Py_None); } %End %End void setUriResolver(const QAbstractUriResolver *resolver /KeepReference/); const QAbstractUriResolver *uriResolver() const; void setFocus(const QXmlItem &item); %If (Qt_4_5_0 -) bool setFocus(const QUrl &documentURI); %End %If (Qt_4_5_0 -) bool setFocus(QIODevice *document); %End %If (Qt_4_6_0 -) bool setFocus(const QString &focus); %End %If (Qt_4_5_0 -) void setInitialTemplateName(const QXmlName &name); %End %If (Qt_4_5_0 -) void setInitialTemplateName(const QString &name); %End %If (Qt_4_5_0 -) QXmlName initialTemplateName() const; %End %If (Qt_4_5_0 -) void setNetworkAccessManager(QNetworkAccessManager *newManager /KeepReference/); %End %If (Qt_4_5_0 -) QNetworkAccessManager *networkAccessManager() const; %End %If (Qt_4_5_0 -) QXmlQuery::QueryLanguage queryLanguage() const; %End }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qxmlresultitems.sip0000644000076500000240000000235412536324426023337 0ustar philstaff00000000000000// qxmlresultitems.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QXmlResultItems { %TypeHeaderCode #include %End public: QXmlResultItems(); virtual ~QXmlResultItems(); bool hasError() const; QXmlItem next(); QXmlItem current() const; private: QXmlResultItems(const QXmlResultItems &); }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qxmlschema.sip0000644000076500000240000000373112536324426022217 0ustar philstaff00000000000000// qxmlschema.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QXmlSchema { %TypeHeaderCode #include %End public: QXmlSchema(); %If (Qt_5_0_0 -) QXmlSchema(const QXmlSchema &other); %End private: %If (Qt_5_0_0 -) QXmlSchema &operator=(const QXmlSchema &); %End %If (- Qt_5_0_0) QXmlSchema(const QXmlSchema &other); %End public: ~QXmlSchema(); bool load(const QUrl &source) /ReleaseGIL/; bool load(QIODevice *source, const QUrl &documentUri = QUrl()) /ReleaseGIL/; bool load(const QByteArray &data, const QUrl &documentUri = QUrl()); bool isValid() const; QXmlNamePool namePool() const; QUrl documentUri() const; void setMessageHandler(QAbstractMessageHandler *handler /KeepReference/); QAbstractMessageHandler *messageHandler() const; void setUriResolver(const QAbstractUriResolver *resolver /KeepReference/); const QAbstractUriResolver *uriResolver() const; void setNetworkAccessManager(QNetworkAccessManager *networkmanager /KeepReference/); QNetworkAccessManager *networkAccessManager() const; }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qxmlschemavalidator.sip0000644000076500000240000000462212536324426024125 0ustar philstaff00000000000000// qxmlschemavalidator.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_6_0 -) class QXmlSchemaValidator { %TypeHeaderCode #include %End public: QXmlSchemaValidator(); QXmlSchemaValidator(const QXmlSchema &schema); ~QXmlSchemaValidator(); void setSchema(const QXmlSchema &schema); bool validate(const QUrl &source) const /ReleaseGIL/; bool validate(QIODevice *source, const QUrl &documentUri = QUrl()) const /ReleaseGIL/; bool validate(const QByteArray &data, const QUrl &documentUri = QUrl()) const; QXmlNamePool namePool() const; QXmlSchema schema() const; %MethodCode // For reasons we don't quite understand QXmlSchema's copy ctor has to be // private as far as sip is concerned - otherwise we get compiler errors. // However that means that sip generates the wrong code here, because it // doesn't realise it can take a copy of the result. Py_BEGIN_ALLOW_THREADS sipRes = new QXmlSchema(sipCpp->schema()); Py_END_ALLOW_THREADS %End void setMessageHandler(QAbstractMessageHandler *handler /KeepReference/); QAbstractMessageHandler *messageHandler() const; void setUriResolver(const QAbstractUriResolver *resolver /KeepReference/); const QAbstractUriResolver *uriResolver() const; void setNetworkAccessManager(QNetworkAccessManager *networkmanager /KeepReference/); QNetworkAccessManager *networkAccessManager() const; private: QXmlSchemaValidator(const QXmlSchemaValidator &); }; %End PyQt-x11-gpl-4.11.4/sip/QtXmlPatterns/qxmlserializer.sip0000644000076500000240000000353312536324426023130 0ustar philstaff00000000000000// qxmlserializer.sip generated by MetaSIP // // This file is part of the QtXmlPatterns Python extension module. // // Copyright (c) 2015 Riverbank Computing Limited // // This file is part of PyQt4. // // This file may be used under the terms of the GNU General Public License // version 3.0 as published by the Free Software Foundation and appearing in // the file LICENSE included in the packaging of this file. Please review the // following information to ensure the GNU General Public License version 3.0 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. // // If you do not wish to use this file under the terms of the GPL version 3.0 // then you may purchase a commercial license. For more information contact // info@riverbankcomputing.com. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. %If (Qt_4_4_0 -) class QXmlSerializer : QAbstractXmlReceiver { %TypeHeaderCode #include %End public: QXmlSerializer(const QXmlQuery &query, QIODevice *outputDevice); virtual void namespaceBinding(const QXmlName &nb); virtual void characters(const QStringRef &value); virtual void comment(const QString &value); virtual void startElement(const QXmlName &name); virtual void endElement(); virtual void attribute(const QXmlName &name, const QStringRef &value); virtual void processingInstruction(const QXmlName &name, const QString &value); virtual void atomicValue(const QVariant &value); virtual void startDocument(); virtual void endDocument(); virtual void startOfSequence(); virtual void endOfSequence(); QIODevice *outputDevice() const; void setCodec(const QTextCodec *codec /KeepReference/); const QTextCodec *codec() const; }; %End PyQt-x11-gpl-4.11.4/THANKS0000644000076500000240000000055512536324420014665 0ustar philstaff00000000000000David Boddie For porting Qt v4 examples to PyQt. For the implementation of Python plugin support for Designer. Torsten Marek For pyuic for PyQt v4. Detlev Offenbach For pylupdate for PyQt v4. Andreas Pakulat For porting Qt v4 examples to PyQt. Douglas Soares de Andrade For porting Qt v4 examples to PyQt. Baz Walter For porting Qt v4 examples to PyQt.